From 144db7f5a2005be6258918322c2b6b3399987eb6 Mon Sep 17 00:00:00 2001 From: Ev2geny Date: Sun, 27 Sep 2020 14:12:01 +0200 Subject: [PATCH 01/33] inial update. Tests do not work yet --- Lib/tempfile.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/Lib/tempfile.py b/Lib/tempfile.py index eb870c998c251a..193d6e6df2128d 100644 --- a/Lib/tempfile.py +++ b/Lib/tempfile.py @@ -464,11 +464,12 @@ class _TemporaryFileWrapper: remove the file when it is no longer needed. """ - def __init__(self, file, name, delete=True): + def __init__(self, file, name, delete=True, delete_on_close=True): self.file = file self.name = name self.delete = delete - self._closer = _TemporaryFileCloser(file, name, delete) + self._closer = _TemporaryFileCloser(file, name, delete, + delete_on_close) def __getattr__(self, name): # Attribute lookups are delegated to the underlying file @@ -521,7 +522,8 @@ def __iter__(self): def NamedTemporaryFile(mode='w+b', buffering=-1, encoding=None, newline=None, suffix=None, prefix=None, - dir=None, delete=True, *, errors=None): + dir=None, delete=True, *, errors=None, + delete_on_close=True): """Create and return a temporary file. Arguments: 'prefix', 'suffix', 'dir' -- as for mkstemp. @@ -529,9 +531,14 @@ def NamedTemporaryFile(mode='w+b', buffering=-1, encoding=None, 'buffering' -- the buffer size argument to io.open (default -1). 'encoding' -- the encoding argument to io.open (default None) 'newline' -- the newline argument to io.open (default None) - 'delete' -- whether the file is deleted on close (default True). + 'delete' -- whether the file is deleted at the end. When exactly file gets + deleted (either on close or on context manager exit) is determined by + parameter delete_on_close. (default True). 'errors' -- the errors argument to io.open (default None) The file is created as mkstemp() would do it. + 'delete_on_close' -- if 'delete', then determines whether file gets deleted + on close. Otherwise it gets deleted on context manager exit + (default True) Returns an object with a file-like interface; the name of the file is accessible as its 'name' attribute. The file will be automatically @@ -548,7 +555,7 @@ def NamedTemporaryFile(mode='w+b', buffering=-1, encoding=None, # Setting O_TEMPORARY in the flags causes the OS to delete # the file when it is closed. This is only supported by Windows. - if _os.name == 'nt' and delete: + if _os.name == 'nt' and delete and delete_on_close: flags |= _os.O_TEMPORARY if "b" not in mode: @@ -559,7 +566,7 @@ def NamedTemporaryFile(mode='w+b', buffering=-1, encoding=None, file = _io.open(fd, mode, buffering=buffering, newline=newline, encoding=encoding, errors=errors) - return _TemporaryFileWrapper(file, name, delete) + return _TemporaryFileWrapper(file, name, delete, delete_on_close) except BaseException: _os.unlink(name) _os.close(fd) From 21f7df0b62f7760fa30cf38dfe25020e4d3c34e3 Mon Sep 17 00:00:00 2001 From: Ev2geny Date: Sun, 27 Sep 2020 18:17:53 +0200 Subject: [PATCH 02/33] delete_on_close flag is added to NamedTemporaryFile functionality --- Lib/tempfile.py | 9 +++++++-- Lib/test/test_tempfile.py | 42 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 2 deletions(-) diff --git a/Lib/tempfile.py b/Lib/tempfile.py index 193d6e6df2128d..a55ad51da09c1c 100644 --- a/Lib/tempfile.py +++ b/Lib/tempfile.py @@ -421,10 +421,11 @@ class _TemporaryFileCloser: file = None # Set here since __del__ checks it close_called = False - def __init__(self, file, name, delete=True): + def __init__(self, file, name, delete=True, delete_on_close=True): self.file = file self.name = name self.delete = delete + self.delete_on_close = delete_on_close # NT provides delete-on-close as a primitive, so we don't need # the wrapper to do anything special. We still use it so that @@ -442,7 +443,7 @@ def close(self, unlink=_os.unlink): try: self.file.close() finally: - if self.delete: + if self.delete and self.delete_on_close: unlink(self.name) # Need to ensure the file is deleted on __del__ @@ -468,6 +469,7 @@ def __init__(self, file, name, delete=True, delete_on_close=True): self.file = file self.name = name self.delete = delete + self.delete_on_close = delete_on_close self._closer = _TemporaryFileCloser(file, name, delete, delete_on_close) @@ -501,6 +503,9 @@ def __enter__(self): def __exit__(self, exc, value, tb): result = self.file.__exit__(exc, value, tb) self.close() + # if file is to be deleted, bot not on closure, deleting it now + if self.delete and not self.delete_on_close: + _os.unlink(self.name) return result def close(self): diff --git a/Lib/test/test_tempfile.py b/Lib/test/test_tempfile.py index f056e5ccb17f92..f2c3be05870dc9 100644 --- a/Lib/test/test_tempfile.py +++ b/Lib/test/test_tempfile.py @@ -981,6 +981,48 @@ def test_del_on_close(self): finally: os.rmdir(dir) + def test_not_del_on_close_if_delete_on_close_false(self): + # A NamedTemporaryFile is NOT deleted when closed if + # delete_on_close= False, but is deleted on content manager exit + dir = tempfile.mkdtemp() + try: + with tempfile.NamedTemporaryFile(dir=dir, + delete_on_close= False) as f: + f.write(b'blat') + f_name = f.name + f.close() + with self.subTest(): + # Testing that file is not deleted on close + self.assertTrue(os.path.exists(f.name), + "NamedTemporaryFile %s is incorrectly deleted\ + on closure when delete_on_close= False" % f_name) + + with self.subTest(): + # Testing that file is deleted on content manager exit + self.assertFalse(os.path.exists(f.name), + "NamedTemporaryFile %s exists\ + after content manager exit" % f.name) + + finally: + os.rmdir(dir) + + def test_not_del_if_delete_false(self): + # A NamedTemporaryFile is not deleted if delete = False + dir = tempfile.mkdtemp() + f_name = "" + try: + # setting delete_on_close = True to test, that this does not have + # an effect, if delete = False + with tempfile.NamedTemporaryFile(dir=dir, delete = False, + delete_on_close = True) as f: + f.write(b'blat') + f_name = f.name + self.assertTrue(os.path.exists(f.name), + "NamedTemporaryFile %s exists after close" % f.name) + finally: + os.unlink(f_name) + os.rmdir(dir) + def test_dis_del_on_close(self): # Tests that delete-on-close can be disabled dir = tempfile.mkdtemp() From 2d7927be711cd8a506b0559a92dd1d4e19af74f4 Mon Sep 17 00:00:00 2001 From: Ev2geny Date: Sun, 27 Sep 2020 21:48:42 +0200 Subject: [PATCH 03/33] possibility for user to delete temporary file is added without content manager complaining --- Lib/tempfile.py | 8 +++++++- Lib/test/test_tempfile.py | 19 ++++++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/Lib/tempfile.py b/Lib/tempfile.py index a55ad51da09c1c..9fcb040ed9ced3 100644 --- a/Lib/tempfile.py +++ b/Lib/tempfile.py @@ -505,7 +505,13 @@ def __exit__(self, exc, value, tb): self.close() # if file is to be deleted, bot not on closure, deleting it now if self.delete and not self.delete_on_close: - _os.unlink(self.name) + try: + _os.unlink(self.name) + # It shall be Ok to ignore FileNotFoundError, because user may + # have deleted the file already before content manager came to it + except FileNotFoundError: + pass + return result def close(self): diff --git a/Lib/test/test_tempfile.py b/Lib/test/test_tempfile.py index f2c3be05870dc9..4bab1957cca72c 100644 --- a/Lib/test/test_tempfile.py +++ b/Lib/test/test_tempfile.py @@ -987,7 +987,8 @@ def test_not_del_on_close_if_delete_on_close_false(self): dir = tempfile.mkdtemp() try: with tempfile.NamedTemporaryFile(dir=dir, - delete_on_close= False) as f: + delete=True, + delete_on_close=False) as f: f.write(b'blat') f_name = f.name f.close() @@ -1006,6 +1007,22 @@ def test_not_del_on_close_if_delete_on_close_false(self): finally: os.rmdir(dir) + def test_ok_to_dete_manually(self): + # A NamedTemporaryFile can be deleted by a user before content manager + # comes to it. This will not generate an error + + dir = tempfile.mkdtemp() + try: + with tempfile.NamedTemporaryFile(dir=dir, + delete=True, + delete_on_close=False) as f: + f.write(b'blat') + f.close() + os.unlink(f.name) + + finally: + os.rmdir(dir) + def test_not_del_if_delete_false(self): # A NamedTemporaryFile is not deleted if delete = False dir = tempfile.mkdtemp() From 4fcddafb936c59990d7790edca998e56d4d262db Mon Sep 17 00:00:00 2001 From: Ev2geny Date: Sun, 27 Sep 2020 21:55:53 +0200 Subject: [PATCH 04/33] typo in test name is fixed --- Lib/test/test_tempfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib/test/test_tempfile.py b/Lib/test/test_tempfile.py index 4bab1957cca72c..6e939ffb94e561 100644 --- a/Lib/test/test_tempfile.py +++ b/Lib/test/test_tempfile.py @@ -1007,7 +1007,7 @@ def test_not_del_on_close_if_delete_on_close_false(self): finally: os.rmdir(dir) - def test_ok_to_dete_manually(self): + def test_ok_to_delete_manually(self): # A NamedTemporaryFile can be deleted by a user before content manager # comes to it. This will not generate an error From 76f28f337b277270cf4148e55a8138bc8530da9b Mon Sep 17 00:00:00 2001 From: "blurb-it[bot]" <43283697+blurb-it[bot]@users.noreply.github.com> Date: Mon, 28 Sep 2020 04:56:04 +0000 Subject: [PATCH 05/33] =?UTF-8?q?=F0=9F=93=9C=F0=9F=A4=96=20Added=20by=20b?= =?UTF-8?q?lurb=5Fit.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../next/Library/2020-09-28-04-56-04.bpo-14243.YECnxv.rst | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 Misc/NEWS.d/next/Library/2020-09-28-04-56-04.bpo-14243.YECnxv.rst diff --git a/Misc/NEWS.d/next/Library/2020-09-28-04-56-04.bpo-14243.YECnxv.rst b/Misc/NEWS.d/next/Library/2020-09-28-04-56-04.bpo-14243.YECnxv.rst new file mode 100644 index 00000000000000..2863a420b7db37 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2020-09-28-04-56-04.bpo-14243.YECnxv.rst @@ -0,0 +1,5 @@ +NamedTemporaryFile is too hard to use portably when you need to open the file by name after writing it. To do that, you need to close the file first (on Windows), which means you have to pass delete=False, which in turn means that you get no help in cleaning up the actual file resource, + +The issue is solved by adding an additional optional argument to NamedTemporaryFile() +'delete_on_close' -- It works in combination with already existing option 'delete', and determines whether file gets deleted +on close (which is current and default functionality). Otherwise it gets deleted on context manager exit. \ No newline at end of file From 6be9be6600abf673584d342477312c6ce431a9fc Mon Sep 17 00:00:00 2001 From: Ev2geny Date: Mon, 28 Sep 2020 11:21:42 +0200 Subject: [PATCH 06/33] whatsnew and News file is updated --- Doc/whatsnew/3.10.rst | 61 +------------------ .../2020-09-28-04-56-04.bpo-14243.YECnxv.rst | 18 ++++-- 2 files changed, 16 insertions(+), 63 deletions(-) diff --git a/Doc/whatsnew/3.10.rst b/Doc/whatsnew/3.10.rst index f93523a4c50a89..3de611800c2b58 100644 --- a/Doc/whatsnew/3.10.rst +++ b/Doc/whatsnew/3.10.rst @@ -824,65 +824,8 @@ Other Language Changes :meth:`~object.__index__` method). (Contributed by Serhiy Storchaka in :issue:`37999`.) -* If :func:`object.__ipow__` returns :const:`NotImplemented`, the operator will - correctly fall back to :func:`object.__pow__` and :func:`object.__rpow__` as expected. - (Contributed by Alex Shkop in :issue:`38302`.) - -* Assignment expressions can now be used unparenthesized within set literals - and set comprehensions, as well as in sequence indexes (but not slices). - -* Functions have a new ``__builtins__`` attribute which is used to look for - builtin symbols when a function is executed, instead of looking into - ``__globals__['__builtins__']``. The attribute is initialized from - ``__globals__["__builtins__"]`` if it exists, else from the current builtins. - (Contributed by Mark Shannon in :issue:`42990`.) - -* Two new builtin functions -- :func:`aiter` and :func:`anext` have been added - to provide asynchronous counterparts to :func:`iter` and :func:`next`, - respectively. - (Contributed by Joshua Bronson, Daniel Pope, and Justin Wang in :issue:`31861`.) - -* Static methods (:func:`@staticmethod `) and class methods - (:func:`@classmethod `) now inherit the method attributes - (``__module__``, ``__name__``, ``__qualname__``, ``__doc__``, - ``__annotations__``) and have a new ``__wrapped__`` attribute. - Moreover, static methods are now callable as regular functions. - (Contributed by Victor Stinner in :issue:`43682`.) - -* Annotations for complex targets (everything beside ``simple name`` targets - defined by :pep:`526`) no longer cause any runtime effects with ``from __future__ import annotations``. - (Contributed by Batuhan Taskaya in :issue:`42737`.) - -* Class and module objects now lazy-create empty annotations dicts on demand. - The annotations dicts are stored in the object’s ``__dict__`` for - backwards compatibility. This improves the best practices for working - with ``__annotations__``; for more information, please see - :ref:`annotations-howto`. - (Contributed by Larry Hastings in :issue:`43901`.) - -* Annotations consist of ``yield``, ``yield from``, ``await`` or named expressions - are now forbidden under ``from __future__ import annotations`` due to their side - effects. - (Contributed by Batuhan Taskaya in :issue:`42725`.) - -* Usage of unbound variables, ``super()`` and other expressions that might - alter the processing of symbol table as annotations are now rendered - effectless under ``from __future__ import annotations``. - (Contributed by Batuhan Taskaya in :issue:`42725`.) - -* Hashes of NaN values of both :class:`float` type and - :class:`decimal.Decimal` type now depend on object identity. Formerly, they - always hashed to ``0`` even though NaN values are not equal to one another. - This caused potentially quadratic runtime behavior due to excessive hash - collisions when creating dictionaries and sets containing multiple NaNs. - (Contributed by Raymond Hettinger in :issue:`43475`.) - -* A :exc:`SyntaxError` (instead of a :exc:`NameError`) will be raised when deleting - the :const:`__debug__` constant. (Contributed by Dong-hee Na in :issue:`45000`.) - -* :exc:`SyntaxError` exceptions now have ``end_lineno`` and - ``end_offset`` attributes. They will be ``None`` if not determined. - (Contributed by Pablo Galindo in :issue:`43914`.) +* XXX Describe changes to NamedTemporaryFile functionality. Re 2020-09-28-04-56-04.bpo-14243.YECnxv.rst + New Modules =========== diff --git a/Misc/NEWS.d/next/Library/2020-09-28-04-56-04.bpo-14243.YECnxv.rst b/Misc/NEWS.d/next/Library/2020-09-28-04-56-04.bpo-14243.YECnxv.rst index 2863a420b7db37..2210e6b4f4a543 100644 --- a/Misc/NEWS.d/next/Library/2020-09-28-04-56-04.bpo-14243.YECnxv.rst +++ b/Misc/NEWS.d/next/Library/2020-09-28-04-56-04.bpo-14243.YECnxv.rst @@ -1,5 +1,15 @@ -NamedTemporaryFile is too hard to use portably when you need to open the file by name after writing it. To do that, you need to close the file first (on Windows), which means you have to pass delete=False, which in turn means that you get no help in cleaning up the actual file resource, +At the moment NamedTemporaryFile is too hard to use portably when you need +to open the file by name after writing to it. To do that, you need to close the +file first (on Windows), which means you have to pass delete=False, which in +turn means that you get no help in cleaning up the actual file resource. -The issue is solved by adding an additional optional argument to NamedTemporaryFile() -'delete_on_close' -- It works in combination with already existing option 'delete', and determines whether file gets deleted -on close (which is current and default functionality). Otherwise it gets deleted on context manager exit. \ No newline at end of file +The issue is solved by adding an additional optional argument to +NamedTemporaryFile() 'delete_on_close' (default is True). It works in +combination with already existing argument 'delete', and determines whether +created temporary file gets deleted on close (which until this change was +the only functionality available and it remains default now). + +If 'delete' = True and 'delete_on_close' = False then temporary file gets deleted +on context manager exit only (which is a new functionality). + +If 'delete' is not true, then value of 'delete_on_close' is ignored. \ No newline at end of file From faf1a3472e558cecd2f61d84d827ebbd10ec1a53 Mon Sep 17 00:00:00 2001 From: Ev2geny Date: Mon, 28 Sep 2020 17:22:39 +0200 Subject: [PATCH 07/33] bro-14243: update to NEWS.d --- .../2020-09-28-04-56-04.bpo-14243.YECnxv.rst | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/Misc/NEWS.d/next/Library/2020-09-28-04-56-04.bpo-14243.YECnxv.rst b/Misc/NEWS.d/next/Library/2020-09-28-04-56-04.bpo-14243.YECnxv.rst index 2210e6b4f4a543..e01523e9a66a9b 100644 --- a/Misc/NEWS.d/next/Library/2020-09-28-04-56-04.bpo-14243.YECnxv.rst +++ b/Misc/NEWS.d/next/Library/2020-09-28-04-56-04.bpo-14243.YECnxv.rst @@ -1,15 +1,16 @@ -At the moment NamedTemporaryFile is too hard to use portably when you need -to open the file by name after writing to it. To do that, you need to close the -file first (on Windows), which means you have to pass delete=False, which in -turn means that you get no help in cleaning up the actual file resource. +At the moment ``NamedTemporaryFile`` is too hard to use portably when you +need to open the file by name after writing to it. To do that, you need to +close the file first (on Windows), which means you have to pass +`delete=False`, which in turn means that you get no help in cleaning up the +actual file resource. The issue is solved by adding an additional optional argument to -NamedTemporaryFile() 'delete_on_close' (default is True). It works in -combination with already existing argument 'delete', and determines whether -created temporary file gets deleted on close (which until this change was -the only functionality available and it remains default now). +``NamedTemporaryFile()`` ``delete_on_close`` (default is ``True``). It works +in combination with already existing argument ``'delete'``, and determines +whether created temporary file gets deleted on close (which until this change +was the only functionality available and it remains default now). -If 'delete' = True and 'delete_on_close' = False then temporary file gets deleted -on context manager exit only (which is a new functionality). +If ``delete = True and delete_on_close = False`` then temporary file gets +deleted on context manager exit only (which is a new functionality). -If 'delete' is not true, then value of 'delete_on_close' is ignored. \ No newline at end of file +If ``delete is not True``, then value of ``delete_on_close`` is ignored. \ No newline at end of file From 589d0b81f8e7d37a7eb6988631086b90b572a6fe Mon Sep 17 00:00:00 2001 From: Ev2geny Date: Fri, 27 May 2022 14:40:16 +0200 Subject: [PATCH 08/33] Update Lib/test/test_tempfile.py Commiting changes, suggested by @zooba Co-authored-by: Steve Dower --- Lib/test/test_tempfile.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Lib/test/test_tempfile.py b/Lib/test/test_tempfile.py index 6e939ffb94e561..c3a793e6d12bbf 100644 --- a/Lib/test/test_tempfile.py +++ b/Lib/test/test_tempfile.py @@ -1030,8 +1030,8 @@ def test_not_del_if_delete_false(self): try: # setting delete_on_close = True to test, that this does not have # an effect, if delete = False - with tempfile.NamedTemporaryFile(dir=dir, delete = False, - delete_on_close = True) as f: + with tempfile.NamedTemporaryFile(dir=dir, delete=False, + delete_on_close=True) as f: f.write(b'blat') f_name = f.name self.assertTrue(os.path.exists(f.name), From e22a3db24a71d0b56813a20090ba5fc173f3d746 Mon Sep 17 00:00:00 2001 From: Ev2geny Date: Sun, 29 May 2022 16:00:14 +0200 Subject: [PATCH 09/33] Doc/whatsnew/3.10.rst is restored from the main. changes will no go to 3.12 rst --- Doc/whatsnew/3.10.rst | 61 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 59 insertions(+), 2 deletions(-) diff --git a/Doc/whatsnew/3.10.rst b/Doc/whatsnew/3.10.rst index 3de611800c2b58..f93523a4c50a89 100644 --- a/Doc/whatsnew/3.10.rst +++ b/Doc/whatsnew/3.10.rst @@ -824,8 +824,65 @@ Other Language Changes :meth:`~object.__index__` method). (Contributed by Serhiy Storchaka in :issue:`37999`.) -* XXX Describe changes to NamedTemporaryFile functionality. Re 2020-09-28-04-56-04.bpo-14243.YECnxv.rst - +* If :func:`object.__ipow__` returns :const:`NotImplemented`, the operator will + correctly fall back to :func:`object.__pow__` and :func:`object.__rpow__` as expected. + (Contributed by Alex Shkop in :issue:`38302`.) + +* Assignment expressions can now be used unparenthesized within set literals + and set comprehensions, as well as in sequence indexes (but not slices). + +* Functions have a new ``__builtins__`` attribute which is used to look for + builtin symbols when a function is executed, instead of looking into + ``__globals__['__builtins__']``. The attribute is initialized from + ``__globals__["__builtins__"]`` if it exists, else from the current builtins. + (Contributed by Mark Shannon in :issue:`42990`.) + +* Two new builtin functions -- :func:`aiter` and :func:`anext` have been added + to provide asynchronous counterparts to :func:`iter` and :func:`next`, + respectively. + (Contributed by Joshua Bronson, Daniel Pope, and Justin Wang in :issue:`31861`.) + +* Static methods (:func:`@staticmethod `) and class methods + (:func:`@classmethod `) now inherit the method attributes + (``__module__``, ``__name__``, ``__qualname__``, ``__doc__``, + ``__annotations__``) and have a new ``__wrapped__`` attribute. + Moreover, static methods are now callable as regular functions. + (Contributed by Victor Stinner in :issue:`43682`.) + +* Annotations for complex targets (everything beside ``simple name`` targets + defined by :pep:`526`) no longer cause any runtime effects with ``from __future__ import annotations``. + (Contributed by Batuhan Taskaya in :issue:`42737`.) + +* Class and module objects now lazy-create empty annotations dicts on demand. + The annotations dicts are stored in the object’s ``__dict__`` for + backwards compatibility. This improves the best practices for working + with ``__annotations__``; for more information, please see + :ref:`annotations-howto`. + (Contributed by Larry Hastings in :issue:`43901`.) + +* Annotations consist of ``yield``, ``yield from``, ``await`` or named expressions + are now forbidden under ``from __future__ import annotations`` due to their side + effects. + (Contributed by Batuhan Taskaya in :issue:`42725`.) + +* Usage of unbound variables, ``super()`` and other expressions that might + alter the processing of symbol table as annotations are now rendered + effectless under ``from __future__ import annotations``. + (Contributed by Batuhan Taskaya in :issue:`42725`.) + +* Hashes of NaN values of both :class:`float` type and + :class:`decimal.Decimal` type now depend on object identity. Formerly, they + always hashed to ``0`` even though NaN values are not equal to one another. + This caused potentially quadratic runtime behavior due to excessive hash + collisions when creating dictionaries and sets containing multiple NaNs. + (Contributed by Raymond Hettinger in :issue:`43475`.) + +* A :exc:`SyntaxError` (instead of a :exc:`NameError`) will be raised when deleting + the :const:`__debug__` constant. (Contributed by Dong-hee Na in :issue:`45000`.) + +* :exc:`SyntaxError` exceptions now have ``end_lineno`` and + ``end_offset`` attributes. They will be ``None`` if not determined. + (Contributed by Pablo Galindo in :issue:`43914`.) New Modules =========== From 3be2f472b59decadbbc93be8b7df22e1d3203b27 Mon Sep 17 00:00:00 2001 From: Ev2geny Date: Sun, 29 May 2022 22:58:12 +0200 Subject: [PATCH 10/33] Documentation update --- Doc/library/tempfile.rst | 60 +++++++++++++++---- Doc/whatsnew/3.12.rst | 1 + .../2020-09-28-04-56-04.bpo-14243.YECnxv.rst | 17 +----- 3 files changed, 49 insertions(+), 29 deletions(-) diff --git a/Doc/library/tempfile.rst b/Doc/library/tempfile.rst index b7e604c1b70acb..983c1d68ec31b2 100644 --- a/Doc/library/tempfile.rst +++ b/Doc/library/tempfile.rst @@ -75,20 +75,35 @@ The module defines the following user-callable items: Added *errors* parameter. -.. function:: NamedTemporaryFile(mode='w+b', buffering=-1, encoding=None, newline=None, suffix=None, prefix=None, dir=None, delete=True, *, errors=None) - - This function operates exactly as :func:`TemporaryFile` does, except that - the file is guaranteed to have a visible name in the file system (on - Unix, the directory entry is not unlinked). That name can be retrieved - from the :attr:`name` attribute of the returned - file-like object. Whether the name can be - used to open the file a second time, while the named temporary file is - still open, varies across platforms (it can be so used on Unix; it cannot - on Windows). If *delete* is true (the default), the file is - deleted as soon as it is closed. +.. function:: NamedTemporaryFile(mode='w+b', buffering=-1, encoding=None, newline=None, suffix=None, prefix=None, dir=None, delete=True, *, errors=None, delete_on_close=True) + + This function operates exactly as :func:`TemporaryFile` does, except the + following differences: + + * The file is guaranteed to have a visible name in the file system (on Unix, the directory entry is not unlinked). + + * The *delete_on_close* parameter is added. + The returned object is always a file-like object whose :attr:`!file` - attribute is the underlying true file object. This file-like object can - be used in a :keyword:`with` statement, just like a normal file. + attribute is the underlying true file object. This file-like object can be + used in a :keyword:`with` statement, just like a normal file. + + The name of the temporary file can be retrieved from the :attr:`name` + attribute of the returned file-like object. Whether the name can be used to + open the file a second time, while the named temporary file is still open, + varies across platforms (it can be so used on Unix; it cannot on Windows). + + If *delete* is true (the default) and *delete_on_close* is true (the + default), the file is deleted as soon as it is closed. If *delete* is true + and *delete_on_close* is false, the file is deleted on context manager exit + only. If *delete* is false, the value of *delete_on_close* is ignored. + + To use the name of the temporary file to open the closed file second time, + either make sure not to delete the file upon closure (set the *delete* + parameter to be false) or, in case the temporary file is created in a + :keyword:`with` statement, set the *delete_on_close* to be false. The latter + approach is recommended as it provides assistance in automatic cleaning of + the temporary file upon the context manager exit. On POSIX (only), a process that is terminated abruptly with SIGKILL cannot automatically delete any NamedTemporaryFiles it created. @@ -98,6 +113,9 @@ The module defines the following user-callable items: .. versionchanged:: 3.8 Added *errors* parameter. + .. versionchanged:: 3.12 + Added *delete_on_close* parameter. + .. class:: SpooledTemporaryFile(max_size=0, mode='w+b', buffering=-1, encoding=None, newline=None, suffix=None, prefix=None, dir=None, *, errors=None) @@ -346,6 +364,22 @@ Here are some examples of typical usage of the :mod:`tempfile` module:: >>> # file is now closed and removed + # create a temporary file using a context manager, note the name, + # close the file, use the name to open the file again + >>> with tempfile.TemporaryFile(delete_on_close=False) as fp: + ... fp.write(b'Hello world!') + ... fp_name = fp.name + ... fp.close() + # the file is closed, but not removed + # open the file again by using its name + ... f = open(fp_name) + ... f.seek(0) + ... f.read() + b'Hello world!' + ... f.close() + >>> + # file is now removed + # create a temporary directory using the context manager >>> with tempfile.TemporaryDirectory() as tmpdirname: ... print('created temporary directory', tmpdirname) diff --git a/Doc/whatsnew/3.12.rst b/Doc/whatsnew/3.12.rst index 4493476cb03183..03fc5042c62286 100644 --- a/Doc/whatsnew/3.12.rst +++ b/Doc/whatsnew/3.12.rst @@ -79,6 +79,7 @@ New Features Other Language Changes ====================== +* XXX The :func:`tempfile.NamedTemporaryFile` has a new optional parameter *delete_on_close* (Contributed by Evgeny Zorin in :issue:`14243`.) New Modules diff --git a/Misc/NEWS.d/next/Library/2020-09-28-04-56-04.bpo-14243.YECnxv.rst b/Misc/NEWS.d/next/Library/2020-09-28-04-56-04.bpo-14243.YECnxv.rst index e01523e9a66a9b..08429680d06bbe 100644 --- a/Misc/NEWS.d/next/Library/2020-09-28-04-56-04.bpo-14243.YECnxv.rst +++ b/Misc/NEWS.d/next/Library/2020-09-28-04-56-04.bpo-14243.YECnxv.rst @@ -1,16 +1 @@ -At the moment ``NamedTemporaryFile`` is too hard to use portably when you -need to open the file by name after writing to it. To do that, you need to -close the file first (on Windows), which means you have to pass -`delete=False`, which in turn means that you get no help in cleaning up the -actual file resource. - -The issue is solved by adding an additional optional argument to -``NamedTemporaryFile()`` ``delete_on_close`` (default is ``True``). It works -in combination with already existing argument ``'delete'``, and determines -whether created temporary file gets deleted on close (which until this change -was the only functionality available and it remains default now). - -If ``delete = True and delete_on_close = False`` then temporary file gets -deleted on context manager exit only (which is a new functionality). - -If ``delete is not True``, then value of ``delete_on_close`` is ignored. \ No newline at end of file +The :func:`tempfile.NamedTemporaryFile` has a new optional parameter *delete_on_close* \ No newline at end of file From 39e8b50e77b9b118bda2284a7833f39ad32e8fa7 Mon Sep 17 00:00:00 2001 From: Ev2geny Date: Sun, 29 May 2022 23:52:37 +0200 Subject: [PATCH 11/33] Minor documentation update --- Doc/whatsnew/3.12.rst | 2 +- .../next/Library/2020-09-28-04-56-04.bpo-14243.YECnxv.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Doc/whatsnew/3.12.rst b/Doc/whatsnew/3.12.rst index 03fc5042c62286..237bb9e2f9c1bf 100644 --- a/Doc/whatsnew/3.12.rst +++ b/Doc/whatsnew/3.12.rst @@ -79,7 +79,7 @@ New Features Other Language Changes ====================== -* XXX The :func:`tempfile.NamedTemporaryFile` has a new optional parameter *delete_on_close* (Contributed by Evgeny Zorin in :issue:`14243`.) +* XXX The :class:`tempfile.NamedTemporaryFile` has a new optional parameter *delete_on_close* (Contributed by Evgeny Zorin in :issue:`14243`.) New Modules diff --git a/Misc/NEWS.d/next/Library/2020-09-28-04-56-04.bpo-14243.YECnxv.rst b/Misc/NEWS.d/next/Library/2020-09-28-04-56-04.bpo-14243.YECnxv.rst index 08429680d06bbe..79d47cbc5add56 100644 --- a/Misc/NEWS.d/next/Library/2020-09-28-04-56-04.bpo-14243.YECnxv.rst +++ b/Misc/NEWS.d/next/Library/2020-09-28-04-56-04.bpo-14243.YECnxv.rst @@ -1 +1 @@ -The :func:`tempfile.NamedTemporaryFile` has a new optional parameter *delete_on_close* \ No newline at end of file +The :class:`tempfile.NamedTemporaryFile` has a new optional parameter *delete_on_close* \ No newline at end of file From 4d8f1528a092857b5ba3d49251d6159556af20ca Mon Sep 17 00:00:00 2001 From: Ev2geny Date: Mon, 30 May 2022 15:05:10 +0200 Subject: [PATCH 12/33] Training whitespaces removed in Doc/library/tempfile.rst --- Doc/library/tempfile.rst | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Doc/library/tempfile.rst b/Doc/library/tempfile.rst index 983c1d68ec31b2..d64b337184a2b2 100644 --- a/Doc/library/tempfile.rst +++ b/Doc/library/tempfile.rst @@ -78,12 +78,12 @@ The module defines the following user-callable items: .. function:: NamedTemporaryFile(mode='w+b', buffering=-1, encoding=None, newline=None, suffix=None, prefix=None, dir=None, delete=True, *, errors=None, delete_on_close=True) This function operates exactly as :func:`TemporaryFile` does, except the - following differences: - - * The file is guaranteed to have a visible name in the file system (on Unix, the directory entry is not unlinked). + following differences: + + * The file is guaranteed to have a visible name in the file system (on Unix, the directory entry is not unlinked). + + * The *delete_on_close* parameter is added. - * The *delete_on_close* parameter is added. - The returned object is always a file-like object whose :attr:`!file` attribute is the underlying true file object. This file-like object can be used in a :keyword:`with` statement, just like a normal file. @@ -91,8 +91,8 @@ The module defines the following user-callable items: The name of the temporary file can be retrieved from the :attr:`name` attribute of the returned file-like object. Whether the name can be used to open the file a second time, while the named temporary file is still open, - varies across platforms (it can be so used on Unix; it cannot on Windows). - + varies across platforms (it can be so used on Unix; it cannot on Windows). + If *delete* is true (the default) and *delete_on_close* is true (the default), the file is deleted as soon as it is closed. If *delete* is true and *delete_on_close* is false, the file is deleted on context manager exit @@ -364,7 +364,7 @@ Here are some examples of typical usage of the :mod:`tempfile` module:: >>> # file is now closed and removed - # create a temporary file using a context manager, note the name, + # create a temporary file using a context manager, note the name, # close the file, use the name to open the file again >>> with tempfile.TemporaryFile(delete_on_close=False) as fp: ... fp.write(b'Hello world!') @@ -377,7 +377,7 @@ Here are some examples of typical usage of the :mod:`tempfile` module:: ... f.read() b'Hello world!' ... f.close() - >>> + >>> # file is now removed # create a temporary directory using the context manager From 9ec55f52367756a823e95eb3365159305b64efb7 Mon Sep 17 00:00:00 2001 From: Ev2geny Date: Mon, 30 May 2022 15:34:53 +0200 Subject: [PATCH 13/33] New line is added to the end of the news file --- .../next/Library/2020-09-28-04-56-04.bpo-14243.YECnxv.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Misc/NEWS.d/next/Library/2020-09-28-04-56-04.bpo-14243.YECnxv.rst b/Misc/NEWS.d/next/Library/2020-09-28-04-56-04.bpo-14243.YECnxv.rst index 79d47cbc5add56..29f8185b61e3cb 100644 --- a/Misc/NEWS.d/next/Library/2020-09-28-04-56-04.bpo-14243.YECnxv.rst +++ b/Misc/NEWS.d/next/Library/2020-09-28-04-56-04.bpo-14243.YECnxv.rst @@ -1 +1 @@ -The :class:`tempfile.NamedTemporaryFile` has a new optional parameter *delete_on_close* \ No newline at end of file +The :class:`tempfile.NamedTemporaryFile` has a new optional parameter *delete_on_close* From d6f382ec8d696bccb5f7e513a748eef3df947391 Mon Sep 17 00:00:00 2001 From: Ev2geny Date: Mon, 30 May 2022 18:18:19 +0200 Subject: [PATCH 14/33] Update Doc/library/tempfile.rst Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com> --- Doc/library/tempfile.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Doc/library/tempfile.rst b/Doc/library/tempfile.rst index d64b337184a2b2..333ed6752ee83c 100644 --- a/Doc/library/tempfile.rst +++ b/Doc/library/tempfile.rst @@ -82,7 +82,8 @@ The module defines the following user-callable items: * The file is guaranteed to have a visible name in the file system (on Unix, the directory entry is not unlinked). - * The *delete_on_close* parameter is added. + * There is more granularity in the deletion behaviour of the file + (see ``delete_on_close`` below) The returned object is always a file-like object whose :attr:`!file` attribute is the underlying true file object. This file-like object can be From f9dc427784f0725e035ab4ac63547404dff9af64 Mon Sep 17 00:00:00 2001 From: Ev2geny Date: Mon, 30 May 2022 18:18:35 +0200 Subject: [PATCH 15/33] Update Doc/whatsnew/3.12.rst Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com> --- Doc/whatsnew/3.12.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Doc/whatsnew/3.12.rst b/Doc/whatsnew/3.12.rst index 237bb9e2f9c1bf..af4fd5f3147e23 100644 --- a/Doc/whatsnew/3.12.rst +++ b/Doc/whatsnew/3.12.rst @@ -79,7 +79,7 @@ New Features Other Language Changes ====================== -* XXX The :class:`tempfile.NamedTemporaryFile` has a new optional parameter *delete_on_close* (Contributed by Evgeny Zorin in :issue:`14243`.) +* The :class:`tempfile.NamedTemporaryFile` has a new optional parameter *delete_on_close* (Contributed by Evgeny Zorin in :gh:`22431`.) New Modules From e29b7d2d5baf2eb5620aabb21bc589ff03b5469f Mon Sep 17 00:00:00 2001 From: Ev2geny Date: Tue, 31 May 2022 12:55:09 +0200 Subject: [PATCH 16/33] Update Doc/whatsnew/3.12.rst changing issue number to github issue number in documentation Co-authored-by: Steve Dower --- Doc/whatsnew/3.12.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Doc/whatsnew/3.12.rst b/Doc/whatsnew/3.12.rst index af4fd5f3147e23..b4bf3690724fd2 100644 --- a/Doc/whatsnew/3.12.rst +++ b/Doc/whatsnew/3.12.rst @@ -79,7 +79,7 @@ New Features Other Language Changes ====================== -* The :class:`tempfile.NamedTemporaryFile` has a new optional parameter *delete_on_close* (Contributed by Evgeny Zorin in :gh:`22431`.) +* The :class:`tempfile.NamedTemporaryFile` has a new optional parameter *delete_on_close* (Contributed by Evgeny Zorin in :gh:`58451`.) New Modules From d003a3937fb33169cd26444a52146d6f6ef74c43 Mon Sep 17 00:00:00 2001 From: Ev2geny Date: Tue, 31 May 2022 17:00:04 +0200 Subject: [PATCH 17/33] Documentation in tempfile.rst is updated based on the feedback from @eryksun --- Doc/library/tempfile.rst | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/Doc/library/tempfile.rst b/Doc/library/tempfile.rst index 333ed6752ee83c..1ca8e1f15e271d 100644 --- a/Doc/library/tempfile.rst +++ b/Doc/library/tempfile.rst @@ -87,18 +87,29 @@ The module defines the following user-callable items: The returned object is always a file-like object whose :attr:`!file` attribute is the underlying true file object. This file-like object can be - used in a :keyword:`with` statement, just like a normal file. - - The name of the temporary file can be retrieved from the :attr:`name` - attribute of the returned file-like object. Whether the name can be used to - open the file a second time, while the named temporary file is still open, - varies across platforms (it can be so used on Unix; it cannot on Windows). + used in a :keyword:`with` statement, just like a normal file.The name of the + temporary file can be retrieved from the :attr:`name` attribute of the + returned file-like object. If *delete* is true (the default) and *delete_on_close* is true (the default), the file is deleted as soon as it is closed. If *delete* is true and *delete_on_close* is false, the file is deleted on context manager exit only. If *delete* is false, the value of *delete_on_close* is ignored. + Whether the name of the temporary file can be used to open the file a second + time, while the named temporary file is still open, varies across platforms: + + * It can be so used on Unix. + + * In Windows, the file can be opened again if *delete_on_close* is false or if + the open shares delete access (e.g. by calling ``CreateFileW()`` directly with + ``FILE_SHARE_DELETE``, or calling :func:`os.open` with ``O_TEMPORARY``). If + *delete_on_close* is false, and the file is opened again without sharing + delete access (e.g. via builtin :func:`open`), then the second open must be + closed before exiting the context manager, else the :func:`os.unlink` call on + context manager exit will fail with a ``PermissionError`` due to an OS + sharing-violation error (32). + To use the name of the temporary file to open the closed file second time, either make sure not to delete the file upon closure (set the *delete* parameter to be false) or, in case the temporary file is created in a @@ -106,6 +117,16 @@ The module defines the following user-callable items: approach is recommended as it provides assistance in automatic cleaning of the temporary file upon the context manager exit. + In Windows, if *delete_on_close* is false, and the file is created in a + directory for which the user lacks delete access (either directly for files + as an inherited rule that grants ``DELETE`` access, or at the directory level + via ``FILE_DELETE_CHILD`` access), then the :func:`os.unlink` call on exit of + the context manager will fail with a ``PermissionError`` due to an OS + access-denied error (5). This cannot happen when *delete_on_close* is true + because ``DELETE`` access is implicitly requested when ``CreateFileW()`` is + called with ``FILE_FLAG_DELETE_ON_CLOSE``, so the open immediately fails if + the caller lacks delete access. + On POSIX (only), a process that is terminated abruptly with SIGKILL cannot automatically delete any NamedTemporaryFiles it created. From 3ac4e20aea1930a52fdba2a27caf8112b5c4efbd Mon Sep 17 00:00:00 2001 From: Ev2geny Date: Tue, 31 May 2022 17:10:21 +0200 Subject: [PATCH 18/33] Information in whatsnew is moved to the section Improved modules based on the feedback from AA-Turner --- Doc/whatsnew/3.12.rst | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Doc/whatsnew/3.12.rst b/Doc/whatsnew/3.12.rst index b4bf3690724fd2..d43747fd737e2d 100644 --- a/Doc/whatsnew/3.12.rst +++ b/Doc/whatsnew/3.12.rst @@ -79,7 +79,6 @@ New Features Other Language Changes ====================== -* The :class:`tempfile.NamedTemporaryFile` has a new optional parameter *delete_on_close* (Contributed by Evgeny Zorin in :gh:`58451`.) New Modules @@ -91,6 +90,10 @@ New Modules Improved Modules ================ +tempfile +-------- + +The :class:`tempfile.NamedTemporaryFile` has a new optional parameter *delete_on_close* (Contributed by Evgeny Zorin in :gh:`58451`.) Optimizations ============= From 653cf279070b80b177ed19f18a6495a0b6e763ef Mon Sep 17 00:00:00 2001 From: Ev2geny Date: Tue, 7 Jun 2022 12:55:38 +0200 Subject: [PATCH 19/33] Update Doc/whatsnew/3.12.rst Wrap lines at 70-80 chars in the Doc/whatsnew/3.12.rst Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com> --- Doc/whatsnew/3.12.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Doc/whatsnew/3.12.rst b/Doc/whatsnew/3.12.rst index d43747fd737e2d..e38572c1960b84 100644 --- a/Doc/whatsnew/3.12.rst +++ b/Doc/whatsnew/3.12.rst @@ -93,7 +93,8 @@ Improved Modules tempfile -------- -The :class:`tempfile.NamedTemporaryFile` has a new optional parameter *delete_on_close* (Contributed by Evgeny Zorin in :gh:`58451`.) +The :class:`tempfile.NamedTemporaryFile` has a new optional parameter +*delete_on_close* (Contributed by Evgeny Zorin in :gh:`58451`.) Optimizations ============= From d5d07f471c572a20e44230fc0ec4025e14cbbfa5 Mon Sep 17 00:00:00 2001 From: Ev2geny Date: Thu, 9 Jun 2022 19:11:19 +0200 Subject: [PATCH 20/33] Update Doc/library/tempfile.rst Update to documentation (Doc/library/tempfile.rst) based on the review of eryksun Co-authored-by: Eryk Sun --- Doc/library/tempfile.rst | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/Doc/library/tempfile.rst b/Doc/library/tempfile.rst index 1ca8e1f15e271d..0b7f9df7b7360a 100644 --- a/Doc/library/tempfile.rst +++ b/Doc/library/tempfile.rst @@ -101,14 +101,13 @@ The module defines the following user-callable items: * It can be so used on Unix. - * In Windows, the file can be opened again if *delete_on_close* is false or if - the open shares delete access (e.g. by calling ``CreateFileW()`` directly with - ``FILE_SHARE_DELETE``, or calling :func:`os.open` with ``O_TEMPORARY``). If - *delete_on_close* is false, and the file is opened again without sharing - delete access (e.g. via builtin :func:`open`), then the second open must be - closed before exiting the context manager, else the :func:`os.unlink` call on - context manager exit will fail with a ``PermissionError`` due to an OS - sharing-violation error (32). + * In Windows, the file can be opened again if *delete_on_close* is false or + if the open shares delete access (e.g. by calling :func:`os.open` with the + flag ``O_TEMPORARY``). If *delete_on_close* is false, and the file is + opened again without sharing delete access (e.g. via builtin :func:`open`), + then the second open must be closed before exiting the context manager, + else the :func:`os.unlink` call on context manager exit will fail with a + ``PermissionError``. To use the name of the temporary file to open the closed file second time, either make sure not to delete the file upon closure (set the *delete* From 0b32b2821be2f8cb2121b31e9646b4be8d6aeb4c Mon Sep 17 00:00:00 2001 From: Ev2geny Date: Thu, 9 Jun 2022 19:11:33 +0200 Subject: [PATCH 21/33] Update Doc/library/tempfile.rst Update to documentation (Doc/library/tempfile.rst) based on the review of eryksun Co-authored-by: Eryk Sun --- Doc/library/tempfile.rst | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/Doc/library/tempfile.rst b/Doc/library/tempfile.rst index 0b7f9df7b7360a..49f858eefbebe7 100644 --- a/Doc/library/tempfile.rst +++ b/Doc/library/tempfile.rst @@ -117,14 +117,11 @@ The module defines the following user-callable items: the temporary file upon the context manager exit. In Windows, if *delete_on_close* is false, and the file is created in a - directory for which the user lacks delete access (either directly for files - as an inherited rule that grants ``DELETE`` access, or at the directory level - via ``FILE_DELETE_CHILD`` access), then the :func:`os.unlink` call on exit of - the context manager will fail with a ``PermissionError`` due to an OS - access-denied error (5). This cannot happen when *delete_on_close* is true - because ``DELETE`` access is implicitly requested when ``CreateFileW()`` is - called with ``FILE_FLAG_DELETE_ON_CLOSE``, so the open immediately fails if - the caller lacks delete access. + directory for which the user lacks delete access, then the :func:`os.unlink` + call on exit of the context manager will fail with a ``PermissionError``. + This cannot happen when *delete_on_close* is true because delete access is + requested by the open, which fails immediately if the requested access is + not granted. On POSIX (only), a process that is terminated abruptly with SIGKILL cannot automatically delete any NamedTemporaryFiles it created. From 5773e7142b0409344cbffedc0cc9d812385216ce Mon Sep 17 00:00:00 2001 From: Ev2geny Date: Thu, 9 Jun 2022 19:42:03 +0200 Subject: [PATCH 22/33] wrapping at 80 characters is implemented on the Doc/library/tempfile.rs --- Doc/library/tempfile.rst | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Doc/library/tempfile.rst b/Doc/library/tempfile.rst index 49f858eefbebe7..c754913963fc13 100644 --- a/Doc/library/tempfile.rst +++ b/Doc/library/tempfile.rst @@ -80,10 +80,11 @@ The module defines the following user-callable items: This function operates exactly as :func:`TemporaryFile` does, except the following differences: - * The file is guaranteed to have a visible name in the file system (on Unix, the directory entry is not unlinked). + * The file is guaranteed to have a visible name in the file system (on Unix, + the directory entry is not unlinked). - * There is more granularity in the deletion behaviour of the file - (see ``delete_on_close`` below) + * There is more granularity in the deletion behaviour of the file (see + ``delete_on_close`` below) The returned object is always a file-like object whose :attr:`!file` attribute is the underlying true file object. This file-like object can be @@ -120,8 +121,8 @@ The module defines the following user-callable items: directory for which the user lacks delete access, then the :func:`os.unlink` call on exit of the context manager will fail with a ``PermissionError``. This cannot happen when *delete_on_close* is true because delete access is - requested by the open, which fails immediately if the requested access is - not granted. + requested by the open, which fails immediately if the requested access is not + granted. On POSIX (only), a process that is terminated abruptly with SIGKILL cannot automatically delete any NamedTemporaryFiles it created. From d98f2705d1177cd771cab2ad048a55090dc6b3d6 Mon Sep 17 00:00:00 2001 From: Ev2geny Date: Sat, 17 Sep 2022 10:44:39 +0200 Subject: [PATCH 23/33] Update Doc/whatsnew/3.12.rst MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Éric --- Doc/whatsnew/3.12.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Doc/whatsnew/3.12.rst b/Doc/whatsnew/3.12.rst index e38572c1960b84..f98e27079cf475 100644 --- a/Doc/whatsnew/3.12.rst +++ b/Doc/whatsnew/3.12.rst @@ -93,7 +93,7 @@ Improved Modules tempfile -------- -The :class:`tempfile.NamedTemporaryFile` has a new optional parameter +The :class:`tempfile.NamedTemporaryFile` class has a new optional parameter *delete_on_close* (Contributed by Evgeny Zorin in :gh:`58451`.) Optimizations From 9598e6b99fbb1763c574ce853f14d6f02d04d578 Mon Sep 17 00:00:00 2001 From: Ev2geny Date: Sat, 17 Sep 2022 10:52:06 +0200 Subject: [PATCH 24/33] Update Doc/library/tempfile.rst Co-authored-by: Eryk Sun --- Doc/library/tempfile.rst | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/Doc/library/tempfile.rst b/Doc/library/tempfile.rst index c754913963fc13..a0ad519f40c7f2 100644 --- a/Doc/library/tempfile.rst +++ b/Doc/library/tempfile.rst @@ -97,25 +97,14 @@ The module defines the following user-callable items: and *delete_on_close* is false, the file is deleted on context manager exit only. If *delete* is false, the value of *delete_on_close* is ignored. - Whether the name of the temporary file can be used to open the file a second - time, while the named temporary file is still open, varies across platforms: - - * It can be so used on Unix. - - * In Windows, the file can be opened again if *delete_on_close* is false or - if the open shares delete access (e.g. by calling :func:`os.open` with the - flag ``O_TEMPORARY``). If *delete_on_close* is false, and the file is - opened again without sharing delete access (e.g. via builtin :func:`open`), - then the second open must be closed before exiting the context manager, - else the :func:`os.unlink` call on context manager exit will fail with a - ``PermissionError``. - - To use the name of the temporary file to open the closed file second time, - either make sure not to delete the file upon closure (set the *delete* - parameter to be false) or, in case the temporary file is created in a - :keyword:`with` statement, set the *delete_on_close* to be false. The latter - approach is recommended as it provides assistance in automatic cleaning of - the temporary file upon the context manager exit. + While the named temporary file is open, the file can always be opened again + on POSIX. On Windows, it can be opened again if *delete* is false, or if + *delete_on_close* is false, or if the additional open shares delete access + (e.g. by calling :func:`os.open` with the flag ``O_TEMPORARY``). On + Windows, if *delete* is true and *delete_on_close* is false, additional + opens that do not share delete access (e.g. via builtin :func:`open`) must + be closed before exiting the context manager, else the :func:`os.unlink` + call on context manager exit will fail with a ``PermissionError``. In Windows, if *delete_on_close* is false, and the file is created in a directory for which the user lacks delete access, then the :func:`os.unlink` From 5a7e177dc2fe4f7183a6d6c1ef3a015e2c10171b Mon Sep 17 00:00:00 2001 From: Ev2geny Date: Sat, 17 Sep 2022 11:31:33 +0200 Subject: [PATCH 25/33] Restored (probably accidentry removed by @eryksun's suggestion) paragraph in the documentation text about the use of the name of the temporary file to open the closed file second time --- Doc/library/tempfile.rst | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Doc/library/tempfile.rst b/Doc/library/tempfile.rst index a0ad519f40c7f2..cfd91e92dbd055 100644 --- a/Doc/library/tempfile.rst +++ b/Doc/library/tempfile.rst @@ -90,7 +90,7 @@ The module defines the following user-callable items: attribute is the underlying true file object. This file-like object can be used in a :keyword:`with` statement, just like a normal file.The name of the temporary file can be retrieved from the :attr:`name` attribute of the - returned file-like object. + returned file-like object. If *delete* is true (the default) and *delete_on_close* is true (the default), the file is deleted as soon as it is closed. If *delete* is true @@ -106,6 +106,13 @@ The module defines the following user-callable items: be closed before exiting the context manager, else the :func:`os.unlink` call on context manager exit will fail with a ``PermissionError``. + To use the name of the temporary file to open the closed file second time, + either make sure not to delete the file upon closure (set the *delete* + parameter to be false) or, in case the temporary file is created in a + :keyword:`with` statement, set the *delete_on_close* to be false. The latter + approach is recommended as it provides assistance in automatic cleaning of + the temporary file upon the context manager exit. + In Windows, if *delete_on_close* is false, and the file is created in a directory for which the user lacks delete access, then the :func:`os.unlink` call on exit of the context manager will fail with a ``PermissionError``. From 7e7ad851aa629fe1774633180704e931aa0bf8e1 Mon Sep 17 00:00:00 2001 From: Ev2geny Date: Sat, 17 Sep 2022 12:10:03 +0200 Subject: [PATCH 26/33] Additional minor changes to documentation, based on suggestions from @merwok --- Doc/library/tempfile.rst | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Doc/library/tempfile.rst b/Doc/library/tempfile.rst index cfd91e92dbd055..fc73bf7c2a8740 100644 --- a/Doc/library/tempfile.rst +++ b/Doc/library/tempfile.rst @@ -104,18 +104,18 @@ The module defines the following user-callable items: Windows, if *delete* is true and *delete_on_close* is false, additional opens that do not share delete access (e.g. via builtin :func:`open`) must be closed before exiting the context manager, else the :func:`os.unlink` - call on context manager exit will fail with a ``PermissionError``. + call on context manager exit will fail with a :exc:`PermissionError`. To use the name of the temporary file to open the closed file second time, either make sure not to delete the file upon closure (set the *delete* parameter to be false) or, in case the temporary file is created in a - :keyword:`with` statement, set the *delete_on_close* to be false. The latter - approach is recommended as it provides assistance in automatic cleaning of - the temporary file upon the context manager exit. + :keyword:`with` statement, set the *delete_on_close* parameter to be false. + The latter approach is recommended as it provides assistance in automatic + cleaning of the temporary file upon the context manager exit. - In Windows, if *delete_on_close* is false, and the file is created in a + On Windows, if *delete_on_close* is false, and the file is created in a directory for which the user lacks delete access, then the :func:`os.unlink` - call on exit of the context manager will fail with a ``PermissionError``. + call on exit of the context manager will fail with a :exc:`PermissionError`. This cannot happen when *delete_on_close* is true because delete access is requested by the open, which fails immediately if the requested access is not granted. From 4d5677e6e50d56622b3762f3c1c969af5a36f1e3 Mon Sep 17 00:00:00 2001 From: Ev2geny Date: Sat, 17 Sep 2022 13:07:31 +0200 Subject: [PATCH 27/33] Update Lib/tempfile.py Co-authored-by: Eryk Sun --- Lib/tempfile.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Lib/tempfile.py b/Lib/tempfile.py index 9fcb040ed9ced3..f6839595e8342b 100644 --- a/Lib/tempfile.py +++ b/Lib/tempfile.py @@ -542,9 +542,9 @@ def NamedTemporaryFile(mode='w+b', buffering=-1, encoding=None, 'buffering' -- the buffer size argument to io.open (default -1). 'encoding' -- the encoding argument to io.open (default None) 'newline' -- the newline argument to io.open (default None) - 'delete' -- whether the file is deleted at the end. When exactly file gets - deleted (either on close or on context manager exit) is determined by - parameter delete_on_close. (default True). + 'delete' -- whether the file is automatically deleted (default True). + 'delete_on_close' -- if 'delete', whether the file is deleted on close + or on context exit (default True). 'errors' -- the errors argument to io.open (default None) The file is created as mkstemp() would do it. 'delete_on_close' -- if 'delete', then determines whether file gets deleted From cf5b1b5dc7d58b88d38866344fb0a7c59d3779bc Mon Sep 17 00:00:00 2001 From: Ev2geny Date: Sat, 17 Sep 2022 13:11:59 +0200 Subject: [PATCH 28/33] Update Lib/tempfile.py Co-authored-by: Eryk Sun --- Lib/tempfile.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/Lib/tempfile.py b/Lib/tempfile.py index f6839595e8342b..8ce88524eb0ec6 100644 --- a/Lib/tempfile.py +++ b/Lib/tempfile.py @@ -547,9 +547,6 @@ def NamedTemporaryFile(mode='w+b', buffering=-1, encoding=None, or on context exit (default True). 'errors' -- the errors argument to io.open (default None) The file is created as mkstemp() would do it. - 'delete_on_close' -- if 'delete', then determines whether file gets deleted - on close. Otherwise it gets deleted on context manager exit - (default True) Returns an object with a file-like interface; the name of the file is accessible as its 'name' attribute. The file will be automatically From 7fd339ae8e8ecd2520c31201b666c6aa420492e5 Mon Sep 17 00:00:00 2001 From: Ev2geny Date: Sat, 17 Sep 2022 13:13:41 +0200 Subject: [PATCH 29/33] Update Lib/tempfile.py Co-authored-by: Eryk Sun --- Lib/tempfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib/tempfile.py b/Lib/tempfile.py index 8ce88524eb0ec6..7333583e2b2e42 100644 --- a/Lib/tempfile.py +++ b/Lib/tempfile.py @@ -503,7 +503,7 @@ def __enter__(self): def __exit__(self, exc, value, tb): result = self.file.__exit__(exc, value, tb) self.close() - # if file is to be deleted, bot not on closure, deleting it now + # If the file is to be deleted, but not on close, delete it now. if self.delete and not self.delete_on_close: try: _os.unlink(self.name) From da71a9690708b2a38c4fc9a5af5ced23dbad7a33 Mon Sep 17 00:00:00 2001 From: Ev2geny Date: Sat, 17 Sep 2022 13:14:25 +0200 Subject: [PATCH 30/33] Update Lib/tempfile.py Co-authored-by: Eryk Sun --- Lib/tempfile.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Lib/tempfile.py b/Lib/tempfile.py index 7333583e2b2e42..23d76bbf0b4767 100644 --- a/Lib/tempfile.py +++ b/Lib/tempfile.py @@ -507,8 +507,8 @@ def __exit__(self, exc, value, tb): if self.delete and not self.delete_on_close: try: _os.unlink(self.name) - # It shall be Ok to ignore FileNotFoundError, because user may - # have deleted the file already before content manager came to it + # It is okay to ignore FileNotFoundError. The file may have + # been deleted already. except FileNotFoundError: pass From b1f5152d5ce9dfcc74fc051c2c39e53c9215acb0 Mon Sep 17 00:00:00 2001 From: Ev2geny Date: Sat, 17 Sep 2022 20:20:40 +0200 Subject: [PATCH 31/33] Update Doc/library/tempfile.rst Co-authored-by: Eryk Sun --- Doc/library/tempfile.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Doc/library/tempfile.rst b/Doc/library/tempfile.rst index fc73bf7c2a8740..5914731470ff9b 100644 --- a/Doc/library/tempfile.rst +++ b/Doc/library/tempfile.rst @@ -88,7 +88,7 @@ The module defines the following user-callable items: The returned object is always a file-like object whose :attr:`!file` attribute is the underlying true file object. This file-like object can be - used in a :keyword:`with` statement, just like a normal file.The name of the + used in a :keyword:`with` statement, just like a normal file. The name of the temporary file can be retrieved from the :attr:`name` attribute of the returned file-like object. From 07076e83126f246d1480418f46071d8e2cdedf80 Mon Sep 17 00:00:00 2001 From: Ev2geny Date: Sun, 18 Sep 2022 23:41:53 +0200 Subject: [PATCH 32/33] Merged with master and resolved merge conflicsts in Doc/whatsnew/3.12.rst and in Lib/tempfile.py --- .azure-pipelines/ci.yml | 4 +- .azure-pipelines/find-tools.yml | 26 - .azure-pipelines/libffi-build.yml | 86 - .azure-pipelines/openssl-build.yml | 110 - .azure-pipelines/pr.yml | 4 +- .azure-pipelines/tcltk-build.yml | 71 - .gitattributes | 51 +- .github/CODEOWNERS | 12 +- .github/CONTRIBUTING.rst | 8 +- .github/ISSUE_TEMPLATE/bug.md | 4 +- .github/ISSUE_TEMPLATE/crash.md | 6 +- .github/ISSUE_TEMPLATE/documentation.md | 2 +- .github/ISSUE_TEMPLATE/feature.md | 6 +- .github/workflows/build.yml | 6 +- .github/workflows/build_msi.yml | 37 +- .github/workflows/doc.yml | 46 +- .github/workflows/project-updater.yml | 27 + .github/workflows/regen-abidump.sh | 8 + .github/workflows/verify-ensurepip-wheels.yml | 28 + .gitignore | 5 + Doc/about.rst | 4 +- Doc/c-api/allocation.rst | 2 +- Doc/c-api/call.rst | 27 +- Doc/c-api/code.rst | 25 + Doc/c-api/datetime.rst | 19 + Doc/c-api/function.rst | 9 + Doc/c-api/init.rst | 24 + Doc/c-api/init_config.rst | 19 +- Doc/c-api/intro.rst | 4 +- Doc/c-api/long.rst | 17 +- Doc/c-api/memory.rst | 2 +- Doc/c-api/object.rst | 18 + Doc/c-api/structures.rst | 16 +- Doc/c-api/sys.rst | 8 +- Doc/c-api/type.rst | 42 +- Doc/c-api/typeobj.rst | 205 +- Doc/c-api/unicode.rst | 10 +- Doc/c-api/veryhigh.rst | 4 +- Doc/c-api/weakref.rst | 4 +- Doc/conf.py | 16 +- Doc/contents.rst | 1 - Doc/data/refcounts.dat | 8 + Doc/data/stable_abi.dat | 3 + Doc/distributing/index.rst | 12 +- Doc/distutils/_setuptools_disclaimer.rst | 5 - Doc/distutils/apiref.rst | 2041 - Doc/distutils/builtdist.rst | 392 - Doc/distutils/commandref.rst | 105 - Doc/distutils/configfile.rst | 144 - Doc/distutils/examples.rst | 340 - Doc/distutils/extending.rst | 98 - Doc/distutils/index.rst | 49 - Doc/distutils/introduction.rst | 203 - Doc/distutils/packageindex.rst | 16 - Doc/distutils/setupscript.rst | 713 - Doc/distutils/sourcedist.rst | 245 - Doc/distutils/uploading.rst | 8 - Doc/extending/building.rst | 128 +- Doc/extending/index.rst | 4 +- Doc/extending/newtypes.rst | 35 +- Doc/extending/windows.rst | 8 +- Doc/faq/design.rst | 13 +- Doc/faq/extending.rst | 8 +- Doc/faq/general.rst | 6 +- Doc/faq/library.rst | 12 +- Doc/faq/programming.rst | 15 +- Doc/glossary.rst | 8 +- Doc/howto/clinic.rst | 11 +- Doc/howto/cporting.rst | 2 +- Doc/howto/curses.rst | 6 +- Doc/howto/descriptor.rst | 22 +- Doc/howto/enum.rst | 19 +- Doc/howto/functional.rst | 37 +- Doc/howto/index.rst | 2 + Doc/howto/instrumentation.rst | 4 +- Doc/howto/isolating-extensions.rst | 536 + Doc/howto/logging-cookbook.rst | 449 +- Doc/howto/logging.rst | 12 +- Doc/howto/perf_profiling.rst | 203 + Doc/howto/pyporting.rst | 6 +- Doc/howto/regex.rst | 2 +- Doc/howto/sockets.rst | 19 +- Doc/howto/unicode.rst | 6 +- Doc/howto/urllib2.rst | 10 +- Doc/includes/email-headers.py | 3 +- Doc/includes/sqlite3/adapter_datetime.py | 17 - Doc/includes/sqlite3/adapter_point_1.py | 18 - Doc/includes/sqlite3/adapter_point_2.py | 19 - Doc/includes/sqlite3/blob.py | 19 - Doc/includes/sqlite3/collation_reverse.py | 20 - Doc/includes/sqlite3/complete_statement.py | 33 - Doc/includes/sqlite3/converter_point.py | 47 - Doc/includes/sqlite3/ctx_manager.py | 20 - Doc/includes/sqlite3/execute_1.py | 22 - Doc/includes/sqlite3/executemany_1.py | 26 - Doc/includes/sqlite3/executemany_2.py | 17 - Doc/includes/sqlite3/executescript.py | 25 - Doc/includes/sqlite3/load_extension.py | 28 - Doc/includes/sqlite3/md5func.py | 13 - Doc/includes/sqlite3/mysumaggr.py | 22 - Doc/includes/sqlite3/pysqlite_datetime.py | 22 - Doc/includes/sqlite3/row_factory.py | 15 - Doc/includes/sqlite3/rowclass.py | 14 - Doc/includes/sqlite3/shortcut_methods.py | 24 - Doc/includes/sqlite3/sumintwindow.py | 46 - Doc/includes/sqlite3/text_factory.py | 29 - Doc/includes/wasm-notavail.rst | 7 + Doc/install/index.rst | 10 +- Doc/installing/index.rst | 2 +- Doc/library/2to3.rst | 8 +- Doc/library/_thread.rst | 4 +- Doc/library/argparse.rst | 11 +- Doc/library/array.rst | 2 +- Doc/library/ast.rst | 13 +- Doc/library/asynchat.rst | 3 +- Doc/library/asyncio-api-index.rst | 29 +- Doc/library/asyncio-eventloop.rst | 22 +- Doc/library/asyncio-extending.rst | 6 - Doc/library/asyncio-future.rst | 2 +- Doc/library/asyncio-llapi-index.rst | 6 +- Doc/library/asyncio-runner.rst | 4 +- Doc/library/asyncio-stream.rst | 2 +- Doc/library/asyncio-sync.rst | 8 +- Doc/library/asyncio-task.rst | 275 +- Doc/library/asyncio.rst | 1 + Doc/library/asyncore.rst | 2 + Doc/library/base64.rst | 2 +- Doc/library/bdb.rst | 181 +- Doc/library/bisect.rst | 40 +- Doc/library/cgi.rst | 32 + Doc/library/codecs.rst | 2 +- Doc/library/collections.rst | 2 +- Doc/library/compileall.rst | 1 + Doc/library/concurrent.futures.rst | 10 +- Doc/library/configparser.rst | 29 +- Doc/library/contextlib.rst | 2 +- Doc/library/crypt.rst | 4 +- Doc/library/csv.rst | 4 + Doc/library/ctypes.rst | 49 +- Doc/library/custominterp.rst | 2 +- Doc/library/dataclasses.rst | 51 + Doc/library/datetime.rst | 26 +- Doc/library/decimal.rst | 10 +- Doc/library/difflib.rst | 10 +- Doc/library/dis.rst | 281 +- Doc/library/distribution.rst | 1 - Doc/library/distutils.rst | 49 - Doc/library/doctest.rst | 4 +- Doc/library/email.header.rst | 2 +- Doc/library/email.rst | 3 - Doc/library/ensurepip.rst | 1 + Doc/library/enum.rst | 11 +- Doc/library/errno.rst | 9 + Doc/library/exceptions.rst | 7 +- Doc/library/fcntl.rst | 8 + Doc/library/fractions.rst | 3 + Doc/library/ftplib.rst | 2 + Doc/library/functions.rst | 13 +- Doc/library/functools.rst | 8 +- Doc/library/getpass.rst | 3 +- Doc/library/gettext.rst | 2 +- Doc/library/glob.rst | 2 +- Doc/library/grp.rst | 9 +- Doc/library/gzip.rst | 4 + Doc/library/hashlib.rst | 20 +- Doc/library/hmac.rst | 4 +- Doc/library/html.entities.rst | 6 +- Doc/library/http.client.rst | 4 +- Doc/library/http.cookiejar.rst | 17 +- Doc/library/http.cookies.rst | 2 +- Doc/library/http.rst | 25 + Doc/library/http.server.rst | 15 +- Doc/library/idle.rst | 106 +- Doc/library/imaplib.rst | 2 + Doc/library/importlib.metadata.rst | 41 +- Doc/library/importlib.resources.abc.rst | 272 +- Doc/library/importlib.resources.rst | 104 +- Doc/library/importlib.rst | 255 +- Doc/library/inspect.rst | 4 +- Doc/library/intro.rst | 59 + Doc/library/io.rst | 10 +- Doc/library/itertools.rst | 55 +- Doc/library/json.rst | 58 +- Doc/library/locale.rst | 20 +- Doc/library/logging.config.rst | 89 + Doc/library/logging.handlers.rst | 40 +- Doc/library/logging.rst | 238 +- Doc/library/mailbox.rst | 2 +- Doc/library/mailcap.rst | 12 + Doc/library/math.rst | 8 +- Doc/library/mmap.rst | 4 +- Doc/library/modules.rst | 1 + Doc/library/multiprocessing.rst | 16 +- Doc/library/multiprocessing.shared_memory.rst | 4 +- Doc/library/nis.rst | 2 + Doc/library/nntplib.rst | 19 + Doc/library/numbers.rst | 9 +- Doc/library/optparse.rst | 8 +- Doc/library/os.path.rst | 4 +- Doc/library/os.rst | 347 +- Doc/library/pathlib.rst | 146 +- Doc/library/pipes.rst | 2 +- Doc/library/platform.rst | 2 +- Doc/library/poplib.rst | 2 + Doc/library/posix.rst | 2 +- Doc/library/pwd.rst | 2 + Doc/library/py_compile.rst | 5 +- Doc/library/queue.rst | 3 +- Doc/library/random.rst | 33 +- Doc/library/re.rst | 8 + Doc/library/reprlib.rst | 81 +- Doc/library/resource.rst | 22 +- Doc/library/secrets.rst | 8 +- Doc/library/security_warnings.rst | 2 +- Doc/library/select.rst | 5 +- Doc/library/selectors.rst | 1 + Doc/library/shlex.rst | 6 +- Doc/library/shutil.rst | 12 +- Doc/library/signal.rst | 61 +- Doc/library/smtpd.rst | 267 - Doc/library/smtplib.rst | 1 + Doc/library/socket.rst | 102 +- Doc/library/socketserver.rst | 2 + Doc/library/spwd.rst | 2 + Doc/library/sqlite3.rst | 2361 +- Doc/library/ssl.rst | 110 +- Doc/library/statistics.rst | 83 +- Doc/library/stdtypes.rst | 176 +- Doc/library/string.rst | 3 +- Doc/library/struct.rst | 11 +- Doc/library/subprocess.rst | 9 +- Doc/library/superseded.rst | 1 - Doc/library/symtable.rst | 3 +- Doc/library/sys.rst | 74 +- Doc/library/sysconfig.rst | 2 +- Doc/library/syslog.rst | 12 +- Doc/library/tarfile.rst | 9 +- Doc/library/telnetlib.rst | 1 + Doc/library/test.rst | 61 + Doc/library/threading.rst | 39 +- Doc/library/time.rst | 21 +- Doc/library/tkinter.rst | 6 +- Doc/library/tkinter.ttk.rst | 8 +- Doc/library/traceback.rst | 39 +- Doc/library/turtle.rst | 2 +- Doc/library/types.rst | 6 + Doc/library/typing.rst | 142 +- Doc/library/unicodedata.rst | 8 +- Doc/library/unittest.mock.rst | 2 +- Doc/library/unittest.rst | 59 +- Doc/library/urllib.request.rst | 3 +- Doc/library/uuid.rst | 2 +- Doc/library/venv.rst | 42 +- Doc/library/warnings.rst | 16 +- Doc/library/webbrowser.rst | 2 + Doc/library/winreg.rst | 18 +- Doc/library/wsgiref.rst | 4 +- Doc/library/xml.dom.minidom.rst | 4 +- Doc/library/xml.rst | 2 +- Doc/library/xmlrpc.client.rst | 8 +- Doc/library/xmlrpc.server.rst | 1 + Doc/library/zlib.rst | 2 +- Doc/library/zoneinfo.rst | 1 + Doc/license.rst | 8 +- Doc/reference/compound_stmts.rst | 6 +- Doc/reference/datamodel.rst | 4 +- Doc/reference/expressions.rst | 2 +- Doc/reference/import.rst | 28 +- Doc/reference/introduction.rst | 6 +- Doc/reference/lexical_analysis.rst | 43 +- Doc/tools/extensions/asdl_highlight.py | 3 +- Doc/tools/extensions/peg_highlight.py | 2 +- Doc/tools/extensions/pyspecific.py | 64 +- Doc/tools/extensions/suspicious.py | 41 +- Doc/tools/rstlint.py | 2 +- Doc/tools/susp-ignored.csv | 4 + Doc/tools/templates/download.html | 4 + Doc/tutorial/classes.rst | 2 +- Doc/tutorial/controlflow.rst | 6 +- Doc/tutorial/datastructures.rst | 8 +- Doc/tutorial/inputoutput.rst | 6 +- Doc/tutorial/modules.rst | 21 +- Doc/tutorial/stdlib.rst | 12 +- Doc/tutorial/stdlib2.rst | 3 +- Doc/tutorial/whatnow.rst | 9 +- Doc/using/cmdline.rst | 63 +- Doc/using/configure.rst | 64 +- Doc/using/mac.rst | 9 +- Doc/using/unix.rst | 2 +- Doc/using/venv-create.inc | 4 +- Doc/using/windows.rst | 72 +- Doc/whatsnew/2.0.rst | 4 +- Doc/whatsnew/2.1.rst | 7 +- Doc/whatsnew/2.3.rst | 4 +- Doc/whatsnew/2.4.rst | 6 +- Doc/whatsnew/2.5.rst | 20 +- Doc/whatsnew/2.6.rst | 22 +- Doc/whatsnew/2.7.rst | 20 +- Doc/whatsnew/3.0.rst | 8 +- Doc/whatsnew/3.1.rst | 3 +- Doc/whatsnew/3.10.rst | 57 +- Doc/whatsnew/3.11.rst | 320 +- Doc/whatsnew/3.12.rst | 419 +- Doc/whatsnew/3.2.rst | 24 +- Doc/whatsnew/3.3.rst | 14 +- Doc/whatsnew/3.4.rst | 6 +- Doc/whatsnew/3.5.rst | 4 +- Doc/whatsnew/3.6.rst | 9 +- Doc/whatsnew/3.7.rst | 15 +- Doc/whatsnew/3.8.rst | 3 + Doc/whatsnew/3.9.rst | 2 +- Grammar/python.gram | 42 +- Include/abstract.h | 26 +- Include/boolobject.h | 6 +- Include/bytearrayobject.h | 4 +- Include/bytesobject.h | 2 +- Include/ceval.h | 2 +- Include/complexobject.h | 4 +- Include/cpython/abstract.h | 12 +- Include/cpython/bytearrayobject.h | 8 +- Include/cpython/bytesobject.h | 8 +- Include/cpython/cellobject.h | 10 +- Include/cpython/ceval.h | 2 + Include/cpython/classobject.h | 10 +- Include/cpython/code.h | 21 +- Include/cpython/context.h | 6 +- Include/cpython/dictobject.h | 4 +- Include/cpython/frameobject.h | 13 - Include/cpython/funcobject.h | 61 +- Include/cpython/genobject.h | 8 +- Include/cpython/import.h | 3 + Include/cpython/initconfig.h | 1 + Include/cpython/listobject.h | 10 +- Include/cpython/methodobject.h | 20 +- Include/cpython/modsupport.h | 7 +- Include/cpython/object.h | 25 +- Include/cpython/odictobject.h | 12 +- Include/cpython/picklebufobject.h | 2 +- Include/cpython/pthread_stubs.h | 88 + Include/cpython/pydebug.h | 36 +- Include/cpython/pyerrors.h | 2 +- Include/cpython/pyframe.h | 17 + Include/cpython/pystate.h | 5 +- Include/cpython/pythonrun.h | 28 +- Include/cpython/pythread.h | 3 + Include/cpython/pytime.h | 4 + Include/cpython/tupleobject.h | 10 +- Include/cpython/unicodeobject.h | 60 +- Include/cpython/warnings.h | 2 +- Include/cpython/weakrefobject.h | 4 +- Include/datetime.h | 92 +- Include/dictobject.h | 8 +- Include/fileobject.h | 6 +- Include/floatobject.h | 2 +- Include/import.h | 2 +- Include/internal/pycore_accu.h | 39 - Include/internal/pycore_asdl.h | 4 +- Include/internal/pycore_ast_state.h | 2 + Include/internal/pycore_atomic.h | 2 +- Include/internal/pycore_ceval.h | 35 +- Include/internal/pycore_code.h | 219 +- Include/internal/pycore_compile.h | 5 + Include/internal/pycore_descrobject.h | 26 + Include/internal/pycore_dict.h | 17 +- Include/internal/pycore_frame.h | 78 +- Include/internal/pycore_global_objects.h | 2 + Include/internal/pycore_global_strings.h | 300 +- Include/internal/pycore_hamt.h | 2 +- Include/internal/pycore_hashtable.h | 4 +- Include/internal/pycore_initconfig.h | 10 +- Include/internal/pycore_interp.h | 10 +- Include/internal/pycore_list.h | 19 + Include/internal/pycore_long.h | 37 + Include/internal/pycore_object.h | 115 +- Include/internal/pycore_opcode.h | 333 +- Include/internal/pycore_pystate.h | 26 +- Include/internal/pycore_range.h | 22 + Include/internal/pycore_runtime.h | 6 +- Include/internal/pycore_runtime_init.h | 1147 +- .../internal/pycore_runtime_init_generated.h | 8200 +++ Include/internal/pycore_sliceobject.h | 2 + Include/internal/pycore_structseq.h | 9 +- Include/internal/pycore_symtable.h | 2 +- Include/internal/pycore_typeobject.h | 35 +- Include/internal/pycore_unicodeobject.h | 1 - Include/internal/pycore_unionobject.h | 4 +- Include/iterobject.h | 4 +- Include/listobject.h | 2 +- Include/longobject.h | 2 +- Include/memoryobject.h | 2 +- Include/methodobject.h | 4 +- Include/modsupport.h | 14 +- Include/moduleobject.h | 4 +- Include/object.h | 38 +- Include/objimpl.h | 4 +- Include/opcode.h | 150 +- Include/py_curses.h | 2 +- Include/pycapsule.h | 2 +- Include/pyerrors.h | 4 +- Include/pyframe.h | 6 + Include/pymacro.h | 2 + Include/pymem.h | 14 +- Include/pyport.h | 43 +- Include/pystats.h | 13 +- Include/rangeobject.h | 2 +- Include/setobject.h | 10 +- Include/sliceobject.h | 2 +- Include/structseq.h | 4 +- Include/traceback.h | 2 +- Include/tupleobject.h | 2 +- Include/unicodeobject.h | 2 +- Include/weakrefobject.h | 8 +- Lib/__future__.py | 6 +- Lib/_bootsubprocess.py | 97 - Lib/_pyio.py | 16 - Lib/argparse.py | 9 +- Lib/ast.py | 11 +- Lib/asyncio/base_events.py | 5 +- Lib/asyncio/base_futures.py | 1 - Lib/asyncio/coroutines.py | 1 - Lib/asyncio/futures.py | 3 +- Lib/asyncio/locks.py | 1 - Lib/asyncio/runners.py | 18 +- Lib/asyncio/streams.py | 40 +- Lib/asyncio/taskgroups.py | 48 +- Lib/asyncio/tasks.py | 17 +- Lib/asyncio/timeouts.py | 8 +- Lib/base64.py | 16 +- Lib/bdb.py | 17 +- Lib/codecs.py | 10 - Lib/codeop.py | 26 +- Lib/concurrent/futures/_base.py | 16 +- Lib/configparser.py | 61 +- Lib/copy.py | 2 +- Lib/crypt.py | 2 +- Lib/csv.py | 4 + Lib/ctypes/__init__.py | 8 + Lib/ctypes/test/__main__.py | 4 - Lib/dataclasses.py | 48 +- Lib/datetime.py | 45 +- Lib/dis.py | 69 +- Lib/distutils/command/install.py | 2 +- Lib/distutils/sysconfig.py | 8 +- Lib/distutils/tests/test_bdist.py | 1 - Lib/distutils/tests/test_dir_util.py | 7 +- Lib/distutils/tests/test_sysconfig.py | 11 +- Lib/email/_parseaddr.py | 4 + Lib/ensurepip/__init__.py | 18 +- .../_bundled/pip-22.0.4-py3-none-any.whl | Bin 2123599 -> 0 bytes .../_bundled/pip-22.2.2-py3-none-any.whl | Bin 0 -> 2044706 bytes .../setuptools-58.1.0-py3-none-any.whl | Bin 816725 -> 0 bytes .../setuptools-63.2.0-py3-none-any.whl | Bin 0 -> 1228000 bytes Lib/enum.py | 303 +- Lib/filecmp.py | 8 +- Lib/fileinput.py | 9 +- Lib/fnmatch.py | 30 +- Lib/fractions.py | 81 +- Lib/functools.py | 5 +- Lib/gzip.py | 8 - Lib/hashlib.py | 70 +- Lib/html/entities.py | 9 +- Lib/html/parser.py | 3 +- Lib/http/__init__.py | 20 + Lib/http/client.py | 34 +- Lib/http/cookiejar.py | 4 +- Lib/http/server.py | 14 +- Lib/idlelib/CREDITS.txt | 12 +- Lib/idlelib/NEWS.txt | 17 + Lib/idlelib/README.txt | 142 +- Lib/idlelib/browser.py | 27 +- Lib/idlelib/config.py | 2 +- Lib/idlelib/configdialog.py | 4 +- Lib/idlelib/editor.py | 20 +- Lib/idlelib/help.html | 537 +- Lib/idlelib/help.py | 4 +- Lib/idlelib/help_about.py | 5 +- Lib/idlelib/history.py | 2 +- Lib/idlelib/hyperparser.py | 4 +- Lib/idlelib/idle_test/test_browser.py | 10 + Lib/idlelib/idle_test/test_debugger_r.py | 19 +- Lib/idlelib/idle_test/test_editor.py | 1 - Lib/idlelib/idle_test/test_iomenu.py | 13 +- Lib/idlelib/idle_test/test_parenmatch.py | 4 +- Lib/idlelib/idle_test/test_run.py | 13 +- Lib/idlelib/idle_test/test_sidebar.py | 11 +- Lib/idlelib/iomenu.py | 24 +- Lib/idlelib/mainmenu.py | 5 +- Lib/idlelib/pyshell.py | 49 +- Lib/idlelib/rpc.py | 4 +- Lib/idlelib/run.py | 2 +- Lib/idlelib/searchengine.py | 2 +- Lib/idlelib/util.py | 1 - Lib/importlib/_abc.py | 14 - Lib/importlib/_bootstrap.py | 6 - Lib/importlib/_bootstrap_external.py | 40 +- Lib/importlib/abc.py | 19 +- Lib/importlib/metadata/__init__.py | 48 +- Lib/importlib/resources/_common.py | 7 +- Lib/inspect.py | 8 +- Lib/io.py | 16 - Lib/json/__init__.py | 52 +- Lib/linecache.py | 2 +- Lib/locale.py | 17 +- Lib/logging/__init__.py | 96 +- Lib/logging/config.py | 93 +- Lib/logging/handlers.py | 25 +- Lib/mailcap.py | 26 +- Lib/multiprocessing/context.py | 14 + Lib/multiprocessing/pool.py | 3 + Lib/multiprocessing/process.py | 10 +- Lib/multiprocessing/shared_memory.py | 7 +- Lib/netrc.py | 2 +- Lib/ntpath.py | 55 +- Lib/numbers.py | 2 +- Lib/opcode.py | 118 +- Lib/pathlib.py | 186 +- Lib/pdb.py | 8 +- Lib/pickle.py | 2 +- Lib/platform.py | 150 +- Lib/posixpath.py | 2 +- Lib/pprint.py | 16 - Lib/pstats.py | 2 +- Lib/pydoc.py | 25 +- Lib/random.py | 99 +- Lib/re/_compiler.py | 59 +- Lib/re/_constants.py | 2 +- Lib/reprlib.py | 57 +- Lib/shlex.py | 4 +- Lib/shutil.py | 101 +- Lib/site.py | 4 +- Lib/socket.py | 7 +- Lib/sqlite3/__init__.py | 13 + Lib/sqlite3/__main__.py | 120 + Lib/sqlite3/dbapi2.py | 23 +- Lib/sqlite3/dump.py | 14 +- Lib/ssl.py | 94 +- Lib/statistics.py | 86 +- Lib/subprocess.py | 23 +- Lib/symtable.py | 2 +- Lib/sysconfig.py | 55 +- Lib/tarfile.py | 32 +- Lib/tempfile.py | 79 +- Lib/test/_test_eintr.py | 14 +- Lib/test/_test_multiprocessing.py | 113 +- Lib/test/_testcppext.cpp | 135 +- Lib/test/audiodata/pluck-pcm24-ext.wav | Bin 0 -> 19922 bytes Lib/test/audit-tests.py | 22 + Lib/test/clinic.test | 685 +- Lib/test/crashers/infinite_loop_re.py | 2 +- Lib/test/datetimetester.py | 24 +- Lib/test/fork_wait.py | 6 +- Lib/test/leakers/test_ctypes.py | 2 +- Lib/test/libregrtest/cmdline.py | 8 +- Lib/test/libregrtest/main.py | 34 +- Lib/test/libregrtest/runtest.py | 5 + Lib/test/libregrtest/runtest_mp.py | 91 +- Lib/test/libregrtest/setup.py | 3 +- Lib/test/libregrtest/utils.py | 7 + Lib/test/list_tests.py | 3 +- Lib/test/lock_tests.py | 1 - Lib/test/mock_socket.py | 4 +- Lib/test/pickletester.py | 61 + Lib/test/pythoninfo.py | 8 +- Lib/test/setup_testcppext.py | 24 +- Lib/test/signalinterproctester.py | 13 +- Lib/{ => test}/smtpd.py | 17 +- Lib/test/string_tests.py | 48 + Lib/test/support/__init__.py | 181 +- Lib/test/support/bytecode_helper.py | 93 + Lib/test/support/os_helper.py | 103 +- Lib/test/support/socket_helper.py | 15 +- Lib/test/support/threading_helper.py | 18 +- Lib/test/test__opcode.py | 9 +- Lib/test/test__xxsubinterpreters.py | 11 +- Lib/test/test_argparse.py | 56 +- Lib/test/test_ast.py | 109 +- Lib/test/test_asyncio/test_base_events.py | 46 +- Lib/test/test_asyncio/test_events.py | 1 - Lib/test/test_asyncio/test_futures2.py | 31 +- Lib/test/test_asyncio/test_locks.py | 2 +- Lib/test/test_asyncio/test_runners.py | 81 +- Lib/test/test_asyncio/test_selector_events.py | 1 - Lib/test/test_asyncio/test_sock_lowlevel.py | 2 +- Lib/test/test_asyncio/test_ssl.py | 31 +- Lib/test/test_asyncio/test_streams.py | 19 + Lib/test/test_asyncio/test_subprocess.py | 48 +- Lib/test/test_asyncio/test_taskgroups.py | 117 +- Lib/test/test_asyncio/test_tasks.py | 15 +- Lib/test/test_asyncio/test_timeouts.py | 25 +- Lib/test/test_asyncio/test_unix_events.py | 43 +- Lib/test/test_asyncio/utils.py | 21 +- Lib/test/test_asyncore.py | 6 +- Lib/test/test_atexit.py | 1 - Lib/test/test_audit.py | 36 +- Lib/test/test_base64.py | 12 +- Lib/test/test_bdb.py | 10 + Lib/test/test_binascii.py | 2 +- Lib/test/test_bisect.py | 34 + Lib/test/test_bool.py | 7 + Lib/test/test_buffer.py | 20 +- Lib/test/test_bufio.py | 1 - Lib/test/test_builtin.py | 19 +- Lib/test/test_bytes.py | 35 + Lib/test/test_calendar.py | 13 + Lib/test/test_call.py | 156 +- Lib/test/test_capi.py | 210 +- Lib/test/test_check_c_globals.py | 7 +- Lib/test/test_cmd_line.py | 89 +- Lib/test/test_cmd_line_script.py | 4 +- Lib/test/test_code.py | 55 +- Lib/test/test_codecs.py | 1 - Lib/test/test_codeop.py | 20 + Lib/test/test_compile.py | 210 +- Lib/test/test_compileall.py | 3 + Lib/test/test_concurrent_futures.py | 40 +- Lib/test/test_configparser.py | 46 +- Lib/test/test_copy.py | 22 + Lib/test/test_coroutines.py | 24 + Lib/test/test_cppext.py | 71 +- Lib/test/test_csv.py | 56 + Lib/test/test_ctypes.py | 10 - .../test => test/test_ctypes}/__init__.py | 0 Lib/test/test_ctypes/__main__.py | 4 + .../test => test/test_ctypes}/test_anon.py | 0 .../test_ctypes}/test_array_in_pointer.py | 0 .../test => test/test_ctypes}/test_arrays.py | 2 +- .../test_ctypes}/test_as_parameter.py | 3 +- .../test_ctypes}/test_bitfields.py | 2 +- .../test => test/test_ctypes}/test_buffers.py | 2 +- .../test => test/test_ctypes}/test_bytes.py | 0 .../test_ctypes}/test_byteswap.py | 0 .../test_ctypes}/test_callbacks.py | 5 +- .../test => test/test_ctypes}/test_cast.py | 2 +- .../test => test/test_ctypes}/test_cfuncs.py | 8 +- .../test_ctypes}/test_checkretval.py | 2 +- .../test => test/test_ctypes}/test_delattr.py | 0 .../test => test/test_ctypes}/test_errno.py | 0 .../test => test/test_ctypes}/test_find.py | 0 .../test_ctypes}/test_frombuffer.py | 0 .../test => test/test_ctypes}/test_funcptr.py | 0 .../test_ctypes}/test_functions.py | 5 +- .../test_ctypes}/test_incomplete.py | 0 .../test => test/test_ctypes}/test_init.py | 0 .../test_ctypes}/test_internals.py | 0 .../test_ctypes}/test_keeprefs.py | 0 .../test => test/test_ctypes}/test_libc.py | 0 .../test => test/test_ctypes}/test_loading.py | 2 +- .../test_ctypes}/test_macholib.py | 0 .../test_ctypes}/test_memfunctions.py | 2 +- .../test => test/test_ctypes}/test_numbers.py | 0 .../test => test/test_ctypes}/test_objects.py | 8 +- .../test_ctypes}/test_parameters.py | 3 +- .../test => test/test_ctypes}/test_pep3118.py | 0 .../test_ctypes}/test_pickling.py | 0 .../test_ctypes}/test_pointers.py | 0 .../test_ctypes}/test_prototypes.py | 2 +- .../test_ctypes}/test_python_api.py | 0 .../test_ctypes}/test_random_things.py | 0 .../test_ctypes}/test_refcounts.py | 0 .../test => test/test_ctypes}/test_repr.py | 0 .../test_ctypes}/test_returnfuncptrs.py | 0 .../test_ctypes}/test_simplesubclasses.py | 0 .../test => test/test_ctypes}/test_sizes.py | 3 + .../test => test/test_ctypes}/test_slicing.py | 2 +- .../test_ctypes}/test_stringptr.py | 0 .../test => test/test_ctypes}/test_strings.py | 2 +- .../test_ctypes}/test_struct_fields.py | 0 .../test_ctypes}/test_structures.py | 2 +- .../test_ctypes}/test_unaligned_structures.py | 0 .../test => test/test_ctypes}/test_unicode.py | 2 +- .../test => test/test_ctypes}/test_values.py | 0 .../test_ctypes}/test_varsize_struct.py | 0 .../test => test/test_ctypes}/test_win32.py | 0 .../test_ctypes}/test_wintypes.py | 0 Lib/test/test_dataclasses.py | 161 +- Lib/test/test_dbm_dumb.py | 2 + Lib/test/test_dbm_gnu.py | 14 + Lib/test/test_dbm_ndbm.py | 14 + Lib/test/test_decimal.py | 21 +- Lib/test/test_decorators.py | 1 - Lib/test/test_defaultdict.py | 2 - Lib/test/test_descr.py | 12 +- Lib/test/test_descrtut.py | 4 +- Lib/test/test_dictviews.py | 18 + Lib/test/test_dis.py | 478 +- Lib/test/test_doctest.py | 10 +- Lib/test/test_dtrace.py | 5 + Lib/test/test_dynamic.py | 54 +- Lib/test/test_email/test_email.py | 60 +- Lib/test/test_email/test_utils.py | 21 +- Lib/test/test_embed.py | 114 +- Lib/test/test_enum.py | 579 +- Lib/test/test_except_star.py | 2 +- Lib/test/test_exception_group.py | 13 +- Lib/test/test_exception_hierarchy.py | 6 +- Lib/test/test_exceptions.py | 58 +- Lib/test/test_extcall.py | 23 +- Lib/test/test_file.py | 2 +- Lib/test/test_fileinput.py | 10 + Lib/test/test_fileio.py | 2 +- Lib/test/test_float.py | 10 +- Lib/test/test_flufl.py | 1 - Lib/test/test_fnmatch.py | 114 + Lib/test/test_fractions.py | 4 +- Lib/test/test_frame.py | 25 + Lib/test/test_fstring.py | 67 +- Lib/test/test_functools.py | 4 +- Lib/test/test_future.py | 1 - Lib/test/test_gc.py | 14 +- Lib/test/test_generators.py | 37 + Lib/test/test_getargs2.py | 43 +- Lib/test/test_getopt.py | 2 +- Lib/test/test_getpath.py | 1 - Lib/test/test_grammar.py | 2 +- Lib/test/test_grp.py | 4 +- Lib/test/test_hashlib.py | 10 +- Lib/test/test_heapq.py | 1 - Lib/test/test_htmlparser.py | 14 + Lib/test/test_http_cookiejar.py | 46 +- Lib/test/test_httplib.py | 45 + Lib/test/test_httpservers.py | 53 +- Lib/test/test_imaplib.py | 5 +- Lib/test/test_imp.py | 6 +- Lib/test/test_import/__init__.py | 29 +- .../test_importlib/extension/test_finder.py | 6 +- .../test_importlib/extension/test_loader.py | 8 + Lib/test/test_importlib/fixtures.py | 16 + Lib/test/test_importlib/frozen/test_loader.py | 8 - Lib/test/test_importlib/import_/test_path.py | 15 +- .../resources/data01}/__init__.py | 0 .../{ => resources}/data01/binary.file | Bin .../data01/subdirectory}/__init__.py | 0 .../data01/subdirectory/binary.file | Bin .../{ => resources}/data01/utf-16.file | Bin .../{ => resources}/data01/utf-8.file | 0 .../data02}/__init__.py | 0 .../data02/one}/__init__.py | 0 .../{ => resources}/data02/one/resource1.txt | 0 .../one => resources/data02/two}/__init__.py | 0 .../{ => resources}/data02/two/resource2.txt | 0 .../two => resources/data03}/__init__.py | 0 .../data03/namespace/portion1}/__init__.py | 0 .../data03/namespace/portion2}/__init__.py | 0 .../data03/namespace/resource1.txt | 0 .../namespacedata01/binary.file | Bin .../namespacedata01/utf-16.file | Bin .../namespacedata01/utf-8.file | 0 .../test_compatibilty_files.py | 2 +- .../{ => resources}/test_contents.py | 2 +- .../{ => resources}/test_files.py | 4 +- .../{ => resources}/test_open.py | 2 +- .../{ => resources}/test_path.py | 2 +- .../{ => resources}/test_read.py | 2 +- .../{ => resources}/test_reader.py | 0 .../{ => resources}/test_resource.py | 2 +- .../{ => resources}/update-zips.py | 0 Lib/test/test_importlib/resources/util.py | 6 +- .../zipdata01}/__init__.py | 0 .../{ => resources}/zipdata01/ziptestdata.zip | Bin .../zipdata02}/__init__.py | 0 .../{ => resources}/zipdata02/ziptestdata.zip | Bin .../test_importlib/source/test_file_loader.py | 1 - Lib/test/test_importlib/test_abc.py | 29 - Lib/test/test_importlib/test_api.py | 3 +- Lib/test/test_importlib/test_main.py | 91 +- Lib/test/test_importlib/test_metadata_api.py | 6 +- .../test_importlib/test_namespace_pkgs.py | 7 - Lib/test/test_importlib/test_spec.py | 95 - Lib/test/test_importlib/test_util.py | 2 +- Lib/test/test_inspect.py | 14 + Lib/test/test_int.py | 198 + Lib/test/test_io.py | 8 - Lib/test/test_itertools.py | 1 + Lib/test/test_json/__init__.py | 1 + Lib/test/test_json/test_attrdict.py | 145 + Lib/test/test_json/test_decode.py | 9 + Lib/test/test_launcher.py | 105 +- Lib/test/test_lib2to3.py | 9 - .../tests => test/test_lib2to3}/__init__.py | 0 .../tests => test/test_lib2to3}/__main__.py | 0 .../tests => test/test_lib2to3}/data/README | 0 .../tests => test/test_lib2to3}/data/bom.py | 0 .../tests => test/test_lib2to3}/data/crlf.py | 0 .../test_lib2to3}/data/different_encoding.py | 0 .../test_lib2to3}/data/false_encoding.py | 0 .../test_lib2to3}/data/fixers/bad_order.py | 0 .../data/fixers/myfixes}/__init__.py | 0 .../data/fixers/myfixes/fix_explicit.py | 0 .../data/fixers/myfixes/fix_first.py | 0 .../data/fixers/myfixes/fix_last.py | 0 .../data/fixers/myfixes/fix_parrot.py | 0 .../data/fixers/myfixes/fix_preorder.py | 0 .../test_lib2to3}/data/fixers/no_fixer_cls.py | 0 .../data/fixers/parrot_example.py | 0 .../test_lib2to3}/data/infinite_recursion.py | 0 .../test_lib2to3}/data/py2_test_grammar.py | 2 +- .../test_lib2to3}/data/py3_test_grammar.py | 2 +- .../test_lib2to3}/pytree_idempotency.py | 6 +- .../tests => test/test_lib2to3}/support.py | 21 +- .../test_lib2to3}/test_all_fixers.py | 1 - .../test_lib2to3}/test_fixers.py | 12 +- .../tests => test/test_lib2to3}/test_main.py | 0 .../test_lib2to3}/test_parser.py | 2 +- .../test_lib2to3}/test_pytree.py | 0 .../test_lib2to3}/test_refactor.py | 0 .../tests => test/test_lib2to3}/test_util.py | 0 Lib/test/test_linecache.py | 12 +- Lib/test/test_lltrace.py | 1 - Lib/test/test_locale.py | 118 +- Lib/test/test_logging.py | 316 +- Lib/test/test_mailcap.py | 9 +- Lib/test/test_memoryview.py | 110 + Lib/test/test_minidom.py | 16 +- Lib/test/test_module.py | 10 +- Lib/test/test_modulefinder.py | 75 +- .../test_multiprocessing_main_handling.py | 27 +- Lib/test/test_netrc.py | 1 + Lib/test/test_nis.py | 1 - Lib/test/test_ntpath.py | 27 + Lib/test/test_numeric_tower.py | 28 + Lib/test/test_opcache.py | 344 + Lib/test/test_os.py | 37 +- Lib/test/test_pathlib.py | 222 +- Lib/test/test_patma.py | 35 + Lib/test/test_pdb.py | 152 +- Lib/test/test_peepholer.py | 267 +- Lib/test/test_perf_profiler.py | 348 + Lib/test/test_pickle.py | 23 + Lib/test/test_platform.py | 41 +- Lib/test/test_posix.py | 18 +- Lib/test/test_posixpath.py | 33 +- Lib/test/test_property.py | 95 + Lib/test/test_pwd.py | 2 + Lib/test/test_py_compile.py | 4 +- Lib/test/test_pyclbr.py | 11 +- Lib/test/test_pydoc.py | 100 +- Lib/test/test_pyexpat.py | 2 +- Lib/test/test_queue.py | 5 +- Lib/test/test_random.py | 56 + Lib/test/test_re.py | 59 +- Lib/test/test_regrtest.py | 27 +- Lib/test/test_reprlib.py | 356 + Lib/test/test_select.py | 1 - Lib/test/test_set.py | 2 +- Lib/test/test_shelve.py | 2 - Lib/test/test_shlex.py | 5 +- Lib/test/test_shutil.py | 66 +- Lib/test/test_signal.py | 25 +- Lib/test/test_site.py | 9 +- Lib/test/test_smtpd.py | 1019 - Lib/test/test_smtplib.py | 2 +- Lib/test/test_socket.py | 120 +- Lib/test/test_socketserver.py | 4 +- Lib/test/test_sort.py | 6 + Lib/test/test_source_encoding.py | 99 +- Lib/test/test_sqlite3/__init__.py | 5 +- Lib/test/test_sqlite3/__main__.py | 3 +- Lib/test/test_sqlite3/test_cli.py | 155 + Lib/test/test_sqlite3/test_dbapi.py | 94 +- Lib/test/test_sqlite3/test_dump.py | 47 + Lib/test/test_sqlite3/test_factory.py | 20 + Lib/test/test_sqlite3/test_regression.py | 6 +- Lib/test/test_sqlite3/test_transactions.py | 73 +- Lib/test/test_sqlite3/test_types.py | 31 +- Lib/test/test_ssl.py | 357 +- Lib/test/test_stable_abi_ctypes.py | 2 + Lib/test/test_stat.py | 4 +- Lib/test/test_statistics.py | 23 +- Lib/test/test_struct.py | 29 + Lib/test/test_support.py | 12 +- Lib/test/test_syntax.py | 56 +- Lib/test/test_sys.py | 23 +- Lib/test/test_sys_setprofile.py | 39 + Lib/test/test_sys_settrace.py | 218 +- Lib/test/test_sysconfig.py | 16 +- Lib/test/test_tarfile.py | 88 + Lib/test/test_tcl.py | 3 - Lib/test/test_tempfile.py | 92 +- Lib/test/test_thread.py | 18 +- Lib/test/test_threading.py | 59 + Lib/test/test_threading_local.py | 1 - Lib/test/test_threadsignals.py | 2 + Lib/test/test_tk.py | 20 - .../test => test/test_tkinter}/README | 0 Lib/test/test_tkinter/__init__.py | 18 + Lib/test/test_tkinter/__main__.py | 4 + .../test => test/test_tkinter}/support.py | 1 - .../test/test_tkinter/test_colorchooser.py | 2 +- .../test/test_tkinter/test_font.py | 2 +- .../test_tkinter/test_geometry_managers.py | 4 +- .../test/test_tkinter/test_images.py | 2 +- .../test/test_tkinter/test_loadtk.py | 0 .../test/test_tkinter/test_messagebox.py | 2 +- .../test/test_tkinter/test_misc.py | 2 +- .../test/test_tkinter/test_simpledialog.py | 2 +- .../test/test_tkinter/test_text.py | 2 +- .../test/test_tkinter/test_variables.py | 2 +- .../test/test_tkinter/test_widgets.py | 4 +- .../test_tkinter}/widget_tests.py | 3 +- Lib/test/test_tomllib/test_misc.py | 4 +- Lib/test/test_tools/test_md5sum.py | 1 - Lib/test/test_tools/test_pathfix.py | 1 - Lib/test/test_tools/test_pindent.py | 1 - Lib/test/test_traceback.py | 265 +- Lib/test/test_tracemalloc.py | 14 + .../__init__.py} | 15 +- Lib/test/test_ttk/__main__.py | 4 + .../test/test_ttk/test_extensions.py | 2 +- Lib/{tkinter => }/test/test_ttk/test_style.py | 2 +- .../test/test_ttk/test_widgets.py | 4 +- Lib/test/test_type_comments.py | 3 +- Lib/test/test_types.py | 16 + Lib/test/test_typing.py | 269 +- Lib/test/test_unicode.py | 46 +- Lib/test/test_unicode_file_functions.py | 5 + Lib/test/test_unicodedata.py | 22 +- Lib/test/test_unittest.py | 16 - Lib/test/test_unittest/__init__.py | 6 + Lib/test/test_unittest/__main__.py | 4 + .../test_unittest}/_test_warnings.py | 11 - .../test => test/test_unittest}/dummy.py | 0 .../test => test/test_unittest}/support.py | 0 .../test_unittest}/test_assertions.py | 9 - .../test_unittest}/test_async_case.py | 24 +- .../test => test/test_unittest}/test_break.py | 0 .../test => test/test_unittest}/test_case.py | 71 +- .../test_unittest}/test_discovery.py | 6 +- .../test_unittest}/test_functiontestcase.py | 2 +- .../test_unittest}/test_loader.py | 153 +- .../test_unittest}/test_program.py | 34 +- .../test_unittest}/test_result.py | 6 +- .../test_unittest}/test_runner.py | 12 +- .../test_unittest}/test_setups.py | 0 .../test_unittest}/test_skipping.py | 2 +- .../test => test/test_unittest}/test_suite.py | 2 +- Lib/test/test_unittest/testmock/__init__.py | 6 + .../test_unittest}/testmock/__main__.py | 2 +- .../test_unittest}/testmock/support.py | 0 .../test_unittest}/testmock/testasync.py | 0 .../test_unittest}/testmock/testcallable.py | 2 +- .../test_unittest}/testmock/testhelpers.py | 0 .../testmock/testmagicmethods.py | 0 .../test_unittest}/testmock/testmock.py | 2 +- .../test_unittest}/testmock/testpatch.py | 24 +- .../test_unittest}/testmock/testsealable.py | 0 .../test_unittest}/testmock/testsentinel.py | 0 .../test_unittest}/testmock/testwith.py | 2 +- Lib/test/test_univnewlines.py | 1 - Lib/test/test_unparse.py | 6 + Lib/test/test_urllib2.py | 5 +- Lib/test/test_uu.py | 6 + Lib/test/test_venv.py | 92 +- Lib/test/test_wait3.py | 5 +- Lib/test/test_wait4.py | 5 +- Lib/test/test_warnings/__init__.py | 9 +- Lib/test/test_wave.py | 30 +- Lib/test/test_weakref.py | 11 + Lib/test/test_wmi.py | 75 + Lib/test/test_xml_etree.py | 59 +- Lib/test/test_xmlrpc.py | 10 + Lib/test/test_yield_from.py | 527 + Lib/test/test_zipapp.py | 2 + Lib/test/test_zipfile.py | 13 +- Lib/test/test_zipfile64.py | 11 +- Lib/test/test_zipimport.py | 24 +- Lib/threading.py | 41 +- Lib/tkinter/commondialog.py | 2 +- Lib/tkinter/test/__init__.py | 0 Lib/tkinter/test/test_tkinter/__init__.py | 0 Lib/tkinter/test/test_ttk/__init__.py | 0 Lib/traceback.py | 33 +- Lib/types.py | 2 +- Lib/typing.py | 136 +- Lib/unittest/__init__.py | 13 - Lib/unittest/async_case.py | 4 + Lib/unittest/case.py | 50 - Lib/unittest/loader.py | 24 +- Lib/unittest/mock.py | 4 + Lib/unittest/runner.py | 9 - Lib/unittest/test/__init__.py | 25 - Lib/unittest/test/__main__.py | 18 - Lib/unittest/test/testmock/__init__.py | 17 - Lib/urllib/parse.py | 3 +- Lib/urllib/request.py | 23 +- Lib/uuid.py | 2 + Lib/venv/__init__.py | 1 + Lib/venv/scripts/posix/activate.fish | 9 +- Lib/wave.py | 22 +- Lib/wsgiref/types.py | 4 +- Lib/xml/dom/minidom.py | 2 + Lib/xml/etree/ElementPath.py | 4 +- Lib/xml/etree/ElementTree.py | 25 +- Lib/zipfile.py | 35 +- Lib/zipimport.py | 61 +- Mac/BuildScript/build-installer.py | 21 +- Mac/BuildScript/openssl1.1.1q-pr-18719.patch | 17 + Mac/BuildScript/scripts/postflight.framework | 4 +- Mac/IDLE/IDLE.app/Contents/Info.plist | 1 + Makefile.pre.in | 314 +- Misc/ACKS | 11 + Misc/HISTORY | 12 +- Misc/NEWS.d/3.10.0a1.rst | 2 +- Misc/NEWS.d/3.10.0a3.rst | 2 +- Misc/NEWS.d/3.10.0a4.rst | 2 +- Misc/NEWS.d/3.10.0b1.rst | 4 +- Misc/NEWS.d/3.11.0a1.rst | 4 +- Misc/NEWS.d/3.11.0a2.rst | 20 +- Misc/NEWS.d/3.11.0a4.rst | 2 +- Misc/NEWS.d/3.11.0a6.rst | 3 +- Misc/NEWS.d/3.11.0a7.rst | 2 +- Misc/NEWS.d/3.11.0b1.rst | 2 +- Misc/NEWS.d/3.5.1rc1.rst | 2 +- Misc/NEWS.d/3.5.3rc1.rst | 2 +- Misc/NEWS.d/3.6.0b2.rst | 2 +- Misc/NEWS.d/3.7.0a1.rst | 4 +- Misc/NEWS.d/3.8.0a1.rst | 10 +- Misc/NEWS.d/3.8.0a2.rst | 2 +- Misc/NEWS.d/3.8.0a4.rst | 4 +- Misc/NEWS.d/3.9.0a1.rst | 2 +- Misc/NEWS.d/3.9.0a5.rst | 4 +- ...2-05-31-18-04-58.gh-issue-69093.6lSa0C.rst | 1 + ...2-06-04-12-53-53.gh-issue-93491.ehM211.rst | 1 + ...2-06-08-14-28-03.gh-issue-93584.0xfHOK.rst | 2 + ...2-06-25-23-25-47.gh-issue-94280.YhEyW_.rst | 3 + ...2-06-27-11-57-15.gh-issue-93939.rv7s8W.rst | 2 + ...2-06-28-09-42-10.gh-issue-93939._VWxKW.rst | 2 + ...2-06-29-08-58-31.gh-issue-94404.3MadM6.rst | 3 + ...2-06-30-09-57-39.gh-issue-90005.9-pQyR.rst | 1 + ...2-06-30-17-00-54.gh-issue-90005.iiq5qD.rst | 1 + ...2-06-30-17-18-23.gh-issue-90005.EIOOla.rst | 5 + ...2-07-08-10-28-23.gh-issue-94682.ZtGt_0.rst | 1 + ...2-07-12-13-39-18.gh-issue-94773.koHKm5.rst | 2 + ...2-07-13-10-13-10.gh-issue-94801.3xUB24.rst | 2 + ...2-07-14-02-45-44.gh-issue-94841.lLRTdf.rst | 1 + ...2-07-14-11-13-26.gh-issue-94847.s3Kr5p.rst | 2 + ...2-07-21-09-17-01.gh-issue-95085.E9x2S_.rst | 2 + ...2-07-23-21-39-09.gh-issue-95174.7cYMZR.rst | 1 + ...2-07-25-08-59-35.gh-issue-95174.g8woUW.rst | 2 + ...2-07-25-09-48-43.gh-issue-95145.ZNS3dj.rst | 2 + ...2-07-26-18-13-34.gh-issue-94801.9fREfy.rst | 2 + ...2-08-04-15-29-35.gh-issue-93744.svRuqm.rst | 3 + ...2-08-12-13-06-03.gh-issue-90536.qMpF6p.rst | 2 + ...2-08-15-10-56-07.gh-issue-95973.Bsswsc.rst | 2 + ...2-08-26-11-09-11.gh-issue-84461.Nsdn_R.rst | 3 + ...2-08-26-11-50-03.gh-issue-96269.x_J5h0.rst | 3 + ...2-09-11-14-23-49.gh-issue-96729.W4uBWL.rst | 2 + ...2-09-12-18-34-51.gh-issue-85936.tX4VCU.rst | 2 + .../2021-10-05-21-59-43.bpo-45383.TVClgf.rst | 3 + ...2-04-13-16-10-55.gh-issue-59121.-B7mKp.rst | 1 + ...2-05-03-19-35-37.gh-issue-92193.61VoFL.rst | 5 + ...2-05-23-12-31-04.gh-issue-77782.ugC8dn.rst | 3 + ...2-06-03-14-54-41.gh-issue-93466.DDtH0X.rst | 3 + ...2-06-04-13-15-41.gh-issue-93442.4M4NDb.rst | 3 + ...2-06-06-16-04-14.gh-issue-93503.MHJTu8.rst | 7 + ...2-06-10-16-50-27.gh-issue-89546.mX1f10.rst | 4 + ...2-06-10-23-41-48.gh-issue-91731.fhYUQG.rst | 3 + ...2-06-13-21-37-31.gh-issue-91321.DgJFvS.rst | 2 + ...2-06-17-13-41-38.gh-issue-93937.uKVTEh.rst | 14 + ...2-07-12-17-39-32.gh-issue-94731.9CPJNU.rst | 3 + ...2-07-17-18-21-40.gh-issue-94930.gPFGDL.rst | 2 + ...2-07-19-22-37-40.gh-issue-94936.LGlmKv.rst | 3 + ...2-07-25-15-54-27.gh-issue-92678.ziZpxz.rst | 3 + ...2-07-29-10-41-59.gh-issue-95388.aiRSgr.rst | 2 + ...2-07-29-15-24-45.gh-issue-93012.-DdGEy.rst | 6 + ...2-07-31-21-58-27.gh-issue-95504.wy7B1F.rst | 3 + ...2-08-01-16-21-39.gh-issue-93274.QoDHEu.rst | 3 + ...2-08-03-13-01-57.gh-issue-92678.DLwONN.rst | 2 + ...2-08-03-14-39-08.gh-issue-92678.ozFTEx.rst | 2 + ...2-08-08-14-36-31.gh-issue-95781.W_G8YW.rst | 4 + ...2-08-16-16-54-42.gh-issue-95589.6xE1ar.rst | 4 + .../2022-01-02-14-53-59.bpo-46142.WayjgT.rst | 3 + .../2022-03-22-13-12-27.bpo-47091.tJcy-P.rst | 1 + ...2-04-24-02-22-10.gh-issue-91432.YPJAK6.rst | 1 + ...2-05-11-09-16-54.gh-issue-91102.lenv9h.rst | 1 + ...2-05-17-20-41-43.gh-issue-92858.eIXJTn.rst | 1 + ...2-05-18-18-34-45.gh-issue-92930.kpYPOb.rst | 1 + ...2-05-20-09-25-34.gh-issue-93021.k3Aji2.rst | 2 + ...2-05-23-18-36-07.gh-issue-93143.X1Yqxm.rst | 1 + ...2-05-25-12-30-12.gh-issue-84694.5sjy2w.rst | 2 + ...2-05-30-10-22-46.gh-issue-93345.gi1A4L.rst | 2 + ...2-05-30-14-50-03.gh-issue-93283.XDO2ZQ.rst | 2 + ...2-05-30-15-35-42.gh-issue-93354.RZk8gs.rst | 3 + ...2-05-30-15-51-11.gh-issue-93356.l5wnzW.rst | 1 + ...2-05-30-19-00-38.gh-issue-93359.zXV3A0.rst | 2 + ...2-05-31-16-36-30.gh-issue-93382.Jf6gAj.rst | 2 + ...2-06-01-17-47-40.gh-issue-93418.24dJuc.rst | 2 + ...2-06-02-08-28-55.gh-issue-93429.DZTWHx.rst | 1 + ...2-06-02-23-00-08.gh-issue-93444.m63DIs.rst | 1 + ...2-06-06-14-28-24.gh-issue-93533.lnC0CC.rst | 1 + ...2-06-09-09-08-29.gh-issue-93621.-_Pn1d.rst | 1 + ...2-06-09-19-19-02.gh-issue-93461.5DqP1e.rst | 6 + ...2-06-10-10-31-18.gh-issue-93662.-7RSC1.rst | 2 + ...2-06-10-12-03-17.gh-issue-93671.idkQqG.rst | 2 + ...2-06-10-16-57-35.gh-issue-93678.1WBnHt.rst | 1 + ...2-06-12-19-31-56.gh-issue-89828.bq02M7.rst | 2 + ...2-06-13-10-48-09.gh-issue-93516.yJSait.rst | 2 + ...2-06-13-13-55-34.gh-issue-93516.HILrDl.rst | 2 + ...2-06-15-11-16-13.gh-issue-93841.06zqX3.rst | 3 + ...2-06-15-16-45-53.gh-issue-93678.1I_ZT3.rst | 1 + ...2-06-16-16-53-22.gh-issue-93911.RDwIiK.rst | 1 + ...2-06-17-16-30-24.gh-issue-93955.LmiAe9.rst | 1 + ...2-06-18-17-00-33.gh-issue-93911.y286of.rst | 1 + ...2-06-20-13-48-57.gh-issue-94021.o78q3G.rst | 1 + ...2-06-23-12-10-39.gh-issue-94163.SqAfQq.rst | 5 + ...2-06-24-14-06-20.gh-issue-93883.8jVQQ4.rst | 1 + ...2-06-25-10-19-43.gh-issue-87995.aMDHnp.rst | 2 + ...2-06-26-14-37-03.gh-issue-94192.ab7tn7.rst | 1 + ...2-06-28-10-08-06.gh-issue-94262.m-HWUZ.rst | 3 + ...2-06-28-12-41-17.gh-issue-88116.A7fEl_.rst | 2 + ...2-06-28-14-20-36.gh-issue-94360.DiEnen.rst | 2 + ...2-06-29-15-45-04.gh-issue-94329.olUQyk.rst | 2 + ...2-06-29-22-18-36.gh-issue-91719.3APYYI.rst | 2 + ...2-06-30-15-07-26.gh-issue-94438.btzHSk.rst | 2 + ...2-07-01-20-00-19.gh-issue-94485.mo5st7.rst | 2 + ...2-07-06-14-02-26.gh-issue-92228.44Cbly.rst | 1 + ...2-07-07-21-13-25.gh-issue-94215._Sv9Ms.rst | 3 + ...2-07-08-11-44-45.gh-issue-93252.i2358c.rst | 2 + ...2-07-08-16-44-11.gh-issue-94694.VkL2CM.rst | 4 + ...2-07-14-10-07-53.gh-issue-90699.x3aG9m.rst | 1 + ...2-07-15-16-15-04.gh-issue-91153.HiBmtt.rst | 2 + ...2-07-15-22-16-08.gh-issue-94822.zRRzBN.rst | 2 + ...2-07-15-22-47-44.gh-issue-94893.YiJYcW.rst | 2 + ...2-07-16-08-14-17.gh-issue-94869.eRwMsX.rst | 2 + ...2-07-17-15-54-29.gh-issue-91256.z7i7Q5.rst | 1 + ...2-07-18-04-48-34.gh-issue-94947.df9gUw.rst | 1 + ...2-07-18-05-10-29.gh-issue-94949.OsZ7_s.rst | 1 + ...2-07-18-14-19-21.gh-issue-94739.NQJQi7.rst | 1 + ...2-07-19-04-34-56.gh-issue-94996.dV564A.rst | 1 + ...2-07-19-09-41-55.gh-issue-94938.xYBlM7.rst | 3 + ...2-07-19-16-30-59.gh-issue-94036._6Utkm.rst | 2 + ...2-07-20-13-46-01.gh-issue-91409.dhL8Zo.rst | 2 + ...2-07-21-17-54-52.gh-issue-95113.NnSLpT.rst | 4 + ...2-07-21-19-19-20.gh-issue-95060.4xdT1f.rst | 2 + ...2-07-22-12-53-34.gh-issue-94438.hNqACc.rst | 4 + ...2-07-23-19-16-25.gh-issue-93351.0Jyvu-.rst | 3 + ...2-07-24-00-27-47.gh-issue-95185.ghYTZx.rst | 3 + ...2-07-26-09-31-12.gh-issue-93678.W8vvgT.rst | 1 + ...2-07-26-12-59-03.gh-issue-95245.GHWczn.rst | 2 + ...2-07-27-14-05-07.gh-issue-95324.28Q5u7.rst | 2 + ...2-07-27-14-21-57.gh-issue-90081.HVAS5x.rst | 2 + ...2-07-28-08-33-31.gh-issue-95355.yN4XVk.rst | 1 + ...2-07-28-19-07-06.gh-issue-87092.73IPS1.rst | 1 + ...2-07-31-03-22-58.gh-issue-91146.Y2Hziy.rst | 2 + ...2-07-31-13-23-12.gh-issue-95150.67FXVo.rst | 3 + ...2-08-04-18-46-54.gh-issue-95605.FbpCoG.rst | 2 + ...2-08-11-09-19-55.gh-issue-95876.YpQfoV.rst | 4 + ...2-08-11-11-01-56.gh-issue-95818.iClLdl.rst | 1 + ...2-08-12-13-04-25.gh-issue-95922.YNCtyX.rst | 2 + ...2-08-14-10-04-44.gh-issue-95977.gCTZb9.rst | 1 + ...2-08-15-11-58-05.gh-issue-90997.bWwV8Q.rst | 3 + ...2-08-15-12-41-14.gh-issue-95245.N4gOUV.rst | 3 + ...2-08-15-20-52-41.gh-issue-93678.X7GuIJ.rst | 1 + ...2-08-15-21-08-11.gh-issue-96005.6eoc8k.rst | 4 + ...2-08-18-13-47-59.gh-issue-96046.5Hqbka.rst | 4 + ...2-08-19-06-51-17.gh-issue-96071.mVgPAo.rst | 1 + ...2-08-20-18-36-40.gh-issue-96143.nh3GFM.rst | 7 + ...2-08-22-21-33-28.gh-issue-96187.W_6SRG.rst | 2 + ...2-08-24-14-30-26.gh-issue-96237.msif5f.rst | 5 + ...2-08-25-10-19-34.gh-issue-96268.AbYrLB.rst | 2 + ...2-08-26-18-46-32.gh-issue-93554.QEaCcK.rst | 16 + ...2-08-28-10-51-19.gh-issue-96352.jTLD2d.rst | 2 + ...2-08-29-00-37-21.gh-issue-96364.c-IVyb.rst | 1 + ...2-09-02-16-47-52.gh-issue-93911.vF-GWe.rst | 2 + ...2-09-05-15-07-25.gh-issue-96582.HEsL5s.rst | 1 + ...2-09-05-16-43-44.gh-issue-96569.9lmTCC.rst | 1 + ...2-09-05-19-20-44.gh-issue-96587.bVxhX2.rst | 2 + ...2-09-06-11-19-03.gh-issue-90230.YOtzs5.rst | 2 + ...2-09-06-14-26-36.gh-issue-96612.P4ZbeY.rst | 1 + ...2-09-06-16-22-13.gh-issue-96611.14wIX8.rst | 2 + ...2-09-06-16-54-49.gh-issue-96572.8DRsaW.rst | 1 + ...2-09-07-12-02-11.gh-issue-96636.YvN-K6.rst | 3 + ...2-09-07-13-38-37.gh-issue-96641.wky0Fc.rst | 1 + ...2-09-09-13-13-27.gh-issue-96678.vMxi9F.rst | 1 + ...2-09-11-00-37-50.gh-issue-90751.VE8-zf.rst | 2 + ...2-09-11-12-43-43.gh-issue-96751.anRT6a.rst | 1 + ...2-09-12-15-15-04.gh-issue-90997.sZO8c9.rst | 2 + ...2-09-12-16-58-22.gh-issue-96754.0GRme5.rst | 3 + ...2-09-13-12-06-46.gh-issue-96678.NqGFyb.rst | 1 + ...2-09-16-19-02-40.gh-issue-95778.cJmnst.rst | 3 + .../2022-03-30-17-56-01.bpo-47161.gesHfS.rst | 2 + ...2-05-18-23-58-26.gh-issue-92240.bHvYiz.rst | 2 + ...2-05-26-11-33-23.gh-issue-86438.kEGGmK.rst | 3 + ...2-05-26-14-51-25.gh-issue-88831.5Cccr5.rst | 1 + ...2-05-29-21-22-54.gh-issue-86986.lFXw8j.rst | 1 + ...2-06-15-12-12-49.gh-issue-87260.epyI7D.rst | 1 + ...2-06-16-10-10-59.gh-issue-61162.1ypkG8.rst | 1 + ...2-06-19-18-18-22.gh-issue-86128.39DDTD.rst | 1 + ...2-07-07-08-42-05.gh-issue-94321.pmCIPb.rst | 2 + ...2-07-29-09-04-02.gh-issue-95415.LKTyw6.rst | 2 + ...2-07-29-23-02-19.gh-issue-95451.-tgB93.rst | 3 + ...2-07-30-00-23-11.gh-issue-95454.we7AFm.rst | 2 + ...2-08-03-13-35-08.gh-issue-91207.eJ4pPf.rst | 3 + ...2-08-13-20-34-51.gh-issue-95957.W9ZZAx.rst | 2 + ...2-08-19-17-07-45.gh-issue-96098.nDp43u.rst | 3 + ...2-09-01-17-03-04.gh-issue-96432.1EJ1-4.rst | 2 + ...2-07-28-18-56-57.gh-issue-89610.hcosiM.rst | 2 + ...2-07-29-11-08-52.gh-issue-95411.dazlqH.rst | 1 + ...2-07-30-15-10-39.gh-issue-95471.z3scVG.rst | 1 + ...2-07-31-22-15-14.gh-issue-95511.WX6PmB.rst | 2 + ...2-08-01-23-31-48.gh-issue-95191.U7vryB.rst | 1 + ...2-08-04-20-07-51.gh-issue-65802.xnThWe.rst | 1 + .../2017-07-31-13-35-28.bpo-26253.8v_sCs.rst | 2 + .../2018-09-23-07-47-29.bpo-32990.2FVVTU.rst | 2 + .../2018-09-28-22-18-03.bpo-34828.5Zyi_S.rst | 1 + .../2021-08-27-18-07-35.bpo-44173.oW92Ev.rst | 1 + .../2021-12-27-15-32-15.bpo-45924.0ZpHX2.rst | 1 + .../2022-01-03-15-07-06.bpo-46197.Z0djv6.rst | 1 + .../2022-02-05-18-46-54.bpo-46642.YI6nHQ.rst | 1 + .../2022-02-15-12-40-48.bpo-46755.zePJfx.rst | 2 + .../2022-02-21-01-37-00.bpo-42777.nWK3E6.rst | 1 + .../2022-03-16-14-24-14.bpo-47025.qtT3CE.rst | 1 + .../2022-03-19-04-41-42.bpo-47063.nwRfUo.rst | 1 + .../2022-04-01-09-43-54.bpo-32547.NIUiNC.rst | 1 + ...2-04-01-12-35-44.gh-issue-90005.pvaLHQ.rst | 1 + .../2022-04-03-11-25-02.bpo-41287.8CTdwf.rst | 1 + .../2022-04-08-22-12-11.bpo-47231.lvyglt.rst | 1 + ...2-04-11-16-55-41.gh-issue-91456.DK3KKl.rst | 3 + ...2-04-12-18-05-40.gh-issue-91447.N_Fs4H.rst | 2 + ...2-04-15-17-38-55.gh-issue-91577.Ah7cLL.rst | 1 + ...2-04-24-22-26-45.gh-issue-81790.M5Rvpm.rst | 2 + ...2-05-08-18-51-14.gh-issue-89336.TL6ip7.rst | 4 + ...2-05-09-21-31-41.gh-issue-92445.tJosdm.rst | 3 + ...2-05-09-22-27-11.gh-issue-92591.V7RCk2.rst | 3 + ...2-05-10-16-30-40.gh-issue-90385.1_wBRQ.rst | 1 + ...2-05-12-15-19-00.gh-issue-92734.d0wjDt.rst | 1 + ...2-05-14-09-01-38.gh-issue-89325.ys-2BZ.rst | 6 + ...2-05-16-14-35-39.gh-issue-92839.owSMyo.rst | 1 + ...2-05-17-06-27-39.gh-issue-92869.t8oBkw.rst | 2 + ...2-05-19-17-49-58.gh-issue-92932.o2peTh.rst | 3 + ...2-05-19-22-34-42.gh-issue-92986.e6uKxj.rst | 1 + ...2-05-22-16-08-01.gh-issue-89973.jc-Q4g.rst | 3 + ...2-05-24-11-19-04.gh-issue-74696.-cnf-A.rst | 2 + ...2-05-26-08-41-34.gh-issue-93243.uw6x5z.rst | 1 + ...2-05-26-09-24-41.gh-issue-93162.W1VuhU.rst | 4 + ...2-05-26-23-10-55.gh-issue-93156.4XfDVN.rst | 2 + ...2-05-27-10-52-06.gh-issue-85308.K6r-tJ.rst | 4 + ...2-05-27-13-18-18.gh-issue-93297.e2zuHz.rst | 1 + ...2-05-27-22-17-11.gh-issue-88123.mkYl5q.rst | 2 + ...2-05-28-08-02-55.gh-issue-93312.HY0Uzj.rst | 3 + ...2-05-30-21-42-50.gh-issue-83658.01Ntx0.rst | 1 + ...2-05-31-14-58-40.gh-issue-93353.9Hvm6o.rst | 3 + ...2-06-01-11-24-13.gh-issue-91162.NxvU_u.rst | 5 + ...2-06-02-08-40-58.gh-issue-91810.Gtk44w.rst | 2 + ...2-06-03-22-13-28.gh-issue-93370.tjfu9L.rst | 1 + ...2-06-04-00-11-54.gh-issue-93475.vffFw1.rst | 2 + ...2-06-05-22-22-42.gh-issue-93421.43UO_8.rst | 3 + ...2-06-06-12-58-27.gh-issue-79579.e8rB-M.rst | 2 + ...2-06-06-13-19-43.gh-issue-93521._vE8m9.rst | 4 + ...2-06-07-14-53-46.gh-issue-90549.T4FMKY.rst | 2 + ...2-06-08-20-11-02.gh-issue-90494.LIZT85.rst | 3 + ...2-06-09-10-12-55.gh-issue-90473.683m_C.rst | 2 + ...-06-09-14-44-21.gh-issue-93626.sfghs46.rst | 1 + ...2-06-09-17-15-26.gh-issue-91389.OE4vS5.rst | 2 + ...2-06-11-13-32-17.gh-issue-79512.A1KTDr.rst | 3 + ...2-06-15-21-20-02.gh-issue-93820.FAMLY8.rst | 2 + ...2-06-15-21-28-16.gh-issue-83499.u3DQJ-.rst | 1 + ...2-06-15-21-35-11.gh-issue-91404.39TZzW.rst | 3 + ...2-06-16-09-24-50.gh-issue-93847.kuv8bN.rst | 1 + ...2-06-16-11-16-53.gh-issue-93820.00X0Y5.rst | 1 + ...2-06-17-12-02-30.gh-issue-93858.R49ARc.rst | 1 + ...2-06-17-16-00-55.gh-issue-93963.8YYZ-2.rst | 2 + ...2-06-18-15-06-54.gh-issue-93973.4y6UQT.rst | 1 + ...2-06-20-23-14-43.gh-issue-94028.UofEcX.rst | 3 + ...2-06-21-11-40-31.gh-issue-84753.FW1pxO.rst | 7 + ...2-06-22-11-16-11.gh-issue-94101.V9vDG8.rst | 3 + ...2-06-23-13-12-05.gh-issue-91742.sNytVX.rst | 1 + ...2-06-23-14-35-10.gh-issue-94169.jeba90.rst | 4 + ...2-06-24-09-41-41.gh-issue-94196.r2KyfS.rst | 4 + ...2-06-24-10-18-59.gh-issue-94199.kYOo8g.rst | 5 + ...2-06-24-10-29-19.gh-issue-94199.pfehmz.rst | 3 + ...2-06-24-10-39-56.gh-issue-94199.MIuckY.rst | 7 + ...2-06-24-14-25-26.gh-issue-94214.03pXR5.rst | 1 + ...2-06-24-17-11-33.gh-issue-94199.7releN.rst | 4 + ...2-06-24-18-20-42.gh-issue-94226.8ZL4Fm.rst | 2 + ...2-06-24-19-16-09.gh-issue-93096.r1_oIc.rst | 3 + ...2-06-24-19-23-59.gh-issue-94207.VhS1eS.rst | 2 + ...2-06-24-19-40-40.gh-issue-93096.3RlK2d.rst | 2 + ...2-06-24-20-00-57.gh-issue-94216.hxnQPu.rst | 1 + ...2-06-25-13-38-53.gh-issue-93259.FAGw-2.rst | 2 + ...2-06-25-16-27-02.gh-issue-94254.beP16v.rst | 1 + ...2-06-25-23-44-44.gh-issue-90016.EB409s.rst | 2 + ...2-06-26-10-59-15.gh-issue-89988.K8rnmt.rst | 1 + ...2-06-27-10-33-18.gh-issue-94318.jR4_QV.rst | 1 + ...2-06-28-00-24-48.gh-issue-94352.JY1Ayt.rst | 3 + ...2-06-28-14-29-21.gh-issue-94379.RrgKfh.rst | 3 + ...2-06-28-14-41-22.gh-issue-94383.CXnquo.rst | 5 + ...2-06-29-04-42-56.gh-issue-94398.YOq_bJ.rst | 1 + ...2-06-29-09-48-37.gh-issue-92336.otA6c6.rst | 1 + ...2-07-02-19-46-30.gh-issue-94510.xOatDC.rst | 2 + ...2-07-03-16-41-03.gh-issue-94382.zuVZeM.rst | 1 + ...2-07-05-17-22-00.gh-issue-94343.kf4H5r.rst | 1 + ...2-07-06-06-02-02.gh-issue-93896.vIgWGr.rst | 1 + ...2-07-06-14-45-12.gh-issue-93910.iZcp67.rst | 3 + ...2-07-06-14-57-33.gh-issue-94619.PRqKVX.rst | 1 + ...2-07-06-16-01-08.gh-issue-94607.Q6RYfz.rst | 2 + ...2-07-06-21-24-03.gh-issue-92546.s5Upkh.rst | 2 + ...2-07-06-22-41-51.gh-issue-94309._XswsX.rst | 1 + ...2-07-07-15-46-55.gh-issue-94637.IYEiUM.rst | 3 + ...2-07-08-17-49-12.gh-issue-87822.F9dzkf.rst | 1 + ...2-07-09-08-55-04.gh-issue-74116.0XwYC1.rst | 1 + ...2-07-09-15-17-02.gh-issue-81620.L0O_bV.rst | 1 + ...2-07-11-10-41-48.gh-issue-94736.EbsgeK.rst | 1 + ...2-07-14-00-43-52.gh-issue-94821.e17ghU.rst | 2 + ...2-07-15-08-13-51.gh-issue-94857.9_KvZJ.rst | 1 + ...2-07-19-15-37-11.gh-issue-95005.iRmZ74.rst | 2 + ...2-07-20-00-23-58.gh-issue-77617.XGaqSQ.rst | 2 + ...2-07-20-22-49-48.gh-issue-95066.TuCu0E.rst | 1 + ...2-07-21-19-55-49.gh-issue-95105.BIX2Km.rst | 1 + ...2-07-21-22-59-22.gh-issue-95109.usxA9r.rst | 1 + ...2-07-22-00-58-49.gh-issue-95077.4Z6CNC.rst | 1 + ...2-07-22-17-19-57.gh-issue-93157.RXByAk.rst | 2 + ...2-07-22-21-18-17.gh-issue-95132.n9anlw.rst | 4 + ...2-07-23-10-42-05.gh-issue-95166.xw6p3C.rst | 1 + ...2-07-23-10-50-05.gh-issue-93899.VT34A5.rst | 1 + ...2-07-24-09-15-35.gh-issue-95194.ERVmqG.rst | 1 + ...2-07-24-12-00-06.gh-issue-95199.-5A64k.rst | 1 + ...2-07-24-12-59-02.gh-issue-95087.VvqXkN.rst | 1 + ...2-07-24-18-00-42.gh-issue-95097.lu5qNf.rst | 1 + ...2-07-25-15-45-06.gh-issue-95231.i807-g.rst | 3 + ...2-07-27-11-35-45.gh-issue-95045.iysT-Q.rst | 1 + ...2-07-27-19-43-07.gh-issue-95339.NuVQ68.rst | 1 + ...2-07-28-17-14-38.gh-issue-95385.6YlsDI.rst | 1 + ...2-07-29-20-58-37.gh-issue-94909.YjMusj.rst | 2 + ...2-08-03-16-52-32.gh-issue-95289.FMnHlV.rst | 1 + ...2-08-03-21-01-17.gh-issue-95609.xxyjyX.rst | 1 + ...2-08-07-14-56-23.gh-issue-95149.U0c6Ib.rst | 2 + ...2-08-08-01-42-11.gh-issue-95704.MOPFfX.rst | 2 + ...2-08-10-11-54-04.gh-issue-95804.i5FCFK.rst | 2 + ...2-08-10-17-34-07.gh-issue-95861.qv-T5s.rst | 2 + ...2-08-11-03-16-48.gh-issue-95865.0IOkFP.rst | 1 + ...2-08-11-18-22-29.gh-issue-95736.LzRZXe.rst | 1 + ...2-08-11-18-52-17.gh-issue-95899._Bi4uG.rst | 1 + ...2-08-14-18-59-54.gh-issue-69142.6is5Pq.rst | 1 + ...2-08-18-14-53-53.gh-issue-95463.GpP05c.rst | 2 + ...2-08-19-10-19-32.gh-issue-96019.b7uAVP.rst | 3 + ...2-08-19-18-21-01.gh-issue-96125.ODcF1Y.rst | 2 + ...2-08-20-10-31-01.gh-issue-96052.a6FhaD.rst | 4 + ...2-08-20-12-56-15.gh-issue-96145.8ah3pE.rst | 1 + ...2-08-22-13-54-20.gh-issue-96175.bH7zGU.rst | 1 + ...2-08-22-18-42-17.gh-issue-96159.3bFU39.rst | 1 + ...2-08-23-13-30-30.gh-issue-96172.7WTHer.rst | 3 + ...2-08-27-14-38-49.gh-issue-90467.VOOB0p.rst | 2 + ...2-08-27-21-26-52.gh-issue-96349.XyYLlO.rst | 1 + ...2-08-29-07-04-03.gh-issue-89258.ri7ncj.rst | 2 + ...2-08-29-15-28-39.gh-issue-96385.uLRTsf.rst | 3 + ...2-08-29-16-54-36.gh-issue-96388.dCpJcu.rst | 2 + ...2-08-30-11-46-36.gh-issue-95987.CV7_u4.rst | 1 + ...2-08-31-11-10-21.gh-issue-96079.uqrXdJ.rst | 1 + ...2-09-01-13-54-38.gh-issue-96465.0IJmrH.rst | 1 + ...2-09-03-18-39-05.gh-issue-96538.W156-D.rst | 1 + ...2-09-04-12-32-52.gh-issue-68163.h6TJCc.rst | 1 + ...2-09-07-22-49-37.gh-issue-96652.YqOKxI.rst | 3 + ...2-09-08-20-12-48.gh-issue-46412.r_cfTh.rst | 1 + ...2-09-13-15-12-31.gh-issue-96734.G08vjz.rst | 1 + ...2-09-15-00-37-33.gh-issue-96741.4b6czN.rst | 1 + ...2-04-27-18-25-30.gh-issue-68966.gjS8zs.rst | 4 + ...2-05-19-08-53-07.gh-issue-92888.TLtR9W.rst | 2 + ...2-06-03-12-52-53.gh-issue-79096.YVoxgC.rst | 1 + ...2-06-15-20-09-23.gh-issue-87389.QVaC3f.rst | 3 + ...08-07-16-53-38.gh-issue-95778.ch010gps.rst | 14 + .../2022-03-14-23-28-17.bpo-47016.K-t2QX.rst | 2 + ...2-05-25-23-00-35.gh-issue-92886.Y-vrWj.rst | 1 + ...2-05-25-23-07-15.gh-issue-92886.Aki63_.rst | 1 + ...2-06-03-12-22-44.gh-issue-89858.ftBvjE.rst | 1 + ...2-06-03-14-18-37.gh-issue-90473.7iXVRK.rst | 2 + ...2-06-03-16-26-04.gh-issue-57539.HxWgYO.rst | 1 + ...2-06-04-12-05-31.gh-issue-90473.RSpjF7.rst | 1 + ...2-06-05-10-16-45.gh-issue-90473.QMu7A8.rst | 2 + ...2-06-08-14-17-59.gh-issue-93575.Xb2LNB.rst | 4 + ...2-06-08-22-32-56.gh-issue-93616.e5Kkx2.rst | 2 + ...2-06-10-21-18-14.gh-issue-84461.9TAb26.rst | 2 + ...2-06-16-17-50-58.gh-issue-93353.JdpATx.rst | 2 + ...2-06-16-21-38-18.gh-issue-93852.U_Hl6s.rst | 4 + ...2-06-17-13-27-21.gh-issue-93884.5pvPvl.rst | 1 + ...2-06-17-13-55-11.gh-issue-93957.X4ovYV.rst | 2 + ...2-06-17-15-20-09.gh-issue-93951.CW1Vv4.rst | 1 + ...2-06-20-23-04-52.gh-issue-93839.OE3Ybk.rst | 2 + ...2-06-21-17-37-46.gh-issue-54781.BjVAVg.rst | 2 + ...2-06-27-08-53-40.gh-issue-94315.MoZT9t.rst | 2 + ...2-06-27-21-27-20.gh-issue-94208.VR6HX-.rst | 2 + ...2-07-05-17-53-13.gh-issue-91330.Qys5IL.rst | 2 + ...2-07-08-12-22-00.gh-issue-94675.IiTs5f.rst | 1 + ...2-07-24-16-28-31.gh-issue-93963.UB9azu.rst | 1 + ...2-07-24-17-24-42.gh-issue-95218.zfBLtu.rst | 1 + ...2-07-24-20-19-05.gh-issue-95212.fHiU4e.rst | 2 + ...2-07-26-15-22-19.gh-issue-95280.h8HvbP.rst | 2 + ...2-08-05-09-57-43.gh-issue-95573.edMdQB.rst | 6 + ...2-08-22-14-59-42.gh-issue-95243.DeD66V.rst | 3 + ...2-09-08-18-31-26.gh-issue-96624.5cANM1.rst | 1 + ...2-06-19-14-56-33.gh-issue-86087.R8MkRy.rst | 2 + ...2-06-29-22-47-11.gh-issue-94430.hdov8L.rst | 2 + ...2-07-04-01-37-42.gh-issue-94538.1rgy1Y.rst | 2 + ...2-07-04-10-02-02.gh-issue-93939.U6sW6H.rst | 3 + ...2-08-10-17-08-43.gh-issue-95853.HCjC2m.rst | 2 + ...2-08-29-17-25-13.gh-issue-95853.Ce17cT.rst | 2 + .../2022-03-20-15-47-35.bpo-42658.16eXtb.rst | 3 + ...2-05-28-19-36-13.gh-issue-43414.NGMJ3g.rst | 2 + ...2-06-15-01-03-52.gh-issue-93824.mR4mxu.rst | 2 + ...2-06-20-22-32-14.gh-issue-94018.bycC3A.rst | 1 + ...2-07-12-20-45-43.gh-issue-94772.uNMmdG.rst | 1 + ...2-07-16-16-18-32.gh-issue-90844.vwITT3.rst | 2 + ...2-07-26-20-33-12.gh-issue-95285.w6fa22.rst | 2 + ...2-07-28-20-21-38.gh-issue-95359.ywMrgu.rst | 3 + ...2-07-30-14-18-33.gh-issue-95445.mjrTaq.rst | 1 + ...2-08-03-00-49-46.gh-issue-94399.KvxHc0.rst | 3 + ...2-08-04-01-12-27.gh-issue-95587.Fvdv5q.rst | 2 + ...2-08-04-18-47-54.gh-issue-95656.VJ1d13.rst | 2 + ...2-08-10-22-46-48.gh-issue-95733.2_urOp.rst | 2 + ...2-08-26-00-11-18.gh-issue-89545.zmJMY_.rst | 1 + ...2-08-30-12-01-51.gh-issue-94781.OxO-Gr.rst | 2 + ...2-09-05-18-32-47.gh-issue-96559.561sUd.rst | 3 + ...2-09-07-00-11-33.gh-issue-96577.kV4K_1.rst | 1 + Misc/python.man | 27 +- Misc/rhel7/README.md | 19 + Misc/rhel7/openssl.pc | 3 + Misc/rhel7/tcl.pc | 4 + Misc/rhel7/tk.pc | 5 + Misc/stable_abi.toml | 9 + Modules/Setup | 2 +- Modules/Setup.stdlib.in | 21 +- Modules/_abc.c | 1 + Modules/_asynciomodule.c | 90 +- Modules/_bisectmodule.c | 164 +- Modules/_blake2/clinic/blake2b_impl.c.h | 33 +- Modules/_blake2/clinic/blake2s_impl.c.h | 33 +- Modules/_bz2module.c | 62 +- Modules/_codecsmodule.c | 1 + Modules/_ctypes/_ctypes.c | 1 + Modules/_ctypes/callbacks.c | 14 +- Modules/_ctypes/callproc.c | 3 + Modules/_ctypes/cfield.c | 1 + Modules/_ctypes/ctypes.h | 6 +- Modules/_ctypes/malloc_closure.c | 3 + Modules/_cursesmodule.c | 1 + Modules/_datetimemodule.c | 100 +- Modules/_dbmmodule.c | 32 + Modules/_elementtree.c | 8 +- Modules/_functoolsmodule.c | 5 +- Modules/_gdbmmodule.c | 30 + Modules/_hashopenssl.c | 2 +- Modules/_io/bufferedio.c | 2 +- Modules/_io/clinic/_iomodule.c.h | 58 +- Modules/_io/clinic/bufferedio.c.h | 83 +- Modules/_io/clinic/bytesio.c.h | 33 +- Modules/_io/clinic/fileio.c.h | 33 +- Modules/_io/clinic/iobase.c.h | 8 +- Modules/_io/clinic/stringio.c.h | 33 +- Modules/_io/clinic/textio.c.h | 108 +- Modules/_io/clinic/winconsoleio.c.h | 33 +- Modules/_io/stringio.c | 29 +- Modules/_io/textio.c | 13 +- Modules/_json.c | 341 +- Modules/_lsprof.c | 3 +- .../clinic/multiprocessing.c.h | 36 +- .../_multiprocessing/clinic/posixshmem.c.h | 58 +- Modules/_multiprocessing/clinic/semaphore.c.h | 83 +- Modules/_multiprocessing/multiprocessing.c | 61 +- Modules/_multiprocessing/multiprocessing.h | 2 +- Modules/_multiprocessing/semaphore.c | 75 +- Modules/_opcode.c | 7 +- Modules/_operator.c | 9 +- Modules/_pickle.c | 67 +- Modules/_randommodule.c | 1 + Modules/_sha3/clinic/sha3module.c.h | 33 +- Modules/_sqlite/clinic/blob.c.h | 8 +- Modules/_sqlite/clinic/connection.c.h | 321 +- Modules/_sqlite/clinic/cursor.c.h | 33 +- Modules/_sqlite/clinic/module.c.h | 147 +- Modules/_sqlite/clinic/row.c.h | 8 +- Modules/_sqlite/connection.c | 58 +- Modules/_sqlite/cursor.c | 69 +- Modules/_sqlite/microprotocols.c | 4 +- Modules/_sqlite/module.c | 91 +- Modules/_sqlite/prepare_protocol.c | 3 + Modules/_sqlite/statement.c | 120 +- Modules/_sqlite/statement.h | 1 - Modules/_sre/clinic/sre.c.h | 358 +- Modules/_sre/sre.c | 77 +- Modules/_sre/sre.h | 4 - Modules/_sre/sre_constants.h | 2 +- Modules/_sre/sre_lib.h | 30 +- Modules/_ssl.c | 43 +- Modules/_ssl/clinic/cert.c.h | 33 +- Modules/_statisticsmodule.c | 2 +- Modules/_struct.c | 26 +- Modules/_testcapi/README.txt | 3 + Modules/_testcapi/clinic/vectorcall.c.h | 113 + Modules/_testcapi/heaptype.c | 1095 + Modules/_testcapi/parts.h | 36 + Modules/_testcapi/unicode.c | 713 + Modules/_testcapi/vectorcall.c | 409 + Modules/_testcapi/vectorcall_limited.c | 82 + Modules/_testcapimodule.c | 1578 +- Modules/_testinternalcapi.c | 30 +- Modules/_threadmodule.c | 2 + Modules/_tracemalloc.c | 11 +- Modules/_winapi.c | 61 + Modules/_xxsubinterpretersmodule.c | 16 - Modules/_zoneinfo.c | 35 +- Modules/addrinfo.h | 2 + Modules/arraymodule.c | 21 +- Modules/atexitmodule.c | 2 +- Modules/cjkcodecs/cjkcodecs.h | 9 +- Modules/cjkcodecs/clinic/multibytecodec.c.h | 134 +- Modules/cjkcodecs/mappings_hk.h | 1 + Modules/cjkcodecs/mappings_tw.h | 2 + Modules/clinic/_abc.c.h | 8 +- Modules/clinic/_asynciomodule.c.h | 345 +- Modules/clinic/_bisectmodule.c.h | 108 +- Modules/clinic/_bz2module.c.h | 33 +- Modules/clinic/_codecsmodule.c.h | 58 +- Modules/clinic/_collectionsmodule.c.h | 8 +- Modules/clinic/_contextvarsmodule.c.h | 8 +- Modules/clinic/_cryptmodule.c.h | 8 +- Modules/clinic/_csv.c.h | 83 +- Modules/clinic/_curses_panel.c.h | 47 +- Modules/clinic/_cursesmodule.c.h | 33 +- Modules/clinic/_datetimemodule.c.h | 58 +- Modules/clinic/_dbmmodule.c.h | 34 +- Modules/clinic/_elementtree.c.h | 208 +- Modules/clinic/_gdbmmodule.c.h | 21 +- Modules/clinic/_hashopenssl.c.h | 508 +- Modules/clinic/_heapqmodule.c.h | 8 +- Modules/clinic/_localemodule.c.h | 8 +- Modules/clinic/_lsprof.c.h | 8 +- Modules/clinic/_lzmamodule.c.h | 58 +- Modules/clinic/_opcode.c.h | 33 +- Modules/clinic/_operator.c.h | 8 +- Modules/clinic/_pickle.c.h | 158 +- Modules/clinic/_queuemodule.c.h | 83 +- Modules/clinic/_randommodule.c.h | 8 +- Modules/clinic/_ssl.c.h | 264 +- Modules/clinic/_statisticsmodule.c.h | 8 +- Modules/clinic/_struct.c.h | 83 +- Modules/clinic/_testinternalcapi.c.h | 68 + Modules/clinic/_testmultiphase.c.h | 33 +- Modules/clinic/_tkinter.c.h | 8 +- Modules/clinic/_tracemalloc.c.h | 8 +- Modules/clinic/_typingmodule.c.h | 8 +- Modules/clinic/_weakref.c.h | 8 +- Modules/clinic/_winapi.c.h | 193 +- Modules/clinic/arraymodule.c.h | 60 +- Modules/clinic/audioop.c.h | 8 +- Modules/clinic/binascii.c.h | 183 +- Modules/clinic/cmathmodule.c.h | 33 +- Modules/clinic/fcntlmodule.c.h | 8 +- Modules/clinic/gcmodule.c.h | 58 +- Modules/clinic/grpmodule.c.h | 58 +- Modules/clinic/itertoolsmodule.c.h | 183 +- Modules/clinic/mathmodule.c.h | 58 +- Modules/clinic/md5module.c.h | 33 +- Modules/clinic/overlapped.c.h | 400 +- Modules/clinic/posixmodule.c.h | 2203 +- Modules/clinic/pwdmodule.c.h | 8 +- Modules/clinic/pyexpat.c.h | 85 +- Modules/clinic/readline.c.h | 8 +- Modules/clinic/resource.c.h | 55 +- Modules/clinic/selectmodule.c.h | 133 +- Modules/clinic/sha1module.c.h | 33 +- Modules/clinic/sha256module.c.h | 58 +- Modules/clinic/sha512module.c.h | 58 +- Modules/clinic/signalmodule.c.h | 8 +- Modules/clinic/socketmodule.c.h | 33 +- Modules/clinic/spwdmodule.c.h | 8 +- Modules/clinic/symtablemodule.c.h | 8 +- Modules/clinic/termios.c.h | 8 +- Modules/clinic/unicodedata.c.h | 8 +- Modules/clinic/zlibmodule.c.h | 198 +- Modules/errnomodule.c | 8 + Modules/faulthandler.c | 12 +- Modules/fcntlmodule.c | 9 + Modules/gc_weakref.txt | 2 +- Modules/gcmodule.c | 24 +- Modules/getaddrinfo.c | 5 + Modules/getnameinfo.c | 7 +- Modules/getpath.py | 11 +- Modules/main.c | 23 +- Modules/makesetup | 21 +- Modules/mathmodule.c | 74 +- Modules/mmapmodule.c | 54 +- Modules/overlapped.c | 85 +- Modules/posixmodule.c | 50 +- Modules/pyexpat.c | 3 +- Modules/resource.c | 20 +- Modules/selectmodule.c | 5 + Modules/signalmodule.c | 10 +- Modules/socketmodule.c | 126 +- Modules/syslogmodule.c | 65 +- Modules/timemodule.c | 9 +- Modules/unicodedata.c | 5 +- Modules/unicodedata_db.h | 4919 +- Modules/unicodename_db.h | 52038 ++++++++-------- Modules/xxlimited.c | 1 + Modules/xxlimited_35.c | 58 +- Modules/xxmodule.c | 39 +- Objects/abstract.c | 9 +- Objects/accu.c | 115 - Objects/asm_trampoline.S | 28 + Objects/boolobject.c | 3 +- Objects/bytearrayobject.c | 36 +- Objects/call.c | 13 +- Objects/clinic/bytearrayobject.c.h | 183 +- Objects/clinic/bytesobject.c.h | 183 +- Objects/clinic/classobject.c.h | 8 +- Objects/clinic/codeobject.c.h | 58 +- Objects/clinic/complexobject.c.h | 33 +- Objects/clinic/descrobject.c.h | 58 +- Objects/clinic/dictobject.c.h | 8 +- Objects/clinic/enumobject.c.h | 33 +- Objects/clinic/floatobject.c.h | 8 +- Objects/clinic/funcobject.c.h | 33 +- Objects/clinic/listobject.c.h | 33 +- Objects/clinic/longobject.c.h | 83 +- Objects/clinic/memoryobject.c.h | 108 +- Objects/clinic/moduleobject.c.h | 33 +- Objects/clinic/odictobject.c.h | 133 +- Objects/clinic/structseq.c.h | 33 +- Objects/clinic/tupleobject.c.h | 8 +- Objects/clinic/typeobject.c.h | 8 +- Objects/clinic/unicodeobject.c.h | 158 +- Objects/codeobject.c | 148 +- Objects/descrobject.c | 72 +- Objects/dictobject.c | 195 +- Objects/exception_handling_notes.txt | 53 +- Objects/exceptions.c | 28 +- Objects/fileobject.c | 20 +- Objects/floatobject.c | 14 +- Objects/frameobject.c | 325 +- Objects/funcobject.c | 11 + Objects/genericaliasobject.c | 104 +- Objects/genobject.c | 21 +- Objects/listobject.c | 193 +- Objects/longobject.c | 97 +- Objects/memoryobject.c | 101 +- Objects/object.c | 200 +- Objects/object_layout.md | 82 + Objects/object_layout_312.gv | 50 + Objects/object_layout_312.png | Bin 0 -> 30688 bytes Objects/object_layout_full_312.gv | 25 + Objects/object_layout_full_312.png | Bin 0 -> 17092 bytes Objects/obmalloc.c | 2 +- Objects/perf_trampoline.c | 531 + Objects/rangeobject.c | 23 +- Objects/sliceobject.c | 51 +- Objects/stringlib/clinic/transmogrify.h.h | 33 +- Objects/stringlib/fastsearch.h | 9 +- .../stringlib_find_two_way_notes.txt | 4 +- Objects/structseq.c | 124 +- Objects/tupleobject.c | 41 +- Objects/typeobject.c | 1322 +- Objects/unicodeobject.c | 222 +- Objects/unicodetype_db.h | 854 +- Objects/weakrefobject.c | 26 +- PC/_msi.c | 4 +- PC/_wmimodule.cpp | 323 + PC/clinic/_msi.c.h | 8 +- PC/clinic/_testconsole.c.h | 58 +- PC/clinic/_wmimodule.cpp.h | 75 + PC/clinic/msvcrtmodule.c.h | 30 +- PC/clinic/winreg.c.h | 343 +- PC/clinic/winsound.c.h | 83 +- PC/empty.c | 6 - PC/launcher.c | 16 +- PC/launcher2.c | 172 +- PC/layout/main.py | 3 - PC/layout/support/appxmanifest.py | 7 +- PC/layout/support/catalog.py | 2 - PC/layout/support/constants.py | 1 - PC/msvcrtmodule.c | 10 +- PC/pyconfig.h | 38 +- PC/python3dll.c | 2 + PC/readme.txt | 6 - PC/testpy.py | 30 - PC/winreg.c | 38 +- PCbuild/_freeze_module.vcxproj | 7 +- PCbuild/_freeze_module.vcxproj.filters | 11 +- PCbuild/_sqlite3.vcxproj | 2 +- PCbuild/_testcapi.vcxproj | 8 + PCbuild/_testcapi.vcxproj.filters | 12 + PCbuild/_wmi.vcxproj | 119 + PCbuild/_wmi.vcxproj.filters | 22 + PCbuild/find_python.bat | 4 +- PCbuild/get_externals.bat | 4 +- PCbuild/lib.pyproj | 272 +- PCbuild/pcbuild.proj | 14 +- PCbuild/pcbuild.sln | 34 + PCbuild/pyproject.props | 2 +- PCbuild/python.props | 4 +- PCbuild/pythoncore.vcxproj | 9 +- PCbuild/pythoncore.vcxproj.filters | 24 +- PCbuild/readme.txt | 2 +- PCbuild/regen.targets | 9 +- Parser/asdl_c.py | 52 +- Parser/myreadline.c | 3 +- Parser/parser.c | 965 +- Parser/pegen.c | 33 +- Parser/pegen_errors.c | 12 +- Parser/string_parser.c | 49 +- Parser/tokenizer.c | 82 +- Programs/_testembed.c | 61 +- Programs/test_frozenmain.h | 70 +- Python/Python-ast.c | 131 +- Python/Python-tokenize.c | 1 + Python/_warnings.c | 48 +- Python/ast.c | 26 + Python/ceval.c | 1875 +- Python/ceval_gil.c | 986 + Python/ceval_gil.h | 349 - Python/clinic/Python-tokenize.c.h | 33 +- Python/clinic/_warnings.c.h | 137 +- Python/clinic/bltinmodule.c.h | 183 +- Python/clinic/context.c.h | 8 +- Python/clinic/import.c.h | 58 +- Python/clinic/marshal.c.h | 8 +- Python/clinic/sysmodule.c.h | 335 +- Python/clinic/traceback.c.h | 33 +- Python/compile.c | 2644 +- Python/condvar.h | 6 +- Python/dup2.c | 6 + Python/errors.c | 4 +- Python/fileutils.c | 6 +- Python/frame.c | 30 +- Python/getargs.c | 393 +- Python/getopt.c | 6 +- Python/import.c | 65 +- Python/initconfig.c | 350 +- Python/makeopcodetargets.py | 3 +- Python/opcode_targets.h | 90 +- Python/pathconfig.c | 23 +- Python/preconfig.c | 22 +- Python/pylifecycle.c | 60 +- Python/pystate.c | 105 +- Python/pytime.c | 8 + Python/specialize.c | 482 +- Python/stdlib_module_names.h | 2 - Python/suggestions.c | 1 - Python/sysmodule.c | 422 +- Python/thread.c | 21 +- Python/thread_pthread.h | 172 +- Python/thread_pthread_stubs.h | 185 + Python/traceback.c | 21 +- README.rst | 4 +- Tools/c-analyzer/c_common/fsutil.py | 19 + Tools/c-analyzer/c_common/tables.py | 285 +- Tools/c-analyzer/c_parser/__init__.py | 8 +- Tools/c-analyzer/c_parser/info.py | 29 +- Tools/c-analyzer/c_parser/parser/__init__.py | 6 +- Tools/c-analyzer/c_parser/parser/_common.py | 6 +- .../c_parser/preprocessor/__init__.py | 99 +- .../c_parser/preprocessor/common.py | 9 +- Tools/c-analyzer/c_parser/preprocessor/gcc.py | 157 +- .../c-analyzer/c_parser/preprocessor/pure.py | 2 +- Tools/c-analyzer/check-c-globals.py | 7 +- Tools/c-analyzer/cpython/__main__.py | 48 +- Tools/c-analyzer/cpython/_analyzer.py | 72 + Tools/c-analyzer/cpython/_builtin_types.py | 365 + Tools/c-analyzer/cpython/_parser.py | 181 +- Tools/c-analyzer/cpython/globals-to-fix.tsv | 782 +- Tools/c-analyzer/cpython/ignored.tsv | 1256 +- Tools/clinic/clinic.py | 126 +- Tools/gdb/libpython.py | 43 +- Tools/msi/build.bat | 19 +- Tools/msi/buildrelease.bat | 47 +- .../PythonBootstrapperApplication.cpp | 38 +- Tools/msi/bundle/packagegroups/launcher.wxs | 12 +- Tools/msi/doc/doc.wxs | 5 + Tools/msi/launcher/launcher.wxs | 13 +- Tools/msi/launcher/launcher_files.wxs | 13 +- Tools/msi/lib/lib_files.wxs | 2 +- Tools/peg_generator/Makefile | 2 +- Tools/peg_generator/pegen/grammar.py | 7 - Tools/peg_generator/scripts/benchmark.py | 2 +- .../peg_generator/scripts/grammar_grapher.py | 1 - .../scripts/test_parse_directory.py | 2 - .../scripts/test_pypi_packages.py | 3 +- Tools/scripts/2to3 | 2 +- Tools/scripts/check_extension_modules.py | 484 + Tools/scripts/deepfreeze.py | 29 +- Tools/scripts/freeze_modules.py | 1 - Tools/scripts/generate_global_objects.py | 77 +- Tools/scripts/generate_opcode_h.py | 57 +- Tools/scripts/generate_re_casefix.py | 1 - Tools/scripts/generate_stdlib_module_names.py | 59 +- Tools/scripts/idle3 | 2 +- Tools/scripts/parse_html5_entities.py | 27 +- Tools/scripts/parseentities.py | 64 - Tools/scripts/pathfix.py | 1 - Tools/scripts/run_tests.py | 46 +- Tools/scripts/stable_abi.py | 1 - Tools/scripts/summarize_stats.py | 38 +- Tools/scripts/verify_ensurepip_wheels.py | 98 + Tools/ssl/multissltests.py | 9 +- Tools/unicode/genmap_tchinese.py | 239 + Tools/unicode/makeunicodedata.py | 47 +- Tools/wasm/.editorconfig | 7 + Tools/wasm/README.md | 237 +- Tools/wasm/config.site-wasm32-emscripten | 14 + Tools/wasm/config.site-wasm32-wasi | 8 +- Tools/wasm/python.html | 113 +- Tools/wasm/python.worker.js | 8 +- Tools/wasm/wasi-env | 76 + Tools/wasm/wasm_assets.py | 76 +- Tools/wasm/wasm_build.py | 907 + configure | 15051 +++-- configure.ac | 1145 +- pyconfig.h.in | 100 +- setup.py | 1626 - 1807 files changed, 99261 insertions(+), 64527 deletions(-) delete mode 100644 .azure-pipelines/find-tools.yml delete mode 100644 .azure-pipelines/libffi-build.yml delete mode 100644 .azure-pipelines/openssl-build.yml delete mode 100644 .azure-pipelines/tcltk-build.yml create mode 100644 .github/workflows/project-updater.yml create mode 100644 .github/workflows/regen-abidump.sh create mode 100644 .github/workflows/verify-ensurepip-wheels.yml delete mode 100644 Doc/distutils/_setuptools_disclaimer.rst delete mode 100644 Doc/distutils/apiref.rst delete mode 100644 Doc/distutils/builtdist.rst delete mode 100644 Doc/distutils/commandref.rst delete mode 100644 Doc/distutils/configfile.rst delete mode 100644 Doc/distutils/examples.rst delete mode 100644 Doc/distutils/extending.rst delete mode 100644 Doc/distutils/index.rst delete mode 100644 Doc/distutils/introduction.rst delete mode 100644 Doc/distutils/packageindex.rst delete mode 100644 Doc/distutils/setupscript.rst delete mode 100644 Doc/distutils/sourcedist.rst delete mode 100644 Doc/distutils/uploading.rst create mode 100644 Doc/howto/isolating-extensions.rst create mode 100644 Doc/howto/perf_profiling.rst delete mode 100644 Doc/includes/sqlite3/adapter_datetime.py delete mode 100644 Doc/includes/sqlite3/adapter_point_1.py delete mode 100644 Doc/includes/sqlite3/adapter_point_2.py delete mode 100644 Doc/includes/sqlite3/blob.py delete mode 100644 Doc/includes/sqlite3/collation_reverse.py delete mode 100644 Doc/includes/sqlite3/complete_statement.py delete mode 100644 Doc/includes/sqlite3/converter_point.py delete mode 100644 Doc/includes/sqlite3/ctx_manager.py delete mode 100644 Doc/includes/sqlite3/execute_1.py delete mode 100644 Doc/includes/sqlite3/executemany_1.py delete mode 100644 Doc/includes/sqlite3/executemany_2.py delete mode 100644 Doc/includes/sqlite3/executescript.py delete mode 100644 Doc/includes/sqlite3/load_extension.py delete mode 100644 Doc/includes/sqlite3/md5func.py delete mode 100644 Doc/includes/sqlite3/mysumaggr.py delete mode 100644 Doc/includes/sqlite3/pysqlite_datetime.py delete mode 100644 Doc/includes/sqlite3/row_factory.py delete mode 100644 Doc/includes/sqlite3/rowclass.py delete mode 100644 Doc/includes/sqlite3/shortcut_methods.py delete mode 100644 Doc/includes/sqlite3/sumintwindow.py delete mode 100644 Doc/includes/sqlite3/text_factory.py create mode 100644 Doc/includes/wasm-notavail.rst delete mode 100644 Doc/library/distutils.rst delete mode 100644 Doc/library/smtpd.rst mode change 100755 => 100644 Doc/library/socket.rst create mode 100644 Include/cpython/pthread_stubs.h create mode 100644 Include/cpython/pyframe.h delete mode 100644 Include/internal/pycore_accu.h create mode 100644 Include/internal/pycore_descrobject.h create mode 100644 Include/internal/pycore_range.h create mode 100644 Include/internal/pycore_runtime_init_generated.h delete mode 100644 Lib/_bootsubprocess.py delete mode 100644 Lib/ctypes/test/__main__.py delete mode 100644 Lib/ensurepip/_bundled/pip-22.0.4-py3-none-any.whl create mode 100644 Lib/ensurepip/_bundled/pip-22.2.2-py3-none-any.whl delete mode 100644 Lib/ensurepip/_bundled/setuptools-58.1.0-py3-none-any.whl create mode 100644 Lib/ensurepip/_bundled/setuptools-63.2.0-py3-none-any.whl mode change 100755 => 100644 Lib/socket.py create mode 100644 Lib/sqlite3/__main__.py create mode 100644 Lib/test/audiodata/pluck-pcm24-ext.wav rename Lib/{ => test}/smtpd.py (98%) delete mode 100644 Lib/test/test_ctypes.py rename Lib/{ctypes/test => test/test_ctypes}/__init__.py (100%) create mode 100644 Lib/test/test_ctypes/__main__.py rename Lib/{ctypes/test => test/test_ctypes}/test_anon.py (100%) rename Lib/{ctypes/test => test/test_ctypes}/test_array_in_pointer.py (100%) rename Lib/{ctypes/test => test/test_ctypes}/test_arrays.py (99%) rename Lib/{ctypes/test => test/test_ctypes}/test_as_parameter.py (98%) rename Lib/{ctypes/test => test/test_ctypes}/test_bitfields.py (99%) rename Lib/{ctypes/test => test/test_ctypes}/test_buffers.py (98%) rename Lib/{ctypes/test => test/test_ctypes}/test_bytes.py (100%) rename Lib/{ctypes/test => test/test_ctypes}/test_byteswap.py (100%) rename Lib/{ctypes/test => test/test_ctypes}/test_callbacks.py (98%) rename Lib/{ctypes/test => test/test_ctypes}/test_cast.py (98%) rename Lib/{ctypes/test => test/test_ctypes}/test_cfuncs.py (97%) rename Lib/{ctypes/test => test/test_ctypes}/test_checkretval.py (95%) rename Lib/{ctypes/test => test/test_ctypes}/test_delattr.py (100%) rename Lib/{ctypes/test => test/test_ctypes}/test_errno.py (100%) rename Lib/{ctypes/test => test/test_ctypes}/test_find.py (100%) rename Lib/{ctypes/test => test/test_ctypes}/test_frombuffer.py (100%) rename Lib/{ctypes/test => test/test_ctypes}/test_funcptr.py (100%) rename Lib/{ctypes/test => test/test_ctypes}/test_functions.py (98%) rename Lib/{ctypes/test => test/test_ctypes}/test_incomplete.py (100%) rename Lib/{ctypes/test => test/test_ctypes}/test_init.py (100%) rename Lib/{ctypes/test => test/test_ctypes}/test_internals.py (100%) rename Lib/{ctypes/test => test/test_ctypes}/test_keeprefs.py (100%) rename Lib/{ctypes/test => test/test_ctypes}/test_libc.py (100%) rename Lib/{ctypes/test => test/test_ctypes}/test_loading.py (99%) rename Lib/{ctypes/test => test/test_ctypes}/test_macholib.py (100%) rename Lib/{ctypes/test => test/test_ctypes}/test_memfunctions.py (98%) rename Lib/{ctypes/test => test/test_ctypes}/test_numbers.py (100%) rename Lib/{ctypes/test => test/test_ctypes}/test_objects.py (87%) rename Lib/{ctypes/test => test/test_ctypes}/test_parameters.py (99%) rename Lib/{ctypes/test => test/test_ctypes}/test_pep3118.py (100%) rename Lib/{ctypes/test => test/test_ctypes}/test_pickling.py (100%) rename Lib/{ctypes/test => test/test_ctypes}/test_pointers.py (100%) rename Lib/{ctypes/test => test/test_ctypes}/test_prototypes.py (99%) rename Lib/{ctypes/test => test/test_ctypes}/test_python_api.py (100%) rename Lib/{ctypes/test => test/test_ctypes}/test_random_things.py (100%) rename Lib/{ctypes/test => test/test_ctypes}/test_refcounts.py (100%) rename Lib/{ctypes/test => test/test_ctypes}/test_repr.py (100%) rename Lib/{ctypes/test => test/test_ctypes}/test_returnfuncptrs.py (100%) rename Lib/{ctypes/test => test/test_ctypes}/test_simplesubclasses.py (100%) rename Lib/{ctypes/test => test/test_ctypes}/test_sizes.py (90%) rename Lib/{ctypes/test => test/test_ctypes}/test_slicing.py (99%) rename Lib/{ctypes/test => test/test_ctypes}/test_stringptr.py (100%) rename Lib/{ctypes/test => test/test_ctypes}/test_strings.py (99%) rename Lib/{ctypes/test => test/test_ctypes}/test_struct_fields.py (100%) rename Lib/{ctypes/test => test/test_ctypes}/test_structures.py (99%) rename Lib/{ctypes/test => test/test_ctypes}/test_unaligned_structures.py (100%) rename Lib/{ctypes/test => test/test_ctypes}/test_unicode.py (97%) rename Lib/{ctypes/test => test/test_ctypes}/test_values.py (100%) rename Lib/{ctypes/test => test/test_ctypes}/test_varsize_struct.py (100%) rename Lib/{ctypes/test => test/test_ctypes}/test_win32.py (100%) rename Lib/{ctypes/test => test/test_ctypes}/test_wintypes.py (100%) rename Lib/{lib2to3/tests/data/fixers/myfixes => test/test_importlib/resources/data01}/__init__.py (100%) rename Lib/test/test_importlib/{ => resources}/data01/binary.file (100%) rename Lib/test/test_importlib/{data01 => resources/data01/subdirectory}/__init__.py (100%) rename Lib/test/test_importlib/{ => resources}/data01/subdirectory/binary.file (100%) rename Lib/test/test_importlib/{ => resources}/data01/utf-16.file (100%) rename Lib/test/test_importlib/{ => resources}/data01/utf-8.file (100%) rename Lib/test/test_importlib/{data01/subdirectory => resources/data02}/__init__.py (100%) rename Lib/test/test_importlib/{data02 => resources/data02/one}/__init__.py (100%) rename Lib/test/test_importlib/{ => resources}/data02/one/resource1.txt (100%) rename Lib/test/test_importlib/{data02/one => resources/data02/two}/__init__.py (100%) rename Lib/test/test_importlib/{ => resources}/data02/two/resource2.txt (100%) rename Lib/test/test_importlib/{data02/two => resources/data03}/__init__.py (100%) rename Lib/test/test_importlib/{data03 => resources/data03/namespace/portion1}/__init__.py (100%) rename Lib/test/test_importlib/{data03/namespace/portion1 => resources/data03/namespace/portion2}/__init__.py (100%) rename Lib/test/test_importlib/{ => resources}/data03/namespace/resource1.txt (100%) rename Lib/test/test_importlib/{ => resources}/namespacedata01/binary.file (100%) rename Lib/test/test_importlib/{ => resources}/namespacedata01/utf-16.file (100%) rename Lib/test/test_importlib/{ => resources}/namespacedata01/utf-8.file (100%) rename Lib/test/test_importlib/{ => resources}/test_compatibilty_files.py (99%) rename Lib/test/test_importlib/{ => resources}/test_contents.py (97%) rename Lib/test/test_importlib/{ => resources}/test_files.py (94%) rename Lib/test/test_importlib/{ => resources}/test_open.py (98%) rename Lib/test/test_importlib/{ => resources}/test_path.py (98%) rename Lib/test/test_importlib/{ => resources}/test_read.py (98%) rename Lib/test/test_importlib/{ => resources}/test_reader.py (100%) rename Lib/test/test_importlib/{ => resources}/test_resource.py (99%) rename Lib/test/test_importlib/{ => resources}/update-zips.py (100%) rename Lib/test/test_importlib/{data03/namespace/portion2 => resources/zipdata01}/__init__.py (100%) rename Lib/test/test_importlib/{ => resources}/zipdata01/ziptestdata.zip (100%) rename Lib/test/test_importlib/{zipdata01 => resources/zipdata02}/__init__.py (100%) rename Lib/test/test_importlib/{ => resources}/zipdata02/ziptestdata.zip (100%) create mode 100644 Lib/test/test_json/test_attrdict.py delete mode 100644 Lib/test/test_lib2to3.py rename Lib/{lib2to3/tests => test/test_lib2to3}/__init__.py (100%) rename Lib/{lib2to3/tests => test/test_lib2to3}/__main__.py (100%) rename Lib/{lib2to3/tests => test/test_lib2to3}/data/README (100%) rename Lib/{lib2to3/tests => test/test_lib2to3}/data/bom.py (100%) rename Lib/{lib2to3/tests => test/test_lib2to3}/data/crlf.py (100%) rename Lib/{lib2to3/tests => test/test_lib2to3}/data/different_encoding.py (100%) rename Lib/{lib2to3/tests => test/test_lib2to3}/data/false_encoding.py (100%) rename Lib/{lib2to3/tests => test/test_lib2to3}/data/fixers/bad_order.py (100%) rename Lib/test/{test_importlib/zipdata02 => test_lib2to3/data/fixers/myfixes}/__init__.py (100%) rename Lib/{lib2to3/tests => test/test_lib2to3}/data/fixers/myfixes/fix_explicit.py (100%) rename Lib/{lib2to3/tests => test/test_lib2to3}/data/fixers/myfixes/fix_first.py (100%) rename Lib/{lib2to3/tests => test/test_lib2to3}/data/fixers/myfixes/fix_last.py (100%) rename Lib/{lib2to3/tests => test/test_lib2to3}/data/fixers/myfixes/fix_parrot.py (100%) rename Lib/{lib2to3/tests => test/test_lib2to3}/data/fixers/myfixes/fix_preorder.py (100%) rename Lib/{lib2to3/tests => test/test_lib2to3}/data/fixers/no_fixer_cls.py (100%) rename Lib/{lib2to3/tests => test/test_lib2to3}/data/fixers/parrot_example.py (100%) rename Lib/{lib2to3/tests => test/test_lib2to3}/data/infinite_recursion.py (100%) rename Lib/{lib2to3/tests => test/test_lib2to3}/data/py2_test_grammar.py (99%) rename Lib/{lib2to3/tests => test/test_lib2to3}/data/py3_test_grammar.py (99%) rename Lib/{lib2to3/tests => test/test_lib2to3}/pytree_idempotency.py (96%) rename Lib/{lib2to3/tests => test/test_lib2to3}/support.py (77%) rename Lib/{lib2to3/tests => test/test_lib2to3}/test_all_fixers.py (99%) rename Lib/{lib2to3/tests => test/test_lib2to3}/test_fixers.py (99%) rename Lib/{lib2to3/tests => test/test_lib2to3}/test_main.py (100%) rename Lib/{lib2to3/tests => test/test_lib2to3}/test_parser.py (99%) rename Lib/{lib2to3/tests => test/test_lib2to3}/test_pytree.py (100%) rename Lib/{lib2to3/tests => test/test_lib2to3}/test_refactor.py (100%) rename Lib/{lib2to3/tests => test/test_lib2to3}/test_util.py (100%) create mode 100644 Lib/test/test_perf_profiler.py delete mode 100644 Lib/test/test_smtpd.py mode change 100755 => 100644 Lib/test/test_socket.py create mode 100644 Lib/test/test_sqlite3/test_cli.py delete mode 100644 Lib/test/test_tk.py rename Lib/{tkinter/test => test/test_tkinter}/README (100%) create mode 100644 Lib/test/test_tkinter/__init__.py create mode 100644 Lib/test/test_tkinter/__main__.py rename Lib/{tkinter/test => test/test_tkinter}/support.py (99%) rename Lib/{tkinter => }/test/test_tkinter/test_colorchooser.py (96%) rename Lib/{tkinter => }/test/test_tkinter/test_font.py (98%) rename Lib/{tkinter => }/test/test_tkinter/test_geometry_managers.py (99%) rename Lib/{tkinter => }/test/test_tkinter/test_images.py (99%) rename Lib/{tkinter => }/test/test_tkinter/test_loadtk.py (100%) rename Lib/{tkinter => }/test/test_tkinter/test_messagebox.py (94%) rename Lib/{tkinter => }/test/test_tkinter/test_misc.py (99%) rename Lib/{tkinter => }/test/test_tkinter/test_simpledialog.py (93%) rename Lib/{tkinter => }/test/test_tkinter/test_text.py (96%) rename Lib/{tkinter => }/test/test_tkinter/test_variables.py (99%) rename Lib/{tkinter => }/test/test_tkinter/test_widgets.py (99%) rename Lib/{tkinter/test => test/test_tkinter}/widget_tests.py (99%) rename Lib/test/{test_ttk_guionly.py => test_ttk/__init__.py} (68%) create mode 100644 Lib/test/test_ttk/__main__.py rename Lib/{tkinter => }/test/test_ttk/test_extensions.py (99%) rename Lib/{tkinter => }/test/test_ttk/test_style.py (98%) rename Lib/{tkinter => }/test/test_ttk/test_widgets.py (99%) delete mode 100644 Lib/test/test_unittest.py create mode 100644 Lib/test/test_unittest/__init__.py create mode 100644 Lib/test/test_unittest/__main__.py rename Lib/{unittest/test => test/test_unittest}/_test_warnings.py (84%) rename Lib/{unittest/test => test/test_unittest}/dummy.py (100%) rename Lib/{unittest/test => test/test_unittest}/support.py (100%) rename Lib/{unittest/test => test/test_unittest}/test_assertions.py (97%) rename Lib/{unittest/test => test/test_unittest}/test_async_case.py (94%) rename Lib/{unittest/test => test/test_unittest}/test_break.py (100%) rename Lib/{unittest/test => test/test_unittest}/test_case.py (96%) rename Lib/{unittest/test => test/test_unittest}/test_discovery.py (99%) rename Lib/{unittest/test => test/test_unittest}/test_functiontestcase.py (99%) rename Lib/{unittest/test => test/test_unittest}/test_loader.py (90%) rename Lib/{unittest/test => test/test_unittest}/test_program.py (93%) rename Lib/{unittest/test => test/test_unittest}/test_result.py (99%) rename Lib/{unittest/test => test/test_unittest}/test_runner.py (99%) rename Lib/{unittest/test => test/test_unittest}/test_setups.py (100%) rename Lib/{unittest/test => test/test_unittest}/test_skipping.py (99%) rename Lib/{unittest/test => test/test_unittest}/test_suite.py (99%) create mode 100644 Lib/test/test_unittest/testmock/__init__.py rename Lib/{unittest/test => test/test_unittest}/testmock/__main__.py (86%) rename Lib/{unittest/test => test/test_unittest}/testmock/support.py (100%) rename Lib/{unittest/test => test/test_unittest}/testmock/testasync.py (100%) rename Lib/{unittest/test => test/test_unittest}/testmock/testcallable.py (98%) rename Lib/{unittest/test => test/test_unittest}/testmock/testhelpers.py (100%) rename Lib/{unittest/test => test/test_unittest}/testmock/testmagicmethods.py (100%) rename Lib/{unittest/test => test/test_unittest}/testmock/testmock.py (99%) rename Lib/{unittest/test => test/test_unittest}/testmock/testpatch.py (98%) rename Lib/{unittest/test => test/test_unittest}/testmock/testsealable.py (100%) rename Lib/{unittest/test => test/test_unittest}/testmock/testsentinel.py (100%) rename Lib/{unittest/test => test/test_unittest}/testmock/testwith.py (99%) create mode 100644 Lib/test/test_wmi.py delete mode 100644 Lib/tkinter/test/__init__.py delete mode 100644 Lib/tkinter/test/test_tkinter/__init__.py delete mode 100644 Lib/tkinter/test/test_ttk/__init__.py delete mode 100644 Lib/unittest/test/__init__.py delete mode 100644 Lib/unittest/test/__main__.py delete mode 100644 Lib/unittest/test/testmock/__init__.py create mode 100644 Mac/BuildScript/openssl1.1.1q-pr-18719.patch create mode 100644 Misc/NEWS.d/next/Build/2022-05-31-18-04-58.gh-issue-69093.6lSa0C.rst create mode 100644 Misc/NEWS.d/next/Build/2022-06-04-12-53-53.gh-issue-93491.ehM211.rst create mode 100644 Misc/NEWS.d/next/Build/2022-06-08-14-28-03.gh-issue-93584.0xfHOK.rst create mode 100644 Misc/NEWS.d/next/Build/2022-06-25-23-25-47.gh-issue-94280.YhEyW_.rst create mode 100644 Misc/NEWS.d/next/Build/2022-06-27-11-57-15.gh-issue-93939.rv7s8W.rst create mode 100644 Misc/NEWS.d/next/Build/2022-06-28-09-42-10.gh-issue-93939._VWxKW.rst create mode 100644 Misc/NEWS.d/next/Build/2022-06-29-08-58-31.gh-issue-94404.3MadM6.rst create mode 100644 Misc/NEWS.d/next/Build/2022-06-30-09-57-39.gh-issue-90005.9-pQyR.rst create mode 100644 Misc/NEWS.d/next/Build/2022-06-30-17-00-54.gh-issue-90005.iiq5qD.rst create mode 100644 Misc/NEWS.d/next/Build/2022-06-30-17-18-23.gh-issue-90005.EIOOla.rst create mode 100644 Misc/NEWS.d/next/Build/2022-07-08-10-28-23.gh-issue-94682.ZtGt_0.rst create mode 100644 Misc/NEWS.d/next/Build/2022-07-12-13-39-18.gh-issue-94773.koHKm5.rst create mode 100644 Misc/NEWS.d/next/Build/2022-07-13-10-13-10.gh-issue-94801.3xUB24.rst create mode 100644 Misc/NEWS.d/next/Build/2022-07-14-02-45-44.gh-issue-94841.lLRTdf.rst create mode 100644 Misc/NEWS.d/next/Build/2022-07-14-11-13-26.gh-issue-94847.s3Kr5p.rst create mode 100644 Misc/NEWS.d/next/Build/2022-07-21-09-17-01.gh-issue-95085.E9x2S_.rst create mode 100644 Misc/NEWS.d/next/Build/2022-07-23-21-39-09.gh-issue-95174.7cYMZR.rst create mode 100644 Misc/NEWS.d/next/Build/2022-07-25-08-59-35.gh-issue-95174.g8woUW.rst create mode 100644 Misc/NEWS.d/next/Build/2022-07-25-09-48-43.gh-issue-95145.ZNS3dj.rst create mode 100644 Misc/NEWS.d/next/Build/2022-07-26-18-13-34.gh-issue-94801.9fREfy.rst create mode 100644 Misc/NEWS.d/next/Build/2022-08-04-15-29-35.gh-issue-93744.svRuqm.rst create mode 100644 Misc/NEWS.d/next/Build/2022-08-12-13-06-03.gh-issue-90536.qMpF6p.rst create mode 100644 Misc/NEWS.d/next/Build/2022-08-15-10-56-07.gh-issue-95973.Bsswsc.rst create mode 100644 Misc/NEWS.d/next/Build/2022-08-26-11-09-11.gh-issue-84461.Nsdn_R.rst create mode 100644 Misc/NEWS.d/next/Build/2022-08-26-11-50-03.gh-issue-96269.x_J5h0.rst create mode 100644 Misc/NEWS.d/next/Build/2022-09-11-14-23-49.gh-issue-96729.W4uBWL.rst create mode 100644 Misc/NEWS.d/next/Build/2022-09-12-18-34-51.gh-issue-85936.tX4VCU.rst create mode 100644 Misc/NEWS.d/next/C API/2021-10-05-21-59-43.bpo-45383.TVClgf.rst create mode 100644 Misc/NEWS.d/next/C API/2022-04-13-16-10-55.gh-issue-59121.-B7mKp.rst create mode 100644 Misc/NEWS.d/next/C API/2022-05-03-19-35-37.gh-issue-92193.61VoFL.rst create mode 100644 Misc/NEWS.d/next/C API/2022-05-23-12-31-04.gh-issue-77782.ugC8dn.rst create mode 100644 Misc/NEWS.d/next/C API/2022-06-03-14-54-41.gh-issue-93466.DDtH0X.rst create mode 100644 Misc/NEWS.d/next/C API/2022-06-04-13-15-41.gh-issue-93442.4M4NDb.rst create mode 100644 Misc/NEWS.d/next/C API/2022-06-06-16-04-14.gh-issue-93503.MHJTu8.rst create mode 100644 Misc/NEWS.d/next/C API/2022-06-10-16-50-27.gh-issue-89546.mX1f10.rst create mode 100644 Misc/NEWS.d/next/C API/2022-06-10-23-41-48.gh-issue-91731.fhYUQG.rst create mode 100644 Misc/NEWS.d/next/C API/2022-06-13-21-37-31.gh-issue-91321.DgJFvS.rst create mode 100644 Misc/NEWS.d/next/C API/2022-06-17-13-41-38.gh-issue-93937.uKVTEh.rst create mode 100644 Misc/NEWS.d/next/C API/2022-07-12-17-39-32.gh-issue-94731.9CPJNU.rst create mode 100644 Misc/NEWS.d/next/C API/2022-07-17-18-21-40.gh-issue-94930.gPFGDL.rst create mode 100644 Misc/NEWS.d/next/C API/2022-07-19-22-37-40.gh-issue-94936.LGlmKv.rst create mode 100644 Misc/NEWS.d/next/C API/2022-07-25-15-54-27.gh-issue-92678.ziZpxz.rst create mode 100644 Misc/NEWS.d/next/C API/2022-07-29-10-41-59.gh-issue-95388.aiRSgr.rst create mode 100644 Misc/NEWS.d/next/C API/2022-07-29-15-24-45.gh-issue-93012.-DdGEy.rst create mode 100644 Misc/NEWS.d/next/C API/2022-07-31-21-58-27.gh-issue-95504.wy7B1F.rst create mode 100644 Misc/NEWS.d/next/C API/2022-08-01-16-21-39.gh-issue-93274.QoDHEu.rst create mode 100644 Misc/NEWS.d/next/C API/2022-08-03-13-01-57.gh-issue-92678.DLwONN.rst create mode 100644 Misc/NEWS.d/next/C API/2022-08-03-14-39-08.gh-issue-92678.ozFTEx.rst create mode 100644 Misc/NEWS.d/next/C API/2022-08-08-14-36-31.gh-issue-95781.W_G8YW.rst create mode 100644 Misc/NEWS.d/next/C API/2022-08-16-16-54-42.gh-issue-95589.6xE1ar.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-01-02-14-53-59.bpo-46142.WayjgT.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-03-22-13-12-27.bpo-47091.tJcy-P.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-04-24-02-22-10.gh-issue-91432.YPJAK6.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-05-11-09-16-54.gh-issue-91102.lenv9h.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-05-17-20-41-43.gh-issue-92858.eIXJTn.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-05-18-18-34-45.gh-issue-92930.kpYPOb.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-05-20-09-25-34.gh-issue-93021.k3Aji2.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-05-23-18-36-07.gh-issue-93143.X1Yqxm.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-05-25-12-30-12.gh-issue-84694.5sjy2w.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-05-30-10-22-46.gh-issue-93345.gi1A4L.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-05-30-14-50-03.gh-issue-93283.XDO2ZQ.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-05-30-15-35-42.gh-issue-93354.RZk8gs.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-05-30-15-51-11.gh-issue-93356.l5wnzW.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-05-30-19-00-38.gh-issue-93359.zXV3A0.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-05-31-16-36-30.gh-issue-93382.Jf6gAj.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-01-17-47-40.gh-issue-93418.24dJuc.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-02-08-28-55.gh-issue-93429.DZTWHx.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-02-23-00-08.gh-issue-93444.m63DIs.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-06-14-28-24.gh-issue-93533.lnC0CC.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-09-09-08-29.gh-issue-93621.-_Pn1d.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-09-19-19-02.gh-issue-93461.5DqP1e.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-10-10-31-18.gh-issue-93662.-7RSC1.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-10-12-03-17.gh-issue-93671.idkQqG.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-10-16-57-35.gh-issue-93678.1WBnHt.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-12-19-31-56.gh-issue-89828.bq02M7.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-13-10-48-09.gh-issue-93516.yJSait.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-13-13-55-34.gh-issue-93516.HILrDl.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-15-11-16-13.gh-issue-93841.06zqX3.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-15-16-45-53.gh-issue-93678.1I_ZT3.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-16-16-53-22.gh-issue-93911.RDwIiK.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-17-16-30-24.gh-issue-93955.LmiAe9.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-18-17-00-33.gh-issue-93911.y286of.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-20-13-48-57.gh-issue-94021.o78q3G.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-23-12-10-39.gh-issue-94163.SqAfQq.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-24-14-06-20.gh-issue-93883.8jVQQ4.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-25-10-19-43.gh-issue-87995.aMDHnp.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-26-14-37-03.gh-issue-94192.ab7tn7.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-28-10-08-06.gh-issue-94262.m-HWUZ.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-28-12-41-17.gh-issue-88116.A7fEl_.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-28-14-20-36.gh-issue-94360.DiEnen.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-29-15-45-04.gh-issue-94329.olUQyk.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-29-22-18-36.gh-issue-91719.3APYYI.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-30-15-07-26.gh-issue-94438.btzHSk.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-01-20-00-19.gh-issue-94485.mo5st7.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-06-14-02-26.gh-issue-92228.44Cbly.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-07-21-13-25.gh-issue-94215._Sv9Ms.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-08-11-44-45.gh-issue-93252.i2358c.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-08-16-44-11.gh-issue-94694.VkL2CM.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-14-10-07-53.gh-issue-90699.x3aG9m.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-15-16-15-04.gh-issue-91153.HiBmtt.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-15-22-16-08.gh-issue-94822.zRRzBN.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-15-22-47-44.gh-issue-94893.YiJYcW.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-16-08-14-17.gh-issue-94869.eRwMsX.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-17-15-54-29.gh-issue-91256.z7i7Q5.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-18-04-48-34.gh-issue-94947.df9gUw.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-18-05-10-29.gh-issue-94949.OsZ7_s.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-18-14-19-21.gh-issue-94739.NQJQi7.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-19-04-34-56.gh-issue-94996.dV564A.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-19-09-41-55.gh-issue-94938.xYBlM7.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-19-16-30-59.gh-issue-94036._6Utkm.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-20-13-46-01.gh-issue-91409.dhL8Zo.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-21-17-54-52.gh-issue-95113.NnSLpT.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-21-19-19-20.gh-issue-95060.4xdT1f.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-22-12-53-34.gh-issue-94438.hNqACc.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-23-19-16-25.gh-issue-93351.0Jyvu-.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-24-00-27-47.gh-issue-95185.ghYTZx.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-26-09-31-12.gh-issue-93678.W8vvgT.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-26-12-59-03.gh-issue-95245.GHWczn.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-27-14-05-07.gh-issue-95324.28Q5u7.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-27-14-21-57.gh-issue-90081.HVAS5x.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-28-08-33-31.gh-issue-95355.yN4XVk.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-28-19-07-06.gh-issue-87092.73IPS1.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-31-03-22-58.gh-issue-91146.Y2Hziy.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-31-13-23-12.gh-issue-95150.67FXVo.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-04-18-46-54.gh-issue-95605.FbpCoG.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-11-09-19-55.gh-issue-95876.YpQfoV.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-11-11-01-56.gh-issue-95818.iClLdl.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-12-13-04-25.gh-issue-95922.YNCtyX.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-14-10-04-44.gh-issue-95977.gCTZb9.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-15-11-58-05.gh-issue-90997.bWwV8Q.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-15-12-41-14.gh-issue-95245.N4gOUV.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-15-20-52-41.gh-issue-93678.X7GuIJ.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-15-21-08-11.gh-issue-96005.6eoc8k.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-18-13-47-59.gh-issue-96046.5Hqbka.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-19-06-51-17.gh-issue-96071.mVgPAo.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-20-18-36-40.gh-issue-96143.nh3GFM.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-22-21-33-28.gh-issue-96187.W_6SRG.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-24-14-30-26.gh-issue-96237.msif5f.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-25-10-19-34.gh-issue-96268.AbYrLB.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-26-18-46-32.gh-issue-93554.QEaCcK.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-28-10-51-19.gh-issue-96352.jTLD2d.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-29-00-37-21.gh-issue-96364.c-IVyb.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-09-02-16-47-52.gh-issue-93911.vF-GWe.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-09-05-15-07-25.gh-issue-96582.HEsL5s.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-09-05-16-43-44.gh-issue-96569.9lmTCC.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-09-05-19-20-44.gh-issue-96587.bVxhX2.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-09-06-11-19-03.gh-issue-90230.YOtzs5.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-09-06-14-26-36.gh-issue-96612.P4ZbeY.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-09-06-16-22-13.gh-issue-96611.14wIX8.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-09-06-16-54-49.gh-issue-96572.8DRsaW.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-09-07-12-02-11.gh-issue-96636.YvN-K6.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-09-07-13-38-37.gh-issue-96641.wky0Fc.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-09-09-13-13-27.gh-issue-96678.vMxi9F.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-09-11-00-37-50.gh-issue-90751.VE8-zf.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-09-11-12-43-43.gh-issue-96751.anRT6a.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-09-12-15-15-04.gh-issue-90997.sZO8c9.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-09-12-16-58-22.gh-issue-96754.0GRme5.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-09-13-12-06-46.gh-issue-96678.NqGFyb.rst create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-09-16-19-02-40.gh-issue-95778.cJmnst.rst create mode 100644 Misc/NEWS.d/next/Documentation/2022-03-30-17-56-01.bpo-47161.gesHfS.rst create mode 100644 Misc/NEWS.d/next/Documentation/2022-05-18-23-58-26.gh-issue-92240.bHvYiz.rst create mode 100644 Misc/NEWS.d/next/Documentation/2022-05-26-11-33-23.gh-issue-86438.kEGGmK.rst create mode 100644 Misc/NEWS.d/next/Documentation/2022-05-26-14-51-25.gh-issue-88831.5Cccr5.rst create mode 100644 Misc/NEWS.d/next/Documentation/2022-05-29-21-22-54.gh-issue-86986.lFXw8j.rst create mode 100644 Misc/NEWS.d/next/Documentation/2022-06-15-12-12-49.gh-issue-87260.epyI7D.rst create mode 100644 Misc/NEWS.d/next/Documentation/2022-06-16-10-10-59.gh-issue-61162.1ypkG8.rst create mode 100644 Misc/NEWS.d/next/Documentation/2022-06-19-18-18-22.gh-issue-86128.39DDTD.rst create mode 100644 Misc/NEWS.d/next/Documentation/2022-07-07-08-42-05.gh-issue-94321.pmCIPb.rst create mode 100644 Misc/NEWS.d/next/Documentation/2022-07-29-09-04-02.gh-issue-95415.LKTyw6.rst create mode 100644 Misc/NEWS.d/next/Documentation/2022-07-29-23-02-19.gh-issue-95451.-tgB93.rst create mode 100644 Misc/NEWS.d/next/Documentation/2022-07-30-00-23-11.gh-issue-95454.we7AFm.rst create mode 100644 Misc/NEWS.d/next/Documentation/2022-08-03-13-35-08.gh-issue-91207.eJ4pPf.rst create mode 100644 Misc/NEWS.d/next/Documentation/2022-08-13-20-34-51.gh-issue-95957.W9ZZAx.rst create mode 100644 Misc/NEWS.d/next/Documentation/2022-08-19-17-07-45.gh-issue-96098.nDp43u.rst create mode 100644 Misc/NEWS.d/next/Documentation/2022-09-01-17-03-04.gh-issue-96432.1EJ1-4.rst create mode 100644 Misc/NEWS.d/next/IDLE/2022-07-28-18-56-57.gh-issue-89610.hcosiM.rst create mode 100644 Misc/NEWS.d/next/IDLE/2022-07-29-11-08-52.gh-issue-95411.dazlqH.rst create mode 100644 Misc/NEWS.d/next/IDLE/2022-07-30-15-10-39.gh-issue-95471.z3scVG.rst create mode 100644 Misc/NEWS.d/next/IDLE/2022-07-31-22-15-14.gh-issue-95511.WX6PmB.rst create mode 100644 Misc/NEWS.d/next/IDLE/2022-08-01-23-31-48.gh-issue-95191.U7vryB.rst create mode 100644 Misc/NEWS.d/next/IDLE/2022-08-04-20-07-51.gh-issue-65802.xnThWe.rst create mode 100644 Misc/NEWS.d/next/Library/2017-07-31-13-35-28.bpo-26253.8v_sCs.rst create mode 100644 Misc/NEWS.d/next/Library/2018-09-23-07-47-29.bpo-32990.2FVVTU.rst create mode 100644 Misc/NEWS.d/next/Library/2018-09-28-22-18-03.bpo-34828.5Zyi_S.rst create mode 100644 Misc/NEWS.d/next/Library/2021-08-27-18-07-35.bpo-44173.oW92Ev.rst create mode 100644 Misc/NEWS.d/next/Library/2021-12-27-15-32-15.bpo-45924.0ZpHX2.rst create mode 100644 Misc/NEWS.d/next/Library/2022-01-03-15-07-06.bpo-46197.Z0djv6.rst create mode 100644 Misc/NEWS.d/next/Library/2022-02-05-18-46-54.bpo-46642.YI6nHQ.rst create mode 100644 Misc/NEWS.d/next/Library/2022-02-15-12-40-48.bpo-46755.zePJfx.rst create mode 100644 Misc/NEWS.d/next/Library/2022-02-21-01-37-00.bpo-42777.nWK3E6.rst create mode 100644 Misc/NEWS.d/next/Library/2022-03-16-14-24-14.bpo-47025.qtT3CE.rst create mode 100644 Misc/NEWS.d/next/Library/2022-03-19-04-41-42.bpo-47063.nwRfUo.rst create mode 100644 Misc/NEWS.d/next/Library/2022-04-01-09-43-54.bpo-32547.NIUiNC.rst create mode 100644 Misc/NEWS.d/next/Library/2022-04-01-12-35-44.gh-issue-90005.pvaLHQ.rst create mode 100644 Misc/NEWS.d/next/Library/2022-04-03-11-25-02.bpo-41287.8CTdwf.rst create mode 100644 Misc/NEWS.d/next/Library/2022-04-08-22-12-11.bpo-47231.lvyglt.rst create mode 100644 Misc/NEWS.d/next/Library/2022-04-11-16-55-41.gh-issue-91456.DK3KKl.rst create mode 100644 Misc/NEWS.d/next/Library/2022-04-12-18-05-40.gh-issue-91447.N_Fs4H.rst create mode 100644 Misc/NEWS.d/next/Library/2022-04-15-17-38-55.gh-issue-91577.Ah7cLL.rst create mode 100644 Misc/NEWS.d/next/Library/2022-04-24-22-26-45.gh-issue-81790.M5Rvpm.rst create mode 100644 Misc/NEWS.d/next/Library/2022-05-08-18-51-14.gh-issue-89336.TL6ip7.rst create mode 100644 Misc/NEWS.d/next/Library/2022-05-09-21-31-41.gh-issue-92445.tJosdm.rst create mode 100644 Misc/NEWS.d/next/Library/2022-05-09-22-27-11.gh-issue-92591.V7RCk2.rst create mode 100644 Misc/NEWS.d/next/Library/2022-05-10-16-30-40.gh-issue-90385.1_wBRQ.rst create mode 100644 Misc/NEWS.d/next/Library/2022-05-12-15-19-00.gh-issue-92734.d0wjDt.rst create mode 100644 Misc/NEWS.d/next/Library/2022-05-14-09-01-38.gh-issue-89325.ys-2BZ.rst create mode 100644 Misc/NEWS.d/next/Library/2022-05-16-14-35-39.gh-issue-92839.owSMyo.rst create mode 100644 Misc/NEWS.d/next/Library/2022-05-17-06-27-39.gh-issue-92869.t8oBkw.rst create mode 100644 Misc/NEWS.d/next/Library/2022-05-19-17-49-58.gh-issue-92932.o2peTh.rst create mode 100644 Misc/NEWS.d/next/Library/2022-05-19-22-34-42.gh-issue-92986.e6uKxj.rst create mode 100644 Misc/NEWS.d/next/Library/2022-05-22-16-08-01.gh-issue-89973.jc-Q4g.rst create mode 100644 Misc/NEWS.d/next/Library/2022-05-24-11-19-04.gh-issue-74696.-cnf-A.rst create mode 100644 Misc/NEWS.d/next/Library/2022-05-26-08-41-34.gh-issue-93243.uw6x5z.rst create mode 100644 Misc/NEWS.d/next/Library/2022-05-26-09-24-41.gh-issue-93162.W1VuhU.rst create mode 100644 Misc/NEWS.d/next/Library/2022-05-26-23-10-55.gh-issue-93156.4XfDVN.rst create mode 100644 Misc/NEWS.d/next/Library/2022-05-27-10-52-06.gh-issue-85308.K6r-tJ.rst create mode 100644 Misc/NEWS.d/next/Library/2022-05-27-13-18-18.gh-issue-93297.e2zuHz.rst create mode 100644 Misc/NEWS.d/next/Library/2022-05-27-22-17-11.gh-issue-88123.mkYl5q.rst create mode 100644 Misc/NEWS.d/next/Library/2022-05-28-08-02-55.gh-issue-93312.HY0Uzj.rst create mode 100644 Misc/NEWS.d/next/Library/2022-05-30-21-42-50.gh-issue-83658.01Ntx0.rst create mode 100644 Misc/NEWS.d/next/Library/2022-05-31-14-58-40.gh-issue-93353.9Hvm6o.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-01-11-24-13.gh-issue-91162.NxvU_u.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-02-08-40-58.gh-issue-91810.Gtk44w.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-03-22-13-28.gh-issue-93370.tjfu9L.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-04-00-11-54.gh-issue-93475.vffFw1.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-05-22-22-42.gh-issue-93421.43UO_8.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-06-12-58-27.gh-issue-79579.e8rB-M.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-06-13-19-43.gh-issue-93521._vE8m9.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-07-14-53-46.gh-issue-90549.T4FMKY.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-08-20-11-02.gh-issue-90494.LIZT85.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-09-10-12-55.gh-issue-90473.683m_C.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-09-14-44-21.gh-issue-93626.sfghs46.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-09-17-15-26.gh-issue-91389.OE4vS5.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-11-13-32-17.gh-issue-79512.A1KTDr.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-15-21-20-02.gh-issue-93820.FAMLY8.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-15-21-28-16.gh-issue-83499.u3DQJ-.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-15-21-35-11.gh-issue-91404.39TZzW.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-16-09-24-50.gh-issue-93847.kuv8bN.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-16-11-16-53.gh-issue-93820.00X0Y5.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-17-12-02-30.gh-issue-93858.R49ARc.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-17-16-00-55.gh-issue-93963.8YYZ-2.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-18-15-06-54.gh-issue-93973.4y6UQT.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-20-23-14-43.gh-issue-94028.UofEcX.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-21-11-40-31.gh-issue-84753.FW1pxO.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-22-11-16-11.gh-issue-94101.V9vDG8.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-23-13-12-05.gh-issue-91742.sNytVX.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-23-14-35-10.gh-issue-94169.jeba90.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-24-09-41-41.gh-issue-94196.r2KyfS.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-24-10-18-59.gh-issue-94199.kYOo8g.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-24-10-29-19.gh-issue-94199.pfehmz.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-24-10-39-56.gh-issue-94199.MIuckY.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-24-14-25-26.gh-issue-94214.03pXR5.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-24-17-11-33.gh-issue-94199.7releN.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-24-18-20-42.gh-issue-94226.8ZL4Fm.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-24-19-16-09.gh-issue-93096.r1_oIc.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-24-19-23-59.gh-issue-94207.VhS1eS.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-24-19-40-40.gh-issue-93096.3RlK2d.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-24-20-00-57.gh-issue-94216.hxnQPu.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-25-13-38-53.gh-issue-93259.FAGw-2.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-25-16-27-02.gh-issue-94254.beP16v.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-25-23-44-44.gh-issue-90016.EB409s.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-26-10-59-15.gh-issue-89988.K8rnmt.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-27-10-33-18.gh-issue-94318.jR4_QV.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-28-00-24-48.gh-issue-94352.JY1Ayt.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-28-14-29-21.gh-issue-94379.RrgKfh.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-28-14-41-22.gh-issue-94383.CXnquo.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-29-04-42-56.gh-issue-94398.YOq_bJ.rst create mode 100644 Misc/NEWS.d/next/Library/2022-06-29-09-48-37.gh-issue-92336.otA6c6.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-02-19-46-30.gh-issue-94510.xOatDC.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-03-16-41-03.gh-issue-94382.zuVZeM.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-05-17-22-00.gh-issue-94343.kf4H5r.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-06-06-02-02.gh-issue-93896.vIgWGr.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-06-14-45-12.gh-issue-93910.iZcp67.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-06-14-57-33.gh-issue-94619.PRqKVX.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-06-16-01-08.gh-issue-94607.Q6RYfz.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-06-21-24-03.gh-issue-92546.s5Upkh.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-06-22-41-51.gh-issue-94309._XswsX.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-07-15-46-55.gh-issue-94637.IYEiUM.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-08-17-49-12.gh-issue-87822.F9dzkf.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-09-08-55-04.gh-issue-74116.0XwYC1.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-09-15-17-02.gh-issue-81620.L0O_bV.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-11-10-41-48.gh-issue-94736.EbsgeK.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-14-00-43-52.gh-issue-94821.e17ghU.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-15-08-13-51.gh-issue-94857.9_KvZJ.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-19-15-37-11.gh-issue-95005.iRmZ74.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-20-00-23-58.gh-issue-77617.XGaqSQ.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-20-22-49-48.gh-issue-95066.TuCu0E.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-21-19-55-49.gh-issue-95105.BIX2Km.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-21-22-59-22.gh-issue-95109.usxA9r.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-22-00-58-49.gh-issue-95077.4Z6CNC.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-22-17-19-57.gh-issue-93157.RXByAk.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-22-21-18-17.gh-issue-95132.n9anlw.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-23-10-42-05.gh-issue-95166.xw6p3C.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-23-10-50-05.gh-issue-93899.VT34A5.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-24-09-15-35.gh-issue-95194.ERVmqG.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-24-12-00-06.gh-issue-95199.-5A64k.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-24-12-59-02.gh-issue-95087.VvqXkN.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-24-18-00-42.gh-issue-95097.lu5qNf.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-25-15-45-06.gh-issue-95231.i807-g.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-27-11-35-45.gh-issue-95045.iysT-Q.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-27-19-43-07.gh-issue-95339.NuVQ68.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-28-17-14-38.gh-issue-95385.6YlsDI.rst create mode 100644 Misc/NEWS.d/next/Library/2022-07-29-20-58-37.gh-issue-94909.YjMusj.rst create mode 100644 Misc/NEWS.d/next/Library/2022-08-03-16-52-32.gh-issue-95289.FMnHlV.rst create mode 100644 Misc/NEWS.d/next/Library/2022-08-03-21-01-17.gh-issue-95609.xxyjyX.rst create mode 100644 Misc/NEWS.d/next/Library/2022-08-07-14-56-23.gh-issue-95149.U0c6Ib.rst create mode 100644 Misc/NEWS.d/next/Library/2022-08-08-01-42-11.gh-issue-95704.MOPFfX.rst create mode 100644 Misc/NEWS.d/next/Library/2022-08-10-11-54-04.gh-issue-95804.i5FCFK.rst create mode 100644 Misc/NEWS.d/next/Library/2022-08-10-17-34-07.gh-issue-95861.qv-T5s.rst create mode 100644 Misc/NEWS.d/next/Library/2022-08-11-03-16-48.gh-issue-95865.0IOkFP.rst create mode 100644 Misc/NEWS.d/next/Library/2022-08-11-18-22-29.gh-issue-95736.LzRZXe.rst create mode 100644 Misc/NEWS.d/next/Library/2022-08-11-18-52-17.gh-issue-95899._Bi4uG.rst create mode 100644 Misc/NEWS.d/next/Library/2022-08-14-18-59-54.gh-issue-69142.6is5Pq.rst create mode 100644 Misc/NEWS.d/next/Library/2022-08-18-14-53-53.gh-issue-95463.GpP05c.rst create mode 100644 Misc/NEWS.d/next/Library/2022-08-19-10-19-32.gh-issue-96019.b7uAVP.rst create mode 100644 Misc/NEWS.d/next/Library/2022-08-19-18-21-01.gh-issue-96125.ODcF1Y.rst create mode 100644 Misc/NEWS.d/next/Library/2022-08-20-10-31-01.gh-issue-96052.a6FhaD.rst create mode 100644 Misc/NEWS.d/next/Library/2022-08-20-12-56-15.gh-issue-96145.8ah3pE.rst create mode 100644 Misc/NEWS.d/next/Library/2022-08-22-13-54-20.gh-issue-96175.bH7zGU.rst create mode 100644 Misc/NEWS.d/next/Library/2022-08-22-18-42-17.gh-issue-96159.3bFU39.rst create mode 100644 Misc/NEWS.d/next/Library/2022-08-23-13-30-30.gh-issue-96172.7WTHer.rst create mode 100644 Misc/NEWS.d/next/Library/2022-08-27-14-38-49.gh-issue-90467.VOOB0p.rst create mode 100644 Misc/NEWS.d/next/Library/2022-08-27-21-26-52.gh-issue-96349.XyYLlO.rst create mode 100644 Misc/NEWS.d/next/Library/2022-08-29-07-04-03.gh-issue-89258.ri7ncj.rst create mode 100644 Misc/NEWS.d/next/Library/2022-08-29-15-28-39.gh-issue-96385.uLRTsf.rst create mode 100644 Misc/NEWS.d/next/Library/2022-08-29-16-54-36.gh-issue-96388.dCpJcu.rst create mode 100644 Misc/NEWS.d/next/Library/2022-08-30-11-46-36.gh-issue-95987.CV7_u4.rst create mode 100644 Misc/NEWS.d/next/Library/2022-08-31-11-10-21.gh-issue-96079.uqrXdJ.rst create mode 100644 Misc/NEWS.d/next/Library/2022-09-01-13-54-38.gh-issue-96465.0IJmrH.rst create mode 100644 Misc/NEWS.d/next/Library/2022-09-03-18-39-05.gh-issue-96538.W156-D.rst create mode 100644 Misc/NEWS.d/next/Library/2022-09-04-12-32-52.gh-issue-68163.h6TJCc.rst create mode 100644 Misc/NEWS.d/next/Library/2022-09-07-22-49-37.gh-issue-96652.YqOKxI.rst create mode 100644 Misc/NEWS.d/next/Library/2022-09-08-20-12-48.gh-issue-46412.r_cfTh.rst create mode 100644 Misc/NEWS.d/next/Library/2022-09-13-15-12-31.gh-issue-96734.G08vjz.rst create mode 100644 Misc/NEWS.d/next/Library/2022-09-15-00-37-33.gh-issue-96741.4b6czN.rst create mode 100644 Misc/NEWS.d/next/Security/2022-04-27-18-25-30.gh-issue-68966.gjS8zs.rst create mode 100644 Misc/NEWS.d/next/Security/2022-05-19-08-53-07.gh-issue-92888.TLtR9W.rst create mode 100644 Misc/NEWS.d/next/Security/2022-06-03-12-52-53.gh-issue-79096.YVoxgC.rst create mode 100644 Misc/NEWS.d/next/Security/2022-06-15-20-09-23.gh-issue-87389.QVaC3f.rst create mode 100644 Misc/NEWS.d/next/Security/2022-08-07-16-53-38.gh-issue-95778.ch010gps.rst create mode 100644 Misc/NEWS.d/next/Tests/2022-03-14-23-28-17.bpo-47016.K-t2QX.rst create mode 100644 Misc/NEWS.d/next/Tests/2022-05-25-23-00-35.gh-issue-92886.Y-vrWj.rst create mode 100644 Misc/NEWS.d/next/Tests/2022-05-25-23-07-15.gh-issue-92886.Aki63_.rst create mode 100644 Misc/NEWS.d/next/Tests/2022-06-03-12-22-44.gh-issue-89858.ftBvjE.rst create mode 100644 Misc/NEWS.d/next/Tests/2022-06-03-14-18-37.gh-issue-90473.7iXVRK.rst create mode 100644 Misc/NEWS.d/next/Tests/2022-06-03-16-26-04.gh-issue-57539.HxWgYO.rst create mode 100644 Misc/NEWS.d/next/Tests/2022-06-04-12-05-31.gh-issue-90473.RSpjF7.rst create mode 100644 Misc/NEWS.d/next/Tests/2022-06-05-10-16-45.gh-issue-90473.QMu7A8.rst create mode 100644 Misc/NEWS.d/next/Tests/2022-06-08-14-17-59.gh-issue-93575.Xb2LNB.rst create mode 100644 Misc/NEWS.d/next/Tests/2022-06-08-22-32-56.gh-issue-93616.e5Kkx2.rst create mode 100644 Misc/NEWS.d/next/Tests/2022-06-10-21-18-14.gh-issue-84461.9TAb26.rst create mode 100644 Misc/NEWS.d/next/Tests/2022-06-16-17-50-58.gh-issue-93353.JdpATx.rst create mode 100644 Misc/NEWS.d/next/Tests/2022-06-16-21-38-18.gh-issue-93852.U_Hl6s.rst create mode 100644 Misc/NEWS.d/next/Tests/2022-06-17-13-27-21.gh-issue-93884.5pvPvl.rst create mode 100644 Misc/NEWS.d/next/Tests/2022-06-17-13-55-11.gh-issue-93957.X4ovYV.rst create mode 100644 Misc/NEWS.d/next/Tests/2022-06-17-15-20-09.gh-issue-93951.CW1Vv4.rst create mode 100644 Misc/NEWS.d/next/Tests/2022-06-20-23-04-52.gh-issue-93839.OE3Ybk.rst create mode 100644 Misc/NEWS.d/next/Tests/2022-06-21-17-37-46.gh-issue-54781.BjVAVg.rst create mode 100644 Misc/NEWS.d/next/Tests/2022-06-27-08-53-40.gh-issue-94315.MoZT9t.rst create mode 100644 Misc/NEWS.d/next/Tests/2022-06-27-21-27-20.gh-issue-94208.VR6HX-.rst create mode 100644 Misc/NEWS.d/next/Tests/2022-07-05-17-53-13.gh-issue-91330.Qys5IL.rst create mode 100644 Misc/NEWS.d/next/Tests/2022-07-08-12-22-00.gh-issue-94675.IiTs5f.rst create mode 100644 Misc/NEWS.d/next/Tests/2022-07-24-16-28-31.gh-issue-93963.UB9azu.rst create mode 100644 Misc/NEWS.d/next/Tests/2022-07-24-17-24-42.gh-issue-95218.zfBLtu.rst create mode 100644 Misc/NEWS.d/next/Tests/2022-07-24-20-19-05.gh-issue-95212.fHiU4e.rst create mode 100644 Misc/NEWS.d/next/Tests/2022-07-26-15-22-19.gh-issue-95280.h8HvbP.rst create mode 100644 Misc/NEWS.d/next/Tests/2022-08-05-09-57-43.gh-issue-95573.edMdQB.rst create mode 100644 Misc/NEWS.d/next/Tests/2022-08-22-14-59-42.gh-issue-95243.DeD66V.rst create mode 100644 Misc/NEWS.d/next/Tests/2022-09-08-18-31-26.gh-issue-96624.5cANM1.rst create mode 100644 Misc/NEWS.d/next/Tools-Demos/2022-06-19-14-56-33.gh-issue-86087.R8MkRy.rst create mode 100644 Misc/NEWS.d/next/Tools-Demos/2022-06-29-22-47-11.gh-issue-94430.hdov8L.rst create mode 100644 Misc/NEWS.d/next/Tools-Demos/2022-07-04-01-37-42.gh-issue-94538.1rgy1Y.rst create mode 100644 Misc/NEWS.d/next/Tools-Demos/2022-07-04-10-02-02.gh-issue-93939.U6sW6H.rst create mode 100644 Misc/NEWS.d/next/Tools-Demos/2022-08-10-17-08-43.gh-issue-95853.HCjC2m.rst create mode 100644 Misc/NEWS.d/next/Tools-Demos/2022-08-29-17-25-13.gh-issue-95853.Ce17cT.rst create mode 100644 Misc/NEWS.d/next/Windows/2022-03-20-15-47-35.bpo-42658.16eXtb.rst create mode 100644 Misc/NEWS.d/next/Windows/2022-05-28-19-36-13.gh-issue-43414.NGMJ3g.rst create mode 100644 Misc/NEWS.d/next/Windows/2022-06-15-01-03-52.gh-issue-93824.mR4mxu.rst create mode 100644 Misc/NEWS.d/next/Windows/2022-06-20-22-32-14.gh-issue-94018.bycC3A.rst create mode 100644 Misc/NEWS.d/next/Windows/2022-07-12-20-45-43.gh-issue-94772.uNMmdG.rst create mode 100644 Misc/NEWS.d/next/Windows/2022-07-16-16-18-32.gh-issue-90844.vwITT3.rst create mode 100644 Misc/NEWS.d/next/Windows/2022-07-26-20-33-12.gh-issue-95285.w6fa22.rst create mode 100644 Misc/NEWS.d/next/Windows/2022-07-28-20-21-38.gh-issue-95359.ywMrgu.rst create mode 100644 Misc/NEWS.d/next/Windows/2022-07-30-14-18-33.gh-issue-95445.mjrTaq.rst create mode 100644 Misc/NEWS.d/next/Windows/2022-08-03-00-49-46.gh-issue-94399.KvxHc0.rst create mode 100644 Misc/NEWS.d/next/Windows/2022-08-04-01-12-27.gh-issue-95587.Fvdv5q.rst create mode 100644 Misc/NEWS.d/next/Windows/2022-08-04-18-47-54.gh-issue-95656.VJ1d13.rst create mode 100644 Misc/NEWS.d/next/Windows/2022-08-10-22-46-48.gh-issue-95733.2_urOp.rst create mode 100644 Misc/NEWS.d/next/Windows/2022-08-26-00-11-18.gh-issue-89545.zmJMY_.rst create mode 100644 Misc/NEWS.d/next/Windows/2022-08-30-12-01-51.gh-issue-94781.OxO-Gr.rst create mode 100644 Misc/NEWS.d/next/Windows/2022-09-05-18-32-47.gh-issue-96559.561sUd.rst create mode 100644 Misc/NEWS.d/next/Windows/2022-09-07-00-11-33.gh-issue-96577.kV4K_1.rst create mode 100644 Misc/rhel7/README.md create mode 100644 Misc/rhel7/openssl.pc create mode 100644 Misc/rhel7/tcl.pc create mode 100644 Misc/rhel7/tk.pc create mode 100644 Modules/_testcapi/README.txt create mode 100644 Modules/_testcapi/clinic/vectorcall.c.h create mode 100644 Modules/_testcapi/heaptype.c create mode 100644 Modules/_testcapi/parts.h create mode 100644 Modules/_testcapi/unicode.c create mode 100644 Modules/_testcapi/vectorcall.c create mode 100644 Modules/_testcapi/vectorcall_limited.c create mode 100644 Modules/clinic/_testinternalcapi.c.h delete mode 100644 Objects/accu.c create mode 100644 Objects/asm_trampoline.S create mode 100644 Objects/object_layout.md create mode 100644 Objects/object_layout_312.gv create mode 100644 Objects/object_layout_312.png create mode 100644 Objects/object_layout_full_312.gv create mode 100644 Objects/object_layout_full_312.png create mode 100644 Objects/perf_trampoline.c create mode 100644 PC/_wmimodule.cpp create mode 100644 PC/clinic/_wmimodule.cpp.h delete mode 100644 PC/empty.c delete mode 100644 PC/testpy.py create mode 100644 PCbuild/_wmi.vcxproj create mode 100644 PCbuild/_wmi.vcxproj.filters create mode 100644 Python/ceval_gil.c delete mode 100644 Python/ceval_gil.h create mode 100644 Python/thread_pthread_stubs.h create mode 100644 Tools/c-analyzer/cpython/_builtin_types.py create mode 100644 Tools/scripts/check_extension_modules.py delete mode 100755 Tools/scripts/parseentities.py create mode 100755 Tools/scripts/verify_ensurepip_wheels.py create mode 100644 Tools/unicode/genmap_tchinese.py create mode 100644 Tools/wasm/.editorconfig create mode 100755 Tools/wasm/wasi-env create mode 100755 Tools/wasm/wasm_build.py delete mode 100644 setup.py diff --git a/.azure-pipelines/ci.yml b/.azure-pipelines/ci.yml index 9e9ce2108ed818..bf164d19ef2234 100644 --- a/.azure-pipelines/ci.yml +++ b/.azure-pipelines/ci.yml @@ -57,7 +57,7 @@ jobs: variables: testRunTitle: '$(build.sourceBranchName)-linux' testRunPlatform: linux - openssl_version: 1.1.1n + openssl_version: 1.1.1q steps: - template: ./posix-steps.yml @@ -83,7 +83,7 @@ jobs: variables: testRunTitle: '$(Build.SourceBranchName)-linux-coverage' testRunPlatform: linux-coverage - openssl_version: 1.1.1n + openssl_version: 1.1.1q steps: - template: ./posix-steps.yml diff --git a/.azure-pipelines/find-tools.yml b/.azure-pipelines/find-tools.yml deleted file mode 100644 index 9ad0f5622bb31e..00000000000000 --- a/.azure-pipelines/find-tools.yml +++ /dev/null @@ -1,26 +0,0 @@ -# Locate a set of the tools used for builds - -steps: - - template: windows-release/find-sdk.yml - parameters: - toolname: 'signtool.exe' - - - powershell: | - $vcvarsall = (& "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" ` - -prerelease ` - -latest ` - -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 ` - -find VC\Auxiliary\Build\vcvarsall.bat) - Write-Host "Found vcvarsall at $vcvarsall" - Write-Host "##vso[task.setVariable variable=vcvarsall]$vcvarsall" - displayName: 'Find vcvarsall.bat' - - - powershell: | - $msbuild = (& "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" ` - -prerelease ` - -latest ` - -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 ` - -find MSBuild\Current\Bin\msbuild.exe) - Write-Host "Found MSBuild at $msbuild" - Write-Host "##vso[task.setVariable variable=msbuild]$msbuild" - displayName: 'Find MSBuild' diff --git a/.azure-pipelines/libffi-build.yml b/.azure-pipelines/libffi-build.yml deleted file mode 100644 index dd26ff215a807a..00000000000000 --- a/.azure-pipelines/libffi-build.yml +++ /dev/null @@ -1,86 +0,0 @@ -name: $(SourceTag)_$(Date:yyyyMMdd)$(Rev:.rr) - -variables: - IntDir: '$(Build.BinariesDirectory)' - OutDir: '$(Build.ArtifactStagingDirectory)' - - # MUST BE SET AT QUEUE TIME - # SigningCertificate: 'Python Software Foundation' - # SourcesRepo: 'https://github.com/python/cpython-source-deps' - # SourceTag: 'libffi-3.4.2' - -jobs: -- job: Build_LibFFI - displayName: LibFFI - pool: - vmImage: windows-latest - - workspace: - clean: all - - steps: - - checkout: none - - - template: ./find-tools.yml - - - powershell: | - mkdir -Force "$(IntDir)\script" - iwr "https://github.com/python/cpython/raw/main/PCbuild/prepare_libffi.bat" ` - -outfile "$(IntDir)\script\prepare_libffi.bat" - displayName: 'Download build script' - - - powershell: | - git clone $(SourcesRepo) -b $(SourceTag) --depth 1 -c core.autocrlf=false -c core.eol=lf . - displayName: 'Check out LibFFI sources' - - - script: 'prepare_libffi.bat --install-cygwin' - workingDirectory: '$(IntDir)\script' - displayName: 'Install Cygwin and build' - env: - VCVARSALL: '$(vcvarsall)' - LIBFFI_SOURCE: '$(Build.SourcesDirectory)' - LIBFFI_OUT: '$(OutDir)' - - - powershell: | - if ((gci *\*.dll).Count -lt 4) { - Write-Error "Did not generate enough DLL files" - } - if ((gci *\Include\ffi.h).Count -lt 4) { - Write-Error "Did not generate enough include files" - } - failOnStderr: true - workingDirectory: '$(OutDir)' - displayName: 'Verify files were created' - - - publish: '$(OutDir)' - artifact: 'unsigned' - displayName: 'Publish unsigned build' - -- job: Sign_LibFFI - displayName: Sign LibFFI - dependsOn: Build_LibFFI - pool: - name: 'Windows Release' - - workspace: - clean: all - - steps: - - checkout: none - - download: current - artifact: unsigned - - - template: ./find-tools.yml - - - powershell: | - signtool sign /q /a ` - /n "Python Software Foundation" ` - /fd sha256 ` - /tr http://timestamp.digicert.com/ /td sha256 ` - /d "LibFFI for Python" ` - (gci "$(Pipeline.Workspace)\unsigned\*.dll" -r) - displayName: 'Sign files' - - - publish: '$(Pipeline.Workspace)\unsigned' - artifact: 'libffi' - displayName: 'Publish libffi' diff --git a/.azure-pipelines/openssl-build.yml b/.azure-pipelines/openssl-build.yml deleted file mode 100644 index 8aab7ea0b94193..00000000000000 --- a/.azure-pipelines/openssl-build.yml +++ /dev/null @@ -1,110 +0,0 @@ -name: $(SourceTag)_$(Date:yyyyMMdd)$(Rev:.rr) - -variables: - IntDir: '$(Build.BinariesDirectory)' - OutDir: '$(Build.ArtifactStagingDirectory)' - - # MUST BE SET AT QUEUE TIME - # SigningCertificate: 'Python Software Foundation' - # SourcesRepo: 'https://github.com/python/cpython-source-deps' - # SourceTag: 'openssl-1.1.1k' - -jobs: -- job: Build_SSL - displayName: OpenSSL - pool: - name: 'Windows Release' - #vmImage: windows-latest - - strategy: - matrix: - win32: - Platform: 'win32' - VCPlatform: 'amd64_x86' - OpenSSLPlatform: 'VC-WIN32 no-asm' - amd64: - Platform: 'amd64' - VCPlatform: 'amd64' - OpenSSLPlatform: 'VC-WIN64A-masm' - arm32: - Platform: 'arm32' - VCPlatform: 'amd64_arm' - OpenSSLPlatform: 'VC-WIN32-ARM' - arm64: - Platform: 'arm64' - VCPlatform: 'amd64_arm64' - OpenSSLPlatform: 'VC-WIN64-ARM' - - workspace: - clean: all - - steps: - - checkout: none - - - template: ./find-tools.yml - - - powershell: | - git clone $(SourcesRepo) -b $(SourceTag) --depth 1 . - displayName: 'Check out OpenSSL sources' - - - powershell: | - $f = gi ms\uplink.c - $c1 = gc $f - $c2 = $c1 -replace '\(\(h = GetModuleHandle\(NULL\)\) == NULL\)', '((h = GetModuleHandleA("_ssl.pyd")) == NULL) if ((h = GetModuleHandleA("_ssl_d.pyd")) == NULL) if ((h = GetModuleHandle(NULL)) == NULL /*patched*/)' - if ($c2 -ne $c1) { - $c2 | Out-File $f -Encoding ASCII - } else { - Write-Host '##warning Failed to patch uplink.c' - } - displayName: 'Apply uplink.c patch' - - - script: | - call "$(vcvarsall)" $(VCPlatform) - perl "$(Build.SourcesDirectory)\Configure" $(OpenSSLPlatform) - nmake - workingDirectory: '$(IntDir)' - displayName: 'Build OpenSSL' - - - script: | - call "$(vcvarsall)" $(VCPlatform) - signtool sign /q /a /n "$(SigningCertificate)" /fd sha256 /tr http://timestamp.digicert.com/ /td sha256 /d "OpenSSL for Python" *.dll - workingDirectory: '$(IntDir)' - displayName: 'Sign OpenSSL Build' - condition: and(succeeded(), variables['SigningCertificate']) - - - task: CopyFiles@2 - displayName: 'Copy built libraries for upload' - inputs: - SourceFolder: '$(IntDir)' - Contents: | - lib*.dll - lib*.pdb - lib*.lib - include\openssl\*.h - TargetFolder: '$(OutDir)' - - - task: CopyFiles@2 - displayName: 'Copy header files for upload' - inputs: - SourceFolder: '$(Build.SourcesDirectory)' - Contents: | - include\openssl\* - TargetFolder: '$(OutDir)' - - - task: CopyFiles@2 - displayName: 'Copy applink files for upload' - inputs: - SourceFolder: '$(Build.SourcesDirectory)\ms' - Contents: applink.c - TargetFolder: '$(OutDir)\include' - - - task: CopyFiles@2 - displayName: 'Copy LICENSE for upload' - inputs: - SourceFolder: '$(Build.SourcesDirectory)' - Contents: LICENSE - TargetFolder: '$(OutDir)' - - - publish: '$(OutDir)' - artifact: '$(Platform)' - displayName: 'Publishing $(Platform)' diff --git a/.azure-pipelines/pr.yml b/.azure-pipelines/pr.yml index c3ecc670572802..3cbd19fda982f1 100644 --- a/.azure-pipelines/pr.yml +++ b/.azure-pipelines/pr.yml @@ -57,7 +57,7 @@ jobs: variables: testRunTitle: '$(system.pullRequest.TargetBranch)-linux' testRunPlatform: linux - openssl_version: 1.1.1n + openssl_version: 1.1.1q steps: - template: ./posix-steps.yml @@ -83,7 +83,7 @@ jobs: variables: testRunTitle: '$(Build.SourceBranchName)-linux-coverage' testRunPlatform: linux-coverage - openssl_version: 1.1.1n + openssl_version: 1.1.1q steps: - template: ./posix-steps.yml diff --git a/.azure-pipelines/tcltk-build.yml b/.azure-pipelines/tcltk-build.yml deleted file mode 100644 index f9e50d3711a460..00000000000000 --- a/.azure-pipelines/tcltk-build.yml +++ /dev/null @@ -1,71 +0,0 @@ -name: tcl$(TkSourceTag)_$(Date:yyyyMMdd)$(Rev:.rr) - -variables: - IntDir: '$(Build.BinariesDirectory)\obj' - ExternalsDir: '$(Build.BinariesDirectory)\externals' - OutDir: '$(Build.ArtifactStagingDirectory)' - Configuration: 'Release' - - # MUST BE SET AT QUEUE TIME - # SigningCertificate: 'Python Software Foundation' - # SourcesRepo: 'https://github.com/python/cpython-source-deps' - # TclSourceTag: 'tcl-core-8.6.12.0' - # TkSourceTag: 'tk-8.6.12.0' - # TixSourceTag: 'tix-8.4.3.6' - -jobs: -- job: Build_TclTk - displayName: 'Tcl/Tk' - pool: - name: 'Windows Release' - #vmImage: windows-latest - - workspace: - clean: all - - steps: - - template: ./find-tools.yml - - - powershell: | - git clone $(SourcesRepo) -b $(TclSourceTag) --depth 1 "$(ExternalsDir)\$(TclSourceTag)" - displayName: 'Check out Tcl sources' - - - powershell: | - git clone $(SourcesRepo) -b $(TkSourceTag) --depth 1 "$(ExternalsDir)\$(TkSourceTag)" - displayName: 'Check out Tk sources' - - - powershell: | - git clone $(SourcesRepo) -b $(TixSourceTag) --depth 1 "$(ExternalsDir)\$(TixSourceTag)" - displayName: 'Check out Tix sources' - - # This msbuild.rsp file will be used by the build to forcibly override these variables - - powershell: | - del -Force -EA 0 msbuild.rsp - "/p:IntDir=$(IntDir)\" >> msbuild.rsp - "/p:ExternalsDir=$(ExternalsDir)\" >> msbuild.rsp - "/p:tclDir=$(ExternalsDir)\$(TclSourceTag)\" >> msbuild.rsp - "/p:tkDir=$(ExternalsDir)\$(TkSourceTag)\" >> msbuild.rsp - "/p:tixDir=$(ExternalsDir)\$(TixSourceTag)\" >> msbuild.rsp - displayName: 'Generate msbuild.rsp' - - - powershell: | - & "$(msbuild)" PCbuild\tcl.vcxproj "@msbuild.rsp" /p:Platform=Win32 /p:tcltkDir="$(OutDir)\win32" - & "$(msbuild)" PCbuild\tk.vcxproj "@msbuild.rsp" /p:Platform=Win32 /p:tcltkDir="$(OutDir)\win32" - & "$(msbuild)" PCbuild\tix.vcxproj "@msbuild.rsp" /p:Platform=Win32 /p:tcltkDir="$(OutDir)\win32" - displayName: 'Build for win32' - - - powershell: | - & "$(msbuild)" PCbuild\tcl.vcxproj "@msbuild.rsp" /p:Platform=x64 /p:tcltkDir="$(OutDir)\amd64" - & "$(msbuild)" PCbuild\tk.vcxproj "@msbuild.rsp" /p:Platform=x64 /p:tcltkDir="$(OutDir)\amd64" - & "$(msbuild)" PCbuild\tix.vcxproj "@msbuild.rsp" /p:Platform=x64 /p:tcltkDir="$(OutDir)\amd64" - displayName: 'Build for amd64' - - - powershell: | - & "$(msbuild)" PCbuild\tcl.vcxproj "@msbuild.rsp" /p:Platform=ARM64 /p:tcltkDir="$(OutDir)\arm64" - & "$(msbuild)" PCbuild\tk.vcxproj "@msbuild.rsp" /p:Platform=ARM64 /p:tcltkDir="$(OutDir)\arm64" - & "$(msbuild)" PCbuild\tix.vcxproj "@msbuild.rsp" /p:Platform=ARM64 /p:tcltkDir="$(OutDir)\arm64" - displayName: 'Build for arm64' - - - publish: '$(OutDir)' - artifact: 'tcltk' - displayName: 'Publishing tcltk' diff --git a/.gitattributes b/.gitattributes index 6da587a4c6ea5a..79f7b712aa459e 100644 --- a/.gitattributes +++ b/.gitattributes @@ -28,8 +28,8 @@ Lib/test/cjkencodings/* noeol Lib/test/coding20731.py noeol Lib/test/decimaltestdata/*.decTest noeol Lib/test/test_email/data/*.txt noeol -Lib/test/test_importlib/data01/* noeol -Lib/test/test_importlib/namespacedata01/* noeol +Lib/test/test_importlib/resources/data01/* noeol +Lib/test/test_importlib/resources/namespacedata01/* noeol Lib/test/xmltestdata/* noeol # CRLF files @@ -62,26 +62,27 @@ PCbuild/readme.txt dos # [attr]generated linguist-generated=true diff=generated -**/clinic/*.c.h generated -*_db.h generated -Doc/data/stable_abi.dat generated -Doc/library/token-list.inc generated -Include/internal/pycore_ast.h generated -Include/internal/pycore_ast_state.h generated -Include/internal/pycore_opcode.h generated -Include/opcode.h generated -Include/token.h generated -Lib/keyword.py generated -Lib/test/test_stable_abi_ctypes.py generated -Lib/token.py generated -Objects/typeslots.inc generated -PC/python3dll.c generated -Parser/parser.c generated -Parser/token.c generated -Programs/test_frozenmain.h generated -Python/Python-ast.c generated -Python/opcode_targets.h generated -Python/stdlib_module_names.h generated -Tools/peg_generator/pegen/grammar_parser.py generated -aclocal.m4 generated -configure generated +**/clinic/*.c.h generated +*_db.h generated +Doc/data/stable_abi.dat generated +Doc/library/token-list.inc generated +Include/internal/pycore_ast.h generated +Include/internal/pycore_ast_state.h generated +Include/internal/pycore_opcode.h generated +Include/internal/pycore_runtime_init_generated.h generated +Include/opcode.h generated +Include/token.h generated +Lib/keyword.py generated +Lib/test/test_stable_abi_ctypes.py generated +Lib/token.py generated +Objects/typeslots.inc generated +PC/python3dll.c generated +Parser/parser.c generated +Parser/token.c generated +Programs/test_frozenmain.h generated +Python/Python-ast.c generated +Python/opcode_targets.h generated +Python/stdlib_module_names.h generated +Tools/peg_generator/pegen/grammar_parser.py generated +aclocal.m4 generated +configure generated diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 0aea3983fa600d..2568560c074f64 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -5,11 +5,11 @@ # https://git-scm.com/docs/gitignore#_pattern_format # asyncio -**/*asyncio* @1st1 @asvetlov +**/*asyncio* @1st1 @asvetlov @gvanrossum # Core **/*context* @1st1 -**/*genobject* @1st1 @markshannon +**/*genobject* @markshannon **/*hamt* @1st1 Objects/set* @rhettinger Objects/dict* @methane @markshannon @@ -18,7 +18,7 @@ Objects/codeobject.c @markshannon Objects/frameobject.c @markshannon Objects/call.c @markshannon Python/ceval.c @markshannon -Python/compile.c @markshannon +Python/compile.c @markshannon @iritkatriel Python/ast_opt.c @isidentical Lib/test/test_patma.py @brandtbucher Lib/test/test_peepholer.py @brandtbucher @@ -29,7 +29,6 @@ Lib/test/test_except*.py @iritkatriel Lib/test/test_traceback.py @iritkatriel Objects/exceptions.c @iritkatriel Python/traceback.c @iritkatriel -Python/pythonrun.c @iritkatriel # Hashing **/*hashlib* @tiran @@ -53,6 +52,7 @@ Python/pythonrun.c @iritkatriel /Lib/html/ @ezio-melotti /Lib/_markupbase.py @ezio-melotti /Lib/test/test_html*.py @ezio-melotti +/Tools/scripts/*html5* @ezio-melotti # Import (including importlib). # Ignoring importlib.h so as to not get flagged on @@ -60,6 +60,8 @@ Python/pythonrun.c @iritkatriel # bytecode. **/*import*.c @brettcannon @encukou @ericsnowcurrently @ncoghlan @warsaw **/*import*.py @brettcannon @encukou @ericsnowcurrently @ncoghlan @warsaw +**/*importlib/resources/* @jaraco @warsaw @brettcannon +**/importlib/metadata/* @jaraco @warsaw # Dates and times **/*datetime* @pganssle @abalkin @@ -95,7 +97,7 @@ Lib/ast.py @isidentical # Mock /Lib/unittest/mock.py @cjw296 -/Lib/unittest/test/testmock/* @cjw296 +/Lib/test/test_unittest/testmock/* @cjw296 # SQLite 3 **/*sqlite* @berkerpeksag @erlend-aasland diff --git a/.github/CONTRIBUTING.rst b/.github/CONTRIBUTING.rst index 30a39a40494fde..627f57070d200b 100644 --- a/.github/CONTRIBUTING.rst +++ b/.github/CONTRIBUTING.rst @@ -6,19 +6,19 @@ Build Status - main - + `Stable buildbots `_ + + `Stable buildbots `_ - 3.9 - + `Stable buildbots `_ + + `Stable buildbots `_ - 3.8 - + `Stable buildbots `_ + + `Stable buildbots `_ - 3.7 - + `Stable buildbots `_ + + `Stable buildbots `_ Thank You diff --git a/.github/ISSUE_TEMPLATE/bug.md b/.github/ISSUE_TEMPLATE/bug.md index 7bdca2112b287b..1d93e0735e50f3 100644 --- a/.github/ISSUE_TEMPLATE/bug.md +++ b/.github/ISSUE_TEMPLATE/bug.md @@ -15,12 +15,12 @@ labels: "type-bug" your problem has already been reported --> -**Bug report** +# Bug report A clear and concise description of what the bug is. Include a minimal, reproducible example (https://stackoverflow.com/help/minimal-reproducible-example), if possible. -**Your environment** +# Your environment diff --git a/.github/ISSUE_TEMPLATE/crash.md b/.github/ISSUE_TEMPLATE/crash.md index 28d7bfec193814..dad3423db03410 100644 --- a/.github/ISSUE_TEMPLATE/crash.md +++ b/.github/ISSUE_TEMPLATE/crash.md @@ -13,15 +13,15 @@ labels: "type-crash" For CPython, a "crash" is when Python itself fails, leading to a traceback in the C stack. --> -**Crash report** +# Crash report Tell us what happened, ideally including a minimal, reproducible example (https://stackoverflow.com/help/minimal-reproducible-example). -**Error messages** +# Error messages Enter any relevant error message caused by the crash, including a core dump if there is one. -**Your environment** +# Your environment diff --git a/.github/ISSUE_TEMPLATE/documentation.md b/.github/ISSUE_TEMPLATE/documentation.md index 669c92adb47531..174fd39171d47d 100644 --- a/.github/ISSUE_TEMPLATE/documentation.md +++ b/.github/ISSUE_TEMPLATE/documentation.md @@ -4,6 +4,6 @@ about: Report a problem with the documentation labels: "docs" --- -**Documentation** +# Documentation (A clear and concise description of the issue.) diff --git a/.github/ISSUE_TEMPLATE/feature.md b/.github/ISSUE_TEMPLATE/feature.md index 635ea43545f497..ed051e945f8120 100644 --- a/.github/ISSUE_TEMPLATE/feature.md +++ b/.github/ISSUE_TEMPLATE/feature.md @@ -4,16 +4,16 @@ about: Submit a proposal for a new CPython feature or enhancement labels: "type-feature" --- -**Feature or enhancement** +# Feature or enhancement (A clear and concise description of your proposal.) -**Pitch** +# Pitch (Explain why this feature or enhancement should be implemented and how it would be used. Add examples, if applicable.) -**Previous discussion** +# Previous discussion -Accessories`) and change the command to:: - - setup.py sdist - -:command:`sdist` will create an archive file (e.g., tarball on Unix, ZIP file on Windows) -containing your setup script :file:`setup.py`, and your module :file:`foo.py`. -The archive file will be named :file:`foo-1.0.tar.gz` (or :file:`.zip`), and -will unpack into a directory :file:`foo-1.0`. - -If an end-user wishes to install your :mod:`foo` module, all they have to do is -download :file:`foo-1.0.tar.gz` (or :file:`.zip`), unpack it, and---from the -:file:`foo-1.0` directory---run :: - - python setup.py install - -which will ultimately copy :file:`foo.py` to the appropriate directory for -third-party modules in their Python installation. - -This simple example demonstrates some fundamental concepts of the Distutils. -First, both developers and installers have the same basic user interface, i.e. -the setup script. The difference is which Distutils *commands* they use: the -:command:`sdist` command is almost exclusively for module developers, while -:command:`install` is more often for installers (although most developers will -want to install their own code occasionally). - -Other useful built distribution formats are RPM, implemented by the -:command:`bdist_rpm` command, Solaris :program:`pkgtool` -(:command:`bdist_pkgtool`), and HP-UX :program:`swinstall` -(:command:`bdist_sdux`). For example, the following command will create an RPM -file called :file:`foo-1.0.noarch.rpm`:: - - python setup.py bdist_rpm - -(The :command:`bdist_rpm` command uses the :command:`rpm` executable, therefore -this has to be run on an RPM-based system such as Red Hat Linux, SuSE Linux, or -Mandrake Linux.) - -You can find out what distribution formats are available at any time by running -:: - - python setup.py bdist --help-formats - - -.. _python-terms: - -General Python terminology -========================== - -If you're reading this document, you probably have a good idea of what modules, -extensions, and so forth are. Nevertheless, just to be sure that everyone is -operating from a common starting point, we offer the following glossary of -common Python terms: - -module - the basic unit of code reusability in Python: a block of code imported by some - other code. Three types of modules concern us here: pure Python modules, - extension modules, and packages. - -pure Python module - a module written in Python and contained in a single :file:`.py` file (and - possibly associated :file:`.pyc` files). Sometimes referred to as a - "pure module." - -extension module - a module written in the low-level language of the Python implementation: C/C++ - for Python, Java for Jython. Typically contained in a single dynamically - loadable pre-compiled file, e.g. a shared object (:file:`.so`) file for Python - extensions on Unix, a DLL (given the :file:`.pyd` extension) for Python - extensions on Windows, or a Java class file for Jython extensions. (Note that - currently, the Distutils only handles C/C++ extensions for Python.) - -package - a module that contains other modules; typically contained in a directory in the - filesystem and distinguished from other directories by the presence of a file - :file:`__init__.py`. - -root package - the root of the hierarchy of packages. (This isn't really a package, since it - doesn't have an :file:`__init__.py` file. But we have to call it something.) - The vast majority of the standard library is in the root package, as are many - small, standalone third-party modules that don't belong to a larger module - collection. Unlike regular packages, modules in the root package can be found in - many directories: in fact, every directory listed in ``sys.path`` contributes - modules to the root package. - - -.. _distutils-term: - -Distutils-specific terminology -============================== - -The following terms apply more specifically to the domain of distributing Python -modules using the Distutils: - -module distribution - a collection of Python modules distributed together as a single downloadable - resource and meant to be installed *en masse*. Examples of some well-known - module distributions are NumPy, SciPy, Pillow, - or mxBase. (This would be called a *package*, except that term is - already taken in the Python context: a single module distribution may contain - zero, one, or many Python packages.) - -pure module distribution - a module distribution that contains only pure Python modules and packages. - Sometimes referred to as a "pure distribution." - -non-pure module distribution - a module distribution that contains at least one extension module. Sometimes - referred to as a "non-pure distribution." - -distribution root - the top-level directory of your source tree (or source distribution); the - directory where :file:`setup.py` exists. Generally :file:`setup.py` will be - run from this directory. diff --git a/Doc/distutils/packageindex.rst b/Doc/distutils/packageindex.rst deleted file mode 100644 index ccb9a598b2b7a2..00000000000000 --- a/Doc/distutils/packageindex.rst +++ /dev/null @@ -1,16 +0,0 @@ -:orphan: - -.. _package-index: - -******************************* -The Python Package Index (PyPI) -******************************* - -The `Python Package Index (PyPI)`_ stores metadata describing distributions -packaged with distutils and other publishing tools, as well the distribution -archives themselves. - -References to up to date PyPI documentation can be found at -:ref:`publishing-python-packages`. - -.. _Python Package Index (PyPI): https://pypi.org diff --git a/Doc/distutils/setupscript.rst b/Doc/distutils/setupscript.rst deleted file mode 100644 index 4386a60b664bfb..00000000000000 --- a/Doc/distutils/setupscript.rst +++ /dev/null @@ -1,713 +0,0 @@ -.. _setup-script: - -************************ -Writing the Setup Script -************************ - -.. include:: ./_setuptools_disclaimer.rst - -The setup script is the centre of all activity in building, distributing, and -installing modules using the Distutils. The main purpose of the setup script is -to describe your module distribution to the Distutils, so that the various -commands that operate on your modules do the right thing. As we saw in section -:ref:`distutils-simple-example` above, the setup script consists mainly of a call to -:func:`setup`, and most information supplied to the Distutils by the module -developer is supplied as keyword arguments to :func:`setup`. - -Here's a slightly more involved example, which we'll follow for the next couple -of sections: the Distutils' own setup script. (Keep in mind that although the -Distutils are included with Python 1.6 and later, they also have an independent -existence so that Python 1.5.2 users can use them to install other module -distributions. The Distutils' own setup script, shown here, is used to install -the package into Python 1.5.2.) :: - - #!/usr/bin/env python - - from distutils.core import setup - - setup(name='Distutils', - version='1.0', - description='Python Distribution Utilities', - author='Greg Ward', - author_email='gward@python.net', - url='https://www.python.org/sigs/distutils-sig/', - packages=['distutils', 'distutils.command'], - ) - -There are only two differences between this and the trivial one-file -distribution presented in section :ref:`distutils-simple-example`: more metadata, and the -specification of pure Python modules by package, rather than by module. This is -important since the Distutils consist of a couple of dozen modules split into -(so far) two packages; an explicit list of every module would be tedious to -generate and difficult to maintain. For more information on the additional -meta-data, see section :ref:`meta-data`. - -Note that any pathnames (files or directories) supplied in the setup script -should be written using the Unix convention, i.e. slash-separated. The -Distutils will take care of converting this platform-neutral representation into -whatever is appropriate on your current platform before actually using the -pathname. This makes your setup script portable across operating systems, which -of course is one of the major goals of the Distutils. In this spirit, all -pathnames in this document are slash-separated. - -This, of course, only applies to pathnames given to Distutils functions. If -you, for example, use standard Python functions such as :func:`glob.glob` or -:func:`os.listdir` to specify files, you should be careful to write portable -code instead of hardcoding path separators:: - - glob.glob(os.path.join('mydir', 'subdir', '*.html')) - os.listdir(os.path.join('mydir', 'subdir')) - - -.. _listing-packages: - -Listing whole packages -====================== - -The ``packages`` option tells the Distutils to process (build, distribute, -install, etc.) all pure Python modules found in each package mentioned in the -``packages`` list. In order to do this, of course, there has to be a -correspondence between package names and directories in the filesystem. The -default correspondence is the most obvious one, i.e. package :mod:`distutils` is -found in the directory :file:`distutils` relative to the distribution root. -Thus, when you say ``packages = ['foo']`` in your setup script, you are -promising that the Distutils will find a file :file:`foo/__init__.py` (which -might be spelled differently on your system, but you get the idea) relative to -the directory where your setup script lives. If you break this promise, the -Distutils will issue a warning but still process the broken package anyway. - -If you use a different convention to lay out your source directory, that's no -problem: you just have to supply the ``package_dir`` option to tell the -Distutils about your convention. For example, say you keep all Python source -under :file:`lib`, so that modules in the "root package" (i.e., not in any -package at all) are in :file:`lib`, modules in the :mod:`foo` package are in -:file:`lib/foo`, and so forth. Then you would put :: - - package_dir = {'': 'lib'} - -in your setup script. The keys to this dictionary are package names, and an -empty package name stands for the root package. The values are directory names -relative to your distribution root. In this case, when you say ``packages = -['foo']``, you are promising that the file :file:`lib/foo/__init__.py` exists. - -Another possible convention is to put the :mod:`foo` package right in -:file:`lib`, the :mod:`foo.bar` package in :file:`lib/bar`, etc. This would be -written in the setup script as :: - - package_dir = {'foo': 'lib'} - -A ``package: dir`` entry in the ``package_dir`` dictionary implicitly -applies to all packages below *package*, so the :mod:`foo.bar` case is -automatically handled here. In this example, having ``packages = ['foo', -'foo.bar']`` tells the Distutils to look for :file:`lib/__init__.py` and -:file:`lib/bar/__init__.py`. (Keep in mind that although ``package_dir`` -applies recursively, you must explicitly list all packages in -``packages``: the Distutils will *not* recursively scan your source tree -looking for any directory with an :file:`__init__.py` file.) - - -.. _listing-modules: - -Listing individual modules -========================== - -For a small module distribution, you might prefer to list all modules rather -than listing packages---especially the case of a single module that goes in the -"root package" (i.e., no package at all). This simplest case was shown in -section :ref:`distutils-simple-example`; here is a slightly more involved example:: - - py_modules = ['mod1', 'pkg.mod2'] - -This describes two modules, one of them in the "root" package, the other in the -:mod:`pkg` package. Again, the default package/directory layout implies that -these two modules can be found in :file:`mod1.py` and :file:`pkg/mod2.py`, and -that :file:`pkg/__init__.py` exists as well. And again, you can override the -package/directory correspondence using the ``package_dir`` option. - - -.. _describing-extensions: - -Describing extension modules -============================ - -Just as writing Python extension modules is a bit more complicated than writing -pure Python modules, describing them to the Distutils is a bit more complicated. -Unlike pure modules, it's not enough just to list modules or packages and expect -the Distutils to go out and find the right files; you have to specify the -extension name, source file(s), and any compile/link requirements (include -directories, libraries to link with, etc.). - -.. XXX read over this section - -All of this is done through another keyword argument to :func:`setup`, the -``ext_modules`` option. ``ext_modules`` is just a list of -:class:`~distutils.core.Extension` instances, each of which describes a -single extension module. -Suppose your distribution includes a single extension, called :mod:`foo` and -implemented by :file:`foo.c`. If no additional instructions to the -compiler/linker are needed, describing this extension is quite simple:: - - Extension('foo', ['foo.c']) - -The :class:`Extension` class can be imported from :mod:`distutils.core` along -with :func:`setup`. Thus, the setup script for a module distribution that -contains only this one extension and nothing else might be:: - - from distutils.core import setup, Extension - setup(name='foo', - version='1.0', - ext_modules=[Extension('foo', ['foo.c'])], - ) - -The :class:`Extension` class (actually, the underlying extension-building -machinery implemented by the :command:`build_ext` command) supports a great deal -of flexibility in describing Python extensions, which is explained in the -following sections. - - -Extension names and packages ----------------------------- - -The first argument to the :class:`~distutils.core.Extension` constructor is -always the name of the extension, including any package names. For example, :: - - Extension('foo', ['src/foo1.c', 'src/foo2.c']) - -describes an extension that lives in the root package, while :: - - Extension('pkg.foo', ['src/foo1.c', 'src/foo2.c']) - -describes the same extension in the :mod:`pkg` package. The source files and -resulting object code are identical in both cases; the only difference is where -in the filesystem (and therefore where in Python's namespace hierarchy) the -resulting extension lives. - -If you have a number of extensions all in the same package (or all under the -same base package), use the ``ext_package`` keyword argument to -:func:`setup`. For example, :: - - setup(..., - ext_package='pkg', - ext_modules=[Extension('foo', ['foo.c']), - Extension('subpkg.bar', ['bar.c'])], - ) - -will compile :file:`foo.c` to the extension :mod:`pkg.foo`, and :file:`bar.c` to -:mod:`pkg.subpkg.bar`. - - -Extension source files ----------------------- - -The second argument to the :class:`~distutils.core.Extension` constructor is -a list of source -files. Since the Distutils currently only support C, C++, and Objective-C -extensions, these are normally C/C++/Objective-C source files. (Be sure to use -appropriate extensions to distinguish C++ source files: :file:`.cc` and -:file:`.cpp` seem to be recognized by both Unix and Windows compilers.) - -However, you can also include SWIG interface (:file:`.i`) files in the list; the -:command:`build_ext` command knows how to deal with SWIG extensions: it will run -SWIG on the interface file and compile the resulting C/C++ file into your -extension. - -.. XXX SWIG support is rough around the edges and largely untested! - -This warning notwithstanding, options to SWIG can be currently passed like -this:: - - setup(..., - ext_modules=[Extension('_foo', ['foo.i'], - swig_opts=['-modern', '-I../include'])], - py_modules=['foo'], - ) - -Or on the commandline like this:: - - > python setup.py build_ext --swig-opts="-modern -I../include" - -On some platforms, you can include non-source files that are processed by the -compiler and included in your extension. Currently, this just means Windows -message text (:file:`.mc`) files and resource definition (:file:`.rc`) files for -Visual C++. These will be compiled to binary resource (:file:`.res`) files and -linked into the executable. - - -Preprocessor options --------------------- - -Three optional arguments to :class:`~distutils.core.Extension` will help if -you need to specify include directories to search or preprocessor macros to -define/undefine: ``include_dirs``, ``define_macros``, and ``undef_macros``. - -For example, if your extension requires header files in the :file:`include` -directory under your distribution root, use the ``include_dirs`` option:: - - Extension('foo', ['foo.c'], include_dirs=['include']) - -You can specify absolute directories there; if you know that your extension will -only be built on Unix systems with X11R6 installed to :file:`/usr`, you can get -away with :: - - Extension('foo', ['foo.c'], include_dirs=['/usr/include/X11']) - -You should avoid this sort of non-portable usage if you plan to distribute your -code: it's probably better to write C code like :: - - #include - -If you need to include header files from some other Python extension, you can -take advantage of the fact that header files are installed in a consistent way -by the Distutils :command:`install_headers` command. For example, the Numerical -Python header files are installed (on a standard Unix installation) to -:file:`/usr/local/include/python1.5/Numerical`. (The exact location will differ -according to your platform and Python installation.) Since the Python include -directory---\ :file:`/usr/local/include/python1.5` in this case---is always -included in the search path when building Python extensions, the best approach -is to write C code like :: - - #include - -If you must put the :file:`Numerical` include directory right into your header -search path, though, you can find that directory using the Distutils -:mod:`distutils.sysconfig` module:: - - from distutils.sysconfig import get_python_inc - incdir = os.path.join(get_python_inc(plat_specific=1), 'Numerical') - setup(..., - Extension(..., include_dirs=[incdir]), - ) - -Even though this is quite portable---it will work on any Python installation, -regardless of platform---it's probably easier to just write your C code in the -sensible way. - -You can define and undefine pre-processor macros with the ``define_macros`` and -``undef_macros`` options. ``define_macros`` takes a list of ``(name, value)`` -tuples, where ``name`` is the name of the macro to define (a string) and -``value`` is its value: either a string or ``None``. (Defining a macro ``FOO`` -to ``None`` is the equivalent of a bare ``#define FOO`` in your C source: with -most compilers, this sets ``FOO`` to the string ``1``.) ``undef_macros`` is -just a list of macros to undefine. - -For example:: - - Extension(..., - define_macros=[('NDEBUG', '1'), - ('HAVE_STRFTIME', None)], - undef_macros=['HAVE_FOO', 'HAVE_BAR']) - -is the equivalent of having this at the top of every C source file:: - - #define NDEBUG 1 - #define HAVE_STRFTIME - #undef HAVE_FOO - #undef HAVE_BAR - - -Library options ---------------- - -You can also specify the libraries to link against when building your extension, -and the directories to search for those libraries. The ``libraries`` option is -a list of libraries to link against, ``library_dirs`` is a list of directories -to search for libraries at link-time, and ``runtime_library_dirs`` is a list of -directories to search for shared (dynamically loaded) libraries at run-time. - -For example, if you need to link against libraries known to be in the standard -library search path on target systems :: - - Extension(..., - libraries=['gdbm', 'readline']) - -If you need to link with libraries in a non-standard location, you'll have to -include the location in ``library_dirs``:: - - Extension(..., - library_dirs=['/usr/X11R6/lib'], - libraries=['X11', 'Xt']) - -(Again, this sort of non-portable construct should be avoided if you intend to -distribute your code.) - -.. XXX Should mention clib libraries here or somewhere else! - - -Other options -------------- - -There are still some other options which can be used to handle special cases. - -The ``optional`` option is a boolean; if it is true, -a build failure in the extension will not abort the build process, but -instead simply not install the failing extension. - -The ``extra_objects`` option is a list of object files to be passed to the -linker. These files must not have extensions, as the default extension for the -compiler is used. - -``extra_compile_args`` and ``extra_link_args`` can be used to -specify additional command line options for the respective compiler and linker -command lines. - -``export_symbols`` is only useful on Windows. It can contain a list of -symbols (functions or variables) to be exported. This option is not needed when -building compiled extensions: Distutils will automatically add ``initmodule`` -to the list of exported symbols. - -The ``depends`` option is a list of files that the extension depends on -(for example header files). The build command will call the compiler on the -sources to rebuild extension if any on this files has been modified since the -previous build. - -Relationships between Distributions and Packages -================================================ - -A distribution may relate to packages in three specific ways: - -#. It can require packages or modules. - -#. It can provide packages or modules. - -#. It can obsolete packages or modules. - -These relationships can be specified using keyword arguments to the -:func:`distutils.core.setup` function. - -Dependencies on other Python modules and packages can be specified by supplying -the *requires* keyword argument to :func:`setup`. The value must be a list of -strings. Each string specifies a package that is required, and optionally what -versions are sufficient. - -To specify that any version of a module or package is required, the string -should consist entirely of the module or package name. Examples include -``'mymodule'`` and ``'xml.parsers.expat'``. - -If specific versions are required, a sequence of qualifiers can be supplied in -parentheses. Each qualifier may consist of a comparison operator and a version -number. The accepted comparison operators are:: - - < > == - <= >= != - -These can be combined by using multiple qualifiers separated by commas (and -optional whitespace). In this case, all of the qualifiers must be matched; a -logical AND is used to combine the evaluations. - -Let's look at a bunch of examples: - -+-------------------------+----------------------------------------------+ -| Requires Expression | Explanation | -+=========================+==============================================+ -| ``==1.0`` | Only version ``1.0`` is compatible | -+-------------------------+----------------------------------------------+ -| ``>1.0, !=1.5.1, <2.0`` | Any version after ``1.0`` and before ``2.0`` | -| | is compatible, except ``1.5.1`` | -+-------------------------+----------------------------------------------+ - -Now that we can specify dependencies, we also need to be able to specify what we -provide that other distributions can require. This is done using the *provides* -keyword argument to :func:`setup`. The value for this keyword is a list of -strings, each of which names a Python module or package, and optionally -identifies the version. If the version is not specified, it is assumed to match -that of the distribution. - -Some examples: - -+---------------------+----------------------------------------------+ -| Provides Expression | Explanation | -+=====================+==============================================+ -| ``mypkg`` | Provide ``mypkg``, using the distribution | -| | version | -+---------------------+----------------------------------------------+ -| ``mypkg (1.1)`` | Provide ``mypkg`` version 1.1, regardless of | -| | the distribution version | -+---------------------+----------------------------------------------+ - -A package can declare that it obsoletes other packages using the *obsoletes* -keyword argument. The value for this is similar to that of the *requires* -keyword: a list of strings giving module or package specifiers. Each specifier -consists of a module or package name optionally followed by one or more version -qualifiers. Version qualifiers are given in parentheses after the module or -package name. - -The versions identified by the qualifiers are those that are obsoleted by the -distribution being described. If no qualifiers are given, all versions of the -named module or package are understood to be obsoleted. - -.. _distutils-installing-scripts: - -Installing Scripts -================== - -So far we have been dealing with pure and non-pure Python modules, which are -usually not run by themselves but imported by scripts. - -Scripts are files containing Python source code, intended to be started from the -command line. Scripts don't require Distutils to do anything very complicated. -The only clever feature is that if the first line of the script starts with -``#!`` and contains the word "python", the Distutils will adjust the first line -to refer to the current interpreter location. By default, it is replaced with -the current interpreter location. The :option:`!--executable` (or :option:`!-e`) -option will allow the interpreter path to be explicitly overridden. - -The ``scripts`` option simply is a list of files to be handled in this -way. From the PyXML setup script:: - - setup(..., - scripts=['scripts/xmlproc_parse', 'scripts/xmlproc_val'] - ) - -.. versionchanged:: 3.1 - All the scripts will also be added to the ``MANIFEST`` file if no template is - provided. See :ref:`manifest`. - - -.. _distutils-installing-package-data: - -Installing Package Data -======================= - -Often, additional files need to be installed into a package. These files are -often data that's closely related to the package's implementation, or text files -containing documentation that might be of interest to programmers using the -package. These files are called :dfn:`package data`. - -Package data can be added to packages using the ``package_data`` keyword -argument to the :func:`setup` function. The value must be a mapping from -package name to a list of relative path names that should be copied into the -package. The paths are interpreted as relative to the directory containing the -package (information from the ``package_dir`` mapping is used if appropriate); -that is, the files are expected to be part of the package in the source -directories. They may contain glob patterns as well. - -The path names may contain directory portions; any necessary directories will be -created in the installation. - -For example, if a package should contain a subdirectory with several data files, -the files can be arranged like this in the source tree:: - - setup.py - src/ - mypkg/ - __init__.py - module.py - data/ - tables.dat - spoons.dat - forks.dat - -The corresponding call to :func:`setup` might be:: - - setup(..., - packages=['mypkg'], - package_dir={'mypkg': 'src/mypkg'}, - package_data={'mypkg': ['data/*.dat']}, - ) - - -.. versionchanged:: 3.1 - All the files that match ``package_data`` will be added to the ``MANIFEST`` - file if no template is provided. See :ref:`manifest`. - - -.. _distutils-additional-files: - -Installing Additional Files -=========================== - -The ``data_files`` option can be used to specify additional files needed -by the module distribution: configuration files, message catalogs, data files, -anything which doesn't fit in the previous categories. - -``data_files`` specifies a sequence of (*directory*, *files*) pairs in the -following way:: - - setup(..., - data_files=[('bitmaps', ['bm/b1.gif', 'bm/b2.gif']), - ('config', ['cfg/data.cfg'])], - ) - -Each (*directory*, *files*) pair in the sequence specifies the installation -directory and the files to install there. - -Each file name in *files* is interpreted relative to the :file:`setup.py` -script at the top of the package source distribution. Note that you can -specify the directory where the data files will be installed, but you cannot -rename the data files themselves. - -The *directory* should be a relative path. It is interpreted relative to the -installation prefix (Python's ``sys.prefix`` for system installations; -``site.USER_BASE`` for user installations). Distutils allows *directory* to be -an absolute installation path, but this is discouraged since it is -incompatible with the wheel packaging format. No directory information from -*files* is used to determine the final location of the installed file; only -the name of the file is used. - -You can specify the ``data_files`` options as a simple sequence of files -without specifying a target directory, but this is not recommended, and the -:command:`install` command will print a warning in this case. To install data -files directly in the target directory, an empty string should be given as the -directory. - -.. versionchanged:: 3.1 - All the files that match ``data_files`` will be added to the ``MANIFEST`` - file if no template is provided. See :ref:`manifest`. - - -.. _meta-data: - -Additional meta-data -==================== - -The setup script may include additional meta-data beyond the name and version. -This information includes: - -+----------------------+---------------------------+-----------------+--------+ -| Meta-Data | Description | Value | Notes | -+======================+===========================+=================+========+ -| ``name`` | name of the package | short string | \(1) | -+----------------------+---------------------------+-----------------+--------+ -| ``version`` | version of this release | short string | (1)(2) | -+----------------------+---------------------------+-----------------+--------+ -| ``author`` | package author's name | short string | \(3) | -+----------------------+---------------------------+-----------------+--------+ -| ``author_email`` | email address of the | email address | \(3) | -| | package author | | | -+----------------------+---------------------------+-----------------+--------+ -| ``maintainer`` | package maintainer's name | short string | \(3) | -+----------------------+---------------------------+-----------------+--------+ -| ``maintainer_email`` | email address of the | email address | \(3) | -| | package maintainer | | | -+----------------------+---------------------------+-----------------+--------+ -| ``url`` | home page for the package | URL | \(1) | -+----------------------+---------------------------+-----------------+--------+ -| ``description`` | short, summary | short string | | -| | description of the | | | -| | package | | | -+----------------------+---------------------------+-----------------+--------+ -| ``long_description`` | longer description of the | long string | \(4) | -| | package | | | -+----------------------+---------------------------+-----------------+--------+ -| ``download_url`` | location where the | URL | | -| | package may be downloaded | | | -+----------------------+---------------------------+-----------------+--------+ -| ``classifiers`` | a list of classifiers | list of strings | (6)(7) | -+----------------------+---------------------------+-----------------+--------+ -| ``platforms`` | a list of platforms | list of strings | (6)(8) | -+----------------------+---------------------------+-----------------+--------+ -| ``keywords`` | a list of keywords | list of strings | (6)(8) | -+----------------------+---------------------------+-----------------+--------+ -| ``license`` | license for the package | short string | \(5) | -+----------------------+---------------------------+-----------------+--------+ - -Notes: - -(1) - These fields are required. - -(2) - It is recommended that versions take the form *major.minor[.patch[.sub]]*. - -(3) - Either the author or the maintainer must be identified. If maintainer is - provided, distutils lists it as the author in :file:`PKG-INFO`. - -(4) - The ``long_description`` field is used by PyPI when you publish a package, - to build its project page. - -(5) - The ``license`` field is a text indicating the license covering the - package where the license is not a selection from the "License" Trove - classifiers. See the ``Classifier`` field. Notice that - there's a ``licence`` distribution option which is deprecated but still - acts as an alias for ``license``. - -(6) - This field must be a list. - -(7) - The valid classifiers are listed on - `PyPI `_. - -(8) - To preserve backward compatibility, this field also accepts a string. If - you pass a comma-separated string ``'foo, bar'``, it will be converted to - ``['foo', 'bar']``, Otherwise, it will be converted to a list of one - string. - -'short string' - A single line of text, not more than 200 characters. - -'long string' - Multiple lines of plain text in reStructuredText format (see - http://docutils.sourceforge.net/). - -'list of strings' - See below. - -Encoding the version information is an art in itself. Python packages generally -adhere to the version format *major.minor[.patch][sub]*. The major number is 0 -for initial, experimental releases of software. It is incremented for releases -that represent major milestones in a package. The minor number is incremented -when important new features are added to the package. The patch number -increments when bug-fix releases are made. Additional trailing version -information is sometimes used to indicate sub-releases. These are -"a1,a2,...,aN" (for alpha releases, where functionality and API may change), -"b1,b2,...,bN" (for beta releases, which only fix bugs) and "pr1,pr2,...,prN" -(for final pre-release release testing). Some examples: - -0.1.0 - the first, experimental release of a package - -1.0.1a2 - the second alpha release of the first patch version of 1.0 - -``classifiers`` must be specified in a list:: - - setup(..., - classifiers=[ - 'Development Status :: 4 - Beta', - 'Environment :: Console', - 'Environment :: Web Environment', - 'Intended Audience :: End Users/Desktop', - 'Intended Audience :: Developers', - 'Intended Audience :: System Administrators', - 'License :: OSI Approved :: Python Software Foundation License', - 'Operating System :: MacOS :: MacOS X', - 'Operating System :: Microsoft :: Windows', - 'Operating System :: POSIX', - 'Programming Language :: Python', - 'Topic :: Communications :: Email', - 'Topic :: Office/Business', - 'Topic :: Software Development :: Bug Tracking', - ], - ) - -.. versionchanged:: 3.7 - :class:`~distutils.core.setup` now warns when ``classifiers``, ``keywords`` - or ``platforms`` fields are not specified as a list or a string. - -.. _debug-setup-script: - -Debugging the setup script -========================== - -Sometimes things go wrong, and the setup script doesn't do what the developer -wants. - -Distutils catches any exceptions when running the setup script, and print a -simple error message before the script is terminated. The motivation for this -behaviour is to not confuse administrators who don't know much about Python and -are trying to install a package. If they get a big long traceback from deep -inside the guts of Distutils, they may think the package or the Python -installation is broken because they don't read all the way down to the bottom -and see that it's a permission problem. - -On the other hand, this doesn't help the developer to find the cause of the -failure. For this purpose, the :envvar:`DISTUTILS_DEBUG` environment variable can be set -to anything except an empty string, and distutils will now print detailed -information about what it is doing, dump the full traceback when an exception -occurs, and print the whole command line when an external program (like a C -compiler) fails. diff --git a/Doc/distutils/sourcedist.rst b/Doc/distutils/sourcedist.rst deleted file mode 100644 index b55d01157f3ee1..00000000000000 --- a/Doc/distutils/sourcedist.rst +++ /dev/null @@ -1,245 +0,0 @@ -.. _source-dist: - -****************************** -Creating a Source Distribution -****************************** - -.. include:: ./_setuptools_disclaimer.rst - -As shown in section :ref:`distutils-simple-example`, you use the :command:`sdist` command -to create a source distribution. In the simplest case, :: - - python setup.py sdist - -(assuming you haven't specified any :command:`sdist` options in the setup script -or config file), :command:`sdist` creates the archive of the default format for -the current platform. The default format is a gzip'ed tar file -(:file:`.tar.gz`) on Unix, and ZIP file on Windows. - -You can specify as many formats as you like using the :option:`!--formats` -option, for example:: - - python setup.py sdist --formats=gztar,zip - -to create a gzipped tarball and a zip file. The available formats are: - -+-----------+-------------------------+-------------+ -| Format | Description | Notes | -+===========+=========================+=============+ -| ``zip`` | zip file (:file:`.zip`) | (1),(3) | -+-----------+-------------------------+-------------+ -| ``gztar`` | gzip'ed tar file | \(2) | -| | (:file:`.tar.gz`) | | -+-----------+-------------------------+-------------+ -| ``bztar`` | bzip2'ed tar file | \(5) | -| | (:file:`.tar.bz2`) | | -+-----------+-------------------------+-------------+ -| ``xztar`` | xz'ed tar file | \(5) | -| | (:file:`.tar.xz`) | | -+-----------+-------------------------+-------------+ -| ``ztar`` | compressed tar file | (4),(5) | -| | (:file:`.tar.Z`) | | -+-----------+-------------------------+-------------+ -| ``tar`` | tar file (:file:`.tar`) | \(5) | -+-----------+-------------------------+-------------+ - -.. versionchanged:: 3.5 - Added support for the ``xztar`` format. - -Notes: - -(1) - default on Windows - -(2) - default on Unix - -(3) - requires either external :program:`zip` utility or :mod:`zipfile` module (part - of the standard Python library since Python 1.6) - -(4) - requires the :program:`compress` program. Notice that this format is now - pending for deprecation and will be removed in the future versions of Python. -(5) - deprecated by `PEP 527 `_; - `PyPI `_ only accepts ``.zip`` and ``.tar.gz`` files. - -When using any ``tar`` format (``gztar``, ``bztar``, ``xztar``, ``ztar`` or -``tar``), under Unix you can specify the ``owner`` and ``group`` names -that will be set for each member of the archive. - -For example, if you want all files of the archive to be owned by root:: - - python setup.py sdist --owner=root --group=root - - -.. _manifest: - -Specifying the files to distribute -================================== - -If you don't supply an explicit list of files (or instructions on how to -generate one), the :command:`sdist` command puts a minimal default set into the -source distribution: - -* all Python source files implied by the ``py_modules`` and - ``packages`` options - -* all C source files mentioned in the ``ext_modules`` or - ``libraries`` options - - .. XXX getting C library sources currently broken---no - :meth:`get_source_files` method in :file:`build_clib.py`! - -* scripts identified by the ``scripts`` option - See :ref:`distutils-installing-scripts`. - -* anything that looks like a test script: :file:`test/test\*.py` (currently, the - Distutils don't do anything with test scripts except include them in source - distributions, but in the future there will be a standard for testing Python - module distributions) - -* Any of the standard README files (:file:`README`, :file:`README.txt`, - or :file:`README.rst`), :file:`setup.py` (or whatever you called your setup - script), and :file:`setup.cfg`. - -* all files that matches the ``package_data`` metadata. - See :ref:`distutils-installing-package-data`. - -* all files that matches the ``data_files`` metadata. - See :ref:`distutils-additional-files`. - -Sometimes this is enough, but usually you will want to specify additional files -to distribute. The typical way to do this is to write a *manifest template*, -called :file:`MANIFEST.in` by default. The manifest template is just a list of -instructions for how to generate your manifest file, :file:`MANIFEST`, which is -the exact list of files to include in your source distribution. The -:command:`sdist` command processes this template and generates a manifest based -on its instructions and what it finds in the filesystem. - -If you prefer to roll your own manifest file, the format is simple: one filename -per line, regular files (or symlinks to them) only. If you do supply your own -:file:`MANIFEST`, you must specify everything: the default set of files -described above does not apply in this case. - -.. versionchanged:: 3.1 - An existing generated :file:`MANIFEST` will be regenerated without - :command:`sdist` comparing its modification time to the one of - :file:`MANIFEST.in` or :file:`setup.py`. - -.. versionchanged:: 3.1.3 - :file:`MANIFEST` files start with a comment indicating they are generated. - Files without this comment are not overwritten or removed. - -.. versionchanged:: 3.2.2 - :command:`sdist` will read a :file:`MANIFEST` file if no :file:`MANIFEST.in` - exists, like it used to do. - -.. versionchanged:: 3.7 - :file:`README.rst` is now included in the list of distutils standard READMEs. - - -The manifest template has one command per line, where each command specifies a -set of files to include or exclude from the source distribution. For an -example, again we turn to the Distutils' own manifest template: - -.. code-block:: none - - include *.txt - recursive-include examples *.txt *.py - prune examples/sample?/build - -The meanings should be fairly clear: include all files in the distribution root -matching :file:`\*.txt`, all files anywhere under the :file:`examples` directory -matching :file:`\*.txt` or :file:`\*.py`, and exclude all directories matching -:file:`examples/sample?/build`. All of this is done *after* the standard -include set, so you can exclude files from the standard set with explicit -instructions in the manifest template. (Or, you can use the -:option:`!--no-defaults` option to disable the standard set entirely.) There are -several other commands available in the manifest template mini-language; see -section :ref:`sdist-cmd`. - -The order of commands in the manifest template matters: initially, we have the -list of default files as described above, and each command in the template adds -to or removes from that list of files. Once we have fully processed the -manifest template, we remove files that should not be included in the source -distribution: - -* all files in the Distutils "build" tree (default :file:`build/`) - -* all files in directories named :file:`RCS`, :file:`CVS`, :file:`.svn`, - :file:`.hg`, :file:`.git`, :file:`.bzr` or :file:`_darcs` - -Now we have our complete list of files, which is written to the manifest for -future reference, and then used to build the source distribution archive(s). - -You can disable the default set of included files with the -:option:`!--no-defaults` option, and you can disable the standard exclude set -with :option:`!--no-prune`. - -Following the Distutils' own manifest template, let's trace how the -:command:`sdist` command builds the list of files to include in the Distutils -source distribution: - -#. include all Python source files in the :file:`distutils` and - :file:`distutils/command` subdirectories (because packages corresponding to - those two directories were mentioned in the ``packages`` option in the - setup script---see section :ref:`setup-script`) - -#. include :file:`README.txt`, :file:`setup.py`, and :file:`setup.cfg` (standard - files) - -#. include :file:`test/test\*.py` (standard files) - -#. include :file:`\*.txt` in the distribution root (this will find - :file:`README.txt` a second time, but such redundancies are weeded out later) - -#. include anything matching :file:`\*.txt` or :file:`\*.py` in the sub-tree - under :file:`examples`, - -#. exclude all files in the sub-trees starting at directories matching - :file:`examples/sample?/build`\ ---this may exclude files included by the - previous two steps, so it's important that the ``prune`` command in the manifest - template comes after the ``recursive-include`` command - -#. exclude the entire :file:`build` tree, and any :file:`RCS`, :file:`CVS`, - :file:`.svn`, :file:`.hg`, :file:`.git`, :file:`.bzr` and :file:`_darcs` - directories - -Just like in the setup script, file and directory names in the manifest template -should always be slash-separated; the Distutils will take care of converting -them to the standard representation on your platform. That way, the manifest -template is portable across operating systems. - - -.. _manifest-options: - -Manifest-related options -======================== - -The normal course of operations for the :command:`sdist` command is as follows: - -* if the manifest file (:file:`MANIFEST` by default) exists and the first line - does not have a comment indicating it is generated from :file:`MANIFEST.in`, - then it is used as is, unaltered - -* if the manifest file doesn't exist or has been previously automatically - generated, read :file:`MANIFEST.in` and create the manifest - -* if neither :file:`MANIFEST` nor :file:`MANIFEST.in` exist, create a manifest - with just the default file set - -* use the list of files now in :file:`MANIFEST` (either just generated or read - in) to create the source distribution archive(s) - -There are a couple of options that modify this behaviour. First, use the -:option:`!--no-defaults` and :option:`!--no-prune` to disable the standard -"include" and "exclude" sets. - -Second, you might just want to (re)generate the manifest, but not create a source -distribution:: - - python setup.py sdist --manifest-only - -:option:`!-o` is a shortcut for :option:`!--manifest-only`. diff --git a/Doc/distutils/uploading.rst b/Doc/distutils/uploading.rst deleted file mode 100644 index 4c391cab072ea6..00000000000000 --- a/Doc/distutils/uploading.rst +++ /dev/null @@ -1,8 +0,0 @@ -:orphan: - -*************************************** -Uploading Packages to the Package Index -*************************************** - -References to up to date PyPI documentation can be found at -:ref:`publishing-python-packages`. diff --git a/Doc/extending/building.rst b/Doc/extending/building.rst index 69dffbd56abf11..880bb33ee56718 100644 --- a/Doc/extending/building.rst +++ b/Doc/extending/building.rst @@ -11,13 +11,13 @@ A C extension for CPython is a shared library (e.g. a ``.so`` file on Linux, To be importable, the shared library must be available on :envvar:`PYTHONPATH`, and must be named after the module name, with an appropriate extension. -When using distutils, the correct filename is generated automatically. +When using setuptools, the correct filename is generated automatically. The initialization function has the signature: .. c:function:: PyObject* PyInit_modulename(void) -It returns either a fully-initialized module, or a :c:type:`PyModuleDef` +It returns either a fully initialized module, or a :c:type:`PyModuleDef` instance. See :ref:`initializing-modules` for details. .. highlight:: python @@ -45,122 +45,12 @@ See the *"Multiple modules in one library"* section in :pep:`489` for details. .. highlight:: c -Building C and C++ Extensions with distutils -============================================ +.. _setuptools-index: -.. sectionauthor:: Martin v. Löwis +Building C and C++ Extensions with setuptools +============================================= -Extension modules can be built using distutils, which is included in Python. -Since distutils also supports creation of binary packages, users don't -necessarily need a compiler and distutils to install the extension. - -A distutils package contains a driver script, :file:`setup.py`. This is a plain -Python file, which, in the most simple case, could look like this: - -.. code-block:: python3 - - from distutils.core import setup, Extension - - module1 = Extension('demo', - sources = ['demo.c']) - - setup (name = 'PackageName', - version = '1.0', - description = 'This is a demo package', - ext_modules = [module1]) - - -With this :file:`setup.py`, and a file :file:`demo.c`, running :: - - python setup.py build - -will compile :file:`demo.c`, and produce an extension module named ``demo`` in -the :file:`build` directory. Depending on the system, the module file will end -up in a subdirectory :file:`build/lib.system`, and may have a name like -:file:`demo.so` or :file:`demo.pyd`. - -In the :file:`setup.py`, all execution is performed by calling the ``setup`` -function. This takes a variable number of keyword arguments, of which the -example above uses only a subset. Specifically, the example specifies -meta-information to build packages, and it specifies the contents of the -package. Normally, a package will contain additional modules, like Python -source modules, documentation, subpackages, etc. Please refer to the distutils -documentation in :ref:`distutils-index` to learn more about the features of -distutils; this section explains building extension modules only. - -It is common to pre-compute arguments to :func:`setup`, to better structure the -driver script. In the example above, the ``ext_modules`` argument to -:func:`~distutils.core.setup` is a list of extension modules, each of which is -an instance of -the :class:`~distutils.extension.Extension`. In the example, the instance -defines an extension named ``demo`` which is build by compiling a single source -file, :file:`demo.c`. - -In many cases, building an extension is more complex, since additional -preprocessor defines and libraries may be needed. This is demonstrated in the -example below. - -.. code-block:: python3 - - from distutils.core import setup, Extension - - module1 = Extension('demo', - define_macros = [('MAJOR_VERSION', '1'), - ('MINOR_VERSION', '0')], - include_dirs = ['/usr/local/include'], - libraries = ['tcl83'], - library_dirs = ['/usr/local/lib'], - sources = ['demo.c']) - - setup (name = 'PackageName', - version = '1.0', - description = 'This is a demo package', - author = 'Martin v. Loewis', - author_email = 'martin@v.loewis.de', - url = 'https://docs.python.org/extending/building', - long_description = ''' - This is really just a demo package. - ''', - ext_modules = [module1]) - - -In this example, :func:`~distutils.core.setup` is called with additional -meta-information, which -is recommended when distribution packages have to be built. For the extension -itself, it specifies preprocessor defines, include directories, library -directories, and libraries. Depending on the compiler, distutils passes this -information in different ways to the compiler. For example, on Unix, this may -result in the compilation commands :: - - gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -fPIC -DMAJOR_VERSION=1 -DMINOR_VERSION=0 -I/usr/local/include -I/usr/local/include/python2.2 -c demo.c -o build/temp.linux-i686-2.2/demo.o - - gcc -shared build/temp.linux-i686-2.2/demo.o -L/usr/local/lib -ltcl83 -o build/lib.linux-i686-2.2/demo.so - -These lines are for demonstration purposes only; distutils users should trust -that distutils gets the invocations right. - - -.. _distributing: - -Distributing your extension modules -=================================== - -When an extension has been successfully built, there are three ways to use it. - -End-users will typically want to install the module, they do so by running :: - - python setup.py install - -Module maintainers should produce source packages; to do so, they run :: - - python setup.py sdist - -In some cases, additional files need to be included in a source distribution; -this is done through a :file:`MANIFEST.in` file; see :ref:`manifest` for details. - -If the source distribution has been built successfully, maintainers can also -create binary distributions. Depending on the platform, one of the following -commands can be used to do so. :: - - python setup.py bdist_rpm - python setup.py bdist_dumb +Python 3.12 and newer no longer come with distutils. Please refer to the +``setuptools`` documentation at +https://setuptools.readthedocs.io/en/latest/setuptools.html +to learn more about how build and distribute C/C++ extensions with setuptools. diff --git a/Doc/extending/index.rst b/Doc/extending/index.rst index 0994e3e8627dfa..01b4df6d44acff 100644 --- a/Doc/extending/index.rst +++ b/Doc/extending/index.rst @@ -27,8 +27,8 @@ Recommended third party tools This guide only covers the basic tools for creating extensions provided as part of this version of CPython. Third party tools like -`Cython `_, `cffi `_, -`SWIG `_ and `Numba `_ +`Cython `_, `cffi `_, +`SWIG `_ and `Numba `_ offer both simpler and more sophisticated approaches to creating C and C++ extensions for Python. diff --git a/Doc/extending/newtypes.rst b/Doc/extending/newtypes.rst index f75bee9e6f2a2b..b797dc2817c83e 100644 --- a/Doc/extending/newtypes.rst +++ b/Doc/extending/newtypes.rst @@ -175,7 +175,7 @@ example:: } If no :c:member:`~PyTypeObject.tp_repr` handler is specified, the interpreter will supply a -representation that uses the type's :c:member:`~PyTypeObject.tp_name` and a uniquely-identifying +representation that uses the type's :c:member:`~PyTypeObject.tp_name` and a uniquely identifying value for the object. The :c:member:`~PyTypeObject.tp_str` handler is to :func:`str` what the :c:member:`~PyTypeObject.tp_repr` handler @@ -570,43 +570,28 @@ performance-critical objects (such as numbers). .. seealso:: Documentation for the :mod:`weakref` module. -For an object to be weakly referencable, the extension type must do two things: +For an object to be weakly referencable, the extension type must set the +``Py_TPFLAGS_MANAGED_WEAKREF`` bit of the :c:member:`~PyTypeObject.tp_flags` +field. The legacy :c:member:`~PyTypeObject.tp_weaklistoffset` field should +be left as zero. -#. Include a :c:type:`PyObject\*` field in the C object structure dedicated to - the weak reference mechanism. The object's constructor should leave it - ``NULL`` (which is automatic when using the default - :c:member:`~PyTypeObject.tp_alloc`). - -#. Set the :c:member:`~PyTypeObject.tp_weaklistoffset` type member - to the offset of the aforementioned field in the C object structure, - so that the interpreter knows how to access and modify that field. - -Concretely, here is how a trivial object structure would be augmented -with the required field:: - - typedef struct { - PyObject_HEAD - PyObject *weakreflist; /* List of weak references */ - } TrivialObject; - -And the corresponding member in the statically-declared type object:: +Concretely, here is how the statically declared type object would look:: static PyTypeObject TrivialType = { PyVarObject_HEAD_INIT(NULL, 0) /* ... other members omitted for brevity ... */ - .tp_weaklistoffset = offsetof(TrivialObject, weakreflist), + .tp_flags = Py_TPFLAGS_MANAGED_WEAKREF | ..., }; + The only further addition is that ``tp_dealloc`` needs to clear any weak -references (by calling :c:func:`PyObject_ClearWeakRefs`) if the field is -non-``NULL``:: +references (by calling :c:func:`PyObject_ClearWeakRefs`):: static void Trivial_dealloc(TrivialObject *self) { /* Clear weakrefs first before calling any destructors */ - if (self->weakreflist != NULL) - PyObject_ClearWeakRefs((PyObject *) self); + PyObject_ClearWeakRefs((PyObject *) self); /* ... remainder of destruction code omitted for brevity ... */ Py_TYPE(self)->tp_free((PyObject *) self); } diff --git a/Doc/extending/windows.rst b/Doc/extending/windows.rst index 28d0350f6f114d..1129b0968bc4e6 100644 --- a/Doc/extending/windows.rst +++ b/Doc/extending/windows.rst @@ -34,10 +34,10 @@ A Cookbook Approach =================== There are two approaches to building extension modules on Windows, just as there -are on Unix: use the :mod:`distutils` package to control the build process, or -do things manually. The distutils approach works well for most extensions; -documentation on using :mod:`distutils` to build and package extension modules -is available in :ref:`distutils-index`. If you find you really need to do +are on Unix: use the ``setuptools`` package to control the build process, or +do things manually. The setuptools approach works well for most extensions; +documentation on using ``setuptools`` to build and package extension modules +is available in :ref:`setuptools-index`. If you find you really need to do things manually, it may be instructive to study the project file for the :source:`winsound ` standard library module. diff --git a/Doc/faq/design.rst b/Doc/faq/design.rst index ff83a1b8134b77..9da1d01abd6f51 100644 --- a/Doc/faq/design.rst +++ b/Doc/faq/design.rst @@ -313,7 +313,7 @@ you're too lazy to define a function. Functions are already first class objects in Python, and can be declared in a local scope. Therefore the only advantage of using a lambda instead of a -locally-defined function is that you don't need to invent a name for the +locally defined function is that you don't need to invent a name for the function -- but that's just a local variable to which the function object (which is exactly the same type of object that a lambda expression yields) is assigned! @@ -321,11 +321,10 @@ is exactly the same type of object that a lambda expression yields) is assigned! Can Python be compiled to machine code, C or some other language? ----------------------------------------------------------------- -`Cython `_ compiles a modified version of Python with -optional annotations into C extensions. `Nuitka `_ is +`Cython `_ compiles a modified version of Python with +optional annotations into C extensions. `Nuitka `_ is an up-and-coming compiler of Python into C++ code, aiming to support the full -Python language. For compiling to Java you can consider -`VOC `_. +Python language. How does Python manage memory? @@ -339,8 +338,8 @@ cycles and deletes the objects involved. The :mod:`gc` module provides functions to perform a garbage collection, obtain debugging statistics, and tune the collector's parameters. -Other implementations (such as `Jython `_ or -`PyPy `_), however, can rely on a different mechanism +Other implementations (such as `Jython `_ or +`PyPy `_), however, can rely on a different mechanism such as a full-blown garbage collector. This difference can cause some subtle porting problems if your Python code depends on the behavior of the reference counting implementation. diff --git a/Doc/faq/extending.rst b/Doc/faq/extending.rst index 1d2aca6f4c8d97..318e35508eae5b 100644 --- a/Doc/faq/extending.rst +++ b/Doc/faq/extending.rst @@ -41,7 +41,7 @@ on what you're trying to do. .. XXX make sure these all work -`Cython `_ and its relative `Pyrex +`Cython `_ and its relative `Pyrex `_ are compilers that accept a slightly modified form of Python and generate the corresponding C code. Cython and Pyrex make it possible to write an extension without having @@ -49,10 +49,10 @@ to learn Python's C API. If you need to interface to some C or C++ library for which no Python extension currently exists, you can try wrapping the library's data types and functions -with a tool such as `SWIG `_. `SIP +with a tool such as `SWIG `_. `SIP `__, `CXX `_ `Boost -`_, or `Weave +`_, or `Weave `_ are also alternatives for wrapping C++ libraries. @@ -286,6 +286,6 @@ Can I create an object class with some methods implemented in C and others in Py Yes, you can inherit from built-in classes such as :class:`int`, :class:`list`, :class:`dict`, etc. -The Boost Python Library (BPL, http://www.boost.org/libs/python/doc/index.html) +The Boost Python Library (BPL, https://www.boost.org/libs/python/doc/index.html) provides a way of doing this from C++ (i.e. you can inherit from an extension class written in C++ using the BPL). diff --git a/Doc/faq/general.rst b/Doc/faq/general.rst index bc4130aaa45c89..6c7e4fc67c0a67 100644 --- a/Doc/faq/general.rst +++ b/Doc/faq/general.rst @@ -113,8 +113,8 @@ to many different classes of problems. The language comes with a large standard library that covers areas such as string processing (regular expressions, Unicode, calculating differences between -files), internet protocols (HTTP, FTP, SMTP, XML-RPC, POP, IMAP, CGI -programming), software engineering (unit testing, logging, profiling, parsing +files), internet protocols (HTTP, FTP, SMTP, XML-RPC, POP, IMAP), +software engineering (unit testing, logging, profiling, parsing Python code), and operating system interfaces (system calls, filesystems, TCP/IP sockets). Look at the table of contents for :ref:`library-index` to get an idea of what's available. A wide variety of third-party extensions are also @@ -330,7 +330,7 @@ different companies and organizations. High-profile Python projects include `the Mailman mailing list manager `_ and `the Zope application server -`_. Several Linux distributions, most notably `Red Hat +`_. Several Linux distributions, most notably `Red Hat `_, have written part or all of their installer and system administration software in Python. Companies that use Python internally include Google, Yahoo, and Lucasfilm Ltd. diff --git a/Doc/faq/library.rst b/Doc/faq/library.rst index b9e541c150dc43..8167bf22f0b1ad 100644 --- a/Doc/faq/library.rst +++ b/Doc/faq/library.rst @@ -483,8 +483,14 @@ including :func:`~shutil.copyfile`, :func:`~shutil.copytree`, and How do I copy a file? --------------------- -The :mod:`shutil` module contains a :func:`~shutil.copyfile` function. Note -that on MacOS 9 it doesn't copy the resource fork and Finder info. +The :mod:`shutil` module contains a :func:`~shutil.copyfile` function. +Note that on Windows NTFS volumes, it does not copy +`alternate data streams +`_ +nor `resource forks `__ +on macOS HFS+ volumes, though both are now rarely used. +It also doesn't copy file permissions and metadata, though using +:func:`shutil.copy2` instead will preserve most (though not all) of it. How do I read (or write) binary data? @@ -664,7 +670,7 @@ A summary of available frameworks is maintained by Paul Boddie at https://wiki.python.org/moin/WebProgramming\ . Cameron Laird maintains a useful set of pages about Python web technologies at -http://phaseit.net/claird/comp.lang.python/web_python. +https://web.archive.org/web/20210224183619/http://phaseit.net/claird/comp.lang.python/web_python. How can I mimic CGI form submission (METHOD=POST)? diff --git a/Doc/faq/programming.rst b/Doc/faq/programming.rst index f87eaff9531fce..6514c00d1114e2 100644 --- a/Doc/faq/programming.rst +++ b/Doc/faq/programming.rst @@ -56,7 +56,7 @@ Are there tools to help find bugs or perform static analysis? Yes. -`Pylint `_ and +`Pylint `_ and `Pyflakes `_ do basic checking that will help you catch bugs sooner. @@ -95,7 +95,7 @@ The following packages can help with the creation of console and GUI executables: * `Nuitka `_ (Cross-platform) -* `PyInstaller `_ (Cross-platform) +* `PyInstaller `_ (Cross-platform) * `PyOxidizer `_ (Cross-platform) * `cx_Freeze `_ (Cross-platform) * `py2app `_ (macOS only) @@ -294,7 +294,7 @@ It's good practice if you import modules in the following order: 1. standard library modules -- e.g. ``sys``, ``os``, ``getopt``, ``re`` 2. third-party library modules (anything installed in Python's site-packages directory) -- e.g. mx.DateTime, ZODB, PIL.Image, etc. -3. locally-developed modules +3. locally developed modules It is sometimes necessary to move imports to a function or class to avoid problems with circular imports. Gordon McMillan says: @@ -409,8 +409,9 @@ What is the difference between arguments and parameters? :term:`Parameters ` are defined by the names that appear in a function definition, whereas :term:`arguments ` are the values -actually passed to a function when calling it. Parameters define what types of -arguments a function can accept. For example, given the function definition:: +actually passed to a function when calling it. Parameters define what +:term:`kind of arguments ` a function can accept. For +example, given the function definition:: def func(foo, bar=None, **kwargs): pass @@ -770,7 +771,7 @@ What does the slash(/) in the parameter list of a function mean? A slash in the argument list of a function denotes that the parameters prior to it are positional-only. Positional-only parameters are the ones without an -externally-usable name. Upon calling a function that accepts positional-only +externally usable name. Upon calling a function that accepts positional-only parameters, arguments are mapped to parameters based solely on their position. For example, :func:`divmod` is a function that accepts positional-only parameters. Its documentation looks like this:: @@ -1065,7 +1066,7 @@ performance levels: detrimental to readability). If you have reached the limit of what pure Python can allow, there are tools -to take you further away. For example, `Cython `_ can +to take you further away. For example, `Cython `_ can compile a slightly modified version of Python code into a C extension, and can be used on many different platforms. Cython can take advantage of compilation (and optional type annotations) to make your code significantly diff --git a/Doc/glossary.rst b/Doc/glossary.rst index 27e06c9ffcf4e9..e0dd4fc96760e7 100644 --- a/Doc/glossary.rst +++ b/Doc/glossary.rst @@ -532,7 +532,7 @@ Glossary machines. However, some extension modules, either standard or third-party, - are designed so as to release the GIL when doing computationally-intensive + are designed so as to release the GIL when doing computationally intensive tasks such as compression or hashing. Also, the GIL is always released when doing I/O. @@ -566,9 +566,9 @@ Glossary from their :func:`id`. IDLE - An Integrated Development Environment for Python. IDLE is a basic editor - and interpreter environment which ships with the standard distribution of - Python. + An Integrated Development and Learning Environment for Python. + :ref:`idle` is a basic editor and interpreter environment + which ships with the standard distribution of Python. immutable An object with a fixed value. Immutable objects include numbers, strings and diff --git a/Doc/howto/clinic.rst b/Doc/howto/clinic.rst index 7959bc3a5c5b3e..d634c4b47db90e 100644 --- a/Doc/howto/clinic.rst +++ b/Doc/howto/clinic.rst @@ -541,7 +541,7 @@ Let's dive in! 16. Compile, then run the relevant portions of the regression-test suite. This change should not introduce any new compile-time warnings or errors, - and there should be no externally-visible change to Python's behavior. + and there should be no externally visible change to Python's behavior. Well, except for one difference: ``inspect.signature()`` run on your function should now provide a valid signature! @@ -1070,11 +1070,6 @@ None of these take parameters. For the first three, return -1 to indicate error. For ``DecodeFSDefault``, the return type is ``const char *``; return a ``NULL`` pointer to indicate an error. -(There's also an experimental ``NoneType`` converter, which lets you -return ``Py_None`` on success or ``NULL`` on failure, without having -to increment the reference count on ``Py_None``. I'm not sure it adds -enough clarity to be worth using.) - To see all the return converters Argument Clinic supports, along with their parameters (if any), just run ``Tools/clinic/clinic.py --converters`` for the full list. @@ -1117,7 +1112,7 @@ Here's the syntax for cloning a function:: ``module.class`` in the sample just to illustrate that you must use the full path to *both* functions.) -Sorry, there's no syntax for partially-cloning a function, or cloning a function +Sorry, there's no syntax for partially cloning a function, or cloning a function then modifying it. Cloning is an all-or nothing proposition. Also, the function you are cloning from must have been previously defined @@ -1315,7 +1310,7 @@ to specify in your subclass. Here's the current list: there is no default, but not specifying a default may result in an "uninitialized variable" warning. This can easily happen when using option groups—although - properly-written code will never actually use this value, + properly written code will never actually use this value, the variable does get passed in to the impl, and the C compiler will complain about the "use" of the uninitialized value. This value should always be a diff --git a/Doc/howto/cporting.rst b/Doc/howto/cporting.rst index ce7700fc599062..7773620b40b973 100644 --- a/Doc/howto/cporting.rst +++ b/Doc/howto/cporting.rst @@ -22,5 +22,5 @@ We recommend the following resources for porting extension modules to Python 3: .. _Migrating C extensions: http://python3porting.com/cextensions.html .. _Porting guide: https://py3c.readthedocs.io/en/latest/guide.html -.. _Cython: http://cython.org/ +.. _Cython: https://cython.org/ .. _CFFI: https://cffi.readthedocs.io/en/latest/ diff --git a/Doc/howto/curses.rst b/Doc/howto/curses.rst index 26c4ece5ae6df4..83d80471ffc8ee 100644 --- a/Doc/howto/curses.rst +++ b/Doc/howto/curses.rst @@ -536,12 +536,12 @@ Patches adding support for these would be welcome; see `the Python Developer's Guide `_ to learn more about submitting patches to Python. -* `Writing Programs with NCURSES `_: +* `Writing Programs with NCURSES `_: a lengthy tutorial for C programmers. * `The ncurses man page `_ -* `The ncurses FAQ `_ +* `The ncurses FAQ `_ * `"Use curses... don't swear" `_: video of a PyCon 2013 talk on controlling terminals using curses or Urwid. -* `"Console Applications with Urwid" `_: +* `"Console Applications with Urwid" `_: video of a PyCon CA 2012 talk demonstrating some applications written using Urwid. diff --git a/Doc/howto/descriptor.rst b/Doc/howto/descriptor.rst index 5e9b110f0fe254..91a6c31c33b8bd 100644 --- a/Doc/howto/descriptor.rst +++ b/Doc/howto/descriptor.rst @@ -582,11 +582,18 @@ a pure Python equivalent: .. testcode:: + def find_name_in_mro(cls, name, default): + "Emulate _PyType_Lookup() in Objects/typeobject.c" + for base in cls.__mro__: + if name in vars(base): + return vars(base)[name] + return default + def object_getattribute(obj, name): "Emulate PyObject_GenericGetAttr() in Objects/object.c" null = object() objtype = type(obj) - cls_var = getattr(objtype, name, null) + cls_var = find_name_in_mro(objtype, name, null) descr_get = getattr(type(cls_var), '__get__', null) if descr_get is not null: if (hasattr(type(cls_var), '__set__') @@ -663,6 +670,15 @@ a pure Python equivalent: def __getattr__(self, name): return ('getattr_hook', self, name) + class D1: + def __get__(self, obj, objtype=None): + return type(self), obj, objtype + + class U1: + x = D1() + + class U2(U1): + pass .. doctest:: :hide: @@ -696,6 +712,10 @@ a pure Python equivalent: >>> b.g == b['g'] == ('getattr_hook', b, 'g') True + >>> u2 = U2() + >>> object_getattribute(u2, 'x') == u2.x == (D1, u2, U2) + True + Note, there is no :meth:`__getattr__` hook in the :meth:`__getattribute__` code. That is why calling :meth:`__getattribute__` directly or with ``super().__getattribute__`` will bypass :meth:`__getattr__` entirely. diff --git a/Doc/howto/enum.rst b/Doc/howto/enum.rst index 7b1cf75fa81f08..376934a0e79365 100644 --- a/Doc/howto/enum.rst +++ b/Doc/howto/enum.rst @@ -945,23 +945,12 @@ but remain normal attributes. """""""""""""""""""" Enum members are instances of their enum class, and are normally accessed as -``EnumClass.member``. In Python versions ``3.5`` to ``3.10`` you could access -members from other members -- this practice was discouraged, and in ``3.11`` -:class:`Enum` returns to not allowing it:: - - >>> class FieldTypes(Enum): - ... name = 0 - ... value = 1 - ... size = 2 - ... - >>> FieldTypes.value.size - Traceback (most recent call last): - ... - AttributeError: member has no attribute 'size' - +``EnumClass.member``. In Python versions starting with ``3.5`` you could access +members from other members -- this practice is discouraged, is deprecated +in ``3.12``, and will be removed in ``3.14``. .. versionchanged:: 3.5 -.. versionchanged:: 3.11 +.. versionchanged:: 3.12 Creating members that are mixed with other data types diff --git a/Doc/howto/functional.rst b/Doc/howto/functional.rst index 695b9b31a762bd..7d30c343e372fe 100644 --- a/Doc/howto/functional.rst +++ b/Doc/howto/functional.rst @@ -315,9 +315,15 @@ line of a file like this:: Sets can take their contents from an iterable and let you iterate over the set's elements:: - S = {2, 3, 5, 7, 11, 13} - for i in S: - print(i) + >>> S = {2, 3, 5, 7, 11, 13} + >>> for i in S: + ... print(i) + 2 + 3 + 5 + 7 + 11 + 13 @@ -335,18 +341,18 @@ List comprehensions and generator expressions (short form: "listcomps" and functional programming language Haskell (https://www.haskell.org/). You can strip all the whitespace from a stream of strings with the following code:: - line_list = [' line 1\n', 'line 2 \n', ...] + >>> line_list = [' line 1\n', 'line 2 \n', ' \n', ''] - # Generator expression -- returns iterator - stripped_iter = (line.strip() for line in line_list) + >>> # Generator expression -- returns iterator + >>> stripped_iter = (line.strip() for line in line_list) - # List comprehension -- returns list - stripped_list = [line.strip() for line in line_list] + >>> # List comprehension -- returns list + >>> stripped_list = [line.strip() for line in line_list] You can select only certain elements by adding an ``"if"`` condition:: - stripped_list = [line.strip() for line in line_list - if line != ""] + >>> stripped_list = [line.strip() for line in line_list + ... if line != ""] With a list comprehension, you get back a Python list; ``stripped_list`` is a list containing the resulting lines, not an iterator. Generator expressions @@ -363,7 +369,8 @@ have the form:: if condition1 for expr2 in sequence2 if condition2 - for expr3 in sequence3 ... + for expr3 in sequence3 + ... if condition3 for exprN in sequenceN if conditionN ) @@ -734,7 +741,7 @@ further because you risk skipping a discarded element. The itertools module ==================== -The :mod:`itertools` module contains a number of commonly-used iterators as well +The :mod:`itertools` module contains a number of commonly used iterators as well as functions for combining several iterators. This section will introduce the module's contents by showing small examples. @@ -1208,7 +1215,7 @@ flow inside a program. The book uses Scheme for its examples, but many of the design approaches described in these chapters are applicable to functional-style Python code. -http://www.defmacro.org/ramblings/fp.html: A general introduction to functional +https://www.defmacro.org/ramblings/fp.html: A general introduction to functional programming that uses Java examples and has a lengthy historical introduction. https://en.wikipedia.org/wiki/Functional_programming: General Wikipedia entry @@ -1216,12 +1223,14 @@ describing functional programming. https://en.wikipedia.org/wiki/Coroutine: Entry for coroutines. +https://en.wikipedia.org/wiki/Partial_application: Entry for the concept of partial function application. + https://en.wikipedia.org/wiki/Currying: Entry for the concept of currying. Python-specific --------------- -http://gnosis.cx/TPiP/: The first chapter of David Mertz's book +https://gnosis.cx/TPiP/: The first chapter of David Mertz's book :title-reference:`Text Processing in Python` discusses functional programming for text processing, in the section titled "Utilizing Higher-Order Functions in Text Processing". diff --git a/Doc/howto/index.rst b/Doc/howto/index.rst index eae8f143ee206f..f521276a5a83c5 100644 --- a/Doc/howto/index.rst +++ b/Doc/howto/index.rst @@ -30,5 +30,7 @@ Currently, the HOWTOs are: ipaddress.rst clinic.rst instrumentation.rst + perf_profiling.rst annotations.rst + isolating-extensions.rst diff --git a/Doc/howto/instrumentation.rst b/Doc/howto/instrumentation.rst index 4a59ae82f96e2d..4ce15c69dac90b 100644 --- a/Doc/howto/instrumentation.rst +++ b/Doc/howto/instrumentation.rst @@ -123,7 +123,7 @@ Sufficiently modern readelf can print the metadata:: Arguments: 8@%rbp 8@%r12 -4@%eax The above metadata contains information for SystemTap describing how it -can patch strategically-placed machine code instructions to enable the +can patch strategically placed machine code instructions to enable the tracing hooks used by a SystemTap script. @@ -410,7 +410,7 @@ needing to directly name the static markers: The following script uses the tapset above to provide a top-like view of all -running CPython code, showing the top 20 most frequently-entered bytecode +running CPython code, showing the top 20 most frequently entered bytecode frames, each second, across the whole system: .. code-block:: none diff --git a/Doc/howto/isolating-extensions.rst b/Doc/howto/isolating-extensions.rst new file mode 100644 index 00000000000000..8ee7e5e28479a5 --- /dev/null +++ b/Doc/howto/isolating-extensions.rst @@ -0,0 +1,536 @@ +.. highlight:: c + +*************************** +Isolating Extension Modules +*************************** + +.. topic:: Abstract + + Traditionally, state belonging to Python extension modules was kept in C + ``static`` variables, which have process-wide scope. This document + describes problems of such per-process state and shows a safer way: + per-module state. + + The document also describes how to switch to per-module state where + possible. This transition involves allocating space for that state, potentially + switching from static types to heap types, and—perhaps most + importantly—accessing per-module state from code. + + +Who should read this +==================== + +This guide is written for maintainers of :ref:`C-API ` extensions +who would like to make that extension safer to use in applications where +Python itself is used as a library. + + +Background +========== + +An *interpreter* is the context in which Python code runs. It contains +configuration (e.g. the import path) and runtime state (e.g. the set of +imported modules). + +Python supports running multiple interpreters in one process. There are +two cases to think about—users may run interpreters: + +- in sequence, with several :c:func:`Py_InitializeEx`/:c:func:`Py_FinalizeEx` + cycles, and +- in parallel, managing "sub-interpreters" using + :c:func:`Py_NewInterpreter`/:c:func:`Py_EndInterpreter`. + +Both cases (and combinations of them) would be most useful when +embedding Python within a library. Libraries generally shouldn't make +assumptions about the application that uses them, which include +assuming a process-wide "main Python interpreter". + +Historically, Python extension modules don't handle this use case well. +Many extension modules (and even some stdlib modules) use *per-process* +global state, because C ``static`` variables are extremely easy to use. +Thus, data that should be specific to an interpreter ends up being shared +between interpreters. Unless the extension developer is careful, it is very +easy to introduce edge cases that lead to crashes when a module is loaded in +more than one interpreter in the same process. + +Unfortunately, *per-interpreter* state is not easy to achieve. Extension +authors tend to not keep multiple interpreters in mind when developing, +and it is currently cumbersome to test the behavior. + +Enter Per-Module State +---------------------- + +Instead of focusing on per-interpreter state, Python's C API is evolving +to better support the more granular *per-module* state. +This means that C-level data is be attached to a *module object*. +Each interpreter creates its own module object, keeping the data separate. +For testing the isolation, multiple module objects corresponding to a single +extension can even be loaded in a single interpreter. + +Per-module state provides an easy way to think about lifetime and +resource ownership: the extension module will initialize when a +module object is created, and clean up when it's freed. In this regard, +a module is just like any other :c:expr:`PyObject *`; there are no "on +interpreter shutdown" hooks to think—or forget—about. + +Note that there are use cases for different kinds of "globals": +per-process, per-interpreter, per-thread or per-task state. +With per-module state as the default, these are still possible, +but you should treat them as exceptional cases: +if you need them, you should give them additional care and testing. +(Note that this guide does not cover them.) + + +Isolated Module Objects +----------------------- + +The key point to keep in mind when developing an extension module is +that several module objects can be created from a single shared library. +For example: + +.. code-block:: pycon + + >>> import sys + >>> import binascii + >>> old_binascii = binascii + >>> del sys.modules['binascii'] + >>> import binascii # create a new module object + >>> old_binascii == binascii + False + +As a rule of thumb, the two modules should be completely independent. +All objects and state specific to the module should be encapsulated +within the module object, not shared with other module objects, and +cleaned up when the module object is deallocated. +Since this just is a rule of thumb, exceptions are possible +(see `Managing Global State`_), but they will need more +thought and attention to edge cases. + +While some modules could do with less stringent restrictions, isolated +modules make it easier to set clear expectations and guidelines that +work across a variety of use cases. + + +Surprising Edge Cases +--------------------- + +Note that isolated modules do create some surprising edge cases. Most +notably, each module object will typically not share its classes and +exceptions with other similar modules. Continuing from the +`example above `__, +note that ``old_binascii.Error`` and ``binascii.Error`` are +separate objects. In the following code, the exception is *not* caught: + +.. code-block:: pycon + + >>> old_binascii.Error == binascii.Error + False + >>> try: + ... old_binascii.unhexlify(b'qwertyuiop') + ... except binascii.Error: + ... print('boo') + ... + Traceback (most recent call last): + File "", line 2, in + binascii.Error: Non-hexadecimal digit found + +This is expected. Notice that pure-Python modules behave the same way: +it is a part of how Python works. + +The goal is to make extension modules safe at the C level, not to make +hacks behave intuitively. Mutating ``sys.modules`` "manually" counts +as a hack. + + +Making Modules Safe with Multiple Interpreters +============================================== + + +Managing Global State +--------------------- + +Sometimes, the state associated with a Python module is not specific to that module, but +to the entire process (or something else "more global" than a module). +For example: + +- The ``readline`` module manages *the* terminal. +- A module running on a circuit board wants to control *the* on-board + LED. + +In these cases, the Python module should provide *access* to the global +state, rather than *own* it. If possible, write the module so that +multiple copies of it can access the state independently (along with +other libraries, whether for Python or other languages). If that is not +possible, consider explicit locking. + +If it is necessary to use process-global state, the simplest way to +avoid issues with multiple interpreters is to explicitly prevent a +module from being loaded more than once per process—see +`Opt-Out: Limiting to One Module Object per Process`_. + + +Managing Per-Module State +------------------------- + +To use per-module state, use +:ref:`multi-phase extension module initialization `. +This signals that your module supports multiple interpreters correctly. + +Set ``PyModuleDef.m_size`` to a positive number to request that many +bytes of storage local to the module. Usually, this will be set to the +size of some module-specific ``struct``, which can store all of the +module's C-level state. In particular, it is where you should put +pointers to classes (including exceptions, but excluding static types) +and settings (e.g. ``csv``'s :py:data:`~csv.field_size_limit`) +which the C code needs to function. + +.. note:: + Another option is to store state in the module's ``__dict__``, + but you must avoid crashing when users modify ``__dict__`` from + Python code. This usually means error- and type-checking at the C level, + which is easy to get wrong and hard to test sufficiently. + + However, if module state is not needed in C code, storing it in + ``__dict__`` only is a good idea. + +If the module state includes ``PyObject`` pointers, the module object +must hold references to those objects and implement the module-level hooks +``m_traverse``, ``m_clear`` and ``m_free``. These work like +``tp_traverse``, ``tp_clear`` and ``tp_free`` of a class. Adding them will +require some work and make the code longer; this is the price for +modules which can be unloaded cleanly. + +An example of a module with per-module state is currently available as +`xxlimited `__; +example module initialization shown at the bottom of the file. + + +Opt-Out: Limiting to One Module Object per Process +-------------------------------------------------- + +A non-negative ``PyModuleDef.m_size`` signals that a module supports +multiple interpreters correctly. If this is not yet the case for your +module, you can explicitly make your module loadable only once per +process. For example:: + + static int loaded = 0; + + static int + exec_module(PyObject* module) + { + if (loaded) { + PyErr_SetString(PyExc_ImportError, + "cannot load module more than once per process"); + return -1; + } + loaded = 1; + // ... rest of initialization + } + + +Module State Access from Functions +---------------------------------- + +Accessing the state from module-level functions is straightforward. +Functions get the module object as their first argument; for extracting +the state, you can use ``PyModule_GetState``:: + + static PyObject * + func(PyObject *module, PyObject *args) + { + my_struct *state = (my_struct*)PyModule_GetState(module); + if (state == NULL) { + return NULL; + } + // ... rest of logic + } + +.. note:: + ``PyModule_GetState`` may return ``NULL`` without setting an + exception if there is no module state, i.e. ``PyModuleDef.m_size`` was + zero. In your own module, you're in control of ``m_size``, so this is + easy to prevent. + + +Heap Types +========== + +Traditionally, types defined in C code are *static*; that is, +``static PyTypeObject`` structures defined directly in code and +initialized using ``PyType_Ready()``. + +Such types are necessarily shared across the process. Sharing them +between module objects requires paying attention to any state they own +or access. To limit the possible issues, static types are immutable at +the Python level: for example, you can't set ``str.myattribute = 123``. + +.. impl-detail:: + Sharing truly immutable objects between interpreters is fine, + as long as they don't provide access to mutable objects. + However, in CPython, every Python object has a mutable implementation + detail: the reference count. Changes to the refcount are guarded by the GIL. + Thus, code that shares any Python objects across interpreters implicitly + depends on CPython's current, process-wide GIL. + +Because they are immutable and process-global, static types cannot access +"their" module state. +If any method of such a type requires access to module state, +the type must be converted to a *heap-allocated type*, or *heap type* +for short. These correspond more closely to classes created by Python's +``class`` statement. + +For new modules, using heap types by default is a good rule of thumb. + + +Changing Static Types to Heap Types +----------------------------------- + +Static types can be converted to heap types, but note that +the heap type API was not designed for "lossless" conversion +from static types—that is, creating a type that works exactly like a given +static type. +So, when rewriting the class definition in a new API, +you are likely to unintentionally change a few details (e.g. pickleability +or inherited slots). +Always test the details that are important to you. + +Watch out for the following two points in particular (but note that this is not +a comprehensive list): + +* Unlike static types, heap type objects are mutable by default. + Use the :c:data:`Py_TPFLAGS_IMMUTABLETYPE` flag to prevent mutability. +* Heap types inherit :c:member:`~PyTypeObject.tp_new` by default, + so it may become possible to instantiate them from Python code. + You can prevent this with the :c:data:`Py_TPFLAGS_DISALLOW_INSTANTIATION` flag. + + +Defining Heap Types +------------------- + +Heap types can be created by filling a :c:struct:`PyType_Spec` structure, a +description or "blueprint" of a class, and calling +:c:func:`PyType_FromModuleAndSpec` to construct a new class object. + +.. note:: + Other functions, like :c:func:`PyType_FromSpec`, can also create + heap types, but :c:func:`PyType_FromModuleAndSpec` associates the module + with the class, allowing access to the module state from methods. + +The class should generally be stored in *both* the module state (for +safe access from C) and the module's ``__dict__`` (for access from +Python code). + + +Garbage-Collection Protocol +--------------------------- + +Instances of heap types hold a reference to their type. +This ensures that the type isn't destroyed before all its instances are, +but may result in reference cycles that need to be broken by the +garbage collector. + +To avoid memory leaks, instances of heap types must implement the +garbage collection protocol. +That is, heap types should: + +- Have the :c:data:`Py_TPFLAGS_HAVE_GC` flag. +- Define a traverse function using ``Py_tp_traverse``, which + visits the type (e.g. using :c:expr:`Py_VISIT(Py_TYPE(self))`). + +Please refer to the :ref:`the documentation ` of +:c:data:`Py_TPFLAGS_HAVE_GC` and :c:member:`~PyTypeObject.tp_traverse` +for additional considerations. + +If your traverse function delegates to the ``tp_traverse`` of its base class +(or another type), ensure that ``Py_TYPE(self)`` is visited only once. +Note that only heap type are expected to visit the type in ``tp_traverse``. + +For example, if your traverse function includes:: + + base->tp_traverse(self, visit, arg) + +...and ``base`` may be a static type, then it should also include:: + + if (base->tp_flags & Py_TPFLAGS_HEAPTYPE) { + // a heap type's tp_traverse already visited Py_TYPE(self) + } else { + Py_VISIT(Py_TYPE(self)); + } + +It is not necessary to handle the type's reference count in ``tp_new`` +and ``tp_clear``. + + +Module State Access from Classes +-------------------------------- + +If you have a type object defined with :c:func:`PyType_FromModuleAndSpec`, +you can call :c:func:`PyType_GetModule` to get the associated module, and then +:c:func:`PyModule_GetState` to get the module's state. + +To save a some tedious error-handling boilerplate code, you can combine +these two steps with :c:func:`PyType_GetModuleState`, resulting in:: + + my_struct *state = (my_struct*)PyType_GetModuleState(type); + if (state === NULL) { + return NULL; + } + + +Module State Access from Regular Methods +---------------------------------------- + +Accessing the module-level state from methods of a class is somewhat more +complicated, but is possible thanks to API introduced in Python 3.9. +To get the state, you need to first get the *defining class*, and then +get the module state from it. + +The largest roadblock is getting *the class a method was defined in*, or +that method's "defining class" for short. The defining class can have a +reference to the module it is part of. + +Do not confuse the defining class with :c:expr:`Py_TYPE(self)`. If the method +is called on a *subclass* of your type, ``Py_TYPE(self)`` will refer to +that subclass, which may be defined in different module than yours. + +.. note:: + The following Python code can illustrate the concept. + ``Base.get_defining_class`` returns ``Base`` even + if ``type(self) == Sub``: + + .. code-block:: python + + class Base: + def get_type_of_self(self): + return type(self) + + def get_defining_class(self): + return __class__ + + class Sub(Base): + pass + +For a method to get its "defining class", it must use the +:c:data:`METH_METHOD | METH_FASTCALL | METH_KEYWORDS` +:c:type:`calling convention ` +and the corresponding :c:type:`PyCMethod` signature:: + + PyObject *PyCMethod( + PyObject *self, // object the method was called on + PyTypeObject *defining_class, // defining class + PyObject *const *args, // C array of arguments + Py_ssize_t nargs, // length of "args" + PyObject *kwnames) // NULL, or dict of keyword arguments + +Once you have the defining class, call :c:func:`PyType_GetModuleState` to get +the state of its associated module. + +For example:: + + static PyObject * + example_method(PyObject *self, + PyTypeObject *defining_class, + PyObject *const *args, + Py_ssize_t nargs, + PyObject *kwnames) + { + my_struct *state = (my_struct*)PyType_GetModuleState(defining_class); + if (state === NULL) { + return NULL; + } + ... // rest of logic + } + + PyDoc_STRVAR(example_method_doc, "..."); + + static PyMethodDef my_methods[] = { + {"example_method", + (PyCFunction)(void(*)(void))example_method, + METH_METHOD|METH_FASTCALL|METH_KEYWORDS, + example_method_doc} + {NULL}, + } + + +Module State Access from Slot Methods, Getters and Setters +---------------------------------------------------------- + +.. note:: + + This is new in Python 3.11. + + .. After adding to limited API: + + If you use the `limited API __, + you must update ``Py_LIMITED_API`` to ``0x030b0000``, losing ABI + compatibility with earlier versions. + +Slot methods—the fast C equivalents for special methods, such as +:c:member:`~PyNumberMethods.nb_add` for :py:attr:`~object.__add__` or +:c:member:`~PyType.tp_new` for initialization—have a very simple API that +doesn't allow passing in the defining class, unlike with :c:type:`PyCMethod`. +The same goes for getters and setters defined with +:c:type:`PyGetSetDef`. + +To access the module state in these cases, use the +:c:func:`PyType_GetModuleByDef` function, and pass in the module definition. +Once you have the module, call :c:func:`PyModule_GetState` +to get the state:: + + PyObject *module = PyType_GetModuleByDef(Py_TYPE(self), &module_def); + my_struct *state = (my_struct*)PyModule_GetState(module); + if (state === NULL) { + return NULL; + } + +``PyType_GetModuleByDef`` works by searching the +:term:`method resolution order` (i.e. all superclasses) for the first +superclass that has a corresponding module. + +.. note:: + + In very exotic cases (inheritance chains spanning multiple modules + created from the same definition), ``PyType_GetModuleByDef`` might not + return the module of the true defining class. However, it will always + return a module with the same definition, ensuring a compatible + C memory layout. + + +Lifetime of the Module State +---------------------------- + +When a module object is garbage-collected, its module state is freed. +For each pointer to (a part of) the module state, you must hold a reference +to the module object. + +Usually this is not an issue, because types created with +:c:func:`PyType_FromModuleAndSpec`, and their instances, hold a reference +to the module. +However, you must be careful in reference counting when you reference +module state from other places, such as callbacks for external +libraries. + + +Open Issues +=========== + +Several issues around per-module state and heap types are still open. + +Discussions about improving the situation are best held on the `capi-sig +mailing list `__. + + +Per-Class Scope +--------------- + +It is currently (as of Python 3.11) not possible to attach state to individual +*types* without relying on CPython implementation details (which may change +in the future—perhaps, ironically, to allow a proper solution for +per-class scope). + + +Lossless Conversion to Heap Types +--------------------------------- + +The heap type API was not designed for "lossless" conversion from static types; +that is, creating a type that works exactly like a given static type. diff --git a/Doc/howto/logging-cookbook.rst b/Doc/howto/logging-cookbook.rst index 704279240b357b..16df3b730ac80e 100644 --- a/Doc/howto/logging-cookbook.rst +++ b/Doc/howto/logging-cookbook.rst @@ -7,7 +7,8 @@ Logging Cookbook :Author: Vinay Sajip This page contains a number of recipes related to logging, which have been found -useful in the past. +useful in the past. For links to tutorial and reference information, please see +:ref:`cookbook-ref-links`. .. currentmodule:: logging @@ -218,7 +219,7 @@ messages should not. Here's how you can achieve this:: logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s', datefmt='%m-%d %H:%M', - filename='/temp/myapp.log', + filename='/tmp/myapp.log', filemode='w') # define a Handler which writes INFO messages or higher to the sys.stderr console = logging.StreamHandler() @@ -269,6 +270,11 @@ are sent to both destinations. This example uses console and file handlers, but you can use any number and combination of handlers you choose. +Note that the above choice of log filename ``/tmp/myapp.log`` implies use of a +standard location for temporary files on POSIX systems. On Windows, you may need to +choose a different directory name for the log - just ensure that the directory exists +and that you have the permissions to create and update files in it. + Configuration server example ---------------------------- @@ -713,6 +719,254 @@ which, when run, produces something like: 2010-09-06 22:38:15,301 d.e.f DEBUG IP: 123.231.231.123 User: fred A message at DEBUG level with 2 parameters 2010-09-06 22:38:15,301 d.e.f INFO IP: 123.231.231.123 User: fred A message at INFO level with 2 parameters +Use of ``contextvars`` +---------------------- + +Since Python 3.7, the :mod:`contextvars` module has provided context-local storage +which works for both :mod:`threading` and :mod:`asyncio` processing needs. This type +of storage may thus be generally preferable to thread-locals. The following example +shows how, in a multi-threaded environment, logs can populated with contextual +information such as, for example, request attributes handled by web applications. + +For the purposes of illustration, say that you have different web applications, each +independent of the other but running in the same Python process and using a library +common to them. How can each of these applications have their own log, where all +logging messages from the library (and other request processing code) are directed to +the appropriate application's log file, while including in the log additional +contextual information such as client IP, HTTP request method and client username? + +Let's assume that the library can be simulated by the following code: + +.. code-block:: python + + # webapplib.py + import logging + import time + + logger = logging.getLogger(__name__) + + def useful(): + # Just a representative event logged from the library + logger.debug('Hello from webapplib!') + # Just sleep for a bit so other threads get to run + time.sleep(0.01) + +We can simulate the multiple web applications by means of two simple classes, +``Request`` and ``WebApp``. These simulate how real threaded web applications work - +each request is handled by a thread: + +.. code-block:: python + + # main.py + import argparse + from contextvars import ContextVar + import logging + import os + from random import choice + import threading + import webapplib + + logger = logging.getLogger(__name__) + root = logging.getLogger() + root.setLevel(logging.DEBUG) + + class Request: + """ + A simple dummy request class which just holds dummy HTTP request method, + client IP address and client username + """ + def __init__(self, method, ip, user): + self.method = method + self.ip = ip + self.user = user + + # A dummy set of requests which will be used in the simulation - we'll just pick + # from this list randomly. Note that all GET requests are from 192.168.2.XXX + # addresses, whereas POST requests are from 192.16.3.XXX addresses. Three users + # are represented in the sample requests. + + REQUESTS = [ + Request('GET', '192.168.2.20', 'jim'), + Request('POST', '192.168.3.20', 'fred'), + Request('GET', '192.168.2.21', 'sheila'), + Request('POST', '192.168.3.21', 'jim'), + Request('GET', '192.168.2.22', 'fred'), + Request('POST', '192.168.3.22', 'sheila'), + ] + + # Note that the format string includes references to request context information + # such as HTTP method, client IP and username + + formatter = logging.Formatter('%(threadName)-11s %(appName)s %(name)-9s %(user)-6s %(ip)s %(method)-4s %(message)s') + + # Create our context variables. These will be filled at the start of request + # processing, and used in the logging that happens during that processing + + ctx_request = ContextVar('request') + ctx_appname = ContextVar('appname') + + class InjectingFilter(logging.Filter): + """ + A filter which injects context-specific information into logs and ensures + that only information for a specific webapp is included in its log + """ + def __init__(self, app): + self.app = app + + def filter(self, record): + request = ctx_request.get() + record.method = request.method + record.ip = request.ip + record.user = request.user + record.appName = appName = ctx_appname.get() + return appName == self.app.name + + class WebApp: + """ + A dummy web application class which has its own handler and filter for a + webapp-specific log. + """ + def __init__(self, name): + self.name = name + handler = logging.FileHandler(name + '.log', 'w') + f = InjectingFilter(self) + handler.setFormatter(formatter) + handler.addFilter(f) + root.addHandler(handler) + self.num_requests = 0 + + def process_request(self, request): + """ + This is the dummy method for processing a request. It's called on a + different thread for every request. We store the context information into + the context vars before doing anything else. + """ + ctx_request.set(request) + ctx_appname.set(self.name) + self.num_requests += 1 + logger.debug('Request processing started') + webapplib.useful() + logger.debug('Request processing finished') + + def main(): + fn = os.path.splitext(os.path.basename(__file__))[0] + adhf = argparse.ArgumentDefaultsHelpFormatter + ap = argparse.ArgumentParser(formatter_class=adhf, prog=fn, + description='Simulate a couple of web ' + 'applications handling some ' + 'requests, showing how request ' + 'context can be used to ' + 'populate logs') + aa = ap.add_argument + aa('--count', '-c', default=100, help='How many requests to simulate') + options = ap.parse_args() + + # Create the dummy webapps and put them in a list which we can use to select + # from randomly + app1 = WebApp('app1') + app2 = WebApp('app2') + apps = [app1, app2] + threads = [] + # Add a common handler which will capture all events + handler = logging.FileHandler('app.log', 'w') + handler.setFormatter(formatter) + root.addHandler(handler) + + # Generate calls to process requests + for i in range(options.count): + try: + # Pick an app at random and a request for it to process + app = choice(apps) + request = choice(REQUESTS) + # Process the request in its own thread + t = threading.Thread(target=app.process_request, args=(request,)) + threads.append(t) + t.start() + except KeyboardInterrupt: + break + + # Wait for the threads to terminate + for t in threads: + t.join() + + for app in apps: + print('%s processed %s requests' % (app.name, app.num_requests)) + + if __name__ == '__main__': + main() + +If you run the above, you should find that roughly half the requests go +into :file:`app1.log` and the rest into :file:`app2.log`, and the all the requests are +logged to :file:`app.log`. Each webapp-specific log will contain only log entries for +only that webapp, and the request information will be displayed consistently in the +log (i.e. the information in each dummy request will always appear together in a log +line). This is illustrated by the following shell output: + +.. code-block:: shell + + ~/logging-contextual-webapp$ python main.py + app1 processed 51 requests + app2 processed 49 requests + ~/logging-contextual-webapp$ wc -l *.log + 153 app1.log + 147 app2.log + 300 app.log + 600 total + ~/logging-contextual-webapp$ head -3 app1.log + Thread-3 (process_request) app1 __main__ jim 192.168.3.21 POST Request processing started + Thread-3 (process_request) app1 webapplib jim 192.168.3.21 POST Hello from webapplib! + Thread-5 (process_request) app1 __main__ jim 192.168.3.21 POST Request processing started + ~/logging-contextual-webapp$ head -3 app2.log + Thread-1 (process_request) app2 __main__ sheila 192.168.2.21 GET Request processing started + Thread-1 (process_request) app2 webapplib sheila 192.168.2.21 GET Hello from webapplib! + Thread-2 (process_request) app2 __main__ jim 192.168.2.20 GET Request processing started + ~/logging-contextual-webapp$ head app.log + Thread-1 (process_request) app2 __main__ sheila 192.168.2.21 GET Request processing started + Thread-1 (process_request) app2 webapplib sheila 192.168.2.21 GET Hello from webapplib! + Thread-2 (process_request) app2 __main__ jim 192.168.2.20 GET Request processing started + Thread-3 (process_request) app1 __main__ jim 192.168.3.21 POST Request processing started + Thread-2 (process_request) app2 webapplib jim 192.168.2.20 GET Hello from webapplib! + Thread-3 (process_request) app1 webapplib jim 192.168.3.21 POST Hello from webapplib! + Thread-4 (process_request) app2 __main__ fred 192.168.2.22 GET Request processing started + Thread-5 (process_request) app1 __main__ jim 192.168.3.21 POST Request processing started + Thread-4 (process_request) app2 webapplib fred 192.168.2.22 GET Hello from webapplib! + Thread-6 (process_request) app1 __main__ jim 192.168.3.21 POST Request processing started + ~/logging-contextual-webapp$ grep app1 app1.log | wc -l + 153 + ~/logging-contextual-webapp$ grep app2 app2.log | wc -l + 147 + ~/logging-contextual-webapp$ grep app1 app.log | wc -l + 153 + ~/logging-contextual-webapp$ grep app2 app.log | wc -l + 147 + + +Imparting contextual information in handlers +-------------------------------------------- + +Each :class:`~Handler` has its own chain of filters. +If you want to add contextual information to a :class:`LogRecord` without leaking +it to other handlers, you can use a filter that returns +a new :class:`~LogRecord` instead of modifying it in-place, as shown in the following script:: + + import copy + import logging + + def filter(record: logging.LogRecord): + record = copy.copy(record) + record.user = 'jim' + return record + + if __name__ == '__main__': + logger = logging.getLogger() + logger.setLevel(logging.INFO) + handler = logging.StreamHandler() + formatter = logging.Formatter('%(message)s from %(user)-8s') + handler.setFormatter(formatter) + handler.addFilter(filter) + logger.addHandler(handler) + + logger.info('A log message') .. _multiple-processes: @@ -2424,6 +2678,88 @@ You can of course use the conventional means of decoration:: ... +.. _buffered-smtp: + +Sending logging messages to email, with buffering +------------------------------------------------- + +To illustrate how you can send log messages via email, so that a set number of +messages are sent per email, you can subclass +:class:`~logging.handlers.BufferingHandler`. In the following example, which you can +adapt to suit your specific needs, a simple test harness is provided which allows you +to run the script with command line arguments specifying what you typically need to +send things via SMTP. (Run the downloaded script with the ``-h`` argument to see the +required and optional arguments.) + +.. code-block:: python + + import logging + import logging.handlers + import smtplib + + class BufferingSMTPHandler(logging.handlers.BufferingHandler): + def __init__(self, mailhost, port, username, password, fromaddr, toaddrs, + subject, capacity): + logging.handlers.BufferingHandler.__init__(self, capacity) + self.mailhost = mailhost + self.mailport = port + self.username = username + self.password = password + self.fromaddr = fromaddr + if isinstance(toaddrs, str): + toaddrs = [toaddrs] + self.toaddrs = toaddrs + self.subject = subject + self.setFormatter(logging.Formatter("%(asctime)s %(levelname)-5s %(message)s")) + + def flush(self): + if len(self.buffer) > 0: + try: + smtp = smtplib.SMTP(self.mailhost, self.mailport) + smtp.starttls() + smtp.login(self.username, self.password) + msg = "From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n" % (self.fromaddr, ','.join(self.toaddrs), self.subject) + for record in self.buffer: + s = self.format(record) + msg = msg + s + "\r\n" + smtp.sendmail(self.fromaddr, self.toaddrs, msg) + smtp.quit() + except Exception: + if logging.raiseExceptions: + raise + self.buffer = [] + + if __name__ == '__main__': + import argparse + + ap = argparse.ArgumentParser() + aa = ap.add_argument + aa('host', metavar='HOST', help='SMTP server') + aa('--port', '-p', type=int, default=587, help='SMTP port') + aa('user', metavar='USER', help='SMTP username') + aa('password', metavar='PASSWORD', help='SMTP password') + aa('to', metavar='TO', help='Addressee for emails') + aa('sender', metavar='SENDER', help='Sender email address') + aa('--subject', '-s', + default='Test Logging email from Python logging module (buffering)', + help='Subject of email') + options = ap.parse_args() + logger = logging.getLogger() + logger.setLevel(logging.DEBUG) + h = BufferingSMTPHandler(options.host, options.port, options.user, + options.password, options.sender, + options.to, options.subject, 10) + logger.addHandler(h) + for i in range(102): + logger.info("Info index = %d", i) + h.flush() + h.close() + +If you run this script and your SMTP server is correctly set up, you should find that +it sends eleven emails to the addressee you specify. The first ten emails will each +have ten log messages, and the eleventh will have two messages. That makes up 102 +messages as specified in the script. + .. _utc-formatting: Formatting times using UTC (GMT) via configuration @@ -2995,6 +3331,95 @@ refer to the comments in the code snippet for more detailed information. if __name__=='__main__': main() +Logging to syslog with RFC5424 support +-------------------------------------- + +Although :rfc:`5424` dates from 2009, most syslog servers are configured by detault to +use the older :rfc:`3164`, which hails from 2001. When ``logging`` was added to Python +in 2003, it supported the earlier (and only existing) protocol at the time. Since +RFC5424 came out, as there has not been widespread deployment of it in syslog +servers, the :class:`~logging.handlers.SysLogHandler` functionality has not been +updated. + +RFC 5424 contains some useful features such as support for structured data, and if you +need to be able to log to a syslog server with support for it, you can do so with a +subclassed handler which looks something like this:: + + import datetime + import logging.handlers + import re + import socket + import time + + class SysLogHandler5424(logging.handlers.SysLogHandler): + + tz_offset = re.compile(r'([+-]\d{2})(\d{2})$') + escaped = re.compile(r'([\]"\\])') + + def __init__(self, *args, **kwargs): + self.msgid = kwargs.pop('msgid', None) + self.appname = kwargs.pop('appname', None) + super().__init__(*args, **kwargs) + + def format(self, record): + version = 1 + asctime = datetime.datetime.fromtimestamp(record.created).isoformat() + m = self.tz_offset.match(time.strftime('%z')) + has_offset = False + if m and time.timezone: + hrs, mins = m.groups() + if int(hrs) or int(mins): + has_offset = True + if not has_offset: + asctime += 'Z' + else: + asctime += f'{hrs}:{mins}' + try: + hostname = socket.gethostname() + except Exception: + hostname = '-' + appname = self.appname or '-' + procid = record.process + msgid = '-' + msg = super().format(record) + sdata = '-' + if hasattr(record, 'structured_data'): + sd = record.structured_data + # This should be a dict where the keys are SD-ID and the value is a + # dict mapping PARAM-NAME to PARAM-VALUE (refer to the RFC for what these + # mean) + # There's no error checking here - it's purely for illustration, and you + # can adapt this code for use in production environments + parts = [] + + def replacer(m): + g = m.groups() + return '\\' + g[0] + + for sdid, dv in sd.items(): + part = f'[{sdid}' + for k, v in dv.items(): + s = str(v) + s = self.escaped.sub(replacer, s) + part += f' {k}="{s}"' + part += ']' + parts.append(part) + sdata = ''.join(parts) + return f'{version} {asctime} {hostname} {appname} {procid} {msgid} {sdata} {msg}' + +You'll need to be familiar with RFC 5424 to fully understand the above code, and it +may be that you have slightly different needs (e.g. for how you pass structural data +to the log). Nevertheless, the above should be adaptable to your speciric needs. With +the above handler, you'd pass structured data using something like this:: + + sd = { + 'foo@12345': {'bar': 'baz', 'baz': 'bozz', 'fizz': r'buzz'}, + 'foo@54321': {'rab': 'baz', 'zab': 'bozz', 'zzif': r'buzz'} + } + extra = {'structured_data': sd} + i = 1 + logger.debug('Message %d', i, extra=extra) + .. patterns-to-avoid: @@ -3075,3 +3500,23 @@ the :ref:`existing mechanisms ` for passing contextual information into your logs and restrict the loggers created to those describing areas within your application (generally modules, but occasionally slightly more fine-grained than that). + +.. _cookbook-ref-links: + +Other resources +--------------- + +.. seealso:: + + Module :mod:`logging` + API reference for the logging module. + + Module :mod:`logging.config` + Configuration API for the logging module. + + Module :mod:`logging.handlers` + Useful handlers included with the logging module. + + :ref:`Basic Tutorial ` + + :ref:`Advanced Tutorial ` diff --git a/Doc/howto/logging.rst b/Doc/howto/logging.rst index 125bde29152270..0caff13bd15d82 100644 --- a/Doc/howto/logging.rst +++ b/Doc/howto/logging.rst @@ -8,6 +8,9 @@ Logging HOWTO .. currentmodule:: logging +This page contains tutorial information. For links to reference information and a +logging cookbook, please see :ref:`tutorial-ref-links`. + Basic Logging Tutorial ---------------------- @@ -124,7 +127,7 @@ Logging to a file ^^^^^^^^^^^^^^^^^ A very common situation is that of recording logging events in a file, so let's -look at that next. Be sure to try the following in a newly-started Python +look at that next. Be sure to try the following in a newly started Python interpreter, and don't just continue from the session described above:: import logging @@ -336,7 +339,7 @@ favourite beverage and carry on. If your logging needs are simple, then use the above examples to incorporate logging into your own scripts, and if you run into problems or don't understand something, please post a question on the comp.lang.python Usenet -group (available at https://groups.google.com/forum/#!forum/comp.lang.python) and you +group (available at https://groups.google.com/g/comp.lang.python) and you should receive help before too long. Still here? You can carry on reading the next few sections, which provide a @@ -1109,6 +1112,11 @@ Also note that the core logging module only includes the basic handlers. If you don't import :mod:`logging.handlers` and :mod:`logging.config`, they won't take up any memory. +.. _tutorial-ref-links: + +Other resources +--------------- + .. seealso:: Module :mod:`logging` diff --git a/Doc/howto/perf_profiling.rst b/Doc/howto/perf_profiling.rst new file mode 100644 index 00000000000000..ed8de888b3bc21 --- /dev/null +++ b/Doc/howto/perf_profiling.rst @@ -0,0 +1,203 @@ +.. highlight:: shell-session + +.. _perf_profiling: + +============================================== +Python support for the Linux ``perf`` profiler +============================================== + +:author: Pablo Galindo + +The Linux ``perf`` profiler is a very powerful tool that allows you to profile and +obtain information about the performance of your application. ``perf`` also has +a very vibrant ecosystem of tools that aid with the analysis of the data that it +produces. + +The main problem with using the ``perf`` profiler with Python applications is that +``perf`` only allows to get information about native symbols, this is, the names of +the functions and procedures written in C. This means that the names and file names +of the Python functions in your code will not appear in the output of the ``perf``. + +Since Python 3.12, the interpreter can run in a special mode that allows Python +functions to appear in the output of the ``perf`` profiler. When this mode is +enabled, the interpreter will interpose a small piece of code compiled on the +fly before the execution of every Python function and it will teach ``perf`` the +relationship between this piece of code and the associated Python function using +`perf map files`_. + +.. warning:: + + Support for the ``perf`` profiler is only currently available for Linux on + selected architectures. Check the output of the configure build step or + check the output of ``python -m sysconfig | grep HAVE_PERF_TRAMPOLINE`` + to see if your system is supported. + +For example, consider the following script: + +.. code-block:: python + + def foo(n): + result = 0 + for _ in range(n): + result += 1 + return result + + def bar(n): + foo(n) + + def baz(n): + bar(n) + + if __name__ == "__main__": + baz(1000000) + +We can run perf to sample CPU stack traces at 9999 Hertz: + + $ perf record -F 9999 -g -o perf.data python my_script.py + +Then we can use perf report to analyze the data: + +.. code-block:: shell-session + + $ perf report --stdio -n -g + + # Children Self Samples Command Shared Object Symbol + # ........ ........ ............ .......... .................. .......................................... + # + 91.08% 0.00% 0 python.exe python.exe [.] _start + | + ---_start + | + --90.71%--__libc_start_main + Py_BytesMain + | + |--56.88%--pymain_run_python.constprop.0 + | | + | |--56.13%--_PyRun_AnyFileObject + | | _PyRun_SimpleFileObject + | | | + | | |--55.02%--run_mod + | | | | + | | | --54.65%--PyEval_EvalCode + | | | _PyEval_EvalFrameDefault + | | | PyObject_Vectorcall + | | | _PyEval_Vector + | | | _PyEval_EvalFrameDefault + | | | PyObject_Vectorcall + | | | _PyEval_Vector + | | | _PyEval_EvalFrameDefault + | | | PyObject_Vectorcall + | | | _PyEval_Vector + | | | | + | | | |--51.67%--_PyEval_EvalFrameDefault + | | | | | + | | | | |--11.52%--_PyLong_Add + | | | | | | + | | | | | |--2.97%--_PyObject_Malloc + ... + +As you can see here, the Python functions are not shown in the output, only ``_Py_Eval_EvalFrameDefault`` appears +(the function that evaluates the Python bytecode) shows up. Unfortunately that's not very useful because all Python +functions use the same C function to evaluate bytecode so we cannot know which Python function corresponds to which +bytecode-evaluating function. + +Instead, if we run the same experiment with perf support activated we get: + +.. code-block:: shell-session + + $ perf report --stdio -n -g + + # Children Self Samples Command Shared Object Symbol + # ........ ........ ............ .......... .................. ..................................................................... + # + 90.58% 0.36% 1 python.exe python.exe [.] _start + | + ---_start + | + --89.86%--__libc_start_main + Py_BytesMain + | + |--55.43%--pymain_run_python.constprop.0 + | | + | |--54.71%--_PyRun_AnyFileObject + | | _PyRun_SimpleFileObject + | | | + | | |--53.62%--run_mod + | | | | + | | | --53.26%--PyEval_EvalCode + | | | py:::/src/script.py + | | | _PyEval_EvalFrameDefault + | | | PyObject_Vectorcall + | | | _PyEval_Vector + | | | py::baz:/src/script.py + | | | _PyEval_EvalFrameDefault + | | | PyObject_Vectorcall + | | | _PyEval_Vector + | | | py::bar:/src/script.py + | | | _PyEval_EvalFrameDefault + | | | PyObject_Vectorcall + | | | _PyEval_Vector + | | | py::foo:/src/script.py + | | | | + | | | |--51.81%--_PyEval_EvalFrameDefault + | | | | | + | | | | |--13.77%--_PyLong_Add + | | | | | | + | | | | | |--3.26%--_PyObject_Malloc + + + +Enabling perf profiling mode +---------------------------- + +There are two main ways to activate the perf profiling mode. If you want it to be +active since the start of the Python interpreter, you can use the `-Xperf` option: + + $ python -Xperf my_script.py + +You can also set the :envvar:`PYTHONPERFSUPPORT` to a nonzero value to actiavate perf +profiling mode globally. + +There is also support for dynamically activating and deactivating the perf +profiling mode by using the APIs in the :mod:`sys` module: + +.. code-block:: python + + import sys + sys.activate_stack_trampoline("perf") + + # Run some code with Perf profiling active + + sys.deactivate_stack_trampoline() + + # Perf profiling is not active anymore + +These APIs can be handy if you want to activate/deactivate profiling mode in +response to a signal or other communication mechanism with your process. + + + +Now we can analyze the data with ``perf report``: + + $ perf report -g -i perf.data + + +How to obtain the best results +------------------------------- + +For the best results, Python should be compiled with +``CFLAGS="-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"`` as this allows +profilers to unwind using only the frame pointer and not on DWARF debug +information. This is because as the code that is interposed to allow perf +support is dynamically generated it doesn't have any DWARF debugging information +available. + +You can check if you system has been compiled with this flag by running: + + $ python -m sysconfig | grep 'no-omit-frame-pointer' + +If you don't see any output it means that your interpreter has not been compiled with +frame pointers and therefore it may not be able to show Python functions in the output +of ``perf``. + +.. _perf map files: https://github.com/torvalds/linux/blob/0513e464f9007b70b96740271a948ca5ab6e7dd7/tools/perf/Documentation/jit-interface.txt diff --git a/Doc/howto/pyporting.rst b/Doc/howto/pyporting.rst index abcc34287e3d29..add1c11be534e3 100644 --- a/Doc/howto/pyporting.rst +++ b/Doc/howto/pyporting.rst @@ -433,9 +433,9 @@ to make sure everything functions as expected in both versions of Python. .. _caniusepython3: https://pypi.org/project/caniusepython3 -.. _cheat sheet: http://python-future.org/compatible_idioms.html +.. _cheat sheet: https://python-future.org/compatible_idioms.html .. _coverage.py: https://pypi.org/project/coverage -.. _Futurize: http://python-future.org/automatic_conversion.html +.. _Futurize: https://python-future.org/automatic_conversion.html .. _importlib2: https://pypi.org/project/importlib2 .. _Modernize: https://python-modernize.readthedocs.io/ .. _mypy: http://mypy-lang.org/ @@ -445,7 +445,7 @@ to make sure everything functions as expected in both versions of Python. .. _Python 3 Q & A: https://ncoghlan-devs-python-notes.readthedocs.io/en/latest/python3/questions_and_answers.html .. _pytype: https://github.com/google/pytype -.. _python-future: http://python-future.org/ +.. _python-future: https://python-future.org/ .. _python-porting: https://mail.python.org/pipermail/python-porting/ .. _six: https://pypi.org/project/six .. _tox: https://pypi.org/project/tox diff --git a/Doc/howto/regex.rst b/Doc/howto/regex.rst index c4eed8fb1fbe72..5cd6140f19ca2e 100644 --- a/Doc/howto/regex.rst +++ b/Doc/howto/regex.rst @@ -949,7 +949,7 @@ Additionally, you can retrieve named groups as a dictionary with >>> m.groupdict() {'first': 'Jane', 'last': 'Doe'} -Named groups are handy because they let you use easily-remembered names, instead +Named groups are handy because they let you use easily remembered names, instead of having to remember numbers. Here's an example RE from the :mod:`imaplib` module:: diff --git a/Doc/howto/sockets.rst b/Doc/howto/sockets.rst index e58f78a7cb0245..0bbf97da39768d 100644 --- a/Doc/howto/sockets.rst +++ b/Doc/howto/sockets.rst @@ -252,20 +252,25 @@ Binary Data ----------- It is perfectly possible to send binary data over a socket. The major problem is -that not all machines use the same formats for binary data. For example, a -Motorola chip will represent a 16 bit integer with the value 1 as the two hex -bytes 00 01. Intel and DEC, however, are byte-reversed - that same 1 is 01 00. +that not all machines use the same formats for binary data. For example, +`network byte order `_ +is big-endian, with the most significant byte first, +so a 16 bit integer with the value ``1`` would be the two hex bytes ``00 01``. +However, most common processors (x86/AMD64, ARM, RISC-V), are little-endian, +with the least significant byte first - that same ``1`` would be ``01 00``. + Socket libraries have calls for converting 16 and 32 bit integers - ``ntohl, htonl, ntohs, htons`` where "n" means *network* and "h" means *host*, "s" means *short* and "l" means *long*. Where network order is host order, these do nothing, but where the machine is byte-reversed, these swap the bytes around appropriately. -In these days of 32 bit machines, the ascii representation of binary data is +In these days of 64-bit machines, the ASCII representation of binary data is frequently smaller than the binary representation. That's because a surprising -amount of the time, all those longs have the value 0, or maybe 1. The string "0" -would be two bytes, while binary is four. Of course, this doesn't fit well with -fixed-length messages. Decisions, decisions. +amount of the time, most integers have the value 0, or maybe 1. +The string ``"0"`` would be two bytes, while a full 64-bit integer would be 8. +Of course, this doesn't fit well with fixed-length messages. +Decisions, decisions. Disconnecting diff --git a/Doc/howto/unicode.rst b/Doc/howto/unicode.rst index 535b21bd4a54f5..4969d2420d6ac9 100644 --- a/Doc/howto/unicode.rst +++ b/Doc/howto/unicode.rst @@ -167,7 +167,7 @@ On the Computerphile Youtube channel, Tom Scott briefly (9 minutes 36 seconds). To help understand the standard, Jukka Korpela has written `an introductory -guide `_ to reading the +guide `_ to reading the Unicode character tables. Another `good introductory article `_ @@ -735,7 +735,7 @@ References ---------- One section of `Mastering Python 3 Input/Output -`_, +`_, a PyCon 2010 talk by David Beazley, discusses text processing and binary data handling. The `PDF slides for Marc-André Lemburg's presentation "Writing Unicode-aware @@ -745,7 +745,7 @@ discuss questions of character encodings as well as how to internationalize and localize an application. These slides cover Python 2.x only. `The Guts of Unicode in Python -`_ +`_ is a PyCon 2013 talk by Benjamin Peterson that discusses the internal Unicode representation in Python 3.3. diff --git a/Doc/howto/urllib2.rst b/Doc/howto/urllib2.rst index 12d525771ddc28..69af3c3a85c5d6 100644 --- a/Doc/howto/urllib2.rst +++ b/Doc/howto/urllib2.rst @@ -4,13 +4,13 @@ HOWTO Fetch Internet Resources Using The urllib Package *********************************************************** -:Author: `Michael Foord `_ +:Author: `Michael Foord `_ .. note:: There is a French translation of an earlier revision of this HOWTO, available at `urllib2 - Le Manuel manquant - `_. + `_. @@ -22,7 +22,7 @@ Introduction You may also find useful the following article on fetching web resources with Python: - * `Basic Authentication `_ + * `Basic Authentication `_ A tutorial on *Basic Authentication*, with examples in Python. @@ -411,7 +411,7 @@ fetched, particularly the headers sent by the server. It is currently an :class:`http.client.HTTPMessage` instance. Typical headers include 'Content-length', 'Content-type', and so on. See the -`Quick Reference to HTTP Headers `_ +`Quick Reference to HTTP Headers `_ for a useful listing of HTTP headers with brief explanations of their meaning and use. @@ -420,7 +420,7 @@ Openers and Handlers ==================== When you fetch a URL you use an opener (an instance of the perhaps -confusingly-named :class:`urllib.request.OpenerDirector`). Normally we have been using +confusingly named :class:`urllib.request.OpenerDirector`). Normally we have been using the default opener - via ``urlopen`` - but you can create custom openers. Openers use handlers. All the "heavy lifting" is done by the handlers. Each handler knows how to open URLs for a particular URL scheme (http, diff --git a/Doc/includes/email-headers.py b/Doc/includes/email-headers.py index 2c421451a8e5a8..5def0c90d28d9f 100644 --- a/Doc/includes/email-headers.py +++ b/Doc/includes/email-headers.py @@ -1,5 +1,6 @@ # Import the email modules we'll need -from email.parser import BytesParser, Parser +#from email.parser import BytesParser +from email.parser import Parser from email.policy import default # If the e-mail headers are in a file, uncomment these two lines: diff --git a/Doc/includes/sqlite3/adapter_datetime.py b/Doc/includes/sqlite3/adapter_datetime.py deleted file mode 100644 index d5221d80c35c8a..00000000000000 --- a/Doc/includes/sqlite3/adapter_datetime.py +++ /dev/null @@ -1,17 +0,0 @@ -import sqlite3 -import datetime -import time - -def adapt_datetime(ts): - return time.mktime(ts.timetuple()) - -sqlite3.register_adapter(datetime.datetime, adapt_datetime) - -con = sqlite3.connect(":memory:") -cur = con.cursor() - -now = datetime.datetime.now() -cur.execute("select ?", (now,)) -print(cur.fetchone()[0]) - -con.close() diff --git a/Doc/includes/sqlite3/adapter_point_1.py b/Doc/includes/sqlite3/adapter_point_1.py deleted file mode 100644 index 77daf8f16d227b..00000000000000 --- a/Doc/includes/sqlite3/adapter_point_1.py +++ /dev/null @@ -1,18 +0,0 @@ -import sqlite3 - -class Point: - def __init__(self, x, y): - self.x, self.y = x, y - - def __conform__(self, protocol): - if protocol is sqlite3.PrepareProtocol: - return "%f;%f" % (self.x, self.y) - -con = sqlite3.connect(":memory:") -cur = con.cursor() - -p = Point(4.0, -3.2) -cur.execute("select ?", (p,)) -print(cur.fetchone()[0]) - -con.close() diff --git a/Doc/includes/sqlite3/adapter_point_2.py b/Doc/includes/sqlite3/adapter_point_2.py deleted file mode 100644 index cb86331692b61d..00000000000000 --- a/Doc/includes/sqlite3/adapter_point_2.py +++ /dev/null @@ -1,19 +0,0 @@ -import sqlite3 - -class Point: - def __init__(self, x, y): - self.x, self.y = x, y - -def adapt_point(point): - return "%f;%f" % (point.x, point.y) - -sqlite3.register_adapter(Point, adapt_point) - -con = sqlite3.connect(":memory:") -cur = con.cursor() - -p = Point(4.0, -3.2) -cur.execute("select ?", (p,)) -print(cur.fetchone()[0]) - -con.close() diff --git a/Doc/includes/sqlite3/blob.py b/Doc/includes/sqlite3/blob.py deleted file mode 100644 index ff58d6c352b652..00000000000000 --- a/Doc/includes/sqlite3/blob.py +++ /dev/null @@ -1,19 +0,0 @@ -import sqlite3 - -con = sqlite3.connect(":memory:") -con.execute("create table test(blob_col blob)") -con.execute("insert into test(blob_col) values (zeroblob(13))") - -# Write to our blob, using two write operations: -with con.blobopen("test", "blob_col", 1) as blob: - blob.write(b"hello, ") - blob.write(b"world.") - # Modify the first and last bytes of our blob - blob[0] = ord("H") - blob[-1] = ord("!") - -# Read the contents of our blob -with con.blobopen("test", "blob_col", 1) as blob: - greeting = blob.read() - -print(greeting) # outputs "b'Hello, world!'" diff --git a/Doc/includes/sqlite3/collation_reverse.py b/Doc/includes/sqlite3/collation_reverse.py deleted file mode 100644 index 3504a350a04ecb..00000000000000 --- a/Doc/includes/sqlite3/collation_reverse.py +++ /dev/null @@ -1,20 +0,0 @@ -import sqlite3 - -def collate_reverse(string1, string2): - if string1 == string2: - return 0 - elif string1 < string2: - return 1 - else: - return -1 - -con = sqlite3.connect(":memory:") -con.create_collation("reverse", collate_reverse) - -cur = con.cursor() -cur.execute("create table test(x)") -cur.executemany("insert into test(x) values (?)", [("a",), ("b",)]) -cur.execute("select x from test order by x collate reverse") -for row in cur: - print(row) -con.close() diff --git a/Doc/includes/sqlite3/complete_statement.py b/Doc/includes/sqlite3/complete_statement.py deleted file mode 100644 index a5c947969910d4..00000000000000 --- a/Doc/includes/sqlite3/complete_statement.py +++ /dev/null @@ -1,33 +0,0 @@ -# A minimal SQLite shell for experiments - -import sqlite3 - -con = sqlite3.connect(":memory:") -con.isolation_level = None -cur = con.cursor() - -buffer = "" - -print("Enter your SQL commands to execute in sqlite3.") -print("Enter a blank line to exit.") - -while True: - line = input() - if line == "": - break - buffer += line - if sqlite3.complete_statement(buffer): - try: - buffer = buffer.strip() - cur.execute(buffer) - - if buffer.lstrip().upper().startswith("SELECT"): - print(cur.fetchall()) - except sqlite3.Error as e: - err_msg = str(e) - err_code = e.sqlite_errorcode - err_name = e.sqlite_errorname - print(f"{err_name} ({err_code}): {err_msg}") - buffer = "" - -con.close() diff --git a/Doc/includes/sqlite3/converter_point.py b/Doc/includes/sqlite3/converter_point.py deleted file mode 100644 index 5df828e3361246..00000000000000 --- a/Doc/includes/sqlite3/converter_point.py +++ /dev/null @@ -1,47 +0,0 @@ -import sqlite3 - -class Point: - def __init__(self, x, y): - self.x, self.y = x, y - - def __repr__(self): - return "(%f;%f)" % (self.x, self.y) - -def adapt_point(point): - return ("%f;%f" % (point.x, point.y)).encode('ascii') - -def convert_point(s): - x, y = list(map(float, s.split(b";"))) - return Point(x, y) - -# Register the adapter -sqlite3.register_adapter(Point, adapt_point) - -# Register the converter -sqlite3.register_converter("point", convert_point) - -p = Point(4.0, -3.2) - -######################### -# 1) Using declared types -con = sqlite3.connect(":memory:", detect_types=sqlite3.PARSE_DECLTYPES) -cur = con.cursor() -cur.execute("create table test(p point)") - -cur.execute("insert into test(p) values (?)", (p,)) -cur.execute("select p from test") -print("with declared types:", cur.fetchone()[0]) -cur.close() -con.close() - -####################### -# 1) Using column names -con = sqlite3.connect(":memory:", detect_types=sqlite3.PARSE_COLNAMES) -cur = con.cursor() -cur.execute("create table test(p)") - -cur.execute("insert into test(p) values (?)", (p,)) -cur.execute('select p as "p [point]" from test') -print("with column names:", cur.fetchone()[0]) -cur.close() -con.close() diff --git a/Doc/includes/sqlite3/ctx_manager.py b/Doc/includes/sqlite3/ctx_manager.py deleted file mode 100644 index 2e1175ef44c641..00000000000000 --- a/Doc/includes/sqlite3/ctx_manager.py +++ /dev/null @@ -1,20 +0,0 @@ -import sqlite3 - -con = sqlite3.connect(":memory:") -con.execute("create table lang (id integer primary key, name varchar unique)") - -# Successful, con.commit() is called automatically afterwards -with con: - con.execute("insert into lang(name) values (?)", ("Python",)) - -# con.rollback() is called after the with block finishes with an exception, the -# exception is still raised and must be caught -try: - with con: - con.execute("insert into lang(name) values (?)", ("Python",)) -except sqlite3.IntegrityError: - print("couldn't add Python twice") - -# Connection object used as context manager only commits or rollbacks transactions, -# so the connection object should be closed manually -con.close() diff --git a/Doc/includes/sqlite3/execute_1.py b/Doc/includes/sqlite3/execute_1.py deleted file mode 100644 index ee0000e2b94a32..00000000000000 --- a/Doc/includes/sqlite3/execute_1.py +++ /dev/null @@ -1,22 +0,0 @@ -import sqlite3 - -con = sqlite3.connect(":memory:") -cur = con.cursor() -cur.execute("create table lang (name, first_appeared)") - -# This is the qmark style: -cur.execute("insert into lang values (?, ?)", ("C", 1972)) - -# The qmark style used with executemany(): -lang_list = [ - ("Fortran", 1957), - ("Python", 1991), - ("Go", 2009), -] -cur.executemany("insert into lang values (?, ?)", lang_list) - -# And this is the named style: -cur.execute("select * from lang where first_appeared=:year", {"year": 1972}) -print(cur.fetchall()) - -con.close() diff --git a/Doc/includes/sqlite3/executemany_1.py b/Doc/includes/sqlite3/executemany_1.py deleted file mode 100644 index edf6f8b7ebe61a..00000000000000 --- a/Doc/includes/sqlite3/executemany_1.py +++ /dev/null @@ -1,26 +0,0 @@ -import sqlite3 - -class IterChars: - def __init__(self): - self.count = ord('a') - - def __iter__(self): - return self - - def __next__(self): - if self.count > ord('z'): - raise StopIteration - self.count += 1 - return (chr(self.count - 1),) # this is a 1-tuple - -con = sqlite3.connect(":memory:") -cur = con.cursor() -cur.execute("create table characters(c)") - -theIter = IterChars() -cur.executemany("insert into characters(c) values (?)", theIter) - -cur.execute("select c from characters") -print(cur.fetchall()) - -con.close() diff --git a/Doc/includes/sqlite3/executemany_2.py b/Doc/includes/sqlite3/executemany_2.py deleted file mode 100644 index 02a594c861e15b..00000000000000 --- a/Doc/includes/sqlite3/executemany_2.py +++ /dev/null @@ -1,17 +0,0 @@ -import sqlite3 -import string - -def char_generator(): - for c in string.ascii_lowercase: - yield (c,) - -con = sqlite3.connect(":memory:") -cur = con.cursor() -cur.execute("create table characters(c)") - -cur.executemany("insert into characters(c) values (?)", char_generator()) - -cur.execute("select c from characters") -print(cur.fetchall()) - -con.close() diff --git a/Doc/includes/sqlite3/executescript.py b/Doc/includes/sqlite3/executescript.py deleted file mode 100644 index aea8943fbee598..00000000000000 --- a/Doc/includes/sqlite3/executescript.py +++ /dev/null @@ -1,25 +0,0 @@ -import sqlite3 - -con = sqlite3.connect(":memory:") -cur = con.cursor() -cur.executescript(""" - create table person( - firstname, - lastname, - age - ); - - create table book( - title, - author, - published - ); - - insert into book(title, author, published) - values ( - 'Dirk Gently''s Holistic Detective Agency', - 'Douglas Adams', - 1987 - ); - """) -con.close() diff --git a/Doc/includes/sqlite3/load_extension.py b/Doc/includes/sqlite3/load_extension.py deleted file mode 100644 index 624cfe262f38b3..00000000000000 --- a/Doc/includes/sqlite3/load_extension.py +++ /dev/null @@ -1,28 +0,0 @@ -import sqlite3 - -con = sqlite3.connect(":memory:") - -# enable extension loading -con.enable_load_extension(True) - -# Load the fulltext search extension -con.execute("select load_extension('./fts3.so')") - -# alternatively you can load the extension using an API call: -# con.load_extension("./fts3.so") - -# disable extension loading again -con.enable_load_extension(False) - -# example from SQLite wiki -con.execute("create virtual table recipe using fts3(name, ingredients)") -con.executescript(""" - insert into recipe (name, ingredients) values ('broccoli stew', 'broccoli peppers cheese tomatoes'); - insert into recipe (name, ingredients) values ('pumpkin stew', 'pumpkin onions garlic celery'); - insert into recipe (name, ingredients) values ('broccoli pie', 'broccoli cheese onions flour'); - insert into recipe (name, ingredients) values ('pumpkin pie', 'pumpkin sugar flour butter'); - """) -for row in con.execute("select rowid, name, ingredients from recipe where name match 'pie'"): - print(row) - -con.close() diff --git a/Doc/includes/sqlite3/md5func.py b/Doc/includes/sqlite3/md5func.py deleted file mode 100644 index 16dc348bf001e2..00000000000000 --- a/Doc/includes/sqlite3/md5func.py +++ /dev/null @@ -1,13 +0,0 @@ -import sqlite3 -import hashlib - -def md5sum(t): - return hashlib.md5(t).hexdigest() - -con = sqlite3.connect(":memory:") -con.create_function("md5", 1, md5sum) -cur = con.cursor() -cur.execute("select md5(?)", (b"foo",)) -print(cur.fetchone()[0]) - -con.close() diff --git a/Doc/includes/sqlite3/mysumaggr.py b/Doc/includes/sqlite3/mysumaggr.py deleted file mode 100644 index 11f96395b6c485..00000000000000 --- a/Doc/includes/sqlite3/mysumaggr.py +++ /dev/null @@ -1,22 +0,0 @@ -import sqlite3 - -class MySum: - def __init__(self): - self.count = 0 - - def step(self, value): - self.count += value - - def finalize(self): - return self.count - -con = sqlite3.connect(":memory:") -con.create_aggregate("mysum", 1, MySum) -cur = con.cursor() -cur.execute("create table test(i)") -cur.execute("insert into test(i) values (1)") -cur.execute("insert into test(i) values (2)") -cur.execute("select mysum(i) from test") -print(cur.fetchone()[0]) - -con.close() diff --git a/Doc/includes/sqlite3/pysqlite_datetime.py b/Doc/includes/sqlite3/pysqlite_datetime.py deleted file mode 100644 index 5d843f906b3062..00000000000000 --- a/Doc/includes/sqlite3/pysqlite_datetime.py +++ /dev/null @@ -1,22 +0,0 @@ -import sqlite3 -import datetime - -con = sqlite3.connect(":memory:", detect_types=sqlite3.PARSE_DECLTYPES|sqlite3.PARSE_COLNAMES) -cur = con.cursor() -cur.execute("create table test(d date, ts timestamp)") - -today = datetime.date.today() -now = datetime.datetime.now() - -cur.execute("insert into test(d, ts) values (?, ?)", (today, now)) -cur.execute("select d, ts from test") -row = cur.fetchone() -print(today, "=>", row[0], type(row[0])) -print(now, "=>", row[1], type(row[1])) - -cur.execute('select current_date as "d [date]", current_timestamp as "ts [timestamp]"') -row = cur.fetchone() -print("current_date", row[0], type(row[0])) -print("current_timestamp", row[1], type(row[1])) - -con.close() diff --git a/Doc/includes/sqlite3/row_factory.py b/Doc/includes/sqlite3/row_factory.py deleted file mode 100644 index 9de6e7b1b9052a..00000000000000 --- a/Doc/includes/sqlite3/row_factory.py +++ /dev/null @@ -1,15 +0,0 @@ -import sqlite3 - -def dict_factory(cursor, row): - d = {} - for idx, col in enumerate(cursor.description): - d[col[0]] = row[idx] - return d - -con = sqlite3.connect(":memory:") -con.row_factory = dict_factory -cur = con.cursor() -cur.execute("select 1 as a") -print(cur.fetchone()["a"]) - -con.close() diff --git a/Doc/includes/sqlite3/rowclass.py b/Doc/includes/sqlite3/rowclass.py deleted file mode 100644 index fc60287069a854..00000000000000 --- a/Doc/includes/sqlite3/rowclass.py +++ /dev/null @@ -1,14 +0,0 @@ -import sqlite3 - -con = sqlite3.connect(":memory:") -con.row_factory = sqlite3.Row - -cur = con.cursor() -cur.execute("select 'John' as name, 42 as age") -for row in cur: - assert row[0] == row["name"] - assert row["name"] == row["nAmE"] - assert row[1] == row["age"] - assert row[1] == row["AgE"] - -con.close() diff --git a/Doc/includes/sqlite3/shortcut_methods.py b/Doc/includes/sqlite3/shortcut_methods.py deleted file mode 100644 index 48ea6fad15a898..00000000000000 --- a/Doc/includes/sqlite3/shortcut_methods.py +++ /dev/null @@ -1,24 +0,0 @@ -import sqlite3 - -langs = [ - ("C++", 1985), - ("Objective-C", 1984), -] - -con = sqlite3.connect(":memory:") - -# Create the table -con.execute("create table lang(name, first_appeared)") - -# Fill the table -con.executemany("insert into lang(name, first_appeared) values (?, ?)", langs) - -# Print the table contents -for row in con.execute("select name, first_appeared from lang"): - print(row) - -print("I just deleted", con.execute("delete from lang").rowcount, "rows") - -# close is not a shortcut method and it's not called automatically, -# so the connection object should be closed manually -con.close() diff --git a/Doc/includes/sqlite3/sumintwindow.py b/Doc/includes/sqlite3/sumintwindow.py deleted file mode 100644 index 0e915d6cc6ae68..00000000000000 --- a/Doc/includes/sqlite3/sumintwindow.py +++ /dev/null @@ -1,46 +0,0 @@ -# Example taken from https://www.sqlite.org/windowfunctions.html#udfwinfunc -import sqlite3 - - -class WindowSumInt: - def __init__(self): - self.count = 0 - - def step(self, value): - """Adds a row to the current window.""" - self.count += value - - def value(self): - """Returns the current value of the aggregate.""" - return self.count - - def inverse(self, value): - """Removes a row from the current window.""" - self.count -= value - - def finalize(self): - """Returns the final value of the aggregate. - - Any clean-up actions should be placed here. - """ - return self.count - - -con = sqlite3.connect(":memory:") -cur = con.execute("create table test(x, y)") -values = [ - ("a", 4), - ("b", 5), - ("c", 3), - ("d", 8), - ("e", 1), -] -cur.executemany("insert into test values(?, ?)", values) -con.create_window_function("sumint", 1, WindowSumInt) -cur.execute(""" - select x, sumint(y) over ( - order by x rows between 1 preceding and 1 following - ) as sum_y - from test order by x -""") -print(cur.fetchall()) diff --git a/Doc/includes/sqlite3/text_factory.py b/Doc/includes/sqlite3/text_factory.py deleted file mode 100644 index c0d87cd559118c..00000000000000 --- a/Doc/includes/sqlite3/text_factory.py +++ /dev/null @@ -1,29 +0,0 @@ -import sqlite3 - -con = sqlite3.connect(":memory:") -cur = con.cursor() - -AUSTRIA = "Österreich" - -# by default, rows are returned as str -cur.execute("select ?", (AUSTRIA,)) -row = cur.fetchone() -assert row[0] == AUSTRIA - -# but we can make sqlite3 always return bytestrings ... -con.text_factory = bytes -cur.execute("select ?", (AUSTRIA,)) -row = cur.fetchone() -assert type(row[0]) is bytes -# the bytestrings will be encoded in UTF-8, unless you stored garbage in the -# database ... -assert row[0] == AUSTRIA.encode("utf-8") - -# we can also implement a custom text_factory ... -# here we implement one that appends "foo" to all strings -con.text_factory = lambda x: x.decode("utf-8") + "foo" -cur.execute("select ?", ("bar",)) -row = cur.fetchone() -assert row[0] == "barfoo" - -con.close() diff --git a/Doc/includes/wasm-notavail.rst b/Doc/includes/wasm-notavail.rst new file mode 100644 index 00000000000000..e680e1f9b43807 --- /dev/null +++ b/Doc/includes/wasm-notavail.rst @@ -0,0 +1,7 @@ +.. include for modules that don't work on WASM + +.. availability:: not Emscripten, not WASI. + + This module does not work or is not available on WebAssembly platforms + ``wasm32-emscripten`` and ``wasm32-wasi``. See + :ref:`wasm-availability` for more information. diff --git a/Doc/install/index.rst b/Doc/install/index.rst index 7f7be117009887..3fc670b191424d 100644 --- a/Doc/install/index.rst +++ b/Doc/install/index.rst @@ -23,7 +23,11 @@ The up to date module installation documentation. For regular Python usage, you almost certainly want that document rather than this one. -.. include:: ../distutils/_setuptools_disclaimer.rst +.. note:: + + This document is being retained solely until the ``setuptools`` documentation + at https://setuptools.readthedocs.io/en/latest/setuptools.html + independently covers all of the relevant information currently included here. .. note:: @@ -65,7 +69,7 @@ If you download a module source distribution, you can tell pretty quickly if it was packaged and distributed in the standard way, i.e. using the Distutils. First, the distribution's name and version number will be featured prominently in the name of the downloaded archive, e.g. :file:`foo-1.0.tar.gz` or -:file:`widget-0.9.7.zip`. Next, the archive will unpack into a similarly-named +:file:`widget-0.9.7.zip`. Next, the archive will unpack into a similarly named directory: :file:`foo-1.0` or :file:`widget-0.9.7`. Additionally, the distribution will contain a setup script :file:`setup.py`, and a file named :file:`README.txt` or possibly just :file:`README`, which should explain that @@ -1062,7 +1066,7 @@ normal libraries do. .. seealso:: - `Building Python modules on MS Windows platform with MinGW `_ + `Building Python modules on MS Windows platform with MinGW `_ Information about building the required libraries for the MinGW environment. diff --git a/Doc/installing/index.rst b/Doc/installing/index.rst index 4bacc7ba0c2cf2..e158bf1c4c0c7f 100644 --- a/Doc/installing/index.rst +++ b/Doc/installing/index.rst @@ -214,7 +214,7 @@ It is possible that ``pip`` does not get installed by default. One potential fix python -m ensurepip --default-pip There are also additional resources for `installing pip. -`__ +`__ Installing binary extensions diff --git a/Doc/library/2to3.rst b/Doc/library/2to3.rst index fce02e28009330..d85ad94e9b7fe4 100644 --- a/Doc/library/2to3.rst +++ b/Doc/library/2to3.rst @@ -1,7 +1,7 @@ .. _2to3-reference: -2to3 - Automated Python 2 to 3 code translation -=============================================== +2to3 --- Automated Python 2 to 3 code translation +================================================= .. sectionauthor:: Benjamin Peterson @@ -456,8 +456,8 @@ and off individually. They are described here in more detail. ``from future_builtins import zip`` appears. -:mod:`lib2to3` - 2to3's library -------------------------------- +:mod:`lib2to3` --- 2to3's library +--------------------------------- .. module:: lib2to3 :synopsis: The 2to3 library diff --git a/Doc/library/_thread.rst b/Doc/library/_thread.rst index 75b3834b9a339c..d61ce9039349db 100644 --- a/Doc/library/_thread.rst +++ b/Doc/library/_thread.rst @@ -140,7 +140,9 @@ This module defines the following constants and functions: information (4 KiB pages are common; using multiples of 4096 for the stack size is the suggested approach in the absence of more specific information). - .. availability:: Windows, systems with POSIX threads. + .. availability:: Windows, pthreads. + + Unix platforms with POSIX threads support. .. data:: TIMEOUT_MAX diff --git a/Doc/library/argparse.rst b/Doc/library/argparse.rst index 0e62e99d706d4c..b2fa0b3c23c3a1 100644 --- a/Doc/library/argparse.rst +++ b/Doc/library/argparse.rst @@ -562,7 +562,7 @@ at the command line. If the ``fromfile_prefix_chars=`` argument is given to the specified characters will be treated as files, and will be replaced by the arguments they contain. For example:: - >>> with open('args.txt', 'w') as fp: + >>> with open('args.txt', 'w', encoding=sys.getfilesystemencoding()) as fp: ... fp.write('-f\nbar') >>> parser = argparse.ArgumentParser(fromfile_prefix_chars='@') >>> parser.add_argument('-f') @@ -575,9 +575,18 @@ were in the same place as the original file referencing argument on the command line. So in the example above, the expression ``['-f', 'foo', '@args.txt']`` is considered equivalent to the expression ``['-f', 'foo', '-f', 'bar']``. +:class:`ArgumentParser` uses :term:`filesystem encoding and error handler` +to read the file containing arguments. + The ``fromfile_prefix_chars=`` argument defaults to ``None``, meaning that arguments will never be treated as file references. +.. versionchanged:: 3.12 + :class:`ArgumentParser` changed encoding and errors to read arguments files + from default (e.g. :func:`locale.getpreferredencoding(False)` and + ``"strict"``) to :term:`filesystem encoding and error handler`. + Arguments file should be encoded in UTF-8 instead of ANSI Codepage on Windows. + argument_default ^^^^^^^^^^^^^^^^ diff --git a/Doc/library/array.rst b/Doc/library/array.rst index c7f137d15b4b86..975670cc81a202 100644 --- a/Doc/library/array.rst +++ b/Doc/library/array.rst @@ -52,7 +52,7 @@ Notes: .. versionchanged:: 3.9 ``array('u')`` now uses ``wchar_t`` as C type instead of deprecated - ``Py_UNICODE``. This change doesn't affect to its behavior because + ``Py_UNICODE``. This change doesn't affect its behavior because ``Py_UNICODE`` is alias of ``wchar_t`` since Python 3.3. .. deprecated-removed:: 3.3 4.0 diff --git a/Doc/library/ast.rst b/Doc/library/ast.rst index b10aa7cd50d173..9aa545d82007fa 100644 --- a/Doc/library/ast.rst +++ b/Doc/library/ast.rst @@ -45,7 +45,7 @@ Node classes This is the base of all AST node classes. The actual node classes are derived from the :file:`Parser/Python.asdl` file, which is reproduced - :ref:`below `. They are defined in the :mod:`_ast` C + :ref:`above `. They are defined in the :mod:`_ast` C module and re-exported in :mod:`ast`. There is one class defined for each left-hand side symbol in the abstract @@ -1028,10 +1028,11 @@ Control flow .. class:: For(target, iter, body, orelse, type_comment) A ``for`` loop. ``target`` holds the variable(s) the loop assigns to, as a - single :class:`Name`, :class:`Tuple` or :class:`List` node. ``iter`` holds - the item to be looped over, again as a single node. ``body`` and ``orelse`` - contain lists of nodes to execute. Those in ``orelse`` are executed if the - loop finishes normally, rather than via a ``break`` statement. + single :class:`Name`, :class:`Tuple`, :class:`List`, :class:`Attribute` or + :class:`Subscript` node. ``iter`` holds the item to be looped over, again + as a single node. ``body`` and ``orelse`` contain lists of nodes to execute. + Those in ``orelse`` are executed if the loop finishes normally, rather than + via a ``break`` statement. .. attribute:: type_comment @@ -1950,7 +1951,7 @@ and classes for traversing abstract syntax trees: If source contains a null character ('\0'), :exc:`ValueError` is raised. - .. warning:: + .. warning:: Note that successfully parsing source code into an AST object doesn't guarantee that the source code provided is valid Python code that can be executed as the compilation step can raise further :exc:`SyntaxError` diff --git a/Doc/library/asynchat.rst b/Doc/library/asynchat.rst index 4eb6a79d4dfbf2..32e04ad6d19533 100644 --- a/Doc/library/asynchat.rst +++ b/Doc/library/asynchat.rst @@ -34,6 +34,7 @@ Typically an :class:`asyncore.dispatcher` server channel generates new :class:`asynchat.async_chat` channel objects as it receives incoming connection requests. +.. include:: ../includes/wasm-notavail.rst .. class:: async_chat() @@ -125,7 +126,7 @@ connection requests. .. method:: async_chat.push_with_producer(producer) Takes a producer object and adds it to the producer queue associated with - the channel. When all currently-pushed producers have been exhausted the + the channel. When all currently pushed producers have been exhausted the channel will consume this producer's data by calling its :meth:`more` method and send the data to the remote endpoint. diff --git a/Doc/library/asyncio-api-index.rst b/Doc/library/asyncio-api-index.rst index a4e38e469d82f0..54c1cd6582e494 100644 --- a/Doc/library/asyncio-api-index.rst +++ b/Doc/library/asyncio-api-index.rst @@ -21,8 +21,25 @@ await on multiple things with timeouts. * - :func:`run` - Create event loop, run a coroutine, close the loop. + * - :class:`Runner` + - A context manager that simplifies multiple async function calls. + + * - :class:`Task` + - Task object. + + * - :class:`TaskGroup` + - A context manager that holds a group of tasks. Provides + a convenient and reliable way to wait for all tasks in the group to + finish. + * - :func:`create_task` - - Start an asyncio Task. + - Start an asyncio Task, then returns it. + + * - :func:`current_task` + - Return the current Task. + + * - :func:`all_tasks` + - Return all tasks that are not yet finished for an event loop. * - ``await`` :func:`sleep` - Sleep for a number of seconds. @@ -39,14 +56,8 @@ await on multiple things with timeouts. * - ``await`` :func:`wait` - Monitor for completion. - * - :func:`current_task` - - Return the current Task. - - * - :func:`all_tasks` - - Return all tasks for an event loop. - - * - :class:`Task` - - Task object. + * - :func:`timeout` + - Run with a timeout. Useful in cases when `wait_for` is not suitable. * - :func:`to_thread` - Asynchronously run a function in a separate OS thread. diff --git a/Doc/library/asyncio-eventloop.rst b/Doc/library/asyncio-eventloop.rst index 4f0f8c06fee787..ef0f6fc8e68cd4 100644 --- a/Doc/library/asyncio-eventloop.rst +++ b/Doc/library/asyncio-eventloop.rst @@ -332,7 +332,7 @@ Creating Futures and Tasks .. method:: loop.create_task(coro, *, name=None, context=None) - Schedule the execution of a :ref:`coroutine`. + Schedule the execution of :ref:`coroutine ` *coro*. Return a :class:`Task` object. Third-party event loops can use their own subclass of :class:`Task` @@ -377,7 +377,8 @@ Opening network connections local_addr=None, server_hostname=None, \ ssl_handshake_timeout=None, \ ssl_shutdown_timeout=None, \ - happy_eyeballs_delay=None, interleave=None) + happy_eyeballs_delay=None, interleave=None, \ + all_errors=False) Open a streaming transport connection to a given address specified by *host* and *port*. @@ -468,6 +469,14 @@ Opening network connections to complete before aborting the connection. ``30.0`` seconds if ``None`` (default). + * *all_errors* determines what exceptions are raised when a connection cannot + be created. By default, only a single ``Exception`` is raised: the first + exception if there is only one or all errors have same message, or a single + ``OSError`` with the error messages combined. When ``all_errors`` is ``True``, + an ``ExceptionGroup`` will be raised containing all exceptions (even if there + is only one). + + .. versionchanged:: 3.5 Added support for SSL/TLS in :class:`ProactorEventLoop`. @@ -500,6 +509,9 @@ Opening network connections Added the *ssl_shutdown_timeout* parameter. + .. versionchanged:: 3.12 + *all_errors* was added. + .. seealso:: The :func:`open_connection` function is a high-level alternative @@ -1663,7 +1675,7 @@ event loop:: print('Hello World') loop.stop() - loop = asyncio.get_event_loop() + loop = asyncio.new_event_loop() # Schedule a call to hello_world() loop.call_soon(hello_world, loop) @@ -1699,7 +1711,7 @@ after 5 seconds, and then stops the event loop:: else: loop.stop() - loop = asyncio.get_event_loop() + loop = asyncio.new_event_loop() # Schedule the first call to display_date() end_time = loop.time() + 5.0 @@ -1731,7 +1743,7 @@ Wait until a file descriptor received some data using the # Create a pair of connected file descriptors rsock, wsock = socketpair() - loop = asyncio.get_event_loop() + loop = asyncio.new_event_loop() def reader(): data = rsock.recv(100) diff --git a/Doc/library/asyncio-extending.rst b/Doc/library/asyncio-extending.rst index acbaa6f7faf745..8ffd356f2d1cc3 100644 --- a/Doc/library/asyncio-extending.rst +++ b/Doc/library/asyncio-extending.rst @@ -63,12 +63,6 @@ For this purpose the following, *private* constructors are listed: *context* argument is added. -.. method:: Task._check_future(future) - - Return ``True`` if *future* is attached to the same loop as the task, ``False`` - otherwise. - - .. versionadded:: 3.11 Task lifetime support diff --git a/Doc/library/asyncio-future.rst b/Doc/library/asyncio-future.rst index f74f2e6f8935ea..99a5d3a8287bf7 100644 --- a/Doc/library/asyncio-future.rst +++ b/Doc/library/asyncio-future.rst @@ -55,7 +55,7 @@ Future Functions preferred way for creating new Tasks. Save a reference to the result of this function, to avoid - a task disappearing mid execution. + a task disappearing mid-execution. .. versionchanged:: 3.5.1 The function accepts any :term:`awaitable` object. diff --git a/Doc/library/asyncio-llapi-index.rst b/Doc/library/asyncio-llapi-index.rst index 69b550e43f5aa9..3cec4c69f86ea7 100644 --- a/Doc/library/asyncio-llapi-index.rst +++ b/Doc/library/asyncio-llapi-index.rst @@ -267,7 +267,7 @@ See also the main documentation section about the .. rubric:: Examples -* :ref:`Using asyncio.get_event_loop() and loop.run_forever() +* :ref:`Using asyncio.new_event_loop() and loop.run_forever() `. * :ref:`Using loop.call_later() `. @@ -358,6 +358,10 @@ pipes, etc). Returned from methods like * - :meth:`transport.get_write_buffer_size() ` + - Return the current size of the output buffer. + + * - :meth:`transport.get_write_buffer_limits() + ` - Return high and low water marks for write flow control. * - :meth:`transport.set_write_buffer_limits() diff --git a/Doc/library/asyncio-runner.rst b/Doc/library/asyncio-runner.rst index d0df1db892f9ec..4abe7b6e087a60 100644 --- a/Doc/library/asyncio-runner.rst +++ b/Doc/library/asyncio-runner.rst @@ -75,7 +75,9 @@ Runner context manager :ref:`asyncio-debug-mode` settings. *loop_factory* could be used for overriding the loop creation. - :func:`asyncio.new_event_loop` is used if ``None``. + It is the responsibility of the *loop_factory* to set the created loop as the + current one. By default :func:`asyncio.new_event_loop` is used and set as + current event loop with :func:`asyncio.set_event_loop` if *loop_factory* is ``None``. Basically, :func:`asyncio.run()` example can be rewritten with the runner usage:: diff --git a/Doc/library/asyncio-stream.rst b/Doc/library/asyncio-stream.rst index 97431d103cf4ba..9b468670a2521e 100644 --- a/Doc/library/asyncio-stream.rst +++ b/Doc/library/asyncio-stream.rst @@ -192,7 +192,7 @@ StreamReader can be read. Use the :attr:`IncompleteReadError.partial` attribute to get the partially read data. - .. coroutinemethod:: readuntil(separator=b'\\n') + .. coroutinemethod:: readuntil(separator=b'\n') Read data from the stream until *separator* is found. diff --git a/Doc/library/asyncio-sync.rst b/Doc/library/asyncio-sync.rst index 141733ee2c8001..05bdf5488af143 100644 --- a/Doc/library/asyncio-sync.rst +++ b/Doc/library/asyncio-sync.rst @@ -345,7 +345,7 @@ BoundedSemaphore Barrier ======= -.. class:: Barrier(parties, action=None) +.. class:: Barrier(parties) A barrier object. Not thread-safe. @@ -411,8 +411,8 @@ Barrier ... async with barrier as position: if position == 0: - # Only one task print this - print('End of *draining phasis*') + # Only one task prints this + print('End of *draining phase*') This method may raise a :class:`BrokenBarrierError` exception if the barrier is broken or reset while a task is waiting. @@ -429,7 +429,7 @@ Barrier Put the barrier into a broken state. This causes any active or future calls to :meth:`wait` to fail with the :class:`BrokenBarrierError`. - Use this for example if one of the taks needs to abort, to avoid infinite + Use this for example if one of the tasks needs to abort, to avoid infinite waiting tasks. .. attribute:: parties diff --git a/Doc/library/asyncio-task.rst b/Doc/library/asyncio-task.rst index 8e3d49dcf9d717..221197ea40ffd9 100644 --- a/Doc/library/asyncio-task.rst +++ b/Doc/library/asyncio-task.rst @@ -40,7 +40,7 @@ be executed:: >>> main() -To actually run a coroutine, asyncio provides three main mechanisms: +To actually run a coroutine, asyncio provides the following mechanisms: * The :func:`asyncio.run` function to run the top-level entry point "main()" function (see the above example.) @@ -103,6 +103,29 @@ To actually run a coroutine, asyncio provides three main mechanisms: world finished at 17:14:34 +* The :class:`asyncio.TaskGroup` class provides a more modern + alternative to :func:`create_task`. + Using this API, the last example becomes:: + + async def main(): + async with asyncio.TaskGroup() as tg: + task1 = tg.create_task( + say_after(1, 'hello')) + + task2 = tg.create_task( + say_after(2, 'world')) + + print(f"started at {time.strftime('%X')}") + + # The wait is implicit when the context manager exits. + + print(f"finished at {time.strftime('%X')}") + + The timing and output should be the same as for the previous version. + + .. versionadded:: 3.11 + :class:`asyncio.TaskGroup`. + .. _asyncio-awaitables: @@ -223,10 +246,32 @@ Creating Tasks :exc:`RuntimeError` is raised if there is no running loop in current thread. + .. note:: + + :meth:`asyncio.TaskGroup.create_task` is a newer alternative + that allows for convenient waiting for a group of related tasks. + .. important:: Save a reference to the result of this function, to avoid - a task disappearing mid execution. + a task disappearing mid-execution. The event loop only keeps + weak references to tasks. A task that isn't referenced elsewhere + may get garbage collected at any time, even before it's done. + For reliable "fire-and-forget" background tasks, gather them in + a collection:: + + background_tasks = set() + + for i in range(10): + task = asyncio.create_task(some_coro(param=i)) + + # Add task to the set. This creates a strong reference. + background_tasks.add(task) + + # To prevent keeping references to finished tasks forever, + # make each task remove its own reference from the set after + # completion: + task.add_done_callback(background_tasks.discard) .. versionadded:: 3.7 @@ -237,6 +282,95 @@ Creating Tasks Added the *context* parameter. +Task Cancellation +================= + +Tasks can easily and safely be cancelled. +When a task is cancelled, :exc:`asyncio.CancelledError` will be raised +in the task at the next opportunity. + +It is recommended that coroutines use ``try/finally`` blocks to robustly +perform clean-up logic. In case :exc:`asyncio.CancelledError` +is explicitly caught, it should generally be propagated when +clean-up is complete. Most code can safely ignore :exc:`asyncio.CancelledError`. + +Important asyncio components, like :class:`asyncio.TaskGroup` and the +:func:`asyncio.timeout` context manager, are implemented using cancellation +internally and might misbehave if a coroutine swallows +:exc:`asyncio.CancelledError`. + + +Task Groups +=========== + +Task groups combine a task creation API with a convenient +and reliable way to wait for all tasks in the group to finish. + +.. class:: TaskGroup() + + An :ref:`asynchronous context manager ` + holding a group of tasks. + Tasks can be added to the group using :meth:`create_task`. + All tasks are awaited when the context manager exits. + + .. versionadded:: 3.11 + + .. method:: create_task(coro, *, name=None, context=None) + + Create a task in this task group. + The signature matches that of :func:`asyncio.create_task`. + +Example:: + + async def main(): + async with asyncio.TaskGroup() as tg: + task1 = tg.create_task(some_coro(...)) + task2 = tg.create_task(another_coro(...)) + print("Both tasks have completed now.") + +The ``async with`` statement will wait for all tasks in the group to finish. +While waiting, new tasks may still be added to the group +(for example, by passing ``tg`` into one of the coroutines +and calling ``tg.create_task()`` in that coroutine). +Once the last task has finished and the ``async with`` block is exited, +no new tasks may be added to the group. + +The first time any of the tasks belonging to the group fails +with an exception other than :exc:`asyncio.CancelledError`, +the remaining tasks in the group are cancelled. +No further tasks can then be added to the group. +At this point, if the body of the ``async with`` statement is still active +(i.e., :meth:`~object.__aexit__` hasn't been called yet), +the task directly containing the ``async with`` statement is also cancelled. +The resulting :exc:`asyncio.CancelledError` will interrupt an ``await``, +but it will not bubble out of the containing ``async with`` statement. + +Once all tasks have finished, if any tasks have failed +with an exception other than :exc:`asyncio.CancelledError`, +those exceptions are combined in an +:exc:`ExceptionGroup` or :exc:`BaseExceptionGroup` +(as appropriate; see their documentation) +which is then raised. + +Two base exceptions are treated specially: +If any task fails with :exc:`KeyboardInterrupt` or :exc:`SystemExit`, +the task group still cancels the remaining tasks and waits for them, +but then the initial :exc:`KeyboardInterrupt` or :exc:`SystemExit` +is re-raised instead of :exc:`ExceptionGroup` or :exc:`BaseExceptionGroup`. + +If the body of the ``async with`` statement exits with an exception +(so :meth:`~object.__aexit__` is called with an exception set), +this is treated the same as if one of the tasks failed: +the remaining tasks are cancelled and then waited for, +and non-cancellation exceptions are grouped into an +exception group and raised. +The exception passed into :meth:`~object.__aexit__`, +unless it is :exc:`asyncio.CancelledError`, +is also included in the exception group. +The same special case is made for +:exc:`KeyboardInterrupt` and :exc:`SystemExit` as in the previous paragraph. + + Sleeping ======== @@ -310,8 +444,9 @@ Running Tasks Concurrently cancellation of one submitted Task/Future to cause other Tasks/Futures to be cancelled. - .. versionchanged:: 3.10 - Removed the *loop* parameter. + .. note:: + A more modern way to create and run tasks concurrently and + wait for their completion is :class:`asyncio.TaskGroup`. .. _asyncio_example_gather: @@ -385,7 +520,8 @@ Shielding From Cancellation The statement:: - res = await shield(something()) + task = asyncio.create_task(something()) + res = await shield(task) is equivalent to:: @@ -404,11 +540,19 @@ Shielding From Cancellation the ``shield()`` function should be combined with a try/except clause, as follows:: + task = asyncio.create_task(something()) try: - res = await shield(something()) + res = await shield(task) except CancelledError: res = None + .. important:: + + Save a reference to tasks passed to this function, to avoid + a task disappearing mid-execution. The event loop only keeps + weak references to tasks. A task that isn't referenced elsewhere + may get garbage collected at any time, even before it's done. + .. versionchanged:: 3.10 Removed the *loop* parameter. @@ -420,6 +564,125 @@ Shielding From Cancellation Timeouts ======== +.. coroutinefunction:: timeout(delay) + + An :ref:`asynchronous context manager ` + that can be used to limit the amount of time spent waiting on + something. + + *delay* can either be ``None``, or a float/int number of + seconds to wait. If *delay* is ``None``, no time limit will + be applied; this can be useful if the delay is unknown when + the context manager is created. + + In either case, the context manager can be rescheduled after + creation using :meth:`Timeout.reschedule`. + + Example:: + + async def main(): + async with asyncio.timeout(10): + await long_running_task() + + If ``long_running_task`` takes more than 10 seconds to complete, + the context manager will cancel the current task and handle + the resulting :exc:`asyncio.CancelledError` internally, transforming it + into an :exc:`asyncio.TimeoutError` which can be caught and handled. + + .. note:: + + The :func:`asyncio.timeout` context manager is what transforms + the :exc:`asyncio.CancelledError` into an :exc:`asyncio.TimeoutError`, + which means the :exc:`asyncio.TimeoutError` can only be caught + *outside* of the context manager. + + Example of catching :exc:`asyncio.TimeoutError`:: + + async def main(): + try: + async with asyncio.timeout(10): + await long_running_task() + except TimeoutError: + print("The long operation timed out, but we've handled it.") + + print("This statement will run regardless.") + + The context manager produced by :func:`asyncio.timeout` can be + rescheduled to a different deadline and inspected. + + .. class:: Timeout() + + An :ref:`asynchronous context manager ` + that limits time spent inside of it. + + .. versionadded:: 3.11 + + .. method:: when() -> float | None + + Return the current deadline, or ``None`` if the current + deadline is not set. + + The deadline is a float, consistent with the time returned by + :meth:`loop.time`. + + .. method:: reschedule(when: float | None) + + Change the time the timeout will trigger. + + If *when* is `None`, any current deadline will be removed, and the + context manager will wait indefinitely. + + If *when* is a float, it is set as the new deadline. + + if *when* is in the past, the timeout will trigger on the next + iteration of the event loop. + + .. method:: expired() -> bool + + Return whether the context manager has exceeded its deadline + (expired). + + Example:: + + async def main(): + try: + # We do not know the timeout when starting, so we pass ``None``. + async with asyncio.timeout(None) as cm: + # We know the timeout now, so we reschedule it. + new_deadline = get_running_loop().time() + 10 + cm.reschedule(new_deadline) + + await long_running_task() + except TimeoutError: + pass + + if cm.expired: + print("Looks like we haven't finished on time.") + + Timeout context managers can be safely nested. + + .. versionadded:: 3.11 + +.. coroutinefunction:: timeout_at(when) + + Similar to :func:`asyncio.timeout`, except *when* is the absolute time + to stop waiting, or ``None``. + + Example:: + + async def main(): + loop = get_running_loop() + deadline = loop.time() + 20 + try: + async with asyncio.timeout_at(deadline): + await long_running_task() + except TimeoutError: + print("The long operation timed out, but we've handled it.") + + print("This statement will run regardless.") + + .. versionadded:: 3.11 + .. coroutinefunction:: wait_for(aw, timeout) Wait for the *aw* :ref:`awaitable ` diff --git a/Doc/library/asyncio.rst b/Doc/library/asyncio.rst index 66c7c4c24a9183..b71006e32b2b89 100644 --- a/Doc/library/asyncio.rst +++ b/Doc/library/asyncio.rst @@ -56,6 +56,7 @@ Additionally, there are **low-level** APIs for * :ref:`bridge ` callback-based libraries and code with async/await syntax. +.. include:: ../includes/wasm-notavail.rst .. We use the "rubric" directive here to avoid creating the "Reference" subsection in the TOC. diff --git a/Doc/library/asyncore.rst b/Doc/library/asyncore.rst index 0084d754419d09..a3a4e90d05277e 100644 --- a/Doc/library/asyncore.rst +++ b/Doc/library/asyncore.rst @@ -28,6 +28,8 @@ This module provides the basic infrastructure for writing asynchronous socket service clients and servers. +.. include:: ../includes/wasm-notavail.rst + There are only two ways to have a program on a single processor do "more than one thing at a time." Multi-threaded programming is the simplest and most popular way to do it, but there is another very different technique, that lets diff --git a/Doc/library/base64.rst b/Doc/library/base64.rst index 4ff038c8d29f1a..a02ba739146aaf 100644 --- a/Doc/library/base64.rst +++ b/Doc/library/base64.rst @@ -201,7 +201,7 @@ The modern interface provides: .. versionadded:: 3.4 -.. function:: a85decode(b, *, foldspaces=False, adobe=False, ignorechars=b' \\t\\n\\r\\v') +.. function:: a85decode(b, *, foldspaces=False, adobe=False, ignorechars=b' \t\n\r\v') Decode the Ascii85 encoded :term:`bytes-like object` or ASCII string *b* and return the decoded :class:`bytes`. diff --git a/Doc/library/bdb.rst b/Doc/library/bdb.rst index 7e4066cd436ad5..7b74bbd652be38 100644 --- a/Doc/library/bdb.rst +++ b/Doc/library/bdb.rst @@ -20,20 +20,21 @@ The following exception is defined: The :mod:`bdb` module also defines two classes: -.. class:: Breakpoint(self, file, line, temporary=0, cond=None, funcname=None) +.. class:: Breakpoint(self, file, line, temporary=False, cond=None, funcname=None) This class implements temporary breakpoints, ignore counts, disabling and (re-)enabling, and conditionals. Breakpoints are indexed by number through a list called :attr:`bpbynumber` - and by ``(file, line)`` pairs through :attr:`bplist`. The former points to a - single instance of class :class:`Breakpoint`. The latter points to a list of - such instances since there may be more than one breakpoint per line. + and by ``(file, line)`` pairs through :attr:`bplist`. The former points to + a single instance of class :class:`Breakpoint`. The latter points to a list + of such instances since there may be more than one breakpoint per line. - When creating a breakpoint, its associated filename should be in canonical - form. If a *funcname* is defined, a breakpoint hit will be counted when the - first line of that function is executed. A conditional breakpoint always - counts a hit. + When creating a breakpoint, its associated :attr:`file name ` should + be in canonical form. If a :attr:`funcname` is defined, a breakpoint + :attr:`hit ` will be counted when the first line of that function is + executed. A :attr:`conditional ` breakpoint always counts a + :attr:`hit `. :class:`Breakpoint` instances have the following methods: @@ -59,12 +60,12 @@ The :mod:`bdb` module also defines two classes: Return a string with all the information about the breakpoint, nicely formatted: - * The breakpoint number. - * If it is temporary or not. - * Its file,line position. - * The condition that causes a break. - * If it must be ignored the next N times. - * The breakpoint hit count. + * Breakpoint number. + * Temporary status (del or keep). + * File/line position. + * Break condition. + * Number of times to ignore. + * Number of times hit. .. versionadded:: 3.2 @@ -73,6 +74,49 @@ The :mod:`bdb` module also defines two classes: Print the output of :meth:`bpformat` to the file *out*, or if it is ``None``, to standard output. + :class:`Breakpoint` instances have the following attributes: + + .. attribute:: file + + File name of the :class:`Breakpoint`. + + .. attribute:: line + + Line number of the :class:`Breakpoint` within :attr:`file`. + + .. attribute:: temporary + + True if a :class:`Breakpoint` at (file, line) is temporary. + + .. attribute:: cond + + Condition for evaluating a :class:`Breakpoint` at (file, line). + + .. attribute:: funcname + + Function name that defines whether a :class:`Breakpoint` is hit upon + entering the function. + + .. attribute:: enabled + + True if :class:`Breakpoint` is enabled. + + .. attribute:: bpbynumber + + Numeric index for a single instance of a :class:`Breakpoint`. + + .. attribute:: bplist + + Dictionary of :class:`Breakpoint` instances indexed by + (:attr:`file`, :attr:`line`) tuples. + + .. attribute:: ignore + + Number of times to ignore a :class:`Breakpoint`. + + .. attribute:: hits + + Count of the number of times a :class:`Breakpoint` has been hit. .. class:: Bdb(skip=None) @@ -95,9 +139,12 @@ The :mod:`bdb` module also defines two classes: .. method:: canonic(filename) - Auxiliary method for getting a filename in a canonical form, that is, as a - case-normalized (on case-insensitive filesystems) absolute path, stripped - of surrounding angle brackets. + Return canonical form of *filename*. + + For real file names, the canonical form is an operating-system-dependent, + :func:`case-normalized ` :func:`absolute path + `. A *filename* with angle brackets, such as `""` + generated in interactive mode, is returned unchanged. .. method:: reset() @@ -166,45 +213,46 @@ The :mod:`bdb` module also defines two classes: Normally derived classes don't override the following methods, but they may if they want to redefine the definition of stopping and breakpoints. + .. method:: is_skipped_line(module_name) + + Return True if *module_name* matches any skip pattern. + .. method:: stop_here(frame) - This method checks if the *frame* is somewhere below :attr:`botframe` in - the call stack. :attr:`botframe` is the frame in which debugging started. + Return True if *frame* is below the starting frame in the stack. .. method:: break_here(frame) - This method checks if there is a breakpoint in the filename and line - belonging to *frame* or, at least, in the current function. If the - breakpoint is a temporary one, this method deletes it. + Return True if there is an effective breakpoint for this line. + + Check whether a line or function breakpoint exists and is in effect. Delete temporary + breakpoints based on information from :func:`effective`. .. method:: break_anywhere(frame) - This method checks if there is a breakpoint in the filename of the current - frame. + Return True if any breakpoint exists for *frame*'s filename. Derived classes should override these methods to gain control over debugger operation. .. method:: user_call(frame, argument_list) - This method is called from :meth:`dispatch_call` when there is the - possibility that a break might be necessary anywhere inside the called - function. + Called from :meth:`dispatch_call` if a break might stop inside the + called function. .. method:: user_line(frame) - This method is called from :meth:`dispatch_line` when either - :meth:`stop_here` or :meth:`break_here` yields ``True``. + Called from :meth:`dispatch_line` when either :meth:`stop_here` or + :meth:`break_here` returns ``True``. .. method:: user_return(frame, return_value) - This method is called from :meth:`dispatch_return` when :meth:`stop_here` - yields ``True``. + Called from :meth:`dispatch_return` when :meth:`stop_here` returns ``True``. .. method:: user_exception(frame, exc_info) - This method is called from :meth:`dispatch_exception` when - :meth:`stop_here` yields ``True``. + Called from :meth:`dispatch_exception` when :meth:`stop_here` + returns ``True``. .. method:: do_clear(arg) @@ -228,9 +276,9 @@ The :mod:`bdb` module also defines two classes: Stop when returning from the given frame. - .. method:: set_until(frame) + .. method:: set_until(frame, lineno=None) - Stop when the line with the line no greater than the current one is + Stop when the line with the *lineno* greater than the current one is reached or when returning from current frame. .. method:: set_trace([frame]) @@ -253,7 +301,7 @@ The :mod:`bdb` module also defines two classes: breakpoints. These methods return a string containing an error message if something went wrong, or ``None`` if all is well. - .. method:: set_break(filename, lineno, temporary=0, cond, funcname) + .. method:: set_break(filename, lineno, temporary=False, cond=None, funcname=None) Set a new breakpoint. If the *lineno* line doesn't exist for the *filename* passed as argument, return an error message. The *filename* @@ -261,8 +309,8 @@ The :mod:`bdb` module also defines two classes: .. method:: clear_break(filename, lineno) - Delete the breakpoints in *filename* and *lineno*. If none were set, an - error message is returned. + Delete the breakpoints in *filename* and *lineno*. If none were set, + return an error message. .. method:: clear_bpbynumber(arg) @@ -272,12 +320,13 @@ The :mod:`bdb` module also defines two classes: .. method:: clear_all_file_breaks(filename) - Delete all breakpoints in *filename*. If none were set, an error message - is returned. + Delete all breakpoints in *filename*. If none were set, return an error + message. .. method:: clear_all_breaks() - Delete all existing breakpoints. + Delete all existing breakpoints. If none were set, return an error + message. .. method:: get_bpbynumber(arg) @@ -290,7 +339,7 @@ The :mod:`bdb` module also defines two classes: .. method:: get_break(filename, lineno) - Check if there is a breakpoint for *lineno* of *filename*. + Return True if there is a breakpoint for *lineno* in *filename*. .. method:: get_breaks(filename, lineno) @@ -311,16 +360,18 @@ The :mod:`bdb` module also defines two classes: .. method:: get_stack(f, t) - Get a list of records for a frame and all higher (calling) and lower - frames, and the size of the higher part. + Return a list of (frame, lineno) tuples in a stack trace, and a size. + + The most recently called frame is last in the list. The size is the number + of frames below the frame where the debugger was invoked. .. method:: format_stack_entry(frame_lineno, lprefix=': ') - Return a string with information about a stack entry, identified by a - ``(frame, lineno)`` tuple: + Return a string with information about a stack entry, which is a + ``(frame, lineno)`` tuple. The return string contains: - * The canonical form of the filename which contains the frame. - * The function name, or ``""``. + * The canonical filename which contains the frame. + * The function name or ``""``. * The input arguments. * The return value. * The line of code (if it exists). @@ -352,20 +403,34 @@ Finally, the module defines the following functions: .. function:: checkfuncname(b, frame) - Check whether we should break here, depending on the way the breakpoint *b* - was set. + Return True if we should break here, depending on the way the + :class:`Breakpoint` *b* was set. - If it was set via line number, it checks if ``b.line`` is the same as the one - in the frame also passed as argument. If the breakpoint was set via function - name, we have to check we are in the right frame (the right function) and if - we are in its first executable line. + If it was set via line number, it checks if + :attr:`b.line ` is the same as the one in *frame*. + If the breakpoint was set via + :attr:`function name `, we have to check we are in + the right *frame* (the right function) and if we are on its first executable + line. .. function:: effective(file, line, frame) - Determine if there is an effective (active) breakpoint at this line of code. - Return a tuple of the breakpoint and a boolean that indicates if it is ok - to delete a temporary breakpoint. Return ``(None, None)`` if there is no - matching breakpoint. + Return ``(active breakpoint, delete temporary flag)`` or ``(None, None)`` as the + breakpoint to act upon. + + The *active breakpoint* is the first entry in + :attr:`bplist ` for the + (:attr:`file `, :attr:`line `) + (which must exist) that is :attr:`enabled `, for + which :func:`checkfuncname` is True, and that has neither a False + :attr:`condition ` nor positive + :attr:`ignore ` count. The *flag*, meaning that a + temporary breakpoint should be deleted, is False only when the + :attr:`cond ` cannot be evaluated (in which case, + :attr:`ignore ` count is ignored). + + If no such entry exists, then (None, None) is returned. + .. function:: set_trace() diff --git a/Doc/library/bisect.rst b/Doc/library/bisect.rst index 513675d3685a52..7856bf67a7b829 100644 --- a/Doc/library/bisect.rst +++ b/Doc/library/bisect.rst @@ -13,10 +13,16 @@ This module provides support for maintaining a list in sorted order without having to sort the list after each insertion. For long lists of items with -expensive comparison operations, this can be an improvement over the more common -approach. The module is called :mod:`bisect` because it uses a basic bisection -algorithm to do its work. The source code may be most useful as a working -example of the algorithm (the boundary conditions are already right!). +expensive comparison operations, this can be an improvement over +linear searches or frequent resorting. + +The module is called :mod:`bisect` because it uses a basic bisection +algorithm to do its work. Unlike other bisection tools that search for a +specific value, the functions in this module are designed to locate an +insertion point. Accordingly, the functions never call an :meth:`__eq__` +method to determine whether a value has been found. Instead, the +functions only call the :meth:`__lt__` method and will return an insertion +point between values in an array. The following functions are provided: @@ -30,16 +36,17 @@ The following functions are provided: any existing entries. The return value is suitable for use as the first parameter to ``list.insert()`` assuming that *a* is already sorted. - The returned insertion point *i* partitions the array *a* into two halves so - that ``all(val < x for val in a[lo : i])`` for the left side and - ``all(val >= x for val in a[i : hi])`` for the right side. + The returned insertion point *ip* partitions the array *a* into two + slices such that ``all(elem < x for elem in a[lo : ip])`` is true for the + left slice and ``all(elem >= x for elem in a[ip : hi])`` is true for the + right slice. *key* specifies a :term:`key function` of one argument that is used to extract a comparison key from each element in the array. To support searching complex records, the key function is not applied to the *x* value. - If *key* is ``None``, the elements are compared directly with no - intervening function call. + If *key* is ``None``, the elements are compared directly and + no key function is called. .. versionchanged:: 3.10 Added the *key* parameter. @@ -51,16 +58,9 @@ The following functions are provided: Similar to :func:`bisect_left`, but returns an insertion point which comes after (to the right of) any existing entries of *x* in *a*. - The returned insertion point *i* partitions the array *a* into two halves so - that ``all(val <= x for val in a[lo : i])`` for the left side and - ``all(val > x for val in a[i : hi])`` for the right side. - - *key* specifies a :term:`key function` of one argument that is used to - extract a comparison key from each element in the array. To support - searching complex records, the key function is not applied to the *x* value. - - If *key* is ``None``, the elements are compared directly with no - intervening function call. + The returned insertion point *ip* partitions the array *a* into two slices + such that ``all(elem <= x for elem in a[lo : ip])`` is true for the left slice and + ``all(elem > x for elem in a[ip : hi])`` is true for the right slice. .. versionchanged:: 3.10 Added the *key* parameter. @@ -216,7 +216,7 @@ records in a table:: ... Movie('Aliens', 1986, 'Scott') ... ] - >>> # Find the first movie released on or after 1960 + >>> # Find the first movie released after 1960 >>> by_year = attrgetter('released') >>> movies.sort(key=by_year) >>> movies[bisect(movies, 1960, key=by_year)] diff --git a/Doc/library/cgi.rst b/Doc/library/cgi.rst index 5976c90029c22a..295a601a7bf197 100644 --- a/Doc/library/cgi.rst +++ b/Doc/library/cgi.rst @@ -19,6 +19,12 @@ The :mod:`cgi` module is deprecated (see :pep:`PEP 594 <594#cgi>` for details and alternatives). + The :class:`FieldStorage` class can typically be replaced with + :func:`urllib.parse.parse_qsl` for ``GET`` and ``HEAD`` requests, + and the :mod:`email.message` module or + `multipart `_ for ``POST`` and ``PUT``. + Most :ref:`utility functions ` have replacements. + -------------- Support module for Common Gateway Interface (CGI) scripts. @@ -31,6 +37,7 @@ size of a POST request. POST requests larger than this size will result in a :exc:`ValueError` being raised during parsing. The default value of this variable is ``0``, meaning the request size is unlimited. +.. include:: ../includes/wasm-notavail.rst Introduction ------------ @@ -293,6 +300,12 @@ algorithms implemented in this module in other circumstances. ``sys.stdin``). The *keep_blank_values*, *strict_parsing* and *separator* parameters are passed to :func:`urllib.parse.parse_qs` unchanged. + .. deprecated-removed:: 3.11 3.13 + This function, like the rest of the :mod:`cgi` module, is deprecated. + It can be replaced by calling :func:`urllib.parse.parse_qs` directly + on the desired query string (except for ``multipart/form-data`` input, + which can be handled as described for :func:`parse_multipart`). + .. function:: parse_multipart(fp, pdict, encoding="utf-8", errors="replace", separator="&") @@ -316,12 +329,31 @@ algorithms implemented in this module in other circumstances. .. versionchanged:: 3.10 Added the *separator* parameter. + .. deprecated-removed:: 3.11 3.13 + This function, like the rest of the :mod:`cgi` module, is deprecated. + It can be replaced with the functionality in the :mod:`email` package + (e.g. :class:`email.message.EmailMessage`/:class:`email.message.Message`) + which implements the same MIME RFCs, or with the + `multipart `__ PyPI project. + .. function:: parse_header(string) Parse a MIME header (such as :mailheader:`Content-Type`) into a main value and a dictionary of parameters. + .. deprecated-removed:: 3.11 3.13 + This function, like the rest of the :mod:`cgi` module, is deprecated. + It can be replaced with the functionality in the :mod:`email` package, + which implements the same MIME RFCs. + + For example, with :class:`email.message.EmailMessage`:: + + from email.message import EmailMessage + msg = EmailMessage() + msg['content-type'] = 'application/json; charset="utf8"' + main, params = msg.get_content_type(), msg['content-type'].params + .. function:: test() diff --git a/Doc/library/codecs.rst b/Doc/library/codecs.rst index d131408175fd16..4a665f2254f8a6 100644 --- a/Doc/library/codecs.rst +++ b/Doc/library/codecs.rst @@ -1530,7 +1530,7 @@ functions can be used directly if desired. This module implements the ANSI codepage (CP_ACP). -.. availability:: Windows only. +.. availability:: Windows. .. versionchanged:: 3.3 Support any error handler. diff --git a/Doc/library/collections.rst b/Doc/library/collections.rst index 67b64ddda7a2ca..20863837fa1b8f 100644 --- a/Doc/library/collections.rst +++ b/Doc/library/collections.rst @@ -664,7 +664,7 @@ added elements by appending to the right and popping to the left:: def moving_average(iterable, n=3): # moving_average([40, 30, 50, 46, 39, 44]) --> 40.0 42.0 45.0 43.0 - # http://en.wikipedia.org/wiki/Moving_average + # https://en.wikipedia.org/wiki/Moving_average it = iter(iterable) d = deque(itertools.islice(it, n-1)) d.appendleft(0) diff --git a/Doc/library/compileall.rst b/Doc/library/compileall.rst index de34664acb84ab..7af46cf3200878 100644 --- a/Doc/library/compileall.rst +++ b/Doc/library/compileall.rst @@ -14,6 +14,7 @@ This module can be used to create the cached byte-code files at library installation time, which makes them available for use even by users who don't have write permission to the library directories. +.. include:: ../includes/wasm-notavail.rst Command-line use ---------------- diff --git a/Doc/library/concurrent.futures.rst b/Doc/library/concurrent.futures.rst index 99703ff3051d47..95c9e50991423f 100644 --- a/Doc/library/concurrent.futures.rst +++ b/Doc/library/concurrent.futures.rst @@ -19,6 +19,7 @@ The asynchronous execution can be performed with threads, using :class:`ProcessPoolExecutor`. Both implement the same interface, which is defined by the abstract :class:`Executor` class. +.. include:: ../includes/wasm-notavail.rst Executor Objects ---------------- @@ -149,6 +150,13 @@ And:: An :class:`Executor` subclass that uses a pool of at most *max_workers* threads to execute calls asynchronously. + All threads enqueued to ``ThreadPoolExecutor`` will be joined before the + interpreter can exit. Note that the exit handler which does this is + executed *before* any exit handlers added using `atexit`. This means + exceptions in the main thread must be caught and handled in order to + signal threads to exit gracefully. For this reason, it is recommended + that ``ThreadPoolExecutor`` not be used for long-running tasks. + *initializer* is an optional callable that is called at the start of each worker thread; *initargs* is a tuple of arguments passed to the initializer. Should *initializer* raise an exception, all currently @@ -257,7 +265,7 @@ to a :class:`ProcessPoolExecutor` will result in deadlock. replaced with a fresh worker process. By default *max_tasks_per_child* is ``None`` which means worker processes will live as long as the pool. When a max is specified, the "spawn" multiprocessing start method will be used by - default in absense of a *mp_context* parameter. This feature is incompatible + default in absence of a *mp_context* parameter. This feature is incompatible with the "fork" start method. .. versionchanged:: 3.3 diff --git a/Doc/library/configparser.rst b/Doc/library/configparser.rst index 72aa20d73d8bd3..bf49f2bfbe1b43 100644 --- a/Doc/library/configparser.rst +++ b/Doc/library/configparser.rst @@ -1206,28 +1206,6 @@ ConfigParser Objects names is stripped before :meth:`optionxform` is called. - .. method:: readfp(fp, filename=None) - - .. deprecated:: 3.2 - Use :meth:`read_file` instead. - - .. versionchanged:: 3.2 - :meth:`readfp` now iterates on *fp* instead of calling ``fp.readline()``. - - For existing code calling :meth:`readfp` with arguments which don't - support iteration, the following generator may be used as a wrapper - around the file-like object:: - - def readline_generator(fp): - line = fp.readline() - while line: - yield line - line = fp.readline() - - Instead of ``parser.readfp(fp)`` use - ``parser.read_file(readline_generator(fp))``. - - .. data:: MAX_INTERPOLATION_DEPTH The maximum depth for recursive interpolation for :meth:`get` when the *raw* @@ -1361,10 +1339,9 @@ Exceptions Exception raised when errors occur attempting to parse a file. - .. versionchanged:: 3.2 - The ``filename`` attribute and :meth:`__init__` argument were renamed to - ``source`` for consistency. - +.. versionchanged:: 3.12 + The ``filename`` attribute and :meth:`__init__` constructor argument were + removed. They have been available using the name ``source`` since 3.2. .. rubric:: Footnotes diff --git a/Doc/library/contextlib.rst b/Doc/library/contextlib.rst index 84c4ca098c6015..2d28fb35a9e316 100644 --- a/Doc/library/contextlib.rst +++ b/Doc/library/contextlib.rst @@ -361,7 +361,7 @@ Functions and classes provided: As this changes a global state, the working directory, it is not suitable for use in most threaded or async contexts. It is also not suitable for most non-linear code execution, like generators, where the program execution is - temporarily relinquished -- unless explicitely desired, you should not yield + temporarily relinquished -- unless explicitly desired, you should not yield when this context manager is active. This is a simple wrapper around :func:`~os.chdir`, it changes the current diff --git a/Doc/library/crypt.rst b/Doc/library/crypt.rst index efba4236bcbccc..740084b40c5ac9 100644 --- a/Doc/library/crypt.rst +++ b/Doc/library/crypt.rst @@ -36,7 +36,9 @@ the :manpage:`crypt(3)` routine in the running system. Therefore, any extensions available on the current implementation will also be available on this module. -.. availability:: Unix. Not available on VxWorks. +.. availability:: Unix, not VxWorks. + +.. include:: ../includes/wasm-notavail.rst Hashing Methods --------------- diff --git a/Doc/library/csv.rst b/Doc/library/csv.rst index 9dec7240d9c50f..0cab95e1500a66 100644 --- a/Doc/library/csv.rst +++ b/Doc/library/csv.rst @@ -167,6 +167,8 @@ The :mod:`csv` module defines the following classes: All other optional or keyword arguments are passed to the underlying :class:`reader` instance. + If the argument passed to *fieldnames* is an iterator, it will be coerced to a :class:`list`. + .. versionchanged:: 3.6 Returned rows are now of type :class:`OrderedDict`. @@ -209,6 +211,8 @@ The :mod:`csv` module defines the following classes: Note that unlike the :class:`DictReader` class, the *fieldnames* parameter of the :class:`DictWriter` class is not optional. + If the argument passed to *fieldnames* is an iterator, it will be coerced to a :class:`list`. + A short usage example:: import csv diff --git a/Doc/library/ctypes.rst b/Doc/library/ctypes.rst index 52950b551b7560..9546696e1c3d76 100644 --- a/Doc/library/ctypes.rst +++ b/Doc/library/ctypes.rst @@ -148,15 +148,14 @@ Calling functions ^^^^^^^^^^^^^^^^^ You can call these functions like any other Python callable. This example uses -the ``time()`` function, which returns system time in seconds since the Unix -epoch, and the ``GetModuleHandleA()`` function, which returns a win32 module -handle. +the ``rand()`` function, which takes no arguments and returns a pseudo-random integer:: -This example calls both functions with a ``NULL`` pointer (``None`` should be used -as the ``NULL`` pointer):: + >>> print(libc.rand()) # doctest: +SKIP + 1804289383 + +On Windows, you can call the ``GetModuleHandleA()`` function, which returns a win32 module +handle (passing ``None`` as single argument to call it with a ``NULL`` pointer):: - >>> print(libc.time(None)) # doctest: +SKIP - 1150640792 >>> print(hex(windll.kernel32.GetModuleHandleA(None))) # doctest: +WINDOWS 0x1d000000 >>> @@ -247,6 +246,8 @@ Fundamental data types | :class:`c_ssize_t` | :c:type:`ssize_t` or | int | | | :c:type:`Py_ssize_t` | | +----------------------+------------------------------------------+----------------------------+ +| :class:`c_time_t` | :c:type:`time_t` | int | ++----------------------+------------------------------------------+----------------------------+ | :class:`c_float` | :c:type:`float` | float | +----------------------+------------------------------------------+----------------------------+ | :class:`c_double` | :c:type:`double` | float | @@ -447,6 +448,21 @@ By default functions are assumed to return the C :c:type:`int` type. Other return types can be specified by setting the :attr:`restype` attribute of the function object. +The C prototype of ``time()`` is ``time_t time(time_t *)``. Because ``time_t`` +might be of a different type than the default return type ``int``, you should +specify the ``restype``:: + + >>> libc.time.restype = c_time_t + +The argument types can be specified using ``argtypes``:: + + >>> libc.time.argtypes = (POINTER(c_time_t),) + +To call the function with a ``NULL`` pointer as first argument, use ``None``:: + + >>> print(libc.time(None)) # doctest: +SKIP + 1150640792 + Here is a more advanced example, it uses the ``strchr`` function, which expects a string pointer and a char, and returns a pointer to a string:: @@ -1052,18 +1068,16 @@ Accessing values exported from dlls ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Some shared libraries not only export functions, they also export variables. An -example in the Python library itself is the :c:data:`Py_OptimizeFlag`, an integer -set to 0, 1, or 2, depending on the :option:`-O` or :option:`-OO` flag given on -startup. +example in the Python library itself is the :c:data:`Py_Version`, Python +runtime version number encoded in a single constant integer. :mod:`ctypes` can access values like this with the :meth:`in_dll` class methods of the type. *pythonapi* is a predefined symbol giving access to the Python C api:: - >>> opt_flag = c_int.in_dll(pythonapi, "Py_OptimizeFlag") - >>> print(opt_flag) - c_long(0) - >>> + >>> version = ctypes.c_int.in_dll(ctypes.pythonapi, "Py_Version") + >>> print(hex(version.value)) + 0x30c00a0 If the interpreter would have been started with :option:`-O`, the sample would have printed ``c_long(1)``, or ``c_long(2)`` if :option:`-OO` would have been @@ -2275,6 +2289,13 @@ These are the fundamental ctypes data types: .. versionadded:: 3.2 +.. class:: c_time_t + + Represents the C :c:type:`time_t` datatype. + + .. versionadded:: 3.12 + + .. class:: c_ubyte Represents the C :c:type:`unsigned char` datatype, it interprets the value as diff --git a/Doc/library/custominterp.rst b/Doc/library/custominterp.rst index 5eeced20a9a594..9ea9e901372ee4 100644 --- a/Doc/library/custominterp.rst +++ b/Doc/library/custominterp.rst @@ -8,7 +8,7 @@ The modules described in this chapter allow writing interfaces similar to Python's interactive interpreter. If you want a Python interpreter that supports some special feature in addition to the Python language, you should look at the :mod:`code` module. (The :mod:`codeop` module is lower-level, used -to support compiling a possibly-incomplete chunk of Python code.) +to support compiling a possibly incomplete chunk of Python code.) The full list of modules described in this chapter is: diff --git a/Doc/library/dataclasses.rst b/Doc/library/dataclasses.rst index ec50696ea89d40..4364ac342471eb 100644 --- a/Doc/library/dataclasses.rst +++ b/Doc/library/dataclasses.rst @@ -749,3 +749,54 @@ mutable types as default values for fields:: ``dict``, or ``set``, unhashable objects are now not allowed as default values. Unhashability is used to approximate mutability. + +Descriptor-typed fields +----------------------- + +Fields that are assigned :ref:`descriptor objects ` as their +default value have the following special behaviors: + +* The value for the field passed to the dataclass's ``__init__`` method is + passed to the descriptor's ``__set__`` method rather than overwriting the + descriptor object. +* Similarly, when getting or setting the field, the descriptor's + ``__get__`` or ``__set__`` method is called rather than returning or + overwriting the descriptor object. +* To determine whether a field contains a default value, ``dataclasses`` + will call the descriptor's ``__get__`` method using its class access + form (i.e. ``descriptor.__get__(obj=None, type=cls)``. If the + descriptor returns a value in this case, it will be used as the + field's default. On the other hand, if the descriptor raises + :exc:`AttributeError` in this situation, no default value will be + provided for the field. + +:: + + class IntConversionDescriptor: + def __init__(self, *, default): + self._default = default + + def __set_name__(self, owner, name): + self._name = "_" + name + + def __get__(self, obj, type): + if obj is None: + return self._default + + return getattr(obj, self._name, self._default) + + def __set__(self, obj, value): + setattr(obj, self._name, int(value)) + + @dataclass + class InventoryItem: + quantity_on_hand: IntConversionDescriptor = IntConversionDescriptor(default=100) + + i = InventoryItem() + print(i.quantity_on_hand) # 100 + i.quantity_on_hand = 2.5 # calls __set__ with 2.5 + print(i.quantity_on_hand) # 2 + +Note that if a field is annotated with a descriptor type, but is not assigned +a descriptor object as its default value, the field will act like a normal +field. diff --git a/Doc/library/datetime.rst b/Doc/library/datetime.rst index bde24ec5f2e11e..c3a66a4674b10a 100644 --- a/Doc/library/datetime.rst +++ b/Doc/library/datetime.rst @@ -589,8 +589,8 @@ Supported operations: +-------------------------------+----------------------------------------------+ | Operation | Result | +===============================+==============================================+ -| ``date2 = date1 + timedelta`` | *date2* is ``timedelta.days`` days removed | -| | from *date1*. (1) | +| ``date2 = date1 + timedelta`` | *date2* will be ``timedelta.days`` days | +| | after *date1*. (1) | +-------------------------------+----------------------------------------------+ | ``date2 = date1 - timedelta`` | Computes *date2* such that ``date2 + | | | timedelta == date1``. (2) | @@ -1370,8 +1370,8 @@ Instance methods: time and this method relies on the platform C :c:func:`mktime` function to perform the conversion. Since :class:`.datetime` supports wider range of values than :c:func:`mktime` on many - platforms, this method may raise :exc:`OverflowError` for times far - in the past or far in the future. + platforms, this method may raise :exc:`OverflowError` or :exc:`OSError` + for times far in the past or far in the future. For aware :class:`.datetime` instances, the return value is computed as:: @@ -2443,6 +2443,11 @@ convenience. These parameters all correspond to ISO 8601 date values. | | Week 01 is the week containing | | | | | Jan 4. | | | +-----------+--------------------------------+------------------------+-------+ +| ``%:z`` | UTC offset in the form | (empty), +00:00, | \(6) | +| | ``±HH:MM[:SS[.ffffff]]`` | -04:00, +10:30, | | +| | (empty string if the object is | +06:34:15, | | +| | naive). | -03:07:12.345216 | | ++-----------+--------------------------------+------------------------+-------+ These may not be available on all platforms when used with the :meth:`strftime` method. The ISO 8601 year and ISO 8601 week directives are not interchangeable @@ -2458,6 +2463,9 @@ differences between platforms in handling of unsupported format specifiers. .. versionadded:: 3.6 ``%G``, ``%u`` and ``%V`` were added. +.. versionadded:: 3.12 + ``%:z`` was added. + Technical Detail ^^^^^^^^^^^^^^^^ @@ -2530,8 +2538,8 @@ Notes: available). (6) - For a naive object, the ``%z`` and ``%Z`` format codes are replaced by empty - strings. + For a naive object, the ``%z``, ``%:z`` and ``%Z`` format codes are replaced + by empty strings. For an aware object: @@ -2557,6 +2565,10 @@ Notes: For example, ``'+01:00:00'`` will be parsed as an offset of one hour. In addition, providing ``'Z'`` is identical to ``'+00:00'``. + ``%:z`` + Behaves exactly as ``%z``, but has a colon separator added between + hours, minutes and seconds. + ``%Z`` In :meth:`strftime`, ``%Z`` is replaced by an empty string if :meth:`tzname` returns ``None``; otherwise ``%Z`` is replaced by the @@ -2603,7 +2615,7 @@ Notes: many other calendar systems. .. [#] See R. H. van Gent's `guide to the mathematics of the ISO 8601 calendar - `_ + `_ for a good explanation. .. [#] Passing ``datetime.strptime('Feb 29', '%b %d')`` will fail since ``1900`` is not a leap year. diff --git a/Doc/library/decimal.rst b/Doc/library/decimal.rst index d052581c970124..e7d3950fd14387 100644 --- a/Doc/library/decimal.rst +++ b/Doc/library/decimal.rst @@ -30,7 +30,7 @@ -------------- -The :mod:`decimal` module provides support for fast correctly-rounded +The :mod:`decimal` module provides support for fast correctly rounded decimal floating point arithmetic. It offers several advantages over the :class:`float` datatype: @@ -1371,16 +1371,16 @@ In addition to the three supplied contexts, new contexts can be created with the With two arguments, compute ``x**y``. If ``x`` is negative then ``y`` must be integral. The result will be inexact unless ``y`` is integral and the result is finite and can be expressed exactly in 'precision' digits. - The rounding mode of the context is used. Results are always correctly-rounded + The rounding mode of the context is used. Results are always correctly rounded in the Python version. ``Decimal(0) ** Decimal(0)`` results in ``InvalidOperation``, and if ``InvalidOperation`` is not trapped, then results in ``Decimal('NaN')``. .. versionchanged:: 3.3 - The C module computes :meth:`power` in terms of the correctly-rounded + The C module computes :meth:`power` in terms of the correctly rounded :meth:`exp` and :meth:`ln` functions. The result is well-defined but - only "almost always correctly-rounded". + only "almost always correctly rounded". With three arguments, compute ``(x**y) % modulo``. For the three argument form, the following restrictions on the arguments hold: @@ -2151,7 +2151,7 @@ Q. Is the CPython implementation fast for large numbers? A. Yes. In the CPython and PyPy3 implementations, the C/CFFI versions of the decimal module integrate the high speed `libmpdec `_ library for -arbitrary precision correctly-rounded decimal floating point arithmetic [#]_. +arbitrary precision correctly rounded decimal floating point arithmetic [#]_. ``libmpdec`` uses `Karatsuba multiplication `_ for medium-sized numbers and the `Number Theoretic Transform diff --git a/Doc/library/difflib.rst b/Doc/library/difflib.rst index 10f8808d33b160..c5a279688a4491 100644 --- a/Doc/library/difflib.rst +++ b/Doc/library/difflib.rst @@ -149,7 +149,7 @@ diffs. For comparing directories and files, see also, the :mod:`filecmp` module. contains a good example of its use. -.. function:: context_diff(a, b, fromfile='', tofile='', fromfiledate='', tofiledate='', n=3, lineterm='\\n') +.. function:: context_diff(a, b, fromfile='', tofile='', fromfiledate='', tofiledate='', n=3, lineterm='\n') Compare *a* and *b* (lists of strings); return a delta (a :term:`generator` generating the delta lines) in context diff format. @@ -279,7 +279,7 @@ diffs. For comparing directories and files, see also, the :mod:`filecmp` module. emu -.. function:: unified_diff(a, b, fromfile='', tofile='', fromfiledate='', tofiledate='', n=3, lineterm='\\n') +.. function:: unified_diff(a, b, fromfile='', tofile='', fromfiledate='', tofiledate='', n=3, lineterm='\n') Compare *a* and *b* (lists of strings); return a delta (a :term:`generator` generating the delta lines) in unified diff format. @@ -321,7 +321,7 @@ diffs. For comparing directories and files, see also, the :mod:`filecmp` module. See :ref:`difflib-interface` for a more detailed example. -.. function:: diff_bytes(dfunc, a, b, fromfile=b'', tofile=b'', fromfiledate=b'', tofiledate=b'', n=3, lineterm=b'\\n') +.. function:: diff_bytes(dfunc, a, b, fromfile=b'', tofile=b'', fromfiledate=b'', tofiledate=b'', n=3, lineterm=b'\n') Compare *a* and *b* (lists of bytes objects) using *dfunc*; yield a sequence of delta lines (also bytes) in the format returned by *dfunc*. @@ -353,9 +353,9 @@ diffs. For comparing directories and files, see also, the :mod:`filecmp` module. .. seealso:: - `Pattern Matching: The Gestalt Approach `_ + `Pattern Matching: The Gestalt Approach `_ Discussion of a similar algorithm by John W. Ratcliff and D. E. Metzener. This - was published in `Dr. Dobb's Journal `_ in July, 1988. + was published in `Dr. Dobb's Journal `_ in July, 1988. .. _sequence-matcher: diff --git a/Doc/library/dis.rst b/Doc/library/dis.rst index 8bc3721109b1ea..47e4bf60072170 100644 --- a/Doc/library/dis.rst +++ b/Doc/library/dis.rst @@ -6,6 +6,12 @@ **Source code:** :source:`Lib/dis.py` +.. testsetup:: + + import dis + def myfunc(alist): + return len(alist) + -------------- The :mod:`dis` module supports the analysis of CPython :term:`bytecode` by @@ -37,16 +43,17 @@ Example: Given the function :func:`myfunc`:: return len(alist) the following command can be used to display the disassembly of -:func:`myfunc`:: +:func:`myfunc`: - >>> dis.dis(myfunc) - 1 0 RESUME 0 +.. doctest:: - 2 2 PUSH_NULL - 4 LOAD_GLOBAL 1 (NULL + len) - 6 LOAD_FAST 0 (alist) - 8 CALL 1 - 18 RETURN_VALUE + >>> dis.dis(myfunc) + 2 0 RESUME 0 + + 3 2 LOAD_GLOBAL 1 (NULL + len) + 14 LOAD_FAST 0 (alist) + 16 CALL 1 + 26 RETURN_VALUE (The "2" is a line number). @@ -108,14 +115,15 @@ code. .. versionchanged:: 3.11 Added the ``show_caches`` parameter. -Example:: +Example: + +.. doctest:: >>> bytecode = dis.Bytecode(myfunc) >>> for instr in bytecode: ... print(instr.opname) ... RESUME - PUSH_NULL LOAD_GLOBAL LOAD_FAST CALL @@ -258,15 +266,17 @@ operation is being performed, so the intermediate analysis object isn't useful: .. function:: findlinestarts(code) - This generator function uses the ``co_firstlineno`` and ``co_lnotab`` - attributes of the code object *code* to find the offsets which are starts of + This generator function uses the ``co_lines`` method + of the code object *code* to find the offsets which are starts of lines in the source code. They are generated as ``(offset, lineno)`` pairs. - See :source:`Objects/lnotab_notes.txt` for the ``co_lnotab`` format and - how to decode it. .. versionchanged:: 3.6 Line numbers can be decreasing. Before, they were always increasing. + .. versionchanged:: 3.10 + The :pep:`626` ``co_lines`` method is used instead of the ``co_firstlineno`` + and ``co_lnotab`` attributes of the code object. + .. function:: findlabels(code) @@ -398,6 +408,24 @@ The Python compiler currently generates the following bytecode instructions. .. versionadded:: 3.11 +.. opcode:: CACHE + + Rather than being an actual instruction, this opcode is used to mark extra + space for the interpreter to cache useful data directly in the bytecode + itself. It is automatically hidden by all ``dis`` utilities, but can be + viewed with ``show_caches=True``. + + Logically, this space is part of the preceding instruction. Many opcodes + expect to be followed by an exact number of caches, and will instruct the + interpreter to skip over them at runtime. + + Populated caches can look like arbitrary instructions, so great care should + be taken when reading or modifying raw, adaptive bytecode containing + quickened data. + + .. versionadded:: 3.11 + + **Unary operations** Unary operations take the top of the stack, apply the operation, and push the @@ -438,12 +466,13 @@ result back on the stack. **Binary and in-place operations** -Binary operations remove the top of the stack (TOS) and the second top-most -stack item (TOS1) from the stack. They perform the operation, and put the -result back on the stack. +In the following, TOS is the top-of-stack. +TOS1, TOS2, TOS3 are the second, third and fourth items on the stack, respectively. + +Binary operations remove the top two items from the stack (TOS and TOS1). +They perform the operation, then put the result back on the stack. -In-place operations are like binary operations, in that they remove TOS and -TOS1, and push the result back on the stack, but the operation is done in-place +In-place operations are like binary operations, but the operation is done in-place when TOS1 supports it, and the resulting TOS may be (but does not have to be) the original TOS1. @@ -452,6 +481,7 @@ the original TOS1. Implements the binary and in-place operators (depending on the value of *op*). + ``TOS = TOS1 op TOS``. .. versionadded:: 3.11 @@ -471,6 +501,20 @@ the original TOS1. Implements ``del TOS1[TOS]``. +.. opcode:: BINARY_SLICE + + Implements ``TOS = TOS2[TOS1:TOS]``. + + .. versionadded:: 3.12 + + +.. opcode:: STORE_SLICE + + Implements ``TOS2[TOS1:TOS] = TOS3``. + + .. versionadded:: 3.12 + + **Coroutine opcodes** .. opcode:: GET_AWAITABLE (where) @@ -504,8 +548,8 @@ the original TOS1. .. opcode:: GET_ANEXT - Implements ``PUSH(get_awaitable(TOS.__anext__()))``. See ``GET_AWAITABLE`` - for details about ``get_awaitable`` + Pushes ``get_awaitable(TOS.__anext__())`` to the stack. See + ``GET_AWAITABLE`` for details about ``get_awaitable``. .. versionadded:: 3.5 @@ -523,6 +567,17 @@ the original TOS1. .. versionchanged:: 3.11 Exception representation on the stack now consist of one, not three, items. + +.. opcode:: CLEANUP_THROW + + Handles an exception raised during a :meth:`~generator.throw` or + :meth:`~generator.close` call through the current frame. If TOS is an + instance of :exc:`StopIteration`, pop three values from the stack and push + its ``value`` member. Otherwise, re-raise TOS. + + .. versionadded:: 3.12 + + .. opcode:: BEFORE_ASYNC_WITH Resolves ``__aenter__`` and ``__aexit__`` from the object on top of the @@ -578,12 +633,6 @@ iterations of the loop. .. versionchanged:: 3.11 oparg set to be the stack depth, for efficient handling on frames. -.. opcode:: YIELD_FROM - - Pops TOS and delegates to it as a subiterator from a :term:`generator`. - - .. versionadded:: 3.3 - .. opcode:: SETUP_ANNOTATIONS @@ -879,7 +928,20 @@ iterations of the loop. .. opcode:: LOAD_ATTR (namei) - Replaces TOS with ``getattr(TOS, co_names[namei])``. + If the low bit of ``namei`` is not set, this replaces TOS with + ``getattr(TOS, co_names[namei>>1])``. + + If the low bit of ``namei`` is set, this will attempt to load a method named + ``co_names[namei>>1]`` from the TOS object. TOS is popped. + This bytecode distinguishes two cases: if TOS has a method with the correct + name, the bytecode pushes the unbound method and TOS. TOS will be used as + the first argument (``self``) by :opcode:`CALL` when calling the + unbound method. Otherwise, ``NULL`` and the object return by the attribute + lookup are pushed. + + .. versionchanged:: 3.12 + If the low bit of ``namei`` is set, then a ``NULL`` or ``self`` is + pushed to the stack before the attribute or unbound method respectively. .. opcode:: COMPARE_OP (opname) @@ -937,60 +999,48 @@ iterations of the loop. .. versionadded:: 3.11 -.. opcode:: POP_JUMP_FORWARD_IF_TRUE (delta) +.. opcode:: POP_JUMP_IF_TRUE (delta) If TOS is true, increments the bytecode counter by *delta*. TOS is popped. - .. versionadded:: 3.11 - - -.. opcode:: POP_JUMP_BACKWARD_IF_TRUE (delta) - - If TOS is true, decrements the bytecode counter by *delta*. TOS is popped. - - .. versionadded:: 3.11 + .. versionchanged:: 3.11 + The oparg is now a relative delta rather than an absolute target. + This opcode is a pseudo-instruction, replaced in final bytecode by + the directed versions (forward/backward). + .. versionchanged:: 3.12 + This is no longer a pseudo-instruction. -.. opcode:: POP_JUMP_FORWARD_IF_FALSE (delta) +.. opcode:: POP_JUMP_IF_FALSE (delta) If TOS is false, increments the bytecode counter by *delta*. TOS is popped. - .. versionadded:: 3.11 - - -.. opcode:: POP_JUMP_BACKWARD_IF_FALSE (delta) - - If TOS is false, decrements the bytecode counter by *delta*. TOS is popped. - - .. versionadded:: 3.11 + .. versionchanged:: 3.11 + The oparg is now a relative delta rather than an absolute target. + This opcode is a pseudo-instruction, replaced in final bytecode by + the directed versions (forward/backward). + .. versionchanged:: 3.12 + This is no longer a pseudo-instruction. -.. opcode:: POP_JUMP_FORWARD_IF_NOT_NONE (delta) +.. opcode:: POP_JUMP_IF_NOT_NONE (delta) If TOS is not ``None``, increments the bytecode counter by *delta*. TOS is popped. .. versionadded:: 3.11 - -.. opcode:: POP_JUMP_BACKWARD_IF_NOT_NONE (delta) - - If TOS is not ``None``, decrements the bytecode counter by *delta*. TOS is popped. - - .. versionadded:: 3.11 + .. versionchanged:: 3.12 + This is no longer a pseudo-instruction. -.. opcode:: POP_JUMP_FORWARD_IF_NONE (delta) +.. opcode:: POP_JUMP_IF_NONE (delta) If TOS is ``None``, increments the bytecode counter by *delta*. TOS is popped. .. versionadded:: 3.11 - -.. opcode:: POP_JUMP_BACKWARD_IF_NONE (delta) - - If TOS is ``None``, decrements the bytecode counter by *delta*. TOS is popped. - - .. versionadded:: 3.11 + .. versionchanged:: 3.12 + This is no longer a pseudo-instruction. .. opcode:: JUMP_IF_TRUE_OR_POP (delta) @@ -1034,6 +1084,17 @@ iterations of the loop. Pushes a reference to the local ``co_varnames[var_num]`` onto the stack. + .. versionchanged:: 3.12 + This opcode is now only used in situations where the local variable is + guaranteed to be initialized. It cannot raise :exc:`UnboundLocalError`. + +.. opcode:: LOAD_FAST_CHECK (var_num) + + Pushes a reference to the local ``co_varnames[var_num]`` onto the stack, + raising an :exc:`UnboundLocalError` if the local variable has not been + initialized. + + .. versionadded:: 3.12 .. opcode:: STORE_FAST (var_num) @@ -1170,18 +1231,6 @@ iterations of the loop. .. versionadded:: 3.6 -.. opcode:: LOAD_METHOD (namei) - - Loads a method named ``co_names[namei]`` from the TOS object. TOS is popped. - This bytecode distinguishes two cases: if TOS has a method with the correct - name, the bytecode pushes the unbound method and TOS. TOS will be used as - the first argument (``self``) by :opcode:`CALL` when calling the - unbound method. Otherwise, ``NULL`` and the object return by the attribute - lookup are pushed. - - .. versionadded:: 3.7 - - .. opcode:: PUSH_NULL Pushes a ``NULL`` to the stack. @@ -1294,10 +1343,14 @@ iterations of the loop. .. versionadded:: 3.11 -.. opcode:: SEND +.. opcode:: SEND (delta) + + Equivalent to ``TOS = TOS1.send(TOS)``. Used in ``yield from`` and ``await`` + statements. - Sends ``None`` to the sub-generator of this generator. - Used in ``yield from`` and ``await`` statements. + If the call raises :exc:`StopIteration`, pop both items, push the + exception's ``value`` attribute, and increment the bytecode counter by + *delta*. .. versionadded:: 3.11 @@ -1313,13 +1366,70 @@ iterations of the loop. .. opcode:: HAVE_ARGUMENT This is not really an opcode. It identifies the dividing line between - opcodes which don't use their argument and those that do - (``< HAVE_ARGUMENT`` and ``>= HAVE_ARGUMENT``, respectively). + opcodes in the range [0,255] which don't use their argument and those + that do (``< HAVE_ARGUMENT`` and ``>= HAVE_ARGUMENT``, respectively). + + If your application uses pseudo instructions, use the :data:`hasarg` + collection instead. .. versionchanged:: 3.6 Now every instruction has an argument, but opcodes ``< HAVE_ARGUMENT`` ignore it. Before, only opcodes ``>= HAVE_ARGUMENT`` had an argument. + .. versionchanged:: 3.12 + Pseudo instructions were added to the :mod:`dis` module, and for them + it is not true that comparison with ``HAVE_ARGUMENT`` indicates whether + they use their arg. + + +**Pseudo-instructions** + +These opcodes do not appear in python bytecode, they are used by the compiler +but are replaced by real opcodes or removed before bytecode is generated. + +.. opcode:: SETUP_FINALLY (target) + + Set up an exception handler for the following code block. If an exception + occurs, the value stack level is restored to its current state and control + is transferred to the exception handler at ``target``. + + +.. opcode:: SETUP_CLEANUP (target) + + Like ``SETUP_FINALLY``, but in case of exception also pushes the last + instruction (``lasti``) to the stack so that ``RERAISE`` can restore it. + If an exception occurs, the value stack level and the last instruction on + the frame are restored to their current state, and control is transferred + to the exception handler at ``target``. + + +.. opcode:: SETUP_WITH (target) + + Like ``SETUP_CLEANUP``, but in case of exception one more item is popped + from the stack before control is transferred to the exception handler at + ``target``. + + This variant is used in :keyword:`with` and :keyword:`async with` + constructs, which push the return value of the context manager's + :meth:`~object.__enter__` or :meth:`~object.__aenter__` to the stack. + + +.. opcode:: POP_BLOCK + + Marks the end of the code block associated with the last ``SETUP_FINALLY``, + ``SETUP_CLEANUP`` or ``SETUP_WITH``. + +.. opcode:: JUMP +.. opcode:: JUMP_NO_INTERRUPT + + Undirected relative jump instructions which are replaced by their + directed (forward/backward) counterparts by the assembler. + +.. opcode:: LOAD_METHOD + + Optimized unbound method lookup. Emitted as a ``LOAD_ATTR`` opcode + with a flag set in the arg. + .. _opcode_collections: @@ -1329,6 +1439,10 @@ Opcode collections These collections are provided for automatic introspection of bytecode instructions: + .. versionchanged:: 3.12 + The collections now contain pseudo instructions as well. These are + opcodes with values ``>= MIN_PSEUDO_OPCODE``. + .. data:: opname Sequence of operation names, indexable using the bytecode. @@ -1344,6 +1458,13 @@ instructions: Sequence of all compare operation names. +.. data:: hasarg + + Sequence of bytecodes that use their argument. + + .. versionadded:: 3.12 + + .. data:: hasconst Sequence of bytecodes that access a constant. @@ -1380,3 +1501,9 @@ instructions: .. data:: hascompare Sequence of bytecodes of Boolean operations. + +.. data:: hasexc + + Sequence of bytecodes that set an exception handler. + + .. versionadded:: 3.12 diff --git a/Doc/library/distribution.rst b/Doc/library/distribution.rst index 8d4befe41b329c..bec1ca3cc39137 100644 --- a/Doc/library/distribution.rst +++ b/Doc/library/distribution.rst @@ -9,7 +9,6 @@ with a local index server, or without any index server at all. .. toctree:: - distutils.rst ensurepip.rst venv.rst zipapp.rst diff --git a/Doc/library/distutils.rst b/Doc/library/distutils.rst deleted file mode 100644 index 31c4ae5b23906b..00000000000000 --- a/Doc/library/distutils.rst +++ /dev/null @@ -1,49 +0,0 @@ -:mod:`distutils` --- Building and installing Python modules -=========================================================== - -.. module:: distutils - :synopsis: Support for building and installing Python modules into an - existing Python installation. - -.. sectionauthor:: Fred L. Drake, Jr. - --------------- - -:mod:`distutils` is deprecated with removal planned for Python 3.12. -See the :ref:`What's New ` entry for more information. - --------------- - -The :mod:`distutils` package provides support for building and installing -additional modules into a Python installation. The new modules may be either -100%-pure Python, or may be extension modules written in C, or may be -collections of Python packages which include modules coded in both Python and C. - -Most Python users will *not* want to use this module directly, but instead -use the cross-version tools maintained by the Python Packaging Authority. In -particular, -`setuptools `__ is an -enhanced alternative to :mod:`distutils` that provides: - -* support for declaring project dependencies -* additional mechanisms for configuring which files to include in source - releases (including plugins for integration with version control systems) -* the ability to declare project "entry points", which can be used as the - basis for application plugin systems -* the ability to automatically generate Windows command line executables at - installation time rather than needing to prebuild them -* consistent behaviour across all supported Python versions - -The recommended `pip `__ installer runs all -``setup.py`` scripts with ``setuptools``, even if the script itself only -imports ``distutils``. Refer to the -`Python Packaging User Guide `_ for more -information. - -For the benefits of packaging tool authors and users seeking a deeper -understanding of the details of the current packaging and distribution -system, the legacy :mod:`distutils` based user documentation and API -reference remain available: - -* :ref:`install-index` -* :ref:`distutils-index` diff --git a/Doc/library/doctest.rst b/Doc/library/doctest.rst index 2d50a49c6415e9..75c6ee289a91e9 100644 --- a/Doc/library/doctest.rst +++ b/Doc/library/doctest.rst @@ -565,12 +565,12 @@ doctest decides whether actual output matches an example's expected output: When specified, doctests expecting exceptions pass so long as an exception of the expected type is raised, even if the details - (message and fully-qualified exception name) don't match. + (message and fully qualified exception name) don't match. For example, an example expecting ``ValueError: 42`` will pass if the actual exception raised is ``ValueError: 3*14``, but will fail if, say, a :exc:`TypeError` is raised instead. - It will also ignore any fully-qualified name included before the + It will also ignore any fully qualified name included before the exception class, which can vary between implementations and versions of Python and the code/libraries in use. Hence, all three of these variations will work with the flag specified: diff --git a/Doc/library/email.header.rst b/Doc/library/email.header.rst index 07152c224f2ff0..e093f138936b36 100644 --- a/Doc/library/email.header.rst +++ b/Doc/library/email.header.rst @@ -116,7 +116,7 @@ Here is the :class:`Header` class description: if *s* is a byte string. - .. method:: encode(splitchars=';, \\t', maxlinelen=None, linesep='\\n') + .. method:: encode(splitchars=';, \t', maxlinelen=None, linesep='\n') Encode a message header into an RFC-compliant format, possibly wrapping long lines and encapsulating non-ASCII parts in base64 or quoted-printable diff --git a/Doc/library/email.rst b/Doc/library/email.rst index 5eebcd9e896d93..816fae991d24cb 100644 --- a/Doc/library/email.rst +++ b/Doc/library/email.rst @@ -147,6 +147,3 @@ Legacy API: Module :mod:`mailbox` Tools for creating, reading, and managing collections of messages on disk using a variety standard formats. - - Module :mod:`smtpd` - SMTP server framework (primarily useful for testing) diff --git a/Doc/library/ensurepip.rst b/Doc/library/ensurepip.rst index fa1b42cf484094..34f45e20bae9d9 100644 --- a/Doc/library/ensurepip.rst +++ b/Doc/library/ensurepip.rst @@ -36,6 +36,7 @@ when creating a virtual environment) or after explicitly uninstalling :pep:`453`: Explicit bootstrapping of pip in Python installations The original rationale and specification for this module. +.. include:: ../includes/wasm-notavail.rst Command line interface ---------------------- diff --git a/Doc/library/enum.rst b/Doc/library/enum.rst index c3256c56c6366f..01743b002ba96c 100644 --- a/Doc/library/enum.rst +++ b/Doc/library/enum.rst @@ -176,13 +176,6 @@ Data Types >>> dir(Color) ['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__'] - .. method:: EnumType.__getattr__(cls, name) - - Returns the Enum member in *cls* matching *name*, or raises an :exc:`AttributeError`:: - - >>> Color.GREEN - - .. method:: EnumType.__getitem__(cls, name) Returns the Enum member in *cls* matching *name*, or raises an :exc:`KeyError`:: @@ -761,6 +754,10 @@ Utilities and Decorators ``_generate_next_value_`` can be overridden to customize the values used by *auto*. + .. note:: in 3.13 the default ``"generate_next_value_`` will always return + the highest member value incremented by 1, and will fail if any + member is an incompatible type. + .. decorator:: property A decorator similar to the built-in *property*, but specifically for diff --git a/Doc/library/errno.rst b/Doc/library/errno.rst index 035340e256874f..5122c69697ef91 100644 --- a/Doc/library/errno.rst +++ b/Doc/library/errno.rst @@ -657,3 +657,12 @@ defined by the module. The specific list of defined symbols is available as Interface output queue is full .. versionadded:: 3.11 + +.. data:: ENOTCAPABLE + + Capabilities insufficient. This error is mapped to the exception + :exc:`PermissionError`. + + .. availability:: WASI, FreeBSD + + .. versionadded:: 3.11.1 diff --git a/Doc/library/exceptions.rst b/Doc/library/exceptions.rst index 2eccbd17c482c0..fc856277d67b2e 100644 --- a/Doc/library/exceptions.rst +++ b/Doc/library/exceptions.rst @@ -746,7 +746,12 @@ depending on the system error code. Raised when trying to run an operation without the adequate access rights - for example filesystem permissions. - Corresponds to :c:data:`errno` :py:data:`~errno.EACCES` and :py:data:`~errno.EPERM`. + Corresponds to :c:data:`errno` :py:data:`~errno.EACCES`, + :py:data:`~errno.EPERM`, and :py:data:`~errno.ENOTCAPABLE`. + + .. versionchanged:: 3.11.1 + WASI's :py:data:`~errno.ENOTCAPABLE` is now mapped to + :exc:`PermissionError`. .. exception:: ProcessLookupError diff --git a/Doc/library/fcntl.rst b/Doc/library/fcntl.rst index 1ecd552fbd02cd..997c7ea571fc03 100644 --- a/Doc/library/fcntl.rst +++ b/Doc/library/fcntl.rst @@ -18,6 +18,8 @@ interface to the :c:func:`fcntl` and :c:func:`ioctl` Unix routines. For a complete description of these calls, see :manpage:`fcntl(2)` and :manpage:`ioctl(2)` Unix manual pages. +.. include:: ../includes/wasm-notavail.rst + All functions in this module take a file descriptor *fd* as their first argument. This can be an integer file descriptor, such as returned by ``sys.stdin.fileno()``, or an :class:`io.IOBase` object, such as ``sys.stdin`` @@ -50,6 +52,12 @@ descriptor. constants, which allow to duplicate a file descriptor, the latter setting ``FD_CLOEXEC`` flag in addition. +.. versionchanged:: 3.12 + On Linux >= 4.5, the :mod:`fcntl` module exposes the ``FICLONE`` and + ``FICLONERANGE`` constants, which allow to share some data of one file with + another file by reflinking on some filesystems (e.g., btrfs, OCFS2, and + XFS). This behavior is commonly referred to as "copy-on-write". + The module defines the following functions: diff --git a/Doc/library/fractions.rst b/Doc/library/fractions.rst index 5f0ecf1f135ea5..3751800b3b1118 100644 --- a/Doc/library/fractions.rst +++ b/Doc/library/fractions.rst @@ -98,6 +98,9 @@ another rational number, or from a string. :class:`Fraction` implements ``__int__`` now to satisfy ``typing.SupportsInt`` instance checks. + .. versionchanged:: 3.12 + Space is allowed around the slash for string inputs: `Fraction('2 / 3')`. + .. attribute:: numerator Numerator of the Fraction in lowest term. diff --git a/Doc/library/ftplib.rst b/Doc/library/ftplib.rst index 2f94ac499285db..e5ba9eef4074b9 100644 --- a/Doc/library/ftplib.rst +++ b/Doc/library/ftplib.rst @@ -21,6 +21,8 @@ as mirroring other FTP servers. It is also used by the module The default encoding is UTF-8, following :rfc:`2640`. +.. include:: ../includes/wasm-notavail.rst + Here's a sample session using the :mod:`ftplib` module:: >>> from ftplib import FTP diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst index f5e4c1a8640f45..b9cf02e87eb614 100644 --- a/Doc/library/functions.rst +++ b/Doc/library/functions.rst @@ -164,6 +164,8 @@ are always available. They are listed here in alphabetical order. :func:`sys.breakpointhook` can be set to some other function and :func:`breakpoint` will automatically call that, allowing you to drop into the debugger of choice. + If :func:`sys.breakpointhook` is not accessible, this function will + raise :exc:`RuntimeError`. .. audit-event:: builtins.breakpoint breakpointhook breakpoint @@ -908,6 +910,13 @@ are always available. They are listed here in alphabetical order. .. versionchanged:: 3.11 The delegation to :meth:`__trunc__` is deprecated. + .. versionchanged:: 3.12 + :class:`int` string inputs and string representations can be limited to + help avoid denial of service attacks. A :exc:`ValueError` is raised when + the limit is exceeded while converting a string *x* to an :class:`int` or + when converting an :class:`int` into a string would exceed the limit. + See the :ref:`integer string conversion length limitation + ` documentation. .. function:: isinstance(object, classinfo) @@ -1393,7 +1402,7 @@ are always available. They are listed here in alphabetical order. supported. -.. function:: print(*objects, sep=' ', end='\\n', file=sys.stdout, flush=False) +.. function:: print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False) Print *objects* to the text stream *file*, separated by *sep* and followed by *end*. *sep*, *end*, *file*, and *flush*, if present, must be given as keyword @@ -1513,6 +1522,8 @@ are always available. They are listed here in alphabetical order. of the type of the object together with additional information often including the name and address of the object. A class can control what this function returns for its instances by defining a :meth:`__repr__` method. + If :func:`sys.displayhook` is not accessible, this function will raise + :exc:`RuntimeError`. .. function:: reversed(seq) diff --git a/Doc/library/functools.rst b/Doc/library/functools.rst index dd4d76ef670987..47cbe59fa49222 100644 --- a/Doc/library/functools.rst +++ b/Doc/library/functools.rst @@ -49,6 +49,9 @@ The :mod:`functools` module defines the following functions: >>> factorial(12) # makes two new recursive calls, the other 10 are cached 479001600 + The cache is threadsafe so the wrapped function can be used in multiple + threads. + .. versionadded:: 3.9 @@ -119,7 +122,7 @@ The :mod:`functools` module defines the following functions: tool for programs being converted from Python 2 which supported the use of comparison functions. - A comparison function is any callable that accept two arguments, compares them, + A comparison function is any callable that accepts two arguments, compares them, and returns a negative number for less-than, zero for equality, or a positive number for greater-than. A key function is a callable that accepts one argument and returns another value to be used as the sort key. @@ -140,6 +143,9 @@ The :mod:`functools` module defines the following functions: *maxsize* most recent calls. It can save time when an expensive or I/O bound function is periodically called with the same arguments. + The cache is threadsafe so the wrapped function can be used in multiple + threads. + Since a dictionary is used to cache results, the positional and keyword arguments to the function must be hashable. diff --git a/Doc/library/getpass.rst b/Doc/library/getpass.rst index 82b11919a3d2bf..d5bbe67fb30a62 100644 --- a/Doc/library/getpass.rst +++ b/Doc/library/getpass.rst @@ -12,8 +12,9 @@ -------------- -The :mod:`getpass` module provides two functions: +.. include:: ../includes/wasm-notavail.rst +The :mod:`getpass` module provides two functions: .. function:: getpass(prompt='Password: ', stream=None) diff --git a/Doc/library/gettext.rst b/Doc/library/gettext.rst index 624501952421cc..747f8703b750ec 100644 --- a/Doc/library/gettext.rst +++ b/Doc/library/gettext.rst @@ -445,7 +445,7 @@ There are a few tools to extract the strings meant for translation. The original GNU :program:`gettext` only supported C or C++ source code but its extended version :program:`xgettext` scans code written in a number of languages, including Python, to find strings marked as -translatable. `Babel `__ is a Python +translatable. `Babel `__ is a Python internationalization library that includes a :file:`pybabel` script to extract and compile message catalogs. François Pinard's program called :program:`xpot` does a similar job and is available as part of diff --git a/Doc/library/glob.rst b/Doc/library/glob.rst index d51fd0ebf9e408..0e4cfe7ebed797 100644 --- a/Doc/library/glob.rst +++ b/Doc/library/glob.rst @@ -42,7 +42,7 @@ For example, ``'[?]'`` matches the character ``'?'``. .. function:: glob(pathname, *, root_dir=None, dir_fd=None, recursive=False, \ include_hidden=False) - Return a possibly-empty list of path names that match *pathname*, which must be + Return a possibly empty list of path names that match *pathname*, which must be a string containing a path specification. *pathname* can be either absolute (like :file:`/usr/src/Python-1.5/Makefile`) or relative (like :file:`../../Tools/\*/\*.gif`), and can contain shell-style wildcards. Broken diff --git a/Doc/library/grp.rst b/Doc/library/grp.rst index fbfb922d3e0528..14af744e3ae8f4 100644 --- a/Doc/library/grp.rst +++ b/Doc/library/grp.rst @@ -10,6 +10,8 @@ This module provides access to the Unix group database. It is available on all Unix versions. +.. include:: ../includes/wasm-notavail.rst + Group database entries are reported as a tuple-like object, whose attributes correspond to the members of the ``group`` structure (Attribute field below, see ````): @@ -38,14 +40,13 @@ accessible via :func:`getgrnam` or :func:`getgrgid`.) It defines the following items: -.. function:: getgrgid(gid) +.. function:: getgrgid(id) Return the group database entry for the given numeric group ID. :exc:`KeyError` is raised if the entry asked for cannot be found. - .. deprecated:: 3.6 - Since Python 3.6 the support of non-integer arguments like floats or - strings in :func:`getgrgid` is deprecated. + .. versionchanged:: 3.10 + :exc:`TypeError` is raised for non-integer arguments like floats or strings. .. function:: getgrnam(name) diff --git a/Doc/library/gzip.rst b/Doc/library/gzip.rst index 8cea2649ee6cb6..1a2582d6a904b2 100644 --- a/Doc/library/gzip.rst +++ b/Doc/library/gzip.rst @@ -165,6 +165,10 @@ The module defines the following items: .. versionchanged:: 3.6 Accepts a :term:`path-like object`. + .. versionchanged:: 3.12 + Remove the ``filename`` attribute, use the :attr:`~GzipFile.name` + attribute instead. + .. deprecated:: 3.9 Opening :class:`GzipFile` for writing without specifying the *mode* argument is deprecated. diff --git a/Doc/library/hashlib.rst b/Doc/library/hashlib.rst index 57f270c8d711cf..386541acf510ac 100644 --- a/Doc/library/hashlib.rst +++ b/Doc/library/hashlib.rst @@ -300,23 +300,17 @@ include a `salt `_. >>> from hashlib import pbkdf2_hmac >>> our_app_iters = 500_000 # Application specific, read above. - >>> dk = pbkdf2_hmac('sha256', b'password', b'bad salt'*2, our_app_iters) + >>> dk = pbkdf2_hmac('sha256', b'password', b'bad salt' * 2, our_app_iters) >>> dk.hex() '15530bba69924174860db778f2c6f8104d3aaf9d26241840c8c4a641c8d000a9' - .. versionadded:: 3.4 - - .. note:: + Function only available when Python is compiled with OpenSSL. - A fast implementation of *pbkdf2_hmac* is available with OpenSSL. The - Python implementation uses an inline version of :mod:`hmac`. It is about - three times slower and doesn't release the GIL. - - .. deprecated:: 3.10 + .. versionadded:: 3.4 - Slow Python implementation of *pbkdf2_hmac* is deprecated. In the - future the function will only be available when Python is compiled - with OpenSSL. + .. versionchanged:: 3.12 + Function now only available when Python is built with OpenSSL. The slow + pure Python implementation has been removed. .. function:: scrypt(password, *, salt, n, r, p, maxmem=0, dklen=64) @@ -668,7 +662,7 @@ function: hash function used in the protocol summarily stops this type of attack. (`The Skein Hash Function Family - `_, + `_, p. 21) BLAKE2 can be personalized by passing bytes to the *person* argument:: diff --git a/Doc/library/hmac.rst b/Doc/library/hmac.rst index 6f1b59b57ce580..b2ca0455d3745c 100644 --- a/Doc/library/hmac.rst +++ b/Doc/library/hmac.rst @@ -69,7 +69,7 @@ An HMAC object has the following methods: .. warning:: - When comparing the output of :meth:`digest` to an externally-supplied + When comparing the output of :meth:`digest` to an externally supplied digest during a verification routine, it is recommended to use the :func:`compare_digest` function instead of the ``==`` operator to reduce the vulnerability to timing attacks. @@ -83,7 +83,7 @@ An HMAC object has the following methods: .. warning:: - When comparing the output of :meth:`hexdigest` to an externally-supplied + When comparing the output of :meth:`hexdigest` to an externally supplied digest during a verification routine, it is recommended to use the :func:`compare_digest` function instead of the ``==`` operator to reduce the vulnerability to timing attacks. diff --git a/Doc/library/html.entities.rst b/Doc/library/html.entities.rst index 7d836fe7380245..10529561a92cd0 100644 --- a/Doc/library/html.entities.rst +++ b/Doc/library/html.entities.rst @@ -34,14 +34,14 @@ This module defines four dictionaries, :data:`html5`, .. data:: name2codepoint - A dictionary that maps HTML entity names to the Unicode code points. + A dictionary that maps HTML4 entity names to the Unicode code points. .. data:: codepoint2name - A dictionary that maps Unicode code points to HTML entity names. + A dictionary that maps Unicode code points to HTML4 entity names. .. rubric:: Footnotes -.. [#] See https://html.spec.whatwg.org/multipage/syntax.html#named-character-references +.. [#] See https://html.spec.whatwg.org/multipage/named-characters.html#named-character-references diff --git a/Doc/library/http.client.rst b/Doc/library/http.client.rst index e605f7b8b14172..16823ec67b0123 100644 --- a/Doc/library/http.client.rst +++ b/Doc/library/http.client.rst @@ -28,6 +28,8 @@ HTTPS protocols. It is normally not used directly --- the module HTTPS support is only available if Python was compiled with SSL support (through the :mod:`ssl` module). +.. include:: ../includes/wasm-notavail.rst + The module provides the following classes: @@ -589,7 +591,7 @@ Here is an example session that shows how to ``POST`` requests:: 302 Found >>> data = response.read() >>> data - b'Redirecting to http://bugs.python.org/issue12524' + b'Redirecting to https://bugs.python.org/issue12524' >>> conn.close() Client side ``HTTP PUT`` requests are very similar to ``POST`` requests. The diff --git a/Doc/library/http.cookiejar.rst b/Doc/library/http.cookiejar.rst index 51a8c53152b019..53b3087a4b9997 100644 --- a/Doc/library/http.cookiejar.rst +++ b/Doc/library/http.cookiejar.rst @@ -160,11 +160,10 @@ contained :class:`Cookie` objects. respectively), the :mailheader:`Cookie2` header is also added when appropriate. The *request* object (usually a :class:`urllib.request.Request` instance) - must support the methods :meth:`get_full_url`, :meth:`get_host`, - :meth:`get_type`, :meth:`unverifiable`, :meth:`has_header`, + must support the methods :meth:`get_full_url`, :meth:`has_header`, :meth:`get_header`, :meth:`header_items`, :meth:`add_unredirected_header` - and :attr:`origin_req_host` attribute as documented by - :mod:`urllib.request`. + and the attributes :attr:`host`, :attr:`!type`, :attr:`unverifiable` + and :attr:`origin_req_host` as documented by :mod:`urllib.request`. .. versionchanged:: 3.3 @@ -186,11 +185,11 @@ contained :class:`Cookie` objects. method, which returns an :class:`email.message.Message` instance. The *request* object (usually a :class:`urllib.request.Request` instance) - must support the methods :meth:`get_full_url`, :meth:`get_host`, - :meth:`unverifiable`, and :attr:`origin_req_host` attribute, as documented - by :mod:`urllib.request`. The request is used to set default values for - cookie-attributes as well as for checking that the cookie is allowed to be - set. + must support the method :meth:`get_full_url` and the attributes + :attr:`host`, :attr:`unverifiable` and :attr:`origin_req_host`, + as documented by :mod:`urllib.request`. The request is used to set + default values for cookie-attributes as well as for checking that the + cookie is allowed to be set. .. versionchanged:: 3.3 diff --git a/Doc/library/http.cookies.rst b/Doc/library/http.cookies.rst index 17792b200599bd..a2c1eb00d8b33d 100644 --- a/Doc/library/http.cookies.rst +++ b/Doc/library/http.cookies.rst @@ -93,7 +93,7 @@ Cookie Objects :meth:`value_decode` are inverses on the range of *value_decode*. -.. method:: BaseCookie.output(attrs=None, header='Set-Cookie:', sep='\\r\\n') +.. method:: BaseCookie.output(attrs=None, header='Set-Cookie:', sep='\r\n') Return a string representation suitable to be sent as HTTP headers. *attrs* and *header* are sent to each :class:`Morsel`'s :meth:`output` method. *sep* is used diff --git a/Doc/library/http.rst b/Doc/library/http.rst index 5895a41d849bd1..9d002dc33ccb8d 100644 --- a/Doc/library/http.rst +++ b/Doc/library/http.rst @@ -137,6 +137,31 @@ equal to the constant name (i.e. ``http.HTTPStatus.OK`` is also available as .. versionadded:: 3.9 Added ``103 EARLY_HINTS``, ``418 IM_A_TEAPOT`` and ``425 TOO_EARLY`` status codes. +HTTP status category +-------------------- + +.. versionadded:: 3.12 + +The enum values have several properties to indicate the HTTP status category: + +==================== ======================== =============================== +Property Indicates that Details +==================== ======================== =============================== +``is_informational`` ``100 <= status <= 199`` HTTP/1.1 :rfc:`7231`, Section 6 +``is_success`` ``200 <= status <= 299`` HTTP/1.1 :rfc:`7231`, Section 6 +``is_redirection`` ``300 <= status <= 399`` HTTP/1.1 :rfc:`7231`, Section 6 +``is_client_error`` ``400 <= status <= 499`` HTTP/1.1 :rfc:`7231`, Section 6 +``is_server_error`` ``500 <= status <= 599`` HTTP/1.1 :rfc:`7231`, Section 6 +==================== ======================== =============================== + + Usage:: + + >>> from http import HTTPStatus + >>> HTTPStatus.OK.is_success + True + >>> HTTPStatus.OK.is_client_error + False + .. class:: HTTPMethod .. versionadded:: 3.11 diff --git a/Doc/library/http.server.rst b/Doc/library/http.server.rst index 9d5e5e3a75b197..48f952daae12f5 100644 --- a/Doc/library/http.server.rst +++ b/Doc/library/http.server.rst @@ -20,7 +20,9 @@ This module defines classes for implementing HTTP servers. .. warning:: :mod:`http.server` is not recommended for production. It only implements - basic security checks. + :ref:`basic security checks `. + +.. include:: ../includes/wasm-notavail.rst One class, :class:`HTTPServer`, is a :class:`socketserver.TCPServer` subclass. It creates and listens at the HTTP socket, dispatching the requests to a @@ -499,3 +501,14 @@ following command runs an HTTP/1.1 conformant server:: the ``--cgi`` option:: python -m http.server --cgi + +.. _http.server-security: + +Security Considerations +----------------------- + +.. index:: pair: http.server; security + +:class:`SimpleHTTPRequestHandler` will follow symbolic links when handling +requests, this makes it possible for files outside of the specified directory +to be served. diff --git a/Doc/library/idle.rst b/Doc/library/idle.rst index d6021042c61166..3058bcead661f3 100644 --- a/Doc/library/idle.rst +++ b/Doc/library/idle.rst @@ -61,17 +61,17 @@ New File Open... Open an existing file with an Open dialog. -Recent Files - Open a list of recent files. Click one to open it. - Open Module... Open an existing module (searches sys.path). +Recent Files + Open a list of recent files. Click one to open it. + .. index:: - single: Class browser + single: Module browser single: Path browser -Class Browser +Module Browser Show functions, classes, and methods in the current Editor file in a tree structure. In the shell, open a module first. @@ -87,11 +87,14 @@ Save Save As... Save the current window with a Save As dialog. The file saved becomes the - new associated file for the window. + new associated file for the window. (If your file namager is set to hide + extensions, the current extension will be omitted in the file name box. + If the new filename has no '.', '.py' and '.txt' will be added for Python + and text files, except that on macOS Aqua,'.py' is added for all files.) Save Copy As... Save the current window to different file without changing the associated - file. + file. (See Save As note above about filename extensions.) Print Window Print the current window to the default printer. @@ -114,6 +117,9 @@ Undo Redo Redo the last undone change to the current window. +Select All + Select the entire contents of the current window. + Cut Copy selection into the system-wide clipboard; then delete the selection. @@ -125,9 +131,6 @@ Paste The clipboard functions are also available in context menus. -Select All - Select the entire contents of the current window. - Find... Open a search dialog with many options @@ -156,12 +159,12 @@ Expand Word Expand a prefix you have typed to match a full word in the same window; repeat to get a different expansion. -Show call tip +Show Call Tip After an unclosed parenthesis for a function, open a small window with function parameter hints. See :ref:`Calltips ` in the Editing and navigation section below. -Show surrounding parens +Show Surrounding Parens Highlight the surrounding parenthesis. .. _format-menu: @@ -169,6 +172,11 @@ Show surrounding parens Format menu (Editor window only) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Format Paragraph + Reformat the current blank-line-delimited paragraph in comment block or + multiline string or selected line in a string. All lines in the + paragraph will be formatted to less than N columns, where N defaults to 72. + Indent Region Shift selected lines right by the indent width (default 4 spaces). @@ -195,12 +203,7 @@ New Indent Width Open a dialog to change indent width. The accepted default by the Python community is 4 spaces. -Format Paragraph - Reformat the current blank-line-delimited paragraph in comment block or - multiline string or selected line in a string. All lines in the - paragraph will be formatted to less than N columns, where N defaults to 72. - -Strip trailing whitespace +Strip Trailing Chitespace Remove trailing space and other whitespace characters after the last non-whitespace character of a line by applying str.rstrip to each line, including lines within multiline strings. Except for Shell windows, @@ -357,7 +360,7 @@ for more on Help menu choices. single: Clear Breakpoint single: breakpoints -Context Menus +Context menus ^^^^^^^^^^^^^^^^^^^^^^^^^^ Open a context menu by right-clicking in a window (Control-click on macOS). @@ -398,7 +401,7 @@ Squeeze .. _editing-and-navigation: -Editing and navigation +Editing and Navigation ---------------------- Editor windows @@ -471,6 +474,14 @@ are restricted to four spaces due to Tcl/Tk limitations. See also the indent/dedent region commands on the :ref:`Format menu `. +Search and Replace +^^^^^^^^^^^^^^^^^^ + +Any selection becomes a search target. However, only selections within +a line work because searches are only performed within lines with the +terminal newline removed. If ``[x] Regular expresion`` is checked, the +target is interpreted according to the Python re module. + .. _completions: Completions @@ -576,17 +587,29 @@ line to the top of the editor. The text and background colors for the context pane can be configured under the Highlights tab in the Configure IDLE dialog. -Python Shell window -^^^^^^^^^^^^^^^^^^^ +Shell window +^^^^^^^^^^^^ + +In IDLE's Shell, enter, edit, and recall complete statements. (Most +consoles and terminals only work with a single physical line at a time). -With IDLE's Shell, one enters, edits, and recalls complete statements. -Most consoles and terminals only work with a single physical line at a time. +Submit a single-line statement for execution by hitting :kbd:`Return` +with the cursor anywhere on the line. If a line is extended with +Backslash (:kbd:`\\`), the cursor must be on the last physical line. +Submit a multi-line compound statement by entering a blank line after +the statement. When one pastes code into Shell, it is not compiled and possibly executed -until one hits :kbd:`Return`. One may edit pasted code first. -If one pastes more that one statement into Shell, the result will be a +until one hits :kbd:`Return`, as specified above. +One may edit pasted code first. +If one pastes more than one statement into Shell, the result will be a :exc:`SyntaxError` when multiple statements are compiled as if they were one. +Lines containing ``RESTART`` mean that the user execution process has been +re-started. This occurs when the user execution process has crashed, +when one requests a restart on the Shell menu, or when one runs code +in an editor window. + The editing features described in previous subsections work when entering code interactively. IDLE's Shell window also responds to the following keys. @@ -603,7 +626,8 @@ code interactively. IDLE's Shell window also responds to the following keys. * :kbd:`Alt-n` retrieves next. On macOS use :kbd:`C-n`. - * :kbd:`Return` while on any previous command retrieves that command + * :kbd:`Return` while the cursor is on any previous command + retrieves that command Text colors ^^^^^^^^^^^ @@ -627,7 +651,7 @@ Highlighting tab. The marking of debugger breakpoint lines in the editor and text in popups and dialogs is not user-configurable. -Startup and code execution +Startup and Code Execution -------------------------- Upon startup with the ``-s`` option, IDLE will execute the file referenced by @@ -762,7 +786,9 @@ IDLE's standard stream replacements are not inherited by subprocesses created in the execution process, whether directly by user code or by modules such as multiprocessing. If such subprocess use ``input`` from sys.stdin or ``print`` or ``write`` to sys.stdout or sys.stderr, -IDLE should be started in a command line window. The secondary subprocess +IDLE should be started in a command line window. (On Windows, +use ``python`` or ``py`` rather than ``pythonw`` or ``pyw``.) +The secondary subprocess will then be attached to that window for input and output. If ``sys`` is reset by user code, such as with ``importlib.reload(sys)``, @@ -894,7 +920,7 @@ with the default subprocess if at all possible. .. deprecated:: 3.4 -Help and preferences +Help and Preferences -------------------- .. _help-sources: @@ -957,3 +983,23 @@ changed with the Extensions tab of the preferences dialog. See the beginning of config-extensions.def in the idlelib directory for further information. The only current default extension is zzdummy, an example also used for testing. + + +idlelib +------- + +.. module:: idlelib + :synopsis: Implementation package for the IDLE shell/editor. + +**Source code:** :source:`Lib/idlelib` + +-------------- + +The Lib/idlelib package implements the IDLE application. See the rest +of this page for how to use IDLE. + +The files in idlelib are described in idlelib/README.txt. Access it +either in idlelib or click Help => About IDLE on the IDLE menu. This +file also maps IDLE menu items to the code that implements the item. +Except for files listed under 'Startup', the idlelib code is 'private' in +sense that feature changes can be backported (see :pep:`434`). diff --git a/Doc/library/imaplib.rst b/Doc/library/imaplib.rst index 65681ec093598c..0c10e7afee401f 100644 --- a/Doc/library/imaplib.rst +++ b/Doc/library/imaplib.rst @@ -26,6 +26,8 @@ implement a large subset of the IMAP4rev1 client protocol as defined in :rfc:`2060`. It is backward compatible with IMAP4 (:rfc:`1730`) servers, but note that the ``STATUS`` command is not supported in IMAP4. +.. include:: ../includes/wasm-notavail.rst + Three classes are provided by the :mod:`imaplib` module, :class:`IMAP4` is the base class: diff --git a/Doc/library/importlib.metadata.rst b/Doc/library/importlib.metadata.rst index d40ed70d5cd83f..a1af7a754ba4ef 100644 --- a/Doc/library/importlib.metadata.rst +++ b/Doc/library/importlib.metadata.rst @@ -13,13 +13,13 @@ **Source code:** :source:`Lib/importlib/metadata/__init__.py` -``importlib.metadata`` is a library that provides for access to installed -package metadata. Built in part on Python's import system, this library +``importlib.metadata`` is a library that provides access to installed +package metadata, such as its entry points or its +top-level name. Built in part on Python's import system, this library intends to replace similar functionality in the `entry point API`_ and `metadata API`_ of ``pkg_resources``. Along with -:mod:`importlib.resources` (with new features backported to the -`importlib_resources`_ package), this can eliminate the need to use the older -and less efficient +:mod:`importlib.resources`, +this package can eliminate the need to use the older and less efficient ``pkg_resources`` package. By "installed package" we generally mean a third-party package installed into @@ -32,6 +32,13 @@ By default, package metadata can live on the file system or in zip archives on anywhere. +.. seealso:: + + https://importlib-metadata.readthedocs.io/ + The documentation for ``importlib_metadata``, which supplies a + backport of ``importlib.metadata``. + + Overview ======== @@ -54,9 +61,9 @@ You can get the version string for ``wheel`` by running the following: >>> version('wheel') # doctest: +SKIP '0.32.3' -You can also get the set of entry points keyed by group, such as +You can also get a collection of entry points selectable by properties of the EntryPoint (typically 'group' or 'name'), such as ``console_scripts``, ``distutils.commands`` and others. Each group contains a -sequence of :ref:`EntryPoint ` objects. +collection of :ref:`EntryPoint ` objects. You can get the :ref:`metadata for a distribution `:: @@ -91,7 +98,7 @@ Query all entry points:: >>> eps = entry_points() # doctest: +SKIP The ``entry_points()`` function returns an ``EntryPoints`` object, -a sequence of all ``EntryPoint`` objects with ``names`` and ``groups`` +a collection of all ``EntryPoint`` objects with ``names`` and ``groups`` attributes for convenience:: >>> sorted(eps.groups) # doctest: +SKIP @@ -136,7 +143,7 @@ Inspect the resolved entry point:: The ``group`` and ``name`` are arbitrary values defined by the package author and usually a client will wish to resolve all entry points for a particular group. Read `the setuptools docs -`_ +`_ for more information on entry points, their definition, and usage. *Compatibility Note* @@ -174,6 +181,13 @@ all the metadata in a JSON-compatible form per :PEP:`566`:: >>> wheel_metadata.json['requires_python'] '>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*' +.. note:: + + The actual type of the object returned by ``metadata()`` is an + implementation detail and should be accessed only through the interface + described by the + `PackageMetadata protocol `. + .. versionchanged:: 3.10 The ``Description`` is now included in the metadata when presented through the payload. Line continuation characters have been removed. @@ -295,6 +309,15 @@ The full set of available metadata is not described here. See :pep:`566` for additional details. +Distribution Discovery +====================== + +By default, this package provides built-in support for discovery of metadata for file system and zip file packages. This metadata finder search defaults to ``sys.path``, but varies slightly in how it interprets those values from how other import machinery does. In particular: + +- ``importlib.metadata`` does not honor :class:`bytes` objects on ``sys.path``. +- ``importlib.metadata`` will incidentally honor :py:class:`pathlib.Path` objects on ``sys.path`` even though such values will be ignored for imports. + + Extending the search algorithm ============================== diff --git a/Doc/library/importlib.resources.abc.rst b/Doc/library/importlib.resources.abc.rst index 6b0e1e04c8852a..57fffe0d905cbe 100644 --- a/Doc/library/importlib.resources.abc.rst +++ b/Doc/library/importlib.resources.abc.rst @@ -1,3 +1,15 @@ +:mod:`importlib.resources.abc` -- Abstract base classes for resources +--------------------------------------------------------------------- + +.. module:: importlib.resources.abc + :synopsis: Abstract base classes for resources + +**Source code:** :source:`Lib/importlib/resources/abc.py` + +-------------- + +.. versionadded:: 3.11 + .. class:: ResourceReader *Superseded by TraversableResources* @@ -33,6 +45,9 @@ .. versionadded:: 3.7 + .. deprecated-removed:: 3.12 3.14 + Use :class:`importlib.resources.abc.TraversableResources` instead. + .. abstractmethod:: open_resource(resource) Returns an opened, :term:`file-like object` for binary reading @@ -72,251 +87,6 @@ The abstract method returns an iterable of no items. -.. class:: ResourceLoader - - An abstract base class for a :term:`loader` which implements the optional - :pep:`302` protocol for loading arbitrary resources from the storage - back-end. - - .. deprecated:: 3.7 - This ABC is deprecated in favour of supporting resource loading - through :class:`importlib.abc.ResourceReader`. - - .. abstractmethod:: get_data(path) - - An abstract method to return the bytes for the data located at *path*. - Loaders that have a file-like storage back-end - that allows storing arbitrary data - can implement this abstract method to give direct access - to the data stored. :exc:`OSError` is to be raised if the *path* cannot - be found. The *path* is expected to be constructed using a module's - :attr:`__file__` attribute or an item from a package's :attr:`__path__`. - - .. versionchanged:: 3.4 - Raises :exc:`OSError` instead of :exc:`NotImplementedError`. - - -.. class:: InspectLoader - - An abstract base class for a :term:`loader` which implements the optional - :pep:`302` protocol for loaders that inspect modules. - - .. method:: get_code(fullname) - - Return the code object for a module, or ``None`` if the module does not - have a code object (as would be the case, for example, for a built-in - module). Raise an :exc:`ImportError` if loader cannot find the - requested module. - - .. note:: - While the method has a default implementation, it is suggested that - it be overridden if possible for performance. - - .. index:: - single: universal newlines; importlib.abc.InspectLoader.get_source method - - .. versionchanged:: 3.4 - No longer abstract and a concrete implementation is provided. - - .. abstractmethod:: get_source(fullname) - - An abstract method to return the source of a module. It is returned as - a text string using :term:`universal newlines`, translating all - recognized line separators into ``'\n'`` characters. Returns ``None`` - if no source is available (e.g. a built-in module). Raises - :exc:`ImportError` if the loader cannot find the module specified. - - .. versionchanged:: 3.4 - Raises :exc:`ImportError` instead of :exc:`NotImplementedError`. - - .. method:: is_package(fullname) - - An optional method to return a true value if the module is a package, a - false value otherwise. :exc:`ImportError` is raised if the - :term:`loader` cannot find the module. - - .. versionchanged:: 3.4 - Raises :exc:`ImportError` instead of :exc:`NotImplementedError`. - - .. staticmethod:: source_to_code(data, path='') - - Create a code object from Python source. - - The *data* argument can be whatever the :func:`compile` function - supports (i.e. string or bytes). The *path* argument should be - the "path" to where the source code originated from, which can be an - abstract concept (e.g. location in a zip file). - - With the subsequent code object one can execute it in a module by - running ``exec(code, module.__dict__)``. - - .. versionadded:: 3.4 - - .. versionchanged:: 3.5 - Made the method static. - - .. method:: exec_module(module) - - Implementation of :meth:`Loader.exec_module`. - - .. versionadded:: 3.4 - - .. method:: load_module(fullname) - - Implementation of :meth:`Loader.load_module`. - - .. deprecated:: 3.4 - use :meth:`exec_module` instead. - - -.. class:: ExecutionLoader - - An abstract base class which inherits from :class:`InspectLoader` that, - when implemented, helps a module to be executed as a script. The ABC - represents an optional :pep:`302` protocol. - - .. abstractmethod:: get_filename(fullname) - - An abstract method that is to return the value of :attr:`__file__` for - the specified module. If no path is available, :exc:`ImportError` is - raised. - - If source code is available, then the method should return the path to - the source file, regardless of whether a bytecode was used to load the - module. - - .. versionchanged:: 3.4 - Raises :exc:`ImportError` instead of :exc:`NotImplementedError`. - - -.. class:: FileLoader(fullname, path) - - An abstract base class which inherits from :class:`ResourceLoader` and - :class:`ExecutionLoader`, providing concrete implementations of - :meth:`ResourceLoader.get_data` and :meth:`ExecutionLoader.get_filename`. - - The *fullname* argument is a fully resolved name of the module the loader is - to handle. The *path* argument is the path to the file for the module. - - .. versionadded:: 3.3 - - .. attribute:: name - - The name of the module the loader can handle. - - .. attribute:: path - - Path to the file of the module. - - .. method:: load_module(fullname) - - Calls super's ``load_module()``. - - .. deprecated:: 3.4 - Use :meth:`Loader.exec_module` instead. - - .. abstractmethod:: get_filename(fullname) - - Returns :attr:`path`. - - .. abstractmethod:: get_data(path) - - Reads *path* as a binary file and returns the bytes from it. - - -.. class:: SourceLoader - - An abstract base class for implementing source (and optionally bytecode) - file loading. The class inherits from both :class:`ResourceLoader` and - :class:`ExecutionLoader`, requiring the implementation of: - - * :meth:`ResourceLoader.get_data` - * :meth:`ExecutionLoader.get_filename` - Should only return the path to the source file; sourceless - loading is not supported. - - The abstract methods defined by this class are to add optional bytecode - file support. Not implementing these optional methods (or causing them to - raise :exc:`NotImplementedError`) causes the loader to - only work with source code. Implementing the methods allows the loader to - work with source *and* bytecode files; it does not allow for *sourceless* - loading where only bytecode is provided. Bytecode files are an - optimization to speed up loading by removing the parsing step of Python's - compiler, and so no bytecode-specific API is exposed. - - .. method:: path_stats(path) - - Optional abstract method which returns a :class:`dict` containing - metadata about the specified path. Supported dictionary keys are: - - - ``'mtime'`` (mandatory): an integer or floating-point number - representing the modification time of the source code; - - ``'size'`` (optional): the size in bytes of the source code. - - Any other keys in the dictionary are ignored, to allow for future - extensions. If the path cannot be handled, :exc:`OSError` is raised. - - .. versionadded:: 3.3 - - .. versionchanged:: 3.4 - Raise :exc:`OSError` instead of :exc:`NotImplementedError`. - - .. method:: path_mtime(path) - - Optional abstract method which returns the modification time for the - specified path. - - .. deprecated:: 3.3 - This method is deprecated in favour of :meth:`path_stats`. You don't - have to implement it, but it is still available for compatibility - purposes. Raise :exc:`OSError` if the path cannot be handled. - - .. versionchanged:: 3.4 - Raise :exc:`OSError` instead of :exc:`NotImplementedError`. - - .. method:: set_data(path, data) - - Optional abstract method which writes the specified bytes to a file - path. Any intermediate directories which do not exist are to be created - automatically. - - When writing to the path fails because the path is read-only - (:attr:`errno.EACCES`/:exc:`PermissionError`), do not propagate the - exception. - - .. versionchanged:: 3.4 - No longer raises :exc:`NotImplementedError` when called. - - .. method:: get_code(fullname) - - Concrete implementation of :meth:`InspectLoader.get_code`. - - .. method:: exec_module(module) - - Concrete implementation of :meth:`Loader.exec_module`. - - .. versionadded:: 3.4 - - .. method:: load_module(fullname) - - Concrete implementation of :meth:`Loader.load_module`. - - .. deprecated:: 3.4 - Use :meth:`exec_module` instead. - - .. method:: get_source(fullname) - - Concrete implementation of :meth:`InspectLoader.get_source`. - - .. method:: is_package(fullname) - - Concrete implementation of :meth:`InspectLoader.is_package`. A module - is determined to be a package if its file path (as provided by - :meth:`ExecutionLoader.get_filename`) is a file named - ``__init__`` when the file extension is removed **and** the module name - itself does not end in ``__init__``. - - .. class:: Traversable An object with a subset of pathlib.Path methods suitable for @@ -324,6 +94,9 @@ .. versionadded:: 3.9 + .. deprecated-removed:: 3.12 3.14 + Use :class:`importlib.resources.abc.Traversable` instead. + .. attribute:: name Abstract. The base name of this object without any parent references. @@ -369,8 +142,8 @@ An abstract base class for resource readers capable of serving the :meth:`importlib.resources.files` interface. Subclasses - :class:`importlib.abc.ResourceReader` and provides - concrete implementations of the :class:`importlib.abc.ResourceReader`'s + :class:`importlib.resources.abc.ResourceReader` and provides + concrete implementations of the :class:`importlib.resources.abc.ResourceReader`'s abstract methods. Therefore, any loader supplying :class:`importlib.abc.TraversableReader` also supplies ResourceReader. @@ -379,7 +152,10 @@ .. versionadded:: 3.9 + .. deprecated-removed:: 3.12 3.14 + Use :class:`importlib.resources.abc.TraversableResources` instead. + .. abstractmethod:: files() - Returns a :class:`importlib.abc.Traversable` object for the loaded + Returns a :class:`importlib.resources.abc.Traversable` object for the loaded package. diff --git a/Doc/library/importlib.resources.rst b/Doc/library/importlib.resources.rst index f62d15dd6fdc9e..827e7d8d5aced4 100644 --- a/Doc/library/importlib.resources.rst +++ b/Doc/library/importlib.resources.rst @@ -4,7 +4,7 @@ .. module:: importlib.resources :synopsis: Package resource reading, opening, and access -**Source code:** :source:`Lib/importlib/resources.py` +**Source code:** :source:`Lib/importlib/resources/__init__.py` -------------- @@ -17,63 +17,54 @@ text mode. Resources are roughly akin to files inside directories, though it's important to keep in mind that this is just a metaphor. Resources and packages **do -not** have to exist as physical files and directories on the file system. +not** have to exist as physical files and directories on the file system: +for example, a package and its resources can be imported from a zip file using +:py:mod:`zipimport`. .. note:: This module provides functionality similar to `pkg_resources `_ `Basic Resource Access - `_ + `_ without the performance overhead of that package. This makes reading resources included in packages easier, with more stable and consistent semantics. The standalone backport of this module provides more information on `using importlib.resources - `_ and + `_ and `migrating from pkg_resources to importlib.resources - `_ - and - `migrating legacy usage `_. + `_. -Loaders that wish to support resource reading should implement a +:class:`Loaders ` that wish to support resource reading should implement a ``get_resource_reader(fullname)`` method as specified by -:class:`importlib.abc.ResourceReader`. - -The following types are defined. +:class:`importlib.resources.abc.ResourceReader`. .. data:: Package - The ``Package`` type is defined as ``Union[str, ModuleType]``. This means - that where the function describes accepting a ``Package``, you can pass in - either a string or a module. Module objects must have a resolvable - ``__spec__.submodule_search_locations`` that is not ``None``. - -.. data:: Resource - - This type describes the resource names passed into the various functions - in this package. This is defined as ``Union[str, os.PathLike]``. - - -The following functions are available. + Whenever a function accepts a ``Package`` argument, you can pass in + either a :class:`module object ` or a module name + as a string. You can only pass module objects whose + ``__spec__.submodule_search_locations`` is not ``None``. + The ``Package`` type is defined as ``Union[str, ModuleType]``. .. function:: files(package) - Returns an :class:`importlib.resources.abc.Traversable` object + Returns a :class:`~importlib.resources.abc.Traversable` object representing the resource container for the package (think directory) and its resources (think files). A Traversable may contain other containers (think subdirectories). *package* is either a name or a module object which conforms to the - ``Package`` requirements. + :data:`Package` requirements. .. versionadded:: 3.9 .. function:: as_file(traversable) - Given a :class:`importlib.resources.abc.Traversable` object representing + Given a :class:`~importlib.resources.abc.Traversable` object representing a file, typically from :func:`importlib.resources.files`, return a context manager for use in a :keyword:`with` statement. The context manager provides a :class:`pathlib.Path` object. @@ -87,6 +78,22 @@ The following functions are available. .. versionadded:: 3.9 +Deprecated functions +-------------------- + +An older, deprecated set of functions is still available, but is +scheduled for removal in a future version of Python. +The main drawback of these functions is that they do not support +directories: they assume all resources are located directly within a *package*. + +.. data:: Resource + + For *resource* arguments of the functions below, you can pass in + the name of a resource as a string or + a :class:`path-like object `. + + The ``Resource`` type is defined as ``Union[str, os.PathLike]``. + .. function:: open_binary(package, resource) Open for binary reading the *resource* within *package*. @@ -97,7 +104,11 @@ The following functions are available. sub-resources (i.e. it cannot be a directory). This function returns a ``typing.BinaryIO`` instance, a binary I/O stream open for reading. - .. deprecated:: 3.11 + .. deprecated:: 3.11 + + Calls to this function can be replaced by:: + + files(package).joinpath(resource).open('rb') .. function:: open_text(package, resource, encoding='utf-8', errors='strict') @@ -114,7 +125,11 @@ The following functions are available. This function returns a ``typing.TextIO`` instance, a text I/O stream open for reading. - .. deprecated:: 3.11 + .. deprecated:: 3.11 + + Calls to this function can be replaced by:: + + files(package).joinpath(resource).open('r', encoding=encoding) .. function:: read_binary(package, resource) @@ -128,7 +143,11 @@ The following functions are available. sub-resources (i.e. it cannot be a directory). This function returns the contents of the resource as :class:`bytes`. - .. deprecated:: 3.11 + .. deprecated:: 3.11 + + Calls to this function can be replaced by:: + + files(package).joinpath(resource).read_bytes() .. function:: read_text(package, resource, encoding='utf-8', errors='strict') @@ -143,7 +162,11 @@ The following functions are available. have the same meaning as with built-in :func:`open`. This function returns the contents of the resource as :class:`str`. - .. deprecated:: 3.11 + .. deprecated:: 3.11 + + Calls to this function can be replaced by:: + + files(package).joinpath(resource).read_text(encoding=encoding) .. function:: path(package, resource) @@ -160,17 +183,26 @@ The following functions are available. within *package*; it may not contain path separators and it may not have sub-resources (i.e. it cannot be a directory). - .. deprecated:: 3.11 + .. deprecated:: 3.11 + + Calls to this function can be replaced using :func:`as_file`:: + + as_file(files(package).joinpath(resource)) .. function:: is_resource(package, name) Return ``True`` if there is a resource named *name* in the package, - otherwise ``False``. Remember that directories are *not* resources! + otherwise ``False``. + This function does not consider directories to be resources. *package* is either a name or a module object which conforms to the ``Package`` requirements. - .. deprecated:: 3.11 + .. deprecated:: 3.11 + + Calls to this function can be replaced by:: + + files(package).joinpath(resource).is_file() .. function:: contents(package) @@ -182,4 +214,8 @@ The following functions are available. *package* is either a name or a module object which conforms to the ``Package`` requirements. - .. deprecated:: 3.11 + .. deprecated:: 3.11 + + Calls to this function can be replaced by:: + + (resource.name for resource in files(package).iterdir() if resource.is_file()) diff --git a/Doc/library/importlib.rst b/Doc/library/importlib.rst index aac556e2c68d94..0fd765f5985f7c 100644 --- a/Doc/library/importlib.rst +++ b/Doc/library/importlib.rst @@ -401,7 +401,7 @@ ABC hierarchy:: Loaders that wish to support resource reading should implement a :meth:`get_resource_reader` method as specified by - :class:`importlib.abc.ResourceReader`. + :class:`importlib.resources.abc.ResourceReader`. .. versionchanged:: 3.7 Introduced the optional :meth:`get_resource_reader` method. @@ -450,7 +450,7 @@ ABC hierarchy:: reloaded): - :attr:`__name__` - The module's fully-qualified name. + The module's fully qualified name. It is ``'__main__'`` for an executed module. - :attr:`__file__` @@ -471,7 +471,7 @@ ABC hierarchy:: as an indicator that the module is a package. - :attr:`__package__` - The fully-qualified name of the package the module is in (or the + The fully qualified name of the package the module is in (or the empty string for a top-level module). If the module is a package then this is the same as :attr:`__name__`. @@ -493,22 +493,251 @@ ABC hierarchy:: other responsibilities of :meth:`load_module` when :meth:`exec_module` is implemented. - .. method:: module_repr(module) - A legacy method which when implemented calculates and returns the given - module's representation, as a string. The module type's default - :meth:`__repr__` will use the result of this method as appropriate. +.. class:: ResourceLoader + + An abstract base class for a :term:`loader` which implements the optional + :pep:`302` protocol for loading arbitrary resources from the storage + back-end. + + .. deprecated:: 3.7 + This ABC is deprecated in favour of supporting resource loading + through :class:`importlib.resources.abc.ResourceReader`. + + .. abstractmethod:: get_data(path) + + An abstract method to return the bytes for the data located at *path*. + Loaders that have a file-like storage back-end + that allows storing arbitrary data + can implement this abstract method to give direct access + to the data stored. :exc:`OSError` is to be raised if the *path* cannot + be found. The *path* is expected to be constructed using a module's + :attr:`__file__` attribute or an item from a package's :attr:`__path__`. + + .. versionchanged:: 3.4 + Raises :exc:`OSError` instead of :exc:`NotImplementedError`. + + +.. class:: InspectLoader + + An abstract base class for a :term:`loader` which implements the optional + :pep:`302` protocol for loaders that inspect modules. + + .. method:: get_code(fullname) + + Return the code object for a module, or ``None`` if the module does not + have a code object (as would be the case, for example, for a built-in + module). Raise an :exc:`ImportError` if loader cannot find the + requested module. + + .. note:: + While the method has a default implementation, it is suggested that + it be overridden if possible for performance. + + .. index:: + single: universal newlines; importlib.abc.InspectLoader.get_source method + + .. versionchanged:: 3.4 + No longer abstract and a concrete implementation is provided. + + .. abstractmethod:: get_source(fullname) + + An abstract method to return the source of a module. It is returned as + a text string using :term:`universal newlines`, translating all + recognized line separators into ``'\n'`` characters. Returns ``None`` + if no source is available (e.g. a built-in module). Raises + :exc:`ImportError` if the loader cannot find the module specified. + + .. versionchanged:: 3.4 + Raises :exc:`ImportError` instead of :exc:`NotImplementedError`. + + .. method:: is_package(fullname) + + An optional method to return a true value if the module is a package, a + false value otherwise. :exc:`ImportError` is raised if the + :term:`loader` cannot find the module. + + .. versionchanged:: 3.4 + Raises :exc:`ImportError` instead of :exc:`NotImplementedError`. + + .. staticmethod:: source_to_code(data, path='') + + Create a code object from Python source. + + The *data* argument can be whatever the :func:`compile` function + supports (i.e. string or bytes). The *path* argument should be + the "path" to where the source code originated from, which can be an + abstract concept (e.g. location in a zip file). + + With the subsequent code object one can execute it in a module by + running ``exec(code, module.__dict__)``. + + .. versionadded:: 3.4 + + .. versionchanged:: 3.5 + Made the method static. + + .. method:: exec_module(module) + + Implementation of :meth:`Loader.exec_module`. + + .. versionadded:: 3.4 + + .. method:: load_module(fullname) + + Implementation of :meth:`Loader.load_module`. + + .. deprecated:: 3.4 + use :meth:`exec_module` instead. + + +.. class:: ExecutionLoader + + An abstract base class which inherits from :class:`InspectLoader` that, + when implemented, helps a module to be executed as a script. The ABC + represents an optional :pep:`302` protocol. + + .. abstractmethod:: get_filename(fullname) + + An abstract method that is to return the value of :attr:`__file__` for + the specified module. If no path is available, :exc:`ImportError` is + raised. + + If source code is available, then the method should return the path to + the source file, regardless of whether a bytecode was used to load the + module. + + .. versionchanged:: 3.4 + Raises :exc:`ImportError` instead of :exc:`NotImplementedError`. + + +.. class:: FileLoader(fullname, path) + + An abstract base class which inherits from :class:`ResourceLoader` and + :class:`ExecutionLoader`, providing concrete implementations of + :meth:`ResourceLoader.get_data` and :meth:`ExecutionLoader.get_filename`. + + The *fullname* argument is a fully resolved name of the module the loader is + to handle. The *path* argument is the path to the file for the module. + + .. versionadded:: 3.3 + + .. attribute:: name + + The name of the module the loader can handle. + + .. attribute:: path + + Path to the file of the module. + + .. method:: load_module(fullname) + + Calls super's ``load_module()``. + + .. deprecated:: 3.4 + Use :meth:`Loader.exec_module` instead. + + .. abstractmethod:: get_filename(fullname) + + Returns :attr:`path`. + + .. abstractmethod:: get_data(path) + + Reads *path* as a binary file and returns the bytes from it. + + +.. class:: SourceLoader + + An abstract base class for implementing source (and optionally bytecode) + file loading. The class inherits from both :class:`ResourceLoader` and + :class:`ExecutionLoader`, requiring the implementation of: + + * :meth:`ResourceLoader.get_data` + * :meth:`ExecutionLoader.get_filename` + Should only return the path to the source file; sourceless + loading is not supported. + + The abstract methods defined by this class are to add optional bytecode + file support. Not implementing these optional methods (or causing them to + raise :exc:`NotImplementedError`) causes the loader to + only work with source code. Implementing the methods allows the loader to + work with source *and* bytecode files; it does not allow for *sourceless* + loading where only bytecode is provided. Bytecode files are an + optimization to speed up loading by removing the parsing step of Python's + compiler, and so no bytecode-specific API is exposed. + + .. method:: path_stats(path) + + Optional abstract method which returns a :class:`dict` containing + metadata about the specified path. Supported dictionary keys are: + + - ``'mtime'`` (mandatory): an integer or floating-point number + representing the modification time of the source code; + - ``'size'`` (optional): the size in bytes of the source code. + + Any other keys in the dictionary are ignored, to allow for future + extensions. If the path cannot be handled, :exc:`OSError` is raised. .. versionadded:: 3.3 .. versionchanged:: 3.4 - Made optional instead of an abstractmethod. + Raise :exc:`OSError` instead of :exc:`NotImplementedError`. - .. deprecated:: 3.4 - The import machinery now takes care of this automatically. + .. method:: path_mtime(path) + + Optional abstract method which returns the modification time for the + specified path. + + .. deprecated:: 3.3 + This method is deprecated in favour of :meth:`path_stats`. You don't + have to implement it, but it is still available for compatibility + purposes. Raise :exc:`OSError` if the path cannot be handled. + + .. versionchanged:: 3.4 + Raise :exc:`OSError` instead of :exc:`NotImplementedError`. + + .. method:: set_data(path, data) + + Optional abstract method which writes the specified bytes to a file + path. Any intermediate directories which do not exist are to be created + automatically. + + When writing to the path fails because the path is read-only + (:attr:`errno.EACCES`/:exc:`PermissionError`), do not propagate the + exception. + + .. versionchanged:: 3.4 + No longer raises :exc:`NotImplementedError` when called. + + .. method:: get_code(fullname) + + Concrete implementation of :meth:`InspectLoader.get_code`. + + .. method:: exec_module(module) + + Concrete implementation of :meth:`Loader.exec_module`. + + .. versionadded:: 3.4 + + .. method:: load_module(fullname) + + Concrete implementation of :meth:`Loader.load_module`. + + .. deprecated:: 3.4 + Use :meth:`exec_module` instead. + + .. method:: get_source(fullname) + + Concrete implementation of :meth:`InspectLoader.get_source`. + + .. method:: is_package(fullname) + Concrete implementation of :meth:`InspectLoader.is_package`. A module + is determined to be a package if its file path (as provided by + :meth:`ExecutionLoader.get_filename`) is a file named + ``__init__`` when the file extension is removed **and** the module name + itself does not end in ``__init__``. -.. include:: importlib.resources.abc.rst :mod:`importlib.machinery` -- Importers and path hooks @@ -899,7 +1128,7 @@ find and load modules. (:attr:`__name__`) - The module's fully-qualified name. + The module's fully qualified name. The :term:`finder` should always set this attribute to a non-empty string. .. attribute:: loader @@ -948,7 +1177,7 @@ find and load modules. (:attr:`__package__`) - (Read-only) The fully-qualified name of the package the module is in (or the + (Read-only) The fully qualified name of the package the module is in (or the empty string for a top-level module). If the module is a package then this is the same as :attr:`name`. diff --git a/Doc/library/inspect.rst b/Doc/library/inspect.rst index 154d0f5dab0cd1..700cd9122cd34c 100644 --- a/Doc/library/inspect.rst +++ b/Doc/library/inspect.rst @@ -187,7 +187,7 @@ attributes: | | co_name | name with which this code | | | | object was defined | +-----------+-------------------+---------------------------+ -| | co_qualname | fully-qualified name with | +| | co_qualname | fully qualified name with | | | | which this code object | | | | was defined | +-----------+-------------------+---------------------------+ @@ -1130,7 +1130,7 @@ Classes and functions doesn't have its own annotations dict, returns an empty dict. * All accesses to object members and dict values are done using ``getattr()`` and ``dict.get()`` for safety. - * Always, always, always returns a freshly-created dict. + * Always, always, always returns a freshly created dict. ``eval_str`` controls whether or not values of type ``str`` are replaced with the result of calling :func:`eval()` on those values: diff --git a/Doc/library/intro.rst b/Doc/library/intro.rst index 5bb33b9c10cc03..1020924038e91f 100644 --- a/Doc/library/intro.rst +++ b/Doc/library/intro.rst @@ -60,3 +60,62 @@ Notes on availability * If not separately noted, all functions that claim "Availability: Unix" are supported on macOS, which builds on a Unix core. +* If an availability note contains both a minimum Kernel version and a minimum + libc version, then both conditions must hold. For example a feature with note + *Availability: Linux >= 3.17 with glibc >= 2.27* requires both Linux 3.17 or + newer and glibc 2.27 or newer. + +.. _wasm-availability: + +WebAssembly platforms +--------------------- + +The `WebAssembly`_ platforms ``wasm32-emscripten`` (`Emscripten`_) and +``wasm32-wasi`` (`WASI`_) provide a subset of POSIX APIs. WebAssembly runtimes +and browsers are sandboxed and have limited access to the host and external +resources. Any Python standard library module that uses processes, threading, +networking, signals, or other forms of inter-process communication (IPC), is +either not available or may not work as on other Unix-like systems. File I/O, +file system, and Unix permission-related functions are restricted, too. +Emscripten does not permit blocking I/O. Other blocking operations like +:func:`~time.sleep` block the browser event loop. + +The properties and behavior of Python on WebAssembly platforms depend on the +`Emscripten`_-SDK or `WASI`_-SDK version, WASM runtimes (browser, NodeJS, +`wasmtime`_), and Python build time flags. WebAssembly, Emscripten, and WASI +are evolving standards; some features like networking may be +supported in the future. + +For Python in the browser, users should consider `Pyodide`_ or `PyScript`_. +PyScript is built on top of Pyodide, which itself is built on top of +CPython and Emscripten. Pyodide provides access to browsers' JavaScript and +DOM APIs as well as limited networking capabilities with JavaScript's +``XMLHttpRequest`` and ``Fetch`` APIs. + +* Process-related APIs are not available or always fail with an error. That + includes APIs that spawn new processes (:func:`~os.fork`, + :func:`~os.execve`), wait for processes (:func:`~os.waitpid`), send signals + (:func:`~os.kill`), or otherwise interact with processes. The + :mod:`subprocess` is importable but does not work. + +* The :mod:`socket` module is available, but is limited and behaves + differently from other platforms. On Emscripten, sockets are always + non-blocking and require additional JavaScript code and helpers on the + server to proxy TCP through WebSockets; see `Emscripten Networking`_ + for more information. WASI snapshot preview 1 only permits sockets from an + existing file descriptor. + +* Some functions are stubs that either don't do anything and always return + hardcoded values. + +* Functions related to file descriptors, file permissions, file ownership, and + links are limited and don't support some operations. For example, WASI does + not permit symlinks with absolute file names. + +.. _WebAssembly: https://webassembly.org/ +.. _Emscripten: https://emscripten.org/ +.. _Emscripten Networking: https://emscripten.org/docs/porting/networking.html> +.. _WASI: https://wasi.dev/ +.. _wasmtime: https://wasmtime.dev/ +.. _Pyodide: https://pyodide.org/ +.. _PyScript: https://pyscript.net/ diff --git a/Doc/library/io.rst b/Doc/library/io.rst index d8e7b1621e2ea8..97a70646a93cab 100644 --- a/Doc/library/io.rst +++ b/Doc/library/io.rst @@ -1042,7 +1042,7 @@ Text I/O The method supports ``encoding="locale"`` option. -.. class:: StringIO(initial_value='', newline='\\n') +.. class:: StringIO(initial_value='', newline='\n') A text stream using an in-memory text buffer. It inherits :class:`TextIOBase`. @@ -1052,8 +1052,12 @@ Text I/O The initial value of the buffer can be set by providing *initial_value*. If newline translation is enabled, newlines will be encoded as if by - :meth:`~TextIOBase.write`. The stream is positioned at the start of - the buffer. + :meth:`~TextIOBase.write`. The stream is positioned at the start of the + buffer which emulates opening an existing file in a `w+` mode, making it + ready for an immediate write from the beginning or for a write that + would overwrite the initial value. To emulate opening a file in an `a+` + mode ready for appending, use `f.seek(0, io.SEEK_END)` to reposition the + stream at the end of the buffer. The *newline* argument works like that of :class:`TextIOWrapper`, except that when writing output to the stream, if *newline* is ``None``, diff --git a/Doc/library/itertools.rst b/Doc/library/itertools.rst index 416c4eca5eb48a..9a6e061fa0f2e6 100644 --- a/Doc/library/itertools.rst +++ b/Doc/library/itertools.rst @@ -314,7 +314,7 @@ loops that truncate the stream. def count(start=0, step=1): # count(10) --> 10 11 12 13 14 ... - # count(2.5, 0.5) -> 2.5 3.0 3.5 ... + # count(2.5, 0.5) --> 2.5 3.0 3.5 ... n = start while True: yield n @@ -668,7 +668,7 @@ loops that truncate the stream. the tee objects being informed. ``tee`` iterators are not threadsafe. A :exc:`RuntimeError` may be - raised when using simultaneously iterators returned by the same :func:`tee` + raised when simultaneously using iterators returned by the same :func:`tee` call, even if the original *iterable* is threadsafe. This itertool may require significant auxiliary storage (depending on how @@ -739,7 +739,7 @@ which incur interpreter overhead. def prepend(value, iterator): "Prepend a single value in front of an iterator" - # prepend(1, [2, 3, 4]) -> 1 2 3 4 + # prepend(1, [2, 3, 4]) --> 1 2 3 4 return chain([value], iterator) def tabulate(function, start=0): @@ -800,6 +800,28 @@ which incur interpreter overhead. window.append(x) yield sum(map(operator.mul, kernel, window)) + def polynomial_from_roots(roots): + """Compute a polynomial's coefficients from its roots. + + (x - 5) (x + 4) (x - 3) expands to: x³ -4x² -17x + 60 + """ + # polynomial_from_roots([5, -4, 3]) --> [1, -4, -17, 60] + roots = list(map(operator.neg, roots)) + return [ + sum(map(math.prod, combinations(roots, k))) + for k in range(len(roots) + 1) + ] + + def sieve(n): + "Primes less than n" + # sieve(30) --> 2 3 5 7 11 13 17 19 23 29 + data = bytearray([1]) * n + data[:2] = 0, 0 + limit = math.isqrt(n) + 1 + for p in compress(count(), islice(data, limit)): + data[p+p : n : p] = bytearray(len(range(p+p, n, p))) + return compress(count(), data) + def flatten(list_of_lists): "Flatten one level of nesting" return chain.from_iterable(list_of_lists) @@ -830,12 +852,12 @@ which incur interpreter overhead. def triplewise(iterable): "Return overlapping triplets from an iterable" - # triplewise('ABCDEFG') -> ABC BCD CDE DEF EFG + # triplewise('ABCDEFG') --> ABC BCD CDE DEF EFG for (a, _), (b, c) in pairwise(pairwise(iterable)): yield a, b, c def sliding_window(iterable, n): - # sliding_window('ABCDEFG', 4) -> ABCD BCDE CDEF DEFG + # sliding_window('ABCDEFG', 4) --> ABCD BCDE CDEF DEFG it = iter(iterable) window = collections.deque(islice(it, n), maxlen=n) if len(window) == n: @@ -1067,6 +1089,7 @@ which incur interpreter overhead. >>> import operator >>> import collections >>> import math + >>> import random >>> take(10, count()) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] @@ -1116,7 +1139,6 @@ which incur interpreter overhead. >>> list(repeatfunc(pow, 5, 2, 3)) [8, 8, 8, 8, 8] - >>> import random >>> take(5, map(int, repeatfunc(random.random))) [0, 0, 0, 0, 0] @@ -1137,10 +1159,29 @@ which incur interpreter overhead. >>> list(convolve(data, [1, -2, 1])) [20, 0, -36, 24, -20, 20, -20, -4, 16] + >>> polynomial_from_roots([5, -4, 3]) + [1, -4, -17, 60] + >>> factored = lambda x: (x - 5) * (x + 4) * (x - 3) + >>> expanded = lambda x: x**3 -4*x**2 -17*x + 60 + >>> all(factored(x) == expanded(x) for x in range(-10, 11)) + True + + >>> list(sieve(30)) + [2, 3, 5, 7, 11, 13, 17, 19, 23, 29] + >>> len(list(sieve(100))) + 25 + >>> len(list(sieve(1_000))) + 168 + >>> len(list(sieve(10_000))) + 1229 + >>> len(list(sieve(100_000))) + 9592 + >>> len(list(sieve(1_000_000))) + 78498 + >>> list(flatten([('a', 'b'), (), ('c', 'd', 'e'), ('f',), ('g', 'h', 'i')])) ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'] - >>> import random >>> random.seed(85753098575309) >>> list(repeatfunc(random.random, 3)) [0.16370491282496968, 0.45889608687313455, 0.3747076837820118] diff --git a/Doc/library/json.rst b/Doc/library/json.rst index 1e203242327cad..d05d62e78cc71e 100644 --- a/Doc/library/json.rst +++ b/Doc/library/json.rst @@ -9,6 +9,11 @@ **Source code:** :source:`Lib/json/__init__.py` +.. testsetup:: * + + import json + from json import AttrDict + -------------- `JSON (JavaScript Object Notation) `_, specified by @@ -18,6 +23,11 @@ is a lightweight data interchange format inspired by `JavaScript `_ object literal syntax (although it is not a strict subset of JavaScript [#rfc-errata]_ ). +.. warning:: + Be cautious when parsing JSON data from untrusted sources. A malicious + JSON string may cause the decoder to consume considerable CPU and memory + resources. Limiting the size of data to be parsed is recommended. + :mod:`json` exposes an API familiar to users of the standard library :mod:`marshal` and :mod:`pickle` modules. @@ -226,7 +236,7 @@ Basic Usage *object_hook* is an optional function that will be called with the result of any object literal decoded (a :class:`dict`). The return value of *object_hook* will be used instead of the :class:`dict`. This feature can be used - to implement custom decoders (e.g. `JSON-RPC `_ + to implement custom decoders (e.g. `JSON-RPC `_ class hinting). *object_pairs_hook* is an optional function that will be called with the @@ -248,6 +258,12 @@ Basic Usage be used to use another datatype or parser for JSON integers (e.g. :class:`float`). + .. versionchanged:: 3.12 + The default *parse_int* of :func:`int` now limits the maximum length of + the integer string via the interpreter's :ref:`integer string + conversion length limitation ` to help avoid denial + of service attacks. + *parse_constant*, if specified, will be called with one of the following strings: ``'-Infinity'``, ``'Infinity'``, ``'NaN'``. This can be used to raise an exception if invalid JSON numbers @@ -326,7 +342,7 @@ Encoders and Decoders *object_hook*, if specified, will be called with the result of every JSON object decoded and its return value will be used in place of the given :class:`dict`. This can be used to provide custom deserializations (e.g. to - support `JSON-RPC `_ class hinting). + support `JSON-RPC `_ class hinting). *object_pairs_hook*, if specified will be called with the result of every JSON object decoded with an ordered list of pairs. The return value of @@ -532,6 +548,44 @@ Exceptions .. versionadded:: 3.5 +.. class:: AttrDict(**kwargs) + AttrDict(mapping, **kwargs) + AttrDict(iterable, **kwargs) + + Subclass of :class:`dict` object that also supports attribute style dotted access. + + This class is intended for use with the :attr:`object_hook` in + :func:`json.load` and :func:`json.loads`:: + + .. doctest:: + + >>> json_string = '{"mercury": 88, "venus": 225, "earth": 365, "mars": 687}' + >>> orbital_period = json.loads(json_string, object_hook=AttrDict) + >>> orbital_period['earth'] # Dict style lookup + 365 + >>> orbital_period.earth # Attribute style lookup + 365 + >>> orbital_period.keys() # All dict methods are present + dict_keys(['mercury', 'venus', 'earth', 'mars']) + + Attribute style access only works for keys that are valid attribute + names. In contrast, dictionary style access works for all keys. For + example, ``d.two words`` contains a space and is not syntactically + valid Python, so ``d["two words"]`` should be used instead. + + If a key has the same name as a dictionary method, then a dictionary + lookup finds the key and an attribute lookup finds the method: + + .. doctest:: + + >>> d = AttrDict(items=50) + >>> d['items'] # Lookup the key + 50 + >>> d.items() # Call the method + dict_items([('items', 50)]) + + .. versionadded:: 3.12 + Standard Compliance and Interoperability ---------------------------------------- diff --git a/Doc/library/locale.rst b/Doc/library/locale.rst index 112f0bae78daf9..5bb09b68ca138c 100644 --- a/Doc/library/locale.rst +++ b/Doc/library/locale.rst @@ -301,7 +301,7 @@ The :mod:`locale` module defines the following exception and functions: *language code* and *encoding* may be ``None`` if their values cannot be determined. - .. deprecated:: 3.11 3.13 + .. deprecated-removed:: 3.11 3.13 .. function:: getlocale(category=LC_CTYPE) @@ -375,7 +375,7 @@ The :mod:`locale` module defines the following exception and functions: The default setting is determined by calling :func:`getdefaultlocale`. *category* defaults to :const:`LC_ALL`. - .. deprecated:: 3.11 3.13 + .. deprecated-removed:: 3.11 3.13 .. function:: strcoll(string1, string2) @@ -412,18 +412,6 @@ The :mod:`locale` module defines the following exception and functions: The *monetary* keyword parameter was added. -.. function:: format(format, val, grouping=False, monetary=False) - - Please note that this function works like :meth:`format_string` but will - only work for exactly one ``%char`` specifier. For example, ``'%f'`` and - ``'%.0f'`` are both valid specifiers, but ``'%f KiB'`` is not. - - For whole format strings, use :func:`format_string`. - - .. deprecated:: 3.7 - Use :meth:`format_string` instead. - - .. function:: currency(val, symbol=True, grouping=False, international=False) Formats a number *val* according to the current :const:`LC_MONETARY` settings. @@ -507,7 +495,7 @@ The :mod:`locale` module defines the following exception and functions: .. data:: LC_NUMERIC - Locale category for formatting numbers. The functions :func:`.format`, + Locale category for formatting numbers. The functions :func:`format_string`, :func:`atoi`, :func:`atof` and :func:`.str` of the :mod:`locale` module are affected by that category. All other numeric formatting operations are not affected. @@ -569,7 +557,7 @@ document that your module is not compatible with non-\ ``C`` locale settings. The only way to perform numeric operations according to the locale is to use the special functions defined by this module: :func:`atof`, :func:`atoi`, -:func:`.format`, :func:`.str`. +:func:`format_string`, :func:`.str`. There is no way to perform case conversions and character classifications according to the locale. For (Unicode) text strings these are done according diff --git a/Doc/library/logging.config.rst b/Doc/library/logging.config.rst index 310796e7ac6b14..9b82c1f75e3f07 100644 --- a/Doc/library/logging.config.rst +++ b/Doc/library/logging.config.rst @@ -534,6 +534,25 @@ mnemonic that the corresponding value is a callable. The ``filters`` member of ``handlers`` and ``loggers`` can take filter instances in addition to ids. +You can also specify a special key ``'.'`` whose value is a dictionary is a +mapping of attribute names to values. If found, the specified attributes will +be set on the user-defined object before it is returned. Thus, with the +following configuration:: + + { + '()' : 'my.package.customFormatterFactory', + 'bar' : 'baz', + 'spam' : 99.9, + 'answer' : 42, + '.' { + 'foo': 'bar', + 'baz': 'bozz' + } + } + +the returned formatter will have attribute ``foo`` set to ``'bar'`` and +attribute ``baz`` set to ``'bozz'``. + .. _logging-config-dict-externalobj: @@ -661,6 +680,76 @@ it with :func:`staticmethod`. For example:: You don't need to wrap with :func:`staticmethod` if you're setting the import callable on a configurator *instance*. +.. _configure-queue: + +Configuring QueueHandler and QueueListener +"""""""""""""""""""""""""""""""""""""""""" + +If you want to configure a :class:`~logging.handlers.QueueHandler`, noting that this +is normally used in conjunction with a :class:`~logging.handlers.QueueListener`, you +can configure both together. After the configuration, the ``QueueListener`` instance +will be available as the :attr:`~logging.handlers.QueueHandler.listener` attribute of +the created handler, and that in turn will be available to you using +:func:`~logging.getHandlerByName` and passing the name you have used for the +``QueueHandler`` in your configuration. The dictionary schema for configuring the pair +is shown in the example YAML snippet below. + +.. code-block:: yaml + + handlers: + qhand: + class: logging.handlers.QueueHandler + queue: my.module.queue_factory + listener: my.package.CustomListener + handlers: + - hand_name_1 + - hand_name_2 + ... + +The ``queue`` and ``listener`` keys are optional. + +If the ``queue`` key is present, the corresponding value can be one of the following: + +* An actual instance of :class:`queue.Queue` or a subclass thereof. This is of course + only possible if you are constructing or modifying the configuration dictionary in + code. + +* A string that resolves to a callable which, when called with no arguments, returns + the :class:`queue.Queue` instance to use. That callable could be a + :class:`queue.Queue` subclass or a function which returns a suitable queue instance, + such as ``my.module.queue_factory()``. + +* A dict with a ``'()'`` key which is constructed in the usual way as discussed in + :ref:`logging-config-dict-userdef`. The result of this construction should be a + :class:`queue.Queue` instance. + +If the ``queue`` key is absent, a standard unbounded :class:`queue.Queue` instance is +created and used. + +If the ``listener`` key is present, the corresponding value can be one of the following: + +* A subclass of :class:`logging.handlers.QueueListener`. This is of course only + possible if you are constructing or modifying the configuration dictionary in + code. + +* A string which resolves to a class which is a subclass of ``QueueListener``, such as + ``'my.package.CustomListener'``. + +* A dict with a ``'()'`` key which is constructed in the usual way as discussed in + :ref:`logging-config-dict-userdef`. The result of this construction should be a + callable with the same signature as the ``QueueListener`` initializer. + +If the ``listener`` key is absent, :class:`logging.handlers.QueueListener` is used. + +The values under the ``handlers`` key are the names of other handlers in the +configuration (not shown in the above snippet) which will be passed to the queue +listener. + +Any custom queue handler and listener classes will need to be defined with the same +initialization signatures as :class:`~logging.handlers.QueueHandler` and +:class:`~logging.handlers.QueueListener`. + +.. versionadded:: 3.12 .. _logging-config-fileformat: diff --git a/Doc/library/logging.handlers.rst b/Doc/library/logging.handlers.rst index f5ef80ea044c66..f3b26e726aafc7 100644 --- a/Doc/library/logging.handlers.rst +++ b/Doc/library/logging.handlers.rst @@ -572,6 +572,13 @@ over UDP sockets. Returns a new instance of the :class:`DatagramHandler` class intended to communicate with a remote machine whose address is given by *host* and *port*. + .. note:: As UDP is not a streaming protocol, there is no persistent connection + between an instance of this handler and *host*. For this reason, when using a + network socket, a DNS lookup might have to be made each time an event is + logged, which can introduce some latency into the system. If this affects you, + you can do a lookup yourself and initialize this handler using the looked-up IP + address rather than the hostname. + .. versionchanged:: 3.4 If ``port`` is specified as ``None``, a Unix domain socket is created using the value in ``host`` - otherwise, a UDP socket is created. @@ -629,6 +636,12 @@ supports sending logging messages to a remote or local Unix syslog. application needs to run on several platforms). On Windows, you pretty much have to use the UDP option. + .. note:: On macOS 12.x (Monterey), Apple has changed the behaviour of their + syslog daemon - it no longer listens on a domain socket. Therefore, you cannot + expect :class:`SysLogHandler` to work on this system. + + See :gh:`91070` for more information. + .. versionchanged:: 3.2 *socktype* was added. @@ -1018,6 +1031,8 @@ possible, while any potentially slow operations (such as sending an email via have the task tracking API, which means that you can use :class:`~queue.SimpleQueue` instances for *queue*. + .. note:: If you are using :mod:`multiprocessing`, you should avoid using + :class:`~queue.SimpleQueue` and instead use :class:`multiprocessing.Queue`. .. method:: emit(record) @@ -1034,7 +1049,7 @@ possible, while any potentially slow operations (such as sending an email via method is enqueued. The base implementation formats the record to merge the message, - arguments, and exception information, if present. It also removes + arguments, exception and stack information, if present. It also removes unpickleable items from the record in-place. Specifically, it overwrites the record's :attr:`msg` and :attr:`message` attributes with the merged message (obtained by calling the handler's :meth:`format` method), and @@ -1045,13 +1060,33 @@ possible, while any potentially slow operations (such as sending an email via the record to a dict or JSON string, or send a modified copy of the record while leaving the original intact. + .. note:: The base implementation formats the message with arguments, sets + the ``message`` and ``msg`` attributes to the formatted message and + sets the ``args`` and ``exc_text`` attributes to ``None`` to allow + pickling and to prevent further attempts at formatting. This means + that a handler on the :class:`QueueListener` side won't have the + information to do custom formatting, e.g. of exceptions. You may wish + to subclass ``QueueHandler`` and override this method to e.g. avoid + setting ``exc_text`` to ``None``. Note that the ``message`` / ``msg`` + / ``args`` changes are related to ensuring the record is pickleable, + and you might or might not be able to avoid doing that depending on + whether your ``args`` are pickleable. (Note that you may have to + consider not only your own code but also code in any libraries that + you use.) + .. method:: enqueue(record) Enqueues the record on the queue using ``put_nowait()``; you may want to override this if you want to use blocking behaviour, or a timeout, or a customized queue implementation. + .. attribute:: listener + + When created via configuration using :func:`~logging.config.dictConfig`, this + attribute will contain a :class:`QueueListener` instance for use with this + handler. Otherwise, it will be ``None``. + .. versionadded:: 3.12 .. _queue-listener: @@ -1085,6 +1120,9 @@ possible, while any potentially slow operations (such as sending an email via task tracking API (though it's used if available), which means that you can use :class:`~queue.SimpleQueue` instances for *queue*. + .. note:: If you are using :mod:`multiprocessing`, you should avoid using + :class:`~queue.SimpleQueue` and instead use :class:`multiprocessing.Queue`. + If ``respect_handler_level`` is ``True``, a handler's level is respected (compared with the level for the message) when deciding whether to pass messages to that handler; otherwise, the behaviour is as in previous Python diff --git a/Doc/library/logging.rst b/Doc/library/logging.rst index ac86bc8077ef74..8793627e119100 100644 --- a/Doc/library/logging.rst +++ b/Doc/library/logging.rst @@ -30,9 +30,17 @@ is that all Python modules can participate in logging, so your application log can include your own messages integrated with messages from third-party modules. +The simplest example: + +.. code-block:: none + + >>> import logging + >>> logging.warning('Watch out!') + WARNING:root:Watch out! + The module provides a lot of functionality and flexibility. If you are -unfamiliar with logging, the best way to get to grips with it is to see the -tutorials (see the links on the right). +unfamiliar with logging, the best way to get to grips with it is to view the +tutorials (**see the links above and on the right**). The basic classes defined by the module, together with their functions, are listed below. @@ -162,6 +170,18 @@ is the module's name in the Python package namespace. .. versionadded:: 3.2 + .. method:: Logger.getChildren() + + Returns a set of loggers which are immediate children of this logger. So for + example ``logging.getLogger().getChildren()`` might return a set containing + loggers named ``foo`` and ``bar``, but a logger named ``foo.bar`` wouldn't be + included in the set. Likewise, ``logging.getLogger('foo').getChildren()`` might + return a set including a logger named ``foo.bar``, but it wouldn't include one + named ``foo.bar.baz``. + + .. versionadded:: 3.12 + + .. method:: Logger.debug(msg, *args, **kwargs) Logs a message with level :const:`DEBUG` on this logger. The *msg* is the @@ -225,7 +245,7 @@ is the module's name in the Python package namespace. 2006-02-08 22:20:02,165 192.168.0.1 fbloggs Protocol problem: connection reset The keys in the dictionary passed in *extra* should not clash with the keys used - by the logging system. (See the :class:`Formatter` documentation for more + by the logging system. (See the section on :ref:`logrecord-attributes` for more information on which keys are used by the logging system.) If you choose to use these attributes in logged messages, you need to exercise @@ -523,55 +543,53 @@ Formatter Objects .. currentmodule:: logging -:class:`Formatter` objects have the following attributes and methods. They are -responsible for converting a :class:`LogRecord` to (usually) a string which can -be interpreted by either a human or an external system. The base -:class:`Formatter` allows a formatting string to be specified. If none is -supplied, the default value of ``'%(message)s'`` is used, which just includes -the message in the logging call. To have additional items of information in the -formatted output (such as a timestamp), keep reading. - -A Formatter can be initialized with a format string which makes use of knowledge -of the :class:`LogRecord` attributes - such as the default value mentioned above -making use of the fact that the user's message and arguments are pre-formatted -into a :class:`LogRecord`'s *message* attribute. This format string contains -standard Python %-style mapping keys. See section :ref:`old-string-formatting` -for more information on string formatting. - -The useful mapping keys in a :class:`LogRecord` are given in the section on -:ref:`logrecord-attributes`. - - .. class:: Formatter(fmt=None, datefmt=None, style='%', validate=True, *, defaults=None) - Returns a new instance of the :class:`Formatter` class. The instance is - initialized with a format string for the message as a whole, as well as a - format string for the date/time portion of a message. If no *fmt* is - specified, ``'%(message)s'`` is used. If no *datefmt* is specified, a format - is used which is described in the :meth:`formatTime` documentation. + Responsible for converting a :class:`LogRecord` to an output string + to be interpreted by a human or external system. + + :param fmt: A format string in the given *style* for + the logged output as a whole. + The possible mapping keys are drawn from the :class:`LogRecord` object's + :ref:`logrecord-attributes`. + If not specified, ``'%(message)s'`` is used, + which is just the logged message. + :type fmt: str + + :param datefmt: A format string in the given *style* for + the date/time portion of the logged output. + If not specified, the default described in :meth:`formatTime` is used. + :type datefmt: str + + :param style: Can be one of ``'%'``, ``'{'`` or ``'$'`` and determines + how the format string will be merged with its data: using one of + :ref:`old-string-formatting` (``%``), :meth:`str.format` (``{``) + or :class:`string.Template` (``$``). This only applies to + *fmt* and *datefmt* (e.g. ``'%(message)s'`` versus ``'{message}'``), + not to the actual log messages passed to the logging methods. + However, there are :ref:`other ways ` + to use ``{``- and ``$``-formatting for log messages. + :type style: str + + :param validate: If ``True`` (the default), incorrect or mismatched + *fmt* and *style* will raise a :exc:`ValueError`; for example, + ``logging.Formatter('%(asctime)s - %(message)s', style='{')``. + :type validate: bool + + :param defaults: A dictionary with default values to use in custom fields. + For example, + ``logging.Formatter('%(ip)s %(message)s', defaults={"ip": None})`` + :type defaults: dict[str, Any] - The *style* parameter can be one of '%', '{' or '$' and determines how - the format string will be merged with its data: using one of %-formatting, - :meth:`str.format` or :class:`string.Template`. This only applies to the - format string *fmt* (e.g. ``'%(message)s'`` or ``{message}``), not to the - actual log messages passed to ``Logger.debug`` etc; see - :ref:`formatting-styles` for more information on using {- and $-formatting - for log messages. + .. versionadded:: 3.2 + The *style* parameter. - The *defaults* parameter can be a dictionary with default values to use in - custom fields. For example: - ``logging.Formatter('%(ip)s %(message)s', defaults={"ip": None})`` + .. versionadded:: 3.8 + The *validate* parameter. - .. versionchanged:: 3.2 - The *style* parameter was added. + .. versionadded:: 3.10 + The *defaults* parameter. - .. versionchanged:: 3.8 - The *validate* parameter was added. Incorrect or mismatched style and fmt - will raise a ``ValueError``. - For example: ``logging.Formatter('%(asctime)s - %(message)s', style='{')``. - - .. versionchanged:: 3.10 - The *defaults* parameter was added. .. method:: format(record) @@ -644,6 +662,35 @@ The useful mapping keys in a :class:`LogRecord` are given in the section on :func:`traceback.print_stack`, but with the last newline removed) as a string. This default implementation just returns the input value. +.. class:: BufferingFormatter(linefmt=None) + + A base formatter class suitable for subclassing when you want to format a + number of records. You can pass a :class:`Formatter` instance which you want + to use to format each line (that corresponds to a single record). If not + specified, the default formatter (which just outputs the event message) is + used as the line formatter. + + .. method:: formatHeader(records) + + Return a header for a list of *records*. The base implementation just + returns the empty string. You will need to override this method if you + want specific behaviour, e.g. to show the count of records, a title or a + separator line. + + .. method:: formatFooter(records) + + Return a footer for a list of *records*. The base implementation just + returns the empty string. You will need to override this method if you + want specific behaviour, e.g. to show the count of records or a separator + line. + + .. method:: format(records) + + Return formatted text for a list of *records*. The base implementation + just returns the empty string if there are no records; otherwise, it + returns the concatenation of the header, each record formatted with the + line formatter, and the footer. + .. _filter: Filter Objects @@ -666,9 +713,10 @@ empty string, all events are passed. .. method:: filter(record) - Is the specified record to be logged? Returns zero for no, nonzero for - yes. If deemed appropriate, the record may be modified in-place by this - method. + Is the specified record to be logged? Returns false for no, true for + yes. Filters can either modify log records in-place or return a completely + different record instance which will replace the original + log record in any future processing of the event. Note that filters attached to handlers are consulted before an event is emitted by the handler, whereas filters attached to loggers are consulted @@ -690,6 +738,12 @@ which has a ``filter`` method with the same semantics. parameter. The returned value should conform to that returned by :meth:`~Filter.filter`. +.. versionchanged:: 3.12 + You can now return a :class:`LogRecord` instance from filters to replace + the log record rather than modifying it in place. This allows filters attached to + a :class:`Handler` to modify the log record before it is emitted, without + having side effects on other handlers. + Although filters are used primarily to filter records based on more sophisticated criteria than levels, they get to see every record which is processed by the handler or logger they're attached to: this can be useful if @@ -699,6 +753,7 @@ the :class:`LogRecord` being processed. Obviously changing the LogRecord needs to be done with some care, but it does allow the injection of contextual information into logs (see :ref:`filters-contextual`). + .. _log-record: LogRecord Objects @@ -714,32 +769,54 @@ wire). Contains all the information pertinent to the event being logged. - The primary information is passed in :attr:`msg` and :attr:`args`, which - are combined using ``msg % args`` to create the :attr:`message` field of the - record. - - :param name: The name of the logger used to log the event represented by - this LogRecord. Note that this name will always have this - value, even though it may be emitted by a handler attached to - a different (ancestor) logger. - :param level: The numeric level of the logging event (one of DEBUG, INFO etc.) - Note that this is converted to *two* attributes of the LogRecord: - ``levelno`` for the numeric value and ``levelname`` for the - corresponding level name. - :param pathname: The full pathname of the source file where the logging call - was made. - :param lineno: The line number in the source file where the logging call was - made. - :param msg: The event description message, possibly a format string with - placeholders for variable data. - :param args: Variable data to merge into the *msg* argument to obtain the - event description. + The primary information is passed in *msg* and *args*, + which are combined using ``msg % args`` to create + the :attr:`!message` attribute of the record. + + :param name: The name of the logger used to log the event + represented by this :class:`!LogRecord`. + Note that the logger name in the :class:`!LogRecord` + will always have this value, + even though it may be emitted by a handler + attached to a different (ancestor) logger. + :type name: str + + :param level: The :ref:`numeric level ` of the logging event + (such as ``10`` for ``DEBUG``, ``20`` for ``INFO``, etc). + Note that this is converted to *two* attributes of the LogRecord: + :attr:`!levelno` for the numeric value + and :attr:`!levelname` for the corresponding level name. + :type level: int + + :param pathname: The full string path of the source file + where the logging call was made. + :type pathname: str + + :param lineno: The line number in the source file + where the logging call was made. + :type lineno: int + + :param msg: The event description message, + which can be a %-format string with placeholders for variable data. + :type msg: str + + :param args: Variable data to merge into the *msg* argument + to obtain the event description. + :type args: tuple | dict[str, typing.Any] + :param exc_info: An exception tuple with the current exception information, - or ``None`` if no exception information is available. - :param func: The name of the function or method from which the logging call - was invoked. - :param sinfo: A text string representing stack information from the base of - the stack in the current thread, up to the logging call. + as returned by :func:`sys.exc_info`, + or ``None`` if no exception information is available. + :type exc_info: tuple[type[BaseException], BaseException, types.TracebackType] | None + + :param func: The name of the function or method + from which the logging call was invoked. + :type func: str | None + + :param sinfo: A text string representing stack information + from the base of the stack in the current thread, + up to the logging call. + :type sinfo: str | None .. method:: getMessage() @@ -1164,6 +1241,19 @@ functions. This undocumented behaviour was considered a mistake, and was removed in Python 3.4, but reinstated in 3.4.2 due to retain backward compatibility. +.. function:: getHandlerByName(name) + + Returns a handler with the specified *name*, or ``None`` if there is no handler + with that name. + + .. versionadded:: 3.12 + +.. function:: getHandlerNames() + + Returns an immutable set of all known handler names. + + .. versionadded:: 3.12 + .. function:: makeLogRecord(attrdict) Creates and returns a new :class:`LogRecord` instance whose attributes are diff --git a/Doc/library/mailbox.rst b/Doc/library/mailbox.rst index 94d95d10290b00..d74fc8059fd538 100644 --- a/Doc/library/mailbox.rst +++ b/Doc/library/mailbox.rst @@ -1510,7 +1510,7 @@ The following exception classes are defined in the :mod:`mailbox` module: Raised when some mailbox-related condition beyond the control of the program causes it to be unable to proceed, such as when failing to acquire a lock that - another program already holds a lock, or when a uniquely-generated file name + another program already holds a lock, or when a uniquely generated file name already exists. diff --git a/Doc/library/mailcap.rst b/Doc/library/mailcap.rst index 5490c8468d7cf7..bfaedb46091991 100644 --- a/Doc/library/mailcap.rst +++ b/Doc/library/mailcap.rst @@ -60,6 +60,18 @@ standard. However, mailcap files are supported on most Unix systems. use) to determine whether or not the mailcap line applies. :func:`findmatch` will automatically check such conditions and skip the entry if the check fails. + .. versionchanged:: 3.11 + + To prevent security issues with shell metacharacters (symbols that have + special effects in a shell command line), ``findmatch`` will refuse + to inject ASCII characters other than alphanumerics and ``@+=:,./-_`` + into the returned command line. + + If a disallowed character appears in *filename*, ``findmatch`` will always + return ``(None, None)`` as if no entry was found. + If such a character appears elsewhere (a value in *plist* or in *MIMEtype*), + ``findmatch`` will ignore all mailcap entries which use that value. + A :mod:`warning ` will be raised in either case. .. function:: getcaps() diff --git a/Doc/library/math.rst b/Doc/library/math.rst index 5efcc7f6a6efc4..e338959ffbe4bf 100644 --- a/Doc/library/math.rst +++ b/Doc/library/math.rst @@ -108,7 +108,7 @@ Number-theoretic and representation functions .. function:: fsum(iterable) Return an accurate floating point sum of values in the iterable. Avoids - loss of precision by tracking multiple intermediate partial sums:: + loss of precision by tracking multiple intermediate partial sums: >>> sum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1]) 0.9999999999999999 @@ -371,7 +371,7 @@ Power and logarithmic functions logarithms. For small floats *x*, the subtraction in ``exp(x) - 1`` can result in a `significant loss of precision `_\; the :func:`expm1` - function provides a way to compute this quantity to full precision:: + function provides a way to compute this quantity to full precision: >>> from math import exp, expm1 >>> exp(1e-5) - 1 # gives result accurate to 11 places @@ -578,7 +578,7 @@ Special functions The :func:`erf` function can be used to compute traditional statistical functions such as the `cumulative standard normal distribution - `_:: + `_:: def phi(x): 'Cumulative distribution function for the standard normal distribution' @@ -654,7 +654,7 @@ Constants not considered to equal to any other numeric value, including themselves. To check whether a number is a NaN, use the :func:`isnan` function to test for NaNs instead of ``is`` or ``==``. - Example:: + Example: >>> import math >>> math.nan == math.nan diff --git a/Doc/library/mmap.rst b/Doc/library/mmap.rst index d19580cd7ee5ce..c4f8781f2ac993 100644 --- a/Doc/library/mmap.rst +++ b/Doc/library/mmap.rst @@ -6,6 +6,8 @@ -------------- +.. include:: ../includes/wasm-notavail.rst + Memory-mapped file objects behave like both :class:`bytearray` and like :term:`file objects `. You can use mmap objects in most places where :class:`bytearray` are expected; for example, you can use the :mod:`re` @@ -102,7 +104,7 @@ To map anonymous memory, -1 should be passed as the fileno along with the length To ensure validity of the created memory mapping the file specified by the descriptor *fileno* is internally automatically synchronized - with physical backing store on macOS and OpenVMS. + with the physical backing store on macOS. This example shows a simple way of using :class:`~mmap.mmap`:: diff --git a/Doc/library/modules.rst b/Doc/library/modules.rst index 6cf6eb28a1e058..8c5936a4d8de2b 100644 --- a/Doc/library/modules.rst +++ b/Doc/library/modules.rst @@ -18,5 +18,6 @@ The full list of modules described in this chapter is: runpy.rst importlib.rst importlib.resources.rst + importlib.resources.abc.rst importlib.metadata.rst sys_path_init.rst diff --git a/Doc/library/multiprocessing.rst b/Doc/library/multiprocessing.rst index 2a66b0f65c0882..caf24a35fdfc84 100644 --- a/Doc/library/multiprocessing.rst +++ b/Doc/library/multiprocessing.rst @@ -8,6 +8,8 @@ -------------- +.. include:: ../includes/wasm-notavail.rst + Introduction ------------ @@ -43,6 +45,16 @@ will print to standard output :: [1, 4, 9] +.. seealso:: + + :class:`concurrent.futures.ProcessPoolExecutor` offers a higher level interface + to push tasks to a background process without blocking execution of the + calling process. Compared to using the :class:`~multiprocessing.pool.Pool` + interface directly, the :mod:`concurrent.futures` API more readily allows + the submission of work to the underlying process pool to be separated from + waiting for the results. + + The :class:`Process` class ~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -96,7 +108,7 @@ Depending on the platform, :mod:`multiprocessing` supports three ways to start a process. These *start methods* are *spawn* - The parent process starts a fresh python interpreter process. The + The parent process starts a fresh Python interpreter process. The child process will only inherit those resources necessary to run the process object's :meth:`~Process.run` method. In particular, unnecessary file descriptors and handles from the parent process @@ -1706,7 +1718,7 @@ their parent process exits. The manager classes are defined in the shutdown times out, the process is terminated. If terminating the process also times out, the process is killed. - .. versionchanged: 3.11 + .. versionchanged:: 3.11 Added the *shutdown_timeout* parameter. .. method:: start([initializer[, initargs]]) diff --git a/Doc/library/multiprocessing.shared_memory.rst b/Doc/library/multiprocessing.shared_memory.rst index 2ba42b7e579a77..127a82d47aa195 100644 --- a/Doc/library/multiprocessing.shared_memory.rst +++ b/Doc/library/multiprocessing.shared_memory.rst @@ -1,5 +1,5 @@ -:mod:`multiprocessing.shared_memory` --- Provides shared memory for direct access across processes -=================================================================================================== +:mod:`multiprocessing.shared_memory` --- Shared memory for direct access across processes +========================================================================================= .. module:: multiprocessing.shared_memory :synopsis: Provides shared memory for direct access across processes. diff --git a/Doc/library/nis.rst b/Doc/library/nis.rst index fd3c3d9293d247..3fa7916c37b6a5 100644 --- a/Doc/library/nis.rst +++ b/Doc/library/nis.rst @@ -21,6 +21,8 @@ central administration of several hosts. Because NIS exists only on Unix systems, this module is only available for Unix. +.. include:: ../includes/wasm-notavail.rst + The :mod:`nis` module defines the following functions: diff --git a/Doc/library/nntplib.rst b/Doc/library/nntplib.rst index 2a996e451bf7c5..143e4e0c427f9a 100644 --- a/Doc/library/nntplib.rst +++ b/Doc/library/nntplib.rst @@ -14,6 +14,23 @@ .. deprecated:: 3.11 The :mod:`nntplib` module is deprecated (see :pep:`594` for details). +.. testsetup:: + + import warnings + with warnings.catch_warnings(): + warnings.simplefilter('ignore', category=DeprecationWarning) + import nntplib + +.. testcleanup:: + + try: + s.quit() + except NameError: + pass + import sys + # Force a warning if any other file imports nntplib + sys.modules.pop('nntplib') + -------------- This module defines the class :class:`NNTP` which implements the client side of @@ -21,6 +38,8 @@ the Network News Transfer Protocol. It can be used to implement a news reader or poster, or automated news processors. It is compatible with :rfc:`3977` as well as the older :rfc:`977` and :rfc:`2980`. +.. include:: ../includes/wasm-notavail.rst + Here are two small examples of how it can be used. To list some statistics about a newsgroup and print the subjects of the last 10 articles:: diff --git a/Doc/library/numbers.rst b/Doc/library/numbers.rst index b12f82ed75a6f8..b3dce151aee289 100644 --- a/Doc/library/numbers.rst +++ b/Doc/library/numbers.rst @@ -58,11 +58,14 @@ The numeric tower .. class:: Rational - Subtypes :class:`Real` and adds - :attr:`~Rational.numerator` and :attr:`~Rational.denominator` properties, which - should be in lowest terms. With these, it provides a default for + Subtypes :class:`Real` and adds :attr:`~Rational.numerator` and + :attr:`~Rational.denominator` properties. It also provides a default for :func:`float`. + The :attr:`~Rational.numerator` and :attr:`~Rational.denominator` values + should be instances of :class:`Integral` and should be in lowest terms with + :attr:`~Rational.denominator` positive. + .. attribute:: numerator Abstract. diff --git a/Doc/library/optparse.rst b/Doc/library/optparse.rst index 0d686b10365a6d..47e62553fb0358 100644 --- a/Doc/library/optparse.rst +++ b/Doc/library/optparse.rst @@ -529,7 +529,7 @@ help message: line-wrapping---\ :mod:`optparse` takes care of wrapping lines and making the help output look good. -* options that take a value indicate this fact in their automatically-generated +* options that take a value indicate this fact in their automatically generated help message, e.g. for the "mode" option:: -m MODE, --mode=MODE @@ -539,7 +539,7 @@ help message: :mod:`optparse` converts the destination variable name to uppercase and uses that for the meta-variable. Sometimes, that's not what you want---for example, the ``--filename`` option explicitly sets ``metavar="FILE"``, - resulting in this automatically-generated option description:: + resulting in this automatically generated option description:: -f FILE, --filename=FILE @@ -1449,7 +1449,7 @@ intelligently and add conflicting options to it:: parser.add_option("-n", "--dry-run", ..., help="do no harm") parser.add_option("-n", "--noisy", ..., help="be noisy") -At this point, :mod:`optparse` detects that a previously-added option is already +At this point, :mod:`optparse` detects that a previously added option is already using the ``-n`` option string. Since ``conflict_handler`` is ``"resolve"``, it resolves the situation by removing ``-n`` from the earlier option's list of option strings. Now ``--dry-run`` is the only way for the user to activate @@ -1460,7 +1460,7 @@ that option. If the user asks for help, the help message will reflect that:: ... -n, --noisy be noisy -It's possible to whittle away the option strings for a previously-added option +It's possible to whittle away the option strings for a previously added option until there are none left, and the user has no way of invoking that option from the command-line. In that case, :mod:`optparse` removes that option completely, so it doesn't show up in help text or anywhere else. Carrying on with our diff --git a/Doc/library/os.path.rst b/Doc/library/os.path.rst index ce7913e3712d73..7c35f3cafd12e7 100644 --- a/Doc/library/os.path.rst +++ b/Doc/library/os.path.rst @@ -335,7 +335,7 @@ the :mod:`glob` module.) .. note:: On POSIX systems, in accordance with `IEEE Std 1003.1 2013 Edition; 4.13 - Pathname Resolution `_, + Pathname Resolution `_, if a pathname begins with exactly two slashes, the first component following the leading characters may be interpreted in an implementation-defined manner, although more than two leading characters shall be treated as a @@ -469,7 +469,7 @@ the :mod:`glob` module.) ("c:", "/dir") If the path contains a UNC path, drive will contain the host name - and share, up to but not including the fourth separator:: + and share:: >>> splitdrive("//host/computer/dir") ("//host/computer", "/dir") diff --git a/Doc/library/os.rst b/Doc/library/os.rst index dc0f2e4158ac0e..eb154633e71376 100644 --- a/Doc/library/os.rst +++ b/Doc/library/os.rst @@ -34,6 +34,14 @@ Notes on the availability of these functions: * On VxWorks, os.popen, os.fork, os.execv and os.spawn*p* are not supported. +* On WebAssembly platforms ``wasm32-emscripten`` and ``wasm32-wasi``, large + parts of the :mod:`os` module are not available or behave differently. API + related to processes (e.g. :func:`~os.fork`, :func:`~os.execve`), signals + (e.g. :func:`~os.kill`, :func:`~os.wait`), and resources + (e.g. :func:`~os.nice`) are not available. Others like :func:`~os.getuid` + and :func:`~os.getpid` are emulated or stubs. + + .. note:: All functions in this module raise :exc:`OSError` (or subclasses thereof) in @@ -165,7 +173,7 @@ process and user. Return the filename corresponding to the controlling terminal of the process. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. data:: environ @@ -301,7 +309,7 @@ process and user. and ``'surrogateescape'`` error handler. Use :func:`os.getenvb` if you would like to use a different encoding. - .. availability:: most flavors of Unix, Windows. + .. availability:: Unix, Windows. .. function:: getenvb(key, default=None) @@ -316,7 +324,7 @@ process and user. :func:`getenvb` is only available if :data:`supports_bytes_environ` is ``True``. - .. availability:: most flavors of Unix. + .. availability:: Unix. .. versionadded:: 3.2 @@ -337,7 +345,7 @@ process and user. Return the effective group id of the current process. This corresponds to the "set id" bit on the file being executed in the current process. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. function:: geteuid() @@ -346,7 +354,7 @@ process and user. Return the current process's effective user id. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. function:: getgid() @@ -357,6 +365,9 @@ process and user. .. availability:: Unix. + The function is a stub on Emscripten and WASI, see + :ref:`wasm-availability` for more information. + .. function:: getgrouplist(user, group) @@ -365,7 +376,7 @@ process and user. field from the password record for *user*, because that group ID will otherwise be potentially omitted. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. versionadded:: 3.3 @@ -374,7 +385,7 @@ process and user. Return list of supplemental group ids associated with the current process. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. note:: @@ -402,7 +413,7 @@ process and user. falls back to ``pwd.getpwuid(os.getuid())[0]`` to get the login name of the current real user id. - .. availability:: Unix, Windows. + .. availability:: Unix, Windows, not Emscripten, not WASI. .. function:: getpgid(pid) @@ -410,7 +421,7 @@ process and user. Return the process group id of the process with process id *pid*. If *pid* is 0, the process group id of the current process is returned. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. function:: getpgrp() @@ -418,7 +429,7 @@ process and user. Return the id of the current process group. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. function:: getpid() @@ -427,6 +438,8 @@ process and user. Return the current process id. + The function is a stub on Emscripten and WASI, see + :ref:`wasm-availability` for more information. .. function:: getppid() @@ -436,7 +449,7 @@ process and user. the id returned is the one of the init process (1), on Windows it is still the same id, which may be already reused by another process. - .. availability:: Unix, Windows. + .. availability:: Unix, Windows, not Emscripten, not WASI. .. versionchanged:: 3.2 Added support for Windows. @@ -454,7 +467,7 @@ process and user. (respectively) the calling process, the process group of the calling process, or the real user ID of the calling process. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. versionadded:: 3.3 @@ -465,7 +478,7 @@ process and user. Parameters for the :func:`getpriority` and :func:`setpriority` functions. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. versionadded:: 3.3 @@ -475,7 +488,7 @@ process and user. Return a tuple (ruid, euid, suid) denoting the current process's real, effective, and saved user ids. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. versionadded:: 3.2 @@ -485,7 +498,7 @@ process and user. Return a tuple (rgid, egid, sgid) denoting the current process's real, effective, and saved group ids. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. versionadded:: 3.2 @@ -498,6 +511,9 @@ process and user. .. availability:: Unix. + The function is a stub on Emscripten and WASI, see + :ref:`wasm-availability` for more information. + .. function:: initgroups(username, gid) @@ -505,7 +521,7 @@ process and user. the groups of which the specified username is a member, plus the specified group id. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. versionadded:: 3.2 @@ -539,21 +555,21 @@ process and user. Set the current process's effective group id. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. function:: seteuid(euid) Set the current process's effective user id. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. function:: setgid(gid) Set the current process' group id. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. function:: setgroups(groups) @@ -562,7 +578,7 @@ process and user. *groups*. *groups* must be a sequence, and each element must be an integer identifying a group. This operation is typically available only to the superuser. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. note:: On macOS, the length of *groups* may not exceed the system-defined maximum number of effective group ids, typically 16. @@ -574,7 +590,7 @@ process and user. Call the system call :c:func:`setpgrp` or ``setpgrp(0, 0)`` depending on which version is implemented (if any). See the Unix manual for the semantics. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. function:: setpgid(pid, pgrp) @@ -583,7 +599,7 @@ process and user. process with id *pid* to the process group with id *pgrp*. See the Unix manual for the semantics. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. function:: setpriority(which, who, priority) @@ -600,7 +616,7 @@ process and user. *priority* is a value in the range -20 to 19. The default priority is 0; lower priorities cause more favorable scheduling. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. versionadded:: 3.3 @@ -609,14 +625,14 @@ process and user. Set the current process's real and effective group ids. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. function:: setresgid(rgid, egid, sgid) Set the current process's real, effective, and saved group ids. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. versionadded:: 3.2 @@ -625,7 +641,7 @@ process and user. Set the current process's real, effective, and saved user ids. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. versionadded:: 3.2 @@ -634,21 +650,21 @@ process and user. Set the current process's real and effective user ids. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. function:: getsid(pid) Call the system call :c:func:`getsid`. See the Unix manual for the semantics. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. function:: setsid() Call the system call :c:func:`setsid`. See the Unix manual for the semantics. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. function:: setuid(uid) @@ -657,7 +673,7 @@ process and user. Set the current process's user id. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. placed in this section since it relates to errno.... a little weak @@ -680,6 +696,9 @@ process and user. Set the current numeric umask and return the previous umask. + The function is a stub on Emscripten and WASI, see + :ref:`wasm-availability` for more information. + .. function:: uname() @@ -706,7 +725,7 @@ process and user. :func:`socket.gethostname` or even ``socket.gethostbyaddr(socket.gethostname())``. - .. availability:: recent flavors of Unix. + .. availability:: Unix. .. versionchanged:: 3.3 Return type changed from a tuple to a tuple-like object @@ -798,19 +817,33 @@ as internal buffering of data. Copy *count* bytes from file descriptor *src*, starting from offset *offset_src*, to file descriptor *dst*, starting from offset *offset_dst*. If *offset_src* is None, then *src* is read from the current position; - respectively for *offset_dst*. The files pointed by *src* and *dst* + respectively for *offset_dst*. + + In Linux kernel older than 5.3, the files pointed by *src* and *dst* must reside in the same filesystem, otherwise an :exc:`OSError` is raised with :attr:`~OSError.errno` set to :data:`errno.EXDEV`. This copy is done without the additional cost of transferring data from the kernel to user space and then back into the kernel. Additionally, - some filesystems could implement extra optimizations. The copy is done as if - both files are opened as binary. + some filesystems could implement extra optimizations, such as the use of + reflinks (i.e., two or more inodes that share pointers to the same + copy-on-write disk blocks; supported file systems include btrfs and XFS) + and server-side copy (in the case of NFS). + + The function copies bytes between two file descriptors. Text options, like + the encoding and the line ending, are ignored. The return value is the amount of bytes copied. This could be less than the amount requested. - .. availability:: Linux kernel >= 4.5 or glibc >= 2.27. + .. note:: + + On Linux, :func:`os.copy_file_range` should not be used for copying a + range of a pseudo file from a special filesystem like procfs and sysfs. + It will always copy no bytes and return 0 as if the file was empty + because of a known Linux kernel issue. + + .. availability:: Linux >= 4.5 with glibc >= 2.27. .. versionadded:: 3.8 @@ -836,6 +869,8 @@ as internal buffering of data. 2: stderr), the new file descriptor is :ref:`inheritable `. + .. availability:: not WASI. + .. versionchanged:: 3.4 The new file descriptor is now non-inheritable. @@ -847,6 +882,8 @@ as internal buffering of data. ` by default or non-inheritable if *inheritable* is ``False``. + .. availability:: not WASI. + .. versionchanged:: 3.4 Add the optional *inheritable* parameter. @@ -864,6 +901,9 @@ as internal buffering of data. .. availability:: Unix. + The function is limited on Emscripten and WASI, see + :ref:`wasm-availability` for more information. + .. function:: fchown(fd, uid, gid) @@ -876,6 +916,9 @@ as internal buffering of data. .. availability:: Unix. + The function is limited on Emscripten and WASI, see + :ref:`wasm-availability` for more information. + .. function:: fdatasync(fd) @@ -964,6 +1007,9 @@ as internal buffering of data. .. availability:: Unix. + The function is limited on Emscripten and WASI, see + :ref:`wasm-availability` for more information. + .. versionadded:: 3.5 @@ -1006,7 +1052,7 @@ as internal buffering of data. Make the calling process a session leader; make the tty the controlling tty, the stdin, the stdout, and the stderr of the calling process; close fd. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. versionadded:: 3.11 @@ -1150,7 +1196,7 @@ or `the MSDN `_ on Windo descriptors are :ref:`non-inheritable `. For a (slightly) more portable approach, use the :mod:`pty` module. - .. availability:: some flavors of Unix. + .. availability:: Unix, not Emscripten, not WASI. .. versionchanged:: 3.4 The new file descriptors are now non-inheritable. @@ -1176,7 +1222,7 @@ or `the MSDN `_ on Windo Return a pair of file descriptors ``(r, w)`` usable for reading and writing, respectively. - .. availability:: some flavors of Unix. + .. availability:: Unix, not Emscripten, not WASI. .. versionadded:: 3.3 @@ -1186,7 +1232,7 @@ or `the MSDN `_ on Windo Ensures that enough disk space is allocated for the file specified by *fd* starting from *offset* and continuing for *len* bytes. - .. availability:: Unix. + .. availability:: Unix, not Emscripten. .. versionadded:: 3.3 @@ -1255,9 +1301,9 @@ or `the MSDN `_ on Windo Combine the functionality of :func:`os.readv` and :func:`os.pread`. - .. availability:: Linux 2.6.30 and newer, FreeBSD 6.0 and newer, - OpenBSD 2.7 and newer, AIX 7.1 and newer. Using flags requires - Linux 4.6 or newer. + .. availability:: Linux >= 2.6.30, FreeBSD >= 6.0, OpenBSD >= 2.7, AIX >= 7.1. + + Using flags requires Linux >= 4.6. .. versionadded:: 3.7 @@ -1272,7 +1318,7 @@ or `the MSDN `_ on Windo If no bytes were read, it will return ``-1`` and set errno to :data:`errno.EAGAIN`. - .. availability:: Linux 4.14 and newer. + .. availability:: Linux >= 4.14. .. versionadded:: 3.7 @@ -1286,7 +1332,7 @@ or `the MSDN `_ on Windo Currently, on Linux, this feature is usable only on a file descriptor opened using the :data:`O_DIRECT` flag. - .. availability:: Linux 4.6 and newer. + .. availability:: Linux >= 4.6. .. versionadded:: 3.7 @@ -1325,9 +1371,9 @@ or `the MSDN `_ on Windo Combine the functionality of :func:`os.writev` and :func:`os.pwrite`. - .. availability:: Linux 2.6.30 and newer, FreeBSD 6.0 and newer, - OpenBSD 2.7 and newer, AIX 7.1 and newer. Using flags requires - Linux 4.7 or newer. + .. availability:: Linux >= 2.6.30, FreeBSD >= 6.0, OpenBSD >= 2.7, AIX >= 7.1. + + Using flags requires Linux >= 4.6. .. versionadded:: 3.7 @@ -1337,7 +1383,7 @@ or `the MSDN `_ on Windo Provide a per-write equivalent of the :data:`O_DSYNC` :func:`os.open` flag. This flag effect applies only to the data range written by the system call. - .. availability:: Linux 4.7 and newer. + .. availability:: Linux >= 4.7. .. versionadded:: 3.7 @@ -1347,7 +1393,7 @@ or `the MSDN `_ on Windo Provide a per-write equivalent of the :data:`O_SYNC` :func:`os.open` flag. This flag effect applies only to the data range written by the system call. - .. availability:: Linux 4.7 and newer. + .. availability:: Linux >= 4.7. .. versionadded:: 3.7 @@ -1361,7 +1407,7 @@ or `the MSDN `_ on Windo appended to the end of the file. However, if the *offset* argument is ``-1``, the current file *offset* is updated. - .. availability:: Linux 4.16 and newer. + .. availability:: Linux >= 4.16. .. versionadded:: 3.10 @@ -1413,7 +1459,7 @@ or `the MSDN `_ on Windo Cross-platform applications should not use *headers*, *trailers* and *flags* arguments. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. note:: @@ -1435,6 +1481,9 @@ or `the MSDN `_ on Windo .. availability:: Unix. + The function is limited on Emscripten and WASI, see + :ref:`wasm-availability` for more information. + .. versionadded:: 3.5 @@ -1445,7 +1494,7 @@ or `the MSDN `_ on Windo Parameters to the :func:`sendfile` function, if the implementation supports them. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. versionadded:: 3.3 @@ -1454,7 +1503,7 @@ or `the MSDN `_ on Windo Parameter to the :func:`sendfile` function, if the implementation supports it. The data won't be cached in the virtual memory and will be freed afterwards. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. versionadded:: 3.11 @@ -1481,7 +1530,7 @@ or `the MSDN `_ on Windo make sense to block because there are no writers connected to the write end of the pipe. - .. availability:: Linux kernel >= 2.6.17 and glibc >= 2.5 + .. availability:: Linux >= 2.6.17 with glibc >= 2.5 .. versionadded:: 3.10 @@ -1515,7 +1564,7 @@ or `the MSDN `_ on Windo Return the process group associated with the terminal given by *fd* (an open file descriptor as returned by :func:`os.open`). - .. availability:: Unix. + .. availability:: Unix, not WASI. .. function:: tcsetpgrp(fd, pg) @@ -1523,7 +1572,7 @@ or `the MSDN `_ on Windo Set the process group associated with the terminal given by *fd* (an open file descriptor as returned by :func:`os.open`) to *pg*. - .. availability:: Unix. + .. availability:: Unix, not WASI. .. function:: ttyname(fd) @@ -1631,6 +1680,9 @@ Using the :mod:`subprocess` module, all file descriptors except standard streams are closed, and inheritable handles are only inherited if the *close_fds* parameter is ``False``. +On WebAssembly platforms ``wasm32-emscripten`` and ``wasm32-wasi``, the file +descriptor cannot be modified. + .. function:: get_inheritable(fd) Get the "inheritable" flag of the specified file descriptor (a boolean). @@ -1815,7 +1867,7 @@ features: .. audit-event:: os.chflags path,flags os.chflags - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. versionadded:: 3.3 The *follow_symlinks* argument. @@ -1860,6 +1912,9 @@ features: read-only flag with it (via the ``stat.S_IWRITE`` and ``stat.S_IREAD`` constants or a corresponding integer value). All other bits are ignored. + The function is limited on Emscripten and WASI, see + :ref:`wasm-availability` for more information. + .. audit-event:: os.chmod path,mode,dir_fd os.chmod .. versionadded:: 3.3 @@ -1886,6 +1941,9 @@ features: .. availability:: Unix. + The function is limited on Emscripten and WASI, see + :ref:`wasm-availability` for more information. + .. versionadded:: 3.3 Added support for specifying *path* as an open file descriptor, and the *dir_fd* and *follow_symlinks* arguments. @@ -1898,7 +1956,7 @@ features: Change the root directory of the current process to *path*. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. versionchanged:: 3.6 Accepts a :term:`path-like object`. @@ -1938,7 +1996,7 @@ features: .. audit-event:: os.chflags path,flags os.lchflags - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. versionchanged:: 3.6 Accepts a :term:`path-like object`. @@ -2107,7 +2165,7 @@ features: The *mode* parameter is passed to :func:`mkdir` for creating the leaf directory; see :ref:`the mkdir() description ` for how it - is interpreted. To set the file permission bits of any newly-created parent + is interpreted. To set the file permission bits of any newly created parent directories you can set the umask before invoking :func:`makedirs`. The file permission bits of existing parent directories are not changed. @@ -2138,7 +2196,7 @@ features: .. versionchanged:: 3.7 The *mode* argument no longer affects the file permission bits of - newly-created intermediate-level directories. + newly created intermediate-level directories. .. function:: mkfifo(path, mode=0o666, *, dir_fd=None) @@ -2155,7 +2213,7 @@ features: FIFO for reading, and the client opens it for writing. Note that :func:`mkfifo` doesn't open the FIFO --- it just creates the rendezvous point. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. versionadded:: 3.3 The *dir_fd* argument. @@ -2177,7 +2235,7 @@ features: This function can also support :ref:`paths relative to directory descriptors `. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. versionadded:: 3.3 The *dir_fd* argument. @@ -2328,7 +2386,7 @@ features: :exc:`IsADirectoryError` or a :exc:`NotADirectoryError` will be raised respectively. If both are directories and *dst* is empty, *dst* will be silently replaced. If *dst* is a non-empty directory, an :exc:`OSError` - is raised. If both are files, *dst* it will be replaced silently if the user + is raised. If both are files, *dst* will be replaced silently if the user has permission. The operation may fail on some Unix flavors if *src* and *dst* are on different filesystems. If successful, the renaming will be an atomic operation (this is a POSIX requirement). @@ -2460,9 +2518,9 @@ features: .. note:: On Unix-based systems, :func:`scandir` uses the system's - `opendir() `_ + `opendir() `_ and - `readdir() `_ + `readdir() `_ functions. On Windows, it uses the Win32 `FindFirstFileW `_ and @@ -3045,6 +3103,9 @@ features: .. availability:: Unix, Windows. + The function is limited on Emscripten and WASI, see + :ref:`wasm-availability` for more information. + .. versionchanged:: 3.2 Added support for Windows 6.0 (Vista) symbolic links. @@ -3320,7 +3381,7 @@ features: the file descriptor, and as such multiple files can have the same name without any side effects. - .. availability:: Linux 3.17 or newer with glibc 2.27 or newer. + .. availability:: Linux >= 3.17 with glibc >= 2.27. .. versionadded:: 3.8 @@ -3345,8 +3406,9 @@ features: These flags can be passed to :func:`memfd_create`. - .. availability:: Linux 3.17 or newer with glibc 2.27 or newer. The - ``MFD_HUGE*`` flags are only available since Linux 4.14. + .. availability:: Linux >= 3.17 with glibc >= 2.27 + + The ``MFD_HUGE*`` flags are only available since Linux 4.14. .. versionadded:: 3.8 @@ -3398,7 +3460,7 @@ features: finally: os.close(fd) - .. availability:: Linux 2.6.27 or newer with glibc 2.8 or newer. + .. availability:: Linux >= 2.6.27 with glibc >= 2.8 .. versionadded:: 3.10 @@ -3407,7 +3469,7 @@ features: Read value from an :func:`eventfd` file descriptor and return a 64 bit unsigned int. The function does not verify that *fd* is an :func:`eventfd`. - .. availability:: See :func:`eventfd` + .. availability:: Linux >= 2.6.27 .. versionadded:: 3.10 @@ -3416,7 +3478,7 @@ features: Add value to an :func:`eventfd` file descriptor. *value* must be a 64 bit unsigned int. The function does not verify that *fd* is an :func:`eventfd`. - .. availability:: See :func:`eventfd` + .. availability:: Linux >= 2.6.27 .. versionadded:: 3.10 @@ -3424,7 +3486,7 @@ features: Set close-on-exec flag for new :func:`eventfd` file descriptor. - .. availability:: See :func:`eventfd` + .. availability:: Linux >= 2.6.27 .. versionadded:: 3.10 @@ -3433,7 +3495,7 @@ features: Set :const:`O_NONBLOCK` status flag for new :func:`eventfd` file descriptor. - .. availability:: See :func:`eventfd` + .. availability:: Linux >= 2.6.27 .. versionadded:: 3.10 @@ -3442,7 +3504,7 @@ features: Provide semaphore-like semantics for reads from a :func:`eventfd` file descriptor. On read the internal counter is decremented by one. - .. availability:: Linux 2.6.30 or newer with glibc 2.8 or newer. + .. availability:: Linux >= 2.6.30 .. versionadded:: 3.10 @@ -3655,7 +3717,7 @@ to be ignored. .. audit-event:: os.exec path,args,env os.execl - .. availability:: Unix, Windows. + .. availability:: Unix, Windows, not Emscripten, not WASI. .. versionadded:: 3.3 Added support for specifying *path* as an open file descriptor @@ -3698,49 +3760,49 @@ written in Python, such as a mail server's external command delivery program. Exit code that means the command was used incorrectly, such as when the wrong number of arguments are given. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. data:: EX_DATAERR Exit code that means the input data was incorrect. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. data:: EX_NOINPUT Exit code that means an input file did not exist or was not readable. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. data:: EX_NOUSER Exit code that means a specified user did not exist. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. data:: EX_NOHOST Exit code that means a specified host did not exist. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. data:: EX_UNAVAILABLE Exit code that means that a required service is unavailable. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. data:: EX_SOFTWARE Exit code that means an internal software error was detected. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. data:: EX_OSERR @@ -3748,7 +3810,7 @@ written in Python, such as a mail server's external command delivery program. Exit code that means an operating system error was detected, such as the inability to fork or create a pipe. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. data:: EX_OSFILE @@ -3756,21 +3818,21 @@ written in Python, such as a mail server's external command delivery program. Exit code that means some system file did not exist, could not be opened, or had some other kind of error. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. data:: EX_CANTCREAT Exit code that means a user specified output file could not be created. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. data:: EX_IOERR Exit code that means that an error occurred while doing I/O on some file. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. data:: EX_TEMPFAIL @@ -3779,7 +3841,7 @@ written in Python, such as a mail server's external command delivery program. that may not really be an error, such as a network connection that couldn't be made during a retryable operation. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. data:: EX_PROTOCOL @@ -3787,7 +3849,7 @@ written in Python, such as a mail server's external command delivery program. Exit code that means that a protocol exchange was illegal, invalid, or not understood. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. data:: EX_NOPERM @@ -3795,21 +3857,21 @@ written in Python, such as a mail server's external command delivery program. Exit code that means that there were insufficient permissions to perform the operation (but not intended for file system problems). - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. data:: EX_CONFIG Exit code that means that some kind of configuration error occurred. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. data:: EX_NOTFOUND Exit code that means something like "an entry was not found". - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. function:: fork() @@ -3830,7 +3892,7 @@ written in Python, such as a mail server's external command delivery program. See :mod:`ssl` for applications that use the SSL module with fork(). - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. function:: forkpty() @@ -3847,7 +3909,7 @@ written in Python, such as a mail server's external command delivery program. Calling ``forkpty()`` in a subinterpreter is no longer supported (:exc:`RuntimeError` is raised). - .. availability:: some flavors of Unix. + .. availability:: Unix, not Emscripten, not WASI. .. function:: kill(pid, sig) @@ -3871,6 +3933,8 @@ written in Python, such as a mail server's external command delivery program. .. audit-event:: os.kill pid,sig os.kill + .. availability:: Unix, Windows, not Emscripten, not WASI. + .. versionadded:: 3.2 Windows support. @@ -3885,35 +3949,44 @@ written in Python, such as a mail server's external command delivery program. .. audit-event:: os.killpg pgid,sig os.killpg - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. function:: nice(increment) Add *increment* to the process's "niceness". Return the new niceness. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. function:: pidfd_open(pid, flags=0) - Return a file descriptor referring to the process *pid*. This descriptor can - be used to perform process management without races and signals. The *flags* - argument is provided for future extensions; no flag values are currently - defined. + Return a file descriptor referring to the process *pid* with *flags* set. + This descriptor can be used to perform process management without races + and signals. See the :manpage:`pidfd_open(2)` man page for more details. - .. availability:: Linux 5.3+ + .. availability:: Linux >= 5.3 .. versionadded:: 3.9 + .. data:: PIDFD_NONBLOCK + + This flag indicates that the file descriptor will be non-blocking. + If the process referred to by the file descriptor has not yet terminated, + then an attempt to wait on the file descriptor using :manpage:`waitid(2)` + will immediately return the error :data:`~errno.EAGAIN` rather than blocking. + + .. availability:: Linux >= 5.10 + .. versionadded:: 3.12 + .. function:: plock(op) Lock program segments into memory. The value of *op* (defined in ````) determines which segments are locked. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. function:: popen(cmd, mode='r', buffering=-1) @@ -3945,6 +4018,8 @@ written in Python, such as a mail server's external command delivery program. documentation for more powerful ways to manage and communicate with subprocesses. + .. availability:: not Emscripten, not WASI. + .. note:: The :ref:`Python UTF-8 Mode ` affects encodings used for *cmd* and pipe contents. @@ -4038,7 +4113,7 @@ written in Python, such as a mail server's external command delivery program. .. versionadded:: 3.8 - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. function:: posix_spawnp(path, argv, env, *, file_actions=None, \ setpgroup=None, resetids=False, setsid=False, setsigmask=(), \ @@ -4054,7 +4129,9 @@ written in Python, such as a mail server's external command delivery program. .. versionadded:: 3.8 - .. availability:: See :func:`posix_spawn` documentation. + .. availability:: POSIX, not Emscripten, not WASI. + + See :func:`posix_spawn` documentation. .. function:: register_at_fork(*, before=None, after_in_parent=None, \ @@ -4085,7 +4162,7 @@ written in Python, such as a mail server's external command delivery program. There is no way to unregister a function. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. versionadded:: 3.7 @@ -4154,7 +4231,9 @@ written in Python, such as a mail server's external command delivery program. .. audit-event:: os.spawn mode,path,args,env os.spawnl - .. availability:: Unix, Windows. :func:`spawnlp`, :func:`spawnlpe`, :func:`spawnvp` + .. availability:: Unix, Windows, not Emscripten, not WASI. + + :func:`spawnlp`, :func:`spawnlpe`, :func:`spawnvp` and :func:`spawnvpe` are not available on Windows. :func:`spawnle` and :func:`spawnve` are not thread-safe on Windows; we advise you to use the :mod:`subprocess` module instead. @@ -4201,13 +4280,13 @@ written in Python, such as a mail server's external command delivery program. Start a file with its associated application. - When *operation* is not specified or ``'open'``, this acts like double-clicking + When *operation* is not specified, this acts like double-clicking the file in Windows Explorer, or giving the file name as an argument to the :program:`start` command from the interactive command shell: the file is opened with whatever application (if any) its extension is associated. When another *operation* is given, it must be a "command verb" that specifies - what should be done with the file. Common verbs documented by Microsoft are + what should be done with the file. Common verbs documented by Microsoft are ``'open'``, ``'print'`` and ``'edit'`` (to be used on files) as well as ``'explore'`` and ``'find'`` (to be used on directories). @@ -4276,7 +4355,7 @@ written in Python, such as a mail server's external command delivery program. .. audit-event:: os.system command os.system - .. availability:: Unix, Windows. + .. availability:: Unix, Windows, not Emscripten, not WASI. .. function:: times() @@ -4295,7 +4374,7 @@ written in Python, such as a mail server's external command delivery program. :attr:`!children_system`, and :attr:`!elapsed` in that order. See the Unix manual page - :manpage:`times(2)` and :manpage:`times(3)` manual page on Unix or `the GetProcessTimes MSDN + :manpage:`times(2)` and `times(3) `_ manual page on Unix or `the GetProcessTimes MSDN `_ on Windows. On Windows, only :attr:`!user` and :attr:`!system` are known; the other attributes are zero. @@ -4317,7 +4396,7 @@ written in Python, such as a mail server's external command delivery program. :func:`waitstatus_to_exitcode` can be used to convert the exit status into an exit code. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. seealso:: @@ -4338,7 +4417,7 @@ written in Python, such as a mail server's external command delivery program. :attr:`si_code` or ``None`` if :data:`WNOHANG` is specified and there are no children in a waitable state. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. versionadded:: 3.3 @@ -4349,7 +4428,7 @@ written in Python, such as a mail server's external command delivery program. These are the possible values for *idtype* in :func:`waitid`. They affect how *id* is interpreted. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. versionadded:: 3.3 @@ -4358,7 +4437,7 @@ written in Python, such as a mail server's external command delivery program. This is a Linux-specific *idtype* that indicates that *id* is a file descriptor that refers to a process. - .. availability:: Linux 5.4+ + .. availability:: Linux >= 5.4 .. versionadded:: 3.9 @@ -4369,7 +4448,7 @@ written in Python, such as a mail server's external command delivery program. Flags that can be used in *options* in :func:`waitid` that specify what child signal to wait for. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. versionadded:: 3.3 @@ -4384,7 +4463,7 @@ written in Python, such as a mail server's external command delivery program. These are the possible values for :attr:`si_code` in the result returned by :func:`waitid`. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. versionadded:: 3.3 @@ -4422,6 +4501,8 @@ written in Python, such as a mail server's external command delivery program. :func:`waitstatus_to_exitcode` can be used to convert the exit status into an exit code. + .. availability:: Unix, not Emscripten, not WASI. + .. versionchanged:: 3.5 If the system call is interrupted and the signal handler does not raise an exception, the function now retries the system call instead of raising an @@ -4440,7 +4521,7 @@ written in Python, such as a mail server's external command delivery program. :func:`waitstatus_to_exitcode` can be used to convert the exit status into an exitcode. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. function:: wait4(pid, options) @@ -4454,7 +4535,7 @@ written in Python, such as a mail server's external command delivery program. :func:`waitstatus_to_exitcode` can be used to convert the exit status into an exitcode. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. function:: waitstatus_to_exitcode(status) @@ -4484,6 +4565,8 @@ written in Python, such as a mail server's external command delivery program. :func:`WIFEXITED`, :func:`WEXITSTATUS`, :func:`WIFSIGNALED`, :func:`WTERMSIG`, :func:`WIFSTOPPED`, :func:`WSTOPSIG` functions. + .. availability:: Unix, Windows, not Emscripten, not WASI. + .. versionadded:: 3.9 @@ -4492,7 +4575,7 @@ written in Python, such as a mail server's external command delivery program. The option for :func:`waitpid` to return immediately if no child process status is available immediately. The function returns ``(0, 0)`` in this case. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. data:: WCONTINUED @@ -4500,7 +4583,9 @@ written in Python, such as a mail server's external command delivery program. This option causes child processes to be reported if they have been continued from a job control stop since their status was last reported. - .. availability:: some Unix systems. + .. availability:: Unix, not Emscripten, not WASI. + + Some Unix systems. .. data:: WUNTRACED @@ -4508,7 +4593,7 @@ written in Python, such as a mail server's external command delivery program. This option causes child processes to be reported if they have been stopped but their current state has not been reported since they were stopped. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. The following functions take a process status code as returned by @@ -4522,7 +4607,7 @@ used to determine the disposition of a process. This function should be employed only if :func:`WIFSIGNALED` is true. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. function:: WIFCONTINUED(status) @@ -4533,7 +4618,7 @@ used to determine the disposition of a process. See :data:`WCONTINUED` option. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. function:: WIFSTOPPED(status) @@ -4545,14 +4630,14 @@ used to determine the disposition of a process. done using :data:`WUNTRACED` option or when the process is being traced (see :manpage:`ptrace(2)`). - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. function:: WIFSIGNALED(status) Return ``True`` if the process was terminated by a signal, otherwise return ``False``. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. function:: WIFEXITED(status) @@ -4561,7 +4646,7 @@ used to determine the disposition of a process. by calling ``exit()`` or ``_exit()``, or by returning from ``main()``; otherwise return ``False``. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. function:: WEXITSTATUS(status) @@ -4570,7 +4655,7 @@ used to determine the disposition of a process. This function should be employed only if :func:`WIFEXITED` is true. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. function:: WSTOPSIG(status) @@ -4579,7 +4664,7 @@ used to determine the disposition of a process. This function should be employed only if :func:`WIFSTOPPED` is true. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. .. function:: WTERMSIG(status) @@ -4588,7 +4673,7 @@ used to determine the disposition of a process. This function should be employed only if :func:`WIFSIGNALED` is true. - .. availability:: Unix. + .. availability:: Unix, not Emscripten, not WASI. Interface to the scheduler @@ -4904,9 +4989,9 @@ Random numbers :py:data:`GRND_NONBLOCK`. See also the `Linux getrandom() manual page - `_. + `_. - .. availability:: Linux 3.17 and newer. + .. availability:: Linux >= 3.17. .. versionadded:: 3.6 diff --git a/Doc/library/pathlib.rst b/Doc/library/pathlib.rst index e16097d00f60f3..1375ce1aef953a 100644 --- a/Doc/library/pathlib.rst +++ b/Doc/library/pathlib.rst @@ -133,11 +133,13 @@ we also call *flavours*: PureWindowsPath('c:/Program Files') Spurious slashes and single dots are collapsed, but double dots (``'..'``) - are not, since this would change the meaning of a path in the face of - symbolic links:: + and leading double slashes (``'//'``) are not, since this would change the + meaning of a path for various reasons (e.g. symbolic links, UNC paths):: >>> PurePath('foo//bar') PurePosixPath('foo/bar') + >>> PurePath('//foo/bar') + PurePosixPath('//foo/bar') >>> PurePath('foo/./bar') PurePosixPath('foo/bar') >>> PurePath('foo/../bar') @@ -166,13 +168,17 @@ we also call *flavours*: .. class:: PureWindowsPath(*pathsegments) A subclass of :class:`PurePath`, this path flavour represents Windows - filesystem paths:: + filesystem paths, including `UNC paths`_:: >>> PureWindowsPath('c:/Program Files/') PureWindowsPath('c:/Program Files') + >>> PureWindowsPath('//server/share/file') + PureWindowsPath('//server/share/file') *pathsegments* is specified similarly to :class:`PurePath`. + .. _unc paths: https://en.wikipedia.org/wiki/Path_(computing)#UNC + Regardless of the system you're running on, you can instantiate all of these classes, since they don't provide any operation that does system calls. @@ -309,6 +315,26 @@ Pure paths provide the following methods and properties: >>> PureWindowsPath('//host/share').root '\\' + If the path starts with more than two successive slashes, + :class:`~pathlib.PurePosixPath` collapses them:: + + >>> PurePosixPath('//etc').root + '//' + >>> PurePosixPath('///etc').root + '/' + >>> PurePosixPath('////etc').root + '/' + + .. note:: + + This behavior conforms to *The Open Group Base Specifications Issue 6*, + paragraph `4.11 Pathname Resolution + `_: + + *"A pathname that begins with two successive slashes may be interpreted in + an implementation-defined manner, although more than two leading slashes + shall be treated as a single slash."* + .. data:: PurePath.anchor The concatenation of the drive and root:: @@ -850,10 +876,15 @@ call fails (for example because the path doesn't exist). function checks whether *path*'s parent, :file:`path/..`, is on a different device than *path*, or whether :file:`path/..` and *path* point to the same i-node on the same device --- this should detect mount points for all Unix - and POSIX variants. Not implemented on Windows. + and POSIX variants. On Windows, a mount point is considered to be a drive + letter root (e.g. ``c:\``), a UNC share (e.g. ``\\server\share``), or a + mounted filesystem directory. .. versionadded:: 3.7 + .. versionchanged:: 3.12 + Windows support was added. + .. method:: Path.is_symlink() @@ -920,6 +951,101 @@ call fails (for example because the path doesn't exist). to the directory after creating the iterator, whether a path object for that file be included is unspecified. +.. method:: Path.walk(top_down=True, on_error=None, follow_symlinks=False) + + Generate the file names in a directory tree by walking the tree + either top-down or bottom-up. + + For each directory in the directory tree rooted at *self* (including + *self* but excluding '.' and '..'), the method yields a 3-tuple of + ``(dirpath, dirnames, filenames)``. + + *dirpath* is a :class:`Path` to the directory currently being walked, + *dirnames* is a list of strings for the names of subdirectories in *dirpath* + (excluding ``'.'`` and ``'..'``), and *filenames* is a list of strings for + the names of the non-directory files in *dirpath*. To get a full path + (which begins with *self*) to a file or directory in *dirpath*, do + ``dirpath / name``. Whether or not the lists are sorted is file + system-dependent. + + If the optional argument *top_down* is true (which is the default), the triple for a + directory is generated before the triples for any of its subdirectories + (directories are walked top-down). If *top_down* is false, the triple + for a directory is generated after the triples for all of its subdirectories + (directories are walked bottom-up). No matter the value of *top_down*, the + list of subdirectories is retrieved before the triples for the directory and + its subdirectories are walked. + + When *top_down* is true, the caller can modify the *dirnames* list in-place + (for example, using :keyword:`del` or slice assignment), and :meth:`Path.walk` + will only recurse into the subdirectories whose names remain in *dirnames*. + This can be used to prune the search, or to impose a specific order of visiting, + or even to inform :meth:`Path.walk` about directories the caller creates or + renames before it resumes :meth:`Path.walk` again. Modifying *dirnames* when + *top_down* is false has no effect on the behavior of :meth:`Path.walk()` since the + directories in *dirnames* have already been generated by the time *dirnames* + is yielded to the caller. + + By default, errors from :func:`os.scandir` are ignored. If the optional + argument *on_error* is specified, it should be a callable; it will be + called with one argument, an :exc:`OSError` instance. The callable can handle the + error to continue the walk or re-raise it to stop the walk. Note that the + filename is available as the ``filename`` attribute of the exception object. + + By default, :meth:`Path.walk` does not follow symbolic links, and instead adds them + to the *filenames* list. Set *follow_symlinks* to true to resolve symlinks + and place them in *dirnames* and *filenames* as appropriate for their targets, and + consequently visit directories pointed to by symlinks (where supported). + + .. note:: + + Be aware that setting *follow_symlinks* to true can lead to infinite + recursion if a link points to a parent directory of itself. :meth:`Path.walk` + does not keep track of the directories it has already visited. + + .. note:: + :meth:`Path.walk` assumes the directories it walks are not modified during + execution. For example, if a directory from *dirnames* has been replaced + with a symlink and *follow_symlinks* is false, :meth:`Path.walk` will + still try to descend into it. To prevent such behavior, remove directories + from *dirnames* as appropriate. + + .. note:: + + Unlike :func:`os.walk`, :meth:`Path.walk` lists symlinks to directories in + *filenames* if *follow_symlinks* is false. + + This example displays the number of bytes used by all files in each directory, + while ignoring ``__pycache__`` directories:: + + from pathlib import Path + for root, dirs, files in Path("cpython/Lib/concurrent").walk(on_error=print): + print( + root, + "consumes", + sum((root / file).stat().st_size for file in files), + "bytes in", + len(files), + "non-directory files" + ) + if '__pycache__' in dirs: + dirs.remove('__pycache__') + + This next example is a simple implementation of :func:`shutil.rmtree`. + Walking the tree bottom-up is essential as :func:`rmdir` doesn't allow + deleting a directory before it is empty:: + + # Delete everything reachable from the directory "top". + # CAUTION: This is dangerous! For example, if top == Path('/'), + # it could delete all of your files. + for root, dirs, files in top.walk(top_down=False): + for name in files: + (root / name).unlink() + for name in dirs: + (root / name).rmdir() + + .. versionadded:: 3.12 + .. method:: Path.lchmod(mode) Like :meth:`Path.chmod` but, if the path points to a symbolic link, the @@ -1096,8 +1222,8 @@ call fails (for example because the path doesn't exist). .. method:: Path.rglob(pattern) - This is like calling :func:`Path.glob` with "``**/``" added in front of the - given relative *pattern*:: + Glob the given relative *pattern* recursively. This is like calling + :func:`Path.glob` with "``**/``" added in front of the *pattern*:: >>> sorted(Path().rglob("*.py")) [PosixPath('build/lib/pathlib.py'), @@ -1259,13 +1385,14 @@ Below is a table mapping various :mod:`os` functions to their corresponding :func:`os.path.expanduser` :meth:`Path.expanduser` and :meth:`Path.home` :func:`os.listdir` :meth:`Path.iterdir` +:func:`os.walk` :meth:`Path.walk` :func:`os.path.isdir` :meth:`Path.is_dir` :func:`os.path.isfile` :meth:`Path.is_file` :func:`os.path.islink` :meth:`Path.is_symlink` :func:`os.link` :meth:`Path.hardlink_to` :func:`os.symlink` :meth:`Path.symlink_to` :func:`os.readlink` :meth:`Path.readlink` -:func:`os.path.relpath` :meth:`Path.relative_to` [#]_ +:func:`os.path.relpath` :meth:`PurePath.relative_to` [#]_ :func:`os.stat` :meth:`Path.stat`, :meth:`Path.owner`, :meth:`Path.group` @@ -1274,10 +1401,11 @@ Below is a table mapping various :mod:`os` functions to their corresponding :func:`os.path.basename` :data:`PurePath.name` :func:`os.path.dirname` :data:`PurePath.parent` :func:`os.path.samefile` :meth:`Path.samefile` -:func:`os.path.splitext` :data:`PurePath.suffix` +:func:`os.path.splitext` :data:`PurePath.stem` and + :data:`PurePath.suffix` ==================================== ============================== .. rubric:: Footnotes .. [#] :func:`os.path.abspath` normalizes the resulting path, which may change its meaning in the presence of symlinks, while :meth:`Path.absolute` does not. -.. [#] :meth:`Path.relative_to` requires ``self`` to be the subpath of the argument, but :func:`os.path.relpath` does not. +.. [#] :meth:`PurePath.relative_to` requires ``self`` to be the subpath of the argument, but :func:`os.path.relpath` does not. diff --git a/Doc/library/pipes.rst b/Doc/library/pipes.rst index 245dd0d2520881..471ae0dbc9768a 100644 --- a/Doc/library/pipes.rst +++ b/Doc/library/pipes.rst @@ -23,7 +23,7 @@ The :mod:`pipes` module defines a class to abstract the concept of a *pipeline* Because the module uses :program:`/bin/sh` command lines, a POSIX or compatible shell for :func:`os.system` and :func:`os.popen` is required. -.. availability:: Unix. Not available on VxWorks. +.. availability:: Unix, not VxWorks. The :mod:`pipes` module defines the following class: diff --git a/Doc/library/platform.rst b/Doc/library/platform.rst index 346063d66afab9..dc2d871b47d5ef 100644 --- a/Doc/library/platform.rst +++ b/Doc/library/platform.rst @@ -53,7 +53,7 @@ Cross Platform .. function:: machine() - Returns the machine type, e.g. ``'i386'``. An empty string is returned if the + Returns the machine type, e.g. ``'AMD64'``. An empty string is returned if the value cannot be determined. diff --git a/Doc/library/poplib.rst b/Doc/library/poplib.rst index 2f993f990de015..e22a2e1455e7fc 100644 --- a/Doc/library/poplib.rst +++ b/Doc/library/poplib.rst @@ -28,6 +28,8 @@ quality of POP3 servers varies widely, and too many are quite poor. If your mailserver supports IMAP, you would be better off using the :class:`imaplib.IMAP4` class, as IMAP servers tend to be better implemented. +.. include:: ../includes/wasm-notavail.rst + The :mod:`poplib` module provides two classes: diff --git a/Doc/library/posix.rst b/Doc/library/posix.rst index ad417a17879c1f..90be191aa2f8d7 100644 --- a/Doc/library/posix.rst +++ b/Doc/library/posix.rst @@ -37,7 +37,7 @@ Large File Support .. sectionauthor:: Steve Clift -Several operating systems (including AIX, HP-UX and Solaris) provide +Several operating systems (including AIX and Solaris) provide support for files that are larger than 2 GiB from a C programming model where :c:type:`int` and :c:type:`long` are 32-bit values. This is typically accomplished by defining the relevant size and offset types as 64-bit values. Such files are diff --git a/Doc/library/pwd.rst b/Doc/library/pwd.rst index 03ebb02e4e5136..98f3c45e29cbcb 100644 --- a/Doc/library/pwd.rst +++ b/Doc/library/pwd.rst @@ -10,6 +10,8 @@ This module provides access to the Unix user account and password database. It is available on all Unix versions. +.. include:: ../includes/wasm-notavail.rst + Password database entries are reported as a tuple-like object, whose attributes correspond to the members of the ``passwd`` structure (Attribute field below, see ````): diff --git a/Doc/library/py_compile.rst b/Doc/library/py_compile.rst index 4fba4cba4d3568..69b93a3bdfcb26 100644 --- a/Doc/library/py_compile.rst +++ b/Doc/library/py_compile.rst @@ -35,8 +35,9 @@ byte-code cache files in the directory containing the source code. in ``.pyc``. For example, if *file* is ``/foo/bar/baz.py`` *cfile* will default to ``/foo/bar/__pycache__/baz.cpython-32.pyc`` for Python 3.2. If *dfile* is - specified, it is used as the name of the source file in error messages - instead of *file*. If *doraise* is true, a :exc:`PyCompileError` is raised + specified, it is used instead of *file* as the name of the source file from + which source lines are obtained for display in exception tracebacks. + If *doraise* is true, a :exc:`PyCompileError` is raised when an error is encountered while compiling *file*. If *doraise* is false (the default), an error string is written to ``sys.stderr``, but no exception is raised. This function returns the path to byte-compiled file, i.e. diff --git a/Doc/library/queue.rst b/Doc/library/queue.rst index 540dde9e154e80..c67f15e953bccc 100644 --- a/Doc/library/queue.rst +++ b/Doc/library/queue.rst @@ -190,7 +190,8 @@ fully processed by daemon consumer threads. Example of how to wait for enqueued tasks to be completed:: - import threading, queue + import threading + import queue q = queue.Queue() diff --git a/Doc/library/random.rst b/Doc/library/random.rst index 613fbce0fdf20d..ad4a1ce7c31275 100644 --- a/Doc/library/random.rst +++ b/Doc/library/random.rst @@ -258,6 +258,28 @@ Functions for sequences The *population* must be a sequence. Automatic conversion of sets to lists is no longer supported. +Discrete distributions +---------------------- + +The following function generates a discrete distribution. + +.. function:: binomialvariate(n=1, p=0.5) + + `Binomial distribution + `_. + Return the number of successes for *n* independent trials with the + probability of success in each trial being *p*: + + Mathematically equivalent to:: + + sum(random() < p for i in range(n)) + + The number of trials *n* should be a non-negative integer. + The probability of success *p* should be between ``0.0 <= p <= 1.0``. + The result is an integer in the range ``0 <= X <= n``. + + .. versionadded:: 3.12 + .. _real-valued-distributions: @@ -452,16 +474,13 @@ Simulations:: >>> # Deal 20 cards without replacement from a deck >>> # of 52 playing cards, and determine the proportion of cards >>> # with a ten-value: ten, jack, queen, or king. - >>> dealt = sample(['tens', 'low cards'], counts=[16, 36], k=20) - >>> dealt.count('tens') / 20 + >>> deal = sample(['tens', 'low cards'], counts=[16, 36], k=20) + >>> deal.count('tens') / 20 0.15 >>> # Estimate the probability of getting 5 or more heads from 7 spins >>> # of a biased coin that settles on heads 60% of the time. - >>> def trial(): - ... return choices('HT', cum_weights=(0.60, 1.00), k=7).count('H') >= 5 - ... - >>> sum(trial() for i in range(10_000)) / 10_000 + >>> sum(binomialvariate(n=7, p=0.6) >= 5 for i in range(10_000)) / 10_000 0.4169 >>> # Probability of the median of 5 samples being in middle two quartiles @@ -475,7 +494,7 @@ Example of `statistical bootstrapping `_ using resampling with replacement to estimate a confidence interval for the mean of a sample:: - # http://statistics.about.com/od/Applications/a/Example-Of-Bootstrapping.htm + # https://www.thoughtco.com/example-of-bootstrapping-3126155 from statistics import fmean as mean from random import choices diff --git a/Doc/library/re.rst b/Doc/library/re.rst index d099f383d12060..1b9a7b63ef5e1b 100644 --- a/Doc/library/re.rst +++ b/Doc/library/re.rst @@ -1327,6 +1327,14 @@ Match objects support the following methods and attributes: >>> m[2] # The second parenthesized subgroup. 'Newton' + Named groups are supported as well:: + + >>> m = re.match(r"(?P\w+) (?P\w+)", "Isaac Newton") + >>> m['first_name'] + 'Isaac' + >>> m['last_name'] + 'Newton' + .. versionadded:: 3.6 diff --git a/Doc/library/reprlib.rst b/Doc/library/reprlib.rst index 4b37c5ba60f4e6..5ebb0a7780c37b 100644 --- a/Doc/library/reprlib.rst +++ b/Doc/library/reprlib.rst @@ -17,12 +17,31 @@ debugger and may be useful in other contexts as well. This module provides a class, an instance, and a function: -.. class:: Repr() +.. class:: Repr(*, maxlevel=6, maxtuple=6, maxlist=6, maxarray=5, maxdict=4, \ + maxset=6, maxfrozenset=6, maxdeque=6, maxstring=30, maxlong=40, \ + maxother=30, fillvalue="...", indent=None) Class which provides formatting services useful in implementing functions similar to the built-in :func:`repr`; size limits for different object types are added to avoid the generation of representations which are excessively long. + The keyword arguments of the constructor can be used as a shortcut to set the + attributes of the :class:`Repr` instance. Which means that the following + initialization:: + + aRepr = reprlib.Repr(maxlevel=3) + + Is equivalent to:: + + aRepr = reprlib.Repr() + aRepr.maxlevel = 3 + + See section `Repr Objects`_ for more information about :class:`Repr` + attributes. + + .. versionchanged:: 3.12 + Allow attributes to be set via keyword arguments. + .. data:: aRepr @@ -123,6 +142,66 @@ which format specific object types. similar manner as :attr:`maxstring`. The default is ``20``. +.. attribute:: Repr.indent + + If this attribute is set to ``None`` (the default), the output is formatted + with no line breaks or indentation, like the standard :func:`repr`. + For example: + + .. code-block:: pycon + + >>> example = [ + 1, 'spam', {'a': 2, 'b': 'spam eggs', 'c': {3: 4.5, 6: []}}, 'ham'] + >>> import reprlib + >>> aRepr = reprlib.Repr() + >>> print(aRepr.repr(example)) + [1, 'spam', {'a': 2, 'b': 'spam eggs', 'c': {3: 4.5, 6: []}}, 'ham'] + + If :attr:`~Repr.indent` is set to a string, each recursion level + is placed on its own line, indented by that string: + + .. code-block:: pycon + + >>> aRepr.indent = '-->' + >>> print(aRepr.repr(example)) + [ + -->1, + -->'spam', + -->{ + -->-->'a': 2, + -->-->'b': 'spam eggs', + -->-->'c': { + -->-->-->3: 4.5, + -->-->-->6: [], + -->-->}, + -->}, + -->'ham', + ] + + Setting :attr:`~Repr.indent` to a positive integer value behaves as if it + was set to a string with that number of spaces: + + .. code-block:: pycon + + >>> aRepr.indent = 4 + >>> print(aRepr.repr(example)) + [ + 1, + 'spam', + { + 'a': 2, + 'b': 'spam eggs', + 'c': { + 3: 4.5, + 6: [], + }, + }, + 'ham', + ] + + .. versionadded:: 3.12 + + .. method:: Repr.repr(obj) The equivalent to the built-in :func:`repr` that uses the formatting imposed by diff --git a/Doc/library/resource.rst b/Doc/library/resource.rst index 67e9b44fe48c46..e7bf45d7d569fa 100644 --- a/Doc/library/resource.rst +++ b/Doc/library/resource.rst @@ -13,6 +13,8 @@ This module provides basic mechanisms for measuring and controlling system resources utilized by a program. +.. include:: ../includes/wasm-notavail.rst + Symbolic constants are used to specify particular system resources and to request usage information about either the current process or its children. @@ -99,7 +101,7 @@ this module for those platforms. .. audit-event:: resource.prlimit pid,resource,limits resource.prlimit - .. availability:: Linux 2.6.36 or later with glibc 2.13 or later. + .. availability:: Linux >= 2.6.36 with glibc >= 2.13. .. versionadded:: 3.4 @@ -185,7 +187,7 @@ platform. The number of bytes that can be allocated for POSIX message queues. - .. availability:: Linux 2.6.8 or later. + .. availability:: Linux >= 2.6.8. .. versionadded:: 3.4 @@ -194,7 +196,7 @@ platform. The ceiling for the process's nice level (calculated as 20 - rlim_cur). - .. availability:: Linux 2.6.12 or later. + .. availability:: Linux >= 2.6.12. .. versionadded:: 3.4 @@ -203,7 +205,7 @@ platform. The ceiling of the real-time priority. - .. availability:: Linux 2.6.12 or later. + .. availability:: Linux >= 2.6.12. .. versionadded:: 3.4 @@ -213,7 +215,7 @@ platform. The time limit (in microseconds) on CPU time that a process can spend under real-time scheduling without making a blocking syscall. - .. availability:: Linux 2.6.25 or later. + .. availability:: Linux >= 2.6.25. .. versionadded:: 3.4 @@ -222,7 +224,7 @@ platform. The number of signals which the process may queue. - .. availability:: Linux 2.6.8 or later. + .. availability:: Linux >= 2.6.8. .. versionadded:: 3.4 @@ -232,7 +234,7 @@ platform. This limits the amount of network memory, and hence the amount of mbufs, that this user may hold at any time. - .. availability:: FreeBSD 9 or later. + .. availability:: FreeBSD. .. versionadded:: 3.4 @@ -245,7 +247,7 @@ platform. `tuning(7) `__ for a complete description of this sysctl. - .. availability:: FreeBSD 9 or later. + .. availability:: FreeBSD. .. versionadded:: 3.4 @@ -253,7 +255,7 @@ platform. The maximum number of pseudo-terminals created by this user id. - .. availability:: FreeBSD 9 or later. + .. availability:: FreeBSD. .. versionadded:: 3.4 @@ -261,7 +263,7 @@ platform. The maximum number of kqueues this user id is allowed to create. - .. availability:: FreeBSD 11 or later. + .. availability:: FreeBSD >= 11. .. versionadded:: 3.10 diff --git a/Doc/library/secrets.rst b/Doc/library/secrets.rst index c22da727b55c9b..dc8e5f46fb581e 100644 --- a/Doc/library/secrets.rst +++ b/Doc/library/secrets.rst @@ -44,7 +44,7 @@ randomness that your operating system provides. .. function:: choice(sequence) - Return a randomly-chosen element from a non-empty sequence. + Return a randomly chosen element from a non-empty sequence. .. function:: randbelow(n) @@ -129,7 +129,7 @@ Other functions .. function:: compare_digest(a, b) Return ``True`` if strings *a* and *b* are equal, otherwise ``False``, - in such a way as to reduce the risk of + using a "constant-time compare" to reduce the risk of `timing attacks `_. See :func:`hmac.compare_digest` for additional details. @@ -153,9 +153,9 @@ Generate an eight-character alphanumeric password: .. note:: Applications should not - `store passwords in a recoverable format `_, + `store passwords in a recoverable format `_, whether plain text or encrypted. They should be salted and hashed - using a cryptographically-strong one-way (irreversible) hash function. + using a cryptographically strong one-way (irreversible) hash function. Generate a ten-character alphanumeric password with at least one diff --git a/Doc/library/security_warnings.rst b/Doc/library/security_warnings.rst index f985dc4acd11c1..284f3658320623 100644 --- a/Doc/library/security_warnings.rst +++ b/Doc/library/security_warnings.rst @@ -14,7 +14,7 @@ The following modules have specific security considerations: argument disabling known insecure and blocked algorithms ` * :mod:`http.server` is not suitable for production use, only implementing - basic security checks + basic security checks. See the :ref:`security considerations `. * :mod:`logging`: :ref:`Logging configuration uses eval() ` * :mod:`multiprocessing`: :ref:`Connection.recv() uses pickle diff --git a/Doc/library/select.rst b/Doc/library/select.rst index 46b5ff8b6d5863..a8df81f5bd1f07 100644 --- a/Doc/library/select.rst +++ b/Doc/library/select.rst @@ -22,6 +22,7 @@ it was last read. encouraged to use the :mod:`selectors` module instead, unless they want precise control over the OS-level primitives used. +.. include:: ../includes/wasm-notavail.rst The module defines the following: @@ -252,7 +253,7 @@ object. .. method:: devpoll.poll([timeout]) - Polls the set of registered file descriptors, and returns a possibly-empty list + Polls the set of registered file descriptors, and returns a possibly empty list containing ``(fd, event)`` 2-tuples for the descriptors that have events or errors to report. *fd* is the file descriptor, and *event* is a bitmask with bits set for the reported events for that descriptor --- :const:`POLLIN` for @@ -440,7 +441,7 @@ linearly scanned again. :c:func:`select` is O(highest file descriptor), while .. method:: poll.poll([timeout]) - Polls the set of registered file descriptors, and returns a possibly-empty list + Polls the set of registered file descriptors, and returns a possibly empty list containing ``(fd, event)`` 2-tuples for the descriptors that have events or errors to report. *fd* is the file descriptor, and *event* is a bitmask with bits set for the reported events for that descriptor --- :const:`POLLIN` for diff --git a/Doc/library/selectors.rst b/Doc/library/selectors.rst index 6d864a836de075..0deb15cf4c5037 100644 --- a/Doc/library/selectors.rst +++ b/Doc/library/selectors.rst @@ -38,6 +38,7 @@ users. :mod:`select` Low-level I/O multiplexing module. +.. include:: ../includes/wasm-notavail.rst Classes ------- diff --git a/Doc/library/shlex.rst b/Doc/library/shlex.rst index aab6a543792096..0bad51833aae13 100644 --- a/Doc/library/shlex.rst +++ b/Doc/library/shlex.rst @@ -36,9 +36,9 @@ The :mod:`shlex` module defines the following functions: instance, passing ``None`` for *s* will read the string to split from standard input. - .. deprecated:: 3.9 - Passing ``None`` for *s* will raise an exception in future Python - versions. + .. versionchanged:: 3.12 + Passing ``None`` for *s* argument now raises an exception, rather than + reading :data:`sys.stdin`. .. function:: join(split_command) diff --git a/Doc/library/shutil.rst b/Doc/library/shutil.rst index 9a25b0d008bf5f..8f1668f76b9027 100644 --- a/Doc/library/shutil.rst +++ b/Doc/library/shutil.rst @@ -194,7 +194,7 @@ Directory and files operations When *follow_symlinks* is false, and *src* is a symbolic link, :func:`copy2` attempts to copy all metadata from the - *src* symbolic link to the newly-created *dst* symbolic link. + *src* symbolic link to the newly created *dst* symbolic link. However, this functionality is not available on all platforms. On platforms where some or all of this functionality is unavailable, :func:`copy2` will preserve all the metadata @@ -574,12 +574,18 @@ provided. They rely on the :mod:`zipfile` and :mod:`tarfile` modules. .. note:: - This function is not thread-safe. + This function is not thread-safe when custom archivers registered + with :func:`register_archive_format` are used. In this case it + temporarily changes the current working directory of the process + to perform archiving. .. versionchanged:: 3.8 The modern pax (POSIX.1-2001) format is now used instead of the legacy GNU format for archives created with ``format="tar"``. + .. versionchanged:: 3.10.6 + This function is now made thread-safe during creation of standard + ``.zip`` and tar archives. .. function:: get_archive_formats() @@ -795,4 +801,4 @@ Querying the size of the output terminal http://www.manpagez.com/man/3/copyfile/ .. _`Other Environment Variables`: - http://pubs.opengroup.org/onlinepubs/7908799/xbd/envvar.html#tag_002_003 + https://pubs.opengroup.org/onlinepubs/7908799/xbd/envvar.html#tag_002_003 diff --git a/Doc/library/signal.rst b/Doc/library/signal.rst index 678411d4f17056..2269f50cbaff99 100644 --- a/Doc/library/signal.rst +++ b/Doc/library/signal.rst @@ -24,6 +24,9 @@ explicitly reset (Python emulates the BSD style interface regardless of the underlying implementation), with the exception of the handler for :const:`SIGCHLD`, which follows the underlying implementation. +On WebAssembly platforms ``wasm32-emscripten`` and ``wasm32-wasi``, signals +are emulated and therefore behave differently. Several functions and signals +are not available on these platforms. Execution of Python signal handlers ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -95,8 +98,10 @@ The signal module defines three enums: :class:`enum.IntEnum` collection the constants :const:`SIG_BLOCK`, :const:`SIG_UNBLOCK` and :const:`SIG_SETMASK`. - Availability: Unix. See the man page :manpage:`sigprocmask(3)` and - :manpage:`pthread_sigmask(3)` for further information. + .. availability:: Unix. + + See the man page :manpage:`sigprocmask(2)` and + :manpage:`pthread_sigmask(3)` for further information. .. versionadded:: 3.5 @@ -205,7 +210,9 @@ The variables defined in the :mod:`signal` module are: Stack fault on coprocessor. The Linux kernel does not raise this signal: it can only be raised in user space. - .. availability:: Linux, on architectures where the signal is available. See + .. availability:: Linux. + + On architectures where the signal is available. See the man page :manpage:`signal(7)` for further information. .. versionadded:: 3.11 @@ -337,8 +344,9 @@ The :mod:`signal` module defines the following functions: delivered. If *time* is zero, no alarm is scheduled, and any scheduled alarm is canceled. If the return value is zero, no alarm is currently scheduled. - .. availability:: Unix. See the man page :manpage:`alarm(2)` for further - information. + .. availability:: Unix. + + See the man page :manpage:`alarm(2)` for further information. .. function:: getsignal(signalnum) @@ -375,8 +383,9 @@ The :mod:`signal` module defines the following functions: Cause the process to sleep until a signal is received; the appropriate handler will then be called. Returns nothing. - .. availability:: Unix. See the man page :manpage:`signal(2)` for further - information. + .. availability:: Unix. + + See the man page :manpage:`signal(2)` for further information. See also :func:`sigwait`, :func:`sigwaitinfo`, :func:`sigtimedwait` and :func:`sigpending`. @@ -398,7 +407,7 @@ The :mod:`signal` module defines the following functions: See the :manpage:`pidfd_send_signal(2)` man page for more information. - .. availability:: Linux 5.1+ + .. availability:: Linux >= 5.1 .. versionadded:: 3.9 @@ -421,8 +430,9 @@ The :mod:`signal` module defines the following functions: .. audit-event:: signal.pthread_kill thread_id,signalnum signal.pthread_kill - .. availability:: Unix. See the man page :manpage:`pthread_kill(3)` for further - information. + .. availability:: Unix. + + See the man page :manpage:`pthread_kill(3)` for further information. See also :func:`os.kill`. @@ -454,7 +464,9 @@ The :mod:`signal` module defines the following functions: :data:`SIGKILL` and :data:`SIGSTOP` cannot be blocked. - .. availability:: Unix. See the man page :manpage:`sigprocmask(2)` and + .. availability:: Unix. + + See the man page :manpage:`sigprocmask(2)` and :manpage:`pthread_sigmask(3)` for further information. See also :func:`pause`, :func:`sigpending` and :func:`sigwait`. @@ -542,8 +554,9 @@ The :mod:`signal` module defines the following functions: calls will be restarted when interrupted by signal *signalnum*, otherwise system calls will be interrupted. Returns nothing. - .. availability:: Unix. See the man page :manpage:`siginterrupt(3)` - for further information. + .. availability:: Unix. + + See the man page :manpage:`siginterrupt(3)` for further information. Note that installing a signal handler with :func:`signal` will reset the restart behaviour to interruptible by implicitly calling @@ -583,8 +596,9 @@ The :mod:`signal` module defines the following functions: thread (i.e., the signals which have been raised while blocked). Return the set of the pending signals. - .. availability:: Unix. See the man page :manpage:`sigpending(2)` for further - information. + .. availability:: Unix. + + See the man page :manpage:`sigpending(2)` for further information. See also :func:`pause`, :func:`pthread_sigmask` and :func:`sigwait`. @@ -597,8 +611,9 @@ The :mod:`signal` module defines the following functions: signals specified in the signal set *sigset*. The function accepts the signal (removes it from the pending list of signals), and returns the signal number. - .. availability:: Unix. See the man page :manpage:`sigwait(3)` for further - information. + .. availability:: Unix. + + See the man page :manpage:`sigwait(3)` for further information. See also :func:`pause`, :func:`pthread_sigmask`, :func:`sigpending`, :func:`sigwaitinfo` and :func:`sigtimedwait`. @@ -622,8 +637,9 @@ The :mod:`signal` module defines the following functions: :attr:`si_errno`, :attr:`si_pid`, :attr:`si_uid`, :attr:`si_status`, :attr:`si_band`. - .. availability:: Unix. See the man page :manpage:`sigwaitinfo(2)` for further - information. + .. availability:: Unix. + + See the man page :manpage:`sigwaitinfo(2)` for further information. See also :func:`pause`, :func:`sigwait` and :func:`sigtimedwait`. @@ -641,8 +657,9 @@ The :mod:`signal` module defines the following functions: specifying a timeout. If *timeout* is specified as :const:`0`, a poll is performed. Returns :const:`None` if a timeout occurs. - .. availability:: Unix. See the man page :manpage:`sigtimedwait(2)` for further - information. + .. availability:: Unix. + + See the man page :manpage:`sigtimedwait(2)` for further information. See also :func:`pause`, :func:`sigwait` and :func:`sigwaitinfo`. @@ -739,7 +756,7 @@ To illustrate this issue, consider the following code:: def __enter__(self): # If KeyboardInterrupt occurs here, everything is fine self.lock.acquire() - # If KeyboardInterrupt occcurs here, __exit__ will not be called + # If KeyboardInterrupt occurs here, __exit__ will not be called ... # KeyboardInterrupt could occur just before the function returns diff --git a/Doc/library/smtpd.rst b/Doc/library/smtpd.rst deleted file mode 100644 index a0d1fb0aa51529..00000000000000 --- a/Doc/library/smtpd.rst +++ /dev/null @@ -1,267 +0,0 @@ -:mod:`smtpd` --- SMTP Server -============================ - -.. module:: smtpd - :synopsis: A SMTP server implementation in Python. - :deprecated: - -.. moduleauthor:: Barry Warsaw -.. sectionauthor:: Moshe Zadka - -**Source code:** :source:`Lib/smtpd.py` - --------------- - -This module offers several classes to implement SMTP (email) servers. - -.. deprecated-removed:: 3.6 3.12 - The :mod:`smtpd` module is deprecated - (see :pep:`PEP 594 <594#smtpd>` for details). - The `aiosmtpd `_ package is a recommended - replacement for this module. It is based on :mod:`asyncio` and provides a - more straightforward API. - -Several server implementations are present; one is a generic -do-nothing implementation, which can be overridden, while the other two offer -specific mail-sending strategies. - -Additionally the SMTPChannel may be extended to implement very specific -interaction behaviour with SMTP clients. - -The code supports :RFC:`5321`, plus the :rfc:`1870` SIZE and :rfc:`6531` -SMTPUTF8 extensions. - - -SMTPServer Objects ------------------- - - -.. class:: SMTPServer(localaddr, remoteaddr, data_size_limit=33554432,\ - map=None, enable_SMTPUTF8=False, decode_data=False) - - Create a new :class:`SMTPServer` object, which binds to local address - *localaddr*. It will treat *remoteaddr* as an upstream SMTP relayer. Both - *localaddr* and *remoteaddr* should be a :ref:`(host, port) ` - tuple. The object inherits from :class:`asyncore.dispatcher`, and so will - insert itself into :mod:`asyncore`'s event loop on instantiation. - - *data_size_limit* specifies the maximum number of bytes that will be - accepted in a ``DATA`` command. A value of ``None`` or ``0`` means no - limit. - - *map* is the socket map to use for connections (an initially empty - dictionary is a suitable value). If not specified the :mod:`asyncore` - global socket map is used. - - *enable_SMTPUTF8* determines whether the ``SMTPUTF8`` extension (as defined - in :RFC:`6531`) should be enabled. The default is ``False``. - When ``True``, ``SMTPUTF8`` is accepted as a parameter to the ``MAIL`` - command and when present is passed to :meth:`process_message` in the - ``kwargs['mail_options']`` list. *decode_data* and *enable_SMTPUTF8* - cannot be set to ``True`` at the same time. - - *decode_data* specifies whether the data portion of the SMTP transaction - should be decoded using UTF-8. When *decode_data* is ``False`` (the - default), the server advertises the ``8BITMIME`` - extension (:rfc:`6152`), accepts the ``BODY=8BITMIME`` parameter to - the ``MAIL`` command, and when present passes it to :meth:`process_message` - in the ``kwargs['mail_options']`` list. *decode_data* and *enable_SMTPUTF8* - cannot be set to ``True`` at the same time. - - .. method:: process_message(peer, mailfrom, rcpttos, data, **kwargs) - - Raise a :exc:`NotImplementedError` exception. Override this in subclasses to - do something useful with this message. Whatever was passed in the - constructor as *remoteaddr* will be available as the :attr:`_remoteaddr` - attribute. *peer* is the remote host's address, *mailfrom* is the envelope - originator, *rcpttos* are the envelope recipients and *data* is a string - containing the contents of the e-mail (which should be in :rfc:`5321` - format). - - If the *decode_data* constructor keyword is set to ``True``, the *data* - argument will be a unicode string. If it is set to ``False``, it - will be a bytes object. - - *kwargs* is a dictionary containing additional information. It is empty - if ``decode_data=True`` was given as an init argument, otherwise - it contains the following keys: - - *mail_options*: - a list of all received parameters to the ``MAIL`` - command (the elements are uppercase strings; example: - ``['BODY=8BITMIME', 'SMTPUTF8']``). - - *rcpt_options*: - same as *mail_options* but for the ``RCPT`` command. - Currently no ``RCPT TO`` options are supported, so for now - this will always be an empty list. - - Implementations of ``process_message`` should use the ``**kwargs`` - signature to accept arbitrary keyword arguments, since future feature - enhancements may add keys to the kwargs dictionary. - - Return ``None`` to request a normal ``250 Ok`` response; otherwise - return the desired response string in :RFC:`5321` format. - - .. attribute:: channel_class - - Override this in subclasses to use a custom :class:`SMTPChannel` for - managing SMTP clients. - - .. versionadded:: 3.4 - The *map* constructor argument. - - .. versionchanged:: 3.5 - *localaddr* and *remoteaddr* may now contain IPv6 addresses. - - .. versionadded:: 3.5 - The *decode_data* and *enable_SMTPUTF8* constructor parameters, and the - *kwargs* parameter to :meth:`process_message` when *decode_data* is - ``False``. - - .. versionchanged:: 3.6 - *decode_data* is now ``False`` by default. - - -DebuggingServer Objects ------------------------ - - -.. class:: DebuggingServer(localaddr, remoteaddr) - - Create a new debugging server. Arguments are as per :class:`SMTPServer`. - Messages will be discarded, and printed on stdout. - - -PureProxy Objects ------------------ - - -.. class:: PureProxy(localaddr, remoteaddr) - - Create a new pure proxy server. Arguments are as per :class:`SMTPServer`. - Everything will be relayed to *remoteaddr*. Note that running this has a good - chance to make you into an open relay, so please be careful. - - -SMTPChannel Objects -------------------- - -.. class:: SMTPChannel(server, conn, addr, data_size_limit=33554432,\ - map=None, enable_SMTPUTF8=False, decode_data=False) - - Create a new :class:`SMTPChannel` object which manages the communication - between the server and a single SMTP client. - - *conn* and *addr* are as per the instance variables described below. - - *data_size_limit* specifies the maximum number of bytes that will be - accepted in a ``DATA`` command. A value of ``None`` or ``0`` means no - limit. - - *enable_SMTPUTF8* determines whether the ``SMTPUTF8`` extension (as defined - in :RFC:`6531`) should be enabled. The default is ``False``. - *decode_data* and *enable_SMTPUTF8* cannot be set to ``True`` at the same - time. - - A dictionary can be specified in *map* to avoid using a global socket map. - - *decode_data* specifies whether the data portion of the SMTP transaction - should be decoded using UTF-8. The default is ``False``. - *decode_data* and *enable_SMTPUTF8* cannot be set to ``True`` at the same - time. - - To use a custom SMTPChannel implementation you need to override the - :attr:`SMTPServer.channel_class` of your :class:`SMTPServer`. - - .. versionchanged:: 3.5 - The *decode_data* and *enable_SMTPUTF8* parameters were added. - - .. versionchanged:: 3.6 - *decode_data* is now ``False`` by default. - - The :class:`SMTPChannel` has the following instance variables: - - .. attribute:: smtp_server - - Holds the :class:`SMTPServer` that spawned this channel. - - .. attribute:: conn - - Holds the socket object connecting to the client. - - .. attribute:: addr - - Holds the address of the client, the second value returned by - :func:`socket.accept ` - - .. attribute:: received_lines - - Holds a list of the line strings (decoded using UTF-8) received from - the client. The lines have their ``"\r\n"`` line ending translated to - ``"\n"``. - - .. attribute:: smtp_state - - Holds the current state of the channel. This will be either - :attr:`COMMAND` initially and then :attr:`DATA` after the client sends - a "DATA" line. - - .. attribute:: seen_greeting - - Holds a string containing the greeting sent by the client in its "HELO". - - .. attribute:: mailfrom - - Holds a string containing the address identified in the "MAIL FROM:" line - from the client. - - .. attribute:: rcpttos - - Holds a list of strings containing the addresses identified in the - "RCPT TO:" lines from the client. - - .. attribute:: received_data - - Holds a string containing all of the data sent by the client during the - DATA state, up to but not including the terminating ``"\r\n.\r\n"``. - - .. attribute:: fqdn - - Holds the fully-qualified domain name of the server as returned by - :func:`socket.getfqdn`. - - .. attribute:: peer - - Holds the name of the client peer as returned by ``conn.getpeername()`` - where ``conn`` is :attr:`conn`. - - The :class:`SMTPChannel` operates by invoking methods named ``smtp_`` - upon reception of a command line from the client. Built into the base - :class:`SMTPChannel` class are methods for handling the following commands - (and responding to them appropriately): - - ======== =================================================================== - Command Action taken - ======== =================================================================== - HELO Accepts the greeting from the client and stores it in - :attr:`seen_greeting`. Sets server to base command mode. - EHLO Accepts the greeting from the client and stores it in - :attr:`seen_greeting`. Sets server to extended command mode. - NOOP Takes no action. - QUIT Closes the connection cleanly. - MAIL Accepts the "MAIL FROM:" syntax and stores the supplied address as - :attr:`mailfrom`. In extended command mode, accepts the - :rfc:`1870` SIZE attribute and responds appropriately based on the - value of *data_size_limit*. - RCPT Accepts the "RCPT TO:" syntax and stores the supplied addresses in - the :attr:`rcpttos` list. - RSET Resets the :attr:`mailfrom`, :attr:`rcpttos`, and - :attr:`received_data`, but not the greeting. - DATA Sets the internal state to :attr:`DATA` and stores remaining lines - from the client in :attr:`received_data` until the terminator - ``"\r\n.\r\n"`` is received. - HELP Returns minimal information on command syntax - VRFY Returns code 252 (the server doesn't know if the address is valid) - EXPN Reports that the command is not implemented. - ======== =================================================================== diff --git a/Doc/library/smtplib.rst b/Doc/library/smtplib.rst index aaab6b11d3bbe5..4e50ad1568ed09 100644 --- a/Doc/library/smtplib.rst +++ b/Doc/library/smtplib.rst @@ -19,6 +19,7 @@ to send mail to any internet machine with an SMTP or ESMTP listener daemon. For details of SMTP and ESMTP operation, consult :rfc:`821` (Simple Mail Transfer Protocol) and :rfc:`1869` (SMTP Service Extensions). +.. include:: ../includes/wasm-notavail.rst .. class:: SMTP(host='', port=0, local_hostname=None[, timeout], source_address=None) diff --git a/Doc/library/socket.rst b/Doc/library/socket.rst old mode 100755 new mode 100644 index 1b801955dff17e..f97c4f67001633 --- a/Doc/library/socket.rst +++ b/Doc/library/socket.rst @@ -16,6 +16,9 @@ all modern Unix systems, Windows, MacOS, and probably additional platforms. Some behavior may be platform dependent, since calls are made to the operating system socket APIs. + +.. include:: ../includes/wasm-notavail.rst + .. index:: object: socket The Python interface is a straightforward transliteration of the Unix system @@ -125,7 +128,7 @@ created. Socket addresses are represented as follows: - A string or a tuple ``(id, unit)`` is used for the :const:`SYSPROTO_CONTROL` protocol of the :const:`PF_SYSTEM` family. The string is the name of a - kernel control using a dynamically-assigned ID. The tuple can be used if ID + kernel control using a dynamically assigned ID. The tuple can be used if ID and unit number of the kernel control are known or if a registered ID is used. @@ -165,7 +168,9 @@ created. Socket addresses are represented as follows: - *feat* and *mask* are unsigned 32bit integers. - .. availability:: Linux 2.6.38, some algorithm types require more recent Kernels. + .. availability:: Linux >= 2.6.38. + + Some algorithm types require more recent Kernels. .. versionadded:: 3.6 @@ -173,7 +178,9 @@ created. Socket addresses are represented as follows: their hosts. The sockets are represented as a ``(CID, port)`` tuple where the context ID or CID and port are integers. - .. availability:: Linux >= 4.8 QEMU >= 2.8 ESX >= 4.0 ESX Workstation >= 6.5. + .. availability:: Linux >= 3.9 + + See :manpage:`vsock(7)` .. versionadded:: 3.7 @@ -221,7 +228,7 @@ created. Socket addresses are represented as follows: ``socket(AF_INET, SOCK_DGRAM, IPPROTO_UDPLITE)`` for IPv4 or ``socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDPLITE)`` for IPv6. - .. availability:: Linux >= 2.6.20, FreeBSD >= 10.1-RELEASE + .. availability:: Linux >= 2.6.20, FreeBSD >= 10.1 .. versionadded:: 3.9 @@ -242,7 +249,7 @@ created. Socket addresses are represented as follows: child partitions. - ``HV_GUID_LOOPBACK`` - Used as a target to itself. - ``HV_GUID_PARENT`` - When used as a bind accepts connection from the parent - partition. When used as an address target it will connect to the parent parition. + partition. When used as an address target it will connect to the parent partition. The ``service_id`` is the service identifier of the registered service. @@ -363,7 +370,7 @@ Constants .. seealso:: - `Secure File Descriptor Handling `_ + `Secure File Descriptor Handling `_ for a more thorough explanation. .. availability:: Linux >= 2.6.27. @@ -616,7 +623,6 @@ Constants HV_PROTOCOL_RAW HVSOCKET_CONNECT_TIMEOUT HVSOCKET_CONNECT_TIMEOUT_MAX - HVSOCKET_CONTAINER_PASSTHRU HVSOCKET_CONNECTED_SUSPEND HVSOCKET_ADDRESS_FLAG_PASSTHRU HV_GUID_ZERO @@ -915,6 +921,8 @@ The :mod:`socket` module also offers various network-related services: .. audit-event:: socket.gethostbyname hostname socket.gethostbyname + .. availability:: not WASI. + .. function:: gethostbyname_ex(hostname) @@ -929,6 +937,8 @@ The :mod:`socket` module also offers various network-related services: .. audit-event:: socket.gethostbyname hostname socket.gethostbyname_ex + .. availability:: not WASI. + .. function:: gethostname() @@ -940,6 +950,8 @@ The :mod:`socket` module also offers various network-related services: Note: :func:`gethostname` doesn't always return the fully qualified domain name; use :func:`getfqdn` for that. + .. availability:: not WASI. + .. function:: gethostbyaddr(ip_address) @@ -953,11 +965,13 @@ The :mod:`socket` module also offers various network-related services: .. audit-event:: socket.gethostbyaddr ip_address socket.gethostbyaddr + .. availability:: not WASI. + .. function:: getnameinfo(sockaddr, flags) Translate a socket address *sockaddr* into a 2-tuple ``(host, port)``. Depending - on the settings of *flags*, the result can contain a fully-qualified domain name + on the settings of *flags*, the result can contain a fully qualified domain name or numeric address representation in *host*. Similarly, *port* can contain a string port name or a numeric port number. @@ -968,6 +982,9 @@ The :mod:`socket` module also offers various network-related services: .. audit-event:: socket.getnameinfo sockaddr socket.getnameinfo + .. availability:: not WASI. + + .. function:: getprotobyname(protocolname) Translate an internet protocol name (for example, ``'icmp'``) to a constant @@ -976,6 +993,8 @@ The :mod:`socket` module also offers various network-related services: (:const:`SOCK_RAW`); for the normal socket modes, the correct protocol is chosen automatically if the protocol is omitted or zero. + .. availability:: not WASI. + .. function:: getservbyname(servicename[, protocolname]) @@ -985,6 +1004,8 @@ The :mod:`socket` module also offers various network-related services: .. audit-event:: socket.getservbyname servicename,protocolname socket.getservbyname + .. availability:: not WASI. + .. function:: getservbyport(port[, protocolname]) @@ -994,6 +1015,8 @@ The :mod:`socket` module also offers various network-related services: .. audit-event:: socket.getservbyport port,protocolname socket.getservbyport + .. availability:: not WASI. + .. function:: ntohl(x) @@ -1081,7 +1104,7 @@ The :mod:`socket` module also offers various network-related services: both the value of *address_family* and the underlying implementation of :c:func:`inet_pton`. - .. availability:: Unix (maybe not all platforms), Windows. + .. availability:: Unix, Windows. .. versionchanged:: 3.4 Windows support added @@ -1101,7 +1124,7 @@ The :mod:`socket` module also offers various network-related services: length for the specified address family, :exc:`ValueError` will be raised. :exc:`OSError` is raised for errors from the call to :func:`inet_ntop`. - .. availability:: Unix (maybe not all platforms), Windows. + .. availability:: Unix, Windows. .. versionchanged:: 3.4 Windows support added @@ -1127,7 +1150,9 @@ The :mod:`socket` module also offers various network-related services: buffer. Raises :exc:`OverflowError` if *length* is outside the permissible range of values. - .. availability:: most Unix platforms, possibly others. + .. availability:: Unix, not Emscripten, not WASI. + + Most Unix platforms. .. versionadded:: 3.3 @@ -1148,7 +1173,9 @@ The :mod:`socket` module also offers various network-related services: amount of ancillary data that can be received, since additional data may be able to fit into the padding area. - .. availability:: most Unix platforms, possibly others. + .. availability:: Unix, not Emscripten, not WASI. + + most Unix platforms. .. versionadded:: 3.3 @@ -1186,7 +1213,7 @@ The :mod:`socket` module also offers various network-related services: (index int, name string) tuples. :exc:`OSError` if the system call fails. - .. availability:: Unix, Windows. + .. availability:: Unix, Windows, not Emscripten, not WASI. .. versionadded:: 3.3 @@ -1213,7 +1240,7 @@ The :mod:`socket` module also offers various network-related services: interface name. :exc:`OSError` if no interface with the given name exists. - .. availability:: Unix, Windows. + .. availability:: Unix, Windows, not Emscripten, not WASI. .. versionadded:: 3.3 @@ -1230,7 +1257,7 @@ The :mod:`socket` module also offers various network-related services: interface index number. :exc:`OSError` if no interface with the given index exists. - .. availability:: Unix, Windows. + .. availability:: Unix, Windows, not Emscripten, not WASI. .. versionadded:: 3.3 @@ -1247,7 +1274,10 @@ The :mod:`socket` module also offers various network-related services: The *fds* parameter is a sequence of file descriptors. Consult :meth:`sendmsg` for the documentation of these parameters. - .. availability:: Unix supporting :meth:`~socket.sendmsg` and :const:`SCM_RIGHTS` mechanism. + .. availability:: Unix, Windows, not Emscripten, not WASI. + + Unix platforms supporting :meth:`~socket.sendmsg` + and :const:`SCM_RIGHTS` mechanism. .. versionadded:: 3.9 @@ -1258,7 +1288,10 @@ The :mod:`socket` module also offers various network-related services: Return ``(msg, list(fds), flags, addr)``. Consult :meth:`recvmsg` for the documentation of these parameters. - .. availability:: Unix supporting :meth:`~socket.recvmsg` and :const:`SCM_RIGHTS` mechanism. + .. availability:: Unix, Windows, not Emscripten, not WASI. + + Unix platforms supporting :meth:`~socket.sendmsg` + and :const:`SCM_RIGHTS` mechanism. .. versionadded:: 3.9 @@ -1306,6 +1339,9 @@ to sockets. .. audit-event:: socket.bind self,address socket.socket.bind + .. availability:: not WASI. + + .. method:: socket.close() Mark the socket closed. The underlying system resource (e.g. a file @@ -1350,6 +1386,8 @@ to sockets. signal, the signal handler doesn't raise an exception and the socket is blocking or has a timeout (see the :pep:`475` for the rationale). + .. availability:: not WASI. + .. method:: socket.connect_ex(address) @@ -1362,6 +1400,8 @@ to sockets. .. audit-event:: socket.connect self,address socket.socket.connect_ex + .. availability:: not WASI. + .. method:: socket.detach() Put the socket object into closed state without actually closing the @@ -1380,6 +1420,8 @@ to sockets. .. versionchanged:: 3.4 The socket is now non-inheritable. + .. availability:: not WASI. + .. method:: socket.fileno() @@ -1425,6 +1467,8 @@ to sockets. contents of the buffer (see the optional built-in module :mod:`struct` for a way to decode C structures encoded as byte strings). + .. availability:: not WASI. + .. method:: socket.getblocking() @@ -1468,9 +1512,12 @@ to sockets. unaccepted connections that the system will allow before refusing new connections. If not specified, a default reasonable value is chosen. + .. availability:: not WASI. + .. versionchanged:: 3.5 The *backlog* parameter is now optional. + .. method:: socket.makefile(mode='r', buffering=None, *, encoding=None, \ errors=None, newline=None) @@ -1593,7 +1640,9 @@ to sockets. fds.frombytes(cmsg_data[:len(cmsg_data) - (len(cmsg_data) % fds.itemsize)]) return msg, list(fds) - .. availability:: most Unix platforms, possibly others. + .. availability:: Unix. + + Most Unix platforms. .. versionadded:: 3.3 @@ -1635,7 +1684,9 @@ to sockets. >>> [b1, b2, b3] [bytearray(b'Mary'), bytearray(b'01 had a 9'), bytearray(b'little lamb---')] - .. availability:: most Unix platforms, possibly others. + .. availability:: Unix. + + Most Unix platforms. .. versionadded:: 3.3 @@ -1741,7 +1792,9 @@ to sockets. def send_fds(sock, msg, fds): return sock.sendmsg([msg], [(socket.SOL_SOCKET, socket.SCM_RIGHTS, array.array("i", fds))]) - .. availability:: most Unix platforms, possibly others. + .. availability:: Unix, not WASI. + + Most Unix platforms. .. audit-event:: socket.sendmsg self,address socket.socket.sendmsg @@ -1835,13 +1888,14 @@ to sockets. *optlen* argument is required. It's equivalent to call :c:func:`setsockopt` C function with ``optval=NULL`` and ``optlen=optlen``. - .. versionchanged:: 3.5 Writable :term:`bytes-like object` is now accepted. .. versionchanged:: 3.6 setsockopt(level, optname, None, optlen: int) form added. + .. availability:: not WASI. + .. method:: socket.shutdown(how) @@ -1850,6 +1904,8 @@ to sockets. are disallowed. If *how* is :const:`SHUT_RDWR`, further sends and receives are disallowed. + .. availability:: not WASI. + .. method:: socket.share(process_id) @@ -2076,10 +2132,10 @@ the interface:: # Include IP headers s.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1) - # receive all packages + # receive all packets s.ioctl(socket.SIO_RCVALL, socket.RCVALL_ON) - # receive a package + # receive a packet print(s.recvfrom(65565)) # disabled promiscuous mode diff --git a/Doc/library/socketserver.rst b/Doc/library/socketserver.rst index b65a3e8fb2b975..70d56a1dad94f2 100644 --- a/Doc/library/socketserver.rst +++ b/Doc/library/socketserver.rst @@ -10,6 +10,8 @@ The :mod:`socketserver` module simplifies the task of writing network servers. +.. include:: ../includes/wasm-notavail.rst + There are four basic concrete server classes: diff --git a/Doc/library/spwd.rst b/Doc/library/spwd.rst index 87e09167ada427..d1693ea67f0ceb 100644 --- a/Doc/library/spwd.rst +++ b/Doc/library/spwd.rst @@ -15,6 +15,8 @@ This module provides access to the Unix shadow password database. It is available on various Unix versions. +.. include:: ../includes/wasm-notavail.rst + You must have enough privileges to access the shadow password database (this usually means you have to be root). diff --git a/Doc/library/sqlite3.rst b/Doc/library/sqlite3.rst index 1843e22640f014..e2774a502403e7 100644 --- a/Doc/library/sqlite3.rst +++ b/Doc/library/sqlite3.rst @@ -8,7 +8,17 @@ **Source code:** :source:`Lib/sqlite3/` --------------- +.. Make sure we always doctest the tutorial with an empty database. + +.. testsetup:: + + import sqlite3 + src = sqlite3.connect(":memory:", isolation_level=None) + dst = sqlite3.connect("tutorial.db", isolation_level=None) + src.backup(dst) + del src, dst + +.. _sqlite3-intro: SQLite is a C library that provides a lightweight disk-based database that doesn't require a separate server process and allows accessing the database @@ -17,107 +27,443 @@ SQLite for internal data storage. It's also possible to prototype an application using SQLite and then port the code to a larger database such as PostgreSQL or Oracle. -The sqlite3 module was written by Gerhard Häring. It provides an SQL interface +The :mod:`!sqlite3` module was written by Gerhard Häring. It provides an SQL interface compliant with the DB-API 2.0 specification described by :pep:`249`, and requires SQLite 3.7.15 or newer. -To use the module, start by creating a :class:`Connection` object that -represents the database. Here the data will be stored in the -:file:`example.db` file:: +This document includes four main sections: - import sqlite3 - con = sqlite3.connect('example.db') +* :ref:`sqlite3-tutorial` teaches how to use the :mod:`!sqlite3` module. +* :ref:`sqlite3-reference` describes the classes and functions this module + defines. +* :ref:`sqlite3-howtos` details how to handle specific tasks. +* :ref:`sqlite3-explanation` provides in-depth background on + transaction control. -The special path name ``:memory:`` can be provided to create a temporary -database in RAM. +.. seealso:: -Once a :class:`Connection` has been established, create a :class:`Cursor` object -and call its :meth:`~Cursor.execute` method to perform SQL commands:: + https://www.sqlite.org + The SQLite web page; the documentation describes the syntax and the + available data types for the supported SQL dialect. - cur = con.cursor() + https://www.w3schools.com/sql/ + Tutorial, reference and examples for learning SQL syntax. - # Create table - cur.execute('''CREATE TABLE stocks - (date text, trans text, symbol text, qty real, price real)''') + :pep:`249` - Database API Specification 2.0 + PEP written by Marc-André Lemburg. - # Insert a row of data - cur.execute("INSERT INTO stocks VALUES ('2006-01-05','BUY','RHAT',100,35.14)") - # Save (commit) the changes - con.commit() +.. We use the following practises for SQL code: + - UPPERCASE for keywords + - snake_case for schema + - single quotes for string literals + - singular for table names + - if needed, use double quotes for table and column names - # We can also close the connection if we are done with it. - # Just be sure any changes have been committed or they will be lost. - con.close() +.. _sqlite3-tutorial: -The saved data is persistent: it can be reloaded in a subsequent session even -after restarting the Python interpreter:: +Tutorial +-------- + +In this tutorial, you will create a database of Monty Python movies +using basic :mod:`!sqlite3` functionality. +It assumes a fundamental understanding of database concepts, +including `cursors`_ and `transactions`_. + +First, we need to create a new database and open +a database connection to allow :mod:`!sqlite3` to work with it. +Call :func:`sqlite3.connect` to to create a connection to +the database :file:`tutorial.db` in the current working directory, +implicitly creating it if it does not exist: + +.. testcode:: import sqlite3 - con = sqlite3.connect('example.db') + con = sqlite3.connect("tutorial.db") + +The returned :class:`Connection` object ``con`` +represents the connection to the on-disk database. + +In order to execute SQL statements and fetch results from SQL queries, +we will need to use a database cursor. +Call :meth:`con.cursor() ` to create the :class:`Cursor`: + +.. testcode:: + cur = con.cursor() -To retrieve data after executing a SELECT statement, either treat the cursor as -an :term:`iterator`, call the cursor's :meth:`~Cursor.fetchone` method to -retrieve a single matching row, or call :meth:`~Cursor.fetchall` to get a list -of the matching rows. +Now that we've got a database connection and a cursor, +we can create a database table ``movie`` with columns for title, +release year, and review score. +For simplicity, we can just use column names in the table declaration -- +thanks to the `flexible typing`_ feature of SQLite, +specifying the data types is optional. +Execute the ``CREATE TABLE`` statement +by calling :meth:`cur.execute(...) `: -This example uses the iterator form:: +.. testcode:: - >>> for row in cur.execute('SELECT * FROM stocks ORDER BY price'): - print(row) + cur.execute("CREATE TABLE movie(title, year, score)") - ('2006-01-05', 'BUY', 'RHAT', 100, 35.14) - ('2006-03-28', 'BUY', 'IBM', 1000, 45.0) - ('2006-04-06', 'SELL', 'IBM', 500, 53.0) - ('2006-04-05', 'BUY', 'MSFT', 1000, 72.0) +.. Ideally, we'd use sqlite_schema instead of sqlite_master below, + but SQLite versions older than 3.33.0 do not recognise that variant. +We can verify that the new table has been created by querying +the ``sqlite_master`` table built-in to SQLite, +which should now contain an entry for the ``movie`` table definition +(see `The Schema Table`_ for details). +Execute that query by calling :meth:`cur.execute(...) `, +assign the result to ``res``, +and call :meth:`res.fetchone() ` to fetch the resulting row: -.. _sqlite3-placeholders: +.. doctest:: -SQL operations usually need to use values from Python variables. However, -beware of using Python's string operations to assemble queries, as they -are vulnerable to SQL injection attacks (see the `xkcd webcomic -`_ for a humorous example of what can go wrong):: + >>> res = cur.execute("SELECT name FROM sqlite_master") + >>> res.fetchone() + ('movie',) - # Never do this -- insecure! - symbol = 'RHAT' - cur.execute("SELECT * FROM stocks WHERE symbol = '%s'" % symbol) +We can see that the table has been created, +as the query returns a :class:`tuple` containing the table's name. +If we query ``sqlite_master`` for a non-existent table ``spam``, +:meth:`!res.fetchone()` will return ``None``: -Instead, use the DB-API's parameter substitution. To insert a variable into a -query string, use a placeholder in the string, and substitute the actual values -into the query by providing them as a :class:`tuple` of values to the second -argument of the cursor's :meth:`~Cursor.execute` method. An SQL statement may -use one of two kinds of placeholders: question marks (qmark style) or named -placeholders (named style). For the qmark style, ``parameters`` must be a -:term:`sequence `. For the named style, it can be either a -:term:`sequence ` or :class:`dict` instance. The length of the -:term:`sequence ` must match the number of placeholders, or a -:exc:`ProgrammingError` is raised. If a :class:`dict` is given, it must contain -keys for all named parameters. Any extra items are ignored. Here's an example of -both styles: +.. doctest:: + + >>> res = cur.execute("SELECT name FROM sqlite_master WHERE name='spam'") + >>> res.fetchone() is None + True + +Now, add two rows of data supplied as SQL literals +by executing an ``INSERT`` statement, +once again by calling :meth:`cur.execute(...) `: + +.. testcode:: + + cur.execute(""" + INSERT INTO movie VALUES + ('Monty Python and the Holy Grail', 1975, 8.2), + ('And Now for Something Completely Different', 1971, 7.5) + """) + +The ``INSERT`` statement implicitly opens a transaction, +which needs to be committed before changes are saved in the database +(see :ref:`sqlite3-controlling-transactions` for details). +Call :meth:`con.commit() ` on the connection object +to commit the transaction: + +.. testcode:: -.. literalinclude:: ../includes/sqlite3/execute_1.py + con.commit() +We can verify that the data was inserted correctly +by executing a ``SELECT`` query. +Use the now-familiar :meth:`cur.execute(...) ` to +assign the result to ``res``, +and call :meth:`res.fetchall() ` to return all resulting rows: + +.. doctest:: + + >>> res = cur.execute("SELECT score FROM movie") + >>> res.fetchall() + [(8.2,), (7.5,)] + +The result is a :class:`list` of two :class:`!tuple`\s, one per row, +each containing that row's ``score`` value. + +Now, insert three more rows by calling +:meth:`cur.executemany(...) `: + +.. testcode:: + + data = [ + ("Monty Python Live at the Hollywood Bowl", 1982, 7.9), + ("Monty Python's The Meaning of Life", 1983, 7.5), + ("Monty Python's Life of Brian", 1979, 8.0), + ] + cur.executemany("INSERT INTO movie VALUES(?, ?, ?)", data) + con.commit() # Remember to commit the transaction after executing INSERT. + +Notice that ``?`` placeholders are used to bind ``data`` to the query. +Always use placeholders instead of :ref:`string formatting ` +to bind Python values to SQL statements, +to avoid `SQL injection attacks`_ +(see :ref:`sqlite3-placeholders` for more details). + +We can verify that the new rows were inserted +by executing a ``SELECT`` query, +this time iterating over the results of the query: + +.. doctest:: + + >>> for row in cur.execute("SELECT year, title FROM movie ORDER BY year"): + ... print(row) + (1971, 'And Now for Something Completely Different') + (1975, 'Monty Python and the Holy Grail') + (1979, "Monty Python's Life of Brian") + (1982, 'Monty Python Live at the Hollywood Bowl') + (1983, "Monty Python's The Meaning of Life") + +Each row is a two-item :class:`tuple` of ``(year, title)``, +matching the columns selected in the query. + +Finally, verify that the database has been written to disk +by calling :meth:`con.close() ` +to close the existing connection, opening a new one, +creating a new cursor, then querying the database: + +.. doctest:: + + >>> con.close() + >>> new_con = sqlite3.connect("tutorial.db") + >>> new_cur = new_con.cursor() + >>> res = new_cur.execute("SELECT title, year FROM movie ORDER BY score DESC") + >>> title, year = res.fetchone() + >>> print(f'The highest scoring Monty Python movie is {title!r}, released in {year}') + The highest scoring Monty Python movie is 'Monty Python and the Holy Grail', released in 1975 + +You've now created an SQLite database using the :mod:`!sqlite3` module, +inserted data and retrieved values from it in multiple ways. + +.. _SQL injection attacks: https://en.wikipedia.org/wiki/SQL_injection +.. _The Schema Table: https://www.sqlite.org/schematab.html +.. _cursors: https://en.wikipedia.org/wiki/Cursor_(databases) +.. _flexible typing: https://www.sqlite.org/flextypegood.html +.. _sqlite_master: https://www.sqlite.org/schematab.html +.. _transactions: https://en.wikipedia.org/wiki/Database_transaction .. seealso:: - https://www.sqlite.org - The SQLite web page; the documentation describes the syntax and the - available data types for the supported SQL dialect. + * :ref:`sqlite3-howtos` for further reading: - https://www.w3schools.com/sql/ - Tutorial, reference and examples for learning SQL syntax. + * :ref:`sqlite3-placeholders` + * :ref:`sqlite3-adapters` + * :ref:`sqlite3-converters` + * :ref:`sqlite3-connection-context-manager` - :pep:`249` - Database API Specification 2.0 - PEP written by Marc-André Lemburg. + * :ref:`sqlite3-explanation` for in-depth background on transaction control. +.. _sqlite3-reference: +Reference +--------- + +.. We keep the old sqlite3-module-contents ref to prevent breaking links. .. _sqlite3-module-contents: -Module functions and constants ------------------------------- +.. _sqlite3-module-functions: + +Module functions +^^^^^^^^^^^^^^^^ + +.. function:: connect(database, timeout=5.0, detect_types=0, \ + isolation_level="DEFERRED", check_same_thread=True, \ + factory=sqlite3.Connection, cached_statements=128, \ + uri=False) + + Open a connection to an SQLite database. + + :param database: + The path to the database file to be opened. + Pass ``":memory:"`` to open a connection to a database that is + in RAM instead of on disk. + :type database: :term:`path-like object` + + :param float timeout: + How many seconds the connection should wait before raising + an exception, if the database is locked by another connection. + If another connection opens a transaction to modify the database, + it will be locked until that transaction is committed. + Default five seconds. + + :param int detect_types: + Control whether and how data types not + :ref:`natively supported by SQLite ` + are looked up to be converted to Python types, + using the converters registered with :func:`register_converter`. + Set it to any combination (using ``|``, bitwise or) of + :const:`PARSE_DECLTYPES` and :const:`PARSE_COLNAMES` + to enable this. + Column names takes precedence over declared types if both flags are set. + Types cannot be detected for generated fields (for example ``max(data)``), + even when the *detect_types* parameter is set; :class:`str` will be + returned instead. + By default (``0``), type detection is disabled. + + :param isolation_level: + The :attr:`~Connection.isolation_level` of the connection, + controlling whether and how transactions are implicitly opened. + Can be ``"DEFERRED"`` (default), ``"EXCLUSIVE"`` or ``"IMMEDIATE"``; + or ``None`` to disable opening transactions implicitly. + See :ref:`sqlite3-controlling-transactions` for more. + :type isolation_level: str | None + + :param bool check_same_thread: + If ``True`` (default), only the creating thread may use the connection. + If ``False``, the connection may be shared across multiple threads; + if so, write operations should be serialized by the user to avoid data + corruption. + + :param Connection factory: + A custom subclass of :class:`Connection` to create the connection with, + if not the default :class:`Connection` class. + + :param int cached_statements: + The number of statements that :mod:`!sqlite3` + should internally cache for this connection, to avoid parsing overhead. + By default, 128 statements. + + :param bool uri: + If set to ``True``, *database* is interpreted as a + :abbr:`URI (Uniform Resource Identifier)` with a file path + and an optional query string. + The scheme part *must* be ``"file:"``, + and the path can be relative or absolute. + The query string allows passing parameters to SQLite, + enabling various :ref:`sqlite3-uri-tricks`. + + :rtype: Connection + + .. audit-event:: sqlite3.connect database sqlite3.connect + .. audit-event:: sqlite3.connect/handle connection_handle sqlite3.connect + + .. versionadded:: 3.4 + The *uri* parameter. + + .. versionchanged:: 3.7 + *database* can now also be a :term:`path-like object`, not only a string. + + .. versionadded:: 3.10 + The ``sqlite3.connect/handle`` auditing event. + +.. function:: complete_statement(statement) + + Return ``True`` if the string *statement* appears to contain + one or more complete SQL statements. + No syntactic verification or parsing of any kind is performed, + other than checking that there are no unclosed string literals + and the statement is terminated by a semicolon. + + For example: + + .. doctest:: + + >>> sqlite3.complete_statement("SELECT foo FROM bar;") + True + >>> sqlite3.complete_statement("SELECT foo") + False + + This function may be useful during command-line input + to determine if the entered text seems to form a complete SQL statement, + or if additional input is needed before calling :meth:`~Cursor.execute`. + + See :func:`!runsource` in :source:`Lib/sqlite3/__main__.py` + for real-world use. + +.. function:: enable_callback_tracebacks(flag, /) + + Enable or disable callback tracebacks. + By default you will not get any tracebacks in user-defined functions, + aggregates, converters, authorizer callbacks etc. If you want to debug them, + you can call this function with *flag* set to ``True``. Afterwards, you + will get tracebacks from callbacks on :data:`sys.stderr`. Use ``False`` + to disable the feature again. + + Register an :func:`unraisable hook handler ` for an + improved debug experience: + + .. testsetup:: sqlite3.trace + + import sqlite3 + + .. doctest:: sqlite3.trace + + >>> sqlite3.enable_callback_tracebacks(True) + >>> con = sqlite3.connect(":memory:") + >>> def evil_trace(stmt): + ... 5/0 + >>> con.set_trace_callback(evil_trace) + >>> def debug(unraisable): + ... print(f"{unraisable.exc_value!r} in callback {unraisable.object.__name__}") + ... print(f"Error message: {unraisable.err_msg}") + >>> import sys + >>> sys.unraisablehook = debug + >>> cur = con.execute("SELECT 1") + ZeroDivisionError('division by zero') in callback evil_trace + Error message: None + +.. function:: register_adapter(type, adapter, /) + + Register an *adapter* callable to adapt the Python type *type* into an + SQLite type. + The adapter is called with a Python object of type *type* as its sole + argument, and must return a value of a + :ref:`type that SQLite natively understands `. + +.. function:: register_converter(typename, converter, /) + + Register the *converter* callable to convert SQLite objects of type + *typename* into a Python object of a specific type. + The converter is invoked for all SQLite values of type *typename*; + it is passed a :class:`bytes` object and should return an object of the + desired Python type. + Consult the parameter *detect_types* of + :func:`connect` for information regarding how type detection works. + + Note: *typename* and the name of the type in your query are matched + case-insensitively. + + +.. _sqlite3-module-constants: + +Module constants +^^^^^^^^^^^^^^^^ + +.. data:: PARSE_COLNAMES + + Pass this flag value to the *detect_types* parameter of + :func:`connect` to look up a converter function by + using the type name, parsed from the query column name, + as the converter dictionary key. + The type name must be wrapped in square brackets (``[]``). + .. code-block:: sql + + SELECT p as "p [point]" FROM test; ! will look up converter "point" + + This flag may be combined with :const:`PARSE_DECLTYPES` using the ``|`` + (bitwise or) operator. + +.. data:: PARSE_DECLTYPES + + Pass this flag value to the *detect_types* parameter of + :func:`connect` to look up a converter function using + the declared types for each column. + The types are declared when the database table is created. + :mod:`!sqlite3` will look up a converter function using the first word of the + declared type as the converter dictionary key. + For example: + + .. code-block:: sql + + CREATE TABLE test( + i integer primary key, ! will look up a converter named "integer" + p point, ! will look up a converter named "point" + n number(10) ! will look up a converter named "number" + ) + + This flag may be combined with :const:`PARSE_COLNAMES` using the ``|`` + (bitwise or) operator. + +.. data:: SQLITE_OK + SQLITE_DENY + SQLITE_IGNORE + + Flags that should be returned by the *authorizer_callback* callable + passed to :meth:`Connection.set_authorizer`, to indicate whether: + + * Access is allowed (:const:`!SQLITE_OK`), + * The SQL statement should be aborted with an error (:const:`!SQLITE_DENY`) + * The column should be treated as a ``NULL`` value (:const:`!SQLITE_IGNORE`) .. data:: apilevel @@ -127,42 +473,29 @@ Module functions and constants .. data:: paramstyle String constant stating the type of parameter marker formatting expected by - the :mod:`sqlite3` module. Required by the DB-API. Hard-coded to + the :mod:`!sqlite3` module. Required by the DB-API. Hard-coded to ``"qmark"``. .. note:: - The :mod:`sqlite3` module supports both ``qmark`` and ``numeric`` DB-API + The :mod:`!sqlite3` module supports both ``qmark`` and ``numeric`` DB-API parameter styles, because that is what the underlying SQLite library supports. However, the DB-API does not allow multiple values for the ``paramstyle`` attribute. -.. data:: version - - The version number of this module, as a string. This is not the version of - the SQLite library. - - -.. data:: version_info - - The version number of this module, as a tuple of integers. This is not the - version of the SQLite library. - - .. data:: sqlite_version - The version number of the run-time SQLite library, as a string. - + Version number of the runtime SQLite library as a :class:`string `. .. data:: sqlite_version_info - The version number of the run-time SQLite library, as a tuple of integers. - + Version number of the runtime SQLite library as a :class:`tuple` of + :class:`integers `. .. data:: threadsafety Integer constant required by the DB-API 2.0, stating the level of thread - safety the :mod:`sqlite3` module supports. This attribute is set based on + safety the :mod:`!sqlite3` module supports. This attribute is set based on the default `threading mode `_ the underlying SQLite library is compiled with. The SQLite threading modes are: @@ -197,212 +530,80 @@ Module functions and constants .. versionchanged:: 3.11 Set *threadsafety* dynamically instead of hard-coding it to ``1``. -.. data:: PARSE_DECLTYPES - - This constant is meant to be used with the *detect_types* parameter of the - :func:`connect` function. - - Setting it makes the :mod:`sqlite3` module parse the declared type for each - column it returns. It will parse out the first word of the declared type, - i. e. for "integer primary key", it will parse out "integer", or for - "number(10)" it will parse out "number". Then for that column, it will look - into the converters dictionary and use the converter function registered for - that type there. - - -.. data:: PARSE_COLNAMES - - This constant is meant to be used with the *detect_types* parameter of the - :func:`connect` function. - - Setting this makes the SQLite interface parse the column name for each column it - returns. It will look for a string formed [mytype] in there, and then decide - that 'mytype' is the type of the column. It will try to find an entry of - 'mytype' in the converters dictionary and then use the converter function found - there to return the value. The column name found in :attr:`Cursor.description` - does not include the type, i. e. if you use something like - ``'as "Expiration date [datetime]"'`` in your SQL, then we will parse out - everything until the first ``'['`` for the column name and strip - the preceding space: the column name would simply be "Expiration date". - - -.. function:: connect(database[, timeout, detect_types, isolation_level, check_same_thread, factory, cached_statements, uri]) - - Opens a connection to the SQLite database file *database*. By default returns a - :class:`Connection` object, unless a custom *factory* is given. - - *database* is a :term:`path-like object` giving the pathname (absolute or - relative to the current working directory) of the database file to be opened. - You can use ``":memory:"`` to open a database connection to a database that - resides in RAM instead of on disk. - - When a database is accessed by multiple connections, and one of the processes - modifies the database, the SQLite database is locked until that transaction is - committed. The *timeout* parameter specifies how long the connection should wait - for the lock to go away until raising an exception. The default for the timeout - parameter is 5.0 (five seconds). - - For the *isolation_level* parameter, please see the - :attr:`~Connection.isolation_level` property of :class:`Connection` objects. - - SQLite natively supports only the types TEXT, INTEGER, REAL, BLOB and NULL. If - you want to use other types you must add support for them yourself. The - *detect_types* parameter and the using custom **converters** registered with the - module-level :func:`register_converter` function allow you to easily do that. - - *detect_types* defaults to 0 (i. e. off, no type detection), you can set it to - any combination of :const:`PARSE_DECLTYPES` and :const:`PARSE_COLNAMES` to turn - type detection on. Due to SQLite behaviour, types can't be detected for generated - fields (for example ``max(data)``), even when *detect_types* parameter is set. In - such case, the returned type is :class:`str`. - - By default, *check_same_thread* is :const:`True` and only the creating thread may - use the connection. If set :const:`False`, the returned connection may be shared - across multiple threads. When using multiple threads with the same connection - writing operations should be serialized by the user to avoid data corruption. - - By default, the :mod:`sqlite3` module uses its :class:`Connection` class for the - connect call. You can, however, subclass the :class:`Connection` class and make - :func:`connect` use your class instead by providing your class for the *factory* - parameter. - - Consult the section :ref:`sqlite3-types` of this manual for details. - - The :mod:`sqlite3` module internally uses a statement cache to avoid SQL parsing - overhead. If you want to explicitly set the number of statements that are cached - for the connection, you can set the *cached_statements* parameter. The currently - implemented default is to cache 128 statements. - - If *uri* is :const:`True`, *database* is interpreted as a - :abbr:`URI (Uniform Resource Identifier)` with a file path and an optional - query string. The scheme part *must* be ``"file:"``. The path can be a - relative or absolute file path. The query string allows us to pass - parameters to SQLite. Some useful URI tricks include:: - - # Open a database in read-only mode. - con = sqlite3.connect("file:template.db?mode=ro", uri=True) - - # Don't implicitly create a new database file if it does not already exist. - # Will raise sqlite3.OperationalError if unable to open a database file. - con = sqlite3.connect("file:nosuchdb.db?mode=rw", uri=True) - - # Create a shared named in-memory database. - con1 = sqlite3.connect("file:mem1?mode=memory&cache=shared", uri=True) - con2 = sqlite3.connect("file:mem1?mode=memory&cache=shared", uri=True) - con1.executescript("create table t(t); insert into t values(28);") - rows = con2.execute("select * from t").fetchall() - - More information about this feature, including a list of recognized - parameters, can be found in the - `SQLite URI documentation `_. - - .. audit-event:: sqlite3.connect database sqlite3.connect - .. audit-event:: sqlite3.connect/handle connection_handle sqlite3.connect - - .. versionchanged:: 3.4 - Added the *uri* parameter. - - .. versionchanged:: 3.7 - *database* can now also be a :term:`path-like object`, not only a string. - - .. versionchanged:: 3.10 - Added the ``sqlite3.connect/handle`` auditing event. - - -.. function:: register_converter(typename, callable) - - Registers a callable to convert a bytestring from the database into a custom - Python type. The callable will be invoked for all database values that are of - the type *typename*. Confer the parameter *detect_types* of the :func:`connect` - function for how the type detection works. Note that *typename* and the name of - the type in your query are matched in case-insensitive manner. - - -.. function:: register_adapter(type, callable) - - Registers a callable to convert the custom Python type *type* into one of - SQLite's supported types. The callable *callable* accepts as single parameter - the Python value, and must return a value of the following types: int, - float, str or bytes. - +.. data:: version -.. function:: complete_statement(sql) + Version number of this module as a :class:`string `. + This is not the version of the SQLite library. - Returns :const:`True` if the string *sql* contains one or more complete SQL - statements terminated by semicolons. It does not verify that the SQL is - syntactically correct, only that there are no unclosed string literals and the - statement is terminated by a semicolon. + .. deprecated-removed:: 3.12 3.14 + This constant used to reflect the version number of the ``pysqlite`` + package, a third-party library which used to upstream changes to + :mod:`!sqlite3`. Today, it carries no meaning or practical value. - This can be used to build a shell for SQLite, as in the following example: +.. data:: version_info + Version number of this module as a :class:`tuple` of :class:`integers `. + This is not the version of the SQLite library. - .. literalinclude:: ../includes/sqlite3/complete_statement.py + .. deprecated-removed:: 3.12 3.14 + This constant used to reflect the version number of the ``pysqlite`` + package, a third-party library which used to upstream changes to + :mod:`!sqlite3`. Today, it carries no meaning or practical value. -.. function:: enable_callback_tracebacks(flag) +.. _sqlite3-connection-objects: - By default you will not get any tracebacks in user-defined functions, - aggregates, converters, authorizer callbacks etc. If you want to debug them, - you can call this function with *flag* set to :const:`True`. Afterwards, you - will get tracebacks from callbacks on :data:`sys.stderr`. Use :const:`False` - to disable the feature again. +Connection objects +^^^^^^^^^^^^^^^^^^ - Register an :func:`unraisable hook handler ` for an - improved debug experience:: +.. class:: Connection - >>> import sqlite3 - >>> sqlite3.enable_callback_tracebacks(True) - >>> cx = sqlite3.connect(":memory:") - >>> cx.set_trace_callback(lambda stmt: 5/0) - >>> cx.execute("select 1") - Exception ignored in: at 0x10b4e3ee0> - Traceback (most recent call last): - File "", line 1, in - ZeroDivisionError: division by zero - >>> import sys - >>> sys.unraisablehook = lambda unraisable: print(unraisable) - >>> cx.execute("select 1") - UnraisableHookArgs(exc_type=, exc_value=ZeroDivisionError('division by zero'), exc_traceback=, err_msg=None, object= at 0x10b4e3ee0>) - + Each open SQLite database is represented by a ``Connection`` object, + which is created using :func:`sqlite3.connect`. + Their main purpose is creating :class:`Cursor` objects, + and :ref:`sqlite3-controlling-transactions`. + .. seealso:: -.. _sqlite3-connection-objects: + * :ref:`sqlite3-connection-shortcuts` + * :ref:`sqlite3-connection-context-manager` -Connection Objects ------------------- + An SQLite database connection has the following attributes and methods: -.. class:: Connection + .. method:: cursor(factory=Cursor) - An SQLite database connection has the following attributes and methods: + Create and return a :class:`Cursor` object. + The cursor method accepts a single optional parameter *factory*. If + supplied, this must be a callable returning an instance of :class:`Cursor` + or its subclasses. - .. attribute:: isolation_level + .. method:: blobopen(table, column, row, /, \*, readonly=False, name="main") - Get or set the current default isolation level. :const:`None` for autocommit mode or - one of "DEFERRED", "IMMEDIATE" or "EXCLUSIVE". See section - :ref:`sqlite3-controlling-transactions` for a more detailed explanation. + Open a :class:`Blob` handle to an existing + :abbr:`BLOB (Binary Large OBject)`. - .. attribute:: in_transaction + :param str table: + The name of the table where the blob is located. - :const:`True` if a transaction is active (there are uncommitted changes), - :const:`False` otherwise. Read-only attribute. + :param str column: + The name of the column where the blob is located. - .. versionadded:: 3.2 + :param str row: + The name of the row where the blob is located. - .. method:: cursor(factory=Cursor) + :param bool readonly: + Set to ``True`` if the blob should be opened without write + permissions. + Defaults to ``False``. - The cursor method accepts a single optional parameter *factory*. If - supplied, this must be a callable returning an instance of :class:`Cursor` - or its subclasses. + :param str name: + The name of the database where the blob is located. + Defaults to ``"main"``. - .. method:: blobopen(table, column, row, /, *, readonly=False, name="main") + :raises OperationalError: + When trying to open a blob in a ``WITHOUT ROWID`` table. - Open a :class:`Blob` handle to the :abbr:`BLOB (Binary Large OBject)` - located in table name *table*, column name *column*, and row index *row* - of database *name*. - When *readonly* is :const:`True` the blob is opened without write - permissions. - Trying to open a blob in a ``WITHOUT ROWID`` table will raise - :exc:`OperationalError`. + :rtype: Blob .. note:: @@ -413,108 +614,221 @@ Connection Objects .. method:: commit() - This method commits the current transaction. If you don't call this method, - anything you did since the last call to ``commit()`` is not visible from - other database connections. If you wonder why you don't see the data you've - written to the database, please check you didn't forget to call this method. + Commit any pending transaction to the database. + If there is no open transaction, this method is a no-op. .. method:: rollback() - This method rolls back any changes to the database since the last call to - :meth:`commit`. + Roll back to the start of any pending transaction. + If there is no open transaction, this method is a no-op. .. method:: close() - This closes the database connection. Note that this does not automatically - call :meth:`commit`. If you just close your database connection without - calling :meth:`commit` first, your changes will be lost! + Close the database connection. + Any pending transaction is not committed implicitly; + make sure to :meth:`commit` before closing + to avoid losing pending changes. - .. method:: execute(sql[, parameters]) + .. method:: execute(sql, parameters=(), /) Create a new :class:`Cursor` object and call :meth:`~Cursor.execute` on it with the given *sql* and *parameters*. Return the new cursor object. - .. method:: executemany(sql[, parameters]) + .. method:: executemany(sql, parameters, /) Create a new :class:`Cursor` object and call :meth:`~Cursor.executemany` on it with the given *sql* and *parameters*. Return the new cursor object. - .. method:: executescript(sql_script) + .. method:: executescript(sql_script, /) Create a new :class:`Cursor` object and call :meth:`~Cursor.executescript` on it with the given *sql_script*. Return the new cursor object. - .. method:: create_function(name, num_params, func, *, deterministic=False) + .. method:: create_function(name, narg, func, \*, deterministic=False) + + Create or remove a user-defined SQL function. + + :param str name: + The name of the SQL function. + + :param int narg: + The number of arguments the SQL function can accept. + If ``-1``, it may take any number of arguments. + + :param func: + A callable that is called when the SQL function is invoked. + The callable must return :ref:`a type natively supported by SQLite + `. + Set to ``None`` to remove an existing SQL function. + :type func: :term:`callback` | None - Creates a user-defined function that you can later use from within SQL - statements under the function name *name*. *num_params* is the number of - parameters the function accepts (if *num_params* is -1, the function may - take any number of arguments), and *func* is a Python callable that is - called as the SQL function. If *deterministic* is true, the created function - is marked as `deterministic `_, which - allows SQLite to perform additional optimizations. This flag is supported by - SQLite 3.8.3 or higher, :exc:`NotSupportedError` will be raised if used - with older versions. + :param bool deterministic: + If ``True``, the created SQL function is marked as + `deterministic `_, + which allows SQLite to perform additional optimizations. - The function can return any of the types supported by SQLite: bytes, str, int, - float and ``None``. + :raises NotSupportedError: + If *deterministic* is used with SQLite versions older than 3.8.3. - .. versionchanged:: 3.8 - The *deterministic* parameter was added. + .. versionadded:: 3.8 + The *deterministic* parameter. Example: - .. literalinclude:: ../includes/sqlite3/md5func.py + .. doctest:: + >>> import hashlib + >>> def md5sum(t): + ... return hashlib.md5(t).hexdigest() + >>> con = sqlite3.connect(":memory:") + >>> con.create_function("md5", 1, md5sum) + >>> for row in con.execute("SELECT md5(?)", (b"foo",)): + ... print(row) + ('acbd18db4cc2f85cedef654fccc4a4d8',) + + + .. method:: create_aggregate(name, /, n_arg, aggregate_class) + + Create or remove a user-defined SQL aggregate function. - .. method:: create_aggregate(name, num_params, aggregate_class) + :param str name: + The name of the SQL aggregate function. - Creates a user-defined aggregate function. + :param int n_arg: + The number of arguments the SQL aggregate function can accept. + If ``-1``, it may take any number of arguments. - The aggregate class must implement a ``step`` method, which accepts the number - of parameters *num_params* (if *num_params* is -1, the function may take - any number of arguments), and a ``finalize`` method which will return the - final result of the aggregate. + :param aggregate_class: + A class must implement the following methods: - The ``finalize`` method can return any of the types supported by SQLite: - bytes, str, int, float and ``None``. + * ``step()``: Add a row to the aggregate. + * ``finalize()``: Return the final result of the aggregate as + :ref:`a type natively supported by SQLite `. + + The number of arguments that the ``step()`` method must accept + is controlled by *n_arg*. + + Set to ``None`` to remove an existing SQL aggregate function. + :type aggregate_class: :term:`class` | None Example: - .. literalinclude:: ../includes/sqlite3/mysumaggr.py + .. testcode:: + + class MySum: + def __init__(self): + self.count = 0 + + def step(self, value): + self.count += value + + def finalize(self): + return self.count + + con = sqlite3.connect(":memory:") + con.create_aggregate("mysum", 1, MySum) + cur = con.execute("CREATE TABLE test(i)") + cur.execute("INSERT INTO test(i) VALUES(1)") + cur.execute("INSERT INTO test(i) VALUES(2)") + cur.execute("SELECT mysum(i) FROM test") + print(cur.fetchone()[0]) + + con.close() + + .. testoutput:: + :hide: + + 3 .. method:: create_window_function(name, num_params, aggregate_class, /) - Creates user-defined aggregate window function *name*. + Create or remove a user-defined aggregate window function. + + :param str name: + The name of the SQL aggregate window function to create or remove. - *aggregate_class* must implement the following methods: + :param int num_params: + The number of arguments the SQL aggregate window function can accept. + If ``-1``, it may take any number of arguments. - * ``step``: adds a row to the current window - * ``value``: returns the current value of the aggregate - * ``inverse``: removes a row from the current window - * ``finalize``: returns the final value of the aggregate + :param aggregate_class: + A class that must implement the following methods: - ``step`` and ``value`` accept *num_params* number of parameters, - unless *num_params* is ``-1``, in which case they may take any number of - arguments. ``finalize`` and ``value`` can return any of the types - supported by SQLite: - :class:`bytes`, :class:`str`, :class:`int`, :class:`float`, and - :const:`None`. Call :meth:`create_window_function` with - *aggregate_class* set to :const:`None` to clear window function *name*. + * ``step()``: Add a row to the current window. + * ``value()``: Return the current value of the aggregate. + * ``inverse()``: Remove a row from the current window. + * ``finalize()``: Return the final result of the aggregate as + :ref:`a type natively supported by SQLite `. - Aggregate window functions are supported by SQLite 3.25.0 and higher. - :exc:`NotSupportedError` will be raised if used with older versions. + The number of arguments that the ``step()`` and ``value()`` methods + must accept is controlled by *num_params*. + + Set to ``None`` to remove an existing SQL aggregate window function. + + :raises NotSupportedError: + If used with a version of SQLite older than 3.25.0, + which does not support aggregate window functions. + + :type aggregate_class: :term:`class` | None .. versionadded:: 3.11 Example: - .. literalinclude:: ../includes/sqlite3/sumintwindow.py + .. testcode:: + + # Example taken from https://www.sqlite.org/windowfunctions.html#udfwinfunc + class WindowSumInt: + def __init__(self): + self.count = 0 + + def step(self, value): + """Add a row to the current window.""" + self.count += value + + def value(self): + """Return the current value of the aggregate.""" + return self.count + + def inverse(self, value): + """Remove a row from the current window.""" + self.count -= value + + def finalize(self): + """Return the final value of the aggregate. + Any clean-up actions should be placed here. + """ + return self.count + + + con = sqlite3.connect(":memory:") + cur = con.execute("CREATE TABLE test(x, y)") + values = [ + ("a", 4), + ("b", 5), + ("c", 3), + ("d", 8), + ("e", 1), + ] + cur.executemany("INSERT INTO test VALUES(?, ?)", values) + con.create_window_function("sumint", 1, WindowSumInt) + cur.execute(""" + SELECT x, sumint(y) OVER ( + ORDER BY x ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING + ) AS sum_y + FROM test ORDER BY x + """) + print(cur.fetchall()) + + .. testoutput:: + :hide: + + [('a', 9), ('b', 12), ('c', 16), ('d', 12), ('e', 9)] .. method:: create_collation(name, callable) @@ -528,9 +842,33 @@ Connection Objects The following example shows a reverse sorting collation: - .. literalinclude:: ../includes/sqlite3/collation_reverse.py + .. testcode:: + + def collate_reverse(string1, string2): + if string1 == string2: + return 0 + elif string1 < string2: + return 1 + else: + return -1 + + con = sqlite3.connect(":memory:") + con.create_collation("reverse", collate_reverse) + + cur = con.execute("CREATE TABLE test(x)") + cur.executemany("INSERT INTO test(x) VALUES(?)", [("a",), ("b",)]) + cur.execute("SELECT x FROM test ORDER BY x COLLATE reverse") + for row in cur: + print(row) + con.close() + + .. testoutput:: + :hide: + + ('b',) + ('a',) - Remove a collation function by setting *callable* to :const:`None`. + Remove a collation function by setting *callable* to ``None``. .. versionchanged:: 3.11 The collation name can contain any Unicode character. Earlier, only @@ -539,66 +877,65 @@ Connection Objects .. method:: interrupt() - You can call this method from a different thread to abort any queries that might - be executing on the connection. The query will then abort and the caller will - get an exception. + Call this method from a different thread to abort any queries that might + be executing on the connection. + Aborted queries will raise an exception. .. method:: set_authorizer(authorizer_callback) - This routine registers a callback. The callback is invoked for each attempt to + Register callable *authorizer_callback* to be invoked for each attempt to access a column of a table in the database. The callback should return - :const:`SQLITE_OK` if access is allowed, :const:`SQLITE_DENY` if the entire SQL - statement should be aborted with an error and :const:`SQLITE_IGNORE` if the - column should be treated as a NULL value. These constants are available in the - :mod:`sqlite3` module. + one of :const:`SQLITE_OK`, :const:`SQLITE_DENY`, or :const:`SQLITE_IGNORE` + to signal how access to the column should be handled + by the underlying SQLite library. The first argument to the callback signifies what kind of operation is to be - authorized. The second and third argument will be arguments or :const:`None` + authorized. The second and third argument will be arguments or ``None`` depending on the first argument. The 4th argument is the name of the database ("main", "temp", etc.) if applicable. The 5th argument is the name of the inner-most trigger or view that is responsible for the access attempt or - :const:`None` if this access attempt is directly from input SQL code. + ``None`` if this access attempt is directly from input SQL code. Please consult the SQLite documentation about the possible values for the first argument and the meaning of the second and third argument depending on the first - one. All necessary constants are available in the :mod:`sqlite3` module. + one. All necessary constants are available in the :mod:`!sqlite3` module. - Passing :const:`None` as *authorizer_callback* will disable the authorizer. + Passing ``None`` as *authorizer_callback* will disable the authorizer. .. versionchanged:: 3.11 - Added support for disabling the authorizer using :const:`None`. + Added support for disabling the authorizer using ``None``. - .. method:: set_progress_handler(handler, n) + .. method:: set_progress_handler(progress_handler, n) - This routine registers a callback. The callback is invoked for every *n* + Register callable *progress_handler* to be invoked for every *n* instructions of the SQLite virtual machine. This is useful if you want to get called from SQLite during long-running operations, for example to update a GUI. If you want to clear any previously installed progress handler, call the - method with :const:`None` for *handler*. + method with ``None`` for *progress_handler*. Returning a non-zero value from the handler function will terminate the - currently executing query and cause it to raise an :exc:`OperationalError` + currently executing query and cause it to raise a :exc:`DatabaseError` exception. .. method:: set_trace_callback(trace_callback) - Registers *trace_callback* to be called for each SQL statement that is - actually executed by the SQLite backend. + Register callable *trace_callback* to be invoked for each SQL statement + that is actually executed by the SQLite backend. The only argument passed to the callback is the statement (as :class:`str`) that is being executed. The return value of the callback is ignored. Note that the backend does not only run statements passed to the :meth:`Cursor.execute` methods. Other sources include the :ref:`transaction management ` of the - sqlite3 module and the execution of triggers defined in the current + :mod:`!sqlite3` module and the execution of triggers defined in the current database. - Passing :const:`None` as *trace_callback* will disable the trace callback. + Passing ``None`` as *trace_callback* will disable the trace callback. .. note:: Exceptions raised in the trace callback are not propagated. As a @@ -609,195 +946,242 @@ Connection Objects .. versionadded:: 3.3 - .. method:: enable_load_extension(enabled) + .. method:: enable_load_extension(enabled, /) - This routine allows/disallows the SQLite engine to load SQLite extensions - from shared libraries. SQLite extensions can define new functions, + Enable the SQLite engine to load SQLite extensions from shared libraries + if *enabled* is ``True``; + else, disallow loading SQLite extensions. + SQLite extensions can define new functions, aggregates or whole new virtual table implementations. One well-known extension is the fulltext-search extension distributed with SQLite. - Loadable extensions are disabled by default. See [#f1]_. - - .. audit-event:: sqlite3.enable_load_extension connection,enabled sqlite3.enable_load_extension - - .. versionadded:: 3.2 - - .. versionchanged:: 3.10 - Added the ``sqlite3.enable_load_extension`` auditing event. - - .. literalinclude:: ../includes/sqlite3/load_extension.py - - .. method:: load_extension(path) - - This routine loads an SQLite extension from a shared library. You have to - enable extension loading with :meth:`enable_load_extension` before you can - use this routine. + .. note:: - Loadable extensions are disabled by default. See [#f1]_. + The :mod:`!sqlite3` module is not built with loadable extension support by + default, because some platforms (notably macOS) have SQLite + libraries which are compiled without this feature. + To get loadable extension support, + you must pass the :option:`--enable-loadable-sqlite-extensions` option + to :program:`configure`. - .. audit-event:: sqlite3.load_extension connection,path sqlite3.load_extension + .. audit-event:: sqlite3.enable_load_extension connection,enabled sqlite3.Connection.enable_load_extension .. versionadded:: 3.2 .. versionchanged:: 3.10 - Added the ``sqlite3.load_extension`` auditing event. + Added the ``sqlite3.enable_load_extension`` auditing event. - .. attribute:: row_factory + .. testsetup:: sqlite3.loadext - You can change this attribute to a callable that accepts the cursor and the - original row as a tuple and will return the real result row. This way, you can - implement more advanced ways of returning results, such as returning an object - that can also access columns by name. + import sqlite3 + con = sqlite3.connect(":memory:") - Example: + .. testcode:: sqlite3.loadext + :skipif: True # not testable at the moment - .. literalinclude:: ../includes/sqlite3/row_factory.py + con.enable_load_extension(True) - If returning a tuple doesn't suffice and you want name-based access to - columns, you should consider setting :attr:`row_factory` to the - highly-optimized :class:`sqlite3.Row` type. :class:`Row` provides both - index-based and case-insensitive name-based access to columns with almost no - memory overhead. It will probably be better than your own custom - dictionary-based approach or even a db_row based solution. + # Load the fulltext search extension + con.execute("select load_extension('./fts3.so')") - .. XXX what's a db_row-based solution? + # alternatively you can load the extension using an API call: + # con.load_extension("./fts3.so") + # disable extension loading again + con.enable_load_extension(False) - .. attribute:: text_factory + # example from SQLite wiki + con.execute("CREATE VIRTUAL TABLE recipe USING fts3(name, ingredients)") + con.executescript(""" + INSERT INTO recipe (name, ingredients) VALUES('broccoli stew', 'broccoli peppers cheese tomatoes'); + INSERT INTO recipe (name, ingredients) VALUES('pumpkin stew', 'pumpkin onions garlic celery'); + INSERT INTO recipe (name, ingredients) VALUES('broccoli pie', 'broccoli cheese onions flour'); + INSERT INTO recipe (name, ingredients) VALUES('pumpkin pie', 'pumpkin sugar flour butter'); + """) + for row in con.execute("SELECT rowid, name, ingredients FROM recipe WHERE name MATCH 'pie'"): + print(row) - Using this attribute you can control what objects are returned for the ``TEXT`` - data type. By default, this attribute is set to :class:`str` and the - :mod:`sqlite3` module will return :class:`str` objects for ``TEXT``. - If you want to return :class:`bytes` instead, you can set it to :class:`bytes`. + con.close() - You can also set it to any other callable that accepts a single bytestring - parameter and returns the resulting object. + .. testoutput:: sqlite3.loadext + :hide: - See the following example code for illustration: + (2, 'broccoli pie', 'broccoli cheese onions flour') + (3, 'pumpkin pie', 'pumpkin sugar flour butter') - .. literalinclude:: ../includes/sqlite3/text_factory.py + .. method:: load_extension(path, /) + Load an SQLite extension from a shared library located at *path*. + Enable extension loading with :meth:`enable_load_extension` before + calling this method. - .. attribute:: total_changes + .. audit-event:: sqlite3.load_extension connection,path sqlite3.Connection.load_extension - Returns the total number of database rows that have been modified, inserted, or - deleted since the database connection was opened. + .. versionadded:: 3.2 + .. versionchanged:: 3.10 + Added the ``sqlite3.load_extension`` auditing event. .. method:: iterdump - Returns an iterator to dump the database in an SQL text format. Useful when - saving an in-memory database for later restoration. This function provides - the same capabilities as the :kbd:`.dump` command in the :program:`sqlite3` - shell. + Return an :term:`iterator` to dump the database as SQL source code. + Useful when saving an in-memory database for later restoration. + Similar to the ``.dump`` command in the :program:`sqlite3` shell. - Example:: + Example: - # Convert file existing_db.db to SQL dump file dump.sql - import sqlite3 + .. testcode:: - con = sqlite3.connect('existing_db.db') + # Convert file example.db to SQL dump file dump.sql + con = sqlite3.connect('example.db') with open('dump.sql', 'w') as f: for line in con.iterdump(): f.write('%s\n' % line) con.close() - .. method:: backup(target, *, pages=-1, progress=None, name="main", sleep=0.250) + .. method:: backup(target, \*, pages=-1, progress=None, name="main", sleep=0.250) - This method makes a backup of an SQLite database even while it's being accessed - by other clients, or concurrently by the same connection. The copy will be - written into the mandatory argument *target*, that must be another - :class:`Connection` instance. + Create a backup of an SQLite database. - By default, or when *pages* is either ``0`` or a negative integer, the entire - database is copied in a single step; otherwise the method performs a loop - copying up to *pages* pages at a time. + Works even if the database is being accessed by other clients + or concurrently by the same connection. - If *progress* is specified, it must either be ``None`` or a callable object that - will be executed at each iteration with three integer arguments, respectively - the *status* of the last iteration, the *remaining* number of pages still to be - copied and the *total* number of pages. + :param Connection target: + The database connection to save the backup to. - The *name* argument specifies the database name that will be copied: it must be - a string containing either ``"main"``, the default, to indicate the main - database, ``"temp"`` to indicate the temporary database or the name specified - after the ``AS`` keyword in an ``ATTACH DATABASE`` statement for an attached - database. + :param int pages: + The number of pages to copy at a time. + If equal to or less than ``0``, + the entire database is copied in a single step. + Defaults to ``-1``. - The *sleep* argument specifies the number of seconds to sleep by between - successive attempts to backup remaining pages, can be specified either as an - integer or a floating point value. + :param progress: + If set to a callable, it is invoked with three integer arguments for + every backup iteration: + the *status* of the last iteration, + the *remaining* number of pages still to be copied, + and the *total* number of pages. + Defaults to ``None``. + :type progress: :term:`callback` | None - Example 1, copy an existing database into another:: + :param str name: + The name of the database to back up. + Either ``"main"`` (the default) for the main database, + ``"temp"`` for the temporary database, + or the name of a custom database as attached using the + ``ATTACH DATABASE`` SQL statement. - import sqlite3 + :param float sleep: + The number of seconds to sleep between successive attempts + to back up remaining pages. + + Example 1, copy an existing database into another: + + .. testcode:: def progress(status, remaining, total): print(f'Copied {total-remaining} of {total} pages...') - con = sqlite3.connect('existing_db.db') - bck = sqlite3.connect('backup.db') - with bck: - con.backup(bck, pages=1, progress=progress) - bck.close() - con.close() + src = sqlite3.connect('example.db') + dst = sqlite3.connect('backup.db') + with dst: + src.backup(dst, pages=1, progress=progress) + dst.close() + src.close() - Example 2, copy an existing database into a transient copy:: + .. testoutput:: + :hide: - import sqlite3 + Copied 0 of 0 pages... - source = sqlite3.connect('existing_db.db') - dest = sqlite3.connect(':memory:') - source.backup(dest) + Example 2, copy an existing database into a transient copy: - .. versionadded:: 3.7 + .. testcode:: + src = sqlite3.connect('example.db') + dst = sqlite3.connect(':memory:') + src.backup(dst) + + .. versionadded:: 3.7 .. method:: getlimit(category, /) - Get a connection run-time limit. *category* is the limit category to be - queried. + Get a connection runtime limit. + + :param int category: + The `SQLite limit category`_ to be queried. + + :rtype: int - Example, query the maximum length of an SQL statement:: + :raises ProgrammingError: + If *category* is not recognised by the underlying SQLite library. + + Example, query the maximum length of an SQL statement + for :class:`Connection` ``con`` (the default is 1000000000): + + .. testsetup:: sqlite3.limits import sqlite3 con = sqlite3.connect(":memory:") - lim = con.getlimit(sqlite3.SQLITE_LIMIT_SQL_LENGTH) - print(f"SQLITE_LIMIT_SQL_LENGTH={lim}") + con.setlimit(sqlite3.SQLITE_LIMIT_SQL_LENGTH, 1_000_000_000) + con.setlimit(sqlite3.SQLITE_LIMIT_ATTACHED, 10) + + .. doctest:: sqlite3.limits + + >>> con.getlimit(sqlite3.SQLITE_LIMIT_SQL_LENGTH) + 1000000000 .. versionadded:: 3.11 .. method:: setlimit(category, limit, /) - Set a connection run-time limit. *category* is the limit category to be - set. *limit* is the new limit. If the new limit is a negative number, the - limit is unchanged. - + Set a connection runtime limit. Attempts to increase a limit above its hard upper bound are silently truncated to the hard upper bound. Regardless of whether or not the limit was changed, the prior value of the limit is returned. - Example, limit the number of attached databases to 1:: + :param int category: + The `SQLite limit category`_ to be set. - import sqlite3 - con = sqlite3.connect(":memory:") - con.setlimit(sqlite3.SQLITE_LIMIT_ATTACHED, 1) + :param int limit: + The value of the new limit. + If negative, the current limit is unchanged. - .. versionadded:: 3.11 + :rtype: int + :raises ProgrammingError: + If *category* is not recognised by the underlying SQLite library. - .. method:: serialize(*, name="main") + Example, limit the number of attached databases to 1 + for :class:`Connection` ``con`` (the default limit is 10): - This method serializes a database into a :class:`bytes` object. For an - ordinary on-disk database file, the serialization is just a copy of the - disk file. For an in-memory database or a "temp" database, the - serialization is the same sequence of bytes which would be written to - disk if that database were backed up to disk. + .. doctest:: sqlite3.limits - *name* is the database to be serialized, and defaults to the main - database. + >>> con.setlimit(sqlite3.SQLITE_LIMIT_ATTACHED, 1) + 10 + >>> con.getlimit(sqlite3.SQLITE_LIMIT_ATTACHED) + 1 + + .. versionadded:: 3.11 + + .. _SQLite limit category: https://www.sqlite.org/c3ref/c_limit_attached.html + + + .. method:: serialize(\*, name="main") + + Serialize a database into a :class:`bytes` object. For an + ordinary on-disk database file, the serialization is just a copy of the + disk file. For an in-memory database or a "temp" database, the + serialization is the same sequence of bytes which would be written to + disk if that database were backed up to disk. + + :param str name: + The database name to be serialized. + Defaults to ``"main"``. + + :rtype: bytes .. note:: @@ -807,16 +1191,30 @@ Connection Objects .. versionadded:: 3.11 - .. method:: deserialize(data, /, *, name="main") + .. method:: deserialize(data, /, \*, name="main") + Deserialize a :meth:`serialized ` database into a + :class:`Connection`. This method causes the database connection to disconnect from database *name*, and reopen *name* as an in-memory database based on the - serialization contained in *data*. Deserialization will raise - :exc:`OperationalError` if the database connection is currently involved - in a read transaction or a backup operation. :exc:`DataError` will be - raised if ``len(data)`` is larger than ``2**63 - 1``, and - :exc:`DatabaseError` will be raised if *data* does not contain a valid - SQLite database. + serialization contained in *data*. + + :param bytes data: + A serialized database. + + :param str name: + The database name to deserialize into. + Defaults to ``"main"``. + + :raises OperationalError: + If the database connection is currently involved in a read + transaction or a backup operation. + + :raises DatabaseError: + If *data* does not contain a valid SQLite database. + + :raises OverflowError: + If :func:`len(data) ` is larger than ``2**63 - 1``. .. note:: @@ -825,11 +1223,137 @@ Connection Objects .. versionadded:: 3.11 + .. attribute:: in_transaction + + This read-only attribute corresponds to the low-level SQLite + `autocommit mode`_. + + ``True`` if a transaction is active (there are uncommitted changes), + ``False`` otherwise. + + .. versionadded:: 3.2 + + .. attribute:: isolation_level + + This attribute controls the :ref:`transaction handling + ` performed by :mod:`!sqlite3`. + If set to ``None``, transactions are never implicitly opened. + If set to one of ``"DEFERRED"``, ``"IMMEDIATE"``, or ``"EXCLUSIVE"``, + corresponding to the underlying `SQLite transaction behaviour`_, + implicit :ref:`transaction management + ` is performed. + + If not overridden by the *isolation_level* parameter of :func:`connect`, + the default is ``""``, which is an alias for ``"DEFERRED"``. + + .. attribute:: row_factory + + A callable that accepts two arguments, + a :class:`Cursor` object and the raw row results as a :class:`tuple`, + and returns a custom object representing an SQLite row. + + Example: + + .. doctest:: + + >>> def dict_factory(cursor, row): + ... col_names = [col[0] for col in cursor.description] + ... return {key: value for key, value in zip(col_names, row)} + >>> con = sqlite3.connect(":memory:") + >>> con.row_factory = dict_factory + >>> for row in con.execute("SELECT 1 AS a, 2 AS b"): + ... print(row) + {'a': 1, 'b': 2} + + If returning a tuple doesn't suffice and you want name-based access to + columns, you should consider setting :attr:`row_factory` to the + highly optimized :class:`sqlite3.Row` type. :class:`Row` provides both + index-based and case-insensitive name-based access to columns with almost no + memory overhead. It will probably be better than your own custom + dictionary-based approach or even a db_row based solution. + + .. XXX what's a db_row-based solution? + + .. attribute:: text_factory + + A callable that accepts a :class:`bytes` parameter and returns a text + representation of it. + The callable is invoked for SQLite values with the ``TEXT`` data type. + By default, this attribute is set to :class:`str`. + If you want to return ``bytes`` instead, set *text_factory* to ``bytes``. + + Example: + + .. testcode:: + + con = sqlite3.connect(":memory:") + cur = con.cursor() + + AUSTRIA = "Österreich" + + # by default, rows are returned as str + cur.execute("SELECT ?", (AUSTRIA,)) + row = cur.fetchone() + assert row[0] == AUSTRIA + + # but we can make sqlite3 always return bytestrings ... + con.text_factory = bytes + cur.execute("SELECT ?", (AUSTRIA,)) + row = cur.fetchone() + assert type(row[0]) is bytes + # the bytestrings will be encoded in UTF-8, unless you stored garbage in the + # database ... + assert row[0] == AUSTRIA.encode("utf-8") + + # we can also implement a custom text_factory ... + # here we implement one that appends "foo" to all strings + con.text_factory = lambda x: x.decode("utf-8") + "foo" + cur.execute("SELECT ?", ("bar",)) + row = cur.fetchone() + assert row[0] == "barfoo" + + con.close() + + .. attribute:: total_changes + + Return the total number of database rows that have been modified, inserted, or + deleted since the database connection was opened. + .. _sqlite3-cursor-objects: -Cursor Objects --------------- +Cursor objects +^^^^^^^^^^^^^^ + + A ``Cursor`` object represents a `database cursor`_ + which is used to execute SQL statements, + and manage the context of a fetch operation. + Cursors are created using :meth:`Connection.cursor`, + or by using any of the :ref:`connection shortcut methods + `. + + Cursor objects are :term:`iterators `, + meaning that if you :meth:`~Cursor.execute` a ``SELECT`` query, + you can simply iterate over the cursor to fetch the resulting rows: + + .. testsetup:: sqlite3.cursor + + import sqlite3 + con = sqlite3.connect(":memory:", isolation_level=None) + cur = con.execute("CREATE TABLE data(t)") + cur.execute("INSERT INTO data VALUES(1)") + + .. testcode:: sqlite3.cursor + + for row in cur.execute("SELECT t FROM data"): + print(row) + + .. testoutput:: sqlite3.cursor + :hide: + + (1,) + + .. _database cursor: https://en.wikipedia.org/wiki/Cursor_(databases) .. class:: Cursor @@ -838,61 +1362,83 @@ Cursor Objects .. index:: single: ? (question mark); in SQL statements .. index:: single: : (colon); in SQL statements - .. method:: execute(sql[, parameters]) + .. method:: execute(sql, parameters=(), /) - Executes an SQL statement. Values may be bound to the statement using - :ref:`placeholders `. + Execute SQL statement *sql*. + Bind values to the statement using :ref:`placeholders + ` that map to the :term:`sequence` or :class:`dict` + *parameters*. :meth:`execute` will only execute a single SQL statement. If you try to execute - more than one statement with it, it will raise a :exc:`.Warning`. Use + more than one statement with it, it will raise a :exc:`ProgrammingError`. Use :meth:`executescript` if you want to execute multiple SQL statements with one call. + If :attr:`~Connection.isolation_level` is not ``None``, + *sql* is an ``INSERT``, ``UPDATE``, ``DELETE``, or ``REPLACE`` statement, + and there is no open transaction, + a transaction is implicitly opened before executing *sql*. - .. method:: executemany(sql, seq_of_parameters) - Executes a :ref:`parameterized ` SQL command + .. method:: executemany(sql, parameters, /) + + Execute :ref:`parameterized ` SQL statement *sql* against all parameter sequences or mappings found in the sequence - *seq_of_parameters*. The :mod:`sqlite3` module also allows using an + *parameters*. It is also possible to use an :term:`iterator` yielding parameters instead of a sequence. + Uses the same implicit transaction handling as :meth:`~Cursor.execute`. - .. literalinclude:: ../includes/sqlite3/executemany_1.py - - Here's a shorter example using a :term:`generator`: + Example: - .. literalinclude:: ../includes/sqlite3/executemany_2.py + .. testcode:: sqlite3.cursor + rows = [ + ("row1",), + ("row2",), + ] + # cur is an sqlite3.Cursor object + cur.executemany("INSERT INTO data VALUES(?)", rows) - .. method:: executescript(sql_script) + .. method:: executescript(sql_script, /) - This is a nonstandard convenience method for executing multiple SQL statements - at once. It issues a ``COMMIT`` statement first, then executes the SQL script it - gets as a parameter. This method disregards :attr:`isolation_level`; any - transaction control must be added to *sql_script*. + Execute the SQL statements in *sql_script*. + If there is a pending transaction, + an implicit ``COMMIT`` statement is executed first. + No other implicit transaction control is performed; + any transaction control must be added to *sql_script*. - *sql_script* can be an instance of :class:`str`. + *sql_script* must be a :class:`string `. Example: - .. literalinclude:: ../includes/sqlite3/executescript.py + .. testcode:: sqlite3.cursor + + # cur is an sqlite3.Cursor object + cur.executescript(""" + BEGIN; + CREATE TABLE person(firstname, lastname, age); + CREATE TABLE book(title, author, published); + CREATE TABLE publisher(name, address); + COMMIT; + """) .. method:: fetchone() - Fetches the next row of a query result set, returning a single sequence, - or :const:`None` when no more data is available. + Return the next row of a query result set as a :class:`tuple`. + Return ``None`` if no more data is available. .. method:: fetchmany(size=cursor.arraysize) - Fetches the next set of rows of a query result, returning a list. An empty - list is returned when no more rows are available. + Return the next set of rows of a query result as a :class:`list`. + Return an empty list if no more rows are available. The number of rows to fetch per call is specified by the *size* parameter. - If it is not given, the cursor's arraysize determines the number of rows - to be fetched. The method should try to fetch as many rows as indicated by - the size parameter. If this is not possible due to the specified number of - rows not being available, fewer rows may be returned. + If *size* is not given, :attr:`arraysize` determines the number of rows + to be fetched. + If fewer than *size* rows are available, + as many rows as are available are returned. Note there are performance considerations involved with the *size* parameter. For optimal performance, it is usually best to use the arraysize attribute. @@ -901,9 +1447,10 @@ Cursor Objects .. method:: fetchall() - Fetches all (remaining) rows of a query result, returning a list. Note that - the cursor's arraysize attribute can affect the performance of this operation. - An empty list is returned when no rows are available. + Return all (remaining) rows of a query result as a :class:`list`. + Return an empty list if no rows are available. + Note that the :attr:`arraysize` attribute can affect the performance of + this operation. .. method:: close() @@ -912,37 +1459,49 @@ Cursor Objects The cursor will be unusable from this point forward; a :exc:`ProgrammingError` exception will be raised if any operation is attempted with the cursor. - .. method:: setinputsizes(sizes) + .. method:: setinputsizes(sizes, /) - Required by the DB-API. Does nothing in :mod:`sqlite3`. + Required by the DB-API. Does nothing in :mod:`!sqlite3`. - .. method:: setoutputsize(size [, column]) + .. method:: setoutputsize(size, column=None, /) - Required by the DB-API. Does nothing in :mod:`sqlite3`. + Required by the DB-API. Does nothing in :mod:`!sqlite3`. - .. attribute:: rowcount + .. attribute:: arraysize + + Read/write attribute that controls the number of rows returned by :meth:`fetchmany`. + The default value is 1 which means a single row would be fetched per call. + + .. attribute:: connection + + Read-only attribute that provides the SQLite database :class:`Connection` + belonging to the cursor. A :class:`Cursor` object created by + calling :meth:`con.cursor() ` will have a + :attr:`connection` attribute that refers to *con*: - Although the :class:`Cursor` class of the :mod:`sqlite3` module implements this - attribute, the database engine's own support for the determination of "rows - affected"/"rows selected" is quirky. + .. doctest:: - For :meth:`executemany` statements, the number of modifications are summed up - into :attr:`rowcount`. + >>> con = sqlite3.connect(":memory:") + >>> cur = con.cursor() + >>> cur.connection == con + True - As required by the Python DB API Spec, the :attr:`rowcount` attribute "is -1 in - case no ``executeXX()`` has been performed on the cursor or the rowcount of the - last operation is not determinable by the interface". This includes ``SELECT`` - statements because we cannot determine the number of rows a query produced - until all rows were fetched. + .. attribute:: description + + Read-only attribute that provides the column names of the last query. To + remain compatible with the Python DB API, it returns a 7-tuple for each + column where the last six items of each tuple are ``None``. + + It is set for ``SELECT`` statements without any matching rows as well. .. attribute:: lastrowid - This read-only attribute provides the row id of the last inserted row. It + Read-only attribute that provides the row id of the last inserted row. It is only updated after successful ``INSERT`` or ``REPLACE`` statements using the :meth:`execute` method. For other statements, after :meth:`executemany` or :meth:`executescript`, or if the insertion failed, the value of ``lastrowid`` is left unchanged. The initial value of - ``lastrowid`` is :const:`None`. + ``lastrowid`` is ``None``. .. note:: Inserts into ``WITHOUT ROWID`` tables are not recorded. @@ -950,99 +1509,63 @@ Cursor Objects .. versionchanged:: 3.6 Added support for the ``REPLACE`` statement. - .. attribute:: arraysize - - Read/write attribute that controls the number of rows returned by :meth:`fetchmany`. - The default value is 1 which means a single row would be fetched per call. - - .. attribute:: description - - This read-only attribute provides the column names of the last query. To - remain compatible with the Python DB API, it returns a 7-tuple for each - column where the last six items of each tuple are :const:`None`. - - It is set for ``SELECT`` statements without any matching rows as well. + .. attribute:: rowcount - .. attribute:: connection + Read-only attribute that provides the number of modified rows for + ``INSERT``, ``UPDATE``, ``DELETE``, and ``REPLACE`` statements; + is ``-1`` for other statements, + including :abbr:`CTE (Common Table Expression)` queries. + It is only updated by the :meth:`execute` and :meth:`executemany` methods. - This read-only attribute provides the SQLite database :class:`Connection` - used by the :class:`Cursor` object. A :class:`Cursor` object created by - calling :meth:`con.cursor() ` will have a - :attr:`connection` attribute that refers to *con*:: - >>> con = sqlite3.connect(":memory:") - >>> cur = con.cursor() - >>> cur.connection == con - True +.. The sqlite3.Row example used to be a how-to. It has now been incorporated + into the Row reference. We keep the anchor here in order not to break + existing links. +.. _sqlite3-columns-by-name: .. _sqlite3-row-objects: -Row Objects ------------ +Row objects +^^^^^^^^^^^ .. class:: Row - A :class:`Row` instance serves as a highly optimized + A :class:`!Row` instance serves as a highly optimized :attr:`~Connection.row_factory` for :class:`Connection` objects. - It tries to mimic a tuple in most of its features. + It supports iteration, equality testing, :func:`len`, + and :term:`mapping` access by column name and index. - It supports mapping access by column name and index, iteration, - representation, equality testing and :func:`len`. - - If two :class:`Row` objects have exactly the same columns and their - members are equal, they compare equal. + Two row objects compare equal if have equal columns and equal members. .. method:: keys - This method returns a list of column names. Immediately after a query, + Return a :class:`list` of column names as :class:`strings `. + Immediately after a query, it is the first member of each tuple in :attr:`Cursor.description`. .. versionchanged:: 3.5 Added support of slicing. -Let's assume we initialize a table as in the example given above:: + Example: - con = sqlite3.connect(":memory:") - cur = con.cursor() - cur.execute('''create table stocks - (date text, trans text, symbol text, - qty real, price real)''') - cur.execute("""insert into stocks - values ('2006-01-05','BUY','RHAT',100,35.14)""") - con.commit() - cur.close() + .. doctest:: + + >>> con = sqlite3.connect(":memory:") + >>> con.row_factory = sqlite3.Row + >>> res = con.execute("SELECT 'Earth' AS name, 6378 AS radius") + >>> row = res.fetchone() + >>> row.keys() + ['name', 'radius'] + >>> row[0], row["name"] # Access by index and name. + ('Earth', 'Earth') + >>> row["RADIUS"] # Column names are case-insensitive. + 6378 + + +.. _sqlite3-blob-objects: -Now we plug :class:`Row` in:: - - >>> con.row_factory = sqlite3.Row - >>> cur = con.cursor() - >>> cur.execute('select * from stocks') - - >>> r = cur.fetchone() - >>> type(r) - - >>> tuple(r) - ('2006-01-05', 'BUY', 'RHAT', 100.0, 35.14) - >>> len(r) - 5 - >>> r[2] - 'RHAT' - >>> r.keys() - ['date', 'trans', 'symbol', 'qty', 'price'] - >>> r['qty'] - 100.0 - >>> for member in r: - ... print(member) - ... - 2006-01-05 - BUY - RHAT - 100.0 - 35.14 - - -Blob Objects ------------- +Blob objects +^^^^^^^^^^^^ .. versionadded:: 3.11 @@ -1056,7 +1579,30 @@ Blob Objects Use the :class:`Blob` as a :term:`context manager` to ensure that the blob handle is closed after use. - .. literalinclude:: ../includes/sqlite3/blob.py + .. testcode:: + + con = sqlite3.connect(":memory:") + con.execute("CREATE TABLE test(blob_col blob)") + con.execute("INSERT INTO test(blob_col) VALUES(zeroblob(13))") + + # Write to our blob, using two write operations: + with con.blobopen("test", "blob_col", 1) as blob: + blob.write(b"hello, ") + blob.write(b"world.") + # Modify the first and last bytes of our blob + blob[0] = ord("H") + blob[-1] = ord("!") + + # Read the contents of our blob + with con.blobopen("test", "blob_col", 1) as blob: + greeting = blob.read() + + print(greeting) # outputs "b'Hello, world!'" + + .. testoutput:: + :hide: + + b'Hello, world!' .. method:: close() @@ -1093,19 +1639,38 @@ Blob Objects end). +PrepareProtocol objects +^^^^^^^^^^^^^^^^^^^^^^^ + +.. class:: PrepareProtocol + + The PrepareProtocol type's single purpose is to act as a :pep:`246` style + adaption protocol for objects that can :ref:`adapt themselves + ` to :ref:`native SQLite types `. + + .. _sqlite3-exceptions: Exceptions ----------- +^^^^^^^^^^ + +The exception hierarchy is defined by the DB-API 2.0 (:pep:`249`). .. exception:: Warning - A subclass of :exc:`Exception`. + This exception is not currently raised by the :mod:`!sqlite3` module, + but may be raised by applications using :mod:`!sqlite3`, + for example if a user-defined function truncates data while inserting. + ``Warning`` is a subclass of :exc:`Exception`. .. exception:: Error - The base class of the other exceptions in this module. It is a subclass - of :exc:`Exception`. + The base class of the other exceptions in this module. + Use this to catch all errors with one single :keyword:`except` statement. + ``Error`` is a subclass of :exc:`Exception`. + + If the exception originated from within the SQLite library, + the following two attributes are added to the exception: .. attribute:: sqlite_errorcode @@ -1121,46 +1686,66 @@ Exceptions .. versionadded:: 3.11 +.. exception:: InterfaceError + + Exception raised for misuse of the low-level SQLite C API. + In other words, if this exception is raised, it probably indicates a bug in the + :mod:`!sqlite3` module. + ``InterfaceError`` is a subclass of :exc:`Error`. + .. exception:: DatabaseError Exception raised for errors that are related to the database. + This serves as the base exception for several types of database errors. + It is only raised implicitly through the specialised subclasses. + ``DatabaseError`` is a subclass of :exc:`Error`. + +.. exception:: DataError + + Exception raised for errors caused by problems with the processed data, + like numeric values out of range, and strings which are too long. + ``DataError`` is a subclass of :exc:`DatabaseError`. + +.. exception:: OperationalError + + Exception raised for errors that are related to the database's operation, + and not necessarily under the control of the programmer. + For example, the database path is not found, + or a transaction could not be processed. + ``OperationalError`` is a subclass of :exc:`DatabaseError`. .. exception:: IntegrityError Exception raised when the relational integrity of the database is affected, e.g. a foreign key check fails. It is a subclass of :exc:`DatabaseError`. -.. exception:: ProgrammingError +.. exception:: InternalError - Exception raised for programming errors, e.g. table not found or already - exists, syntax error in the SQL statement, wrong number of parameters - specified, etc. It is a subclass of :exc:`DatabaseError`. + Exception raised when SQLite encounters an internal error. + If this is raised, it may indicate that there is a problem with the runtime + SQLite library. + ``InternalError`` is a subclass of :exc:`DatabaseError`. -.. exception:: OperationalError +.. exception:: ProgrammingError - Exception raised for errors that are related to the database's operation - and not necessarily under the control of the programmer, e.g. an unexpected - disconnect occurs, the data source name is not found, a transaction could - not be processed, etc. It is a subclass of :exc:`DatabaseError`. + Exception raised for :mod:`!sqlite3` API programming errors, + for example supplying the wrong number of bindings to a query, + or trying to operate on a closed :class:`Connection`. + ``ProgrammingError`` is a subclass of :exc:`DatabaseError`. .. exception:: NotSupportedError - Exception raised in case a method or database API was used which is not - supported by the database, e.g. calling the :meth:`~Connection.rollback` - method on a connection that does not support transaction or has - transactions turned off. It is a subclass of :exc:`DatabaseError`. - + Exception raised in case a method or database API is not supported by the + underlying SQLite library. For example, setting *deterministic* to + ``True`` in :meth:`~Connection.create_function`, if the underlying SQLite library + does not support deterministic functions. + ``NotSupportedError`` is a subclass of :exc:`DatabaseError`. -.. _sqlite3-blob-objects: .. _sqlite3-types: SQLite and Python types ------------------------ - - -Introduction -^^^^^^^^^^^^ +^^^^^^^^^^^^^^^^^^^^^^^ SQLite natively supports the following types: ``NULL``, ``INTEGER``, ``REAL``, ``TEXT``, ``BLOB``. @@ -1170,7 +1755,7 @@ The following Python types can thus be sent to SQLite without any problem: +-------------------------------+-------------+ | Python type | SQLite type | +===============================+=============+ -| :const:`None` | ``NULL`` | +| ``None`` | ``NULL`` | +-------------------------------+-------------+ | :class:`int` | ``INTEGER`` | +-------------------------------+-------------+ @@ -1187,7 +1772,7 @@ This is how SQLite types are converted to Python types by default: +-------------+----------------------------------------------+ | SQLite type | Python type | +=============+==============================================+ -| ``NULL`` | :const:`None` | +| ``NULL`` | ``None`` | +-------------+----------------------------------------------+ | ``INTEGER`` | :class:`int` | +-------------+----------------------------------------------+ @@ -1199,211 +1784,523 @@ This is how SQLite types are converted to Python types by default: | ``BLOB`` | :class:`bytes` | +-------------+----------------------------------------------+ -The type system of the :mod:`sqlite3` module is extensible in two ways: you can -store additional Python types in an SQLite database via object adaptation, and -you can let the :mod:`sqlite3` module convert SQLite types to different Python -types via converters. +The type system of the :mod:`!sqlite3` module is extensible in two ways: you can +store additional Python types in an SQLite database via +:ref:`object adapters `, +and you can let the :mod:`!sqlite3` module convert SQLite types to +Python types via :ref:`converters `. + + +.. _sqlite3-default-converters: + +Default adapters and converters (deprecated) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. note:: + + The default adapters and converters are deprecated as of Python 3.12. + Instead, use the :ref:`sqlite3-adapter-converter-recipes` + and tailor them to your needs. + +The deprecated default adapters and converters consist of: + +* An adapter for :class:`datetime.date` objects to :class:`strings ` in + `ISO 8601`_ format. +* An adapter for :class:`datetime.datetime` objects to strings in + ISO 8601 format. +* A converter for :ref:`declared ` "date" types to + :class:`datetime.date` objects. +* A converter for declared "timestamp" types to + :class:`datetime.datetime` objects. + Fractional parts will be truncated to 6 digits (microsecond precision). + +.. note:: + + The default "timestamp" converter ignores UTC offsets in the database and + always returns a naive :class:`datetime.datetime` object. To preserve UTC + offsets in timestamps, either leave converters disabled, or register an + offset-aware converter with :func:`register_converter`. + +.. deprecated:: 3.12 +.. _ISO 8601: https://en.wikipedia.org/wiki/ISO_8601 -Using adapters to store additional Python types in SQLite databases -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -As described before, SQLite supports only a limited set of types natively. To -use other Python types with SQLite, you must **adapt** them to one of the -sqlite3 module's supported types for SQLite: one of NoneType, int, float, -str, bytes. +.. _sqlite3-cli: + +Command-line interface +^^^^^^^^^^^^^^^^^^^^^^ + +The :mod:`!sqlite3` module can be invoked as a script +in order to provide a simple SQLite shell. +Type ``.quit`` or CTRL-D to exit the shell. + +.. program:: python -m sqlite3 [-h] [-v] [filename] [sql] + +.. option:: -h, --help + + Print CLI help. + +.. option:: -v, --version + + Print underlying SQLite library version. + +.. versionadded:: 3.12 -There are two ways to enable the :mod:`sqlite3` module to adapt a custom Python -type to one of the supported ones. +.. _sqlite3-howtos: -Letting your object adapt itself -"""""""""""""""""""""""""""""""" +How-to guides +------------- -This is a good approach if you write the class yourself. Let's suppose you have -a class like this:: +.. _sqlite3-placeholders: + +How to use placeholders to bind values in SQL queries +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +SQL operations usually need to use values from Python variables. However, +beware of using Python's string operations to assemble queries, as they +are vulnerable to `SQL injection attacks`_ (see the `xkcd webcomic +`_ for a humorous example of what can go wrong):: + + # Never do this -- insecure! + symbol = 'RHAT' + cur.execute("SELECT * FROM stocks WHERE symbol = '%s'" % symbol) + +Instead, use the DB-API's parameter substitution. To insert a variable into a +query string, use a placeholder in the string, and substitute the actual values +into the query by providing them as a :class:`tuple` of values to the second +argument of the cursor's :meth:`~Cursor.execute` method. An SQL statement may +use one of two kinds of placeholders: question marks (qmark style) or named +placeholders (named style). For the qmark style, ``parameters`` must be a +:term:`sequence `. For the named style, it can be either a +:term:`sequence ` or :class:`dict` instance. The length of the +:term:`sequence ` must match the number of placeholders, or a +:exc:`ProgrammingError` is raised. If a :class:`dict` is given, it must contain +keys for all named parameters. Any extra items are ignored. Here's an example of +both styles: + +.. testcode:: + + con = sqlite3.connect(":memory:") + cur = con.execute("CREATE TABLE lang(name, first_appeared)") + + # This is the qmark style: + cur.execute("INSERT INTO lang VALUES(?, ?)", ("C", 1972)) + + # The qmark style used with executemany(): + lang_list = [ + ("Fortran", 1957), + ("Python", 1991), + ("Go", 2009), + ] + cur.executemany("INSERT INTO lang VALUES(?, ?)", lang_list) + + # And this is the named style: + cur.execute("SELECT * FROM lang WHERE first_appeared = :year", {"year": 1972}) + print(cur.fetchall()) + +.. testoutput:: + :hide: + + [('C', 1972)] + + +.. _sqlite3-adapters: + +How to adapt custom Python types to SQLite values +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +SQLite supports only a limited set of data types natively. +To store custom Python types in SQLite databases, *adapt* them to one of the +:ref:`Python types SQLite natively understands `. + +There are two ways to adapt Python objects to SQLite types: +letting your object adapt itself, or using an *adapter callable*. +The latter will take precedence above the former. +For a library that exports a custom type, +it may make sense to enable that type to adapt itself. +As an application developer, it may make more sense to take direct control by +registering custom adapter functions. + + +.. _sqlite3-conform: + +How to write adaptable objects +"""""""""""""""""""""""""""""" + +Suppose we have a :class:`!Point` class that represents a pair of coordinates, +``x`` and ``y``, in a Cartesian coordinate system. +The coordinate pair will be stored as a text string in the database, +using a semicolon to separate the coordinates. +This can be implemented by adding a ``__conform__(self, protocol)`` +method which returns the adapted value. +The object passed to *protocol* will be of type :class:`PrepareProtocol`. + +.. testcode:: class Point: def __init__(self, x, y): self.x, self.y = x, y -Now you want to store the point in a single SQLite column. First you'll have to -choose one of the supported types to be used for representing the point. -Let's just use str and separate the coordinates using a semicolon. Then you need -to give your class a method ``__conform__(self, protocol)`` which must return -the converted value. The parameter *protocol* will be :class:`PrepareProtocol`. + def __conform__(self, protocol): + if protocol is sqlite3.PrepareProtocol: + return f"{self.x};{self.y}" + + con = sqlite3.connect(":memory:") + cur = con.cursor() + + cur.execute("SELECT ?", (Point(4.0, -3.2),)) + print(cur.fetchone()[0]) + +.. testoutput:: + :hide: + + 4.0;-3.2 + + +How to register adapter callables +""""""""""""""""""""""""""""""""" -.. literalinclude:: ../includes/sqlite3/adapter_point_1.py +The other possibility is to create a function that converts the Python object +to an SQLite-compatible type. +This function can then be registered using :func:`register_adapter`. + +.. testcode:: + + class Point: + def __init__(self, x, y): + self.x, self.y = x, y + def adapt_point(point): + return f"{point.x};{point.y}" -Registering an adapter callable -""""""""""""""""""""""""""""""" + sqlite3.register_adapter(Point, adapt_point) -The other possibility is to create a function that converts the type to the -string representation and register the function with :meth:`register_adapter`. + con = sqlite3.connect(":memory:") + cur = con.cursor() -.. literalinclude:: ../includes/sqlite3/adapter_point_2.py + cur.execute("SELECT ?", (Point(1.0, 2.5),)) + print(cur.fetchone()[0]) -The :mod:`sqlite3` module has two default adapters for Python's built-in -:class:`datetime.date` and :class:`datetime.datetime` types. Now let's suppose -we want to store :class:`datetime.datetime` objects not in ISO representation, -but as a Unix timestamp. +.. testoutput:: + :hide: -.. literalinclude:: ../includes/sqlite3/adapter_datetime.py + 1.0;2.5 -Converting SQLite values to custom Python types -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. _sqlite3-converters: -Writing an adapter lets you send custom Python types to SQLite. But to make it -really useful we need to make the Python to SQLite to Python roundtrip work. +How to convert SQLite values to custom Python types +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Enter converters. +Writing an adapter lets you convert *from* custom Python types *to* SQLite +values. +To be able to convert *from* SQLite values *to* custom Python types, +we use *converters*. -Let's go back to the :class:`Point` class. We stored the x and y coordinates +Let's go back to the :class:`!Point` class. We stored the x and y coordinates separated via semicolons as strings in SQLite. First, we'll define a converter function that accepts the string as a parameter -and constructs a :class:`Point` object from it. +and constructs a :class:`!Point` object from it. .. note:: - Converter functions **always** get called with a :class:`bytes` object, no - matter under which data type you sent the value to SQLite. + Converter functions are **always** passed a :class:`bytes` object, + no matter the underlying SQLite data type. -:: +.. testcode:: def convert_point(s): x, y = map(float, s.split(b";")) return Point(x, y) -Now you need to make the :mod:`sqlite3` module know that what you select from -the database is actually a point. There are two ways of doing this: +We now need to tell :mod:`!sqlite3` when it should convert a given SQLite value. +This is done when connecting to a database, using the *detect_types* parameter +of :func:`connect`. There are three options: + +* Implicit: set *detect_types* to :const:`PARSE_DECLTYPES` +* Explicit: set *detect_types* to :const:`PARSE_COLNAMES` +* Both: set *detect_types* to + ``sqlite3.PARSE_DECLTYPES | sqlite3.PARSE_COLNAMES``. + Column names take precedence over declared types. + +The following example illustrates the implicit and explicit approaches: -* Implicitly via the declared type +.. testcode:: + + class Point: + def __init__(self, x, y): + self.x, self.y = x, y -* Explicitly via the column name + def __repr__(self): + return f"Point({self.x}, {self.y})" -Both ways are described in section :ref:`sqlite3-module-contents`, in the entries -for the constants :const:`PARSE_DECLTYPES` and :const:`PARSE_COLNAMES`. + def adapt_point(point): + return f"{point.x};{point.y}".encode("utf-8") -The following example illustrates both approaches. + def convert_point(s): + x, y = list(map(float, s.split(b";"))) + return Point(x, y) -.. literalinclude:: ../includes/sqlite3/converter_point.py + # Register the adapter and converter + sqlite3.register_adapter(Point, adapt_point) + sqlite3.register_converter("point", convert_point) + # 1) Parse using declared types + p = Point(4.0, -3.2) + con = sqlite3.connect(":memory:", detect_types=sqlite3.PARSE_DECLTYPES) + cur = con.execute("CREATE TABLE test(p point)") -Default adapters and converters -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + cur.execute("INSERT INTO test(p) VALUES(?)", (p,)) + cur.execute("SELECT p FROM test") + print("with declared types:", cur.fetchone()[0]) + cur.close() + con.close() -There are default adapters for the date and datetime types in the datetime -module. They will be sent as ISO dates/ISO timestamps to SQLite. + # 2) Parse using column names + con = sqlite3.connect(":memory:", detect_types=sqlite3.PARSE_COLNAMES) + cur = con.execute("CREATE TABLE test(p)") -The default converters are registered under the name "date" for -:class:`datetime.date` and under the name "timestamp" for -:class:`datetime.datetime`. + cur.execute("INSERT INTO test(p) VALUES(?)", (p,)) + cur.execute('SELECT p AS "p [point]" FROM test') + print("with column names:", cur.fetchone()[0]) -This way, you can use date/timestamps from Python without any additional -fiddling in most cases. The format of the adapters is also compatible with the -experimental SQLite date/time functions. +.. testoutput:: + :hide: -The following example demonstrates this. + with declared types: Point(4.0, -3.2) + with column names: Point(4.0, -3.2) -.. literalinclude:: ../includes/sqlite3/pysqlite_datetime.py -If a timestamp stored in SQLite has a fractional part longer than 6 -numbers, its value will be truncated to microsecond precision by the -timestamp converter. +.. _sqlite3-adapter-converter-recipes: -.. note:: +Adapter and converter recipes +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - The default "timestamp" converter ignores UTC offsets in the database and - always returns a naive :class:`datetime.datetime` object. To preserve UTC - offsets in timestamps, either leave converters disabled, or register an - offset-aware converter with :func:`register_converter`. +This section shows recipes for common adapters and converters. -.. _sqlite3-controlling-transactions: +.. testcode:: -Controlling Transactions ------------------------- + import datetime + import sqlite3 -The underlying ``sqlite3`` library operates in ``autocommit`` mode by default, -but the Python :mod:`sqlite3` module by default does not. + def adapt_date_iso(val): + """Adapt datetime.date to ISO 8601 date.""" + return val.isoformat() -``autocommit`` mode means that statements that modify the database take effect -immediately. A ``BEGIN`` or ``SAVEPOINT`` statement disables ``autocommit`` -mode, and a ``COMMIT``, a ``ROLLBACK``, or a ``RELEASE`` that ends the -outermost transaction, turns ``autocommit`` mode back on. + def adapt_datetime_iso(val): + """Adapt datetime.datetime to timezone-naive ISO 8601 date.""" + return val.isoformat() -The Python :mod:`sqlite3` module by default issues a ``BEGIN`` statement -implicitly before a Data Modification Language (DML) statement (i.e. -``INSERT``/``UPDATE``/``DELETE``/``REPLACE``). + def adapt_datetime_epoch(val): + """Adapt datetime.datetime to Unix timestamp.""" + return int(val.timestamp()) -You can control which kind of ``BEGIN`` statements :mod:`sqlite3` implicitly -executes via the *isolation_level* parameter to the :func:`connect` -call, or via the :attr:`isolation_level` property of connections. -If you specify no *isolation_level*, a plain ``BEGIN`` is used, which is -equivalent to specifying ``DEFERRED``. Other possible values are ``IMMEDIATE`` -and ``EXCLUSIVE``. + sqlite3.register_adapter(datetime.date, adapt_date_iso) + sqlite3.register_adapter(datetime.datetime, adapt_datetime_iso) + sqlite3.register_adapter(datetime.datetime, adapt_datetime_epoch) -You can disable the :mod:`sqlite3` module's implicit transaction management by -setting :attr:`isolation_level` to ``None``. This will leave the underlying -``sqlite3`` library operating in ``autocommit`` mode. You can then completely -control the transaction state by explicitly issuing ``BEGIN``, ``ROLLBACK``, -``SAVEPOINT``, and ``RELEASE`` statements in your code. + def convert_date(val): + """Convert ISO 8601 date to datetime.date object.""" + return datetime.date.fromisoformat(val) -Note that :meth:`~Cursor.executescript` disregards -:attr:`isolation_level`; any transaction control must be added explicitly. + def convert_datetime(val): + """Convert ISO 8601 datetime to datetime.datetime object.""" + return datetime.datetime.fromisoformat(val) -.. versionchanged:: 3.6 - :mod:`sqlite3` used to implicitly commit an open transaction before DDL - statements. This is no longer the case. + def convert_timestamp(val): + """Convert Unix epoch timestamp to datetime.datetime object.""" + return datetime.datetime.fromtimestamp(val) + sqlite3.register_converter("date", convert_date) + sqlite3.register_converter("datetime", convert_datetime) + sqlite3.register_converter("timestamp", convert_timestamp) -Using :mod:`sqlite3` efficiently --------------------------------- +.. _sqlite3-connection-shortcuts: -Using shortcut methods -^^^^^^^^^^^^^^^^^^^^^^ +How to use connection shortcut methods +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Using the nonstandard :meth:`execute`, :meth:`executemany` and -:meth:`executescript` methods of the :class:`Connection` object, your code can +Using the :meth:`~Connection.execute`, +:meth:`~Connection.executemany`, and :meth:`~Connection.executescript` +methods of the :class:`Connection` class, your code can be written more concisely because you don't have to create the (often superfluous) :class:`Cursor` objects explicitly. Instead, the :class:`Cursor` objects are created implicitly and these shortcut methods return the cursor objects. This way, you can execute a ``SELECT`` statement and iterate over it directly using only a single call on the :class:`Connection` object. -.. literalinclude:: ../includes/sqlite3/shortcut_methods.py +.. testcode:: + # Create and fill the table. + con = sqlite3.connect(":memory:") + con.execute("CREATE TABLE lang(name, first_appeared)") + data = [ + ("C++", 1985), + ("Objective-C", 1984), + ] + con.executemany("INSERT INTO lang(name, first_appeared) VALUES(?, ?)", data) + + # Print the table contents + for row in con.execute("SELECT name, first_appeared FROM lang"): + print(row) -Accessing columns by name instead of by index -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + print("I just deleted", con.execute("DELETE FROM lang").rowcount, "rows") + + # close() is not a shortcut method and it's not called automatically; + # the connection object should be closed manually + con.close() -One useful feature of the :mod:`sqlite3` module is the built-in -:class:`sqlite3.Row` class designed to be used as a row factory. +.. testoutput:: + :hide: -Rows wrapped with this class can be accessed both by index (like tuples) and -case-insensitively by name: + ('C++', 1985) + ('Objective-C', 1984) + I just deleted 2 rows -.. literalinclude:: ../includes/sqlite3/rowclass.py +.. _sqlite3-connection-context-manager: -Using the connection as a context manager +How to use the connection context manager ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Connection objects can be used as context managers -that automatically commit or rollback transactions. In the event of an -exception, the transaction is rolled back; otherwise, the transaction is -committed: +A :class:`Connection` object can be used as a context manager that +automatically commits or rolls back open transactions when leaving the body of +the context manager. +If the body of the :keyword:`with` statement finishes without exceptions, +the transaction is committed. +If this commit fails, +or if the body of the ``with`` statement raises an uncaught exception, +the transaction is rolled back. -.. literalinclude:: ../includes/sqlite3/ctx_manager.py +If there is no open transaction upon leaving the body of the ``with`` statement, +the context manager is a no-op. +.. note:: + + The context manager neither implicitly opens a new transaction + nor closes the connection. + +.. testcode:: + + con = sqlite3.connect(":memory:") + con.execute("CREATE TABLE lang(id INTEGER PRIMARY KEY, name VARCHAR UNIQUE)") + + # Successful, con.commit() is called automatically afterwards + with con: + con.execute("INSERT INTO lang(name) VALUES(?)", ("Python",)) + + # con.rollback() is called after the with block finishes with an exception, + # the exception is still raised and must be caught + try: + with con: + con.execute("INSERT INTO lang(name) VALUES(?)", ("Python",)) + except sqlite3.IntegrityError: + print("couldn't add Python twice") + + # Connection object used as context manager only commits or rollbacks transactions, + # so the connection object should be closed manually + con.close() + +.. testoutput:: + :hide: + + couldn't add Python twice + + +.. _sqlite3-uri-tricks: + +How to work with SQLite URIs +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Some useful URI tricks include: + +* Open a database in read-only mode: + +.. doctest:: + + >>> con = sqlite3.connect("file:tutorial.db?mode=ro", uri=True) + >>> con.execute("CREATE TABLE readonly(data)") + Traceback (most recent call last): + OperationalError: attempt to write a readonly database + +* Do not implicitly create a new database file if it does not already exist; + will raise :exc:`~sqlite3.OperationalError` if unable to create a new file: + +.. doctest:: + + >>> con = sqlite3.connect("file:nosuchdb.db?mode=rw", uri=True) + Traceback (most recent call last): + OperationalError: unable to open database file + + +* Create a shared named in-memory database: + +.. testcode:: + + db = "file:mem1?mode=memory&cache=shared" + con1 = sqlite3.connect(db, uri=True) + con2 = sqlite3.connect(db, uri=True) + with con1: + con1.execute("CREATE TABLE shared(data)") + con1.execute("INSERT INTO shared VALUES(28)") + res = con2.execute("SELECT data FROM shared") + assert res.fetchone() == (28,) + + +More information about this feature, including a list of parameters, +can be found in the `SQLite URI documentation`_. + +.. _SQLite URI documentation: https://www.sqlite.org/uri.html + + +.. _sqlite3-explanation: + +Explanation +----------- + +.. _sqlite3-controlling-transactions: + +Transaction control +^^^^^^^^^^^^^^^^^^^ + +The :mod:`!sqlite3` module does not adhere to the transaction handling recommended +by :pep:`249`. + +If the connection attribute :attr:`~Connection.isolation_level` +is not ``None``, +new transactions are implicitly opened before +:meth:`~Cursor.execute` and :meth:`~Cursor.executemany` executes +``INSERT``, ``UPDATE``, ``DELETE``, or ``REPLACE`` statements; +for other statements, no implicit transaction handling is performed. +Use the :meth:`~Connection.commit` and :meth:`~Connection.rollback` methods +to respectively commit and roll back pending transactions. +You can choose the underlying `SQLite transaction behaviour`_ — +that is, whether and what type of ``BEGIN`` statements :mod:`!sqlite3` +implicitly executes – +via the :attr:`~Connection.isolation_level` attribute. + +If :attr:`~Connection.isolation_level` is set to ``None``, +no transactions are implicitly opened at all. +This leaves the underlying SQLite library in `autocommit mode`_, +but also allows the user to perform their own transaction handling +using explicit SQL statements. +The underlying SQLite library autocommit mode can be queried using the +:attr:`~Connection.in_transaction` attribute. + +The :meth:`~Cursor.executescript` method implicitly commits +any pending transaction before execution of the given SQL script, +regardless of the value of :attr:`~Connection.isolation_level`. + +.. versionchanged:: 3.6 + :mod:`!sqlite3` used to implicitly commit an open transaction before DDL + statements. This is no longer the case. -.. rubric:: Footnotes +.. _autocommit mode: + https://www.sqlite.org/lang_transaction.html#implicit_versus_explicit_transactions -.. [#f1] The sqlite3 module is not built with loadable extension support by - default, because some platforms (notably macOS) have SQLite - libraries which are compiled without this feature. To get loadable - extension support, you must pass the - :option:`--enable-loadable-sqlite-extensions` option to configure. +.. _SQLite transaction behaviour: + https://www.sqlite.org/lang_transaction.html#deferred_immediate_and_exclusive_transactions diff --git a/Doc/library/ssl.rst b/Doc/library/ssl.rst index c7ca4395ed96c9..f5d5a7c4d28205 100644 --- a/Doc/library/ssl.rst +++ b/Doc/library/ssl.rst @@ -33,6 +33,7 @@ probably additional platforms, as long as OpenSSL is installed on that platform. may lead to a false sense of security, as the default settings of the ssl module are not necessarily appropriate for your application. +.. include:: ../includes/wasm-notavail.rst This section documents the objects and functions in the ``ssl`` module; for more general information about TLS, SSL, and certificates, the reader is referred to @@ -311,27 +312,6 @@ Random generation .. versionadded:: 3.3 -.. function:: RAND_pseudo_bytes(num) - - Return (bytes, is_cryptographic): bytes are *num* pseudo-random bytes, - is_cryptographic is ``True`` if the bytes generated are cryptographically - strong. Raises an :class:`SSLError` if the operation is not supported by the - current RAND method. - - Generated pseudo-random byte sequences will be unique if they are of - sufficient length, but are not necessarily unpredictable. They can be used - for non-cryptographic purposes and for certain purposes in cryptographic - protocols, but usually not for key generation etc. - - For almost all applications :func:`os.urandom` is preferable. - - .. versionadded:: 3.3 - - .. deprecated:: 3.6 - - OpenSSL has deprecated :func:`ssl.RAND_pseudo_bytes`, use - :func:`ssl.RAND_bytes` instead. - .. function:: RAND_status() Return ``True`` if the SSL pseudo-random number generator has been seeded @@ -356,49 +336,6 @@ Certificate handling import ssl -.. function:: match_hostname(cert, hostname) - - Verify that *cert* (in decoded format as returned by - :meth:`SSLSocket.getpeercert`) matches the given *hostname*. The rules - applied are those for checking the identity of HTTPS servers as outlined - in :rfc:`2818`, :rfc:`5280` and :rfc:`6125`. In addition to HTTPS, this - function should be suitable for checking the identity of servers in - various SSL-based protocols such as FTPS, IMAPS, POPS and others. - - :exc:`CertificateError` is raised on failure. On success, the function - returns nothing:: - - >>> cert = {'subject': ((('commonName', 'example.com'),),)} - >>> ssl.match_hostname(cert, "example.com") - >>> ssl.match_hostname(cert, "example.org") - Traceback (most recent call last): - File "", line 1, in - File "/home/py3k/Lib/ssl.py", line 130, in match_hostname - ssl.CertificateError: hostname 'example.org' doesn't match 'example.com' - - .. versionadded:: 3.2 - - .. versionchanged:: 3.3.3 - The function now follows :rfc:`6125`, section 6.4.3 and does neither - match multiple wildcards (e.g. ``*.*.com`` or ``*a*.example.org``) nor - a wildcard inside an internationalized domain names (IDN) fragment. - IDN A-labels such as ``www*.xn--pthon-kva.org`` are still supported, - but ``x*.python.org`` no longer matches ``xn--tda.python.org``. - - .. versionchanged:: 3.5 - Matching of IP addresses, when present in the subjectAltName field - of the certificate, is now supported. - - .. versionchanged:: 3.7 - The function is no longer used to TLS connections. Hostname matching - is now performed by OpenSSL. - - Allow wildcard when it is the leftmost and the only character - in that segment. Partial wildcards like ``www*.example.com`` are no - longer supported. - - .. deprecated:: 3.7 - .. function:: cert_time_to_seconds(cert_time) Return the time in seconds since the Epoch, given the ``cert_time`` @@ -474,9 +411,6 @@ Certificate handling * :attr:`openssl_capath_env` - OpenSSL's environment key that points to a capath, * :attr:`openssl_capath` - hard coded path to a capath directory - .. availability:: LibreSSL ignores the environment vars - :attr:`openssl_cafile_env` and :attr:`openssl_capath_env`. - .. versionadded:: 3.4 .. function:: enum_certificates(store_name) @@ -709,21 +643,6 @@ Constants Use :data:`PROTOCOL_TLS` instead. -.. data:: PROTOCOL_SSLv2 - - Selects SSL version 2 as the channel encryption protocol. - - This protocol is not available if OpenSSL is compiled with the - ``no-ssl2`` option. - - .. warning:: - - SSL version 2 is insecure. Its use is highly discouraged. - - .. deprecated:: 3.6 - - OpenSSL has removed support for SSLv2. - .. data:: PROTOCOL_SSLv3 Selects SSL version 3 as the channel encryption protocol. @@ -1272,11 +1191,6 @@ SSL sockets also have the following additional methods and attributes: 'subjectAltName': (('DNS', '*.eff.org'), ('DNS', 'eff.org')), 'version': 3} - .. note:: - - To validate a certificate for a particular service, you can use the - :func:`match_hostname` function. - If the ``binary_form`` parameter is :const:`True`, and a certificate was provided, this method returns the DER-encoded form of the entire certificate as a sequence of bytes, or :const:`None` if the peer did not provide a @@ -1291,6 +1205,8 @@ SSL sockets also have the following additional methods and attributes: :const:`None` if you used :const:`CERT_NONE` (rather than :const:`CERT_OPTIONAL` or :const:`CERT_REQUIRED`). + See also :attr:`SSLContext.check_hostname`. + .. versionchanged:: 3.2 The returned dictionary includes additional items such as ``issuer`` and ``notBefore``. @@ -1505,11 +1421,10 @@ to speed up repeated connections from the same clients. The context is created with secure default values. The options :data:`OP_NO_COMPRESSION`, :data:`OP_CIPHER_SERVER_PREFERENCE`, :data:`OP_SINGLE_DH_USE`, :data:`OP_SINGLE_ECDH_USE`, - :data:`OP_NO_SSLv2` (except for :data:`PROTOCOL_SSLv2`), + :data:`OP_NO_SSLv2`, and :data:`OP_NO_SSLv3` (except for :data:`PROTOCOL_SSLv3`) are set by default. The initial cipher suite list contains only ``HIGH`` - ciphers, no ``NULL`` ciphers and no ``MD5`` ciphers (except for - :data:`PROTOCOL_SSLv2`). + ciphers, no ``NULL`` ciphers and no ``MD5`` ciphers. .. deprecated:: 3.10 @@ -1910,7 +1825,7 @@ to speed up repeated connections from the same clients. .. method:: SSLContext.session_stats() Get statistics about the SSL sessions created or managed by this context. - A dictionary is returned which maps the names of each `piece of information `_ to their + A dictionary is returned which maps the names of each `piece of information `_ to their numeric values. For example, here is the total number of hits and misses in the session cache since the context was created:: @@ -2660,10 +2575,9 @@ Therefore, when in client mode, it is highly recommended to use :const:`CERT_REQUIRED`. However, it is in itself not sufficient; you also have to check that the server certificate, which can be obtained by calling :meth:`SSLSocket.getpeercert`, matches the desired service. For many -protocols and applications, the service can be identified by the hostname; -in this case, the :func:`match_hostname` function can be used. This common -check is automatically performed when :attr:`SSLContext.check_hostname` is -enabled. +protocols and applications, the service can be identified by the hostname. +This common check is automatically performed when +:attr:`SSLContext.check_hostname` is enabled. .. versionchanged:: 3.7 Hostname matchings is now performed by OpenSSL. Python no longer uses @@ -2704,7 +2618,7 @@ enabled when negotiating a SSL session is possible through the :meth:`SSLContext.set_ciphers` method. Starting from Python 3.2.3, the ssl module disables certain weak ciphers by default, but you may want to further restrict the cipher choice. Be sure to read OpenSSL's documentation -about the `cipher list format `_. +about the `cipher list format `_. If you want to check which ciphers are enabled by a given cipher list, use :meth:`SSLContext.get_ciphers` or the ``openssl ciphers`` command on your system. @@ -2717,8 +2631,8 @@ for example the :mod:`multiprocessing` or :mod:`concurrent.futures` modules), be aware that OpenSSL's internal random number generator does not properly handle forked processes. Applications must change the PRNG state of the parent process if they use any SSL feature with :func:`os.fork`. Any -successful call of :func:`~ssl.RAND_add`, :func:`~ssl.RAND_bytes` or -:func:`~ssl.RAND_pseudo_bytes` is sufficient. +successful call of :func:`~ssl.RAND_add` or :func:`~ssl.RAND_bytes` is +sufficient. .. _ssl-tlsv1_3: diff --git a/Doc/library/statistics.rst b/Doc/library/statistics.rst index 4cd983bb25468a..c3f9c1f5239e8b 100644 --- a/Doc/library/statistics.rst +++ b/Doc/library/statistics.rst @@ -35,6 +35,35 @@ and implementation-dependent. If your input data consists of mixed types, you may be able to use :func:`map` to ensure a consistent result, for example: ``map(float, input_data)``. +Some datasets use ``NaN`` (not a number) values to represent missing data. +Since NaNs have unusual comparison semantics, they cause surprising or +undefined behaviors in the statistics functions that sort data or that count +occurrences. The functions affected are ``median()``, ``median_low()``, +``median_high()``, ``median_grouped()``, ``mode()``, ``multimode()``, and +``quantiles()``. The ``NaN`` values should be stripped before calling these +functions:: + + >>> from statistics import median + >>> from math import isnan + >>> from itertools import filterfalse + + >>> data = [20.7, float('NaN'),19.2, 18.3, float('NaN'), 14.4] + >>> sorted(data) # This has surprising behavior + [20.7, nan, 14.4, 18.3, 19.2, nan] + >>> median(data) # This result is unexpected + 16.35 + + >>> sum(map(isnan, data)) # Number of missing values + 2 + >>> clean = list(filterfalse(isnan, data)) # Strip NaN values + >>> clean + [20.7, 19.2, 18.3, 14.4] + >>> sorted(clean) # Sorting now works as expected + [14.4, 18.3, 19.2, 20.7] + >>> median(clean) # This result is now well defined + 18.75 + + Averages and measures of central location ----------------------------------------- @@ -75,7 +104,7 @@ These functions calculate statistics regarding relations between two inputs. ========================= ===================================================== :func:`covariance` Sample covariance for two variables. -:func:`correlation` Pearson's correlation coefficient for two variables. +:func:`correlation` Pearson and Spearman's correlation coefficients. :func:`linear_regression` Slope and intercept for simple linear regression. ========================= ===================================================== @@ -619,31 +648,57 @@ However, for reading convenience, most of the examples show sorted sequences. .. versionadded:: 3.10 -.. function:: correlation(x, y, /) +.. function:: correlation(x, y, /, *, method='linear') Return the `Pearson's correlation coefficient `_ for two inputs. Pearson's correlation coefficient *r* takes values - between -1 and +1. It measures the strength and direction of the linear - relationship, where +1 means very strong, positive linear relationship, - -1 very strong, negative linear relationship, and 0 no linear relationship. + between -1 and +1. It measures the strength and direction of a linear + relationship. + + If *method* is "ranked", computes `Spearman's rank correlation coefficient + `_ + for two inputs. The data is replaced by ranks. Ties are averaged so that + equal values receive the same rank. The resulting coefficient measures the + strength of a monotonic relationship. + + Spearman's correlation coefficient is appropriate for ordinal data or for + continuous data that doesn't meet the linear proportion requirement for + Pearson's correlation coefficient. Both inputs must be of the same length (no less than two), and need not to be constant, otherwise :exc:`StatisticsError` is raised. - Examples: + Example with `Kepler's laws of planetary motion + `_: .. doctest:: - >>> x = [1, 2, 3, 4, 5, 6, 7, 8, 9] - >>> y = [9, 8, 7, 6, 5, 4, 3, 2, 1] - >>> correlation(x, x) + >>> # Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, and Neptune + >>> orbital_period = [88, 225, 365, 687, 4331, 10_756, 30_687, 60_190] # days + >>> dist_from_sun = [58, 108, 150, 228, 778, 1_400, 2_900, 4_500] # million km + + >>> # Show that a perfect monotonic relationship exists + >>> correlation(orbital_period, dist_from_sun, method='ranked') + 1.0 + + >>> # Observe that a linear relationship is imperfect + >>> round(correlation(orbital_period, dist_from_sun), 4) + 0.9882 + + >>> # Demonstrate Kepler's third law: There is a linear correlation + >>> # between the square of the orbital period and the cube of the + >>> # distance from the sun. + >>> period_squared = [p * p for p in orbital_period] + >>> dist_cubed = [d * d * d for d in dist_from_sun] + >>> round(correlation(period_squared, dist_cubed), 4) 1.0 - >>> correlation(x, y) - -1.0 .. versionadded:: 3.10 + .. versionchanged:: 3.12 + Added support for Spearman's rank correlation coefficient. + .. function:: linear_regression(x, y, /, *, proportional=False) Return the slope and intercept of `simple linear regression @@ -798,7 +853,7 @@ of applications in statistics. Compute the inverse cumulative distribution function, also known as the `quantile function `_ or the `percent-point - `_ + `_ function. Mathematically, it is written ``x : P(X <= x) = p``. Finds the value *x* of the random variable *X* such that the @@ -909,7 +964,7 @@ Carlo simulation `_: [1.4591308524824727, 1.8035946855390597, 2.175091447274739] Normal distributions can be used to approximate `Binomial -distributions `_ +distributions `_ when the sample size is large and when the probability of a successful trial is near 50%. @@ -947,7 +1002,7 @@ probability that the Python room will stay within its capacity limits? Normal distributions commonly arise in machine learning problems. Wikipedia has a `nice example of a Naive Bayesian Classifier -`_. +`_. The challenge is to predict a person's gender from measurements of normally distributed features including height, weight, and foot size. diff --git a/Doc/library/stdtypes.rst b/Doc/library/stdtypes.rst index 33fd2831228f88..be092364047852 100644 --- a/Doc/library/stdtypes.rst +++ b/Doc/library/stdtypes.rst @@ -353,7 +353,7 @@ Notes: The numeric literals accepted include the digits ``0`` to ``9`` or any Unicode equivalent (code points with the ``Nd`` property). - See https://www.unicode.org/Public/14.0.0/ucd/extracted/DerivedNumericType.txt + See https://www.unicode.org/Public/15.0.0/ucd/extracted/DerivedNumericType.txt for a complete list of code points with the ``Nd`` property. @@ -1453,7 +1453,7 @@ objects that compare equal might have different :attr:`~range.start`, .. seealso:: - * The `linspace recipe `_ + * The `linspace recipe `_ shows how to implement a lazy version of range suitable for floating point applications. @@ -2548,9 +2548,10 @@ data and are closely related to string objects in a variety of other ways. If you want to make the hex string easier to read, you can specify a single character separator *sep* parameter to include in the output. - By default between each byte. A second optional *bytes_per_sep* - parameter controls the spacing. Positive values calculate the - separator position from the right, negative values from the left. + By default, this separator will be included between each byte. + A second optional *bytes_per_sep* parameter controls the spacing. + Positive values calculate the separator position from the right, + negative values from the left. >>> value = b'\xf0\xf1\xf2' >>> value.hex('-') @@ -4693,7 +4694,9 @@ values are hashable, so that ``(key, value)`` pairs are unique and hashable, then the items view is also set-like. (Values views are not treated as set-like since the entries are generally not unique.) For set-like views, all of the operations defined for the abstract base class :class:`collections.abc.Set` are -available (for example, ``==``, ``<``, or ``^``). +available (for example, ``==``, ``<``, or ``^``). While using set operators, +set-like views accept any iterable as the other operand, unlike sets which only +accept sets as the input. An example of dictionary view usage:: @@ -4725,6 +4728,8 @@ An example of dictionary view usage:: {'bacon'} >>> keys ^ {'sausage', 'juice'} {'juice', 'sausage', 'bacon', 'spam'} + >>> keys | ['juice', 'juice', 'juice'] + {'juice', 'sausage', 'bacon', 'spam', 'eggs'} >>> # get back a read-only proxy for the original dictionary >>> values.mapping @@ -5455,6 +5460,165 @@ types, where they are relevant. Some of these are not reported by the [] +.. _int_max_str_digits: + +Integer string conversion length limitation +=========================================== + +CPython has a global limit for converting between :class:`int` and :class:`str` +to mitigate denial of service attacks. This limit *only* applies to decimal or +other non-power-of-two number bases. Hexadecimal, octal, and binary conversions +are unlimited. The limit can be configured. + +The :class:`int` type in CPython is an abitrary length number stored in binary +form (commonly known as a "bignum"). There exists no algorithm that can convert +a string to a binary integer or a binary integer to a string in linear time, +*unless* the base is a power of 2. Even the best known algorithms for base 10 +have sub-quadratic complexity. Converting a large value such as ``int('1' * +500_000)`` can take over a second on a fast CPU. + +Limiting conversion size offers a practical way to avoid `CVE-2020-10735 +`_. + +The limit is applied to the number of digit characters in the input or output +string when a non-linear conversion algorithm would be involved. Underscores +and the sign are not counted towards the limit. + +When an operation would exceed the limit, a :exc:`ValueError` is raised: + +.. doctest:: + + >>> import sys + >>> sys.set_int_max_str_digits(4300) # Illustrative, this is the default. + >>> _ = int('2' * 5432) + Traceback (most recent call last): + ... + ValueError: Exceeds the limit (4300) for integer string conversion: value has 5432 digits; use sys.set_int_max_str_digits() to increase the limit. + >>> i = int('2' * 4300) + >>> len(str(i)) + 4300 + >>> i_squared = i*i + >>> len(str(i_squared)) + Traceback (most recent call last): + ... + ValueError: Exceeds the limit (4300) for integer string conversion: value has 8599 digits; use sys.set_int_max_str_digits() to increase the limit. + >>> len(hex(i_squared)) + 7144 + >>> assert int(hex(i_squared), base=16) == i*i # Hexadecimal is unlimited. + +The default limit is 4300 digits as provided in +:data:`sys.int_info.default_max_str_digits `. +The lowest limit that can be configured is 640 digits as provided in +:data:`sys.int_info.str_digits_check_threshold `. + +Verification: + +.. doctest:: + + >>> import sys + >>> assert sys.int_info.default_max_str_digits == 4300, sys.int_info + >>> assert sys.int_info.str_digits_check_threshold == 640, sys.int_info + >>> msg = int('578966293710682886880994035146873798396722250538762761564' + ... '9252925514383915483333812743580549779436104706260696366600' + ... '571186405732').to_bytes(53, 'big') + ... + +.. versionadded:: 3.12 + +Affected APIs +------------- + +The limitation only applies to potentially slow conversions between :class:`int` +and :class:`str` or :class:`bytes`: + +* ``int(string)`` with default base 10. +* ``int(string, base)`` for all bases that are not a power of 2. +* ``str(integer)``. +* ``repr(integer)`` +* any other string conversion to base 10, for example ``f"{integer}"``, + ``"{}".format(integer)``, or ``b"%d" % integer``. + +The limitations do not apply to functions with a linear algorithm: + +* ``int(string, base)`` with base 2, 4, 8, 16, or 32. +* :func:`int.from_bytes` and :func:`int.to_bytes`. +* :func:`hex`, :func:`oct`, :func:`bin`. +* :ref:`formatspec` for hex, octal, and binary numbers. +* :class:`str` to :class:`float`. +* :class:`str` to :class:`decimal.Decimal`. + +Configuring the limit +--------------------- + +Before Python starts up you can use an environment variable or an interpreter +command line flag to configure the limit: + +* :envvar:`PYTHONINTMAXSTRDIGITS`, e.g. + ``PYTHONINTMAXSTRDIGITS=640 python3`` to set the limit to 640 or + ``PYTHONINTMAXSTRDIGITS=0 python3`` to disable the limitation. +* :option:`-X int_max_str_digits <-X>`, e.g. + ``python3 -X int_max_str_digits=640`` +* :data:`sys.flags.int_max_str_digits` contains the value of + :envvar:`PYTHONINTMAXSTRDIGITS` or :option:`-X int_max_str_digits <-X>`. + If both the env var and the ``-X`` option are set, the ``-X`` option takes + precedence. A value of *-1* indicates that both were unset, thus a value of + :data:`sys.int_info.default_max_str_digits` was used during initilization. + +From code, you can inspect the current limit and set a new one using these +:mod:`sys` APIs: + +* :func:`sys.get_int_max_str_digits` and :func:`sys.set_int_max_str_digits` are + a getter and setter for the interpreter-wide limit. Subinterpreters have + their own limit. + +Information about the default and minimum can be found in :attr:`sys.int_info`: + +* :data:`sys.int_info.default_max_str_digits ` is the compiled-in + default limit. +* :data:`sys.int_info.str_digits_check_threshold ` is the lowest + accepted value for the limit (other than 0 which disables it). + +.. versionadded:: 3.12 + +.. caution:: + + Setting a low limit *can* lead to problems. While rare, code exists that + contains integer constants in decimal in their source that exceed the + minimum threshold. A consequence of setting the limit is that Python source + code containing decimal integer literals longer than the limit will + encounter an error during parsing, usually at startup time or import time or + even at installation time - anytime an up to date ``.pyc`` does not already + exist for the code. A workaround for source that contains such large + constants is to convert them to ``0x`` hexadecimal form as it has no limit. + + Test your application thoroughly if you use a low limit. Ensure your tests + run with the limit set early via the environment or flag so that it applies + during startup and even during any installation step that may invoke Python + to precompile ``.py`` sources to ``.pyc`` files. + +Recommended configuration +------------------------- + +The default :data:`sys.int_info.default_max_str_digits` is expected to be +reasonable for most applications. If your application requires a different +limit, set it from your main entry point using Python version agnostic code as +these APIs were added in security patch releases in versions before 3.12. + +Example:: + + >>> import sys + >>> if hasattr(sys, "set_int_max_str_digits"): + ... upper_bound = 68000 + ... lower_bound = 4004 + ... current_limit = sys.get_int_max_str_digits() + ... if current_limit == 0 or current_limit > upper_bound: + ... sys.set_int_max_str_digits(upper_bound) + ... elif current_limit < lower_bound: + ... sys.set_int_max_str_digits(lower_bound) + +If you need to disable it entirely, set it to ``0``. + + .. rubric:: Footnotes .. [1] Additional information on these special methods may be found in the Python diff --git a/Doc/library/string.rst b/Doc/library/string.rst index 35e9bc116803ff..3b96813e683864 100644 --- a/Doc/library/string.rst +++ b/Doc/library/string.rst @@ -8,6 +8,7 @@ -------------- + .. seealso:: :ref:`textseq` @@ -738,7 +739,7 @@ internationalization (i18n) since in that context, the simpler syntax and functionality makes it easier to translate than other built-in string formatting facilities in Python. As an example of a library built on template strings for i18n, see the -`flufl.i18n `_ package. +`flufl.i18n `_ package. .. index:: single: $ (dollar); in template strings diff --git a/Doc/library/struct.rst b/Doc/library/struct.rst index eccba20fb8fe7e..c1888d4a94fe0c 100644 --- a/Doc/library/struct.rst +++ b/Doc/library/struct.rst @@ -82,7 +82,7 @@ The module defines the following exception and functions: Iteratively unpack from the buffer *buffer* according to the format string *format*. This function returns an iterator which will read - equally-sized chunks from the buffer until all its contents have been + equally sized chunks from the buffer until all its contents have been consumed. The buffer's size in bytes must be a multiple of the size required by the format, as reflected by :func:`calcsize`. @@ -146,9 +146,10 @@ If the first character is not one of these, ``'@'`` is assumed. Native byte order is big-endian or little-endian, depending on the host system. For example, Intel x86 and AMD64 (x86-64) are little-endian; -Motorola 68000 and PowerPC G5 are big-endian; ARM and Intel Itanium feature -switchable endianness (bi-endian). Use ``sys.byteorder`` to check the -endianness of your system. +IBM z and most legacy architectures are big-endian; +and ARM, RISC-V and IBM Power feature switchable endianness +(bi-endian, though the former two are nearly always little-endian in practice). +Use ``sys.byteorder`` to check the endianness of your system. Native size and alignment are determined using the C compiler's ``sizeof`` expression. This is always combined with native byte order. @@ -466,6 +467,6 @@ The :mod:`struct` module also defines the following type: .. _half precision format: https://en.wikipedia.org/wiki/Half-precision_floating-point_format -.. _ieee 754 standard: https://en.wikipedia.org/wiki/IEEE_floating_point#IEEE_754-2008 +.. _ieee 754 standard: https://en.wikipedia.org/wiki/IEEE_754-2008_revision .. _IETF RFC 1700: https://tools.ietf.org/html/rfc1700 diff --git a/Doc/library/subprocess.rst b/Doc/library/subprocess.rst index 4031a5f62167f0..43d6ffceee8fc8 100644 --- a/Doc/library/subprocess.rst +++ b/Doc/library/subprocess.rst @@ -25,6 +25,7 @@ modules and functions can be found in the following sections. :pep:`324` -- PEP proposing the subprocess module +.. include:: ../includes/wasm-notavail.rst Using the :mod:`subprocess` Module ---------------------------------- @@ -359,7 +360,7 @@ functions. .. warning:: - For maximum reliability, use a fully-qualified path for the executable. + For maximum reliability, use a fully qualified path for the executable. To search for an unqualified name on :envvar:`PATH`, use :meth:`shutil.which`. On all platforms, passing :data:`sys.executable` is the recommended way to launch the current Python interpreter again, @@ -1473,7 +1474,7 @@ handling consistency are valid for these functions. >>> subprocess.getstatusoutput('/bin/kill $$') (-15, '') - .. availability:: POSIX & Windows. + .. availability:: Unix, Windows. .. versionchanged:: 3.3.4 Windows support was added. @@ -1495,7 +1496,7 @@ handling consistency are valid for these functions. >>> subprocess.getoutput('ls /bin/ls') '/bin/ls' - .. availability:: POSIX & Windows. + .. availability:: Unix, Windows. .. versionchanged:: 3.3.4 Windows support added @@ -1553,7 +1554,7 @@ On Linux, :mod:`subprocess` defaults to using the ``vfork()`` system call internally when it is safe to do so rather than ``fork()``. This greatly improves performance. -If you ever encounter a presumed highly-unusual situation where you need to +If you ever encounter a presumed highly unusual situation where you need to prevent ``vfork()`` from being used by Python, you can set the :attr:`subprocess._USE_VFORK` attribute to a false value. diff --git a/Doc/library/superseded.rst b/Doc/library/superseded.rst index b38f16691f6ea9..57ef9638d058d4 100644 --- a/Doc/library/superseded.rst +++ b/Doc/library/superseded.rst @@ -27,7 +27,6 @@ backwards compatibility. They have been superseded by other modules. optparse.rst ossaudiodev.rst pipes.rst - smtpd.rst sndhdr.rst spwd.rst sunau.rst diff --git a/Doc/library/symtable.rst b/Doc/library/symtable.rst index 0264f891cc8c06..65ff5bfe7abd61 100644 --- a/Doc/library/symtable.rst +++ b/Doc/library/symtable.rst @@ -69,7 +69,8 @@ Examining Symbol Tables .. method:: get_identifiers() - Return a list of names of symbols in this table. + Return a view object containing the names of symbols in the table. + See the :ref:`documentation of view objects `. .. method:: lookup(name) diff --git a/Doc/library/sys.rst b/Doc/library/sys.rst index 5f3b9b5776cb82..c6be12c14b550a 100644 --- a/Doc/library/sys.rst +++ b/Doc/library/sys.rst @@ -338,7 +338,7 @@ always available. | | memory support. | +-----------------------------+----------------------------------------------+ - .. availability:: WebAssembly Emscripten platform (*wasm32-emscripten*). + .. availability:: Emscripten. .. versionadded:: 3.11 @@ -502,9 +502,9 @@ always available. The :term:`named tuple` *flags* exposes the status of command line flags. The attributes are read only. - ============================= ================================================================ + ============================= ============================================================================================================== attribute flag - ============================= ================================================================ + ============================= ============================================================================================================== :const:`debug` :option:`-d` :const:`inspect` :option:`-i` :const:`interactive` :option:`-i` @@ -521,7 +521,8 @@ always available. :const:`dev_mode` :option:`-X dev <-X>` (:ref:`Python Development Mode `) :const:`utf8_mode` :option:`-X utf8 <-X>` :const:`safe_path` :option:`-P` - ============================= ================================================================ + :const:`int_max_str_digits` :option:`-X int_max_str_digits <-X>` (:ref:`integer string conversion length limitation `) + ============================= ============================================================================================================== .. versionchanged:: 3.2 Added ``quiet`` attribute for the new :option:`-q` flag. @@ -543,6 +544,9 @@ always available. .. versionchanged:: 3.11 Added the ``safe_path`` attribute for :option:`-P` option. + .. versionchanged:: 3.12 + Added the ``int_max_str_digits`` attribute. + .. data:: float_info @@ -723,6 +727,13 @@ always available. .. versionadded:: 3.6 +.. function:: get_int_max_str_digits() + + Returns the current value for the :ref:`integer string conversion length + limitation `. See also :func:`set_int_max_str_digits`. + + .. versionadded:: 3.12 + .. function:: getrefcount(object) Return the reference count of the *object*. The count returned is generally one @@ -774,7 +785,7 @@ always available. that is deeper than the call stack, :exc:`ValueError` is raised. The default for *depth* is zero, returning the frame at the top of the call stack. - .. audit-event:: sys._getframe "" sys._getframe + .. audit-event:: sys._getframe frame sys._getframe .. impl-detail:: @@ -996,19 +1007,31 @@ always available. .. tabularcolumns:: |l|L| - +-------------------------+----------------------------------------------+ - | Attribute | Explanation | - +=========================+==============================================+ - | :const:`bits_per_digit` | number of bits held in each digit. Python | - | | integers are stored internally in base | - | | ``2**int_info.bits_per_digit`` | - +-------------------------+----------------------------------------------+ - | :const:`sizeof_digit` | size in bytes of the C type used to | - | | represent a digit | - +-------------------------+----------------------------------------------+ + +----------------------------------------+-----------------------------------------------+ + | Attribute | Explanation | + +========================================+===============================================+ + | :const:`bits_per_digit` | number of bits held in each digit. Python | + | | integers are stored internally in base | + | | ``2**int_info.bits_per_digit`` | + +----------------------------------------+-----------------------------------------------+ + | :const:`sizeof_digit` | size in bytes of the C type used to | + | | represent a digit | + +----------------------------------------+-----------------------------------------------+ + | :const:`default_max_str_digits` | default value for | + | | :func:`sys.get_int_max_str_digits` when it | + | | is not otherwise explicitly configured. | + +----------------------------------------+-----------------------------------------------+ + | :const:`str_digits_check_threshold` | minimum non-zero value for | + | | :func:`sys.set_int_max_str_digits`, | + | | :envvar:`PYTHONINTMAXSTRDIGITS`, or | + | | :option:`-X int_max_str_digits <-X>`. | + +----------------------------------------+-----------------------------------------------+ .. versionadded:: 3.1 + .. versionchanged:: 3.12 + Added ``default_max_str_digits`` and ``str_digits_check_threshold``. + .. data:: __interactivehook__ @@ -1087,7 +1110,8 @@ always available. A list of :term:`meta path finder` objects that have their :meth:`~importlib.abc.MetaPathFinder.find_spec` methods called to see if one - of the objects can find the module to be imported. The + of the objects can find the module to be imported. By default, it holds entries + that implement Python's default import semantics. The :meth:`~importlib.abc.MetaPathFinder.find_spec` method is called with at least the absolute name of the module being imported. If the module to be imported is contained in a package, then the parent package's :attr:`__path__` @@ -1157,7 +1181,7 @@ always available. line option or the :envvar:`PYTHONSAFEPATH` environment variable? A program is free to modify this list for its own purposes. Only strings - and bytes should be added to :data:`sys.path`; all other data types are + should be added to :data:`sys.path`; all other data types are ignored during import. @@ -1307,6 +1331,14 @@ always available. .. availability:: Unix. +.. function:: set_int_max_str_digits(maxdigits) + + Set the :ref:`integer string conversion length limitation + ` used by this interpreter. See also + :func:`get_int_max_str_digits`. + + .. versionadded:: 3.12 + .. function:: setprofile(profilefunc) .. index:: @@ -1657,6 +1689,8 @@ always available. | | | | | * ``'nt'``: Windows threads | | | * ``'pthread'``: POSIX threads | + | | * ``'pthread-stubs'``: stub POSIX threads | + | | (on WebAssembly platforms without threading support) | | | * ``'solaris'``: Solaris threads | +------------------+---------------------------------------------------------+ | :const:`lock` | Name of the lock implementation: | @@ -1777,13 +1811,13 @@ always available. .. code-block:: shell-session - $ ./python -Xpycache_prefix=some_path -Xdev + $ ./python -Xa=b -Xc Python 3.2a3+ (py3k, Oct 16 2010, 20:14:50) [GCC 4.4.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys._xoptions - {'pycache_prefix': 'some_path', 'dev': True} + {'a': 'b', 'c': True} .. impl-detail:: @@ -1796,4 +1830,4 @@ always available. .. rubric:: Citations -.. [C99] ISO/IEC 9899:1999. "Programming languages -- C." A public draft of this standard is available at http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf\ . +.. [C99] ISO/IEC 9899:1999. "Programming languages -- C." A public draft of this standard is available at https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf\ . diff --git a/Doc/library/sysconfig.rst b/Doc/library/sysconfig.rst index fa18d62d22af51..024988777030f8 100644 --- a/Doc/library/sysconfig.rst +++ b/Doc/library/sysconfig.rst @@ -25,7 +25,7 @@ Configuration variables A Python distribution contains a :file:`Makefile` and a :file:`pyconfig.h` header file that are necessary to build both the Python binary itself and -third-party C extensions compiled using :mod:`distutils`. +third-party C extensions compiled using ``setuptools``. :mod:`sysconfig` puts all variables found in these files in a dictionary that can be accessed using :func:`get_config_vars` or :func:`get_config_var`. diff --git a/Doc/library/syslog.rst b/Doc/library/syslog.rst index d264a3340c98b0..766ff57cc66d69 100644 --- a/Doc/library/syslog.rst +++ b/Doc/library/syslog.rst @@ -15,6 +15,8 @@ This module wraps the system ``syslog`` family of routines. A pure Python library that can speak to a syslog server is available in the :mod:`logging.handlers` module as :class:`SysLogHandler`. +.. include:: ../includes/wasm-notavail.rst + The module defines the following functions: @@ -29,10 +31,15 @@ The module defines the following functions: value given in the :func:`openlog` call is used. If :func:`openlog` has not been called prior to the call to :func:`syslog`, - ``openlog()`` will be called with no arguments. + :func:`openlog` will be called with no arguments. .. audit-event:: syslog.syslog priority,message syslog.syslog + .. versionchanged:: 3.2 + In previous versions, :func:`openlog` would not be called automatically if + it wasn't called prior to the call to :func:`syslog`, deferring to the syslog + implementation to call ``openlog()``. + .. function:: openlog([ident[, logoption[, facility]]]) @@ -51,8 +58,7 @@ The module defines the following functions: .. versionchanged:: 3.2 In previous versions, keyword arguments were not allowed, and *ident* was - required. The default for *ident* was dependent on the system libraries, - and often was ``python`` instead of the name of the Python program file. + required. .. function:: closelog() diff --git a/Doc/library/tarfile.rst b/Doc/library/tarfile.rst index f5c49b0ac4f738..6e8baba04fb92d 100644 --- a/Doc/library/tarfile.rst +++ b/Doc/library/tarfile.rst @@ -98,8 +98,8 @@ Some facts and figures: If *fileobj* is specified, it is used as an alternative to a :term:`file object` opened in binary mode for *name*. It is supposed to be at position 0. - For modes ``'w:gz'``, ``'r:gz'``, ``'w:bz2'``, ``'r:bz2'``, ``'x:gz'``, - ``'x:bz2'``, :func:`tarfile.open` accepts the keyword argument + For modes ``'w:gz'``, ``'x:gz'``, ``'w|gz'``, ``'w:bz2'``, ``'x:bz2'``, + ``'w|bz2'``, :func:`tarfile.open` accepts the keyword argument *compresslevel* (default ``9``) to specify the compression level of the file. For modes ``'w:xz'`` and ``'x:xz'``, :func:`tarfile.open` accepts the @@ -152,6 +152,9 @@ Some facts and figures: .. versionchanged:: 3.6 The *name* parameter accepts a :term:`path-like object`. + .. versionchanged:: 3.12 + The *compresslevel* keyword argument also works for streams. + .. class:: TarFile :noindex: @@ -836,7 +839,7 @@ There are three tar formats that can be created with the :mod:`tarfile` module: files and stores pathnames in a portable way. Modern tar implementations, including GNU tar, bsdtar/libarchive and star, fully support extended *pax* features; some old or unmaintained libraries may not, but should treat - *pax* archives as if they were in the universally-supported *ustar* format. + *pax* archives as if they were in the universally supported *ustar* format. It is the current default format for new archives. It extends the existing *ustar* format with extra headers for information diff --git a/Doc/library/telnetlib.rst b/Doc/library/telnetlib.rst index 70b8c7d1511d09..5a993dc42a5ab2 100644 --- a/Doc/library/telnetlib.rst +++ b/Doc/library/telnetlib.rst @@ -30,6 +30,7 @@ SE (Subnegotiation End), NOP (No Operation), DM (Data Mark), BRK (Break), IP (Interrupt process), AO (Abort output), AYT (Are You There), EC (Erase Character), EL (Erase Line), GA (Go Ahead), SB (Subnegotiation Begin). +.. include:: ../includes/wasm-notavail.rst .. class:: Telnet(host=None, port=0[, timeout]) diff --git a/Doc/library/test.rst b/Doc/library/test.rst index 5c458bf3ec2f26..eff375132318a9 100644 --- a/Doc/library/test.rst +++ b/Doc/library/test.rst @@ -413,6 +413,51 @@ The :mod:`test.support` module defines the following constants: The :mod:`test.support` module defines the following functions: +.. function:: busy_retry(timeout, err_msg=None, /, *, error=True) + + Run the loop body until ``break`` stops the loop. + + After *timeout* seconds, raise an :exc:`AssertionError` if *error* is true, + or just stop the loop if *error* is false. + + Example:: + + for _ in support.busy_retry(support.SHORT_TIMEOUT): + if check(): + break + + Example of error=False usage:: + + for _ in support.busy_retry(support.SHORT_TIMEOUT, error=False): + if check(): + break + else: + raise RuntimeError('my custom error') + +.. function:: sleeping_retry(timeout, err_msg=None, /, *, init_delay=0.010, max_delay=1.0, error=True) + + Wait strategy that applies exponential backoff. + + Run the loop body until ``break`` stops the loop. Sleep at each loop + iteration, but not at the first iteration. The sleep delay is doubled at + each iteration (up to *max_delay* seconds). + + See :func:`busy_retry` documentation for the parameters usage. + + Example raising an exception after SHORT_TIMEOUT seconds:: + + for _ in support.sleeping_retry(support.SHORT_TIMEOUT): + if check(): + break + + Example of error=False usage:: + + for _ in support.sleeping_retry(support.SHORT_TIMEOUT, error=False): + if check(): + break + else: + raise RuntimeError('my custom error') + .. function:: is_resource_enabled(resource) Return ``True`` if *resource* is enabled and available. The list of @@ -749,6 +794,12 @@ The :mod:`test.support` module defines the following functions: Decorator for only running the test if :data:`HAVE_DOCSTRINGS`. +.. decorator:: requires_limited_api + + Decorator for only running the test if :ref:`Limited C API ` + is available. + + .. decorator:: cpython_only Decorator for tests only applicable to CPython. @@ -960,6 +1011,16 @@ The :mod:`test.support` module defines the following functions: .. versionadded:: 3.10 +.. function:: adjust_int_max_str_digits(max_digits) + + This function returns a context manager that will change the global + :func:`sys.set_int_max_str_digits` setting for the duration of the + context to allow execution of test code that needs a different limit + on the number of digits when converting between an integer and string. + + .. versionadded:: 3.12 + + The :mod:`test.support` module defines the following classes: diff --git a/Doc/library/threading.rst b/Doc/library/threading.rst index 58e4ad786fe17f..b352125551fa79 100644 --- a/Doc/library/threading.rst +++ b/Doc/library/threading.rst @@ -9,11 +9,23 @@ -------------- This module constructs higher-level threading interfaces on top of the lower -level :mod:`_thread` module. See also the :mod:`queue` module. +level :mod:`_thread` module. .. versionchanged:: 3.7 This module used to be optional, it is now always available. +.. seealso:: + + :class:`concurrent.futures.ThreadPoolExecutor` offers a higher level interface + to push tasks to a background thread without blocking execution of the + calling thread, while still being able to retrieve their results when needed. + + :mod:`queue` provides a thread-safe interface for exchanging data between + running threads. + + :mod:`asyncio` offers an alternative approach to achieving task level + concurrency without requiring the use of multiple operating system threads. + .. note:: In the Python 2.x series, this module contained ``camelCase`` names @@ -33,6 +45,7 @@ level :mod:`_thread` module. See also the :mod:`queue` module. However, threading is still an appropriate model if you want to run multiple I/O-bound tasks simultaneously. +.. include:: ../includes/wasm-notavail.rst This module defines the following functions: @@ -145,6 +158,15 @@ This module defines the following functions: The *func* will be passed to :func:`sys.settrace` for each thread, before its :meth:`~Thread.run` method is called. +.. function:: settrace_all_threads(func) + + Set a trace function for all threads started from the :mod:`threading` module + and all Python threads that are currently executing. + + The *func* will be passed to :func:`sys.settrace` for each thread, before its + :meth:`~Thread.run` method is called. + + .. versionadded:: 3.12 .. function:: gettrace() @@ -165,6 +187,15 @@ This module defines the following functions: The *func* will be passed to :func:`sys.setprofile` for each thread, before its :meth:`~Thread.run` method is called. +.. function:: setprofile_all_threads(func) + + Set a profile function for all threads started from the :mod:`threading` module + and all Python threads that are currently executing. + + The *func* will be passed to :func:`sys.setprofile` for each thread, before its + :meth:`~Thread.run` method is called. + + .. versionadded:: 3.12 .. function:: getprofile() @@ -192,7 +223,9 @@ This module defines the following functions: information (4 KiB pages are common; using multiples of 4096 for the stack size is the suggested approach in the absence of more specific information). - .. availability:: Windows, systems with POSIX threads. + .. availability:: Windows, pthreads. + + Unix platforms with POSIX threads support. This module also defines the following constant: @@ -429,7 +462,7 @@ since it is impossible to detect the termination of alien threads. system-wide) from the time the thread is created until the thread has been terminated. - .. availability:: Requires :func:`get_native_id` function. + .. availability:: Windows, FreeBSD, Linux, macOS, OpenBSD, NetBSD, AIX, DragonFlyBSD. .. versionadded:: 3.8 diff --git a/Doc/library/time.rst b/Doc/library/time.rst index be17fa68eb7b58..9f23a6fc7d5341 100644 --- a/Doc/library/time.rst +++ b/Doc/library/time.rst @@ -144,8 +144,10 @@ Functions Passing an invalid or expired *thread_id* may result in undefined behavior, such as segmentation fault. - .. availability:: Unix (see the man page for :manpage:`pthread_getcpuclockid(3)` for - further information). + .. availability:: Unix + + See the man page for :manpage:`pthread_getcpuclockid(3)` for + further information. .. versionadded:: 3.7 @@ -651,8 +653,9 @@ Functions Use :func:`thread_time_ns` to avoid the precision loss caused by the :class:`float` type. - .. availability:: Windows, Linux, Unix systems supporting - ``CLOCK_THREAD_CPUTIME_ID``. + .. availability:: Linux, Unix, Windows. + + Unix systems supporting ``CLOCK_THREAD_CPUTIME_ID``. .. versionadded:: 3.7 @@ -770,7 +773,7 @@ These constants are used as parameters for :func:`clock_getres` and have discontinuities if the time is changed using ``settimeofday()`` or similar. - .. availability:: Linux 2.6.39 or later. + .. availability:: Linux >= 2.6.39. .. versionadded:: 3.7 @@ -801,7 +804,7 @@ These constants are used as parameters for :func:`clock_getres` and Similar to :data:`CLOCK_MONOTONIC`, but provides access to a raw hardware-based time that is not subject to NTP adjustments. - .. availability:: Linux 2.6.28 and newer, macOS 10.12 and newer. + .. availability:: Linux >= 2.6.28, macOS >= 10.12. .. versionadded:: 3.3 @@ -819,7 +822,7 @@ These constants are used as parameters for :func:`clock_getres` and High-resolution per-process timer from the CPU. - .. availability:: FreeBSD, NetBSD 7 or later, OpenBSD. + .. availability:: FreeBSD, NetBSD >= 7, OpenBSD. .. versionadded:: 3.7 @@ -849,7 +852,7 @@ These constants are used as parameters for :func:`clock_getres` and suspended, providing accurate uptime measurement, both absolute and interval. - .. availability:: FreeBSD, OpenBSD 5.5 or later. + .. availability:: FreeBSD, OpenBSD >= 5.5. .. versionadded:: 3.7 @@ -860,7 +863,7 @@ These constants are used as parameters for :func:`clock_getres` and point, unaffected by frequency or time adjustments and not incremented while the system is asleep. - .. availability:: macOS 10.12 and newer. + .. availability:: macOS >= 10.12. .. versionadded:: 3.8 diff --git a/Doc/library/tkinter.rst b/Doc/library/tkinter.rst index 096a343bd95589..0d2b344d24f269 100644 --- a/Doc/library/tkinter.rst +++ b/Doc/library/tkinter.rst @@ -61,7 +61,7 @@ details that are unchanged. * `Python and Tkinter Programming `_ By Alan Moore. (ISBN 978-1788835886) - * `Programming Python `_ + * `Programming Python `_ By Mark Lutz; has excellent coverage of Tkinter. (ISBN 978-0596158101) * `Tcl and the Tk Toolkit (2nd edition) `_ @@ -90,7 +90,7 @@ Tcl (see `Threading model`_ for details). Tk - Tk is a `Tcl package `_ implemented in C + Tk is a `Tcl package `_ implemented in C that adds custom commands to create and manipulate GUI widgets. Each :class:`Tk` object embeds its own Tcl interpreter instance with Tk loaded into it. Tk's widgets are very customizable, though at the cost of a dated appearance. @@ -988,7 +988,7 @@ wherever the image was used. .. seealso:: - The `Pillow `_ package adds support for + The `Pillow `_ package adds support for formats such as BMP, JPEG, TIFF, and WebP, among others. .. _tkinter-file-handlers: diff --git a/Doc/library/tkinter.ttk.rst b/Doc/library/tkinter.ttk.rst index d50ea99aa46eed..b05799ef601eb6 100644 --- a/Doc/library/tkinter.ttk.rst +++ b/Doc/library/tkinter.ttk.rst @@ -286,7 +286,7 @@ methods :meth:`tkinter.Widget.cget` and :meth:`tkinter.Widget.configure`. Modify or inquire widget state. If *statespec* is specified, sets the widget state according to it and return a new *statespec* indicating which flags were changed. If *statespec* is not specified, returns - the currently-enabled state flags. + the currently enabled state flags. *statespec* will usually be a list or a tuple. @@ -465,7 +465,7 @@ Notebook Ttk Notebook widget manages a collection of windows and displays a single one at a time. Each child window is associated with a tab, which the user -may select to change the currently-displayed window. +may select to change the currently displayed window. Options @@ -543,7 +543,7 @@ of the following forms: * An integer between zero and the number of tabs * The name of a child window * A positional specification of the form "@x,y", which identifies the tab -* The literal string "current", which identifies the currently-selected tab +* The literal string "current", which identifies the currently selected tab * The literal string "end", which returns the number of tabs (only valid for :meth:`Notebook.index`) @@ -613,7 +613,7 @@ ttk.Notebook Selects the specified *tab_id*. The associated child window will be displayed, and the - previously-selected window (if different) is unmapped. If *tab_id* is + previously selected window (if different) is unmapped. If *tab_id* is omitted, returns the widget name of the currently selected pane. diff --git a/Doc/library/traceback.rst b/Doc/library/traceback.rst index 796309c6cf0bb9..f8c1eabadacf9f 100644 --- a/Doc/library/traceback.rst +++ b/Doc/library/traceback.rst @@ -341,6 +341,10 @@ capture data for later printing in a lightweight fashion. local variables in each :class:`FrameSummary` are captured as object representations. + .. versionchanged:: 3.12 + Exceptions raised from :func:`repr` on a local variable (when + *capture_locals* is ``True``) are no longer propagated to the caller. + .. classmethod:: from_list(a_list) Construct a :class:`StackSummary` object from a supplied list of @@ -425,9 +429,9 @@ exception and traceback: import sys, traceback def lumberjack(): - bright_side_of_death() + bright_side_of_life() - def bright_side_of_death(): + def bright_side_of_life(): return tuple()[0] try: @@ -437,9 +441,7 @@ exception and traceback: print("*** print_tb:") traceback.print_tb(exc_traceback, limit=1, file=sys.stdout) print("*** print_exception:") - # exc_type below is ignored on 3.5 and later - traceback.print_exception(exc_type, exc_value, exc_traceback, - limit=2, file=sys.stdout) + traceback.print_exception(exc_value, limit=2, file=sys.stdout) print("*** print_exc:") traceback.print_exc(limit=2, file=sys.stdout) print("*** format_exc, first and last line:") @@ -447,9 +449,7 @@ exception and traceback: print(formatted_lines[0]) print(formatted_lines[-1]) print("*** format_exception:") - # exc_type below is ignored on 3.5 and later - print(repr(traceback.format_exception(exc_type, exc_value, - exc_traceback))) + print(repr(traceback.format_exception(exc_value))) print("*** extract_tb:") print(repr(traceback.extract_tb(exc_traceback))) print("*** format_tb:") @@ -464,42 +464,37 @@ The output for the example would look similar to this: *** print_tb: File "", line 10, in lumberjack() - ^^^^^^^^^^^^ *** print_exception: Traceback (most recent call last): File "", line 10, in lumberjack() - ^^^^^^^^^^^^ File "", line 4, in lumberjack - bright_side_of_death() - ^^^^^^^^^^^^^^^^^^^^^^ + bright_side_of_life() IndexError: tuple index out of range *** print_exc: Traceback (most recent call last): File "", line 10, in lumberjack() - ^^^^^^^^^^^^ File "", line 4, in lumberjack - bright_side_of_death() - ^^^^^^^^^^^^^^^^^^^^^^ + bright_side_of_life() IndexError: tuple index out of range *** format_exc, first and last line: Traceback (most recent call last): IndexError: tuple index out of range *** format_exception: ['Traceback (most recent call last):\n', - ' File "", line 10, in \n lumberjack()\n ^^^^^^^^^^^^\n', - ' File "", line 4, in lumberjack\n bright_side_of_death()\n ^^^^^^^^^^^^^^^^^^^^^^\n', - ' File "", line 7, in bright_side_of_death\n return tuple()[0]\n ~~~~~~~^^^\n', + ' File "", line 10, in \n lumberjack()\n', + ' File "", line 4, in lumberjack\n bright_side_of_life()\n', + ' File "", line 7, in bright_side_of_life\n return tuple()[0]\n ~~~~~~~^^^\n', 'IndexError: tuple index out of range\n'] *** extract_tb: [, line 10 in >, , line 4 in lumberjack>, - , line 7 in bright_side_of_death>] + , line 7 in bright_side_of_life>] *** format_tb: - [' File "", line 10, in \n lumberjack()\n ^^^^^^^^^^^^\n', - ' File "", line 4, in lumberjack\n bright_side_of_death()\n ^^^^^^^^^^^^^^^^^^^^^^\n', - ' File "", line 7, in bright_side_of_death\n return tuple()[0]\n ~~~~~~~^^^\n'] + [' File "", line 10, in \n lumberjack()\n', + ' File "", line 4, in lumberjack\n bright_side_of_life()\n', + ' File "", line 7, in bright_side_of_life\n return tuple()[0]\n ~~~~~~~^^^\n'] *** tb_lineno: 10 diff --git a/Doc/library/turtle.rst b/Doc/library/turtle.rst index 17bf8829a9fed1..5add61c759ea8e 100644 --- a/Doc/library/turtle.rst +++ b/Doc/library/turtle.rst @@ -1279,7 +1279,7 @@ Appearance (direction of movement). .. doctest:: - :skipif: _tkinter is None + :skipif: _tkinter is None or 'always; deprecated method' >>> turtle.reset() >>> turtle.shape("circle") diff --git a/Doc/library/types.rst b/Doc/library/types.rst index e0e77dfbfe7ed2..cce0ad960edf97 100644 --- a/Doc/library/types.rst +++ b/Doc/library/types.rst @@ -417,6 +417,12 @@ Standard names are defined for the following types: .. versionadded:: 3.9 + .. describe:: hash(proxy) + + Return a hash of the underlying mapping. + + .. versionadded:: 3.12 + Additional Utility Classes and Functions ---------------------------------------- diff --git a/Doc/library/typing.rst b/Doc/library/typing.rst index 7ddc84ac5e4518..0939973cf24e62 100644 --- a/Doc/library/typing.rst +++ b/Doc/library/typing.rst @@ -78,10 +78,14 @@ annotations. These include: *Introducing* :data:`TypeVarTuple` * :pep:`647`: User-Defined Type Guards *Introducing* :data:`TypeGuard` +* :pep:`655`: Marking individual TypedDict items as required or potentially missing + *Introducing* :data:`Required` and :data:`NotRequired` * :pep:`673`: Self type *Introducing* :data:`Self` * :pep:`675`: Arbitrary Literal String Type *Introducing* :data:`LiteralString` +* :pep:`681`: Data Class Transforms + *Introducing* the :func:`@dataclass_transform` decorator .. _type-aliases: @@ -679,7 +683,7 @@ These can be used as types in annotations and do not support ``[]``. from typing import Self class Foo: - def returns_self(self) -> Self: + def return_self(self) -> Self: ... return self @@ -692,7 +696,7 @@ These can be used as types in annotations and do not support ``[]``. Self = TypeVar("Self", bound="Foo") class Foo: - def returns_self(self: Self) -> Self: + def return_self(self: Self) -> Self: ... return self @@ -703,7 +707,7 @@ These can be used as types in annotations and do not support ``[]``. ... return self - You should use use :data:`Self` as calls to ``SubclassOfFoo.returns_self`` would have + You should use :data:`Self` as calls to ``SubclassOfFoo.return_self`` would have ``Foo`` as the return type and not ``SubclassOfFoo``. Other common use cases include: @@ -1022,6 +1026,18 @@ These can be used as types in annotations using ``[]``, each having a unique syn .. versionadded:: 3.8 +.. data:: Required + +.. data:: NotRequired + + Special typing constructs that mark individual keys of a :class:`TypedDict` + as either required or non-required respectively. + + For more information, see :class:`TypedDict` and + :pep:`655` ("Marking individual TypedDict items as required or potentially missing"). + + .. versionadded:: 3.11 + .. data:: Annotated A type, introduced in :pep:`593` (``Flexible function and variable @@ -1289,20 +1305,25 @@ These are not used in annotations. They are building blocks for creating generic T = TypeVar('T') Ts = TypeVarTuple('Ts') - def remove_first_element(tup: tuple[T, *Ts]) -> tuple[*Ts]: - return tup[1:] + def move_first_element_to_last(tup: tuple[T, *Ts]) -> tuple[*Ts, T]: + return (*tup[1:], tup[0]) # T is bound to int, Ts is bound to () - # Return value is (), which has type tuple[()] - remove_first_element(tup=(1,)) + # Return value is (1,), which has type tuple[int] + move_first_element_to_last(tup=(1,)) # T is bound to int, Ts is bound to (str,) - # Return value is ('spam',), which has type tuple[str] - remove_first_element(tup=(1, 'spam')) + # Return value is ('spam', 1), which has type tuple[str, int] + move_first_element_to_last(tup=(1, 'spam')) # T is bound to int, Ts is bound to (str, float) - # Return value is ('spam', 3.0), which has type tuple[str, float] - remove_first_element(tup=(1, 'spam', 3.0)) + # Return value is ('spam', 3.0, 1), which has type tuple[str, float, int] + move_first_element_to_last(tup=(1, 'spam', 3.0)) + + # This fails to type check (and fails at runtime) + # because tuple[()] is not compatible with tuple[T, *Ts] + # (at least one element is required) + move_first_element_to_last(tup=()) Note the use of the unpacking operator ``*`` in ``tuple[T, *Ts]``. Conceptually, you can think of ``Ts`` as a tuple of type variables @@ -1706,8 +1727,21 @@ These are not used in annotations. They are building blocks for declaring types. Point2D = TypedDict('Point2D', {'in': int, 'x-y': int}) By default, all keys must be present in a ``TypedDict``. It is possible to - override this by specifying totality. - Usage:: + mark individual keys as non-required using :data:`NotRequired`:: + + class Point2D(TypedDict): + x: int + y: int + label: NotRequired[str] + + # Alternative syntax + Point2D = TypedDict('Point2D', {'x': int, 'y': int, 'label': NotRequired[str]}) + + This means that a ``Point2D`` ``TypedDict`` can have the ``label`` + key omitted. + + It is also possible to mark all keys as non-required by default + by specifying a totality of ``False``:: class Point2D(TypedDict, total=False): x: int @@ -1721,6 +1755,21 @@ These are not used in annotations. They are building blocks for declaring types. ``True`` as the value of the ``total`` argument. ``True`` is the default, and makes all items defined in the class body required. + Individual keys of a ``total=False`` ``TypedDict`` can be marked as + required using :data:`Required`:: + + class Point2D(TypedDict, total=False): + x: Required[int] + y: Required[int] + label: str + + # Alternative syntax + Point2D = TypedDict('Point2D', { + 'x': Required[int], + 'y': Required[int], + 'label': str + }, total=False) + It is possible for a ``TypedDict`` type to inherit from one or more other ``TypedDict`` types using the class-based syntax. Usage:: @@ -1781,15 +1830,23 @@ These are not used in annotations. They are building blocks for declaring types. True .. attribute:: __required_keys__ + + .. versionadded:: 3.9 + .. attribute:: __optional_keys__ ``Point2D.__required_keys__`` and ``Point2D.__optional_keys__`` return :class:`frozenset` objects containing required and non-required keys, respectively. - Currently the only way to declare both required and non-required keys in the - same ``TypedDict`` is mixed inheritance, declaring a ``TypedDict`` with one value - for the ``total`` argument and then inheriting it from another ``TypedDict`` with - a different value for ``total``. - Usage:: + + Keys marked with :data:`Required` will always appear in ``__required_keys__`` + and keys marked with :data:`NotRequired` will always appear in ``__optional_keys__``. + + For backwards compatibility with Python 3.10 and below, + it is also possible to use inheritance to declare both required and + non-required keys in the same ``TypedDict`` . This is done by declaring a + ``TypedDict`` with one value for the ``total`` argument and then + inheriting from it in another ``TypedDict`` with a different value for + ``total``:: >>> class Point2D(TypedDict, total=False): ... x: int @@ -1803,10 +1860,16 @@ These are not used in annotations. They are building blocks for declaring types. >>> Point3D.__optional_keys__ == frozenset({'x', 'y'}) True + .. versionadded:: 3.9 + See :pep:`589` for more examples and detailed rules of using ``TypedDict``. .. versionadded:: 3.8 + .. versionchanged:: 3.11 + Added support for marking individual keys as :data:`Required` or :data:`NotRequired`. + See :pep:`655`. + .. versionchanged:: 3.11 Added support for generic ``TypedDict``\ s. @@ -2162,6 +2225,9 @@ Corresponding to other types in :mod:`collections.abc` An alias to :class:`collections.abc.Hashable`. + .. deprecated:: 3.12 + Use :class:`collections.abc.Hashable` directly instead. + .. class:: Reversible(Iterable[T_co]) A generic version of :class:`collections.abc.Reversible`. @@ -2174,6 +2240,9 @@ Corresponding to other types in :mod:`collections.abc` An alias to :class:`collections.abc.Sized`. + .. deprecated:: 3.12 + Use :class:`collections.abc.Sized` directly instead. + Asynchronous programming """""""""""""""""""""""" @@ -2477,7 +2546,17 @@ Functions and decorators For example, type checkers will assume these classes have ``__init__`` methods that accept ``id`` and ``name``. - The arguments to this decorator can be used to customize this behavior: + The decorated class, metaclass, or function may accept the following bool + arguments which type checkers will assume have the same effect as they + would have on the + :func:`@dataclasses.dataclass` decorator: ``init``, + ``eq``, ``order``, ``unsafe_hash``, ``frozen``, ``match_args``, + ``kw_only``, and ``slots``. It must be possible for the value of these + arguments (``True`` or ``False``) to be statically evaluated. + + The arguments to the ``dataclass_transform`` decorator can be used to + customize the default behaviors of the decorated class, metaclass, or + function: * ``eq_default`` indicates whether the ``eq`` parameter is assumed to be ``True`` or ``False`` if it is omitted by the caller. @@ -2490,6 +2569,28 @@ Functions and decorators * Arbitrary other keyword arguments are accepted in order to allow for possible future extensions. + Type checkers recognize the following optional arguments on field + specifiers: + + * ``init`` indicates whether the field should be included in the + synthesized ``__init__`` method. If unspecified, ``init`` defaults to + ``True``. + * ``default`` provides the default value for the field. + * ``default_factory`` provides a runtime callback that returns the + default value for the field. If neither ``default`` nor + ``default_factory`` are specified, the field is assumed to have no + default value and must be provided a value when the class is + instantiated. + * ``factory`` is an alias for ``default_factory``. + * ``kw_only`` indicates whether the field should be marked as + keyword-only. If ``True``, the field will be keyword-only. If + ``False``, it will not be keyword-only. If unspecified, the value of + the ``kw_only`` parameter on the object decorated with + ``dataclass_transform`` will be used, or if that is unspecified, the + value of ``kw_only_default`` on ``dataclass_transform`` will be used. + * ``alias`` provides an alternative name for the field. This alternative + name is used in the synthesized ``__init__`` method. + At runtime, this decorator records its arguments in the ``__dataclass_transform__`` attribute on the decorated object. It has no other runtime effect. @@ -2764,3 +2865,6 @@ convenience. This is subject to change, and not all deprecations are listed. +----------------------------------+---------------+-------------------+----------------+ | ``typing.Text`` | 3.11 | Undecided | :gh:`92332` | +----------------------------------+---------------+-------------------+----------------+ +| ``typing.Hashable`` and | 3.12 | Undecided | :gh:`94309` | +| ``typing.Sized`` | | | | ++----------------------------------+---------------+-------------------+----------------+ diff --git a/Doc/library/unicodedata.rst b/Doc/library/unicodedata.rst index 6276f6382a06ea..3a094f9c64d4a0 100644 --- a/Doc/library/unicodedata.rst +++ b/Doc/library/unicodedata.rst @@ -17,8 +17,8 @@ This module provides access to the Unicode Character Database (UCD) which defines character properties for all Unicode characters. The data contained in -this database is compiled from the `UCD version 14.0.0 -`_. +this database is compiled from the `UCD version 15.0.0 +`_. The module uses the same names and symbols as defined by Unicode Standard Annex #44, `"Unicode Character Database" @@ -175,6 +175,6 @@ Examples: .. rubric:: Footnotes -.. [#] https://www.unicode.org/Public/14.0.0/ucd/NameAliases.txt +.. [#] https://www.unicode.org/Public/15.0.0/ucd/NameAliases.txt -.. [#] https://www.unicode.org/Public/14.0.0/ucd/NamedSequences.txt +.. [#] https://www.unicode.org/Public/15.0.0/ucd/NamedSequences.txt diff --git a/Doc/library/unittest.mock.rst b/Doc/library/unittest.mock.rst index acc0d67541ae82..b768557e6075f6 100644 --- a/Doc/library/unittest.mock.rst +++ b/Doc/library/unittest.mock.rst @@ -1944,7 +1944,7 @@ Both patch_ and patch.object_ correctly patch and restore descriptors: class methods, static methods and properties. You should patch these on the *class* rather than an instance. They also work with *some* objects that proxy attribute access, like the `django settings object -`_. +`_. MagicMock and magic method support diff --git a/Doc/library/unittest.rst b/Doc/library/unittest.rst index e07a32b88b1c30..38be6b82b492d4 100644 --- a/Doc/library/unittest.rst +++ b/Doc/library/unittest.rst @@ -1150,8 +1150,8 @@ Test cases Example:: with self.assertLogs('foo', level='INFO') as cm: - logging.getLogger('foo').info('first message') - logging.getLogger('foo.bar').error('second message') + logging.getLogger('foo').info('first message') + logging.getLogger('foo.bar').error('second message') self.assertEqual(cm.output, ['INFO:foo:first message', 'ERROR:foo.bar:second message']) @@ -1261,9 +1261,6 @@ Test cases :meth:`.assertRegex`. .. versionadded:: 3.2 :meth:`.assertNotRegex`. - .. versionadded:: 3.5 - The name ``assertNotRegexpMatches`` is a deprecated alias - for :meth:`.assertNotRegex`. .. method:: assertCountEqual(first, second, msg=None) @@ -1660,40 +1657,6 @@ Test cases :mod:`unittest`-based test framework. -.. _deprecated-aliases: - -Deprecated aliases -################## - -For historical reasons, some of the :class:`TestCase` methods had one or more -aliases that are now deprecated. The following table lists the correct names -along with their deprecated aliases: - - ============================== ====================== ======================= - Method Name Deprecated alias Deprecated alias - ============================== ====================== ======================= - :meth:`.assertEqual` failUnlessEqual assertEquals - :meth:`.assertNotEqual` failIfEqual assertNotEquals - :meth:`.assertTrue` failUnless assert\_ - :meth:`.assertFalse` failIf - :meth:`.assertRaises` failUnlessRaises - :meth:`.assertAlmostEqual` failUnlessAlmostEqual assertAlmostEquals - :meth:`.assertNotAlmostEqual` failIfAlmostEqual assertNotAlmostEquals - :meth:`.assertRegex` assertRegexpMatches - :meth:`.assertNotRegex` assertNotRegexpMatches - :meth:`.assertRaisesRegex` assertRaisesRegexp - ============================== ====================== ======================= - - .. deprecated:: 3.1 - The fail* aliases listed in the second column have been deprecated. - .. deprecated:: 3.2 - The assert* aliases listed in the third column have been deprecated. - .. deprecated:: 3.2 - ``assertRegexpMatches`` and ``assertRaisesRegexp`` have been renamed to - :meth:`.assertRegex` and :meth:`.assertRaisesRegex`. - .. deprecated:: 3.5 - The ``assertNotRegexpMatches`` name is deprecated in favor of :meth:`.assertNotRegex`. - .. _testsuite-objects: Grouping tests @@ -1819,7 +1782,7 @@ Loading and running tests case is created for that method instead. - .. method:: loadTestsFromModule(module, pattern=None) + .. method:: loadTestsFromModule(module, *, pattern=None) Return a suite of all test cases contained in the given module. This method searches *module* for classes derived from :class:`TestCase` and @@ -1843,10 +1806,11 @@ Loading and running tests Support for ``load_tests`` added. .. versionchanged:: 3.5 - The undocumented and unofficial *use_load_tests* default argument is - deprecated and ignored, although it is still accepted for backward - compatibility. The method also now accepts a keyword-only argument - *pattern* which is passed to ``load_tests`` as the third argument. + Support for a keyword-only argument *pattern* has been added. + + .. versionchanged:: 3.12 + The undocumented and unofficial *use_load_tests* parameter has been + removed. .. method:: loadTestsFromName(name, module=None) @@ -2203,8 +2167,6 @@ Loading and running tests :class:`TextTestRunner`. .. versionadded:: 3.2 - This class was previously named ``_TextTestResult``. The old name still - exists as an alias but is deprecated. .. data:: defaultTestLoader @@ -2227,10 +2189,7 @@ Loading and running tests By default this runner shows :exc:`DeprecationWarning`, :exc:`PendingDeprecationWarning`, :exc:`ResourceWarning` and :exc:`ImportWarning` even if they are :ref:`ignored by default - `. Deprecation warnings caused by :ref:`deprecated unittest - methods ` are also special-cased and, when the warning - filters are ``'default'`` or ``'always'``, they will appear only once - per-module, in order to avoid too many warning messages. This behavior can + `. This behavior can be overridden using Python's :option:`!-Wd` or :option:`!-Wa` options (see :ref:`Warning control `) and leaving *warnings* to ``None``. diff --git a/Doc/library/urllib.request.rst b/Doc/library/urllib.request.rst index 491ef022a1fadc..59e1f2da828a83 100644 --- a/Doc/library/urllib.request.rst +++ b/Doc/library/urllib.request.rst @@ -21,6 +21,7 @@ authentication, redirections, cookies and more. The `Requests package `_ is recommended for a higher-level HTTP client interface. +.. include:: ../includes/wasm-notavail.rst The :mod:`urllib.request` module defines the following functions: @@ -1279,7 +1280,7 @@ involved. For example, the :envvar:`http_proxy` environment variable is read to obtain the HTTP proxy's URL. This example replaces the default :class:`ProxyHandler` with one that uses -programmatically-supplied proxy URLs, and adds proxy authorization support with +programmatically supplied proxy URLs, and adds proxy authorization support with :class:`ProxyBasicAuthHandler`. :: proxy_handler = urllib.request.ProxyHandler({'http': 'http://www.example.com:3128/'}) diff --git a/Doc/library/uuid.rst b/Doc/library/uuid.rst index ddfbbda279e35d..a71fe7abf5b547 100644 --- a/Doc/library/uuid.rst +++ b/Doc/library/uuid.rst @@ -211,7 +211,7 @@ The :mod:`uuid` module defines the following namespace identifiers for use with .. data:: NAMESPACE_DNS - When this namespace is specified, the *name* string is a fully-qualified domain + When this namespace is specified, the *name* string is a fully qualified domain name. diff --git a/Doc/library/venv.rst b/Doc/library/venv.rst index b40bd4102c2593..06810612acba54 100644 --- a/Doc/library/venv.rst +++ b/Doc/library/venv.rst @@ -29,6 +29,7 @@ See :pep:`405` for more information about Python virtual environments. `Python Packaging User Guide: Creating and using virtual environments `__ +.. include:: ../includes/wasm-notavail.rst Creating virtual environments ----------------------------- @@ -64,7 +65,7 @@ Creating virtual environments Python installation). When a virtual environment is active, any options that change the - installation path will be ignored from all :mod:`distutils` configuration + installation path will be ignored from all ``setuptools`` configuration files to prevent projects being inadvertently installed outside of the virtual environment. @@ -177,6 +178,45 @@ creation according to their needs, the :class:`EnvBuilder` class. ``clear=True``, contents of the environment directory will be cleared and then all necessary subdirectories will be recreated. + The returned context object is a :class:`types.SimpleNamespace` with the + following attributes: + + * ``env_dir`` - The location of the virtual environment. Used for + ``__VENV_DIR__`` in activation scripts (see :meth:`install_scripts`). + + * ``env_name`` - The name of the virtual environment. Used for + ``__VENV_NAME__`` in activation scripts (see :meth:`install_scripts`). + + * ``prompt`` - The prompt to be used by the activation scripts. Used for + ``__VENV_PROMPT__`` in activation scripts (see :meth:`install_scripts`). + + * ``executable`` - The underlying Python executable used by the virtual + environment. This takes into account the case where a virtual environment + is created from another virtual environment. + + * ``inc_path`` - The include path for the virtual environment. + + * ``lib_path`` - The purelib path for the virtual environment. + + * ``bin_path`` - The script path for the virtual environment. + + * ``bin_name`` - The name of the script path relative to the virtual + environment location. Used for ``__VENV_BIN_NAME__`` in activation + scripts (see :meth:`install_scripts`). + + * ``env_exe`` - The name of the Python interpreter in the virtual + environment. Used for ``__VENV_PYTHON__`` in activation scripts + (see :meth:`install_scripts`). + + * ``env_exec_cmd`` - The name of the Python interpreter, taking into + account filesystem redirections. This can be used to run Python in + the virtual environment. + + + .. versionchanged:: 3.12 + The attribute ``lib_path`` was added to the context, and the context + object was documented. + .. versionchanged:: 3.11 The *venv* :ref:`sysconfig installation scheme ` diff --git a/Doc/library/warnings.rst b/Doc/library/warnings.rst index f7a1f70833b7f5..28579ce8df4a62 100644 --- a/Doc/library/warnings.rst +++ b/Doc/library/warnings.rst @@ -154,14 +154,19 @@ the disposition of the match. Each entry is a tuple of the form (*action*, +---------------+----------------------------------------------+ * *message* is a string containing a regular expression that the start of - the warning message must match. The expression is compiled to always be - case-insensitive. + the warning message must match, case-insensitively. In :option:`-W` and + :envvar:`PYTHONWARNINGS`, *message* is a literal string that the start of the + warning message must contain (case-insensitively), ignoring any whitespace at + the start or end of *message*. * *category* is a class (a subclass of :exc:`Warning`) of which the warning category must be a subclass in order to match. -* *module* is a string containing a regular expression that the module name must - match. The expression is compiled to be case-sensitive. +* *module* is a string containing a regular expression that the start of the + fully qualified module name must match, case-sensitively. In :option:`-W` and + :envvar:`PYTHONWARNINGS`, *module* is a literal string that the + fully qualified module name must be equal to (case-sensitively), ignoring any + whitespace at the start or end of *module*. * *lineno* is an integer that the line number where the warning occurred must match, or ``0`` to match all line numbers. @@ -207,8 +212,7 @@ Some examples:: error::ResourceWarning # Treat ResourceWarning messages as errors default::DeprecationWarning # Show DeprecationWarning messages ignore,default:::mymodule # Only report warnings triggered by "mymodule" - error:::mymodule[.*] # Convert warnings to errors in "mymodule" - # and any subpackages of "mymodule" + error:::mymodule # Convert warnings to errors in "mymodule" .. _default-warning-filter: diff --git a/Doc/library/webbrowser.rst b/Doc/library/webbrowser.rst index 1dc59306164ecd..734b6321e5a7e7 100644 --- a/Doc/library/webbrowser.rst +++ b/Doc/library/webbrowser.rst @@ -41,6 +41,8 @@ naturally, mutually exclusive. Usage example:: python -m webbrowser -t "https://www.python.org" +.. include:: ../includes/wasm-notavail.rst + The following exception is defined: diff --git a/Doc/library/winreg.rst b/Doc/library/winreg.rst index 487856a3ac6c60..4ab671817710dd 100644 --- a/Doc/library/winreg.rst +++ b/Doc/library/winreg.rst @@ -144,12 +144,6 @@ This module offers the following functions: Deletes the specified key. - .. note:: - The :func:`DeleteKeyEx` function is implemented with the RegDeleteKeyEx - Windows API function, which is specific to 64-bit versions of Windows. - See the `RegDeleteKeyEx documentation - `__. - *key* is an already open key, or one of the predefined :ref:`HKEY_* constants `. @@ -159,9 +153,10 @@ This module offers the following functions: *reserved* is a reserved integer, and must be zero. The default is zero. - *access* is an integer that specifies an access mask that describes the desired - security access for the key. Default is :const:`KEY_WOW64_64KEY`. See - :ref:`Access Rights ` for other allowed values. + *access* is an integer that specifies an access mask that describes the + desired security access for the key. Default is :const:`KEY_WOW64_64KEY`. + On 32-bit Windows, the WOW64 constants are ignored. + See :ref:`Access Rights ` for other allowed values. *This method can not delete keys with subkeys.* @@ -658,13 +653,12 @@ For more information, see `Accessing an Alternate Registry View .. data:: KEY_WOW64_64KEY Indicates that an application on 64-bit Windows should operate on - the 64-bit registry view. + the 64-bit registry view. On 32-bit Windows, this constant is ignored. .. data:: KEY_WOW64_32KEY Indicates that an application on 64-bit Windows should operate on - the 32-bit registry view. - + the 32-bit registry view. On 32-bit Windows, this constant is ignored. .. _value-types: diff --git a/Doc/library/wsgiref.rst b/Doc/library/wsgiref.rst index 6a2d47891b4733..06223e667a450a 100644 --- a/Doc/library/wsgiref.rst +++ b/Doc/library/wsgiref.rst @@ -333,7 +333,7 @@ request. (E.g., using the :func:`shift_path_info` function from .. method:: WSGIServer.get_app() - Returns the currently-set application callable. + Returns the currently set application callable. Normally, however, you do not need to use these additional methods, as :meth:`set_app` is normally called by :func:`make_server`, and the @@ -642,7 +642,7 @@ input, output, and error streams. .. method:: BaseHandler.setup_environ() - Set the :attr:`environ` attribute to a fully-populated WSGI environment. The + Set the :attr:`environ` attribute to a fully populated WSGI environment. The default implementation uses all of the above methods and attributes, plus the :meth:`get_stdin`, :meth:`get_stderr`, and :meth:`add_cgi_vars` methods and the :attr:`wsgi_file_wrapper` attribute. It also inserts a ``SERVER_SOFTWARE`` key diff --git a/Doc/library/xml.dom.minidom.rst b/Doc/library/xml.dom.minidom.rst index 20984b98b1778c..82e5d6aea2310e 100644 --- a/Doc/library/xml.dom.minidom.rst +++ b/Doc/library/xml.dom.minidom.rst @@ -95,7 +95,7 @@ document: the one that holds all others. Here is an example program:: When you are finished with a DOM tree, you may optionally call the :meth:`unlink` method to encourage early cleanup of the now-unneeded objects. :meth:`unlink` is an :mod:`xml.dom.minidom`\ -specific -extension to the DOM API that renders the node and its descendants are +extension to the DOM API that renders the node and its descendants essentially useless. Otherwise, Python's garbage collector will eventually take care of the objects in the tree. @@ -180,7 +180,7 @@ module documentation. This section lists the differences between the API and .. versionchanged:: 3.9 The *standalone* parameter was added. -.. method:: Node.toprettyxml(indent="\\t", newl="\\n", encoding=None, \ +.. method:: Node.toprettyxml(indent="\t", newl="\n", encoding=None, \ standalone=None) Return a pretty-printed version of the document. *indent* specifies the diff --git a/Doc/library/xml.rst b/Doc/library/xml.rst index e3b35162961147..20b0905bb1093a 100644 --- a/Doc/library/xml.rst +++ b/Doc/library/xml.rst @@ -95,7 +95,7 @@ quadratic blowup entity expansion entity expansion, too. Instead of nested entities it repeats one large entity with a couple of thousand chars over and over again. The attack isn't as efficient as the exponential case but it avoids triggering parser countermeasures - that forbid deeply-nested entities. + that forbid deeply nested entities. external entity expansion Entity declarations can contain more than just text for replacement. They can diff --git a/Doc/library/xmlrpc.client.rst b/Doc/library/xmlrpc.client.rst index 8d9db53ef1f0da..2dcf3984cf42f2 100644 --- a/Doc/library/xmlrpc.client.rst +++ b/Doc/library/xmlrpc.client.rst @@ -32,6 +32,8 @@ between conformable Python objects and XML on the wire. For HTTPS URIs, :mod:`xmlrpc.client` now performs all the necessary certificate and hostname checks by default. +.. include:: ../includes/wasm-notavail.rst + .. class:: ServerProxy(uri, transport=None, encoding=None, verbose=False, \ allow_none=False, use_datetime=False, \ use_builtin_types=False, *, headers=(), context=None) @@ -47,7 +49,7 @@ between conformable Python objects and XML on the wire. The following parameters govern the use of the returned proxy instance. If *allow_none* is true, the Python constant ``None`` will be translated into XML; the default behaviour is for ``None`` to raise a :exc:`TypeError`. This is - a commonly-used extension to the XML-RPC specification, but isn't supported by + a commonly used extension to the XML-RPC specification, but isn't supported by all clients and servers; see `http://ontosys.com/xml-rpc/extensions.php `_ for a description. @@ -154,12 +156,12 @@ between conformable Python objects and XML on the wire. Added support of unmarshalling additional types used by Apache XML-RPC implementation for numerics: ``i1``, ``i2``, ``i8``, ``biginteger``, ``float`` and ``bigdecimal``. - See http://ws.apache.org/xmlrpc/types.html for a description. + See https://ws.apache.org/xmlrpc/types.html for a description. .. seealso:: - `XML-RPC HOWTO `_ + `XML-RPC HOWTO `_ A good description of XML-RPC operation and client software in several languages. Contains pretty much everything an XML-RPC client developer needs to know. diff --git a/Doc/library/xmlrpc.server.rst b/Doc/library/xmlrpc.server.rst index 7d561e2303f898..9778a859da1fbf 100644 --- a/Doc/library/xmlrpc.server.rst +++ b/Doc/library/xmlrpc.server.rst @@ -23,6 +23,7 @@ servers written in Python. Servers can either be free standing, using constructed data. If you need to parse untrusted or unauthenticated data see :ref:`xml-vulnerabilities`. +.. include:: ../includes/wasm-notavail.rst .. class:: SimpleXMLRPCServer(addr, requestHandler=SimpleXMLRPCRequestHandler,\ logRequests=True, allow_none=False, encoding=None,\ diff --git a/Doc/library/zlib.rst b/Doc/library/zlib.rst index 30eb99817a8590..ac179722dee2be 100644 --- a/Doc/library/zlib.rst +++ b/Doc/library/zlib.rst @@ -265,7 +265,7 @@ Decompression objects support the following methods and attributes: A boolean indicating whether the end of the compressed data stream has been reached. - This makes it possible to distinguish between a properly-formed compressed + This makes it possible to distinguish between a properly formed compressed stream, and an incomplete or truncated one. .. versionadded:: 3.3 diff --git a/Doc/library/zoneinfo.rst b/Doc/library/zoneinfo.rst index 1b2ba2af2ae6fb..2f1879dc056a88 100644 --- a/Doc/library/zoneinfo.rst +++ b/Doc/library/zoneinfo.rst @@ -27,6 +27,7 @@ first-party `tzdata`_ package available on PyPI. First-party package maintained by the CPython core developers to supply time zone data via PyPI. +.. include:: ../includes/wasm-notavail.rst Using ``ZoneInfo`` ------------------ diff --git a/Doc/license.rst b/Doc/license.rst index e0ca5f2662dc1c..00691b30ba6d3e 100644 --- a/Doc/license.rst +++ b/Doc/license.rst @@ -353,7 +353,7 @@ Sockets The :mod:`socket` module uses the functions, :func:`getaddrinfo`, and :func:`getnameinfo`, which are coded in separate source files from the WIDE -Project, http://www.wide.ad.jp/. :: +Project, https://www.wide.ad.jp/. :: Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. All rights reserved. @@ -626,9 +626,9 @@ strtod and dtoa The file :file:`Python/dtoa.c`, which supplies C functions dtoa and strtod for conversion of C doubles to and from strings, is derived from the file of the same name by David M. Gay, currently available -from http://www.netlib.org/fp/. The original file, as retrieved on -March 16, 2009, contains the following copyright and licensing -notice:: +from https://web.archive.org/web/20220517033456/http://www.netlib.org/fp/dtoa.c. +The original file, as retrieved on March 16, 2009, contains the following +copyright and licensing notice:: /**************************************************************** * diff --git a/Doc/reference/compound_stmts.rst b/Doc/reference/compound_stmts.rst index 688407195f05dd..751c7c2dbcf257 100644 --- a/Doc/reference/compound_stmts.rst +++ b/Doc/reference/compound_stmts.rst @@ -1122,7 +1122,7 @@ subject value: These classes accept a single positional argument, and the pattern there is matched against the whole object rather than an attribute. For example ``int(0|1)`` matches - the value ``0``, but not the values ``0.0`` or ``False``. + the value ``0``, but not the value ``0.0``. In simple terms ``CLS(P1, attr=P2)`` matches only if the following happens: @@ -1495,7 +1495,7 @@ Is semantically equivalent to:: else: SUITE2 -See also :meth:`__aiter__` and :meth:`__anext__` for details. +See also :meth:`~object.__aiter__` and :meth:`~object.__anext__` for details. It is a :exc:`SyntaxError` to use an ``async for`` statement outside the body of a coroutine function. @@ -1537,7 +1537,7 @@ is semantically equivalent to:: if not hit_except: await aexit(manager, None, None, None) -See also :meth:`__aenter__` and :meth:`__aexit__` for details. +See also :meth:`~object.__aenter__` and :meth:`~object.__aexit__` for details. It is a :exc:`SyntaxError` to use an ``async with`` statement outside the body of a coroutine function. diff --git a/Doc/reference/datamodel.rst b/Doc/reference/datamodel.rst index 8ac9a8c0566bf7..758f3aef3ee34d 100644 --- a/Doc/reference/datamodel.rst +++ b/Doc/reference/datamodel.rst @@ -1270,7 +1270,7 @@ Basic customization Typical implementations create a new instance of the class by invoking the superclass's :meth:`__new__` method using ``super().__new__(cls[, ...])`` - with appropriate arguments and then modifying the newly-created instance + with appropriate arguments and then modifying the newly created instance as necessary before returning it. If :meth:`__new__` is invoked during object construction and it returns an @@ -1560,7 +1560,7 @@ Basic customization predictable between repeated invocations of Python. This is intended to provide protection against a denial-of-service caused - by carefully-chosen inputs that exploit the worst case performance of a + by carefully chosen inputs that exploit the worst case performance of a dict insertion, O(n\ :sup:`2`) complexity. See http://www.ocert.org/advisories/ocert-2011-003.html for details. diff --git a/Doc/reference/expressions.rst b/Doc/reference/expressions.rst index 1f461e3fed8e57..6bf21a7dde49a0 100644 --- a/Doc/reference/expressions.rst +++ b/Doc/reference/expressions.rst @@ -573,7 +573,7 @@ is already executing raises a :exc:`ValueError` exception. In typical use, this is called with a single exception instance similar to the way the :keyword:`raise` keyword is used. - For backwards compatability, however, the second signature is + For backwards compatibility, however, the second signature is supported, following a convention from older versions of Python. The *type* argument should be an exception class, and *value* should be an exception instance. If the *value* is not provided, the diff --git a/Doc/reference/import.rst b/Doc/reference/import.rst index 3a41403c6476b4..507f2b3763cae4 100644 --- a/Doc/reference/import.rst +++ b/Doc/reference/import.rst @@ -541,7 +541,7 @@ the module. .. attribute:: __name__ - The ``__name__`` attribute must be set to the fully-qualified name of + The ``__name__`` attribute must be set to the fully qualified name of the module. This name is used to uniquely identify the module in the import system. @@ -676,22 +676,10 @@ Here are the exact rules used: * Otherwise, just use the module's ``__name__`` in the repr. -.. versionchanged:: 3.4 - Use of :meth:`loader.module_repr() ` - has been deprecated and the module spec is now used by the import - machinery to generate a module repr. - - For backward compatibility with Python 3.3, the module repr will be - generated by calling the loader's - :meth:`~importlib.abc.Loader.module_repr` method, if defined, before - trying either approach described above. However, the method is deprecated. - -.. versionchanged:: 3.10 - - Calling :meth:`~importlib.abc.Loader.module_repr` now occurs after trying to - use a module's ``__spec__`` attribute but before falling back on - ``__file__``. Use of :meth:`~importlib.abc.Loader.module_repr` is slated to - stop in Python 3.12. +.. versionchanged:: 3.12 + Use of :meth:`module_repr`, having been deprecated since Python 3.4, was + removed in Python 3.12 and is no longer called during the resolution of a + module's repr. .. _pyc-invalidation: @@ -800,10 +788,8 @@ environment variable and various other installation- and implementation-specific defaults. Entries in :data:`sys.path` can name directories on the file system, zip files, and potentially other "locations" (see the :mod:`site` module) that should be searched for modules, such as -URLs, or database queries. Only strings and bytes should be present on -:data:`sys.path`; all other data types are ignored. The encoding of bytes -entries is determined by the individual :term:`path entry finders `. +URLs, or database queries. Only strings should be present on +:data:`sys.path`; all other data types are ignored. The :term:`path based finder` is a :term:`meta path finder`, so the import machinery begins the :term:`import path` search by calling the path diff --git a/Doc/reference/introduction.rst b/Doc/reference/introduction.rst index 72e874ee98e466..914a11556c94e6 100644 --- a/Doc/reference/introduction.rst +++ b/Doc/reference/introduction.rst @@ -54,7 +54,7 @@ Jython Python implemented in Java. This implementation can be used as a scripting language for Java applications, or can be used to create applications using the Java class libraries. It is also often used to create tests for Java libraries. - More information can be found at `the Jython website `_. + More information can be found at `the Jython website `_. Python for .NET This implementation actually uses the CPython implementation, but is a managed @@ -66,7 +66,7 @@ IronPython An alternate Python for .NET. Unlike Python.NET, this is a complete Python implementation that generates IL, and compiles Python code directly to .NET assemblies. It was created by Jim Hugunin, the original creator of Jython. For - more information, see `the IronPython website `_. + more information, see `the IronPython website `_. PyPy An implementation of Python written completely in Python. It supports several @@ -74,7 +74,7 @@ PyPy and a Just in Time compiler. One of the goals of the project is to encourage experimentation with the language itself by making it easier to modify the interpreter (since it is written in Python). Additional information is - available on `the PyPy project's home page `_. + available on `the PyPy project's home page `_. Each of these implementations varies in some way from the language as documented in this manual, or introduces specific information beyond what's covered in the diff --git a/Doc/reference/lexical_analysis.rst b/Doc/reference/lexical_analysis.rst index 1cf0a5b15cbbb9..4ab6e90a623449 100644 --- a/Doc/reference/lexical_analysis.rst +++ b/Doc/reference/lexical_analysis.rst @@ -315,7 +315,7 @@ The Unicode category codes mentioned above stand for: * *Nd* - decimal numbers * *Pc* - connector punctuations * *Other_ID_Start* - explicit list of characters in `PropList.txt - `_ to support backwards + `_ to support backwards compatibility * *Other_ID_Continue* - likewise @@ -323,8 +323,8 @@ All identifiers are converted into the normal form NFKC while parsing; compariso of identifiers is based on NFKC. A non-normative HTML file listing all valid identifier characters for Unicode -14.0.0 can be found at -https://www.unicode.org/Public/14.0.0/ucd/DerivedCoreProperties.txt +15.0.0 can be found at +https://www.unicode.org/Public/15.0.0/ucd/DerivedCoreProperties.txt .. _keywords: @@ -552,7 +552,7 @@ Standard C. The recognized escape sequences are: +-----------------+---------------------------------+-------+ | Escape Sequence | Meaning | Notes | +=================+=================================+=======+ -| ``\newline`` | Backslash and newline ignored | | +| ``\``\ | Backslash and newline ignored | \(1) | +-----------------+---------------------------------+-------+ | ``\\`` | Backslash (``\``) | | +-----------------+---------------------------------+-------+ @@ -574,10 +574,10 @@ Standard C. The recognized escape sequences are: +-----------------+---------------------------------+-------+ | ``\v`` | ASCII Vertical Tab (VT) | | +-----------------+---------------------------------+-------+ -| ``\ooo`` | Character with octal value | (1,3) | +| ``\ooo`` | Character with octal value | (2,4) | | | *ooo* | | +-----------------+---------------------------------+-------+ -| ``\xhh`` | Character with hex value *hh* | (2,3) | +| ``\xhh`` | Character with hex value *hh* | (3,4) | +-----------------+---------------------------------+-------+ Escape sequences only recognized in string literals are: @@ -585,19 +585,30 @@ Escape sequences only recognized in string literals are: +-----------------+---------------------------------+-------+ | Escape Sequence | Meaning | Notes | +=================+=================================+=======+ -| ``\N{name}`` | Character named *name* in the | \(4) | +| ``\N{name}`` | Character named *name* in the | \(5) | | | Unicode database | | +-----------------+---------------------------------+-------+ -| ``\uxxxx`` | Character with 16-bit hex value | \(5) | +| ``\uxxxx`` | Character with 16-bit hex value | \(6) | | | *xxxx* | | +-----------------+---------------------------------+-------+ -| ``\Uxxxxxxxx`` | Character with 32-bit hex value | \(6) | +| ``\Uxxxxxxxx`` | Character with 32-bit hex value | \(7) | | | *xxxxxxxx* | | +-----------------+---------------------------------+-------+ Notes: (1) + A backslash can be added at the end of a line to ignore the newline:: + + >>> 'This string will not include \ + ... backslashes or newline characters.' + 'This string will not include backslashes or newline characters.' + + The same result can be achieved using :ref:`triple-quoted strings `, + or parentheses and :ref:`string literal concatenation `. + + +(2) As in Standard C, up to three octal digits are accepted. .. versionchanged:: 3.11 @@ -605,22 +616,22 @@ Notes: In a future Python version they will be a :exc:`SyntaxWarning` and eventually a :exc:`SyntaxError`. -(2) +(3) Unlike in Standard C, exactly two hex digits are required. -(3) +(4) In a bytes literal, hexadecimal and octal escapes denote the byte with the given value. In a string literal, these escapes denote a Unicode character with the given value. -(4) +(5) .. versionchanged:: 3.3 Support for name aliases [#]_ has been added. -(5) +(6) Exactly four hex digits are required. -(6) +(7) Any Unicode character can be encoded this way. Exactly eight hex digits are required. @@ -757,7 +768,7 @@ the final value of the whole string. Top-level format specifiers may include nested replacement fields. These nested fields may include their own conversion fields and :ref:`format specifiers -`, but may not include more deeply-nested replacement fields. The +`, but may not include more deeply nested replacement fields. The :ref:`format specifier mini-language ` is the same as that used by the :meth:`str.format` method. @@ -1002,4 +1013,4 @@ occurrence outside string literals and comments is an unconditional error: .. rubric:: Footnotes -.. [#] https://www.unicode.org/Public/11.0.0/ucd/NameAliases.txt +.. [#] https://www.unicode.org/Public/15.0.0/ucd/NameAliases.txt diff --git a/Doc/tools/extensions/asdl_highlight.py b/Doc/tools/extensions/asdl_highlight.py index b1989e53957072..42863a4b3bcd6a 100644 --- a/Doc/tools/extensions/asdl_highlight.py +++ b/Doc/tools/extensions/asdl_highlight.py @@ -1,4 +1,3 @@ -import os import sys from pathlib import Path @@ -6,7 +5,7 @@ sys.path.append(str(CPYTHON_ROOT / "Parser")) from pygments.lexer import RegexLexer, bygroups, include, words -from pygments.token import (Comment, Generic, Keyword, Name, Operator, +from pygments.token import (Comment, Keyword, Name, Operator, Punctuation, Text) from asdl import builtin_types diff --git a/Doc/tools/extensions/peg_highlight.py b/Doc/tools/extensions/peg_highlight.py index 27f54cdf593c87..4bdc2ee1861334 100644 --- a/Doc/tools/extensions/peg_highlight.py +++ b/Doc/tools/extensions/peg_highlight.py @@ -1,5 +1,5 @@ from pygments.lexer import RegexLexer, bygroups, include -from pygments.token import Comment, Generic, Keyword, Name, Operator, Punctuation, Text +from pygments.token import Comment, Keyword, Name, Operator, Punctuation, Text from sphinx.highlighting import lexers diff --git a/Doc/tools/extensions/pyspecific.py b/Doc/tools/extensions/pyspecific.py index 2e122b5607936e..da15abdf637260 100644 --- a/Doc/tools/extensions/pyspecific.py +++ b/Doc/tools/extensions/pyspecific.py @@ -30,7 +30,6 @@ from sphinx.util import status_iterator, logging from sphinx.util.nodes import split_explicit_title from sphinx.writers.text import TextWriter, TextTranslator -from sphinx.writers.latex import LaTeXTranslator try: from sphinx.domains.python import PyFunction, PyMethod @@ -135,11 +134,22 @@ def run(self): class Availability(Directive): - has_content = False + has_content = True required_arguments = 1 optional_arguments = 0 final_argument_whitespace = True + # known platform, libc, and threading implementations + known_platforms = frozenset({ + "AIX", "Android", "BSD", "DragonFlyBSD", "Emscripten", "FreeBSD", + "Linux", "NetBSD", "OpenBSD", "POSIX", "Solaris", "Unix", "VxWorks", + "WASI", "Windows", "macOS", + # libc + "BSD libc", "glibc", "musl", + # POSIX platforms with pthreads + "pthreads", + }) + def run(self): availability_ref = ':ref:`Availability `: ' pnode = nodes.paragraph(availability_ref + self.arguments[0], @@ -148,8 +158,51 @@ def run(self): pnode.extend(n + m) n, m = self.state.inline_text(self.arguments[0], self.lineno) pnode.extend(n + m) + if self.content: + self.state.nested_parse(self.content, self.content_offset, pnode) + + self.parse_platforms() + return [pnode] + def parse_platforms(self): + """Parse platform information from arguments + + Arguments is a comma-separated string of platforms. A platform may + be prefixed with "not " to indicate that a feature is not available. + + Example:: + + .. availability:: Windows, Linux >= 4.2, not Emscripten, not WASI + + Arguments like "Linux >= 3.17 with glibc >= 2.27" are currently not + parsed into separate tokens. + """ + platforms = {} + for arg in self.arguments[0].rstrip(".").split(","): + arg = arg.strip() + platform, _, version = arg.partition(" >= ") + if platform.startswith("not "): + version = False + platform = platform[4:] + elif not version: + version = True + platforms[platform] = version + + unknown = set(platforms).difference(self.known_platforms) + if unknown: + cls = type(self) + logger = logging.getLogger(cls.__qualname__) + logger.warn( + f"Unknown platform(s) or syntax '{' '.join(sorted(unknown))}' " + f"in '.. availability:: {self.arguments[0]}', see " + f"{__file__}:{cls.__qualname__}.known_platforms for a set " + "known platforms." + ) + + return platforms + + # Support for documenting audit event @@ -418,12 +471,7 @@ def run(self): translatable=False) node.append(para) env = self.state.document.settings.env - # deprecated pre-Sphinx-2 method - if hasattr(env, 'note_versionchange'): - env.note_versionchange('deprecated', version[0], node, self.lineno) - # new method - else: - env.get_domain('changeset').note_changeset(node) + env.get_domain('changeset').note_changeset(node) return [node] + messages diff --git a/Doc/tools/extensions/suspicious.py b/Doc/tools/extensions/suspicious.py index c3de4d79c83f87..2d581a8a6c3db6 100644 --- a/Doc/tools/extensions/suspicious.py +++ b/Doc/tools/extensions/suspicious.py @@ -44,7 +44,6 @@ import os import re import csv -import sys from docutils import nodes from sphinx.builders import Builder @@ -55,9 +54,7 @@ :[a-zA-Z][a-zA-Z0-9]+| # :foo `| # ` (seldom used by itself) (?= (3, 0) + ''', re.VERBOSE).finditer class Rule: @@ -152,32 +149,15 @@ def is_ignored(self, line, lineno, issue): def report_issue(self, text, lineno, issue): self.any_issue = True self.write_log_entry(lineno, issue, text) - if py3: - self.logger.warning('[%s:%d] "%s" found in "%-.120s"' % + self.logger.warning('[%s:%d] "%s" found in "%-.120s"' % (self.docname, lineno, issue, text)) - else: - self.logger.warning( - '[%s:%d] "%s" found in "%-.120s"' % ( - self.docname.encode(sys.getdefaultencoding(),'replace'), - lineno, - issue.encode(sys.getdefaultencoding(),'replace'), - text.strip().encode(sys.getdefaultencoding(),'replace'))) self.app.statuscode = 1 def write_log_entry(self, lineno, issue, text): - if py3: - f = open(self.log_file_name, 'a') - writer = csv.writer(f, dialect) - writer.writerow([self.docname, lineno, issue, text.strip()]) - f.close() - else: - f = open(self.log_file_name, 'ab') - writer = csv.writer(f, dialect) - writer.writerow([self.docname.encode('utf-8'), - lineno, - issue.encode('utf-8'), - text.strip().encode('utf-8')]) - f.close() + f = open(self.log_file_name, 'a') + writer = csv.writer(f, dialect) + writer.writerow([self.docname, lineno, issue, text.strip()]) + f.close() def load_rules(self, filename): """Load database of previously ignored issues. @@ -188,10 +168,7 @@ def load_rules(self, filename): self.logger.info("loading ignore rules... ", nonl=1) self.rules = rules = [] try: - if py3: - f = open(filename, 'r') - else: - f = open(filename, 'rb') + f = open(filename, 'r') except IOError: return for i, row in enumerate(csv.reader(f)): @@ -203,10 +180,6 @@ def load_rules(self, filename): lineno = int(lineno) else: lineno = None - if not py3: - docname = docname.decode('utf-8') - issue = issue.decode('utf-8') - text = text.decode('utf-8') rule = Rule(docname, lineno, issue, text) rules.append(rule) f.close() diff --git a/Doc/tools/rstlint.py b/Doc/tools/rstlint.py index d1c53dcb1a698e..4ea68ef3b030c8 100644 --- a/Doc/tools/rstlint.py +++ b/Doc/tools/rstlint.py @@ -130,7 +130,7 @@ # Find role glued with another word like: # the:c:func:`PyThreadState_LeaveTracing` function. -# instad of: +# instead of: # the :c:func:`PyThreadState_LeaveTracing` function. role_glued_with_word = re.compile(r"[a-zA-Z]%s" % all_roles) diff --git a/Doc/tools/susp-ignored.csv b/Doc/tools/susp-ignored.csv index 932c3800c9fa19..0dba0744b5fe4b 100644 --- a/Doc/tools/susp-ignored.csv +++ b/Doc/tools/susp-ignored.csv @@ -172,6 +172,8 @@ library/itertools,,:step,elements from seq[start:stop:step] library/itertools,,::,kernel = tuple(kernel)[::-1] library/itertools,,:stop,elements from seq[start:stop:step] library/logging.handlers,,:port,host:port +library/logging,,:root,WARNING:root:Watch out! +library/logging,,:Watch,WARNING:root:Watch out! library/mmap,,:i2,obj[i1:i2] library/multiprocessing,,`,# Add more tasks using `put()` library/multiprocessing,,:queue,">>> QueueManager.register('get_queue', callable=lambda:queue)" @@ -394,3 +396,5 @@ library/typing,,`,"assert_type(name, str) # OK, inferred type of `name` is `str library/typing,,`,# after which we hope the inferred type will be `int` whatsnew/changelog,,:company,-V:company/tag library/typing,,`,# are located in the `typing_extensions` backports package. +library/dis,490,:TOS,TOS = TOS2[TOS1:TOS] +library/dis,497,:TOS,TOS2[TOS1:TOS] = TOS3 diff --git a/Doc/tools/templates/download.html b/Doc/tools/templates/download.html index 2456625043416c..7920e0619f9337 100644 --- a/Doc/tools/templates/download.html +++ b/Doc/tools/templates/download.html @@ -3,6 +3,10 @@ {% if daily is defined %} {% set dlbase = pathto('archives', 1) %} {% else %} + {# + The link below returns HTTP 404 until the first related alpha release. + This is expected; use daily documentation builds for CPython development. + #} {% set dlbase = 'https://docs.python.org/ftp/python/doc/' + release %} {% endif %} diff --git a/Doc/tutorial/classes.rst b/Doc/tutorial/classes.rst index 58b06eb5f25356..f27abe48b2d4ed 100644 --- a/Doc/tutorial/classes.rst +++ b/Doc/tutorial/classes.rst @@ -297,7 +297,7 @@ initial state. Therefore a class may define a special method named self.data = [] When a class defines an :meth:`__init__` method, class instantiation -automatically invokes :meth:`__init__` for the newly-created class instance. So +automatically invokes :meth:`__init__` for the newly created class instance. So in this example, a new, initialized instance can be obtained by:: x = MyClass() diff --git a/Doc/tutorial/controlflow.rst b/Doc/tutorial/controlflow.rst index f6e013b23e7e58..99a77e7addd774 100644 --- a/Doc/tutorial/controlflow.rst +++ b/Doc/tutorial/controlflow.rst @@ -253,8 +253,10 @@ at a more abstract level. The :keyword:`!pass` is silently ignored:: A :keyword:`match` statement takes an expression and compares its value to successive patterns given as one or more case blocks. This is superficially similar to a switch statement in C, Java or JavaScript (and many -other languages), but it can also extract components (sequence elements or -object attributes) from the value into variables. +other languages), but it's more similar to pattern matching in +languages like Rust or Haskell. Only the first pattern that matches +gets executed and it can also extract components (sequence elements +or object attributes) from the value into variables. The simplest form compares a subject value against one or more literals:: diff --git a/Doc/tutorial/datastructures.rst b/Doc/tutorial/datastructures.rst index f847ee325e0d79..12b00be3793e14 100644 --- a/Doc/tutorial/datastructures.rst +++ b/Doc/tutorial/datastructures.rst @@ -106,7 +106,7 @@ An example that uses most of the list methods:: 0 >>> fruits.index('banana') 3 - >>> fruits.index('banana', 4) # Find next banana starting a position 4 + >>> fruits.index('banana', 4) # Find next banana starting at position 4 6 >>> fruits.reverse() >>> fruits @@ -268,10 +268,10 @@ it must be parenthesized. :: [(0, 0), (1, 1), (2, 4), (3, 9), (4, 16), (5, 25)] >>> # the tuple must be parenthesized, otherwise an error is raised >>> [x, x**2 for x in range(6)] - File "", line 1, in + File "", line 1 [x, x**2 for x in range(6)] - ^ - SyntaxError: invalid syntax + ^^^^^^^ + SyntaxError: did you forget parentheses around the comprehension target? >>> # flatten a list using a listcomp with two 'for' >>> vec = [[1,2,3], [4,5,6], [7,8,9]] >>> [num for elem in vec for num in elem] diff --git a/Doc/tutorial/inputoutput.rst b/Doc/tutorial/inputoutput.rst index b50063654e2628..d3414005a53435 100644 --- a/Doc/tutorial/inputoutput.rst +++ b/Doc/tutorial/inputoutput.rst @@ -166,7 +166,7 @@ are referred to by using the name of the argument. :: Positional and keyword arguments can be arbitrarily combined:: >>> print('The story of {0}, {1}, and {other}.'.format('Bill', 'Manfred', - other='Georg')) + ... other='Georg')) The story of Bill, Manfred, and Georg. If you have a really long format string that you don't want to split up, it @@ -179,7 +179,7 @@ square brackets ``'[]'`` to access the keys. :: ... 'Dcab: {0[Dcab]:d}'.format(table)) Jack: 4098; Sjoerd: 4127; Dcab: 8637678 -This could also be done by passing the table as keyword arguments with the '**' +This could also be done by passing the ``table`` dictionary as keyword arguments with the ``**`` notation. :: >>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 8637678} @@ -189,7 +189,7 @@ notation. :: This is particularly useful in combination with the built-in function :func:`vars`, which returns a dictionary containing all local variables. -As an example, the following lines produce a tidily-aligned +As an example, the following lines produce a tidily aligned set of columns giving integers and their squares and cubes:: >>> for x in range(1, 11): diff --git a/Doc/tutorial/modules.rst b/Doc/tutorial/modules.rst index d6f2464ae0829c..ad70d92994af49 100644 --- a/Doc/tutorial/modules.rst +++ b/Doc/tutorial/modules.rst @@ -47,8 +47,9 @@ command:: >>> import fibo -This does not enter the names of the functions defined in ``fibo`` directly in -the current symbol table; it only enters the module name ``fibo`` there. Using +This does not add the names of the functions defined in ``fibo`` directly to +the current :term:`namespace` (see :ref:`tut-scopes` for more details); +it only adds the module name ``fibo`` there. Using the module name you can access the functions:: >>> fibo.fib(1000) @@ -75,8 +76,8 @@ These statements are intended to initialize the module. They are executed only the *first* time the module name is encountered in an import statement. [#]_ (They are also run if the file is executed as a script.) -Each module has its own private symbol table, which is used as the global symbol -table by all functions defined in the module. Thus, the author of a module can +Each module has its own private namespace, which is used as the global namespace +by all functions defined in the module. Thus, the author of a module can use global variables in the module without worrying about accidental clashes with a user's global variables. On the other hand, if you know what you are doing you can touch a module's global variables with the same notation used to @@ -84,18 +85,18 @@ refer to its functions, ``modname.itemname``. Modules can import other modules. It is customary but not required to place all :keyword:`import` statements at the beginning of a module (or script, for that -matter). The imported module names are placed in the importing module's global -symbol table. +matter). The imported module names, if placed at the top level of a module +(outside any functions or classes), are added to the module's global namespace. There is a variant of the :keyword:`import` statement that imports names from a -module directly into the importing module's symbol table. For example:: +module directly into the importing module's namespace. For example:: >>> from fibo import fib, fib2 >>> fib(500) 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 This does not introduce the module name from which the imports are taken in the -local symbol table (so in the example, ``fibo`` is not defined). +local namespace (so in the example, ``fibo`` is not defined). There is even a variant to import all names that a module defines:: @@ -580,5 +581,5 @@ modules found in a package. .. rubric:: Footnotes .. [#] In fact function definitions are also 'statements' that are 'executed'; the - execution of a module-level function definition enters the function name in - the module's global symbol table. + execution of a module-level function definition adds the function name to + the module's global namespace. diff --git a/Doc/tutorial/stdlib.rst b/Doc/tutorial/stdlib.rst index b32a552d5570cf..4f5ada90eb57bc 100644 --- a/Doc/tutorial/stdlib.rst +++ b/Doc/tutorial/stdlib.rst @@ -65,11 +65,15 @@ Command Line Arguments Common utility scripts often need to process command line arguments. These arguments are stored in the :mod:`sys` module's *argv* attribute as a list. For -instance the following output results from running ``python demo.py one two -three`` at the command line:: +instance, let's take the following :file:`demo.py` file:: + + # File demo.py + import sys + print(sys.argv) + +Here is the output from running ``python demo.py one two three`` at the command +line:: - >>> import sys - >>> print(sys.argv) ['demo.py', 'one', 'two', 'three'] The :mod:`argparse` module provides a more sophisticated mechanism to process diff --git a/Doc/tutorial/stdlib2.rst b/Doc/tutorial/stdlib2.rst index 2e45ebc8dd7f45..0c101c1f207235 100644 --- a/Doc/tutorial/stdlib2.rst +++ b/Doc/tutorial/stdlib2.rst @@ -59,7 +59,7 @@ formatting numbers with group separators:: 'English_United States.1252' >>> conv = locale.localeconv() # get a mapping of conventions >>> x = 1234567.8 - >>> locale.format("%d", x, grouping=True) + >>> locale.format_string("%d", x, grouping=True) '1,234,567' >>> locale.format_string("%s%.*f", (conv['currency_symbol'], ... conv['frac_digits'], x), grouping=True) @@ -108,6 +108,7 @@ placeholders such as the current date, image sequence number, or file format:: >>> photofiles = ['img_1074.jpg', 'img_1076.jpg', 'img_1077.jpg'] >>> class BatchRename(Template): ... delimiter = '%' + ... >>> fmt = input('Enter rename style (%d-date %n-seqnum %f-format): ') Enter rename style (%d-date %n-seqnum %f-format): Ashley_%n%f diff --git a/Doc/tutorial/whatnow.rst b/Doc/tutorial/whatnow.rst index 18805da90e5001..dbe2d7fc09927e 100644 --- a/Doc/tutorial/whatnow.rst +++ b/Doc/tutorial/whatnow.rst @@ -17,7 +17,7 @@ the set are: reference material about types, functions, and the modules in the standard library. The standard Python distribution includes a *lot* of additional code. There are modules to read Unix mailboxes, retrieve documents via HTTP, generate - random numbers, parse command-line options, write CGI programs, compress data, + random numbers, parse command-line options, compress data, and many other tasks. Skimming through the Library Reference will give you an idea of what's available. @@ -31,10 +31,7 @@ the set are: More Python resources: * https://www.python.org: The major Python web site. It contains code, - documentation, and pointers to Python-related pages around the web. This web - site is mirrored in various places around the world, such as Europe, Japan, and - Australia; a mirror may be faster than the main site, depending on your - geographical location. + documentation, and pointers to Python-related pages around the web. * https://docs.python.org: Fast access to Python's documentation. @@ -48,7 +45,7 @@ More Python resources: Particularly notable contributions are collected in a book also titled Python Cookbook (O'Reilly & Associates, ISBN 0-596-00797-3.) -* http://www.pyvideo.org collects links to Python-related videos from +* https://pyvideo.org collects links to Python-related videos from conferences and user-group meetings. * https://scipy.org: The Scientific Python project includes modules for fast diff --git a/Doc/using/cmdline.rst b/Doc/using/cmdline.rst index 07c05a94b99f98..6a33d98a059a09 100644 --- a/Doc/using/cmdline.rst +++ b/Doc/using/cmdline.rst @@ -183,6 +183,8 @@ automatically enabled, if available on your platform (see Automatic enabling of tab-completion and history editing. +.. _using-on-generic-options: + Generic options ~~~~~~~~~~~~~~~ @@ -190,8 +192,28 @@ Generic options -h --help - Print a short description of all command line options. + Print a short description of all command line options and corresponding + environment variables and exit. + +.. cmdoption:: --help-env + + Print a short description of Python-specific environment variables + and exit. + + .. versionadded:: 3.11 + +.. cmdoption:: --help-xoptions + + Print a description of implementation-specific :option:`-X` options + and exit. + + .. versionadded:: 3.11 + +.. cmdoption:: --help-all + Print complete usage information and exit. + + .. versionadded:: 3.11 .. cmdoption:: -V --version @@ -212,6 +234,7 @@ Generic options .. versionadded:: 3.6 The ``-VV`` option. + .. _using-on-misc-options: Miscellaneous options @@ -345,7 +368,7 @@ Miscellaneous options between repeated invocations of Python. Hash randomization is intended to provide protection against a - denial-of-service caused by carefully-chosen inputs that exploit the worst + denial-of-service caused by carefully chosen inputs that exploit the worst case performance of a dict construction, O(n\ :sup:`2`) complexity. See http://www.ocert.org/advisories/ocert-2011-003.html for details. @@ -441,7 +464,7 @@ Miscellaneous options whether the actual warning category of the message is a subclass of the specified warning category. - The *module* field matches the (fully-qualified) module name; this match is + The *module* field matches the (fully qualified) module name; this match is case-sensitive. The *lineno* field matches the line number, where zero matches all line @@ -460,6 +483,7 @@ Miscellaneous options See :ref:`warning-filter` and :ref:`describing-warning-filters` for more details. + .. cmdoption:: -x Skip the first line of the source, allowing use of non-Unix forms of @@ -481,6 +505,9 @@ Miscellaneous options stored in a traceback of a trace. Use ``-X tracemalloc=NFRAME`` to start tracing with a traceback limit of *NFRAME* frames. See the :func:`tracemalloc.start` for more information. + * ``-X int_max_str_digits`` configures the :ref:`integer string conversion + length limitation `. See also + :envvar:`PYTHONINTMAXSTRDIGITS`. * ``-X importtime`` to show how long each import takes. It shows module name, cumulative time (including nested imports) and self time (excluding nested imports). Note that its output may be broken in multi-threaded @@ -511,6 +538,12 @@ Miscellaneous options development (running from the source tree) then the default is "off". Note that the "importlib_bootstrap" and "importlib_bootstrap_external" frozen modules are always used, even if this flag is set to "off". + * ``-X perf`` to activate compatibility mode with the ``perf`` profiler. + When this option is activated, the Linux ``perf`` profiler will be able to + report Python calls. This option is only available on some platforms and + will do nothing if is not supported on the current system. The default value + is "off". See also :envvar:`PYTHONPERFSUPPORT` and :ref:`perf_profiling` + for more information. It also allows passing arbitrary values and retrieving them through the :data:`sys._xoptions` dictionary. @@ -552,6 +585,12 @@ Miscellaneous options .. versionadded:: 3.11 The ``-X frozen_modules`` option. + .. versionadded:: 3.12 + The ``-X int_max_str_digits`` option. + + .. versionadded:: 3.12 + The ``-X perf`` option. + Options you shouldn't use ~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -560,7 +599,7 @@ Options you shouldn't use Reserved for use by Jython_. -.. _Jython: http://www.jython.org/ +.. _Jython: https://www.jython.org/ .. _using-on-envvars: @@ -730,6 +769,13 @@ conflict. .. versionadded:: 3.2.3 +.. envvar:: PYTHONINTMAXSTRDIGITS + + If this variable is set to an integer, it is used to configure the + interpreter's global :ref:`integer string conversion length limitation + `. + + .. versionadded:: 3.12 .. envvar:: PYTHONIOENCODING @@ -956,7 +1002,7 @@ conflict. order to force the interpreter to use ``ASCII`` instead of ``UTF-8`` for system interfaces. - .. availability:: \*nix. + .. availability:: Unix. .. versionadded:: 3.7 See :pep:`538` for more details. @@ -1000,6 +1046,13 @@ conflict. .. versionadded:: 3.11 +.. envvar:: PYTHONPERFSUPPORT + + If this variable is set to a nonzero value, it activates compatibility mode + with the ``perf`` profiler so Python calls can be detected by it. See the + :ref:`perf_profiling` section for more information. + + .. versionadded:: 3.12 Debug-mode variables diff --git a/Doc/using/configure.rst b/Doc/using/configure.rst index 8cbeb496f2df5f..ec57c880ee7ad0 100644 --- a/Doc/using/configure.rst +++ b/Doc/using/configure.rst @@ -41,12 +41,6 @@ General Options See :data:`sys.int_info.bits_per_digit `. -.. cmdoption:: --with-cxx-main -.. cmdoption:: --with-cxx-main=COMPILER - - Compile the Python ``main()`` function and link Python executable with C++ - compiler: ``$CXX``, or *COMPILER* if specified. - .. cmdoption:: --with-suffix=SUFFIX Set the Python executable suffix to *SUFFIX*. @@ -197,7 +191,8 @@ Performance options ------------------- Configuring Python using ``--enable-optimizations --with-lto`` (PGO + LTO) is -recommended for best performance. +recommended for best performance. The experimental ``--enable-bolt`` flag can +also be used to improve performance. .. cmdoption:: --enable-optimizations @@ -237,6 +232,27 @@ recommended for best performance. .. versionadded:: 3.11 To use ThinLTO feature, use ``--with-lto=thin`` on Clang. + .. versionchanged:: 3.12 + Use ThinLTO as the default optimization policy on Clang if the compiler accepts the flag. + +.. cmdoption:: --enable-bolt + + Enable usage of the `BOLT post-link binary optimizer + `_ (disabled by + default). + + BOLT is part of the LLVM project but is not always included in their binary + distributions. This flag requires that ``llvm-bolt`` and ``merge-fdata`` + are available. + + BOLT is still a fairly new project so this flag should be considered + experimental for now. Because this tool operates on machine code its success + is dependent on a combination of the build environment + the other + optimization configure args + the CPU architecture, and not all combinations + are supported. + + .. versionadded:: 3.12 + .. cmdoption:: --with-computed-gotos Enable computed gotos in evaluation loop (enabled by default on supported @@ -599,7 +615,7 @@ Main files of the build system * :file:`pyconfig.h` (created by :file:`configure`); * :file:`Modules/Setup`: C extensions built by the Makefile using :file:`Module/makesetup` shell script; -* :file:`setup.py`: C extensions built using the :mod:`distutils` module. +* :file:`setup.py`: C extensions built using the ``setuptools`` package. Main build steps ---------------- @@ -721,22 +737,10 @@ Compiler flags Example: ``gcc -pthread``. -.. envvar:: MAINCC - - C compiler command used to build the ``main()`` function of programs like - ``python``. - - Variable set by the :option:`--with-cxx-main` option of the configure - script. - - Default: ``$(CC)``. - .. envvar:: CXX C++ compiler command. - Used if the :option:`--with-cxx-main` option is used. - Example: ``g++ -pthread``. .. envvar:: CFLAGS @@ -749,6 +753,17 @@ Compiler flags extensions. Use it when a compiler flag should *not* be part of the distutils :envvar:`CFLAGS` once Python is installed (:issue:`21121`). + In particular, :envvar:`CFLAGS` should not contain: + + * the compiler flag `-I` (for setting the search path for include files). + The `-I` flags are processed from left to right, and any flags in + :envvar:`CFLAGS` would take precedence over user- and package-supplied `-I` + flags. + + * hardening flags such as `-Werror` because distributions cannot control + whether packages installed by users conform to such heightened + standards. + .. versionadded:: 3.5 .. envvar:: EXTRA_CFLAGS @@ -843,7 +858,7 @@ Linker flags Linker command used to build programs like ``python`` and ``_testembed``. - Default: ``$(PURIFY) $(MAINCC)``. + Default: ``$(PURIFY) $(CC)``. .. envvar:: CONFIGURE_LDFLAGS @@ -861,6 +876,13 @@ Linker flags :envvar:`CFLAGS_NODIST`. Use it when a linker flag should *not* be part of the distutils :envvar:`LDFLAGS` once Python is installed (:issue:`35257`). + In particular, :envvar:`LDFLAGS` should not contain: + + * the compiler flag `-L` (for setting the search path for libraries). + The `-L` flags are processed from left to right, and any flags in + :envvar:`LDFLAGS` would take precedence over user- and package-supplied `-L` + flags. + .. envvar:: CONFIGURE_LDFLAGS_NODIST Value of :envvar:`LDFLAGS_NODIST` variable passed to the ``./configure`` diff --git a/Doc/using/mac.rst b/Doc/using/mac.rst index f7db038430b6d3..9ae0270eaee7ab 100644 --- a/Doc/using/mac.rst +++ b/Doc/using/mac.rst @@ -17,15 +17,16 @@ the IDE and the Package Manager that are worth pointing out. Getting and Installing MacPython ================================ -macOS since version 10.8 comes with Python 2.7 pre-installed by Apple. If you wish, you -are invited to install the most recent version of Python 3 from the Python +macOS used to come with Python 2.7 pre-installed between versions +10.8 and `12.3 `_. +You are invited to install the most recent version of Python 3 from the Python website (https://www.python.org). A current "universal binary" build of Python, which runs natively on the Mac's new Intel and legacy PPC CPU's, is available there. What you get after installing is a number of things: -* A :file:`Python 3.9` folder in your :file:`Applications` folder. In here +* A :file:`Python 3.12` folder in your :file:`Applications` folder. In here you find IDLE, the development environment that is a standard part of official Python distributions; and PythonLauncher, which handles double-clicking Python scripts from the Finder. @@ -65,7 +66,7 @@ number of standard Unix command line editors, :program:`vim` and :program:`BBEdit` or :program:`TextWrangler` from Bare Bones Software (see http://www.barebones.com/products/bbedit/index.html) are good choices, as is :program:`TextMate` (see https://macromates.com/). Other editors include -:program:`Gvim` (http://macvim-dev.github.io/macvim/) and :program:`Aquamacs` +:program:`Gvim` (https://macvim-dev.github.io/macvim/) and :program:`Aquamacs` (http://aquamacs.org/). To run your script from the Terminal window you must make sure that diff --git a/Doc/using/unix.rst b/Doc/using/unix.rst index 0a1834453a0ee8..3f9f1364c8ae87 100644 --- a/Doc/using/unix.rst +++ b/Doc/using/unix.rst @@ -69,7 +69,7 @@ Building Python If you want to compile CPython yourself, first thing you should do is get the `source `_. You can download either the latest release's source or just grab a fresh `clone -`_. (If you want +`_. (If you want to contribute patches, you will need a clone.) The build process consists of the usual commands:: diff --git a/Doc/using/venv-create.inc b/Doc/using/venv-create.inc index ddb36f94667d9f..c2a9f521a148b6 100644 --- a/Doc/using/venv-create.inc +++ b/Doc/using/venv-create.inc @@ -17,7 +17,7 @@ re-used. .. deprecated:: 3.6 ``pyvenv`` was the recommended tool for creating virtual environments for Python 3.3 and 3.4, and is `deprecated in Python 3.6 - `_. + `_. .. versionchanged:: 3.5 The use of ``venv`` is now recommended for creating virtual environments. @@ -26,7 +26,7 @@ re-used. On Windows, invoke the ``venv`` command as follows:: - c:\>c:\Python35\python -m venv c:\path\to\myenv + c:\>Python35\python -m venv c:\path\to\myenv Alternatively, if you configured the ``PATH`` and ``PATHEXT`` variables for your :ref:`Python installation `:: diff --git a/Doc/using/windows.rst b/Doc/using/windows.rst index dcc533726813ca..a289435a2f51db 100644 --- a/Doc/using/windows.rst +++ b/Doc/using/windows.rst @@ -34,7 +34,7 @@ developers using Python for any kind of project. :ref:`windows-store` is a simple installation of Python that is suitable for running scripts and packages, and using IDLE or other development environments. -It requires Windows 10, but can be safely installed without corrupting other +It requires Windows 10 and above, but can be safely installed without corrupting other programs. It also provides many convenient commands for launching Python and its tools. @@ -194,18 +194,22 @@ of available options is shown below. | Include_debug | Install debug binaries | 0 | +---------------------------+--------------------------------------+--------------------------+ | Include_dev | Install developer headers and | 1 | -| | libraries | | +| | libraries. Omitting this may lead to | | +| | an unusable installation. | | +---------------------------+--------------------------------------+--------------------------+ | Include_exe | Install :file:`python.exe` and | 1 | -| | related files | | +| | related files. Omitting this may | | +| | lead to an unusable installation. | | +---------------------------+--------------------------------------+--------------------------+ | Include_launcher | Install :ref:`launcher`. | 1 | +---------------------------+--------------------------------------+--------------------------+ -| InstallLauncherAllUsers | Installs :ref:`launcher` for all | 1 | -| | users. | | +| InstallLauncherAllUsers | Installs the launcher for all | 1 | +| | users. Also requires | | +| | ``Include_launcher`` to be set to 1 | | +---------------------------+--------------------------------------+--------------------------+ | Include_lib | Install standard library and | 1 | -| | extension modules | | +| | extension modules. Omitting this may | | +| | lead to an unusable installation. | | +---------------------------+--------------------------------------+--------------------------+ | Include_pip | Install bundled pip and setuptools | 1 | +---------------------------+--------------------------------------+--------------------------+ @@ -348,14 +352,42 @@ Python in Start and right-click to select Uninstall. Uninstalling will remove all packages you installed directly into this Python installation, but will not remove any virtual environments -Known Issues +Known issues ------------ +Redirection of local data, registry, and temporary paths +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + Because of restrictions on Microsoft Store apps, Python scripts may not have -full write access to shared locations such as ``TEMP`` and the registry. +full write access to shared locations such as :envvar:`TEMP` and the registry. Instead, it will write to a private copy. If your scripts must modify the shared locations, you will need to install the full installer. +At runtime, Python will use a private copy of well-known Windows folders and the registry. +For example, if the environment variable :envvar:`%APPDATA%` is :file:`c:\\Users\\\\AppData\\`, +then when writing to :file:`C:\\Users\\\\AppData\\Local` will write to +:file:`C:\\Users\\\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\\LocalCache\\Local\\`. + +When reading files, Windows will return the file from the private folder, or if that does not exist, the +real Windows directory. For example reading :file:`C:\\Windows\\System32` returns the contents of :file:`C:\\Windows\\System32` +plus the contents of :file:`C:\\Program Files\\WindowsApps\\package_name\\VFS\\SystemX86`. + +You can find the real path of any existing file using :func:`os.path.realpath`: + +.. code-block:: python + + >>> import os + >>> test_file = 'C:\\Users\\example\\AppData\\Local\\test.txt' + >>> os.path.realpath(test_file) + 'C:\\Users\\example\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\\LocalCache\\Local\\test.txt' + +When writing to the Windows Registry, the following behaviors exist: + +* Reading from ``HKLM\\Software`` is allowed and results are merged with the :file:`registry.dat` file in the package. +* Writing to ``HKLM\\Software`` is not allowed if the corresponding key/value exists, i.e. modifying existing keys. +* Writing to ``HKLM\\Software`` is allowed as long as a corresponding key/value does not exist in the package + and the user has the correct access permissions. + For more detail on the technical basis for these limitations, please consult Microsoft's documentation on packaged full-trust apps, currently available at `docs.microsoft.com/en-us/windows/msix/desktop/desktop-to-uwp-behind-the-scenes @@ -513,9 +545,11 @@ key features: Popular scientific modules (such as numpy, scipy and pandas) and the ``conda`` package manager. -`Canopy `_ - A "comprehensive Python analysis environment" with editors and other - development tools. +`Enthought Deployment Manager `_ + "The Next Generation Python Environment and Package Manager". + + Previously Enthought provided Canopy, but it `reached end of life in 2016 + `_. `WinPython `_ Windows-specific distribution with prebuilt scientific packages and @@ -834,6 +868,11 @@ The ``/usr/bin/env`` form of shebang line has one further special property. Before looking for installed Python interpreters, this form will search the executable :envvar:`PATH` for a Python executable. This corresponds to the behaviour of the Unix ``env`` program, which performs a :envvar:`PATH` search. +If an executable matching the first argument after the ``env`` command cannot +be found, it will be handled as described below. Additionally, the environment +variable :envvar:`PYLAUNCHER_NO_SEARCH_PATH` may be set (to any value) to skip +this additional search. + Arguments in shebang lines -------------------------- @@ -1157,11 +1196,10 @@ shipped with PyWin32. It is an embeddable IDE with a built-in debugger. cx_Freeze --------- -`cx_Freeze `_ is a :mod:`distutils` -extension (see :ref:`extending-distutils`) which wraps Python scripts into -executable Windows programs (:file:`{*}.exe` files). When you have done this, -you can distribute your application without requiring your users to install -Python. +`cx_Freeze `_ is a ``distutils`` +extension which wraps Python scripts into executable Windows programs +(:file:`{*}.exe` files). When you have done this, you can distribute your +application without requiring your users to install Python. Compiling Python on Windows @@ -1170,7 +1208,7 @@ Compiling Python on Windows If you want to compile CPython yourself, first thing you should do is get the `source `_. You can download either the latest release's source or just grab a fresh `checkout -`_. +`_. The source tree contains a build solution and project files for Microsoft Visual Studio, which is the compiler used to build the official Python diff --git a/Doc/whatsnew/2.0.rst b/Doc/whatsnew/2.0.rst index 325def51c274e0..9b28dbc190337d 100644 --- a/Doc/whatsnew/2.0.rst +++ b/Doc/whatsnew/2.0.rst @@ -21,7 +21,7 @@ Python's development never completely stops between releases, and a steady flow of bug fixes and improvements are always being submitted. A host of minor fixes, a few optimizations, additional docstrings, and better error messages went into 2.0; to list them all would be impossible, but they're certainly significant. -Consult the publicly-available CVS logs if you want to see the full list. This +Consult the publicly available CVS logs if you want to see the full list. This progress is due to the five developers working for PythonLabs are now getting paid to spend their days fixing bugs, and also due to the improved communication resulting from moving to SourceForge. @@ -820,7 +820,7 @@ packages, which made administering a Python installation something of a chore. The SIG for distribution utilities, shepherded by Greg Ward, has created the Distutils, a system to make package installation much easier. They form the -:mod:`distutils` package, a new part of Python's standard library. In the best +``distutils`` package, a new part of Python's standard library. In the best case, installing a Python module from source will require the same steps: first you simply mean unpack the tarball or zip archive, and the run "``python setup.py install``". The platform will be automatically detected, the compiler diff --git a/Doc/whatsnew/2.1.rst b/Doc/whatsnew/2.1.rst index b690f90cf6636b..0136de58774038 100644 --- a/Doc/whatsnew/2.1.rst +++ b/Doc/whatsnew/2.1.rst @@ -542,8 +542,11 @@ PEP 241: Metadata in Python Packages A common complaint from Python users is that there's no single catalog of all the Python modules in existence. T. Middleton's Vaults of Parnassus at -http://www.vex.net/parnassus/ are the largest catalog of Python modules, but -registering software at the Vaults is optional, and many people don't bother. +``www.vex.net/parnassus/`` (retired in February 2009, `available in the +Internet Archive Wayback Machine +`_) +was the largest catalog of Python modules, but +registering software at the Vaults is optional, and many people did not bother. As a first small step toward fixing the problem, Python software packaged using the Distutils :command:`sdist` command will include a file named diff --git a/Doc/whatsnew/2.3.rst b/Doc/whatsnew/2.3.rst index cf5552064cf4a6..55061d2a46bde0 100644 --- a/Doc/whatsnew/2.3.rst +++ b/Doc/whatsnew/2.3.rst @@ -527,7 +527,7 @@ creates a :class:`LogRecord` instance that is sent to any number of different of filters, and each filter can cause the :class:`LogRecord` to be ignored or can modify the record before passing it along. When they're finally output, :class:`LogRecord` instances are converted to text by a :class:`Formatter` -class. All of these classes can be replaced by your own specially-written +class. All of these classes can be replaced by your own specially written classes. With all of these features the :mod:`logging` package should provide enough @@ -1082,7 +1082,7 @@ Here are all of the changes that Python 2.3 makes to the core Python language. hierarchy. Classic classes are unaffected by this change. Python 2.2 originally used a topological sort of a class's ancestors, but 2.3 now uses the C3 algorithm as described in the paper `"A Monotonic Superclass Linearization - for Dylan" `_. To + for Dylan" `_. To understand the motivation for this change, read Michele Simionato's article `"Python 2.3 Method Resolution Order" `_, or read the thread on python-dev starting with the message at diff --git a/Doc/whatsnew/2.4.rst b/Doc/whatsnew/2.4.rst index 7e11c98399cc18..ddfac1a3f4e63a 100644 --- a/Doc/whatsnew/2.4.rst +++ b/Doc/whatsnew/2.4.rst @@ -120,7 +120,7 @@ having the entire data set in memory at one time. List comprehensions don't fit into this picture very well because they produce a Python list object containing all of the items. This unavoidably pulls all of the objects into memory, which can be a problem if your data set is very large. When trying to write a -functionally-styled program, it would be natural to write something like:: +functionally styled program, it would be natural to write something like:: links = [link for link in get_all_links() if not link.followed] for link in links: @@ -918,7 +918,7 @@ Here are all of the changes that Python 2.4 makes to the core Python language. (Contributed by Raymond Hettinger.) -* Encountering a failure while importing a module no longer leaves a partially-initialized +* Encountering a failure while importing a module no longer leaves a partially initialized module object in ``sys.modules``. The incomplete module object left behind would fool further imports of the same module into succeeding, leading to confusing errors. (Fixed by Tim Peters.) @@ -1541,7 +1541,7 @@ code: * The :mod:`tarfile` module now generates GNU-format tar files by default. * Encountering a failure while importing a module no longer leaves a - partially-initialized module object in ``sys.modules``. + partially initialized module object in ``sys.modules``. * :const:`None` is now a constant; code that binds a new value to the name ``None`` is now a syntax error. diff --git a/Doc/whatsnew/2.5.rst b/Doc/whatsnew/2.5.rst index 5816380e102f99..6c216826fee047 100644 --- a/Doc/whatsnew/2.5.rst +++ b/Doc/whatsnew/2.5.rst @@ -11,11 +11,11 @@ This article explains the new features in Python 2.5. The final release of Python 2.5 is scheduled for August 2006; :pep:`356` describes the planned -release schedule. +release schedule. Python 2.5 was released on September 19, 2006. The changes in Python 2.5 are an interesting mix of language and library improvements. The library enhancements will be more important to Python's user -community, I think, because several widely-useful packages were added. New +community, I think, because several widely useful packages were added. New modules include ElementTree for XML processing (:mod:`xml.etree`), the SQLite database module (:mod:`sqlite`), and the :mod:`ctypes` module for calling C functions. @@ -551,7 +551,7 @@ exhausted. https://en.wikipedia.org/wiki/Coroutine The Wikipedia entry for coroutines. - http://www.sidhe.org/~dan/blog/archives/000178.html + https://web.archive.org/web/20160321211320/http://www.sidhe.org/~dan/blog/archives/000178.html An explanation of coroutines from a Perl point of view, written by Dan Sugalski. .. ====================================================================== @@ -882,7 +882,7 @@ in an :c:type:`int`. The C compilers for most 64-bit platforms still define :c:type:`int` as a 32-bit type, so that meant that lists could only hold up to ``2**31 - 1`` = 2147483647 items. (There are actually a few different programming models that 64-bit C compilers can use -- see -http://www.unix.org/version2/whatsnew/lp64_wp.html for a discussion -- but the +https://unix.org/version2/whatsnew/lp64_wp.html for a discussion -- but the most commonly available model leaves :c:type:`int` as 32 bits.) A limit of 2147483647 items doesn't really matter on a 32-bit platform because @@ -1293,7 +1293,7 @@ complete list of changes, or look through the SVN logs for all the details. received several enhancements and a number of bugfixes. You can now set the maximum size in bytes of a field by calling the ``csv.field_size_limit(new_limit)`` function; omitting the *new_limit* - argument will return the currently-set limit. The :class:`reader` class now has + argument will return the currently set limit. The :class:`reader` class now has a :attr:`line_num` attribute that counts the number of physical lines read from the source; records can span multiple physical lines, so :attr:`line_num` is not the same as the number of records read. @@ -1746,8 +1746,8 @@ modules, now that :mod:`ctypes` is included with core Python. .. seealso:: - http://starship.python.net/crew/theller/ctypes/ - The ctypes web page, with a tutorial, reference, and FAQ. + https://web.archive.org/web/20180410025338/http://starship.python.net/crew/theller/ctypes/ + The pre-stdlib ctypes web page, with a tutorial, reference, and FAQ. The documentation for the :mod:`ctypes` module. @@ -1930,7 +1930,7 @@ with the same digest state. The sqlite3 package ------------------- -The pysqlite module (http://www.pysqlite.org), a wrapper for the SQLite embedded +The pysqlite module (https://www.pysqlite.org), a wrapper for the SQLite embedded database, has been added to the standard library under the package name :mod:`sqlite3`. @@ -2019,7 +2019,7 @@ https://www.sqlite.org. .. seealso:: - http://www.pysqlite.org + https://www.pysqlite.org The pysqlite web page. https://www.sqlite.org @@ -2065,7 +2065,7 @@ up a server takes only a few lines of code:: .. seealso:: - http://www.wsgi.org + https://web.archive.org/web/20160331090247/http://wsgi.readthedocs.org/en/latest/ A central web site for WSGI-related resources. :pep:`333` - Python Web Server Gateway Interface v1.0 diff --git a/Doc/whatsnew/2.6.rst b/Doc/whatsnew/2.6.rst index b6174a19a178b6..3d0d18746a21cc 100644 --- a/Doc/whatsnew/2.6.rst +++ b/Doc/whatsnew/2.6.rst @@ -49,7 +49,7 @@ This saves the maintainer some effort going through the SVN logs when researching a change. -This article explains the new features in Python 2.6, released on October 1 +This article explains the new features in Python 2.6, released on October 1, 2008. The release schedule is described in :pep:`361`. The major theme of Python 2.6 is preparing the migration path to @@ -155,7 +155,7 @@ up different products and import some of the bugs and patches from SourceForge. Four different trackers were examined: `Jira `__, `Launchpad `__, -`Roundup `__, and +`Roundup `__, and `Trac `__. The committee eventually settled on Jira and Roundup as the two candidates. Jira is a commercial product that @@ -176,7 +176,7 @@ Hosting of the Python bug tracker is kindly provided by of Stellenbosch, South Africa. Martin von Löwis put a lot of effort into importing existing bugs and patches from SourceForge; his scripts for this import operation are at -http://svn.python.org/view/tracker/importer/ and may be useful to +``https://svn.python.org/view/tracker/importer/`` and may be useful to other projects wishing to move from SourceForge to Roundup. .. seealso:: @@ -184,13 +184,13 @@ other projects wishing to move from SourceForge to Roundup. https://bugs.python.org The Python bug tracker. - http://bugs.jython.org: + https://bugs.jython.org: The Jython bug tracker. - http://roundup.sourceforge.net/ + https://roundup.sourceforge.io/ Roundup downloads and documentation. - http://svn.python.org/view/tracker/importer/ + https://svn.python.org/view/tracker/importer/ Martin von Löwis's conversion scripts. New Documentation Format: reStructuredText Using Sphinx @@ -238,7 +238,7 @@ have adopted Sphinx as their documentation tool. `Sphinx `__ Documentation and code for the Sphinx toolchain. - `Docutils `__ + `Docutils `__ The underlying reStructuredText parser and toolset. @@ -523,7 +523,7 @@ PEP 370: Per-user ``site-packages`` Directory When you run Python, the module search path ``sys.path`` usually includes a directory whose path ends in ``"site-packages"``. This -directory is intended to hold locally-installed packages available to +directory is intended to hold locally installed packages available to all users using a machine or a particular site installation. Python 2.6 introduces a convention for user-specific site directories. @@ -1433,7 +1433,7 @@ one, :func:`math.trunc`, that's been backported to Python 2.6. `Scheme's numerical tower `__, from the Guile manual. - `Scheme's number datatypes `__ from the R5RS Scheme specification. + `Scheme's number datatypes `__ from the R5RS Scheme specification. The :mod:`fractions` Module @@ -2460,7 +2460,7 @@ changes, or look through the Subversion logs for all the details. The function must take a filename and return true if the file should be excluded or false if it should be archived. The function is applied to both the name initially passed to :meth:`add` - and to the names of files in recursively-added directories. + and to the names of files in recursively added directories. (All changes contributed by Lars Gustäbel). @@ -2513,7 +2513,7 @@ changes, or look through the Subversion logs for all the details. (Contributed by Brett Cannon.) * The :mod:`textwrap` module can now preserve existing whitespace - at the beginnings and ends of the newly-created lines + at the beginnings and ends of the newly created lines by specifying ``drop_whitespace=False`` as an argument:: diff --git a/Doc/whatsnew/2.7.rst b/Doc/whatsnew/2.7.rst index 297ce0647130e5..01f140dac8ae9c 100644 --- a/Doc/whatsnew/2.7.rst +++ b/Doc/whatsnew/2.7.rst @@ -279,7 +279,7 @@ Comparing an :class:`~collections.OrderedDict` with a regular dictionary ignores the insertion order and just compares the keys and values. How does the :class:`~collections.OrderedDict` work? It maintains a -doubly-linked list of keys, appending new keys to the list as they're inserted. +doubly linked list of keys, appending new keys to the list as they're inserted. A secondary dictionary maps keys to their corresponding list node, so deletion doesn't have to traverse the entire linked list and therefore remains O(1). @@ -299,7 +299,7 @@ modules. constructor was extended with an *object_pairs_hook* parameter to allow :class:`OrderedDict` instances to be built by the decoder. Support was also added for third-party tools like - `PyYAML `_. + `PyYAML `_. .. seealso:: @@ -1048,7 +1048,7 @@ changes, or look through the Subversion logs for all the details. The new version features better Python 3.x compatibility, various bug fixes, and adds several new BerkeleyDB flags and methods. (Updated by Jesús Cea Avión; :issue:`8156`. The pybsddb - changelog can be read at http://hg.jcea.es/pybsddb/file/tip/ChangeLog.) + changelog can be read at https://hg.jcea.es/pybsddb/file/tip/ChangeLog.) * The :mod:`bz2` module's :class:`~bz2.BZ2File` now supports the context management protocol, so you can write ``with bz2.BZ2File(...) as f:``. @@ -1545,7 +1545,7 @@ changes, or look through the Subversion logs for all the details. *ciphers* argument that's a string listing the encryption algorithms to be allowed; the format of the string is described `in the OpenSSL documentation - `__. + `__. (Added by Antoine Pitrou; :issue:`8322`.) Another change makes the extension load all of OpenSSL's ciphers and @@ -1831,7 +1831,7 @@ packaged as the :mod:`unittest2` package, from https://pypi.org/project/unittest2. When used from the command line, the module can automatically discover -tests. It's not as fancy as `py.test `__ or +tests. It's not as fancy as `py.test `__ or `nose `__, but provides a simple way to run tests kept within a set of package directories. For example, the following command will search the :file:`test/` subdirectory for @@ -1968,7 +1968,7 @@ GvR worked on merging them into Python's version of :mod:`unittest`. * :meth:`~unittest.TestCase.assertAlmostEqual` and :meth:`~unittest.TestCase.assertNotAlmostEqual` test whether *first* and *second* are approximately equal. This method - can either round their difference to an optionally-specified number + can either round their difference to an optionally specified number of *places* (the default is 7) and compare it to zero, or require the difference to be smaller than a supplied *delta* value. @@ -2001,7 +2001,7 @@ module is imported or used. .. seealso:: - http://www.voidspace.org.uk/python/articles/unittest2.shtml + https://web.archive.org/web/20210619163128/http://www.voidspace.org.uk/python/articles/unittest2.shtml Describes the new features, how to use them, and the rationale for various design decisions. (By Michael Foord.) @@ -2333,7 +2333,7 @@ Port-Specific Changes: Windows * The :mod:`_winreg` module for accessing the registry now implements the :func:`~_winreg.CreateKeyEx` and :func:`~_winreg.DeleteKeyEx` - functions, extended versions of previously-supported functions that + functions, extended versions of previously supported functions that take several extra arguments. The :func:`~_winreg.DisableReflectionKey`, :func:`~_winreg.EnableReflectionKey`, and :func:`~_winreg.QueryReflectionKey` were also tested and documented. @@ -2692,12 +2692,12 @@ As part of this change, the :ref:`installing-index` and completely redesigned as short getting started and FAQ documents. Most packaging documentation has now been moved out to the Python Packaging Authority maintained `Python Packaging User Guide -`__ and the documentation of the individual +`__ and the documentation of the individual projects. However, as this migration is currently still incomplete, the legacy versions of those guides remaining available as :ref:`install-index` -and :ref:`distutils-index`. +and :ref:`setuptools-index`. .. seealso:: diff --git a/Doc/whatsnew/3.0.rst b/Doc/whatsnew/3.0.rst index 880958d3edb900..63b24748d8aab6 100644 --- a/Doc/whatsnew/3.0.rst +++ b/Doc/whatsnew/3.0.rst @@ -53,9 +53,9 @@ This article explains the new features in Python 3.0, compared to 2.6. Python 3.0, also known as "Python 3000" or "Py3K", is the first ever -*intentionally backwards incompatible* Python release. There are more -changes than in a typical release, and more that are important for all -Python users. Nevertheless, after digesting the changes, you'll find +*intentionally backwards incompatible* Python release. Python 3.0 was released on December 3, 2008. +There are more changes than in a typical release, and more that are important for all +Python users. Nevertheless, after digesting the changes, you'll find that Python really hasn't changed all that much -- by and large, we're mostly fixing well-known annoyances and warts, and removing a lot of old cruft. @@ -663,7 +663,7 @@ Some other changes to standard library modules, not covered by :data:`string.ascii_letters` etc. instead. (The reason for the removal is that :data:`string.letters` and friends had locale-specific behavior, which is a bad idea for such - attractively-named global "constants".) + attractively named global "constants".) * Renamed module :mod:`__builtin__` to :mod:`builtins` (removing the underscores, adding an 's'). The :data:`__builtins__` variable diff --git a/Doc/whatsnew/3.1.rst b/Doc/whatsnew/3.1.rst index f1e6d0c4f3dd68..6ce6358d49fbca 100644 --- a/Doc/whatsnew/3.1.rst +++ b/Doc/whatsnew/3.1.rst @@ -47,6 +47,7 @@ when researching a change. This article explains the new features in Python 3.1, compared to 3.0. +Python 3.1 was released on June 27, 2009. PEP 372: Ordered Dictionaries @@ -71,7 +72,7 @@ order. The *_asdict()* method for :func:`collections.namedtuple` now returns an ordered dictionary with the values appearing in the same order as the underlying tuple indices. The :mod:`json` module is being built-out with an *object_pairs_hook* to allow OrderedDicts to be built by the decoder. -Support was also added for third-party tools like `PyYAML `_. +Support was also added for third-party tools like `PyYAML `_. .. seealso:: diff --git a/Doc/whatsnew/3.10.rst b/Doc/whatsnew/3.10.rst index f93523a4c50a89..db8d9281b1f2ed 100644 --- a/Doc/whatsnew/3.10.rst +++ b/Doc/whatsnew/3.10.rst @@ -47,7 +47,7 @@ when researching a change. This article explains the new features in Python 3.10, compared to 3.9. - +Python 3.10 was released on October 4, 2021. For full details, see the :ref:`changelog `. Summary -- Release highlights @@ -230,7 +230,7 @@ have been incorporated. Some of the most notable ones are as follows: ^ SyntaxError: expected ':' - (Contributed by Pablo Galindo in :issue:`42997`) + (Contributed by Pablo Galindo in :issue:`42997`.) * Unparenthesised tuples in comprehensions targets: @@ -242,7 +242,7 @@ have been incorporated. Some of the most notable ones are as follows: ^ SyntaxError: did you forget parentheses around the comprehension target? - (Contributed by Pablo Galindo in :issue:`43017`) + (Contributed by Pablo Galindo in :issue:`43017`.) * Missing commas in collection literals and between expressions: @@ -257,7 +257,7 @@ have been incorporated. Some of the most notable ones are as follows: ^ SyntaxError: invalid syntax. Perhaps you forgot a comma? - (Contributed by Pablo Galindo in :issue:`43822`) + (Contributed by Pablo Galindo in :issue:`43822`.) * Multiple Exception types without parentheses: @@ -271,7 +271,7 @@ have been incorporated. Some of the most notable ones are as follows: ^ SyntaxError: multiple exception types must be parenthesized - (Contributed by Pablo Galindo in :issue:`43149`) + (Contributed by Pablo Galindo in :issue:`43149`.) * Missing ``:`` and values in dictionary literals: @@ -293,7 +293,7 @@ have been incorporated. Some of the most notable ones are as follows: ^ SyntaxError: ':' expected after dictionary key - (Contributed by Pablo Galindo in :issue:`43823`) + (Contributed by Pablo Galindo in :issue:`43823`.) * ``try`` blocks without ``except`` or ``finally`` blocks: @@ -307,7 +307,7 @@ have been incorporated. Some of the most notable ones are as follows: ^^^^^^^^^ SyntaxError: expected 'except' or 'finally' block - (Contributed by Pablo Galindo in :issue:`44305`) + (Contributed by Pablo Galindo in :issue:`44305`.) * Usage of ``=`` instead of ``==`` in comparisons: @@ -319,7 +319,7 @@ have been incorporated. Some of the most notable ones are as follows: ^ SyntaxError: cannot assign to attribute here. Maybe you meant '==' instead of '='? - (Contributed by Pablo Galindo in :issue:`43797`) + (Contributed by Pablo Galindo in :issue:`43797`.) * Usage of ``*`` in f-strings: @@ -331,7 +331,7 @@ have been incorporated. Some of the most notable ones are as follows: ^ SyntaxError: f-string: cannot use starred expression here - (Contributed by Pablo Galindo in :issue:`41064`) + (Contributed by Pablo Galindo in :issue:`41064`.) IndentationErrors ~~~~~~~~~~~~~~~~~ @@ -1048,7 +1048,7 @@ keyword-only. This will probably be the most common usage: Here, ``z`` and ``t`` are keyword-only parameters, while ``x`` and ``y`` are not. -(Contributed by Eric V. Smith in :issue:`43532`) +(Contributed by Eric V. Smith in :issue:`43532`.) .. _distutils-deprecated: @@ -1186,6 +1186,9 @@ New in 3.10 maintenance releases. Apply syntax highlighting to `.pyi` files. (Contributed by Alex Waygood and Terry Jan Reedy in :issue:`45447`.) +Include prompts when saving Shell with inputs and outputs. +(Contributed by Terry Jan Reedy in :gh:`95191`.) + importlib.metadata ------------------ @@ -1266,11 +1269,11 @@ pathlib ------- Add slice support to :attr:`PurePath.parents `. -(Contributed by Joshua Cannon in :issue:`35498`) +(Contributed by Joshua Cannon in :issue:`35498`.) Add negative indexing support to :attr:`PurePath.parents `. -(Contributed by Yaroslav Pankovych in :issue:`21041`) +(Contributed by Yaroslav Pankovych in :issue:`21041`.) Add :meth:`Path.hardlink_to ` method that supersedes :meth:`~pathlib.Path.link_to`. The new method has the same argument @@ -1288,7 +1291,7 @@ platform Add :func:`platform.freedesktop_os_release()` to retrieve operation system identification from `freedesktop.org os-release `_ standard file. -(Contributed by Christian Heimes in :issue:`28468`) +(Contributed by Christian Heimes in :issue:`28468`.) pprint ------ @@ -1473,7 +1476,7 @@ and to match the behavior of static type checkers specified in the PEP. Add new function :func:`typing.is_typeddict` to introspect if an annotation is a :class:`typing.TypedDict`. -(Contributed by Patrick Reader in :issue:`41792`) +(Contributed by Patrick Reader in :issue:`41792`.) Subclasses of ``typing.Protocol`` which only have data variables declared will now raise a ``TypeError`` when checked with ``isinstance`` unless they @@ -1481,14 +1484,14 @@ are decorated with :func:`runtime_checkable`. Previously, these checks passed silently. Users should decorate their subclasses with the :func:`runtime_checkable` decorator if they want runtime protocols. -(Contributed by Yurii Karabas in :issue:`38908`) +(Contributed by Yurii Karabas in :issue:`38908`.) Importing from the ``typing.io`` and ``typing.re`` submodules will now emit :exc:`DeprecationWarning`. These submodules have been deprecated since Python 3.8 and will be removed in a future version of Python. Anything belonging to those submodules should be imported directly from :mod:`typing` instead. -(Contributed by Sebastian Rittau in :issue:`38291`) +(Contributed by Sebastian Rittau in :issue:`38291`.) unittest -------- @@ -1566,7 +1569,7 @@ Optimizations strings, and the function object lazily converts this into the annotations dict on demand. This optimization cuts the CPU time needed to define an annotated function by half. - (Contributed by Yurii Karabas and Inada Naoki in :issue:`42202`) + (Contributed by Yurii Karabas and Inada Naoki in :issue:`42202`.) * Substring search functions such as ``str1 in str2`` and ``str2.find(str1)`` now sometimes use Crochemore & Perrin's "Two-Way" string searching @@ -1575,16 +1578,16 @@ Optimizations * Add micro-optimizations to ``_PyType_Lookup()`` to improve type attribute cache lookup performance in the common case of cache hits. This makes the interpreter 1.04 times faster - on average. (Contributed by Dino Viehland in :issue:`43452`) + on average. (Contributed by Dino Viehland in :issue:`43452`.) * The following built-in functions now support the faster :pep:`590` vectorcall calling convention: :func:`map`, :func:`filter`, :func:`reversed`, :func:`bool` and :func:`float`. - (Contributed by Dong-hee Na and Jeroen Demeyer in :issue:`43575`, :issue:`43287`, :issue:`41922`, :issue:`41873` and :issue:`41870`) + (Contributed by Dong-hee Na and Jeroen Demeyer in :issue:`43575`, :issue:`43287`, :issue:`41922`, :issue:`41873` and :issue:`41870`.) * :class:`BZ2File` performance is improved by removing internal ``RLock``. This makes :class:`BZ2File` thread unsafe in the face of multiple simultaneous readers or writers, just like its equivalent classes in :mod:`gzip` and - :mod:`lzma` have always been. (Contributed by Inada Naoki in :issue:`43785`). + :mod:`lzma` have always been. (Contributed by Inada Naoki in :issue:`43785`.) .. _whatsnew310-deprecated: @@ -1600,7 +1603,7 @@ Deprecated :keyword:`for`, :keyword:`if`, :keyword:`in`, :keyword:`is` and :keyword:`or`. In future releases it will be changed to syntax warning, and finally to syntax error. - (Contributed by Serhiy Storchaka in :issue:`43833`). + (Contributed by Serhiy Storchaka in :issue:`43833`.) * Starting in this release, there will be a concerted effort to begin cleaning up old import semantics that were kept for Python 2.7 @@ -1746,7 +1749,7 @@ Deprecated * ``threading.Thread.setDaemon`` => :attr:`threading.Thread.daemon` - (Contributed by Jelle Zijlstra in :issue:`21574`.) + (Contributed by Jelle Zijlstra in :gh:`87889`.) * :meth:`pathlib.Path.link_to` is deprecated and slated for removal in Python 3.12. Use :meth:`pathlib.Path.hardlink_to` instead. @@ -1788,7 +1791,7 @@ Deprecated :exc:`DeprecationWarning`. These submodules will be removed in a future version of Python. Anything belonging to these submodules should be imported directly from :mod:`typing` instead. - (Contributed by Sebastian Rittau in :issue:`38291`) + (Contributed by Sebastian Rittau in :issue:`38291`.) .. _whatsnew310-removed: @@ -1871,7 +1874,7 @@ Changes in the Python syntax syntax error. To get rid of the warning and make the code compatible with future releases just add a space between the numeric literal and the following keyword. - (Contributed by Serhiy Storchaka in :issue:`43833`). + (Contributed by Serhiy Storchaka in :issue:`43833`.) .. _changes-python-api: @@ -1981,7 +1984,7 @@ CPython bytecode changes * The ``MAKE_FUNCTION`` instruction now accepts either a dict or a tuple of strings as the function's annotations. - (Contributed by Yurii Karabas and Inada Naoki in :issue:`42202`) + (Contributed by Yurii Karabas and Inada Naoki in :issue:`42202`.) Build Changes ============= @@ -2197,7 +2200,7 @@ Porting to Python 3.10 directory. These files must not be included directly, as they are already included in ``Python.h``: :ref:`Include Files `. If they have been included directly, consider including ``Python.h`` instead. - (Contributed by Nicholas Sim in :issue:`35134`) + (Contributed by Nicholas Sim in :issue:`35134`.) * Use the :c:data:`Py_TPFLAGS_IMMUTABLETYPE` type flag to create immutable type objects. Do not rely on :c:data:`Py_TPFLAGS_HEAPTYPE` to decide if a type @@ -2207,7 +2210,7 @@ Porting to Python 3.10 * The undocumented function ``Py_FrozenMain`` has been removed from the limited API. The function is mainly useful for custom builds of Python. - (Contributed by Petr Viktorin in :issue:`26241`) + (Contributed by Petr Viktorin in :issue:`26241`.) Deprecated ---------- diff --git a/Doc/whatsnew/3.11.rst b/Doc/whatsnew/3.11.rst index 24d1343689c98f..e3580c5a36fbb4 100644 --- a/Doc/whatsnew/3.11.rst +++ b/Doc/whatsnew/3.11.rst @@ -49,12 +49,6 @@ This article explains the new features in Python 3.11, compared to 3.10. For full details, see the :ref:`changelog `. -.. note:: - - Prerelease users should be aware that this document is currently in draft - form. It will be updated substantially as Python 3.11 moves towards release, - so it's worth checking back even after reading earlier versions. - Summary -- Release highlights ============================= @@ -62,7 +56,7 @@ Summary -- Release highlights .. This section singles out the most important changes in Python 3.11. Brevity is key. -- Python 3.11 is up to 10-60% faster than Python 3.10. On average, we measured a +- Python 3.11 is between 10-60% faster than Python 3.10. On average, we measured a 1.25x speedup on the standard benchmark suite. See `Faster CPython`_ for details. .. PEP-sized items next. @@ -70,20 +64,36 @@ Summary -- Release highlights New syntax features: * :pep:`654`: Exception Groups and ``except*``. - (Contributed by Irit Katriel in :issue:`45292`.) + +New built-in features: + +* :pep:`678`: Enriching Exceptions with Notes. + +New standard library modules: + +* :pep:`680`: ``tomllib`` — Support for Parsing TOML in the Standard Library. + +Interpreter improvements: + +* :pep:`657`: Include Fine Grained Error Locations in Tracebacks. +* New :option:`-P` command line option and :envvar:`PYTHONSAFEPATH` environment + variable to disable automatically prepending a potentially unsafe path + (the working dir or script directory, depending on invocation) + to :data:`sys.path`. New typing features: * :pep:`646`: Variadic generics. -* :pep:`655`: Marking individual TypedDict items as required or potentially-missing. +* :pep:`655`: Marking individual TypedDict items as required or potentially missing. * :pep:`673`: ``Self`` type. * :pep:`675`: Arbitrary literal string type. +* :pep:`681`: Data Class Transforms. -Security improvements: +Important deprecations, removals or restrictions: -* New :option:`-P` command line option and :envvar:`PYTHONSAFEPATH` environment - variable to not prepend a potentially unsafe path to :data:`sys.path` such as - the current directory, the script's directory or an empty string. +* :pep:`594`: Removing dead batteries from the standard library. +* :pep:`624`: Remove ``Py_UNICODE`` encoder APIs. +* :pep:`670`: Convert macros to functions in the Python C API. New Features @@ -117,7 +127,6 @@ when dealing with deeply nested dictionary objects and multiple function calls, Traceback (most recent call last): File "query.py", line 37, in magic_arithmetic('foo') - ^^^^^^^^^^^^^^^^^^^^^^^ File "query.py", line 18, in magic_arithmetic return add_counts(x) / 25 ^^^^^^^^^^^^^ @@ -166,8 +175,25 @@ The :option:`-X` ``no_debug_ranges`` option and the environment variable See :pep:`657` for more details. (Contributed by Pablo Galindo, Batuhan Taskaya and Ammar Askar in :issue:`43950`.) -Exceptions can be enriched with notes (PEP 678) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +PEP 654: Exception Groups and ``except*`` +----------------------------------------- + +:pep:`654` introduces language features that enable a program +to raise and handle multiple unrelated exceptions simultaneously. +The builtin types :exc:`ExceptionGroup` and :exc:`BaseExceptionGroup` +make it possible to group exceptions and raise them together, +and the new :keyword:`except* ` syntax generalizes +:keyword:`except` to match subgroups of exception groups. + +See :pep:`654` for more details. + +(Contributed by Irit Katriel in :issue:`45292`. PEP written by +Irit Katriel, Yury Selivanov and Guido van Rossum.) + + +PEP 678: Exceptions can be enriched with notes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The :meth:`add_note` method was added to :exc:`BaseException`. It can be used to enrich exceptions with context information which is not available @@ -336,6 +362,35 @@ See :pep:`681` for more details. (Contributed by Jelle Zijlstra in :gh:`91860`. PEP written by Erik De Bonte and Eric Traut.) +PEP 563 May Not Be the Future +----------------------------- + +* :pep:`563` Postponed Evaluation of Annotations, ``__future__.annotations`` + that was planned for this release has been indefinitely postponed. + See `this message `_ for more information. + +Windows py.exe launcher improvements +------------------------------------ + +The copy of :ref:`launcher` included with Python 3.11 has been significantly +updated. It now supports company/tag syntax as defined in :pep:`514` using the +``-V:/`` argument instead of the limited ``-x.y`` argument. This +allows launching distributions other than ``PythonCore``, which is the one +obtained from `python.org `_. + +When using ``-V:`` selectors, either company or tag can be omitted, but all +installs will be searched. For example, ``-V:OtherPython/`` will select the +"best" tag registered for ``OtherPython``, while ``-V:3.11`` or ``-V:/3.11`` +will select the "best" distribution with tag ``3.11``. + +When using legacy ``-x``, ``-x.y``, ``-x-ZZ`` or ``-x.y-ZZ`` arguments, all +existing behaviour should be preserved from past versions. Only releases from +``PythonCore`` will be selected. However, the ``-64`` suffix now implies "not +32-bit", as there are multiple supported 64-bit platforms. 32-bit runtimes are +detected by checking its tag for a ``-32`` suffix. All releases of Python +since 3.5 have included this in their 32-bit builds. + + Other Language Changes ====================== @@ -373,6 +428,16 @@ Other Language Changes the current directory, the script's directory or an empty string. (Contributed by Victor Stinner in :gh:`57684`.) +* A ``"z"`` option was added to the format specification mini-language that + coerces negative zero to zero after rounding to the format precision. See + :pep:`682` for more details. (Contributed by John Belmonte in :gh:`90153`.) + +* Bytes are no longer accepted on :attr:`sys.path`. Support broke sometime + between Python 3.2 and 3.6 with no one noticing until after Python 3.10.0 + was released. Bringing back support would also be problematic due to + interactions between :option:`-b` and :attr:`sys.path_importer_cache` when + there is a mixture of strings and bytes keys. + (Contributed by Thomas Grainger in :gh:`91181`.) Other CPython Implementation Changes ==================================== @@ -408,6 +473,12 @@ Other CPython Implementation Changes :data:`sys.path`. Otherwise, initialization will recalculate the path and replace any values added to ``module_search_paths``. +* The output of the :option:`--help` option is changed to fit inside 50 lines and 80 + columns. Information about :ref:`Python environment variables ` + and :option:`-X options <-X>` is available with the new :option:`--help-env` or + :option:`--help-xoptions` flags, and with :option:`--help-all`. + (Contributed by Éric Araujo in :issue:`46142`.) + New Modules =========== @@ -440,6 +511,26 @@ asyncio the asyncio library. (Contributed by Yves Duprat and Andrew Svetlov in :gh:`87518`.) +* Add :class:`~asyncio.TaskGroup` class, + an :ref:`asynchronous context manager ` + holding a group of tasks that will wait for all of them upon exit. + (Contributed by Yury Seliganov and others.) + +contextlib +---------- + +Added non parallel-safe :func:`~contextlib.chdir` context manager to change +the current working directory and then restore it on exit. Simple wrapper +around :func:`~os.chdir`. (Contributed by Filipe Laíns in :issue:`25625`) + +dataclasses +----------- + +* Change field default mutability check, allowing only defaults which are + :term:`hashable` instead of any object which is not an instance of + :class:`dict`, :class:`list` or :class:`set`. (Contributed by Eric V. Smith in + :issue:`44674`.) + datetime -------- @@ -450,6 +541,49 @@ datetime formats (barring only those that support fractional hours and minutes). (Contributed by Paul Ganssle in :gh:`80010`.) +enum +---- + +* ``EnumMeta`` renamed to ``EnumType`` (``EnumMeta`` kept as alias). + +* ``StrEnum`` added -- enum members are and must be strings. + +* ``ReprEnum`` added -- causes only the ``__repr__`` to be modified, not the + ``__str__`` nor the ``__format__``. + +* ``FlagBoundary`` added -- controls behavior when invalid values are given to + a flag. + +* ``EnumCheck`` added -- used by ``verify`` to ensure various constraints. + +* ``verify`` added -- function to ensure given ``EnumCheck`` constraints. + +* ``member`` added -- decorator to ensure given object is converted to an enum + member. + +* ``nonmember`` added -- decorator to ensure given object is not converted to + an enum member. + +* ``property`` added -- use instead of ``types.DynamicClassAttribute``. + +* ``global_enum`` added -- enum decorator to adjust ``__repr__`` and ``__str__`` + to show members in the global context -- see ``re.RegexFlag`` for an example. + +* ``Flag`` enhancements: members support length, iteration, and containment + checks. + +* ``Enum``/``Flag`` fixes: members are now defined before ``__init_subclass__`` + is called; ``dir()`` now includes methods, etc., from mixed-in data types. + +* ``Flag`` fixes: only primary values (power of two) are considered canonical + while composite values (3, 6, 10, etc.) are considered aliases; inverted + flags are coerced to their positive equivalent. + +* ``IntEnum`` / ``IntFlag`` / ``StrEnum`` fixes: these now inherit from + ``ReprEnum`` so the ``str()`` output now matches ``format()`` output, + which is the data types' (so both ``str(AnIntEnum.ONE)`` and + ``format(AnIntEnum.ONE)`` is equal to ``'1'``). + fractions --------- @@ -504,12 +638,19 @@ hashlib OpenSSL support. (Contributed by Christian Heimes in :issue:`47098`.) +* Add :func:`hashlib.file_digest`, a helper function for efficient hashing + of files or file-like objects. + (Contributed by Christian Heimes in :gh:`89313`.) + IDLE and idlelib ---------------- * Apply syntax highlighting to `.pyi` files. (Contributed by Alex Waygood and Terry Jan Reedy in :issue:`45447`.) +* Include prompts when saving Shell with inputs and outputs. + (Contributed by Terry Jan Reedy in :gh:`95191`.) + inspect ------- * Add :func:`inspect.getmembers_static`: return all members without @@ -525,7 +666,7 @@ inspect line number, column and end column). The affected functions are: :func:`inspect.getframeinfo`, :func:`inspect.getouterframes`, :func:`inspect.getinnerframes`, :func:`inspect.stack` and :func:`inspect.trace`. (Contributed by Pablo Galindo in - :gh:`88116`) + :gh:`88116`.) locale ------ @@ -600,7 +741,7 @@ socket * :meth:`~socket.create_connection` has an option to raise, in case of failure to connect, an :exc:`ExceptionGroup` containing all errors instead of only raising the last error. - (Contributed by Irit Katriel in :issue:`29980`). + (Contributed by Irit Katriel in :issue:`29980`.) sqlite3 ------- @@ -650,7 +791,7 @@ sqlite3 * Add :meth:`~sqlite3.Connection.blobopen` to :class:`sqlite3.Connection`. :class:`sqlite3.Blob` allows incremental I/O operations on blobs. - (Contributed by Aviv Palivoda and Erlend E. Aasland in :issue:`24905`) + (Contributed by Aviv Palivoda and Erlend E. Aasland in :issue:`24905`.) sys @@ -673,7 +814,7 @@ sys sysconfig --------- -* Two new :ref:`installation schemes ` +* Three new :ref:`installation schemes ` (*posix_venv*, *nt_venv* and *venv*) were added and are used when Python creates new virtual environments or when it is running from a virtual environment. @@ -714,6 +855,20 @@ time it had a resolution of 1 millisecond (10\ :sup:`-3` seconds). (Contributed by Benjamin Szőke, Dong-hee Na, Eryk Sun and Victor Stinner in :issue:`21302` and :issue:`45429`.) + +traceback +--------- + +* Add :func:`traceback.StackSummary.format_frame_summary` to allow users + to override which frames appear in the traceback, and how they are + formatted. + (Contributed by Ammar Askar in :issue:`44569`.) + +* Add :func:`traceback.TracebackException.print`, which prints the + formatted :exc:`~traceback.TracebackException` instance to a file. + (Contributed by Irit Katriel in :issue:`33809`.) + + typing ------ @@ -736,7 +891,7 @@ For major changes, see :ref:`new-feat-related-type-hints-311`. (Contributed by Jelle Zijlstra in :gh:`90638`.) * :data:`typing.TypedDict` types can now be generic. (Contributed by - Samodya Abey in :gh:`89026`.) + Samodya Abeysiriwardane in :gh:`89026`.) * :class:`~typing.NamedTuple` types can now be generic. (Contributed by Serhiy Storchaka in :issue:`43923`.) @@ -794,7 +949,7 @@ tkinter unicodedata ----------- -* The Unicode database has been updated to version 14.0.0. (:issue:`45190`). +* The Unicode database has been updated to version 14.0.0. (Contributed by Benjamin Peterson in :issue:`45190`). unittest @@ -879,7 +1034,7 @@ Optimizations Faster CPython ============== -CPython 3.11 is on average `25% faster `_ +CPython 3.11 is on average `25% faster `_ than CPython 3.10 when measured with the `pyperformance `_ benchmark suite, and compiled with GCC on Ubuntu Linux. Depending on your workload, the speedup @@ -1098,6 +1253,13 @@ contributors are volunteers from the community. CPython bytecode changes ======================== +* The bytecode now contains inline cache entries, which take the form of + :opcode:`CACHE` instructions. Many opcodes expect to be followed by an exact + number of caches, and instruct the interpreter to skip over them at runtime. + Populated caches can look like arbitrary instructions, so great care should be + taken when reading or modifying raw, adaptive bytecode containing quickened + data. + * Replaced all numeric ``BINARY_*`` and ``INPLACE_*`` instructions with a single :opcode:`BINARY_OP` implementation. @@ -1141,6 +1303,8 @@ CPython bytecode changes * :opcode:`JUMP_IF_TRUE_OR_POP` and :opcode:`JUMP_IF_FALSE_OR_POP` are now relative rather than absolute. +* :opcode:`RESUME` has been added. It is a no-op. Performs internal tracing, + debugging and optimization checks. Deprecated ========== @@ -1452,13 +1616,6 @@ Changes in the Python API the ``'utf-8'`` encoding. (Contributed by Srinivas Reddy Thatiparthy (శ్రీనివాస్ రెడ్డి తాటిపర్తి) in :issue:`41137`.) -* When sorting using tuples as keys, the order of the result may differ - from earlier releases if the tuple elements don't define a total - ordering (see :ref:`expressions-value-comparisons` for - information on total ordering). It's generally true that the result - of sorting simply isn't well-defined in the absence of a total ordering - on list elements. - * :mod:`calendar`: The :class:`calendar.LocaleTextCalendar` and :class:`calendar.LocaleHTMLCalendar` classes now use :func:`locale.getlocale`, instead of using :func:`locale.getdefaultlocale`, @@ -1480,11 +1637,20 @@ Changes in the Python API is larger than the population size, a :exc:`ValueError` is raised. (Contributed by Raymond Hettinger in :issue:`40465`.) +* :class:`ast.AST` node positions are now validated when provided to + :func:`compile` and other related functions. If invalid positions are detected, + a :exc:`ValueError` will be raised. (Contributed by Pablo Galindo in :gh:`93351`) + +* :c:member:`~PyTypeObject.tp_dictoffset` should be treated as write-only. + It can be set to describe C extension clases to the VM, but should be regarded + as meaningless when read. To get the pointer to the object's dictionary call + :c:func:`PyObject_GenericGetDict` instead. Build Changes ============= -* Building Python now requires a C11 compiler without optional C11 features. +* Building Python now requires a C11 compiler. Optional C11 features are not + required. (Contributed by Victor Stinner in :issue:`46656`.) * Building Python now requires support of IEEE 754 floating point numbers. @@ -1512,7 +1678,7 @@ Build Changes * Freelists for object structs can now be disabled. A new :program:`configure` option :option:`!--without-freelists` can be used to disable all freelists except empty tuple singleton. - (Contributed by Christian Heimes in :issue:`45522`) + (Contributed by Christian Heimes in :issue:`45522`.) * ``Modules/Setup`` and ``Modules/makesetup`` have been improved and tied up. Extension modules can now be built through ``makesetup``. All except some @@ -1522,21 +1688,37 @@ Build Changes * Build dependencies, compiler flags, and linker flags for most stdlib extension modules are now detected by :program:`configure`. libffi, libnsl, - libsqlite3, zlib, bzip2, liblzma, libcrypt, Tcl/Tk libs, and uuid flags - are detected by ``pkg-config`` (when available). + libsqlite3, zlib, bzip2, liblzma, libcrypt, Tcl/Tk, and uuid flags + are detected by ``pkg-config`` (when available). :mod:`tkinter` now + requires ``pkg-config`` command to detect development settings for Tcl/Tk + headers and libraries. (Contributed by Christian Heimes and Erlend Egeberg Aasland in :issue:`45847`, :issue:`45747`, and :issue:`45763`.) .. note:: - Use the environment variables ``TCLTK_CFLAGS`` and ``TCLTK_LIBS`` to - manually specify the location of Tcl/Tk headers and libraries. - The :program:`configure` options ``--with-tcltk-includes`` and - ``--with-tcltk-libs`` have been removed. - -* CPython now has experimental support for cross compiling to WebAssembly - platform ``wasm32-emscripten``. The effort is inspired by previous work - like Pyodide. - (Contributed by Christian Heimes and Ethan Smith in :issue:`40280`.) + Use the environment variables :envvar:`TCLTK_CFLAGS` and + :envvar:`TCLTK_LIBS` to manually specify the location of Tcl/Tk headers + and libraries. The :program:`configure` options ``--with-tcltk-includes`` + and ``--with-tcltk-libs`` have been removed. + + On RHEL 7 and CentOS 7 the development packages do not provide ``tcl.pc`` + and ``tk.pc``, use :envvar:`TCLTK_LIBS="-ltk8.5 -ltkstub8.5 -ltcl8.5"`. + The directory ``Misc/rhel7`` contains ``.pc`` files and instructions + how to build Python with RHEL 7's and CentOS 7's Tcl/Tk and OpenSSL. + +* CPython now has :pep:`11` tier 3 support for cross compiling to WebAssembly + platform ``wasm32-unknown-emscripten`` (Python in the browser). The effort + is inspired by previous work like `Pyodide `_. + Emscripten provides a limited subset of POSIX APIs. Python standard + libraries features and modules related to networking, processes, threading, + signals, mmap, and users/groups are not available or don't work. + (Contributed by Christian Heimes and Ethan Smith in :gh:`84461`, + promoted in :gh:`95085`) + +* CPython now has :pep:`11` tier 3 support for cross compiling to WebAssembly + platform ``wasm32-unknown-wasi`` (WebAssembly System Interface). Like on + Emscripten, only a subset of Python's standard library is available on WASI. + (Contributed by Christian Heimes in :gh:`90473`, promoted in :gh:`95085`) * CPython will now use 30-bit digits by default for the Python :class:`int` implementation. Previously, the default was to use 30-bit digits on platforms @@ -1646,10 +1828,13 @@ Porting to Python 3.11 To get a custom code object: create a code object using the compiler, then get a modified version with the ``replace`` method. -* :c:type:`PyCodeObject` no longer has a ``co_code`` field. Instead, - use ``PyObject_GetAttrString(code_object, "co_code")`` or - :c:func:`PyCode_GetCode` to get the underlying bytes object. - (Contributed by Brandt Bucher in :issue:`46841` and Ken Jin in :gh:`92154`.) +* :c:type:`PyCodeObject` no longer has the ``co_code``, ``co_varnames``, + ``co_cellvars`` and ``co_freevars`` fields. Instead, use + :c:func:`PyCode_GetCode`, :c:func:`PyCode_GetVarnames`, + :c:func:`PyCode_GetCellvars` and :c:func:`PyCode_GetFreevars` respectively + to access them via the C API. + (Contributed by Brandt Bucher in :issue:`46841` and Ken Jin in :gh:`92154` + and :gh:`94936`.) * The old trashcan macros (``Py_TRASHCAN_SAFE_BEGIN``/``Py_TRASHCAN_SAFE_END``) are now deprecated. They should be replaced by the new macros @@ -1749,6 +1934,21 @@ Porting to Python 3.11 which are not available in the limited C API. (Contributed by Victor Stinner in :issue:`46007`.) +* The following frame functions and type are now directly available with + ``#include ``, it's no longer needed to add + ``#include ``: + + * :c:func:`PyFrame_Check` + * :c:func:`PyFrame_GetBack` + * :c:func:`PyFrame_GetBuiltins` + * :c:func:`PyFrame_GetGenerator` + * :c:func:`PyFrame_GetGlobals` + * :c:func:`PyFrame_GetLasti` + * :c:func:`PyFrame_GetLocals` + * :c:type:`PyFrame_Type` + + (Contributed by Victor Stinner in :gh:`93937`.) + .. _pyframeobject-3.11-hiding: * The :c:type:`PyFrameObject` structure members have been removed from the @@ -1885,7 +2085,6 @@ Porting to Python 3.11 paths and then modify them, finish initialization and use :c:func:`PySys_GetObject` to retrieve :data:`sys.path` as a Python list object and modify it directly. - Deprecated ---------- @@ -1968,5 +2167,30 @@ Removed API). (Contributed by Victor Stinner in :issue:`45412`.) +* Remove the :c:type:`Py_UNICODE` encoder APIs, + as they have been deprecated since Python 3.3, + are little used + and are inefficient relative to the recommended alternatives. + + The removed functions are: + + * :func:`!PyUnicode_Encode` + * :func:`!PyUnicode_EncodeASCII` + * :func:`!PyUnicode_EncodeLatin1` + * :func:`!PyUnicode_EncodeUTF7` + * :func:`!PyUnicode_EncodeUTF8` + * :func:`!PyUnicode_EncodeUTF16` + * :func:`!PyUnicode_EncodeUTF32` + * :func:`!PyUnicode_EncodeUnicodeEscape` + * :func:`!PyUnicode_EncodeRawUnicodeEscape` + * :func:`!PyUnicode_EncodeCharmap` + * :func:`!PyUnicode_TranslateCharmap` + * :func:`!PyUnicode_EncodeDecimal` + * :func:`!PyUnicode_TransformDecimalToASCII` + + See :pep:`624` for details and + :pep:`migration guidance <624#alternative-apis>`. + (Contributed by Inada Naoki in :issue:`44029`.) + .. _libb2: https://www.blake2.net/ diff --git a/Doc/whatsnew/3.12.rst b/Doc/whatsnew/3.12.rst index f98e27079cf475..e459a3db1f50a8 100644 --- a/Doc/whatsnew/3.12.rst +++ b/Doc/whatsnew/3.12.rst @@ -43,8 +43,8 @@ module. (Contributed by P.Y. Developer in :issue:`12345`.) - This saves the maintainer the effort of going through the Mercurial log - when researching a change. + This saves the maintainer the effort of going through the VCS log when + researching a change. This article explains the new features in Python 3.12, compared to 3.11. @@ -79,6 +79,23 @@ New Features Other Language Changes ====================== +* :class:`types.MappingProxyType` instances are now hashable if the underlying + mapping is hashable. + (Contributed by Serhiy Storchaka in :gh:`87995`.) + +* Converting between :class:`int` and :class:`str` in bases other than 2 + (binary), 4, 8 (octal), 16 (hexadecimal), or 32 such as base 10 (decimal) + now raises a :exc:`ValueError` if the number of digits in string form is + above a limit to avoid potential denial of service attacks due to the + algorithmic complexity. This is a mitigation for `CVE-2020-10735 + `_. + This limit can be configured or disabled by environment variable, command + line flag, or :mod:`sys` APIs. See the :ref:`integer string conversion + length limitation ` documentation. The default limit + is 4300 digits in string form. + +* :class:`memoryview` now supports the half-float type (the "e" format code). + (Contributed by Dong-hee Na and Antoine Pitrou in :gh:`90751`.) New Modules @@ -90,12 +107,59 @@ New Modules Improved Modules ================ +pathlib +------- + +* Add :meth:`~pathlib.Path.walk` for walking the directory trees and generating + all file or directory names within them, similar to :func:`os.walk`. + (Contributed by Stanislav Zmiev in :gh:`90385`.) + +dis +--- + +* Pseudo instruction opcodes (which are used by the compiler but + do not appear in executable bytecode) are now exposed in the + :mod:`dis` module. + :data:`~dis.HAVE_ARGUMENT` is still relevant to real opcodes, + but it is not useful for pseudo instructions. Use the new + :data:`~dis.hasarg` collection instead. + (Contributed by Irit Katriel in :gh:`94216`.) + +os +-- + +* Add :data:`os.PIDFD_NONBLOCK` to open a file descriptor + for a process with :func:`os.pidfd_open` in non-blocking mode. + (Contributed by Kumar Aditya in :gh:`93312`.) + + +sqlite3 +------- + +* Add a :ref:`command-line interface `. + (Contributed by Erlend E. Aasland in :gh:`77617`.) + +threading +--------- + +* Add :func:`threading.settrace_all_threads` and + :func:`threading.setprofile_all_threads` that allow to set tracing and + profiling functions in all running threads in addition to the calling one. + (Contributed by Pablo Galindo in :gh:`93503`.) + +unicodedata +----------- + +* The Unicode database has been updated to version 15.0.0. (Contributed by + Benjamin Peterson in :gh:`96734`). + tempfile -------- -The :class:`tempfile.NamedTemporaryFile` class has a new optional parameter +The :class:`tempfile.NamedTemporaryFile` class has a new optional parameter *delete_on_close* (Contributed by Evgeny Zorin in :gh:`58451`.) + Optimizations ============= @@ -103,22 +167,242 @@ Optimizations It reduces object size by 8 or 16 bytes on 64bit platform. (:pep:`623`) (Contributed by Inada Naoki in :gh:`92536`.) +* Added experimental support for using the BOLT binary optimizer in the build + process, which improves performance by 1-5%. + (Contributed by Kevin Modzelewski in :gh:`90536`.) + + +CPython bytecode changes +======================== + +* Removed the :opcode:`LOAD_METHOD` instruction. It has been merged into + :opcode:`LOAD_ATTR`. :opcode:`LOAD_ATTR` will now behave like the old + :opcode:`LOAD_METHOD` instruction if the low bit of its oparg is set. + (Contributed by Ken Jin in :gh:`93429`.) + Deprecated ========== +* :class:`typing.Hashable` and :class:`typing.Sized` aliases for :class:`collections.abc.Hashable` + and :class:`collections.abc.Sized`. (:gh:`94309`.) + +* The :mod:`sqlite3` :ref:`default adapters and converters + ` are now deprecated. + Instead, use the :ref:`sqlite3-adapter-converter-recipes` + and tailor them to your needs. + (Contributed by Erlend E. Aasland in :gh:`90016`.) + + +Pending Removal in Python 3.13 +------------------------------ + +The following modules and APIs have been deprecated in earlier Python releases, +and will be removed in Python 3.13. + +Modules (see :pep:`594`): + +* :mod:`aifc` +* :mod:`audioop` +* :mod:`cgi` +* :mod:`cgitb` +* :mod:`chunk` +* :mod:`crypt` +* :mod:`imghdr` +* :mod:`mailcap` +* :mod:`msilib` +* :mod:`nis` +* :mod:`nntplib` +* :mod:`ossaudiodev` +* :mod:`pipes` +* :mod:`sndhdr` +* :mod:`spwd` +* :mod:`sunau` +* :mod:`telnetlib` +* :mod:`uu` +* :mod:`xdrlib` + +APIs: + +* :class:`configparser.LegacyInterpolation` (:gh:`90765`) +* :func:`locale.getdefaultlocale` (:gh:`90817`) +* :meth:`turtle.RawTurtle.settiltangle` (:gh:`50096`) +* :func:`unittest.findTestCases` (:gh:`50096`) +* :func:`unittest.makeSuite` (:gh:`50096`) +* :func:`unittest.getTestCaseNames` (:gh:`50096`) +* :class:`webbrowser.MacOSX` (:gh:`86421`) + +Pending Removal in Python 3.14 +============================== + +* Deprecated the following :mod:`importlib.abc` classes, scheduled for removal in + Python 3.14: + + * :class:`importlib.abc.ResourceReader` + * :class:`importlib.abc.Traversable` + * :class:`importlib.abc.TraversableResources` + + Use :mod:`importlib.resources.abc` classes instead: + + * :class:`importlib.resources.abc.TraversableResources` + * :class:`importlib.resources.abc.Traversable` + * :class:`importlib.resources.abc.TraversableResources` + + (Contributed by Jason R. Coombs and Hugo van Kemenade in :gh:`93963`.) + +* Creating :c:data:`immutable types ` with mutable + bases using the C API. + + +Pending Removal in Future Versions +---------------------------------- + +The following APIs were deprecated in earlier Python versions and will be removed, +although there is currently no date scheduled for their removal. + +* :class:`typing.Text` (:gh:`92332`) + +* Currently Python accepts numeric literals immediately followed by keywords, + for example ``0in x``, ``1or x``, ``0if 1else 2``. It allows confusing + and ambiguous expressions like ``[0x1for x in y]`` (which can be + interpreted as ``[0x1 for x in y]`` or ``[0x1f or x in y]``). + A syntax warning is raised if the numeric literal is + immediately followed by one of keywords :keyword:`and`, :keyword:`else`, + :keyword:`for`, :keyword:`if`, :keyword:`in`, :keyword:`is` and :keyword:`or`. + In a future release it will be changed to a syntax error. (:gh:`87999`) Removed ======= +* Removed many old deprecated :mod:`unittest` features: + + - A number of :class:`~unittest.TestCase` method aliases: + + ============================ =============================== =============== + Deprecated alias Method Name Deprecated in + ============================ =============================== =============== + ``failUnless`` :meth:`.assertTrue` 3.1 + ``failIf`` :meth:`.assertFalse` 3.1 + ``failUnlessEqual`` :meth:`.assertEqual` 3.1 + ``failIfEqual`` :meth:`.assertNotEqual` 3.1 + ``failUnlessAlmostEqual`` :meth:`.assertAlmostEqual` 3.1 + ``failIfAlmostEqual`` :meth:`.assertNotAlmostEqual` 3.1 + ``failUnlessRaises`` :meth:`.assertRaises` 3.1 + ``assert_`` :meth:`.assertTrue` 3.2 + ``assertEquals`` :meth:`.assertEqual` 3.2 + ``assertNotEquals`` :meth:`.assertNotEqual` 3.2 + ``assertAlmostEquals`` :meth:`.assertAlmostEqual` 3.2 + ``assertNotAlmostEquals`` :meth:`.assertNotAlmostEqual` 3.2 + ``assertRegexpMatches`` :meth:`.assertRegex` 3.2 + ``assertRaisesRegexp`` :meth:`.assertRaisesRegex` 3.2 + ``assertNotRegexpMatches`` :meth:`.assertNotRegex` 3.5 + ============================ =============================== =============== + + You can use https://github.com/isidentical/teyit to automatically modernise + your unit tests. + + - Undocumented and broken :class:`~unittest.TestCase` method + ``assertDictContainsSubset`` (deprecated in Python 3.2). + + - Undocumented :meth:`TestLoader.loadTestsFromModule + ` parameter *use_load_tests* + (deprecated and ignored since Python 3.2). + + - An alias of the :class:`~unittest.TextTestResult` class: + ``_TextTestResult`` (deprecated in Python 3.2). + + (Contributed by Serhiy Storchaka in :issue:`45162`.) + +* Several names deprecated in the :mod:`configparser` way back in 3.2 have + been removed per :gh:`89336`: + + * :class:`configparser.ParsingError` no longer has a ``filename`` attribute + or argument. Use the ``source`` attribute and argument instead. + * :mod:`configparser` no longer has a ``SafeConfigParser`` class. Use the + shorter :class:`~configparser.ConfigParser` name instead. + * :class:`configparser.ConfigParser` no longer has a ``readfp`` method. + Use :meth:`~configparser.ConfigParser.read_file` instead. + * The following undocumented :mod:`sqlite3` features, deprecated in Python 3.10, are now removed: * ``sqlite3.enable_shared_cache()`` * ``sqlite3.OptimizedUnicode`` - (Contributed by Erlend E. Aasland in :gh:`92548`) + If a shared cache must be used, open the database in URI mode using the + ``cache=shared`` query parameter. + + The ``sqlite3.OptimizedUnicode`` text factory has been an alias for + :class:`str` since Python 3.3. Code that previously set the text factory to + ``OptimizedUnicode`` can either use ``str`` explicitly, or rely on the + default value which is also ``str``. + + (Contributed by Erlend E. Aasland in :gh:`92548`.) + +* The ``--experimental-isolated-subinterpreters`` configure flag + (and corresponding ``EXPERIMENTAL_ISOLATED_SUBINTERPRETERS``) + have been removed. + +* ``smtpd`` has been removed according to the schedule in :pep:`594`, + having been deprecated in Python 3.4.7 and 3.5.4. + Use aiosmtpd_ PyPI module or any other + :mod:`asyncio`-based server instead. + (Contributed by Oleg Iarygin in :gh:`93243`.) + +.. _aiosmtpd: https://pypi.org/project/aiosmtpd/ + +* Remove ``io.OpenWrapper`` and ``_pyio.OpenWrapper``, deprecated in Python + 3.10: just use :func:`open` instead. The :func:`open` (:func:`io.open`) + function is a built-in function. Since Python 3.10, :func:`_pyio.open` is + also a static method. + (Contributed by Victor Stinner in :gh:`94169`.) + +* Remove the :func:`ssl.RAND_pseudo_bytes` function, deprecated in Python 3.6: + use :func:`os.urandom` or :func:`ssl.RAND_bytes` instead. + (Contributed by Victor Stinner in :gh:`94199`.) + +* :mod:`gzip`: Remove the ``filename`` attribute of :class:`gzip.GzipFile`, + deprecated since Python 2.6, use the :attr:`~gzip.GzipFile.name` attribute + instead. In write mode, the ``filename`` attribute added ``'.gz'`` file + extension if it was not present. + (Contributed by Victor Stinner in :gh:`94196`.) + +* Remove the :func:`ssl.match_hostname` function. The + :func:`ssl.match_hostname` was deprecated in Python 3.7. OpenSSL performs + hostname matching since Python 3.7, Python no longer uses the + :func:`ssl.match_hostname` function. + (Contributed by Victor Stinner in :gh:`94199`.) + +* Remove the :func:`locale.format` function, deprecated in Python 3.7: + use :func:`locale.format_string` instead. + (Contributed by Victor Stinner in :gh:`94226`.) + +* :mod:`hashlib`: Remove the pure Python implementation of + :func:`hashlib.pbkdf2_hmac()`, deprecated in Python 3.10. Python 3.10 and + newer requires OpenSSL 1.1.1 (:pep:`644`): this OpenSSL version provides + a C implementation of :func:`~hashlib.pbkdf2_hmac()` which is faster. + (Contributed by Victor Stinner in :gh:`94199`.) + +* :mod:`xml.etree`: Remove the ``ElementTree.Element.copy()`` method of the + pure Python implementation, deprecated in Python 3.10, use the + :func:`copy.copy` function instead. The C implementation of :mod:`xml.etree` + has no ``copy()`` method, only a ``__copy__()`` method. + (Contributed by Victor Stinner in :gh:`94383`.) + +* :mod:`zipimport`: Remove ``find_loader()`` and ``find_module()`` methods, + deprecated in Python 3.10: use the ``find_spec()`` method instead. See + :pep:`451` for the rationale. + (Contributed by Victor Stinner in :gh:`94379`.) + +* Remove the :func:`ssl.wrap_socket` function, deprecated in Python 3.7: + instead, create a :class:`ssl.SSLContext` object and call its + :class:`ssl.SSLContext.wrap_socket` method. Any package that still uses + :func:`ssl.wrap_socket` is broken and insecure. The function neither sends a + SNI TLS extension nor validates server hostname. Code is subject to `CWE-295 + `_: Improper Certificate + Validation. + (Contributed by Victor Stinner in :gh:`94199`.) Porting to Python 3.12 @@ -145,15 +429,40 @@ Changes in the Python API select from a larger range than ``randrange(10**25)``. (Originally suggested by Serhiy Storchaka gh-86388.) +* :class:`argparse.ArgumentParser` changed encoding and error handler + for reading arguments from file (e.g. ``fromfile_prefix_chars`` option) + from default text encoding (e.g. :func:`locale.getpreferredencoding(False) `) + to :term:`filesystem encoding and error handler`. + Argument files should be encoded in UTF-8 instead of ANSI Codepage on Windows. + +* Removed the ``asyncore``-based ``smtpd`` module deprecated in Python 3.4.7 + and 3.5.4. A recommended replacement is the + :mod:`asyncio`-based aiosmtpd_ PyPI module. + +* :func:`shlex.split`: Passing ``None`` for *s* argument now raises an + exception, rather than reading :data:`sys.stdin`. The feature was deprecated + in Python 3.9. + (Contributed by Victor Stinner in :gh:`94352`.) + Build Changes ============= +* Python no longer uses ``setup.py`` to build shared C extension modules. + Build parameters like headers and libraries are detected in ``configure`` + script. Extensions are built by ``Makefile``. Most extensions use + ``pkg-config`` and fall back to manual detection. + (Contributed by Christian Heimes in :gh:`93939`.) + * ``va_start()`` with two parameters, like ``va_start(args, format),`` is now required to build Python. ``va_start()`` is no longer called with a single parameter. (Contributed by Kumar Aditya in :gh:`93207`.) +* CPython now uses the ThinLTO option as the default link time optimization policy + if the Clang compiler accepts the flag. + (Contributed by Dong-hee Na in :gh:`89536`.) + C API Changes ============= @@ -166,6 +475,38 @@ New Features an additional metaclass argument. (Contributed by Wenzel Jakob in :gh:`93012`.) +* API for creating objects that can be called using + :ref:`the vectorcall protocol ` was added to the + :ref:`Limited API `: + + * :const:`Py_TPFLAGS_HAVE_VECTORCALL` + * :c:func:`PyVectorcall_NARGS` + * :c:func:`PyVectorcall_Call` + * :c:type:`vectorcallfunc` + + The :const:`Py_TPFLAGS_HAVE_VECTORCALL` flag is now removed from a class + when the class's :py:meth:`~object.__call__` method is reassigned. + This makes vectorcall safe to use with mutable types (i.e. heap types + without the :const:`immutable ` flag). + Mutable types that do not override :c:member:`~PyTypeObject.tp_call` now + inherit the ``Py_TPFLAGS_HAVE_VECTORCALL`` flag. + (Contributed by Petr Viktorin in :gh:`93274`.) + + The :const:`Py_TPFLAGS_MANAGED_DICT` and :const:`Py_TPFLAGS_MANAGED_WEAKREF` + flags have been added. This allows extensions classes to support object + ``__dict__`` and weakrefs with less bookkeeping, + using less memory and with faster access. + +* Added two new public functions, + :c:func:`PyEval_SetProfileAllThreads` and + :c:func:`PyEval_SetTraceAllThreads`, that allow to set tracing and profiling + functions in all running threads in addition to the calling one. (Contributed + by Pablo Galindo in :gh:`93503`.) + +* Added new function :c:func:`PyFunction_SetVectorcall` to the C API + which sets the vectorcall field of a given :c:type:`PyFunctionObject`. + (Contributed by Andrew Frost in :gh:`92257`.) + Porting to Python 3.12 ---------------------- @@ -176,9 +517,79 @@ Porting to Python 3.12 ``Py_UNICODE*`` based format (e.g. ``u``, ``Z``) anymore. Please migrate to other formats for Unicode like ``s``, ``z``, ``es``, and ``U``. +* ``tp_weaklist`` for all static builtin types is always ``NULL``. + This is an internal-only field on ``PyTypeObject`` + but we're pointing out the change in case someone happens to be + accessing the field directly anyway. To avoid breakage, consider + using the existing public C-API instead, or, if necessary, the + (internal-only) ``_PyObject_GET_WEAKREFS_LISTPTR()`` macro. + +* This internal-only :c:member:`PyTypeObject.tp_subclasses` may now not be + a valid object pointer. Its type was changed to :c:expr:`void *` to + reflect this. We mention this in case someone happens to be accessing the + internal-only field directly. + + To get a list of subclasses, call the Python method + :py:meth:`~class.__subclasses__` (using :c:func:`PyObject_CallMethod`, + for example). + +* An unrecognized format character in :c:func:`PyUnicode_FromFormat` and + :c:func:`PyUnicode_FromFormatV` now sets a :exc:`SystemError`. + In previous versions it caused all the rest of the format string to be + copied as-is to the result string, and any extra arguments discarded. + (Contributed by Serhiy Storchaka in :gh:`95781`.) + +* Fixed wrong sign placement in :c:func:`PyUnicode_FromFormat` and + :c:func:`PyUnicode_FromFormatV`. + (Contributed by Philip Georgi in :gh:`95504`.) + +* Extension classes wanting to add a ``__dict__`` or weak reference slot + should use :const:`Py_TPFLAGS_MANAGED_DICT` and + :const:`Py_TPFLAGS_MANAGED_WEAKREF` instead of ``tp_dictoffset`` and + ``tp_weaklistoffset``, respectively. + The use of ``tp_dictoffset`` and ``tp_weaklistoffset`` is still + supported, but does not fully support multiple inheritance + (:gh: `95589`), and performance may be worse. + Classes declaring :const:`Py_TPFLAGS_MANAGED_DICT` should call + :c:func:`_PyObject_VisitManagedDict` and :c:func:`_PyObject_ClearManagedDict` + to traverse and clear their instance's dictionaries. + To clear weakrefs, call :c:func:`PyObject_ClearWeakRefs`, as before. + Deprecated ---------- +* Deprecate global configuration variable: + + * :c:var:`Py_DebugFlag`: use :c:member:`PyConfig.parser_debug` + * :c:var:`Py_VerboseFlag`: use :c:member:`PyConfig.verbose` + * :c:var:`Py_QuietFlag`: use :c:member:`PyConfig.quiet` + * :c:var:`Py_InteractiveFlag`: use :c:member:`PyConfig.interactive` + * :c:var:`Py_InspectFlag`: use :c:member:`PyConfig.inspect` + * :c:var:`Py_OptimizeFlag`: use :c:member:`PyConfig.optimization_level` + * :c:var:`Py_NoSiteFlag`: use :c:member:`PyConfig.site_import` + * :c:var:`Py_BytesWarningFlag`: use :c:member:`PyConfig.bytes_warning` + * :c:var:`Py_FrozenFlag`: use :c:member:`PyConfig.pathconfig_warnings` + * :c:var:`Py_IgnoreEnvironmentFlag`: use :c:member:`PyConfig.use_environment` + * :c:var:`Py_DontWriteBytecodeFlag`: use :c:member:`PyConfig.write_bytecode` + * :c:var:`Py_NoUserSiteDirectory`: use :c:member:`PyConfig.user_site_directory` + * :c:var:`Py_UnbufferedStdioFlag`: use :c:member:`PyConfig.buffered_stdio` + * :c:var:`Py_HashRandomizationFlag`: use :c:member:`PyConfig.use_hash_seed` + and :c:member:`PyConfig.hash_seed` + * :c:var:`Py_IsolatedFlag`: use :c:member:`PyConfig.isolated` + * :c:var:`Py_LegacyWindowsFSEncodingFlag`: use :c:member:`PyConfig.legacy_windows_fs_encoding` + * :c:var:`Py_LegacyWindowsStdioFlag`: use :c:member:`PyConfig.legacy_windows_stdio` + * :c:var:`Py_FileSystemDefaultEncoding`: use :c:member:`PyConfig.filesystem_encoding` + * :c:var:`Py_FileSystemDefaultEncodeErrors`: use :c:member:`PyConfig.filesystem_errors` + * :c:var:`Py_UTF8Mode`: use :c:member:`PyPreConfig.utf8_mode` (see :c:func:`Py_PreInitialize`) + + The :c:func:`Py_InitializeFromConfig` API should be used with + :c:type:`PyConfig` instead. + (Contributed by Victor Stinner in :gh:`77782`.) + +* Creating :c:data:`immutable types ` with mutable + bases is deprecated and will be disabled in Python 3.14. + + Removed ------- diff --git a/Doc/whatsnew/3.2.rst b/Doc/whatsnew/3.2.rst index ec01a70f8ae0af..e2681bc983a8af 100644 --- a/Doc/whatsnew/3.2.rst +++ b/Doc/whatsnew/3.2.rst @@ -48,10 +48,11 @@ This saves the maintainer the effort of going through the SVN log when researching a change. -This article explains the new features in Python 3.2 as compared to 3.1. It +This article explains the new features in Python 3.2 as compared to 3.1. +Python 3.2 was released on February 20, 2011. It focuses on a few highlights and gives a few examples. For full details, see the `Misc/NEWS -`_ +`__ file. .. seealso:: @@ -321,7 +322,7 @@ aspects that are visible to the programmer: * The tag that is unique to each interpreter is accessible from the :mod:`imp` module: - >>> import imp + >>> import imp # doctest: +SKIP >>> imp.get_tag() # doctest: +SKIP 'cpython-32' @@ -329,7 +330,7 @@ aspects that are visible to the programmer: be smarter. It is no longer sufficient to simply strip the "c" from a ".pyc" filename. Instead, use the new functions in the :mod:`imp` module: - >>> imp.source_from_cache('c:/py32/lib/__pycache__/collections.cpython-32.pyc') + >>> imp.source_from_cache('c:/py32/lib/__pycache__/collections.cpython-32.pyc') # doctest: +SKIP 'c:/py32/lib/collections.py' >>> imp.cache_from_source('c:/py32/lib/collections.py') # doctest: +SKIP 'c:/py32/lib/__pycache__/collections.cpython-32.pyc' @@ -1646,7 +1647,7 @@ for secure (encrypted, authenticated) internet connections: * The :func:`ssl.wrap_socket` constructor function now takes a *ciphers* argument. The *ciphers* string lists the allowed encryption algorithms using the format described in the `OpenSSL documentation - `__. + `__. * When linked against recent versions of OpenSSL, the :mod:`ssl` module now supports the Server Name Indication extension to the TLS protocol, allowing @@ -1816,8 +1817,7 @@ names. =============================== ============================== Likewise, the ``TestCase.fail*`` methods deprecated in Python 3.1 are expected - to be removed in Python 3.3. Also see the :ref:`deprecated-aliases` section in - the :mod:`unittest` documentation. + to be removed in Python 3.3. (Contributed by Ezio Melotti; :issue:`9424`.) @@ -2056,7 +2056,7 @@ information: such as "3.2". It also provides access to the paths and variables corresponding to one of -seven named schemes used by :mod:`distutils`. Those include *posix_prefix*, +seven named schemes used by ``distutils``. Those include *posix_prefix*, *posix_home*, *posix_user*, *nt*, *nt_user*, *os2*, *os2_home*: * :func:`~sysconfig.get_paths` makes a dictionary containing installation paths @@ -2506,7 +2506,7 @@ IDLE Code Repository =============== -In addition to the existing Subversion code repository at http://svn.python.org +In addition to the existing Subversion code repository at https://svn.python.org there is now a `Mercurial `_ repository at https://hg.python.org/\ . @@ -2592,10 +2592,12 @@ Changes to Python's build process and to the C API include: longer used and it had never been documented (:issue:`8837`). There were a number of other small changes to the C-API. See the -:source:`Misc/NEWS` file for a complete list. +`Misc/NEWS `__ +file for a complete list. Also, there were a number of updates to the Mac OS X build, see -:source:`Mac/BuildScript/README.txt` for details. For users running a 32/64-bit +`Mac/BuildScript/README.txt `_ +for details. For users running a 32/64-bit build, there is a known problem with the default Tcl/Tk on Mac OS X 10.6. Accordingly, we recommend installing an updated alternative such as `ActiveState Tcl/Tk 8.5.9 `_\. diff --git a/Doc/whatsnew/3.3.rst b/Doc/whatsnew/3.3.rst index 361e6db07c3cdb..1b5b6831e4305c 100644 --- a/Doc/whatsnew/3.3.rst +++ b/Doc/whatsnew/3.3.rst @@ -101,7 +101,7 @@ PEP 405: Virtual Environments Virtual environments help create separate Python setups while sharing a system-wide base install, for ease of maintenance. Virtual environments -have their own set of private site packages (i.e. locally-installed +have their own set of private site packages (i.e. locally installed libraries), and are optionally segregated from the system-wide site packages. Their concept and implementation are inspired by the popular ``virtualenv`` third-party package, but benefit from tighter integration @@ -898,7 +898,7 @@ an IP address associated with a specific IP subnet). lzma ---- -The newly-added :mod:`lzma` module provides data compression and decompression +The newly added :mod:`lzma` module provides data compression and decompression using the LZMA algorithm, including support for the ``.xz`` and ``.lzma`` file formats. @@ -1096,7 +1096,7 @@ decimal C-module and libmpdec written by Stefan Krah. The new C version of the decimal module integrates the high speed libmpdec -library for arbitrary precision correctly-rounded decimal floating point +library for arbitrary precision correctly rounded decimal floating point arithmetic. libmpdec conforms to IBM's General Decimal Arithmetic Specification. Performance gains range from 10x for database applications to 100x for @@ -1106,7 +1106,7 @@ the precision is user configurable, the exact figures may vary. For example, in integer bignum arithmetic the differences can be significantly higher. The following table is meant as an illustration. Benchmarks are available -at http://www.bytereef.org/mpdecimal/quickstart.html. +at https://www.bytereef.org/mpdecimal/quickstart.html. +---------+-------------+--------------+-------------+ | | decimal.py | _decimal | speedup | @@ -1158,8 +1158,8 @@ API changes in order to obtain a rounded or inexact value. -* The power function in decimal.py is always correctly-rounded. In the - C version, it is defined in terms of the correctly-rounded +* The power function in decimal.py is always correctly rounded. In the + C version, it is defined in terms of the correctly rounded :meth:`~decimal.Decimal.exp` and :meth:`~decimal.Decimal.ln` functions, but the final result is only "almost always correctly rounded". @@ -2137,7 +2137,7 @@ zlib ---- New attribute :attr:`zlib.Decompress.eof` makes it possible to distinguish -between a properly-formed compressed stream and an incomplete or truncated one. +between a properly formed compressed stream and an incomplete or truncated one. (Contributed by Nadeem Vawda in :issue:`12646`.) New attribute :attr:`zlib.ZLIB_RUNTIME_VERSION` reports the version string of diff --git a/Doc/whatsnew/3.4.rst b/Doc/whatsnew/3.4.rst index 023736134b2ca9..95e86550bc0323 100644 --- a/Doc/whatsnew/3.4.rst +++ b/Doc/whatsnew/3.4.rst @@ -247,7 +247,7 @@ projects. However, as this migration is currently still incomplete, the legacy versions of those guides remaining available as :ref:`install-index` -and :ref:`distutils-index`. +and :ref:`setuptools-index`. .. seealso:: @@ -1659,7 +1659,7 @@ The :class:`~unittest.TestCase` class has a new method, :keyword:`with` block becomes a "sub-test". This context manager allows a test method to dynamically generate subtests by, say, calling the ``subTest`` context manager inside a loop. A single test method can thereby produce an -indefinite number of separately-identified and separately-counted tests, all of +indefinite number of separately identified and separately counted tests, all of which will run even if one or more of them fail. For example:: class NumbersTest(unittest.TestCase): @@ -2056,7 +2056,7 @@ Significant Optimizations ``malloc`` in ``obmalloc``. Artificial benchmarks show about a 3% memory savings. -* :func:`os.urandom` now uses a lazily-opened persistent file descriptor +* :func:`os.urandom` now uses a lazily opened persistent file descriptor so as to avoid using many file descriptors when run in parallel from multiple threads. (Contributed by Antoine Pitrou in :issue:`18756`.) diff --git a/Doc/whatsnew/3.5.rst b/Doc/whatsnew/3.5.rst index 1defee4090f288..a5c2d9bb0874e2 100644 --- a/Doc/whatsnew/3.5.rst +++ b/Doc/whatsnew/3.5.rst @@ -1079,7 +1079,7 @@ Both the ``build`` and ``build_ext`` commands now accept a ``-j`` option to enable parallel building of extension modules. (Contributed by Antoine Pitrou in :issue:`5309`.) -The :mod:`distutils` module now supports ``xz`` compression, and can be +The ``distutils`` module now supports ``xz`` compression, and can be enabled by passing ``xztar`` as an argument to ``bdist --format``. (Contributed by Serhiy Storchaka in :issue:`16314`.) @@ -1253,7 +1253,7 @@ imghdr ------ The :func:`~imghdr.what` function now recognizes the -`OpenEXR `_ format +`OpenEXR `_ format (contributed by Martin Vignali and Claudiu Popa in :issue:`20295`), and the `WebP `_ format (contributed by Fabrice Aneche and Claudiu Popa in :issue:`20197`.) diff --git a/Doc/whatsnew/3.6.rst b/Doc/whatsnew/3.6.rst index d35a0fd9d9da38..a587086ea77632 100644 --- a/Doc/whatsnew/3.6.rst +++ b/Doc/whatsnew/3.6.rst @@ -1012,7 +1012,7 @@ distutils --------- The ``default_format`` attribute has been removed from -:class:`distutils.command.sdist.sdist` and the ``formats`` +``distutils.command.sdist.sdist`` and the ``formats`` attribute defaults to ``['gztar']``. Although not anticipated, any code relying on the presence of ``default_format`` may need to be adapted. See :issue:`27819` for more details. @@ -1986,7 +1986,7 @@ distutils ~~~~~~~~~ The undocumented ``extra_path`` argument to the -:class:`~distutils.Distribution` constructor is now considered deprecated +``distutils.Distribution`` constructor is now considered deprecated and will raise a warning if set. Support for this parameter will be removed in a future Python release. See :issue:`27919` for details. @@ -2117,7 +2117,8 @@ API and Feature Removals platform specific ``Lib/plat-*/`` directories, but were chronically out of date, inconsistently available across platforms, and unmaintained. The script that created these modules is still available in the source - distribution at :source:`Tools/scripts/h2py.py`. + distribution at `Tools/scripts/h2py.py + `_. * The deprecated ``asynchat.fifo`` class has been removed. @@ -2242,7 +2243,7 @@ Changes in the Python API accepting additional keyword arguments will need to adjust their calls to :meth:`type.__new__` (whether direct or via :class:`super`) accordingly. -* In :class:`distutils.command.sdist.sdist`, the ``default_format`` +* In ``distutils.command.sdist.sdist``, the ``default_format`` attribute has been removed and is no longer honored. Instead, the gzipped tarfile format is the default on all platforms and no platform-specific selection is made. diff --git a/Doc/whatsnew/3.7.rst b/Doc/whatsnew/3.7.rst index 49246be57639d1..2e9738721a77e9 100644 --- a/Doc/whatsnew/3.7.rst +++ b/Doc/whatsnew/3.7.rst @@ -291,7 +291,7 @@ PEP 539: New C API for Thread-Local Storage While Python provides a C API for thread-local storage support; the existing :ref:`Thread Local Storage (TLS) API ` has used :c:type:`int` to represent TLS keys across all platforms. This has not -generally been a problem for officially-support platforms, but that is neither +generally been a problem for officially support platforms, but that is neither POSIX-compliant, nor portable in any practical sense. :pep:`539` changes this by providing a new :ref:`Thread Specific Storage (TSS) @@ -611,7 +611,7 @@ Contributed by Barry Warsaw and Brett Cannon in :issue:`32248`. .. seealso:: - `importlib_resources `_ + `importlib_resources `_ -- a PyPI backport for earlier Python versions. @@ -1175,7 +1175,7 @@ of :func:`os.writev` and :func:`os.pwrite`). (Contributed by Pablo Galindo in :issue:`31368`.) The mode argument of :func:`os.makedirs` no longer affects the file -permission bits of newly-created intermediate-level directories. +permission bits of newly created intermediate-level directories. (Contributed by Serhiy Storchaka in :issue:`19930`.) :func:`os.dup2` now returns the new file descriptor. Previously, ``None`` @@ -1906,7 +1906,7 @@ Other CPython Implementation Changes variables were defined. Previously, the order was undefined. (Contributed by Raymond Hettinger in :issue:`32690`.) -* The :mod:`distutils` ``upload`` command no longer tries to change CR +* The ``distutils`` ``upload`` command no longer tries to change CR end-of-line characters to CRLF. This fixes a corruption issue with sdists that ended with a byte equivalent to CR. (Contributed by Bo Bayles in :issue:`32304`.) @@ -2120,7 +2120,8 @@ Platform Support Removals of other LTS Linux releases (e.g. RHEL/CentOS 7.5, SLES 12-SP3), use OpenSSL 1.0.2 or later, and remain supported in the default build configuration. - CPython's own :source:`CI configuration file <.travis.yml>` provides an + CPython's own `CI configuration file + `_ provides an example of using the SSL :source:`compatibility testing infrastructure ` in CPython's test suite to build and link against OpenSSL 1.1.0 rather than an @@ -2180,7 +2181,7 @@ The following features and APIs have been removed from Python 3.7: :func:`ssl.wrap_socket` or :class:`ssl.SSLContext`. (Contributed by Christian Heimes in :issue:`32951`.) -* The unused :mod:`distutils` ``install_misc`` command has been removed. +* The unused ``distutils`` ``install_misc`` command has been removed. (Contributed by Eric N. Vander Weele in :issue:`29218`.) @@ -2295,7 +2296,7 @@ Changes in the Python API (Contributed by Serhiy Storchaka in :issue:`29192`.) * The *mode* argument of :func:`os.makedirs` no longer affects the file - permission bits of newly-created intermediate-level directories. + permission bits of newly created intermediate-level directories. To set their file permission bits you can set the umask before invoking ``makedirs()``. (Contributed by Serhiy Storchaka in :issue:`19930`.) diff --git a/Doc/whatsnew/3.8.rst b/Doc/whatsnew/3.8.rst index c2f78f1531317a..077de05f34c93e 100644 --- a/Doc/whatsnew/3.8.rst +++ b/Doc/whatsnew/3.8.rst @@ -45,6 +45,7 @@ :Editor: Raymond Hettinger This article explains the new features in Python 3.8, compared to 3.7. +Python 3.8 was released on October 14, 2019. For full details, see the :ref:`changelog `. .. testsetup:: @@ -2007,6 +2008,8 @@ Changes in the Python API ``replace()`` method of :class:`types.CodeType` can be used to make the code future-proof. +* The parameter ``digestmod`` for :func:`hmac.new` no longer uses the MD5 digest + by default. Changes in the C API -------------------- diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst index 6dee55e5a0e555..6deaede4953bdc 100644 --- a/Doc/whatsnew/3.9.rst +++ b/Doc/whatsnew/3.9.rst @@ -45,7 +45,7 @@ when researching a change. This article explains the new features in Python 3.9, compared to 3.8. -Python 3.9 was released on October 5th, 2020. +Python 3.9 was released on October 5, 2020. For full details, see the :ref:`changelog `. diff --git a/Grammar/python.gram b/Grammar/python.gram index 15c40b6bbbacdc..51f846a57f404b 100644 --- a/Grammar/python.gram +++ b/Grammar/python.gram @@ -249,7 +249,7 @@ class_def[stmt_ty]: class_def_raw[stmt_ty]: | invalid_class_def_raw - | 'class' a=NAME b=['(' z=[arguments] ')' { z }] &&':' c=block { + | 'class' a=NAME b=['(' z=[arguments] ')' { z }] ':' c=block { _PyAST_ClassDef(a->v.Name.id, (b) ? ((expr_ty) b)->v.Call.args : NULL, (b) ? ((expr_ty) b)->v.Call.keywords : NULL, @@ -287,9 +287,9 @@ params[arguments_ty]: parameters[arguments_ty]: | a=slash_no_default b[asdl_arg_seq*]=param_no_default* c=param_with_default* d=[star_etc] { - _PyPegen_make_arguments(p, a, NULL, b, c, d) } + CHECK_VERSION(arguments_ty, 8, "Positional-only parameters are", _PyPegen_make_arguments(p, a, NULL, b, c, d)) } | a=slash_with_default b=param_with_default* c=[star_etc] { - _PyPegen_make_arguments(p, NULL, a, NULL, b, c) } + CHECK_VERSION(arguments_ty, 8, "Positional-only parameters are", _PyPegen_make_arguments(p, NULL, a, NULL, b, c)) } | a[asdl_arg_seq*]=param_no_default+ b=param_with_default* c=[star_etc] { _PyPegen_make_arguments(p, NULL, NULL, a, b, c) } | a=param_with_default+ b=[star_etc] { _PyPegen_make_arguments(p, NULL, NULL, NULL, a, b)} @@ -379,9 +379,9 @@ while_stmt[stmt_ty]: for_stmt[stmt_ty]: | invalid_for_stmt - | 'for' t=star_targets 'in' ~ ex=star_expressions &&':' tc=[TYPE_COMMENT] b=block el=[else_block] { + | 'for' t=star_targets 'in' ~ ex=star_expressions ':' tc=[TYPE_COMMENT] b=block el=[else_block] { _PyAST_For(t, ex, b, el, NEW_TYPE_COMMENT(p, tc), EXTRA) } - | ASYNC 'for' t=star_targets 'in' ~ ex=star_expressions &&':' tc=[TYPE_COMMENT] b=block el=[else_block] { + | ASYNC 'for' t=star_targets 'in' ~ ex=star_expressions ':' tc=[TYPE_COMMENT] b=block el=[else_block] { CHECK_VERSION(stmt_ty, 5, "Async for loops are", _PyAST_AsyncFor(t, ex, b, el, NEW_TYPE_COMMENT(p, tc), EXTRA)) } | invalid_for_target @@ -391,7 +391,7 @@ for_stmt[stmt_ty]: with_stmt[stmt_ty]: | invalid_with_stmt_indent | 'with' '(' a[asdl_withitem_seq*]=','.with_item+ ','? ')' ':' b=block { - _PyAST_With(a, b, NULL, EXTRA) } + CHECK_VERSION(stmt_ty, 9, "Parenthesized context managers are", _PyAST_With(a, b, NULL, EXTRA)) } | 'with' a[asdl_withitem_seq*]=','.with_item+ ':' tc=[TYPE_COMMENT] b=block { _PyAST_With(a, b, NEW_TYPE_COMMENT(p, tc), EXTRA) } | ASYNC 'with' '(' a[asdl_withitem_seq*]=','.with_item+ ','? ')' ':' b=block { @@ -412,7 +412,9 @@ try_stmt[stmt_ty]: | invalid_try_stmt | 'try' &&':' b=block f=finally_block { _PyAST_Try(b, NULL, NULL, f, EXTRA) } | 'try' &&':' b=block ex[asdl_excepthandler_seq*]=except_block+ el=[else_block] f=[finally_block] { _PyAST_Try(b, ex, el, f, EXTRA) } - | 'try' &&':' b=block ex[asdl_excepthandler_seq*]=except_star_block+ el=[else_block] f=[finally_block] { _PyAST_TryStar(b, ex, el, f, EXTRA) } + | 'try' &&':' b=block ex[asdl_excepthandler_seq*]=except_star_block+ el=[else_block] f=[finally_block] { + CHECK_VERSION(stmt_ty, 11, "Exception groups are", + _PyAST_TryStar(b, ex, el, f, EXTRA)) } # Except statement @@ -471,7 +473,7 @@ or_pattern[pattern_ty]: | patterns[asdl_pattern_seq*]='|'.closed_pattern+ { asdl_seq_LEN(patterns) == 1 ? asdl_seq_GET(patterns, 0) : _PyAST_MatchOr(patterns, EXTRA) } -closed_pattern[pattern_ty]: +closed_pattern[pattern_ty] (memo): | literal_pattern | capture_pattern | wildcard_pattern @@ -558,7 +560,7 @@ maybe_star_pattern[pattern_ty]: | star_pattern | pattern -star_pattern[pattern_ty]: +star_pattern[pattern_ty] (memo): | '*' target=pattern_capture_target { _PyAST_MatchStar(target->v.Name.id, EXTRA) } | '*' wildcard_pattern { @@ -660,7 +662,9 @@ star_named_expression[expr_ty]: | named_expression assignment_expression[expr_ty]: - | a=NAME ':=' ~ b=expression { _PyAST_NamedExpr(CHECK(expr_ty, _PyPegen_set_expr_context(p, a, Store)), b, EXTRA) } + | a=NAME ':=' ~ b=expression { + CHECK_VERSION(expr_ty, 8, "Assignment expressions are", + _PyAST_NamedExpr(CHECK(expr_ty, _PyPegen_set_expr_context(p, a, Store)), b, EXTRA)) } named_expression[expr_ty]: | assignment_expression @@ -828,9 +832,9 @@ lambda_params[arguments_ty]: # lambda_parameters[arguments_ty]: | a=lambda_slash_no_default b[asdl_arg_seq*]=lambda_param_no_default* c=lambda_param_with_default* d=[lambda_star_etc] { - _PyPegen_make_arguments(p, a, NULL, b, c, d) } + CHECK_VERSION(arguments_ty, 8, "Positional-only parameters are", _PyPegen_make_arguments(p, a, NULL, b, c, d)) } | a=lambda_slash_with_default b=lambda_param_with_default* c=[lambda_star_etc] { - _PyPegen_make_arguments(p, NULL, a, NULL, b, c) } + CHECK_VERSION(arguments_ty, 8, "Positional-only parameters are", _PyPegen_make_arguments(p, NULL, a, NULL, b, c)) } | a[asdl_arg_seq*]=lambda_param_no_default+ b=lambda_param_with_default* c=[lambda_star_etc] { _PyPegen_make_arguments(p, NULL, NULL, a, b, c) } | a=lambda_param_with_default+ b=[lambda_star_etc] { _PyPegen_make_arguments(p, NULL, NULL, NULL, a, b)} @@ -1231,8 +1235,8 @@ invalid_import_from_targets: RAISE_SYNTAX_ERROR("trailing comma not allowed without surrounding parentheses") } invalid_with_stmt: - | [ASYNC] 'with' ','.(expression ['as' star_target])+ &&':' - | [ASYNC] 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':' + | [ASYNC] 'with' ','.(expression ['as' star_target])+ NEWLINE { RAISE_SYNTAX_ERROR("expected ':'") } + | [ASYNC] 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' NEWLINE { RAISE_SYNTAX_ERROR("expected ':'") } invalid_with_stmt_indent: | [ASYNC] a='with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT { RAISE_INDENTATION_ERROR("expected an indented block after 'with' statement on line %d", a->lineno) } @@ -1262,11 +1266,11 @@ invalid_except_star_stmt_indent: | a='except' '*' expression ['as' NAME ] ':' NEWLINE !INDENT { RAISE_INDENTATION_ERROR("expected an indented block after 'except*' statement on line %d", a->lineno) } invalid_match_stmt: - | "match" subject_expr !':' { CHECK_VERSION(void*, 10, "Pattern matching is", RAISE_SYNTAX_ERROR("expected ':'") ) } + | "match" subject_expr NEWLINE { CHECK_VERSION(void*, 10, "Pattern matching is", RAISE_SYNTAX_ERROR("expected ':'") ) } | a="match" subject=subject_expr ':' NEWLINE !INDENT { RAISE_INDENTATION_ERROR("expected an indented block after 'match' statement on line %d", a->lineno) } invalid_case_block: - | "case" patterns guard? !':' { RAISE_SYNTAX_ERROR("expected ':'") } + | "case" patterns guard? NEWLINE { RAISE_SYNTAX_ERROR("expected ':'") } | a="case" patterns guard? ':' NEWLINE !INDENT { RAISE_INDENTATION_ERROR("expected an indented block after 'case' statement on line %d", a->lineno) } invalid_as_pattern: @@ -1295,13 +1299,15 @@ invalid_while_stmt: | a='while' named_expression ':' NEWLINE !INDENT { RAISE_INDENTATION_ERROR("expected an indented block after 'while' statement on line %d", a->lineno) } invalid_for_stmt: + | [ASYNC] 'for' star_targets 'in' star_expressions NEWLINE { RAISE_SYNTAX_ERROR("expected ':'") } | [ASYNC] a='for' star_targets 'in' star_expressions ':' NEWLINE !INDENT { RAISE_INDENTATION_ERROR("expected an indented block after 'for' statement on line %d", a->lineno) } invalid_def_raw: | [ASYNC] a='def' NAME '(' [params] ')' ['->' expression] ':' NEWLINE !INDENT { RAISE_INDENTATION_ERROR("expected an indented block after function definition on line %d", a->lineno) } invalid_class_def_raw: - | a='class' NAME ['('[arguments] ')'] ':' NEWLINE !INDENT { + | 'class' NAME ['(' [arguments] ')'] NEWLINE { RAISE_SYNTAX_ERROR("expected ':'") } + | a='class' NAME ['(' [arguments] ')'] ':' NEWLINE !INDENT { RAISE_INDENTATION_ERROR("expected an indented block after class definition on line %d", a->lineno) } invalid_double_starred_kvpairs: @@ -1312,4 +1318,4 @@ invalid_kvpair: | a=expression !(':') { RAISE_ERROR_KNOWN_LOCATION(p, PyExc_SyntaxError, a->lineno, a->end_col_offset - 1, a->end_lineno, -1, "':' expected after dictionary key") } | expression ':' a='*' bitwise_or { RAISE_SYNTAX_ERROR_STARTING_FROM(a, "cannot use a starred expression in a dictionary value") } - | expression a=':' {RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "expression expected after dictionary key and ':'") } \ No newline at end of file + | expression a=':' &('}'|',') {RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "expression expected after dictionary key and ':'") } diff --git a/Include/abstract.h b/Include/abstract.h index 9e06fbbb749138..784ff7e928676f 100644 --- a/Include/abstract.h +++ b/Include/abstract.h @@ -14,9 +14,9 @@ extern "C" { Print an object 'o' on file 'fp'. Returns -1 on error. The flags argument is used to enable certain printing options. The only option currently - supported is Py_Print_RAW. - - (What should be said about Py_Print_RAW?). */ + supported is Py_PRINT_RAW. By default (flags=0), PyObject_Print() formats + the object by calling PyObject_Repr(). If flags equals to Py_PRINT_RAW, it + formats the object by calling PyObject_Str(). */ /* Implemented elsewhere: @@ -88,7 +88,7 @@ extern "C" { -1 on failure. This is the equivalent of the Python statement: del o.attr_name. */ -#define PyObject_DelAttrString(O,A) PyObject_SetAttrString((O),(A), NULL) +#define PyObject_DelAttrString(O, A) PyObject_SetAttrString((O), (A), NULL) /* Implemented as a macro: @@ -98,7 +98,7 @@ extern "C" { Delete attribute named attr_name, for object o. Returns -1 on failure. This is the equivalent of the Python statement: del o.attr_name. */ -#define PyObject_DelAttr(O,A) PyObject_SetAttr((O),(A), NULL) +#define PyObject_DelAttr(O, A) PyObject_SetAttr((O), (A), NULL) /* Implemented elsewhere: @@ -228,6 +228,16 @@ PyAPI_FUNC(PyObject *) PyObject_CallMethodObjArgs( PyObject *name, ...); +/* Given a vectorcall nargsf argument, return the actual number of arguments. + * (For use outside the limited API, this is re-defined as a static inline + * function in cpython/abstract.h) + */ +PyAPI_FUNC(Py_ssize_t) PyVectorcall_NARGS(size_t nargsf); + +/* Call "callable" (which must support vectorcall) with positional arguments + "tuple" and keyword arguments "dict". "dict" may also be NULL */ +PyAPI_FUNC(PyObject *) PyVectorcall_Call(PyObject *callable, PyObject *tuple, PyObject *dict); + /* Implemented elsewhere: @@ -722,7 +732,7 @@ PyAPI_FUNC(PyObject *) PySequence_Fast(PyObject *o, const char* m); /* Return the 'i'-th element of the sequence 'o', assuming that o was returned by PySequence_Fast, and that i is within bounds. */ #define PySequence_Fast_GET_ITEM(o, i)\ - (PyList_Check(o) ? PyList_GET_ITEM(o, i) : PyTuple_GET_ITEM(o, i)) + (PyList_Check(o) ? PyList_GET_ITEM((o), (i)) : PyTuple_GET_ITEM((o), (i))) /* Return a pointer to the underlying item array for an object returned by PySequence_Fast */ @@ -802,7 +812,7 @@ PyAPI_FUNC(Py_ssize_t) PyMapping_Length(PyObject *o); failure. This is equivalent to the Python statement: del o[key]. */ -#define PyMapping_DelItemString(O,K) PyObject_DelItemString((O),(K)) +#define PyMapping_DelItemString(O, K) PyObject_DelItemString((O), (K)) /* Implemented as a macro: @@ -812,7 +822,7 @@ PyAPI_FUNC(Py_ssize_t) PyMapping_Length(PyObject *o); Returns -1 on failure. This is equivalent to the Python statement: del o[key]. */ -#define PyMapping_DelItem(O,K) PyObject_DelItem((O),(K)) +#define PyMapping_DelItem(O, K) PyObject_DelItem((O), (K)) /* On success, return 1 if the mapping object 'o' has the key 'key', and 0 otherwise. diff --git a/Include/boolobject.h b/Include/boolobject.h index 28068d1cbe5939..ca21fbfad8e827 100644 --- a/Include/boolobject.h +++ b/Include/boolobject.h @@ -9,7 +9,7 @@ extern "C" { PyAPI_DATA(PyTypeObject) PyBool_Type; -#define PyBool_Check(x) Py_IS_TYPE(x, &PyBool_Type) +#define PyBool_Check(x) Py_IS_TYPE((x), &PyBool_Type) /* Py_False and Py_True are the only two bools in existence. Don't forget to apply Py_INCREF() when returning either!!! */ @@ -19,8 +19,8 @@ PyAPI_DATA(PyLongObject) _Py_FalseStruct; PyAPI_DATA(PyLongObject) _Py_TrueStruct; /* Use these macros */ -#define Py_False ((PyObject *) &_Py_FalseStruct) -#define Py_True ((PyObject *) &_Py_TrueStruct) +#define Py_False _PyObject_CAST(&_Py_FalseStruct) +#define Py_True _PyObject_CAST(&_Py_TrueStruct) // Test if an object is the True singleton, the same as "x is True" in Python. PyAPI_FUNC(int) Py_IsTrue(PyObject *x); diff --git a/Include/bytearrayobject.h b/Include/bytearrayobject.h index ae2bde1c303565..3d53fdba643267 100644 --- a/Include/bytearrayobject.h +++ b/Include/bytearrayobject.h @@ -21,8 +21,8 @@ PyAPI_DATA(PyTypeObject) PyByteArray_Type; PyAPI_DATA(PyTypeObject) PyByteArrayIter_Type; /* Type check macros */ -#define PyByteArray_Check(self) PyObject_TypeCheck(self, &PyByteArray_Type) -#define PyByteArray_CheckExact(self) Py_IS_TYPE(self, &PyByteArray_Type) +#define PyByteArray_Check(self) PyObject_TypeCheck((self), &PyByteArray_Type) +#define PyByteArray_CheckExact(self) Py_IS_TYPE((self), &PyByteArray_Type) /* Direct API functions */ PyAPI_FUNC(PyObject *) PyByteArray_FromObject(PyObject *); diff --git a/Include/bytesobject.h b/Include/bytesobject.h index 4c4dc40d705d71..ee448cd02bdab3 100644 --- a/Include/bytesobject.h +++ b/Include/bytesobject.h @@ -29,7 +29,7 @@ PyAPI_DATA(PyTypeObject) PyBytesIter_Type; #define PyBytes_Check(op) \ PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_BYTES_SUBCLASS) -#define PyBytes_CheckExact(op) Py_IS_TYPE(op, &PyBytes_Type) +#define PyBytes_CheckExact(op) Py_IS_TYPE((op), &PyBytes_Type) PyAPI_FUNC(PyObject *) PyBytes_FromStringAndSize(const char *, Py_ssize_t); PyAPI_FUNC(PyObject *) PyBytes_FromString(const char *); diff --git a/Include/ceval.h b/Include/ceval.h index 1b57f6ea20f6f0..ad4d909d6f2b14 100644 --- a/Include/ceval.h +++ b/Include/ceval.h @@ -31,7 +31,7 @@ Py_DEPRECATED(3.9) PyAPI_FUNC(PyObject *) PyEval_CallObjectWithKeywords( /* Deprecated since PyEval_CallObjectWithKeywords is deprecated */ #define PyEval_CallObject(callable, arg) \ - PyEval_CallObjectWithKeywords(callable, arg, (PyObject *)NULL) + PyEval_CallObjectWithKeywords((callable), (arg), _PyObject_CAST(_Py_NULL)) Py_DEPRECATED(3.9) PyAPI_FUNC(PyObject *) PyEval_CallFunction( PyObject *callable, const char *format, ...); diff --git a/Include/complexobject.h b/Include/complexobject.h index c7764e43803d65..ebe49a832f7414 100644 --- a/Include/complexobject.h +++ b/Include/complexobject.h @@ -10,8 +10,8 @@ extern "C" { PyAPI_DATA(PyTypeObject) PyComplex_Type; -#define PyComplex_Check(op) PyObject_TypeCheck(op, &PyComplex_Type) -#define PyComplex_CheckExact(op) Py_IS_TYPE(op, &PyComplex_Type) +#define PyComplex_Check(op) PyObject_TypeCheck((op), &PyComplex_Type) +#define PyComplex_CheckExact(op) Py_IS_TYPE((op), &PyComplex_Type) PyAPI_FUNC(PyObject *) PyComplex_FromDoubles(double real, double imag); diff --git a/Include/cpython/abstract.h b/Include/cpython/abstract.h index d276669312ee2f..6da29cde9f6092 100644 --- a/Include/cpython/abstract.h +++ b/Include/cpython/abstract.h @@ -53,8 +53,12 @@ PyAPI_FUNC(PyObject *) _PyObject_MakeTpCall( #define PY_VECTORCALL_ARGUMENTS_OFFSET \ (_Py_STATIC_CAST(size_t, 1) << (8 * sizeof(size_t) - 1)) +// PyVectorcall_NARGS() is exported as a function for the stable ABI. +// Here (when we are not using the stable ABI), the name is overridden to +// call a static inline function for best performance. +#define PyVectorcall_NARGS(n) _PyVectorcall_NARGS(n) static inline Py_ssize_t -PyVectorcall_NARGS(size_t n) +_PyVectorcall_NARGS(size_t n) { return n & ~PY_VECTORCALL_ARGUMENTS_OFFSET; } @@ -84,10 +88,6 @@ PyAPI_FUNC(PyObject *) PyObject_VectorcallDict( size_t nargsf, PyObject *kwargs); -/* Call "callable" (which must support vectorcall) with positional arguments - "tuple" and keyword arguments "dict". "dict" may also be NULL */ -PyAPI_FUNC(PyObject *) PyVectorcall_Call(PyObject *callable, PyObject *tuple, PyObject *dict); - // Same as PyObject_Vectorcall(), except without keyword arguments PyAPI_FUNC(PyObject *) _PyObject_FastCall( PyObject *func, @@ -176,7 +176,7 @@ PyAPI_FUNC(Py_ssize_t) PyObject_LengthHint(PyObject *o, Py_ssize_t); /* Assume tp_as_sequence and sq_item exist and that 'i' does not need to be corrected for a negative index. */ #define PySequence_ITEM(o, i)\ - ( Py_TYPE(o)->tp_as_sequence->sq_item(o, i) ) + ( Py_TYPE(o)->tp_as_sequence->sq_item((o), (i)) ) #define PY_ITERSEARCH_COUNT 1 #define PY_ITERSEARCH_INDEX 2 diff --git a/Include/cpython/bytearrayobject.h b/Include/cpython/bytearrayobject.h index 5114169c280915..9ba176eb2d3ac2 100644 --- a/Include/cpython/bytearrayobject.h +++ b/Include/cpython/bytearrayobject.h @@ -25,14 +25,10 @@ static inline char* PyByteArray_AS_STRING(PyObject *op) } return _PyByteArray_empty_string; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyByteArray_AS_STRING(self) PyByteArray_AS_STRING(_PyObject_CAST(self)) -#endif +#define PyByteArray_AS_STRING(self) PyByteArray_AS_STRING(_PyObject_CAST(self)) static inline Py_ssize_t PyByteArray_GET_SIZE(PyObject *op) { PyByteArrayObject *self = _PyByteArray_CAST(op); return Py_SIZE(self); } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyByteArray_GET_SIZE(self) PyByteArray_GET_SIZE(_PyObject_CAST(self)) -#endif +#define PyByteArray_GET_SIZE(self) PyByteArray_GET_SIZE(_PyObject_CAST(self)) diff --git a/Include/cpython/bytesobject.h b/Include/cpython/bytesobject.h index 53343661f0ec43..e982031c107de2 100644 --- a/Include/cpython/bytesobject.h +++ b/Include/cpython/bytesobject.h @@ -36,17 +36,13 @@ static inline char* PyBytes_AS_STRING(PyObject *op) { return _PyBytes_CAST(op)->ob_sval; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyBytes_AS_STRING(op) PyBytes_AS_STRING(_PyObject_CAST(op)) -#endif +#define PyBytes_AS_STRING(op) PyBytes_AS_STRING(_PyObject_CAST(op)) static inline Py_ssize_t PyBytes_GET_SIZE(PyObject *op) { PyBytesObject *self = _PyBytes_CAST(op); return Py_SIZE(self); } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyBytes_GET_SIZE(self) PyBytes_GET_SIZE(_PyObject_CAST(self)) -#endif +#define PyBytes_GET_SIZE(self) PyBytes_GET_SIZE(_PyObject_CAST(self)) /* _PyBytes_Join(sep, x) is like sep.join(x). sep must be PyBytesObject*, x must be an iterable object. */ diff --git a/Include/cpython/cellobject.h b/Include/cpython/cellobject.h index 344238a533563d..47a6a491497ea0 100644 --- a/Include/cpython/cellobject.h +++ b/Include/cpython/cellobject.h @@ -15,7 +15,7 @@ typedef struct { PyAPI_DATA(PyTypeObject) PyCell_Type; -#define PyCell_Check(op) Py_IS_TYPE(op, &PyCell_Type) +#define PyCell_Check(op) Py_IS_TYPE((op), &PyCell_Type) PyAPI_FUNC(PyObject *) PyCell_New(PyObject *); PyAPI_FUNC(PyObject *) PyCell_Get(PyObject *); @@ -27,9 +27,7 @@ static inline PyObject* PyCell_GET(PyObject *op) { cell = _Py_CAST(PyCellObject*, op); return cell->ob_ref; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030c0000 -# define PyCell_GET(op) PyCell_GET(_PyObject_CAST(op)) -#endif +#define PyCell_GET(op) PyCell_GET(_PyObject_CAST(op)) static inline void PyCell_SET(PyObject *op, PyObject *value) { PyCellObject *cell; @@ -37,9 +35,7 @@ static inline void PyCell_SET(PyObject *op, PyObject *value) { cell = _Py_CAST(PyCellObject*, op); cell->ob_ref = value; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030c0000 -# define PyCell_SET(op, value) PyCell_SET(_PyObject_CAST(op), (value)) -#endif +#define PyCell_SET(op, value) PyCell_SET(_PyObject_CAST(op), (value)) #ifdef __cplusplus } diff --git a/Include/cpython/ceval.h b/Include/cpython/ceval.h index 9d4eeafb427eb2..74665c9fa10580 100644 --- a/Include/cpython/ceval.h +++ b/Include/cpython/ceval.h @@ -3,8 +3,10 @@ #endif PyAPI_FUNC(void) PyEval_SetProfile(Py_tracefunc, PyObject *); +PyAPI_FUNC(void) PyEval_SetProfileAllThreads(Py_tracefunc, PyObject *); PyAPI_DATA(int) _PyEval_SetProfile(PyThreadState *tstate, Py_tracefunc func, PyObject *arg); PyAPI_FUNC(void) PyEval_SetTrace(Py_tracefunc, PyObject *); +PyAPI_FUNC(void) PyEval_SetTraceAllThreads(Py_tracefunc, PyObject *); PyAPI_FUNC(int) _PyEval_SetTrace(PyThreadState *tstate, Py_tracefunc func, PyObject *arg); /* Helper to look up a builtin object */ diff --git a/Include/cpython/classobject.h b/Include/cpython/classobject.h index 80df8842eb4f78..051041965002a3 100644 --- a/Include/cpython/classobject.h +++ b/Include/cpython/classobject.h @@ -19,7 +19,7 @@ typedef struct { PyAPI_DATA(PyTypeObject) PyMethod_Type; -#define PyMethod_Check(op) Py_IS_TYPE(op, &PyMethod_Type) +#define PyMethod_Check(op) Py_IS_TYPE((op), &PyMethod_Type) PyAPI_FUNC(PyObject *) PyMethod_New(PyObject *, PyObject *); @@ -29,9 +29,9 @@ PyAPI_FUNC(PyObject *) PyMethod_Self(PyObject *); /* Macros for direct access to these values. Type checks are *not* done, so use with care. */ #define PyMethod_GET_FUNCTION(meth) \ - (((PyMethodObject *)meth) -> im_func) + (((PyMethodObject *)(meth)) -> im_func) #define PyMethod_GET_SELF(meth) \ - (((PyMethodObject *)meth) -> im_self) + (((PyMethodObject *)(meth)) -> im_self) typedef struct { PyObject_HEAD @@ -40,7 +40,7 @@ typedef struct { PyAPI_DATA(PyTypeObject) PyInstanceMethod_Type; -#define PyInstanceMethod_Check(op) Py_IS_TYPE(op, &PyInstanceMethod_Type) +#define PyInstanceMethod_Check(op) Py_IS_TYPE((op), &PyInstanceMethod_Type) PyAPI_FUNC(PyObject *) PyInstanceMethod_New(PyObject *); PyAPI_FUNC(PyObject *) PyInstanceMethod_Function(PyObject *); @@ -48,7 +48,7 @@ PyAPI_FUNC(PyObject *) PyInstanceMethod_Function(PyObject *); /* Macros for direct access to these values. Type checks are *not* done, so use with care. */ #define PyInstanceMethod_GET_FUNCTION(meth) \ - (((PyInstanceMethodObject *)meth) -> func) + (((PyInstanceMethodObject *)(meth)) -> func) #ifdef __cplusplus } diff --git a/Include/cpython/code.h b/Include/cpython/code.h index ba7324b48d8675..7ce69022557af0 100644 --- a/Include/cpython/code.h +++ b/Include/cpython/code.h @@ -29,7 +29,8 @@ typedef uint16_t _Py_CODEUNIT; #endif // Use "unsigned char" instead of "uint8_t" here to avoid illegal aliasing: -#define _Py_SET_OPCODE(word, opcode) (((unsigned char *)&(word))[0] = (opcode)) +#define _Py_SET_OPCODE(word, opcode) \ + do { ((unsigned char *)&(word))[0] = (opcode); } while (0) // To avoid repeating ourselves in deepfreeze.py, all PyCodeObject members are // defined in this macro: @@ -62,7 +63,8 @@ typedef uint16_t _Py_CODEUNIT; PyObject *co_exceptiontable; /* Byte string encoding exception handling \ table */ \ int co_flags; /* CO_..., see below */ \ - int co_warmup; /* Warmup counter for quickening */ \ + short co_warmup; /* Warmup counter for quickening */ \ + short _co_linearray_entry_size; /* Size of each entry in _co_linearray */ \ \ /* The rest are not so impactful on performance. */ \ int co_argcount; /* #arguments, except *args */ \ @@ -73,8 +75,8 @@ typedef uint16_t _Py_CODEUNIT; \ /* redundant values (derived from co_localsplusnames and \ co_localspluskinds) */ \ - int co_nlocalsplus; /* number of local + cell + free variables \ - */ \ + int co_nlocalsplus; /* number of local + cell + free variables */ \ + int co_framesize; /* Size of frame in words */ \ int co_nlocals; /* number of local variables */ \ int co_nplaincellvars; /* number of non-arg cell variables */ \ int co_ncellvars; /* total number of cell variables */ \ @@ -88,6 +90,9 @@ typedef uint16_t _Py_CODEUNIT; PyObject *co_qualname; /* unicode (qualname, for reference) */ \ PyObject *co_linetable; /* bytes object that holds location info */ \ PyObject *co_weakreflist; /* to support weakrefs to code objects */ \ + PyObject *_co_code; /* cached co_code object/attribute */ \ + int _co_firsttraceable; /* index of first traceable instruction */ \ + char *_co_linearray; /* array of line offsets */ \ /* Scratch space for extra data relating to the code object. \ Type is a void* to keep the format private in codeobject.c to force \ people to go through the proper APIs. */ \ @@ -135,7 +140,7 @@ struct PyCodeObject _PyCode_DEF(1); PyAPI_DATA(PyTypeObject) PyCode_Type; -#define PyCode_Check(op) Py_IS_TYPE(op, &PyCode_Type) +#define PyCode_Check(op) Py_IS_TYPE((op), &PyCode_Type) #define PyCode_GetNumFree(op) ((op)->co_nfreevars) #define _PyCode_CODE(CO) ((_Py_CODEUNIT *)(CO)->co_code_adaptive) #define _PyCode_NBYTES(CO) (Py_SIZE(CO) * (Py_ssize_t)sizeof(_Py_CODEUNIT)) @@ -205,6 +210,12 @@ PyAPI_FUNC(int) _PyCode_SetExtra(PyObject *code, Py_ssize_t index, /* Equivalent to getattr(code, 'co_code') in Python. Returns a strong reference to a bytes object. */ PyAPI_FUNC(PyObject *) PyCode_GetCode(PyCodeObject *code); +/* Equivalent to getattr(code, 'co_varnames') in Python. */ +PyAPI_FUNC(PyObject *) PyCode_GetVarnames(PyCodeObject *code); +/* Equivalent to getattr(code, 'co_cellvars') in Python. */ +PyAPI_FUNC(PyObject *) PyCode_GetCellvars(PyCodeObject *code); +/* Equivalent to getattr(code, 'co_freevars') in Python. */ +PyAPI_FUNC(PyObject *) PyCode_GetFreevars(PyCodeObject *code); typedef enum _PyCodeLocationInfoKind { /* short forms are 0 to 9 */ diff --git a/Include/cpython/context.h b/Include/cpython/context.h index 4db079f7633f48..9879fc7192ebb8 100644 --- a/Include/cpython/context.h +++ b/Include/cpython/context.h @@ -15,9 +15,9 @@ PyAPI_DATA(PyTypeObject) PyContextToken_Type; typedef struct _pycontexttokenobject PyContextToken; -#define PyContext_CheckExact(o) Py_IS_TYPE(o, &PyContext_Type) -#define PyContextVar_CheckExact(o) Py_IS_TYPE(o, &PyContextVar_Type) -#define PyContextToken_CheckExact(o) Py_IS_TYPE(o, &PyContextToken_Type) +#define PyContext_CheckExact(o) Py_IS_TYPE((o), &PyContext_Type) +#define PyContextVar_CheckExact(o) Py_IS_TYPE((o), &PyContextVar_Type) +#define PyContextToken_CheckExact(o) Py_IS_TYPE((o), &PyContextToken_Type) PyAPI_FUNC(PyObject *) PyContext_New(void); diff --git a/Include/cpython/dictobject.h b/Include/cpython/dictobject.h index 5788012ab159b9..565ad791a6cb28 100644 --- a/Include/cpython/dictobject.h +++ b/Include/cpython/dictobject.h @@ -52,9 +52,7 @@ static inline Py_ssize_t PyDict_GET_SIZE(PyObject *op) { mp = _Py_CAST(PyDictObject*, op); return mp->ma_used; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030c0000 -# define PyDict_GET_SIZE(op) PyDict_GET_SIZE(_PyObject_CAST(op)) -#endif +#define PyDict_GET_SIZE(op) PyDict_GET_SIZE(_PyObject_CAST(op)) PyAPI_FUNC(int) _PyDict_Contains_KnownHash(PyObject *, PyObject *, Py_hash_t); PyAPI_FUNC(int) _PyDict_ContainsId(PyObject *, _Py_Identifier *); diff --git a/Include/cpython/frameobject.h b/Include/cpython/frameobject.h index 9cd711e43559a6..4e19535c656f2c 100644 --- a/Include/cpython/frameobject.h +++ b/Include/cpython/frameobject.h @@ -6,10 +6,6 @@ /* Standard object interface */ -PyAPI_DATA(PyTypeObject) PyFrame_Type; - -#define PyFrame_Check(op) Py_IS_TYPE(op, &PyFrame_Type) - PyAPI_FUNC(PyFrameObject *) PyFrame_New(PyThreadState *, PyCodeObject *, PyObject *, PyObject *); @@ -31,12 +27,3 @@ PyAPI_FUNC(int) _PyFrame_IsEntryFrame(PyFrameObject *frame); PyAPI_FUNC(int) PyFrame_FastToLocalsWithError(PyFrameObject *f); PyAPI_FUNC(void) PyFrame_FastToLocals(PyFrameObject *); - -PyAPI_FUNC(PyFrameObject *) PyFrame_GetBack(PyFrameObject *frame); -PyAPI_FUNC(PyObject *) PyFrame_GetLocals(PyFrameObject *frame); - -PyAPI_FUNC(PyObject *) PyFrame_GetGlobals(PyFrameObject *frame); -PyAPI_FUNC(PyObject *) PyFrame_GetBuiltins(PyFrameObject *frame); - -PyAPI_FUNC(PyObject *) PyFrame_GetGenerator(PyFrameObject *frame); -PyAPI_FUNC(int) PyFrame_GetLasti(PyFrameObject *frame); diff --git a/Include/cpython/funcobject.h b/Include/cpython/funcobject.h index 99ac6008f8b611..dd8f20b2c20b39 100644 --- a/Include/cpython/funcobject.h +++ b/Include/cpython/funcobject.h @@ -48,7 +48,8 @@ typedef struct { * defaults * kwdefaults (only if the object changes, not the contents of the dict) * code - * annotations */ + * annotations + * vectorcall function pointer */ uint32_t func_version; /* Invariant: @@ -60,7 +61,7 @@ typedef struct { PyAPI_DATA(PyTypeObject) PyFunction_Type; -#define PyFunction_Check(op) Py_IS_TYPE(op, &PyFunction_Type) +#define PyFunction_Check(op) Py_IS_TYPE((op), &PyFunction_Type) PyAPI_FUNC(PyObject *) PyFunction_New(PyObject *, PyObject *); PyAPI_FUNC(PyObject *) PyFunction_NewWithQualName(PyObject *, PyObject *, PyObject *); @@ -69,6 +70,7 @@ PyAPI_FUNC(PyObject *) PyFunction_GetGlobals(PyObject *); PyAPI_FUNC(PyObject *) PyFunction_GetModule(PyObject *); PyAPI_FUNC(PyObject *) PyFunction_GetDefaults(PyObject *); PyAPI_FUNC(int) PyFunction_SetDefaults(PyObject *, PyObject *); +PyAPI_FUNC(void) PyFunction_SetVectorcall(PyFunctionObject *, vectorcallfunc); PyAPI_FUNC(PyObject *) PyFunction_GetKwDefaults(PyObject *); PyAPI_FUNC(int) PyFunction_SetKwDefaults(PyObject *, PyObject *); PyAPI_FUNC(PyObject *) PyFunction_GetClosure(PyObject *); @@ -82,22 +84,45 @@ PyAPI_FUNC(PyObject *) _PyFunction_Vectorcall( size_t nargsf, PyObject *kwnames); -/* Macros for direct access to these values. Type checks are *not* - done, so use with care. */ -#define PyFunction_GET_CODE(func) \ - (((PyFunctionObject *)func) -> func_code) -#define PyFunction_GET_GLOBALS(func) \ - (((PyFunctionObject *)func) -> func_globals) -#define PyFunction_GET_MODULE(func) \ - (((PyFunctionObject *)func) -> func_module) -#define PyFunction_GET_DEFAULTS(func) \ - (((PyFunctionObject *)func) -> func_defaults) -#define PyFunction_GET_KW_DEFAULTS(func) \ - (((PyFunctionObject *)func) -> func_kwdefaults) -#define PyFunction_GET_CLOSURE(func) \ - (((PyFunctionObject *)func) -> func_closure) -#define PyFunction_GET_ANNOTATIONS(func) \ - (((PyFunctionObject *)func) -> func_annotations) +#define _PyFunction_CAST(func) \ + (assert(PyFunction_Check(func)), _Py_CAST(PyFunctionObject*, func)) + +/* Static inline functions for direct access to these values. + Type checks are *not* done, so use with care. */ +static inline PyObject* PyFunction_GET_CODE(PyObject *func) { + return _PyFunction_CAST(func)->func_code; +} +#define PyFunction_GET_CODE(func) PyFunction_GET_CODE(_PyObject_CAST(func)) + +static inline PyObject* PyFunction_GET_GLOBALS(PyObject *func) { + return _PyFunction_CAST(func)->func_globals; +} +#define PyFunction_GET_GLOBALS(func) PyFunction_GET_GLOBALS(_PyObject_CAST(func)) + +static inline PyObject* PyFunction_GET_MODULE(PyObject *func) { + return _PyFunction_CAST(func)->func_module; +} +#define PyFunction_GET_MODULE(func) PyFunction_GET_MODULE(_PyObject_CAST(func)) + +static inline PyObject* PyFunction_GET_DEFAULTS(PyObject *func) { + return _PyFunction_CAST(func)->func_defaults; +} +#define PyFunction_GET_DEFAULTS(func) PyFunction_GET_DEFAULTS(_PyObject_CAST(func)) + +static inline PyObject* PyFunction_GET_KW_DEFAULTS(PyObject *func) { + return _PyFunction_CAST(func)->func_kwdefaults; +} +#define PyFunction_GET_KW_DEFAULTS(func) PyFunction_GET_KW_DEFAULTS(_PyObject_CAST(func)) + +static inline PyObject* PyFunction_GET_CLOSURE(PyObject *func) { + return _PyFunction_CAST(func)->func_closure; +} +#define PyFunction_GET_CLOSURE(func) PyFunction_GET_CLOSURE(_PyObject_CAST(func)) + +static inline PyObject* PyFunction_GET_ANNOTATIONS(PyObject *func) { + return _PyFunction_CAST(func)->func_annotations; +} +#define PyFunction_GET_ANNOTATIONS(func) PyFunction_GET_ANNOTATIONS(_PyObject_CAST(func)) /* The classmethod and staticmethod types lives here, too */ PyAPI_DATA(PyTypeObject) PyClassMethod_Type; diff --git a/Include/cpython/genobject.h b/Include/cpython/genobject.h index 40eaa19d3fad94..6127ba7babb80f 100644 --- a/Include/cpython/genobject.h +++ b/Include/cpython/genobject.h @@ -37,8 +37,8 @@ typedef struct { PyAPI_DATA(PyTypeObject) PyGen_Type; -#define PyGen_Check(op) PyObject_TypeCheck(op, &PyGen_Type) -#define PyGen_CheckExact(op) Py_IS_TYPE(op, &PyGen_Type) +#define PyGen_Check(op) PyObject_TypeCheck((op), &PyGen_Type) +#define PyGen_CheckExact(op) Py_IS_TYPE((op), &PyGen_Type) PyAPI_FUNC(PyObject *) PyGen_New(PyFrameObject *); PyAPI_FUNC(PyObject *) PyGen_NewWithQualName(PyFrameObject *, @@ -57,7 +57,7 @@ typedef struct { PyAPI_DATA(PyTypeObject) PyCoro_Type; PyAPI_DATA(PyTypeObject) _PyCoroWrapper_Type; -#define PyCoro_CheckExact(op) Py_IS_TYPE(op, &PyCoro_Type) +#define PyCoro_CheckExact(op) Py_IS_TYPE((op), &PyCoro_Type) PyAPI_FUNC(PyObject *) PyCoro_New(PyFrameObject *, PyObject *name, PyObject *qualname); @@ -76,7 +76,7 @@ PyAPI_DATA(PyTypeObject) _PyAsyncGenAThrow_Type; PyAPI_FUNC(PyObject *) PyAsyncGen_New(PyFrameObject *, PyObject *name, PyObject *qualname); -#define PyAsyncGen_CheckExact(op) Py_IS_TYPE(op, &PyAsyncGen_Type) +#define PyAsyncGen_CheckExact(op) Py_IS_TYPE((op), &PyAsyncGen_Type) #undef _PyGenObject_HEAD diff --git a/Include/cpython/import.h b/Include/cpython/import.h index ef6be689468ee5..a69b4f34def342 100644 --- a/Include/cpython/import.h +++ b/Include/cpython/import.h @@ -40,3 +40,6 @@ struct _frozen { collection of frozen modules: */ PyAPI_DATA(const struct _frozen *) PyImport_FrozenModules; + +PyAPI_DATA(PyObject *) _PyImport_GetModuleAttr(PyObject *, PyObject *); +PyAPI_DATA(PyObject *) _PyImport_GetModuleAttrString(const char *, const char *); diff --git a/Include/cpython/initconfig.h b/Include/cpython/initconfig.h index 3b6d59389f26b9..c6057a4c3ed945 100644 --- a/Include/cpython/initconfig.h +++ b/Include/cpython/initconfig.h @@ -142,6 +142,7 @@ typedef struct PyConfig { unsigned long hash_seed; int faulthandler; int tracemalloc; + int perf_profiling; int import_time; int code_debug_ranges; int show_ref_count; diff --git a/Include/cpython/listobject.h b/Include/cpython/listobject.h index 1add8213e0c092..8fa82122d8d248 100644 --- a/Include/cpython/listobject.h +++ b/Include/cpython/listobject.h @@ -34,18 +34,14 @@ static inline Py_ssize_t PyList_GET_SIZE(PyObject *op) { PyListObject *list = _PyList_CAST(op); return Py_SIZE(list); } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyList_GET_SIZE(op) PyList_GET_SIZE(_PyObject_CAST(op)) -#endif +#define PyList_GET_SIZE(op) PyList_GET_SIZE(_PyObject_CAST(op)) -#define PyList_GET_ITEM(op, index) (_PyList_CAST(op)->ob_item[index]) +#define PyList_GET_ITEM(op, index) (_PyList_CAST(op)->ob_item[(index)]) static inline void PyList_SET_ITEM(PyObject *op, Py_ssize_t index, PyObject *value) { PyListObject *list = _PyList_CAST(op); list->ob_item[index] = value; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 #define PyList_SET_ITEM(op, index, value) \ - PyList_SET_ITEM(_PyObject_CAST(op), index, _PyObject_CAST(value)) -#endif + PyList_SET_ITEM(_PyObject_CAST(op), (index), _PyObject_CAST(value)) diff --git a/Include/cpython/methodobject.h b/Include/cpython/methodobject.h index 54a61cfd077be9..d541e154948041 100644 --- a/Include/cpython/methodobject.h +++ b/Include/cpython/methodobject.h @@ -31,8 +31,8 @@ typedef struct { PyAPI_DATA(PyTypeObject) PyCMethod_Type; -#define PyCMethod_CheckExact(op) Py_IS_TYPE(op, &PyCMethod_Type) -#define PyCMethod_Check(op) PyObject_TypeCheck(op, &PyCMethod_Type) +#define PyCMethod_CheckExact(op) Py_IS_TYPE((op), &PyCMethod_Type) +#define PyCMethod_Check(op) PyObject_TypeCheck((op), &PyCMethod_Type) /* Static inline functions for direct access to these values. @@ -40,9 +40,7 @@ PyAPI_DATA(PyTypeObject) PyCMethod_Type; static inline PyCFunction PyCFunction_GET_FUNCTION(PyObject *func) { return _PyCFunctionObject_CAST(func)->m_ml->ml_meth; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyCFunction_GET_FUNCTION(func) PyCFunction_GET_FUNCTION(_PyObject_CAST(func)) -#endif +#define PyCFunction_GET_FUNCTION(func) PyCFunction_GET_FUNCTION(_PyObject_CAST(func)) static inline PyObject* PyCFunction_GET_SELF(PyObject *func_obj) { PyCFunctionObject *func = _PyCFunctionObject_CAST(func_obj); @@ -51,16 +49,12 @@ static inline PyObject* PyCFunction_GET_SELF(PyObject *func_obj) { } return func->m_self; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyCFunction_GET_SELF(func) PyCFunction_GET_SELF(_PyObject_CAST(func)) -#endif +#define PyCFunction_GET_SELF(func) PyCFunction_GET_SELF(_PyObject_CAST(func)) static inline int PyCFunction_GET_FLAGS(PyObject *func) { return _PyCFunctionObject_CAST(func)->m_ml->ml_flags; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyCFunction_GET_FLAGS(func) PyCFunction_GET_FLAGS(_PyObject_CAST(func)) -#endif +#define PyCFunction_GET_FLAGS(func) PyCFunction_GET_FLAGS(_PyObject_CAST(func)) static inline PyTypeObject* PyCFunction_GET_CLASS(PyObject *func_obj) { PyCFunctionObject *func = _PyCFunctionObject_CAST(func_obj); @@ -69,6 +63,4 @@ static inline PyTypeObject* PyCFunction_GET_CLASS(PyObject *func_obj) { } return _Py_NULL; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyCFunction_GET_CLASS(func) PyCFunction_GET_CLASS(_PyObject_CAST(func)) -#endif +#define PyCFunction_GET_CLASS(func) PyCFunction_GET_CLASS(_PyObject_CAST(func)) diff --git a/Include/cpython/modsupport.h b/Include/cpython/modsupport.h index 769eb52bf6e3ae..d8458923b3fab8 100644 --- a/Include/cpython/modsupport.h +++ b/Include/cpython/modsupport.h @@ -34,11 +34,13 @@ PyAPI_FUNC(int) _PyArg_NoPositional(const char *funcname, PyObject *args); #define _PyArg_NoPositional(funcname, args) \ ((args) == NULL || _PyArg_NoPositional((funcname), (args))) +#define _Py_ANY_VARARGS(n) ((n) == PY_SSIZE_T_MAX) + PyAPI_FUNC(void) _PyArg_BadArgument(const char *, const char *, const char *, PyObject *); PyAPI_FUNC(int) _PyArg_CheckPositional(const char *, Py_ssize_t, Py_ssize_t, Py_ssize_t); #define _PyArg_CheckPositional(funcname, nargs, min, max) \ - ((!ANY_VARARGS(max) && (min) <= (nargs) && (nargs) <= (max)) \ + ((!_Py_ANY_VARARGS(max) && (min) <= (nargs) && (nargs) <= (max)) \ || _PyArg_CheckPositional((funcname), (nargs), (min), (max))) PyAPI_FUNC(PyObject **) _Py_VaBuildStack( @@ -49,6 +51,7 @@ PyAPI_FUNC(PyObject **) _Py_VaBuildStack( Py_ssize_t *p_nargs); typedef struct _PyArg_Parser { + int initialized; const char *format; const char * const *keywords; const char *fname; @@ -98,7 +101,7 @@ PyAPI_FUNC(PyObject * const *) _PyArg_UnpackKeywordsWithVararg( #define _PyArg_UnpackKeywords(args, nargs, kwargs, kwnames, parser, minpos, maxpos, minkw, buf) \ (((minkw) == 0 && (kwargs) == NULL && (kwnames) == NULL && \ - (minpos) <= (nargs) && (nargs) <= (maxpos) && args != NULL) ? (args) : \ + (minpos) <= (nargs) && (nargs) <= (maxpos) && (args) != NULL) ? (args) : \ _PyArg_UnpackKeywords((args), (nargs), (kwargs), (kwnames), (parser), \ (minpos), (maxpos), (minkw), (buf))) diff --git a/Include/cpython/object.h b/Include/cpython/object.h index b018dabf9d862f..c80fc1df0e0ba4 100644 --- a/Include/cpython/object.h +++ b/Include/cpython/object.h @@ -45,7 +45,7 @@ typedef struct _Py_Identifier { // For now we are keeping _Py_IDENTIFIER for continued use // in non-builtin extensions (and naughty PyPI modules). -#define _Py_static_string_init(value) { .string = value, .index = -1 } +#define _Py_static_string_init(value) { .string = (value), .index = -1 } #define _Py_static_string(varname, value) static _Py_Identifier varname = _Py_static_string_init(value) #define _Py_IDENTIFIER(varname) _Py_static_string(PyId_##varname, #varname) @@ -54,9 +54,6 @@ typedef struct _Py_Identifier { typedef int (*getbufferproc)(PyObject *, Py_buffer *, int); typedef void (*releasebufferproc)(PyObject *, Py_buffer *); -typedef PyObject *(*vectorcallfunc)(PyObject *callable, PyObject *const *args, - size_t nargsf, PyObject *kwnames); - typedef struct { /* Number implementations must check *both* @@ -217,9 +214,9 @@ struct _typeobject { inquiry tp_is_gc; /* For PyObject_IS_GC */ PyObject *tp_bases; PyObject *tp_mro; /* method resolution order */ - PyObject *tp_cache; - PyObject *tp_subclasses; - PyObject *tp_weaklist; + PyObject *tp_cache; /* no longer used */ + void *tp_subclasses; /* for static builtin types this is an index */ + PyObject *tp_weaklist; /* not used for static builtin types */ destructor tp_del; /* Type attribute cache version tag. Added in version 2.6 */ @@ -385,9 +382,9 @@ _PyObject_DebugTypeStats(FILE *out); #endif #define _PyObject_ASSERT_WITH_MSG(obj, expr, msg) \ - _PyObject_ASSERT_FROM(obj, expr, msg, __FILE__, __LINE__, __func__) + _PyObject_ASSERT_FROM((obj), expr, (msg), __FILE__, __LINE__, __func__) #define _PyObject_ASSERT(obj, expr) \ - _PyObject_ASSERT_WITH_MSG(obj, expr, NULL) + _PyObject_ASSERT_WITH_MSG((obj), expr, NULL) #define _PyObject_ASSERT_FAILED_MSG(obj, msg) \ _PyObject_AssertFailed((obj), NULL, (msg), __FILE__, __LINE__, __func__) @@ -493,8 +490,8 @@ PyAPI_FUNC(int) _PyTrash_cond(PyObject *op, destructor dealloc); } while (0); #define Py_TRASHCAN_BEGIN(op, dealloc) \ - Py_TRASHCAN_BEGIN_CONDITION(op, \ - _PyTrash_cond(_PyObject_CAST(op), (destructor)dealloc)) + Py_TRASHCAN_BEGIN_CONDITION((op), \ + _PyTrash_cond(_PyObject_CAST(op), (destructor)(dealloc))) /* The following two macros, Py_TRASHCAN_SAFE_BEGIN and * Py_TRASHCAN_SAFE_END, are deprecated since version 3.11 and @@ -505,7 +502,11 @@ Py_DEPRECATED(3.11) typedef int UsingDeprecatedTrashcanMacro; #define Py_TRASHCAN_SAFE_BEGIN(op) \ do { \ UsingDeprecatedTrashcanMacro cond=1; \ - Py_TRASHCAN_BEGIN_CONDITION(op, cond); + Py_TRASHCAN_BEGIN_CONDITION((op), cond); #define Py_TRASHCAN_SAFE_END(op) \ Py_TRASHCAN_END; \ } while(0); + + +PyAPI_FUNC(int) _PyObject_VisitManagedDict(PyObject *obj, visitproc visit, void *arg); +PyAPI_FUNC(void) _PyObject_ClearManagedDict(PyObject *obj); diff --git a/Include/cpython/odictobject.h b/Include/cpython/odictobject.h index e070413017d801..3822d554868c10 100644 --- a/Include/cpython/odictobject.h +++ b/Include/cpython/odictobject.h @@ -18,8 +18,8 @@ PyAPI_DATA(PyTypeObject) PyODictKeys_Type; PyAPI_DATA(PyTypeObject) PyODictItems_Type; PyAPI_DATA(PyTypeObject) PyODictValues_Type; -#define PyODict_Check(op) PyObject_TypeCheck(op, &PyODict_Type) -#define PyODict_CheckExact(op) Py_IS_TYPE(op, &PyODict_Type) +#define PyODict_Check(op) PyObject_TypeCheck((op), &PyODict_Type) +#define PyODict_CheckExact(op) Py_IS_TYPE((op), &PyODict_Type) #define PyODict_SIZE(op) PyDict_GET_SIZE((op)) PyAPI_FUNC(PyObject *) PyODict_New(void); @@ -27,13 +27,13 @@ PyAPI_FUNC(int) PyODict_SetItem(PyObject *od, PyObject *key, PyObject *item); PyAPI_FUNC(int) PyODict_DelItem(PyObject *od, PyObject *key); /* wrappers around PyDict* functions */ -#define PyODict_GetItem(od, key) PyDict_GetItem(_PyObject_CAST(od), key) +#define PyODict_GetItem(od, key) PyDict_GetItem(_PyObject_CAST(od), (key)) #define PyODict_GetItemWithError(od, key) \ - PyDict_GetItemWithError(_PyObject_CAST(od), key) -#define PyODict_Contains(od, key) PyDict_Contains(_PyObject_CAST(od), key) + PyDict_GetItemWithError(_PyObject_CAST(od), (key)) +#define PyODict_Contains(od, key) PyDict_Contains(_PyObject_CAST(od), (key)) #define PyODict_Size(od) PyDict_Size(_PyObject_CAST(od)) #define PyODict_GetItemString(od, key) \ - PyDict_GetItemString(_PyObject_CAST(od), key) + PyDict_GetItemString(_PyObject_CAST(od), (key)) #endif diff --git a/Include/cpython/picklebufobject.h b/Include/cpython/picklebufobject.h index 0df2561dceaea0..f3cbaeef919518 100644 --- a/Include/cpython/picklebufobject.h +++ b/Include/cpython/picklebufobject.h @@ -12,7 +12,7 @@ extern "C" { PyAPI_DATA(PyTypeObject) PyPickleBuffer_Type; -#define PyPickleBuffer_Check(op) Py_IS_TYPE(op, &PyPickleBuffer_Type) +#define PyPickleBuffer_Check(op) Py_IS_TYPE((op), &PyPickleBuffer_Type) /* Create a PickleBuffer redirecting to the given buffer-enabled object */ PyAPI_FUNC(PyObject *) PyPickleBuffer_FromObject(PyObject *); diff --git a/Include/cpython/pthread_stubs.h b/Include/cpython/pthread_stubs.h new file mode 100644 index 00000000000000..d95ee03d8308ce --- /dev/null +++ b/Include/cpython/pthread_stubs.h @@ -0,0 +1,88 @@ +#ifndef Py_CPYTHON_PTRHEAD_STUBS_H +#define Py_CPYTHON_PTRHEAD_STUBS_H + +#if !defined(HAVE_PTHREAD_STUBS) +# error "this header file requires stubbed pthreads." +#endif + +#ifndef _POSIX_THREADS +# define _POSIX_THREADS 1 +#endif + +/* Minimal pthread stubs for CPython. + * + * The stubs implement the minimum pthread API for CPython. + * - pthread_create() fails. + * - pthread_exit() calls exit(0). + * - pthread_key_*() functions implement minimal TSS without destructor. + * - all other functions do nothing and return 0. + */ + +#ifdef __wasi__ +// WASI's bits/alltypes.h provides type definitions when __NEED_ is set. +// The header file can be included multiple times. +# define __NEED_pthread_cond_t 1 +# define __NEED_pthread_condattr_t 1 +# define __NEED_pthread_mutex_t 1 +# define __NEED_pthread_mutexattr_t 1 +# define __NEED_pthread_key_t 1 +# define __NEED_pthread_t 1 +# define __NEED_pthread_attr_t 1 +# include +#else +typedef struct { void *__x; } pthread_cond_t; +typedef struct { unsigned __attr; } pthread_condattr_t; +typedef struct { void *__x; } pthread_mutex_t; +typedef struct { unsigned __attr; } pthread_mutexattr_t; +typedef unsigned pthread_key_t; +typedef unsigned pthread_t; +typedef struct { unsigned __attr; } pthread_attr_t; +#endif + +// mutex +PyAPI_FUNC(int) pthread_mutex_init(pthread_mutex_t *restrict mutex, + const pthread_mutexattr_t *restrict attr); +PyAPI_FUNC(int) pthread_mutex_destroy(pthread_mutex_t *mutex); +PyAPI_FUNC(int) pthread_mutex_trylock(pthread_mutex_t *mutex); +PyAPI_FUNC(int) pthread_mutex_lock(pthread_mutex_t *mutex); +PyAPI_FUNC(int) pthread_mutex_unlock(pthread_mutex_t *mutex); + +// condition +PyAPI_FUNC(int) pthread_cond_init(pthread_cond_t *restrict cond, + const pthread_condattr_t *restrict attr); +PyAPI_FUNC(int) pthread_cond_destroy(pthread_cond_t *cond); +PyAPI_FUNC(int) pthread_cond_wait(pthread_cond_t *restrict cond, + pthread_mutex_t *restrict mutex); +PyAPI_FUNC(int) pthread_cond_timedwait(pthread_cond_t *restrict cond, + pthread_mutex_t *restrict mutex, + const struct timespec *restrict abstime); +PyAPI_FUNC(int) pthread_cond_signal(pthread_cond_t *cond); +PyAPI_FUNC(int) pthread_condattr_init(pthread_condattr_t *attr); +PyAPI_FUNC(int) pthread_condattr_setclock( + pthread_condattr_t *attr, clockid_t clock_id); + +// pthread +PyAPI_FUNC(int) pthread_create(pthread_t *restrict thread, + const pthread_attr_t *restrict attr, + void *(*start_routine)(void *), + void *restrict arg); +PyAPI_FUNC(int) pthread_detach(pthread_t thread); +PyAPI_FUNC(pthread_t) pthread_self(void); +PyAPI_FUNC(int) pthread_exit(void *retval) __attribute__ ((__noreturn__)); +PyAPI_FUNC(int) pthread_attr_init(pthread_attr_t *attr); +PyAPI_FUNC(int) pthread_attr_setstacksize(pthread_attr_t *attr, size_t stacksize); +PyAPI_FUNC(int) pthread_attr_destroy(pthread_attr_t *attr); + + +// pthread_key +#ifndef PTHREAD_KEYS_MAX +# define PTHREAD_KEYS_MAX 128 +#endif + +PyAPI_FUNC(int) pthread_key_create(pthread_key_t *key, + void (*destr_function)(void *)); +PyAPI_FUNC(int) pthread_key_delete(pthread_key_t key); +PyAPI_FUNC(void *) pthread_getspecific(pthread_key_t key); +PyAPI_FUNC(int) pthread_setspecific(pthread_key_t key, const void *value); + +#endif // Py_CPYTHON_PTRHEAD_STUBS_H diff --git a/Include/cpython/pydebug.h b/Include/cpython/pydebug.h index cab799f0b38e0c..f6ebd99ed7e2ff 100644 --- a/Include/cpython/pydebug.h +++ b/Include/cpython/pydebug.h @@ -5,31 +5,31 @@ extern "C" { #endif -PyAPI_DATA(int) Py_DebugFlag; -PyAPI_DATA(int) Py_VerboseFlag; -PyAPI_DATA(int) Py_QuietFlag; -PyAPI_DATA(int) Py_InteractiveFlag; -PyAPI_DATA(int) Py_InspectFlag; -PyAPI_DATA(int) Py_OptimizeFlag; -PyAPI_DATA(int) Py_NoSiteFlag; -PyAPI_DATA(int) Py_BytesWarningFlag; -PyAPI_DATA(int) Py_FrozenFlag; -PyAPI_DATA(int) Py_IgnoreEnvironmentFlag; -PyAPI_DATA(int) Py_DontWriteBytecodeFlag; -PyAPI_DATA(int) Py_NoUserSiteDirectory; -PyAPI_DATA(int) Py_UnbufferedStdioFlag; -PyAPI_DATA(int) Py_HashRandomizationFlag; -PyAPI_DATA(int) Py_IsolatedFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_DebugFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_VerboseFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_QuietFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_InteractiveFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_InspectFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_OptimizeFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_NoSiteFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_BytesWarningFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_FrozenFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_IgnoreEnvironmentFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_DontWriteBytecodeFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_NoUserSiteDirectory; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_UnbufferedStdioFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_HashRandomizationFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_IsolatedFlag; #ifdef MS_WINDOWS -PyAPI_DATA(int) Py_LegacyWindowsFSEncodingFlag; -PyAPI_DATA(int) Py_LegacyWindowsStdioFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_LegacyWindowsFSEncodingFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_LegacyWindowsStdioFlag; #endif /* this is a wrapper around getenv() that pays attention to Py_IgnoreEnvironmentFlag. It should be used for getting variables like PYTHONPATH and PYTHONHOME from the environment */ -PyAPI_DATA(char*) Py_GETENV(const char *name); +PyAPI_FUNC(char*) Py_GETENV(const char *name); #ifdef __cplusplus } diff --git a/Include/cpython/pyerrors.h b/Include/cpython/pyerrors.h index 47d80e3242302d..f33d3caaa2082e 100644 --- a/Include/cpython/pyerrors.h +++ b/Include/cpython/pyerrors.h @@ -176,4 +176,4 @@ PyAPI_FUNC(void) _Py_NO_RETURN _Py_FatalErrorFormat( const char *format, ...); -#define Py_FatalError(message) _Py_FatalErrorFunc(__func__, message) +#define Py_FatalError(message) _Py_FatalErrorFunc(__func__, (message)) diff --git a/Include/cpython/pyframe.h b/Include/cpython/pyframe.h new file mode 100644 index 00000000000000..1dc634ccee9a27 --- /dev/null +++ b/Include/cpython/pyframe.h @@ -0,0 +1,17 @@ +#ifndef Py_CPYTHON_PYFRAME_H +# error "this header file must not be included directly" +#endif + +PyAPI_DATA(PyTypeObject) PyFrame_Type; + +#define PyFrame_Check(op) Py_IS_TYPE((op), &PyFrame_Type) + +PyAPI_FUNC(PyFrameObject *) PyFrame_GetBack(PyFrameObject *frame); +PyAPI_FUNC(PyObject *) PyFrame_GetLocals(PyFrameObject *frame); + +PyAPI_FUNC(PyObject *) PyFrame_GetGlobals(PyFrameObject *frame); +PyAPI_FUNC(PyObject *) PyFrame_GetBuiltins(PyFrameObject *frame); + +PyAPI_FUNC(PyObject *) PyFrame_GetGenerator(PyFrameObject *frame); +PyAPI_FUNC(int) PyFrame_GetLasti(PyFrameObject *frame); + diff --git a/Include/cpython/pystate.h b/Include/cpython/pystate.h index 2bd46067cbbe18..cc3c3eae941933 100644 --- a/Include/cpython/pystate.h +++ b/Include/cpython/pystate.h @@ -279,7 +279,10 @@ PyAPI_FUNC(const PyConfig*) _PyInterpreterState_GetConfig(PyInterpreterState *in for example. Python must be preinitialized to call this method. - The caller must hold the GIL. */ + The caller must hold the GIL. + + Once done with the configuration, PyConfig_Clear() must be called to clear + it. */ PyAPI_FUNC(int) _PyInterpreterState_GetConfigCopy( struct PyConfig *config); diff --git a/Include/cpython/pythonrun.h b/Include/cpython/pythonrun.h index 2e72d0820d34f5..fb617655374026 100644 --- a/Include/cpython/pythonrun.h +++ b/Include/cpython/pythonrun.h @@ -66,8 +66,8 @@ PyAPI_FUNC(PyObject *) Py_CompileStringObject( PyCompilerFlags *flags, int optimize); -#define Py_CompileString(str, p, s) Py_CompileStringExFlags(str, p, s, NULL, -1) -#define Py_CompileStringFlags(str, p, s, f) Py_CompileStringExFlags(str, p, s, f, -1) +#define Py_CompileString(str, p, s) Py_CompileStringExFlags((str), (p), (s), NULL, -1) +#define Py_CompileStringFlags(str, p, s, f) Py_CompileStringExFlags((str), (p), (s), (f), -1) PyAPI_FUNC(const char *) _Py_SourceAsString( @@ -96,23 +96,23 @@ PyAPI_FUNC(PyObject *) PyRun_FileEx(FILE *fp, const char *p, int s, PyObject *g, PyAPI_FUNC(PyObject *) PyRun_FileFlags(FILE *fp, const char *p, int s, PyObject *g, PyObject *l, PyCompilerFlags *flags); /* Use macros for a bunch of old variants */ -#define PyRun_String(str, s, g, l) PyRun_StringFlags(str, s, g, l, NULL) -#define PyRun_AnyFile(fp, name) PyRun_AnyFileExFlags(fp, name, 0, NULL) +#define PyRun_String(str, s, g, l) PyRun_StringFlags((str), (s), (g), (l), NULL) +#define PyRun_AnyFile(fp, name) PyRun_AnyFileExFlags((fp), (name), 0, NULL) #define PyRun_AnyFileEx(fp, name, closeit) \ - PyRun_AnyFileExFlags(fp, name, closeit, NULL) + PyRun_AnyFileExFlags((fp), (name), (closeit), NULL) #define PyRun_AnyFileFlags(fp, name, flags) \ - PyRun_AnyFileExFlags(fp, name, 0, flags) -#define PyRun_SimpleString(s) PyRun_SimpleStringFlags(s, NULL) -#define PyRun_SimpleFile(f, p) PyRun_SimpleFileExFlags(f, p, 0, NULL) -#define PyRun_SimpleFileEx(f, p, c) PyRun_SimpleFileExFlags(f, p, c, NULL) -#define PyRun_InteractiveOne(f, p) PyRun_InteractiveOneFlags(f, p, NULL) -#define PyRun_InteractiveLoop(f, p) PyRun_InteractiveLoopFlags(f, p, NULL) + PyRun_AnyFileExFlags((fp), (name), 0, (flags)) +#define PyRun_SimpleString(s) PyRun_SimpleStringFlags((s), NULL) +#define PyRun_SimpleFile(f, p) PyRun_SimpleFileExFlags((f), (p), 0, NULL) +#define PyRun_SimpleFileEx(f, p, c) PyRun_SimpleFileExFlags((f), (p), (c), NULL) +#define PyRun_InteractiveOne(f, p) PyRun_InteractiveOneFlags((f), (p), NULL) +#define PyRun_InteractiveLoop(f, p) PyRun_InteractiveLoopFlags((f), (p), NULL) #define PyRun_File(fp, p, s, g, l) \ - PyRun_FileExFlags(fp, p, s, g, l, 0, NULL) + PyRun_FileExFlags((fp), (p), (s), (g), (l), 0, NULL) #define PyRun_FileEx(fp, p, s, g, l, c) \ - PyRun_FileExFlags(fp, p, s, g, l, c, NULL) + PyRun_FileExFlags((fp), (p), (s), (g), (l), (c), NULL) #define PyRun_FileFlags(fp, p, s, g, l, flags) \ - PyRun_FileExFlags(fp, p, s, g, l, 0, flags) + PyRun_FileExFlags((fp), (p), (s), (g), (l), 0, (flags)) /* Stuff with no proper home (yet) */ diff --git a/Include/cpython/pythread.h b/Include/cpython/pythread.h index 1fd86a6a90f9af..ce4ec8f65b15ea 100644 --- a/Include/cpython/pythread.h +++ b/Include/cpython/pythread.h @@ -20,6 +20,9 @@ PyAPI_FUNC(int) _PyThread_at_fork_reinit(PyThread_type_lock *lock); but hardcode the unsigned long to avoid errors for include directive. */ # define NATIVE_TSS_KEY_T unsigned long +#elif defined(HAVE_PTHREAD_STUBS) +# include "cpython/pthread_stubs.h" +# define NATIVE_TSS_KEY_T pthread_key_t #else # error "Require native threads. See https://bugs.python.org/issue31370" #endif diff --git a/Include/cpython/pytime.h b/Include/cpython/pytime.h index 23d4f16a8fd847..e64f3b13e75ca1 100644 --- a/Include/cpython/pytime.h +++ b/Include/cpython/pytime.h @@ -130,6 +130,10 @@ PyAPI_FUNC(_PyTime_t) _PyTime_FromSeconds(int seconds); /* Create a timestamp from a number of nanoseconds. */ PyAPI_FUNC(_PyTime_t) _PyTime_FromNanoseconds(_PyTime_t ns); +/* Create a timestamp from a number of microseconds. + * Clamp to [_PyTime_MIN; _PyTime_MAX] on overflow. */ +PyAPI_FUNC(_PyTime_t) _PyTime_FromMicrosecondsClamp(_PyTime_t us); + /* Create a timestamp from nanoseconds (Python int). */ PyAPI_FUNC(int) _PyTime_FromNanosecondsObject(_PyTime_t *t, PyObject *obj); diff --git a/Include/cpython/tupleobject.h b/Include/cpython/tupleobject.h index 3d9c1aff588634..f6a1f076e03330 100644 --- a/Include/cpython/tupleobject.h +++ b/Include/cpython/tupleobject.h @@ -23,11 +23,9 @@ static inline Py_ssize_t PyTuple_GET_SIZE(PyObject *op) { PyTupleObject *tuple = _PyTuple_CAST(op); return Py_SIZE(tuple); } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyTuple_GET_SIZE(op) PyTuple_GET_SIZE(_PyObject_CAST(op)) -#endif +#define PyTuple_GET_SIZE(op) PyTuple_GET_SIZE(_PyObject_CAST(op)) -#define PyTuple_GET_ITEM(op, index) (_PyTuple_CAST(op)->ob_item[index]) +#define PyTuple_GET_ITEM(op, index) (_PyTuple_CAST(op)->ob_item[(index)]) /* Function *only* to be used to fill in brand new tuples */ static inline void @@ -35,9 +33,7 @@ PyTuple_SET_ITEM(PyObject *op, Py_ssize_t index, PyObject *value) { PyTupleObject *tuple = _PyTuple_CAST(op); tuple->ob_item[index] = value; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 #define PyTuple_SET_ITEM(op, index, value) \ - PyTuple_SET_ITEM(_PyObject_CAST(op), index, _PyObject_CAST(value)) -#endif + PyTuple_SET_ITEM(_PyObject_CAST(op), (index), _PyObject_CAST(value)) PyAPI_FUNC(void) _PyTuple_DebugMallocStats(FILE *out); diff --git a/Include/cpython/unicodeobject.h b/Include/cpython/unicodeobject.h index 3adfcb7a8c1f0e..3ca6ace24c5f74 100644 --- a/Include/cpython/unicodeobject.h +++ b/Include/cpython/unicodeobject.h @@ -188,17 +188,13 @@ PyAPI_FUNC(int) _PyUnicode_CheckConsistency( static inline unsigned int PyUnicode_CHECK_INTERNED(PyObject *op) { return _PyASCIIObject_CAST(op)->state.interned; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyUnicode_CHECK_INTERNED(op) PyUnicode_CHECK_INTERNED(_PyObject_CAST(op)) -#endif +#define PyUnicode_CHECK_INTERNED(op) PyUnicode_CHECK_INTERNED(_PyObject_CAST(op)) /* For backward compatibility */ static inline unsigned int PyUnicode_IS_READY(PyObject* Py_UNUSED(op)) { return 1; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyUnicode_IS_READY(op) PyUnicode_IS_READY(_PyObject_CAST(op)) -#endif +#define PyUnicode_IS_READY(op) PyUnicode_IS_READY(_PyObject_CAST(op)) /* Return true if the string contains only ASCII characters, or 0 if not. The string may be compact (PyUnicode_IS_COMPACT_ASCII) or not, but must be @@ -206,27 +202,21 @@ static inline unsigned int PyUnicode_IS_READY(PyObject* Py_UNUSED(op)) { static inline unsigned int PyUnicode_IS_ASCII(PyObject *op) { return _PyASCIIObject_CAST(op)->state.ascii; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyUnicode_IS_ASCII(op) PyUnicode_IS_ASCII(_PyObject_CAST(op)) -#endif +#define PyUnicode_IS_ASCII(op) PyUnicode_IS_ASCII(_PyObject_CAST(op)) /* Return true if the string is compact or 0 if not. No type checks or Ready calls are performed. */ static inline unsigned int PyUnicode_IS_COMPACT(PyObject *op) { return _PyASCIIObject_CAST(op)->state.compact; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyUnicode_IS_COMPACT(op) PyUnicode_IS_COMPACT(_PyObject_CAST(op)) -#endif +#define PyUnicode_IS_COMPACT(op) PyUnicode_IS_COMPACT(_PyObject_CAST(op)) /* Return true if the string is a compact ASCII string (use PyASCIIObject structure), or 0 if not. No type checks or Ready calls are performed. */ static inline int PyUnicode_IS_COMPACT_ASCII(PyObject *op) { return (_PyASCIIObject_CAST(op)->state.ascii && PyUnicode_IS_COMPACT(op)); } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyUnicode_IS_COMPACT_ASCII(op) PyUnicode_IS_COMPACT_ASCII(_PyObject_CAST(op)) -#endif +#define PyUnicode_IS_COMPACT_ASCII(op) PyUnicode_IS_COMPACT_ASCII(_PyObject_CAST(op)) enum PyUnicode_Kind { /* Return values of the PyUnicode_KIND() function: */ @@ -236,22 +226,14 @@ enum PyUnicode_Kind { }; // PyUnicode_KIND(): Return one of the PyUnicode_*_KIND values defined above. -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030c0000 +// // gh-89653: Converting this macro to a static inline function would introduce // new compiler warnings on "kind < PyUnicode_KIND(str)" (compare signed and // unsigned numbers) where kind type is an int or on // "unsigned int kind = PyUnicode_KIND(str)" (cast signed to unsigned). // Only declare the function as static inline function in the limited C API // version 3.12 which is stricter. -#define PyUnicode_KIND(op) \ - (_PyASCIIObject_CAST(op)->state.kind) -#else -// Limited C API 3.12 and newer -static inline int PyUnicode_KIND(PyObject *op) { - assert(PyUnicode_IS_READY(op)); - return _PyASCIIObject_CAST(op)->state.kind; -} -#endif +#define PyUnicode_KIND(op) (_PyASCIIObject_CAST(op)->state.kind) /* Return a void pointer to the raw unicode buffer. */ static inline void* _PyUnicode_COMPACT_DATA(PyObject *op) { @@ -275,9 +257,7 @@ static inline void* PyUnicode_DATA(PyObject *op) { } return _PyUnicode_NONCOMPACT_DATA(op); } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyUnicode_DATA(op) PyUnicode_DATA(_PyObject_CAST(op)) -#endif +#define PyUnicode_DATA(op) PyUnicode_DATA(_PyObject_CAST(op)) /* Return pointers to the canonical representation cast to unsigned char, Py_UCS2, or Py_UCS4 for direct character access. @@ -292,9 +272,7 @@ static inline void* PyUnicode_DATA(PyObject *op) { static inline Py_ssize_t PyUnicode_GET_LENGTH(PyObject *op) { return _PyASCIIObject_CAST(op)->length; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyUnicode_GET_LENGTH(op) PyUnicode_GET_LENGTH(_PyObject_CAST(op)) -#endif +#define PyUnicode_GET_LENGTH(op) PyUnicode_GET_LENGTH(_PyObject_CAST(op)) /* Write into the canonical representation, this function does not do any sanity checks and is intended for usage in loops. The caller should cache the @@ -319,11 +297,9 @@ static inline void PyUnicode_WRITE(int kind, void *data, _Py_STATIC_CAST(Py_UCS4*, data)[index] = value; } } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 #define PyUnicode_WRITE(kind, data, index, value) \ PyUnicode_WRITE(_Py_STATIC_CAST(int, kind), _Py_CAST(void*, data), \ (index), _Py_STATIC_CAST(Py_UCS4, value)) -#endif /* Read a code point from the string's canonical representation. No checks or ready calls are performed. */ @@ -340,12 +316,10 @@ static inline Py_UCS4 PyUnicode_READ(int kind, assert(kind == PyUnicode_4BYTE_KIND); return _Py_STATIC_CAST(const Py_UCS4*, data)[index]; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 #define PyUnicode_READ(kind, data, index) \ PyUnicode_READ(_Py_STATIC_CAST(int, kind), \ _Py_STATIC_CAST(const void*, data), \ (index)) -#endif /* PyUnicode_READ_CHAR() is less efficient than PyUnicode_READ() because it calls PyUnicode_KIND() and might call it twice. For single reads, use @@ -369,10 +343,8 @@ static inline Py_UCS4 PyUnicode_READ_CHAR(PyObject *unicode, Py_ssize_t index) assert(kind == PyUnicode_4BYTE_KIND); return PyUnicode_4BYTE_DATA(unicode)[index]; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyUnicode_READ_CHAR(unicode, index) \ - PyUnicode_READ_CHAR(_PyObject_CAST(unicode), (index)) -#endif +#define PyUnicode_READ_CHAR(unicode, index) \ + PyUnicode_READ_CHAR(_PyObject_CAST(unicode), (index)) /* Return a maximum character value which is suitable for creating another string based on op. This is always an approximation but more efficient @@ -395,10 +367,8 @@ static inline Py_UCS4 PyUnicode_MAX_CHAR_VALUE(PyObject *op) assert(kind == PyUnicode_4BYTE_KIND); return 0x10ffffU; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyUnicode_MAX_CHAR_VALUE(op) \ - PyUnicode_MAX_CHAR_VALUE(_PyObject_CAST(op)) -#endif +#define PyUnicode_MAX_CHAR_VALUE(op) \ + PyUnicode_MAX_CHAR_VALUE(_PyObject_CAST(op)) /* === Public API ========================================================= */ @@ -417,9 +387,7 @@ static inline int PyUnicode_READY(PyObject* Py_UNUSED(op)) { return 0; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyUnicode_READY(op) PyUnicode_READY(_PyObject_CAST(op)) -#endif +#define PyUnicode_READY(op) PyUnicode_READY(_PyObject_CAST(op)) /* Get a copy of a Unicode string. */ PyAPI_FUNC(PyObject*) _PyUnicode_Copy( diff --git a/Include/cpython/warnings.h b/Include/cpython/warnings.h index 2ef8e3ce9435f4..4e3eb88e8ff447 100644 --- a/Include/cpython/warnings.h +++ b/Include/cpython/warnings.h @@ -17,4 +17,4 @@ PyAPI_FUNC(int) PyErr_WarnExplicitFormat( const char *format, ...); // DEPRECATED: Use PyErr_WarnEx() instead. -#define PyErr_Warn(category, msg) PyErr_WarnEx(category, msg, 1) +#define PyErr_Warn(category, msg) PyErr_WarnEx((category), (msg), 1) diff --git a/Include/cpython/weakrefobject.h b/Include/cpython/weakrefobject.h index 26b364f41d4d7e..fd79fdc2dcc468 100644 --- a/Include/cpython/weakrefobject.h +++ b/Include/cpython/weakrefobject.h @@ -53,6 +53,4 @@ static inline PyObject* PyWeakref_GET_OBJECT(PyObject *ref_obj) { } return Py_None; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyWeakref_GET_OBJECT(ref) PyWeakref_GET_OBJECT(_PyObject_CAST(ref)) -#endif +#define PyWeakref_GET_OBJECT(ref) PyWeakref_GET_OBJECT(_PyObject_CAST(ref)) diff --git a/Include/datetime.h b/Include/datetime.h index bb565201a164d7..b78cc0e8e2e5ac 100644 --- a/Include/datetime.h +++ b/Include/datetime.h @@ -119,39 +119,39 @@ typedef struct // o is a pointer to a time or a datetime object. #define _PyDateTime_HAS_TZINFO(o) (((_PyDateTime_BaseTZInfo *)(o))->hastzinfo) -#define PyDateTime_GET_YEAR(o) ((((PyDateTime_Date*)o)->data[0] << 8) | \ - ((PyDateTime_Date*)o)->data[1]) -#define PyDateTime_GET_MONTH(o) (((PyDateTime_Date*)o)->data[2]) -#define PyDateTime_GET_DAY(o) (((PyDateTime_Date*)o)->data[3]) - -#define PyDateTime_DATE_GET_HOUR(o) (((PyDateTime_DateTime*)o)->data[4]) -#define PyDateTime_DATE_GET_MINUTE(o) (((PyDateTime_DateTime*)o)->data[5]) -#define PyDateTime_DATE_GET_SECOND(o) (((PyDateTime_DateTime*)o)->data[6]) +#define PyDateTime_GET_YEAR(o) ((((PyDateTime_Date*)(o))->data[0] << 8) | \ + ((PyDateTime_Date*)(o))->data[1]) +#define PyDateTime_GET_MONTH(o) (((PyDateTime_Date*)(o))->data[2]) +#define PyDateTime_GET_DAY(o) (((PyDateTime_Date*)(o))->data[3]) + +#define PyDateTime_DATE_GET_HOUR(o) (((PyDateTime_DateTime*)(o))->data[4]) +#define PyDateTime_DATE_GET_MINUTE(o) (((PyDateTime_DateTime*)(o))->data[5]) +#define PyDateTime_DATE_GET_SECOND(o) (((PyDateTime_DateTime*)(o))->data[6]) #define PyDateTime_DATE_GET_MICROSECOND(o) \ - ((((PyDateTime_DateTime*)o)->data[7] << 16) | \ - (((PyDateTime_DateTime*)o)->data[8] << 8) | \ - ((PyDateTime_DateTime*)o)->data[9]) -#define PyDateTime_DATE_GET_FOLD(o) (((PyDateTime_DateTime*)o)->fold) -#define PyDateTime_DATE_GET_TZINFO(o) (_PyDateTime_HAS_TZINFO(o) ? \ + ((((PyDateTime_DateTime*)(o))->data[7] << 16) | \ + (((PyDateTime_DateTime*)(o))->data[8] << 8) | \ + ((PyDateTime_DateTime*)(o))->data[9]) +#define PyDateTime_DATE_GET_FOLD(o) (((PyDateTime_DateTime*)(o))->fold) +#define PyDateTime_DATE_GET_TZINFO(o) (_PyDateTime_HAS_TZINFO((o)) ? \ ((PyDateTime_DateTime *)(o))->tzinfo : Py_None) /* Apply for time instances. */ -#define PyDateTime_TIME_GET_HOUR(o) (((PyDateTime_Time*)o)->data[0]) -#define PyDateTime_TIME_GET_MINUTE(o) (((PyDateTime_Time*)o)->data[1]) -#define PyDateTime_TIME_GET_SECOND(o) (((PyDateTime_Time*)o)->data[2]) +#define PyDateTime_TIME_GET_HOUR(o) (((PyDateTime_Time*)(o))->data[0]) +#define PyDateTime_TIME_GET_MINUTE(o) (((PyDateTime_Time*)(o))->data[1]) +#define PyDateTime_TIME_GET_SECOND(o) (((PyDateTime_Time*)(o))->data[2]) #define PyDateTime_TIME_GET_MICROSECOND(o) \ - ((((PyDateTime_Time*)o)->data[3] << 16) | \ - (((PyDateTime_Time*)o)->data[4] << 8) | \ - ((PyDateTime_Time*)o)->data[5]) -#define PyDateTime_TIME_GET_FOLD(o) (((PyDateTime_Time*)o)->fold) + ((((PyDateTime_Time*)(o))->data[3] << 16) | \ + (((PyDateTime_Time*)(o))->data[4] << 8) | \ + ((PyDateTime_Time*)(o))->data[5]) +#define PyDateTime_TIME_GET_FOLD(o) (((PyDateTime_Time*)(o))->fold) #define PyDateTime_TIME_GET_TZINFO(o) (_PyDateTime_HAS_TZINFO(o) ? \ ((PyDateTime_Time *)(o))->tzinfo : Py_None) /* Apply for time delta instances */ -#define PyDateTime_DELTA_GET_DAYS(o) (((PyDateTime_Delta*)o)->days) -#define PyDateTime_DELTA_GET_SECONDS(o) (((PyDateTime_Delta*)o)->seconds) +#define PyDateTime_DELTA_GET_DAYS(o) (((PyDateTime_Delta*)(o))->days) +#define PyDateTime_DELTA_GET_SECONDS(o) (((PyDateTime_Delta*)(o))->seconds) #define PyDateTime_DELTA_GET_MICROSECONDS(o) \ - (((PyDateTime_Delta*)o)->microseconds) + (((PyDateTime_Delta*)(o))->microseconds) /* Define structure for C API. */ @@ -203,60 +203,60 @@ static PyDateTime_CAPI *PyDateTimeAPI = NULL; #define PyDateTime_TimeZone_UTC PyDateTimeAPI->TimeZone_UTC /* Macros for type checking when not building the Python core. */ -#define PyDate_Check(op) PyObject_TypeCheck(op, PyDateTimeAPI->DateType) -#define PyDate_CheckExact(op) Py_IS_TYPE(op, PyDateTimeAPI->DateType) +#define PyDate_Check(op) PyObject_TypeCheck((op), PyDateTimeAPI->DateType) +#define PyDate_CheckExact(op) Py_IS_TYPE((op), PyDateTimeAPI->DateType) -#define PyDateTime_Check(op) PyObject_TypeCheck(op, PyDateTimeAPI->DateTimeType) -#define PyDateTime_CheckExact(op) Py_IS_TYPE(op, PyDateTimeAPI->DateTimeType) +#define PyDateTime_Check(op) PyObject_TypeCheck((op), PyDateTimeAPI->DateTimeType) +#define PyDateTime_CheckExact(op) Py_IS_TYPE((op), PyDateTimeAPI->DateTimeType) -#define PyTime_Check(op) PyObject_TypeCheck(op, PyDateTimeAPI->TimeType) -#define PyTime_CheckExact(op) Py_IS_TYPE(op, PyDateTimeAPI->TimeType) +#define PyTime_Check(op) PyObject_TypeCheck((op), PyDateTimeAPI->TimeType) +#define PyTime_CheckExact(op) Py_IS_TYPE((op), PyDateTimeAPI->TimeType) -#define PyDelta_Check(op) PyObject_TypeCheck(op, PyDateTimeAPI->DeltaType) -#define PyDelta_CheckExact(op) Py_IS_TYPE(op, PyDateTimeAPI->DeltaType) +#define PyDelta_Check(op) PyObject_TypeCheck((op), PyDateTimeAPI->DeltaType) +#define PyDelta_CheckExact(op) Py_IS_TYPE((op), PyDateTimeAPI->DeltaType) -#define PyTZInfo_Check(op) PyObject_TypeCheck(op, PyDateTimeAPI->TZInfoType) -#define PyTZInfo_CheckExact(op) Py_IS_TYPE(op, PyDateTimeAPI->TZInfoType) +#define PyTZInfo_Check(op) PyObject_TypeCheck((op), PyDateTimeAPI->TZInfoType) +#define PyTZInfo_CheckExact(op) Py_IS_TYPE((op), PyDateTimeAPI->TZInfoType) /* Macros for accessing constructors in a simplified fashion. */ #define PyDate_FromDate(year, month, day) \ - PyDateTimeAPI->Date_FromDate(year, month, day, PyDateTimeAPI->DateType) + PyDateTimeAPI->Date_FromDate((year), (month), (day), PyDateTimeAPI->DateType) #define PyDateTime_FromDateAndTime(year, month, day, hour, min, sec, usec) \ - PyDateTimeAPI->DateTime_FromDateAndTime(year, month, day, hour, \ - min, sec, usec, Py_None, PyDateTimeAPI->DateTimeType) + PyDateTimeAPI->DateTime_FromDateAndTime((year), (month), (day), (hour), \ + (min), (sec), (usec), Py_None, PyDateTimeAPI->DateTimeType) #define PyDateTime_FromDateAndTimeAndFold(year, month, day, hour, min, sec, usec, fold) \ - PyDateTimeAPI->DateTime_FromDateAndTimeAndFold(year, month, day, hour, \ - min, sec, usec, Py_None, fold, PyDateTimeAPI->DateTimeType) + PyDateTimeAPI->DateTime_FromDateAndTimeAndFold((year), (month), (day), (hour), \ + (min), (sec), (usec), Py_None, (fold), PyDateTimeAPI->DateTimeType) #define PyTime_FromTime(hour, minute, second, usecond) \ - PyDateTimeAPI->Time_FromTime(hour, minute, second, usecond, \ + PyDateTimeAPI->Time_FromTime((hour), (minute), (second), (usecond), \ Py_None, PyDateTimeAPI->TimeType) #define PyTime_FromTimeAndFold(hour, minute, second, usecond, fold) \ - PyDateTimeAPI->Time_FromTimeAndFold(hour, minute, second, usecond, \ - Py_None, fold, PyDateTimeAPI->TimeType) + PyDateTimeAPI->Time_FromTimeAndFold((hour), (minute), (second), (usecond), \ + Py_None, (fold), PyDateTimeAPI->TimeType) #define PyDelta_FromDSU(days, seconds, useconds) \ - PyDateTimeAPI->Delta_FromDelta(days, seconds, useconds, 1, \ + PyDateTimeAPI->Delta_FromDelta((days), (seconds), (useconds), 1, \ PyDateTimeAPI->DeltaType) #define PyTimeZone_FromOffset(offset) \ - PyDateTimeAPI->TimeZone_FromTimeZone(offset, NULL) + PyDateTimeAPI->TimeZone_FromTimeZone((offset), NULL) #define PyTimeZone_FromOffsetAndName(offset, name) \ - PyDateTimeAPI->TimeZone_FromTimeZone(offset, name) + PyDateTimeAPI->TimeZone_FromTimeZone((offset), (name)) /* Macros supporting the DB API. */ #define PyDateTime_FromTimestamp(args) \ PyDateTimeAPI->DateTime_FromTimestamp( \ - (PyObject*) (PyDateTimeAPI->DateTimeType), args, NULL) + (PyObject*) (PyDateTimeAPI->DateTimeType), (args), NULL) #define PyDate_FromTimestamp(args) \ PyDateTimeAPI->Date_FromTimestamp( \ - (PyObject*) (PyDateTimeAPI->DateType), args) + (PyObject*) (PyDateTimeAPI->DateType), (args)) #endif /* !defined(_PY_DATETIME_IMPL) */ diff --git a/Include/dictobject.h b/Include/dictobject.h index a6233d8ae2512a..e7fcb44d0cf9a9 100644 --- a/Include/dictobject.h +++ b/Include/dictobject.h @@ -16,7 +16,7 @@ PyAPI_DATA(PyTypeObject) PyDict_Type; #define PyDict_Check(op) \ PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_DICT_SUBCLASS) -#define PyDict_CheckExact(op) Py_IS_TYPE(op, &PyDict_Type) +#define PyDict_CheckExact(op) Py_IS_TYPE((op), &PyDict_Type) PyAPI_FUNC(PyObject *) PyDict_New(void); PyAPI_FUNC(PyObject *) PyDict_GetItem(PyObject *mp, PyObject *key); @@ -67,9 +67,9 @@ PyAPI_DATA(PyTypeObject) PyDictKeys_Type; PyAPI_DATA(PyTypeObject) PyDictValues_Type; PyAPI_DATA(PyTypeObject) PyDictItems_Type; -#define PyDictKeys_Check(op) PyObject_TypeCheck(op, &PyDictKeys_Type) -#define PyDictValues_Check(op) PyObject_TypeCheck(op, &PyDictValues_Type) -#define PyDictItems_Check(op) PyObject_TypeCheck(op, &PyDictItems_Type) +#define PyDictKeys_Check(op) PyObject_TypeCheck((op), &PyDictKeys_Type) +#define PyDictValues_Check(op) PyObject_TypeCheck((op), &PyDictValues_Type) +#define PyDictItems_Check(op) PyObject_TypeCheck((op), &PyDictItems_Type) /* This excludes Values, since they are not sets. */ # define PyDictViewSet_Check(op) \ (PyDictKeys_Check(op) || PyDictItems_Check(op)) diff --git a/Include/fileobject.h b/Include/fileobject.h index 4c983e7b5daa8a..02bd7c915a23f7 100644 --- a/Include/fileobject.h +++ b/Include/fileobject.h @@ -19,14 +19,14 @@ PyAPI_FUNC(int) PyObject_AsFileDescriptor(PyObject *); /* The default encoding used by the platform file system APIs If non-NULL, this is different than the default encoding for strings */ -PyAPI_DATA(const char *) Py_FileSystemDefaultEncoding; +Py_DEPRECATED(3.12) PyAPI_DATA(const char *) Py_FileSystemDefaultEncoding; #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03060000 -PyAPI_DATA(const char *) Py_FileSystemDefaultEncodeErrors; +Py_DEPRECATED(3.12) PyAPI_DATA(const char *) Py_FileSystemDefaultEncodeErrors; #endif PyAPI_DATA(int) Py_HasFileSystemDefaultEncoding; #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03070000 -PyAPI_DATA(int) Py_UTF8Mode; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_UTF8Mode; #endif /* A routine to check if a file descriptor can be select()-ed. */ diff --git a/Include/floatobject.h b/Include/floatobject.h index 9d2fff3097e8ec..999441ac536e1d 100644 --- a/Include/floatobject.h +++ b/Include/floatobject.h @@ -14,7 +14,7 @@ extern "C" { PyAPI_DATA(PyTypeObject) PyFloat_Type; #define PyFloat_Check(op) PyObject_TypeCheck(op, &PyFloat_Type) -#define PyFloat_CheckExact(op) Py_IS_TYPE(op, &PyFloat_Type) +#define PyFloat_CheckExact(op) Py_IS_TYPE((op), &PyFloat_Type) #define Py_RETURN_NAN return PyFloat_FromDouble(Py_NAN) diff --git a/Include/import.h b/Include/import.h index a87677bb10c7f4..5d5f3425b8e715 100644 --- a/Include/import.h +++ b/Include/import.h @@ -67,7 +67,7 @@ PyAPI_FUNC(PyObject *) PyImport_ImportModuleLevelObject( #endif #define PyImport_ImportModuleEx(n, g, l, f) \ - PyImport_ImportModuleLevel(n, g, l, f, 0) + PyImport_ImportModuleLevel((n), (g), (l), (f), 0) PyAPI_FUNC(PyObject *) PyImport_GetImporter(PyObject *path); PyAPI_FUNC(PyObject *) PyImport_Import(PyObject *name); diff --git a/Include/internal/pycore_accu.h b/Include/internal/pycore_accu.h deleted file mode 100644 index d346222e4dd0c9..00000000000000 --- a/Include/internal/pycore_accu.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef Py_LIMITED_API -#ifndef Py_INTERNAL_ACCU_H -#define Py_INTERNAL_ACCU_H -#ifdef __cplusplus -extern "C" { -#endif - -/*** This is a private API for use by the interpreter and the stdlib. - *** Its definition may be changed or removed at any moment. - ***/ - -#ifndef Py_BUILD_CORE -# error "this header requires Py_BUILD_CORE define" -#endif - -/* - * A two-level accumulator of unicode objects that avoids both the overhead - * of keeping a huge number of small separate objects, and the quadratic - * behaviour of using a naive repeated concatenation scheme. - */ - -#undef small /* defined by some Windows headers */ - -typedef struct { - PyObject *large; /* A list of previously accumulated large strings */ - PyObject *small; /* Pending small strings */ -} _PyAccu; - -PyAPI_FUNC(int) _PyAccu_Init(_PyAccu *acc); -PyAPI_FUNC(int) _PyAccu_Accumulate(_PyAccu *acc, PyObject *unicode); -PyAPI_FUNC(PyObject *) _PyAccu_FinishAsList(_PyAccu *acc); -PyAPI_FUNC(PyObject *) _PyAccu_Finish(_PyAccu *acc); -PyAPI_FUNC(void) _PyAccu_Destroy(_PyAccu *acc); - -#ifdef __cplusplus -} -#endif -#endif /* !Py_INTERNAL_ACCU_H */ -#endif /* !Py_LIMITED_API */ diff --git a/Include/internal/pycore_asdl.h b/Include/internal/pycore_asdl.h index 5b01c7a66599e9..afeada88d13e24 100644 --- a/Include/internal/pycore_asdl.h +++ b/Include/internal/pycore_asdl.h @@ -91,7 +91,7 @@ asdl_ ## NAME ## _seq *_Py_asdl_ ## NAME ## _seq_new(Py_ssize_t size, PyArena *a (S)->typed_elements[_asdl_i] = (V); \ } while (0) #else -# define asdl_seq_SET(S, I, V) _Py_RVALUE((S)->typed_elements[I] = (V)) +# define asdl_seq_SET(S, I, V) _Py_RVALUE((S)->typed_elements[(I)] = (V)) #endif #ifdef Py_DEBUG @@ -103,7 +103,7 @@ asdl_ ## NAME ## _seq *_Py_asdl_ ## NAME ## _seq_new(Py_ssize_t size, PyArena *a (S)->elements[_asdl_i] = (V); \ } while (0) #else -# define asdl_seq_SET_UNTYPED(S, I, V) _Py_RVALUE((S)->elements[I] = (V)) +# define asdl_seq_SET_UNTYPED(S, I, V) _Py_RVALUE((S)->elements[(I)] = (V)) #endif #ifdef __cplusplus diff --git a/Include/internal/pycore_ast_state.h b/Include/internal/pycore_ast_state.h index da78bba3b69bdf..f15b4905eed14b 100644 --- a/Include/internal/pycore_ast_state.h +++ b/Include/internal/pycore_ast_state.h @@ -12,6 +12,8 @@ extern "C" { struct ast_state { int initialized; + int recursion_depth; + int recursion_limit; PyObject *AST_type; PyObject *Add_singleton; PyObject *Add_type; diff --git a/Include/internal/pycore_atomic.h b/Include/internal/pycore_atomic.h index 3d42e54464c4c7..425d69f868b52b 100644 --- a/Include/internal/pycore_atomic.h +++ b/Include/internal/pycore_atomic.h @@ -236,7 +236,7 @@ _Py_ANNOTATE_MEMORY_ORDER(const volatile void *address, _Py_memory_order order) in hardware they will fall back to a full memory barrier as well. This might affect performance but likely only in some very specific and - hard to meassure scenario. + hard to measure scenario. */ #if defined(_M_IX86) || defined(_M_X64) typedef enum _Py_memory_order { diff --git a/Include/internal/pycore_ceval.h b/Include/internal/pycore_ceval.h index 972eb926b3fa26..4914948c6ca744 100644 --- a/Include/internal/pycore_ceval.h +++ b/Include/internal/pycore_ceval.h @@ -12,11 +12,12 @@ extern "C" { struct pyruntimestate; struct _ceval_runtime_state; -/* WASI has limited call stack. wasmtime 0.36 can handle sufficient amount of - C stack frames for little more than 750 recursions. */ +/* WASI has limited call stack. Python's recursion limit depends on code + layout, optimization, and WASI runtime. Wasmtime can handle about 700-750 + recursions, sometimes less. 600 is a more conservative limit. */ #ifndef Py_DEFAULT_RECURSION_LIMIT # ifdef __wasi__ -# define Py_DEFAULT_RECURSION_LIMIT 750 +# define Py_DEFAULT_RECURSION_LIMIT 600 # else # define Py_DEFAULT_RECURSION_LIMIT 1000 # endif @@ -64,6 +65,27 @@ extern PyObject* _PyEval_BuiltinsFromGlobals( PyThreadState *tstate, PyObject *globals); +// Trampoline API + +typedef struct { + // Callback to initialize the trampoline state + void* (*init_state)(void); + // Callback to register every trampoline being created + void (*write_state)(void* state, const void *code_addr, + unsigned int code_size, PyCodeObject* code); + // Callback to free the trampoline state + int (*free_state)(void* state); +} _PyPerf_Callbacks; + +extern int _PyPerfTrampoline_SetCallbacks(_PyPerf_Callbacks *); +extern void _PyPerfTrampoline_GetCallbacks(_PyPerf_Callbacks *); +extern int _PyPerfTrampoline_Init(int activate); +extern int _PyPerfTrampoline_Fini(void); +extern int _PyIsPerfTrampolineActive(void); +extern PyStatus _PyPerfTrampoline_AfterFork_Child(void); +#ifdef PY_HAVE_PERF_TRAMPOLINE +extern _PyPerf_Callbacks _Py_perfmap_callbacks; +#endif static inline PyObject* _PyEval_EvalFrame(PyThreadState *tstate, struct _PyInterpreterFrame *frame, int throwflag) @@ -81,11 +103,7 @@ _PyEval_Vector(PyThreadState *tstate, PyObject* const* args, size_t argcount, PyObject *kwnames); -#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS -extern int _PyEval_ThreadsInitialized(PyInterpreterState *interp); -#else extern int _PyEval_ThreadsInitialized(struct pyruntimestate *runtime); -#endif extern PyStatus _PyEval_InitGIL(PyThreadState *tstate); extern void _PyEval_FiniGIL(PyInterpreterState *interp); @@ -136,6 +154,9 @@ extern struct _PyInterpreterFrame* _PyEval_GetFrame(void); extern PyObject* _Py_MakeCoro(PyFunctionObject *func); +extern int _Py_HandlePending(PyThreadState *tstate); + + #ifdef __cplusplus } #endif diff --git a/Include/internal/pycore_code.h b/Include/internal/pycore_code.h index 2cfa319f2d2902..bf5945435c1774 100644 --- a/Include/internal/pycore_code.h +++ b/Include/internal/pycore_code.h @@ -58,19 +58,18 @@ typedef struct { _Py_CODEUNIT index; } _PyAttrCache; -#define INLINE_CACHE_ENTRIES_LOAD_ATTR CACHE_ENTRIES(_PyAttrCache) - -#define INLINE_CACHE_ENTRIES_STORE_ATTR CACHE_ENTRIES(_PyAttrCache) - typedef struct { _Py_CODEUNIT counter; _Py_CODEUNIT type_version[2]; - _Py_CODEUNIT dict_offset; _Py_CODEUNIT keys_version[2]; _Py_CODEUNIT descr[4]; } _PyLoadMethodCache; -#define INLINE_CACHE_ENTRIES_LOAD_METHOD CACHE_ENTRIES(_PyLoadMethodCache) + +// MUST be the max(_PyAttrCache, _PyLoadMethodCache) +#define INLINE_CACHE_ENTRIES_LOAD_ATTR CACHE_ENTRIES(_PyLoadMethodCache) + +#define INLINE_CACHE_ENTRIES_STORE_ATTR CACHE_ENTRIES(_PyAttrCache) typedef struct { _Py_CODEUNIT counter; @@ -86,6 +85,12 @@ typedef struct { #define INLINE_CACHE_ENTRIES_STORE_SUBSCR CACHE_ENTRIES(_PyStoreSubscrCache) +typedef struct { + _Py_CODEUNIT counter; +} _PyForIterCache; + +#define INLINE_CACHE_ENTRIES_FOR_ITER CACHE_ENTRIES(_PyForIterCache) + #define QUICKENING_WARMUP_DELAY 8 /* We want to compare to zero for efficiency, so we offset values accordingly */ @@ -113,6 +118,7 @@ struct callable_cache { PyObject *isinstance; PyObject *len; PyObject *list_append; + PyObject *object__getattribute__; }; /* "Locals plus" for a code object is the set of locals + cell vars + @@ -227,9 +233,6 @@ extern void _PyLineTable_InitAddressRange( extern int _PyLineTable_NextAddressRange(PyCodeAddressRange *range); extern int _PyLineTable_PreviousAddressRange(PyCodeAddressRange *range); - -#define ADAPTIVE_CACHE_BACKOFF 64 - /* Specialization functions */ extern int _Py_Specialize_LoadAttr(PyObject *owner, _Py_CODEUNIT *instr, @@ -237,8 +240,6 @@ extern int _Py_Specialize_LoadAttr(PyObject *owner, _Py_CODEUNIT *instr, extern int _Py_Specialize_StoreAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name); extern int _Py_Specialize_LoadGlobal(PyObject *globals, PyObject *builtins, _Py_CODEUNIT *instr, PyObject *name); -extern int _Py_Specialize_LoadMethod(PyObject *owner, _Py_CODEUNIT *instr, - PyObject *name); extern int _Py_Specialize_BinarySubscr(PyObject *sub, PyObject *container, _Py_CODEUNIT *instr); extern int _Py_Specialize_StoreSubscr(PyObject *container, PyObject *sub, _Py_CODEUNIT *instr); extern int _Py_Specialize_Call(PyObject *callable, _Py_CODEUNIT *instr, @@ -249,6 +250,7 @@ extern void _Py_Specialize_CompareOp(PyObject *lhs, PyObject *rhs, _Py_CODEUNIT *instr, int oparg); extern void _Py_Specialize_UnpackSequence(PyObject *seq, _Py_CODEUNIT *instr, int oparg); +extern void _Py_Specialize_ForIter(PyObject *iter, _Py_CODEUNIT *instr); /* Deallocator function for static codeobjects used in deepfreeze.py */ extern void _PyStaticCode_Dealloc(PyCodeObject *co); @@ -258,16 +260,16 @@ extern int _PyStaticCode_InternStrings(PyCodeObject *co); #ifdef Py_STATS -#define STAT_INC(opname, name) _py_stats.opcode_stats[opname].specialization.name++ -#define STAT_DEC(opname, name) _py_stats.opcode_stats[opname].specialization.name-- -#define OPCODE_EXE_INC(opname) _py_stats.opcode_stats[opname].execution_count++ -#define CALL_STAT_INC(name) _py_stats.call_stats.name++ -#define OBJECT_STAT_INC(name) _py_stats.object_stats.name++ +#define STAT_INC(opname, name) do { if (_py_stats) _py_stats->opcode_stats[opname].specialization.name++; } while (0) +#define STAT_DEC(opname, name) do { if (_py_stats) _py_stats->opcode_stats[opname].specialization.name--; } while (0) +#define OPCODE_EXE_INC(opname) do { if (_py_stats) _py_stats->opcode_stats[opname].execution_count++; } while (0) +#define CALL_STAT_INC(name) do { if (_py_stats) _py_stats->call_stats.name++; } while (0) +#define OBJECT_STAT_INC(name) do { if (_py_stats) _py_stats->object_stats.name++; } while (0) #define OBJECT_STAT_INC_COND(name, cond) \ - do { if (cond) _py_stats.object_stats.name++; } while (0) -#define EVAL_CALL_STAT_INC(name) _py_stats.call_stats.eval_calls[name]++ + do { if (_py_stats && cond) _py_stats->object_stats.name++; } while (0) +#define EVAL_CALL_STAT_INC(name) do { if (_py_stats) _py_stats->call_stats.eval_calls[name]++; } while (0) #define EVAL_CALL_STAT_INC_IF_FUNCTION(name, callable) \ - do { if (PyFunction_Check(callable)) _py_stats.call_stats.eval_calls[name]++; } while (0) + do { if (_py_stats && PyFunction_Check(callable)) _py_stats->call_stats.eval_calls[name]++; } while (0) // Used by the _opcode extension which is built as a shared library PyAPI_FUNC(PyObject*) _Py_GetSpecializationStats(void); @@ -283,110 +285,68 @@ PyAPI_FUNC(PyObject*) _Py_GetSpecializationStats(void); #define EVAL_CALL_STAT_INC_IF_FUNCTION(name, callable) ((void)0) #endif // !Py_STATS -// Cache values are only valid in memory, so use native endianness. -#ifdef WORDS_BIGENDIAN +// Utility functions for reading/writing 32/64-bit values in the inline caches. +// Great care should be taken to ensure that these functions remain correct and +// performant! They should compile to just "move" instructions on all supported +// compilers and platforms. + +// We use memcpy to let the C compiler handle unaligned accesses and endianness +// issues for us. It also seems to produce better code than manual copying for +// most compilers (see https://blog.regehr.org/archives/959 for more info). static inline void write_u32(uint16_t *p, uint32_t val) { - p[0] = (uint16_t)(val >> 16); - p[1] = (uint16_t)(val >> 0); + memcpy(p, &val, sizeof(val)); } static inline void write_u64(uint16_t *p, uint64_t val) { - p[0] = (uint16_t)(val >> 48); - p[1] = (uint16_t)(val >> 32); - p[2] = (uint16_t)(val >> 16); - p[3] = (uint16_t)(val >> 0); -} - -static inline uint32_t -read_u32(uint16_t *p) -{ - uint32_t val = 0; - val |= (uint32_t)p[0] << 16; - val |= (uint32_t)p[1] << 0; - return val; + memcpy(p, &val, sizeof(val)); } -static inline uint64_t -read_u64(uint16_t *p) -{ - uint64_t val = 0; - val |= (uint64_t)p[0] << 48; - val |= (uint64_t)p[1] << 32; - val |= (uint64_t)p[2] << 16; - val |= (uint64_t)p[3] << 0; - return val; -} - -#else - static inline void -write_u32(uint16_t *p, uint32_t val) +write_obj(uint16_t *p, PyObject *val) { - p[0] = (uint16_t)(val >> 0); - p[1] = (uint16_t)(val >> 16); -} - -static inline void -write_u64(uint16_t *p, uint64_t val) -{ - p[0] = (uint16_t)(val >> 0); - p[1] = (uint16_t)(val >> 16); - p[2] = (uint16_t)(val >> 32); - p[3] = (uint16_t)(val >> 48); + memcpy(p, &val, sizeof(val)); } static inline uint32_t read_u32(uint16_t *p) { - uint32_t val = 0; - val |= (uint32_t)p[0] << 0; - val |= (uint32_t)p[1] << 16; + uint32_t val; + memcpy(&val, p, sizeof(val)); return val; } static inline uint64_t read_u64(uint16_t *p) { - uint64_t val = 0; - val |= (uint64_t)p[0] << 0; - val |= (uint64_t)p[1] << 16; - val |= (uint64_t)p[2] << 32; - val |= (uint64_t)p[3] << 48; + uint64_t val; + memcpy(&val, p, sizeof(val)); return val; } -#endif - -static inline void -write_obj(uint16_t *p, PyObject *obj) -{ - uintptr_t val = (uintptr_t)obj; -#if SIZEOF_VOID_P == 8 - write_u64(p, val); -#elif SIZEOF_VOID_P == 4 - write_u32(p, val); -#else - #error "SIZEOF_VOID_P must be 4 or 8" -#endif -} - static inline PyObject * read_obj(uint16_t *p) { - uintptr_t val; -#if SIZEOF_VOID_P == 8 - val = read_u64(p); -#elif SIZEOF_VOID_P == 4 - val = read_u32(p); -#else - #error "SIZEOF_VOID_P must be 4 or 8" -#endif - return (PyObject *)val; + PyObject *val; + memcpy(&val, p, sizeof(val)); + return val; +} + +/* See Objects/exception_handling_notes.txt for details. + */ +static inline unsigned char * +parse_varint(unsigned char *p, int *result) { + int val = p[0] & 63; + while (p[0] & 64) { + p++; + val = (val << 6) | (p[0] & 63); + } + *result = val; + return p+1; } static inline int @@ -423,6 +383,79 @@ write_location_entry_start(uint8_t *ptr, int code, int length) } +/** Counters + * The first 16-bit value in each inline cache is a counter. + * When counting misses, the counter is treated as a simple unsigned value. + * + * When counting executions until the next specialization attempt, + * exponential backoff is used to reduce the number of specialization failures. + * The high 12 bits store the counter, the low 4 bits store the backoff exponent. + * On a specialization failure, the backoff exponent is incremented and the + * counter set to (2**backoff - 1). + * Backoff == 6 -> starting counter == 63, backoff == 10 -> starting counter == 1023. + */ + +/* With a 16-bit counter, we have 12 bits for the counter value, and 4 bits for the backoff */ +#define ADAPTIVE_BACKOFF_BITS 4 +/* The initial counter value is 31 == 2**ADAPTIVE_BACKOFF_START - 1 */ +#define ADAPTIVE_BACKOFF_START 5 + +#define MAX_BACKOFF_VALUE (16 - ADAPTIVE_BACKOFF_BITS) + + +static inline uint16_t +adaptive_counter_bits(int value, int backoff) { + return (value << ADAPTIVE_BACKOFF_BITS) | + (backoff & ((1< MAX_BACKOFF_VALUE) { + backoff = MAX_BACKOFF_VALUE; + } + unsigned int value = (1 << backoff) - 1; + return adaptive_counter_bits(value, backoff); +} + + +/* Line array cache for tracing */ + +extern int _PyCode_CreateLineArray(PyCodeObject *co); + +static inline int +_PyCode_InitLineArray(PyCodeObject *co) +{ + if (co->_co_linearray) { + return 0; + } + return _PyCode_CreateLineArray(co); +} + +static inline int +_PyCode_LineNumberFromArray(PyCodeObject *co, int index) +{ + assert(co->_co_linearray != NULL); + assert(index >= 0); + assert(index < Py_SIZE(co)); + if (co->_co_linearray_entry_size == 2) { + return ((int16_t *)co->_co_linearray)[index]; + } + else { + assert(co->_co_linearray_entry_size == 4); + return ((int32_t *)co->_co_linearray)[index]; + } +} + + #ifdef __cplusplus } #endif diff --git a/Include/internal/pycore_compile.h b/Include/internal/pycore_compile.h index 06a6082cddae6a..1a628a08ca4ebf 100644 --- a/Include/internal/pycore_compile.h +++ b/Include/internal/pycore_compile.h @@ -38,6 +38,11 @@ extern int _PyAST_Optimize( struct _arena *arena, _PyASTOptimizeState *state); +/* Access compiler internals for unit testing */ +PyAPI_FUNC(PyObject*) _PyCompile_OptimizeCfg( + PyObject *instructions, + PyObject *consts); + #ifdef __cplusplus } #endif diff --git a/Include/internal/pycore_descrobject.h b/Include/internal/pycore_descrobject.h new file mode 100644 index 00000000000000..76378569df90e3 --- /dev/null +++ b/Include/internal/pycore_descrobject.h @@ -0,0 +1,26 @@ +#ifndef Py_INTERNAL_DESCROBJECT_H +#define Py_INTERNAL_DESCROBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +typedef struct { + PyObject_HEAD + PyObject *prop_get; + PyObject *prop_set; + PyObject *prop_del; + PyObject *prop_doc; + PyObject *prop_name; + int getter_doc; +} propertyobject; + +typedef propertyobject _PyPropertyObject; + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_DESCROBJECT_H */ diff --git a/Include/internal/pycore_dict.h b/Include/internal/pycore_dict.h index 24d2a711878ced..464092996cae00 100644 --- a/Include/internal/pycore_dict.h +++ b/Include/internal/pycore_dict.h @@ -62,7 +62,7 @@ extern Py_ssize_t _PyDict_KeysSize(PyDictKeysObject *keys); */ extern Py_ssize_t _Py_dict_lookup(PyDictObject *mp, PyObject *key, Py_hash_t hash, PyObject **value_addr); -extern Py_ssize_t _PyDict_GetItemHint(PyDictObject *, PyObject *, Py_ssize_t, PyObject **); +extern Py_ssize_t _PyDict_LookupIndex(PyDictObject *, PyObject *); extern Py_ssize_t _PyDictKeys_StringLookup(PyDictKeysObject* dictkeys, PyObject *key); extern PyObject *_PyDict_LoadGlobal(PyDictObject *, PyDictObject *, PyObject *); @@ -141,22 +141,15 @@ struct _dictvalues { #define DK_LOG_SIZE(dk) ((dk)->dk_log2_size) #if SIZEOF_VOID_P > 4 #define DK_SIZE(dk) (((int64_t)1)<dk_kind == DICT_KEYS_GENERAL), (PyDictKeyEntry*)(&((int8_t*)((dk)->dk_indices))[(size_t)1 << (dk)->dk_log2_index_bytes])) + (assert((dk)->dk_kind == DICT_KEYS_GENERAL), \ + (PyDictKeyEntry*)(&((int8_t*)((dk)->dk_indices))[(size_t)1 << (dk)->dk_log2_index_bytes])) #define DK_UNICODE_ENTRIES(dk) \ - (assert(dk->dk_kind != DICT_KEYS_GENERAL), (PyDictUnicodeEntry*)(&((int8_t*)((dk)->dk_indices))[(size_t)1 << (dk)->dk_log2_index_bytes])) + (assert((dk)->dk_kind != DICT_KEYS_GENERAL), \ + (PyDictUnicodeEntry*)(&((int8_t*)((dk)->dk_indices))[(size_t)1 << (dk)->dk_log2_index_bytes])) #define DK_IS_UNICODE(dk) ((dk)->dk_kind != DICT_KEYS_GENERAL) extern uint64_t _pydict_global_version; diff --git a/Include/internal/pycore_frame.h b/Include/internal/pycore_frame.h index 405afd67d2274a..5bd0a7f2f517ef 100644 --- a/Include/internal/pycore_frame.h +++ b/Include/internal/pycore_frame.h @@ -6,6 +6,7 @@ extern "C" { #include #include +#include "pycore_code.h" // STATS /* See Objects/frame_layout.md for an explanation of the frame stack * including explanation of the PyFrameObject and _PyInterpreterFrame @@ -46,7 +47,7 @@ enum _frameowner { typedef struct _PyInterpreterFrame { /* "Specials" section */ - PyFunctionObject *f_func; /* Strong reference */ + PyObject *f_funcobj; /* Strong reference */ PyObject *f_globals; /* Borrowed reference */ PyObject *f_builtins; /* Borrowed reference */ PyObject *f_locals; /* Strong reference, may be NULL */ @@ -94,20 +95,20 @@ static inline void _PyFrame_StackPush(_PyInterpreterFrame *f, PyObject *value) { void _PyFrame_Copy(_PyInterpreterFrame *src, _PyInterpreterFrame *dest); -/* Consumes reference to func */ +/* Consumes reference to func and locals */ static inline void _PyFrame_InitializeSpecials( _PyInterpreterFrame *frame, PyFunctionObject *func, - PyObject *locals, int nlocalsplus) + PyObject *locals, PyCodeObject *code) { - frame->f_func = func; - frame->f_code = (PyCodeObject *)Py_NewRef(func->func_code); + frame->f_funcobj = (PyObject *)func; + frame->f_code = (PyCodeObject *)Py_NewRef(code); frame->f_builtins = func->func_builtins; frame->f_globals = func->func_globals; - frame->f_locals = Py_XNewRef(locals); - frame->stacktop = nlocalsplus; + frame->f_locals = locals; + frame->stacktop = code->co_nlocalsplus; frame->frame_obj = NULL; - frame->prev_instr = _PyCode_CODE(frame->f_code) - 1; + frame->prev_instr = _PyCode_CODE(code) - 1; frame->is_entry = false; frame->owner = FRAME_OWNED_BY_THREAD; } @@ -133,6 +134,21 @@ _PyFrame_SetStackPointer(_PyInterpreterFrame *frame, PyObject **stack_pointer) frame->stacktop = (int)(stack_pointer - frame->localsplus); } +/* Determine whether a frame is incomplete. + * A frame is incomplete if it is part way through + * creating cell objects or a generator or coroutine. + * + * Frames on the frame stack are incomplete until the + * first RESUME instruction. + * Frames owned by a generator are always complete. + */ +static inline bool +_PyFrame_IsIncomplete(_PyInterpreterFrame *frame) +{ + return frame->owner != FRAME_OWNED_BY_GENERATOR && + frame->prev_instr < _PyCode_CODE(frame->f_code) + frame->f_code->_co_firsttraceable; +} + /* For use by _PyFrame_GetFrameObject Do not call directly. */ PyFrameObject * @@ -144,6 +160,8 @@ _PyFrame_MakeAndSetFrameObject(_PyInterpreterFrame *frame); static inline PyFrameObject * _PyFrame_GetFrameObject(_PyInterpreterFrame *frame) { + + assert(!_PyFrame_IsIncomplete(frame)); PyFrameObject *res = frame->frame_obj; if (res != NULL) { return res; @@ -172,29 +190,37 @@ _PyFrame_FastToLocalsWithError(_PyInterpreterFrame *frame); void _PyFrame_LocalsToFast(_PyInterpreterFrame *frame, int clear); -extern _PyInterpreterFrame * -_PyThreadState_BumpFramePointerSlow(PyThreadState *tstate, size_t size); - -static inline _PyInterpreterFrame * -_PyThreadState_BumpFramePointer(PyThreadState *tstate, size_t size) +static inline bool +_PyThreadState_HasStackSpace(PyThreadState *tstate, int size) { - PyObject **base = tstate->datastack_top; - if (base) { - PyObject **top = base + size; - assert(tstate->datastack_limit); - if (top < tstate->datastack_limit) { - tstate->datastack_top = top; - return (_PyInterpreterFrame *)base; - } - } - return _PyThreadState_BumpFramePointerSlow(tstate, size); + assert( + (tstate->datastack_top == NULL && tstate->datastack_limit == NULL) + || + (tstate->datastack_top != NULL && tstate->datastack_limit != NULL) + ); + return tstate->datastack_top != NULL && + size < tstate->datastack_limit - tstate->datastack_top; } +extern _PyInterpreterFrame * +_PyThreadState_PushFrame(PyThreadState *tstate, size_t size); + void _PyThreadState_PopFrame(PyThreadState *tstate, _PyInterpreterFrame *frame); -/* Consume reference to func */ -_PyInterpreterFrame * -_PyFrame_Push(PyThreadState *tstate, PyFunctionObject *func); +/* Pushes a frame without checking for space. + * Must be guarded by _PyThreadState_HasStackSpace() + * Consumes reference to func. */ +static inline _PyInterpreterFrame * +_PyFrame_PushUnchecked(PyThreadState *tstate, PyFunctionObject *func) +{ + CALL_STAT_INC(frames_pushed); + PyCodeObject *code = (PyCodeObject *)func->func_code; + _PyInterpreterFrame *new_frame = (_PyInterpreterFrame *)tstate->datastack_top; + tstate->datastack_top += code->co_framesize; + assert(tstate->datastack_top < tstate->datastack_limit); + _PyFrame_InitializeSpecials(new_frame, func, NULL, code); + return new_frame; +} int _PyInterpreterFrame_GetLine(_PyInterpreterFrame *frame); diff --git a/Include/internal/pycore_global_objects.h b/Include/internal/pycore_global_objects.h index 98673d4efcedcc..82e89db7b1b750 100644 --- a/Include/internal/pycore_global_objects.h +++ b/Include/internal/pycore_global_objects.h @@ -45,6 +45,8 @@ struct _Py_global_objects { _PyGC_Head_UNUSED _tuple_empty_gc_not_used; PyTupleObject tuple_empty; } singletons; + + PyObject *interned; }; diff --git a/Include/internal/pycore_global_strings.h b/Include/internal/pycore_global_strings.h index cfa8ae99d1b6d9..1523eef73931c9 100644 --- a/Include/internal/pycore_global_strings.h +++ b/Include/internal/pycore_global_strings.h @@ -90,6 +90,7 @@ struct _Py_global_strings { STRUCT_FOR_ID(__delete__) STRUCT_FOR_ID(__delitem__) STRUCT_FOR_ID(__dict__) + STRUCT_FOR_ID(__dictoffset__) STRUCT_FOR_ID(__dir__) STRUCT_FOR_ID(__divmod__) STRUCT_FOR_ID(__doc__) @@ -202,9 +203,11 @@ struct _Py_global_strings { STRUCT_FOR_ID(__truediv__) STRUCT_FOR_ID(__trunc__) STRUCT_FOR_ID(__typing_is_unpacked_typevartuple__) + STRUCT_FOR_ID(__typing_prepare_subst__) STRUCT_FOR_ID(__typing_subst__) STRUCT_FOR_ID(__typing_unpacked_tuple_args__) STRUCT_FOR_ID(__warningregistry__) + STRUCT_FOR_ID(__weaklistoffset__) STRUCT_FOR_ID(__weakref__) STRUCT_FOR_ID(__xor__) STRUCT_FOR_ID(_abc_impl) @@ -212,6 +215,7 @@ struct _Py_global_strings { STRUCT_FOR_ID(_blksize) STRUCT_FOR_ID(_bootstrap) STRUCT_FOR_ID(_dealloc_warn) + STRUCT_FOR_ID(_feature_version) STRUCT_FOR_ID(_finalizing) STRUCT_FOR_ID(_find_and_load) STRUCT_FOR_ID(_fix_up_module) @@ -223,99 +227,309 @@ struct _Py_global_strings { STRUCT_FOR_ID(_showwarnmsg) STRUCT_FOR_ID(_shutdown) STRUCT_FOR_ID(_slotnames) - STRUCT_FOR_ID(_strptime_time) STRUCT_FOR_ID(_uninitialized_submodules) STRUCT_FOR_ID(_warn_unawaited_coroutine) STRUCT_FOR_ID(_xoptions) + STRUCT_FOR_ID(a) + STRUCT_FOR_ID(abs_tol) + STRUCT_FOR_ID(access) STRUCT_FOR_ID(add) + STRUCT_FOR_ID(after_in_child) + STRUCT_FOR_ID(after_in_parent) + STRUCT_FOR_ID(aggregate_class) STRUCT_FOR_ID(append) + STRUCT_FOR_ID(argdefs) + STRUCT_FOR_ID(arguments) + STRUCT_FOR_ID(argv) + STRUCT_FOR_ID(attribute) + STRUCT_FOR_ID(authorizer_callback) + STRUCT_FOR_ID(b) + STRUCT_FOR_ID(backtick) + STRUCT_FOR_ID(base) + STRUCT_FOR_ID(before) STRUCT_FOR_ID(big) + STRUCT_FOR_ID(binary_form) + STRUCT_FOR_ID(block) STRUCT_FOR_ID(buffer) + STRUCT_FOR_ID(buffer_callback) + STRUCT_FOR_ID(buffer_size) + STRUCT_FOR_ID(buffering) + STRUCT_FOR_ID(buffers) + STRUCT_FOR_ID(bufsize) STRUCT_FOR_ID(builtins) + STRUCT_FOR_ID(byteorder) + STRUCT_FOR_ID(bytes) + STRUCT_FOR_ID(bytes_per_sep) STRUCT_FOR_ID(c_call) STRUCT_FOR_ID(c_exception) STRUCT_FOR_ID(c_return) + STRUCT_FOR_ID(cached_statements) + STRUCT_FOR_ID(cadata) + STRUCT_FOR_ID(cafile) STRUCT_FOR_ID(call) + STRUCT_FOR_ID(capath) + STRUCT_FOR_ID(category) + STRUCT_FOR_ID(cb_type) + STRUCT_FOR_ID(certfile) + STRUCT_FOR_ID(check_same_thread) STRUCT_FOR_ID(clear) STRUCT_FOR_ID(close) STRUCT_FOR_ID(closed) + STRUCT_FOR_ID(closefd) + STRUCT_FOR_ID(closure) + STRUCT_FOR_ID(co_argcount) + STRUCT_FOR_ID(co_cellvars) + STRUCT_FOR_ID(co_code) + STRUCT_FOR_ID(co_consts) + STRUCT_FOR_ID(co_exceptiontable) + STRUCT_FOR_ID(co_filename) + STRUCT_FOR_ID(co_firstlineno) + STRUCT_FOR_ID(co_flags) + STRUCT_FOR_ID(co_freevars) + STRUCT_FOR_ID(co_kwonlyargcount) + STRUCT_FOR_ID(co_linetable) + STRUCT_FOR_ID(co_name) + STRUCT_FOR_ID(co_names) + STRUCT_FOR_ID(co_nlocals) + STRUCT_FOR_ID(co_posonlyargcount) + STRUCT_FOR_ID(co_qualname) + STRUCT_FOR_ID(co_stacksize) + STRUCT_FOR_ID(co_varnames) STRUCT_FOR_ID(code) + STRUCT_FOR_ID(command) + STRUCT_FOR_ID(comment_factory) + STRUCT_FOR_ID(consts) + STRUCT_FOR_ID(context) + STRUCT_FOR_ID(cookie) STRUCT_FOR_ID(copy) STRUCT_FOR_ID(copyreg) + STRUCT_FOR_ID(coro) + STRUCT_FOR_ID(count) + STRUCT_FOR_ID(cwd) + STRUCT_FOR_ID(data) + STRUCT_FOR_ID(database) STRUCT_FOR_ID(decode) + STRUCT_FOR_ID(decoder) STRUCT_FOR_ID(default) STRUCT_FOR_ID(defaultaction) + STRUCT_FOR_ID(delete) + STRUCT_FOR_ID(depth) + STRUCT_FOR_ID(detect_types) + STRUCT_FOR_ID(deterministic) + STRUCT_FOR_ID(device) + STRUCT_FOR_ID(dict) STRUCT_FOR_ID(dictcomp) STRUCT_FOR_ID(difference_update) + STRUCT_FOR_ID(digest) + STRUCT_FOR_ID(digest_size) + STRUCT_FOR_ID(digestmod) + STRUCT_FOR_ID(dir_fd) STRUCT_FOR_ID(dispatch_table) STRUCT_FOR_ID(displayhook) - STRUCT_FOR_ID(enable) + STRUCT_FOR_ID(dklen) + STRUCT_FOR_ID(doc) + STRUCT_FOR_ID(dont_inherit) + STRUCT_FOR_ID(dst) + STRUCT_FOR_ID(dst_dir_fd) + STRUCT_FOR_ID(duration) + STRUCT_FOR_ID(effective_ids) + STRUCT_FOR_ID(element_factory) STRUCT_FOR_ID(encode) STRUCT_FOR_ID(encoding) + STRUCT_FOR_ID(end) STRUCT_FOR_ID(end_lineno) STRUCT_FOR_ID(end_offset) + STRUCT_FOR_ID(endpos) + STRUCT_FOR_ID(env) STRUCT_FOR_ID(errors) + STRUCT_FOR_ID(event) + STRUCT_FOR_ID(eventmask) + STRUCT_FOR_ID(exc_type) + STRUCT_FOR_ID(exc_value) STRUCT_FOR_ID(excepthook) STRUCT_FOR_ID(exception) + STRUCT_FOR_ID(exp) STRUCT_FOR_ID(extend) + STRUCT_FOR_ID(factory) + STRUCT_FOR_ID(family) + STRUCT_FOR_ID(fanout) + STRUCT_FOR_ID(fd) + STRUCT_FOR_ID(fd2) + STRUCT_FOR_ID(fdel) + STRUCT_FOR_ID(fget) + STRUCT_FOR_ID(file) + STRUCT_FOR_ID(file_actions) STRUCT_FOR_ID(filename) STRUCT_FOR_ID(fileno) + STRUCT_FOR_ID(filepath) STRUCT_FOR_ID(fillvalue) STRUCT_FOR_ID(filters) + STRUCT_FOR_ID(final) STRUCT_FOR_ID(find_class) + STRUCT_FOR_ID(fix_imports) + STRUCT_FOR_ID(flags) STRUCT_FOR_ID(flush) + STRUCT_FOR_ID(follow_symlinks) + STRUCT_FOR_ID(format) + STRUCT_FOR_ID(frequency) + STRUCT_FOR_ID(fromlist) + STRUCT_FOR_ID(fset) + STRUCT_FOR_ID(func) + STRUCT_FOR_ID(generation) STRUCT_FOR_ID(genexpr) STRUCT_FOR_ID(get) STRUCT_FOR_ID(get_source) STRUCT_FOR_ID(getattr) STRUCT_FOR_ID(getstate) + STRUCT_FOR_ID(gid) + STRUCT_FOR_ID(globals) + STRUCT_FOR_ID(groupindex) + STRUCT_FOR_ID(groups) + STRUCT_FOR_ID(handle) + STRUCT_FOR_ID(hash_name) + STRUCT_FOR_ID(header) + STRUCT_FOR_ID(headers) + STRUCT_FOR_ID(hi) + STRUCT_FOR_ID(hook) + STRUCT_FOR_ID(id) STRUCT_FOR_ID(ignore) + STRUCT_FOR_ID(imag) STRUCT_FOR_ID(importlib) + STRUCT_FOR_ID(in_fd) + STRUCT_FOR_ID(incoming) + STRUCT_FOR_ID(indexgroup) STRUCT_FOR_ID(inf) + STRUCT_FOR_ID(inheritable) + STRUCT_FOR_ID(initial) + STRUCT_FOR_ID(initial_bytes) + STRUCT_FOR_ID(initial_value) + STRUCT_FOR_ID(initval) + STRUCT_FOR_ID(inner_size) + STRUCT_FOR_ID(input) + STRUCT_FOR_ID(insert_comments) + STRUCT_FOR_ID(insert_pis) + STRUCT_FOR_ID(instructions) + STRUCT_FOR_ID(intern) STRUCT_FOR_ID(intersection) STRUCT_FOR_ID(isatty) STRUCT_FOR_ID(isinstance) + STRUCT_FOR_ID(isolation_level) + STRUCT_FOR_ID(istext) + STRUCT_FOR_ID(item) STRUCT_FOR_ID(items) STRUCT_FOR_ID(iter) + STRUCT_FOR_ID(iterable) + STRUCT_FOR_ID(iterations) STRUCT_FOR_ID(join) + STRUCT_FOR_ID(jump) + STRUCT_FOR_ID(keepends) + STRUCT_FOR_ID(key) + STRUCT_FOR_ID(keyfile) STRUCT_FOR_ID(keys) + STRUCT_FOR_ID(kind) STRUCT_FOR_ID(lambda) + STRUCT_FOR_ID(last) + STRUCT_FOR_ID(last_node) STRUCT_FOR_ID(last_traceback) STRUCT_FOR_ID(last_type) STRUCT_FOR_ID(last_value) STRUCT_FOR_ID(latin1) + STRUCT_FOR_ID(leaf_size) STRUCT_FOR_ID(len) + STRUCT_FOR_ID(length) + STRUCT_FOR_ID(level) + STRUCT_FOR_ID(limit) STRUCT_FOR_ID(line) + STRUCT_FOR_ID(line_buffering) STRUCT_FOR_ID(lineno) STRUCT_FOR_ID(listcomp) STRUCT_FOR_ID(little) + STRUCT_FOR_ID(lo) STRUCT_FOR_ID(locale) + STRUCT_FOR_ID(locals) + STRUCT_FOR_ID(loop) + STRUCT_FOR_ID(mapping) STRUCT_FOR_ID(match) + STRUCT_FOR_ID(max_length) + STRUCT_FOR_ID(maxdigits) + STRUCT_FOR_ID(maxevents) + STRUCT_FOR_ID(maxmem) + STRUCT_FOR_ID(maxsplit) + STRUCT_FOR_ID(maxvalue) + STRUCT_FOR_ID(memLevel) + STRUCT_FOR_ID(memlimit) + STRUCT_FOR_ID(message) STRUCT_FOR_ID(metaclass) + STRUCT_FOR_ID(method) + STRUCT_FOR_ID(mod) STRUCT_FOR_ID(mode) + STRUCT_FOR_ID(module) + STRUCT_FOR_ID(module_globals) STRUCT_FOR_ID(modules) STRUCT_FOR_ID(mro) STRUCT_FOR_ID(msg) + STRUCT_FOR_ID(n) + STRUCT_FOR_ID(n_arg) STRUCT_FOR_ID(n_fields) STRUCT_FOR_ID(n_sequence_fields) STRUCT_FOR_ID(n_unnamed_fields) STRUCT_FOR_ID(name) + STRUCT_FOR_ID(namespace_separator) + STRUCT_FOR_ID(namespaces) + STRUCT_FOR_ID(narg) + STRUCT_FOR_ID(ndigits) + STRUCT_FOR_ID(new_limit) + STRUCT_FOR_ID(newline) STRUCT_FOR_ID(newlines) STRUCT_FOR_ID(next) + STRUCT_FOR_ID(node_depth) + STRUCT_FOR_ID(node_offset) + STRUCT_FOR_ID(ns) + STRUCT_FOR_ID(number) STRUCT_FOR_ID(obj) + STRUCT_FOR_ID(object) STRUCT_FOR_ID(offset) + STRUCT_FOR_ID(offset_dst) + STRUCT_FOR_ID(offset_src) + STRUCT_FOR_ID(on_type_read) STRUCT_FOR_ID(onceregistry) + STRUCT_FOR_ID(oparg) STRUCT_FOR_ID(opcode) STRUCT_FOR_ID(open) + STRUCT_FOR_ID(opener) + STRUCT_FOR_ID(operation) + STRUCT_FOR_ID(optimize) + STRUCT_FOR_ID(options) + STRUCT_FOR_ID(order) + STRUCT_FOR_ID(out_fd) + STRUCT_FOR_ID(outgoing) + STRUCT_FOR_ID(overlapped) + STRUCT_FOR_ID(owner) + STRUCT_FOR_ID(p) + STRUCT_FOR_ID(pages) STRUCT_FOR_ID(parent) - STRUCT_FOR_ID(partial) + STRUCT_FOR_ID(password) STRUCT_FOR_ID(path) + STRUCT_FOR_ID(pattern) STRUCT_FOR_ID(peek) STRUCT_FOR_ID(persistent_id) STRUCT_FOR_ID(persistent_load) + STRUCT_FOR_ID(person) + STRUCT_FOR_ID(pi_factory) + STRUCT_FOR_ID(pid) + STRUCT_FOR_ID(policy) + STRUCT_FOR_ID(pos) STRUCT_FOR_ID(print_file_and_line) + STRUCT_FOR_ID(priority) + STRUCT_FOR_ID(progress) + STRUCT_FOR_ID(progress_handler) + STRUCT_FOR_ID(proto) + STRUCT_FOR_ID(protocol) STRUCT_FOR_ID(ps1) STRUCT_FOR_ID(ps2) + STRUCT_FOR_ID(query) + STRUCT_FOR_ID(quotetabs) + STRUCT_FOR_ID(r) STRUCT_FOR_ID(raw) STRUCT_FOR_ID(read) STRUCT_FOR_ID(read1) @@ -324,37 +538,115 @@ struct _Py_global_strings { STRUCT_FOR_ID(readinto) STRUCT_FOR_ID(readinto1) STRUCT_FOR_ID(readline) + STRUCT_FOR_ID(readonly) + STRUCT_FOR_ID(real) STRUCT_FOR_ID(reducer_override) + STRUCT_FOR_ID(registry) + STRUCT_FOR_ID(rel_tol) STRUCT_FOR_ID(reload) + STRUCT_FOR_ID(repl) STRUCT_FOR_ID(replace) + STRUCT_FOR_ID(reserved) STRUCT_FOR_ID(reset) + STRUCT_FOR_ID(resetids) STRUCT_FOR_ID(return) + STRUCT_FOR_ID(reverse) STRUCT_FOR_ID(reversed) + STRUCT_FOR_ID(s) + STRUCT_FOR_ID(salt) + STRUCT_FOR_ID(sched_priority) + STRUCT_FOR_ID(scheduler) STRUCT_FOR_ID(seek) STRUCT_FOR_ID(seekable) + STRUCT_FOR_ID(selectors) STRUCT_FOR_ID(send) + STRUCT_FOR_ID(sep) + STRUCT_FOR_ID(sequence) + STRUCT_FOR_ID(server_hostname) + STRUCT_FOR_ID(server_side) + STRUCT_FOR_ID(session) STRUCT_FOR_ID(setcomp) + STRUCT_FOR_ID(setpgroup) + STRUCT_FOR_ID(setsid) + STRUCT_FOR_ID(setsigdef) + STRUCT_FOR_ID(setsigmask) STRUCT_FOR_ID(setstate) + STRUCT_FOR_ID(shape) + STRUCT_FOR_ID(show_cmd) + STRUCT_FOR_ID(signed) + STRUCT_FOR_ID(size) + STRUCT_FOR_ID(sizehint) + STRUCT_FOR_ID(sleep) + STRUCT_FOR_ID(sock) STRUCT_FOR_ID(sort) + STRUCT_FOR_ID(sound) + STRUCT_FOR_ID(source) + STRUCT_FOR_ID(src) + STRUCT_FOR_ID(src_dir_fd) + STRUCT_FOR_ID(stacklevel) + STRUCT_FOR_ID(start) + STRUCT_FOR_ID(statement) + STRUCT_FOR_ID(status) STRUCT_FOR_ID(stderr) STRUCT_FOR_ID(stdin) STRUCT_FOR_ID(stdout) + STRUCT_FOR_ID(step) + STRUCT_FOR_ID(store_name) + STRUCT_FOR_ID(strategy) STRUCT_FOR_ID(strict) + STRUCT_FOR_ID(strict_mode) + STRUCT_FOR_ID(string) + STRUCT_FOR_ID(sub_key) STRUCT_FOR_ID(symmetric_difference_update) + STRUCT_FOR_ID(tabsize) + STRUCT_FOR_ID(tag) + STRUCT_FOR_ID(target) + STRUCT_FOR_ID(target_is_directory) + STRUCT_FOR_ID(task) + STRUCT_FOR_ID(tb_frame) + STRUCT_FOR_ID(tb_lasti) + STRUCT_FOR_ID(tb_lineno) + STRUCT_FOR_ID(tb_next) STRUCT_FOR_ID(tell) + STRUCT_FOR_ID(template) + STRUCT_FOR_ID(term) STRUCT_FOR_ID(text) STRUCT_FOR_ID(threading) STRUCT_FOR_ID(throw) + STRUCT_FOR_ID(timeout) + STRUCT_FOR_ID(times) STRUCT_FOR_ID(top) + STRUCT_FOR_ID(trace_callback) + STRUCT_FOR_ID(traceback) + STRUCT_FOR_ID(trailers) + STRUCT_FOR_ID(translate) STRUCT_FOR_ID(truncate) + STRUCT_FOR_ID(twice) + STRUCT_FOR_ID(txt) + STRUCT_FOR_ID(type) + STRUCT_FOR_ID(tz) + STRUCT_FOR_ID(uid) + STRUCT_FOR_ID(unlink) STRUCT_FOR_ID(unraisablehook) + STRUCT_FOR_ID(uri) + STRUCT_FOR_ID(usedforsecurity) + STRUCT_FOR_ID(value) STRUCT_FOR_ID(values) STRUCT_FOR_ID(version) STRUCT_FOR_ID(warnings) STRUCT_FOR_ID(warnoptions) + STRUCT_FOR_ID(wbits) + STRUCT_FOR_ID(week) + STRUCT_FOR_ID(weekday) + STRUCT_FOR_ID(which) + STRUCT_FOR_ID(who) + STRUCT_FOR_ID(withdata) STRUCT_FOR_ID(writable) STRUCT_FOR_ID(write) - STRUCT_FOR_ID(zipimporter) + STRUCT_FOR_ID(write_through) + STRUCT_FOR_ID(x) + STRUCT_FOR_ID(year) + STRUCT_FOR_ID(zdict) } identifiers; struct { PyASCIIObject _ascii; diff --git a/Include/internal/pycore_hamt.h b/Include/internal/pycore_hamt.h index 4d64288bbab494..7a674b4ee4ac0e 100644 --- a/Include/internal/pycore_hamt.h +++ b/Include/internal/pycore_hamt.h @@ -35,7 +35,7 @@ void _PyHamt_Fini(PyInterpreterState *); /* other API */ -#define PyHamt_Check(o) Py_IS_TYPE(o, &_PyHamt_Type) +#define PyHamt_Check(o) Py_IS_TYPE((o), &_PyHamt_Type) /* Abstract tree node. */ diff --git a/Include/internal/pycore_hashtable.h b/Include/internal/pycore_hashtable.h index 18757abc28c195..2aa23a24c2830a 100644 --- a/Include/internal/pycore_hashtable.h +++ b/Include/internal/pycore_hashtable.h @@ -18,9 +18,9 @@ typedef struct { _Py_slist_item_t *head; } _Py_slist_t; -#define _Py_SLIST_ITEM_NEXT(ITEM) (((_Py_slist_item_t *)ITEM)->next) +#define _Py_SLIST_ITEM_NEXT(ITEM) (((_Py_slist_item_t *)(ITEM))->next) -#define _Py_SLIST_HEAD(SLIST) (((_Py_slist_t *)SLIST)->head) +#define _Py_SLIST_HEAD(SLIST) (((_Py_slist_t *)(SLIST))->head) /* _Py_hashtable: table entry */ diff --git a/Include/internal/pycore_initconfig.h b/Include/internal/pycore_initconfig.h index a2f4cd182e8e92..6e491261d55ca6 100644 --- a/Include/internal/pycore_initconfig.h +++ b/Include/internal/pycore_initconfig.h @@ -36,13 +36,13 @@ struct pyruntimestate; ._type = _PyStatus_TYPE_EXIT, \ .exitcode = (EXITCODE)} #define _PyStatus_IS_ERROR(err) \ - (err._type == _PyStatus_TYPE_ERROR) + ((err)._type == _PyStatus_TYPE_ERROR) #define _PyStatus_IS_EXIT(err) \ - (err._type == _PyStatus_TYPE_EXIT) + ((err)._type == _PyStatus_TYPE_EXIT) #define _PyStatus_EXCEPTION(err) \ - (err._type != _PyStatus_TYPE_OK) + ((err)._type != _PyStatus_TYPE_OK) #define _PyStatus_UPDATE_FUNC(err) \ - do { err.func = _PyStatus_GET_FUNC(); } while (0) + do { (err).func = _PyStatus_GET_FUNC(); } while (0) PyObject* _PyErr_SetFromPyStatus(PyStatus status); @@ -170,6 +170,8 @@ extern void _Py_DumpPathConfig(PyThreadState *tstate); PyAPI_FUNC(PyObject*) _Py_Get_Getpath_CodeObject(void); +extern int _Py_global_config_int_max_str_digits; // TODO(gpshead): move this into PyConfig in 3.12 after the backports ship. + /* --- Function used for testing ---------------------------------- */ diff --git a/Include/internal/pycore_interp.h b/Include/internal/pycore_interp.h index d55627908a28f8..e7f914ec2fe521 100644 --- a/Include/internal/pycore_interp.h +++ b/Include/internal/pycore_interp.h @@ -18,7 +18,6 @@ extern "C" { #include "pycore_exceptions.h" // struct _Py_exc_state #include "pycore_floatobject.h" // struct _Py_float_state #include "pycore_genobject.h" // struct _Py_async_gen_state -#include "pycore_gil.h" // struct _gil_runtime_state #include "pycore_gc.h" // struct _gc_runtime_state #include "pycore_list.h" // struct _Py_list_state #include "pycore_tuple.h" // struct _Py_tuple_state @@ -51,9 +50,6 @@ struct _ceval_state { /* Request for dropping the GIL */ _Py_atomic_int gil_drop_request; struct _pending_calls pending; -#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS - struct _gil_runtime_state gil; -#endif }; @@ -76,7 +72,7 @@ struct atexit_state { /* PyInterpreterState holds the global state for one of the runtime's interpreters. Typically the initial (main) interpreter is the only one. - The PyInterpreterState typedef is in Include/pystate.h. + The PyInterpreterState typedef is in Include/pytypedefs.h. */ struct _is { @@ -176,9 +172,11 @@ struct _is { struct _Py_exc_state exc_state; struct ast_state ast; - struct type_cache type_cache; + struct types_state types; struct callable_cache callable_cache; + int int_max_str_digits; + /* The following fields are here to avoid allocation during init. The data is exposed through PyInterpreterState pointer fields. These fields should not be accessed directly outside of init. diff --git a/Include/internal/pycore_list.h b/Include/internal/pycore_list.h index 860dce1fd5d393..691d13bc8d9ffa 100644 --- a/Include/internal/pycore_list.h +++ b/Include/internal/pycore_list.h @@ -56,6 +56,25 @@ _PyList_AppendTakeRef(PyListObject *self, PyObject *newitem) return _PyList_AppendTakeRefListResize(self, newitem); } +// Repeat the bytes of a buffer in place +static inline void +_Py_memory_repeat(char* dest, Py_ssize_t len_dest, Py_ssize_t len_src) +{ + assert(len_src > 0); + Py_ssize_t copied = len_src; + while (copied < len_dest) { + Py_ssize_t bytes_to_copy = Py_MIN(copied, len_dest - copied); + memcpy(dest + copied, dest, bytes_to_copy); + copied += bytes_to_copy; + } +} + +typedef struct { + PyObject_HEAD + Py_ssize_t it_index; + PyListObject *it_seq; /* Set to NULL when iterator is exhausted */ +} _PyListIterObject; + #ifdef __cplusplus } #endif diff --git a/Include/internal/pycore_long.h b/Include/internal/pycore_long.h index a33762402491b7..30c97b7edc98e1 100644 --- a/Include/internal/pycore_long.h +++ b/Include/internal/pycore_long.h @@ -11,6 +11,41 @@ extern "C" { #include "pycore_global_objects.h" // _PY_NSMALLNEGINTS #include "pycore_runtime.h" // _PyRuntime +/* + * Default int base conversion size limitation: Denial of Service prevention. + * + * Chosen such that this isn't wildly slow on modern hardware and so that + * everyone's existing deployed numpy test suite passes before + * https://github.com/numpy/numpy/issues/22098 is widely available. + * + * $ python -m timeit -s 's = "1"*4300' 'int(s)' + * 2000 loops, best of 5: 125 usec per loop + * $ python -m timeit -s 's = "1"*4300; v = int(s)' 'str(v)' + * 1000 loops, best of 5: 311 usec per loop + * (zen2 cloud VM) + * + * 4300 decimal digits fits a ~14284 bit number. + */ +#define _PY_LONG_DEFAULT_MAX_STR_DIGITS 4300 +/* + * Threshold for max digits check. For performance reasons int() and + * int.__str__() don't checks values that are smaller than this + * threshold. Acts as a guaranteed minimum size limit for bignums that + * applications can expect from CPython. + * + * % python -m timeit -s 's = "1"*640; v = int(s)' 'str(int(s))' + * 20000 loops, best of 5: 12 usec per loop + * + * "640 digits should be enough for anyone." - gps + * fits a ~2126 bit decimal number. + */ +#define _PY_LONG_MAX_STR_DIGITS_THRESHOLD 640 + +#if ((_PY_LONG_DEFAULT_MAX_STR_DIGITS != 0) && \ + (_PY_LONG_DEFAULT_MAX_STR_DIGITS < _PY_LONG_MAX_STR_DIGITS_THRESHOLD)) +# error "_PY_LONG_DEFAULT_MAX_STR_DIGITS smaller than threshold." +#endif + /* runtime lifecycle */ @@ -47,6 +82,8 @@ PyObject *_PyLong_Add(PyLongObject *left, PyLongObject *right); PyObject *_PyLong_Multiply(PyLongObject *left, PyLongObject *right); PyObject *_PyLong_Subtract(PyLongObject *left, PyLongObject *right); +int _PyLong_AssignValue(PyObject **target, Py_ssize_t value); + /* Used by Python/mystrtoul.c, _PyBytes_FromHex(), _PyBytes_DecodeEscape(), etc. */ PyAPI_DATA(unsigned char) _PyLong_DigitValue[256]; diff --git a/Include/internal/pycore_object.h b/Include/internal/pycore_object.h index cc50418e2ef40f..8b78f79e950e92 100644 --- a/Include/internal/pycore_object.h +++ b/Include/internal/pycore_object.h @@ -14,10 +14,15 @@ extern "C" { #include "pycore_pystate.h" // _PyInterpreterState_GET() #include "pycore_runtime.h" // _PyRuntime +/* This value provides *effective* immortality, meaning the object should never + be deallocated (until runtime finalization). See PEP 683 for more details about + immortality, as well as a proposed mechanism for proper immortality. */ +#define _PyObject_IMMORTAL_REFCNT 999999999 + #define _PyObject_IMMORTAL_INIT(type) \ { \ - .ob_refcnt = 999999999, \ - .ob_type = type, \ + .ob_refcnt = _PyObject_IMMORTAL_REFCNT, \ + .ob_type = (type), \ } #define _PyVarObject_IMMORTAL_INIT(type, size) \ { \ @@ -29,7 +34,18 @@ PyAPI_FUNC(void) _Py_NO_RETURN _Py_FatalRefcountErrorFunc( const char *func, const char *message); -#define _Py_FatalRefcountError(message) _Py_FatalRefcountErrorFunc(__func__, message) +#define _Py_FatalRefcountError(message) \ + _Py_FatalRefcountErrorFunc(__func__, (message)) + +// Increment reference count by n +static inline void _Py_RefcntAdd(PyObject* op, Py_ssize_t n) +{ +#ifdef Py_REF_DEBUG + _Py_RefTotal += n; +#endif + op->ob_refcnt += n; +} +#define _Py_RefcntAdd(op, n) _Py_RefcntAdd(_PyObject_CAST(op), n) static inline void _Py_DECREF_SPECIALIZED(PyObject *op, const destructor destruct) @@ -201,13 +217,52 @@ extern void _Py_PrintReferences(FILE *); extern void _Py_PrintReferenceAddresses(FILE *); #endif + +/* Return the *address* of the object's weaklist. The address may be + * dereferenced to get the current head of the weaklist. This is useful + * for iterating over the linked list of weakrefs, especially when the + * list is being modified externally (e.g. refs getting removed). + * + * The returned pointer should not be used to change the head of the list + * nor should it be used to add, remove, or swap any refs in the list. + * That is the sole responsibility of the code in weakrefobject.c. + */ static inline PyObject ** _PyObject_GET_WEAKREFS_LISTPTR(PyObject *op) { + if (PyType_Check(op) && + ((PyTypeObject *)op)->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN) { + static_builtin_state *state = _PyStaticType_GetState( + (PyTypeObject *)op); + return _PyStaticType_GET_WEAKREFS_LISTPTR(state); + } + // Essentially _PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET(): Py_ssize_t offset = Py_TYPE(op)->tp_weaklistoffset; return (PyObject **)((char *)op + offset); } +/* This is a special case of _PyObject_GET_WEAKREFS_LISTPTR(). + * Only the most fundamental lookup path is used. + * Consequently, static types should not be used. + * + * For static builtin types the returned pointer will always point + * to a NULL tp_weaklist. This is fine for any deallocation cases, + * since static types are never deallocated and static builtin types + * are only finalized at the end of runtime finalization. + * + * If the weaklist for static types is actually needed then use + * _PyObject_GET_WEAKREFS_LISTPTR(). + */ +static inline PyWeakReference ** +_PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET(PyObject *op) +{ + assert(!PyType_Check(op) || + ((PyTypeObject *)op)->tp_flags & Py_TPFLAGS_HEAPTYPE); + Py_ssize_t offset = Py_TYPE(op)->tp_weaklistoffset; + return (PyWeakReference **)((char *)op + offset); +} + + // Fast inlined version of PyObject_IS_GC() static inline int _PyObject_IS_GC(PyObject *obj) @@ -224,7 +279,7 @@ static inline size_t _PyType_PreHeaderSize(PyTypeObject *tp) { return _PyType_IS_GC(tp) * sizeof(PyGC_Head) + - _PyType_HasFeature(tp, Py_TPFLAGS_MANAGED_DICT) * 2 * sizeof(PyObject *); + _PyType_HasFeature(tp, Py_TPFLAGS_PREHEADER) * 2 * sizeof(PyObject *); } void _PyObject_GC_Link(PyObject *op); @@ -241,7 +296,7 @@ extern int _Py_CheckSlotResult( // Test if a type supports weak references static inline int _PyType_SUPPORTS_WEAKREFS(PyTypeObject *type) { - return (type->tp_weaklistoffset > 0); + return (type->tp_weaklistoffset != 0); } extern PyObject* _PyType_AllocNoTrack(PyTypeObject *type, Py_ssize_t nitems); @@ -252,30 +307,56 @@ extern int _PyObject_StoreInstanceAttribute(PyObject *obj, PyDictValues *values, PyObject * _PyObject_GetInstanceAttribute(PyObject *obj, PyDictValues *values, PyObject *name); -static inline PyDictValues **_PyObject_ValuesPointer(PyObject *obj) +typedef union { + PyObject *dict; + /* Use a char* to generate a warning if directly assigning a PyDictValues */ + char *values; +} PyDictOrValues; + +static inline PyDictOrValues * +_PyObject_DictOrValuesPointer(PyObject *obj) { assert(Py_TYPE(obj)->tp_flags & Py_TPFLAGS_MANAGED_DICT); - return ((PyDictValues **)obj)-4; + return ((PyDictOrValues *)obj)-3; +} + +static inline int +_PyDictOrValues_IsValues(PyDictOrValues dorv) +{ + return ((uintptr_t)dorv.values) & 1; } -static inline PyObject **_PyObject_ManagedDictPointer(PyObject *obj) +static inline PyDictValues * +_PyDictOrValues_GetValues(PyDictOrValues dorv) { - assert(Py_TYPE(obj)->tp_flags & Py_TPFLAGS_MANAGED_DICT); - return ((PyObject **)obj)-3; + assert(_PyDictOrValues_IsValues(dorv)); + return (PyDictValues *)(dorv.values + 1); +} + +static inline PyObject * +_PyDictOrValues_GetDict(PyDictOrValues dorv) +{ + assert(!_PyDictOrValues_IsValues(dorv)); + return dorv.dict; +} + +static inline void +_PyDictOrValues_SetValues(PyDictOrValues *ptr, PyDictValues *values) +{ + ptr->values = ((char *)values) - 1; } -#define MANAGED_DICT_OFFSET (((int)sizeof(PyObject *))*-3) +#define MANAGED_WEAKREF_OFFSET (((Py_ssize_t)sizeof(PyObject *))*-4) -extern PyObject ** _PyObject_DictPointer(PyObject *); -extern int _PyObject_VisitInstanceAttributes(PyObject *self, visitproc visit, void *arg); -extern void _PyObject_ClearInstanceAttributes(PyObject *self); -extern void _PyObject_FreeInstanceAttributes(PyObject *self); +extern PyObject ** _PyObject_ComputedDictPointer(PyObject *); +extern void _PyObject_FreeInstanceAttributes(PyObject *obj); extern int _PyObject_IsInstanceDictEmpty(PyObject *); +extern int _PyType_HasSubclasses(PyTypeObject *); extern PyObject* _PyType_GetSubclasses(PyTypeObject *); // Access macro to the members which are floating "behind" the object #define _PyHeapType_GET_MEMBERS(etype) \ - ((PyMemberDef *)(((char *)etype) + Py_TYPE(etype)->tp_basicsize)) + ((PyMemberDef *)(((char *)(etype)) + Py_TYPE(etype)->tp_basicsize)) PyAPI_FUNC(PyObject *) _PyObject_LookupSpecial(PyObject *, PyObject *); @@ -296,7 +377,7 @@ PyAPI_FUNC(PyObject *) _PyObject_LookupSpecial(PyObject *, PyObject *); #if defined(__EMSCRIPTEN__) && defined(PY_CALL_TRAMPOLINE) #define _PyCFunction_TrampolineCall(meth, self, args) \ _PyCFunctionWithKeywords_TrampolineCall( \ - (*(PyCFunctionWithKeywords)(void(*)(void))meth), self, args, NULL) + (*(PyCFunctionWithKeywords)(void(*)(void))(meth)), (self), (args), NULL) extern PyObject* _PyCFunctionWithKeywords_TrampolineCall( PyCFunctionWithKeywords meth, PyObject *, PyObject *, PyObject *); #else diff --git a/Include/internal/pycore_opcode.h b/Include/internal/pycore_opcode.h index c693fe3c5eca6a..15925511cc1f41 100644 --- a/Include/internal/pycore_opcode.h +++ b/Include/internal/pycore_opcode.h @@ -16,40 +16,40 @@ extern const uint8_t _PyOpcode_Caches[256]; extern const uint8_t _PyOpcode_Deopt[256]; -extern const uint8_t _PyOpcode_Original[256]; - #ifdef NEED_OPCODE_TABLES -static const uint32_t _PyOpcode_RelativeJump[8] = { +static const uint32_t _PyOpcode_RelativeJump[9] = { 0U, 0U, 536870912U, 135118848U, 4163U, - 122880U, 0U, 0U, + 0U, + 48U, }; -static const uint32_t _PyOpcode_Jump[8] = { +static const uint32_t _PyOpcode_Jump[9] = { 0U, 0U, 536870912U, 135118848U, 4163U, - 122880U, 0U, 0U, + 0U, + 48U, }; const uint8_t _PyOpcode_Caches[256] = { [BINARY_SUBSCR] = 4, [STORE_SUBSCR] = 1, [UNPACK_SEQUENCE] = 1, + [FOR_ITER] = 1, [STORE_ATTR] = 4, - [LOAD_ATTR] = 4, + [LOAD_ATTR] = 9, [COMPARE_OP] = 2, [LOAD_GLOBAL] = 5, [BINARY_OP] = 1, - [LOAD_METHOD] = 10, [CALL] = 4, }; @@ -67,6 +67,7 @@ const uint8_t _PyOpcode_Deopt[256] = { [BINARY_OP_MULTIPLY_INT] = BINARY_OP, [BINARY_OP_SUBTRACT_FLOAT] = BINARY_OP, [BINARY_OP_SUBTRACT_INT] = BINARY_OP, + [BINARY_SLICE] = BINARY_SLICE, [BINARY_SUBSCR] = BINARY_SUBSCR, [BINARY_SUBSCR_ADAPTIVE] = BINARY_SUBSCR, [BINARY_SUBSCR_DICT] = BINARY_SUBSCR, @@ -103,6 +104,7 @@ const uint8_t _PyOpcode_Deopt[256] = { [CALL_PY_WITH_DEFAULTS] = CALL, [CHECK_EG_MATCH] = CHECK_EG_MATCH, [CHECK_EXC_MATCH] = CHECK_EXC_MATCH, + [CLEANUP_THROW] = CLEANUP_THROW, [COMPARE_OP] = COMPARE_OP, [COMPARE_OP_ADAPTIVE] = COMPARE_OP, [COMPARE_OP_FLOAT_JUMP] = COMPARE_OP, @@ -124,6 +126,9 @@ const uint8_t _PyOpcode_Deopt[256] = { [EXTENDED_ARG_QUICK] = EXTENDED_ARG, [FORMAT_VALUE] = FORMAT_VALUE, [FOR_ITER] = FOR_ITER, + [FOR_ITER_ADAPTIVE] = FOR_ITER, + [FOR_ITER_LIST] = FOR_ITER, + [FOR_ITER_RANGE] = FOR_ITER, [GET_AITER] = GET_AITER, [GET_ANEXT] = GET_ANEXT, [GET_AWAITABLE] = GET_AWAITABLE, @@ -147,8 +152,15 @@ const uint8_t _PyOpcode_Deopt[256] = { [LOAD_ASSERTION_ERROR] = LOAD_ASSERTION_ERROR, [LOAD_ATTR] = LOAD_ATTR, [LOAD_ATTR_ADAPTIVE] = LOAD_ATTR, + [LOAD_ATTR_CLASS] = LOAD_ATTR, + [LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN] = LOAD_ATTR, [LOAD_ATTR_INSTANCE_VALUE] = LOAD_ATTR, + [LOAD_ATTR_METHOD_LAZY_DICT] = LOAD_ATTR, + [LOAD_ATTR_METHOD_NO_DICT] = LOAD_ATTR, + [LOAD_ATTR_METHOD_WITH_DICT] = LOAD_ATTR, + [LOAD_ATTR_METHOD_WITH_VALUES] = LOAD_ATTR, [LOAD_ATTR_MODULE] = LOAD_ATTR, + [LOAD_ATTR_PROPERTY] = LOAD_ATTR, [LOAD_ATTR_SLOT] = LOAD_ATTR, [LOAD_ATTR_WITH_HINT] = LOAD_ATTR, [LOAD_BUILD_CLASS] = LOAD_BUILD_CLASS, @@ -158,202 +170,13 @@ const uint8_t _PyOpcode_Deopt[256] = { [LOAD_CONST__LOAD_FAST] = LOAD_CONST, [LOAD_DEREF] = LOAD_DEREF, [LOAD_FAST] = LOAD_FAST, + [LOAD_FAST_CHECK] = LOAD_FAST_CHECK, [LOAD_FAST__LOAD_CONST] = LOAD_FAST, [LOAD_FAST__LOAD_FAST] = LOAD_FAST, [LOAD_GLOBAL] = LOAD_GLOBAL, [LOAD_GLOBAL_ADAPTIVE] = LOAD_GLOBAL, [LOAD_GLOBAL_BUILTIN] = LOAD_GLOBAL, [LOAD_GLOBAL_MODULE] = LOAD_GLOBAL, - [LOAD_METHOD] = LOAD_METHOD, - [LOAD_METHOD_ADAPTIVE] = LOAD_METHOD, - [LOAD_METHOD_CLASS] = LOAD_METHOD, - [LOAD_METHOD_LAZY_DICT] = LOAD_METHOD, - [LOAD_METHOD_MODULE] = LOAD_METHOD, - [LOAD_METHOD_NO_DICT] = LOAD_METHOD, - [LOAD_METHOD_WITH_DICT] = LOAD_METHOD, - [LOAD_METHOD_WITH_VALUES] = LOAD_METHOD, - [LOAD_NAME] = LOAD_NAME, - [MAKE_CELL] = MAKE_CELL, - [MAKE_FUNCTION] = MAKE_FUNCTION, - [MAP_ADD] = MAP_ADD, - [MATCH_CLASS] = MATCH_CLASS, - [MATCH_KEYS] = MATCH_KEYS, - [MATCH_MAPPING] = MATCH_MAPPING, - [MATCH_SEQUENCE] = MATCH_SEQUENCE, - [NOP] = NOP, - [POP_EXCEPT] = POP_EXCEPT, - [POP_JUMP_BACKWARD_IF_FALSE] = POP_JUMP_BACKWARD_IF_FALSE, - [POP_JUMP_BACKWARD_IF_NONE] = POP_JUMP_BACKWARD_IF_NONE, - [POP_JUMP_BACKWARD_IF_NOT_NONE] = POP_JUMP_BACKWARD_IF_NOT_NONE, - [POP_JUMP_BACKWARD_IF_TRUE] = POP_JUMP_BACKWARD_IF_TRUE, - [POP_JUMP_FORWARD_IF_FALSE] = POP_JUMP_FORWARD_IF_FALSE, - [POP_JUMP_FORWARD_IF_NONE] = POP_JUMP_FORWARD_IF_NONE, - [POP_JUMP_FORWARD_IF_NOT_NONE] = POP_JUMP_FORWARD_IF_NOT_NONE, - [POP_JUMP_FORWARD_IF_TRUE] = POP_JUMP_FORWARD_IF_TRUE, - [POP_TOP] = POP_TOP, - [PREP_RERAISE_STAR] = PREP_RERAISE_STAR, - [PRINT_EXPR] = PRINT_EXPR, - [PUSH_EXC_INFO] = PUSH_EXC_INFO, - [PUSH_NULL] = PUSH_NULL, - [RAISE_VARARGS] = RAISE_VARARGS, - [RERAISE] = RERAISE, - [RESUME] = RESUME, - [RESUME_QUICK] = RESUME, - [RETURN_GENERATOR] = RETURN_GENERATOR, - [RETURN_VALUE] = RETURN_VALUE, - [SEND] = SEND, - [SETUP_ANNOTATIONS] = SETUP_ANNOTATIONS, - [SET_ADD] = SET_ADD, - [SET_UPDATE] = SET_UPDATE, - [STORE_ATTR] = STORE_ATTR, - [STORE_ATTR_ADAPTIVE] = STORE_ATTR, - [STORE_ATTR_INSTANCE_VALUE] = STORE_ATTR, - [STORE_ATTR_SLOT] = STORE_ATTR, - [STORE_ATTR_WITH_HINT] = STORE_ATTR, - [STORE_DEREF] = STORE_DEREF, - [STORE_FAST] = STORE_FAST, - [STORE_FAST__LOAD_FAST] = STORE_FAST, - [STORE_FAST__STORE_FAST] = STORE_FAST, - [STORE_GLOBAL] = STORE_GLOBAL, - [STORE_NAME] = STORE_NAME, - [STORE_SUBSCR] = STORE_SUBSCR, - [STORE_SUBSCR_ADAPTIVE] = STORE_SUBSCR, - [STORE_SUBSCR_DICT] = STORE_SUBSCR, - [STORE_SUBSCR_LIST_INT] = STORE_SUBSCR, - [SWAP] = SWAP, - [UNARY_INVERT] = UNARY_INVERT, - [UNARY_NEGATIVE] = UNARY_NEGATIVE, - [UNARY_NOT] = UNARY_NOT, - [UNARY_POSITIVE] = UNARY_POSITIVE, - [UNPACK_EX] = UNPACK_EX, - [UNPACK_SEQUENCE] = UNPACK_SEQUENCE, - [UNPACK_SEQUENCE_ADAPTIVE] = UNPACK_SEQUENCE, - [UNPACK_SEQUENCE_LIST] = UNPACK_SEQUENCE, - [UNPACK_SEQUENCE_TUPLE] = UNPACK_SEQUENCE, - [UNPACK_SEQUENCE_TWO_TUPLE] = UNPACK_SEQUENCE, - [WITH_EXCEPT_START] = WITH_EXCEPT_START, - [YIELD_VALUE] = YIELD_VALUE, -}; - -const uint8_t _PyOpcode_Original[256] = { - [ASYNC_GEN_WRAP] = ASYNC_GEN_WRAP, - [BEFORE_ASYNC_WITH] = BEFORE_ASYNC_WITH, - [BEFORE_WITH] = BEFORE_WITH, - [BINARY_OP] = BINARY_OP, - [BINARY_OP_ADAPTIVE] = BINARY_OP, - [BINARY_OP_ADD_FLOAT] = BINARY_OP, - [BINARY_OP_ADD_INT] = BINARY_OP, - [BINARY_OP_ADD_UNICODE] = BINARY_OP, - [BINARY_OP_INPLACE_ADD_UNICODE] = BINARY_OP, - [BINARY_OP_MULTIPLY_FLOAT] = BINARY_OP, - [BINARY_OP_MULTIPLY_INT] = BINARY_OP, - [BINARY_OP_SUBTRACT_FLOAT] = BINARY_OP, - [BINARY_OP_SUBTRACT_INT] = BINARY_OP, - [BINARY_SUBSCR] = BINARY_SUBSCR, - [BINARY_SUBSCR_ADAPTIVE] = BINARY_SUBSCR, - [BINARY_SUBSCR_DICT] = BINARY_SUBSCR, - [BINARY_SUBSCR_GETITEM] = BINARY_SUBSCR, - [BINARY_SUBSCR_LIST_INT] = BINARY_SUBSCR, - [BINARY_SUBSCR_TUPLE_INT] = BINARY_SUBSCR, - [BUILD_CONST_KEY_MAP] = BUILD_CONST_KEY_MAP, - [BUILD_LIST] = BUILD_LIST, - [BUILD_MAP] = BUILD_MAP, - [BUILD_SET] = BUILD_SET, - [BUILD_SLICE] = BUILD_SLICE, - [BUILD_STRING] = BUILD_STRING, - [BUILD_TUPLE] = BUILD_TUPLE, - [CACHE] = CACHE, - [CALL] = CALL, - [CALL_ADAPTIVE] = CALL, - [CALL_BOUND_METHOD_EXACT_ARGS] = CALL, - [CALL_BUILTIN_CLASS] = CALL, - [CALL_BUILTIN_FAST_WITH_KEYWORDS] = CALL, - [CALL_FUNCTION_EX] = CALL_FUNCTION_EX, - [CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS] = CALL, - [CALL_NO_KW_BUILTIN_FAST] = CALL, - [CALL_NO_KW_BUILTIN_O] = CALL, - [CALL_NO_KW_ISINSTANCE] = CALL, - [CALL_NO_KW_LEN] = CALL, - [CALL_NO_KW_LIST_APPEND] = CALL, - [CALL_NO_KW_METHOD_DESCRIPTOR_FAST] = CALL, - [CALL_NO_KW_METHOD_DESCRIPTOR_NOARGS] = CALL, - [CALL_NO_KW_METHOD_DESCRIPTOR_O] = CALL, - [CALL_NO_KW_STR_1] = CALL, - [CALL_NO_KW_TUPLE_1] = CALL, - [CALL_NO_KW_TYPE_1] = CALL, - [CALL_PY_EXACT_ARGS] = CALL, - [CALL_PY_WITH_DEFAULTS] = CALL, - [CHECK_EG_MATCH] = CHECK_EG_MATCH, - [CHECK_EXC_MATCH] = CHECK_EXC_MATCH, - [COMPARE_OP] = COMPARE_OP, - [COMPARE_OP_ADAPTIVE] = COMPARE_OP, - [COMPARE_OP_FLOAT_JUMP] = COMPARE_OP, - [COMPARE_OP_INT_JUMP] = COMPARE_OP, - [COMPARE_OP_STR_JUMP] = COMPARE_OP, - [CONTAINS_OP] = CONTAINS_OP, - [COPY] = COPY, - [COPY_FREE_VARS] = COPY_FREE_VARS, - [DELETE_ATTR] = DELETE_ATTR, - [DELETE_DEREF] = DELETE_DEREF, - [DELETE_FAST] = DELETE_FAST, - [DELETE_GLOBAL] = DELETE_GLOBAL, - [DELETE_NAME] = DELETE_NAME, - [DELETE_SUBSCR] = DELETE_SUBSCR, - [DICT_MERGE] = DICT_MERGE, - [DICT_UPDATE] = DICT_UPDATE, - [END_ASYNC_FOR] = END_ASYNC_FOR, - [EXTENDED_ARG] = EXTENDED_ARG_QUICK, - [EXTENDED_ARG_QUICK] = EXTENDED_ARG_QUICK, - [FORMAT_VALUE] = FORMAT_VALUE, - [FOR_ITER] = FOR_ITER, - [GET_AITER] = GET_AITER, - [GET_ANEXT] = GET_ANEXT, - [GET_AWAITABLE] = GET_AWAITABLE, - [GET_ITER] = GET_ITER, - [GET_LEN] = GET_LEN, - [GET_YIELD_FROM_ITER] = GET_YIELD_FROM_ITER, - [IMPORT_FROM] = IMPORT_FROM, - [IMPORT_NAME] = IMPORT_NAME, - [IMPORT_STAR] = IMPORT_STAR, - [IS_OP] = IS_OP, - [JUMP_BACKWARD] = JUMP_BACKWARD, - [JUMP_BACKWARD_NO_INTERRUPT] = JUMP_BACKWARD_NO_INTERRUPT, - [JUMP_BACKWARD_QUICK] = JUMP_BACKWARD, - [JUMP_FORWARD] = JUMP_FORWARD, - [JUMP_IF_FALSE_OR_POP] = JUMP_IF_FALSE_OR_POP, - [JUMP_IF_TRUE_OR_POP] = JUMP_IF_TRUE_OR_POP, - [KW_NAMES] = KW_NAMES, - [LIST_APPEND] = LIST_APPEND, - [LIST_EXTEND] = LIST_EXTEND, - [LIST_TO_TUPLE] = LIST_TO_TUPLE, - [LOAD_ASSERTION_ERROR] = LOAD_ASSERTION_ERROR, - [LOAD_ATTR] = LOAD_ATTR, - [LOAD_ATTR_ADAPTIVE] = LOAD_ATTR, - [LOAD_ATTR_INSTANCE_VALUE] = LOAD_ATTR, - [LOAD_ATTR_MODULE] = LOAD_ATTR, - [LOAD_ATTR_SLOT] = LOAD_ATTR, - [LOAD_ATTR_WITH_HINT] = LOAD_ATTR, - [LOAD_BUILD_CLASS] = LOAD_BUILD_CLASS, - [LOAD_CLASSDEREF] = LOAD_CLASSDEREF, - [LOAD_CLOSURE] = LOAD_CLOSURE, - [LOAD_CONST] = LOAD_CONST, - [LOAD_CONST__LOAD_FAST] = LOAD_CONST, - [LOAD_DEREF] = LOAD_DEREF, - [LOAD_FAST] = LOAD_FAST, - [LOAD_FAST__LOAD_CONST] = LOAD_FAST, - [LOAD_FAST__LOAD_FAST] = LOAD_FAST, - [LOAD_GLOBAL] = LOAD_GLOBAL, - [LOAD_GLOBAL_ADAPTIVE] = LOAD_GLOBAL, - [LOAD_GLOBAL_BUILTIN] = LOAD_GLOBAL, - [LOAD_GLOBAL_MODULE] = LOAD_GLOBAL, - [LOAD_METHOD] = LOAD_METHOD, - [LOAD_METHOD_ADAPTIVE] = LOAD_METHOD, - [LOAD_METHOD_CLASS] = LOAD_METHOD, - [LOAD_METHOD_LAZY_DICT] = LOAD_METHOD, - [LOAD_METHOD_MODULE] = LOAD_METHOD, - [LOAD_METHOD_NO_DICT] = LOAD_METHOD, - [LOAD_METHOD_WITH_DICT] = LOAD_METHOD, - [LOAD_METHOD_WITH_VALUES] = LOAD_METHOD, [LOAD_NAME] = LOAD_NAME, [MAKE_CELL] = MAKE_CELL, [MAKE_FUNCTION] = MAKE_FUNCTION, @@ -364,14 +187,10 @@ const uint8_t _PyOpcode_Original[256] = { [MATCH_SEQUENCE] = MATCH_SEQUENCE, [NOP] = NOP, [POP_EXCEPT] = POP_EXCEPT, - [POP_JUMP_BACKWARD_IF_FALSE] = POP_JUMP_BACKWARD_IF_FALSE, - [POP_JUMP_BACKWARD_IF_NONE] = POP_JUMP_BACKWARD_IF_NONE, - [POP_JUMP_BACKWARD_IF_NOT_NONE] = POP_JUMP_BACKWARD_IF_NOT_NONE, - [POP_JUMP_BACKWARD_IF_TRUE] = POP_JUMP_BACKWARD_IF_TRUE, - [POP_JUMP_FORWARD_IF_FALSE] = POP_JUMP_FORWARD_IF_FALSE, - [POP_JUMP_FORWARD_IF_NONE] = POP_JUMP_FORWARD_IF_NONE, - [POP_JUMP_FORWARD_IF_NOT_NONE] = POP_JUMP_FORWARD_IF_NOT_NONE, - [POP_JUMP_FORWARD_IF_TRUE] = POP_JUMP_FORWARD_IF_TRUE, + [POP_JUMP_IF_FALSE] = POP_JUMP_IF_FALSE, + [POP_JUMP_IF_NONE] = POP_JUMP_IF_NONE, + [POP_JUMP_IF_NOT_NONE] = POP_JUMP_IF_NOT_NONE, + [POP_JUMP_IF_TRUE] = POP_JUMP_IF_TRUE, [POP_TOP] = POP_TOP, [PREP_RERAISE_STAR] = PREP_RERAISE_STAR, [PRINT_EXPR] = PRINT_EXPR, @@ -398,6 +217,7 @@ const uint8_t _PyOpcode_Original[256] = { [STORE_FAST__STORE_FAST] = STORE_FAST, [STORE_GLOBAL] = STORE_GLOBAL, [STORE_NAME] = STORE_NAME, + [STORE_SLICE] = STORE_SLICE, [STORE_SUBSCR] = STORE_SUBSCR, [STORE_SUBSCR_ADAPTIVE] = STORE_SUBSCR, [STORE_SUBSCR_DICT] = STORE_SUBSCR, @@ -419,7 +239,7 @@ const uint8_t _PyOpcode_Original[256] = { #endif // NEED_OPCODE_TABLES #ifdef Py_DEBUG -static const char *const _PyOpcode_OpName[256] = { +static const char *const _PyOpcode_OpName[263] = { [CACHE] = "CACHE", [POP_TOP] = "POP_TOP", [PUSH_NULL] = "PUSH_NULL", @@ -446,18 +266,20 @@ static const char *const _PyOpcode_OpName[256] = { [CALL_PY_EXACT_ARGS] = "CALL_PY_EXACT_ARGS", [CALL_PY_WITH_DEFAULTS] = "CALL_PY_WITH_DEFAULTS", [BINARY_SUBSCR] = "BINARY_SUBSCR", + [BINARY_SLICE] = "BINARY_SLICE", + [STORE_SLICE] = "STORE_SLICE", [CALL_BOUND_METHOD_EXACT_ARGS] = "CALL_BOUND_METHOD_EXACT_ARGS", [CALL_BUILTIN_CLASS] = "CALL_BUILTIN_CLASS", - [CALL_BUILTIN_FAST_WITH_KEYWORDS] = "CALL_BUILTIN_FAST_WITH_KEYWORDS", - [CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS] = "CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS", [GET_LEN] = "GET_LEN", [MATCH_MAPPING] = "MATCH_MAPPING", [MATCH_SEQUENCE] = "MATCH_SEQUENCE", [MATCH_KEYS] = "MATCH_KEYS", - [CALL_NO_KW_BUILTIN_FAST] = "CALL_NO_KW_BUILTIN_FAST", + [CALL_BUILTIN_FAST_WITH_KEYWORDS] = "CALL_BUILTIN_FAST_WITH_KEYWORDS", [PUSH_EXC_INFO] = "PUSH_EXC_INFO", [CHECK_EXC_MATCH] = "CHECK_EXC_MATCH", [CHECK_EG_MATCH] = "CHECK_EG_MATCH", + [CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS] = "CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS", + [CALL_NO_KW_BUILTIN_FAST] = "CALL_NO_KW_BUILTIN_FAST", [CALL_NO_KW_BUILTIN_O] = "CALL_NO_KW_BUILTIN_O", [CALL_NO_KW_ISINSTANCE] = "CALL_NO_KW_ISINSTANCE", [CALL_NO_KW_LEN] = "CALL_NO_KW_LEN", @@ -467,46 +289,44 @@ static const char *const _PyOpcode_OpName[256] = { [CALL_NO_KW_METHOD_DESCRIPTOR_O] = "CALL_NO_KW_METHOD_DESCRIPTOR_O", [CALL_NO_KW_STR_1] = "CALL_NO_KW_STR_1", [CALL_NO_KW_TUPLE_1] = "CALL_NO_KW_TUPLE_1", - [CALL_NO_KW_TYPE_1] = "CALL_NO_KW_TYPE_1", - [COMPARE_OP_ADAPTIVE] = "COMPARE_OP_ADAPTIVE", [WITH_EXCEPT_START] = "WITH_EXCEPT_START", [GET_AITER] = "GET_AITER", [GET_ANEXT] = "GET_ANEXT", [BEFORE_ASYNC_WITH] = "BEFORE_ASYNC_WITH", [BEFORE_WITH] = "BEFORE_WITH", [END_ASYNC_FOR] = "END_ASYNC_FOR", + [CLEANUP_THROW] = "CLEANUP_THROW", + [CALL_NO_KW_TYPE_1] = "CALL_NO_KW_TYPE_1", + [COMPARE_OP_ADAPTIVE] = "COMPARE_OP_ADAPTIVE", [COMPARE_OP_FLOAT_JUMP] = "COMPARE_OP_FLOAT_JUMP", [COMPARE_OP_INT_JUMP] = "COMPARE_OP_INT_JUMP", + [STORE_SUBSCR] = "STORE_SUBSCR", + [DELETE_SUBSCR] = "DELETE_SUBSCR", [COMPARE_OP_STR_JUMP] = "COMPARE_OP_STR_JUMP", [EXTENDED_ARG_QUICK] = "EXTENDED_ARG_QUICK", + [FOR_ITER_ADAPTIVE] = "FOR_ITER_ADAPTIVE", + [FOR_ITER_LIST] = "FOR_ITER_LIST", + [FOR_ITER_RANGE] = "FOR_ITER_RANGE", [JUMP_BACKWARD_QUICK] = "JUMP_BACKWARD_QUICK", - [STORE_SUBSCR] = "STORE_SUBSCR", - [DELETE_SUBSCR] = "DELETE_SUBSCR", - [LOAD_ATTR_ADAPTIVE] = "LOAD_ATTR_ADAPTIVE", - [LOAD_ATTR_INSTANCE_VALUE] = "LOAD_ATTR_INSTANCE_VALUE", - [LOAD_ATTR_MODULE] = "LOAD_ATTR_MODULE", - [LOAD_ATTR_SLOT] = "LOAD_ATTR_SLOT", - [LOAD_ATTR_WITH_HINT] = "LOAD_ATTR_WITH_HINT", - [LOAD_CONST__LOAD_FAST] = "LOAD_CONST__LOAD_FAST", [GET_ITER] = "GET_ITER", [GET_YIELD_FROM_ITER] = "GET_YIELD_FROM_ITER", [PRINT_EXPR] = "PRINT_EXPR", [LOAD_BUILD_CLASS] = "LOAD_BUILD_CLASS", - [LOAD_FAST__LOAD_CONST] = "LOAD_FAST__LOAD_CONST", - [LOAD_FAST__LOAD_FAST] = "LOAD_FAST__LOAD_FAST", + [LOAD_ATTR_ADAPTIVE] = "LOAD_ATTR_ADAPTIVE", + [LOAD_ATTR_CLASS] = "LOAD_ATTR_CLASS", [LOAD_ASSERTION_ERROR] = "LOAD_ASSERTION_ERROR", [RETURN_GENERATOR] = "RETURN_GENERATOR", - [LOAD_GLOBAL_ADAPTIVE] = "LOAD_GLOBAL_ADAPTIVE", - [LOAD_GLOBAL_BUILTIN] = "LOAD_GLOBAL_BUILTIN", - [LOAD_GLOBAL_MODULE] = "LOAD_GLOBAL_MODULE", - [LOAD_METHOD_ADAPTIVE] = "LOAD_METHOD_ADAPTIVE", - [LOAD_METHOD_CLASS] = "LOAD_METHOD_CLASS", - [LOAD_METHOD_LAZY_DICT] = "LOAD_METHOD_LAZY_DICT", + [LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN] = "LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN", + [LOAD_ATTR_INSTANCE_VALUE] = "LOAD_ATTR_INSTANCE_VALUE", + [LOAD_ATTR_MODULE] = "LOAD_ATTR_MODULE", + [LOAD_ATTR_PROPERTY] = "LOAD_ATTR_PROPERTY", + [LOAD_ATTR_SLOT] = "LOAD_ATTR_SLOT", + [LOAD_ATTR_WITH_HINT] = "LOAD_ATTR_WITH_HINT", [LIST_TO_TUPLE] = "LIST_TO_TUPLE", [RETURN_VALUE] = "RETURN_VALUE", [IMPORT_STAR] = "IMPORT_STAR", [SETUP_ANNOTATIONS] = "SETUP_ANNOTATIONS", - [LOAD_METHOD_MODULE] = "LOAD_METHOD_MODULE", + [LOAD_ATTR_METHOD_LAZY_DICT] = "LOAD_ATTR_METHOD_LAZY_DICT", [ASYNC_GEN_WRAP] = "ASYNC_GEN_WRAP", [PREP_RERAISE_STAR] = "PREP_RERAISE_STAR", [POP_EXCEPT] = "POP_EXCEPT", @@ -533,23 +353,23 @@ static const char *const _PyOpcode_OpName[256] = { [JUMP_FORWARD] = "JUMP_FORWARD", [JUMP_IF_FALSE_OR_POP] = "JUMP_IF_FALSE_OR_POP", [JUMP_IF_TRUE_OR_POP] = "JUMP_IF_TRUE_OR_POP", - [LOAD_METHOD_NO_DICT] = "LOAD_METHOD_NO_DICT", - [POP_JUMP_FORWARD_IF_FALSE] = "POP_JUMP_FORWARD_IF_FALSE", - [POP_JUMP_FORWARD_IF_TRUE] = "POP_JUMP_FORWARD_IF_TRUE", + [LOAD_ATTR_METHOD_NO_DICT] = "LOAD_ATTR_METHOD_NO_DICT", + [POP_JUMP_IF_FALSE] = "POP_JUMP_IF_FALSE", + [POP_JUMP_IF_TRUE] = "POP_JUMP_IF_TRUE", [LOAD_GLOBAL] = "LOAD_GLOBAL", [IS_OP] = "IS_OP", [CONTAINS_OP] = "CONTAINS_OP", [RERAISE] = "RERAISE", [COPY] = "COPY", - [LOAD_METHOD_WITH_DICT] = "LOAD_METHOD_WITH_DICT", + [LOAD_ATTR_METHOD_WITH_DICT] = "LOAD_ATTR_METHOD_WITH_DICT", [BINARY_OP] = "BINARY_OP", [SEND] = "SEND", [LOAD_FAST] = "LOAD_FAST", [STORE_FAST] = "STORE_FAST", [DELETE_FAST] = "DELETE_FAST", - [LOAD_METHOD_WITH_VALUES] = "LOAD_METHOD_WITH_VALUES", - [POP_JUMP_FORWARD_IF_NOT_NONE] = "POP_JUMP_FORWARD_IF_NOT_NONE", - [POP_JUMP_FORWARD_IF_NONE] = "POP_JUMP_FORWARD_IF_NONE", + [LOAD_FAST_CHECK] = "LOAD_FAST_CHECK", + [POP_JUMP_IF_NOT_NONE] = "POP_JUMP_IF_NOT_NONE", + [POP_JUMP_IF_NONE] = "POP_JUMP_IF_NONE", [RAISE_VARARGS] = "RAISE_VARARGS", [GET_AWAITABLE] = "GET_AWAITABLE", [MAKE_FUNCTION] = "MAKE_FUNCTION", @@ -561,9 +381,9 @@ static const char *const _PyOpcode_OpName[256] = { [STORE_DEREF] = "STORE_DEREF", [DELETE_DEREF] = "DELETE_DEREF", [JUMP_BACKWARD] = "JUMP_BACKWARD", - [RESUME_QUICK] = "RESUME_QUICK", + [LOAD_ATTR_METHOD_WITH_VALUES] = "LOAD_ATTR_METHOD_WITH_VALUES", [CALL_FUNCTION_EX] = "CALL_FUNCTION_EX", - [STORE_ATTR_ADAPTIVE] = "STORE_ATTR_ADAPTIVE", + [LOAD_CONST__LOAD_FAST] = "LOAD_CONST__LOAD_FAST", [EXTENDED_ARG] = "EXTENDED_ARG", [LIST_APPEND] = "LIST_APPEND", [SET_ADD] = "SET_ADD", @@ -573,34 +393,34 @@ static const char *const _PyOpcode_OpName[256] = { [YIELD_VALUE] = "YIELD_VALUE", [RESUME] = "RESUME", [MATCH_CLASS] = "MATCH_CLASS", - [STORE_ATTR_INSTANCE_VALUE] = "STORE_ATTR_INSTANCE_VALUE", - [STORE_ATTR_SLOT] = "STORE_ATTR_SLOT", + [LOAD_FAST__LOAD_CONST] = "LOAD_FAST__LOAD_CONST", + [LOAD_FAST__LOAD_FAST] = "LOAD_FAST__LOAD_FAST", [FORMAT_VALUE] = "FORMAT_VALUE", [BUILD_CONST_KEY_MAP] = "BUILD_CONST_KEY_MAP", [BUILD_STRING] = "BUILD_STRING", - [STORE_ATTR_WITH_HINT] = "STORE_ATTR_WITH_HINT", - [STORE_FAST__LOAD_FAST] = "STORE_FAST__LOAD_FAST", - [LOAD_METHOD] = "LOAD_METHOD", - [STORE_FAST__STORE_FAST] = "STORE_FAST__STORE_FAST", + [LOAD_GLOBAL_ADAPTIVE] = "LOAD_GLOBAL_ADAPTIVE", + [LOAD_GLOBAL_BUILTIN] = "LOAD_GLOBAL_BUILTIN", + [LOAD_GLOBAL_MODULE] = "LOAD_GLOBAL_MODULE", + [RESUME_QUICK] = "RESUME_QUICK", [LIST_EXTEND] = "LIST_EXTEND", [SET_UPDATE] = "SET_UPDATE", [DICT_MERGE] = "DICT_MERGE", [DICT_UPDATE] = "DICT_UPDATE", + [STORE_ATTR_ADAPTIVE] = "STORE_ATTR_ADAPTIVE", + [STORE_ATTR_INSTANCE_VALUE] = "STORE_ATTR_INSTANCE_VALUE", + [STORE_ATTR_SLOT] = "STORE_ATTR_SLOT", + [STORE_ATTR_WITH_HINT] = "STORE_ATTR_WITH_HINT", + [STORE_FAST__LOAD_FAST] = "STORE_FAST__LOAD_FAST", + [CALL] = "CALL", + [KW_NAMES] = "KW_NAMES", + [STORE_FAST__STORE_FAST] = "STORE_FAST__STORE_FAST", [STORE_SUBSCR_ADAPTIVE] = "STORE_SUBSCR_ADAPTIVE", [STORE_SUBSCR_DICT] = "STORE_SUBSCR_DICT", [STORE_SUBSCR_LIST_INT] = "STORE_SUBSCR_LIST_INT", [UNPACK_SEQUENCE_ADAPTIVE] = "UNPACK_SEQUENCE_ADAPTIVE", [UNPACK_SEQUENCE_LIST] = "UNPACK_SEQUENCE_LIST", - [CALL] = "CALL", - [KW_NAMES] = "KW_NAMES", - [POP_JUMP_BACKWARD_IF_NOT_NONE] = "POP_JUMP_BACKWARD_IF_NOT_NONE", - [POP_JUMP_BACKWARD_IF_NONE] = "POP_JUMP_BACKWARD_IF_NONE", - [POP_JUMP_BACKWARD_IF_FALSE] = "POP_JUMP_BACKWARD_IF_FALSE", - [POP_JUMP_BACKWARD_IF_TRUE] = "POP_JUMP_BACKWARD_IF_TRUE", [UNPACK_SEQUENCE_TUPLE] = "UNPACK_SEQUENCE_TUPLE", [UNPACK_SEQUENCE_TWO_TUPLE] = "UNPACK_SEQUENCE_TWO_TUPLE", - [179] = "<179>", - [180] = "<180>", [181] = "<181>", [182] = "<182>", [183] = "<183>", @@ -676,12 +496,17 @@ static const char *const _PyOpcode_OpName[256] = { [253] = "<253>", [254] = "<254>", [DO_TRACING] = "DO_TRACING", + [SETUP_FINALLY] = "SETUP_FINALLY", + [SETUP_CLEANUP] = "SETUP_CLEANUP", + [SETUP_WITH] = "SETUP_WITH", + [POP_BLOCK] = "POP_BLOCK", + [JUMP] = "JUMP", + [JUMP_NO_INTERRUPT] = "JUMP_NO_INTERRUPT", + [LOAD_METHOD] = "LOAD_METHOD", }; #endif #define EXTRA_CASES \ - case 179: \ - case 180: \ case 181: \ case 182: \ case 183: \ diff --git a/Include/internal/pycore_pystate.h b/Include/internal/pycore_pystate.h index c4bc53c707fdaf..3d6d400f74dd1d 100644 --- a/Include/internal/pycore_pystate.h +++ b/Include/internal/pycore_pystate.h @@ -64,18 +64,10 @@ _Py_ThreadCanHandlePendingCalls(void) /* Variable and macro for in-line access to current thread and interpreter state */ -#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS -PyAPI_FUNC(PyThreadState*) _PyThreadState_GetTSS(void); -#endif - static inline PyThreadState* _PyRuntimeState_GetThreadState(_PyRuntimeState *runtime) { -#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS - return _PyThreadState_GetTSS(); -#else return (PyThreadState*)_Py_atomic_load_relaxed(&runtime->gilstate.tstate_current); -#endif } /* Get the current Python thread state. @@ -90,26 +82,23 @@ _PyRuntimeState_GetThreadState(_PyRuntimeState *runtime) static inline PyThreadState* _PyThreadState_GET(void) { -#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS - return _PyThreadState_GetTSS(); -#else return _PyRuntimeState_GetThreadState(&_PyRuntime); -#endif } -PyAPI_FUNC(void) _Py_NO_RETURN _Py_FatalError_TstateNULL(const char *func); - static inline void _Py_EnsureFuncTstateNotNULL(const char *func, PyThreadState *tstate) { if (tstate == NULL) { - _Py_FatalError_TstateNULL(func); + _Py_FatalErrorFunc(func, + "the function must be called with the GIL held, " + "after Python initialization and before Python finalization, " + "but the GIL is released (the current Python thread state is NULL)"); } } // Call Py_FatalError() if tstate is NULL #define _Py_EnsureTstateNotNULL(tstate) \ - _Py_EnsureFuncTstateNotNULL(__func__, tstate) + _Py_EnsureFuncTstateNotNULL(__func__, (tstate)) /* Get the current interpreter state. @@ -143,8 +132,9 @@ PyAPI_FUNC(void) _PyThreadState_DeleteExcept( static inline void _PyThreadState_UpdateTracingState(PyThreadState *tstate) { - int use_tracing = (tstate->c_tracefunc != NULL - || tstate->c_profilefunc != NULL); + bool use_tracing = + (tstate->tracing == 0) && + (tstate->c_tracefunc != NULL || tstate->c_profilefunc != NULL); tstate->cframe->use_tracing = (use_tracing ? 255 : 0); } diff --git a/Include/internal/pycore_range.h b/Include/internal/pycore_range.h new file mode 100644 index 00000000000000..809e89a1e01b60 --- /dev/null +++ b/Include/internal/pycore_range.h @@ -0,0 +1,22 @@ +#ifndef Py_INTERNAL_RANGE_H +#define Py_INTERNAL_RANGE_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +typedef struct { + PyObject_HEAD + long index; + long start; + long step; + long len; +} _PyRangeIterObject; + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_RANGE_H */ diff --git a/Include/internal/pycore_runtime.h b/Include/internal/pycore_runtime.h index 18191c3771dfcc..2c04ead45869fc 100644 --- a/Include/internal/pycore_runtime.h +++ b/Include/internal/pycore_runtime.h @@ -14,6 +14,9 @@ extern "C" { #include "pycore_interp.h" // PyInterpreterState #include "pycore_unicodeobject.h" // struct _Py_unicode_runtime_ids +struct _getargs_runtime_state { + PyThread_type_lock mutex; +}; /* ceval state */ @@ -23,9 +26,7 @@ struct _ceval_runtime_state { the main thread of the main interpreter can handle signals: see _Py_ThreadCanHandleSignals(). */ _Py_atomic_int signals_pending; -#ifndef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS struct _gil_runtime_state gil; -#endif }; /* GIL state */ @@ -116,6 +117,7 @@ typedef struct pyruntimestate { struct _ceval_runtime_state ceval; struct _gilstate_runtime_state gilstate; + struct _getargs_runtime_state getargs; PyPreConfig preconfig; diff --git a/Include/internal/pycore_runtime_init.h b/Include/internal/pycore_runtime_init.h index 737507f07eacce..621d5cc864255d 100644 --- a/Include/internal/pycore_runtime_init.h +++ b/Include/internal/pycore_runtime_init.h @@ -84,13 +84,13 @@ extern "C" { #define _PyBytes_SIMPLE_INIT(CH, LEN) \ { \ - _PyVarObject_IMMORTAL_INIT(&PyBytes_Type, LEN), \ + _PyVarObject_IMMORTAL_INIT(&PyBytes_Type, (LEN)), \ .ob_shash = -1, \ - .ob_sval = { CH }, \ + .ob_sval = { (CH) }, \ } #define _PyBytes_CHAR_INIT(CH) \ { \ - _PyBytes_SIMPLE_INIT(CH, 1) \ + _PyBytes_SIMPLE_INIT((CH), 1) \ } #define _PyUnicode_ASCII_BASE_INIT(LITERAL, ASCII) \ @@ -101,1152 +101,29 @@ extern "C" { .state = { \ .kind = 1, \ .compact = 1, \ - .ascii = ASCII, \ + .ascii = (ASCII), \ }, \ } #define _PyASCIIObject_INIT(LITERAL) \ { \ - ._ascii = _PyUnicode_ASCII_BASE_INIT(LITERAL, 1), \ - ._data = LITERAL \ + ._ascii = _PyUnicode_ASCII_BASE_INIT((LITERAL), 1), \ + ._data = (LITERAL) \ } #define INIT_STR(NAME, LITERAL) \ ._ ## NAME = _PyASCIIObject_INIT(LITERAL) #define INIT_ID(NAME) \ ._ ## NAME = _PyASCIIObject_INIT(#NAME) -#define _PyUnicode_LATIN1_INIT(LITERAL) \ +#define _PyUnicode_LATIN1_INIT(LITERAL, UTF8) \ { \ ._latin1 = { \ - ._base = _PyUnicode_ASCII_BASE_INIT(LITERAL, 0), \ + ._base = _PyUnicode_ASCII_BASE_INIT((LITERAL), 0), \ + .utf8 = (UTF8), \ + .utf8_length = sizeof(UTF8) - 1, \ }, \ - ._data = LITERAL, \ + ._data = (LITERAL), \ } -/* The following is auto-generated by Tools/scripts/generate_global_objects.py. */ -#define _Py_global_objects_INIT { \ - .singletons = { \ - .small_ints = { \ - _PyLong_DIGIT_INIT(-5), \ - _PyLong_DIGIT_INIT(-4), \ - _PyLong_DIGIT_INIT(-3), \ - _PyLong_DIGIT_INIT(-2), \ - _PyLong_DIGIT_INIT(-1), \ - _PyLong_DIGIT_INIT(0), \ - _PyLong_DIGIT_INIT(1), \ - _PyLong_DIGIT_INIT(2), \ - _PyLong_DIGIT_INIT(3), \ - _PyLong_DIGIT_INIT(4), \ - _PyLong_DIGIT_INIT(5), \ - _PyLong_DIGIT_INIT(6), \ - _PyLong_DIGIT_INIT(7), \ - _PyLong_DIGIT_INIT(8), \ - _PyLong_DIGIT_INIT(9), \ - _PyLong_DIGIT_INIT(10), \ - _PyLong_DIGIT_INIT(11), \ - _PyLong_DIGIT_INIT(12), \ - _PyLong_DIGIT_INIT(13), \ - _PyLong_DIGIT_INIT(14), \ - _PyLong_DIGIT_INIT(15), \ - _PyLong_DIGIT_INIT(16), \ - _PyLong_DIGIT_INIT(17), \ - _PyLong_DIGIT_INIT(18), \ - _PyLong_DIGIT_INIT(19), \ - _PyLong_DIGIT_INIT(20), \ - _PyLong_DIGIT_INIT(21), \ - _PyLong_DIGIT_INIT(22), \ - _PyLong_DIGIT_INIT(23), \ - _PyLong_DIGIT_INIT(24), \ - _PyLong_DIGIT_INIT(25), \ - _PyLong_DIGIT_INIT(26), \ - _PyLong_DIGIT_INIT(27), \ - _PyLong_DIGIT_INIT(28), \ - _PyLong_DIGIT_INIT(29), \ - _PyLong_DIGIT_INIT(30), \ - _PyLong_DIGIT_INIT(31), \ - _PyLong_DIGIT_INIT(32), \ - _PyLong_DIGIT_INIT(33), \ - _PyLong_DIGIT_INIT(34), \ - _PyLong_DIGIT_INIT(35), \ - _PyLong_DIGIT_INIT(36), \ - _PyLong_DIGIT_INIT(37), \ - _PyLong_DIGIT_INIT(38), \ - _PyLong_DIGIT_INIT(39), \ - _PyLong_DIGIT_INIT(40), \ - _PyLong_DIGIT_INIT(41), \ - _PyLong_DIGIT_INIT(42), \ - _PyLong_DIGIT_INIT(43), \ - _PyLong_DIGIT_INIT(44), \ - _PyLong_DIGIT_INIT(45), \ - _PyLong_DIGIT_INIT(46), \ - _PyLong_DIGIT_INIT(47), \ - _PyLong_DIGIT_INIT(48), \ - _PyLong_DIGIT_INIT(49), \ - _PyLong_DIGIT_INIT(50), \ - _PyLong_DIGIT_INIT(51), \ - _PyLong_DIGIT_INIT(52), \ - _PyLong_DIGIT_INIT(53), \ - _PyLong_DIGIT_INIT(54), \ - _PyLong_DIGIT_INIT(55), \ - _PyLong_DIGIT_INIT(56), \ - _PyLong_DIGIT_INIT(57), \ - _PyLong_DIGIT_INIT(58), \ - _PyLong_DIGIT_INIT(59), \ - _PyLong_DIGIT_INIT(60), \ - _PyLong_DIGIT_INIT(61), \ - _PyLong_DIGIT_INIT(62), \ - _PyLong_DIGIT_INIT(63), \ - _PyLong_DIGIT_INIT(64), \ - _PyLong_DIGIT_INIT(65), \ - _PyLong_DIGIT_INIT(66), \ - _PyLong_DIGIT_INIT(67), \ - _PyLong_DIGIT_INIT(68), \ - _PyLong_DIGIT_INIT(69), \ - _PyLong_DIGIT_INIT(70), \ - _PyLong_DIGIT_INIT(71), \ - _PyLong_DIGIT_INIT(72), \ - _PyLong_DIGIT_INIT(73), \ - _PyLong_DIGIT_INIT(74), \ - _PyLong_DIGIT_INIT(75), \ - _PyLong_DIGIT_INIT(76), \ - _PyLong_DIGIT_INIT(77), \ - _PyLong_DIGIT_INIT(78), \ - _PyLong_DIGIT_INIT(79), \ - _PyLong_DIGIT_INIT(80), \ - _PyLong_DIGIT_INIT(81), \ - _PyLong_DIGIT_INIT(82), \ - _PyLong_DIGIT_INIT(83), \ - _PyLong_DIGIT_INIT(84), \ - _PyLong_DIGIT_INIT(85), \ - _PyLong_DIGIT_INIT(86), \ - _PyLong_DIGIT_INIT(87), \ - _PyLong_DIGIT_INIT(88), \ - _PyLong_DIGIT_INIT(89), \ - _PyLong_DIGIT_INIT(90), \ - _PyLong_DIGIT_INIT(91), \ - _PyLong_DIGIT_INIT(92), \ - _PyLong_DIGIT_INIT(93), \ - _PyLong_DIGIT_INIT(94), \ - _PyLong_DIGIT_INIT(95), \ - _PyLong_DIGIT_INIT(96), \ - _PyLong_DIGIT_INIT(97), \ - _PyLong_DIGIT_INIT(98), \ - _PyLong_DIGIT_INIT(99), \ - _PyLong_DIGIT_INIT(100), \ - _PyLong_DIGIT_INIT(101), \ - _PyLong_DIGIT_INIT(102), \ - _PyLong_DIGIT_INIT(103), \ - _PyLong_DIGIT_INIT(104), \ - _PyLong_DIGIT_INIT(105), \ - _PyLong_DIGIT_INIT(106), \ - _PyLong_DIGIT_INIT(107), \ - _PyLong_DIGIT_INIT(108), \ - _PyLong_DIGIT_INIT(109), \ - _PyLong_DIGIT_INIT(110), \ - _PyLong_DIGIT_INIT(111), \ - _PyLong_DIGIT_INIT(112), \ - _PyLong_DIGIT_INIT(113), \ - _PyLong_DIGIT_INIT(114), \ - _PyLong_DIGIT_INIT(115), \ - _PyLong_DIGIT_INIT(116), \ - _PyLong_DIGIT_INIT(117), \ - _PyLong_DIGIT_INIT(118), \ - _PyLong_DIGIT_INIT(119), \ - _PyLong_DIGIT_INIT(120), \ - _PyLong_DIGIT_INIT(121), \ - _PyLong_DIGIT_INIT(122), \ - _PyLong_DIGIT_INIT(123), \ - _PyLong_DIGIT_INIT(124), \ - _PyLong_DIGIT_INIT(125), \ - _PyLong_DIGIT_INIT(126), \ - _PyLong_DIGIT_INIT(127), \ - _PyLong_DIGIT_INIT(128), \ - _PyLong_DIGIT_INIT(129), \ - _PyLong_DIGIT_INIT(130), \ - _PyLong_DIGIT_INIT(131), \ - _PyLong_DIGIT_INIT(132), \ - _PyLong_DIGIT_INIT(133), \ - _PyLong_DIGIT_INIT(134), \ - _PyLong_DIGIT_INIT(135), \ - _PyLong_DIGIT_INIT(136), \ - _PyLong_DIGIT_INIT(137), \ - _PyLong_DIGIT_INIT(138), \ - _PyLong_DIGIT_INIT(139), \ - _PyLong_DIGIT_INIT(140), \ - _PyLong_DIGIT_INIT(141), \ - _PyLong_DIGIT_INIT(142), \ - _PyLong_DIGIT_INIT(143), \ - _PyLong_DIGIT_INIT(144), \ - _PyLong_DIGIT_INIT(145), \ - _PyLong_DIGIT_INIT(146), \ - _PyLong_DIGIT_INIT(147), \ - _PyLong_DIGIT_INIT(148), \ - _PyLong_DIGIT_INIT(149), \ - _PyLong_DIGIT_INIT(150), \ - _PyLong_DIGIT_INIT(151), \ - _PyLong_DIGIT_INIT(152), \ - _PyLong_DIGIT_INIT(153), \ - _PyLong_DIGIT_INIT(154), \ - _PyLong_DIGIT_INIT(155), \ - _PyLong_DIGIT_INIT(156), \ - _PyLong_DIGIT_INIT(157), \ - _PyLong_DIGIT_INIT(158), \ - _PyLong_DIGIT_INIT(159), \ - _PyLong_DIGIT_INIT(160), \ - _PyLong_DIGIT_INIT(161), \ - _PyLong_DIGIT_INIT(162), \ - _PyLong_DIGIT_INIT(163), \ - _PyLong_DIGIT_INIT(164), \ - _PyLong_DIGIT_INIT(165), \ - _PyLong_DIGIT_INIT(166), \ - _PyLong_DIGIT_INIT(167), \ - _PyLong_DIGIT_INIT(168), \ - _PyLong_DIGIT_INIT(169), \ - _PyLong_DIGIT_INIT(170), \ - _PyLong_DIGIT_INIT(171), \ - _PyLong_DIGIT_INIT(172), \ - _PyLong_DIGIT_INIT(173), \ - _PyLong_DIGIT_INIT(174), \ - _PyLong_DIGIT_INIT(175), \ - _PyLong_DIGIT_INIT(176), \ - _PyLong_DIGIT_INIT(177), \ - _PyLong_DIGIT_INIT(178), \ - _PyLong_DIGIT_INIT(179), \ - _PyLong_DIGIT_INIT(180), \ - _PyLong_DIGIT_INIT(181), \ - _PyLong_DIGIT_INIT(182), \ - _PyLong_DIGIT_INIT(183), \ - _PyLong_DIGIT_INIT(184), \ - _PyLong_DIGIT_INIT(185), \ - _PyLong_DIGIT_INIT(186), \ - _PyLong_DIGIT_INIT(187), \ - _PyLong_DIGIT_INIT(188), \ - _PyLong_DIGIT_INIT(189), \ - _PyLong_DIGIT_INIT(190), \ - _PyLong_DIGIT_INIT(191), \ - _PyLong_DIGIT_INIT(192), \ - _PyLong_DIGIT_INIT(193), \ - _PyLong_DIGIT_INIT(194), \ - _PyLong_DIGIT_INIT(195), \ - _PyLong_DIGIT_INIT(196), \ - _PyLong_DIGIT_INIT(197), \ - _PyLong_DIGIT_INIT(198), \ - _PyLong_DIGIT_INIT(199), \ - _PyLong_DIGIT_INIT(200), \ - _PyLong_DIGIT_INIT(201), \ - _PyLong_DIGIT_INIT(202), \ - _PyLong_DIGIT_INIT(203), \ - _PyLong_DIGIT_INIT(204), \ - _PyLong_DIGIT_INIT(205), \ - _PyLong_DIGIT_INIT(206), \ - _PyLong_DIGIT_INIT(207), \ - _PyLong_DIGIT_INIT(208), \ - _PyLong_DIGIT_INIT(209), \ - _PyLong_DIGIT_INIT(210), \ - _PyLong_DIGIT_INIT(211), \ - _PyLong_DIGIT_INIT(212), \ - _PyLong_DIGIT_INIT(213), \ - _PyLong_DIGIT_INIT(214), \ - _PyLong_DIGIT_INIT(215), \ - _PyLong_DIGIT_INIT(216), \ - _PyLong_DIGIT_INIT(217), \ - _PyLong_DIGIT_INIT(218), \ - _PyLong_DIGIT_INIT(219), \ - _PyLong_DIGIT_INIT(220), \ - _PyLong_DIGIT_INIT(221), \ - _PyLong_DIGIT_INIT(222), \ - _PyLong_DIGIT_INIT(223), \ - _PyLong_DIGIT_INIT(224), \ - _PyLong_DIGIT_INIT(225), \ - _PyLong_DIGIT_INIT(226), \ - _PyLong_DIGIT_INIT(227), \ - _PyLong_DIGIT_INIT(228), \ - _PyLong_DIGIT_INIT(229), \ - _PyLong_DIGIT_INIT(230), \ - _PyLong_DIGIT_INIT(231), \ - _PyLong_DIGIT_INIT(232), \ - _PyLong_DIGIT_INIT(233), \ - _PyLong_DIGIT_INIT(234), \ - _PyLong_DIGIT_INIT(235), \ - _PyLong_DIGIT_INIT(236), \ - _PyLong_DIGIT_INIT(237), \ - _PyLong_DIGIT_INIT(238), \ - _PyLong_DIGIT_INIT(239), \ - _PyLong_DIGIT_INIT(240), \ - _PyLong_DIGIT_INIT(241), \ - _PyLong_DIGIT_INIT(242), \ - _PyLong_DIGIT_INIT(243), \ - _PyLong_DIGIT_INIT(244), \ - _PyLong_DIGIT_INIT(245), \ - _PyLong_DIGIT_INIT(246), \ - _PyLong_DIGIT_INIT(247), \ - _PyLong_DIGIT_INIT(248), \ - _PyLong_DIGIT_INIT(249), \ - _PyLong_DIGIT_INIT(250), \ - _PyLong_DIGIT_INIT(251), \ - _PyLong_DIGIT_INIT(252), \ - _PyLong_DIGIT_INIT(253), \ - _PyLong_DIGIT_INIT(254), \ - _PyLong_DIGIT_INIT(255), \ - _PyLong_DIGIT_INIT(256), \ - }, \ - \ - .bytes_empty = _PyBytes_SIMPLE_INIT(0, 0), \ - .bytes_characters = { \ - _PyBytes_CHAR_INIT(0), \ - _PyBytes_CHAR_INIT(1), \ - _PyBytes_CHAR_INIT(2), \ - _PyBytes_CHAR_INIT(3), \ - _PyBytes_CHAR_INIT(4), \ - _PyBytes_CHAR_INIT(5), \ - _PyBytes_CHAR_INIT(6), \ - _PyBytes_CHAR_INIT(7), \ - _PyBytes_CHAR_INIT(8), \ - _PyBytes_CHAR_INIT(9), \ - _PyBytes_CHAR_INIT(10), \ - _PyBytes_CHAR_INIT(11), \ - _PyBytes_CHAR_INIT(12), \ - _PyBytes_CHAR_INIT(13), \ - _PyBytes_CHAR_INIT(14), \ - _PyBytes_CHAR_INIT(15), \ - _PyBytes_CHAR_INIT(16), \ - _PyBytes_CHAR_INIT(17), \ - _PyBytes_CHAR_INIT(18), \ - _PyBytes_CHAR_INIT(19), \ - _PyBytes_CHAR_INIT(20), \ - _PyBytes_CHAR_INIT(21), \ - _PyBytes_CHAR_INIT(22), \ - _PyBytes_CHAR_INIT(23), \ - _PyBytes_CHAR_INIT(24), \ - _PyBytes_CHAR_INIT(25), \ - _PyBytes_CHAR_INIT(26), \ - _PyBytes_CHAR_INIT(27), \ - _PyBytes_CHAR_INIT(28), \ - _PyBytes_CHAR_INIT(29), \ - _PyBytes_CHAR_INIT(30), \ - _PyBytes_CHAR_INIT(31), \ - _PyBytes_CHAR_INIT(32), \ - _PyBytes_CHAR_INIT(33), \ - _PyBytes_CHAR_INIT(34), \ - _PyBytes_CHAR_INIT(35), \ - _PyBytes_CHAR_INIT(36), \ - _PyBytes_CHAR_INIT(37), \ - _PyBytes_CHAR_INIT(38), \ - _PyBytes_CHAR_INIT(39), \ - _PyBytes_CHAR_INIT(40), \ - _PyBytes_CHAR_INIT(41), \ - _PyBytes_CHAR_INIT(42), \ - _PyBytes_CHAR_INIT(43), \ - _PyBytes_CHAR_INIT(44), \ - _PyBytes_CHAR_INIT(45), \ - _PyBytes_CHAR_INIT(46), \ - _PyBytes_CHAR_INIT(47), \ - _PyBytes_CHAR_INIT(48), \ - _PyBytes_CHAR_INIT(49), \ - _PyBytes_CHAR_INIT(50), \ - _PyBytes_CHAR_INIT(51), \ - _PyBytes_CHAR_INIT(52), \ - _PyBytes_CHAR_INIT(53), \ - _PyBytes_CHAR_INIT(54), \ - _PyBytes_CHAR_INIT(55), \ - _PyBytes_CHAR_INIT(56), \ - _PyBytes_CHAR_INIT(57), \ - _PyBytes_CHAR_INIT(58), \ - _PyBytes_CHAR_INIT(59), \ - _PyBytes_CHAR_INIT(60), \ - _PyBytes_CHAR_INIT(61), \ - _PyBytes_CHAR_INIT(62), \ - _PyBytes_CHAR_INIT(63), \ - _PyBytes_CHAR_INIT(64), \ - _PyBytes_CHAR_INIT(65), \ - _PyBytes_CHAR_INIT(66), \ - _PyBytes_CHAR_INIT(67), \ - _PyBytes_CHAR_INIT(68), \ - _PyBytes_CHAR_INIT(69), \ - _PyBytes_CHAR_INIT(70), \ - _PyBytes_CHAR_INIT(71), \ - _PyBytes_CHAR_INIT(72), \ - _PyBytes_CHAR_INIT(73), \ - _PyBytes_CHAR_INIT(74), \ - _PyBytes_CHAR_INIT(75), \ - _PyBytes_CHAR_INIT(76), \ - _PyBytes_CHAR_INIT(77), \ - _PyBytes_CHAR_INIT(78), \ - _PyBytes_CHAR_INIT(79), \ - _PyBytes_CHAR_INIT(80), \ - _PyBytes_CHAR_INIT(81), \ - _PyBytes_CHAR_INIT(82), \ - _PyBytes_CHAR_INIT(83), \ - _PyBytes_CHAR_INIT(84), \ - _PyBytes_CHAR_INIT(85), \ - _PyBytes_CHAR_INIT(86), \ - _PyBytes_CHAR_INIT(87), \ - _PyBytes_CHAR_INIT(88), \ - _PyBytes_CHAR_INIT(89), \ - _PyBytes_CHAR_INIT(90), \ - _PyBytes_CHAR_INIT(91), \ - _PyBytes_CHAR_INIT(92), \ - _PyBytes_CHAR_INIT(93), \ - _PyBytes_CHAR_INIT(94), \ - _PyBytes_CHAR_INIT(95), \ - _PyBytes_CHAR_INIT(96), \ - _PyBytes_CHAR_INIT(97), \ - _PyBytes_CHAR_INIT(98), \ - _PyBytes_CHAR_INIT(99), \ - _PyBytes_CHAR_INIT(100), \ - _PyBytes_CHAR_INIT(101), \ - _PyBytes_CHAR_INIT(102), \ - _PyBytes_CHAR_INIT(103), \ - _PyBytes_CHAR_INIT(104), \ - _PyBytes_CHAR_INIT(105), \ - _PyBytes_CHAR_INIT(106), \ - _PyBytes_CHAR_INIT(107), \ - _PyBytes_CHAR_INIT(108), \ - _PyBytes_CHAR_INIT(109), \ - _PyBytes_CHAR_INIT(110), \ - _PyBytes_CHAR_INIT(111), \ - _PyBytes_CHAR_INIT(112), \ - _PyBytes_CHAR_INIT(113), \ - _PyBytes_CHAR_INIT(114), \ - _PyBytes_CHAR_INIT(115), \ - _PyBytes_CHAR_INIT(116), \ - _PyBytes_CHAR_INIT(117), \ - _PyBytes_CHAR_INIT(118), \ - _PyBytes_CHAR_INIT(119), \ - _PyBytes_CHAR_INIT(120), \ - _PyBytes_CHAR_INIT(121), \ - _PyBytes_CHAR_INIT(122), \ - _PyBytes_CHAR_INIT(123), \ - _PyBytes_CHAR_INIT(124), \ - _PyBytes_CHAR_INIT(125), \ - _PyBytes_CHAR_INIT(126), \ - _PyBytes_CHAR_INIT(127), \ - _PyBytes_CHAR_INIT(128), \ - _PyBytes_CHAR_INIT(129), \ - _PyBytes_CHAR_INIT(130), \ - _PyBytes_CHAR_INIT(131), \ - _PyBytes_CHAR_INIT(132), \ - _PyBytes_CHAR_INIT(133), \ - _PyBytes_CHAR_INIT(134), \ - _PyBytes_CHAR_INIT(135), \ - _PyBytes_CHAR_INIT(136), \ - _PyBytes_CHAR_INIT(137), \ - _PyBytes_CHAR_INIT(138), \ - _PyBytes_CHAR_INIT(139), \ - _PyBytes_CHAR_INIT(140), \ - _PyBytes_CHAR_INIT(141), \ - _PyBytes_CHAR_INIT(142), \ - _PyBytes_CHAR_INIT(143), \ - _PyBytes_CHAR_INIT(144), \ - _PyBytes_CHAR_INIT(145), \ - _PyBytes_CHAR_INIT(146), \ - _PyBytes_CHAR_INIT(147), \ - _PyBytes_CHAR_INIT(148), \ - _PyBytes_CHAR_INIT(149), \ - _PyBytes_CHAR_INIT(150), \ - _PyBytes_CHAR_INIT(151), \ - _PyBytes_CHAR_INIT(152), \ - _PyBytes_CHAR_INIT(153), \ - _PyBytes_CHAR_INIT(154), \ - _PyBytes_CHAR_INIT(155), \ - _PyBytes_CHAR_INIT(156), \ - _PyBytes_CHAR_INIT(157), \ - _PyBytes_CHAR_INIT(158), \ - _PyBytes_CHAR_INIT(159), \ - _PyBytes_CHAR_INIT(160), \ - _PyBytes_CHAR_INIT(161), \ - _PyBytes_CHAR_INIT(162), \ - _PyBytes_CHAR_INIT(163), \ - _PyBytes_CHAR_INIT(164), \ - _PyBytes_CHAR_INIT(165), \ - _PyBytes_CHAR_INIT(166), \ - _PyBytes_CHAR_INIT(167), \ - _PyBytes_CHAR_INIT(168), \ - _PyBytes_CHAR_INIT(169), \ - _PyBytes_CHAR_INIT(170), \ - _PyBytes_CHAR_INIT(171), \ - _PyBytes_CHAR_INIT(172), \ - _PyBytes_CHAR_INIT(173), \ - _PyBytes_CHAR_INIT(174), \ - _PyBytes_CHAR_INIT(175), \ - _PyBytes_CHAR_INIT(176), \ - _PyBytes_CHAR_INIT(177), \ - _PyBytes_CHAR_INIT(178), \ - _PyBytes_CHAR_INIT(179), \ - _PyBytes_CHAR_INIT(180), \ - _PyBytes_CHAR_INIT(181), \ - _PyBytes_CHAR_INIT(182), \ - _PyBytes_CHAR_INIT(183), \ - _PyBytes_CHAR_INIT(184), \ - _PyBytes_CHAR_INIT(185), \ - _PyBytes_CHAR_INIT(186), \ - _PyBytes_CHAR_INIT(187), \ - _PyBytes_CHAR_INIT(188), \ - _PyBytes_CHAR_INIT(189), \ - _PyBytes_CHAR_INIT(190), \ - _PyBytes_CHAR_INIT(191), \ - _PyBytes_CHAR_INIT(192), \ - _PyBytes_CHAR_INIT(193), \ - _PyBytes_CHAR_INIT(194), \ - _PyBytes_CHAR_INIT(195), \ - _PyBytes_CHAR_INIT(196), \ - _PyBytes_CHAR_INIT(197), \ - _PyBytes_CHAR_INIT(198), \ - _PyBytes_CHAR_INIT(199), \ - _PyBytes_CHAR_INIT(200), \ - _PyBytes_CHAR_INIT(201), \ - _PyBytes_CHAR_INIT(202), \ - _PyBytes_CHAR_INIT(203), \ - _PyBytes_CHAR_INIT(204), \ - _PyBytes_CHAR_INIT(205), \ - _PyBytes_CHAR_INIT(206), \ - _PyBytes_CHAR_INIT(207), \ - _PyBytes_CHAR_INIT(208), \ - _PyBytes_CHAR_INIT(209), \ - _PyBytes_CHAR_INIT(210), \ - _PyBytes_CHAR_INIT(211), \ - _PyBytes_CHAR_INIT(212), \ - _PyBytes_CHAR_INIT(213), \ - _PyBytes_CHAR_INIT(214), \ - _PyBytes_CHAR_INIT(215), \ - _PyBytes_CHAR_INIT(216), \ - _PyBytes_CHAR_INIT(217), \ - _PyBytes_CHAR_INIT(218), \ - _PyBytes_CHAR_INIT(219), \ - _PyBytes_CHAR_INIT(220), \ - _PyBytes_CHAR_INIT(221), \ - _PyBytes_CHAR_INIT(222), \ - _PyBytes_CHAR_INIT(223), \ - _PyBytes_CHAR_INIT(224), \ - _PyBytes_CHAR_INIT(225), \ - _PyBytes_CHAR_INIT(226), \ - _PyBytes_CHAR_INIT(227), \ - _PyBytes_CHAR_INIT(228), \ - _PyBytes_CHAR_INIT(229), \ - _PyBytes_CHAR_INIT(230), \ - _PyBytes_CHAR_INIT(231), \ - _PyBytes_CHAR_INIT(232), \ - _PyBytes_CHAR_INIT(233), \ - _PyBytes_CHAR_INIT(234), \ - _PyBytes_CHAR_INIT(235), \ - _PyBytes_CHAR_INIT(236), \ - _PyBytes_CHAR_INIT(237), \ - _PyBytes_CHAR_INIT(238), \ - _PyBytes_CHAR_INIT(239), \ - _PyBytes_CHAR_INIT(240), \ - _PyBytes_CHAR_INIT(241), \ - _PyBytes_CHAR_INIT(242), \ - _PyBytes_CHAR_INIT(243), \ - _PyBytes_CHAR_INIT(244), \ - _PyBytes_CHAR_INIT(245), \ - _PyBytes_CHAR_INIT(246), \ - _PyBytes_CHAR_INIT(247), \ - _PyBytes_CHAR_INIT(248), \ - _PyBytes_CHAR_INIT(249), \ - _PyBytes_CHAR_INIT(250), \ - _PyBytes_CHAR_INIT(251), \ - _PyBytes_CHAR_INIT(252), \ - _PyBytes_CHAR_INIT(253), \ - _PyBytes_CHAR_INIT(254), \ - _PyBytes_CHAR_INIT(255), \ - }, \ - \ - .strings = { \ - .literals = { \ - INIT_STR(anon_dictcomp, ""), \ - INIT_STR(anon_genexpr, ""), \ - INIT_STR(anon_lambda, ""), \ - INIT_STR(anon_listcomp, ""), \ - INIT_STR(anon_module, ""), \ - INIT_STR(anon_setcomp, ""), \ - INIT_STR(anon_string, ""), \ - INIT_STR(anon_unknown, ""), \ - INIT_STR(close_br, "}"), \ - INIT_STR(comma_sep, ", "), \ - INIT_STR(dbl_close_br, "}}"), \ - INIT_STR(dbl_open_br, "{{"), \ - INIT_STR(dbl_percent, "%%"), \ - INIT_STR(dot, "."), \ - INIT_STR(dot_locals, "."), \ - INIT_STR(empty, ""), \ - INIT_STR(list_err, "list index out of range"), \ - INIT_STR(newline, "\n"), \ - INIT_STR(open_br, "{"), \ - INIT_STR(percent, "%"), \ - INIT_STR(utf_8, "utf-8"), \ - }, \ - .identifiers = { \ - INIT_ID(False), \ - INIT_ID(Py_Repr), \ - INIT_ID(TextIOWrapper), \ - INIT_ID(True), \ - INIT_ID(WarningMessage), \ - INIT_ID(_), \ - INIT_ID(__IOBase_closed), \ - INIT_ID(__abc_tpflags__), \ - INIT_ID(__abs__), \ - INIT_ID(__abstractmethods__), \ - INIT_ID(__add__), \ - INIT_ID(__aenter__), \ - INIT_ID(__aexit__), \ - INIT_ID(__aiter__), \ - INIT_ID(__all__), \ - INIT_ID(__and__), \ - INIT_ID(__anext__), \ - INIT_ID(__annotations__), \ - INIT_ID(__args__), \ - INIT_ID(__await__), \ - INIT_ID(__bases__), \ - INIT_ID(__bool__), \ - INIT_ID(__build_class__), \ - INIT_ID(__builtins__), \ - INIT_ID(__bytes__), \ - INIT_ID(__call__), \ - INIT_ID(__cantrace__), \ - INIT_ID(__class__), \ - INIT_ID(__class_getitem__), \ - INIT_ID(__classcell__), \ - INIT_ID(__complex__), \ - INIT_ID(__contains__), \ - INIT_ID(__copy__), \ - INIT_ID(__del__), \ - INIT_ID(__delattr__), \ - INIT_ID(__delete__), \ - INIT_ID(__delitem__), \ - INIT_ID(__dict__), \ - INIT_ID(__dir__), \ - INIT_ID(__divmod__), \ - INIT_ID(__doc__), \ - INIT_ID(__enter__), \ - INIT_ID(__eq__), \ - INIT_ID(__exit__), \ - INIT_ID(__file__), \ - INIT_ID(__float__), \ - INIT_ID(__floordiv__), \ - INIT_ID(__format__), \ - INIT_ID(__fspath__), \ - INIT_ID(__ge__), \ - INIT_ID(__get__), \ - INIT_ID(__getattr__), \ - INIT_ID(__getattribute__), \ - INIT_ID(__getinitargs__), \ - INIT_ID(__getitem__), \ - INIT_ID(__getnewargs__), \ - INIT_ID(__getnewargs_ex__), \ - INIT_ID(__getstate__), \ - INIT_ID(__gt__), \ - INIT_ID(__hash__), \ - INIT_ID(__iadd__), \ - INIT_ID(__iand__), \ - INIT_ID(__ifloordiv__), \ - INIT_ID(__ilshift__), \ - INIT_ID(__imatmul__), \ - INIT_ID(__imod__), \ - INIT_ID(__import__), \ - INIT_ID(__imul__), \ - INIT_ID(__index__), \ - INIT_ID(__init__), \ - INIT_ID(__init_subclass__), \ - INIT_ID(__instancecheck__), \ - INIT_ID(__int__), \ - INIT_ID(__invert__), \ - INIT_ID(__ior__), \ - INIT_ID(__ipow__), \ - INIT_ID(__irshift__), \ - INIT_ID(__isabstractmethod__), \ - INIT_ID(__isub__), \ - INIT_ID(__iter__), \ - INIT_ID(__itruediv__), \ - INIT_ID(__ixor__), \ - INIT_ID(__le__), \ - INIT_ID(__len__), \ - INIT_ID(__length_hint__), \ - INIT_ID(__lltrace__), \ - INIT_ID(__loader__), \ - INIT_ID(__lshift__), \ - INIT_ID(__lt__), \ - INIT_ID(__main__), \ - INIT_ID(__matmul__), \ - INIT_ID(__missing__), \ - INIT_ID(__mod__), \ - INIT_ID(__module__), \ - INIT_ID(__mro_entries__), \ - INIT_ID(__mul__), \ - INIT_ID(__name__), \ - INIT_ID(__ne__), \ - INIT_ID(__neg__), \ - INIT_ID(__new__), \ - INIT_ID(__newobj__), \ - INIT_ID(__newobj_ex__), \ - INIT_ID(__next__), \ - INIT_ID(__notes__), \ - INIT_ID(__or__), \ - INIT_ID(__orig_class__), \ - INIT_ID(__origin__), \ - INIT_ID(__package__), \ - INIT_ID(__parameters__), \ - INIT_ID(__path__), \ - INIT_ID(__pos__), \ - INIT_ID(__pow__), \ - INIT_ID(__prepare__), \ - INIT_ID(__qualname__), \ - INIT_ID(__radd__), \ - INIT_ID(__rand__), \ - INIT_ID(__rdivmod__), \ - INIT_ID(__reduce__), \ - INIT_ID(__reduce_ex__), \ - INIT_ID(__repr__), \ - INIT_ID(__reversed__), \ - INIT_ID(__rfloordiv__), \ - INIT_ID(__rlshift__), \ - INIT_ID(__rmatmul__), \ - INIT_ID(__rmod__), \ - INIT_ID(__rmul__), \ - INIT_ID(__ror__), \ - INIT_ID(__round__), \ - INIT_ID(__rpow__), \ - INIT_ID(__rrshift__), \ - INIT_ID(__rshift__), \ - INIT_ID(__rsub__), \ - INIT_ID(__rtruediv__), \ - INIT_ID(__rxor__), \ - INIT_ID(__set__), \ - INIT_ID(__set_name__), \ - INIT_ID(__setattr__), \ - INIT_ID(__setitem__), \ - INIT_ID(__setstate__), \ - INIT_ID(__sizeof__), \ - INIT_ID(__slotnames__), \ - INIT_ID(__slots__), \ - INIT_ID(__spec__), \ - INIT_ID(__str__), \ - INIT_ID(__sub__), \ - INIT_ID(__subclasscheck__), \ - INIT_ID(__subclasshook__), \ - INIT_ID(__truediv__), \ - INIT_ID(__trunc__), \ - INIT_ID(__typing_is_unpacked_typevartuple__), \ - INIT_ID(__typing_subst__), \ - INIT_ID(__typing_unpacked_tuple_args__), \ - INIT_ID(__warningregistry__), \ - INIT_ID(__weakref__), \ - INIT_ID(__xor__), \ - INIT_ID(_abc_impl), \ - INIT_ID(_annotation), \ - INIT_ID(_blksize), \ - INIT_ID(_bootstrap), \ - INIT_ID(_dealloc_warn), \ - INIT_ID(_finalizing), \ - INIT_ID(_find_and_load), \ - INIT_ID(_fix_up_module), \ - INIT_ID(_get_sourcefile), \ - INIT_ID(_handle_fromlist), \ - INIT_ID(_initializing), \ - INIT_ID(_is_text_encoding), \ - INIT_ID(_lock_unlock_module), \ - INIT_ID(_showwarnmsg), \ - INIT_ID(_shutdown), \ - INIT_ID(_slotnames), \ - INIT_ID(_strptime_time), \ - INIT_ID(_uninitialized_submodules), \ - INIT_ID(_warn_unawaited_coroutine), \ - INIT_ID(_xoptions), \ - INIT_ID(add), \ - INIT_ID(append), \ - INIT_ID(big), \ - INIT_ID(buffer), \ - INIT_ID(builtins), \ - INIT_ID(c_call), \ - INIT_ID(c_exception), \ - INIT_ID(c_return), \ - INIT_ID(call), \ - INIT_ID(clear), \ - INIT_ID(close), \ - INIT_ID(closed), \ - INIT_ID(code), \ - INIT_ID(copy), \ - INIT_ID(copyreg), \ - INIT_ID(decode), \ - INIT_ID(default), \ - INIT_ID(defaultaction), \ - INIT_ID(dictcomp), \ - INIT_ID(difference_update), \ - INIT_ID(dispatch_table), \ - INIT_ID(displayhook), \ - INIT_ID(enable), \ - INIT_ID(encode), \ - INIT_ID(encoding), \ - INIT_ID(end_lineno), \ - INIT_ID(end_offset), \ - INIT_ID(errors), \ - INIT_ID(excepthook), \ - INIT_ID(exception), \ - INIT_ID(extend), \ - INIT_ID(filename), \ - INIT_ID(fileno), \ - INIT_ID(fillvalue), \ - INIT_ID(filters), \ - INIT_ID(find_class), \ - INIT_ID(flush), \ - INIT_ID(genexpr), \ - INIT_ID(get), \ - INIT_ID(get_source), \ - INIT_ID(getattr), \ - INIT_ID(getstate), \ - INIT_ID(ignore), \ - INIT_ID(importlib), \ - INIT_ID(inf), \ - INIT_ID(intersection), \ - INIT_ID(isatty), \ - INIT_ID(isinstance), \ - INIT_ID(items), \ - INIT_ID(iter), \ - INIT_ID(join), \ - INIT_ID(keys), \ - INIT_ID(lambda), \ - INIT_ID(last_traceback), \ - INIT_ID(last_type), \ - INIT_ID(last_value), \ - INIT_ID(latin1), \ - INIT_ID(len), \ - INIT_ID(line), \ - INIT_ID(lineno), \ - INIT_ID(listcomp), \ - INIT_ID(little), \ - INIT_ID(locale), \ - INIT_ID(match), \ - INIT_ID(metaclass), \ - INIT_ID(mode), \ - INIT_ID(modules), \ - INIT_ID(mro), \ - INIT_ID(msg), \ - INIT_ID(n_fields), \ - INIT_ID(n_sequence_fields), \ - INIT_ID(n_unnamed_fields), \ - INIT_ID(name), \ - INIT_ID(newlines), \ - INIT_ID(next), \ - INIT_ID(obj), \ - INIT_ID(offset), \ - INIT_ID(onceregistry), \ - INIT_ID(opcode), \ - INIT_ID(open), \ - INIT_ID(parent), \ - INIT_ID(partial), \ - INIT_ID(path), \ - INIT_ID(peek), \ - INIT_ID(persistent_id), \ - INIT_ID(persistent_load), \ - INIT_ID(print_file_and_line), \ - INIT_ID(ps1), \ - INIT_ID(ps2), \ - INIT_ID(raw), \ - INIT_ID(read), \ - INIT_ID(read1), \ - INIT_ID(readable), \ - INIT_ID(readall), \ - INIT_ID(readinto), \ - INIT_ID(readinto1), \ - INIT_ID(readline), \ - INIT_ID(reducer_override), \ - INIT_ID(reload), \ - INIT_ID(replace), \ - INIT_ID(reset), \ - INIT_ID(return), \ - INIT_ID(reversed), \ - INIT_ID(seek), \ - INIT_ID(seekable), \ - INIT_ID(send), \ - INIT_ID(setcomp), \ - INIT_ID(setstate), \ - INIT_ID(sort), \ - INIT_ID(stderr), \ - INIT_ID(stdin), \ - INIT_ID(stdout), \ - INIT_ID(strict), \ - INIT_ID(symmetric_difference_update), \ - INIT_ID(tell), \ - INIT_ID(text), \ - INIT_ID(threading), \ - INIT_ID(throw), \ - INIT_ID(top), \ - INIT_ID(truncate), \ - INIT_ID(unraisablehook), \ - INIT_ID(values), \ - INIT_ID(version), \ - INIT_ID(warnings), \ - INIT_ID(warnoptions), \ - INIT_ID(writable), \ - INIT_ID(write), \ - INIT_ID(zipimporter), \ - }, \ - .ascii = { \ - _PyASCIIObject_INIT("\x00"), \ - _PyASCIIObject_INIT("\x01"), \ - _PyASCIIObject_INIT("\x02"), \ - _PyASCIIObject_INIT("\x03"), \ - _PyASCIIObject_INIT("\x04"), \ - _PyASCIIObject_INIT("\x05"), \ - _PyASCIIObject_INIT("\x06"), \ - _PyASCIIObject_INIT("\x07"), \ - _PyASCIIObject_INIT("\x08"), \ - _PyASCIIObject_INIT("\x09"), \ - _PyASCIIObject_INIT("\x0a"), \ - _PyASCIIObject_INIT("\x0b"), \ - _PyASCIIObject_INIT("\x0c"), \ - _PyASCIIObject_INIT("\x0d"), \ - _PyASCIIObject_INIT("\x0e"), \ - _PyASCIIObject_INIT("\x0f"), \ - _PyASCIIObject_INIT("\x10"), \ - _PyASCIIObject_INIT("\x11"), \ - _PyASCIIObject_INIT("\x12"), \ - _PyASCIIObject_INIT("\x13"), \ - _PyASCIIObject_INIT("\x14"), \ - _PyASCIIObject_INIT("\x15"), \ - _PyASCIIObject_INIT("\x16"), \ - _PyASCIIObject_INIT("\x17"), \ - _PyASCIIObject_INIT("\x18"), \ - _PyASCIIObject_INIT("\x19"), \ - _PyASCIIObject_INIT("\x1a"), \ - _PyASCIIObject_INIT("\x1b"), \ - _PyASCIIObject_INIT("\x1c"), \ - _PyASCIIObject_INIT("\x1d"), \ - _PyASCIIObject_INIT("\x1e"), \ - _PyASCIIObject_INIT("\x1f"), \ - _PyASCIIObject_INIT("\x20"), \ - _PyASCIIObject_INIT("\x21"), \ - _PyASCIIObject_INIT("\x22"), \ - _PyASCIIObject_INIT("\x23"), \ - _PyASCIIObject_INIT("\x24"), \ - _PyASCIIObject_INIT("\x25"), \ - _PyASCIIObject_INIT("\x26"), \ - _PyASCIIObject_INIT("\x27"), \ - _PyASCIIObject_INIT("\x28"), \ - _PyASCIIObject_INIT("\x29"), \ - _PyASCIIObject_INIT("\x2a"), \ - _PyASCIIObject_INIT("\x2b"), \ - _PyASCIIObject_INIT("\x2c"), \ - _PyASCIIObject_INIT("\x2d"), \ - _PyASCIIObject_INIT("\x2e"), \ - _PyASCIIObject_INIT("\x2f"), \ - _PyASCIIObject_INIT("\x30"), \ - _PyASCIIObject_INIT("\x31"), \ - _PyASCIIObject_INIT("\x32"), \ - _PyASCIIObject_INIT("\x33"), \ - _PyASCIIObject_INIT("\x34"), \ - _PyASCIIObject_INIT("\x35"), \ - _PyASCIIObject_INIT("\x36"), \ - _PyASCIIObject_INIT("\x37"), \ - _PyASCIIObject_INIT("\x38"), \ - _PyASCIIObject_INIT("\x39"), \ - _PyASCIIObject_INIT("\x3a"), \ - _PyASCIIObject_INIT("\x3b"), \ - _PyASCIIObject_INIT("\x3c"), \ - _PyASCIIObject_INIT("\x3d"), \ - _PyASCIIObject_INIT("\x3e"), \ - _PyASCIIObject_INIT("\x3f"), \ - _PyASCIIObject_INIT("\x40"), \ - _PyASCIIObject_INIT("\x41"), \ - _PyASCIIObject_INIT("\x42"), \ - _PyASCIIObject_INIT("\x43"), \ - _PyASCIIObject_INIT("\x44"), \ - _PyASCIIObject_INIT("\x45"), \ - _PyASCIIObject_INIT("\x46"), \ - _PyASCIIObject_INIT("\x47"), \ - _PyASCIIObject_INIT("\x48"), \ - _PyASCIIObject_INIT("\x49"), \ - _PyASCIIObject_INIT("\x4a"), \ - _PyASCIIObject_INIT("\x4b"), \ - _PyASCIIObject_INIT("\x4c"), \ - _PyASCIIObject_INIT("\x4d"), \ - _PyASCIIObject_INIT("\x4e"), \ - _PyASCIIObject_INIT("\x4f"), \ - _PyASCIIObject_INIT("\x50"), \ - _PyASCIIObject_INIT("\x51"), \ - _PyASCIIObject_INIT("\x52"), \ - _PyASCIIObject_INIT("\x53"), \ - _PyASCIIObject_INIT("\x54"), \ - _PyASCIIObject_INIT("\x55"), \ - _PyASCIIObject_INIT("\x56"), \ - _PyASCIIObject_INIT("\x57"), \ - _PyASCIIObject_INIT("\x58"), \ - _PyASCIIObject_INIT("\x59"), \ - _PyASCIIObject_INIT("\x5a"), \ - _PyASCIIObject_INIT("\x5b"), \ - _PyASCIIObject_INIT("\x5c"), \ - _PyASCIIObject_INIT("\x5d"), \ - _PyASCIIObject_INIT("\x5e"), \ - _PyASCIIObject_INIT("\x5f"), \ - _PyASCIIObject_INIT("\x60"), \ - _PyASCIIObject_INIT("\x61"), \ - _PyASCIIObject_INIT("\x62"), \ - _PyASCIIObject_INIT("\x63"), \ - _PyASCIIObject_INIT("\x64"), \ - _PyASCIIObject_INIT("\x65"), \ - _PyASCIIObject_INIT("\x66"), \ - _PyASCIIObject_INIT("\x67"), \ - _PyASCIIObject_INIT("\x68"), \ - _PyASCIIObject_INIT("\x69"), \ - _PyASCIIObject_INIT("\x6a"), \ - _PyASCIIObject_INIT("\x6b"), \ - _PyASCIIObject_INIT("\x6c"), \ - _PyASCIIObject_INIT("\x6d"), \ - _PyASCIIObject_INIT("\x6e"), \ - _PyASCIIObject_INIT("\x6f"), \ - _PyASCIIObject_INIT("\x70"), \ - _PyASCIIObject_INIT("\x71"), \ - _PyASCIIObject_INIT("\x72"), \ - _PyASCIIObject_INIT("\x73"), \ - _PyASCIIObject_INIT("\x74"), \ - _PyASCIIObject_INIT("\x75"), \ - _PyASCIIObject_INIT("\x76"), \ - _PyASCIIObject_INIT("\x77"), \ - _PyASCIIObject_INIT("\x78"), \ - _PyASCIIObject_INIT("\x79"), \ - _PyASCIIObject_INIT("\x7a"), \ - _PyASCIIObject_INIT("\x7b"), \ - _PyASCIIObject_INIT("\x7c"), \ - _PyASCIIObject_INIT("\x7d"), \ - _PyASCIIObject_INIT("\x7e"), \ - _PyASCIIObject_INIT("\x7f"), \ - }, \ - .latin1 = { \ - _PyUnicode_LATIN1_INIT("\x80"), \ - _PyUnicode_LATIN1_INIT("\x81"), \ - _PyUnicode_LATIN1_INIT("\x82"), \ - _PyUnicode_LATIN1_INIT("\x83"), \ - _PyUnicode_LATIN1_INIT("\x84"), \ - _PyUnicode_LATIN1_INIT("\x85"), \ - _PyUnicode_LATIN1_INIT("\x86"), \ - _PyUnicode_LATIN1_INIT("\x87"), \ - _PyUnicode_LATIN1_INIT("\x88"), \ - _PyUnicode_LATIN1_INIT("\x89"), \ - _PyUnicode_LATIN1_INIT("\x8a"), \ - _PyUnicode_LATIN1_INIT("\x8b"), \ - _PyUnicode_LATIN1_INIT("\x8c"), \ - _PyUnicode_LATIN1_INIT("\x8d"), \ - _PyUnicode_LATIN1_INIT("\x8e"), \ - _PyUnicode_LATIN1_INIT("\x8f"), \ - _PyUnicode_LATIN1_INIT("\x90"), \ - _PyUnicode_LATIN1_INIT("\x91"), \ - _PyUnicode_LATIN1_INIT("\x92"), \ - _PyUnicode_LATIN1_INIT("\x93"), \ - _PyUnicode_LATIN1_INIT("\x94"), \ - _PyUnicode_LATIN1_INIT("\x95"), \ - _PyUnicode_LATIN1_INIT("\x96"), \ - _PyUnicode_LATIN1_INIT("\x97"), \ - _PyUnicode_LATIN1_INIT("\x98"), \ - _PyUnicode_LATIN1_INIT("\x99"), \ - _PyUnicode_LATIN1_INIT("\x9a"), \ - _PyUnicode_LATIN1_INIT("\x9b"), \ - _PyUnicode_LATIN1_INIT("\x9c"), \ - _PyUnicode_LATIN1_INIT("\x9d"), \ - _PyUnicode_LATIN1_INIT("\x9e"), \ - _PyUnicode_LATIN1_INIT("\x9f"), \ - _PyUnicode_LATIN1_INIT("\xa0"), \ - _PyUnicode_LATIN1_INIT("\xa1"), \ - _PyUnicode_LATIN1_INIT("\xa2"), \ - _PyUnicode_LATIN1_INIT("\xa3"), \ - _PyUnicode_LATIN1_INIT("\xa4"), \ - _PyUnicode_LATIN1_INIT("\xa5"), \ - _PyUnicode_LATIN1_INIT("\xa6"), \ - _PyUnicode_LATIN1_INIT("\xa7"), \ - _PyUnicode_LATIN1_INIT("\xa8"), \ - _PyUnicode_LATIN1_INIT("\xa9"), \ - _PyUnicode_LATIN1_INIT("\xaa"), \ - _PyUnicode_LATIN1_INIT("\xab"), \ - _PyUnicode_LATIN1_INIT("\xac"), \ - _PyUnicode_LATIN1_INIT("\xad"), \ - _PyUnicode_LATIN1_INIT("\xae"), \ - _PyUnicode_LATIN1_INIT("\xaf"), \ - _PyUnicode_LATIN1_INIT("\xb0"), \ - _PyUnicode_LATIN1_INIT("\xb1"), \ - _PyUnicode_LATIN1_INIT("\xb2"), \ - _PyUnicode_LATIN1_INIT("\xb3"), \ - _PyUnicode_LATIN1_INIT("\xb4"), \ - _PyUnicode_LATIN1_INIT("\xb5"), \ - _PyUnicode_LATIN1_INIT("\xb6"), \ - _PyUnicode_LATIN1_INIT("\xb7"), \ - _PyUnicode_LATIN1_INIT("\xb8"), \ - _PyUnicode_LATIN1_INIT("\xb9"), \ - _PyUnicode_LATIN1_INIT("\xba"), \ - _PyUnicode_LATIN1_INIT("\xbb"), \ - _PyUnicode_LATIN1_INIT("\xbc"), \ - _PyUnicode_LATIN1_INIT("\xbd"), \ - _PyUnicode_LATIN1_INIT("\xbe"), \ - _PyUnicode_LATIN1_INIT("\xbf"), \ - _PyUnicode_LATIN1_INIT("\xc0"), \ - _PyUnicode_LATIN1_INIT("\xc1"), \ - _PyUnicode_LATIN1_INIT("\xc2"), \ - _PyUnicode_LATIN1_INIT("\xc3"), \ - _PyUnicode_LATIN1_INIT("\xc4"), \ - _PyUnicode_LATIN1_INIT("\xc5"), \ - _PyUnicode_LATIN1_INIT("\xc6"), \ - _PyUnicode_LATIN1_INIT("\xc7"), \ - _PyUnicode_LATIN1_INIT("\xc8"), \ - _PyUnicode_LATIN1_INIT("\xc9"), \ - _PyUnicode_LATIN1_INIT("\xca"), \ - _PyUnicode_LATIN1_INIT("\xcb"), \ - _PyUnicode_LATIN1_INIT("\xcc"), \ - _PyUnicode_LATIN1_INIT("\xcd"), \ - _PyUnicode_LATIN1_INIT("\xce"), \ - _PyUnicode_LATIN1_INIT("\xcf"), \ - _PyUnicode_LATIN1_INIT("\xd0"), \ - _PyUnicode_LATIN1_INIT("\xd1"), \ - _PyUnicode_LATIN1_INIT("\xd2"), \ - _PyUnicode_LATIN1_INIT("\xd3"), \ - _PyUnicode_LATIN1_INIT("\xd4"), \ - _PyUnicode_LATIN1_INIT("\xd5"), \ - _PyUnicode_LATIN1_INIT("\xd6"), \ - _PyUnicode_LATIN1_INIT("\xd7"), \ - _PyUnicode_LATIN1_INIT("\xd8"), \ - _PyUnicode_LATIN1_INIT("\xd9"), \ - _PyUnicode_LATIN1_INIT("\xda"), \ - _PyUnicode_LATIN1_INIT("\xdb"), \ - _PyUnicode_LATIN1_INIT("\xdc"), \ - _PyUnicode_LATIN1_INIT("\xdd"), \ - _PyUnicode_LATIN1_INIT("\xde"), \ - _PyUnicode_LATIN1_INIT("\xdf"), \ - _PyUnicode_LATIN1_INIT("\xe0"), \ - _PyUnicode_LATIN1_INIT("\xe1"), \ - _PyUnicode_LATIN1_INIT("\xe2"), \ - _PyUnicode_LATIN1_INIT("\xe3"), \ - _PyUnicode_LATIN1_INIT("\xe4"), \ - _PyUnicode_LATIN1_INIT("\xe5"), \ - _PyUnicode_LATIN1_INIT("\xe6"), \ - _PyUnicode_LATIN1_INIT("\xe7"), \ - _PyUnicode_LATIN1_INIT("\xe8"), \ - _PyUnicode_LATIN1_INIT("\xe9"), \ - _PyUnicode_LATIN1_INIT("\xea"), \ - _PyUnicode_LATIN1_INIT("\xeb"), \ - _PyUnicode_LATIN1_INIT("\xec"), \ - _PyUnicode_LATIN1_INIT("\xed"), \ - _PyUnicode_LATIN1_INIT("\xee"), \ - _PyUnicode_LATIN1_INIT("\xef"), \ - _PyUnicode_LATIN1_INIT("\xf0"), \ - _PyUnicode_LATIN1_INIT("\xf1"), \ - _PyUnicode_LATIN1_INIT("\xf2"), \ - _PyUnicode_LATIN1_INIT("\xf3"), \ - _PyUnicode_LATIN1_INIT("\xf4"), \ - _PyUnicode_LATIN1_INIT("\xf5"), \ - _PyUnicode_LATIN1_INIT("\xf6"), \ - _PyUnicode_LATIN1_INIT("\xf7"), \ - _PyUnicode_LATIN1_INIT("\xf8"), \ - _PyUnicode_LATIN1_INIT("\xf9"), \ - _PyUnicode_LATIN1_INIT("\xfa"), \ - _PyUnicode_LATIN1_INIT("\xfb"), \ - _PyUnicode_LATIN1_INIT("\xfc"), \ - _PyUnicode_LATIN1_INIT("\xfd"), \ - _PyUnicode_LATIN1_INIT("\xfe"), \ - _PyUnicode_LATIN1_INIT("\xff"), \ - }, \ - }, \ - \ - .tuple_empty = { \ - .ob_base = _PyVarObject_IMMORTAL_INIT(&PyTuple_Type, 0) \ - }, \ - }, \ -} -/* End auto-generated code */ - +#include "pycore_runtime_init_generated.h" #ifdef __cplusplus } diff --git a/Include/internal/pycore_runtime_init_generated.h b/Include/internal/pycore_runtime_init_generated.h new file mode 100644 index 00000000000000..32ff57b731e1a0 --- /dev/null +++ b/Include/internal/pycore_runtime_init_generated.h @@ -0,0 +1,8200 @@ +#ifndef Py_INTERNAL_RUNTIME_INIT_GENERATED_H +#define Py_INTERNAL_RUNTIME_INIT_GENERATED_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +/* The following is auto-generated by Tools/scripts/generate_global_objects.py. */ +#define _Py_global_objects_INIT { \ + .singletons = { \ + .small_ints = { \ + _PyLong_DIGIT_INIT(-5), \ + _PyLong_DIGIT_INIT(-4), \ + _PyLong_DIGIT_INIT(-3), \ + _PyLong_DIGIT_INIT(-2), \ + _PyLong_DIGIT_INIT(-1), \ + _PyLong_DIGIT_INIT(0), \ + _PyLong_DIGIT_INIT(1), \ + _PyLong_DIGIT_INIT(2), \ + _PyLong_DIGIT_INIT(3), \ + _PyLong_DIGIT_INIT(4), \ + _PyLong_DIGIT_INIT(5), \ + _PyLong_DIGIT_INIT(6), \ + _PyLong_DIGIT_INIT(7), \ + _PyLong_DIGIT_INIT(8), \ + _PyLong_DIGIT_INIT(9), \ + _PyLong_DIGIT_INIT(10), \ + _PyLong_DIGIT_INIT(11), \ + _PyLong_DIGIT_INIT(12), \ + _PyLong_DIGIT_INIT(13), \ + _PyLong_DIGIT_INIT(14), \ + _PyLong_DIGIT_INIT(15), \ + _PyLong_DIGIT_INIT(16), \ + _PyLong_DIGIT_INIT(17), \ + _PyLong_DIGIT_INIT(18), \ + _PyLong_DIGIT_INIT(19), \ + _PyLong_DIGIT_INIT(20), \ + _PyLong_DIGIT_INIT(21), \ + _PyLong_DIGIT_INIT(22), \ + _PyLong_DIGIT_INIT(23), \ + _PyLong_DIGIT_INIT(24), \ + _PyLong_DIGIT_INIT(25), \ + _PyLong_DIGIT_INIT(26), \ + _PyLong_DIGIT_INIT(27), \ + _PyLong_DIGIT_INIT(28), \ + _PyLong_DIGIT_INIT(29), \ + _PyLong_DIGIT_INIT(30), \ + _PyLong_DIGIT_INIT(31), \ + _PyLong_DIGIT_INIT(32), \ + _PyLong_DIGIT_INIT(33), \ + _PyLong_DIGIT_INIT(34), \ + _PyLong_DIGIT_INIT(35), \ + _PyLong_DIGIT_INIT(36), \ + _PyLong_DIGIT_INIT(37), \ + _PyLong_DIGIT_INIT(38), \ + _PyLong_DIGIT_INIT(39), \ + _PyLong_DIGIT_INIT(40), \ + _PyLong_DIGIT_INIT(41), \ + _PyLong_DIGIT_INIT(42), \ + _PyLong_DIGIT_INIT(43), \ + _PyLong_DIGIT_INIT(44), \ + _PyLong_DIGIT_INIT(45), \ + _PyLong_DIGIT_INIT(46), \ + _PyLong_DIGIT_INIT(47), \ + _PyLong_DIGIT_INIT(48), \ + _PyLong_DIGIT_INIT(49), \ + _PyLong_DIGIT_INIT(50), \ + _PyLong_DIGIT_INIT(51), \ + _PyLong_DIGIT_INIT(52), \ + _PyLong_DIGIT_INIT(53), \ + _PyLong_DIGIT_INIT(54), \ + _PyLong_DIGIT_INIT(55), \ + _PyLong_DIGIT_INIT(56), \ + _PyLong_DIGIT_INIT(57), \ + _PyLong_DIGIT_INIT(58), \ + _PyLong_DIGIT_INIT(59), \ + _PyLong_DIGIT_INIT(60), \ + _PyLong_DIGIT_INIT(61), \ + _PyLong_DIGIT_INIT(62), \ + _PyLong_DIGIT_INIT(63), \ + _PyLong_DIGIT_INIT(64), \ + _PyLong_DIGIT_INIT(65), \ + _PyLong_DIGIT_INIT(66), \ + _PyLong_DIGIT_INIT(67), \ + _PyLong_DIGIT_INIT(68), \ + _PyLong_DIGIT_INIT(69), \ + _PyLong_DIGIT_INIT(70), \ + _PyLong_DIGIT_INIT(71), \ + _PyLong_DIGIT_INIT(72), \ + _PyLong_DIGIT_INIT(73), \ + _PyLong_DIGIT_INIT(74), \ + _PyLong_DIGIT_INIT(75), \ + _PyLong_DIGIT_INIT(76), \ + _PyLong_DIGIT_INIT(77), \ + _PyLong_DIGIT_INIT(78), \ + _PyLong_DIGIT_INIT(79), \ + _PyLong_DIGIT_INIT(80), \ + _PyLong_DIGIT_INIT(81), \ + _PyLong_DIGIT_INIT(82), \ + _PyLong_DIGIT_INIT(83), \ + _PyLong_DIGIT_INIT(84), \ + _PyLong_DIGIT_INIT(85), \ + _PyLong_DIGIT_INIT(86), \ + _PyLong_DIGIT_INIT(87), \ + _PyLong_DIGIT_INIT(88), \ + _PyLong_DIGIT_INIT(89), \ + _PyLong_DIGIT_INIT(90), \ + _PyLong_DIGIT_INIT(91), \ + _PyLong_DIGIT_INIT(92), \ + _PyLong_DIGIT_INIT(93), \ + _PyLong_DIGIT_INIT(94), \ + _PyLong_DIGIT_INIT(95), \ + _PyLong_DIGIT_INIT(96), \ + _PyLong_DIGIT_INIT(97), \ + _PyLong_DIGIT_INIT(98), \ + _PyLong_DIGIT_INIT(99), \ + _PyLong_DIGIT_INIT(100), \ + _PyLong_DIGIT_INIT(101), \ + _PyLong_DIGIT_INIT(102), \ + _PyLong_DIGIT_INIT(103), \ + _PyLong_DIGIT_INIT(104), \ + _PyLong_DIGIT_INIT(105), \ + _PyLong_DIGIT_INIT(106), \ + _PyLong_DIGIT_INIT(107), \ + _PyLong_DIGIT_INIT(108), \ + _PyLong_DIGIT_INIT(109), \ + _PyLong_DIGIT_INIT(110), \ + _PyLong_DIGIT_INIT(111), \ + _PyLong_DIGIT_INIT(112), \ + _PyLong_DIGIT_INIT(113), \ + _PyLong_DIGIT_INIT(114), \ + _PyLong_DIGIT_INIT(115), \ + _PyLong_DIGIT_INIT(116), \ + _PyLong_DIGIT_INIT(117), \ + _PyLong_DIGIT_INIT(118), \ + _PyLong_DIGIT_INIT(119), \ + _PyLong_DIGIT_INIT(120), \ + _PyLong_DIGIT_INIT(121), \ + _PyLong_DIGIT_INIT(122), \ + _PyLong_DIGIT_INIT(123), \ + _PyLong_DIGIT_INIT(124), \ + _PyLong_DIGIT_INIT(125), \ + _PyLong_DIGIT_INIT(126), \ + _PyLong_DIGIT_INIT(127), \ + _PyLong_DIGIT_INIT(128), \ + _PyLong_DIGIT_INIT(129), \ + _PyLong_DIGIT_INIT(130), \ + _PyLong_DIGIT_INIT(131), \ + _PyLong_DIGIT_INIT(132), \ + _PyLong_DIGIT_INIT(133), \ + _PyLong_DIGIT_INIT(134), \ + _PyLong_DIGIT_INIT(135), \ + _PyLong_DIGIT_INIT(136), \ + _PyLong_DIGIT_INIT(137), \ + _PyLong_DIGIT_INIT(138), \ + _PyLong_DIGIT_INIT(139), \ + _PyLong_DIGIT_INIT(140), \ + _PyLong_DIGIT_INIT(141), \ + _PyLong_DIGIT_INIT(142), \ + _PyLong_DIGIT_INIT(143), \ + _PyLong_DIGIT_INIT(144), \ + _PyLong_DIGIT_INIT(145), \ + _PyLong_DIGIT_INIT(146), \ + _PyLong_DIGIT_INIT(147), \ + _PyLong_DIGIT_INIT(148), \ + _PyLong_DIGIT_INIT(149), \ + _PyLong_DIGIT_INIT(150), \ + _PyLong_DIGIT_INIT(151), \ + _PyLong_DIGIT_INIT(152), \ + _PyLong_DIGIT_INIT(153), \ + _PyLong_DIGIT_INIT(154), \ + _PyLong_DIGIT_INIT(155), \ + _PyLong_DIGIT_INIT(156), \ + _PyLong_DIGIT_INIT(157), \ + _PyLong_DIGIT_INIT(158), \ + _PyLong_DIGIT_INIT(159), \ + _PyLong_DIGIT_INIT(160), \ + _PyLong_DIGIT_INIT(161), \ + _PyLong_DIGIT_INIT(162), \ + _PyLong_DIGIT_INIT(163), \ + _PyLong_DIGIT_INIT(164), \ + _PyLong_DIGIT_INIT(165), \ + _PyLong_DIGIT_INIT(166), \ + _PyLong_DIGIT_INIT(167), \ + _PyLong_DIGIT_INIT(168), \ + _PyLong_DIGIT_INIT(169), \ + _PyLong_DIGIT_INIT(170), \ + _PyLong_DIGIT_INIT(171), \ + _PyLong_DIGIT_INIT(172), \ + _PyLong_DIGIT_INIT(173), \ + _PyLong_DIGIT_INIT(174), \ + _PyLong_DIGIT_INIT(175), \ + _PyLong_DIGIT_INIT(176), \ + _PyLong_DIGIT_INIT(177), \ + _PyLong_DIGIT_INIT(178), \ + _PyLong_DIGIT_INIT(179), \ + _PyLong_DIGIT_INIT(180), \ + _PyLong_DIGIT_INIT(181), \ + _PyLong_DIGIT_INIT(182), \ + _PyLong_DIGIT_INIT(183), \ + _PyLong_DIGIT_INIT(184), \ + _PyLong_DIGIT_INIT(185), \ + _PyLong_DIGIT_INIT(186), \ + _PyLong_DIGIT_INIT(187), \ + _PyLong_DIGIT_INIT(188), \ + _PyLong_DIGIT_INIT(189), \ + _PyLong_DIGIT_INIT(190), \ + _PyLong_DIGIT_INIT(191), \ + _PyLong_DIGIT_INIT(192), \ + _PyLong_DIGIT_INIT(193), \ + _PyLong_DIGIT_INIT(194), \ + _PyLong_DIGIT_INIT(195), \ + _PyLong_DIGIT_INIT(196), \ + _PyLong_DIGIT_INIT(197), \ + _PyLong_DIGIT_INIT(198), \ + _PyLong_DIGIT_INIT(199), \ + _PyLong_DIGIT_INIT(200), \ + _PyLong_DIGIT_INIT(201), \ + _PyLong_DIGIT_INIT(202), \ + _PyLong_DIGIT_INIT(203), \ + _PyLong_DIGIT_INIT(204), \ + _PyLong_DIGIT_INIT(205), \ + _PyLong_DIGIT_INIT(206), \ + _PyLong_DIGIT_INIT(207), \ + _PyLong_DIGIT_INIT(208), \ + _PyLong_DIGIT_INIT(209), \ + _PyLong_DIGIT_INIT(210), \ + _PyLong_DIGIT_INIT(211), \ + _PyLong_DIGIT_INIT(212), \ + _PyLong_DIGIT_INIT(213), \ + _PyLong_DIGIT_INIT(214), \ + _PyLong_DIGIT_INIT(215), \ + _PyLong_DIGIT_INIT(216), \ + _PyLong_DIGIT_INIT(217), \ + _PyLong_DIGIT_INIT(218), \ + _PyLong_DIGIT_INIT(219), \ + _PyLong_DIGIT_INIT(220), \ + _PyLong_DIGIT_INIT(221), \ + _PyLong_DIGIT_INIT(222), \ + _PyLong_DIGIT_INIT(223), \ + _PyLong_DIGIT_INIT(224), \ + _PyLong_DIGIT_INIT(225), \ + _PyLong_DIGIT_INIT(226), \ + _PyLong_DIGIT_INIT(227), \ + _PyLong_DIGIT_INIT(228), \ + _PyLong_DIGIT_INIT(229), \ + _PyLong_DIGIT_INIT(230), \ + _PyLong_DIGIT_INIT(231), \ + _PyLong_DIGIT_INIT(232), \ + _PyLong_DIGIT_INIT(233), \ + _PyLong_DIGIT_INIT(234), \ + _PyLong_DIGIT_INIT(235), \ + _PyLong_DIGIT_INIT(236), \ + _PyLong_DIGIT_INIT(237), \ + _PyLong_DIGIT_INIT(238), \ + _PyLong_DIGIT_INIT(239), \ + _PyLong_DIGIT_INIT(240), \ + _PyLong_DIGIT_INIT(241), \ + _PyLong_DIGIT_INIT(242), \ + _PyLong_DIGIT_INIT(243), \ + _PyLong_DIGIT_INIT(244), \ + _PyLong_DIGIT_INIT(245), \ + _PyLong_DIGIT_INIT(246), \ + _PyLong_DIGIT_INIT(247), \ + _PyLong_DIGIT_INIT(248), \ + _PyLong_DIGIT_INIT(249), \ + _PyLong_DIGIT_INIT(250), \ + _PyLong_DIGIT_INIT(251), \ + _PyLong_DIGIT_INIT(252), \ + _PyLong_DIGIT_INIT(253), \ + _PyLong_DIGIT_INIT(254), \ + _PyLong_DIGIT_INIT(255), \ + _PyLong_DIGIT_INIT(256), \ + }, \ + \ + .bytes_empty = _PyBytes_SIMPLE_INIT(0, 0), \ + .bytes_characters = { \ + _PyBytes_CHAR_INIT(0), \ + _PyBytes_CHAR_INIT(1), \ + _PyBytes_CHAR_INIT(2), \ + _PyBytes_CHAR_INIT(3), \ + _PyBytes_CHAR_INIT(4), \ + _PyBytes_CHAR_INIT(5), \ + _PyBytes_CHAR_INIT(6), \ + _PyBytes_CHAR_INIT(7), \ + _PyBytes_CHAR_INIT(8), \ + _PyBytes_CHAR_INIT(9), \ + _PyBytes_CHAR_INIT(10), \ + _PyBytes_CHAR_INIT(11), \ + _PyBytes_CHAR_INIT(12), \ + _PyBytes_CHAR_INIT(13), \ + _PyBytes_CHAR_INIT(14), \ + _PyBytes_CHAR_INIT(15), \ + _PyBytes_CHAR_INIT(16), \ + _PyBytes_CHAR_INIT(17), \ + _PyBytes_CHAR_INIT(18), \ + _PyBytes_CHAR_INIT(19), \ + _PyBytes_CHAR_INIT(20), \ + _PyBytes_CHAR_INIT(21), \ + _PyBytes_CHAR_INIT(22), \ + _PyBytes_CHAR_INIT(23), \ + _PyBytes_CHAR_INIT(24), \ + _PyBytes_CHAR_INIT(25), \ + _PyBytes_CHAR_INIT(26), \ + _PyBytes_CHAR_INIT(27), \ + _PyBytes_CHAR_INIT(28), \ + _PyBytes_CHAR_INIT(29), \ + _PyBytes_CHAR_INIT(30), \ + _PyBytes_CHAR_INIT(31), \ + _PyBytes_CHAR_INIT(32), \ + _PyBytes_CHAR_INIT(33), \ + _PyBytes_CHAR_INIT(34), \ + _PyBytes_CHAR_INIT(35), \ + _PyBytes_CHAR_INIT(36), \ + _PyBytes_CHAR_INIT(37), \ + _PyBytes_CHAR_INIT(38), \ + _PyBytes_CHAR_INIT(39), \ + _PyBytes_CHAR_INIT(40), \ + _PyBytes_CHAR_INIT(41), \ + _PyBytes_CHAR_INIT(42), \ + _PyBytes_CHAR_INIT(43), \ + _PyBytes_CHAR_INIT(44), \ + _PyBytes_CHAR_INIT(45), \ + _PyBytes_CHAR_INIT(46), \ + _PyBytes_CHAR_INIT(47), \ + _PyBytes_CHAR_INIT(48), \ + _PyBytes_CHAR_INIT(49), \ + _PyBytes_CHAR_INIT(50), \ + _PyBytes_CHAR_INIT(51), \ + _PyBytes_CHAR_INIT(52), \ + _PyBytes_CHAR_INIT(53), \ + _PyBytes_CHAR_INIT(54), \ + _PyBytes_CHAR_INIT(55), \ + _PyBytes_CHAR_INIT(56), \ + _PyBytes_CHAR_INIT(57), \ + _PyBytes_CHAR_INIT(58), \ + _PyBytes_CHAR_INIT(59), \ + _PyBytes_CHAR_INIT(60), \ + _PyBytes_CHAR_INIT(61), \ + _PyBytes_CHAR_INIT(62), \ + _PyBytes_CHAR_INIT(63), \ + _PyBytes_CHAR_INIT(64), \ + _PyBytes_CHAR_INIT(65), \ + _PyBytes_CHAR_INIT(66), \ + _PyBytes_CHAR_INIT(67), \ + _PyBytes_CHAR_INIT(68), \ + _PyBytes_CHAR_INIT(69), \ + _PyBytes_CHAR_INIT(70), \ + _PyBytes_CHAR_INIT(71), \ + _PyBytes_CHAR_INIT(72), \ + _PyBytes_CHAR_INIT(73), \ + _PyBytes_CHAR_INIT(74), \ + _PyBytes_CHAR_INIT(75), \ + _PyBytes_CHAR_INIT(76), \ + _PyBytes_CHAR_INIT(77), \ + _PyBytes_CHAR_INIT(78), \ + _PyBytes_CHAR_INIT(79), \ + _PyBytes_CHAR_INIT(80), \ + _PyBytes_CHAR_INIT(81), \ + _PyBytes_CHAR_INIT(82), \ + _PyBytes_CHAR_INIT(83), \ + _PyBytes_CHAR_INIT(84), \ + _PyBytes_CHAR_INIT(85), \ + _PyBytes_CHAR_INIT(86), \ + _PyBytes_CHAR_INIT(87), \ + _PyBytes_CHAR_INIT(88), \ + _PyBytes_CHAR_INIT(89), \ + _PyBytes_CHAR_INIT(90), \ + _PyBytes_CHAR_INIT(91), \ + _PyBytes_CHAR_INIT(92), \ + _PyBytes_CHAR_INIT(93), \ + _PyBytes_CHAR_INIT(94), \ + _PyBytes_CHAR_INIT(95), \ + _PyBytes_CHAR_INIT(96), \ + _PyBytes_CHAR_INIT(97), \ + _PyBytes_CHAR_INIT(98), \ + _PyBytes_CHAR_INIT(99), \ + _PyBytes_CHAR_INIT(100), \ + _PyBytes_CHAR_INIT(101), \ + _PyBytes_CHAR_INIT(102), \ + _PyBytes_CHAR_INIT(103), \ + _PyBytes_CHAR_INIT(104), \ + _PyBytes_CHAR_INIT(105), \ + _PyBytes_CHAR_INIT(106), \ + _PyBytes_CHAR_INIT(107), \ + _PyBytes_CHAR_INIT(108), \ + _PyBytes_CHAR_INIT(109), \ + _PyBytes_CHAR_INIT(110), \ + _PyBytes_CHAR_INIT(111), \ + _PyBytes_CHAR_INIT(112), \ + _PyBytes_CHAR_INIT(113), \ + _PyBytes_CHAR_INIT(114), \ + _PyBytes_CHAR_INIT(115), \ + _PyBytes_CHAR_INIT(116), \ + _PyBytes_CHAR_INIT(117), \ + _PyBytes_CHAR_INIT(118), \ + _PyBytes_CHAR_INIT(119), \ + _PyBytes_CHAR_INIT(120), \ + _PyBytes_CHAR_INIT(121), \ + _PyBytes_CHAR_INIT(122), \ + _PyBytes_CHAR_INIT(123), \ + _PyBytes_CHAR_INIT(124), \ + _PyBytes_CHAR_INIT(125), \ + _PyBytes_CHAR_INIT(126), \ + _PyBytes_CHAR_INIT(127), \ + _PyBytes_CHAR_INIT(128), \ + _PyBytes_CHAR_INIT(129), \ + _PyBytes_CHAR_INIT(130), \ + _PyBytes_CHAR_INIT(131), \ + _PyBytes_CHAR_INIT(132), \ + _PyBytes_CHAR_INIT(133), \ + _PyBytes_CHAR_INIT(134), \ + _PyBytes_CHAR_INIT(135), \ + _PyBytes_CHAR_INIT(136), \ + _PyBytes_CHAR_INIT(137), \ + _PyBytes_CHAR_INIT(138), \ + _PyBytes_CHAR_INIT(139), \ + _PyBytes_CHAR_INIT(140), \ + _PyBytes_CHAR_INIT(141), \ + _PyBytes_CHAR_INIT(142), \ + _PyBytes_CHAR_INIT(143), \ + _PyBytes_CHAR_INIT(144), \ + _PyBytes_CHAR_INIT(145), \ + _PyBytes_CHAR_INIT(146), \ + _PyBytes_CHAR_INIT(147), \ + _PyBytes_CHAR_INIT(148), \ + _PyBytes_CHAR_INIT(149), \ + _PyBytes_CHAR_INIT(150), \ + _PyBytes_CHAR_INIT(151), \ + _PyBytes_CHAR_INIT(152), \ + _PyBytes_CHAR_INIT(153), \ + _PyBytes_CHAR_INIT(154), \ + _PyBytes_CHAR_INIT(155), \ + _PyBytes_CHAR_INIT(156), \ + _PyBytes_CHAR_INIT(157), \ + _PyBytes_CHAR_INIT(158), \ + _PyBytes_CHAR_INIT(159), \ + _PyBytes_CHAR_INIT(160), \ + _PyBytes_CHAR_INIT(161), \ + _PyBytes_CHAR_INIT(162), \ + _PyBytes_CHAR_INIT(163), \ + _PyBytes_CHAR_INIT(164), \ + _PyBytes_CHAR_INIT(165), \ + _PyBytes_CHAR_INIT(166), \ + _PyBytes_CHAR_INIT(167), \ + _PyBytes_CHAR_INIT(168), \ + _PyBytes_CHAR_INIT(169), \ + _PyBytes_CHAR_INIT(170), \ + _PyBytes_CHAR_INIT(171), \ + _PyBytes_CHAR_INIT(172), \ + _PyBytes_CHAR_INIT(173), \ + _PyBytes_CHAR_INIT(174), \ + _PyBytes_CHAR_INIT(175), \ + _PyBytes_CHAR_INIT(176), \ + _PyBytes_CHAR_INIT(177), \ + _PyBytes_CHAR_INIT(178), \ + _PyBytes_CHAR_INIT(179), \ + _PyBytes_CHAR_INIT(180), \ + _PyBytes_CHAR_INIT(181), \ + _PyBytes_CHAR_INIT(182), \ + _PyBytes_CHAR_INIT(183), \ + _PyBytes_CHAR_INIT(184), \ + _PyBytes_CHAR_INIT(185), \ + _PyBytes_CHAR_INIT(186), \ + _PyBytes_CHAR_INIT(187), \ + _PyBytes_CHAR_INIT(188), \ + _PyBytes_CHAR_INIT(189), \ + _PyBytes_CHAR_INIT(190), \ + _PyBytes_CHAR_INIT(191), \ + _PyBytes_CHAR_INIT(192), \ + _PyBytes_CHAR_INIT(193), \ + _PyBytes_CHAR_INIT(194), \ + _PyBytes_CHAR_INIT(195), \ + _PyBytes_CHAR_INIT(196), \ + _PyBytes_CHAR_INIT(197), \ + _PyBytes_CHAR_INIT(198), \ + _PyBytes_CHAR_INIT(199), \ + _PyBytes_CHAR_INIT(200), \ + _PyBytes_CHAR_INIT(201), \ + _PyBytes_CHAR_INIT(202), \ + _PyBytes_CHAR_INIT(203), \ + _PyBytes_CHAR_INIT(204), \ + _PyBytes_CHAR_INIT(205), \ + _PyBytes_CHAR_INIT(206), \ + _PyBytes_CHAR_INIT(207), \ + _PyBytes_CHAR_INIT(208), \ + _PyBytes_CHAR_INIT(209), \ + _PyBytes_CHAR_INIT(210), \ + _PyBytes_CHAR_INIT(211), \ + _PyBytes_CHAR_INIT(212), \ + _PyBytes_CHAR_INIT(213), \ + _PyBytes_CHAR_INIT(214), \ + _PyBytes_CHAR_INIT(215), \ + _PyBytes_CHAR_INIT(216), \ + _PyBytes_CHAR_INIT(217), \ + _PyBytes_CHAR_INIT(218), \ + _PyBytes_CHAR_INIT(219), \ + _PyBytes_CHAR_INIT(220), \ + _PyBytes_CHAR_INIT(221), \ + _PyBytes_CHAR_INIT(222), \ + _PyBytes_CHAR_INIT(223), \ + _PyBytes_CHAR_INIT(224), \ + _PyBytes_CHAR_INIT(225), \ + _PyBytes_CHAR_INIT(226), \ + _PyBytes_CHAR_INIT(227), \ + _PyBytes_CHAR_INIT(228), \ + _PyBytes_CHAR_INIT(229), \ + _PyBytes_CHAR_INIT(230), \ + _PyBytes_CHAR_INIT(231), \ + _PyBytes_CHAR_INIT(232), \ + _PyBytes_CHAR_INIT(233), \ + _PyBytes_CHAR_INIT(234), \ + _PyBytes_CHAR_INIT(235), \ + _PyBytes_CHAR_INIT(236), \ + _PyBytes_CHAR_INIT(237), \ + _PyBytes_CHAR_INIT(238), \ + _PyBytes_CHAR_INIT(239), \ + _PyBytes_CHAR_INIT(240), \ + _PyBytes_CHAR_INIT(241), \ + _PyBytes_CHAR_INIT(242), \ + _PyBytes_CHAR_INIT(243), \ + _PyBytes_CHAR_INIT(244), \ + _PyBytes_CHAR_INIT(245), \ + _PyBytes_CHAR_INIT(246), \ + _PyBytes_CHAR_INIT(247), \ + _PyBytes_CHAR_INIT(248), \ + _PyBytes_CHAR_INIT(249), \ + _PyBytes_CHAR_INIT(250), \ + _PyBytes_CHAR_INIT(251), \ + _PyBytes_CHAR_INIT(252), \ + _PyBytes_CHAR_INIT(253), \ + _PyBytes_CHAR_INIT(254), \ + _PyBytes_CHAR_INIT(255), \ + }, \ + \ + .strings = { \ + .literals = { \ + INIT_STR(anon_dictcomp, ""), \ + INIT_STR(anon_genexpr, ""), \ + INIT_STR(anon_lambda, ""), \ + INIT_STR(anon_listcomp, ""), \ + INIT_STR(anon_module, ""), \ + INIT_STR(anon_setcomp, ""), \ + INIT_STR(anon_string, ""), \ + INIT_STR(anon_unknown, ""), \ + INIT_STR(close_br, "}"), \ + INIT_STR(comma_sep, ", "), \ + INIT_STR(dbl_close_br, "}}"), \ + INIT_STR(dbl_open_br, "{{"), \ + INIT_STR(dbl_percent, "%%"), \ + INIT_STR(dot, "."), \ + INIT_STR(dot_locals, "."), \ + INIT_STR(empty, ""), \ + INIT_STR(list_err, "list index out of range"), \ + INIT_STR(newline, "\n"), \ + INIT_STR(open_br, "{"), \ + INIT_STR(percent, "%"), \ + INIT_STR(utf_8, "utf-8"), \ + }, \ + .identifiers = { \ + INIT_ID(False), \ + INIT_ID(Py_Repr), \ + INIT_ID(TextIOWrapper), \ + INIT_ID(True), \ + INIT_ID(WarningMessage), \ + INIT_ID(_), \ + INIT_ID(__IOBase_closed), \ + INIT_ID(__abc_tpflags__), \ + INIT_ID(__abs__), \ + INIT_ID(__abstractmethods__), \ + INIT_ID(__add__), \ + INIT_ID(__aenter__), \ + INIT_ID(__aexit__), \ + INIT_ID(__aiter__), \ + INIT_ID(__all__), \ + INIT_ID(__and__), \ + INIT_ID(__anext__), \ + INIT_ID(__annotations__), \ + INIT_ID(__args__), \ + INIT_ID(__await__), \ + INIT_ID(__bases__), \ + INIT_ID(__bool__), \ + INIT_ID(__build_class__), \ + INIT_ID(__builtins__), \ + INIT_ID(__bytes__), \ + INIT_ID(__call__), \ + INIT_ID(__cantrace__), \ + INIT_ID(__class__), \ + INIT_ID(__class_getitem__), \ + INIT_ID(__classcell__), \ + INIT_ID(__complex__), \ + INIT_ID(__contains__), \ + INIT_ID(__copy__), \ + INIT_ID(__del__), \ + INIT_ID(__delattr__), \ + INIT_ID(__delete__), \ + INIT_ID(__delitem__), \ + INIT_ID(__dict__), \ + INIT_ID(__dictoffset__), \ + INIT_ID(__dir__), \ + INIT_ID(__divmod__), \ + INIT_ID(__doc__), \ + INIT_ID(__enter__), \ + INIT_ID(__eq__), \ + INIT_ID(__exit__), \ + INIT_ID(__file__), \ + INIT_ID(__float__), \ + INIT_ID(__floordiv__), \ + INIT_ID(__format__), \ + INIT_ID(__fspath__), \ + INIT_ID(__ge__), \ + INIT_ID(__get__), \ + INIT_ID(__getattr__), \ + INIT_ID(__getattribute__), \ + INIT_ID(__getinitargs__), \ + INIT_ID(__getitem__), \ + INIT_ID(__getnewargs__), \ + INIT_ID(__getnewargs_ex__), \ + INIT_ID(__getstate__), \ + INIT_ID(__gt__), \ + INIT_ID(__hash__), \ + INIT_ID(__iadd__), \ + INIT_ID(__iand__), \ + INIT_ID(__ifloordiv__), \ + INIT_ID(__ilshift__), \ + INIT_ID(__imatmul__), \ + INIT_ID(__imod__), \ + INIT_ID(__import__), \ + INIT_ID(__imul__), \ + INIT_ID(__index__), \ + INIT_ID(__init__), \ + INIT_ID(__init_subclass__), \ + INIT_ID(__instancecheck__), \ + INIT_ID(__int__), \ + INIT_ID(__invert__), \ + INIT_ID(__ior__), \ + INIT_ID(__ipow__), \ + INIT_ID(__irshift__), \ + INIT_ID(__isabstractmethod__), \ + INIT_ID(__isub__), \ + INIT_ID(__iter__), \ + INIT_ID(__itruediv__), \ + INIT_ID(__ixor__), \ + INIT_ID(__le__), \ + INIT_ID(__len__), \ + INIT_ID(__length_hint__), \ + INIT_ID(__lltrace__), \ + INIT_ID(__loader__), \ + INIT_ID(__lshift__), \ + INIT_ID(__lt__), \ + INIT_ID(__main__), \ + INIT_ID(__matmul__), \ + INIT_ID(__missing__), \ + INIT_ID(__mod__), \ + INIT_ID(__module__), \ + INIT_ID(__mro_entries__), \ + INIT_ID(__mul__), \ + INIT_ID(__name__), \ + INIT_ID(__ne__), \ + INIT_ID(__neg__), \ + INIT_ID(__new__), \ + INIT_ID(__newobj__), \ + INIT_ID(__newobj_ex__), \ + INIT_ID(__next__), \ + INIT_ID(__notes__), \ + INIT_ID(__or__), \ + INIT_ID(__orig_class__), \ + INIT_ID(__origin__), \ + INIT_ID(__package__), \ + INIT_ID(__parameters__), \ + INIT_ID(__path__), \ + INIT_ID(__pos__), \ + INIT_ID(__pow__), \ + INIT_ID(__prepare__), \ + INIT_ID(__qualname__), \ + INIT_ID(__radd__), \ + INIT_ID(__rand__), \ + INIT_ID(__rdivmod__), \ + INIT_ID(__reduce__), \ + INIT_ID(__reduce_ex__), \ + INIT_ID(__repr__), \ + INIT_ID(__reversed__), \ + INIT_ID(__rfloordiv__), \ + INIT_ID(__rlshift__), \ + INIT_ID(__rmatmul__), \ + INIT_ID(__rmod__), \ + INIT_ID(__rmul__), \ + INIT_ID(__ror__), \ + INIT_ID(__round__), \ + INIT_ID(__rpow__), \ + INIT_ID(__rrshift__), \ + INIT_ID(__rshift__), \ + INIT_ID(__rsub__), \ + INIT_ID(__rtruediv__), \ + INIT_ID(__rxor__), \ + INIT_ID(__set__), \ + INIT_ID(__set_name__), \ + INIT_ID(__setattr__), \ + INIT_ID(__setitem__), \ + INIT_ID(__setstate__), \ + INIT_ID(__sizeof__), \ + INIT_ID(__slotnames__), \ + INIT_ID(__slots__), \ + INIT_ID(__spec__), \ + INIT_ID(__str__), \ + INIT_ID(__sub__), \ + INIT_ID(__subclasscheck__), \ + INIT_ID(__subclasshook__), \ + INIT_ID(__truediv__), \ + INIT_ID(__trunc__), \ + INIT_ID(__typing_is_unpacked_typevartuple__), \ + INIT_ID(__typing_prepare_subst__), \ + INIT_ID(__typing_subst__), \ + INIT_ID(__typing_unpacked_tuple_args__), \ + INIT_ID(__warningregistry__), \ + INIT_ID(__weaklistoffset__), \ + INIT_ID(__weakref__), \ + INIT_ID(__xor__), \ + INIT_ID(_abc_impl), \ + INIT_ID(_annotation), \ + INIT_ID(_blksize), \ + INIT_ID(_bootstrap), \ + INIT_ID(_dealloc_warn), \ + INIT_ID(_feature_version), \ + INIT_ID(_finalizing), \ + INIT_ID(_find_and_load), \ + INIT_ID(_fix_up_module), \ + INIT_ID(_get_sourcefile), \ + INIT_ID(_handle_fromlist), \ + INIT_ID(_initializing), \ + INIT_ID(_is_text_encoding), \ + INIT_ID(_lock_unlock_module), \ + INIT_ID(_showwarnmsg), \ + INIT_ID(_shutdown), \ + INIT_ID(_slotnames), \ + INIT_ID(_uninitialized_submodules), \ + INIT_ID(_warn_unawaited_coroutine), \ + INIT_ID(_xoptions), \ + INIT_ID(a), \ + INIT_ID(abs_tol), \ + INIT_ID(access), \ + INIT_ID(add), \ + INIT_ID(after_in_child), \ + INIT_ID(after_in_parent), \ + INIT_ID(aggregate_class), \ + INIT_ID(append), \ + INIT_ID(argdefs), \ + INIT_ID(arguments), \ + INIT_ID(argv), \ + INIT_ID(attribute), \ + INIT_ID(authorizer_callback), \ + INIT_ID(b), \ + INIT_ID(backtick), \ + INIT_ID(base), \ + INIT_ID(before), \ + INIT_ID(big), \ + INIT_ID(binary_form), \ + INIT_ID(block), \ + INIT_ID(buffer), \ + INIT_ID(buffer_callback), \ + INIT_ID(buffer_size), \ + INIT_ID(buffering), \ + INIT_ID(buffers), \ + INIT_ID(bufsize), \ + INIT_ID(builtins), \ + INIT_ID(byteorder), \ + INIT_ID(bytes), \ + INIT_ID(bytes_per_sep), \ + INIT_ID(c_call), \ + INIT_ID(c_exception), \ + INIT_ID(c_return), \ + INIT_ID(cached_statements), \ + INIT_ID(cadata), \ + INIT_ID(cafile), \ + INIT_ID(call), \ + INIT_ID(capath), \ + INIT_ID(category), \ + INIT_ID(cb_type), \ + INIT_ID(certfile), \ + INIT_ID(check_same_thread), \ + INIT_ID(clear), \ + INIT_ID(close), \ + INIT_ID(closed), \ + INIT_ID(closefd), \ + INIT_ID(closure), \ + INIT_ID(co_argcount), \ + INIT_ID(co_cellvars), \ + INIT_ID(co_code), \ + INIT_ID(co_consts), \ + INIT_ID(co_exceptiontable), \ + INIT_ID(co_filename), \ + INIT_ID(co_firstlineno), \ + INIT_ID(co_flags), \ + INIT_ID(co_freevars), \ + INIT_ID(co_kwonlyargcount), \ + INIT_ID(co_linetable), \ + INIT_ID(co_name), \ + INIT_ID(co_names), \ + INIT_ID(co_nlocals), \ + INIT_ID(co_posonlyargcount), \ + INIT_ID(co_qualname), \ + INIT_ID(co_stacksize), \ + INIT_ID(co_varnames), \ + INIT_ID(code), \ + INIT_ID(command), \ + INIT_ID(comment_factory), \ + INIT_ID(consts), \ + INIT_ID(context), \ + INIT_ID(cookie), \ + INIT_ID(copy), \ + INIT_ID(copyreg), \ + INIT_ID(coro), \ + INIT_ID(count), \ + INIT_ID(cwd), \ + INIT_ID(data), \ + INIT_ID(database), \ + INIT_ID(decode), \ + INIT_ID(decoder), \ + INIT_ID(default), \ + INIT_ID(defaultaction), \ + INIT_ID(delete), \ + INIT_ID(depth), \ + INIT_ID(detect_types), \ + INIT_ID(deterministic), \ + INIT_ID(device), \ + INIT_ID(dict), \ + INIT_ID(dictcomp), \ + INIT_ID(difference_update), \ + INIT_ID(digest), \ + INIT_ID(digest_size), \ + INIT_ID(digestmod), \ + INIT_ID(dir_fd), \ + INIT_ID(dispatch_table), \ + INIT_ID(displayhook), \ + INIT_ID(dklen), \ + INIT_ID(doc), \ + INIT_ID(dont_inherit), \ + INIT_ID(dst), \ + INIT_ID(dst_dir_fd), \ + INIT_ID(duration), \ + INIT_ID(effective_ids), \ + INIT_ID(element_factory), \ + INIT_ID(encode), \ + INIT_ID(encoding), \ + INIT_ID(end), \ + INIT_ID(end_lineno), \ + INIT_ID(end_offset), \ + INIT_ID(endpos), \ + INIT_ID(env), \ + INIT_ID(errors), \ + INIT_ID(event), \ + INIT_ID(eventmask), \ + INIT_ID(exc_type), \ + INIT_ID(exc_value), \ + INIT_ID(excepthook), \ + INIT_ID(exception), \ + INIT_ID(exp), \ + INIT_ID(extend), \ + INIT_ID(factory), \ + INIT_ID(family), \ + INIT_ID(fanout), \ + INIT_ID(fd), \ + INIT_ID(fd2), \ + INIT_ID(fdel), \ + INIT_ID(fget), \ + INIT_ID(file), \ + INIT_ID(file_actions), \ + INIT_ID(filename), \ + INIT_ID(fileno), \ + INIT_ID(filepath), \ + INIT_ID(fillvalue), \ + INIT_ID(filters), \ + INIT_ID(final), \ + INIT_ID(find_class), \ + INIT_ID(fix_imports), \ + INIT_ID(flags), \ + INIT_ID(flush), \ + INIT_ID(follow_symlinks), \ + INIT_ID(format), \ + INIT_ID(frequency), \ + INIT_ID(fromlist), \ + INIT_ID(fset), \ + INIT_ID(func), \ + INIT_ID(generation), \ + INIT_ID(genexpr), \ + INIT_ID(get), \ + INIT_ID(get_source), \ + INIT_ID(getattr), \ + INIT_ID(getstate), \ + INIT_ID(gid), \ + INIT_ID(globals), \ + INIT_ID(groupindex), \ + INIT_ID(groups), \ + INIT_ID(handle), \ + INIT_ID(hash_name), \ + INIT_ID(header), \ + INIT_ID(headers), \ + INIT_ID(hi), \ + INIT_ID(hook), \ + INIT_ID(id), \ + INIT_ID(ignore), \ + INIT_ID(imag), \ + INIT_ID(importlib), \ + INIT_ID(in_fd), \ + INIT_ID(incoming), \ + INIT_ID(indexgroup), \ + INIT_ID(inf), \ + INIT_ID(inheritable), \ + INIT_ID(initial), \ + INIT_ID(initial_bytes), \ + INIT_ID(initial_value), \ + INIT_ID(initval), \ + INIT_ID(inner_size), \ + INIT_ID(input), \ + INIT_ID(insert_comments), \ + INIT_ID(insert_pis), \ + INIT_ID(instructions), \ + INIT_ID(intern), \ + INIT_ID(intersection), \ + INIT_ID(isatty), \ + INIT_ID(isinstance), \ + INIT_ID(isolation_level), \ + INIT_ID(istext), \ + INIT_ID(item), \ + INIT_ID(items), \ + INIT_ID(iter), \ + INIT_ID(iterable), \ + INIT_ID(iterations), \ + INIT_ID(join), \ + INIT_ID(jump), \ + INIT_ID(keepends), \ + INIT_ID(key), \ + INIT_ID(keyfile), \ + INIT_ID(keys), \ + INIT_ID(kind), \ + INIT_ID(lambda), \ + INIT_ID(last), \ + INIT_ID(last_node), \ + INIT_ID(last_traceback), \ + INIT_ID(last_type), \ + INIT_ID(last_value), \ + INIT_ID(latin1), \ + INIT_ID(leaf_size), \ + INIT_ID(len), \ + INIT_ID(length), \ + INIT_ID(level), \ + INIT_ID(limit), \ + INIT_ID(line), \ + INIT_ID(line_buffering), \ + INIT_ID(lineno), \ + INIT_ID(listcomp), \ + INIT_ID(little), \ + INIT_ID(lo), \ + INIT_ID(locale), \ + INIT_ID(locals), \ + INIT_ID(loop), \ + INIT_ID(mapping), \ + INIT_ID(match), \ + INIT_ID(max_length), \ + INIT_ID(maxdigits), \ + INIT_ID(maxevents), \ + INIT_ID(maxmem), \ + INIT_ID(maxsplit), \ + INIT_ID(maxvalue), \ + INIT_ID(memLevel), \ + INIT_ID(memlimit), \ + INIT_ID(message), \ + INIT_ID(metaclass), \ + INIT_ID(method), \ + INIT_ID(mod), \ + INIT_ID(mode), \ + INIT_ID(module), \ + INIT_ID(module_globals), \ + INIT_ID(modules), \ + INIT_ID(mro), \ + INIT_ID(msg), \ + INIT_ID(n), \ + INIT_ID(n_arg), \ + INIT_ID(n_fields), \ + INIT_ID(n_sequence_fields), \ + INIT_ID(n_unnamed_fields), \ + INIT_ID(name), \ + INIT_ID(namespace_separator), \ + INIT_ID(namespaces), \ + INIT_ID(narg), \ + INIT_ID(ndigits), \ + INIT_ID(new_limit), \ + INIT_ID(newline), \ + INIT_ID(newlines), \ + INIT_ID(next), \ + INIT_ID(node_depth), \ + INIT_ID(node_offset), \ + INIT_ID(ns), \ + INIT_ID(number), \ + INIT_ID(obj), \ + INIT_ID(object), \ + INIT_ID(offset), \ + INIT_ID(offset_dst), \ + INIT_ID(offset_src), \ + INIT_ID(on_type_read), \ + INIT_ID(onceregistry), \ + INIT_ID(oparg), \ + INIT_ID(opcode), \ + INIT_ID(open), \ + INIT_ID(opener), \ + INIT_ID(operation), \ + INIT_ID(optimize), \ + INIT_ID(options), \ + INIT_ID(order), \ + INIT_ID(out_fd), \ + INIT_ID(outgoing), \ + INIT_ID(overlapped), \ + INIT_ID(owner), \ + INIT_ID(p), \ + INIT_ID(pages), \ + INIT_ID(parent), \ + INIT_ID(password), \ + INIT_ID(path), \ + INIT_ID(pattern), \ + INIT_ID(peek), \ + INIT_ID(persistent_id), \ + INIT_ID(persistent_load), \ + INIT_ID(person), \ + INIT_ID(pi_factory), \ + INIT_ID(pid), \ + INIT_ID(policy), \ + INIT_ID(pos), \ + INIT_ID(print_file_and_line), \ + INIT_ID(priority), \ + INIT_ID(progress), \ + INIT_ID(progress_handler), \ + INIT_ID(proto), \ + INIT_ID(protocol), \ + INIT_ID(ps1), \ + INIT_ID(ps2), \ + INIT_ID(query), \ + INIT_ID(quotetabs), \ + INIT_ID(r), \ + INIT_ID(raw), \ + INIT_ID(read), \ + INIT_ID(read1), \ + INIT_ID(readable), \ + INIT_ID(readall), \ + INIT_ID(readinto), \ + INIT_ID(readinto1), \ + INIT_ID(readline), \ + INIT_ID(readonly), \ + INIT_ID(real), \ + INIT_ID(reducer_override), \ + INIT_ID(registry), \ + INIT_ID(rel_tol), \ + INIT_ID(reload), \ + INIT_ID(repl), \ + INIT_ID(replace), \ + INIT_ID(reserved), \ + INIT_ID(reset), \ + INIT_ID(resetids), \ + INIT_ID(return), \ + INIT_ID(reverse), \ + INIT_ID(reversed), \ + INIT_ID(s), \ + INIT_ID(salt), \ + INIT_ID(sched_priority), \ + INIT_ID(scheduler), \ + INIT_ID(seek), \ + INIT_ID(seekable), \ + INIT_ID(selectors), \ + INIT_ID(send), \ + INIT_ID(sep), \ + INIT_ID(sequence), \ + INIT_ID(server_hostname), \ + INIT_ID(server_side), \ + INIT_ID(session), \ + INIT_ID(setcomp), \ + INIT_ID(setpgroup), \ + INIT_ID(setsid), \ + INIT_ID(setsigdef), \ + INIT_ID(setsigmask), \ + INIT_ID(setstate), \ + INIT_ID(shape), \ + INIT_ID(show_cmd), \ + INIT_ID(signed), \ + INIT_ID(size), \ + INIT_ID(sizehint), \ + INIT_ID(sleep), \ + INIT_ID(sock), \ + INIT_ID(sort), \ + INIT_ID(sound), \ + INIT_ID(source), \ + INIT_ID(src), \ + INIT_ID(src_dir_fd), \ + INIT_ID(stacklevel), \ + INIT_ID(start), \ + INIT_ID(statement), \ + INIT_ID(status), \ + INIT_ID(stderr), \ + INIT_ID(stdin), \ + INIT_ID(stdout), \ + INIT_ID(step), \ + INIT_ID(store_name), \ + INIT_ID(strategy), \ + INIT_ID(strict), \ + INIT_ID(strict_mode), \ + INIT_ID(string), \ + INIT_ID(sub_key), \ + INIT_ID(symmetric_difference_update), \ + INIT_ID(tabsize), \ + INIT_ID(tag), \ + INIT_ID(target), \ + INIT_ID(target_is_directory), \ + INIT_ID(task), \ + INIT_ID(tb_frame), \ + INIT_ID(tb_lasti), \ + INIT_ID(tb_lineno), \ + INIT_ID(tb_next), \ + INIT_ID(tell), \ + INIT_ID(template), \ + INIT_ID(term), \ + INIT_ID(text), \ + INIT_ID(threading), \ + INIT_ID(throw), \ + INIT_ID(timeout), \ + INIT_ID(times), \ + INIT_ID(top), \ + INIT_ID(trace_callback), \ + INIT_ID(traceback), \ + INIT_ID(trailers), \ + INIT_ID(translate), \ + INIT_ID(truncate), \ + INIT_ID(twice), \ + INIT_ID(txt), \ + INIT_ID(type), \ + INIT_ID(tz), \ + INIT_ID(uid), \ + INIT_ID(unlink), \ + INIT_ID(unraisablehook), \ + INIT_ID(uri), \ + INIT_ID(usedforsecurity), \ + INIT_ID(value), \ + INIT_ID(values), \ + INIT_ID(version), \ + INIT_ID(warnings), \ + INIT_ID(warnoptions), \ + INIT_ID(wbits), \ + INIT_ID(week), \ + INIT_ID(weekday), \ + INIT_ID(which), \ + INIT_ID(who), \ + INIT_ID(withdata), \ + INIT_ID(writable), \ + INIT_ID(write), \ + INIT_ID(write_through), \ + INIT_ID(x), \ + INIT_ID(year), \ + INIT_ID(zdict), \ + }, \ + .ascii = { \ + _PyASCIIObject_INIT("\x00"), \ + _PyASCIIObject_INIT("\x01"), \ + _PyASCIIObject_INIT("\x02"), \ + _PyASCIIObject_INIT("\x03"), \ + _PyASCIIObject_INIT("\x04"), \ + _PyASCIIObject_INIT("\x05"), \ + _PyASCIIObject_INIT("\x06"), \ + _PyASCIIObject_INIT("\x07"), \ + _PyASCIIObject_INIT("\x08"), \ + _PyASCIIObject_INIT("\x09"), \ + _PyASCIIObject_INIT("\x0a"), \ + _PyASCIIObject_INIT("\x0b"), \ + _PyASCIIObject_INIT("\x0c"), \ + _PyASCIIObject_INIT("\x0d"), \ + _PyASCIIObject_INIT("\x0e"), \ + _PyASCIIObject_INIT("\x0f"), \ + _PyASCIIObject_INIT("\x10"), \ + _PyASCIIObject_INIT("\x11"), \ + _PyASCIIObject_INIT("\x12"), \ + _PyASCIIObject_INIT("\x13"), \ + _PyASCIIObject_INIT("\x14"), \ + _PyASCIIObject_INIT("\x15"), \ + _PyASCIIObject_INIT("\x16"), \ + _PyASCIIObject_INIT("\x17"), \ + _PyASCIIObject_INIT("\x18"), \ + _PyASCIIObject_INIT("\x19"), \ + _PyASCIIObject_INIT("\x1a"), \ + _PyASCIIObject_INIT("\x1b"), \ + _PyASCIIObject_INIT("\x1c"), \ + _PyASCIIObject_INIT("\x1d"), \ + _PyASCIIObject_INIT("\x1e"), \ + _PyASCIIObject_INIT("\x1f"), \ + _PyASCIIObject_INIT("\x20"), \ + _PyASCIIObject_INIT("\x21"), \ + _PyASCIIObject_INIT("\x22"), \ + _PyASCIIObject_INIT("\x23"), \ + _PyASCIIObject_INIT("\x24"), \ + _PyASCIIObject_INIT("\x25"), \ + _PyASCIIObject_INIT("\x26"), \ + _PyASCIIObject_INIT("\x27"), \ + _PyASCIIObject_INIT("\x28"), \ + _PyASCIIObject_INIT("\x29"), \ + _PyASCIIObject_INIT("\x2a"), \ + _PyASCIIObject_INIT("\x2b"), \ + _PyASCIIObject_INIT("\x2c"), \ + _PyASCIIObject_INIT("\x2d"), \ + _PyASCIIObject_INIT("\x2e"), \ + _PyASCIIObject_INIT("\x2f"), \ + _PyASCIIObject_INIT("\x30"), \ + _PyASCIIObject_INIT("\x31"), \ + _PyASCIIObject_INIT("\x32"), \ + _PyASCIIObject_INIT("\x33"), \ + _PyASCIIObject_INIT("\x34"), \ + _PyASCIIObject_INIT("\x35"), \ + _PyASCIIObject_INIT("\x36"), \ + _PyASCIIObject_INIT("\x37"), \ + _PyASCIIObject_INIT("\x38"), \ + _PyASCIIObject_INIT("\x39"), \ + _PyASCIIObject_INIT("\x3a"), \ + _PyASCIIObject_INIT("\x3b"), \ + _PyASCIIObject_INIT("\x3c"), \ + _PyASCIIObject_INIT("\x3d"), \ + _PyASCIIObject_INIT("\x3e"), \ + _PyASCIIObject_INIT("\x3f"), \ + _PyASCIIObject_INIT("\x40"), \ + _PyASCIIObject_INIT("\x41"), \ + _PyASCIIObject_INIT("\x42"), \ + _PyASCIIObject_INIT("\x43"), \ + _PyASCIIObject_INIT("\x44"), \ + _PyASCIIObject_INIT("\x45"), \ + _PyASCIIObject_INIT("\x46"), \ + _PyASCIIObject_INIT("\x47"), \ + _PyASCIIObject_INIT("\x48"), \ + _PyASCIIObject_INIT("\x49"), \ + _PyASCIIObject_INIT("\x4a"), \ + _PyASCIIObject_INIT("\x4b"), \ + _PyASCIIObject_INIT("\x4c"), \ + _PyASCIIObject_INIT("\x4d"), \ + _PyASCIIObject_INIT("\x4e"), \ + _PyASCIIObject_INIT("\x4f"), \ + _PyASCIIObject_INIT("\x50"), \ + _PyASCIIObject_INIT("\x51"), \ + _PyASCIIObject_INIT("\x52"), \ + _PyASCIIObject_INIT("\x53"), \ + _PyASCIIObject_INIT("\x54"), \ + _PyASCIIObject_INIT("\x55"), \ + _PyASCIIObject_INIT("\x56"), \ + _PyASCIIObject_INIT("\x57"), \ + _PyASCIIObject_INIT("\x58"), \ + _PyASCIIObject_INIT("\x59"), \ + _PyASCIIObject_INIT("\x5a"), \ + _PyASCIIObject_INIT("\x5b"), \ + _PyASCIIObject_INIT("\x5c"), \ + _PyASCIIObject_INIT("\x5d"), \ + _PyASCIIObject_INIT("\x5e"), \ + _PyASCIIObject_INIT("\x5f"), \ + _PyASCIIObject_INIT("\x60"), \ + _PyASCIIObject_INIT("\x61"), \ + _PyASCIIObject_INIT("\x62"), \ + _PyASCIIObject_INIT("\x63"), \ + _PyASCIIObject_INIT("\x64"), \ + _PyASCIIObject_INIT("\x65"), \ + _PyASCIIObject_INIT("\x66"), \ + _PyASCIIObject_INIT("\x67"), \ + _PyASCIIObject_INIT("\x68"), \ + _PyASCIIObject_INIT("\x69"), \ + _PyASCIIObject_INIT("\x6a"), \ + _PyASCIIObject_INIT("\x6b"), \ + _PyASCIIObject_INIT("\x6c"), \ + _PyASCIIObject_INIT("\x6d"), \ + _PyASCIIObject_INIT("\x6e"), \ + _PyASCIIObject_INIT("\x6f"), \ + _PyASCIIObject_INIT("\x70"), \ + _PyASCIIObject_INIT("\x71"), \ + _PyASCIIObject_INIT("\x72"), \ + _PyASCIIObject_INIT("\x73"), \ + _PyASCIIObject_INIT("\x74"), \ + _PyASCIIObject_INIT("\x75"), \ + _PyASCIIObject_INIT("\x76"), \ + _PyASCIIObject_INIT("\x77"), \ + _PyASCIIObject_INIT("\x78"), \ + _PyASCIIObject_INIT("\x79"), \ + _PyASCIIObject_INIT("\x7a"), \ + _PyASCIIObject_INIT("\x7b"), \ + _PyASCIIObject_INIT("\x7c"), \ + _PyASCIIObject_INIT("\x7d"), \ + _PyASCIIObject_INIT("\x7e"), \ + _PyASCIIObject_INIT("\x7f"), \ + }, \ + .latin1 = { \ + _PyUnicode_LATIN1_INIT("\x80", "\xc2\x80"), \ + _PyUnicode_LATIN1_INIT("\x81", "\xc2\x81"), \ + _PyUnicode_LATIN1_INIT("\x82", "\xc2\x82"), \ + _PyUnicode_LATIN1_INIT("\x83", "\xc2\x83"), \ + _PyUnicode_LATIN1_INIT("\x84", "\xc2\x84"), \ + _PyUnicode_LATIN1_INIT("\x85", "\xc2\x85"), \ + _PyUnicode_LATIN1_INIT("\x86", "\xc2\x86"), \ + _PyUnicode_LATIN1_INIT("\x87", "\xc2\x87"), \ + _PyUnicode_LATIN1_INIT("\x88", "\xc2\x88"), \ + _PyUnicode_LATIN1_INIT("\x89", "\xc2\x89"), \ + _PyUnicode_LATIN1_INIT("\x8a", "\xc2\x8a"), \ + _PyUnicode_LATIN1_INIT("\x8b", "\xc2\x8b"), \ + _PyUnicode_LATIN1_INIT("\x8c", "\xc2\x8c"), \ + _PyUnicode_LATIN1_INIT("\x8d", "\xc2\x8d"), \ + _PyUnicode_LATIN1_INIT("\x8e", "\xc2\x8e"), \ + _PyUnicode_LATIN1_INIT("\x8f", "\xc2\x8f"), \ + _PyUnicode_LATIN1_INIT("\x90", "\xc2\x90"), \ + _PyUnicode_LATIN1_INIT("\x91", "\xc2\x91"), \ + _PyUnicode_LATIN1_INIT("\x92", "\xc2\x92"), \ + _PyUnicode_LATIN1_INIT("\x93", "\xc2\x93"), \ + _PyUnicode_LATIN1_INIT("\x94", "\xc2\x94"), \ + _PyUnicode_LATIN1_INIT("\x95", "\xc2\x95"), \ + _PyUnicode_LATIN1_INIT("\x96", "\xc2\x96"), \ + _PyUnicode_LATIN1_INIT("\x97", "\xc2\x97"), \ + _PyUnicode_LATIN1_INIT("\x98", "\xc2\x98"), \ + _PyUnicode_LATIN1_INIT("\x99", "\xc2\x99"), \ + _PyUnicode_LATIN1_INIT("\x9a", "\xc2\x9a"), \ + _PyUnicode_LATIN1_INIT("\x9b", "\xc2\x9b"), \ + _PyUnicode_LATIN1_INIT("\x9c", "\xc2\x9c"), \ + _PyUnicode_LATIN1_INIT("\x9d", "\xc2\x9d"), \ + _PyUnicode_LATIN1_INIT("\x9e", "\xc2\x9e"), \ + _PyUnicode_LATIN1_INIT("\x9f", "\xc2\x9f"), \ + _PyUnicode_LATIN1_INIT("\xa0", "\xc2\xa0"), \ + _PyUnicode_LATIN1_INIT("\xa1", "\xc2\xa1"), \ + _PyUnicode_LATIN1_INIT("\xa2", "\xc2\xa2"), \ + _PyUnicode_LATIN1_INIT("\xa3", "\xc2\xa3"), \ + _PyUnicode_LATIN1_INIT("\xa4", "\xc2\xa4"), \ + _PyUnicode_LATIN1_INIT("\xa5", "\xc2\xa5"), \ + _PyUnicode_LATIN1_INIT("\xa6", "\xc2\xa6"), \ + _PyUnicode_LATIN1_INIT("\xa7", "\xc2\xa7"), \ + _PyUnicode_LATIN1_INIT("\xa8", "\xc2\xa8"), \ + _PyUnicode_LATIN1_INIT("\xa9", "\xc2\xa9"), \ + _PyUnicode_LATIN1_INIT("\xaa", "\xc2\xaa"), \ + _PyUnicode_LATIN1_INIT("\xab", "\xc2\xab"), \ + _PyUnicode_LATIN1_INIT("\xac", "\xc2\xac"), \ + _PyUnicode_LATIN1_INIT("\xad", "\xc2\xad"), \ + _PyUnicode_LATIN1_INIT("\xae", "\xc2\xae"), \ + _PyUnicode_LATIN1_INIT("\xaf", "\xc2\xaf"), \ + _PyUnicode_LATIN1_INIT("\xb0", "\xc2\xb0"), \ + _PyUnicode_LATIN1_INIT("\xb1", "\xc2\xb1"), \ + _PyUnicode_LATIN1_INIT("\xb2", "\xc2\xb2"), \ + _PyUnicode_LATIN1_INIT("\xb3", "\xc2\xb3"), \ + _PyUnicode_LATIN1_INIT("\xb4", "\xc2\xb4"), \ + _PyUnicode_LATIN1_INIT("\xb5", "\xc2\xb5"), \ + _PyUnicode_LATIN1_INIT("\xb6", "\xc2\xb6"), \ + _PyUnicode_LATIN1_INIT("\xb7", "\xc2\xb7"), \ + _PyUnicode_LATIN1_INIT("\xb8", "\xc2\xb8"), \ + _PyUnicode_LATIN1_INIT("\xb9", "\xc2\xb9"), \ + _PyUnicode_LATIN1_INIT("\xba", "\xc2\xba"), \ + _PyUnicode_LATIN1_INIT("\xbb", "\xc2\xbb"), \ + _PyUnicode_LATIN1_INIT("\xbc", "\xc2\xbc"), \ + _PyUnicode_LATIN1_INIT("\xbd", "\xc2\xbd"), \ + _PyUnicode_LATIN1_INIT("\xbe", "\xc2\xbe"), \ + _PyUnicode_LATIN1_INIT("\xbf", "\xc2\xbf"), \ + _PyUnicode_LATIN1_INIT("\xc0", "\xc3\x80"), \ + _PyUnicode_LATIN1_INIT("\xc1", "\xc3\x81"), \ + _PyUnicode_LATIN1_INIT("\xc2", "\xc3\x82"), \ + _PyUnicode_LATIN1_INIT("\xc3", "\xc3\x83"), \ + _PyUnicode_LATIN1_INIT("\xc4", "\xc3\x84"), \ + _PyUnicode_LATIN1_INIT("\xc5", "\xc3\x85"), \ + _PyUnicode_LATIN1_INIT("\xc6", "\xc3\x86"), \ + _PyUnicode_LATIN1_INIT("\xc7", "\xc3\x87"), \ + _PyUnicode_LATIN1_INIT("\xc8", "\xc3\x88"), \ + _PyUnicode_LATIN1_INIT("\xc9", "\xc3\x89"), \ + _PyUnicode_LATIN1_INIT("\xca", "\xc3\x8a"), \ + _PyUnicode_LATIN1_INIT("\xcb", "\xc3\x8b"), \ + _PyUnicode_LATIN1_INIT("\xcc", "\xc3\x8c"), \ + _PyUnicode_LATIN1_INIT("\xcd", "\xc3\x8d"), \ + _PyUnicode_LATIN1_INIT("\xce", "\xc3\x8e"), \ + _PyUnicode_LATIN1_INIT("\xcf", "\xc3\x8f"), \ + _PyUnicode_LATIN1_INIT("\xd0", "\xc3\x90"), \ + _PyUnicode_LATIN1_INIT("\xd1", "\xc3\x91"), \ + _PyUnicode_LATIN1_INIT("\xd2", "\xc3\x92"), \ + _PyUnicode_LATIN1_INIT("\xd3", "\xc3\x93"), \ + _PyUnicode_LATIN1_INIT("\xd4", "\xc3\x94"), \ + _PyUnicode_LATIN1_INIT("\xd5", "\xc3\x95"), \ + _PyUnicode_LATIN1_INIT("\xd6", "\xc3\x96"), \ + _PyUnicode_LATIN1_INIT("\xd7", "\xc3\x97"), \ + _PyUnicode_LATIN1_INIT("\xd8", "\xc3\x98"), \ + _PyUnicode_LATIN1_INIT("\xd9", "\xc3\x99"), \ + _PyUnicode_LATIN1_INIT("\xda", "\xc3\x9a"), \ + _PyUnicode_LATIN1_INIT("\xdb", "\xc3\x9b"), \ + _PyUnicode_LATIN1_INIT("\xdc", "\xc3\x9c"), \ + _PyUnicode_LATIN1_INIT("\xdd", "\xc3\x9d"), \ + _PyUnicode_LATIN1_INIT("\xde", "\xc3\x9e"), \ + _PyUnicode_LATIN1_INIT("\xdf", "\xc3\x9f"), \ + _PyUnicode_LATIN1_INIT("\xe0", "\xc3\xa0"), \ + _PyUnicode_LATIN1_INIT("\xe1", "\xc3\xa1"), \ + _PyUnicode_LATIN1_INIT("\xe2", "\xc3\xa2"), \ + _PyUnicode_LATIN1_INIT("\xe3", "\xc3\xa3"), \ + _PyUnicode_LATIN1_INIT("\xe4", "\xc3\xa4"), \ + _PyUnicode_LATIN1_INIT("\xe5", "\xc3\xa5"), \ + _PyUnicode_LATIN1_INIT("\xe6", "\xc3\xa6"), \ + _PyUnicode_LATIN1_INIT("\xe7", "\xc3\xa7"), \ + _PyUnicode_LATIN1_INIT("\xe8", "\xc3\xa8"), \ + _PyUnicode_LATIN1_INIT("\xe9", "\xc3\xa9"), \ + _PyUnicode_LATIN1_INIT("\xea", "\xc3\xaa"), \ + _PyUnicode_LATIN1_INIT("\xeb", "\xc3\xab"), \ + _PyUnicode_LATIN1_INIT("\xec", "\xc3\xac"), \ + _PyUnicode_LATIN1_INIT("\xed", "\xc3\xad"), \ + _PyUnicode_LATIN1_INIT("\xee", "\xc3\xae"), \ + _PyUnicode_LATIN1_INIT("\xef", "\xc3\xaf"), \ + _PyUnicode_LATIN1_INIT("\xf0", "\xc3\xb0"), \ + _PyUnicode_LATIN1_INIT("\xf1", "\xc3\xb1"), \ + _PyUnicode_LATIN1_INIT("\xf2", "\xc3\xb2"), \ + _PyUnicode_LATIN1_INIT("\xf3", "\xc3\xb3"), \ + _PyUnicode_LATIN1_INIT("\xf4", "\xc3\xb4"), \ + _PyUnicode_LATIN1_INIT("\xf5", "\xc3\xb5"), \ + _PyUnicode_LATIN1_INIT("\xf6", "\xc3\xb6"), \ + _PyUnicode_LATIN1_INIT("\xf7", "\xc3\xb7"), \ + _PyUnicode_LATIN1_INIT("\xf8", "\xc3\xb8"), \ + _PyUnicode_LATIN1_INIT("\xf9", "\xc3\xb9"), \ + _PyUnicode_LATIN1_INIT("\xfa", "\xc3\xba"), \ + _PyUnicode_LATIN1_INIT("\xfb", "\xc3\xbb"), \ + _PyUnicode_LATIN1_INIT("\xfc", "\xc3\xbc"), \ + _PyUnicode_LATIN1_INIT("\xfd", "\xc3\xbd"), \ + _PyUnicode_LATIN1_INIT("\xfe", "\xc3\xbe"), \ + _PyUnicode_LATIN1_INIT("\xff", "\xc3\xbf"), \ + }, \ + }, \ + \ + .tuple_empty = { \ + .ob_base = _PyVarObject_IMMORTAL_INIT(&PyTuple_Type, 0) \ + }, \ + }, \ +} + +static inline void +_PyUnicode_InitStaticStrings(void) { + PyObject *string; + string = &_Py_ID(False); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(Py_Repr); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(TextIOWrapper); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(True); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(WarningMessage); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(_); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__IOBase_closed); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__abc_tpflags__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__abs__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__abstractmethods__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__add__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__aenter__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__aexit__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__aiter__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__all__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__and__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__anext__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__annotations__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__args__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__await__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__bases__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__bool__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__build_class__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__builtins__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__bytes__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__call__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__cantrace__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__class__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__class_getitem__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__classcell__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__complex__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__contains__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__copy__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__del__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__delattr__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__delete__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__delitem__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__dict__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__dictoffset__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__dir__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__divmod__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__doc__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__enter__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__eq__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__exit__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__file__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__float__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__floordiv__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__format__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__fspath__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__ge__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__get__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__getattr__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__getattribute__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__getinitargs__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__getitem__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__getnewargs__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__getnewargs_ex__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__getstate__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__gt__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__hash__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__iadd__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__iand__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__ifloordiv__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__ilshift__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__imatmul__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__imod__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__import__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__imul__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__index__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__init__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__init_subclass__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__instancecheck__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__int__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__invert__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__ior__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__ipow__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__irshift__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__isabstractmethod__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__isub__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__iter__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__itruediv__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__ixor__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__le__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__len__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__length_hint__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__lltrace__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__loader__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__lshift__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__lt__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__main__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__matmul__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__missing__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__mod__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__module__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__mro_entries__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__mul__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__name__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__ne__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__neg__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__new__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__newobj__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__newobj_ex__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__next__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__notes__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__or__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__orig_class__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__origin__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__package__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__parameters__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__path__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__pos__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__pow__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__prepare__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__qualname__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__radd__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__rand__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__rdivmod__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__reduce__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__reduce_ex__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__repr__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__reversed__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__rfloordiv__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__rlshift__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__rmatmul__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__rmod__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__rmul__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__ror__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__round__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__rpow__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__rrshift__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__rshift__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__rsub__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__rtruediv__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__rxor__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__set__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__set_name__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__setattr__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__setitem__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__setstate__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__sizeof__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__slotnames__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__slots__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__spec__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__str__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__sub__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__subclasscheck__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__subclasshook__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__truediv__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__trunc__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__typing_is_unpacked_typevartuple__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__typing_prepare_subst__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__typing_subst__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__typing_unpacked_tuple_args__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__warningregistry__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__weaklistoffset__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__weakref__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(__xor__); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(_abc_impl); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(_annotation); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(_blksize); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(_bootstrap); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(_dealloc_warn); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(_feature_version); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(_finalizing); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(_find_and_load); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(_fix_up_module); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(_get_sourcefile); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(_handle_fromlist); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(_initializing); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(_is_text_encoding); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(_lock_unlock_module); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(_showwarnmsg); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(_shutdown); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(_slotnames); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(_uninitialized_submodules); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(_warn_unawaited_coroutine); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(_xoptions); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(a); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(abs_tol); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(access); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(add); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(after_in_child); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(after_in_parent); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(aggregate_class); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(append); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(argdefs); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(arguments); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(argv); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(attribute); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(authorizer_callback); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(b); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(backtick); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(base); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(before); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(big); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(binary_form); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(block); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(buffer); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(buffer_callback); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(buffer_size); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(buffering); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(buffers); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(bufsize); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(builtins); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(byteorder); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(bytes); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(bytes_per_sep); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(c_call); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(c_exception); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(c_return); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(cached_statements); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(cadata); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(cafile); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(call); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(capath); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(category); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(cb_type); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(certfile); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(check_same_thread); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(clear); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(close); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(closed); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(closefd); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(closure); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(co_argcount); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(co_cellvars); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(co_code); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(co_consts); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(co_exceptiontable); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(co_filename); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(co_firstlineno); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(co_flags); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(co_freevars); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(co_kwonlyargcount); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(co_linetable); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(co_name); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(co_names); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(co_nlocals); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(co_posonlyargcount); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(co_qualname); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(co_stacksize); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(co_varnames); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(code); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(command); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(comment_factory); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(consts); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(context); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(cookie); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(copy); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(copyreg); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(coro); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(count); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(cwd); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(data); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(database); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(decode); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(decoder); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(default); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(defaultaction); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(delete); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(depth); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(detect_types); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(deterministic); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(device); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(dict); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(dictcomp); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(difference_update); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(digest); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(digest_size); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(digestmod); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(dir_fd); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(dispatch_table); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(displayhook); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(dklen); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(doc); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(dont_inherit); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(dst); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(dst_dir_fd); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(duration); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(effective_ids); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(element_factory); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(encode); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(encoding); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(end); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(end_lineno); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(end_offset); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(endpos); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(env); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(errors); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(event); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(eventmask); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(exc_type); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(exc_value); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(excepthook); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(exception); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(exp); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(extend); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(factory); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(family); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(fanout); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(fd); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(fd2); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(fdel); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(fget); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(file); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(file_actions); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(filename); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(fileno); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(filepath); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(fillvalue); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(filters); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(final); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(find_class); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(fix_imports); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(flags); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(flush); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(follow_symlinks); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(format); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(frequency); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(fromlist); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(fset); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(func); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(generation); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(genexpr); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(get); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(get_source); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(getattr); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(getstate); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(gid); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(globals); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(groupindex); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(groups); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(handle); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(hash_name); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(header); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(headers); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(hi); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(hook); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(id); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(ignore); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(imag); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(importlib); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(in_fd); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(incoming); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(indexgroup); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(inf); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(inheritable); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(initial); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(initial_bytes); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(initial_value); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(initval); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(inner_size); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(input); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(insert_comments); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(insert_pis); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(instructions); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(intern); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(intersection); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(isatty); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(isinstance); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(isolation_level); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(istext); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(item); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(items); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(iter); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(iterable); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(iterations); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(join); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(jump); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(keepends); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(key); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(keyfile); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(keys); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(kind); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(lambda); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(last); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(last_node); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(last_traceback); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(last_type); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(last_value); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(latin1); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(leaf_size); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(len); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(length); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(level); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(limit); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(line); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(line_buffering); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(lineno); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(listcomp); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(little); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(lo); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(locale); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(locals); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(loop); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(mapping); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(match); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(max_length); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(maxdigits); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(maxevents); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(maxmem); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(maxsplit); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(maxvalue); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(memLevel); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(memlimit); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(message); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(metaclass); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(method); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(mod); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(mode); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(module); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(module_globals); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(modules); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(mro); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(msg); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(n); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(n_arg); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(n_fields); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(n_sequence_fields); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(n_unnamed_fields); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(name); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(namespace_separator); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(namespaces); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(narg); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(ndigits); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(new_limit); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(newline); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(newlines); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(next); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(node_depth); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(node_offset); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(ns); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(number); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(obj); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(object); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(offset); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(offset_dst); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(offset_src); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(on_type_read); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(onceregistry); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(oparg); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(opcode); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(open); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(opener); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(operation); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(optimize); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(options); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(order); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(out_fd); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(outgoing); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(overlapped); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(owner); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(p); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(pages); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(parent); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(password); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(path); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(pattern); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(peek); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(persistent_id); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(persistent_load); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(person); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(pi_factory); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(pid); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(policy); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(pos); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(print_file_and_line); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(priority); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(progress); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(progress_handler); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(proto); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(protocol); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(ps1); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(ps2); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(query); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(quotetabs); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(r); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(raw); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(read); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(read1); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(readable); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(readall); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(readinto); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(readinto1); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(readline); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(readonly); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(real); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(reducer_override); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(registry); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(rel_tol); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(reload); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(repl); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(replace); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(reserved); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(reset); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(resetids); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(return); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(reverse); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(reversed); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(s); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(salt); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(sched_priority); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(scheduler); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(seek); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(seekable); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(selectors); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(send); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(sep); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(sequence); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(server_hostname); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(server_side); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(session); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(setcomp); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(setpgroup); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(setsid); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(setsigdef); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(setsigmask); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(setstate); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(shape); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(show_cmd); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(signed); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(size); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(sizehint); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(sleep); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(sock); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(sort); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(sound); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(source); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(src); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(src_dir_fd); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(stacklevel); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(start); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(statement); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(status); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(stderr); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(stdin); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(stdout); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(step); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(store_name); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(strategy); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(strict); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(strict_mode); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(string); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(sub_key); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(symmetric_difference_update); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(tabsize); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(tag); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(target); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(target_is_directory); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(task); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(tb_frame); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(tb_lasti); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(tb_lineno); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(tb_next); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(tell); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(template); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(term); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(text); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(threading); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(throw); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(timeout); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(times); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(top); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(trace_callback); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(traceback); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(trailers); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(translate); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(truncate); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(twice); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(txt); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(type); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(tz); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(uid); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(unlink); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(unraisablehook); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(uri); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(usedforsecurity); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(value); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(values); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(version); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(warnings); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(warnoptions); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(wbits); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(week); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(weekday); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(which); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(who); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(withdata); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(writable); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(write); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(write_through); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(x); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(year); + PyUnicode_InternInPlace(&string); + string = &_Py_ID(zdict); + PyUnicode_InternInPlace(&string); +} + +#ifdef Py_DEBUG +static inline void +_PyStaticObjects_CheckRefcnt(void) { + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -5]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -5]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -4]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -4]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -3]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -3]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -2]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -2]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -1]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -1]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 0]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 0]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 1]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 1]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 2]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 2]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 3]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 3]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 4]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 4]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 5]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 5]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 6]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 6]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 7]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 7]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 8]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 8]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 9]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 9]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 10]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 10]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 11]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 11]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 12]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 12]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 13]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 13]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 14]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 14]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 15]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 15]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 16]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 16]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 17]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 17]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 18]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 18]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 19]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 19]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 20]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 20]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 21]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 21]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 22]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 22]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 23]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 23]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 24]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 24]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 25]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 25]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 26]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 26]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 27]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 27]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 28]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 28]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 29]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 29]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 30]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 30]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 31]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 31]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 32]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 32]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 33]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 33]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 34]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 34]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 35]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 35]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 36]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 36]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 37]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 37]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 38]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 38]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 39]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 39]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 40]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 40]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 41]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 41]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 42]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 42]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 43]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 43]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 44]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 44]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 45]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 45]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 46]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 46]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 47]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 47]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 48]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 48]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 49]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 49]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 50]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 50]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 51]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 51]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 52]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 52]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 53]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 53]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 54]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 54]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 55]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 55]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 56]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 56]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 57]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 57]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 58]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 58]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 59]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 59]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 60]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 60]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 61]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 61]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 62]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 62]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 63]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 63]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 64]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 64]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 65]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 65]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 66]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 66]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 67]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 67]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 68]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 68]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 69]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 69]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 70]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 70]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 71]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 71]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 72]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 72]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 73]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 73]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 74]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 74]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 75]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 75]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 76]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 76]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 77]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 77]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 78]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 78]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 79]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 79]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 80]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 80]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 81]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 81]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 82]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 82]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 83]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 83]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 84]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 84]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 85]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 85]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 86]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 86]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 87]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 87]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 88]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 88]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 89]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 89]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 90]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 90]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 91]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 91]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 92]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 92]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 93]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 93]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 94]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 94]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 95]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 95]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 96]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 96]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 97]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 97]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 98]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 98]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 99]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 99]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 100]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 100]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 101]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 101]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 102]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 102]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 103]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 103]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 104]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 104]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 105]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 105]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 106]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 106]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 107]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 107]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 108]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 108]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 109]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 109]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 110]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 110]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 111]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 111]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 112]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 112]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 113]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 113]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 114]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 114]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 115]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 115]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 116]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 116]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 117]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 117]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 118]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 118]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 119]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 119]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 120]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 120]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 121]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 121]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 122]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 122]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 123]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 123]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 124]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 124]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 125]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 125]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 126]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 126]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 127]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 127]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 129]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 129]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 130]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 130]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 131]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 131]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 132]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 132]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 133]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 133]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 134]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 134]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 135]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 135]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 136]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 136]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 137]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 137]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 138]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 138]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 139]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 139]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 140]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 140]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 141]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 141]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 142]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 142]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 143]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 143]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 144]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 144]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 145]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 145]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 146]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 146]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 147]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 147]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 148]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 148]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 149]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 149]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 150]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 150]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 151]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 151]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 152]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 152]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 153]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 153]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 154]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 154]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 155]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 155]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 156]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 156]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 157]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 157]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 158]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 158]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 159]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 159]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 160]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 160]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 161]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 161]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 162]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 162]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 163]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 163]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 164]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 164]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 165]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 165]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 166]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 166]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 167]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 167]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 168]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 168]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 169]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 169]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 170]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 170]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 171]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 171]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 172]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 172]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 173]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 173]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 174]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 174]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 175]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 175]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 176]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 176]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 177]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 177]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 178]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 178]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 179]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 179]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 180]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 180]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 181]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 181]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 182]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 182]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 183]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 183]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 184]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 184]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 185]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 185]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 186]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 186]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 187]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 187]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 188]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 188]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 189]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 189]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 190]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 190]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 191]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 191]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 192]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 192]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 193]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 193]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 194]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 194]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 195]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 195]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 196]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 196]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 197]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 197]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 198]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 198]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 199]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 199]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 200]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 200]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 201]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 201]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 202]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 202]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 203]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 203]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 204]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 204]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 205]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 205]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 206]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 206]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 207]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 207]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 208]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 208]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 209]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 209]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 210]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 210]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 211]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 211]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 212]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 212]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 213]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 213]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 214]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 214]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 215]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 215]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 216]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 216]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 217]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 217]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 218]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 218]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 219]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 219]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 220]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 220]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 221]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 221]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 222]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 222]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 223]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 223]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 224]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 224]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 225]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 225]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 226]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 226]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 227]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 227]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 228]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 228]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 229]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 229]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 230]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 230]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 231]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 231]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 232]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 232]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 233]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 233]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 234]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 234]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 235]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 235]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 236]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 236]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 237]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 237]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 238]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 238]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 239]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 239]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 240]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 240]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 241]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 241]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 242]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 242]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 243]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 243]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 244]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 244]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 245]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 245]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 246]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 246]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 247]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 247]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 248]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 248]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 249]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 249]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 250]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 250]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 251]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 251]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 252]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 252]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 253]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 253]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 254]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 254]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 255]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 255]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 256]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 256]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_empty)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_empty)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[0]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[0]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[1]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[1]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[2]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[2]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[3]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[3]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[4]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[4]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[5]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[5]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[6]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[6]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[7]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[7]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[8]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[8]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[9]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[9]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[10]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[10]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[11]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[11]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[12]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[12]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[13]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[13]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[14]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[14]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[15]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[15]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[16]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[16]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[17]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[17]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[18]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[18]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[19]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[19]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[20]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[20]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[21]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[21]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[22]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[22]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[23]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[23]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[24]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[24]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[25]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[25]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[26]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[26]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[27]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[27]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[28]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[28]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[29]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[29]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[30]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[30]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[31]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[31]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[32]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[32]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[33]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[33]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[34]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[34]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[35]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[35]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[36]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[36]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[37]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[37]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[38]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[38]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[39]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[39]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[40]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[40]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[41]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[41]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[42]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[42]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[43]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[43]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[44]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[44]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[45]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[45]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[46]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[46]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[47]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[47]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[48]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[48]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[49]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[49]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[50]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[50]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[51]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[51]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[52]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[52]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[53]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[53]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[54]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[54]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[55]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[55]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[56]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[56]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[57]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[57]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[58]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[58]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[59]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[59]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[60]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[60]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[61]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[61]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[62]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[62]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[63]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[63]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[64]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[64]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[65]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[65]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[66]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[66]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[67]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[67]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[68]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[68]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[69]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[69]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[70]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[70]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[71]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[71]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[72]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[72]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[73]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[73]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[74]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[74]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[75]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[75]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[76]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[76]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[77]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[77]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[78]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[78]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[79]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[79]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[80]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[80]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[81]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[81]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[82]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[82]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[83]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[83]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[84]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[84]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[85]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[85]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[86]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[86]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[87]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[87]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[88]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[88]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[89]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[89]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[90]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[90]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[91]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[91]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[92]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[92]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[93]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[93]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[94]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[94]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[95]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[95]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[96]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[96]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[97]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[97]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[98]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[98]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[99]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[99]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[100]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[100]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[101]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[101]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[102]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[102]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[103]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[103]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[104]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[104]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[105]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[105]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[106]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[106]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[107]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[107]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[108]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[108]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[109]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[109]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[110]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[110]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[111]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[111]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[112]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[112]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[113]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[113]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[114]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[114]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[115]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[115]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[116]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[116]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[117]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[117]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[118]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[118]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[119]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[119]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[120]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[120]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[121]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[121]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[122]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[122]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[123]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[123]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[124]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[124]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[125]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[125]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[126]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[126]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[127]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[127]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[129]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[129]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[130]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[130]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[131]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[131]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[132]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[132]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[133]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[133]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[134]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[134]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[135]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[135]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[136]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[136]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[137]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[137]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[138]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[138]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[139]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[139]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[140]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[140]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[141]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[141]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[142]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[142]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[143]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[143]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[144]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[144]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[145]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[145]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[146]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[146]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[147]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[147]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[148]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[148]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[149]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[149]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[150]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[150]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[151]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[151]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[152]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[152]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[153]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[153]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[154]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[154]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[155]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[155]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[156]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[156]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[157]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[157]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[158]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[158]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[159]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[159]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[160]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[160]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[161]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[161]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[162]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[162]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[163]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[163]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[164]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[164]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[165]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[165]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[166]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[166]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[167]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[167]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[168]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[168]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[169]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[169]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[170]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[170]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[171]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[171]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[172]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[172]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[173]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[173]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[174]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[174]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[175]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[175]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[176]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[176]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[177]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[177]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[178]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[178]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[179]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[179]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[180]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[180]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[181]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[181]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[182]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[182]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[183]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[183]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[184]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[184]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[185]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[185]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[186]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[186]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[187]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[187]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[188]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[188]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[189]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[189]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[190]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[190]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[191]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[191]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[192]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[192]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[193]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[193]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[194]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[194]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[195]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[195]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[196]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[196]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[197]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[197]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[198]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[198]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[199]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[199]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[200]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[200]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[201]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[201]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[202]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[202]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[203]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[203]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[204]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[204]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[205]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[205]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[206]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[206]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[207]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[207]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[208]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[208]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[209]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[209]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[210]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[210]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[211]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[211]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[212]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[212]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[213]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[213]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[214]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[214]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[215]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[215]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[216]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[216]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[217]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[217]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[218]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[218]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[219]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[219]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[220]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[220]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[221]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[221]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[222]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[222]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[223]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[223]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[224]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[224]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[225]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[225]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[226]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[226]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[227]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[227]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[228]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[228]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[229]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[229]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[230]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[230]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[231]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[231]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[232]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[232]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[233]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[233]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[234]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[234]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[235]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[235]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[236]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[236]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[237]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[237]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[238]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[238]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[239]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[239]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[240]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[240]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[241]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[241]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[242]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[242]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[243]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[243]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[244]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[244]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[245]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[245]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[246]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[246]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[247]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[247]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[248]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[248]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[249]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[249]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[250]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[250]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[251]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[251]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[252]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[252]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[253]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[253]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[254]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[254]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[255]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[255]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_STR(anon_dictcomp)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_STR(anon_dictcomp)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_STR(anon_genexpr)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_STR(anon_genexpr)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_STR(anon_lambda)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_STR(anon_lambda)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_STR(anon_listcomp)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_STR(anon_listcomp)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_STR(anon_module)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_STR(anon_module)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_STR(anon_setcomp)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_STR(anon_setcomp)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_STR(anon_string)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_STR(anon_string)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_STR(anon_unknown)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_STR(anon_unknown)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_STR(close_br)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_STR(close_br)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_STR(comma_sep)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_STR(comma_sep)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_STR(dbl_close_br)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_STR(dbl_close_br)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_STR(dbl_open_br)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_STR(dbl_open_br)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_STR(dbl_percent)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_STR(dbl_percent)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_STR(dot)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_STR(dot)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_STR(dot_locals)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_STR(dot_locals)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_STR(empty)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_STR(empty)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_STR(list_err)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_STR(list_err)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_STR(newline)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_STR(newline)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_STR(open_br)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_STR(open_br)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_STR(percent)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_STR(percent)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_STR(utf_8)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_STR(utf_8)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(False)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(False)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(Py_Repr)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(Py_Repr)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(TextIOWrapper)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(TextIOWrapper)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(True)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(True)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(WarningMessage)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(WarningMessage)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(_)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(_)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__IOBase_closed)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__IOBase_closed)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__abc_tpflags__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__abc_tpflags__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__abs__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__abs__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__abstractmethods__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__abstractmethods__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__add__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__add__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__aenter__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__aenter__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__aexit__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__aexit__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__aiter__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__aiter__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__all__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__all__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__and__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__and__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__anext__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__anext__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__annotations__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__annotations__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__args__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__args__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__await__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__await__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__bases__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__bases__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__bool__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__bool__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__build_class__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__build_class__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__builtins__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__builtins__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__bytes__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__bytes__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__call__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__call__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__cantrace__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__cantrace__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__class__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__class__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__class_getitem__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__class_getitem__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__classcell__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__classcell__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__complex__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__complex__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__contains__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__contains__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__copy__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__copy__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__del__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__del__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__delattr__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__delattr__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__delete__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__delete__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__delitem__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__delitem__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__dict__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__dict__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__dictoffset__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__dictoffset__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__dir__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__dir__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__divmod__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__divmod__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__doc__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__doc__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__enter__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__enter__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__eq__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__eq__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__exit__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__exit__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__file__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__file__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__float__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__float__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__floordiv__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__floordiv__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__format__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__format__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__fspath__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__fspath__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__ge__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__ge__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__get__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__get__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__getattr__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__getattr__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__getattribute__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__getattribute__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__getinitargs__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__getinitargs__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__getitem__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__getitem__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__getnewargs__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__getnewargs__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__getnewargs_ex__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__getnewargs_ex__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__getstate__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__getstate__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__gt__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__gt__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__hash__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__hash__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__iadd__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__iadd__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__iand__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__iand__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__ifloordiv__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__ifloordiv__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__ilshift__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__ilshift__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__imatmul__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__imatmul__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__imod__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__imod__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__import__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__import__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__imul__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__imul__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__index__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__index__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__init__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__init__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__init_subclass__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__init_subclass__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__instancecheck__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__instancecheck__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__int__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__int__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__invert__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__invert__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__ior__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__ior__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__ipow__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__ipow__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__irshift__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__irshift__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__isabstractmethod__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__isabstractmethod__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__isub__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__isub__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__iter__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__iter__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__itruediv__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__itruediv__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__ixor__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__ixor__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__le__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__le__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__len__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__len__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__length_hint__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__length_hint__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__lltrace__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__lltrace__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__loader__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__loader__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__lshift__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__lshift__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__lt__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__lt__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__main__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__main__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__matmul__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__matmul__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__missing__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__missing__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__mod__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__mod__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__module__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__module__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__mro_entries__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__mro_entries__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__mul__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__mul__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__name__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__name__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__ne__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__ne__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__neg__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__neg__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__new__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__new__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__newobj__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__newobj__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__newobj_ex__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__newobj_ex__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__next__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__next__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__notes__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__notes__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__or__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__or__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__orig_class__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__orig_class__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__origin__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__origin__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__package__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__package__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__parameters__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__parameters__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__path__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__path__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__pos__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__pos__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__pow__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__pow__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__prepare__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__prepare__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__qualname__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__qualname__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__radd__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__radd__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__rand__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__rand__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__rdivmod__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__rdivmod__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__reduce__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__reduce__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__reduce_ex__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__reduce_ex__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__repr__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__repr__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__reversed__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__reversed__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__rfloordiv__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__rfloordiv__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__rlshift__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__rlshift__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__rmatmul__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__rmatmul__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__rmod__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__rmod__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__rmul__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__rmul__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__ror__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__ror__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__round__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__round__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__rpow__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__rpow__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__rrshift__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__rrshift__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__rshift__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__rshift__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__rsub__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__rsub__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__rtruediv__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__rtruediv__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__rxor__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__rxor__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__set__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__set__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__set_name__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__set_name__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__setattr__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__setattr__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__setitem__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__setitem__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__setstate__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__setstate__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__sizeof__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__sizeof__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__slotnames__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__slotnames__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__slots__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__slots__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__spec__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__spec__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__str__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__str__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__sub__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__sub__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__subclasscheck__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__subclasscheck__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__subclasshook__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__subclasshook__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__truediv__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__truediv__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__trunc__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__trunc__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__typing_is_unpacked_typevartuple__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__typing_is_unpacked_typevartuple__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__typing_prepare_subst__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__typing_prepare_subst__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__typing_subst__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__typing_subst__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__typing_unpacked_tuple_args__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__typing_unpacked_tuple_args__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__warningregistry__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__warningregistry__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__weaklistoffset__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__weaklistoffset__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__weakref__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__weakref__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(__xor__)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(__xor__)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(_abc_impl)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(_abc_impl)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(_annotation)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(_annotation)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(_blksize)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(_blksize)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(_bootstrap)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(_bootstrap)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(_dealloc_warn)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(_dealloc_warn)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(_feature_version)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(_feature_version)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(_finalizing)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(_finalizing)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(_find_and_load)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(_find_and_load)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(_fix_up_module)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(_fix_up_module)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(_get_sourcefile)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(_get_sourcefile)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(_handle_fromlist)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(_handle_fromlist)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(_initializing)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(_initializing)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(_is_text_encoding)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(_is_text_encoding)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(_lock_unlock_module)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(_lock_unlock_module)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(_showwarnmsg)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(_showwarnmsg)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(_shutdown)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(_shutdown)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(_slotnames)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(_slotnames)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(_uninitialized_submodules)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(_uninitialized_submodules)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(_warn_unawaited_coroutine)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(_warn_unawaited_coroutine)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(_xoptions)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(_xoptions)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(a)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(a)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(abs_tol)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(abs_tol)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(access)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(access)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(add)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(add)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(after_in_child)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(after_in_child)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(after_in_parent)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(after_in_parent)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(aggregate_class)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(aggregate_class)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(append)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(append)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(argdefs)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(argdefs)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(arguments)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(arguments)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(argv)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(argv)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(attribute)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(attribute)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(authorizer_callback)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(authorizer_callback)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(b)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(b)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(backtick)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(backtick)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(base)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(base)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(before)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(before)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(big)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(big)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(binary_form)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(binary_form)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(block)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(block)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(buffer)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(buffer)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(buffer_callback)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(buffer_callback)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(buffer_size)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(buffer_size)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(buffering)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(buffering)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(buffers)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(buffers)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(bufsize)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(bufsize)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(builtins)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(builtins)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(byteorder)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(byteorder)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(bytes)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(bytes)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(bytes_per_sep)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(bytes_per_sep)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(c_call)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(c_call)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(c_exception)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(c_exception)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(c_return)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(c_return)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(cached_statements)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(cached_statements)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(cadata)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(cadata)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(cafile)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(cafile)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(call)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(call)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(capath)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(capath)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(category)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(category)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(cb_type)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(cb_type)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(certfile)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(certfile)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(check_same_thread)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(check_same_thread)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(clear)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(clear)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(close)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(close)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(closed)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(closed)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(closefd)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(closefd)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(closure)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(closure)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(co_argcount)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(co_argcount)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(co_cellvars)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(co_cellvars)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(co_code)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(co_code)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(co_consts)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(co_consts)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(co_exceptiontable)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(co_exceptiontable)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(co_filename)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(co_filename)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(co_firstlineno)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(co_firstlineno)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(co_flags)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(co_flags)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(co_freevars)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(co_freevars)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(co_kwonlyargcount)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(co_kwonlyargcount)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(co_linetable)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(co_linetable)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(co_name)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(co_name)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(co_names)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(co_names)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(co_nlocals)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(co_nlocals)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(co_posonlyargcount)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(co_posonlyargcount)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(co_qualname)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(co_qualname)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(co_stacksize)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(co_stacksize)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(co_varnames)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(co_varnames)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(code)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(code)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(command)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(command)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(comment_factory)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(comment_factory)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(consts)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(consts)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(context)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(context)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(cookie)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(cookie)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(copy)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(copy)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(copyreg)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(copyreg)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(coro)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(coro)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(count)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(count)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(cwd)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(cwd)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(data)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(data)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(database)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(database)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(decode)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(decode)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(decoder)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(decoder)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(default)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(default)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(defaultaction)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(defaultaction)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(delete)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(delete)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(depth)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(depth)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(detect_types)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(detect_types)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(deterministic)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(deterministic)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(device)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(device)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(dict)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(dict)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(dictcomp)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(dictcomp)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(difference_update)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(difference_update)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(digest)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(digest)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(digest_size)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(digest_size)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(digestmod)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(digestmod)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(dir_fd)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(dir_fd)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(dispatch_table)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(dispatch_table)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(displayhook)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(displayhook)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(dklen)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(dklen)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(doc)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(doc)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(dont_inherit)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(dont_inherit)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(dst)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(dst)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(dst_dir_fd)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(dst_dir_fd)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(duration)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(duration)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(effective_ids)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(effective_ids)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(element_factory)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(element_factory)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(encode)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(encode)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(encoding)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(encoding)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(end)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(end)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(end_lineno)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(end_lineno)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(end_offset)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(end_offset)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(endpos)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(endpos)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(env)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(env)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(errors)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(errors)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(event)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(event)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(eventmask)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(eventmask)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(exc_type)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(exc_type)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(exc_value)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(exc_value)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(excepthook)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(excepthook)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(exception)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(exception)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(exp)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(exp)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(extend)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(extend)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(factory)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(factory)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(family)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(family)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(fanout)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(fanout)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(fd)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(fd)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(fd2)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(fd2)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(fdel)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(fdel)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(fget)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(fget)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(file)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(file)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(file_actions)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(file_actions)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(filename)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(filename)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(fileno)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(fileno)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(filepath)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(filepath)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(fillvalue)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(fillvalue)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(filters)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(filters)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(final)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(final)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(find_class)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(find_class)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(fix_imports)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(fix_imports)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(flags)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(flags)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(flush)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(flush)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(follow_symlinks)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(follow_symlinks)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(format)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(format)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(frequency)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(frequency)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(fromlist)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(fromlist)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(fset)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(fset)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(func)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(func)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(generation)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(generation)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(genexpr)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(genexpr)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(get)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(get)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(get_source)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(get_source)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(getattr)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(getattr)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(getstate)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(getstate)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(gid)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(gid)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(globals)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(globals)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(groupindex)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(groupindex)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(groups)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(groups)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(handle)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(handle)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(hash_name)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(hash_name)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(header)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(header)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(headers)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(headers)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(hi)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(hi)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(hook)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(hook)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(id)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(id)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(ignore)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(ignore)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(imag)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(imag)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(importlib)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(importlib)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(in_fd)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(in_fd)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(incoming)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(incoming)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(indexgroup)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(indexgroup)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(inf)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(inf)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(inheritable)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(inheritable)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(initial)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(initial)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(initial_bytes)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(initial_bytes)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(initial_value)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(initial_value)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(initval)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(initval)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(inner_size)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(inner_size)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(input)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(input)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(insert_comments)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(insert_comments)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(insert_pis)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(insert_pis)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(instructions)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(instructions)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(intern)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(intern)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(intersection)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(intersection)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(isatty)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(isatty)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(isinstance)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(isinstance)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(isolation_level)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(isolation_level)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(istext)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(istext)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(item)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(item)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(items)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(items)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(iter)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(iter)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(iterable)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(iterable)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(iterations)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(iterations)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(join)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(join)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(jump)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(jump)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(keepends)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(keepends)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(key)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(key)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(keyfile)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(keyfile)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(keys)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(keys)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(kind)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(kind)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(lambda)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(lambda)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(last)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(last)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(last_node)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(last_node)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(last_traceback)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(last_traceback)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(last_type)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(last_type)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(last_value)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(last_value)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(latin1)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(latin1)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(leaf_size)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(leaf_size)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(len)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(len)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(length)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(length)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(level)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(level)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(limit)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(limit)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(line)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(line)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(line_buffering)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(line_buffering)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(lineno)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(lineno)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(listcomp)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(listcomp)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(little)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(little)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(lo)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(lo)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(locale)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(locale)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(locals)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(locals)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(loop)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(loop)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(mapping)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(mapping)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(match)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(match)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(max_length)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(max_length)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(maxdigits)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(maxdigits)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(maxevents)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(maxevents)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(maxmem)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(maxmem)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(maxsplit)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(maxsplit)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(maxvalue)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(maxvalue)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(memLevel)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(memLevel)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(memlimit)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(memlimit)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(message)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(message)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(metaclass)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(metaclass)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(method)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(method)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(mod)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(mod)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(mode)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(mode)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(module)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(module)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(module_globals)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(module_globals)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(modules)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(modules)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(mro)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(mro)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(msg)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(msg)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(n)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(n)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(n_arg)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(n_arg)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(n_fields)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(n_fields)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(n_sequence_fields)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(n_sequence_fields)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(n_unnamed_fields)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(n_unnamed_fields)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(name)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(name)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(namespace_separator)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(namespace_separator)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(namespaces)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(namespaces)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(narg)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(narg)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(ndigits)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(ndigits)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(new_limit)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(new_limit)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(newline)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(newline)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(newlines)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(newlines)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(next)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(next)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(node_depth)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(node_depth)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(node_offset)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(node_offset)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(ns)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(ns)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(number)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(number)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(obj)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(obj)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(object)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(object)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(offset)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(offset)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(offset_dst)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(offset_dst)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(offset_src)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(offset_src)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(on_type_read)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(on_type_read)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(onceregistry)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(onceregistry)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(oparg)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(oparg)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(opcode)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(opcode)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(open)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(open)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(opener)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(opener)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(operation)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(operation)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(optimize)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(optimize)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(options)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(options)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(order)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(order)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(out_fd)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(out_fd)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(outgoing)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(outgoing)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(overlapped)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(overlapped)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(owner)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(owner)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(p)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(p)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(pages)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(pages)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(parent)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(parent)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(password)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(password)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(path)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(path)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(pattern)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(pattern)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(peek)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(peek)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(persistent_id)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(persistent_id)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(persistent_load)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(persistent_load)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(person)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(person)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(pi_factory)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(pi_factory)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(pid)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(pid)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(policy)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(policy)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(pos)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(pos)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(print_file_and_line)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(print_file_and_line)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(priority)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(priority)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(progress)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(progress)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(progress_handler)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(progress_handler)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(proto)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(proto)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(protocol)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(protocol)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(ps1)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(ps1)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(ps2)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(ps2)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(query)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(query)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(quotetabs)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(quotetabs)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(r)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(r)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(raw)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(raw)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(read)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(read)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(read1)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(read1)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(readable)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(readable)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(readall)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(readall)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(readinto)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(readinto)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(readinto1)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(readinto1)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(readline)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(readline)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(readonly)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(readonly)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(real)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(real)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(reducer_override)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(reducer_override)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(registry)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(registry)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(rel_tol)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(rel_tol)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(reload)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(reload)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(repl)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(repl)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(replace)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(replace)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(reserved)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(reserved)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(reset)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(reset)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(resetids)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(resetids)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(return)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(return)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(reverse)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(reverse)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(reversed)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(reversed)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(s)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(s)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(salt)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(salt)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(sched_priority)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(sched_priority)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(scheduler)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(scheduler)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(seek)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(seek)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(seekable)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(seekable)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(selectors)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(selectors)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(send)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(send)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(sep)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(sep)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(sequence)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(sequence)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(server_hostname)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(server_hostname)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(server_side)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(server_side)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(session)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(session)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(setcomp)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(setcomp)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(setpgroup)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(setpgroup)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(setsid)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(setsid)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(setsigdef)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(setsigdef)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(setsigmask)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(setsigmask)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(setstate)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(setstate)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(shape)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(shape)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(show_cmd)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(show_cmd)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(signed)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(signed)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(size)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(size)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(sizehint)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(sizehint)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(sleep)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(sleep)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(sock)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(sock)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(sort)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(sort)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(sound)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(sound)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(source)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(source)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(src)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(src)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(src_dir_fd)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(src_dir_fd)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(stacklevel)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(stacklevel)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(start)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(start)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(statement)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(statement)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(status)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(status)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(stderr)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(stderr)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(stdin)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(stdin)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(stdout)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(stdout)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(step)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(step)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(store_name)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(store_name)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(strategy)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(strategy)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(strict)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(strict)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(strict_mode)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(strict_mode)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(string)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(string)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(sub_key)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(sub_key)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(symmetric_difference_update)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(symmetric_difference_update)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(tabsize)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(tabsize)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(tag)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(tag)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(target)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(target)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(target_is_directory)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(target_is_directory)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(task)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(task)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(tb_frame)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(tb_frame)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(tb_lasti)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(tb_lasti)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(tb_lineno)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(tb_lineno)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(tb_next)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(tb_next)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(tell)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(tell)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(template)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(template)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(term)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(term)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(text)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(text)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(threading)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(threading)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(throw)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(throw)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(timeout)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(timeout)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(times)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(times)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(top)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(top)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(trace_callback)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(trace_callback)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(traceback)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(traceback)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(trailers)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(trailers)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(translate)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(translate)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(truncate)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(truncate)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(twice)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(twice)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(txt)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(txt)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(type)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(type)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(tz)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(tz)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(uid)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(uid)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(unlink)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(unlink)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(unraisablehook)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(unraisablehook)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(uri)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(uri)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(usedforsecurity)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(usedforsecurity)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(value)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(value)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(values)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(values)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(version)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(version)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(warnings)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(warnings)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(warnoptions)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(warnoptions)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(wbits)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(wbits)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(week)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(week)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(weekday)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(weekday)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(which)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(which)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(who)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(who)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(withdata)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(withdata)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(writable)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(writable)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(write)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(write)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(write_through)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(write_through)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(x)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(x)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(year)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(year)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_ID(zdict)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_ID(zdict)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[0]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[0]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[1]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[1]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[2]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[2]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[3]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[3]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[4]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[4]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[5]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[5]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[6]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[6]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[7]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[7]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[8]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[8]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[9]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[9]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[10]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[10]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[11]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[11]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[12]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[12]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[13]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[13]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[14]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[14]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[15]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[15]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[16]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[16]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[17]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[17]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[18]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[18]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[19]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[19]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[20]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[20]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[21]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[21]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[22]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[22]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[23]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[23]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[24]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[24]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[25]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[25]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[26]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[26]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[27]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[27]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[28]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[28]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[29]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[29]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[30]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[30]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[31]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[31]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[32]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[32]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[33]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[33]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[34]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[34]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[35]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[35]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[36]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[36]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[37]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[37]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[38]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[38]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[39]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[39]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[40]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[40]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[41]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[41]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[42]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[42]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[43]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[43]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[44]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[44]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[45]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[45]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[46]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[46]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[47]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[47]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[48]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[48]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[49]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[49]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[50]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[50]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[51]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[51]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[52]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[52]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[53]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[53]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[54]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[54]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[55]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[55]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[56]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[56]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[57]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[57]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[58]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[58]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[59]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[59]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[60]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[60]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[61]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[61]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[62]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[62]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[63]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[63]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[64]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[64]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[65]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[65]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[66]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[66]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[67]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[67]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[68]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[68]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[69]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[69]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[70]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[70]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[71]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[71]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[72]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[72]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[73]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[73]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[74]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[74]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[75]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[75]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[76]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[76]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[77]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[77]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[78]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[78]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[79]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[79]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[80]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[80]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[81]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[81]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[82]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[82]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[83]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[83]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[84]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[84]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[85]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[85]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[86]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[86]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[87]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[87]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[88]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[88]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[89]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[89]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[90]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[90]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[91]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[91]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[92]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[92]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[93]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[93]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[94]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[94]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[95]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[95]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[96]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[96]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[97]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[97]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[98]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[98]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[99]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[99]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[100]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[100]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[101]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[101]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[102]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[102]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[103]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[103]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[104]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[104]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[105]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[105]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[106]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[106]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[107]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[107]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[108]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[108]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[109]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[109]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[110]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[110]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[111]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[111]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[112]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[112]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[113]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[113]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[114]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[114]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[115]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[115]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[116]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[116]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[117]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[117]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[118]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[118]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[119]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[119]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[120]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[120]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[121]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[121]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[122]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[122]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[123]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[123]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[124]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[124]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[125]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[125]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[126]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[126]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[127]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[127]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[128 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[128 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[129 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[129 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[130 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[130 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[131 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[131 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[132 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[132 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[133 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[133 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[134 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[134 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[135 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[135 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[136 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[136 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[137 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[137 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[138 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[138 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[139 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[139 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[140 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[140 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[141 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[141 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[142 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[142 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[143 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[143 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[144 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[144 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[145 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[145 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[146 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[146 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[147 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[147 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[148 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[148 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[149 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[149 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[150 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[150 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[151 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[151 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[152 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[152 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[153 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[153 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[154 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[154 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[155 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[155 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[156 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[156 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[157 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[157 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[158 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[158 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[159 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[159 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[160 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[160 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[161 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[161 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[162 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[162 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[163 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[163 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[164 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[164 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[165 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[165 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[166 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[166 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[167 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[167 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[168 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[168 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[169 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[169 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[170 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[170 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[171 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[171 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[172 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[172 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[173 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[173 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[174 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[174 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[175 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[175 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[176 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[176 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[177 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[177 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[178 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[178 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[179 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[179 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[180 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[180 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[181 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[181 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[182 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[182 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[183 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[183 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[184 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[184 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[185 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[185 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[186 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[186 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[187 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[187 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[188 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[188 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[189 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[189 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[190 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[190 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[191 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[191 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[192 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[192 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[193 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[193 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[194 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[194 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[195 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[195 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[196 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[196 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[197 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[197 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[198 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[198 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[199 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[199 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[200 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[200 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[201 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[201 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[202 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[202 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[203 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[203 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[204 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[204 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[205 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[205 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[206 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[206 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[207 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[207 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[208 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[208 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[209 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[209 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[210 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[210 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[211 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[211 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[212 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[212 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[213 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[213 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[214 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[214 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[215 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[215 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[216 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[216 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[217 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[217 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[218 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[218 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[219 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[219 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[220 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[220 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[221 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[221 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[222 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[222 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[223 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[223 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[224 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[224 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[225 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[225 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[226 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[226 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[227 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[227 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[228 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[228 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[229 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[229 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[230 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[230 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[231 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[231 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[232 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[232 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[233 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[233 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[234 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[234 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[235 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[235 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[236 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[236 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[237 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[237 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[238 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[238 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[239 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[239 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[240 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[240 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[241 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[241 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[242 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[242 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[243 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[243 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[244 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[244 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[245 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[245 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[246 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[246 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[247 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[247 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[248 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[248 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[249 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[249 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[250 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[250 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[251 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[251 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[252 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[252 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[253 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[253 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[254 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[254 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[255 - 128]) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[255 - 128]); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; + if (Py_REFCNT((PyObject *)&_Py_SINGLETON(tuple_empty)) < _PyObject_IMMORTAL_REFCNT) { + _PyObject_Dump((PyObject *)&_Py_SINGLETON(tuple_empty)); + Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); + }; +} +#endif +/* End auto-generated code */ +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_RUNTIME_INIT_GENERATED_H */ diff --git a/Include/internal/pycore_sliceobject.h b/Include/internal/pycore_sliceobject.h index e81834c041e415..98665c3859d574 100644 --- a/Include/internal/pycore_sliceobject.h +++ b/Include/internal/pycore_sliceobject.h @@ -13,6 +13,8 @@ extern "C" { extern void _PySlice_Fini(PyInterpreterState *); +extern PyObject * +_PyBuildSlice_ConsumeRefs(PyObject *start, PyObject *stop); #ifdef __cplusplus } diff --git a/Include/internal/pycore_structseq.h b/Include/internal/pycore_structseq.h index 0199c790e24cec..d10a921c55ff8b 100644 --- a/Include/internal/pycore_structseq.h +++ b/Include/internal/pycore_structseq.h @@ -15,11 +15,18 @@ PyAPI_FUNC(PyTypeObject *) _PyStructSequence_NewType( PyStructSequence_Desc *desc, unsigned long tp_flags); -PyAPI_FUNC(int) _PyStructSequence_InitType( +PyAPI_FUNC(int) _PyStructSequence_InitBuiltinWithFlags( PyTypeObject *type, PyStructSequence_Desc *desc, unsigned long tp_flags); +static inline int +_PyStructSequence_InitBuiltin(PyTypeObject *type, + PyStructSequence_Desc *desc) +{ + return _PyStructSequence_InitBuiltinWithFlags(type, desc, 0); +} + extern void _PyStructSequence_FiniType(PyTypeObject *type); #ifdef __cplusplus diff --git a/Include/internal/pycore_symtable.h b/Include/internal/pycore_symtable.h index 28935f4ed55012..2d64aba22ff905 100644 --- a/Include/internal/pycore_symtable.h +++ b/Include/internal/pycore_symtable.h @@ -77,7 +77,7 @@ typedef struct _symtable_entry { extern PyTypeObject PySTEntry_Type; -#define PySTEntry_Check(op) Py_IS_TYPE(op, &PySTEntry_Type) +#define PySTEntry_Check(op) Py_IS_TYPE((op), &PySTEntry_Type) extern long _PyST_GetSymbol(PySTEntryObject *, PyObject *); extern int _PyST_GetScope(PySTEntryObject *, PyObject *); diff --git a/Include/internal/pycore_typeobject.h b/Include/internal/pycore_typeobject.h index c480a3a57b436c..5e7aca1b9f5ae9 100644 --- a/Include/internal/pycore_typeobject.h +++ b/Include/internal/pycore_typeobject.h @@ -11,7 +11,6 @@ extern "C" { /* runtime lifecycle */ -extern PyStatus _PyTypes_InitState(PyInterpreterState *); extern PyStatus _PyTypes_InitTypes(PyInterpreterState *); extern void _PyTypes_FiniTypes(PyInterpreterState *); extern void _PyTypes_Fini(PyInterpreterState *); @@ -39,11 +38,43 @@ struct type_cache { #endif }; -extern PyStatus _PyTypes_InitSlotDefs(void); +/* For now we hard-code this to a value for which we are confident + all the static builtin types will fit (for all builds). */ +#define _Py_MAX_STATIC_BUILTIN_TYPES 200 +typedef struct { + PyTypeObject *type; + PyObject *tp_subclasses; + /* We never clean up weakrefs for static builtin types since + they will effectively never get triggered. However, there + are also some diagnostic uses for the list of weakrefs, + so we still keep it. */ + PyObject *tp_weaklist; +} static_builtin_state; + +static inline PyObject ** +_PyStaticType_GET_WEAKREFS_LISTPTR(static_builtin_state *state) +{ + assert(state != NULL); + return &state->tp_weaklist; +} + +struct types_state { + struct type_cache type_cache; + size_t num_builtins_initialized; + static_builtin_state builtins[_Py_MAX_STATIC_BUILTIN_TYPES]; +}; + + +extern int _PyStaticType_InitBuiltin(PyTypeObject *type); +extern static_builtin_state * _PyStaticType_GetState(PyTypeObject *); +extern void _PyStaticType_ClearWeakRefs(PyTypeObject *type); extern void _PyStaticType_Dealloc(PyTypeObject *type); +PyObject *_Py_slot_tp_getattro(PyObject *self, PyObject *name); +PyObject *_Py_slot_tp_getattr_hook(PyObject *self, PyObject *name); + #ifdef __cplusplus } #endif diff --git a/Include/internal/pycore_unicodeobject.h b/Include/internal/pycore_unicodeobject.h index 4bee2419fbd98a..63bf04b3e1b872 100644 --- a/Include/internal/pycore_unicodeobject.h +++ b/Include/internal/pycore_unicodeobject.h @@ -19,7 +19,6 @@ extern PyStatus _PyUnicode_InitGlobalObjects(PyInterpreterState *); extern PyStatus _PyUnicode_InitTypes(PyInterpreterState *); extern void _PyUnicode_Fini(PyInterpreterState *); extern void _PyUnicode_FiniTypes(PyInterpreterState *); -extern void _PyStaticUnicode_Dealloc(PyObject *); extern PyTypeObject _PyUnicodeASCIIIter_Type; diff --git a/Include/internal/pycore_unionobject.h b/Include/internal/pycore_unionobject.h index a9ed5651a410e8..87264635b6e1cf 100644 --- a/Include/internal/pycore_unionobject.h +++ b/Include/internal/pycore_unionobject.h @@ -9,10 +9,10 @@ extern "C" { #endif extern PyTypeObject _PyUnion_Type; -#define _PyUnion_Check(op) Py_IS_TYPE(op, &_PyUnion_Type) +#define _PyUnion_Check(op) Py_IS_TYPE((op), &_PyUnion_Type) extern PyObject *_Py_union_type_or(PyObject *, PyObject *); -#define _PyGenericAlias_Check(op) PyObject_TypeCheck(op, &Py_GenericAliasType) +#define _PyGenericAlias_Check(op) PyObject_TypeCheck((op), &Py_GenericAliasType) extern PyObject *_Py_subs_parameters(PyObject *, PyObject *, PyObject *, PyObject *); extern PyObject *_Py_make_parameters(PyObject *); extern PyObject *_Py_union_args(PyObject *self); diff --git a/Include/iterobject.h b/Include/iterobject.h index 6454611aebef8a..fff30f7176fdeb 100644 --- a/Include/iterobject.h +++ b/Include/iterobject.h @@ -11,12 +11,12 @@ PyAPI_DATA(PyTypeObject) PyCallIter_Type; extern PyTypeObject _PyAnextAwaitable_Type; #endif -#define PySeqIter_Check(op) Py_IS_TYPE(op, &PySeqIter_Type) +#define PySeqIter_Check(op) Py_IS_TYPE((op), &PySeqIter_Type) PyAPI_FUNC(PyObject *) PySeqIter_New(PyObject *); -#define PyCallIter_Check(op) Py_IS_TYPE(op, &PyCallIter_Type) +#define PyCallIter_Check(op) Py_IS_TYPE((op), &PyCallIter_Type) PyAPI_FUNC(PyObject *) PyCallIter_New(PyObject *, PyObject *); diff --git a/Include/listobject.h b/Include/listobject.h index eff42c188f1ff1..6b7041ba0b05d5 100644 --- a/Include/listobject.h +++ b/Include/listobject.h @@ -23,7 +23,7 @@ PyAPI_DATA(PyTypeObject) PyListRevIter_Type; #define PyList_Check(op) \ PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_LIST_SUBCLASS) -#define PyList_CheckExact(op) Py_IS_TYPE(op, &PyList_Type) +#define PyList_CheckExact(op) Py_IS_TYPE((op), &PyList_Type) PyAPI_FUNC(PyObject *) PyList_New(Py_ssize_t size); PyAPI_FUNC(Py_ssize_t) PyList_Size(PyObject *); diff --git a/Include/longobject.h b/Include/longobject.h index 81ba1239a69ecf..e559e238ae5a35 100644 --- a/Include/longobject.h +++ b/Include/longobject.h @@ -11,7 +11,7 @@ PyAPI_DATA(PyTypeObject) PyLong_Type; #define PyLong_Check(op) \ PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_LONG_SUBCLASS) -#define PyLong_CheckExact(op) Py_IS_TYPE(op, &PyLong_Type) +#define PyLong_CheckExact(op) Py_IS_TYPE((op), &PyLong_Type) PyAPI_FUNC(PyObject *) PyLong_FromLong(long); PyAPI_FUNC(PyObject *) PyLong_FromUnsignedLong(unsigned long); diff --git a/Include/memoryobject.h b/Include/memoryobject.h index 154397ce1e56d2..19aec679a5fad1 100644 --- a/Include/memoryobject.h +++ b/Include/memoryobject.h @@ -11,7 +11,7 @@ PyAPI_DATA(PyTypeObject) _PyManagedBuffer_Type; #endif PyAPI_DATA(PyTypeObject) PyMemoryView_Type; -#define PyMemoryView_Check(op) Py_IS_TYPE(op, &PyMemoryView_Type) +#define PyMemoryView_Check(op) Py_IS_TYPE((op), &PyMemoryView_Type) #ifndef Py_LIMITED_API /* Get a pointer to the memoryview's private copy of the exporter's buffer. */ diff --git a/Include/methodobject.h b/Include/methodobject.h index c971d78a640a68..72af5ad933df7f 100644 --- a/Include/methodobject.h +++ b/Include/methodobject.h @@ -13,8 +13,8 @@ extern "C" { PyAPI_DATA(PyTypeObject) PyCFunction_Type; -#define PyCFunction_CheckExact(op) Py_IS_TYPE(op, &PyCFunction_Type) -#define PyCFunction_Check(op) PyObject_TypeCheck(op, &PyCFunction_Type) +#define PyCFunction_CheckExact(op) Py_IS_TYPE((op), &PyCFunction_Type) +#define PyCFunction_Check(op) PyObject_TypeCheck((op), &PyCFunction_Type) typedef PyObject *(*PyCFunction)(PyObject *, PyObject *); typedef PyObject *(*_PyCFunctionFast) (PyObject *, PyObject *const *, Py_ssize_t); diff --git a/Include/modsupport.h b/Include/modsupport.h index 0e96a5c988846e..4e369bd56b4d20 100644 --- a/Include/modsupport.h +++ b/Include/modsupport.h @@ -37,8 +37,6 @@ PyAPI_FUNC(PyObject *) Py_BuildValue(const char *, ...); PyAPI_FUNC(PyObject *) _Py_BuildValue_SizeT(const char *, ...); -#define ANY_VARARGS(n) (n == PY_SSIZE_T_MAX) - PyAPI_FUNC(PyObject *) Py_VaBuildValue(const char *, va_list); // Add an attribute with name 'name' and value 'obj' to the module 'mod. @@ -58,8 +56,8 @@ PyAPI_FUNC(int) PyModule_AddStringConstant(PyObject *, const char *, const char PyAPI_FUNC(int) PyModule_AddType(PyObject *module, PyTypeObject *type); #endif /* Py_LIMITED_API */ -#define PyModule_AddIntMacro(m, c) PyModule_AddIntConstant(m, #c, c) -#define PyModule_AddStringMacro(m, c) PyModule_AddStringConstant(m, #c, c) +#define PyModule_AddIntMacro(m, c) PyModule_AddIntConstant((m), #c, (c)) +#define PyModule_AddStringMacro(m, c) PyModule_AddStringConstant((m), #c, (c)) #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 /* New in 3.5 */ @@ -134,10 +132,10 @@ PyAPI_FUNC(PyObject *) PyModule_Create2(PyModuleDef*, int apiver); #ifdef Py_LIMITED_API #define PyModule_Create(module) \ - PyModule_Create2(module, PYTHON_ABI_VERSION) + PyModule_Create2((module), PYTHON_ABI_VERSION) #else #define PyModule_Create(module) \ - PyModule_Create2(module, PYTHON_API_VERSION) + PyModule_Create2((module), PYTHON_API_VERSION) #endif #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 @@ -148,10 +146,10 @@ PyAPI_FUNC(PyObject *) PyModule_FromDefAndSpec2(PyModuleDef *def, #ifdef Py_LIMITED_API #define PyModule_FromDefAndSpec(module, spec) \ - PyModule_FromDefAndSpec2(module, spec, PYTHON_ABI_VERSION) + PyModule_FromDefAndSpec2((module), (spec), PYTHON_ABI_VERSION) #else #define PyModule_FromDefAndSpec(module, spec) \ - PyModule_FromDefAndSpec2(module, spec, PYTHON_API_VERSION) + PyModule_FromDefAndSpec2((module), (spec), PYTHON_API_VERSION) #endif /* Py_LIMITED_API */ #endif /* New in 3.5 */ diff --git a/Include/moduleobject.h b/Include/moduleobject.h index 75abd2cf2b9050..fbb2c5ae79444b 100644 --- a/Include/moduleobject.h +++ b/Include/moduleobject.h @@ -9,8 +9,8 @@ extern "C" { PyAPI_DATA(PyTypeObject) PyModule_Type; -#define PyModule_Check(op) PyObject_TypeCheck(op, &PyModule_Type) -#define PyModule_CheckExact(op) Py_IS_TYPE(op, &PyModule_Type) +#define PyModule_Check(op) PyObject_TypeCheck((op), &PyModule_Type) +#define PyModule_CheckExact(op) Py_IS_TYPE((op), &PyModule_Type) #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 PyAPI_FUNC(PyObject *) PyModule_NewObject( diff --git a/Include/object.h b/Include/object.h index a3c6bd4fa984d5..75624fe8c77a51 100644 --- a/Include/object.h +++ b/Include/object.h @@ -80,10 +80,10 @@ whose size is determined when the object is allocated. #define PyObject_HEAD_INIT(type) \ { _PyObject_EXTRA_INIT \ - 1, type }, + 1, (type) }, #define PyVarObject_HEAD_INIT(type, size) \ - { PyObject_HEAD_INIT(type) size }, + { PyObject_HEAD_INIT(type) (size) }, /* PyObject_VAR_HEAD defines the initial segment of all variable-size * container objects. These end with a declaration of an array with 1 @@ -152,7 +152,7 @@ static inline int Py_IS_TYPE(PyObject *ob, PyTypeObject *type) { return Py_TYPE(ob) == type; } #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define Py_IS_TYPE(ob, type) Py_IS_TYPE(_PyObject_CAST(ob), type) +# define Py_IS_TYPE(ob, type) Py_IS_TYPE(_PyObject_CAST(ob), (type)) #endif @@ -160,7 +160,7 @@ static inline void Py_SET_REFCNT(PyObject *ob, Py_ssize_t refcnt) { ob->ob_refcnt = refcnt; } #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define Py_SET_REFCNT(ob, refcnt) Py_SET_REFCNT(_PyObject_CAST(ob), refcnt) +# define Py_SET_REFCNT(ob, refcnt) Py_SET_REFCNT(_PyObject_CAST(ob), (refcnt)) #endif @@ -176,7 +176,7 @@ static inline void Py_SET_SIZE(PyVarObject *ob, Py_ssize_t size) { ob->ob_size = size; } #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define Py_SET_SIZE(ob, size) Py_SET_SIZE(_PyVarObject_CAST(ob), size) +# define Py_SET_SIZE(ob, size) Py_SET_SIZE(_PyVarObject_CAST(ob), (size)) #endif @@ -228,6 +228,11 @@ typedef int (*initproc)(PyObject *, PyObject *, PyObject *); typedef PyObject *(*newfunc)(PyTypeObject *, PyObject *, PyObject *); typedef PyObject *(*allocfunc)(PyTypeObject *, Py_ssize_t); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030c0000 // 3.12 +typedef PyObject *(*vectorcallfunc)(PyObject *callable, PyObject *const *args, + size_t nargsf, PyObject *kwnames); +#endif + typedef struct{ int slot; /* slot id, see below */ void *pfunc; /* function pointer */ @@ -268,7 +273,7 @@ static inline int PyObject_TypeCheck(PyObject *ob, PyTypeObject *type) { return Py_IS_TYPE(ob, type) || PyType_IsSubtype(Py_TYPE(ob), type); } #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyObject_TypeCheck(ob, type) PyObject_TypeCheck(_PyObject_CAST(ob), type) +# define PyObject_TypeCheck(ob, type) PyObject_TypeCheck(_PyObject_CAST(ob), (type)) #endif PyAPI_DATA(PyTypeObject) PyType_Type; /* built-in 'type' */ @@ -352,12 +357,21 @@ given type object has a specified feature. #ifndef Py_LIMITED_API +/* Track types initialized using _PyStaticType_InitBuiltin(). */ +#define _Py_TPFLAGS_STATIC_BUILTIN (1 << 1) + +/* Placement of weakref pointers are managed by the VM, not by the type. + * The VM will automatically set tp_weaklistoffset. + */ +#define Py_TPFLAGS_MANAGED_WEAKREF (1 << 3) + /* Placement of dict (and values) pointers are managed by the VM, not by the type. - * The VM will automatically set tp_dictoffset. Should not be used for variable sized - * classes, such as classes that extend tuple. + * The VM will automatically set tp_dictoffset. */ #define Py_TPFLAGS_MANAGED_DICT (1 << 4) +#define Py_TPFLAGS_PREHEADER (Py_TPFLAGS_MANAGED_WEAKREF | Py_TPFLAGS_MANAGED_DICT) + /* Set if instances of the type object are treated as sequences for pattern matching */ #define Py_TPFLAGS_SEQUENCE (1 << 5) /* Set if instances of the type object are treated as mappings for pattern matching */ @@ -378,11 +392,13 @@ given type object has a specified feature. #define Py_TPFLAGS_BASETYPE (1UL << 10) /* Set if the type implements the vectorcall protocol (PEP 590) */ -#ifndef Py_LIMITED_API +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030C0000 #define Py_TPFLAGS_HAVE_VECTORCALL (1UL << 11) +#ifndef Py_LIMITED_API // Backwards compatibility alias for API that was provisional in Python 3.8 #define _Py_TPFLAGS_HAVE_VECTORCALL Py_TPFLAGS_HAVE_VECTORCALL #endif +#endif /* Set if the type is 'ready' -- fully initialized */ #define Py_TPFLAGS_READY (1UL << 12) @@ -495,11 +511,11 @@ PyAPI_FUNC(void) _Py_DecRef(PyObject *); static inline void Py_INCREF(PyObject *op) { - _Py_INCREF_STAT_INC(); #if defined(Py_REF_DEBUG) && defined(Py_LIMITED_API) && Py_LIMITED_API+0 >= 0x030A0000 // Stable ABI for Python 3.10 built in debug mode. _Py_IncRef(op); #else + _Py_INCREF_STAT_INC(); // Non-limited C API and limited C API for Python 3.9 and older access // directly PyObject.ob_refcnt. #ifdef Py_REF_DEBUG @@ -779,7 +795,7 @@ PyType_HasFeature(PyTypeObject *type, unsigned long feature) return ((flags & feature) != 0); } -#define PyType_FastSubclass(type, flag) PyType_HasFeature(type, flag) +#define PyType_FastSubclass(type, flag) PyType_HasFeature((type), (flag)) static inline int PyType_Check(PyObject *op) { return PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_TYPE_SUBCLASS); diff --git a/Include/objimpl.h b/Include/objimpl.h index 4fa670e71ab46f..dde8df34835328 100644 --- a/Include/objimpl.h +++ b/Include/objimpl.h @@ -135,14 +135,14 @@ PyAPI_FUNC(PyVarObject *) _PyObject_NewVar(PyTypeObject *, Py_ssize_t); // Alias to PyObject_New(). In Python 3.8, PyObject_NEW() called directly // PyObject_MALLOC() with _PyObject_SIZE(). -#define PyObject_NEW(type, typeobj) PyObject_New(type, typeobj) +#define PyObject_NEW(type, typeobj) PyObject_New(type, (typeobj)) #define PyObject_NewVar(type, typeobj, n) \ ( (type *) _PyObject_NewVar((typeobj), (n)) ) // Alias to PyObject_NewVar(). In Python 3.8, PyObject_NEW_VAR() called // directly PyObject_MALLOC() with _PyObject_VAR_SIZE(). -#define PyObject_NEW_VAR(type, typeobj, n) PyObject_NewVar(type, typeobj, n) +#define PyObject_NEW_VAR(type, typeobj, n) PyObject_NewVar(type, (typeobj), (n)) /* diff --git a/Include/opcode.h b/Include/opcode.h index f76ca946be3ad4..42825df6217b46 100644 --- a/Include/opcode.h +++ b/Include/opcode.h @@ -17,6 +17,8 @@ extern "C" { #define UNARY_NOT 12 #define UNARY_INVERT 15 #define BINARY_SUBSCR 25 +#define BINARY_SLICE 26 +#define STORE_SLICE 27 #define GET_LEN 30 #define MATCH_MAPPING 31 #define MATCH_SEQUENCE 32 @@ -30,6 +32,7 @@ extern "C" { #define BEFORE_ASYNC_WITH 52 #define BEFORE_WITH 53 #define END_ASYNC_FOR 54 +#define CLEANUP_THROW 55 #define STORE_SUBSCR 60 #define DELETE_SUBSCR 61 #define GET_ITER 68 @@ -69,8 +72,8 @@ extern "C" { #define JUMP_FORWARD 110 #define JUMP_IF_FALSE_OR_POP 111 #define JUMP_IF_TRUE_OR_POP 112 -#define POP_JUMP_FORWARD_IF_FALSE 114 -#define POP_JUMP_FORWARD_IF_TRUE 115 +#define POP_JUMP_IF_FALSE 114 +#define POP_JUMP_IF_TRUE 115 #define LOAD_GLOBAL 116 #define IS_OP 117 #define CONTAINS_OP 118 @@ -81,8 +84,9 @@ extern "C" { #define LOAD_FAST 124 #define STORE_FAST 125 #define DELETE_FAST 126 -#define POP_JUMP_FORWARD_IF_NOT_NONE 128 -#define POP_JUMP_FORWARD_IF_NONE 129 +#define LOAD_FAST_CHECK 127 +#define POP_JUMP_IF_NOT_NONE 128 +#define POP_JUMP_IF_NONE 129 #define RAISE_VARARGS 130 #define GET_AWAITABLE 131 #define MAKE_FUNCTION 132 @@ -107,17 +111,21 @@ extern "C" { #define FORMAT_VALUE 155 #define BUILD_CONST_KEY_MAP 156 #define BUILD_STRING 157 -#define LOAD_METHOD 160 #define LIST_EXTEND 162 #define SET_UPDATE 163 #define DICT_MERGE 164 #define DICT_UPDATE 165 #define CALL 171 #define KW_NAMES 172 -#define POP_JUMP_BACKWARD_IF_NOT_NONE 173 -#define POP_JUMP_BACKWARD_IF_NONE 174 -#define POP_JUMP_BACKWARD_IF_FALSE 175 -#define POP_JUMP_BACKWARD_IF_TRUE 176 +#define MIN_PSEUDO_OPCODE 256 +#define SETUP_FINALLY 256 +#define SETUP_CLEANUP 257 +#define SETUP_WITH 258 +#define POP_BLOCK 259 +#define JUMP 260 +#define JUMP_NO_INTERRUPT 261 +#define LOAD_METHOD 262 +#define MAX_PSEUDO_OPCODE 262 #define BINARY_OP_ADAPTIVE 3 #define BINARY_OP_ADD_FLOAT 4 #define BINARY_OP_ADD_INT 5 @@ -135,64 +143,73 @@ extern "C" { #define CALL_ADAPTIVE 22 #define CALL_PY_EXACT_ARGS 23 #define CALL_PY_WITH_DEFAULTS 24 -#define CALL_BOUND_METHOD_EXACT_ARGS 26 -#define CALL_BUILTIN_CLASS 27 -#define CALL_BUILTIN_FAST_WITH_KEYWORDS 28 -#define CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS 29 -#define CALL_NO_KW_BUILTIN_FAST 34 -#define CALL_NO_KW_BUILTIN_O 38 -#define CALL_NO_KW_ISINSTANCE 39 -#define CALL_NO_KW_LEN 40 -#define CALL_NO_KW_LIST_APPEND 41 -#define CALL_NO_KW_METHOD_DESCRIPTOR_FAST 42 -#define CALL_NO_KW_METHOD_DESCRIPTOR_NOARGS 43 -#define CALL_NO_KW_METHOD_DESCRIPTOR_O 44 -#define CALL_NO_KW_STR_1 45 -#define CALL_NO_KW_TUPLE_1 46 -#define CALL_NO_KW_TYPE_1 47 -#define COMPARE_OP_ADAPTIVE 48 -#define COMPARE_OP_FLOAT_JUMP 55 -#define COMPARE_OP_INT_JUMP 56 -#define COMPARE_OP_STR_JUMP 57 -#define EXTENDED_ARG_QUICK 58 -#define JUMP_BACKWARD_QUICK 59 -#define LOAD_ATTR_ADAPTIVE 62 -#define LOAD_ATTR_INSTANCE_VALUE 63 -#define LOAD_ATTR_MODULE 64 -#define LOAD_ATTR_SLOT 65 -#define LOAD_ATTR_WITH_HINT 66 -#define LOAD_CONST__LOAD_FAST 67 -#define LOAD_FAST__LOAD_CONST 72 -#define LOAD_FAST__LOAD_FAST 73 -#define LOAD_GLOBAL_ADAPTIVE 76 -#define LOAD_GLOBAL_BUILTIN 77 -#define LOAD_GLOBAL_MODULE 78 -#define LOAD_METHOD_ADAPTIVE 79 -#define LOAD_METHOD_CLASS 80 -#define LOAD_METHOD_LAZY_DICT 81 -#define LOAD_METHOD_MODULE 86 -#define LOAD_METHOD_NO_DICT 113 -#define LOAD_METHOD_WITH_DICT 121 -#define LOAD_METHOD_WITH_VALUES 127 -#define RESUME_QUICK 141 -#define STORE_ATTR_ADAPTIVE 143 -#define STORE_ATTR_INSTANCE_VALUE 153 -#define STORE_ATTR_SLOT 154 -#define STORE_ATTR_WITH_HINT 158 -#define STORE_FAST__LOAD_FAST 159 -#define STORE_FAST__STORE_FAST 161 -#define STORE_SUBSCR_ADAPTIVE 166 -#define STORE_SUBSCR_DICT 167 -#define STORE_SUBSCR_LIST_INT 168 -#define UNPACK_SEQUENCE_ADAPTIVE 169 -#define UNPACK_SEQUENCE_LIST 170 -#define UNPACK_SEQUENCE_TUPLE 177 -#define UNPACK_SEQUENCE_TWO_TUPLE 178 +#define CALL_BOUND_METHOD_EXACT_ARGS 28 +#define CALL_BUILTIN_CLASS 29 +#define CALL_BUILTIN_FAST_WITH_KEYWORDS 34 +#define CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS 38 +#define CALL_NO_KW_BUILTIN_FAST 39 +#define CALL_NO_KW_BUILTIN_O 40 +#define CALL_NO_KW_ISINSTANCE 41 +#define CALL_NO_KW_LEN 42 +#define CALL_NO_KW_LIST_APPEND 43 +#define CALL_NO_KW_METHOD_DESCRIPTOR_FAST 44 +#define CALL_NO_KW_METHOD_DESCRIPTOR_NOARGS 45 +#define CALL_NO_KW_METHOD_DESCRIPTOR_O 46 +#define CALL_NO_KW_STR_1 47 +#define CALL_NO_KW_TUPLE_1 48 +#define CALL_NO_KW_TYPE_1 56 +#define COMPARE_OP_ADAPTIVE 57 +#define COMPARE_OP_FLOAT_JUMP 58 +#define COMPARE_OP_INT_JUMP 59 +#define COMPARE_OP_STR_JUMP 62 +#define EXTENDED_ARG_QUICK 63 +#define FOR_ITER_ADAPTIVE 64 +#define FOR_ITER_LIST 65 +#define FOR_ITER_RANGE 66 +#define JUMP_BACKWARD_QUICK 67 +#define LOAD_ATTR_ADAPTIVE 72 +#define LOAD_ATTR_CLASS 73 +#define LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN 76 +#define LOAD_ATTR_INSTANCE_VALUE 77 +#define LOAD_ATTR_MODULE 78 +#define LOAD_ATTR_PROPERTY 79 +#define LOAD_ATTR_SLOT 80 +#define LOAD_ATTR_WITH_HINT 81 +#define LOAD_ATTR_METHOD_LAZY_DICT 86 +#define LOAD_ATTR_METHOD_NO_DICT 113 +#define LOAD_ATTR_METHOD_WITH_DICT 121 +#define LOAD_ATTR_METHOD_WITH_VALUES 141 +#define LOAD_CONST__LOAD_FAST 143 +#define LOAD_FAST__LOAD_CONST 153 +#define LOAD_FAST__LOAD_FAST 154 +#define LOAD_GLOBAL_ADAPTIVE 158 +#define LOAD_GLOBAL_BUILTIN 159 +#define LOAD_GLOBAL_MODULE 160 +#define RESUME_QUICK 161 +#define STORE_ATTR_ADAPTIVE 166 +#define STORE_ATTR_INSTANCE_VALUE 167 +#define STORE_ATTR_SLOT 168 +#define STORE_ATTR_WITH_HINT 169 +#define STORE_FAST__LOAD_FAST 170 +#define STORE_FAST__STORE_FAST 173 +#define STORE_SUBSCR_ADAPTIVE 174 +#define STORE_SUBSCR_DICT 175 +#define STORE_SUBSCR_LIST_INT 176 +#define UNPACK_SEQUENCE_ADAPTIVE 177 +#define UNPACK_SEQUENCE_LIST 178 +#define UNPACK_SEQUENCE_TUPLE 179 +#define UNPACK_SEQUENCE_TWO_TUPLE 180 #define DO_TRACING 255 +#define HAS_ARG(op) ((((op) >= HAVE_ARGUMENT) && (!IS_PSEUDO_OPCODE(op)))\ + || ((op) == JUMP) \ + || ((op) == JUMP_NO_INTERRUPT) \ + || ((op) == LOAD_METHOD) \ + ) + #define HAS_CONST(op) (false\ - || ((op) == 100) \ - || ((op) == 172) \ + || ((op) == LOAD_CONST) \ + || ((op) == KW_NAMES) \ ) #define NB_ADD 0 @@ -222,11 +239,8 @@ extern "C" { #define NB_INPLACE_TRUE_DIVIDE 24 #define NB_INPLACE_XOR 25 -#define HAS_ARG(op) ((op) >= HAVE_ARGUMENT) -/* Reserve some bytecodes for internal use in the compiler. - * The value of 240 is arbitrary. */ -#define IS_ARTIFICIAL(op) ((op) > 240) +#define IS_PSEUDO_OPCODE(op) (((op) >= MIN_PSEUDO_OPCODE) && ((op) <= MAX_PSEUDO_OPCODE)) #ifdef __cplusplus } diff --git a/Include/py_curses.h b/Include/py_curses.h index b2c7f1bb4309c6..e46b08e9cc414e 100644 --- a/Include/py_curses.h +++ b/Include/py_curses.h @@ -64,7 +64,7 @@ typedef struct { char *encoding; } PyCursesWindowObject; -#define PyCursesWindow_Check(v) Py_IS_TYPE(v, &PyCursesWindow_Type) +#define PyCursesWindow_Check(v) Py_IS_TYPE((v), &PyCursesWindow_Type) #define PyCurses_CAPSULE_NAME "_curses._C_API" diff --git a/Include/pycapsule.h b/Include/pycapsule.h index fb5d503fea73f1..929a9a685259fb 100644 --- a/Include/pycapsule.h +++ b/Include/pycapsule.h @@ -22,7 +22,7 @@ PyAPI_DATA(PyTypeObject) PyCapsule_Type; typedef void (*PyCapsule_Destructor)(PyObject *); -#define PyCapsule_CheckExact(op) Py_IS_TYPE(op, &PyCapsule_Type) +#define PyCapsule_CheckExact(op) Py_IS_TYPE((op), &PyCapsule_Type) PyAPI_FUNC(PyObject *) PyCapsule_New( diff --git a/Include/pyerrors.h b/Include/pyerrors.h index 34e3de3328f410..d5ac6af5b32c6c 100644 --- a/Include/pyerrors.h +++ b/Include/pyerrors.h @@ -62,10 +62,10 @@ PyAPI_FUNC(void) PyException_SetContext(PyObject *, PyObject *); PyAPI_FUNC(const char *) PyExceptionClass_Name(PyObject *); -#define PyExceptionInstance_Class(x) ((PyObject*)Py_TYPE(x)) +#define PyExceptionInstance_Class(x) _PyObject_CAST(Py_TYPE(x)) #define _PyBaseExceptionGroup_Check(x) \ - PyObject_TypeCheck(x, (PyTypeObject *)PyExc_BaseExceptionGroup) + PyObject_TypeCheck((x), (PyTypeObject *)PyExc_BaseExceptionGroup) /* Predefined exceptions */ diff --git a/Include/pyframe.h b/Include/pyframe.h index feac16f69de698..13d52312ea966e 100644 --- a/Include/pyframe.h +++ b/Include/pyframe.h @@ -14,6 +14,12 @@ PyAPI_FUNC(int) PyFrame_GetLineNumber(PyFrameObject *); PyAPI_FUNC(PyCodeObject *) PyFrame_GetCode(PyFrameObject *frame); +#ifndef Py_LIMITED_API +# define Py_CPYTHON_PYFRAME_H +# include "cpython/pyframe.h" +# undef Py_CPYTHON_PYFRAME_H +#endif + #ifdef __cplusplus } #endif diff --git a/Include/pymacro.h b/Include/pymacro.h index 0a2c342e2c8aee..e37cda44c5ebf1 100644 --- a/Include/pymacro.h +++ b/Include/pymacro.h @@ -12,8 +12,10 @@ // static_assert is defined in glibc from version 2.16. Before it requires // compiler support (gcc >= 4.6) and is called _Static_assert. +// In C++ 11 static_assert is a keyword, redefining is undefined behaviour. #if (defined(__GLIBC__) \ && (__GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ <= 16)) \ + && !(defined(__cplusplus) && __cplusplus >= 201103L) \ && !defined(static_assert)) # define static_assert _Static_assert #endif diff --git a/Include/pymem.h b/Include/pymem.h index c15ad10dfcf831..e882645757bfd3 100644 --- a/Include/pymem.h +++ b/Include/pymem.h @@ -82,13 +82,13 @@ PyAPI_FUNC(void) PyMem_Free(void *ptr); // Deprecated aliases only kept for backward compatibility. // PyMem_Del and PyMem_DEL are defined with no parameter to be able to use // them as function pointers (ex: dealloc = PyMem_Del). -#define PyMem_MALLOC(n) PyMem_Malloc(n) -#define PyMem_NEW(type, n) PyMem_New(type, n) -#define PyMem_REALLOC(p, n) PyMem_Realloc(p, n) -#define PyMem_RESIZE(p, type, n) PyMem_Resize(p, type, n) -#define PyMem_FREE(p) PyMem_Free(p) -#define PyMem_Del PyMem_Free -#define PyMem_DEL PyMem_Free +#define PyMem_MALLOC(n) PyMem_Malloc((n)) +#define PyMem_NEW(type, n) PyMem_New(type, (n)) +#define PyMem_REALLOC(p, n) PyMem_Realloc((p), (n)) +#define PyMem_RESIZE(p, type, n) PyMem_Resize((p), type, (n)) +#define PyMem_FREE(p) PyMem_Free((p)) +#define PyMem_Del(p) PyMem_Free((p)) +#define PyMem_DEL(p) PyMem_Free((p)) #ifndef Py_LIMITED_API diff --git a/Include/pyport.h b/Include/pyport.h index 6ea2bba232b3dd..b3ff2f4882e90f 100644 --- a/Include/pyport.h +++ b/Include/pyport.h @@ -14,50 +14,19 @@ #endif -// Macro to use C++ static_cast<>, reinterpret_cast<> and const_cast<> -// in the Python C API. -// -// In C++, _Py_CAST(type, expr) converts a constant expression to a -// non constant type using const_cast. For example, -// _Py_CAST(PyObject*, op) can convert a "const PyObject*" to -// "PyObject*". -// -// The type argument must not be a constant type. +// Macro to use C++ static_cast<> in the Python C API. #ifdef __cplusplus # define _Py_STATIC_CAST(type, expr) static_cast(expr) -extern "C++" { - namespace { - template - inline type _Py_CAST_impl(expr_type *expr) { - return reinterpret_cast(expr); - } - - template - inline type _Py_CAST_impl(expr_type const *expr) { - return reinterpret_cast(const_cast(expr)); - } - - template - inline type _Py_CAST_impl(expr_type &expr) { - return static_cast(expr); - } - - template - inline type _Py_CAST_impl(expr_type const &expr) { - return static_cast(const_cast(expr)); - } - } -} -# define _Py_CAST(type, expr) _Py_CAST_impl(expr) - #else # define _Py_STATIC_CAST(type, expr) ((type)(expr)) -# define _Py_CAST(type, expr) ((type)(expr)) #endif +// Macro to use the more powerful/dangerous C-style cast even in C++. +#define _Py_CAST(type, expr) ((type)(expr)) // Static inline functions should use _Py_NULL rather than using directly NULL -// to prevent C++ compiler warnings. In C++, _Py_NULL uses nullptr. -#ifdef __cplusplus +// to prevent C++ compiler warnings. On C++11 and newer, _Py_NULL is defined as +// nullptr. +#if defined(__cplusplus) && __cplusplus >= 201103 # define _Py_NULL nullptr #else # define _Py_NULL NULL diff --git a/Include/pystats.h b/Include/pystats.h index bea471bfc1de94..87e92aa4f05fa6 100644 --- a/Include/pystats.h +++ b/Include/pystats.h @@ -73,19 +73,22 @@ typedef struct _stats { ObjectStats object_stats; } PyStats; -PyAPI_DATA(PyStats) _py_stats; +PyAPI_DATA(PyStats) _py_stats_struct; +PyAPI_DATA(PyStats *) _py_stats; + +extern void _Py_StatsClear(void); extern void _Py_PrintSpecializationStats(int to_file); #ifdef _PY_INTERPRETER -#define _Py_INCREF_STAT_INC() _py_stats.object_stats.interpreter_increfs++ -#define _Py_DECREF_STAT_INC() _py_stats.object_stats.interpreter_decrefs++ +#define _Py_INCREF_STAT_INC() do { if (_py_stats) _py_stats->object_stats.interpreter_increfs++; } while (0) +#define _Py_DECREF_STAT_INC() do { if (_py_stats) _py_stats->object_stats.interpreter_decrefs++; } while (0) #else -#define _Py_INCREF_STAT_INC() _py_stats.object_stats.increfs++ -#define _Py_DECREF_STAT_INC() _py_stats.object_stats.decrefs++ +#define _Py_INCREF_STAT_INC() do { if (_py_stats) _py_stats->object_stats.increfs++; } while (0) +#define _Py_DECREF_STAT_INC() do { if (_py_stats) _py_stats->object_stats.decrefs++; } while (0) #endif diff --git a/Include/rangeobject.h b/Include/rangeobject.h index d6af8473f9e8d3..d46ce7cd41b741 100644 --- a/Include/rangeobject.h +++ b/Include/rangeobject.h @@ -19,7 +19,7 @@ PyAPI_DATA(PyTypeObject) PyRange_Type; PyAPI_DATA(PyTypeObject) PyRangeIter_Type; PyAPI_DATA(PyTypeObject) PyLongRangeIter_Type; -#define PyRange_Check(op) Py_IS_TYPE(op, &PyRange_Type) +#define PyRange_Check(op) Py_IS_TYPE((op), &PyRange_Type) #ifdef __cplusplus } diff --git a/Include/setobject.h b/Include/setobject.h index fdad70644c545c..62c9e6b13f8901 100644 --- a/Include/setobject.h +++ b/Include/setobject.h @@ -20,21 +20,21 @@ PyAPI_FUNC(int) PySet_Discard(PyObject *set, PyObject *key); PyAPI_FUNC(PyObject *) PySet_Pop(PyObject *set); PyAPI_FUNC(Py_ssize_t) PySet_Size(PyObject *anyset); -#define PyFrozenSet_CheckExact(ob) Py_IS_TYPE(ob, &PyFrozenSet_Type) +#define PyFrozenSet_CheckExact(ob) Py_IS_TYPE((ob), &PyFrozenSet_Type) #define PyFrozenSet_Check(ob) \ - (Py_IS_TYPE(ob, &PyFrozenSet_Type) || \ + (Py_IS_TYPE((ob), &PyFrozenSet_Type) || \ PyType_IsSubtype(Py_TYPE(ob), &PyFrozenSet_Type)) #define PyAnySet_CheckExact(ob) \ - (Py_IS_TYPE(ob, &PySet_Type) || Py_IS_TYPE(ob, &PyFrozenSet_Type)) + (Py_IS_TYPE((ob), &PySet_Type) || Py_IS_TYPE((ob), &PyFrozenSet_Type)) #define PyAnySet_Check(ob) \ - (Py_IS_TYPE(ob, &PySet_Type) || Py_IS_TYPE(ob, &PyFrozenSet_Type) || \ + (Py_IS_TYPE((ob), &PySet_Type) || Py_IS_TYPE((ob), &PyFrozenSet_Type) || \ PyType_IsSubtype(Py_TYPE(ob), &PySet_Type) || \ PyType_IsSubtype(Py_TYPE(ob), &PyFrozenSet_Type)) #define PySet_CheckExact(op) Py_IS_TYPE(op, &PySet_Type) #define PySet_Check(ob) \ - (Py_IS_TYPE(ob, &PySet_Type) || \ + (Py_IS_TYPE((ob), &PySet_Type) || \ PyType_IsSubtype(Py_TYPE(ob), &PySet_Type)) #ifndef Py_LIMITED_API diff --git a/Include/sliceobject.h b/Include/sliceobject.h index 2c889508b4b495..c13863f27c2e63 100644 --- a/Include/sliceobject.h +++ b/Include/sliceobject.h @@ -28,7 +28,7 @@ typedef struct { PyAPI_DATA(PyTypeObject) PySlice_Type; PyAPI_DATA(PyTypeObject) PyEllipsis_Type; -#define PySlice_Check(op) Py_IS_TYPE(op, &PySlice_Type) +#define PySlice_Check(op) Py_IS_TYPE((op), &PySlice_Type) PyAPI_FUNC(PyObject *) PySlice_New(PyObject* start, PyObject* stop, PyObject* step); diff --git a/Include/structseq.h b/Include/structseq.h index 4f5c09f7ba05ef..96871155611958 100644 --- a/Include/structseq.h +++ b/Include/structseq.h @@ -35,9 +35,9 @@ PyAPI_FUNC(PyObject *) PyStructSequence_New(PyTypeObject* type); typedef PyTupleObject PyStructSequence; /* Macro, *only* to be used to fill in brand new objects */ -#define PyStructSequence_SET_ITEM(op, i, v) PyTuple_SET_ITEM(op, i, v) +#define PyStructSequence_SET_ITEM(op, i, v) PyTuple_SET_ITEM((op), (i), (v)) -#define PyStructSequence_GET_ITEM(op, i) PyTuple_GET_ITEM(op, i) +#define PyStructSequence_GET_ITEM(op, i) PyTuple_GET_ITEM((op), (i)) #endif PyAPI_FUNC(void) PyStructSequence_SetItem(PyObject*, Py_ssize_t, PyObject*); diff --git a/Include/traceback.h b/Include/traceback.h index 2dfa2ada4f2c37..2b40cc9fc32617 100644 --- a/Include/traceback.h +++ b/Include/traceback.h @@ -11,7 +11,7 @@ PyAPI_FUNC(int) PyTraceBack_Print(PyObject *, PyObject *); /* Reveal traceback type so we can typecheck traceback objects */ PyAPI_DATA(PyTypeObject) PyTraceBack_Type; -#define PyTraceBack_Check(v) Py_IS_TYPE(v, &PyTraceBack_Type) +#define PyTraceBack_Check(v) Py_IS_TYPE((v), &PyTraceBack_Type) #ifndef Py_LIMITED_API diff --git a/Include/tupleobject.h b/Include/tupleobject.h index dc68e3fc5c6d88..1f9ab54be65f87 100644 --- a/Include/tupleobject.h +++ b/Include/tupleobject.h @@ -25,7 +25,7 @@ PyAPI_DATA(PyTypeObject) PyTupleIter_Type; #define PyTuple_Check(op) \ PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_TUPLE_SUBCLASS) -#define PyTuple_CheckExact(op) Py_IS_TYPE(op, &PyTuple_Type) +#define PyTuple_CheckExact(op) Py_IS_TYPE((op), &PyTuple_Type) PyAPI_FUNC(PyObject *) PyTuple_New(Py_ssize_t size); PyAPI_FUNC(Py_ssize_t) PyTuple_Size(PyObject *); diff --git a/Include/unicodeobject.h b/Include/unicodeobject.h index 27fde229022a1c..74474f5bb8f976 100644 --- a/Include/unicodeobject.h +++ b/Include/unicodeobject.h @@ -113,7 +113,7 @@ PyAPI_DATA(PyTypeObject) PyUnicodeIter_Type; #define PyUnicode_Check(op) \ PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_UNICODE_SUBCLASS) -#define PyUnicode_CheckExact(op) Py_IS_TYPE(op, &PyUnicode_Type) +#define PyUnicode_CheckExact(op) Py_IS_TYPE((op), &PyUnicode_Type) /* --- Constants ---------------------------------------------------------- */ diff --git a/Include/weakrefobject.h b/Include/weakrefobject.h index f071e9c759a641..8e1fa1b9286a77 100644 --- a/Include/weakrefobject.h +++ b/Include/weakrefobject.h @@ -12,12 +12,12 @@ PyAPI_DATA(PyTypeObject) _PyWeakref_RefType; PyAPI_DATA(PyTypeObject) _PyWeakref_ProxyType; PyAPI_DATA(PyTypeObject) _PyWeakref_CallableProxyType; -#define PyWeakref_CheckRef(op) PyObject_TypeCheck(op, &_PyWeakref_RefType) +#define PyWeakref_CheckRef(op) PyObject_TypeCheck((op), &_PyWeakref_RefType) #define PyWeakref_CheckRefExact(op) \ - Py_IS_TYPE(op, &_PyWeakref_RefType) + Py_IS_TYPE((op), &_PyWeakref_RefType) #define PyWeakref_CheckProxy(op) \ - (Py_IS_TYPE(op, &_PyWeakref_ProxyType) || \ - Py_IS_TYPE(op, &_PyWeakref_CallableProxyType)) + (Py_IS_TYPE((op), &_PyWeakref_ProxyType) \ + || Py_IS_TYPE((op), &_PyWeakref_CallableProxyType)) #define PyWeakref_Check(op) \ (PyWeakref_CheckRef(op) || PyWeakref_CheckProxy(op)) diff --git a/Lib/__future__.py b/Lib/__future__.py index 97dc90c6e4644a..39720a5e4126cd 100644 --- a/Lib/__future__.py +++ b/Lib/__future__.py @@ -33,7 +33,7 @@ to use the feature in question, but may continue to use such imports. MandatoryRelease may also be None, meaning that a planned feature got -dropped. +dropped or that the release version is undetermined. Instances of class _Feature have two corresponding methods, .getOptionalRelease() and .getMandatoryRelease(). @@ -96,7 +96,7 @@ def getMandatoryRelease(self): """Return release in which this feature will become mandatory. This is a 5-tuple, of the same form as sys.version_info, or, if - the feature was dropped, is None. + the feature was dropped, or the release date is undetermined, is None. """ return self.mandatory @@ -143,5 +143,5 @@ def __repr__(self): CO_FUTURE_GENERATOR_STOP) annotations = _Feature((3, 7, 0, "beta", 1), - (3, 11, 0, "alpha", 0), + None, CO_FUTURE_ANNOTATIONS) diff --git a/Lib/_bootsubprocess.py b/Lib/_bootsubprocess.py deleted file mode 100644 index 014782f616c823..00000000000000 --- a/Lib/_bootsubprocess.py +++ /dev/null @@ -1,97 +0,0 @@ -""" -Basic subprocess implementation for POSIX which only uses os functions. Only -implement features required by setup.py to build C extension modules when -subprocess is unavailable. setup.py is not used on Windows. -""" -import os - - -# distutils.spawn used by distutils.command.build_ext -# calls subprocess.Popen().wait() -class Popen: - def __init__(self, cmd, env=None): - self._cmd = cmd - self._env = env - self.returncode = None - - def wait(self): - pid = os.fork() - if pid == 0: - # Child process - try: - if self._env is not None: - os.execve(self._cmd[0], self._cmd, self._env) - else: - os.execv(self._cmd[0], self._cmd) - finally: - os._exit(1) - else: - # Parent process - _, status = os.waitpid(pid, 0) - self.returncode = os.waitstatus_to_exitcode(status) - - return self.returncode - - -def _check_cmd(cmd): - # Use regex [a-zA-Z0-9./-]+: reject empty string, space, etc. - safe_chars = [] - for first, last in (("a", "z"), ("A", "Z"), ("0", "9")): - for ch in range(ord(first), ord(last) + 1): - safe_chars.append(chr(ch)) - safe_chars.append("./-") - safe_chars = ''.join(safe_chars) - - if isinstance(cmd, (tuple, list)): - check_strs = cmd - elif isinstance(cmd, str): - check_strs = [cmd] - else: - return False - - for arg in check_strs: - if not isinstance(arg, str): - return False - if not arg: - # reject empty string - return False - for ch in arg: - if ch not in safe_chars: - return False - - return True - - -# _aix_support used by distutil.util calls subprocess.check_output() -def check_output(cmd, **kwargs): - if kwargs: - raise NotImplementedError(repr(kwargs)) - - if not _check_cmd(cmd): - raise ValueError(f"unsupported command: {cmd!r}") - - tmp_filename = "check_output.tmp" - if not isinstance(cmd, str): - cmd = " ".join(cmd) - cmd = f"{cmd} >{tmp_filename}" - - try: - # system() spawns a shell - status = os.system(cmd) - exitcode = os.waitstatus_to_exitcode(status) - if exitcode: - raise ValueError(f"Command {cmd!r} returned non-zero " - f"exit status {exitcode!r}") - - try: - with open(tmp_filename, "rb") as fp: - stdout = fp.read() - except FileNotFoundError: - stdout = b'' - finally: - try: - os.unlink(tmp_filename) - except OSError: - pass - - return stdout diff --git a/Lib/_pyio.py b/Lib/_pyio.py index 0bfdeaafae274b..12510784c8b926 100644 --- a/Lib/_pyio.py +++ b/Lib/_pyio.py @@ -303,22 +303,6 @@ def _open_code_with_warning(path): open_code = _open_code_with_warning -def __getattr__(name): - if name == "OpenWrapper": - # bpo-43680: Until Python 3.9, _pyio.open was not a static method and - # builtins.open was set to OpenWrapper to not become a bound method - # when set to a class variable. _io.open is a built-in function whereas - # _pyio.open is a Python function. In Python 3.10, _pyio.open() is now - # a static method, and builtins.open() is now io.open(). - import warnings - warnings.warn('OpenWrapper is deprecated, use open instead', - DeprecationWarning, stacklevel=2) - global OpenWrapper - OpenWrapper = open - return OpenWrapper - raise AttributeError(f"module {__name__!r} has no attribute {name!r}") - - # In normal operation, both `UnsupportedOperation`s should be bound to the # same object. try: diff --git a/Lib/argparse.py b/Lib/argparse.py index 1c5520c4b41bd1..d2dcfdf5682f7c 100644 --- a/Lib/argparse.py +++ b/Lib/argparse.py @@ -2161,7 +2161,9 @@ def _read_args_from_files(self, arg_strings): # replace arguments referencing files with the file content else: try: - with open(arg_string[1:]) as args_file: + with open(arg_string[1:], + encoding=_sys.getfilesystemencoding(), + errors=_sys.getfilesystemencodeerrors()) as args_file: arg_strings = [] for arg_line in args_file.read().splitlines(): for arg in self.convert_arg_line_to_args(arg_line): @@ -2475,9 +2477,11 @@ def _get_values(self, action, arg_strings): not action.option_strings): if action.default is not None: value = action.default + self._check_value(action, value) else: + # since arg_strings is always [] at this point + # there is no need to use self._check_value(action, value) value = arg_strings - self._check_value(action, value) # single argument or optional argument produces a single value elif len(arg_strings) == 1 and action.nargs in [None, OPTIONAL]: @@ -2519,7 +2523,6 @@ def _get_value(self, action, arg_string): # ArgumentTypeErrors indicate errors except ArgumentTypeError as err: - name = getattr(action.type, '__name__', repr(action.type)) msg = str(err) raise ArgumentError(action, msg) diff --git a/Lib/ast.py b/Lib/ast.py index 4e2ae859245f99..8adb61fed45388 100644 --- a/Lib/ast.py +++ b/Lib/ast.py @@ -40,12 +40,13 @@ def parse(source, filename='', mode='exec', *, flags = PyCF_ONLY_AST if type_comments: flags |= PyCF_TYPE_COMMENTS - if isinstance(feature_version, tuple): + if feature_version is None: + feature_version = -1 + elif isinstance(feature_version, tuple): major, minor = feature_version # Should be a 2-tuple. - assert major == 3 + if major != 3: + raise ValueError(f"Unsupported major version: {major}") feature_version = minor - elif feature_version is None: - feature_version = -1 # Else it should be an int giving the minor version for 3.x. return compile(source, filename, mode, flags, _feature_version=feature_version) @@ -852,7 +853,7 @@ def visit_Import(self, node): def visit_ImportFrom(self, node): self.fill("from ") - self.write("." * node.level) + self.write("." * (node.level or 0)) if node.module: self.write(node.module) self.write(" import ") diff --git a/Lib/asyncio/base_events.py b/Lib/asyncio/base_events.py index fa00bf9a2ca090..a675fff1688d27 100644 --- a/Lib/asyncio/base_events.py +++ b/Lib/asyncio/base_events.py @@ -980,7 +980,8 @@ async def create_connection( local_addr=None, server_hostname=None, ssl_handshake_timeout=None, ssl_shutdown_timeout=None, - happy_eyeballs_delay=None, interleave=None): + happy_eyeballs_delay=None, interleave=None, + all_errors=False): """Connect to a TCP server. Create a streaming transport connection to a given internet host and @@ -1069,6 +1070,8 @@ async def create_connection( if sock is None: exceptions = [exc for sub in exceptions for exc in sub] + if all_errors: + raise ExceptionGroup("create_connection failed", exceptions) if len(exceptions) == 1: raise exceptions[0] else: diff --git a/Lib/asyncio/base_futures.py b/Lib/asyncio/base_futures.py index cd811a788cb6df..7987963bd99349 100644 --- a/Lib/asyncio/base_futures.py +++ b/Lib/asyncio/base_futures.py @@ -1,7 +1,6 @@ __all__ = () import reprlib -from _thread import get_ident from . import format_helpers diff --git a/Lib/asyncio/coroutines.py b/Lib/asyncio/coroutines.py index 0e4b489f30fd7c..7fda0e449d500a 100644 --- a/Lib/asyncio/coroutines.py +++ b/Lib/asyncio/coroutines.py @@ -4,7 +4,6 @@ import inspect import os import sys -import traceback import types diff --git a/Lib/asyncio/futures.py b/Lib/asyncio/futures.py index 08c79e7b5109bf..4bd9629e9eb62b 100644 --- a/Lib/asyncio/futures.py +++ b/Lib/asyncio/futures.py @@ -206,7 +206,7 @@ def result(self): raise exceptions.InvalidStateError('Result is not ready.') self.__log_traceback = False if self._exception is not None: - raise self._exception + raise self._exception.with_traceback(self._exception_tb) return self._result def exception(self): @@ -282,6 +282,7 @@ def set_exception(self, exception): raise TypeError("StopIteration interacts badly with generators " "and cannot be raised into a Future") self._exception = exception + self._exception_tb = exception.__traceback__ self._state = _FINISHED self.__schedule_callbacks() self.__log_traceback = True diff --git a/Lib/asyncio/locks.py b/Lib/asyncio/locks.py index e71130274dd6f3..42177f1c079948 100644 --- a/Lib/asyncio/locks.py +++ b/Lib/asyncio/locks.py @@ -8,7 +8,6 @@ from . import exceptions from . import mixins -from . import tasks class _ContextManagerMixin: async def __aenter__(self): diff --git a/Lib/asyncio/runners.py b/Lib/asyncio/runners.py index 065691bed99285..840b133df83ee6 100644 --- a/Lib/asyncio/runners.py +++ b/Lib/asyncio/runners.py @@ -5,7 +5,6 @@ import functools import threading import signal -import sys from . import coroutines from . import events from . import exceptions @@ -53,6 +52,7 @@ def __init__(self, *, debug=None, loop_factory=None): self._loop = None self._context = None self._interrupt_count = 0 + self._set_event_loop = False def __enter__(self): self._lazy_init() @@ -71,6 +71,8 @@ def close(self): loop.run_until_complete(loop.shutdown_asyncgens()) loop.run_until_complete(loop.shutdown_default_executor()) finally: + if self._set_event_loop: + events.set_event_loop(None) loop.close() self._loop = None self._state = _State.CLOSED @@ -114,10 +116,11 @@ def run(self, coro, *, context=None): try: return self._loop.run_until_complete(task) except exceptions.CancelledError: - if self._interrupt_count > 0 and task.uncancel() == 0: - raise KeyboardInterrupt() - else: - raise # CancelledError + if self._interrupt_count > 0: + uncancel = getattr(task, "uncancel", None) + if uncancel is not None and uncancel() == 0: + raise KeyboardInterrupt() + raise # CancelledError finally: if (sigint_handler is not None and signal.getsignal(signal.SIGINT) is sigint_handler @@ -131,6 +134,11 @@ def _lazy_init(self): return if self._loop_factory is None: self._loop = events.new_event_loop() + if not self._set_event_loop: + # Call set_event_loop only once to avoid calling + # attach_loop multiple times on child watchers + events.set_event_loop(self._loop) + self._set_event_loop = True else: self._loop = self._loop_factory() if self._debug is not None: diff --git a/Lib/asyncio/streams.py b/Lib/asyncio/streams.py index a568c4e4b295f0..c4d837a1170819 100644 --- a/Lib/asyncio/streams.py +++ b/Lib/asyncio/streams.py @@ -2,9 +2,9 @@ 'StreamReader', 'StreamWriter', 'StreamReaderProtocol', 'open_connection', 'start_server') +import collections import socket import sys -import warnings import weakref if hasattr(socket, 'AF_UNIX'): @@ -129,7 +129,7 @@ def __init__(self, loop=None): else: self._loop = loop self._paused = False - self._drain_waiter = None + self._drain_waiters = collections.deque() self._connection_lost = False def pause_writing(self): @@ -144,38 +144,34 @@ def resume_writing(self): if self._loop.get_debug(): logger.debug("%r resumes writing", self) - waiter = self._drain_waiter - if waiter is not None: - self._drain_waiter = None + for waiter in self._drain_waiters: if not waiter.done(): waiter.set_result(None) def connection_lost(self, exc): self._connection_lost = True - # Wake up the writer if currently paused. + # Wake up the writer(s) if currently paused. if not self._paused: return - waiter = self._drain_waiter - if waiter is None: - return - self._drain_waiter = None - if waiter.done(): - return - if exc is None: - waiter.set_result(None) - else: - waiter.set_exception(exc) + + for waiter in self._drain_waiters: + if not waiter.done(): + if exc is None: + waiter.set_result(None) + else: + waiter.set_exception(exc) async def _drain_helper(self): if self._connection_lost: raise ConnectionResetError('Connection lost') if not self._paused: return - waiter = self._drain_waiter - assert waiter is None or waiter.cancelled() waiter = self._loop.create_future() - self._drain_waiter = waiter - await waiter + self._drain_waiters.append(waiter) + try: + await waiter + finally: + self._drain_waiters.remove(waiter) def _get_close_waiter(self, stream): raise NotImplementedError @@ -206,6 +202,7 @@ def __init__(self, stream_reader, client_connected_cb=None, loop=None): self._strong_reader = stream_reader self._reject_connection = False self._stream_writer = None + self._task = None self._transport = None self._client_connected_cb = client_connected_cb self._over_ssl = False @@ -248,7 +245,7 @@ def connection_made(self, transport): res = self._client_connected_cb(reader, self._stream_writer) if coroutines.iscoroutine(res): - self._loop.create_task(res) + self._task = self._loop.create_task(res) self._strong_reader = None def connection_lost(self, exc): @@ -266,6 +263,7 @@ def connection_lost(self, exc): super().connection_lost(exc) self._stream_reader_wr = None self._stream_writer = None + self._task = None self._transport = None def data_received(self, data): diff --git a/Lib/asyncio/taskgroups.py b/Lib/asyncio/taskgroups.py index 6af21f3a15d93a..5d5e2a8a85dd48 100644 --- a/Lib/asyncio/taskgroups.py +++ b/Lib/asyncio/taskgroups.py @@ -1,10 +1,9 @@ -# Adapted with permission from the EdgeDB project. +# Adapted with permission from the EdgeDB project; +# license: PSFL. __all__ = ["TaskGroup"] -import weakref - from . import events from . import exceptions from . import tasks @@ -19,8 +18,7 @@ def __init__(self): self._loop = None self._parent_task = None self._parent_cancel_requested = False - self._tasks = weakref.WeakSet() - self._unfinished_tasks = 0 + self._tasks = set() self._errors = [] self._base_error = None self._on_completed_fut = None @@ -29,8 +27,6 @@ def __repr__(self): info = [''] if self._tasks: info.append(f'tasks={len(self._tasks)}') - if self._unfinished_tasks: - info.append(f'unfinished={self._unfinished_tasks}') if self._errors: info.append(f'errors={len(self._errors)}') if self._aborting: @@ -59,21 +55,22 @@ async def __aenter__(self): async def __aexit__(self, et, exc, tb): self._exiting = True - propagate_cancellation_error = None if (exc is not None and self._is_base_error(exc) and self._base_error is None): self._base_error = exc - if et is not None: - if et is exceptions.CancelledError: - if self._parent_cancel_requested and not self._parent_task.uncancel(): - # Do nothing, i.e. swallow the error. - pass - else: - propagate_cancellation_error = exc + propagate_cancellation_error = \ + exc if et is exceptions.CancelledError else None + if self._parent_cancel_requested: + # If this flag is set we *must* call uncancel(). + if self._parent_task.uncancel() == 0: + # If there are no pending cancellations left, + # don't propagate CancelledError. + propagate_cancellation_error = None + if et is not None: if not self._aborting: # Our parent task is being cancelled: # @@ -93,7 +90,7 @@ async def __aexit__(self, et, exc, tb): # can be cancelled multiple times if our parent task # is being cancelled repeatedly (or even once, when # our own cancellation is already in progress) - while self._unfinished_tasks: + while self._tasks: if self._on_completed_fut is None: self._on_completed_fut = self._loop.create_future() @@ -114,15 +111,14 @@ async def __aexit__(self, et, exc, tb): self._on_completed_fut = None - assert self._unfinished_tasks == 0 + assert not self._tasks if self._base_error is not None: raise self._base_error - if propagate_cancellation_error is not None: - # The wrapping task was cancelled; since we're done with - # closing all child tasks, just propagate the cancellation - # request now. + # Propagate CancelledError if there is one, except if there + # are other errors -- those have priority. + if propagate_cancellation_error and not self._errors: raise propagate_cancellation_error if et is not None and et is not exceptions.CancelledError: @@ -141,15 +137,16 @@ async def __aexit__(self, et, exc, tb): def create_task(self, coro, *, name=None, context=None): if not self._entered: raise RuntimeError(f"TaskGroup {self!r} has not been entered") - if self._exiting and self._unfinished_tasks == 0: + if self._exiting and not self._tasks: raise RuntimeError(f"TaskGroup {self!r} is finished") + if self._aborting: + raise RuntimeError(f"TaskGroup {self!r} is shutting down") if context is None: task = self._loop.create_task(coro) else: task = self._loop.create_task(coro, context=context) tasks._set_task_name(task, name) task.add_done_callback(self._on_task_done) - self._unfinished_tasks += 1 self._tasks.add(task) return task @@ -169,10 +166,9 @@ def _abort(self): t.cancel() def _on_task_done(self, task): - self._unfinished_tasks -= 1 - assert self._unfinished_tasks >= 0 + self._tasks.discard(task) - if self._on_completed_fut is not None and not self._unfinished_tasks: + if self._on_completed_fut is not None and not self._tasks: if not self._on_completed_fut.done(): self._on_completed_fut.set_result(True) diff --git a/Lib/asyncio/tasks.py b/Lib/asyncio/tasks.py index 3952b5f2a7743d..56a355cbdc70c8 100644 --- a/Lib/asyncio/tasks.py +++ b/Lib/asyncio/tasks.py @@ -252,10 +252,6 @@ def uncancel(self): self._num_cancels_requested -= 1 return self._num_cancels_requested - def _check_future(self, future): - """Return False if task and future loops are not compatible.""" - return futures._get_loop(future) is self._loop - def __step(self, exc=None): if self.done(): raise exceptions.InvalidStateError( @@ -296,7 +292,7 @@ def __step(self, exc=None): blocking = getattr(result, '_asyncio_future_blocking', None) if blocking is not None: # Yielded Future must come from Future.__iter__(). - if not self._check_future(result): + if futures._get_loop(result) is not self._loop: new_exc = RuntimeError( f'Task {self!r} got Future ' f'{result!r} attached to a different loop') @@ -852,7 +848,8 @@ def shield(arg): The statement - res = await shield(something()) + task = asyncio.create_task(something()) + res = await shield(task) is exactly equivalent to the statement @@ -868,10 +865,16 @@ def shield(arg): If you want to completely ignore cancellation (not recommended) you can combine shield() with a try/except clause, as follows: + task = asyncio.create_task(something()) try: - res = await shield(something()) + res = await shield(task) except CancelledError: res = None + + Save a reference to tasks passed to this function, to avoid + a task disappearing mid-execution. The event loop only keeps + weak references to tasks. A task that isn't referenced elsewhere + may get garbage collected at any time, even before it's done. """ inner = _ensure_future(arg) if inner.done(): diff --git a/Lib/asyncio/timeouts.py b/Lib/asyncio/timeouts.py index a89205348ff24c..94d25535fbc059 100644 --- a/Lib/asyncio/timeouts.py +++ b/Lib/asyncio/timeouts.py @@ -52,10 +52,10 @@ def reschedule(self, when: Optional[float]) -> None: self._timeout_handler = None else: loop = events.get_running_loop() - self._timeout_handler = loop.call_at( - when, - self._on_timeout, - ) + if when <= loop.time(): + self._timeout_handler = loop.call_soon(self._on_timeout) + else: + self._timeout_handler = loop.call_at(when, self._on_timeout) def expired(self) -> bool: """Is timeout expired during execution?""" diff --git a/Lib/base64.py b/Lib/base64.py index 7e9c2a2ca477ff..30796a6fd6d05a 100755 --- a/Lib/base64.py +++ b/Lib/base64.py @@ -567,11 +567,10 @@ def decodebytes(s): def main(): """Small main program""" import sys, getopt - usage = """usage: %s [-h|-d|-e|-u|-t] [file|-] + usage = f"""usage: {sys.argv[0]} [-h|-d|-e|-u|-t] [file|-] -h: print this help message and exit -d, -u: decode - -e: encode (default) - -t: encode and decode string 'Aladdin:open sesame'"""%sys.argv[0] + -e: encode (default)""" try: opts, args = getopt.getopt(sys.argv[1:], 'hdeut') except getopt.error as msg: @@ -584,7 +583,6 @@ def main(): if o == '-e': func = encode if o == '-d': func = decode if o == '-u': func = decode - if o == '-t': test(); return if o == '-h': print(usage); return if args and args[0] != '-': with open(args[0], 'rb') as f: @@ -593,15 +591,5 @@ def main(): func(sys.stdin.buffer, sys.stdout.buffer) -def test(): - s0 = b"Aladdin:open sesame" - print(repr(s0)) - s1 = encodebytes(s0) - print(repr(s1)) - s2 = decodebytes(s1) - print(repr(s2)) - assert s0 == s2 - - if __name__ == '__main__': main() diff --git a/Lib/bdb.py b/Lib/bdb.py index 75d6113576372e..81fbb8514acb6f 100644 --- a/Lib/bdb.py +++ b/Lib/bdb.py @@ -805,15 +805,18 @@ def checkfuncname(b, frame): return True -# Determines if there is an effective (active) breakpoint at this -# line of code. Returns breakpoint number or 0 if none def effective(file, line, frame): - """Determine which breakpoint for this file:line is to be acted upon. + """Return (active breakpoint, delete temporary flag) or (None, None) as + breakpoint to act upon. - Called only if we know there is a breakpoint at this location. Return - the breakpoint that was triggered and a boolean that indicates if it is - ok to delete a temporary breakpoint. Return (None, None) if there is no - matching breakpoint. + The "active breakpoint" is the first entry in bplist[line, file] (which + must exist) that is enabled, for which checkfuncname is True, and that + has neither a False condition nor a positive ignore count. The flag, + meaning that a temporary breakpoint should be deleted, is False only + when the condiion cannot be evaluated (in which case, ignore count is + ignored). + + If no such entry exists, then (None, None) is returned. """ possibles = Breakpoint.bplist[file, line] for b in possibles: diff --git a/Lib/codecs.py b/Lib/codecs.py index e6ad6e3a052364..5a1e7ec804009c 100644 --- a/Lib/codecs.py +++ b/Lib/codecs.py @@ -1114,13 +1114,3 @@ def make_encoding_map(decoding_map): _false = 0 if _false: import encodings - -### Tests - -if __name__ == '__main__': - - # Make stdout translate Latin-1 output into UTF-8 output - sys.stdout = EncodedFile(sys.stdout, 'latin-1', 'utf-8') - - # Have stdin translate Latin-1 input into UTF-8 input - sys.stdin = EncodedFile(sys.stdin, 'utf-8', 'latin-1') diff --git a/Lib/codeop.py b/Lib/codeop.py index 45a378baba4337..2213b69f231f92 100644 --- a/Lib/codeop.py +++ b/Lib/codeop.py @@ -56,22 +56,22 @@ def _maybe_compile(compiler, source, filename, symbol): if symbol != "eval": source = "pass" # Replace it with a 'pass' statement - try: - return compiler(source, filename, symbol) - except SyntaxError: # Let other compile() errors propagate. - pass - - # Catch syntax warnings after the first compile - # to emit warnings (SyntaxWarning, DeprecationWarning) at most once. + # Disable compiler warnings when checking for incomplete input. with warnings.catch_warnings(): - warnings.simplefilter("error") - + warnings.simplefilter("ignore", (SyntaxWarning, DeprecationWarning)) try: - compiler(source + "\n", filename, symbol) - except SyntaxError as e: - if "incomplete input" in str(e): + compiler(source, filename, symbol) + except SyntaxError: # Let other compile() errors propagate. + try: + compiler(source + "\n", filename, symbol) return None - raise + except SyntaxError as e: + if "incomplete input" in str(e): + return None + # fallthrough + + return compiler(source, filename, symbol) + def _is_syntax_error(err1, err2): rep1 = repr(err1) diff --git a/Lib/concurrent/futures/_base.py b/Lib/concurrent/futures/_base.py index d7e7e41967cc21..6742a07753c921 100644 --- a/Lib/concurrent/futures/_base.py +++ b/Lib/concurrent/futures/_base.py @@ -310,6 +310,18 @@ def wait(fs, timeout=None, return_when=ALL_COMPLETED): done.update(waiter.finished_futures) return DoneAndNotDoneFutures(done, fs - done) + +def _result_or_cancel(fut, timeout=None): + try: + try: + return fut.result(timeout) + finally: + fut.cancel() + finally: + # Break a reference cycle with the exception in self._exception + del fut + + class Future(object): """Represents the result of an asynchronous computation.""" @@ -604,9 +616,9 @@ def result_iterator(): while fs: # Careful not to keep a reference to the popped future if timeout is None: - yield fs.pop().result() + yield _result_or_cancel(fs.pop()) else: - yield fs.pop().result(end_time - time.monotonic()) + yield _result_or_cancel(fs.pop(), end_time - time.monotonic()) finally: for future in fs: future.cancel() diff --git a/Lib/configparser.py b/Lib/configparser.py index de9ee537ac1884..f98e6fb01f97cc 100644 --- a/Lib/configparser.py +++ b/Lib/configparser.py @@ -148,14 +148,14 @@ import sys import warnings -__all__ = ["NoSectionError", "DuplicateOptionError", "DuplicateSectionError", +__all__ = ("NoSectionError", "DuplicateOptionError", "DuplicateSectionError", "NoOptionError", "InterpolationError", "InterpolationDepthError", "InterpolationMissingOptionError", "InterpolationSyntaxError", "ParsingError", "MissingSectionHeaderError", - "ConfigParser", "SafeConfigParser", "RawConfigParser", + "ConfigParser", "RawConfigParser", "Interpolation", "BasicInterpolation", "ExtendedInterpolation", "LegacyInterpolation", "SectionProxy", "ConverterMapping", - "DEFAULTSECT", "MAX_INTERPOLATION_DEPTH"] + "DEFAULTSECT", "MAX_INTERPOLATION_DEPTH") _default_dict = dict DEFAULTSECT = "DEFAULT" @@ -297,41 +297,12 @@ def __init__(self, option, section, rawval): class ParsingError(Error): """Raised when a configuration file does not follow legal syntax.""" - def __init__(self, source=None, filename=None): - # Exactly one of `source'/`filename' arguments has to be given. - # `filename' kept for compatibility. - if filename and source: - raise ValueError("Cannot specify both `filename' and `source'. " - "Use `source'.") - elif not filename and not source: - raise ValueError("Required argument `source' not given.") - elif filename: - source = filename - Error.__init__(self, 'Source contains parsing errors: %r' % source) + def __init__(self, source): + super().__init__(f'Source contains parsing errors: {source!r}') self.source = source self.errors = [] self.args = (source, ) - @property - def filename(self): - """Deprecated, use `source'.""" - warnings.warn( - "The 'filename' attribute will be removed in Python 3.12. " - "Use 'source' instead.", - DeprecationWarning, stacklevel=2 - ) - return self.source - - @filename.setter - def filename(self, value): - """Deprecated, user `source'.""" - warnings.warn( - "The 'filename' attribute will be removed in Python 3.12. " - "Use 'source' instead.", - DeprecationWarning, stacklevel=2 - ) - self.source = value - def append(self, lineno, line): self.errors.append((lineno, line)) self.message += '\n\t[line %2d]: %s' % (lineno, line) @@ -768,15 +739,6 @@ def read_dict(self, dictionary, source=''): elements_added.add((section, key)) self.set(section, key, value) - def readfp(self, fp, filename=None): - """Deprecated, use read_file instead.""" - warnings.warn( - "This method will be removed in Python 3.12. " - "Use 'parser.read_file()' instead.", - DeprecationWarning, stacklevel=2 - ) - self.read_file(fp, source=filename) - def get(self, section, option, *, raw=False, vars=None, fallback=_UNSET): """Get an option value for a given section. @@ -1239,19 +1201,6 @@ def _read_defaults(self, defaults): self._interpolation = hold_interpolation -class SafeConfigParser(ConfigParser): - """ConfigParser alias for backwards compatibility purposes.""" - - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - warnings.warn( - "The SafeConfigParser class has been renamed to ConfigParser " - "in Python 3.2. This alias will be removed in Python 3.12." - " Use ConfigParser directly instead.", - DeprecationWarning, stacklevel=2 - ) - - class SectionProxy(MutableMapping): """A proxy for a single section from a parser.""" diff --git a/Lib/copy.py b/Lib/copy.py index 69bac980be2054..1b276afe08121e 100644 --- a/Lib/copy.py +++ b/Lib/copy.py @@ -258,7 +258,7 @@ def _keep_alive(x, memo): def _reconstruct(x, memo, func, args, state=None, listiter=None, dictiter=None, - deepcopy=deepcopy): + *, deepcopy=deepcopy): deep = memo is not None if deep and args: args = (deepcopy(arg, memo) for arg in args) diff --git a/Lib/crypt.py b/Lib/crypt.py index 46c3de8474bf1c..de4a14a3884762 100644 --- a/Lib/crypt.py +++ b/Lib/crypt.py @@ -98,7 +98,7 @@ def _add_method(name, *args, rounds=None): result = crypt('', salt) except OSError as e: # Not all libc libraries support all encryption methods. - if e.errno == errno.EINVAL: + if e.errno in {errno.EINVAL, errno.EPERM, errno.ENOSYS}: return False raise if result and len(result) == method.total_size: diff --git a/Lib/csv.py b/Lib/csv.py index bfc850ee96dab6..0de5656a4eed7b 100644 --- a/Lib/csv.py +++ b/Lib/csv.py @@ -81,6 +81,8 @@ class unix_dialect(Dialect): class DictReader: def __init__(self, f, fieldnames=None, restkey=None, restval=None, dialect="excel", *args, **kwds): + if fieldnames is not None and iter(fieldnames) is fieldnames: + fieldnames = list(fieldnames) self._fieldnames = fieldnames # list of keys for the dict self.restkey = restkey # key to catch long rows self.restval = restval # default value for short rows @@ -133,6 +135,8 @@ def __next__(self): class DictWriter: def __init__(self, f, fieldnames, restval="", extrasaction="raise", dialect="excel", *args, **kwds): + if fieldnames is not None and iter(fieldnames) is fieldnames: + fieldnames = list(fieldnames) self.fieldnames = fieldnames # list of keys for the dict self.restval = restval # for writing short dicts if extrasaction.lower() not in ("raise", "ignore"): diff --git a/Lib/ctypes/__init__.py b/Lib/ctypes/__init__.py index 26135ad96296ac..b94b337a3157b7 100644 --- a/Lib/ctypes/__init__.py +++ b/Lib/ctypes/__init__.py @@ -11,6 +11,7 @@ from _ctypes import __version__ as _ctypes_version from _ctypes import RTLD_LOCAL, RTLD_GLOBAL from _ctypes import ArgumentError +from _ctypes import SIZEOF_TIME_T from struct import calcsize as _calcsize @@ -563,4 +564,11 @@ def DllCanUnloadNow(): elif sizeof(kind) == 8: c_uint64 = kind del(kind) +if SIZEOF_TIME_T == 8: + c_time_t = c_int64 +elif SIZEOF_TIME_T == 4: + c_time_t = c_int32 +else: + raise SystemError(f"Unexpected sizeof(time_t): {SIZEOF_TIME_T=}") + _reset_cache() diff --git a/Lib/ctypes/test/__main__.py b/Lib/ctypes/test/__main__.py deleted file mode 100644 index 362a9ec8cff6c0..00000000000000 --- a/Lib/ctypes/test/__main__.py +++ /dev/null @@ -1,4 +0,0 @@ -from ctypes.test import load_tests -import unittest - -unittest.main() diff --git a/Lib/dataclasses.py b/Lib/dataclasses.py index 4645ebfa71e71c..a567a33d646f44 100644 --- a/Lib/dataclasses.py +++ b/Lib/dataclasses.py @@ -230,7 +230,7 @@ def __init__(self, type): self.type = type def __repr__(self): - if isinstance(self.type, type) and not isinstance(self.type, GenericAlias): + if isinstance(self.type, type): type_name = self.type.__name__ else: # typing objects, e.g. List[int] @@ -1156,11 +1156,16 @@ def _add_slots(cls, is_frozen, weakref_slot): itertools.chain.from_iterable(map(_get_slots, cls.__mro__[1:-1])) ) # The slots for our class. Remove slots from our base classes. Add - # '__weakref__' if weakref_slot was given. + # '__weakref__' if weakref_slot was given, unless it is already present. cls_dict["__slots__"] = tuple( - itertools.chain( - itertools.filterfalse(inherited_slots.__contains__, field_names), - ("__weakref__",) if weakref_slot else ()) + itertools.filterfalse( + inherited_slots.__contains__, + itertools.chain( + # gh-93521: '__weakref__' also needs to be filtered out if + # already present in inherited_slots + field_names, ('__weakref__',) if weakref_slot else () + ) + ), ) for field_name in field_names: @@ -1188,19 +1193,18 @@ def _add_slots(cls, is_frozen, weakref_slot): def dataclass(cls=None, /, *, init=True, repr=True, eq=True, order=False, unsafe_hash=False, frozen=False, match_args=True, kw_only=False, slots=False, weakref_slot=False): - """Returns the same class as was passed in, with dunder methods - added based on the fields defined in the class. + """Add dunder methods based on the fields defined in the class. Examines PEP 526 __annotations__ to determine fields. - If init is true, an __init__() method is added to the class. If - repr is true, a __repr__() method is added. If order is true, rich + If init is true, an __init__() method is added to the class. If repr + is true, a __repr__() method is added. If order is true, rich comparison dunder methods are added. If unsafe_hash is true, a - __hash__() method function is added. If frozen is true, fields may - not be assigned to after instance creation. If match_args is true, - the __match_args__ tuple is added. If kw_only is true, then by - default all fields are keyword-only. If slots is true, an - __slots__ attribute is added. + __hash__() method is added. If frozen is true, fields may not be + assigned to after instance creation. If match_args is true, the + __match_args__ tuple is added. If kw_only is true, then by default + all fields are keyword-only. If slots is true, a new class with a + __slots__ attribute is returned. """ def wrap(cls): @@ -1243,7 +1247,7 @@ def _is_dataclass_instance(obj): def is_dataclass(obj): """Returns True if obj is a dataclass or an instance of a dataclass.""" - cls = obj if isinstance(obj, type) and not isinstance(obj, GenericAlias) else type(obj) + cls = obj if isinstance(obj, type) else type(obj) return hasattr(cls, _FIELDS) @@ -1251,7 +1255,7 @@ def asdict(obj, *, dict_factory=dict): """Return the fields of a dataclass instance as a new dictionary mapping field names to field values. - Example usage: + Example usage:: @dataclass class C: @@ -1322,8 +1326,8 @@ class C: x: int y: int - c = C(1, 2) - assert astuple(c) == (1, 2) + c = C(1, 2) + assert astuple(c) == (1, 2) If given, 'tuple_factory' will be used instead of built-in tuple. The function applies recursively to field values that are @@ -1372,11 +1376,11 @@ def make_dataclass(cls_name, fields, *, bases=(), namespace=None, init=True, The dataclass name will be 'cls_name'. 'fields' is an iterable of either (name), (name, type) or (name, type, Field) objects. If type is omitted, use the string 'typing.Any'. Field objects are created by - the equivalent of calling 'field(name, type [, Field-info])'. + the equivalent of calling 'field(name, type [, Field-info])'.:: C = make_dataclass('C', ['x', ('y', int), ('z', int, field(init=False))], bases=(Base,)) - is equivalent to: + is equivalent to:: @dataclass class C(Base): @@ -1440,7 +1444,7 @@ def exec_body_callback(ns): def replace(obj, /, **changes): """Return a new object replacing specified fields with new values. - This is especially useful for frozen classes. Example usage: + This is especially useful for frozen classes. Example usage:: @dataclass(frozen=True) class C: @@ -1450,7 +1454,7 @@ class C: c = C(1, 2) c1 = replace(c, x=3) assert c1.x == 3 and c1.y == 2 - """ + """ # We're going to mutate 'changes', but that's okay because it's a # new dict, even if called with 'replace(obj, **my_changes)'. diff --git a/Lib/datetime.py b/Lib/datetime.py index 00ded32cc3e3cb..007114ae622031 100644 --- a/Lib/datetime.py +++ b/Lib/datetime.py @@ -179,7 +179,7 @@ def _format_time(hh, mm, ss, us, timespec='auto'): else: return fmt.format(hh, mm, ss, us) -def _format_offset(off): +def _format_offset(off, sep=':'): s = '' if off is not None: if off.days < 0: @@ -189,9 +189,9 @@ def _format_offset(off): sign = "+" hh, mm = divmod(off, timedelta(hours=1)) mm, ss = divmod(mm, timedelta(minutes=1)) - s += "%s%02d:%02d" % (sign, hh, mm) + s += "%s%02d%s%02d" % (sign, hh, sep, mm) if ss or ss.microseconds: - s += ":%02d" % ss.seconds + s += "%s%02d" % (sep, ss.seconds) if ss.microseconds: s += '.%06d' % ss.microseconds @@ -202,9 +202,10 @@ def _wrap_strftime(object, format, timetuple): # Don't call utcoffset() or tzname() unless actually needed. freplace = None # the string to use for %f zreplace = None # the string to use for %z + colonzreplace = None # the string to use for %:z Zreplace = None # the string to use for %Z - # Scan format for %z and %Z escapes, replacing as needed. + # Scan format for %z, %:z and %Z escapes, replacing as needed. newformat = [] push = newformat.append i, n = 0, len(format) @@ -222,26 +223,28 @@ def _wrap_strftime(object, format, timetuple): newformat.append(freplace) elif ch == 'z': if zreplace is None: - zreplace = "" if hasattr(object, "utcoffset"): - offset = object.utcoffset() - if offset is not None: - sign = '+' - if offset.days < 0: - offset = -offset - sign = '-' - h, rest = divmod(offset, timedelta(hours=1)) - m, rest = divmod(rest, timedelta(minutes=1)) - s = rest.seconds - u = offset.microseconds - if u: - zreplace = '%c%02d%02d%02d.%06d' % (sign, h, m, s, u) - elif s: - zreplace = '%c%02d%02d%02d' % (sign, h, m, s) - else: - zreplace = '%c%02d%02d' % (sign, h, m) + zreplace = _format_offset(object.utcoffset(), sep="") + else: + zreplace = "" assert '%' not in zreplace newformat.append(zreplace) + elif ch == ':': + if i < n: + ch2 = format[i] + i += 1 + if ch2 == 'z': + if colonzreplace is None: + if hasattr(object, "utcoffset"): + colonzreplace = _format_offset(object.utcoffset(), sep=":") + else: + colonzreplace = "" + assert '%' not in colonzreplace + newformat.append(colonzreplace) + else: + push('%') + push(ch) + push(ch2) elif ch == 'Z': if Zreplace is None: Zreplace = "" diff --git a/Lib/dis.py b/Lib/dis.py index 046013120b000d..a045d18241b465 100644 --- a/Lib/dis.py +++ b/Lib/dis.py @@ -37,6 +37,8 @@ LOAD_GLOBAL = opmap['LOAD_GLOBAL'] BINARY_OP = opmap['BINARY_OP'] JUMP_BACKWARD = opmap['JUMP_BACKWARD'] +FOR_ITER = opmap['FOR_ITER'] +LOAD_ATTR = opmap['LOAD_ATTR'] CACHE = opmap["CACHE"] @@ -392,7 +394,7 @@ def _get_name_info(name_index, get_name, **extrainfo): else: return UNKNOWN, '' -def parse_varint(iterator): +def _parse_varint(iterator): b = next(iterator) val = b & 63 while b&64: @@ -401,16 +403,16 @@ def parse_varint(iterator): val |= b&63 return val -def parse_exception_table(code): +def _parse_exception_table(code): iterator = iter(code.co_exceptiontable) entries = [] try: while True: - start = parse_varint(iterator)*2 - length = parse_varint(iterator)*2 + start = _parse_varint(iterator)*2 + length = _parse_varint(iterator)*2 end = start + length - target = parse_varint(iterator)*2 - dl = parse_varint(iterator) + target = _parse_varint(iterator)*2 + dl = _parse_varint(iterator) depth = dl >> 1 lasti = bool(dl&1) entries.append(_ExceptionTableEntry(start, end, target, depth, lasti)) @@ -463,6 +465,10 @@ def _get_instructions_bytes(code, varname_from_oparg=None, argval, argrepr = _get_name_info(arg//2, get_name) if (arg & 1) and argrepr: argrepr = "NULL + " + argrepr + elif deop == LOAD_ATTR: + argval, argrepr = _get_name_info(arg//2, get_name) + if (arg & 1) and argrepr: + argrepr = "NULL|self + " + argrepr else: argval, argrepr = _get_name_info(arg, get_name) elif deop in hasjabs: @@ -471,6 +477,8 @@ def _get_instructions_bytes(code, varname_from_oparg=None, elif deop in hasjrel: signed_arg = -arg if _is_backward_jump(deop) else arg argval = offset + 2 + signed_arg*2 + if deop == FOR_ITER: + argval += 2 argrepr = "to " + repr(argval) elif deop in haslocal or deop in hasfree: argval, argrepr = _get_name_info(arg, varname_from_oparg) @@ -492,22 +500,34 @@ def _get_instructions_bytes(code, varname_from_oparg=None, yield Instruction(_all_opname[op], op, arg, argval, argrepr, offset, starts_line, is_jump_target, positions) - if show_caches and _inline_cache_entries[deop]: - for name, caches in _cache_format[opname[deop]].items(): - data = code[offset + 2: offset + 2 + caches * 2] - argrepr = f"{name}: {int.from_bytes(data, sys.byteorder)}" - for _ in range(caches): - offset += 2 - yield Instruction( - "CACHE", 0, 0, None, argrepr, offset, None, False, None - ) - # Only show the actual value for the first cache entry: + caches = _inline_cache_entries[deop] + if not caches: + continue + if not show_caches: + # We still need to advance the co_positions iterator: + for _ in range(caches): + next(co_positions, ()) + continue + for name, size in _cache_format[opname[deop]].items(): + for i in range(size): + offset += 2 + # Only show the fancy argrepr for a CACHE instruction when it's + # the first entry for a particular cache value and the + # instruction using it is actually quickened: + if i == 0 and op != deop: + data = code[offset: offset + 2 * size] + argrepr = f"{name}: {int.from_bytes(data, sys.byteorder)}" + else: argrepr = "" + yield Instruction( + "CACHE", CACHE, 0, None, argrepr, offset, None, False, + Positions(*next(co_positions, ())) + ) def disassemble(co, lasti=-1, *, file=None, show_caches=False, adaptive=False): """Disassemble a code object.""" linestarts = dict(findlinestarts(co)) - exception_entries = parse_exception_table(co) + exception_entries = _parse_exception_table(co) _disassemble_bytes(_get_code_array(co, adaptive), lasti, co._varname_from_oparg, co.co_names, co.co_consts, linestarts, file=file, @@ -590,9 +610,9 @@ def _unpack_opargs(code): op = code[i] deop = _deoptop(op) caches = _inline_cache_entries[deop] - if deop >= HAVE_ARGUMENT: + if deop in hasarg: arg = code[i+1] | extended_arg - extended_arg = (arg << 8) if op == EXTENDED_ARG else 0 + extended_arg = (arg << 8) if deop == EXTENDED_ARG else 0 # The oparg is stored as a signed integer # If the value exceeds its upper limit, it will overflow and wrap # to a negative integer @@ -612,11 +632,14 @@ def findlabels(code): labels = [] for offset, op, arg in _unpack_opargs(code): if arg is not None: - if op in hasjrel: - if _is_backward_jump(op): + deop = _deoptop(op) + if deop in hasjrel: + if _is_backward_jump(deop): arg = -arg label = offset + 2 + arg*2 - elif op in hasjabs: + if deop == FOR_ITER: + label += 2 + elif deop in hasjabs: label = arg*2 else: continue @@ -694,7 +717,7 @@ def __init__(self, x, *, first_line=None, current_offset=None, show_caches=False self._linestarts = dict(findlinestarts(co)) self._original_object = x self.current_offset = current_offset - self.exception_entries = parse_exception_table(co) + self.exception_entries = _parse_exception_table(co) self.show_caches = show_caches self.adaptive = adaptive diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py index 01d5331a63069b..a22a5d094d7678 100644 --- a/Lib/distutils/command/install.py +++ b/Lib/distutils/command/install.py @@ -323,7 +323,7 @@ def finalize_options(self): self.config_vars['userbase'] = self.install_userbase self.config_vars['usersite'] = self.install_usersite - if sysconfig.is_python_build(True): + if sysconfig.is_python_build(): self.config_vars['srcdir'] = sysconfig.get_config_var('srcdir') self.expand_basedirs() diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py index 3414a761e76b99..8eada987c13819 100644 --- a/Lib/distutils/sysconfig.py +++ b/Lib/distutils/sysconfig.py @@ -9,7 +9,6 @@ Email: """ -import _imp import os import re import sys @@ -30,8 +29,6 @@ parse_config_h as sysconfig_parse_config_h, _init_non_posix, - _is_python_source_dir, - _sys_home, _variable_rx, _findvar1_rx, @@ -52,9 +49,6 @@ # which might not be true in the time of import. _config_vars = get_config_vars() -if os.name == "nt": - from sysconfig import _fix_pcbuild - warnings.warn( 'The distutils.sysconfig module is deprecated, use sysconfig instead', DeprecationWarning, @@ -287,7 +281,7 @@ def get_python_inc(plat_specific=0, prefix=None): # must use "srcdir" from the makefile to find the "Include" # directory. if plat_specific: - return _sys_home or project_base + return project_base else: incdir = os.path.join(get_config_var('srcdir'), 'Include') return os.path.normpath(incdir) diff --git a/Lib/distutils/tests/test_bdist.py b/Lib/distutils/tests/test_bdist.py index 241fc9ad75f34b..5676f7f34d4292 100644 --- a/Lib/distutils/tests/test_bdist.py +++ b/Lib/distutils/tests/test_bdist.py @@ -1,5 +1,4 @@ """Tests for distutils.command.bdist.""" -import os import unittest from test.support import run_unittest diff --git a/Lib/distutils/tests/test_dir_util.py b/Lib/distutils/tests/test_dir_util.py index f3ba0ee33b4bc1..ebd89f320dca89 100644 --- a/Lib/distutils/tests/test_dir_util.py +++ b/Lib/distutils/tests/test_dir_util.py @@ -11,7 +11,7 @@ from distutils import log from distutils.tests import support -from test.support import run_unittest, is_emscripten +from test.support import run_unittest, is_emscripten, is_wasi class DirUtilTestCase(support.TempdirManager, unittest.TestCase): @@ -55,7 +55,10 @@ def test_mkpath_remove_tree_verbosity(self): @unittest.skipIf(sys.platform.startswith('win'), "This test is only appropriate for POSIX-like systems.") - @unittest.skipIf(is_emscripten, "Emscripten's umask is a stub.") + @unittest.skipIf( + is_emscripten or is_wasi, + "Emscripten's/WASI's umask is a stub." + ) def test_mkpath_with_custom_mode(self): # Get and set the current umask value for testing mode bits. umask = os.umask(0o002) diff --git a/Lib/distutils/tests/test_sysconfig.py b/Lib/distutils/tests/test_sysconfig.py index e7d435f412db79..ae0eca897bc7bd 100644 --- a/Lib/distutils/tests/test_sysconfig.py +++ b/Lib/distutils/tests/test_sysconfig.py @@ -10,9 +10,8 @@ from distutils import sysconfig from distutils.ccompiler import get_default_compiler from distutils.tests import support -from test.support import run_unittest, swap_item, requires_subprocess +from test.support import run_unittest, swap_item, requires_subprocess, is_wasi from test.support.os_helper import TESTFN -from test.support.warnings_helper import check_warnings class SysconfigTestCase(support.EnvironGuard, unittest.TestCase): @@ -32,6 +31,7 @@ def cleanup_testfn(self): elif os.path.isdir(TESTFN): shutil.rmtree(TESTFN) + @unittest.skipIf(is_wasi, "Incompatible with WASI mapdir and OOT builds") def test_get_config_h_filename(self): config_h = sysconfig.get_config_h_filename() self.assertTrue(os.path.isfile(config_h), config_h) @@ -48,6 +48,7 @@ def test_get_config_vars(self): self.assertIsInstance(cvars, dict) self.assertTrue(cvars) + @unittest.skipIf(is_wasi, "Incompatible with WASI mapdir and OOT builds") def test_srcdir(self): # See Issues #15322, #15364. srcdir = sysconfig.get_config_var('srcdir') @@ -60,7 +61,11 @@ def test_srcdir(self): # should be a full source checkout. Python_h = os.path.join(srcdir, 'Include', 'Python.h') self.assertTrue(os.path.exists(Python_h), Python_h) - self.assertTrue(sysconfig._is_python_source_dir(srcdir)) + # /PC/pyconfig.h always exists even if unused on POSIX. + pyconfig_h = os.path.join(srcdir, 'PC', 'pyconfig.h') + self.assertTrue(os.path.exists(pyconfig_h), pyconfig_h) + pyconfig_h_in = os.path.join(srcdir, 'pyconfig.h.in') + self.assertTrue(os.path.exists(pyconfig_h_in), pyconfig_h_in) elif os.name == 'posix': self.assertEqual( os.path.dirname(sysconfig.get_makefile_filename()), diff --git a/Lib/email/_parseaddr.py b/Lib/email/_parseaddr.py index ba5ad5a36d06b7..febe411355d6be 100644 --- a/Lib/email/_parseaddr.py +++ b/Lib/email/_parseaddr.py @@ -95,6 +95,8 @@ def _parsedate_tz(data): return None data = data[:5] [dd, mm, yy, tm, tz] = data + if not (dd and mm and yy): + return None mm = mm.lower() if mm not in _monthnames: dd, mm = mm, dd.lower() @@ -110,6 +112,8 @@ def _parsedate_tz(data): yy, tm = tm, yy if yy[-1] == ',': yy = yy[:-1] + if not yy: + return None if not yy[0].isdigit(): yy, tz = tz, yy if tm[-1] == ',': diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py index a198a86e1f9af9..33c91801b0aa85 100644 --- a/Lib/ensurepip/__init__.py +++ b/Lib/ensurepip/__init__.py @@ -10,8 +10,8 @@ __all__ = ["version", "bootstrap"] _PACKAGE_NAMES = ('setuptools', 'pip') -_SETUPTOOLS_VERSION = "58.1.0" -_PIP_VERSION = "22.0.4" +_SETUPTOOLS_VERSION = "63.2.0" +_PIP_VERSION = "22.2.2" _PROJECTS = [ ("setuptools", _SETUPTOOLS_VERSION, "py3"), ("pip", _PIP_VERSION, "py3"), @@ -89,8 +89,18 @@ def _run_pip(args, additional_paths=None): sys.argv[1:] = {args} runpy.run_module("pip", run_name="__main__", alter_sys=True) """ - return subprocess.run([sys.executable, '-W', 'ignore::DeprecationWarning', - "-c", code], check=True).returncode + + cmd = [ + sys.executable, + '-W', + 'ignore::DeprecationWarning', + '-c', + code, + ] + if sys.flags.isolated: + # run code in isolated mode if currently running isolated + cmd.insert(1, '-I') + return subprocess.run(cmd, check=True).returncode def version(): diff --git a/Lib/ensurepip/_bundled/pip-22.0.4-py3-none-any.whl b/Lib/ensurepip/_bundled/pip-22.0.4-py3-none-any.whl deleted file mode 100644 index 7ba048e245227d3325413220e1eb8da42c66dead..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2123599 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ⅅ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

{x4B-}30)5p7-r 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
?MV?vB9MQ^b3C|gd;X^ObU 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

%d(Q={cE~S!gzRzeM_S<{}Vt zu+8_RV@`IInfX*EcI{!^f08JML@)=<;td5TXU?BOXHd=WOK^31&!?w7Y#)|z7nBeW zuk#7{M#zI_oR}tNHM9NK%hByMTbs}(E9`Q!UWfJ%J5|Qmueec{3{f}ZUVEN_cVD7b zy8k=zubRaub%BO}ScCh20;H>@i=(^K{{_fo4TIPfZfw6pEq!Z4;e6~PO&gCnIO)I{ zHgu}oX{$z2YUdszQ>mtJ1-FZrtR&EobnX;nR1d#=d@p<HD*-lml4sm8{uNKh1gy zzYQ}yigfpG%wJe_ZL@zfVZ=_vK1xcgz0D0kp#8#_h3fGO=zeUQhFBWlw?Q@C zWWIsZqO@y$uZSYfm=lrUw)5|B*j(F;Co(eegSwF|`v;*VFEUV7Sr`>iH}m$pj^g3O zX=^9X>)=#n+NN(zoA1UPZ<_P!PYDjQ!Zjjs|ie> zk^A)pyc79Yr%9F%ox2EvnwclvSr_flVR+eXCuiyAiMm-48V+43yuaq)_yTbXUQEg3ii3&O)nQEebURtdmku_lP2E5 zdDLhHcwzSg-;X8eR%W~0;{-~6_Q8==%q(gJnNp(jPchrDA$YeqJ_(vxh@%anoV^eX z0x^f17EwHR#Y(qJQTZEg?`~)euOgqTFVp)uQ=$6PMp*V`*-?YSM6i9uBx;0yMIS14 zy=;3567{p9SYq6LJ(IX`u1&ioN5oa(j)G(4o_JC*VLo7t-=v%nZk<=gqzOZ?ekc&? zHH`XXE=zFV2XF<0jH<~Jr`JqrO99&0 z(VhHI&|2pNs(vcUpDr?jzj1I6zI3)Odp;^#@(1xG9cV(YkhIa+y1hnceai`1=z*=862OP zg&^LmgxoEV;@KaHm5EeN!r__$D?pOD~GqHgUhJ@CVmg>sxodjF;z#J_>Q--r}{+P2$3*n#_c z8`SE=8I+_$lWD9mOY7Rfy-Hx^^9aor5-BLmWr8(vK$bJUj=u--Qh!OaD>TVGc(!#0 z_u|h&NSyUEz&FG%uLv^qhQ`&!;Zh%t4X6v7g3Fk@71wJW;CV~Kf{Lp2iDs81|8|gO zx8dEYKV~xQ?1up%@*s^=YH%=FdkdjqR_wF;fMiyQ0t0@c&7L{dB z7*dHl(6eQZ94h&|toi51=E{jqo?CNn+npJn#xsJ!-2!-C71$VG&%Z?mW#Jz+F`p>z zBRXrqOD&^y??HIjs$r)}mxwJkt<@hrw>fd21UB~qHuK6J}UfIGVC~4PZHP+(><@T8?>oP46)scgKF7PU5gTOR=WsDHmXuKiZ%>RrbjWCs zNw4oeeX=JpM0vKx!O9QM)KU_g&tLvFkC*CU`- z-PFdp>YLE;uWzHD4&mCH%KSuCn(Q13Sksq(;^?=ojS}&wK}H_xG@D#{giW}=tZ#}E z#xi+V85UtWns}+7QqX!m;}27CC>j+w+f1(pk!mne?Mdp`EG5@B;Ww=wf%d3@*peJS%Qs3{TT z8fh`TMSl{o93AZIj6{ic(F&w`*Tae+O4A0#U{j>Pc!g4CC^xQOsrkC>g_;j3h&g1q z%qC1%j-o*V$6?*yoCyo}a*?G!{S&6aLT5WkKe=#>n;=UU5 zx0KA2_n)#q-kl*5KsK*MH7!Mb4?)`1p;o-(oMwFH1j<{>90AoQo8Lwq_>(hb zycNBM=J25e;uFgL_Lc0S_UNgcQ7o3QQC3HLhB}F9BbeEM4Qkap^7Jy5XoMNsd*;~R zHMq%$cHM?%DhsJt0ph6iP( z3IE7`B^;Ekx8lR4kKctvOc~0t7|`dGiG7m3{6S7Oc_^0C6PzbKQ%(s zJ>>>YU1Q-H+8R;w)AlM$^k!Lc2g2H{wnx6Eh)V>zDL=YfrT;#2H02E6Zh!&($aPPHSm}} zs)rq^c}Uy1KGrijs7Dzp5*FAW-xL1Z;`NftOWz0`4-dTwJxw7)%uZM7gXKN+LQO+y z$H;+6xRp=B4emJsa_8J3p@FMlPprYR-A8kQxAhC-tV_+URiFkz@q#ce{jrf7wi+(i zM1`DBReZdKaYOuZ3M<>Su^t&-vt3G&6Y<@zDcBUJ5Y-$~Mo_1<4zrzg+ zwww_;xC6Ql`f%ZzRBuZXjbEn;Q{a)ojbE>FK5orxsN}jlL8s^A+u^TH;}px*D0G%h zS6q%d$#8)y&%oKveO?od;{cNNODbAFX?$a5j4{e^$Ekb~50r z*8jWb$?(eM8&(INRy(B}wKyI6&S>eez=5_rcbHeW(uJ#I^1*{lln9F)dBzu(hXl;^ z)Q*!|^+XT99zv_m_PLl(uDa(N-}*`-s27Usft2%SdlYTSg*teOxpifqqu8^f50qDb zVAi@JF*5Od$Mlyc;f%nBM-jF%*FTeneovhHI8xoL%2)q+_JGNd~XR1^I@cUAY zdOu0nTlBrEh<|0LcV(vcD_;1FVPtHhRxxJ-_kT(?<~6$=_o}{?os==ZQ~T=f6Tm+p z4z9@UNc+$d+A>E_oEJHPf9%p~z>ehB6v33Dlit>bl_4x64K>A~bS@0Sj?swgH?k%+ zl^Zi1`(&7a0U5%=m0ZUdT9xUb?$I;a8lxw-DkQNg8>QFb8n%&yB5GzzQNC6xKP-xU zfKfeK+fOSs9WKws%B7Xc?|{j>q}@exi&D8V*Jy$3{?5^W=l%rOraV_|OjTXvFf$wx z?G;el!7sN_n8=|Ukm%1NxDY)7AkhgGF~RxdsJT5(*P#>2RZ;sJG1%XETI_q}g+*6q zYj7n?vumalKkkrTD5j31@LV;SkLvhXalf-hb)MTdJ8$?zJ4A;a75nM!>3XC#nSaUnP5OZOj_7(SlM)<#PzH!tqgu;2L@ z)1;yQq_YV9#hptSEAf59Zro!N%4z&T5g@X?WEAH)VbpOz7W-0*ptvVQVwt=_xDC{Fq>nkNU}c* z%2@3nI%!N$pH+D%55JZFDd39{Ve@yu@U#1I_V+r&WrblZ+NxQ@hsNSE4ic|Fg2kb_ zZ3`Kal&aEg3&0Nmu5*eJHdD*(lS2ehkoJ?mXgq@w} zdQ9pS+1jk*IwP$%W|i3<{A$j!wmE2elfm!YDc&RVXJX7pi%5~~n0vTPXPKXU(zRZb zZ_g%tIeoD1h8RGVatmWmoHEcbs8Q0`KdXEdM=A0hc;u zUkM>B_PIhT0f$@FPpp4DTYH7Hq+OYt?+1uwiC|I@1=Xro@Gd8COtD8={eusTtSKn| zuKmEi@k;AJQ?hn}?k2-|)S5ZG`NpSk~`zA9kB5q?+eDYX-ta zVC$s7=aA^NxP=1-{R{nNj>u>=iBftp!S5ehCWH?M_E`Q|Q=#)ChH_L30Qz}-`&+4& zMc_4|tfMrkKHctbS%cb!IU3@AlT>(A|3G29XW(tYmx8ZmH_~%tkiTzz99@L66iWp> z^EX!uRD4*xo)L9Jpqk;G$RlbNg2Y%VRULAR_@;Y5eoFTXf=spc$Hj5=>5mta-IE z`!8&$G|WX_QAY2P>Oo$l<@M+vb9;EuAV(*@iuzYEYjLOspT5!)S3Ur=(py_m`?tbYu+VH3}8s=dM zPR`E}4~Fx{N0j%We2#DD&hG8lu{xH9U31dBcm^r)RG_6vXmsj8Plh(6kQqND^RWKP z8GG+rT5%SOb(LcI*%C_A&}P!R$STWLl=AW^iwkPtJZ!M*Jlf}@ z9^=?ZkS2^PMgR{yPa->h-Glmp!pB$WY%?f#zT;6I=Fw3XH}y8v?>@k&zXKv}qws-X z;v%d-#*%mVnyZRAm36tN%a(+~)=<-gH)nj-G|^KKwwEnMijrrojeh&SgJDSYGO%B9KGrrM*QC@|g{KG#en2k$ z5GqsrlnD7~n_7W3HYw-b(rFHufCz;->1v{j$Z$vbM?O)e7mm~p?{I9e?{k?|vk&nv zQx9K*L`MwvA>>(!%5tU6&!g5|Sg>y~-dj@sW?g>G?tS`D*_PiMOj>ub*T{rsQx(o6 zGay0+`XE9X0GmPd(c8>;wJpNxkV=n2PFUPd8*ve2=@S58zA;9I@}QChBVbcET876j zl8DApv>20(+``8wbVc(8^iUu5kd2jLZRVqQw6eVG139_w$a7=x@`Ev;b)WU<%OU@o zX0^5ENvMYc!s3{9C%3iEY;V>2Im+4UO;+u<=lkh8#S#H$V1b@b zNEr!!-p@a#)p9k};c0<|QKJ^?c93v0J4)Ag;*~laPQ;K9oak2wS2PNleYzsq+s178 z_oMxJfmQNd0F3Jpb_y?ERmWyNtPf$m>kE2l_(342SzV^M-k2|$Uzt8_iPl!|P@)kly;kPLO}bVc7@mQ+vOJ?E`@ zoJXxJyj`2(k4#xq3PeQw@B+wooN& zAH|ly3%U8OUC0_q8!ZF0IjNJ8I7l!aw6Gn!o^#MR-rlobzv8Hi->dzS-v4aKyYu61 zdYdQyrSm8$>JPX4;$kb~bXz0Mcgq=qH3K3GWiq?&;%lZ& zf=IzN`gnDPZ#d_Qwuk1{O@qmTo@UG32~MI+pO5wgGbN&Q?@Cx|CX@i{J?gJgNVraf zF!I@LG5h4on~8eAEpeykUc3%H!mKD29aXnLc-z=_}jFA@48r21+ z(dM0KlkdrYz6a*{v?le1b=U}8=BahI&7Y{pd>kaA4VtoKaiiT=&qbP!eXr+}-VdHu zqdK*(P!4(Wwjq{R*eajb)x_eHK(I)v{Gwy+D^wymz0?==lTbJ5LtwWfH({l`!4~tU zD4#$GnnX9$YNZ7$E7qa!lgp8X#uL_mXAMajm%4$l5D@d||4-KNKgL4-Xc;)}fX6~E zYg$xEQe=}DiQJpM%?m;($f+ZKh18h0!AbA`F^^8M3d!2-ADgHQPon0jE0>J_vfxY(_8ivb}ZP_eG)V%NJ7nYH2cp4frWN4^AV?0t;(l1WQP@EFYji6BTH#OW;5+u&h zGQ*8fB5&>Rbq5$GNryxd?-X@d81x!xb?*ght`(lJC0f`8`ZiTMd}%=ng%}Z(!P)uTk8nTW z-6Bqd?E)Srb{j_VYgRn#=VE5wuhRO14!3j_!QA)Wn>5j7pZMZ-l zF(&t{_uj2lFe!81Rprz7=_X&CpqmU!MPoiH2Vj~C3;j_or{gH%)VytkT+dwfemiJ; zKQC5fzpZn%i=Xx5zrJqmXu+drSE%yTqn0hcX-%LggrNHUbD=L{a=by{*peo6Bq$wRC;Lwh!S}U#6FvK>v`bBX4M?@w(8)HPj_pt0XsMlfmyVSQ>u>LVmJby+b~r9@ z7e$8~a2x4PH9s{^*IoHqK$bQsOcFBgd_JkO|`XQ{d8Lt+jn5G?889&>tZk6{*XkhokptqYn$(tdX7c zapPydH{S9TY$QSpUT=)%OgBbe?T|J1nirj&`5Q~sf=Rs-ZLMxqLzipbG8JVfN>D9A zK8Sb!1>KDTV_7BoZxG5A{=wxKCOmi*!i5OVZwP)%)OYd(6DP}!T>ts8g@l@Y(OLk2 zD7y}g@UnMbMf>zylY6TqzuA@wZ1YS?TGfwaYV=m%G&YPEBvUuAVO^IVF(mU=sSKZH ztzvz!#v8LIZ}3@s-V|#~{H}ocz3c!@zUrI0$KY10NNRY0#K_>%z!SnIm5}A?=An{# zxI5NvYDV2!TPO9meyrENAV>wAJoERtjRQuC1Zk$b#v*DhKC34a(^V3=(Se^PP0QyE z>Z|c@Z0`aGzYkv#zARZPl~6h7aA)at5kb`zyk~Mfg;>5!&342;HovZXeMRQNd;Ea> z?;ySqZ^=dq2JtRb2ne$OWoXRR#@hA&j%8PA2K<}H`j(@_YU4(C1dpql?PfnWi$RJY z;EzC{p@O3`U}#)pfqPy(JEIifXm3iu(yGo|p$a-1%k*-z80=~(^*?F~5W<^vnmUio z7F*uiFLnD^(mn+ACt!=dNSq$6)f*J;Y=}+0dxgF-3J-LQq;d_|6 zt=OGI@XF=p2V}VH!)N#WaEk@4*=XzHUpi@Q$FcxyqkhTqHV5Ayp;mhpHSGJ-vezgE zm~`xBlnNdej1mJRGvdB^zKsoZj5wzMA6@SpBTCSA4~}i)j&0la9ox2T+qP}nw(Xfa zwym8vo8M-?clYb0`matU)k&SMKF>MlDLPv464GaDN@M`-!5?UGxejaNgs#|0fWH1_XU|8T5f1$>Yz(*uM1{X zA#^1A$u4yhjM&>a@-Y?b|LS-=b7_RE5|n;*Jk@yHTN`~~5j*lhHf7#Ml?nj?=Hgn! zb(Utad;kyyyY!+>dMK7HQH7)kds4aJ*Mq-89@9_pT&_lS(@Wl+K6J?glrO3HR}*ae zUm?$Z@Or)-K-7EVH83G(Yv6vLchmAN?3Vqm{izLOA)E{slj~eIJQq{OjOk+dqAemv z)D=mKfl7FmR2RshsNi@UX08}#@pss>1qw!R({nE7#vl5aa6&v)qt1_VTv3H8q#g(g zkZyt=Vgi}O9*UUt{>N-5baD~jOpN!u<)Yn9yZhl)2pT&CpV3smp2#94nU3TQwN-iW zdezmd=VjxMZRJd}>pq9;{O`7x2@(hSN}A*?ImPL6wE=xR1&zFAE7LWx?wDekl|ds8OxNfTW%;lETeKFb!(`1j3! z=@k~9ENJTd>-^|#r0%(6c#hqjrwfctT4Q7C=g&bE5|Khxu6N0`?BmYP{l`Y3NG`ye zVgx5QJbF-1z%$N%^}-*>^hG zKLBDg$j^35+B~nr2WA5}9oX?}3^+*4IQY?hmfQRJ4Ld>H-{~!Beyv+Ea!F^j5+qcj z3PY_E>MZYm7eM|rz}AmY1yF#Jx@oT+vU_fF`*V0JK#{Cxs@F&#k=}_qv$R7UMQ&or zYS}LFg{$pF9$xq-i~Nub_c;SNi$`*O|r75eCl|NZC<2ok75 zL4L*4aY^_)ETm!MsGTi{epz>|5Jh)IMm#Zkc7EnHH*P&K+7sm(E!)5o3@=-Y887)< z+I7!KxvFE#Fpa*aR zj}rW+=0c&h7Ov!^;Y+E_01o-a>lNNcq4wsv^IFgAXWz|xx$;R@;(&qRV0mMZEm^l! zw`ZTBnwhnoOo7^cOt^3F%~T`&fj+%`yZxdazLD1l#&h(eHShKQsn%=r^igvl<2N>- zETXV=JSX>w+~%F(gox1HY2_#I^gNv%I$pWwu6K2^nHjzgyV>`@;B_=|B+&I&Ou0%A z06_k~z^k*3xr?!bqrR1qv6Hc(lkI=p0@E7Sj#%S}-!-}n_2)npePD4{599U~k3g&( zK}tZ$2U*&6)WB2b>m*#A3GI;&n-7muJxqSTO;%fvDv`Oid6>TLonEGJaWn8-R(y7^ z8g*W}w(*+Q)o;!}#ae=&Z};M0(X+Hc4QRPHjZeOlm=cWZb5$eao{(@Awg=(1_2qNf97<4M}SY|*3aQ%J$mCxj_TNVY0whMvb&Ib$^J8~ zy9a&(4p?u-JAL`vcNHhQZd6Td^Vb-h*s^&kTc{+3@Jx4!c@>jUsz%!k^@ z(jC!7@hr6oJjjIlr&2uVV1BJ3^LCcuX7MywN=Pv<7bFBXJ;$xIW%`C0Ij5t9HxpS z{AdCdAxayx1-+);4x-I!H_I1b^h~{V700Jw*|lTP$CF+!yAs=FqDIy>Wcy)r=M1*< zmx}MfYNEkNeGncll1@xeM4iQVI1@^QK+C@wqN?Y2oj`l$2~Ed|Da&BQ#%<8x z8xN_unO^qkPoQ|DL1sFB(~sr>0qOyM*{Y*0GJ38ip!`!gqQfF!viJPsA=` zrvP(P5!PRTaU_Q6PP(u2RRTMQHm(>`EgDk{jRvr{ zloC_>=wJuHR$?4yB}Uq-I2iCT(_bj&3FM9zuA9Kco$4lFn{Xs_Pi)V>IK%9MLgCyi9O8-6cXCv5iE&D=1i zTrR<}ACPSyS4;2*_Es2a@K##-4y!~eA)FXNi^^T#FxzZArMT;i_&c2&(bH6JK|X#Y z!=ATV(sx`ek;O#`*F{VB9w|`;Ht!k-0*ID~ja%Hg=DY3kxihsjwQxT)^LcMj`39&6 zwsKi65U=BgFKUJtcC#?@xz3vxM6x$Z# z#{}CIha#_GAtK1K3cvjR%1|7OA z)nL0E3{_*odoXdT3_Be{L(@YhQ<&#bw&^Posg=gA=Fj%JHn;av6D3KQrmZa3vQg;u zu$9kMAqi0BB|!Jm4V%f^iOHU1v)56A;%Mu(^&$)5uDB+S#JA#I#Zp=oBdNqlBof|J z?feCedd5n>{5n5zuf&gaM=oV&&!YaNe8w((x=9<1YbG9EQ?tAC1?_Cw3?*X9(e+`D z94N)$kX{iJiWFe`A&QG$o>kN!;DXG7*q>!HW?B+#@Aj1|eUOop&##ELG|lg9u0fY( zkdz0UmXCaGyH(-f2`)I}9I;0K1L1)|CF4ju${^eHu3P0yD1R?-04~5q3lq647o04R z6K^40y1=KSW=T#f?jW@5Yl_3Q^OU@$hav1@8@2s6G^F`h?H4M)hjU0FQ8n3J(O>Ff z2SLF-gbjdiyksLWec3@wl%J<2CEoDHxNi0>j6b+$Pi}Y3{R1d7u}q>tF?Cu-o2nsw zifAU}?RZIyY%v1_)OW8CNv^21PH-`@Obdv>iUQE3d=kMi-)-LvbdQU%=dwmYFXYnz zDbaS{b6vP&)#dZnQB$-kF>)g*rNO14nBAf-Ro_Ui zyIEPR@^Ex#yNopcx@|^*HwLlqWp@oHg{nHeD#7274VVrsVjw_%U9gKDF}?Z&|AZOQ zrv)gb-kwF|aPdu{`It&v{KA&tM9D#$!4|ZjI5SC^=suJ;L7jv{?jjf(Ghcq_xtHu& zgAGwprz9b5Jv=44qw>Z|7S4Dhm`A(B!glBAjZXN+N2HLmMV$uC@|r^UIaHQ84U8gH zAZ~}YX^|lPqzV0_bX?NQ=hJR+k{gX%5OgSOpFonj8OfI(@g!ywaCmWStoni!`BT2b z{ibjaZtW})t+(#S!fBvVEc+(T%-b|05m978wxo})$z&QIqvNvvAsSBaniPOH+tyijXMEojae$ptiIQDt)EmGOs3lG>&UeeGUo8t*av z{HhUL3rSaV74dDrp6S~u6(4pQG^HQ9!AQ_KU<~`vqdpJ!X56iZM*7UK+kCWSPJ9CB zUE((DUGb%4wAXV@88E20$v_L2^}y&ZIr~Pu#_TCH+UVAV1F5j;;j-~(<6A}+#2@c( zyFOFEWdVb*gVy3w%yE1^UxsI#)91QRVhFZyI0rk_p3Q<^Dm2@6%CRj;Bb%=e=(fhk zWVt27A79l78MGT(e!SqQXA~=iv!I+L6so1y!!=H9os`lZq+yF(h5;LG$sSJAD!g;b ziKV4k?*TTW6rcEys_$wasfSoQ;Q<5nE?(8`htwM8Y0c|V*L{iv>wtRKW;epCOZUX> z#@pPGRYx~m2XuefI}a?)6?WP0;_RcNnIiw8)7WLLnNCvd5Om&lOOBE9dLI^;M%L>P z>&0b(|9x1+{)qXxkFnw|o~1^L+;ojf=`5}<@j{xeM4eqVwHS9L_ANt!d#C+9k+2J< z%oVrr7NWjGai;P($KEr)?yT5dLhMD*;1Eo`c#S_a9ot(TU>LT4Pl;Z|$7#{Drl^H= zSqvDLDLy2GW~$EpB>#4RB@AUfs$}#?d0veVuhVB~nM*I?MsFW~X<6QWByI)94lE(D z6^cJ*viOkspN5r>eeIEMVGVCmlH0dtxmqnpYYrz&cOWnJ~n zqre-sqA&>Tfu@{bxM5i$=oFbo-t98o%_=jVg9V+7w-7yNJuA^6B1?P*_69PG8|e-4 z&mOCsM0FjKX7BJ~b00sxei$`7LkB8h8c_=%ps=x3m9$XlYLDd+*Ik|_;dzGe`N@*y zJoNI3P5V(fr2u#0m>rME{d4>5wM{T=pEym(vVi|_HL}s?2oV%s3DK4EGWV3yplkli#BG(@qfF#pL)A^M1I|H zGf@9KH|FeQ!v6o_#x!luMG<^XRHG8m#lxY?|0YW*Ci_Xq^^3O5%jZxV#_A_O(Qasy z75DZWK-<9x^ORQP{!4%Bc{~0`keYge=hl!*1}9A>w0URkmeDcDx1YE+xk3VB38Gq$ zii{YVFO85EBKohVH)AK)6(~A74>q1;+^%PD zl!lU_vn*P19~`Dnt85&LDhh_IW+OGSs1#4x#;PgV%sPkblIQE{DurS?NP}Sqr-NA8 zFBE-_lUR|Ek0M%cY*S=$F~g${U=r^U$Zzjz^3IueY~iw0yU@o4Od2Y~q&xph;CsfedXO3kN+BDO$Cua^Moz!G`&hsS@q;v{ijYy5?5N$rwImBOo z>x|UZ76|}0L*<3zw$lfxgGZjiDWj92J3Q0?Ybq?QTrQqQ14$N;eg&%w!Qhr5P1bLj z@52rGXY)n>(u3abtq+=XaM)?D-)nzbd$$F^Ye+jX(j>?7zGs+1-XwuDJue(%Rr#!z zSw{xQ9q8f|$9#%`af3YU6nWjs*DORULRp)L57}!)G!rs^=k0 zt3{(c0aNXcQvqvQbeu$4c9DuVp8(UF`C&l~ykN}y?80wgaA<<9$-0O!VpUr2t);Md zR2L!e}T)zcovIco8Ude|@aDJL8$-cIO(W~?j=e=v^;o4B9oAL#(2`OpF>P7Ng z8B!!^zaBrBR27KUAyH>n$7`gIsD7ewx%4zrXr019A;kGi4-4kZ$Qziv=ednthikWA znY%M0vR+O^OdH`fwcP8fZLx2@bSsFL)n&7RXZ9(h9L{>n_~UuA?hhM;=`*B(L~n*I zEY-cQ6fdM#!F&Ftq3eFsfW&R@;R|rbeCZja%hE3Dm3S6a@IaE(uzVBO?FZ3TRslRH zbIWb1*lDZAD8+LJmPpKHA1)a3$=kPE3Q3s~k;nuR3Im!TW#`X7kA6GEp#DhH#Yv~f zT@BB!A@Jf*W8MY3rmyzBOV~+EXIEDRr$&a}{#u!Ime-1%`(wba4$i@Oztw^dmDq3Z zineE;L#&%wkyZQu#-LEEFVyy5;^_W&;QlWJ(tp?^b6cBV+DImr$8wM#LHOeXb&#bc zb5Mj*2tTMuJdq!1AtJeHfu?5@`DI`Dhj)NI&cQ_IZbZY9w;N@MxutIpkD?jhTumN1 zVu)m{iO_L+0DT^FnTa+lk~p|!%~3Ri-fe{}3-0yo$KRmhk4`Frmxy;#Ct2nzg&%}U9I4VreS=Ngx*lbB^s&Mu$M zj!x_G?)AiT!L_T6EB$}D>=MCN8GlW70D!;ae~Z^Jv@)mD)it*BFZZX6?H^2Kri;;{MV{_1jLr1hP)*XX z`_NIFk?>=iH6zMRit>+cuK=l{V$7Q#jDc*ahyy3v6*v_{1W`JZERTrJ-|V_?vJg%d zK-{`RAEjjKL8!D27%oJL!U*Z^*kn!Uktr9ux;WdveIxO0p-EO-sPE$f?bN>{zJbI6 zwiYMRMbWKwlE143E*K(UD4IS3&!|ep*+8fpNGmvZ2X36ARSn9iq0q$Tjm4sfYOQWvC)Fg^h>Zj(pQQfaSpq8e~!o-XI=z<`X_z`7}O_>0wEmD<4H`Eh6$17($jM?RjB4J(8QDe4eWPZDz}}0jF^QwCw0V<_kl<0^H8Ba+zWiO| zpaxCqH~lO=>&K=pFG1w3Wj?nzY14=Ga7Xclf0JTNT$)`DlOR`f3RLxB2Z*!pWU_E05bJZ$!Gq2&Wa=E?BIH;jlTleBM9}?+6U{ zMPsjAT0C`BwY5Z{H({2`ara1ZYXi5geB+3JA#eoUoB@8d@7b}fUK^4+;3vzK) zaT(Y?-iyY(&LxRdS=-?$()BfYZjg^-{Pxbaf0L30>I%} z8Ai8%s#4%G^90q0aa!*^)A-@B^!WYoQ!K9g=n0M&mp1kyLz}p%4ug*J@Tm>bM z)!xx2LW!Xb;lP#m{;mJ+4$!GdoHHCob(F_o)oSk0HgfT=2tv3j4+`nR|1Q)10vG_$ ze{R3m|5it^Hg?iC(s$DTf5Rg1f1#puF=yKV5&!^_Gynj_?_74~c67Qf#x_Q_4*v%U z>HeR2tn_V6o%KzP9e|m{YNtkJo zo)OEu2Ca=fnKID254wdxN3Cn$n{9_>=YCFs(it!4*xY32{hMsp+#GEhKY%%I$@PNr z2&zy8FPryd)%1+FTG{tQBe}S?Fzc2D={;@9F99LALs|OZhnbOqVFr?CI;z5n&8Eop zyyyMAvV*m#&R#_yla;apYOql-cH$X7UEUbQv;a7&Oj24QiYP~(I0e}cq&O(eM!vw> z8OJVEOcNYsDM7CouBb`M07b$9d9W#r5}r9uX!1IbIBtj>@|1`v3&0nUKv|w-NlA4z zea|SA^^4kCg==DFK!Spf0G6@$}004NrcAsASIXR3E84(;_6WY?*``!`IcLeK>`*NGHzHz<4-mX(MBtVDJn*H@d)IG$N(r z>8T7+(>Q6%Q5}=74Vmal%$iJz@P;W7_q_I%ZJWyR6%#(P!aA9{cc28XB@hH*e={3)w5GjnTWsB`^8VMK>4go9;v z{;-0m3FKj(bn3CS>7WZ^dHF+aE4iw1@pv3q6kmp~urpK8V0mFt6-79UAa>+Lgi8F8 z{z~$8U3pRvP6dqmPKz$;T**55q9om+kxM{_WMo3(R9tHVjn4F3$*v!ehQ~j*ve^j{ zK2S`+1yGBTczPfp3P3CB0L*F7a~R2%`yw%J{>p4G#@CeX*C!tBVO4brND}hc|LlAb zu1n;y3^6}SXh`0pm_h*!zQ~FD@kv^8!RI_J%k7fQm8Xy?4cG#qG0V}ISdbon?3Z9& zfXc|@#k-?kuj_cESZ@$PIisQMs6VM8U73>g+loX=-3bmvI8ZxO9gTNs)4)6cUE-8_ zJDI~NxL{>SuCXTI1%(oM9@sXwR9I2cLq`7PCc`I%0LmtP*LW3yTum1Xq~HQXD<_!O zU~n*}-q!OI52GFXvZ-RKyeQJ+&Eq|4S5f`j-$v=&xdE>OXz5hb5!ob>NIDm?rt}M# zQA-0QIp;5=#b3j7L5%rx3F5i&N0GvNkibiyXv77fRNVsKP?$ zZ+chBhOR=AlmM;k=p!Pqa|S|we@lJO^)-iJ>HidOi1R;k$Eo`ZeW{wWT9T}^_mZt?39aC*dv`82AGq{3P^D922cQfdS+cui2vXq zk;jV&;-A_}b+uh@eCSKb-sIx<;tOpNw@Qi(&X~+u%UK!zkc#Q$eiEuWJh*Exue)n- z3RRvGI9%H;nB)&Y&i4ygOyJ+Ko|Yy} z2v|i7!V&ovEa|`sodh8lM#P1i0B$6QkqEFl0xYh$*X`dSvqYeeiCZkwUD-*v%J&|Hpi*&3?ON<+>!*RT)GJnhJ+U5H1wavB8wa>M{wf?pIwf(ikwfVLBwfnV* z4ebl#3*`&v3+W5%3+)SU>Cr+ve0yxWZ2N3GUAykX=zZW@{^#9i_~-bioewcz246B? zHeVuNCf;Q3WbUl)SnLPJ6cG3WF#R*WFX0O-A4C*)#2TN@@%4%9iOyiJSUw(hMOjD- zVNS9VX23>p;^^|RY{QWRiU@BfNRIg9z2IO6C36*A5ST}>75zq;g`pu0Fw*FQ9+wwD zpbm-MQYFDf0E>-w6KR#yim~Nfhk}mCDAuo_7levGB2x2|H5)=5*G0)^wEdjPcCRg<=^NR-~3rUSRx8e`b%7O<(6R;|bBD z^6e;t+nuSN!3?w;kmW00*|i#md{zS^+{KK&BRmp0OKG z11@l1z;B638$~mv1)^nQj5C=7b`8krZ77+nss=bj)XEI7%1REf=y)$Q1@jq1c~Txl ziW(%z(NltVfYdB;E=vOtK6SsDaafRHJN6)?`B#xjD3aO3_k&oo>&$yc=!VeuLe=qUZEr- z+8A!;dSrpeYke)~7hv;&SSDQt8EUaS*E_CH$lW2bTU4)V(fE{=KN+s|7LxIZhcr6( z$q4692({i^e&qsQ2#N=@y6)pHLdjOEVD&6}c2lXxR1eK>BVLw0OuLyG>8yNdc+;}S zrVo*C7oYWS{ci^kLJwrevNQ0ru~V@#xs16Pvr{L>k#CI;h7Tt|>^N@gZSM0~^mOT| z(^SXGjtg0grPG)X8SdL%`a8_F>5a!YuQxUBvt72l^mrMuQ~Hie+{QVqvl%DSe1Au! zo{p>E7%&z;OdPS)aDxbX9_PIDi=FeYBVlSLYi)B2?OHSOBD z`Fv@;yQ{Bt!L7%A#n}}FQC+D=HEiOI;#{is)p6<{7PCYsFHldg78L)p0jX$dBsZw! z*x8WkhQ>EAdu#a#sI|e4J5+j$k<+)>^Jfz&r&>Gdv?uB0Qdzj4iHfTE6)`|cJE9hj zWr~w7+FP-_z8Mgiv2}v=HM6%eErq_3XbPis!1%zCeCkh#W-g`*W!1ZLWCEQ**BI1S z0gA52e9eM`)q02Z$BcIME*hEZi9fAZI|4W;5+IA9{Zisy42n!_!SjCWU$diGB{zNB z&Z#@{d^da>a56W|Py-?Si@E79RkhGWrRKO(yDJzpQfJ}8kSnR-> zh(T3qoGL`36#_`LLExZb6mq_%QHy%pZt7AAE!9Y5C?v&cKN0r+BVQw1j0(*+bMtKs zGmRAReNB|qH;}0YLU{;L52$xPqoI1ER)^63gE>^r9>BEn3F5r>J_6Rkd)Ysj_|Z`GcdlbSdH}+`Nd{t2 z5nSv?|9-LJU*5Iup53@y;B7u*kV(-)!!btG^#cu%{_aOEzdAB8kEfTeZwd;GL6WpL z@O1P6&c}Wo7RbJPD5Z@xj0n1htwRfFi^&9DR=q!%pL~?O_NiGxz-VC9DwuX%a@ckY z8BL;B=YEPV-hJk(!F}qg(S7b0`wo(_jL3i8`HvfljY-Y@`As5HAdE`1MSxbdjDgsg z3MZ+#-XLs!k6JnPGArC@4A@(Nt=1v^TP`hX;L40UM;sS*P&yANxSDPeBs)*L)0Nxs zh^uAa)I9;9)$MvFXW&$fg7Zqc^z>oqr49WAL2O|Hta*FTW#ulox83*l@&`pXUNMX; zP``d4o_>O(1~Gs-y#$A9%Z+p7m%jZAN5BVHGcNIJKb*-EAoNXR8G>|Q=zxCDqn=8{ zM09yc8$iK;%-6>B1`;T$8Qq3FZ#ty=X?Oq+zRj_GSH^HFCzQ9FM<>v!{ z)N@6mijmg+=9|S}>w1x<9Z>D68Q8ik;6ybdqM<2eDjr)UZd^T%L|<<$nPLaV~}Fc%)gkbi-uC8r2f(r_exIi zkr!tbU$nWYoIc%mDBX+S+O-dd@RJHXH#0R2T(nXd`dc)Z30D7m@S0{R#AyA9|F^D!}*8sgH<|1iH=d%Vn;j-B_hZR=z^!LE>Si3|j^< zrcM8M#<2qE!QTkZQR)lj6al`LbzuJ7K7B7CO+pZEAzP4<=k3wd%`!Ds5RD>mSt{le zgEG4{Pb4dHoKfL_9W?`d8XTg>|I(b=EIz@lL|Lj!tJ|-jO|s0)v<** z4;IcU+;kw!CD4>8j7_=$F)teK5@A*v?h;~V8qO-(U0W)8Nc*QwygK$MUZ-Z!^V%8e&5^Cle?hU% z9AqXN{v2gC8~z+%<|ynb(WENuDbvIz>?zgcD(orS1TVZ8mO{EwOY9w01TNtbRur4~ z2${euu`o!?Be+mV>>W`goA`*Cz$>+2NbDU`G@JMcnt)4o7D>z_u#hVL&M2Wva8^mo zBe9@J%p?*Mlj)m%7d1GlugZGa`cT3HDF1J0@I{%D-15 zZUgl8owenPSq>je-Ta(4(Gx(g>Wex3jHCVZ44g-_+Zmio{#Mnjm0^Nl!7)qcp=C5D z%+6U=3T(v##%D^qGeND()N)d`g~Xesz|DDF9$spwsgV)#($^woT$3{`$N38`4BJ*d znFGsFys@h?2o5wKY`u6L1Q+(w6ll{5ch(h6C|)x;2mZY>t1n4%T3nF;>0ToJ$pIe8 zk4WghULcF>WIQdgM{cYWg(Y|@KW4tvL==K2gLXR5Ru+PCnU(>1hTQDe&Y-t$>tVHdvP@I zIhJ|FX$e?oL^*O4!OZ$H{;9v$BRe%c{?ze<@I83K3myZLj2rD z>(cZ|`vYK?uzdYR@PoI1Mz?!6+lRATUYi|8#oHMuAsIy?4^IO*rHwJ*{-T9LPF*7g zd1pvzeIa$%xzs%uqP96k7#tZ+`mzSptD!HB$hF}lm*fuC-KxEXD=6cu+;cFd#cQfh zp2@Ydr%)X2h4}|TA+LW4gWuV42(z`abICEvZ>H!#kAW z-#d))_{;RM?o+@^3$YWamHm~%O;n<8qRsq7Nf$Cldb`{L%@x3K;rMn^4Dx{C5IZ{O zgPx9lOyCad>czmL@zD&oO-D88ENzKEyk~UIGb#b(E~n8x)-DXBI#q?Ij}4>Gm3|{5 z^vND`#P7D2_k;D6=tuT~WN&SS)DPd8%=N-I`rvOH*4wPJHvevm;D(3l#UVb0G<{-w{5yx+6jG9@IW?+BfQ4gl_8G~W1x};{2%|c?vfN9 zr9J*UDt09DE1&_U&JiH_Nt5}|Yl0a~E1YVySZh`WNioruQ~$?6v@?B8>teZi z1y(?mIaDq(1Bn_h5jN~Ab@9fxx%zFvSLe%Gvrx}M1?5GZp-P4(e?m|@+v-gDV}#HR zQjV)X9PJ}eoCFHScT=-7Pf{-5V680Wt?I!^V{6mX^dPnW4!bc`T``X^DIQ>t#tI$A zL&m&y)|_vxbSugJRry%VyHQ?}BnKpQYW2$2SoVj%NU~-HR%j$0YA_|pNqgkUSwsm) z_&O&F2v-Z{RSJLtrCcF^=jxH+1{sY+Sjel@8_3^OEu8xhlPpR~&WGD3WHUNw}-V==b;75-$EkYyPv2D4kKeO?1zr;hdRtqG*jyZN9$j zxb!ye{!rOjLEx97I%q??gNS@@;+T`z##A{m)Tb}6J9e!o-GOJSXR}jZFGy!CdA{jX zl8299vG?HY8MqMJU|H(!^nDF4`VA9c^?_fKMIl9sn}Y%Hf-6iN#7J|Ya34$G6(NL) zbDpUmUB45jZx!GdB#|kEhP{l9T zp?d1CONQG!fu)uv@K^@Ju@++sw-{8==IVdma$u9GLYwdZ70*05gt%xA4FG`pOWpr} z>Z1P#wEnY)oorprZI~E;w{rEbkzlh8@we@Oe-2-mB*|O#qItH3g8Itv-#;fKE+aD5 zslbYHLrfyK5cDk`-9J0pU2%Jr&gMLch`KI#m$YcJw0)Ne6tb-5ZCVod{-a7YX3{fe zlte8Ap&#I4L=Fz#k})BRVI~3b>5tN(o8pRP~6@ z36a^^A``1d!iI=Q4^BX;yBv?;0u_fO{{2B*0rz+R;i=TfD|va@j_IY?8v!4}a)V}b&Pv?@wRxj??5B$(<} z!N2ee1pUe>3NJR3NFk+ozF(Q3jdUxYJb0cW=|J;^$>slrQ>!6T?)l6xt>YnJjnV7; zBa$?NvX?ZQFpx+{>a`jRC=C*g4=7M5**7G`JOzOXDaEG@zjvQLjF^?U;eaK1c;~rw zMI8{|o5>Qfk|4=M9*3M&2xd9DV@nAzB#sI$vIk%~%iuAE{`aB(M{@TCBoYmvY%2?1 zT+cbW^0if}FMBi$w$W`y0kQ892}}XIUGPTlkT}@$7MiHl0O%j3DshQr+aWYK*$Yz6 zsBldh&RU3EsC!ano-@&ItAZhwE-Jl=5dUZ}G*?Wk6si5~mOk^0J%cf$l%YXU*L|Jn zMzCSpZ`&a33|i37E_aWSN`+J5fq*zsmtSW`ZbQ&-HqaOYM4;iij!(7V;fI9?ryLap zvVB)8xFZ&~{jELX-HCkPs%NiJ+#5mc@J|1JZYphbdu-P#~w*@!29m zsmYj*;2FTAGU?Ki)H7k>ZG6=kBTUqITm=1Yn+?6CP+G7pf%8=jSpAx8C64(eCiQgINXv1IhRq@r8B~Yyt=8Vi=r~hL6<_52; zbC-{^qqp~=%XReS<>9C6s`t#()#>$S{5BWfJC5CJ^#Zx*PnkU95n?+lZk%IRuBrc> zbo9fU#|FntpzBMm=R1JmmLhof>n2GqfomC5-;=2Lt@FgHWmwE4Pj<3hl$2dwX`j|2 zj9LIB=_qBrl#{Pwt+~$BB8#v?p-QPvtHts;msb>wx+BKcO=|YRLR#=4?9o23~d`&`N==u(HN)d(Pl%r(T_2 z4%I(k<#wVBxi?!C#i)Jh1?n>=>fKmu*x>G0`uh$E{dSd%&F>Qq-n}Uz77$OH|KfWZ zxK-?7F{kU&3F{MVRZ8c%J{pF5Ny+~FWOz|^stnW7bh={zuuz9>$d_y3x8tQGKV=PG z1EfG1C70QOPrOf7E0PR zOK)-p_^NR}C5(s^LXm6nJ5Qo$jzmr8w-cQ}H}L1+>@m)Ff@Rk&Z`49z|AnKr?NH-? zQtsv|D)Kle0+tLCG>V9Ki#ZSll-OX_Zx^9BR81?8VKZwG)Na6_gz537*7&209_Md> z3l9q&Ph5c1;$@jvMIB=oJBpkow};Es$_$miA2Co0RFQX%D$+>+WCm8{9M((9uzhJz zqDSJ0Gy~hR$+7uoh){`|%~O>Ef<1p3r9ztWJ~+}+9Fn89-t@hBCFNKQq_A@R>2f4j zOY0BvtX@Ah0SsZ}W+*)24T28>Gu@{5A z_3_g~1IDjYeCj3t2p**Q+Rn#XlhUh=+XktZuVpKj^_prO*E8R2Z7r`JYw)?7&h8(^ z3y1H?Dyfgf!>`MGlLa_EkPiA1T{0YkzEmuQVD!8ZX!(*tB_^IuOlHc zRU^ZJwhSq#zin`PU4aZPZeg+UR1ob{w@I9(wwD)d&&Wu&PRO8M(b_1yv)EJsI5{NV z^$f|doM^U7n6I{%1IVpSf%64nUYp&-F|9P6r$Q&UfBT2PDKbE=Is=4~-8CesasMb3X3vh`UoO zM{8NZbJ!%pY@pnd7j|XVWI7X1^KRjtXf{6k=1xqYa;J45Pj0;wPTfYLQujRdj9rA# zQboN$3e?lMMK61asOM-gUvb<~| zG3u3`<;3B63J2r8Hf?o?*Q`%iU8`n?o1_7TFg~mLFz5qGf%%YfSHks|O zM0apt+9&botQuX&y!g$~R(U4H4!{QQPG0wp-1e7?sh7K1RB||S_D>e%**?EELxrk>E%R-U8X=Dbq+=6*%ux(F9)dIG{N4Acm`t*;!n z?=4jON+hHO>-nW1B+kDdw6N5cQpQw1W`#Qc99;T`&UE0G+0uJ(2oXLu0WiJQV(%utZE0K)IMFr z!tTQ2LjLx$Hj|oowGgeeoP!y=o9TXlS+!J8+QWzOT1CtRPP&gwL{t}&nOciR(bf9{ z5Q$FJPZ^E>3RgS=!c6GZu3dd|y((wtZ$30xNC-T&r)$%({a2!sEx?v5vc?$&wMbGt zeQB!ru zpMZ;t9%E}S=l2fTrDC(XPfORfSk$JAuW`WuOMJoW1lbG1R{a2F{{oM_qn)}yIxrIb z#>YqP@${Exev5Qpn*d~#CbB3Ps09A0bD~WZcx6%3dQ_H7qo%3vl8Ql?YxSe`Daby+qP}nwr%Sq zIkD~J#I|kQwlkSqb*tvPGxHnve!F|UyVtYu;|T|*kZx;+ISSp>Cj$&p$9VV5&| zad)~{cF_Da@g{+HD-9u1Ylw9oTyc~8)k-Tp@^(v#4lX5hH;gLq1XgiGFC9VB+7-P^ ze~SEP$xt&Oo}Chh!KaHn^~%W}w)3EumOpjT)+5GTFg9iP4%W$VB|E*jN6<|dE*kt; zA?nHH%K6Hq4zXKegV`4zp3|PQY^&H`F@%&8ZG;Q_|MLn%V8b9P{1QTNQ2!tB{Qnl6 z|1CGC)V1vk#ZdfSYB5OHv6?}S?$KD`BM)43J+DSR{!~?<_B%i{rPrH z1zpjBgXDU2{aPsWFWGvXrD{aFZsbevqC9Qbi}e6#%!P;rlk%F^6Y~cz!#TRL<)-Ld zDXJ#>qT#UxW2^}^I>$j`FbgM%lC$Xj8R;*c%~(RS_5(2HQWii`Z;7N}N0U4*RCg2O zuT6(y@3+a^Kpp1#0U^UD=3OGDNrGl7qEz369Xu-h|t!(Dfo@mv^GG2PIXMz z1);EmIXyg~1EvLJ*NiV0?Y5)ii0~P1T94IUME8P-)kpW;A4R9@)N5`@^8>XDQGdIi z%K?|-8r%(?T#}G|W{?b-IEy=nK0vp{;9}2DbqgC24Y{sG3Z5vx)H}N?XWv(@n^DWx za(n7CqrpG-^2dE}TaSGL1ARLD+b*H83A!68>Fn#YPm_)dO4suAi6!@Q9m-t9b72Jy zAh*^iBe21|Tz58Mcv4Eg-lK{_Hb$sL^R2q0no|eD^K80| zm|0Q+Gt%M2deX`#W_^))G0a}8NN`wphlQ2hD`8&@bbCEExKc>>$g~On$n~o@@~Zj6M4C@6~aIK(VyHi3cOS7-%DN{Om~!?!`Yo`VMTvi7ir+DVE5{r90q&T6Bb zbzr4!!4s*{HxZuOP~XbwHEYcT^b~=UH<4WCh@9$u}yZ@6u3Jf zX*l{Hv$d0l_3_}UCcPPHDG+qvMno~#Pe_&~mzxj!lLRH{lf~jL|47{*_EAFeO>>mm zT5R79ips$JryMSds0N)w>wZ|0)7M({GUaVly*(cqjw4hd=rbUXW-uAJ=I2>cG1F=z zo1bJRPKl2OIk@Zvs}gU**-EjkQDli+k&qX(J;u9kzA&!@d0LLJ&w4=nZ9ojI0Y$S% z%|G#`!gJK!EZQB~XwZO`$!{w3E0{yHq9QrH_>(T5!V`UwEI5Z_DJKnglZw&+WY2dC9BF_nP6^I0r2d!0s@ zLq2V51Y&jT3~)aGM~+DW#q#m>Zz(3j1OUMQ|4kFWrP#&P>A#XpFgEP4#2>S3IgpfK zAh(0EOB6|o*3voTaLalX_sN^m`fM5|^VZf3s4921nbUO5QbC20)O{)Fx0#)X3%4xHHIG_i_|KY1ha`Tn9irH4EIYZeWEPmNn_YGZbL%~-n?ON-Ti!* zKY)MS@@;qHeH9$U`_c;i{PT8^L0{}kq1~;gWA~p}Yon}0$QUw3TGEgui%BJw zGb(+PoXR2$%pe6esHk*F6M4my&=4LZAPdbjo~7JUbD6@%GIY0L_;p%(O)wLB;Ftsz z(M_a8M8>;Y4kXT2q4E4>l2d5sOX)@9v2+R~52W=dhp`MS%L8hJQ%AvwhXC&jm~0$G zXId&g`N$fv3K>LSNQHnfL z@vovu?AlNVuo%0`PAvn8S{Zd+eq9ImL>ZCByr>xATe*v6pwMOa6Y|>LN>l}~^n%91 zL`uK7BEoQW4PQG!ef+BQrE%kQuYrZy|VxZJ)!Bxmi`|S(c zcq~BGmx_<(UfP%$4lO^tTa(nXlsNa)^mV|}8D48>&&1qw$eUxX_Gb6am#Pe0ObC?) zGSri;QT@VKJG9FC4ldEO#oD|S)is>LPXD6V>G;k7M5u;sNH>#M758g<@Gc()<j zY0QtMMKu#AdH%XL|JmR80R;76j2Dw2U>t0X4~|=9q%~x%xWxuvI)8!}Xq{fAQwuA5 zVecE}&e0aVlh0*d_CnSkI@4$*t!E9m>tv2lW@=|}_Ts`eJx!)*NYpW@8#2Z&Wo$*c zxF<4qf&y_cQ-i1>>iR|_^+V%)-vzU%(q0x(e=m>V@DY!)qlg`&YPkgSGsyt z!r1ee6G;&0mix|Mzly5Nm?+H)60u5&O*L05sH?&K*$6SABVFn5r8Z`EYfO^?;sZ`g zar+R?i(RyP;leqOD=^#w0bib|7MURsCAS4zS}h6-Z`K|*2?|6AiKNn-2-9?uEFjR3 zEv@GMuJZy2+Mk4W19-d9h1{S^Qe z_Iw+FiIPydIxW)CjAnBpQ}O?LX`Rih%M6fJ!IFv&TMwwTt6(SQiyDQIvw^zy99-sl z$F103=8WL~lJjeu8NS8QHpGpE!#8s%SzTuQqVn}CO&W=w@Nh`@zA{p^Hnd3?T$v^Z ziIBT^K%Zy*jO6PnVB&NGIr!q9XlJ${=n!l-|(_TtiE|xa;Br4 zKJ9mg%nnNX63`fwNDW}=4_A&4wR6I$U0*)imHUgeE}l}7fnuwgz9v(-4zt1o3MMyi`Y zhQ|~y1C2e_SifHsscA?CqtlwYJgSsC$RB`vvHHd`l@l>P6Gu#Tio`;^hxx^Gtc68< ziNNWH34|5kx9)e)|2!F*g)TS)Y5)NAg8y4j{rAZj+uJ%Ay8QkPxbnSn+Yn1S_2(6( zXVnXW1J!<(;cFVWnMlXOv6S65w8S7(17>Kgz?Op{dG#EDd8=6=QTU)$K(Kp#1B(lup&5Ca(@ zzB|0zTL6ANVZO6f6R~#0`%0k|ws>ZWUMP@5o=YkCTe|<${x>a@gWi0~SEYDgw2dmM zY;2ePH9?Ii=q{>cyhdFXa>uTMMYl*axNdqurIUx3&(qZpiR}gp5jB#7&)fCx__4AD z-Q0fqPTZn}y>dJ>UCzAHOtpBSd=zb>A?SF;^>1y4%lOXA^WlwYHJ@tvyGrdvS67J^ z{uSh_GXL_M-aDOKS}aGgzFb8`Rb0p_`UF+Grigd}1>jdlQ-R&Ap3GongM?ufW~2ZB*t0b7;u>H1TYjWusmRD~v1d66Fs|$%yQGO@8>T zjjBoSXcOpUHpwEoW{#f0Kp7hIt4!Bqn|$d?C5?Rp&?%(tVcNQllMY(r<*}>E(&#YO z8^li9V;3%4mY(<>t*e4bc5McYy>?Ya7FYSn`3DAnb=32Nys6r3xYu9vSRa{OS_4nF zY5~yOe^P-$XSe~co~mpt2b8`*0HN;+NAjtP%=87K<3*2OWbMzGip zl^#j}b96KLyR;9NnB4q6S5(`H&fYNjn?k7O~GaSlnXmkE$N6Dm&e zSO%Py0CJyB(43ZwRFzZP^!{PeEQO(C`>$`ip&hxdyXDo=P~=rEoWi+)pPp5rDTZcf zP6|MxAAM<^O#xEnSx`00DsvX5D1%5J*^H)Rq z;7m@mGn)A5!+-@ppCSBo@n{u%lBoOl58uL)IkVzK1_#rJZW(Z(2{+0@^uo-tdwSv? z(drEoBc!3}rgQIG*LM2OWk7tmJLjlk4IddnzB6NdvqIpsCSeTxB4?&Vio* zWn|^}s*6q(r%u!`-f70i{X1=et3wc;5CYMb0kMAa0~PWwxxc|ckxuMrRjJ~Vwb2OH zS{_!Zq={H&hxf{|#V`U5z0^ zkQ>$mpWEDy1$uBgM@(d#UOYuZQ<*6~8ZN#>GhFl0a02+k62?L{mxt8V$&}qyU?ZZm zN+woui(V~ye2w}fACIkOVExnAs;TTPAecwVo}x} zyrhK+@SYEdRcDjwXSuNQFSgVbwr2Kw&s^W<`&B~3-828? zqfs^XQ9lJ&dVR7`C;)Kb0IG?QIfV!YAk>4b_n=jJ1p+zM)Fs>eiANTPVS;I9|6c?e zDU7qX7Cp;h}2NMCv$}S8iKm|+11W;ZnQBGQbhs6Wsc<;RnNoye@ zI03srvytsAVs=?`p~v^RPTnhCWZ)~vu&x@x67hs~S=z2mo{{o%=&m@6H@(Ow(@us+nx|aUO*;#F9gN_h;oG+P6c0u>H5^>;1?WVn z=d$mmoCP&>ZkSxW{*V~>GVd+v)d6t=hptYkBoKlF6aipwuQ_;9DP2{|c^^!sDT9OR ztW(_mr9A)xm_<_ymgr3EtnLT5i4{%&2AGux^s5P&40rO*-GBdWnHd zg>U7VbLZhrG) ziUP*O=Yln{Fv9j9*nn1(%ZnSSUmH#1X4X1iu^thy_)!36nMLVD`KPD>`7eXO1M(}@ zTlg^po|ro&vL4B7dFIq02r*(Aa}v+tR=eQ_fewPaZ=bi$QoI#QOLBI93S9vB%}nF4 zSTTd~Vf^N-O^9gHwfMwXVQU~>Wnv0BC8S+f26r38gPnZtkBz*Z-}fIcmm1R`BK$m@?`!Slcd~f!n}{g7Bt|GJ z1*>H&xF}%y5Lgc7^O$pwrl>7ofN(L|fi&GRYex3r#)QV=NAHdUa%O{IU^P5P7DvJ2 zgr$2sgY52tTh}~`%!<*N0kPXIRjYMG!>#nEF^a2b?paUIQ9P3Ju*fH%oHFwfA`h21 z=S2d*Dwg30NJ2$9FF5C6@u=BH3s{m{xy|9L)mQxHFQadIe!4FX4uXz~1)K4CDlkOR z`bF-`xHOt~(Woup@%EvXbxv)K>;B@hB%$$pHGGLX>V7>r=zrO!0YMM~FIj>3edXK# zbI;lc)LVr2p>|A2vDAerb}mw*Sv?1LZMg$RY%;{g;%&x{w!q8-=UGn1h!w+~85O~c z_|`V~$y*O<><1vKiv1SGXR8Yd;8lh6qX7e~-ppIR&oif|h*(*`c|7-(ax+sU305Tc zXnA&5+r*39j{v61@l8fzTtIQy-*8PyC_Rm{Lf*#L<}xe z7U5_Cv5F{&kSdrZ*WmJnp`mTM1Nv`>`JWLFF#%mHLgs$?uZW2a+V$?*1M0BQF5;2g zy6&2)XeQ)f5i15F=|cupf+`8$s$hg7eK|l1;3#bO%&}C!@;Gz73)^TMV$36OCM4y7 z4@$-&hniyqp$woGL4Oqr{$c|1ODDw;BboAGp2tI6ig#Q< zfKe=gF#D&26gmdt#lQf=Uy1g`mpoFWqtf6L+d~lmNQfjo>Z-A`HsK}WoB^(X>j?+j zI#NN&r~!9F3_)qj39c^~7L(8<^^f|@v*f`nX&jn*M)y5gQQ`waRziTzj6;ZEj7%n+ z*=$K(!y1L|j+&&KMn0$}NeLNlP)!*cZWk-9!{jku8wxgAJA?|g-74a$uQmJ`wJ9No zvE^jYBq@wrF?SZCca7Igy9^-XqjOvf08BqU*~%&)NB#-IJeVOMTrD|(+mF{noWphl z^T^;jAs{6@cj0VM7=!|cu)tnqu*d;_(Y$*c>pih`JEhAwMH|BHE~zUxSk%DEmo}mF z0|0q1lwZw`?B|(`!Ww8FIcN?KWHk;c;(GfILbHszj7G>;qC4OdLEs6a^qU9f$@?~7 zxJQ`6!@bbbn8|<|on%Y-Wbp;>rXG$NM8e>rt;;C7Hghx}deO{@hB#2T)puli%6eXF zpwcsi-7v(nt0R#HeJ8+e%`?ChHhxUN$Y%rxhqa4N@G8U|Q6iNxn2Po!LDwSZ$}`io z>xXg7FC!sIVA^X!n^gGXAUXjor)`79_ni|;bv6ONt*I*2{h73-=OcXGa?}#oCQ&3* zPLR5{uBTHMU~-}Si-zI0LNsHiOlv8Ti-G|n%Wc_MW(ZlP-l+L3cMKE2c?adZEpXkA z!f$9H)SOR(3e!l- zfuT@L+Vtis+J7dM9^yhPwK1P3a06}2q2@#K71KN{LFw^pfwxBML%aF#t%14%Ah7Tj zRYBXY*s8%(MO;=Hbod5ATDCMjrMhHcuWUzGRe>CB7WW*qeKot&8VBTv-dk*N_8V(8 z7KX{2$GggGW2kb(?Oj~>AG3rce9+lT_^o8=3ODm$fJOk-v(M@;Q*EMG^-PTyj7ELl zDaaTK24OrM#z06Ls;HciAjZys5AH~&!PD~Dol7tjDiwl)g@NlL_B3Itc{B|B{r%Kn zlyEE+8_a4&beuhNsJzSnl`wOQgP%U37w&qS!7njpZ!vW|Bf8#Yt_qgeWxi!#bN;2;kde88QWw?Q@NUjgvsAa@TTAf!Kg- zC@-lfND&cgW~99*yQi!TCuJ)4oeckuEy8PXXVE5yRmUXTZpQZZ`WsyzC%;zE)K8#| z3{;#vPeYR2!@=H&C3Q=IsTY&1QFaQF72(XFsD(ts*FeB?<^!}2tb%2nlfH=Xj}e$N z`Y69kR@p5p3O&UF=!CEobcU)!$G%pWHx6+(ZG$^UzgtzD2~ki4edE+WjNN#RiWmRy zhaL)^z*pn}WXPFuww6ek-=KM)4Dlh@^QGO_%eS$&v7u4fDhZ12lBR)VGD7O``PZcoD--gdE(I6QeKUy)zxBNF*6hva5W3W{%4~+H5e(lVZZ)YS z`IkJr2=FdCl5fHs+Q?qteA>XXQ4$jRRd~X~IFi-CbnZHml-DnL(xPM}diw>Uk4!hc zK=l!9RtZ^+`*<@A9G`Jj-vnHwRu17#)2Tzu^_k2GL z9lTEmd_7+#EQ|(*&>_Ad0m^YpKS51X_K1!v@hm!~TiAdQIcFEB#m`CxH>koHixzm} z$5t`u%cUdILFy4I(WXHPk8;Nokd}#IR5m!>^s&hVC>mIU`U2b z!8wf0e6Hb^|x z*mVS(&>(O>(P@VAA7qNI8PxtN*Gr`Ive;avm;B>BmU$!4fe+P`4xo=8*BxNy8BjZY z#=^S*!qK!7HzrgiOg+2by-SwQB^olH%}qLj2qVw)Qnl(VDds9cPO2&ab`~IZ>;@~n z#6^!oFm$w!tq{j(Wrc;rct8#96L$z=qFb*}HeoHdg=XpX3JoulXl3#~2Z((p*Tz|+ z=PYZ)uBcbm_9e?^^j_TmgZY?m1J|fyheudlT)7~pIPh3aV2iYv%Y;*uq}U@Vmq08Z}$$OdSu%T*bku{-E=bco#VqNTRbPMH>17|z8!$ls>5 z2$OA~H+_kdm(A8n$L&}Mc;Lm+bnv37MxvaW+dHS*^?Dh7qO`FHR7J-1K>nBJK*rLt zfui{l@G3<-M(gFWue%0+NjybkCSQO?y-q798$UNE=_VF6tDz!T>=|I7!gvTERG{S@ zxISy#!&hi0g@2JV-5lYKHuvJ-%v%KF2aQz-r|bw^g1#Xms>Jv36b;6tQ4Q&+#@Kyk z6wl`M8(pfU`zQQ7&2UuJ8IT9dT4D=@${JW0-2mL&T=dFNM(c!JBoGi69|PpkEWva~ zPqGOOCb3ml2G?H_Xdo%}YG1Mjm+6mAn?Tv%R9t$Tqo?IbE=46pXgf{q^xP zgJ-xD&x4d1DWUY3&EdhmidNe354R-;P0x|%Q%nzc5w_k1A}5mVA0`E(0^_h)yY}3O z*Oq7;(?+#OFX^)g)2xAa@M@Niia|eA<->pu#uCzF1!PCfKP#T?2`6Xa+kRhFYXEZw z@WF1JhdW?r`TpRftn1_qEPowxe=0*|`41(G_AzJ|!b{Og&})Jy*#T|R=c28SQqaZ? zPk$y##h;IJt>tY$i~I9yzJ-xDePcii`8I6V1%md)csp^}5n&9J<*jq+=qww)iiDfm z*3de2S9wR7tKvueXzCfo?hB1rHqq(pib`p&>y+RW-o@`mg6W6&#iEb+Bby?H$rDB% z)Tx?|FO%ur*nyrhCoQi#qW4ZA^@b66aHDsm>$OogaU>RVW`iNrzq(iG=Hc|(V}m;q zF_$&>JX272L?+@T1Y8V!2e1bLY|B^jO!vx&)ikl(iBv2*frK{m9rfn_Zk2x_p8$DF z(5RH>$nM5Ox`J zLIo1#K|PKvzr+AY=JmvGKQ-Nup;lRt;Hj}LeA85*#LowOwUMgqufj>w5V8?NX)UbH zFL)Ei>XyHNLyM)|Qo%a)dAq1q_y;t&B zsH~MDSv4+gQYOK-iP&B-;Q3Is&=CCvO-X53yH_DPmVx7?4H1HU4T6-ax8~MxjJCHb zb%3!o6z?aFlellAYHm2c5ot=-p_m9*y9cupYPrRuWCOCDINz=^rk*7a4bTFnW>J$N zzzgIYjLbY0(`XKTRl5^i%wRH96;;Pvpd-j#)62eynt@n+1?{Lwy>eG6?02DfNE3IO zCv=s^iUS%{@4(45+nmwV&4~D-09p=E8;=9g$0SvbxDVk;m?vRG69Q;G_2mB1N(Km9 z!zo5-qCq3*Kv*k>2*@;}HXl$;M7+wugs2oYNFKVom{LgEPv2Bli<)UED^Gf!$8<0P8M=Kq-3I_x*2uts$E6X*ZjL=E-&$ENUsjA92+)}pcEx&e;ZRHBe(m3k)3;m1 zOe95g{;t_hpqJdR7E1`v_us@(qp7^fzA$gx2V=j|b|{fhCU95eS(k)^v>X36tBtE@ zik|po2A&96tR)rOaEZ3TL`Wc6e3j&G+O(b`YqvYecrF10(%t-7Sb^DNsU!!(v@9|8 z$d`2}-!w?Uwh+des*{gajG_WODQj|U_%<&MuOx{_yM%tdsEiVP&~~-n;A9#)E6Yfb zI>${z1!FzVF}k#q%2`go4gk zR{>7d36{fw0!P0xOb)CuNVPL4a#Gh7o{E$62rxB*GzL!H-r2ZJTWW!RurA_`Srb;l zF3EJ$E}43`l!!VTEv21H{8UgvonLqU>X6U)X31nj~{_bt_UX{78s44DiZIr%I2&*YR~f43Y!1u z|KQc|Sdt{W0gC{_c6kC~u=o1q4-bm=@2Tm~t?+rl=@-Ay8u{cTbb&;g0M67izdK40 zbehJy$C$B-qf56V4n&uz04B*-(*PtSFaXha{m}(6&WkPR&`BN%!M}V1&|2`wIhtSN zchao>er}U_eUn#oREB$NLQNHP zcWx+2H>AV|xv;hln}C3Rzo32CU=XHmo69DU%pm%Z`yDn==-1n=Zw@Jy^)ZW3fYrv4 z?M{S1O3kA|pVmcBmvINuY_40Z<2>>E$)_z9yJ?s^=}cwgFHQIh&J`dqf*S8?`q|G4 zI;E$oS0ffbfd&aGVf6a?5$$OXXT_DElkEZl(8mo=N@QuQWvNiQ%HOuipDIMumaxlE z;W`ExhlVR9NE7jdqQlW7W!g;<{w6TEp0OnBn*M3ccpO=vVsQBKr`Km}ZQA}Ey~W5a zdyAWU>Pk+8sy3ON5jT+b%Cb^g2I)`+8Kk7|T%X{%#T38e$ub}(awa4+HBkA=qil5wjxibGTCsxjlkBqY(D(zWsWE*g3!*gTX zw=ww2#FguSq!j+NY{x7((SgAA>XY%cd06QopJ$`*A`6t0@+Hc=N{HjFBw&zBKEcqv zOi$d}LBHAQQEv&|lT(41hwLUA*>i030J%19mbno3f4y9g@9}t-09isW?DD<)LnQ&G zKZL=7F*XQ3gtinFWRV}OozdBND4cj`)_$CvdD*b&cIk6p`k$W{yumv?lW zLxi~8fja8;2;+`^Kv^J#6ap)Kibj=ST#m^$T;% z4B=4OeFV$*M%b&~Gz+h7$P8xASK5{hV=q;>#-*@#TOrj)V}UlWoRQBqjeK4Hvz()+sib9(;ghz2dhj>&i9z@-^x!B8Fy7pb!)H+ zw_+;gz6O5qPgA#Je&4VsZBh^ysCpB+nIMkQrMo-Oxb3l+seK0BrROsHX045PHU(+jq~V9laH&uY^>Stuv1uqhLb** zV)`OXZ@R?*WrNWIY`L~pXPCb<8~l(bM;ydXu^H=arhH1Rp|8x~F8KIgO4wxAXyUmX zHPkUhw$P+1H`6-J7}ajbHGE#fj)-mftgfZxxea5w3Ih_D8g>ZZ(Bf1&KiV1hapVvO z>c-QfY23y4me?ybbntbfcU&4KNv`yXmswR$) z}%q&oH^X& z2)EY7^e|F6Tk!JN+dszgW60Ehzn6ocNzR2(JxF`DxzI7wQ@Y3vXaWtRebv}ZZ-D+X z^bDFYke*&%KZ_FGdYBEwmrnqU`I5e>)Ft@U?IfCdp;K*Al5{OBc|K4M&j`AObbKpO zqST%tOln24tEFDnn)NH`*h2oHjo;Cb$bFUBp|52E!6}EW!M@h6<#*W2hODE^N6cwu zO>Vou)|gpK{#%!zeWq};_n}5NMR2AWO5#QL?LT>7jP>|c#OvN+Cv6i=C5~{mlL`8>CsNXHJ6~4d)^eKWx+CA zB|N$wv~2SRz++6+W+YEQ(TVc-pOql8yk0VJY3-L>v~xBUp1&-|>ePz7f3~xEtrSyc z^~zjrguW7NMv`$GaFeQuJ#R9`J$d@5;63B>Z}H{o5G<9s`+`HLE5y=CAX)f~$>oL2 zr_ZQFJl+)}oG4W?vl07@SsQp!R3~LD2v%BeqV4M@F?M=X&I(#SQ2YjvPQCtV+&2T@ zN8%|MX8SHiSznP6o!VqHRi(@LbSm&d(vQ?^oZOX@j!b;16DK?MhWYWgv(g~j9k1z4 z$3hn$rfc}9cDQbID=sCyzxH*ZH@epNZaYS8NuAJ9EV_EddIksP*!ul>>gO{54#3P` zq=Hz;G-v=V2~Y^Dp-!N4aa1Y!ZKn|x+DVYz%IvG18&&5cDm~o^gsojT%L3f`dXQrxadcj`G1)~sBt+Ms)kBloU2 z0_zZfnve_|@6r*3?NrU?o`{+k)@sBrPu2e^EyB2GcdD|mqbWCT_Sj#y$IEro@LG~t z>d{1qKd;y+VaLbFYyo2~bR%P~Rb2rTW!mw@=UV~X5yU*rp1YS55V69ykgKtQtsU3F z3rr+RHcu3~pzgP}nBjNum9e=WgA)BIhb@1J0I!+MX>$)H(Hydrmy_Gh6#KX&qHbLb zx!wVjZJgZSz?lfMolfNDMNCVpHuo|8n2!?#)0T0EPGT)9(x$Hj{DR|TZG3*C-=1O8XltdSY9D_D0%dsv5}}y7eWuUA9NW;C0ae3L9G#gSwEbzKd~S*9GCx(c3we z#js|yb}K@jI^Y!&{x32k$9(INn^S7Z?b`EGvr?mBSWjJ$&DwpD40#ifj}CpJY}{(H zJ4FEGS$igDfm*0cD{mM&0{i7Pds2U+>xr$NParQ~m#!A1af|YlYh+mHqQ`_g4P7*j z4Eb}kXqOgC*f+mtny>n^Pugg^_8eik*eB7hsIy&Mt-^u#QErW~Vx`xa)x}%h3}g*1-c6|Cpw#1@6m z3<~xFx!It9s;jl>pMdY`BbhY{lbF&KaG7vdC&gJ3Nob;ON@^NAyN2Vqy7D>nZ~@m5 zdQ~ljwn#g@v`Oe9cor_7uiyRo{^QWu81_r(P}*GIPKo;K%|S4Ii8{PLx&DD^cg6(9 zqF3M>P{6;0qmHf^B4yXo@Ee7sJG=5dYA;bBeV+n4yZNQ=yYHmXL0)kAtl=N$b_pH1=h67;w-_ zX04xzp2*s@?2Ia39x;V0((+Zyv2=l1w#AccId?bG;>+YDkz{o%gDc=T+x$E5@x3Jjzr&w((ouKbvfJnOek1as*Y0g`O=T~_ zA~4Y`=(%84T;8lY0Kc@Z0{z*e^>O39w4dAM)Ofgcxa)vCQ{DW7+qwNm_GiGeZUBh% zRq!BYpH9*1d#6DRa^Aj0;)mZbYr)}UXkgQIU});bs?#8Qnd<~4Wz=|yYD^UUc>d~V zw`E4HP0nXcz51Mf#Jsk9Nd30k&&|>C{`imc+0$)pAAip`v0iCz*9VgEbfvtQcs$-- zypP(&#O>ax`*Hci&Ga_U4QLp;`H#cT7{oXGb3ktH6a0_x>5cRI`PF=b^KEmUOMar5j{f~ThpEWglQWT^F*EfkS(|0B2i!A30hp{MvM1z{t>N&4};qp579THY2MXwAKQZH zm#xb7F@85Ql1PZdps*rp*IK^DUcI^Jldu43NGosBi_XGnu2j7z5eueTdpn&2dsd5r z6?3q=wt2{=n3TIaXFHXFcX9DIHeatv$0iiyp{5j)3Av`=YYY0`!WdL8o!lnw4{lS< zldhMY6?n*VRJHo1aTe;cos$5>VV-DhLVlrJ=Z9fPzM`Bsz^PZLLYB0B>@&+PZq6ee z@`$<0&AJx$2ikQG1ef!1cf@s4N+vF6TS2U?9St< zs!j2Q9s6FCp&fpW99%8F`uOYDbE}g_?CAHdKJV7FT~eVxTo%gPQ}XG4FCti1@dT{Y zt^5WxxnC+;0eGRGY-$r2RlXL9JvH2*q&D2!!))!j7Q1x8Sy+9OWj}!rt1MW5`wZBL z-qtmc#oY;Blg?sFcx|D)-@JWF3dm^*VEhR!;GNEQaR{J9eMP2IJ>@khZh;eXx#Bj# zO@6Po8~km-7>>1zIbs)X*FooS47FH420k2c%d;*W!B^DSDzSCFQNjJ7@$XaN?K&m} z&iiURecYMq*{S!#wQq;5eQxC8OXGNU>Mj!XPEoj5WgNDlLPZ7sWzsL6O;tXM0q(Qb zZ^)Y35sepI`ApZnoi0o389nSkpB6M494`~0vtWP1TKp*mWzG!wqj~JUO0z{hZ-RZZ ztRJwsP=ipwtcjRV@2F8UoZVMz2I=z$`af55!vu^!U+Dn=oJaouOVj_Guy17eUsl~K zUu$RVvBX{X@2F;!C@>3zj27I^LVL?d=1Pq&xp@z>;9oYeK;WfeA@;%+0p!PXk3Qe| zmqkEE{Y;#82rtpBs-~)@=3B+&<;dFHo+6t)nyIgAmhJn|9R6Ke@CbN(qxqEAMymRX zFPj(JbocA!1AW{szyBzoPW0tfbC2EmrElZqO_Z9+4qK*|;-jgueEx|yVM7{yPIi}{ zKik#KM^zd6S|fWcf2a4|$qj#}=L?>Hh#Po39-vU8m_x3^>ggzzwXD{ThSlgRP;;q zE28eUzSS9()B-{8>!&#vCDb=7qW;yt8Sn3F`V*`_q~zSH&OUl>9LsB8I#rH>$yKPj zjg}_`$+Ra^PyrRsHy>zV{&!-0ov60pU5g9Ub2II4th?q(zWVN&tlv~<{(EZXwi`_i z2U3rqm%{m8ae8C;WNVd;@TD{I{8`i8zIXSRPiK{llFtJ@x!GM=q401GuO~-q?xi!| z%$E$Qh4$|a^Tf5$&B%>vpAD4S>uZv1^ahC0zck(Df~%I~n2p6DsmTB_GpDt=J8eZ8 zvwb{6_vFi(&?$EP+^(MqZVx)G_XlvF)i`)KIJ3rriU23MhF@bt5iLD?EAAV~#1G8k zeZjSt1tHqCu=gj=9NEN7O^x2-gjrtY*D0-n!Z+e^NC=r$dQwp<<>j^XyDf{c%A~=$ zIe)kB!}Wl7tdT`-Z3{Gj2Z=iGS6eV3d`_3=)A{4mgN1ZnJ?gG1E3e1*{uj8_3m#VN zJ$mhqKZozz{iQBmaop$D@7dnuoII}l{30{H!W&Q8df0DIzcO!jc)7jduRbM(XI_5% z-r?F~J#W!#dwiL>Kkk619i^0M0D~DCgFRJUblJSaP?)Uf{Lvo#d}NFXseAq98{^VJ zlogw)maTjB!Z0o(1~39J@mA#k8|XgPY!)M}D8m~!c27W?D55Ja zL12>pNWeVl$Rt7o?NE1A*{!3_j<8uwuUBrYGbILN~xx!@9ow9nrN7u@`8DKdw|@yg+X@-q;t-2P!Hz z%H0Sy3AB|u3vhF~O0!*Lh9vqE8Ukf~c3kYsO?NudN-$$?b7W!ffH6OZyf$#09Kc!6 zRsbZrvJ!cH45bfn&&fqySwnxXJV!z#8ks|rBxs2^uGHNDQ zi;?9gQK?F7PlPxRRu8(Kh4?&X_AitN=!0iE>huEE{2bIARFmnT-+QOBO zno31BFj+s!6VL}hE(rR0|0Ux1Ri|*22Tk z3@JlarUf)$g+_aANtFdO3GRd}5Dcb*qJFH0*g`=j;04N%6$@TrT%W!hF&aa@4+8NZ zo<%+RCi)~i(m!&}3ocI_MjLv0^nE91*732q6yCGm^}_*_n~)LfD6t_0;w1Xs^P5wW zDT%98+{x73GJZUP(cU0=2?bDH5!5Ur6+NPGkCehqqmNfY^U)uKbf2tUV1N5VHl+aX zQPaa!FI4TY4%UR1hoB*x|3%k11c?GP>9%d#wr$()zHQsK&D*wZ+qP}nw&wmX;w@$- zW?kE=jH=2n&&mE{448uk1Fg<}DI4M%#s(YF#tNer`*~R)jtDKFzwDp`a8jJ4-T*=4 zBZl25XS5=6h?j-nHVZcea$NxF84e2{fd^-DIT$@93i#nH4gx8IfwylgFir+8zK&HaE0sq) zKOM!|1ZW7LrYSd!l4si(74=2Y+XgU=>OaFerB+pGXgiNt?`6(2I8r4x5V6-7l0!p4 z>u%}oJO@Qii?0<)DwmTb@fI$^kpA{2+g^V;eSy>#y?$iWZFu1j9a*5k%4I$Ws7fE{ zy8mGd@pG(32mbxc$W#bVRJaWwZLR=V87p9eZb-3s_1)1I6?mkw2Rs6Xg%Aa{z1zlUAAHPqV2Esm3&M%y ztR=`W>giw5iFRf$PD1Hi(?>_QDm)el|2o7*W0Se* zDA;omZCj&HNE1Bwy+~@DuHC6YU0-wyo!Rp@w%Zlf@rbUpS?4v|# z`y8D={+F|_33y=5j)@Xnm4I{I?;aacbVUWH*M_1WqoB0Z-SA&gm!@PQAG2w+^49YO zjTBkqW~7j8#swY)i;Zt~mXF^?F1=382!ysgakw5SvqrP<5fDFfRGu}-w5%-4)})_A zQv*HWWWZjTA2ZWpU$3wLg{Ia*n&*n2jQnJ^hpbolyJgj}e})nr1??>9&k>aC&f~ld z2Es3MlqeVp#{e6yI4E{c{>MXTCxPO%B7@tYbN1(^RA@VRE8NC)ATeAyF2~FMF`uud z`@_NvdX;+G>(hL=w7B$$opk2s{)>4vpFuxKbfhS;`M0gZgQF#hdutM>w;2VcoVkn? zS!blEhBiX)->J%Dqy(?A1~iDyfjpOS&K-x8&{+<*;E)R`ZcgbS&8lcPt&ElybR&f6 zy#Uo?e?aQgb9)nXNrOK9vNEUWOq-2wxU~1rx%o{x5I}FiD#B92ooS1#KusJlw|uab zkh1SH<|KF4vb@c6B{?M0hsz_#hmyx)*)=`*0|fQ>?~eI$Hd)&P)>EIl!&xS={sag- zRXg5zS%<>`!Sxc%i27mo>584u6JVxSE^|Cv_$8SdljD5Iv-o`azwdeYOBmC;Jtz>+(R2fu&sT1_U~T4Ayyf><+P6^tFn;R`s#%<)LB(Ehk9bE2L2LC@!kzl8`=1pI zQjyia^>g|2TsJX5Dilz%JCf=)9(4xorF@9bj4$shr8W%MM6m4`e0szKl0yBTMHXBY z1fDo=6{9JF)n$EGy~pH`gin7#we57e(Lcx{crYDWGo9N-<=4hsdZk%Odn%_W6*#x6 zBGRKDIv{bOp!eWt5aW2;?~0?zutv(u)|rL0N!rX08U8sK@{L+ivWM^@BPzk@QSI{x z5$Wp1LwTbZL75T>?w9l_L^o3(WmTK7+zCdXkl}(AcJ0Nv6q_EceD*^S5q!;3SP7(M zB|xIAS>Yex;z*34NW&79s*S9?IEZaf$>aC!_(~V02R=LQC)h6COyf4qhZLwn;ev#iZ1Fg7$SC5*LX3xDny+RCC#$?f zvCK%DJE&WV-m2MjW(_0gnx8`;y-5qkxQPtk$#tux`AKE~mhjUCOlRr`EgPOjk4r$L zi|GS~=|RLKB0PJR>y2JIcA%m3g=cBs+Z?hoJK78NYo+^#G#UDcLDDn;#Lu`%8QLCs zx~tS*z~E65d0tGzu(Hms%-P;C;O6nom{7?brQFD99eA_Rg!q`+MJ zzbwz!JFPZCnx&`yoU#um-!+9z(pv6U^U7~Ysx0Wx0vqMQP>m>ecSwAtW*q(d2=mb` z$YUU0a8O9mlGH)h?IY>nR3PV0m3BI^slW~Asjnee&b0-$(60G zJB!c!KH$L>s2biut%zidvbvq3W5jt~*1J$yeeW$Cu%SAgg=3RrDmROEoO}kv56Fx3 z>Z9fSfcX1^afl=Rw{9|}ppW5WX0CcuZ|7?R0B^INB+s#lUBKB~zNKiqojGVwjdj?t z#iEifoTZ*@*FlDw_k$g^u1Hc2>JI?Zk(B5}ycEa;ok%AZ|G&RM=?x61#!XoY*S?e; zbY^G|jH+S9t8h;li4SI+es1SOCkg&JE7gGnBx)Fzl>nC zc-nSN^+ZT`Wq8<@nek_LGYr4|2$CuW}-6u= z#gcLTDf$fmh+5sjDZ68mbDIG+x%b<^3zex5m+#<*wU9uDoQHeO3^>WFl4`J4#?gY9 zuE+hZH=b@Ko<>KN3`DxK{9w%i95KZL2a{`rKOzPA3#Ft~erL zI9)?p#ifykabdQu(^2_Os~|iG97(x52>yf_2dZ1FFa1)pgF11hQ~~5+7_TzNAdG50 zHy|VdridYJ?5iji{8-pcbi6KoLKRCSm}!aRJWK^S;`E6LA16IZe5|Qt@y?VJ4&3Ae zk1?~ZO?cyoEo(f3e{m;_z6$R`oV~)`C9z;^s)ux|rzyp)MqU_q)9jK$pZy>$Q%d

fAv$Fo8x2{#>m{N>!Wwb<5m|{Fb{@`nji_PNi+UrbAP^{p|j5@KU?=Fnb zN_}D^xiYXO%aOc=<6_(N6^l5i+=7RTLYZ!`lq=T4P`3;y- z4YA5y5_v*ql+di)oqh><3mwWBp^W8vzMhZ}TJ}?v!XU?wy=nBpbuE8p?#131DJUV^lgXt`+(G z4GI@UO@hkmRWJ))wi&XhT4n5#JomlmlNH^)^(!bWJ`X!b@?ShWXh;>t-eB9H^ygD1vF>T2+i%2(3_B^nXa4QJ zcm^{249W1GMt9pD^|mw0Z}UDLcrm(Lp8iy=M+SM1%w}skmWN{@=AF~WKH1M<1t>
C|Q^E?v;M>$A-hoowRFcgp6Q8Uo{{914rKJF8eux}q?!nj&`hSidv@^lWf zdmwWDeN=V_i8FawZ+gJryV5%}ji;v~MDIg}YEcqc}?XR$J6O(rIujw-kJ^j`f9 z=HONCCNz0lz%^TT;pfZ}+Yot6 z^kcjNY9?0l5RT}^JQK=fR@2f;uqiI%T8R*kz6=6{Qlg&u1F=j_?>sl2>; z{pru7TIyfS=Av9QjOmnW2o7*4EI!wnPcf2XNwA(1-4gkeC=-jf*{M#)+7GmNn zMr3+cnG2`7@9!0rR&a@>V*)rSss-;Zc-dvt95%(XH&Zk;$Q#R@oWvJ^zQaMIvzzzc z6z-4n^v_wSrSdG;R^O*5kd`z&Y^!b1TeU23;*Dm++~UnG;N**lwy(r3geSa&R^=?X ztp%zW&YK0Re^L$cI_4={dPPlOoI_*;u}B8-#ppl?)=_v{DqFjT8iw7E&i314WEmMX zRxV|Hftjth`3(uIJcbtF&#o#ey3SHX z)HQhL&XUC>&S_RNj_NHRk5)3JBvu@5XrBM#tJqTuC7U06uyU==_k? zP@;~+03Gts_B}a`n;O*R> znxeBYwTLSS^jNqyZA~y8sjZX&zqu&T)$$VgT18gR674~Qh#-}efztv4t{q_v%G0vdmx3`kl)gIid7k$2+cR7<5>WZbnRk+q$sjRDe~{pAj^Dexv_tdZbx=+~g50JU`V}CM=KGIE{c0u@onNJJ_$ z88Ao(&R>)T9$?E9PLgl;sr_&x*PxOsx?U?L?Tu=v8w~ z<6?G}kQ0+(xTd`b$>qn$bR~aDk>3%f1^~aGBiiQgzs+SpTF-u$h~N zlM3Bp%BwIu(M--Mx%oGFYA-|#gmofDK!Ykkg2gn~U=~cLE4&t%n`InYSp8VG;MNRT z?yQR~4_$@MyeM0m1CqXLy_7>uY#1EfM5?m@5p~&jIN^nc*a#y?O!%NY#fTw-C2g~T z7WS?AU$zzhuxu?;P~@Z8*3%rY^h^UUG%nE0jHwG`^~mO71nB_p`(fl!*vc&q5^+p! z+`RuObP{V*o+-+6z{W2Sl-*^@N13aqfxem3bKH7^!!yhJQVDD3)T^aYbC?<@bM7@( zn!YRoDV{hJ1~K0MwDjA}?*KmPx@;fFC58+4Dj@qqG*eq==ld9{${TDAp}(ZME37`K z1q7kOY89tWqk@6g3(~Chmx~E|s>~X)w@w4~Mlr}kBv;*gw^BK)!ix5?pjx=Psn)7u z1tSZh`ZPdK6F^i_MQ^YF+#WFP!2}bixsXiYg{L*NM`&S;EOM=Wdv#9Il;1irw#eh+WB?& z=ryA(iGF>K|n? zj-L}~mhKO)fWtdxV^wY#Ox`%6u%bt4a3fg$NK2Lf*bzEc);48;w|lP1=gbIOTr4LhopHj??_k~QXM%m6AO&Ti@&e?opS|+K z5(UQ>Bnq%L>spXg3ww6vNiT~D_ULErlb;am>eO>ymMZLt3DBx6S$X{EHL4Q~k!xFE zMrJ@pX{0x;(B2#UUyXIh*=p+%Fa?->HEbfx5BZN2NGiO#YHFut^`fW>?+mDh1Z?Zt zXGCS>DeOQHPw~7(<@tJ{B$R}xiTQ<(LB?Qx0(lr%)Gs;a#7cgTUTKXg&AuvSU;zqC zE!#*R0Y;zfRtsJZ@UD1QOd;$~g34S$AnluY35nBK#1!%I`REKV0kU zw#S)b93I&6S-QYh;6s40SliY~UufiO?Pv9fY=vcw<3fE=+pI$XDK3=Z{>@gHX*Y@e zsOCh(k}$_wg(&gIws9I7)M!u>3D}GxMWT%i6b%Td`~DLuO=>%b1!>l(Vt423Ej^v@ zR_^a4?)UDf^a`6g)q86YoWu)mGuyh}IL280|Uz4$nhnu!x#VyBxlo5BTal>fyZ3gWQ z0T^;`s4F%-Vvm1uAGULc^`W6_=^f&A^l|b{)IfBX=1@XWcB<7EY31+hV~qQBp5g~_zdI?+`=owRL;&r7>9;AS4s`Rm;E>isuXM&tbRtZMjK-8fi zt_vxaO<_sfLo{pqHpdL-3Q#bqN4nNcU)_d3QudgoZb!qI&p#bGi3TWq&z~%j4kQ2o z!G8lzD?I}nhyS>7${H5ybjaS%HEgLo#Is}9c~Ix-9H7*chHwG&hD$unLxvNg_AQ+k zE!U!T3#1c6Y6RYOL|*f+H1YZUCzx!s94iVOr-dlN zb_x)yXN$X&hP8bk3wiGSw-$jP4czpOn`?`e;Z(AKh_W0YFZyL~ZHg66^+h6tCs z(%FF9H3YlYsQ!RWZb4f`|#M$V%M{|@1}t6{2mXv0h4yGOcz0` zC0IL=OsJxhs~6nvnrejIb|f7U-u#|_UR|)=_mqB60Dvz{008{|c6FVs&0K$O?v$F9 z%(^K2SGGn`{LmXWnj`{6aI?}~`4jD$PBJH_q8vwB;h`{O@|+_@ zvto)R1CQ&7E)~(k#YqNl4G2%anyx)DJ_qgX=~A(x^c>rw7#{3_dU6`%gTqfgtnx_j z9pfVp477+pHN3=zF$dw&$Bv?b#4X|BW6)Q9O_O7W!=x@igu+ikk;HDprN)DkJICZE zLk70-y(8^JPKT3;X&^H0R121?4S*056CK_;*w~0Ple0X%G5OfgI@E!?4$kF?irpn9 z_HiUbdo7VvOartBGyV74HLPQ$%Lf%ZF<C=8ui4Lj-u zbI-Fc3LuHj0p*qdh9FL*VL+Znm4ws9AumoR8&cpujvQU2iP&CA3jteHl=gFr%>X;d z-0EX4#9PdWoa1UC-B!Bs2Vm-_S1lKo6~`S85I~x=7&QW$lCNLR6m-ST$P2Kh*07k! zjIcgWjt{Yu9T?UAh@(tnG|D#T6I51AloceRJF-YFLS6q`3c8L0dCRCc`%4@e;%t#Q z0$`Y$#-sw5EN$o2q!0#bUAJE#-v^MqmWyOH%?s;E*1Sdf>my`w!7PdJZG zc22c|>UrwanTP34F0cqd*O^B&y$t}xr#i?92-~zdVAJpH_fJyOmEt757@$r)Q&KZD0x{4B=Btly4ye(>nKAwQUahF6qwCg_iWCp?do zZ+sR{EZ(w5&6d~^=^El57PsCB1AzCyWK>F2ohus9~d`Zx6kCOfJd%TrpM`PDB z+istgrz+4Cr!1ib({Me#tJ|CNlJQfpr4HLIC_LuJgo@ zvaK$QdID9W$O@}{_H48<$W|quySwwn^~ubHX`P`(BcD3|jUBrqA^#%XBx3`>??awz zVv^WXa+%N)>xwGR-||O0!V<%igx_c8yrI1XENBwi zM7~{XLHgiyD3VIq??1#7zHA4A{Jn(o<@g(&iLO{R>${g+>mx;vXbzg!IJt_o59ay~ z9+Gzg%ZTi1J0BG-*@zTF*1bGsgRJ=Tw?KrE0I_nr1UK%9<5c|kYc4B?w=4Gx5x3xN ze?dwuKvus6Adie~-SV2=O-(@7K~WBHG)Q2v6Rym$lroE{(bJ)OP7**8JtnkKuvH_8Iss-q9Ptz6x%bzy5l za5a)>r+oqWJAhp4eC%BUf3*!}NuQ={-T=(ivLhd7Lqu{~KSfL}!;Yhm7&PhHZA@1o zWizAZ)rFd$n+-0MvKVi|W)cNSXY5rIq;%{S};q3;WD6DKnn7kCm$W z3|zGTnNEIcLSODRE*1Ub)B_$(;y2;$WYA+%tuk_Y-a?r`(SEu@;d)>>pe-@uaxs>6 zFxEp27!0YI@|>6c}8qXH6?XhMZgG%V@_+2wih(R=O67GLJpTY$dmjJKHF zU%n9)LCr_g!*_Y=#;clM>!+YOBOdH0&I}EU)bX@JGjD@uuGD;v+hV$v?Ieg6 z22*Sc2Y71e*c};OKukd1WdM*3fjgamQ4qG-E^5N;8bn9Eg+6+PJuFI-`~q(TsEQvJ zOEu^|vqKd(jdGWsv`Y6m&{ zd(?Ar-UIg?1~}_L7_zapH(Y7#O?Q2(Rug!U9CUvs-S#?dOTEQ*yY_bwPQtzuZMbQ& zFaj<#imk|^YrvM&HSa(94>uV%o%@IPWPhIjnuBvTvUf1EvHqbz1$lXSa0zOP>B$*| z(MgF3+HonWUv)`|iLI@B`xE%`x3`eZkm4flr0&7uqWSnRy5ulKI3P$kAc9gf0RQ~D zxlPHbI@nKn5##^zbr&;hLmQX>?K-M`JFGJye{=f;(F6?a`mYpYjQ~<7HX3vk>6mhW zt~_8b#UaU!FvM@LK!3SxB^ZuOKles!+cXtDe|l{#G@y#n6Y#?uaU@WIgXa_qmpx-yKjaxz7qYE7CuFO-na zw9puo6A_S+X_oKfaW<(_N0!MS0LcXJ$+$9J%5-VtWj;zzhl!5vr;3R*;)_GM z=9-BID=Hw~qF;!dT@S05TprITCFe`~^b3+FhBo4bkKGeQn4((bls}w$pxo{5er~o< zy;3M_<6c}hX?M9kS=4xZ9_fBBMSL!Qd7ta{G@0P;YLXetnzpEL4@%xAI}U(^;fpO($7UW|6OBJMFVNeU>uN0l zsw@4M<+XPJAlF`;$wW{H>|k)z67eYJ!#@fdG^gh}OIu4@tJ8a(`?GVKS9$>ne(u^u zSajd}yMeIt31fi?9Ue|Rs1=*=WMv&e z^It%^43Yu-B6&)wX4MHT7lKTL8LM{ry>Q)SZG}+TBvc>lxm_-_kK`n(8?^z?^Lmps%%&w|BfTiM zh@aI8Ff4X?W3zvEMNx4|%gaR7XAOwk_O^-3Bs&0tu?2geveD7`+^Ibbl*}lr*HDYP z%JY{}#Y;~+%F0ZPpfJm;7p|UZi_rb7HLNEpDmCRbmi;J;r-#Tl|XT#Tx94Hkn7@xMGvy7-&m69y0`1FgaP|6?qhvW=b5(en1 z!l-YJLByFaxb1!60N`G8y)+tAm9l%^pdF%Q>`oruMG&Z3)v=+I-x{z=E64_yQ?t)^ zLYxdVyto%ppi{8w<%tJozpnXMh3Zy)?}SePCVJ{nIO$nl7)mE^xzQbmM1K_nh-%hI z+#_z=hj&iVa?>5j%A0RHDQf8e09se$EeoYespcax#ZN!Zx2F10XMUFVL$Fz$+Jl zy@;XL9{j=#Q`9bfp@W^I3qhz7LB)OzJMElFw-M7lkS7lP1qjIIZA`)Yj836T8jFqE z;1GAhLNEj1GdZnh@aF5FENp6Ypuuua1yzJ(t3Yd1;~haj36Rkue%#g&>zQd(#c|Xk z#_eM{y)X$wD*E>_|4h5u!>=e^a)%B|3C8C=wp?BW(@m0+Wgs&A{uKH>-u^_lXQ$4V zq9|5d(I;nvY>%Emgtcz%lMU&k<(ws+`~|V)#*u)DH1QEdgl+F~kaz(9ljFJk>YF*uluWqmfZWVv$KZ}j$Q_9M78TMQQm&=P2LHcnzyUy z%Iz`yg0Qb4>7dVr5+>C6F>kmm!kQ?BS3m7cZYjh`=ofYadvh(1yWYkleLjkyU+6!L zLzHiCKqY=%TpL9klcH8@;WXB3_vbOpr50XY7}j94tbmn|Qyh|A8vsT1O*x1{E^5GA z9kYS)yT7wYxR3==d$obV9>28DgPMTu=mIzJ^yN!~E!B9~d@rQC{J?YwzjCea_P4eu zUF)(2=k{d<@PP63837{{er;=GOaDp88Dq-YL!o6#poh9nqdI+nv4>UnzJ@7W^1num z9)iOa$ybAwNmwoFBIP*V@D!28$Gkz{ZA@u5sKjP$TCI=N#SIQnkE6$ny53+&>v(+D+SDo-T=+)`f;S%7fC^&fx`MC;=4s2K4b zd_(#mcFVh#*CzRp42Fb{1`I#>BS{c-DN%6)T&JpTPJ^hhAI}qokU)%<*}5@j)CX9-o~QtWe1*3Er=%3k{mbIcxR% zD_ct&dezziFGiG}igBj%;wQ=@k7`(AIld1fCc>P3zmIr!9H{r4X5`mF-wKq`oDDhN zds^_sxHCjHnuzII*dpI-@Ei-;Q4?n<(lvP)ionh00vw&@u9#gGzzwFMpd_jyH}(U_zxbiP1!<%6*0 zJUMl}vo(^jY0UO=;jPm%ERmUJ#=oL+@r(euZ{V)`wE6qebSXnUgZ0b57*H z%HQneaV`Adows9hI6Tr zcxIkafGR=HlPDqtxXZ=8u4p}qD^H8mI!7B)JK);i2bjve7uZrA8 z@rZd!!HFQH77UymW5lUL?p1j29IUtvV#<>E>kF&H7~8SER2{F3pC~Fyb)Gh{xkz5h zE5uYttE4FAq29L(ZFyvtn0TboKT8Ig(HuyS8Bi}gO)MD+NX5Dgylb6Y&MH_!Z#ZqE|t1=;e1u`~RS;Cj=9S_;XofXhO=Mo)iPL&6;MgF#%mRz%bv ziZ#D4Pnd5-=u&|Ny3I^9K)m+Cwj6dzK|5&H{h!5b!>8axR39kSR;H+ zlNv z(wUCmHB`{UDX++v!g9L>*ib?Tn2G3-NPhM!`vA)d6U&#oS6*tJg^G|ph;Yt3a~|9j zS*`e%4I7tO5>d8ySt5?wkwzNv12V%o{mBE3Lqqm9O%$K#tJAJ7?ie1>5QigRjX-IX z%ktH{f{Ap+&{bBis4I2~JcH99S=a()PPSU)8a|A(w&b^dGHlKyx%G3Zs&LpGC6Z`Q zom%^~;eXhrXXHY`nv40k=D*5BYN@D)-$JRp(Wlw=unI!^?j!5NvvIt}H6m-OxQ$RW z>_`748C4fT_QHGwTHudqt`HzswWV|cU6NNGX)ijwVen7~2;0iW%gd8`61KluTEKG? z`DV*SIeB1-(VyeU^MY{ZgXd)EiVP=%;QR)jtE`j69*`3H{9Cq3?2oHP$xS^cSCaE| zM{o)kGfnW6_D4}LJElZdH_;s5N~xFI3IN{x>kip|f80|}Kvwyais)4Df+&LbuGfM( zmI7;0ycbB>kLqmHo+1#KjjWc~8xO}7!1i@<4(8GKALVbrfAZ&*;GNF!PchjW3IG7> z--+e_;ZJ=%`=5ZiNr^vZT?o1RU4_f3Nxa@(phHtun6fi0p($~-&$+q0T9X@%+LgD~MU&4;U`0jwj<72@q!;f-a zG7X*uSST)1b7AHJlOI=*KN3!XAtg>SI;8*>F+pJBailgfyPv0@Ay?F0g)c&=d@wBK z!5Cz6QD!g76q;{Gf3Ywu0)cNRh~9xdhyyAyJA~7ys=JsVBB4&~J}+ROu)A2SX>+%9 z{E?$bApiz*MUnC!H4#8iCO`aWka)zcxRpB@shiC1??GFsS}ydC>9i$A58Ig=TQ4~1 z4zjGsFrTy5*@n)m*;)}?^Z^3=ac0YH2JS+4{nwJ6bf5v@zySQhin7Zq+xdnIzd^Nv z+u446X5363`AEqYk8rHvFy_XO5(d}pJFA6z4$)uDKu2k2?>kwL=`dPkq|ns+hNc4B zc5!31IsU9H9m({Ia*YPAdhw>X|i#Ob01wR5Y zHVh9#IB(UA{(1WlYjn4g(0VVy00v*OwIxK;LT=TvR;vQCD=pX>F9y2X%z=>W*w9se zW-d~{oCm`s9v{?sTf*)R;aFH>=A=}wkrMcdWtAy!3J;NUR2 zSDTk6*EglKAkBisog24Y+D*_-U-EI zUpDT{qJ1-lgSVz8SAMKke7}&~zh${;SqqqLI-#wU{ev>cuA$qOX<9VCrGH?ctEs7` z@kx34a%yJ1$?5&9xDIuGL~3!@OL^z!SYSH1QGOYAyF$nLb?YmrMq-Vsn`rxd+xbPi zr}VYbaCj6E31M)(EkDlmSsE3L{mYP=lM7CDddNnx!A>|~Sj5CI!WSueaSBkOP|z=4 zC;6#3Z!2Oj^FmM*;LWRM(q-JUVp77WTkgohNc%TY=y#q$f)hHG@e-kVNmEH#i-to< zhQ)YktQhi?j)BHI)Dyskz8gP!A%f@zbWXSpS>C~4{DC_Bf<{>(w}9jwObM65ewPUn zr7H7^w2IyQ#;+=hAcgv`^9MQkoF=?Xs9nM*PLr8RU1*8wa9P44cC?@phI{m@iTb{u zHAiJZJ&059?n&Xzo_7q=6^}mAKZPvjnJw;a=cA3DbQ1%2DZ>EkXA89ptV_rDBZoCS zn{L^opTCbkvNH2lI&v}kGF`Om6o#+9LM*Xd$4h*bOUpT1{y_RC{KaKm#2Eg--+xNN zxc`6fXJBJ#WB;F|UXjwZO#vJH=d=#Jxe`LP+2WLSkx~aYj+CgsP%cA!!nG=)m3w zAMAoGgT1rae+`yIN)=XG#Fqx63jivDOR3Y{>gMSn1IS(Z3;zbI9q2-EHY+hq!(m1L z=%VX-9;ejpz$=hXfqhWW20c6ePIJfV2fCW(5e+=m1ho6+khpX zEgaqBq%OhjOb2n!_plYf?q6K)EEquhQTfVjAUTjq5*rr(<*3F;lPBF;C}xH}jDO=# z=kIZnYL;fmJ4KV4Ik{A{6R1d`8dq;vLm@s9TzbwxE=q!gVq5{t4{G^6xdM_j*ckcS z`ze!|nUdKkdse*Mcf7DLEj-;^+Et8l{%+yynB@fTPPtH&*lVsgQVBzBym>B?k$|pI zb|&-SWh^DqMF{O~Z_5P5ddm?Byp19(x=Le;8ZsK^>t%h`g=r*n-Ac}@f<>OQXuZqY z(OAZ+$$X0+@5Hk^c!Ih5kKBR=87VX8pZ1BS{1(70m*FH2i#+7q9!4qlT_!ZDqvyOJWqy5e0|%1=f$nsh%yKB3{Xhflfw` zZ#s1+c+;}?qPCz2((MqPYic_}ENv@rTK-ZW7}l+p9#AO3tTCctu|A9|S9qw#yvn%# z+3J9x<>bY=8d00gCIU6kw>dk2l??6oMLRwVz2rHLRlCW*n^b~n>t!OCMy3`koY8Bl z`9{D0a7E8)n_>LLk0D~&3R?(&h}gtJc0YM9T%J`AXo9}1A>*%lR~ND9CeyR9X^yO7 z&I!Dl)QEzkes>J`yS7sLHB!s7$71Y**v1WGyOS}nL+t9JiQmpmEp58b~O5ri`Jzm74y^U*LAJ}UH{t>Oub-?96UW=Gp!k7 zG@f!C3z%QmlzQBlC;?FT(mCc+9Pj`h*)-uhMJJxXs3rsTxBc((fIryX&qq_L2N;># zydhCEMSppMr=3a+Fp6B0vKKdBB->~G6&V?L+8=IsVC^B|k1XY(I5{I8h;QkwK ztl=KNVbaV3G->1?dOavu;^<#$7-IG!?Bd);uhLV6#CaQH9ASG)fh3GG1`$S+ zwWDEhr^qCzOc6(^_-ItduZ%jL<9C7fJR%UH^0_HYV}3JPlRBPSvY{Alq2!Va&`F|q z&@b^Kk%I*3)24|brM8}eB8jA#-aP`$gS~-Nqmyf+T#vPmT2o@v3YF=4Hl8TQ)gfld zH2BhO4KS3_b--g`MEf7JbZ~Kh=CqGA69zHD?UPAiV}kA@+0Y=ehAc%ALOIOOZr#!e zY=__i;YEjAE7Gd(yhY2-1y%i&o?@*w9=Pyr^M3oj1F@>$Z&Rv8xxK9Ik^@$o=+k={>%S8@&7S**TG!ITvm|MX|s~4O23YO}!#F_0$Gyzna zx+C0M%Pr!}Vo?l@%#!3&^DHQ{&znzC6eyZ%*C?T6*4x|Hz1a7-~L-&OngYMELF?e4X&_0z!qi#KfEy<3{s-% zUpN?U=Z&8FURr=oTURD#2n0eNK{PSaZzfdFZvxyLXI970Dl?eg&jNB__%P(e+VBD~(HPL+b+(lig#m^9cE zrJ7uiz(FZBf`wbHrZfs!!!@Iklt$lcp{6A842Kp#hP$I+!$1Vh736*0cr1851l8ef zkP_no^k;1ctV^@$@6PczvixR#8TX9vFRLt*s1qzXR1d*-(Sx;uyh{69L|g%KiV+Ow zL(o4*%IFDILw-K1JdW!`6^Thj5AFjsiIs0?9_et;T(k#=hgmfpt#hj;YL8W(w%CK3 z;R94pFWYjO4_jSd1JXO2=i8hwRRKC4DStB3m25s@4+#X95 zy4@H0bZ|PoY@Uy@&o#S|4@0b6d^k_5&z+woz<4=cPVvBaU24xMuDA5#eEv1@6l!^C zANS*AxBuiA@c->(yO~%SSv&qCN582gWwS2w9~P6$0xI$^=7r@3zafy$QuoCItJ6RR z2Q(9oF02|O>B3816ZG-ezKTyQYX1d^Of3rtC^|KrQNwBz6CEuQcx=#7t*VB^<9(ey zmmO9}z+bGS%(Wm=%}U~}T+Yl)=mT$2T$Q|BPgu5N$l5ec*gq+<%}lw>@Qnm&p}xeC zE-W@(8v<`61}Bdae1?+dZqy>+(91}(9ZR=0ro_jXOqnpR%!3c@Yu@pz&@^5CsDE4? zqaI67j2_L(1>}Fe;Xy%)cs@WIUE)g(}kKq5!F= zk(yeguoe+fSgA>&c_iW`&n>(K?DZim7amdAZ=TzH4VIZ)g?f%`QGs)vZQY}=n;#S- znObZ6+cjZ6s`Xe${>|~5r>G;xM|8l_Fi7@SWUy-96rKsImwE49S?8xME73qqw9<63 z1Rtm}8&NXJyIJ_GGBz(wk$z(#O@ISkl6_gwmBUOuRVqN;np9*?ZBRCL^ z3y4no#aB?qFauzzIvOxDGdGJJ*VI`W*5^!leDtmO4qh{9ezVU^PuJfA`=B}Dk|V(6 zCM?mkNIU4gu90q`Ou;PAh>gvNiHkkl*bK-f&=$;p5S5`j43RIg?N$nt(@&;2Qxm)q%c=O*^WxqTG4}4*eNmJMD&msi}qBcfk zxGH)20hFyf6cxsko(yBi`#2(Q78kS3OGKsMbU9~Zhp;7#Il_Tq0fXS0W4^yek_B)o zO{=QcZ;NkZoK+0$Jl(UqA}VS092U`$rbRyWI~hbHqmQ^RTpA)+m8>28Dl4uo4R5`u^jj$CjUzMg?cSl;zoeOrU{ zaY^fiI;%_8cJ!B=LmI@ar{wNP?ynTN-e*b|QsgwHy> zVi;P&x5B(`th!drRhpe1mAN9G5B&Uq%<2>7^`rR?NNf1b38ajeDY)zYk^c=**g*pi z@Qz^&AAXexZ~^e_;fF5slnWMnq1#TYFAW?CDUO&KnK0?h!R+WZVEgi2xeo2n9HBgT)MudY&ndo%Z*>h z-}tajxo#G0OBmzwM?0PvT7PYpeDT0diJZVmN$TXGtP+c9TYmyS*MM$HD5G8?rY zPDKu}Bop^bW#55MM#rc^DOLo!qmGT*l?P7XYGT+fwTjiPQx(j4}pddTjzO#b$a-=fysq7}kyACH2$xw!o6t?fvZKVJ~&6Ayc>$ zd{5{F3<%&GU%RTIQ#WmPd$9PeohpKDuE*cA4%WU8?#Qj#zX>n=olBK*3G)_Qmm@an z-1SoC+7;8NttPC1Q#y|T%`REG1Xlwv7(#!Iclrs_ z*914JQQq%6HZ92%E_@!>3s%C>`~v|=B3xqxt_B||yESrKJ(LpuJ^D|paRt-hwg+Uq zdAc!Ru2$gA?d(s$)Ec*Lkh4HufOO0&5ZYq?c*#SB81IGWQ%gpvfTUj$xM#u%RH2Hj z{tmcg8@Ny#g(mj?ZkcCW1o36dok;RJm2T)@!SkWV5Y3ht5Kxu=`Mq;u0DyTT**h`& zOOb!@QOFR9+@I9{7hUJTBnk{>*|u%lwr$(C-Tm6uYumPM+qP}n+&4S5TQ##g{~<{w zU(P)je$9G;?7jj`66CRys6e!}qFIo;GGDg0BHp46|3S-&YGZsiR(Ms$`RSQ`I(=_m zFL79seE-Nen&^8YJePtE(q5J{S4wEXP4+V=C@5@pJxOMWg?Jdn4lLV=5eHd&FW&(9 zrPXh))_rCH1_u5)4)-qcv0zI1LV9-2ND;p-rF!NChmY!a16Qs34YIK*Y%wA8?>fpA zMqoZzbz++X?kr{oo|EVqsrt~(GpFgH$j|EJiYLl@37-gD=P@??&vrmj+Pu?u_+dTz z;0@st`j1-;iPt&izMnb$55mKreqXqRgv916e>ezVQ3l;XmDF}orVK(rzXf&(|IU?5 zW&F%=)^>%2vl-j=IVEmG_0<-OsZLShKkN&Ps|)j2@QWPAqfJZwxzxq#LY%F|hFd40 zT1(=Mxnebyq3lE75ha~?aFzYG1I;A^#k>m8tQ7$zCHU?wKs?$FuD7Xz`-~t0h;?Lk z{;aMBiIC1?P28~25(v8~z)qGuTJl;8xLpCPnkhCaX{Wve6l_vvq!rn|S7y{=Uf5?dGHpl>Q2C)))0LZUa zd{m;|3=Z3bHFQo9hAvuBasjOQ(Pt3cv8Xq$)%x)Mz1vNogIVxOBo?66QX|Jmu%BSCH|xSKG+Cva z6!PI|4^!*etms^|%yPUZ=Rgb3^fsfcDni{xEh}B)nc1Ex_s`#$0|fb=cvWkM6cw!` z7sWXsuz|ev#nmu1;0yNf_iG?g{t;gFKR9?GgA6EH)b;R0KK@-_D~ad(aqgEEs=MeTB+JN1R=g=WXD-y zcl0~Z>@na!LU1R+^8z>O`O5vJBb>09oAqdh@r?z-)Hsj>6Me)yih1`-cE}UUSW7CXADF~{mt{PrClS!Hzi18N5D@?= z=_845cRMk#;C^4}XiJbty26VIa;YiE9(VF?B72M^cy1J_Xr-0;G*EAqOdQuF1Tm67 zh+fA~_UNrj06PUwL$JA)0~$pazyHmZ=s%SeBE7!mik5&)@PXU{X`?lEJ%Q$Jx&Cqi zHU8Hl^|4u~X`hktT+&RsG3R+2{a9Ya#{^&bOT#v6QqJ0YH+*HF3$!{x6}6y8%Qe9>`qD&E&Ok@m7UMqyUa9t)Vl55W0=O3v_&p}V#HeAZppaRY=Apgvt}?K}5LvBr?K$dWIFIN#(_ zfi7sY%r}bG!w=AiHYlRthPtp@_ltVPJW$~fs6VpM9m8h)FH4%nIAfO?z#iLof?S-* zm%VmxdGmuBKobK>DC-gJU+QN$VB>M+7r;~46(U*}pfPC^h^m+YSAf+2o=J+AylKfG z^6naAlIQViHbucVA|gXqV4z2z7233N5-gIk%A#ZDSn#UA@g{}<9<*_EkWgt^sF>6N zOECufJ}QevwjA>%UA;RBEnD?Ar5SNx6zF;PHZAtnl`(i;YBqF62b7EWMmHOlCZ`TM z;)g4}VMRB`NJs22N_E9;q|txnd;KpbZ-&#lvlj(bhU+wJ($AOQ*e%;vvDvUJ*TG(j zB%XsW=miEMNdr|4STF(uZnNjeOwdVTiQ|&LHLUWlDl!}|U2b>=)_=|!|9mX^@bw_m z2;b>xOC{b~%ikBe5}5=;6f|yj9E@tL`37?(4}ri}KOTwapR7=|TZO^>(#Rxl58Ocr zmm(FhL>46-q-Karv9ohQus z=oB4)9=haU4O;Krz{B1cE3CoL1Vs`PicgxuA>#YiY%Zy@42+nCm8W^i{30Ct?$(Y2 zyF#89qy?nijLxTQU3{&AR84yl&;VAEGP&~RMf!!lw8$jYd%=+@f8bwer%&8!Z^EnK z+%sA!OLLI`lT^u@qDQ6CbzG~EXVJP>;~0{=Z}x3DxHroCDn?r{LvAxuK@Y-&kcU$*#Ke{%f3-8 zOMxiQ2Y?)9h^a=0JV3Ts)_~B($MGOmXgS}Tkfe(pt#~()f>Al3jffHck3I3#KmRNx7kGQOknh6oLJdFooh7jt)m!f=`_3g5Brr2k)GC$mvUVf~ zv?8RXy{nZ9(K|x0imD-FVpNjgcx67NY{-skF+4)TkH1+eZp<~ch>Gd?35`-D^Um2B z_DGosN}4=;y}je9@jx?tQZgm4d37t(+PFLh(=2j&8(AG z4C42%hC3u$PiqsF=3&g^GOa*t$cJ@eYz7&4;uWo8YG9OB@{o0%)!8ye1_g^mxXClL z*C8dKHv%nFZR!}lE3-gZWnGQd8ssXq-?ntNMrC$#3d_GSf><1+8Lw0L8_)shWEC_g zTu{YKc%V6e4H7H>qKiD!9{L8jtdIA#GkUHrPNBVT2Ds};5BTxzst}~SN*q8!#o!oB z>PV1=)MHQ&HPU8|9|&BF!$ty6S*4joImFOsCPbhCicsbp&lMsWVRatdw>|qft&Tge z;;o=+xHoF4GbD)g&pKIlHoAD>xCqf*JkBNm zH)M@S7xe=-^38qLnF{i>uuw|PLwt5BMA*yDZ zYsl!BScnx&D2&J-MMoU|`7$x3UhWMCp7uJtCPy8V^8w1S@O!wKRfjC{nmUti=4u?0 zXMNUT^3^90Ibpx;ZHf(|I(v?aw^QE?QoS>qU^-9bq6@(6QXSq|SfhCK!a*Wl6f(Ei z+k!2jB;t>ji?q9sipP%X-Ktuu`NPeN4e>Aam4Z@3`$n4MyOGRIUw`I`4U1c-wj)S7 z$VAtf#Ia*YPBwByfz2ojmuzfiGUNwyP=Bk>;75xp7J%)#Qv7R8B`vBp#&hXG`BisN zDO%K|fIpDN%33;kv4*QC{oDLiv7DVbg{o>CCGrQpH}hm5k7s1+Gm>R_PGBQzoI>S-l7L`VAxx&KLJ;pQ!*4=0~HYs zTAD%!@m%Y-2D|82_gS4E*j7ObQF4!wAZwb&u(%?(cf0ZvcG;?MR}dTl>q;cPfe(b} z3g!`rZ?!duE0zSidm$^xRF#iFF!R=_BVjA)GHNu@pq`rhMdhlJf@$CuQi6+TI=z(0 zPnMRB4r~{TB!DltJg#VPrPI>qe3>J+vr?-3IWxiXIPk+ZvMytQH7HcxInnGy^Cd#L zjQ%mTDI>7F2^v|Z#Zv{1)KVkm7_5c6_vkXuvtx5|1;9vuw|L8er~~>D^6Amr>f!5( z8A*J9dtR84@ioxoG-EE~E5CHkq!V~P8?*cu;b5Z+OR*|rE3q_joLgZC9g(K70Em&r zbW}2hg$5x`yw}rQ!K3-^Ix;y;DzuPMIWfak1{#8S^W8_eZ=9-roYi!F)b?NkvI?gK z&;VTuo7&kR@)7!o+(ZD)JiO5laC+>3sIZ>7F8W!mt!tOB7f}28vc~eLj<&@(_8;0L zJu!^y@oeoQBqL>$RvuMGKmJLYqN5NF-DKd5K~+O(hEk5CgTth{jpDv%vgH#8(EAXQCepA0&}Mw!1`L{05chIqN)1{T5j6>Tm>{3$v?i0~C>(JFIY#@RKSMl?;U2EO?=M#_Ld})xIp32(W7hEd?~t$EtgEP3 zO3YTQDosH&w(k-S3?@yEc7);0+ZYf#57QE8&ox0D=snw~Z-g4v$b4q(h0JW)GGlXI zm$LOB0E0Brb}yv^9{8v)BAk7RJ)%ZTm9%BCMRlkeVkU--<5COmOvo95uW1bB6=p1C z24uk`nLKnye*XKR#f+L~gwveZd!~d_P0!U>^4&iWkgA~ZJor3;2Aa_Z_;jk8B9UBi zaVIWFO6}T|TX_NeS|9$FS|Ixcc7HP9YT=QTV|i7Fk5A^QBlvm=s|B^9vMzua!D0xGY3$(;f4612eh}mD3vwmvCGroi$|2l z+ezUGtPGw`Obd2&SgFyWT^L=Cbm;tP+I9)Qx&hEXf#@Dpqm~?UA(BAuDGpG<>+Vfe zM$Kyp8R7hKIa6ATulW4?5MH5}u-&uYh&Jm?I8%2})5MG2-T8yI&EKoL(1gzu$a4?u zRR=7m#V^1iA%NJBE(LDn{XGNxsD)MF+ua0iQG*=Vl^zQo2XokTDT`1@6|h;5R550^ z#tFB|vYtz%8S5P^11`$B81Kao$kzkEv)4n`5!T7qTpIC>@m`Flq&wG|8wXTz84oEF zU+e(~sYIQa(70X{$!+hFJZ9=$0M`PFBK$Q81sd)#MH&bSgMFqMcK{-OQjsz$upR)% zUIxXyWaPD^O|{<#GhVU+(Kv=Q@2HcW^Pywbs58=Bjphs|a>*)w*h{AAhR#{@k*VDM zT`?ejnlqBlO(}vMNrAAQ?mJ;=U74%yzk>uCB23lDRE`|~=8HoZB3_VyVKUK_?@Lbl zmmC#axQh>A54nsC0)P*PRF%)srvdAokai=PHj6rB&4<|?c}UUBm`njWechs)m-?!n zTG7J9B^o7TyehDz{OFY!g3<*mq;yffur}twVXBs>T{FtnyNXF1b}Zki#p#x9OJYIt zu}y?kA)dHoPK?j%roJepnYE_wkaJeRUM^2TZ))r5{2U))B=2;LFIzs9W8jBNc#UDe z=Mg3ho(pB8sx~ctV;~e6gUAx6sppPa_0OD_){XCo;n?m;^ zN8LVYe_f$3l&=;Wu7`VOFIy~$z%5!6LELEz6Ilu?J}1nWg%)j8Ttz7ISjrwc`Rz9b z=-4t8fzWCP5alnV0pcttop|9;%3))!-JegoUC&9J#FSM(%vgnPlnRM8FgF4$%a}mo zjg`6KNP@B10GhU3jYdsowL#cDgE8hcH@yg;Ffp~RYK_tU7u#k9cXvifwffAypTp_n^Jz14QY4OxN5ZWui0l9U=#9JXk2k6^!_U! zoqVrnzFILu?%Nk8u3o=#tCIdeWBi0;#_Lj>>>2LeUH&@a4XJAg7-q@~ya6Vf0(diS zvhdfzmw3kHf!of-M@}Sqvknu!ClTLn_1&_P?y%<_;KXmG%Zr8QQg4)TTg?cl&Y<7@ zUD6sH0wXTO!#x?fvv=v&p)7U16A0C&;iL~eikG1iJmpH3PJB&N$gwzmycpKlm9DUb ztcPo1pQrZiq={(8@OwW7!m;6eB*gwz>b+|G z5Sk3X<-@BVRq*yImo~_?uSA%SEBzNf~jzjU?=u z5FT)FskZn1P2qBPC=nETW@@}5$Tl0?Crl*0uq`i6UAM)DH@LYHww@bil;LEo?vL7n z(<^fEvZ)TiE%d_N-EJned94KdMgOmC(V`{7R@^@wPX7OoE&9Lnd3!r&dz=55&ljuM z+AlKvhf>6`fu&ftGr`4pf$17JiZBj=04!H(xnsPU_0JWRqXjcaFK#c1B~wIbaPN^` z&gqS}8yw*fuusb|m1zEhB8?~=r`BPu_-NzGDwA}1poUYrArLB{Nq$QR*1zD$q-}cr zvX-cWb|eE_;AEpC1Dv5^pcb)rRYRaq1{|SyFuFcp@B7`k@6mt*THzRDVCrja*6;S_ zX6NgxTU`<+Ng2iA`xx;D8r})x7QlN4JUVjq2vfffw(pnAL2z98eWKPhgSe?}C?|lE z?;jt>Ke!;4(>ZY=N0Qh`!Ip#iN@QGL2Hp-Q5fLJ-MTh+SZ_x1uBk6r`dj|j-7N;eL z-o6eKx8h@|B{#ulnd!LE?VXUqhp?D|J+?-Cl`x7J`64sNGZN5x1ehDXt#Fd(Qn8^} zB05U@V@)K=v6+Uh32XOkejr<^OtRpEV$xTUEoEm!7XyWX|#2cl1&n@!Va> zL;C_C-3>PNDls=UDmw7jb!svtE5pfYNF9JaQ!;44XM*uMb;3^=Zrdr6@UBYjl0B4ugPFc5gg_QH-r*-?@uiEn9q~I)sJ)et= zzJVzrcG`8y_!YmqqJD>3zOKHC?~)+%il2G){x`u z+WaRcm#ivnzsUg8bE=Mj8Nm@^?ZSIyK+xC0R|llcPIIlPYQu#{pdCQM4jp>k8tb`M zzxbk{OQh`W`!yz0x(GS9ezVHTwqlYTht{0>jh!2g?yGJ}jd&HRjqt2iz+Pw{j6}U7 z1>G--_Vg%Z`>IvN&i1$R1`7T3GhMsT0>ekk8ul5o*JDN7kW_3< zE*I;d<>Rw_lu=QF^NQowpR>3a-UUp_unaLHzqxpQ)`?ydL>cQDcHroU`t>Z|`od4_ z#%_|kFI~}7*tMuv+wc+`n@`VSta_ovmS)%#AJ zbSqjIzL??OlFWmDbS5<=J5hu<{(?hSd{6xu^66^v@d?%C9G_>yLh|B!|8F1K^<#kg z8UOek(|>#p;s3#RS!GHub^sAJdP-{>C&W^6H`-6*z3olm=#$BivFQ>7tz3miE z!nIj_Jm2n5Z+#JFDK#N($LXEjU!+^VPnXC2mmlB{)8;!Js=M|;5T^C#5l^*rEfu;+ zENiZn$sUT_keX=Pk*mPe2-5SyyW@Tg)r_6rzY&k*q+2@Saub8)OI^sCYAHJ94JO<# ztiK!r3H)Z7YLTJI6KSP$;>E1rb~Tj3>kQ{bt~r-f+X6W|CDz_mcl{Tua*5eCWWwZo ziBkO|90k>?6%Wz#vjae9Sssrh3X?!zcR;3Zlci8Q&w5y}LaL;m^cR=zUAu{~-@Y)n zfEND{KG6T1#~=0qR&w&8^|bF;bka}%ce{4LJ(x{eC`nDp^nw7*i`$7?9*vP7_FQwifYsc zgy)1<(Ua%rY_N>5P@p7qx!h6ZPIH>SJR;()A-XI@j>{FZ&&?FuG*@8Nx}KnI z_*sp$=E$Zt0q%^%NFaXO%xhQ$mmxR^Po~Rs9V-YaVFYJ&PT$YeEz+YyBULVBZ|kSWKGA6%X-a*8vEd>eIS6~sbuUD-jq{2^C%Fy}`a=@r2^`;$D?*MLvqA? z17W{o`vSJv>pFvms;dGRPUa4(kc);nVxCU9>mVJN7HKk*=@2alP+hpBc3Tk?Q3*7z zs#m#mBn`~|>OB1;{xbp~j%?tCSp$+m4=i9&B!pJp`;soRVjgHGmG>W} z%`AaOp=74e`wRe^?$Da}7u@Mk53jD*25@l;I=^H*anhMX_HkUw3PV@$n)9_&zzld+ z-WefI=j4~2pg-wz1%=y?KU=zP^C{NwL~{Q%joAn4ZbgS|#Mg&>c#L`6O%Kbz|4Li3 z!Ehco#_4THL?ninLzakw+tW1zwT|lY$-AzZy?MuM&cgt5&dl3u9ED@cVk>3k7QzUE2Tg<$lB0`ZL=b<&QpTb@AhWTy-Q@Z z{zU#$#l2d9i-Yy@+&!MayO^Rw1ufC}Fr&rGu0Z2w*7EbzfIH0OM~eupB?%@*l&#ty zWPAhv*BkDPq2;XHzZ0$B8vp?Je>&J~Ox^!C;d{+%ZGSl8y8Eg=)od8HF&5SBu_sim zY{QnRSNI9hkjdu18fW2X(kLBIC0SkV<@mYjrT2IsoWL%rjY1k1O)`_k>3lNfG5dCQ zb`~CJ-rcQxUQm9h!+#dx`!T!cA=K-WyQHOv+&q@pvGQk%z9iDAySibs)2u=-E%su4 zeZ94Gb|xpgGPBz1rs+d6R54mk4O!K?I_LM{hu+@L7o9ncNBgW`Mfv%=6aVeIauS_> zx67+M#k5#yn?w`N7!PnmzG1ne3QN`Uv3zIc#5l3~DUp1#LZ|#sON@E0OMHr|O=cJE?#x@OXMt}KyqDK%$!E1)(c_gFH#HK5XPdpU?^4M5dqc&9Rl&~XU$cT8 zppd=EE8Z6Of4bzr2Fr#m{GSq8hC0izuS7x#(!Yltl%Z&~oY3fIv|6#rAECYozU=z#hl-(p*5Ii_l# zM(YFBZl;Ko?+EPX%bkp4*6DlKxeu%Ji6|lAhzk4u{-M*}DktfcZ(*%NcQDUS@knR6 zP)@K{IKdz}1D27QHVf&=oi11gdZEAR3-18b1l3pS$IP`U7vrNN77#36^p87NT|2^p zSl(b#ES+8pL~x1MxTh-;0uoONLr>YG)mpqI0Yz4=eJ0Wd8h$8h+a_t{YB|944X#d0 z234|C+(BE{Z=Q1CtIed+Mt}FVoA>$K>n|c7_o}K?R8cN4bb#K6`%`NzS^!Y&rdGus z9T6N~a^cfFf4KG+7J3&DuJ;)pU~=osGn>Z68Unfx_SraL)s991k)S>>yepJc>5bYS zP|Wcxun90`0?UAcxp)R8EfF`9;QGfnQI(4{aP?TKNpE^Cp!sroBFdlOwsC_7h|jUg z|J7O}lmyg}J-g!Zt&%*@Cvj`3jtcJ~Rr*h6Ko;r8mKvAfHV855g-yZJV8$3&cbx7g z+QC#IOk_RY9&+=>Qgp{WLj==x7_ITn*h}jtObX0~trda4jiR@SxEIAAhBgBr54YvI^g<0umyhDMMU273>0Ts&wU%jqMJs0y|xl(6-t= zoxrr6YyJeHdN7;h9-%;>s4LCa04I@V60IH{gEp`y;Ul?PvbzCc6iR6_h zweIM$;t#!-ts%nA0UZ9 zg$Ye(=g~xVZf+KU-9g)YU&nd5S?^VnVS8md27y=^1kK7pu zU8L|=XRf0bRSI?=(ZUELfn;Wk_Hn(#F=CRZ*tI*sMbrl9(WCh{WOD?L!&tE(Yip2pkX9;6`DTs}{+`Kcv%HAxAAE#vZ7ObijHgGe$j1mF8sC9f7~ZGvS=r1N z%(>hVdUWlanKOZEwC?^$o%E54hy7yRp=Mxdr+FL-%bZ16wcJGZUiGp7-Zv{KqAVIY zs0Ou)yjm2uilAE9t~>W|Sod%@l_t8(ea9sP-LS4Hpo77}UzM>8CSW7FNF9(=Kp}u; zJj_<_HBOC$bigQQk{h$UA2Dk}Wr~wP*rvK+1oB8)-EUL+$9>C!FQo)Rw4KfQXZ`NUwG{n#r>k zp$p|paYOn9Bsx44G0;Q=jk8||Skdg@kE}Mo5p!LGM~9p@%<6I94f9u{JBrj$+Jwkf zzWe$|fvGpGv7>iV_Y4sR$026+^Ed~==Wf6&CJ@u&Fd|W)w_8u6as4=G3WjtSt4j5K zDFqHl!&u`8Sj%b~I=+!$u&j!?8Db4}y5A&5CSUFKfnQbrq`G(Il-FNx*497Dwr6l8 z_$R>`DSexWAqGYOg(pO~By z%Fki4!s+jW4}Du4($15%7=va5(x+DxVQY{#2SF4yMpKL1X2&DfTNoHo9=8a*aTK3T zif20xtixY+u=)_|8<;0L*H~=xRg9K5h~uJ@$oe ziD@C!YtaJ3o;HGpHdMjNplh!?gbg#!E4aE&K@T6HbkRdDXww!-5!uToTh&bS%yS-6 z0AB})>~LuNr4}GpHStMM7TusMxgmaeAanoTKSHfrO|v^tW`{PlqncWKuxH?B90m^C zyZu>9h|LdGaP>HjsreS#sei=C8b#tb%7ZJhL?A4?x4HBNj@Z}}+A=AiD)R?1+7KW^ zw}!3;-4mHZ)W?Negl>XqBjec^u>DcK&5$mC*-f1-!R9H~0oiW0rQSuJ?Dc&EzN5+B z!vI@8m3oLXmajv4AiJ$*D94uy%qj$|-YrbCnxn4#LMUO)89(@!<-N492*+dK>fUv7d5+IAKkIn6UvK za8||-h>2$ErC1VdPny|35k&^fI38pea?{V(@SzxNoqPz-NBZm1fq^>5fiYp<*Y*Y0 zD8EeWh>3%7-x4FQ7QDd^y>nZ|?b-TzP%VGrnGyTrKz8L1g7svmz#k*MT#QvUrEfwO zeS$GWXeW9Si^bICgoyu6`Ey#38v@}XYPvHW-VX&a+^}DUo^0mhS%k~?Z~86{_cu~N zu8#!B;Ad=@%SoDeXwBgGkNIpFk2SyfS&-5qrA>3ImG)i&1L($NvADDU`8isPP#zB# zKl)pM*t~P1IWMD{v0Uaw*8ub+laiz40VKBou`Z3Aa{vMMSF$W&P zeWXBV+W>;diY;$~FSE_81Po_(zC`%!xMu2w2t4^4#YJyBo5~OkoVI-5p{5A*bS-et ztj^ITI)1Qe$bgVin!fIY{z1NZr|8&P<}eugTc`RwxyYSFDztpDWP?UVBK$1S?Ay0l zY(-u?%h_eKF;?5Y3>}?YB|1n}ACv*%5a@e`&X5IUf z)-;q_&;Q*8cmx(2yW!iq6*>X5(qO5Ei_w|M(%z`321f&8OacbSicK-{Bwtouaf1g+ zXc<%^4r4b;3wuC8Ukh%Sl)*3^HIpGvxQ8I)1ro)fJ9T?V-H}p{HjtQ)EB zeD2BQ9UgZ6Es*+x7)#DZ#-@olN30mglXVLKUk}6P^!5slcY{TMb1*R#*9>DDQr{(R z;QJX)Iw(OWA3fm`EG@NyBTT0%GRiA(P6n6Uo+{OrhL*=vxGhJD9(J_thf;Q!XGdA{%HVxU+B&pW%4l|hIvX$Zkl+*`<(s}p+}f6i9i!58;ORz zRrvwTuVss1GE#L~qv<(`2w<7Gd6fJWerCWET8(0;xZs1R=`hM91{*l~< z231C#)VJKUrpW@Wg?LBRtM`l3iTnVB&W@AC1q2P)zX*PFKoEnjwBz`JR-BvfgK^>~ zl~s&VB$E(90pcjH&m>X&P_|yID|Jb5qVbw21su!pkjq3+cNW30;wF2B{S+JlC~~xdD+bMI2~fd2 z>VmDw8&%t z$W>4pX7K0|pPr3Jv9?SMC+J(G-oxAbxPJe-sQ`$+&x8@YaPGpc#>2*C}aOa|f8<&g#aIx6B06usi?;Nv#o*K^^sp!r`c( z@5wMxFm0sm|X zL%;~n8!+c!-jDG zyRpo^cqu%^XQ)>pGngnjJX+92U*v>h-k-H1niO}XFNQ36T~*vwms}n$!O=QUcY2Yh z+^B`^R51_Jn_U!!z~B(2Z)>p1^8-B<5=@;F4sl(iFjmrFV?fR7!L8>a6{#FHk7f|73RR6nap0%%LpHx=N{Wyi5a5iI^NUU5G)oeb7vK9cH+C~ zz{D4fNy4#v0J4QA9RNkgR~B3#3(nFg6n3|_*ub{kP%y*r6R6z ziH9HnP*=p&IbzGg1$KZh*<+^vYg2wT0SjS6*kkNqX16&473dnNz*c7)@N8She%|OK zTIw73Mc50OCO5WGD-)uJoY;TqI2_YX#_4DTGH4%J^Thxipz$Ti1CeK>4&(T%rxgmq zsen?xOO))d7zT2fqvB@2*AweWX1FHJH?9?kdOYNh_hP&Hm#=wyieQ(g~I2EXKS zrOAx}R&c103A9zsDvmjB7&vP{`|{*>@|sFot6eZ_D#D+MbMW?}Fvu*SQdcp9C4z8o zC+!fXD|55kIMLr6Ntzefk1{*6)x6_#5GQMOgyLkTn5Y36{l7`H7lw8&3s``{xxJt3-5q=Typ=Oh@_by*M7-?@BZJ-fT zq5jp;(o@E@&?TP;c5yESHvSVbsMm?&pG|t;fA02)$vdt?*BNIQAk=7u3M?Iey_!JH zyV1{fUC*{r)CB7ZHH-j~;FRb7*j!`Rthh6DUV|jM$a%HO-y5P?f?=?~f9Bm;Z#{)U zhhwAO$3Fptv@OjjiKZIUWk5z(51RR+&@$#wYsbSejB;4-r9SF@+p$+RInba5&`uH<#hI>>2DbA$Xjc)w6yJBWfsXtll4#Gu1ONYo2n}fm3U#a zeF0HN?97z~(I8<%5ACp2PsM3{k}rCJ=+d0Ep_Qs>nB1hkvUCDvJ>~I5ZxKHPt4EMY zk3ivgZ=;&rxZXrdFm@EwI)>MXiO;*I*eCP7xvPyde3J!fn)uEK0D!dE>T1b$ohLg? zOCQBi;9#nLKBtmW^F33DF?u2EjSMUa``)PKl(b%bm(B`C+SWeSXE)voyr)#XdO^3S zsziIk@E&2wOde*?Penyk;_Qi2pbz(^J$m8s#OtoQD^9<+iyj{td=Tr3T@7fEZdAfP z3{2H4lndyv1pG?6BNoh-R>h(C`{}r~DGQQ&dJd%csSTGsJ0KpKfqEVUh@@=kZZfs7 zQ)48^F=-&aFPeM2iiPK~nHe!y-m2VNzRZjbo~1N2uvRqwp|N<|oyh$cu`fZ2>st_e zTMC79no?Znxz8xQ+VPl>>6y>Zk*{kmD3XSI{EC2X`|q>p&OtOrxK&zH(G~zl*I#QH z^O}icq*4hq7cy4M)^-Ed0{CU?KBo_2DS0-}jmtBhtI0=PtTDOjP zCCin0qT(kQ;dVrB>k=!m1Jzw*#LF~Nm2NcbP*Prl*y$=1YB=wis&pV^pjU9)bqS(c zyA}4rqF|lAug(+mXXZ}9*`EHDtUS}#?&$Y)ct0lWW^kZzY`jF{UU~?Z>fbr>;uIbr z-$h8-;M~-A48i{642)=~++&S6$4NGz`?MGZ=w`ypcP1-s4|*72k}HcZ!VV}hBQA!@ zPUF*4vT?8IulRC*WhY`vE+$CsyPVZ$AT!H2VrtKKdnaLm;I_Q&uxCz9%8US4sI1>g z07BU0TZTB~$<<9EV@{8N8H8FR?R1$Z3aRh`V4o@Oiyzg~B2j>)&Wl@!ArM%}zRq_nzF-I&OBzv^{1g z-Dg0Z@6Ol5R;+ARC-lK5J`5!FG;P$6OKz$=OL2w7u@K5X7vyRW(lp~J8^(Ux%Hyu< zL!Pw&lw;06Ikr-YOf0n(W(1898+!wzP~si`iSaq{{RJp2=SeH&Jv#r|8Hx|IYs!oh?0}nrF~?EFU98Og8#|tso=hlG7KzBU_~LtcqNT-Qszorq z{BdA+VsII<8IX21oPZex&JS_Rqrl>N6i+2o>W=dJ1;a($Tg=ld1E606KI`&ZmjPL% zNR2+zFLeE!3^mF!ZxvRyNInMl+gsQo8j}r<092wuk=zbRI4!K3dQ|>b_St>Jw@lm zZk(em$xEDh)qXuF_j}1a6q+tIC3A7J)cMw>XGPV)Yg;$Gl<^o0%6S+fCuq};V^vFM z1m+}*r%HmGeVlYe`1H>@MS$O6E+E`j)NkNHsW+qMc%KEw0Osf^yLFcx%+L#emaCnm zX-a~G=&}1`=IqVl5g%nCvWEDNy$onWztS3{+*J}89u}S2GVh;bbLx%D<83g3NYYkf zdJNLe7}8;P*4!Mo@~Qx85O8lyP2Pa*MBN`A`w^Fdv|s@9STVb@mUWVMY-A?(CNu&5 zTZxJ52mPawypUelsYVNiG2ANJ+AYm84>(j--SZjZu|4qqp+-7jE72C%7KpxYHxCsj zn7{l09lx2|)RC9_bZC4#l7+ZAhsnCG#7 zXc*gXEj5n(KRaouiF@{tYbB%?4A}v51#@R;uMKxno9v%%&*s~UKY(#NW=-RMJ=|^p zG~LSBTPGu#K8`z~3q}5xZu|9C01)vD<$VXxrISwL-^Oc3`}nJyjlF5}GIN*QW@A>o zyliql5O=e%jDX)#AeZ(YLwtp7w~)RIy2KKc8cLjIB+6$2)KHE_O7e9*FpQV`b+s(IdzNV0^S;@ity1RgGuwBS4g|}1U~64vYt~AVi2BNXM+1-NHM%PbyjZzZ^(_* zbE?~fAw=#*+!-K6ckeE>K-!9zg8V8?mQsVTA1hTWCx;{eg)lecbbJfk5nnh=$_X=v(69OKsqwxt@8x zqpZH&Bh;z?R#ZMndYwUkLTZd$1DNDBZx(cSEijL7H#$3}zgXe-EPSeatU}#t>mvJp zmQ$sw&@Xow8kWh>bQ$KCvV%=M=+I|uY`Mi(ztR1gV*ajdB6-rY=TVb#xnZwm!k*ng z_8by)c?bF>Zj!rdZ96f8x-qCLul>1r*A{Vg`0T`4lWMP+(yiF5QGuw%D)nE4xfO}% zDr3?}xciOt)E=!o3ZUb$ZyaiPlKZ4F$7mDN<_o1YqO)OC9bx!zFQ}Ozdt0T`wv%)Y zZLw}yVEkEpD5d^@HaC-Utla9$TL*IQ0VXJjHdpR6AG;ss>;?cR^;d&NY%eLWg?4}1 z9KML3ZLJY=GEi>Qy%Scgk#8JGx>hh$cRz&qTY3+sNMmneQ8vchNbhp(8l+9-Mv&rH zIVqKd-SwU!582irS|KPRj1eT)tDHQ;*!iiEuQ@4d9ZoqPSlv43w2#|@<(!TU6K{v6 z5vN`l9XZy-gua8n)1b`S!-#js5Y3A`8~?v3d&eMIx^7#zZQHhY+qP|6yKURHZDY4> z+wR_N+q(T6efPdM&bjf$j5Vqv|5Vjnt5#;toMQ}!li}iNug*rfu`YQ>w-*L!;|!%M zk_e&%k#nkw;UimAYu;T0spnMW-Ta>H8w2L<44?O@7$zru`K;XR?DEnwj!E*zVk$6V zz)`6vVCz|kH@5v>mgMQF9B1>-$F`@hWi9AewrjlFzfd)CSi*itMvB$+n!e_?jR7j= zqYr^Ia|26iD?t=XrwbzSvO(3EA z&KY`(3a>Cqvwxk?yJ8ClGj{NNu-#m)zfq#I{l{9#48GMwoxOi|u1AV}84 z$IbPBtT$>^}k-Qs^qJMPx@vZ zjOO?|_t2!wnQtHKNnj;3=KgpRpH)xnHt+O1ar^LP#FQehUiAG&?8b}o6RHW(N8Ee6 z-6(wzHNi43qL9~`+%7*^5*$@V0bkOh%4u&!1SbLm16tfD9 zrM(jgX{&pvlQDXnt)oJaNu6ofW2a332wOT*vTi<^`CUjx~d=k28s zIP+8sC0IGJ&V9(v8#%*|riO9t4?^;M?`1uNClpkj8bZ#o_6rXXL=&&18kAT8)d&9r1`ue#@>8B69=cf<-zir*MvvxMK_{Y|( z`bXk&odKciSS_lxSCY9H$0Kae-=>iYDHyd#an2IeeT;w8`C`|xsK1qvyUfn;xDTr5A^JG1g_4J(Z#@-Tycs9>OMeUM)8JgW{?-9c}# zEalEy4RHupk~2IN#HK;hRYpFI@D>|eF-4IS_8L2~L?45Cx}7F2S4?yq=G+_49hi%9 zo(w+j)$i=gRGq~8xshxiaH~Ee6$5>lRt5O?sbNUi5YV=QfJ(~%$vzjP%x__5sKFCa zq(UMJQDsf5a><&ptB+2}RG3)PCNt-2)@E<|%ChBz2GvnEr$2GTusZAJw)-gc`N!q~ zO`}p0E#+{#Z=^wc`Zuowb_^dN@WrV4_BEmjkJP97AH;90dNkf*11IYcp@3c*KF-ez zW6tbaA*v%FEcw!}x+C1_7B5WNgL^cZRev{LjnUH4I>cPgJ=pGtp6yYx1)8@{JtoXq zV0VN$mtc>LJyK?&jO=pEE&vv-4IK$5*wK%?E4Ec5h+;X$Zm8;vGCT6-yog1>IHo>d z*zN|UWg4}`VPE%IQ_7<5td!BBJ6MjeJdmLwicuQi?~7q;H2dF%wzoXr;a~iw`8JGs z!t7m;xSj`Pw{>-j-&k4Kjszd^Irq3;wLNiDP&67wc9{ecwym5uVx1)})nx2yd{|t* zYq1=1T8q+=V?T36Emw3%CcgAD)sG z%VvugiUR|Nw_D4N&zNI{D(SPU7pa)JbbXm?mV)mfJ}*QV%xjt#8y*5Y()s6sv5uB&=D)J>{?6A|khHt{q$Y z2V-~Uri_8(@E{H^*J_@7LNvcU9K0{j_wA_#;yOe5>Yes2gpbaL=`&xaZmfBO{=<_3aTODX zxS{gRtZYvSZUf7f@Z~jstB2dpks*(6H?NnUJ&_FlmlLJpl@uEN{^8EVp+l#3wfgSo z*O$d@XO3^$H^=u&RC6lE7s(B`?Z~tEOOIC<51FF-v0h5oOtgp%n9(6pT+wwvXbgh2 zD9i(cba&YnDn{D$~nxU2$RVN}!=c6;$3s zcM*AjMoj7VL=<#u^R#1)@)^Eqx8l89X3c!n zkM}Upx+>yX_(O-8w|YcEIM2+OizG{h5}dVNBP6GxW~P+0xd?J3HA5;hW=dQM%X zvnKk)&yOiW*NU#PS{+jL5s-F&&LFaywW*V#hAwKOIxki9ID~nfKJp0M_$!Lb6Z}v02>&)KDdZWt`(&jgA z%h4|fE9ySJo0r|;)vEOg04aU|5C?h(Y0H3Mm98mbQF^G-;UhPPXxGN0vrlP87RPnN z+pmA|wz~Wy@#gol6CwZXME{rg^M7($9E}YAL!x%+rz?N+rz`)uHVuox1$~vu29Ag3 z3_$jR2sD7?hO@LFu64d@FpUT_p`nXn{bwgqto0@_k6n_;K<{}y6424sp7hHx)mtv> zlG3L8BZ?j5i_g#`**S{q# zGG%ir<{(J^tLcdanm{IqO0 zW6LoHUp<~QKK40E#gFj_k%BI8+(v;VIm*<_AsjCVOe0UD&$LmaCdkpQG*Yeu+|bp2$CBQvvvGO#kTao+%wOMCZe-I6oJIFEXn$U%9b>o(wmBJ3Ey(>9?GS9nkPO7rq2^4 zQ+#r-Jag8K$0EKF8%nLPR$3tYfJgIE&@;QdiWs5Yscx2xRmJ8^l&YTvs|`PeIAzt1 zOI)eESZ*O$s7Wi>SglT}z-dJd_m@&yKG@=N0bI#BJ0FIGM-2(-71croP_sAVP`y!D zcg%65>Z{``NM>Ux({vGnZm%=@qjEgeVsWjw96fZi1|Aj%eU+R=+~~oXyt67sZ`=!l zvb=%-j|DGQbZEpX$T4&I5c9Dr(Pgf0bTa?GAR?T`44!o)W()DN_6nX5eS`IU$ygFa zWOtK?^!d~yq(~o{(0DWptY(ki>~VyNL@D8i>8!L2Z=usR1tsahG9DY>UsJezF@_0Ugn@6v4*UxiCgQ> z0)Kranh>U%kTbc;-O0yu1d0`LNN2ZNru;1>=6oZ5xDF7x3CGMEbMdMG56yPPq-9z> zAm8&#k0s-FA)tpkZ|B!*VUk=~=mC3pGhs~}U^mnUETG{tr6O8gVi}ZVM5;#Ui$ob3 zW}#p8FXmtS$+)Yt!INVvj{|GDm~eeW!)Lr9`ulV@!+-70rDUWej-9SKM;msNOe*uB zsE@R+`m$&nX!2VO8ci^P;mh7ULcYW7(OE?2V?&C0WG43nfM!sd2D%FJ7VHAKY_oYE zzFpQ!sJ%AV1KY2LzJDW;uPsVrw>%>P*Z29Lj^paUEmW4r=tUBDb|p~RRh`jib5d4Y zWDbq#?oAkHF~5aN-Ak@At;nX)dLg!z>Il5}UnV4avQM6Ir_-16p`c-Je9B7)xIi5B zXmhsG=<1-^9@#-gGNH;0*eYhsXQHu`oSrR)iL(>)bg#c?On?0gAus8cg+}*BTN@4O ze;^e(+L>F}xS6>9a~-v%wqf%_D)L@YLjVJk@K?*6LK86{fVcRY2k1cg*IKLh7f20r z^V)n8m11~w!RHg4M0oqEEY5?80wH=h6E{;92NMbSPm99M*pC|&1SxSkeY*O9X8N9Q zGu}*;TojrB3qpcPKv@(GKfeGff@X!a2&$BL25E7~5d7lUQP2Pu6bCcLeHA}#@J>)f z(j?}}bvz4$WP_Jd-H>ARsK}?JtekB3x1EQ>Te#O2LKDcH;~}d8znTyc;OJ}WNbVIr zS$yywjR3rXuuqn@=Ihks(2EV@@{t5o1Y-;g9#9}nXwjtK(PqI!Wa zy)@0?2+Ejgx9!W%!_>^%!%t8S;_hot1z}ZNn$kwv3Y%@f_TDD05>MgD zi9|IG1o8esmHH>Qj|O8XV_D=A zeJwxrqqyA{J>LzxVg_;%N+3utT@ew!H>Ql0Z~<>fDv0c~sp^n>6AwmWvos=Xx*kBr z6e$w~JHahn!^+hFkZ$xpkY9kk(Rcp4tl6OiT2pW|&FRyf0gRBwowB{cTsP@%C0WHq z%~lY<%CzVW;jx-uU>mMLPW&t&6cP-?C`8s9J|-13pR)kEhRCMVp+3m>LRTLe8pL-e zZHcce$jR=Ti(wI6%&l1${&YABq@5@fbXJGn=`i@D&DEg>6ooJ{G!(+~atcYgJlAAhYd| zd2%`eH>XQ#k!=Y$iBt&IR#Gq7GY-`jGLcZKEP}vJ31F!QA}$|7y)u#b_8vtoEUhFZ zJcd=pM;fr@En{TN@>5(vD@BUqw758tp1GydPc#Q z6#{asn@v#W+tLPl`=%KKNl+p|Y(^2{5!Z2rY)m%^VACs-*h2a1RlLIcv=WOcBI8O( zO4Vo+l{7L4juT=B>QBfECDO+8k@!4#4h!qw`EWu*-i@zdKJF}jMTtU>aXXx(a|+ZXF7V=;v%vhxj~Oi{Z1(!w9rpYt5d6YDre%GVzssuY0-E z6r_HP$yMTFa0JjTJva~A5M8Kv$-oIs?Sx)~+n3I$*w!`h?ZMn+q+|)jX0>9AEvhNW z$m!Ci^)E?zdcWA13f{LzPYw97wdRHw^sZW>_gRcA+K!|8Vl!JB_FpGaybSb>%BCm- z>(8+|>eX#h#QuAU@W;As;3_^Hm9?$n3B9L)bsEyun!dVmpifKsTvF+hPVE`K?Auq>uM zR87E{vO=m?dt>`=PjPn%G-FSO;=T9CYr_OzXM>nZV)lCHS}l9d<=$aSUo&g+<{?_! z;?Z^;)KnkjgVWOuj^YuZp_@ofa zVw9tk`@a$YlhuFQ{+NpVSf&aLQW)FT?6Ln=#5f84bJ`4~rN+D#+6RH6QD9BiP^RF7 zQ+VR@e)U46NbeJlwODf9cI-AHMy_aPX2t`gR58es_o>$5an=H_FlJc5 z5Jdl#UyoxoKyx%CTX!fqJu3E|EKQy`v9d7skVWGnTto3{*^eMm_!yRylyKg2<@0{O zajCvwOjF`6VRkTZ8QuK-^}1h5-;ygn4k}R=rLG#|X~uA=OZAe0QiTyJ$1K;1p(Y{z zCGOb242qtxxu-8|b6wN3sqNbVdHwbEcG|pho`{_xnkk*&tc*gVhm?~*LBDo?&lI2K z_5KJP?mi3}1byr37yo?Fkztlg67Qz02mFV&fx-vIlq9W;8iOM-4-%_pzQll%VyX!q z%X=Zl6m!S2r7~&RI?`I`cTweHOI0DMG5(slvr%Vcg}(EIqA=H=*_M|X^*54ZLtGPG z?WQ7?0^22(%ru}hrv=sa^$XJM5*>h4j|>;$51=B8jjLop$aaDn42;1RTQzA#Y@Ku; zKSl0fl0OK{F(fkLI~5`mAR>ti)p+sTnhOo+oUQY50xn}^dJFN`QQS-gGXB+nGL9;G zWes_a316BSGd0;Lt^KK+Ui}P-BdQoTG~Xdwo0zQBf}f(((fn1li@WKj+%Y-+&h&U^o)wBNHfi*J;tW#-`OttZwud=8p za?s~ms#`f9(ojx0K+Al@pJfMkP@CP8em)N>A%PL7F<@68ITSy27DiK$Fo+vO@*C8i zJ@Low8VS{*g1=ZQ0Y8o&J~zKLEblwiCPEWDC70J2Nw>h*(0<(Qkjvt!sNHnH8_LUVjJEq^~a^&tvoO zDOO9Ts{Bj{xQtRgyWcRHhT~KuAC8r`$IG&hdavE!C8RZs)AX^;8JlWnL_KVe2x(48 zd>4G|wCbQ_XV>(~x+PX;F2r?RW3jJOX4qjZg<9$PWtwqMfDs@5IpF^+^bRL43F$C> zhl(l^jT>b<&a5{2?mi+TCcq3%c~dy?%bFDjq*l29*wb={ z2c1G{DBwAVT7eC(7U(Kcwy?q>+NQ7Z03eYH@QKC2hsa=Bt|Tix?RK=vC_GhTc0YU8tjcsV(I2(-wa zd3&SlwnjFh)UXc|;rT9>}yNct7&w-9ILrP0oX$b{9~_O zXjsz1#^VA;SBk-d->-q0Q&Pi<{AhLUrrKpw*XlO5#I7IJZnkQq`m&#Ar2WJ-%G4B@ zL$S;>a{+fc7VNlOl_9f8b}+;erwZJPU8C~${VebI%<3oRo}99<23Y99i#_Gdt&L4$ z-vDsU{s6Fsk~%06=tr&V^V`@lx1eVrnD@P6MS))Zp=6hW1*m-3_-0<1k(fUl;uzaG z=un_C9giz>@cIG7MarMVJV!KM88ubivzR6t^T~pX#Z%1I)KYgu&$yctC)&&Hp|CCp z%TEP48nXm@^+jct;~<`TW8nNI2ZiTipN%cfn5VI(qySph1ghgGUL^%f*$f13j=-Bs zsfS;$S%0PQ_o+DAkg?fu_9I^&cSvcBFrV3{HVBabstKqYmR3ktC{BE=7O6QHcLqPvF#D(w@ZN9j>4)zS0+vp3T@=jFh?Xt%(Mgpc>A zR~>|6+SEWcIohMHbdp1Q&Cea5W#lG4Jf3jUd?d4u%LQ=jRp=;FQeU_ST={FV8~7Fr9C zo1p|#LB`tJsZ;Xn`1zSn5wIJ;OuEEiwv#f2`&6J+y(I*k4QH)Suh)oYTZ8^Xcy@Ws zY5l%F*$L&>K;eQLjA9C~#apaFJf1oZ`+yaUU$+{Tt}7h}EK1Y5;^Mqz+2Abl4e~vAo&iI2YmHoe=Efl6}li zb(T49l5TWswmq(P@vhO&md6CwX(R&E&|M9;ny*j{zg}FAlI|w??seYh>fP4<;7n{R zBo6WN7#NrgLi2m)=3LyClJBIxR?ZH;T1+);K{MOH+EiFV^l9=_Z;P?&2OgFVV3UmzH9vN)wRtL>ro zLfk#KE@5FBEB($ra0$}*gk1@)R666MAG=MZpA^&p`t)ZNa(8)RD4=x>0gnKge{=%2tiP9QC!)Fjq|Jz9D$UkYyj&w8IOe&F<}jF5@5!~ zmePMfz-Y?;^n#}8-k_edqm#|2Tb<&|txey%{EchDKyHLDX_iAbi$83D7P>QXg$%lY z9_!d;u1s*qc^~Ed=GZl)Hw8<{)=ME-5(FUX`9i>oNvnnco#JkgRMDv z5?G%Xz)&gDE&S>L;3dyJvl3b6v<43V-vG%X=XI8%-3p9Tp3Dk(FLRW|@U)aa+t2gP3)geydbRii)QhKcGY|GGeUc@ zw{N%|c$PL0UQ_}In>fQsmWV)NNP(AX32)-jx$)A;K@{829JrJvR!?Z$s>5C2P{ry!l5!{fQF#R_W!r7|K z@j{nEGZO(J?Op-gbe1+S9HDtZhQ*XLnSpmaF2dQ&HP7o_JE{+RKKB zPWgo+!Y({&rz3F@2LKEp7Pr!oyQR`|G4289P7#kHGBpVmmZ+0@an{b~{AzX->+?|f ze6`*)Oxiy>oo1*F*VQ)9vB?tl^f)YjL{Cl0qF`y63v* z-1g4g`SB8YWAA?dwZ-Rkdv|qN*|BoCf7j4y1KCBd@zRlM%j9+j-&Zn%m>^m@DPs+4bG{aCX1b<8ymUZtLsv9J$x& zIBYGKZQo43vGcWCk=D^d>h-kH!B)KaIaT|8%lB34`yvl@-zcY7bayB7y0-OwyXPDC zqW85$|MjGX|3xb@S*+4qYP;=wEmmEy^Dff<{<>9Yb{*yZc9C5@vwhjbG5uC1q7n}E zx`u9g4)a;>VyRTxCU#N6>Vfin0qvP~cM+Mg^O7WXxd_S~lQy-x#_fbGXH;42qIv$B zB>OBjfdjE zfo2}`BuJN!I#U&S>a>-6$Ii(^lvAiS>VcFiZZFfNyG(Rj?4+s2-Bnc$SN!BLc(u3g zEoTx7CwHOknVhz61gDmBmp6=lk^!N~l#~~(7K1FOoquO|Rm=_#KPBh>aGhH^pLVcaEd2Ph*nA;8Z1B#rVBD%q0WF_(p;Ng^t!=J~C;Ou5N@JVIu zykQ^})UpbGm0VEWSFI#eDP{wOH!s?_XOW0<1+Yec-@_FpX+KQYSn_2)iq?$e$4_R7ls3CebQ2OA9c9j#0Z$Smlm3 z9B?L{(2AlutKCq$RXu|B5C8E-MZ zqkcGTxbe|=dlxyX>nEU|>^ej^G78L*cMnc)#yP0UVp!Oa+U_R z-$<&Qr69eO56|;VmR>+DsUbT2Yc{UD!>7(BYP|LCO6^|uu#u6M{;~We`u@0{$0KwZ zpC`i2v;C-Ql|*n1dA3!nK%^S39?lNINpeC^Hp3rn10tduB}_t;@H0HP){0%zMZ?u; z1RfrqPTI7dqRg(#Y0P>Z|CZm$9%gF}E*Lc@y0Wga`iyTBdOmH-T-taRHiHXH#F+Ip zdT=M%?&xpRDie(k=e(}w+@jq5LFZQC_PSt@mzwPxiOHVCA#r5b`vZ7Sv=>~k%8f$cp$PL-KtVCmm`c^MVJa%RBsgaEs85zhqO|*^?li9i z3IBH^T8?;>)3&fcf-<{O{8SUUQZc>Cn_|;XcDg;nZwJNkYY*z4cD6*_bA8m_>0_%q z7~=2O(eazf%u7&MB175IjMoPQ!^^6;-@T3}w|(U|j7}d20({o-+!AOckaH|=Z@PIr zbehGU-Bvm(@1gNhtfrq?tqQBn%6Z;a4xVdyo@C#ZPhSun#su7n=TI)^pspJ>^12*0 zhy^0uI32f1OwZ4cI}>|4_YKx<;8)*lEeczSufn+YN}MKVqg`BYyH;8o_Bn(~6KG4= z)tErbLFJ0c%9e-R7AWy;V^u?j8raO?cP#Ws=oi-wPx&wXL-qbVo#2_}^N8f8w{TP_3=_a^1eD^rxtSfKvt2YTS+NI2qdKy`tijV{4fJ`CF_8W^ znm6z`lxnPc@B}BOm-9%L!j$z=z?%_?r(w?hwtEWeom|FqJGr{_Hw)%?U{QsrvJo83 zUl`}2dBN)92LJQ7eo#I9G#R~MBfoV`stG)&pUtRmKpgg=zcW-f#SJzcNDxVquS`T;@i>`(0=_LRIEkF>XnqLD-06RbG)Kv(!iq2r+vxA);9 z7&GOOAWRSKW#3oaX(!LkgNY372AquWC|v`5|FRjAK+{8)aqWC_{zcR3TYWIzUkKA0G!OjtyL#vj>W+eP~JfF~vu zFj)pr__6|-rfG&u4w$BS5m(}8%D}a!%73h>dzJKZ16jaevwmYfo?DPO%E3}+t`CbPXyBUTC6Imdi@&P=wjHuud#YmrZ-6bx_OW)I_XS#=(( zj1)@6GkV&LHCk_=xe?bnt5el${<=uRQKCbTlO^*L=h`6}^Uq~~a~AohAzshm6w90R z^3LlK_tFm^`iyjjYBb}gJAl(l>iD-(YKfcq#pz;kQ$mx>T^7Rl3#M%*!{MU)vi-Cp z2g|JO*?j$9Cy3UiSTe_q*}q#DG`h%lnbSF$PX)9mh9=OFU^Qp!0iw3`sXcD>XPG7kcAOH>zWLh0bpvI8Oo`hL>yPLLL9;XI0*p6_S(9^H3QB^d-KcYvXwO^U>?qwOgHkWWGI2{^LE9zcbrc)Q!H3{9N_zwYR=Ih zE4NbX+JzvMYP`65Q|@pp>hy=KemNEQ8BOa)zD{9BIJuCaU?GlP^|Vf*QmF|V8_jx^ zaH+VDn^^{}SxPGvH3}C6-fcJ*Fd0XiA=KAcWm%?#V&t8L8U*<*GGos0enRONL z)L`k9Gnazp=mN{Z!l(cjV%8MZRMBPURmjROoiVolEYXG7^9#-2X<3J7hfAjxGLCSv zrP=u$Eb{36OYX4R*|$0Ui$3Wb9v)$|;fj#icStDV7Oy_MEWWq7+I2wpR{$}wu1WNStj zS8XrSgo=J?^<1;v{v(|0uQLZMx8gPJk-^?YMDufq#Yr`eH5^%>wP+~iVyAd78!gLALyRooql-15zQCe4>%w2o)SR9j!1$psVXkz;gkO zHZd!BMNl>)xdORf3beE^p7P+{V;~EVw4ZVHcLNMTQZjzVzo9O^A|e6L^@G*)RvyZa z9qlAQ<^c0RP%BJu3|SloI<4q;O&&=S>AOA?%_@x6s0m>z0j_nvA{0J_aYOG+umHY^ zylz>iyg_xHs`}|jjL*f%{}U#owX{O}!?OCn!J;bIRMWf!6la;pt^gDvM{g7`wP%8X3b1|=;9Jp2Tce=`^hes)x;FsJW8ZXR%8A5#HuHyIr41XC@?{t#0Q?dmmFZ z$KcQc1HNcV>;>@q6~Z?NpE(iy;xDE?FGpFZ%`7lho^qC-RcjAR4%kCFydVDEpMp|U zp6U||5jkoP&AEk$9My;aI;6J??s#A!DW~)X#kW7rbjAG-s19$9w`yU!Qt#WCY*t5g zB-^(z{{J}`*I;_dWd6Pd^jE)E1H*=mBloHon;%n(K3s;sW4*8^@m1lslGcc)F+u+C z*cKsww*#NkooDk|&~`!B6UgXUm`i+`-H?cX7W!_X`U~v`fo5w((@@{_uItZA$Ne~{ zVSnk{NCN%(-@=E0!<&AI@&nIDpA3{=<@Uz&MIb8)_3I~m>{LOsR5bSV_Q2znSYO!w zD*$Qifwz3XcX#%7_Dbg`;J$x?Z#TuE*Z1E7ezX$j2LA?ljFS9={6o6Ue^~RXA51t5oSG(|r`~~@AH%Kys zZvfuB6o8K!^9zR0ybP$K66FQ@1M~~X*T1LtXAWLe_&<}N_*Qd)=&F@p0J%`X!~o4V zeZoLn)3LN9rdJ3iVV}x}DHDBg1>=U;WM3sD$a4q+V9yCeIc#EQ?`$|4Ez& zHR?;`qF(+N6sneaATM6l2T<##*_LRZ&tp2PwfD5OlmEYcKCv>pzgqQ8?SDj|>ALER z+J8;0-|NcuzS%m;qEePBad4u7Fw)ex}r0)#C zNXzQ@faRQFfghHt%5Z$n!#D7D3{KLMK`R7dRU+KBt}2s zE{)$#4H7qshRG=kJd^ABVt$1>$Pl63dJ zt{enl=F94O)6C~m0+^a;vh;O3sv=QB*Pq3eKBat_`DNT(#t?qg88WFlV;|EgBdcmT zVBy*0<{YjWVs>4#Pc0h)P}&ljmGyw8eF$Jo>jcbEuWq&DZ7WN{91p#jM!8Yg_#8u##V*RVKISH#H?|j6Jkr7Fsc^})u<y!bEn!`{V9N=Ne1@J<4!5$PkK)!k{pJ4 zFQRrAU|*bw`IgBPr%&i8g$;|c;vGaO&9sH>5Hs9i#R-bG3{&P$m?x9Wj1s?8SSJA{ zQdmErOBY0B5RQ}cusoZh`V zm%V^lhYJ0blZM`aLZIYF13HRAAO*;nikQxA7Aw3%g%o%WR?Nc4Vapfj#-2T?=;zh% zA_?OtfY!D*Ns}^Wn$kw&$f@4C^~(g&fS(*M=+(Gpmu4hMXcZ1z29A1`v~`fi(&yHck`<9RE6ev2hgBG|@d! zC>j_dFmWg-7-gyGtIuVJjuQNv01v`@q9eyX`@}xX#OPSS9{V@}@jTuq`ik9~@v3wS zc+Vn{i|L!3{7BUP9>UlIXcwvm&Ut&7VW9vw&oA;^`z{4+QeEDom$XDC*pb_Oxn3c*B1@atJkFZkTb<)3w2mSV(2g2r)Cf(_Wbq&v5F?gsmP{|k|eZmkuJRVza zoDo|dBCO+>a6Jz$TqGezlQPq)%>kv7(tI5)9g8D2Ki9qS1P2I?sgC%p{y_E@NMUY8 zWG=kzQo)U0bsY!4k9)1fzAoa7;bMV6V!hV;{+=Kl6+Ul>#=CL@{qk<856uF^&C<$F zn1Rc%Rn9m&(7#REFK(23cuHcHlf9Fb*gd$R6$k2js(?!EZ?9KhD+fXlKHp;F0oeTL|~j{MUBU$34?AZsS5{g54y1R zw9X>4XB`wNn{aSRVv8Y%yUhw41ib~h{V@aPzoC_sCL#M7qCu}|Mp+QZ9L7mH(?~xB zbEHHKou}WXS}tV98^)v_NKOsHutxrO3gI10Xw2SEz zOxS~}M@w=K>C3}7!|fiFzD3b*t7dh$0X@Q}+GH`Y_D;;!_fD|ap2FNJ+{E8bLaU=q zAqCl|!|ZU(ewA8(&2*nb{JhA?QcnvRU%V++RS%Gs*!p5^4Glo)kgUljq-^7%w~|~m%!^&wpx<)G(9Z577?UpI+1VH4s3Qc&t>Tb$2awo$ zJ^+nkQ95bFcI%zo#=BG7h0L8$=HxieZO!5hvU5D!{pA=0)=EgLQ6n7%n9OQF;E5=8 zz3W~XT%hh5$5H%IESb~c9&Heb)Xov{iayjxKGcYYE~SYKyQ3u?fXd?`GW2kh%$>s`ZJJM=Z6X?3#cP;K zSjg#4t#t6v<-o0V;MCKa+~HsNw;C1OvlTy6-R9Hm!_MT`qb}NS=nd2vW}EZO!X30 zH%`*fzH@5dpHBevHs4M6+TSc{kH9P@Hm8^THJjqRZ>zvLXrJr_WJ1Xn{JW{*^&1Ks zgQw)zJ1cMtJGMJYGJEGFmIA<~pCKq)f>{^4IoT`Yh*1pla2U4@|XHNQv|uaam!oG@cEK zIL4r5Bo=Kc6Im_z{Fw@B_Af}0nK{J4@Zu_+Xg0$vr(Rz^yD$hGCtj^%caC-nSk_Wk z0inT(Y;VS7x8yPBOJ@qXl&l$K0e5hm=Kp2u9Jrhs2a`qNYh1onZ zG{<~q<@_X53zx?vcZmJTBf8G$=mnzC^6!B)^dY0Rht$Gd38QFYqY*US%7OHLDRs$D z^|G8+*1jiA6gw%s*nuQjHqC#i>>zO3usCW-opRbTPqGt*Em+dUxjar zIIT@mL;0)!oLcv_^X_#ll|=wGp7MNhzv8qiV?;$sn`KBvNjV=2^@`3U^Pf6Y3FKLx zg)Hj*YDwBi&Gkj&N5_$2E=yD8!+6a+^@w$*(7k7wxjYBUxq&H@Id#Zdgn%CW{o^@n zbL{H55bj2g4qdhxSKbbM>PqiE(w1dS{hxC`A1>|v<9efald{$dojRj;F4?bC+gdK6 z$Pz~Ax_L4IxMv}94!w&64K_CN3!a7m#% zeKVKFdgRVfJ%Kwvx4Or5t)E{)|BJJC430JWz6N94c5-9ewr$(C?~U!;*y-4|tsC36 zolJiJm-AN5RL#`hwX4thxVxY3KI^Q#*6wiu7(lsD6)J2cm4@+L$jV1>8Sj_Qv^kxJ zF@|1dZ+i5h@mO_H^p(KGSj%DmxU;`Qn|GaVSL3!R<$uR=Hf*(G{VyQ|sQ2EOYgAr5 zUc^cZz&~t&zqNaN)Tg`Xj<*6UaW=`qN$`SQAu(+ak9wUqO%B^foHZ=Pa0|sa@Tm>o zL=0boWh5+e#Hb1n*#{xKLhhYlxmOCfX2z$&!3j3ZO?mO+bZ+|CBRxe9bd(sMio(tL zV3Ae|uxEmSnm62as)^~A<1xT$!GUdsfOJm7Lv%5m$C_FXt2?IV6qSz(Hk_60+mag4 zr>PHtN9@`VTXdIJ{i7E~*w9|M{Wj)C@c;jnY|AoNSKAiT+g`C5_kz6zr3K zWp{l+P{ET^Z`f>v6o0$@I30TmjA|u}t9*=8xvcI?v4?*8yb;VcHl0>FEz5zB`P3(% zzk#!Z!Lx&jQc*`bmfa!$_af$qz>4<mB<^_ zKNfJ_(#o zDwY^b+{z555xO&uq>CL)BjRWVRSnmd^8aPiInP18dMtW_2AjSC?nMW*(<=e0NL18C zbU7)Udx-LxG&t=l75pgpQQkCchdX2#!#=~UjKMw_e>3>ik41fB__H^gc|H6C_ z{OPfyejbdT-v1GC{G;_hi|gHE`wGt&z7Jgn_tyjY-RJ*0{=2-Y0!I4XOm_Wi@=of0 z5|+>d<{LtwCCltLVUf}JJ1Y5k|pnM)y3D`fd^>tu^sj zclfqapwz7NqVV6Mzm1qC=tj_!2*3IsX4%U!-44yaT3Y50VYElY5AbtJ8S<#Pd)Daa zrj7Dp*bSbhhVlXJuWnD?m-}CMMw>C+f6$-hB=P}+9SJEPsvFE73`jQ<r2g+HB;0eE@*v zKvsEne-Mlx*hhB+MAi!J3rK*Yf$9hSiMw%;%KUHm&vO%1U+xbAh3)2|==r=^u@ z;6EL6$7 zb%^i(J%Eq@D}GrHT?XDG$t&~k3jB`{3U=}8c#d5^fdGF$A;W;<)QEWpIsV_`7hAK6 z3D5s5SWHm=Yw`c`3WB;&>BXb>kcY@kX}bMd6c6NyjF{TBRMGNkVAT5SndSc8IO5B3qbF4~f;6An5Js=0n`=sE5A znephNX7Ia8vj5yOvgI?PMwSQunz6-DGcaMztWXl;FsE*3Do2)ZaJnzwxp4~~(5T38 z!=O8CKM6}M`)xsaGG3u>;bNVk|M>I*oj~|2+iNkY>IVVZFH^QuEBel`SRH1v-Fm3x zc90Lco)8_NarVm`eYDH+J*1ml4hv4|Oo^x^e4h4dL6z;HO!qH%dX{s#_g2jCSae=! zf|x*F?Hse6D2X-udUws%$d;VXxiC=hN9*{f07!>5%JqJuDY-tI-tWJ^D*>Depk9Z+ z1|`kcs7xYejiTq`;ewGuY1h^74(b1lC^8J-g4N-}+<8la7@{8lkWHyW89e#CyRlZa zBL_p?r^{{@DEK6)LeBMA;aZ`tbe)klTisII)rXZ zBI}+a?iFLa_}Quk=G$H+j`rXCSk@;~-3QUSB~qzEbj%U_d~s!>QL6xGu}4jbqR7)G zrD6h0;LZl*Fj&a3U(cus4b?0}EqL0q-#|x6p?C%`253?G2nH&{$#F!f;bn-U?DE7t zZUckSk~54x?ZG50z+}e~N|85TMsYNcHpIajN4n+E^jaildQT-UOfy~ERe1AGMIY|T zek@dMO*3TfzD_2#fMi+XkAe7EY;Pc(37Ta>0t~oK+K0ps((8u*0ZtAiY_$~GFjQk= zY?VnsIulelqk_<2nODV&xJ}v&y`b09wv@p5NSSNLf&^sc8$Y7LWOc(%4bJ_G* z)CoPHAlraZt=ccB@ELIbxq;Y@9gOTFU@}d>Xf*NH3c;uano^+tY=l0T12{p&a>|E1 zPS-B0`A2kyh~9nm+8}o8j9}L)A$Mhmx?)%S^Zl9r_4)o3c{g=JjQ70V2%6odYRBnA z_575KU1{2yeA8UJSHnqUxiQ;4$;M>VO_`h!Z~n5nudQu$>SjgMr3+c(Ua=dgWp%B&U^{E&`sDU* z8>40w?fdok?fV%r8WvSBZzTD;QD6)bvjl#SL3;UP#<{gQ-kJ-hZK=qT;~h-_moASJm@?6gf_ z4E!@15o0n3Uu*4yr3#3Y2Dra3B;*a;Jb-pA+tr6-C=Uc!N6;G#{0m0#=8|$)OdO zzjMSpNQTEC&6ZOsEsu~oL(+L-30%C6VPklpA*AS2dsA4z zMJWX7W3bToEx12PUTvN$#)H%&_sD$11pfZ6PPAMibysBQf ztFjN#7_ylJ(Ig;fr-jt;wc!$2v@w`;v^Lxl;#UF*1TNBVJKSLK$Sm+Z63H5f1bukT zOhu^Ds%2?QK)elrL}H( z8+uBOpZu3I7uJ^p0H-WNv>-bQ5FNT_utn!Jv(PY^89+1$LkzX#b+a&Ad-R{X#`>gR z^;#+BxMKTFmvK0Av)7u1xLAeU;|a8Q>$%XrOXSrN^WoyESa*Yl+M5<~Y}@$gmGncK z+94}z`MRy7>TKHgMy15y73ZE6;Vw3d7hx`_36OYrRs=ET^F*3G8+?Hc_Wa z?%J)?%nqj5=(J8C78C}k%5976l35)WKhMi?GA_%P{x1JLDz~ckaz5&7qswTMBOY33 zE@aD>qp^pD2}Ky^q`yr~;o~(KxT;k2wD!WkQ zXhXKcTZ52H3WsLmZ^Bo4H>zO)O+Uf%pemnJ%pb+WgZ`lkC1xnKpY7+mw91-?8y-|c z1jc3h;>^<0`>z$`rl~wG3Kcbok9!<_7QgN}oGR;Mf!V|aTowk)zv$_+e-xwMqVY}b zca2L4i`o+WDN4^HW*KCs9ILHs?ta2Qlt61cJEu9mY8W0{x0Tg!DLL99*Xfw+MpMR0 z*T&82Et->`Kh{%pcTBEJD`f`5<qykhvV08PQE^aOB)9||SC#R*U8_c6sdKPNqBl&7K}3K@je z+}8kghj?=c%5Oh0Qi~Xf_ei@DigzC4#6hwj@?qZfuxUhJy^+pc0=}z!1__MbY`CQ; zrjbuAF7jX3-_$ZnfO&$=hNzOB?50cNaX2pO+R_#6L-wJZ`glI2W-L>3{DV9(W!NGN zu{GX$@W^^w2~hF0W#Dr6zN#KRFj^cPDD-& z&j=)%+di}X+>HV&6Qf$)IJ772a}ql1b>hquoI>o@?3EQEOU0huCHx%MJ=xpRGuOqo zW#7JCHUhfW+6Dp38f@3Cjyz%^OH}Rlq7(9>G7YZtPbZ}U1vnLaqDGOrvA~Ek&ekEJ zmF&q}cV)ILX)$!q{p?vL( zkX-<51EjKE25hfhvJK_b-{$f|Fs!8+ISWJd*7-j$thd@c($OTfOO^QaBwEj2^u2T0 zM>6#O!p0w~Mx}t1b%&Woxw7BH)AbT`@2qNO1*v@0PyM2FKFa%q;#28=%kE|YmN8}R zf9$h8ZJCb~0$gI{!j-Cm^)#l^g__u^@MS95>rT0yHKHuT${8A|+2}IF=#NW=ThyBx z(8KbM*u?^ynNtV6^kdC9Xj7YuOCjj3TaP5?TW2k&5*L~!rA+SUbiE*`EwZxqLyM>B z99`U{G7)=4d9OjSyIv7!)}|{h1$RIigGZ`HZ66`m;8MGXUjx~u8!Y??w1A6h0>$}u zjANa$kby|oZt@O?t&i==z|`B z)7TVp_}(uA%&4Pg{ok5^F)kz^{kr$=Ao6zq1$^RO66$g9Oy&d$|E)=q_9$bDK>?nN~NkB*KMr4*GvIFXX^u;|i4` zKSSla9iSmsig#Cvn_J_XPP~Mjt*$82D3Gku426qy5*d_{5W81`tvsqDJc^eHmEJNl z4-aoMS8-oqr2=1L^Ag`zrPl(Vx&A*!C|}z-U)M8lJsy3{Jza+$=K=$pLB7xe)lnOV z`PKlw)*&9n%o*^>$k~B$__4_8;iny8geIEHJ~aYryR||C3EPw7?MeWjsL*%wSP1?w z4*QjmsGF*fV^~;-`#?=of&o7*)$=>MI(%j&4kL(@vzlZJGa!>GKXRDkN@EnCwDadz z9vs`lUCot1-4wSxnG{GvrgQt5m9y)*4%9Rvr!tyg*q*nB(4B_y(k*MIt}IHv~vf^D@J_zb8@_p$r0*} z6{MYWC&UE9A>>>7w*|0jC6GPalj=k^SHdY74XJrG)yI2Z zg;Y@3zUB=`?*{BP538wcqbR z$r=+ejyv?NRpw;;E)WduDxkJP#=(Q5-3*RxNU-ferq2>nYUPzAjsK4N)cmm`fP^%W z`O50Et0l8p&xRUAlsx|+hegUt6$%BDxBvp3V?LIu_JrINulHgKl1IY}G^)YM(X)k9 zpT+W(-DEqXEE($+ot0YJSaWpJohY|Tw!lz%C z+>h0jURgBur~*w^PR(WP#`C0KegqCz6QXY?PFK7qaQ+0xTUoahZdOg9d9a6nWPd7Y|X3_wZ`uqE1L%?Ta|HE_|_ePmV`{l*SBb4r!a5I~-;KVq6A`b>55R5g~GrXpF}w9YEtdPi@t*&2Ow zMQ6m^Z`A)dz}BYSe>ix25k12A0kc_6HDL%%qBfYEzhWnpq=MX$tFmcudS+T!Z;&aw zEtU|0b^I2!whrs+e1_UwaqV|R>u3?bz0^8IRgIXy$FEi8&+Tu8iOsn$YaOSzr!X|O zwL>@@*%(yQXwat%(Z%+GjbzaELs9USihBJaORP7zb^(I8_esN0d~RWGr%Vxh^79j%?I zQqUjU^YeNjsd}7ztyO&WReblqE#eBNpZmg=GSn)Gi>e}O4bavu-UbV7{-pQS?s)Dg z9IFGo)au#P?GKjI-3cF#lr7t9+pAyF=L#fxh)^nudNg~FnJ1;@Rcp;gVCZc#K{lWo zt@FSNremZ&Rg}0r;qhK%BoVRJ&05 +(>w9ji_(kIk9^h9Rr)7Gm<>Z;MIKN;<= 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

45~2z@TlXid>zxWu~91rNfa)Bnz1wKCup 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

Hsc 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

8~F-&N-o=1Y*~OUd8jWu3aHeo)`Jwv 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

4tBph!U6L&h1MbBa-8T5aU8uFnLr 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�UamQh!c*g!4{ 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

EjA!#^f4cQ@8QJ>QS_PgtMG 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

S1 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%0DpNSS`sMxDa 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%0D#9ptuFPCq4KPB{sKc3MPF9&zma2D5eYC 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%0A?Y`X>dj<-tJWEK~K>9FB`y;d1`eS=@S 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%0DrO8QsD<b3D^85r(Z#T11&LNe6yk+V+w^E9JSz2 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 XoW6{W0sKdwdp?^GL4LP}c}0H%&R7D* literal 0 HcmV?d00001 diff --git a/Lib/ensurepip/_bundled/setuptools-58.1.0-py3-none-any.whl b/Lib/ensurepip/_bundled/setuptools-58.1.0-py3-none-any.whl deleted file mode 100644 index 18c8c22958f1f1bc9d50afc4c9c3d585c14246e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 816725 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%0AaCsRM0n%G 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%0AbCZO>=Ghbfsf0QOwtUnzl^2 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%0A!BiC;$j#xeP}>7e zF_o1^h?%$q$asyupCAsAILtw4<D6<BdeXl?Hyi{4*3e&Km4e*3)Wp6c``LJMW{q@2 zhw9`il5=-j3&1*VZk|vzz?^Vw8ouDPKp<!`<in=0O=2a(4x<R+HNi3kE=l|MJ@Y%r zRdpJp>vIo*UaU=B^s1;r;z4%38%T%HK|KBx41}*Vdm|&ndv20RPxFmAFBwH0j<4lc z60k62T&63ylh#H$EDHvSG8~?+(ewiKGunmgR=_ZMour%n#W)B+0w|mBj><>oX4&ad zn_ed(-#C%1OP2}DQ?}5qI@Dv^q7CrjkA6cAbuZu0uy42s$KH#wl44ZNsW?8(!zcu? z^*7>l(nHx%jk@r!Xr*(Wc_J{*l|jG9NtI#e$Z@ED<L6_vDPd91c+)J&YJQ9VWyzMW z0N4FY`M77DF8u_(wmE3jpR5LGKZ8eIpe%&<Om1&9j;k)ldnB7zvT!DmP6ujAC$Z<& z;3fu|E=6CX{ePnUcBTQyzshe>G<c5yPm5d|A3fsZ7(WT;E#o%@Di|;<KLG!788Z9i z+dZZT{$AvobhkdLdjGoNKuyl+ok+w}AquF+*CzRuBe)Ut;ZgW}mbjqk9vM4@xvsyM zrUE7r4&T?G&yX+Jg7tgAsv-#LG!g+#@0y9T&5RZPsuw>mfQinuVEk*v5$NNg*upyu z=5>y{Lo=spa?;24C@NVG_xk6ZC?Ib|hQ3B;&`gn@a8Xq|W!^iih?oVSw@tF{jDJ^A zOd3_ZwCtM#U<OxiG`dNLVtVzl!}vMDE+gF-(FlDnus1*i7%x5r+VxlXoth~IH{FdC zO(A(4lN^j0Tn*<NVC%&2!d$hyYkuL<mWjTEbu)qu9f>ew98ydlJ4V$bm#~m%pYjcp zM6pKE3QEN;fs3ULZj6Po5}=Iq<H!^kzrj+ydx26XoNGLbJtaS8rf7-y#=NRA3KyWL z9>NYy2a8?HlUbonRRtb|dhPz*i(t|mlo2Q347ju46I42I&%}~7r31Q7`q9e$*f!w> zpcnl97POj)EZfn`aR6}3DkCs@Bq$xLY$47sZdb31%gg7ZH3@BheK_py?dtjcyfUeE z$C@~wHLJA!2OTpKW}}TR2+?J~kSn@zyERQqp;Is_>=SdRIABj~URxMXKtvcBVQ@G6 z+lk(?{<~By{|lfSl)^yc;1`>J7U0BgJLTL)+iP?bm)&v{k9RIFtv1%T<IYt}^33u6 zaegxiZS8P5>g98IwpP{;hHj@9gb&gWulv{!<IMV?0vX%Qx^v!_(FIM!diMH<(6#-7 zre~Ls-+L~AofCTE6l<Y9i&bH1*QI|JcLZs4bS#kL&MRZ6eu6y~|2{eUhIxD?;pPia zRO7IZoCDS1%ByU_d2ZYgywQx3+ZI=+lu}3<zQY+`Qel%e!a%`o9v!_>&fv^pIbc4~ z4ICfb2u*Xb75d@r%bQJ8WL^x~vxz>G7xEQfQfByPyr~hW={{j+Jmy9wdi^2b(XxjZ z75D44jZGnRIqUQrSlE?m)EfiXcPs3hBpsGB3)CIJQd;TF4Y>x?;raLx<Mv|@1Ge)p zn}78xGltrW8ua=T;HC^RLqHxF02(0Hz^vfvV8wx4)udIEF>=5hM{DFnRe_Ceqm56$ zeUMe8wv(2*?NlVgC_z;hcOcSrxiiFJ>@cPm#>IB0wOn0_c?U3gl0dUY_b6?fzHY=b zraLU7&-_uL0%wDc$Lrzc3|2jF=OLlRF8l}q;*#FGHW|aTPFkg}|4bOH_*gdVrXs7p z7CU+4hFJz?V4#Kfu+FG4C%Tkjx)LGBmC_r7m<r7$GZ9NN0gv7M+SS0Wmc*W|UX*FO zQ&9ZhQ?oy2JGk-<o#e37|3x#jorS-hYg3zpRU<bI6g^xHHiW$ho+_D}CEdcsuP5e- z_0JQo`+mz~@^>c%UC0A1<JvuRZA=;%Xgd$hkF)Vz<A`$rFI)bn{rCK_Y*x3Ap`0%j zBBRrbg^8;-Wr@`c+4+$|J+u*wjY0s?RmZ{YYt+Aw7v#cpw;P(k{L@ayTqv>~8b!1P z#A>Ar;8l$U=#(z9UHzp6e5PJPi3PFh#ihBQq|`qX6DNYbph0$ho1Gu*Jr)XHKReh6 zT{Lw<w(oE9Rqjd1Ulf-;{VmF7R+gkI15403BWjJx1WYGMqeg=Ac9W!q)H5i~JFxm+ z$8>j{feyb9X})%LQtEj&>Xd2tw?!Ubg0IP<?_QmKKF41?xtCvLU7lP>zBktwEz|V+ znf!BvKDV@8-3T5}4mgk<zg2+sBEMVJu|Mc2&26RO!v*Td0+382dcI^NVQ_f7*Oa+d z=H83k8o>Uhh5eXOV%}GafK4|c#7+*-+bjJIQ<npNoM^Kh^|-3{@=3&%Uz;~vO8Jj! z#*nl#`-T{;(+`Y;_;;>hAHrQU9%A#jVmSqD>9h9fWHlf(e`7DIH3Lf)S@}Zdp(G(0 zor`w8H>Si_Bq$lW0kPqEPLzv1fg>qnV&diB@osOX10~F@{(@U8$bL)h0UCn;Sgq}| zeP0uN#btw1BOc690(fu&?X`;azW3~xz{vs1b@=4PynHv6T%Mj!sUWX#zeQPh7S<_$ z{N|I7#SgOzVJYu**M+h|Cb`}1k$jzupi{4r2@`Jlk<$wWs-FqPqxt~D*C=Id&&esT z5HQkx9|%4T{;k=cR8*Bb7e_VU!7XogRD?P~EBAltSEEAmv;z+jS3HjLQjVNF`Bl;c z-Q58bmhJsCmHYahC)(Ig_O~jL+>7nyBSb@QZ~jLo00j<I$4^Ok;5mabotK$J2Pumy zN5J-iX$~*2)>GOy>(VWuu(|SUA(sqfmQO80AeXD0n8^7u7Xm;0`NE4?8jhAL1`i)^ z0T<s8BGh)K>3Y-?s$Jio;#?L9;6N2vzocZtuc-$_O=T97Mo`vO%Qj-nuRx(6a}3c< zxEGUtg?_rZYl2K|A&q&lP5KKm>`02x8eb~OO=rg(zEeE`Lr$CMlIcI8-z<n*D<XxN z4P+#EXM)`_Y62IsTa2_RJ-Ic`Jw^R~&@~LxCXgaB^V|sJ=7~Me61`djtw}aOIes=2 zYp3~iz`jx)Msp~bW_w~VEixD55fBcKBc12DaPrU1w8IWh-;GJFBW$W=tUtHtp$X-h zCtO(-58m}N3$?A=K73<^ZHi-L7Inry{KgF42%H&>BjsdeRr6cnaNZwD0sGo8;q>A2 z`p{OYyh#Wcj~L|>ft(s#eIhf`3S*m|NXd+uq_cc)=xBY}7@QY4bz5)?)FC~Kl=M7T zK^IU@$JfvP8596V+a_a-Jh4g$mrsBGZc!(MM!xkgGk8g8MCQI&#<}nDnydr;LSQ{k z7(N<G$*_1!pN<MfE=L=tjn#4HCT^8Sg15a5-s4*w##T!Ri)!qKb(yr7)!KYd-~cuz zdh+-M?6Mg6#vpb6H;e<e3p#G>E&E*cv{A|n@|COZCZ$sE_0S0*Qfnh0Svw{I*Cr<R zb?k!ed1Ic}7>leO{m*;DN;ND<XXI%;;dAz^$cTw<zUh)WvP}gDw|mu*{h|3JrN19m zNxSIj3cAh#Y(Z3qv?IDU+8%;KxWDK#7>^>;HGqi3=eCf1M2iXR4-Ll$Pm&bGmbS~6 zDp!N`%+xt&b*7|aqruh);gT=Lk_b#afJMp7ctMH8L3|lfYdhD*B1m2+t6|pNRj}rB zQR9l<`YyQ3okhZFUYYq#S)BJ9Z<b;|UZ*H-p7Q-&os;fEMuE0Fdo(yfJyvqHiNfBe zsl>T>)$_|6Jyh-=TO2XYdteX&E$AnD`T4BH^vEGez+5sfmloW_Sq4VK>Az-7r5uk7 zf=ni_?8y<l!-cf<D+~F{uW-*!l9f(&P8Go3y@jPk^SX58xfwi%GP;KmBAkfCAZ0QP z-1T>_SrKaoARwim%}J&HLZy>kAh7kNhvI>bej!oBDKo^*ivJR&I`f^BoLp9aeS=z) zcMr*cI~^cd&?0>I{)GIkLXO{@3{)_HUf94sTpvJ;zpBFaH4Ft+=)$`ev7_|OB^bdy zkyg?$`G}brOv)%YBt*YBQi@jp1d<?m$G;QKOl<m`*x`NLJSSUL&8ZqG!Y!n()Brmt z?-$j&wL2&iAFGy-`@*QRW5=M)iO(<yIa;0GjsURpvP1>uWTnq>^?N#cK+!=uTIM!K zHctUyK68IDIEu@+u?>eV65=D7bFzOdloSUDFwtZOJ_5c17eE75z3Xnjt`44pDCXy7 zNd4ki>D|TW6p%O!{xXIOQB_G-SP#oIsP>geu5;ok?F|h&Gz8KpU3NX3B=gAl++Pmg zuV<x|@pZF%x*_*)c={YHnYrr_56C@mzGM3~3~SysOQg59f0eQ^|NH48w%F773$;E~ z`fLO6I8zF{nSN3%_W?))nvgLd0NF5vActn_KnZc8va*E=9GU{-kd)e`;o5QIJ6N=L zSGKzwUcjt7agxyUtXj<4PI%*e^(|{>84~^Qyz#nsKqtXnK9k@0fJSz+v7^IbKIJw- zZYfGE8@VREI_7C^t_NAR@~M;e{rQH9aDSYU3`hz%oCK>WktOV;JHgF7K1tiDT*TAM z*6u2DEUR6w1VZ4;?eU;bE)yaL+l0sC4PW-`79FO&yZRHqegLZ~%XaGX7A%<*3jiX! zi{0z_dvNr%`twF)#y{;ocX>3(rG*``9p4*hDz#<}N~NDWNv39#_Q#TIxcl<2&&O&~ zD_WVE-A54Hr=v`)6{bGR%@WC0lu`}z=fNjRPcT;6AdZdWR8PwBg2SY5f3QX>Tf5~p z_WK#Ta{6D{#hV;PoH9_RlfNCHPGVaTU0BN`+m`w&Xz7=E;v8k_P?DipYH9as{9O2i zBu80S7*uzrA<`Mu`v{yUp(bxKe|w(MH{j^cGHC8g7*-_<c}Dv+lWgFMI!!u3%-UMN zu$h=%65~POU8LrQ_NdQTP$~-nFs<Z@af+<GT46cDlQE6;vj6;8<nH2QTm+I46`{tu ztc=oKuXiNW#aP^72Iyv(v319(o#3-+d`r4IOhj5ugs^Fk+HmQ+0)9CAfO;R?Qc9p# zD30oP5e)mgl&u&oi}NNWiNxB=K@@<u28JoyMvI;1aplh)rz(VW>DP`B<n`rFneQ#~ zPIImf^&~V1Bm!4ZWZOj<bc&RoJS{HYvCFsS1aY&t&U86XSkc?khtYqC{Ht#r(aX7o zIrYV`=to@=%T&OA@<gmOdw!JR`Mwn_-XFlY<XhE_T{<Km;kQHSAjPJJmgR*ib+Q*> z=w!=yLf|Pd;Oor<w-U@NXlT<z0y$PcBHt1SlB~JtNIBiOhBtCpbD<4Jv0`6se~ONw zJ&Rf<xZz0HnAvyKoz3mQt1KL%2smHt)Ut{oB@{ja#oe$&1SaUffr;G1ouFkKt*3{8 zhX6{i@w28GI>$Z37I0u?Z6|?$&!%emwk+*O6YW-smwg3Y8oh0&8PmODClW>#)P#Ca zUo0KzzKM%^^@n+}$ivGAd`9$1b%hvlLqy{B5q|+eIj5W|3vlNuY;O9ZH?N1<JqS4C z6Jp3k-3B-U$rOyP>ht%~X@=C)VIbP`K%a(|@7QQ`u{QQ-<GO(&z1fo|Ci_;*5vY_` zGli(cH25LxR@fi_ZhYh3-QOJq<~?#XO*$d2mhc2^23985?44(SK|d$dp!I)(4smMK zoPh;4%$O&<dFN^+vN?*+W*=G6>1{X^_<McEw0oIfwhMhSEHpox0s>>XO=VA}`_KKn zRm@<XnmQNzoo`vQD2mKB+8$SGz-7<nw3E=<eMQ~GAZX=hIEJl=!CtwbY}Qt^scoFi zVC;EERUUVPL&X>Qw;(to&vX|qq2a6w6#P+KnHE|2Q6MX6H$Y?y;X17yqZ&V0dL|(k z-F1_Do0@LazTKqO@xq^YhWa=i;O0eJVX}V3sayAKD}}}GIJK&J4WAe0LUwOD>(OcP zAaV<9+gxdZmrpRR=c_wEQiFrzFhX;U>I}n}uEwni;zIhRpR4Z#cQ*>BbgWyO7?*kU zNf~)@bv$el7uOET!P6Ey50K;nlm!?o*OPwmaJMpHT8$mGedV*4=#Ozs{OwBKyC`U| z^62M<xQn{2FG8iN3qmX%eCvxo+?XDQenc{Tf_Afo(zA~A18?~K|HN_y_O~d_e|)?_ z`u|ORaW-*x*82}6?>~aM=5E|(8=~)SZ=eIh*v^`*qlg|hNSLle81zj%a+uX;JS=LH z@aDusA*JLcQ{?CF=X89sxWtQX)C&B#CTZBCR}Y3IYZl8z>xpj~+Qms}#j{Z^1yN=Y zQt!b#ygT)RAZ8<SnNTk75U=0RZ3D8$dbuZ=5(y?vcql&RNh!ye=#<OyQAe_fgKoGe zuf7ze70Huqdg)9hCEY9G@@NqyR{YFsNzM6uOZ@SmOhOuzoJmGREhpVMxG%A+hZBNU z1}}P@v%D!!*0indgHg$)XgZU^0vj9Kl>O-MiRfNXir@2sgsF?l5&WL{r%FkTevOf6 zKlfz;hd&_EOoxf!8^U1+^~?eBWa!W=b5oHd;CIOcx}o|DXZ;ZT0z^^V#2<nP)y>Dq zAMjffBEL=bW9LXjrz;9(1t!B6M^Z=ABDnWH&IDXz8l`ljdgK#85cQaWzX{6Z#xE$P z1Dcg%*XxV&q$$?0NX^P*re?X7F12QWHz?MCIdiqn5cTVjg~lUDY3q2-G?|(wpgv)} z%oED&t~5h=1=3fe1fr0tbxsI!A<;Q$85Q<OZ^4dAI;_pKQ0+8JA0xHU(dpU7Ix}by z>=h^ZOy+4#z@I6GwUR26qL7+`Q`iQm?Pjy7F=Z-LuGts%tR9rmsj|t}4wV-r@^SR$ zGt`4%pT2-i@3X2HhP!_PlS>dsTg)GzUSc6IQ*pao`cs-rU~}f<hQ4Lpz(UB-BBd{M zd`YrWv{~L0+~?pQ{C&D<e+s443uUm%dB{d-pi=tPSht}*oE^By%&3nQx_`^1nvHjz z{dRUVz0yTmpM{88KH5V5{4Asn^}o7QUxNNMu0#xtC`+xoezO`VB}u&H&d|@`IBOXj zLWS$YRlZ4^SH+^H#Xs#<CAVaUu)%-!glQfNUJ%4u_6pXh(um!9LTzP85|ERQ#vW-> z0reYXYiqCoN=-Xb>YAadhvu2_x0pAz4-fS=JhO0qnwbQ<Ozx;BJEqjyfw4&vL=}cM z$0(31G3SUNZr8OE1`)of{<-WIi!*Rh%H6Pp-I1!4Yu{W?E*&bO)&%{V)j~_)i1$)( z!`j_yufOZ|e(F@}ilo~upxk;Pb*93qbZzN#G!;w?QC;&C`?#Knv?39}Akln)eH0iU zI*V;H%mVU-^mkdZiG(u3U>Gy2Al;))JT2LiGsNTrxuG*DB;#N;Z|%`YL>{RmrpT)j zAx_t%iP_GR@p(uAjhQI{EJ1bM$lJb1aA~wF8DbX=`h<x1Q96};ch{*0kMY@S2ss5b z>vKJC++nHSa^^twrf>9GSclXM%0d{@=coTTK==E|t2^`zgmsXycwRoE*xz*un}p0W ziRcCbyDuhcPKUL|IQyXx;(UuR+m<3FUjHtZSC1?}l>JT|?NX#S<6^&?=R0%IUwO|~ zI-C-aBwR6#N{_O0gNnI=S_(zc;8=Ig2EVj&!Fd3VL@uu@PPk(c8SxG6#(u~FBCU>o zdIxb9Pa}uY1`B|t%$TK)sGyv`rKEXcbkz<#C8}9glJtb!=ptTvRAg+ZLoY$`x+c2A zZ2sqS4cpyj6xtzYl^~}=HG>eK^wKR5a6^H0u9skV3b-@rfdbF12dgctkP)pzR4{6R zG(!DErO(+!wXdhT9(&(8hr&v9=E9%8&NZ!r?_#7tpxA9J&3Ql3Uc}*V5Pz8*-puTp zsE&ZL7{Dwy3o@eu3U`bBEVUS5dG&)lSd8PCl=UVyM2YbZH;tBUk^oEd^CPGvI)8PQ zgQ}Lef1!DTjCd(p4e@QY4?(^X>k`Epw-Hqj`^l#eQ4dlc42WkrW~%p<poSJ`&0ahi zsCzy$+D?2G253(isL&>FKo5K6&L_}^?$;z{Tdn7~XjhD*>QjX5`dpG#6c>1-REWEi zi35+ecZ}ohwCyv?gaY}(hgFmffIIG41hl`Dm+!4I)y?gE4a@7RQ&D7&NV**046aX~ zI8I@RS>L0VxAAszev_ERk&P#se{+0iyI6V@g2Bva%<e!a3<^@%^a=rves!a}{Ap56 zK;?zc<hN>g4}kC@=PuICj-~Myu0QNV?yw;#h>-$&ecZ>hy%QbUJ9`+a!b#Nut~H?( zz8?OZP&scNVw=f5_JE4`mvXtKRy)x(sAuN0jK6z?@uK?*MH{4z=X<~sw!{nz#nP%p z*vGaIKbTg+8#E;+tCFb08ci|LT{Hko`<!Q;Ev#1hJ0U90grnA0#q^j00SKkQ^%l}( zs_(Vg*RKhpjeNP>EFr^iK@l3IJRz~aBOFwr-n;_-2UBs$gNuNK(N49~SMkgY!vhlP zbR&KjHQzW@($o;u2WI$Qw!_A4I^c~$7uE9wHdUgUTkdy{)5E!lZU5V7Q?*rj!XqAP z_qj7oj76MI*;)HY-mcHbzKD5paEt9GP8xzF>QS0)-+o^xIG=KlW274Npd2MW@X_i* zyp%ltXQWjW-yC|1N+>}}jXWRL>QFKP-aR!yWR(fKM%@FaDZ#}lolk>F^=Jg^Ole+S zABmzWX!TfNx}H*C(ASuj%QOwkX$XMD+^J%bT~fh)wblkaQK9ln@wkxFr!U)va2;@U zTeZ~fJK5(e;XixBNL?jYTK*`o<Ir5Kn`_-lvYDoi9iqpA%JNy)H+#i{f+ezvM}91i z<lR%A+FV6?X-#1$heB6ES;|15>q4keJ~-hx)VY!7tmr4o^~#6b<}>ay^B1X;3~1+k zQi!PCs>^q?_nDZ1QpUhTgP~Rb15H)t%P1Kd-KcfNDb#%ljylGJKkgp33G_cqV?8oj zD3%Oku?*K4u%~M47b-1?$?NWa7B#ddmHrq9ll5oOK?VT@)B@UQ-RxUi4d^;`a@P$u zTI)Z)?*4`9gqhh4&s$ZU@8;kljM_uaP3CogkQ;MyzrjYd$%Hxb&kc2=>2IGK?Rs_D z1Qcz=VWY$WOT&qhv4(RKwjl)_S_Y(g6~)PG-cT4d<A@$b!_>0UxY-x7>_wg7`f2-E zoPxbP6IhTtFW<g#JVcn08R97M&Na6;Q@WEbYM~vS_R0vbaQ0^`9)?jk$AA*ipVV!< zf;5;{v&4E0_!0^kjd-<QS&6<>is7~7b)xhfuptM#ozU3h(Fwsco6{@5x!)W8@EA2T zUap}RwO~DaU7Kqf)1yvVi;NWWvA(H%5CGCE8ugoUv4UD)oY<T~ozpP3z_cGqahd<r zS>yEBJNyuTDCTZp*7##Cffg6J+?POq9jXjC-bI4uDPCYC#5KIu19J6MJ>h=j)t}-1 zB2DB|6+2Pi`&?I4Qck2MmWlVuU?qiuV?S<mVrr1(KnPswThG&d&7Pm0pQhJQ0Ge=^ z>dQV*aF2RbrX=pvt#CSeD4WCEqxHJ0m$+^od<A<gro?!vg+v?;H%Zft_5dQH28b9g zBsA%lZ?I^x@YFZWfsvql{~YPBLfp*yf<0gdh%*49vMD_Jp+y*Wy=*szYay$qo^fKZ zDALsmcc~rzM60IUy7zct!yG4=jk=1)zHCo&<C`BLzoLrEMlA8Wc+Su8K^2Y4^tfQC zgB$9|!8-xo18k5MfW7PYu}}D_4d@99gN4<Z{D%HYPtb&MW3&;}2`wqvMAif2MEF(p z3|yuhwX$FS;@f<6)bL(-WFR6zZXXE688cPGg^1EY=;FgE^qcF-MqFCOD=?-5PtaOI z*{CycWqWecAWyR=Hyv<o=dD%=N%{RWN8^Onyf3`W!r;+}E&Ga-puF;o;mBVjx3rPx z&z-7@JM)Km)(MSq4xQvLB%zJPD#EQ(ZaBU_iyTzobc9vYmAHK+DFlkm_g-PPD;3ww zd@chfC{M+VsURxysZo$xCaI6LD&rz{7@cU;o><pSw|e*X-j(9#CHdF!wxuJ8YQc5( zLj!y<3$lD>#C)@;IUgT~!|F#)t#k(Q6Rs7MU=^7n#N}WmSFX;z7)rOgojDi9J`*lJ zPdM7`zNuTIL)E&IpYis>a5H0tt0yjeX)9$)wZhaIsASW9<<5f^N+6~|2a-Zcx*Lk2 z0QmBSI8l@LLN5&oT#b(XG|2Y47U___pbRJM*FUF}lVMQF$GF|<_ATIbq&8zU=L~Gr zOMt)o3297QC^cu_aO@N6d}Ll;!?y|CZAP?}Q0tF5ZwS<(&3xZYxSdp5YG`*>wr1qJ zP8VHNf7qUe^o;L`Gqx@tC~kck1H`-m?|}R3iL^#|-`EV(O9Zdq99g>t8r-~o3h#k3 zw3_BxCw<d_LUP7myd{ilTNCRjNz#1!Wi7Tq3FC14)PC&GjS1i?$eY?aJKOe5(DGjr zOT7#N^yC!}z0cVk9Xsx*v=RLi6xXI0`=ZPa)l1^20$b9j(TwNULjX$Pb?A>xxOg+Q zG%Ki$tJux>j$zAZRRDu#60pbzof@$D{i$a;iEUpOpaln`hV81Q!~q6~W_w95U-ooq znSa#n@i}xdV*Kzdm~mm8*?DsA@OU!|o~9@gPHk<;vhgQL$ZXV-W71W%e=|VUJ^l}0 z=h$5d19aK&#<rbwY}>ZkvDvZBj&0jEZfqwV+qN~&e4BUHn)wU$t*Z9fr?7i&)Tmx* z$f@14M=XtFQ6xlzHhWSJOaW!do4$1R_`S}}u0dG2NYnWAJ#i_h9^MP>qZO|+u+v+Y zn&@Q2!;Li)ioQeCK#y6m{hhU>?QFDec*E+)pU@1~E+)f!U{w<)sDLpz;BHlV#gc?V zC3hJ_)XJ29DfVBplee32Sb=+R`$Ct^HAmP~D%GNrHcvZE9NmfS4OMo5CvSuqfuWw- zPua-#kG9u>*5D<F$TXC1Atv$V{pqq|@WMvlCl~R4AV@IBb?KEKpzgE28QF0Oa*cz* zt0s)dHUGre89g;NkT&MjfQltU-iv0|wB%V0&<Vr%l^}x+4Gz0{1T%qdCCT~Mfj&FH zJ@t|03R<K4u+62i@}GK+;!>LDj*{0Uo(cH|*E8q4iBl)+huBpob~!&&SJtWZ8LQ=h z=c4&)@9z^To|~)~LF7LIKVzI(%be)O#W_E_r)i&sJE-ZdI}5Vj(e|hxwM}?UuP=s| z4tRNK016Yfd}ztIW1J?*tfI@mrV#3bDCApRL?ymyK71yzfTg|1ar>BS0fuSu0f>j8 zkONXC7&SwQp_o3?dMxCesG!KioZE++JH0-3D8Vg6gP1wKB78-?!HZcbd6!VTQM4}1 z>`IS!sX-a9t0&3T!>PrTTi@gO_~NuEcu0N{iFLuZ!iQ7b`RP_;@lU+}$wlIa9+o?y zf`EkZ{Qp|TT<xtq{!g1!i|&uZ23O<HmOo@(u>M*MeOdTcn+NwHL8n!nre2#q8-1-1 z2a{!F>#|g#Lb34&|K^V$tEft0FU8t_y)X6zNuQ2ftl19Pa%GEL%AE_+l>;=2vC8C4 zq|)Nt8G4g?59FG1H;^A-CMzp$(c;va*8N<n%V7en9cI(@+s@O^d~vD;l<i)XisGnu zE;3xQC5jb>^{N2pRI5Zdx9QE1G_(<e`e?}#H9AaP?3gu@dGA)AoCmp01OD4)RQK;@ z8VAMCAT%qHL`f?QxKaqlBL2TgDq=dRkxFtHq%y72J*Ncl3z=+d$v%!UnFHyZCy)4> zFNiC-bAKq!v(VrQe;KlBv!s|xPfT*7NusD{IvD0^6EbU`iXD$(9W$ZBk(E-wm6TBS zS;#o&h_Rb}Gjzk_cdb>&%TQ!Jn%)K{p45}4dkc9R3=ELu|1y?k#g{8xJTpx+4W(mG z%11bd_@RaLSuNY=%CMEqXwd0O&w*(o&2UK4x8REwZx~UuH)cT056zKo@#@s>L(#<D z(yh-KTM?&@Qjrj;XfeuV*%?gO#L_oaPHj{pSY5GyMUXl|n9*YDO8UC;ZLAPHdU<p@ z+^yII?P?thsF&*4o?tQ2)TE2>^pv^>j;$yd$hzuPRRVugCb2$0U1&ag<{k15|EbVc zODP$1)qy)fJ<k8Ub=1E1$B%1|8ZKS0LF}F~BH1YQDf^y64Dzi?HctVA4EClW6vF{Y z;Qn|jeqljE7iNBj>kH?Fw2qKTqD0alLL*>#MvM_D#Eu&lqy@gh`Lu{nU`FIoboI3U z@<xOcRzCYZ!=aAY1{od7il0C3An0>9<o@ui|BwaQQSrwCu<(Ega+_;~IVoxnuRzU> z3LAkF=N#{AnE@s_h2uyl^>;5IbL-?DWau^9h@36AjZ2Cw7FsI@t{os_4uthHCKjTk ztx41h*azaYac!38(rGH_YI@WOWg(zSgK;C;&<v-_Qo51gE+*|e0d~;9jpFnU(7RiJ zCYX_^R}I?s1%#-vaA^3Yy2DDQaDZYbbf>j`6_G{I$6Q1P0_iZN&)CDv@piEBBE+=u zQc{C4{3V1J(O^U_brei03w1j9%zN<~jr?DA=%@Vof9^^1|2#kM@fdk*$CD|?4=9_e z;b#<zw*paC5g?jTBFuXYg65G8Ka6tM_8`bN;flzhph}(_WlV~my$yiE{q`5uUBehS z&|uiX;a*{<_-_$Jcc|4xQ-kBC#@U9G(lh6Z50jA&U6bq{qW!zaMS}=at2lZNhe+uf z$#~iuBL#)E_~hVCpiBCw4aD}y3ZV*6B?WY_uQt;U&;iXT1bX2>L9KcaT6?Fxra5KH z!+>t$5$$3SrIi@Y%xUnEMK!|PTdM8>iF{xe!Wp;}UTgqimS%;9Eu)N4!L5=|@IR{N zfkL@LK|CXZM7B_rjy=3aGbBR7KOi?nJw}+;VVWf><qXoXluLSQb4yY|6F4IYVLXC^ zuK*_CJ-HS9BwZ}C+pb;97)F!};ewR2AtdVi568tS#RswQV2rcn51U-cZ^pGNwy09~ zxLJK#96oP*7e0XE6nm$&lFcS$mQLQ+5DS<0E%_PtH968Zv!}GK*wHE~p3&;>QO{RK zXAB;J`{(<<n>j^=n7nL*f3*DCTb=TTH1Vc>8QUFQPoQ+H<p3SqC4}Y#Y!X~MHrx;i zsS((gJCaB|{&mNrrB#WZrxu8qpIc|>V}-(&CQU^u!_TEkk=YULe%Xj|nutp}3EtRR zhbngE^5?(=jA5GmT+sLM;0~0{pyVLh4Atm}XRN24O`c8{xH(q@KOUwA5e6l1lH5={ ziB!naL2>)jz`Y-qXce<&dwU2c7KpEmu$9-o2!SBX1wrw^AJau%9cs><%#?aZ+=+_7 z;`}9o5xf((ZdWY_J?((k5R)&b_iZ_D2^LJ7`cu(|N6Kqu<4XX%ch|}eJKn$F@_TJJ zOYYW=UGt%$6LL}bId1&o*GdRGaxrp3jkzY7)Cu+^1F7mb1zB}2%4h874;WiCS;+b^ znbcWGH6&CGO>=-$d{J|QYn~lx!_1FA+jCv=u|RfwVL~u*l6XfwU0HE(*1T+Sn+?yH zq{~0ru~T4&=2>3i%7&k@!GlKMmv;z89f~aun`<554r3ed@V&MTi=?6CtsegsvYX8% zj&5y^THSddpFQ7$*=gGBg9N3F6%93)Ju482K!+?wqfS#jz2ba?$2j%FaCUc?f`R$h zYe1m{knKR@@kp>G7|Y|{IcDn*=f`S^G?c~eVP(cSk_v%Gk_VYJHR<*42`4a8$xQze zD@(>Po>IIk3{KZRu=kHCQ9{1(mfDBjt9E@zttf_cK{pTbq~hNMuw(a?UYUby+Ha>0 zn4AX*Hfy{6cI?TMW`enOfIg3mwLC7G(WQ0u#0^w|6g*_5U3w;UiWVz?TF`_~Vr{t~ zOXUkRoSC(=U~<@AC3f$sfdmWg6Y>`>HSRBrC_lxG4ee4Ttm<AJ-4ea2N_8QeP7c5O z9O~$YlvTlCbvVwq^SK|*MU@*~#ki23OiETf?Fe_3wQUBNK3v7-#G!DuUfiI)Bo)R2 z-z^^<XN)*l!lQMU-9aRjJc$lUa$v0O3E-B=YZ)+~Giz0IZ#u6_x{#{v-*8y%H>ZGl zvxS~3QTsi#nyYsuCKq~7)!HW>-y{Hcr!do)R_B<0mpHm`exkY9GI_9??6@-wUl*gd z_WMmY5TbcjS^iT>qmAD^Xa`7Q%gFlX>F}Avr~?cB8Zf1Xl%FGf%-}z<pqKI~{@q4` zA(BkhaL={iA!k4QI1V%{rk{A_3=$Ki^}(flLqSV0ETVnzi-8q(kfx8M@@TgrhO6_- z@gE(Eu#z}ZQ^TVK(VM2QLM-v|^RcxI=CpJez>0D?SQqPi!buRJm)77U%Lxt|uB-o= zYqEVA3%%b3Fz}O<1LPV4cI#Z%O{K1M&xOMS1oczuE%<L_{kC;~J_rEc*s}XF`6E$F z5f$gJK(%X;&hIAbi9+Cmf7xm^O{xw<!w`GkGozeI>Zvh~tZ9rSo!U}*2}dMBw)hVE zve|cm<r)qoqXGl1)HO@PHBw7j6d6xm3y&FIMrG|5UPNoxq<6u~fEwdJ9n;XSeL*V$ zf;p-5I2=U!TAX&vhKsje*NCF&XOr9D$@R0KxIHR(gRdRyg~hR19tC+D+VjyzUS)>y zJa#^V`izBJe>w=2QntL=@a#tmY)*F@T(&CkR3mCMxB_^%W^A)G^jZbo4extJIeL(j z=9e>Xsgv;DadL+QJ|EUA1OGYD(iXqzu$-Cpq)Kr(Ky8{YLOM5bB7@ORvNowL0ASd) zTif-R08xv?oITW%06^nLI<GKA^#AsFWjYlL;F_&B9@<Lo-1hNx{yKW7%G>F~af2)k zIlUB9RqF2PzTnNuwedg~A18?q(`pVZt^MOCP%`1eTM-dEy0<kWCl}yqLU|uvoa`B< z2!rI9RMB1<^6&8&kX1vYUdtif8<at2={Q~vG~dy#49f21h73X4#@vG*u<-FIfKMw# z&S;9`{4EOKJXGTAq*^%<!V-wmn+gwpq!lO=iL-KY;u>ozdzr3sVD|D0*ChT3$kY!b zb#Clos=I+gm!BwsE3s*?IW4VI|K_5_fcSoNdTJEM?d6EEI~g%7e?2k}zt1i5ZSV(8 z)E;C-Wt?3xw*QsG;&QpG&J{bV#k8S>Sc45UUs7!W4(b&;JCe0wTXVE0UyrY}j7~e{ zdVt)MZp7)(?e9C+$lTq<s*Vry6whd>GwWS#+T!37IOQ{zAaB3J&7)YX10{VnM$XI2 z(}3w;kL@Y@yCWn_<#UOEA5$TpFzN}$$SC6Z|9U1;Dt|Mj&VDrrO%IYOF23KPsI#4p z$T_#x+(QeRgf8>{<w6M=rhXiJ;t6ZKup0|yHXn>oIjx*pb9wWF4FYOplpZFRKQTmI zHtNjfFb#kLr>HZ7|M9^`m-0TsZ6%mz1?Jx{2g$RJ?0C53m45}{uucKPvze+?UlF~? z^!`Bye#GW{-44e6INwnb8P~Zwb?9Uil9vA{g#5>~J3gUU9!6a|YhA)Qz?k?8AO9W} zc_9DFrMgS$|MJtEsMH#~5&XVg9DdOoEK9?BUDN%_RnuqoqTRBG?5W{QjgpgP-OcT2 zc_fzmy*Pe+XfT-6B#RwC((q=>N2F6x12u1*R5(NZL36TwM~2TWGy-2>=L5#gjv!A6 z|0=w@X&=|^=j|I4?)9<v_X;Ke4kElJ7VddPB_hwkfKdxO%-PX5=fSp~E<V$kvv-?p zd{XiG@>Vxem(7CN?I_>~qLvR^y2YtXx0D^k1tpS2G?tEKeaR~*m+z5Sz>S#2&pHaf zlvAW+bu=Ltm&C|D^!Ik@EeM9Ea@vZsbPSCngc7c@`KqPl;%Aw&&*#n3hJL|dZ;f+| zXV}n$g0alCMhA5h=!Xe>(0zt?J_n#_gD|<1+x`ls?p+{_XB5a)7MZ(@^hyHoJU+k` zX<B=H_u|Pj!DrT>BlKq($x}E;+i?!#HRBWcF%F)DLgzsVA-eOe4PDNXi#!Gyt4@o4 zOj9{McVNGm&S?4xg+DqP4*KFkzFum5Bsw$JCbhwuDSuxaLsO0)tHvtfwbaPp9+;Lx zyCm43AH_3|R6f|~xw$4?$QAQrL0ucj*(`4-OBC4CoDKM#7rOpy=6VV852wPFM0qia z^-q-U`lp^UV=(XB7II44;=Hym(GM>)x3f7}+S@{#h1O5A;+s|`1j|{d;Qkv3V7pVy z<O-u!;Jpx{Do&o0G*dWtAf2>I(%lOL;6}nLmxCa+61Z_Wk_n;}Ef28#s}DX461}fm zaQbv(5CNtj(kl172t&4+0EaZ?@#AH^5SFAwW;KYz4a#&nM%g?_xm=6TIg|zCceI#> z)Ytp|+15agXq&mq%)yn=4@g(!^5p`zroL8DQXFBy3OB2MQ=m`H3%e%zj)vNzAM1Y_ zv}qumP1JI1g~D2-3L_{VHYLm6jHCi*VuDGsY2K6ouenrq2^-AUsLPU&NuLTAbNFX0 zm<w9OA?FoBAVqbd>VF;@$iQGTY<hd7gq*Q&eK}vN=|GaI^P$KmuVexH*VXRdV3Y5E zTM_EKCuyN8HjWA8%|z=ZL`)245Am#l;$qK{!Qb&F=1g|Nc;7+qZ(&Qnxr!@(TKQn6 zunCMMx5{$$Me%5S-dJLg@rIbE<ENb%7FP|ZNeB*_k|j`x55D1AYP%?mb_l4cE`(73 z+R<Kc7EvN=`Q26;>e@uljh9^4e}=B1LF<r|ZjLv7q*QB)aL<*$RMxjbOcUOMp-cN~ z)%b=97v!O;-WEY89vVKzE|^0g5`I<cV%cVlu(7)4>*&8mSQgQn1ZlQzEyQb$s_9HL z2cumjn18HbbI8znBI4BBk#KGqlh;R(-OS~d?RxMCVUq#pY7aAN1n)WtAa<ylxmkhv z-Esu6xfI@o66Cb~<=n*Cr?|74iO60r|4MKO=<aEkSP}3#E3sX#*zNpEwU>2ZK!o2r zwL?qbIa%lzTTObTqcRccHy9^dMExMD6EdwFMqH9QXY@^2Sw!(YHC((Un2vM{e3Bwa zZCgl(hn{mVzU>g_iZ$x`D@z*#vhOt0rfR%?y*|K={P}(1eMv9&WstF#hP5}DRuFX) z&Rh=xD>?ilmTkFoJ<}atyTGK%^`!Zf!p}l*r+Gjk<oLDnQn$Sgag_!C4>|-Fmpv;b z2J%h5C;iLKSwK=&WcBNG!}S%OZ3P?NcFq8D*0Fo~ldf3J=Na|V!bF(5Prf`7FGrya z9JqNu(*)Pk#znPMn$yn7wey}mgBJK!lrQXafwvBa%gNF{_9B<FzfP7LRNY@a$}I$c zr!Pv|jNfGFD(Y^GG1XxI5dBuJ!-O->EI^2_NWq1c&hBpas@Sw6lN=PXk(TCe(ukcR zNo1(RbpVE&Z>XdbCtDqNAMslMf%Nf_9N>+`=$@i9@hKcp<+plm+;~5BT^;poNI6-H zk{<*bwt;H9O`&d?3=|t_#;^~yTC(}cz`^L)fz*cjyUh!aV`%?7fWp^^N3^!bOPa0$ zJ5hCxaJ&*?V@I;kTve=)3q1lBonr(|w~Rv?=mV2vd<$B*lCq~|BeIGk?ZTILsmncK z$V(i<H<FOatvG;_8Y`M{S7sDJ9S59i-{E>!#)Ms_8>t4-=Nz`;hNctj5o&<2e8;u1 z4x9r~{QkdilAV(eEoXcXkQ7A_5Q6`wd%@Mk%Jx5!B!|z&c|#&`=ZV(5pdDnLye7Pc z>z<mr?uxuNhAgc_zLCmCnV5;Z0SpuXo^E{o-1oZ=fE|!ur0W|mWmsBPR<^T6Hv5pc zq~@ApZXVT#gt%Qs`A-}3sIxp~z{09U{edU0s(CCXQ%)_}p~@_iQLQDKCIx-{(68j! zs$`*?1~E#n${3Mx59yO;*(8KT-(k5@>Rc}CEbzn=3hK;SKRJaa`b*9FBl5@eEIJ{v ztdz!R`FP_W{?w##$vVMlBb^Lc(=y)2rzocSL!n;J@X8l=q(S)W_{_wU#0@;lg=NwP z%3}%VK<{MKFnGfIMe9P{-({ZZ=3p$Pvqw+(I5JrX49p7}{ZQo&CX!f~z_CufG+e*% z2Rfbf;NW1f*<}&Uy+$VW_S7#x(E~W7pwLxZXXT`xxQM7g2iv@7%8aVrY5jgD-Ckhh zVwsFSqbd-86?iIEQ^+>k3afw}xDNnT$;mWhH8K9j0|;oyT((LDrmKvqEAPW9=U(Dy zvfoa)XrQI-Eo`{rO5)I^A3JGK1sxuxOcbS1I_9}r8M66?xkFIW9GL0!SGrcHBjcEz zKk>+deywS|K{|3PAW3{%Ru@+5U_Kd32R!+rlYx`@p^ysin%b>K8C>u&!={?B8PN2k z|HmmTboUZ1F7oOh^Vr<VC^JA$@z7MU)i#w6ea&@9c(U{7r#ajdE#nS>g_agO2R#W$ zYS$p-5q+ArkCFR+?^l12PyCydg4~I@G*JbTR%B$$%~F=m<SloP)LG@C;}vmOrH+$E z9W`qkCmknQreyQ0_OCVJKsV)p^LjpgBM8J@le+%w)A4z8Xxs$Av3}k@f2}oLG%Tp| z{SnH^1v+Z|WdpH9FpI;FbBP|{ZP^TfH-F(bcIji3nJ4f}P!!NJ==rEIB4lmNhHd`T zw4=$eO}-I%3hgYnJ|#cNw<;at#lo7HrR`he?tQSj5Wwf!qm<;DhMfaw#9qeD%{u%# zb|;2Z?!f(mil10M8)qnPviQNF!=m*(N(_&5F0W;?w9j|b!yKt!#f^tV&ftOs(_Qe~ z3-{Oi@pyB7Jvdr+ecdb5T-o{U=W|11ETo>}uP{j}c*D5b+qnk5`<(C3<=>&S-N|&; zQwGcTEkjR+rml{I?szW{S$AXmrS$c@;b0y7PM3+{Djsxd9eA@eyE0}xR1f`tF)_6Y zdMgm6Tn9{lv0%J*91BOPi!3TbBH43|lxZkJ77T_je1mxU>?oH-z3MwT<5vvK*=6|e z!19DGWWmF7s~+nPpNTm)`y{1bu3@rvWPrsDU(K_QoJy4&0i#f%Ic!n$S=JksrVQhS z01~GypQ>yR;!h6*rVi(Of|-KefCmX#=i_k7#vNrOP^jGooAp{%1R^&e8scza<w3z6 zGwBGl45A~#{rKPqX1$VyvpQ~NJ)E@t>L8>Rm^BN~G;|LPQZI_hThIo_2E9I5BklQT z2D-sszcxMu8lT(Cb&>OesLQ-kUWHUAz~bPua)NNg&yplLq8hi3)=DL9;@aAUH#Z-8 z$5Scwx_5l4;R{EW>wOZN96a=o8~?*O+jn@vAjbt=*x4`_8@#TJ3YxFiKUog)H`iUh zzB|PGd$ZA0R?@?UGSpDPJH}=xbdSI-ypTc7=<b9*6PQ$P<{8(3urks>^)H(G*Lhqd zvs5cbPLN+Q5XxYx@O%h_2#z(RNR^xfr>3y0B^3y-FyywAmIxf{a=c{y@kfsP^&3Cj z+<wnbP5;5Zv%LZ@3W~d-oEkgX+1a^%zJFZ2p7-CH>iYb?_n{3E-yXiV0!?t9VdCW@ zDDxeZsHzLSlfDZa2);9l-l|e5ys;rY42T1i|5HZFg><69;Xvds0j6{=d|j}QlW{0z z^p72~N3itEP$byx4f7PY+!2a6Iwj|DcUM^@h_@MlLtI?VpOkgkkWKYNoF%y<mlu`! zj}8J9iyKq|wd}sGPw!h@sa+au*cPDDRUSAlb10zNPY8Ktr^_y&hXzm|3E|+Uq&r+| z#{y!SD8148qy9Ggq<Lk3x9tgPwklb$#?X75WX*g~TpYg_W`XArF@j-+x^hgog4mk^ zA>#e8s`c0BRds>f91EvVIKS`fYJdBF?p?Wh_)3QnnKcCWAPJPz&5XN(Vp(o_N7}D- zT-ZGU0-6>PiK(pJL8f@z^^4qw`absO#WAUgn*HE?pZq(#zP{z54+buXYWHp~h`#2b zzrq5M<+SEc32rPcnZ$-4YMrBpOlvWM!p1Nj#GxgFJ^?{+5MMYsZ=!SK%v#*dE*t>u z6>Y#C#93r&#!jD?ujiBQ>*Pk9<_(bQ<7injU~h7f(?Rgl<t^^T!5=`1Oz$J`!~`(^ zC8|T_l<Gbp_qahT?}v<iV9TrS0DHeTca^83>63ub^b2owEbV3GKDWD)m@>>Ej~Vel zZ88<l>1TcwA~O&!xWbU1b%|amHMyt*Nf#Qz`3T})6pVUWar9cTPcqYBC^V=!n(E;8 z8TKy38V6<*jSTfnX61@l3sfQqF}xBeJpaHA^-m7^Q0;^<>a{9mKLaZ=<42AbgrQ5z z^)B-o0(3Z%t-}w_wK**y4v~L(nk6R9I@quGI34no@ot+P76jDpcpy<ZM;%a850_L# zQz|xyYA9OeGW>l<xV<WdPaRlN{s7+t=h!xhx=5XFCKMOiG7MYI4LaaK3`S*9xjn63 zs|ss}AO>g{xdnJc?E6lT9uA1xDaoy|K#(1p>Ie!UYrP!inMo+dAY^+VI8TzVOny^L zEI^P#Sv19<(*?}N40_e@g4U;^K#;LQpXlGb+u1XTihBMccLuxmZx9b!TTDVHwMZOt zlB~?<5iaBfg2>dy#+8<}<166u(Hj%sLi#fUXeb7cgcd?DC4d+{Lp{<njYcgpcDt`a zg30L{Dwl30tTIVF0bKs9*TwuxiVn4YK2LX7ct(bEsHe9)O`p;^;BBSppfat7a*JG3 zQTw$9A1qKUmFwt71V?7X0zd?LeQDQp2r>ci0=@>oHKpb6SjYS6yLqiZlSptu*P$+6 z`BkIh?@5I-n&4#)y$r~DtzG}4Dk^JWFQ0O+PDxld57V&sCYB&0$LU|8O%P@*Un%Q_ zS`Ctmv=6E}CcF?5v6JK%1SmntXLh#;j`J`cvt+RDJ+(i;4STAHb+qzYO4~iz##VQ_ zn(L-LelcNjc4jXGP#?%kVhMn#vqxG<7&&>JChJt4GAxuf%0Le(=fA13b588-BQo4! zYX_MNsP84BEm#R=Mtm?{M)iQc`HT(aiC*7>rn`er@F?aZ%mjA3L^h~?komme4Wy5{ z$EcoK7g(?Of11?8m+9sCkB;(+=E^=$mAEb-*3t{~j^)`c_Ki!4tjC}C8ZbGq=x2E? zBhfVod`_NX3tBb~hGaHo`z-pJzy4)&&T!2C8^;{fl3N8?Ys)y^ggIl*|CZC$>E~jm z)&@mY2sl-bH2{Z)2(oEb{dI;SHe3veOr74;_}cskdMHTR*C6o@sSeGIiwc8Q5HSz& zAj`L@lvvM?WTPn*7}SsypV9cQxDlv4PD-ZJo`nf{pHTF+v~#CI@4<_^T<7~-7JTJC zWp)Xq8n@=e@fh;_COaVOaU{rhVPh57(8L`~45M-fD#rehy$az`BFJ4b5Nm%}M`nP3 ztin#KN*f1Cgau%lLMtW$+Nu^;s4e!TrrsY}Mb}ge?RU?DuSN0szcdq$`%N;TR|%er zT}{of;rB$s%|QP`bZpO+HF!lZu@YS36VWlK^8qc?Pn)^Oh7Cn*rS4-C;4~v2Z(L#B z;%q$%x)IM2SP&QpS@$XKFDZwKS%=jGfI{HiQP)cQIc8U0t(!@-5OmgoTP^a;n5>a+ zy(}>|t-p9280vD@jR6YBJ~#3BY<sk3`CS-bd|X{6OCZ0WT@SCF5N-QLhsX<Zc5nBP z?PHl4PfB^7Lw1B!7P$As#;MWtj4iydE{!Sn%_v?LsrvqsF%wP#NLheWAC3-=*F!_U z8=DB{a$#rOcL@&@<LyXIlP!}C)&wU+e)-u$Gx+*IS-*=AL<RueKQy>W!Y|_9Yl<$L zycII|t~#G$WRWIPIvkXPA;J1o0|HW^y66}PX`t_-r8nZ{wdw+}sBlVS>j&U8vZl#O z3sStclH0X9iviX!&j&{zZPp@xUnS_7(bjPX1L&~4qMo^^uUJ5-vTAZ6)I`O18t6io z3?$4N8vu=O!Z1NxbWHWCeOWN5^eaezyu;^1+IvoXL)%qxts#@*Zxf&e#*cDY)YR>} z<Y-Cmy^<bTj^%Tr0=G#m98lqt{$=sVGl4_o-7Q+WJaiwq`4ZXOk_Nd$q_?|Pf0wpB zR+M2OF5BwM#m43OI=k6}W61jPjkOZ~=8(sDCnVr^L-zvyOJLr$6V69gpO0>IfuYb< zQt>K;olm4FjqAP@uk2XL?{7o3>-40-=OQ*6{nt}tQCg@*!8DP+MfScfvk9f2_?lTV z(^z&(pB3M<EQJX!U6uKUQH}8d6o?qrW%9$f$6#J$DlJ8W7d#dZW2dQn{p$~l3bAhy z0Hg?eokl%ebtQGdU$35I`ehbi4<QtGJJo6D*G2uiTiH4xa^ecx1PS|}GP%%4^L<Q7 zH*b!-vOC-BqZNz=W3w;rGTajH<)3F4`6wsL*l|jZX=V?=DZ4CMAgS_Ixj?-7g>9!F zB>-Bv_ev>**}j!Qq4ckS*<bv_uGE$`h9ua<NHKE^C9%`Sv0=nEXr6*49Luoc_c&h6 zDjbN2*8fmi+FO-5#Eu452O{&dngF&%Em9s>Nr|*w&VNn$kAl7!n_@|V2J+v$-7Q41 zlslUOgl{GV0EoiGW}_Zsc9<}o`lYn&4Yr?Xn9S6Kueu?I0kl6j`WelLWXKKNc&2sn z)^^C)JEJBppeJWvp^~#RDO6=n<-KY4Os?Tlq>F}At^NBNR75N(cmABH)PYV>tT7cZ z3o5AT-F7Qw(-9<m#rPmvpT7#`;1Q$8!D!={$dZ?|x(v|83yHf~=S5`iW+li%`n-(G z_DhknZXMy?LxOI1F2IIh$@huHe4{9w2hFPH=6K%{xqkm5lGlT0u!Nk&eBbs$`*+y^ z96_vZ0FQdIbXaTE2^((o_XFFxNO~D7-xw9Zr=smY1Hjd&^%6<1Zwk+b?!NWApK$&_ zAYDKE3;Jfp5`L(x-q@Bml}fU9n}?mmZB|2~$#rP|rG-7oQsWw0QN|yv9ph&tPnHlz zLY&RfpeR|2cY;o}T4K6K5wF1Y25twYGxXQyn&^=1;p>6*UejPKPhG*8pvP4Ql#ou% zU?r*~Z3D8!`g0?TT3TSIc?v7%*?=Z%8S&})di`b5!Lh~V%Jp;;AZ;-oBOG*lD+&jY z?*ZMMTMWD?wx!wi_PI%Kfy*m4y3L@j(Sg&&pkwcWrNPEOJrawYBY=q6*7JehO53&! zDp?e-!gM@zC&sQxw~Bd8q0C1#$$k&EnhC7=mYiV209B@G<^KZ8@lO~8JPpcbIN~^z z%yq0IbxdS65Q(m#<ZQO{xl^t5>h=B(DaU%XpfeS}ZvLigsGE1`*H<BALvZ=c<-M7P z-Pu{;A?y-R)*)B1=+n_g+cdZd<|yFBwUCv!5-u)-CRU6FO(sjxP{wh;ifq+CK>N`_ zQYeu2H>hd>Zs;hN9SvR6Pt(i!3K}^-5qQGl4fH@Xn>)lm22aF$P^As+XZ959dQ3FV zPp|WnRD1iClesT#@|^Q+a^TvGgvHuN2tav0XO-jK!_ygy@VTa-3`(nYi&qyh)^0e0 zk!w);A2zIx6F0wIEagon*ZJ3W|K&KAmtz!#q%?p_$v)YYCUBcpF}|3lxceh=v+^u5 zhgq${t|Rq2I)m$ycILl{$mO*QyLHie9b8x6G`YB)zx9}tCM_RjLOSxEjeX2KYY+sl zvXBF>6T1}kXGv=H6V%RvHRK4Jjr~_%2L%>Jc}Bf*J*3g)oLy5lLe-f5YDv@lDF3(C z8X0d&LizI4y2;jWwdnc7_eZhA+irok!kTAajk<rN!J2#ZcaiS_NG81T=|4da(gk<H zZ=t4uVy9@d2;i5bl_K&>(vrZtt2U&0EN}MES3S1O?&;Vn!!LQ?I+KVhwE!$wpm{1B z*KCTm9<g=>oE6~sV;|ah?GIk6tDh4aGIJrm_+_BVC))H0Pi;HP?<EWzXCd<7&<1Hd zIe{wedZGPzmxpUIY-jaRSx}m1WLkISe@iHau)!pZ5Uc^(ctr0(wQ=-$a2wox3x*;< z+K6kmKl;)n*2({c&6x6*h5C5_c&!wZ?eynq$@W1=^8KI#?`kq=8<Z%94yL;x)eMP0 zfo5TUl$~)}3@kDOg3RCylMSY$iXnH6Vw$Fm!n<u0A2%{9s*~nd2M#~cqtQ7xwn4SP zy)}6~)v6(`p<&aY`v3Z>sf42x3L;Ru!HSxP*vF-5Z^|jmXa`42*1&Sx%G4c7$6qLs z;5c>>93N7k%+0?YLL3c15#@!M4jV_+d<(1gCPCEU7cH8AdH~{Z`0oO%8fnbM6DmOT z`U(beB7EBl;#~Z+HDwV)tm6Ys&YRLD^Lx}B*%}exUt`JKjoJPGA~fjQ-71Rr8A5!A zDrLou2|oXZ#m`;6t%wu->;~>QzlRoC-uu{F5V3cF98iL*Jm2_$NWVoKuOn4%TvrSt zUw%ihY!KL5MKJ<xpubJg>I3H$c6~NWTk)9u8wpk?7_y6c&W;OSGiD<m_y?+P&G;He z1vi4&tut{}HsaAb!M8!SHl%-u?Eu}l2jPK6sAf%ILwpA5#T5Po*mmrP4Mim3BTgLY zz-GEA_gG5I7ib9TNf+A;Rb2gI+EBO9Y94(D6Ai9M@?lvqBWR?C0%~~XsyWl#z!)D{ z6my&?bS_0s2P0TmM(T<9GM|*_Ke^eK_l9P1?93XDS7s2-lFG0QW-ynuG@qhAM|%7R zbj0;l{EuXE0gGU6x!qi0Slrw1<Cl1ts{tbF4%03fdR`jBIY0=dT(ifcJ2x<m+0)Ms zgq|S*BDK|Sr%l6(P*NBlJu$NZd2u@b)1Gu1otl`%y~AwOqb_1-I#dQ-8!qg96(13@ zcLb$rr$5^GaS>&$;V+5s$Qq0q;)yfk)&W4rgm~_M4nb~29hm9BvWK*^inA>aG^+L( zR$<e-dgR{%YuCAA+}e@I5q2p>D;`XX#)-wY6+xD<P6dDC^>MGh1Wo;oH7IH#E2;~P zeZVeLcTdPB=y^ZfZVNBLRcw-soqD+MN60J@|5Gf<Q-NSVU+YiED_h8^x>>z{fx>U0 zm>ly}_pp4!$bc+H*w3t;D{mlD<fvUD?>VW+hFr-*0qWla@$$$87Xl#sM>~}_=aDRH z{;~`Z!k?9coY!Ybe$imKnZ~>9^)MDEY40=iuT+P4<Hz7e1A_}Wh{WAJVJma*&L_4S zHxUMCl08&wlz?4gn#!3O3FQ1fVZd!|=K^IP&XFutcb=6^`=sOP+62`6s^VoN_W(1g zUOccJ9~UUN2|Ytp2`?fVTUOyuW$+tQNxuOB9%_kx>?swAnV5*BbleA6wM#I_3zt48 zxJ<6*@XblEs6TQYDjx`K7TE%SB&63x@f<O6boC%lBOmLGp;&xsMfhw8IMyM;^1Y2~ zK5~t`t2)1U>p*jQ>Kny{`7SDUHa*@6;YbcjO##^<*}0T17uXoImuYxKhd}()lEJ1o z)9|Ktd63`6y~0|5!a~6fGk&wbU7C_QPk}2P1cC%gmD7>h8vjibpZ`PE?-l*lHu`m* zOY6VD?-YTbdaB*C8~Ka<9|H+aZ2OgQk+1Y`w{WN=S<qnj3<k!2&CzC<49-1;O`_v< z)+K!cQFVF(a=j_^Q`+-#p<yO~XW}*mk$ltTV(G#=4>V^$j<SkZVrTNKFb>5M*NGyk zHYc^;Sy!XX=ser+Vk6ziM$`J{q6bREbWWMAExsg(q~LU=r7+fUu#%%X$`h)xF0{F^ z2RMun5(4;FksQ$w;8D4e(M^u+)JDN3H?^8+tFU@h&VTAKh498?4I4Bn5%{o)5QZR5 zDb-)17rq793Z4dfNj?zDNL9RSY!~(dLGv&t<62Bb?J<pLe0;<f)8n##-X<!d1TD{g zW+yHgAF{vi<vmWcbz25&MU2h~&Ia6y=KAC3XaxUe+Q|^kz>kY8xw0xov72kH%X{M8 zkW^G-MzH4PkO$4luM+#;ru)X14*dbuDpvgR*WCSPgjiuAs_*hDu)po&d`ul8>R`6Q zpf33mrhs#n#ru8X7W;Pn-0j{JN0MP#TSfm1DcD+z<I?gB<5@j*xY|CGjQFzzF#y!? z4t0xdAIyHNS%;x!PVkj>3r9hI!y7PWoR=t=oW$p{DP;RK&Z7I)Z;MzusC7W!5Q(8w z^!&smYtf4nwEW_0I|5x`G+=2^l&59n3H@K5z8ff8`X|CtO$fF)2Tdukf{ZT+166rF ztGOmB$e3L8V2>GIh%Du5P41t$w(0Z|j@v<$AlNqQTMlyRXn8ngQjP{j7*!kJ8)a<^ zLUi%Pzb3MW8K@@^#^F$W5Xs@3VuR`RM&)^ANokk_yj?g`7UW2EH6t9`0B5^Z(H_VP z;BzeuQFMy0;CfC}hic(OZ8^a{BZ>Bg3zZPKA2YF}J`92X1iyWu=oC}QVLq#hVzN6N znH$Q*<ePB#Vlhn3xDp?YT@;vrtC6%9m?YbHWR5TgZD7%J2?aTs6Q9VJa2mXstM>Xc zUh@Up+irqrsYfUUW2eicGQjI^+w}#t{<c(*;Lj*^;NoQ*nq8vz819_EFN~pDm+0F? zCjW#z8MxEQjh1UNyN4BFj}YNeRqFLcj_9WLm=~JE^E+x{#WuoWcK2UbsxfL&{{PsE zT`rYo4Q?!Fu@^)M39tx06>tu4F`OQ%rmB@WZ`V&Jy3?~}u|2vhk$aLKw5Z4!H$#u< zpBs@1q9-?7+U8?Ma2WnZ<C)Uopf!TF1EzzCTyru>-v64zw&fIN9nSic^BtJUw~Dbz zqJ}L|V^lD|8Yp5!zf_P*&l;WI3_&1JR|l(9h1l6pbFbiXuHi=jb!>I6nnoa)oq8pn zpbWDbo0SENH}0fhe1!u;W+c^LW!inS$g4_WwHK(7QIK5*@6=3>f}Xp(cL{L`Er;0> zzUv&{cWt{wH;FC8oTD$iqVp-G57%Ya`1i=MSUo@Z>_>DIzoW>q!|RL=4xOkJ+5;Go z?xqO48DcNM<V?>Ir~3?5>6~*-N)+Uvoz8k;UYi8h=$qDqeU@5t7uZqVD2Y<Gi4EWS z{~)3$A+NVcxK%yAjP&<t7KdDEAN6%%z!fj*Y_CU!P;X{Pl%dVM_JOZ@zNUPa$aH&C z$^$v&ykt0(bdam?yRE`l<lZ=t&nS2Zl^HPQfLh#2(2M%#<LBPN2{W+-aEwZL3y-6S z&dtMFLF>RGpASQ5^{E^?pGd)E+||Q=qq<~Ldh;VbKc_#aGQq0#OUi|lf&Qk)dho~a z=4Wgcj%#RmYggjG&-&kAzb;?`G~wN%qoQhkCfE}b>(Kk^drTfBok%n8&mC`98+K~^ z_Rt;)aLRiq9;wsZJpLR0EpNLG<C4kIB!a|7WaY}#B!q>_t^fZ-?8~?~S8b6&K=%I& zzZ3sIzm;xgf1Irx{<kZBSjR4DV<h3bx6gQ><!`b00J)}$0_~*cjCjYTI)l@2tg2>X zEIUNlp`|cLKS-CXrr#(37C#7p*q!W%hN80?GBP7KH`mXz)0=^jLETtiU6aH0_fE#b z8sFcjgJBATP5h`Od^rtn*Yd@Q{j7V@|6D{IrOj&!!=7&8%&+qmb_SK!4ooi}CM~1& zKQl?VO@4nVWV$M>lHcL}HKwpL?5p>-OZNf?hb`IOd#7$}jkBXvukgP$I%wpTal;{( zge{-A9jy~BBq-<Zu_Q*lk1EL|jyF`@$`VurujQ?hM}D02Q;Bm3)m`&wHBBmizYlO^ zagMjVgKmy4E9R!ppgx83xsUuH>+5w7i;VVL=TdJ-qZES1S!M1d?b2DM=@MjJz?Jmw zr~M~fnu%WS7xId%e54P_$ACdXv(zU9Da05bIf5cHWyuMOI4>@dUaCvkV$oLw25E)C zxbw7(2W;TXI$-~5aqWIo<f)n7XdLR#3|~bTYc<p4fQAJ5;;B8o4Ly)M;!`Q3zd5R< zBq{&siFs+nPIvy#CHjw?b-#vqoT{057QonS5Ip1+Q_}+1;i$T75L_w1N>HhMFS0xO zS<|}8;k0`)eKL_LmGBG=lT~VM!J>LT@mR)`(7&g1TiCQJ$Dc&*>9~gM7y~)vX)G3Z zuz+l4{Dq<;LL-2l?g}J~wq3HZ;)So)@HV?eIzFd6=>tU&&zwbF2tST@<ftK(e}y+4 z#3Q2_{$q0F5j6$BV{;Fvy^q>N_+^xBFJtZ_Jd%`#@$BP7GU+YbVcv*+zXj+%ZCAm& z0=wWpF&H8=YW)$f!rT^TDo}c$yl9!WZ81<>Q#j??Wi%diICLy!wdMTRQY0Gi#)4om z75LoCyrmI=hOoysF>RwwR!2*slE`;7RZS)d9pn<L+_VGdCpD$PZd)12dgfMoeW<kk zi4w(y@#e8{>(IFqvgLwz7b*YwVI{R;L$Ziio>E#lDHqcl(uMDTHnN!Tt^yFhV85~I z8Bq<Ju3KSUKr5Ilvioi|@GjLp0()=pBFmmHrMl<Xl#x6B8tv|c$+mXT&F%LXV}|Zi z{u}?d`5j-+ht+Vv2a^&|xay0k?89rg-xRU0iwS9zOc@b&Z9)hz<Wg?;a?`HABd#`i zKIV!TpN@w4*y0PG4Vw(JVo3miwEG&A@ewHm_jnbuh4XK{vQx4_4v@5hXJI9&J0BH+ zzM;To?t3sLfri<T?Ur~Q9!Mv=j7&w52G|r`s~t1P*em-SgRSglZCK8Q!yk5BqaY#x z_<KEqxx<oR4AC9C#jUKILq-Wpl&_fIo$~)lDFpSk7kwjg@bn&)AGzPJ=fUN`4l-LH zaV#s=GX<iO`p`h2gREkIRNPxd(BpcDOx82u)q44*c33A2k~#fQ3#T(&!uke*@E7gd zv634Wdj$oK^1%a@iHLq%4%U~>_y8Ru#tbarQ6S{_TyF`3cE@5pw;*ljU;a{Vzkogr z2?9CUK<~<u<|c$ST`CI?+D(WvKo0Gzyw|xDVA_|}6$;Pgi8RrEM=~TKYUF{U*ZA6; z=%@cpNQ-~7zvs;t{!c**AL6W&+>b0ai=$vgeof`c?j9x=uLojoNXwjut_R@Cf>DFJ zyM+d@GRj+n_((8)<q+3Ia~d^@-J@Yd7Yh4w+zPN`tbJ<5MHbzePnixS1Y&S;T)Be; zak88w_nE8u&B_(cQ=@Vd*DJt0W<&=zULJ>VOC<92tVp8JqSJ#`gAqxj)e{*q8H!4J z!Iy6(fcZs<k@;PE8tJ_2#e#{4NA94>93dQ;8OuoA$Q|}JeEX<cWkq7+2mD%$Hi170 zA;Ai@vdxON)3vzt!b2#TCH30o7l#`b?vDiZ+I#&p#GQ#u?Qg^Ce6e%J@Po_!EzY>% zFlmV*AUXS_{_|nJ_Vb+%JsnJmx2GzQ_t;_BMKG`acwvcA6C_?s`o;IDQ%nM<=>!z1 z5TB1>1OUhL1}xoOFbv(30@K4ukHC|fl@QzLWq}jMGXxp;AS&MLj$<HrC6Q8XcGi?f zul`hmRI{b$CsN~s#h#hpU76jBSufv{SO?ljF7SfH?~5CPKgWuK-Rk~jj5}YqM4X(5 zXQvcK`IHl3jsil$Q2Hd?w^HRMoclYx$UE>aB#}FabI3=B!Xg4VIf829(0L$!g2MT; zhxvksM{)$V68^9{rV_`OHQYW1!RzQgKbs~&Z&7YizER_UN;O!Yd`b<bmL?4`x-cdz zSkl54IV&p*GIz_;fkv}SU98zXd2Ytc6|6sO{KzV^OQy_tOl#Lqda=vB5O>lqS6lmE z(Z*Az#1;Ny)^WsU-dH5jh(<H6ag&aDHyStGB<D#lC-992miWG7b|Zg)bxq%w!%yc{ z8GdvnXOGFlqs43Uwz;_oR6?bXMYBAESd%aPGK62=ECsI$w<?SYt+j#li6M?byjRZD z;>n!8yDU@Ma_b-?Xi+_$i%nK?f{UJy(aUw)(45mqzQ$>G*e`YCg61YS%m7jFoM6^1 zd*&rBLG0TCPOq^MPDLjaTbtg?9&YtY!^_5vr;_yxUWqY;`m1yV!0^z=y^dM$W=omK zZ{AyW@u-7#VVXhDDx2*E!^D*Y3Cy}LO^8YYvZp^%#}i3bA*0cGWhasX3KwrJ>xQrK zBQ50R^dmc2gLPiGEF>*>?<hf|k6rj`FZ<o!^zUAL%`J+>nD|}s-qHPWWSqs%ib_1L zVu!ThNrcPO!$L8$@gK(r6~3A3d;-x67>AvGi`3NXzlyr?J1CQp>7vWQg0h8kq&wSr z1_Gkb8+~6t@=Df>nj7lRWm~er7LbS`w5JkT{)!r8V*0vQAf8}BZYt%@mB-BT5KPSh zX;}`F(TBy8{SLLg9uIP6sUYN>u_T%WP;e{OG#+U3(%jlk7$ilO5r&**3~=sE@YJ-m z<!2ej*o5n?|4@Vh;3d0I>1ojc6PXB5#CL`VKAPvoicbN_&#vr8+k*^Eed(k3zYe#I z7v^A7?-@%&cy|F<1R|>p_hl{2Y63Uz;n{+<7fEQKIkk}o@$G7r4A9|9U!ojizxr5s z?P1BMZ<%n0XY<jZ`~SE{dftk4re#MM1N$v$ELHy&OQSLB#;js*vlH`Lgu*;3I;c3* zX7OgND3H)+SIEm#Q1QW*fD<sx2QH4m&&(PrmqRCll6%Z0XQ#iN8(1uBQb`kQURZ6F zra_5he<V1Ul0vz{0EYvGbK|49IbBjxGL@AF1L6ji*6l8Je2M+(f<_h$maTLH<F5ah zQSBF{mcH||-0}`U_*qS6@TykO&WPiQA02=b@K&p~ujGru;s1$*h04{(<QD%^{LcV- zrMlM{Iq0zEup<~&w2l2;ZiI*a*^5v0Ag1EA&ZoeiDefn_>}1UNs&e`rCofp1A5G;u z&2PWL<)4y7ME9WvT=K7fE*wq@+ZWAEg?iBe7Gk1SJBC9IZV@Ag=N!QrO8P2@SO72J zxaZbm2}Je)eM4tkcsYBw23ocpm4BivK@oSTG@fof@k*>T)tJ(ArgaB4D+a=i^A#<- zoqKJADRn3+?rqQQ2y(kW9ySbl(pBwp4Kt*qj|y3X4wg0UuX<fl_n~Z7#<&bxPkV*D zn5M(|DK{Hq$2LeD8YL`9Fn~7?12H>d@>-i=hS$Ut_Tw+EJCusdHF4|a2!kG667+k~ z1ctnaG_z*x@w*rUvA@HK{)c6vAMLo~9nApawm|A^0EzJ#*DuaDlK);aWQ-dL&}gG{ zUSVXBv=N8&Tmr`}j0hRwL8kqXMY8*E;?0kneGwX7%lvUeCd(P<>D}(1>v^KYZgVg? zu=pt!h4+_2Aw+53q206N(b*-7?w&f6HIeD-uS#-5?WLb>EfllI#wqLu2?Mt&*Y~KM zj`6Tup}cr26{Toq7tY7|73K7xW)hu{%e%RuBv(^%s+MOf))ZXqM@kwMAKl$g0jXof z+?pqMVr3qO7g%%E1h4s;#(G(NvX2U2!p8cx1^PJ3pS}j^cJh_g!lq!c?f|FmZI52x zx6R+rr?y*fG-Ru{2;K?O^$&KHH|3NFG$&~eoukpe-!0D?ujs&)j-C*CnKITU_~C}o z$3VI&2{b1nX`I1Zky=r)5K%2)^)FW=!fJjg52DCoOcJqjuu@I;q{N2LxZvD$%v>N* zO@B>8#C_69>Z&js|2d{Tj2Sl{A$J)WU?pOykeosxziUJKZ(`fY-ulQO*n0#o4358I zOIXfVo_rrK+h%cDgCK*YCK6;UB#nkjkSUZtQLdS4huq~uH^6_R>{ZcvtBPjPy0vPR z3ZNS!&k0}?aUTp_S3{d%GY=_p(BOWA;m@3C3{(bJ=;q8&Uu53MXL7I{$TD;Kn1tw2 zU^&X~HzfQg&L}mhG#+{UM(U)CJFm+;-ib#0chAp6=unaZ2>BIs&r-035?fGz)PVLm zQTfDC1>D%}@TOUyy^)~LA^SjX-7Msyx%OuRjQj~>Uf1>LU%oz)%D!RIG2r*+C@kz- zf?QQjRI?v}Izoi_+Y==FE9Bj)czOY4tDVHh=P){@)z_juCnbW44I<iF7ZSt3p=NA- zjJ)X726yPEx{KFLl{={>&Q!~<%8sTc&Yp35w1GQbPD;Vgq6&qmt#%|f(8N6hTqyzj zGm6hVaZ;apUMwigOhLlNN{36_@unJK7M<B$TZ<HQh#S9WM;-=dUc98Ibq*SaqO<E6 zaFaf>N3oEE%bO#<ETq<7#;^zp2NZxelc|&q@O%_3O@Dd_3t@%Ly|oZ%B(e%8V=wTQ zTc{74XWp5fF5r7`Z#~`Ka4=LW9#pcox@UG<>Hmc^!w(t9OL7jR3D2_O@#9wzEZJM( z>NcpW``oM%$VO>T?p|<kJ-&g1<gRCwc^gV)*#q>2zSX_c9(Cmyqh$nQTf|YM%Kt5% zPOxeuk~CiuF&_pJ=JyKriO0_8iw=cIEy0h@K82M}$s_Yc)MxvK^OK1v^*B_?&vAOK z^>jt0!fp9|v{^R58u0(jO?y6_n>D|>HpB1K6_V<Q6yN?{VGMq_C}ngv(!4s_U#_&t z?e9}rX!62vl-q9ndI!U6??D=2<dD_TPG$=3i>mrxjGa?-Cs4EH|FLa59ou$y+_7!j zwr$(CZQHh;bev4?nl-c5_b_+v+j%|@wd<VPwSQ@czYfiqe2f%@vc321ivZ%}BrEus z=(bPuD<;89VfA;i1C@e}vAvW_xTA0q2THj>C@j@7c8`%Ben3lsp$@&$zNSnXtX0|+ zXQ5(|#R1jo6#^!2=8J3!J}NhlA1Tj|w+<|#Z!1n?#oy~4)&v{Q9f_@?@?)in`vb5h zq3p1#0Wd{fl4;#tvq<a7uYSK-*vUAb(r1ViV&jDbliuTf={stpEgx#XB<&#h2A<vN z+&g&8;vG{;xiq{Bws~vwd18(3J8yG|tCcgIQD=MzA0d{jAj~-;3+~>Xfob(9>AZ8D zU_EeLJH<!FbMMuYMi%ys+269f5Vp%qz~jBT4`u9T7kP?=SKR5r=gm93w}@pO7t-6h zH?g5R*)Iq*voC+Q{=+u%P`lSzh=o@94D?pyxcXj+c7HJBJ}-3r61OT`(0{dkYaw9t za+|9O2=VB7;s4K{3MQc2`gw2w01g!Zp#1;+RM^@Z8JZdBIsR8#UzMul4=V|=`$EMs z)lh_kWw<^eVpyI$!OX<d^w&ZmCyO&#XrLjRXOOQYwbQqUON#7l{DJTxRs=9c#Fh=g z3t;BKd!oQ9UoR`=Z|VHt8n`05-_r2BLtcN4dBL98K?hGj{-PW%RYl(_GFT+8TQ+<6 z0x>;pV!K<ozCjC{Ok|}A8~wdd%J}h-DGSxpz8IO^W1hA_@PkomiD;&2&*RT_$jkdY z?yJt?-Sg1W(N)~HvpeO6&i<d5`#-LIkhcK}J6@hXc0^(`eKl3+yD6t3yG66yS#T?a zpDBE0ZKy9V{V2W*C@k6nnQ0vJu{C}r>lRjxMAF57^xyHFN}1SRwX?onFTMFX_<M48 z_%pU<jQu}*+546%+==QF$n)Y@MNCg9<}GwTebD*zXp1lL^gn<K3Iu_ID9(V9o1I6I zBEIsjnkT8Yn*5YXfnP#*@;)~!m8q-um@h|WIn$_cv{j00bvuJ;O8#VwGi6umvs^Vu zG{2?%fR%PM%1Wj2pn<9+m(#V3m$p!~e{%8yWvH=mVr5N<H}npRCtHH<M6I+>6mJ>Y z3J=nB&X7WXjg^!OBz?P|Y&TBvrL6)wAJUi$?M#nh&uj!QNc~uEdNyOj+emtd&}K68 zq`pIpNyjlur`~51XBiru*6^x16+&G3at7euSQJlVBC_Zblg!cl`Ey1S0Mj$KBr}Vo zz9tQ08SFNPhEC+e`SXuw>H|y)W!nDrp?l^LNm_}oaK_z0Qf{g?3849#>Ucm<`?>Xq zIIDx~Tp2PR=;H1({2tDc9YG9mo`O$>x|}RtYgOe8edDM&11@-Xn-^B)^#}45f2!Qm zV!}rSyh2_uvCnW6bcZ#*i^uUH&`Ndv_~>SV7XpSTa59`K3x>>3BFGBYwNH=&sRELM zs{{os;p3Xyr4FP9tSoEhT!(|2Sb~i=9E&9TX{P%ParOo|3^t;MWy+*Odk=QaM*^e= zDktj8@DB8^RN1pf$6D{76xx<zLc6@vSH)@nRY*+gwXM9EvGUQa11=#S4zd*m3YWvW zBPiEH6QPB*ZmkP%EX#KPaSf~YQq94WdcXijjJ+{r0A-Fs`Sxz2zB4PY-3eaEW`o~^ z@pzr?fE{}@<B$djc0`sT6OFeO1iJ-i*h+8)sofI3C0<LGOwoeS6*gZmS#O3H5FE%$ z8QM`rFspU`J838<y{$MyxqtLnBBRPdI!9w8yIt7)dxK!dJt)*W?He@}Zu~1&{$9ak z0Tu6%*IO0#z&xy-TT^xVqj8^DO0*n(6fcAtTCabb0dS7)F}GR^%|hNIDuBisD`KN) zFQCORXt`*uC);b4buvP&^aX2JYj+mAZZ1h*dH@s`LmBCo^h*_l0^;jXF<Zu4q7%QR zyl1tP4Dmx?(x@)9VU-TOdv1)&RDT;=D#LyR+dcCbu_MuI@82uu2lfT&Ia2J&V~jsH z*stYkfZ1;#`=IhODA=;Bo)Hw-(QG;K^zihi*^*;P4-xK%4NympL>ZWljgkCL8SaLL z@Ybg?$Eo#yd;BbsWIl!xIn#FH`WxjGn+1}8(MQXVvHwj?v~5NUEA$-ScwyedtW0L# zEH$Q=&o|hTB6PR|UPsJxi>nb-7&B3-19W7nHL-*O?-9v*Sa@`h-2G#8KmMFzOOUzW zc=-LQ{@1o}?jA4c#02+QM)E2!5HN!vRAtwbf$#iOzC$wG(k}Yg4#efuOH|Mk2W|O| z)Cr96t<9Ju;z2cg3dfEEUM;t;uS`I=9%(4eS9Tv;KjCxFAso>Sg^jpPVhxAp6wRsG zYvyacKmsjz%_fcDVs$N&{3<g<T&J)Qyvq2!+@y?Rrx^Jw-50b`DcPE__>V00^q^-O zF{-tNMH8WO=n-3C0rbs4+4`JklyR=Ql8e~72p-rw_rsp4)U%PT7uUh8HtSaSNjNX3 z7SPVz<ThbL{hVo^38Z{I#SMdr_YCtEx4cWuCk|EAwWU^08Wgz<JXiP;*pqr863B7? zNs4m9B|L1krhp8S0~A9s=1fv`mDQhd-zlXMi^$+{A<I<GJs(LU+zsWvcpmkCGJe86 z!)Mhm?PYEP57fGZgL~q=_I%lqGI2!wsaLB|jywYC7up1t@t#3{Ie|>8VKz&3n-f^I zJVOL8wu)MVPVPi!I}Um_J93SEs{?E!uN}%K(Cy61Cz2(Jw!3fr1+myyL?0s-{Ma1d zoSSn{f8)VqR3)L5`uwaiIurQc8Az<-+rwQm+@+gmz*kQhuTvJi^-UG7|M^f51RFim ztO>p8c%s_-wHeNlLK$@*wi}Q0iSVDo$Q=qiNc98qB>?&Fgz*PbYo%vxNUx(~W^LxE zqw^z-R`FBT1B5?FU+?fFkI|xWke@Wqlk$-5a_A~Og92TF%lMoYdU4ApBHM!uJ#de+ z_ifc=n&ms?5H~TK_G^?Upx?lFow-lTF}f$Grp5IbI6Q&8xekOVK$4sRW4-U#i?o8B zSMS{yiB!r(yKvp?!p+l`+T1T1F2(yrVP`bb)meDyz!!!Ewnb*YPpOT)+S(ng%CjF- zjEGqh&x4h$o@>el`y}=+0947QG_mrZL2wsQlnEy#J9a4YnHe9Bcozz(*?$PAk_%u| zr!K*|$@PIb!Fokv$I0==dih9KO~!(Zinj*RiqfR{RLmlf5efo#&&y*7m5^z^-kGI! zu{;rLwL2`wX~E}J&-<W3Z|D#eIMjtdF#Yjub;V1;z-gSXV!u7S+jai)!W##z87F=^ zk#@BIE|%#3T)4iWnZthpl&e&&Y<}91uWKE<zes=7t(vxe8(`H|(L**@3v%oB0t@HT zsvi?4U{em+1%Ezo#pP>TQnJ<_30p>t95~E$$qOPH_A5G(K_^%)de0apSDwvTIycb6 zbf45S{k`Joe6mMW_d~>X3uQ}h2nPvpq78?>UKV2V(wzDu6~THf&m`kdm^wAst=JB1 zWUNv3Z<b%v!BpADK3rC`by)(3{&DJz>GL^)vu3_tcS-r|(~@oC1$|NmPyTI+3T0>l zYnMQ%eMw09Z!Y>@4P68&R7)*eQ&J**t{NP4RM3bZ4M>5cX_}f*?`(l}rZ&!ENbn%u z#^=Y&0I$Pl76`3@t#N)+eE(S8Hkr+vM!ijr$F40XYDu~V3g~o*6`)Q_^po3)c+YKX z&QBcfz3ETQtuD2px-B(xZKaV$()L!dMqcjx<5|YBLGNO2?L@iT39PA4#Jgdd08FoD z%2Y;p%|%d9_o?hyyN0>``xpWLgxd(smm!cXzYR5<YK0Td3D-k?w>slsoe&4uD_j54 z-2Fp-#YlJ79YyG#xQfd&q2sBuPhn}q7>fuY=;<Is4;OPzw{ir1LbY&#Zk>lnV3Lz~ zi$?B%Dhdu-97ys;k<=gaQ#qMt8i#L%ptr~!sRV)4UIXKy!Sp<%t*POFnV#zyuHtxu zYdYEmOyNp=ymb6LCjg4_0vao}64L>I#40+jB?)b%CSAbvoUa*se@V>~OK55>N=f_z zvNB@+TZd9KcR!f;NGX`uEqW(APY7?eD>=kHK17!EfEWaXJ76Gsf({=`QEFp1RUg0w z&DON6dT8m-BP?32q@}L-N?MLU`tY4!KO)no-nOVstz=97zP9zONh0c0N<U8(DWq;* z-ofeOD3E8-E#Kz<nmhG)%Qn*EyW_m55iW!m3a2wmq(G<?w7IE3WHH_|aP~v=7%vnq z7xOWINS{lrQ%rfc#drA)1p+}f5WZ+Yo{Io2hnHfDC<+u`;K1N#`b)noXsz#LBL?Q} zLv-}bZu``2V#R-K+u<c2x;Q9pz+>t)MrV7PNIahNgU+xR{^f;aqql@!T%odx8D|pm z-%YKe7*DVyZ2m9U;4%UKzsjVKq~o^)HVfPeMDL(M#>kee8kx|u@I}m0U@1newW^O@ zoR>?#x)#C1$*P9}ta^Ri9(6uW9DIpHN}$6U<~I9=W4e&^E<Ols)rnmXAss`7{YQs= z)ruik=EY2A`Y<C;OY}T4MpbXwXf@E(x<<$$1Z4n}z@A((6{@nOss-UT^ow^Kc?WlA zLSR#0%wT^og8dj%%*+xq&DwM;o~=xTFRsSc%HLtq4*_4J>`q3KkXFW`eNPU?1u4UT zZ##!~)?QTi&#K1^|C54MQ=`RZ{|xxvKx8SNoFPaRMPTYtlxH*+rq0#jEfxv>ttX<Q zFlgb_@>AQi;pj!@kh&#nY(5=_e=xl5e~S2;ittl(5LPVTF}I95Ds{}@nhpk;jk|sE zJZcwGQvz#QsRLPe=8ecNLm@Y+^gYIbmrc36IBk6~E-KZtIZq>}_WrWRo&@b-nA%$A zVcV!2S0D|?S{2y+;=j0?Ye9>k-|hVEh4cF}-eSYgtoq_yNg>SxdwRse55#Kl0TiBR z&{@g6X}FS8{n`Tu1m-fSW61OOX}6E4IP&E0lv@9N=o&V0&*Mbx!)W)R@`pGtD3z^X zzw8GVIdV$1Cdn^FA+fD$NodLU6VKQ{*E<|8wrse7Y)J)+?09y=?0L-vnYTSoN<Na` zSY?lP#Fg$V>M5N8jJxn~<fau%3{nK_xHjYb4+q@s7daKnQmNY&p&R7uRgNrz%CT!m zr`qKpyS8Fx8=IITbg(E2l%O1@O(}KM!YQT0!T4R-4bAdV@y_a#m(;1b)cozqCuk>K zqjP4tx6KZ#VN>u@UD}PzlYT7+xYsi4UY|rI1@14wc{kNCofk@PD)3!bCN>D#HT&O( zJF?ARTsPoCe7f02_-?L7LihgfSkD!6CfiL^xpL5)K+~}--{BSlLA4Ex37j#v#9Qp6 zgLjAr#yPL*XKt-11DIkxg%rosf!BIwFo7z}h7biMOR_0IHyI0lKBNbmY2w@l&sK!K z0eJMaJUGHD2<f6)Fr>-%|Mrio?^#e7yVk-W60=0yz2H9Q46!qBnzRnGP@mvBF1Ab1 zH!aI(b%hScvGd>VVx0B%Updo{q((W}FfECJYgErgmUvId=u)*|^827~++7*2*~4wI zzEq@X;g)cCP@5-bH>$+dXWg^{J3SjTrBQ?d@?5yI-VWN7w}WxLuNeO+hp62?E_Oe# zc}5fffcpRWF#iuZ)G>6j(*NI2^OyrR*zR|g+G}{r7I9|}Ji?HC+VK3-13qqs#8jC^ z1C3zP8>!|~A9_j+?_o1|3te*OKN6%pF{oJ#u*_zb21a_$zm<~n$DJX*sHW2I5kY&B zoczd?mwkCjJ}#4pup5a_X^8mDQPBkjM*R`tqi8I9)79}u|0>mP`ETx7gXCZv2r3dj z-qG-rsDeQR7MBm*fibs_{T=8~H=x@QINQbR-ea`NNzlR!79^ZdH-i}mZBr(T6rO|3 zdMsIPYlHrNrux-rrUjWntu_6`RJKr8JuL4vyl6fMr)z{ARVKz%jCtH#+B83`;mwYb z5y4qbl~NK$fZ?I6^oG@x=Qt(Rsh=k!XiF2w$gqp(5=R~*2yiqqjaFZ#yYPVYu;k;i z<#Rsm#muU0vV=WX<dhUHmbHucmuz1b!-i-yH+)80Jxk0@@fei6<k}d1O;NGSma;Tf zXIgJy?^VX3FVLJsF=wS#V}0favTTH|=SKK78a}U<SDeZ`YUD@5hFD#RY?2yLTpM$% z8;^)jo*9~;M6X6u>A<MtG^fz1WK6)#pilh>E~B$KlK1Iq!M}`aRitB>RatTkR=3TB zdbvDNu2FdmD1&25TOS`+m19T>W0bNjmlkz`ByLfRAoA>~pQUQ=Ze7vpN>BmGpm1|C zfSQv)Rl$@Zvky=>7G2h0%g@@CRoYwkuKZJUt;oqx=w8@=xRLs5IcM8@!z|C4b$Shs z-Oc?mlWa|&A}E_OeCxf9Ypyr*jL3lz)Q9s`szL>ma%0T8<5MT2A-4$2<jQNnidqLC z&Z918wb?CmIaxK8h6uHwnz_)<3N>$fIBz^(s;PW%>ayRcZhP8n9te;J3pd|HDj{Rb zTk?HwxEZjXX{`9-{SdyA!g@vLm9N#Du>b-QNiw3PdWQVEN+F4sq!uOW$#tP(Q$1XK z?IPlTOVBi5Pb_0kvUicxVyY4Mut_0~<~>>!f77FCZzC$9v@-LS-bC@LD>t}Q!hy(1 zc|5b5+7q)k<eQ0Mu?`!7g0FfZgzZ?g{vG14!z0;ISHg`~V91UswXCL_HyIt__AEX| zg&)}pa?g_l3M0$SQr&L$bY$0;Lm5oVhJw!*hXVWcFo?Pnt*Y^YN8fXMS+A)AV<zUX zyR!v#)_A~*9+Fm03`3vf9>o0lGXNX$Xo{#wWT+A?k?=X>$K)&T_#<X!aVDmFhbr!i zq?!$lr&@u=-o1VhCg@O-(4%vv2XoNfy9rp}-?ZRMjJRRkQiz9DT#<GP+DfW_i1*Nx zkGK4dYn_5GSCa+K<G~W0E@QJq85dB+!#b6RlKzP>=2@4eTz+Dpg9KA0UXVIe_tzV( z{rvoVV3${Vlw0kH3Z9#nJ)6RK(zw}+$wK&`^5sR$?G@d-Fs>App2OSYECb`J&!iPb z@yL_EUK6L$xl5)c`vOAC2A*KDn#_IkSyhL^>bH5gzth2cD%ispKXkQI?F0SQY<gpb zc*YLRhjjJ)tci()kc~$M>Ys(l#c1X3_^<{B%I>vBMKy)oFqGYvZnwj_lBk%ure~Xf z4By!e1NEe@>e9Cqtx(N_Y8IY6^RpEf?#~X__Z`j8G4-R&F4+YcCi@T#b~OwZ)QAx* z%WvlR*7qmnOR+_U?$I;?2NvKj@hZG;E=X?w{(12hiXVOTjS)nxc8&HB{tQ?p%t}z{ zBlf4caPazZR**OvKRIAr=oX_d2WT42PL@9zK%~#FqxVz&6?EEna45cxVi4`@3ou8D z<4Wn~><KTsY)|dWr(_mc<pZKddPuB-hpw#*w~qECiwhKfGNHqq&fia4GC98q7g7?V z{n>`LgpofW{<Cu1e5rlx69WM6;Q#>D|FCjfIhg$v?kiq1mko~iod;@$#|PE(WL7TA z5%Cs}oP*VcZSl;?E5~-7_>$jYv4eFY=6}XV9N%oN2v+%<odATr!to0u*Bf|UgZY1Q z|CYii1qEpAlWOyj?ir?s4T~#0a%Fv@fAJ#Le3HVD*x~%%U-J3<adz;nA=mWBMapA^ z(xBVaOb;?a8xng0kd4GSG>z?uqkn}ZI$#-DmD=(q>0<_(v9-b!Fi0>nhMzd_Lk|*% zVKDg-3ljhdQOmUb%0A)c%%L|1r9w*sVv!YwE0iwE4tx;JG$fXJQhL*+yZHd!m7f1~ zK$;B$T07aVwvIm(hFU%eB}|PD)o<vl(ymH;a#w|GINPN!XKIW3`@lATLdK9ymB(;_ z1AB9v6z-r@Rdj0^t=iYS;4<XAo=JS4bV*d_{M`l}3zcsuWC)vWJ8)uhX4sC2K5;?R z_)g^K1Bn|ZL^Ha^DbJB5$)Sf#{xzm3Qmmeg$t_1I$rFp*9<=^;7TIKeCK)Qx3+ruG zLh?nB0rF$g=iZRzVL`FeYxfu2mpPvg@h*tx(T>05R?r&ip(XBiK;`5|h-(@z1SOy> zA`in`>^^QN0$p3=FO%A|;XJYG`7|sS?S37Aa%!K#3*Mi--7F09Z5Ek?fQ!WfhP;eF zgI6F*FLmlO$X_Pc*gmsK?)dgM;fOv1z-|gWK#a=dAo*onmYmYl%gLdHYu~Zh5AU~I zi18=qN0$v$?wppSlph0DMJy;lEp=-5jzem`(r8y8;LF~))`}7|rrwY;1DpE8*5Zol zFufR2?hh`M=W2Gi)*L^>Oz=Yo10b9r?ArT=n(8&h`(~DB2YTeE?}3Y7y2XU5A*)7; z>Ri!y3GsCZ3w{<#xt!%+`XhNK;c6qUw;d9fVjvDM)+5bxhmFkW@wWiaE0=>J)GK)% ztPMIXX_sDMW3Mhm#_$wiiq!XW0Y-1r%v{f2%3_)rX7-84|3oa_vnA)x5##d&%c()( zm%#7_cD{HJ{a}kDY@&sc5krP3Mr-7~CHWTRfoaEU8Bs0X(;^9;U87q)q<d`L3E+qL z)AjCMvT%0t_d$05^J5O^W5W47%t|ykQ-tD^EvS)Pm)`GY8^#r0`n`ara|lOEB{wDj zzzPaY88lDD<+mRPE^hc3(gCTSG+_tdSE*nj08QiCe;$cedrd48SB(H1#6g+_+9676 z&Ce)6N0y3FU9%g(5}ea3>?TP9K@ou|0i;ZdALLCAqM;xV-4-%~Cy#89x8S9#;@4H2 znOVfz)b3WLxq&IGf32S;gS7@eq4-=|aOm2;;X$RY{|&I_QvyC_7~Ln-@KfU9$wRhi z8}<Df8qt{=@iv*+KM1xQ%&ACq1?pL@za=)A?7@6Fg1vk~z@O>$0P}Yn^~IIh1_7h4 zI=LC32Y}+!C$;}R4mzFpH1Ndy;JG}1CkA~sLzf}Gt$;)V#T>{H;g;yZi&2T^i&TYK zchMp0>LobCW1~)+qi6Eh5<$UZN#sW$RpF8NE&eAO?|gv*C<XN|YR!Nga>*SB$_b*a zucmMgjul`QbcE_21=-=>SZ?`9Z*rLwI3tiS)cfpep0f*)D#yB6SOiDBQUOyvZ^9`a zv*r;2%<UK$Q6R1X#-Mq<8eDl@!1V{+Jlw{n+T|i^*_Jmt2ITsoCuAgeTiWO!@=-!t zCKF_WlKu+6`M=R84s}^<b1AhX;bINw6F8I@9jg{1_r>VqG-6&lh4xs39YhWTzk>A| z$v#Mf|0uj1z^WdG)mQ+QkdXnA#ktx~pi{l<$!pcn<I8qTevpu=kW7hmhZMLWBz=9^ ze*x!qg90f@I5>lU&>$6KR8ViI76}iv041@B1?uwPb)ov<b#;}d^!Tx7x2$jb&T`8q zd;Dd4FL!Vw`FTX3Q|eG2xc1HcSD;TEShOID=o7G{c*NYbntL=3gCPC8Xzj_{fe~7j zsFiWhG>~l3;rXck;!*-sxAlJR@Nsw&Cpy3sOliGJ4c&4@ARU%%%VQ+LiG_QJBOL1k zOLgD6i3vu9N~Pe@3K$Id<BY}Pz-IiadP&G_?;L|O$*0mE22dok9F3Mp&V%#@HMeEL zJ2Ci>z>%h@n{r~jrZ9HAL3%QN5u_}E{ah>{rg*(@k$1oF(Sz-H61)v#V5?s%6c4Fr zE5t-0HQ<#Beui9H`{*85@cvg#9Un^vHGDo-OMsBy@0$C*J=ymwL_WL~70V~fZ=32l z8W#>0pKt&7=w)4nQ00|xe&~O?EqLPWy*b8P9aT?vW>1tL#ysP{IwVDzMPPX#IzU~7 zImZu8`sZIL_ykMfUvb-fAwY8#*BTPOD>PRTXA+_|>x%^tQ3HRRSpulyo1e<aeM-3+ zVXwz9GOpspjp8-OpD1+h{19p2@oq$TU0A>H(uivX++hf+MGAgVB>Y^+fd!#p;&2F> z4iKwH71X(XExH2e!$>-kI%J>4a3C|$BLgE)aEWJX%Gl99@F5z}f{<W1mhwsiA!x5b zLr&CWKgzLg5=g!nCJ^57)t>aJ&F^5svR?UEnZaQ=pBF}WXs)gh(q&h05VH05S7Yv) z-CoKt+014PZ#JuMUibnrZ74+WsI@vo=@L7A=B7+|8<s0=)>(X&QDKE#Xl%;a=2qUP z1)!I&05@EkzHRpOnTgO8(h0$GDa95~FoBIl<;9o7ML=n>Y;vUaYF3PBg6=t*`%{Tf zOLmH-_<jf>gpvbz6xT%2Cc_r^u%jL50Sj#EhOWR|lAoZ1iOULhy!lkFt{%pNk%Vyd zeJT-Cpg{f};g0#SkR1GZ1W&Ig-|xtO9HuaP?n4zgmRAVx8Kppn*5?=4^rebxn5yB6 zlQC1}DyQCSnr(*exIMh#9TMIdm=BF`>lmm95Qrf^8G1k$RJZCuDDFMbwwOwz{QQy= z{TgtZxJSi*I=bP!7ik81XAp@8a8AV4y76Ush;@OQvaTFM{;(CtvM%zus+SOMDDl!v z`m`cIu;1sgK>K-U;<}bg{|%BC)UuG;mHSaV_Ue#$5q0m7vLa}|$cG2PcHHuiGr1Nu z&|rBU_#0L!=HbL~&H<0SUq$_=KP0nqg?=C3hlGqrAeiezOq($7P+yMDt_Kq6-@Q<o zv><<RBP&q+<miU*l&qR7Hc8&w4send&lv}{lQ{@TnlV39DNrL_Oy@O9L%W@In!J9g zbO0za-f*$~V$EU;jQkzc84!JYYq=#9DsEHtsif#dDOIC@D_zqVxCViBKVbXs7bRHG zZ^b>^B`E~98nt{~kWAteqEVH&LH2W^=OLI|wuKf=H`Cr)818)!X%J`3kc810Zig|b z@+h0m0(#Em?Tr=1X1D*Gq_o0I;|7}nWt;Dac3#FLjyzCd=qKs;6YxtL$;&%HN>vx% zA^$DxerK-r?F+z^J~|CHMO0QTL=NZP5cJ?)6(mVYKnu>X``B}vadI^^T?pVV&t2J; zadEq@+Y8375)zh%h%LBsimqUiFLJ-qoDIJ&e@e|<mLAsmTocS7?51;^XNu?8iZ(Pm zz4IL;1@{@VK(o|b!>nIE{Ipc{Z3*<j3Gs_oklV!-Ci~FqoD|tES7MF?fb5L36>#i@ zKK2HVL0~z7Kw!rfiIp79PhSCE7;Sd6vb(u__P~FYvvVM;wSa`Wv3?+A$$~vwdIvn? z$YiFVn097PDO#$t1(RZz3lxYbrompOt8)0{FG#^@`G`76L;9p5ms<n<3ZD}_;@wR{ zm*g8cnSgY4Q~=h`oisW=AdVZyzX&OA>;WAJYcI}ee3h94+wG`6qgcs$CuF$Q;j8X` zzTUUNu-Vo*JSJ@+0B<h3g7dKS%IN)Tyv%zf2wWBHA4je}O{S^N>iu!|n|Tv-KBvwK z+=n=hIgF?#8q{8J;_hxVyN|z7VmiJexLNcnpHhr;Oiiv;J6H2>f%#^;4S%W|gT{L= zxv(t=h!$+u2vQY8PjUH0U~EC_J_n>Ty;<KHT_d;nhZ`04hz-3@k-a721zl@~`qxr9 zZmnTI+c8~WGKGcw+CX)Xl<ov#tA^>Ao15B?Z>%f0JXeIai?7OX<;qwCdr?Fz;D`xS zL!&x2UAr#!1hZ_sH8_e~L&2ym__e&XlcCyH(IF61jzSOwLoGs`&lh-mud;Fkq#MCp zIj`_z)|hsSBF;0e+3VIrch%B$B*jK{TT_!DM{}T7WGExrHq|(JOkLoHPA5wzvy0RF z?if#~p`u-&%)HOFRMeOA)p>i~efARQR2VJXk4M=LiRrIfp;*H?Bj?Z&1Qlq7dn0Uw zOMo8Euh@agJ+Zc3&jaKxG4VA=W#9B2%9q16WQP)N@|w<t^2q~0gv$pccg<2RZZRix zc1vj*Fl`%T#_o)v9ZZ_PC$EKBAVPcy5bWXaO@{AU`5De87)BFa{YqU^>u68O5ZP!Q z7E}G8a}Daxc#i2!mI8eHh_3_%u<?weVz@+7Q)y`~v)El29Ri)Nr^mOW*P@VUMiDd; zsHV#05y0;%B{GU}4!7y0vb4Dh@%4a%MXMwDmAIwqDV$v}oM6TSNaRKXH4s>f$@|^X z*q1kTGJ-6qcv-N#1JLcbEt^tRG(!rFO5+!Y3QZM!3<X`v2-Kn6q1^0nrsAWQpcK91 z0idd1|48sjOc-T-6AhBmI+IM9Ja7t~!lipv#i~f{{kfie4`h{0uAJMg#VQEtrppNm zk)VK=nvVRi4u)xI9?+O3<Mj+vFPd2@Gzm%Nhk0VkraW`a)Zf(fHsvYjINx3|egluV zA2q{4AH}UxL2BX-Qq2BcjDo%?PJQbgF{-v5xl{8%qQ{<+2kHmD5H8R~Vc3Il!oDSt z7Ut0~t|#9)iQzoh7h!bnLI<K_7jK;8ePtK|hf<f86ycZBPjE@|R-T4!W_`9f^v!04 z>@8;t!xw{qdN=?45$DbdG<<#RezT*AVW^b1e_<#RftZd?Yvy<jr6C{)$N**?-H?LH zZk8vUaQ|N^w^GDPgl~dB$)BFH1SDZu?uT}tgmKa%t%M5|8Ami!$?pQJ{CQX+NOA@m z2COZL1*)f~ra#Ns#m>^sE?!z6JbY?ePj}h@mVq$2xb#`Mgh66p=tobAy|P~E?k5Aw z&Tmi(e{MU_r_Iy)Wy7?nB~$REZjS63VeHVqX$D1~EIJ<Z{G_pIE!&8<gaR9L^u#S5 z6#CjVz*TlYz(fUHnK6?)%QuH;Uz9toS<nhNa+^Fc#gEIhTKz_8DcPx}dc&Yd@SiH3 zGRIfo{kCj;+P}W0MBkt8#-2|wO0Ebt_~$eW+CQ()ALFmLf*P>Ej(3%3XU%@eJuygt zYrGYhWvgp%wcg24Wl-z`-tv#{?2q#{If|;HE6;7~1aq^aCP!i>{hK>e8i%Anh`GV+ zTUW+D;g70+IF>5eP4>I3zyRc%^QpC`_k)Rr7%8GBC*)uE2hMMDwBlYcMM*CE0vRAl ze#jt%yzo5G8cr=$nd~Ltw3<#42UX+s*j(WHhiq+)RbV<4vY8rS1S*~m+QHmD;E|qF zGv*tm<qz=qib{a%r16|>m44+r%<I>ME{eBlvRP}F3JJYGQ+hM+3|y<!8m+W(yflXn zG-$9odDFvVteb6*H{Q1<l8?aQG4TI_^^}1FWoL1|+C6sn)y!0#&R7N8Tqu8)A7KZ) z=IM#+OFpVcXIi|6PAy5hvN!6+k7#Oi=qgj&@@msmlhQqEMNr*W{lt@)Z??9IIe<vX zB%7hn#E9Q66A#?4A-`|cc(nF+5rzV;K_rq3;&otd6t<Y8f*yl)9h$V@m{$sM3zdQ3 zDoTYQ=NJoFXID@Zv4sC_Aw}A#P%ShwnrU?>K<z}jqQ9@*`p~xH#D#*XtekzWNB3}l z`z)R$a6tDbl^+ySn9`TJ+#Rc<!a2(+p;<GycW{(KDZ0N^t=>3lrbw9}OiWNOw|}l{ zad2EZW<oge4TzoLnQJwrBiPX4Cmqmvv*EO!yEbgsGe&4W_8L1{ddQ*BqP{8x3>H)h zvT|+bs0B7J6m;9yG{!6L>K>BM0NwE<HrYzhKTuXD#vT}rb6ZPXh+Mfbe8Ae_r>vl? zUewH1<cz^~YG=w5mn`KJ)un-gK%)V~c_M){x8k|4AIf2TFn1*2N&Hu}o9g$FnY-De z!=aM(k=Hax-A@EOPEE2U)u37WXk)Ok@fTYk(nF70#})D$NIziTg#EgmcgQCE*1P}t z8NDfVGh20N08txC#4=Y4Q6}NQ7D$o%a(sM>S-MCux4VKdG<oohRB6dk#5vd*-ULq& zSh?iog}>i-_s?x0F9~#mt!clh!}n1CT3B}xPaPYM7CST$x$=&zO^ZR=TBC&N87ekk z(+v({T|?iZK{Y)<P84&v0^Itu?I@ixtAB}5Jv~n<;-|37FVZ~ksdQKlC3|qt>hARR z-AJx`6`CBdNd#nXcVPBLb$!CG)4RN=2jfW3@9OhR)?S{(yN2M{<Q(@fT3=~^q={Gf z)D{o(hf$}|Vq|v(k|oKXKJZl6LzF%eH>!wCAN1zT(dj7dC9_|J&wPy1QJ63tb#*EC z;T8=NZ23Nk+kl_-6A(FnW=D;8IMhy$Ufkwn5~!sv`cfLb45A2{>(_@<YRsx#Vw<S$ zWaSLWkxK>HyY1#Gpr`%7!ulo#%%4@81kAdK!77py*)H>0Ohoxj63lNY<nBm;;+?xR zar0<c;SP_z)EGSH1{)%8O9A0(q6`_8psT{Z<BEk&RXx*r*+XNVxvYr7GeI%Tj!PnP z9`i-5Llm4|bkRCp=3zcQE>53sjrDoY3$`pnJV11#_qmNKaf=^^G@U}#g|z6~7H&C= zTQzpuI~8$g3Y8M7v9IYXs>?aU4g}TNW;<;P!lX(tF%PyD_~+@nc@b55mQ`U*7u+L$ zgaD_30|imoP^Bb#qua?UXw&C^&la`Llu!~S(i!BYl=X6fLFC&-jn+!2*{Zj6$q#vh zAaR89y^+;wo_BCSD?PRtRBr+cFYpkjiqJ>21(VXY&kk@n?9d&n*aw{SrCO#@28*A! z=(xU6*``UM&%U~zDSRCx1kHKZ*GqR?DGFdq{-I%NncJg%=iGFc=E~NBl=lh@{RZqN zmj{$Gh~G3Pts;)i5i#;EFqE{rvlNMVID@Ye`{CNGc<JhkwzKC?74MbFjzg__F)}ei z$v~M$np~-ctuT4z-XNA>$;xmUVncUBl5?#*UGC3sik)qPMw*m*Q~~5fiW8s{RC@Pi z$PCe4(9K_FtOB>s7rPcHW4=jWPw;NH%R{(vn|cGG|BOOrw#-jl(pjChvo?-iQ_vhg z&<P|dYnWoi_@NdlC3F*J00~%8{Iq_=UeM9TlDj(i+4rzq=sZln{Nmt`lX#zJ$?hQ^ zH9edrPqKpKQf1=IiYkgX%rj!bsahFc{ScX;N%56`ose!dgdhXB{*1jVmx3hRqfdp= zX6d6j*~@zK$(}V9$)oWho*Q{5imGJ6JSpbDIJLfMmgc7<=cg!N;|Fq){20;q;V=Kp zjyYHndH0KcbkY-G2$g*<Ffq{qTh~WVX(NT}VRTv}#Vp)|oifPC2enG+_rb8*{cd3m z89E-$@x5-E(4=ziDTx{CCklPr(OCITP~&LNLr)WZ`#{@l0WgWn!X8+miv5lR%~~`N zPt+sG8k9q?mCKM31xlfTrU`*vuU7$)>xV<4pzvKz-I4r|?zm9gotFK93Ma#Ce<*?9 zQIL&R@Jb-j1o{vdQ8+pZ*VSyU9)0qS*ZPC{lnMb1>=nHUngnJ+oCtT~Y?Vj|gz#%{ zV-%2KV5-P}WyUPL`<gcvgAW%x4pzTVNZZxYL5IgDXn)7Vq2Q$Kh{?a8QfVlATc{kz z&pgjn!@4rHvK;fchj?r`31pQ>7m!^w(!bCbkC!)*C*Lk(oby?r*;s}3h_|^`%@gJ5 z6m0s?;X5h6RW87g(i(45(Jjgqn0(PVIZp_zP{UX7<T3}ox+j_L=_NTkzQf4DEx`S0 zId|5SBL})3_#R-5ztkFX=o${Y@8|O23k)?ynmxm}zQ(WZRkoOIJvMl)6|ZmogrBir zJVhk08M(7W-;uNJ*lqfQx~y9v8SbWH!0x%57YJU_%#k)!wrE!cLJ#d~a2)!W%rQC< zKwPUXsfKStxT~+kLIr2swP@qCX+7Y9R-D+@e}i$?l`qutpct1I;gd~;M~DW%fy(ny zuYke@KJu~JiNG-#DElC~@kAa9V+j_H!YiIG2P%e4wTcHa1<fX^c)!q1iJ&}Px5V+1 z=hZ#+bYZns7=>?=lK6}FbkX#>{W@k=b8y$Ks%xKrg_(0xd`$URH|EA5tIbzM(lo4^ z#a`Kj@s8(2MSIt|P(|xn+tahMLT(uWcY3m-dug}vVBBocbfj;XB&IBm6v9~9>a2F! z-+-PT-8F!&d#cvCy3ZwcTDJZgnviggGlf&!_wVJ~+os0Fb#;ltH6p~BBU~ll5HH|V z%e9J*VtzpzM)$GZH`WEHsZ2dd7g6l*PdIu`r?SmV&})L!3ee}+TB=;I`(=}6>c{}c z*s|b}P{nSxYgJb^h^hx<1yO~3g+Pu6<RW;Lk~iyVym5+P4^a0Nzk_a1n;Ha$M5VtQ z6hjUk7ef-18eFp_jkm$dX-$Lc=}h1=fh1HxIC1BFf<5<eK$ykfR+^H|#<SBsz2%Vi z<+SXkX{a;*rxrESDZFIC98PTa=8%#5Ww?oc?%=*>B5mkRKWU7&NQfnfm9CcGQ$7t* zLH&KI5zxYdGA>0$wWAun)<s}gcxB3XLBFri3EA~`c$t)VDPye*{#Mo#>5H`J%po?6 zHW7U*WOt&kJbRCZ9mz?BFeHm6-(VP`S7iBl?S-(`cj(QQd2E!onxo&nFqxrmYfO`G z>bWd!<CrA9qzci5nXDTzrG+>a_ktL6+D<FpW|rCGoDSg(*~%Q8U{Y^oS(gamPA>RA zT9dl>H1XU<!g+LYwMOXklKF=Oj=#rg8cKYsEl7WYEz*IxPm}&cMhVWXxi2I`JpI(O z1y?H;8)O}iihx&aps@rmm}|Ieb&Lcf%v!n0V)4#QDaknDjzEHwKid;)6xkVC&=(G* z1tb+7uam)SS;t2Z&VdkFVRxU*6wy|{Wi}AY>2{rgP%9S3#dO}%YH(Pg;=8v@<-%d4 zDFH*pr9{zsirc}oTqZWrTtV@;iJGhMR&9ksJ&9Q5a}5<iJ{U*o$p|Ao1?^>=f^&Z( zDkfz{i+9tQG&*)=7^r`}mm6ac<UA}4vh0w3?jJXSI#jsJt+w$ZoV95zlp)_;yfe%r zONzA@fHqG*|Fu$$n0c(uLUlx$AzYWSTfooWXKqAjtm2cj^tj?gG#Z3?9aWb*025Xv z!H~YwBEvf%&3*7`H$wW*RX+9ZFDIB3v-}W$5=e+X?N0~1HFe}+<<&%JxLVXP@wY6< zE>G`blV@k)>-2Q+;Av)cbMdzEd5Jgl9UT=tA)dcoQPH^*x7{nhlF{L+H+QAIE6Fvf zjJ?^zt6LZ)m9&I))%jVhto5?A$Ds4Xk++m8RdfioKyNbUU+o2#FAz?iUmb=J{}!ie zSH`e;cqZqxH#wSc^&{mE%HDHR&X5TALk5U~>j0l`+`v{+Ni@{C2LPTl1x98aeaOV^ zj{0f2z`RL6uv}x2s=FyM>3?I2xwG<*XRGfiTq{UNRhW4`r{2@QHj(}<3U+3F>JFi+ zDsPn6rVXpF39IHoCDfWD(xxpR+JX@?q-EdzrZe)fm^mN|X2z`Kh*KJC>(w_E?OCmI zePBQAcxrLa2gUi`cZ;8=fpWSI*Kd-f{#iWTs7R$hvt-aAUMv*lq=S|6Uds~My{y*; zDr#Y9MJf~pxA-coi64b<0?%Sd3r;wL-BE<<wK-TrR#=DId?xVYE|WPe9Dp|x=?f2X zo721h(BRL^6Upd4eBe96pA`adL8t{g(uhOh=M<65dq#`j#8(StO#j7~Hc0Oco0xqZ z2U0(;tV3kPKM4_YCie%$Z4_H46^NvFbm2)}4Pxr_-R8;5*H&s8L^qiACM10#MfeuN zlXG#c9y$Cpo4!!%S*gHbOGJCe3ck?s_CEirnXn|{dnWH0A5VHO$@=H51pXK^`s-+d z`AHIe2!{uoJLMPQ-H=lR`QG2g`=*3M!&-8!=9enew^8nkPjnMKR80v@QsmNJEK;$W ziTpLe%|v~m@eiCbnV;;deWSp<F2#`2`Mc>By-u3Si@_l}n6%k=Ss2uOSeGXm`@8LB zScU`cG_?}WFh)0#8bBcje`8GTLXG_4bJQ%Nn6&xP8~BCkAJr6ii>?CI-&0=dv$u+% z+QT>p^M9X!M-EhKY$INiv<JR>4cU*J{feC#)X6KRqS)oSYnzqe2wLERScni$pU+NL zM0TmEXm$B=KBe-qsw=f;SSMpH1_Lu=YV<^#$^5vO6SuWdW0Fl5wmufn@f_lNijij? z^FhGRU_qj+x68N_m9-Z%a9_eNB6}>+qFit%2S&H!<T12PN>Pa|Ny=XRDcQ9|Owb3k zu0yzNRdSs6XxP_~M~LqN7|;_)ho3YZxA(OwqjP0*NN|A{kbNMU8sOCi8Uuoe1&Iiw z^f8<uh0b=~puUOoHa{VP6*=!wcwCDGxlv4iUv$@3nOZ;18>FBgjdy<gT|83(>9#<P zYpxs5pTCWhCLKU(BrTJJ-JeQGmW7wA>;L*Sh2-Q@@&uMgoo)O#Mu*e>r!ngx)i5?m z3)Cj5ZtBWg7@G!4&@9Z1Z(d39k&{UebQaZapPpOdK+D|H9tmezse&%Qb>&aBlE~3~ z*j-|uDu!%mh2VnKV0EeIW4DeyMT<3E=>ZEJasBoiIYr%p0{_Ap#qU0C(~9{-OZ_r> z8z(@ndVgO(Szn<P%?syoF*%3U&HQ*)xN6(F;=4Mu?PiFumiAU|DVN_1e9z86pndVs zxR^gx!kYxKbvg;kaZSE`kTvfzna9C2yu5kNsYdn8qGH0vT%azY=3T<QqfR@+X2WLt z2mZXz^!Eg>rin_)z-VQ;LXCU<Bfu)l=u8`f4TTQ_%If)jf=OP+ms08-UJ||9K4co> zh2f$Etn@SLxXE;f`X%=JF(DV$*Y%kg9>3D93Iy-v`pFyv9(|M4BMf*!YSx(&nqRBH z@EziJWYE>hE%=0F=YvXTK}i=^$VI*#Ovl@21{&RTvb};#u{Vnxz1__zBhU)WS6a@Z zx~r0o6<pEymM{c>UmXE3HUxNsVDpuHJz*lV;??D<PG_Su_C`IkSmxW<t~l?)E9PBc z#{hEyEPw|`H?A+p+R&&jLuI2WSZTEJCnHn_CV{spOs$b<^*hZ|?LI+nhf0)W09|rM z;L<;>AyJ#@8v2<cinZKDp&qY7akKO?Gc!o_8;CGQG6YphA^3?9H1^wd@$mMvwg-nS zGX7hz;4Yf=m$_2m?4z4&W5}ZFgc=M`LQK1~#8Qsu4S8+^&L;XQcym9!ev2~48qHLY zFm<T5{HEp%VP!vBzhLLjv>s;ahXCuK`k=Ujm8daF^IP2rG*NYjn}O~1CR;!iC74^{ z4KeC0)+}4WyC2&ASK};u!1@02m6sbS=oG0OFw(NK*1l6#PmXa<7oyUHsEblDPn&jA zFRX|S%kCU~n;Mng5>fc*EdQV#aDtvU<EaVmXI4lCcf@xMi`bh;3Pp(!$h<W{)V0>R zADFFlW7F$GlBz;uS@MFOJp|%8voPy6BUEt<Jo~!~vE<$;3S8iIwvS2P;;ycRV6iiS zjNgfZ-*L1taYf}O%cYO!)#g8)GKN|Z@6PA|0FmPV+$m#kYxU!lDf%zM%a2p$lN#|z zv#>t@KD`}bd+gE(*@Vplf8>a?!2zv96%|YzSAldO#ELBG+j|Sn7gQj&zN<VfQHre{ zCrYemcGi$dja+GKQCxlMz_TN&{>alWroVm_AGdP{opR^CvRbuk@3P9@NE_ymku&<$ zZmb}^;h|wiEs5P|5{plpR88?39<f^roq=bj{LGUn4HuVmgP7hznKdGR(m-2@S@~)= zr;|%H={5PRGbvO2mfb%auKqB>xJq{$|NHHg9Y;T@kY}(4`n*`m9Dm;cCo#oHTN(N~ z>=U~+^1(8x@o~8mK0>Q&tl>621#NN;J0Gy%>1B&pBBxZR9N3*X_jtPN+h;OX(JBR< zi0Uy!E?+4p7Qb}FfpjZ9G{Nxe1sdElFXZKJhzTsBbibw(i+hTh&tj(@iVq@?Easwf zvrb8yi8$HNqS-XQk*!oI;Y>;xE|MRTQ7T{mE50V5T(oO^Z3xs>OG-6?)@_U&JDc#7 z{MMz}syv;RqXHWLS4AK_6eIM}(BfefIFQ%jl!iN(1)hpPo2hv-@TU|M3>7eqqH*nR z0sKr{p?i<Mpsx>vTk<tczYv5bF=f7c0O<@QaOq+vjRgGn{(`h3T>yuUJ!y<aRe`BJ z$&oXt5K1E*IXX<mAsb>1uBM}7EM!mAemdp!t@vglnWYOxO0uRDxiq@^83#x2NadkL z_8sz)J0uuZtQ;vGw4S9dlr(Pt{U%(9@6~~C7aC1B*$@l_xa-I%-e_^TTchD?c-0<| zgu=D@SVo<NpFqSB<2#=8M)HbWZRGhW<nZyR7-18SvO5)8!M>9MgC3zVHg@k6({xH> z!E&2$j6a}Nk6nPKJ^u;fU(wR+ZSSeLMH;!oFdtB|;TTDBE=uTMo&5?^IOXWAL+N(X z<8$eJ67hO8JAujRgC+Ojd{mZlHJjMmXi)|eL}l1{AUb6-h+um-!6j5M8d>=U%}HU- zG?uZK&Gj>hT0wNHtYgR=5>AoB98xt0ZdPT`UtSI3`*2eOe;pcOkZ$99r=N2S-97_r zPcd6w>&2(YybZ6$oYL5XHmG80u-rg3uR>p5^Q|6QKGI9v{Ip-r#Oo;vkX_qSHPx3> zOFVlq4^R&+l36#v=&P!RCrBki#KK#q{Z@E1j*n)0Bf?w}g11gCI6ppXG8=RjK7v0# zRHnZnA`!$eFr7bu#U^9j*}tto*&x3lKtP-M%mu<E#Hy8cAd?vqgW>Cnw_74bu|U~- zw`P3$T9O+gS4c9$*3=SH+;C$vY~y4Eh5woXO8bsbEoeK#b$}FbPyVFiD|Uv?GSJdW zhqKEygL|nWOjUs~jF8oB&{B#HKf^P_+O4r#dY?G%mxiK?r!Tg$lM)7caMy(uMq1H+ zuKRv(#mE3(3x+VNrVl=Od+NJTyE-Q<W*~K9zS9J}Gs74M21n;kV<=_&^KZpC;rOK} z?;hBX-UFP$U*c-u3nw!D*7~awYy=PXDZmDxzlWv6;myZj{u*Wv2`t=8)fgbj>s$KL z9T*QVGYVpjn9*q3X@j!vpkvx;r6FO65VNXsz$4LIsw&D86|tdSOo@#wqs&9*FWYMW z>*5%$*uC~w!mgsm*!I-O%^=+ZZ0?0L$nJF{tn_#_lG9br2uuP^-jI-D6!zj0j#C`# z+JF*8;(+29(XV=A`4;SfbbOIT1sst*t>ww?TgCET?YT1sUj%`qRAEh!wRKBp>nI^Q z>t3Ue3Fr*cawjUn0&$OrTRIx0qN(cKtu`U>L8H>d3q#S*b93|a84Q8*Vy#vx1NkOf zfbjeF*5vHubmA53$`JL|A~gR@2zFbaO9=S8_&D1pq)5X;CXetH!*TD6Af~_}uE`9; zs>blCT4ze0vlc<j_GY;e7rc<ti$Z7?G7=6}N?eHT;PO_@pAoTraC3Tmo_+9;JeQH{ zpPj>r)EB|TbrWA`MSAVzOB#pDYC(uRJH^dwJEX^+9#M86Ugn4PxK~U=?~LBo(j3(g z>q!CL$t$ON-PriYon!wjc#cU}x>-%lKZ*$JMjbSTyW;iRSyM3PXdOo4UKu|dG6PA| z?^spWEut0u_FWd<@ffo}etmV1aN66S<8QwDlXy|_!z+?O6A!@d$5BXk+mT`Q?4Oyt zFX|8S8!g2`^VgWJO|AHPypX|x{kry~G{>4&`6)!WZc*73g)BQy%7z~UH$fo;-Uv+a zqW|c3{+$%g_r>O0VjxSvZUHA?WhAi1CA4XWRSwerY0Arzj2+1v716ZWDC~btwudM| zoSg}oN9SAtJRf8FvTPd=8oG`E0@rW@0BpkIW1sk&eH;KnQ{E|ta9%>fN<R!@D4bc8 zxT0300^~xZvlwF21+?e4d^_klj=l?%&nv$Sd`q!E<d6c{&zAiYvBXQ;6*LG%L!^_- z&A)#k=R?@t(?oi5!&+f3xjw7ah95u!xyIia!B9$^>b4xQ*Xx@OH}w=RpexkZU*a8F zj_Us~?)0E_CHg@7WU<JSoX_w5RJr~aW9QH%2#|H#v~AnAZQHhO+qP9{+g7D*+qUtl zd)Slr&EgNlio0%{v-e05q<{aajGHI%#Ss&XxnKd*^BI7s4?Rvn;2_(AC+leE-B%sY zxX)z&EC$*YprHNA0tWo_I@88CWHwmehN`pQ<Y8$X8YO#xrxxdtDO@_}L%QyJSlMSr zd;TzaV0H7NpgMv}i93~pU3TXmo9x{YOXa|H^=CC{Hv*dngm^v17_DS&`;;nXi7i8T z8&G|wzTOD}tIhsj-D^yA?*pZjNXP16(iNdXlknvbT&l1Ss~T?EoTh8aUt-G<MX@fS zB|mh|qkTPuGjc!?<h=7#U){9$Oa!pw6<s-9g9J+Sk&I5hJ~!bD1m_46VL$Eg!ZGdl z#iE~9$4stGvujp5DzHLi>StYM8YSBj+~i)KVPata3kDakfXR*fYM_b`j%6EK>Lr0q zUAsIPaq#E@V-A4QW!~zw+3;ohay>u&8IJ&{oyxd_jr=$wCcdHwq2Ab}rTh)0=5}?* zM0PMVqx-arE+UzSn4UzHqqU}tPcs%)V~!amtf>iuaJn{=B;VVwx982>c*p&}ZJxf` z-iy7S$Z0`SOnsousr2<Smf8|A<s&W+g-!FL%aHN|Q$;}3fl#Ld<x?guQBaRQ@lFv2 z%h^m^tLt-#ibALDh`0<t#yLv#aW60RD<hS8H~V<Z61;7S+smVxIq4c~GVVhSbi5Gi zEKD}~Z)95l{1hrj>PtJ}?KcI@8lD2k+#0-gJJ2>GbKV2b9$xhIh}yTID+gEK^;%QD z<ioZOzU)g}?I-*{Uyt(V!UoF&X?vcQ^CqnNh1u0v*J&_B*BmwSMT3i~JnKselDgoc z;If*f0fs{Z@PWS5B06^x<UUZfpO9&9`37$)$J*Bl8aZ8b0_%;g$6OG3v!|c7=~Bcu zMyD!D4(Mxa<L%J(na*3LBH2M#n{T>WdzN?&HcXqpfw(0<1dCK?0VOZw(7l7e?+IL9 zF!bIgp;Jx)6Yb>8yuj{3ZkX*rYVtXIT5`2}o8mKoS?5Z?I%*dUX8;OiWCb%l9Cft0 z8vAg3XrWj|4vX=Tt?FlGKCA`CZTKC=XCw}Ozw?jD()&dGes4ZMCvU_bWAWyr_Gi$` z7vt7>-*h{3=;4PcD7`fFxtXz2-exwO*Rjjyi~E^yk)nYTZ1k=b{x;f-E1axYf)*Qp zy(qlpFKI3|a+>=u8Ys;9K$#x%87+Q81v925u_2mSkpsRIwBvbo$IozqXd+f6pc(X> z#WhW2yc<xDt+#HqF2O9`X_JMgAWowzv5;tpfW3hCkc%Ts^=|7QA}m996U*E#V%<7t zpnZbHBGnDfWv@Y)wavta;Oz3ome+;#2xp)#Xp^a`aODoh3&X@o02QUoZ#ND^R}%;m zw912Y^nbQ5>BZBx6@04qq-#~}Og~{nj8hz*kh@y5ENwkN@}mJHREE)aFUp_j#9y5K zr#7&N->e%ATSv@dkef}4Il&sJ>PXPb%UqTmXj2f8+UaNMXwP<5Qb$INFwoT~{$Q{z zhH<;VsJEyCHXOX7%^5b^WI-*FRK+`>i&m3-;Syle6SmY4G^Y|^0VNu%3G%d^1hn(j z!zOdFTIC0yW*W0&aH!Qd3dmC^UfsJ%Mgi?Y%Cu!)=Pg&l2;6`P7gmvIPdMjY;PaLN zX{ah4f<p7Iok0m|2^QU^%78%I=c6<46W6gzYP@3Y`T+{lTLGT63AsiD9`G$yX{3M0 zaw*W^5Hi?Z_8?5*+W`pbP+ByXhXAkQ9xWY})nqiA?(q^qQncOSWQSU{eu_m0Gut+U z7Hax{-e>guJz1uO2nsS=KY;|U2$gqZaZBtx^P0)l%1JUJfs<f$S)$qb_RLz<IT+iF z>xa^&aVNnOfP80J0RT1QM+~n+!@7V0HX<1GT6N6VO=s%->vXd3Zt^bf@TS|Eaj2dd z@q2dRql#(F3MFPS^gBZ4>=8)4E@+mZ=sp*KPkS6+h8)luHlcoUSLd{urU7d<pe_;E zTRUeKK&5Mvca>xZ3yJC{BTi^B>mp_**B1*-B$SDxwn09Tn{lzQ(dDEJ%=N&ZPNr%o zK3p8T2>i8WldvmqdRSk)<{f3j@{AKr@>aGBk8wQG-*(eD2?VD9oCs`YWhdHz{)1wa z!cu|zR#bUldM(U!S*HAQf$BXUJ`YmBCjKw6V~T&r*zzh>7D)t1DnhH>Xdzm2UR*_L zK~7Rr@2GN9L8Q5Q#R|v`541F@5rMMZ*dgbt!k(Jqo^z5)YeOQ+;O)D^2vX9h@k1x2 zG+#kZyiBb5K<B9_^>+a!{-UDQdJdCG7^FUvJ(GSq$?~N0fr(CL5gztN*Ly_1A-NUc zXsIvwV3(9{PSHcL^%2fyMr#E;mlRTfrZ~~wg%GvGES=eQ9-MVEE)l_vf_~CeM_hrK znesYbk(9t3tvoFDkpnHGvgTyTO}~qY^)iIdI&)!p2JLGP5_%eHa=d+=$#=Kwb!!c) zg4Ah7+sR}#A8<)_tU<(G^N*XHyH>@wX7#gTJ442wr{x;$5fHq_wF~D{(NU??G4qXb zYcX_Zmis6f7ZqpkM`9E%SnAwXD&yqwBX(C}uxlUK6YyXx&)4cMX(BkBi2UNP*vUe= zgLK^+BA@aMc(?%6J?XhF*;6iBTA)G$R>Tq&kzPP>=s_lFED^1~y)gV+1(41IxiIki z35^b;6TB*!y}P@W;-Fjl1&R}dL@#Fgr!WOJ%;HvS2ey6Q1o%CrX#rZWcLRKSwYyv2 z;t$rNe*`8AQQK_XqKxO;?(V3G?(t#T?$KHQkMpwh##uhC8V<Hx1sNG$kN!)f*+)Xj zfKk}Nv)9m>Ur(Qh-I&@9RMXxFGz5mB2lCY=>@rktQAgI{UgN3z&FG>ruJ+@?ii$o= zBY8jElB+v!jFVI@F^Gn{-=W2(V6{zRH35oz!=4byKL>~uz%;OBm@f>B_`!cGSLRGL zo+Og(G1w1(ItK8>9h-oO;;7bzWZE{yYg8kDrm|s2q44;Y7)aM$>F9w6^t4h!ZD=6S zy0WU&TzO8=*wIv>Dy~hHRq#ZP22FhKF+zB*4uBSUc@MViWfOIwf&vS}^g=4%fQ(RR z$A(K}IFHeQk=xtb$GE8LrR?6FK(N%6d4Be>DoQJzOJBlGOvwmhY1FVk$1tuae2W0B zkQa9F)|OlypPtSOHPxB?^G}aIER|GY%dYo1Cq}@eT6RA>!?4v3pX{3p#J)l6_Dc$w z3CeFWqO7LAEp&67E6k$1tB-ZHt_bh%<H|c-Fd9sS+63;P+G=y}#C8JI+@Xt{z9lxb zim8KeU2(P>S^EySiF16f(85{Ne+*f9lb#{<_i{3YZ(kTQ--sA=FC5iJgDQ(MULH|= zARLI095>s42xB;U)ge1!o#>|6g35=tvvptK2;60To+VQ7Hv}Mh#a9!$4X9JvgM!pd zgiL25JMk>_Ay9p}QpN+b!+e0^hvLQtb{v+;Oh{a0a{Mhl3`D|SWRkM>okkk_w76?C zF1@Xqi?{U6qU`cpf?(nLUUN?4J#kYX|F)qQiMIcOynbZ6!^?6=8s+Uv!FeyJ1U%(@ z*soa?!4|JzL!YQu2j!i5#>Rv{xAqI%j4sY2DF~D-B7v=2xvK?fc95!o`hwONrvtxR zy2n^ep!Hxs>mV@@Hz;TjFD?!o9rtqD`XfqW)g=;-4}GTuoI^BYRjr6umVJ2)u<Tdx zczzjow~ccvZwn70Tx|Iw9O&SN!wYp=&aQzA@-?3x2@|AM*Hwh#u&`EMDwX1}+<Rv2 z-Yw+6Owej&Bg448u<eiTuU4-3A%|jG^udS&%)3~vQU;(orAGvVyF;GSsX)97_HAu# zR>@|5C|~q_`F!-1;s5wvTr<<;|Fe%gA`6NC=~|s>j-S!C?FSf8c(Qu2$m~J;gn&#g z3P@b=5Ll}%2u`y;`F^bDgTFOq9oHk<#O302aKAqIr051?$T&jucEh)}$6gYqm2TXD zeGB5z&aOz!)Pxmv5{sU<U_h@a0+|IP%nJtXcd;HggzzsEieIeMRTFP>DNXnEIsw8X z8OQ@hgo|1`ycJa6cKGYe<@_nsnWwYaKK+O@kV9yQR$Po6{6{|?8+DV@KvvPX)<R$Y zuW%l#u5_?#g1W`=c`1M`;l8Pat%e~DovX~*U6HjTs%C$6-Bgzq-2KCIx_NrmwXjQ2 zTtA83DIimF9P=F0NBp#GLD92^8!dK`zU<Fr`!Nq8W?O$}O8<qk0+dZv$!^eu`V^NN zI+uhN@Nb3jx~-C+MNoLJ_!F@xV2j%!{A)S4+Zq|Y!arvc$2FMuamQIXLZ49bqU*DW zE~?GzKn#(tPqCk}#8Bwl@8BhZ%D7Snp#&90ctucg7W2#OwHx<pb(Bo^@IBfG>T?7r ze%@g$R78Vb;!`;|CC~5OKJsJOR0%jRK{#!C-O=~(VcUM!EBPpXkEOpYcd|(3$(JVi zSA?G;5AVvSn0Yz-5;}%S5#sGIl$5D4-nR9;x3qb#(34pCk0ge1OU8@~;>$>+umOgt zOV&Y25-s!uY7@w&xhhL;>tQvSisN}RJH#+a3F<!}7NN7%I6JpOcmrGJ;ATrooI%>2 z8MGDr&q9p2Z%2<gjB!im!V_htk+9-b#&?hRC6ffO2c=(=5gD<USDwlTH8iFdvi!nJ z{Y6z#iw&`#4kDS~HE0?{#I)Z-o2r-*Z<)Uu{-%7}Ec|>kB_>y#ASm=rGRy}r1ee>0 z1(JCW7Ux4frtZ9=qj!$9YBrzm>v&G2f*6C<IlRju^+zF<TuD~AI4h8By;18Qr<4*) z$zaSZp$~H_K;6zD{a0TQbzGYGaokKnv(@hlfgQI_I6{0C-1H5P@NHfoZDTJAaBkaU zL`iM|?g&Rcstngv<SAuLPtQO<$SVIp!53V!)%N9NtZ4T{U$`RUrpF(^dC8m2w(H55 z-H;Df$eJM`dc-yYHF;oLpyU*r8Vnk7;G#FU1JWyxyF8EYZ6k)|XF*S9EYEWZM%S1D zy_m{)Ao&Iwo!aS3oGV7eF(f$K--Q%ST`|e15;hEK(})r6FQ}xm!LwqyZ;TfqED=L1 zH-d~80<TUh0GzM?LFbv!qDP7%0RZIj0RYhbAA6qe|1d#z{{`2yXlpwkvNig>)(M;) z60!bMT%?=0`yOzm%9vG^S~*w9B#l>OQlg0nAsI)_0TuI3)a~AY2>^AExmBvcr_lh# ziWSl8y9+C#pqAKelvcZBO@8OCigu3FHFh=9S#Rg$_H5%*HK4l|X*MBWakJ<B9q7+k ze^;kb4`L5;1dE6AEW_kGRV7`@e4|kVCvA(mU8IPbnVI+&tPGR9<~uijy^o_N=vg+$ zCVibUSAjGe?PiOH3*XacH=)kDQn)uGUiRatrBFSIS2d!y7hRzs3=<AjQnF;f8^2?` z%boO6whK0mpO#x$uTkhsc{Yf`))>ED*VJ>Y(Il83zOi+5bsO1Jg~+XXm;)enn<gSZ z&I(j`Y~8<<dP*{@*M9lte%ZkhG?8f5Dwjcmgk|9)Ie}3p2)pzc_e*HeSm>XpwgPdQ zTt;Lo5ZRG<3$aGPc91H@k&sEfL_?22TP#k(fHzis?CEDc6y|9w=4J^q)+Ekcs}lwE z23cPb8n}UOrKApwXN@*1Ckb7<YqhFf3)K_3BAN>~VVpdUMF>Z|!OHB;G(`%Z-+|X^ z4%Jyl-gA*D7muM{UjaSL28$y#k~fE#hC+fk>UvO{f^Odbhl**ma@&=py1zw>L%34L z7tynu$id__P3z~0hj|6L$^@NP6BKy#S#~nj1m1NBNET8&X)2^4sWKh9(n!OL^EkUp z`#pA5Tzx&xZ?5<G8cZUM6Kcp<t{-JQ#n#c8dR)@Ptaq}&o_oqtx7kipMJ@;LTzy|& zF>N{p*RtmAO2Z6+4h$x!8u@<e1>uL(W9VqeYUCQ@{?q@}?>>&~rOB4c_+aK{ixn(A zl-Exce^dUsyvozJj)nbz(V+J4)2f#eo*G5nF`jo%z~PGp<yt-fv!CwXSf~*J>-s?x zP`Fk5tvN$~$*G4a?}JZT$60m;`W5*NmKnFC5lyD0#Tk#;C8(qSUdx6-1Z~jYVGy6X z!3*c`*QV-X>}UG{YAgIS)REX{s^{1|&Q}jVG6+n572hY3>1DEZDNcvhfRJU8HI5KB zllZNkA!NYe@1u?d>`#SVO7*|{?wBF|f=$zJJni>=!n!FKQLCV-27@C{dtk1{T4&8U z`6nBsbYN3#WYxk$qGpSO{~`H)JeOmP&RkSO6=jPRA;hsGqR!KGG(JmnklE<X#9=^d zLh5cK9L(@5`{_v8&Mk|7#K*ZgI<M(jur^Qs=Wsb)o$$esO~kTQ|1>L-E8Qfs5v=C0 zt-BiHD!_%No6t*B`|>3q0V>3G8p&bU5}dFXU>Iac|KBtVCu^&bHsB?jMyjQfP3jGl z4G75R>EsNa@vn8t5-Npe$-aia66>VF`WIdj#cq_y7;HiZqP{h!Ae!z{r`^~u^T(Id zy_058xS7OVNQH*c9{euGhx%!dbHqaKXLsFn-(?qDF8wN$9CAwwa^<VcflGkt{x87q z#u9)K@)-IxiBHtv%owZ;uc+^YLjK;l>05bPreg6_=pM3gPHpVy8X($V879Xhe{8Ta zyi5w#XOL$u;+{Mon`!nYIU6M#DHC`Mv9;~?s;N$D_F8^%AjsF;LNG!>7E}felx>M* zr~uvUxy+8a^WV05s$lv%72sTeXEC>0AY7Lr9?n0MAyCe&N}J9vZbMTJFn|p21XELb zlY4+9)>5gWgcl`@2xFX8RzX-`aIgkALtsbo5j7fHiBSWd){wviR@WXw8^FN9p?7My zi-?R(Gp=<CbW6o*!SgH39X~^nE{w87_2~+D%Ge0`*poeuWbKN`(7ESmdsnhRfZ7;| zjHe+9L$u*nT%nXWhq#ND{DcL}P9R8IH1=-i_>I-cen=K^)UY91#&Jd_b?S$zVqmzU ziz%fk)Et?(tC$cBo0Em01&K6ZRo4Vo9+xrBuO^HY%fN75f5CT!pCHpPF1rp&UZSY^ zlN5Ugl7yMiQE22GtdF|c0Fhh{fDV#H@9(XSLw6#4bBIS{hz&l~kVhKF|4=ZP%K^Ql zNB;$eqt0-8!9ZsLC;Cd4ELH%ejCaa6pWCr;vj33Yh3B#O2tkJVcK7Ix*sRtE-{M-4 zeUyoJHOk`Xx{;kBMTqol##roM)q?ax=0Qx&yX){51P8DFi_S$>wYBClZKpF!m>pe# z>(vg@7;XpwTrnlc-P~vJ=Lj$l0EX1W&Py&&^;pYM^&sc3zyk32w}~e4x~!HC(h&vB zAtyK?!=B7i76ZrCG3J!tbf@dDI~IZ1j1jE|6#|Acc<lNl`cx!Umg8{GXO6?51Bjjt z14BQtvD{233MmiC`gCJ(|I*Z>Oq=zmf<C`KOk|1F1YN&dq8SU7fL^d~3>Yy@+x>;p z)13$bUYsbc$DEmC0s8ywIxfjk>5R*$^+X)tuevQE25LLXkP~vrfU<R|^4OX`UjIR& zzn2UH$(buT1?KI)93I|MTF0bL&QLmn?NR^&0b+6mFpUezBifw$wm<>UG*c!-O!+-y z$(zP$sEAx7AniKU5FBnGQZ^Jr&bj2=g0LS-nSCT^M%5x<555U8j7lMqJVH-zyBPdo zA#S4>TkBz4;ZUJ~ufY5n5s6VaX`!S}o`4msc#SJG5=Azy4IHwI`WdS;iOF}D68zcv zv+&5Mp&O1*xB_VE4a(Xe`f7rH%opHM@vU1UD4OMMcaVY-j%F|NJM4Htj>9!E+F>+N z4~5awOOFQO>G~MFIz1og<M;#4lYn*X0(4L399RfQYX=SuicwNO;}oIpzn`PW1-<#O zw-s+0idRC1p&p|r$g6XM<UDp>^FAw@snY^mC-?zp@)uvh7x@6kGXjF;Kpi}5pn?n+ zIt@NhtI#`&d$MZEAnyRkE~Z`1&eEODD)d@s;y8>}K!QL}qAoPN^>}U$zXZ0DP_jnk zj|13vaJ{26by_ZBf{a#hsy{HxNUJ~$i-@??CB#NM`HgSu+K0^f-|(TJgEqkl%Xg)U zk=q|n_bz-`@WAaEc%so>;mYH-QC!&^OTuh4fHvZjg4I~zEQbqTq%uLur)`ZiI<SyE zf(W7*`jf5PvKaf*G}e0o-n^X6uEV<GMJ>Ent@;EjK*I8L>3@vEu>*v^&sXzzzb>!a z3}<eET(m#2DMXg%e;wY(ch}hgfM37DK2loaL3^=P7s_cbSVO&?0(*aEo)>w1|GH7B zrOZ+2u)F#P@46UYWofEg^|cc7xNbG89*h4f%H4u_I0w}7gSKU?w<PUn?THMym|HvV zLx%>EJMfk%p3<Csab2AOML8oG_L`OoERo;9DBG#ac~*QJTi)mgz=a<IJD)iM9mvOe z`o;{wg6JeDKv0$7=s>qWm^fe>t}lA0gq!(xpY6$=bYe#)uNm#*hj%a|K;+-k;z;gs zmV2j&uw=|sUY0F_Oy%^)t__`!2ghQ4NWNMi4Z1Hc3mPr#nqz2s{E5TFXjEkRj8FH% z#7sHc45wV<{M2Nrsl?=Kennc51N05Pwng1aE9e!%zj@uOjO<TY?+EXu_pF;38G8@* z{(>w$L8j*HiTFrV+;cR3I&xGOX_^*y?jo?@AHl+N;t*_2%TLD(-ES3q+j!~zKubI2 zWJk(Iipy<IdS-j9a}l_UJp={oh<Cke`Vc$)3fOytYXe)0rp{w8*vk9eW)Lhw;+>M2 z7W{)Y0Op)1f^R+7bVl6m2{bTgZ&k_qiExiLrMA!TNQvyNr}ox2%J2iNpZthuHPhuO z>_yd%)Y}&I<GKpR7h0{oy|xi?L(*olQYJ<$5ExHBK_T|^^pf%i;BFH-7F`HIZANvt zQ#}Z}lwhav&t5J~n%q|Vfe|C!U6_=|pE}wg)@pb%Z}V?xDt3d6mpRK;b)0f+8ej(P zZ+wEldP}(0m;n138om|$oq4MHwf+1`(@>ScM7Q{4(A<u9Y)f;^#69-tj(x-UvyVX) zGH!H^3!-iDv63lriVni)h737UmE_5eOU}HE6C{kb5s}%`B_ZUY?`1MP?}<|_9lbti z=yZ5ckzm@z>G(a1b87uKu)05KaDA7xW3KQrgQm2cA8B+0Iu^+a?nUb4*PMjjWA}CM z68UHbli#GhQ@EmO)7RCf!*+GQh51H3bRSy5wUJ@yI=nn)UbD#MQ+nG2X<7O|&8sBX z%O}$XmA!p}AUo*1unt!vN7*&__TK>fBX0#%eEmJ}h@mleooTkQ^QB$OW+A9Z@C`BR z_T{@S{YWJF8D)Df%UoIvwd-bA=hGNn;?=YFMhUK2i2Xb;<y@6V5%LDg{%PtumzmIQ zpfWq0WP%F8b^t!fJA_G+TmwN^CYQ#-smF#g*+~-taea}3kmoJc_6^mCad}Fmt#r<s z3Lk%6_0ptovqCAtU{bQ&!pkfxXcRxmykL9$*5xY*Geso$u^3-rGgCTv*7XG&X@i@R zQwS64isIAf6V@}sK2-eQef90DOE#2E+zF(W0dM8z&XGulZ!Ymd*=!gwj5<=8cT|ZH zBFZuwAq*XQyzm%d-K5ji3Fb#PeiCtuSB^WgE}rcG$Xle&9B(_+J2G<%19PTWwoS7x z<NmddI63zxc_wpi3x2B|UCFl)yY#8|u6&|glAiBq%D7cdVVH7GJn}oIXt~ueXQQs_ z6Vr%DqF;TqPpa)+t;ZnNj!#eN^?E-Zs``ARk98rcibYjU{>{=ARPsyVlUR?uW6bqA z!K!#&W-%r=S0rZ6YbeRy%%%e3K70n}+@>1kqnK$#CScEKu5Hx=*9WP--lzd<dPu=V zKs`Nhf8ZNSh5ASjteE+jwOXmfKZLRSan_#64Ho#8w3T;+r~hQ69@LbOe00)Gf~Sah zDbjnFzQ62vo^5SM(p~es*<Gp*pXlYbxl<opLn9I9VQR8<f-qm{Sw(aDG8;kSzn*OG z2P)ss6rB`qQv~9N+61$A_FtPn{~l=w4}%#=!%}5X-frPytH9CFv|4}E1nri30TA(x zD()$KZY<a5vN&V<a*`|xi1nhu?u0*kS*%4mbbOv&OhPQgQ0MDv9w9Chja}ArI&uth zuYvDnkEUcL34TvsTFV@RmEDc|yZXCXKYr1PwX+|QFOA_{#zaZk-#<9KX@hNUTz*8f zdakj)yWyk?F5#u#>_lBtcXBHR`TpLtt!~Q*3CSzi<~_YmS&g?Ud6{AdKpG@jz!_k< z;KS6dt;bmy`g<Op!P6bhnX=YC6&UPVu-VZ47-mIRY9P`L$(_p5-cl*roJ+NU++2BF zKfVmb_jPv|@oN$Qo<NByW-oYEcmv0&RVh>=@?c9|t+l!I;G?|js@N&SoVi748uq{z zlb+!rLGCCtlv?^fh02VxrZGbRD+-xo_Z6tw_C8uTE^dK_E50K&Rk`UhE+$?k=csMF zCsM0)L?#3K<p;PyKM&h<FZ;%0>F9TrF}OdSDKNts)5ch|?2goL8F?Ie6lp>?n7d0E z?Rv+0m0V5TfSbHMBF`b!!;!e=XXo}fzqHUtopWavVa`WCsj?)hZyPE8R6Q|WwM1Hl z%{@O`O8HCY^G7YDH>Ldi807VWNzpH&|2yAHNIiCW`*D)7f|^~QssEhak2yb5cLnZh zCyr!Z*sNnDmz93)H3o3W6@WeYc>87x_a69(zCY5hv)}IYy#H+afBU~|X6NtreBXyV zfag0qTC8bf$*pFU_IuX$qt<NYB2N7AayGP3?A#m-9%iKHae~LLy@R!Z+df8W3v9J^ zWXseM&O_vO^q{p0f^ll4OdY}3fb71TW5)Fd)5AbhqJGkE8w@MzQi^YC<^2^V8p}l@ z1u<Su(cqOnV9_&(c5!+Q8&O6pg7INDReZZ}_97wKF~*Gr?7RI*nx&E5{$mgC67OvS zu#1Q_1%dH#T>E&_30<*fVfzTpB2<YBT(`Z=jQSz+ScG~QK&bov{kpsE{p4Eurw5!g zP+41AH4s@FOCIe0&kw)<twHGbH%&ikWrHh!_Y-;|e972$yLP}oF|H}~(-1f}IC>>W zn=E&zR%V1tb|dO8x_-}tso)w)qfD@{(;RURi+ab!+Ro9SK<Vam=@*aFGVh_j&Z6sC zI{iW9<t=`#o?l@$0)vqQv=H$6d`&YveH~w}1E!nYm1|-rz6ET(VHuV*5-jdh=!?Ma zhnwURPePj@QAQC*A)Dkm^|)}IvEhC>k$4+n<-ne7mb#L$<@^6Eq^f^IGVA{llw<!z zD#`x;3n^Di8<YRiBDeoTQ1*Y-cT`4@(4%!dGj4#x*x<b~)MkXa6jsD&7U7m5RU)V$ z+0pOg_8Tjt8J$!Bl*GBe5#L$8jhkt#MjU}tYc8!+U1eNX=@M+7wtBW+ZR<W<z^Zr0 z;S=E;%N2lA<eO|<mU8J?K%1Jk5y)KDtAZ<?%MwQLyj?ya(y=a)MZt3aENT-P*SB!2 z73?ee3f#2aW$IGz)UHv3-3{(gj@RZfrq`;KZSd;?@;L#I212A*cA|177_QScgW=#u z8NeHMUw~zALAzPHgJU8G{tCP->Op=0NO}xoH$a83q_N(dx`Yk8ta0)JL*?&Ee?r;W zJ&wctq1!F^e4K8Nz}~ZFk$Bvo@&$1T;74yZD$C?EyPU>U;kSsJ40-8F;t6!_q||e< zp?o)Bwa)!*UW2`<kH#(-`CadS>PGWc)Zg6)Jv%!DfrpZTXKPMbgKF=;T1gnF;*@bg z7D*RtN}D+hw)?rv40=OKI@Y~Cuu0}vv=#*n#ng)u6sIA*^r?J;6memm<66H-yjunX zL7SRWhBR<8LoPY1Zga3+!Q3J%QL9d#Hco8sxiqoIUoR?3YB;%SIBhy)o~lc0gWKm5 zOb~7p#%&3wK$-Ecb7K}~^I^w<*iRq`@eSnHq>H6yq1jTP2*UOl)&VH<DNsU9vN1_v zrsV6b<=nqT_VJ>1vyGW6K7)2l5DE0&*olfWK6dB*U=BQ%@5ZCqY~l0pnGf_PtN=m; z<ZpLDTX5R8j_aFewGiBYsrxVv`u+PjC0CKg%vq9^+}CX=_z>6j4JuYx!W8C6c&tss z{ts^5Y%-1EkZfya<K@R!Xh#@|T8;X9*Y0oV(FKnp2mgJEy}W|B*R_@^7Ktszs$+Qe z0;VfoTtxyFem$=EF3B0r9Tp3I-v9X$*aDothZ1bVxzID{VKvX9GdM%e<jB?_ybX1g zd|9$63g>z1(@e21d5jr(sve1vrwJ$1M8Sx5ut1b+eVJioxm+@J5H(4t^G@jND|K_c zZ6q81ml0h@CT|>ssP?ISkRu{_tWc6NHny>wm3bN)gL9dDE|NTQ{NIzgR1_%G!G}Z$ zOS%JdTKq<Up;Bi}`g*{CK;L|2fCI@a{cWWS`1MsF0-VdB@sF!E24mBzn@U5Rz?91U z;I4tSa8e=rWI+a_kJB8*ynddXdMp}FfbARgQ@>W(c$x?%e3T*2tC%)S%Snj4?7)Oj zVZ$2K!4al8U}~?no%PUKVTXO8Ac}Pb>l1Hm8M-W;(?_cI`}H!N4!HySHPUNzu=iHB zN9@FQ^Hb{Ov~BoMXAN&E=|AyvMqQxD)P_vpEFL0!WH82WSvP{GJOC~#b|_}T!W4mD z_dUlu&RJtcge%qXI#*#P0GCC^>x9;%hHiH-!<bz&XsPt*TLTvJ$_4v2Wn9NVSqS;Q z1n)Vh)$u5hcc%jP3Y_Gf0c8<2R&;~{zN^ZgG$GFk)A+|sUJXfo_5@w#S)MR)4*Lzz z|AjKv-7hXU*hAnUcg6`@M{Ou@&}jsM5>VePlvC08SOL4{hEd^f^}J1Y%cXQSC|zIY z`q=xd-HXk04nH44o!NjM{qQOzRK90*YjF1Yp^w#VLI@sbDL32<3X&7w45L|Ao{Y94 zJnbSO`yyl)%{XH%FWWyJuOm(%BAOd;PkEnQflvP|ll-~ofhu~A-~7I!jaM_&rCBua z9$Sh^1E2Xw(~37<hsbHSxsK?)8l6a3r>EQx_w?ua^gas@d?#ZzWKf?)H`!kWuXWJ) zj>LVfxUi0cY*LFGS#J5+W9E^L;|)gn$7y!j5`fEWsW{nVDd@=X{20#tqc~y7&*o+W z874eY>ARV^`EVjt`8L!M-$VjyJ(6UUxDB=0Mr`kgP?6jzeUE&J#1+d{{^jnrJ9gP| zI~|XCi^N#$eNlsczItNt4(_SI%e5oRyT#y~SuggxQ-W<@yvcBW2FdP5>LGN+HSK-+ zVoG_P2x}BK0~CfWq9GZ>f)IrW@!v`is`0g}(`&av1!Y=p&<D>Ut*E=tMO-II@N+U7 zq&s=^Inw)#c~TTTKiob#j1pW#7ugK=5_m${W{YdKPGdP+Ifx!C(5MK3U5j^Sf?J=Z zZba6mEs&j4W&Gf-_0;ry<*x{f@e1O_nV?AY6~Repm|Til<vA~IuTRko<sQtVX2Na| zCQA}Z6NvTby+S#dF_tVBV0t5Qo`c*?UT6K9^hi1?r5CT|OySzIKe>jZnak==L4xJn zjP{zRlNbME4RB-TPF;oo08qpKKVg#p^XBOr+gSbwlYFgd8-Lh}_)i@$ut=2Pa?d5m zXIBpqWDA9(p!3hcT*rZfBZaj&B~>h?blKk5%Un#MnACGBi}sFk=wKavH00@PCP6Bx z1Zm7oZPi4ny6B*38zr~2+*&Q#pw(l&frXW@!r%??lFpD>a#)@6Ouafqb&|(CgV*cz z_8=WLly$i{f!A(2$Ur#RSyeDd4_B|Kst!y{*i3<-B^f3m12k8C5YmV7WhID(qxF8C zO(LmQwG8`tw+~!MU<2>G7uHjg%4(mv@ka%ffp!C}QoCid;n!^ts3}W&(J7W|nY?we zQjnky=BCL~{^})7(lqnjr79HBDgKe=u9L3@^VN-m>N{c<L9r-B&>G}mO2bYR6U7~S zZ&7KPHARj$<th+!`5b9YZpmPbuKCYy@V-C95sX^oHk^bKyz{Vmh31WP7aj+%;$Qmq z=wR4N-oDqchSxg~tkgk$v+12bi1`Ag?Hx%16GUMlNZ^vVu-tlDCG%9xy!6t`i5^ni zT@)dep3*z6EA;(%fF|(9@s+PAc1sR~ikm=EJD38DrmH9gk|K+!X+c0VWeU{rIyd17 zf;o*%G^y3cBS2Jl$!qv*RjC$QCA7+B$1$j*EnqA0d~XuD@_;p|Y=#S)@AaISO5?d} z;h3i8)mFp52GM_Z3kjcXBr`OszO7UNFI*Hx4I9TFx=@E^bru*1Y4U5Gq)!AgAWWxY z4UL7&deYh>wUq)X8R2z6wwi`VWpeU?f)R4}9<K4py%iK^GKYir+IOhHjS!BDye0Cd zlm}?9ee!D)F&Ca0#uD^d6ozv~9CGb#Rg>z_J<zgN_SYvpXvKi0mFZS_yc|1iS;aIh zr%_si3OAAW{D9UrlW;?M8Q9I`=V?j6T!$ogDPj2N0u9`dF}!G^xFiH6L(@o#Wv)m= z3nrzgu>_(lw36iwgQasPjzKn>6{5DsP1g_zUzUVo?#8<+6e_{!jOAmayyrhNGw!cJ z!x!dk*C5e*#i=4dD;bS2{Rgj(M0qDnlAdXJ(jOG*ASkQ%SWD#l{LKn>o;mk}aQwww zA^s90&cG(W4&5>M4gH8A5v2|bt|UK!nBeFe@o><#lh5qPiMUA25#ONH(%WmpC^@TH zsOS^a<Y8Zste<=lJ?*X|o+{wHdwqC7Bo!<fcx`=a4(-<acX~yoSS4m-&g+S@-oX(= zKN`!ps+W$+kh<(Fvk5_=y&h_C_B_OyQl#)AlK$})AanOV?CYfv(YP(2nH1MY!zXGp zT89pOL?=1s#1=t7q&L77w*sri&kK~yQiJ?woRI8K{ONp7>B~bTE>6U*Q17n={mbp7 z6N|+U)LhL83s|I;kX_*pvsUBGhH2~&V&21XOYi?NPWOg;7}ulm!ws-iXAMZ?h0&+q z<zYbbd%R&v{M<?J+1r^j&F5U$>(n%**^ph+l|8oad=7AY*lK^;I_$IVB1<CDpFIaK z!c4l4d4{P?Lz*WeaPs~}xfA83OheijVgnd1V&m#}oOj<8YiVuBY|2L41`ceCr%c4U z6~->GE~CQnG@Syml*gn;aWO;GC>=>j6ysv@&y|Gkn0#}T6Q>}(8pVG|0^7RCg!aI% zfG2^s*(A9|r^dH`==VEa|Kz-#5z^4COS0vm#D?-bUR_m)Ya4VQ#&&Q0iLXxQ`tHb| z7U84OdZp78X`?Q}?0F<40**53c;9InauV(PvEktuj$H_iub9VTNoDS;f599X*x`5J z3eMSto2NZ(!uj{o1TK%f(DxQCE!XPE+!kBU>ew)2RP$^f`dyS&0xp~hVh_#7?pJ}) z3v%n%`RCD)mt-QTJWQvn-|DiVQA{&p^ctT8FMJ?fzcTH)uusT$9<OjChUt6j@K+|d z25gZvhs%U!NIod;b*ufbg8Fx$>>MC7&UKNUG{Cj}p%9xss(umU?PP`9FV+M^PA?-I zh!sXtVe4}~I~L0?W@_Oi5sKf*u+Ta_Kfz`L|EykOhs>o|^NM1O?Z#~=69Dq|=;ha~ z-?1mMjLO7Gr#v2_J5rX1yeDD@Jh?izlv!^z-DGMeK@@47J)@g&A1dPN%r;HrUQ|(9 z7k}gml!%Y|WkdM5R=Zkop(&@Q!+e+K@LSZ2LpOkUF}SaQsKIzUM~O#7q#DZiBu@Om z?NxV{`beFY`qDnxFPz50_&%3QPKU|4TE+>|*af!*)@AK!{hU5uV#lYJt1{Iubpeh= z#uil7yZY$}4a;%-EdME4uh>rM&WZ?7x{u*}TNGCT($6VvWGL*o{n%qz9JBr8ZJFc> z8tD7&xvYeXnLbuempOg5Zl4C2LigEfhp2<$c}zr4&wY2#ht=T;&)Pyp#T?Fh7yC%X zpkY=Q3Y@8wje>XRne$^;go6~XK*&CYZYF}WbxRC!{ouT}h#Jj<*}Q7D&7$d%b>>-X zetW14a@NF<W@fHIPk+r6VCxPIUUxZwN$pH8!SG~i?Z?RFl1^-PM?%LD4dY25L0xqg zTHN8V5LPO;<Xa+Z_K}F@T%I81qDkf4yjqgX7+AAUY_Q%W4aK(xvSc+;sMjwH6|5)h zLxdKD6dzH=!_D(sW4aL9{xm61`eQGH&D?Ni1oxrJ;EyN_EOHSB*Q#IcZFwGiFhB8L zd~Cp@*vmQY7Jms=%WlGRlSw-Xktq;3`K9!}>(Gyss6TG4j4$+gs58Axb=2;D#$6Uo zw^+6jtgF+I#);NZUVg&>ole=ce(n?daoW+-8FPUleQ&!g{%gj@crO3U-$MM1@Pnrn z!(KAHyqc#6ICaz^$MRpM;ak_!1Aq<9W^h|~{(t;T%(&I(onO!O1&!m+@#*PkgRSrN zZx8A2h_=@YiPz@`#(Vm+gS|$m8vlY%SjpQ5vpPC<=Hjc{q;Kgc{qU|u*LK4{ZK2<| zG}j`AVZPw4&@LC5e>jw}y{aZ%JrU%efNpm^Qi@(ln-H=&aop?cpP7)x&3r9l#$T`m z1=7p=RzZLN2Sr|=S^9)T3;;0X{eLQ0{&zYu^>Fz&98L57D_D-W{VQ0qsptkVLh>hd zwq2Afi>leNsM^F{Zxy@h=p|?<MF<3d3e0!s{=DXm_BJG(Z*ebLF)>13<!$qN?|8pB zuwWgFZeDj5+ANy(tedFj(Yc9c&K{TD%okNnx29lgy4IZ8m3WkFMm1QnpjGawR9}eA zJr-&~dyrPOmRE^qbM2-!qK-SQvH(=^L^Q6U<W7mIM?-Hm=0?4=?xc2%r9m{$G|5Fp zlgs0+lO23*zfY6k#)`$`p=R4|yD<1I3kEl8oRPa$@v|!VTftu!sVdutbnS^jJ%0qD zBeEsRDzn$vJ-NPN1q_~58P)vDT-&PKNA-<y(imu`G-gJ%T%BwRyKAdIdaol$@qvSN z-6g+Y`+yo$+7J)vb!^StC*P=y_t>0VmhRYkPtLt9+R{(ofY9m&u-r3U8tAhNa&H$` zuYQp&%eRKx{~)gB0lv>=qq%AIeVuO~Z@#;q-qPXoav`3kZhHknqli-b0fR)z9J#Vv zAG29Akt8F9p*~A(A)x)ee8i^@%z?@TLMfg^<2I*#(!QQ}VEC-lRYR)+@?yG1e3G;p zw}^v3ssA(=AgtJ+y1yg_^p|A*nT21!qCai=&G28s&zt@^KU^KJv;6vdblHb3kH_nk zGKs2mw`0RM<>Vx#AiS_h%VPFrxAfOPWe;GI$y(dcgI-Yu+E^i8r**P)%`IY%nX%CA z;DFL0VaTLE9OltdQ^kEOXp4>>tK;h8gaMPW8To#az7N3fa{B`f1fV|z((qHqtYi&+ zo3@b;B0^pZWD1}Vg;lm7RJSV`3c*H+x~x#bv@+19k$cTS!-G~$vxR3WaHF71!z|Up zeUkgCDNt5_9~@K+me>O0s~|AN)mQv5Qq8T)wv)G?M178m{9~+jvvh|I6d^e%1Z9~> zQqVd@_Ri8j+qG%)N^b`4nNIaOBm**&)_!^}HH8ytgNb@lw3Xxw@UA4pmlD7P1{sc~ z#qiumPeqhHpBx$1QIY@vOUTlmnP4Vs1rE7N+R^|5A9@@N(@fp%FPIv5A?l7)AzK;v z#C560l>-|kgR1laWZ)E{1XCu5GKkAyIciP9-`=E6GlRmx2CZ$F{lI>A^0U2>g$X@0 z*&D?0jGnB)3n&5l1Kccb0gEga9(P2FL(9eVwysj7XE;l9;?yzJ0&1o*ZW@oaE4Nq| zwUq%lW$sV3Vu*j}wSlIo1R-W(YrUxq7BaXwU&XYToX`+m@GP)u1OUqfWqLngHl%1^ z-cVb|HamL7aw5F|4neWNJOv0qA&CfH47I<^)!1du;KOl`CKDP<+comG-K?N9lq5WX zO*&(C^oBPQo}wHaZa1@*gGm4+_c&-EM4}{WR71)4hi*KWk)s8Ufwi659+J3jv=&7F zqG1QXyd?V*VZbsTj%;~Bn2dQ@?nWje2$@JyGRJXg3Z=sqOxJ=}M`qFlUEl&nMV;e! z+Ja<|(Y=2S!FY0j2R9?(v6pvYQb7ZEyb4;ZOtwM2J8dpnb1iLw>I4n~h1P5p2Zy-C z<W513l)-GgsqorD1l8Ap4z?vxP`fpxas>CM3pCU%1~F0==<M8eL0k!PsWONxC%sl_ zNUx5QDe@W{YgcR&r2(Dl0Ua2El)4q4(3cyxj-9{|v<4Sa*~O>jy#j=iQmjo^0Co>c zw<c)7MJ2d_l9iTDVh09u3i=)j^a-%3-k}TFFmC`Saj*7gUDOAZfgTne1<HltVF<7! zAXWqmq~K8wx&Y~bnpRkZC5o*SVMYXSX>MwZhBrqwZE^s&SjRFzzOEDdB|ndLkOUmq zx}Zul+XF7_Mu_6k@5n^NlLt)NOdCX4V>J|NB$pY_EfAyX#0Prm-K;^nUi!VjU?|b8 z+Qs^c$`gW_P<Z)hJf?V>9}M;njR2#PMFT;QaU*aENuzoa7$g(gbX(WMkc6-;nm<aw zJGUoH8@Mc<`(O0j*T6VLJhjpqNg(<>5h}OM0DS{|U5HtycP~Wy!>)TZX4AA06c1c= zCDEZYC2#$DKZqqLDs-r50a7u97C()U0wIKQ*w{iU*0TmW(ISyPeKi;vB(jCZNr6cD z$B%0#(M-p>3KWUHn|R1gizF>8EnWl)6D0gu7_a#oxwMxI6iidA3Un~7BW4t0g0=G^ zfLy32uLH7%)U{BD$>iQ9Z<-2+Td*E1#25Q--0SZYwco2U;OtF1lxDzw_E(n>f6ZAy ze_6Sa$~lbe6|obGo&@w&%I8<1^6zdm0Z?IvY-|m}dMwaSDd39?H1Wjs6YJx88;oq; zt_?k83JU{km$!8$o8DXkQwr@PS_|!CiX(bNq;Px~!I5zNB6D!Wb+{Qa5;<@52$Q_S zj0C*zH3B1@K(gWJHg&8wwgOC=W>Uk3{3{uim@rdMCXb>!i5WM4o~|_j;L0{<N8Q+f z!ufGFr>R&z9BkNos!ZlCX2soCm;$}B=|^4j*J8#0Ej7Uk{1S%cco_n_4dR@1H4*Hc zpZN+X<?sG-QyH(g@gVXS7TVMdaNEU39%xBJVo7ch_2fof2aaR$ao3x)$qdw3#kdv` zQVK(dN?C2#!#jWfOfgAaguv~)8nI&j`DvG1N|8-8@_g}G*aVh8gR>VQ$o`ag#sUcA z^Kl8M+5pPgsMeY&2DgiXdp{au+%~s_PBTr{xOG0TJ4L;abU43_F5NUOslFK)01pNv zrrGbs+w!yRN<Mg>Je}3|8sjn`P^CNFqpgmTKcE)!>KxPJbkFlQ!?bMOo}gNFmh-QQ zrh*hGDjL-tLADoV=Z2cG@V5c^7LbYES}v%FlO+*5+RO^VgA1wVifGgeI^BD+q-+h) zn^QVLYNhaH;qf=B;b|B?wGUc{jGq(o0^M4-&mYRbY9KcPDhPgr5D^Z=;S(RMS#fS2 z!b!K|;Vf-f{xG)pu8l^GWXfy--6*DRNH<OZP~HAx9NHVIu`_Xu+lfvgGDa1m>txVe zKr4OB+RT;##m012bW=c-4&bF8cyPto)Z!Y(x!w})Lw1cVk{@hzMFyTgL;Q8ahJW-5 zV0ODM{8d{vd$MuY-NO0W0jb<IkZDEnGC9;J!F?@7`KM<w;8N@OxmOe(Y|Wu13B}A+ zMHXPM2Bfd#SYnr&iFRDYQaOD<+Q6%*x0&5!h#Q4oPeBGJBWiX}2c_#Rq^17bpKL^x z{bjyioPLb!dMyw>qRd%<0r4KY5an=;ImXwFK!Z``B#H#A#5|OsueRU2FI^uR7fw3# z4Gsh!V9Zd_qa2(7o~s^Bz$w^a%<NSZjH*8$PHMo{jo=+ZL3-VA$y>J!Uim1oFq`2Z zf?qZVQTLB)!~%}+#Ob6t3fxnFb4<Py7XGaB(^ufvsxl){A<nz;SYxU`@Lbf3IGp-@ zSUxh;)>x@^DhBK5J!C$1z)&e~78np1l3;5y9!&pyH`G;QT{gGvas^?R*u<<wgF)3E z=7Sm%?}aScfY`L*zr+vg`@tOXWhdAxW@~C*C4jKKvus-+Y{Y!h`Qp%%{DlBmSH&A5 z=rU#ZGJzCmR;wua^|-WzrJMp_2o%9{Hu~Y%ksI|9+~NU55Z3^1mTC6aaof<|7p2eJ z%Tv*6YmzrA>^n^Ku1>xC#wi(A1%DUd*u}ldb2bjSzY4v4pAY^bJ$g7RfvHyrmjmh; zVpO0>TG9-@oW5W2w9bOXfSr(WvtPA)ArJDPz74u85Tt`qvhfyj3|?1bpAgx_Hn!m9 zyds?Sk^S)FsD?Lx9Wmz&d|aUERSenam>jqyPp?21>1@`QJE2uhoOkh({Glc1T;BO2 z;BgQ|K<(*g8v~!*FgK+pdTZIi(fg$N?9bi9x=N1E=d|=JrL<3<y5z!Vwd4qU`1|qY z<83Yd>8&4!zxO*-%I+`v22S47^Rjzg?M|52$8QMSj`4{|(~jX!x<c8P56I3~+6)X8 zJw;c-S^(VY{tyb;DOa9>!M0g3pX0Ch=#{}??&E%^KgKE^TXd%jq;M$H8$gzf0-ioO z$sG!M3RKWgY<@i8TYLsl1Ff!LnSk;LB<m{pCRdATa-iw<BfSTUKl@uIZ1kM^F+xn) zVT2BQ;1xXNtZ@`_?%g{!ufP*kJN}TZBDJolJT<5$gTcl{&7McKT#+FKRM3XnM)l4Q zhs9$;Xg{uka659_-fS`N*E|a`UTWO#COsXHw}Fj}_u8`a;Z9x`x|4EU%dddE2uKjp z(B58zfea+%JZ}V6BfH~I>=!+PbwCZD9Y7F2^F(pIBA<LkrVZDeWu>HnxAJYo_Wp~A z?OKzu%Vl9`2l)*N8E~n|)XMV*E+YsQtG+=+7T-PHRqE>oA4<y7{awc9E^ByT2j?k? z=<<645a*92Wn1o>vf9lNX=&OEA)DqrS7xhygnWf96BBR+i{_EalLJ>rTI@?qLUfky z^IfJ4KOkbP)b|wWgCl}GxH_-~w(qUdxIwNHJLy0XX&3Opf>}P5O;NizXuMAHs<aYg zCZc7luaXK}jszby^b`&ck&n%0*ojPQ_hztO@fQz4w2>l!FusP?di9C<IsO9ra0ipM zf#<Z!74Kq3F%?&MwFgf1U8C^zNaytuAfP{F9$&#PqiSYOMk9mc#+9N2*DXe!XM+gL zAD)4j)9UguzNU95!D99x*ZvkV!5scs!Aw``$Y>xAT52cwTPhaNM!3(TdT)N^G%T2% z3V{-}qX^(^U7Nr)Nq~2Q8RCF@k3<>9{1u-Yi-4IdDu}yV(yvtmi}Sc?$(i_m26pn^ zEQ8aOCed?`a3(<CP>Wa<F@As@r)J;aH+D)Yn)zH|oMHiRII(cwp^iGB9%JOW&d1{| z8D_{~xa5JPP>yG@WX1gc6Rt$%d_%hPwa37Wy13HK6A*<-^)3A=@Z!g8;%`Opl<zak z33m!2h(L67t($TY$&IKUoZ#s&Lj{>_B0T8UQLrbK!tq?`qWysm>M5k;KZh+`3(CMy z`b#xOy%&>-y3PW~5JoqZy*TTsaxSwrg#p_UKcK<G+AGDQcpe~_Afja{{0FC`ssu|( zgHHf<E)DqCedMGeKHgo{T&;v{jbhG@$+!Xff_ffI1;a<g$(@5h_{GJUzz|JPnIL3t z3S6~V?v`0z=8}RcSr9}Kw7#xrN6KPTyu4Oc&i{|GbJ`LFTDEN3wr$(CZQH7}ZKKk* zZQHggZQHupcsc#j=O=dT5wX^smPq)~;sYmKTmPUCP?+qfHel3b#OnB(BstnWl&kEy zb5n}z$AhBpMtTUksW=LA<rC)%?^uXr3rCfhlh0)c?FLL+fC~V<>DTo@w|wT-S70D8 z=_ZUY98-Z)yxkq5|1uavV4D~>gl*RPVf^FIYq68{4o=E}KE)y;BII?8V_OxmG^yp* zLii_ECe~xjZSa&%`lphU(+DrC?Si=r?qDVzQpCIX`*q_+nK|$0W%L;iEN+XkGT9qL zco$w@2HLLoThP!C$Em~Z5`fB<l?fprvU*7J{JkJ~%~ujWkz86YsA@VTElB|j(kN|) z@hs5T-RVXg6D`8{Zn3`MA$GQ+eshUY6o-=oD~67G7J~`qU>kKn8?I9}6tZEnq=%lt zB8<JdN@(E)FYQ4m(>?GMSdGHb<*D>^pDvJ96}4rpkHkqk`~FTgo+-C^EB|lzZNhS; zP51m3bc?v6!-%Y%&s#7H33j82u-LI_wK`fz$+-58F0pV}7i;loRwbE<C=%D{CnDfi zV}S6>_S%50C@gL!FM!<E6;zDrsK;-hoX85uXB9@aAy*lYI41j&f>=@Za3zl~5a-1K zE<{tXDQrRJ7YAb)Oc8-psFmDXP>xH4gerhvR_4m&?Mt-%xv5SxFFqYsot6GK>YwbN z&wo3R?=7wgGuc_Y1~eVG%4GaZMbeskg^(Gf^n4e0{9W8#qRynU_scr}qQY9M9PM*J z;@>;NnbmAi@mfaOAgXLTs4iQmFI=FmU6Z3}Mn^Q`>p_Nqq+rfW3<`+NeSE1vbp^35 z!BXZ@l*ytSwZtLZSXiZ_Zfy7MYqY>e!WC@9!Ed%$W%~iNw==Hy3_-rX;G{GHxGr>* z2o?;g&{PF522FO4^+8e{k#WUxf)D4&y*nF~Bh^1`SJtG~x<Bn(CFoNMYWxvdpOb!p zz1W&_!b?#O3N=Y-mW|0gtifu*5tITReGxwU(!yxKu}swk2fi3iD}vnLYnivED}fhF zS8A2Yx7~+TmF5<G_I=0f<bW*JmUPdnfDptG43hwbC=E|1;V|yxjF}^PKSZ5YQ<h{S zGYvb8&30=qxQo1mNy_ZY@P92?W;31;x5ob!lpr<$cSE~3a}4E)14W&V#s*Z>-{l>Z z{%9qK3J%~ABrNZ2#^IalU9vHs*+6fp*~6=*`gm?gG34~oTbIfKVGJ91nk0<Stbb>` z_NenS1L~4Y&|@y@DlC@wa!_|?^T9o6h8jv?nQ(OVsX%whLG+ZjgRPr0_1(cxT;XLo z#1t~(TgQNAcinCc*Iyhr9RNUV<arOuv)?k7&5XalDph+y9Gv((?y9*n-@&K;GrM-) zujWa$w-8~?S3p#BGB%I@00;%^^c%{YE!`KDnLh2MM;|`7H)%O}NdN_&-+z6ZV&?=) zxuLnfl;OeGQw#UNEh)0c&+&<l6X4AI#z54b#vLREvXAdsFOu1Y9~NKL6B>m*P@$QL zSloYU3+?76*RoqJUK~T2=gc{or78)n!N}`L+<pHucT<z-<wPX_iuli~J&*L9r5UH# zh5@+@BXT`6{j`pmNY0X;TmRY1#u%Ubsb=%K1J6iqsIzK77)NNPF8~I^e-dWZT1g(- z@!U%sr;Nl!3V*^Jp+!g0<ljrjsLGzd6nIr%3_M)KZ7`0`5$M~L+z55S=kNF(_x@TY z`O^Ks4kk`N(3#Cv9A<-k#YX!83brxV`5Krm-PNwqIqTO6LaAiZmX|EMMbdgHvecFK zA=(Gn_ar8s2x+=d?mUU=H69mtVY6g@e+8~4qIn9eh?R(>J&(^*ag&zo?!KH~da;lX zvXn1k_404}rUGkT&3zSMN7Bv+bIQILnPJTfkO}qOQDe)~-SVFYz6CBa=%{RZd+k`? zHHz=uX74mGLW6>sJaPpe!Chk>4{qo^Yw~ZI>I_-qb|im5rLj>>Akn>IXfU$F=;^f; zFxy&k@sL~%&ko{rx%3c)B^JMN_55yDL5V$IcE}kAes$dp1y6In-^gV?jhA;~Jxzai z3mlNB00Wdmf%ETo4r<z>WfM&uDhNG1A5qP74`=k*6m8DjKV5sJA7(3hF3-^%0?JQj zJ{J&kX_&_-a@0nliMY@MNOyc*A8e|+#XlCnp>*|KeKZ;?DdCy*Yc`!wdP0=>fsrxp zj9xP!3%-C^KZp`0oa8Bb8p44=?3S-CF72sYeT;#m$-s}ePZpNa<lLQo(G0{1|HB`n z5{=hNtdOaZ4Pu=eJ$wMD#o~yo#-9!|aZ3^SH>AHMrG=d*pcsoHM+}$+!n6!cIU$c? z)$CaxRpTmzN+oY*M5H}$hQ*3IE_&6T$g2YcF?m2~wm{c*No`A=Aq6lchY@ONKFD^u zpNZ>U1awR%%q!h!oQ|j7;3KGk^#K=cK0X1~V*E@xdiq3xQg6FCwJh|h<1A5{1sH>B z(64~zk0&137_yhY9JbBH0cpkP(v%U^$YW0`N%S^@Zk(jpm2STxN+joothB3kbfZD@ z0Av_akOy*k-7S0Njint9M0cr)N!tkiC@?Og=G<+Qx)O(+6f5hPA|*$6WTkHrC<10$ zTMc6j?HPdiU~_btl0?TLoedPw-nl24C&DZWSN=c@>`XUL5u*`<W%7BtDKj-C=7O~n z{ky|dyH#VAlN7RI*cMCo(p7}&1qEe(O&<8(d>jq|<7++;ACp^*rdOG-uT!yA6QPz} zqm}GnCn?o@ff<Z0C&9Dka=AAe3Zo5|@df~D(%Z!3+19F&b}Q|De5)VIdIKa97cRF1 zWu_>wS=sSGQghzs@XP9npEtRQi$05sXwIh(SO#)w0s$Q3aJR<wL=`2xo_>)*dnl@> zC4RNZc|vYW8@uSLFw}Ron+~nL3_E_nj&A=$&NZF*aiJq#Q09a(J;3ZsrnXLlwrYs- z!0K@KX3{lY-*x-Awr_x-01<~Azrq2ppf*ZVLK+enhOHyJcB&fyH)ZqU4w4J?wliZw zz8=TkVEGMA`BXp!`oCM#aQrBVvc08lK-;L~SMas-Aj8qwA-gR8=XwSV4>Y|EZaj$D zkLaJbKwrDtHyFhORa6c<ILKFKFVuVJj(a-b2iLYi^AxBa3-@17d@NmNFcR!-ma=1l z83YVhP_p>wmZ<0x^qU@(n#rYv3>Se$AgV5cJArnilhs<8yo6s3L(NN8ra<X!>@Fx7 zP`8h?#|;I_u!JuBz8En=6&%LI(*~=CMZ#>gf2GQixO?4*up`YyS;NmOh7M^lmjXq2 zeT}VPr|jLhv|PhfsTwi}s!D7Ca>BiqJm2WTaUS8}3G$tk>)#~^dsFcJVy&CLp<Jsd zky3>;ypE7S`<{K;c!F^Vz*(1|aNeWVQqFt5G8a-t5)QC<`{*<*w-L6+c7d`A<7xO5 z`0mZ`9$Xa8VGeAr?b}YgajW0>(Q#HKHnn-|pEJI=s(nLB1JKRE->YYi>$!}5>Os%z z3j7;g4eZjS8%B&6zxh!%`ms~Ad*mSItbtUrgNq9!%NdQn|KxgA9SORY--Hd){#6ZA z3H}4F7DWtK;!ATS)VzrexY2X3i=>6sAv-dQedsQsfx<kH5_;=OL!!6!sSpXn&hN?O zap>Ps=4{%swXGz1*6BXWeW)AA&gaWduu(G5fQPcZwi}ncZAe$04Vf6b>V7=7h%M+5 z#l3B?m*$E#4Ca-+wKdpzk^LF{wo``%1cMlQmgly_PemAAh_<pF*9~@<cTkgpWU(A$ zIj>`o>?+j72fp_ud*)f7TN|B%gaI?6p4s1mYCUDszV-X@r1`lk8W8{XWMdmvHbr!& z>c~W6Ul;N{7S^uaCjJ;ktlYFX<*L~ie=pP)ypM7zs3#8b65?LBhP?Z}zr)5iO7nXp zJjx4gZov{k*%69b(Q;er8(R%L5lt(N=s2G2<<DhDx#4%-J0_cq-VKwH{{kJ?27>2^ znOSX73%z&6@KuSr18)tV|HT20&=-r5Rgc1aIl1}PSK`rCiQ`Fk))dVr_xZo!<Z>9Q zmki3rDgpA#4_lPjIrv?&F8o^1i^cEb0t(c4p*(=Af-+WgcP2~vfjTF)=C;8)U3qCd z8qdsOR)PN^MJRwVSCI$tFtjmGG;l^CO$qP-XDZpQj2;T}mk^~c8CUFz(q%Ml+US#- z{p5th7i#h@;IaU)1Db_fs0<5<Vhc)OJWgs~m(KFJtUu-9P@Yb(C%={tKmnbj%md^f z%4(5eb*U_GOW3-UxjTJ-g9F^<RGvkG>V}DdFLV>$F|T4^PQ5$Z@kRH+Q1QhS*bFlN zF)^HLJ`eOI-^YSJ&Gbi{O0Sr^*gUMTfzw~BLod!sXGUT5Q#!V#tpWLU<J6MXIrqc_ zV&_XuvDbZB!!Un20fa*OMN%&4kmJ=~XNfwV_KDiWQC^?*l^~6udc4Cbz<xdi{&?_3 z4qdCOx(mBD@q9h04;>goB@lH{5~E26h%}&dVOLYkB&pKaF0Yp)$Mv*vxU~Ki^A#8d zoj=8P`7q@m@F|9(+S)t9f9iy35*#;c?Ls9Dwd|wGWl$9%o^%h>Srr_0D5e6t0il$S zC)FdqqD%t!Q!srt^@EB>rYPNgS{kV@ef)rR7vp7=*@>daECibAi<SW711qg-LIU;# zA*zfHl&EQI-aqNKie^JrTN4g~q_~|e!8*%TRAzkn3ohH!;awd1%LZt-IhWmU08lTY zdU*cDkMWO{G@jELG*()4+7;P1mmc^YOTgFB$rSbFF(N3QdZ&h=AxNb`Nm#GOi_1SH zy+T>cg_q;1imvH?===AULYd3|A(Ef2J!reiHg(teYR>tlocb9D-?}uWQQ_B!kA!+Y zt;z8{VamP!p4a^;*t4!5(wZp|kCMOE>Y1#h2e5}HqZ%Jh$&&7AVWYAknpLL1U8lT? zx3e_BbqaI#a-a~32?%$qOQ+S^r`QUJirpxQc)v`oW!by{4bHav+KRpkS<G)mB-}xs z$D4c!t@eNMs*)ob-Ftc9Innb|dyxF0X&X|=YgTm}0uHfTCVB$FN4opB0Q?5xmMcHd z=7o=#;RTL3-<L&y>0@UMVM+&t)Gk+V;G0d?V8&8kQ_pTGZs*torr*&2QBc7kt!eHa zGv@CFwYz{8!%c1otp6EF-xB7{LIM`|gIWDCH4Vy09*2d>s2P4Eb5vI+H+w{X^Sc&% z|Nf}dANgt`mOnh5C$oyeFlm$2v!HS<y27p?Ln@kRa99&tHEYlwA=S+y-Q%zbD*&a2 zMjG8+Y<2ek`@Y!c#1yHM*nXr3v0^Aw7j6fq{wge{0Us6DjG1jglj;nrv2FYbTv8A{ zNVzk|R9BYwONT&~xj%pR957$!!GycLuXSJVSL=*KdIjGXp?P~UEN^Vhf&c9ba|jA2 z#iD2D!ZM@JHLQG=pqyT3PG+vR`n{Is{n)PBZZ4L}zkGC4ktMH8zgyDX<k}sz4F62$ z2)34zcXh1Ou5C5uyccLrLX{>)H@a$~;AtwkhGm?SHb;`MtRs2yPb+e{GqiS|`{#}% zseqm&4!g7EL=L<EDn&RMocXt8;+Tk#>h{5ZZs#!Fq<+HvH~8PPk<5S=9Z^|IOroV8 zBNp&`e)K+C@Y?Xgo<H6`Pj|d{V^KePUlOaCAG6|jskJL6^|E2wlXa(LVRf5ix3J8U zvZv}{YYvj3E;v14$YdpndZn<VbjYUAXBWC?z(J_-2kpLQRMf0;ah>1b%w^IzQ#9Z1 zwsPr8x<8d*08Y4XN$%<}sxpfor7ZirqP_aw(;Jx(=+`}y-Uwy2O|ngK;Xt>IeO60s zJRb}bo&~PpZw(c&<BD~et4mPxq#B4X@XIOBW_Z4jvng|V?Z(@8ftu{9byYo`d1go7 z#br=t9%qRwSPM3Bs#md>lt^B(r1Ze>JoC<uGoO3Z`@t0p8qo$MOw#@xst(+Gig~NS zkSd>rGV6Zd{`uy(=?uy(C&Tt<!p}tj@|yM_sqsoo8xdYNQh{LTPR>=K6uYDUA=2~a zj^XwFb|m`N<N0XPl6|-PjBt$LM4{ku%|seD0k3c$>5?YL6Y)fpu%j#Ld4~Zb(!1Y# z1m-%liDbpv_a%$@b~;Q>rk5WA56TLw$jHv);H<qbp^Mj){(ZGgNHkn@qV}m)YmeFO z>1%hgdaa&pEj~f(N=|++tc9&N`GfeiJKk=-ysV|o-VU(R)UWRXCRI7D;x~{RPnl5< z)^tbtvDz5@uFG8gu%eX%-T?3$RL{f_m6{2D42{s|>R<!3lyxg601oxl=JYu~gY5L= zmiYBLI;tcb=Bi7u|2XR+G?2EsJlvipqX*Q*(x72>P6q!lTYVWTe%+l!5Mfk+`2qY1 zIYRi8V{@7>qnx6T2y{UR$Bx1?*U>fF`Ejn^c3Z~kBQb<yEpvd6%cgyq8*$UvaJBsN z<?S=05i#l1f7GYiLWrlVRRA_vv3uB~WiKH^6@YrFA~W(n{*PZc!Yz*94=Gix+r?1J ztCn<FU6>NDHuQrVAnt_y=leU1z4nB^%j4zuJMHuR{lRYUS47No%dAqO;{6wys$h=( zXK)lOIl>v6dJDk{MaKksR=?Nt<M@2}^Yhrs*XONt@`6#<(T~mh&v{#N=5iSDx4ZA% zVC7`y-QfcV9v&@;Ot0#pkV#Fm_zrxR?^Eey>rKse7v77@c>FEigMdXc_8h*~35Fs2 z$KXVH!uR;${14E7qRZ*7K@d59;V<?A005N#UDrn6!Q(erGpzl8QpY{Lfu)0j3)xrK zM+YUFL}SuU7Kzjg*4PG(3>N7P$;qUme`ij>-fprnd%}w>ZuF4yJ`CM#69)IX_?U|l zN!HaIF~TZRDhqgV+#7XmM=G{!Iv1ChGlkWof-JzsL%R+1(|#3X#!6;pq>_#<s<<63 z_!`vHe&_PKwrU*n-qiB0eKmIM>guLDcxjW8^p7gf?FIO7h(0^d3oxFTd?P!@hVyJU zqWo3de3wCg%p|t1Yic4hq{pXbG)mNG>}zT;K5as1-Yc*xS`1rh-Wc-}_{plU12+A# zLV0;Onl|gv5=}*+NkY{Uf<V0#VQl>-kVS3&7U;K%$N)8Sza#lEk#3NNU$W`eIYaj% zapO|TK`#<<dZ!*jhXGg=Rayl!LT6R;Hzw~xe4~5^m*~nl^;lyENVmvF7G##BpxRy9 zQA_cy40g){wK|r4Q-`0lo;`+>cBNF4I#-4AE(UR4e}~fU^q84$4)$=74jygdBk%SR z)_Z?Qas-d~yYB8-|3fYNYi|HJh`-Pcmj;3a8c{4#zgudhoZA!$vIc=rn}Iu7p&Nu2 z&TZCL5f9Ao%;Z+SMa^rs(Sp|XNA+w%zuH}17`r|Qw-=oQZRBe|GJA`G`%2x|j<hnv zs>~hMkrmoRX^B*$$Pk#{DhxCVu%V3a$I?v;yE2;Zco=vmLV9*Zo9}iKxPtHfU)fiR z?gxBy_f&5D7z`tIM1vJxY7okxr;UO8a(FdvInD&@_yfNu!vxYYyU$oIhYu6uJNazw zW!K52y-^-V<X&kl8*vDdG3Q_oe00!qKVLhDX@38v0uLhNL8`PGFz!l<jJ04Qe;R%B zjJje-KINQwD(c5=;Fk#5`Y5{X$)y#`ZldbfeWj09a_XtdS4=4hioqZ}!ZgEu5VLMh zR|VLgcuimCMdz_4T%~UCm48!-d$s>|Ana_b_e)ax;AEWN*&e12Wbf(#5_L&ie%0*D zcKi$z>Z-tqWi|6ij7a9B_K}NN7KRj-!E1r%xI%;F$Z5ug{IeJzT1!uX-C6sa(#*ry zua}zF6YZ9S9@1KElp@ERS3nq8K%B5&XVJSj>S30A#olb7N(>TzbsPD2z!vwS<h%Cv zg$WIQ)_Xm8Bk2+0Y1YhHa9N~ti90~*rNGC#t}b_J>ZNhTZu4UdR-vCg`}?B#B=0HF zo{W)0b5AaR`ON}b*%I|OPDWht^)={y3to?MGNgxv;Gg!xYnk@FzR<DyfN%*l-vnZh zMLx-K4BgGp5MTnbk6zpT?f{A(uEAZ+f{9#I1`1_ZVM?Qd7{eM)2(aczG+B37fD2F? z=m1czd8V;ln9&IVca%}MT44(G6IcWg^<tYA(#!!19Al_>PZ+~kSRfi!4#&dbWfK(& z#u0sDf76WrTsAq<6J$!&cf50q1Gz9v9Q05<N4sV3c9UF+9^xvE_K5zG6Y3UJKB1Zq zLi6lzoooS=Q7G5N+583s<0hd&33>`f`<I9A^wQtz$MsBM55SMIk)T7&*Cuoa0s%Bk zh$IvhyXBihp)k2S7-@C1AgHih@aK_MATJ1Ha$-AQmGY_}q|T3ZIjs0nB*4nQdqT0w zab){SeD&TydT@=HnN&K)o3RI2g!5WdIP#aRVF&Eo=^!C^Ng-l`0HqbHyDEk77b)wt zFAA{8cPWsIywF&6)qi;te9RFZ$N`H3vCamAl$(I>1jPUBA9JPK=*qED_<``w%0{3} zOX0FkGmr!`C6fz9zIdrJmW(=uTEN)}0G=XrS&o=wNzv}jANaI+vMbO~Ep@vhVkF09 zo647E*Td!`NJb%DzY1L&41<8kJfW<>bTAF8@i0<-rQP-n(xnJ5ej~11CH~p_H<Rw9 zM&)UL8b1?|Vlj5g3c^ysD%Qj)8#K_Mn-M`X1GA?#RBIen|8M(RCvr9LH#Ue(g~o4L z79gY4x;Dyb7G~&m^t3DVNYPLD2!rcX4=7)t=K7(ERfR=~lWV@ILiC~~=zDf}U_v{_ zvVZ<5ua_s6nJogx(+=yg;W^c{Z}(~+fAYhDt)^OV&nijtV88_Bt$+K;F)amwqFU`j z5>4;r)ftzjt|zHfFPF*rZHc<Nu$mn}Z9Ljv*z=clCN!wwLGA&J^~!B!Hh|Za&PTGq z(=2+X`N{dD4C0`kK%X;@X`jm%@yUJ*1IjqWXmx(|^PEXCgJF5c+O;EYx!ZdS>@P*m z$)Qan`QhswCDv67Hb!vS*WLCG=TJ$8jnigH=t(7L$VqP^i_Oxl5SyXfO$N*(JU{Px zh#4Sz8g5j{vlLx`*z&9qOD@!Z87Am6lTj@OG@+JPw!U<*4D|0HQ}okVWtl0q?(~K! zN7lg7iTQ+nJ`#lo7=oVv^}*?4l!1))cfI<b8A$alMM2pH2+h&bHVx>fp9noR$AjJk zvn~u*fe4D-^T4ltN)d9&)PnOV#1dbIq!l2#0&DmpeeP}2-fjzl<uX#L0~pPfT~CN< z(n^lr!`p%FD7?*y=pg$s7-m$fB8{4uChg2t$xpW&qf4SbxPNm#Z}C)Su<z+y2xVcN z>2avNhcC*w6uU%wU|NY`r_W7!U|_k!qhXEAj8!-}k)y%En}C_I$@KT96J_S6o76Yk z+qo{fPKO-d%&Uci<JkA^H=_tjxjw|Aix%_?KgrNshY|%~S%L)%q1wzdAMvO1qYE2H z5WG_+VX~xhHKP=xqzZuX1&Kle)D~ELR0sJgn`4)QB|%qEWGMGIR!2Lo+LG*fD9{W+ zJ?N;GvtUqKCl`HYUAU3liu+T|$jOl_aO1PzRy+?9e*+khQD7TWZXgmEau5t%RrvFu z91OjD+0@j${Lsm%)Q(0F=TZw?A|N+fFTb^G_rxB7haPKeB0d}yG(=V-PLI4IFGJ1v zMylmBw%URp_1BP2)t)Q*2KM@JUq4&;4DvM(<CB>;$>I?f8SxF_wQl{sj0<0Z<s+2O zA^W>>^8*fIu#sr56ATOjLrHHawBS|9(!1`!I|6V4T2G4**=Qf2qf$^*MXJS6Zx0j( zm0ob$G1~y^vO?wbEr>vL7Zo&G6hN2cHapQuuK~cbp666jR!&Bg6{M!=RDh-K2G))> zGkqI98;0~5-J><iHu}Z$Fv|@J*)Fs#lWL9i=AQzE8SSF^4+kg&5e@y`Pl(T$#9_b( zBsmuCuTI<YC2dAQe)Z_XL6AR${?5U>Pb)n<&V!Jsl2<ye2sqZy^*5r-?y#5(xEKJ> zQgxUE?9H28CrYv4muv!ZePrY2%{J(+ap%@R<jEv{dBk;LCA>^Mfap$}n&c@E`%sP0 zXd8s`5kh7$6Oav}En`*PEn13C!|r{C7CK?$VpKb<xm!Y9S;at2K)D|@bV8K~y>Ag^ z3e9}8CXYiV6XOvJ=uDvF5T-#*Rs(wO6`ez5lF#tRiKH#r&Y}9GI5#qkdH&t1SL$-F znO9SaTQB=3h$Hn+Sn_8p)?7p(YvK7=<%V?<6cScYk|ON^QV9t0khi&mfHwV_^yv{? z0?Qc&G9weLPyXa4g&kYfv0e5JQ&^yKYOK_dn5Lyr_rcvA0EkI2v!)Vr-D`&S8R5HU z6?>z|kEy6GDK4V@)v>Bm=INCHrb!AWf)iu)PB(LZM)Ls+ostX<R&`o7wmu*ov39vV zihWP<Wh>%KHjKFn%Hfac1FXftnNtaLhetgN<R#YVNhas!oReNb5A~?uhqM>HZ>L4< z0}b9l`%1&QFT@d@0it;`Vt11Y+NfB&PVuu1$vHma<*6fenRY4Y$AyIg1!L$9Q@6Bq zFC9K(?MYOX9)N{eovR}mYITNy5#y}&a|9f9#ZoBD<*LN^I-k-qy^2<TL=q~XC}ygI z*>n;C2eIC^o^bXui1#&9$JXrA`9aI52qUK3wB2~|?nwQYE)wQWp(7ZVw#KR^*h@!y z652<O&_ne5jn5uOE|M%O1%PgA_XGqGsc%ikV3&4605g>h5T=%nEaxCc`Ff}X5Ro#U z>#RPQs4M666p!Vmy$?{*QE}V%y_IV!Qc4CM<f<hO43)d;SZfNtDW$Vb!-;U~40gz@ zH{wCEX$5q!2}C$DRbR}M1`A1zv8t{CWdh}j0=>~zwzlt3%sO;j(x`4$GzjvNE2YS} z{3f}v*H!gF)fET8ECDm<N3oVvTA-pWV}oekas1vOlZ@a@fX$<$s!{|K^0+|66NIb; zg;{7_P{Tfh&`R#QiB1N%n#qvDZX@_?=W;!a;y}#9hYR7C@@L9gXqXYe;wm@{yx6m8 z*Q}b2{HD#{)mzDNB6lpPW7|6FHHe)NdL8H70bIhr!D$N6*R)iCQ&bzXYKoS^)ZlzE zmj{4uLU@-P<zdU6iBC-wl7LhfNf080w$l~*0P6UB_7vvxaL6k1PrIPQX)%sZ1%(}h zHPVBU{1lT(DY_~D#m6k@TgeDW5%cN501^&zLf2V`tn3z9d8IiWH_5t1G!=5l68Xiq z*B(7dU)R{1*}{>lDLhEBbA9&6RY@bi<dp}I-aPXA%6T*i9_U}Tdqbhlu;v7fa@9i# z^XJlY<)6om5CHBhw%l<HB+Xw~wAZA@s*jpC)`q-}gM^!(7`amq{2H)!3$W47Yl>Ob z@5#DuFfE7p%`v05o`h`VtIF!Vwazub!I*FH5@}ZE*(Nf%YXDJ^QA1l|wDdJS2u$_n z+tl8rNV6;;&wlTeSCb5zpLwO~F@p7RQah6ebf)5<=n2qzOI&e!Q<hY?yB8MGrqQUx zWMEDY0Ng*oF4c?+noPHQBIc~f*Zsi0qDEXN=IbyEhjx-poS^E6mmp5#gslh`q5d?< z9#nrqS`^qMR#}zc*N!L$5TwasQqVY`vAX0uQHJ?lWBMtyb9H1-DqXWnx2@dY*Ll7_ zbKKn+m<s|uwEjUo`?%wH5qnWV4cW__dbn8;l_Y5dX1)pf-q7dEf;i}Cu2-yco<P}5 z7z)U1Ug&t3lkbH9u_#h2zE-WX7#{Kc3*FgvmIOahJ#L6Fa&|pBY#ualP<N$+a-)`T z_C57pFD_wn0>g)43eRHp5VMgZ#?6ejFzKjbR1X)Iw;vi>cqJq)7S^{*(9!jL899hx z)|l}dHc@pLL$vP7%!hrm*_@j&-0Mzo$Sg@HR2oe0CVoeE{rWMS?G?B%AvKn-9q1&( zcgy(fjO{W1TR^_EUG|}=w~P%b|BY{5KMa>Je_o<Jwb&9`clSwhg81}l)>NEcP8GCZ zjHjSZd*xPo?M=>|js<%B&d44j1IGHP6d8LU%W7j&QG81Rr!L*)d**hP;L;(mayMIU zxEumeQ72IW2?QBSJNL$G(qG(hEXA3%Z86|AdL>v!g}KvwI;gI|<aM-|e~2#CAz9ew z2sh$<`$jyF=m$Ej6Fg@UsQv!F5}Yd7ObUih!ehKRgx2p8cEMxU+Ngphjq*Tp$9*5b z1X^e|igTONra>7Z*Gl$yA!jRaQ019hrXouEQH4>a-YS5+v6rp!RT5-N);?6=gDOgC z=3Lo`E<LLbrQF2fG-y#$7uTK|QTx7Ro=KbY?%WFs4L5X`|C$eGeL5pqr3v!-?}Glk z^Wv{rD<G*)u`VmYboFCYn$Gk?Li;|NxDtQVA|h{#+8J!1;3FyhP-)&F3l00Sw2QV_ zKJme;RbYn@q+zUZx|dRjwH>^fOD(fYP$E&thdU=5e~_r++rz@e(L%Gs)@u=586x)D z7b6R~-hu8{64!Axn6=BS;})5VGpef;u}(TV=}GHfvy<igFoIPnmomE>JH=hO-sY-s z(X3Kbw1hULR`;v(?$hisp=t=OaIMoeU~Nf)I25lA^E5*uNQ?BQKz1+QQaH9Nuz@FW zF`>_SdbD*Od*m-J-@LobeQ|eX-2l=vU?h*kO505sYtQ5Z7%Vcp(<S<0z;{_iPildT zR9(S|`}}jRSGM5S4j1m>nul8PP8oUJL%qMt;Kr0{<kxIV2vmT%iWQ*#NCs5GB0mpO zaZo$g`4(|RdB=38<^8RC7mJtovgeR%wrBVtCb`v|>XKRL$4C#M?*otI)37Dg{thl> zSb@uMw6Y|sI;B{_f*SAd4!5-yS+%M>V&h;mk>KGDdtjv9?4I1+kezb_ovMClHk-LC zUuBa3UxwS=9Qq|Xhf{vjH}EI-e*d|C;<#d=!2|~YkVgNn*u($3*yUvGXzAeW^t*#v z*3gbSU_tS{sl6?Nk#ya(@X!E^0t2}um<H~&ptmSa&v!&Nw<3!n-Za#r`^moHcwsw( zyA8&#AmclEXwN-x&q<XqmZoM#9=7T{@<6JVPA8>Cw${{O&eXMylCcrBgKfm_*JFE} z!bf<o+I!)#XG_`?vYh;@$v|sXuBL59(^}>G^SpIFx=K%98KV|#wt6XBb+59GdnqhJ zi&bz_c>pJgq*!&TFPstuo(~`K4#IK9o_|%b>&i?hUviBVQq_Up{;4}<=7eT1;yr6J z;k&UJGm*|hbF4{*6bjy;O4SV5ItA(#?;7MrfY>PnZCo^AZs#ZZL4E21D4l=|l^$Vm z^~1y;m4gEJ_P%~UdHO8rFl~2f`$+P6jLe@ky&sJ|2qp(%RTxZf#vGa)ZUr0$xZQb& z^As~`<%u>_vBvBmu%fG3_m+;#{z&z`0MV@!y92Ph(Orb9GNVtXr2h(iO#UiJVTq_+ z{8EQ>G2>_+?0ymwg(pzqOcTyds^^(_VWWRG2%-bDZ0b7-<dK@Rshk#~*^U}sXlod1 zU_`#ZaPLBv#SwgwE;Pin6~uUgnLe-|#~d<MJ$DP_i`m{C=b~-dqeg|yb3?5!4HLN0 zLg`<W%p=Uh5*&c23H8A4@Tg&qG6kHbPK7?WHG*#Jbv-tpEq5?)tE$DM5w#I{S#`%4 z5K~vl1kPzhXh}((`;lEOSGAkRMU&wONd3A;OxS_&#}99EC4FRA=mjNIImIpR?~7KA z^a7jJg}!kc_u5byQeah<DLibL1C<LOz;&8SI{reT-Qfh>sXokOB|sRGGF9_9-ZRmk zx<3?{RQE4`PXb3Xxt<b^M+%h2v)+6VKWilzEPV!BbasLQu}8GaIu@2O8mOFZoZ5}y zy=MdU`Zpb;-oxn_DIB|Z6Nm~@@(lgdak?|#(oduisTz)uBu`Y2;Ljva4x`C?Q~K<s zt)q_QMCRv-M5PYk6NZXcEVON1u1R^FJrQQi6r%)ftqm@&c$Y&B()x8lo|rD*TYR+9 zAj5RkiM1j2bM{KU^sGJleRtClgQ_#WjOLmG&uuyKs)~WjnGh94d#Td#DH<)<SO0}) z*^36TLYWcip%BRjzH?^5mc0Y&F4H=abvyF5h3c_b>_rvYh~<j@=%u;^h}#_Ep97qn zDx20fSxL6Qc7tLsrlE<(PDwMO*v#}yBjkiqO6ZHrlc8C#-imDLv`tAhncmA3yhtBX zZ&rxZ9o+*=*f9(P*akq{H%3nY9WWZf7SyYRn@m^c`vXOvKuG4yrGqmhgU#<&FMk+k z799$WZDq_ZTHBYkuMGn!-o0NHuSnqwKjH!(sVQ8ig{K_f6YOF^g29etN6hhnA$n9H zwb|@3CGPj8r|zmp?HMd9fLMy8{23g%i?9&b=W}OkSVTiMa6{;4G_7_XWvFRjo&a9; z*d?4|$musV(q8jnwFf!YLjyg8<#px5bZr_Dj!UTwCb8>95WBXW>&9O0LyUpmR*P`! z;CaTZ76R<3@FZ|jn9o)-Mf65vS}JJ1!6$VH;mS#8l2_ejm6UAPRa~X)_{8e9wac+s zRt9a>3_|i$aTKe1Y}>Vi$m|qVVNFd=GRX>AF__^>>k>;JVKzpwQ^=5?Var}(303h^ z@BM@8zN6di>G3qe&5OMp^Z2h%IQ+l>>-uDp-M&_@_Z?#UV7T+s;Vfj&eFA5Lh_!|* zJZ}@joCUl7IJ^V8<=Mi*eIv}13*xhspnbesG3^&2kD_x>uqZ=p7b`G-EZa#78}j<$ z#!u60K-$2QDUg)X0VoBLsV;gwY}YDmsPMva(IvcN39{qhHl>B*5(-z%E=@^dw$)hX zg<Ggxn!l?jAHZv2Nt>~wmB%cc*18<-Oe0SOaD6GEz6Z%-9%<q1)D*^A$w%iH7TzZ= zN8fu}8aT+xI+Y^wvG7OcvDK{odD!<@Q&TZVj<WV9em9Q!OI_kAcWMpOkjFs_;-$UM za&LYt2n%~D9GQ^cT;0<2%@ct|b#^EV_QPqaY6Pg^EHTY14>8xDD>leV;k(uDYJ3^W zAo=|!)^6_mCI^pM;dWGi&vH9xOrxm_nQ`Av*zT}06VI#%e9GI|I-h;fEPpFpNw>-H z6+(->;^~-Chemw!a;U%Uuh|4ntigfqZEnHbyZM2Dn{>%nA-6dDtpG|BPRB!C6!dYS z`B*mp-xxX@JE)=Jymp|N^T)frLUw-JT{I{hw{8JbH{r!Lrp3bG38c}RcQPLhSeyZu zFWsjUpNX9E*?O_|KlqjHL13rybNqhaJUr79%qr7fuJaI#xN+pouF2uq)D;RR6JA4I zibp~|=LHFeBH@`7+x{eF7;&d3mxE#O6fhN2NF6nXsXgd$J-I$kuRf*g8Zf|4&+Pv> zWSeX+6Fz=<YM}oWPtDlE)Y$rWxMpK)+HJBuZs`lQK~OZu&Kdk3y8%Tv3_&BCB^I9Y zAwa~qV%sJDiYdu;8~*eRW{OC*WU5jaCG)&=&N#Nyv@c{ICr?C{)TC218bJ>q7~S>Q zQI`o?h(4l?Z32jwf##9)(Wguv84+h@3^kD;=(WZy9ZvMi3JOe!RRAm{^#X1+-%M>8 z<sW@J3f_7MPLw$O<NQXJYODxc*ye2b=6Vo_J!MV9j|bn?B14r(mMjK-B==$ogMD$Q zU<n7-0S>m1Qh@f-SCOG~9HeG3Kp=*sKPv`il83}jJkfE;K8XmlY9y*SGXbO~qIK8n zhpRwcZ>aE7*8-|s?PUj2<1L<79`Jdo^X(=gh%7nWH<V4M;wW`Diq5p3Cq*4&6{SO^ z_Af~#mJ<701y;NUOwmB5e<QXkn0yIt%1`vH@h$isv2?cPYgNm#)SkK`y}$l8i0Ywf z<Dn{r@cMp#7cma*B6SqqOv}YBS>g=Flq11KM8xP@?2sQX3vywpkzp<V#vO`**KKcT zYuXfkUisDT#TOuq<`DXMH7)!7e6W17`GRjZx7yke1nNzlw|toWwHE`C?mp~XPnzZj zGLTI4qEIK-|0?mP3DCpdY0!+t($s18y0V*mSack^1P~f#u@D74hK#LGssQ`m@@LW5 zRbozGv)G{CVccv|X}>bYjW(rZlXl^ud7{59P%X&pgmf{Q1>0+`VIQ$O33Mm~nqF1H zPF2WvyaBY`(j?}Oo^W2MI^y@jFtC>JaZD>{iM$Z3@F2W${L1kxKEazAKZMZYV2=!g zIHPq35HYkA>`qgE%47Hmvggs^KDH9;e!mG$i9%7`2K00fq9=(X#o#{eUWvI!6wT~> zu<daA91Aa1>7I(l*%IT~DY~6-nDzY-D_EjKxowf@Oo7QD1B`{|N#H||C6xgY+woXR zSo8tt9g0j0gKA`B<PU5>d^NHnq(G|igCbalOEMX^nhQqnsog$f0|M%CeLBZc%s@Au zFo@*cv61(INtW?pS~?JJ$)##-Uuaa)erp;qa8v#sv|%;gh?X9!?&*0!<&9tl%xU_D zj!k4i68Iyoi5Kd{K~&Ccx6Oceyp-#{|8gz&UJ)d+=+rYPB&9iltIU0gutihnxgmqI zSPP%RimkyBAc3TLo3ebYC4q{LC!KjcE@Qfq)Ceq4Mc)EwUsj5VPJey`MSiPAP><Yu zpz#H%0Hmo{;m9jcXLQMgGWLQD0=_$IOIh;#C1jo84T2aklrk4l0I*niboww4rm`A& z{T;Li@5*_wST2n8fhQ$k`PCoaQ)<Q-A@lt{50q|XDBA0T)h2RCKNlPyf3z1Tn$R}| z5ZMG}-6&RASoX9lE(2Q*m13+5LX8-*&Ar`l%r>IjTK=JMGVebo9D$j2a`y9pBYM}Y zVOY?*Qnw8K>{a7B{=gXD7Xd`0zJkn~`!hq^R*Fu=bJv<SG2gru{43IC0I8on%&bN7 zX#s7etaz_7kS1E2yOL#$f#vnvFvrbF%g(+cZ!*a8Ei#x(Bz0PvQsv9{fU|J_iXZ+$ zP`&3*1=8+^KLUU=?VuH!&Q-!k@*&WTr)wcOibWHx=fa{#fXj)i5<#SMp5QLI0v&j} z6=_5tMGgsSE$uDx38<S$>Sbd*rm!4`yKk0MN@ewXLUD+*P6`rghj{)8bKtICVWII8 zX$~0qQM8|U)1;z$wc`;P0E{J0^BsM7Y>S>eDY~WnY-gI(yvlq^_JG9!<6opX*qc=) z*(dMZG|a$e-7E|NVrFGOytlxMeb1mo=y~4+Gu{kH)jIp9X7ga4xQ?m?zV0zqdxGv3 zswgzgDO;Lgkzc=>Uc2qF3;GP)9(9L)!Gkkm@hFopbkCtoIqVq^6Reiv;YpIlqjOkS zer<=Aq0uM9=W3@kc>B}@`ol<=iOXI+)KO$309i5ZzjO~p2AmjhQc%``WOImWm1_Mt zHJ})fSu)|aO9m1w^05bwI)XV!SJ^t~Y~H)+<mAc#khSWh{2|+0Fwt~dwFSR}U{@G8 zW*3Jf3O-=PKO2fG^*kRM56)_puUs!$i|p1UrHt+5i#EGO<Lhr08hI?=)nxR;(`%PM zJhTqr`-J8iXINkkN5(!3$#9m6>&~}+Dq_a{gv)muu}U;67|ups+PB45HhO>e*UxWt z|5=2$K)W-`|7KN^H&T1*F)Bm3t#Eh|5$J7R6h5}wELxbn?MRA40;pK^rmQYZOZ;2X z{4dj`Z9I2;0{QscFu)c);ot$#mMsD@dkaXU;=`ZKB=(JBgtjkmWfP^Kz@f(O#i`iw zH&8eV^%nWGlIWcv9ow&C!Hqp|YIQRz^qDf0(saM?m{GBx7&ha!SNQ)NpEMC|TWY`n z0BcbH4UW{<#?;X6cYGGB$;K@*AatLoM>hyr7Prti2!`tt^1(qs!r{zUIPObYJ6w*r zYE0CcUwU&|c5b5bk={LIrn58W6j@G$xWphY*g@&4%G}8kCX|!B=`15rtIPy$5_@0% zi3b$`<K>fGBxx^DKZ+j14#T+z?lND2EZL0`$yabt>)#9<-x2DjzARBRvVDLZ-9%-W zIUAe2xVU(Fs(gxCl_aXr!Uo?UE1pLkqQeTddl9zwh1(mj`BH{w);QZ~a{>DUc7>>P zlUNi#r3H~d%XNH|Ndl;aV{0gK6|Cj}Y}qHE93<?QlMeh>s34>-=O`xL8-W}aCPuVz zIiMeDIPP}7Ruo$QWNKfwrC@R0YAtxlFVvr)78Xq|sUCDRk#(W_%*IwM(k7iwUHnk# zFz2IEje{`vE@cBC35jYN8-E6qd&qSoI+b{6my9u*N*5!X-(f>26U@t!0rxX2+wNoR zZ*3eQp%b?;i?VjkLdXIX?JhEJF{x=cn@xeNcBbGH8^Bgu#~*5ijsDq@j<S*a!49^+ z83Tw;yKUB!%&QyfCOZ248@l@4q!6TK=*6#5yjF&aDJr|&)Zfj^rr43!WFo#+nfE_^ zH7_p#SA3-8h<e=*E8P-XFN8HpWut`+r!6r=9J<2Z0<Jz-rU#$ref_O-MF*Srk{~^9 zp%3{9InG_RYXL?Sd*t)MVAvcRuG)Gf>GJc#8NV&xkr8$#Hj_CPtDL6F>j^kz^4HgY zA8j7m(#LiOABBp}^7E|MOwzn2@pr;Q4TVaWgGi(?NwU-be1rVPl3UaYDq?tUsj;w~ z4x!pOZN?um>*l+oOB8<XoAbf>imB|Kq8Yr6m=3Zpl{a_0P*tl6a{?|`uleo^PDryp za{I6EZ0Q?#hgo_FKvy8g^!18b`38(vZ=;EP)_aq?e-LLMZ;UdIY;JEsHflMnfuHNW zpDsA;zwX~U&Bea#-#b{v5=5S`uDx=>^k2Mad;>}{GeZLkgE@H5B9VVU{{U|hs~EMq z)tNg7LJdQ{4<bD>qx4Yu^cEb<Kwl0LaI6vnm@(8)^kQ1Gsg4edeTYIbqjEN<$^JEN z?=BNc_MDFu%y->gmQ{Z+WZ{kUgQ~*y{`elpu#LqnJL9K&`+u-Nv3<GhI&c60yvzUq z<p1CBlCiy=nWg#vS{wb}=+ZARk%D7vW?b&xrPdD7Ch^&y1vCTNv(MFV4$1aH4GC0H zs}}39*Ue1gPBihQ+A;_$tco^a(8I%wgW05jV#0CR)mE=emTEFl9rLpq?(I*#yZ%ZD zh3GQXN)E_}E5?`+FOiv<*Z_xiic+&^uTeqOrmy?pLLhasg?yLkJ|F~z+I<(5=ZaJd zx{S*QD=Z@B=8McS(KNirgjBjqh{2e4(v6|2CMDP-T31aJ&(Wj7;4hDydKSc-^By89 zOP+HI`K91YvuHh<hM9q45*~csUuGOg3_Y+CE#%@rj6n~jYM-<&aG&ZmWjCWrxgcOU ziundrS%_o6BSaV-v~K(`pd2mqfeaf>1g@9zuZ#go73>cOw^Vw4$8Na*>e8<U&$M}t zrBkdb>Jv`S(WSITV~MSZ8bhVfMC269*NjLi%|@e$oN+z>mS7_=Gz(-_WDt&{bnGT1 zk}ZlN67ARTXbSwVBDjBTI6r~(fe@f*D&CrQ$UWQw3-X*Hh=!ua3*pS|)rv>&Nh*p> zMv{AZg6Su94Ksg4IW!;y1mXL3I?iv~=j9G~vq8Ur1t`WwDV|4ar)QZT53fKU9U2I6 z5t<hEq_T22u%8^6%Jv?M5m=?51CiBU;_HKszCj{Ri2BB)I={t~{SkqG(tXznoBUE- zGvZgxnGk9tACEaw-%=~uB;}2C)<_OLXR><l!$_2%ZaHsilzkK<WOVnjR?6y+pcmDY zEK7$HSq5UifXoe`!Xr}_?@R{gK^lJA3OH{ax?yEP^%n?=R32N><S9B{>X)rTbpP-W zJ{Js`PPD_0vreugDj>zvR8Z~?NM{g6SWHxVy~b%T?^NVj+JFyam8#0x3YYk7q0XfK zl_e{GZv%uN59uUryb-(x(tA-6Y|EC3%JG(6CRTDf;aP36T4WT;(PJvE7!lfvQ2NMW zs|ZmF{;0Rzf)V&|jxhqO_zt~A*F=-63}Gt|8{GWo)u`A)o+*f;2*69k7)cp6K?Vpo zId~3uQiuS&^S;J{@fH%42T;F>-Ucj=N8oa5GYcI9JbINjnF4ON2{`W6$#~01dIF<c z#vC78em#HP9Gv4)$9EHa@hW^4uovC~a?U?IY7cu)Y1~O7un*9w7Y@Jh?bo^Yx=_f~ zMvo=Ge?L+&v(^>A{0A0FcTmj4mAhZ=Q_tOG?y#;>6#!U3oKl1Kp#rwOkJL4TYp7k@ z9O-sg95xZ(>=8N>)@m%K!vw4v&|VxK+#f3-HNc<3pdQB|EKg?GQHTMsjjhtW=A3_% zVvJy;SS2%~m7Mf^*@!4_aMbk78-{nd4c9B-!e8t4@EOVPOBoCU@XbT#Ij+)8#OeMr z(GyW0;dLawf{~X+@X&ni(`gJ>c8zd05Md*rHfAt(`im-j5nQ4KWduXGG#*LqY(2+V z3li`(vnE->V9k?3b#k(67xu_Y;*vZwoJzPDgghv#PoxeQWNZLlzw?n~fje^``Y2H6 z0t?)NKPE^4P52nJ-K-XQ;NpUCVEl`GEq42DB{V(*fIJ@l7y*~6{to^2-#30dwRAQP z8Ul^;HWlM+$}$%+m*h^=U+V}NCar!x^(d($L5TVFRBg*FqK$B#!-yaN$jYI0QkQ%T z<fdZR6jFvTcKYv+rBpU@=m<~{ye|^~4S=E?dtZ|9b`_gmJy7QoOlt}u4o^BMJ=s?% z2%EnaZr`t#U77lWU=b%Y2H<gl3&uqs=8ZRTxg*H*P?rYMoAY=@ZbJVeEPx19%zTXQ zRUiaGYh&@q90=a2$?mvu5w!9*!n;j{lO2MTb<zf-<0buH9n+wb2RXGEYr;2{H5?ls zRrKinLJMy8>jI{yf4f@s(R}P=CVuXP-><V&M)p(xmYqTEv7%wXe>q*^$WeQPnNO>& zm&|jpQ#pvcNN-|Iy2_eIp019XA6*^;SMDY>%SD6F4A!@t%A4aFQ=wwphjjm964PMG zE>v5(0!WdwJUgMnw9?*z((Ch4Ha+5)sTz{J8L;<%tYKmG&Q1U3PoIUj(jIaxcpG`* z^(x+>5+Ukw1WK>@Brf;GtEO)!xdL;cSb9|LMzyT@by!3R+Kb$vs;&9mSNn%7H_GfH z)e~%Dwoi^J*-2X01$>plUMppb;TiUfM?2?$oMR~!!<JB&8SB_Kcf6fH2OcY|WLqQA z*egs!Ciq=HpGeu1#-qzFTW#`{3`*ywu#5kr6JXb_&VwwgE+aUKMJTR|ohcv6l5~wR zJDc4cmCy;Mt+fuORl0q}B$lJ*y!EYWhPmyjlS4|88Ef=$VTHVSbni<xw#<NxnPjs@ z^az&OBS=*wmhyn7^BvwUqcCKQV$aR{)aDw&!TKZIh;5~(yI*Jfex?T$UR)epjAJLU zPl)O=`TdN{3R3#uvS5FI8HdlGfy2$Ow$|6j27G92JvO?Qze_NU>11KUH9qw5O@7$` zKm`}7K+o-ZtP0Kf#E|{&1=+0_--Q-0q_hemqP7IeTbF+&MQbVy*$m0rukUqlP7$dM z%&*}lG17_UM_8LSh0WCBv>+u6l~Y;c57lRqRxdX#2#CwjA0`H=o#GLq8=^WEpHySZ zWf+MEK=|rY-iXZ*Z}}tu2;gl9z2-V7c*{|U7H}};uhnOAsRE=)(+%I1M+L6rV-r-U z!x$eMW(4Ep#VZVllP&MzIZ&*$Zh&ulp#2wRTKS(fIB)vnxbr&0VFFd&%m#ENxNg3O z3mQYc^u-4BwYF6xEaU1Y)HD27IFZa>vBC-%7$Bii2;^Fy64AH>->DRwN_`b-jKU)W z%vUIm+b*Pdr>~=@&DNy|{RD#gz3^lBE1cew$VdinF2DYCh-I8vLacRM`68NLV<@wq zPBtvf|6%N#x-)^cWxv?AZQC}xW4mM9>Daby+crA3ZQIGsdAehtm$QGsdRlAFv1-<= zDi~pCd~S8qJI{)8kfaD%z)6$XqrUGT*7ra~_UTs_&2_T4nJC%?g?f@I)2*(HJ_RMF z(4|vrua?osgH6Mo^V^4_!uQfKsE{2_%DgVU8^rDv2&7GptYLidj<GAlO41Jt#RU^K z|F&JgjA4{a_3{fD)%|#;qVEc*b@<6jsS9$<5$AlOx9bBGjkdtC$jz=)rBhmb)Dat> z=r=?aIVh1oRF;2xG6mCvh|HEhT~^7U_<`HLx9J&a2Qg0m48BNS9bdI0Dnc=ie_a?) z*RRg_^I5@nK2;$^CD=@nm_cx-QW=WunJh%^W>V{_W%A~t8(eh|3{IyY{zt%-OycUZ z;9`oWMrqhmD8xDNZxYX}+gI@^lxoHW0(Ka0tb@<O!Si8tNqHWhBecq8$c(y-5PUv0 z6C-<8J#7@)N{Uz8hd4Tq7gi-gFKg#p=y$8&o|O4DEYLZU7TW0JiaS2po{S8$!BsOg z9pbD--Y}s+LQJ`3H{C=+!vgCo2ddXOohuPH3tVxKf8lHT12CCGLi5|sgcx~~Vr2%F zaVPD^+B#;^UmQ>VFmc~#Lzq6rJQEe{AQ^uLWR(B>d3ew$oIZBfb=u*dJ#+89X+aPj zDw=yjl3Y2v>VHC7uw(E;l9ZsR0?Lke7i@#m2dMftYVU@VNw&EI8`HzRT+Srd5(tKF z1H1jn82Rm5M&7*;;szz1g7HW5^C}i^%H4-$up7Ddtrw4AMqvcdIY_>l3H=tFl02+b zcl(W2-5da9QF}U2vCCtdW7?Ods>&vyHi5Hq_#^=8$?OPn`fLwS`VhW*N%?To#MskC zeWG;y^p7EGbW)?B?5GZ;I=c<yN2l``KfSc(&MIBI!_6QWK<g$_I~sbU%^=2MqvgL( z*Thx{sg{mH*<V&urOMNrezhl`GkjM8ZgT<pD`NY#RJ<NrLWHq^9CoWE3z7P)Pq8Nb z#OJJ8`b4CVwb?lsvalQqqI(PyWiA|+Q%ut_LRA`(c`a-&q~`GehM{CUkH+2DlW%r2 z#nt64FJ!Q9_v}aSfh9fw!|V20Y>syL{Juq*s>##ry4Md;7tRNs8>c4Z1*~eMOl=PN zD(w^mVb(k1i(kV&U#=}YjDM&i!>wDLzsO^ewi@kAzf?<;+uj}w;nI~G<%brnp}8EI z)Fml(RP-J$*$N6_zKRr_F%js6pva>MIz_x(ydZmyle5sYARAD)z3-fq|Lfl)SA_}% z{uW!1@Up?kLPj8v!fq2#0dQ^yXzb8v$ztZcqnB(bARm3f#P&w0ie?i28ZY;|%?%_J z*g#k1(ZCm;r@NQZf(+J?)9S=1foYqvS-Wc>03Vg95Cc|}uJ8Ag3~DAr-oF^yK7Bup zH(<i=!OoJ_H@5W9n2_Z53^|D03%Z{cb>>{+C7Geu)1tF7OKyOyn@(vSJPF=L=rTpi zn}Do9YcKJWX|pb2xbNGipuErlYyq56ClO87qlI7L0?Y2gKosUQ*k@gQmd9?h#(Q~_ z|8M3%&`U(Wb(&>*mQgp(b|rWMtK-sh9~w|Y$gQM&vtRF&cp<hT+k*GF1+ft};P)m3 z;rSN~g|FQxV3KmPvDwMLy8<e)(H?%huVQtf7yC+Q)$FW)WE5PU+Nj0~(*8}CB7BVK zMaz=YhOoDt9*L3z1=8ssfjQjBa0T%o?GxW}cZxgs)ud09?lCNfc&^q>dz^f>9YR<7 zE#l{X9B}Sm;;hz%Cs;4P-o*gAi5=w5?v<VvPmHWWE||1$E<Z(}%}1Wm>U^mE=B*BU z5@o58%LYvnBToaK<hQ=r6unx4B6xQ_uhYt=u30@B0*(cekQ123unv@+>H$K7xmE?L za+KiRN!B@>CrzRsQwx{5;z{xX_nK*rkAT&|H%R(m?B$ktg)siE$y&_MNxZxpr{$wl zH*+F`U3;U}*_Av=DTG|GmR&HyPjbrG3)yuO?P_q~M1w%JSax$FG#8?8xc?j--I)6; zi{StO(Ut%J<^Ks#|0hw|z{=_ep<eP?Cakl^Zy&4m;&zCVCt4lzUtAs(SL3dC*jpQx z7?#9Wtx}~C=OGz|FCZ6=tYzM>*L2(x0{r92?a!*K<&&hviD%55INspM!}Ie|b+(g| z)DI?IG8TvOE5%Y&7FSmzF01#nbY1<Oai+3Q<E)B<|D|T5h|R8Qv~99kj|}Rb2;kVe zG}~m*u~aZV7FyVJQq=lPJnokuR|^#GRD6lYxIcYV5PY4*_zv9{>!z42z+ETbr5wIj zqJ6n-HOpDnGHZQQkGDI|+vMyU{heyBd_n$Rn73K4-<SDVC9sGArro-4*1D><NnoC> z5tX1UqTT-U2&dO9H;)JGtF=lsD8DgMp`*s$v=Nj^3{c^_2w9%)(erscc)SmjsL|_m z_j!8!@us?u(y8aLo}Qla@w&ZRtsu~2&=dH4du@5SXE253Z_wGkE7zW+U%B|AM)}y~ zI6NZ)&c3ey&~X_UqE#U=peTvjxT)N!!W8c=y)S2Y8F+8~HqNqc!>7J$-f&);Sw4e! z>>O>k0{?q*eDf}W_>fYw&HH+U)0DP6VDr}gQM=LPrQ-vLy&Jh<-<=rP>|SSm{M__` z@<JDUE?NQ51!Q2y0lvv4pBHPyR=4o>LY0e%7eNc(SIf24R--WInPsO{G}fm<9u}tg zi_zgY;ClIz{FO-438(R%zDF+Wuk@QeDH}7dUEfKx1f&GvV=^~h2%3#HmgAd0d%P^G zp*ih6bJ3<W7~E)@@<%!Jq57(;(h3k5%xX&nss*u=IbB_>mB&K4UvPzf&5}NB6oc}Y zTzYeGuR1HSZZ^i_Dx6Z5lAtc!TT^ETL5Ym-Adp49hWX$>Jwc)6`MK}R1e!ZcZTXTs zMql?8Sg5PA97-CS6(z-bj|q;}drVvSOtgPS!z@)|abx%!?-2D3qCrSnP%|jLz+VM= zC8B}#gOyZm?z_TwY=k5mtd_e^D*-@#(4!N1HNP%jxAhv}Y+v{OeI3RR1xuXvMmyzt zaU)WxG)hiQP2EwW2$LYv^w77(-YM8|fz7u6iNhv~yJ9!?9vEfPcr;e=ZJ597v|RHh zr637Qfs;dLd>==A%j`NrgN3ujaiMV=iRA+S)A?N!A2BHC+Z8|C6Ij)0Wx>xlOGxE6 zZlDmasq_kwJza7<BG8MaFQ;>f!j|PHGSX<ofx(lVa?YGW>nc=$#RrZu0^2A&Wl{gc z#t03hndq@td~vMnB#QEI7c(Q)m%d+%NY1)RH0vuJ*%Q#1%R7x0glXl?FOiAjTH!%- ziLvQi2f}KM^u9r!9gsZKCABf5AV7%S{Lvo<^lxi^HBfH{QVq}c9M%e2xGvD+AI6t~ zT9W&!iswL<uV{!FIl`I3>0@aSwP-q^**d&?4^^-6u)KtYeKMz`MumgTz&#}BsvEMN z7<Bts;H0maP6z|2g%3Htz1AlwLk`yjj*?o%O@cLt-|Ox5SauTbT8C<h2UxXJIbk4H z;ny}2tvps@0$GFJWnaKV#$~ngeWOG6w2*Jq4ZWX#M3(<h2W<aBqH#YkXgoXwPL$5< zK9cXeqNL1Bp0OblV|-&4Ts#_Fi=Qu4lEh8(1v{sG1}!bHBrn%mIqnx)*)=RvKm+vm z*s4n3vWA}XGX3S53I9Lx{<>0MPEe5#AW1=Q629ic9?6tR-AOAC(<HNhPW|d|<kGse zuN5PrwSPtD{QL;MkbaC>LtiTxK8RR@MPC+4HqdYbtiWJSqKGymmho|V=)|V{9@%U? z{4^q}t*IwvEIDdb<sY<oc=B>|#Kb5f<4F%zZV>FS$686kcsHrHk~+AsK75t;M1Ge& zU;?R!vkzCfW&#8Xd1v81lH5Gs;|@mZ!^9GvQ}+}@fqUD}cl*A!^dG18v0yU_$i~3C ze(?km%viPl27JKPxWgD)USE1~I`4pJ*lp~K72|@};(-gJ0N6L1(*tiFe}q@|3hBOz zOXnuY<9d2uy>@~-r2$|E?(^tGLw*Ib?!j#rE=or@q#?Ld)H^)!6Rp+zA`WzF8f<by z4Qnpf7bupZ)A8tREVy~QBTpC@t2QI&#L=dxk&(?vZ<zP+JS=f}(dw%geyL&?eX*P} z;6QgS1sExo6v)@<+pz_{0gSBmO|asqZ?>VtiRY0{v>nV9f(2$XbvujPSWmcOvoI`@ zCnB<^YrDU_bhfOH&_cVp4l$&`U`{1!uxBKE8vUnI3T$8wV_`MX<1{Gs&f+C6_=WW> z-FLX!>hmB(zhs_9`PXc%BF8u*amhuo`YUY6)q4`~u~I58uwmjK&_V81Ad!x}*ZXJ7 zpQs{%;A+8+pdtHQIxG;RN1Fa5zu!dM5hxz&6ppi&m?;Wa>`~wYHARuwa)`q533iP4 z2_0CMLy(l88j0VM<z^n1f(}%(fr6suFUgtC!*b~Lhv{Czsl;)6{Sw^G+_x`D2v}RA zsDhJ1Zri|iQxwM6%zhP#hlSP#LQJPDS7fyedC*`4&djZLc_9r$h22LF*%&n^kKDm@ z<q(JT-{c1+f#ihQbH$8xfE<D3`Z9E@4)G<X9Y%!PC*xL-y;cj7x-rE}M4k=sm%!i6 z1LDR34hT*kIFKA~)zKt_bS-^~7lyGwpdmb+<{X7@izm6gw!xt)8oY}3LNUZTbpfck z0f}nJ94a)UR~{`rB`R><C!2!Og2W&yQ)=??a+8%tUf`V=0TJs%9dKp%sW)OJg_gF0 z8#Qi6e1KF1F?O?}abim)QDA1Tj+lY1pRK1Gsdu=bSK+i(UxI5u()V`%U37&nttP=U z4+g2kXRAUiG+{Ztf4IroY=*PJbh)O6v^={EURH!z<_+OWBVM+iR|6x4uZ{48`iWS{ zZjwS>;T~FS!75%{!#`RM#YQP5P47lQTyM%PjL3H&26bqdu-U~SoAetPSFM3Bz+ZPL z&O{OaMv4ZPo;9e7!_ryW>b1wM_n@x>oVqs*@4&7K=}swnaKV0~S6-fLp3jD6i?*X% z&O>u5UD$Vd&o{U_J64Rs7x%{EW3*1Lc|g_k7}Y(j`sU{Jl}=lMFwhmTqLqP)rjcMJ zK$**_CGvgBl92qSmO`{v5Tvln(!Uv5x7GlG5+s$R*%ZD3Y1MbA=UB^Nho)EnX3AvQ zfJsHG!+`k{HX@4^nOm~+!HekhAv@oHe2#;X81E>QG3D!S<`a(p^auV-woZChkPDj# z>C1{8G5kV>s0`Ahz<+<HdtiXFFYZ-BDui?XNSb~Cjhh8iXOq~FY5)@J7jLUe7PsPg zw)V0!!o>~@r*3UQ7o2o>-lU0N+ad2cSQ*`fRyp)~pqAi6wykk)5b`d$tpUWiW&VD& zf@8C8!SvCbr2PCR7<~k|KWI#;7w?K-Mg#-XF*rRa^)O$t-{O<t%^%2LC4&d>lJM4T zj=+2XeJWcCK7GLP?h$-1<kbx%boU3Iq@H}R(%Wj<pf$f~{RV<Xk$4CJM{SVfB5JBX z*KPq|$d*w7>RS*rBE&%^3hVK`*kc-|>}pog24@!QR&G&SZd%?C^FV)D*_d8L=3U!% zym<!Zy1se6gG$ow%;JgPQs$r7iC48g2O0Gotg>6*bmL3&Dt>_s@@)OqE)-(#1@17a zUF_FXkfPT2#q5BfK>i-V6`6=&5u__+=34|dGny>YCF!C@Bt;(RvH3s+-iUlmxfjG+ zA8o*4EoU0nk##RnSj?|6&Z$3t8WQDcKQdbnRIsw@hVb04!`($Uoo+-za%yjf6=B|J zZ=|ymcpa4}3!j-&tfR~Ec}u{kv$9bI!^(>MX>v$KD0)DSCY};1uM#^~{D3mKEhH3| z3_u`M!ebI~W*<*ZAuIjt=i0H$pz=42O5s}<#8p=U!k49$B!TlOxlC0gxVZ;nG(2E6 z-F|odr7|KiXEd0wiG*ANhiCP89}blz)pss5u_~FQ)@W|<ackdw<=JbwK<KBY{0AO= z!_6?plQ)FAz_1Hw%$Fgf>Qc8T_U7q@XmERD)P(Vm3N_+62?>(;N%f98qmHiJrN9sA z^zbJ*A`jELux?Pi(LYzhmA(+wqV`mnvGLCjlSKJ#X913m+Clg<!=RZbFP;z%l}Kq1 z$wta~<3v!fcD-g{R^p+xk4G?&ws20x$&(q(K=SXZ_bj1>z^{i2<(7sMcMd%^hr!-~ z`6xsnt_dyPKM}6j5{twFYR_aI@&jh3<m{uhgnZaSqDPn~SrP$xN?}T9xetpq*xDeW z0|{olaI53bY&Fth$S7IBQE1SKSnBA>{BWGoT4J`ayHbEX10sgv7<L>b6bSU63*6%~ z)l>T4^2}&4QQ5}wXt~3$I_<uQj;5E%#K0rdz=xZX+ahlae>gci%mw*4ER(Vpy5*!c zQQJkOpXPxd`71n(A85PUKZd4ziXw*gNN{lV(n=l96z9rDDWB_2E0VW~nKkQa*9v8! zBk49ySD>+8<)wZflZO>+Ds@IC3;p;*J99I&CMh3}&_db>z^5kRa>(3rxC8)_de(2& zJ+nJB9@g>1MTw*JJstORKm4y`q`lrw%%SPpQ&OzN^Uv9iMtA->2mAv#vBJZtMb84! z_OZYfU{PGzdw&^7gkf7CUTK+I&u$JfW4%!!N&#HmQWz-5AJ~#}00_lKLN7&)rtiw! zzm)~`pOdB<d{fzf8>OA1%C<XDPy5r$oDVu25G`h6)I$+n3*~M(Hn3gLjTWwBM93k) zD`lt$d!0o4D@Eruy)`2e=ICT<^R?rL3jw|U(obJ@tJ1QlwJ?gxgtNL{>zZ)hj4!gA z(SzW6jlI_y$#$CSIrsyljd(mIYsYTfuRkP*7`g?^SqB7nk;j<vYA)HpQN9doZG<6B zXgz{a=7+F<V3#E2uW*nZSeTsy4!ietMyTu2t6&$P4yfFn7;E@bf%i1SM~RLQj^(Kj zg8|m5hM}jO10S=7Le{wr3ttRNw<Vn%Lugkr3%QN{0yFX(H~U@d*t{-C>TTM{lUZkx z5h9Q{Km-lstn41L+hBRyfa~={-9OBb*5|{>iH$`kVFeGnk}wnCt0@uyxCt|5lSCNT zMqZ6JQZ;7Xa{TTEiBA_>MHPP&;vtZC#5=RK3r`e^^`-l*Y72rrI8^x5mL4Q^6l=*V zrImgw`Z>5uve|6^Dp7Z4v+S=`QWG_5J4N{h_HpNji;?Y0MKQ!5P9%c&iCqT*uB9~@ zHkU8<sxX(c;(>t#S@%ta?xhV+6X~RO6eOpF@+)Wx%r8FzMcFbmE2x`>sJcZFz0YSl z?;8&900!+XXk#W1{UnJ=Dc0mdh0=JVX8r+_M%@m0QNd}vY)@*^2hT0JW~rCWPGp7- z-(jqITCwRst-?f(8Y9Dj+<lZ<g_y;_tV?{b5hm9c2%K^^b&SbB16IYUMR_p%M=zTN zSt03ZV9^>fpq}OouM(K$ZiMknDjEOFG<tMQ%h<*r0fGDxi7ykTdqUG97v;Tug8!sB zq<oBp!(PwmIzdFmn|QK`?Pkvj#4Q)&BUS<PF?c;|AA$lt>%r>x_1NtARZM63%zAcN zc`#LCZcBsO*fxBF3-|9_|6Z^&qtM@3`NQN1aGhXD#*7*I%jQZZ7A8(}EJ+Rli|JY| zc!M<55E)AQaQa(?7sfq@)=;vFQvW=|){7iS_H|_Oww552ah3oy-MEO+6xi^-A?1b4 z@dJ*~WVL!QPsY?k3Hkuhf^mBR4r9FcX{C<2aE}Fp;|R9E6}Q(u>)7BMsZ{oa#Jl0b zUHEg)T_^qZA>Aq{vm`}yv5_}ne7{|vVqPFk{J;AK`XSQ;Kp=@#JZZ%X(pdHm)-!t2 zwK15VQ4zLeDuRUndLGva6^z^*NC=sGaX?VX)BHort?}3Ky)(y+$1iLph~W@?^Dl46 z?4u0yj7BifkHwwgE02Ue=uVU2s0|<-3l$m;hsv(tsQ0#h6Jfjgi2^gBa@csEV8O<Q z3%c^GJt~)|lV+3(XRAzP#kc+a=B&8?M4l38hE9K9c!c|(QNSw>yvgFmD9=38&KSRG z+@%MRJESllCvo~TJvXF!vE$7zo)@+C8IbCum>Q;I6diG+^CRK7eFB}{NGdaMmJW_P z!j0Jzn$MdzR44S@7z;ntNIZ||guH7O+AZQ|*-Fv9T%tCX{-rMzLc8(309esTK7hoL zUubY0l`yo5AQgqH@T(HLoI&{Xc%GXg{|^#+b74Les7egsR_fixNlH9Hxp?dtfL&ZH zF(H+hz-ssW#b9sMY16>t%-ghKZZ%x*Jfewt53Qj}%D7Muz8*12rsRzJd=zSPG{`A= zuEg-B)P5D%I+{W{uY&pT0P@Ff>kN@x^Z~@el0tslQi#<rtR>)g%9XOwRhSf9%L+l7 zWkXyRnQM7y2w!T4e#nme0HlO?$lVjRhze8sfl_WfTUQ>`Q8wZJpgwglGLMSTLV0+e zZA^7S_mVq0e_%17xN8GDFkIWxLL`Ce=0>^27d_MVcvc6r-{p_L+k7Alp`rEp1?#Co z0L93gqH&dLx?LNuU58^Sz^U9mKX-!dH_`jU_uDX|pxSk>!ADP}^Oarl-|a16Ljh_R zJd>c~U*rAD+b{gT@A{`V4-rXkgEoPrCRIedC~>fRbI&d1!5JL6bvlbAq(w4G-qI^t zq|#vARC}A(8e})~?1xKRY~8Y47RDu>1#ajyVDwz98_Hi)4>6uK2Tbj{q5BWBz0daL z$S;^jwy0?hF3s4l<cZ1M$;h7wXunz#KRw-8n=}hd5pLTB?~z9uirO976KaN}KE%mu ze4?+_u?CX-0^DIHpj`U14Hub<LR`2!)IxCB@`$}hZu_e~^C4?=VFni>P6`-7$nK^r zSXAE~K`{83xSUi)P!xl{&}i+g$MzHtPwX>mk02xF67vJL?PMPQ>9C^e@8*Q{py9gB zs6jQ0<c4@Bj)CB7a*cWCeGH<u1W6!VqYo&YmcF3e$$fag`Q_=oU~6rc^xF1qMJsqm zgb$bpVX^gcnnE~gPH9kl=w$yucwe_vuh<tH;dGrC*IQ2)L5-pL*#?IIT}F4(Fq2@< zhF|092m@8T1$aDDiW#&v(R$E*rj!|mvV>1d_;87SJ*!&SA4^0(UYXQUA~7Rt{T`<i z%)oMf1H4K+$ugd=oOXgJmPY#r&#CA7@he)6S;usX7~Ak|r!D0u7ngtoYsNkU9bD*g zroS`BxyWq1_z;8iAGO_me-PN-qXJ1hOw^8*-*aH<8J!cw2s<IT^Li*ezJ_wXK3=Au z&T-JMPU6C8!I;{niuCj^LAA)%1-}gaRR<W#QOuL4c#mO|E8H$?5_03cd38s+huCVp zIx}<bNjcmsvKZhi6Y#Z<Kxw{kn0cm(gooV2{nc_^spPWitG89^2b`JfM5-=a_>cyr zdUW@hrapjwCtt%nk{mmFo6VLKj+2B>qqB)bujN=I5zaE3i>jsV$@+#I3nAfni^VDq zxDhCxa%>AVn_Zm1bR4nDnQ75x;&7AfG^FW-y_}ZhutvX;<BX00<XX<*2)|Ia!%1O6 z(Q%2Pb<)QkniL$l91@ze+P6YAT6L6`@O<tqJf6V+ZC@dp;tXI+P_C%dfUx@o%e_4W z=5>z94GU7w$Ax_lL=M%4tt7tB#p;=6L@C^h^{QdEc+9*vt<>aUPm2ckRos_8<8cDx z+<fHg6_8>n&?oihTaqVtv{3SN4^@NfDM*X08Cz3`pg58R*e%hd0JCEyxMciZP}Ws1 z7bi#!Zqjh5W7L#gEjaoWgHMLZh8&9o>lw@n?GWr-C)dRh9q&Bnzj<kxv1_%y3}oW7 zy-c0hxMf<IlhdG9@x0O!)55Pp;agcz{eoRHTn117&0IM7w%c#sO99ACwlL7qlj9wF zHjJv+X^;n}f7ERPKhI3QqRswkMK%-_wAp(nx%)&N&QKx74R5PEb-h><vkD++KY48b zj90myZc?1^n$N0eR0b;YcXxwzy$oAKCDol6a)+-X7bFQ>9x8ac$}AF;uGRB{q`1yp zi8^MQH6V;`Y%)6ye3us&yibGv0*4}+ptLrNm3XF1(WHEW1m*;Uq1&a<xr|y~Q|JlA z<xtw<5G_RL>x0;o5ez145)y7@WOxoT>FeG`(wlGy*8#6{9AuEhp;q6GwghR}49S5= z(jkycG9hci5!q>tV&<HpbFd6r+b3K{q`Mg-KE^hE<nUpfR7WQ#as26`cG<psn{v}> zm3dU+y;F}WYrVmAkhhtZ-||(e`GP8Zz6qF5*&*roA66RN9)^x>oq2GBj)kI2uf#m2 z{P+NkYbl^%!@%MC%&BHY$5=K3m$V+=-~Bv<@E>0xwkludS{OkhQf~)FJt7(}kfx9a zsY7pCH>@?)8U|ap!gw!RUnq?}NTlK_B7N{RkZvuIn#Qc+E|=62$DWTO(b>PicGkUk zwb`d3dz<B4H6!8aL@~f(To(}$#65kQ@nZ|8QdP?EXD@5}+2&?PY0r_nsSGL;y<D*a zo_t}A^q!v<OfY{>N02Xq`&n=*T;xtq?m$8j*WJvuE$-w#g-PY-82PnW!@)DRceM4A z{^s`al_}P0mKgc4Dhco}3+l);>55C#ao_EI>=UuxGQSthl_=@M?dl?{A%wq$g~kd? zK9Jr8ZqV+z=3?jEeANLrTAo&YF`5!U^0zGu$*k6)(gM<ydB$85U%Ewr=x{hZnz*)7 zH}JR4k~OmEomrcoT1_x~Ag2XAT5C<b)qJ>I`6NaVx(43Pr?Q<{a$;NT^h?;H($Qp? znO$$(e&Nt$O@-%RNwiQXK)~kuoa2=drwyf`naY*<kqP>vR0$|itP5*_|HXz-lRqss zmz3=(k!lZgkrdxV1ZP3v$gJRCP?o!wuXSz)D`B==O}Qs>E%g10fojnHE0p!jYGN=; zBFO(bIES&_geY}XID}*yK{|)TrJ=V|1=x8fBHx)PUN8oKloxzP2HheO{59(dH)KaO zFlfQvvM{x0pBPMOAY{;5#<)u9^5QSDXQQ-;%0Hy)yq~dH;iDg8pv=aNpG>{@OjWyZ z>7vu{a%pDa#midPc}Hbeh~BduL?}%7X=KN1%JTki?^AF;Tgx^-Kc!)mg=Cws=#x40 zjn(uJ4%Djyu8RRoFS=eIHUiYmZ1Fv7u_9o}0^@0|)X=bIG>E|Yf;=<UO&g+t?B%2~ z57)&0=7e@JucmguR-)u417}q%ww`*uIy}<N$?yBQ@Mhz@;T!xvskoXE*dD*1EpBia z0D$hlrQ-Dd7&saH@Nr41lQw&dh~39j;$`Keih`GDWhs}s<w;Lqh{D0Ly&YkAtMVNe z^Vg9mBErCzn#6)1lh+(9F1RB>jn&Te^%GsymU-bt%1dG8Yv}!9lpYls(3U^z+&siy z2zHXet)L#KxYE|S+wo_JY)N(x<+_q8`T-BW;nhK<HS%<Z?Qz8rNUJmBI+hH8I#9e& zmZb7_B!U$4XhreF>TMeBbFG!Jbp~ea17@zfU2L>PUa$z?3w}dvU{~o(xopq2T9a%r zg+C?Lq6hmGb@f}Ji3wH+c5u|&E7G|6wT8e0hx2G#&RR8%XaHA#%IKPpuII-dk&O{i z#ea0d+{&wyj=)`Iv6oa>!CwgSB1*&1ifOf}^g>_j&m;|L@Z0&4m`(^Z_2-=;!YYc( zUyVM&)|b12mW2733n{}#A;bGMY2)H)5!O79)+IfJe)iOv{uoyhh{xl9h|t#25iE@^ z%B4(XEulfP$(q_4ph!|lbrpt}9q7TfE*PpH+X~@)ccHeh7KX4eZY@`x&&i0h@6!?7 zWXfV}!|+Dwv8b)*R(guWy%AG9gRdLaAs8rMZ{3r1Dwa<NG@LZkIb-_OagvDi!A)E| zNsoAEA-rj)lfLJ}PoYh`UDrVCln;Nu#H+hV#hEW!sh(|bY@D)vu3`=G4TCw!ty}!j zLmu>SZyIU*=hymA6$OJpus!e%wDMr=v?9GWom|c_zbi~oN)(~wx26dS>?;1^@WKU` zW^f^sitxH1M|r6f%x~q6sM+g!!8>bSy}e&|xD+w$enW<wp^?0}c*l{?hHf9CLDS1@ zK=YhR7CpGl8fKVNX~%}DKE(WIJ4I$Mtp-U(q^juGH{xL=Yy5>g!1H|x46x#FQW8K0 z)E0kc$RgJ{Dy!W`GOKgg8ycAz*66Vs6ICy)#^WaM*H7V2^fb$*6pk4)Fe`<@>_xWb z`8jdt8+zfY2CnXW+W-@f_u#s2=~EfrzAf>#=uUw!Z<Lz^wwZ>7=b(DrFN{I$MVZ$( z!N{ia+R1}6TZ9C^oZNfc?Mq~;-sw@r`lxNq+8%-gu5V;n(G=#}zs4OpUaKvy!Lb}4 zm$`1nMfxj7S5*k+kj}qdL*Cc)&`ZVA{M`dOdC$tVUpE(SYi(SqCN?RPJKXR1Jn#=7 zxQ7e#0Td;fd37e_j@Xn-k0!L+#wXSOJE9N&OOe5)NTmb;3INdjC^DG->smH8HPth> zF|qxr=PXr)m`rv=pC55XsJtLZ<C&7j9KWbq5x0tT1-VL5X7wn{Ky|~gc=MR?{W%YN zFc|x?vKS3|YMQMHe~c;ai2Xnm9xX<3rOGnXYN9swL}2NSU1_V83hJh7S1)`Kn|=(W zz%TMxD`yl)O0Gs}5kyD#P|Sx){yGqHaG&qTl)bOZjO|>J32YM$tPy)uu_{$OTHrJ6 z9i5uSpbjMG0w$>-?t=#vwJS?he(Hn(u6a2l)J1<Rkae?pK*pxHAO@JdfCV7ocf9Iu zW9}iaH#hxjY!Jc<7Mq#Hq~}CZAl^T~cRVelV-$gBZC`G6A_Pm|(~dwpO;##B<)lu$ z$lOd6`Y$8vB>n&uC6@<G)3z3`OkpdjQ94uqzkN^wY?N!UZ5<ouoll^$U)$7S7@^4% zwjh{|i-b~HGFB#&ZStVo6t9O#8>FvibQ30>d@Ph2A<;`XN;5SA+pJ`t<VS|BeojlS zDJn@u^JzuFP3lp<=$X~n(yt*f6x?$eyC^4s)uxHPgsn#puwtb=g6{Dab+HP&SMY8A zdS$ZJvsosa0~d%UQF)rg97+rYjDT^y%8m_d!!;9B)}(@M7(PA{wp6fnXsiDd-kOTD z6Um-e$X3{7Crr|jG<VD)zr76iGZ#t5=6QsosXz)Kzf|?ErYzqaJ$rE&gB~IV{*W!q zsCmCRdcivHGn57oaJoG>B`)Kg*cZ?ST?iud!O~x<UZQFXY}xobU^^l&skvZXt!Ax+ zSwYi1KYD?=nl!N*`KERHuJVy`r29TR$YrGj6-G;?Bk?(SiKHCkpc{M;wgx$_$rjiy z^X2tj?3VPWTBNB(O+oM4x9zWhg0}i&Nx(L*d4`U~^kw|-+;!{)GYC30Hd&<|uug$? zADTc9hc*jj1&+MpvN#9+JWv7f(nZ)V73oyaOw%ZFxOVa(c{Y$HD-K3oLAfrMn1c$8 z%3<)QV@7sdcIO8hQ7sZm4H7$;4Y(*xSU7G<`cFv4<~)8?@i>|5IpdGvOp39r_{R6D z^9R}Mw#CTy#)2t#mEM!IJ)?F%vVt8!@hjblhV>TI2rX3&##w?iT<(R=ukOINQPv7N zHq7aX%xpa)VG03JAw|+dRE5S|Z6otw?{wae&-Rzza0UTXfutCQO>L?Z_U2SEAEgwS z?{A6;ee6J^@M|+^<W<i?5fI@5+Dn3EgAG)r!NzWBue2vK_9ZM92~wk+4^d4H$cfV( z<U%Lryf#uedscCF=7T`X@M1~Vc_pk-Ih0&;74p@;rVhlkv2D2Y(}^$-n%;$Z@J?H) z#J5T_a&Bk03Eo1-@JmX}PK>AYXd=2TMG6R-^Q&^19AfdxdNpt%K2mA*ghRA%|4U6m zt!P2M1Oxyeg8=}H|8-X}GdB2R?C?KsBtc4YF&RIKuXnY`4UpWT#^WRhX@)LkKJjwZ z(4m20O(T-^M!CP<BbXF|{>e)I+nqH`nT|wR1YOG27INDhn#zhi+mtFfbx3A-M%(W~ z1~F?qH>QEM=D_uEtO02Sptkz_f%_@@^C+T_=Y_%;@*wlm5dt`Jy{b{bLXr_x98Ze& zQ&{Jfrv~QJ#G^ipO9M>fjKlnWr%wJ;E6MP9W*<@L;vxP`<@WIG@b~WZZYHoNNGF;! z5Da6(KrbW{j2cHszy39|qioIg*6^y_r2QkPM`n&oLb<!zU3QyrNXCB1#)v7ow+hDu zZP)Q@3mV;!O>+?O{-~QH+0iRkJZmXcxuEPC%&Zxvw0dAZyVxN^TaJr=s8_fnAlJV7 z?Yv-Z2=lk*IqVK)8lk}68{e8>=lrb+%iAib5hFiqfk1});jt8oo-Le)`O>1M*ZOdM zU1y7)*LciD)mg%EedD2ka)mAm?~%Q?QoOE&au=lb&KVY|{6UJm@<I?NM?722hxTpO zqM5$<F9G)7sTNPFYRbFRtHOntFvm4nDCaobW|P(h0~Pnc6jw_I)%%J|)k(%&biany z#XIr$1P{#5O%J2;PYd4<h8h`t;;Wd_c)TZq|NKQ_gtsN6Kmh=gga82TfBi<R%ng6u zN0)}R?M5ro*N<Z|#XcdF1|9D6VE_yUW%a2JzcwzZ{46mOXtk)j^K3Y<)X*yW=XKU@ zhGf;!mbM=3;H`9K2+NQ1C^&;uYEzo6yg4Bw{Q9}EhQpcx?XtbzvZZ42{Bx#`?>vdr zVq`RD(;^;xLebDzEzMi{W_vwg?Kb<uozF$~=;yd<g^Pe)9%RZD!#zQ+72*nC5=5IO zoBy>`X|BEt*K3~*r&fR9j&Qq}?)th=Q|I3x2DOSsF!x85I^BMfIlJA5L@!h{5;>T0 z8&%tHpXd3@jJwav5LbatYQ4|PtHq4x8r$tyoOr8X5KKj9<$n1D4CV?YpDs<Lm$I}< z(F#}bviWQxEXOxVV89>DzTXYxzhGCu+CZLd5yH`S&hsuyhYzvw3k7|V#Vk3)y0MJc z1*{-n!*-2cAS6r`!0C-UE-~ZK&dbc&I-6}F-P01X6A-hht87$J`C8tY^96Q>-+zW{ z&vR;A_B6dhXuIC7f@5NJ0=}-;+%6XJ-;=WVcyYaNd&Y+NqUs~>-!AbngPHhoU?Y1y zJWZdAO6wS&p<_@7&n$S=Q?o>akW+61mUx*K%fg95PkaupYnJhviOLme+=Wg?hb7O1 zR7qwuV9-`v*O-^fnvxaD4dp?MWHCJ8M8FyLFgLv(<fZl9j8sDYQH|m}ed@Q8ef1M; z?rr3`mnzk>bm0Np4oxsm>cY$1d{=}!+)qKyfgI=qHs*Use<a4($;oyY6xu;si3lD= zKE|}Isn1k53U{ipeT0foDiyVH5r>Tn_N2PuNn4E87ggyu^HY6<$#-F4`x4U`Yrzkh zU^BIc?2f^S9w=Hi)Z=d%WO>8UGkd#*)BFS3qEms|0tQ(mN(sdkz%F}Z*i){IW~o*L zZ{V)6-h7|Spg}gRuwmMjma04CO4La6vJP}V>Vk~mrjOH6TNs=de5ApZ_QKbHL0#Yo zqPD2rlX<{_3)*{zsS5Fxs25}!gnDu{$otrY2<J@x!Q-E|9?wiuwhEQ);P5lLCydNG z?F9~j(Au!<%jWaV(!-SYUl0(%NH~{z(yInywL7V@Fo)Q3S~re&mh-txYWEFQ)3n5B z?#}Wjp$>8f&Z2@RAc)2XSMWX$Ud|=(AoHn-;(A>QJcVnEB<R@JMYhkYe?k6KOE0Lc z>C#GX{yR)1z&!6c!(@$6ei?Nb0~_tPXz&GgIoGrRkYoWB#d_B2>-B^2p@+s{P9p+( zJ=k#u9J2pIMMIDcs<8UJBfFv;VrSWAREg$m&A-&R?Al?2akzSjsZve%6KZ`Mkh^CY z5`k{X#@uWXlns*qwy#!KU%JRS4u8XMgnyfD>sOL&2W`oj0v=WKQCJ@w1NuZH`QR2# zE1J&2Tt)Jo&Yg!8ivI+IW{hY&;reY>7E@iLjt*5xWT=8qLT%s5&+Oa{7dj;Q8aEpE zr5U$n?^p5RhVg;am=yUTC48Mt>E7z=U4^N<d{NVgljhTvO{XWwUMk}xAk*ppu0UOH z{D+uEieH74>1jml#Pkg-l{p!Ml85JQ$O&D{Hy^T;W2I4t&q9-EQMhT+Kevsr#u_XQ zP#qR%4%W8P$}tHOOh-v0d61Od;l}dV2%yeqDVC;Z`;jj8mMgM!TVvrZ_QlZzfSBar zCH@PYa-C1RSHOyQL1{``Y5eDgmrX!SeQ73**@%zmkG~HNqNny7E@nT|tc9fC+C@28 zeMd%XwZV%>#Ezc&@<&iSy?Fq-_!*55M3fw(?G=o?8R>1@{?~pu25g+V7JeFAOFA4W zp+pEW?LHeUPHt91B+}Zh?LjWsb6+TCj-7cKDOe;urv*edyT=3s5r)nc$li)4CBv_L zvp5M+T|-vb<bATBa&I6{nbGLq;F5&4X?>EAyLM=d1oa!OR8I<385avvi8;qG_`l8u zcdtEksMjx1z0@@1DrDKHe7zxpE^ndUK!XThOCAtW`b3B}psi|YKKevT<=eNyG;=#C z-!M2TlUFCW>;OpI8wWz2g%yDeor)b>*D_>kyrb`!<RNk~B2G1_-~I=jusW8K8M=F2 zmIKtJ8tUNsjU;q80+=vkgubNSVhXUEK;bE6A+b26G4x${=cn0Vgq0E)iz~62Js+r^ zrW9wv&_)#4Ah@_|WTfC1I6I?w1bLKab&0~QFJsQEDB%zxQCnS~X@Re3zxgpLPB1aH z1PNs%0?w&=a6$fYw7!t;hW-+OCbd3Jf1$d%gR&^lSf3pHT3*`Z$Q%AOy1e&W*qssb zNyMkH!M5)&Y07r4+dtzkS8+jxEeCU?i;zdCdH?J?p!obCn|6q~>GOMRsTCzJEXrpR zd3Q3@Py^*TRp830MuAE>EvgE>LWYm}hW_-_#RhJRj;N$A-BJ6yTOVj@gioj6Z^o~( zbBmTef*_ncM-`JBP&B2A#9FL0`lv^+GLqJa{@bg{R%0-q0FQ`2BBDxmdYQ-9CDP!c zHM6i?2ub`Fe3Wf@1HHYv%Z)y});V%M?2E7ag)5KV_>{a!?t{?L%V=S9Xw<HQGus~p zJBS63Fh}Z4jg+FHa_xlIT9}ZbB%p{W-cfcSRs8c1;uhs*gILR7>2CcewGwy39nJY& z<i(9cHf6TSyJHNal^EnY0Z4IX-j|fA*QCYF=blqT23UW6t$a~7@+8g3pz&Xo&e~Sg zl<WU-lS~VAcg6q+X%P22a2)njzf)gw<E#bhxu#CBy}TUgGxuyc+0m+8YJs_bncLvh z56%6l(vaY=;xJEVVCk4=d-^U==cUIl5vvqZm$;q41R{edktfI2th1#qVzKGw)2|(G zHW3DgWvi57Nlqsn<0&8+&W&(O@Z{v_8}-H2Kc}EQK#OWib=~&ls+9PQk|`3$4X`T) z?Y;$vX12!O5f<m0^v%sfz2PR3lOV9eY;u*rAG25BbM_ddGwR9`LXfo<#wqR(6B$s3 z5x~12EDFBgxUnDp9A))-S*P@Fc<4MZ7yhQboMmFuu)NSJZOv25PRBrJ9Ec9PpZnX_ zGP~m3ZE1h;Hto&xYm!o57uRz~%*;7c(fTiO!3Jw>to%z*VKU2pZ=#sxT)o^vATZSm z-KaqMH48j8%(NQI=jjna$uJey%{r^+=1c}$lPVg9|Crx7!+?68n_ml}izw5Qc=!ot zJwHoYrnnV_j=aQvz6R!JdDwQ#T?s{~k{UoWChDtvRiS+s5v4f@X3DmW=|;#SIrs>E zmkVuoKnl<L1G{dq2k1XPcz4{R`0Ky`!0wMJ;eQVT{=X$*l8T(|IwR~42tcIgUiZa$ zP=uw7omj#PHXsmmr2!tOI~C2K!;bG{9q{>})Q~nbJ!i%PmLbi-C!iva-q$o^!JIu4 z6Vp)}_aG`{H(p0?SIp<&4&QS1j=+;H=(9q?7X~F|Sq9}5hliuOQ6=J-P3c;V2fc0y z-RBIiUeUrPTMFpIUh;HPvLKO$BG5!d7SnN2AZ^c11e#MQC=F0*hVIkaj&7OK_HQbh zG&5i)$L05-<M;7#!w^$gOx7HrO;`{yc~$`Jw7`Y)Pf!=W=n~<Nef!`vHw;^lH~Y88 z<TO(X?U0vll(UhiV;*~5jBb&35WDa(0H&ahrRd2BdLIEhq~YUVi!ZA6{_@9qU=s>g zXb$hbPl>idj6G=ALd6V=6}|t`-}BT#{uIKrC{U=^6g|}vI?7C8+V{bAcAFC#_92Xv zIg`&ZibZiA+!HTfwLsi5A6>@%hn$*+I-*uCF!1otC_)op5-q}B4~9WsS-H$h(?Aq& ziY$I&S|;0&kJ)to3s)Z*&V*yjKVuR2!9f*Oj7i$zn6V5oO?q<F178!)#(5)Ee?d%} z<LW>=1w+H<Ir@5Q-66ve$n_NW-pYDWYFgT|tpgg1x2P772}6$^`{&5HBWH)3WCY#E zYZ8VrArpMxBPZhe3GMN{pK{P?jptPZ#-yZClHt#){XHGgsZ_-ApYbzj{Mpu!fN6EO zV(pfX;6OZ%#)Q!u95Im`5SC!PvgRq@1K56kHy9-FQTW~UTsgN*bp~=E7pwJ+75?~b zJ5T%W&t4X$4uJ~rlHCo9CI<ChM~DtLKm#OPk$n^0;qX*+v<0Zej^;>P2P03!pz40k zt@aJ_Tq0T{3!gLKmrr30^9xvuldEe=AI+EB<oUPxs-L@Dw)Pe5G3uou{9^LtY1w`r zQI(f4_oIn-*$nJ>gw=Qb#y4TlrdTPe+MYR^7<7;u(Ai9e(TnYW7K#YAS()t*TF&_? z7MlMP3E8=`a2VNI+Zj0h03l~ZEz5pJOz-QOmm_`aA}6I0dgh?;E8zMuFWdsr3^Vog zMAAj{+nyS8OMAx&8JlAsu4At}d*VXyB$|nOVp&32hc5KYS+Q1Bd;iA$Cpt>;ibd*U z4)_LSV7_m3#25g{7-cfPsPd_@Qn5abB0A8aOtLuU1NJf-nMfa9+&}MBBUq{I+==3w zkFD=p%s68H{GzC}qMg8MX;`w}q1n8ie(uWTU2v(9?8DsyHcUB+eY-E*&R@eW)?=_? z&eUxxSB~K@i!MpMHrLlr9bK0wMEk_S#rbZddiz!ZMfqaT14K?WT}Mk?T~`~ec0g)a zL|aT_0u}+Y6Z@=g>FYK@F6YCkHjqJhbGN=umJmrE`jon&kZY1ZgSyM7<)z9uL2md{ z?w)9!ffXk#@ZTCdHx0zr*AF<YA(c@*Yub`rNH+la>3|Ms{jUHaQdn~o+)TLM=-3TK zn{TL>lV^Sz#C(mQUReW1YTD(u|HXrZ)oo5W!2tlhKP1Ti9r)v5Y-;Z4WbE*BYgL-o zj_d5mU)6ekqsK(6qmh@KDLAgYS?qN<EmD_t^ApavG176dfx*Nov61;(4?Wvg{s5rv zQFD*C*wkLbx(@XV{*D7TUU^Xk)gs9V#woQ5N*UoX494L@Gp9Dq60f0#di}%rhLrR~ z_w-?-N9v<<qGqJS_!Ba{;~+}MHn{#-H(vaxCv{qP<-0&U0(^V{E^aReFIEE%VqI}& z1Azl9262))&Ext%FuK(R`7<%Z%YRjv<%VdrCF*xjK1pA%(HO>OwU20;!~T%hi}jtM zz3?h3HMhrG`k!Au9!^GJNGGuqr7))iFRN9V^JO1J%u>n=85Yy+@>m7T&xZCf?26G2 zwWGQZPo)a5yNDzZX;GP=O=64a+D?%1))c&mGy?J(0)L3Q!7A$3%%j07fXh^L9?NU$ z<}CEbPX;IsUTmu&eJgDz)H~Ea0VdK&NwfDD1#09c)guC~h7?eg2%>Sk6gC`_dv}VT z8aD2(&Jr$zIUX3y3|8%ogpV(cR0oxaKP1agGjA7L)+`|&mu6tRxH_%T$S&a>2S>A= zUT^m#Ft~q3C%t6xU)tBjQ&pHOZVK6_ckRYtaQ^^;oHt{WAy&O{@_}wHbF-_Nc7>-P zl?GCM53oe?A_c{mQEa_~pT%+Tf>zilBcq3OI#HzDHQyLz##q&hEzDU%yzb*S4l^y0 z<C#u6{*n%UMWa*2`A3`oGj;l^i1LE=F(MutRPA%9nnFkhD4?Yz9Y~D{IKSY6{cSg? zvrU3`)XeU96TKE<l$aUzuOD9%CuzphYMQcyZU(*{J2C`PN`|v7hrKK`GBqfkNxh{` zGns|1X)^@zv$J^5vmG;d0>)zVtKm}j?3YtYj$NmUePaCGVi@j<RFhu>^Xu`f8RV(9 z&IAt~?3#$4Gc%y6pstl0l4YKmzc4<<i_Tp(?O^?U0x=;Xdr1HKTGBFaA~OuQd0~V6 z!h7PDFgX72JaxjQD0pT5A6|pyT#yY2I>eVgo+NMJ<?p_(_U=|fh_X-nr;KR&sv@Fk z=$pr~r<OrmlvGb!oji1@_c_3=LI&u^1~=%sw-&{YJAMbyCmQ{4)+EwPqOHQrpX45{ z2<akP24PS81}3^i|6f43r1Ot1bbqW)A+OZt`TTcoO=Cz5@(XwzRh72fJw`jO<4LMl z4tzPW9rzX`wstTrg;-X4NTt=_*?6Ck=nD)jB7M#OjAYF&&%{F{kPSj@ixiw9zTJK7 zt>@_VWNl^Y>22zEceTG3p)uW1kN{<WUQ<@RZ~^0PuQMoLP0~2np_d2TtoV4Y?-12Z zO{K<{cGxcGgD?x|S42Qw7>U8sTs?4}gE1Hd6+tc@OaY6B!c+8_62d=qPy^)XtVq6$ zt~2H-#d`!SAx2Edw7b{}As*y0s)BD)Yut|pzN6%Tq<{%ikA2SNW!VVyzLC^hn(%r& zBkf@F#sT!<-p2CN@U@juzK#vt7q^Amq@myz$&|GwYAn5&zRB^%a3A5+*7@-S$56el zY}jTK{yG!pX}{25jQupo6l(!fu_oBPV0`5FHj7)s2VXu&nf2a*E>po#yBnkru9N7| zxINw@^G^N9Vgl3itlNSXcD6$bqm*6_%^K9gkvg#{<bQ-QM{(cwYneKPC&40CTos56 z(NzxT0tz8hPON1TVTk(fIbtVwmi)j^)J!-c6MxC77rx)bsHxdb<tzyG1{r0LDO;s- zl05le?XxWz-T`(dpo#e}eo6VBVFZpk3E{%Kk_&7bMbeV^QO$=6hvV4i0+ReO{^cAV z&cX3vZ5ZMEH3*Bt2)lH1;yDvXH>sIMM_&oz;R(*`&V-?#?1m5M1ZxH;F%tjcp4Ti< zsvU=*l1{ls!wuPhq_y1j4bB9PX3UvB_m2~wC_32KMP+bAy3e<Uvtt`%`9M(zy@Y!f z|3g;_cV#TCcvl%|YnA~uQ6%%mT1Z-RCG4$E=mt7QCes^)7}`t!v$%y8wjgQMX2O$g z_m3ji5Etk}NBD*_v?5-e_N)s01Fe`=ocfp3jctOkyypd&!YI#OCKQYYr{n-p{Y_v1 zgUi94$-u7w98Ie}$z+FSvQFVFVzHgLiEhH66(-Md`OaEj!}dmfw2i$)OCbwFgO6eK zFsJZ(SYM%k-ki111+KOJj@*|B8r?(`n@4EqHvnOW=3p%i#CzONxm+WV`L%CfMVBnQ zm0R%>^NACZmiY;PQ(Qud8Ymo7Uu<ZxTbvdYGHB=kzq{Rp*iYTQ!*{Slz@@UUzhK`n z5-Eg>)8B9(uDni%*ZCopnZGW?T58Q=mcK-_sMF~`u$)-S>-qN?N4Ix0le%3mF|pR^ zUpwVlbJcVb`R_KEf5QkOw^lxLtNjZbxI~Sm7Lpspi3}Q6+?pom_UHrfpb$YAQPfs= z1{iz_r1lT0Xz3K82A4{+<uLLIvm=%Nc092whndms^7gE9@6i}t(qI5eV6`kI3X6^Y zx>^5!jGaT2AkmtH%eHOXwr$(CZFQ;3wr$%sx@_Cl)XeV9nZ@KHclWOHWZw8QBEGb@ z>(ib_Lk!XY8>??WWlouhry&goqa=8)313Qp!Ccrs-$)?T6>CySdh(fI%TR8ie+5Ip zT*IKD+#ds~GS`?OAT%R1J4{1k(NXl*-BH*Fq#b-bR-c-}8$wOLO+_eYBm*5>xx002 zFhufx5OTRjYZq}8(yy5e;F55NODMe2-MFFtk)Cz8zFwFShv#xq?R2VGwhgIqg4)`k z{d)rw$x&aGGuV!GX5v3$a$s8p-ZYTLsEG0u!Nt5S3{=>lPdmwUX04KtXyAQCepl*@ zXC8Bl)WyJ*M{InDms$Y1{dv5wEnP;q<=e~`5O=Z9d`cR^{pZ@$B??d0NUi#Hm6#i3 z-{seS`yz0CrcQjJK3D`*2wW0<1$TFmL!J|Sz4tgw-&$)?TzG(HUtwFPt)sq*2jVWo z<L@?h&9i(C==8MO<UEBS2<Y|Pg$L#`dlU(Ai#j6U)!=@SQ9wF*V%i-$^mk^R$<^IT zdWq(SKM$|*Qmz2rwoSOjuh6YUxw%m1$qu~cPSg!^Zu!FfewM@QOF7ND%2s5&Sr6jL z_c$3wYRBWvf(OI~haSf%dqmQDCouhio#7wjf_agh$r@m3(kmV;Ne}&L;p*fEvh*Oz zZA;`z!l;gqh=(SzOU2`Y?dk!fS^JHy0&sB{cSW}B8Av65&}%1Cym&3LXSu#$g`2BI zYy3Lm*_pWr$(7k^_JOIr4OTRd{|aZBpCT9t0VEL04?g=F_f->{$`CHO%-W<?)z#T^ z*qKrP9by`<gSYKP6BU590c`>aP`gO^FzE1539=E51RP|h?eAw`VV*{yrQ6=<(JxFX zx7iruVs{yzPUMLtm9ix<F19}qCp26yDwb)8Qd0OP;C9V^Pgnk-?({q#&QcN3AW1uO z>3u3sxCg{pXszDCBw(OeIKqH0l?|2kV&5sisY0hox|WQqQmM^ySM3=HE3)%n-J|2! zgH65i3cOF$N@E@RSv}kxSB%snd8Wo+*YYc~-s*-gsHSSso^gcz!shJ7hLMe^=hde- zR&Ottg#^`Od{B$)F|EI@&%<775~;syA|5p3jq_Z}rt@UCMLNm!t?REf=`I)>J6ZqP zIPJhTxNl{O>^)HMH0W0fJjEmWBKvt&tU$)glrixRer})N=o_QrGg7>&8h4fFk-I|5 zeu#8rmj@gEa3eB=bZn<3I~-(pH(_5`r+opr*Fqa&OI}w5hx=cB52iYvp$U6ma>Lwp z6yG1;PjiZF(4yA78zU?ua+a(hOhHyM`*dQ=d-LD)z4`u}KaWP?>-BtpA6-3|lgrcl zz1}?yS7tt(%zk@1!Tj*>dwP9d7S%iVuPA4(eO&JL8ULLIlU15U%AC`D!3e#j*+U{h z^z@Jx_w_Vo^-*Alz(M}Rsn~ya5mvlcJxPq_Z2_4L-0TTDqyTVDbH`X00(~CliZS^l zu<AVKvo)*`%N@DC&Sxv`#XvC@oTb(!UB&Dy<lnSIzP1J_<qum4&Rs!rk(d+O6AN1C zu^r0}abO8}l&<URmsX799|+|WjaPeITUjxQXuR`de17g9;%<-GF~4cNlS=?x>u-}1 z?pk_W+3KI?1?+xt%Byi*z6IjZ@*+8X{|(`><toPmvPe-!U|!0ip!b)VcVC5fgBXj~ zuA^Jx?bDB6fD;~y_33`MQJsMQU~%iCBHk07bd>XlEjdf$k)C_k|LVDuAiGclwRUTg zN%DVt7WuQ!QMH(U<&YdN(a$f>Pn$)#_7jbw?I1I!O1Ha(Txh#?_uxelb}!BU3b&-P z<5bDCXh$KQx(9n`mGRGqER!kH%Jt&?qGI$!|LqF-K*Mvi5(f%3TK#i(xwJ$<_BZ*F za(t1st<xG~Ze?8mR0Wo$4oz~p@G1<vk&27!!3@Z*o;XsTS~*_ScsEKGDUj#BwVmiI zB~fs<opJ~Las{`U9DKvVUX-l-u|3?+uK@FCqe9~jeSbTCijxW3XdE1b^n_`ZZp^PW z<dYB8-BEHm*B~Bel-k$*IxTt$cLPN(3pot!Jt7M3Kt)<qzkFkc6?t^7tCWY+dDn_( z#VGfF`vLw>$^Ge4w(W-cTX!h+|0yDMHu+U<zq+lMNB6(GByJw4>oT0;CnQ}OJTsRL zXINXDYdVJLHd1+3`A|iKkeE@%iO1rPCcj^<?0gUa1U<V-D`ZHJELh$<v0>@aq6(6} z=2DZV?vFhVUE?KvTwI^dSJn0@&h;9;309q%V@X*E483@yALMTJ7-meEUD^#^JE&V3 zI?7YmjOyDusQ%h6K2^mZXYx!|>aO6d^;osY@DJUbpZ#%n)x0V84DPL6qDJ47O9OO= zN;in`)K1z0!=LKfPEKxn%yECq_lbZT_quD}Apl^0<>m2!>>Ui`C<)Rx!-;*PFLLpj zu2>64xUKcfW`7DkeV3j55ay6`(OuLONO8OYbwI&*0@AM?IjPk)LE-K0=%5;k9T#?9 zzs$HE^G>I;ufgyMh_UZz05eiSwZ^8Lq`iC#R1c1W8A*sE@lqPV0-9J5j101!1pyML z`F9aqw%&}_#-P+xGof{=IXP7&@dJN0cJbM@7KI0<t+n5%f2wE`Imyp_w6@Xt<MZ?p zH9fgv@9+Ekot;q<XViK*Nd6$eZ(@ooH-0_5mN1&0bJv3E8eanawd>aZE!(S8zmuU= zb(wUFOminV{r<Rjlba%qJ}fhUr}Q+o=2M|h--zbfET~lKRu3A9ZS5A#f7`G>)*CUB zL28F4jS$|ouf(+Qs&avGnI?cHbgWzc>NAO!S_L5Oy=^P#q;@I2me5n3cKTq`&QRw@ z!yoa9m*nS+!b|Tlt4vvuEv%0a!5ttNk*I@NUzjcfx6xd0sP49q8F|9+NWis8J9EJ% zHAOP%IgKafXk=<10?VI$8eU`8=4IxvHirdO1rBU7EGLtwcd=^QU?iE#5v{lMNfGxN zpx=(%2f>^&*3Sn3`Ks{5ez{`a+wJwXzx7d7#ZQ|;4c?J1HTO3)e-;3iU_kAkSF{Y- zKs&`n7Z#MD$iG1p14;?v+jd>YJsB40pAaJf81Ce+!0HuO;}vKH$88Y?$_%c4(v!Qp z{N^o%C<vUj$ga&~&awIQKeJFcL2>f^k`Z0@9ZGqlz{%ju94erdnK`zht-RD51e#}V z6ox80ka1_N?l(ExU*B-Ju}etb799u^$^}zbB8nmKzQF5PHW4c)-vAXT=((=S>gFi< zBgpyu;J<j2=K?g`$l_5Qm&aRxCZNmc)?ySGt56p0LdDtP^(oEw$`5+Sx9nD)9`IbJ zo(Q3t&g-eZJO@ZCj$5jSUyQQWFMWc>F2I)D-;c82J^NLYiyCDOM6zKO(F^+|K#bgK zf9$!c*n(5g?DP^CYZH3DM)Ah+<7NB#E;+#(ok9vV1b-U9`=nFPC3=dcE+tUevBVl( zydZ1BKog`LES{uO(PI)TpTDuk@M;bjs{ZN>6o8G&Po~7)Ldc?_=}RZ^D?08;lr~(B zB6M)B0QrX-Kn@g{>|LZ1OyM8Ih;~|`B)(Qs50SCIK*ZPt?gSrq3PSGE#}rl{K;<#W zCAk$09;@Dgvsg<K&J-l+wo(@Jtx>+=ba)Lg%Qz)S<z=8fZFR$o+8b!@k98%2gnhdF z1i5Wy2~wBamXgJ0jBFM(U&%9}%Gz3bjt)4@3WN~_(*es?00R*r3d>(YX&N=ns;)Fw zsT{4#zzzf;qdAYs@7V`7b{Yazm)t_y9>yY*AB8!>`_<F2;O7)Fv2}9BX(i&v=i$ba z-X0I|!bK5Z@r81G&7XF6KUabGBMh=+*R|9xs$K};83wryGd4KMF)OW^fmygN74kV) zBHoIJNEW<MMAqrRy)`-PN&*i0k+DmZ$kfX|?ft@^1-T`9-RMAI>~P||F<*9o8giF- z19ZA}KX5sOq}Pj1YXCU@SNlJ|m7K9pV9P+;{x`j3q-z}7AKz9?eI}^m-_R89_v82h z>y3f~vVnzl_I+aV6k_(Wdct?oS^IjgTwBbT1E(?#EZYqfKAjCc6kdI7xr@6lhyyXD zO8E>lGA<oy01fvn@MDPWp~&3yKt_;GEZ8h~d4DZbsyf-vLvv~An=k=A?Do?TA=y)o zxp>_)yIkh+0pB>>yOM}9d`l5K8!^tkBTTA(SkEl(MaZC^hct)Rf(dhyb3FGsfy5N6 z6aNNsiO@t*8XJ6-UVCa*-YXO<OOr+(PD|SU{lx3S5oLo*YV%r$8n32}Es|c5=)$#X zYA!J&*qX{b8Z{E;YhEhf(0jyQVd^aJ&_!mm1S<jyYCV1c`(&0_0X~(43`2M(W>f<@ zt&b5#SY~aHTL6qd7k5mIJWdmKQ5SxMt78CRFjj*@2p(cG7Qt<17-{n4!wHWRl3VrK zk7t6MVqOTT&|MB`t93&eWRL=u>k{(-zOo=A&@a~kC}PfB_HRfJ{8V<ks`<pqb0eRN zMBQMI#z*0VDxrpQMl7eK<cJf1=}D@lqVIDTZVZ5+NW?~0>42#~NR>h`j_uFs_DpUM z1+G#maYkL93XiU$rYS@Hz@Xs29VoX=)1ofZhCdASIEg8PjzbNGz1)XaWyXz(tAA6Q zpZ1f4VHuNc{8}8M?pHBpikYWhZ~(}F2zTpok(GRD*fg%%fnlyN_UUrlk32&Q=nO`M zggB-)#ZUAa*~Sm(8+G#Udx4jIVgM5I6=sbR=b#kgb2Y_>(@c=b_tFV55eI~x?v%VT z`3;Z?dW~*D(qKtV**bz%7!kP&s+iHC;(FE&|FIno<WC~GiW4hiZQqKu?nJzvVa283 zRIRZEr-CvGB-NOs<pBrDD!)xgpdRhrXEUT0&TKY^p)Qw8!1w4z7p<dMLmh_hLk$`$ z2mm#8UMfZ(beM3PclXc^$tS?pHXJI%D0jSqS;8UzsFFs+yNa(y>5l;!T!<n}5;lIY z5C+2pt`sxVu$Yx9zqe+;yv^cUAjpb^UWCCWv6E^KjK|gvjp!sppyM7^<mK**=+uUZ zg+Cpt4@@h@AW#?cCJvs@myNw42_pV|Y#En{qUAN_0q7ABreCPh`px61#-CV3)fH9~ z*DRT{Zr$OZD*;rci4hYr5k*?SgRJzy7klNf_j57Pw6l<6$3(pF+!xW`zCCiNw*zC4 zYXUU6uWh}pMsiU>ldXg%#n?852evk~PP#1EM|f7S4W|CQATZqI?&sbNu)83I!W~Vw z^9OA4unh-j7_325l|+U^kSUX+CaytUv`|v6ujOb?K6v+lSLBDQC2z@k>&?i7Os9Hb zN;RBXJ}39<SlJK}-!#o8lDu0vOmg2R>^sAMr%jLx^mAj>UvZ#S@&Yo|EUvLiE5g@n zz!=5h8&HX96eRj%zl7EYi}cGF%V^2jbko&+6?K6vXVB6pN=mIH-R!GwdQwK6N?{e5 z8Blqu%aAPNo9*i1Ehot6;4w2@-E$Cp9RYGuoIg_wuq?*pe1TuK&^tqb!^;}7+9yhL zEi9{%Zb^O~Rpx&AjTUQ2qd?IdG2oQbRF^s9a>S+_oaFkeje2OdjfkaZOh<fu*dgpN zFk-K(xtuwH+$Q{@TX*-Xc%vN4oHvI4@`XJZ>Q+W4*qbWD^5ULlhm>Db?gp)8v}A)0 z{^2SlUy+}hkc%rnsgbay%*Qd8tSk1dIEhVUDRBb=6K4`e1#>6|J=0j_?1zu8_6-~+ zPN39f*AWf!A~i_rj|C;;>aQ6`z|!DL4kRodY6=RTE8>o*5}c++ybX#dt1#>Ix;KNb zmyxvW9Id2;^Vv7UWl5R|fl?4>NUyqpw0XVTD&WfkZ)-$u*=@(2c2p3VSB)Bp$1*Mm zC2Wl}aoC5GceI--CmOd>Ud+EL?vwDX!^!%B^rI3*qVwIH-<7+2GmGTQkh^=LyUraD zlm?;EA>74utpnqm1AEA#D%aBpI8^+m+_^&5e>c48K9%@{0l@cE<_-NB>|6T#q`s7t zWJNG3Ey%`ck%tkKxs~ZAo!F59$vWq_kRM0I*e*;UX3;G$>dy`-xv61BW1rz_w-ppO zb7M<N!#IdkD*_TsN&U}aE^@x0uvrouPJ09^NQ^V%Gz5husuBthRAfYYblx$T4Zqx) zE5#OE7pE~!eD<$mt}jkXYibY4)=mGl8|Oc1buT1e)-e5<D#S7EMbDannVfSK71Ef1 z1kSos42nt3dFO)cKd+cdUQ^iQKH1}T6s%ixBv|6wso9#uR{c0DAq;hgtJ7(<)?j~9 z$jmo~36NU#PH+HYxPdfy#@;P2yO<;Iso?y#1N4Mng8+e@7UC<5ohIff7w79Fb=bKw zLT;#)%tynP)~7$FDBIo8EkbkKI@6Q&qWjI^GRX!aXw#X&#4X8TJdyxI9LI@edT@E{ z>r1c~I0ubiL<Us{(07#KZt$Baab90__fGBCQY4-6I_WdfhM$Y{`K+|PE)U$z8g8R9 zAEG!GwZ^oaH2^I;qLUL<U%?~Ao<M8$j$9~9mZns)zmTU$z5NkD(jz<CBDo|7ay|S4 z?hf2!oP(%dBeUU1Nj`<O4ZgsmfqF)P3rhwYTwP;Jk5wDPm)&JM7@n>?eC_KqDtkG_ z8%l83=`#`t>9zL>+1@t40pzdu`djv&c)z<WxaXd1>x|RL)S&+T@pGB^8^v&6QsF^8 z3>LWcy(@y|i;klSh#B}N%|u2P>xp(}9ani7KDSs|8<I<)aN4r!<2nPfO8(|}Yehzl zN${VK&-hA^v1oc(>V7U|PKCu^+|W1<cKD!oljVBWTuXBCUZg<hLsUFDWo8_Ps8}(M z58TX=Cl;HflE%Dak`7l=JQ38u124iB>~oyy(WPp?8PJr@W3KH{*HjG+?ujq;#x(K( z=DSNs6FYelGP-ipX2<;0Bb#I6{L_DQMq|Aokk5OEq$c=-%qx!d74ZYKPhri+<)Plf zwv5wu;7AaGtNl1Pl@B<Y$+RKJan-M-(gOOfKHNE=fp5}586H7~ENs~cSIW56+KQ~_ zt5pw6SKL~LHZ7oHS=w7K9eJZsM<yQRRQ<(#nhVeL#mWQ-XG#--d1^TZ1fO~m%Yb`I zHCIEzYcNP=r*gU*7h((1rN5+>VBhyBWAy!vPIqdz7w*sTLt$8d_&9!(kB0Ex4SIq& z1XlNU6S)J&CA>;r{sC~V9{b5Vli+u*{n6ge{0aq+6M1wO<~y;I9?GX9LP58q6KySe z<ye%J4DQf27!hL3te7mqIFL7i$$mR~O(&`g{GXhVKgLmpf~h=T7YCz5mAvBMWb%oQ z@!>lA4Hcx&Z6Qa%yU3rl(tJd<kFA4x{(w1W_I<7G-vYz3rSAcgO}^^LIcGngPa<^6 zU;59wK_wvZ!OcGl&A7oUPNEk4DJ5pvs1lE0nXG);?qO7TSr0O-pYS*cIdJkbOZ73L zV|!!u;@C^rdMZh(-cZ-MX=l%a3Kyv|8_>0ha|8ABO8ZX<BzG3W|Jw0<JGe&JHR2n@ zzhDar3+jkT5>_`rENJ%0JoobLHtKmo=yU6hK2Ta7x8>xh3BkS`9w>1jD5P%#&t3=^ zR;-rw^**2XuNq(IbBOD0HpZb~C_k>AyvZULWc5|hH_hYW`#`*pWbuJ3wA9b{dYPo@ z%|90g=B^coFp$GM<z%6dE5bv)uJ4Y)YSZ8_Rg+<c9!D?3FU1oYfjvm(+k^J-Sli5B z(8{67;R?lv*~Y*Y7G1(R6A^5{xvFruQcyQEWH4M88J0Ls0Z763ckFsYfAB9zB+TeA zfTYaGyv7$eLw^fG>Xjk653tOgm+H8u#lLfP`FFBvqW9Y}lx6SF5wDd(%KT-ZwWwli z&BZ9@X<u0N6j&+Y<|7xdQGco6NUy!o32ARAK-&*BsS(~8I^-^VQ4O&-`;4?!PMYF! zk_Dz1$><vG`C**6Qnn09L|WB0arsvAOl=kHZa18%GBV+R&*8QraWVsX2HX}uG8ms> z$l70;mbQo!WDj~}2;HV4Avvvl*%>LZ&xKrQ7_lYP4nWBvz~DXX09o3^JC0)(-Qs|N zFSWBn;hVd&0AjBI-mN<`>TpqR@MD8MgrqLz1h&Lo`$)FgEKb9qBmxES>OZ92c`GVS zF(?iYGlYqRRf}`a{S-VxEll5C5Va$HVDrTwRjyQLid)+Kn5UIDKKC4miYO{U$+EKS z&^QU|%x4`!j6QRhruPnblQ9TQ05TLlvbfe&B?T2b#QRqL4z$XF|5Pu11aK7chtuXl zy<<3Vi7ahxHL;Rz1?mI~Ud>=j1ly@nRQq{|BhJ>D$Eg!Az-NHxq-!%O?wctls`zhH z7!fGJ5pc1Gm7dqd0+IGV0B55lY^UkL>E$<bU;Lv&fElyX>0NX2m@LdEQ)Gy*5M?2H z(Hd|>p*<8eT4^GCCWQOySldITVe%#hm>YlWRlTx0V(GNFa${!`(ntprcGB($gwW`& z&OkmO_j4PD=)}ThAP1Z;qVloSlDnR=v?gTcujX)oykp9_5d;WjkxOBR>-MPTf~GNc zp(c|cCLuB8%=Q3@#Skao#vU7~Pt_wn5dd!Bjn_;mukmf><+nF{$hBs;p+$(5ixDK_ zDLf=N+&XZWW29-3bB~n5U>Aimom;Hvkl2dO6YC7LtuFFaWBu70A1`fBf7;X-z$gUw z<uj9`EP;iNuY>y$fx{7tzJg>K^?S}|a=!#HrQvDu&{jM9Fos)!c6A))j(n&dS#nRj z6A-hZ8KDLeAuajP{zN7_(0er28g(7p-o9ZM=_ZJ2!P~HQ%oX!?N8h+mF1N#SiP({B zn||d&a@g0;zhNX_lrT(>3#`>8xaO6I9`5d^(zL2vqA>d7Jqb2|tIg(e!Cg4+Umj%L zOrjSxgiYZw0}U27MZcaV=}CcmKGEG4|N0xiW!%edB6Usui?%JkDS~kXArTZ+<Yx|( zI6r6OXqv~;=2ZuWv&9CsqLFe};{teh%yZ}L6h*PF;g99D7=NOZT<m`jFs#j*W#ek? zefIpNORXF!<Tr44;IyM8aDNO!t9+ic-fhJ)5|iH~Uu?cqE|Jg$V>+rA@^L$^-ff-t zqKMP_?o^BO08gD%GYh<7kmfZcVZsd-i#n<t7j_q3LNm6J$fWdI#$~6=ov~}n?|p0g zZ5Wfs$J)cV*ZNXrtMwxY$@l3jm6vKK46-(D?C;6h;Moe-KHY6M*@+5->1h(>^0!L1 zvT_+Dx2I+)+w>`<=RIZKIGYzN2V+j+1RyezoqG9)3Gwws1ba_mKuGY;PhKa_9>7Ov zy-)E)6MWx`(1?ZI)JOHN=|R%_i#{u>%Uy7+%_D!1NkA4sc&IDo*x*<n$jmVtVu*-^ zr~w3b6rY{dra#PZ=|BGe<tnr)&rmq{jg3^}{(nF<t`0W#h9<wG+Zar1=S;5WPXEvp zIq=me%M7wB-JQE|z67?H7Fn|Kt*<yY9v~BKZI~($NniK(ofjO)K#(Er*(S#Qt{w4b z9{UtWO?K8<)2x(ET-t`V^7{m{#<k&^iM3eNW|F6rcz3Y4SF8c@21zXvq*G?4`A6(6 z2Bp-HjBrePrf1%0bG+NkJ6+YtjHCshgW|WAVyDaplNPk2SQ3?nRPrKUQtMqI(H1Ga zoH`;}=8}A@cwjM_RevlpYhc(?)8WVnor{MEpSJF9F606fI4#jo6SM@ce+b>W7zL8R z%jtrOQST>{700HAcXhPXTy*Lml~EV1_RVWy0SyK4qNPlHFa%SbU7J&8jpUJ7Z|JBt z+H84$Y^Z!_$4lKy5!>Hx-(Me1MdtYJo!(<`6A2XkPaN=o-dk#@+dZCXEZLZ9o}XH1 z_LXdM94WEgoF4D-duP;6(D7&0?CJS;a(sJqyE{Gn-JHFJQx1EXf$;59vul`o0I|KH z8w^>itr462qL-}ciE<}{LgU5aw4tWp_beg+Gg7>t{1sSL77o4vsEaw16HZ@Ya2~>= z(hG7J)1hiU!81H<DagC>jO@i(h`g~tt7z4Vh2jGa;$pH>d*ir619SUQeUx7j?~3tV zOGUC1SZC8k*l2&m?u~@mmPg=;qkv`!NIkpti7;b-x_iCkrzoLP2;*~#V!l<SbCXPG zEbhvH24C`mQ$8yhS2J#dR<e#i>CO6p#_w5Iml&Ka`M`Dp4-%Pl1>Ipp?tNcWLG64f zMA`17>?XsL4H|$dBD`2UVp=p3oHK;oxb3+bX;p_F*Q@*A_-i*<T)?MRfbG)aMKxa* zo<i=3DN=138bIK(CZgqGmw08q-*i5@P;Q%zLG$a1U!pJjauMWng!9lDX`@(o0x**# z45TxvD}0AVu{gY%9Q=cUZU<4lPWfOxPcn%kvJu;klz{DGOZq@7rN%FmE@?x)9k4== zxxuk=WHAm-AXDP8m|-(@$m6IwJ%WnWZ;J%cH6#oorRu!lOxbsUD>F#ELFre)7}5xA z&6{FY+PjQ{1M}o;*tRYpfwj@Racbd>=TQd7nvWdn?hK2m!Y19x8R>v<EhsVS%%rYc zWX>9fp@H6vlgPFy<QP?e(d>;_)RYBV36VHkOoZq^*H8dFy)>eqQ!GU)zIc(50EkJG zp+pcaPgIu~t3Z@$gN2I*x2M>k79!v#OgIl9-#~Dsg$}|X1;gdh_x<(!Npy&csZN^8 zJ|>dw)?&qq3|#d}5aH<h!l6165d%HNF9TEauz5Ra$I->bnU6t&lbjZGl!*;=MB#f~ zP)e<qtsynHJI6XH6l}B}NX*CLd6Mxwxu*6Vj*}#cQ=sG=v~~|1g05s?Dg9oVZ88h8 z1M<LI4tXr}-mNXjzhG0O4A$XdX|Pc*95sKvVg*LQWZe(DfFm&We6t2nlC2fb6~O0D zId0Gkb+9yIl13bxxb(5TRBR8NZE45ORRsd8{rE}TIOxE_gc%ZjGMDNK2q|3nkHN-C z&N(L*-l{Javg0@yLTt($BaOIaT<Y`y6rpcfJPZ*+tPUC`9Y_!}Ch)fqjUme(D|r}l zCxP`!hfzZ}gSBYDlLA*Yg2n>MPdtrW307Ti0Dicoo{)fcXJHBQDKb8RSgvtWyv*Cr zT=Pqo0IzrG?{oSH_^O)C*74R}y-23IC8j-A7XU&0;CX<+S4&TRCUl}AtaG7C#9@BT z11AJH4(FII4p)dlaIg78BMo%v&j@26q&A>U+aqmJlqtH9QCemBFc1ni)F}Uw`T{wh zyVHDaaiqi>qYG^<x52ZeM>%E~t$kRUdTazBFkopiH5R|eLN=U6)lj29*npO55eaM! zG?Ca)ut0$J5ywzb2y*26F3^dqvPxmhG_eJ7i;Y{g-#K<o>p9CV*jq*o1=l5xZ9sI6 zn!@xt8w01;Ftn<5e5U(ZV<*1uG@|bF6=YGWt~@5W@QM1rz1>9hc=$0*H+hQ^2iLP= zUX6fv2SC}(iFcXe>oAt-T--T8ei)rACbIux2Btr$)-tG#H#Nqef~s>d$MPwA;-`nB zs56%hB~p7$S%>8~N)tB`fNNGXn{P%apy;vKp<<yP%P~uHElnFCrg0(Kuetl;wI$+x z<TO-}{S<i)s$k<kcof)$X*F00<h{hPpoBx$$pX>dW3%LgfZsJCwmqwm7EStzK$4rd zpQhP8!FO$U$U==k(3da`<IyA0lc*#-5g*^yLlY}%4eFF``sO7)CzXaBpZ&EAk^2~- zEh<+j9VrO@A}N;JP(nwx08SdyT@{E3%}BnaC60d5)!q&E$<mg6hinIByX013C@^pc zrdmOsf^^gNfUHlc2T2L1X({WXdxm$Zy{Vr7Qlrc;;*co7sF;(Nx)miS$H6%B;u=G= zx7$`2SLVHsxrPpwdt;bMt4t=H%M3e7XFMp4k~i<Ot3}5(hzVCuWp5p_l#pB_VBVDa zYJc$j**pIGu(RXq^K*T?d^R5Su=Dfk@xAwcxqLR6X#9G!JRbEMw*6o#)Y2S6`iXi~ znmXa5Fp0%~f`GANs}Y8p6J#Jc))q2{7@d5b#*17THr=&Tor5BB`m6be73?XSj*{We z@p%W>c<=HWU-+;r?Az`SsM1C`+&8u$IvuYDn9nL$z+hgMeZQrE&B`Hb?Jjg263#zj zW3NAm0W4vnvb3-X=%;QL@lux&hYV+-2RO@8{Vvr#ZOSZ8=Sgb%Bd>k%;yBZ!Lw#YP zY`FlJ(+|+AC#`n0r!;vKo4CH&Lo7yCc_+pMDU;%9SSk|TY7=xe8D6|U%kbhB7;tyM zOL96eA9I`#WiHrCd=c>;7^JVW+z_RqIkH{#gFHB3jX}XVRdd;I`dfw`?6M69?=2_g z9lviX%icfH>?*>7-Fc#bRfK&3dLgN|cf%(S(xrYR6@CVFExo)hH!TYFhWD7X=sl7d zZg$VEugZ%2jZCAbT|QKdPE*D#vQSHFOWFishyd__T4Xq}%(crF6F&u4ml38-;PoTu z4-XRy6s%o55h{TiM5)5MRjmCDU)HV2%@!HM4|lo<B}{d25DVW!$V~<9^B|^qc5@3@ zIKo21r@OI`&or(FJ3@iVA66Bm3D@StHZQ>@7io1GUwEvN8M2DqU7krL$fl<}8qF$s z*}D4rdh(m`?Ta$h3kf**xVQzEI}CtP$Y<A6!KF+(2)NpTWXR20A>lmhCjq|euxiiU zpKU73m)^WRPS*%PSE-Kqb8DBv>`_0u_e2mr7V-Y%wQ|IwOhm_?1sJ$f2Q%`86YCA1 zjol9+XUJeP!eZP8pRs4ge7K)uW%fKj|0{z2>!Szw_0#{)h4*`RHg$1zaIv?yai-UI zGqp3ZccRz-?Xa+P(bxYy9s&dWr$0bskP0~M7l(+&4FEv+f3LQ8`VFg_n&|&-{JX)l z_JuumJK|4GZ%`bfh!ndJ4tckpLaD^fa-RE&a8?UGj9`fyWz>o9X-a2GsLuDx3=F>X zwQxdq5eH#iH7O^~%;)j=^sg(sdwi{TLL`Z(9RW2l(h+T?f{N)`S@+JA>ejLO7?oO- ztf80!H8I%;lrA!j>M^ek^~jFozGAbU6`YDQ(Ua)<(E>(4HK<tBkr+wM-mGwbr#*;2 z3g?+xl!hIMV!}H8fn}>+HlGTk8tR#>=CHc0%!725JEL^fX>|KeSM3n;BfN~t6E-@U z!-rawD#8X<JGHLafWO;!RtYmo=g*o2%t`WE3B_JsGDT&9M4&RytcB{pp93OUP#cZI zTbWtuA^T>Gm|cxpF&IAb%T(QFu$I|VYwxvadgIQfc>N)|I2pXC__nCw5+i%d33pS? zB-)NybNwf!ZE07RyMqn;9__BTJ8`!elpOba=lG~Ii+X@=3XNWkzOh#uH!i#wu|FDt zCFm5uMXZ!5y>hJB6oj8&B`7x30_IG;V31oDrg`52-gylw6_Kda2#hich^JU6Bgj5O z=|Se@bH@I}PCuwLdQq=o)lk(bm7rHW8aj-6s>M40^7NxfHOe5E937*qHuD!8Lo7%| zzuSPKx1dZQ6<ib1H*f?6FB*u-l>z&z4p`5hPq;oze@FcH*+8p=q0p;wZF=b1L$oq_ z=&l(A^%x?w<2VkC;M{SHokx~2G#rp3H1sU&YGGC*+k@>Wvml*x229ya+kFxtKz|hR zfG`pB#$~AE2`%;<DGgc(yy}u=FxKNyQuO0;_+03k@PstAcIzs+QXS(XsF5^5M*nzL z8}J7()`6fz;QWCr+NcE1xoPoXhwf8|te|sd%csu>8bFQ6jEJF4zgv>+a}EpvFoA%9 zD_wC`RmIB@QCeIq0r<ypB<0CxwO|ft`|5{QDpoXBU+>Mqrt`RkJG+ZeyQ!()>vx5} zch6#Ud*eAYvwPANFKG=Y$580O664RHhu}$9Ic!uQ(h-RRF*|;msq5$h7Mu=r(3=%L z%iI%KiqF?k>U0E=Kc>JcQA=o^+ORXbC6imKau`PX7rYYbvx}I3Qpi@XaCP1gz)J8B zjE_5*5t!&9Oa5Fz0B&V`;T&QWD%~aTT_}65TrlS>Tnz`QY)EC!3*O)=Fp>oc&l9O5 zEtStI1q329K@vVhq(w0iurNrOp70PeMJB7bf2Wc9<E0dE#-`7Zo9J{4lPu=tcnZ!Z z5MZL1V#kn<$jnsy#PC1i^&H-&O#1OsbEc!>MQ+>ARhx@_!C+D#U7e(21#E~V3^A&v z3ZO4UpTEtcA-cP{q;Sk*y8LP}MQXbkZdw=uCRJNB3e}4f1xeul?7H!w$PT!p^<uF) zra(5Mq8W1;d_?}idZ)P<EOm%stRw72z*f!8Be`YZ0%{|OgQ{`ZJYS8cmOc<8M3!uN zs3PeV5i%AJTEV;d&FE|+G?*dCoyJB@+bu8<D`Aqs+uC?v&|^QeB{?Vbh&+^#KExHp zP=;wnQ@x^xp^EIzIj(;o(aogyI<{%5^LQzWVA#!DPa4(dS%A1zqla=Kl_LdTJO$0) zZYD?zTzN-qCZWlV>?lo*UV<T`vcOfhpl!NeDsr0rjs9!dg>ZJ2$1Jv}Cp-g-y$h7M zC`h974fW@Q5uxNvTo|JfH!UV=eGCdR=c2v;^rHdoYcc*{=JAFT!ZR1#{wyhE+35g^ z`mdb|Fo@<0zo=ers1xV>IDsl{91)LLZHO20TFE-%oLTi-+`-yqO;cp~M2FUm%QI#^ zB7sE!?a`{y#sC8SMVDy9AOhL);UEQ|4panVoEp?v8X<W%ohOYNE1G@)MUD_s*=kAH zITUXzuS`@42_2(uut_7^AMPp<R|AUmdnQHs@q>V?Onb+8TMtsk$<+y~EuwbH;c6PI zVVSK0gm}NI`_hdel*J^Aj@cHOA+Ub;<|-jt@%OU)hGr_kd9zwOB^GDSwId&V>OGzA z<XKo00#xvw!?t$BPC#fsdV<pl)kI#2L>@`k*~>GOm1df@<n)Cw-{+V6wr21c#F;-y zHg@Y{A>`wNid~XOZlHteQ$?o~a8eva`rINEm7CWTlxvq}nj+v2xlJJ%Zsy2JxzYIo z3FM_PtSRZ&s*>Y_N&(+v{0EsaV~OKy`9p5N%eJijq<b>@;yw0uq;O^6RFhb`j|3Pw zdIM9O4%;)q+|Fn1rueR_7vZ#`v`oC%Wx>zb6ib;Pm%|yB8XwJn@9i@xebFT_d|`bV z*P5$cXp#}I<mzK}@~>coL`|J}FTElfkl<Aw0%h#Y;JiJ>n)jvO-wIgYhJ%}Kq-IkI zhXEipdeeB~&-=)3n!6c3^1EU`<*$d<rh|ckiX2&Ne9qgYw{V>$74*X%@nOQbM9(i7 z{gm}qim+fxCRidou9In30ItNLkjZQkWN;#Yv~WY%rq~UNYQcFEsc%jXm+%)Mic*9` z!VAc>XSVlIxYBEe@u^qL2H-=)K%;o-EagqT5Vk4H@#bksbYa(pAh8+hFwu%^I#cej z(5QP0;#>9=^%7_QS?hxwX+_Qs&M)p&lu+^rrF%~>nTD&$cMo}nD1Nc$WPi$7tNumi zGVDznu9m4|O@~ZvA5#%R6NfWRoZ9AM2Rz#+qBY{^g~^#`m-5zzSVzhH!t_$xJSWRP zNdbZv(KR~Q=lSXqmR7vXH9FZf`694LYnY=il;u(6aA7Nw0x?0xd#BlI;K$VWi2hp& zdqNRbx9)wuJo-lh9xi_%UJ4xUwQgR8NEPPnLeScssuAmV5N<1IzHB~#=;Rc)QGoK= zV7jQm;UPOAvkj<cEt*0zUMQ)8W{L00MQu4bo@82}g)UhHyD{$_RJ}vKeGL*pJHoZH zLJzyrXa23S8MvnG0$lEknWSOKcN2?`+4C)5<gG-Uh!$!ThZZv9|5`|kGZ8qy-F(_= zN91-<YMe1sRH_chv)!<=Yu+LJYT44?b(O*kD!%aut<*nhys4Ox@totxCm6<ip}U^Y zS7}G>RniJCMd({y_qTY@jX}+;t!Htc6ts1{%g#XGS7-_By_<9!i6Y(ysx{@eb}x6n z?@TWicUZ87o%jAp$JyQmmmlcV@S6p4gZx%~hPkYuQ0_TI8ZY?+-E-KpujqAJbzo_a z)1?`Jv;x+>Bxz(4*H_nq{?tWKs2Oj5X*s9R6)^=wMd|>i!wvb5p$YZVG8Wp_il?HV z6y}^VJ$vG8dZtqw)=O$g+=#qJi2J`ycR>Y3ECD?2r(A)K4ISMDR`0|THmtr%4vI=@ zsyfs`Kh!pnzfiiX=K;+qd1im+VU?M^<@q1tuXb1qkcinVpNYsyXj{Dodh$2^9h<FN z_pF=A0@HfKBBa*{MxjkJwnppFFVZS**guuJcc@V~zn9P&wh<NHfvQ8tu)VJ7HS{iU z-PsPZGVC?As@x2$5m@g^usgXz0iWG9y?_uxfo(XCm2j8(gVX}X32&Qh_9NSD!nOt5 zN7_K9)KX}rLyOry#r$!i@OL3_MuXFq=(^OrF5_%UAU#}Pjoc+QIu-=uTjXiA0k!tj zU70P7XS?+jL3^zlMZ{TNs29;sAbpOXw*@sixu-|`@bcqnj(DPRIQh!<<?wyJ!yA&z zg*DN1tgxXw3KE%gXnw|iSKdOm$731F0C1Qg7*ET)BQP?*!^)8_Q^+zVhYVP{HMXC+ z>cS-BlHFQUxB}tY^;?K(ROo{psYAX8#MV<9v1Rs_I|}TMy6ZgaR;3OA2IlRiFoE5& zR`v)EryT`T`r*QZ+NtUz6K)>X25zD(VpwE)fh`?dECH0NJ%lh8H4OBEe}H^_QGA-} z7B-Z%$UANmm$qq>-eU|@i!{h#?{wpK=DW*Z#Y^ahch;XWxvc?K!KNBH%>|Midq8fY zf&!++Cej*-9V5}w9dI$-W*^52xawr9Z*n+dR7)LOhMM_@^Nle@T!(v2xx09wbu0xM z|EE<4<3eYbuY&qt<z)J(5j4#Uo$pPj;8G9FYU4ruh9GM@{6p>mO75c2Gx7GeGCSad zGr^WlWs`EfJXohnh2Hw*nL@URef)2QzTB9zuM#R*Bi0psc#H8VFyBX8Em<2p;gyB< zq1R*{aas2qJArq)^^<=Fwg1<98X}9>-Az69MpvpP%@ZwK%Zh59puLn$?dPJ4QDEWI zLYR{D8TR84yh7)Lx!egJ0$za|vCiPE01L0y9g3`PklF{lLbu|B;$y7Jw|;Ni{kZjO zhdsHgRjO$Lm1);0NXMWql5VvYlwMg;w6nGcQPIi)XE#IH=kd0;ZzalE>h5EiAM8AV z6-P=WH=ep)N(8Cz-Zi<(DpYDQ<xB+IQl1N>+O`pTScOk3C@XQT0*E>XCEDvu{)ut0 zWk-YW>xL}-<<*(G_qOBxiVv(Zr7rI2<J^Zrx0Ed?^yh1ctKyTZ#8Z@M_}B_%+#rES z3j_8sig-?DyO+hk0jp9UqI<IK1*hKVg_S+%tq->wUh_fDEwZEcYVYSXGQQ`Z6`{Ei zLK4fQgALwyR$zR->rhL)(E#z!AK1=sIrrNM)~{<MPIG*RL)64^T+KI-@43?SgwR7* zux2w-nY^FX)PHnA?u5^#t=FOvw{z3oe^;i-jcJ~!4e1DQk`J~oSOtQ-UuXosB?Jx1 z(u9G)A11wTEucE&cUjKw5dHm50cV8F)^AM9L{({`?_Jz$)1?6;Si~KRvR7MDf3`Pp zm#&HG+9tP`{t0v^@3yd|!@Cd*LEJ=X4<hs+8VT!y2OCB6$WkG%dF)|3ABCdUwtN(d z2J=Zifdqf7ij3vc8`N&U>1fnxPJRlk-*YO=xtah%++vL??nxqT>wD$MkyB~s$tbYd zZ+^xrHpmy`2BZXAhB7;%oN!(c4ZP;fF)H*v1yFOt^afnW-$`G}_jBTGot^ssr>wmI zt)<pk0s!!c1O~wWzh$k1r-PxBv!$K+uc*EBwe{X$Yxs>p%l`mZZq}5ADA|-=wb*6p zjyh`XaM827wQe1FJk255Hl|1<7hQTN-`Mv)fc;wDCEXTyy|1e~u%$^D0KkI#4H)QO zf-L!R<P!|sc%!12rf0w!FXZ{#!GECL?$=!7bF$S1InF_`t*!sQV_RS7gZE!}@Ik_X z_eagUKQu`cy<QZhm6)a<YsRJYdn%ETuk>ponyWI!1}zdv27R(%WRDJOB7v&n4XwE{ zNJk=39g?eNnayzlMFt}_MTb^82dEsEF01O0DEQ$FnWq0;zz_gC@L|a%(?nHYJ+$PK zoFJ&0spl3v5ukGQT3X`xLoS#B*hivJ8&uiEHG86}Kw_#|L=1u~m_KjAmy%P4l<1Nn z#SIY{r$n^r2`SvaEfz8Qi1I_m(zEtyl8|zO7=&56+Be=6bVAC9Pl~A)0?0cRl_x`n z43aPaU@_;4Uk<|(qF@%WBgG(At)G3O>@5*cv*;NwI5?g*k`4S`Hm{$cNE%Q#V#$|& zsLmi`!GT@M(d48|c8{<<O8#alL~IN-b`Rw>-Q6#lzMM!~JMn-K<|uS(P9lU3a8%FO z2IQ@zCV)gaHA+KYrt3Zjy!`jZJvdl>7T$l|uMzta7o>Kl>wROpam!rL`~$$xy<oSr zd+<j8%L7B;5Bml^{10B27oJV;r}ypP_M~~p+tzOkc8!+<La!V0S+8q*XTui_)SKS@ z+25z-<-T*5QpNY}oMCmxyWSnb0bXA*6Uf#c{hU{vg5GWC(g$9?CHMO32KSp6D(42b zN2G2R@Y?Ox>tlLvd*<)QhJDZqe~;(axdA%Y9SlM5ruW+?EKAde(aRBGEYy0~X#e%j zuDiqS*Yh_YYugtw%mM6^)5-EhZ|~a2^~d1uhx*5?+uq)y?&;3+;+L-7)zOZn<+c4y zcSMl+27OEKMsZ{<z#KLerSIq2hprchtli*`8{CUtx5(#ZmzU=&m>-fKoPIawQnUX$ z_i9Yg6}vZhMAnJDo*;CDZrNkx?k``t69$6uudg_PS8N^%+{tM0R)_ekTk8wpCg4AI z@+9)NMfoscjnP5FI@GSO$3(f(hcogFWXgX_@NQ&v*MR|XpCyo0<BsE%?<~`46p8NR z5dYNkDu8y<<@P>Gb8UR5;GZ#4#S8yZy1`j=OGUz9fL3LDuu<Q8xWwY(qC)b7EV!!Q zsi(`CE2uxAnjJRa%qf*crlFJ4Buf4^3cB)OSw<kzk<fr{g0INMXHAnk0tT4(O*qH` zCGC>$>bmk5?sDb&zmIdwcGRUIAHyY*(B&=Oeo#@=1}63Z_b4!E$&wg(FScQ29|#ws zreR)&#XzO?5%tQ9a_IJP$Vavj=<y|RR?QqhaSL~gZvy01q!GJwt+WB8XaWpo=n#W@ z`oc2jz#_ctkWU@%17P(xKmcyY2hF_ni3P5FC7~zYnP(G($Q{5rgJHuPYPZ2eJ7D>| zkI#I}95CffrC0O+2^zighz6EUAkTHRGuYrrFHNLMo6RfK@crQxz}peIHRTVrj3sBE z%6{3gH$TWENGEB-P6puK^xyHF^Zms7P`$i==y!mCg$b9p3&Ke=*AaY~36PW0?H!?J zuvw*VV8$S~^M0VZ0ZySyERgbGF6%T<yRfw*iUoSjLaSq55`l67>q1im=62*s&mJwN z@|3S83iT9Fu8JQqJw>llsKR%8(z_)%6~TR7@qN`459Aw#478e=x}C&?K>&$z_FF#V z2XvFWg0bL&hXDNSSXrEuBg1_@T*GlUa3-%5w{J#&%moqG^;(JvvJ3f{!~VS2e9`DP zqY54ld0jFJMTilCi`%Ys7T`sR8oe6_VYAp44TP!3u{kRBO-qo>+Jgxu5jDX#xnrR; zWv)f1Lx6nTYo+78`7W%aEW|0(yXqyU@=8p4kW>Y_x)swSLA7}hfMuCil1R)5>>sVR z4?qy_Ymf`*6C*D2MyZMT{lREP(4{hGs1ZSe(N9Fyf^44aN8~H87Xb!_N*!;19?Q;g z$O(fa+QgJg235_F8!%YT07~+F?v)ZNVA2Lhm*}qXan3UyR7q4!szZ81rFRV~McwDW zD~O2fFJu`qG5DC&h(Usc0wx-#7~-59#DXM0q0>=lp)A3iup@{7D#IrjAfIT(a;oUv zJL5bQTP1%z@JNDLSjRk3Is}LSn(KG3tE89<Uy=6D_GeN4{rY54{yQaw(wT1<KYP3j z5zjagFb<o6s=^&9_0P0Usi!6=XBYLkCW251ktG;?o@`N;;H~kvf&sD`4|r?9p>DJ` z@*lI4H`J!l)0*_B5KM#{=zk>yB;}kaFaF>ikO0zO8t(@I!v}&qK}7wix5?j{@xZ`r z`OM5U7M2LYW&$8!iUZw8xag^8Fs~R_qp}1aH$T*r_v*t@T@otn`lf%p4BQaVX_#Gi zm*p*x16)5|LE*kVwUUx~KEz+{D);|vV|4hR^KFOXZWz3i-gqt|AGQ+#r0D|Jqz%HL zQTQB8x(nt=l0UA6uR+oatV%-bAsO?G5qO^Nty%ZVQ03>QDtv_r0G;4JM1sh1bB7x1 zZlTAW8ZMsxjhmNSfEMZF$WK&Y+6KSQQvmz&cC`v9oB<v{z@mc;Fo9PvlV3cJlis?m zvpAc`O5llLBD(a|$UGdH88I-f+h)YWFIf!H?>~DaNC$P1(beAg+|S${9mJ)A>ZE`P zm!5x9g{$p9&}7BU{&J1wF;xI!6Njt{Xf%l<T}HOjbCcJ@&-D{}^i3W@7j>#|Q~QM4 ze1OV5gYxjIu+~p~=f-hjGQ;oi(yfsQYr-+wC&5}WNkAa3$(^=<Ugi&kk4;GQa8cxM z&mlZg@E;XmL(P+P)%Y5@QyqRPA!LK8bl%)j8E60C9FW<LNzg?7CF5-sj6pZTsWXbe zmYV|gmbR>li-{T=1izXTRooCJatInaX^x{4^b7W*6W}afHa#n|_cFdV;$K?Dw6bpY z6_(Ca8o>ZvzG7aMOV9})yaeT}IIv!3QSTpjA=y-|LgDk9IcgBm8!8^eU4KDCx+|#N zHel?sWrYZWvuUiaZ}Rd%nFxaA2G>1!zOh|^<bvnd`w+WNKL_E}I;=ieI^y}hOQL(w zK#5sRz7n>NO!xVabVBe3;THO&t9xU98O=oMJ5s!&V={bY&s1E{;WTv2N}9-w$k*Pz zJ#+<tO78Yf!arpDFy$gu-8ek-(~E&W1HRgo^e!CF@D~XK^lYQvPETg}J*-%97qUIE z4f2z%)HWdc=iZh7?Lh~LZF^P5c%_pi=o(3VRMGgb16zPuIT@V}$^g6&pFN<;!5~$Y zZV*3p0(W7s2~zoh;(O&ML9N&M)4S6LiEj4B^cH($)|t*eu6Yj^g{xE4D4a0SUO|xJ zZ?S|oWxnM3>6fNYlK$O598T1SoYm36pMOfe|E2MTn)a$HT-EA(4v(wX@Rp>tn<(>j zb&;5K-lynfo{&0j=tIV@Kb;`s7Xw#uA=xl^kIy@nj^bb*Whf4mFXkre7xl6A5>Ef@ z&KxIK^R|YATD&2O_;9l}1<J*jz8Vn*wz~#+nS5f#=$u#rUWcHUz0mqeg$+oG_-qje zNgtW#ozrEE0x<Vr#l;Bljif(fr%%=}M)u^DmUaQ?Z^9{<If4!ui|QaMyML2Aom<D{ z0BNJn{U*ZisY{Y-$wwdWgbhEvJaU4nN|Py1Hk*+6w)QNcSec=jpnN)MgH1~LJ)wjN zfJb^Df`({YHMWU~+vv%rWWrF$J2X5}3-^USjv|N4qDlG_hP+2nZ-xUfX}q-LP>ytL zsn4LDBfDv;istAxLVxiD<RInUA4ei!-6S@^BQ5^MQEoVG&PJHW&|V$u2!d+T4kCGf z2GZgrq!yo3+?NTrHwP+{*q=j5mTp#h#=Yyn$i5b;RnN!>k-Ovpl9`fl9EJJ}#HJ)x zM~iCY$W=JVr$VaS?As@&I4#KYUjRZty}u4|ds5pAbRq8@Z9anXum3)L1ZC_>M{CEy z))vYi>1lu^WCI+&*#3FA_wtY{45snBGX1A)|9HG&{NmfH;HQYr^8%j0zXD?pFI5pG zai9u`kJ5OM!cl>=9~Wn=TS`&WLnk&lh|lE^&I+wq$$JQk>uwikPo*YqmF0XI1(PI; zK!h*omIc;Ff=7W!&hLaHc%9%`KD$Qc&m@AgGE{+45?+%@nY7}81WbHIln2k>(HAws zF^Ii1@Gw95rDuo}Ah<s(@>xG6g$fcmE)_ajs?t1iz-&TCA{hRUOrs#-qzN3(uLmHB z!I1*?Q7%@4M}!C%D0Ir8PUCbUhoV@)+Rf-+6m}5RNfxB4O<55NNM%8%qK`$*!g?kt zuQV{f1qs0}5h688$LQn~&K4EFLz?+57z_r%lYxbr`UlWq3R8>H{)oB~Ni!xg3IEg+ zY+T{KDH$@&?a8$nNGunn47#490Jb#NRKZybkbWK`LoJZ%R1u^m7buRARL3VE=U<Rs zHF=k^6o}m&czdfLnq3wtv^hVGf$Rcd3X-AyMgu^M))aC{;s<9*B@?0MA%szN-%Tf| zUVtN-&}6q~L#+z{aFSBOqWh<NZ^sY5Z7+)FYJ=H^lX!YEj)Q75=)QeB?*<RxX#FmP zg%no6e~vab`|HQO9{fG-d68y721cHhsIL}nD3s{kj=AKM1TSE*fSi7W6@D1wIp%kA z@)!=K#o<tnKd{VC@i32v{SI&`WKzPTG>hV%6N5tjL^OqWg}|JUH+2T(Y?4-?xe%J< z-ss%`j$^<)LLdQDN`^+?BI;7F*Punc?fK{s&f-vep4d;}#B!EoEIS;+F&nod_!EZL zG<dqUAWj*s_o&5BKOtTTlRHexQ4B@l1Rkrw0Z-Var@^11;Bgc@iGmL5s!8!km#CtB zz=_0)1JR5yCB##_6sF5DSm-#RLf~U&pY@@1SYA(0@(E62_fJnAciwipa>mS!S7G;0 z-3R4^?zdg$*ffpMNN`pKz}!&U3F28^>N)Be^Ny`V01hktGo6KIvyst`Ik7k-XqQGN zUFUjKL7>a}z(P25R;&+ql&&OX#;m~3NP+a}CoIKND_erZL0pc~bO^_aq(C7EmZ<dt z&xZ8k(@#)#ls;|+owfCiM_+vT)t|rq29PfTGryv54}#A2)17C#&*PI3%yvf_=Tcj8 z?*gUp0T9qhiGn-V2Qec2W}}C9XG-+M20Mda@-z!agxL{dR644Q;SMswD|q8&tpe}W zh-#i9L;cMlL((QE>ILiJsC8VL>a<_LQ3Z8Lx?HI@H8KN1mW3M{tZvkEZ3b6~q2i5$ z`;)x7FLwZF2T|t1MUu>D-%?<7`J6YWDRux!{4_2}!2$GFrdmrws|y6cv>FaWx`v5@ z82|u5C?9RDfw)tiZJ|~pqKi8E8ki)ARR&NN&<_7vJ2X_qiyy4wvLCF3ueYc%&&wH0 zh31}b2wWaG@NYX9yAgh4p2eXEj?O6pdjhR$jSs?x-bwySlg!uZ1~O^==@|}3xO!)a zBjg!)%INBQ0`r4&b}jexbW?#^?)3D!z6M9+Bfq45$<kN^j-o5h_#&ep#Fu$GE&~); z0D_up0DhLmz!-?aPA72GErB2Ac)LD7sa5#CE(=3}k%hBlz}SH=gdq3}IHJE6hI^Li zJCtpvrn#85JqJrAuo~X{>Wi}A<eK!|c<bd*LqFitGkh@xP<)8I<0L86{aL+G@n+10 zGRh|oh!N?wZUux|^>hUHMK;-52*i<gLqQOn!a6+2PS7Ii^6OA9%*a>?<{mz&p#lpG zJ1|DP$K#=PdTrq0{jFfD9xv?g3J@D>zlc*{xwZ@vQkxE~l{KANeUSD$pO--x^9@?? z`4|M=5WBSb`4}zKCh)h1+Ss>t>-Y&Z|B2lG^CZX*p`M=EDZDOU)GI!D;9H~GG%hao zve~?<aTd|Tq&QGV?aq_W9(UY@w2QaBBf0pmNsb6o?jev00J7|bd=ZDB?b9QXF)ApG zJN_D;oFU6uGD15w7FgPjaM<`z&i)Ez&Rap;mW9TCux{@%#`ql)F`7^!L8zV`Z5mA+ zN6p!FKW00T27P2efs;wEF_Eg^01-P2Eg~4FNCPy<9=a4}hTMo2kP;d}5`u~$$<0*P zl~!s=r764^A`5@1caZA5$geUs9N+_udHu*1P<(4mZG9`}oE3TW2Qudm<H{e*juo!x zc7Jo>(TePPP*m;V2^X)7!wzopXGziNSw=c2^>&)aDraLyk<I0OB*wz#+w(mZ7QPw0 zzv&D}q{O1Qe0om#Piu>!(iqh4J6OOKS)o$5YxcONx#K!B$8`guYIfbBFm<9ZDAc|~ zSxlyQ!Q3a>B)L8D(rcQb+zSU|6y}(Cab}aOo<lV8&F9(pTVQedth5C4bUIDOXdy7U zUes;pN+<M;#pw7ic%~Es08hyqw3MsVD3lmDx#j_(y^wT#|2^$(2heM@q8JSI&nGu< z<m}hxPdxxLPEma<7A<;wq$<R5*K(pUW;pqdVl>r=vtXX#T{vzR7ld!IZ%nXFQi7c% z&^^Lr16B9_B?q53$!t|d1a)YGf+3`2l|B&|eOs$SDi_}KNlj<a0q{udy&f5WtZ!K1 zZNa^1Y;wk;f+~HreUU+WO62csh!68(NtF`s67&vf_UIsCbEV68GOz8`T|_A>591Wa zTd^9sHOj=S7F+nzSg}zt7c`LNDh=$R>g>SjZKZgk^f=~|978Pw+?mcvxy?%GX>4jU zc~<od8>dVqwm=UQX7T<8(6$eU$eukXwC_VnA|JdyL6w23*eod%y-%mn8fv|YTkluB zXZi-Kfo;t-4g%z)XcKaSqKIknILhafF(L*IaRn|=SZ0N4UgO4l{5Ec=@hY-;+%`)b z;-wWHah+PXlYv_ivl)C|qWJ4?*U%@Kci?z2_v-W%wm(O?WDS=_J6n%t8;t>0^BEny z>7{dSOz~n$YNwvDC;&(4u}9!;5w`GcsB5kr8;!y!WGu}l&CVLNp^&q42x1&`XfimU zwGM~zu`FV-NFyH{F$)i-@FYd8?=*?o`GXBml?|;Jv!R}^?qZ*fQ%PqW?!2EQStzi3 zH$9^ikT#XU%gc9IQcB@yRBw*fk8f(5PNSxl{EUi&$3<;42OAYz87{G{(<e8Nq@{$B zEknYxG@(k=52d67JnUR2F^FIwK6f8>4Sk9Gc@VS#n1V=g{y`AN@pZ?P!tMphuk#d` zh}`l`P5x&NN&q^8cu+sL`)0hLCe53qdx0T@YKb_u2vu(D%yoj#S=Y?x8B3B~|K^)- z9<FaZe6()2g$oF+o<bny(`*ZunX3j6p%qTy{U^d~xOA8RUc$21GZ99>I!LNQ$GuMD zEx!QDZGF`xY;{`;3<PQRJE=u?6jaPtB+c*yw6KtBV?KrRV27L*dM%=OV2+e6@)6Z| z;r|f-S>MoKAFX$f-TA_cd#J>98ZQ+VxX4DM0AhjO0qFW&0}EK>urP0WJXpX&&*O<9 zr3DrmZZoz%5aIP^@Mzt9M7@H;$A<Y37YjTCs1C#BJpn`s*b+v3zjA@77F9PMUgc|C z;%>Ty10-L?ctYQ;UDUpf7Elo?NLzGXQpDPZV8y}m;&nGL`qpzx4bb%q_fRNq<6UoN zm2uzwpLDZuTP#NgUbpJ6F7j#XRao&|5f~VAh|nm)>Pj);^t=a#$5#cdC15|EPhXOa z`4*hM{bgvRc&%0LTO?qVAq3!^2L826pp?l-Y`I#&k1A2$I2+Y{l#2hlq-yl1h9}>S zHXXRA@%2KsuX|T&gIJ#Y?77V})WBX4NAmU9i(Ys+W^-Nq6IvS<41-nTC0!2Ei3e#M zA8s~qiA89V+B;R##1X<chE~@W%?TEYU>ESAN+^_d!=&jB?kU%ttN6N941jLES-pS< zJ~pwUt5BsR8C@@00{F)}*3dV_tcgTSq4S?M`x2_^i6^$uY!*<-sN0Q>j(fgA`U$Cq z>#KtwWA^p;V=s7Kc`ac4&6~1OTL%;#^*pzoi3I2X{T#wxwAS;(Ya#YqHDw(>)Z&HX zO>3hy)J5d5q<c-JXluvoKD8i$b)w-9$u(P}AsgXudw5i#uPe`p-go_HO4+5-1)F=2 zMs&c4N{mL(dP`<=Bz+WZ!5cQAZ4q3y;Tc<_5#(dg$Wed&xPi%*c@h{FfgA;wC@~_Z zxHS4wHxL}VcWW;0E~4Oa#a-LL>SfeIz%F{79$g%(%OU*?jo8AAh&GWP9*2%D-CbaQ z0<|tJM7jIdMPy8JdnagesS}spHWtqMUB=S3&M#p>`-j<va(KOvtHFCy<{=L)bsuR` z09wtjyn50_Xq{f8wc8fjyoK(T?r<w;)VIX!LL{-Gp97wSN&k(_F4}uj3}fQmd1-|{ z4%XT>jo`r+_uo?$rxjZ!@DJ8|ZZBby12%jgv;N+(*wrsZG-CU>`{_UmhtzP-z1)#n z1F;(n8||K^@8&brA}OBHoZN6+wksf4AmJnj)>IT|^ItZZ!~lt*41G960Kf2wkb2gF zODqOlBqX(Sgog?W=zw<{L6Xg<C`~4z(TPRe-zdfltaSm|t-;wb)Zd>3zgX6f&82M9 zqcBT*oybLFX|PJ4CibF<QX39TwV}z?x6JKphO3?A`9!NfRjrUV9sIw)Do6l%_Rplq z$-_(mv5t3DQh2(9j~DkxS+lNK`Dhc(e=QJL>>{}?Jz8y8t><w`cC0okqoAXzb(Zej zik!KXCB`U5*KG(kyTk%~pVF?3CjdyTv=VB1sJr65#?|n71-65S9VL(^dJEg&s<z7q zey{-2gDPxw13#Tk=Z#V;GEyjP2WqV0tiquWL@h-1L*?K)K(Fn|b<Z@@#gAM;ZJ7wX zQ*#1nX@i7A)gJx0>*)H_B-?8*Y1pAFja~!QACBXV1w$@=FFY@7^!LVfYvZ_LS~!T? zwjZVS)ryX`gRMn$=VElXehc$1-7s6yra~oOG7UV-P<6PKdo1g+nv&nO)6zSaL*d6B zMjMk_0rCCjNKkRflm0u5NhBJJk;C@VLOB5QAjQ)T&tHANQg<U_3kEUtrI>#lLn6g1 zW;CX-ZnuMgT!q-8W0L0=Y*^0bO03NxgJ5(7;h02qL<@=xVUJVBh<kZ+tFk8xM>@-A zN?^H<2GQ{6{>2r3Yc*+pL-HL*9aF<cBnHrbvJDjL3c6_&hoh~X_mjA+ZhD5f-~pSK zmC)DfJb(f^c*f3q?C%ZqYl<=PMvRf2_t@Fq4Y{@<8ljcUaLIyBQ{Y36$D=P4)#Hdg z(tzSnX{MUfO&D;X2hbAB%VljqsYp>SV)?b%nb=qaAX)X@9t0tUph26V$+h-f>A4-F zvDc7lB<PNj1qsN#<qU%qW@o(km1THMCMH#w1QTonR19#a9rJ{07>@35S{fj<C14bg z=~GOrk-IyPnK8MU=Z;qq9iI?}<b)G49(_{2U>IS$`YgUx)Zqfc`p(#~!CMQ~Hy#C# zHr6{m)TYuk)EZwuJ)*0p4eRb{8SHpGHl5ncfvnK5-KO2@BtA(dPB1a2Um)?~ArT9P zo&D{nyZdw@?Cq&<NC?2OP~3i6cT=wFdd-72Mnj?*_8THG7Hmcy!m&emnvYaj|L(S< zPQpaUwA?5v9mVovEk-LX5js|*C55_Hr5TrPBEMz!3EYPv+^SZ(OXjEx)fUriKcHT0 z22j$Sza`aO$6GuvBL8<fA>J~mgREchVV;zUylJ%P2LS8^x(alK-*i1Qq}*}vFPWuW zu68@brgK_v9Cnye&u|!M@0cia*9#6;QnR=2=Vce|5iWWb0?b<w-5FFI;l|Rgi@-BF z?VC8z^~GfctU8!A&_#RamMYc|Vnma8MCFd%H8E*_S>GTp(Ra`+@lus;touQkMNJ9n zOc_)m+9Or$Z&-}(gcnE`EKyk8L`T^q6TI{?$rvokd~~T@2um@ys}YCc6JKxBG@K#8 z)@AhSCLj?5`*y?2poZm^#OTXP(6RQsgLIl=$WdU5vN0kaXk%1GmTr)X4WS6XAI)ya z0P1p$TUi8|6`A#k^#=}L`X;-eYpmk0a-Po%bXOwfl|pq5!+N|LFjd#S-FKNEP?cJg z?fRo5D7E;;$6g$Na~B7&m!zn)MjaO_{wWX8E2?c_>`|qXY<nfBY7p1P$ig(lz}PRV z`l!$%S-Q8B-mNCieQZI@6$!{}y&-XM7i+Uf6AK*uw8+`L->{q%8KNmdFtj1S$U^)l z3YN+df}=I^8_jMZoH`<e(e!eBL2HX-SBqL~{i^D(MQWCv;w^3qKIo?4qp1JytoDCk zsr?BX_Q7AmB&d~%r`py9xji1M@Dgf00%<~Z?Y^t5E!ApNv5@~e7M2NnwMB-3Hs=*P z6kxCldo{^MBGG$+tSN*Hn<@hinyZXaI|N9}#dMhlEIW;7bg8J;r2lBM(qgN7a0e7d z!53eAvEpiz?j!kF)Rnxe9O^2QUzZSA^6Ok_fOIJBk4a{HsC4ir=TGlN#4@ts!E-_g zz6Da0LsDEFC77(=G3prsnZRm<V_(uF94s=d3oNG|L9@Dp3XjzN66w`6b1RR1dQ926 zyIpoDmBw06cMgd;eRb$;QeKRI3Ci*0;+NB4a#0!*4ZY$w_+ngMOiq8fn2gI`#uw$J z+d?7E{WcR+6fC^>M~&u#Ek%6`#TbXI1+P-mqU;gI%=fEH4KW%Ek<M3BGV2gc-Be3m zk4b=Or0DED+?{1X2^uj8nublL)JIlE2EN#INm(xWE4mtJ`=l+-`F7_$W{6nsgYAc? z`@gdZ5gTG1uXLGOU)J#SP#OR=H5}c-x!$Zj#nG_Negzawb*!iQtZTNDE@=o5P7hmW zBq!NIELm)tbod0cR2Sy>SMjE*kCuv$*9bvD{D2=i4OQp$^_kNrC0==Ikjy5vj_@|P zRXRe=hVCQ$#0XrjEspPl(+_|zX~;+hMo%?qTzV{Y4SkW_)fNL=ukn>kl4)Ot16jp} z6AQMQJ(&gDwsuWt^`l17dTkEoGdw+qx{6^z-V7yx)ooHOm{bi)ZMVIm*JN2tOqJ<+ zYpY??bWg<~$GO0yOcbXWZw)M2f@7tl0M=81(^@%WV?lZr{XMx9i?2mt7uPB~bRHuo zQ%^WMita~ac_0X~r)afs8=a6NFH@+Gklg_r_A622Ihm15DCWAcCC--JBh<5?*vJwD zn{%hVrZJjDvCIgl2PxZaq&9=)#Ria%yH<bVlEn)&dRAPmOlDi%uGKrt*JV2lP#bu{ zX*AQ^g0MD{6#({~$L3n*g#x`sZOgzGTC|7WxFA;D6)9z44{<fEu+b$ks3&RMv+SUx zbpkAFM7E1EZwzgs<<i+m7J|ZWt-d5_GLqz9b?O==5`S!oT`TdLHxcDzeDO;#De+(W z?&|UG1qo_NG1J@Gxrp-wjV~$cz-oO8f`B(Qbd!l`h(^_%VjaYWd%8L0K5?4d48#>q z`J{?;{Fq&B>maxTD<n4_*Jub7VY!qq{A9_=7jL#?#(PG749r<YV+d>xU*mKr&IqDs zR4|qdjB4r8@h^Lb_-NGu`R@IX0JQFnv-aRs<mEZMYZtB>M>cSCZD8>D+pG=N;<vAm zTEDak>Hj-b<BRBKv2MIeYVn7p=Uzq-YSWQltI~UT<hW02r%G(}I11i(VG!L-kpGm^ z<rh78+(lf-W30bM5830Bo)V~y-to-};~$Ebm0kkR#NBG~5+G9)YuNnA89P3Mk*a}c z-%%NXj9+yfJATvD9-AD@@qjLs^$9k_ER6l_BTD>2fgCX%8`(Oj%y8#1X0Qv!>BwOU z67uzzGS7VD$LDn0TRJms1Y*$Q&?d!377w-meemifthXYKC+R=y>>EqK>&Z~<yccTU z3_6e2@nQvO9DX2H@h7bj{Jqh+X<61yLs5E)&H<-7h?isE=W~W>RB(*~ZF(aY^L!7A zxWTlgQ%<1hg~|`9f?l@D#H;P7P)C+-q3o9NIrWdE@0Y#$WCSp8bpj`EU-w;u^OLh9 zoXT{AJ@dFFXm{+~NN`_~opU}!m4Y@7cDyOr+VnSke7AH73!FfpwB^X@s&|?S0P|F5 zIrO@vJg2j!dv61_xXKxRl*<$iaryI$eI<{N^HCL_8Gg}YoTC!cJ8Y51GT#Db)m8^q zBM0?@?Xl^KZs9b1hDrG-oj`A~L<(IQ1ejTZlF6}<GiG%t8@ZuukCPyQrHIe@jSXA+ zlA-NV=WS*@YMwaikt^q1QaVHzy{1aRf19*iH?inr>n03fS@N#hhs|QLN3%fE1ATcA zbYP%%cnwTo6wgqtJ+Gu(iCjgdO#*Tu^ByN<S|r9@h?v*t3HI21Q0uPRu-U&xiHSV4 z)e$h~4Ucx{1k<DG1?|!Na$PREn5CbZ3!_Dq!_ce+)WD0B^J_rsCDYC+U92o{DChok z_6~PnSXh&T=Mi93ElSuQA9o^E3w}N61lCnGoung?pX*yp=j^_4>uSj6ZC+~7LXC}< zy+@CM4+F@E>N-d1D&a8I$HqMIiJEwbpWOnMO~tpUsTYjv1&N;po3IBFx9#(P_V`=I zevfYQFVis|VTr{@6rag7mWugafwe%s6;=9}hx)8ciyDqafnI>f0=Rg)^Zrs!pg#Tt z1?scJ`CfNg@dvlSyXoX<KE9Tib!PqoRyF|u-{qpkTwHQsF2hX|leq<fc=~mR+MUM_ z?H<@{u7x!|^zcSiMe}9Wg#rXenTie%^BJqS%lV1P_C$JBzAP)7ms~~|uU_r)em;uc z)363E7Ypwfje)2HfNB6|5(3t>;w)M<BBnGYjvf@g6RmCPfV`A}7Pa&gEwsd&Y*@+0 zsVF@?O-S4|gZNI<vvU>17ZV4gAXud%%7Sjhf&2)1ma@!-*m9i^rt@};|Mm4h_@Apr zfs=Td3^}5&s;~0ch24AIo=TjJO-f2`PwN;nb|}d)LP|#%HX!%N?oU7K^cI-o{uVG0 zH7ckJUwszhZVkZ{REW=#j=SWkpO}5i(%0(Vucl+tKy3Z(#zwHdzTV&1=s$u_aBpK{ z{i)kyQ^U{jJoL^g1X8psYR0TUn_ae0siP(8!VLp;7<;f8Y-}`W1fCk5Y^MdPz5cXa z^Uy9|+Lzt-$&A82Sf{~;F1>Kii|!dCB_qmqkrQ4HEH<{H)w;<~tp0}TT3HOqW7n7} z2%MW|QlGUK#(gIAxGoR0H(w7kFs+k0dbk$#*Bh}Lq_?e*#F=rWdw-XOk`qL22@7Z7 zZWj&4XVp0-C;=wO!NOXP!Ozn8EXzw^bjs%r>3$+<xbk_WLhe>{Qu8S<j8pCQ2sLu# z(3eZnQ7FwlyQzH#%3Kn)A@`OfM3Oa1B|bL@I5Rcg<!lm@4u$VEDZ9`AKgw?_EZ_>R zFN^ftc3FuVSce0wUr6*oGo&EDkO+bsEu_^{VZ7YO98qtxu2o21H8Pz%sM9;>yBO>0 z5w!(C*DdGhMXE_<*uh!D!VufJ=%KTWsqL$Ev0h(YM=#hWy7Rs7qVOB_$X~i1P(JK* zJ}*Bn`@!esW<VG5B14AVAn4ww6%Ql1Xf;7`g9@!0wF~OC33|R>UNUh?=cro`))(5v zEICa$4KQ(B`X*)tU<M$%LTSLEO(f2)O*f`X2U#p9Yf|wc?@~5KKlP*$*RGWvmu)lP z%-ZVHW{kA+Hbc@m`h0x6$zLUstVKZ~lTa^8BhPb~!yfdyWpY1wGCo=tg*+}Bmd-1m zs%Fe-Z|Bwh8h}>UeX5#pI6>QQqK-5jiFFWet2^(xwHwKG?%PSn<5V_MWqc1`kp<Nb zc?4Z4oR#}~4NA2#(2dbXKM2Af-=A02Z1ds6aXu;soQ8Oi7iSM2J)EQ`MO<7zl&YA$ z`JN4?x5~CF3RlC*qWxe3j~49Dr}GRW*Gpn`SI`8kV`XmdHv*+j8Ql=KXsQnTb<f>c z>BZy6s_p}+rE;c+R_5yv+wnw`l1&|9*$0i&EDqx6BnnTnlVB8$qm8w-UbMcp=86fj zvkUcIrDG7_zF1pfi-#7vuD0T++k6&uPnyq;068EKK<D7kQJ2zJQ{HXpCf<Ytx|;gV z?mE6~Go`SI#NNf5>&ZwriRSuztIW$M9bHTkjPG9MqkLj&J>Z}P{1C*a)`<1)?U+xS z<C?0eh?8D^WgT)F@lTy25U$R4<!0l)Y+*6BvThjB*%*lEM<e#W8T6G(ShmY<^e3Yi zFc9-+nr(YKYjm-vn^<q!mA6LzZ8iBcTeJl~JaaC-cxhUw!q3HLE4P|^$Rd)<5+d1l zqH{>jM34T#D?$I17{+Ex3)5bOPHrpUR&_X*`WX4?Cokrd$nynkuV?^MBxe{4rLaPt zQbE4Qo&@N+2V_*}2(m_;8Fm+|R7xpK>tbY&#au_2x)ZiEKoRCYqV0$hNR^m#1f#mh z&F3LH7gFwRfrV4aI*fI7ihG$?$)=U}TG_x!V(CIM_9X9S6g@XSDV5`*nUscrog~0Z z63#rMHeCe{SPNRL41(Z*k}vEz=@$$>e)G8X)sq{x1;%Dj&xBVED!Wad>BhuF(M+ke z^ZxPS_R}Xf;sjRC&(8Re%iD9w4n8TB4`Kpn<Z-%8lPkxmOwC8ru``k@YT;Lme1fQC zic(E$10K(uX7O}<0y^PeLYM2fG}j(ObB{^6!dBGf5j;T8p)Ef2vB4awm-|6EC_r2x z!LJhq><Ov~QnECzK$2#Lw2wlU^!g8~{GUdZb#C~x0Zls-)*4=BAeUS>Nh{=ZwOBat z(3VbrhvUF2Dg!%6ydOYkf!Sva>9q4kmXm)uU@=r1*2RocbrHPT<5Ev-mjweYN8H?l z^-V4++qAPAdMg|&<PC-P50G%5B`5PUaoj_nXcgBSQA?K-I%zfvf<YK|UeMJ_2d0Bh zX>?gYMk4HqZ@iLe>x7?=BgruunruO}*P~2(_M<@dK&!`dvQBL2Gc82!csAApAg9^V z9R`mA=+HNg{u6qP53z2ozG`$xn=URxBmO&TbfV6QM*bk<O|v(ny18sVnV2oyH&3xZ ziQQ*;ACn<Nn_b{+P*8kP$-T6c%O!quCJJF>X5%^OY?Xm+Gud507yfWS1q|k9U^(FZ zS)L&am@vnDmyWP46_}225Kks0Wz6f2lTps$>Cij6NT+nh;xyt|irEp;6)xMjNULkb ze_&EUZ0iynLOoU=QjrjWV0PGdh>xvDM!r2#E@qq-o!ry6i?gTf!eeUsprne2$F6B* zG>NKBsv9cfC@4f{$2zS6JfZA>+tg7j;fD0`sz8-UVb7Gj*N7viQ4Pr|b#<P?!D-!f zA^KNK<ar*69A3HEBZ9wq>{08u1F&<fG_g~-Zh1O0pJB4=1(2R9<ZY>m!h==adW&WW z+r~BF1<DW~Yz6Dy*S6V1Jqno=rfj;jK<8+Rm{A%b75hlvqarWMKDz(ICPya6ABBh) zQ?Skww<7s2r(H$3`pjre`w<bYyirGZ%!`>|f=q2xi<iu$O5Y|a5yu>8^3mW+Vg(?X zOwxZQ0oB8VZW9zNIAEn7Qh8mX1+F0dXmjHjce?OV^rg8%BuD@za~=W@8C`@lh^;kO zPkK*hVTK-!C&<ZATGCAF%fTA-jX(j=WJa?T5J=4E=FpCIQtdx#_7$lY`x&i?zewM? z=RGape27sMrg4Fo)kqxphSKN89?-A;dhdvT`=d)8S+Egn$9`m0Ct-CG1ufVjD5bY+ zRz>>PRjxUsV_0?=v{icSh$$9o+L6|*P@S}l!=_}+>w2D)NS9Z5PkE*CRdPRphJg%P z8VzE(GDVsJf>tom5}{k#0Ux@!<hqf*54}nxm2{fH35P+<k}RH7m`70RqH~4W-Tl3n zyTfOD&!5B4zEZ92JrA~D{yo@v^=voT`F{K5ce@8su=}^&m%;!3@!$}izj(3x^6(&d z^(J__zy0zDf&xXJ?jHWM3#AUf-wj^w{(MN!0n{@+4t%q-y}utEz6zfI_;M%MdwH-2 zt^D+6`}OPHH<8hw7ueL(-QdM5__??H>@)Z<804Wt5|OvOOLn7I)5t6yA|i&IEF5PB z4OcV-3NTmyT0efEJ78(eS~phze(B#V{W~Re!Mj=3EEC=S+cwL#opP0J5^D9G5PqfD zDP9NTbWDme*o!2*X+AGxd%<LTZXjLykSVs&?KT@P{}y}ayf?Hkfpx-K8j-zD*lThL zr=K`BFDGK^p>1Mo%R@g)ZW~+1h95Y7p=;&>02pcm*@+jkidurlTBd0MrAzu{75uc@ zXvzT8iY2cTk_t$h3_MBJ0_}Qbl2Kwh5&v1hmn|RaDCdpNW0P||5qaO9RI|Lq3lTY` z%X-k^5SZO!<TvV(M;lb^4HOJnX|g_QCoq3UN&zOdWat{0EN9E8zA5z?*=m)#rJ1gF z`=lgdq&#221dUUfWfwZc6~U>GOV4(nZ~wS|IQ;4Ry~Euh@aZ=Pi0a^N_O^OkNFk6U zPVzEg{#Z#yV>vi*iNB)iJsq)zrsjAc7(C<C=1=D-Ech8z-8qL2g_N+~b{)5EE?+^T zMLJGOOXYQ?!7zXoE&%VfRwic}`W*$Na^h5StU|GYw0LXVH*N9B2-|v_ot>w_FBcPx z&nVHT;1ykLC8ziY-s2xAvdq7^&f!gdj1_wRs2)<5$Mh^qPt#GHIjp;p$G2r3V5Teg zBJd*)w(W|}?w+3rtqE=+urxzV>{ICWN%<olI6^0{r`0Z|dFPeHY0>AU+*gCRGntdP z496a^2b&03G_J~3q^#mLu|R9u6IjwXH46tf>9}3#KO}(Y^0=XT!WZX-^(21MRIQAM z7ZI;-j#a(?A&6m|JZca3XpeX()WWcLh-9`fU#$}f$x7Z@#=z|{ODi$vmaO!wgj1=i zdQOqkIGyMcwrT6Ve{m7L7tgbcEWd(nn5dkN3~c{Vmjhu4mRmVLA)-f4UR*zvJ##)o ziO6XmkoqPeqjI}(dTHb<_ZL6}Y^(IG3L9>ji*#1Az=l9fWoVlq?x;Lo7cnZQGD<oo zt5tA3?M&lqR`~BuXSFJh&uL?J92lJ^qYI@Rm?WoFzewO%R;H$#x?H^`vqQY`X{69) zTf(yp`1$U;8Fj`x`7C_-tCzU(OebXB<1Yb&sS`fRc-2r~oueu46c4kBRvTN250gmn z7|H|{k1r`RA<KOf?$c=&WQ1vX=J-=`hwx%s1q*2O2M+fawqq>rrkvOp?efqD1e4Ox z6$zPBjONq%1h$~dBnZi(0m#>jLS8@=3Y~2*jDLe(aBl<~IUIycRd?ASbw7pUl6hSu zjE=^b;>$cmYp*e!onn;qlwuD!C6TcQ+B4Fk9~RfHK)0%Q`3sK!sNBj)Gr4157~Tv5 z<qd;VO<V%!z4n1I<$41b%8snWC9iKM(T}dklnom+oF=8xRpv!{mXe_wK@^$yL!)=2 z_+$o&6rCmBuWSYs9s|CipM~psz_5O(cO$XzaidOJ00r3n^|g&JaCg%FHJu+^K~12( zxO)ShR$eSNA9v%m>OuZicSnD9WX3Ol2-erug0H?<`ytr)@~an}6%5F~T;EuWuv!#+ z_2rk3zJk9SUw!?>qc6Ys@+)IE-Tif*Ud9uoCY5ty=RMwD2}UUBJIT=e7@o9Dy@Ab- zh)8SEjAppruww&rjadbp{o38at>~Fp+~)8u)3=H%J9Y0~<sbz?-*rQjLo9$Wxk@Qc zN^L<rZQl?UDQsuE+GQ@H;IiiJAfDjrJqGxC8J|G`3MhIz+1*(Gb_$TEJ6ggs!oTdQ zG!;K>hHL8^j|PK5F9<Px3Lq|6>qWS2WXa|_-4}1Vc}8t+LkQ{!6?Sgf0mZ^rYrGi; z*_&3{*===W9f|8Vu!}n>9;1$)lSX1khOAx>xB;WN20giP76D&xYT3}FE6#DgJ(=*0 zdFc_27gAf1&;~W)5Q|m}I4cSkjx#-(R|W!PL(<xME2M`(hA&?o?rt(!>r`aHeO#IM z8=IQDuS&?4Z)<1-2OXNUcT)nSpOW4u&Xj;2qk1SEsqHc1TpN^&&6q)^qDVsgG9nTR z5C`iDMv>0YICc_a^msH#G4^v6X{3hs_k2!00Q~1TVUFxo+oQ)PCq;6ZQhXECl*aE2 zdrx8A9jw$rmY#733~uibgD%>)LV~hc(~z~Y!<)zI+mqE&VAZEgwf!~PwN9Pw`bK^1 zYyhy2r+0xs=U7iRsKnkX+Xwg2oY3q@GszWgcP+tyB}Tv?$;Ks;RoJ=TU>OF7I@)aL z=$$ohpS+}X=QL?EFIC1lLZGtWhTULIQq$p1PvP)%!F=!pzdoN(Yyyu{<O}wHqzoCC zz-MSl$ffXXd?NcCS{j~HU^LteMX#IMI+XZ?94AT1#b#>*Qhx2c*Il^5*K~%Uc=Twk z8_5~8$}M2yw8Xb<v4ddBG*D-zhSatUOL^+f?8At{6u|)MaZHfLxtyqICZj+OLBt9h zj-|Rw9M27K)_eyKajgtVk?jjfB$H|Oy<r%odu4aX^)iz&4Tg$|zqasUHsRS7hw7v! zVCo|NC_Z*pWvU!?d`&l2RI^Frm$&z;Y|EzPEZg$^)6DR`Sh^MCnORwp%K4B^v`Ily zK1Wwz%Q|$(yso!t>jWr=PKlqO+IVeVgr8;{R0U@fiCy_3)7G}uf23W9WyW#a$D{6P z7M5t^8R2Q5cVq2Vr<9LIz2OJy2WDI6;|NA|g9ld_*u|Wdet@Z)w`>_eRMRJk9^)AO zC@8*s0*@#8RnLNfR*eip=h!jRIdGKd6T>uERV35HEi;9ykpe;m!kxvVi};LjfnM4B zwqLdqQEI?@3`bcXk%jVUMyi+e^qLKh1UB6uqtKwz`kiBr($bKtYOqEE%~P@JrS2ls z)QIFO!W(7lED{zTO#B+u@d~}WuTqTd2DCBG6ZZK~p(LeK7<ii+w*&{}y4A>8SK1To zs$h(CtHg+JdYsY+W7?*tw&g~7u1!MbnKFmOI0o@~5|23~Ts%Qt3D(xP?S|<2F%8P; zb33bY%Z_|S%W?XAbn|ige0&>n`mAb5PM<rer<TcYu6XAD{v9uVOt749#v)-#QbbX- zS>!=y)25BlqOspqHTU6Ix);<LQdJdTHIp%4D`)u?4JhKkcub~u#WOw=)UI#Hmq+Vu zcS&uxJ(!8fu;1jvad_(FWb&$pB{?W%<Fnp%L}FZ?4Z%^Q-BKLDR7$2SU}=nnM~P0T zTPISoN)0sQv1#V!vHkmrKieZ#PIyrg7eqjKcDZ?s|5}w6&&GofpAOGMbjSWEleB|* zerbw)GvrJVPD@O=$`jb9VFqNc(#FNNn3)>zDsx0zgk{4_wh%Fz`2xTnGl~ek<H9j* ze`*;-@_$nbMH2-#?ryI}DkA4Yyf9T8#Yok<lO!OTN({@Qlr(Ztq}~_?3$lx_<3+9R zv;dyQ6|{=-BM1(Ba$>26Z1o5y&#_4D$3bZf@|oUS)9DoE6Q*-={Vm73L20M~W!KaE zzxA30wG+csqQ089ApT+li^zQneYEV}Si>6!!TnZ;d`XmZI6^9^1aJL-qQbp2F*X?8 zzgzAwx5(hy)CMo@@LklyteZ9Yj35X@kmFhaYD6RBzKR5)*Mx~4w68=DVs)9|kRfJq zHCiA#)*Os2*xTrictR#e3Rka%fi>cg91U86v*J#TD?GHk9I~ENYK=5bYe9{Q3In3t zfP2n1pu&#K;{P^g56kVjHuz8*GN8}l@p2NcMK*Q#mIDc0;RBp9P~o(UFo+fsur-9^ zJ8joH2I;NoR)<|tgk4&YjAJ)>s3k?wyJ?=F13pA=`A*GlF+L~jGcv(4Mk3xZS9s2? zs$@DNy+14_CVLl}#73-73kD<_VN10_)vE8Xs`Dbhva=E#8YgIdZII=15QRf_MTwfI zW_>8P*V)aD1rnqDP*@3xdA(>i7&HYO%W~*6TS|LFG{o7%`$?SrvQDLJDA_DRMEsS{ z(JZ`SOvBdmbpeM0teTGL3Vx7j)M@;TJ5$ecZ?_=#oA8?-B-ZhKI>j}eh-NKxN8Db0 z0RrkGWLjl&$Ce(ko22@soU!te6^BTan#*TL-6*$XkCzuK72UaS;GhZEw%c-GU+JU) z^-Z-aZa@o@gpNW<rZvnCx_J(<50C2_xW-j^j3z))7O#9!)vzMl$}dGMVs#JXA}?lL zmA5ZR85KLSlKaf^vTC0$$-m2q8k+F*OKr3Nui&q<B0o)4#u8e!)bW@3PCPnqYi6ms zKCm6;)W!Xl3WvjnQN7?E$Ldz*R4!Q<4#9=XgPM+~mg{sU;yY>f`R>p*a#ug^h7LY# zSc0KM*{W}M3O4Q;T+0w?#kzCQ0f0>VFmI&T#8`&)>R!l$TKs7=EFx|54XaqmK_6ao zIj4k|i?;Jt(V-`qwrnvLP~CZMDza(Dg(W<)wpCmx)Y+`m!j#EIBGX>MKW8Ryei|D< zQKJnN{T|5e&h`;j@{CV0OpC5I+I*;dMa@wfa~a8UM-gQ~yRD1RYVy>OJMYq(;~(X} z4f`LxMif46yIPD&#z3DqJK6t#3(Al44;fkw&4EzwtiC<fsS7*mp{j0PhK2fK%QZlV zB!%IYW5yn_LGo797{RueXs8&G*u#2gYJ;@SiJo*OdP}_(G1Z4|w;zj~Eft1N+c`ju z$OU3?s_*pLW3suQr8Bg+di$p_v3CXJrw5ir>sYMPTPvhmM5$_8VhFDAS%Koz=MGyM ze)P81*wv7RP<>=+hh?kt!}7~p8-969eLmi%haZotZVPL=^+Ne5i{!Qo<ab#dA7x?u z_biIlSa2KbbdMg%SRFq4PdbstbseT@mGi{<s^^LIcDmMw3x|aKCrw?%JaEF6u%ddP zxp`OtD}AaE^B^f!yH@N_llj<+Ew`m*a)&~MC2hz&)Po(x8NqmoDHJ^8T|8WZukmG9 zY>X+iI~y6YRZCt6N2}GIyMgsa{E9tMhd*W~s8mYEe5kiw%GKz#uOZ>abrHadPFz(z zXy7<dcc{uZKe@HAVWcXlc?8iHNkdvO#ze445f0@ds|7FI(u5na&eR8<ARIv%jGIBF ze9*|Tz>5|QW58uR{MiEzD-3l8k@itz5&swo?PnAv1n(ot0o&_gbdC@nTl8(!DgAZI zMRjOszFPF6z1|SVNTCm!H5CeUZLSZzaQLbiCq**GbgnJinNaof^fYfHXoYKwsG+g+ zpI$on05aAjfTo^C-~A<5B6@=aZbSGA{;I^Ud+sa%UpY~mYJv=&5H1%<{|f`L=(geD zHN*TCp?jg_euQ!UkX$c1fvS&+5a>Q%zMSix=_TC)X6Z7<&(fugpSvt)UGJ7lTGzY7 zvetF)u(X{G>pyl4yE`0yV0{cvQ%VtriDeTpX&EQK&Xe%ySo-w;=6Y9SUt!7X1+6RL z4|HkAp!~?hTh_NOE*IvAr;oOJ7dH6E8vmGU{9c`Vi<c7~hb1fk-r^L=jI&y^+d5hH zpGdf&3pOS$^7+|$AQ2EQ%{z6u?n7(zBCdw@dJXQ?K5>92wtP9c7I&BNYpxLXzSYI( z-e3980r;e19@HZfaEwZT%4<)1LlEXM65yMC_^XJ^E`c#@@LYYg76og^HD;)7@i)NK z5*itkYvpSo_T3gn$TdMb$ZJc9ps(OwC1gL(=)iD-W+~E$W1jFF(3wmw#o(d>ETch2 zeu|OZ)a}2@z!sBPPmTEcfW)V`k9RZp{oY{|yx2RyNI>WSUccd7eRyH$ZN>y^G-{AC z;m!7AZq8)OA!k7~y8?S8Y#Cge``tX@b4j28E^6|14^vsxZ=$awL|R+awsy%&_18F( ztBc;%T%T^MA)K{s7xx6&W>g8oASR;uQ)vNp2+T$NzSP){pxJ?r=oa3GUu4$0x^j=k z)gEK8*<eVRr5KU?ZT(p66I)y5J;SpFw=}$*CSWzSk%W`q3mc7UOTxuQZ!J=S$`#T+ za>e_!yO~9COM-rxT-oT}0xUFl{N*UyJSI+k9Neefduau8O!RV>_ZZvisAWjJAF1s~ zpn^m-<ZzPf8(%wCc?`S^I?`B28ET;;S&Hu5<1y|j)10?g4Et<&<4p3ibYxrSy-^#m zXy4h&tyIBeX^&BX(Ug^3$ZegIY-Zcs<fm0a%I+z;NMSJQN%Af@D`E_+TlQ#UGHlAU zKNYW_F;k4Ku|*<H;<0Q^$vY4PDkBE`L#UFD<BG$=jL{J8g&sdzwvhvYoe=LNhpm9> z)oIeQu||_-I;D*(>jzK<;06Q>*XF4oxDyGF3>Pn$)teqXqI`eaDp+p^vm(Dt$F7lJ zzy{b1jwS}fDrsjWA_i{vTLer|hf-zYPX0@o3y@<4j}$C|kEZ5IGf05e94Jx)3%l?z zhwAAmo`f!OX2pAWY@^V|;UT4Aoh8W_c6PK~B#&3Xzhr?0Tp;O4bST%6h#y-3&rz}| z0eyY$3Ob%WR{=x-c8ME_LYKC2EOlo|0JR`q=X1%>qMVDbr5=Dj%&9Av<Z5S3#A!kv z2@%$|@33S<!4#c9IZ`tPYrvzgh=NYMhk?x`dKgz}@6_#Mp&`#Pn%2(yS$RFm$=ADs zs}Rp_u>0a@&hid*tnPyaZ0Ehz;Ei(c!-DK+N1zAjc&mCt;Kn&==EgZ;+g`)s%uX~m zD&q27=H(<Qbx;VFE8O-ehEL5fEU57*%Jn=iL@s)2+LvvMXF?D(=C@Ix2ETBEEQVeG z5KD8rs<UZ0omyDdYY&>9Hkl8QcgyA9g3YZV^SU<%tJ!7Ts)btf<Bp-X1TQR1_#Rt= zg*L(zXNtywg)e6(lVuTOc4-qz{D$88e0BzmFl%~y9?FrE9jjB`0*X`eNzSd<EwGzK zL7s`TGH<44v>Bt(b6DIb2_Bv?=Yr*nB+K&(gTqm`cr#}IreEi2k<?LRpxLyr{d@sz z4a;)6XN!8?T<Dy=^Ijpa4l)rMaYrcN#MoL|W`_uIXt&POvzv`!@!#~U!Lax8j^#y+ zD|eEP(n`+FB}avU9UXm_k%8n*_ho}W!4%}ErDu#V6DV>FQ!UBjI42kR|JfdF7Lwf- z)XBMI7iufVyE$xP*v);7wmZ(%3WArB!<>9(#~@WveA>!9fqEPsnAM}$1)>@z!@!@k zO~!4$&oqc8Q0oZUH}?Z<=qH#wj6_MurVUAruepC1b7w8=urz(dHN?l(&nGu_qyurB z<2}%HGp?fxA-O`kR>X$dZ!of_CJ2nUM~ykHftqb~k>tvHj;sy>DJtqzF7=dOh283@ z-_Ck7@#XBze%zUysXeM$H}2Xo#kw(mPT>DtBaAbC+yK=}>l?h2g0n0LR0b?SWjJeL zuQnq$&wY*Uly#wXoKoKneEr(pwN!XpD~7DStFG!NlC(5q_ESY`ZFoh>%x~$h1CxIl zY@?yaG3^m8EskmIu;wu(SJTzv(QrFUSVlEeqL{WJ1w^cQxUcMTPngAaX75H#Lq?ly zn$hch*Xk>qaiMw&UBNgmT3>trNuMYN2`Z5zzK$p{pFu4#@*dBTTqxfV_NS#g2-QGC zt5rwUFwH4}&9{j*)A*eVjWv9+{qu0|<srxxfTT%0TPE%t;P%mAg|sppPdRkL4t8O! zD#tmFxS|5N)F7R>dXfsyiLQa1LOsD_JsuDfr5Yz`As0XE8t~5hdZaZ&rmS)xR?P@U z6flGj58bS*dQJfxC<Tdg!rFN+c%o>cl)(w3%ZT73?=ao1hNRBYEKSfE*cM@GiHpbW zj+Q&4s>2tFK`a7dGXhJ!;om*fiV<PO-TfujUjlN_c${!hm{nrtm9V=}!0k>s8UJ#+ zzVT>Mj(_>(;`GrMU&51%UrxXN^EZ==U&_<*H(&p`V^@|$-UPx;??frhh;j&lQ9}M& zX1e#@z*r6f#A~gOjdX+VeV&O2LH8fs`ys&V(*vKjwpoY!f?n#rO}QE4*1^&WxUp;e z13w-hey#04{^2RFKGLZFr3+(ODem{OQnv)EKa7mU=j*!*1b5x(@4DA>)=cgE(6Z$( z_hIDidd(y^_H%ijx!br=#xCFn=UYVrQ_Rk4yD6a<?v-1%f29KO*w~zI<%6I-ZR!!P z=vs@ZX!lK@5l?mHEMi?)%1+sYdK)iX-D&vpz;idV;G#(~?(U;65W-ntd!f+Vp2!J5 z*BHF04(ujlmNwd}K|f^UTVi&FknT81&X^}Fj9GoS#igUb&jMt-5Eo-|1wbowYYCJ# z()s^fTCQbaD4Ufi()b18MLN9-6OwVT3)Di@;=|1i$&V7Ouohi0M>okuI^dx26O!(x zv7xOtQ#jJ-V@rX+cL}KR*?I4b0NU2Efs{(cQdq=Qg#xz?khDaVbcB0nhEP;prN~UC z8VlpkvX;h0B&*S4NertF0VL_N0uT=gBvvxtF%)b}1$Ed(9ZnJvD488V;vJ1ZdNXb< z>9#U3W9Jzl723QVRlzZMz<9erU{%38#o)UdtFT2PU%Ias1~QTuLxU=<CP~BL!zcFw zKzC#v3NOdQx}r6LiWF2Jjnfjfji||+#^WS7o8(2B&*8K(pHA8KiLSuPImH3J&WnqI zm4@N9Hx0u}Xm78iz#~6#d#_G|SJ2+Gy1f_J-gm0K18(o>HLJM~pgpMacWkd^-QmjL zqM!!q2_|3JwZ)2iNLiQ?21SwLQU^4pn2#l|&NSm(GxH2p-AG;veY&{XbVv!8o8VDg zGw!)d{2r%g=M}8n>IxO>&SbD5m1YsffytEq8tSB`FhfU~sElgS(>%s|`Idn?Wglq- zt3d2+md7pb+P)AL^2&6licCkUMQ(LCeXuW9+Lx(qTXP#A=d2X~-)WmPFymex;YU%J zv#A)h9CW%#R)uJDHfN+81bBi%kw3q1r!)8^Pcx4GhjM>3Je?rp%R;DVnFRf@lLyL( zIW9)$x6o%Th$ER%AUjOjx@eCt=_2X$TB-PBy6jThk?ifHAu<-UnL(Xz{M;MCkEXgJ zge=ot-C|3-M|L-}w4zMt&@YTsNGc7{_rQ)m$4sOn&MS%=bp*{!CixYoqW))6<T^Sh zJ~fLv(RiSxA+=y_qXTLHt-<9tL0M^sQ~(DSrF1Yq5ehz8uvbv782x)ciO1&e?{YZ$ z>~XZmU9{mZ@Set>K7rJ3^J&=Q8`d<VJ2e%W5vd>nxk#H6N$yBo1Czw^sBOf?t_Oth zf5$;B&$@Kf#df;KQE=47cK92%z~2zIyyZVe1KneX^$D;jU{LUv0Ks1ZgU|6F3q;HM zZS^FzT$PW4YQ^2uWFJ8<IR1nEde|?p!lutF;Ei4wmk5+Yb(|dF={~OVLOgd{nelf? zmQX=u@Pskv5GJk{_m-78s&UOg5$8+Qmci{7uvq4-)P}=XYkNAr<0l~z%aulY9d%`E zfNPA|xSwxEbB`o5y6U$jFWSe+I=s6yp~Jp1ikhi}JY2r{3O_SU#Jz>_lwX}vF2k@h zh`!x?*#GP=9hcoQKcYfdZNS9PL7AR&-v1?%14V+T08FI}KTcwFUBC*}9BoQJTZ!p( z5h`*5f{0)A4-KB4cv_&+tr4+lBJG0&igWgpg&e~xZzx)FrB_y^S&}2j;SGM#pdHV$ z7p<J-`)+jKSi`<XtpIVuVLTpdS2>o0TGu89%ppFek4z5&w1lDM+Sli508l`$zZ9Le zv+>Q%07G=AMnrzv^(>B91DBxhC8u<NlKbx^z3)wl!i21w+ek2HMM8d1=D8fY+=(zj znfvfF=YHut0YL`uroP875tg5f-9i$_;hc+5{045-vV@@5%g@tRLu_tAkC2Qb{D<D) zm(N<M+CE3|ghrJ4z2&6HQ{FI-YbF~G6?IsR;f;o;K?_==&8xV;OV)CLU&78#oFSM| zK0QH2mP*fpRv;J=`18`^oP#0xD6%d!*cQd(fRcs%#LY##%}tWaWU{s4ur!ev?EI?o za2rq1M}fISj_a@(yo!pCwT#He4P7Al5ydefEE}0r6cWsEt$$F#?@R?e?g!1NwZn3L zVo&`oX1=dyK5Ft$xmKqrZy0y?kJ<jW%{I;^Og2ozU`X);4gmjTx<rjTi@!kuw^{uC zKNkOgJUQ^V`<}%=oln%%-*)ZaH`acPT9cCQcy!)MDDcS2XK5;fsKA53_=C<CyS4W- zdCX91&1s@?bEd49iGz*4&M%-qR`VI=`YYkgGhzGho%ipjX%>M%3#>>(U`yvBIh$iK z!`&KhsSt*t*wI}OsTM#YdT;QYmRk4UeHqgIFpJ3X{{|ID^)t@ZTw9B~lTF>F!Wp1r z|NVa@Mb62nZ$f<BYeZ=X3v?TUj!?+o1V!g8P*hyjvv6Z&aj5%A3EVTcUq(m5HGJLP z>>8H6eUpM6PpeBtUBg*l2t=pxu3^+rYV))P9&|P|Rv4g7xskuYAPTLF;-h=X9$k$r zVo5yxR#GXIjeM`Zc9V>+fnq$4rPKM;IJRS*8b&@E%?q;OE(c<rkH<$N!<j_97c0K2 zA~iiLoGt*t{fnk;C5FuG5tg6J5@D?gXM<C8KC9FZJe5-&<5=omm~a7F!fo6=R00fl zo5O4Ljy5-%XHY7MUasxVK^p3s?084(?k$L?hv@c;BPXSas<xmNvoBk4E?*o^qo)3_ zB~FC{uPrjaz^n7ww}4x4&18rX_jQvGmUPiOs}{~0FV~NKq=cVk<m8!Cqfmd#1hA4a zl9xTk`yhb{Q;^W6E<49{(6zSjE=Q#8eqO@i7XImp>bry^biJ*k(PU)&T(>g)_{^X0 z(hF?g+q|vohuJZZ5<G4YBscyybk=QY-Ij`AFV2!PHr^!{-;OO>nKQCVYh{ATb$BZm zpJ8(2JVAe=gyNi_8RM_>c!J!XJy(s=PV?qqVYygD)Le~s82lP`2Uy5juj3**G+Ofo zd78!-iOQozSIge01Sp<9S+>jtN+>da6LNpuXXm?o^;?je+|fX<zv~YE7mPzJHGRD| z@p#)o09aIh93kxE`$l(qw`-}5V^9k#!tuv*UjaomdT!CFmSHyz2Jpu@3mON4rZ&I| zaVlpAE@VT=i@TpEe{0jpl7{*@uK7RCj{nB9V~zIZTEveu?|<kK{zGYj$Nif}kMQn8 zrv4voOa4{y$MpUir}tH{e2IUoiT-1a|A!I*kNY2<H4c+>_o@F=+ZsoQ%0DLf-#EdD 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 bzge1e)N#Qu14ak%hXJgIa43VLI~e~5@TYXr diff --git a/Lib/ensurepip/_bundled/setuptools-63.2.0-py3-none-any.whl b/Lib/ensurepip/_bundled/setuptools-63.2.0-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..e3b5446eb59cb5ac608742261a3608b412bcff08 GIT binary patch literal 1228000 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%0ArOn0j_l}m+Zh|S^EZc?mEFqD(#d8I z4dzl%$k=2N%BxG#L@T!$+Yz7?JL;U6!!t5RjJsTU80tuxh%alAcYr!+MH)ifJOw4X zscYv)>|wK|wULOpYa~Q~^P(V|f>;#Bs8x-UYFvmuGHQs*lS&?D$L93A<Y*H)X=;;o zjB8Ko-0W;g9${$sA8yVpe`JI1Pj}=+1_~~U&Y13WC|fZ)g>85=iYhuJfd1S?*r5o{ zJuY%Dbl(4%grxi7gFq!h@RE6ikV#6Q$a3eW-G07&!-(im^@p-hpH%~81xwOabR#Hd zG6M7@s^lURLeaJd$C2UfpWU^!x3r-Qh>$kFSAa8HeF=m7MPD}CO(I!KHPP3Ifc_+y zSt^bX5vS323X$q2phg+}%XCB`|KrRZXZGnUK6B)lDL+P}?a+~5zN%*IuA^YSNvymZ zLr*1+k0kZ4%G-9N9m`b<uGjR_0KN~}r&b{p3SHQEV4n|3OBDSVcIac({CdSL{wL#z z3soO0uE@vd&MN1I1z394jriYjl=5zDnc|8(+NnbTC0JFaphDT;lLwtM)-s8!$Q1{# z{Waq9wDq_n#D@0CK>dakX0iJZ%_^asHBF8scV5z@H!i{lsOmCcBY*xIjDr9vs<H>Q zVsoiAPCFRu1Pyp9Z6mhJ3|hKTp#)Nz74<)pg8(%-kb*qRgmRLQPt1k>yUDW6Ylz;< zs#);eslkH*RR|kJ>ej2DxiQ?VeMWKHUNXy}CVZO?0W!@OFp3&MnLeIDZ9~%*=xVt8 z&9XUX_AK|B09lE&8Vo>-Vzf7CANJ5df9`^VVye3Fz+m5P6z|udjrP{3Q+NXxj~`b> zl(c<hVr4;i!n<$mK~TbpVw;C2pL<c(P|su=DKGe|p8V9u7vIaFogy;e2DGi<)H@qD zrnY(QrosB?i^BeTj;)C{CD#c0qtiu=*y2l`tGK9VZ!v2eN0HdvUF%)Vk&oPE!O%O8 zt`V)&D7tIc#NCI7uJ~Q=()l}kl5<lQD5i4rW1?2Z>Dxx%ZB?_aHW}NxW=W{-MTVu> ze0K&wz=~zBMqo6z6xDO{-;=6T-%J54mn2_FJ+mf>B*e0L^jHe>8Dqq^d()Ip9>n~e z63|@^MKCw#{k)spLcksLO<QzjE`hVmxb+G0?0z4j=e@R3Y{i-%hffDi47{1EA?gLH z<sLC+o614@p)eU=+0dopT9{Zu_wT;a7KOyx=ByY;1-AYr4wm3$(V8jkbWhq2`!RcU zv;Mi$YW@dRJ5PG2oJp-htfd!C&DOf~R|unJ3qv%XE==-w7$u_^miD*Dj=6AW*m01C zSx$!YNcYpa^R<~Z>fAZqUi-sENfGMD^RK6EyjwZJUZ9~DKcG3-L0@*@{LW;Gt?j7* zn8H-68*{cWOMl&&)+j%3=(;ZSOBNIV^L^{f3XuS}@S2>_fu)QyQ{0Zr%O8N5x#q3< z<Bv<U{S^+sJ)l@l0I{EbNp|T;L&+(bF$h4L4FS3{_X=Yb(7HkTK)g6OkIMR%{dpVf zE|$q3QT7{OjP}CltV;Harjh7;9ggahaZ9*}`PxAo1X%XFU5xs}4jpVUDeLa;%Oz~7 zg`JQ~z}^0I-sdAT*if<Qors5b)|xwOu-YJ9jGtile-JfamMi1GoFNE$F9@HcAJ1*m zJR&+?cYg>Jx>bL4AVxrvmWiF6=TV%R5S@Yl@}^A&`bMJO(2CARr`8vQL`1}$M`}d+ zGGb7nz-7d}C{S;yTF}}?SysOZqm%mc-Z$APdZXsY8MKec{wCypU~oHN2;TmWhIA-K zsFGVa000S&|65Or>%T;dg`Mqx==@qX|GMN5e`@st=Gl-M5<FZtyR29mmYDBdxYL}t z9caJz&XmIgjaQK;5|eF6X8roi&;Uf@lda_#mu4*(8^o_@QKNjonu&IFghSFr8W7*O zbSBk@70MF@Wkwh?Dz%f*B$FxikO_0{hoYoI-ySuCV1~U?&=fMCT!)wR?eL8mP3rSz zbv4rYvnfXC^ziz)IXSo(kx0L2<(3qeK*2gD7YQksy#IJMF{2rDjvJ~_GN_b99}u2B z7mB2wkcb|rhme%gUR8ldr&?gD{R8&)=}d7)Bzi1l9iIy(S3$!KM)xE;P?IsNIzj^> zHo^6KD!>kBMW0Q%<IkpI44{rd==N!uf_&!%uhvk29u`ig8FWmm7@XshHIYY5uH=8b z*rxp3<7Z4TbSj?RA7KWbJr5bsvEoJo*k2hl&?d3K=fbmkdqGv(D|^^wYmKpGtn7C1 zdU&{eofvt2?r*jiwvg<WFEcohXB7Nd>khoR!k%20xn@=@G?V|uvUu1OSOkc&oy3j& zacISgb~YRzIAKh>VJHY2fXtSyf?hy)b+BRFh3Cff&XtB5@;HHk&4dp*52r=Yl*zzg zuQ4^Rt>8gE0B=Qm(xR^PEJIpW)?+DiI8W>P(P4tAuDkN6Sm~oyqerz{EZp79GZp5@ zr=-?1ri%z=erhJ8oFS>LP%|f-Xw+qpnpRBFF_g}5htEJ*A!<F1m@vZEs@cSk1ZAWQ ztLKzF4qHI;yzapF|C~G48j`diNUxxLPdNGpPLZG6NhA74e)j0vRhkCcl=_uez*rdh zG<cc2+i1mob7ET3a>xDVBBHz~J6-t_Lh}%c@dkhC)at)R$Rp%C5{%GCn<zm0u^{`Q zoFB1Kr%sf(0EB@-fvTld7)uT_$S_}~b5W+JB3s`cJe?_fzi#WYOgjxrZ}mcDv!uLR zs#BEj@7Nn0A3wHtLa2!5R^O;=md`S-f_U=ingVzI>W)geB%fN`bS3%*gjmd5lB^*v zP>2v?hMNSq6}F3~F-UleHc+%k>Cw%}a{fSc9?*05Dp&2Z%3L#`Tg<w96GTPbx9gR= zk4gd`TF_+aqZ8sU_KNNzlvS4=C{{$b*+S053ThA*|6rmhC?+#PtkeN1Fn2SvlcJ(7 zz=(0%M1=TrQos&@T4xMHT4|L?1<RA?2K%cLgL<S0S~^y?fG&2)J5riX1<OeH(~>*a zrlF;oIshjmF2Wi(vjli_n=)=a7Z!v=5I%eU@fpQtPkafBJ!KB$l$bJtJcLT&hwLfE zrb37`%f#|6zZI?i$-ct1-c$SDIa14d!5cmuAmu&vlkLE@J$jw1Xbr<!m(e`<7FyX$ zpi(^~*E!v0$kBy5=3cSXWOyc)S<d9(DS6%p133;&VS%qIL%-B#fkng6eZukf>mke< z274;G9Ut_{pei;)j^9Q}NJB*m*^8*pq`D5HFxL}vhz8v6aCU6*|IOBn%P!ASq&~6( zuTc5f$M0rTW>}%i?0Ih2Qv(Grz?HvSha{ivylf|rx)ILxnEPAf{S~pt$M*uqBXc=M zEytuRUKQ!snvKuQlU~7E00ClT&<n&d``!w+yZtRQZko4xR_my$np7TRIMD}=b$*7H zPt^7eWIY?u2f#-;s_r8dT-(Ix{6leQNJRjCa48=sjVoMkh7-Ba#6Y5=?xHxDyl3Z# zGM@#GB6jo4C!H6r<v{Dk7kf4pwx@daQ4S6e^6_5AW+vvFMJUafO2D;!FKCMYA#s|o zoQzK!GAcL!s8U>;<JR>Q3@tm_^`e5y39r1r_b$fm$9g=Sewh&o$ekk6r~awG)t!Ga zyG*|<K*0WBx+RQ=EUr+{+yXFU4n|Ww+8ES9`3b_QADmgo3K%n?P8%QQ9&ifUKrge` znl?E=eD=8i6aMxub(rV-xxM@I6L;%po__;iJ831I3Y8*eK;z~Lpq3yw!!H~Z$JGA) z^Lj~NoKHUlYkrF*$8CU}wN_QEexeL9sW{Hw74Mf*uK2?uOdnASP9<pQT-YCn*xlB{ z$>MvsQR955LzTTcl~|DTix#4uDmUaDS%G*>RN>ItHRmFTuiFeMa2JZns0(-xDULZ7 zpQY4)1e$jgsqihk&9{u`6>tOT=&#&_k@BxvSGdunqRai6o{9dbmX5GKh_Gf}BrbCT zewaKXBhYFZentW$AE~AZg+YUWF#qMWHK$|*A?q0Y?W9l|rzp)&ek1^A#yOzUa$sg! zQJ3({$%(crTgV~GIU}qR9Gj_f2DS~aL|J(=v)WrbzgV&Z%)Bcv1DftQ`yrY=^N3N; z!gd`!>@SP)V^QvQxlN!Bsx{OTdylHe?rWHg5IDXNfUelF2%hFSTMWM$^^r1VMMMi+ z81@NlU_qqj6lIB2Jn#Cn`niZh?eOlbn?bzs;4b>y%4n4^g0aPFod<B(5@VWzG~rkI zL-V{=F|jMsKSF2wf;CKL1c!2KQ>z&-PPfZLiQZ&1Chd17SQ8G8Vq?I34@GE6?I>&_ z?-j3y79*6S)A%|a{yW769NI&($uu6g*7gEU5#RuIezrV){2;DKy`W-}ol{SCiar(? zdZk}*lPFT!L7Gj5HqR;F_vz*Hf!FW*Ig{!4owwa<*aFgT!f&@#Rb`CE=O3B<r+=H8 z5CAhDNa!k?FWR3fn~=;T6Rzg`=rFBPy9J=H+Je)ogZG;^A$rf7Zl<TPdjq{4S=*s4 z?rxJ)Z>iaLRG~IffX|<v2ohD>%l%EYP(e$lUzTfoS@O<Rkck`3z(eC**{cW7Eny1^ zw>8U)Zb9CsQ`ExtneVV7GPy0ng19~j{&79r=2QRM<hfECAnw)R-`ln-kX{cpA1h(J zTzLA^`LJX-&EqxWDz^H7$$VGmNt+_2x}BiE^2(3a;Nng$OVc91p9Oo}MHUZo`VZ(I zQAsI;Y9mAUb7XcqxINwj8k7pXem%Mq24dZ1tyCloN9ESm%s(yoY9b=)l#Sv9!K&_1 z8jkR*A~<#A<jK<t-7ObBN$`x4MR5c~(hFyZb5|CtneStH(`$2aJbklY8W|^(!Kc}= zv`WU5nJSlF*DvbDrcr~q9PK)PUZTL%J@PhSPdqxOKTgC4UoB*GfU}h&dD;~8n?L!% zkP0#0uU?2GVXzrnm-e!{u_c;ryO#G#VWl|{st`T2ReZRT*I7J&_?ve~Z4&99V3@UH z2S~<XOL?MPE#SdWHy9q4oow0$V5MJpsf@+uGqbLHS_E5{BguK3mzKdKT&%^meN`dG ze2+Aidlxh6Y{+ONe$BO_n9F>X-TJ18e_-8WB|$l#*Mantjj_OAJTB>54Yt^W+ilWI znhQ2u=0aCSRadrYm~sFeGj+ByiO3QH{zZa2Ro$KOU$n;#js2KzmoVQRiPna?x8rx% zk@ZUl>@1R>Dt0}JVm?Eov(7WWA8<O$a4KStF}uWEpgCmPVwQ5<x4Q9{(vh}$JrpIC zZ`dxUjn3pycFfdF>yRr)nTb4F1iNx#2Y-6ZfbYnnR?;tBctG1+CuU2Do_$We9xP&x zq|KhzB)3=pFhA9+o}`0?JvBlW#(uMvErY+>db8djFO#z750Q#T#hi?4h+cidRI}qK zdqtged$1Ib!o!DV0cu$Tc8?(TYz@aQCDxP@Y;IvKSFfEehiAG#pRxPhn%)SV{4qRj zHl}x*-82VMd#uF@a;dV%@jOLXa-BOtTwm4fl6(E)6+_$$1hn>j0`a)-_3LH(2z-qA z4fB7%pL>c|^-F6iZLXz~_enttnALw`kp=HmZH%DJ`?TQ;t-J+!ien~L)f}mWDSW*0 zQ9`oLrj*2GUimqx$lc*kNiTy-zc@ds=&dQO%#(LUf&0Kg%Ll%=kvS9C9obh)QjvHC zuv()Q>*)#<n@cY)&}pjGL(ZW>PUz^*bYij@v~jZJ6(hLV;9(@zuw%{WQmvk0G5ou` zgd<@LSAMxff1qT1F<!_Bn~j*3COWw?OE<k9u$>vHX8jFRawBGFZ<4B%u4<SJbpst0 z&mIh>uH23Z|MY~mC2(T{FPuP|+%EfQVNikqOjRIQI<72@qd}YY9_tU7Jkcx~GdHYM zFVKyAfO$l$h$gR9=Z}?x!U0_}l^x8j<WYMuOdU_e+f@v_?|@dfFjk{_HSyfg6R9I? z`DHVl<$P#ha_aon+N)$Pdo7v;e!Pz=+0mPqZYO%m6-6^vGo~@{sj1~%byOSznzP9` z8vM5=)Rq>ldUWlBS#lRM85C2smHHZfp=l`7HU^cIVF9i2-cCclF88ISF~^fj3Aw5` znXRxc&;$P^sAt=!uci=A-M)^sw#R9XW_2tiu&AJDws3=w>lZ%SO)PiUUR<`KZYjGG zMU^A{nMe0k^MK0(!X)iw&<tBgFffUJ9d6PJWvK&G#{;ZQWQFw73m`umL^3~sd$%V5 zBZIo83zMO$Zabm{j~AXXRF}^PrqB>`CIKqr1PMYp&uqD2`*9D3kwrp<DC3c<HAF<) z&ZPP>BLMK0mg(v2C40A@-{uBHki8FS^vV->vZEJ9d^P-}g9>A)g)wYu`MDv}&X}#- zOAzXh%HA74S$Zd!#W;&>-?UE=e|8D}Bl`T5;GDp63t!Cp7`PIMBk9;{;-ZxhT($Jt zQK|&SNT^n<=h3sl1c10a2GV^0zwn;GJsiEV0;VQ5)N}WqAK{Qx%^V17sr?=S&WT(M z9AlWeekw}JE=`nWj<c*Rq!?g7^H8~7>2*J9JpEp1Di&y|kEToChlCja)ag*4FEv_H z1u~lu@sRzSR}hPA3Q`tQ@`WO;h(^iWDfhaA`}w)J$y?$*_e_Hh6i~jC?Hj`+;_Foc zWo}7_iS)2}UTKAELK4c~flUcTR_n%($^F=Kcwg=F@B!v!OO3DzmT-{WeN#TG@IMFX z-<){IP9Ho>3+b&*h@CT}l_keh>KQ{{P*?KR%xl@Q={zwrrNY|nTSp>ozcP@zJ?rZY z3nbo`Y=kp;GU%c*r*-;71+G0=5zjLtP7_QEF+C8~!)<GQ7B+&jlNW}~s32I_>5Ob3 zhHgBxRr)gq6EvzY!YhhrrtPg<ux6rWo#~OLvEr9Zjb&Y0zBzvpCxA=4Lv}4{2-Zee zp`4M{On0%Qn@(-+yHnH%o%xSe-@9OfY42xQ%-6vnb52<R^M5`IWw)I-Z0Hvb`2RV7 zU0z~10s}MDUbX*DR~lr1kCcg(t=OS6uh+T@oZGp;4Z_o9m#~7}#^6<DkxQR;Ow$s6 zSoBX0aGwt|Bx}x_p`nLtu5WR`hB;(TUmC4())|v=MA<6mn0RHD+Y);ekB+t+g7|zO zAX3L675rl_gah|U1b<xXZLQ30r@PZkRG4v`yoAB10KY&2+t>iB9tG^zzViKdDOpC+ zP+tcI0AP&hf2GoS*c<$l3;vTL_+M1I8jb(28_enjkTaQ86|6{qlspe-P_o)sQA*Vk zug#b^G7AeLA|>jBFSgdM{rb)Ud82(gGM#!V8UkL?z8r7-`AQU7oD&*I^chq_8QxN8 zY}3`G+vt#fv8dlRxmw3+WUJHjb9*>>&SHz+e&9B)Lg>1$eZWWYysr^2;;-NzrIxoQ zQ*792vY9-Teq-G#7NqYm*oiIEGH8-!#J$xZR1AS}%(=%8HNM-Q4pP_5y6zXBka-za z3OMFHl$4;`+Z*>jKTZf|%1s!SfrlK4ZNhOj2r_9fqhAj69uPtu-Xl}z7|9K^CVPx7 z5j3&bLqNld>ZX5<!95P74-XWCWSD=EA7)i!2RpY+0t|xr);k*_dFO;)o&`nY!+*Kt z2G&5>Kw`Kavgl2rP$Gnm5Cgb=j<AAx#vBJs3YN}78C`75b7i#511sG;vVd+FTnkI3 z&q;mPaL?Em!eV8FK1PZKZ)m`q?^v#I-GglMrojv0O}_V{W-_;CCa@!JNs6LqIb<Kq zyt1tZyRT=l%cdfsQ4SRc-wPKm)ii(YCMp_k8A^SeTKRV0ub)WVrakGCrp<<8MW<uH zUBB{e?9AP*L06?7ZCU|i?K3{y0DD<7b`?N%^X<`LpCZZn$67ma<#eF6X3fZvyQL*< zqI$vQGJ8bHlC>qJs@Ium84uhT9_W>#?{GjpUBi#w{Rbji0n5^nRb@KxglIK#<<hMt zJ#|~U58U3Nu|1Unqty1lw`T0p=8ttcoK|H=AP$<$)}uF`y1aL;9ErKL4-Hwp_xAlX zVCd-7ZMb}Y8U(!W0lpr+EsI59{p8PJ$C0zOc4g?r(Btsj#r8(^G$`2rZYh$8XCJ+N zw`9yqu$et=S^*MjoU!axSIN31lNvKU95I#%?a-bk@Q04#ahd_;GK<|85+$1%D0+ZJ zUC_8mm93czVag5MN^E7*k(h1KMw7Vgyo!eTM~o26LiCkg_Xr0O8<uYu0XjdWO6tqP zXB8mN4GGgWJXYP4Lf+rv{Pg=#M?D@42n4hU9iJ7(1cr|%=ax{M=)ti#F98y+4$Vzn zND`$CN4%mzY1t^kJa3;<v|WVbK!`lGd;R-J8Omw`Q-HxAib#U8#eGCEn+H%&{@Wk2 z4P0o+V$+(&@xaR~xC0pkRIq1Z?GT-pz6nf|2MAEnV7}x_OnZ>gMr0@io-Npkidfw! zU;MyuH=)2k<}#@Sv!=V>V?D-H19>hR3YbSd0}*VWFG%Rm@P{_U3n*%f#~UY(`ce~} z_>eeIb<r1*c6|?19)iCs&El*Nz23-N8pSwjun<P4A0ie_0}d{zEi$ZQ;M$GVYsx2Y zmUy@eEhr3ZIm87w7-I^_T%t>^<)sWx|CVoEl_ML}o)r!c8a-{<;fjwQ0kV>BvaoVU zmO@t!FIE?)r-#HxX-qm!8?8|1bsIPdKrUATT`Mf|tiCG7RtwY)u(llM9`z;vBhBmq zq}3bQ!ZdqJrE$W@-P2M7nlB4Er4ZIcnCLF8I=pat$apM8<F!$`X;Gk_tggB$?F_In zjTJAeN9ZLI<_hrV8c`1#dKaf7MzQyrk0))<dE<Uo8d`P-aJwZs!L`Fm*6t*1h>#+x zo!>;(v2ti8Q8l-NBr>Pl2rrKLeB4xw^}ERI>~Lg(Y-lYQ{~?-My#+-?I)zlg*muUj zn);AeFRXl_G<gsMd8_;+3yGcJh=Ie?PBCzV8?lo7bWgR|`J4w5L%6?7bQ$OS^z0hO z<j^F(5}N7xzz?S<rwqK*lpXi`@T>-S-h6a@9J@-p(8!TM8P^oDN?I;H5*i2CFv4)y zlBQ-*&C9R?=f0o2ACHp9KT<JblR<R8kQ{g6&X}F(LGx9yA0)<ro3=!OuS8~Fi<`=` zP;myhe0$$}d4U2WViC%oM;aFeK!_sYI;mf%tf38egz4IMGa{X*Bmgv6n%fMNTd@TA z5Cj5fc|~1JCVB_JtunYMVZp-sBad-B7s#1`Te)#w3``ASTm*Y-B%L8E!`~>nobXXp zi009Xc7j)g5{sp<<*q{E!PuC7xUp8av_;oc`}8%!W%0Yg7eYB-p?Ppqx2&b8=-Trs z06<{IXePxx$dy=Sl=x(ElSs9LFkB$a9WoW6ODPnB(i1{aS$&wP%&{!1E5|#Kz41$; z2s9Y9TDrv|1v5q&EM0U3S(WbmR37t7g+;G?4OOrW`o`do7Z7!hwGu?W-6Ugv9t)!| zFrUPtk)fC?qZv6M))@fva>{SK#>813Vanr^XsKY6Ri`0tlwoNF>;3=%dVL=psH>VR z9)7wcb`8WqRBo{cC_n=-D?)RTOS+#aBP*ur8ZEF1X^O(WQj#vOP9b@BG)d--Wl#j7 z20}Q~oyUANORBOA=syhYsEwp_Fc?4^5CsftkAMsi%s9LlGQ;j3D5O~9fJh53nJrbh zFBz^%Ed86});8KlCfOH-{#CzS{gC&gJi{7m;95AF3H@8E%m!pNWs-K2s?(b5a=p=D z45lH@FNlRp1}W2f74|HEV7g)8gPh@C{GIVbPha=S0g8h>6Hmz<<{^ArxE|%zA>@qW zrE`VgG7$MpNWc9|Q&o$>IDa8wh1NA9XNYMRDVo1Vl^!AXLrH%}VyOZ{r+0nv&UXjG zH<@zJb%<)JXQtUKG<}3-45EgrV8;TfzSZuz)$`FxfKjcXcTYU{dVhvz=TqE)nH`sP zVXt<+eXxFwOBi<c1NR9ks2twz`BPWn3C4y7$}F$vE#ClTKZWr6d7=Au8$)BX(+KBW zprqKaE!es<|1_79gku)*C4rpc{=R(H?_#7ZqoNehLJukY0#Vi$%`t|@5$s*Hp;`FE z+8vA)(6ZkX9dGpo4F@N8K?t8wIdvNhU9d;1;Ke73=?QCXJmt*jZe4kGHFJatRav1} zn&|!Zk4j8FX{~47%I<#k->9AjjVfxcq^vT#_Bg9BUQZ4nI)C|75h?byqs-Y{*(8eW zxHiY=s_Z=+vK|Pq0}Xcz9o7^W2Sb^w6Hc)Gk>U0tWVofv!MJ%&<N@jm42AOUZzEML z7rle_%rr6i^Om&TgZ<1x9j*f;FM=-DWMkP7GmnjW;dmJjhmrXQC$%Kxpg+mCM25jx zq0HLV3=|62ZbX@_jU_Sdv%mL^8oe-M8uLx(HXlM$m%3cKph~P^lUSxr7rkgcE#ibX zX~8<nRxAANLbmN>CygxkA{0rts0;w(mdFGU6AWw&bAAiAWQ8@^s=04WWE3y=x0=&8 zD`DZR?j4zon<{pGU$FJV3U{;7EXAN^2*9vz*3%}qauE+Z*~_3D>9*+n9jimD|0O@G zo~37cD^rnFN`@gqId<VeC2s>6cd5-k)0kGD#&84tm-uD*&~-w@Pdi}&zA9sy)Io%y zN1vm+zoq7@bhY6lHqlxSmiAdh>+KdRIr*RxTX!ObJIw%B#jv*gnHDT*9qsAV|Fz($ zH+gs#@a#$UFJ|lPHpjZM=f7u1_bf=cHyN1A)sEun;?k8NYizZtD%2j*;7^aMl|y6c zZF`<+%)AelI?S>Z)#aMrFtcn#A1x*kudCs9lhwd!<=@cCE$alj1&*+9u1M7m5v_~Y z{-0-)DP4q;MY|NLcM)YOzg0FZq%0B}f^KY$d-B@ptO>x+koCw@$NDcsVk(Uo=CaU7 zuR-4ovX86d_L6wqY&1FJl;_*?SUnib0?}O<3ufzyN;}6HX3D;2Ewya1N|CeZUOg}r zF5Fukx@5_Aj9u1<v)V(_86mAUxDc&wSY>03)jZ4@R}JJ&b%bS#i-~N;>0^sYE5pR6 zrl++6s~xh)vDTB|K_4Tx`l4>~j;B2(g#g^zzsW)iATc@awwe-`e+@9<spoTaTF9-= zZ?%@^z7k&Xh^_fCe1<4}t*SF)NhGyHbcXxDjU?arTgvCagv-w*`2(TY?bwH<@fq=e zGpKaLe)K7=57Rt&tZc%amT~o}A8V{U8$AnIiE4{sf-b|9J>#oSlDJ<o2hz@7XM7Kz zMfoWS-^rz&%QMr1+nYO|0Om`cL5RL>P&7MbZp*Lng0m$nmMTR(YtKgm7afgL6OA7= z|F){EOtu)u@7O+nsQ=N@(@3<aFVXUsnhU3`#bi0PX(}z~fXmfkrs$^NWj2|xXjhq9 zb$f%90f*LXAtwTGBFbI1y=+zndulYh%++GHFM8vun^LK(`PcVc&}$67k)(C{@>ysB zy$WdPW|vFLNi$!$0tmSDw4h3po&|i2iEJlP;Jy>W&Uy5FVS4dYu-Oi5=|k<W?c)M* zM6$2p=JL2*7Ge5G*+yQ=)de2*VH|e7Lvr;(8%*Kct^#J}dz}c6xa=0)^awlr7nT0N z8L%`v{be9(NgxdhD9wQi^a)9g#r%~Wl<Ncbt7U8vl->7cC`M=u73r0RTcQ4^83x0L zR%P2&0H+lS6W>{k=_V-b7?3mim&{%r5R2Bzd|sXY(@WldM;IvQmCa>Sje<*+XL3mo z=-Er+olIQXyYYWk2jhbnSV)2c0N`N!ugBg0+R_Y+od4Z+|HJZgt*-SCf`RJ$TDM2u zFFea>yYynPR{;!S1IpEJyD7j$gDQZ(#AxDFs3kEOkuc%6dy6gE_%BWPF(39vmESOe zo0~iBR(l+nz^E+hZ|u~JetbIN|KsZ%n{#cVFdN&pZQHi(oY=PQ<ivJzV%xTDJh5%g zTk~ORW~yfX!rgaQ@7{gwwNOpmaI2Ca!)7N3x$X^cs%EnRS=G)wc2EZ-_;3(TG&ShA z53Y|42`i>VcVNQ(efe>8vSwl`Sjs3}=7))nVM-k}u_*SX93ls$K#0gwZ0fMxW7gXb z2kBulVrb`jT~shNGRcYKDZ1z}k*jduvrnGVhahw|(xeuy7}CW%=JQF&G0gO-k7`j? z=~P!N{_Q{y@*@r`EtRy`GtEiDLufMYC5utxuxn<Gxy55tx}~$hE{gT_fMwE~n1=;5 z>xlF!x!ro(ve;!u;k`Qc-vXxss*?bAh4Ffwbf);F%*KNgZDsC1m3mCu*0Z41?vh&& zz)v})R!*Y!7(z10Hs}3au#g}_dT#oRES?VAhc9lNa8gNfou25(u_Wgt{jAdwenLO0 zrJ<6y2I1tZz$)*J35rs*(kqOq5YZWo3sPfxCH1AzZbc^1K{Qigv)Y2W>GgkA+w2kD z*Cx+QhyG|=q%rv*pQ1snwIZSx-MNTyq6x~2_lBhQ#9uMNYnfs}ZL81rC)Xms+z4Qa zy8Z1JXd$&3wl%Akw^qxX)Dq|1tP%N$te@eG!@<;sXuDyq5Emnv{C00)R=rM1tk9Zj zRxu%--RN|@lTgzjSEsSpPy)Gy6?VRBgg(ukn8wc3T?_{cNib+qpZ2O`N$tA7c{-O1 z9coy6|I!e_V$ZZ~NY%t<dhTF~L8^1-f@mhyAbqe7t(ZQ6oiNDm-(x6gn>y7TvI{&x z;fvN27e|4>oSPjU(XNkBoojX+wa%I99)ge{HtxT6NV1_l>eB0B{gns|6=T8ksWs?h z@_au?^}K&bEr`3vh5PS~T>w2Di*TVI3eUyA>%yx+La4?t*Nx(!(dk1yCbC+q>P%Lh z%WTL$Z%bH=aTFS}I}IdCLzZB+q@z{9jP*Sjo9Q*|j%Q=++l}Z17lt89j@`RIH9C6s zuvsTCz4pG{^DoA?c?+;dwU=kmaw)y!t3^Am4tf+74e72mE+*Faj<L-lWs;#AI#Bf| zN2#sUR=Q!+B4^4vXzMJ(5Mkj5YI#Ucq)TMpRPw~VbO;j+6q#crb6pNhLWwqr`G1HZ zG<w%Bs7<5Rbt*K>60{POp1^bW2XB4LO*s%=*+ZAkWLe$1y3;JU<Ov(}9dj!&GFIgb zgCD>~s?EQ#1H~(j>}R)(8Ou{f^b#2kdFa9#X`$*z+{u6YbYfkLl;Za3N1gLhb$Yjv zVT$({ng1r*szYl2)HnVGJdd@Nv7%(`{`X`EP3T6}Bm7_Z-;^HWp^RcwS~6Zw1(wK# zFrO|JKL$|`lJn|WO;^$eB{%7HtJJ-#^*{F11(pEDnzc)aYmAn@MoI&~3M#=UcSa<` zCQ}i#IGxrNuW6&4`G<L7T(5kKWu?JASP4*?KNBA>Wkn>?IT-7E4P-|<S1_@dNzy-< zS6}1VC;WVnCY{MH3?yPF&dt*ayABv2^HkN=G@S&aYN8_^?T&nH(k3;qf!{pISiz_j zdAYd2gy`VE7a}pIKLkk4FULe#BvfpI)d#ixr!er^&))R<QZA~GTr6noz>ktwE=&#K zO0gbS)gUJ7A+2C5I?B8L=s5T0a?)|V*gS6`!O~b>5EPY!Bph3;#8K&^JYd`e{V`Xg zgyUU>zk$-`f?Hs8OT_0cv{M)Dgr<S`XQ<ostF_z{<v`k=X=|p@#>4>^li&`zS7_I6 zQxy`4o$9Ky5%%+Tbs)G<))esVg`i!k_@@`wtNB4`yqJfOfZ&CvX$`hV;5yDXP_~2I zSBP@^pW2d<)e{L9KXTo$ixWv+pZ`msc!E|Mtx|$PH0B#Gb}pYtz=a0TE6n5(c-@ZV zX~bqjElUPAfKi3pZR48`6C%SZ9_R`0tqGS@qP~9IinilrwQPrX_Yc)u<Xxx7Ypf+0 z?g9Ju66<wJcswv~9IBtB6#VGpJ>4&{fZpYU338HWK#Wd{G1hd<2*o-B#WqVwY7(pv zUgG9M2;bs<sIsP1<5>M(MtZo;;Oqx;!>u+<VZ^h#9P>W>2`J~D@02sCX;~>7EE%%G zEWL~m1Xyw8nqN9HVN684_J*l$RqLm3f|-@G&3gEu>UF374m<7KhP`cTL$gCU{zkY` zU3NckEKdCOk10A&+S1waa2pehxF@3cQbDX!(S+@pn}a#y&}E_);s(N#1jc?x)iriQ zioB%!Y3oe~Qw8e}_~J?Ao`4e+yWGdiqO|OEgdk5o%a{N*zhM`e(8XDfUp5fJ{zLeu z<6f%)3!W~aDEcdiLBUk`5<0!5rl9gHq}tQ^!Y;t|*Rfvx>W0!~j(W+0@&oUElKa*0 zy2Fc+(z}&mQ@!r6xu+@uapW?8MmFl_O*uy4{6Jy^q2SVWK~GflC%;L}ZY39DKmqqV zDE@?Jf$E*AC2iA;EYm=G_a%B;!){9n1nP{uj46QBGd449P$=mPOA>vZDGi--OkT6V zZU^?YlL4gacGTbY*^D|*&tLcAwz5yK>_*e~tJ}4Yqa_3TJMhnTp`Q%$^SGtW>95%R zSNy}tO7U9LFD5%cSaJcDKcwsPV|rm1q_u`?Po)hKs?xbg;MJ9N;Rg8otoB$C*{-pp zOwLuP?C;_0>1{xvsC5+SyI$F*UFeSKBS}lh2gViav(VD6+hPBn_7{Lr{NJ~1lJH#1 zpSI<@C)`=lB?SsR$Ht<n8`jr<Qrv0owXu-D{}+Zi>e$Tx6afe*k_8Be`u`n4{$CY| ziG!Wp|4f_B;8=NVaXfSdfT!&)o6@Ni`I4>jxGzz7P58`=);YB~&{DIAiC}Pc%ZN0t zjDKJAf*JrxPq=ULXK0~7_UmO}Ps4S{=1@Tu%|~nUHj%+Z9*aSf8X!qRQ!2Ww=e#q^ zE`nUK?7{NQZb#jgc8glJXNfVxQsx*~c*GNy!a1;lF&xMG2uHQG?`>>skXwO)BIh@S z(y4IhzJ>0LLd&W$!l?cMnTM^5BHXDTcD0<0JX~TUCk``XI%0Ajf&%}CD&ZH9I(O>A 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%0Ai_P^SPM*) zFr4@4_gb^!q6aT=v)lbf-e<PTO2-xM-&p&_p%EXt@6YJBIj)+GaX*HPM3NoC^O@np zAk_^N6}Zt6P~Ns#TNP)lu3qR08J}r7G6RGW=YKMgT6A9KqwmNrt6%);(q@}un^PSN zWJUMY`7?tO>hPb>mf2bFZpJJs$Fa;8I1Z0sWm$O!5*8QA+$#SY>-J1WGq!ZxlK06} zQj8&Hui{mm5Brl4twJCg6SgeT&eZ)JO&`7w{P)SGYRlAqb51yewg5<h;xe3>)>Vm_ zhax?jYHKjj>1f{8koeNg%g>IhyE`sZEjF5eH8{r;tkORVYwSIfoKMSfY2QJGpcbLN zY#x4!56}uC3$C~chSy3_QV^&3p<6?B;CzEkG4n%T+-ADRc0vDE;){UAvWP%1AO~W@ z$HdmFHYq;vA)viEBp)*<hiTwSB!&yZRbJsT*C+QOpSYfVM>ramekVAQjvJQNSiwn- zn8mg+SYe4KN0`5Bk1`d)3C3Q3_^t#^SQ>D{7CgX;2}*=%mK)n$zAy);@E{GMsy?s= zr~9y~^yHrsQ+BpfdLK-qLln=T6!v_<&xRxFvplf#IHaMTo0&<O)!>Q!vHAy>F&{B# z3e>#@IgICnb5iO1(za%?+%7a7f%BXn*NFhdY2LO5^GvGANR{K8a;g!D(UtTnTH1*q z)>Ib0obZ|rdFJ>O!R^$rk0olyOw8h}{?8Wlt-&!YlM}ZskkZ`@+0QiW+=|Api1A`! zcBHTcgM%Fu9D<>Z67*^_20F0DIIL~96(~IrCo3AJR}bT>(^AC%$067EE08y2{r*4Q zUGy}#$-L_{(B@%1H2InP;(hj*>Jj^4)1E{fBYPFGD8A>qt6yw!@TT}=pE2U*Tvsz8 zCNH!C4*{XgAvwgqK&=zzsux4pgiVJit(}KnZ?+E8Hyj<OtN$@`d3qk}PEc&nzEQaL zLPECdl&3NDU`f;a_x{6uS@gsg-F5x8NZf*h5(5Pw+{y3;dzx0#EV=8}+IXU1Fb?Fo zj*Fiuu^c>++wf&#h7Cq_)5XpQIKgyDoo6QZjAQ*h6`!$B!g&TkUY&kxmNCdma$p4h zDx$}dCFu5K^UbZOXjQr`-Klmuf~>gkF<!sq5e1j`!S!vcr~o+<87MahYSB~E6+3Vq zXm~p#C&r=G6~Kn{e@=Mm0jRm~TXuQt3m_iL|52L`{%5S_Ld_}X+0W+>{|?PVj%;FB z#8jY=h-P|Z*g_TKz6Fhse;HL#k!wgZId*dFy+32SFhuH4A`_bIg9sj8@u41XWfF3C z%|pPb!@km0m~wv*F}mm8`8D5sbSG5vL4_@WGAZCLOslV!vPZte=PK|F%9>YpL4kM- z_$w!t7I0wX0CGpb0YvP3&*TdoseB(xy1SMDp%yjR;b>@qP9>^|&sla1OZFv2FqHK7 zz&zfHgB78GUS7)IRWxZn9aDmuj)zmj0;lNT^RTM3?Kdp=`@E188t#p#23gl1hgQQr zS6{25zipV3)fJaKOD?BD*7~+^{Cb7qGwlO%K@5WZ@&lr)@c{{&sMtM$@>E|I%xUaN zQYPK6B<Q7RQLtty6EK{MibMg7o=2RLA?;D)9NyQC2B~QbSwE<)L~h@J`;*5~Z)zb^ zlrZn6GQcXba$ZmLL)>tIpnP1A)u0ML7#~g+Eh>grs%6KWpZbvrL3N#JAv!#sZk5Bh z^8obKS>b5d$Di2^Zxk*q+hzDVnBehYN|y5v!U~E|D<hJ>ZGT*ut2R0Ju{OSgHL@b0 zm2qlx--gYM>B6RDqWE5Fl$Gx&(^LSlqmf^6{wm-OT?7dJ0u*cc)vLZrk~(X$O$T9n z?KUv!{rTk3QL1B*ed}$xx5z)yW(YdDccsb=l@lB_*jvRUmPm#CBFh{C_Sl9F2?9|* zCqfMBUV6ey$4v(grXZgb_#DIXApd-b7aN#mAc2sF94Y2Vh3gWtRQp%O<=%7(pfBj^ zHHEiY3xK9%bUae)-ZU+z<wCubLXkV(t4PzzD(-0L4LV(9O;hg-2IJ+j>(K+zwjV6Y z36MW@iJ)9;<As-X`i}rT4&A7c%+Bp}PRt>J2?Y_`>lSU-!LJw%5iQ^H4YA6R)%qGN zgv!>scxF<9y>(6;Vq5?v-xdv6iDG=wol8D!x<yJ{US800wh-cpZ((TD1&YeENp$|^ zIhG^&G)ods6J0?uXL+&it?e7hvJ4k<dK3$K^FGNjETR=*6NZ~q^*_$7LKBfBHB`bW zV4vF4AWnl+c+k;bOK1wZch|;D3Eh+AFP2EfZjt2=@j^!YN2uI17c2?A5RQ`xi*#4k zqL=Q#=}CB4WuYO{<Vh5Y<p>-F==tZP4jnyLriT%d;oJpQ3$GO!;^t}9(3sG1JunKl zgj~s?rh6yK<C>NZ`2;JInIR>@x3+_wZM_OM4amb=8qnC$eNH1imaiv!)sEL>m05Q7 z`2pbEcOe|U=jkNt@16BeF#+1Me_pLQr=vh)g(ZnS1ifJn#eklpC49u)HHl!fxw!pt zsD{uzA(0%j8#kYGUc#yoY(oD|63F5dUAO-9yJZV^vYmZ8b(Mi@N(e(OO<6qHp821L z;bCoaLhX=y|JfVYd#f;*D+nY(w9lS#NqWq}_w)qQr7|cX@)h$Db}x)o;Pom_7p=db z(_l=^LuW^OV-%wY!S77C7P)Vs@piCvj1L-)WM@ec&#x0qrpsmhDqbb8C8dcRM%J{6 zzJ$%^(Nkt>VQygO*U|b{ywNLF<JnvD0Gz00_Cf6@_z=n#2!nqmY@d*p9zj3HpfU$G zK{nH(VS5;qEpr21i)ZxNu;8kr%rfFq*?Y^r=}<0Hmwu$JTL>;<y=cAMwmA!igicWk z)M)^&66U$)5*=qELVN(Na=YO2qjD?pex%(Pt$zc3B5|BAS{RrnfYciY?Aez9whLyj z$%qvz64ZY|cNhS@4%}3cr2<StE+n?nHz^8}=wgg<Bi!=~tDSM1ZMYlkAY~oNl|(j= zvgR)?KDavANwb*PM!i_Rn_`Oka1*A}rpvn?BRX-9jI%Erh!AJ@qKVU+rS)rK@HD~X zNN;b!Jk?@zcg`1DK}Z8}6ARoh6-!?HJ_2zGeC6`s9rn|9A&8fAz=1ZW@|ENsnn#|o z?VmWG>rDP1iiYGkHmiq@$$eY1s2oDhY!&;MFKjuhz!X;2OsK{`1Il$T>&fT-h1>&n zwe_9T7&-gU)J#NPiQoXU0bz{#=*wTmG@*LMS0_Ih75a6+y>E0Gev$Bo3A%J@%~;-t zrpm2Tu^OIQrGP~lBcCEUI4o~)bvpa#GdM~Er0hPN*02_f3?g-t2DMM92+B!ipM*$Q z!99x+t93{#Kt~8kj;}%Bj(GISky|$)UVH{De^;U`v;z&nN+8g~w25)@Dm~}Uv2xbA z{4s%qF;5X!Huu&p7;H*&{&|Aty_OU9G@LVHaBc)gSg%DA@1xM0pea?T?{PUxUScLe zjlNl_4aa0S^T=E|5n&><xEKW;2f|Ic%?ED>*e2))3Uv2eFkrxbBjq%kUVrLwJF6RI zOoBHfc%r|~<5gw09vKn(us!U|(eW?c_J@WHsU-Y0p|C<!10LEm6IZso@*-7N7s$Bm z)4}uU9eyJix^h}F(js;;mR)cH66rn&REZb*TwxpNz5sz+=WC?hBf#p_yNiy#sD`Ad z(MY<5q-l_rY(XMcvFCu2U}#n%ai2IZcPT;WDWDm|g{ksSzuP+fXuS$c$Q<6$f_tY^ zgs8Bz<BS?7>~(XYk%E17S>*iOL1efdz2R-0P4b9i>jwM8L7N3*LG(awE}@jRe+}%O zgrQbgkJul(s8}O~`;SyeAD-Flq-QSb3mp|Hqb?w*=po`A@BI^iQWCqB|HX*x{ts=X zx%hgWu4%o5`<W<IL7W70{6W9>7DNWIckjw3&w@^ojP@}81tn?L98yF2JrBulc$fu6 zO!~meE`sKR9h=g?KE5GvUT`5Wc$ifWQk!tjeUTO~>+&#Lj;g**82nWrYfL~!ku^W$ z2gsO0zG+IQDKr6Al2hyjw>Xl$dGI2Vgo^p+SZs+gG+(@(s2Gni-Q_XOO#8{>2X|TJ zCqAVH@No_oYtfe6jw6BSyB^YZTDgvq><p4Ep8kBaO-2e8FAM9j535OkMy)e!unYn` zRIc=(gMoZN0F+V>CnKr!uO+hB3QQ8QcR(O}V$!m#R7E;5yv)`iUs4z!iw6)F^tI?k zsfs&8oT30@@P~SB<i{bjP{SHc9ij5c{(vyb`faAkgFe}g)}byLv*+`~WZP3NnT%!A z*k$zV9k-F(7@?j<kZ6q63O}3MBtH~Su|#chL;irem3`5kYy4dp+s<|zOAicuq7P#L zCmf^N6O7n+!8WgL>fI6cFPq6iMrE?7_;NdbpjZbC0v$!(SDHZrF<P)g11~heKhxz{ zrE7tzjosBG_gP~u9=aY^*(*)gEX&_l%FI>NLUqT(tb5xgU><7n(p@qUg7m>T0s^m8 zD~;>Y6y;sNY!n%S>H;P%)!ffUWTlf<m9?I+$_J+t!jxsv|9Y&7;T08Wn50A+DBAO5 z!{&a3T9WNtfj-TCUeP)}YF>&7aai%JEc(s*$LwX}n%C)Kd=U%dj%7%hie4<L)PRkR z=B}SE;J-d;0uP)yYY!M0Lc!iP=^GWnzjhmlX$&+l|9wfE-mgf$2{;d4@3G9I)o}Zp z-7Vz2ja#~+9_^(?XA(oiwi{P~j4~nQ3@!r;i?=;XM+RU3@#W@Mb&m&$tPsMpQVS8K z=f%q^N|IBOqM#;1L636;1D`lWW~L(OPeUg6)VKn1oeQ{*33HUs?2yZi_|wn&x7(-S z?mt;=O+Sp;5tnM337q^~X1;hz-BP^Rku`fBqq$opibB-8_c0u2ey9_OOjrC~^_KRS zrL_XEfwX{nfFMB&*kJ$be<1s_0l)wVAWHyVm^<*kPQd7Y#~nbZ-|_H-*n}v3z;}#& zg#aEv4#XOQJ#-#e9$p@Vpl^ub5<mrD3M2|b3-<Qk-@E}t9}YkQzz=Z-j>-2Qk7Ely z9x@)@0H_Rj4gQX|FB5PJ!V1y^;tT@XiDgRMXYKE`U8bF2xB{FEum*RB-6Qkg1>l04 zgTEo?;Sj<~erf{d0k28ZmcP3pig=Hi?szP(KzL4;?Xebm)sLawkD;;aY(j2o8Qv;} z30w+;sg^70nlT<mM3v)o(=1jG)y2aZ%vKgP?OopTb#`4kmFq(pK7*_*6IgGfq{)tA z9vO+sQ=?f?J$q*VWgdSGB=W{MplB;<2?KMjG_{PuDk+}!KUtWN8p8)O9&KmVG)?IU z|J_!~v7)0jI!(42aIEqaT#{rmNc&roHEtq}MPn4&%O#7i0_r#SPZnx0;dE0{*DS?e zOza5>fgHFVYB`!V9xA!w*t44-;P*(3MG{dJ!A_5$%=juQZi*F@mxx`&fjOKJ$aZIx z7Gr|5U+Rx3i&&`WU+6F3ZSo=)WtOIWAjO4TE{l(dS%ititITEDB+YkHQcrX^vWv@Y zcu-U~u2N!IvdzrrJu;<jw(aUQbj5SBh2^ojt>kn%-Alnu{-=}hX6MuS9tH*ZSt=?K zWB0cYd2qpGBzdXnDSE2vcwIoVp4n{qf~};v-Q(oT1uP^LA}UfwdJ?}OwQ=hM4u^y9 zYwRSFPJ5iau?MtsNkdCxAfx*32T*9HoL+qQi%cHbj-y43l#`0+jWYe?kQ6zQRAtK2 zVPVR?s5+EzD#ky1FD6#pp0+ZPQWr988nbRm*KCPtit23pk!WIJu>_%?-ZU(O@!rK8 zF$sGg^$-4|XeKT?gNK^4N7RU#hK72Itv-a&7+Ur?<1Y%V49Z($ReM|XaK47BWgwBJ z!3wE4uL%ZPO>;(7CTobIS><xpB)UxoiZv~B=EO8(os5PGy^QkPk*`&INfr$aO|x+L zx@y%p#8H$?wdoiLew0)e7piuo{!-Z<59@u9xqW;qk<C4FE<+d{CGBe3#N_m_RTR6$ z1E-bYIJX>>ar2I>5n3v0Lr6)%K$z4^|2ZZ>50dCOEEStoyUSh8y6S|ck3)8$=9DF& zrGo_*jEm14Y`c+5)rn&bB>z8extj7aNSL5h;jEi6Iy!oi+?y&Mr>Lq{i--0^orMxm zg+)STvg4|hNt67CyEssCbTlm4kfs}r+s^u(qeptG;}taXiAmXZ(*+$yfUKA=+{vb% z8=M7$-S%|Tqw=DKS0k9evxQWR$4pFX7(}ZiEr^rw7dXrq%HVD6h<#1)6!#A$YMPu0 zs&=&7tjk4Pex0*qFI-8cfOUr>`z`nRiD3sbyk&3C+=OFEK|lOJ4k;4T&X(b$zOGi_ z;!F0NBBxhU#B%1ZF4NC5`6Jbf3su)?`YOiB#}L})SXVu44-O{N8gtJs^+>y!WY%9y z*AQ!<Dku+5Xnb63zc*JTl;d;_6j1`PPVX}bJ2ru#^vQZcT&nT|33#-C_42klP>cfM zD?8j99Vqo!xVHW$65j{Ku(345O9T1<JsLVH_J4JVIEUg0IIG6GqlQC{c0EU46Jb)( z!w4;~r#cK;X<+hp&Y&#O`HZVtT6!6?mdr3xbST8cUDx%&@}8Isn15%}S;8~{myg^u zs?|fFNNtG_GSVE$TQJ9wQcr7gi-AEgtXfs#MG*c@6*yG<3ZZ80Z(WP0>rk`M_wQ!> zvvHricCQ}31E(HgvyVyqvjOazg)P!Jv||ktHgUF%A)ugrkvh7%aFAl+8__M;8oFlN z*fvuQ{hlyU4fEmZ0j!PIZ0wT5eGNK_ig}8lHncRGihoX8@qaJFI&MOLrXPNE@m!zv znH8m1KPx*%a{Z#Ea|OoXe%?!VPaY|{`vnxVrUg3Qf1!NUUoHB7pCIF5f40wN?LZ~L ze~UQYI5>fSc6xi&{JvlU1a>)g>u_osH0*v~ajI_(y2CysAqUMXw@hm*e4k3$Vzqvl zPG|9Ve}-Zyay>mySvp+>J|9ng@4sLeZage*Cu_StHhNZnum9P7T}=D=U9R@NU*GQR z`0efG@Af|4c-{Ibs{6I=j}c&J#^Uq%9vl%UWZUvT?yo!feViSpD)4_-J<sO)&Aa|g z)^7YhJcH#Q3g~42zE8L6V*GlRe|F~V^i1yl&iR@2eY>%U4zloa3?Y6OUjD|>|Mq4R z;qiav7JMfq8AU}IIjs5{KJ0O58~Nvg6R`KkF=5_JO?En=<QGSShemK9=3u^Y4#2a> z$gFzh{sU?aj<YynUOB{?tv;O43~kS)A@<lpXkzZTH(3$hN@7f_YA=%~9Pe70h+y6P zE<t{PJT~}AV>pTMFyv2zDB2A6Fz}R(vPfe^nbdrgC5<DsBJz-C*sD4&&`<pjVM^Om z<n%QDpKkCjaL%*Ur=c$zdPj#jFlGUf>u(v21OKUV7QvQ*G<uq)<k0?C-3&mebC3T! zf`<U9{g>M8&?%vkH8s`2WGJp@(Haxv$Xv@zPosk=XIyfzRD7F{!eJaa5Cs(u6F}^b zkQcI+@De~RGMx|fp9FK|spUE3#pIRe4cG1O{j0M+Z-{=fH-*3Jdb?Ry$Y@M82KgEG z7}A9@u>r0r;B0P6F0M3s*sX6k2rzMKg(ovgKk+gsrUPYmeQiE0ctYto6<vM&aVVQ% z_&STfb1VG}%YB0K^9hahunYBjGveQeIXTDN=Ka0PKlVerB-r64{aW4FpOjF?DScdF zg3Jk{DZSabJajnk*&n1By-Z7cyDaTBnt#6k+W)yM^|L>J9`rN8t=jD5pQRHyNGX92 z<xAxD_L`b}VVLE}o%Jm+>iHhO+jpy)V{)s$L#V|`^qZ#swcquH)2%kT(ee5I*fGW8 z=j*5!TUGG8Ex9b!*Yfzj<7s^lL%5#3E3M7_={Bn&$mu!#c*}Jk7VtiEdmpl5#r5;^ zR^zbdlG*9v#|I0m)t^lmb&>rru~V8d-|Dh8s(JrhO`q6xD@ml*G^S_LmaF0lxJf3f zTOt1Tbb_ivi$NSYI2Qr7P4bc_ls?id5oRx6%J`$vP%|d0E`DM`9*~t1K5yXh<))dD z{yfgQu9~P0>OAO{R+-NlN5f2khMxW}BXSz?Q$;+k^A2i7xP@_5HQAK>Gtj@)IbywO z$2;ZsHK=_qx)GCHIOmTsxYhxBd0WQl>9Ho%3=s0JNHVi*rlOV(EYv^LRKa`QaGGg~ z{N%xo-6)TudXFWP51d89p7YF!sVQJ=%Z3IWEM&0zDG0%N)b#aA#BPb4oAvI;mc8DD z2d+vqt@Xon+F42}LX+cjjuYSnu!ww4M@A+!_%%43uLNfYj{*<6R@>}#%ixQ@tGe;w zO;GC}f78^9$4ynRxV8-Rh-aS&jmY|k!qp6Z2z8_R{Bbf*x`xTx|2Q#Wfj#&92>Q5x zEi&482PPN_*RiFZ!@X^RuNh}VLO+hB0ZoLptLNM}g*E_ohg6b3@7BE*ki+aihi$Lm z2(EUYENYz_k~%QWGtG`P=T?kinfMmSic5GMtPsT)Z-LBaOJ3vgBN)bIXlQ8jx4-;B zVU`eXtV`<MJ%I*WW23(-fz!wai^l#|9BGDloCE_Wv2`!`^9;jq)SI5%H9rQ-e=wgz zd@M6YOXWzt4oSfnPbzaZx+Kk8lYyE^(c`7gZK7LWJ`HR^3_E;GR*oXG%41{Y24BfA z1m9L>MeDf#%}FV45W^zF@#i+tqrfc6uyCt-Fd%%9NBfpOdxhcaTs+0&=k4>zCoK=B zVd(3^aD0C^rHQ_-EtWxsEn(J@JBui1w$m>9=ZPJT<ZUFReRlR5Z1?6P)B);85WXlh z!ph~HpNs1RGzyh^!#D6rR<4Bo#649ZE39PE&dI|VH$P8&KrqXDsgh}et36U*6zf~x zkS6%`;B6WpcR(8!GQwg3D@$xbUb(KlDeFhj*8%46bp9)w)QpHgd5{kAR4(%@<4-U~ z18iC@nhJfG0c(1qz$&-X;Qhg`!abI4@NKaCFeQFZi`tZGG<|%(sz>nq{CWDmEH>n& z8&NA6^l{PVK6`Fi4)JS$9v8mZ>-+oZC)2yq{dfsQK>7pmA9bQ7vS*2j21xN|3H{42 zm*FIY*(ryK3PqP!Wbm?-GC#Z^!u$-Z77Y|A&%09CSt8uF4wHR>!n!LBT{k7IR_h4| z#6Ah~OhE1_m!fAh>K5vtQ%N?7`lB?$HZ{$!MZ-1WEDnbT8<6&&9m5o}GTbT;bC>); zhpJ<9$i5R(kL)A}1E7R@>T&NA7d|`r*P}M#2SW5qK4PCBYCm77iH_Ii#KKAc-#fzx z0>+PijDXJD?@q4g8UfrY?B{1#!FS<zsDN|c{-9mtuhIPvlizP|9MJvi@0%heCWLdE zYK=P<dKKFyyG<tfNACxi%WIeL_5{YpTnkF!=3kN<{&4-?*TwD(!-s0zyc&7u-Jbrp z`+`n_gIwS8@8XCleLZA7Ehg_D?U#6pCA^e}^9lvFsS5?V+#Mg6uSUAuR$bGy&X&1k zv0tgz8|0z8-<o!>&!IPhXWapv7@CdBmoI1??vhJwJQY`^(WT&FmQHeIvC6Z*`kliB zHPt?Wu~o$s{ljdZV)hPj>i$s#4wqnfno+v|jPodL`_aHoWSt_5f&OfO?e8kLDRG-b zUpDBC(H?PiJj4yEJxYHzwC$$8b8zY!1bu8{>xRn^bsF|oOgL|wyX*3EN^E~^DVz?j zb@kps$(fYB0-uwS{}aZ7QX0d`_@JJ_r$*kbo9+UW0+2O?J8T|!9&{gg9a0`_9>9Ri zABhml07#IvPsd-<fBipO;s6jU!0<n7BGG^5L^6NeyxZD23c!HA#TUE1HXs8i7SIKA zhu${{U;yTYsKYa05ya|)d^gB7%AM(F58?N_YUzd39@cL#r!$+0zYn@Df^v5RW|^|1 z^fRF;Jny7m@Ub+~`mmR>J2R90`dr`;>0VMfYkPTn=Rf4&Cye#LjnV>Sc{u3g6(g#m zdcp4@_hFW4koGA9x+o8&P$m^S+(AT+4ltLvLO3>mq5c2y-GVX#P`?=n0sn<4L^_Wt zkpJ+WM|HT!;`d4WJNxG!p8f(9Wk5ht0RR9bU@CiFl|~wWCKm_*Xa)fQ(Er<YGI4gX zceb;$c49C#vDbHTwy>tR_Xts*wk>2t?0H0OJP#l=@$gUayn?yP=TlW<4FKx0vbM73 znAp5sBZo4kK_fD}diOoSL9jMEOF>|wyxz>&VyYILo^b?-m>nFBv3FEd<m?Im01TD! zkN659mKvXd#z2RQ80IwH-p}VCE({TE`<Ft7@(&sxn(QukhI1(mSlMNV0@-qnQPX2V z*+mz@OysnmS^H88IXAp;+DY_(5}A$?0_}X&2xo0uy+pn-<Okp#k<A>aD!_4>E#<Tj zkAj#<%77p{p`b~O2aXsfO<NfAfymxwn3LRAo}e^Hwcq538WMO3JwSQ<Qx*AmJ!y5K z6gXuzo5DXb_2#L?Ao}D{qf%2)s7kTOZf4Brl`7O#5}h}#Uf*f5EtnD5vES~qT3aKE z!;~IE)Rz+U(&%pODAJpE5SN)d@h?J(L%CueMTf~}l37O>uQR9{dHboTxBYMyR)K6z z4P#f=a`wNC*0t<ktNWSDSRKV#7Ji~g|5R5R`s@-w?=Fu{|Ep53i^)XKCRzMNu*JW? zsIdBuY&RZ$7v7FQaFcyT_}`LR<anF}LI40>XaK-}>;IM1#Map9zlv6C=-X|wBl^9T z?kPJb0!i59wwT<tG|5E)ERadJ=c;Kyr3-M`k;@ZQk#84oV~a#5{%pW$5VV9JefNHD zXM1c)nS}3LfVug#sGj3&z~&aChVrF_Vhl<RKmS#tSx26h-NmB9$?iuf5nY*oNVRQS zL;QV<rJ63j1J#5d9aNhZOKEMmz-b}=*Lzw^zoVOzlik%qU{^!`!^zd^r>Fnr`Ft_N zf*GDL|F?e3X@k{6e&y&eu&?(h@_X57I1x>X_~)(NaK!J}Ac<WSlNWp#jZThJ+Z(vY zM5LKKXFb8h$KKvvmU|c#-_jP7DG`;=j+#}SdLTh)aSua`0&6&G$Nyfiy^fapPZIBG zU?#7^_4u7aV~HM;khVP-w82Il_3MmwLca`0g9+Ytol9aB`O^}og|!bo7;javWqCcp zWa02z^6F2hz1&@*qS7_YkTy|_j{|GMVfm_vPUCLq+e~DdSp$RJwZ%er<#8}_T3jkT zxvYmm7La$6_g?a;)Ex46_OZt>(Syf|8yXv}jj<F?Hhs`kB-;(u55-X34beHH22~D2 z5IEvFO&Ju~70N+H0AEy6Kg9b_x;jh}3G=M<CjyX?yv~Cv0sk_Thjf*6ItueFZQ5ys zM5Mv~9*ak2#}ckNMN5ul;#*YkSx=3}csk>B>eF_9LfF}It`Ue)fLFi}b^`|w74)c| zeAIB6^IVvBBRNEO8`^^&?wWP1MzFd-HGzXTBi4OCfoCR<rEL=frMuAQNR@=9ib9tO z$r93hE0~Jt3J7tXCG8$)JJ6NCT!a~x$uV1DMHf*7T9$#F`#^O3;)bapotIMeNS(Ip z&C2%Gf0=EJ2So5on5wuw0?VK%iepHPub1aJmIXY29x@sy7Knd&HlCuBRr3PDK=g$e z%-aD0uUlJVJHfE6XEBHo!G#XD2{Mu{7<{T}sl}@320+#Uq|CFzPB7=GX9+82@{ycG zEt6>HVuOIO_G$7{x>^_iz@AHNMv69~D3Z>#%9&cic%@Ar$pLFEq*y_WjzpSeA~x%} ze_qMqrJrB4vsKnbrsw=Iaow$Ej??(kD_D+}hxP@@s-IJQTp8$9y&&6WT4zh4<$fa- zSTRvP9vDFx)m!&NN!O{5>Pq&?9|^2}J{XbNm$+K(raS&^D`xv!lw<aa9e?pq&`^%i zQ|@UYjdN<(NBii(F;1h_(jxRsYL|YCFg_Rv?@25}@xQ`LlJY``eORIG@*)~E8HRMp z2JFL^fMe{=Tl}XQr1+ed^#{Jv-vzX(^U5pc&8n`a*kiUDkE_aEQ8nB_XhZR@El)Mu zINusI7|TF0L8U$9PN5B}0&KL$$ep7HF<6v>0bM|Zgb}$4QuSaML?0w8@08Wn06x#8 zA*Pq>18Q4<`Px`{;*<%xmw!D8bjPrj;J`hQIV9oriRtWCbE5zBPYgZ*;u#<rR=l== z-RK<_qwf@W=089et#c)kfrL)Bf3d<V+7u(F4DVVy#+Y5dip-b-y=8k)9?RZ4S+JMz zjz?o31o1up#&oD+;#!aC;({59rTEIFyVrX9Kf{AOwU2LPlS}O#pjJ4B@m5e8$A>0R z?SAfFUy~Tn4sKKetCEMUKxfubU^f!&(K_bu>AbDT*(z42o(!X_m1@nAVrw3Fz1Kf< zVeb9N!xN;Y<!*WVP@HHjvKso)(|2Ax41o59D~UI01FfEXH`me!9Q;vI?u;6#8)#1# z<0BpND(f2B(>W-~I-z2aO2xVsUJAszPMnhB>CtRx0>S;=Zg5^mO#1^X92i@|$3xWU zIHT$HWey?No)4dxgDHGHAaV>&kOG8rdY(RvqPDF8UUF+*I+B0bIc}=cON(5*X&3=N z{qjcYOKUdyGiFMC(^V*#PTa(96+|5i)75P10E4>l$Cy4Lgko_)Hp}Igo>0S=BICue zKz8)2zQ|CeBOrGQcm&J0PyaPG1mqzvJmyaSLT#SV4WdCT60j?#@#oK|%A~Kaw{5Av z^J@fMe4Xwd-r$YKVXy#Xw7L$%V><F=AC5e>24OIz_I!pQ>r00-bJv(9-y_@&X8DZN ztpQfIdu)PH`%s7o5hrI>cdQ9$`|6~<W?)#sf8k?caYlFz6CTfi=4Ak72}=4TEFh4t zNS;ogte->haq#hMsvSb1x3Sa=W3(2CXts8Da6RgD79(G?ub;7WLqx|jvbui+Iss_Y z&|^k#0LWLnm>4n@FFvl81tX@ewQTwbyN3dWQn{97+m&h7g5#~<_cE^UXc3jCI?d&d zAXLDmiv%G+^FIA?&e7GsA+ZNg;^o_Tm(;1x<oNHG8;;WG*G~$rDmCrl2j~w9ts=4z zhCCi}n`(huGDnm7)mV6*Tt_H2ZdG&bCISIJK#&6MM7`fYO~qBns75b+K%YC08bBKj z=Z`>cz0(BUj*npCS=lHg4L(*JJ#v#to-34TeC`@>21oxRwSH&pmgXc2_CjsRiCv%b zo^qQ&06L1=GzYzo!2+Fl=axS|OK@*92KAd{eBzyXK;|0WeMkEP^uMB=%0wJbhY0{M zDFFZ&|4+0noQ&*TO&mS`lkILDZKqA~2H(@#v_O1NN>o%c2869dx9*1QwgVTPdL4dk zYC6b35ojbx10Y3Y_2P<0k_UI+?VrTOf9=3|v}TP;Wav;+Pft(Iem?0~U_y6)H`Owm zCRysIHmf=krsY*>?tNEv)r!|tCvAwd6H;ZAO4nUFLK*feEJgK9hg+ue<@6$Nq~-Ix zR*#}=ApYYAD)t|W8>_WXtR9flwKT*~B(2V2>4kf4E~&vB88qEc+bwITc(zwW7IaKc zHd9u{1m`c<Zb|}Gw^ZxQkS7@-HOaZ^6m?o|g0Un3f5uF8K(E;uZ;$;+#d}eBR=p_s zfWij6H;I&Vure6_6{Sdn#C4>~)aVjM0*K7HX%C<rgkhJHj}42Lki}OF2{(|YI+lYG z1=Bz~c#+AF@f1m^nEf%R>U37Ya0Ev|zC&5;{r!3W{rP_U9q<$UrJtGXdTrV{|EY5f z@qBOeg!0arBl*2IRoAb*hRHQZ>?71o9D24@h?<VYFk2gdkEdOvm;1xjbaBJ2m5)Z7 z*(qv7Q(q+rHc>Gc^1Pzz|0P&tL$OE(>zT46X_s<+VD2dgW~|6zlA&wi@{MM)iE?lV z?5*RTi=+dSp*&`EBT=wf+P$SL(=wgWb(0*gA<TFrC~m0P9tav0>8r-H{w^O#m?rxm zr^{BCmTlcpL9O+jXGu|6vJtKZ1qmusf?rvyxgqV_OJ5P<8<G2Nk?pE3W~<i~R{K@3 zxomE6@&3NM+bccO<K^=5o$0n4%f=}aMXXEs&^6U)OT7cgq>>c(Dd4c{FDU)*8tJ&{ zN)EiW4-ezWyg43a=5G4WqS)JkkE4)eGrg%oI010KX51*Xe!tI+P>%*1mh6$1+g>P# zy&r5<T=AF4S<l9ad)C8LEcQU=EMSHsZ+ABT2VFp-zkV$*C&}x)0Op~Ep4|nux}1sy zEWqXDL)X0F_j<PUdNRqbK(UgX-<buA>2Zwg(K{pv(_Z<)oslBY99r3JYwD``f9YbP z63ApSS<012z&GT}q)az5#OcihO)nD1&xu{8dm!Gd%L<)9N$mx;Z<Rr$B|->-F^vXb z%=%rh$u+=EQ=*8Fe!Kw9GNVOt-ohe*w^-$}2_s+%+)djGkRcinj}ChLSLh}96%8uy z*nh3IWyX4ucRRu#*8dZQKw?F7S~3Ns_2TWP7k~edy!xNBw;x}=nz1tRBF1ri34#YM zu;I&BuU~w8d;Xc0)buaJ*hT^jEa?FX76%Ru=43@XHDAChHBt#0$Q;Ip_MN;Vhc+|% zPr5;a*+$CijWjwuI-D~9w1Q|l^loPQf+T+A6-h+_uQ3DwHPt8v8n%Hb!^9g#qU{u> zRm*aT)(eKG=~2W$LdNwkBt#5d%5li50u&UtIXZL)^A2hLhw;SFP*2dgBRRrJ+y3?{ z2YkBCfk{xZR;EpMC6}@3{iYM`Rkbaa^m<#@MGiWcQhbp$Rofod;0r-FHh~E9SjOVx zk8h9LZdb^Nfb36Ju$>u4**s8!NCUY_Yrx&Q$<s~(USw%OeMP&2`QEvcQA<eE0Vg5< zxrHD~qMVi0RC<;FBw)SJfN(%`1%?Q553DS+w9&y0cenHYguxAp9#=#!*i;;@swxJu zG!Zort#G?t*kxT&yF)`PM30YlOpiejtt?iNJ1wPjk4;N8ah7HUlnz_b)-ppAUjkH? z#m>xTsq{??U59f+3dov61?R)+^*I8TZ<Mq0-k>lNC4xF&#SH5S_5`l|r!Ck;0bo8{ z)YvtoN#AV21obB{95DL02P39~LPfMdixT*Qof2GC0(<`*y?1<32&Ns9?L-bbc$5}f zm>mW<NbCq7`3N`_M~dU8QBczCHI63s(|$;FriFOu;o#IFpYoqm3v=oTL7MWO7SNhB z2jB3n>fUJhk;_+2Q#Fc{7U3xCv*OQ6ulx*Df`?H<dbnvmf1BS(7e96Psb1C;l#N|K zyDP1pU9**J0r|>9(7dd{{wVaqj1RO=rbxS#oT5oHMm)-qR;P5cSf*rJ5V)4R&<W>4 zd^$xs5jjfufWV^ZTHpJgL4rMSs626GTrvIrR+bpL$Z;oPV8-(RP6A<Qjre4AV}blv zLSalW6~R%G)VmDQ3YjFqZ?9jjm|wsgc`>{R!sN6IqvftSPLU4ytkjqQvxXXC8nrSW zgIkR+F|HYU#wm&sW`{{ji$g<Xb(<E~4j4>T4qxQub$faaN*B#Mdp!_mRlOrZgxei2 zCI-#$g~|Y>kej;WHnG<k7CNDxr}Xk-cImxV&*1IF<-~h~Gk~|qv!*c{V9sg_uWF8r zbj<ium6xHJdo<|N$Uzr)L<nifDRmfj){)|=Ap@NuV#s8uiM6txVwe_92E7l&hwHp{ zqLr?ZIx<cnV8%7(kXh@@fCPl{KwEH(gnk425cC#Rb=@ZDh!WM?osW7H4P}Tw=;`uu zD@R%8aEU5Edisv@{PP%#>ZOhhxypo`D&-9yXJ?no!pLBZr|+e#Rd9##3<N7$ra4A6 zDH#+9bd&Co*9~SPdqsL6mep;^J;3r2t#b{d4R{D~3-lD@%XrY8bROb8h;~C#xW_!n z$Rat3)KuuF38S)hFgCfuA29TnSd4LtEJ&E55G+A3jX#fIzE;w_MMMZan_)#cbZR7r zkpuLv-v9oauYI`pzNxi*`oxnjpShX^f|OzGZ<KNDb3phVg3t<rdI%u>VkxiXIV!eJ z4cYk~9f7VM9l>zfwrOQgzhd7Z{f6EJF%j1d%^%Av{`%dr0tZL1azWHHEnTxs<Xz_= zUkmw92am!*#*O1dJq!c07=s(89rCXclO9JG2PRa{0ZQzp$N<5wnd*=qn5C<Vp;Np- ztv(Q+B-bjrI1EB)FcNDdpr%fuFciXY1?!`N%bnO9c~rc!X9a4=yQ3u3hKtYa$(*7} zDC2c3u;_9OUIZ1>n%Qgk{+0&nncC3&lw90U$U;Px2R7;s7J2D@T~=A|Yuo$2HJQ2l zVw09NLa6(!l(*jZ>?$qSvZ&VX!%ntc|GU>~i;&ZAWgdD>C70qy9(m2U!s<PuGM6_% zmlyr-UW1zO!jmMX0-msPpJ{L(Hy&^P*9KBy&=M4{JJNwTh97aBw%4NBmJlzu;zaxv z2NPVK!}rcqpds|fj(K@gImu_RN*Ab;{1U!2dFDt3tUYPLAXVoNXYjGl#SgR{G&bx4 zviPe_+FW}g(GPpeB%2J9t+8h#Gyg7ME@kOj(8>EIzrjG$#Lqr27jbfVqzEaT>gCU1 z5gpdyLR%{hLkP}R!F~M@9|bD4L1WilqDX`LkFu4`jWl5h7cMO7|3WwS6fegml2flO zBXvk|r4=2nUXIl?fCur1KR&aL65`*azFsGJ%eV*Ri0sAJm%TD71(Es{1TigUU}13F zcH2c8*wK{l9a2W*gAkok#y;(pB91cVL7vSn$I#C6;_erPa>J!{z)od<4hU7{Y7BE8 z#h@nwOCJHoOt)vO)g4=;gPOxfHTWWg1s{o*mB%xi{fMzY-G(ndw3ioW*(In>*KD(H z3<ywwX=z~uUc&d8I6FD}>MOA@u;jT0P*raI@+WWs)o+Lz<bw@f=&kU_;DR1GM&4ER zaRH%!p?W*kKC$tfMxum^6rr{SGGwrAunGV$cUPoWQ!hd1B--MLJCA7-K+#|hmC0S` zaW2JI;v$Fxj`z&)Q&C3B)X2_gkV|7^XSA>XQXd*{LgS)1hW3DADei3YQ2^RGv%57I z8m0Q=0a!WY_!8u-s?Q<qA@T76P3A<AQ0D_MTy1y2(T1v=Sdc8~y;+2bg-?}wgji3W zdO_1n1n$OE-~@%(IL5YAW3X-f1_^RcvVWZxt?a#oeprCp_qv6&9V6#N>y~b2SyvQ@ z^~lTB-jrA~OAGPh{TqxPRZA;Yd!WP3*anPo)?)_DX_L+6>S<#)a*g$Cr=L@}e^)gd zT4iMJ*d8>wr5b?Rx&sNX*N|&0F@~Sd9ZK^#)iD5%4aJZO2k_q#>yxOY3()#oWFf0I z;2ZNrPWy3aQ@|B0pu0tZb(URk7im5xz=t#k#sh--d$wB7=TR)at8T%R!64NOLP2Os zHT{&Ta!$%;$YO1aH!jyyvK`C}kJdC*CM8!Xd85adlT)dk&-ENsUwE+V2?_<ugK<tk zM^Lsc31GN$k3ZVVqVc-lUUjv~^B3Hil1;a>szg8nsKW|G6>UVYnFF`yS6KA{8_TH( zc$?;UYyr2u=WUY_g*m<hfpc*Rx8WCZh2rE1nNcj~3g3(Y$C?zbDrBUPeM9@bZ0q>Q z;~b9$@W!jZl?ke9$8mZh)9*kv{UlRycK@)SSBHj+V5ndQ!C?BCJSC`@l1rib>QoGE zmmB%U`@+XvrDS50w<J(LueEI`O#`5Xl-PQ3R5&1waTr&ZwNASTiRQDQ(<XU&OjS$| z3OcnRu|UvYrQ4!o%b^+xZA|c4pHj%xiqE_t;5VQpUA~d(jFq;Ao*Qz;ZUtkrGx&Lh zhr=Z1#<>4MDb5&Rx_0B7o-uT6fsFIgHUc+|+a<Jx3S99D;i>>bA$q7r@>T^TwvTd; zC!W$WlY1-?^o?la^k{8qNkY#T!Eipx4=V33ZYqedamXu~F0mA`fn~^H3M8|3L}@2I zFo3|U*tI4fNw|y=4plI6d8houqfXQ`F)9&7R6C`8{ucD%bBNbx%sAwpW0QA~>STFW z>=LtytL$mW^o(++@gnJbuGUqRb793BP+4b(S+v!LoYIDO=7{?f6#^FQio8V~jE{$J zh7Zlc_L107@=2f{2raa@FBLo?$;XyV!BaR~G8e3f91eygy{4LDZoPAd-`9R@TIv-D zIqkZ}PHD<HnSrZ-i+y%T?`_Wr{vkf#GAY}plcl2EZt7iZPhbHkW(j_b&qgUlj)Lv6 zh%Z(#?NY`yc4W2s*8O^KG&JR71s(1YRdjAcr!^;|`xpldfv{AxAp)yLct7UTthM1! zQLW>pTx{3A<^=C5VXc{hEXS06*8_+u8?+%DIq=DhKz1DT7sX+2M1Re4X({XVibfUK zG{;zCwB><tj=Sn(MBo#%>l_0dRjyV3rNs?T=g1IbRNdp_BJttCWBS*hkcnXiNOrE# z3qx3|ZM4XC!$()BZ}QY)F~%qJxeH=$@N=q|cb<VM);opmRe9KP7_sxu>GkNubybG} zWdDd05yy)dVxx=d9nLnVhPRsq#P&t%*Q{Ko^n;0Oafn9F$fIGKlbiWEz6$1AdWw%Z zEJ+9R0$*@^EO=#5kMEr^9-Jx|q}vGCPDRmUV7yL1Ir?CK8c9#p9wX)azM4{P5<A)! zd<4TvosKhkO6FOPkNl^6eh4QJjfzGqy<EB_S8+e2^)M_8_I&t=5k8{b4$5JAHgcZO zQKC5}9N^Ub^C9?y;agg&D*-i#8CMm8SI-tMg5VOfL?_nlYi3SaC!p31<es8USDd$w zVVNQF3GA?Kw;L5QOM5p#9ccONT?GDd!*hqnH><H(Xzxr|Psc^ZCB$j9bEvc%?s;P3 zHW&hwhAvdh=i@={XQ0HYBd7tl@vOi%^QouXYuOQ^(D+f*hXA{gP1zsQkG>cU?6U6# z0!7;c0f$eJn@Wy|-N8PpX6+H%RHAXe0fK^4ZLz3@2NJq%TBvj`BcIzoZs~i=i<+CU z?mH(Sbt~|Ddj99ov5$gfq({TNcsc;N-uM?FP-+9OJ@;4~BmI!$8CSMIC&XYor86i? z%t4!KOGmN5d2Hx#ZJK4YX+mi}0|RKDn<_M^s&RYATzo6mW8mhVY;Fj?h<`F~KKPj0 zh*09GN3<rBP>#Va7OCjinunKosF%P_)rpD3v5rD;t+*$!R&6%G8?u2L>n-iJ<FRYJ zX@GqVReVR=?RZG7AxRTZ^0~+gWKM<vG!fTJgie~mo->Y~mAi|v*UUXE8d0#3C{Ig_ zH_=8K=)&w+^ygF9qno4Fz2}U8vQuv!b{1V#C%nUfXV*4hYYA@@SRT}4+V~5HBS*ic z?W@G8Y`2gjl~rPGATbvfL&NhFx5t>saA8nlw&`9`dqwg`CG7&?_zvacqW*Po?MV_E zBLc!wpZ3UVtdlFYCyY5YW;C;VTvKrkV&PqFFH0_D8S3_tcrKp#ewsFs@)A?$&fKCZ zAXr*f*|4E4>BkHJ_Ffrjh^f&z=eqUJrd`9Dt^g?hrcuxC{M{q>55ie7I*06l$4uPo zX*|R}<?~9URI9Thb8g-O$ZyNrlmb#dip!^44VL%PUUMglu$xjIf8zlVn08@%TtJuz zd=mC{4Q-nMa+->!x`OCmdPRE11+WPG{I=8=fTu)TrNYP)Zq4BPM+0MGi!X;x$v5TN zi`uKhYR7QqPv%)nLFu*@*|zQYzMZc6&d~sMgo}=j<}p`MH5V+@DYChrR(%tbt4W0$ z`*|&X7rQAo#l>#zgK8nBGD73pbM3TkJkShPzo9E}SSV3t6FRernML5ZPPGw;a&`0o zk7)Tab)6mlu!A49flwP$2>Ks6mhM$^hnt7z&f)bFHzL5*lPz7`1~tdyeMX<u1q4uu ztIFBwImfe!v>Bvt^XQhIHmVJ0wZ+W#4vjW@OY9cP^u}1s#NBe{u$FxwAidB<Y?VZT zHs=&<gvf=$%i!a?@8A9K>0RI}k$Ov2(Gl3E>KRghtWq|%{p%FOXd0)Z1u?2I;QNFv z+N4}nqt9aQsg2p5bVJm}FC!&{{hI(I^5)Y;dz!i}te1JhER3tx_j!lc6JOn>Sd^m6 zFRE@&*HwsA|3(Duks+#whkELVQ*mgm`>>Zm@_n&W)Ruldn`r5R7tp@&FE-%mR_ctQ zFZw_F7Kzi-zW4K0XBB*4l<r+k)qZEH?(5tWy^F6eA9||ksHbi+sIpqU?X85b6;BYq zn>d-<n3`wG4U~1IbVLo3Qie!qB73Gxm-YrR<7h_j+no~``w=YNFCGbGAx@FIQ&^N} zG^N*-j6sSHt9<|9j!Sj9`kG=2uKV#5bFyEL=TMo7ePLt1a!C5~cJ<?oQz~^gVXuBz zQhg0kLbMHh2)j+2k`Qd~2pDg*ZLShC25W_P!-$jDiVjijNjuC^+emWk>=Yf>LIU~} zmAzMmZo<7_$In%4^!)kreIs84DOQ-$c=1gA{ziX~vuD92Pv+t<J-mD(sRjO%#Y^=o zmhlQduH!2voO)CNdlvW)w8US~N)4n<LsgrVCJ*(O8o8MrcF=dM+WcP#y9hqE=u3YQ zW@^r4$`Z18yv`M3dfl{g$!-1k9WMv+A=EByIzAw}3hwFL*F&t%(ef!UtZSH5%vWOb zoOTO{yJL~V|Id`$QyOF1`D(*P{l&`C?P@8guLx(gtY`B-{PEd5db-l^xK>r@mpUD5 zKgNqVvkIVI`%4XddBy!T)`$EMM^w$<sq?pH&*OTn&Hx7>@$s{|mr7z|U^H=|(o5Rh z-IU((nW@>7QHL5Q`}~2vYU5m+8g~N*{$r!$7QY`?bS@?(c<2K10lHJDyzXADHnj^+ zpNSJZvD{N=>~HkBbXVab{|XN-_oGOz_}OY9o_*uLYO&a%;jQt=H)U%O2QG76r=!2h z;ZrizNAHTPDW9ns$Gu*k)VUY_i%Uzu;bu)2?fF=Y$?IIV+(!MOulTHkxp+)>IlV>; zNFlGylm0sB+i&V>jb0GF8vW*0h<MmlUBz_w&G@>yzJcs`&Jmwk=3ReRK~n`obndbR zo}=yEgTq$in+G;%9s09zp7mkiFR&^yDtKc|N#7ZF?;e=@;_8C;6<;dzx2O4vu{!qv z0nD|{x%J<)>g^1x<lDi$y(<!Ib}<MS5biz*W+K2@oaF5Z`@-M>1Rg6fYdY@jSh^S+ zoTwIu@rmF6WV1T~>W5#*$Y%FnVC5I_K_7p0UY^7U`QHBmD@2#2p)^w=Hh`we=p3hH zp%~4+!M%=<q7Q5yO~uz!as13Nvjg!KD<Jv=j5;yCsao^bJ2EdWr=x{#_>JX<L}i!e zSUin(G0QLek+p5@Z=?Hmubh{+9e3gOz8r&zM>qGU;)t2b>F&$EQPh?vWs`nvu!s5) zQ_(8`>!wGF6hdYCl81Lz_R%Py|973n&ePh|q20fm;Jcf;k*oX;w<b|x-NB-mSa#=o zPj@O{LOkP(Bkql}^P-^3$d8x|R}Yi_2T)4`1QY-O00;mI0OVBQCVPE{F8}}vvH$=Q z0001UWps6LbZ>8Lb1!6Rb963ndF6fkliSA8;P3laz*MOK+9dR_lS?+Wu2b}IRIw$U zB*#vzw_q$e+(niIXaLlTQR(~JuV3@TfV;B&UFz;wB`pce^z`)f^z`&}_uNV5pU;y; zv#jci<7C&b=6}K`M@3Pt*F}+>B&X?<s_Wb8eAib^ot_;XRhw<o_DR*~Z{5DrUt6WW zHRjoM+13Ew{H}MKbJd!kO8^hB*ImADE`|>mjfLqv-7JR>@mmbQW>eP7qgC5%oX7Zo zqC3#HeRJM4>#)#Lo$oGmsV7hW`u#UyiB(xI_Qi$jn{BTP_H9{r>#|qHx~VVV1y{OQ zH|M%Yg+B}>dj;(`YeSM=z3;Eva?ADl{T9flYkmt&&yts09F1~4OWywT)zjkf-=04H z`|}rq-L~v6*Oh7O75qHnH;ZPyRtv1!>9<R@DtGICSuF%jwJ9xSHmd8&3svBoVpXlx zQAhyQwoPlGJ<-n@!Ke6gW}m)M{ccMS4-H4VTKwtZ!$Nh7a;qEcuqF{H2jZx<)`hp_ z;;Os=0^LxqX_u;1%K{3Fl*~84YK0jLU2#`ezwA_@-T}`lRnMTswy&^vf?8g1Nr&Vc z)tAe%FLeq1{EcbziQ2YmQ6iWhcz&3PWf2=b@wwSP*9}}(^|HC{if*^X--DiRn)*uZ zb!lMRVpjvZEH2dmBs5j8D#Lg5VzIh_{_nSK^DkhdzS*n?wO~jW4baLo@|eIp(T`0x zw^tWMtGZ^_E>t%*BxZCqG#mvay-!yF^h*~$Q+40&i)~ZYeFv?s{Hbz$l)%Swd@ii6 ztAEEok3bailcLDd0|@5bRxPSk1^A`YTUV0qK#ij#n2AZ@4N10GcT+}G3(*|EWRoXN zQa63F04bgHmsOXnb~VlG3D346drb*U3%J0X7`7tq;|tBag&>!8YP}LPHt%3bfI?;8 zxAc6Lq+$7Vmb_?c#SH@4p$;I3j~Ir5BjxjdNIU7n{6RW3We|KG0*7jwcWzhU7o#px zV^_1>$bfx&V1Z+l?$c!cHU4D;CX>l)p3ceZXOHJlE1^2bX6JhVylLLy_q8f<T}-Yo zK`3-EXsSy@j1uS^01?1-1&sn``gylqS3Nz<3>DU@&gjuJIXOulSW-wo=-ui4vwV%K z?KbnqEB&cX^M3&+XW5|K%q$nMTrHvb%$DZD501~K@X;*RLbpJctM!t_`lh?c;NNjF z5uOJgqSuymdbv4;2WJiu%cY(t$tC<yEmt&zc~`D?3Wuz_IHfmdnjG@xBuT%2@%I-m ze|V7&D1sd05`n5jI-y7WzpXn72;8LHZrA&e$p#%ABd(w@^}9cq7G6)C2O)1$0e?W( zFzY{^0H{q66>dugK?vmz2yajvx}@w9Y}}_s$D^L3K!L&;K?nqcE(l8I+3iNZ^SZn( z_v@w{9rm%Ic9@dT6EN8{cV}LdM?s4qxl3<8iD4OGSn^Pb63K~Qrykuq5a!Bg51K$E zb4n_nH0QYT8d^giuqUCGmJ#TqqeEgel)gAejVzyQS$;OPK<aXHn8#BrkvcVOYX>UX zHPF;s0-wWB^f%V+cAyTmd#QUTxmHQpDkRk!C3m^&FJZ`<dcDsrba{FZFqd(00wtmD z;h(~qW~d#21#8Z?06V9Wao`4u-^8xH0rF+DQS&Wufk(&Yx~3^|V|86}4kcX(>uRCu zE*$o_$OSM`Jau^wH$lbth>pT?s-$L4X1;nbfGr{wWz`Le#McKEkm>Oa4V@eiLcfiZ zbyri+)URRN(xpjN<4g}w(ytH0H9)4UmSpM78=Wm|R98*Av0w%(2|&@MT-I2u%dTUM z_h4OHPB(lfdG+*F^5uiCk~s>zPVoZM(L_zudjNu6evm)Vv=|X$ks*A5Ll{sBb_ctv zRfo~kg+dJ!HaqXC<qef}p|Emu-Zg90-%#6>lIm*Rsqrot!4N}n_|ipz-VP==Eg6R~ zl#+8SX*Mezh}g9%P{~A%#4cs@_kZoG#TDrc%c|}7xR_N-+L0u{Ny!`Lcic^u_v{ww z&Vw)id_VU9;Zy*P7C8c7Si0Ov-oAYD@;G^|fIAlo_P+gP@^f2Oz)%0cm6Hq&*`!w2 ztf1q{4Z28kt(KGN&kme&1=})MqTf~O8kdbb5C8P%FLP5M*n7p`Q9rL?)k)5QhF6Fy zuH>s7C<35~7*NmwTzbp3);08`gbq$Ys}Ix%AoQK&uVn`f0NGycVezPwFY`Z`Z7>eQ zbqm{*xNd=+tD9fS<K*$5??1p_ARmFwuv6J=*Xn(eJ@{&hkDopN@w=y*>OUYr!vEFZ zznMRO@$4mz*rx0g(n|VfL>aNGJ#klbFDVkh;!QI@11U9Qb;p^z*hWsJvdP`<IJw*X zR8Nw-iCbFWxv<jjv=Z|Vvmpg)XM)0XI;`;m^_H1M8}*nhR?vZ{%bK2PsVa=^P{COQ ztad5oY<IneWO`sj&McEUx~WE#+d{<WiL*Rr>EDb-027#&^_lbbiC*x(fBkLhC;-Kv z<Reyv9HnUZRx}z@rVtIsE%}|%aj=}#c*aUun4xy0YX})ooXGwH?GiZo0?Jq-V}XKa zp>M{(ukQXtM#+?~c)t7lwQ$%REU=Q`XLTsU5%S0}5AcH#ZunNzs+n&a&7{`UA%xiG zNaF)S==DKA>v90Q>9XlaORu=7=8C)B45nQQlg@!5tvUJ!=oD;lFdft{^(=xe>PI6j z|6MC8GgDF;a#a-5fO(iraaVSFW+@<Vu=}ReSa-EvGc!e9<*4AoxFXV)3Mlf}YBP=y zaC9Lf2#l6<5Z-I8b~w=VVy}reR`-?GI-I&%7r3eJOQUl*m5r|8bi&%K6ESfvh|JWv zul}G%_p<C<qu`d-s=_K&BLkqjKj+0wBNJ5jDEfy#{?StlL)E+xGhET{w__9Pi7h^V z%*E$#p}21UAk3-Pye4>|-uG?kFd7nxp1JcdUNklhspR}AmISP*#tp0~QeyrLm9$w* z#iNO$rP6RmW5rYO&XH5WoA_$|Q+>C?l{zf#iB=S+VS!xL%MKMegfW@=6!Ke`pc>i% zgQ$9evK6=#sel9#{d94u7FS}3FV8_WTGH7WOL|w?=-p*lZONj-Dn$Mi4-sDB83G&K zPU!zxf*QgJE(WvYqHT8D6My9ZX`t|^6S}CjIS)6h_U{*J+b0<^o1BhWU3Hc`>iMYE z{3ba1ByEbeHrMV%x^CojE%WF$x!We29qg&j_2~vu1D4fhxm&Aaqz8z2R7gSh%`O1v zyX}+|EtgaV<Wx>ggv#92f~zw>j?ozuMNpus)gF|~vbRRiQa6sZwKnMu${kcLV->Lm zvNer9s-{5T^=_$>T`ebm4h$&A+SGgpbi<QABt#dES_Or=z67?)WVEw2^@tjoPDij( zYqbFp0kce-4$&0FJsY%<%7V${Nj^JqjK2SA9??`?Y2-hhDR}DD-S)P;fb)rtSmZz# zgcVYcHjSDi>aH*^U3%TXfljrlQ4#<(6wA)L<4`ssj2xCVE&ICyDrQhI5KFhDFm>AX zrJ&;?&}vb!On5Gmgf@LdJSPJfUnG+Ov0!X)XaF~_xE-D?5VP)aP1w$0aH{nZC<w*# z)|_T%X`XuWnd{KbR=y%t#)yU=&y|CB%R>_U@aXjmJbwk8aSAUL=uR!}pm93u{+J%l z5+D|KZwN?K@?+546l{@!oNWslDxZhak_!U?n#5!_s0%$GJ`@^_P>?O{!K8V6>7Z(v z6ClAuv?)*r`6yPw#=!5z1Q?*J@O)+0$q_d!*OfCFupeEI2QnFIK3_e&Kg}%+i=1zv zAd}4@SA(fHOL=v=?L_6$S~E*F<(9ouI)AQu(wnBFajeKewzg0&E1dSFO}#r2A^S;^ z@YhPd)bCR2$U*dq!F?ob=dUlDPU#aF6ivZcYEcPu7Q5TI;!`F%(us(qH&get#Uy|w znBZ!XShoUq<b7%D5;7BVqDO>`AhMH8{Y}|k(E$dP%ALu7Y;EjPh$g=4q>)!Op<i%; zjQ>n;L-EOTu9~R&UDY-<b&cyE!%Y4{zE6(~yO2u<A_%)=>dVyEH_%<{lNF7(Ew1Lz z%5?{S?$2<r9yn%3f*GvHws$>DPoUi71Ge{B`_bVOtf)#k@#EF<1AT{L)5$I9gRpZp zveEi_;`HgnSh}eHdJuLstQW8*VP{4OAxl}%6JK1cxJMt6K-C4PO=_9n;6_57AuHw4 z;eL6r8S#ALiyw#CZ!LsKKU=TO{*ZM+<}erDxI#JLF->G$04NvH15qI0RO+WuCBVq3 zZ1TO<Khb|rM22U8zFEMrK*MhXCJaPage66z7IEZCqv0ZSSUAO{(O;4egxbg0di2SR zPM}Wc|EU&k<R<8HifQ~;Y%sWMx=RL9ls95NUHKdR6*{B+FWeD~RuZXa>c*F>-!{UN z$Pf<t`JWgr*Z=O;+J#dGbqgFknxD8)iw>68Oiqp*!_j$4e~==#RS{HlL({7c_8B|0 zK-?g4hq42GZ*H|z+C~P09f(d*I198?{E9i@XgAHuSG{p3P5#QH%Q#D9yl)8UR-Fr& z+Gl77AFWmnkTSYeRQ<vuxaFd3amUi5t7SKFxpx}yK5nqCfLe02Xw}cbUeM|CRXCKN z&|^aNO6{o!)O+l+A%VBu{y@5ei~cORntI?udsAc!oQlTkwwHP|f&NFiYJAR;k^Sm| z+<`RZ1{7;mzCr)etWAHq{v!J+hySOaqn({=PJiRpk=9bZVmVy$7rh-s6A$?lM7ECk z9JFEBq`{^vV6nsdM!`MYBOV<U-p2kUaIp2G8FIHQR;I&)#C@81@a#nPTA}l9arCA! zLBY|<ex3WoKImBaEp3YNEy&nQWMsQa0B@vz6orRkN`iyM>1u`H1Md`&wOoq3+Nwd7 z24`QbuFc7tKEwgV=VHgo7))PwhR&wxF{72Fp(>Xq^SP(K7!$9f!tlDbCkesYiWw2< zRL9Z|@msn?GaBRdrK+_aiCc4hVox)}K-=Nb`}sae{f&@7fqvvjTD6z6e`O)ssk!SL z09m20_MV%?hV&3sovj1Fp0AR9vjcG5CDIGp57ZJRJu~{`yRur7J-0#+fmhFIS94v0 zvW7Ao#tH$Vi2?m|%G%<!Mga*^Akjy^$+}@(e?~YgfLCCUVKCBFRij@>eFekA1B}3- z8wOf>3X^VMNLS8M7&a2-IBL|sj8obP59Ev0MVj!*1+pvvv$#2d4Mf-uaY3q~WP=g8 zR_Dpq*vJSmrb-9+ceK=5)Z7h0uGuc!^ApoW79f@i&<VrW6RtW5DFCFZq=?gE)=e2R zHu3aiMPLXpV2d3niODlMC@Rq-!%7ykVjb&QBA>waazY5h?)c4H4Ahz|n*~kbuTSph zU&0P<f^QUHHPL52_<^CU&>S^3Ly*+Ev%s)&W<`Pnn>TP4<+ePp)>Xf!Fa#JCYHz|8 zyQ*hED1gru&m&kFG>V>oo<@^+I+zTI9<r`}-U&C!>>;WeKu>`MpL02JRtC{Q`a-P? zBQg<Z1er{R-L|QhE|~a8cEdSNYn@U{KvwgWRo;lFdNB}U>m>>3gf%;0o_5EcP*{fQ zrHMrMSl1($0#Lrw2die0BADsS6Db2cEmz4*Bb=5lKDrJx!Xiz({8TLDJM2Vhk1?*B z-Fj(878UCx-PKi(AOS7Y6^d&hhy-hfjKLrcsAbdRoHk^t#jglyB*8cch+|zqq^Vlr z%I(q9(BD;w$7l7pT8RRQo*MLEgisUiL>%KE6o>2!#mB0$|3ZeS9r9{{Js3_0qf3wj zrcK+H$hlpO*5PzANs|mKs?E0FTPaDaAqIeuRACT$AYseYqVhp3252dY$r6-kxzlWJ zMNR{R-U}SfndZ!2s=`=4u{~ckfTEFY%2}-l%02GQaN?AB@XH#E!?|V^MsBmF8d;Ta z@8%Q+L|!!Hrv{wG?V$Y74tY4i)JnCeIygdA=^z~%?YgPwnism=`Le<Tgr=<&Fe-*M zAd)4C92)xcUh2+)k|He=Q6-xeFv`BMh<NKhv<d^z6JmBn7nhT{L*)Jvs`oe#`)Z?d z5!}!1aLKxZ0}kqzc9og&u?MS?<+^K#vpO7g5Mx+!qkv78ozdW7c2?URU?5}XtpaIh z=mfoT7bq52uyo-mD=0umTCAjU@(Ry%TeJk6;}A8wi%T*>(XuyZhfPv0pe9frM6&2` zA~&>_14WvaL$d7A;7lKvkza(WN#SEP0y>Tkrm%HC(gW`H%X*g5m*UCuH*ddx`~2HC z#rH4XeE;gz%hzw8J}JI?`u5S2M{gg&s`|ldI0t<~(&J=ZZqAqGF}a9YiJQ94S5S&9 zh~8V*B?JmMfvWjS{tnwor;6*+G2X1__z^AkQD`8$lmhAG`3U2dkX{y>s>3NxPNr48 zY8;=r&e_P_NuHHguq13@YP9T?OIAZIOW1uB$Ca0l8kZQJ9U%M7pfM=zd&>I6^<}lV zOg0s=5vsj=MLXv6UA69U8SeG|2EeH9(t$&p+Gf{VDSRi~t5QFZ&p3cZpL5#BIz+{L z6IcMOIUGM2WqT4FpLFF)v1=*1qY{i$Zt-k7%~5Q%ncdRMaQGl#u3zCmAak7W(aR3~ zb<iQ!vs_bM$77MEhIgi|9bB?h(>aao$a5!NDAE@bAZoi~<A!`w1^X-otVRL*hSdsS ztqLP%9p+-U8jILv`A&IeFM#5Eo=x1hlYzt00KoAO%>e#~k5=LnN1RyBaNcpa2l>v6 zJH7ZM%FL*6zcmL&bapqXU0zw`c60@T*R_kHZJJ)UnQxnIHqlQfp~I@6ADyy1Sp#&{ zR)LCvDGYcM<u;RsZ$ZsGJqsXEUkWEW!Kv@R3u=>h9Qj}vUn|dG%wAQFU4o(6a29{y z-j!{~fy!7=k{V=coAcqPPbSa0k{iAoaDs2=`QZJ+&((4AZt&1GDl##|s5mHzKCxP& z@ccNu9C-jfTI8I~-JRqOFgOWYP-8AC+{2h*1hocaCg4W}_N1l2`UBIMc4sv!7KysJ z2+bgj9YQPyd(dzSaIwJ&oi`o0V87W8!8!RTviMTybXT)rA+@lXAm0EpMNkDH+SmkL zSx*tatYOa}yrJOLtNOQ<gAs`*Q7_61rXRoz4b!&%3WpHeus*?##5B;2ICo<8@gud+ z+vfwh4NdH5iR!WRv>g1v9P@q?M`PBA+D<dm1)r^}mFHG(N|8^uOhb2JGL<b_BDer6 zgZ$j!>X<QBx}+}%*iUCQd95pJ{oX{?Li4(2@<G0R^o_*h=6s6ovjY(4qqugYPf_p# ztHFAXvQIi|kdsIbq>q?(*#K$fpn>s*lqN2}DfhIr!TeTa9Kbpa%;q*>Gg_wdi#*w$ zw^Iw?Eo~bGLKYd?Y0{%Uhduz9Szw{u%?qNpu5d3$LN3}(<Q!huW_n`ZR@e=XV(=3| z(v|nREk+47qo8&2EFy^i6XX+Y&UmL{2Xr{8^%V6^INT#Jem`@wmvq&Fq7t;o7zFwg zlS!DDgmT%Pvqk}DCaPA0bRj0%(GO`7+;pR#oj9QUrnM`}3we($n0}CoA5*f_f3TH5 zrvCKs{YTt0;?F<F-TK;ka0Q*UFpq*a9vMakXCO>(JvNeaDt|$L1E#veQ)#Oj^dT;{ z><9?k65{@erYFOgQ2gAQoQHAia_slhStOj0v!mGfj7AiB=iB;oGZO@+;?ONYR}-Iv ze`wMe*OTe6QGcKZukk}ZkfFc9GRf|?Q#o%Ezn{bm2JO{`r*Z@h1sPHWH#&4!{~kb+ z$scV+wSqm8J>nT00~;`QF3yr|wPo7?o{r?nD?T3Vl%i;oufDp^=8$IK(`TS9LDrz? zMIT$ur(vO?dMAwSi-qB6#rU7NeYo@oi@PgnVTnq9Hflu>KJznme^tGYxZhcG76|5_ zL$!@-{_JaMKgWfAu=YoSfJ6a^Y`MlT*UDD#_~<~R!O2dvO;MALiY!_&+om_H55odl zh}AC8Qt31xqU*)=<MDTNxCt-)#{<>Nk0J64V-kSDA}KwrXu-z01{CV_A<YI>!HQxf zDm3$!eInjA*PtvY&oFOck;{VU7i6nRjXg6p2P&%WcCFZBB@YK4|3tv`?T!zSaov%_ zFsOkI)G6+dRjr2vk;(@km?YYZRYItbZ3MOZ0S=*JLmEZ6&$q_qfMVuGUd1_XaD=TD zU2SzaurK;`e2Lc35EOA`5l-rWJ0sgNdK*3u_e%#RLKbdWZbZ)8!W@EpK;Av(YW@Ko zO0Ymw;ToaO^-blU`3!e*oSaV1%l5qd_b<EM`@g_$fDrsRIs4hwbfx&QdF|JO(s6-^ zt0DG_+)Rgg)8c|EuquIab<0h$KM2vib$~#m5S}D%w!W1{PV&X1;dLsmq~A#-JsssZ z;6p17rOP9%ImF{sik}UnAsuFUj=K@**X>rg+G*j-KPh~t9j?<i;gEbG@Xm734OP8F zAcxdcw>kC8*bWf-Qo8Ir)0zMsu!Q~z(j$OrSpx;F10c?XI)mJCiv8#brChx2QI^@C zly)RZQ)hDCJe3bj(eLocW-vd88isLa;bTNcMX@#kZtVs|#Ib@cD{@*uQVxB^$<TG( zpk~%#eg!<&LKlG!=mYz52h1f%@HNZa0T>kSq%`VW8U#UVI55ulf!{`M5hZ{Au3!}K zeZVlz0J2Y=9;+i?$RKhfQf72<0{(MEw+mt58}GN_?CdP!SZ_rp?#%1Z%tE%+gkrj$ zjSON49MW(znCQx-@y7t84m}qg9H-7QZe)pzOhhw{2?l2}>8a$(2CshHXD5)C;;^~s zb36nioi5Mw=`<0gs&is8IUnsHt`tA$n;HQ{h)!*fi8Q>dW7G=M_uVwyvb%=tF;Wa{ z+uqWyp$jjL3&U?J(EOl}uYGYyhrW?5i<^nC8kKuSt_4|<bWTO}OKh{{ots9)+hbst zU9YTT7`mnC3?F>*!)KM<rFM~#!*ZJz6F*)%$FYozdigTisaM6CamCa5I5Aae4!Cju zHo=HIAW?sMb`(YD*w31H5D!-^cAqEg`{O*2gARkP$7}kjo<(j=U-u3=X4Ad-twk+v zpqPjeQn#0ok20T^)a(_i*68ce1r^^Y*o*Z2wmZIej|%0OD+}r^n+2#r%{^7$>nN`N z9y)6k7du#g^2>g+4gk%+PSWSZ5FGICGLCq^Xb-2QphE}!QF39NNc!#b$4_6JK7Mod z6y2-S$1h*~^ZAQ!==+P8Z{a0<ef0g?zrB3@=JRy)d?U;TMv}y9Hb{jnLPWja0{IJ# zQ>MR62U1}~Um67v7ZzWC{Was}pW=m3PMI)oo_c4|&eKl^XdPEE+s5<9p9i4B_dz=m zwJZyV_0oGlp7z|nJ9lDbE=f$&c|k_m<uw_ngA*E@iCDuX+erT_<=tw7OFq1*I?5%6 z-v^^8*}{&K)TbBe3I%5k7q^pGx-mQM!wOFFGLo-y{O_kRi_-JavfSc~2^08-&g}WH zQQzlQe3ufFQ_pxm>J-~0`Me^vcjx_jKL`B+$~rpVb-5oq50UKA&^F=G`bpAX(KA<% zeNOS1TKP=0gW6uZ3*c~y<piT4V6C*WlByQEU>H$$dKR)p2Uu@gMH{CR`gL9csrZp^ zT&C4yu#wWb<{ay#!{`a~9{t{KDzmQ6Zvt^s5m20ND8lKDyF*3T-Rocx@->aTXUfIi zsP}3yAAgOxTw~91Wr;mUUy$JWSvYI)Ghhke$A6>D?=%0EzvNo~)aa^eUyGtZ(E{GI z_TkY*8WB~ytm|fn$2OB2W^6V+o;V<7DxG+<$k9ppea?M*PpQG^c*ffc=w9H&Ha!Y5 zG~p3M)c_z^`*az!d-DA$Cn?>Zl2TA-OPn>dOvJlCLWYFEpq}tSH}`RJ<58Q_Wl0OW z#t?eMXQ<$78waf}R7V?XVpe6#IUY?>ZZG=58I;s0D8|jnF2$ATv8_0$DQCwvn_m~F zSw*oKl%~5N@4BL(Jl#^)XY4o#{Gc;uRqxag5&Uq*K<PA|D;uL203P;QdagT-r)R~o z>@JI?4XDSX=~*&LxB$eaywaU0$Ww3u^7D2eh|s6-1vPnxZ*77?{kfBThbNx6;<-}^ zhXVS{F66LAVwR|`!F8v_gRwe*;W-~!;Xq~{%|OQC)5lr}Y&^1jxsjq;Q?66bXG;8q z;{z;CneKv0=3rP-uPNWmgh5W+c_2>Wc=rj1CvmbU2S`u0BQIjl`tNyCg-0ms+6B{l zI)?YD?%Y}2rV2_&X#{MoE=r8T!^+yrVW8zvjUm4?CyRBKZ#|;qy}<%6vkI`y(5Lgf zq3o0CvfUT$u1;Ae+g)6KHqt-<+$$A5-|qZuoYY;O#loo`etf!ZQzZm(-DdoKKOW~& zA~(PrOHxAG=rm=7yqV^?8#tWfYgnmfiO|FzFGVgytTsEYeNkH=UMXdsQ;bNr5FrPo zN2U<(>nxq)s1>Padt?9llQ1pM;u7Yv--W>~TDe>d=J&z))X712p&QAZ)ULjhir)?& zk`Wy#J5Vp%5}{4%k3RYN3)Me6u@}&!qoqV(XtZu1uTN251kF=fkOI}<u%pD}d%8`d zStZC`PVjMx$yF&l22sSY9pm(cdI+VDjs-Al7YO6dK#@rpDQ0lzfGTQ0l1L5V+!X=k z_joMG`~Z2hGu(gy0t4D$>g!v4v=PD$)^M**N~fNCaPG%wi99e+Ua`;Li>7~u0ZLE( z3>)~llPq@>VGJ^=hbB2NZ03hTE*sV1fiz{LkD;wCXxRPu3VmDY;qkEuKG=mzP{7Sn zz_jQHfiR-r0Fzn<1^#0|<nk%(<M1i)sLg0L%A|1yHAo&{OU;r-!SZ?*bClH=D7obh zTPo0NGgyCbFjYiq$k3Xn=l_}|j%Is%(*?Tjkj^B!5$X-812*M_Ds_Nk*!f?}j$_M0 z^F>Me)s~{;-JFzOBxL4+o4Uu{rA|@PNjRo<r-Mp@7R*M=dOof;oyTK|0M*qwpx0|x zeBcZy?NdrRmzZ9l?h-S4NZh&82M#N$Iz0vkOvVI@=~*7;*`sB1JF8KQ0jAN>)P>}- z9EUcXDB5|Qc`Kqrm-s&0Eikg1a-o0fo|{xK3I_BT5htpEJx2dGzX=UX>$)^!GY%3m zDf;aej<Ad?xZ@k+0iGZvP<?^_c%bigoS0O%uM_SN7QyB?s(YfIigctXg~9EeS;J>% zjiW-)cuLkc%@4joO_n4--_s3EpWTcqsQx11T}<2!!LPx>LjCaZ7P>kf&2oN@laWM6 zF}sIMU`!w?&5?A_u*NJRye;s=tkgech-b6mc4iljI}u~;VPQ%CYw^$wcgv=Apjre* z#MW|St3d`{+f*0X3E}6!ZfMjjGNHU)NG`mALkIPfRKNh^8g|0F#igbyK9Bp*;^(fF z46YP0G>BIGKe6#EBym2)=^i?d@K2;3Ete*$!JK)LGa@X2{WW?qK7a9?p1ytg-M8*4 zfmf$S!UXkVXOJ;*At!W=Z{`ODqELdZ*{)qyEk-`-i&=97@5erRHr%+|IVJ-Y)1D*+ z<(T1Qb<B-pY@Ik(og@=(#3jzCRhTxK1pf5?8QnMYpfmZhlasG8!i1BOAa<0V(-%Sx zwH#Ov7}i6e?-(ph_-S_uI0;8doRgM6SeLw!8m(-HP_$9g{h5W}MpfVH<ZI?zFAKhF z`Gg4MvmzPlIx$=ATDfM4Q#2s6zbo6S*>%ZUy#x7RRXsd5Z}8qhujYt<cU|#$nMV`e z`;Sf_hdV5nODyn!2DbOQEw2_|K<u3d2*Q!j&8U@agrKp9k&Q-pOkl_m%p>=H<ecse z4Y2jcI*!zUUa?5PkrKWSi{p~BQWzSHLG#N(U0ih5F^8|&@ObLA>YDXC3jdlD@jYig z|1g_Ma$I+JFlb$h`U4i^`ej^v6O&FI(w^`Uliv})tQfzD=xf|A)E6g|`FCVYmvY~n z-;H2UM|*@m;+!c@+NHJz+fyI7GbDP@+->EE=ffk+ZIW!)y9>-3kLg<IQrfaTuRv?1 zQ(?s{)`i)ryd)UO(-PL~%ci-az(FV56JS)KI}L2p(6!iF)G!whP?IyUv4tN~(=_N@ zuNDIK&4z|ZM_ZZ77nm}q?Rt}b$ixD6$^E#nq400KS;z^WF{E-kV>WiaSLOM>APh6? zW!!$E9VM~EOm}#e+@E@oD6P-Q!60?|-(e|oVx(Ge&qkiD?B2GV=|(I7l*rs@xz%g1 zI!+X4H=WK*3$bW=aRFf%6n1-}X%Ub?ZQa=D5#JoaGE>_Tp8Nq5+L<e}DZOBiiH49s zGm6r6;%*r$i#1(r3!B6B(uQ>*PrY%%x5UkP<GENkjj&k?eO)$N${BU8GzHD2d@H=* z-7&bR<j%wY@y9>dz%L!)744!lK8TaPW8OTx|M0>5{-5Xf|KJr!ANI|c#j;sYW=6-X z|1p#flBj^C5O>v%f#G{U1wtq(e)o(Dd`+_NPdt)Q0YC1w)^QD!xlY(P1gP({*4;*x z0z`YU09l1oz76~9y+o6z_%6}CDvn;9=D5`PcUvHSy1eLp9=L!OP;_&JDENiEGS^kT zY_4G!$rk+lvRd*Ae5ev0%WqWCzvrwWVl?u4;?>3r!=65R^4-%Ms-z(TJ#NHQokgHR z#cTFVSPjQyCATU?H()8H4z->~=GGFVs*d(*Z5By9)rbQ+-@Az&ai-$>J)<;k9HEIR z@o;&Y1N{7_`losbX}C-LH0+U*ozBBZJ!nwFd561)5xiktS7hzhUHo+1(!Vv=czmw& z-(mV3Y<a2hx;3_98YCIIvkYk=;c~*LQa9#o{S1qdfWEkptc4^ps3PW;4*k@emDgxr z+FvbbbAakNPW}Yf`Z?t-^DXMZ1_!v}g3_Ei%ft}EGzdst7#p<g2R2J87*z<o5~ott z@sU>B?gmXD9UPcqyanAArh63;*8n$SnH?a4Ha~fWp^sXQ#(JX5Ia}Y*C?qBQR5&*c ziL--kq1&U!e4o4&8EOr!!g^`+oIaw%h@TrNG^DRI;L<l_XP-*3zQ@^`j1~W1(I(z| zOC6m!kooHK&m&1v(5yyB1SBBc^H`hsnDT2vj|WMn?QHdu77{sg-S~E2NCLr=)5-hE z*))}ebeL{1eV@9gVUf&;sjZ*d(=t+aLAqa;`etZchTYRS<;8wI-nE=&V&?fBQ^s7; zAvz`(i92K)=VVTk!fqNkgQ?tv*V$CkDC%jixLkVK!X^9~-cX(xYZJ1KkTX<8P)qc7 zrtuGwL)S@K2wjUGb>>H_>2g$g`eUjS$?7z(_}w%mDQATQ`kYxJ)={tVhJ&@tZAszK zn5x8Pqs%caPB`4FraAe50lSl9`2XLNk5jvJQ(L%~063IkmaCdBLES8<JCgt($w_V9 z-#GRU-h#3Ks}yI$z^jAJAg-H>YC-z3WDR!M-V+ef1Y*JTXAC1@y&886Qo9<_)TK=1 zY)6RpF7ybCohtB7R=2mQx&?-yy>sTfBn8ze_XJ1z722D|l6>L{ZWDdd36h&&*Ngq! zuHKUko0C3$0ouPEY;$F6^!7UM6<T`--Q9Aqg}u*J7slK2(1k-cs{{YHt~V24=F{}- zXo#7SEHT{7%iCdRi~nx;Vc_>Tg3jAGhC}_>!`P`m<V)xRFLu#>;G5fY26=LDr{h7U z<e2Oh_q8jN<ks-BuB2CxWs`Ib$}!QX5Avlq<t-V|YUJCv$S58;G2h}zjE0FYLJ~wy z#<)XtFk(#%x?41bnH=t}+#|`~Sj@TkephnM)IGk2mD6J)5}59?G=h)?WE<${BiH4~ zwGY4Hq7^)`)IJU2-KP4+*i7GQ>KP$iF!tBrEWDv>G=1^w`$a_0-y>(12d)FcUc8WF zR!<v}uF=Jx*r-0%bV!Q`#?rt#<Zf^W{@aO7GxLjNa?BcoCi?>YHi+;G82k&obfhZv z8goxLXfi@?KCfRdLrD{odzPHy3dxzy@k>>6&sY3Yv|}3EGdDolTexn?^;XyT6<q({ z!1jl@Jj&ev5AgHQvKV8EU@j9k{olm=p~8hp+)pB`E=E_M*`a4=H&O`6`31rqDr|=~ zXrid`9?iJU{cgK7jlt+HO%em(M$O9^e(S9o>=K^7*CE(OiSweqB?*ha*qhAu=v+pD z|FV&h0;zKqgkAV=)MxqHg3jDszWmf(BGuzvBAuxGp4&ua2t}}e^IlQY^gp#%v|5X| zSJaPx&0bM=>G#+x+M)bC_lkmHWUr`kKeShrGLf^K_n*91^c2ltuUG{0t@9OgR|*Y9 zxt(UegXU;9h_}}tP5Wcoqs>agTOF^fPA6T0Xjd2G#9~Q;fpRmHsQv{EBAe%PoC)(E z@9`H<NajBpzh1h7OcH<7IweMO1ZF_7e=%g8Q+H<JwuEEbwr$&X$F`F%wr$&X$Lfx4 z+qUh~`|9WqtgBVyowG*Gr-n+nfd}{^Y;hT)cDoE#o}}@YANkbrKl2Oof%GpL$Yaj= z!-Ke!v`oB3UOTaWN)9ueU1)A{O;|H>Y>o&}q!NWXdQbWB11QNa?*eq3Dwl&nR%xYU zD`u~Pfay;K=+DW<?jf+2<4cp1)2^Lrw?70r7H<w9Q!>DJWI)6~_+))<lDUQ^FL3gE zqlrkruU@C|IhEtTHgq28T|8#K>_y!lcK7KumbC49i8>QaAl;$99wPdfqmtw1)biId zz^poH<!m4u6XMzz6ctr39c1pBP+yFz$6~0t<Qjxs_&tyaLXf!QE1Vn)>a~o$A#*|o zm6R#YAgO$Ee0s6iHNOP><jzR+#?;7GXOOcnpfG@+lT$Y(oU&22f(Fy;>2Q@9J=qIk z-^hgcb4^MLaYKl+ki`E2H@6<z9@gJ-Bb(-S9m$WlOHHC5>$kH0;n*a}oGk1za7#U3 zsN9r#L;wvA+@)6Gb!DUSmQKMip}6~c+lGI<I{fBthPCpis!rrCar+DgiTBiv3w%GE z+l&o;UngHbh)j)hYnkgu;bK-7^?;8mmY=kkY=?aHNbn|eY3`k!^TdIkvQR{9=HDW; zvS_lM{z1<ky2U!N+FaTASMEBH!(2q|q<f?`;jSZxkjK3r@Oh+)iST$fFcJ|g;O7Wd zKqu8v=G>3APxDI%vBt@X1r82gaFaj4rygxY$y;l}IR8OCRbvk2Kp5!N=+`Oo7Pjr@ zKBWVd5%x6yqVsJ<uKmUZHRKIhKSXmehJ*)_!_?X6?$`X(reYI>gv1GTKon@l>8n_5 zrc}7oUA{*b@K{4Ohw(FnA!a@2&e8F~9xxEO>Z5dhd01hyLGDHz_L-!SBQPPHAwFyN zNWd%gUEytv>k5=;la>&lh&sH5W_PGPqo1r&2Hf4il4Eg>scMXkN6uAmpJ4gOgJ7O` zgzzoCsz4R~C^S*?v#@0u-BIBUX-vfwNZ`+0X}CPUg&jvGR5Le?c`})rebd{gN^P5S z@%iYH`S6T#)kV}o$s9NNCzW{00;?*H?5J<4DVr9%eVQnr|10c?9t;BxY5F{JxbGa% zi(j|PKK5l0z^FacV)P37N>5^uaSkI&VVFpDTghkXA-yrAcnIk0ANt=Dq0JbhDlTA> z>0w%DxBi6Dzt{3AkoV#y;yD?jbeEki+3_F(oBXAa7XH;R|3)ThQ_%BX=023$@DwGu zv6PktFunbDKk?hiflThk2~;YmmHPpL5-o@vuKSZZhpERT+@Mf0`k+#Wa;L`^qN^5H zE@74S*wI(7v_%<aeoVTCwiOGU4J`DNC|X-DSz_GGMHCI)UvJ4kK<+JSEZ;gR_60*? zK6=KzI@KDo;`Jsc0!9@qw;8k>CP<o&%>_kYw+OTq8|!*l?m!T>o;d*lYs>$F$(rks z{4YX)zlfwHZ}rH-bJr08F7ej2HNCZj-X~Z6RL9uF+*5#HcHPcCa9YO+>~BfEg+_!w zr>-r%A7x#;lrXU2uDK{Byag;BfqAX<tcpLJ9?Crt2V~3r@WX4wM`axw)E5NqgBu!n z6O<g`lZZJU#7*{B1L-2LlT5Ni>MqgV6TC;xctVuav2!XYW8H_Z*85?SBvG%&R20}0 zZ<-n!G}s*So>o7c{~g=^51_Gl7;s<p56)Ns4FvQbY~%j`G@3a%IXL|X<`=6j?|{pR z)b*eNmm;g8Niz$=&o)XP2a6@8)F-VdZlt`aWktf!LDbRubn`K~wIoBcU&k0WxaaM# z?V}VuMB;S5e%KXDi_jNdvB>jES;>XcgJqxWfms=?JNGQ5%EjJ&PB)UOO@|?~)W@kN zEvJWqC$sRLP!Udse|G2c{I5ro^RZXfk30TvkaV84-Jr~TB=uD$&Kh_w`%%-=)_a?Q zzw-G3^Iffjc7snk;B>(MO+9~@v95UO>X!QR_1-L^vxR3ETTM0R-QZud=C%InWUpXo zrQq?AAB^e?1Hf^8y4?l2N?_u7#C=#)tYg5&XrS_+4{sS3(IoU_aW;;fJ`J+8ey;X0 zJK64r9Ob#o;W6<0*C&mH@02r3uvL`mPP<hf??`mC(o;Gw*UzQ?O~6F~pYINnV&8|+ z>*%35IlyfCxnCHvNw6xOXL^pUpo-uq5cg*g-K%r1j>f`4QHb+#wu4Om=WOdH>NcEy zzA5FGss;a-nQdT~Li38EoQ}C<;mEYiOlvv~mBA2p*_1iYs;v}>9dAQqJv&FXDopki zyf__=_a*Vrl~jBUc&%+QZM{W98jkPj%3NBZEK%$7t5@|D@l7dg(hF3I=B-ygF{S00 zmJC0#@y5Qw-OoNx$;qKf{vQtMyj23&%}nHU5{=^Ga<7^~xf`q{mUfglR$8Zcc7kGC z`jcjD1Wy_%_c2b*ehP<kf_NW!yO}`Oo2vZ8le0i7%Z@cUOprffSgAL*C|bUcqX-SW zrbp9zVeTWAl4-8LPJ_b}DCQsX^!j4B+&XMK&`2%Gfq#6s;^+a-repT`QX8jxda)7{ z^|w7OF(>5ZEjeU|`|X9My>1CNdgNLfed5@(x~$OX9uw7DRi`4tlEhHAM&)|c>@XFT z!?O(GCC*yF8O`n8+*#8Ufk~<${h}8ZsI9Y6WzN`CZ*ErDc1&6bNPKGr5%mL3z?1T5 zV0>>apC9G^1Ut2--Ey2L@ku;e-Z@jjm~XiVa+fhTAVSe61w){ALsB#uUfC^zH$#_{ zPJ>35wvfQLF!>4x%pGgz1-Pr|_lS_QgK4pg#$hD2>RNkD-9wQ_K>mpmj1A77<_Rfi z$*|q2pu<Hku#@0y-U)X1c4f6CB;jV19#gtKM)#A?EHikF(ujvk^7h9f?_JSWV&am| z8%5rI4yf>62Z^8cJa=dwtI-HKG@<efeJp6d=fndfiY9tJqcuov*@V~8%Fn(q|F^d3 zUO64$pn!nV{t5g4K)=j9T+Hm9tsLzC$-71K#^Hbi<?Fg9$PuwVmy4%>uucBoiNpZL zko}zP9LSJJS!u&iwAi^6O&sFO$P2vmSAA}?&>SoVttcKsxWhIdLTT2rCL`UH+Gop! z%U*1y-cOO*w7dQi1MQ?GM>n}mtnW~kKA%;2Ox~2+G8>6aj9*c)RG9a@XSvQ<bkz8o zt@^yeVX9BrU#|D@)1&h(xm^c={O}XSL*D8ki;YAjUI1o{7;($0%DuFi8w)wlIJ0K7 zPD6xh<BMp>hQg9r92aKa=7x!G(oZ)E@#)dvNEM=Q2B+qUC*JtOS%~YcvPsv*4#t78 zf%;l0B(FW=-{SNjZN}>XP@=fRmidk~)A8UMd|)9l+Zrl4P`M@brEx+F;F)L3GjJfe zx!kGy4*@|e9_itGwu3dp_I?`i*rTCaYwk|&i4||B&|f-EA~5BT-4x7BB5Y-s*5l@V z_s*p`mQvP~KIB~quJk!)w!+5c)?8dve}&UL9Xym_O1rSP>{HX8v225Trj9pG36<W? z|6J;<T)CYe{h5-WLmbyQf$%U$`ZeQ-=hVGsxrVeYqxXy;iMd-j&$LAlI!88%Ae`)x z<{B=Qs(?y@Z{0G5qotN%7{B)Q`(JKd!0+{u+5huxZ*SoDOMLbejnS<zBxk5g$eNb7 zPoE0lWnN{JdpQLm7#U||uFw468S1cNfro2pY)>Z)L#i8r5=48@gAkAKyOvfl?!4dB zwonnrA}=4?J=A0Fo(fVxJI66~J<I|r?au<WExI%Jc#$15^uXtzcuu?1+-C2+zvwY$ ziu!TJE5w<fjp6o&LpXsLt{NoOtDDH#40(qHyj>m0QH_VBmq=qLLq)i_^P@d0tHqdt z5>`~P;UpoY6vP1b@38i6vZxLL4uahTiphgY`&gc8W#yT{2*+Ms0z<bEGwK><Ut~r^ zbYcx#6eV<Bpo%>l=dCDrO26gvP~gydE;JR_gNjsjlIdSg{g$k*rZu~A5hGUAj$umB z?lu5--!6>!9-r5AO>^rOg$13E@oxuR+0gY$kU2#gt0_l(C9_94b)=MFE0anl@7ix! zGbd1|2ae-lg{h8L9Hlt!Ro)QVwPJqLh8e+<Z$n#dU_SHodzCfV#k)AiOU+Pz5Oc|S zj9;32*ZHfJ6;eeKs8ACjhfrG1aU16?R0+vhTxsmA5B`M8JqFz+LDS0R%esT;J5Ew_ zm$<?eC$CwF7fS`sfi3$N+4ZB)dkuPwDdiAY+9k#8JdS*GR@$(0j01RDYFJz4WL!j} zn9S#sLhVpaWq+gJ2Re@A`<%1T27<-w*{BdAjT`jQ_2})gT5{Cb_cQ#_Eyytu^980d zJE_k!_mBCvg+EEMZ@jcxLB*{n{n&v6A#%fh1Vec>0hf>S%T-F<0^MiGEH(g;Pjcg- z4nCR=m8axeYowUAG?nzmL}REmFi~Qa;*dv_BXwalPvnmDni+>W6W%Gnq5sD6F4Hxg z6?%3DjD;+B8pC4WgI0`x0*i0e^k*waMgRTPV*l#+rtME`J3~KwaAlA;7Knd(^Nd(d zN*Ff3eZity0)})wrfwI~p>Z#t3%q=|S*vPyL`k69^LYkOsIxSgfvJCMrPw{5#b`aN zK*@d`#2S3d2Ie4Dzsy4g93@2Z#*-%$m*fW#wC<B?m*gJ&$FSCIubhlcN1-6{Kol{6 zEBJUpC8xM1Z+C(?k*#c%Q0G^HaBrf2S|!_C7-jL-s{1BgyGJ{VgB(&JGs38>QK#1^ zIx~x=#LbQX97&a2&<||MWd<;RVJhdTGq=ksW||{Zp0baXE#qczC|VW*|G~Ub_;<2x z^mq1Ul%nMl)u<KY;+J6z{0X^9YkSGue*7$S8??J^>**wecFJp3a7+lId;aR*@#rdv z0K#yB(gTj9Vi8mhGDm!(<Dv~zo~2%B`GOo+U-qK-4+ViTFF*wvn?;EV90a14Blx`$ zTCp$Xu?+1a^2&+6)ADFrp(A9=jQoW`VFWa1aR4ai=qDUJa$UHSwnR}9gDH>dNpw$_ zy)^yVJ;=u(nR<@uHJNvxdo^nMCfJI~4ew*)&GZVP#O$JJN}=P4&8NHX6k<YKMzCQ| z$%i6zKf2%SV8TtLag3)C7*}pB`%KlL&7GB$&f^C(zt#)$ll9t8|Gcje<*zMamBlyD zU7EVL`nXM}`48D3Db@xaXR7ls6MjJnvv|zpRlG4OpX88w&~C9X!o6yt>B+vOb>%Ld z=+#q7W!-3626Dc-JcR1Ar!UsO;mpfC@@h_@IR*(GJelnc4HAHYa2J|=mOFM!LyC1$ zv1(yf_2b50zJhUngpniPd8ug7N4Ac=01FFLhoJ>x8~Hyu`3OWedm=qJ7Vh+GM>M#G zub@B_1%<9+(Kmn(|FLAdYx!v(SRsYp^WT@BFQ~#8QF*Eid9yx*x%1I~V$ZlN=1Jjj zdMx1n=A9~ao?@mhj<eSYAMZ-Yt_hpkK5n-dPP~o{%*(GMHm)*GHSf>2HIw3AWFN>4 ztW|HQ{`NP;QRUZ9(PG=*%Ib@oyH_5O6ji$eOclUT=IxJUqH-lX^oAG>_|VZoBtsDy zw7#048`NRqG3Z!mW^ohQGlKv$2eWZwFi^8>nH^re(nC26mSttJ!<LyO3Vwth*y@^i z%q-(C?2!JLk#3k}aO3O7?gaQnY^~g<A`0y|Gpbip3h>ik4d@;C{XKTx$1<5Yq73JV za|K@EQ&_qA-vh*Un^yJ)I1mst>i@gxwXk(C{x>^ZY05kQ<9z>H4Q!7<$ybc*EWGYw zh8OO*lJSzflAg(I$RczzE2x!#3#2B0-|R;hkd5Cx&Yl%^W{|mI{&8^M0U>~c7~|D1 zG^7nFuhRb~x1iW#^c8ssLYvZR2&}`W&Ok3{XHwSi(i)B1+0#ahTaFKQ*`z;7k(6q^ z;`(+lf2DWvj^RhD>ieAyivq$w!rL^`SC|Czg9m?o!ADO*b)Sd_f}|ZrfKVWd)dmVi zYU2a~zh&Gmb*AB1qvw%@m6vKV=cY@uWH(f0O&P)^2i`e50)r9|C>`0x23sYOfiu|E z46rYhMt%m>9N|{Ja^m%vr1m4fDGIK?v7X1Gg$NC$azJ6>gS$zBq6Zre@>!+?^)hw( zr(9ts*+U5zVq+GJUcd;aYW{Lau|M^ks3x&!R5HgkZ}FAG{`<S_75)g^R%|GrnNC-; zezFxN#aso~pj9`0_YoFk7N~ML!&zN;8cq5<=?ufb1`<}2Eg`R*L-5Sbx}|GpJpA4W z`wm#a{4k7YAs1-DxlzbSZJGw#MubD$$j(PnOO*Z}0xmQtnO{%#8cfIzBUe$Ycl$e) z0T|+&STM8Y*^2ERT7cf0WB`O~sDBi4H7zHoeyLg{=ZEskK#pf+aj+?w8jriME_`@D zrutd5`d{z0UsMdtrZWB+axZp;MK^?Qt*fY`3`kR|sSGi5w6L6Ob%Kq79^>orbMfqE ze^8Pkt(n|mDt4$`ZKPgtu=;jJHh`IwKZ(s@MG%S!ivU=KUnjMi49J9!F*B=n6?NvL zo+#6h$nO!hZwAJF(X~pE{}XQjGSF?!qnXhM0<pUrNE{g!Q*B61I#=0YG=a86dv@|{ zahUq2ousf(^8IPLL-$(v$W9Cu;N;56$~S&~I$IU(+MRzsx5>!MVRUcRBqB_zKwFch zW)~97X~$P|ULIz$txhceUK#!U>0%K)21G!12a3&9LY}6J<Q%F}7%4}w+K|P0LOoWG zoeFVCo=jIhNQHF|$C_|<aBy|7CC@VsBGT8AKb-g?$2|<fI}Pls+z_s_iJ<M#qwsfn zP*(9Hx+7G8hJbUXlvE9-XXuyahw>O*SZccSUjwZ=Hj$v8s*VVnI<ln0NjVVfaT}sx zgW`}QiNh?XVk)e=GV#FkO<Q>eD*Xa}vkYvtmZcrjX?0XADgv<}ZyM+FMp_<|BksBu zr-v~oHhGpTcDFAlg)%m8iKVr2v+}|!`K`5O(i-6vHJl7Vos0^FJ}2NPyh?_B<a3(g z>$XSBTx&Yj?Wq2x7&-VZ1fwlWHAtcGNv(adf8Hf2<T*(AnS;T#fRB_UBa%XVtKLdu zWRQKDHZrJ9x`M9nHC(~%N4ht)ji>YMB~zwbxG2^R8z^-}VGF*|S%8~o<1nA~$mAzV zDH3!$@iN82;UvD+b9<{vZ7rixyZQ5?XmgSu|ISxZx7@H6XX<aG{eWM$_Uj98{G#PO zecFHZTcqWZZKREtg8f45Y2QKf2cxV+^8zmymHjC!wh&@7y9AaHzJ&lDB7jt6ts(!c zO<e^YkPYmhtg(T2zMNmYxCbZxXbPNI-ksbH8y8tT6c>V9i_I~<dR>Tr+1+AXJvcMm z6x=?BI&odg%lS*i<(ovC^0iI&M+VH@fn$wOdEqVMN=6R7(^jh48@`zE6{a017m$h9 z5;NCqFJ&2cis~W`GJY|i<Zf0S)bM0s4b16hicmZx(LK5N#4iW_b<n3AO|AW_*wXt9 zw!I+Z%aEVL>=(>LGh(8dK`S5MG?Jt~%f0{I;OHS$mOa^}2PA=6@+`5O*ZO?JYhf4) z|4X$5T-?guQfF-WIlDt^Zjex^4x(PDOT2{lXeG8|iGFmK)!N|}PN2v<S5!|~XScP* zhhxY*F8|t8s^<3=|72sAl+|ScVwvM`&8|4#1OBGr<$WLfG1PlwJ`4|s_qll!*1s{p z^KVue;G>)7oYMq8XZEGi1?v-!5z-&@zn=p1YF#y?w@>Psn12Ql5b*zPeXww~qGx4c zF!M0G?DF?f8|vWl;qY$cmgeAwwIvb?01}=nD3WEnpr~hFLrUEpPSqnJ>x*Kuw~`&; z4$uJUYqD`>u`R9LKDX;ijrL>gYI|93y&q6_OrH&b8fWwmP{OrYjEu&SmBVN}{5!*H z!3n+kvEA+O`{TKn>^wcm$NDfi`M~$U$2v2qF4!K->V!8kkY5Ja^i%jbIsAU{NBeHH z_$1EuCjXks{D7C;&Uq6$D86`DVfX#nkVo|8{Mifde(AcAecSOO>yiG}|1RE{_}xB} z{IhlQ+wbtWrY0sx44XgiHWSnS!y)PO!{~?C6!YU79y{oz`PlfL<S$}fXCm0@hOpnr zHfLh;Wmm*y$jeu}z-GkT52fxFL!6E=lT+AEQkJPMrv;lS&OG-uJQUs10fjCkBCPD9 zH*k+C7Xy1D<=b%%MAyROAqGT5J?Tv%=11Eu%E;6g<ol!l$I80@)T+xx#i!zreHy_U zS>MM)9hk_f`nPq4Pn?dc^TK&}NjO&>vjJmrHn_io9z5g|kHd0b`#`8>o-kw64X)#! z|6lQ+pPrxWA8RS`KqM#Jbufzp+3rKFV|u<rQZ_X}@|=U?f;=`}IUa^>)>V$Svf<gT zdFV2BP`<;RxO`#0iC<$0QCsW`ofb7NrsRXH`Iu_ZI!5$N&%A6~!(a1*0{IK3+M1ZM zRknK|5k*V(R1Kc*za98OP1qHj&@ii-I6QJqJT&mSzFSf2&vuxTLbbd)!|8z50qX*x zfQ0nFDhaR-gr2co8}p-gLYi4f+IqdIshcDZ_-5<l9HK;Y{^&4h8G%w;g;(Ghh6`D< zpy10NqUhl2ZSmi9u(U0$whTyI%&#PD5CT)QL%q(o(AZ2S@~2j5$}_0iDu%Up^IoG+ zdp@Il>&~I!+8hs=w4&%fWjV@ADt}eRg?$P{nhumyy&y-7N<K^TA7azMOHTqHyYlse z5N>gCJS&p!i4vs<KOi1YggZB64WuPaPbA983k8q@wC<uG-~K*gr`eLv%AF=a%qu(a zN~i+O*o8OztjCl8P-B8&nGmk&CP?y(7~h<1HN%gS*}xt*_D!o^aJ6XiWgJrkpN|Le zy))MIO!n2Y>GOHy8v)?$%$R+c==|p>80_^_5-?Aby6Fk{JO#h(S)^rDIWRT3tfX<# zB285Y_~A`iJPWpn;@d*6q<$szM=FLV_A4NO&q!k+qKIb}pbm*|aARfgDZG2)F3x7@ zVShpU0p+Cj$wP2OWMl_`<21Qta7_&%V`@|~cz`%|it=%t`FSnp3_|17uhy^1^G=b% zTWW!cIsPfL5(-*|DBvghaPvqOy|gL$;lRAj;q#+RHy9QcKJ%NdJ#ySquor~cb35HR zYOU|-hqq%k@!p+*@$X<d_Pkbz5GyORnb%w}q&rb`bVAD20G`v11BVHE*8l<BN>z8f zd~iSS1Sqx<3QYomydJY(f6tE1tuYZ&8<l4x;JQk{(}t(FiDKUNW|;T5^<;%+SpUN_ z!<B};g1E<~4P2C#u(t|P&wYh3_WI0rg8?+L0U_7ND38JcKro11QFbml@U^mQPO7Kk z9HF4C9U%_zb}Xm&1ylQQIUru=bk2D2(i8*7i1lneeX<TL#3S>=q)G=Y?;aF~SAWBT z5gP9Wi5lqLi*$*XceV-l9jy4^xHliK<tXf6pnh~tc}6kV<MuT?D&_&q&D>M<9mR!t zpOyCFPQ9&qqw?6af;C7afk8eV>`tRbN{X@h14i>sHM6v%IVJ#*u-2kQN4#~z(0A=9 zhqTGj$<dy;(P2j347z%C^7rD}@c?WSGK*`2!jY!qKGl|loVVAy{jMq<pj%xmxp#-( zL=XK1)B{<61BmA{U=3X=nVBm%OPE-of8ksNHX*z2o_n5+F0EF%<!^_S!`|<?_M|hs zvO|r`+I;e%AsvaO6GG4pBn{4-o$5MRp$1U0Xfv2eRnn(79##mJ2KN~=$1e96J21{j zvHXcOy<1Je1J2`}T8+B`_XJu?GwTb`=XJ3I{;S=FIVqk(K!tQ24q{PwSz0UF`|F`F z5S(5A^t9vgeF6y?v_=i7U08nlk;82O>!s-a3|NJgk+g>)1Ck!@E|e-Vhbl*alSQjs zhA4`L(JIT@3x5neL5;^_#GrN3@DZpaU-4D2{md4k5vv_HIh@14|GfOTfm>@nU8iif zd62~y88`cE{8%w%1qK6%Kv%CE+S?)Y5CjD+Ld`JDb2k+ed&Uzto|sm^Mk;3A3%@$- zD+4guTdRnR&6T3ebw`rCeN$JcILtmJKd`E}p*2wGfTI+`h%;5Z@Sp%&&pO63fO>p_ zljSbHP|zrfG3{V~c>&4CV=iO|TD55co6OU97x*f-I!Ao6;2`Wn$%*WEzc2W{=E7k{ zCE2{qNsJ=aU~67KzhRxbTi6rwyjbPrQ?PlN!s%r>#Rf&oET2_17*-m2D0b*X!(HUV zMS5R2X6bhviaXJ6d0ssOQVgGhZky^LG&=@mO)g22u9A9<ooJt&h<Fz8fnCs4AU<9! zS!NKM$s4HU8gHKNeYi%@NnnnO0^31n|C=J4|IwC1DW`hmpxB_vlj8RRIw8cG{DLxB zhgStO&PLrBh+a^w<<5-Oc>8m%ktFuXlg@?m{gq@3zqOMKTX|xfUPh3Z8xvu#jeD1R z#JpbKHDnllKim8KFX+l|>WPaDyK?;@r{YRpW^MLzszje7q@F7jne3_jx9|(#eh?%9 zCn^+Kav!7(1qRyu=?EWd5+5A5L?HY)RHY~{TGJkzjZ)VHqX!-MR!3i6es<iHr1>|d z)tnR=e*x6v2$GuUvdKYnWIODRUGm1>^^;SZtQI>D^u;a!jAwO%tJk24=*SE(j<&S~ zZYf7rq06CnOO9@W%af}Y@E|!Av(1ATxh-HJ9=0BIYNN`<0|=0r>e#I_!;%%;vWaY! zr94hExz##eW4F}Y55<;(?qbO?QFk(ho7|?Y#GqBUcnlrM2RD}gjkwD`P6|k{s%yuE zAb|WwKWAW{>I3FpxsH-WwX`7!cLqRg!4Q`4)WH<|xSYX(=9mwAGJ42(En-06ivhJb z?zc`*ab-8A&M)I??K}&xLRyr|j+=F#E%!Bzhf9p<dNi`jpRrMOL3jd5wd*iR+?oZh z;Eo%_CT^pRx!egB?!w_;vxWr2;H>YBQNE&cZ(?4efC>uVKPNO1@zw<6TRII4S|+j< zVliWd7(TvpB+na3EmNZh$#_R2Q2WbGgXDZB+$Sn${mZ5zxl<_ze{xq%(VpY3L-Hc) zW@XTc!STTw@vDE!F^bKj5^wZIdEpzlCe4qT<o0|9bMXBQ&4{5)5twp|kOO0WrJXih zrN~9hNje6HC^-ub4}jtxi*Zm$MyyUQ>e%>>l7+lYg*U+a*taX!tSm?n>M+;QlwY_= zfGj{Zb}X*5Vy;;evT>@T&|zN#Ik;SLEZK5SXmL&sQ95YIeRyB&%;-``$dYbZ1E?u9 zt!Nz*imC3Azg@Yi$Bd?G7>U)X+5Daui12w6h#5_<x^xA<7xCWG^(4NHp}(ZdW5}$c z!N0<V)W+DR#^jEZQB5(AR`%Jqu?!IePq?*VcUk*aS*KCeh?E=Bf#}+4%oX@p<O`Rn zqD^VynWc>xj*=b;DQ{0BRHjWNV`AoFoLzZ{L0xTHnxgO2L>C|xnrR(f*yz#u*=iz{ z1?nNIDs53HTmQ$2lkJaI%Pi(2-vv<gI-S@;<ixpUc$QNnEdt>Sm##=MEDn{t`P)5b zd(zweX|$JsWi8gLqELfU+{RG{u6gif45=8fuSobQyf6($V~Y~TrPKE?dvCfDkJ|-= zdipQKqw_*O{*>S0FpsmkaLRrxX=J0QU#J)SuZp>fI?k@eC8S=(T?`cdm-)Y7Yp^4a zJtdX8)OwNTV1u1(_rl)M^`xZ}c|F{$SNu$u)+DV1grr)~O^Af50u@kzd$CdIgDuL! zQteGt6kHl38w%>S5<~Yj6*^Y8|KOTQiUfF$Y2c@tqa7nINZNyD)uKr)X|rdmu~*4@ zCS8qcbGF1J4=2}LsR|uy)Fv-bxx@BmN|E14Z82k`P@;^oB{3+SdC`T3uL7TRqODb_ z)yf9Sz|Fyt2#qNapz@wyAl&ibjDwdvE4dQt1z+x-t3C%qj9|CQL3O-u`T=j;O@PZ~ zM`%k;Afw?d1+~ZjR_P2)JLaM+O+3%IpY5cLWKfl{0v=`c<YP-Ptqp<za>NE&X$igp zDg`ghTVDs0rN+DuEWdO$_r$5q0IS0MUZ6DgvNcxWjZhagV&XaJs*0|vv(E|Tk7%vl z*g8881Zi{YWY`SNyf!wE6|cS~_RXG;sQ$ywIljy1G6Iq#Sa>%!XBM<2dQR8p?36{n z`N60ZpoqPneK>n?SJ1lW-Mgm*$QFlwkO_gjbN<O?2Xu5!`GR-LUe|Px?93e#gxy?R z*I=hvw05w+wr)a~BviKV|Lx-5cA@H&+PqjC>~go6lX=An`@Lrg?V}g?n|5wvmlna` z?o_v{wPMvgP^HE_E}4FsWeUA*Whk2gNEu{#UteJ}TOTX(J9h8JJ2yz}$%-4CNlSRe zn)~gxp%&Go&8k}9pgq>o%5OH|)b{=J3J*7E24k0Q8-`8VeH-kZ14ix&3=RNN-vH8V z-NiPVzt9f!1faL5BTyKsQdlH6D-(*}jc9y70Ul)T5wa*OT1Fs@z8|K7_MMY64gygr zV3@TtE39O!1oFsai;3!m#Yn=x1j$H-8{TvwhAvL&R*7IeI+XBH)o5VYX3?C&`X$@8 z4P2`QUgc<lem=m9T`8RD&VF4NdW&xP<40NIau1FUb;|@qRr=Aes%>RW>Nh)cGdsZ^ z+?5@4%rLy(FVx);oA#R+wI#?D<5a{JM<wA(x5HPPnM%rdSCQ*MP6uemj$xvwaK3~s zyRX8ZfVcg0Mf3C1Ga+_x@t9Rue!T?!YIwAgu2C^{rh1CMYO~g-Z=lVjeoPV)R=6s& zWQN!=-i`OG3Ta8{-H12}_^L~+@I=$LsJ;yb`_Fo|_o3RKYMt?6mh2gzoq8Ophs;w( z+!f)6m*2wzmO!;FtpL<8a=4xFy%H8)Q20o5Sjw4STBwCvHswHdT$cbOhgmndG%%@K zLlNGo)*{zH&@fmCs8xYUxRB07P0-<Q4Hk6+t%8{gBRCPTFJ%%bHpVUwQW{--?F%6A zu;<Olnb?EdwV`eUqZtFVgQimi9|cK~S6dFY5m(Y@i9Uvs=XWyVUqY&IPBdHg3)uUY zwa^R&D+Y6=$^M=PK6safcb(Lzh#h(07@9y}*M#;;*#{rhgoo|y&uY3hY0>U!y*3+u zaJwu$K3~<D5OQH}kV%xZALJeu4)v>@myD{fX!(&9OZ>{D>ryA<{Ex3B5-v=XM{`F~ zEst;6O2r{iuzHguKE2IMT??8R6l}2Hm5-fVEc(+vLe?v=T#xLq-1ZvKY;pFC@<Pxl zqEyx{WF+%v>4t|(UZ*`Kd==kT_U{%kg&PI9pswNM$?d=2r4~<TDry1VxDE1Zueh3} zb@t7nLQNS6CZc+`{~T@%<P~s|1eca~KCIx6D5cTXWJxMOZaAKdGh(<FT!tA1A4&>% z5;qU<BVmY~*p&sSBi?XJt{*h~*%nv>>3p9oKZ*AJPG6qL_okdbxKv>4^=Yza3jQNE zhMR~7dP+^{{VZ~Ds=2OMYPy$CVUi)b(;>-qe7hOZiMQo47#q_<K|W;&P3`x;E%n!e zQws~G`Ise!R*60GVyLxmo%T%dTM`R`-6F(ElqF1tgmmR1o#XsdKp}Qjzf<X$J`XV@ z*)2}fGdNK*MY?L;K?*yF2COH<_@u&E2_HlzO!J>N`Akz?n<#Unm#|{<JHz&2d2fe) zh#)-*+y(ioEGsoH1)$X8DRRpt^G-<c6%lwDkhjLC1u_=U=qUxnfTX5*yK(iv<deP_ zV<vIfjTr3~p|}O}Q4Iv_Bj`u`Q-#u32`#b_1AQ?Klfc=O+MC7SQfRGL{bh-+)q<6E zT$3s0dI}#>tW{%$v(dfu=Xn~pp1XVk!5?c)@%-@(lx8!im)Pbrq_-u(pji;ls>rn% z$z^Tym&5*#F0I`(e!FHshb3?*pX}Bu)ysN)sX?UJc$`XBZsSk-=V1C3U!d!EChFjh z!U2!sVXA9Yy#(f$<q4dtNxktS4A8q?y`_uHvLMulNOh1AeGZ}ytDSfjLqhmIE%HjD z7Dx|DoZj6KGs_m;Ar`wSSQ)^tDYTGC0jl|eaEt(Nioq8AtaO7$p98MDUE({#38xH^ zRQov&AoH;RdO89)F%IDrL3)$}o2A`_gehcX|5t-Eq6C<rOpX8qqZ#3sYs1{hPJ6_Q zdHx#KmwJWm;M}!8z>UKEFjMK*$`#6;dWAu3<yA7{feBcTd-Fa}d!gIjlHG6H;-oua z`nYvx4L2Cgv@jA$DqhZee~#{B@A;VW9|06P2XRJEK*pqD4A7+H2m<lSUHSVY0=VBd zA*_SJ4k0uls65<{1i@skh^;l8B&S3A?sg3+=pPO>n#+(~Ka(&eD`=xKo;j&bZOt`D zPQ_|-PM)<X8&00ZSU#Fkt>MAHw;_=x8`SeO^CG|$mL#iJ1cG`>U&<11KDRU5D;(%L z^zxSP+l>PGD)};7%*Za7EVIcuARKW)J)nUd#fgD$Ex<JCA-4Noij8;Wef$a0z<nl+ zcY(S&BLn$g^%)?(Y2p7sRuZF$9XmyPBX&Fqmx)kkldcCzdA7{cp@<B_UI~vEGX{Y< zu%=xsLG&B%iYHua2=f6WbuC%(6b`CKD=H^M8}Bmfo=1BQmVXZ$Awe1xnk9ipSa5$r z|N3QoOUX3Rf;WBxM?zh+R;k*vt*pR{J3agGb!#fCeg427Gh<+Qpb5^LYg^;^)%ZdV zg}?&LO!%$=w}0N70Z{2^7;_r7L@{bE(49YA)M$tgw004KO;StpTLjf?!+NDhbi1q1 z>3Fb0La;_6h4yx1xf`%OspV@$_xkefg<gNxG!lc;MKm+X{y|6W(F$cV*lgpvwjXp0 z3tBaGr;0G{lfQ9gS^zC8!_JkPHzJ>dwu?Tfg{x2QGb+hb9;s@Bq9L&&<pV-(3|6~~ zYbycw+FEtHb5(#RZZ`F;yPX|d&5(G+PBhLyd&LrPzs9oqolPKu-tj`OI}u-tnvY`) z`i;zhGD3jd)-$}{L;r0FT&3M0SxQLNa3k%Uy81G-3!A{vTjek}hvBGvQaEV2+jzv{ zGy*mKIBl%PFxX3<&MrTb#+bR1K!mc5vxJ8JsJO(o&fN7AuGpBR`kMsQP8Ne1OPBx^ zw5Pvoh;9EMRiW?&KWBKPMfbb)GeSY3#@puV(mPrj6LKTtb`_jj2Lo9meS_y5t^#>_ z9L(O_6m}njoGT_-{D#UEQH6#Zb!rxN__7rk4^<ex)p&lt9cNQuJOw9ttXC4JTI2>S z!Z$F`5FuWNRyz;UOB0)6-I{U~*f!mX%VDE@)JUa!n$5|+NGx8x8K-aLVz;G*9ujHE zVZu{r&?G>ec=m)fNhmJ+5D>{6D3Nv%b8^OBlsA+WG*A}is1k=k<<f<<ifeI*uLPI` z*st0MJ&Q$Lbl41U_LKD&1Fa1My=KMjZj5Hu_PJy6AMl0n!gW=^_7`X+6y6La@xBF0 zb*EInObUUi5!^iu-BHC)KHyQYL?2*T`5>@Wsul~W;@{ZkHfOrK)DUudNN^9qcMGn! zgRx!$MS0{89-?h<hsLt6*b;~$sG?B>LT2K1X0b_GnE$cO8cRSJ!+bguGZ7)j+P3aD zJ)`Ky`QH4pkB@&2fG-p~rcJ**e~1w>KK!DmAibDczAT*sC0-foj~fRwrh3sdcSST= z40qhg{JUhF|1WSo{3nE;7w#c<F4X;Zphxn;nTPB(qp6q&3r6k)*m9f=m^$0lb(*n) zjQHwrSIsVxBcOYf$5$Cs)UYA@a+i(Y^=&0Cz7_US$JZQWprLb<Th#Mh{0YAi37>I{ zn%wptwk{(Zc(5~$q;XWQMPj`9zkNEdZOl`x<iLp`B~V3)=~C=pc`~(tg0+A4kM0EG z{kst)9hPO45DG^3AHUO<!3K1?#h+s`Ii53{k^I`f$`YyxO)r~}DqJ+?<D*ej)bngC z5>>iePu7(Asy@y%zE-(2va3^H#2(Pfx~zoUY{536<+g$9*F*MOxg)DX+K(xT@=g_Z zqwa%}DJ;EjgJCMj{toV2LuWf~#MIiVOJE|Qcx64oqquHFZX*_U`Aa4*fs<6maV~Cb z>k9A0TWf24#6^ZG*w4c&*fW22f%zNs8Q^_icg~H~2DANu#!k%9_=1_1!`J>!xWI(2 zW-}6d%l-CIiXmhzMBY0^18sk3gKg1iv4rFkt>wxWJ8|doR6uS<u&@s6ls<LDaKxYH z#>St%Aky62(+&8DAcK9di#9}%EIC`n@qW-TCIYRTas`=?2#!SyPkSKVF6{I|VCmhP zqBd<`SekkTfbWYIS3+k`$yWUlH7~QRh9E~r9!I<~#M<J5AT>+vZK<KLlrAc%p*c?C zie>G-;97K%0X1nxdvNd*uqL^b^(@JTwbtpD)#Voh;upTBNe?T{;vjYG?fL`G-6Syq zIG5EV7rUmwZ&&;Wr5mNBH~{h0fn#y1f`({Ha_|A3Oj0UclLzHIAB_fnG+3YkujteT zJl#GYUr!0P<dR}GgpjBQKu<->u`$Zg%f6*qs!Edg(0eE-JR#D>n<qTew2I(;;|$k; zbrBoG%sO}~C1bovIO-HI<OJha52~2b4Pnb`7)xY^D;l9yGulhJoZ$y3vw`mM$PY|* z;<7|-%mvJ?2H0>9DKV^$9MrY8_N5ddmXoDhJF>5H?4Bl+&w+*wQdk;eFPmX$g|VZQ zn@y%|F>q!qkPh$b9%z~<d!E5fvgM5QkfHG*8l2iWHiQGL@G^ZE4p!f6RoJTgJV{mL z;h9D6vCA0wex6g2y~DL|ZCV9UO@7aUKYM*cd4nT1t;iZZzcZRn8So8ZWwpO5vG0so zvjmvRtrioj^^R@<^s3KIrR4WJ94SRHq%p;qe5|-907K!V7R@=3v+Tjd2m>d}T^f^2 z?LmT}>N^kva}ng0+_If()>h~Uj;?qeyx-JLZQc6XA-NI`lk%5Si&k3+{J2dkPu~n3 zyTG}y$CN+E*ry6sBAHHSWo5rbe&y4q58F*XThNCKob2!k67UMPfMg2%Sq7L|d$@@~ z!@6EQhK|{ujW+LC(I2c6*X4#KDWiL(a5q#5{Y2R?FNws`%u+gLMn2B1%%0~U9{60Y zHb~U1j@2$lq4;rNxY`AhgZYPU5&VvieXgx*zf!b+LarKP-jAZJkaZmrsq0><kOmI@ z^-`<eblcQgSm+1-)?R16i2Ls|gAzh@-QD&2_2@<&0><Z#Rz%D1nZuv$;2kv4bVsox zcE`r=)rvqjrRFNsr+X(%mnaZ9pE%51|5}Jz$eUxT^0>5&hV_EaVaI3d7m+%%Vee>1 zlPGHoqbTXCsu8)i(P7=B)$a-5H^%`=mBd)vmz$j#?Z$_2i!?n;^KkutfI7VCU{=VL zZdv~EN>H(3zPw;JfC09EW>_!x?61A2ovSnlC7HISuI<l%d#0KBJhmL!1X$0WA3fwj z>HtV3$HIk!*~aekk-3#m@iuAs7_wI}fqa#Tb?TdTir@R)5*0OJ6F<HRxzGi|<Vm~W z?(QnTIkTgn4_Oqy%uZm*HXnV*=5Z7JZq+GX4UIbP;^D<rB_hz8ea7ArC$5O%K0&Z( zJX??@k#D=<6U3P<meyRjh~r!ORY-?Q1KB3?Pxyp&Pg#waG_6YxQl+O`y4E|SY_v}? zn`}`pcdPPZf!Ktg_C9czSWgE4b$YaXZZj=(H-L<`6c|gqSoiwm%v7L3dbiYl)v<PN zDVV`qpHnZcFVXc`u625QV9XszVGeFI(|T~ph0(<*(FHW>?pNnvrqn}yl>og3`8c+h zE!0(&_B(5Y-HQ%RzPPO}KsQU{!s`>_eMU1u8}kJhck$R>lKMS~?PJvNFd6Nb&G@qZ zL<T(s*D(uS+GT-L233JWVrr?_a(T)b8*5L#(?SefZNj)2oWcv76V_!XnQvkLv`7B} z%*0R=`xKv=^h1b1SClN(+^OV9wD?MQq7-fIjTYEdo!7A`o{lc2k4|9b<as`vLHNx6 z-3okT*3o60<PbK55H<Ch*1D8CtBj8QgjTWzVzi=W&*-|2@``rYmKq%L(1lU_>=$m= zkSu3$$N)ZF&ZPOSS1oE)i<cE$*zr9KW-okRWiE~a-R*mA>_-DHWN(eQYqg}E0Ag%q z?{L6<=m*Fa!f_617+OV$t5}5pnm*kUCC?)4RK};prfPj|r>q`^;^Wao$v7X9a*596 z1ej+|_I7ZFQMqEcLcBsNCv2lDQBu$WK$b+BqwLSLXf2vu=eT7r#N%=<Rz!MVw^?d4 zC8QxADODd(FcEg-1>cs37GdPi{_1j0;B>DOz#DvZ@9C(WN&o%{h4wmH4)M-Fqc2^1 z@)6#ydp=V(+kyfO!MT)0xBd;y5*7aGN(MMs>}#L4$a9pf1mQ+FCO8pn$ULYqlv7Ge z;Ho)356D=l4s`z<sTH2{IN;hXPne@#ug@hUCD#7x(ej=0iB_T+-mWhniR&y2G-f5% z<YAW_FMEiItJV40YLv!_!56%Y_s1nGDSLAn;2+WjiiWJ+i`1%^?lF)3l_!{9cCZZ@ z$sJ~zC=r0b!_BG_9k=|-YDr(t8t>c57w;MtFZ1RlIhyR_l5v%tkf_@Wn3HogVw;i_ z#KCEbO*0Me8FEBoIo%Z7p=A4=u+3&hOsVL&pv99Kq|Y3u{)z7HVNZCM7NicU2XJwX zk>B8$0{9F}eP187ss<Zy>mFAcmGcE7z*F4a?Fm-F6{VTAgnI7?M}KoJnct_<z{Ux$ zS>jfhI*DLkZ@*fqIBr$DM2u7VR>geG#Vxubb=)B!Ny{QJ7YLzc|7yFKr(5fXur<<) zKVY2al6v;6IKxxD!t+lgynhcZLDGqpnZu6IHD<I6#2Py;70m2&A!c43d=90v)M{@r zMfK8a$3Sehhk#QmuC@!m)PhrBIb$lx6@ay~weSK%#7Z*H5h3levKeF?P$u5<=roCK zM>lR|Xx$|xBz(Br8w|%KtiEkvc;u;@+oaDYQbLhC>dXeixIoDxW!^aIpBOJE={B6E z0u~R>QTy)vrMG<JA&O)0DiNDqCkc*Q21pl5dxBJyW+<Le@qj{u*U4ZTk#hYR`suCx z&W8LcauMnC#e&CrF>)b{q17^HCZOg6^yF6;>S$_lp+UO@K-?!nsKX0^$kE#jb|flj zAU3s`ADH7wwyR_~4yZ_+vH4)z?LCLw|K^(?h`sE6nspFHmX?gs)ma6N`g48`$;aQL zsSt;@*Max)(Bn~mTf$a+?5U&q$thP`eBKCa?Mmp(8D3$QK-p?MiyltIXtt1wqw_CV zO`{xFcWPZeBfQA)=nN|7vI5HiyE^@bhgquTo$F~L;2KzXnXfs)Clnw6?iHi8qdwo4 zBWlzexV}+3X1AGpH4o-56Wp~%ClJYdQCl{Su#lTtvMxgsSDe)3(WnN}3iG(k!U`4E zesKRjvQAfvN}D^>!Q#3y3rqC85fCYBpGZeeOa5Ri+2q-ko{MC(rrV)3_gX>FQ!j5h zWv=z%@=|=U5yBfU!>YruMR&v!@fTrXDizvtf{HDSGbR{dGgTTpi}6#leKw0&yD;K~ z#r%T{{N*439ESW-WWKV~I*H@a%OsyS{k%K^YJ`N&?=YKe-Z~M~g=0E!{^?D?<(Fso zC)jV`U60$g@()el%$%LZh%>3Z!{|C8qcOzJuduDUbc;TpgeM!H<ICZbX3RUSM-Ty7 zf8ZJR4d=Lejb)ol_A9Mt8Q-j~<4eQe*{uT?n2M!g7KI&CS6-oAZ+ahl_#n~uOku%W zOv)~0PPefX8wzrpPves;b*!$Od<%05vR_Yfa`G8DG_1RB5UVF|$balKY$@KU7IuI> zR*GmLvm9d`SWht6c2iWqb_-<TQi$YC-diwqH9q7SMLtTkV2(<qVWyHMf5j9&KX_D_ z{dhbdg8RfBWO83UC3Z^$18Z1{q<RW);(I}oX=-k|hlnlG^IcOrFiQ$Fn@Wi2(EYsS z|Gd#CxK54;{JyPSVK&KLnzaUOQzC}t<v{cW<3*zq*;n$dD&^y4{9UYWweT$@>WUdY zgV3L_0^2kg@o9Ht9;9eq7NTM4UYJ{3+`;$+5#kNPN+g7m<qXgJxo4T*K?eMu1DGBR z_D3w>d-1?7e7(Ia?7L?m(fl(ZAp7sJPbc7ym6#B;3OG0yV*>1t+wZU}m0O(&BEmHj zR=N{S2~F>3Atw_5(x3p{H2~RagaV^87l2&0Trt#`6B#Eo>ZE0qX|1=G8#l}WDhQ7Z z)dVDjg=;tDSM`(&NqYruON1BtDl~3}rVSBO9%Ngayg@%GW_DT8Mu$xgB4>l&#%B*> zkJHH4lqSZ~MBkK^JNP_JI3x~52QA)e(<&N*561CEvJv*y@o`>QrwagxB5RQ%Z<d5| zVKe3h@(szJNA&uX@~W+MM<vpxCZwmuL4x^yH@<4zJg1Vr6$qwt(ZLn_fmD!4zpepj z%q!g+eHj@b5~DnNcbKlZQZf(og!*E&xPgm9u_3~u96)-!ok&u58J3TdV%LE%&xkRn zxI~V8Ong*;l9yhW47VDf3I`9(yzR`W{8b0-X$q=}b_RwHlp=ENA~=J@k$CV#ATlon z?6~4;146)kapc@U1}8k6W$WS^GtK3F&zZumNjD@@EkeaqkcsAW*qRUFI^*8<$(<Tx z9!dR;zZ=WD#ut_iL^T;-4;rEmhwndlk%nWkaW1glw%6K=_2%*V3N+l`%qP6nP7i`X z@jxJK1H%;fnM|VJq2mv;IK1HKd7ZE;MFb~HPv##iGy>ScG}>7`0VMGUC?TI_I&S}d z;)0ci_BND%b;B<|jvDB!*JxE{{7RGVoyWldr1vX(U)v(i)?Y=xA9VpYB9Bi23>Wq` zo;WC>Fe7YKQ}wIJ8@Je&z^SS91rT{5fCb&H0%+Q)Ek3l_MOhx;mT9Nv6s~u>S%xo) zmQ6gGwva^wA#TJv;<mI}<&$*o+?P?zG4XeT>z8X#6-zDSoMB%4M0il8XN*lI%>Z1& zqXh%}VF;L@2m3b^>XS1MHu8z7D#-|(r6&;))3c;=K#JPj)-ws733IzoMlDfXje(+P zICEeN0G&m6<Rn3Rt9Gt@J^{Jcx`--8T9h<~GZg@gfHvWz5BKVbbxVfkyDxhf$=c^^ zT!2DiU^m3=Z$gUQ`I^L%{jfV2g3H)a;Nn)?7_knKIAep0BgtioS7}SP<T)r$cr9wy z(mf|ClSteA0ztD<8qqi7m`sb#y+8!<6C<#!rFO2^Xu#cb!Pgw00{f?PZR2lsIZzA6 ztV^n<b(0yqmWsVrah4t>(K>c1T`3xL0e7{Xw7tHK%>|j<=@M!JZkDj|QBjDM-Bx0> zRla46iR5fvFPA6S-A`|vQn^u%q&MT(RQnW0F5;-)H>c^*DPA+wLmT{A2cKHM?&7~L zU~}Ep*!y-o1T~2^A>BVJ?@q)I<4*>K`p3KJQOFP+%rPw!`9AQ)LX0-)-3Hq1@GuT! zirp~^$5$#{{2G1<d>sae@<B+Nw4w$;Uf#@@U!K^`^}hG1)j->X;8eyy>-u!@1URuf zFW^nnd2kolv_!?pe4bb$oWzlxXM&(Wp7&TjtV@6E7v#|~TuG3Vw2U(H-+K%@<xh7v zq=>CbYdvQpq@OL2X|XTQDhswP-DjQDEi9w|ERYwN^taYF;0vM8b0tAgnS#JDVJskz zZX-eB+cFE{<c7@^bl5BfZJw1f6TPg5A@@+9j*^gZ6FN32dZ&LPWk<hf;evjQK<H!R zLd8Rfz>`|?*A=HK#6+?k-Em!$r9O-~^8Ob9X+W00!vhMy2B%_?5Ic$vq7l@@04`7< zYDjhe*U+k8K{^}i+Jl;O2cGNmlKGB7X|7K#rV*q{nDM51sf#(cakV(*Jv&98@@kRy zNoPG6GC0?^pqOds1;&`i&gAKHZRI-9)3(4|n@4jndfnQ@gnQ+bKH)a?;)H9aPxK`? zK2*7ul%khCeUz<Q_guwq5ddvwa!Kw<EGlV50e~h&Ehtmog*MFG*)mmkKbz#%6Sa4> z6ObT~7CfR6z5bx|k(2W#-KphFFI{*_Ux&(VT>a5l&uW2rR)cH=qXCV5j{b0Tq2T{p z)$#wK>h_b#s(1XqRjuU&Af6o(NYtz4V7;UddUUE*WSIk9_K3b=Fapqu03G%1BWO(o zv~m&B!92uIC|Q^SdU_%~8|vSVdUzHqp!W~JNHDlB;NU*-sis|nK9B*A=)*99sOqd- zxue&~;o8p@E3}|M?@TfcTcn*<pTyp0t<+#Hg)nxBx@BF*lW0nncRYD7x=eIdHlhdx z!TP-~5;Vc4l(CxBLYyYdwE7Eu`GdI3YUNs7pxKF(1K-+)wQQwxWW6T`1yL%rpdHWy zT%q_P6cR{#^FB|myXi}~S`l^%iP0Zp))TCUmp0<IEm$SLrMT8xi;QunSBKP!tk|Wv zjaAD=JJ-*7>7S5&YPFoFu{)RYnre!sduct;d#!B%YT5zucqX6uQ*T9utB>)9g?@OP z@kV{SUuZmnJuiHcSjrXyr~#460(4~n<pv8QmGktFQ4cN9Ltj%CD$zrq>LI5dI;)2& z^w3c~RHcUw=%JORIFuOiYm9*I>b{VileaX2w3y->qX%pHr01hs>6kwE>7(@T7xXyh z*sx_S<elxK7cZl$Gh=kgx=mw3#jGsiWGF<7jVWY0hrUABW4YAzv8Evhu;JSfWupe) zX6lb7NAQ~j`tVz9H4z1FJ?=skAvHFJKVmYs@fCdUGS5LyZQRWQ7CrC+3s_k|DMbj# ziww038AzI_lp-J}Whtdr_JIdB3w9z;vLbdOA9bc;#;5Odf?<wOEU(VWyAnJn25=VD z8Q6_dL=5~9iS?NixM7Uh>4YKtL;!{<HL@@(kFh;=rq0(4U;5EyHsP|$=&yU(;?E<E ztu;v6tbo!XMyk7#VxcNY-KReuq3#7&Q+LKtlDelNb$>c^Ep_AKQX2iq5ZVbzix~G1 z(Ji@}(&yfQlIw&}xq<0m8%5%x`spQcAHO^*t93%8SrE`D0D;H$+uiivCnT1*$G5oz ze@d$>)>?O|!*v<YtlGL->tY?QOI#V0<Tq&RtlByr&xF>5TrqbD<J@%1?P#^;;~|z} zS3ep+eP{sL!cnWZ&lR8TGPgAMv-O%jG^$3<A))uUm#*)|8OTg3&9%FqkSEave??^u zmyX#s#}Tdf7HG<Dr<6q}v!q!#M|}j=+-`$3QLX29Tg1Q*k?fZWO82mutyW@TO81w_ zkrem_2(>Q$E9MSAkFIS`IL}LFx~e_tIG=^9MuJ5@i~!_3-HBTwm1eX$e7bii9ynVV zsxqkAWNB_;>~6=9x|H8C&4;JnXo-II1kAf=wQ?jMYQ?RV$4Ipq9Wth(L&iiBQMzZ4 zlab51>-95NoyO+#C96Nh<Ef!-Aa-XT0>VO)nFF=9RST^`bRtMpU&tk}>fXFDS)IK( zE~O{>DJmq#v|&YkvX5)P-V|`JgZa%k@~*U^Fi6MsK}DO?^aVUbWg|4xZ=~-#*%p{V z3@p$ix}18C0QYSlkETOlDjJ+aXoQG?GMs4EfdKoX6|@e|>-j*zKDwhgd3`~aey05G z57>GpyD{aUeGZ-j=Q>hLuPZ}q+Nw*C>l&9sIgLXpD2A4flprQu<9Fy~07qnVoD*;? z*--4I@1w)~7Y<{G-}vf+xn*4A15ileks3Gk-oe)Lponp{0UeEMy@+UvZJ^N&a2_9B zcl$M{-k`$}S6o~0r|r;D0CexQKzyP-mV5)(I2TIt(c*>rNx|Fv{Rt13Gma0W0%b^( zX81YADGRP(dD`uC4j^6Y)^7J`InUzcgiE5()%A<?zL#<!P?I<oGb7RO^2A2$a(V*@ zYkgy92AlUr7L|R815s}bpp3%fP-uR}=^qAkN#ht4pFl;Jd{Fq8P&u!}_@<3MTC|9r z?JwtR9kKOQ`<WY4Y<&vpG<G^Vn?xYBI9>l?;w;(3&|(Y3I$3O8B38OJGL!<1dzQZQ zHN@;fB-jzquW@%)>EONeHI~3oatXD#hMQOg_WF5HQ9HX4Loa<s_m5*GFld;jQ~kNi z>)Vy<I6RS$mn`5k{Sb6N-El<U1Higs!@6#C?WR*R0JhWbA4x9tBkVo^KwqT6GqqJ{ zCwTXF_dB_R`0$aKqhq~D(h?{2I(f%%(^pK!diPU=qW=q&&!&a;IrG>kcl0xF&|2sO zZEh0<fMdxs_=yu#28qYhb)>As7}-|LPEUPlJC!&;Rh26~eTW>Y`-Z;=ZiiHr7>|hi z%B&u*xbFuh+bLhDLdXpcY?w-#&7{igxYU$RmJ7zSj-jTEyOi);$Gc6G_4-xC>E-!{ z8!dytdCcEsC+-%x@t&d)CzqJ*Pwo+q7L|EX;g^0o>PEJlj+W0d!0RS<3QSLN>l;Ck z;vmj~2%Rx_Lg_XncVNc&#pq5W`cW!_?G)R;VND<7vSkZ@GY2Sb^8s(_IS(VAk5um5 z1hq|ML~$aTcD2(N9V`K!Sqrf3jioCf+x57TxC>=Qds0q%>8h`F^-y1lA>NfcrMxm` z&XPAgcDs~K&V1*bS&5j9?>mk*ees>J*?7otWW8Xw%RGrBb|*5R>tVV{9IeF_Xk{o> zHlu4F;MDsWivU6T0h_Q^sns!<B-Ev=NENSK62u@Hq$H~mDki0C@p;mC$?;xu!FRgM zWXnorwOxP&mOKrU?=t=c5OSQ}{8v&JC!qPQF8vX7p`6}Xxf&ThT3@;&8QzBBrKLYk zh65O0So+gsm|cZ%b7?3UegebOOP@-HpTux>=}$162H`f;s5Y$j3)<;gb<65#8aA>< zJ55}%TD5W&%t$L5lJgL{%@sp;?<&EE6CV|G%f{SlL9(#3y>>S*iR7#A4493wpoGni zj;0IHbYrzp?})5V#pD!Z8?6Y-pznXhtc(0cHxfhT`y>7eXJFP-hBCJ<k#b18Kc%)X zBF%z70sdAOM&t^*{vs~Evg4>SyNTr?oSqQHo%o2Z(l)Lnr)eEC8I%rzn4%Aoc7=*k zi9$_MVHFtLZD*6qPRV)7a#o*Y{`(-Jw-X=Hi3hRGJMj_CIEby@iI2qArJGLtik&g6 zwS|@DZlH`a5NmgJ%V{tX9Qu={*<C$oA#`-3O%p~R!y!S+fW}Fw$`CJ4CHDapy{#@@ z1@W?z+_ze-KGC^&^>#*Sf_$@1O=|UdlEnxr2ZP2p?A7O+CzI;)NLap=YQ;D~bDfW# zqg(pefrT*^9hNdf+ql}JE$gn0PKKT(&1cYSN5Va|2mXRXz|yWpY#ebVu`&_Y33c&m zTbR-_NpXx6vE(We*tPuX;7S(sTN>Bl;68dLDe}$i<ns$Kd4klB-jdk*g)X#pl}=*v zBSIp`{o9(mF$~6wpj(31Yy+>j3Yk@-wQEHfpqszc7Y#(VNKl*D+^uV8ayv=4+_qxo z<#wa8$zqfXh|^k{pZe3uQcmeid}Wu;!dF@;=X?&2-j*}f9q%D%JlNn&?9H*YNSr_H zY`qe}z}6x~FC^x{gWm!(sm)Z9zfr(VD=_W~N@mIFwl1)@ps|<4y<woek92Gem6g%c z0Gd|WW(tJmubKIqTnJ62y`O2CmlWY?S*Q@NazW~U0miwcR5C2~(g1ob;{{?Y`)7WB zv5(F?i`-IMtCr^C?Q5EJR4>63y~|5I=;d~%yk%i&t#qs3;Gq}Kumx+JBbRzTZrXhF zHx#<p-)4*gQ>5`CF8sf$vGVAP$Ut-OlT)q-!|uhA)!JGRCcySsKi$Hhav2opy*;`J zC)E~@E$mg($lu5^b0@A&10xAiI?4i<z^fC0d0H0Ek}bBd-4*}+Eb-}ZC93QtT3Yaw zB(#}YQ|?lincJp|d)wWW^z{$*4xON-;c-(C?bYTsljbtF8Y-azs4j3$x=m@0bMmiR zhVrG<mZ5a{mrxSlahJv+twPJhKrf(yV<+(?>9VOZdU0v=BbI=Rxa=5hI^F|>2wF6Q z?OeI7E1FVS*0OM=bP2J&ZXjX+O%Qjy&7n#|OYtn2Zu+8Gwy^CSGy`w%bHz{g2D_y3 zceBb<R^9~->XN_0w!j!l%NULVpm1+Vy0kcWPAU}-hTQ->o4((zH!`cu1kKYMr=^Xy zG@3>CB|waj07=WtmAzi{bvPxZb)<0EW0=9xo6Xots9%AwN<OC<M)tqV>;@V8v;=iO zLP3vZ_CO=>nb*@gZ7p+?L2F<q61`e97X}w^If1qn=gLM^j+13^)TBM0P;)=cK$l?` z`Y)D3t&7&*L#q41)LMTRiA6q53Gt#M(sa9<7QD;!U&lr1hD3Jbu+NJHbX`dnP_+xM z^iqrPdM_|p(baL(PhsaeKn(E*mU#tNkZtGC9YelZdl!ADBy(pfLg-E?`ofkH+azcB zQ<m?-glMW>0vJ_6oPW{XO3%vl1H2NJbgr?_kg}c5HTGQjlK%P|DS8=-@_0Ojot~31 zr`zZ8sIGqPUDXwXUb)3h?|Fx5y?7(dOb?j<G0@BV0SebPP(sFO?Yjs8T0vdhr{(+_ zt&;ZWN+p&e@z8)Lw4B{+VbgI@44?;6@pLHz{Wpg2F;LjybVFVAqqiC31G;9fmh&Ry zV2(*ppVvqKL$`Vp3FsJ_>^5XDm>hsM8}W3MTg%yxi!ta7g%@t22zBm4ud9*!P%KR0 zR33>j#_{-GU;2sjkAK9QksX~<R<K=4A3U)O9UY>pyf}_p&M~Z0j@#szmU9G!XrI1N zg73rZjaRv7Ibnoz_1j#1wm!$8oObX&C^?!LyeOxUj!3s9vrlE7*Msk>MOZ<7!-`R* z1^u8!y7OdmNdiSbJ29|XaIkY6O?gy-)WpdF1fiKH6MkpWDapguL_hoihQD~Q!oVxt z&icA`y~Rfiwk~_>Cg>S`-Wt`<mlW`W5q7IoL7PE|;6Cb7JwpDHU51?S?@HbWX<%1K zB`%OsB8lsxC@G6W&f5Y#Qo*m-1yU1!g^HV$5`8mNreQ6Gk@is8@W|Jdk*|2-Yh(u< zS8QzOKqa;~F3MKN&<2ZsLrsdB3)IXkOcpjOf`-mE+SUzI>BA?`!)fGhq6^0p{!LLY z9t5oJqaW>K?%MX{Rx$VsC}RzASzkpnca0;m;dWqN5o*fxdAxM@@0pcIEhlh5Ze+{N z@JTp*<6YmhXJiPuZgUK6oJT)CjxI<ewSP~q9pJ^lW121lR;|0z`(1QVGU?cxIvGPV zm^ou$Cgc8bwYkRQ^ZE^;YHN*0tut%ucr6E+6*5}wb!IVGub(Y&9F-2JhUlwFsqjx? z5DzUNzu_?z$B_7B1H7?WCx6G9)q7vk75y65q|NM75bG$jB<?QykG;%yO1R2XY7QPE z{kslQ%v^poaSzckFJ8Br8J6e5AY0(ujLwwg4Bkry?>^E#xEkV*kPdtsPevER_ezMt zYuy0mWbesyCqFxRCbLWKAG}EV0Llsw6$O^TPmCv<vK;`oQD_n!0J|Z5X(1#`eW1W< zI|p9^e3=K|A3USH&yhFCX>u0psXt`llsPSURDj)w>h(cgh?y0yBwcpDyQZe`<wr-( zWh8GFh2mDLa~KCy6wC+n3!vxOCX;n$Wq26u&j$(?D3^yp=>2WO&7lPwLMwl7A(?8G zS$Ul2<YUZ>fs_k0<yMYkx2$5o3W4a$tDj<QrX0>~K!;r9$1)zb0htS+WMlV8RtdHv zbo?F-dblxHTL<)D(bie%Lfw6_j=?}P)Rg_mx$Vo?EtWTEKgiR5kgNS*F3m{*f=0N^ z>+_J$a9+2a!Ua3+<O=4!{~7s;MEnNYFdqdFq;^5NrhURTU43|qOry{5<Z9^8YB-MB z`OC=K0^$A|&=alnmBfWJhXlN+atG?t)80f~x(C<z9YxH~b(Wu}tKUxSJ$UIunOD2H zCf8JMcoR1gdD?J#bbk&CQHHz4AL8nP$45$6GY>Nq_2`m36Zf{J)9*)<D^~~hBK_?| z;SaN-oE;pHc#s9?)#r}p;gPRQP$?6>z!O0~HB{<;xua(S-a~&0`DVYl-k!?5X>*XU z@9Ixz>wr-2<B0WVNAW}t{fNC9Nc)PY)k~)$7(IS;)Z@9H85u8Q$MDD4`Z<)Ijq9va z5sltsNFg%bdT91gBW@e@?!&`jy4$cA{HZ}dmDt0&p$(T#c{=H|zH8>8w==hSS2z0i z{wt~gdXL|YnsIJgQZr6PAL=46{WM+gd6@OCC*|=fFo07?2VVQtL+=DR@1dXIex9ov za+^~aapH|fRWP%eYy*|5Y##Aq##O;l_hY@x{A<hnWHyIhCf)RP{k&Up#BXNGX*Va| zI%Wv4P|xVmjJMfYzUX-99OyJ?bk#{l7R^0imjqu&^;`FLp68`6{*8@}7(9hH;<(=c zySBMoUORfAW2g%|%oJ_Fyf~B4LLEqI)CVg11BS^r5daI`n;?V*Uh2>*l4ihYY<Sa4 z3o%Up(lt8X^x-#fW$+k8_2SV8$Ul)D>>7Kz<a=H0bP4H<o=Pm+p$6+Xx?!%r+jeR> zI-OhA=TQ~F5?8lj(R5r_a^^1+e^YG%0rnMMnV89L3&WF(<P2WGM?+V1a|#S8tK)<9 zmcolb+{V9n=#gLRPS2gAehgr~1G(&63y<$~S&c`c<H$0h&~4s!8GiwwDP0L$LD!9r z*rYH!peJ>i1?OrX87_PbC?X#DQY6P8?c(wJhV6z5Bq5kHvhP-_<6vHh!PAi73FX~N zCaBB$i8rn;i;-phFue^NGRRWoGJlV9dC>-=f6;^FUfyx9Am4@CXD!O*{PmN`8>ge8 zB`N&i>6t6{R}81ivjKsblcRZ|d%8zbez70@S|HJciM2ebGZT+MR`8@cZmjNCALP-b zg6I8$>Jb1f+$kATYh6tF$e`Bsi@~SR_eG9DOk{}nF9Mppx8Cu=h7|IFu{x&bg6xiW zA?97j`%*pLFZTo9@dH729Ar2T<*%Paj-LKv@ZFgb;Jd`g%QF$FTccA#_ja@RS9EMK ziQ)SLo|PhyyLr5#kd;X87SyEzbaK>)24-_Vm{^YY6PrcVeIfHnQVY-m?mq$aQg{mR zbSxF*Rc+8It<~aiq!m7}6X&!vi=3QI-eBE&ItrDhPiEh&cPsW+q~}I&U_ch=)-h1E zJcR$i!k>i#4DWQ%%Hpa?t(YGNwMrAj;6<D-H#6;9Utl6xoAKao(QCL(i^qW?ABx5* z^B+-n@YH~X!qQomMA_+Xfdz@vq9-aZwjSn^<wERmRk{9IWodb=oRia)Rs1lEQ8o#h z{0Q<bOpoufD3~R$KH`-ib4&v=Cpk#(g-1e5#$BihRatA?^z%ZdT;eHw2I@#f*bTh$ zUBSw@W0%CvG7GyfUM)ow+4|$oP4ETg8)ou>@zy6VP{Nk)gspC^2=n>IN)tyXyHsnF zl8U)3dahlJ`39^;2H$wN3@^gFO14(wsf<oP-^k^&#c>N>Pk4r<;Q6ib+6IenY-^)G zSC$Hzx=`K1YpGZTskDH~OgfT#x-~V7i3QNOe_#QlGio%3%Y)(OOQikLFyrFDeB@%F ze^=~5)hVb>UI`2L$o+nv3^AiC@~LQi%-o10nm`79H*m2B4-bTX#;pS(uq^Jlys@0T zQFuJkYYr{8lqpp)O=-P==bu75;_y-}@ct5{r!(G%K{wyoLg51gsaVh5@=>s@K}SwS z&y&!7X0?h}%Y@K9@FA#Wyt4XVE10{=YyXP$(pFjCc4Rmb2;&KXrRB0QeG|_}3|R8B z!BaEc0%;$6PQa{7Gc-LcKHTAWudoIr+N8*5B6;H)iPlf<i^DW^x8tkOW_z5>P^&Fq z0E<6b2B`z>Am;E;xA82f;7>W&S=o5x5)U#krd(RI!Q@|5i_7s1yrV&o%XRs7DS!PG z<g-|4iGc~Y9Vp<g(*@iNCDJ`M@fSO;k#YA4P@0M#JlQI!kAb3YDSXRN9mfS3@kcKq zBR0qJ$d1O}7g};_T+x`gYan&~p}Zlr&H@4w^VeC_T0y;+M~QN;08dA)Ap6>uq=6Kf zfKnulSG4@~c`eNoP>LKMD@8&TJ1WTWXg*7`gzmdWcmx>I5S`?63tQWYhbnH1tAe`3 z5C{3T3|F4iyW(oaZL!`G)OW(Y#prJw!o7Kr<u^ddOAYG1@z6?J97ZZK%rAx610s}R z)};CYR~!a_2}e1O$;kxh9LIel6Us17C~twtlT69}&K{jmma+-O^mjWOCKTxJjZD~X z6rfa;x3a}3$5kDlkqWE(L*}o@W7w7G_6&LNg{P31*`QlZN#Shb5uv<<aDMA`)<s`p z&)HeGzJ=Y&Wb)GPF^P|jbnDVF-RiQaMztb0&W;d{61a6I69Cl$h$LewN*E<FN%^o3 zCTO5e&)q<SUSD&j@|Je`3#B@yMYDkHls7cn!0FF$n$BW!?=0vA9-cU6FN@6{&U{bK zP};3(o!~grL>*`3tz;S&{6D~)1(>t)iYS;w0yidSALP6>ku&|Ow6l<QR?eX>;BkU8 zD$|&8Ju4m62zn<wT6nKTHIQ<PQmjcItJ4^g<rZQAk)vD&y@zaPJw!I|sF+=i_#BsS zV2)3E$5mAjdlJuV%@rp<#_cL4!bd+vY4c6aU$UdZrp<m!9-k-}3ianVfZXg_9P9$Q z2_O$#;z>p!=sjO0$N|`W3sQt*Pz*3T@E+cAk07rEUSibPd>uKCj1muRE(V%Y>n_Y* z*;=8(->@j#Nc9Dn_-AHD=K=TVVB6W0s6)@3JS;*EITJTbsxQpEmrp1PF{no%|HP}0 z@lYZ8Clm}~AjH&$BxT+sr~pud0BVhpz^h)T%*^2kP$d#)^X!)9Ois>Zqz7E{Wx8Vw zk;c<Ew^pFi03cbT1e*Rh>Rh4MS`!4yl%msLq~8I8EZ8Mwsu}8%ame%_3*|oJN#tvY zx((R6pJay~GpGxLUGfyiG@NIlyFu4t`hc9K%)u!A9{A8*{3ww#A8VL<m7^NiDS5Q! zpr)}inu)tM&K_WTb7p(=u7OIkBHiJoM-JgO#Tj~dF1m!=_Zl8lj$WU*1E)C^N&;f8 z%!6q+1Jv~h+74Ut)GcN<d9cHRC(xj?9YmM>9^6C5d%|I$p9#Z+JdM6}Ah~y^9~SlM zDByO28LwHC%vczhythLM?OvMsf^N@w*{=6k+n60Vd52xqS^L6>S-ihz3N)<v#<540 zh|BD?4XD8dALH#F#q2pBo_5*7xTn_y)?tTyJ*_yv4A&bEj4Uj&Zu;G8NgR6*nwYWO zERfDfEH#w4$i<}pzJal`ZFxb;xf4U`p1Dwb>+{#cvt=j+cPI?<e3*m=PvWM+b@UvR z2pG+$ufKM6Rg3kidds06=AASSF9p_DkRG0_-!%=N?|i0Pb%E!B8Hs72B8_hm13U0w z1Hq+t=UQ8ry~-L2<^cxc(-Ai@X$#WSQ2xhwR;@d6C}kDE100K$gupp5;Kl<{Ip<L? ze4h0dE5H_3gC*EsE{pi&U8#6kNyW!_OBc2;0Ji0~@xWLnVXd}>TP|hb=135WCD19# zreaRYX>%`VUDn@P{WadM<4?g`mZJBH2P1C!-UZ!qypx2m&cdU{Y759}#}V<#mr&J8 z2?d=W;~i(TWUl_}C$Yqhd*vEKBs$e^@aRBb+K+(=@%k3AKQ&a{U*k7~LI_ji*7jht z61nwNMBM>lC1mh(A=X;A7jYy(Y!u<3`*g=4?6@274n3BcgpiPo5&NDJ)?G+k;`SW8 zYwiHHpA!RknslU0z+p_G9j^YYs|r4WcjO&FNQ1cjI0UpHmanmL**b5DLE=kN<eB0= zo2_e&G7McEDKA$TGAZgFY@a^N3Bda`7DwmI0W)}wgLRS^Y{Yt4p(zPGr5pTN%iStV zr?G;uzz&8-F~eg%yWzuPXZ49sTmpl-_j>ew&u*Kb!?ZpiE+E-zg;?C1ZAAJ)5&%*L z`g|RURp&xB5I}K3+=)q0S2a*qz7c<-M5iPY!f53stcojSv=Itc!P8M~S#KxLlrW6& z**3nc<#L8>(edlxvYh(RwptP&+YYdip1^TUhsYVdl)^JOD)VquJbH}IC8MKp7sD4J z46JF6c5(ZiEDkFzWG!(3PdtGq)qC++k<J*v@?!8LF2i7xs#C@`se(1B<nJ}9l03sw z^|2K9jV~)(qd>DJDy&&4{;U;i)Lf@iVb!N3UTai~)47e&%rLfZ&p+P2ZyCPXz6T9S z(jL>kMc6+4%|+Ir%?R?%h9I9-UDC9AY)gsW7HEWF4}KWmVok}`+hFW4Fn-aW&;nzJ z-h$mA_L^Qt*TKeR_>*&?z9{f(D1_w}M%Z1HZW3{O8}aB}f^p9{J`e*xOE4L0E@?09 zaEAg#nECH9uw*vwK|sd`TaQM~`r4CD`4F>mZ0mJ~W_^%>SGp~NIzpHge||yRgCN@c zkz#Z7&QxB)qBuS8)#WP(FpiVgDhC*hbdx`|-p)8ww$k72O>TG5KkUVsD7q-Yy$5me zHhOD<h?u;0N}|q7EyYuq?OZ^cSpGcB|4;C#<g;CRGhv7nG9qeN!S0Bvr)QpLC+IAV zeK=hQ_OdNx+;y8u7wUQG>=AU5#w$$Zog*7?GieSYSxkraB;gYGKkU(+ak|*AAcgYS z798o*?>-}$;=v`i^2&z>>2)`?7wA`;5aU3_eBK~U9Nl}lIi}y$<?4w}q|c62L0{N| zm7;EO?IJl3=&)ZvQVQ6eBbG)>4BEDP&q&)Q(EIj`ZPR~Xo6b4fN7^)n-aG=p78vQ? zSM<i5&>K^7bz?+mOg3vwhnudQtzX_j(grF_(3o2hm+o22?KGz+aU>=|4KBQly{^Yz z*CS1)Z@$8gajF7+`IQm${!RmD?@2W9-)4_oZ=;{D#or;xqfM`jEQ>N_;_~m4%c6c< zlyqE_r_iO>z`U!&L{sgu(1c{Pkh!$?(T<-ZQvIPy&0Z@=c~y3ourWj2YZ<7>n8wR} z_;X9p?!vE@l8&*PfFru+$Yo5+w6WLmgWZKb381#&kJsRKrUieF119|5PeHCE?`N1! zU;6!3yO%frK6yJs808S;<y)smyV#cKkUYJ0I+d=@aOHQpCWSxF#`Zfe(2M_)*zXkN z9N;&fhHmh?GV~vY!Jo}inyngI;T^KrCbkOB#djW+X51rRj7}K|3in8<TD4XF0#Puw z<~kjx#UO407SF)j(X9r#D71;Wd=EEG54kS5i7PJd<=phd!G!CspjF51a(w+?@dt3? zyTLeb=k%)O2l1z;VulTOhBljq)n+S{F;g$Y%F5V2rVOiHwn7;$GdW&ZZN>BIeCv!T z-@4MI71zb^FhD<Up8DO(*>B!J2YG&X)sF1>-zIisM}bL4bTv6r_?B`hWpj0CQv!wQ zV^K)|CJN9D>u!UT*E)mtL7C);|HkF20n43)-XVCLJ9}&`SN-CR3!PQRD^%E4{O3P& z93FSf1u`G~!4~V7Bivrx1OLiCEr1qKvB!hH`HibTbLu~A=+Sce5~s`5QUr<SjPVTV zOvNZXX9pv<WftDv;j-LaoGS@V$5DAe=>pQQ7DlQZE^D*Fsk*E?1I&RWMGX8J3A0@c zyoe-%9woRl#eSA4Ulxc7f91xNPl_%uk1~5*0s4hl!Qeqo;{U|F4K+DmcRvvWPeH_% za(zEz5Xx`5BUG_SD8-*B-Z+8&2w0mOcC<@*o!qfwpgD|lQ*#d<Cu*0{J2~tlB`m0} zev}{m_PTyCun-SRXmY>4b&bDvk*}Y$`3U7kQ6F<?(E*qX-@D`p7~qbh`qA=1ml>;; zZm`$oi2-)>wmMII>fg~<LCyot8Jn|r2c{q0;!14CAo})DMS24LiS#&#JJJta?C&%o z`bvioo#LkVd~|IKNFSaE0KhWl(=u8|atvpAJosx?yvGwY>4+ep2OG!cebp87>PNI8 zFa3?~R#e+t%Z8?3t?NUX$VSJix`eBS3Z+thKHKlRfajXg2Aqjw?8+Ad=a}e6F9YaI z95=c!pKbR+pF<1YCPkEWDD<{F*)7aF2#Oi#-3Ph1lq#|Ajm6N&WUstB6M7}?7?S?n znZ|mhll2OoxVffRV)&cE0Qd?t*5jk|f1=-iE603nbo;Nak+%&*=RoI#T+oVKw+}l< zzCc4W@QkV|_W{;}A50yX4cTc34-7`9B)f9d%R$Sb%>DsdlG3p+pZzT^Bf0tjGqc^5 zi%zgX7S$1Yq#OOfQG=jAduHU4$<a$?e*6sjD9wdWO)g;ATvZ#Li&t_T&i{K}5;ZlW zjJ~rKSWoBnOVG?a(ecPOQ0Zm7?$vT)Nj5J+!03W&9Kc$22e8&8|KfED$iJOjf`9R6 z+!_Do0#T$fqR1WP-+UZg3*%q&DF5ar`4@j*Y)i>DtxwaoZd@>ycTdguChxktzcI#V zg6E`1L;NDQpYzbAJJ<;OJc-|dGq9TQ01XnDhmB86CwC9+x~x-qRJIKub1>wAyz{PV z3I57hS>mTFnP#}y0i!q_iP{20ZN|pXN2lpODwqo_cwR+97()>-YB~LEj~7zYy!6T6 zu+z|?M=p#E|Fb{+JH!8zpW^Tru;Ks4*iU5s5P5%Z?7fNepWAS*-oVp|zrl-M1e(p> zW@=(@3myJ%d|T-Nd*{+G@O?Y|lm+wYU)Z~VzQ^8k>2da+M?2YjK7F0N7tnp|okxGe z-o^Ca*}H`P^1l&7r?$aKpJq`NbUS-j(Exidp_|#;O(phzfUafl<#aWBucRy4dlh|v zy;svE?A=H!*n2H4VefTx0eeey9(!-11?;_<<|R<riwpKN8)Nt40xUJMPrRk#|7q`A z0HV6CMbCVI5eH|CsHmu8L}P+6B&Y#Knn4)E#L+<n<SOb2gD~>TaE_l;bZ{VLIGIMx zrzTC4m|ty^rs-|sCutH83;yaSnuJ7~V8Trf9hzVzfC=Hewe~(U%%E8BYwqoR_jPc& z&)MI#KWFc?_Fj7}q4ziVh;rt_U&$j*%ED*l@lkyIkUXNL1K|XDMBy%>fjmBokNe0Y z+W!__CXagwW&Im0d*-SDg@)`LK3E?_G&8_FQ285je^#jvS|s_bCq5fg`Z?x_($#tN z8I;LZK2@y`S|+8ro93d`2Q8O;rcs}8eb7qDXB72`&<CxNd}P!oQXiBr`F#Bf@zLpn z3MHRE6Q2!H`Z>iCHpgG_!v?4gA`puLu6(6h|J}w3LgKFo+31R)^nTM`uaw+8o{*=? z+6d3b{OP#ytaAPm4rNcjsvA)oIzJVNLB$g8GEkq|+6bY0FA`U1?eCK3jeuJ}*b0*P zHT>{MXCYH34@C`xhh&<Ul~JBcD9UqG1b=6PtS*=YHOVy3E2ApD;u~PTT;;!?3$tPX z>3ow^8h)zYN)_%6sMMujdMow5mvTPFXKM9l$>SM9_9D$23PkRFsMjQ@muH;sRkg&A z=9Sk*K$UqyuWEq&w3(6QT;9G31^FfkU;T2R9kzR~UeQKBK7ikmUk2cp?!zy}+vww< z(a#Xc@YICHfrcI@xcv%fxW@IW6Ot)#RnH+JvN?~JC&;*2(5TZBEHZ9dXd64RLC_{7 z$+>ahIWobb;Iz&LrSp(7w2ga@7h~%icTA{1)9S33HTE1L5@!*0a_B3_=1b@xNOYm+ z5E7E?3k5s`VE!k;w+ZwABjo?KvqA2u_2Pp%F_8U2#eJ13zJWiZXwvt?7t^cRjud6p z6=Ionvez=}nCvX)mm2368h!t&)tqY8>fH93<9#MgM>n*~ou4V3S5)@fF25*7J=V6< z!0h0g-^5U7yV9<9wki}y#HgCy9R@~>a(7`kxSP;b!GE&>mIF-1<_)P!mDMhg)uqZI z-`WLoXOqI&OmaWr%N@q0FD{8Cb2iDH&2o(O(f|%L4h&qxuvvzowf=dW2j>VtJ-`8g z*8uhcJPWXUCt893X`3tM;Wlsua0PHX!0iCH6WmU4yTI)Nw-?-AaQndRb1RX*VHBN; zUa2r%#7g%8sCF5c$XzIh4DEQdaR*}P|4eHy`QUfy-y+Z)-nee|&OSWamO3G7pcBHr zzx-k!l<Rl|%kB9HS~}(tQeSVMT%mmujeSzRi}VRb-tj0r9{^|ts7qB$JyW|t;rxoU z-q)n{{@pKY#7&Ab&{tnUOwtRreld6W#e+x#efE{Y`8A@f*^aje0`r~?&OCq=fJFey z09FFz18jVR^i3qRbtJeE;6{KO4sJNOT5z@Cs=-x*s{&UAt`b~jVBgR-+5!LX2G|Sm zhe!PSCRG7g`}GBR59|kjzkt5;`~GiizU4(S(W<=@?Im}r=r_}*r{kd!!~?nu_{8ii zph|`Ck<gu|fShaQMhZdCd$(%%X8uFZy+G)=O?~O)M!;z1BB9tI;wVa+qQY6T(DNM9 z;HQWw0LeBs-AHn$#3&uQ?@<MKW*-XA*uo2AaP!IoDV!%owA9G8O1oH*!c))D9lEOL zd^j}mAGDvodW+8f9ND5<{#@V|UF#mY>vQD#TXfuX;ZB;t*g+XQLo;w56Zu1)6=tDa z8@Q1d86ZdfD?<8dUB(Np%vR5M;piUUcHWsibUW_?(ctCX@giDQjTiXLR$<n2(x%sM zw7yL*YHN>3+Xx4r$0gsSawXwTLYQ-*TGgBsfkB>;@S=1lg+mZ{;f&2Eshk!i<C6L9 zMrCCS@`Ln_n=^3-IY@2M)clk|fub(FDfW~k?Wn1~Z9v6F*JYw&1KI3w8D1w`bO7q4 zjA}#w=P?`c1E6%M=V{{ksN{Jw^?aRp?v^~m4&cq$XNjm78(#Pn&E710vmgDR0{=bu zA5bn!;wNG>c7a*QIDpsA@r~~kQV$TVR=q%O&8!jG8H9@%=Qj1G+thATN4iaB7C!{9 z;BI4=j2l*E(xSdqPyC)oX}&RLL2-bd#7#rhJbmyGxo0;G9Ay^1*iQq2J?JCh;vB4| za8mNu`tc7C!SBX7B?9pJ#>p*{oLA&q)y^vlE_@G~#q`V|jw_73Ob}juCh$OX?la!A zS1K-S#;@Z2XUOg3Ts&F+)O)hbJ`;Gd-1oHaWI4mDYB<iO6ux=MD<K?CZt9?fFgu*D z=yQHG3{~eTc+PjmjN<JmFRRV)iIFKUBD2gl36DKP^zERO0oMlkHoi#i#L5M+)^{2` z*i1!t&<>zWWm&As7Al;58zp3aeVAx4QQ5`_ufSstjRIUNJsJD2uu;J&-A1KLG7{#q zR6#66@rFK|nVJKlrZdox#;>cqZ^U@UfGrIhLrqzXW*CF(jW%Lw15ImO!+3>FA(YgK zBAuV%o698P^ShrQmV||@n;9n8dntXey#HO~DneRc>=EJS8Y1tn<;^pe^5&?eXd4#| z7+fXpkCzxyqO_T2TYurRPYk}hV0NcODe2vMh&2Q6F5s;Nkxg)JiJB?0!Fo1o=7!td zvp4YS-@6t?sqxyvmftHGZY;gGkn($#u#k}+P#3jlKcX#NmX|Ir#MbBY<h^RM5^><P ze7c%ns*X=raY3YNjTz~0Jqo?;87@8WSk`?iSF+NzUY(h4UY?Viv*M7F5l{Q(E8Htn z;coV{YH}2dH-qr5mfRJi@8M<&B~Jy)czpA7@)<ZPdl|nS*!C9OMXwBp1+X$)zU3(V zAGNKKH+5vxO+q_ATV>9J)G+s0-2K(;YqY7%0$Rd@IMg`zPIB>OU!!Kfa=x<_C*PpD z$qPKqj_+>gf}N%axhKf+T{NcvPu>^~6XiqqN&BbO^T|V$=HYl5u@iEe<GUDkShF!4 zZL)c0*M-d6#D>jVPP|b4yk`nLpm{J)sIyngje_Xh2og&<Z#k!2fJOWc(ZTspjD4?% z3)k#BuGz0%+})sLRhoB>JKJMC6M7mHP#$|{-El{|#c^dE_-|A=+jY){qk2<##W+A( z6>sdb-@+;N$2LrXS0yn<Je4;_EZM8#bVNV00+<+FEIcdt+&;~3bHf!MxpMok>ij!+ z^J=e>o3K~LB|2N>?69gz)Z5_LI1FkT9nbY`m@b@nQWU$55i+V!hlQr<6FnO6k=vN% zFqtWuh{y^W_LIBf(4STG<n{%0AaCsRM0n%G4C>o~+y6iY`6lJ~AT*TDg%oa@00T~D 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%0D+M6 z$=oaMS<2jOr<Pp@^=Hv;7^`)wzMXsuqRMba3rPb5!$U$Rz&ST!hB_kKc)l{VCVv!% z8i{@vf@XLMNOfcr5ajSFqO=-hdUaV|E<)I+HkLBJ_j|z|eExGS#s}?3>f(kt8419! z79VZ_!G4T(Ur<Z39KLvnguEAgD}@9xA4S4J3GqE9Rbr43EN(zpCEdGU&zDH6h?Gm8 zMcI2}Qq@}UaG`N|X*~uu>aH;8)@Z7LA8~W9^lZ}E(y=ZvGVFDV+X*ZmppzxkYf(WR zHEUO#{ZUq-vub{>%3b51(Kwz2Ko7Rg`Gv3)#3mvxr9N53&?|5?rmf(h1$={zM4K4k zqiRxgfhs2b5?ip=0ToD@jpf**f=!<3egzkFmCD&rctD!mI0(}QocBoUDyN$5T)`V{ zes0)?@3+&x8gTIBC*=C98EY_^QW2QNDg>8%@Q(OwL2*S02|Cv3vCzk4+f)6_eWdhI zjg4|1DvC_N_x5&_)(6{QC>dwK0OPqkWb!ciGHyt4X>=a}7purLd5ZSs=SYjaw%qk> zfHC1Lmj$w60fYp0)Cvf<&U7<bmW30RjQ;v$nu>xv+~awt+zX_5xl*`=%QMdvT}mtu z@%+C1P7RpZ2?#EljZSix!b|x|s%oea&-ui!5rDIb8)>vH#7-7i?XKBYv`7@H&^qD^ zfCbsU;48MUf-%lKS{?5y>$15>s<Vg6O>*{)^Ee$asM?!(Fc5jotWZ|Uo4r^YdXs!F zuu)kjIJD9ce8=8Q%Qo4H2?u#sCcsPr%Dbt97Te-zI_lWXrFmX%hy<EZ02aUvG4^@0 zcnEM_1n99g?sdT1IFYqb*^H;kx*%OiQC-)k2Lb9w=egB8t7sb_XGCjVi1xY)pheCH zKpS0*joG=c@qt!6Ngr2rXiLgvRwNo556KPu(fb(@*!TBCXQ$n~{WkX+8(oO{lg~P@ zy{>j3Iz>pqct^r+8Fa7u$n-fpLGGBhYCfz5VF|Qb84{C~R9(+Qm$Wj)*65hgI<Y}+ zavPB9FkSoPqNS{O^@|6St^2tYoz|ZqEK*}xrqRx&83RQ1lth{hH>Uje863~NMomP& zo9O}PF1!bh`4}Er%`M1T@m2<u4v1P=sHR)&#T=B4n@U8Eokdigq^nS*=OJIWx{hLg zho<KX<VR>hA(P-Cox;9E1<7QuNkqdo(R>xbiQ+9Ef+(&;8<Phprf3w|Dl7V9#7YFr zr}J1}E`g=kIDQ|%E2piCR^kB`#u@`f2y0Ha@@vF4aJEZs64HDFdz|uQ?o?!&9D4}D z#0C_sA0CI&PRbT}XDhw*a-?IT^t=?(IT#m_64cbz1Z1{KXI|XHP&;b7vcoisH8FZm z#gb2!v9y{b;@OR0^fuOmlZqMiUR$eRls{1!>?>|BgB6SxO9ad~j00&eZ?|{XEfe}X ze($&6*H3F_6BGJ=AI@)g&-+hn6${9(5ATmhV{2s}&kFQ7h8C|OuLYS?LJFg{H%}0a zdUVy|P_u#zBxqbhClDhQhgWF#b4xCVGlH>OM)#p9u*%@)9o)(S<eH}|s3bqrI{TQB zTJ4hHKRLurQFP-y2+n&v{-%6Ews;&cOpjQZV1sP3dG4_K{)xK`vl<K1kpP8^ldA1! zDV-uM!b=N=BZdCUHeB7FVw9)RPv||+VscsY?-LmKuLcW-tul<Y26(it0MEy7ke3hA zE6Z+ZvnY7cJ=cSchFH1iMg(f3yfU;@I$dhxbk<l+nO`_^;^r7|W5|UfIG69UoDiih z*h+k%abOsvuk;)cW<lAP91a8CTrj4v;3jGXUa(!hu@Kkk&I3~mQ_NpfmcvqJ&8yst z=fGOYy;wjnr$etY**ZRLozM5;<qzOsRv#AvZq31wuv3%fS`b%77TkNYLHwxaZB9;= z(+_4y#3OVETZIByNm{^+kpLPZ=4ofO!X5=3vft!38-g+g+#N_Cz@wW~tT^9BSp>(U zq|M>e8$Vn5dEg@44A=O3xmiHisUu*zI@*ArsR0w!SdArs;v*LlIGta;-i7+x+7$M> zIn1)sb6?(pO`i5eTx2wJJ<wMqQ?80#-5b&i5v0zD(-IhR=q)WPE!^AHpK67u7IJdY zG4P6TH>v(%A<pn?bIhE)<Ya$|gvo51Qrqt?<1an&UnIRVT~R)&hwb`sg^VltyC08D zgB8-^{nR@n^AX0kcE&CmG!lX=dUS6jXuxlbPofl)tu?>5yLp8IA$a!)7jPIHMx1j_ z!1&M7UWWg>{^dU*lwYDA;FqlbujkhS1K?!h>|*b1XJ_q1ukUJNYi#F8um9VNVd1Q= z|N9pR{NG~jlfR=y2B?5je_f|o+yDTC|NCe=$KMFMiLw6g#J>|vX<yi3w;}#i_xz1T z6p>;V!XfX{Qz((RS;}==5zcJJhY>7xrHnZ7IZf_J{-^W(G7W<-eJvcHRmeeDTSdx= zGyQoyHs#KP*EP1*GcJ-y)P{hX5bl7sQclJ6tgL%yLUrrVbc{+ZN>*P)ftrwH2uc^8 zO7)oAih5*Aa$mk##|loxnczWm{b&xOpYpdz)PWdD&Cax7Zl~=pe+14mwI~fc5XHDv z+5^j0oopTzMitaES@mI6YpFZwDtCIxs^iG^ovzv;<VQ#;l?QBOB!@S(C{?I6taeIm z(;xmWpBW|02%WGsbC{E)wPK3B+$4&Me2D;Mo*8r1{;&fgSx{?@!&{jd=|Q_DjHq3W z8Zj6?^2-$6Ca~t2Q!B5vNP44=#yI^!x>y;!h`82>p<+Wji*Yv-%|zPv88iJSrEO^! z=evUqyKe2yw>xpyX_RcYd#AXFGxIutE((nvjo#5$YgaD3D6ue&fMRqC;6hf)<Q_Rz zYzo59uVNHyY5_B*9x%u)bCcX}0k7P8mGW>@Y6M0Z1;kS<lwoA=!L+|-WwS<p#Ew6x zG<p%Q!BtRI$rYei-5NTKda6Y_%endyq#C6VOb!kamYaF=4ngLmqTj7Rky}v4kP0rp z&K?{=!HasLGG)Nt$^+K(=M%0ElM#2#`z)YU!hg`Kv8{UO+Jm$*dgw0c1a%l9v|~8- zjNsg{j2%Z7Q8XNoA~f_Y>}tW5!`lOGC^H}(bbpw#8n=5Tf`Gyl@qjQ9bH`+;;|R_7 z94P-Z6L{7p$zZI<p(N|aX7f4IHR1_rYVFomaHTlJg;FDFf{cWDRQ=)iXRHN53B?J6 zE8M66&c12(W{2)o2rs8|V#}jX|J#omnh_dBn|8M-+v^k%1YisS16Q*0YtO~Y7ExMQ zC<a*OIFj<<vz#{rw0ZSKD-kOkt*i6mVAFZr!kyVgsM*xi@A19D-@9iqyuI-loZda@ zjFYs2lVd1wXNmG-&_nQ`s~9rO7ika2ftVRP&Cqpl1`A9BI_Sv^nPKh@D8c7zFL6AA z$QxB)m8c;!OR3+P*^<dAQ91l2+Q2K2K0ApCD1~hF3RdR~04xQ=V7%SH48cSXS@LG{ z{c$Ve3T6>2QRyyu@BXpp$OUrFz*TdQ$_7<rzu*n50wbA|@H~+^&{BD?Qa~Uw6C~n8 zgqs%;0Skka>In}rQ)IA;`*j$qKVC`!r*C=>x{6LUGs$9JjwR!K0s$t7DYg&lh)hq$ zjSnpguV?c%X3&q7m@yp{EpXd>u3BI03kH$`>FOjFDPTh^Vu(>SmIHkuddD=41nKVP zkis#K>hh~a6{_uGxN2bt7*}r5C{!(s=O=<M+jikWksWYH>P2I<Pl9YlL^9?uc#AB< zdZjx5S!@@>SV!0kg{_>OLvl^W1=L0m2UX*+e!dz@DS0492ru4rS4Gk*BxEcau!MK@ zoz~e#s5eEBJB^N*vYlrjR>CBMx3TuRpvQh_O>~Oy7I`QpeTXfLq72rIq<TdUMitqe zby)vEqMJ_ZacI?4=kZh&!LXgPnlP-(H3xC6LjT8wRE89I@$`4@b~9dD;L0m>GZ9U0 zct>e+<Pr=Sl?AS<8Ew<;Qjya%CNjpN6XEPCmsxB<Pk0&@dlx8SL6Ah}8!GIC5ux}@ zTo|JPH#I6^eH02Z`=YJy^rIf_Ya#An`tgPn!XpRV?kq8A$?*V+I>uH77)0}hUsNyW zpCjko7=bEnED?`bO^_$@TJbvKtZCI-?7`Y)bz^whc)Qk(^D|~1B7wO-?a`{?Mn3}m zMW<-}00P<4;Q$4o4pb;(tQyp4Dj|6nod=B?E1JGPMYa%9>1uKCITUXTuS`TS2_2(u zpm76R7<Z+J%O8sMdnQHsu>=3B3_FK78+TI1iPdq-EuuEcp(+~7A(^dwggD>I`;v`8 zl!Zj|_L*jxL9jlzrb;1N@%Pfa`X(yDInx?jB^D>nwIgqQ>OGyVq#0Ng0#xvw!`3#$ z4nSyMdV<q&)dXIN1RhD3naeYjl_r|jq_p{9pXZnR)+X>M#Obg^YuokFAo4Lm#ZE~i zSI`0V$-+|#I4O=oeQptoip^^Z%C$>VO%d>ioW`JZS2JX#oX9+Zc=8e$*5tHnRmrgd zCI9bH{)3FD(S)(Jyg^ssB^%a0(mfe{@oqa?Qn*rZstGLJM*@s&z5Yo~`|asKZl|+0 z6MUD|ix65-S|(oX(!ghIip30&%b|1&jgO|7d%N@sA9M)}A6Os8wWca(nj{1)xw>eb zyek+XQ4=TLOV7}HBzTpF02w<|I4=*erhV!6w|v&Op}@u)shJeQApl5?o>ZQ=^Io!> zrY?q$yw2!P`Rl>8sX(B=g$^v%-sf%7Tewb=3i`p1_%I<{qUV>4zRG$lg;+4f<1C@> z*GaT109WEr$Yj>>GB}|?TDU=Mlk9&AYruIEsBcaW7x5P$3X_FILh{M9r?>Y}xYDYJ z@Tpf!`{9GcKqGi+E#yr+5q>)Z@aAYqbYa(pAh8*0G0_UGJCg6P(5QRz<C^ys^?ud7 zR{9`ETH!MTa|?Ur#gsfkX<p+@CLwC_U4tG$ieK#6S)Vdisxio120e*GRWh}#X^<&x zqbfpZ;&3JjliOVEfM@$ew1yl#FxhkLQeN5+>nIstn4W5z=VW;&$w2TTx`qe)JYSu{ z(u$Wkh9|qmUj*i<^|SN^vOJ0$&TNHJAjZge?=)NW{FwUgkufE(CltZ8>t5$eBViKo zaC!Z4Qs8i}wR0*&sxW64f>v%+4Or=n&o+W)OJ@Cuj*hV#`6#dTCJP!I?y}=D+kkpj zqRBL41(GUg7Wgh))D{zCi6;44=#qu78*^TNt9Hn@uR%g-hq+c(=wVlS&AwGO1J;zC zfy;a_6E!UOZlduqyT9cNy_AR((Eb_5q6JO+y%x~oj0enZH=VZF61iTK7^P1amZ$^r zY}c>snzakRS~T}{UM2H_if=qZEA>qnZ7QaxKW97e2?q0C=&r~2R@hQ|7Pr7l5&Bfs z#uV+jGN^gBb}#Icg0`%8+Wyh^5n2R$?;_nsqKNZ`YDpe;z{#2GJ=2TE9TKc&=e>W@ zak6v9<p(-7_-29JAiq_gW-iSykb4f2#!LD@_Zaf%Eqt9)?O)vEbZ!D5Er)e0P8^=V z_0ct_KXn!qYQmdaT*@wRK}-fwkvf2BcSQ~}Fs6Q5!b00x@lf=Y!kks6XHS?(%W!PP zdPxb29hTP!a$DYX6I4*d62Q}b$`NSa(9xY|^-3sa!|JWzps1jxszn{}MQs&{fzn+) z_isYUH4U4CRc7{*=YNR1+F{K{B4)FACL$}QZSm~y&f8c%HeI*sUN@BmruBkFNUIi% zK$~K0iPWKApjF(kdn$2jSEF!xFQzqUB`UZBRfmpZdtKA3@0sVivl(Dz*lTQ2x#?dc zu-cVicXWXQKD%pt0U?9}+i)5!<}UFAsR4`?-ZtLsL$=<8Z4I;ww}wovq0mZ$7PEPZ z3Uj3Jb0%;?gVUDiywtod<!p>6JzQT6-z7CX76jv4;Ayc2werwinJI~5yY&!3d#xNn z#95lJ6VZ<+eU6*60X00ir$_wo^yO&^eWI~H`O5O)@Oi$&8<fj|HP&<}x28M#D>7l< z^o;$kyoGLu$1<1>U_VVTmYRD<U}$!Sl`UVYkZD8?>A!euWH))$iAlyKyS1ip1;VxK zJ0I1c&<i_Ui+m4=t*10>!|Ww@6wnoM*KyXRO6?B}%-cm_47+8e>>e0GI|8Qk!-WU6 zQ`t)<+%%*O+(=o-u)y>JTQa&(3@BA|2w@~@5a0>_0Qvf&_%zuiY#?i%d)z86ZQUxp z#~7d%{wJHg!<E~K?=Ei@FTM-jNq^G#wi;Lkn`-zp2S{@C0lAS13YZp~NNYHHltfFn z-`QlFeGJS0s)Mbr(f){0EoF2GYI+&x8)K5V7WbNRci}?oSPC>QtVIXoLT8t+oO-!p zB5lMFn&ySh=cYq&u^VQ!;h=6qkhKl|A?E-kXF=$hczau!9q_@4U`wZ>QMpbYtV5+- zZ~gL2Axp$A&UWRm+^Ca}5-M2())jn6v(YIq-$!c=St~r@mAUqz=R_`XY1b?}fmfQ< zlV3XZZ=@v^kwxt8rjB}}Gewi;iI%N-MYUGYPRhFGbHUj#px|jfSV{T}`*9Fnq2s|! z?gS43FW;3|XJAHvg;(niMb_u9+6TNsm*RusW3<Y*eoyQDnAK~$9l48Tib+0|N#`j@ z`+zQzZj~04UTI;ZleRli;mQGL7endi@wS&w1<F~<?qjJh>>Pn5M{+nfp1NLgD5=lh zHMz<vR7w%$bST?mt}~?Cwjp|OxpxaFD{+kih&l%)+Us=QiBX_Md%e%=hAjQ%)tS22 zw!{63H>@(HF7D~$?1w^^lnp5K=WCFQ;**QSQ-n##=n7@*0D(v|1NJeBcy>mcr}=Wf zWr;V@J=ylWV^8G#${zIAhwBZm*#PGj+0lEI*K;Zv-}BFk(CjcFiACbU2Jbs7Fh1Y) zKMTAOfAP;B*p6>Gx7%^nuWKYuGkp6))Pyly%{P$m*^;#Qe}^t$O{SzWxj(BZ%XEL; z2%k+_u0=y{XQ#SiR;I{}Xr8DI=m>C<4z@2?1^#-y&<K7@2>vNe6$S!-nDDwahiaGK zWjVh?^z%IhoE9=&|D}OMRcRvco!x5Eqya-&#2pH=R-03Pwl{DWuZe0~C$<-t1-g=U zo7vLfor#4YZX&b?5V{c!g>}IL4I_DEsgT#)_pqIg{-M@1e-wxY@<~2{1b(cFjONk* zso8$h(Wup&_!L;b=Tw+=F$RRV#TrrElSJCq_so_fr_#=qQDC#%{ESnqm(S1fPY$&B z$LxS|!g)c||C&3?sL=D|Pt6U}<9{K4Cw(d3$BDCbcIx;4!T0}cYpZ_@WZ;DW0BlqM z0m%RNZLPD1y@jorzKOfDiLH}`o$Y^0+OB;5qeMm8b^C&<bXFx<VKL%dn-c3-|7}dr zRNo&&rC#e;D5Ho4A+4132NamlNxE*)=Rclf#_-Q2IdMRwu9NsvY*t)SQqob<L9SbU zpC7(I=1hN7v*2APQLLJ7X0kgckvOR?iKy<8=a+)5T(Dj_e`#oUL*U6)6Hny%weRwn z(!+--W&y_E;GQQXGNacMS-sChwUSUD-ar+F9wDnjqV93WmKFujJ7%IKcB`*c9Z%VF zESBrcG6U!ur_Sljm`=A}A6ZSeaAwj-moU!;R+R{Fe&V7<s(9ZmRnO#;Lc><Td%B9j zg@$W%BYqQ~AEX$)V4a<V=i`m`^}uoN#}mniD<%)-<#ooRbQJSU^y-~uEEy-KPpS$7 z@JD1!ubu+g*8{<a=bhRo1N}`YMtx6w5l76ZlG7I*opgEpKIecJ%k5Vw;lZMB7Wr-- zPjg>EL5GwYs|s~6aROF}cV<%WuStpNFcvIjCdnjiI%kX=#admv*VWaf$rLlJ$w!Co zp&AW%Ud*4N28`EBlcn|uGaS5ghS~+l^Eg~S-wGbJQLmFE2CEz>nz>Svznw;V!NRU} zRKbUaCAM><*)NMG*+d6Iu=RFk!sNr<{m1#aB*GD+YM)4t%s)m67Nk8xkbn2coTu4t z#AqXcNN$3JE5O5D5yfLJ=SE-n4!e-M5=*=sw7AaaTDen#sTcNh1Kno6Vz9fM-6~cB z;M-ZIXye^6{$$R@4$~|nyX;xs7Wj<zd@7-08+P(($TQ7YRkF1N@Y83fukLg5rNCXQ zD!{ZFad!#<4Xm;jisA@MaHp3d4o;sw9%J1-gQUWoC-{jSPZ(Y;<&LCm{zvGnqOm=Q zQ_fJsb)i*??j8s&na&d@tNiHJ6gKfqqsmaWwSq{u7?nnhK$B+KD;naPlFn23iF*dY z9PH;pT)#-*?0v*a<Psa89KTZ%&FKp_4q`_YJlp54GxEI=i#M80A&S2ve1R&PMn-vN zT$as8lQE})AB8mMM6|nlezHpHqEiihSOpN>6V>ca)KJ_Lvt+Hp-Gn>R2)tij#4T(B zL+9V#q17SS`$@{!%*Eh$>d3_}n@>ahb^2kLj4~#}C)9Wb?s;Es2)n4%J2@90=z<or z9leh@Nzj0@MVV@9>~J(;o!r?1&^;4B@`i(fHaq^0?t><936z<8fp+F-v3rtA5Mrk| z)ZyX2<4|gf?rSo@h5mjOU_MgrhYo=JjOoso=_7W*9q2XD+`U=iK#A|w6BoTWDdFeo zedzVAM~~;{_{dFvV4&e0FK@Xo)HO@<$N7h-Y`9iw;>$o}=Ygn8g83_=8Aw1;^*RUE z{;iLU$@3kePjA>nM^!XOeHuX__D4XcuH-fId&&zj5%Y{3YC2)$^(Jq%(0u~u!V&7( zTt@mb$k!XN0{^*`Xr|&I!7vMkreu9*$ImFm2`Cfq)k$Zsy}3ip1yj8iwC|IGjF0I_ zzcVJKLe$Z@k-SyqPYcTc!cgo-3hE_F;OQN|ETo(CT<7D^hedt=_M?|3-2QMedu^^n z_wIGU;4PhAA@gR#{W(&5=lDe8FyN(wGb5JR$;nQ!iAy;)4>v!1Z1wyQQToUkP(>h% za-XlDf7rOWI$A38&QvtS!!kN<!56FuVq!!wq@DADFXW{S#!<o#%x2wt$8dLEutj7A zOd&W*c&hGz0_*1YpGJKvltRXQm=?uVh3nPQU}`K>5vwr;1?=ho_BW(mW98IfsPsty zf<07`Via^c&VCD-TxyDIg+PMK-cP`TNvcW(^KK7>CmYF2LffR;JHWIkFfVe~v)x?( zk4G=^E<hW+wctOI&)two?_#JQWOGBlP^cf0s2`Mizb)FgARy@q9k;FE5;GQwX+j~F z;XY;~noONAw~GMC`iMH8N`YS{TB>ayj*TrP>?Y7k{C#I{cxV$qY;h7{GfE6Yq9WAP z)0MH~I^@6s=4e;Q6>Ip25%1cmb9ce~02mGaso#s?XW=|$ombRfB(FI@7lB~yy$YFe z=e|kk(gRqiBLil5+K*_8ag|U_uAe3YC_6^6Mn$o?H1iR7q8bJ)VwbN727&&v_7-Ty zvhz#$G$tc68BkRwgr#uUq{1)EH@X{m0kNE-dQi%l0YqRrhlYL5o7h3YrCzy@xa+d2 zCm*Y0djfTUye2?<(V6J4llNzgw{vE3<Vs8#02ZV`Qfk^t{Tm80A}b)X_mxB*Fbz3+ z1SNpq{{5nH)25K~3;=W1){7u#)P_`@ZC6cuZ%Yk7oW2kDemxva5U-bG3FNw#A~Deg z!a8+>9(g09{U`^>UUF6!G6w{rrZhV59cEWf_xDQ?H-0>dUA+H5eSVoP>njHK`(Ng< zoN$%gIw7#yM$8TSI_y}O0DxjI=7L~|pd()v&{%U;k!rR|TtE{TE#rJ2DazMP^XxYi z1U_$FJOnrBMsB$wr<ZkVVFuJrI&>*R6wQK;cH(Jd+I_IiK(JPnWN@@}juC}Ba604X z>&5!;#>xB#6bkdha%0(_pND{;o01y!M)EqE@dXQz=TFG_s%j=~?i26_G~-h<DeMNM zwn%LE$ic!uLBp}E$s%?mP=aIrg7{7llI3D`*;_k-0e)2M0+DW>(7C)iP<Y=efgOe} z&Anu&K-Zr*`MZdaE1EVeb?Q3E4gi>Z;n>f#x!UM0PRmSenx$IoinbeOi4gTGf}Y$q zlqybwkqpO;GswCv0p(Hs<E{m(kbH#Nh|0bxO?sBv{u}Pl*p#YzbhOhKS|J!4m@Qv; zOLIxzW-Sb*D0<JjIz<W%70XiBD1Z(n-gmkhJ)#6LXg#J5XeL@jh-`<+E>?LVi9RZb z45{ElCUr(D<h8Zf0x@p4qr0}ak)QWe6UVL|qTn+dziZp9!orz&3%Owyop!M%=jQ26 z)m967R(l0P6^2|qiN2IK8GFEvBsj^1T2TvdsLLVG23gaBWSis{dKB1mrzg&Xe!ocf z)V@O|oB9A^mZewBD6xR!?MiYVYbF6Z*j{eyB;9oQ$WX6G8>E?wEXbE{FOpuqWsJ>Y zeTc{GW|uGBs@OIzw?7NU_?p4}wH3GKQ5jIFNscHwRO_{60A)F@ZKdFqy?9rZedXsp z+_<hCV3hE>Jd2zK&oU#h_yuxE7I6sMNmGphqypCARN;j>M*tuYH@KMo{%8WGCpXa7 zBoG3>-;hV#>@k%pe<vX5pbxsC1Kz+WHa(Qr&WH%&sI~=ph41geCb%r=@Hz1dYcLM~ zF5BYBE?$7O0n`&1$ffK~T;(vKA@V^#gRXkmWV~oC?xGKP>YvI0LGV|BiuH0$5Sj+( zZUgP)bg4i~ChIvutVl&!V{C;)$awc)YjRV-mGU%k7hdJ4bGG#3YZ2>UGxm0Eg-Rl6 zU?cW>>!KlU#O#GKITcs#cqV5f?2R~IAdz|5xx)1$SJi|G7X@}!0sk5OmODo}7w)D7 zmgQ3SWm2nZ;PD46iL$=<K@$Yg^2b~?8S_T0eLIc1M6T_Sxz$4z=h?N}Q^&^~o~ic< z_oH=?+Ppk?*IQ{zhvqr2g##3$)&jB>#Ia~PGxWlx<Hv^RcO6}kd*}8#K1uwU<%uIP z42DkhbyZ3JX40pGF5bQFAzKzvARF#(mI8`*rWsFETLs1LYN=J){M0WXiOkJ`rQ>W9 zLY>&^1#jJY<q;;`;!f>AIdvlFCtjXg?=wvn`BlGi83W(hsY^!uufFe~6aNLA5?GKm z5ZF>LFH3A+17q#I<|XtUa5XO*F773HU`tvTJhvqiI9=`I+A@=QL2H!|PJnIuI62r- zJ{#Hw9s?fz;Ts8tOaRzq?`JKN1=ccX;7yph4mgCk0l4uJ$2!N?1psnMmn0H6w2-)E z4f~DCurI}GIl!Y~GdW;=yFZ3ZI!OdVDof=&@23UOrz@UJK!tvd`78L0voW`s9F+X; z6A1&gbf)NtA99VfL`BqlYOEu&Eq)vrQzMf`(vM<BzH{6MOWC3&yt&DES`4#+gfr+x zH>G0Gll-r~RV~hrVM-`^U@?7Z<>|N$ld%CrtPhHE>>qu?%{6~0!Uo~k${0Y9RR+7u z6dJ%A2p7%Olq+Wa9N=97!oyQM@T$SP`pQjxNz7nep`^gcw3;NMQQw1%c=XUb24-V3 z(oPP;LJcL-Sz`b^%zL`QA-?tF-3)xzCgAZhOVUa}5HJqjb9-RQ<fl49nL*5oU!Eg# z(vKpJ=d$lakV~H4=duqv$SfyDyrNgMOA)xfsB-cLYQJK-rWa37L;eZ#H%TkWUgWj- zjCGs6iZtZRRj|T7!14uIaPo3iR6Nxp8U1y|G2MQ`5<wVgQX6_~>^RHi^_l!G@e{kL z1{=dt5WU|Q)zjI{&+TK&se9cz>!{thBn<~O7!ewUd33g$c_L3dB+hB!F8YUqgNg)H z!?O>?rt+dij9yoVv4r8??24vL*Jr)`&!*`y+n*^Ya-dyHdmj2xaH1jHU2ZP$xDr@( z5JGBBEON7YEAm+CA*Y}hNq%<CLd&5A8=wc>Q}^CiN{QW%xD5df)?b3`?$M@IcauT1 zBM7WUP`z9+GJEvIBepfJ5;)YF<bL<^F(**TfU%{<cg}twBbVIy22x&q%wtmcSU-m? zuI@2hbpR!XM&wQbP{a|m*1CkX4|t9riwNdBZ-U3h$`mJIOPS7C(H7&WhZ9qbKMN*Z z2Tf$plz=YK2esz*gi;ueLG$}^+VV}=tTms09^p&ywc5M_`6cPKgB#wp7VmJdibjpw zy@IhkCti0UkXEjzJaK{XiH60@6I3uqUY;VFTmngZjF923d<mZKtUOB&xw_8jWo((l zCgT*0a9jlBG)=8%NTq^&(uM^<+^RxQaiJ!=-A5JPZUEYL2m)v@xBYgnOptXk3Wufn zIsgwQ+Kn87zF1^j^|*{&DeWW*s71T-M&ga;2E#E{X_jGrdoaptz@{uej7@>Y(QAV! ztPB7V5vC9RnPE_PHDPxp8+n9qdu)VjALgvYj+NbJXbup5_Nq~ZP{Uk4yuvx2Zr*ZW z+^>7K8QBOQ(_#b6GVh;}W2Hr=S9tuC)Cdsoxw8CjzgA<~_Sw*q2^1B6M#Tm!xplpp z^mUv4oYL!i$c=nA{?CU#y}X|H$35)(M%HuoNCfD}!eT+$r~J&YLfH+<FJV&)6=JZI z`$bJh@A8k`JopTjQzRVc;4P$>^z%trh<SFNpTC=`aw`*aT%x=#IvDHVG4Ze5DSMg% zm5IAJRNCOURvW`}<U+wnh}q$jKM1fTH<*_|O_3@{1*SIp@=b()Nofg1@rgrkx`R-v zW}exsPktFBF730xc5}_03T1nD9Sl5oOi|q(D1!HIWFLrSq@ZQ2_!1s$j@Xy-s_k4g zit}Ym2!=ph;8Rp}|MY`*@p5?lDQ8{TwB6TzICmj>eGnHu5)@CD^lpPF?O+D%kA=l? zLV2$pF2^yCdVy__@SR?}ChqsT1_$uEl4Wc)ae??-m|pVKpV~nTv!O*rG5T*sRLOie zjdX*_`?9m<0)TsFKDEP}Mrd|nt>cC#BE^5YWk7nvL)v=!;R&FXhK;^rch<`zc5(^~ zUGotL$L8hk2&ah?koz!OQbS6MOK1_@bn7dF@-V19WxEFf!e_G5-Vw~1ni;>Sx8c?$ z%X?U)l0!cPu%g2{01_1b2o+Z=wwYuaL{M$O4oLb!8%I8_<hWhTE0a+|v+Z_IISblJ z);WzRSni7j|IdD#nY5~zn3!X(@V$Aw+8kEmalV!j4Fe-c(^CA(ElJw2bC3w0?i^8e zH!6Y?rql?D^$c2nfU5}Pd!BeK_*@TXCEkFh^p%u^>v5wNb+o7GHlPILnXxV@X*Q3C zLL@o=e6p5Y0hSTT^eIB=O!_DtPw2gWgx<$rf?+J3hJM4UIDpG6yxlu0)oarZwSipP z>bPnZLY)N9w^LIOUbYt$zMwofE6yN-r@5q0wSWF9FE|Q0ax_Gj*|R~l>xfbE*}+Ul z_wyAM^n<o-`<<%Ao$4I4VmJo%U>X$8-V>FWBEg#de=8~gBSA9pugV8EaVUC$plL=o zD11{&EaPfl$F`Fr9&y8XQ+EuLr%z@P_by!#?ras~Lu6UBYtRnsSr)c5X*iHfA$7C% zxF%?%hmIs-)_Nd6Xy6g&?4$^x&1{Yi;rh_@z2r|jF*ra(vxbipXWLS!o?Mo|a<mVT zmQUEGfRf2SIi@S@mKUT;$W!SF>68S1%^EQOuo@Z^<76HpV2llbYa1OtYrB_%=hYER zFU~ebKCKy4;_3n*Y>b3j7dTM=@jDPEfOC{8eZ7cBE}0TQ^?o3-a@g-7M4nLm1>)>7 z{am^wxy>ZWEI3Y(H{WE|pgAKFfm^1=aj=s;apBjvLImsoy;h8!5xjR#Gd+bX(Z>QZ z*5~CqVimA3G9s7PV0DLqnRozNmLqFMT`i<zLU`s_Wjm5Mfp|&6xDEWC1k<x&7-v^V zqY8%jvk<l$0Ncvq=jpf{b}8S?UDq-=oH1gEAHY7ydt-<yRDIX(pkI#roS@rB#7yz> z*);*_H-4Qa<-bQN3zv*MP~2aF>#EOifC9bibP&|^x66-;2OpEYGeY}@H-nAbA8!Ua zJc9LO^Uf=iPPHCy3Isrv5@jFd{jQ9yqjHSdd4mOHj=LorqtJ7oEm!Ap7CDji7<;FT zS+lx4D&)+>1F)cWR|=#^H^n}xPppBijOz=l?ZM_&AQbA~cvbK!7&Qj<ChQUn2Icm^ zh8h>|Y%x(tY0wR!9r^{$mnJDb0w#*kJch*~LEP9Gd$R!QzQT>4`@a(ZaQjRKXfReJ zZrK@28&+`W5|liwZS(e7Sl`Yzw#ul`f5%*=V*|pvR?(!=(JQkfr?HMwx*3Gqmn%h5 zy*y;mLeg<UX8;W%X*|lZ6x}}oOl9u6jn77JeV=mSv-Z?N>OB!pM07B+Y~WMuWOtVA zwcLn=az*K;;GRjge6^JB<qW=5N+mG`3(S6~@5!iET}H$TxXh5C^tfI~jaB4*E&`8i z_Jk6%cIC?kc3#smj8g*K{#Rj_a22ANSSf>FSi(EFq*z@p$YMRw3GYChq1~XU*%&dL zaU3}L2#k?(^$ijvpw4=WlE253koRQof^e!OEb=7^o*I8C9E((iW#tHnEemR_YHu4v z(;D1I)`_gWMgN-WqPMwxtOd|?=+Kv=G$S)xYt<?25_1}RYupU{>*s9qex<)?Hs=I} z#qq%#%L<qp&Kp`QZ(k6{jJYZkLGy@a7iR7xlTD8km4dE{HBm~w6P?G&1nsATMX=v* zvXi-(+L+SWYgqEq_T^$W`+}?%;k>~;oFK5!pi**_F3=sAjqHzM5e{*s4U9K+HV<vo zIq#$$y}K1YN|3_MovpENq0jt_J_VZOT>$uVprLM)J>ppD8B=Tt=Rq+yJ;8*KB~8J` z5TbuxC?sej<|sJ=%vvhN)XBh*PPoV{rZh~WE)({?viXw%Snj@2ChjK?+LxEhGL<}T z)#Yd_SJU>uZU!q-i1{UI(|%#WSXDV$@MK-2Z&*j#-c;<=OcAHMS{g8_dKVhOOcq=O zOO9O1RSv{jdb6QCwvK*#{Unn*d%&^rNUlU<rlz$KZ8hKl%(Bt~sq-sTIX0$f|3Sp6 z*b<CY5C$E2t;Y}7YYXYyH}evRFfX;ugTqO#D{B7@ANV}wu)UqTJumFo5U9+fhw53P zd#kBA$gRpKt8XcGoi|rM7tHuT$JU%dPr7n0zWWd?WTVAVr5~*sxwz*CFQNJ{hhtK4 zu9PNd)?!9IY0w?U!oCKgLP03ii%c#X&P@`w_5MrKyNZ-?g>QHi3lW+uJn7;pqzi%C ztClv93kd@iBISWOYt9V(bWI!fB(gtK4suwg1K<cfmyvj9ri_2JF$&{;Wd;c*`=_nA z^geutIp%tn++JKu-LYDvNANw%IeP{of*A1ULwmlOwV+K?Xh6ON(uR|yk{ipMv0OLr zu*Ft&k^YM9?55{Ojzb2n*GS9|uDinV4^5+QEVD;ilqmaD_qu1c=3@M^l9HJc5aSaz zl**cOAQqV<q%E^cQl%ocGVl4tzRxqp{noSA4F8hQvM&~f;rfI3jc3)M+Jj{ITS!x* z-U9K3N;TH1+~5@*RHqTQ6e?|uUP+YMcEiULLpwmBzH&0v<;L#t?;W|7cX`ZUsW+n~ z-8<n9+#X0FJ;a}jzMIJ*VjQ}b9(cnfDKM)qo<kEjIUxMbuK-=%aqkVn<h%5Yz8W_s z#6XqYffCuK1Y(k7LVCGx#p-<vBv(hGDp3<vfys&*Yh?xg)uN^DT~Z&M*j}66N54_L ziZ0Q&^N=)V3{(=CFIQ$g#zK}1x@G3xM8uwF8#1ZgN7VZ>#YMkt`nPugpL#i(Qi<)N zCDX(BW=GYcyVI|1IW5>S0AxLSQ#PEm@OSUVbz5OYT1G6Bx#IZk08v!F+S>8=KNt*R zK`op{&5g%W>Ame3b8D+&PuQgHbgG`-ohCnB6|Cxwx-C~@O`j2IkG{~!Y`NWZ!_8#W z*ybMaYR%djYu1KwAC2{G3U0OaebEB*u>G?YAt>Z5fF68LbVY7#O=B^2#EcPp8G1C} zKT{aMtXi(DVC`Oj5Dc}rcfO^`LT5K<J`G#uV!6tSB%k4(PeIBS#0iE1;m#O6E}n}% z2CKr(rZsNT=!O%d;2|<#ddL1@Bit5L<g^?w$J^o{N;=T)NXfi8P(CuJg0^_9@aFrf zxw4cn>sLjH$zm5vFhPUgP0m{UN*`?p$-aXN`;<qC17hU#jzExe08H&ot<6UZi2ziy z@L3+E#$LeAVr_Lh`3BRg13b!MJYh1|b6r0oVK9aYBj&x2dK*+KoYA@rD1ctrak;yW zMskubhIJC^q~qsXo}2hAfI@be)e44eiE%cdPq=@>GPBV%WxtgI9SvzD*c;&cEygQb zw>zK0D_OKO!B^qz9tveZSCgzW0E{SP;&cEmXc_2{)t&KM7D>bzYSJ%oip9#mYBX~$ z^Hhrp?GgF2C15l~5(q{LJ9R$C7sd2txHoZ2+fByGKnwzNb0jE))1`t|`hZ0|^^|dY zUg>>n7Y+ID_^!9@p#$^YUzMW5l+HAI&L}3&tWrk(ixt`i3WANoKWak}!LBV)kp*nc zFbn2b+%*|Gtm|U0U|wyhvgu!%OI@Bs!e7jb24>Wxbpv7BY^$B1zSZFM@u!>d{_Fj| zHPg0n1N(k9#B2&$<4k3=j4&g~yIls1((x(@6+^S<SCB9gmLV>vv{E?8%ExMPJR?hN z%9{$)ha7*@2Ex5-*dR^nD1=@*;ujcK!1|((WkccLP!0)ivtJ1LP5*njHHXnfk<d8C zzB2&X8pw>hr9pGUx70VU$D|H%2kvh*#$l!3%G2|=;%kB9H=+rdrw^+AT^;WHNd=iT zRep5G8G2jl^#-8tz~#BL<%9w@(rz@o9mdEROF%(3iUo~eau2z(93Yb2t=#NA%;ozT z>~!Ud=Hq(4G-+wL*Cz;$uj;}v{s=IlMCE=}4W#T4Q4ALGe-=I!BmM3cBH+fCnc)@D z&B(X~W8cU}^ow%u-+IS}p&E?g!#|W;(yMsb=+*8<n#lN*@6D{rMX&j%6tE^50oLVG z$Sf!1D#EcE7g+{^J{N&w-ugiU>`BVn4QlCepBA^;({I%Qo#Byj>^2(0)^?U4X(5j; zYx5D?=3UKdp+2nrp<uwY>LbsNVu9_9&Sj2ZbPdAZ%Hb&g*-C0Dgm>_Chi+&rED{cv z3q{S=G-wlUXbo{nHh8BA^QaMx<Feg`F5PQpVxE#(`b3Ac=PQy1_DzE;h9NPc$cZdD znTG~mQ-e<eEg9Fb)_Jn`-s)Jt4pY_dh=oSWrx@}kF_<*<BIO1+0S*kd%y&Zx%<?JS zJgz?d{P5p5bOu!JbNOBLmey~X6{y6nYNR@dM`UW<eoZ=IyUD`1WEBx9q7;v!#H_a# zrRuoiV<2}27@U@ZdWGn?l<p;nX(@IgkGezb<306dNyjp1j*0xcn`A&r6ut7K(%u#V zgyHCcHy=GPyCh&rFfIT>-oq4|p3<R(j|lKKq`01QC}~+%n~xqj&_7!;-3WR=eB5UI z+-WawC8)1AWx@eWXK<g27`@N!_Fa%Z@HyxVXv~}3*6;|;GgDE#D+^1mYGsoTB#(jO zuzOOO8?P>&%n(-#j+nrS{Agvu363RUBvIwy`{oRuM@?A&MYli@w^dX<zOEMZ)+hCy z*N?O=-oNwjqRy0L#k<;t2}EE_;`@8lr2e^YOmx4U2uzig4BwJ7pg{D=&d&w8!^n|k zt?e=a&mWh6IYJqd=xtQqpdyAN5O4P0gKNg#^KtIB^oV!wyz5p*{602DaxS-5X2j(A zxKPwHk2JgK%(b^`?y1z^>cCe^DmqistT$pNEE^<f6b@N8xZlPW$o<|T3D&nc)MxLa z@afc5J(qBP>qD=)-2_yv&&`lqIIUiFQ#s%<JP^wz!sTLl=jMo@0|?hzvfB!We=ajM z-j`g*$*9}@n2vo|0JS^+q$O`dTr#{v)=cKz1olF)bU9S-_mi`{6oT)6?_l|h9+SAY z|Le;D#QIt8LtK*eKc}Zd988~#F;qFoQ|rB(IZI&vj^a~l^mkA{d;%(Lvs)e`$=eGn zux9N|b6bJr?oy;=)_D9B791IE8wBwB`swq+9q+wN;La`?Gb}dB=R-p90t(UaJtmG< zWB1tq&W<bZRO+Hp2II%YX2h_u3YSsjRZg5|WL)pB67Kl)Y#dkjQJibYb2KJOocxp2 zzD)mRAEbY)(m<n#9G?XcAnB$_j5YM738aNe>b7NfAfjJxSUd5Vv4KSdpVqBQauYvv zr(D-+MOKr$y^AQ+DAP6(BJj;$vjAjQIX#is(nQNO*o`+Ehf_C;(VuX01NypW!lY8T zJHyvwli}45(7--1)m)*J*Mz8gw;_U?%_FLLe_-D6veijmYl@}<BE!}$=EdA$&L5t= z?F_KoAyk4q-$?pmdT*)&u}>BqV?%)!(48J~J=+#7e*-notI%=1P$Pa}8gxBm>(BT^ zcG`2iHzev3>cT=#DatA-^`bY@7?GQNa8Q6_tEnu)TsRwu&_pj{dGFUz-PVbF7d#}4 zxycftljvEpf4D3vsJS%SkpedzPiYDZOo(#o14&FsHii_*xKgQ<38nsU5S=w10eAcS zZn`FiTWIwb?fsg}2s*N<s&L1CUzdgx{+nx;^J9o)Y8aUB@eFix-M^*V*=e3~ds&L| zBtc@ieA09G@L>UhbfNcSCmW3;Z}#}~Qr)1-KHnY}e8hoInmf8K7t=j2Pl;1M5aBp3 zBIW$2$Xcj}P)Z5dKASF;z)O_|%d1d}vQt#Y-UkRVAI!E7r!$1zqhB11)HC)9l%Wdv zuG%(M{>r;%c~@%LpB+G%n0BO$@M)FLXM(_*?9!f=ZsO4{xZYe;a|190$cBjnY|Acs z4!VMKD*%fKzD%{F=~yh^Lc^y}N-_o!q`6=p178dy;>NB&=Y(8_7AbRK6t~w)O!nEj z-L=9#J@H9}-2uupz~B7#)$TG<Sm!ib4X(N~aj>X1@~q}@?Gus@%fjsEh@vVVJokz4 z?HE3l(YI4TlC39}bPFKfd2NR|<r1Z6EI!;w75z@_v7FO~RY2_KhjY53=vfj%$JZ1@ zUbkl;yT-hUbe-MC8>;^-B`Vn7Lc%&@Fsdo<+>V;591qanxD3c;WDR<n*a(mTp)qhz zR(u>MNW*k!kBwpOAK8)V3_gMpgsL@3Y-dS9HSuX%x@UlY?ho>{Ln4gixDAU1;J)e# zz;W|ePH<Ri{Pwk+T!aM*4R8m1p^_>{jqVeT=W4hAUQcXB6P>f{=1SDUx5~h}##Hse z)w$0ebY#(6mWqmvirNvWd7Q~P5EbQ>e_rB81{b#UD@B7BoLYQ_$_k_?3Zdjuw^INy zdm5j^3ye@UlRI@!#=?m{=};PbA$SJp%%8-gN2=H|qj0c)zuv21Ly$X>i8Q)cGN5He zlnS14`aPC5W6*rBr3?;YrlgD$X(*DBg4D2S)ii^sr`EX8>HLpbWm1Y~-!Thc<1qCK z43`3){E~?@<a$WSt#7>peA^Y>2Qk@>O)D*_e8c%!iceq@fI&CEkg)sJ9oeTlqI~=i zVmdN!wR0ghan>HMIb^N+6Wi?z<!6!QZI@fzNy9emILwaU0YGXiz&G?i{$x~g#wF&Q zz*Fkq)9SP4bka%10>;~KjP?f3;BJJ$gKZw#@pAEY>M~|o(8IWtdw>F9Ko=MkdBvE3 zH$g-Q8}RZzEO8?|LS5Ibc|LaGy2<V*%_IYrzi>cIMBDGkfwe`GAcp_;%7m|m5xD_{ z;1uBlL_7I|?LtZ32h6FSU>$G`7%UI~h~U19%`kJf+%e3AOc7Tqp;!gboTvJR^zmVz zw!|51xeyt0Q2?-9LEah3!PQlBqWMU@{UTokF0kAOLrV;wbq*2ly<Ib2FO6nVJ$xOm zgmnMJo$(aS0wo!LAq|6Ri{H9x>MrTfSp8Y!HhChZ+7)Ul+B`WoKJLhT#W#ZB7I)n+ zZ_1{bw|KmKnjpORlw?x=ZiEQN%~*_M<P*qJ2(tnor9!lku{B!Yl;Wndm3Py>CH0Eo z$NQqSpUa+S+QK@1hf7=brbrOsFgxL=NDhnkIA!X;h|;JFi<jnb2wN4&RxQMpy(5^O z9->s(r%A(`?~#|B<-1VKM(*rmP@T(2ItJ<*FW>4^R47NL%ti!sT9W*WEsIGz-vXIc zg)aT*X^Kxm#q{`0z6e1nuPbSj-0Cu1^n$cg*`TRJ!}f^G1?H4t%A6KWTeXO)o2eM! z-NHKB{Aex3Y4-ovI;R*>qAh{8ZQHhO+qP}{wr$(CZQIuEzHQr@ev?cxlT1<{=dY6b z+Lg2RT6Lm1Vj#ZL0_{;3yQECx3aHOy?DZcO4n(?x8vMX~FXJfX(%IR&0?W>H^Q_Q+ z+gML~E244j44<2kaXDIX9qNN(BaAyaT1Hg$t^^0a(qu|%{a`Ao7n0mgczplu1{c^$ z?{Y0Xg+9rxO_R5CJr2AmLU{b?)qgo@gg)3*M2tbM7I@n;TQ}(Z1(mjJE>u|Y)<uY( zdX?phw0_JlEEl-~eMZ#L;#7V=goAwz<~+mwhdgJPRgNRUvRBHd4Z1i1TMwg-&qv`p z9su_3+1FA7<kIRK7U3Fjfli%%2LO#m00ulN6}QC0qe5mP)*|rIjRpa1Ax`d(4O<a( z>YbA#6n@4~so5(;1sq=Ap8_6E+J5CkZXEICg*eQx6(j$p=vqM<U-Ocw8K?xsfvpg2 z?W|VGmwXKjG*rtM4RbOBbqyT-cx@EIwB^tzq~1ekMQl?UCpQ_HVFvibM8|?};$TVL zh-V0KQy?|@!D?Qj07K1)q0D#zHW|;R==b&D-XF#p5pGG6@Yw2kV5j2YSDg8L3x4J? z#nZ@JG}?>9SusXZSBpvN%z%j4KNE5lLK40>J=I>pO0(tu1LEa-Iav$Y4|?4I1vn>x z^t~)!n2-{GNs~2XB^>A1-he<@<9W<_Eo>;q{J1gy9SFa_oMC>wy~3c&2qUTvV#YRQ zt(l~DYUyl!!!pRjSm5<LUoUC?&^P1qhV?Z{qY*AP#2?FtA~wwbYrE$?rIe1Wf2z+% zo0333g`XWnbu{&oNVZ-9L<qg51yh)Kf8BdLv<Z__i18AiK5$bg<~+rh{kF30?Ft}~ zG)&VmuLa`kDEiVrsukk-h!>jUFD%2&j;76}jF&8FSpiue=t!?&q_7{s5F$tCyJZ$_ z@#ykh1<gb~1ox9tG_7`L0l$1uoFTXoUBk>^HE?EM#LwE@`K1A;9X%^=_ZKwhwKvhx ztOq}Mb+%hs&1At;@BC_O!<JWvv8jzZEwCWuNqPFTB(<gboK*YSHT+#kJl6$xQ5qug z3_Jx?8aoq;+EliRnPdJ6)D^RA!|)aFzLyn2c&ALeV5y=;Xxb}5Ev8K1Ys8JY?Bhl? z#sC=|#bmxSB1y#spCu7YH^5z#j4sC^5JeRqU#o9SxW{0pYuaGkRrr<SZlk@ad@8-Q zX%<q%eNj8i8yE~iCWgyW`bcJT!lM}>n}g1spen^H3>1{x?-~b5MV0|=*bst&&M%;2 zgNdu#7cF3Z&zN_Y-0#~o1H@_%yM(>ls4cPuKX)px|Cuk4tX=WwDNpX<92hr9hNMV_ zpDRp~(lun)MJGl0HVO(&5RI-0OgGtk%&y6}!WriI#g)qYW+lANJ;y~3r0w@6Qp5^% zMzN2*y4%BO2H;mTxvaKO3WI@_%@X?G;G_&>K(+qWmwqWeqV~_vKFunr<B|@AG88I^ zH4TgW^A3X;Zbq;k9y9Y<QT^wEXzC;FO(Tb@Kq9n5j3!i_v?6&$kCH(PPgYOJ%e2Y2 zgCj>Y7RO`~aqV~a@9&(S2O_VZ3@?eaQf5+RK02_s$(<5GUx-hP<WE5Fnk8tkfxy|s z&Y^Xx`++GGP5Itg-*jCeNVxO{K+?+uN^ju?yl#hl@UQ}zBV$jnCTIpSc5$n;8nXoU zIMJ2gL3kI76IZXhD~MYyb|MH25QjlrZCaeUi!uZRKx{d-<sOy(&LO|c06I0{xUIu< zB$A*mLkKM(r($ujtS-=M1+@v@5)*ykVFMtL9#aHESv}kWBg3GE8Q5Z(ROOB#vY-Jm zpO*tA_v=6)7PpU_m~WA=<2>%n-nI!r<s6;^N`zLt{DMQZqP^BW9B3wb*6nEIbjyUy zm7~+wh?Dcv+KxD`8%itFI5PFq<@=SQMmPaVFRoLjb9KcRrd_u6uQog}^#GGn^RO0W zQ%wqLfsv2a#d=pm73-oK@ch$-B%$Ozl8JdB_8Zf8Fw~o6A@ET_h4iY6mq(}7KGB9O z_l8pW>w?I1XB|h^r?R@QNo5<^(XRF37c_@)&~JDWyrQveQM_HR`C}o;<k=TFA%Q`< z;xY`FEYZ$+lSGD0>t90AT0E?KLA7veH0|C<b?;8;Wcy<ye1kmgD2;Z*Kqi*C8e~Rv zRYtZ5uzZlG&)Jr*0jWY|t6N8InHb|*>(vy+FtwhE)P1G~Ni29%l+j3axuGm9v}-n3 zp2`TJibw`dpn?rgysEHfbWvqW%;)QMT#%ZGfz5r7V5`~tf+zmu;RVfvLeV)hTWQ5g z>I?XVzV*Dqa4vtUlD{8`1RQeVf6Rsi3=PP1I)ro$3u%K%pFD+X_5#AxaIOU~^MF^W z%wD!uNz6WUx@o(2Tz#^?BNsX7eM*)ykkIiyKEzD^4Y6t3GusiC_H0VI^K4^p(hHUq zGl2Un_=t*qQaIhT{kDTr3_zQUmy6j2B0csBVP-ugk?($B6*7>hvwusY5sY3=`P8f@ zmDdn{03OPV0)U6;UuNiv*Fxe>lwevo!_f>Al4?9VCut^NP3b+HxlU_o=jKMjcn~m5 zxWkF=!r~$^;p7TV4Fg6<{gp5sx%zKJ_t~dw9{0I@HXvK*l89i%iQ*t0f^S`pppucw zN29B!7tpV1bjH@rfTwVfx9s^H;jL*CNhlJ;;OtKdpiU;eWo*`{{R;<ot3of16VEH@ zOv)^TpS0N&1Lw|WdIY{vJU13|#R4vDrXE`%7rC9hd^0WRLM&vMM;DT3=DeX70)+=c z&myqw6(GiGTK<Ht;wt|%Rcale<>5ZN+A$W}N&%<2BK%^>SAuSHi;seR2cxv&%wrU| zMJR1^mQUHG=<F$@w!+M3*x)xKs$JhCAx7HRlWQk2>wcwTS|+E-Sj;-4V|gQtB1+o< z@xkCWjq%dY>Y!9_Vf4(@3Q<mAB8V64Uz~AEoG24S`|*q9C%)8X_r1tbLurca0K4#l z@#qmJJ(U+=HE(oFnBLS!cK=AiEIi;0)9zj|s)B~9u79Ew168sx)NL`7$LF6u;vFO$ zdgvD6tf@8OtUV71=(CV;RC}$&J@b}&992{0*ThS#;t#Vmk;{x9hBq(??$e4Rx;-BQ zwg*F9wjQw<gY~=D@dY@H!CP}d^rOGe4|^{LI1?iLyF*($_mUtU%BTnPm5;f+r9l|D zMJalmF@iPH<fLl~MHd;qn!s0r18!JI;UZ*;U8ngac4V);KQZ4@!_)BuyE+X&pwGQG zI{<v1MEGGD>y&uGv}l>Q{G7{k;ShNw>DFBrnU|kg<SDR)wtwJii}H&(V40nGDK|l# z=L56L2b)<@viZJ>MuZ!EMKt-^iWLNCF_^{J?&Wd<oi9Tec;H@TN*BGKEe#3NN_B7W zW;Xvj`4ZXa(8Lu_w9EUBVe#VqcRFCU;UjGxBYaWaBFqoZ*w;I`qg_a_IfOULSH7=; zAdzSiiJLsQu7Wag5C0lQ97eU((_>PZd9t&@mmO7X8lk0TZAJ7o2dy8KE_S5)kd9z# zs@G~O%E)Idt`xFWLQ!Vze3F?7!Of8702jHrxfMkJ8pD~pa?2XA>y8m-kK1eJ_qAr0 z8g7op`STK2ey9TsJ;#uKVogRZjvM=<XU-qy0LXBdx0i#AFRQJZ9XlY&KVs0*$JbUR zI|S`&mP4#SsM_{u$!b;Ai&it<pcE_^)`vK^exg(1Um#?T5t<zmQQ2k6EkpCqd>agy z2`-YBU8f=h2@I?f4IsYf1%L*xE0z(Rk%TS1-<%NY1*{%Emt`SrHyNjra1N*V%4H~l z#UCogX!vM>#;YJ|d_&(-2%oEPL@;s>Jxfc>I@*Q!ul<<Uywy3q!tp4)0`fo&z-?M8 z-%JuGVpHM}ADd-X`uhKtEpW=S%pIDvFwyG;n2pMe%#p~c%Or2@<doNyVk?V!)7dOm z1*sYDIk}QKy?i{_2>1h)KUWP3?$RvvPn>vtkY-gPyl4p(vM{HC*(>s6<dlVEveq9r z`XM!#pA32FXLNe^AqUK1_pNY^9lf3;vU4Hj1dWlHljnB)Fm_FIrG)u+(DyoIso;A| zb-G3I@m6y*6C$XU{+wnqD)DTz+g8dWW$9{H5c~XIIU&kb$Rw0;xos@BF;2tT!;o!{ z(#%3$Jc-ZRWP<Wz#rWqPzX?$g7H5`XT8}0>hp?8}482rQ4#Xzgxq0rjGJYI)fvGRN zmjJqmj>VAq5%(I_J%jsQ8e@m}zH1jVMA+0x8|B!}SaD93jky=Mh0f_t)bAtb&xXoF zFR=O82~WZ1Z6&_4wRZy<jDp4DqZp17%b(dh8`+QBI<_&Y0$;PW6=+L`wM?r%Vvs5~ z`Aa<P`}qmBc}9L9WizslVe>o8=ysTSe@@ld9=XZ%71#J^R{?6jeJ#4DlOv}<C%QhM z`B$4Dp?^NzS}NE%B{R`-cZB}NYdGU}0;`8WBk!S;;69tUls!9iYAsJ(I>g`cBx%`O zef7*I^W<_msv^>lt5Ae<xsdVS`0XA{9;jy$O-QMTkTs9DDywX0kQ{xvjnYOa+PqNH z4X9U$QF@QF7_CGL*Yeep76fojB;4`Kknd|@%o{NkDw+<`PeG;V>SEOw2i1_K!?d4o znqI2aH}iXCjO4_KkP6jBfBy_U#i+m*?NYO{{?$V<>ReplcY>IW4TJgpVpYB6IiGHN zOHvXj_0d^_u!L6p5`^7)T9zV5Mm@wS6cn^BgSwE4ky=;og{Ud`&jDJk%FsnteY${b z8nujf0P3}O#+8l;J%{U<sCt6vNQv!%2?UM_b<DB+450w7+?6vU5AdC0duJ3Pn<l^x z6B~Md<?x}LF;Q+A=)>qzZckXDW&<yJQ^m4d0>*Z9IC(wVQskZ)B$(qyhsbj%#s;0q z!sIPJQSr}>%YynYDG6r)U3(`e2ZkYBF~U3mbITQtjQc^s;pX`sbK<=^mD%6cQtOzy zrRW;zLJlw-SKM<a66e>Y+gGFkccwf59)90Ea}IGcdp{4(RqF*^&@m-`IIylN=5ur6 z0_;lXdq)yI&GpkU(kNyJhmL`MC~;4sGWr+LnYMZ?U1E1ikj~7=xPE)Zw0Hfw+hqa! z5VQN^5b}Dk2((>JpZMG}`yF*7nc`;TRAnpjjHP#OO&V<p`C8w1Hf(x_==GKK?+?V( z;eBGxq&wpO_$oK%y?S<;vBnRWa>-k>M7Wrve~9)jr3?eF@>Ag<ypzoQG2G_3l(bu2 zm$;asJKpf9ceWuIck^CqYkqcQT~IH!J9;{A^i4K&yZ)rpO7yrgymttgLoBVR#;#S& zpnFDBPA#)z!TCZPp~r{QL2YCLfdM9<LzeJC?kVVxpz%hsbva<m{`Fb#kfUcp+d6u> zKc!F}p4C1B1W<-q>g)ei2ktSsR$>}_6LA!1v}xr!Xr&ILhn^$gwArS7w#lTPo-?=x zv9d!t20$tra}7BQJGbDJW6iEObs0#;tXyA1aAN94^NiX{#6Ez(e5N6rq<*gQD-ExK zx$6|CqJ~XDBu_e(?zwj;O2;?VaxDo|29XpYu|Q=STGH%Yo-nJkF!I9{BBw94g#yQp ztu8_v1t|nn!<R7lA2?P}BE!89LN;rvIksR@wZRh6-_tSlA(94lKsED>3d;TwQwEc1 zfii8lh%B`_r7fF}kffDeryP8NBg3ILmVt|DT@(Nes~sO-WRD9(uofw$ju>N|^TKi* zw@mQOVLc1mZaO2Ch|-T|*!T2&>Ff~ms%c*%*gNsRK^LV8edgAg09=adAiU0<$?NQ~ z7W>l%&I%7A(C+t9cHm!8x)x5Hz@sjBT8plst}dtyNN%pssni`@^HP2yn;X1`poyJ4 z#+Qr$x&H5`4P9&c{EOIq<1(8|hO*gi0@t|#G6<%`C4V`;MRGmUq}Gt&mn2Ir^-lP0 z{E4jrFFr-sMR9xVcCE>l`=gEBO}ZU>Z-=PZ%_ZL#b~1vH`A?71hg<aD9$f}^MAM5E z83`uD>&Gw<@MWDvAW4<xacWc72;IzEU4$tLjTMr5Zr8dlj_#n6B;b(je$skInVKw1 zY`iWu-@WHLz9X;4U&LC!R@8MWsCwrTdjG5t_3lmlWFdgs{D$I}IqTu>BaJwIgmq|? z5dP2tbn~ya*7#bsZb@^LJ8%8kB>}KtsRM*AXY;R}&u0y7FYPJtIEFzLHY}%tF?(Z7 zce#67_j?O_@gFZ>%pIIps~Eeu&9qhG!Mm6lE^{*<y$?)f3yz%>TVPU(#;h>v)NIBy zR~R<`#T6YI?I#_JuEDz*4IFzleV7b7vF>51&XKfYX*6{RY}hYV)pqSUTzh#?>JM3N zRKyP2IB^GjZ<$}}n{jWV@J6fa08XLnU|*SMNSRe1U}OK|t|;+3t-KT^k+uU5t(8jT z(gO2Gdj}nLhWgOIh8YHnZUq&((f+7u2(2`%>X!w4K#|Y^w_j`l9ajou%!WhqfDI|+ z7@=ioP8_aA!pMQEvDB_v7({!i@h2cqG{b22kO;}-BGB+shD<p#5Ld4!yP;l~MEj}2 zPgy}to&V!9h|C0)lb1!w&tJw$7gH@EO19A<0ZUdhz!n7cmnd3tWPZgi!x+rTBuX?p zB^yc~L5NN{#uD3w+#J}rJ-Jz;H>+;rMd=kIct$uF+PK5^wohqzHR6oorfSExZWzH& z^@bXn5u@`)dHEUws=9V_57xunRLi>e{>m%=D7N`GDoTpgRbrmv&(KMJLdALFZQEn} z)M&N6`6%vT7&2dvE0EN*3aoiOX~ZAjlzPb2SKPJw>~^zbSk-Gr)2$zt!0r)l`%w7v zyLiTYCMplVEezu20#5H$`Gb91$o|FPl<m2>5T!SQ`0t*H+=a_WW5i^uy9s59T)qod z#LHJOymdn<fHUJ7z`anItlP~hMBEKgFTDC%omt$|&2dY5HFS{OzgykhX0S7oT?=(# z&3AEM7|A@4u|qd}$#mkx?~>@w+=@5Ka79<p{X4osN^l22ETM$I4jFlM`B;3wJkx*Q zG}94JGund+pvTl`A=U6&aBsTg_^5xER$LeL4Rl%=-dN2HLm*c_X5Q2Uc3N3C&x}iQ zO~lxN_>npk*ZM)<GZBV*ZadS|z!5EXMGDkSU&_Meluz?;scl`p`k$#x3c?7+cpcgh zr!xV4dTHWU8I-6H$IwSA)$>SlHzO-WM)V?SL590zD%A^2w5Xe;>|9L&7;qdiP<rVt ziF*up*3LOf27!VgeDXI$M4=1aMiNLIvF4sE2jN<k1h%pva**B9u1Wr<#EY-6^Jypn zMZFXnv@5+5E(!i<qcP6W58K|O!tk!w_*uBBJ7*Kq(K%z3K$;KNBBsIDpg*jE(#eUi zH#dqtr-fQ^3wBB?jEz@1z>=o+PIlKsP|<L6sqg7<0@QF30_VLQ2Q)@JT%m8*+;vn2 zTt?<_>?d4N$dti1CYX2OsJ9=SsG%JLPUtG=((N0k3Lihb8rWh5FFZb*qcZ&|OWWou z!9IZF#&W5yh^nA^#hM22B-HV>sDU|;q`rW)M`NLGtnp6$ZT}#xKbJTfQ2D$(r@c#{ zU%JW}6)7T;RHct|GARfKBf_>!CsktG92fB)d^wHcPj(`nhhT9>$O|S~&k({WqZ?KX z5PeoNf{lTkJY^gv{HmOW_NrXNJyM?hShf0fdOA)(rnh{`Y7M^tKzT2!ac&r6<p7`n zm(mEJiKZYzP?z&^uDFe$yWDBXNKLbXUO+F^;*{CU0Xw-=xe004glXy{WhtK;&p4qU zCLU@f!cLH}SA%E|&o??_3*t5oV$Am>`J(T*ae+P+nB?&sElO}$cPRht)kHMe4bl@{ zRKC&|r{0ZuyOVo@U05SL@Ms&~&L=B}wfZJqk;cEVM@7h^ZRZJAfG@SSaorn^!!>#g zRxMK~D<)R(Ppg+kq<5JMM}m(&2)y_rbKnaP|9yOWAn^KD6rEdDux&MF%{XZb<>DVl zhrb^Q^0_0>=lP%GSTenhd^YmG-E>*ngWY;wsWPpKaU2)OoE4ma4afvRMYl%VP=Zgz zKKgK4fe0s_H2Ru{Vyj|KeU1lye>A6XVqm!}+z9$3Mn)iyJi#nT%Vp@|Yjk{1ql?Ey zc~MlW)m)FcHBeBrD3Bu7I-~9vdz*Q4dvoTrM$gyLsFLh0d>sI=6+(&cZ3~UDYZ}&B zxhpz=2I7ay7tCVfooj=-<TjKur!C6KZEK|)_s7$8o_^fS#OnhX(48J(;40867Z<=b zh=w%d_Ak6kEGgu6J7{UxklKap=-aMtuZkq9wHw<_&;mJu*khcrZQ}=$;NKLD!aCAL zr!>em$@5=;a$i=BPdjwr?{hmp{%}93M$Onj#*t1Lb)5cx+I#ys%U8jMyDQgNE?jZ0 z#GDSF+cbHV3S1-R7lhz&?CK?fIyyZ;WXo*=n4LHaDD{A<Pl?;CWi-5ym+-T?r~%gn zhhezD8~-+=@Q1hHR&KIri;r`a<}c<!k(Yb_PM9Xd1zbn5P|Au6qXVu!z^q;`j86Wc zva{Q7WP!&S9Dj(-Tv9rzZ=VO0Q&y3X1+l<sYL}@nUH4od{gkIgDp6ct{JsjV_i_s> zYbOwe{hM}>J;Bg1V|o4UbKJ^e`E_KH^mK~Q#@xl#%UNAKad7240r28tJnorQ%dtdP zfLa2sMT3*#hEIK!)J36>h|?ZEtf&h7cJP<uZIGo%&3)*fbY7Q1TtQX|S|@|+ts={Y z3Z(fi#L9rYM2F3|*0ID*S1Ciy1~Oz1cNWsmp2iP@UQ15K5U<y=+c8|JEGatUemf<U zaBdlYc{=BnN97;w1u6c5H3Ion>F_Xa?~-1IE+dJ~_oE)=pfAR0Ie6!&q;uvZSXo+} zBn>=tQmtvh-)(uDWm9BNRC*3^u$fO7=W%J}%2;b0PBR{LDkGQP$-gC%e*rM1)(gBn zm!Ryu7mJ9pWNYThBBF>{$~$2ThbLx22Jl|yxgMy%?k;#Gd<mS1p%>Ludj}vSKpXrg z2bgMnKt<X8d|o%q^H_H)+zV@VHSH3Y6{*?8t6^bOYaAnSWpIbojkeq<`O~~-6lB<^ zRVTHCJ$k_Di}Ty0*Vjzd`O|DgXi_hF78?ZRNsP|bIWhl1Zb=(xa0Kg4v}ZUKFvC7l zfq9;TS?`^wlkNVcdb&LCD`oujj@s&yziHWZonnbz$J%c5h119X>uDP`vo_KjVCDXp z3A{Db`Ut+63I^y|6Ja7!(WNvqL^hwIlHJkh^;ht5=Y^a;Hs8DnL>S_LGdHc_JZ$1$ z4)uLHgHI1b<lhlWP<kn|FREP`q^7%@QYAhdp%y!ETkrmH8=&t1#nW%AyE8A8keIeS zo|bEqnI3PBy7!Q|DzCCNcJol3)*PLXI)``MZ0(I!Kl>B4-1RMYPpc-*Yr)%hU`Rc< z3JKkhA%&@+{*@FFD`%9%=#TH#3(5J};K;%s`2Xva5Sno0aD@T@I3xJgCI0_T2`@_r zhhL3Ei{?e_Ry*qVP1&B@9}PK_jsYNAhVr0N$ubCqOOTO5Xci3%iU=&{B5V;avuvXP zJ`um?vuDY7+{8i(O}9=#ZVPrcPdlEpxRd$D>rFl8joRX`<rXPESDl-%5cx)GQ_|2n zr6|2N+mg_bZrf&$#gyq#RM*EWl5jV*#^R$x!AGf9S*ol?(?13aZHymZ$6h11>d&^Y zhN`4aut+1>;aj~3Jrui>I&~r?!6k5N8?mU(9a<%nb(Jh5gJDnJ7J5J7BSOhES040O zHAIbLXI-70Oh4bEeBq&v##G+PuW{ufvdc1%w~n+>skpE;?s9=O={r$k^L#;C$13%$ zCSG$_3rQ)4-cRSKRmF=5ZN@paQBP*ZZv55E7+#@v(1TYJ9X$e4$)*C*R7P%+9>)=L ziPIEdWluu*?`ATgB9&6dL{gqf&?O&5PcGAXqnBN+h*^XPOJ6_oBs}UEk)9;ogiQ+B z&YKc{kdUSt5i)<TiEUa-6dz4}H%de>CuT(^Ih@U#8o)~~3nOl5mJaYp?JPZ&*Wv$O zmg=<*6!sONq>$cAKa!edPDRSDcS>1dTUX8rp@hl#6H)vPhWaT2FzY{T6Y-Z}DrkNi zVb&nSUVXmTW9uFSzg@i3kwR^xA%uwyx7xrFQ684TW!ib*<(qT5wC8iQ7FEIpx7L#V z6_=$uWlxE*y{HvEA)6lAJ~|Cmwtjh>CQhjW?hT(L0=E*8x}c<|6jKtCvy`*MfOC&a zdyb?S*>84M1*6%U))9pbOz@ky2mLWO_nO(}%CPT{-HZ~$_1f<Rkfn}zr!;~04`B{r znx=3;nIYy+<i0=mM@S%k)T<9&3v9IEDSo>ZFX>42q<!qAosNVIQucS~H!xDox**`C z;kX7mIrPTa72(JIhqKcCu!qb{ZF*4RU|K9JwcK#BbZKI`)f6k^eo34K9W~WUA%j8g zsB$#NjDzP`HMvI;ihxEDeqO{NHO@sO%X1O|n)<@|;FLsK2P#(FoR~SCp|uYJ#~m>1 zkKJHj1uobKo5E{KU@AfI?ydfw9@GF_2Z`|l=^PDSLzWlL03jnWPNYmm0=Gd&O+^^e zyltN-y0Tj`O8h-u^g*z(-qLi;3%*`EG}C;{^%s7tHn~Pcs42i#Bino7CM|%$iuIDv zb}_3n^T=n0Ka!%3;{K{&Zmz?veT@b&sysR7*SA`A8RJf8FIMNK``4|9gaHP5Che_} z+YzP$fI9O!bet-N90-Ve$b>1mN+H(qsG{1GBQqjMzdTv?2fV!MZUGX*Df!!P$S&(# zV$JQtLh3b?`b#~irac*i(8)YtiZX<EzCQ|`_EkuG?Q65BT`_6dmaw#RfXqblG;#rH z3`B!$Et3xEkR0_S`%uBFnN7>#79mC1!w#22TVu9FuR}#mhNmD_b{C1I3yV%;j$2b@ z3=>UXh)Oxw*gZF%oKQ}*j&;-jGJhoRqxWi#B&cG<MT>sFFsy$8R3EHAVwt{Z`{y6X zb8asFK&>9f5E2Y6)HCoX$pU)k7ItS|{byk!zT*3aJb*L-cx+gKgtC;waY6vqKx85& zfXbGPJ@)fA1c=po+r&*`8kr=>jUwJxGoqldhm(4G6qBs9DE{Jdjx^6v;gZey{F1lW zOK(IIrp&=gH?$+42P1~vJKNIF;j;*Zp|i-*aUna#1Bn)Ow$HlJ^|?Tb@EKv4m!mJQ z+8KmrpU?LTecn&V4`c2rId1hIw~GxDTCsN@A^syuvWq2N!&e_*J%^c!0?Q<R+!lo! zyBulD8|8=`Oc}9Zf4v_^+(ptj-cEd{+s*8tQoyA9n9{e9JmT5bHy}^H-0t;AP%uW* zTgZ0f3$11C+@lZ)hxiuW7jI_5!(`@3om*h4Egvy=@fAVzt@P=lvG>*z%bZ}5JSlhR z?fGqZ#h(04VcOftS$tb@;v7#X2H9UjF{Ble?tS;uRp=RBM7(HgNJ;1rrg_q2W=jX2 ztRMkXx)2)ausrYLDdaUg_RKcG%?3lv@CNBW7~#AXt8FQCuF5YAjYQJkltCZ!wLeyl zQ5jMchrm?BZ-G=x4@V6A#@ZrF>&&(KY~*>GdEn<cB<vJ-frz)ERLGs4%37|ona95n z98`T?=LKY$rfTff$2Y;Jo{5~Ibcoo&t`>VqZ^4_T0L;P(ie*13Y}1Ty{xB~_%VeFx z`3bhhj%t5?x$1L^fgwO{rxo|>1k|4zSuVxK;mhk-95;9Iyik-fdyr9gcemH}F6W2* zj_!%|d^MzJ-KbbN>Qja{fNr*lg?@}#aJ`AaaGzw=kSTp6+QXk5b#UlKclYHd5GU9J zyc&<C_f6^25%giM^2>ScP^-Ofs5x4RCOXWBwIwt%S<7t!CjGCao$6XZ=NO^PZ=8*s z2;0Ap{A1I#&N1{^`NUGn(^pvT**RV|+wHr$x;ba_znR%KSRWgLSspQ`zwLl?W_TsP z{R`HQfKC;tAnO}aSlm_!h_G%5;P|`s1|)wx?r7leer)VZnfmwq8Dn%-P~(fm2puAN zz6CIjBtx^Q1>OTB-()L#8GB28I*U2xk2U0f(ZXyk_VB3h5Rw?vPAVKdJs_}2zMfgQ z!5Ma96#yq`Wr+BkA|5tPNX%Rd_hwQP5wRDHsRF&DBMI+sxSOBpya!*rUS-z}>kAh| zXt};V#VyQtJy$Z(2v{aWb}%TA0T{SMLF)BNtt<gB=wV2#_RZ5{tLU#{Beq!C!Ac~I zp|%Pk8w(zR9)^Phe7xtrfAOxzUKm9{V+LOo-mjm*AMcl4b1}otDzbG5XSPIGZtP%D zx|Qp`zRc(QTW52TQqmK<_GI2qhV1`j$GM7)05pMFisj<MDoa~Y0>(eFUlmZME*FM_ z)P*VTE?33j3t@ZXvbnwfkTpZU<as7>XKdArFO+y}aLBib1B-h^*E)c<ghWB{+G)zr zj-`Kq9au5*R@r+wrh8KRAc;yJJ1?3Sdb4BLeNMEy9dnXT*A1AvWfvx8f$G}~EDc9M zxl%~KJys=aq$;zzeKisl^a`aYoFu~*?FVwvp6i!E!9ZKpd&!LmJnC0v=%z1sxE8?f zJ8#c(YjR|fPupCx0?9lD$DdR{4#j&t-Cst*E>(#-e__T@MLD~b(`)|;`9$$gxiM93 ze*k56I2HUW*ly0wtTCuOREMm-RW%dJFz(5q1OFFBOnh((n!d=8nlW@z;kRuvN(a6* zM6$*gVGw5lC5o4&38I(`X0C5_;&4#{&%qz*<bqD(_%VBg%-~atLF?o^BO~VlsMBdI zMB_V@)xvhOO5pD9=bw2VzYv7bv)d)EBSH>$3H`Us{G_2T0cLKWE@YaXgDToRlExvR zJ6T2L4|E7-(~?(n%!y_OT~IjLK#8JrmL0eEfhT2Bptx`AvRFtTx<X!qc5^)4u=zE5 z-0c&Enc8?p8hPH^bND_rzb))<eJ?Ur&A^XEJ|igO#9@x@EKMoo;$hAPPpbw)-n_5W z=RBa`)*Q6=xi5}uCD*&s1LfU^{f%^QSvuFH>HU8VtN*crht_91Bm54kjjjLyjQ{_z zYH90W@8n`*X{2v!>SAbO=wkT4Md2&F*3R3b34foc9UfHy<J00v$9hrbs+y$W#Zjfz zB&F^H%xD{;G?5U|{BH?b)Xw^TMQAYtiAt9`xXKL>`M(ad|47iv%r&kzOR)<}`;_nP za}@fHE@IwYm-H+2KYag~Z?Se!OcA}Ew>8?Xm^VyKN%1znIcTO>Kdm<xPKA{!&jr0Q z=(u;-dFQyhYU*1kwHo(eW|l6}PYSxsMzx+z!LLV=HCIqIU{01^-$*c_rc`y0YYWWN z7p};`bbNL<W>U<X=OFyPQ;G+1%cnY&{K!m0r0%|vImT_iCQ$xb<o3a-y3*WKH{4Ee z&U6RfQ}s@`%l@T`?Ix5djJ;y8D6Cuo&@@f9Ve>Fcx&Z*}`K!{-s$h>59K}aZ_v9mY zmv|t`qI&A3NF#z8qXMDDDx6r&R_`dw{Vl`;urAVP9DM=%RUtxsTs-tI3#%O5bdJ?h zob6VG-YjolGv5P$m9BDh%B=wt0tslCuMz(=Ipk>^<ofEB0L|$|y}cmWa#`LKp4mUq z-G5V}kJ3>OU^p?~YD4ty*V~#k{zp}+&CzlZH+RSu3n>?ffCnRwxXOjS9@TexeZK~i z84Yy#uG$6JNCEKYF1;R<r}+RF7E|6+_pL^xcf*sXO{cmqs_<Imo3Tdb8ppwmVCKD{ zQlNzhAs2Fbi^OdAGst}oE-o)`N}>(=Q)B!U*i*tm)7v{ZK~y8`8a06htCYvW&B@W% zr3k~za|`ds#s!V#atPdlz#q2-ahuGQH#wg~k3Tlt%?Lw!FM;}BbVxoO5{7}0g1Z4d zx1Hh;GlA^YTZQw&#eeWcc_Dp8nvfQ%^VjXCp!0E5%801~@LtW+*02Xe_<UaD`TXYt z4_Co_S0lP5rVlFT5c`UGfUPCX@`L=4Y_b=<n<-feO}C?FzB~|hk5(Y$^#K{Xa1p?@ z92MDfDE?t<9rh=Fumjcro(dwI21G#yJo*bx?xkRA&-DfHQg`t&nC-;3H%D95lR^?W z^3NYOT_Po1ix-ZRF|&(Q7VK`zA}nnhcsW?hzzx9jB^h*OL7{B!@$)VfO7=;x0pVJO zOhYO9(~xK_reG*LAMR%OWlP0=ix3s&NuXVGSm0%I*29y1m1u^Pmdh5qd`d`-My0B0 ztMjm-R=0D+SL84p4B&6jXuB5H+{Z|yJC4spt1u}dJQB+0td=L=bDxtwPGUvy(i7D; z)lXKZzG7*mg>1Dii!9-YlVbO#wck@=uo`LPggPC-a?Yc&wT9}Xuv#Mikt10q3JjqG zOf?%;GgDb@Q{_|$B54VgET+}1bXXsT!(n0Ngk*GWnF^aBWg%OKQC~0UqYIlN;fq<K z056)>7ttMmF~7r!!^qf*6U{pZ8X@6(TG)f{L^tJyIvMIkQ8jcCKc5k-U6LW=IIpnT z*TzDZBjMu+`i7dx(jm-+xV2$>BZzDxF3;(b>pst{YDC!kss4bCwlF|WuxHzYL3~-O zpA9(C61hZ9y+9(f&)Zma4$7r<I2MB0x(ALYPt@pbi4L>?Jfx%(uXA8cL<9M;j)wRG zjziaFZk<a1c2vmDt%oA7EU-fY`VI}iT-6{~Bv0fC?Y-F`=ft_{Hd}09eXrJegZZP0 z!E6+Y4m)lWucZ(~Yr%c4Q(#UMg~u4?Zqx=gMy7Qm+1*GSBr}68ame4!{Q!IH^-v2$ z-mbOz>*XgfO<#61HPCWUD&cO*$7}_O{Di@BPJCAy{kt3Co0x0FeBh;td<L2B*owCj z`;kBl-bzpj3iq;tXVQ~uhtk=f&#Dd(%a@;A%Pu5x67;-|P;SBIyUgLS!T-MRgt7U3 zxXTNh)v_$S>Vp3Au4Xf7JF$Ivqj+I#=X<mN7Riube`CNKz)74JK3zhMN$|svLxG($ zu7Ka)!z#2eGV#;>9$*|CR@SFyZmwU}_v~(ry$7O4fI@Iilm7Szhawn2c;o16NMF9G zt1p*v`p>A7lP#<tNV86~>aOTN;1Gs(Arzn%&lnux@23y1asGJ-=P-8~+O;%Nj5%FT zN66A*%iRE8PjELOWfz=@{;}@(U3<5oFk~EZuV-+9%qRYVYqK_gk@(YO4Cg<H3w`y4 z$e;8K({QpV(HZ2NlZI4;{@2ps*ox1!qN<VugB1P$(8|fygO&25YqJ~$LSYK+6>T44 zb-WIZe29z_XoHt$T8!wFS_qVFc2Ayi&n|c&2Nh04#$3znUfoL7_@zCkI&qqhwV=bA z6H@W?1K<Z1MA%vp5+GXZ)v`)<oF=Yh^;LnbyU}9+cKC;^vC3*Dnd(!ZbQ3E@=GyWz zR`7JF<*EGp5JFN-h!ma>vq(fYGxnMAO{$_#?mI6>2HC~e5yq57lq>?_ita(jJtR|R zPDx?qJJrFmJ3&3j$K}ff#bl(6{Lr;$p=LXeZuWkyLv4tG{ttjs=wp=Jypq`)5-L0u z=vcRA;<qpZM$#37dT5EmE_AWUDBjL588-3FAYr^~jEOJcE>qE2zo^#v%b6M&)dt!T z@<~I~pPp|nz4k|kI4`QJ5mcGVW!dG+pv`aq=|HHO#@N}S3m!?nb)s)G8|`@(kmz@? zWjTNmZylk5?C31O@(q7CHf`%1HaRg3>vw2_JnTjsUNwjX86Y;13u9LtY?q}t9h|LC zsMlk*Nto#U&;u1xfjOc*VA*u>rPNcKslay2IYil#(<7Fh9_U`B-V54MDpfTrazaSD zBNoW-NZ}+~U#$B|DTaAP%srXzv@35k9tf9WCho<cSXGXZ!x-|U<3vC5isqvdCTfwO zR%bBW561;~7!rJ2o_}8_dzy6Sh)>hw^PQ##(*vX8am$@^8{AtVX2f&Uo*i2;z@`38 z#AVbFrN1fSS{8d_{&xn+&Yx4h3eo!_Lyn#pUXpGvKNe*`1xuTWCea<!UHw_5Fnr{w zqJnr><UvVOnW*RY`6U7KTE(c6{rE#|78b-K07gxu1$L;N=BAH2Fc(o!0=x=cJ^k>* zt>w@_1{rd*SJ~7yT9JPM=6aD(f_=PA16*<s<ZP|gVWOM9z|WWsIp1f~o;z%|PCj}1 zUlXET*0mx|e=#T5rcNKbm``L~-g)~tK;0h(h~DiGeQyLw{?acB6KHC_)O(Tsr75(( zyl#i>PMN`J&eu$mx984~XJCj3kSt?h7wf3%wF=FBMoNDErc1DwuR8ZR{NT8eWW%(= zUJ*jM{e}<sVQgt<(yim@NgU^;Q29Xa2RDOjiX7?<5tpMp-$j5mvJ@>?g`fTfDFP)E zpuI5(&xIPAOYXfwFbzxkSqBP9Wqr2EfRyzT1N105G0LsjJVC3Xo!Dsl%3W*rVARpz z6lB=4o4^Pt^Rw^W)wU(5%!V_;1qHDilss3FZj(I~1%y|FAX3;<dmXIaWy&<6t=O8d z3YJ+2czCY_SN9l^hXa%7+H#Psf;25`hB3^L2&kE+1mJ=aIl+(8WbN7lzXMq02T6oY z$t;!PlP+cR+R?W4&8@6;8MP-)X94{@^5K_Qxw|&jgOiktA&cY3;Ay)J*<Z;S6=W=) z^zXA9*1`&2yT_oJjb^~8QS)z02cM*J<b&gpJ=c?Rl7#fJ-SzliS8psL1u;c37=IU^ zpPa{;tTq_Y?gKtpEfR|<Coe1VCFlDYDw7nXH${nFvW8QR21sx(mwR995w8$_=g4PH zyQ2dDp6o-IZ`I2USQDt`Y>DkAx^84_#A<Hr<T`?mJsDuoC<4yT1yN7ZVsHBTa3U!O zV>}xw5zWIx!@v_f4p|Wmja(9Kn;j%tPp#XyMCo+B1v4tL1>uYsw}w8+dh3_>&0?{B zlOiLag>4z$^=b}@cX5IkH%^^G{uxB^>^GqEcHMNIokz@$^7`3%y)RS9&O5QJ>^ux$ z3UsqOfFMkCF8*hn;>(gOTNi@i#!6<JJxTZn!e+{LAw=!{XS5@b$J#v-MuHCjfcV&G zf5^deX!ko9zD;*&csrE0es&NcKMa#+cV=#Fiyk+mFt0j~PGL@3YzKDf1g;Fx2H;Z3 z^#eMgxGMotps_uS&U_bM^ht$cV&v%Jy=5t1ov5kLN|Ap!(w}d4vGOFTvYJ&VfsMrV zZicE!jw{gQ5`}DArJAD`-A%?7L_xF29v|A>`6TsUS1h4q4cpU$p`%k{`Bm{-J#6Vu zj6tVJ?pi?%kKxK{C;=EkL<*cRAwZJ#oo@%vOJq>;kmVcm|Ll9>rAPWqiDP_Gr)qK5 zC9-r)V;E6`lISSgIp+Ra^vTkPPYNdPX6tq1J~h?^!MAle-xjgxUwb7iTq$T<Tx;#a zKMMkVf<89xVe=@(_5ma<0#sd3rcC=2I^bINB>2(1L~?m4NMdO07!U?k5b1|xu7kQ> zw%Le3in}P4mAS5{LeAa6)v7ix2~#IqTzP8UsCQq|y3$hHP6cojq@7&WAILAE79v~h zF;oX3V9wJzG^Ro&1(b*ft~|wekJi3K3^#?B&Qz~3705%+^#QF#qyoJu<|`{y?V9ya zRTuJHwx+9i&1OJtX*TpoWdpe}4A!PRx~3{6+c54!$VR2In|Wu4nrBJRCq%D$tD;Or zbM6U;?y!&#h7?e;pGo5`)Ew1eLg)~XbtWc$++yNo5GG>paxug!viHG@F*d(3ZRHHt zF@BVkX<TNFbKPE|a=_Kqn_&OdGDYxrg9d_AB=e%;T!|@4KDG+ls^A^bqJBQ|P?@i# zG+59YJ*emXcD9Lui}Fp^nErtQ!hmj4BkzoOCmn%xh&NBT8I;MF*HKLMD&C9rV&5oB zzu>xFy+eN{LzESj0YjW_H>QzOptMWw*heY?cx57IKh=|_QrC!|<~_~u0jv8?d}-XH zuD^&KA^vu1u!hpmRe!#QspJr7bPk#oL!v*}x>2<`z(*l%FQAq)fn@ytj!>t2ip1mN zjgC36QAN}+BA2$gytmR-GE@uq>6y4^^*_uaRCqRzB66B@_Nph=z;&ZNacR&HP!}O? zkFGwd<tI0GIY8dkP_~dSX9xnCH<P{%E~q}@GKU4WcKP*38sa&5M=}cBRG@hq+Q#P- zA8npuW9~`M1cKO(0(^@Qr<}`1+Kr2guN3N|^D#7w1q4hZ6f!nPFA)i_9yX`SlaE66 z+CnC15xXn~L2nE>Bj={YOAy}mjCakDx-l?w%5O^^ZfhqSI9{}y8IHao&9JSQD2;>} zi<`tj^Uk>0r%OQL!*WD?J5pX!Aw`h8k&m58K|heyIg)BZ_lf_31!1qPFu+_+;Mps6 zbu8)a2Rhvpz3eHgWCD{YCFf`y^D!Hlt&?>qU$m2&L|j~kBU_R0Ftw<H@zA=W0!0CQ zVpn{^BPqKIJYlH5C8Ow#q^0QzfJL3Ue_-Rcx3kkFRLUAw*#?8l<We<?xTi*`;^E>? zJMo*HBi>vNYul^V3;MtmTqExKHKLU_hP?|JPpmW$YD*qgA>ZE2&7GLTdOuR7Hf!<x zd?tj5$SVO6^+y+9&1v+;_%Z?@D!?*e?UNN$d~w&ZI$7&g0-%An3Fm()V&#i{fdz38 zteDMBCG`#E)}81|TqWq1wyBH9oET)%;wM(Tt<6f#4`+6=+e(b@eVC!?=K>&!DC*aH zboS1wI7kq%-?Esip(4&AA>Ss>>$WgrgsFM9u@~dRYjd35!PY@bz}y>(N*D8T`<gAO zLNH+9Xm%=BKg+lIz#+n?uY~;Zix$n9XT~|QfAKBtYAxL|4pE*h8&9Y2PI9Jl2Z_VK zUznQaHe+w2SgL^E(pTE8=EY2H830W_TSkrF3kx!BpRNNTmE@2Wpk_tabTegsUg#_~ zVu+D=N_UKTsw%51yy^YPeW%}3)|^?#s95~&Ky#3cDZ}XVcz<3<61T_q1SdZIjD&tW zuj9w%|MPbFOEOSnP^2FIYsHZ1UsukB?*VdR98HzqQWGViql;ZYCK0a+Tj0U>f=^ku zOOW*k*!*_BbTlpxA7#VxR_(ut;%^7W0pKbeJVmNaQIpIFr8c%@T9i;{5;ukwtLjBa zZDSaMBFDd;DCXP9>Ot^@cS@P3G(j-;`gh2W4d-6Brv?tEn-H!4PZ3g|WC%{54c(z) zwJiF|h7DTTILBA@o2<QbU*XhTfY=jB<*m@ij>uqzU|Z;F#zk3~lw*o8;scEAOE*{a zYv;8XVYYE{7IYRQ-p#Y54f{wsD~1-kpI5?^$*R_Su?|3)!RRUoG4_h20`$T>L%hj} zeDs(zJ1DIb0q>8VvmMIb?A;J2*YBMUV*{BczhV&i+Cb(O^9Gi<k{MBy9>4GB)CIZC zMZUC}j)%v?)L%V*zjv^W0c}U63gy#fjM>E2cji1gn%<CcfT6vwV3xapZEp;$MR|q* z1o;N9w7#TYEb+EM%3<O{5uPbJ^4cD<9sz++nw*h!r`Wh2CIP5gii6}en`r+LaL4Bb zBX<QQqMyc&mn0I;ssazLEmbix$)(98y#PkokA)os#B+J+jH3@~itai!><W3uB%qBq zo~fT}u4YM~B;_n%4QLV1OYj;@N-WVz+U^h7z<!<EHTm+V!M7$}=bmv&J~K^gn3}2n zM29Gkrd;z9ALnmIRXyfJfwQxO+b3GW?pOr1;~X_-V}@}00=rT>N(8Qo!p)i}k;{vp zZAiz1nOUOh1ejP9Fg%XWk1LXyZxfX(oXh-USrh~i?32W*ktGD^AA(XY8?xwnk#kzm zOAi(rGwz6S2#o%ITSWAL&AR><Au=CMBhSWdZ{Bp}+CYFV;1yZmmMk~fo%KYNF^)Ws z;1$w|eG{v38)5*b3JjclVJm<VBJ{#@cXx$bFqtgIPeJsMj`pm;_;Z02Y&Sv)*qVWZ zcso`ms(w>H@H3rsJOq50T$>P06vZ)B?l(}<f{RW~F!UQktIz(pD|28P45C^Gr6w{0 z0uBb(0@9XJc?r7p9@~mWz5BL5ZJA16dEI1fMMo;n&F;P^bL;i<sg2=RNFi&Ko`HIL zub3){*Kk;>RFl9Pt#>SHN#XA0LQbftN)DnbhNFxK5MJel2x;y8rj+Eu1`d|CzsTdr zU1bK)>N{L#?ek^RiLk{bCO96CXhJsTu8C+9U;qjCXQ!>`Ni-8wp+KTQof(M?e$S_X zI{tR^r|=r6J)wuBt~3qhcu|f?u52{~|NA(4>@b~NW7SBcXJN3VlH+7Zj`SCH${7d4 zGCY(<*F4PX?Q`$g#G?)G()eh)mK<{|*b$o?-z52m1?acMDgh2AC%Fl~YU3Gm;=BBu z(qCL6z0n`sk%hI}KgIO3-;lA6MqE;+tujy2aB`P-9+y<v_oz8oqC*#VYpd#?1?eAI z{1+>r&ipQWF0`T6giXugD8H@k+WipbBs+yStnfYLxtGTk5o*(czW3*@pGmmI2UV0G zjG{l2=rpR{DV<bx6wDb_h-QLdgFn||kOldo<M-v=S=7nCx5IIxy^rgsdg1#ldlx7; z0O^8a53U;jR1eYDSq^MW{^|W?sn~Pi7tiWe_0&!QD5}bS)uU<TRMVTJo;JWTd1tm+ z{o$IBozfC_jzp8?%OKr3{oFodmE_#GA}eFg@eZ3C9kJ>!chPm8Im*Po4e~gisg30( z+4?pP^qN%UhW<g(?WKemk#jN>fVQ`CaFy0-r?aG;n$aVc=!EHH=X?ck|2#ueBdqIn z64;BVu-*ok)ONY=L_$l$l*Z|d9Cq|L@&!t$O+D&XxDIV#`l7HrVJ^WMBkn13n`OM} z;Hs3EhJlz1p6)k$njT0#b6lRlL|%JPJ!J$x_IBc9zdfN<eGNS7A7-`$scnNrdtP*- z5IYvUZa4Gi904+)fP2b^Zmh@-Y_xX@+bYlAj2f03K*V>H+fLq7geRP6*p%j63{DN~ zfzV_WKb@Onw2f|`orBMkw*;qUQ|2URi$PBqEYukQ=AK;&Zq3%{sAy2(COeB}4%a$@ zjzd)seO~g}S>cB0F+GT0S~?7o%HevWA5nIG1`@2+Wj|mz27eB8xyhZca*FB3pNHrg zeG~0C%RDH>oy0wYz)VfUOD641CREyjvk9P|syr33RRyBnPLG>eei2daG1ElzR@eNp zu+plsJG6!+G=at?H`c8gVJ)W`!PZ>@p=y!kEe3OqVz)JYQE)H-y_u)R?hNM38a-XL zaMingEd$~3=Eo`mVqa(R4h#{z=NdVr#QjX~%xY``dj$&w;Iil>8e?wa8J`=Ju<)ba zN@4d!8$Zjy3;{li0qIK^ra6OBh$Fu4QRM|j<nbjl5BgkM&cSDeb_0I0OAH;{l-s;7 zmQo{9!OLAz4>CK9{VRW$OnaqEj8Ho+lIk1^hDxZ@X~PU}?~kdCcMA6?S)5_x#o#QL z9~QEo#{O&@t*qD&v0=o(QwLEsB~VIFtgCHHMIifk)$A`_C1lfRlL1v3@Xtm+26%%0 zY--3|Y7G;n8>a1U(ZhWG%-n5)8+)@&F+-^JvQybaWw8!+^Dw!y@`fUqeH;(vpbFrm z&MB2TAN}<pa3pp=?jK!f#049bi5yOs@>CdZOvLZx@lR`JB#cP84t!c7EDZkQGZvgr zs&f~Kh=2(+j+owS(rUe8V5+XQI8uCJmKA?v@OQ#SNV&5$LRB!%c-P=_W6^r?u}8Db z-Af@_VQiVD;4W_CGO&RRE|41yfK^9&DNyc4SCL>OpK%|EH&%Fa`f6gw_riU(e?)&T z)%O)Y@Zn+cMs8dJufWhiNbqb3A?j~!sS4Ti2GQ#Ni?Vl$vaMaRMbplewr!g$jg_`- z+gfScwr$(CZQDNi?>e`gUG;FQYCep|IolXxMvor->k*OYxIWk`9}4uo%B^u}7!=N= z(}xnlX3%2hRpU5_nc&d@=2H<LU(o`H7+QR}Vfir?fEWxni$S|AZu%D*Gf;_(hT?YL zLO2)4)*P-rS6{qq+QR2z;o2>?k*JC@0DAN;GTG{NDsh3_ORmhYvQ5!JU3}Q`HfDvm z#fBSa?~#_z^~S%R7rcHF*OdM5&cs49Ci`*cg?WG~=QRcQAT@%>b9zzwdiCr(g4*w@ z_^Xo#*ThV(NagPru{-5TjMO%G7TzHbY?a$yh5%6<+%XAI<Wvn1BZBg-3N>Z4^mXvv zNRb&u^zQU?aE?fta1eIwfsYM6Tv^{fSOcS14dAy`AiIwfMf#0bxuH(^O2yV#aXFHu z%uC;pao#-H5a`y_!a7v%w&4L6DXXx0f`-BUoHK16&0?cD;OY`e$h4~fXppATKaKM= z)p4Z(5I;ZAP&~jtE1OH1$Z;5(=m$;kXtU8SCF_;Lc>67wQE6a_2uoF%JTfQuOYRTV zVgWRg0)VL@TLw!krrc^`x3UQM@q*(CndpYOsUm%2`>04JP!@0P>Eb-T198^I{!yh) zUZd^?INSTimtr9I`{kB2=49bfEsyLekiqNf%I*-4QBFn}Zl^iM_6XBYKk*nPFqgef z!#*Kd_Vh0T6~&9(Aw!z+G*~04W{7<XFsSell%*4tUx~Ii`;=ZAqf`iucyn0##P`o= znoYl(rdB2wf2|(Yf<<p-+&l^v<Mbn%oxSP)Y>V_7ucx(UK9@vSo?}0}zM90EeixNN zHu9Z5TZ4Y4+2L9_OFSvTEiLVg24^I)?jo4=Z+O}#JDyAt#RMQOG-Y*646iSy2fUGS z#$gv>B0&)D!p-woqV|#l%(b(a$mR?&%!;Wd=;Z-CFIx#L6L)rYr@0PS_&Pf&ZiJ{? z3ObCs-pnolad%tChjVvlBKHxLRXU__hWrX17f`I4G4MZ>f026SOZNa|P8Y7KmP0NB zNaw2e(hA5Ak2oU_mEw-xiikSi&jE4Ak>7%Hom~BMLr?*Guy2MF@==a<cM!rL^wd8l zuSz+MVF<N`s;K_a0p&)Qfe$kGAbGQW$E>(@ZttB0sRee5hf)g(l@-8<8#xFk`aB_5 zL%{_kd5&b0F2)G06{xn>U{Hg>H78ZRB~U8~H|ykiWVgl5+^J-y74AGt(Utw{HRzA0 z1T!gUhtFSP7^w$uWOMPlfgU1hl*z<3EQcuY4-5I6@K)ky#oT+E1<^%~@p_7HZ|TlV zvc5Ui##xP}r{tB3FPu@zb0Vhm>jB=8B`j)5($d%t$FTZGIXh&5w|c2!Wuqs3d-N~K z`}anjVIB@Z*41N02JlSV{ra;B8HZ?;?UNkqDgji7-U#h2!$W#c+p38=*4r8g$*Rs1 zq<+din#(W;H(6dO65;6&XpzNO6&PGk+>?E~SydH*tt=$$U)rElMB{|vS>t?;15_TU z8SjNS98O{J(!(PhJinVy5?LX}Ek}8!DDs|w;6~&p`8GHF@R=U8zH&Drxx~|^L!GVL z*k1;LB~&K4G+T&ud^PQPE2E6yY0t}e-YvF=LK`o?SU7`0#+1Pwsg)T|Q92L@TzC%J zCWVE1xqLc)?+iT$o_M#k=0G!9W6;gsdLLIIC${n_^lXw`oh6sOlhPzUyCuxhP`LJr zoghLuknjBkTntuO03}@5`|kPsb@340w{kKsW4-eT+7tt)Mla!5`2bio(~Y#m4!Qu& zaqx}~yiI$x^s~fLfK-0j2Xlb-&C}}hi)3HLAc-2{Td6%D3HUYmQ`)0r9ghsuhl?v+ zFS4x%hOEOZ`ZS3${$p2uAx;!+OmJ4`D(z!c?874P&EY+Y741lD$yW8<N-Hr`7aGs( zNksX(AnHpGZEMK4OJ6b)UAJaWEep2xc1%B`Z*#HX)`K{`#XpYZx(1sL=-@JJrCDB- z^Dxr`z`!eDM%eK!AFEH5Ijis5{XDE9+GmHx=@2}mIgRR`L1Hm<GmWdJ?9hpdHreI7 zLkPgdRQ4=Ou%DW7nr8`qr>L?7>6J7RSLE3(*))9@vEgj^vgv~lg>i}%0;l=#58ttj z^Bus57`xp8tAS)gXlkPeYM_kE7ux^x!v13~XtaVqKmFM{E&>h!!1zD67yP&kY#oj4 z|5>%>r6gsuP7l+0tOCEv@0^A%=!+uk3jjR#R8wg&qhHKSub3{rIFdv<Ds_J?I_kXV zNzF-|^ztHk7h6Z(!1xR1N$B(7X1)@3`4ShJ)=)mD(KEDjtFHtoZXrL1e}gL3fOj`( zqEph|VmCKP)MHBA0dxD|ud<vtS;Ig>T}qX$fgTL17IFk&&!hGJ@|AFZ=l$x|6dmiW zUPvHcf6(yKuu3^GXG6Y*-X_I>qJ6V$5xW`F84eTM+x^4&?<2U_?0suMm+Yw<g%Gk2 z4M>L|eQ10rW|HJ$zUjoLH(g%N<jKpTgTRqrlJ}deSC`)JpWZLur-$}78?j<ouEOv} zw2ac%YhzH-F;_XWJrCAU+f`L@G{UYUc7SH;dz@1Fl4}IyL`iJ6RYo6q6<+y@LfC`i z!T4JOye+i|yL$z59H1zHz%qElIJhdQbMsF92!*ynCUUev^gG7lcCcXOjXq}}yO-i` zLENGW&z0L)3z{iU>|qvrbiArk*R{G%Mge8iISgZbDTVs^Y?}aL)1-ep3j}N0E3i~I zLO*vd!C`Rq>4)d!SPT~{O=XSpB65qs%#mE%vNd(I-K8L>GG&c?;HXh$DZzb%6@j1R z>ud?f-foUcCeuLt8eRHkwm8MLhe!VQ0#xnhIh)-*Sg1Ux2{jMd{w`-HhMzjW5fHQD zFs`71OP_9zNRY0~KEf(>?ZWfgkFl++oyZT_%$tmu>7uq&^`M<?oRah0Fn|@#?02z3 zE<JJ1>()@h9b5dBrh}y99Rn=s)|98_$~RnE&cP0f?alrB3)iS@reK~*DihD)s;TSp z#cOj)XS{0}!x1iVsr@Yuw?RZ}_?A|I*68nR-)uLXT@8-T2{{eedPLKGKki-EJ_CK5 z<kHwd5>B(!yS0DlqI}Cp4Vp)9kd=yKt+g=Uo@9Y~Fh#C!40nG><cMz}HSelxc~FH* z38t1Q?cH{cm0i$o{K6|#;6}&JH^6@moX4tC@V|fn0LMSU!}32590MCmOCtlv|GTEp zDo#q`fgXPN`V(1@hdGg?#T7}DJ4B^(Tz<&-?8t47Sh6V3+daOi0tGgKl<E6*QbK<i zT{Q=8N{){8MNw%H6b4)5B{;%s1`F?}Il9ax1(BP6maL1ttr(Du?70c8G1k0(MXITp z4dp;-`SHUCJAhjiFug~%PLm!VkZ>N$4UhvNB3>7eAN>eF00kltA_XG@1G1u7fA$d7 z6EW-Pf=f)nM}2QD$+IXew9;o1U~e_2T+NFey9d4Hvz^Bzz5#3Veo@XK;vmxeX>ut) z7*Xad*xe^XW_q}OHdbYbI`7j><et<8T8nKh!9G)~7_n6k{QJ}Z$5>60u{Ky`ObW6( zu4p{@S-guvFl3-?5lgxpYL9DB-2`&;@3>rb1~*Lbet2)(hp}Cy$}H@P#7^{vaU*Xy zS;NOZhAZ~y2r^D-5xaw$RBbO-TWFf|q&r)1G;y)+)S&QzP??JvxWM&Y`~8J{GLcB4 zjrQ^MkZ`Gjqq3rx#<lKtlhq^We}1LN9=I4nzyJWmKUhfrzj>urwt9{~Na&;_5xvd| z-}SBn(*Z7_A<7pg7z2uWl4li$9Y-A__)C}|qOf){jZiJlKJV-8SMY<N_5i(ZYR2%h z*L@6T#v?)>GAiY7&PY3p&l*+gHPl9H4cCBf<*|T~Z)FQrFWknj97!48Pmd?owW+hk z?F)p@hZ=w{%T648Y3Wp)gdVbf(9e?*;TQ5@A6J`C;2s?I=ypK79@UeJ*bfrv`2#VU z&k#euI?@d=DZrHwT)xYQ#{pIMH35DtC(Z?o75mnN?QP~D03N3$g9hA`yHQLc6M(Ne z%1J&1jbOWN>VfOhYv2K%Ua)q5z89^)lSN}mZ8g*o=PPJa_uC<KGg}7YaBa{H(>UGr zi)I|D<h~qbJD~Q&c6g6U*1a!AB_<*k@QA6{Q>5pzs>7}VONS9wlghiyVs>|6ORa|Y z&|A%+-;1$F_UzSQ7o-RYf?^a3XvAXGtmq{&!zP&geU_x?6&y1UVUulMb=|VTbeG9_ zUn+zx9^dMIaGJ*A?f1^iof&QucXE_E8|47IeAu>QYNpYmM%6;&W%R2Ag@v+4Nr4B6 z)LhCeB08DVg&cz^COKB%>(LcT<4Cuwn4Ia0H!ma48$;i*W)AbDEDB^EU~PXY0X<+4 zKe6d~8kka*oxsvnldR=}vYCfVq23;U#u260wn-`(S4!j@8L?XXN`oCRp5M3q?q$TI z%k2a1yF)TbOr;!V8IMMQ!Jz>DHNmXJaf-auifdrFOV*mjHYgS7eb^dNW?<~Go^3%| z<DXyECfaTA^!yxreR^v2T0m;=3XTWMErUJMliui<%6ZL)EB*B1qL?LsK!!|*t7?r4 zG-1XRT^1B!Mx$A<JM@=}Qkv2V{kXJ$#HxBKbo<Zc%}8UzGWS^#yZ25y$YkW!YLBiV zS_u+)iJ~Cvb3F{IKM7L!@#Pw#Zt3M}99#KeNf$jWZs4=!^MYFH%O<LyCQlaYq66V# z?i71<!j8*8s>mvywLOyHja+V3REZ7iu)_B=dfvl5LT8-Ph|$%rGz}3l+(9&v+z)OZ z86#-V`mevqx!oS`N1L8-Wiv$=FlP^}78&H(q_Xop)P{13Zrlndi;swg4L9QyV|)L$ z{q-Mq63uC2W&r{KAOj5m!1O<lNMk2!14kPh%YW!eq_ULFKKsAu$tA&*<(_l;B`SGL zo<HCdt3xW_Q_2{tLb-v4wzzfN=c9!Do#>h+0}pc&d0ez7F^N|5ko(Or>ZWAyV3mcv zjpU(m{VK^tMd_}vT4K6mOb@5lG}H!vWEb-wtBPBwxGFWj@_MI|Rk-v0By&qkHsGh0 zrsl}?HnHEBGe2Ah;Bw>Mx|@O1Jxo@Ue~qlRueIT@Azg}xI!ARHwiYLnLpIYfWVQ?c z<U*ra4#`NMca@$_o^ULP=ilI_xz?vegba6K@G=A@ErlGX*4h?xnyUvuXw%Bu14d6d z<}V0CkK)Svfa)@_W`OXndRPw?ZR%E9hZmV(*w+wrJX~D->I8?I$Cp4KL6JG;L%iBU zUEt-<tI!9#v?HX^5&pfJHJV)|C9UkMuNXc;Gt7>UCg1JtQ9&4fFQEzu`GIump-tvC z&EU>Q{8bESaO3f^BaHa=bvCh|k=_1Zdgcl}qi<KN_%9-@$pugzic(|pe+c^JJI(JJ zmWB9&gveuMES29(xNV#b+(Ie14_4l0RZD0t3wA=Z2vN)|$SX<Mk>YmQu_^T!=EMEZ zhh*y&GpXL==cvM(N)M9cF%>;wy&}Rm15|Yb6_xfx2Jet12X(`NkXt&>3S#Q&8#=_l z-aPN>nMS8cM|HNlj$b*kJHLdR9ChMl%lshnkdei_3R|L|){<`?m?PpG@hR1~d1wX| znc+O<l`IcX{1e-M6HstspxYn~CFtDCW#M|N!a#C45_5(1ai_zbY7TgMm&&e+O9^?J zq3d%<V60qdDND<Myt*jm-{ic(hza~TOlu7$dV>cS4IXr4%phU@?wLQ9{V{6NTjVN> zT0>+NB@XR*@9|Gr?PzXUIN84GY-~hS5v4%v1R=|idKI2k$TBKk>3uryjho+w3m%Z3 z28-ngI%zAgRprpn>CUTB+DVJH#-LzTRWk@y9=CPCBp!r}4|_W+c*%*HpWSyH;6kDW z^{caJA4ge)un~)b5F$R{n7t@YjpRLab#}LnN%>Mp;Yd9P7q>~DF16OBShR^&TVG#& zwREbLDn&Nt4pe~|Qk6w2>G+nz2ed;KjwvA#<%YNPr3om<LE{paku%dNg3@K)yB9m4 z(AU}f)MnlAnf=y^53aXjOMg@m=f=2>lNsaXdV76vnAWk&xY;H#{SCK@b=^lImC_{7 z(Pcv3bcV<%*ld{qyJYBqg~Gba5a*qE2=|7&g%V-TU<w+azb0NWx^PsoA0vPE{-W<< z)ePHs>D<oE!eKtxek+vLAtf!gN8%YxmpWrRSO2$q;Q<42@G~Jd6kgO<7&qK^2*P{q z8d=q}$zvy2@dgoaaQ{y7{k-2qU81wuO6<4ZYU?uk^}P{shy8XS#$dhXd_QH)giTqR z%_IU;v%Q22Yxkq;O@Ol_$$B_baU92YHaLP$78lX<5MZ$<chur|Zae%$`yNUHo>KKz zWUOt;g?WNB;>6SU^oAPg7w~^(6KR|)%NsxB5E<fsg<WPpW!3+OU5P)XRXQJh=RK9k z6kte5VMFpr9L=COTx?mHxkEW&M^Nq-m}*;llz-XR^At7S5Q8+5Ax3(p+x^jHI>~$) zfSH^|p*?V2NkUW1Xa=qkA=`<Yb{K}G#H&X*18**Ch*1xPex?CPwCZ$s31WXLxT6%W zgu%LP4>mM)WoXWvsqF93J2LXjysSPpb;_j@{sT8W2u*;NKF7VCsVK_#Wk;Ii@$_^J zmuJD27S$dW>Rm8v8B#d`d#`g*-HNOu^WZo3XhA(`Hmrb8f7OCg53!7sVh>s-Ypepm zs}8e_YRS_ol$b-=p`OEGySzVChGu*0e$xH6aP-ue4Pv{!<}?g4?S$5#kYB`sRYQ8A zqUIr(=+!-w{H2<l4jhs^x-aOsl{k0z9ZX`1Bn*KOnabpmw_DaK^Hj&QvDZRYdr_7- zOWlO3(EhcRR2kq6CJ)_BrhQY!@uON`$H=Zz>ov{!BJGPLAx%ya_T*0q4YXzS^{LD8 z+SI6g@C72a7`?#|yg}d=9Bv%w1ZY?N-VLE}uxBv|^EV;rF$T0L;@x1C6t3)=ckF}X z&k9%sjq0^VD&@KIs)|jxszwFuWS`w#T;O0JYj5M2rpbe>%?;so$ZbVs6sn$0+))e7 zfVs1fBI@Yk;2<1DWXxkDKXXvFX+p;_N9NKeLIvaT7`RCfP_qg)MM$ycBr(&}sKyQo z+4>j9^jP%kI-cDn?)sz?y8>CFSeS9nkE7{6Ff_ls3?w|qHaUU~3~bx^#f<d5`tz;8 zXrRqsXma{v4GM}zIz{ww7_AV!UMw3u9-^GfPhA?o^VAo)qI|;1NEFsSFeL*+kvS|! zAUU|UIr<jO*?M-pDlbJ6J44>ZO=zn*pDw@9pFZb$y+x{FbXauYHfQHML0aZ!C2}&U zs^CEa7D2(i60dA+2Q~MLKb?S*^EoZc&u__D|J?s<6RfGTmHC_9p#0`E^IsBuVC)p_ z@J}`6_mk{t|L2MRpMHm*9A6ke9`z$Z2tR*8^=U~0v48yqpuyB-rFnzkG-Kn}ong&1 z6+zSrl|JvTF5ou#3z)WqC6VXkDz5Dk1)HGMUnB}><n9b4G291xUJ)*b;bGKVywVp1 zx=}6y^@4vOyMl5f{#v6G$@AG$^J$H;PCZ_R(!rA{eP^C1)3295>!GTDAE5Cj=|=-4 zElp8;57Rd<53W==s=PQ5e^o^90X{ZHfSFxK4Y<X3ZEIosD=BxEr}g5@y<b^Y&BqWq zCtw1*qa~m`^--#WMw~dqPKH_Abk_@sI%dPkuGqK=*wg`-BBV_AJfAo`D6R;IQ!(v) zn4^FKMEXy>NPX13da$^47<}hg(($X?XQZJmDiGFF3HTlS(NLs7E~+=hDxkphR=Ik# zE*On@QkR8+&X~zagWERO)##{e($~qVHYPkzqx2XY<~$>0B+hC_o;@HQUYB<&&IeWj zyyFFoEqEOfy{JcLjKjl@U`<02$=Frlr!)qtZh{gR%S-MPaV*x|MMK%RD;)MGb^<iZ zGSPtld(LvHdyFi9Do^=urHQej_vEr`TEZ*qyXck~^TzI`ncsEpj)sTb3{f?e0p2>X zUuW4b{{=q*T_@21f2uL(AN>4Z{3RTXT>q)X5|!j+*6HEBudCU|1QAQaNUc2dEZ9~C zb^tGZ#peUcMx?3+c2;_wO%e9G9h}z|N9Uv;e9^ZzU9x{?U%M(%S@G|iHY}9+F>A0g zHvfSH?r2mpl~6L|7?-%i#PN6OFi1P3{MjmV!~4lT2Fe6Bl}KLmG6XX;bar3}@_-dR z{N(|~f$>+uf6jIs4`C#9T;rxUTi2JwLkQR<vKIfPv-w?C^H^15L`jKB3ioA(9<Usd zWCf95{1zly(!sbjt|xLjA<FZ@k`)+uK1M?^4<1VSPdMQpPHTk_+K$_1HurhD&7G-I z0~bK!p3$CJ_&E+F(uY5-)V4UHze5ApKj7CSX<9Z{t+~%lfe<P-big^`K2ED@La3C7 z+vBCl&xTJI7fYda^Jr5wGIEV(xmWv~pHJ6CENiO8EfP57aTK8!iVhl)Qmlh+*XL*x zwHdTP)T8|sqEDN4hbCO0E<x;*qOLoN_wg3_2D5qy6M+u_{gd+SXVKdZA*nITAV{IL z>BIS;`Fv6StZR!MmYL>SiaQDKO2_>*l7+=V4BdaU)PAD(-okpGGw|6=deZ5tTDyX! z2Nsy+_0l@L+To+QqHpF+dQh@5vM9DAud3FhJJ%-VAv7V5S1j1DXE%tE+L_COF<<CP z87X(Dsi4C_tp5U(&bhtj;ffHC#t-Mp`6Rj^n&0d+bpaMxzuHFwr6m{-n5<jLQI-Dt z2e_GM?2~y-M8bARu>|Fe-FLcj`RN<}^vO!B{!{GbhLqTx!y}it3-as)Kyg&E74RKx z5Mv*{3@MGu4CC?j+uqC^t$k38D;7r|u%kRlZ{gNOxW0Gw?;;E1W!WN^7Y5wujE69d zX8H;GM+a~=E{qFo%=*Yntx*3E<+74JDF`YvyjOI?9>rs?4i}NbcstK%O$HA^Uw_-{ z4DK>>c>i*1D(L|mz6O^RtC+QwoD5Npw@z*2c1joYj>Qo+@uXB_X?nY+uA~GrN4Z&> z4SZZ^y$-3Ddio9XMB8M1gf`&+BO?<(g_Mn5UckZ+uD<<X?0+ls+8a68IN2K*IsAJY znN|${FF$&C;b)$~0xV{RtsXA)rXglQj2r~@xuufkWO*=t<$Im?@ejH}YDkM4<c)a? zsGQ75Q|iSV##$y+c##D-%Tww?<h)z!zx8w0=oz3)5mTb<5GlMcWehx-#<4{)!xm53 z19pwi3wd7`m#5Q)`}+1oYDyU4U-7=#PaD3kA_XoR8Q%qvVS+~V`WJVKRi0W9RFmU3 zW@mvN@B$PU9)&wV&8ynfZebtly+J;ict11v`s4cRvd;BuS2Jgeeg<>;ViW{$+pMkS z9)4+g{+DNzwX#9x_>+H95dH^*?cbi!ziHu}s&YRH5RCV9HT)godraGjMJ)i;FRq*( zTbwq14|FiW(9>{rQAT1CmtehbuL8sIxJwC#%SvxC{qPU5*bj21MrH6Og}FX|tAV6Y z!SV*9qm?Gi2(^U<TE*`Vq_EEKo8luYX!l)}aPL?fm+(RTWm|)lYnlshr4FFas=Z3k zPv_nnb=u^sbsocvM$hNKZ9pdSsS5oKo@NhS(a^TZ{1}%CJ9c3J+uxKWYHCmvmTJae zY3`SNOSnJ}MZ3XPgPZ-$SM@jSt<M3p@>Ch8k?~?^9qhDDAsC?twU1mi8|paNF&_X3 z9bg^{aZd7THA|2|s$O#+AZs^Pz<9kS`CGoXwdru`$LK-ji)X}?DZ(w(+Q)ea54PZi zSGKp{YQNj}Eu2hSQ8Z>D-d%|>>HClF^AcK|{UU&NIuOe`o>3AP$vcd}m3oZ}RV<tb zA2WNa%jupU%9%*a$@*Bag5;6z#bcdg4DgGArTiK)1!C(widyM=zIG-Nyl2%<sl{lw z$B}G=4t=GGdzHUG!l$TKx#RpJ#>aY@s(R(1SAiDmN)mZ((_`~oOiMz|AWX~w!vP53 zvwHpMlUn?m<wsSna0`sQ)>35B=OdwliJplBD@wGQ?&NM^GQJ|$y@G`3^5Vjwa$KTm z5sj4j4nw4NIasq!g=1Ppwwt#&&`4ZO69M-*dq$j^*29bD@WThxTioghTpve9WiJk~ zpMw{tu8N|y^#ABSQ0=<W_YLL6jgjJ)@+s<q#2dMFxtd$$u~$ayr4jBkBCTs0xHP_d z0`ZXuQb~>s4ENyx&*{G*WqLN)Dagl8SasaL2eE;Hktp`?>7jE?B45=b)?I3ePU#*E zx4KJno8;Z|H+#@(xpKc{OizcHgCoj%i!kct*G7+al`v(6&dU0LiWf2Pv#$>BTU6SD z{6H~rGYE#et8+Q=0j_5ei%0^V{*6>dcHs^8d$Z^`C8$W1<uYgu0e2m+ZKzizFY9*C zH?KjyLRghskPL|!%5pIWXa6@tW43rU@z1!tx+By!m0*MeHyI!g_x;y;4p)RuKYzME zao^#1@u>De^nxeZx|5p256EGA4j925eipM9$!)7l3DR!}orwAbk$e7+g{4lySBW&s z&e&!bORz;`>L$Ny*_dEGK13SZKsU&mOQs?Ro5^m5k$q>LZe1Cb@m##EYu=T3`&Ei- z_52_42G^2#A7}|T7Hdw?3b6sd9?vGXw`I7J4e#ESSFr*GGp8TtRLBYRf94zL9Bs2z z6lge;&$b|zZbMVYdyh<R?YffQ0Ne$-lG4wjt8ud+qwLB?v&~O(6S3*9`8+tEOfEw| z2N&hkT@Hiw$FV&yh_TP?X|v**gKhAzSu<b4jU@u>9I|8RtwHQ>v`Db&V7T;4#K+_G zoY5m|GxDJ7-GvyRpm*buls2{}msPwQ5Xcl4ofiZO`S7&3*9clj4-*!bds>TqG}8Gl z+pS+pIi{z4e9w9)CQS9#X=bOs-w*y9k^Tqh>E*ogF@8X-@n^oxf7>qnZy;u1V`XJy z{SR?co{ZXHh3R^ySeewb)I9@-s1b&<vOi;0wTu;nN3WBbE-{b@BEG(8IB8E_i1slq zg53)@3N09k#uFdcTNv_fN`)zxYcZfZe>k;8=UO#*yCPj=uY6bQnjPCs*C^K%$%yU` zm#LpR@r5ho9I$#36t8@`c|SR!dBc|vYZC{WHhnb2^c0!RTkQ`=s5Y%A8O<lxVsXbW zjvrbLsjVYoReKU=CbQ#ng?aY8jY{l3bw0ZdT=J-y@|>)z82rU9mLAPt=$Z}4bL~le zO%R;~^>SMr2~GWQbF;IJH|wjK?H4-b@1n@Z+%?O1LYm(pgfe{(+~$^vO_`VOnRGGd zC-+KMT;2b;MOM;n8T;90cgDef7?t9=rFOys?RUY)`G&00O2LM@)oT(UQj+OEs=tAV zUzvGUgtl}9$}DOrZ7bw2Yd|FSYk(cff9w$rA2GpEN{IxPPFu+hp%SN&w^xnaq}R+8 z0$LPoCt^>i#Mw|8;lXi0@8nI!as&5lRQR#`03BUniYlyX(Uji|+!+%%llAB#E1vUl z%0bmPWC(prCvvt3#FYaPgJzG<JC`9Y1-?d49ubWw&*)H1T`3j}cSCfl+IH%|QyFaJ zxu!k-aT7PIA+KNxG8w#3swXWDndZ;=AP|dk!2To)AW`B+;~yB83$U+Rv`?y|g!QNI zvV%0w^LEwc`;k9JnfRKWt)G$dfGbE;N4WAqN-VCSJN;#}RTf7cn?!eAAxN}|P!S-e zz`K1Tgu2g@@`SrJ69T6Yquk1WZD8Nj_r=tx371I?7~!qDDmu=f<=*UqxC0Xzxn0`0 zA<;-sB<OY2kc&8!JFP)H^sec9+c_23uAO~`sl4gGH(Hvhnj9h7ijG>Xbu?b8-N%{) zMfkY<QV2LlR1~3cu|8FKBxbPKkKWW4rQE7jXhFJ-d@zgw6wZ!~DiZBDAbxgc;MpV& z>09sV)+sEHHV<!F8*j!RZ4E~fLMF>N+PwQo>g&<snL>k*4Drh-dtzB2h=v&)PZ*(H zE+q8D2Rf&vrwZ(WK6hv<0J#m5q<cr)uBxRY!N2lKES}XzHi_hqdip?Wo|ha%u&Z$2 zLAI?<?i#vf4yW`{?Ff6*fUJ4m<XgG1&goszfcJ#!qn;AOW_>9S5A$<|8-{x=WH-|y zzO#O2CS;#vl5P8MMLv35VPG>S&MC)d%U1Pp<PLbv#G895S<*x>2dCiN>&T8mUezWh zO|Xc{{L-V6f%WNag5Y)c+b;M0oRc&4ED$l+54gpc%iXjUekPcH>I=Q|C;trQFF18# zyKO>StLu$Js5%SZuSIpZd=_+*O<_Pp<Q8iiJ+OEQw?Q4{0rBnyrex+Wx8M#_5iguR z>~6yDZ(c`71v2~w`p<;2*`n}=SOWmW{qJ$+KMu<(e{}hOYy<Bq@RPZ;F{N1UtA0+Z z%9cHUb0OBOgSB7=i;xJy4#n-)E|#O?EQg&p=ycl#Vh4vs&te}y>_^#NyukwB`t!vs zB?@V7jMli*I?Zq;te54f^EJz93d(9;bWeXXla<#kn8M^9OhsJEV&#SjA-DR;B*W`S z?ryHvtAR9dkLbu93F!OR;Dh(TexMfm1VFBMg)+gH3z$X7VqT~+i98)jMCOm2c@3v& zhv_e>o|o0=hl{rjIrb+HoQ}K-h7|^0e|@M_CT0oa()53<a7!0*q~rMVbuzF0LE{U~ z+HIT}D^naro3%r)>@92;X8pEji3?S<H`tMOa1oBWg2hxiMV^EkWU9!OmX`jw=H5RL ze`5oy@RKjk9I-_PaE<k?vsl<-RnmxyRE46r$O;VjWKKZ{TCt}&z_l;bt8KPW>H&S< zxs0`-knQK`#fL{n2C0L7wFof`6SB~YULuj$Lxtx06WTc2@SGS!9w-&Jk~2}P`$y73 ztL>0Abv>WBEnD|FwU1VA-79<#s*lLg@;u#&AZ1RUB+UODWld;#;iPv^zMlLAl}n6& zzmo4$oGCD%{XA#5gy)nfPu+C)ZMVgVu7o%ZD)M;AytabceHSLmIj<y>v8*&5m>HT4 zer|~S91yM9<j)r5jZ;L?P5Ag(;YAgejaF2Vy0wzBxFk#|g%+87VF7_s3V~YJz5r+M z$Mb_z+@MJH=j{ha<L_Rw4gxpcK3+^cg>_j6ZHIn}0QL*X-31ms2Y0Zl-o8dk+n(W0 zA3v$}p0;rmaD<9rFb(F$z76SY-Ocf<5^*QaRWXPxbr+ogLc<sQ2$tJ>^;c3uDkPPb z*&5q@+`a;9?#zQw`qPr%siby1@w<mCkvVvEbHKl)vk=z=9I{%{qu~`dTxKgDRd(V2 zkhq$aJ1s2R(R7dP6YP4eWEBh{ki|GqBy(@}VBKg<M+0rAq#tPy^9z<Pzeaz|Mwnrd zwV(YW5uJ&U!?zNW{(MeL4)s7$KxOq@d^j=Y)|Qj0ZToXt4|#^<n{R{p#8>_srjur} zgS6m&hI~p;`b^GEV|F0dPF$U9#s;#rhKh+dxF7$wr}9l9Ax67edBM0UkDW&X{+Da- z33TM+-uZNH?@MX<5#LpkE9mxp&7xr>NtQ#LWcH2+>gT^{EdQ{DksDL^u%D99@h6g* z|2x_3-`K*xi_}i?QWpLH3gnQ-7?8TJzdc}|EigYT#@Zz)hO83w&Q?+{oe#EUoYN}Q zRCM%D#bvHXODjtG-5a*h5BZiNYjG({$(0}vV`?cAUYcUx>W3A;98m=*Y86t3PeM7r zgtk^_-K{#9)k|pIMYpw-t^D!!H0zfX<LV=7#X<N^7$bz)A*q0w5>&-$fD;WoLE(7# z({7aF7`ku^mlE_N+;>V2mk~I!W;lg5OOs7H2Xj38Ro1b8t)TkvNL|~_`+9b6&c&eR z#~Rswv%kRDBDh^=72Y4m{)PGpyu%q)M^hQS(4i#L;u{g!PC;m9eewW&M8C09t%7vT zQW;~%qx)C=+KBCdfS5Rp2|d8^bg6}!Y?^rNjAjL+u37Epz&XN>Y0@sRR7`5F2QyY= zJGmqVan92<ng*zL;L|<#HlqLqjP-TkQo8R-<|l_Pwl(Ndoa5IU>Q%bl!<mPPgvc4? zJj!<h1pd5k3O(01gi&9ZSl@3l5QiKo%V-VET%y3>3n;Af_y1DPX45jH?ENsoBG~^O z6SOok(KB%SVS=5?|6yl1SCP#0FASsx=0O3|B(`#25uC%{YzP+Cou4zEtP+AEZq#NQ z@wtW(ADsr+6fE<nu^Vyoyq~l+TsPa#xl%f9u(l-Z_ru-h+--{7fXTMr-X&j$%r9`S z5tql>tc&Qvhx$!Xs`RV*SL6zFN`JLFho|#(03w{J{fjWA-cxh;v90L%$G6C3ewqGE z9i`K{c_J~M(5u+7E(Y?phiI5f+Zk3z{xfz3Q+9l`sgup0Ezxc9I7L;#z|3BG_6qqZ zW({J#>2roNeG?%Q|B3Jy_-ZH9IV?R~%U^74(Oll)!LJy7bT1@0$*-kkI;tAA>J+nk z=8q@^Jofp2Wl(dIVAq&|ODhEV!{d=~;-gjb0gLs{HBHd&-FgD*7?>C&HPAUvn^aHd zQ024DQu5Q-3}@QhY(^LL&)1HWsPH0eA2<vuOkjCK?BN<&;YrkeOR@|@2Z?{ny|DgJ znJ=i`?6JyxYL=IP$-7~HVytbLwk>j*W@yd$15;6u-$ycL^I;-i{#3>WW4{?-tGNl# zVi27eQ$8=^uLQFtx8RETTv7Xt;YuuRxW#cygl@ctNYJ}0eRGKMEVt=-<)BCyRAiI< zFvBzP6B-Dv1A#ngYwuHH1&9g?AAZpi10wH#{z`z^@&GL5KeV3)o<>^Bwd%!!T4$Ln z?4PaCS-KtZ_1nVzph&~@VG>Di$nxF={+&`i^R(0p#$RqM6I+L(OErIiemcvp_xaW% z8{K{-TglobIclZj1052W(%;hy3L|{XM4#}e53p-MkIbFIau=()_7Pcl|5kf90j>OZ zbt2@P0ZH4AK^G%a+CYO`08)6HF(q5UNH)d@6icGmSa4TIWXxFy`_xz_(FvEd9mij9 zO}6RcIfRsb;#a})-fil>b-GAVW+3upb}-74Tw+>%jcykrS#f8%$#1Fr7&Bv01QoGU zu_FY?$Pc4b6S{7Xtzo~^G&5eX7HsW1^d-g*l3WWff70*Y6%S64#wc+D0u0Wj4i^G4 z?O3e#-E1Sx{GbcA?@I~}R9Q24^&39aO#&Qh@+J)pWu?t0Yvs3!RDOfZTvoPR;**y> zEms|uzy89pn^bgPp`xJ)9*24*&Iz(;EffcvqBC8&LABuHKOT{rB#4E_nx1Y2Iw>|q znRYHm?ZQVv9P%+wwxnXxVOwkc{mn^jL?f|QKb;$QK&b_3SG+ukIbudd#T@W@tJn3p zJXaOe$gH7|4u*WVgtZ~ccd~+-&zS~1Mw1ln2@BJ_Y>QhGHL_u*PFVE(#e2I9ot)ks zN`7~qs7No3EScuj73XIVP1jDGegpDrG8U|y0nVjJ^vPq=W67jT0&Z5Aaw|&!iVgWk zR|zwzjWXC)Bhw8hL(7tV7v!=Hda<EqBI0Y%#C3#J%CyY6!Ki$opMLprTDjG+{WP|@ z-Ri2TbS;oMK6_`cLBl)wmW8wt_>?WT>gPR)@Q&*`9a`;SB6>0*Tu;=t_gK@*nM+8Q zCD&|X*5;8&<8VdZ)37OiNtAK@be1u&#_~g0cydcQw3vf-i8GH3N{mB(1>{(R5;#MZ zi-|6;eGD)_VI7IAyl#oeD$L$;J$73tog+iiV3d|aL3$WC$Z24bPX~-+3e0r__g`In z!-60n^w9PWB>AtD7SxLu$?Bi;CpZ8An*Vt+)YCWk0n1C3$*6z4U*{Adm%UGYv%u6f z!mRwjFEhld=n!Ffw&ZpV`pSe#acdP@T}%b!^GzMUtzs0sYK+WYCfUA;R-M<_hr$`l zBdk-gI7_cmV4AnZ2PbP@8;r5Qe`elPtfJy-p$6P*m99s%lUutV8bY_%1>NzA`LM2? z%Co5@CBil*ZTc;CQtYC(0MuLd+I{a}QXH^dZ+%CxDXU=gPY(_bO6g_p78-yy_W%hL z!dftAHcgl<VSM6)(lY_=gQ6MwUvlXu5=kE2ZpA_I66WoxL;L9P4LX9GqY)&brkV2) zXuGAWTufHS3j+1V9?-OGkq;$`0@fNQTJA^@UHhKyVc~o2X};9QYG+BouVbzdQfkm! zU%jCsyDu`jUfi%lFfQ-~3q0_Z8|!XZ=!G@M$jGLLwQ}AHk0#EY@bH0k3K-+vOo(3c z&U9}_@T->$+M4knluFG%(uu(dgD}_iAlv>e>+HzvmtV?tlT;aXLtbsr0yad7@KYv| z`GdU|enWsc5SUCNqQJ40lZV(nn+=)b7+$2eB>sWQiB5HGE=qr}Kz>S*#pub4kazB! zvi$fe^p8y+Ux1g^nNOu5LYCasaa*6-h=d^x;pUjwcLtsM53p-O(l6Y4O>h?}05a?M z-z?-T1w2>q$eY9zP?hPe1uJQ|emn$<el#ZseON5XFhalZQoZ0W(;&_0VH;xii6Txs zHNP5t3y0{*O*);n@>ZU{g<iX-n0YwHbWJg`o<0inb-1DgcYbvp(d{L5@}%PK53FE* z{q4-UqTXj;m4W#7$k)&Rq^;dzfBNe4BN90<otXY$LeZ~T-ZMDmHo6$c?E%GMX8pBM z5paF#n0+>Q6u)*{54!26+MBFW@B1bwKqUVzLe=qove8>wAZ%Al1qS{^VT)O#AT)|Z zJl<mTb#Q@j&5bxddUDu@9FCI7_rBJNh&Kf9<sO5Sd3Y9*)t`nQ4x(6Uwx{K@0HrOF zWUJlhB#%g^E&h?(mJP(AaTJOH{&*F6!-5-c&K`Nfltyv+6>kpYnz>}7US{}~*l0Ph z+7hY$OmQ)oExofjMIc3h=iH80xz9e8fFIApKR%w+8>?Cls!2DYKS^sxY=G9)(eW*< zVlooPZSl%Sg@$XuK2s85>WE}6X~uf#@754qkGU>|Sl%EmC2={o_wke2s$UURN$&S0 zV9m`n^T${wWlm~3^h5E3_?bn+8!pG!B$hbUK>8pvR0ewrrp#unc)b`p&UZ}7*dHmb z4#^LLM$4IBpHd?P?r{r*M{M4SWh#4Y0L49)dAh1gd{^di4Re4x$PFB_&@-c=U#|3$ zgKY>z=MB%3i@QB4)c!C&$PAAEYy++1?{e^1p(fr4`3ytY6&;g=%VykjWOhYu5Pf08 z?;RpY$6HudpkoRxY7hZRT<lUNeKkZa;Q9JU$}msKe)72C+5516lyA~zjlN{`<<T^g zo=IXaT;DLk<VgA&Y+|Gc_4jNX`}!|L?@DOsA^ZoouKssK&)!JS@IM^<m&y`0`~UK- z!e8;rFD*W4;`2dUDj*9t59+TAwg(DG<fmYTDT<GUI>&x*VaO+#4$`7}ZJ2{Z2~T=- zy$0o-H`-M!$qQTtC_5AN$xUzahk1D}@StBctXit)b1B!IW?Y}UDnfz}nbBBza**E+ z1E65{ssf-Kns4Sll0TH6_z38vPZs$mVVpc5lo_8Cmb3z==Pyp7>R6+D!?g60i$vWK zAKi)0|MfjeEYT8|zS4^b1I4T&`2jr$NSnX;hEa0KHn7DlFIm!+xRS85u%Plv0+1?7 zt)Qz{DGLScoyBlC$%@3zI2KCsxNb2I)leU-IUB}J=A<$xomrB@^#d=??U_E^kR0v6 zHK<Iw&J8Ik&!ZW}oxOK?;pE;}lWKSZ+8c~IPip`!0-Fp|vN%-Jlk8NBZFuALTg71- zCU+eBcb%wXSlNPfNyrpp=YjD7d8wxQ)=<vhcu$7IoSQI=G&+s>zX!Q`jsltsdzIPw zZAa@Fsg%8#XTn60qbBdC3w^ckFz+rl+bxIdlGS>(LF(yFP8Yz~9{I8L7#MM=6MHe_ zm8e$_kGPm<;mmHqGI~46WhN)Uj8R-Ga$PPw(7PE#u!d-GDkbgpdSwPIF0CJOFzM3s z@rS%jeBSq-3kv(H`kzj;CB27m8(NQpU}{mlw!Gna0DGf_Lf;;2xr_wJ9gY7AWjZD( zXZPpxIhOPNcJ?jk&*{;#@+t)$2m=k~&0tyalXlEPi!iXA&wchM<%MlR5<WD`{#lTT z8uzLfBmIDgn|n)1r6|+1AK(=pge+YEO4P%+Stpcq`sqQ;-cD4MFe9hNehz?S+QAA* zm?a*$!cSf>h<ZEbYQ;R%R~W(i=czu>IY!a6T7tZZ2XcRzr(5tE4qOgTby&0sd`S)$ ze3QSQy|r<L8M5A-qu9=jz1kCeIpEZ7dM-lu^FHd?Z7j2$=>cy7S;9p)T+FVtRl(Fi z8}*(aZ?y~~C81EO7#l5YF0SX6kLt#DoYzc%^nQA;SN~lV(k8Np<1yulnnn@R%FY^b zc6hlupjX)pX^7PawNu%i7%`{POpQsL$hyu^5drwX8`Ln`np*ryWh8LqqZO^^K4#po z(v?-SeDUg%P~PrVd$?R+G&5f>-zXEow9Zj#hts_5^JEHUGjObVRW#01fD;Pkxz^Ys z{THs*0KOc?S9_aJj?Q;jbZO^t=pIe2I^|jFamNL0GAlw>D|J8=Hc>iKkX0am&7OTu z<u=p-Bb{Jp8MuM*oThu0<GhR8)e!}dFn%}V#rV1IlOi!>x=?%x2!9j{ra&im^_A(+ z%@F-Ulr}F!Tj|R=w9(G;_n0Y=zy|k)Q3wHYaha(K^PZ{_#ExpweB~S7<9qoQe99&} zS3c(F;->LbuL={1Xoo~fC^pijSg>Q~%{jHr&rNW8jWwZR7+$t%IS5}#trQccqs^a- zz4*Mhu~bKxH+~`juUckpm~<r(YGToq(RjTEjsub|y-VY?B1`EWJhISeHZPBAzZ%uu zDSY^xdOM$fA^m5O@h^lyVbqT_f&63t{cjEV|4*K9_!)?5Y4oqNjNYhudic&`Dv`q& z5F;WxVfBH!zp9Y6h!q2Xx#nptm8%24n$`<_rdL9>$fU;SB;s9<UMDBgYth1m?a5#i zEGp1-BXM{vR3$(oJ=@GzvRHD^mmV4=Q4KS1n&QU*swlrlj9dwAh>Y^%8{=qF1cwK~ zf(BhQb2v9P(QZ;L;vYy!c3u6!13lKjRbZ+1lB*@hGs{w>;|k1WEnY-$pV|)-5d_@s zuULID0Y0fk-@j{&X6$>{wKRlkZ{RERyInMEF|pwap1skIHz`_=LA1dnpKq3~0;#N! zm4hrfp`Le?&6|RLm5XlFNY)$k)YNvPvBF)j7;<QK0^Y$=WtAUO)fnL~>z=p)I25|B z-I+`1wBnlc1L{=*8)-%1%ak@vSQ_DkC~IsjgoTbvS|xfH*p<y^*DqYFfVBc3SA8|< zvxcn93j2B-L~6lCMS&~ItNN6;M<k{rno~*`73@hKe`BbPj4%lh{T;t`?W&@EL|7Nz zFRMKsyQsMxe3Pjo#;etAt+I6tuNlO)^RwOX!qO`Eh3D2^h55At4M9dQfxr`6@0403 z$55{Tbg?`KUfCX$PE9laF}zrwoh$0K>@6V2Mjig<HdopSi0&qUq)Cojk~~*HL^FFB z_qIWuEQrWOY?j`qH%T(Lzv;e-vg7bB9G1@+j8B8E30JZ&yj;EPwGQUlg&<!`#8s7S zK{=Ev$y>6yk~H8m^gzVQS=V@mL1=9>S*4JOdV{zqGQT}OO!kiKD;ol%p^p`)^fX_P z0W}Mn1g_E*<e2CeGlV)|?Hqu^@1Vw8^ZV%PtGzF3AVKOh<7C7Q*Wit$^<>5}xP=r& zafHRcnoG}hoR^$Lsi{R+&n;D3OPN7hRGUBiLnu1;0*x4>5_@=lM%@2m-t=P*n=j4F zoAX;EuX8hleZSOAB(5L9mM4c>frm_>9e*rz?m{seun8c|)G%H;+Wc7lXw5%7#S=r` zB?078cUJwvn2Xu|*RYB=VTmmu0nyzA_Hduxaebvjm!5m$=4twKzn$X=N%C)vDjpJk zoY=^>L7_8yQSpbX`vZrp^{a50pwxM|%)jo6uP18<RiX}PrTUJXG6OzL9?yO#=9rW6 z5t`#O%DZC)IAY=8e`5DMmbR-m>{b;Dz;G-#g-xFFj)$aM$|`^5xM(e7Us%n(MO>lw zS{GeweomKsIO4OnAJF~h*#0T70Dj!D|N4;pTpf%YooxSQe5KQIHnKLfv8OZFv)41Q z`F9fv@V_--{i9zplH%9G{&ee5qx^L3{QrK5fsOV5b%u4SO4zK6{8VZx)EU6y$%JP| z@*uK1_)_5w!k7hS9`rCq!chZ}6twM{X9&yRolNie$#n<lr-I<&>QkOv(>BgDOOc9c zqt1jE3hOkOBo3zUiJD88&TWX$-E|jdni6V{gqTZ{@`^M537M#g-y~SFni4FjlC<D8 z6FgOJlPWo+pww#fjYbG)0wmL<Fu&zPQPOjrR-qibX!ZtZo7J@Q5@MOD)GsT+yq<u{ z{C2tO>yTNh%XXZqrA|hVBj+?};PtMw2Q$m$)rI1ZAecOeEW}dJ&M-gV_J=1voU$@9 zGgGhe_?WH;6oOpCj?*AB>pBh|p;D40lQrW%|H>)9FK`BUB*|jMbO34BSB*|o!#SVB zNj4Dc*Ap2^iREpLVD%tZ&F1GhK@HIpO?x?~-lxzM)+L3w8|}Dr)x{F&V+{Pw8M!AI z>E(*=4mxMlxIs1V0)x_vqcEk+62vwl&#2@TrU=iQt<$;3QWw3pIa)Fi)Z6p^1FbzM z$YC%?(4BfrdSwNv#NtuSS+gUva=zvoUi4yGSYhESRa~i@m%69#pT5+VsU>STSr*wW zTWNfNFGvH<Mhu+|J0&qU#=)ae38k*C{<j*4{N(u(zO6l?lWta{WL=t{i_gH#()ZSU z{F$b`^f1XvLYCkr$@{5=)rnQouAwWpA>dsIqsVL0$<w=Qw=6RLKujaIhE*=A>1D*4 zA=Jh44LV(<Glb40A(!vUn!?=FE&R~cg*yQ~IhKS+xr-Je_;WDtA|Kfa`)3M4ksT{o zR&JOJ@ro<y8A*v-js6*(5%|=c2^D>KQXp7<903?`Crov8eFR*Sdi`npp-DaugQCO6 z955IHR!Oa$kH<69UA{QmqoR4D6eI}1i{@W5bMrcc8Ket`o<DtgMtEG*dRtAKm@(mm z62vIO!kvi&;6+ghG`#@cv}XbbLRTqN4Ugt;ll2xv4M$Rf$c%zOqfQ-f%;6>JXfK}# z-7YVm1_$Zaftwg4=zqdUbFHgM{7yO=8ll@18bu53;PF_9NMeR#IHjroh*ap(u!(Ir z8ycBcqV({O=uk!=!P@{!F;_hSQ@I08u4qKyAy5X%SEcqhS`lOLP|2;JvRu0cR_feE z#(=xs7U`XQXinA`opSJUTz1Tb>NgAxXrCbf3ScJf$2QA$Oi8fqeqDf=3g%Ey<t*N7 zUK{g#@V|t(rd~8Sbmg`h-UUW9uPAI9A`!j1ulgg5H*3u+0>y-aW>OdiN73$l&D`-j z=hiSwW3w2JIs!BXH5*|&tN_MNLRn=0ndVtA#Po-v;G$GXN`nz}CE5o`9}0qMc6aX4 zQV9urOi@8+pmswNqVw1s-*aZIGe{z!6-3LW-77ccY$S}G?tA1@1GPM>Dl?s6l^yn8 zYBSpK!Gi6pq$P)|*M@dsD{au0w+3G|$d6}db)si_PsC2hbGf}|5kVcOQjMT3J3wii zE!X-5i=)3qwG~l*I@n1Ro*4|(IT}i*`s<H_B(7`Bk}Wo8eeSOVXWDi|X7ED9C&?qX zV&us`_iwNF$E?dl3YL9NHi}6`O}#BWH;;K$GLQzo!?7vI7l=+1$(A#^iqd-C(+n<f zeqU4NzqBbx7X6>#^lw)|-@~+Ik(T7^i%oQ{W{947BXG`+YIasCZq@g&`$UG2fb%h# z{V7iQCtRv|-Pr$h#c3`dvvVXNzW3Ix-7G`N#!krzoxE~e=c*U+%T4Zi&oe_#K@cZ{ zHnKrG3aC1Q2X_ui2~@GhM=4i6kf73T<vesPFTR7}%8qyFsOacq`>n_-;|AK<Aqvvr zg5FF%j+|@3PdLya>&7^+8h65dC35`wKYX22kS0-^t-rF}Wmk3Cwr$&8wr$(CZQHhO zySi+go|_Z@Oq??rkr#QDd9gG0j%Tg)E`Z1qq=FI*HwQJW=}=P&o~SPYnGt6xAL&MX zeg8<PEXVO2dPQ9#6!WoZ-*}zT9MjWI2jpBd*kN2l`$#$?aWP=R5zqU(Pm=Xu#MV{H z0j2qx(%N$tmT&pIVU;P}#Nk|*P+Xcv>TVB6?D;d59hjL%NG&s|`gY9xZ$O-sV=|eF zE|iT8J#)!<&W}s26sSjr_a?|^M=i@PSlCh;D*)pnQ8->BUf>!|*M94S`6rZ$R-v~O zf~LJMa@Va=3gT!r%#j@8H#USn?|2}RgdkFsd_eQXSHgZDz3Er%<i2Q!2>xc8PiUj( zxEbyTCGRM)lvHX$CJhg+HfIdtr9pA*I?Lx=$;+*nVvUIm66Xwem8t2e{3vsRsPpF! zDy=S@$LP<8M{^9Xdade_UYXjzH+~Cr^D5U3QgchIj_t*iQHyB!-2Y5W-YV0}y&qzU zB-Q+}x7&HJG`~d{x+?bmoH-@o;NIM)8P?WfxE8DXJl`~3HfCgR(0MNT1oh0!`mPi3 z@ACh`kuFNOqd0oLp^T{U%;K+Uy|w-CdvZB2lHWKY05JAX3ncwtx6}Vj*fnEYIv%#% zb^3yhyzwuHU4F9XYPmW&u1b|mhjN#kmf&;aVIdPnGKf$D%%$4LegE<T5R1q+(`9WH zBY)RL4)?hFqg6UrW7nHix+|>~bCACZDODwT(o#06K8$qFTs8!)7SwdCZ#Li4i4-y) zI_O1NY_ND|l)*)*CaP4cph;_=c?7FRT<EIj%{EXUS1FgbfnW8Cd)wLV_2@*Fe_-Li z$A*@tEn6qcZKr0A8zn?|JX6JaW&*rw(D-@x*eH1icruSJ`1^VX2Zi3hrUC_3wG^5w z(-#VK!&(wNCb<W6K!h?h#SQ#66yZe4AcD>YLlJC<;jZ2!CYyh1SjS|O2T7$1$!>f9 z;C5;xY9Civ{E<5OJ$dhuV=QsdZ|*}{$$ePvH*!5*C^Zb&^|{SX9&);n_+4hXT@lFZ zDG35gKKVW#W>W4)n7mNA!JGpJ%)T@Rkyc?UQW!6!xZ6slJ_ky@Kwev=VNtA)U93Ir zK*6f^$+J^bFcJAtz_9pW0}`n}2;>#<$6tn--&&V@K$LrEnuwPV*eH{&G+cd2(@MW) zuAxKi&fLQzVQXP2b8%dRa)y-b^)w1^cOT!Qqm6qw_vQ2J>qF|Zz3XX12*KaScv=aU z4q#$$;tcy^UI(hv9*qYiB~2L<gO_uAE=etWIIO|_3R}Pjsoz~L+cdG+9uWwp)GukR z;$56!oNekDm$XptU3moU#-d$l3;uIZY(y|qY&E2$kOExa4_PpN4IMyA4r~p`wy2s1 z5^ntUgrzX12uKh12K_=ou=r56T&ZU`20Q_OWWu)~&7YE=%S9IAx9IUVR(f(FSGR=h ziV1_JF^*s{b^C|eP1ccnCCL<CyHNt)kO<imjm0c^2*Ri~HI!2!;sV2~|5RtJYO+S0 z1DL2X#`>-tsFsN90^8yemuaA_*OatMbm(9}uz!QH$W{kcNLQjpBIxzkP$_X!0v)R8 z;G(w!Uz^WGvumJGB0H<F{V5U5lT33lS+b=8CZGuU4K?W!1`IXP#bmQlr{d*Ka+KLu z^wqWI<Hg7LxcVhDf39&PnvTL^hc^I!Hx6L(GmdSr5_o`XGuA)pQdV5N)m*iN6xOnL zH9abvVDht?Jh`D=6R(-DX_sKP=F2ZNB{uZEGkp9=1ebeM56q1U+hGrn8y_Y|A#<64 z+%TMMO^mNkv>V&(ADxNSPouAj+!4OTwlfy1<l>@0E5esDACsl#r!0u$QULH<3^#h< zfNo>3<@qN^_uuPoK}K#3$5X|%vBuPa9%fP!o~j#ba1-3?yQb&EWYeigFTPGD&&t&( zy-PDO!fZwFyy|SZ`E53Vl<aFw0;7qQYjx@-K;OZUsHqjS)$&K$7BSog<=j6LAdTX4 zN_(^2;}ZzGNn=FIbe<T&Rsk(iD|_Qj851)Q9H3ve5*}Or#;9@}%{AGRKJMDLLqIYG z)9gsm6m-)KFD)j*FVyA+#44aY6aaAvi54ajFe6qav+m_C-Dy^e)B`nwK3KBj-iJW8 zt+(1&0YMBlFdU6SDxHQ*SnE?gAY=UYS@RjuJApj%3jhn+v9P!X^gN65g#_G0J82?f ztI#Sw6HDN8#Df;1=pIiiXWc|;eG%REb@>05vNc;r=`3o#e4za}FQrRG2a)721}Y5Q z4Pp;x_vr1?hxP&8akS$<_rH;h&haiuxv%$2CWn=W1ndVgPagEogf^{JqUS4SwrjHC zGOo~s!LED-$fJ7QS0w+jBR0_&gd2<+fpbMNQ)n?cH&M(d*ndFwhN}Q4*9*>{20<I~ zs8{q?oo8IAAe&F})NVF$z%|PgZ&av<P4nfQ`CNy5Fa>&;rE@v<YB=o8O;+7^LjJUc z2L?u4YeU#9EV{h0St{JxuJ3F(8&=v*2?Gt_GHCarJLn<_WiY~s_yjF2c<CDt3M&Fp zGSLDKGl@4f{qy#=9;&$lCAAx*Lkjli_mzGq)fXoBHyAQ~LZA~4K?pxaMS-Z5%HYQy zGsPopA#gTd;{w?VqZqTNOMQYCGvs55asGX!K3E3Z&A6I_VZ`q8W0lqhvLO^Z%!77N zT{<#nGL?PK^WkLDPJ$X|eB&Ai5?ZJgMKK?my9_wmyW)oF*@T4p%3jA7a#ck(okk+; z*nQ!{cAlPoJlNWsS2*hc&|q0|RmLA1`A~A_Yqd$eU#m%v4OSUX%bTqaoN6eyoN=xJ zoGcc=3a8bo4}YqsHX|n|UC~WP@7;=3S?HhFlw4pt?5~(_)7T7l8Y&7_*0S}H%jlyd z55PE)$I`T&?=3Ae{wPe5EQa-U0}mLBQRBv>x0FEZdTWg8k!wE~rvCCCeDhA7DLg3I z6JIILs?-rsk8H|@=Q^pMAGIPA0=mwFpFV=X>YtJLv@#(K@QtD&k$D8saTs}AW2t9E zcw&Z!y3miRu4d2CgqbR9nP_N=bs&SgioPlD=t0u6Y8ezAALm_?LtUdS^M4TDW2x$# zgVs4MN|goYB^0Oh4H9pj<X(e6+bbwj_Svlbbitek89h?sQZ-#Oq$;XJ&fcw?`fJb9 ze=uEKP7Nok`U4x|)A8!cl3J~Ba7r^3ERDDh6rVY-0VQCrL5(Jvm@BSf+n)i6N9n2L zS7ETl&&`WLY#5=jnMYj4RS6Ry6{p;3_2B8J$|#2kR|F(;=BKepo($@F%d8+4z>^?{ zQ7#c``NyVx-9dR!G$i@f-<2Jldxl3{or{?7fvTwGVdGo6OUzdbW3k}loB;v-`DXKy zp|o6;;1x<KkbKh0kZ`hKsmDQPz#F=%0ulG!c#O&8c92!E_H~>Z)i2=<E1Yc#`EPR= z#L8Jt^`!?n4T-W8;Z<INAs_RBzF=?sBfoYYjy>vExHlh?qH%M3W{qTFji_4tZluvx zGxzQoA)clqi1aaQNJkmto|5VZ7KZ@(^t&Ab<5}(cR5BNE5`&|^#nr`aH1@H2)0>lR z(ZgrF#NrwQ<AeihqVjKSj0AgIY|styZP<jh!LA&oDp*oH_yz3)FtYw2;Grl!1G!Ra zX_QdQ?na)g%$M>u@!?J_K9;oOjyYzuXnDqk8KLx$>L$OTdD76!G?#+Ip7XqUNgmG> z=14-r{-K05YxG6BN$f4e-k#sqNtaZ=XU3xjQHcYgA6G<bVo=?L#90)B%C=<7>Q;xn zf!d?D32BijrF}y!b=rtQN?DfVJSq&K%133F4ZW|i86Gg$)PptC8kN<D&nR<cZodnd zbInzQ^=H|tI-+~m><4_Q8`B6AfY4Tc^1xW;uq_CpFOi!ANT8{9E<?ZUf4yvUR|zS= zpf$%uf<LT7JE&=(^-ktfovmDsCt}2DLm@kRjXf<8{!P^Ds7NgdA%6U{Ed>71416=J z0T8-G^I%xP3qS%QotukD;_W~muk*sVB9tQZ7tO#)OmRs%u?g6C*FZJ42?Ilv8(EMm z@DkAvJ@&XE!=gJSSEY2=WXd1+sz9ah+o)AVP$VhACED-f8*h!&mK$N+6O36|3F(Ul z9TM}?<<O03GTGmIG=(Mjc+p3W)ffid7QioTW*Kio6VeDk=+G1OoA~y``-(<*pUK)p zn|7gmF^V9VQPo$CQ~_&VFsyP8GrH2^kTTD|VOHPaiw<Av$t)HHK{@lT=kTKZ@IyZF zE@~EAeOAG7tdlo&Q5NJFxnUjP>;#%{IX(ON7=F2OeLMlE$jQQ?0UW5d5YoIZkY8Sc zmXgIQYwTfi3-Ce-+@m{wIdStCytujf02vC6%s+%o$PD$+&h~kR-W`?~^`^WAGTNvM zgMNdhuwKs-LZYzRwB(8?b2)K{l#B-*)>Z|*a9>kqzl$vL&g~c}vN#I)+yYq6^=bGY zgRZR}|EQZW>7D%n4mOU-;%fPH_#}LHRY^N@=RLo|m*^AgCP~-29EEPSSY50WB<XO@ zpZe7Vai8_XEDQemBj*29_Xt1no;$+g7eP4+A2wlanM&(5C+atSjkWDzgdQ&bAU(k? zs;iMPkZ2HVOypBxH5wQbfL-Rhl4szQ?-#_Wj%XNBvwDxW$>06&U#G7Av_>Z1(+mTL z@{p9m*EO%ZY2tU4JPw%FyG|;yL}HMo_P}|U4eNV15S_;bf;bMd4gsNqP=R_N+2L7? zO_cAsi=WAoJhNivcwNDN>{!4k|J!6p#5)}iy@*>wOx6kIugtFKrer@#!^kdkV)Mon zJnEWRsVf-XX(#En6T4k$EvkhlL5hIQJrwez>Qs7?ujg);M@HY9B(hSA1FkMw0p1$> zL$a#vhDp;f@3p8h+BuULZ4Eo<R&j2fBM;mc=F>%q>ip5NA&N8I5=`ls9IGS#s;#z% z$I#xcmi$Mj4n6NZCX*hs>5sv@f4V~JD5%H0R&D98Ot(B}W{IqyY2MGXn6NUhTORAr z%TS#8F6actk$*6-l&H+!t);T7V^icy%VJNBz_f2CaMb2<B%k81YF0ODR=#1-I3<C1 z)U}h}W+zBMGzRuL0|cmKyP>o{jB|F|9><W>0So<_LaTD!^>-EfKrid~$Y?!B64Rsg zc``aw*aZ5!tPfe6inc{><#ymrdfoWfbrc|)h0mh0`dAw-?I-*sgaYU|z^8-fuH_)V z&}Old=FeoJ3}wsS$GgQeFKlQ)A(m#GLmLApAtK1ouZy$Y(!U8h^p>!uH({q(pH7yV zkTsH*n%JCx<p%mHF8||`=7K<`>J#XDpc`@doChtfy?X1>z`oAj5bd>Bm?K?F{bT7F zd|_!<h<I?%>aYcyNwzCepU};=276?Vb3v?}!^Nt<*f)RqmfwN?O0}mrxbce_Z}AaM zyb;;BjoBs|_3=9N*#;s+!MPl{*eZ-d;dW{8_I;W&uWDTxiS5x}VCmjT166RUsXUm; zfdSExvUokY1XPO4TcE0=(?z6;M}A0<m5c{&WaMejQf56o?N=!6W`=4(pCY6ksx#-I zJzkJ~G2ATwE8HHV-S@)MeX$!wFpF=2<38E?1fs<w32EnR8L29jdea3aIKU2+`z+H? zI7g1P%vyi`sJsdA!b#w$fc+jB70*CE8>Gi9AN>nI7shon+FA5Wn#PVTJ^pHwupL`U z>$lF9x-O*D^UcsxCtR5&Lo6?Jc`>U%q9-w6nKG)KiRx=wenWJ}BDHK%e3spzMWpT7 zCPk$DOJ4*CdQxB*|MgXfv}-$v4Wonb_iy=N>+K6~hkC;p0X><*Lo*Z-wS!NDqMws( z8o6(1y}QCTD9u%P5ByOa`FHNi5bEbAIIq&qjhNQ`>kp{ye(MeA@&hw^6ogdBfgV!N z0B5%`PVRLdTFphI6h4Q8?!EBEHNv#a*!coE<EhusaND1)QM%z+E-<HA<sV_ezGOKx zeCOp7KDS&4xa|zx%%V$er_u*Q6$i;;vf$06PT21BAP`$33&=Sa0nT65cTt)t)grAS zUi0!yNRGr-^#UhoX3g<1;&SIdfW7B?7(7a)I_U%5oYRw$dEfyrW>!0-c08Uhul~Z( zVYIDBjPhsr*srBds!MtkkEFVoQ8G`nDW_P;O{Pzc)!4P?6RoKj7X5cuSAvpGu3dMV zln$G}sR2aGT{OmPo0x@;JTn4ld>Zr9<JL{FYtFf)pI)~=<!re;n``DWpcy~+_Mz7x zPLf@bmQMcqNK4xoZYfvN4P%|sHyq5WJm1<3AA0{ChUg#=O_ZSk0NLCC0OkJ*L;g!x z_)nE$Sj*aVlQrf0M$exVpS+kcvuN9qbBDb;)2Sp!W|2dtgQu}2)L&d&P$-@fXhYTX zr1!5Q9RRuL_o(?x)^vI~NtgE43md;jcR4l{mUGcInYD`HWe2lCUxk+E;+V{9k6Gmw z4SU1%^O5-8ZbA9#z;vod4(r5{bs`n<0G`f4q#OB_OQCF#t}2VHa%=mBy8Vo0k99@| zM?OoYDDCRKu(GqRUS$biANi)u>)9{%@)F5T;zmzAcPGFcT|>Nkwo4NjxqEc4==6~0 zx{8ib`;^)R2>*QtQ4Sd5E@N^>%?>h3Yz%ZWVo5f3rM1*xVh6QJfg+pI=p+OJ-t8_v zP;YsV6YQv<f!aa@wob~Q!VHn^Dh5m;WEL8>mic7|K!tstWP1*}x*ZX$a1(`b&HEsa z$z@9uC-&Y8`L~IvdQb9SRNM+5Yn5aw1-c>8ixJ31g?3#l{|SH?6G{W6@D8~-st^Xs znK{!d_zVJDsaV(XKaTo=nEgAlL)L^SeUdbNW+;g7_GLHWd`U(Q6Bq#w5;Kcf){{#- zI(b^thV(9C-L4ztoxV&;E`G~O5{`$uxc=)57`6eRAjCLlXH`daED(iQ->gn4^&q$% zP^^ktU<18e<XQiG8v*6isGLZcu&9p7U14}G2<JdxIh31^S>Z-l4~oT-@SZ-#K<H$w zY}~ZGI#HRuH~m9#VnI?X@Ips(M*HNMb6UM~cJ2mMh$@ex5s{f(kv7&r*?OSKs>xW| zw4X@Sj*^UIGcK8IOk;CVLQSygwq7pYb2y&+PyV!AtniuF&tXmDiHv$R!Y|^RTo|fU z)Iq&)N%-7jxr%g~`RCf<bM048G>O1|rvvJaSQ)hD4=QrxDQ3EQpIm?0&7B9=uu)Cm z^(w5At|<Y!vcvJ+hDZ32p<ig$oXsbt>LvsiVpOD4LsNAn&Llc`3Jkk|h-+!1SK|rw z0H2@Izg`ZD^{v&aPth7eW(@2gJPp@zU&mrCafgZa)0+e90_K8Lsc5dKLK(|wGSl5e zeT3c&CqYVyXN8SRL)QIa{^9kz<3qUlc!B(2lWpemlGxnACNx-K87VfHzU~kA_=cfQ zehKJpUc3r%!(mEgNnQ6qOhh8u^^;M7o1uBm#mH8z2<BOzBsOJ$ay*r7=6!+ZFuk_4 zpXhY$nAqv=#HNKM%!CERj<W~N**$WxVHu!uBl_m)CmR<}H-sx3{~^u8qkJtNo1Hh( zTw$w7mmX$nrSys=q~ZHFQGYOQsTLm$%I1`yOw#*TncNMaIl<)E|5`AATmsgjE*TjM zO7BNNdjswoj((wk2Ivox+d|5hJbqUd624i?Kv@EuIW^t;ML#cV6!o}27j%3&GF$&B zOyM|`MJ5Kk3?zG4!!30?wN%im$e_<ciWa(IFW!+4kgeFbk4p>&5{eYVKzwAIXDhq6 zaDNAnl_S!yP{FLYnk))XZf{B}x7|BCaBqB5-T^FO@ml1STR`l@kwYNlUqS-&fxS1U zsFdBDk<t)Ha$`60?-sCF$~*V>Vwh{ySr*b(F%7NrE?VUf^2YwRKqt5R#7wX9vtDgr z#I{<9%mp|_Xk&JsWl}1$>MW2SOO2KZl=Y|ulY7>FIYFGHVAKG%f5l(=VNl$hUhFg= zUg1Rx#uTV%`hT!EuKL#>j_zIR*X-pySG~WPUHtna=k-L%kC!cw745EaFC|$wJyFii z97O+gF>)dP8KBiBzBchr{nPX0-YU07zGk6B(qcLhW)?f;cObxiy?SLjQ3gA|$L?UU zmPc$i!k$i1IIwT6HkQM}@6N+u7}GUOo<Pc|R1mf(LlMFG@>_GFakY#jU4xCP=-DLj zAaqbGY+-JL<yRYkxIRZ3p=R><mOqjbc@2;!(q&+Ur>&YQo^4UaS^@X&V1DP{`|YCf zhLHoS>hv(q`yCX3?I9rUx03|9?gTBEm}pP<%#^NHPSqy8qz@WsmEJ{H&%bRUw5C*k ziYAe&NeGoHWu?=flldYJP5jQfmy>;KP7-nIT*6kO^I`OW8V!jDR4Fxa-h_%QnC74Q z4-i%O;Sj=f&y$+|-b380)(;c8u99vw(LwJ^ku;X9V^-{IX#ftFr8s35Bv3HA9n(B+ zNDxfHLKUL)X`oje(?O#ZS$aIi5^~@{>1~NKQwg-DQ5@G=KH7k3q)`AnZ4Q);%!_89 zRw)3*;;8RHmE;U2w-AGkX)1S<&^M0!rNTx-@8EPfA!WNrp2Sc#%}mmI&_TNyT^#hB zL5>csD}6-13o^>D9a&%(t|_J*q#g$ezCrp_qu7j7Usd*?U6F;{;35>xcnvI)S+Y_@ z_Dg{hyKa2bfjAstE+lw{<w^i^c`m|P2bnVgqog12(0#i`r_1wsy0UTg=jr0}sde`4 zBeEslQKkXZUlqi2GJ#0FcuFfVVl}AS4^Ib#VX3q|1Zcp2#mC~hTL;8{7L;FrM7+U& zv`iDw5zjOt%F^urlM$H8K4mUb?4Z!nZtX47*HPDp!w6ac0c^8h$1pEgMUkLZnG&G{ z&L-Sd^XL`an~@aL?-mtk<Y-1TG+1T;!>b(_U7flw8Cc%bVq#=bH)RnTqeYFWHa0B? z)vefA;8AQDhdQNSDCI}!)U_ehpK=>8Llow8;y<|XU?CcC(Qb1jTBr+OD#)=~{)#t| zPieaXvn>Ax`s{oGg96p&+F1UI4LKra9Cz=hRLoc%1nKFVWP^V<if{RgI?5W%3b;*! zOw^8BoiA71<m{}1yjXG=6Z@|w!Q6?5Y)4-TkR_dy?3za%6P>2IDW*FjdMgIZshCF) z%pVR*VnZO&g#I2g`K<aLkPjRd67}cGSZx)pV*#FEtNRu)I>xtuMk*KzD3>561weTF zsz?d4sbL5__<g_ZZ#N-$@HmxXqvPe2vJ9{$4?F`v!s-!fn9nIXGdYPTQM71A&fyP# zC^At!MSkjn<II{9B0OiW>=*K`pZ+MH{Y_@qJ2(zED&&Sr!nfk3#exXl^Bd?N&SQsc z-UNy#d5G@c{Ac=ZeT1sb%LJOv3?Fn@JsC-n8*ZaP>2l&GK;&!3tSA{v%K;xT0ZMXx zvVK^#0s}CW2Atbli=*2K-(ib>mSX)g8Myp%qV)}0Z=Hrl8701b=L<K37Jf@RB)4!d zS4zKNbYtA1uAMgcxjJs>6(n^kj(RNilKTdUNg%(5*m{Q2+EhhyyI)sCcDGD$Iz?GW zt|Cxci<Qz%)*Vd47!=FK+ib8|Av*^XG!`c3UsVUEnqiQ_RO$IYZM9nAP?^ECFtBED zn=UL?D-UhJy(8G}`^^3>_vnH#CiRToLOP|D@gEMvj`;C>VJ_|ZZCEpVMu^g_h~dW7 zB$a7{pVPopG|jatlSYUgL@EG}r*~=LvrTYh>|ORqFZZM5hH!-vT;^VuxD{4e3dY9V zg~T%Y#Vo+cFfbVPB;^>^+HcI&+Knd@)^q8(H!3RcBr=}Vl`=AylYcOVHC?QcFDO<L zm>55d*}EOdtFSKF9$qie-=@F+-bYHHj2_`Ro|omN9^}}T#mmpefW@A@FR5wycPdfY zP610cp`}q978vv5yFGcTgr`S9)Q8>iM_OVKYEH;@#by}zI*53B{*381y_K;Hi}Y;T z_PJs0gnAct1R8lcYBv|6Wy5vW?jg)Ji~Ccy<Amv}Dc&4j)y6WIz)PL_^n8_xPA8tt zX|$sCkJ3`(WI(rd6@ODQ`X^}RG4>r$q1E|$Om4G4>t)UB7ccS5%6WEAaCYDO|57(r zPv`K0_m?_iAd&bTYCZv-5<dctVM_OT)c>WtljHgv_qu~@5br?K8Hs)!COsDD6R5nN z8pbo*b=%Q*d4xjG9+sH=SH)So^|?(K=R<4O$m8zl=t4HcKuDFYq0RuETc_6KN}>U} zDg)G&u^VE!NZF|q(O;!C0rkTv>IXQT-499_d+!$*bT6?Eg$4l`(|XO&=Z@nCh|7%? zb=i7HVCJr46%7N;IWddx*z@yQ!uas|-H*1nGhwW6=eyH8-OJPBxLWS*m{W$Zi~t6P z!=U0%2-AxzDG1g2^ZPLh`fj@WhBF~?o&Wg@0F!gxl|Rz09bf+-5i-VvLBjsWG1p9V zPy4q$Tf0q7ro;EyFWS8oLYsFJYjvgaOlt6b+Q0`??H8j18@tj*peGZv4KAG}esu_r z0@K=loIN=-26A8q#SW0n*cV&8%tin0KR-4XLB?MF$Bn<}t#DiK@gH$N@IO>>svYFG zUVS<#1N0cPH#zn^%CbjVKh2$-l3M0^_Z|IWLs_>@^0%Q*Z2*hiS7BH`=wzdEHD#rj zH{2Bi(F=R$<%TJg=MtczVqK+|J$!xd?V1-6*ulL@0IzTOpSQQ+QM(=g^~qPyusd0D z{1e`T71{@U-?$filMjgVZ-P_!Je>H+(b0`jkU$vOq<D-==y0R~UR3s{R5fpKk(8W~ zP28h8Il6-o-f05_5=^8kpwB&q?Y@{qr$P9;S`H|?Ra;z=m_YY&nfkbG;n3>hX|;$h z)|Dc{iV~P5Rvf4TnNUH@K=D+WZ5z^99r{DURT-n(MJ{@rQ@W^1^TQ4{&ZIgg<~I^2 z+lfpjFCu`($;}#MZ2Q#iB31M}jTWRb2n$T?G`sh#s*8@v4Us`9_95<|t8K6EG8dSh zZ!go|gHtxNdM5}1>Dg0ug`HzfB2Tp3aMOnl>KyDyWv`Dbrtg5;X1MNPL8bj;f&$uo z<HI-4tOsz++b-IcgLSge(SoveP7Yq58692HdDd#3;{7t4FSmZ4nfG*PRSq%T7ponw z=g$Vs(EG4X8@*trcjr&%CJT9rmpy~H!>TxONqlcGi#QbC&eze0O0mcD1N_-I5>l_| zkNeP8(^}njLyASxFO0J1Qzf8i$%Om>gqZ7TlSeP=aLthU%6c|J|5w|N7ADW!829cA z2RMe^dl<oQN!$ng8kNO9X*d=cJC_uOkXwFMX8%sD+1H+mr4iW?jNcBdxyKSe!VyAH zUt|b>3w&;DLAM>rr{M&ALYj8gs`(_uJMRDS?Ke2e(XUfzj=@iypWJX9e1v?&v_X7M zT7K1WYRsnCG?c?3*h!5#9QgOkw<eIL!y~kg-|js%R4j)sxp1qI`J<-Y*%}G%WE!<d z5btfGEE~(oRpU$o5rcp3(JOn@hWwNH6_!!8r#<?nBC=n=VvEct+Q=Mo0^y`C#BQXo zaH*H{Un{us3~v2##5_;xGH>@6-OMjcVu06-$elHjtUJVk69!skG2v=WPhs5h`oeA| z+(m7|>1saU73TUs?u=8v$>jKc4t^567Df;h@aWHFf9z0}fO0uDMyBU(j>LhtjrPEM zCymwdQU?{>`6)t=?&@u5AE0q!&Mf&Vm8S}PU{syyMwOH&tY-xHoPlS6(-}T-8;9P< z<M1K0`j~O^tI=`Rh)SZF=w9BjJKqmlXeM)hq7N+6ROL_ngky7*!~ieG=7eHQPK`OS zX*_vee{u+Z+&${Z&pmpD)C7vhWUkZVZ?-28io{_M!z96?a`T8z5#$OlK1_n+D5er4 zQFMJpW{;*8Z>`6uAnsn5cCUngy?l6U9_J*1B5w!6%vRqCeb-#vCplB3d}Q|pcoFu_ zg%z&<GeFYpRw=iWs_o;CE6vEDv1P$lf4I#H{2T0!=~GYF{$Sk}jk<S5i#gY-mKxU3 zbe>GHQs@sq+{Juda9aG~kd|umUFdecPnM)yDm9Jk{Cx>ke5WHDtmB)dBy3M$HR1)6 z6;U-4@9n36I-b~Jpy4()xV15T`t~g=4*i76qj$FR<;3%*t?FF7uRfqXRLe8^`-br$ zi<XIQvotpMn*tG6PI<iBfO(td;%~6s$Fc7gP`=VEKgS=_fl@^~n|DO-bzUD>@lPlx z?{)9@L<9qGL)JI7-GRt0H?q=SBwIst2)7!%x?Y&-ymZD-ypmCYzV$LM0QlTDHL{hs zCerc2AU%<1hL9cV6zKM|kOmj<?&S(<ZL56BuKiFi;^tSb>U=9z^e?6Qn}XyV#<%Fh zBUbR8We;?<P;{LknauAOsJlH}GW~Vq;p_O=EjNw3mC(-_8(Lo!1d5`(om~)$j88;D zc+4LmqIVFNc{olIjt_a9nkeLa@twkyhR#RG&(mEWVY4aDaXZm(XXaop!*Vz^GkJ<q zV~||>v3D-8toEhxci6e|^S$&jW^(KKrOc^D3*=)w|Gd;RbRS-qjzI6NI}h^r5}b!g zz4-eN$7kuXND0Drv_kx-sdF(=jJNYqH3-7ms_iVVXN@+`{#R4KFM7_47}O78rinmg zppQ;BoCDr<K0V#@iet9mME2M#tLs|zljtcr_+;9ztq@%(JGxN<C7tML>la8>I(v7H zg*yM|;lrQV+YY%-0$g@H51E>n9fh5$mQU=w+t=V4M+4O8sdEJ|#Zc{XBJRbTwh^`N z;_`F2^_&1N`~;~rMnl!4O~^*$>D@q9O$)xcLp#4@kRffb(c0v*TT93Uz4*-zl>4aM zOk$%>J+QZ{C*9A7sY|y|1fds3r{DJe$g3nUr(>%`<oZq|BjxlmB^8ujPW=ppy4Ek9 zJFobGPSv-OiHD_XI;(q1uF<TNmS?#?|5`J&Y-h%Ok;*&$vX`9)uQp%P3V;4%`u~4< zi3t_h{RRGUKE;3c|0n)wZR=pH_kU*}{3r60qMDdhnVX!ZlT;a-q8X#3RG3qgmscH| zq?1091eruFCN)JXLNk<f93D+AMng3{IUOFQTB9t}I@37AEOP|<AHHUJbZWO{cK~2? z3J5^)|7MT><6Hjg@n7QMs{6xrQ#676v-1Z!%JJkDDFTUv3*maq6=!sPeA_BPhC8!U zO)L~tLOwtQ7#5(Z=y2b=>*4I`TqvL*%c$q`>V%vD`mUk#@0#^$q^Trrm#HM8tGOVP zQ&nk~Ks)xxrpf4{zW9BLTsxsNZ?sIVVN&VTYLoI-(2vh|-Jp;#gI*nB=w?Rw<2M{3 zG7_xX`DZ@qc%!9Trjk@{wXkR+r4y{lRjYV214hsE{FzM2E>T787AyC-((_x<c+<Hf zu5{C3a@hf+a#id{0@ye5l9^8Qvw4euyMwh?-{bztr+()3vVpR-b+!G?T_w5m`ZLG( z=!sKr3<g6eMe?abqEe>g7+=OCu^c=@y5}>?w)C>0ZNj3AWslHy;bbF<wR1BjK?PdB z0+PPcS>s>e;21R(%<hI!>GjEE6F~nBlY4hbNs|Hz>NDFb`bhT~i@1gQR#C;O-LYk& z0?m_t59pj$S(&r2b(!<*&Wuf<QonH?WV!H!S-rfv(NSHlJCJAZu6)QfhL!25C*DdD zSx*w_LHxv0TPNBz**^fRT(JV@FLMSXjcHmhc6Cf!x;N9<=8sm{6P(!6Q}|6X58fH6 zJKr9SJ7v_YE}A>!Xv?SXOmaBAo^(ts7{^vVEgWm{=M~iVuC|_g^N9SCJiVlL(^mLs z_h8tiv0>Em1j3zJ9EMwNMW}ThmND_vK3e|MDqCspon4!;!5gv-5|-=Ui~ZDC);L@< zzH6)`IIP(VG}eBDnEAAJ-k(Ij$-PmuJk3m%(h_gnqiKw4qx4c_<FHn#v_|#NC2p?Q zstf#V<s$Q8oIL9qZE>m7)70C*)pz~$)kKe=`i9lVGJS)#-eQkXx$zx0&1MY<wiMQV z0Cq{WCKbbKo>BCRv#Nc@{wvWfVpJb%CO1e9cu28nheX*@zSn1Y@X!QNY=^j9dg`P_ zueiYKZ*Z2fOO#1nFDSY`&9MPt-$NmdK9QK$mYcMw;2IFKpy(P^flAhq5Ki`DAkoyv zO9_7O=waJ!Jy!$@fNXA^tAi`OF5RT=oIe|VoX4(-v;J5NRXXl3-#}GTKdL<0aLKf3 zsd?i(o55lG$u@0mfz{t-27z_8%NuTS93;tNB|+@5Y>mIT=Cmy_NBPucF^G2uCr^Ky zwW-DZbC1H`zQ9w@A3}V1A=zAZ3g3k8JGj2(1AI->*g4fBkieyLnyI~CfH+)|WpaM7 z!Sl85Y!5RHkkIMa^<&EL_-X|Bm0Z>a5v<f!PUKVJ89!?Bk*ig1#0xJ1Eg-44h{i8H zB|(_wbV;q!YjT#*Ffu&f8{rBx{u=kqZ}IcChdKo$bXEm8=4JJQ;hYVw--4>A3qL#T z%6}*TLtqZL&S&|i*IZiJiNf)Dzdt&%GutHOQ*cPzaU`<Db#PLsK^dAcQiqtzl|g@Z zyWIsyKFaW+Cn`8FO3I3jH!9qFC3$&4@qvSA?GOC&J4G)UBVl`e^9CL>XRky0>f=e? zI$g(Vp?FH#I=OUqfD5A4Ft(EyEN|*lAX(?!>|;=4`e-<~;5NhP$x+MhbI&FiFA1bg z-{terEIdk7xIZUM46IdFCVeZBc5zNAg2I8iEbJ18Bmt~AgP5{b$)wDW&BjG@XU^Bh zsWb*@L@==3FCUtw0$h_|-H+=Lo0&4Z%U#y3MC)kxPJIvcA%9GnLLRw6MxfmijR%<f zYM@#8sepMVpvP|k>263^`&~2VmU<Zbym!oDVUJ6&-t+)@9r&sHJNe}T0!}r|yytZ9 zAYXd&5eL8g>v=jN8sIiJ0f=$EnZyDe@E@~=@Iawn(-HJwD~205&1*zvH+h>^`bV8% z;;TjGHeGPfTWVFvQo_tM46x>4<It?h8dt4X&zcx1Vdt>br#r(WKv&4Z0Al~aK71?` z$4z}Nt{W`+XyMRaTjq;>)o%h`98T=cT-2=3Q?%mcGK>X&toTYz<eP(bun+KWI>`*R zXqXtKW<U1>v^g>3^vEj;tUXvR|LnGnY83AAgb#;NBNCaK20=u0ehAm(sxp5H9*YTL z^;}8_`1FjzY^}vTo5ccux)=H$cX(=T=Ul)jgKSU1HqfLK*pgRwkKBc&QE{5ZI2yGd z{^bW(KkZ##%=T4zNr!E|R1uf}?LlJ#eujfoDK;LqgeDpEApod|4yRl{sh34lt04Gx zYT_9J5X#w)4P1r!tV~bYj!LB8|NgWglcqq=GZZp)AN#cs_-}n^K!Ta`Kf@-JiP>Os zTKe?j3K56drY(y1^R4=v3v;CL%JZ>TEAH{5`oSq-$(zc|<!uemA1(C!5WLk_+31Ja zd1{fa$~0Eb^1hq(bXJURew=hrj~F{YDd?_tUOg_JlFeEVTfr5!$y&Avs#!pGmv8C% zqh>yXg9i6>_7TtX^>Fd>d_TUvP9DCpo0FxB4r~wUSUOxA;7{qnnI!J?yF2n?u2D>y zT=@oDVFP(2b+zxB+%Iny1@3wVBFEtN@X5rg^ERk;x}1E|l-oG-@_CG%P{+-eKi?=- zG`rS{zLevo?9|-GX3mX&Q~K;nxEheVeU@&YHCS}<J9#f%CV8bvZ;d<I$dapXfh_?X zXjYXwJ@{15(d?%h{Oz&<TU54*&Kf&Kt9^eLK;=i$QKj1MHSly(&QO2J&9K^;@?;u3 zFb!#DX(TU)<;)Rio1H`9W7}1+#@H608%bIGGum=|+sDq1jAvQ`POLQ^_x5yqge*?< zMRAH+!?gAcra?c@yPF^)+5b``$Oez77uBvXUB8w29T{Ktmg4Uc0=mOX!hHz_l&KoA z^<y0L`f&X&q3cj=28fBrhKOwo$wW8zZaB9EKql{cG)7EUJ7-u%2Iy=Cmq0?ybW-W- zQ0q9#vwzjzQTOMPY&qK0J`6kG|2m0Rk@-qOO2v|N7pOJ%z>0sNmHbFcR&ZSXg0fL2 zXXe1X(n%V>`xeQ5-ORiRuXqQ0*+2U?tP9L4oMY!zzO5b<52^R}Xd5l#stisnP$&zw zlpFVfOG3C>_HXtjNF^t2g!aE(44z<ZyEK1LRXc#6TjElrYa^ZPzW@Pg)&P8%PxTho zq2W8@Q<F7aa$SHXhgGRpqE0b65!&mr@ax64ixkm>0^=?V`}-qnbr4P;=wEkLW|B{u zC7Z;PGPL_}6P=ri;7wX^CAM>(rC0M*L)SNz_*w^b@gA^MdD?EqRL8b`A+|{DEf4Wb z0~CxncTd~j!}s8-H5>hJqL=r)K@c<T*O-jTEyQ~<ODO}rcW%-@Ew{@pn5+_H(YsZ6 zKZ7)S9hETN0;Kw!U}<cN=Djm3mGRr_5&Qk<hvqvN<^D9tNqfuO=rfjk&i(@~H-F|j zX!ezK+;meeT?}H+o3p`-2wZw2972Cvz(52vptB)bWcVYWhJq$VkXa-`Z?VSc&hbdl zrrnT+`!0-Gk?Qmd^dmRMC90cNnne988%t_K+)UdS6-^n2geP3CH(<Gylb5b8LFimT z2DRjqZ53WK_W`#A?_odLM@@+59x~i)9;9g50sXYORgcDmD$sJ^NOxNf1-19B_cc?@ zL*y@WXYtdXO_#|JriID#)v1Kbs<Sp{Ra)aBJ|Rma)e4o?U9%t(0*24-P3G5{w1CP} z5QhGN=ZLay?}ligKwa?tRDx)vKuf^+ykz&giydazY#@ExhD;Y6_Cn?tg*+-9(^FMx zG0U;Ih}M!Z@P4MHbA5W>ffRq)_r{S#x*a0@E|EmXq|{0LE~&B)EaXk4br`Bb5L5<> zxZ=4RX|@%C*ADxk6U8MV%)qMCM1e|i4Gg6@&W2-OVr>`mcSOgv_<L~IvZW{%nBuic zCR$<GRwn%>OG1W!PiFy&|9dxSnN;VL?*YEFf#=A!#znSPAkl_VxDX1yLvA|i94YUa zjUO5OcaiuOjBSGYt%w6ombHxLzPslYOZe=8^+0BxPdG6$2vlu+gQa#cHu|`unUU`$ z*82QWD_pg&5x6U8>)H#3fz;LF0?J&#9kU<PP$Jye#jJ+P^RE;yKU4D*6g}}uX(fLx z%-BG7J8s?JNw6EH%YGjU#ymRyG{_HSLkD!5fk<S=M&a^$WQ3?{)jBU9XSh<@tTn@E zOm95ssy@KzVkyvmEhP5QHGA;2jsETd?0gAHS|6opI9P1J8L%8yEyX}?DsMj6bK_K` zNtY=Dv~W+?*&x;fvnc2+Py}_=c8pwh8J%*ckcu*Fx%(Sfyp)7)Rwwj_JF>sTO$%oL z_%NARO}Id&&74FDguQ@W`%)2%I3zOjC^y9K-*M9in@F`j+8g8B90Nnw?fJN%#8*kG zb=|HA0;n4wTl{Qs2tf3$Krr8cJQgMs{;3KFR<R4MaKc;Q!F@RG-?bMh;*2tDq#@SN zOV1!F5z8oZK)f|~<dUlr9io|4AH+4H)$K7M`4@gpvy3@AlWKaOdR+zGMYBI&_<Ao* zGwm-4JNu(lpRWPX`=h>lqpPoXzHdTtP{lWW>!p0BmmdlaiN;z-K6BI~^(oX&4ovew z#);Mw7d}~^N*D(5Vq<Qmb^c;S$<sGuQO2OKa=~aafTn{pw3~TQCQwjdadxf7!_?pL zTF22B<IsYOMsA7Q2<t=0BJcc^m)0$QlkB>D%wSGg)zr!z>HrbufQFJHPqs;<Kq@vT zf5=>$6Djo*rl!ENRgmApe0ymMmy@KTu*FE*fA%OctDWeML~H{t={aul75M)K`AFYF zJi5XEcuq<h%M}GAc^#Dhpnli=3L?um<SEjHRFWzMWS}yS%dZs>PUUPcT>O+B2Vy=t zGJ2+kNr2EVji#E7OVVT;dh=YI8WGq_9+RpsVb{gqWL!7MSn4mt+zVD?$p+nEQZYFx zPuZMJ0ZWQZUqdTT(AqV0`HAX&TE}~dWfUGceSQiFL-Hd=Q&U`RIp?ed<p#7G1#ppO z!6sLa*tkXMWvL#Q148KrpwbUij7}m4!IP#-R`^|oPw*;YONlpU&@t(EVE)+p9_74l z?}ZnrDO1QMQSbkG7~`E8Rj8ngI>wEJT+mUn$*ToB&lfp@LzL+8{Mw#BZ%i!gXb=7R zQchWc?#sFO8hGJvvCUJ$6p3u(@3NNgm9>Jl;_*fuMlEq+HLo880tNm1*91OC9*S&L z-`x7aph$+}zOuU1C|Wup*#+)%Q?)JA)3(OmwvRPuaNw(XB>2;k=Z3@=ti>+r(L4Yo zc&#Ix`|Va+$N#Y!tTbS&0(Qgq-^$y%P+3<TpY8UKgKZPcx2!s#tgY>|NO(nufz<W| zg-3Bk+EjwVyH)L=ajkQ!PZqQUslP|MC(t>308;^RfIh3b_Bxx~9WThfo4u!cg(dg( z4Qt!rl)U>J!46ZkOldSZH<qU_)e1SAbLLI7J)Xl~x$Z-t4f`tsmctVm2-Tru0Kik; z%teIdsvajT^^s`!Ubs1gn>S<b08d`t^!fTC9W)>w4mxi6HxFwctwZ+iBqPt9h*}~U z%;^lI1_7l?k~>;~2F43Ev5zATv54WJN?p6~tU{D3QHvW2tBtSbAu~$O#oPkS)z;a# zjbdUGm}WVhy)nO0VIVHqGu$$r&CkZr{2-KC>YK;*yFQZ)ZtGq_J;lq;;r$MhFSdOt zfQM4w|6FUA036!VccxXck(>lV)!gR_iGKi~G(t_6NsTfR{ffM-d9)stQ|P>DB`Q90 zyae);gm<Xx^9POR#;o6~lt$RJcqMrtFUYZtOG-AR&#!R7$$@%E7}U^C+y`0?NWb*< z^3asLE&zgTc7Oa~eB9U$RwN8-QU9mMl6KNU6PV8O0oo6geTPMfVCXz~rP*^sbN^8h z@JluL3t^fih#;u8FNbEu7_Lma;DC9F%%{Aak26T)CqQM06RzI7)<SU-!?mrk^b+Sd z+b(sK&d_58f39Q*f?bzw+5v{ErIm93-uebW7x^J<k~?-K(mEKX`q4OAh;(x|=@m}) zC0SGsi*QkBoH5+F8frV>kv2gwvVEWdI+)rZZ=COZ<L9o_fWakp2l^vw6X?Th^ei@Q z$wZn%-LKw8#tqQ#qL75~`#Md`S(=>dV}Hvr!Z9NeRCGGXFF->jr{|Ae41p6?vWj_u zWI58<?Z>wE6hj9ih#cdDDJ)PG5LJ7)E}~{MuM0K`i>p!_evoK7HmWGS29xX(?DHsj z_(ckyRJP#w45YLki5CSMqL|!zLxk+#Z`S*E#r}qWWVru4h>oV;pGFX&C0Xbv9VU#^ zBjQK6gJk1R4DaTwn5grQ!;cVl)KO1@Exb1#4c2~tW&Tr9c)Y)Sb-TZBrqy<Rn7$64 zGE?=uuh+r{i<>hJ?U{Imu7;wW|H3PG#(2Z5kN2rPZeR{@XBjK^hDKL6XxUV<g-OfX zB79uyF<G+7=QQJz)6F2fk?NJA?$msJ{h43iBv)pM;9c6_{ly9Jj?;xL&-ca%x*gFX zt<n2C>n~diHxb5`43<1Xt@^6h50+)BuXT`K_XdLVYqc*Id1;j9N(cZ1*#iL%(uRA{ zg|Zp;nnCx273X$XP`aBGoyKaG5b+(vA1W?k2AlEgf~A!lG{jZdifQGEF&w^}s@`?M zsk>WDrr^z7S&fO4bI3~op57`_mal7nP^4LuL0IWu)!<kQ8}BLh+{#}jniWkw&Y2SG zC{8w)8Hi2R#;Bdv5T{3Qlj7l*9o`#K-56vIuA}EV%Qgqp$-&WUivsbWNO!>-nP~Eh z*`k**xcf=H3O%v=^G)k#&CDV;QGcC{$7SHCE^`WY(AyTz2?%;=gFT%!<;8(dVQ*Sg zE@d#U*&lj@E-h-n<{ar5bKDvDl*p)L?(_DeddNy_ENHrG!}AhREpKKNQR;5$%RQ<u zTu`#_*CK6b`9Vl%cHsMK34S(-o-n9HN+-=0wck(GFlC^-_nlnbb1v%6-ooaikF+!r z4$qkT$*@c43aVAA4ikRN4kQ<|DP!uVRr3V8d&oQL`&aP!La2deJgpeJOFeS^pq57; zi<%6cUpfXhZcwX@sS5#~#IRmMY{K`p(|xK@+LnymEq+qZUhDx~AZA1T+D}y)W@2lJ z)k3r7`h7M_tlumk;m_<%Nqe=Znxp{~+)moIP%CoPXHYBCp!}ULDua&^8=FIcqnp=n zSq-4ahCY!C``3^%-vvR=Kzs0Q@YGPYY2>Iy0oTb<vxTb{{$9DG7pNDEF$&$9+6m~_ z*y(hZvtHcY6Sg<8pX3u&W@fM%-)-M=*{(IzRIMW!*@Hi9{zt6DNGWP5wkmK0#^Ba` zP#bRxW_aeF>fMGhkB1qti>c^u#`kQW5KrQ%x*%?H<JnhY%Hx2bLa6UuMiYWz^*Q~m z0<##O)P8-W(TIf5k;AE*IV2^UMJ(iiX`^4ZHaaJ@)fB^gJB|<or`8T&hfK6mw@kn_ zt=970*8b3aN%(;BR?qxjQE#D}PL)-?Qs!b9drkXfwsgb2^I<KSm(*rsS9ZJ$(;o2y zSg2}MXr0S;FIauLVoNAl3tNP|(35d4_feBsK&-eVpqWg56C~Dnv<@!r_AVj1#MeB{ z6sbj*4jZ3Nx)ZE<(Z<@;dIKZRQBpqq2-im>Tu+=50whU{&5?icHa1p|(xKT>SrEDl z-c(F&0*a<{|8N{O!I8MXQR#ZFleU0o%u3gftAZspAHY<1eszz7#59Qz`tXNiMi6=_ zg~u~#(u3Q#F$7f-FgXji<uQzmc?8a|Hn`Tkl6FtBbw&%RbM_%Nh<Ty#50~14H&5>- zS1FIJ=KTEn=4e>b^grVr1nyccTNk28zzb!*+X*UxGZ_j-OVUDw&d8U^kz|M!P3K5B z=8_My&*E&Rr-!Bw;Jms-FIi_FJ31aq;bYqsRq%5T%%BdkiBHvOAnoGUtClX>%Ev^Q znTODxQ^(QRg|NG0aT)psfc{ET<U<%-3al)5wCTAHtqimV#Qr^o-J6iMxel^_x!d=* zbPXx0lrskRp=&bWOUkDwsl~xum4P970qk8OY*Wv|zGrDXa!A?1qSc;3WD&^yiuJU? z=-$JV5rf&hu0uUS`Ioz$+FlaD)asuTEtz6K45NI*=CjtAWBM4WPB>Q&&Y)|k{{zG6 z2^%h9eZ2d5wy}$Ut6v8Ei3L~XFe*}WZc6N&DB>#V`Svl9T%ZoEVN6RnPLEA`Uh>=D z;e_^46D=m+A*vo+RBTW1p{jk_Pa$tIVApI)Pz<5zC3T1VZcx~5RoG2PMD}P`>Fp)` z^W*d0A6^{<@zIZ-1FFM+RXYXd?&TDyR94lxtOmB2MDw>|pH4j~(+K*w{p=7Gy$V@I zx7}UnI}TiFtnL*WNn#;7RMdeDbZdmwkRI9n-|!R{ZvyBRUhaP#LYu~dPobAsSBxW8 zo?=H>v0++WZ}fOk>^VX*hV5f>I3c2-hW&r<_dxNpbn#dV1F_@u4c7i0!GM96=T$(R zXGt8i@HJi82Ojvlt+-gFr6z4UY(Q85k(n9mBR*z$#{I}D+8RIsraY#9_a_9yl7&@5 zN(&QMlZ=$Gf5n^=k88lv>wtOjUy`3$XVTg%P%+o%e;?-^r4IZlOy}1A<-oq3g!7fU z^L%2#d7j<R)-d$Z6)MQ;<tB*0XZpbXaJ$6wS@3dMt6JqJRM7xu_xO7<@eX4;`zE_d z=g3T=2V33vt=EdH5i>ee$N8u_`tE+g?G|IOm`LaibEJy>{{TloxW6Ly(|Px#bzLrU z67Uc(xZM+SE|DLn=uV;(9<$jiZl8oAX!eV@6{|g!`Ye-~&Ay11bxofI%8CG|G_*C4 z9c*=Q9w<zPcdz)LFM5}rd0HscqBDa;svb^7@Q-ni?@P|xaPA4nOvzmXjiJ-$);QCU zOG=g1S@q7>dPgSwbd%RL{<q!cPe%#;EO%A@)SKrPC%@%cl2&JjAC;RgEix?bZiBi` zagy}R^L(REgv)hWUy~fqKS;J^iMPTFKCc?q$FudO-G$8mkh~4)j>OvRQy8o<?sprE zu)j&SeT;ob?HUU#1_D<7#T@aZHkR+um9(9&<lBY3yQG8aSIvCzNI4*1Us@hdr$#k5 zo#G)e(DT5dTv|g4j`anD{E1>0AQ>c9T2%CC|F78;XD__Y$sm(kAfuXm$pN(z*q@bl z#5E#Q9~Us37}rKn*pakYf>U2xO7m59wXjdBiaZaSz^~Gjk?#Fy>@;NPd2K|@_FC(X zkf8<0P_+Dn`xFh2>GUcgBnD8hA9Bq4v^BX)99m@La^@H*JCki1CGA0@2t#Zv7L~*A zA+A$2<W~n=C6t+7aN^r&y-#98(~yL(95oE;3|u5I#EHy_WDFF0wedwmyDnp1jk{&W z+P$SY;hmgDn!rnKOTjC<_*`?3zN{GS@cf`O7#T4q#pne>_%azL{eqll_JEAW*q5pv zv*m?J6JC}-N!To3oya-F%F8zQ`nQ9b*K^CgM%Z3077E!PQ%8K0Cj0uMGOEjoar+T` zG>*z*<0h;YTCs9BNN=WO^bRDD>xhFZD&Bt5ZXU^zzCel_ZSG&9v0=~oE1WBL(Y`F2 z=Vt2o=5IP$nr?&_oU4osw`q3>d%e)TaG-7vc)85sfArYFAtK+YGyx1QxFf5E27rEf zbOd%9M4nyn$cXVLiwaT5CY+@!?MIRc=<Y?YH-1~<VEI%a#z6JdLuFb|i3l!w8$57J zK6T+EBhw1{UDAU}o>ctE{K|}rhEwquWpTtEDHd2We=raZJ{zi**rUh|)5Nw3wU@l( zc(aM(XQCB8Qmw7)d1FHm9!(TH7@@MCoM93lrA{v$u8mYM{@hq}5G*!591T?4y!^N` ztT1HCDm~+@^wYpf(2dhsCh{>HQQ=e+CnH@S<vq#-!B_mKaz_#q=Pa_vp!bVBLDA5M zNpac2P9q{?Ho|yQ1OYi6zA8i&L497K8*?r(%nLZrvY&>=)Y!;8Ox#Svj;0JWgZ`x2 zn9T%7NImnGw9mKJHe@#Amn7f8DV@E&w04hgJnstP;cv;cNY-25*Cav*d85(UKx(Aa zgrS5k@KQmsOKWX|t1u@5J=u8-F|pBS3x9`0ecFtK)bbnm;lu`P>eCiIv20VHb}Jn^ zrhdr{*b205C#nW*;1jP(#dS_yos28#G8q?oCW!h&;G|<6bnyGVRdm$pMoG2kR<R{y z$oN7re&X-c%Bof-BfB*SbFD~_`}75Z)``0E%(0yjN?#-S*O!Dq^p(lv*R*NE{bTz- zf&z97E{YUK8~3e}l^GMFzp>0L1YsD%xMEE_yE9=HPp8FozFsPvMEg$;ffjg_g@*r% zcj~3&k~OE#1%0OEpEak?1%E#ctmlwb=b<S%3;KIGEAhLF<4dw7`<%+5E7=6t2sm4- zbkStKHJS)}nYa(A+P_N(ENIo~?EK(7{+QCKnpce_18xxQm0Temg=Z28(-SXw;+NzB zU-+?WE(Dr$2Rlo`$||RznQjd%8DplNtzYt{4kB4_;GzW0=GN{?j#pT^jLg|oBftoW z2i6hgCy4O#`MnELEM|9Py<Cb@24EF0IX+_9jSZ+W&&W2)nRkl8yYIg3yrGf&^F3*- zr9{pGbO>+JM!l>Y7LSy7h-?djj)@vJ7i&E<;6pfG;msHKO&Ihw>H<NhU$9NAn+FkA z(qa`WjP#Q^-8#DT!PSKgb!x8x&*c)gMDo{Ua_sL3QcW)bDg3_e^n(U~;`}lpLjIhB zHGlRi`K7}EsEyiLyhpdHb;=yM9?tDI{}OaU$CG{J2m4XTf1*+U5y6pYEP5Qu3=aPe zjhMtxhR@)+i=<?8pY-Xn5;mY=?Y?8Q00((;3Dr|_k`<X2+Yfqf>n;wEZMGj4!#^*a zl6}((6hth;xr@bdL2W7Mzh~g4whB~xlXEA+#Zq_>=0bu?Wf1p?{O@^(cfdynJo!hq z-f~n2<_DC=IeXNSEx2{4p_6fwHb8-fER<13?AGyGyf?WVc@jfiC$q%d1txe}O4ddW zfv_}eZkFh2&qY1xZtD$Fb@$#`qD}EHokzF~i7fys4D~4Y%50N|if(5)fHGS$`Fod> zNuL7`M-cE)WffV&wm#Z$^{v%*kzoAc=l~ct`h^ZO*;*<*J<<vlkIDd@8%r4wCP>kU zCX$PO6E8J~XzIIG!Td$TZCNk{JIW8@;B|gb#4You<Sel+tqHXyV8QLstFZFwoSS%h zU46S9)LA5M2}9FdTg-7J%XJ^Iax;Hk018{-(!c%cBOw~h&bt}Og0zX?LGXL*L=K;T zgEHq;QeixhS@nbVh0#rZ`!OMQ23;{g6yX(<cDbf+@3l@eD$PGR;;Xdi2q_PO9CT)1 zGBMJbDU2FX8zLZ~(lK(a^NzaZ0nydMDQtrMfiakFP5dAREyJj~35C^tYW#P-TcTp5 z$vd1HVv@v^#op^t7e;D1=TATf0nT!6ncr?Xb1$7QpwN|n1z<Bmef3a)9<+*jR~i3; zBFd()W+Wh~5x%YP<I3DGj2{(>*LMY~S%rVMPJ;$;Hp(vLK?!C|W`v_bYfg6hdnOe| zLuF43<72U>O)t{4&9~6mF1P1i&wK8Q)i%aQWf<NX#FsKu^R#{D%>_$2xprQleLdCT zs6p=2d(dM~yIqJ9RPn?mU3@ed&z)03wm#)9@r|1B^>|UjxCbLn#Md{o@(i2UdSZ_? zL`tT{78XQ5t+`|?7!Ou4`QhNg%cO&nOw`T3P|wc3hzAs=uEBpzmYcx9=ox9UPWWPV z=`1YL#6;Q`rZTIMt%NQ%n9C@$VTtt!oxiod4QG-GM|5B9yl0{BwJbtRrHsJ_6u8@q zVcPs77Nx#HRXr3$zgS~AaOk4gfxYkI5Q=|#857rX+9`=eL1zt{Cg5QsP^Y{MRXNX# z8GDfd$)uJ{Jf}HjQDmJ6G45#8P-A30&Ur~m0G*q^M?DzMyx~NjJP2I`$wn!<pphlh znpqP#*B4x>03JEV?2vH!rnn9Swym`zKFSNH&HdJB`PXnptn0uX?Mt?m@*LRdIN!iw znIpHr)er(jR+G%ApN+4^Bf~)me_(TN5s!g3mZ%{{O^`D}fw9zkgq2o%b3w{pz?Tcg zn#;>UghaNc+_ouHdT^0~!KSY6Ss{Tj6|9DWJ=G}MNxsbJBB|tBRF|Yt5+c#`Z8pOj zxF@|U^QCz~QLH#%B2Ic_WnV+PDxo6Z7uzB~(C;mn8Cdl&%~bE|8h_<)(I)0$XlMkW zHSr>KMLJOJi)i1BnNfhG`xIeO4D5(R5P3|KMOINr1}b{ylp)^w605`FRO+05VF32a zC;R8ZGUG3I7zIi?mw0rsc<v80W_QAboBh@}64T>o`!r_hfkqq?gx#j=n|@I)O$Yup z!1sgg_hnnjZf5&RO8&y5cp-xfLPJx$5gRR$JL{7oY<}Nlk<$IX#e#NUt)^^Q)lgJb zh{Yqfmp$UGrphwIqhRfpT+61Fc}#z{jh6I)Q>>A^yr9mz<Rf$%(%MmRSv*$rJc$)^ zcyw%UUoMlSg!gfU$kud<1_eTgIa-zcp#2lj<gbc%<xQ3hv85p@e9T$B@h!rWJ_<7B z_0aV*<gCcloMC$hCKaCL0?buQC>RA7nptCz)SbF)YX=-;?E;IK0Kb?m%s9mI<=2tQ zIr%m((#om%hdc;L>_>CwFn}dRfk@Z3*V=W9dI%d(m^^aty-u<_%)slC{pHrPp1e<3 z{mgU<*knwvi`r`>$exq`OfBNf3(P{%ddjOS(gE+baD_+s0W)%i$*N(~R5j(>0(Pmn zw!s=DJPYnPGbxH<_jJ3fva!&O*PFbd)=~;qw5yX1nzdeqR}#)f?FH#`nhgrj<rjwz zooWGB`OHL-`#xJ_FzsdX%dgg9o}?fCZADt`w=r9+4|JqC+vaim(L|ygQbKEv*=ek~ z4Q__nBhtK@Lg#fmN{l}*YUa$9H^LnFE;$n;c3<rYsr*US9MLn5YrSu`YRBNSAi#Ni zW(*QJ8W~AcDU{R^200ULaBQ{n(xz%BCgrPde-lOk*i1V?kUt-&cLr1Lh&j#9SAJ>P zWTw0+z3cts^~*0_f8UGO;_Y{yti}{iD`0$Zp?7r9?&u`nwY0z8=!jY`p{V?ip{ev4 zV1RV*?%__Y(UmyP5EXZJ`UeTW*Fn|um7@7=za{(&jf?z9TecL2M2m}#BVypLBT%x8 zwjC$jAS3cp>YF#wzH^iFg;E7h7U{uGh;A3?=(WxI%c-BOjdDESuSCzlqCtXRr!cX) zTe2@whB>_dxto4?K~VOdo;9p_eQ3U44qX1e34d|K59IoNa3*}merP`Mm5TY%ZVw#F zACs7uLD$O6>&pPB9c#CBfZ3J{yhdh;*awR|+$CH|ZDgB-q8cmeW?34krO+&B<Qo(f zm(FyEO$(0EP;}rdQy-Bacq;HXAVV-0eN>9zr)ZHF&kp>wYs+&tEzJb+^p8vrY_hm3 zdbF)jf`)<b@!dH(-(#HbX`O9Tsv0K-R`8(I%6<ev)C>@hY%)JDGs(zqvXim&V<TnJ zr=3t_h(j9MP>Tk^qc*E%J|y#A%<(YOmL2EkcuDp0Zli_(uai#dzu*U{y<f(=Fp*pb zwu|B{DU!b?C*(Qeb%KGfFHT4X$D$PYz!cyYri+(NLXo|O2Jk~(8<vSIIV12&zZRsi zG0c(mg~bxC*9O}WcP#|8$$;pDY1~E3mEq7?Doi=)nz5#b$cZ@`?$K{S2bWdNNQ3fX zvED6Pj!;6CGV>naZ6sW|kFlOX<olydYa@gq%q=d>J5XvKVwUnsFmR0e7<4Ej^mTu} zTRBd>OA+C7JRX;Tn~d3<*v%hW_ntxp9~fQtdQ$UVhIRF1CtX#IUs&sPMDy>>-u&5K zJg0{?hX$3~2IOwunp6s(xrbc-R>Fuk<K!*h|7|>NLm6@X*edWL>e#)hWeUA-i|oy9 z=`g)MOX_i6OK@BtufIhkE?6Z>DEtP$-?FR19x^F?brKPYd+iYpaW#Nm+(po;Ea2;B ze{Pz2*p$2J=Dz7O^%V5_^AQf>N1?d`3CKZ2fawP?b$<{wi0*y7aO!EqX#roH{%BIb zW+H{*e-Gu3_8jUo>>g~7NpoACv<Lv%xP}CvR0IGsiZB&u6cwP9Bl|ce>h@8T;L-)H zP>ckA4OodkCnY#&#`_tl_Uv11)SrbCL^qNQ?2jc8e*k4Ti~yi|`mp`aA=Gr}Z&b@} za}1y0JW3pMOILr|*v#h2Ca<qeDvh{eK*cjfQK+IdMtd5P2_yWl3PRTfgCs9(XdC3O zqfz=LH(Ryih^gc*oz^bL2q|8%G2fI7peGkqcE+F0a*pYsZHLrLR0i!MY_uFs<$P*v z88~SI9;t?>A0_w5*1t%+yh*AmU0&quJrOPV$)B6rJUDw>QD>wve{INg5~gk_VK=`& zRq7%{o``s{tERa!G(Ie3a)kJqhMfB;W&Pa8`<N;tSM<<3)L|@;ZT1h~gJSgCO`{9G z^j+&^L(+)!O_4?vZ`UpNRAad!vSJMT6=#i<j2V~^j^F`Y5~D}aWJoRW1$nb#SJA9^ zYGi=KC!^ERv(fX>$9&Gh&r2W81*<*Q!xz)myA8`|sY}Wz7Y1!ql3c~;nLRHg*-s|# zmG#VBOvK|yPOd$*;DYhctU_DP_@r3Gp4+ezk@V2+0B|Q41~8$MBXHGR?JA^-)D$z$ zR@00*Gr9?(2Lrpf@O97fYEc};EWz|Os4B6p#bglayj2vcjl`8gW=S}0UGz+j6kgih z)&$$gie<3S)|d{{9GXljtWg}h#6f5odEnG>`A46OJ{^5FIu<k-Q9O>lxZqtjF%6$U z#Rl~^{b=R9$;Ltk528oUsytH+2;W)^&J*N}Gdb0A;=Wyxqe6U~yetflA(_YKnKVQB zg{tzFX*AM`6gVKFG}d5lQLcBJ0<9t_LK3FA2yzG#v{zXQ3&*1(i#p8OP3h@uMfUu> z8{Ln79-uMf$hyEg+XB~~c;KM(r3_*0oroVGP5{n_Zku9S!JMHs>#sR~p3RT2kjvl) zYynqrC?*(TZZ#E)l(O(~CL#&>F5~J<o<OFUq$(|VdAx(JTZy`d2Y=8yNY^!qutpN~ zLyi-S2;=EX!>CDx`Ik~B$?C^-6zyPf9{noOCxSt#LJ^Hz*lJ$b1|vX<dxjHKqgz>r zRjy1yUFLfK3&S=>4JGLnd^nms^kzl`+3EOn%p^x2X(-OBn_3DD@J%Vg5xZ-UCKbal zlvr#U%oP{sry=M=skl~*y68Q6eljPfxBKUW;TzaF_@J~Pg1to>bv^AlTHGV%g;8j9 z=$Yc7C_XM~kVTP+jeMywKiBa_oUKmR#oCS5Gc*WV`p{$M98Yo1v6o!QLGssxl5u&f z#<5iWlHSOsE)IijJj&%-;K>GNm`+i>tah<zegc!bm)6QZ$dctu`%&xQtmlw0lHPw` zs8yycdK@N&!64X$*2D<^^SL5tqi>UT@qC9el_7!&<6cBJPv;;|F7)gq9LO`gPI>>g zJWYrf7xVLoU?#L?2{4H4M4aEYae&0xNt=?;-c(Tg#qJVlVxaP`R5=`u;@}bnQ2N5Y zSI%W2m(PKBkscU6+FAz$3rj2mMlt0tCpZ%~f|D@VEwb(rBQ$Bnr&XtM(=zEumE{}n z$DNiN9tI<i0LXy`6QLDHa2;?hcx<J!uFyAve2LelMY;}fj%;Wv%8{zzavFgP`r-JX z;V6d-j>NKHqa|)lg{cyMkx#S;;Iw^1>H>#%Px4?OX#`~22G{k}J8l5+DL+?2)c2aE zRb$gdLEjU6gP0v=v@||PmT_+~Os@sJen)f=W`-p~hzZcaF5lOgiSel&F<To0FBI0* zotkS!Kk+PUIN(>yu;%^GH@@aL;KP*LVS!BmO~vI=ASS~R6cRL(pRw36qg3gb71gvp zu+gxZ^y<pfy_Bm}oi+7&|Hvg$5=S5A1w+QM#T$~p4BRg;zOQ8x$taqd4vCdBKLDzQ z2QX}A*39BE&GOk%<BY{grNdso=o`xonj}ER`Xy3tDAS6IGXx0AFxHRH#-LS6dBPxx z5i(~Q<--Zh*DPd@B~DeC^5;ZCe+uoC(2LK+x=n(p3_6THtd$^bZM+p*pD#Y5jQp39 zEm;s+VwswhrGcaJ7=3~8%9IzoO!+smXLY+#-UTWjPOMQeE)l%)tV*JXer$ytT84b` z!|P>(S`q>?a2-b-1F;oi7|Q8VoKjd-v%2u=zLZFJBAT#Qb(6u$IU*_k9GXH;X!7A> zPb+#6ke5#KfL3!dgn{o9i=KM?#<}baO*;-N<zEL?`B!gu$B|+qE?(F_3z%BE{>qS2 zrgM(u35keA*I8zmQ=txn>2RvOo^6m#PhFl(J`HQ<WesFkn(8*s#YQorW$#Q9avW2> zTsc{P`SsuA@h`vn&wB&oSJ09a52aJ@g)*J4cVq%GwzK90d_;PuxG)5_sTC~P1vMgG zI#SEcyu=-JxX+~@qT(GMVFkAngr`{XOUtW9^2gBe6<^^nKqU1b)3dXSdi2g_@E&98 z+1T=~6z+wq47UJ#ywV7$;%pWjhgH7an~>lrGqQptUdWc8=5%61@&&<~;oXV30izvT zFT(M<>0wJFsuR-lUfL6)gQk*9b9xIKd-#2ZvOIh&|BAe*zQ4wp(pE;7=q%~l%eF1q z(=B%DI=eG2?HEM(?)3QO@$t)#Rj}H$!aH<5#xH?eVhf#n7FbHGPO<q}7P{J@5Ysx* z1NrW?+rW7qxoIc=l#J^0UA}I3qiO?hRJODm5r+UgyiAOXv0rR3@_v4SV$=l*{D0&r zyY~YTWWJ(wuyFFTudX_BnFaGU28suHEhG6}{nRzw1jb18r7Ue0(-odzE}bwktJiEh z1P;Fa%efjtn;`k&fZC$aAa@fLM`M5yK150TPOsJxFP9&?$(@{<c)4Axy3p;j?)f$) zIbdGXWkO{}*+WRpG1zw#r%0Y6z_op100Z>wEmy(X%48*#25%*ktqKOXG+ulZqH7~; z9Ja)!2F3`u+jZ4s9om0rDcUbAhd!rTEXD)(iN_ogaux7de=16?Nx;d++zQkrddHKK zQ;Ic8@n3pAFF)}a`QCBQ68s*=Ddq1cY{X38PuT!$pl`t1MU!x7joG|zGtM!FsS=75 zJv@<B{9%!QcaO#oTeuUaoNpSK{QI9pxs^7QGlg!ue3>G~QglfcO;R$TSf^L8zH81( zdX1amu{VrZC=nfCgXS2$MhGgzE4Hr*!Ul93pg&^O_FNzywT3oyes9(L6JH&~wZ?5$ zB((b4ut#L^^qY3r5R%52p$q*XlK0fav*$}&whV)ik2vf%lGiqM2!f6I83w#&jgbXw z9olj4kBR}O5mAQ)HTmMfCY5xhuo;zHE3E*Ot@<V|5dxi&tVK#aZr-*Ky>7KGbgF`N zH-sHHH8fGf^(MQY;?_9lF!LBumC>~$;<?HP6=r?nxW|g}5^pm!Jq#r>CAGAza!i<d zFOg{|+vGTTxn2hx32;H14etkE&S`Pq&=xcY>mZlpdQ60<l(d$H`y!^U-r^ZpUuRiE zvO#C^VyKQ)Q6t@DZ8MGm=_nIF4BJWu32;<XEF}_g<<gE(k=p>rdeUu*khY*8klocL zlEG|tJoApRP%h%?V<eJi#!ihS9_<(+k+jqiWYHwhiMOf6rEQFwO)aIvc<HISnp;3& za20f0Oc#r?S{hgJLQ;eo=@PfWL=DSWH5$eyOfU*AWr4abZ<8h$V9l%YCM)&><kSg$ zjwK7c3DKfvZ~#p72ATwp^ddwuQl?`M{L+=qG=t!n-)oaoVdO%C3S|n5@)Ze?&Lq?X zNvB8^HjV`Er9Dld-9v?8BH)PO#jvtcvt%Je3%Dd8G<|#uE}(pC!%{}L=Dnx<O7!}< z;HUQ*DHn`9?HiVr%KNuXO*D;vG?&}6eit<Okr|&fTwk`9lPMyO!D9eCL}3BpiOR{L zGBfQ>7(h!7G-#RCaG@r^oAdyC#;)a*0m?eE%`u+ckh}JOm@|YN&hFcK{0~HkV$El< zlnZ8V5XG9;$n3=Mq0sFBdwoS=$?QV}x~+MxO7!jN5mWH{V@iV|nOw~_T&Eb3@HIgA z3DuUf8kXyTZjM-Pvzxqe6E!<$_R=4$fD@T0`yyh1`hmcFsw0%D;4^IUN;}=mf+vxh zdri<BAG7Q=uGb@+lUEG~Ah)D*I~usrw+g9s5@TlIIJVi6OjYYMEYsIdE?mo(`?#bI zFj$J8yL4L)KO`V1h5rj$vw2jcBHwdvGohJvGK87b55ff_(Bi0a$>iIOn~w!jTU_k* z<pI&}!Dsjg^Xz+O|2P9hAfd4F^6l^(xsZPcF4qU=2i07-V*=S5n6oqkghl0v*Kwo- zT3x%$Yv4qy?2685eF9NiatiTO+v%O&5UZ2>td7HtM!&Xc2W_}Vc@pVJX|GzkDw7cp z5u<ecT&LZDF#t02+86PUC@<6Cc~AHcqTr{Ni+UDn3klZ%f5pWE+6h*rean?Pd!z0~ zbdu6T)TB&HBG9gYvx)NE5@%1s7>8_>qi9aI1CA6}dvd1GL1&X~%IbbhIkiT}%^^09 z#N(!={--9oO#qtf-Jw}R%%RsA+cpfgC;_gqygr7=PC~I|WZ#Maxv<6zq0dFqH-bCp z%eo7tc#Sy{6mvGKwF{>!A#N!h`LXdJbF6J!?S~}?DvGxvV7cO?@Rd9+=WheCY&7n? z%mYe?8Qw)s_!a8QA~EiG+ViwVgBm!aa*~#^)JetV#9LdW9xY2N#tZ)Y@n~>4h}2-| z6vkNQt)nS`SUj&VTfA@vfN<4PX{-Il0NWR2^UD<hGIVhve=w|c5u}orT4Zo;7!mHF zJr+qEW(M0e1Z1rw=nIqv68tpZY^!pcRRBzG^Ql9MQKSVFb;Ewdc)!VF2YX@@<H}Td zIy=c(9wTBh<!z0>j?@I0GI<r8HiGXqHjz-t^B-zOUXk(X!;e$UVLnC=uSv4=pblc- ztm@EMr^})a-|e+&W+I06bQn{&Mvt!C#F^*QC&JW6P3veFzsanQj32tnYO^{&QtY4D ztd3yvJDb$SA~koK)P-iLo>5)#dz;kJbpK`MbS$io<+qZMRXiOIkL{V)vGgr+v?2g) z)@+I^Lvi}jq6rM-jPc-%Nt9$zFEfcENn~TY6P2V}0L3u;zQ%QaEIjG&;!IB2ZsnIw zcIk6v{w;^gS;Z4Q$JCO%?3;3FGw+c-pCNNjK2FhyjVXJOv~MzMrMhJO-Z@oM521|@ z&y%09FqtDKe>+da3i&5Zag~>OMPa|Fy)$g!GB6^7e}s~z>)Z6cc7ecwJJ6Atz2Lnr z0xXalC`gpXF)uEMU~XJ=C<(VsCl?B&povaFlVsR#4KCt9p*$wcpa_dw10!CIm4(68 z1h)%Sjt_D2_@PAx<s3O2q<ls++BsHwxc@+@aS>5m%^x3JJPwZDsw^X!2p<3m)ly(_ zk;aKeV}g1~R;r@;z-`e5f%b6|t}F_rmFNB~W!@4WuwX*t*nED0+t!&$Y5(w)NO?~f zp1CaZDBAAT?R=4uqy2#`hb?g@Z;<7qmTT4^?+TTo>%t6M3oaE<NpvZy%ErWhM~efJ zo23~4u~@FnLD5iOvH;ZHclXUT2E!E~*537IFUB5@A7K^%A75<zl(N?f?t?wGWS-F+ zMHt-tupr|Bes#2qr3SGRNS8uHdEgX^Hp(=4`8Gv+tv-6u!&!}YY)8%T9LC|saww_W z7-8nDKZm<EXJQ`AoGrJwoF;f3-^@&e%w?6{7H#Jfx#Y~SsTmqo(vWInmc)P%zuXPn zoSM8|<sv*9+9?b<IJ}))V!b&xiOp@YFN%h-g37IHq1O~3`)P-{v4v+4y6)6Oi~iU* z`4Br6QZdPQk^v!o5g`zNJ#}B7slvW4!K@eU$i+2w2y;m#=O^!M8Q?fNb78i^**CXk zLIwx$6J4Xl-Iu}eeo#=zb<znDp6_7*;jhmJfiy~aMw9pMU9(Hq`Ohl*9voOTTcMi- zem0qK3qerByF_Zgf!kbOqyIc$D%@Pr(B?K}{NS6*3N>SeL}F#}3`#M0RhBFPqa^V4 zuA)>eI3%f2l2-x^@Lf(W{c_bnWhu2Kb5XKTi~X?xv2zYqMImk$nGN2cE$qEJ$=D!O z#$yz|oNkKq`)LEKSfge0Y-B^>IhDG|GSpRq_if47Sw;cvmhR<Dlf56aL-_!W0Loj3 zImdLHUbCe@BRN@wK9FKwlH{0G=5#LUwr?eNrYYZ8q<uHA<yu#SV{=8w(SG(Mkh5_| z=(fv_pcjPRm&wrf%-p-l_bVxL`ch*=qt&z-H-o(7w#{CfHsw?`gZ1D9M(t&>M3?Hm zc?r8nbx-#K&p`-fld(o|cIMb<A%dSB8`oV-MQ9z>Z<q=!iG85_PBGFzlNH8zwk5=s zK4-kZh;VQTfwi||U@J6(Yc{F@fCG&&Ox^`jh;u#(QViPNf}46L83<72!?_n*Tg4q$ zrae2wutk<po8gIyuApoD&I_|5h^J3N^1?N-986CRcn@_&L+0&f_8HH=mFn;1%lYS@ zFJ8Us+1COer=PkxOK!#zlhT&5vv%d)oh9$a=)bSaxiPzfS7%ADH-1|JqF=d^P8hWx zvlLQke6k_FdoM}lowEA9_c^II=3<ifiu4={r`&#xkg`cPta47SGPU6yh^9A6>1*;? z8qM(7i_y`hl<F`d<3}5(Lz`VFu8LY?1qz-_6yi1W7-P{*lAG1CB#JxI`ZnK)gNX$& zH_9%AF^O;o_8z9IuOl8>lr%)6xnsk;S|Xa3Y9V_>JVUva+q&duh)9+N1IZRgEMv@n zC+5FEipg0(RpQF)+`khjgh%Rz%?lFMz9@hR21;G_;h_>I9}m2rI^r}*<oY)wh3YJs zgGX0LNu)C+n`76Hx%K^k$yo0Xn3XXn>E#xCQ7dM2Va8ci<#%k$C!J7^*&9mvWVu_% z@)^?UEcP%43OmPgzG-52;D}*<9@u^6J~)!hh|}D2AiKH@BdtWNDB2kT-72(cfIYx1 zR(iJ`l=UF!@f1|VB3uC|X&Z8cB-)aD-C9R#r7iMe2RG6z<clfuy?~$NAH*UTxJmf+ zkF>t_l?vfO=s6tBX57#KZrYB|BZpaM&}E|2Ae(|_|A-X?b{Pz1ViS1(h%6EDh(na# z4IM!n;ghs#h8`^>>q3+CAlou6@C!_4Ggh8U97V(B0W+!+g5wRDLR?|5u}g#xxzn*9 zC1Q+(0Y6Ug<8*v{8JQ1_UdGy<8;rhV<kZrEqsKmCq;3gaZSa(5O7{i-^vW3_ti0>@ zPR5hKNKVAMw#4&Ri3qHy-4WH*F!Q?^xkgWe-_P*3hNnz(Byb$5^-q*-RMWlYa%4Ej z&1O9N4-;&rb&VttuJCN33|IohFXcfLismI7=izPP2YLgvaq`hg463%qb5r9r9(7If zyj4EiMtgW=+|I)u_OHr_TGVUfH$C#Yn&{uB!Fw{?Q=(2@6rl7!XH_{0Q;)!N&N?zq zzCpViyk%kyF(qcrake~QJB~1TCj3A4;su}D9Z7rh*lx?uGn5=u*8hkCY%;@+k5=na zQi)O6FR?cHH@TvVfpuz^UK%lpW{mj@YM?M^>aN;WC~GqY)Uz2}0J0|EWMlKi#+0jD z`OVsNV}$2}B6q}kt48r-nXQ}Dwi+53Gy0keQS@yMv43(r`HWegC{5T?;WVs}c@^w< z`^)qmlRt*clCfs19)ZGS_RC>EJ)^XJ^CI@{_&2q2V%o6W1AUpk{?G5;{Ll0sFMs$4 zTExI1YhwM3D8jWlwnDFRGW=8GSopaRr$c&UUtmrrde^eq>~ng00@48LVm+^bdC%*P z1W{EP^c6gGX<EXdaB`#@8}!vmlEaD_;mKLo07i*wZO>SLOYf%#^*-|Z@<!q{7kJ>X zti}qxBYwLc4g+tsWf_T;;6yxZCy6tIyn<Vv$`FXd2u&{CI77?T-!eLKr;ZHn)UkR8 zjn4jL0OP?BE@tNA9s1L%#W+_rW7G4L=pMls;82rOmYRuS2ezVk7;YLE{acohsg7T$ zeuMI~X>nJ2TNy=%vXy;jFt3wf3e2<XP5C#4miyMWUGs&msRm}uQZ1dqOY*@(RLeob zJE!X2Fgs1~`c%~4smWhEmv_%}gHgPYQM@>46uRaS&mKn6KT-%74CG1B1PM+xOtYUX zG|4l_2dCDx@%`1q%)p3|bmJ)L#8}OQr+`U}N0D;uh@=W~{~@$gqbNjlRXf3?Y9RNa zdm|k!`une-OEhW5cmCK~E2bBq^#cFAljxkmD8HlSaZo<y*ecofff{JQKEIz*pp^d6 zWT0w?uUakbrLZ070gWOTVR7UpyYIvhc!$BTn!%n8?hO(f^G~O+HBLhpI(yR5rXa{} z4P*Y!DrUB}u}_Dp_>&OBxD>9Qsf=O?`w$3)Y%rjdZPc(fKn@E6gz~z0VM-p<Sh;N@ zCnB*M5YR6*RM++cO^55i4GcP9Q*PU!foBiRrQGhDif;Wu7<)~%LEH@%Y<w?NRLc>d z04w<<hRqLg^uGr)!zw=3-)FVenMHURi5y?!>ToX85s_8J(h#G98*V(EqHErC8f9>J z*CVIj$pJ)nH{A{N`84VvSeilI>(lL#4R;Um?i_HpY7f)OvAyH+LyR7)$pA|q3zu1Q z5aHbR@j5PVC)y<E>AHXAvEqZaaJ+Mt?Y7okZK?SKLbs>y!3|N~Rj};dqgcC#2;BaC z-lEoffbjtJdw>c^Pe+liteTchHIb3?s(UKzZa&>n7ai@`QXkvIi{zM(Y-YcY&tOrm zcIeHM?H22NnWcpoc?Yg=zOAZhFC;19P%vHgPXoYk{8C|52{!=`Us(Fyi83Bd8zr&b z99}Vl=C_gU*t!KxqC4QJPf>sQbp+IF@U%1X8+N8gI2iel%IzbrmwSfr+lLW630E=z zA-Vi5JJ*QBNnU+_(Cq{60V>Q_2{*V=bOZSiR6}Oc$-E(l%4iQ63a}MG&SXiuO3{Gg z)gODC<39FZ=ll)EHN0D$kKAE(RB-LP$VX=W(>}y&Uj}(d`)`B(B>aUmp;vzYS-53w z1*iGtS8Kv;sR%PKcH@{J^bXfOlw=IZgR4b5_Dqh3^=)p>6ef$sJ!~lt-FeORpZctp zNsvNeC`(RW#`9=77y7(K9^5dV*u61b+%MK%9O1xX=M}zBn(M0EU1=}+(5jO&uAmDP zif-$X4INJnHC~1-G{RYDC;+40>m<cMH*C0N&2YvlWkD%P30&})lHBb$s81bBR$x^c zdYZkLpZ9d0c+|wd>`8cz-se^&|I&W@+^XhZ+Haq?V<tG$gP0eHSdlmz=MaUBeK9_h z%r|Hx#(bZbSAj2%OicZd&;5QbcDX@Lc4#XWvEEpDVPMZGCcuoid2__((<8C-6^#t; znPfKW=k=6qNTA!ABJCTy;90l^t`As&S3L`VHs=&$P=T=gG7mr354n8rm0bXiteDqq zZL=;*GPWU8Wo^5RmSVudT1)j*qN^0-OG1;N=71~uhytETTw;>}DD>m*{Ub}4S%tpb z$EXX#kKUJM2}Q)R9BVXXL!tkV?GsvuIMi@yI+wykIUx}QSNC5q;z;x~REpl@TUx7Y z8fc^u?D@bpRx~lMEKlu2j)q{Tx2=#E(>q?_)8pe{pLFEJ@$BB`@1I-F4^-)GgMJ{V zNuigy_oUUY`ID3ml15Z;F@18t*!-G|zNu`yb-B>asGQdFobBt`o|6JS#)GJ{ks%%f zt1in$<@MsHuBE1eAbC<kTS|zL8CmMu=ozT%ugO*vV7+Uu@4bEEZF-sC#j#QYiZbxB z?RE7`o4E5}$O>P)lbsD@$=>xNHsZH{$k@v#B@f(uf!7&Bnm4gPfM#@IU<Aq>-%d#% z3|RY!skIu~So6v$RA%EFY&%<RJoV&^M0F6_@(@VJY~7v}5?hVT)+u%wN>O(6BNOy5 z1imIzE*`o8fB4-uvfFYvKAAu1NzX`2hhW&_SQp1-&eN)K`80szbIh;nNI7u;CIMQO z-C$cY>#$+gSsX~n1gpw3v7t}vx&-3hILF%-S`yD<ZH<k>-cP|}%lWa3O<^-CuY6tZ zD!RS*Pl3@YjALaVlMkN^Ovay&K1xpZ2z7YrNPxgy^tsu=o&~z&6rz*kW4{>z)VZTE zYDI!BEz#pj;ef_CoPHiv-@AvC<BwaexN6-yJ*$uttbmj23pku9yz<0%epkB52mE}w zC`SzL_V^`$TjP0$zN({G{PZV#r+{3yo`&_qTBC>LHrORm(jHG+j@~5H1X=viYqA^6 zuJXc$8t9_>A;k|pgE-7JnIShp>U6UErK^N*z1&TBB;u(YmHdOL2Y)~H-aUxouwQ=h zTI}^A&XsZSwoaPZ2%@g>6t@hnCRgRImS{kRHZ|3ldz+2K=`R5k;LNJ)d*LOM+X_9X znf-2gIxMSlOET3kMU3E;eIITIlkV$}L8eUn!~P&NlEAfpUL=ZxRUy$sgE|P66drMh zArdTrr^}q<KmDAtKR(_J@u#@wtM_olO)LAFe%ZCWi)Sk{sg>^n?pSvSFZT$Ebbddq z6lsP=(vR`fcQ((^AArkL-4aJuwinAk0<&3J4;QyTH*P<QK0X$YqiAew<+<lLftG)) zF+B%Yo|1X|GFu+*JH{2obxh1$Yv5JH1eP^ac0(AePiyw<%$>U<xY6C!I-taiw1d&B z$sRpJQ(Dg>J?l|aaQL_~kqmwy{U~$7!O&eiGmPYoTZ@DptJYRPi3rcr-kQ=IjPOcs zzGbq>i+qEOQRA{|K{Fgv#q_d_Z3Fc8FgX%ZH$Kvx(2x=N3l_!Ms2%Ugg-5|@nXJhK z?l7Ny1|ao3i|O&?_*4A&7(brj#|a5)1j7F#b0D8r3XD$Ke2bE8kCP=#e$lMM7(EIL zkh!BcCf!VY7a9yMCdX$d@Lwd3gJ!5NdJ~E<KcR^7lV|k#F@1j8Q_@HJ5;1XgXcrp0 zc4cp+cVvKB`vhKW@!a&MGP&z)y`^Tv5T?&v?Tv&Uwv{&zYs{5MTNkFZs-4P0yrKBL zd77+88xF-xeT?`vSnB{j{wTPsmcGK-Tl9kF#%i$6bJ1RDcwjx7H7c?;GHR>79y{%_ z(OHkJHXC(5W1|b*>n%-%A_FSQ;)u*o#q0yM9(bmVg<KkyJNE)FC-#14HPW_QGw5Tw zP<v)ja<S&g=%q8pMuBn$9XTk6H^o<HIw>K$j-+Aopw)E@8@5DQOJ7HjV~>qZdbiGs z^CK}&(pAy=As0bDwsLVaxx6^O!~t@vH2UKw!5CjICCVNS2xv8cbX(Rrl3A~0PITz5 zZ@c+05e?z-ptH?#ySK?zqHU?#TDP}sBv1W$FUeZU*jydQE5f1EXZ^fsBCxuQS~k9o zO%oew&yr3~TGKWkigpNZG3RnP;R02&kr8X5vib88XNod~2_JPxQnf;?A=)iQGD{QK z`Ud8H7@5A<h8+(=EPlCsM`j%2{?3@f3mVvKu$V^WdpCAqYze@eWzhPMC|I*Yk^_EZ z<8xxjk+cFX;fTwy2N+&cgLe4vH$n;X=kF&qv?H-aa2u*++7<!7-jETHQ*RtV+1`q_ zB``9pCb*5@UoQH7G@NeJzxGn9*5f^^_-UK{fv*YZbcx{AWb2%AOAcFRuevorWh&~e z*U(Sx176+6VhisZ00z<Ngw!5Q9zkm#jlG>TxJ`TuGM8e5sL38Q>Lkm>??REkTE$j{ zR?9NLjU*S8pfM(xYtWJ;7-M3Li!)BXMdRpOJX+;t+NS@em!LH(2Ir>Qq&#{G(%TWy zRfQD?P-3aXWSp%z3_$5#!}R3AEz3H21oz+~KYM$I*m!v$wQO&k7A=I;iIPHfw#Bo5 z;@`#?;C&e28~%mFbOZl&5mD2X*}BHB-tMV3;&8w`gFKO?zRg^|>WcE+tei;XQLAs3 zzCFb-I-oxrvOnNWAk*;X2LmM3rBU+1Kt>@!YwpY<%oqo#_aGCJ#|CLeZwy{0L8qTH zZN<H7$FFHCO(3#~!_h@I#=`?TYHu>C+0B38UyKJaluuobISthyK*CTg2b+!enjfc= zE&4E;Z^ZngL*inr07FTOm$ry3ys4qL99b5l7qHkZM_B^rq@eiy-`g>uYi$KjO!Nf! zy{*coT%dTzzmBu5!LU7zJ16cmDO1&z^dy-W3jb9*uy4A?Aocf&Yc5P@U}S|xyvRYP zBEabnX5&~FxX)Gd)JW5g$jj^OCm4vw`!L7My%CabI9!D!XTY!!MtlEYOng~)9#kY0 zp`DyBI(RT9p{*x!4yV`?OSGcS7CYRCQ;sa66VBrdVEX4u-WiI9xe}X}*`^E)qUbuE zfu>w~`Jw4a>FT{~UXnERwv2@gl-%+zS~3*QD|;Aq<V-YOdJ<Mz-Y^u=*aW-dJM=DZ zX!Q}-Q8|unaIVgk@s!_V7J&8`C?~^zG1v|U*TDbLvH>;x7-IX_mr!9x9BL{r_AOW> zHxqAF7x*cNYwNz-A*qKaY8)5-Ak~X!M!5H71Ri#cY$^>5+V66yoo!%c0XOhCnkD$7 z<SoVV0x7C3ewXSoai$a!S!P-<@_b4$vOEU86_#thSgx+}^`<Ddek>!47w2JPV;bgr zEsfhtk6fgE$wMxj{MtRry<clAu)&YQMqu6cbYw0Y!>ql1N#o!GK=X-n4O<Um#v02D zYeS<F$nd2qrT-*ei2w=XV-nlA<W0B*@|2@O!@Q@aijq?^R!RCU&DXSMyJC%Ir)V^2 z19~yTu*J|QeKt&@0Oc4v0--sZ4fZ62VU3I3hxjv)4A*euTgpm0ec<n~D|N%>rmB~p zFKgR-Y2VA*6C0dcaGDiHoR`gvk?475f!S;;PS#u{MQW#Oko-mJ9KhS#k;Ur%9gq{r zUlf|)1qmYXx^m@`KX7uwg*ITK;Dz;WK1wh$NRgvvKQP5>sm7XURwQ@kq>IIFvs=TQ zfH!bQ0ZTs{Iru3+VWuLqx#0zA8Hj>WW$DQTUK_)>qp@~cS{FB>E);bo`kpn}vrEDd z8-0`Col;hYiEoZXSQP=X7wXAtT5J+Ia$UqG(VM6wc&5YItcD5r!iS}e-iPP>y*0qY z$dWlHQ(l!AbJPnc|8kUkK1yDVk}pQIXO50u;4=yi1}|O?<U5r3+<b?kuLe{+u0mdx z2(T+O7s@HgJv&+LKdDa$rYES#ItdSDFW@5FvhPtD{Lx3r{Xq-BqmD$t=L{QuI*g%g zf+23gTiA0p%6dDPpn-6G!wF*0I-A;Z;Wz6YWz1nPn31(}XAukxUx2wZKfXk?<JiOs zHC;*%vsWj_5$&u81g~so8URDA(h(U5x8uJ0Hpc`97&M6s<^wNv#9jkt*2!U>D5eK1 zGrG9U!gh4&MWy4wvSMIv4AD3)9tK4Oa+VGTPS<WOTK}DAw|(=Y9R{3ocO6l{H4Ig3 zL=QIOw>YK@p+6w7Mt^=reVom7CoUoranIV8faAmWY8wZSM}gt$F>GhWeLtm`Cbev3 z*iDq2Cry_3MY_osc6_NFT~D$_@Lg+@rG*V3>=Kllne4V0eW)gR0A(UE;hDpXoRrGr zf)jyH@Z%&1%})b4_aTg_Jz9nA1FvY%^dRir9NE3o-upEPAE!NoZKfR6u5ETH;x#Ek zF-jWf3(8L<GY(Y2bn&tj>4Fb3n`?Oom8&&n?X7JzMA-=>YT*czDMfn*M1cz_g%o|# znvT9D!0;pQ&yMs(BEBH#S&XF}xSmBPFG-p)hHFa9XS#-+S%|z2v(#_z85FgehipQ= zT=zG-#r1##r$#c)(U*wQp0`hs;T#=@oGzM+jFMolT2kUGlkGd!L33p!V)SL7KAcv* z%Wa#hUr?FLLp{EYW4Eb(fN!qU?EUg<|Ce6}HdX+)G9~IVo!Wo_o+GRD;V7N4s<yQ4 z$12_WSBp|`kqqpiIAZQRUEJKJ)spZYUf_4Wic>r4GzZ#9LK~N))yit*mSWF!BWqMV zN|hZUFVI-Cn^!1Jlbb0HW~S_GP)UV3;NUS!zEh_F^!pUn(u?>0rc9n<ti9%`p8m)- zN5Mbe(`LsvU`HdFei4ae5Vs~DMZVdBeUEs>t<>W|=H9>ER$-u+5gQ@`oZv=_mD>vs z7EqoXhY&Fn3VE3JfF{Rb5M-_iZIVu0(0H3lb}zBN)mT{*6-HEsF>bup+Ga_Y9e~Hq zzDJ}Y<__4yo0{^)NsROBylITMB~yB__g<#f9@)|!Y4Fls-Xtky$wYkx>78)vpua5N z`^`W)?9==;>rGBhpSAG~yX)(9h~%dU?77sj3m?yVEl^UMa@#rYQS2wxu{<!5HYqoo zo(0J@8kS8IOU{0+B%hpcfjl0WJs0f)wq^}qlb5twei3+0Mx`yH5CH1=$De!}0E*&f zX)s_v4*}{qf`?4qKEaPq13<OfR6(I|TcVJgcrUU9!3-KI+dYfbZ7vGI9V6Q?!apMu zP8%!lPvhJyCJT|yps+BHNxExFOjJPGP2YziOj;D-H`6jJuR@!<vH8`H7kUqtG)gPq zw{4F%4Q1xMh8T6BHUaX(1J)eN!pP4viAqcDkyi%pjCUE_Db~m+kYm1Qwu&mOaq`2C zl1~iTo`5_ODW<Je|B!o;hg*G8=8!0JhjJh)Ut>z+WR+ILPgpBjM1xQ|_&cAp))wOA zaC~|YvuJr@w$B=|^p-X&`dd%!=*Topg^%YC9^xPO9%DZ%@Kd5cT6m78U>yIt?P<As zT%FC01g;+V*JU{C+r3~`Pi{U8w8<>uxw6Rk-Rx^^Oc3s))1D%lF<LCK)MPGHV~@@u z9ht1xLR4L^D}8t#G4ycan2j=Z;*l$};?O%&O)75q)oOQNIMWvRsQG~F*e_O6eew|* zJfySO4uqO!+&3(U@pjxZDy&7$C>Ah}86C#8;=T}%q`QbMCSGb|)6(*DX)nOdu03aP z#$8I;Bq_R&jx?4?*F13tK1=uFdn=FvsSa%mwOfGj^6ih=R{*kkz>=)mWVqe4q6`?O z{EN`;WWlC+G6-AH-Jz>pF=g40y+zZ%#`M9y9>ZMAWj3?Uv01I%qL=}L;wI5O6{k?{ z*xXkQD{X3}*XKwt*09KOa0}zSf(I-)&r|prx?l5YpHU8Dt{w1VFlsZtCF^77i^XCI ze-UoJHM_p9?q#<leJLfhBc&<jvm?zZrL*fTdzj5m1Sf6SEi;B4{u_lJi!OonF^Ws^ zI8~GB1h4|G6H_n)BbcaK>2PE7fOha~_W_ir+>e7(X`h`6+I=j;kI*~j?=?F1ER<fK zHY~4UL_uof>D<6h#H|!f>7(-17}KkGM>4nWj!0xbM!wIbGG&Ct5frxXA{M<TyGzkm zX<FzIP9v8mkm8B71o}3$ZEjnDX9Yfp+Za`utwT+vi$z(Hk%d@Z>b#smvLCbPZm1U= z2t`HzxkS9_z9l|TbrN0%JL-B$Mo#>G>IeJyn~rYb4#+ne7*>5KMg%}cntYA$L&HN% zj;jKr5a<xsC=gS&WF<sx(&w5>I&kx4=s8DMkf=K)A|-nC^{Gb+P=NerB)cnIBhik% zFosrnMUhda^>w~#ViBLL#s{}3U1Ow5!c}|~w2Jc-Hq95=XFAlD2_G`Dkwhc|sEbJ= zxv!+~z|YdVCWV)8LZ-n&AVJtb!GX$&$g#ipp?N)U;jeD8Deh4cqV&z>aB33Ip?M!4 zz30afFxi?3ne?%p<j`wnXw2{0$^59f4NzvvZ>wnh7}Ef{u7}3Dz?bsEF<_eOiCtKJ zRirSqOy%UYh<oJ{;*#mYI)nAZyC^zAx+`bNoBt`R_Ng}%C_PQ`F^o&~X-FLDDXoPX ziA8r;tOqtZ%Ubr6Mj}U<Qbiy~?YRk27S;|$x|khwEr1-Vi|bthTv}9^9S`p!HT>g_ zo>k<C<l%}GZefX6`|nb{uLuj86Hs_bypEYzZfy%4trs?>yhdU-aNFW%`V2Ls4{dQA z@w@nVlzcKuJ~ehZZ%R(8#cB|bjIk#IkEq2*QORkYRl7|aN=%#rAO+cI{;pb}4AX5` z;nOTFrkDV>-wiC8Xb)L|q-WjXk(6KV2c6%6Zw^3BaU1qL5FFduFh!^#YQ-*+5Fj-{ zg--G<C3RXzmM{yas99kgNw={WMCRetZnf4*m?8n}TQ&P_=+})wtI(Y|fIkVM?gpU^ zcIX)#t^iB3Y$p@8NqvOOO38yJRvr|Jf+BMJPkPZVyaL`KL^_q^x@orc*+(Ct#;zV; zmE{%CY+zsM!AJ9XdJl*9M}+Gi*#(%cVCB)nekGdO4^VcJ5yi#p3kNbp)ydf79(ncL zp@Og+B}4ZBHI&|>V1%7hkm%sLZQHhOuePz;w!PZ6ZQHhO+qP}n_UStJzU*7KYUeG< z+yA91$xP-L(z(@q&>%nW6@2oOb5_vG`ljhtO~&7Y%U^%ho1j|8-2<}H4K_U9<%;aI z0r-7A{E2XaBO5QEzTL=e02<6-OuJVCqbMr~3jQ^{Re`I|ybo6=8__l+ExFtHZ-ms7 zaaj+n^@}yOTIE`+9Qz%XuNkV6VwtrzU|}r3bxFc-LD{1>)Ju{3<Eo<rKeKLFv6?0Q zWQyOtb)6k+mzRSKleOoLXID<W<tJYoz6&AcY2_i^=yPFM(}~4Yj^|E<;cA!fYs;y8 z_;xqn;}ief9PzS}(yUi3p~&;oi7A_xFDB~B(z{4SEWD6{q;_H0G^en7+y%AmYp<gW zqi<`y%!k5w=RzjvMS)qy2CP?p&4`%ZZv%vq_yyM|i~x)0eR}j+<mU!G`$8$i^RPn^ zM=|g`e^2-o)*B9pc_V{#Rj%FuPK5;>g@GQN@ePUb3;(_v6um}_4u<(P6n-a?^i+lw zQ(uYH!7;stf{RAUHy)GzlK|QU%HWtHh0kj>#|;5z?dg(}(W*w94I5*4pV`_Q8Dmfn z_7*4haz$idCME^;N<kgXk~a)I@R1xpiWf`hv5$^@haL<LDh_$@8ti33)QmrfTW!nd z0!V+)$9yUo1=AY$dh1W`<q7%mv&!*w#tdBoX@kcublK*cI?c6;z%}^3R1<j_dvLBd zzXQLFCD$r4t&94I-Xay-rEhVD^~`z-<rw+lolTm$KRce*FDOZ1#P{y~s{Lm`qS=U! zKT#J*emNPQQWm!+wT=00#ae)%Ye*FY{$$B2;Bah_?G)X>$NQBoO{jRcbb`E!x9evp znh?|d>_|-R@v{6f(lSGXE-=o|g=~MiOBxXb;6jaee9FUyfpl8Me*DvRQCYRp?wg(> zaxql*ScTd^<ZdTuEVD+EXeD9V`_>FQ-K3<kh>HZ9QoW(<tlmD-*KUTJmok{qPx;N! z&mdU|W)I2CfL!r;o?ZZNIqvcb2CVjJXO~g&<(EM!j?3yNo+2I_V&HL1F~Ia}{tisc z>Ea=ENG7oHxAjvv|Jcs-#2VtYb+?GmdEw(nknaX~U63J{w*X@nIfD-i)=41eLbDz@ z1sA&4j2cEC$f1GE`aqAz@@SSjV@%G3$>4aHR<kYem4JTXnW+VD+n-8fWORMBY#wI< z<e7}cAaEY18jy|Lz-Bjtn>AxlBGJ%x(76w1txh~J=dz)3H*>uY@m_B9DEVG{NRYqI zb;DB_Q3BofjAD!dFCwCv?qd5H*2XHsn%C}gquA+dkbHXG;%~S%o-s$BchX!^jWWiw z6s*e>uA6JDj7ar17B6`W#NTmT%7A(4t^5ab3EJV(1>K5dZalM6unuyfqad=m>xph| zE7P2tqLOw&yh4i<UYIpLXLCrISFJf&jc{N4a!-bN$_+ZKb@5;)8u`b8*gnNeHlP!K zL6IJKTbT8%#yrD-Ua*}QWna&qLPC?o{IYQ;0QzCdO}Wc$Q$_I%Tk6O(`|jA*oV#S! zG|1$OSZs3L=ydK<)0o7Qb62-(V2Om%hr>ri(HMCsB4GP-**InazjZP-#`{0QXIIJn zgLhGd)Bd%JF`5$6EPpu<8K7n$@VaG<z^8a9ioYKHQlIHXkx8WndZ!Afp&65}^lT$7 z#WlbTx#<a~`~P(^-?Ep)ZSNPCq)d=j_SsY7W!Zz?$Hj?8xm*snkA$j+GyZ++h5Kz} zM$QXQM_TWq>k~Pr!6bBpfn|yUIWDB3FYWM>x?a+X6U|u&L6lvn>;fNrw67|oel#g4 z05T=mt8z$26w=A3-(H8nOgL?qCf8p6FM3EC+-P7D5R2o9s5IDem5yOW|BLF4F5w~w zz!wb&nXqc1io<f2zD<rHis$yJ+>J{^dWR_uBW5JvSq$m7qj{d$YU<}zu#gj)7$$>S z^;t*YY}+_XW9fzcQ7+{je0FO9$IN!OC`6X|cI!OL$a1*acMS%scw<1M?T#bwf@1d| zhpI-|%y&G4u`uTDN+I@&Rl(nulHKSVaQ=yMGYykb7=w}Vv`uIt&JPhZ(bzf|a-dtN zQNQOm=#WZVntZX_7sY~OgW27JLKs7LZ51E~jzCSmiN3WGDtIMD8JwSIrH(8*?Rkr+ z;cc|U^{m1O>zJNVY5-2>!TsT{REeWyIm7o^N{-&O{b~hSC{llIEp2pX*P2U9JLQ73 zP_d(*blk%>BLpX$=Mk?ZZ)Cw};P~RmHA?T?{v;l~-ifm8u8hN<l^7xtbEkh^d8Qd; z&R_~U)JmVkfV4xZI!xgsho3d1mm$BtjCjlv*u{tiGl?WPu>j#HIwnnkuV+?2#GRPo zR7DF76v8G*<+qLQt=EcqKM9B|nCM1r>=^xX=!JL)SeTnbNf>zKZWC;50J)M8CmIe; zydT!!50ppkQ=<M2{p_1zeUeQ-diUi0`R%TYQIyg88N2;imDJ2;n5}X6d{%)XYX*8I z5Yh;aActV#qSC-{uUJEfyPO1ePZXxHYr$mGMMfs`vQq1?_zXj4Q?e!_OO5?@A?ZT^ ziq;i|)>Z0OlA!c`;l)Fa@%Niok3`2qmd1Y2<UWTUnRBOI-(CA(?%1)d$J?q3F^z`( zh!PxsGp^8h+ja}O$s4I06AtKSL)R$Xk<R$Klk?l4U`uGJhTB;b`-<x0Uqi4wkGh;j zJ#SrMgQ%F`Yef&}VK7g3Y*h8oy7Sm`=?j?DXd`Yz>nJ)!760HztPg~gmP_jlgGHKx z+lF!6a;_O);vz^fB^q-h)&a2O1^X3UijhVMHVnC$p%4ah6uP@`7N7iW>HQ`rGRT}e zmTMBih}srl|6$uqq3kTznbNWEJGEEQo>Q~PMe|reVLkwsP`@ffLK7V1ilyV#{*X5i z3%kokQ)kTC=6g=f+@7dPzj@|GxYxv(arRAm^0`D!g_QPTU)Z(yFkVjeTpOVwwq5`R ziohf8ZLL}~mf=-^Co;&C{a49T6!Bp+^7~Xr#N*R&hU~@kZreytMfv2ZYp8YSYUND4 zY@kjl5gboGM_3!<aiMjtUu@ykYugo9n@->6xb#2uq5y&roSw(Foh+TjnRrAeIwkS! zlE(5A+Z6ECUjxG__z-nIKj9I>*T)-ZGtS}qfv}4h8xL;-hwQE}h!o-v4L9bDdT&+S ziSsh!-uM_~jGB6*t1?WkowotxKgDFlNFWT`rf%;&&Z;%*<w0zWHfw5@pfA58b_TFN zhefk;?Kr_kP5*{jr4kD0p-7}gq69XHF`d%(;NFf+rlw7pLhAWKPnHWb<p22tw<oSc zfMj$ILpb;kJe$Z31a4*o&cyA;)mp35&Xzt?zui{&{2XuG=*a5)<fzv4cswk%>`3*v zejOjF>OfxwO#EpRePJ_-ddCZ23!`F$LbwV2`*lI)nB3XDVGP}=jH!c${mM_-ktU^; zl;2<&$)^uQe!;RnN7y=2wN^LRI0RhL@p@o<oc{ts?g!}&4xB-1wxG)gkzc<bwvYL< zb&P|?{pTE4Q)%>x5<b@Hk}~J~ihD@cTAi(+5>qyZynZc>dF>Sn1>FI%wsh8L7xzdn zWr~Pp-!O7Iu#ABL;XyMZpzd;33bmiAU-rt0gA^1Q^<lMII!aIF3tHeNj^gS6fDG3j zG|dZA!wd?KdG3pkD2nUrccbWBLnRAk2vhx;JowV{)6p1HB3k^PksUy;9CiV%HC*hJ z7&NEKF<j6D(ItT1;I)mB&*xqL5hTYwN$!T}xq;sCH&!vlqc{oLX{rngU@8aP=Kpqa z?JuO}JV!y=$jVKJkHgSXvEs4ZWYmFHuf-U%&7xnnSt3WE8;PP?{M}g9MHV*0fci<Z z?DF&&W_d+89G`hY0$u5w?Le5JR`r&rjd?weQ>TVdOc(Xt{qakT1zXRDMZ9m2a~y(( zL)-Z$xKU4+@7^-s4tHt?w5^V|Uc=qAmR)ll#*9|$N4e<)E`XJV7NgN~qT^?zGSB&p zXHi}HGTr&oVrgdMKUKv#Nz9X@j=VCSs1))X14ZVsAoDz;e~SwRgA<TaK`P1QG3|{Z zdS7~$7KOCs28EcxJ<^rPbiyAlj&kqh<Kgm@>YDa`UOLf-O$x%|BCuJEd@+5-^Q%l= z7X-9g=(PUUTZg^Pvgk*~+302z$`$%lPKuOsNv1n0f(K3@Y~e(m{loQbBjCPj!KZ@T zMSe#_n6&YDeIWVYW+}jZlTdB(`M1oRS$zOgjfbV`*Q<Df6!Bwjy28%+BxU0pMB+9J z9}H#xC{CqFiyKuM#<9|IY!FTN)W-d?s#M;HLhPEZxT$`E=ex6%o<;oC*CK5zObX!_ z19MJ7=Y+QKlrl?cX8%;cJ<iy9z>^tWRFCS(C^qkmLM7#aXT-8kx5152Cs*d178p@i z6?0>fS-v*~qphgejbLv*b&f28u4f%jbja7UY^*2`F!RNPY3!NnGnNs=p~T!$DB-AY zMPtQgoPsV1L=0CI6K$e}7wLwTr^be<_FG6wk_h@`W3{cCyVu;&{cBSJG+)!4h6b#L zm=y_ouTqkGuW9<c(&te#;3K=jS-@wN&ADICqcQD1Obw0(fxYr7<5}$%O}mdp&9PE5 z38i2{rt6M_4ISLXAsJ>9eyQowm-0AdmmKz8H3@+%gN>2bN$GfsU!ZY^8#+zR*{kwZ zcuL)jG@SGkB*r)3LJ$-lv`mYk&IF74Q*AkGcj;Sclor-;D5Xy=|EvniF42V-EfKXD zHR2jkA(Q=-nH7uIxjM9VQP%<ThcDp_U&hny-hm=DW^h6b3ZY}Xc>R0HsOQKrVsRC& zztcuaZS$09*{0c2G}(%@neW5fud>e<eC{ji4nY9|E&s2>Tk%+)zVK%v8*u^*e-bJV z7sij4bjbH9DjMeTz=toxj^O7`bU)O1OrMUiRnAv;szu%tIAL`uekAhkL7gh&?6RQ@ z;}&WQrpA=Js!YM)8^PN+iJ$%sTyIJV-O4Hc!atk%njFrBz%i2??tte#s3`jP7*B`C z7~FrpJ=4;XvOVN9wrQ%Oyt*r<{JI%L!S}G?XgW!&2e|H7-WznkuCJ9N<)4h0@IKvJ zN6X8!ZlN?LV;X}BEo(Fy(Z~V_))C}N@af<L(v60UG&d90aAw=-I!f!r#kI%R8xa9G zu^#FwD}?#O>{SWEhEW;Bvc{N#R`GAh&kIA{`7bdK9Z9qHW-^pGFtvlBG$-}x@H;E- z1e*q<?C6Q}bK=jZxfV4~^9V%)-u~8x4l8`Xp@Iu|urblXfc@!h*I@1E;?NfA)4ozl z$4GEc6#KzF=OPZXa9~{E76t42;&F6G#nSt?=mM$FUV`8MZ7Dq`XW5zE+(=n>Ns3t+ z8mxUW)vF{4#`g?wUr0D4yqV=am8Jy}rU^!w%j4EMp6pCc$}et@$sKxn5o?j|jD0<G z9uJeyZjD=N5#9hxV<*R-?B5S2M<5<v3>Yu}No&dY!D3W`>xr~IHy(~nGZ26?==%n1 zy*6%3qDE`)SpBpRLHt?@@wxnO-9Zg)6X@n-fwZQF!-}AJB~pwnmV!AU{MYi@zkZzD zoDQS$!;8Z%qW7?D>82i7+^7=1P^12}(mo0Rzju6xs)X8*E9pX2(yl3n&>yapQ`YmL z*nVmsily%v$Cy&IicgB5!Y5r&Zyi^74AZZgAIO{ssqmX?b50{H#U;NtTZ0$5c5GN) z42%KaDk)o&BI2)#o%&AO`l2P09CVq2RAE|{mSrqbq{W-0t(ECh)Ba(y8mEkFejxcb zE2bHpd&?A)&#vZ7MGVTIof)!~GXx<_nGt*m8kgs<h~?YwT;Y$|Xr%_>@yCBQm$DvA z=~Vy@PgV4ZRm=7>o?~lG|D#_v*^S+D3Lhm2S(J<?k_D-?L`pUnZd1c<;5iRRJ-GjG z<?&n2ahd8&lSwjCP`0tAyD(x|6h|xW2gTWi+gLjsSPvq|O^9)^^T#?uvx}kJ*rlY- zxs%@Q!d@jCFXL?8_EG&19m`t}pJ|@jU{_CSZQtCY`t&Bdpul?RoM7G`h~ZmfQ<8i# zv9zPVXsO1Hd<V90bVZi>!aIgCh*^}^7DZ*cYB6sA@@sZ&pNkIi-%Nv|e??Dz`P^X! z7+p50vD+guliTS}4}4j#13sQlxH_afK^=o5r)FOaTtOL<Llg9w$8x=_Bs-=OQuHYk zLu+{lj3HQ=svMU*&0$cHm9+xw$dBu$Gh<bS94qZ)Z(}C(W3nP+<TJZEi`bs!Kr}_q z8oErhlS~!PbswAb7{`+U0xfGS!-~_)BF`<EQdwe=Cp8uIUiISc9BiW9qhh7FiCIO; zS-GS&bxW#Ul+<d)(onf>;bC|UOG{4+5QSAVm>M;Dp!;PSt^PK%oy*CbIPExmgK4_P znYD95lbypc$}=%dCX=vDj_S^>3~?J4+4{0I?N%b>u-vxtp7X_~aHfj|N6DO6+cWl9 zU8dZq;l&b0FRUc+kODJf`ecQ|P3WQv&?V-60hxKE=^`nn`)9vj4XKg%M&=oWkM-&% z<lNC8{>GOS+9o_HsELCSfpH$>kL4ISy)V8|M^1<z_D=J}=lT<wYK7NsBgk1;BP;pH zd`p+GPG<VyB%h>@pPx!oljH_~oxs$|Gr`)7TGGTm71%oo<uZr1VsgnsstmXeMfORb zZpCkDm2|W-u*NLAMn3o??0F3k!mR40=+pjN^NczvuT!2E)$WI%@oif<eSLfh&ZU&l zSlI8jsc#goA=aI@?+0bJki(4Bo(5dBsg`Hk`uSVcup)v+>`KXqK^r;G%*;XfhdQFA zMq*NCt+8;J3uPmX%2HvU5g4-FGs^lCM~Ixr#dxEKIW0}am{mGAVHgpOJ%-qcIt~H< zfIap6{gy2_Z9k`$@9%Fn0g_odGu*dU{8Wy>IY6=}dzN^?@q@Igt@FwNzMH?aa;1TM z8s34mfN3RwaZC@q0W(J;Dn%0tw=NJ69b3(q@bbzot!huHTnNBDYpr<6`05<#3g*5T z_D}TOu-&v8*lIQ>_D_ecC0OOBAi)GLNNXG}P9PJ(8AvoD&9V9yB)g>9K7A^buvFgw z>h$EXHpGfTVyOrd9hogO(s~^(Tv78=nJSZZx-Z_eV>0Zi)YQ6R`oF7Xi}mm(bvahT z`aMtSWF2V<6Q*S63c!!A2MhQ6$u)~KR~SKq4t;)Mt}0r;@Q@AQVY!nDn6un1K@>GG z;y+`EY>gE@4jm{AuX1FOaR}!Y;FObcA(ItiVND?JLjCvaB)!SQ#15#~|12EDMq;dn zZ}5|$tN8Q>Zrv5X{xYyrbRjzYHa_!WcxQF(v}mm#b&VTt=3>1Jq_BJ*<UaXFdv{^_ zNZoX)%Yt(7s~svKSQjn)uDHguI69@9D0$W%x`eB^k0Q%PIRR*9UmyF4jWw~P^RQ2y zS8#NJr~Go5(Xw79>DX_c#HM3L)*Jk!ok#@`gK+M5PFd%iRKH*(iXDuDrvr4iiov0D za0(xGUEEzy_cEN<Wgfy)C^~>3V*OBicPUX&jowl}%5vZ)TNr8<U1}X`iky8Cwx#dx z!4EY;DwUt7Ho<v&&r#52_<8@}8E8bELw2b6(ko6njqeOf)iN{}Ru$RlK2hg;xkg@G zXf*_4SMZMS^nGv8v-o|nJ(}eoc%bA|2I~fKElfb*2|2i4PMGIgES$~WT;{xZ8-k3c z$#YFOuQVR9+?~C2GY@`o8hyQa9Z%;N$)>3f4O0}%UJ!<&z`!6+f3MJPtYN0zCp)d- z_b>UY&=(QUg^!p3*-@aar5gnIuPHzI`<C%W`Q1K#q%UEV67^-n#o4j#97fp~?4QEO z9Hy|^aWp)9EvYDR4_E%&+UW4)=M4AOJlP5R#b&pdMbRxGE1z0OjjUMDFB~Y|nWFuk zme$yj0_7iQ(b%|&azP!qalUY1K3OsiDf@Rj`%o{{#a3D@9JYJL3r735a0d#5E5S9q zC}%Z@h1s2?yI&<Kq9+WVfrX338dLhGK5N!;ImblRO&)=~ZY)KT8oGd>7+<<>b_$;^ zFZs(Os-9FArj$BS0LqVSQQm>LC;CdFoa4<OIzIFncyPUg_ESXHw(8uo<GQrUb%Rgt zH4IrCmDN7tjy-x{2y|%`-gpPO4S3iS60?+@-V6KRk%3zT+y$$U`aHZ&zB%8o?=irp zkE=%d_4#hp=d2|SgX;2=$yQHOPd%E{7T*(8hE^-%BP+_c9~w=grTdOJm#~F$KAa$) zj1?~?Nc`%v=eWAKC5kwB`{54=N{~wMftd6>r?67)by)}yH_B-rJ+*TDK~hmurLxA` zjtkz{UTi~0J<<vvtWanpK2rnNp{-cA=+QvqLK;B7tYNeYXJXE9m!8tczvoUGKqUyT zz<7c=UX@<QAcK*nCx)#&n}fTtFX~TBj$0LS*eXVNzPEFRY+?J{%P%qSt8s#yiZ(nL zZ~&m^_X01Ga6Eo2ZWHNdR|F>R`C~Q^s8Z~<-lfsA=dOGx#S?tzC(=kj+uT$&H$w4+ zn(rC(o_`n=`FDeaY~uf-!+bifF=ejA98Em0l_q?*l#Q}NPdPQ3g(9QId7>QnecQM- z{krp;2CAwDD4!SiI!-y9QHT!IvonKhKz<U=?{W!}fm@{p{*YnK<TBeR5AvwKCncF8 z)T;iyIW4<Y>44M$T@M@<SYYpoNRc?)Scay(z+6#zyK?6|p_JH}?q}ncAf(q?KA<}W z3O{`?FS|GFcaz2^efvg_x$OT-WK-E`x5s~Np!wvBR=|yIfOt?U&I+#p#+or~+EaV= z+Ua>vEk*?C-qg{RoX#FZ0<or#vBz?Z03<;enIZ-mDM{;8ru)LnJ{zd0_Gq^rmKc2E z3uyn@KW*#$W5%_$X|JpY-oeOy5brU#(In|IY_Ftv7OTd4Ds&Ddo|||*tSYi2MonAN zHBq?96aBEDHtuQr>QgKeLO%`^*2k7DrBF2^HWil6blDRR0ZlGBybVk%FWy{_S_BJN zF`Pc2J{w-dAI8D;w}>r?%K?-Kt)1uEz<8YbUnOsi|B^z<QWSF0rb2m}VnZX?_5j=~ z`|^Uxn|Z1TUP4(QjP_yrDMM&@Yj_*+qUd?lRv_|G$Lerm=8UvA_HqaR@(`O%DSc|% zWoPw;V7vl0FxQV_>O#MV=h(Q6I6a~|IGlt4gSdbm2Y3UEeAh7mR6Q=}BtlAOd}s^- z)YuafY2y_#&`}`elcT<nVBq*;rDpAM9~Q9f<0A$lS8q)!@6-3MgA`H+w-nWC4IAnp z*$b5{<aIjmOchXlDf(s@k)H%R={n`kw#&B@uNaVMGZt#`mtQ(-B|wiEIsKd{#2U)* z;GMFdERQ*uAVEB<sNAAOrMfCj^~N(L9RRa-(?`42-D%B7QNhhTbI&!ZJW3B(s@vrt zNFL=kNt9n1U!-#}Dey4~f4}|L_m{*$_O)~I;fB~fg^L#t7COQN-(u5CI5#878LqTC zul*Vei{dlfwl@rW6=eqWYr%mGACGw3!z4<pS`Uk(ohu~MmN!`t))xun7n)ImLCDXL zr_P3&hDwSq{I&=!+3fQY)JI^mP4pY9o(Bzql++6^rad|L6&i#SS;Hhgf2J}>mOi4j zi@kA{SAZq#C!>8XP4^|}5WwJYibXBjFq=0v(7JZ+Z{n=dNvXoQZw~oFBuDKm2xq<N z8A-vP{;1A*#&HN2`sV{}Q!m6r4%lPLQi{g%uqY8@qe385nn*mQPryE{I`2W>3L0t( zJIe7dGw5|izK0s)A!g8EGdM<9s_U!E@9IK8#gZ~%N!xq1y$KeofoMZBGY9u-sfJN- zW|IcYdC#kw<(xBZtv~<}MUpgA>|>@*@QVr1Jab-_L{-{q=Eb<Z>*G3Ac)mt=eIZ^y zg5fFxdxbO}PxaUm5u%^Ijp^A^FPu~~5RQVg^d_O}j4hAr@m>?EE~NVkwzre~SdZ<v zbI(CsQ(s1Cu1Wv{Y`rDgJLF@l^**wi!c9%du?nmVE0LimxvQjPw@BE0o-ERdr>3Fu zw7P5yl9QKtqGz-7QGk!_yqO5QU>t;Bm|%EEozXG9Y;Bbk)_FEfh&jj9hqEUShi_Vt z87^(^b}c`4*IVA5JDryayWrm-Bs=RWRts<s*A=%&W3x<{|HJ)g%W)c^rUQ(TV_kOW zb%~(}n>=@z2+L}Whp|GJj*&mQW&9?1KkQ(Z>Jc$|$J23ZU8+hy%T=H3CoZ;BTfky9 z8%^>hB2-_eSjIdCs^C!BB>_E^s|8kALAV6Cu!;A=#}~uokp$J_G6FG5s+WgzGzNWX zecVoK_O-RV-~(L=tLVD`5sQ_(S=k{7@3)`Q45sFS<C?*O!x@@4M&U%Vi&!o>OJs^6 z2Krfu{VvQ2X}KOur**>zAja4l?)B?Pg5{1a8vuU#QiSosOOkt?N6*%5#7}^ii$Nz1 zmrVtWL)6-)9r+Swm4ks)>!q!Y95deE$<vnQ>e}JK(*d6<eybfgvspv+S>-GbQ^ahq zM;y%h-<pUkcYhDRe;o!lpaN7&w1=JeA6|X(vg>Wny8H{;7S*ahJ%(ldusNF(db&Qr zX?y+ndMkD<YL;U7e%-j)Zuz@0!tvB}hz|>sQ5H^&c?s2fr&$OVSbl?Ol@#W$He?BV zffZ~iOO_d>8J3w*IWAQ+j;gqQw299M=6=VduyMGkBU=LJ6k$PS8}5TCBphnMZlO!w ziORk4WqK`IQI0paeI0b3nFj}gKj)#{QNf%nI(Hv7huKZKoBH{)$S5ggU527P6m~`~ zA5xt0EJ9&eKR|Mlz#u5U7H9~7$zM-(-MH@!`|qwVF8~1b?@<RMM<-iH8yiapIvr;t zYeO4*y8p)wZEs{?W^3f|tB0QAvT!(Hjo<nDV=JQ-reGRHGGoYA?OJ}EmcCv!r9#%? z;z64O5f>ZDB5V#ho_xHb!+T34>`~w5*;*!q#-BT9<H)9Qa&nT>+|h2POt>uFg?g2R z6gB=NgQ=&qecq1rlpgF<k=|S_NgU3(W23wz;mOU-<)N6Y-&JGUj9AsFy3_+uwOAp- zDjH}$ZGGG_akh5iUNI<f{1Q`7Nqg_!5m2R4gycc2+P-)te|lA2hL4i3H<;z=`v%p# zH7)=svQP#fwqI@KqDrStaCmmTx((Ru)ZnJ);<;y+y4|#Kj~#Kgw)Xb+mPXbL!IwL~ zG@OaZ?WUDH9&bjDa-QQcWCJYztYuHOtK&`Xlytx1-Z76_H`N;FwX|L{(y8?6w6OTG zbv_Eep2*okht;GwKh0KU*=#=oUscc4eY#a&SrNrZZ*@6Z>QWwOwMCyFRS7kiva^T$ z*&|;@Z{Goo18{`Z{Fh6U)<~T;WnW_x;TDkxsIMO9&bk1H0#GXy5C8nWj~CquTA%9K z?LuU^o#Cq9>e+j`J<+Oy>P4)vVwjsqG37kAA`4s|u_V&R@+QA#B6P&sl{})nTIsR% zlIP-BKI62_%*n*-s}!r?FAx`spmM9|uISSF(;PRGhk;OX3>JNWa?zx?QBL-{2XN-< z^+q3?R(HK|F6uj?TvdJ<U@f-UkvaUN%AR`4-bWYyjw)87dl_ErIRPfuXH1vb)$P^V zntI-{;k|fLJg8Xh!X0WA0N1;E(+5~5poErGIi$>5`YPnECt+0VE`$_x^PkI}l^PwU z-3g^wZ?cCq*Grw9Nd*Skq5Wi4Pohv*U;m#KC=jrj`tavPWs@1DUmmznbL%)3#(qUO z;ooDXkkO+B*W4Qj-_YVf8g@u7)!J>lXyJJFpR{<bmX!u%JRk-Tz)3aV6N^e0mXCVU zU}MaFG1E8p2{qHZ+*g&!J7FJNz<`CaB3J(!vi{Abk9vR{D0{n7LP1SJheqMmIv{P8 zs&xRe`n6d<`ltF-1Y6xMMCC202H>6cW!rI6$21FZv6iM(=^^sldMu$j0arJ{XF%kn z$(z+CGj^EH!&r9!st9oPBXWC2-3Wpo3;FS@^4NV_QaF7^#E5BX_*2f?9M$6eeS1%; zx0Es+WXSIirB0HynP4OMX%3`6Ztj1w2)wj-EZ71V>5O)g$>4ei?*r(`?{$G|bLKKy zZnk}1Uk^+#brOu5KRub=>HWp=?+!-h=vi8Y1xmCEM>X9jl$~%N*RsLG2Cy8z-sy6w z{OZ}L+aOHpIFUGtmARNmugb(6>S0pyhc#+_LHqz==c1@$lGoucnx<J`l1202T##^; zLYz*$FT5<o{T}}P9ks8~ZFu2FzjBMj-h(-OJkZht>yjLT(goOb4<Sk-9cFe?c6|bO z#^H~GL=Yiw2jB)HrF%kK%;vwboLrm}ja9Nou;_jCwKnhF*lU!)?M(@+Q$MLX@uZ^7 z(Rs0V-Fk@dHrqYzkCh_XSSR@7P{=My9u8#&I{Cw6uDkIDUrgip^!^tV%(nqR5OCdl zwZBfee8v0uq<Pzm2oBglUk7i{1$+d!!*SX577;<AE|$c@X~ufrDck_0{15+)DfOJ! z3j=lNL^ckQOwaqz0JBN;PUsIk72L?28Tf~uh_74YK5o0wAt3F7g?!#r-VkVIH(+-G z9B|0mF%kJcKV!)|VU{P*S6^ul69c^#)_YXLzsstVsodqvSzeWbq7Hdmy>ik1)6zT$ z^6S12)vPG#VdFJM#iF9r9k_pu6p2RO$U@-`nAn}b<!AWoE?5G=s0p)>`Dz^>*4%`$ zn?aiHST98FI_9wtjC?!+?FQb^LDNP#W-#UkOlRM+XHUfl7P(2I74VD6OUR+WoS2Q* z=n%q8FvIba;?;E4E1_f+{QU*`4%8Mg^q(xrE?MGlZBQ(H3SmnWRp%CCkQVbK-@sDM zA9DGIAZ1x8t(d@C{>c^Yi9qHbghb2|Z}Y?G{Hr0*<l=CM19y2MKDBTv+#OJZFM!Gt zEcI3Kf0HZ(!25<JGGH^Aw8lIc%2n$lLykm3a7F=TZ`8_X{1sG*!(w5r!wCWLyP~F9 z8MQ!#P-4*bg1xK-124|;_f1zYTVCSsnsrXJkL0lG1B^6mryTMup$$;EL|3C2o?;nb zJYQCH(QZK7TB@FwR5R}KA8REKoi+HcHZV730JHn~%oGPi7UFQl)0zlEs)O4v82jcb zL^Gctv!`4R9?vkXIbZ~!D8!5+>Pj8)ZD&f}?w?dVXgUJX&c<UH{DSZgH*7bB3#A!s zbT~<nCAB+3EV(H}GgSizx!mM9MxlAo2NL^~^iDY68e^JPM3B$iK%T%F^4?%fJNRXr zQ`LoiI5M~^&a06aKtTyBajfASG~vWzQ+TU>U~-PvYFDR4l?5SFVw)5+R4E1D!8L}< zNa6N%78Ko)(l?%h7c)wM%C@%QsJ@S`YQy#2#I7U#eV^`R0(vF^<)PI9x~jn37=p<J z?l6<C$GDHfj8sQIC|AVPNo&?v$q~{-Ha$XUx5->FkRCq5g7U)eQ$+~t4H%D4XkTg} z6s9prJsQb_E_vo8J0N*LwQp;O7{P6=w(R}4<1?CcUBWMDkIVlMQfY7u*%|$@1=rdU z&VFx4-y-s(hoGFTP|OqU1U5}}infT`{Yi!T*ttTO+HS~Jh$N3MaStsgm#_;++@lp7 z^i!BVDe?a7U{;AP9bX|u4yehW)|?%xu;KkVThIaCf|juT5i^I+q4R))(gzc{BC&L2 zok5kTNL@A)p8Q&8jwpA5l~gVBIOe-FoOBHonANb|j*Z6(2)gF$T9C`D#_j?HOp-sh zOz`f(C%?JI=oFtt_3e?K#oyI&gnC7PygXX1KP!>=OfsL|x97~6^P^Vv1=I*8D+a8t zUrgNus9z2VOmE!i^f?qC6=Y~qEk{R}KW(sQpo_+7qO#KaiP$D>MRHqX6+PatU0b(` zROa}ZfB62zEc)NT@-Rzp(bM-_Y6vAzPL{mj%)vm{hFqRiBbH@N6;F^-&?S|od@)q8 zH0N$cWvu9Cp$xzH|G50y`&GP?matoR$puZ=-gkI8+0bLFB{_NH=R_UKZ)$gM$LC*Q z;)-ZHh}hiL`b6O0h?FuGyu5BL>zD$l_91Dzm^-YWLP-^$7Xta34@$ULFbvU&CmH|| zMC8kX+b&g|E$X&ObtFV>Qegz&9(DPzGM6wv@M4yRpy3!Q^#O4Rc^Z2e(K!i%lF$un zGSuBvp@-7a#uMQFOuhYaxqRDq-iH>S6Mu18Bt3y?u2f3w8(h+P)v$|fSGXeH#?zy8 zrQi&8797hrRWrvIz2oSshrRc_h%mqTXZr%3-c46(Pj7?_11yF9)V-w_H|FXi2bf+I z4?k{4UciaMKj4l$inKX`X4cDusuk9E!K4L9K#UaXb1Fa_;@j!h8aRfs<lUigN~B(e z1APXwBalg-{X7B1yYQ4c$^dWPR{K;?o)LwVbM)24YMD|_6<e@^a2)8n2?8Ee&If3( z|D*?V98T98jOenZKe((3F^5u`9E7{L`N8l44@f`_!k^)!15PJc%_uhA-YBD7)Ui0{ z1UO=KA{;{|GiOHc6p`;atxf%e+`V`BFMJ3z=+!kA6cV+34*t%IMtog1RfAh`IX%V_ zij{S3-5+5q)fjW%&wn*~=!vDIN*#@0_5HX9z<&brt3F+QS$M8u{HH@L^fv`UWgupo zrzvfPMBq}DbV)}C^(ktcu1jW%NcAwE1{`HSLWHN9l%d}~fjH%g{3IYvO<)W8e1$K2 z{dUID=RfQl4B{_i(yF92WN&9HNgC!Wo%)lX4#*DUhy|1>@(Yq=!nsrP!^q7>bPaxn z2qot6J(stU$BLr9Lu2c;@U*A8qL@4f_h)veiAC-d$YVNzwykW6CnN#yJ*0;-TA_WX zx!k0+97L|V8I1i6*Pb>&SW<fTyLK|qGgwdsBJAEj4?$(3$=n~BR(gTwO1NwY4tJJ@ z<!b!bYIN_%v`%K<_6c`dL6~?{kfND6rVlBYqPb64pB))WLHCHjRe9<(4Kq`1SwXW& z@0*^zYvh+oQB~b2quR!8AtzSBaC1Fk@7fa?5(PJ(s5pq%2ePe89BBT+b)WTSD9o+r zuXlJ)3*iO~mp=$rLD$KnwwYtcqwG?a@vO|?MZJ@2tZiy7aZh=rzJct#IUK)U>;I_V z(0N^9(zu^lZN&yT9bDpN%@8bSjD^A(oZDqS35qhacSqxu7sDlC?>i@f9B$V}vF@3J zz`HROM;Muqdi@g|bgGH&GR^pozgjiY7B1zpP<r5V$|`23<U%I>>JqWp-Pvfd+3E6- z^#RXk!gf>4WX**xK>*bF1~cGXU|m2Wy=Te&HNrm$3?!jZHoyB;@5-ce!L|G$S?8_) zGvYrdu?7s>H_LI|FYMxB1OW?iRcxLfepyoZo-@R5u=mKX(fkEtS>zjI`FA3A6^7d4 z30?xIb`ig-6Jf+%b`*fj&;uD^d(c>$l`FRbOAc6Yk6cU2ASuc^h}}}W6{<L@#QpMG zeJzkQPGK>IoGpLP)iCGukG&@njWu|5a|v^d1x}7$2|)|(tWF+;77N)s#<i%~?$Sc6 zI`*TA;H#HZSRF<)?|8Ut5Uyf)rr(LThzuJ9IBICFA?7tK>$|Wrvk?`K|7b(ytXm^N z6j?~<1f3+D;(Vmx-(VKpsEc=K;RSw>R#Ti98qy$#XR~t&yH_brfa~XGCM23%TKu+w z)zsqNX~|xc?fsG~^gIRh6pC9$zbpY9tU!c=Y*jMnc?@_PaO4Vj>!$^EVCvQqEx>Nl zGiIAm3fb!s@*0k+QyZg)aGhu_R8)!Vb#xA<&N_p=6_@K*-IcPZO8DkHNzdqno*)W) z#U<Exo!bG8<T=QV3irnrk8xOdS4m6hy}FH>KF@i?9AB@6yFp+rj?|o@d<R@VvbsDJ z&c1~%p9ir_><>ZObBRVHN$*@4{PB+9w#)S<3aU`f3IR|&!<BQSKj?TwSi;0kwX-gl zO!R_-D*n(K_J~s>>3tgaR_^~0p6Fg}-x|6_Z3M&E74>eDdlX2U!t`38)#A?xf$ehR zL9>nKXHNLK(86tSh1FL&zWs0&vW9$nqBt~UT%KrAbIJv9N3HjfT^LsFml(|Hsi(b& zZRT01H7y3k<uQFHU>^F))C60ype+}(iRGJt5gR&&?yaihpoYG{p26G+@WOA7Q(-^` zq`|+)hHb$Wm$J;%6t@jz4yt{~ogc>dmd{;Lj6=HGyo0NlT$48vj3`dfx!pu@FiuU< zeVnR|<o+?b;=XKnzWgCz4~}WZimx|k!UB2s0yrn<*$S##R%5?ZwUyDJZ`W!c3%p@k zovu0IKfJ+yJH1G(cS0A)(?6RZk%=qu30d2)B2j%CWvS=}ITZPMdilZQc34V?wAU;T zHscq>(3(fw(G{+0--W^7OT5jpF>9S@h^vfJ=3oKFs_-MaTnVG#R8qU9$tDG%Tj&#w zv^_gwFK-v%tM21O8PTfhERmEMu`RGP;oUQP`r96PHg3n*mqTVbto~zfEDDL|%GsSU zA{sq$hrJ~{;9lv)L{sN{2W8!bul6f1TSsjlI5-aJ3ohn6FHD2*$Uy|O4Mzh9BKImP zL;=?7+DycLXDNFCF&XaacBH@UZoc#c>ZyT3^r{4_$?m8vykKL;evN(mGQ_V9#THK2 zJ2S{D-$>~bXePBoqt29zsz|m=T+b{A`oRiN*|p|g6CHB{FVi7*rjiaS&Z`OUB2RX; zAV*_vHX&&sxVgV~Nf0k#zSA^P7-FmwrW7kWt>2oB$<KsIm9V6+Y<F4do3weP(b1Jl z@3+lHTN|Sj_^x5ZNyabnM<8B~*@RX!z1?4(KRE%uQOy&1QTEFrx^^F|#eOyeO?B(| z<d$Yq2{=)I=eh{8DFG;g&_9XWDJ1I3p&e>1S*&+~(74MRV5B`Jk<}P{4Nl&1hnt;} zna$p&gYZO6eJ@g5k-M_Y^R@rY@I1=kIBVFVHu)_fB%Cwbk*s6VVSL`e?jkzQB9&IM z{erRJ|2f<Q(g!aHvJrS$O4{Ro!i+qj3Lre^UT~u)8pOMsZ<<&iHga-rmKMcjjMw+* zF-ud5CBNNcpXlGIm$Cx90Hy(l5wFW5b1tL>fz-T6!fq28a+GMAK2Kr$;->m{5u=9c zY#{B~D4sTnVci9!Mj@KLzOS?K#Gmhf6Uohdjs|sn4dzd%023?vdJ$gM=({@u413EK z?E#<@9wK~^v_k2e*SX#aoHB)=%!RrNui?OYK|_C44$2xlzTL4%apV!!zD#0~8t>)_ z3~}fvrHz&G7S@HbhH4KfP20T^NocuRt#+zz=iNaMa^Z=*GN7m1bqe=p-!=v@KI5S~ zq{_E-v_!k?t$pW*`{bmq4nwAVzmy~D3*3-Xj>5u2%(g7ug{c9kycht=FxL#3vYtnN z=mXcfGLJ}10`by@lwZjbVxg~^w6;Tsbg5mP!c--FR^U+^lrDHvweRhARL)up|4IHl zZ(H8SPItxrft&o<4fDQB$LK0E40Fl{gQk!dMU*{t2A6SdzZ$sg)`#%&egL8l-GJr^ zck<xn+bbG<mrQ5I*L_#S5S8jVtnNwq{1Y_f^7)l?^r>^Mq9rU|CJFTR%ivGvgQ17( z^tEbcxJL66GvFGIsI8)E9F%eVNx*5xVCdaT@NXoKcG}MOa&U6e8*{Xt?$-MNW2(g8 z1O34{0^>^ls#*4gkMD6eHshLJ)gDY^nYP>17q-pv!UK9})n?wjo(wH=X0ZMA0sPMd zQe@8n&lnH@APEQnfb##JK-%gVSm>FUS)0)5=;-O&I63O*{Kk*c@qOk4^f19UZcuUa zni-8-wAe7sP24c!7><{WBDTmyhz^&!69JuHmL*%6f{{I^Dc<5~eIBA{8u1X{mYJ~x zWg<p(fF)SWy|_RHXEdj*+Sy?89|!b7G`ql2q*e8pmf=f4f#&+F4|Xn5l)IrAdwWJ5 zKHS%Ipvs0K7TNY5;9%fZVNIA`-746nPP}4<fne&fjl#*wNwM|iyMR1Qx3b#GQq*<j z_d}>^D=+<#l=i{%7c+)j!u@t7(h{{VEQ+?6GU4Xjk-^irqOYi*T9>XNZTQPA><OGF z>ibllYv#XvYZ8XMsHyI#ZC`)!09LX53xsV3_~&lwnZYbBRBzfNdboTkC_`~o{(5zE zwm5BUXxoycSXi93CYlkeIP=qx{cDS=)!DH((82SR?||yCc2R66(6iK68yv!Z8_za% z>mpmUJ{P7h3dtYUK&7$N{FbG6=QAA_`WBAKy&c16=>HrRYE^vh<L{8}eg{VJ--l&p zZT5d>6*FNzNDm|Y@(sn%U`80o_(A)gDy(-(CdgKV!6uItfD5Wldw6rf2_M6@k2j{; zF4_vm%4dTsP_D%cmuY1Ov&xUdWf%*{ANzY-YH&@L${07otk?zSP{Ue6lz9>aHNL!G zb$Do>TAU>?c6IaM=wUl?+DpYm9^22N)y<?(Bg{_Fk%ggo8_Oebq!@0O`?JL4R@%h6 zgCcBE>rI5#su-)?FAt_)RiWI%JZ0$vMhW3nPh~Itk1uo^I~y9|&vh~W8rogQ;SczW zM9~+m`T()#@weWOXDMs#26`fH#3ncNx;|=sF@^4o{H*jVNY5hvf36%h6{kTc900)X zZ^};fUsujb&)Ut>%-YHI_d37Q_;A=5M*Pn58A8o2)P>?N)NW?6Q&5kylr|b`x@`RY zEtvyI^q#8IKZKO*;HPV68y63JzJBv~#2zUP;Q4oZyYgooYslBvLmMHgG)zt=F0+}s zV6LpEwze_6Y7t=G880s#DDTo}B5~;yGis+0eISxlYZ|xfn`~&1jQJuN7&kCUqHs+@ z#p~D&3*BCEqyFohmO$|LIklYuD=NFTrNTU|h<aRTY`#+8EzT=3PS<U+!cB!ls`wGU zBq>rb(VZtH55;T<4OI3b6}?`gjtZErQt}VS$dUrRcA%vC-lY?v8msC{I49{|S}VGq z)}1<aZ+4P8k=m%Fy!-3)HHexp5V@Eklz+HzMIt%lp<Snb18U<S@xB1g$GlmT<AyJ+ z403q=<Jw0NwR*BY;LL*>RJ-m8W7Q3}b4%i0{L-pU6%PlmQF<9Kl!10Kb#Ij-X2i;> z8cGOp@C<TuWqIe{&26+YA95QbTB5P9N;S)crDt)ELEjR2-zw{+p|btYz*SJmA=x@6 z?5rYuH)>)F-WL<RmHk4Bdi~0m;+O;WtCs>4cRA>$TeWd!n^wuNfkm@J%|A<^rU7iC zHPg`n5%4zJ*_{S-tB2obXWQS~cia4ecAnmjPE8#FCW;r!eR$Sa%q`xW?mmqU-cR+i z#n)Z(FECpfx-V;hv@RJF6<a6B?wdTk?k`{~9tp?qIWurTO$&a69HjBPr$=iU1r<G% zezLOU=S;46pPu*DI*3xwY{;3}I(S|1+W1``;t6vm@P^^ENDgQqj7iD}two_H*$Nkg z`j_s_<w9;u#+tmf5!9$z(x&oR$A3GWPQ;zW_$x~dHJpSV%fgeq1gnlwLr5B<WNEL@ zadro81{A)@LQh;fn=28Fa1EGH=T}z84Z3f3d=u1n#1G53Ez$OQP}~x1Jo&YoX*K$c zD8cl0ZJbpyJO~lK%i`|b?U~GT;$^%LOA`@EJP8HGEQOrB*&R4}?7PEWW$7Nb@{l+B ze^mW7JI;D9g*@JT4bzkBDeBj6qFl-R{~B+xuYNp=MwsKAGQ?BO=jBQxxWuy(euhN6 z%cGDMT~5tw6snJz+%p6cd_XmG#8m2ftk0bt;#1#kzI`_}sJqc=*XC`fhUTH2gse=* zCMi`;cV{oHVO8j$R`mFASM=1>jf(?D`DS>vjnq(rgliE`%C+<o=P!5{jItn;;H(mO z!5pOvWBaX85IWXr6ilp~-W##z@cLJKl5G7wj<{#Ir=bkv-5-5J5_My?(jbq?{nO)b z@@AS%fo0~{6XwXQ0P09s4loFI+FFjmO7OTojnBq8q?U9iqavAnMC1hM`vu4BK1pdj zor>68$E4VTSy<0zd-4uayxW$d3Z(!DJzz4mGE&%x2gbA%#n)TvvIRMJ%Ad?HrN*=? zT%T#dJvj^1C>M`DxBPe7x5iJ(H%O5c845TgDU?%J@^l(!Mr1KK#;*g|S3{+DBoE(6 z?@SPYcQW3pEs>AQV<W<9n(*d2I!E+jt{o}_O^IX_m75B{0vimICDYyzssNqpM|Y)4 zV}_~AM63CX?#KDyo$P9DBIEF7_MH`SEdmt+x6)ywK^@2O)W?FR1)yAm74KTtV3Ak1 z0x$7vJ{nj8I;YC5;;*YSz2ovv2e^Cc%!TzBZ#V#8GV!6(4O;@OQ@<9|Y#EY!zG!1W zK<no#v-5IeV>0KmN_-riMoH9aiW&{+?#X7w^Ef}xk)xu|)I;qHDcWO`P=WJ}rvh?7 z1Bd3IJsP9m{$xL?Ec$7tk#c?D57(bm%C*x9P)X2v)ug%&<_^J}s811bXx6G;h$}Bq znXGcNAE)mMBOFTedE-c>QGIol#1~f_wh9S+&shcFiETGadEz&x4eBF(%G$wg^1dyo zvn9bdiVGoFjB7)j07U!i@4#AE!2ngls`pDqSkTnIFgLX&bD+9I4hf{dDhJmTIZa`O zDOcAzAZ+F4MF=4pJ^V7C7g0dZXRq7y&&wmb+vCgq`>i~z<<n$XpHicXs0hzj<PZ}? z3%285fJ6vFjClnnS|?{p!$Hnd-KO=l0aPO6Fd@ToN+F2Xuh^XN_u&$#l^hOcMf&8G zlVYjW;M{@9*;R8Cq@-v}ks3)T9k0)Dm<`NQU2A@)@)6c&NB_C-CGdWzrYTUHBcqSm z;T3AL(m$gvcGu|a$I<(`q2YX{RvacIZ0xkI6ZLM~HejGHv4N-q6``zmZ9+j^QQEH- za<W-%PR0rHM~EV}Nsep*A_$|?7*u_JanTqd*-$>pT2JmDI=wTuA`6RZLF3izCs#zn z+VkH`*@7`c7uKB&+2RE8R@ee7w!dGVPlulGjy@Nj@0KpOKaWrQoFl4z6%p`$_xLE$ z6%7;6x&*ija-dA*WYYAaqNmZkUgwSpIezlmo@rhkC~)NA=A-=Q)-9lXkC1<t{hTwl z=^oTns-p&?QA`jpVVsrxoK;j|$t>*FhZ$0f@)<Ba1~?L9KZ#T7usGUt{T=cEmEt&_ zy?j!6LSm;g5B6r|x8H_F`L`lW_$GAFIftKUWRh!A5o?Pt{=7<Yv)6%heHmbduyWxL zxBqMBE&fLsu5|P_y(^hI92KMI)z+Iw<XwtbV3+Ev3_MuAe-4%!LDn;f<Sh4}TuPR` zL{l%2+T|P(uA>G52;n|gIBL*%kK~-apexV{EmSr;ng7jeIVCa$Onc$zBbph}_~Me5 z%BBKZ>O@dF&q~r>v1k_+Ykj-vE#pOrOOXxok?|5Qh@?3RQj&FKE|tL{QKHx_a|f7( z{OQKmSu-4hHO3S8n#6vos3n|e$#_4){8n6i<6E6q<=`_6xk7yF$)Uh#P#LX!(I6(3 zvPV?eaCsv`9x;VA*a>E&2}as25m{|Bt;gMXfjsZ%MEO|sdE~8pywF+=eF>9it#EoC zOQmV847A4Zjkw~VGBag3dPF*oPKl0K001l9U+TQlM_`T8XVEnn0$?>Mw`}Sr1i8Rj zI@;YMi4$dFBqwEE#5wxTS@ZofiL60EtvH4^uqzqgd}TEv_W3id10O@UBQhfM-7y%+ zv&2LG&T^r6)o*t`tR1M)JITh8MfaK^HD0-?JbVa+h##UV)X(b^7|Xims-Cdgo|-J% zkFqE8q{(`<E^LXPe}35j81<SJu0eOL48C@z1>RHqMvYTz|HIff@Q4BiNsetBZ*1GP zZQHhO+qP}nwrzXf%)QO#a@kETyMN*PlCJLR>Z+CVxAf#biQ&_pX)~zp*uJ`^{n8d* zjz&BY%#<)de@n#UA^}|Gb{ylZ_H;o|i26-~t@o}eEMq!_F;$vKwIJnocEWJ^cAnSV zz`r@NUUAo#5Y1w_mz>=&CBg?g@;>3W1yIlO7anHK<qiTzw4OO)CP~(d*&=5+HeIFb z%swON@<i-B+PGQ3$KB*1GM8{Sg|kaubpiw(JPTTe`gvn(nnInTh5<t;hJ?3HqM-t( zMb{#ksstba49CKt;JruUBICdb)IyS&;z*z4<4oh+zqLzRgLx?yxa1TJyldskFr85~ zG&zwh6}G6&Sp+fnl-iNz*a<=bi_P>lCuX#PD`jno-Q)hY*ts)KBVs+J%{OYTgbhp^ zn;Ft?-xtf6U)PfSd{Z?$f6eBs_xYE2h=+rZ9iYelKHR)jYP}zLHoknH(jEDIT%zGt zcbvHU(BZuC@Lj-OPfuCo^*SfPw7gCD)Rt+qLRXqvh=HPU)7x~4>)qUPu)?>FR|>t# zT-4ir9=fBgbaB=g|M@8}xyX$PvoN>1JoxQ(8yeUi)<e<A>55Gp!i?(~ut9=pI~ez~ z(L4EaPyi<k^Ef!TIbV9co%3qSLFGl>ikbWx&daK4|1?)!`z;B_t~&imw!GO&YP0t1 zysDrBPm<t5y9C3gT|q}J#<M!Zu8G6hoVn1yRj8Gu5oHq4v>xw#<}EDw>NWZPpg@wG zPy|p#W}Hm;1$DWF$N_M7E)gYE1#g4oeiI*{o$)=116{m}(quNI^MF*AZ^vcJ-+%Rz z3yWouWM!(iP3g0cF>1J)kg2-4x`<&7eCeIDziu%PN^{qAWQ?k^SOY5dt3)&C#(=?d z<!;^M8b?Q^{~HY!%4nk~>~}*?z$(eQ^MSPx&qekd<Q#MohkSpb2G#!72ie|6s=v2d zq+sv+czOPwwm-8lLU(3{j{g&3XLpd=$Howf;^Q%r+t_8ZI)jm3r8xR@mTBTtA8;IN z#>7#devLsYSH?riB}AG;nDm!7$!Ex@bL(NfO<lU-Cux9S28Fczz0i5($Usynqw0e} z1zsUz@omH5Zd0nTv>}2hQ{2+yCB3rRX_AUO+MmiF-!eO8=4MZhFfv9_=5?}>Ac`ml z?_!MOD%M3mE)x7nmxbkL8T>1aV(7@mGaq~BnouK#|LX{D+fSpEhX%=WE70`G2DbjZ zcS{-RS<r{+;4J_Pv`>ExttzWlr>u4++KpyBmbGtu5)4f1>C%yXgKA+f1V~)8T+e0Z za>VYu<ioXN`W8t0<3R9-ya=7k3%m<_wR^uLQ|HN5A2z~7k&N|`q9RMVUNMd_Q^H*5 z#KlDOmRZU|Q(vZ+1$hNotISRmW<y7EwXsIPoG99A<u5Wa%cjIRy48qfK0sw&OrZpi zeRiPecWp~n9lk9C0Bj74XHJD~jXgs(7mk<STl*diI_B0V6uVgM4OUNxt{?glp3lUc zgl$$?irJRfDZ%(m>*%u&SD#_itGbY7=MK`69r1O^Cyj_`&XeewRpCr5J@Kyu-C!sq z#yux{m*=`>jhlQ(ITsjkm5b<kC}h@(owI3H|6x$DB%jg+!1P_-ecsU(K1BPT#@D*k z3DzPAQ%(YpR&T)dvxWrX(syp9E@AxMLJZd>5(m8ZC~#Kyt*Hk?qFuY8PQiV;ire)R z&!Ot4(1gw30Wj>Ti_UG&C;lp%qfD!)ml>=umlhXp{Hh*0%X%XYyuaZ8b)L;}X27Bc z2LQlA{9nzpE>70}cb?5r({kEkMe|*&W1r%t-Wa#PUYD)ZxVd({tY+CFogHnWYYYt) zmmkao(EyMxHhtXlf&+*wrn52Qcnt@!zuoH~h%CICvTA4V16X2}siDb|wrySHS2?qx z;8&HQpe(2kXxtr#v4-ua|I<VOU9SbGQN?nb<~3iVsA#kAY1h^QWI<Y@{PqXD_dpR7 zTE%LT!aijvjpi-yUc;Pd$HF{je1kZ$Z~|nckT!m0GBSteq*IGR^PiC@txTIdo1l}{ z)zF)PSk&!|`i|-A{Yovij@clNY-UdeN@s2VEjA+oH65?CfdS7KMfX|CxSgi+7z!^l zn#-wqv{t$_X$LvMO5mAA6;^J+iUWfX+|<i1R8yv)!UiTqV*kP(&x#@?7wG7^B`ctJ zbA64ffX3;@uy|;5H2atV*^!Cqab4hRBJo8qn>Kbrs)wYl%tW?w@`yMzS=W+J#C4#t z^G6(SDJ}8&Elg3411H244}#SrbO;xS+O_biW-l!$P^kNNKZB=y6{dBK&GhxVJ5h`Y zwnf`briqJ-_HE3>)pt8PABW!)54zpcot~K;-R$1|(^C`^ZRB+``6{N{HLaf~xE8bK zd2Rt(h=s5z#$e?Rs!Nq)*`KPHQw$rP-TM}9FOO`Sx%B&CYpbfpriH&~(-02$eUjU0 zD_(a%p2o54p&v!;vV@!+?}U#ihG`L{K`6+YYn^8Zg73YmgEa<`?4?s18&E%t;8G58 zYYR8GG686!6EORr)XQeNlQ@*IkgT98T8w!-Q!MHC2yhE4D}N+Q?Gq7}<lY(s1P!5x z$`Kn;=UNpZ^Lz;}1kXif-2wl&sQaj0K_xYpv*>qPGuH|7ukTwwomUHBAX?{gQa#}o zDx5&z3568LmrEsif@U?-LJ?K3Az&8Wp8n&xm8>pFWO<mPSJsAjdB~W;i$HnR)YK3| zZ4mLi<May5O6^ng!{js8%EYWJHo`xX%lUl2*OmO7<??xR20ik7*|C-Uv_9$cYE*^d zzqPLE{P6!p>K5+VEXEK3xU$4ZP*G|RVxjn*QOkM{>-KXw;+_zpAr@dCQ+e(s0S6IB zglwrOpf2Nra^)0iWzlf@O5Xj%sg~~(m41g=R*^LgiX8urLj^_%j|e!mAUcp8lKg2S zgCc;xJUHd2d51H0Wanrc?|L9C<YX?uoE>{GGQz1%%)PqPd`?z**6;N?NWQMqaqJtj z?(LO8zq6zLb>bPt9s#Awa5r}<bE})CABTV+f=Y_2o^1esU!BKHCx&53mBHERjZ7@i zMND}eM@4`B_CLVaS`nxy%i!kb%rGWl16#~fnDp~;iTH}eJk)&nEkKV*_)V_-!g--z z>lciOyjo?w$#=oqT$5KmH(E!pub(!kz!?=c30JunU##=Uon|g+jwO{vdQ8xCQRzaV zbmfBlhLr_`+*x~EsiZpD&6^9#RuqK}HDTBq<%Eh9^v>#&w$1n&=sfJmtxlAsA1U+9 zwR*?v*zj<P)s3cVU2xeNCQ~lWb`zT_^VNJGGYB;-v0Z|}4hl!c2bhj&`1<1gJrkUd zLkjD-FVBMBu@AskRXr4db|fPEIWZ@f!6{dC-HX9lel{U==ss`xpvv8$(mfEC6e7iY z!BY;g5*gokL;Sa?1{XDv;fdgk1J0z1#e;^!?pB&?__JIN8zjO|Tr#mP)6k4&-nVR% zF@%L$LuJrLT$B7}$eM+7xIU-yaC;-->9Bfc8WxT0Iw=cZ#Rqm&D|GdDA_8BAQO~{^ zOM3j;k?e*{O2`OkJOAgM)2mk!4MN^66jJh<**>!217;}JN4~CTEaYLRY>H0}d4c8W ztZWJKe(KxfcxhY~3qRB?R6H`xB(|xg;T)R>|5}Hxmac4`QUdYBq;eQN&GHF*C(<}s zQf?XNaFBb+w%b<H7E-g~1RL2Y$L7oX{1)OU;!{s>q0zp<4VemoMzq=zA>S%<`tktw zl7Q%V7=~qN+)E>`6?Z%w$nCy#$x0+U0DT$H{OfjhLhA1Ja{(yKtYav524T_74KLWu z4Tj0ioj02(-H5}Es<ZpxDn16SuX%Cb_|Wl`;_pQ5OaE=r?(r=1oi|gE-(vXTju;qh zHj^thwg5hzHLYQAwHOIBn?~FoaR0vmM(lz~moxh;!ut@%L8<NuUI#lL_E>yUOf|DF zi&EsF?N5|g*>gYo_3M&;ezb*w-e)U0p^|T{&y|Hkx{)7j-7vCpzsy44KQacfGh{MU z$}}=WW+Fu&rH4$+z_{-m$q_%cQ5ibpF>l->;fv*3Cda+B|6T!2RM#9|b{Z%+vp^A9 zj5pnRBwV|7(F|qX(vlf5VY<F%!H#j8;L7|6zKEr;upc=^{)0P^evW-Pp>K>Lq6h5> zpX(+Ox5nI4E(ou8W^6%0Sgq&;k#$Rextkc<c$=~>vd|a!zv3=^(PN_iKlVKh6aawg zf8>#!oE=?^oLwCMQ?H%GV>LvN5bE|DIi!JOFMWYwUVu*lBA6OnE7&mC8u_PV@n34A zo`!5B-{OFA1lq=9Pn`4N1I%kleLQr;{%Q3oQn9###&o_aCRRRDz&sAk`F3BoGPlc8 zDNWP?atx{_D3iN1p5Z>_lSy6Io0JR?mvCRZMqf>9*NTVG$y)U4a^nspjOr%T;_0z_ z2W$ML5lI39BQb5UOdx?cNgLWKCA#Fig<qvTraw03X@9y9#^|3Y#=N0JOzMnRCngw0 z8<gNQdkp79k~R}I3Y3^c8JT74h18iY4~a8pm`xYc)O>io^u#dS=2W6h@H8|ph;Gb) zJtf3JD3gdP6r#NFf(Wwck0{gXHDiX3iJl5CaB9*wc4Bhs*>GLfZNmYHZ+*2Gdtq!< zjw0H)`{gCd%-;=HSe}i}ksNcj?zxLqSV%Xro%6PI+Z~99I9DSQ&iGhkp^$9rwQ9%3 zzyD2Hul@?G;0^@<Ktl)sK=wa<l#PL-m5Jkji0W%JZ0xq!k$!IV1}gFY5LV9L?ifN7 z(eAtUgy}!EN?_s4(u1g$8rhgANJ&UIS=_em!R!f3I&M<Y;u}U}W6r{a4Vj73O}wzy zO_0)I1njv;K`S0(QdzZ<+H{x(GHZ!qk-D-RV1F>ynS=3>MN*TpNiTEIk<m@aO<bkV zJJL+->ixAeM{*oV$KmGqsb}xfJO`EHAZ52pww~v&k6iN@8UY^PvKL_Nt%6#mZ#0FS ziQ>$Ve$*KOtyh+o&u_kK@u-B_1h|{+UW0!zCVG!$hF8(uMdIP6!#8{kKm+}&?2p@b zs(~Cd$@0xtheaQO#?WC)mHn+=7$GS+li6y?4sNoJZZDIe437#*=3FQwsGFGhD^hlR zeUqg}3i9K7beJ3ILap~h=&n^UmV{&Mzh@yMyF3mGVH8D&nWV{XlvZsURjNwl*W7Jz zRVCWrX?d(CeedKj395A0lC70&_4ZO(P#8g$z)D&{m3oqe!@5B3r@g!IM^7&!B7J>q zf>>t2z(Ug0m?8u$^D{YeP8!6rWS=N_mXvPe6WAIb)njIAV7ah+3Y5;R+IsdpHp4>? zVP27*!vvQ>x`s5#spl&{d}Htgi8^{=T1A?7;0IuXn95uSS#IJ!6pcm;VnBphWeOzV zJ0}exIWh5?n4%+0XTzQylEK32S)u2|rXiGlXMbb=*w8`1*Y_`LgX44}5$$_zh>H49 z?^KJ$QoRo7m$bfrA{Pn(SqQ7~jD`*#zkOTEc1yR1XjpDto<eXk{hk)q^!M=mk4qb~ zu$$02Iy+6iM^0UaEWBc5la^4)?0aT~hyX`osYeEz1=ecy`tW2w1>Q_}w<maWNofio z3~_|xfV6@v4oCf+X0&n0TC7rk0xC&tNKX9tN$BvC%&Uz3Gx^4na%N)beejRuQrSJf zEDx^mU7##&uryrPr(LTY{frfuD(hJK$-G{@T070E78?R5#x`LmO{Q<3@!sJ$B1GwL ze)Eh#el-kSb@$WdZ~o@Y_oMsIk1^mER%I~;ScgLdH|#}Dr)i-0te*%}(%I5w!3I#o z+=1e&@j<RfAj)rP$nxtpXCP|ys<rbiM=$Pnx;>28*}h|-6Kmm2IDftjY!TP&Re(gd z>@vcxaD1`u-<vx=ufRmvdGd%1*=oGGBn|95vaKeSBk3;-LZYW?74XrHc!>d9i`V%G ze`w8lS#D#?_K#Dtv8SpLRFJKrN!d{iB}1KxJN!8XrNcY_QcQPC$xwrZGL~CMiy8Gi z*KK&(Gxm^#r=e@PSAEibBS?W$%-Imo9Uo04#W4_iMW&m@<X0QVsmywf-q0+JUoph& z$E=Z)m4^?F&x7Ydp0lP67}oPDPiDEh>!k!APlLRlr3DQ}2w(LhXWx&nLq?u4)a@5y zSX~Vd3-<epqTkej_|s%U*O;u22{CDPS~%z+V2WLAE(o|kaTi;&!zebXUVgs5e{KMC z0JX7SIv})lXczR8MEa22IHX*>d)Pr4BY1?up5mQtxvtgeh|(UkB-tR6YZl4SpQc7K z6ggoEK@=kOU2sK{q|7KE%ceb}{B-kquo%Kr<33(Eu=X>bRI-ZDn=hph!-Q$jJObll z!>R7(2WARfTggT*L8Z7bJnK_Kw(JWe<P#i78B+~y`uA`7ukkALJS!<9OTe#89vVQd zn=~i1mU=6@nD+Q%!1SvMOh%*g*Q;O(2WYx*R{q2pJER!FmV(xxI8s@%#urdTYos%p zCs77h$2NGfic0jL!la!nApr_XClYI5y7x|q(8#4!Hl-rf2Km*2`gg)HiXZqhVgPN= zy0&Ob4+^SU#Z)f%6D_9Sl5`w$tsZj$RK7)9U*G~i!+_X;p)r&@@G&)N7m89j_RTcW zr1tRxVuz<tY>$JOSQ)%&ktzdTApwZ(5(Eb10h7nwNlhg2w-nerf~f<h^_7wAKhJrT zj7(Ift>~<DSx9-5i_f5v(bsSkdWjba?;4OC*~kn+Tmb+#=^^d1hW8*N;}`67BH9%= zCXn=V_UM=7#*ABw?z$%dLo#M{(Z(e=8_d554mV!yJOFPf)gh;(kqlkZUPCVpFnz@c zR#&p`8sJz7aROrFnz#-x&=UwelFd!Y(=IW5Jlrt`1L8d3VaEyw@UkDNQi#EF8-vog zNra_=uT~fSEmKtJFOZfY18Ia}Wl+YnhB{UOcXI50aoMG9jprOjQ{R^;4XC-LO1E-^ zugG*6kMmzNk4K5Y%<&lNBnn{bW}5z49HQ$!Sd{O33bnhbXWJx@U8sl<FaW=WfL>PZ z3{XoqY5qwkq;J!2Rrs+U4pP!nr3SX!uoc5dmpM%7l2Y816yr<s$rM;BPSO<k+3bsI zH%)Zt*GAwhZ{sC0&r8DJ*|~nzDx}tH8_%XE9z;1wo3Gr*xstK&oQ3f?UV(lHt~f<x z9u$*?h!f-`3s6<i@`nx~6)iNl6QH5(0chCV6fwnx)ctD-JV0>$5-bZo0Bh;uLBM~< zy0n_w>6U*>AYqHn-_{`m`HU?YAyGDO?wH7kE3lxe_Nqm#i?jg}*N)@qIL}Rp(OhHs z(as5`8hB^7^L`G5=bkYe+cL|AaD~P_e2i)K8aqT|NHIkHI}wGs)23akDhZ!ar0g|K zTG{zD1+Tp()OXi`!ik$!w_A;*sZy;S_SL<wf!87N^X16$Gtqxa8Q_mDz33w0ZIC#S zEW~4=sc-42ZghZ06k;L&k`XdQ4U-|p(%t_Vg;wP4b8%D|A=`4dft(Ym<P+J9y<+ve zT~cLK9@SVv?PC~dGFN%$BLfBjRu;BObrWqmmExCc{(-Pq2!Xg{p-#P^Q}H2fyGTE5 zg9He(Zoh&mKCK>UBtXYhL1Axo|Bfa3%g0fy;5{kzl??fVLTrghq4sg+q-$6?93b45 z2jw~jl~i^74UGUJ5snu7U^+9DQ4IK8B8ftwwTF?AruOWHV{#*Y#FH%g@gbx}>V{Mq z;{l;_^oA;(CA_CRG>em}@h@M)Va2C8HP-d5)F|<&hg;_g%*NqdnhydY%o2&iDQI*i z`T2_r08R8<27jSoP3Y*kQ|vsxD#77$Hr3Z`vJBtClatyP-O;<mC#U3$OU+1=y{1Vx zsFo+QxN-r3ri`yfTR_*$R&skZr_i%;Uf2h0^9yzmr3p;`9b!@_`n{|d;yeqS=}di~ zh7&XbXUT?8r;go1o>1cV3f~v)T8$XV{XMT4jKj`|cUr><Zv|LCK3$v#Vu%hFWO7D7 zSSN{2L-9UZI^vUu*iMaLz%2Y{Y>vJsa@J`-&O3R57vnFGQGUR#7Ce-O^UWEvFjxB- zk2P@-H3XU_LBVE|gd3_ZWlDXo7_X=R&-b_`g02VEnJwWM#=h`5&7a><v=>ICf6~m} zaZ=Dfwk2!@hpMmr574+_PlWeeINK({&}H8UF(1x-rtc(rg?4wyIV8Pcg}a_`ai5`Z z#2Qo}vU=l55|jf>s%sHfq+it*J5eCtT%JAc>h)!yK&HPqw+T7TD_Ct?BECri0B`_B z=s^$Z`{s{&|8>eZ&r<(-0RsTgM*9Drh5kQLmZOP-i-n_!jft)Ee{`@ZYFmz5tO!15 zYWdGW6AgnBoEOrf6-V@pNtT6CR1+P_NA~)NjTwr?K>Q6lW52t={>A)~w<2_Z{6{u+ zf<|r+{ikb{1X3+VA%2ozXT(!!)oIlQSv>~X6V{@|N7VvRq<A3KoCEp-5U=9lqobO~ zbATV6?wf_obIlvrmX;(*36w^kkMsAUM3>5y)2}#mQ5N-wfM!=i#7ze7{M)G6HBhQt zMu~|albC0O_t`Hjb?hM*E~UhCPt{h;hnlE+U{;f%PpLf`{yf^oxG2`bD-v=Ucc;>0 z-6{&0uH*v?l^C%?lCoK8pvX_y3h?7q-=UO-93wjNKOSPcK=}3;x@4SI7l8+%Xu*8; zPcL&mpG#|?@6e{_vN$2Tj@ZtejRlgOUcrw>G2o+hgV4HrrU03O744#JOJe~QayNu2 zNpxJZ`(DV^7k<m(sF-}yXLrYuIy_%kFA@s%s6s`uXcbQ_C*syqb+%`zKIL1?m6gtF z7%M|8&h;%(%aC4gk)BwOI9~YVZ-k0uqi^3?Qt7O%{2IiH&mXccYUXbHcbWuXT*t@A zw}xLCCQ)RRL{0`~i<lk%b5je%nsyi**swb|_ZE+33Cbn>lW&+%%1|gynO&5aM*x_l z=$|)`C9&>>KT~hB-{G_dKWy4_Dh)B`MjA5`b$Yl@oh?k%blmc)A?52-!G;GX)U;?( zD_vyJ$A%X@<wKWMWneLUb=vIY%6mC8JEWm^x0Kr@ci8`u^JBrB`Lg%AA`mCrpw9Fh z<i0ikNDYDyqN2zOz?z15yFwtQ>h39{!+VVtG6b>J3Z0v^gc_u?P_{vAP0ca;Q5=Wq z1Ic|m+ZP{2wDzX0ZD!4$2b285R34md1W@{r&!>`&(H_bYdPLNuOqngXTm}DC-kX>k zQo3Cii?iu4#g0nf|A8P=nolOW&g1vf+}aHHOK@uWN7UX0p&0OZFFN7Uw_M<N$DBLD z^MLu$DqrB4_S&a5K-2A-Z)nB+DB(|+$tn7xvYHh9(1O{O_zOv6!fT=h<U8(Ti}+JT zujE*`k@3$ll}K;en4LxFGW4sVtes(sEWf_CO>V9Tk9qCH+oV);$Xe?G#&b7(+D!<W zqCa;{l100`yRN8O8YD@fQ2dNZ+IT)IPzSQdpkZ}$af)IO7;ks^Q^6J2uhh%;257TJ zglin5)yh-Bw6TSGBid%<vq4Ks2Fh&&2X}2Ufu}rhxM@MIkq1zdCFl|ab68UYW34RT z$)8f!;@IoSh7(4doY9w3uz^(`CZJDNHn#Gs9x++7_$7CwzrMS9!a~PT<CoQqP97^g zFPiOJ{Ts4C&5&lOQvBDH+?%Ru&BVX!sNvu8g)s-wq{8zgo~f{F&>oaZDD8daw6DS_ z$6!&Q5+nxCkq_5!Nzs6OsD?x115IUfHcT>1Mz@(~yR&r4C}}0Dl?^UBD+7Y%I&uqa zD?Z?=wTpMucFS5vB-SaDv;z5xf7*vl9cnr;Qra0RuX;s+_eu|#EEoxpGof1RzLWlh ztx9DYyUES3)~FY)Yw1L(%&v?9W;QK3q&=J0vL{LBGqszZV{@2m9}LmQ@iK_{r31f_ zswBzW$w|^bUD2%|YNNAV!c0qyTT#l5SKyt(kn0Oj6{+!~D!NrR{2>&r+vHz@ZDa*z z-l>;n^RayFvWS)&7xPE<)Ubw;-U!dRcA^Joqg0gcs(!ZlSQ$bdk{V1Uj#begX&_T? zy<Wc^4V|hzTqcv#O;AW+LdM-R^lif}$8W9Vd=~G&0s4BeE!A3A<*I_vr-7xUe{BhY zrFhZ8%fv9LR3Rpq?b$op%m&qH;5TLZ6+0dok^3IFN%TUi9$pzT0A6#uEI6c;7q)cV zXQ_W_PZdw|g!2(w0+o?KGQ#V+77ImM!Po7Wv%3b~b+sb6cO5Li!$(%*3EaMg1B|yT zvU3dT8+n+J8~d91RvX=MlqJ*20pBhipbmoMz%$vc-J!&&*~pfdzpI+;^h$&><P)?S z$!C_cUaJtp)!f7*1d`Om)3m)vQggQ1^KuIA2d#+M7G?QNyWO3s{Mn~v8JaNetM%ko z4KGLL#F`uy5Ak&I^hMP+)x08ng6@M<Bipb&awxfMVp+a#F^3*3#@JF?!c(5je3{I2 zEUsDD)t~_TNyZc<`?vTVK1W(ufxn!*^YH1T#rYE5;ARO|8Sy_fNF632YsbK4lkX`Z zyMHx~FuQsA`<jwW;MVgmo|`^>uWbR(xx{*_f#ltR`Tgjh=Pr-<S7NZuf|aA*M9WY^ zAbFf6**3N~?Z(+yZw(EwZYmhY0yuU^QOW^_WDTK~-SbV+nf2fIjkK<`+qzd3?&VE9 zxW8((Pi+4cKK~uqf}LXl0OY#-FP39Y_Wv9eOfCMC{<-1#`%moI(05hGUp||jY{9)% z*T>DHRB_afJJaq;>U!isR7DMuOD>Gi50q~{>iF~8hVK^EGZgR#w@f0-oHP~!?>`iu zSFUfWVGCJP)v>gV+9LPAACwbC+)^qERUXZhr<IYJQm8DIowY@efxO&0q!izGpzzpY zdli+llZX5Co;Z9sViF8x26{a|o6!+PYmy5?=w)-cecpey<<#e!DygwUVKI~~HC8p0 zRI&Zt6jT*7b?KZ|%FSytiKnjK_X)amQ&o^jnwGyk8z>h`sh>8v#{rDa1WKmuu8Jue z4HfXUl}}ujtyAv_7x!S{|Gayo9(yoOt)%n*Yv^EqU7`55&YmF=PUPqsHRC*6to^Yh zX7hR_urSo_!`39@JeoAI=<QggUUUizzH9u|#=wh!MQL?e>J5XmGf_+uN+fds=9jW% zo^#9kF%s#OizM1U_pZZYiA@z(t_%#Yz4vwaV#&C#GI33Me0}fRjX1_V9F^NvJ^}xg zpo808=z|5nWeaj(rV5xN-K8!9Zi1{!l{WP^z{|<upxUQEl+Vb+$H6J~P+VKEZ~#uu z?9;7e?iyES`KFyvyYx^=SvgM+=fQwE|CI}{<z}y(G2cguhZ?rVsj*BatE8J!;RWaI z<j){4vdi^D{`(LIZv;Il{jH){<+^IMuj$DP=o*vf`*K}(&rftu=AAqZ@I`E+zi+}( zcIM=QC{uRt&WXE9*@qzlFKZw3ohpp$*Q+v9Nok2hf)R|QT%n076X<OYI#mer=u=YY z_}U|xl|H-|xM-D40X`nXn7B7MjwMX(im+)QlP2Lqfu4do^D07u*o(BYznj3h-k9o> zpzym~9$kc_s)lRDAB@Skq*H!?k%B_gAfHrChYA!0um<#uWijV+QD7bL5DieRnD9wv zzSpJNP%ViNZfdj!sH6rpU#_yVxN@G)lo)Yyb&mk%4iD2$K44NyXOIz0IIh<LHblQQ z&)e*6goZw-OMtNk)nY(*YqWcAR7g#8Y@$(4|Cul4=eyl@FQ*x3ZyX|k12g-=FuA8* zd%3;^DR0<b$i;qb74phTrH_aSy$cjvpU*Kbc~xP+a0RofSTFB=DcFxP<UEv0V9H~B z6<f2y<;3##K?_Zi-@M67ZUEISQELwl9R+4dpzSMj3tA*idB<5P_3j6RC!ApSoc>~x zs;jBr{^b@weGm^*_7Yz1^7Y)DZpMb$DNz&YhQeF!>gl9u*#%lG0Dl;*4h)MLe>x<F zr&JN*>1XX7%+#1IC}1M8s*W1cjubTT6*MrbeF`=2vRIsU&q86Bi)YMOu{cFIh`$lg z??x`q-0OquS4mu@veu~!BkP0hiL>+NkI%b{9Sw)`8d=tj<rsuB36s-d{^_oeQgvdl z55b8sLeH)RCwBBRut^9NgW8TGS_hbad1*a1YF?FIT%pODc)Oc9%vO)YA$v`+8L8U@ zcjs(we{lP93@k&M>#g8}!*18V>w*}Fdazh6pNXF`WD7Ncyj(HP4*(?RK6{ZItj`&; z7kR8HQ-&Xg58$T@lm7rn`pwRXIsRh%WcUmc1dq?>jWevjV*ni{MiUfW4f<fcyWBa* zTnl=~plnu&_PQY?uTL1~Nj}QWi9gX|{i6E}!!8<RpWsYzbKu!;Ys#{oK}w;>QoPXI zo<Nl<)8c@?4<FNdXxnNR?j@=hBT7rxO$PU7(gm$n_hPb<eRyz<rH#+hR-|0pA_iaw zj%WvIP<}w;Y=JF9+O7HvE$|d#SuM+2td}TAQus9%^Uo9t$^VpaEN6h<5CC4Y+tDPg ztOG;(0RfuSv=Ve;GqlOk<3|B1uWfyH+fcxwqH@_p>pt&&$>BJ!%syteV&Z__uFZCO zz!HO3BDOoHt3gaCbGds@BbKB2HN2&Xr{{7o;eb~@k+O^5a~ax#?spS#y8$3?2^B5_ z$5W^h^QcJE#HeT4zc8U)>kLf~A#;lN&NFHaH+O4Jz}Pt0qE(lkv0R({)6yOwuLTc# z>qgzN+3ZXE@E}f#bFW-dShvtX5P1NOT{;Itpg)5Lk?<@4p{htFrid;Ho1~xQTwYnG z)AF4EE6xuFZwwy%+@*DQdEfZaeLhm|U#y`VBxupU6fOc*D*nM1q_Z#2mSJ&3Jat^j zkJtu)QDHnQ`KQF>(9k0QK)ddK!u&{&3WZFS3rZ`H`fhDwiac9=PVC-6qAV07H8Bq1 z@FvZAK3wQ$#Q8?;@y>6K2`dtdXJ(uJtgxb??&2b}s>^CHXZ^d=#K2&yGXzroi6)UN zzR&HBEP(^uTlJcC@6Ih%7@kOrC##gFx>FEyvRz}!ydZA5XV#1}l<=qIoeht#-4!f& z6<`K^`|C#+F+vQpbliQm6-giGcA(@ZmUqE^AmK1D*?cy4*=eUkB*m7N2>mT3N=L%! z6clXsdMJBm`4ZsCbaV+h!-oD!)WFx}D+_AH+NITXuoVBU9zkF2ky{{aF)=Z<D}}Ws zu4vf-+PX?!#1nfyh%c<%dQo{{mPLO+dqZq_HOgg_H~(@L++oJm2#)zKLBV43O#swl zOGE%sFEL}17G$_U2&DF?+XaH5*(_o20bYNDG2Qng;O66)S9T8BR4J9|E?T9o$urE3 zhiad6ryUvqZ_Sg~RWRmmN}%|6h$||e*&yvht*Gk$ZSgdB@r(ON%?uI3OZ-Dlzv#Is z$C(D~{QzteVw>5*()~Qxo9}g%A#U|KDp)FU+^Lgwh(GZm=K{<|q9t?e%8CB%c6c?Z zwbO~1T4w#Z(EI07DbtXVDf=|7l?}lK{waMov@|>qeMZjy#hlzDwc=Nz!GkKS{2~i^ z6yV8}nBLgFA2Y~C(z2mR6F2BdTVzRF$nS5j!Z?_FD`K-;SXs#68%=$2zi&D`oP2}& zQea`wQ)3d$<B)p-R4q2I^VBrMa_w9gtAM<s_`us4cWNxBz*DHUO$M1QtFVDdo&y&} zbhg8vNbmK!q!g5F2+vp70-C2L0(!b+E2yEt>o=HhgHnaebXJMX_G$z0g(X)aD_}M% z`{Ym@uY!U?1I7~bY#p-9)zuwg%*@tGROt|I)h9!)W!5<9Y`ARNBj@MF`y|RieM7Qv zg<pvzx4=^UOMEb+?9W|id%iE1FHh%aeAz!ICslTNd|scQALH;Yg{Zb<Inw=5@Z?nt z<`gXNfp|f|(p-8x1$B-pYf8?4x`1WP`wJD#2|P!+9rW4lzUZ##_<p(t)b!EfM-;XP z!OG#N4XR~aIY;%hm6+W_%ZcPjZVP~eWQ!jSAOToNa3wF{RM77;u<>z}FR_@fx83PN zJmV5}@1&-2kpzL$8v0h{4JzBBb;&Y6BM>3YFu6pCv)Md{5N63E-7vp8c}NS=1_rPW zse2+#R1Rwm7@ymd?pdW5{mRkmjH)Tm+dl*ZgF;i1=i(;Oy$TN{PS3>7CvqWNSOWYa zHy}Cqpc+7jlH^D>=J>1S%2v+APK~J;!Gk40xsp|0rGhZ+Hbfk#p}4_T^#E(SN;Zcg zc5c5jY5VF`gdRF2Q(x`{yY|AVc{M6I5TU9=gRkUg@{FNZIyGhZEsd(Q2GMqhqWXCm zp*(+I*n7~fNPTs|AI2tX&WHxjBIKKUdJpcW<^!H!@ygHCWfrUpS6lLdNj~)Vxhgni zQqQM~yvE2N=v@HypAtj+<Q7NUqpy)KBhic)Sx=z&m(!g0$8IK`ZVAuhqfW*v4`l;Q zOp-!HKs)iqahUpth6rExkvL-p2tl@|KvXkD*C+*sCc_$}(NEV;lx%cW%j}Wl&<^L9 zfU*LvpnVPg6)$ikc<GPOe*kakqQ>(5I03>2Q_ww#!-*UoWdo$O07x(gczOooEqVU| z+0wSj_m=bEuzq#>5R8fT)oVq2ksr<1Ey9ZkG=Li#!%E&|<r25r#^rce50F4SwKx{r z59hRg8>v&<EuDlwq`8(yw01hoH1-JUL|Ni~1e)s@aL=*=3rf(!Zk~tFhNY_l8j>%M z^~s7^?0gLL#F~w!xg`(b$GvVbX4eZN?dkn`Kk%Eq_iOlElC4Z5rI2gj>rUSNM0=_y zCdRD!RZMvPQzR~y?zvasfhWB;a;9SqY3j(;C1Y3h%sP>lb}zs(K?5-SYs=Vj8)|kN zC@yuOXoXU&>ds@bW37YG{m!p+jV3X>4)f5X#sAfcbs-il<p%37?LYSeuUxolNCgw; z5uFQAx2u01!QT7U4F|sNIIx1+f1#W+upl3u0vxXe<eH;R;j4Wqq!J!71X%7m;UC|% zn0f^Vxy4ofe*2^GxDP%Q3Ny)zN!UJw_c5BcwZG){&_$#enCkvgYM%IJ?tjSjak%7+ z_MsvpYN9miZ@vd@+!YZI0jokX+a$7@PVWkk84<H;8F2BhT6`?1P%6X`Lh8RnS)_i= zUKSo`A)`m%CVh;F<6Fxkffk>%6}Wxp`6b{%^>=Hvw~4>~06n8*bJb>9z|wGFSwAF| z>&}o*0Dd=!&M{GQ`1lTWN5}l;C~hL^?xkB>>Maf{H0Yog{tIlrE*Vf9E2V3E12iX2 zRj#ylR>VcQrdzK`JCvElk${?k6EDdY)W^Ith`x<G8i@yP24llO7fsFARWXKR<qFD5 z8{s)J7~HLRcPl$_J9+p>9;3sR{7pFAtpQC@xbe%P?;1_jCtIPmsx01YCw%97842$^ zs7}Qw&|if!z>Hclc&>Jlv6hrSgM5HV-XZ32=Q|&mZXDFD;>d`<<ILDM;7M4a(U=j4 zz$c448he)j0K|0*j2rt`rp5D~OnTyjjV=jX7OU;)4jVEWCz>?dX$c9O=V}J5c@eHf zR~R^=yu(es{5t^Z$=u;+Tw<W-|4}F{A*8V+411O)yLitO>;ZQt=WdRGGK52PMpz4) zfDwNS`v?6!T>wX?-wOtH8&ZazrMbiV=$Pot63twgn$rM}z^bP{kwjcFS5P#}`j5sL zwR=FKW*nv#&adAGiku2SK@8>2oD57CyqS!cwMC1e9tj$p1CL~RN8b=niUj0*s+8V> z9@(*6gS>}*3m%Yh{;dl=HlAQay{2^Sp8fb5ysAEC-jTFXL{XhaxZ8?Zej;It52+aD z+eeL#5g;!{WZ;XGOc^K%Dd@cQ7tiLoM|D;2%a4xjq>EK=#k;j<9;tCX*t<nd53@Yf zOQSz7Fg?9uXcYj8u|zQKT#2bVL$c;YWC6$|Pce3Jj>ghCZCBH8rM`hPc{8HC<PTmD zlCBmn5Uzmt_;}00_uG=Gj;*X!5>LcA+1p-gl@upI)ZElt!RJT@$*8x2+Cm_1S3jH0 zDLbZ$6wD6P_sS!8OPZ==VdAxcqbdvo4B|E)gX7FCpbX1J`>FVp4@VOzh6PJaz4im3 zZiCe##s5KAd52geoX2b|;;+FJSCLa5&R+h5MnX)%yI{_Y%1l8nJ_>*1RZ-I<%r(Rq z22BXJyEL5~TG9tj{ECG0&%Vtc?iS4QShe*-KDfG_C%~LI(kIk(*FOwRbS}_k^E>1K zT%|}8`Loi-A=Nam?kXjPk9S?RwRNC=mrax1%G#`@MmVvBO)BoVM^p3kPKoPL;e@4< zkDV}c4N)kU)#=*$(sXX{XI)kY`?($*?hFUJVD?tBzH!O<qA^#b96ppZ)_S^j@X~JL z8+T^SdcH0=J@F3^IkpDyC`*iVdOZ=T<*k{eG>i{NLt%~Q(C=fA4*o^#zyk~>idBDx z=*YDVE!F7dPCZHhccXnI?F_J}c_GGE@S1m<unOXCpJ(l2-pTk<-nF1<fQm<(K30he z%8GKV@JWOCS|KH>4OoAUJF9EQ&nKLuhtL<fnipi#wYdvVvsrR=DxaYU*CcJ0hWC*P zFyFyM$A;=9#xZ0-R^ST{A$OJu!Xgt}8-D;o>rN6k`9Hdaze;w4q99;`WO;U*!5Ez@ z4SRsljz8iXZ?%`)jjFm_<`L1Q;F?@1M(G=LyN^f}ilD%)Boo(G0~&K1d7`o4r-e;! zM)qReC>}dWXAE8gWw%WhpbVmx<VT{|Js<ZTh;*81_BXWF5WR8dR%V2Fajq_HpH_rE zEtd)Da-uq2ZWIr*?Q{--<Kv@e_45(?5jSNgs&CtR+(fvrJuRU+&`pH!oF%p*-ek)$ z1jFP#*Ku^j0IR27T<;O9f6Gr?-KJa!Mjp7~w>&iMadkvTZuv&|zgt(5ONaZSN;yAJ z%_|#iU6oaUM9*t{oKpZsG_Q(RG-GQ$F^-fCOkUFawhC+ZuWT+W|9++|sm(#>q&Py> zCI!}lpP;5`JaT4TA$d;ANRc~NFHQ-XftO@QbMT#_I4q2`x}HRbw(q{;7w!dJ8sekU z>FB`>UzZ)?lGrMt6T<e+Rm{QDj<{!ZU@gMQYr#GT%?$O_mbp!Xgn?K)EA*@du$;jq zTUv+FoLS;ossTcOzZk+*M~Dd6Hf-p`hy{K&oz-&By%bW{)f<A=>13LFX5I3u9Egpx zIz#<g(J-6svC7hHY8%=-_^ER0G+98Bv{a6=coVJbxzVRH<20q|LIBMXaSnC(WH8wp zO-{yEDzuxHXmsMU44%NkZPO15XqDfB*!MupDdE~gVIA4e!dGHC&4YKcAMWbkXG3dr zwf&I@Hn1E{GdHV#Y6al_X<nZ1Q_$|fX0En8DGhoCGm%-7TB9VW;vuKeab}cZ1-_!5 zx>0JFAw#R)qy%}8C-3!B@Cyr~2=nn`oEORw#fR(TW=#Pk`g;uztQCC+)_FsNThvgW zccQT+RHpbsX&1XS<_(P9Czxa4=o!j@aZZpbZQv=#v7U9SwB5;XEnohGa)1zY7m98w z(pBb3UOCeRsP;Fv*L-WXm@U4K)!1P%PzbjHhQblCQz|kB=Gi_TnftEN;9?&%E?kk* z5WX1;ZXY6SF?XMj>AOtwLC@LE`3byBi?J}L3c3UNsC*JF?J>eUgjjS#?<MsQ#;y-+ z0N?y*?9I#P&^cWs6PNF7i8F2J8lJS!?JkIQuJ+ui#PbikC;XvUNchk~IzjZaD^xWv zDoy}KMt6+1bk7si{sbl|?`GXB9#Bl&oL57!*mLarVsEhm2aTnZ<Ir$`ggq1pBNl@< zNEd@UJ9}I#KjkhweryrKF}MQy7yxeD;IryG0rSFmkJjOxxMzm($bEST^PmiDETTVT zr61QxizR2zOEhPT8$}O*)fMiwn@v+pM<W&*Se{ds{>b=mZUC7lY6Xani<g^d?je*V zCSa|3$7yVg@l5e=1ndPf$c~(7mSI1_#(rNlg&m#9cu>29o&_DmaSN-??K>KXCAva( zLCS+W{U7+5Xr8pF<8h(iPJP5}#GqPDW0f7Ws{_n!!nBql_Xpf)1{Hr|98B?VuFJy2 zAbIxD(Ok0vFNw2b<pAX^HuHwSN8HWp`9CpcF#-T#H!bAQ2TIt*kmWx)-jG_Nu;n4p z7eJekWtCwNZVD-U`!bFr3~`(t3nWjiMxxgcz+8Fb_}`?9u>s(m1dG#y8~dSM+L;l) zq?}*%3)|^KS5ZX%2P4_CS;MlcAACJJg+&9rQendlwKkOuIy_~K!J1HBT{}b`FHU>0 zAus|!0J2Y9sE%)U0oup@c4~_#x9DDP49qmpxLA%&f(M5$tQg64H*31}D#W|TMYr+s z<`M~AEISY+0&NdiE`J0oR_|_{{n5_b8<#;36K$!w>;#P9Q98>$x#-h_=YL?5T;PD0 zds}Zn_iErVxsRmev~MbKOy^su-4Td69qKiRwZL@j*QZMdIn&qwHdb+NmRH61=WS9t zi|@z>q5HTY_Q==G=ZXAq@?et4&6`P}+DqRpS}9j87p=~tr`%=roglb!bLKz109?yi z<6VHuY@x|^-np?GqU)qN-DI^4aAKBAUT&gj4N!O((27FXeoQZPD(zq*)ETa`O4Se< zd4)_Mnhz`9yNw@UK<n!QG@9TeNO(b~6Y8LzY`&f$+thED?*!@k4I2|}!rmNg4@TJc z3GQkaaW2qIvtNzO><MqVVm4eKn;CO4pPg7qGtlcJ`YuZPo06O?MQ9q)7pB6=t;@W- zxDdm>gnqcVk)>P^IOob}jsL9Xvtn-<a2JSv^tT&r>Fhu!8)dk${C2A?;LnS9_{GZ; z$?DB{bw=gkQ4F1hyaVIVn<SM~aaTA$jYBM{$gTp&!MOhed_Z?h3=87(%K?=dF93F% z^{rgj0NNrxwWhVUfI%(NsX)fD(w2fM1=B2Yx+y9=g1JxJ6n;M?ioJUsm~SmmPn+*C z81g+Gf(k7Xf_?`l=7r#8_!uX`vZSnO>oYF(G~t<vLS+1|SHP_&7J}R4IW){JF>UWh za?LH`d+DD5P-SM4pBTtAzxS{o-Kh!TA#qa+XN}qj5rBx63t4D_>2%C!%slR8P`ch@ zcAEeOvv~`cF0I)gnoX2@N!E1}qX``mNx!~ziUQ_LH-&{RP|tGIzHu|xpP%4a^9~z+ z+{8L|4@lrJqFfbgpiYprDN`fc!dBK&AxBHK#N#VtrLNRr)<fi5(DsTApbfs6Koak8 znHx&|w{DuQOq(X|zRKRFJ}N1Se?jR|2eqHIxoXO?JmJv=$GRQ5O94VcI6qI!+p!=+ z3I2JfDyPTFY2*tw1;lZ=z2BUYwNr)%#uXPUufyvvp1{7j5oDe?Td;Q<EcTqNtI^hY zT}T1i9La_ZP!+^aw*5J1CNDg~tZlE&QZu`}L?l5@%KC!B%f+jI8F95ptCA>ho0O98 z1rx@HM7T1er4SnL{t82@^#2jDio1Qt)*GXz|M$BIHc7EJsUJ0pZQbh*xty{ERN%60 z`$t?q(z;<u(z49k(-{-zsHg=y(fv{Rk}N{(vytjHf~2)m34Ak2FmxMFG=B&F@&s_{ zBk-4xP3P(G5+`nOlH)>>8Mvh)YW7@Lp0>2^t}-ru=Zj21W$fA|97A}Z^R0bYeyLi0 z6kL`8v=i4UGw#t}9RgyANbSxq?$iX%WC}^`RaCvK+74nNY%mh}4+y+3Z4G+r(K0A? z+;ItsU}7d!k+*D7Yld}fN~y1ioY5xP9CR<Dl0EA1Q4vfa-X2=hGTFA3y&EM0^9JwB zkT6{g{QfsldncrgQ}n+>G9?}W0OJ2iEA4Dx_8&5n9j-6C?e>MfJ3WDM@<Lcw)UB*j zMIzZNV%a%<TGm<Fy1y_&2_&^M*{X{Xi8nk$zg}jc#ln{dVqR~kH3`?33^;ISJVLi% zTpcKhG$NCj-efMxjmpE^N!$i5srQL0Y1t~>+7hXB7p8ULhVP%n{ifG;-N}FENU^QC z*0USPr68_%9>9T->y2hF4$6YwzVhPUUV<@ssGhnN+XDg<(K}F7bZY_k80j>!>mrlY zvPrrlg(-t3gsUUFtJO30w8O6lx6v$=2mDhy(yT0WMm<_l(34Cu>e4+kBcJp^sSq*g z);=+}e!n2+-R$2vxPKlWjt2JL;#T4<b^4XTCiCduzX%R3Mb+@9zSVMZoqW6it|Moa zY<C6%mv_hrS(XhH0M`nYcW|HdEOSRZrzLdK5A+!Q71JDojmnTk6!ps?)f8G~MO62u z_d8Q5bmU0K@#FVu4V3K%s^p%h;fJU-ALv1}#jY+H=bB*v*AW~k8!xRNg;3h+!YRFZ zjh-DH?>~%x$BOXZ4w$%qe(uMT?w@wyzs9(RGnF(_n85JO=$}*3_EDKL+Je+}qZ?pf z)!?qt9rAa_X!y0=nV2B_9mJo6lRZ`iBTqltPB+;2`8u+sNe>LUyxr`PG>d^a@(~EW zuqk{`u4ibsOy}~NMp*sFEQm?CB4}MvMCXd`c$TLUrE*meC1=tFQFZDoQTovqSHgAl z9CHIB6Ze@kMEWHr{-H3QnW8^WfKJ3pWv%?bM9*cYL&n6kcV_*sK7ZUu%bEV!!#ssC zM0|Cz<jL%bPX3N3VsrE2DEedz-3j_&&|FW#@bEN#W^bUX9(qpnXPfI_TYK3%=@_|p zB>Qk_WrK66Tv~}~urW9y4<Ixjll%Fb<e9z3Ige4)y?b~D5LQ(FR2TH(4;J&oW?=Yt zKsa8p-7F2jaqU+Ew*CqSbtqc6cEH9%HS;4Rc1Y<n3cUb=g}=i2w<{FkU(q^I%qC~| zuauHk5baa!?BJ>qsBH*pX$qi4#C82xOUjH260a=c!QZJvhu;@!t%v!+6EMmG{qHKx zqSX*E<a7fifnfPmEeV4-NGfDTjIoU{JTk+P=Yd2w`ZIh|igfo~d_zJ2s4FCwxggJ| zp7qdwrUflhQR|Bm=N7_NQ-F?O&>=R#D#s%k<t&%wDQFoRQ0TebrvjgfY0YJ!O%nBj z1k<=R6KL0{?x6+5IL960VSGP)<p51<qRns}WXmMMe}Pa?yQ^1YL^Y2fi7c?@7bvm1 ztEQ^!?2IrBKF9Qd>KR}{FURsN1`|z;zSBkr9pfR^RegVA#!w45=boBJNK&bT?#cPx zQrI3WhGBe`n?ajO|7NR!V=yX=c`#lmo^Tm?YuR>1V!3dUuylfmF~x~st`!=3jd_Vl zB6@Uycqf4HK;U?v&wtmJu)1Sg#KjO^+4UdTqAWg8%|KjPa5-8w>3#&O+S3~f+e28y zfgo-HhY|Na+j=eU%-ChMu&n(vna$+^9!(D`a~ER2UDsQ$5l6Y-(duU+oQam45VD8m z{kG$AO3IH{vNzg7giAQa<X@;G5G6rb^TyK#xwdN1oo2GXb`odol}*s&U@s#f6lR0K zgR*BV%2fpK!;jEDnLvnE?9#Igc%TD(16DU5)s}RiC0|dlV^Kg2%8~T!cM~{H$)xN@ zWj{{B-X1yQ1XAx#L#Z>yu0lWp18MZf^s&3GAS_>M6%;V8Z@{?kZ=#Mp<SC~TMNBtB z812uv5DK<6$HX;EMHQAf1a|Tn3rl>nrk7oTigv|l$bUakrV@dO&?`sUzo(@1nf~jH z&=)&t9i|Oue@ax0p8Xt>D4TMDh#~4)!%FFS-OAxY@2?|eSWzI59v*O=W@?>U<+x06 zaP|^%mC^kcj6|Ot=vZRr7e9xf6mylukkZ!J;|5-g&N&-NJv)V@O<~L?9)1Es&5EcJ z%7Iyr*jV#_7(0hxQGhN<U)#2A+qP|6@7lI)+qP{R@7lICum43y^h9*bY-?Gysgo!3 zOMOl)4vOl!UadpR>G^hWPkjHDQp7jocziRZon{}VHTh{2f<{pcR02CXpOp4cb*h>j zLph+G2mrAO{`@m_g$e@s1(Bx<R-_~(DV5le*8ZYz;#T)>B#hW+T}tX|bQui+(Pa*_ zfmUlp&kV{ru4cIn?bZ@UwQ7(Ld$)|f^oDD*ZLXZL=fh6%Ri4Ta4QfNw0@gZFf3<2# z3-hsNcpYV^4Fb%Z08wxtE|3N(TI7fUn0J{9r=SG`pb&|NNg<!kCLgvHJFI0C=DBC6 z(}?}X*kkFp#p<D98WsiJrpMUT{jhI0{hx~pRO)O5v;KSf!|u@KD5bLUN`e*5psfc0 z;S_a6D}d&{O#}W2m<L9Rbtk$ebJPxvAUqp3dn$0F5H<Lx6%icLV1)p3EbP9Derp13 zwRrea1lV9Gh*O+pvN9po`T8_f)$ts3dOCxOXAgjMJ%IqU9tx3rAqh>VccTXPp7nfd z_oxrH-4DBl?~5*VzfHST7-gcZK@y79h_DL|1y5^oqd%x<huUqe#`m~#K>4|5Rvzla zSoHTWj?z^-@gKdddzMtvo4g4>&JGVg?oV;}FMK{+-nZi`r9A@xDjo1oKsvwnvS&3s z*xGUHqU6rY8R3s0I+$v$LsW0aj{~1W@Spql1Had=6swQz7Oor8M&9%ioCd8l&OSA} z#Gx};H8XK{r+XOTUZc5IEq1w3HBGc<VC}*vhaR*_6eam)iY|XL#UUS)xnDoHa5W%& z53U&~-U?C!XtI1f{CLVz*ns9Kp)VY`vj=(IopMQk7NerHX%o3^bDr=X2q`eNQf+55 zrM<>!Yp!orr`_G6VA>ynU~UwT8+G6}dzgHaz-|{$s|h{Vbf&{Iy51H-1w})VVH5PO z8)Ak=uLjoS)?(C3tz9nK9c=FN@62I=X(X25h}Ca|*gED9`}3;meB0AyDGbupwggf? z;Rh5oojoaCx=wmx16=imMCXu!C48`-0;NM7;AA`x9gnZSU}-S<W*m27g^m1uQ3#Iz z3j60zw!<mxf;$uy;+L)ux-@}GmhhPEp?s*;S#1oAKG5hIQxl*`2hh@t*Y|2FwhY>d z!gBH1M}kR=kZAQuP5mR`JHXD}ahh3_4gduux~`f_JTbFy!N%k;Fw>S$LI7sq%R=B^ zf-PW)LNRpS1Kx^EB)>CT5fSH{#nk(+mW*)rAuJpGQO46XbxZDP$b_?2`JFF@Cel7h zCz9!00q;-nIwM76W0Ini!K6r~;yxDzb!SYB?Z8txW!oN}!drQM!<jZmh>(ka(uHE% zJ8YQ{Xx@wOOFepnCFy7=7jP30M!xb0;3`zzr(od%M!Yzfctt=Yn+_kL3#oM6CWlG9 zQuQ72!H#K3&q_x}{lq?b{WQ%;%jt*e^*!LiYifQ8(5*|r&u$ehRK4p+*>eavot68T z#H&1wCi<(+q9LOsVJV!iPldJGx_(QjHsj6DhqO?1&-;fm9Lg%Y+Xe=9K1I=Wp@v1S zZMGlPZsu;+`*Pvgm4Cw_W(D#%2yp!?L*Q@26<tP_IkTJKk|n(E??ia!lj(-qYja4T z&dWB#`l?)I4WCw%*I3wINl(RbNGH{5UDCt@3T$XFo4tc8T;_VMThI@-GHB0mSqYRq z%~=3V0cI^sR3;`_rzqqoTYN})dGOeqiHAC}3;1FB%okheyzu6mlbg|5LW@r!;Fg8? z&_x*^lWUvub^GcOXgldap4Q_mSNohz2sVTlSvDuuPu<7uz5tk$^$GQ;i+5Mf<t4!L zFBVL5gz&aG^Z>`mXQl+OTz=8sb~Qq{Y<sj}#X9@=RPn-Hk7)@!kO2cYti2<ow^+n} z_Je2<a}G)kCrUh}WWTh=M9R4JhMc^1Wqc{8hnakjDi%v3(D~jm>ZR}EiflXA9a{g% z#`a;UHBc&Uxu>8NA4<t6<uk67GeCw?WVsZJjkzjN_fDT?3GbpX|G+KZK!cReq<?X2 zud;3RB43AQ-sVZP3@ZZrCaCdpC!TBn$j7?`>2ar7(@;Q$EdmI|M;%(f`jc$!RExt< z`)+UM8+uRn_B%)o&Lhriv4Q-fUJUu!X=o^V(1Hcc)Pe@jUd5|+^%<VjGtTBnEm1hV zsrUI|*bXitla5VZROJK#m|Rl3Hpq-?4c_{^p(m|>cg^!2S-h%>8j|YvYa~%CGy!iY zp8Qp83^`hzz6aa!DN)p<OL?N&IeTnAZy&SqAH}elgHWt1PnK0*u$Sq1D?9`Gxh{`y zD(~k-rwipO`i>S(WBM@mG8aY588n3=x_f!vWUEL=O)*phb@V9PTN!nvWoYL!0=BPM zmHwlP13WAN4mfJI^@;tkA>5aY!&uW<BWJ4x4?T68243(S199=&l!AQ;2X9k7eVxXd z8H3L`VQG)5)Q2(3CYb$+OJ>gKgKM8EOtbRRgOw#ru5ocMJ%$TydMb6P6RoxzSFtn& zbD)aIMO%BAEHS1fDkf$lCG@B4;jeVfX%e$2)d9;x;Vo<L;>eM2g1=aX$kZ83!v*!+ z9wr}RTc;<{A*$s7l3`;Q%2d6LKu7AbYwA420396HPR9CmowKJv1}mwVv8~ol8WM)q zoxYs=Mcz0}13zB@nb7KM84w9Q{2xNlVdq8$WPUKcZk!~5uw)V9q=j5H(||w->KW)I z{R>vw>d;9$qb`~Uiu6OUSutb>iDmHSskqJLQwrVcGaF1(IG!a^*faOZrME3i;I_(H zDOKfnmeSjq8(hEw5f!lqcFMIQHFZ}2ObV<OqRogi)iw}qV6F#9nja@9@?x14jDBrC zb7(;8a<}Cu<BvGRaKJHw5L^OnCyJ0Mf)mPkl9R72!yY|U9IBvbSaFNGbs5xE>Zb~! z6sWG;^BO4P=Pu2uXWaNpqE^h03Dr8sxoT#i(GKyPdv^1zG`GP<=w(daZRbHK+(Ge1 z=+b>IB@bBeWYfp8?$XsALG~nQy*c~v&P^6qc1_E=<^#-WiMpqD`B^KhC_KpXYpKRE zp7SFLk-z?v`Gw=Hizd2?HqBav%fV8OrM1IvS;uQo0TKwDRZ$?&8?mbdFMnzVj9@aJ z>Q_0!4bFeNq?R-*7V~Cy#m%v34FL*)cs_dVdL)weV^N>$v)F>v$js5*;hkbn96&yh z9p)}XXs&r|ZTD|6O=7)<0JsA;g)GPnzrdKRt*M|-KEJT!iK|v4a;7Xw&q0D-%IJ%z zYvTqg2JBeGm=TxLBTyPHU>J#3zXIAdGny{2dN`>}3`;h*sA?@!Q$3L_z?l7tqKN6- zE?1&y!EC^ObI)w=Z`qmfgrAaNA%1;@i3j;jCFo|(tVhA)6I{S-wwd?vjB)UscTe{G zBvzeCid#~4cbj;X2;`AQlRy?&$j;Vy)DrH`N{0m?1=}4Ye&>t+S%GmJ@>+GX^`wPq zVEGVY3mxZq(<ND>-9vhy9}}hK=`tZ?UkG^=81;P8sATr1NgAJKO;!kxcC>qZW?o*E z0=9&f`U<SRLzu_E>MNPcp=<oSkL_k!7O|72*U7fpb)Ew3+aTWr&fSZ((v3%mzk%Z9 z9Lp@1@jjY9GG$GRsi@KsN?r)5>O{>Vq}L|xTx=%e6j}1(U3_SGp)o3rVXgqiSpUhL zdUB_;G)lNS>NtfxOt^egTHg#~8^2B97cs0hCv4!hsK{AC<C)_Lc{2sUE9aJ1PxJYF z$7a9R?`IVoUg{>I@8YzRTzFgCOm?r7%d;VT(iXN*t(4mew9w9(e?NW-+nNNKmTBGO z-7ftLZRc@)=3+Hpv)eWXhC6dIL9Xd~g<z8@ny}GFdAkT(HMq72KiESW&y8UwD=e?) z)p8ImgCgMur-<h2)suxgp+LEQriBEpr={dv!E?K}snV7W2b^0M`<P=ID<6Y~#IGsX zu>r7RXEim%?A|p_pA5y*bdKx6IK|;NwF<e-8QILuxo5OS=wP(m;bnGl`E$OI|EK#| z@bQd!_8*?W0s#Pk^#7&ixHwzd{3rLWzGb&1_Ft(XnR5Ul<46Y`a8QtT0XjH?eutn< zNjwzQ{E38S$PrVwv{d@LJ~y+DZpy~Xd{iW9t=Z@4tBeIao!a2gka5H_-l{|##{{DS z#-Pe^g#b-L3>9lwN5j5u%B19-S*r#JzM@4Tv>iO0QE)^OQL~X9y>5FGqjrJjF!Qoo zxmkL-?4iM2N=jMVEFuLBDcWe2HWPb7)M7{76AJ_;mWXkeD-R=GDN~7MZHf*sC+$ch z$eX92L^lnc{D?gq_Ov!qQFqOR2naq@6f+RZ!Wi|cQ8LX7u}3CNF$FTI!|d3cewQ2_ zVka#f@{VzxN!^>BEvX|+P5;BqndOgcu>I+dyvRVIMX?#PoemXiCa16sk47=2KM7zz zcM<leLUWIcJPV!oKc*q+egq)UiI9Bc9wFpXlBjY#`DwSGFW<1Dy43xltTboUKv}_3 zbQRr*Dw#|GJ&CHhh=tH}?ZI*6`1@yfZS5^>r~{&8&F>WuEY@ElAb&BI&3BVX*HTRl zG$UX>31^my<3l894V*%xy9sGfNB=S(Q7Zg6^Te5d`bx|kIc6%15$pWv$S+@2H*wch zwAdt3*^ObKmLNcu{zvGx8)?UO)rRji`!q!8gYl_V428xJF&WtBN7fd@_=Ow#Shcub zaf|=SIO0Y#z>X{O@wv0kxnTvCnRO%iw-%+k8(XHlqKJ0t5JU}DlP#!FG5qAk;EJ_M z;x2N<#czL&xIAq=?g+7^dot9xA%k7)2BlpklDDDFvEs=~n)Jp)`~Xv125c0_e}nxa zNQS23L8H`MYJ=Mj&Ne{{kxJKy<1&MuZd@pdoMuh)&)y(NLjk0yz&fFlB<vG&VeoFc zZ2KCb|FUWxe0OU2U`QRpPMNy(>StjBKkJZD+_sm@dZ>larb~!I`vr`uPFQAuZ&=&V zv<0>r?tZgu!IeGBvnEJhBBKrq(4rLW4c3P<G|->B@JA_C!(?Ev?>36>YtU9_>(eQ` zft%NlyCO=)Au_SDAUxsSH})VX;Y6v;!;{~=C~K%^vW<)n;#FT^>f?+5<<MRU1#kn# zPH5_#od-+DqIT18ee^|fe?7;}RELUt1mn@^qDFl2CC^nt%(J(cEsnEDeD1FGuI9)` z{<2``ombD8PI?r>wQJ(;!$VKvu6ODDog>M)DGLlsrTH;YJLB|iqwlt=*-nR?eO;?0 zRPQ3g%6z^%10Z0<s#h~Gnn#-Yx%ux&RjO~MAht`Auav%dlVlQ7**r!prNxX1(%ZdR z$|o;U{!R(lE~gT>oAZ9&O>QCJ4#uV(h6=afS!Ue&1Vwhg5ApL}+bE7w&Cj3DKU|pj zGgm`23)IU!;w-k6gA7Aqvc7VmOU1RYu|)3QeWfjmiM7pHF^-Dt{Y#vz!OLPbQ#$FM zbR7<34jShDbEnk;4{G+F3{E+d+J)FlFIrlyb?L8=#><vQ=)7H66z{Og#xbnzZ;u^w z;m&a5APuuzjOUT=r*-FRGix-tb9%iFhl^68G>_+BPuuvn@<P2pLoa?nb8v&c9KiXV z$&_2$QvtArsn$0Z>|s{^dNZw2e%>&3T^N_FrvB&qHkTEm0dC<nIimwh8E0mA9ha9s z05fyVTlL2um+1Q|oPK*iv0MP+KmAf1GLuG9Q?g@_fVLZg^k?oBCaPd{gA9TAaqu3M z^)37Jwl-a?lRsh{H@=wdh0$4+92ZR^(fPWZ)hXjv@DcO1gSd!r9Cy2z^@kn0IO5Va z-QAZ<IMNF{A(w!={pozqN9J&$;?p}35ASR>cQ)X)L3)@!!S2DCt-h>RCV#m?5cOXW zKgm9x+opL%b-nID2^G85esm#6K$4b8oSo-UotluGf&cQQO$Pc#qTSGm%|@rz7lcGa z#GOZKM*1>gQlr9W#JwoeY^hn&*+p4ZzlmUw`Saa3*(-UY<;NMekI4Nd<bGiC{J|8u z{lD1f&`i)Jx9|V}lAQk^C=}O!K^RMWyZ=)7wQc`_;*fr7^#kVFksA^`TsOO{SsRvE z?p=7&oOu4weea#Aga?|eqD&+v+mg=u^_imsh{h+|$TKa?S~4|AT+yLL`G7YQ@92tz zq>DBny>aVKY78ruCkn}qFlAKgB%@0uQ|Y4+<=hWN$%MW=Y6Za#d!?W&W<I$NFB#Yq zm@t{v=gsPArVC_Kj?nAl_wjIXax)>5ebLD;DJ_A4cT6r4Q7w6cdN#438+MKxsZuej zmP8*Aojn(drk;?B9cYA*meO5SK}4roVyV+Rn)c~V@kAtgEMy&@3nf><zz;_EB>$ly zXIyoJ0YYkm@Ap)M8_tS8n{p?ZO~o8Q8-vvA(>4S7&I?|xp#(cDoK7?Bm{v7B$0Ki| zh?rc-|9G)W`8UDOm}2TyJi9-_4m^7vGGbuIjRbJKGG(AoVnfV@XZ7}iskK-3aLCn~ z;K*9r@8I|Fa{D?l@%h}}Y%gpf+b>^caH7m8`m@y?cyot6xh`|htXOI#*Da&+vMaI* z5@$O}82jVWi5Kl`I6iQ}ns&od5;XvsFIxw_fbi+!z`Bdfjp?5&4>ja*0Rx+h9C95_ zi=wNLgTq~8X<b_*fP4VniuI&LUFlnew5+VhQsr=+*7ak+22)>m<x#USM6E`T>a<w8 zyIEu^&QVNBuV+jb5y}44Oh!3F(O9EpPB_tO$Ranbm|<WlpWzLkfv`c=dKxohhObq# zOB@NwN*h(rDSI5YfaQ7JLF|K`JJuSJwjj!^pngv{`UXx>oZHJF`A2^C=-F4A1=^PS zl~}@B8v8VOS-9J3$9;2QS<&&t{pKQ}zNk1|`4YkK5{dH#f9cj5yhbP><~tIOFhrXw z!uYYG_@SO3vD2hZl(+zdfkT6-r&X9p4KvEJT&8nVrKh6U+#Wogsd&F`>#<Hd4a;ox zLT9t4yjy8dmhbO47#<%#ws%6Rise?{XlRwsGOdDm^6HrZcm3*(O1mVVTHbUe`UZqp z&RdbLAuUjfl3<0K2DlZrOQbPMdW$tswn*#K&&hH9Kz1H5@bs!w?X$^VGh$fIx_c8w zMcudSm%EQj0Uuh@W*J}*5iItK?IM;{mmVlpM7P;N&BO|65*7bop(-jRGeNG@0V%R{ zvv821p)J6Q^Vmj&_;XRh4T0HY3`1FKmq-UIP~-;ttC4_tqzG9#R<?jGb}2YgnN0=D z%JkDwIM=43r<wf$PDosYGjwJR@aQ&U+IlW52!|wk_5}4A#o<VN35z{t3FMNTGKM;Y zP7#3WDaD~ij5N>0_AS2^tNzKp!n4^^|K2%L&w9ZhJ{=(AJN1+6z_UAgovUaK!(Nxw zI`|e|*-M~SJEYJ(-Db?ugFfb2vC?9ECXrpv<m4@R-UkOc4ozW2s4By_G+>28$JBem z_4ex_${GfLD!CmW^va+vHb;ryMomaVLk`)CsL!On4x_Zt7ylCtxZmOI*y8`2treGD zo~1-{WDilH`m;~a&7{J(LZ8|5+^(+<22p^gaJLRcG240BP7!q@lIt<|x5oP`VvnEy z1)f*-a*RfvSw*5M(y=w0fQ2``f~^1&#MrPG=wAl86?}L5TXx(mZ}qI!QB5tWJjQ6E z4+8uA3_YK??HkBuHlPoHpK4UYM>@E+iOKng^3aHy5aQrcAy5WSq}&`ga-oTlR8_-8 zX)t-u-Vt>^3j$UA=9yn6FI@W%og07b*;Lq`+SNxn1VG5gdl|dAxNjDb3{xs0_x8Pz z8Nr9-X}(G_0bR(b{QRS8acz!U*HbWz+-TQ}DjpYt%KqNFIFBFO@pSrSMkF9lifEt4 zr@>Zt{>AJv!?GYD$Aj6H2oj2fVnK5Yz>ozvZS`nlPzTi~2$w-{W*r+~%!CGAe3*N{ zDOdx8>|Sfy<N(Rp<Ni<h+rO}3p6}=O?$1x$t)E5y4S?OGwM;5>int-In=62Ng3yeB zNKhPe`}fc5B|~vO!w{UsEw((5Ax_p>Rk6m23go2HI7e5!UrxEw532}6L@5Ndkdbp? ze;iVGTMrkj@8L#`^Pw(v_Ucq(LC!CFh(@aXkaJ`O(lv3#pVqE97a;<@W+=hCP%I`r zz<VeOtg-kk<^ChEyrW3PZ@F#$WhAeF8z@JAl_t!Tf6!c!M$?Ke_h$xXhND_~qWU1B znt9Q<%n5{Hij0gv>uH1;NsxTxnkH06&41DNe+9BRB_oJg#}IEPg)+EBX?_YL0k|{H z0hLw*Gt)|XL}yM;bY0oPf1;c-!YUzfm@8-C+VD$MR5mlKy>;@7r8>YZy7Dq$=#R4> zqB$~;nDi~})-l5VvYI>=<!+bT2I`{OKtFNxsCn$ZhRF&;5C{Y4i64vNYn`*l2$<6x zsZdo!w7`eqoWKPZL~2b@l}N|)txs#5i~gw{-ko(bj5itF#h6<etr9^rv0Sb501jJX zN>h{}`YL~Dp4ToWaYaV;EpA`1fz6EIRB3H$HRr?ac6lh#pNz($`_2S!!o^i;44Chs z3@xc0g-hhS;`7jEf_8KoU#BN{r`&)?e`q$H#)r_}UcfB^9H7b1R$z!9#1pL-QcALS z>d8(qzy`;t^b2khLryzLv(3=qJ>~yCy?j3K`h7oVHv7Kwwto#<K>khm?Y6F}jM4lA zmEC{(H>L>#u<(O~uCn{0gI3vwWG0z%H|Ix(X_wkB0DaXKoL(Kg-@FMkc;0j~KaJfR z>hH+e4Q=sso1S`0&%UDxw~+yS{`5qUs@YxcZ>on1Svmc(UOUK9bgqI-+-L<Jn(WG5 zJ$P=3SW>#JSzUAs@jacQ6}HcOhZT{_ZxI#5^+^hh>*F<_`rjtcmD&RFtOozywpD@j zdZ_zYi{R%XFr3bZCBthSubEV_*9T1IyE;$W7Ae>51pQS|d9;C$aB^9i7XAG!*y}E` ze2_PI!1#ztN+D7o8M>b%x8K3*@gC5mQtb8X(VH+7?=EYlCS^P-x3OXQX(3P-71f|> zlpqXNbBES+L|7HYt)rkwo>uH`x$sFsV3I0|BP5ntI76DdvRuu4AIqCwn~US^oBh(v zIGGGS&5os0HlfN?z4W?%(I_^H8pPvl*9Cov0@v`!+kiXq=$!sIkr;fnl+^{!R*B?o zQ#5G)6aYsq#C*ScA(n#0VQO94%j(9FY`X1Q-YbQZ;X<rJ^3YNB;Z9y>_52ZN-XXJ1 zWO#yQ(T*J;9fK?7jdHa_07u(kd{}m}Z5x1-dEuir5ueY@y6$NaYF&<`;B{VF2A6cP z5#RPzgB<fc(p>Ic%&4;^r<MG*(2im$^Hp){n<DvvbBmP%<9c2PGDtSThWJ-f&d_SO z#Sz?Yn_kjfu;DTnx-zP^vQ5jJ1L&BkyOl{yo)GXa3EZjX?o9BaGj?d=$9%hl_4Y`- zHq^Zxzr%rIP&#05nfz3->roW*85*5+p85TN+gXNN5qpf)CGG;lDccsal<U6LO|X=X zyw&TWB&Bl0emQM?CXc#fu5MO`QaQ>(?9n3Bl@mMo(_;>NM;^73e(Ays*5*1fTT1-w zbL#bA8FM6K{<J2wy$Z_mRIhfD4j%T@2vr#S&0e+)@oMMIc7w7^#+E-sCJ_~LGO8(d z^$A<efve&bb<*v@T0Dw?5Sj(3Z3Eang4DA$9J`cQQ%bnGg}q$8cDfv%=>l`c;dg6x zBYXmCblPmf;5NHy0i^y|iyh=r<$&vXin!!DcY?IOs?{a``o$-Xv=<0y<NE~Sao_9L z%l;Ag81WnC|3EPJ6tCu&)>PVDOReCOf*dew@Wd(y(W%xLL6`Sw%O6^K3-T1lLZYTM zQVCo5c;%yvY?DnTg~zh;b5fDJ!>O8H2A_U$ep1m}Q(Bp);EW3Yfs39Gd~qXtCb&DY zub!kT`3hjYMkC(S6(~NJUR<EtRI87YLyeNq(VywWY&&S{WW^^=c(K9DM51ZWmeHkF zJ;Q4BcXtU_(geQza*5$U+2mrpkO?juDJ@NGa%Gl&dOct}Gg95=8>r+)+{nQ+RXJVF zC>i<&CMupI7+gc89Sh;<34KfO#uh;&fiAgS?$Oe)1QD3JK&W(FMFv-sF6}+mA24~M zSuAF5Sh-%X8|47&h(rlpLA%Z$I|r2$rerERm`B;8_F|YOo|vzz7<m5=dfmcUjoQ`3 zb3;$0u87r_?QoX!p`q!i^IL1LvW48WSQf<bKAKcVZ(h2+*eQ1u?O4s2=D??xws+N0 zaR^w>Cevu}-<nW6I`rz%wGS4lU94m<EVWjeYlMZSp-j6NG&aTs^u~L8O@+GLmzKsH zPi|$Ds^Vn!!n!~Yf|sD4ZJ)lHLU;{_I=0##r#afyv5>%`f}+{N4Sw!lglISM++7C= zxr(}_>`GKM&h%$qy;rRRZVyP)w3k7199^NnB!+ePNo&-l4lG>{@HWvEvP&<3{A>`Z z`~aTao&d}Ynwl;w#;UsQh!%W41g20ueq-1|BdnPO=!_F&NR>SE<%aFYJy<4INmb&E zNAA`TQ5}2J>dTA(z*{=zr?Z#r-F^Yv8xSFmKIG9WPvFUpURa6M@RJT|%%K*hu&L$e zhD>`C_Hr*FXi(L?Hv#hWPH@X{R=K`upCW<m5`ssJ`6;0}!Q~eInD;RVWe`WQvDd^! zYhn0mnYE)-Nz9Q@?O4yFXTu2q2?b2#`Tl>IJ;8f;1{FmtEgb0Q?ma)EA?cbq5VTT< zJwn_Q`51VnFb#uL)RbM?D61T2IXNhCz<!pYa{bclezbUoz0g!_uu>l_m%a~4ae=AR zp*~+4^rQ+Dc43kshc~YvR=E`9Eac=1B|1^flDSi!^*`?C=MtuGiT6A+4Z6@k`A&9k zjFU*OR|!<PB^{<R!xnj^6|M<MsDB4GC6(B08b2oYW6u$Mb<V>FSeC6c!zNh6L3a1e z_^rc157NK6@Q<B7c$pW{TbqzNXUHl`j;Ay-hQ6S$6slR)vgOiwV`fT4blSI$MB9F4 zq4avz*Bcf{y)W5`X7Xe)#AHwF42TO{d$J;)XGWYRm=|JtAghPl*7_`Mg=Qx&jGECv zuyN9v*g=fkc<HJPW(+52)nG+dl+MiBTe;!P#mqa?Bh6wZE}0w4y0m?B{vu5Pmv)Ej zTGkM*jj%yGBd?k5V#_q0+TM4ks1rF09Id{0!3NXa&$3#qgG1$<vI6G+d=|=WJ8#%B zEF1{@GyJ-|#Bc@%W~jgF{GF~e%zzjv6E9n_$6#5nbr(FhcYz;7pwBL01HX;Iugap3 zIqjIHBl@uHpB&&hA7)I}nm0$s2-#fU;)DzPlR159yv9{$Le3dwr;=mpm04~_;!!+0 z+Hwfu^MQy&6Ng;zuT>!&xKA?p<63`fWo|p&opz$aob%)*3|1BR1q#^K7Fg{lV88a2 z|9^_evQkC{y08EMW5oY^)0~Hc;Xke5Ked4W-8A=)pZXusU{*hXg4w*PU`6Jm<as!Q zip|!VO1hS0ZN}7*MMMY*Ine-Ov9)&X*LM!c8~xLf`P5U%2=I#T<#+@1D^YZDPIw^E zXHXe+cuTRdO;3w{qeJG!vVPn2Y8|_gy-wfH?cwA(i#>Y#fybl@vFpC}fdJL>zDA-* zph94jM!|+$sbQzdcJff>jcuz~h@r!9C$>!6ut|mq?^csYDFoIr=bj+c<ZgdDNJA^@ zx?f^K_GMT(;F#}FN|JtWZ`}L*I3b)lH(^*70cs?+3D?;$$h5(nVL8xyKp1U!k6eRu zBsb88{4u&j$kcKV5gj|Ko8dJE?>LYlJWvRVasEYNm`$An{M;%DFbMWr|7?i#oeO4p z77U%A;N_ABSQBvrnelqavNwfNnFuCA9N_vn!W#A&YaB2sSSAZ~bg?ndmB}g(yma%( z5~g8rEi9EGC-q&^J!4-On~e$P7&#WAp#gusW4Xe0530$V7C(e9`QD3$*}{f}(4M3v zDT=b?kYh0O%B~vxzMj=So0^nXB~$`pFI=Ql%i^`0xM;X#DD`n_<=cI~ej;(3?xatK zE*qK+gPsv@{mQqoGk3QJLycy%X$73E&*X3e{AJ0+RS?b1w?~&_iZttAh1!WL*B?3? zwu~J4TRO5P>K8n2^GDPyIXg1ydfl0p@xYDYfnI5bjz4IpYXs4||N4biz_WDa)R+%E zAzO`Ix%H~aPTiL71Gjf*?M|h^sdW7BZJ4@r1Y(^Ir`0$RNrEP`^%+d2F7KTyM`CUr zLPJ*Xy?s9o89O@l8ZO_T1_AGTfUiey%VH7PJ_Ry3aOLf6Tp4>Y^*KFvalFwy4GZ?a zTZ$y(IYw{at(fu>Y-dlKR)B;XXRLZPRI_f$rN_(;M@%F`J9MTA{b8bboo2we&13h4 z#mHv{iXPz57Bp{C<!a_am~#WS5?k4IC1+c7&?PTBucBf96+sAPA^FO!dxV3C4=c2b z0-c{yC-r3!unAJ+hJ@)D9jon0qwH^Sefs@qpdAke1Oi%yj?ao<0VBjy@JK36^x#^a zmjH=Whvud(B#BXlBVEy=wrmt(owv^^*)76zB1WFtzy5us3S~2eEx;5AMIuGr;yI$6 z%>$^X`0Wqb1}?N>wQWt~eBk2~+JOoJD%i8M`4gR&z6ng52MAEnV6o&&LU)kSMr<Su zkuB7ThE(0CQ2fAnH=!sn<}#@ayQa6_V>8BF19dJJ3YbST0~zd)FGS?e2uc^?1r)W# z>x~;nbE$<va!3-Ww&;sQx4ws^04dOwW_i|!QEzM^gK82rSO}}z4;hQD2@fCC78%wt zaP7wCHRY2xOETPr9ux+?9O8l(j5&pDA=xG0@=^wGaLd20#+eP~zy^;GgORrU=Zc>J z5vr1ZvaoVUj#5t^KUNR7r-#%>c}ylw2fa}DbsIPdKt5LzLpv<;tiCG7P8-Y~u(llc z9_=OnBhCB)q}3b6(ky#RwQ<7O-P1}FhCd4>r4Y_kg!nG4I=pat$Yd-<^R-c?X;HAA zyso+`?F_InjSWAmNBAWY_6qRl8c81pW*4_3MydCjpEqsKdE<Uo21afNaJwZs!L`F$ z&i*89h=?+(UBFb%v2ti8Q7yNFG%}~#7(b5XeB4Z&?YqeQ>~Lg(d}uA0;31kuqXkt| zCWTDU#COKfhUSn@KdgMAG<gscWvl!o3z>uPh>_FNUMX;d2dR?cbWg3=`J5LDQ>4F3 zY#I0a^z0he^w2cE5{CKtzz?@4rwpRhj05lc@T>-S-ePop9H&aB(Abes1<wqsN=80D z5(XF8D8gviineA@-OH!~_r9N}AD@cXKT;`TlTmEGkOFVv&V+;bLF-kiA0)<*hpt4C zzeILln}^!7P-zCZe0$$}d4Uo$ViDSbR|XFiK$tS&I;mf{tf38Wg!$TcGa{Y0BmgW} zhQ}O?N2vt(5Cjrvc|}89HhKrZtunYMVZqYoBadl37s#2BN2PII99$i7Toh+(B%LuU z!{0c%oaj+ZnD)_{Zh}vg3Y)dC<*q{U!Ni1NxUp8Gv_;QM=kztgW%0Yg7g8l(v3YP) zudJo0=-Trs06=iYcqYXn$dyEOl;mV_lUS{TC|oei9V!*EOF0yh$`evaMPrz`%&{!1 zE5|#Kqw!0!2rL+^TBgM^1uI4cJY8%BMUDRaQ~~Qtl~uod4Na&G=Ee}z3y3DiMj0~S zev&CakCjOTm|t?y*ht)!$(#ZZ`wW0(IpsHAbK)$IDCO}<tW>DUy3+_R%BZx0ZGV6e zqrMLw%vD_upCDZdrv~yMD!14J44{F84Y9e%CEd@Ai499_jSkq9EJbl&IZ2OCw~(Sc znl$sqDkuU;6EU3m&SSosHC06x>|d|!sI8PtFgQRP5G5>IkDx3N>^Oor3ghk`7?gP9 zfM^RJxgB-6FFBrSEW?}9);9V_Cixeo!BxL~{gC&g0^=H6;95AlDZ^W<>;_adRgzAV zn$w!=a=r0j43-h@FNmc}1{w2v70xVxP`XjzgS^pSf}Qb0Pha=S0m_3sQ%|WKmLUQ= z_#TzjA(V{brE|sLG7yDKD8KzoGd0V>IDcUg#nv@qXUJ(6Y1+TWl^!7uLrH%}VyOc| zr+0nv&vysHH<@$Kb%|@LXQtULwS0tU45Nms;Kl-}zt!(~H1g3)fYEGVc27L`dw+&! z=TqE)Ssa)3;I4MQeXxH`N*H(c1NR9lsQ<j(3#6_h5RMHElv!QRTfG6weG23E^TG7( zHipLNq!G=zKufdZSh9C#f;N|uhGP}+CxM*e{l0wG?_#DbqoEei!3-(>0#Vf#%`t_? z5$;{Jp<DXI+8>M+&~e-oA8+*q4F@N8L5iGFJ9QflU2sIJ;>Rb7>x*b_Jmt*jZC!bF zHFJgvS6QQ4nd<-ck4jEHX|HG9%I$vj->97ijVfuaq^z>I_Bg9DT~7`mIe+<66D#$# zqt4l0*(QqaxHiY=sqQ@-vK<I=01bBwAJ!C@1VdYB5KXXy%JO&-G2YVWVBS0@@&a`Q zhC+Myw~?upi`~I^W}2FUz9nt<;5@U^gzEw+h+@b$*;+Nk%;TV4IQ~OuVrGKkrj~>p z^e6e2$TB)Bmf5(PgF)ljkEpP>u_mT{_V>QgU=(IdW4-C#=0j@f(Ui*+REalilE}8{ zVHC}$MV#;@E!bq)X@|dE$hDp9q><-dgd*z|l>uPh5}N{IfrF1>&2QnAtgt0pH}{Q+ zj^gM3R&)7gB`loPy`zxxP{+>i3$=b&<83yYrx?}@0T|WIdfEn8F5=@Pdl{A^-xi&} zV|QrxzvO4tv-V7HWh#+L%Q8l&#4bFj=53(hEw%Y)n$Q{08f`%QlDsS*x=x7t=_D*5 zRAo$){SjsCG2ra(Z>jkzU2XV?O|;R6qk9(Be!Im^PClr_(VIx&Ni)P#HL5LtrUOq} zM}Io?e=T_GO&*>FJbRM+i`6>2&AG1P`R~}#Jqt?yO&0cYwWD~txO8R621k9W3ay7M z_|xNR<<LZC+ktl)EANA~4y!ChZMmj5%sd;(N1IvH>uR{&bTx2V<u|l)%O-(-fivuz zJ5sGfRQuw!|L56sN)NGQ(LROxT~vkIZ<SpeIg8Ymup3A7o}zX-YXa~yWIgiKvHlB* zgjzF(r7ZN(YtT1?{Nw7ly(Atl8(rQc<@xqJRv#9tKx`M*lEr4C(%x}~g{tpaTRmI6 zQuHjkS05ae8}C+^K3S?AbC)gRtoD#>Mp(NIK1914PQ?UsH4kgXRTHIC196%1Vj`Pq z`q*;P+9>g<>1nONdWSr6to0;#(8t)VzNnj`<7rP>F#xajZ?f<LNKB5qotEU~UqdVe zn)w{v77FY0TkYk!uY^~85*q<bpCKw=>*~x{QYoDf-Qhk6W2rZRmhw4pk@9mXfk0>u zdyZil0w#Rm3~F8R9|J0z!!!?GYuj+AWjy`r#~N$TM$bYv;@V=^pvy27&-m(-B%YVd zfwZ&N8Q;TaF##%~cM2Kj^33$$_U6tffccVV5aMrJRIN_g+wyDt;B2XirAjf++Vj!C zMMsm=M3YCYzpbh(lPxCkJ9f_>8lc+xnu(V6CEEVdbK!KgSgfbEO{E1L@VUAyl--nk zET$8d?W$9&Zf{Vs5HMOT6vO~d#JS6Mm(42RPmSi6x!NoaMQ_}7Q>t|}|G>@#y(SPF zN!q6`pM{n%tAIvs_PKOiwDXlKfPhO+3u?6KS-{6wDE5*C?mHnITu09rW*1Kdo9)0> zJ~aM1J}!_)r2Cp~E|1$~5oV86Z4|ZKT@Ya(CSlh*q*pI=!IaMJs^I3n*NF&7%Wlz4 zk8s0((HIV#0ZX&fUk0L<1k<2_(*96`Jt3>JTD)?Aaeu&lwTvx-aroX0#R!j~A-~e{ zDAxZp!(#f-scyRp;<iF#5jcx8-vosn19C<Gk~?SsV$)e$%xf@wdMP;Uhydlhvb$`m zQ*x{EPA=&KJ$p&MlS{~WH~#!zW#9xL|9TQ2003|?|M#`-e~)N}#?Jq?y8q?$xz^CO z-{L^?eXZN0=ogvgvRisF+^YcohhFFIx7!rtrbQDZSYk4DD%6&oj7XU9+r7n+YWx=; z{Fn~|RTD6Z;Njs(yVV&7CNwUK`Wrhn^AFEVglz1BU6lwPGCMiQaj%C}HJi1cS?$PW z3vob%3j_9tss{D;!TFIcZpDP)4n(lOFE55h+EhddLlLRV>@dM0M4_W58p*DNP3WKm z03LCQMHRYx%<AvML0X8E2+Fxm7X?&}R8qotvNmc|_$tiz?326XArOtVB(b?Onq<+o z*?b~m6eDfQqe_Hj8pRcpZ#%$)?1(*6OC>etOmm{(5Q>y*@nXa{^qOg7PSF^JcFAm@ zlYD*s{xb1R)Wd>`Rajb;%uc;cS@g1l;BFo3Z~mWriW5Ipx$%0fG=|uvjK+f#O+`+l zN*#v3R<pp>uHsu@fKS;amVbop&;+Cqt<U?rpuvHLbX;`lncVIF9=^D+!$>5`bh@J= zMiZSA^)pY0`3U?dmjsL7>V=Z70xG>X#>q=iORmtTfJLU$FG!5(6xWwTx)d5m22f3f z%xd!Iq}9hOx7oqFu1%hq3>j&fr!sgUo}xgkwZbD8-Z_b|qwvd$_6DW&#9lGLYM5X^ z{8gRpPpU<Hx#7bQc8TxjYazBCwlS@iwNlBL)DUIgtP%PMub*L$!9v#rYrA2r5EUVs z{B~_&RK8A5sL+^dRx&1>-RN|<6H`$mRi(01QvkY!7IeI8ggnien8wV|UJL~ZiqmUS zo%X0?O6j`4c{-N~9%@*7|56jeV9l^;NKwaRc<x|`La1})0Ba^zBYv<7u9!Z7p3uwc z-=!;Vn>tk=vh_bf;)&D|6-5F=pPL;X(X0<so@;g(waT9A9s(01H0-~&Pqd~!>eA_9 z{uT2N7Gc8is@3abaDP8Yald~^$&b0mhWWQ$=R-}yz+dQxz;W{Jy6|Wa6R6S8aUnZs z{PUq26<)1TbtbLKVLIfSyCo<>KMIN7oeC78CXF{++|kNs%KRRP$?zI-$F(u`?Lu&Z z4Mi6r!|K_e5*ayr*sSHBR(s#>9*_2I)&l5O?cpA<TtX}UYTk~mg&ILYMZ9B$jgB$C zZD@T+o~ZAF3Q+yYR$?Qum8Rdc$ez3o+&T+4gkSK1TprXD?i8Lol{9fL8N>huLE;e3 zSeFeISF8zS_KzuqLhJkmv1!n{PJx16j8cr$<A3h@;Hhh|DFehUedyGgB&}UncbW;4 zG+~XpZDuJ#!mOCC_p`r|VqH3RAb-V{_3V;9V{uB4S}esT3t3PjDNy~0Jz2U(Bhs}< zE^3!{)HyFvr*j(~B7cvTQ99999aLjf-x$CDJl0mmjFi6fZ&?V5??Tce_|NcfLJRg# zMm8!b9;>4SP2hx|N0WjZ1+N3ne)X)PEpCmJllZz-;@Z{v4>omy!H2eH<rL%`rJ<{q z+^}y65oeGyBb08PArD-XM(vE#v{BCZ!?-Z6Q@+Kt(%>4XuwRll6B{dGNg&iY80~!x zU`suhKe3oW)IXS8U*p~<_<WEmnZYUuAY?1b$<+zHzCS?XuB@qUG6_P_L_;{*9sb&+ zNvvlLyLpnnf>tZ^a&dtU*1>x(Kx9UHxGyok92H?6SFs6FAJDdCAL6l>wdwJtSXdvv znBUfc8zHM$kP^g^Y&EW|Mo7>@T)|R!lzaWraqh|SN6YzQ^Sp%!Lv4A1UsxO*e{8W5 zOR10ifPNGB$4rGBhI<wE211hqW`W)%0hhDDR#mtYk_xO;U%Tm7W4R~7p13{3##F71 zfej`q&J}pKz_#7GDkvN?#aU}3<mc_`fPbN^$?w|(PP0Vbs2AI#`9Wd4hzlPN?}e*r z4Z4T#I>y^yx`WhPfc$T%%94TQ6A=e5V%@OQAEMko-xq(;IE_?lg*d%P^fzwI93COR z3pIdOsL3PHx^3~(u+4^ArgY4GdL>Smjc*!suyo5<fG3={CTwD{`ucH8>W-JyvTg1i zBZ{~1yH2;)XbTYR1J=Jw%-6}Gv4Gq$$Ufo{u%nOnG{1y=I+qW|h>7lgQCcmA7}HTB zWb1Tff0=?(5}^ff5;h-#coz4971bpg$Le>}(?YcdXFnJlZZ)9_!k$%S824aLfZ2Dw zryPk*%1T(ENf6~`X{EftK#IcGe9{o{qrze}H%zpvT0gzxOf4O)*Fz7LuRC?OS*hnX z>}*;an(fPRH$oNavibp|v0|@(Oi;N}m(Grd+Zdok-Qh)-@}vJ0PS~8e*qhN0T_$M2 zZ@@i?q3v~4U1K&R%ZkgMw%&9wR51U5E}n$%^8JBemHBvCl$4$h<LAm_8so#{)$c+P zxH!x9$pV1edkFn>*lpEg!qLVTMtud+%byBeLZ!7(=U1EsS9w}r*x7gfb*NXpx*>O( zqg*m4|G;^l<b2h??(m=|_iUxxRINK~?x_lcAGyq%k&gIzQ;d>3KM)&%%fED9&=D5? z$!k)vUC99(ki-5Ch&|z2pm?WfN!>Ih$<UMBd5Qe1X1k>T1aU@M#^6Wn9-R>~D3ExD zA&$Dvkc!GaCaa!ryAA!?Ne5JQJL+rmY)YA{<EwpfTiM57cBAh7)$QEJ){>6-?QitA zz()%4dECPK^jGBmEB4`JrD(0`7oBxqP<#QJH>m6LV|rl+sI`V;SE&sgqSCRD@70-k z;Rf*gtoE26(YCRpOvYKDEdKEI^wzIH*eZhfU8ii*HhA0Qk*Fo;1MQ0WSzu|$<*<KO z^J|}8wDem#QE;xssBQV~342y}NsbK1p|P;)hWWKrf-}{%HX8gF^nWVG5yz&!r*HrO z;Y<JkWdDop_`km+#`d<h|1p`(U|G6tu|0J8fu`;(o6sl~dXubjxh|1;OnA+V*8OR- zr>0~Q5kh0{mJ(`Q8UMcK2G#?RoN(RbP1isI@7GDkoQCO;&ZdAUoR3uJZX$sSKNf)` z)<Y17B$szu&wgi=UIe;g+J)ws{Tp#x(k*P!o+-izO`ff1?iPz*0%Ok%LU$bPB^c4x zzPqupL23yCjF{IHOryl6{T94E3Ms8j52b7bG!I=Dfxlfp>})X^ez?R!N*H3waKzv^ z1OZx#Eau~vGI#1kPm1yr6=5lZ+nPiht<EUxFiV2$Q!l)?$Z}09%_I_7WP@;?$*0Yf zLd{o}4dN_XT5Yfi4Vvpm8@MjRDa+v)kSsuljwte{Ux;rVaY+V=4k*<fE<;o@9?6Fw z9b3nP(0ncba_MVqLp2P=n8Ls_G7kXN;@?Yf;TgP|`7=gy9QU74_LFVc5R+#@tI|X! zopBWi`d53}wd&2&`Q_=N{`(anljcFX=q>{#Y54v=d@lKOC3%-mY;{E)?^mGH!<SG# z>@mXOsRx0!-SYXm`~Gd3s<2?|*TEum4s<hDH?Xsd(J|DWlmST|L}B*(INz>X8X0uL zCN8J2DurP~K<fg5{Z;`WCsok!Gd?D|uWRJ(?VllE9_W#n@~NW;mQKB!I@4`kkcE4= zXZIC(A6-!IpI8+{>E<ImjzI70@%|km?UBO<8a^{kTQEms8~uAmmMlJUcd3mv%!hqM zbfEgm2wm+niA1d#oJMn8(c9LhE;nk8J_PoLK(0uHlVL*5<uHUU385{pa4nF>s9~G! zPJp#vl}>4Kr6=FPe(C?swb$PWe_ezO>T2`+QSFy+WLCPZPCyXYAbPNoNBjWe_WP?k z%Gs53^v5bIn}IfscAIJ<i#<-sA+ckXZE_?VYrB@J#ABY<8|Jvb3-s2{f6wTEj0|rq z(FZ>1eIjzehWU`gsw6sU{7H$S#L4;im1T8=Kulz)9efBa0`(*C_Ge&!;lAmV?1y1R ze`Fo3p?^X+chc}!J{+lW26o>}$50)|(xNixQyXpd+d3V%n9{`!8>-*;S0J;fb64SS zEIxHN7X5{c_SSJrtCY<*y@_2EE|l?ik+Ed}ijcvPgy71P@Wy2*uXJv0`_}xG=A4R2 zmd;jcaKiDImQ>{~{52PT<Ph)VM(Ek)$Byvo73Lw4<gCRh=4i0EC<Y0AcsNNCfDmMV zv?HMJR0V=rH)tS}xT|Es8xWRb!+}#eM1G7(NDj3K=+T0S(^g`+8lK8xjma0Mln(A{ zG1%w=<SJTcD!etO3_-4m$a86-6kL@j5jFWR7lnpUBZTrTSGBW}dpib*#zdO)50JfQ zM@yhIMm2NfY;%aFDKPgi->iI~m!_Cl`4kR){!fpLd1K4NH?e@-vk3N0*5PA9SDh+( z0!c_^_D42&#V=r%!kydUJ!gcG2>9T8bf*RH_>dT6RC)e*X=IIk8|p;r{U*7VdeTiV zTAB?sXp&Y%6p+xdR+<R2CU$LG@WDLkQVK{4N`i;{zMp9%SV_)go_tV+G~_Ap8}`d+ zanx=p@9dl}>4?&k29=v`Td~gr;R)A|C0XVx5t`5$STsr%+a;j<3QhUx+jMDY@}Fgx zQY?-Bq#huP)Z!N|Y@4zIR#9^+#|;IYP6$WT2o!^&*RxY#hx`Oq$GqBmr(Fv-GRg$^ za`Fi<7kd+gB+>2|2A2s6!-X9)W=-$$F0|JPusq=xPn}^X<871<zT+=nQWLM$McH?H zD{;mwA#xYr)(eL;frvSaJukxzn51-wGxOBr3A>|Wk|!JnH~vVzA(I9^a}d}3zcH*6 zeJXXxwNGvZBZHCEiEK;Ks0KG$&D~UTRQLjB*%W~8I3a_w4~G~{uT+g{(Y8D+Vrbrc zD=RVfyRRGg>|fxgN2*MUY-^F;LIT;G3fCq@OXIo`UZhhLYpQ^d$%mW*D-k+m#H&#n z!r$(42^~F<!$q1$#`vnix497R>sP2w{w!wDIo`F34b;!q{`)dpCA~<pxA?GLCkyV| zVRb`{-r3P>FCA|`Ms6Q&p?r-uc_!YR?Mqk#nA~BaQw{N2p@`oXP!~vF;0fqRzS19E zolK6HWQBbYTa(g|{d)c!tmgDH?Bj#`IcihMWLANU8MNMhMC?=xP^8nJB5Pn+-l_~i zJfw3Z%_W;GB4YK=no{H$D<nC>w7dDLwWGv0zJs21!m+TV5g0H>Gza$<Ca{ors)%fk z^s$WK-&*Y|6T%6gFc3J_owQ2Mvjce$-qV@eVUf(#`Fo5sE1c{wj#9Z(7gKTbnI8fl zm^wlt8|9`2jljL4<yeikMFx@kHOV6OjBzg1<d<xqEgKSsSFFetN7bBCIi{dsh=fpe z+#>NeDjjfS^dV^yykBhMY2PJ&W$@ssoNQJC909hd|E|O4{_>T+ug-}&VEp=8;6vWo zdr|0{g~+MX#ANO-vf|_>b)JY|@pQ-=+sNSpBnA$irr}j%h7QNU5P%O_{>-1~{>>!6 zOnIQkh$_sWN&Xh84f~NHdKv`W@H?CXQ&(U6I_d-%C4@11O>H!JBAPG7lzWA;MFLW@ z6=Z^bLf^p`fnETJQW%D^a7;TX76Ae@_*LilL^|)EKpkCGBteks@aE?85Kn+L5P6e% z(V_h#a*9;s5$bIVeVtn>HU`Q$5@%siVlE%g5Sg>PB8A-A4RUhw(rtElo0<5o#+Vxd zJz>!yuG$cx)?Gqy*PS7X*0yfMmxiMxOp-N+pLbtyqj(c&_j{8PpkV26;@%F-&T<Q` z_7JhrP%7Fk7meu&{_;M9x+IWkaK~U$YeE5D2Ihj*HKP~`07txl%wCg5F-Kn}O}u^B zz*DxkcJBw*yQA;D3GvH`>Jwc3W0aK1sMCQhToNx49hwh#&IqETAe>PCab1vewzPfy zeFmeb&74qsmyD^OfxR=3A8i27=3j`$MtB#A-+bX%xki4Bvu98Eduj&FyZ-}pK#RYs zKju`WPyLzBBp7>;E6ID?ng^d>oURy6&PFaAd02Xy2!gHTbAXN966DfV27r3>yd~$& zpL!#q@+g;JnDegSGK0W$-73kg8{Y$%taGTcH@qZc1k9sFl0gPyz85Yy%S959lwocs zAi5~OQ842ihxl)2zpSwg!@<G1Sagrf$a|aInG4IZU(V-)AQ(V?nd-l+_sw2!0Okl9 zfuO))zkSiE6U@Oz2cGYH<sDYfi1D{5WM!@WHwa&78Y#&i@*{$)tG&y;t1C=7;3t8f zxx%sazM-CYey5xAJ?I+h8wF(d)rteV@rBs<8%4d%FSF&NxTGp)&I5lUp6$n?xRl?^ zk=tQw^&K5)XxphF5N9-CQL3lnyZ{Fp5Ya9c-D3a>7yFT=5NK2N&`{d(5TO$mM3B$n ziwFc!67jOo4Vyv~zs}()7@x!L4a&P2d)XS;_s==95YGmmaCWOcL`MK<Xz!G}XYa)u zPvI;gc#6y!Ii+Ntu-OZ3&Uu^;y4`D!&lgh&$w9Y_)6%aS@3W_!mG`GzdPWc?#5nB& z3H324cR^e3goS86*o!G%#n83OSDG5%IGy^iOBuV|h1%ugXD_~t^bCP<?>VBp>tW~` z_7*g3iDn2|j+Ba|a;hM}uyDB)C@)%1k%mS~t}4B>=GuAOZ5DotX<OjjVT#B8B+Ypf zwg)Ff&YD<9!HJ<Z2$b5nQMuvuA!HvCWLj?=8^8a6<puS1ty9|>y!LTCWUoV4ZyOZd z9idcIDMTGOt^9?{CZf6XVgpL7%YU8&SzRL|F81p8H+kpgyOmxN1V2U$DvIh(ZfeyV zav8LYJwjXWKvkOD-D-Q?33REx{ik*%eqBU3knKvI{b0o_Z%2m|X_%%p3t2Ifs4res z{jQ6I!D0{lYU(2jyX<C_>Lxd!{S@IDS9!7tyHH`Dt}-c8t4v+8*PkYtMS-|-ER>#* zRjmtdEzl?-J*(KP1-d+!%R?kW#1ev(D$2#nRga=A-iv%3ZLy?AdzXj;AezlGB_w_` zeb^;MJcM+6?$LC*3IU}xWnC8{c^4L$2`*__aShvONnz9l@x9RNKI@<KPpaqJiS|h& z`_lS2iFo8hzS7(*j%!1jn6;zQ73}>j>2^VNaNI*Y`E}tXQssdu&_Mi$w8fdTfSm~z z&(|{^8w2Bf)E#vVm4`*jk^$Bg<U5*r&dUX#xABmpzBr`|%%?u$1B$`uBPK)NLe3+h z%<`~#l=3r`(z}bY1tKB^TDPJMZ;1)uH?W1+_08YOOclg`0kU>)ZTFvH!inkF7rS#H z@(-iVgqVALGP3$dhim(!KeFuO=e1@1mSy%cn2KwM$Jog2kKFYE<Tmzr`&vanH{$4l z<>QRVffO&5=H{_71!1FjN}bQ;JE(cbw{0$<X2}wr9pCsRXD>*<f4F&if$<wMO(N=o zPw?suS80Jh^AZ>W#p4V~3J5)nI`izE<eDuEZBWk0Jzv|H_G0VX9^*Imzz@a^tqwAk zo(t{u@A6hTF35W42I{kYQInFi@(@<4%hu|qpdo^2ZWK^2%wCu7h?ko&K@rcQV6UY4 z4h^x=PFU=Nj<aXMng20VpAY9{2z$C@vI5WlGBhW`K8EJ#X0+(_sBMlG*pVH7>2;0| z?uMUW!pJge0yZR80Yhs323fU=@ct<iQ&6odwC<;^*hf}v(Y~tB%O76J;R+SHMW30e z0G*mn`klLxbza-KnmdVC{_;m+?GZ@?B%Fp7U%zv7XQ(3XqQ{678<MikaSd=#3~Jrs zr}JGhep*NJ>w+b#qMOr>V<hT9G4X8pX%}$Rk<1c$jjzaWK(LGJi#cZ)SnIp>*Jfb} zXHuR$6enC*9C(mEm=~`vo?`|8(s@&;7x^l)|2+Ru-_V8=vH3oUI`d8bR#N?;p*rhT z)<USY;hJ;uD!!#%C*~@dy~q}n0!_+hE{lXhNp6&+qnuL9LUwj`CewxILn$m8O*myJ zRxU-8Z;4N9mXLEaDi6b2Vp9eSPH#p$7=d&qbeO*EWHn;)+Gn_z#?E->-%v{f1QY-O z00;ogozYZ}1157wy#N3nK?49J0001UWps6LbZ>8Lb1z?ZWo~3|axZXsaA9(DX>MmP zV{dY0E^vA5y=y}oN46;XonO(B&pDE8A%mS{5@I|<FiyAwwl|PTW@AP)QVTkkx|Qyh zG2{6B_Pbv7>}pA1J9qDWqsbVlyJ}U{s;X71*7M%ly=a&hNq=^;c5f}6&hny)@^Wol z<kP6SnWfofBu_hQ5qw_Gsx;5yNfej*`^n8L>CxN$Dk<WNNrG?Hck}i|JWWO?^Vvjx z|CB*>{<<4aCRmt%?PNFn<%c8#AXQ%QPpj@hT2}Hfc~|Yf<nPCcJbac8E9?aRH61uk zew!!R5Po%egz?2t4R7cB-5&fdt0Ep&)1<n}M_eY!=2KN@556lbK}o=l`Zde}gYx}4 zE;4vks^3MT>)Z%xhxufZ3=w^0-|B?InJSN+NiO2y8~p&rA|Ub^qej(Dt7LkaQ~-hB zkLTI2%JWI73S1ZQOwH_7k;Efwa*qyjXoTL);_7OWUZ^*(;O82@>CdZl;x325^K_i= z#=|SY@ZhKHBA;iYWMn@a4D)Q9UJk~S__CB|hymzNGGIIos(ety*=3^MC*?4nC4(Zl zOy2RE!SE_B)a#3K5|>x<1K`5AWhosT{dAa2bDaHwd{@g&x~5+{PxPYbC+~&{Ep3gu z`|>6p1|JtmIiFOeL0M5INBpc84eXykr`6TV@wiMXh0-h?=A%Sao!!i!G~z>EtgQ_W zcYYb{zc`7uaryM8@w+npcd`a(8{lf#;$3ly-+NKN-#>$b9eCS|E^ex%?5@Gaz8CGn z`Yh7RE10-pH+r<O@p%2w#-m3Obap<8PWsW|@P~N{D-{dBN{VS(mN3*PEu*WXNG@)o zOPGWz8TF!Zkt9(*j&M3Iq0I`AncYON980K>UsQ35%OBvxv@Nh~bp?RRd|bia0P2v9 z0RLq^Ok;o;jq>4qnq*as$c@J7Bq^g#bp?HiTE|kS)uo0;36P#N19(ZKUPae{)O?Qn z4A&A(Q4b0YC-V{aLlu~$(^OhP0ECYc!Olw<2lllWP4iJY#=i*-ZZ^M|q`1)TMWYnK zU(73bT;k(ll3_g<%|qCRWipu{j1+oLBQ`yxGSChHnIUQ`K^C=reMKA68V{gqJO>g| zUL_+MbPlMaHh%@0!Ems`7`9M;jk_53*C?f>xkVFr0&nAs{B1&m;(5>V3VO^v!P%IZ zNtRdT6;R>m0`bn+gXRI(u{Ev&dr?-f5>l85T(Yzuyz%zA6F=@n$1k6s{Je9t7wsQM zuZ~{+WB=LSv#7Om48L2w=;!^DA7B1-5<!Whofjwnj9xyEc3%85`uqNiXNd8=UtS&U z9Un(8kD~p<R|orh&wA1Ri`|2tp6$Q*A^IL_zIb^O9qb?Op8(jCm(-*H+uwtF&jHBc z-qG%l@L=cr{e%6JfA*s1`zJ3D>T>|Q6TR9wI@#a->0sw5diB%MtCz=n(1m9J_{IK< z=SR@a-r?Sh6BrS+3{RuIf56Y^_{W`t18Q#PCm6#K^>O#*tA8Ht|M25U^yABeXM6DQ z`#tF0&i4m<+}MkM;!Zr+*+1+>&vp)Xe%PaWF9FUG6_g(S{No-yf);n+zulAlmoE@E zyDwjy9Klb-&B@E76J7b|{o}n}v~#q7jEH%D^b#6C#6q2y1O{rp*kd?|bnH36(6a-D za4bI^@0tEQ+uJz+XvbLHo=TkDwY79i)aWg&V^{%$G#ls9Qy@H#d(k)DEuy#KQ)r0i z!e}rn@cgQ7){;q?Y^_m+A&~UaFTk+yGfKvAlmKn127?alwsDW3cTEZW;EVnMUjQA% zKWiQUI3soaG{dzF3_+A%1E;b5BF_>JUXfG)NEPf41|y&_gTbk32cBiX*$f6qdClXF zs?+u1!QRF{fJGiLo{v*FcA;DDQ7K(%wOY&;MZ+R5%XL9|#I@3kbdpv#5m%fSLPcS# z>cb=&Co!}N8@RfPfe}b~n{#(2NnFZC2Yg|%NE+xz-`~K1stQ58jVE&eK(rUAhuazu zsgq(Z$34*6GBHgK;|v-DHVPRVYG+oY&^u|Qq^`O{86|I%Nj}3ffglpi0^$z+=<{^0 zN9X6lLk)mF4R*2-a1d{RAfKPZOT->_iW`L^<sG%MUzYPEy7%>C#sfTt{v|~Lv!2gO zIN|a+a=bEMK-AR1j`LdrrA`1zS+qsdwsj7To=3^M8I)3IWd^;3LE?dvI%QuL=SV%( z&%?MHUOi8XvO51xnw!G0iAN_?uVDnvayY)!RKUQ_&!5MzabU1n9!+xKjtV;da>O`v zX#G+Daeq@FUnE!YTR^#9Ow2VQ$1oTHp9Rad<uoTH!U%@aIM)IM-!XQ!qtn5Fx(<I} z@RNK9UF>utAQf=Hz|%hLhoUMGIi1#^)jbpL4W?nFfvCma+yVU>iuTJHbhy*C_R=Vg zFPnCfJ7z4I<*=-VGGJuf2UD2w6gVnr4G0ePZ3Mjl-a6w2za0_&O|5xGt49VhvML)^ zzg~;z22AS!NN6&hRX2m@c>!-m^`cM$cXKkB6MMM4G+-mW%y17OZ@s9b9<i|Ez}A&m z2e-vITmzRcOdPD=0Z!*&QeLHF7>2r&*p+w_0@g3)mspt*WcE#|OMkK@B{whw2EPy> z`U0S=RuC9`aX=ve4UKz#XIS?55hels8!cD4XR5<VN+LLQhwKa|Wj9)X8sX7oPA0o~ zDA9LE?4Drwo*{Set=TKj^!hJ5c(e768}r(u_8sI1p}%l*sE9vJOQP*vO`2EUNFi#i zhA#A05n&k<kGjP6iB{%VBtTYeYKz3zqSH7nP%ptEQ=phGK?ercTAS{WR@vpBXh?u^ zxk%Nzu6yD2l}|O;A-MnsvY)tTm^++C^0Ueq6w*``YXs6fbvAZ7zz5kCT)yGl!XW~A za;xdiEh2b#?4R^Y;h9(-xYkamabfxeyhj1wMtFK#n2)Q97*lL9t!iBjQrl01M(i0p zgxg$kU8E@JfSY~94dU`3{6JUQ+ihqNxy}T750o1oJ$XV8VWHCx_+IPzLh8SK1gif~ zd;sMQmf;GS7X|Ez3Gk*sF@!CORC_2ui=Z*O`kRHh^t5og6wj-CUHU~;X!8Jh!fPr? z`zq-Uc7g8Os>39fDfT7_w%^BHfK8pRd9<&L@JcS+>qABAa0U<}VqO7MJ%_62#ImXv zQi<R6nU#kwYCL)zax-ZAU=To>ox2V1vT<v^Wpg#2<<ZLg%Hx%Il`n6_r+jr=9_8zm z`IEoEp=q7aIFlV>G*LRdWiJ=+uvUlZ9<NcLH<SDVMJM`hX1GvZ)o?X6Cz1vDyxVsm zDo$6O?YcXCb;@Ih?X`Ei9zWxnpQX#vtA;*@*q|k7h3&McmwKz+5xHJppr7}mt8|oT zg#pVhp!X9`+ATvGlvnwD0;`I_X;6I6nvMpr-T5)BPZs1k3Y1f5=B&qSJIUS--p0k2 zqko|SYlNkXJfCb?D;t(CKI+(&nN>qBQng8(WUwQenY<pvB3!*5054I-C?LHa4C5-f z%!?a(oR8)cdWvvR60PAsh+13lX?5k!=J2SkEpzMZo^E}0rhf^muiEZU^6RANbR7;m zZFPy@x-hX?NB0!ZK+{+L#l7v?Kca2880s}-b;{+bHD>85te;Mxw=4BjHwRenSnc&- z1vWKhZd4*e;x{aeTe!ebQio4uMtf0?H-fim0lmCTs!r?GKVR(}q3m$)1xhP-4i0|a zIeLN8zgBmxYcHnIPPmw-lTkED%L=&;90zX6;*wreDK<!)sho3j6gL5<MaM%VDwVYX z*F&N{Q1xKY?|A_8Da)27O3PE`1u7#19Vkmuzb0BUSQ&L;sT6~;QZ2$b_{%gEkkj~G zZ|%d{+Tc=Y9dTnpA4uue|G|E`M%=@WIvz=rdFp5~PfuaL?qoM-J@2ut4r(ZpW>qg* zp&V&>nhT$CFL#x4U_nQbKrHKNuuQ1+V8O<|N@?lr^EjPow1#T89KH=U%%0NL0W3Tq z&eopcNq&sG?sky4Ck~MLa0uk14u%G2!3qO(6@eD`HG!}De#aqueO_COCo{anY>Rff zAD6>49n5FI^9*CyZ4cZRM56G;8XRU>MG97^T+>4K4}f*dHv6U&SGdSWH>*|BCD-7z zCpq87=A*}7e)aWVzWKJbc9p!7$Mgq|ik<IwpY1)5FNSb>ws=@lLWcN&imuHHl$u^l zM0VK!HBYn7>5xUJNL^*Tx*Q%TLpmGG%j>JOO3GP0OwNF!4dCGv=uip_D>CAAlx-PZ zd>@w9@XhfYuZ=g*Dov;y^QLMCbpSmiDg#nGZa+5Sl~Dp$BjQ2fK7v(PO+qq#bxk4m zm9%OEPN~=`)VWrQO%a|a*kisHz-UPqf?}!wg*8WwoGFuddNGP4SgsSG+FMk)Q+3yb zw4&}(-5<uNJLgti2_Erq?}#rNR2QA<qQ^D2H>{&=T!=i);5Ar>{_VQe2Bk(mgE?K_ zJo86#>J&ZQdUPhDw|j6NW`Ijnqr)8*6(V?a;?cxa`3_d^SBdi;L3x}A#51a586uo% zMcX~nqBi2L-Gie_)GlyE&9gQxyy3iH05dpMCxAbA&2_7Eny7A$r!WEecuYSJ_FwD` zp6x$>PPY**u+Qq!-IveyBGhsIuy@=e1!eUA{B(Q*&ks>|Njk>w4|ZPsoq#}*@ApoA z-rHlf-iy6oPUtzRJq0d4-z5d-%jo$}FLtB-7svb1#?MDPuU_pP^{mbuVng5WMTalp z=l<TaFW@7h_Q0A%hA{jB_d*!q9bN~Ix;V+a5N5HdIiSgG1bn&y)G_>K^9+cH9!b}% zT{M&dg4wx`7ffr(W_d;uXnW<$GBrH%RSGm_(`DhR;>LX-%TzR!+|Vfj+B)mjO1c}( z;W)iDk6K0hF<Y`k$g%7d1>hJ6XO-0Zat~^*7jX&;P?sfPHmvj;xJZqNU=DK>e3R|b zyb!V^YPlLjq&ueD^%kkq*kJ7qD}+Pks|zF-sDsr@WiSYrH1kawpM(a#?OhODOa*8U zuQ?<gcrB=}x*)Xr{NV?0hSkMd@Ezhg)Zs7|qz2RCC+2`@E{z{9{y<4`nm#C!O*5t4 z^FL<76miNFts+AoI%!Cnjdm@(i|8aSldMcF8Qr{^%`2(dfolN}#X0JXm9apdY}I;r zml!5YJ@FccI#?7T>eCXXMx<tz`z$;s@eNEhoRV=>6><!>l#U*_r`j93yThxl*5ord z8G(K(+m(KK1xEQ$zgIuk?7Ny26+S`R>kQ&j#AJME@B$rYTanAU_aeE*ZjsoOnT}pG zj;naGMNFVRf=LEoT~Azr$#aFeisbKbajGIX?$aqsWM@S(O7V(pFig1TF_h8yIT9Zw zPZkX{vl$r*W1aJ_54^0o@1fd%0-ILLy`7^nEuoFy(Ee;Bx3p1%oHibf1{!<kc%?+j zq+02eb6}cc)yRlU9AkrSz80drnlYc8ps@k=Pc@ik<MiDCz_Ny_D<%ip^7Tz}bDb9> zBfH)*HVHCIB%@|2J~lruD<GOm5CQF5SRq3++*hMW+Z}3fG`|E4c05^Fu<-_yY6nBl zv8cWnoMS7{>MT;yuyi_w$%VO{+$f8K9NI3f5mFOS18>b)Mbq*U)|(m-^i6*)>7>Bb zNrXIVjp0HEV?zdMT`6Ald@wW^H&HzR85jy3CHRB^y8V*v0yQ1hJCoD=Z$wAvH~z$} zH;X&M+*&8Q2$@JsHqLYb-xP=tq<Sl*02N(lr_W+_84wlefCNAyU$(b7s%r55L3_G~ z+U+gA@S*H^tA6bx%cud|Rs0>#-PErKOd?wMTXfk`k7Ys_=X4)3$Dt>Ud;ftnsnPon z$eBXN;9KYYhu-@S-Pc(JKltB&wfaEa;ighQSDnuE>W4gxu>KSp3Os}*ljR+Jr!m&8 z7aPLVEh~edmKJKk|L()7RD%b*aMLSq&U*gVtxY`(5SC6p3#o9O=v5#>w~_ZCxHN>W zy(za`nS;A7+-1}Ih;^eD2<&B8B5>Zk|DczGJM%o#)VDsIbts(cbh|Y?Y0|eErdGxY zz}>RMC7%l)dKuU|hbdnVzcPW}veD$MqcF~p$iM&$TY_(f4NESY18eFa&%V9@;ch?6 z*MZ1g0VdnRhbeJBo)z;M>AU#NC7u|}rA4DTB43>&eNs4z0f~e0&d&F{rnMcV7`Z^P z6Q8kk<QITGD$gpDzE)s9+k3wA)4|E$=O6b^_6BgBJvvs*PAhtyy{=vtjB?;vE^=}l zfC~WK1U!0(g<z$j`ebrUOJ|qPG*@AQ=snZo8?5uU5|8|$XOx4gPPI&ppopCjI`l7f zGhn1s*tTphq1#0|A{)#^ThADP5lhE(`Mq~B@?=|EE-QYou`21Q>31)Ba<cRNQ{tks z<eG#*HjI~9^0GM0i=^{2@G%`0sCB!2W<+_jbz10_0&Ts{F0az)*Ef?^7h8uxp0?pt zyBD?LE&hS`_y>x#&-~6p&oX9teg!57t~m*uC(<Y6)5wNl3_NG%UR>+S`Nk=L#Zk4o zpKX9fu4K=q+rPllg@xr!=)Gt@8zFCPO&p1Uh!M8c&6a%%+1j$I$cVszX~p6s(-T1+ zsjEG^uXIes`gk>a#@PEAo8F~08$6O(61poAT|hf8@b04hk!Exumi<<;z8}rjwupiS z_Jxhe<3tF7%@*Sb$pe8bZ&0U1Qx>T<oa;u>zs05z2+}0;;AM2cPhIR~Rf1Nv+YzlH z6gIny4Chi#2r1iX-6U}V%jiMWe%OY8_46rQtFJ;YM)6InyB37&t=7$Nzy0>%=A(y? zH?4Jw4{@PB#D6v)>93DBaVs|N#bY7%3$|Q%R#nCSx|m=j(D*~k%^hUmkidOADQ$lQ zQq=HOy6hMiM(b|Cr!ETl+!MyvL!EgwNW>qkW2>F~TF6#}DtWr3Gb7LRoF>W`4rAcM z+*8vU5BV_6EC~X6Tb^1n1w1#Im2)eNwf4^Ip{Lu^=dM$m@5wJ%ep7#~j)2AjVrba- z9tXZt;#iQl2^PE}Z_?S%hCX}JRw_~>kxS144@p6K>^F6fi4(~&fHxezAvX>ZSB$Im zA{oxfd%}f0jc<<V61s=hRt`U;%e+aF*-3m+hTp<*49Dgk9VR^M9$Vcs^UP2NVU~F6 zPbYMw`33GpXp=BSO^m(*L_nuT6E)s)enI<CIj^t^B_6#+*BUuI(`=NytD#~apYDm| zw?2=+j<FcSA`kbXX<WSV+&*GDf#J~T6bbuBXOo)<`c#qS$Z$TLPvBg9n?xP5fq+BZ zLk?A!J6V0AMLcA)<YfT4LV}c!kxQ0H8fgCQTHxcic{+k2jpo@XMz&jN7=e=0+<L1M zUcZ8Y5@JJm!vfFfPH<8*tTA<&(1s!dSxlD26)vPxi%9u(gjgxNc6N33t=7E7*}!6` ztBtk-OQvW>%X|iL5daY8u&_<Wa$&v<W44^npu5g?G@JFsgt61Dy{{psV-2dm)O51z zpX$hy@qLQ5m>FI#C$K<SS{18N_mmxRmS1aRYa3(!@MV^INgX(r6Zc)KYqe|Rwqd&a zDD2Kg9eef+Dnw9*b<O-ERirszePR#eH;M0K9F!WL_oL{iG8xY&H08u!+e)iZIvytl z;?S{4qQZDvEAd28g47xMnip_uX1i<c@vEU>jl4+V4jpUmUJi$)D=5Tu()Gtt5{QzX z1wJ@s`0aG#tlJF%`@7-G=<MlqNs8VKQJ_Wlqs@&+Um~xjwos?__g1it!;fnt*wmrV z5AyOfmpeVa-%U64SO2#6)!(6sjp*wyH~t<y`s(XLXGs&}(w~geuQnfT^srhl`ueM{ z9)AsgAASAJmyf^t@~f|{tM1-!^Ym>z!S#c}9X7q!SFcX@oQ(SE0?g0xQNzqzi2PJI z3~im^3`sY3uWvS<{nqCH)RAL7I^8;RN?Uw`Ds4ToOQYj(BNya3E&<?=;kJa%02u3- zfxRThI|<b~4k_!=k+0<OaAJ|UBk}1;>4^)Y`&?vaGC2$tVCme-#OxVsi?nlDkq}85 zB8{OAu;(XvU;;-HD_2ugWl~TA4M{A8v@HvhAQ`kpf?mi;(ewEojL<*^`D~|olh5UB z;isqoE7^GleWA^8FbYKSE-j6}aKLW`SS6ru>`mN{_Qz4mr&5A99<=GHat#o9Rg#g2 z^YJjAp|Uq{aJxQ6WLk56?$5R8D)B>V<nwcXieaZR%VVSI<;mVw5SrGD#?gIT&i57S zHT4glMo~_I9KN$o48Q;d$Y36q?29HT2}$G3C=%gh2F^qd6ATE!%Ffta1B7&NzzMa4 z62ft2Ja3dH7Lj1iKAL@N;Qxeq$L7(Y4EK$<O!)XC1GS5bB6-WPJkTxz?PwJcA$TpU z(;`YJieQUM*7l?>t--8Ew&DJO4KW7iw19%sXla!3q)vhzx{qxvKa?%`hB|WseYPbY zHQ}22Xn{unfFl~Y69kf>)HuY%J)X9j#`dwY8wJv)YA%74yQB30FSOp|h1kSCIvgFD z>wSm!xeLs);PQ(b+U{4{_Jtqf!HWyXm0EgT($BNx8h@)}kB@vGTpze$aRIpR8~BUC z3jR6WvJDx72y`xF(zYl0(Do^I5$_I)>TVadk9Vo)9-Xk!<2Qm%`c7Uh`ryOP-GYB7 zK{7d1W^dtSBVzLE1|9;97+r`e3Qh}>g79rjbVsS_ZhV2EeOP)-N8PATQswh=)4}s| z4w@k5E83T_X9ZHQ&K+@2>IZubGir_8nJnhjWLPQ|2tD%%N+K{|^C;~m>HmAtD3?3^ zHk*6Mb)3*ikGgfqy^0+*3fPz3lW-kut%_xcZjjmx9qCDy4j3g-U5}PUtOQOJ8l$Lz z^kCH9%lfgA(Kt$XfF9`*6!iz{JbmS$*KWY6XW<=vpBRcRQMWII8NG^2vI(=QqG?#5 zVSo458?=4}yT14yT)XV?X1hPmlyZMZw6^!}zquwA?`?TZ+x1;tb#ZMZ1zlfgw~65b zT$v{~hW~VKvvQBFT+zrY=LRh<KjQyuH3H{OECy&LFN9IfMwrO#rK8yB>+vJ1Gbn&= ztP`#dOKLu(ATvE2Pm*1cOpuso<}r|<FijBF*=*^(7?>x=2<`lQoH6GRQ-{f0fR$a$ zDs8MkHb!4PHK^E-B7{I@LAb{8c7_a3j~|DgnV-;SxgWw~esqm-*DOv1SRnX!+hs6C zF?NyY*%`5qBW&aZ9#8V?t_1-tc^Cp3GFPHq!{2&}DZW=>OGnnJ+vs_reY|uHjo2Qv zK712j@|7WWIbS(;6ys~gbmGqsT|Q<g?xoeD=TFU1Tsj6WeS~l$t4u?s5N@eubSS(k z_I|yrZqPf8<WoIbQ1}<w<yk%xt3b6Qc-1+A9qBD0LiR!V9lP`~H%<M7dyF)MQ5lJO z#v*70Y+5jIb2L@#Npn43z*CIghBqp5N7mOjWO&IB#GtD-T(fQDZk1Qg{YnuYfHO5g z8kiO-Y2v~iO*aCJ7&J-Hp3vEDm+4zPtYuL!^o%SGVR1XF!EpDyENI|Vp+rM-Jd_HA zZf+=C4sElhQx)UN=^WjjY!YLH6o%Av`xr?Je`j>Xx{e7c?8S)p>TBo9j2NWIgG4)V zh<qD0w5en(Q=EH=^ha77v~@_VtGHZ=xp-)Q^wGAS;)~gr5}0r@r^JwbyfI?7ArX3I zW1z<t1$Z0F=Oy3{)|Hk3xKd4vgR-Ms6nOIl{vWs~(}ks`uS_QBQpV;&s13#IlBn#q z4WHFTZ4Db4r(<_>vkNQv;mk9!JF?E&NuIxnuabCFasWvQX^`m9VA1pNf}k)cCAw=T zu#$#IyHkgSR4f##M_{T+zr!4pPk(ZCn?@^*3L_|@kc3*{r$mV@!1|CNX$8{G*g9Jo zcw@)aN=8Fwo&gK8bxg{F^U!b5Y1R!hmA0J0fU$c`AxTRo3?$(KHe?E8Mmo}hHd@?k zSE^K@vz%q)qy*<G44G^wSaq~lP!}oS(+myHyyNF086%@Y#*s?mpk?tzj+pGD9f=VS z*n;14TJFf|STYhe!Q=VVu(*6_2i`e9CqpXOWF>Fx67M4@b~9%U@dx6u#{t~f;Jkzr z0;$W}6zGW@nR0k2R#-nW*JU}CxivPD%FteVGM_?E^OA#ns`zp>n5&q=@H)ejM&q3p z*+1d)@bK{AvuAz{bj@&ff#o|utO5B1p%8(ta+T-JW&;!F2ds*bJCyDsz*7s&w6z<d ze#Nz(0qk^qV-`3uj>Oc_QjeS?UG*s~2lRG;Z~fa!Ll0@xSRO~IE@3t3_(6dRMwZR0 zE8ufuq>MDCt*u9AwZcJXG3qCF%?DM#eu>Z5Kk%^GYjz`I^`L7_?+?5M_i~LhKG}Vp z%pJ_6eEE_8+n;8jeqOAAKnLndGIyDUJ5{gcEQH#MBd(gMz4RRzugQq{FjTCjbTdGP zOUOyMSvcPYcxsiMcDpX>yH`6Q;Bakh`Z~cgn+Gf5sj{l90X0@rAt3=8?x2@R*04tm zgvSWMe+8om%m2txt*kn5d+nkR-6=V$2O_q*>ZVh(ErQo|5>rej9d%7Z4-X>rW26`n zwici$u76{v<({}xyno4E6=8ac&QLEspA)wSXZ7m7=>*^3DFjEYw=M5DZ}sfrEe905 zV=<-!Wr@PQrd#}kf`*;Z$dNL5yiIPgob6KIDxFe&=ScVWsm&l`xr9%<()Qy*N$h!8 zhF6=+2dmF!a3%u}p?1^!e%#!yFt6Idsy?ZfOX14%iqjdBj5mq1pqJpvGpfNh&Mf2I zj)!2}JORc}*(80Fh(6A#cy8{!s(NY363)+E-@$XZ>G2yuqZ*$O--kpKg>%!@ZhtFM zu5sHR>k!D`*cEO&=nxq4o?GMx81w+NR%*c4jyqAm=_%yV@ni0HY`@MjG;<%3OObe% z;CV(uJ%Gfr1~O5zJ+0I=(h4$xpFhHg1{p47AZi9K!BVb&YS>)k={DwH*w8M$+pU*) z;Y2Gc<RB4LNhSCafco-QBTuEfcPpk!BpcheFtOIlU@KbM-Kc}np045|+6Xw<-TBj@ zKrEY>sbR9U8D=;fqP>{UP)2IC4leP|_CI6eoxN?7ae0QBD`?X?FX>76+{TZ8lK;0k zeQ=v0;dGe_?a*#az;CU!FgH9U77_UoSqcN(l0&n2Hk%3xwu~@PZkTyOe%IT*ir<Kr zmK&WEKaPZ--Sm>8K!JToT)!QX&)3B9S`<$pY-t?F0J=tjdR3trC<<|4ld)%^1&G{% zwk>g$1%yN0*J>21g0Z`<u8RCRbEWedHOkf{%UO=u$81l~!yB%)&>7vn4k+PSiKZEg zPN#m2VH?}A!N%F*g*ZS{{(ZDTqv%jp!Uui9weASyKJ^>}miQ`m4(MXud%^kadaflj ze#lje0!{hG^{Zd|gArxy4{KEC(<zdIL^O}?RX!Y(WbwdF36dwcyg;}&$ZYwu0<D`# zQ6}e0W<%KsHX@8Sj#!4c^X!eg2GjNM@NSk^caq@pf`2tA7kgxpI2dY^M8_q>FF7Gi zTlB<$#{H`RpTfH{Tpkw8I%W|71#Vf4TEy!<utOo-`gR2tt_`f7V~;<}%c^m%daU3< zHop!^zf!Sb{x&Oe%<5$JCUy1&Cl2#1FmG!RLDlIr;Y3*V7=xyVCrAJ6MTa{lyFbFY zwzGeLvCMiAa1@Vp5##^7ZF{z$911mfsyAj$z@!dTpKA-pUVfHmby0Jd@`beQW*?5i z0DrpLkDQT4s0v3)2t-EkSll4#A&+;1Y8HR{4k8U?phyPR4%M4}2}x=W{A2*)lK0<A z$ZAp$p!WqA4h^X0Ow%{6d%=bmRIo;4cc3S$xPh-zop9ZgQ2Qf8e7fx{sD?mTP5s4> z*`As{8QNevEe-ZUOWOVj`8U07Zh4tV*&0{R_QB#Gw^<OMXpAy8b6Jil9Z)Dfnrui@ zR6;tmm;t=aY9j~ETP-)N(Hy#L@j`^&^#YuU`ZV{vi8wi(HHDV!hai$%c|%ardlwpX z2l^9UYRz<K1)B5mTfK3cf5I)k;`aWOTRV*Fj~J7N<yF@lOo(@}>lJ9tsOs9RLnkol zy_&Oe59kKEH*R}g#y$2M-LBc+1}@WTwb(*w3Tdv#sksK{g5Is|7|mwfVnG?HNzM1W zk?brygq+zJHxmbg`9)V0Z;9&Q;UZ+f=s}CS0tM8}n&sO{JYr4;RF=fL)!Zli=x|_> z<jr+^6b_+?AC!wSZtQSroFdeIY>=~fbSp03&_|Z^(sH#WzqCepODwO3*P~LUPVA^H z*RhAiHvHWcM2ijkZ*j#&BDtJTz>n|>QH@u?<%MDJoHZs4L=e)QcnJL5jgO!vKZchG zBM(3INUz~T;I?#VAr1Nz^yedK&nKrlccM9;lHS~r)~rHjZbxJ8Kwmx`ZMijFaSr;1 z6WYD?C!?0ycCGcNEqke2f%JkLXJF@ZsF_;#78VcBXwyz2&WihMdfG%Sx*=JXUD3#) zV2g`H(-jZZf@adz7z85Xl57ZynBmvRhU01$ke}LOD292uVVS5{5>i+4U1QGdPA<6) z=_gB!v;y3=M&2-1p(L{8U9}j4UhbeEo~SJ|BMlcS!AHmKch91t^&HEHes`_ZPY5Yy zvd`Y*z=?slI7m`e8Zqq#%Y3&kgZGFxut<&$;IHU&&C6*r%}b0pGOQ?qk&z)9DPv2T zFu6mlmz-+Fr7b2`39lXug7W@@8jMmmS)-EZI4CrP>uy3Wwj98PymT%k0^%Dsj4kr{ z<&_%4TPLU-HGwV~MO+OSz8wx7I)Q(>+F=a6k&{Z)xfeGoIo&`&bh_W^a-_9VCdJTR zA`Nu9uxpYM!}TEJQSU)$0^9=VjzBqAH+s>APTyb~6<j7&sZnDx4T@=jgCBA&(BV9^ zZZBFFu-6GWH!yNAKZIR~L=R|3o&#=^$y?D7R)BKUAX2XAb*04;ixJ7@Y-Yg|fdAp* z?;rP1dePzj@v+FgZzC5+>-+f(7frCAcE5rG2g1Ii?(NqXgBSlnmg$08PI>mP*yehq z%;rwlPDve`fJ*}JLkSP@N1ZA!>NBm+Q^e?5IJSNxgR1&!9XU!LvZ}A757It{zK<=+ zOFV0XBvp}6JB*H{6J`${a<HY<E@>Bnpct8@Mtct$?d$0Jo%`^Mtj$)vBG8x`MZope zI)qb7_`%;c&%{)R&!>iVE#I6KZYaxF18lN}#o+K~MwodUg~Y-O&uZEVi&4{Ihgm7O z=mw<CW}BOLw7=GvEtZ?GY#oCEE8W{6YVkdIsfg<C7iH>Z2&Xbc7qz#PH>l6*xW`Wr z|M+1pl2>?0?mAErV0sd79O%-5y~Ga!o(ro_Tf=n(KX+Q;3+^krbM|Bn)JV;hg~z|* zw0)ATQs@8mRY=bW7t*ff&Oxy#D6h+g)gtgNpkjS;|Fg^+ms7kgiseUvs8IXujB9D_ zfGpgt<FVwre+n}MaZhq5yCJ~gN-!|h6R*qy^r@`5*kbx`vd#*j(XmqFDkaHq-r}W= zI)+mF1L#L|q^~B5OB7Ghw1})`Z0jq-<&wkgbzZ!oq)b_ol0U6#BCEGy<*e>|5XrhN zt$>>ylj$*8Sc{V#^*tsxyJq0#dYH4XD7h&sr&GK(Ab>J#dGF7ywM-kzEStuLS_>9N zurzP5(Bl=ho8(4yduld<Ecf)^iKJ?BgX03rt^(pxR56%}VY2N75o=y~Jj60;U7#5k z`HD*qT57FfG=UU@MNKC8HG2SG<m9f73EIUbiGLV|-?>otqi0SYfS&XIZBox;ue{@N zEn3nZeN$8M1H=J+oW8TW4rraxbuA`)!OJ2Z%_*#9nxSL0ZAUrJs&oSNvyr-cP4W!g zG`Wctf-Xw@6rDL5`Q@2YWH#%&OCvnvp2OIl8w|9y=Sg<6`IJkLojUxjyU*PdBhYhr zbxt1g_$_KbXh*>()|-C6@Ac-%lWq9-0hL*&(!b-sp(u-czD4+hM-Lu5!KDnbDS-w+ z7s*9~=7{N8Qpy~c9P3N140~z7!kfl7hN4^{0eO?oU?C*PXXqFet_M-zdf!*%?S>=1 zteNrTuzIEv?#zY5yMm$&<eUw3h!lI25O_*vJWAHZYupWq5Kqzn+joF>_c=V$9`NVq zxP#IEeO=)Pt-9bu6QkuRP*H0lg7}hgt6&}9;c1`%M;*)Q+L2%D<|ry&9jrC5?}dca zPb)rsN*ET#+rwD0ltUGByQY{E5e@@&WGE8hPAgp?uX8_TSCzv>9Zs`8MrcL*Y9f9n zP}4}Ip|`N3&Kk6B%f=Ioxq%Mc3lAPjNLct5pYEm(9{ZL+5@0MmWkTtqj*vV}mCK<* z5ia~XuGx!}5-rZ4b=L_|r=YRcS1?G~LiP!n$e%JfDGuR@KfqcWPos@n!aq3ri69SS zKu=oTZ2K_nCTl`o!rF_xLc<SgA{hzt5NJeMTVZGZ@3IyB?^<tf&qNq$^1`EC$vx{w zIr|1}KKjO--2wf>3dgrJQ9ratqf+)T#{hLgAWZVhblA73vPg-A(6Qe@sj}9R=u>6W zP<{s;Zs&^pVGKi_k1=E?#*IY&j>EmY!;=^j>Xuy+mRk1u>iQD%q>SVyY}PMaz>;_* zqSE9Y%td7}6c1G(3W}*bLjQt8J!bS6Ab(O5c8~ZM_EuJLDJh7LphZitK9Xz$MS`hi zvJJZ<&a{J-79zp{^A_l!9fOR#=@=GaUDhnm8&d#klnA&R-GzgBSg<(R@KAvv&`3Ph zCMFmg9ssF<g)LAQDgp{HY!q0hlpBJ3MJQ)UGMdlKS!$xX>cf;6Ge0l{Ki0r>+!cL- zMil9Ujyq)HP`)^G4-J}X=@;oZG&BrDJ5CEYE`5Ftz@Fsl?vglI9w+2C+QZs~b$-w& z*yURXdf{{*a^nhTpLB_V<y?%zx<Hn*P^un@LF<tZihyeEnHct%=@$=-@T|vnYwp!$ z<}{o|1F`v5?+{<*+;3zW{{O%Mgb$X_%?aSUTd*R_?#4A?*UHRB9lEb%H0;K%ch6^( z-crhr5TB=G(Umlx|G{B5U-GRhzV@b3mmdu?s6Q7QoXI2*ADj)C{8#2uZ|mv8+<_QA zt23MKFhFBwcx|@><P~-_MkeFhbx#HP9GTc*aLJou5GV4z9#iZ#0%k-O5`G#_VnZCZ zW_W^H7&!5wHo0+F{dyLv_Q_S0&nk}e=E5P;%vWEED#u($7$PAUxDQshj@iU|{ng&9 zZ}k32CzPvQ9iALsZ^S{&$8$U)@D_-21*-|#wx#d+79EMv7GAydh&XVh3iRg(vm!+} zZCW#=>#KYc8kjg*ZrRbDDBR`JxQdElq;nh3<YA)Xe#H?5$v*GlH;OQak^^hAU`Aw) zuE+8i6;)nkftR>`veqOnSm}lYcZ1f|aA1Yx=5SdG6EgpTik^p74700)vmk=4NWQ$% z4Ph)<QffuKrcl3HFeFXz7!@ix%gJ6gI`4FCRtN(_@X=ae&_)%7E1OR*fP*yMlt5$W z650{P9hs+3b@0G$zQlE4>@!<D=7jMf2gNe#e51Z$C!k7?^|^%;WG%(`r4j^;BdZ~B z;9L8lxv(3=ZBt5DWa%n2&2jnH89d_qI07NuAz<LzaD}5kz%79i^bzap2Xixy&^-zf zgSQB{b>I$cjGN}5?*bUtoWwJkW~#?I3O322&f)7PltxNT6wdm9(SlQiETJB%2*CX+ zdTu*qEx?=sXGvRh+HZnx<IW10k5P4@iB8!=6_knstD~Iw(feyC(2%SRY&X@$RPCiT zG0tWucX42u(rR*}qwpbXCXx84=Pt?@Bd5-z+V`vPZ`2~~amEH<8kJlS*_@Yux9UHA z`V?u33f<9;+g=`*c8s43_`el#3Tv_0vPdlX=_wbsvy!TSv#A}A@NHaR3ZIJ`!8Gj8 zl<%Q*BT%V@VwKXC6W2zs=)B;0QfKk-DxHi9>(;_T^$A57#U(`HkW{oHn_yOv95=Wh z?A+&?7BVHYP8scWy8Lvx6M`+?#xoE&QHCH<hXj}~#zaz!abh&X%-B+B?>1tcseA8` zqd{Y-j3fkA@~%Q*3i_qDFWQlbDDqXe=LQ1#IvfZ@aRw-0*BDe`HsQG!-*$;gN?2~T zHa7X}0@jh{tyO)+H~>kww%xc&-xqLPXa8gM)j9<%P&Ms(!0oDL+__ORpwettjdQ<) z-!Jjxl(Dcw$&1u+90)C6E(>q4&<3hzs$aX!1yW1b`mm}m16o$$Ze&`%t}XYaKV-j; zoIsD2s3~XMwzN<>E)w;IjjzJJL9l&3j?~8NxM=_zjcI*z>k>_dgZCaskZ0~c`tdY= zXEG(RP;_v(^UGlW#fd3|$$%#D%+I{8Uf(xg$*`lT9JF<~s42Q!{g7nHkLATFTSmI3 zxMU}ZnpZn-;#v3-c8p9)?G#pdnC)OK7@>?q%S-GQ3ah2VZCe9yGCK7*ysa1i6=|V* zg5pqS>&3#ASlC?D$QthXxit+A13=39bVd_Q!EH(O6t%Oqa~c!L#n>)m3#QDP+;M<X zQ@n8rJ1j3}S}{eLh15L@8E8ks_(I3AWcCn;?GKi_qAKIfjPq+Q=P6f;1l$k-*erL6 z1WYJSfZL}a+DJ*4OXEslo+xo_tDKB}9dAB*JSj)N{`zM8_{*>0$(vut-~8p<$(vux z@#x!c{?c;lG7G~HT-rw=yX}=i_Dgu6*a^=2_U08ZA*W_+r5&~JGx8rq?SHlJcL3fx zJqXxI)~j%5+@QSSBzmi$!Kv^s{M13zI;G2crPW6o48HRrEGfi2UQ+0GAoYil5F|T> z%E5Y?rdh{4=-K4<|6?}gZhQ)SF>zAD%*xVmJj`rt*ivEI@y|1#2XWa#^Io#^sJ8)D z&=*=x^^BNyYh0BT`Dfb={iCWsvCpvDT4^+b!~pCxXfxDRB0Zt^&w<0~)hjb-&%>Z0 zjL9uxLh0^O7^8qybhC*!nYvNOqo?Gi)VQY<R)c2O7C2@q7H&<ZbxU{e`<3>0i}Bss zinQn60Xgoi78S8Y<Q8hn+^kj!C^=M7Q@*s$hlM4YjgxOM{ItpbBCAK5T{H=b2VB@L z!nw;zx7tx4maHB1;ntS*A3x12)`z!nJuU~cyi1E=H156szSpGkGhCAN<p*A5C9;N^ zi3%xv?)O5M6S{K1`vxNq%rjI<{7N1A*syEo#Gq3qA1mD!N<o+l)j58IfD;34Th3ir z3110kZej#hk<UrL>W}jLyk|laD|skPhlU+j72as-sTRn*fsELwccq(mmbyyr)J6id zkBR<RhFC*(m&LL%aN5OXV#MVs>*q7Nx-b(jOpxgzEgqAENav<P1WLkgw9Fm?w`|$a zknK!lC(<ww71|m)s={INi1AKIa8=P;WaPLWDPf$j@!s1dk&7j&aKB2cNz(DNfAVPt zKx%_%QMv*iz%}h6l)Itmca)Z>7C?dCG#(|<<s>iIvU@(AvNtHnL(4f?X5Qq*oBj&f zv|m7b`z1+Wf9CdHj-!{*-ZRtQA-4B}YVVla`~HUYna9u`RQV^i7u;k(8MY!kUr%9- zXKoq+luGV7Oxr!S20-!%r0uP?G^La;CGW>HL+@KOwz-ZoQp+eb>f-7|;&2KUbV^=q zOsz`%9;cUAsK=_V6HJoj%?Z2A7^2|FUo=PUtLtmLB3%}Hn6k$3^7hTpoT5a=w&~x% zMG?@cLL{4jm59cz@+=rOtZHQA?5GQ_cWQ$Nn6!@vXl243G#r7o2KHffp=m>xFiQ3+ z&U+Zlpt_lbZpZfEIXPUXYHD}U(Q6?uP+zS^_o!+{xQB1V46N>)UBq#c@d>h4u2Yr> zo?5N`uQ^;Faa(jsPHaG$9!z11dAU1Ky?gdQL5liW*#ow7|BTYnPb&UgZd<Y=dHIs% z%t@KT(FMGT(qOV}fjUQpDIwXRp-Z-k-?ARCqjP^Up(f4DGO6YY$+6IQb(U7~1gQQf zqO1;d2P;)3!)Oj0v>2k|Z;~Ki(G%q}6o-TH-${|{tS9)?F6w$`LPG;;z&ZW<1Rvcj z<u?IoIM)@3zPmD8huAuBW?8gfpfGu=e;*|A$o~C94tKbH&V&KmcZePkX%)&MPJ-9@ zw9}<TiNNis+^%B77r{||nP`I$G60Ap+=P?FS&J$OXni;c{&Nm#DT{J?+QxR;XT9jO zjqUI^Y=OTaY<bIntOnX=F7Xvuy@(;fUxEXF2?{>Pe;f#(NDSB%-^QMXx`^Ynx&`ZC z_rYc(Tpav)q%1p9fT~uvKT4=t^Eo2sS%VTKC#V4{S5UY~rDI)Z+bZiR)aV|(RBfiq zE2C;MYJ#2{dq!gu!zYBDiWIHZ^au>czu?5+lY*M?j|pRp&-Poyx?{oeJLeWj*_92r zIwoy%r%-y+o-&w|DmEYQUhGXi96!w_BT1$FU3zTI<{8R)U?K+jxI?URtKa)>>*4wr ze{Ff{9Hz8X2CMaX0k-gh)uU_OUwd-9L(d!FmwS}eG)9k2tWeF-yX1?NsA(IaB8?-6 z_(lKF;OR-A1u7k;hqZ-DRuBHOya;Rq=Q`-z25&|A6vf?EtIfMeuxQlb;kUeeaCm3& z`&=hgB4f3Kjaj`nWGB?170Z7xz_dgI5oZz8w|e>&?T4kWyyxc+w6!CkZCwjP6z{l` zjn4a+1TMAmsuDjCbgMA=LB#%%q!Lq`8$C$zN;f$tD=pb|%QwblktCHTU5Oq<tzHZM z^&fuWDr2t_;ObD1`y+noVe!f6i;%+hiVJX*K5EjnsG|4Fw~Nyb&dzC@9^p>t;Xm{S zzkFd^w4I;#`+b-WG5VcrgI}N77J_<(7Oj*%2WC>6z`jXmC%J9NhaW+Dr%fzy8?gj! z!N2+iTvgk)0<d&VZ?~4h<Aw!Lr$xy;X36M&tGl2X&xC-hFij;JW0617(a=^P+dO{T zVA+));^8DYt<WxzY|w$vg=Ixe=w!L%LdSN{J(WRuZiziDd*oOr!lNv9R!18>RQN^) z!`Pd^#imTlAR{+;#YWADzK#|1Pk>m`4uaPx@!-~!E_A~9W&^BUTp3)wreChZclNU% z-OtOrS)+2TU3Lf>=F<z5LW^HA*#SZ=%zsgj9;Opu1Vu1dPdeWp3~;gsgId8Q=`w+e zbxtjkdDgWlYVkQqDh2mL&mw+AaZ5Sr=`sp>r{yHOkQS1^2}_+-NkIO&xIV?=V&vH9 z<z-dQFFxg}TDMkJFL+Lil@rA_##CHQE9uW^{}j`XNP$@g#P<i(^J73cnY|KVhroQs zrSRzp%%98R(@}%<8Z`h8<Wnwz`wlgbU_hu8rni(t@P70d%{;S+m8rRH21*4UMAjel zz(U)76=jyVP;$WnR#e!hlqI8a^k`k>BGsrvyWF03E+)sW_tP|^OV$TuY88lr*smhF zoMS;Nu5Die@*1W~cR}t~CO}GzKn%9lWk~ls8H+JU0bSTnyKM4mm|AyYsl!w_1BCo% zQsgfS6#8}W8Ps)4cM1%D0G()IHm?Nla9N~QcWLI}{M_>OHJxN}OIGWW)r-ys7iemC z1IymNO@*64vkS&-plmJ#@iI$12mwYvfCTOI!kgZ6n=#8l3x-*`RB|u_#m#Gr?j)Xm zr@~G3yhR^wH_2Fm9OG&LQ$Vc0O{epzC0fE-8c04I&I^t}-51wLlz1rjBa;qOEUK>y zppK1QfR*-tdCKm{^eIY=tHt*c2vT&~rmRb)C#PGRXVEqQQ1E*Vw7vsP=(Fu~bL$Mg z^EkTQ)2&BmOZdvPM&E%p2-PclD5g_CQ2NDnHdY%<xWDwSlM@crfvCnv!eoxsVYII9 zk>w0sF?jYK;z8TR)ofw(#76&md%^^jo<cY<Qi|P4VcpHVZ7yiU?g`B8M!f`n<h-)B zeHl#M=0R)7UMkQG1qcIc*0kGP)qT_AgT);Tt_&AnwYQsRq4kKLWoxoNomQFkZM(kL z%h0Hoaya;DNrVkKK5txhhVx3j|IigpT)CLPA%HzGAs}W4sMFN&I<y_|QNxZ<pG8To zo5DaX;^dZ(5tzA^MtCO<&L&;f6h=?{t-~Yv2MUQK^vB|!1Fw`Nm+bIDq9r%-hrN21 zw^c`5nP7TzCUqjZQqJ|4MMB~J(F@?WImdS4h&xv4mWPK1G{B~J_Ck%K*g}>w7oAo` zPlAYCF$OSI;WNpYIuu13Zx7MaWpro8DKUUv)PVy3vKerNSxSo(P)~vGq9@p44}Hyj zms?b*+ZO6>*>?b{1zs4**Xm98RxLHqEoxykD8WRK%dulHvvPkLN9<qF;E!`Rzvacu z$uA?fIw6%7)V%nVm%ZN?>u5-O{~UMsM+y&XvgjTW6p|u}+xVXX1N-wS1O{gI7Kx}o z<AVBAfb?H#Juq^9uL+ReecC1Puf;UwW%1`Uf7WS!SuEP_pL4SR-0%OT76K#ZU$y-X z6Z0vT!2emi-!ag^pA-FACmK<_Pz(JTC;ZPn|6gh;FmnD+ZO^A<GbO9w<EH=rF5d4i z@@gl$2~V?hl8e|k;CniND|8hmbTB}<0y+T~=?G2ZFXQ2j(n6KVZ*vR>7*8x0gTdf3 zsZhd1RRt)mjVd8PWGIRi#S&LH#7Q-5WNApUXWk@s3Uzxx>@0bDM(VIp@(wM6U{%Cb z$d<~B1%qiWs+67LH9(~hInB-%=y0-t3gvX#ixyVuOg+VqX^ZkeoY|T!cvgeuuEjr4 zuXPH&TQ;~)tJOLcd>}oOCmR|`lsD)0I<C`A4dHegF0Gri&G#(rt1|Bk2GFTt&>E7g zm{H!KB6H++T19q#4$Ds?Z-J^TtjE$o1Ntnlw?>QQn!@QH_mnZH@*#<fOWdvObmXdh zYyJ-InFF;J`uxFr)UIGLPptw}1RvMj7#dQ1S%8SJID!uhVS*2%r_rO^9!PmMxrsJ$ z3qO(on<g`<7%e6w(|`Y=yZ9i29-MA{b=HeoXv%r|{==CruR7TEdixctzFMssz($$) zJ$B22nR=wNjMyiIl3?B!l^gZy(b+Pw8`}J9%8iF8c}578U;X4eM!G$mv%8D-cS|sg zHyMZ0`Fzf)FEPd`>;a4(sI9)m)ZYzv3tI<k5dmOd21#s$UcVAHvwgn}1u%?ZJgmfg zGz+wFey$>D=@vM)KhirL`!>`(ww_PZs>033d2UM`w^I!jBhv<gcGkV&DoKKyG@TSc zt_q4xyzK>|@{rkS;lE^0NaZlk5!zg@w?bvhd{`#KEcdb{H8i#Wb`X@un_^|f*VZ+o zj^Gx0dSuemcd+IP5%#Dq=T5Zzeqhrgvv5nE?O3WwsD*r9AxTyNO2bU~cZj(0oU}RQ zldhaBl(UnDKAg<aO_BU^X2zhITM1h%D+5wzIA)j}LTYe*1(cM67|Y((X~VQ%5($b| z#)Hb4qV2y^PS<1_QZZ|d%MC?mm7S-Ixi!Er>e{6Q#u%v}67^W<)=+30O5OrD8Iy#i zre52f)O|;HN(>!qQayDj+sI9L-LiWMRQ}n(^1=dGtIx~_aA$8n!*uA}hkyKhNXio0 zz;KF9D3jOZMln+Cst3O>>?C7}<<2+FM{_hn!^{@KgrVywvteaEwdZTSL_cZL%&Igv z%N9fhhzu?Ubt(F6tHI587+elWdQJNSoQ~3SMx;3^w<MeWal)}Rh@Cp?QH=9}46JNQ za<I}8dMWq8(urzrA&2^L*Udmh2-q%yA@-x{5Xi1u2uJjcTmRWE?~HUYR=w!pw<Pff z5ef;K!Nyqj9IpHPoT8Lq&~PhKylgSGvK^kCLeZ!;4n^TFK9o|g7W16sKL&~l4Wwhn z>(%LG{gHfyx`$?yhmVkj!A*h)=2OKMdTsf*y#?*!$Vb-Yol{tFBfwNA{mVYC^r`5= zIkq2%pcg9Sjy=W1d{f6u)ug>7XH<!{r2UHoIP&+d$q;pd$b<@Fw1PJ%lms-IOQ+2& zb!$ca=-(HU_}A#+ech+~52H!>=GRf%t$L3=)Tp@aj;6uNBn<)b%>-x*gZn(~_o6nJ zX>b_j3`ubNLucHN5=?4F$JX9A0#l{Cwc9DfBiZG$Xq)))OQ<k0o;bA5gEm!k$06)# zw|4)k9~Yc&Te3kkIj)m`pA_1H9R^j7@ewEOw#v;(#^;sfhkjWtxo}JCI0AP0)p!3c zP{N!-Ji&Q9o5Yl{gT{DC%mH*HzD&x{rq`R@6Y<%D2lBUWIlo(O>sJ&H)FwNWVE{u7 z*eP_rvu0EL#VM;AF<L5L1m?`b;D|t^2Tr6q6;FAKqg|WEwp`h@mG_(vaYsf)gK}o- zHp2p{qvjdYUfg_=fiaH#;bo)Rqxy&sWW?N!0f(;HazbM)M~A-{7bC>N#yCzVbYxTW zf7I+IcA^FO8XRP3ix3H+EwLjxU_?Lj%zEYuo9r!shnixX2K>UNA#Qw9cbU0W<yCWK ze^Q+4=4BW_H!$9nm=R4Bg&)Br9Upb8{Rm2A7%X7aaos>)IES9TmsaW;+A}dLtR#DP z2v<k~92VTr6O7*DNp4ii%xxo~v8%!FKqVL%X2*v1epdi$@+ne_Wfq!HqIW&=I@~vN z<XL4JCJ9^fGNH8Mi($0+=yCM!=HJmb-)^*)y6_)zTp5K0OuCAZS2sGFz0GdDB+B!2 zSz%{}?Xy)tJ_e9qx*$zN9g-)HwscMvQ(I?I`O?p#@>QUJ^=AJ9&3?1eNC0Q6jbw8Z zvGeF7#sZbS!E8QWX*8Q(VbfoKOw+Y&Gzd<^J25gkAn(^1$J>l4qu6LZWXCxBzRP4s z<=R@0hQywDk2&s^p;sy&g9OvD1=<d`cHWO(6>^W1yufyF8Yf=c`S~?v2-jyyPx|T6 zBPiHn>^{M=xSyXY^ghX+cAg+^p7x#qYMypm)(L|lU=Ssk!7a&D%p8tcL8Lwzm6WVb z;3uONYRRNkRU7kKMWnZC`SWHs=2z=SJ1Bz5a>*7e%4ZvMEKNsDm3R_EPp;<EI9o@p zBT;FR8%z8<3r)IBm5T2T-Q*S8DAR@RsV3@4T&A2v3KL}(c#D92#GVy$r|8)WMYlq| z7#5uJnPS*nnd}!xZ0$KDjRbO-CXtsODrpV?jX!U7cGmwhUjH}FR&yRzJml&ZjRhA3 z^;ww}a0@Rz{GH;<4txA8y)`KoV2K><Z=4;ly3rhg>IEHcTKMCHhEB(#QjoGQL<vz> zK-7yV>zGT9u9ZA9?>fN?oKsyot#X-p$<Bj7X$TG1Cz4Xqa)VV&ek3B>AcX`&S7|Bv zO&P%s6dGe=N+-|^=z|rXr7>!0|86bmp)E63X{c=qx8i1{sBnoDk<4&P_RLwVj>}f; ze81c3iUcE+0u8p{#`?EibINSg4w-IKONOZumZ^2y))lX|QtP#Q0v}kiPO&5I>!c{A zC2p#gZm%UlF#1mE6xF?>G`<`RRIX~?%CM)g;Amj^fG?s%;Vsd$br)>ed#q?6z3iM) z@}fR+UFjoOjW~|tw{XK_{u(t3Bwo2j^}doFN0c^C4vu(U<?CwCja-B|>O+H8MLO(9 zMtjMsdZAxtb2$-4s=~Gva|UU*>DMcg+471QVAxdwTB%}|3&Kk;aZON;?@>dt@M@f6 z>;h|KtoDz^SnSm6$XRVbr*;%I;6jFPbdGKzM6|mE0J=0;l(L*(K<Qnqg>O{W6|3+m zxkR%ElCI`v;ZdFUWQa+>)*ZJsYYN`RlXL_NOnR(-QWD2)Z93teJua08m|F8@Z9M8K zfx~H@4>@@$^-FjcN=cm<otTxSdXYN7AKR&I^~&^Y4A<Z$`6IqVZz}xD2L-FINNn;d zuC98~N%F4Re|cuf7qekLQo<FaQ1fcM{!PmikP!T}Jm0#&eXndS@As{OGw;2F(F=cC z3+0w)R?JKsCGx>)v{tr-F{Zbc$4>6Hhyog-1zoPnh_9@bnx-<jnW+HUmdt=yjZkBZ zL3i<h98U7m=#WJB6rNgz6}1s|tc;w9SkrJVq<u;%1WFQs@+W_S``DjO%}i@YWw8#} zYDwVGB<uLVdQq!r_4I<+R$sbkOEazu=WCtwd(#w-mzKJ7Iy<0D`uIP?=q?GPI~XLt zd1ml6W}B8TDGNh$;T$s!p(7e}L-uTn0hg+wm$sKbx1oWBR_ol#TU62WLAJfkzdR+7 z6y$4*g`umsyi(_P?VL+T{<*D2;*!{?N=i=*U8jpUR!WmoBZC^tL<I3+nD`yCC>_s` z-{vVU4`^0wN@A6SKE6aPG<qZ8TczZVe#oUJ#jLkj%4|YP*K}CqSb^+>;m~vrG?uPn zg!7S@K}|3jjSwk2k@71v_DE2z?M4)`5JXx5<n*w6s<+;)gL)b>wjDSctpvr6G|ZCR zF3JZmAv7ry*ib&4_L6iE#hkN#(#V$zc`3w`Ev<Fl;%%>}sE}Upt<8;%1|z!=*+-(W z0^P4uNaQdr6nE`CRwtL%3U@bn6B!NeId3ZgDhGtdCia6~Iy{F?N^`b|pP+rC--`l# zD^d>gXdrybKs~;d&2cc}P3xY;v7o+fFq%(i4K0umTiISVltG0RaCHM2Q<(Fa<)x%3 z+KP5zM0o!>Ros?gbi`~(cy^av^M)zxS*<7?1GtX|9BXNnz~(_J<YMXB5+oh1f}@jV zD0+1#3=yg148{mr785@p0K6nz1*TrmXYjcjgNZ&hMau3J7J<bKv{(5x(vl>$XciXf z8DJwFX_p<z3cDdh80PBz52EcPW{Jz2=sLc!Qz*ec3x+Y)WM2i>Es2Jy{;f!(OQNe5 z5Dvqgcw=SijD|XNdPvxM4<&yb;kFwR0#R$GeXq@}c&AL7jnW|nq&G>8m06SW@xWFr z639LIj{8aS1*0m|7CNwf*=pG7ohCjD(15S?Ispcj=E6>=Vn=JHK4#EAHc7_mu=VG_ zQ1O;y`%eNbr4g(<MK<AU>>um+c%ns%gSK|n2!6OjwP|DxoJtI!@Q(u-i)lUcA!J~$ z<Y5?d2jJC`Qd7S*ovpRPZbV&^y8vbUBx)j7NE=|tev+|&r|cABJN6XX8(3$oI%1_x z_gq+h_6^jj9N6w5=3LpiUQL2J7h$mdmyZBTtxwW7>Sl^iS(0o|iApt&PDXHT@|FY# zU!yWg$41)l@}}(bOnTm2wF8Fw8Jf<L<k%J!;43AO3Az~Plle50n1B|`b;O9<0?c(} zUV3Uix+)|lQ%rentsK%GVlZ)DIie{`jK;fzf&e0~IQ;tB1m=^jB0Zh$LhUgz>$FJX zgv9k2&Cn<G?NUwaGES0*KM;meU;oG+Fwgq@+HsFiAMO{5kqwBx;l0}JcHl}n&rn-u z#MreWz@`SO>3~~J)z-uH#*;jj44vgLMOn!>9cnMpT7|Fs8;_Dlj{|^|)O}@8o5}j- zquNtIN+{h&OKj>|xF#5{7$%S1x}MW&`J(kH(2q)`8)NYs!v22-s!h|9WCD{Urfb(I zy-X`5Qfl|>Ev@&%^HJrf#LjMll^*vuzwB>*^=$}iJ(tn-uIqQlWY|t*$vXANb_x&9 zd<YAdY;C!ou7_aUV)=%a?kPQd@aS<3@U50}eJP*PBM+)z-fwErk_#=je>o4H@9ZB~ z%C96FF>m*-G77NAz5?vaT5_~oE#Ug%UD&7hMFNMRgqCeWX!Ltz7yCVOm)D2I>O5~W zjk~CE2i+d2Ap@kv(~XfZ?DJNKE#$ijI|(DiKFYms@_B?gTaElh^C@_Qma`b6Rf_?> zZi7y|o)}ap!4k0`D7FbnNi33Bv?_5$;)<_dTM1%IyIp+qm>aW+MaNETq97IVway~T z@i2NcI2yeQagFD=T6=H-DBuFn4+~>REZbM&G_i~~$1?H%caYquOEikV)mJR3Zvnyk zG$kjueiCe(HxFL1u?_pDa6FoL*YDiej{c4s2hB&@LSj2dEW&9N_!4`FbArRA$R1R_ z+oxwv(MmdeYU(g+jlVe)tNuxMFf89MxL}vFbJ05KSef<QzRESMvA61)wypE&)O<0} zqDK@wbqf@FvmF_Z*^?iMI;PK2t1ZDY&fwM(>4Yv0i^(hsD{r&DpgK<#W9+GiUmRGY zELyL#R=1C7T4cR)_H4-$P7YcfD$`ZYD!<KP1CEqvQG@;d<spjJUeCwLcx-JYoIE{g zHO-5{yRDt)djUPyl2e#DNg$sWX1FSGaUiF%Dx-WkY6WO+oGsn2U28fOx%t<gGb>Zo zVAi9F;(Z~_=7~S<#$E@COCsZ1VVoB9;f6mPci6aJ8O)X{E<xQA>?23-0z3<CCvQRG zrzX9|j|pRuCD*Kgh>JIz4Gq1pC+d00H!>zGik9QbgMLzqaz985wupklgL-cFsy|^0 z0`&tiY&C0N7q3^#<>?Dmkh6fIa2!`L9wDvH^PQ8OgKo<sV6#MopwF?O2G?y2J7ML? zo+W)ag(q-t?F0sD6>Kq6Le@rA0rdjK@1!nO?WknoN<}GAH3roMc5+~JmxDo|X+zM| zH#$A7W3G7?XGv&&7Hft>*jeBEWq0q@$^Oe1ThaRu_<tQ5gbq0XVuDwZQ^_BQL(~C( zP9y?+7mGoicen+lcne#>Ev)&E##j^T6Qm>RGn)-KXt%}E;I8F?gd?x3E~u(Ydtg<v z_o>u(RThDGI{wGruL7fwJYi_d+Mnil)eX>TXG;qUU@wPj!DPfP>~C<#H8;=z99iXU z#XK+Qy;XhT7+UW?h$OJKotNTNFD+}oGYxPkz(P39Be+du@;e~Qrfa@biw;vup;zY| zh^Ors&I6$N$<Ph2s@k!3VAp1W*)T*2c}+c|Oy;X5nYtG7v`M4P!q&l6HJvDqnl+@# zoQ=XU=;Fw4q{DckGDJVNTyC%OYbV@JqsEd-UKaU$)~sZ`|K>U_E=x;Mxxk80U8*r2 zQjy1_NCvI_7FM*eu#geqmRGiKwyvP7%S9C$aB!?AZE0&wr|QIyCx-`CBMOCRC`Zt$ zE5O<n=9WiDypbv=OK3bHizXDxmAd}q#%jy5xx31X^xr6PN0(Tw2C@8>)&o-o4{0Ju zeRzG9kQ2EYfH;tnT7u$N#+9<sw1+EJoQ`JAZ<J>}*qXdDxvQ_z%c}|ezfu`j<1CtI zllUS*9Yi@VpaR8*2Vn1XLzo*_)I8Gvbql3$k{kBZ(m~G9=Sk%iQ`xe=vo=ejS5^O+ z;Dc1E4Z-E=28JXSQK(b_1M-1_+SBj{@D!Jxt}fJnpX!jIAtf3M<}=YpL?Ff+33SfS zXTbi`kvo}~Ys{(itUP0HO|_7fDU`pZN-s+Xk1w^Z=bojtt$fkIwrvb}9=;BF!jD?; z+v<zw*;`x8+x16*D!ksdt?zCj8SsD!(Y8&GXygq-6N`rQh=?#D?RwmdF%oquw61OY zP_Yyy^H6eGAbXbD1nXBUDe3qNN<Zk@c7p!7crUt6;6F08<%n=K+SiMI#ihhi7h$oa z?#0m>$qGGL<Jqq4m^c(}#tNjP{jU62LR6XU?nEk6{zP)}ZF#Cf{FZ~cR(88l)}#e{ znW$3V!{U7-?=SGXdO@5EJEqHPTL46*;?c-0<%@|_sogwdN+o56>bGhPl|D{e$aC31 zfYvA>Bz(2RjzH7s#S0XSZ{tttK?V<~1YY~AU3Alj_w-{xPW$wd-C_=sai#6#@gBp@ zG8naaP^jlt`B!jx0?J`Z&iDZpq2@W<vJ&}<V1P#pUDR*!hx0Oti{X`dO+W1dT1uhI z_;L${((ob+E-vch&#+4+c#s!+$*f*4e1Yeu=#;YyC_c^dH*x%Gq@J}>^<(PFa~7T& zmj#~Jd8Q=UT7AHKh2)S<9IILgJt|0n+?;ZLXt%YsH97&^{4600<9o&yn<S&i<iMH2 zwSj&R(-TWbS|UB|e!t%)^@Ota&_=lu6RIbW^9&OtW*qLuX<S$Dv9iN%TG@1ns8%r+ zlBZhp&KUYSt+d@Ys$*)QFLWvzmxpz{bY@A>!F!EB^Fl$uc>&BCi3qHmj%@9%fMaSS z_1&_$UcsBvbDUDGJ&5+EvkGJK^aTl>7CmWk<kpsB{C>++<ecA|!WnVmZwX9poCm1| zClk1Rj=EzHrRY-cI-!JlN=DpQ;E{nhzxr`GKns)(S-79JY_BZ0p-F_w_pl75Kg(xk z04<g2ves2%EEaV&)Unfb%w@T-cYX)Lx8ds4lpyn6rAU5)f=cwbvsVR%IBh*``F0w# zfa(mTyPRasI{}4=o~?Qxe_vEjqs|Kh>?X6e`WWm{F!i<NY8ZA-ta&tR$1n_QFI(Y0 z@`5&iMLc**<w3@H+aafUwoAmx;a#IHmZqp-y1SbCo?v{TAlZcr$&PqoH-x)H?*w|$ zqdO<N&Y@p2hOA<7r4FZQ;=>8-wJ@1nMEFWLL2!X{faC6+2pLI<=#|NHpm4z?jWA+x zK!10#2*XjJ`7gW_gS~ii9p98Z#E%)4N6)A64V&OmcY+?KP-GvYZ1ZhSg#b{)c#%^? zits>q1gylTQDg}wDEKck2&af~$Nnj!9+F)zjiA-Mt?&}XcA=Ae*o#KFFjj0d<!?7y z(q_+jm91{@53_TW9yf&M6Gk$|!-VZKxsk{vvE|^XVqQ}DfN`P%-@cf{S8dNrULNW& zgY@(47InvY{*fTsi=6aZSWBkpIjW80GFb=I>hQFRF7(J(U6GevC^i9FC5@{X;0Qs9 zTr@%HaB^#UNVh9x&V(9|c#L^MQD!%l@IT5OhXC4b{+$6+{t3Sy>fN%9(c@-pzcXC4 zEpjrWSI6F))wYri6<Ig~343e5^|uzTw(Vsl4w8%*b2wtHf(!gYsVZe$B?^PLAFmag z-%)}my~#roCp+(KHlIwCEs;nMU<=7&pfKTz>r|4;R=0^@EQ#L`CQ<<s)Ie%gnS0Tz zq#(&4UL>k{MzcK4N9p(m69V9R;)F7|qK1`KF*byYY|1gpqjC&HTd{R*Gsqt6bq-h0 z;dZpi=F<9b!`q7>E)=gtcWgTv98+sJmr~(Q=c?fasaw7~{2j<M3dE%7DU>9BHnadK z?~@elQ`DZ4OlRuDrk+u=h7k%n)M0d}2QHF(*3VCMg49vpk-yTdKLC9T#=rS#$Ly-z z1Ie?DZIs545a5qHV>ua;93VYreNvIZrj<6+OsCUil)_>MP_~ax47b5-U7bIAQ}&~1 zH=n}nFu@=RfI2_a`6b6W`faEQZl&W^SLM$z@ysma$aLJMlum+ida{#^US^Y<eSFo| zFco$jm~eId4u?fQ$knLUiVd0D;_uPB?M?XI<5W!WpmVdm{ixek(M5NLINxPdUFVh` zPo8mX4b&@WeF*w#hzdoVZ3u$Gq8yY4J?RLlku;5cKw`_2&5FX$Y^zf3P-G7o3<1Dd zFRb!CB@7e)pP0Dz*;SlDH;Z&gc{m0wBq0K(^}kxWPeb7XFmVwshjI}cqr7)0N|~F0 zCBWS2nIn2ti-9ChHE%}0E#_>M>hP@|N9oQSSpz5ZZ14HbPX{N1zwiC?=a)y%2D?A* z937)1T9C{L{$C-!$vI|?LZpF_GGq<sc_2am9hcmo>#mx^72I%xe45wr?kerB#@iWq zC`2_s&=Jy%(IMxiP|y(8fhZH!56;k^45rOs3aakPV7~uQvqW>{3q8YsF1sbK%z!#Y z)FLM(4S%)Qjot%wRI68^`RvbGu-3fB%#T`Gg6<T?gcjz(-Gn!vp2^hnY0a+v5;>u5 zhhx<7&4O6<xUOg`#7mwjbZMT<nTMd5mpZZ?ZA21sQ@5}lZ5nt^z<xupY5)ajv!NA2 ze#%={wT4C}&M+D)`(11tez?0qxC_kqZppOUpT(AT_Z&XZ<^UV3$a;DJ1fmyRqn$+q zS6SmH>t@6jOuY>K5!Na-kLVtnX%8uL&?=*GMxsjlBWi-UU_{PnVDUPI?y*gErb7La zp#alyGNQKfLz-P$8*y-DuW}ixRU(V`+FiR=%v$jF4b;1IdTNN<Z}a~q+xvg?wq9b> z+PqcnxcL`Y3I9nJ7LkP|atdy*7kN?&togSRO%sP+=waKANX8@y$v92dV&l?q`Y`Ke zOZngcT{W?^75yt5wQwP)k1Qc=J}PePq@+^FNXi+Umc)3Xc~4MPlgTv6VtQ;Zf($tF zJQT$tsZ8=M^f29W1oz4i)K<A&Bq|<^0-~c$5)^J-wfN%YNv$kr3`3XS=1aOszTgkO zwR`vs-SXUP_i#Fj;6=1M9c|jN#^e$YuP_mm^+z1YJG*&S6_}Qqgh&bZ#7X{IyM}k& zd-$i-NZjRC=wEb0Hwhahuh3kqkX$lab1XtZv(QTpF^ea`vD2U6rE{tH|5Hm<SLN>m zeErhn%^vlqk~n+os3U*9U93u>%`8XT8rSI3ZMKaTSAFERx&408io`|x<&Tj>eP&71 zEyYQndW-k0HhWs)AYn@M>cddHLED5Kj1-!3qzL%Wm!s=s737f|wJ4@<OZ{eCD6zg9 z?FgPtb66?utc^i1wD#Cf`luI<?&5h=QMmn?<>Ns`Q8a81odPg9F{b3`(xojyGDdVm zNn{ddcDys?y@1xxWKW4GlouJg^g=J(Zd+Y>H&7!>B)XT*T(G@~k)WVRI-O5d@Qr*d zb84!wfSbi(!+f4qtTSN_n@@Ht5)&Eg$Mv9HbVRE#P4*dHDT86E>F52_k)DhN6NS)M z?b&#D2Wmn=k$X;Fa^P;7dM9D8v)nm$l{I*>86Be=h;9g2l*<(M9fwH8G&%CX1vM`f z&Wt7~vO=l41Lbj07G`H4sP9k)MmQkJyRI=v{555*i$#Mh<~mIzSW;|S`>nNevJ3zH zu(NaW!w)+am93|^G(~@*qD+W8r)}qX`>YqeZ<}GXx1!V2Z_nUqTcHXcwVig`XCIcf z{EOdm$iBn_8+B;2&u2Ino7U7WNm5~*HH2F)%<UrFoHXF(qzN~xpvLMCkvPRht8Kvp zd}Ix9^(jZT&!!aHk8VE|GSFWZE`l$6(aP)K;|^r|l|3}&R=D5*es@?ay;;{9ZQEh- zx5Cxw^t4+?9?^f|C%|wZG@r0FbwT~mZcx6|Iv8rMNulut#$&Q})cX(imI{06);ib= zbVb+jlUgrOV63VHY0#yZ)wQ~sq4oa579wE<rH-rD`snKg2@idR1J<2rO`4Y1*~^hd zCtUjh6>I7pK^&_(PqsC9_jckfwHma>!rT)#eAv`pi(XI?f2jr*jZ=Q?v8R0F8B9?i zkdRs*6N%JBO#e=29sA<8#Rxca@5xIgv}G}*8radnG$g=Xpc@JSDTaMyykOVUBlTk~ z2)Y<XU(mJ>!!>ADZr>iF!m>n^I-`cxIy9ep6tYnUY24b>CoE`m*QdW;9t1?{g$}l4 z2XpA0>PaMETR4YjO%Y_u)0R4e$a|r20XtO;BDhkWdYLNf3a<mCt}K6Cc2oa3VD`k) zHN69fmxW>_v7eOX1k(=)CvU6=%cPQ9j_<EdmN$6R48`(h-7>pDV;SG{#<*1r=WFxV zd}m-)I;HWljhtFLJII5;^PTVU@9y_IyXd4^4g1PZn&QD;<f9wi9b}Brsai`BHD}Dx z=O_=c>ac=>*?Zzi=&IzvUT?NA5=flKl1J(wovn*weZ8qQX~GqA1{^Z5vJw3q<yfC$ zL|_<GiQai}Dffk7_aozjuOks#w<1aK43(XGo-;5dl+}PXEeP>DhTz{67em-E5Qu*! z7|coE9zt9y(X(_#FDa!$uu!0)99!*^)4esl{@R^l5CD^yl<s><jLf$*Z-vPEz%*$r ze~{IWtegfDlTDnzLcW7VgZE;LM$TFNcw@-ElDZVj16>+QWy*p;kV!;`v+LZkWV3T^ zHZKWBm{AsScA3yNlKwbuI+DEAArwx;c&Btz($2Ccd0nY76YvwS`fE%jFXt1ufLSg} zK5e3MI}yiRMv9A~7uw*tV~xgb*VPL{B{(KPip0hxZ#*KUt)0;bn@2;*esq*f6I!3N zG92&(VqPW=by0?m)`Z^2uHVNArOt4~c~7cz;^k6d%SA;HM<XJLOczHx1-SuIzStXf zIin>b_x(|V%(zH8tfk%FLFwoS|0(dFq|I^K+GV>RooGyni#2Uc!Ij37jbSZuvxKRh z$k$GhM0>7`u969Q$|=bkt{a`A29at+I0`1`=05kHqQ#*9Oq&w=FRqezjpfU4F4F2e z;uPQ)Nd+s!!WpcJo#Wm8eOa=bkG@%d^wn3gsn%&rXGEAQ7z6&DPbcx5p5S@a^;(?G zv!S$ymcpyFDQ!v1lt{TKl5BVbhr!MCBA=if6K{j%ut;YZl5&*B@Rb5rlnvd`)C30( zYY01I{H;xAgi4&NNjS$;>x9a4UOVSDtaA$gPsgx|%|g2Uw|c+*l%>Obl+a!#BLcIW zOq|0x7g}T#druKbo1LLZ#g;i+AX7U^Z+@GnZ{vyVP~Pwxn~xrU`PJ8d`R3aeg|4Kh zOcLScIy~(L+7?f4Wsg0KXK95YZ4od3PKunw<0zmdP8}J2OKL!62L#8-L9g^dy-0ow zo9}esDlaRJqQeL`X39N@+%J8iSF+33O#oz7-)*|**y2KYr%j;IF{J<?g3!T}jV-T% zOt8azPfj>o!JJ8Pn!a<7bt|<Ofs^)I`~UdmVE5T!%SAIROv89JEzz=PpNQ?A8Rf8i zs{_nYGiIq$9m51{w|cERNSO?q7Shca24NMQ4=`i_=@Kwm>gk4+-w|nZ;JIOonrxVz zQQuM(g`-_b)uaZ$a^YC1{g!n5)`~9GV+zueT52vmarF*ES@RuFCq0ez{-XK1{!YP? z)C2^(PJtJ!pO_rgo{&|fdlGTLOonsStl2TwE}|{9H{XBgSx6aDm@T}+ux^3(-Qp;F zA^&K<j3*{p3(gJM`>Nl*VQ^>;ZEQGe!<8?%sK-|9N1nB^ZfD({CAZYrTG_S1+G_|~ z)4w@`Q2?ep#Fs@%;#CRPSLOvU5*B7$xm-g>2&8@&25CChT~N0+3bUxgY37%-Y7b;- ztJZp`39OH`r4Y%hqo>h^E3pKw<4Lr6>#ZT1fNu)u&82S1z%5+DsR}UJ@*gNrhfb6( z#a_n4eqG8CDZm&oNx^saR?`mP(WDuBKEM}W>WbqEU>V*>mH6GV8PR12hdaLv_FtT= zxmyQ${3WdzO=7s?{N5eat$k~kN$i6Z*X9+Flf)?435jB+cqfeUI+?takc=tI$?V~` z;D3(&sU`ux`)d*zs17bG?LW)7L;G7#_NxTD)`H&l;0Milal#Q?Sb|z4vxLOJtp|0Z zNJ_yf^*5K*4^?k6_%yZNzlZbU{f7@L1YWh42V7QLmJjkfv5HoU(aP}7FM}`x!I9bK zNn3ffPTzkxTNV>`Fw7^Dc&7E10}2QT96sluHM3)7jjrRO{?3aiJ`owY2eV;nZZYro z?>ccC?z~}p>(S;4SbhIt6}%QnKPllplXU8bSpzDUO@%peK5i;P*!ftDoBEGF*G{|h zgyD4k5nJJpnLkB0%<W()28!0}3w_Y&=MVU~t0)UbCYO2$De0qVA)UywR=|S!18@t} zeF|NGctKfVc}j(W^0JfP4Gs)tEkXmHaYuOU-A<cL;hS;BcFJQ6-{zfZXrn-ZtXQ|a z`L)XrV8aWR1ZunnOe0h{CcC;Kn4(M64b_pOqGp|LxjkBs9-pE2Fot?t0mllA!wY#F zz!%%zDei)~h$#qW>*uWw-lN`sXfSoakBwJvch%kncy0VF;=G-%m~J$;>dII~BgNe+ z0lAyiOrPG&?>z<f2g8n72l^N0Ko4_5idEdUs|6{uSG<vzq4~pspFY~E2hCeVWpzzl zFUZtbgw|?3aHu!%FpbO0Zlnh*bG3#RtXBtMQ^$LDKP_pS0r454tpu6q(CzE?DsELj zWbH!s0Je|aQu7zwUPFD!wD+4XQnQc=v8TEaAicvsdb)Mf-1QZPOeNzPRmF}#!^i`~ z>2A3=)8o@mtE(cvHn|!6tCBbcu1nva*!#%^T?6E%l(*Nrxol(Kc`zE$w;9f=Z8n_u zK_^8X=+mg4K-1|N7bCw&yMMJxK-t^@E(Tj0uuHV-J2{L3d;Z)KpLP$~HYfqx7!zwq zGZ7@@_yhrl+$>Fsy>a_q6LCt`wNHuy-nEi_1I?alB+|0b=~IyQj^&g9bKEi5v3(NC ztGuYzhx1Be4KL7#pPzSJ<pq4(-t3;AGeb;f{3br8Xl2nD0M#KWrG_+0aY}OR+O_za z<y)yVXc;G!XEXbG6$_tB{Qt*`>7BJIsMIsuGo9Gh-+E3{+d(0*ClU8=e3}hd{aWYj zwFY_{x?8>f0QV?|>!{z0ZgYoPeA`jmj!BVi;8uh!+>}uP+wh3p2b)!iWyu=PwX(A4 zN6$o0&B<tatRnv<CmnKSsTrk6#I2Zer$B*Wewk57zKa_%1sP4!i|Ex&bp@rPbMzs} zM|0S@Pp+zJR&G6fILe1*e?|rRd2#vh@k6Ll#Kp}+7(Zq%czQnI{kw0utcple9A`># zevw2b9i?<<BO9PIe|_}?OFRYk6X;7<c|Rq}0p}v&e0;@QJl+*JCxWk7Qz~8j{@Bj^ zg8h;~%8<`ttmo%yw3N9vEw7YuP8^NW@i-|^`F^w~r3fyjkH1oeZ3qO0so``vO)N@w zM|p&qQ*MmW2)w}%WJgki^G48o${fiW9AS$b6f7>yLxn48vDxGRa}sCsDXdank45YB z!TQ->UymNV?!R`zir<5><E==|G-Zp+-zLR)l3(MFc=+2KbJoH+`S8)#e|h}vw-2xK z>-AB-4ntX|WxI~S*w#r;w@!-kb<w+*>o~CWcwH9dx>=N_qoP??-8_81(fjg4XZP^; z-Dkf)`z!o<{Gr?VW%u`A4t_uQ>o4+q|CitQ|MB}j{<_b<T}?c%3t$2#BaYW5>(B(Z z$FtL3Lw?fR5oUPNeQM*%yh-BX>Fd$^FF$nG@%I!K^%XpLJ^Cv@7{xd8)3rpvC33|3 zfan9edk;kv)2>afY+@*HEjS{6oEwMU>4y^he><AZ`qEweSCg`$eY&y!?OD5f2ZI5L zY`qojWH;t1CM7CWE-cvn)arA1hzwSBR@3p*cBk;|O$R0vVmIRDq0Hj)2LyMp5ZYlA zFzd8MlFW&(#BLaEgLu4X7(}*0G*U4W;-FgQYLn}&uThPG3di$oD2eFS)3P5OCy7ON zboINESXF6E#&i}tFq_1gIGHk?;{`^xdn!OV=VZh&g~Kf@P~%%@C+@`jV*bR;u|Ew| zoWF5V%kz>JwVUXWyV{shS$J)=Fzd316$7Kunr#Y;R_7}QVVS7UbI@<;8}3N{R<A;H z00ro;9qtE)cNLdVtuUBq$v4b$1oKyaPY7*w1MCoYyRjRlr~W|XP5<^I@C8CVA;|kS zX|b6!PU9O6=?Uan$K5pPN7R*}@D4~mJ{Rk(KZAC+VKex}ybVwjQrg5UG(9SY^0xP2 zC(xvUd03CguoT{**_3~yJV&F!tjK{JR5$vxC~9JO)h4X7U<3&Da>4ot>NRvsJeMIi z#6d5?Tk1EK8&%*(+Z?G4(m|KGu1`MPn}w9EtG&8Q(JJDFu*aTv$5;r;brf6-P#SHu zy0#DJ-JA-K5?7dSf*C5Tm{dBi;e%G;@Nf4MxE2045!Lw4UarK(6df5D^lp?6E7zLN zyY?a@@TM2NMK*WTPpf2Fb^?+-=)&n6WX;|-2#~74R9Ix@f9$N-$SxbjYhmmh>TUZ! z7c<KdQqC^~2e`*c5=RlkoS^6y0&I?xsg=IL^QBnlG6mW}gic~`aPA}GyjAu(le>20 zV>m83K<vc2H3J#N-r^;cd#ggKbZ^0h-(x5w@6e3~F5vh<!!FL2Ywow5*VhlaTb=&> zzjn7;UFuNLdh&Yn>FY;N9>O0lUlkdFcQl~BpSiEoy4u{DQdp9-f*!OyYsGsEp^REj zt~Q^Vf=?d8PcswttSn_ue5OuWA|gAD<LUAg@`x=cyct@qU8ut=A%}}|hW8dcMkd`m zwH#|8ZcnI@rM(EGRhz{f%FPqXxvtVL(fiYlvp%e^n385g_kG^@E|3)qKud*It!^uj z@|p(XCk&g#MlJ9k^Bj0!=Jji0O8T-)R*CoF5!_a$X~jas-vFc^dx#)8@=7-lPB8iq z0%EbX=f^6pgXEuL`5tM-g9(U3AXN8E*L4#~IW!Fz%><AYZT7)1N=m%WnWUqOc=)CS z^eHA@J19nVr&Vl$An+JaJR47>UuE*!JfVatc6$^f=OUq$j#N%sk@0J3<MDqSv{6ve zYH>2+Fa&t7y0f^Wls_8-$52NX1aD$|kVLbbX}N<=zl|VDr=^+`>pbJB6+zpw27@7% zBHKxu;f<VDabr6Zk&OnQU_}8KB~@`2mr27>M{*QxKULn(_QIr|m>$Aa7n3&I8CH2h z#nG2vNBnFQd8tSvjEB{JUA5WKt^GQqZ{$KpNg;;S99CYvRsd)8DsYVbhSz+DWVBmt zE4~gLPrsFYC+lpdJt==3jic6y<<3syZ$;%~^y|27ol<zmn<VcBftKFCZ)3J+dlt9b zA3oIDHz30Oc>mt+NQ-;&;X}PI<!_TvKU&xgwX3(=tvUv{;;L9+de~~IE!%3z7PHW^ zrh%9Ce4L)PYv9^vXHD;AtP4um9n$@g?x<?&V7Nx{9j09E0MGKeqI+D`!thh@GozoG z`Z=bbWA(G3pM`VjTPA-tvmSC-Q-pjK^{t+~m3-S2S!|Lpd&Eo^!@Xp+>8#t8QhGE} zgN7#Vd$`(dM%C`>nEH=Z5hZvyT84)IFnwDY2`0nxULy)tOGhGuM>V;8Lk+nsp4zy% z7=M*=_KEBd8j5=lkcIUYNDvp;ko^-Ib5_h!j6{CS?#6<|RyQs#4Wk>_dC<sjb|0<& z>C&h{oaS#6K4~KMc%^`dOkCK8Z9TfqGt6;Ryg}oT>-c6tbM&K+baYntCbV`{;C5h3 z|1H4AWe};J<2LAC1)Nz4rlawuF)(FyLFa<0uMN{0s<V5R%QIU}Gph}mZVbOI9*<kb zB){=_8eNvM4}_6q=ec1CMKfxe3z|OIPyL)W{?@O(_V>J7V98#03oqEFO|R@pn7KX} zX_h6$z^G_iEq9SBGVLxJr_uwof_eX;^Vcm~I14THEH4-ZsOIEI{rSDtYJDL#H`-s+ zDos~YqwZ5PlSeE@ex=dkx$`KvXn5R#=AGVaKPP9!ppE#F0R^;HG(vlHb;17w90_}r z*4_~e!cph1U%>1vu*X*)f27tJPPfvt2H%xsHPfx8n&FUY6sre?%^Yo_0j2AhVR54u ztq0tIf{5z+Dm?pFcr6+(t-e~6dJ;x{_|w73{=xo>z36xR`RwJ%&cVS->-Y3u??1f% zaJFD-a8cJD%BeaaGYmFplWYog>~DmS-)V-Rm$%uA^$47;mIrjHBeX)-#>#kkoxLvp zhv3E~;x@qz?A_CVjLz9y`iu;89yffe{@B5DpjP*Opwfap?X_$UTWhT0^mIWp$fa7> zMOF}@f=ism7AkRX5iml{B*lEaz3TR}TM>lw$eX+I3i?+ix3-wK?Ep(fP5{Qn#;ww5 zYNM39BH~IiirY*flAH*#-m<R=q+24W)3I|Ug(r&~-hV)T&-%F_2Cv;`e~|tn|0FtP zw+{=_Y}LDgADv=rnVJtjuuL5LqW?-tK;v29uRKoz;Ho$7(VSywx3S2R`~^lWRHyaZ z#a6T);`q<p23*^*0*%)j7BhE8j1Zc|sSao~Q6NqS`l+X~Q99AcEnSzB6gqZY(k)c^ zov|csVTv$Dj<%d|-~__x)`w@L+M(gu{BooFA)g0I#T(|rduVHa`DF8Hi!{S4buF+Q zyl(x!?S1QZ+g6h9e?J96^=gtf#UsgfE@~??vZEwEZCf7Mp7gY=rXUiO5Rn8MAT29# zdYyMTZ+M>M)NNm}0g$qsPS1pE*&=~`ztpa(UG-H!x~U!;CsTkrRCpE9J+|d6Q@qF) zPiHs6rnPPm?!s=p%Vx(WZW97fcF6KqparePhiTPihgFX3do-#fvP<RAg?FC4OYx$I z+%L$&AB$&vI*A$64f+aD5n_$ccx#hrlolmm-GVXL;+YACE!Z;5TL_pcrTSmwZ$jvc z<e1y%h#D#o7$cgEDeg9-xu!ht+fm0L)^Msv@K9JbI>Wnva$<^6BJx$D0u;6@+v+Nm zR=k@8$zz(t)I$oa#>lU#os?Oeh=INlBpf<d)S&liq*KK4jDa-a<t5C@CbyenSX?hI z_}YkqwL}a!SB39ptu{#FUnc1LC9<gP=!|}Rq0!}}=uL{z<&WcDvAq-Bf6)8)&o+8H z+xJ^F7YJ?4hJc!!6Tfk0{08~)4;0Zhs(-_jG$`z$)71cTw*eV<*Qx7CsH)YJ!bBp9 z%XDrid6-R8)xcZbJ6uZYc{uf}gl&9;JyMT7r20>d`&35sXdx7owfM?_P;^SsdH*{s z)VeIc%g;L%*ur&<gs>L-uh-*%cR-Uvomqv}=%EJ3DTowepND0E&j_^v-LqWwUzL2k z3t0)@qE6@FmR3>JE%5PBl;b^bZBBaxO8(I*-#-Bo0Nw7@M(PAy`g<-?K(+6F(Aiyp z55oN`yYH{=pZ{yQdK0ns`LkDIV57M+<I-#xHcjRG7>N^>+hlUB9GDFsR!EF8GHNnt z(C2v!$9`V)1^1dOz|_pkjiewL^dg%&tQ|WtEOWuWEuee?EtxI)$~ww+{u5!_V$qNR z3gXDR5!wEvxFjklB_pBe?c2rMxB1(*vlb$QNBf9$%%R^jTPI9e&*rFlC6<aI!V3Z( zS6-WpQ^!Qm^%$ogo-;Rf;njjR<Ij5DTTyE_YCU@O@@tDvK$8M|`g;Gd`*=o=pMC2- z&FSfrBlqc;o__14U2bjdZ_%3<kNrxQ+n;~Q?+(BFe*gL4)yw@S2XNpV{n=0V<<<eE zdw%%hyTfNs_g@VD^YDj*XM<M<FZYl3Umto+S?+9Yalr>K2LJJ9|C{pbZGQc{;`NTo zO>HW_zpt`aynn#s`Tfzs!RE_@qs{7+4|&)Q-yAh0{G2E5>0cVseZd7j{qD`tK~<VB zDb33_FP^-9v;X?(VP!wRl72j`OtDWXzTba(RF&c}rTFW?(c$2Sr{BE(z9QYux4cXO z>ttu^A-{b7y!7tAn(C+D92|akwEyz^r%&7(eyI#=du3SJ2sUm`1~m@T>@v$9le`As zOEiOMDP+9zSXd00Y}p8~a^0c!N;5tr8Zb0E4ZX+F^4fvfF*SPH>0vg%R`Hqn05|V# z7iB7ClEm*4t8wLig;c6elGWnqniBszF}CZv^~f~Sw3*3021df2cWZJ#F<O(U=~nm; zJz}e}W;a7xT9IX|f?KNX`M(0!_EMsk65r-<ZzU?Y77=UQ>=iPWH0!(Ub@n8iET^-M z(?VbKhlaGHcd;04Taj6Ylo_>uCg%E|tavn3%pyJ`IF39a=lx=s$8#8`I;<PsFi`p| zBkI1!pbW`Ej<Q-?F;8fcLp#ykd62Q=OlMak3u0VRXZ19qmr0qFo7rk0xgj)R*;bft zfGU}%n3&=o)LoeH_9?4J)<wkXr-gr**lFvB#MO#~yXH_4vu8e@R3b{Wo^Y>`_N=OO zUsufJDs-Ur8Wy*r#fdsPc?Yz7dOAz4cuuVl@YsM&)f9U;qCICmb~*EjKVtmY)!9D- zLF5(Eo8SgUcb4ZSa4E;3S?E~G6oQQ-8J{KR>1-x`0WrBVNT6lj!ph0a33eP%6a!m= z-D$VmZ}qeN{e6b>#!{W992?qy!|yOM7Y;VPx32{s>#Xdkut+A?;grw{(=rm)aOyf{ z%+N@x4W+daaTZ#BIL3Ef&xRfQ<SlGgQZH&W%vfqKYMbu0PXce90cgwJUNuQvgA6t? ziWobQUq8_bA{>wp79$(b?waTQ5v=1FL&2cIyT?ES37Zoni$F_+S!%CD-*U0cr}B9Y zD-?&TbrbSVo3ex?ZILAPD5$ejG+O%C*Y(yAX}U(8wKN;!4SbnkGF8_E0ju4m%I_f> zA~c@V0HtiJH&M#!hK3;Q=(|1x8#pt{@US-bWJQks$l#i|g%4(<Dvo9~dMFN04kgsO z9)}W2u^+!<SKL}FY^0tiQ+g22Rl7_2?C-6cF9PO69M-6WWm7UK39oLmRB-9CmyMIC z0*LqHq#}+Dz$Bxl8-C-gwOj=UbK}*`HfGgF{>@H&eZEr}x4p9KC^<?Dx3}6pE0J~` zXat5K&2`L2j(vWS<fQWcaak;E6*F<j#IF+%?yp&?iTW0xuYP=yTUdx5rF0iV4Y8xY zYf-!sr}rsWfvWRX*FY`B`3(>RDdFqY3i!0t1aB)=r6m-bbX5t0@;i4TJu$*$^s+n| zCL_LNLX=$NgdQ*&$}n^^+8gQMy|(wR9nG>!QBjlWa)RK6>bO2VeR~F(&XSAxU7AtY z;xa-gMY>h#&9LbBiWFJadUJXzD28~WB*>);Ei09XtB{?uMEw2>j5mr{Ugg1~LYVPr zR*{%tQJQl*Wa3>;@Fe`+T5~!TYQuGr6rahw*>hqVqb<39xjK_$RfGbE{#{8dUZ54x zLIzO|4G!n|DUXdHcDc=~Xl!z~Tctb_*g34s4QKn+jt^YSt8vN=dtY<Q?vCe`Y<4{( zU)1mV@Q$aFR^Ii29nb2Jid`@J8iyjZ-{HBmpuFS#qqAY3LrN-0ix&TLclaunXF)2U z7u#*ofF>=jl2RrVO=T+(RbfrqaRa)+<mNX-JET0dkvb06m4&l^2KC?_Ua>smj4*Xh z+8$q}Wz#b;$dxSuWM;8B&$A&`pf{7?{xol!gcR-3Q;c{H%bA?*oqA88qw%|>49Z)_ z(yAQ(X~mTxz>`;rvxtnLK4s|XtH>;WT{hUKG`J|y0G58Zwv*-JDlGp^6QMNrG#E&j zcora@;KWE39;aHaBs9_Cn&?Yod1{7M=)L`ZgD+MDN(dH}f@e~u;XoMkc+RHZ68PTV zrEmsyyari=Nb3@xiM~G%;Zvz*hMiWc$GYp!pj|Oh-m*gmeyB~lL8T-Cx3s!}ToH`4 zu^b)=a$3{CWDUjmtAlSy;>qM?p0NB`G6)5kVX2h7gs=BXrr+ChVZ2YO?|Apblo!wE z=<vhzB16!nI@CT>NMAB?7B_)Xy1n37?T$Z_)f&@?lAfNM!+iyY$ie)mYo85Yckq4z z4MYn#zj)w^l=WIF0jh{Bi?;)^HtFnLh6ZxM%$akYh|UvYs7JmSnysow*Dm#0_tvFw zW)SMAOdpk<ovzs$=DizfERZ0up=(=LJC&?4`gC(yD*rbzndM#w#_OLpnJcxfW;R!) z4lXqSQ9!Q0r{ulp)pAaQSk`(|0yhd<oq2#e);{4`Ye?*2>G(AtZ*JF`tv9!0t!Zhf zKR7MxSa1FOOTfBb2j7HmXzn%`(9zp54Yu*Q;7t-wQBpI<PW2LC!A58CfQn1~v4_;E zsOw%@*A8b=k#QqZo)FP2A@4aQn(u=&+b)#6N)WQA_^_k?#l7eZ16{(uQI|m$IRU<a z=ls~J32*8NxSkaSc|vyHv&;dlC66HigTgt(n|f-2G!H6h7gnL2NqU)Fq2z*Npc;Re zW80CssVAhQ_!d2o;Z4b{!<y7U0ASvQdp3Wtb>eT;fGAhm=<dP_ThZWVr{wIx#=>YY zC8x5+N<lC+lsih!mgh~<phIstpW=+7dm<h1gYA=Ypw31f$4Thfr+rWry3Z@~T83+O zR`d8y(`*7c`JXhMHlGV!hxv3T_+Mr^tL}@)PFZMm828suZgQW6b3#sV_49QOOu!y? zl4!Y$Y_^yZvZIq07mfG8hg3N}=~~<8WF6|QTM1SBqQvkb8D1VSyOPa1$0ydgL~K&i zi6rJAa>6iYWxrgP?+V$742ooNWY)HfHXf`!5*7C+6VW5@`P!AzZX66oX?zYR^HrSB z2Fn@wU?w9vrbh$T{0!0=Ir$~!4Tsz38z^9w6^nFO+^`gzDJz758(>kWT^Q)3-d<dZ z?+KD0df_MnTn$Sw19mmBX-Z|Pj~@_kV3N8~sTdvgQ5mQu)i__sxS{TtFjAzGw4@lx z1{ep#OfkXz%1*wzB<xc<N(#YNk?bKcrx|{X3S4;%1BgY=XyOj3O@X=~-r|N+t<B&p zi0Y&@FliL{Zj!u9CVTg*Akj)xSLsMSLJ%SWlAAexNBLip(<mXytWG*#iq-mPWKcbw zv}Xo!l>B{}k{2Qfx_sB<#7#6APb1}8IL?-2EN#Ve%<>T&TvVdTQBd@zGXysmTm-!1 zvRp1H{qwjK+{whdJ3VdRYoky;XN|DQLV|o<zD+w{533zs&|MW3p|&dlxT7-ul8o=A z2PF&Mbhb#&iIKv)uMXXX>6f$&Nhi7&9nO-&{5gtol#p)DoLKde4rk_AO6|1L5yBzs zayl*iijQ=P_#A#)V&Db?lqYeKf{byMqcc7Rm)rF#a_WH7xKs%|b8FG-gT6>CW#UC% zEwXus_!*0o1+E$H#`!s3!`;2S!f(Dl+`m8Ylb2N?0lQtd{uSh3Yj?Ib8?HzO(2jMl zNxTcR>e~-TU5qt30vdB4ct{-pk)9XiO&kTzPG-xF%L<^hXB6}tZ*w8{3V{PiYDD%; z)fYacP?sZCL?SwF`j)HCv|Xn2MaJXkbRSts6<Y5e_v<(%E8cE}eByOlDVkqF4X?9~ zsi@m&4cNdJ!<dFygs?%R`tYToxeu&A^aO506Cm8v0;;2KU<ASpW}@HkS0BjbwpO>( z8UY+G|GGhh);&yDQm5#puCB&P7k3(Hsl47o(#{?p8=b^|9N_zcAjUrUoYFS**rC5l zvTOE4b&{)6ZCl`AYS%v4&5Q4ZxcpF4OnD~5*ZOYZ?rV2Og9~95TY*Z~(nj|<@50H& zA6!HCXQ|uJux0R)w*zimORH70<m5K8PC20@1B<~4Y7mls_-@d{Kuin`>NyQwNwG`{ zh9>2NBGE2=_6n&G6_8qop~vkHGV<wc85Vyk#VvZd-oUC)-2mHZZZ^>PsTdFZSS6ub zv-RtqJvDsBRG(LV%37t5Q4xfefu1I%5II>@v%P`lPlSRWp#})pveDy7HoPoUT;X}1 zX11x8qg8>2?|NvFhRyjYom-2lXLoRW*I!>77&`4;g8Ln_QxIVw<ETJ3;e&`z$jDqe znq(O=%o1<dZLC*v2Q}eW9O!qspd9+PNg=5CEMGEHu2;?rb^?ODK|UrOb>LN(=fXEX zQlB#z_RGMeCNm6<)sZsFi_pEwf;2t1(-jL8r=%Qpt8x`i;_2Baj$pblm>13EU=RC? zgF)eaYgrOZPJw~ZByj*Oy~r@U3b`G@3aH+|6`O9I5nP@Tp#2h+x@?h9&W<Z*FPbIq z7ag?z=wK!ga!Bv!11x+zqY+eq-qap$gP?->h()v;IU`^4WlnyM8<Z!R8YNpt8FRtP zffM=)Qchs>M%Q++d9tajxQwYJ)G!yb-V6o}IZKsLxgX$1JYP}2FyW}fE@Qzh3d7a< zJ?=Su+H;u+>;6*-f+dC{bRYt$@hMHo#0NUpH}YlqT9{Nm35BC|lLqckt;RWgjb4GF zqY=q<b(ulqA3gZkO;&W#;UfcHHO2u(pACd)%wJv47V&#6epGlfqKr~o%;VUyX{41@ z!7I$6y#v&JB&Y-#462SiU2U+L{Q*XF86;Y2nkSXrG}jt6oeS1d!?T#NwhdJS=9?=J zxiGu^(K9Vlwq%zRT#Pm^;^H#7u87X7clNzKE00g&JTl<uHt_HnI0hRH_8ArSlFmh9 z$a>GSdvL-|+NNPh14#R2waLE3@o#uI8I86`7^qWm>`~7k^%Kk`q1XMyH@$}{HN~wd z9GJ&Dqsp_&2dL@qDuC`73V;Bh1bYYX`;y?rlmm{WVYc&Rw49CN*+Po?`4>w96TlhT zJ+p*?9t95rejaZ{ySw(=P33X@^DmxHs%j?Z+jgWOZGO@sg(D`s7qxzAX<hYUUahLu zT51k6ijcx_v7k_mmD=jGU`2I5ddfS0ah2HyT<opTW9xZyZ9+9n#mNKTO)^BvWG^N; zoyp??gH6Jz-EUN2|E(>CAx4Q!KZA(EMw@h)OEFM@&T5i^<ap*Oq@%w@Psn0il+XO| zUexX*l!JNX!wPdz9==0sd*^<1zrX!p`}63FFTbh-4nA%}+BV2>$8FBQ-yxSBC$LuG zdh0gnx2WNoUEe^%71q!&6YD*$Eo&_;&P|jwL4ow2GFUKG`-M<&F2{QG5d&UkM*MWj z#Kh%GSqB-a*;Vm0&6U$Jmu0?H5oJp3(lY|s+1&OX3peO-c#6(B_Xy*70gZH@p(c*j zuA>_aO^Q1J7KBq1EJ)*d9Aw0yh#lg`;BA;CBc5_Vo#GL54|$7m{ua}?obx!q4Z_3K z_-0Hv_wGK*sd%^*j|6$j+;iO&x@k(Y@AuK^9x%s2O$xasQnM;dW%GP>$$_P-K6`iT zR#xltyv{=2hNRqQsUy_!I;lfUA`Ku*V;jBpc`jt@iz&&vGD@iT)kte$iDrXNM&+<M z%_Qc7(1RYw5Qi<LxF38_Tx9t|aYAlGD3@Bo2ywFm{pxzC_MFOB2jt0Sf<X+>OVw%u z5`s}u4CMxm><b8oh0*A<v0~pK-4Jd3<HaJTNEu>T>s2#N&o36}TMOOM(Zqq`Tx3_# z6r-ragKHTNu>vOWzP?kA>S+NZ(E+J#4^D{bd4l0iI$K?o!AOZJbS5MoXzCrBlUWvx zmpL^J_`p%BO@v*WVVDc)2x*KGv8_=Ky>6ND1Y@zpi}W3OQ?VAAwNu<##mln8y?R_0 zTHuwkagb3s-a0uBXw>CQ(;1p2W$(n`1&36uSEed>N<jW?<{P(7h?KBp877S$?Wt0s z$>B}Cp)_;R1@4QOGYC*P$^<hFq{btLp*Y^5xO~Ni-J?pyi4xISidaj%w1XS*lJpJO z*^kpMHB)}d@h?K!sjZcl<UI2`(bohuSYxJO6eu#*6{};Ej%IDOWnlb>WWe9E1Quj? za1^G=4uYCAEI<61g>SXSCm|})XM0gc?T?`1D7@&PgwVMzhakTS1U|)&uqm4I$yG(N z8*L{2626;L8ET>h9!4H)(}VC>R9DpDntIVDc`=|0#O1HLUGL@wRuOZ4(Vl6GlY%vl zI-QT@Y?iBaoww`PVRWHvn{8<x!<Fd_HL^p{L%lr69vmkeA<FyBqWpAb(Bf?c*o>|t zo4?QU-=4zoFt64ZuH*ZJ%BNQJw-wZAN;{>i`D7;D6tH$aNi2g|HlWoLxQa>l+NIpg zq<b}!jQ!atY=-gi&9<7plF@ae_+F+$D;Q+ojxlzNSP5C2F)bqk@qmX8umd5%%;*-- zVdpAJh16^(fXpbfkm!hJI6o>Cx>-ow7$!vGcvh8ZjKfvb4{X$TXz<-^Bi>qhs%z}S z>utkVwhON?^sYDZ{%8Yl(QzBUyics_CgWgYTge~CEJP#W>D7QKR4_qSdE*nRU7Jf& zwq{lL2iI1cvNou>&5$T{_lJ<WdqYe}sCh~lw6*!_fYUib3i1!1R6!1njJ}Q2$!Dl; zb+qFAr=%LUdWSgiG-)Evy>n)bCaT=C)j9*c4j8Sk-LuCe=9aqlyTacp>t8|Pe~TX3 zs}AvPsP;ekG?m56-^?{Z!z!qpxL@fuLBG723SXL?1g(|SM>o4lR}y|<teXO7y8Y{) ze-BVL>{(lHzp^rBMMcc-`t`7W{dXn7Z&62JG1s@KEBNrcuHbiFLAZbT`CV5~F7tO? zfqXtnS8xyyFILbJtn0VkBV;0pV1!;C?7F>{+cxEG(gpl+HC@0kn@|ikI5G#>xYIg1 z_$E3$+JEugLG)h-&z>Fr5Pf%aaPT5}{Orv^^zzNo%V!7hegDayqaVJ1`Wn6;9scmb zjt6oP&l5UptU_P?$D945gXqcAqbHF4_0dx(AHKYLy?+#afAE+6?+#x?hfiMPU#qBE zr*EzYeKOE4lYZ?I5{s_C!%wXO=UFk+S?~wtppDVdKG^TcCA-~g+m6}SAcS`)i&Y#A zoi2}lQGxWW!w>9{Nq@2$3_o^Tb`|)f<@h2Y2sEz3sKXPhCNqM$?NZFUA@P4$W(un+ z5#l3j$||WtBSBOh`#?9QIj`VRPnH0_#5T}N6^Ga#Z;Y{r{DK+$KU$;u#|XpNn_=n7 z6Ww#$%S4yg&zG|S8a5OijE&{&beh&kmJg4xtUj8)XnSj`7j5rsg>uPiqmhmtZkg<` zkU96mt=^YzR!+k!o-*!iNpX77Qr4ZV-UBzM-}Fjz&Gq|q+~zzOoQt#JH_nOQC^LSc z{B2ToZEfL$9{vYKwJp@FO{Y%lG1nf*YxQe0dQS~>9$oJ`&E0gnc&F6$btlH|Kj+17 zlpVi3-13Lx&4D`_4^4-@tQw0q2Z5pRGWrAYurv-|28Mx~Y(JNd-|?vMZe%UINUyxe zU3!tb_KvNdQ+8);cBlhp_*7Bu`0SW&J_wHwl^hr#FQ-31JEZ}75EvlUsL~Kg_FGqG zda9P+lzaZo-Ns8=wQ>^dA2J$r<Q3skY&F<##j5$&8O2-G-{}ae&X5P%1V`=mG)9lP zQ92AT=I9g4Ue%~f2@1evpFTKsU7^nXg>^E*8kv->T;z#g3flf2mzo?fvTcy;WW-97 z99H>upe?=V2>7P=z38t=o-yQ)XMA!J9BX202xbz;;2w1%uuxF`u~P>+N!=hY3=t|x zmg%^FS0rA5)HE5$&0oL<dW`{c$6@eX#559K8hcNjQf%LEwNDzrsj)ltJ*isMRjbJ? zBfAZ&H{#x2V35n{OBC3GlgH0uI)A1@^x6+W-W(}Kohsc1&x9n<4V6N#TssN1Oe1o- zE8IzklX^&ZyySzRUtA{1oK_kNBOdJ>$LWNpqTZ2#eckMmN~lT)0`8!CeNT1no^-*< zz!mq0lO)bPmv^yb3%*i|L)Ev2-?5&eu+sy-Zt{D;&kgQ8@U!y0hf3Uh_hF4zogV}z zqw!V{NGsaBR+$<$l~rkBY8GkVikP4d)Bbs~pmVd!cJQGR7$jt-mRYr7s3d@GH_hH9 zp=NSZtpZ`S)|LnFD~i*mpg1yJ712+v(trZg+ms$T*&w74feE<|Ej0%S=y&5(Cq<oc zYH-<1Qw|HX7qxoo-s0H5xR9JD-9TL{-z1gZ1g~IQ&!s_VQ3Umqg^ND21RkS^96WmI zgQt6S6jSkNM9XP8V+LS^%wb`CLCBYb4EY7k3$coqNuh4NLPyQLIy9d$Cu(6HnLTHn zRf`NJOffO)8dH?N1X`?Dl&aCRrQ|}_i%dalA`iIjfKJNSl9HMVaZ-QOwb>unxHfZw zXYraim|f6luM<Ga(SNHvr=KvA)^7A>1|#mu`*hcNOJTIip`j{oQYon#jZW2lYA>>* z8QLFl?Ww$o4PXsU+&ayzO0Tk*>WU>8Rj{7W8Qj!fr@TO5GV!Ughg#uahHvnd{B8lZ za}gd~dnk`9^Q%l%@bIh#SqbBiimDEAPOpQ=g*CEySeL_cSv5{!S$D%Z^pkRG4`z@X zYds4HFD57oOyWXeVA{{E%l;cj#xn69P8?lP2;=_t6gBnB&kx$wbP9yfoa)q5tHeWW zy|4i^)M47v;gi)!+*<Um+YXIo<74^A|Eo`hQ{-<UFxE;zr~cXF^gk)))av6C8lz7T zfa>NGc9UpSpF&UHa4_>>6DlMeFKb<lDQOBW5<gXljvlF{{T<_58j|Yg*0@v_k8(3S zt93`K5!_0T)=h%OgyO@LTjM5i6m<-5?j*RCZr?Pv%%=~r*8PNmARMgHPC(M~!a^8p zAZ--t$ndu34SFew2~tYckabo>22w0Yy(yCMa>5w3j9?ipfPX_AhMXWTmqQphS|cei zP$^p+*@aQyv*_jZ;sSmY*)kuZ<<ThVdXkz%E8y;~5~?6i#u%Pt7wur0;uHk<WD|}l zQQ?@l**Gdt?sAIOeR?5CZGnOircYx&bX*+RU4!6?YARhwxyRoD0Yof{-$uvJxi##E zcB`ZCwKoV(|C~*&By~?lzZ>GSh)M2662-=0zo^WnD|;jKdkXiB3Z`p=sRkVxFR}#+ z57fS7M6zV3<!oDyEnu*dh1jJgSIZ}8Ch?xh=%tbFLJIljzIVWcA<_12VClxAcSv*u z*JPd*G~q~UX4!1h&@UtdY<mVPNTNnq#SkP%agi-2BL!h1OOFj65ucBB&yxuu6q5kB zkd+GWkXJCWF!yo5m{n3+C2W<|j3P<gV@P4xz*e9(Epr@0%*WJhQ(pwKi=`}qcorok zoBs{DgVx9}S6O~ZbDyB<D$cLn`JzKEbT4Fj7Y1M9LBUN0y~nL)XDDL}&66Y_jFJWH z{edkrDB5d^bLxOIR3$f2KuTp<$nB+reo!U7EYAi)g50JkqG-3s&d9Mg2WPa$_PnFA znnAWG$e!0QO+)saEmos+vD-kpABuCxya9c!N$&4Z(@$3hFk^pjkIf>@h~0CF49*xe zi*Dn`Eddd|NZ#Wumr2v@9&bL_J?VqEh2-&<fB)Gu<`;`Psj)WElB_Z;B|7X2*rMly zWoTYIW%`7^uB-(-n2kEF(CbWvyL7H{yu-t>qigXRQOl%MH$QZ`I15#{z>cKt@Q}g~ zAIfca$Lm+O+c%`to3q;8tJ4~*@%;t&|J5SS7xj$ZbA_}u4mgM_+I5zk!_?3f4x?fj z)f_j?HZ654w_K39f3|;d%ckROq#7O5i<9-s!?b>xL{bY+qvbM->#OyfH~{bb^)#H; z-RMUu4DpEiY%kinfew$b{V0GN%&_3u7C64Gvdk=9G!3o6@Y3t=8Jww2t1ow#Up!lN z1;%t_6DK4t40=sUXDS^H77VV`Znxi>1-8G>OazwdJjFw|{D$A50|gGFLIl&VAM327 z8wD<Aave^I*4p|9aww#K>e!>#hO*j7Heg&9hhu!v^&IuFOCImeZvBf&>+fSKwimTc z?<})f^VaEqTlVCCgPlV%gu~I`M%w<^jYO;R7Pry2*<_Mk0TXgvPs5*O*=2l@#3SA{ z7M*5+oCnZsE*6(hPfhu!r%*raw!6@uyP7dqyNYf`6?^XOI>JYcR8LX~cm6KP({ZZc zO9-G4<U@Qkvd)g`?XH+*RcqgGF6ECWSMjxSNrSx6Yzb^M`>LS;hCnD}B4GR56^ztp z*#Jlk%ZVOE(=J3vK_9of$e`avX+rtGu|zQ(QuIjXzOnQ=xD)iGF?}#96(DEvSu)Xq z;?o5~xo}F9e&VRTYaBa9@gg3805DQMNfKXDC*b1ttc3UMwFG6EwCE6{cyabY;@tPN zx}4G@<D%I#T`unGY(B_ldz7h5+@TZXrX97(0>Fj=H3jL){j<E$J%xD7Xp)R!tM%th z@9MD0sX)thg`i5PT;sb!&#-uWWGYw{&E)pzUIWa>%_VLvNHZHu485R=(s4CO7Rq-I z-8acBM<|J2_qGiS?J}$UD>ka6Jx89Jdgn2aP-1qT+I7~3FxyTSIq0cK-K$=C?gdO> zpkr7JnwR=yS?p>S#{LB4w`8;$%{@zi60S>hO$CbR;u*36$;Ed<uWm$g{qa>Kmpy+a zv{;bvI!$Jxd&i7nfbfcYDROF#t8=Q2ucFNKhsVn%x=aDpk`tN=(*b3G3}49B-ehBq z&2r#|r3SVQcg`{_Q0f>d5%G=_C}K0}hyleO3;<pwoStIP3-r+JqA^}NT}~AS6NW>( zh|v@&(MA<e<-{zJ>SmY*P{yZYeHKYpt8*z1wVHQj=p;5Sr)(*wp8h$xMgo1>qcCpz zF&-DE_((k<I}p@5&iF_r?P6>#o#Z`QSfR#W`pnqN1RXY0lmUl~X|I|irI%D@e*NeW z^;TCY>Q>bt(>$Ho3w4p{6#=cN8)h}Y6uLRW;6s`vamQEhB08|`k!3iungjbkA8!_m z>q!#5i}Ms6yM%$DK_cg3n3{3=-qIez@)$sBwDmKDq_sibyz^_>*@Iy=ox<KqQSQf% z8?^x%c9rx0p)r5W2^G|Y*VwGd?Cfey1-Y}O9J5%Pc&~Y+`340cdybV(K|hIOiRA(& zNoBZx{a0())Tza~r=uQ+E<&Uhr-@=4=T)PO(t45X(QajhVj~8t^jR|dxJrK@Zq4lW zuGp?}4ez0Rlz;}$_y00@`r>s%gWi8^b6(1x4A~)?+O}4#L)=kRHk%%qjQXYusnT5b z7BWQSu8-!a<we^NTUTiwi-b82<pbc~SS?^@AX4}unIgkDNnspt9|>@Cx4R;1x3{&D z0U3-?*>*k~Mvt6<3LtQ;An#gZ>FolPdf8zJ9cQhIoMfx;b5vBFrOSq1Bj(^RhlNGp zui(Gz3fT#|vv&$vSWxzcLfvx|$Ic*1`vx?Bq+sU<$53%+s~6~bH`>Lgt~Ea#ySm;R zjx`=+*?0`H7BbN}#sKJS_o8V!>zIsci0(z(UHWeg-y+e)cG{2v+5_ScSJ(4K0Vi{w zcie}^JP@2?_oTw_MK6SfA0Z%^ygUOg!WTd5>Ux8P)O!h)116qTm}=Qm2#Lz2R{9H- zqo#(_@>bOKGzu-xkcUi0E0}bAlMFN53k9*}BGL)E4{|jru<En{#Y$d+*Hd1_sTN9h zvjq|1qh6!7@FJO@@Enguj3mpd3?KN&u<@s-Q1om-^@4=4Y3@kbHbnV%SgbJVg9|r5 zG<C(?kkaHOuMo<JZ3XJNj5V5);{@>-Sj#vkBbL+(4#HL}0(VqEfsbDAKmHmDG|Xx* zy3Up&bX`YR7=aJNci@F|&|g8cAvhz0MSNDARx+tql}ey-rUF;MY^eouHS)E`t;vtY zXuQ31e{xxje*BTYUH<sv_Rh{uE2vhUvYT&}u4N0gC{!paR32Jt<uB<CSA*}i?U&o~ z7OKW~JNHA{=9_9htkcOT$=KCJLU}fwM=Kju!=@VOQeA%^DTv=vlTSkVj$39ow2<ef zZ^4ALbSX_aB&b^&tawUikAPwsEU#++pd|@S!HpGyI3^KfM9V;ey^0^B<L@X@H^T+H zNcbw;=kqizJ2ve#OCn&N?vg*rp{XD+w)?XNwGI6>`f_OIC@o?nPezTy;$5R6hpSs# zbAH=u9IJLwCs(S__a{Zx^IJ}ZaDL=>qwF2&J!6WvWZ`|;`CP?2>*CAG_eOBAf2;-$ zw*TUrUUYZ_?DFC32m=qzJ5S)Sp1>f82-S;PkO<OXl2*T%1GC-fI_5cx_>##tU&UqU zB}vaNxrl-Yrje*EkzTA0{?WlYK42{$u%500*!C$eT8t$zqDke`h>a{HITdBM3dZ_6 z8s^JUqH@{C)FuVoTF&QLPTCB}e32Azz@D?;zVc$@vUngd-vzWEY5aAM?i|wDIDJ2W zZoAlss+q#cIIX^CArW+Rzp)E;GG~AVLQEmn=ZSNJ(dxJ886U5(&c~B1UO0M_63QCX z_79X;JCM2i>#5*3U|Y~q!?7a*S=LnGae$$K)KNaqvw3`u(aRR>9aC7vRg|%kthu&I z#0a|I(zWDrhHX?#UQdg=#^CsNotOGUSRBm0%z!WQ4CdCqVYND?T#R&f`vkFku+}ls z{>RVd0r5OiU3`<8<E2LHW)8K09je8q&}EvZd8=H~N*`wmxa*d6c*COB(Ctwz#G}v` zAfeI;Z*`aOob-Uq7~+Eqs8Y~jqDl>&E+VONTg3$aexv%-D?NYmSV#)JT-nX&6SNYD z_CRI)2Y*3BE&k&BAv*9Iw+bVLsp*^;C|eAlUv`rsF&mJ(0&2}Qe@)My>c=_{d0Y&f z0Wux8x@nKQm8XO*Kd^_*Ee?%hX)^7jOWi{_VOBbLg~jN%V%jS~{)i{z<z67SFiR$X zvd=+SM8IVsc1Cyo23N(!ElVrbe5`;1P}21P$MV$pb3vIn$oS89^>T7Ca83YwqppK% zb<`@*ZDIusO`e$O!v4Bzs-s#_ql*ni9OSux6S#RgxSZPPjEv$TW#J{E`q78}19Mt* z0;)S2PR?>~&t$QV8B%O@+_SZ3f%N;LJy4)3Gzb>5@cE~OHDAueE>}>V4eIj{I7tp~ z>SPb%gRfo6&0x(nl!fglZdt7NmE(C}_DbWRUpNROF6>1x1LKca0(@nvj~^#*yjH?e zuUNV(;HBf|b}-YaB<vGNUvhV=vKx$YQ%W;9ITg6_7}fxk(`eR$l;dY*pmOzbaq=pY zR^XcBrykp!GT#!uxv>TFU<6%_%~3K>7OBKHc6<;Wn;Tn6L-}l*5&XT1$%tM0BAq5m zQ!I>arD=#&B%2zbh@2uyJsDgvr(g!NL+Tz4gCrVdl`gs>e<qNHp@cl0sHoIzaG?gn zlx8aLR_alHJ9dLB8VZtPUE``NYe3%s&@m4*B%s;K5Q{g)gUGva+%^mWEl|#F)OupG ziB-nuu-;Ivm9gSDXr6H)H^>X^M#=<PK^iKZ7K&~tfvLaC(h;=)R}EJp_W5`vg=%bB z@z|={nT@rqIBz_>8*c2lph0HH_%dXu>5S}<b_%c><n4Err%(%Ot9267!su?)+3xwC zBW^<jil%jeuLA0Xe!p)t3YKoImg*_l-P-Xu`#(YU8`HnjQ%pqHT{Se&slq0Lr>C-3 z{1O^T-YwEQi`a#!u}cD@BAup_nC$P=b(>zkr!|Vj|IRv`o|L{<(%k$y#>gds^ag$s zW<u7Kc5L~^!{lR8X3xJEyCDX|ahM#OIOJgPVmX<RDU_{8L`AzOx61{4t}p{6WtE9r zrYgLPXucoQbSG@t{A*Ad+0#%$M@IpH7j)q%e%;!9K}d;8=UL2Z51l$o&o{3K3J@|Q zo<uZ^XQU5`9&V1(^K=pYl+HnzpDYVg%L94!_hmeBZ8#xu6bQ@OV_Vw2hvEg=X>U3) zTGjgpHbf|tRTG(H1D#_TCjnaY*QYP3`A(AUo%;_S-tlrl%6kuxWKX@c+gsb4TU%S( zeui{Lh$)!SdGpnmUwr;>(|H7KtTYa2XfL-_{i67?4<5Fi!#>b*tJQW^_0Y{9>PVmy z(ckpXZ}*=*+eIi8#<xgj!~+s*+Ch|y3piLFc6$g;GD~*1DUi+X=N=m|7^rpgB3nEc zgOojM=XX}du&A-zl})o7?az=<hbmq5Y)}vuo^?Z6nQs&x0hB-ST&Gt3CvDw5)yQAv zkkN`cyP?%bP=%89BT@F&J)C5K2Jd9RN`vU62IA*t5R%6V_rMAWs-sL_D~&<)sD+JN zoJO34wN+w~60GdREDbJW4Q;J%lGlnm&Dl*>le$*>xx(SkxCndxHLH5PK?2<zEft}v z5u8jhp^*@n!Y^$jx3IFE%^YWV5%qPnO}ae#dAt?v?%HoRqwNz!25SBMOUp9=mIiUY z?cL4oQfHY{;e^PbAj_cH0J34wJjAQZbpAS9fsG)-MuGwA<>$mlpm7PBy&>iSI|30U zU4j%ap;LTn(JA*Jw-51Jj$;w$=gGqLF3m5M-H9ULB0>u@K`oSOv9NSDoGeFd76|*} z^b{$}=_$Fr1S&w!927v=Y*0x&B;att+)eVQE@kF8Xu`~pmDSFspkhl&1PJU1Iz(hZ z(&?KP(^UyIIHaFiGOn@sUq$B(NmoRO*qaW?B;)VP3{N;Fa<+8|x|^UcU{^S}^!!2_ zJVs+|iFPIvyRT9wbu;l^Oo@-7c1rtfXfbV2LXL7`Q$o{rN3Cy~EbUWh#=Kbki9p`T z6yhuyXL5fRoI#F^C}m<QB`oraKUJhP=H6DalOV5Vxu6U<`|xnNK<z%McAgdmVv!$l zTG+eM{|2UW2RN2HK9Sl$Jd*?s!{BKA5Pg#rL!cj|4XFQoh@x-MPU~>)`D<+A=ia9N zSYI1Ic3QWkz;Qv9PoSB&py2D%8R-L19|H%{b+JgM(J+sTi%?6|=X0<7Up>G=vjVnz zI>eEfCliEC!C2I22#?0C=Lnn7o@D1AX6<gE(Cr6ap<jFjZ=a{IV>sa}Zd`$OfLG|) z20S;RO)N6>(k2&joT$Po^uZTC-)o%!H8CS!9lV4WMlbiFZJ!OOC*<`;#$Sl*rF0>< z1g;k(k1gjG$s~Owlxmf-DPV!#o;H@7aRl`m3uWY}(h*8LP6p$j$}8TkK>UV>V%i8a zo$Q(E!0gir*Ac*X3?8YBu*C`~?I(Svr6X%KpJgKp$BGU6iAL|KLkD`<ldkP?O9wtA zm6flo$fW8AXh8_cxRsW$1q<vl(Wd<-7$@SJCj*#8a>KJn+Wp+KEAO<5<lTB1a4Z^g z=vIwjYXg6m%v!e2oM1#Q>4whgj%W1Ei#cT7jd}Z{<#b--P2Yx%PEinLr{nj^t&T50 zZ`;BAbh~%)jr{_;zgt(7l~zv)WWeTFuVC1Bt;SjH{^|iWTWAS<Z#5E=7KWdEP}zQX zRqDVBg;sRrs|SI8sMcEj_~I+<2azw*psz~2C_v&Dm7RfC<=I%h@QO}BV@sXlrn@5Y zDw<aUHLeqZEecF5frsj7UK0t?Z(R+nuqd~p!o{*sg<F|>Wu>hL=*$I2d+G};G-<ah zSsP0pjUc;<=<O$Ia<i53CK;0?4f<K5H>mT+<t|lP(otc$|CRQ1oT4!rqc@OllZ`d) z3x(Fgyd;v@Phm<+z8+=MBgzi4o_Habff(1d(BsYyhVhKn<O{xO?Nkj<-$|(KeP!tC z4H3OIn)NtPrg-6sO+sz6XTn*UMcq`nIox3~O5@5Rw!C_@r^mVEKwCLzwK(b<?D5BO zrf96nkVlp3m_TiAfVZ+iwfeB1VXzOO@o(sZ!D)q^D}1FTpOtb{8VS-gR5_i}OEpJT zO)U>Vu&heI&g!ZILl$gmwXGjF$llumC0wT+v|78mh7dm+hz3hbsHZ0g#||yo7y_?i zaPJ{{uTy<cF}9&uc9f>YtAX4e%9=TE?1CQK@r)E+o(9JDfg;naY`HMEPEO6Z9h^dM z=sjQwF=xwkGD2BOlwcemOef%_$irrc7`BP2rS<?<M0?lq_QsT~;PjQHs*C_MseO(H zl+)8#>D*T_|7~7+RvYi3XVt>iVi+x`NoHZw<yUdOip#O2gkuqMiic9>!#%PVPU!?E zgc#211r6V9V62t$3L3UVhc{HdohN6oAcpMh6e(vXR*(IlplV!w&*dz;(qKc-C!jaR za}nX@sNI4!ry*b*54J~-0xoPXKrY?29L|Vs=JJ_wwhLG8Xs8)Q=mHVC2%iG?G@83f z@r9KCiX8$;X@~B7Ajv~H7wn&zUBSp%`3ZJiwN%Uhwmdh!8nMXx=n)j~Av%M9Lw-$S zy>{7x2}*E_peHf($1bDe6w-A|LB=&XyQa7VH~?p)2OUPZ*V(8Eq*EN)cmmUo)+6td zq8~+11qF)LkEq`x)rE4UhUzBiFkL{)$O@C@L_++*j!1Hbqc6{ARp&dp_p&jcWHXqR zg-qI#V+!(M?%DIMjl+1n$b^evGv|2*{hF$IOA^=JTj+t99-T^nOuPn0l_DdZx`6F8 zRyl~nNo>3+t*$kPtP>GxJ<-OyQX^o_Bp-}X36CUFMS;b5T&PeQkO66Dl7bk&x6`#F zT88DCh8xF8agmM}1H#u73?i$4^4960YjqBL18u-0LCbEw@8gbGaiu<1$SJDnVKIe+ z3e^ZGo<wI*NcK2yy%1*j`*7&FuyE((3dNpdNv$#NoGGU|@SNonSQ~w=$rIALVh)F% zyUDF|Ac~yH<b;x|S&5Ace{-jF)8=|)!8T}EzE(CQQoJ&({8?U^RhIBg8r$Hik<B>j z`hXmy7^p(}p@^cBn+U$$n!VC+meQ9z7S^rwW{w>Vz6mX+xp<x$`cF;;s8AQ052x8R zQF7do?1W8cM!*-qGPU3FgWXz70N1ppoHXSg^^j#ks4!-605vO{h3Qxo;?Q<39u}iK zqieIXWEf+U;rwauwb2-vco&M>onb_$+_r|Mj-mPqhopM_80sc5pi1*yT4AQz!6F;T z8Mo3h3Ff?w^)OIOM_^$XK9`wT0-s@&aObvHL1ZwKtCy1*#K0<f11Iwj+>r9iF^Jp7 zXwg2m`s!66QZux1mIbo#i(uU4kMt4$=mo)7IW%H}1W&EC7R740Z?;G_V3|xVc{9t+ zoNZzbJOaAK>mT-I3?Xy^J)RY4)g}-1b+l6p7dd8omGT0#YYeQRmeq#fYr9pU1b!pE zG_JYL;;i||+1e@to24M>=TmYpn=PkgYSYQ_<`cxg&f=^qcszR{Kr>Xc<<mYx&Cbkl zg|$A0@}ew{7-==SH2X<dVd50Gv(}NKD2GKQu40VsL)J1%FpXKb>9LeSFopu%e9d~4 z`qRaHtvY5T9FdDeH9#*671Sm}AR!dhJS(z~u-)E>Ha4QixYVJGI_e$@^jQw4>J(mE zX-xw1CYUA3s1V(OMDb1tiQg8mRe*U|IjLatT;sWC6-(yBSRjxgu{S{zU@iIP$v9E) zy;C3!B%i)UgJ`k_n;@`D413ltG6Sh&Hku@n9y^$gWR3{9yU`C4Cji?D$AeBHu)5+q z3e6c>q<cd@UtAFaUccY(3AG^;YEx4-9wQXX3`b@L=g}hSz+n%ZGY8Ya;TF>&D%h$5 zdj&f^9bUHh1WRQ==o;T1S6~|oOCf+4&Q}@ZhQD9fLqRY$cZqeoYp{ifR&#k-dU!UR zjj7UI({4g#b23_aIABFWEy<VU;3+srlWU$aT_D+^t5#9xs*8n&j8iH43?qolGuV}= zvS18hhP^}NJDPIA?4Kr6STVR=dZ-h3>?dHgz9WBBLW%+cmuAaC`MhMttb+-P0(M&9 zxfPx_R4$MSTI(75#F>o(^YT)Vs16K$k&vWCs~0^_MoF4yFqdduRk<p7DZ~uvl?uWh z@2D#_&7vK2mp1=hVtlAQclEJxH+q-G_GB?FpxrRas0f9pgL5Znd~5=iWw55vuZu4i zfKsv@6%PHfu=mK7daJY}o<9DR7705eK`o~)$8xH?32^jFJ5R3-8j2w*opE~2n2{jh z5>P`rF#?oJH))0JRc64~?)6IWN@7DX@(OW`?0W*+jK)Qfr3e@b^>3SL`346UBuAN| zZ(56u4La6}b&H;#l!|aQB~~%LNNejWZm(FeZ)GW^lJh3m%uuLmxncQpa!opta<#~s zTqdX>=~&%!<2UNTNs`Mz;(&JDnH;7&I6Y*dqbNyub|{JhZr&*oiok8o22ev-Yi9YL z!jXlst`wLF@>`d9eS`6HVhTcpoA|S)$;R%fsa9P*DP7U34}-mKhn>W|yP04b{P;n2 z6hCCfMqLe^K^Li?5^p|OWWcdK2)m(&F1!qB1Y}{Hlt!eKg$WZbnHyYu&XOyh0{kK~ z(8x_ytT_DG7oaO#e$pbv3${dC$ttA)a+iGk{J;P6e-)X&KwCk&P;pd_{wF{Kuy4&2 zKz)c3tTkwX#T?APVT{eAQOddjv<N;UALU)OX@l3D(lx0b%?4Dh)xBw6Zl+~<GM~f( zBB^Xna{pQxZ%(d~$t1k<Okr^R<9@MDQ|d1YWkexrv)7&jHgRzFN^Oy-Uw5<j*2ujs z;jgc`GHJLP%vV>5zozW<WHfFlSTI>nR5aJ{7Or%6!O!aJsg~}jk5B6wX;1iQblM*x zLAYvbdgU~ya(&@pr1yS9EAUfKMOHliO2o#f#7fYP%n+1AOVgm$z{!QLKU_<>;4MNa zGW;z!!7&L8wxB??`6=oSS=(F>nx`GqOg2xW;J@`7Aq6=~#A+KR>pIA^vmBz&=@I#f zqV|c0QvH05Dy==b6vaNe^`&Dsol<SOEpn6WY3xd?Pf88xB=un9rs!qtBskth2rBZg zJNf95(*1{u{D|TN^`=G4&hg2b?(rMZK3$Tdu?7anv^YJGoE72|!bwc$Ssv%tk-AlM zFs`^U)*Cd`+>O||-qiJ`P@sJ|14*G23`<g*qD;|`$p?6rg~1oLSTGf<N8hKas}HeV zsB1oYyt}=%wY7@dqSG*}#<UDZ6m?c%1sywuk`2OOpy8y@<8PPDS#`N)KIy<)VNb8n zdrwX19i>6MZ=`=>Y1A#fd-Q0pECmEF!WuB^1~6iS>CI5<XbADb9F?Q%T}rH$^=3B` z{)~jz;tD`)w*$h~A{`>yD9y4P!mhRI$E>9$G=P`3s+fqMdhD~C;GWs5OY-x9?VPct zGn^6<Z{ei#xeaZRNA9*_vIH$^Hq6^UE9g=Nx^Tut04;P3l#Iggv`0e7&{#yd5i*($ zj~dYnJPV*E3}U40CQ}_mfq<pRFezLPceu>Z=tmTyBb#C1j2R+(qj#G&O%=a!MC?K( z==nq)FFX*Buaz@<&j<xPYA6rPL`|bWt8hc4=Sx%pR|E+76C0EXFbT#iI1@cH>-nyg zj_CBX9glv5bup8HL_;<4i`78<b!hv*A5DB1_IBSvDlvo2m|2*`h16=_?{7cY{=D5q z+%E+DYTrlaqkfy*skUv0unn=A!=XTR!YqMdaPXgW_?T6yjhgE9J6ghN33d2JJ?@u! zs!X=oB$VtTNzH&heK~sC(~d6I@2Ao67^IRPb~{_!JNJQYsRPe<_RWeIR|o|sP1(iu ziA;!f`KZ>PBXk74qp+Y?QjTMhxRz&>3$I|xgaWJ|a3I>he76y+Pu7H~^VSN4u}NN| zgl3T12%>&)j)H@r=E){snR0{=TF|oOFxZmKy<oglHFRZRs40Me$_l+!U)Pc9C`rZG zxrw}}>@HFZpJI+Z+6ruAxZCcvNTB2z)=@1I$rU!1as@sFfMO?;pk)hDd^&0z+dMc% z&>Ta*^|@M!J&egP{;;3(p643ibmF+xqABT^(g$(DbAo4E$D6cn7nNz*D4wug4}F!A z4WC$cI<R0^h*6csRRK`T=p9S46(aUXN__@1MCD2+u#{jygQ&At$0Op~EDXyv7G*SN zvd(FXu`%F_d=pqk1hhA?4r^xNi=Cdv1=fp!aPspd*~Jk-$B2B;WZV&asF}u7DZ(<@ z?SFZ_xX3tQj%`#In_#cb`lvp(Rg{__uq&KlVJrd(QNx)(U^*j5E@wmiiUG?oh~+dz zr+aK~heE*kCnIL_g1L`pQ4GYe7lCx!>e{9sbWV;5@-xQ&&gh)p+Om&nuN}N}DqC|) z%{lhlvuX%<kF({4;(8&k89BE)bOuZFalvayQgDqQMb#8paEcD@YiDT^MJfqQhIGZ$ ziGc3hy(ZEbTxiBHdVj=IuRGx+YEUf@4bxdqG;#VS9WK_QO|eEOedo9sSpn0OH3Sty z&qpaK@8kTsA043eiI^#|;gQG%WOsyaJa*tLvVOj!$5t`-Zp9eK5omWGm0v;`(G+Eg zFsSUXPbCz?JSJ8~F{BdlVwg>q)0q-C$OVg9jWKMg+zPUYy}CuRh{b&zS-cg@Yl~d2 z14um~oTM{Ctb~k90vuT8lXz})BsOsKC&O&ENF0NFXaH&&?)e1upBz)nBcH3HJTqd5 z7Y|HNn<<3~=n1dPOPaQuNx}4;(sdEj3}1_cxLjnLYz@irLoH@X?j?g|nU)8EpG(3P z-6aM(g!VoKtG-6CO_IroMvvAgto1xi3bN(RmWw%iw&AN_@e2O>q@wn?7+_xAfDj0a z51<X-0`S?r$be^?^@zV@NzyS#i_(%*Z;a1vRY5NTmDuPbvQg}8)?40Jc4gK}*@CKh z)*HRoRF(Q2r`11ymUi#@Lqpx%^~X{5#S{z=d6-N)elf0oQ}&Z5l2o8gR>=47l*k&b zEHVw^Wp#G#Xj)fQu9cV%TtvSL^Fh0GPip)q=0j}2;gxFx9!iTJ3~ru~gw#c^qOG!y zo0My_r4{js^05UM<U8IfU6xtw2&Th^`}JC7;3W=z?JC%-67quG!T>IU?%Q!Hx6K24 zjr@=<E)FTIb*I&Wws_?O8|>DwLvjsW8#rv$@%D+wQ+-TRRDtE@1aUU2tPpU)D5O&; zQp9JZw~kz#RtE2GFmHlXxOA`Q37P)YTrY4O0US1QR$$UD9>wE4n|eC$ns77f;IiR9 zmW2UL{EoxM*pg<rw6JvpTS#Kps9DA#))`sgCG_axA`da%xNdZ!ZuA+fPdvjK!xQN| z-io57r(YTkLaDsEpjIobKdS|y#ZeCyyIu`2c<wqcNk}-^4FZNa)K7wn7ZPUzsn-%> zRw&uvxGFBQS=J$<jG8nhgQ(Mqd2-$rC0O_XJ6>eVoOF*Z7Qu(Tky-cEvCOYn#@~kb zS0gt#ZM%n>`m2%8NvSL@$H(=%d>z@9BX~Be6YL1KqE;F$b9LiIb_ww2$7Qjw?`pWH ztN1#Kp*S{QWg}}f%qRkpSugsK5cYv!pvdqs+vs<BC(vah9`r~&sO<bsbLU^#@U$Iq zM(p?dP_PJpN(Ig$AetNoW)tH@<8Zusy?^u?R>vfHN0$6p>cNX|&=@%-NIZOEW}JLr z28hl}p7IjSxznOzTGrB^jRL8lU@HweXbccR(gxSW%MU{7vg)~q1|smkDb&{)sgi=j zSIv==%BZLHM)Yl{zm07E+EOnK%P*<>_}Cptd;)z|%CU}i`B03ds}Vb`z4ux3Qnr$d z#BiiyVgSSH(kGE?2QL%y)xfpZd697#T}$y+!H8OIjz=TU$sKidEvLmTr%l#TrOhCE zPD{c{ZM|{?aFlDqHRM7vR1#y;8E&-PJXoD6mS_Lu&TOvV8E&-SnVVgi(3xe$YgQDd z(aOlVwz-2@$-&gsdyGX6V&hm-9RJpb+c(KDW9NM`u1?OD=jYn2LHQlYL8kG89L!s~ zj-O1DQIGHDN4i8(R}h7u?5C%#ufIkWK|;sKGy#rbw26Wp$BcL+E@}g&FocHibuW6v z-GY%MLp6LNHy{#c@at|%A-;rLNUmDR0`(FMwOif5M~|Q^Ct^Dv^MXn)j27Y3Tnp!| zBf6C8CHAx?-b(qP*RTG)JflXJmmpyNG<%l}MoacVQ`jUtAmLrmW<40tZ$t#@AZMo@ zNw%(iCSHy3KF=tTu0ql3!p$fj!-aSEP)sgIKNe8|f(HD9|3;HB{`cd!Rjup!`fI&* zD!Nb0C~8-i4oAmUFX|ji64G2uM)HUMLR$F?$$|3!{EJ1RA3ajwP2m<qFd}e9v`6C~ zFDHcsXnm|6nF|#BJH}%H#$-B(5!Jjiwus74oxAgRKR>sp6F1nmd=WG*TXn(up1=}E z_YcZ=ym^1ufigiUN6L)8j_!Mgw5DvyzI9SzB-uwBNtNDIe_ep&KT7hvkJ0B6S9oe! z)A#c)GF50gheO<>Z{4@X{7seKBZP(y^sDG{_spQygmq?<$*~?nL*qSZnJn?&dmbyL zp0v!w|NKkTNsO7v&lRnPBwbe=bItFYs-SgLJt*+nD&DvC{K?E#X`x8kpWx)!U^}*1 zN(gCW6$MOIK_>wmX(~REjd7U>eiDHtb(kU$1#i(C;6rh`2JF<m7d?X?ukgE*)Fe^q z5eku0AIwJOwD1~I3P!jpoA3I|rQ69&F0O&|_;r{hkp9jfDTXn~0xx+l5Pcq;6|fC1 zVBA}8k54x5_WyA2Z~xZm{v&FsXjMA_>PX`~iKl0ySnbW-XaU>mc>Cl|S6B3X@*aVp zpsu6jJbB-NI^J&m+wuFqoE&d$eid(y_cy;ixz}2?g5d=Q6^F%w`**^sI4E-KeG4|w z_UEu{Ox1_OMY(FI^@|(Ucf7p|B=bwIgY5yOe9r5P?T5%80rNyP>_bEtSue81(;2qz zL=X5j)qzy^D4w08^u^a4cD2?OQfreC<*m1nJ5L^ycj!WJp}CRI7^1AxIu@~tZ~a?; zlOYkIUlz|SIS2BuQ_8)(3Fm8C_`#_?R2B+bx+Dxf(-r=%$gzY@L1t#e%fVl!Svi~~ z-zSqfU&SVIfk7iBdWf?0$IQH~$=!LTB_&+kjO(avB2jM<J<jqxyMiP1dbWt)vvw`V z6*5P|%HtC>rnC!JhZYJh<cekMI=JmET+Ame3`>D*{uTu_`}~V9ziO3J#+yHxl=0aR zN<P0x;ryJ=viaZhVzGR8_5S*&aLzvrFmHX%KMY#t=GFmURc^yT5+_-~cn;9tqNgzx zG&5*f$)$z5dyWa2!331ROJC%%6b7SjCW|egB1FGx*Na7B-O)5g)JYlBO;d)hM!lFt zvVW`=kS~6W_R<t^1w9^#m_;3h8hU#Ac2nRzBjj!2_X$Q1Efso^yss`87RKB6ZCy?W zN_oGtjbNJu`oO3Okmxg9Ji3%FCER+yv7vLSAVMe)5wA)s7u${Mq=MLa5CzWC39w9o zR%SyAU|84AEw`Op51QMl$DWoNBez~F-Bo-B%wSLZm<#a5h(;MLkvD%r)KRH1Sq%H8 z+1J>gGYS^VUO2iu&YGmz^4iMH#qDqY6}Hph4+Lgv3RHaMK(9pGVO=Qqd^eigT%mVE zGOsc?A^oW`#Y3t;<iI8bw#*w4&&oNR16`Dn@ay&oQr&IgRrr60S<|sOxmewB;8XJj zmyh4D3YT1aN~vxii6>W3eIsH=0wuXw$3YnrTXi=k-nc?mHe^=lYwXH<XK1a>Cb2Qu zYb^xQHx^}~g5Y6&arhpTwBFHEUS9D?M~TFi3AzO;A$d6{3?CdP+#CkCmqV25MxZr` zQx@5!u;~D4Y8ftuqtc+=%uFO=*zyA}j1N2_>$$qHGAXLgkl9cRm-iOO$6<ZCt@Kq9 z$j~QPDq|fi0Ud0A?#j?nhe&|Lu$mwoJHcb~OY3-ZEoXh)E(ZWt`svENPIp)9Z>hkV zu%%mD(e`$<vlGQ}^zFCNRvc}OqV3p8W5S5yhi>8nW;{(1ekflsYPl}4Thq|#b%b%_ zM!*GdeCvxW_gsnHc9t|7O$}V6i%Ak}U{LR%je2StJ<G1txqL;A1%x5J%+YIv(3xfk zu|9&WGRbm+9V(X7DI_DMPl`W@9$#nqWkpxZI*O(#J>G(4@<lJY{{a8OkDZ4P(E=0x z-G?8aTep)9gMQq8{$Hr5`18{j-+goV9KU{hc!YoU@xSj6k6s<v_KclFlQ3GeWXrZ~ zn_t<sZQHhO+qP}nwr#tr@9Wtcbx+R^IFYeq<;tQwWA@lB`uz1W&<6!R`-ZTibA-sB zQIs#7s2^F>ugEAL?-_H2x_tHVM?HCKE`1%&I4&X!kmNG)U3<bAmJ_lsUU&ZMq-Q)O z#2{F!M{W%SAf}|R)Wm3kN{SxD5wWTExrfK>u~_FCs6Hd9wI_8r43^cx=E!F^ZZ``T z!#)iJuA-ov5+iQuNT8P@O0itDd8?qK(&_GzrSy&m=R`BcU7j%r__=BLElboXW)I7b ziUojy{Dv$%qs&A{LjYhw@pJ;JIB*bMb~4iI;`5@9A|tpvs<VRR+^ViyOC=chHGH7B z9GR&Cm4}?vNi!Uq@7Z%}CVRnbjb6!QEs{0YswcayF+Z!GoSvDzUY-wtKFu1sUyrZU z-EO{*`(3p1uAN(*PB!bdO}EKQfG}iy6Den%0#}rB5{g+hE0ro4m$n*Jz!!6KREf$O z*QyE?BG7bIpHGLuK;CWNv-X2S$071Q=U4>2?g717#ppDhTQjSONC`8P;rP*7=|<`Z zIfRLZeJ*cJACFX|d4{L|wA2{KNe8QB-+Z4qe_u#_u@6`2eX#<E-OS*U2$Pt0Mwv~F zr{6$IegPGC<@MOdj{sfRezgB^!M%46`3>iHXE6klf>07KnDtMFdlE;)D3a$P(wu~8 zFm^EI3n&L(PJ>fFV<o-E(xEu64|u0?_*1)iuJ87dEgK;WYGKGs%bg4P;?5>vA>iM* z?7<keI`q_OSV<P>!5j{Dou*ThCfM8&OO_6k0C!|6SnB_Nhjf`4PJd&CCl5*}7ZSPr z+>qPpO$yH2Zaax*PN)?`u~Nu*cnNHZ7Ih-w6iZrAlOH3Ouz8MgJAWO(Y3zxg{{ZEs zfI(0I001BWrgIjQodsbjXQ2Q9M2P_asQ!C(GI4gXceb;$cB0pFHL*3ebELQTus3jY zvamIyH~DWj)ZW>`&en;}-s48YCT?pK@wZm5p#%}fLh8E0Vn@9dt_7A&Jb_d6ngD+m z-BP5M<n+I#q^|C!{m(u((^PFb(o1hy=w?t)eCOld>FL=iX67kyX>V~6n@7pZ_FXwL z4-K_R2GUOQp0%WyN=egK7rM4;+~0uLdqYF=qtRm#wlvj|WYi9nS2b0o)PD5=D_SHQ zlz0j06biaFLANiHT-A(o@#U{f>KN!Q$XX2@wxkIX+V<6J74p})lu6%4D?xPxzd0GY zGo{nqJg+(W>!&u!aI3F($GXSD@g;LcgL^e#oBf1vc+rPtlJ0Uh?SCbvQ(UtMu@cB# zJ&21|=p=3Rg~WQ41XaS>swO$;L@<L>{yc`n+xQLpmq*^5e&3XzVmQLGuy*`XhoEbN z67y4wc$5%<tTgAaGuNxI_Gcmknj*|A;z?<{oUmNv!iRuf#3<GD9nzr8`bZr*^;&?b zsrgZ4tkF$jA|`l^mP6CB<_tZx>n#YZ-KU);hpEI?GtLp;9n<TfRzhgC&9iGE`7ask z^&}G}wuvOgh~G<v>(V<~u+L~PzMln!lIS#PV9H**aj94&x7n{q|Fj3bub{k_X%Ryx z(thNtdSlICoDHDAI}f~rj5TT_<omX51~y11+_}Sw7$B)`KdzR9_uoij0D-vzYzvUM z69{D7i|V!sWZ~Z&T14dF6An@4I7LPiUIP2fff<ui2d^uqHN?Hkp>wBphlJcS2bFDH zr#_72q5|Aj`;ZY$sZ8HlLE4_Tk#T{(^)3Uk19pdZuMJv+i=aSHhc=X}Jv?KCP~UYE ztd7jJ(60$WM3jMWpu6Es*#S`On#avm=FlK&K$W<|D%=mt1%e&e8|6J0;Aidger(*f zd}yo?Ftw#a6#Mh5VG>XOY3g{(3V4=gVFAuH(T4Bkw#5lkyJpzAm7*iHIT?aBD@D4? z@iPHH4+wWt!e|140ZOe35=IGb`}Z}dMifIa(09k%{-^j*l5@!oMrnv4NtF(CeO8JF zg~BatwjikWacmCX0a`447uPUuKJ%WW(zxb1Y|c9aJ;BmoE1e-BRa*nfM#^}zY!knx zxYBW<_G12_kS^l)%1+4-@(xYzq@@7)CI5Q_79x(?0~Umh`%gd`w<;UTe1p%5=koTi z>O^sk=qAQSNl%k9?F}qZ+Pk>n6=wvCt7TXj*DgeX$Oa{|dVFd-xJQX1K*7)BBxz<q zPQbh01-oqwk`#*xn252?ija95p-8ew2^t8kJ}i1w;MQ6al8!x&A>#)LX4ny%*H^PX zE-x@WF$S{Wl%S)KU1A<ef=OgVY$4o|Zv8`k5v372m=>pFg^P+j4M`C*w3)0UaX0`H zDGbJh;EOK8*xA2b5GnDKij+FA?pUdHBR>iPg0TRgeK7UsB-)&|7Vg>nMh|FY=JfH~ z(vdrZfaIu~>PQAie;T^c4r5=KfmAL$_7yh9vO+p6mX%1dYw5A@k+eqqBv{wJo`InF zqqZ7aAD86$wbOHADF;FpfrQ#$)M+DJ3FoOgg^`FIg!E5Tvz_%+1ML;1$f#yBWrR#% z4d^5>tYu0J-D}rFk<NbW{fOM&cFskP4o@85S4~wzDc<a>D5p(pK^6%+&Et5xkpD_E z4G2M?2oHE7!CkMMpbES!@GIAGT6Szi{!MJBfAMKqDVO!$@Nr)&B#`QP&rCHx%B$m+ zXZ8l}#tD}z9kgmAab}DN{l@UYF!@Xq(wFBU0r?RddUuN8w`I}<0$8U(RODBnCRKm% zfvTl>ejYRenKhHT?cZ|cwZ=u{KiCT>9LqUHgz!a*ccc!e6#5`0v-BJGY<qCh@#u#v zsyUXe2kh-V)K7j-Y7U&J%qUoA)AaZ$sMK>)nJ^?z<!x0=`%(n&Db@OWei54QFwWFp z_{e=(jh4!O`srN@s3lEv1q;^z(xLW9>i_{(kQFp_Pr*<9HhW<Qc|BFiVv~@T6Wm3v zUR7JQlRe7vYEOj$^E^}+-l0&2CZadegFZSB>Tw^Fu+057$Xzt#l|H4X90olC?(zFR zqQ0Aw16<7uhc>W#hpf>3r5Sx-Z$RAo`m)wzvB=EI1dXk2*&A$S5e>IN{dxnOQ~Y`? zu5hSGKMBbS<<WdVBuRmqkd$~#R}#E45PtR%%lG3PDQW6YX6c;=(J0EiOEcy&p4-Je z6g!ob<%18#hb4|$;v?g3XEgQaQTO3fHMa^r=g&V$&}-^1oDoU>F}RWfsNKFXWr)5W z>oKN}SMEp7ac}wedW5V?Ts3(B5hb)jF?wF#LB~%2zXf-N<sDmT+^Aio9VIUxar%Fj zI1vG6LmAmt^l%{{ldh$E0XxQmHztP!ZC8w2S3I4nmvj;9L$<H9GIT*vdpyv$vT$|P zLl;5jrS@%Xm0Sz0?WsjJwh1zM2M`3BVRyFwJT==mmXWdz+>(R}SHB!}P>&c6q~hKr zeibgrtk~zdI6H>*z5G_d#3ZUyvpYhQXcuXHpbe4P+l8LQ;dSPU@S9O*6Z*n-3a3KG z9xTmkD~Me#XajSt`RO>Fvu%~4H7kVX{5G}fR_(S;)^dLLcRYUD_H2Lt9?$ulJ&psw z!;rLS(1zfER3h1WU841{1mETGG1i4%U-WYnzK*5?vuu90LOn31|L$48j`HxD&isB) zB@l4y1u+v=>T}DyJ`=iCfJK5z+|aTAQO*94g|D6u34I7gmk#NH6$v?@<x_QU1IGP% zAm+~H3hOL#dHJ52l-g+<W^Q#q4<}u@m<$J2XPkIbQ`g%@o`8EIbcoR{6;5RTFz!IW zzMj5%t^zhei@^5_06j|x6v$o1ZE$^yItrIQ4I|lsxD}QYqRlV7sSFX6Zb(84#hgHi zbHHtVgFT9a89&O*u8E*C_QU?8(yL7W@!wga%?E($Zo|R;8r`(FgWq_wiSH_q>)tt$ z2TbvfLn^h@D~k08clPHkR9E422Litv#{y+MK*|7@!QHheoQ2kLu^J(;v@V|C1s*?w zqAeS^dwtc#iEGkq$!*tcX$9#~v!<4gW40mqI=93Y&KpaH@oyAplDr3V1$Yb^kFyKb zR724uC=sb8^(w<^(A-gJQ!?cK4L>AJU6n%|>J^eECeXx7Wf+nR{5k7SLhsC>@zKx9 z0RkCDEB>pWuL>|pnSY#S(1OB8qfbg*N3_NjKqN#TP~HA;!q9)+f<hGr2YC4&k?P}Y zNq_d>zwD>L!i3$tzS~<}DWsL<Y~~cC3S+7%=4s5vCz|R$+ib{`%bo>y{iJ5=eg`u8 z0fA#9=2FOyQrH4i4_GtIO)h06-m#L>5;@)kI##OJR=FAw+wZ0U<<Cd7(d0pTzrmZo z910j7Qo;%UZWA@a>P52_a7L?2;Hje2Vk_kmQG;p`R1ZtG{iC)9-V3~*%blW;-M$)$ z3^8kB4$a{V6NR@+Zo)Ab9%K{<;i3d2vFzt#(Z^1a8?Q~c`j=Se@g}3W^spuB3?ADy zS_f48UunpIZxf!8?NE!NkwE+ITa*tk>gq?{if8klXpa9F^)w8Qq%9R*y^E5GDs^~t zTA6%w32qBv@_dTKoL}6HU3+GGjaVGIyv*U%RV|PUsqJWkXH~n}ll5R|pSTZ{2dR<t zk;nbvAk5wGS0}0|%<J~Qot2gbav4_s2#42&<GlZ!iua<OozJNO0QAxU0LcGeso31a z+TO(R|3+e;AGa;`#QnQZYKG}6M2jiM>+S0;6`HvwWH+~6lSJ*q-Ho=`v{I6BQ|Sb( z#Kt1oM!&BWa9#;X*H2H^v)vrudQt=m6sV9&!2&36B3t9uWD{2HTCWR3jpUa03iJ*6 zQy0y$#>J45>z7lL1_Yr3$wT*4vNeb5$TAVimm*x1*2<-6<ve8##T^)7?zzOyR1WW? z6&8)j_T;rkCvCEimgq7z35^%e9`YXYLr!WkiBiVk!i?;wjOj%Y%_)uS5*6H65bxtN z6Aq-lV~YemWfu;FJAiPSIi?PO2W_}=B-U+3sb~=fi1yoNb?HUz*x_OdCii=zM3qE* z+C^`YT{<iOMB}rol5X*ihb*EsmBcxCm5l>GiB!}#2OTnt)YG*F!G${(B(E{vN@7cF zkbya2Oa*j?c8+~&Bq_XrW5ki{aN;Vc_=@4&a=YRRC92NpBo$RPh*G|D_>l|EG}v-Z zz{G7A(nN1lKxM<sV~`WFj-ZRVf@|4R1~dmhVAM(zrW9aHU=mUQU`CA<0Jf4=L!t@~ z2l6SVoEehj>JcVDZ@|%&l+5r4kB&q&wRu1TmXL<!6H86>6Z!5;WDq6vDwV=SR=D%a zNUcY4Gzp#_fqoYU>Hr*xiJr7Z-4u>_ngFH%9kawMh;wjXxM3g7z4zfNfGmsF%!v&r zJRok`JEinS86Vcq1>|AWbi&Tg3RS600S@ff^2I8S=&C4}?t-I!$dv8bLm~}m$fSTB z2H?$Dl>4T+3B!zug>b*j6r;3ly(mXCvW-WwibC^t;o0a6X@hu@pb2A!9IyoUKyR-F zxx`=oXL96kuAEo;Ho=~Ryr-4INU(3`ZF~XdH1N!yoa|^>IWc<OXx(0%oSY5aAIBBy zYK+gk*#K$Edig{-lkh7e|0kTadgY=70R;ShrsvdMgm_R*(hYFIebDgcNCIK$T8&pS z4RI7wz53^@_IE+z53={S6MOb=Am)2ojM*q8carB$Y+x)9xZw*&Tv4HS+9c5FdYB^f z{iRr{CAKrjemwB`t2U{npc=G;`7R9bR5#K9UKp_$(92U18{>jK4w#3aLn+X079hw7 z>u?)|{f*GejRf|3ljd(Eb=E_@Bx};S$wrDHfGS$m{(5A}+5jL{$qsA;bh)5$mJvxW zBM1FY8D6`aH4jlF$SeF9iG03bxaDg>GlEFP@xB^<iGe_1emd9rQT?+g&uaFl-y5h> zd~ZVDP5=gAYaa`U%?i?g)x@DaT%tcq+3Bm&joe7|?cCS?AUG6P?BKa@87&_E<8-tP zxHDTdUd6*@BUEFN5*lPyYGGbcF&&7>lGE@!DVvJBv?oxob9g(qU(MBneNtmojGnPj zv9#zbFe1N5wD<(5l0NYh?fg0dQJ+s(So1iUd<0DGlROj{6NB1h%*(W$0<=vqoz%Ah z4v#H1l`p^D{AgHI)5(rN-zm0-kkt?@G7)%53c8|t37`V@EO5fmCA3R2o04*ci}F$& zGG`Upu)>;Am!;|^%-UM~`K*&}AXW?H6!qJd4Kz_3mXXQRGxK-$Iku}hyk#~DIzK`Q z(!<VV$KCjlMLp_vGoNW_$H@PL^l?D)ahzo#4?==^Wbfjc^w*0$6l=lZvVRAbc)2r5 zmWs)g0Kq-RWi|}u!Qc(-u$c1GtMft3`OsKuf0u%I>(ubnnM7LQn~WJVNDJ`@Ee(7g zo*fC`ivGhqvC>=EY@IiXcLtX32zIk&NC9EuXQ+tPA&JsOol<KR8PPPOkU8knpK#fS zV+m~0^c9I>JVY3!_i>mk6rSrRpy1c^UyU<>0l7jl%^PP~N@5~J8~1sJFh7PP7rZ0U z8)Z!;asWPFvhSeMybb)pLW+>?%L<uUHig|x05BKboFVfq_TjAY82w#1E!HLH+>HWE zQT_^GLxGJnh{70(53F0%17{9qad_&o1EY8c2P9ViAd8KT0m<)iV(>ID7w`jmAktrb ziegGQl(KpQZdZg2wa~_@U9RFpJn{e}T69WNWTkNq>k#zwVbB_kK2Jn)QI+Jc&`Nzm zg+o=0p|XAB`f~}sWUj-rt821ls+vX`!MtWMFHt~5C!}GjDqFRRv?$YnO4yn1q?;P6 zZVSE=THshX_?KCx@q`!+=?<&L!o$j?#@fc~Xq4S-t6Sm2$?8h}g*%5BuM+%}asXE0 zSLeF73a)}Kna!;BHEAIih+3>=0FLQG4oVN=fZS_qtsr{C^XGtV!V&Ud1R=CbMX8k7 zeAN%3eb9XoxHY3gzcdqZ=uKMW)Ts1i@Y6>u+A3CQ)?^CckqR1}_G6p-7jrcgwu`*f zs`{U&IYPc#;G?>mJr(qq0D{uWaL7$nzNU|GSCZ79!{plJqqDlm=v9~er#A=fj58;L zNMthO$8yqPKnM(45b*zU)&?>!RaziK0URxJ%&ex8kZd#a)Q^&cS2$qOuP4xe0^L%W zom9yG6hwN8D_fqa;;?dQkxQR|I)#=-InTg~Ep6Yz)?p3jH=U91rWuA~*&4X)j?p7q z+Cr*9Yc+RQIGG?3S{g^SVKB=gS#`uk*6ZI(FH=p$eS{k3zp*pS2U+I>>BWu9`l8)A zTS%ZE->lk=q&{gzo?NWbRI#iE9GbuFsmCKjwY$MJDq8rF;Dy$sCaVNg(>GRFD~>{p zwpkOE5||HMxhCv1mPSX__zz(RblQ!lmr{$|7iJp{ClAZ_Y-1Uy{L@S3R!l}{_}w}l zH@>k=ONKc(*+wF2MK0OIA$-iH>g1wlIV8n;hP*|$KmfLhKiyn|xsD7hrGilI&mz&8 z9R$IzPj>{3dBOY_JaYsBTazJl5@C<ZNl!<?_YFH3PT@LB(=LI>emb4)3cx7$PaYJF z?#T|^d}Kex8=zZ@FUL#fm%$bB8X@}lr{Kin)q`rn1)<dvks8?(aGjtY#UQuW8@vBe z<D`jxwd>58)qcTTN;r&66Tm~!8aSbIWSuXN1w@O5?o^tyT<fAJO^xC<fNcUB7@lt8 zqY}=dRDzUQolA$DzW>f!*%&V|Dr-aqb#L;8XFRJml?$x@E9U0U%<V}G@~W?9@uCKC z)IFGBf;QRs{3f7>=UTSqC4YG*MIO)ZRd`qOIeQ-uUDyw>k-aZfrDsgAF0{_Oc(C_7 z@f+$qWb#adQ^l8w0JhqaB-fR`<O3;~00!y|{iNXWi2|^W@e`V9C2oBQm2w}_nOxs^ zc<@7+OU)mmAIP1kfaC`cf;3wlLCuTZbko#u&-t?HELV6Tp4u^uXj6kM0<)me&~rt7 zjpd$|Pagjqx^4m6^0L54QY`?gfU^xtNGh|hs%qSy>3Zlr5xK(uq(|IO#(nCb9lX{A z4tIHx5V>JCg@P;(;N$Gp0p0?7M-cFwjGisDW@;NVi+3C7P+JF66z3|4di&IpNhSeE zyc|uFr1d{XL-KMY7K(v?DuL?^f`~C3GH*+C<$e2R)uqd6wpju$5w>$CYb<8lY%nJA zbJVq*)03`D3@5qNdS$=>@OqD%+1+mjs$q_-V!F?fs8B1}r(FF;Vf)hSthY)X1WLJ$ zd~()LP?U-GJ|~`41S-zJn-Mn_J6=$yJr0Rm#D)wte%uRGH5#&p>lSx^mAh_WO<!fC z?w>@4sz@y?Ze`CEL93JqEWJz-ZuogI$V$EsPZ_}ZzI=F6(!&9>gC`3wN5I_}cvygH z@Ab5UgoDEZpGey@#vcyOs{q51Kqe)p_o#^SMR??Xh0>Ke+jHF3v@@{mD_11Ykbkaw zsO2ejW0*$!=!wBggHvo-T9Q+$nGOqp=omH3!25(z{ua<XGpMV)a8%M`r(h0*b^dXp zk%vBUxw3-Q9v;N+;H*S4Il)f~1+Y1_GP-lROs(sP9xxT8H-e$3Qt|OdEBTO#R6NtU z{(eiyLC|A@8xuDECi!edoN5K!!uzx(P4W{t;0puNgnbK$FSNxJ`vM<MQ*CEWrj2w9 zVZOpD>Skd9;Bh<JM6MyIWLPP{d5EC26G*Oe2L3VY5^M78wWE{`1{CZ8;j&J0TTv&b zNDNjM$JI#jc)z;`EV6hjY;#XLOD^YBbvYXsd=4svd6-J*3Q}-R>v9tv#%A_qu)r(B z>J@h@u@w3YgUj>>RalH9XH)gnef6?xt?E;WxXRq-*x1-eCRi-1ROmrgAWFe*C0~GJ zqxAAe_$X#)^#B%7t%(su2lXPR48aDtIeLm|!~ASnC#57e6M!@|D5r3Z{IPyQ!^7S= zumEvo-u<zFh?o90qWZXE5|kOIUJ*27uqons5b&btJ@88u&`GDh|F&FBd%FanIaO?M zAb*R%7ppeo5^ALP%Qw-B599h?SpX+(fGp`b++u5i1;FG1e>7duD{rWK2%4BU0NA>k z7|(aU+y>|e<bbZLYK}js<CdpjwL}$7urA8v-&szDrI5ad#;QRjARkhbt)6OR*%7!X zccx6hP<?wvckMVaT$9q|K~>&vw~ycJ;qg!gwSoo^_kV-UbZfNqIO$cXQS<0+IWf;? z5o0ww*_`@b2+=q&ImpGtFNjXi1gS>ak?2^965|9IzEq3c+ZefHMi&^OW2LVLAM@cp zDmy?O9Y-@e?hLu%UrZW}H1F()B$*ND{)AInkxQ9Rv(d|rq{%Z1EvA##fNTfqVEE(* zd189KBKYK?q3_iJNa5V&GS(t-;DH#H)f`hiB>+kCu-fo-fYnMNTLVL2c`B*<u)I(* zq>ixQ9^|(aAO7hKc}<23fC!vQ!9-?Yt0yreQopLux1_ox=USgYeW4l-ahra^Ppi3o zcDTFyoj2w3lbRd>qOyGG=Pj!}+N~CIzTumxPpJ^-jlwc#Ne)paVR`-T0oS)tHcB`d zs&PpwnF&twx37T#W|<!TF-Ra^Ko6DtA+YW#MShDw4m#AWEY=$o*lUp|EJ6I>Q!glr zI0jj=R@>kMoEBim_U40j4`xGTG@w4x3Hk1i7oJk}LNN1`Yv<u6sybGxM?xMnBy5pL zcBuHM{mlJ|`Hnc@2xrGqgiit*52iOpE<Ig7kUoQ_nt$JJ8fbP>EXQ@@JW{YPLwS>i zE!~T{E~pgsG!{;x|EA-MED=!EzGW$;Lkxvo>`@8}Mv!i8)IOSZDc^vr*_-X|`9!GC z&y}$inDy`A5g^6g%fggP);OwfC_@7Ypjy7QsiVUwx_6Wk#OP#q0hv4UF1YhW$nIb| zVf}^t*dGm@2;dAu40}5z?t}k^{ytBRe=^k3RCtk^b^IA;9%#6OK%qjfUSw#=Fa(2O z4aniazAC2^OLo`?!X<kwz$_R6yA0RBNMFT#xNm*3q;l5~fXNL}?%L^~*R{@!ESDX~ zcF}z_@o&LGU3btjFS-$-g4RWE_8}{0*$@AL{C>r;Ynp#^72Sc^Dfjzo2wEYMr{D(4 zLo6vLKB?97I!zOxDiods;12Z*bXtAGR{nS1?!?o5j-dZc!`@s}ilkAbV-Y3@A<W;* zDx?J~?ijfdT7V^}FvJmSU-=nehY`-}Nb<oRFH|?pNS=yNdI&gC@y*9b9n6g|X%Pb9 z^U56BF`ZS?MX)uS6>4#1@tj3&5_e8J#a!EYeu}~hjf2;pEw1+wKtvoIgOz+Sw^`fc zzKc`T9e0|2But3J0&~yapjf;tqgc9Pk!!>t9P3ZcIucq48umWxdLDt}{harGWOwTo z#5~CtH6>8xnCN&`OLnK2Iz65)%_$L>$BF(`ocN$J(*N&zv|bA3pd?`F&L1C@H~06b z8BZR#q9aHc40_dboC{Un*9=B%FZ-(x<OQxpq#)rRp#@NqEv@h8MirXwFF=Ii%=7PR z(}XMTW$Z$eT5c9(fw3^c5kP-l(eR}buyj<MUmAd7MP8x(+QXFM_)cXOEV7J5O=B=~ z)IBzb28@-Jvpw-AN>r<Z(Mydk6hro845YBMX!XrKyRZSgN*FiuiO_}^(|9NyG8VFe zbhrPR+zVtV2(<NG-aIbYsnQN7ICo(|6U>x9<;<$gCoU4`T%+SZtun%u;Rs=>JK0H6 z?xPV(3?hB`B#FfOTTu`(;6Y&`o<3@kWnd0zz;8Ywc3uxxSFT#$P{yCQ+OH{c5mlMF z!8rjQ_djH@BqIcX4QZT`G4Y9_pJ#QP8zGC>OS+?vMp4j=lx8py4C($*_{IDN9`G)D zaz9BhWlGBA1J%)VR&=2$s$jm~UbP#%t-u(<f)&Rsy1A%$!opp(J#U8MIRy2gE%>8Y z23xx#(<{5;Kx7}tmg^zkrI0x#DLn6&l-00PvRfMJQa{2Yw9AVA>=?kX_B!g)=BA*( zNxqCZZG_V<?9BaD%)*_=+T`v(6|+`X)=Ga7B_0?<W^fXRAaN6&eLnD7EyT&1pd|`a zGpql)oTu3}TdTP*g?RryQHT#x0pF#@*sS&o$(;4=B176S5~47_G|;AM0S(<^#8`@@ zPz5Y0R&puJ{>l~5TXFK2@2yIP#Ig&?^i7sWEvs;QrIE|ES1yv>b{?quM1%Ne&8s+- z8eknV$6o8#p_v)_Qx@_8zEAC|RCuYa9|igrJ>?M8U21(2y~eU>T1Z6RlJey0w=}50 zoqEX~U|EFhA^akNJQR-0hf5-h*3W?eMJqjgmed)UI#QdO?%?T*{tl*^+|H-C`Me-Q zixO*=fLfiX5QB(|i`{2_AQZ)=eb{(yG|Pb<k(uTs6H$;bsI8aHB>=h0+@6E^F6dfP zUXzWve89#PE1WT>4F$q;W1R*O0i0*E<-|5S$x}FrRGN#t$dOWoPujqh@i(w6H(QGl zIb;t)vmL0dU@u@<RCrI8V4LBU*yMv)5*8lR)Wpun%f<laUEVEGV<NIOWtL87m;<C+ ziCq5F(&L|u6?JTsv)`Iz#x~30IDp_zCr!G)G>V(&!Cj8CeJV|#f`-gCY*@dZBl>oH zKb`H}-Pf1%t0y3CQ*YLlwzUZ5*G<1CHUxFFznOUtZ1*<;{_g$r1lR7b?=_AXGDqdP zB?St`MKYqWsGf@9?{uZ}pvdC;>+_IV`mxAh!uh%#S7gsT3+2RqSJp2LiUBlXi%I$6 zQenj<0;S;B<J}25c$Oz_jJ3GsIhZo;le6yMkGWKV9m4bjE&a4m!`mCRi1>8o&f~<I zz0}L;Nz`kst+2oemSSW@2Eu0}5R8q8ev*rsNCx+0(OlhKKv7r_srd;|s|PnWi)jmE z<tb_L+#|(#&v&N>RlOv@c}7TWF<@Wtc*wzVLfY))(u>Y1Gc7Ka;?B9gqI>(~Ofldn z8w(w0!AGHY>nR5AX2rzr#+7Zi<A*eJ_8%B4EV;69nKv%Qqh#YIG<R|@bUB{xzW%XS z&fP(&da~LH`&D%Zn`ms8Ft0>)!U9s-%44R#(}?JSgT3&|q%PxL!d_w9A4;PL@1{(A z>P~L!K<(aujshRtK=>*A6LwnMo(DSlb7N~d_R}p_7At|8aVAp8(yq>=m;#*uE-qmg zxDs36#j8kn@;~8Mrk;0Z;EqELhKx{iQ-80`h4<DabY@Rr%SX*CIoVzPwUHR`#RUu$ z+LW}~Qu<)){7AxWM{!<&Vz09(U^@AjCr}FmP%&9eImC}9QAuh%0fTVnH7broCKU_7 zbQhEb#PD_wa7KNq_NUB1rN+h<WH@Gt(%~n&*-pMuT;(Khx_u@dQ-guAL)O_4-?$me z-<O#r`Mri1V{W7xod|-o8r~aNFF>Py1`F-lt^)o1+?n_aaEJG^Sn7jmY4Zh`WQD?U z<H}rmC{8!XEvu^j(wjH=g#BfoGQ|13epQh+itLC+?dt%CTyl>!6Kzi&D-3X;K3M)M ze+UNDoYAs8U|3ORxjhFk6ajW{z%&Tla}n7xBN-Ew4}~-E_XB3TS%(q6!5KO&#~qVx zpelRU5A|NUd+UKyO6+xD%rcP7f5(ZSrww+V-9N*JD>~a<vg<)($fp_w+#R1IWPFDG zy$Osg2!BQ(7WtC<I*ju>p2XnZ{7dsy!$!yMd<^!#a{ywy|9(=9vcoZJ#9ba(+97LB zvNi9y)uU5UVA{XVcXT|hIB;o9TC~^&=L;S;M@*OH3r0Cn6=~nDOn3+6sEDlO|K|V6 z*RjI#>;lMDn|xW0p{M)2hhAGSd($70)ol8g2vUV?lQ~d<L1yyIMHbfnS|u{1`e4bD z8K;#>C6`lE_@$i7XP#f}u%z<!nn33ida#5lsd;fAQLnS^yaT=kdNZs~A1&X-EW<$L zatyYL6q>UT357Mv#)yG>7>rOa&&AT^gy3`NqPuhG`|MtQx=!F0>}1{90OkAJ#K@S% z+jR&!%F{!6sfO(supResNd^93djwUGX2zHM{rJiKdo@=#J9miAm)HHr;EquK4f8tr zuJ1J>!{oD+RCBS9VjSe%dM&ws9eeU0=0@h~_i+1~!14{-{KX^IN@#fhhsXOPmm^b^ zdSq1Pmc!Ou#l`&2AZ3;M18y|AXCwQYSL`f?=c=UF(s`+@?>T31=eIx=)5hXC`29nl z)B06`Jj%E>Y3(!IIAWT9wrPKUFeZFxKGI5U9j|^4@GB|bYZ*<<22sJWfo(hIXurOD z6U2jQ$&Oe$34Jg066EC=-KutuZ}N|s!|KE~`oaH68`s8{-|yf|<R62B#lzK8!vHZm z6w%p&+-;Fj{a;Mht%__%!l$R4qw$p$E*B5GJJl7bg_FFWAiTNMl1ERTXvdHzpghOk z>R8G&@UO)aFAPFbV^}qa@OiEr{w0E6g9tPzxr<IEHBe4ZbyM63%A32L@eKR9>9Jub z!mmn5)C`%%wMO>oZvW|^sT;DI>-U$qdAi27l;`%{bd6eX6&R@2%yDN!*!Bqlewa>1 z$&LaS4tBJ~-+3%WWF~?GGS)RX@C`Di-aID#E&oI(1ZU_b690^n28xY&BG5jZf+3e% zyZaTCt@NZ_27>y^Fx-s~is`yC#UbT!BJllKeKHotPYzj=h?JQtmy2W=i3=YbJ$Jdc zvj3ZD&FFPQN<rs~ZWYVsB=}#xw76i_nHDzd<~T&`D=V#he1JFy*mKfGnK4wPk@PwB zU!)<Hm>$lLJZ_Pzd|))!kuWgl7AH{o`~G?ygrpN6JR$w<28R{g+lz}e)lX%zJ0r`d zg_Xh{dLYmVHGIWtL_1-?5cLo{*ztosVJvn=hBsQ+5!(bQODW-V&H<(t!+(}eKxPO4 zrU>X1=3D-V72EX)Qm?4@&njetI5F403bosToamq0jrr#aNWhozp{k>VCGjt^opxfJ z06V~PFks;2ZKtCVE{l~=B)h2!qP&fqx>Sv$?|O{}V(z0Z8em5~19ein)GX7%cw|Zj zFoup&43G@PP~5Q=K`kWi;;R+Z|7x=8B3p>qM+uO6wBjZ-&kZkBYI{Av2{VWfKSiFd z(v-s%y!63P{d|(cGL&aW`=zyME9QQGSe_a({-o$%qh&YVU2=9y`|IDln{u(BsRNna zsbXLAAue}37Ss6=H`ko&O&Mr2LW*D~(t(_qoZD3ni847LB=C5KZNw*m$YNK<7QR(O zAIR9qVlodDIQYa9;`Is@P6r6HSjzbnps-~Jb;aY(es_<<IhrnH9?p)^)kvlnH7J0x zg8pJSZyo&%@#DoN?ELq}$wTu>^Q+<^w_RWNL$eCPj^?2(2tPd1xn+vi4o1qsIfUv` zdjnXxb4s*!bJcMcBbFojX&+~P=PJK;aoWe((Aiua{mtudH<ETVN^ClVyI-eFcPqpa zm2}4!q#syyPU8)XVCZ#5iIt2~7jy}oCVmW1+PDD=Gu8tFVjw3ld%N|&&}GLva8kQt z;B!IdB)8#?ZNTq9C=a@?48wYUSc@D!7(Q1I37AJBE~{iUjPFM8XKrHJ?$VvIXLg?u z^C?jaPx%?)XbjeHer5~;a!$F6Nw#AKxU3wZc6%?2coiAu0kSQ}p&xQmvkXBwWjvs^ zvPEpc2QAe@nGwyRC=vMmRNNJnhFG}+)fC&hc|Y!S&pCT{dOy$1znsBnb&npOA2JF` z+#6e@WDe*j5*|LY<OSWC<tj!q4A2XfhmtpEX}}E+3nq7sU3T2fuUx0H(fJ#p4K9LZ zpNY2L6oKuaGw}t;nba<8NuO_AZZPunsMsYCRI{iwr(KZMFSYx{0Za+!`ARzb^$Ctp zPcZEEUKlAmS-}C3u2g+R3Mk%o<w=MI6pVFK#tq_=l^<yFB1}mH04~191)`%I%Guz9 zY`-!m(x>(Lwu<F|mCiiEhF6;yLF|D1>FpE#l0IXsCg3*)0udS_UXZhLlIRAosBu*; zS{)4{o12o$C&yr{cY!XE3H9jkl#KedKg!S^n%YK<a1q|o=Ac;nE}k4ZxuS2<<!-U! zTT!@7SJ(B4ihFht=K-zrh`Rl#`6TRSgFYXT+M4F$5>$Uc6e0Q9QZ4IUN-FLPY&%yY z2}Hb8a3kOsdpwt1K_7{I>N`JfC4!x3NFZ9ds?d`M6!R+ShL+H79sTcw5$2eXoj<ko z-!TUArY9^$b^O<ch2pwb-RU9$css?CWzx~xByA9e>65x`JBa+Hs{~>DmukiN(fwaT zj-4!e;`{Nn7DqhBa#P`^r7@Zaa~(W@B7OBv*nH3UKtSuFQ|JhH4On3M{NFglUSq?{ zz|Mt@=~3G`mcbTMDD2kNY^>~Fu)HO~F6rB~BQnI^vN*=+S_=w#9iczP40yO2|5OZ4 zngfx1gl3!s(qcP`6xh_6$Ro{y$b2J+5EsvS?{n&~MBMj3^ODWw1q?C?a~EJ$Q-r|r zVP#-YTY`QJe6S0QOF5UzKxZY+2~UQ3qHykKG#Yivw_XbXrQvM8v;~z=@LOAq6g?(l zL9okPE@k#|d&5=q66|VztEfxzLyeKr5fpVIRfkqq<^}dlNWxUG+PDdzDXNQ~B=NuB z7j^r>$BT-GYz>e*cM2E3=}Baw65mFMY6^zVJ7RU;?wK^aUBAjY%2}o~#FFQ8(zB~c z|5_ythG=ZWyS&zhS5&43TA9aKO)Z0WkQz6pA+LmQc2Gqv&qX+=7cg1$lL{%2R@f*V zB;}W(<@+Y`8!K_RqRt~NzE@{mP-4{Q<i&_|FQAEseAmMO#VYHTMH6=qchD+wS;*&> zjbDlTEby~igV2TOS69h$o!CO9PlSvOVgI-mDp;JU{FrkJ|FAe6*sy!J<dhwI8t~)q z1TJnf-g}CJ>G-DtGmo<|Up!gChjEt$Q0M5#*FH<$WSoQ94owgo(W<aYK>-xQ6l>5> zP{Q4Yl4o5&!!un+S*Fc*KGa~B<0LxneM5eDrspvr<UmAyljK8^U)_d%@yTxIRmC>i zEB+I(dbPKD@kHaU)N2ojYOAtN8xd#T%XQ7U{!ZK>L>7u}>>ljy4g{!y`18}&p4Wgz zm7E#beK~yV($W3?_h0Im`vGdU_W|quUOX;(SV<y>KyMvxl-L+xv)l)LvLJ@3WA@$8 z1qDrsvTq|p!Hq?!_6L{0N2)#$pXf|%Tx8;YHVIZzKSImBFQt%iwr@)<DArnR{~P1W z4Mod8iXXzo7VrX{B0bi2;~p_V4s#SS1GOXgm|PBJhS!3zaJ+Jy5#)Q`{355etdg^* zM>zp#Gmw^zWFIBLh&pqaUxEvqWe4`!jegAew+H7*@-zl(Gr!P!ZLaliGckC14ZK7$ zFMq!<^3!^xhdH!%OwuXUx>KzhrL}Xlr`ZqyJ8q|eG{u)We1p*6df$m(&^E2Sm0FV7 z^6%XlIJkCnIn<E{%y^=^Sf|&CF?W-j{T)>*m?wXvPxbZ7YX16~2_SapND<abEjW1s zMFhR*&%j733or@BL5Q1#4=v8afj}*0+ZRHH8{K;~vavX-YtuZ~SQmD@J(B33x)UrG zu_ip5j$<#aIXEAnYo}&BEwAstdEzB9_b`LCbutjzdIj(bI2PmXh}=Gpmij;TwK|pW z*AwiN^slu{{#H<GR(=;i$LEm34?t0;r*52<(-LOwG+JvJa>w}adjMzDE-_(uj0YY( z48WkiJdX|F`MSB%&)L>_6=#{8PapRRpZMck&Q^}|co%y?E}e&#1mD#Xt8*+HOkqur z$W9-nLermEc>}gQeAe&;%q~Hv&)QUu88P&J?4g7E#WSAH#zp6i|H{siUk-?Q@P=U% zxs}sIn~+d^vQPCpy6|O9A8*6Lwga6p)pQ-~-s$Occ)5MD!J5Wg_VSD&VX_8Vz0M5* zG3VYS>h${#)Wl1RUv#p*fo;K?SvGooYh19~AV(q4&UO;$Y_{=#c4;$4GCz!&5Wwo0 zou*6E_B{ois6zB!Qffo-rwe{pjh4jkK2wv;e|74reXtrkms||rT(x3F5ZfU|(D-e5 z_>j{}q*KK$li4lx(wVOFsf2AoEv~5&NxnKwU7&%`{V<WcVCIxRE0gFT_ohLI&eH~Q z)ts{HNj^2|I`daZdek0J*jZclfqs1bqdC^{sp#5Az`8P(e$gMREZsQPEzuXNi<aIF z7INAbeSQuQxfR`xTuNVD*~l5w-Cu&8jt^NJW6_X$?E>aiUn<Q(VR!kO6;;nG3D7FT z<;|KsIe5{<ZdT=)RoMcQ{M)ZUN&iAJXX&CIu<pO4Ip#Whdqkz}f!-Cd%&I%KgDr;J zGktS3>dA4HQrfvSlE9OTh|nZ*wWZ>CS%fOL=8tiYw$xE{-A}^UIOfBykX7F=u4Ygu zT(}FHDyp!zWyn6+djg!6F`#0A>Nb;{1<F0jYFwM1lr6H>6-8>Hj~)xHUsWP<g?T4D zYV}O*?kJ1cmJzBAXX!LKZ5z4sFBbok`*=DNy{CGC6Xsat>bJQQ)8{g?dI0M@cf;M^ z%k^;1XaQ734u&ghcimwg5M#kSAy7I=XI@bQHQu6w!Lf0nuXvg1?4i>ACf%#a-RHF9 zQF)S%FO|to$jLh%>Plb#xtscCd-i1KhEC`+rF-h+<aYWvv?SFNhLR^8=WE!n)70<u zGVJMkLinGn2j_ubmByEGHPzNtfuSyg<4%;KP@eU=Z87}YEj`&5)mwqyJ22Y9XuBAd z_dUbPQQ`HWEOUo7!I)+!v|a<vcQHl)n;Eu(5r(i?2|u!+0HebI^@ZoGTv`KU2a&sE zTgc1;aSuAJ4LR#glipLj`s!mTMt9E(20MwdU22zfc`3tEYAPxsM#SpZ(+Tu((QP{F zJ}D8rYwKhxg^pn?EZ}@8Q+Eqle!m2A>~axrpfIhPE`HyF1p{)bOn_mhCq<gE7<^-@ zh)OySnY}?9A{B$O?W#j#uej^%`Xb+*i}DTknCm;tEBCut!TDgN|0D-@_NsY<%P*7r zO4EK%qU7c{X8IKT%M%EI#vy#hA<<ON&2=rvm=EcA9=#VMgh3KBkj5ogM}D*p>*Qb^ zgrac6&_H27#U|YC{|VWW`8xq77LZtGO`Ur;`$;#zxK^;&c=of20USviTyxv-Qr%+E zpfia@Crm%_Wn45Pz|jnArB-n*Y0}H%Zh%{k>IsrM6NzVY^!$>YOr(vzU0X19Ck5(x zE4)Z2idsPl==2j<dy<W!87^j;yHu0=V|YaXvDVB2RC#ju5)sV50*$-WiKWEQS<CNQ z31NuIPPd_TAkPXXl?N4qlRDyJ2KlPbv@TvN3cv54&koCkY(E&9$l4NBt|8kw`XH72 zyIq<KLy2`Pb=S8QtShPKyx|&4iAovdJ1=}$II@Uwv!dGU_PDtST&ox2m}<#e)@?4< zEkyFJW&{?_TRz{8QnS;|?HOoakk^q1r?NUyap5%+v6W{SQYi9rbA9#QN^y%Jy%|(M z@Le#s2`lIr47s1ehEG$rQ_MkErCknf8=?$U9m-mpsip{Br)VxNd$6pk>=}tlW(Bg( z^7nfHbjwlm;cM*!H&mY<?|_tePH}2Vj9u&3k1Qac{4llj(H@dpr#e;ONq1niJjXWv z>jCDa7nZ}5ty2rK;~x;?k&<7*d>rSNXc7e?=*_bsxbJp5{?A{uO_tRwK#}`DT;o2j zsOOCbq>OCabms3Vj*0di<n`PqYHwX|ck^1~>Dz1OR3Ce<tBT>iX+)atLP*|~uY}pD z)qjxAnuYu_o^sN2;H4Ins80AXTxhfcZqI0pm@E-K_(s~m?^w?LTv62DddGL<-fum= z2$%Ku-F2JMr5=Q@T3KKi;L89s=oY-=_MU)R;rd2jCzK~oWK)~?`E1;8eVf}u!{_^f z<Jp{-*O=}sAn4ka??2ZdgmPkYS)K!%cL&Be=I7n@+)xIJ-oM3!q+38Ge^`q#c-R6y zY46gGTYfJ;eDT+Zqp|O+5kK!~`UHKr{GXq&g;36L=kU84z+TlIQI^09#}0>8b2L0w zm-;$$*n+dd4@0*$#thz8Dzg}b)dD+M*GIYxtCvut50L70ENLtMo_*llbRgoa*i03K z^~7&mTKh~KxzJy3bGDsSMo#8O<EP;M$dWdCjS8^7%N`ax@ajw}w6n%ydxPi1sH^I9 z|Cutoog=qX?tv7&h!w|BybfJyekI=xDqRns0SlI7A*ZlQZY;-Md<yG5HlH<!hd4UO zvsEh_ndG!Ku~8DgJEYd#X7z$`PRc1`nNZ}PXyor5V!Nj<#odw-$-aL|<!rfQQYy7V zh~Jx%6|9wq?p_4ld$Thuemvd@P(P}6p%)ifBM+tb_!o{lt2%Eyy&-}whuaZrLIdH8 zAWNm18S>B1d;c{aNMV&KcP~*?-hT&6k8LGd6(wZWk1}K}EYCPzl<5-GYKUno)b0fc za2prebT3U~ng`E3m*B@A=&v2EX#RoN=5;1!1fOkvSfS<Al889G1EROttf$h|n`h~? zsd7REi<Y!T%TxC#)LDJJ{j&XUSeOk3y8#Rn007eH{{t3wG;wmVcK#n&_=HC%Y3pC& z-4k_vwq!&z$D{dmS~+)xlWUV(hfB6{c8$+`C52?LD2_sLDn8Z~+0$NK7hpU9gyk{2 znoEZf6>$UrR*a}y(ZY^Dy~acpSyk1;uX_Vs6s{Jk#;BT$=J5)<ZmoLf7P`rdulc2W z#smK05AV#K;HnQIDE>zuR&Jg9cyFBt=9-8Hq1Nr2N#+{RJ8)bZsUCIyJ8SJaa4$0I zC9$B&NgvA>3_<Ty96Gv+j;Q=(+2IXLUzjyF-rNT5Qvr+dl+jGpK2hgU2Y&z-Kcnxv z@9?U~1X1egG<@Lx;h|y5h{{M|-eKb*A2jDTaSa<^?HX!b89GcZMP*}QZ6QSeba&^5 z*Aq0AIKUf)<WqAjQQzSPr|}o$w;ytN===T^W3vE^Nx|-W?3%@lo6VQ9mF8n7<rCT< zO^z0A6=!XSHRrahopMHu;42Z`9Ti)rI#X9}8_S{u36^{ATLWDds`D6f>zLz+6k!!~ zD}9turhRJ=8>KYH)&qN;Iv{herUQTmI!M{B{Q{?fg!Y(Hzys=|$aG_KWk#R6G4~tk zy?z6PamtB;viMW5-=Jk96agNUwrSFbAtIA*-Kb_$d+n6-#<I2*t1oq*ut)dN9u1m& z%VD-m1ke&_LjE`15m)Y-5rJv(n%;QE&#h8-(1Pp<`#s?8nOiqV<!=!MGM}BR$~+nw zJ7Is%I8mb^eCr*qhqfo6*Mw-DsEyK($3!UhU1ay}_vxyH_j4fJo)lPME}mg}0@jHI z+e#!(5N7|+;?5sJW6%nztER{ysW8w>cs$rKNlt)9LpL~T*#t~4STX9a5pMXMOz-dK zm0D7kS{-@rDk>D}dDbSluijZ3>0VkU&4Ezl+#6or`U>0i!vr>QkKsoD8UKG$8K9VU zkXfPJ)NMR>*8+EV9A0H6BB<EV$uVKZD)Cl<8461d%VLgjDVNIF%lwU-pMGe}c)7$V z2!#u#f;hwqW^BR)F~V8S?~LtcJv}*5C#zEZ=XFt*hN<Oukr?bQoH02OfHvC87<{X5 z#edpW3)p<CA6D5a-D|*z`^=&)pwVvGnG`yVgBF&t2ayFVGA{)|cxc8kk7QFs`jw$- zmI=WrO<Kf!C>+)4%=0mL)3J5Kqv{8nx!g#8^vk;b^8WMKb%y7NS1O}hItjxW52bXi z>_@L%Bsv*)L>2_X3Es47JPi;%Vx<D?nb`;TD{pa>mAbF;fi^&&sw{ye6ai!e<1(5y z%Zfr*p~}wnAS0|*|3s2Vts$!ryU$Jn$Z7Spqx1`+m|vF~c2PK3!6{{*Do-5(qc#(Z zdNoi#0@7HW0d}yU!<2cTWx(z|{%+>(e!tt|f28vmfV<r9?%s~#X7CpLdAl>{Cg1HF zKm<(6-`5Jg!wpmztMWAjPO2J|Q|KTN6%JI104-7XNx7xm=D7<5^;U&_XyjQI`ivb4 z(f-siV%Qxez(mP%3Oowti;c}}6H`<%_mLani+EH}Ay!gjN5nR{{d;!T($`DyfB`Hq z*(=0Nj4(t<oO>}s>|U|7*~#~BwzLE;^kB_rCyyE@h?kR6_^@8o4klh)?sl%pym5Oo z-u8q5v!=nJd}v^{LwE&XJnsOB8Dyg>(S+M)4tJO$FzxZrvHD27BCXB8vCgk*mak9a zZwB7)iHz++xMTAN&atBkYYRTvr`HI*nC~`;JicPW&JU^*%?956#7g`N6;Jb*V$F%E z9)8{$&0nEk>kl}zhEZF4Mp_IQ;b3TuF~Ag(pTHTK)i4ndhYMntvdP=Z18Koz*K|0f zs6$mgX?9frNqPF}36DY52T&`EFkbb2wYZE^JC)@y%Lp3#`m=r2QbjJfW(1qHUF)^c zI2414kx(<f{YQbXlZpfIJa1QnQ%qk0Xh#ug(G^HODnwY!r9QVUWZIHl6SZQdM`tC8 zd$m1nM=ryB#_Q;Ht?{d25#$w%3av4*u%-)3ghf?ZT@@LW24`6smaC#IrsWYC8~?NO zUC~*k=}>@0?W|FN2*r=LXGj3ZtAuALBbxiZz56^E+*AeavmEov%@`k8bKYH*GMmd` z^~~YpSTh*NPpX=x><iYt!>}H&eTdY7ZBn(1_`};Yth8<!!qIKWb(4gK8Ps=94A7)E zg3Gw`Tk84`ya3gJt$(ZbN2(08X5Sr{X-ZJoyc7yQ6>Sb=H?hmDbAm}9z?NT8>6muk zMKjp*5dt{8=w3AbAI8ohJhNck!m({T9oy{Kwr#s(TOHfBZQHi-$7TmNcX;mP+))i` zSkK<is#@QAS6uw`uiifo4x2vYWi5>YX`U7>d!;kMLu-8jWuSFD1KE0CXBbPS@{m@} zf1Br8oX+T|7zA)CFxCuyHj8(g7`Xqw9*_4UHDG?!@hEf&;c%!wu}%Kd8F@|?mM#<0 z&RBAe<Y*=s(&-TN?on%`ViuO#BQWYyJ<;P|Dr{BUZWY1|uCjkCD`mKNeH?!EBhYX1 z;wM~0NHxsi<}2vn&EZ-?P~@2BuYT<@``UetSNo{b{t$lV<DLWjgBD{{$2ju4^lSS< z3Jrpno2>*fS5jK^E$u2Vfhr<yFBP~kJFB4Z=zvspr0UQQn->9;2w5~w?U@a0r~`dm zS~0ht&d4G`_w6mL1N)EwcKBT+T>4G}jv?8hn&H<C1<nu?kZ|C}R^n6z%4|+e>Md$V z7;V4Q*2?QdgM3ad4V3b&Qsw}8sG}_^Eff?>S&~Bgd*}OjJo_Jtk0-Vgn7~xEvQPVX z-+dwiXOgN2#~E~z@fgU=b6g-CpS@v#%UEoi1Uu}G3;2r6!=UT;1JgJ3Bv@c>;Zk7N zKLchGVQ>%$)2)}D29_oa_TVd@p`4>@H2tC2*<cuvjHg7=od*Ki;s&6TUilMt#jPwe zH*Mb}_>&#{Pq-R((CZdDPFTLfKAnrM@8#>2*9t2E!2-@E15IOx_ZCayF+@}4M$J|e zD5Nf`^1{)M_cXhLd^UazIyu29nUNZ>qH(lDPGm*lGXC%$JC_cNeLnC(sFl%b(qrrP zS_5=4Yv>P~H@kISFIF+L<<o)vElQ2&N@N_3s-+s^&|S1J(>Tc+UYnU<_$ap_kw2O4 zy-Nb1uy9MDI(hs+R7jorTR&8UpmA0t79h~lByI!r%PZi~ND8E+%j^#^jm9&y6>0c` z6vD~?g|hVxoOs3!NUa6yBO#+(w~?}10Z@`5b07$MSQNQiygXSQSJ1QB%(IJ;&toHE z16mB-GU;e6XzYd1ge&)Ms<GCl{dM1MlkmR#w!em;>ATHH>Y@W7G`uvCwxVrD4k>;h zfrSD}m+ZeuN{%9wuAP}(M!21vF2g^Gj$elL5QTX@nYgENB|%l2{;C+0pVGWvzj!Ct zDCdVUp~2w~`ESx8Q3ie98zD#YOt5*$(3b&qdj_E^RS7s?!iu2ys^C4}xOSkZXwV{Q z65Xfy^xEwceddjJ^%-~wBN%Q~p4xV)cZVJqnjunM?q)`|;#=WbE@Kt|@j)l+LEmuA z_#;g=N9u+f4T&Di1x5mAeoS2FzIB2CnVhAVi<glOWCX;dV7*f{u>*#Ij&-hJHT>>* zi1|R|A&r~zz=G=j0HL~=3>;ljvLh>K*#yYbFo^<syX=EINw3r_0?sw2CC#}wjc%5F z8WXhv^k4jgd1;E$VAiI(G(g_dzc^~wFES$_TegeCFLk5BcdR2%whcIEwP;tI=A&0E zsl1gLtz(nr<tPwF8$i*Sy8*!noUa9naEL@vsl3XpQH^|nABox~mZ8MA>-BxTd9$Ou z^);IHt?{Lhv~@FfC4{o6jn(7zVjET%T?o-)`ub;2EyGL2xE|SCNLq0&)LqVz<iRjK zv159;&xps`wXllg!0v$X@jM@^LL@2w?Uzy(+is+luotglv-p!>D3L=iV)Z{_FK;ta zixp$<?h$lSvXW>kUpZ^tb!mA5ddOeEcku5622b|8(hrGlJx0)uxJ^JVlXmv$6i<Iw zb8(?}QqSapmJo2b{~VcvD}&AM?AJN19DShDYGFwRpnm{^6)XGy^`q|08(%?3oEIy) z3eYNYqzJY~-Ux3hI4GlN;*Ox60I3HETbrl;Glh#^b(-ZVv~rGmYwTwppSX2gXez-* zKA>bu<J<?Z@fd@&?k=31j4G(2&};Gl%y7^L;uxF2<9wP0ul!+mbUppA&;`NYi;o%@ ziYEXo6K2iv|Eh2XgD3dUfci3u55ayxtfPnHcvHBou5wh;(??7U&98L+J)@sKKxxj= zL5)W+ua2N_UI?$yrA}o@v}QD~OwBeGzu_lcm9nQqOP8tdca(BDQZge4ZP&JmEO`_< ziGNT+ZUQyz;)hMKvKj)=ib8Z9rf^K7at2A2@<#u95XX24g4ioY0YVX!l8tA@H~73M zN3LV?vp~fed)6OrN`kTVM+g;!b@4|Xe~jb&ykVQ8AHTfXL<G5`r&BG3>IM%Ysx`fp zLmp~zpH7be61hIijpH-Nkm%42TeJ5q;rpp45j`P#JSWPG@`~PW6Y7}twEdiQ)bWW} zJb!Tz^+|`FaO3M{)sYt|=tqN`__J~2kwa-1%7id>(@AF7<~Qq3)6>^Iho<Rl_$!-E z3pho!@^_j-P2_eDF>21BQD<Y3d<}=HgtqFGgmeVfQTJG4jtUHlI1oUSM)!viJUqqg z<TJ_MpFXhu^lYllmgz$5^>8xHwLmp0(6w}j{jHMet#;>^ZN%o$BWzx<o4SAGyRgAO zk!@~|2{=JzQps>XGgPS(62rfZ%&X%psEcX^k$^CQ-sIgmM5{t}J)UidBCEK!duKT- zN1JI<yHI^FaG2%5iMfelRoBg~e`}26b^cCO-8{-sm2BzOZ?w_2bVEXqK%teWux;tt zHIsDBwW+i@IzpzwBYiz{F^NoLm2%{bw{moAh$V5|tTDY*g>cKiidk0tWKlCnlV4<R zaG*ZFmNB37-LvA3qhiI-SR3`Z-IBy5$OB737}hJ(Z$+dE-I*5ydr+nAZJi$8FiwN1 zyJ3`{eJL2jl>zZCof!z9w*Fl$c95@xH*7Fe6%l~eMnU4&Tsqro&N-+$=AwG}*9-)G zWDja6WSR6DyP1A*_5u|kki5ag1g$WK^W|NK!hKZ{*|p|gp=EpmFNP_KpamDzP08pb zL>n%@ULBIaZ1ny#PM=`=UT*?N4L6cF4mno<-%H`_RX-r!E_;Mb4KHi1>Qsy835{36 zmDg!BW!UymuQTuNU1b7_GmrfyrE#ayr0u#1-l=!avLL;`v^eZ*Yu$2V<9pQrWEywT zh^>apx}4gBry~D|i_fJ-nVBL4cTRNG-_tETJB;uH9yss`Y9ZN>^X*HK%~-bNFS4;g zzOp`$#@2}Zs}wer{Q@gLjh;rAwNisH#HjadIs77KfSgjUM?3B1eLv5I(J)$?_Y|i{ z!qmLj5EY}D^81h)Wj)i3UFOrKw<P~&ddmAW6;2n%X#U#KRNp0{^?X4-$QLH4|3Ije zNH?zr6>i4e$|gGNO|>K(g8lx%j+5K);G9$w#wAjy&SChaHK!*IEhbq=2Fp-kMy#S$ z#8BD9+W%}VfUSBN=D3?oesa!Tjm<!xVOTMyo~y>WtCO3V)80bt1;sx<p(P}dLQboM znQG5T!0j5sG<5E5HA}sjyIQ4+ZI%o>j2N3~B%Rc9$G5(@THRLH4S}X%BH@Z}lKMk> zm#%i3{1EU}#Ubk48t=v>h<XQpfC}OovM&i!ub{)MN>M{;)c)J3meawf1mCTOvxp=X zy@IrFp+eRCx0c3;VLtM8odr-^cfs8r=3Pmv<S>$oS5^3PDfwUPDMz)^OwT|{2StjS zBGUR0M^DOlnWSaE^dJ;SEjfh#VV?vKbM_K^qm(wmb^jD*bI>ONOD<cugeiDS;^r-> zD9cKC$tZ_)#7UV`jrT*(LGdFfKhc^ibNApi&=i=r3!Rb|^Of?Y=PK%FXtmWts5t`J z^(l38&0Vlt&)~w;+WJqnZnRO0GrE8d=o9%FWbu1eQ3}YFc9>Q?1(*mXg}VtHx}KnV zs-;cgHWYI%qY&DHcN6Khnx7Gb!{iCVe!Jie6b_s{u2}rqMSSzo0_1d9E=*4kRKhu_ z0uhFwhapkS7u9&4k=R-)R&C9PcYIr*fbP=leYWAC9%{CKzkh$d0*lnj9MXQ)YT%=K zKy;W9kNXmkbI7N^cm|pw+%tX%L>|Z|0Dt%#@?oP?+NLwv;ysMG`PO&cgqgS|{_*&} z)T&w8JoX8rTSvVWDwdZlW>x+q2(*I)ec~q_$Fb61+emmHg4clLXJqFux;q+?dy&pl z-KK8Om-Uz49!4wbe@+TK=GUk~$b_fzjAJJ?^){G<WqUf5OHnRt{j=(({a(-37+D|D z@T_Vk>)KU1{qXw?rR}h}t!O~58&`|P1@rHey)+GW_+Bock8NxTYxU2T;(YupjE~30 zdI_0sEf;*dHL!O6qa7*fD3&PctVwna4qRk8(85g}f~qQkVXMNSdD+`IL$}|r*Im_r zkl&5bj0(neB|uH&464qqeOrXOu@2Q%JR*fC(S5$VK!wq_kr*;@dBXL+hz<gd^Uv9& zjiP+L%)ml1P+9}4EI1N4f}gLkUICz^tooRtmYYWWP46w!v=`4Op|ZacD>E}IS8wYk zGc(6qF(Th%#rrO3Q1k69|IIhh(i#_@Nx1LaIm|n!b1-VKn{sfl^Ylr>5BFP^wj|nT zPXITWQ#eq}3}D?$h%>sxx7P4SNK2EyV%#bEuUh5+ZL7vqXd+mDWclHQx51YN+Cxg) zoMIX{Y*3kV@GJPQT%j%!7AZ9jnYP~?4^Tj5*PaEN)eiZfY?P4DF;RhE3=3J9P|OXb zlPMD@#8a3w;M>f@LsG44Uwg6&f7)EsPt`*df?)Zu=U<Y-Ip|wbP;Z&ng%V8+ohj2( zLkEQJ&|@VXuM|rjJ<;t1gH-%*)-q}ve(fuIjr}%J1W8#rdG5HuUoZtQSbC>oqL+Cm z+r`KvL_~>?0TVZv3wrFgv;r2wAyXchyjq2D|DtrjHar<<w`)LkG3jd-N2%(bAenM5 zWc<4MttEI!ZjPrSkf2bcvP-1;kM>uh5a+Ri@K^kcl<i5JbFGQajI&t5p(e-6-eE_# zc-NopJyI#p*4MR<rH3jXcf{UqzZ0=!_9khW0KH|cNU1+((CceB+OWxc9w*trl%RZz zSwziZ&4)J0(ef%ul~;*gHn;{0N6=nt5CyAv;b;;r27MGW@UBa*w>#Ax&D1-Gi-(Ko zUfzM-QTL><B%xC;x7U%FO1GfABZr}@Jjfm=5mpv|IDKYR2OmxNyb%J6bF0PqV2dfl zJ=IW^VqZ_Y&O<?#{jyedsI~6`%&&9o*}G(N>3zPM>W^Rf;OhD<1#pm@wAU1rxRnnt zqD`C=>NvC%og7vKH?-vTrG(epCjGeK97>1hPa7ZG;b39l$nBqBS#u+6H$E9><(}HT zE6LVUNq7y6vGZoj?l(P46AR4^9A5nx#!4%*oXwQ|W-umCv7Rf>E3KYY1L30ddn>k9 z@ykyuQU4)7edL;%EF_09q{(ic9**x(Po?|%Dx|sQItSlU0BI1`mJw^zmElc)Y+o;| zD?m*3GumY`h@@U#mDIc}KQ31mY3z58yUT91QQqiv`z9ApGSmO96`8&(*)iRvCFzPU z8FxR;u$KKtCRuD+>m;&IgCnw?jwB?NT?LwC>oU>{T`672bl@I(oC_tMi$R6wg3+J3 zk3Y~cuC8$2(}83Lkr_GTOD-_+#B%TWSD@N(@F%9Fa3;lX2^S^yd!jqhe%mJe^AT}( zk`7{^!CUZx*UYgE?$fo$q>>TZzNR+F!O7>U-9TdC9nliR>UR1G8y5j!U;;gDv*a}_ zHn~%YjRfKL%OA^oN{r?seveQ9*_czH!UJ&%Y;wy`Fo>h-Q$&Adsarkm4~;RYP}9OP z``{*PREGw-CQY09mY%JZ0!!*3<$0x6>R?B0q|2zvO$zm*b;tqWc|;@UG9M;s!Y;`Y zY8|sN4bx?@b|+hV16}FeKv=~LFaUJ5aLJD(g#!bun+bkPYw@h><mq)-gx!(Is?_ep zQawfU`sU4F>M@%=PR>Pv!Q(U8o_vhD{sKa7$pr;8(ey$5DBKi*dvf;SM@ksuaMe_I zXHf<vI4>K-Y+TuGcy-A+>vvn#U90B#cZj^=D#Wq-(aQ0pgRdFCLfZO@4K}_VW%OJs zXZRpgO+#VIM4ea4t|J{F^$_Aq*$FNQxiK*FcWE$YCW)cFh$%;75pw%0?|}(@n=$}c zO5A16;|;wXw7y1>gvF?{&7w9t%kg2vjKkP!xjKrCN~oOPj)e|=&tMP4kNpPe!c-U` zN1E*u>V8+v;oksLBDDR&W!epq#|$?$Hzz%Ge=hz>g{c>I9zXHB+OlJz{_JiAC6GS4 z0ZaN??0y9QU011w?$Km#_*@~}&4TnCIH8Dz0=NP_J^hqlf|1TWPghyNV+`L#$kUB7 zoa#UO|Flw;#-F)$;DLZ-SpOeZii@eU%MX?C$4Xh&`i$LbLH_>E3Dhj)q}tisTDMfT zueXFdT>xXs7^p`^Qx_ghZtI*nt1LL`oIcje6A0ip&MjggBabI3-j;rl2U}}J31b=D zx9_3kBW6Qon{AD9@^fk^kBlA?)obkJKDHicY$!W_mK1aDFikF~cp;y%qUxcs);nTd zrp0hntaqd3BzE|WQ43T}rJB^xoBb!A`iChoak<fc{i~%6#T8W)x^$D$>gIri#xmw* ze|%grONm&bogo0e3}s&^CBcb3bG(;pI*rnDD!gDDE%|*I%o1#qm1>`>y_yrppOve& zm`!9<<V(Ss=9dQk(?XMMl7KR$UhNXmJO-(&;0m1RuOqinZxYGwLIHg;@5Y<e;FR54 zx;KHv&<MR1>;Tnm6-HrH9MX$|aa1Ig`nG_2l9xF$8{y0*2vhfMEemlPoYg86Sj7F9 z4UC`(BB=mLQDu^I7}pY6-K>BE!ZZ|yEAzP4PN}{;3vkB;c)gwZDw%bs_1^;*DXX3J z@K6KAqEV};mdd6|)maKFVKM$5c^0Uv!3nmajnQhsAX<u7(JQ<qmK_uYRMK%!&Un`t z37EX{9y5B@R5uFEdtQ88ypF#>HO179AQ{aB7M;XJC4ALdJret)_k(R!S;?nfVZY$z zf|T!7nA^2zF>dx>EZxtMAA*S{Xl#Q#N5?FYa&R^&QnN7GI0drU!!d8cii97egtzN- zIK9E8IbesiGWJb#x;E-xPuMVBiBz)_H3e3g+TEY==22%(j?U2tvS!Aqcn5#qzCL~m zSSq-KdLp}(@{+djS?t`9QrFC>R>Cj0gq1G<fVhY@lybCd*0=p#{D~lEqY8jlS%Bhn zjK~0xD?)Hpe%}Txefx*M^rxE;MY|iPcR;0a#q{-jpYFFWTIUh<{T`l~J)fQ?Id%!B zHF(T}J88)5@kM!RcJ;nK!)|uG%ijo$E-&9@aDOWi5J>*b(KNY^B;h;r;yO)+1A$Bh z>+GNh0~JKtJ)f|rNd+((<1>(^EV@phAg)Rz>QKW(k?zW%b`k@y8l@InB8ORb`V(H| zZBCFnCbSwcI43iPl=@>A#wiGjKbyza=h>5q2kjNxe0VoHrk1Z(1k37W@wpZe3JYXK zmEOF>QL6}3OeU?gR#oRzN$))<E1^F^;v4a`MdJ8KH2-L95yZ|H)7gtPr4Nf{G_<9V z5Z#JVi_NBpnKs=n%A6_Hca%GoC*U6vrL8E8ybWxjCdb4GnPy^GYl6&W!0S?Q#t9(~ z^LO!U;p1ypx96PqVZ@4tOo|RGsXKQ0#uF%EZr+9k;@mN;W0Kg8B+mN<Ur5lWE3B!% z;-Ncrjhob2KL={bXI2Vf;oEIwViJ*{_AJyr9E8B2gv$@38JpdVLSu5`K`gA6vfIVM z^!4Zm@ZnK#Qd8lBRFc?`LyST^-i9CT!ETdkU=Mv#ZN7pw=H48l26WRw7VeEXP4#)1 zSVTuT-9$w(0tX9NR~4EeA%xlPN0rDB8F;cUq=!fL<r?C{{=Cok#<4Z&k9o4W{Q8Nq z+-7;pR94?6H`)?FO}o9)@g{kFhC+wq9u!|f2lwLpN;3P7x>AIb^T?tsTNn`ZpLOW= zyD=F*)ku(O>ZxFpp<gD{=WFN9sjJkrMCfZQR1IVEMXuc5=fc05?p4{>xTYC{0_Pb* ztJD<e8A6-zO1p3IPY$`6qDz2Qrb~}r=x!e4Rwl(z<{{w9HzZwX>SdnmB^rH_hO138 zOiSkf)fjtfE(Sb3Z6%036q#q=%;O-HCeAE0aHbzcN_Y3@$<#oTWE6w%3$-L#q{dGu z)9Kj>8%*2&0irzeL88VT>~;8QFn^N{InYt2+|d>q%`<84Bp@?{<xbVEZrlV?;d3KO zF6Zs>)MgVWJwt!)<}&9}fow&mlLn-1iuKMRDaV3mH%0cNAo4O~W;9XnqaM2VCHRX2 zO)zRK>uSe=DUXMQt*%;lgo-6Q8ODN6SiVvsBhkzo!IsyzXc%b9#|U7hnmNto*#fS8 zpcgL$ZX6a&Opyo@!Ky9safCU3#fD<~(cby*QD*r>^m&ubptboOawfw5_HQ&ESSoaQ zzUP2rNzdWM!U|f?{55J*(eBx3lsHN13jBndbBH^TgzqZ!=9)+{XoM$4qQuH(RKC`< z2Z)@IDyK&xguREa3Lk@0v7rTiy_7MF=%7-T@Bk{NgVYG>BTlLU2R_e3vpVvEAxk<f zP;fC2`iux-STh%9PNe3XT*cSQsOTZOsd*tPU&i(bQg5o1ksw9;8g=u8x~+AOJzaFR zWt%6w#UQM!l!7;02oOOXg{z?7=7Po&k0#ZRx<j!MU@>1!wc_jVpj_Z;SK`=Xb2d7c z$`icMI|{xT{Q1GSDpbbF=lLN@{P@ZH3kek<Wdp6mj@(cHHqi|Xz7`%w8uNXMK_bQi zfC+R$y%o(S{`bEAt)nWA?=ivGVaRl?Xy_Hg9wQdL(UhQW%k?}MOg+c}V_%*^GtQr6 zcfK>K;TnqtFnxDLZ~~7sc@KJh1S)-SidQfZrS`;d0!q>J&tG%N{yB@wmADg&5WFan znu4t|6xs9X!KS9&tM6M*x2TST(wamUc)$n)`PiV>U$#IV$Y5M+Q+WD39uc<#%*q?6 z-}hT}dk}pC&Wg$sl@e^?#lmGg*^4XB_oM}zCo@K2$vF7)a1^6_mFYz<RcKxZ3d>MJ ztk&zdW$`;v;vS*CB75YCv!piW+)nmAk`#6f*npU(k5DIoAflEVk@YdZ(s&~%78dST zG_J9ZaJRtVb2aXZSWZriddS6s-u`HAYnfvTE&eAG<DF;pDAA&1YQHs}q}#t&Ynm{b zZ^Yx<GVeJmjrUM@7=kh<*zezUsf*}GhFFvUyrRr=m)P9Pa(zU(XZPvHB4`~MA)H!@ zqZBpfkSnYb{0{xb-|{mGs$aAW(Mu%pF5ikzjM_H04wdYiadRFNIR=ZM{m=#E{=o8c zw~x|j*dLH32e<^4I33kuMq@4)EojM_+Dp+J^BaBOYJv19Tb`1CP{I}7N)c1f*SteF z{mo@M<{B>;j5YP)_{ptuabqH)E1pXQ1vj5YkWb>5_XhK8Ua&ZaB>L>uAK?=^AG~Ii zKEG~Zy-SCUU1>cQsH3__y@64VWn0WnI!Wq>x^_sBPt==>blr9(b%9woUaI)WCle0= z*HV$C8!qq-b<B`3TT(#<K(%?xF)H9<=D%m(1@Xd<q^S)hK!ns2$cFhUBV8id$;@*L zDZk%tR%z+(jA=}T&p@HIIX0^+pq>N=((kc=<sVZ;oIvM^-W6DE8?r2Z900}J4S8bR zmZ(OyHkk%S#xh()!&Y{S(nhtqcRlHfpj;c-vV8|Oc3d;i$(}^TpfP=BWxS(FS~SYy zc!Az<ZQWqu6+Ujf5k?oX&7=U15PEw^MRq?f83!y6>dUD+ir_kp=HAav1G>q0LqjKn zw3SN<qID+PXAUPxB1=f9K!Oz5G2IUeF)K<XrK|##vsFleKN#lw+sQEjXgHDAo0KY~ z`vo#*1l3S}#-SCI2zn>kVVqk}sZvM`4=nBISEI55cD}J845CS8y79k^v!h*I8^4QC zq92m?0Ip(YvNMMyhAgk}<0Q#qtji1bP&-u2B+u&|5{9Hi<d?TVrq8?IA6~ycfqg$G zKTU>7QN8Gf#I3w-)~>xvLuT2PP+eVE=8xfv#*dZ;NG^48ol<vnLQ50Pw_d3&%VX&_ zY+2=5T#@{BxE)ycA;1M_WT(~)Mue9AU1rS8&Af%%6$Ux2y7-5ttch&9jImK_)IQBR z=gL;ocnl(<qIVc?E4+)CyZ)vYDH6`j?2CJW2|m!l&YT{-Ia7K)ZErWq&+a3Cg^cb8 zrS8rieI2ZuOG`do4iq~|H?w;ius7bFFzgUCvrd{gCAW!q&~Mh>X<{Xm9>F~N`biiz zCn{M)GPnz3|6y>wWUizdO5lP3|Bjye;Hi=%=<R=DNZOv&-z#_|;PrEm<!_I4oUF9m z$OoPCv!k|I&zDcNfWVv{d5zT3kSl7;_tWF(AfZ0wV#A0w;YHlo<ia)+lV(jYd!%nm z!<_}bzj7(;!s6Z&FZ@S(q+&`JF42|JD(G$+&QFSIvL11Uc&#(}vQ=|5RZ7h)%}OJD zT%9ElD>Lq4PY*d?-tN`Q$hg~0s;Vc_${XNN9;2_GoeuvmkV_R9p4Gyzj$TQcTHBJm zBR4`ZO=6UYFtIP;HAx5VV+!g1EwanquvS3y+<EV0B-CY%b01tSo6eUO2w~@EG|8{+ z#*3$TAJ(DKUwV1$W^DNF?UjpR^r^x>=((=x`v^6Q2a^8U`vn^C_SbtYw7FO3_R)>e zsM6DYA4?ondp4)zB!h9e>Yu5`WK(=+UVz6;Aj>K@=wz_4t4vgIkSTwn1-Jq5_Hg5A z?$;M$?&sZbyU1F26|wjgJioRs9P2y@-+K)9rLV_#94{@M`(697-MQTk`2;fV49}>M zLQS2NuOHeOx3*YtGV%d|@!bE##b3Np!p;5Q;$tZP9~U%NJ4<7G6VsmyTC>*0U({9f z@9W-!i8mx|ce>fvnBXPszZ7T|8%hA{X6C~?_dk6+ZsukIvZ~Nf@bI#PmawdJvOkR_ z!2;4s7MNqg2fq683?bgy5g4kf|9(GijlQy(V}Rn;HW}|ew4L7ZoaSKv18+EJck4Yo zf~+i0>f{CdBZgKBQdzxWK;>}xsN1~(7g6f4Lrm#VV{iZyZ{v389uDuCg&)A<s$&Ll zaXHO7|I?#RZtzk=ic_2QG)?ZsfBgh5)7?%dxjpC9U9f7;!EMn>?>lpKF1j!UkLg}h z>bZ#5t>bN9vvPfRs~o1953@v=)p8S~Jy5o?*%dW!vhDTZ6u;DCY-!&#g&l$)oAjB* zu5QF6y)^pb!H%1Xopk?<qty&R5A}sub0ULB5ZdZ;NqO`!@~BL=RP`9|e+DURv#0}c zJRrthj3a%3U57rSFT<-xSw(%<n)K~m&QN!whih+SLJZx!CfWV&j~jC{uMbqk{!+Xh z*}`jJ@+-6r=^2VSA<Ykocfu%)m+nEWc_p9+wcw`Q>)5@=z=z;a7^Hu|vwgtxd>~2z z4H^KC5N)Zet79B02==CN5Hhsj&OT9xmw}P&l|G^$(rfUZgdimXr=8(ja~sxjISC9f z?$llVB?u4(28*6h#p5=4f{6PN4s*KQ(bi14d9`|+zvr%F1sb2Tdco6}octV>F;)Od z>d09nzEU-cCve7$en`LJo!?JD<zOSfofQUB8ZgBWYVAhhuCte>^p_p?&7WxDU2qF` zfqB-3?xU)a$cEK~0!7d%2$$yq%IX%WGB}-CVsuoZBQx<O`IkO$CnQLB1l6gQZ9^~D zOxC<9S|*hrm#L+P)G2jAw@b`diaT@H_I`b!#ChuJhM2{9enechV1>~+b*Ga8&i;r` z114VWPZxi<?rp^kiU&<gKX>s?%c)51ZZUQ*#o&@Ix2o;r&C$f0d2u5w_2Gz*N{rHO zak-vpNgL1r1kyf=qj9jk!@qVUy9@vV3q_KR3Gtv1q&C!pIFY`y<FWFDqZEX_rDikz z<wdZRJBLQcxV8DLqMzQB@FbZT!ltHqSj+zUhis+8JGVU6Gsm`3j{+`8FLm7P(6eu# z%bC}u>xU0-=Iz%5)QphIWg2ivB*nfWcXCCpkb^!`2M@|wn}yKy#Ry8fehC+kyL_QC zwxCuEDLa?R(*j0e##ncGH$x1A9yk~yE3cg*cZ&F;%fRB+WR_QcwCztb5m6>j0nh7Q z&|QFR*y1F$37zl9SD3vZQUl<UF@Z;hKbc@wNtWflF2Ln4jnNr>2xS_d3m>b_UY9eA z8bioS_AxlmwTakt?27C3Pfuv#>1r0*A^WSv*Gk${$9^M^XAcTURrvX=41_627+UmX zqHjbbC!`{isc5R#NLn!_7se`%R17EF;+jf0qD$Tut{HCDJ8x(h{GP1!cfVsmA$#Ad z?fp(W)iy)h=;+(S{ywI3f9-ksBGusWx&0tdywq>DJN{5)7bWE6QJhh|Q}fCCN$3}v z1O5Uo9%(<Be1g7$zmmS9zp{EH{RI6a{X}QyA0Ag9>E3bQwLRm%VtZu$<i7>JB^c&^ z&$D@^_XzJ6s{_0qseN+w3Rll^&-4NC@4%mNU&%W~t$<wscem`#T<0U{JJV;dZ-#{m zja+*4IA9U3?gZHWg{P7-Z=tX|2U%O@iL)>CopWyOXaJUlD5Rac<EF(ZR?td?UlN&~ z(yCsiM#cJRh|FLmy7%O29y{nD4L=2YjJ)#W66}^`9bCm0?^U}<H?}Qk8Q2CkQA(O% zJiWe<i-+&2VPA_tTPMS#?-ZZ?eC_l2xQ7GJXLR<J=o_t3vZU-}t=iOgotxfOq_k$u zH5a`jClG7mg_Dy#mFXYnOBQpMA1?CJkOrsJUW%A4Q#pIRq-vtdB3|K0_gu~ltZiqv z0Sil`a=D#t>6eS!`KFz@>{@vW%9Z!{pDfbGjPdluXt<o^2_wm4H6eQeM#U-^!pLQ6 zsb#X|p|a+LycO1@jkKNz<VjiLA}TCZ8W=0o;*13iR3>qzC78ki^q+M?b_j2{Z0LG+ zs9{O9-z6O+FS4A7IAl4a2nS0wxj}>5Ky@NTVZ9-Vj&wY5nfoMCbLGwyRG)nqLv_hN zgH?dRP(>GP+9q!)v<OEu+Db$PzZfTQ<A)udQIVGc=qXvUA>mV0RiU-8QY~j8ZX<bH zeU!qE(iNnNxD_z(D^OQp#j~jxO3XjVE3=A}iDb`tjgVW^c-q#RZ8o=MNB(x>7*4R+ zF-4bF6$U9&tjrG($hT6l)`*S%wOWj$!7)cof~i$pVYFl=sc;cqwXWjvH_+P1IQ6f9 zS!|2J?ukLAEV5j)W-TeO)rzYiTYMx9H9WnxN(Po{NxcaGibPsgu)6T6OcflxMk15> zBGAeTy+}-^nz|g~AYLgT$>F09w<)SD(ndjHjkBBVOtfjXtXQHa7zpiL1*<mj4n3Hl zz2<zGWFg9+o$QS5(!t-<k-IGBmmBXu13hXD2Q1W2Brz{@Blrs%AclBlHf%SP3$}xY z+puZ0wPWoOwvD%b^}bSYta)H~r$^Hi+eh(s`A4jdLFTu|Q3q<Y82l-SJbgQb7D{JO zIwi1A2N;>SqERu_A<P$;`;it}ZRs6-!doC7ErwJiV=sTqBe8flJ!g|8Edtln8XTo$ ziDpc8NJ0@HBrrij`3MfozJ!MNfN6Os?D`TtU()~n42V47BV?F2(xN*aO;I+G+6^Fz z7fJQclO)Uv3W1FsSrP#&eWD9Cv;L4NvR*HI)LlZEnmoO5;t?9@P9XM3rVu0Hp$rZ6 zo^mpDd->&uOct1Fa-@#F>5V~iU!xi^ntdu8jpi_1CZ)KPp(Jd!RDg#VRlytsBUde9 zh0Zl^fZlmEe=a0Zsg9hiC2V7%!gdtLR?$(!9!H9#_H$gw&N9k<tE{d=ii<X7fg61g zkd670)a;Gvp-F5Cn!*z}hhI{R&;kNV;6lGfct1Aj``gghhT;J(P$bi{BK77F>}kLe zA5l$AjR>@wk`#thC?o%}G|ZiSl$WgYHG_Fb_|G_^N;If068{dc?pn?Il9IHw{$np9 zu@|O>0TI?fM<k}!sKz)#QZM`U+i&Bl$>(%!Dm%>CzBTH&V@v|OGDT=T?!{2{a$lyM z%1M31E?ri4zjd=jPlOsz%{n3S5kX@ZC$>DQAG2mm2ewjFQgoV1m5hyvFw_}s=2&zx zx1ClDWm5s~KBq*%Jba(7>6e{cGY(PoryJ?B1P|d;&<CIt@}U0%qsqG=28{C|wtB4) z+0iY+VgOspM7bREs1|a>w}Z($i~l1s_*)C;?tZ^BH`mww-##Q_t+(&<zSo{{mMANb z$aC(+Dq-&Lpoy`XNT}^zXTQ%z)R)zp-H_g=S-nm_P<0|gKO!9V8QZOp-d=m}E=RA! znGv=hJW8c#Frm)-=rp7~e;dg6uBQV!I{G$HypQ+({bAJVm(P=}3hl(anu6!Ye6gQy zZ(VU)-<+BhLAK}je7XGkxB4u<WU|0y%FiIjD`4s3uUyX^fQ%p(OAFcdo9EBn@79{{ zmk(K$AWmuI`svM5j#UPm8hxSRwf=DE>h4C5x2cnj>gi^hOzT{m8r?OW&U%kGunOZP zQKfIl|8y<r#J_B=A%TFBae#ox{u?dc)y2~0M-fkJ*xDbmqx`fd^*i@Ul#$wa>U;M5 z0!%gwINH{(UGJpYRLm``nbAa0OOoF~yxnADpX)khT+v5z2bjjQAchT^hYI_WS(V<m zaYIy;H8~#0Whf<kZT55;gKtY$Jm4vnx~#KNL5^5vZyK1p5WBgi-&b0^J1bL^%OLLk zLq?e2oViJIwZ7{R>1%$)h(BTvBa&!gPkkn$7x84=@8ypOB$B8fjwF+GZCCzhk~-PF z4F>YNa`}7{#Z@{TmZ5o3%%o146}hRstVmfqndT2#!&IHM_RY)EC}kNTqXNkTFO?~< z+hB^Wrg_bLc%}7jxAIFIAGtt}6muO_OLbR%bNo?_S@7(756G6F`If(0<WL~&;#Q5Q z*qXH?%>xd}Z?5;U>>K2YA?OWv6A22@T(>);cjVZPHD$!VcY}p}ex_%cS@9DMOL8`X z0BuGwQ|zQlEIthh4)Hw1%)Ua3aZkm8*~2EM(^6CHN2@kS3VeRAUJ*qdb@VjG3~SN; zGY-%i_G3%)=O})qMi$VGkh3A8Rz@{uB~7Gniu&4^`CmH8T5H^Vajk@3h6FsbavyVY z^NV0ok)Q>B@~Moe!|aKHSH$}<9JynM)n2AnKiG7I=UF0eQb#cpky{VU7DM8jYEM|q z(_C*H@F8^>5W|{9cu%AtOib(E{2PfZT_t7Aqz~`$omP_Sn1BQp3EiXvxpq)`e=<?B zOPtM%1x1Mzhtx`xsyMYdM4fOcBP2^>V=-@6pnByIH;u952Kp9*A&<+?mmoJzuCPFh z+A3!Xqydz741{|%Lr($nQt&NxG*CG^y1M{Y70u-url|fFf9X&&PRlg`6svveLghMk zi~|awl%2Xk4vyaiU}?3^lnyIQ<Ad_i9)s)U0um|e#S~yCPyyd`b%cc5CDIf=1fA_~ zm&=&?dOKTCI{XbAMkt^cedZ{=BfOO$Y!a~BQSTV2=pJ8c{n>M!GrnWor+;LlgRLi@ zUlrZqIThXQ)qk2kfi~E(_J>J9G{}e@$pFTRS;}ZVNV)S0kMO1zq`ymPthiB6)6|&4 zdZ^U#Ob1#w)(n(pg{<_WFs-e=NLvy<i+wQ+OLdORIhNjuf{(9FI}R?tta|u^D&f}d zpZMC&)93D=eA*{0wmt&dH|7$tP#)f6(|_?}oX#3-O4jT<b8#hT+VIF?UvJMP4}H84 z>GPn~G)XHhf*l&+#cM<qA`U?)Wsmhqs?$+(i`i%$TSs1F0PaCRvxVJj9JW(kYbWXC zsDdtO?k`GeV^AIgr4#0adT^6OE`6Ks_Z_#A47LS22|i=*{;W#BGhuLtr#4L_s&{{a zTW{8_2Wi71k;$wasB?-XcJKVl$7L6Ze}Zxj4E|@cATVv+We1_YCd)<+8x6dGR|K6% zUcL4LFLnft%7uIZsXNd%*ctKDROS^sqW+p$QNso+f|_OOm@!|#tKC@Ck6$g-`o3G1 z?Q6BK2u#78_R?8(lEfUuBJ=S(F(Babw-r5?@xpF6`rvhE(16h27KOj`^y`|&(K!^! zHMc`*!D!)_Jv;vd$O=by(@b`|y+8TTJhS|J`>M<4&gqI5gw&FE8Hx){hd!)_WvOY> z5Bl#QvJ*jV^^W*)U3hqaq0CL*D{Y&!u<QAh%+$rklH7FjBW%A%s#!va>mbQ^BQkBG z_A8mQBFL?kw$L96%WOgAo`5jk%0<SiW*<ujO7U%Qgd{inWnO+$pr8mJyCqopAWm=L z<wlnU{G6(ZyZHjAOBNUX$ow2cY{1v8Yp&4okl+3oMfKT!H3uX8twAPdHqf;x>-m{u zS0JIeK}U8bKjQLy9F{5nE!Bfq6oKy8gD>mRdM9V(6V(UA+STj)Lzk+dH?L#a70Z-E zEVAvDG0L>_%o0`OlC#un@E>oGj3to5^j0dX`9OL<Hm>|iZc3J5Y$tZl(GQ{r?*uHZ zC-YiLuity;Ou*3q7!**iHu-4Um$)LxDs|yb1yNtJE>3cos#*;PQeS>+yTURX`LiSg zHTyD0wp*+_a(0Dd=3$q1jH{5%(E_Ub5tJSf)<=zNx1P=F5^|E9i;Z^0l(^)OA<TNT zcwXTP`}8@N9>^k|<}dm<`?VTmJe*ydA+-y<u+q&~gG(eFG0hI*rnnW6Fh=~9=rmNz zuzps&5<cM(97oeVH#$Hjv-W`LN8s2k|2Sx_N3pace{4{M6K<^vQCK2B{YC#{3tOyC z;4PST9bCOW?GxMH+P3aGdsvo*WLNXUWml<__$)AoIKADaZnsAx34OgYH;kS>Ti9EZ zIIZiw&YW1(48{gL)Vz5OI8hBOW*C%K$@5F=(D^d;mne;l>xO~M555%5&TiQOa8hxg z^wCI|3Ib1q7W+HH=4PjR-nE%8G{yMK=yG2&<k%jH{xxr9A&7WXvf+%tt{wYBZSbSQ zt!@HxN|m@f%p0gP7RUN7f<hx}arjMw?*QI}mr<^VX?~Ma{uwZd<xFPV7-c<iK9A+v zvw15dFf1(?q|~(FjtnouKoBY)H&wE{eom!q=JTk@$Gfn*__AfQdlsP(pjn+tzP2Yi z=TT{o%~Ozn95Dw_?(Dv{m~vc=!_@C=>YOZg9^2sE4cCc3Wi(y*JIxCOrH)JwgNT~d z(6-7I;c8vBLSU*^JuIPd|A!+lGN+5`MqMI?9o`$P7xX{%LYYp34DU~1bW;-ui1EMa z1rtj{b0<Sv27P@?J4+XR{U7Zx%xi7GIg+ybNds{orqCYAzHJl`0<5dE%Wm12`AhV0 z8(fVMEdx)oiV7jMs0x7bdE=$`KtiQ0*Qrq$L+5ldmF_%~^-{LBTymz8h+%5H@KLZg z`&2KN*;2-ic`<US;?t|i*1`7g*J5=7({sO-Zc>NTpNvtrQJj-?!SRs5+!xW!X+Z5? zSM@Y%y0=BhwB+5(3#ErsLYLx9l0!s}QLS(DjoYxBC>bK})D%-sb93*7`&ZpkTwh*O zUSGNj{YAeP_bq^~Zb|l@2G+k1<yD}T8~%+LOjYfRs?N4HPPA>cbS?F9gTisEkY2UQ z^b8je_n8aX5|-l1sUsj)ru9D;>fhYy6-}xa?~%7nhsy)|NmUmfg^RrDat!qJ%aDs_ zG^$59?4ByyEf&lDmy<f%mdO>oR|{1#n{Fl7&)M7n%ow$+9<j^#>)(W()#XdA4}Nb^ zR`6Zwnp)ie6+5gY#Xp!L&o@yni$y$rgU$i%Y|y*%X<d^hf!aA!Dw}L|qb3QPFR`W4 zG@{Pwu)OQr3ws3<PncL*D%+13nyl$RmD8%QDhzCaTjtvY><#SjNR@1w@jtZ+A(hkz zqUS{_;~QYd2N06u4GA)KzXS$hN#Z;c&9p^`9o;|Y(tP+##rAX(N_{p1BskZ=rxdak z(}5!_0*-h;k_*Of+s+pXNR9yDJ?|Q4f2ZXk*ctC}AiZ1JL`#x2K~b9)ig(T`f)Z8c z%|((R7WwbSLsvk!R>|QeqN2y=Z5QPNG|KRaV(#mtJ8deRTZ!L6A*$TZg=ABHB>C<{ zluqrk75JKKrRu`D6Q44JV`p_7m>=_ii>QhQXT_8UDD;@$0E>b0Zrhn%OZnpjYbAc1 z5zqi~1QBgu$cHzQ$u`+y`(Oj2!-$9`(X(@_;_Smk1v7qD`G@6*AIkpb?wyJOLStH4 zR)55$z<M$Ihd86)h{s*p2B}D~qB`XY3reYfR}ef3-9WZ%O7EvHPx_!F(8;eZKGiBw zEEi~!_05OOE`Y+*XI3DL#H2_Q;Qpkg_3#4Dq=xod@o&|O>I$}U%R@$KJwLE%fKxGW z(ah<&ZZX`LF(^*ixb_x&*(VMfNrZjmgdR(Gi)EA*#1ib(Dth$~%>FOCe`JJP`ImI1 z)J0Y@N>!erR?4-u?EQ^gA*dma24WHz&G4^kts*3Nv1CqR)6tA;1XVpvkV~IsbaI4v zHsCW5jB}i7^eUL9MV>ru--LLHA{ukYl!rI(5<5F{YFqXzbOn^EjE>*86r4r6V-{!% zS%~65e!~n7FkOB6cd(%lwXcXHm-a)a*$~q?JSy{X)eeP{YAvOTJ`o0ctI`lqr_Z%k z3yD~9NfD!4Qm~rK&D<G$^NC!dMnM#UD(cebTzm~kdm1gO%)()CWOrO>w;-%`gV7LK z&qc7?2?jLC(O-dX?ln7sqI3F6+!cIHr#WEunMrdQ`AY9@88XX8`Im#iIWgC@^9F7e z{m=ut^tXg&Pas^`NN=>gm_l-f3fumrb1vee_)e&Cg#i*{M!>nLHY)bQz(b$mKtEvj z5w3?5V!9WAI1&0WR8Yyp6}3yGOD99;{27U<9M)-i`QHeNgv3E0ZJrVM4iyecRQIGk zsMIG<{Xl}T>v``1`l$d;Xu`Qt>J{;)ICe0M+Yq0i(Ul63Sq|qErTfI|CuCQ6QVE8j z<M8`Q%&}NZmZyQLJN>vxtHqwS?9fc@{RID>SLcVAYoJaP;J(wLY`NdiDplDWt?n4e zt-Pdo;NM1w=Uwcs3%P`G)JJ?ZnUAyN7S2b#s@|0|RV~{!GDFM2;6ZYa%r4V*UZXfO znpHP`lmx743`!~%I|Jh^;LMpfEKT45z~J5c-AU;S)Q|@bqA2Wpi$y<N;5qQJO*}C` zeQ0=vN&p$#;00fbjB+)rDVSKZ$=5!Z$jZ)O;XZ{w|AB&LPo&j(mIO4YdXxaFGCFH> zHw>a`wKPmt3F~VU@hY-LWOoyxxQ!eM_+J*DnhHs+am|Cb!9Nl57^dwdLaMDP-fCi_ zvBce9tPW1YsFZTA3;m<eoc)Q<hM;~RPDIJ>(XPy&x+cRpdbp~rK=61F(ox`>9RW)M z!AksqWI%w3uYQcxyF#Ug*hfJl-;fs~PIM*Epl~*JU18OYpf?x<0j$9}Fqz12e`_Ls zfBu2^@O9WnT7i}g`s%(vF1})jr2@heNY(`MHr6xRH}X!@7fY<tjXUX0gRdd<@&++s z7G+bZpTj*elCiycV3UoTqrfkCkiZ|flmnIhYGB-5nWEBD<A{(<3B_7`K$N7SMgrX$ zs)=KGk&-pufZvc`O&uPC44iOiTsrG4H$uO+hUi8T_UaxKkYW%HFpz|hFx?;Me%rO4 z)ENyfDWSnDT=yY{AlnPJxG+Wr=Ji{n?B>&7g1eRsJP8JGyImp-e+nZ%XUyl+wl`YX z{3eFl+J~N+|6>!|+~3_NgX@2wg+>)8Jv6gGe9UB-a+U)8X|%1W^-r#L{u9_7YGoWt z`7s#Ya!;Vuvt+Bd8Wz_UO%v4%2**wiX+x5h^5Ng*JvGi#qw2JfkV6KDIUU%cW;&K3 z=ZK#~l)AtG{v}w|u%Whzw(8ZNKmO=@X(<MKG(_;{C<c_Jj8z&WVKk7~O9%vT@MMAM z+KXu4eF8W+VeW9IkSi2t{@D^~a614s<uMXauAn{RHe{VhYMPh!w94w(HeC8?khirA z=7H+GmSHpPf$uSc86y>>6a^rPDj}^)+%$E=87Kk22(q_@ab_d8wG1VYG(MbA7?Hm$ z5EjuELY7l}VD+#(@*KI0L~=%&8bgHWl*zlk=J4S)VLmh@shp+-!nS*<+PAfuWl4r> z1C>Dv<g}NBU(0dLQTv5E4!@pBUNa#zlwr^`(Yd$-JV@N-#VsNa$5h&hFhDhs^ry!0 ztBD)u1Vr3x1GGV|`TgU_Pq4|86u5?KK;^Yz^0b}!7=>BdIoXU-*<Wbp&}nY*ZD>gu z%$eOopNSTuGR<mB*;~GVayYmgvha0;Wj5{DruJ>}mboIG^U=eh05KrPYo-T7V?4vA z%4#z(dHKb4;df~~@KOk}QSCDM@F&q0BPyS&K8Kc0lGmbIL1rxf<c|M!91RZb>C#6F zO^wN0$N$F4aLGq40}h-~$KZ0Lz6-;XzEFDJdX-MbJ!+5B@abSU$31-Jan6CqYb!XY zg0o<SQ{DK~Jwk%KkAwXa(2W!!e?Wc*`4BAHyh`ya&`=<L;80jFn|H(<EfHV^g_1k7 z$Sd!D>%vG>5cj0=Fh@vY4k|y@R~^55>AU8DN`*7f6e|bt(Q&$kEM#ditaV82HF`#A zP1)2SqeDEa51FNF>o$PxNMFF}M7sb&B2*v}qJ`HFX%Sx)GlPh6FbbHS8`VlWyQY`7 zd_@18bPRCqRIfT!SIe%?I5J38YAGSPF%MmjhPbSyQ=*mU)NH-n&ht3?cN$KnVZ(VM zA;>vqWDNGXM5TVZC?d}8Fi!fRu%IvjaZTc(UD_?lyF?R?2)i~N>6SXztIT;6<qn-& zY7#t#_oP(+8opHxG0mt7Ox;j}D2hOAu{R7I=gS=*^((31e&kP)76=Mh7^X6c4m0#Q z`5>7=QpUr`DX+Sw92d_Y_0POgdn!WgJ_2;u1i$bT@MYH{XD@del%+nwu=RRBf?&K< z^}XkFCUxu>DCA{xpF{6s<tBe}*S>lKHYE#3K{5z@J0|X15TKtYYTm0%O5U9#6OY-B zE1QFU;NR2O8q?i)3gH$!8cx4@7;>a0Y+6P(^cz}NT9C-c7v1MQy;4Whvg05HqITiN zfW%AsWqI&c0MhqH2>m`ZrxnTE`OP}v@)S&e_atK(L&Wn*FW(N1k-3C(-z6O1hcxC? zwU4lFn?Cu#c=*Zd_ctBV|5z`CHVR;hxrpTowd}*Y%Da1b;~B=*1gzV1;^tG;F>Yd* zBCORb5!X8EDjWl2+)Uz{)hUXLT61NyoSYAzL#}}L%3uC3D=A}$|I37Z3HFjO*2a-L zNBt{SngVG~CDtRUj%ZWbi|nP62Mrq~l+5;~iC)W=YQX@zoI#;4LfuELO(V56HCG9S z9p$ika?`H?TG%r>B>!h*T|9kIg*XP(!XO^{uh8GjwEPQsv;!`#yxEBdsI2%wxTM2h zw)aZT$noB417c)mHT-G<h#DBEN7mF9j6hON5INCzhG5P>CjSUh09^Nl(Xiw=Gzb3n zY31KVTpMQ;yz|A6=Pfs}2!zZ{))UvHY;97rO!9ENLNbBb{Xi3uAt^^DuS<}wMoNgD z|G>~L1aDiuVkXa95XQBT|CUhB`rozBqtRTuXle50;yx<=?Z`CtaE6SndSXYQ>Jorb zGX;xs8o<MQncD#h(PsIf1#?Z8PtT@;cO(=q=&~n5oy5{K2iTzNj#;MY_7O+0qTuf@ z15XXO9iRRp_9$IU3n$xFTTydwvK=7GSH6^9toJ?t0r($Itz2Gu5NB#yJCJT5xXS(! zkX>}J!(rhl5(U{7NRL}X$16X`Np6bX&bOYJI4C=Timv(}zP>3qv}kEFww;{VHco8Y zwr$%!v2EM7ZQHgr`KM;8=8hiL``W#$x_b4evLXrxD{{}}h#d_HPcVWNCPvoKeFsWr z$l2cHViNO*Sq2d=pN}v1)>79UCJr8a<v&(Hd^Z6Fp9DJHwJ7-W6=*`3%LFFek};@X zbU1E0Zq4`hB{Di1hBG{aY_h;j;9EzgA8^v0QXt>X5Z?=EpW&Ov0%dt%fgj0CwUuHK zzNf8jG^nxst#}F!s4hUSNQ#O2f0mY!cn;LW!vgDd`ukgG#}LC<xq6Ly5^Tzm5njk2 z98kp-dkFS|=xG5VXhjhEhgiwb3h13NX7*&&&b+MJ?9#MS4kp}c=?~rMi;ye4VM=$Q zY_-Z>K-}Qha4VC->T4E(FYR;A!P5e+tTJ(TT6i|Bfb*0*tl@+!wg}ESC4nRHaLB2p ze3-_=%~nTEPTy8+gB|z$dg)Ct^gcm~xnV@Bq;?2+_9nhXExFa{XIGQjMzl&~DP4}Y zJ?iCop*2wH_m)9jZkrRCEGZ8C{92{zJam$$h0$K%4NU^5ts_%)X=+bUrK@IO<pMG1 z<?(=~XtK-j+1jht8$r#9T>_GYLN{h(-h^W>$a$z)TR9Yvr}9hdXWyK^k~|vd7DTp^ zNIT%Q!8`I{Wr%D6Qo&O*ucz##-SkXsu_<OZbpEyu1d&v7@MqEIQJQvsoAHW>rMYd! z18ympw?>l2eTdg=@LK1&ICNZgog5e=LSQ`6LOBmk!E^tu>{qk~Ht7DyFAiLmU#cB| zOkHeWX*UV)QwfxBZVL)=Dg@O|TfE1xodwd30t^$!Ivjk@em0b&HHg-mDi^yim`ABX zWN8$#mCH4_i`bcnk7Ppc&+&16n6yFsU=YFfhv;S2$v!0LjZrGYLt=(g?>LcRH_ZnB zepd`{WkQ~a)5x86R0AKt_(#S!fKyH%k>mL1Do!A&kt5%N01);7+lfaXUJbn1Z?wB` zUxEZEdTtbbcHX3CEkAW)o6t(Tf5;g11RKYU0%Xm~%~{H<()X%>j_U+1cH%J5gf3?K zIDsj@f`-!B;W@#1>7r<gK|RZ*v=VToeCYbgE(8kMY*Q(_@xv-IxIi(<d>i;x3u=yn zK1OMcCJvofAzc{~gJ@$D-paIU$L!uh(`r_H!jE}zffdMv14$Sab@iS9>?NwPMOwd| zuflcQ=Huv~LMQjHn8izm_<l=W3m(~+s^+7y2-DF?Q+{jQ!4<ia)}2+>=B4r?XxLS+ za-|j+i?i&&t9s8Uu7ZhB4-5+-B9YIhT2fcbll+&Hc)bTq#^GIIFriF4|2TM_JC^xL zEZB1Gw>yhSg_%Yn?CBjoqEe-(>A#}pc`nt2l!VeQBC&x&3xQt($Op)x5!Ve%1f>g{ z43N_?XF|ylodC`Gb?8uN^9dxLCA~kXFl%-VAvHjJmpOgNF2HPU=u#W~ecDryav>2* zAJchuz800D`VffCeu#hX@YlBofYJ9KmClAbeFH<=*(}^YcG^b|OBuxsxgJv1oMHiA zG+kg$zVeI+$`tymGbN-PVqylnHG+ME;QV;_*fDd~lE9!EpFP~h*{P2u?=I7do2Hak zOeoLh#@xlFc=GeUGBvwI5tt=0O}!BX5hY(I2Q&6ZX|Np~xk$?eMP_>9L1~rA3)0IE z*8Ngs9M?1{)U(#{?*J_gp|?R61MM0Z-Qu5Eiz`OWN0xFumoq7C3UbcuOZ+c*x1E;1 z5|0+VV~aApd%rfDcBMsIZac>l?6WYas?swv;6<_0Etwicy}H&>&}AZy>x|3h-mfYO zZRt^0bcI4=O$xxk=y3FoxOSYUBoMkWj5;^I!!P_MLc3fIWE+myaaXg>Nx?WnRS4aY zK~8G0V^+20!VeGHjq}9Qv20<)dFM2n{toZvV1yxPDY@0!Rkl(>oc%clOYf!+e#Pd^ z_{!4QvTB4VL_>)H8t0?B4b8o&sy>tag6C0MyISk8&6dp#xBRiW^Edkvo>Ck{NwESr zDBit=rHFC(ilxo%#U^jU&Fj1Tq3qtW2_i#5>IMvmhMI_<K0Wf03xf+F)`sU?&AHNn z;eNTL?1O9w0bYybosPyNk<|_&mJ=X>Ro<w>albkWmDfK~eC}GSbaRC@?Zp7g3X!YJ zD}?!0o0#4a_L1)kI_I-@tuU1^Yg(q{CNclKEwRGVANKHh54-YQ!rjCW)LzP!_%t1R zk$L`rG;4AI=Gz6XldLpoe@Y1R6sBEd{!-XiJ53;^fWf;-+qeU()WCK(jxIJtC9@iz zh8NGkUOJ(sd&3IYRgSR1{f3_m=$AblVw}H+sp=v2WJ0hDlG=V;sUzxm$v8p>azwF0 z2JohfqXxO2N6P*Q#}FP2<g7(;rFxVzuz%W5wRfTD@kgXC(DHN%0+A0_4h%9t>5q#z zXfx|McNmCz6c#;;dv41fhZoPKnR>I%uV2b>oub2QaPamg6!rjU$!UNg!&^mTs?J(~ zb>Nm-Mbp4s1UU0PAH`1P(Uva0@K1SE+_#{wLj8_w<XWom$5Ym576_!kzGaX)8s#MJ ztQ;1NQ|Y9yq?Qt7925~uOTPF&SN0gBy&rRE-*WBkBh<R1I0sk@vaiR#OC8;Fl%bFa zykz^*FS7vVo={jWqAjJ-v+exBYmXUiw@r?{OVoz0Im^x$igU+Gf>Z4L?CI%$itM=w z5Q0BYHV~KgGFtzJpbQuY+4?kHQGC{KrW?fq6nG1XqJs|2XI(jV#W8I?iYgvfbMD`m z-g+aCu1;pW0&&eGrWrwjlmG<Wz<o@ulU{H~qd`|vr)g6P94h|y11z=wlb^(Xmh=PP zG5?!!i_x)<frOsK<16y#?jAVz^j@&WD!Sq*y0GuXv{gb0mM;JmX|e^OzY?L}6Oc*# z5Bm;f`{D)lb*@FQ6p1HB)Nr>6b(<i>Om4xf_d4`viPOwy#>vuvOk_1t;GxBBJ-MO* z;PzkdH<45<3<;{UP=3{RcyG67)#Mxe*_mrhCX{x&rS2bl9x2#rRudZ!y^j=<EErN9 z2wv7avG1UgW194SbE}Q)k)I!`{kxZv$;AuaG(X<<3I~^9Cdf02&>fzKC1Ot~`41c} zUH=vE1#Q)lR?UOCru-Wpd)<=zy@RR2tda(FU(4D7`4iut1BlL_*Snn>UoXe6FV);T zCZT?gpM}}ij|{vW?^i6Y{+k&@0!T-|nfNXH$9J)>K1TwI8|2=ZReS7?Z~5~B9QPBC zj>17~;Y#u1nUQP5EpA{ETfNJc8g5^H%k*xGHGgeR&#j;3=(qRauS;Iq`x(ZIf+F<m z5#EAlhwk(3r7e4j>lwwgEXnq@)Aw;wW@n_23ZD#_5oDz8yD(e3Z*~)&fbaI6G~}oD z6H1^HS%x?7R@4iOjdEvPD?C%RaY;%}7XeIF==c8iRfQAm4(}5O;AViej`CfOUSdaC z^!}}uFX1{yHOFZ8!N$FcNqN4g4Vd)5;7vYM#YAlDrLm{DIbttCTe4rDFeUfacFUGR znIX=txf&d#YjgjmA&*0Qi7^#hP4sP^YyO;^g@T`9Ej(cB>9-2E)YMW3dXu<~I1^j$ z70~I{<w94dp3`ysfqk(N9qKaYyPfl4{@HxWnc_DGNQpNX?z-X$#Md2vF)FrAT|-6_ zwR$<klRn^%>qf3~E63X#+uTTCZz<K@L*8byW1!c~+O^Fu@WlA+LLt%xA%GzO%C?dX zYe$o1u!=HY%nI`z)FPij2HZ}QT!3w0lli_hj+@q_i`TmCcckbNOiW}_Z~pa3IK2*Y zXH{h1dRk<yeW}CPf|4h@e&=>|b@_$TWr_?2zGCNSMnrBVfxR0dx*lhF6<z~roDagl z+0|d7UA4@dvP@G~D@S8Lp0-ScD+(YVMkp}12w^GDHjKej<y7{ZZ>!Ry0Wbp@2*nMQ zF?v^CrMGL9bvSj(bNE_@&vqJ>kv-!evaGD>&L)D#_^Eac$BxzFIzGhrw43*wiVc|; zD7W_hxI#Cy92dBzWj=BwaQi&}^e85y2Lw$if7AUZ5>s4G@`Vlv01)+i{vXT@CtGVP z^Zyln(UzNt=;uS|JfVtkTLXnnFQ^UGBLv$A#@6SCHJm@!V?^di(0;jb&Cl+1LU&Sj zR*k9MDcVU8NHO9_KSaeWnMrs1=S&+g=h(T(LSywY^6uaqaBcI?4QmEJF;ByAX~$+g z_U<u79@MmMgKjP(0s{)#68l2&hMK62Uj6`Gm><8W+>+uhIHtC_{Jft5SMSuIgI0mk zS{Sq8=yqYjH;mJIN)TyyjyXNJ7vc;pqlz#27|0;$M*c7Z=EBHPEMgxcZxlqvdtsQ4 z8;+39!5%w^$JEYb13$iMe|o1PW4V4{<C`I5AiD|LYZWJf=%7Kz8N5AZvAyqI)tNjk z@xitgNfD(JQ&@qu`P|Z@Fm}FlcwiUrKMM=g{m(oK4FJGg4FG`X{|<5ekHXsNJ2)CU z{C8Aq&0#|<{^m2n;?>_M!$7jWi)l(t8bq_W1e0hCE`0k;I~*`jPhJQbWc4p~8O!_2 z)Fg*oaA0Utws8;*Qt5a_{eAfXYRCKIcS~SH?}_|4{IDagaUbFCm|s>5S(WPkQz-sn z$=y2xq)p0N5U&xii<g_%AgRvafZtd8&K4+QOl}(pv#I(dkG8j-JM#(T!>T#9u{ixi z!(aV@ji3iq{PPx#NMap^741XyY`YcXJ_{T&%!hpP=}zjf0;T4=1NuXrU!f+GE(^9P z*PRK0?br^5Ubu~L%BB63;?nJ=X3gGI39*k`W-s&>2yQv+z-irx4<sR-JGSp-9klJx zNrD&btnfv5hTT&0g28PYcH2#8!km#8&v_ZRDV}Vo>2gBk%t=oa?a)k8%9|ux<W^hC z9ktrs`~m%QSM9NTVvPycSyOuiN@RzxUG8T>O5vv<h9{<148Pq##lqbxca~Om9WvO~ z_h8-_$2a2{h<3AI9)ub~-C(4R`^l7j%fz>`g^SZ?icJgXfk$7U6(kWR9mc0Ldmx%0 z_x*s^^cr3pHcc*Dn<0SP@tdppY0(5v2K5`!0}`CvCzrV1=74DPW4=3t#eNZh`4tI1 z%&{kh0}26Hvxo^&^C%JfY1Q4@+Ud;z(@V<U((7VZx>kEh4;)>MA4}j2a3J6bsbhQl z#+xZdV#D2#865x{qTek2^snxd<dfxtHC8#$Rq;mT9O|$HZ)QdmJ)tU0Ga=^0^qRM( zlED=NQn1@06#Zr^a*h{~fLRge+xYHZ<_{yt)7Qvp56gVMf2z4R-BVyMtUDMogK^Cf z$mLAn2L8a#v_G^R!r-d`7bX!Nk`iQd^rpFBjjm`<7v7IIm-%q_Av_Q=i~>RE+|t?Y z!e|$^H^-mse{yE4ZB~GTFh2P|cL$rBlbL{@WAO0sKj)7ao+OKIS8tnENoOj&kt%6y zOgp0QUvi!BeSc~H=43>pwa=BAfh^b$jaMOUop+fXd5R;swPccDQ=1fSG~4nS)nDD! znMF3t6JoEAlHSO`e%qxhG?>=XRwcvtD9(q!Y{r~;B@)}uztPc64y|1KVR8OriozHn z)8hwfeCq?E{^ELeWWJ^r!^E(EUV;u}_rDNC_v1Z*1{1N^25jiT#dv-m$xeN`2C`o5 ztu_7o_}Vf7_dR^<pQAnS`ZB8{%fhgjeoJ2;i<^OH)C_Pkw7+(<%N+(}#S0u3)}3RA zUnn_Ke`udulq3+S?kfWnd-E1Jv$9LfxHlR^AAw5@91=kSQml*MeagQ^Da*tPY_QBF zU@sgoh^lwSu-$XjfbHki2bT3r`0qo#6KaEdS;pk*8eMeY5(<}YUks*p77WR9U7UtJ z8)K&<<W(`&mqU+u)HZ>OQV!*34|erzCRB9l0RMzCnupaRnAX3@@|uYb=HLS*)AKQj z471(fgw!80Xb)HeA7NY-H?OeJ5dCWaV9O`<c@1-Bo#GT*((p1NfEOlkh^Q`5tV}Td zm3f;2=7l3@?Kd9TLrRU^s^OpgDEygcCeaSwgH@Jk7Ie0W*Eg=(jg#l4;OSOzR`qEE z$WfmdWG7u?iiH6L5^i-T=XLRRK*#XIKW^dxG6FUXIX%=)0%-z(Jq8#sqYSuVDg-<~ zU~PLki86K#^hAVkuIPuslYsaS63Q*&G55TpnpOE6?JZEtIT{c+x${}(gXTPBAo0Ai z3p)R1II+4=S<i7@v3bzdgYHB8F+n(BCJ(>6sW3i7CO`jyJ}@g%mRoi`u5?49%u?8z z*wuR~UY)$y@tB*}16kcUwLUQr@i&@R0FdzXsCOhVdLmAQ$X=As@jFP5DhME6B$1W? z<V#Q?%0=%M8{!L?C_%Fc%<cdKV0Ho+a*$f@t&w`cSN^*LIpS}YFyHbW@j&JfgpWL< zs9Pprjhjd0+9{xENQ$m4l#%x*NY45>fl*u`_8LC`?TXh2%1&f#$P|%&;Vk+`@MBe3 z8Qh6mCrdvo6+W7X*~6RmK^@`zSMk1PQAZ$Y6$Bsz=91uC0yp+_jjd*gP7qXl^N&iN zUUy%A(%*;01Rj`gfHr_P$kOTRBrqphDOPo1R3b58)~pPAQoG0@D-dq6m#ACmmFAxJ zhS?W@R~O|S3ATAU9a<l7P6vWMMs21&F%XnBG0p@`SKM-y6}Hs<AQkN5`HzYw?ZCaB zfTC$Z_l?w7o=x#GL`ivIa3csEf~C-B_h9(Hg-&4+3J(H#XoHn_0(D5HL%!$`rR9r) z<kQo*%|f`TQ}kB=J5ws#=;L_OFKim2_XO6AGEBluLBcdfc&{IeBvUg2=#Oy@exXf1 z`b%y?*?YF83n<0+Ul!|66m6sI3Iach-a~jQiBS#{oJlHgE+!m311bl6IEC04_#@)q zaE$u{Apwg17HnXcd#h;{f@}_I?<mF_egyjWtA({!l=_s&xuqcUHvP||c77D2>J4%C z*4$YrnqWll{)2AG5Cc6S?N@84*z9acnj%<vZhZds=~^3mX=i`@@#0n3hhiK4AhsOK zgFroxzu3U?5`28Xm#bo#!S(R999f)84VHRkt8HM(by#_Ta=oepX+^1v0Pgc!9=VA= zaQ-{0KKFqAf&+*vh*yG-38_e93{6f1os?q*AzDuVh!wcySjk2KoqBMwv8Ao+^*wgv z4M1oRB$gmj6gYu#zT3JpbT|<~i>4RzOM3pTkVjeet`T{_Zj+naU>T1CG+u&Pp^fPG zIU%0>HrSm@LZHV_`XP3K;Tyh72@nus1dlMK<#DO!O;rm8*1z1?`NNnH(cny_>W&k( zh4|p~CD|_te-#SVEQzI@Ql`FT%^C=FRNINP-!a|YN#$kCljlFF7YW6-XcF+8_4OR0 zCk+fY=pb$R8sMIUJyVGP1?PbZT2PI><Ol>{cUYp_4K{(dz-X%H=36UIE{J5N+Af*L zLssQW6^R?jz$(sQIZH7WpcL5Hq38yHje&c}eh3FIsX+dVEq8bl_Tl;s4G4$wg8@RI z`js0XQ$#DD8*bP>`UWbX3bYDFzoEgn!5E;$QH{45_MN5?qQ6(?e5!dpc|nLOL=-CO z!_`Sa5mBX|T7+F8fQiK^m`8*zYAWXG>aDV-l`<+NfJT@Ag{k5XM|y4d(Q-@pbUeMH ztOgc9Y2`P;K&4dylH@BR)RTv^)1S8n2n_r6*JA2|@o6*%nc`!WXfCsW*alH2b}iJ- zYe3T1=2TS6!y6kwE#@w#d5W@RrH_^FEW=?O=}35#pRr;plnmdIL)&AFS&&AWi-QTQ ziJ>r}*~9f)C6|%b(t)hGd$1<dI|!IP07z-`a?3t-sva?PiIIwr80qP$fqIYwD@uSE z!OqK|8WSKXL;+T7Kaqn5-25{B$UYOn(6^z4RGvvJv?=fM>j(g*jQ_#1uVKA1Ic7Rr zA!doHBS1CeQ`m~X26%)6IMN+7HPR_Dx*nLxQJW&TK5M3oK<m4ERKa=)>YR*kvfh0F zGA<y78QWOaY9!uXyoYl2`=6$_+aNY5#?$WcBgh|S%Le4)#hZ>)YPLj;<sv)<I^h=f zjQEev*wcd}9X4+KU7z=|=wpR{C!Hr*!!ttyt)KMMIDAXR=cRBO3@yWr=aa07#1a&5 zV2d(#q_Ak0Hk^1OZNM^FRwW)XW>LW-0jKtUQUcVGcq(+ksW&|v4ac!_W|JbM$Xf(m zIaI*C*<Mix($sM#u{JxK{_Cc8O=yGwoX;5Q>!>}h1#`9hT!9i5MImq{GcL3UHWCbS z4rPf7jd7yK6_i9m5EhlK<IfZeSUPW`ZQ)X#wQS>c;S7JDP0m_A*#F{S4zo%Pm6FOJ zH!MBeX{*fMjv>v;ii(P9h-I4=UeX8+g3bFE8{$tkz#`McHE_<vo2uTtu^(1GRyok} z;(~JJJ3t>}!8r2GXs7|v_jtkw@#x<N4CSFe(F7U}VKDL3UGVkBBWWB4^e)1su(qD- z!z9E}<;HU}$RvyuitF`ziKb<#pS?|0l`6__!s8xR<QF~anmzKMbwFu%>k7o?MTvV< z&jfp!huX|x`=0XFFpPds|7eDQO3}l2qidGe3c|MeSX91zdJ5Nsr6n%*sKBO7+=~Ud zn!#YfdHO}8subxj2)H6r`l$I>5ID2O55Buh<g}x{e|Up+=tIjB$m4@gXc|seGlh$W z=s7(qbHuoRxm@<a-6%NanDfX;ztL}lF%$V<6-iGmT@kL^)XtG`vr@FUU97#OPXP$T zPpEgMzlw7`(adL@hM6b))Z~_8fA;=UlqRw2PD5bOfb}I{HY&Ih$?Ki)w7)S8Qk6WT z0o+`B1}zf(`n6`}fU2N;u4TiroG`E@wj1cd)!QW3b*)8L(Z&6>Oi&XIhO~4C-4gH` zq#g&ENT7o9yGSA%n~nhs{^^jO_-ip!&i4Ww4mjGZK(8K<y3VScj5JKSDIiW$z70WG zlg(8cA8NPjsV<_9Hiq7;&6|zq^))EYK8lZe10UZiauM^?n1ncVBLv#;)%ofZ)=HX4 z&$Vh}RM=qe#3ZJ|ney-WyWGota%w7k?SWX<0xw4CkeWDB;K5`5_-Jp<5jR1VJY;1o z@zEk41r*JKc#bLS$)`p6Iy(degThD1roMD;^UD{5^M@WqS**i6lvy@6sLN~L5kA%q zibDwL-_=~1(wN4IUh9fJR1I8YJmk@d<$v>m6{S74x>l<vOe|ketP}!hBIHV7jDt^8 z*f3Y~n;Z-(66<G*W4eN<K%-X2`?pYS-F2v_H5&n`?0>S?VI~PYp&RQ4|K(LwPF$%? z*77T#pDuz?Ea!r!yELdRR-;7*K^!GZ))tAIS4Lf1mu$`Aq`J<TwldMdeqxb#T)p=h z7xh9%*JFzW^poxZa6Y%L7;dQpQ+v0pmO0D?mJ&|drQ}S<NlA?IFPlumb{9&awhwdE zL)`Ki#gbimte30h77Ju>2XUg{NT31*G?h_`lDfMFR=3GlAkP{qa#zO{7#w3}yn#j7 zSu%`}73Hw5_b`^U|4E<P*7>u-BkF^3;6cXkXf+*St-M3;!5O2+WLsPwu{&K9c140E z*^y+ytU~Rhc=wBA)pcnUx-_a^3SBi;pFfa_DiVd9R7F@JC{?bro<Bx9Sbko1v5VM< zuj)*$mj`{IHQp*hiW$utN>p`Ql(#Xb<WKx*z;evHVzM~#5`(H^CtK&YyK!7Eixyx? zz;oh~g|e$-EIeF{^|>sVe_dOO<+f!oYD%vr=<F>{W3;EPXmqR&%~@ACEJl%qbhs&9 zWOiFm>)?9odJ5U!j0s6u*$@~^S9L@o@M}ltQUbqovsfQ7G#+3^lBk9T$ZeIKo`Nk% zpmIZy{*2BvZI~A>ay}>oq<QRH<u#&?C;&c?Mie>o?gPW7MxHY4nK3hom@i-A7JEtt z)_POOi268wMIT)7InG#b0PmOv{#>*<wq19VzTfG#+<}S5@%(rg-dbIBoq$0EN<Dz= zY97rPk}sa`j<TKIe-EC((y7$X1;%G{SIq1=gb$kGduiSPIeNgA`_@q0r8nPl^Lo%Q zY@V<3rZUSA8PF16)x*}}W_yt!Id1?rwmXl9&_9$?kjhh$LhgofSGwG&BmvgcN78H( zs_&VGsN1F0bd`TQ@?=Iib-F5OLr5!pODD_!-B(|6kWw}U`lyu2%Rq#yD&mb!C1T0P z;CzLu$ko-2PZa>b+qC0v%}N@b6L{WqgAgkh(Z}BlRgCaJze@GCjIt_Y$<9($E{i3{ zpLHQCSRYZ$4taEf*VGg1&<Xp=tMbvqNSI%Q_BnOfjEElXdYG?-Zr^M4Bx=!cn!OLb z`-yi^kaA;Ufe6E?kI%0*c8fdNrq6?{Ul^P~x)_8w3gpkz9CN|YyMWiB0@4s$Oy#TW z({A{D_%GND@U7}pa*_YJMlHQ53oUoE_J~Fa(q0YrH!`#kKM-<!(U6$mW+^?Kb6Izp zFYLQf;E79y=j<^Uc*~q?%L~;@s!?;n3%r{_nwd>|B;z>C-bW}iUQhgqdl*#(H`PDx z7G8Lgv4Son;)VfMyq=4{zHwvxkltY?A^{~>PG=GyGGN*AM*JJg)MP~~s%{Oc_DsZS z6K0n|Do;^voh@Qwr-4wdWK{x9)A*}`=?5-WUMhXv!1Au>`(U)9v7{ZnEt^ig)@uI= zarkP+0E?QX3_DHKkiN~&Wll1N&8oy4E2o6|Q>|Q?7h=UnYwodOpXs7aQXX(Tb!|pD z#~9vm)>{vuLe*Bs=Ufj=t3H+{Ni%m&v{Y7%Yid~QvC*BIH{TPNGu&0JX@T*(<7rWO z`h@IRH;(MTzyuQ#l4C*V=`?a~RKxhfm86-!kD1~1?#zUtBL%MgY4wT<EeBq2>eYK5 zzy^AVt7a$T-8~>hj1cP$4eG;5T`<O;L9NxD)fyE~q4ZSaoOn(JSFw<TbU)l3n=R1d z-tdkVcCaJeWxms^`dJhbM@i{S1n=-_7@$mu=W!$Le99MaYEC<axwWnd?zuu0ZIRlI zoa#mYi@%ZAb5Ulf7?47cyj78@#YVE|@l{$~U#YZ3-mlEh%i>SF^1-I(cB7vf><COp zg7|ll+k{qI8LVNZ6}d`wraV&GB?lH)i7m>sXTh4XXkvkbwNOI6?eD!GTlAgxXXUsg zB5=q*s04@RPHO3lM4oCrXHPWnMM2$L6DX-2%oXA~g_?1><ZY_UCCej@qU4ZgqffM# zxV>8r`OM1BS;Ul|(J$@&MIE3j+*R&th9S?-V?Z4d!A!R~qOCSnqoT%*$pP<pK)wV% zIU-LtU0IMWbEeBE<S(boY}T~dD?12$w048jOnl+Z5K{@c&AJt0o(6AWm*a_u-NA`} zYsEe`T2=m%wUq(}k9LT}t&lF^837fjDQxY_2F(RXwg@z}jep!#j9aj&)7YRe@!P?! zg)>)BJ-3tP6q)+H@a21wec@xlKD)w`Tbvv5r6@ADNYl&nM+FIsmXpX0leXuXA}A$V zk{~(y_H>{axu1&`_o26Y671Z4F;A5vQp)$P&BIfiQhHw*K;Tep7jPx*2Ndj;L9OFP zNNxI8qK~lM4B8M;Hg_TfRhzO0D7F^m7coYsBZ+i<GDXv<b+Ms}M#8oRNi+n-RC%`1 zk1NCmvs6;r6Z}LLfcrDT8cfjk>s_d^1-^oQcwbNw$?jg(>aGzfcGz0%vh{*;)WPF_ z$TYiw)*MwYBov3>b7qr2+7~X7Y)@jp$Z%H@Y3@ckTt|3&3JR#RTz%aio~?`e=H})! zUrT0fyACSqC3HR)(>a8wFv)OrVxdS8_3P=tqUc~49)l+@(VeO?S6QjC<#$af;$@+$ zx#?@VLs!PbBRS8u<>Cg0-NP)|tcp-|vc`%9R|#XupIw1Ut<n~(t)bgLg$A$R>!-UP z;l)6DV?Xskm!JhTXh;NO>*<0uzX@UF<--xT&J<MAsu23TNyr9}{V%ztYP-eQ&6p8? zpk##jBqZ%tM_69tc4bp9)2d%mU7PpvlQEdJfC71PxmtGN-kR`ga`j_}=K!nOL$})< zn6o{wQfv~F0=`F1o9VS<K~WQ=J6l}Q6Fpd~s<E`$s_UQ(wW9b&7}|C!C6^x7z*H<b zQrK<3{x_7s`7(jQ2Lu4X7a9Nn@Bh2ZcK9!|lOh#s+YMHPUuh>lxo)8n60xZzmVR|g zF&rAcdEg*TgnLN7SYnkj8f*lm!N}VUXZP9ET8RF4Z0tzK!Pdhjj&snpEw7Jb%>zgZ zs!NT6Rz24Q1MJ+?(&XRxkra1-x=|C!hogw8TV&|DQ9MvHw3OD-Ioqd~8~1QYIn{p( zgAnaqJwncD1`!5M{1PG$Bk70{(<vwiELw+{A|hj0!tyE&>HFjYZyti=g7)f2XbqW( zN%P`{A?n@38i6-iBImi!wh_>16G#6NwOS`8qQuzLwMnC5^XGk_G(^QSD{J#WP$Z?B zw+@dKDzZ{EQNz&tAZ;#f4K?;A0tP4j9!s|81AS@lziy3C-n(5%eYn#Qr>bp==eC&J zbGGsr@{3ts0*5wTXV5+nKRMM`3BopWiYj~RNcZrvNtS2)AD)NMCJa3du)tbBACHa) zl-!1N1eX8kO*0~VmYS!B*!s1t^4K>xzA(BpfR5&io7&<9_9JTSk>$0c`{KDrNifAy ze(fN7Oiug*1dJ((zF81VAQD0{SsmU^?XgEko_&0I0Ejo=2mI4fki9?1?>=^mWMP4< z2)4HQ9dCd8cHPygvP%@@X+yeY$<|rF4`j?Nv#8Lj`0U7~9TuzOyihkH`=_)vUfgm6 zAPi@Zm}=jc1q`ZN=7z_sJBPy#;!w-C`)|+j;mh0Ea^UQT8&3vqxi}Wnbiw}5TS*G~ zMw6HSIuF2}+1&L>pBU;=c&-#5`8t?jTK?|k7AG4(!a_0mF;fVd!P92+nJ}>7l<yAB zW!F$&-A|DjxLo))iMonDfW`fc7^X-BQ{zAN`Us40rvyy_BnL5@*Kv{S4;R|YA%$bW zZT;QPUa$DvP`F(9d8!;4`1SdPNN|vWGCChW#37vRA$L&j9~N2*t|FAjdzd;@m1_l{ zQ2IJK0rDYKlwb@$hId4CcS@iH8vYD7Zk*D=<=LgSA%<v5kt~t=kh!+=$a%L7^hz=A z#_@^tz3$5XF*%C7!t)6iXL(VBbXG!fO{JrW`kD$jI9pZl0emZRGyl|<!oqE(Wb4yR zoHR1LGtJom+7@P%W;2h9KK?6Ih<VW2yaGP=-&`rp5NT$VfeQtw)2cn~`OFOtD5lVZ zLV;NxX9#H?iClyv8RGQu`ru`%?@B6@F6Y>@jOHmpYj{Lj$|$d_0e~}B&}Qf*PO#wV zhCs`~h9nWI6_pvw!cKwV+w5T-QXpH8<z;?0h*ssE3Y{sWBJI7{7Y}|UGpB#`6G`tT zTqcHmA!g?U1k(hV|A3@;j|`g+1ou~tuR_Ldm5w;Mj$2j@JQ{b+@CAq!Z1v>=z^uAa znS@KonNCh(`Fh{x+ReB`j{hjupMY%*Hrh){Jjl<VgpVjk2frNf*F8NN^>R<y;J~$V zre+8HIt=B|^jUW~K?}!3*^G6s5B#*ea-ORH6g@Z@fxD+Xy(2E@&%^naQ(=e4gw#Gf zk<R+nbjr0Dkcm!Mbu&nP=v6vlYiJW~T$7T<pJsE6wnX;;{3j0AaD!wz^xLw&e-GjR zw{<zW+Zq2?EFpJvpTz(ljL^*oYJe8b!ZF4vL2GIdt6ms<@a{mdidI}xqnYvOw>O*h zne+B!25M&eO3V|dHzAo8o`_KaRi4eB+v(OhdJ9TzTxwD=-Nl`a<|>zUcHT>rzh2L# z&ERO!HyKtRNV_65bWG`P9wKYegh76728uncXp^IA5+=3iKBU>dd@#;wRAwF!Ur06n zo<YCr(hqDzu7*@LB$?`m^jg?`Se<Y16Gujz@=#+t+f?Xx2CjXm^LAV<va-U#<8HwJ zEP?_6-DBYI$FKb!-2W_sp{=#GzKzlUitjrAV}KjLhY@zo=^qy$6voa~xS8!LC)B_f z28yD`ari(YGrYKZ^W|Mrl`sQtk%f+Xid0}+J3r~}kA+$a0kQ+Kg+bt=Y^jD~dQ#!R zT33`VrYQ-e^Yiu*c4hb3MHMA^tAB_Zu(q@vFXhaKpMzb{1-Dd;m~cT^0nyXuifH(J z1^v(KbN8bK(g6biNJ9bu{Q19MU*F1H|G$1-m$Ibo20cvohpHVe)P|Ws<q7~h%*DS8 zdc78AdK68W#<h5|G3|!@AMeG1=1lPA1ur?mxKA;k!cvV0G|FP98ubDP%A!~(wGGI! zJ)gfn>*l1drbJQs>#5}BA2QJXtVL#;{T0|TLM7mu8VuTr0V`HL0Qy&vIPy+_*R`eU zf(7K|X0YeC73k^3Le~w-Ag@FApHtX?dwwO}l5HUxVrF5*NF0Qy2cD}qbIo}(ZRc3U z3ouiaZFAKA_G0@+fc8iS_pfHlFLjQ3JSv<dPV_kGvIY+E2eM?=QgJK8KY?U!Eg`Vi zEeS`$RK8)JlTB7(3Vc{1N?3A?M_#g)!wlw=Q0&y6u<v}a3g5&&3ZOv7sp?e3pfl}^ z6q*ka<qC|EP?lj8j^um(v<GSkJxsxhV(pY*_oxOwDcsK89>T_ZjPwChqx|V&>k(uT zm1Og@F3{#Pb=-_nq3xduR{GJ+c7I$%aS1tfIjtBa+;(Xfd6TyLO(66+Zxsx;rI;Q+ zLg6CH@};w+hoBj1%wxt)QizyHQ^AQHX>Tb!=P-bi52g^cmSO*}JqCdWhTJ>BOt_qE ziOV7vpAP-Wntrq*^EpcbTbhes63v|{T%4M7nQ}v4sEh9vmt=bN&c)t$EZx>wJenWk zP#q<8F`AKutUFz_vqEMPl&IIX-JgC@^0bMFNaB$0bl4~0mee{eQ*-3u7;BX|kgeX^ zD`<#mkd&BsbImsji8kz?L<()-AnF%fYfEz#EeS)0tkTSfW<$Ab$Kb2K>{m*^FMu_1 zQ+Rn&-{L;>*w-h`Zkcyq^})|%eLwy2CB`M@eW{@Zx!mH0z)Q~xoRk^TcuWnaSc#6> z8>aYNSZezNj!obGR+~j3RY($h$P02{F4?}w>loR4Ytu9pkPM3}t*ZPWmj2P?mr^&R zdTa1g4aQqjgIgaz0z{{9oU?>E0B4N9N>V69C;34Lf9LTwY-Ss3I#ZUm4V8V(yvAlA znoitW7f47vQItTN1xh@(%Ah(sx!V(BY-B5HA>>X|+4r~7?9?pR)0+s{3V{r2$G*nP zG8Fe)&)fd#Q`q-^YZLyn##-^n001|9|Hqj3Kih<Xk-4LjuCeKVnT}U+S~_n2b=Wyk z-7R$x%ciLI7PqEs&v0aKzAUv^xu|baw>1i$AYdS>{!1LQD~45a-BZ$WhtC&Ke{p^s zC<JsWQZQ%h$BzKPgWaBIZ5fAl<&(o^+)hEoVC2=JS@r!Ow?rbjm!@y1YYiv3#7YPe zuw=2(;%O1W3P4xEGeD+t)zOTnHuG|YGZT{i5OihR;nkYvcN*v1k-$ArcToJKta&eK zrdH-^kMf(`A=`C^`#NB^bCTt=bJEp1W+`mq+A-llyDq33#dP@^Yi$>-u6i=ieDwn9 zX-%UTpn)Ag;YO4zYWSMB{^;(T35T7+hn=)#o=yPogon@Z$OT+|XJ7^xD&T-3ykS+5 zB~9E<a)0)Bvr*b*#FN;tNh8T?g7F;C%DE|gzX3H+7k=<D+W#NW65b#bM9P}+M>E$V z*SZRe?LD_@?^1HG`Dl5_8Qj`G-mU)ST3CvG8DUk`(Qm}5U+^hftfi=vV#ph`Fvww^ z{+VzoM%A=rM|VSV4kz75500+kqq95OFB}RJ;`jm$a==B44{lc*9vN+^`1q2Cmo&b< z_z)*{@DD->O&46}jw<Y>ukx%>Eh_L1u$N9hNadB}_J#N<uNch6A<*ETcVR+*I|Y^= zVf1f1xd<cCx`tczgS!1(XQoMuy%%nJPGHn^A&q?GWgPpk^e7IdT$~{+_i|?<8g|;h z^U(O^a(?yF8*uoD?kUD`!i?W8&K+Zxu2MiX&KbahhfFfrze<qOrtk{y@N*!2sX3Ux za#*McR{%xt6bl9j#+cs&Z#j>5AmPQZvz?ZIzD?DRh^XxRgh!wO9L=TbSOh_n9+#}+ z3W71hXM;Kt{R(I7#qUy95p08e_c0O6h~cB)q^cfKzN3N3I!xB}T@M;bzf`J9T`EEC zV+u2gsXO5flcAfNoajl$B1q>Sg3Ol-j>yloAWXP~3aK-Z(&8h5OoXR<>jQz5!08WR zKd^guXZ#O@dIRw%`FqhCL5KiO$7hj)nWresdO1KM*z_6i$@$(j8oMUd<mN@w8!TL` zTKBG<><#jUo3i$o5zpbiLDs?P8HEHVUVR26l}>PM-QcMxqG6G!?Vc^)p$X+GKIPy| zFT=xt_4YScgz5wleaX)S$7D%rWW^8ssZn%2x8^JAJFC^#agxU3rjgOO6res`RJ|tL zT_dyxKzBGg2Wf$BKzI|c%$LFdN%0{~PkYq2TSAMC-q5Uwp;r~5-QxBDls1)IH%SK8 z=I03vH^uaPTru?QVKHzI*LOqkYAI+{>@}TB26f;kYLSCd+vDWmwvji<c|^z=fzez2 zZX_`3H~JJS<8&nvL0Kx?x7~^sk17O1eI>02%{==KV3c)Kbz6t=Aa!hMh@xsJ$pv|d zrPDVe8Ivf$Ic|iJ#PjlA(l(yRRkWf}*4gn#RhMzWHc9bHH9Sl(t@FUsix$3l>g{xl zhj34l$+OrN$zXL&D4n8bCykUFtOMO-Xq$ms2Msk;Oz=UdkX2Lz$X&kjE=6uW|I*BR z1>17~wX*uOS8-&%cU7gEfe7%gU-i4moVH%*2$;t2HSkxAB@ZCXI>Al&7oB>`ONu9c z6LuALzq3Chm_ml-O%vRJ3>cms8$N>j|C%C!hG2#bxaoyxgyR&6GD%8-@qIP9{L#+> zLlq`t0(lVQj5sNX0y3AF&(JbLu%NJ|A+-AyWNmrd%?^gpdy>I8h>l_3*(I`Jsz0Cr zxk_rtO^mZDf^kzl5adv<L4MS9wvz0u^$B(Z3**>0tg=83B0$j8d%%NoF5&K@7+|UT zpegYW4409D;y1lx;M5u+3Tg>Xw?2azHTyM*v;$_!O20*C01p+sw>YP{HAATyPtF@| zL3Xs`LJG1fr=sd5>ZVlxVtc9qXsak({rZrBi3s}+@xTZU7Ex;+Q{PUk31k2(6XinP zh|Cy_Wo|quz8+_2o-l08h3E)r<ZPoO>d^!6(9G+*7h^JjuEW<T7<2H9Cz?^oTCXKy zF}qo=uRwTV)SK~5`eUf|>wVb3=O?BskkOqUK3!pFLEi6=;ddIhOv@*z7;orwI+HAp z{A%-^1BD7U59BO@zE0*f8`=@mWKfAbdi42bEKn~(AY(#;`|Kp377I#qVhepjfvsp> zU)1{CMo^ZGVJ_#878-cmJcjD>e21a~0a#>J3zLo&iC-25LzT571b;$FU?%IC=X^g8 zuDXI@?$aWVtGkZ;T%wXCigVX&p>EmIPB!lkxDU?}e6EACPV>)!po@B}R);!bQs{hN z2|T^;_CA-6Wbu5abaZrn4YKMFo^iSJBaVnbyE-YZZ|$OT`i-#UX@HWx7%t$WL*!}> z?5M!%*Yw@a9Ojy){meLMv#&85V>&<pEG*@j(w}YLFg>5}W_~Ty-JbHS?a_Ptxoc0~ zdWKd%kM|d1PLf^SD-@8LPXuN1yQ(}GsF9B&_heS-u*3D6KUVEl6{fA?z-31xu@xjp z*SqEm|Hx74>z~8zF5*x6rAEGwg`~rbXY-*8!Pcr;TdD&G&5`_+uM=*n7Oc)`uj^0? z;tX2^2*vGRpxBlV{{?LOH)@h65huP*g<Q@Iz>TOB<6Y}Yl?Z4Im?}^c`+kKCC%fvs z%{H3z)PNcKDDl`YY8bIQe#yuDqGuI5rC7n9ehQ$%MjrgfyLXn*A7}M%3l5FQ;+VLY z>a5M}aV?quze;h^YH{#JkaMa;tSGot>S;H@t|^R*H|Q1@neJEUg=-8CFNiy#4_ajj zty@*nEl~_oNu@z@B+s9Aax)BUPgd6>6?H{AUC}0@4yn8aK)jcmIu^AJ=Ot}J!qVCR zoZ!>W+*~9BcrmN)3?t105ZW#Bl8l31XIo~tC_L4kxr+DC8)Ac&Fm`?3<6Ve3g{&TL zPmjCnDOp26D<wpA_c=5}B;!9JQS5a@cC5_wf-}f6DB`$hLRb^3Xw=Yw3rh+GbYDwq zb;X1P10>;%Qgv7y8v21h8Ng)RnvCzLwX#I{?pUYa>8uA^?{CaCwCmTY=J2VoRiW0f zr>J%~)CFqCB6`shp`iqJt2SxFMQ+GTFzUjeb+KQ-Se)E_5omLWkhAILA0b6%mdwiq zp|^+_%IR>tY<cl>_C<FsecY_&rJ8*-qJZLsS&@4fruLGPMf;b$;T`l}d4Ofz&TAIK z6rO3eZ+4T-&fSiVm9`6Jzd2Qap#iDXXsuv!h6nJu3xw$(WRki^ZCK)_7@lguGQQdH zU_G6mx7Yhy8%*ecL5~Pk1TC!CF;EiC?CaoFGxIk;w{2<Y2Z1@DuKR7-KUV+&l-<A; zJA#)5+a$D6KKPoseOz>k=s7j5M-;XmFmEZH6NOYr&>~t_QD^IdqF@{RgluEkNXOR) zI5%wgEtXitI%ty#@%2qK4v^V06sI`0^?&|#b4B1p8XPVz#%>vFgnl;g4Y8FC1g98> z7jt-Bxrqd&6gfcb8&g2BqhfPJu>vJL^T(SGJs~_D4a|x%%@kZDzVjWOb1cgTG$1J- z4k}j7x-R3I8)LE&H<w#ItH{Rh&GC56KI?lpG4W2;!+h*BFl93=P;3%!q=FQvCCZD} zh|1luQ4oy*F;9^Pvg?*vI26mq74`51UX(N>k-JS<^0en1F)o;W9%A4DiscIPfnCzw z?}wPKArXX8S)MTm+7wX3V!6efq<CX=x&5GPo#-x<+?}B8Jik>_etSIioUt_bM&+T0 zQ;QURc#+!>2Fo)!#?^=H$g=4(tj2Z-8hR=;d$(U`)*2DWAPp-)h}?fZV8&@>0vP?O z{Z!&+NEy032&?7w?|$yzPLR>eMaWF_amk{4)b%I7o7~Q0j!78RIt}|U9&Ge@y}52a znstX)js&R1HR+IH;rEgwEa}*}a{^i2+w0BznM*mcoD7XYYCzJ~-w6JdkMH7-<i?`I zGV6o@`Y|pK<PapyTpXZpavd@Bny~`gg2fe=8LOi>uxENoi5nb+)@i>nUH9w0Lf;5h zEV4y=8@Jg4q)e26QMrKzjwm3CbVv0YC2~3e6D^YalNrvb;~EyQM>al;&H({+j4R5Y z?1wnGWxeS+>E{u62h$54x3s&#=80};)Q2V*XCFdtP>?tf<|9^Lyfu5ImbV7N3XwR$ z_H;5XuZreUSQx=_CVEV=LnKnOL^Zjx*Nl)#=*U1~u~RqsMVw)Uo`~rugNcDW_!|-m z%|&-E7K3vt8+UjyA=ctUY&&c!83Fu~IXjDAQ_YGNZ%~<D9)DBnMI#E6X|{A0A*!VM ztG-){NInq6rW;LuPAH*+s`qw!uA8nREp?qYkIkIc+%@;wP6)RjE>MEd4>*MGu8)p} zd~-}sa%g9EygOgdwnTfH8r=*iDO-=Jv}Rde(E@+u1MK&{^#rxt4PXONBAKp(cH}nh zzhPKpPlU5<|8{3#e@;l8s8+N%VEd+;G>+m{f&-btl;25|`I=Te2w|k1LYF`T!fCvf zv)`(pJj<<|pL%6#Sf*bOVk-DX8Enlw_FnvP$C|^|F-B_W&;F%@>jWEnx1;oXOVV1n z(*^#-H3&-1G}XrJb2}zM51lMouq@E%si>ps6%n|!ABh6;JA|(^_c9b6A;M$e3s4D` zHKn?iePnTzi<azeT77}uG#<lpGP@~})42!tzq;5hw<xcib*K%8|6>p4fE~d6o4jeI zSZG>+=s3`10*i$PNeRA3qpv8DdcmpfstmZ<7}n}EkYof4YudI13D-i%0jgqyT5;Jc zJeNa{St*u_3<l}nzQuPh07x?|;itV|WHJPoTS!2~jiw?LG1B&r{WSsuOJmrXXuAyM zJaURY)P&qZJdW*GZ8OJJ?UAr@jur>SLFZX?r7Mf1Z9h*R^EV}!IEI3}<!ig7PRCPd zsEIwm0MhYd;MbeXEe8)&P=v&-sD|I;=FWszXO*XZqqr;drS^pJcWN~IQj`+He&-vq z+DiSgh>K5gXU65EccnGaL~WBN&6^85r27lEQhx0qfKW3i9Z_8QHTdJFX7fk)NKK=k z)JMo8&$ao5gRU<Vq-;nt7Lg|COJ7=uTcxq_qyQ(Un0-(h`eZ%Su_AJ4V_21Fn|9f? zrMS35V~uN|G#V^_KU3bog%X*`g5)c}1pj{V{JrD*cy|M22;)-K$m`nn@9IIeINx%U zfKtYL*pU=qGxo{fU~e8}V_u>9t#pi~hpwSYo&uN2cc=X~7IEl!CMLpGr^Err2bRdf zsA1<8PN#dn%zYng=EJA7H*xjy*Xm`FmS=sdpdY)yJ0_&qtXN8<272fBs<6KiN=X|= z4o~Q4UzYvfTQbdej5q1rKgiX7I;F$|-=Odh?4JqLL19)T!m_vQw=Yb)+0ffNclSd` z`SM6pYc{JFM7Es~aVdxfiLg%SdR0CA`5B*cDltv6e~L}CuwVXETFMH7@2cjM{SpI4 z3cObjog}{~7kBV?w<e=_KKxHCM=Z<gpcVw|dE5x6AO8t#k9cnHswyfqButS%6;;?< zkQ9XW-vR`zz!}8Ma+XMU1X2c#DyS^mlc=e#&0<D*BxtJubJOYp7z!EhAOJnh^GDoq zgh*qF!)HVYpp!BwDKFe+gPqPHJg?CpbfLAp(m&?n649(MRlKi)QQP##(D^2v;9+!= zXBWrVhPp}~^H|cV4!eCx^d*0;`*YzDOTenhc|$$?f%}PWrxc6xp90n%2O6_w>j4h# z|CW&$!CcKjqrvHnG&eH69+^+UjzxxLg<ydY&8&J1^Eh)E983~lT)grqWUu``yp4l; z57GxX4wtE15@VGW<nXQsdX~{0a$(HfdFbF$0t{sV!?9IcR5sJy@qWslra*fBe*K2X zo0W?~Po|FSaVWYtAsxBd3sC`|lhW3j)eLh+wp$6|Qf9?w=&WJi_MaK5;u_-sK<(-z zmkKqcZaL3RaIp7tmVg>2(us2<E&;hEuB@ZoD5Z*vJ)C975ej_#+K2RHA8pK{0<<P5 zl-D&CTg%hZ+A`W!?Z^NGNnEgB2r18V<s<0=X7pZAPr|4>Chzg6<(bxMr8VmYP204B zs@edauINlL-=3Qbsjws=oj$|6w{c?qD>wY-ef4I|tsg9=)pK`n5DW8+9kj5adsgTS zBeS%of&3dg^0TcIrvwS&6AfUqC7WA{z=83Ix!)-Ftk8vst+0`=_YT~x9~<Cu2IIaI zr$msuNsR(mA+~8Q@>XC#TW5*9H1QAqAgJ2uPn(-;Ea1S+8D&_8eWd{f9VB}BbTW^I zMG<)!bTYn}8gh!MEZ-ccSw1O5fP9qPRAGFy6SUea8TjMU{TnddX(3=PZ>$ewdhY{h z;IVYMJ8hD#4`x|1Z2^~anuw^_d2tyL@LlW9bdlW5R^@FtL^$y4QMr%k6n3xi>(O|5 z@3y}_c0OHrHw{&RR9);}85s6&(vk3D+Uvm@xcjlY+0SQC>y(n@(tr2lDlC$5edh{@ z7I(v-;tk{EM)vIwT3DFyOf<(}%qqb?3W!H+u@(u62y2&5Zy9(xI@vuU0*~ZSzZPeB zeXW^2&0T|0yL7Dk<(^C}Xr))-(&OvDKK&SzJX{LJteMVf|BbG53bG_>({<Ul)rH+< z+vu`w+qSEVUAAr8wr$(CPtBY-7xTxN>wS?Cdu8TY`Mr2pG0_4DZhh?ywAnDeizjHh zZ*Qfmxw9ve7Qg?aWp7|%r1kwL*Om37-2R7Z`#;Bd4tCZ*<Gjdt>4<fDq~Pl>bRh{b zkj5My+6TFl#s;h3JP8J9o)@9`l7fWx{dM1+zgF!nP?Hu#>X`4l(oBsOHTOZ7$3n2s z+~w1|lG~7n8<aWL10VD<&R|%A5$4PbxpdJgnRwjbW+4nm`q6F-w_XF5^l1Va-<DI9 z(L|)@JW~#z#ov!y+yH*VCiSED%}kudI6-!TW;KbieKeR+ZgHl@cwnHBqXL!0jG&r4 zXzIIxe#0fe?NthGEWc42qiqrv>O^-O{Jpt#QAr8aOsP5B_-RU`NI_XiEWOcgQX$-L zchnq;8xZ5nAZP0d6O7ZK#>LAAx`8u~LM2DVj6>ktO^FG#0=ZF&A{aQ}qqn<{XxW|r zL8o9cg?8-h#h-8eYD6tyuG&O0ugz|DJd2FK%iwzopo=}jM?>BR4e8{#C)nl}#1#Um zS09r)gnBu(H{i=af_~aJGX5MGd<7*X0^ruVcgwk53T%)d4t99CTFXNi4AI)d&nERI zz+*CmkmCikD$TcVURPyqeNwb|85$h9328pwK~ve*R%wW|3}qnf%xfIm%yAw+2Y~;M z?8_xn->=h7b^b~Z>g;)F())YoGoz`qRaY9KdQ~&|_WW-c6~JPZtthKAcImiq(X%DZ zlG<I7fuT$DT@EeaVH-B>^<t{S@nkoD%J)Cz7W)iZX!oD{M(9U!`CsG~17~w9qn~@` zuY$B?KRsOMyK3mg96#od@;XyV4`T^SWgMcQz^0-RJ;0h&Pn+=d%t81mwi+TESCf^M zrDNfYAQ(rLF#(Wp%5o&jlO|>YW@KCAG((X=T1K`U_q0h=(lns1<cHGM&sf6Fd^<WG zgNhss;woMAoFBxBFty!JzIA%RnZ}fzt{*jG$DiCqMiAg3XEmM)VU=NQZ8ds1q=hC^ z!4d796(Yx`uy}dGsoVAQ_jQdiQw*5z;cG<W=d$5}wc`ToeC-*i{<Vn!*Ia_P!0!AD zJ-r3}FLyHpb6XWHB$bLUdP)F|QZ&8fdM!;KdJpmF;GI5rY158S%o)YReye5?zMtod zeB*e-*<r(Dd;rmj((qI^l;a(jBV-|M&ovCVGGm3WeNUT;R477B-zQ5k6b2iXr7ghM zCOMI46t-FnrUB3)7zr=;z!gd^B!i9_^f>s3O({=i{L+Pj>5uZvJ<P**gYJrX6)nc6 z?`e5FPD3YsSrvZWe^5h-`(GJ=z=44Hkb!`R{{I5mf3KLXp_RG8&$9ib3Zs7v8b8Y> zg%1`7Qyu<f))Rv9$&V<FARW_hp#NXR+eswgachy^-lk&WOUXa4hP*{%Ye$opm!nC$ zhPtxIM>&aOT)M<@SVd*Q<k#HTvJFfL0)BRSl`Iue%QAm54a*8p>|Y-npI;PjMPGlH z$q_OO8La`sNn2Rq$_AaL`BQ)Pnby2%3cQmLo+&KTJQ_97CD<WV&3^CW@J}{T<(PKr zgml|xL*-K=e_-bh<eMcBy7dE3?}?`k1+dAb>A5gVq?(q>t}BP$dLwkJHuk|ZLIOAa zCi6vm0?Fd#peuX3BEm~*5Q=OQ*4FCL&KRZy%NfQN3tiTrl&TMM5iCZPtz{+>_!oPp z_bG(HmqeyCM8dr{$iNt!D7>OT2oE0fH~9~0uyr%I7wplEy(|*mhJSf&%<wpRtgt9W zy<Z-CJuwD>hOqJ0Fc!}jHGWIIxstf>>}++rAlX?OAde7wzwW*M;n;5jxf}deLepHH zm{81*MBa~swjDwK_-1SNNLWePb8k^|D>>Rh;fQDfmIMw!86}Z{=iQ;OU<fRq#E2&+ z!2GL#<$N+-6HZ?=Z_;zOlElxDig_*-J;|;BVbLD+^Z6o;i&sVh)|1=}bXm!i=yB1I zD*)NuxdwOTnBu{Fu8MSZM2El=Q{n<QKeh~~;r2n<Vy>2!-kOFLZuk{m&YyCk?(!cH zRS9i!IIs4Bh4iu5TOg^Pg$XC#T3t@uGMFpqx$*JWkI65AO2N>2_HV#~@%K9Xv1I^- zgp;KkJpTDAyv=H}A(>|6zmn)fDUUV;Xg%#ahBYtkrF4Ot*nO%OA#MeIW~KeyuhNB) z)H)P&W18gR?u8WDk2jQV`DCY&8Rinh<`fFxlxndNSK`KtUay;_fD=;Txpv&ge%WX} z+IE}Yt6*a0tn=H#R+&N#-_s&X``73!hfl#2rZ5_jHlVGe*5;8KcL-O6MQbnc-ZKI} zW}J6k@mf#uHYbE+H$Kvg*HWFW%u=ZmbSiKPq0S&qjSf4Kl>zu`Y6xBgBx0x6tCz4< z8P;0Xu9QQ8m~TzZ*JnoFpCWKAN@CeuOnDr$>Y>30nki1hZ#(PeODd!IT-L3P*-Q}u zz}9hj5?#ttCYGgUe}=bd1nuhc?8$DCbW}F?C99MzD-$^`6~-fKKb>W0c575sZ5Q<~ zpDqOn;_7c<8RDMpB&D0LvOjeR|ENSA*JC-&d<@^Gd`Z+kgf9mTTchJiD567>I|yC& zuHV1NGZok1QR>0xU)pZp71p#vv2BrYlFn-{!B9^1yG9ib3;G>xOhi-f?<NuE-b3J> z_ion$Ds+0Q=jv`WNP_RJ^~dPfoBEwQl*DCgPXc`~_K@L?tS`tQ#kS$euhtaQ@fX0u z>t~9QQqAtUDF*N{0v<hK^mwIbtae;$rZfB`(3YsRPwa`+0W#VpMZz+Baocw8z3upY z$3FJ@y@u3XSJD=>Q8s5$*~u2R6BD#w>a5sV&TJobRs^sOtPArOqnCSO$<mVC%*CNh zUK!YvHmPh!*h>;;!_IP>VqsfIgQgAkP)H9XWF6F;#xlpj50$~s8a^O6Y-r&#mg*Ud zUCnuN;m6>gBOV>?`RkCp3hn8_&<~tG?x;=d;}oQ^zB$mrqA_6z6xc=h+*iN;_yndM zduS{>BD_DBVm1+dMfYqx)vJ%F{HN@Bnj~JJf&c`R!SuhMlm2VJ(=~Q;`gwU?;#k`5 z58bx=4E`DNR}y5ZmUZ62NcLog)VdD1FKq2&2t{v=!%`&eFPu_|_<Ek2=z5L0^s0)* zD_HDsF>%ppKkTw@%VKemFO$79<4fv1c`GVCFqmiYEK(_V$h>m@fhy19KjL^kp6-{s zs@iUKk5~D)f4)r?tE$2j0*rl6#wCi}>$mUQ#Fj(qC>iayag~~T$i~BkOfZ8<S&hjU zKg{Iri+D_0I1L~+G}Nx)jA*VH>si5q;g6*|e>W#x2s}-8eKgkqpx48B73Ee<c}a-d zs!j`fea)A2ckh6ffRra)a(&|R_!<h1&{%0K)L9$-Jv6Jhw(v0{y0~<xu|6_ukG<)h ztf$|C@eB0mqCOFjSfz`V)R#0(PDg?gafkTs>-H>XP!))ZV5l1Nc#SYk(P)I_6L{!% zl%1u31Otj|e1>lcdn?|arR__=+NsK6Tqa;6C#hBoE&^9->TSE<ujqc$n5ORi)Vmi9 zdgh)MeD4_JS7Pk(V%FTVfr+juOW5z#j{76hOs!;X!;m9p>SaOqBHif1r|+Prw5bJQ zL?zqm>U=(Y^p_`(F9sr@#)w$|%<`@t)4NT-y}ou~nl;&cZw3wIdwl9^9gX$cq^@?f z22IQho4|`eb<8zy3G|*W?&4@*w>A?W6@UTO8ui74$R#y0ANBw);5@Zo91&KOU5Rjb zN1uzugex+BDpx_GaNgy>*;M7fPONC&QCw(7$}Z(EnKl_#%)=1KQmqnJD?Lb})tI-e zgJh^;x3Vh1tzcivX^>D`_cH-%B2l_9sTvNST_WcmZPE-t15}Xu2x0L%^To0k6!ML_ z^iRR)()f>7!+fwqmZ92zcP?xw{H#MdcIkm_mlD^tvy066M@>EPvA08Q`19C-2D%Sf zr&nLAl^uMhry>j|pN*q}IrtWKK#|yCi&X2&%xw@ae`*(2BQOc-3uW!xLC()Q15|mD z1*0nWxTiq^GTd6|Oxz3H$#!xkBC-h90-i}A`hOG2i|?LfCK%N6Ga1L&z^n{fLSY#I zN5%WcR~BmfXFd+A^gN5bN;jx+yP0`061E4bg~Hh3qy}h!zk`@9dKd76hRlU@mRy9( zj$*nFlU={l(v}5@5b}0;r*?XNTNXIeqxRiY|79=R7j7L5r%d8Ra*82oOB4SG6@^?D zFA_V{^D?-6_?*gZ#d_#nA)h>c2>Ca%7&g9e93g?(Z4&7c&sjIIBiP8sCtB67(g6a9 zvJHueqOP;J5I#bI6pOf^ueB%sMN)eUvdVx}gy;#AG1vsWC}QqOO;~tmxsEoC%ROMo zAXYU;FuBbj8LEL(PH{6gs<4EWih||hUKB=v)-msek{TUJ>b~ogXx1OWl9J0V`}o)x z-X;k)pX|fZFH=Vb%R&5+?FRPSvahR_U1n@y%)}RO=H}#`^Es&>Rq{j$&{}Ei9Y1<B za|j|+tvt>>!>=x(G2_35>_H#`JCUDC`>;3SC!!+-%$A3euaXj_33xb?Q+C4PK>$im zeZ*4!OW3y)xWyAzv}_nim?scBcjp7CcJ!>&Cx5aJh!h-2I&Suoyd{sE+fJ{GV!3-9 zd~Ifn@4;?CB*L<ek=v53{leSB5ag_#JwuxDi!eCVr^w%6dN&oTXk8eaIZ!3GTs^GM z5HGi&K=ME>x4RTMLLBQqiy|azRq7isWoLFP8%?jd0<kSjfUSjeh3N`3mIxrDc>z_j z0Ci}pDcHCmRCoZCu_J0z5V?Fx{oP+?eY;1dfm#zuS+~Yzm^$cUjGLi^ey478{xwKu zF5-)gTW}JEonZl9*bT;?`z9cJvY}2RO#HiD>tCUuf-8Q5DcBAd7^t`3C_nxQz8GaL z>2c=$Y$?A(*rWG#&iJ3?1%Bij;ZKgJDjn~S!{g}d?e5MoBKQ-q9emU}rabKl{K=mD zt_*eus;9)FU1RXyCeR+c_qm;avuv8!0H67KhF?=wT6Z97O~=-NG?KG#A8RCA5dI26 zdSy!F5+kBOk)3GeR>*e@Y};`&aPc-QikIANEC<7o+XQ1?!JYub+PU5{lMBNxhojXg zIYLdjaka6!B%W%=+@><zjm4k|=e~;P*#4LhJr!4d(@>)`;02yWrKTn+Wl{TwIAHo2 za3ir$2_)6^+^bVD6=QEnb9vPr!&F$iMi0Pk{~iPdh?%g6Gl4%0TcglyPH+;}R8`1i z8b*H!-jU_C*936L;-3<ZmFe~(3{)buXPxaJKC|c$-LHFHih|#W1jKvHC!t~DK*{;& zp?*TScbOx$pKC<{HY@~0GQa&@LUq`6TPKWnP^WxQg(Zir@*MJa<uGtaeLMt2z9Iww zo(AfV6qHRd%WjhSDJ6EnWI^dE-q}9o<YMfs23lKjN*)bCXa_*(>0exw*f=Mzz?k7& z|E`r&pYLoDB@YhsECJ`_;1zFuCGwsyL(p%$|4>Vo(Ax?vG`uMfdc<IU{uV{H&kE2; zYp#RRk*HlQbzmgW<Hx<0I^rqKZ($zzH93~*Fw2|B9zs>gsJpb;=pxDRQgLC_d42V$ z{97cFLu;xWCV3~5)gY6a!Gvi{iI%R7hztEM#h5<`l512`<kRm&Y99XXoLcYmS2aZ} z<;iU{%=?$6BrLs#N#{Rp)EWvhuF)B$w11GREAG$a<R&HZ)fQ-rQX|CO84yf(CAdlI zaBAi1o80$IW6YpQ4Jen10H!IpYW4aI%CFh(;EPP4<v#$WKmou~rXL8SfPy?eSI}l8 zh+j&)t2Dns17sT3l&wDqu|jPJ^e&hsQ^3N+={AEVmydUWIkgvF-n2X~@8H#cU5C+R zR-WyfeNFM0$wjH?pxU<H<g?vR>CWsG|L51e%t)rDKp6zlGn=%lV09DnVwHsAxEZ+k zpq)VgKY-VQv20ae2aBdiJvf&KH%oPyX0G!e_tmmAnX~MniG>DFG}Wauenc$;DOZJ) zsP^VRIGKgqqN0O>0f<JRhI8*Fg6qf72nEx@bL)$cCV`Ab%uomer|p{p2#OpI{Bck` zS>k&x?>lPZZOn^WNABb*LOgMxRe%2YXJ{e(mQ2m^sIt=E^&W~>S43t|@IbMGLyR%$ zxR~6`Sk$Lg(3ZG7+_$DJWdRqib{&UR97^E%5PgxwQ0Y*;3={95HvcNYw|aBK-+;+z z;hzVRT)Ks}f)qgIcZk?H;@G#Dk+STogy-GyrVs)CrjN!xRgFdhG-xBj;0z^oeg<rV z>EoLA3AZdd>z?>P<Or3})xnSCDVLW^gpR=?ow`K(JE$Iu=YTeB=kgBTA+ZyxUs!kb zj274vZB)wudobh@j)%)!!p6w?ToRxmaWEUXpAG1o+HctC>=?M7sqJX1n#$NGBcHKc zviCmIwN?;RlG8;`yTGE9|2~Y2*<gJ3aCa2sbzB`6u4pIPQhB&nKd*x;a9{pxb2hj% zx$jc5Y|4<m=t1(?g4CMpWcH5t={e)&NG|OO=iZIwj@V)`j156piY^K^><a;xZ0na} z)F`5q2Q@gJO^0DP`I1AkS>1O(F$$G9bx1$^aVTqS{9HsbWr?}}=7|d7gX9?=Pj9&i z?BI1#Sh5&sAXKB%%K*sri-5p1;DRT9+-N37RtuZGX$ubQL_R-62Ir-a?f^R5NLO0+ zkJ!3^b|IVj8qFT*Rqur!-LJu#@EtOC;g^{q;J{*P>}t-EuqY|{w}4MAXs0|ur98}2 z#uy;by6rc(a4RcgO}r!=2<V6_2vs4@_sD9bylo47p=t{BI;F2Rn>3v#eA`?&O>OF8 zI+vuI?<R|-4j2ZM7l}<yZv~wgV~Wt0W}O|U8$Php3e+|XiH>BQlC8skzZdaY*wy4| zRPQ_fndJ=nNn7x)y7xJx{mF=R>^;hIE;mmx-9N9i3$hpFy$O{|FMfdd`&W@(+n&mE zWd4s~(lqGMET{1qi8{|xYXKxYl1DhqW(>yu;_t*?RrtL?20p4lecap_brgle@`DJr zR3X3c4L26?+?$F2tjFxKhEuX2lFD2`#c2BfD9<d4T9Y+n@(y~$e>1&4{Aez+ooUXC ziXVhs2MviA019FLAcHT{=A2Nml)8Ruke+hPH=M6%dB5|%GwLcOd2%dFtq(=(QQ-TQ z@KzLfsL!7OJnxkR0`N9dA+apgIKTHwGZ>&2cDZ=IOHbZb)}fWzM;?8{s;xu2#Z$x& zleaTkOjMZ|I}9?j^8R`<kP@1;mi!IMfFU?aMC-qsM0uxrH`!R>G0;8g2d#$6Y7%)& zvfvC`zcS@rjZ5lrVQI1<I1A8mX<e;oJ64%D{~rB8Lm;{bUqdZM3#eiv2=q-<o-?rI z)&5PrQuz?PL<!*w+t2SpJl=I_D(Ed9l6fn(n_&>BLOSoq@IpCni!!B2;MiQ!pVt8W z+Q(3K52xdz7$GJ?D0S;B)ct(-Wh%!xCs(#bsc*LR`MCM$?><sSZ|hd&)QBYW4=8d* zje}NB07Sw)Fer(L^_r93qVG8KUk&;{0?s-!H(sg=xwd9eHS}p+J}|?;2x-2q9c6Dh zygeyOJd464#jhQSD};ott|o*wyRJ{L?=@{9!WG%3XH2n3uiR99Czn$|M-&!D1x)`U z;-q(;xXy6DMte^OTX?5Y@^C6jcsG1;bAn2@T@>nWa&`CEqXh&l7hhR>%|eCI<=kfe zj%=p>{jDd%y(n+3eG)@^mLB&Gea#Zw4E*%R-o0C^uq0GxuY@=X0FH2NowEnf{L{@a zb6C{zEf9IW)4hHsXBB;hj}rAfAxZD$!b{XIAekPS6Ji)Hg+=<%b@Q0@<@WhGI7#v^ znqwud&5ir=hyEcpjAvR*rn}1NBt4w-pOk6Rc{!7NI3S>A%Kz1{|9=O1cJ4o4q>VW1 zHXALEo4NwBNMaHcYkAQSaLk(p5jmGOH3&5TJfZ&B5(dl2f;feY)ypr>X^xK21m>vb zh^auH{_)+`?GX)UQI%+G4kzvWRPLut9JT31B6mmm{fpewCmWFN^jV2BeLSOl$B*-) z@v2Yi1-S>WmhKwE`LQ}K0(Z^BcX?Lj*=(%k3dOq}6_+*d^7UVY5{L#!y1}A@p3j;t zk~@N>GVVYQK+G|uY&np;E!WXnjdeU`LeP6_VzPUX!kOd^SVLKU2O?x1WD>k1RWuha z&AUT%o?J9<qZR5vAc8>__lCv7yY@~oLn>dMXn%n)EQr@4A|fOfE=CB2Z%Yn(o+HH| zs}KxEs%WviICoAzYs)WAFd$>(nqhp<=xJ7bL%%+X+`i|dulc&hft*(DDpOHK!X0h` zYIoSuC)=O0nhQ(R_Kr|Y21kND5&qeXn^XjupcAr}|G-uW5A6`GXb4{fPGCVEZ*_vG zT2Q2(^AZ}tR<g-VGss*-{m)U<9I&GEz;|7#i4ls_<4|jGi7#UGDJccMFunk-gt70? z<y?a?qZKHiqL1`u9p+BW-~)vwBSvatZ8$y=EN^b}PSI(ZZOHcYCs`|9pr8C|;=Y1M zQT&K{u;=)|H;PSQO85EnbEevKXy$*e)GX-*p_l6pBR|y9w4<q<%0v`3v13w%Ru9h0 zKMg(-Ln@4xO)6lp&}c%N!|6z8_R5J=FhSORUl&0WSS0OQh)Pj4p=9Kh>hQu1NM>vD z!isJCCtVrRL>QjvsVJG?v9`9P@stg@OiAoM=tcxhjGG>D+Q?25@!1RbMFb889PAkM z7KDmr0QG)#O}NzcodifZ<{N#{rAj#nWt~vOlQ{$D=5tWnQ^l)eSBv!loi+k#-p1gg zKM@u1_grfkGjtyM;9CbQ_kJMV{t_Bo7LR@#C9CO1y#qD=rNkXGt>_anJx0IfNFhFi zc&ZV@*(=#Vz=eIS?pSXrx=FMAd*wYJxD93RqV_k#I5`ghW~Dbo0R69aG@oFl*~|2t z0vkeZbhuGu`^uwp!6a2hmPzK|&g&pE_kP#x-`A~(Ri}vnCQ@nUkTwI=6v8XM%)Ldv z2c~_!q8^MHI^F50ugVx91e_Qu?sRO2sdt?QWefXJjEPWtIANashq;e#RGK%vUK~5a zk~DD(hD{6QfN6P6Az~jPBAOQ4Oft9+HcDZ=uOJRcJ}(eHxL&~}LBvxKb#4I99dD*n zt}i>7nvLPP$aAVmF37MjI+nUW=zOds<>xbaYx`#X$>t?>uO=c4H*dWt6BJNLpq$xV z2T$%@n4zrv+8t;ZeHN-vPCv8m;4S!j4$-DRK-PD*HibJ%evi2ciF<XbmtJZGyj^ij zfS?^&Ca{HiAs-B}p*Uy!iJ~ce+>8x2fp+1b2KZ%i*hDP;rNao8`0|@*Es<xbBq`}N z;IorTKFKBA{HCNZ#b91IF}C8K&nejPLZNVr8FXe_WBXWdx=$wuTt$6`;RNsg=tDQt zYF_o!8cCEWxy#VkZpLAg4aF^uBFoM33?87sm)Yl4SqnM6-#BY~^9$?r7u}wmd|vN& zsXby6Vr}<e1yZp$2}r9F`rY>Gu*3VN7Vwc|GpcVB@Rxp^Y9{)llb+EyUs^u-S}agI zS(t(i5ulbRZl=ehL3VNIw#4=YC?@J}x^%J)#{@*vY=aQTmSO4+B*j#&lrwSHLkyn0 zoIrUkx=DDvrk**6AnTX9makI&NE5*&wOmSDuRy$-rx_St3B|LJGNFq2$z_Qj9NI{Z zz9=xPuD1a6pmBQs7diqz&M$n_{a@T4A&;es{H2j+A{5545Y>1ceeWyZIq<UK?w-km z8QJt2hCV6!EkU2q-fU^*n5)7GxU_~-&Gj3p2e-mccqO;07sHxoK@W>%;`<g_7p_C& zH-_PRt@j!nESgp<2JS@PdoKMLS{D|ViPB}Hrc7M)29Iy{DF<NcSea3e&<sS4cFjpS zhfj-9y-YLvp3-P*sr;}QrBhOnDhn9!oxyze948U^B?(UAUL_{w%8GtmcXGowppADP zsKeV>C-?alZbvi;Y%BW#ZlK_wrt#3(@C~c@J7&IG10Mk-jWwOY%*Y`^#OrO6<O2Th z075<2+pU`8K>s_8lzS6C3*>`zL5#y%n82=c6eU>#eRkH3U+r-J@cxF3N_QDpp#!XQ z=*SzUSN#>4EKi6>1HHFhD?^1`6^T1IalAT2D=SKps#XpgSFL?=-*Sv90ZFVjvSk>k zejbejof>H(Jk856QngXb{v@ih`@mEd)L5~7hZWiaAi*`e5@np4y5ZS%mXNDaAdM;r zNFS}$oiV@V35UIf^9NJ=OLxU`@78j6LtuEWDu;@6PRrZDF+n7XCS~RLhxP86Gn1;> zt2rkI^Y4kDTJK^KF0@japJjMlIA_<U7vBKmB84_<dkeMq$4KyhO=U9rz>oM~qm4$; z67?co**NvVu?m9j0^w>=jQbM-AAR&j2xkpP$c7ZENIrROji8EiFtxh;iBD|y9wCp) za4@f^4GBoULXYpyzE>Nnn@Eyd^eK&^!q?P?2H;_O5+40_)eqh^$|ux&D14voQtHCD zLC|9QJD0bznLyz+uPkQNh`5>&9}!i!B@I`odI`x(so@^*_7)V9wYU7Aid|gBQ5t0# zJ48}nv79jEWE7)doRO>NN-*nXG0KwIm(QA}X7<!nr|C3Hj%7d#luiTICZ8QMAt5*Y zR|%_EBx^Vy3}EY56x#Lc!N?&$OPw(SKZnae=S4asx0ogG#p@-Xa*<c!wFD(CUcvFq zze=TVIsMxnzy1KXW2{7A5x=TZtJ@$z)yu2fR=}s92VW?*i?2u?F<q?8(x5zu?VOm~ z@$<S<)mUiT3!>rPaKzN&!pEmLUP6hSZq~7Q`dsJf<Es;RxG&~{;JE)}9xX8KNxU%- zR1!RT4bhYKsRm~}M6M+AM)JQCDZ957Q`+%T-^7|u92~zLXS-a;?%%^*%M2m{&xQzQ z#V-e~Y$SEpPwN22wAllMVz0|%Zm_OpOWDe!e9gg#_Sy6+j`0+Tr+I?DNO_oJbLN!e zON$9<3T;cR;(jP7%HlwSWwp94*Wx|(>6;5#2b>1JL+k451cP?l%JmStf){ScuZ=^o z-#&35;dYP*jh&7((sS33)QkDQF~ZE+4qSmkp^H*uQwi{k!K-hpit{w(HxL#aJI~TS zI(O9JGtF^blKLs9W}3J7R6c5<Dh^MVU~(in6G+v~^IujUWybqb2WoU{Tst1%jGs3) z2w|RyK-m9!c>h5vzno}MMdGax%WS1dPxrt4TLC>nZwsSh$(k>~3Z9;(;Z@!L>IX^i zyc&VD-q&1>;}yq`NCr@(*YI6{WN!RD*jUYdC!rJ*Fo1_pXrrL!Sz9GZMqKY)4Sj=< z1U#l~sIk`nxhMj5Qiw2a=b^H*jl;h~_}HU!dlZ}fK!vu$R^52Qv6Zg`Ce1X=oB&|2 z#lk8itMaZfuGV0FRb>$L&`z%J=#^W7Y+V}<8#I|Y(5J$a_D`KJk8;EZ{jS*ej?fs< zgE|m)1qeu3o=N;0Y@$=t4^Mr`NqQNE{dRM8ygzDpB@)4U6BfGGyfKyz{PQucbfjIT ziwxlp)N;iV=~vdlhK-}GAbwZLmAr5PmrqN_*O)DJeLRRtSl@GK_@n?u3P7|j_6x?G z4!qd~lfjDrTgTN9Lv@PINzX5h?u4eu;F`!AD^MnUm=!1$l*_YxN1sMPjCBxjOdZ@@ zuQ*$HLF`1&i?E5D4{rB5;HHed9dOgH73yql_@?T)!wiK}%Xx=N_OgQ;h&M>O@c=NP zyLvT+<^<ZteI?of^Mjvi;K33ZHe(OCg?;w<Gdxni&;f@cvGDQ%vD4$PAxHr4CgU(o zoyf{J97Q${m6Txr=Uoc*)k)ErF&YtSAs(;lHv))$3ycL)XxB(p9VnyB1ene~x#C0q z9xPvg!5ipGRF!QKx<T5pd(*oKt9N7l1jwmSo4;#ygP!&B;?(V4_9j#!Tp2<2#6DTq zFz#~XujOAIxh^Z@ZWTa#2nBiyp;e^CCRj83+IW%q4B9%JvPfNt^offWnesOfvz)X0 zY`cslIZi)H33+4@#2tyjjv4LR7}_}QO;Y+lv)-`v^5qzr^;xb^Zj^o?PG|JYhOLsi z(e?nEi1|{h;$-iHT9a0FOwtXDo6(m9VYr;cg-EI1DiW_IrRVu3>N0CHvqq=Y16<U3 zTl~0cv)fIQ#vImCiewy<r^@jK)^->~c&}K?n5q%#p)s&+_mM*HrE*h_At+w3&9-yL zNUrC+xrS$;r>9ZVSWT}eHC|>Uy!3Ov$_}x#+^oR#h_vAE{|E>}lF#fJK>-07{n%CT z|Ns66BV!k1D_gstucbnD%^&jvhR<{L4gj8%45!c?zek{b@+yzt)~r1Os2<e6$t)dT zT}j-6`>OhyqeHBK)H5KGkUMI`@q0>oRotGGMYV0YL!QhB)#oB;!H8;&g4}sg-dpW5 z&+|*-*He6aocQkpyWM=>FIg|Gf8SrN^I8o@r(>JwW8Z6R2K&B_wRe2&!`@`6D4iRO z#)p(eKfz+)faX270&8u?vMF@i#G*+(i5Dx0lk0|u5hc;sMo-2q^-7iXU`i2-rvaQ< z<Nd?CeD8<O!>OJTISrp?k{j{31GXaZZDb;k0?$7#f*v-aOBO9PjBJ)gO>wx_F)ZR8 z#99BEN#RFE<QJ%&3px$zP=b|!txNu3XLgc32Lth`&oy5uD8v*DSAV}y2otuDEbZ(3 zC8Yx~XxiQ;;a}o^jyJ=W%g=rDdw%pc6JUj7DVKNl(jpP>Ul*<0pX|BpO{)R6Wm?mz zGw^^5E(m-p-QV?-1NKoy)GsU9cs`*vdZt?g{28Gl0a}k+{%2KUu=U7A^3JMQvD(_Q z8*&ZB`x{bVAK7POwbquo+OM$A{$2aY%Exj?F85R2=W-~tW`_Xu5VOD&r$-6h?-vpC zvW!xb-IjP$VcOzWgq<~gcC(h_+D-S09p~+z3i6b2`Dj_<o+2|T#C$oOIJA1k-z_5( zc=JcX(=a5PnN;yhmT^hHgO{_AxQTNRjatWL1N*J%ENMmST{}80nD={D#Wt9<U)P}+ zKw07;^j2j^-Jx)Y#v{?9D=I(S@wg|Wv_W%wgulW4;71bRKxK6#C-7dj=%Fadk!+uZ zj)eL`tbn%372Qq;(O~m_p@?%pMU*?TmfWw^WCZnzx4Ih0NhjOYuh6zTg2Wvo#G}<C z3g#B6IS<F@s}}69i&E!9U^UxWorV1-3lDAL*p5|M!9m5gPHBUI@L0NNRnlBDS+S7# z7@K1gOFVMdLt6<;)wo=n?I!271vc%9Ds+5EziSGPQXz2~=L2h2HXc!u>wsF7tqehZ zm;fv)l>%wl|L8_T2WkL#0a_31lRvxL)H`@96~t3=J<ImZG@8WGtVO}BbBxh=M+Mqs z(GOm|lCjwNCG4{u8|jTqJ6AXxfxEv{!1+cmD{U<fR;VIBBLsB>O>QWb7o~mxBu8Aw z8L<C^<xCr6OeYS&kPOiyY#@AmMSKdP0nnnqN7*`4f$St|Iv0r89w*s@VdEyWz8H2; zHO<j~=b18G(&-&UOU<WQq_v(W-vpW`9i!SPd;kxnYpFxJD}wE|E1XQC=F8j<l-&X} zhu92iQV9P7+A^@161#vYC!0l!5c3E)2jW-*tr#UO0~e74**9OezfEZ3)r`&k3W;~w zkj%i~nri3$1x`b5Agkuo-Y5K^VwC8+0U*wC^jOXl+GRA$2yxI51Ut;dgo8flfUhg6 zYPZ%Bwk#zLHAp>u2g>9)f#sDtxSL!x)tCqEv}BatW#bnvsfCo$$lnr8*u&6V=t)V3 z?Fk*k>P|pRzKDhhF#aDNd=d`5W#8YN4Op`zOXq?NI6>PTMBX(#-vJhn_|}RmDLF=p z8!KpXyE;2RPXq(jeWAkPzrvyeIA^NgCaRt0_wm!r4JirTv9(vmxb18i63NHwg|lc7 zFZ$Gy-rf@Vg748;Y%z?}I{@P)sI4s=C|UMey+8PBHZd(Adua1pF_k}2Z6_>f5Hcx9 zLKRgtOXdUE%d%dD&;<oH#G;A|5s3NEy}#!^eNoox8=@elHe^hL74R5b&8O1($}43- z@zg}9IRRlTH5LP118T;jt|KV6ohqbEaP}A~?g|5_Dgw0sh<7$s%$9KvTLat%rnv1# z5N2yx)9IyT#AQlI+S{@F^nK&B>Zu9Jx8e?bX<VMgF(XV=a+#fk?J{9LLD2giJW`fi zKd>+VO3`ppGhIRO)|Zxt`w?P%fO@4mj(%Mb8&3WJaa}4$DDeP{?fHm`LJXW`=q<Qq zde|8i<@b#%s!~sI6-pQ5;?lVJ?^Imj#dKk`K0~wE5WX4KrnUdBg^U-j;Cpy77`L+> znDlp1!K?=!ck6l_)}aQ;-??54V*+HreOA4}l0pIo5W|045ZrNG%{aESnvNo#RMggX ztGF75LTy4pOY*qQTE@~P*jCgjR#q3o_z+EbbLr{z4$?W)+QM_DP~?)md;$Zf{K_E{ z1hE`h-N|-SdZ46Di5d!Qb!tV9@DSnkeiL30c#u0V&j(v2z=Bi8GP8r7*dO}KTWe!N z-#GOpZssC7mDeoUb7H2qPfjo$z@K})d*T&;a9{Ly%K<ZT_3!8#d+Y?zwDOLy8$HYU zdo7?RsR!tm#j@EHD3*w8VPZO}>Ai2uAxBng#I30&(&diwsH_Nf@e8ao-_XI%kLtx{ zA|=toXg?6$!E*If<&=q3NuAaepTbPevIt4efCEk1ngd=G%SO_e%|-5(#E-t{84-0r zV-2?5@x_K4cHrO@1vS5C1Z*6ecMJskwS&)Ieyt8;qi+lBjqsS`%*Gsx*)A}Ei@s;Z z<CHAlwTf)iiV#YPM$iO2tRbV<6DL<Bv>p7h`{~mRRQq(f*19#v2SKnJ3Rh>A4i;Od zKfQZ<siEKh^=`<@#MI{^tzLDcV%Mdbg<DFl^zy`f=C9&}Xnm-=Qzkp<vG|CnV6y^1 zb72B^A0aK-)4W3Bd>xUHcV&}$j^^VVt$NRH)16J@B_E!96B>BGEWSZzJ6X5A5pL9f zEGVa-4CZ14FDcfo^G}?AK;FBWwzrL1XF|+Xc!N{uVvCO|dxYvDW5>liNHxM2^lyE( zJdJVxm4nkwG}|i`j2j14Q61Do3eZ@?1Jml>&+_j7=vCMnkd#pSG1GGX98vxkBldsS zDwx}t*!~<)B9*11H(3A6RBM+JXze5_7NLcr2MZQ~=kfb#L6Vh)nUN=d=ofYzclxNo zx2O1O9S>JJ5$8&sI4`eH=-54XyCVQJAn4D#oaMa68i!JEo8!~0P+%qNiXSTy0#r2Q z0D@PvM6<?dPUWaW!01D5Gp*mF`7!+^K_S!Hh4&JtCn-@A0zI^H$Q-kZaejh2oPeti z;GF*V=IVZI!%u3&-1Iqrz!2+Ak4AmJ*>8$8Qm3riK^Cu$S~2s%C#)%>rW{cnq5<b& z>@*8BP!pge5v><-Y3vg|YjksBfh*0u>J`Q3o(O*Ryq@{srn$lI|1e@|D7OSw%E3gW zb`7GLKW&<!s)9hK{0Bk%1*rE)Z(WVR7P1&AK&ayGjGV+v+`low6Tji&!BxsjGFn@* zmO|@?8p%>$r1#YXf$3@SH(TR5VNGNm{-_Y-*D$-SsH`WPGl;bXOA<*DO&R)P;$hkb z_^Rb3Ra12i!|-8qtmsf>rxk-jw6d!Q8$G|#IHhr8O2*7<t?HTiJ7_<t_G%XfgqmoG zSV^xu)kK<O`_e<QlvsZ9F40&0T7s1esP)&tMpm<IeDQIi@%<nLJ_hnTZ*=A4rYbiN zW~*5x*O(l+QS1E&EgiS2u#Y~W$UgszJBMmod3e>A!-MaQsk^+%)`r%Q%oo#DWv%c* zZZQOl6BJ+_-Rk?`dBuh~k=LEfleeRuAbT+w0nV<06l-<3PErK5c-JfD<!hd&!}FU< zmUYO1S<Nhs9nEJYk@oxJx_@8jSJy|<d|1^f16Rsxp@Z!8GW3?Z&>hg6pA#2;MnP+j zH&b1Vqif{1@SbB{kSxh=&2>Rv9Z(j7frOpi@!^8>19U+KMXuP>H))<Si{arqLk%)) z_wNf;At%<)@r;s%$)K7St~VZJtFX%gU`GrEN1KiMlt;F7$a}q`X|`p{*j`vMw|hw! zs_q;fEL^>yR@(RWW&@F<tSbu6MA6s8qH})LIk)G`R(4G8lKdU1eb+Hm+FkF94&!L% zWJE@OF0dhctXQ7ttHV7KQB(F2+5!76T&HFJ>k2`f3TWBp4f;0`0zg?OZ?5`>g92On zD-#Q1wG$caR>CO)ZK+-PEpy|f+k#Bu4*A9S3dVn?BWSdd1AR4r(h)Mi|5*(6|I!i0 z`i}0p<~EK_`c_sy&*h}Ir!Ves?9TTa8mgT$)(8+_bV^d4ynMu|LQ``t+#v(65*N{* zn1k3)zyzYeEc?1%x3jJNje+Qpw43J(1-8d&`60ipZHombk^nDx)B4F_{_)V_QLpHW zfZHwWQM!I?DxFo6_3?;=%GJA`_T2+`+m^MwNQ*#)@U2PfA;h%Zqj4hb-b&r|v#MHk z^P=LS%=qc3soRPbvFUKHtfQpOJ;~eurmU+%^~P<L+U4A09(2KkX|k<s>}{Nq>SwF% zq+x4*(ZI|5XSd~hLYN^mZ4Mz<bzXH<`uSWY?Xp@?ZUt-m-UT>9BtR2!S$$r=THV!G zeQc+ZDNDDtZ9eR<K`5WxExRbM;?q)DZ_?;7O+n|UvT#2%?$+UPqYr5Gu-jrizc5(L zFn;t{Z{YDh(!K0Be$jpJIE$d^31QK?wrn<IT~>y*9{)m7(RW>X9CTiF(a$ckPH$rB zyo1F4@V3d~wWW)?eO>r`@Q64c>wb&uPqH;im~%ntSnY6F)RNl$$v5iu&-P|jj!!zs zjL11fG;KXK9lLM#6{tKGQLa&5tXhw!M_RV3V=RVP)Si#mD=(;Q8EA~N^2AhcTAT8+ zKFuROCh@JRBs2TGE~%c=kR)1EbvHesc8ms?>BCK~`M=C;Hykc`b^l(6->Jd}CMpY< zyTZUgu;OviSu}lmy|P+ojVN>Mq*Gmlyf3s-TE2fXfOS)7wD|hC2Nh6#4-AR-Gd*hM zK`rVH`#f~yK=BjWz6*lj>fF(WCY<JaxvhBBOKWVG7Ld&k?rrLeH(3|09CNW(*H!(? z%iRvIkSs_bq8;?m<F2DZ_>q4fOxQU<G5-$(CFcIRy{$3^04&z?WV_{~oYC=e_i}FN zNgW*G9qgu|ggJxw1$xbGn@7u*tZWSVP2;mmzFrRN=DB>KvEu2QgUg<JSoW2R0;8XX z?k8D8<<(?wc>8GW-DKz>K_ULVAYH#d>AcB`o3YL8c}{+Q5_tX%q4UHNb7s7nJafO- z=l$AbUcEEvN2ORjUtaW`w`!dPcQviN-WyE^1g!c9l1}jb`cl4Z8$PX@)zN>Lpzfh~ zyqGd=US)z`Cf#gFl>$d(wB68Lgp8M2wmI>w(#NteaZ8#?(CiGZ1O+VvX}U|~*=)(C zUO&2p*Zq1?KfIj=Y9Vum7sc(zsCz$K$4Tc}?!!EJqtN2#O5om~;ps>2HVcFwuzm#K zDjbb|WMRxQ*=PGK)G0&ojfZV$DP>!!Q_Il(=YBcVlFbhR%N}_A7y^^V=Z47SZ*T0Z z`f*lY-!@G#U1ANp0$y)8#;BW6E&@3c7rpiG2U8~hgnO#;AZ_mg+pN6>j(@ypGD}_V z)p0)U%apaUoUoZ!Wqsb&d5HLO{3iG7#3&1D#`Ur)Z@UaJ!eZTY+seX9mTjWG<`(m? ztbBqVw}sShe+`dqfv_yM;oi6rtl<#DQESnfH?<jEs~Hw+-W6ACbK96Xd9duFP0Ci3 z_CZ3g|MJVZ6<8rAF{(M&@<NW&NH8uIv4>zh{F-e=bme9i({2tyzu(I7$dj@E*^Yu3 z103l9VI>Oz8m^WPzbEG~&x9-ISVX9XD?<7uIT{-?O3$WRFSck^Y)h1xbH6x$bm0-J z*O=9^3MfL9@1K_E4`la3Z_Hu$6@S_9<MAR*mfl5s-gk`Zq+!!#)z}?=LL(l!cY*?F zq~QtZvI*0=wW8*k?S)W}2}7B@+r(X!_z)ue`RHj<a*s8Yn5m~N3{l2}9#p|DXeX)E zytjqd_jT!d1lQ!<xh-2?Md1_3TeaPoC7yNV67=i%-h`>?BgB8ll}45A(3(w?d0q2D ze$Q8@CmGJuin3>?Pz2el85qJ4jsjkF!D_k6?1beD^3}2<Bjy~#D*l~1A9fPbPqi0r zYC%~PY08{^+&I!ru?h(x!vPP(7V<JsL<bQCKO&WE0PM=@K%*zBpfJ!Q(DJ?gqO7cG zpb_*pINp74H1hQ_e+Sa=aP=?_ZA>V{^bCd_OMB_AL(EXn=XBlbIR*38^&d^0=+*OU zJ13Zdi^usI=*C_uuctQ#TA+>O5f_tU2VkO&;p<O<zKwJj^XOa;;H-RUXb`B0r=z;y z#DZS|llACGz8f^F#w(sy_!GKvCe8jrVUjo9L!tWwWv5JB;9EqXxo}mqZn~@QJu#O9 zm1kxwvPcQoL90DD^oZ<nO=CxzYVtVpE}+frh@~J(y~ep*u)A31<?AXDZyigaaEfe` z_O;8r1=38Q@)5M%s<#_E^584&>I=7h6=~_K#`BNd>2$UCNhV#y8-G_#U$Bz9$CtQL zD5xj)<{;}Wc04ki(;e2eS-l|}ko_w`gacKLgBk&TAQa2S1GaL<a3za-WvhQvs2;{< zk7#a8lKvTwz&2TuFNE4GhO|Yi4B^j%*)a6>#wWJA)EL|p=ItB1?o{;IYjWS~1};lF z`RloQ@yCr##LV9I+i;H&%thbZ%0z8rP|$7T-%EdIeR)DqTPxedEia~A6KLsPGwOE@ z|0;Wl-++3NpOtQ8fPvn$g~^=LwA4L&n}Hc2P3f+p)idO;@-y#2^LdcnW#Wp@e!;P& zYRMJOVZSQ~h3v!IA%<KV<8H5j-*76w58L;mJ`N*vXr69aOj8}L_~)N)oq*;jy<9WS zW`|FoJJ_`DA^FY9Z>EW+#Wr52jZ+B+OOj^RpFNj55Rh%j>8{5|fP|er31#n=RMMwD zuk8Zi)d%65xj5oVCB-}97iB1$TSK(X%7w-DK*VZy<tC+8%OSuwM)2O<7lk&7{voq% zb`IPA_yNYSaZO4UZV+@j3RU8ZywCvikC|xY0_1A{KrycU#i@v(-e+JdXOy)EyNE0O zefFQqRg#iozk#^q&?yLF;%iuxu|7ZvCYbDC&Tt;hZ39m#CjlJ!(CE3z++#keRS_I2 z#Tjiu;qwW8)M^g{tWVjS+#0De)ZAaU-no9GH-%@`6$pwxoi|3hJ{36zuf1Q}EhRUm zRbPi0{;)2<*`{3&K!>2~btg_fJ%|6P>Z%+~QCxO9llHn>;Fe&H^?s{_L=g1U2_Kri z(Y{6>#D%*npZMo$>}CHxet-99Wy&&&?cX+@92u{Ccv?qNyD4Z3`2|$&g|oKCTG(Cz z;^H!Fp$Yhhod1X19uWEfLILNl@Qu~=X0!#gg7-Ze`}fMlaQ1>x*1V*jaggR#JNN-c zs>z}=_{M;{3n&=IOv8F+td}N@`0pr#R1j5?ef<<l{d!g+pIdy0X0fL$lq+<VYNrWd zXmyB%YE>%uh>#}!PtHj~^OjZ(Vcb^B)c#&)&?>77UE^QgkUbaT<3>mG`}`IM)}oRx z){9o6?8N=K|0Z<in7OcmK!%pJ8hOi;M(V)X#A>Z<BV3ZnDflg>(xz<cim;DTw|g!9 z*CzT#9*^>#tCTO8q#uMI5nO?s)E`=_X&r)0_T0ja8_R&&r*@j!1LEVE%<h$IG5Bl7 zq-}BgHa-~Ce}j)EV5mzWR<m442YM`gp<Mkb2x~oM?5(7qK0`qKF+Z8;@#fydR*zfL zuJ_&RXPVF-g{3vy0OE(DE&9rj45Hv%c;E2SNuJ-4$eb;n_@#rM{bzSm*(8_fINB6k zMYdH!F>M0usvJSYJJ9FS_3pmj*DN-*Q19oepjEtWdR2N(^sYA{xPrC8kUl>M&0I<_ z&tbrp3N_;~qMa;hueE4`XXSUdH7!Ia7Ed25r3AGKmxyZh5klddR$@XKWdjb?BYi*2 zzxHMKIbc~|^RJqi*w{+DHYJFTghJ#*;8Du(69iv<Iz@&gcqV)XY#?4_rF>r4j6OZy z7%*8zqGv9OM^^%VaZroqxD-T(>R;TA3SX+I_a|j+xOg}6e))|lhxprl7r40}VSefG zj_Z6p-J*V|{JI|32uIhVdY#vmxjClO`8qt`54~F9+1W?BD(M$#vBMKBP;uX~R%M@= zAHF7hnMuWoM@DW#@~=%IBH<|$;7x^lhM+}B38DO+<)SvMbKGHoJOxOv-{|wElDA=p zS(OxP`zamYZ(1}ycNPgOY|@ZCIO{@aq7z9p@HFrceq$Ltd1-%DnghS@Lq0+f{0qso zNi(h|JoEM!WMV)_8I*f>p={f`eHW%{sJc2Y%ZB{)-(0J(VUo}G=JbWZqopjEI=feP z-_^x4yr=2_Ybv^U$EdX{Bj`D{Z;+q31gVXDD-{LYESt97%U)5(yUe7j9B<md&Y!k@ zxKFS2nS_qk>)F6hMRF5V9O9z$JfdJ{7Mk?lUi+B-JyQC`Q<H@NE+&mWHN}pN7TW5Q z?!{QFLQFu>vk5)|c@t03oBwMdH}kSLo+2B^`mXqX8wH>0U4IV<O`~Pd>j!20fkaf( z-N@EceAg6}h;K?@@B<om=48Dae(BUd792f@ni}aW=86a3c4GYpR!R;>#ZNMETYl{O zan@23_b*y+q$sAz^x^Wpxmu^|ZJtT5yIk#d$ykQVPvggIL3f;Q_e7NK1xQfI2ihpy z#ekwkOjjjr8YzxLDf!cv?L{3Oz;@fOm%dnTpP#`9-VN>%73zikLo{(+);}6|L;{z? zVY48~R;-0}0zDYE$SqbW1;hK7#A;?#rn+6@!ah$OwW?Z(7H}w<x~uMWV>lVB5ebPb zr5lb9fh*B&fbFdKT2?11Ko?>toEBKWE>(_R(J){FrFRw9?QEAr_z(0OQS~3{2}tFy z^*?WS;b`wQ7ANVA>klw9R^(;)b$Jsb-!Ob6Xea=6PR)jPW1^JYn}+pJ2re4l$i)nx z(mSNXhvkG3;B#eNWwxF*Y4gO2so6^cX>Ys|#Rrop->;HPA1<6$PU_f(V&q|z)PyH0 ze|~5()0tC4J9YA$rTK~-EAqBs;)T}fvQ&{=a09m%);n_)Bmho~Ld}k`X?MuNgr!sz z34d2gQW%5o<D)YhsxNM6o29jx!Qv>u2)L|v#6g`0b;OJQ!oo2#I(+ZtbyQcki_`u2 zqr5sixtf>n3wDhvvYkY0^0C954uPv}22m8J{M+@ZsIuCBeIzSl6)*A#@X|+an~o4g z#mLlealQk2H>UIpp7pv;i<Rvn)-geCYu@zQ8j=<NIT@T=>(?f9t-}wa>JS(PLJQl< z4>UwmpTA7tl}Dj}2w2HFn=gygEUdo>eT}6Y&5+ajVY4{Xo;z3E)x`)VJk)Ie)NL;b z>hCvj%)aRU^K1zSVN-AWuLW~P6G}(rEFFpn2*uj(`8fQ)mh6Z61hc-M>)h;~R?!Uo za=fPQK{DAf{N)e$9(!Mrsax<0WmtnI1WxIBiVH?SKf@8$m%-2_&nN0&dmLMBtJF5j z?H$qt+y`Q#nxFV{=aj<l=)jhH>qCdqw2*VQS1b~nYcs<FK?NJWkOA%nBVgRFGI<}$ ziTDl6WPU`;%sOtjzAlWCSFv$a4(VY?!v_`*Bzi-4*bKnB3O;D+^c49Chrf#>X?uMt z_N3X4(Fu>>`_?r6N;!F8{@VWmTtK70O|9m(BbB)FTvZG)I#{8N_Oe=SCz1RB!tHj~ z3+nFEHYRRNds#m7_QhV$Nir2`S@9;2TLtyPp`&Yz==%CU^*}ovH3}-oHRYB*I|A(= z2g@EfDs3D1HySxu*!B?x@^!(;0W1?#$H{*WyDSHQvzc|#nPkhRVj4$UcHjh-6AuEg zZs+0Exty3Q(X3?r)&R3qP(X}awBbNuM)B~30Hcjxc4ZWG4+k8QO#CCq+;|>)(Jv+q z@XM}JOWcPCof-g=pzfC&hkM2?Wck{1b5Z4=CN_<i@6Xtn7R}uV?APj^pl4Qy?;o-D zquI>TL~>s`t1@6$p3v!j8c-GHx|Luk{;@PEWjfifAP8Jiw2J==5a<+B&%*FI4idYM zNbH7B%d~+&(>iRwp9*L`1;t0kiP&%x*_o3xX5C$&PwqD;H&H83nWC)3)pE3Nv%Hv? z9H0(Z|Bc0az+8TZ9ts2pm@paOj!-EKR0O~LR5&js`$qT=Or+pGx$3HoWunDF)tWI8 z(r2~LNYL;%M0|P{9UT^~SUqP!q)yN<UnXs2KIn%&2DzmEFczbs{dLoi<DPCD3Azps zCQ%P=?SiMU)il!c#r?Wyp3{t8V3#yho5iQ*1?+8?eIF0?`;1)w9HLCK2t~B0j1Dt% zeUP;BP4@J3tO05zhyh6=G(Z}^k7x0Z%pjw?QV%bA6ORLZL#X)+oNtC6?|CFnHA9cB z)@49jS@xxR_I}@D)7|G5vE6M1QGlJlDVEMr?g$<D170X-lHkS5&8FF*+!Eggo{IQx zhrlepjYrrBojC9&VaqbHF=ckX>(Rx@m=Q;@i2+#^9Kn#7XGpSfpZLWd|A|-$-m#ev z9@hPBt^p}4aCoB=3kQ_jiP;eoZP(Qc_P|b4Pd-8)wuqY1L)JXSP#veN8RrziV=!>~ z$UIC8C>-%y8=Jt&(j>vdUIp;<@D})QZXv})%d7|KVyo71FxXE9H%Txv!E{cgKbkzk zpH9taly1kqIvE{`@(4$U4r~eqbtZ6~K$_0;n-<w@_HNJBrcBKc6BaT28(~Kj#ReSh zQRgon&B^}iRd+D9)Dju_!ks@W4ZEh~HL$w97y75pjiNi-uG%e|0z*~FxE&Mlx6J>Q z(sX8;G7E(2f2E<d9FgPR$PWwyw2-U-(+pxH#fGeIvrSoFSHDBtE;D4>7j?7iFkZ61 z%@*Y*qYZ=Abw?Lo)x+tmw8iDN*^Pnblq>XYLt6z*tlEOq)4>1ITx3K7w)N7gP~o#y z&oDE7O#ei*miuwc?i~L?so*iom+SIFN9qOBSU72O75=TM<tTbO%n|BaXGmveCM4-$ zhtBfwF12w(SQ2dDw(L6BDNrWg*V*LB(}c4LtmmJr7Ihe8i-}AG00cc9XNz)6suY?W zvhNh0L~-v16n0}1K}vzEfV#C*K9t^i3aBYZNtzYJfsA9_d*FR0eFN$i;R^mWxV=}* zwV7_dh{|Y_zdn(O_?NF!o&osBoFw|FF@fsgI1-NMo<aR38r8DW`a_~k^37l0efj#; zo9FMooFc8n6V#Jb2doBtA<Y6V{U6-iow9|bSYCRiVRpKhXu)(}Pc`N_e22~tubMv~ z8K{hL6;3_{;@w<UWWa-Al8V9x3Ynlt3=G$x{GluJ2x5clvsbx#kWr{1x}~D0t0psw zwD=eRgVp}JA<dj*pJZdcU1r#J9Q7_3!#tsbP|kp!+>LVR$?8C*Z(!^9HvpL0Y~dz1 zkI_G3Jee<6a4Y1Aws*k$XJh$4gk~>F9q@$)erk>zi(kx1U>_dM$N3bUoK!@0*kCX+ z*%<I*$j9!yvHM7L0h1Drx&4CJLAHE>j6Y47tK7T%HBj@96oQO_hWaJ-6n424kql$R zbMtJPIQMrNClp}cY2FOb4*&_BS_SzHl*!$1Ap0<dsj)T(=%A$*Y2}GW-gtmTq41BD zIbqbdW)c>qdLQY*QP2^VuinHwk6Q+mtj-%W)=``v>F}DxV%GxIM!yM|7o2f?hK>)* zWeU9ZGf8`>JoDM%hn+uw0k;-lm$ViigBfO)(;&1oeiwL?c&wLW%&oUW)gxy-L9Jap z9P<%YbuwQWlcum6W={Yygr*h5Ozqne;w9ZwtYVv1c7qoSL7HdTn^lGEsq7wJoak)= zeaefn-gq-xTsA0ZmH_ztylQPYL%ei3TVyCWjrPo2I17+jvB~^?^Dh@<0J$3<-&E~o zx$STRTjMR`mVm<M`6gqCbfJ0c1-J0a^LyYG2TOG1usmySFbLE>n-c!4%Uj~(D6qS} z*l7Dl*>S3+<+|P=#VLD4{x%z-*f%l*pVL?n*0OQqSDk7VZW2srT`n$b3^FxCxv4vf zhrVMcwQ|YK1~I*AfkC~+SVCrH;T0(9u}*_l+tK~3ayDlR@49R$GHC8j0A{1ok-7Lk zVs>n}O*D8+-Vpegd1<V&viFYIKOy^+MJ+xp#2L}%ZGoHG!lVG37MCdhccc}d#bCtn z57fPIog|PH2N1|Cd=%ss4M_IG4Ba|0mXbV}^U3Lx_lc|ZPF_EfEMisvCr25k`#`g} zxzH7*+H*xFJG*1<<U!vopv(b*z!tE#v5bDa-qvlsAffu2g)+ljtLS@<>e`}8g>f6_ zKc}P++QMRmvB>w(G;vWeFK~QF6CLj^Z$S7IDieuEVfb5$ogN`PH>T#w^st?g<!-LV zy2%ieExn^S5S0%`F90oqP4%UJJxAEcKL02nf6@NL9JJqzWr2MB`ah#5DNY-Y49*Ae zWmrRj7LThz=HD^u(PZ%t)?W-kW@+S?baO4;O2aANtVMIh`snn!IHuBDlzWN^`$Pl_ zDmraRVaaU4oxwS-!;lPg9!B@MS(#LF5<H`F%Y|(Nd)1(2%C0sl*Mco$R|5BvwDPuG z^`TD00v)r!af2frr@QaEs$dXlZ7Tkmv6(mmHo*~Sg6tWd!oT2b!n@J~N&gD#C?gzJ zK_6g~Oih)T?CS=&OGHx2I7zo{L+M^N%jRYfmbb_7)>r|(FXJG6N$9Nc=ls;chMk!m zqeMAd;D1qPH-=m7@g(jW$4r_NoL&%1st2bydUt&CE_?I*<mCACXF#&?@~<$w3wb-C z<?a$mSaj^rMAk|@OYdfw(98TK_1iN0^YlE2&+o^s*d3%a4RSz~jbYk`A%Ak0e#5!= z(0+aK{N-1&UnBy&di^fBTk-YlCq~0xIIRd@^XMKZR!*@;B5wQK#<whGkQaVsQ(Pf` z_&qlMewx8#kzqHFknxc07t0}Mjxak0vX>Nxxt8331-n0ujSV(fYBJ)ntFH+<_PZlX zzYl;6Xx}>ziJx;X8QARu62B!c*odVmC339lt7?Uwe<mJk07y}6Zx<lyR7Ih?cW^AP z>a7=FqW>^Dt={b7J1F6PKj5bYOEA^*OrLpLDfE;#t2Mk%QU3vt7ZiQB=tCqJNVw;a z6kST$RF{s{R_9X1RL6M2{u0REOr5@^!Gt-ht5hG;Pe-&<zx4iVL+%_Wv{~lfh0O1_ z0qu9H+X7fhVTh|jVu`qj8XtmfwFq1WhQkc*?;!eeL;iA^NiUc^Y@d-F%c?TGcCG6u ziu~Wa{i;j350D1d`L$-bFo>v&;><rP50%lT#Bfj+L<_u+UXk>4=i1y6h7kqu#}`Uu z(F<IK`K|M->Nd2U-+%ERw${Wcf(}VozmvsZHptaT1~FX4wo2Kfb2E@>(x*AOl>eau zUghJOvRbxwr3+xRokdX#S}aPMRLJx7)e=AFl5le8rSX`lNR)`JKY)pLl*gv)$s-bz z$(1c8g{8xJ@axCFrCa0R*H0ds4^KT1>>&!>a~{|o7WL3p!+i)e=UuR1>^k`FAr{{- zdT`qv(VeR^b>TT+{eZ0Bgw$vBIq3?l0}=?X%Cwul&s>_}JivT^abNahyr(Eu!z5Zn zy(uc)co!-Cmn4u*!4Mx9O^on`>AS;53i&|;=FKv@aGUg>NinPM4-CG^IRV{rWxDg? zPcxQVV=-<OALzX+b&PFLiXc4%#dO<a{x@{5l|>@ErWic`;RU;6wtBhz`Nq>t`A*Yt z&;{x!ovvC&mJrti5*tlGGIS*N`n>8Fmwwuggs7zF#a_RheQfHJ?3hJyArUUU(lm-9 z3h15wCd}ZljZOT4Ur>@cd>!6ez=g}Lre{VJ>S0Sc4`E8FgBp%Cy-A{59A)`zrm`6l zOW0}EtfV@kYZ?<xPU8D>SpTS7(fJ@=4>ieXmROJyL#N!1$9j;>;jJ?Y0p@&XY`!C_ zfgmuZ|MO1_B5s;*HE|*yx(I0{c9n5{^bKlAM={#V`N6iq>{7>J@U*!%+Wav7v75vq z6?fEkfe^Xyz?u&1A!Ba~JGui?P=n0@C|6+STFLi|vN4&2H-=z0t#P6*H;4nCir2kJ z%%tiE6r}=e{FuI>j?v7Q6h%C?j{%1hFd*i@|8{t7=3~S!rNp`ipg4b4oO(@pokwb{ za9&}kiJ2zO)9aY>Y6{;x7^;m_*%;9MIfeXD*|U9Y3v4Kyh?^?A+B7$C4bjccIcDcn zLjWGpx#Kg*t<D2z+|4@GiN~WabDE4M)_q7()>Gm%B^@1!f$xU}ZgZFrL(Dp+3E&wF z=;|IvIKl_K4(+@oI0uCdUYFWsS;aqR;do>1E^N*)NMMwpYTJDujy+qo6g!1SUyw-W zX#z1BT=Zqy9B_Y<xli^q!#w4i_Ts_^WheeVK38|VyE}dSJ|fu>)(=L2++zjo<-H+T zX<X8mf+gEQEDX`@K-m);XH1ry!Om`(S=9CO1%)S>a{@WFa`I*7-=TN9WH%fhgQ<`= z@UKBsap-*J7nDeD-8khEYF8||*}hk4gdtNMR;m$_%uCbk5uQF~>eRvu14t2jTO_%p zAM!CT3_=bXX~YOA7Lg*5jRQgzwwtr7PU`KtRs8Poya#%&R5O*)(+!U@uPH{xQY+n) z6GCw=+&r<^w89f_VQ3ul%d%4{J)1cFR^r$D5B+$OH1VVZ#gpD$`y$07xRIiftFH`= zZGfd037WDDdrpOeJhv!*%vWNB)k226LT2^{V^&l<{Aoy+e*$d#7Vj3FpPq#Uyli~D zaAU&5^_Rc=#ilmJVHgK3D{|bRgKLWyTtg=Ma~)!um<!FrP*xMY>Y9W!iZjLDkp5-2 zWnG5$yfJC;sHo5ios-bF=B66M$BV}2!fD*q-vzJdfPm`7dAI^@)JIzXk)vWqASt{~ zUghcKR-pGNqUaS3UW~3-QGWU!lZ(+rV+1}`fZxY5s1ap{TvDUUBUKpb?igW~?{JZ- zi4F4&AP0q&?hBOe8l*EZ;DltGk}rq{4pHn2s_0@2O)cDW*CqPA$p&yTc<5a-e_t+o z%3R}9rjS{Hp2K`7o?e{_CZ@uBRQ{gwFNw%0to#B!-Y%=9a(cfHdOCiElH3<mQXp-z zGg~03?FZQ^p)Hm$a{KV+4DJVLJ;N#nU3p%GCbg7(*O1{D(#Jqa8!^}A?O9dO-R#NR zl;2Yf6O^rMx1|tQ^`d1LxlP=m$k#Ip)Q8J1RK~KZ=wr0{VOo%foHm;l53v3UPU}!U z5QATI#jxx7UZuacB&nr$k5iMDv=n-gqdVX97Yc71?vXy!8>}M1dk4yj4)Q*qsGuL` zs6+KEno62;4l7%4qreX`c5IAGnK2*_Efx$IgCtES8sC$6Sl(b_oHMYe_U#}m?R7!8 zd;QJd0jEQ+I2|c45A4j`R*{XGT+wS*H~?}E(7d~MHK?vfC&Tf%R4sEZ=haQzYh+|J zEusyXi}zB$z`<ZIt4DbZuu=vb#uI8!J`e5utm=S_6Elj>^Wa^)EGzLoGe-7D*fgOS zl*ew=zR}%$L3<m@M%SD?3+cA+kMXB!Q?(ovv8pc0#jVLoDeI%tal@v1SpZn)Z#btt z7Z%2(Fw`Ub%<ffo3VNiT;onn<7!dw~oi$5aIHW*@0=a^s|8j07J;@$s#(B?QZ1-XS z;cXS}5r^~Z;i01?zR(x8yzTP#K$SLBKrjjEcz<S@fr+GZqP(L+h;B0InYP=aUFkeC zy{#XOXskqfno~H0!`a=23Lj7*r;fbYnY69Na#w9jEX4q)8qs^F>*46J9Aqa|Wu40} zfUV!5*>`<N8GW6z`C;94yQ({U^66&;kZO`TAehdF@rAU~u$ts}hhkE5vq2`kL~SdA zVA<j1&u>4o{e?D)L&+T7IL8{5%zFBmB)xp)2X}@Y%WxMa{8b@lTi);vV<4|z|I|w( zA1ZQ$Fxl?&Wo1iU&VDo2p}HP+F=L`}%n*7cyUXfmgejU#xq_p7l61b>XxBtq;lA<Q zu`JDvl758M9>}zg#kNq4Yk=vPZ*LFb|2NsqAvzT>L~o%_V@AoPS)67cI4#x(UHQQ& z2~$k)OKTBAMn@0_W<-3iPZa%^DLIXUH&aZU9$V5aiKP+eUBs{wiQ(>5;bC2NSSCt> zl8POE*DlQArD)!!UKY9@aEr)2!31Xp0HlT?#(C0{X*RkU0pUaRA`gSWiPCsWTh_%s zU0gyR3*~Y1>tFvmo6!Ul_Ze%jhZ%2CW<OI@0=3GV>qXqF*jdo9#K@@j<nl)53R9{T zXqsCrk<i*=U2d`HjW;v45<QDFZ_}{Vhbn6Ip$c2wT&}`aRCHOTioa7wT!=y38@He4 zhSpUtopH22oqZPM%uuO6S%Ck~>NcTKrYr!qWyEUBx}NGG=IPCQug#IqH@D10BFHI4 z17VpduFgrco+J%*%oN8M8Ui&#OI3aXuHESD{FPDm!0l})Ir<g6(=#$&1>6*5@C(f6 zugxMqU(_+(%Cn9wgkDFFx+n&C4x7;SJS*dKM78aZ#lY3RsjP*lidl1;(K##!M-KwK z%D&OFN3s&B?+~UnW?<c7zK-xYY)u%ci@hvAIVb{+P4~N#H)xQlSy5W&RdW_P>#3JL z8hdYyq&rrOAgqMPKuRr^6r0#z1nsWmE>bc`bLVl?)IcJcJMbxNo)k}c0+a0bDcSTR zX7M$;sw1PShu{4R#~<Jf&%-NFgPA67Fq2k>Sun^=&t4c(6gZX&lP;gWL4|djzLV3` z8_y)EHaXpwm|44+@JYqoV9s^W0Z$w<ay1O?v3&F5&v&^+C)(hjQN>}p0C@Vf(af3V zQ~#japObri&%g2UpZ+v^`Ra?;<GpUsYG}t77j|Sn)LRa<ncGj5nqI`LYsL8-HO?0M z)FjQjj?9Ps_EN=FB+R5woS9TL4ED;gMgvyUC8b~&4+(!4V%>v|gAEx*-*v$*RH{%$ z`knUZx~J(-mL#Vf>w`2H_iE)c7@@fxbokmlIa#BURWITKwkE0$7J}Ffw;9Q~#mVCX zrXYMlqKcbtlTr+}oTrS<%T&%ycY%TNnjYx|PB`oBnfidM$le5MR?bKtbZ>}58Pwk5 zl#q8pF+_K`gXkxNJ2%x0p+r%41)TdWx%aRsAZ&VH(x=*+76~?NIOY%zGnVaC8cmS7 zzNRV1ewX++?1meIL;Dya!xVXk?QIe!Z9EIR+8&h9Pnthw@2-YVb80|}RmSTI=^Tao zj*gk>9~j%vT$4K)g#((u|8F<v>As!0`+%Jf9IP}&8fd(x<k}BA(VC#fbU5boJ~zQo zA8U-c3uh9r;)dePLr6fuZVCSn{M$=2@DKA*D<(jI9mN=S*QoX<{2LgvN2Ujc!v4Hz zo;yfctyEFTW!B7N?3WkasUG+7p;8uy{o0umDJ_Z~lN9+iCBqr=L{39=j+RZ4`HP!+ zgD)!J*CFm60AinX7XN$6ADHCcI5zXRRA!=YDWJQ{@W`RNecCYPZ~H;^!eo_N?$+yD z-;bs_L&JZz+W>r&z1cF$GDW!(pMsEg(VV6~gI8Y7di>KqvPZBsoNLT*pD2`4Vanh< ziGNMHgDFTknNp2!%z$u&1`+cmPglN!g=jX=m%WK>?EFSFDL|gJ8@VAGAxmn#+R>tf zjZ~IA-)TGW{k0IiSD<CqJt8RZlQRd9CmjVE9K`|(w47=o!}i)<QKztv1qQv|{AbiF zVqgW##7`_}-beZ7m<{vijEbh~dP&u8BUy{aYzHzCXD^>Zz}BE?3T27l918?*SJ`M_ zMs;W=c85yE%q>tB+hia7cwYh(Gp(8U6+O$I%pZTZ37a=<b~VkeQF(yai~$p!!sm2g z+ZDRmjafDA3b3Z{1~Z<A9Y)M!ULLp|ubhpjpyUhV$-J-o6;^o7t|#G?!u$eWX|q8b zvccwRH`o9JxCGqojGXnY`ow0cSnjqu`(@H_lP*)jdM#z~K<jhlLojIJ_D$Qi&wD+A zKN1Bb-94F}xKNv~&pjiwgeH_q2Jb_Xviz&oGB_6PB||ZbIPxVe_@s+F8Z$T3FGZ|U zAw76{A{l(Iu<wrDewS!<Jd>BLIiy1ZKjw5YYIIpjxmt~#&yXPW5aaM3^u>g2*>#m~ z&ZQhpwBasE6Dx^(wD?JlMR?h!W2a$9tN2-EO5)+H%uhqtJIq?70>5t6hElp=?){*k zRo`rj6$Y!J@#ZI`1aO|^dDkx3EhJFvA{*W=jCmwN@MZ-Z3vhsl<YwGSTGDBG0(uRJ zOf5P~Aiz)X^C{&-$JTKob6PzFDMOSxK!*cqcM|Sr_DDP;ID6t~mvo87OQ0sWT=|xg z<#<A_zTVHv)hb16z3H6Jo}l}=JKdD&tynk99h`34Bs~!Pv)gTL$h0)TKuT|*RPcX% z$&*1K3Ykn&1X$$sOF4dV6<Uf|2?XZ_Z;_K1Z(qK7cXBvzfBe(N?GA?-_A+$vHh;?R zN&jqAY=BaFLYUq<9($rJFeeKz@s?~}4_8iJ?Pqp9Fg!lm`AU=Y?RI&HXfyl0KHj*p zX!4o;UQO5n+HaJzST93V_ieumNyj;*O{F_by+2aaK@)R6qEkQwSh9rj8<<eSvp5pf z9B2f%=Rg}T5)P*31CfSx-_t})FJNs9<u;WB{Z7&m;~@izThf}`)yR!sTwS13ZdPHM zh27ZZaSIJ)5V;!<al7UM!7004h~843SN&~)_1@E}-$5b37o;5Aa#OBuf2b^9K>cV1 zCNwTiuWJ01``ZlP{lG&<lOASl=>^Mg7CXlgdK$;J(}5Vt{=@Ly;3mcHNh}>jQ84nR z1dk7G2S~o<^Lupai+Ft7%<$I0RrBEd`IyXxL%j`K9VsfvvqHEh`W%=_EIfLM(HPXh zHFa++J1o)44d-=NaP|2bZFzUuI|hn0FeoS6{&$*96qtXeN#Y+hM|_+qV!xJjj|t)~ z^TRz&4}0Q$_76>vN|2-MV(+5+j573qyGw~1DR33qr}d*BrM{gEElx5|&Ob*V`ma!Y z7RCCyKn@6(b$@p4KURwp6Ie;gY#m2ecB<mfjH?RFY<SyQ1$4hMX|UXB<P?y6m3O9= zIY#G8xhAZawZUYItJ)-zKo}h4!MU|9u(3cxm5aGoyD_I==1Q@syBv$_c0L(rm<u@T z>UF&;Tf`=I2X;sf8-O|aN|aqG^#q6msE)$)N)%7bLT1&~n6lnxB=q%`dNgzM^3lVb zBtk@AxHCBqwOT-d^)Zl+jvnUH&48t)gz+!>p9Aps0{~6I0=UR8>x;|EsWbMbaIcs5 zM6y>6B~I)bPBh*RXX!U}I#pFv%<s^m7J6NIv79t=*f-3FHAl12{9>M+-9m4ZtX?76 z*m~EhXb;<1t)eb1gDLY&6F8xg_uUNZ?3VL_qxbWC;;mSm|2q|&Y~#UA6a+?!9vO;Q zEl0iw^q19Yd%j!wE4Kz&0Z)}g`)yYx`68Obh6M*Zy%UnV=ey0r9N#tpSqQl*;9Vvi zd_qyD1Jux$Yn-9ek0ahRGNCy1E6N7$$Wq7+hP;LeN8DS*IGvj)daJ`zcaV9~Ci2$k z;+5KFZNhuJTpqT8Sqf<r9!6eCbmbpYV$9c{zZMT#<5fisa=ZHxt>>)oHu^)3oN>mw zN8JQbq@nS`BpkHo{2aEOa#rz`Yf>doR4I*@XaGY5>M|D%K-ts#&U1d7nmfP-qH+Y4 z!(Ek=X++N0cy=xtsRKeJ!FSh$<Bq%aEG(^&bNJ1qbN-bA+ciYvo%O)vLHp$d@Tgz| zGpv!V|A<f4c&VWh``)SjBR4ta2|nPRIh>c=>)`Z}oH2DU-L{~NkM$m^gqS3?Hw${7 z8S;Sh9jnrHItr}v#uq%6-jkvz`Pf<`=dz-6D`SG3W<O7U1|VZv7_+K`3`B0vNuz&6 z)hluiIx|ngvYNlop87=N8qetUID3?NWizu`_QdB85iSxakf^ZI-FSveeI4-q9*BPr z-xY!Q`#2tHQWA=KYQZv{>w5H-4-vA}tnX6Wdum-`*}W2`^5ofj3>Fe$)?dXvQi4Vz zjXpjAaV|KaJZ;AxYKpMG{#i!w6YVw(@)Z&|3jE+|f%)}Z3_oFhROUsm9sZ}>PxqYz zbpiz8PRAO-$FmuJ!<snb_r6zOF^~?_XWlqB=ok~o5g-uxXJbm(dvrfKahEiQJ5^Br zK@dkw<;1<96KB9^aAjJl?1)215z!PMy2R3;v#YB%lb@P51=@9Kdg|*K$*5XUIZOjD z<`Q&n1k>s?PJpA|WcBT#A<g3-JakDq($lCt{waCj@z1HTUp3tCoHAaJuen4{n1cX3 z3XuBsA0~Se)n{(Y^sjPx;0yN4yOR7h4dsq1#CUCjVAA95icB*!&umjwY(0gbd@6$z zs5zZ)Q5N(nI%8b-86^a6$T8j?Qxq)9O!U;ubtC`bZY1|4TZ1Sh1)4ZK!o&!J2+I6Q zeT_mS|EhUf5Eg2#_L|XT;Mp8-ntUXX^^h5wqDa{V0NPLtQ7RV-MTT9MAkv<hct_xv z4AX)cfveSOD5&+^M5NF=?Hf5;iC!|QZOs)SF?JRfPeCz3mc(_T8xv76N8W4PESuU* zs}abs&Tj>zS-|D4--<ODo9(Tx@hjO;&GJU+BgQUe62+~U;(c7VeOY}db}cEN@uh1J z8t`+8HR+1Wrt^xJhi^5DLk3y<hzSbSu*ah(a}{rm*gaaMQVHi0AMs?;dT%hNlK2YV zeyYqV2d*HX)S^S}4Fy7%z(m_*tW=!<Il+SKr+%;WPSWj&I_7#?j=UkLu*ma^!4wW& z<PtO-YZX@ypyp~AxrQ{gV^Peh%66vH8{DI4?~_E)-uo4h3<Fx}ny@)>Okb5Qjl5dg zhQo)^ucfZK5FgS-E;u6G&;O_|l0B#rkzEcYw))<O>U8Tuz;tFYxmFloq~>N*yhV4H z8mn25?y_9Msfy##Em+mULbh<?(6)G)qSNJj&V^e;=$JTW`>Vl-U!@7YCCw2XSSv5r zn`ku$?peB0V!g7@xFp@I-A+D-+rz5E2X`?_k!Dxju7=ITM_E#rOLE~L_p7L5w6r=K z)ZUG@uhpBac*KGIzJFM`Kc^0^<Dhh|&OfI!7wiXn;4b8{_f#A`z7f_6c0W6-fUv+V zwA<Jl_!kNUCZprP16D^atk03?e+7eF8S3E-IH9dgO-1T>t2qbetbwRp7b+h+EV*EL zM~BBZl;dzPP~P7Pa&T*_6&ZPhy|&g*N6`I9V<T(D9!>|@8)<`!)x#!G-VW-nnJhdo z%j#@*k&nJH51kE3fezIq=yXJxI##y=b_UdVW~}d=Qk;YG=>~xN6p%EUi3$XX;@Z*% zzabwn{2dbx@UKpAL{G5uAtx|IeDpI;xc3-O8Rgt%4d#a_hnai$=de4G|3Y${B7Z9X z_pTXw3C?ox6{&#qJl;jMlc5a7w<>HejLCQ73A}HTJ2i#XzNfcF^5#lXGpe6M8Ej<w z37s`+M1jpkNgR{v<mZ!9{C9rxuK4=(=g03S+5gENH^2PlFDKdmpkx%k{AJ7@P{xXL z&ZVM`oi_tUQ#B7iUDRziUpBT3A@)Su#vMG8Uk48VYixk})viOLz=<SKuw_`WqjiQ6 z3rClMkX7}SpQ&uW)X7RbufxEGPBSAd96g@mo-L}QC-(_FG&h;)9`COA#^mjp9EJzg z4JplZ>~#}1e|K23KSqFW>k9-CO7LOr_d5&}XQfNe<@EoJE<5Zt@2|~{1>qhQXT8`C ztng|rUg$}#pqawP8<lw#xEod2nB?Be8f0UsOJ++;BReP+S<Q6-$UdjERqovUw^ti? zdIFfqp0drhT(c@0jzUEV!wR9c?)#S}MHeRGK+6%m!s-zkG=R1w;fmE&R8b1#BicQ* z5Z$}x_%y5M)qJXpQ>zjBJBVpjxddRRY5=BQk38@m<FjZv?x=dL>RxAA{<3GAHTffu ziJPt03djvSB4!ei0yzl>Nl=b(5L3Lu2-q3JW;@Hf3H2*mJ8aY@O;Xbn&-VQ@G}RJ4 z#6Hs!0atr>iPX3(HaV~0b-8HkGr(y~-S*F|%YCqbg>2R{J@%R5C}BVCyZ+f_yT!Dp z3aF88rMLu)ccm+Q<)cK->2QSI20cms?|i7#BO2rPreDPOVFE3VMdLR+PqHmc0YT)W z|2tB;Wt=GaBcLw}u(X)NP3nBJuB8BU?dI3zYFBl6SceV97seIiC{liN1BC_gPr`J7 z7YD|zMl!EUDUTnbat`>G$B!pyqVb&+&7bbUtQq&<U3vNH<lXbHOi8a3qqMS6DAoUw z{~OKENmNJUe?uMB;i^76WP|FzZEuaDp#Uka?GI6#IFpm7HH9=u8(U-`oz)wyO_a3# zJmAldzj*%5SMOxN(RdT%`U=K1^#1tWClX-gy_8hwj48tFJ%anP)wWxO6GmN&8d_or zfYTt62KCDMSgUAlpIC<HTP$ShPB30pt}iv$Lt8Z!*+z2(dVT!?(yFPSCPQsc$G9xx z_qOI%44ErMm<9nxQ7oy{s+QbX{uU<U$Y5!$T9|>SwZgJo@CNK6JHx#x8P#y9EgE*B z8@zOKFCM(xoppV%b7t&h{X+BzEaK&g<DP=IMvO1bd?=~5gXD&g!w=JJa5n|4E*Q=g zJksmJ&=d5L7U%w}_<&9gQv@QpvU{|Z{03nIINsRZ>}Xkl<G~>jGLWv?^2<d;Wfg{$ zt0R!+m3Zu|^}@W=+#PSZcS$}Ccn_1IgX~V7ZAc&RcgiH_lm}Qyr9{VXRPiWgS~rIU z>ro2#CN4Oo!rxBG*NVQgzCz?gbV8AsI8?j2R&K8h6l*#4yYVW~?Zse{!D@1Urie_e z5SOu;U~hz&kDKmkwWcaCZQU)JsQ$5CkW|H5!=jIXIFH~Tk3NsQ)J=@Ju>FL%VMtZD z>~ZG9;p|5Kf(~SwS>XWFk9dcF{AvE<Pop_5Oxfp;aG}iIN8U68o&6anq{{fG^a`%@ z3et#1LEra!IirHWcP`-2^4w!Mc0&gT6rvWYnwMpJQ-`tFF;*V14yXm1hOVmYcG6{! zkXd_#i4}}gf(1?i<}!P}-74p<gUs^4^X!Ec-AH}8t=bvVyeUBKGh`v!l6~k@_rq6J zk8ie*7o@O0tE^LNqvtthp=54HJT}IF`<+7JVned|<?FAH$C2U;8{Y?D(QWr;0K+yx z+ESTqz{Sbz!e8lhjPH9o#zTCXQXd9nMJB-w0Qrc!Hvz^(eaG8f3uNRBlUJx80psXL zpW2&az=96>WjdgUtk!@d9i%@#f?wvxub%($tK;IEljFC=$;)@g&jtrh&22jYLpO^m zkBmYkscZfEUXuh^GjIe8)5L$xLfQ*R-D%|0mvjO)6O%qBL_&U+OP1LJUYESyU^(%h zWkiPS_ODz;*|>je$&WM?>@Ff2m2A|kmb0$ET~(vZ(ieMYSJg&^eX~1KYhvhlm?>}3 zu=1jK?dn6N;NV;CI$PN0RQmWayg}TYNdem?%uF#@)+%`ABcj1_RciTp8Y*pcP+_9x zyo@f&g_{ltKFGe6;tvbbA)ZOCaIG#1`y^d6@U=21c4X0}*>S>Vmm15<iw$Z~-Mblo zZYp|b+pLDi5=dEZQA6p?!xvIaD5FO=?TXWO1YTTNV9cC4+90Vpc0QOFBp4E(lFHPI z-ZY!pa<|2|!6y+)oIZ-*#}!EZfN!#)!c(Sfn}Gxd_(bb2M*N1+Kx}7v9nHk!14iIm zQ4b}B6*I*6tlj-iI(rBp9Xy{rfY|(_C&woZyH53qBv_VC-j&G8$|oj42g`B0R&<P* zrIa=@Ox%G?{{tn|bX4pC`%=m6cK)`!c|qUb(D$je-pLD@MjBiW0_Vr=nQ#@JVF_qL zOC>%e0n5BN-Ynl%i_bCH(78u3rRg4zpum=hB_*&-720ca?tS{(_t{J!o&NIu#C`eI zd;Kog_2086Pvs)Y%u3N3qF!}y4Cc3U5HzZ*+<}{An1;nZ@5_rRdTYTd0c*Hk(RBlO zyj%2QVa-SXUe`6Sz!;HIE-{OXw<-X^un_s<4^N(c`q?jk_3P);%zpl3x?B}i)1zs* zEM>hHEglaYUY>m-!_}kM)EEK&qs{8|48-keocjoVb?$ncmu(+@<p_6=r!?jc01&b+ zGO85eMO8an49<b!fXisNT9LWWFBZ&Wk)#NsEI1o~_ZX(~1XE`OpfQ&-!jx_`@pe>c zgPD9JjM0gKg<?0902ng)Qk|yBxKIbQ9T*>fF!el;(Sc>A3yM_e)dqgY>L39n#MD)| zRCFlwx|yF)5s{a#MQ^92WDW!Hb|;axKZWr^4e@1IKCP?B*HLH7GBvZKCKNF+P+iS? zhx`Trgf9#2r0UkQDjY945Ppd%=ASBzRH$aZM+anL9(C3s*2jqtFy)>j7cavrYGsTa zNIrh^&D-OzUjFfrbx>3N<g4fJ@X7WT=*p*03*Nm?pANT-pV-7OD%FC~-5&Z)KY#x2 zIqB2`naF`;4F5q9<NsA}zo6X1dbwgEZp!Q63HX7W<A^T_c2am_irGpgJT&P`h*=!S zUm{uJId2GRa6aYgL6nN*>3h=Y*t~d2R)m{Ac^{N&pHbA(z?E%PWG=J^hbF2D0{HCd z`-$F!Fh9Tfi|d2?Q~JeG_SBq^dveYDIAGO%w&}K47at46BoCVJuvAw*VU}938nH)^ za|ou?r~84aG$D|oT=4>tmXS?lnyIyQUj}xEQao<SIz}9zOPu%JcR0kMtX4*8>D$#L zn0;@msX%3#qwVYv{zr-X%#uwJ@?=6MY?3BaKX_^TGzrN+n4Cb<>{jX(!6&VKeeZRe zcU0ii|E)!PwuLWr(>w*@xLB24m%ZsPbw1E8S7AMlIzCtV*+{RT`(&cg*hm34>IBSd ze`|AJ^G~S5FYsnB3eoW^_j1t*_(i42#-rRZBig}Utskd~@cN=fiUYp_xgrj^QbP%$ zP)RkNfN@6$W^Si@`kw7bVombMr?Cucv}gMmu4{mbc7i4+#gxKFylfN3IE&e;ClhUV zq+teza`!6V<FPAm3K0gw6y~BELBk)FD!8g{WynsIr4Cw9JjY+jfefBrBNQRRyg^#{ zJinLVdB@@Q<~x|^J4q|?PqNK=;%GvgG;3}1RwWJXhB}pwuw{ZNmeA>$9SlusaJUEL zLrW4rDFV>VhXzIoHx}r-fzCu!0Fje>E}aKg0@}LV?2x{3ag*havpQ5l8zcZ~XwlrV zNY=67EGDOxD2U5vc{<>|aNoRB)H_oLb69bp_H)}v<T<Ttpega%8`6k4Myb0hu5nkP zxI$9EO*L*SA)y<PHJ+vKu))nGtpyG%)><T#Le@)wx5_vt+vAW3QVplTS)icrtt|u9 zH@n4Uc8LjU_)tm3Pp8GZxg=Na#H&4YFbJO*hFW=5bh?xp%c<go?0U3R*V!4MG|GrT zK(B_pf@r$?eQaAvapYY>Ql?6|;7`@SePP}Lh+RI#gZ`wH*rCzXzZlc{LB5!9)#XmH zZ}8ho?HZLN4O^S&0AEuTM>Xst=J@Br8}<y@#W{pze<0Wa|4hJxDuaW6soY-s2B{YK zbEI=rGj6@@Z|_{_!KwLIYl0IRsLQJMiud4|LN8+9=x2xO7(ApS?=-$YUoNxn@#pVd zT3*Go0eWg|$65qJjD2c59C75%Y)qf`#3>nGt!blP2U)pTG`kHeP{#AI<n^gHp@+oq zyN<}90Yd-cW*J<-sTh1b<y9(dD!!?MK&hy)ril?FXv4g8P7+lOKHfiy6|Bq_N{+7m zo5%!pAp9;SEozD;@b4d)qJp7j=?5V3WCIVy4Rfm?j_72PtON)c0qW@nh8I5TO;?rA z1E{<#qFFda_=>x&#8_Rfdgl;A=#2kjhGy~<2^JUMvtb6|_ebXavDu4{(vc@(#1xE% zrhHl!yEcm1ckO(6PXF1=b6cgA@SE*j<CtCYMuwgCxqTSX5};VI@@+-LIg&2J9|R5l zgL>_uhl>?3rXf*eo5^BDeoa_F-4m<!Sf-q@B?YVLdIDy|Y5W3<R)F9}qiMYe3FE|f z>lhnU%NE5}VWvrjr4P7>>+-gbdI83W9$7Q@se7Nw_6<z?9WA!nh42>EcU)ll1=e$+ zH?W@shyZP$ZQpaA@nE*LBdTM7cc6n(-2^j!@PIF8&+Fvm_}w>e-o1YP)k$&k*OLN? zeDUu1#h0&M{?|9h<P=ukj7i}KTrr`QX!k;7f>#gVo$(+fBLJ;&fw>3={Q27IVu!g2 zs}JNbfn=1<Fvbjc5d0Yab;)TY2pCuC?&jVbsL(uFqc@8x_dwzD_En47N%}Uv_`SBq zgU}xf-jW=u@cW}r=TGLJ5i!HhPv=i4c$!TVnY?MP^+GTJ6aSPPmet!CwR*WT!E!lP zcc)x2Q#2kJ&&+eG`i`SIbtzJD@A;m1Zz|ncKhjOFl(r0+U~-sU@$%cZ<l7Q147>!} z@dK;`U0qMJ!sg*xkZ+I>O_Sv99mN5op#=kpFzYziM*%UWnrGiiJW}1Gs#~I%mJP=T za|Wcmx+Wzb`~&jpCs{s{6i%oEwCgdktCdPail3P(r<0Hd*!e~M0p%+y6pMm(My-U$ zBS7D0bkD+XR0WB8>8BC|jXq^8+BUF_c$8PSDhDQ4y;e*{&b6rs90mFE_sLxRWP~&n z{_t(s5~-&!j|!D45<dz`*m8ziB$)-q-#l>C4j0{7tC8=q@oZk=5-jr!hj4KzZ|O{W zQUFfiP_V`<p>XOJl@vxI{V+va`OFmg2A$cco}~+bTHUghgwj`*nUsTzR*E5D87g^+ zWWAyyMXnQpI&W6ADs6UMFF1=qInTai5sxMeTV*CCi?l9pIfjYT!SZP*Xc$q)L3bId z_z*^r-F45zIhIKB!@@dos2BmNTG{1fHB-B%=&&QShkId^Jz9We0qmyo-Hsb;7a35b zUQ*`rOd@}~IVLtle5@?EwxXR_$m$3(CQxEZgIQJQxRpSSmzX@Lx~15w^RiyyQXx=p zeRvJ`tkFC>#;pgU24HY!((7SJJFjGiabipRLhXHl7r4SAnK;>qag$BDUzsQH*UZeT zZ6>IsVdHWCeOGnn=u;>&{CWdd?1lAA&1MXZxS}O#=a!h{aqx7FJH0E;BS`Rs{V-{9 zPVfZc%Gi-wRHZd<b^sL4#*|MGXJbSnU{Hd>ILmB|;ii-Xk##ed74H6+yiF=Jz1}o! z=az|JcPMtFv+e)T_gTG>;%l%R5eg%*bs5V;dL@VLUQ=hg@M`6psrDlV%gdDi7?w<+ znMW{!O-0E-O)4k68qFBG%Th8^(a$o<;Z2d4EWp_As#;D>LS~MDThX;9N47?XN|$?+ z@-TH&ry4brcy1&}=c6WypKw><lDQPB)^K?abK2HaDqf0Vld#KKtu~Z<l#C_tFI}B- z?CX}7VW~EWM;30BkDqwoPjMuRW=9AF!p3fGochc;8zhh}Gd892(iebRW^$&%rN((; zti*j+ik2B#VuUq2d1FZAS;h5~=mMjQAJ(X>H^TtU<!>;<R6<mauc*<#Y;Gv=NlO<M zQK%b=i}ixG1B!)+V|adVX&9?^oscZLim9(91(fUqPwJdgOtT-Qx$bSf7D5H;?&ir? z0FJ_<A~}yBpN;f@+~i>i>uZ~7b;p^Oam?tX#b_@I_LkjC0p~k2j4HcA{W>y2(2lqg z&fg~q&Usc6E#0xX9&Q#OE!Pz@A8xeFwJ9!(nZBh7+`U2fattwMcOkwY@zn^R7a({7 zIIfznEeA~!AMv;@VYn+y9W6-f&WFB7`SQiP#<LEpWZi<khQ~a>uz3?oj$;Kv-1L|Q z50_~pnfE#zH1ACk69tqb1!k?64euZA1#b^}OEGSummjVU``DlmR(5pd2{`E7HP7VB zqwG(_2J4(aeqMD9ihxzYWQAE?&adXcU5(dehlnrF1QxUa>5{Hp@eB7?ixUsvbG%l` z`AFK)iVKt>7D*VGxgGe4tn1$9usSQcocS^|!R)}T?Ardaaxaxoauhk}JaTUR9&H+Q zswGQvm~B~yZ@ZyAm+V?J2*)Ae)aht2h7|=5vM4A-k0J>utetNyJ2cLK&uuL-D1zfS zeMI`Xxs5&r!FAazI+FVwG@;aVcHH$#UwigZT%#uCRveQ0w!zd6mPU1r$xeX4D9PuC zt-Wmdn8Rr@C!N>CDj%0dHy%0ni*Uu_WdXZ@L?913PKSh~i4~QT5}*@@3%Q$8oJ&E) zIfGY<IPB@_4k%B=lsPF_>)pkrI+Z53fp>MWMec@Ay8@(9mf0t@E9ycsK;?d~`+4?O zt|?VQ;z0I(h~f0MoL)C|G`%V@W#+j8M#;~KJW0AgI=DAYw!JJny{d=`Pv+SRf`cc7 z@~$DS_?Kb1po(OAY-&UvIQYXnB6wfhMchLw6_La%vYUIrp5kg5#z+QduVY?z94oww zg?OM#>_1#B!$IBkc0mF-Nk~#8y99>P1RHOF-NA9G9;9o5yKhyg`<xL1>33gkT{f4l z0{#za?*dOUFvFNvsJ)#kaCl*$QJItnbQz=TtrSS9d#Z@CBo>lupAagREn=L#Dit_f z$$R3QacLvZxTfo{M$<G1<LmA9xk02~Ro8d`cIYIHsWns-3GgyY@~+NUuIno}E<0o~ zJa9FoJ;Y+pv>+7_y1AwbRQ`yvoFNi_1bGmJ=%QI+MU|NN6moWATE>(ssXC3x0wXQ@ z2U-4<vj6Zc?_jfQ3v(mSF&dl8lCho&C^=<R>7;-Nb8w8LE=dhCR9H))W$zWSFY2~s z1i0ElA6TnyqK9XNEG}&#zW()Qfr|R2Q97N?=&_+Oocx8G7=IVb$u;6UMY@%4+iaFX zT0C~GTAx)E?TKkZi0$&UB0jGMa4>O$b=hLizQP$Dk~aeRo3V!vY>&3V#kbqmGn3|< zt#&yIp?e3xK|OWDdZtGBN%rJDd6Tk{jol<es}j!7x=DFnjQq^tuqam}6dpj`sW9g4 z5xL^|i2MybN+2@JLdpw#0C$H_Luy8*aU+QrTClw*Zv2TxCeve;KQe@zle#21s|*jO zRSZ}ikjp-rm*)t`WL<4d`r4uEXu|TAX03QIR>8)-$ZeZR=&jjPR*F$BDay~p)+C-V z-sr^t%oVl4fxOb%EGN#Ji=2fgyjjkwP$z5USpYF-0bZ{hZSqvzw0bi;RGG+n2tbpI z8*gKkT3ogr#yV9h9g-wT86z*W0C8df5$6@0cYAXGQJT$H%d7bx=h^lat5{~7)9Ee+ zS)eAuOIyLC>s!)RacB%Sr|e6Mo|yFZ99CZs;ZgRvz4)bPO=+NDy)MWBdCIy4Qmvp? zigB;*ti0oMCX6^cw$zCzU~$&6W8QXp3|C@6>~gW_#l4R$)ST)MVeLAV4$L3SMTMEP zR>s<96=L)33sb^oS%Db2A{2MLMpq?(oi}FslvLekVKbN4>jE%wcZR0CL(J=?@_ZfE zUAL>c!>5m*9?(b3Aq0ysgCBnT<kQcdK2E^|kY~WOuWk>YUjDZ3|L0$9BVY~-K4nL| zqNiKm_8k3)em16u!TXZ<P5PX}EntC04m#X%Fq4gW8JniLwY?sOgfe|7KK2r^4AjqO z!T80L%8WW92!X~bJOU*YUV$WFJQTNH&*F`l6Iff8YH)&XgTk5aCkT!!H}~ns&jXhc zrN1|~1IlPC8qoO{_8g8jTKR2ls_MbPUBpXt09$mT!Kjp-7{+`-PfTAAScVjSAJxYd z>thY$-Uy?QR%9zYitYd%`+R``z*+4gO%?4Q+ucg4aFv~5?CC|Q2qlYHE%zB;6(Ux^ z_4450o)YD%BrSj0qDFHXOjT&s8lX{GN3x|XcXazw(ht_z<2u|eAKARy4-T~6U#jx$ z;BvuLVXHMSu`macM-gv+V|G+;184){C8j_r3cS9GVoW}6x7{3*w!rkHL^YLy6H0lf z`UL34cRxd{dcX=6dyqd~O`|eMaG5gd{*Ro0rr>nFza$kUW$L8F1;`AMa^6V2>D~O> zE-37ddAJvqwRIW2wlAAm3lr)`x3`Gdq`X|+Mxw!ifUu{mtTz@O`_1rav}#s+GJP=S z<*Y}RB=M-IU)5LW<#0ol78|k#c8I>DOvyP7Jg#vFkF+N{KG_r*aDHAdYMO*8P=_4+ z=Jtk9B+QtXwcZ4vc;Ut0+$rLP%Aslibx|DL1)L{xJT<(l+=O#Ht2Q7u1@XW!k=IX? zgdq`W;-K(;<ok&zM-(KJd|OD)_xT<d4*vb@O9%hV#dGg-W3KJGlbmWfM_wD>?W6I( zGXnnJ1k{XPcFc0}?>1guHj?9Q|1c6`mI@NE39P*rfTWB0)g+clVy*L&Tfp=W6lFcl z-ra7a%sjHpE(*)n?8;+u%e52iE^}9g(22R9V}kBA`9`t~;!+^H<}5qTyUQ%McJVSh z_yze)PK-$6&6gcLnmM`gJ4n;a#H1gM(cZ9`JrR%otxvPo<wcFjAkMcOF8b78qSq&~ zJTG4lEKX2!(Uj<9ut(YW;1^?AoK0W+eb)ePmhA=kj@iZeuN_svwS}9=hZI`S$tUmh z)=22zg4l_6atx8jpIWq)IOPm`<nGQy0HlN-PZ#SYLd;JA<ogI0r370pi9~(Gabq+H z$<N6iP3l$n9AG8L?_Jh_AR}%l-6fFA!?UtKtolXdnP}b=l`Fu^Xvt?c<9HWrL=dKs zBG<{TyhU#UkTaFTQmxP6z6mEl6RZx8%))RL`b--53aTF~_lvP73BN?`06MQ4#Q?UD zOf0}Ma=8#>IC!*UvESBgPQUSTftVtnw&}(n2KrmGLo;TTFj2l<ax6OIoMfUWZG!CS zOJY5Nm^E-y{D9}&9zWt_8yjfFbt+)%*+27v9HE!=RHbq_$o?mTMp6Yw^Q>NBns|J~ zx?%Fcd=wNG-GX>7n9B{AY*R@CZlxk>==u|HG_rL|?T==}Q2?eCLPSl92)3pM=s}G0 zz)31H=)D-%;GD$kXB^2xG8=oRzu@D20+cUbxyTE17@phnkF-&=en9-#9cij4CY?T$ z{?pJ2`0c8;mTOk<;i~Z=e1ini9X?h;*`j8m%q2uAq=F^o*A*m5I?AJLf*$e%rT1QN zLigTCF>3Z1uZQ(+R=L#66*6F~$m-IS>r5_=RkvqwnA@Uov^f~3DMg@y5|ASx{j*<4 zH}d=q-N=jL&0qg~{OZreSI@tB_2SFpw;&o!?F;s;AD*8AEdgteGoX({i)n0Zu<?2! z#j%gN;tfm6C@NkmDLJOjk-!2wt3=b6dXw)gPJpMGzj|sl==uJ>3e)2q<VK#}g?`za za|y#GXz>)@C|>k{HPtt@e0^h+U{RE0*|u%lwryKowr$(CZQEv-ZQE7bvk@CJv#~p0 z-VeAD2QM>Erc;N}fi4s~t9(8Z@X@K6f}3@YZ&#mym2VjYx5((kCwIV<1O(&TBQL{H z8GbZY@nH=N{<=}(ckRYgVe%<lY%<}Y;JRBlF1N7hOXWvD`#3<a1f9tW!)cmqlX#r{ zOKhb`7^M2R2_M@MJLkYRR^A04bP@yy(@9Lgfr9J<6SPc#;s|tx;6e1V<Z1+v7w<Iz z7`m%zTlu99R*6uEY{jT~+^(|X-a5GQuNwgdGY&(h_yN^^gwc(&r57uY?gwRNwu-fZ z#(B@ts(6NP73CVLBVsG^NS*<XBEm6K892_`e(J0Z8gH(C^Nej4KcTA~&uEINJB4LG zJmT~5je~AzBlTM@jB&k9GFG8*6d(5%NKgoaftFp8q!wd6`;*eiKBmoc%!B@Jx3BmL z_-N7Xa{E2nFZa59yC6z)m_19;n;Tud0KazY>um&r`Jp2Wtb86%Rs~f4#l+70xYZq? z_X}d#0CrSo?8!Y+MvhSmFs9Z;%!Df*OghJ&{MDx{$y*R`qptOwmLaC!Sf?;kZ389D z(u(;h_hNy>L)$xW-r1n@R{|Kxx}znLp{1FuPpV5KCn+7XpmlT5NC^f7xWFZ|*I1Tl z$F&4@lpbmMtB7x0a;e(P^hubFauABe6tRM4j%-*iZK$*Ul~uL#BIp+`m7e4_HoCUe zw^IMuocs@0QX_cNq5AF4kISe>uYbhMJzGZeQW$5B>W4^TVpK62q<|y|m8U{a=vZyL zZ>o=TN7`-z>BZi8((cb_4z0FsM?VBLb0KfY5Qhy#44@N2mW;ib#>Ud(3wEM9m_AZp zdHY(_%_9@^rV~A@fnwHVWL;pqFlv7R_Hrz_wFEW$j0G|2RMoGZBdtk{BH_KYyA}gO z+exyAxVWGgPT^XF)ijGN>!^h%hVFi@c>uVzZ5UHVm6-#Z-sF;H-eX8$Ci;&+EZ{{$ z#AlS!KuHzEV8euIU{Z&Pwqw+cpaZViNQLMA+oMDK837#3Z8(^^aUm5BM&UbRCf2+- z_ECg?0{|c>1$-#bU}4(|&baeV>?3AU_^pEIL)h;lE)-)D{}*=2X4ZvV5`@+>AVw*K z`qjkT*23KMdfu5%oC=lY@%F@^CK^PcfzcV_9`6^uYM%igEF{fizfSx%;uW#nAJTWl zkQ+W|3s^GEj)CU)hDyNSy@k+1(|cjQ4=@fmZ}wgkkXPe;Df$cwAG(qX0NTD|zDf-$ zM7Lqz4i1)?F<Mqiort0Zcyg!2d|V1MgZajuLLDSC)Zhlpm?xmW9pY;gaTd0viI0nn z@ji~?Ut+0z&6!vF9e{XR8{2yYTP^s?FMR+00#+{0D#j|NAo4(;)bBx+z<}Xpq^20$ zhQ`6s4r@(e@6!t`<rz4|UYN<JP8_oe^K&>-?E5w|v6@X0cuxOvm?1?I`BM-wK)rMs z(Sf1R*1HELN?P&=scRCW_VtyBOfm4x-UG^XZXMAyenOsqY}%;qu`;9<5T6Gkf*;94 zbhChyElgWnu`+8O7-qGe*cK=<MGWys$}ERMGbfzQa+XHc@|bVh;+Y>6RB#Q)qc&`< z3AakPMxbB~3M@tmHHtrGP2yC;DNNK&V7Hj|IR(eh;*MgHYbDK@OTfs^a>Z2I{p}h! zHug>)WXv1~C^VGQi&WlwqHr%!wU7+bzJBVuh1-n_QNL$UeuiuoL81ONueK7;R^{_N z^xEc{gG0j=nJ)p1z2Taa(S2u7K3APKi*^3Zv;W-lvH#5yr%*ZANQerVruGc?1}AKt zm|^Bw;ZE)%NBsceI<9p)UoaHYPFReGRl=xqg>&Rh&P-R@KjM-f+MT>~v~FZa;qnpI z>fq?6i9N)hq;v|i;+)9e^3Y-R%&tEq-A_b$ThEE;=yedIX|wRQa)QN`$P<TsDZ1{D z@jYTjjlh<y)YM|8QOzejUoLlajFcaXZlI{A*z+tCEJqhYcM5H!cPc@Ur`!V^=23zx zJu6rjwYXgtO7O2^Bz}EsG#|pTuEuF+?|8c{g#UdwyfH0G0F@HjZvj9o?<mCPshy}` zPz1o;)bFKo!;T-)@~yf}XrMH#JidTf*yKwGxxA)*T=op0RI?|o6Bua=cR~yGL0hX+ z$_S1|w4lL5hjHiWFPc)y#`=5vo1$X=6tbC1sftF;jDU*U;($FO6HQqkQT-PYYezaA z_0Cw_D44$_%}bP~zNmQHDax5^bW3W?&x5_S)I90Ww;SR8$>LrEk>L}u|4)QL5n1A` z4d5qt6*h58{@Zq(5yonyESgFi@Aj4*Ps2zr9_B2q1kO3GEXE^C(BZlmIfC%I!X^D5 z@mScqIEae}*dNXDzL+mB;om`kv0GM}q{~@iS3GpRWNGIjW)}JSp>W^QDa`4M%7e~$ z=LFwGpFQW@W{0X0FX~<H#qi+V<>R0fc7t)S8$OyB@N$QAYdEH57SxZ-M$&><bsk*X zQMPSJxV+{3bV>ORne?y%jpSn+7r<e+5W-YgiHM_-(+uB&Pm-C|a3@}>Pg8<s&5L+D z^_zlUnC(0XN5LD?R9kC4x`2RRnVGtMfXI{Rb<@LVQ2Z)eMcaipDOxfJi=PMiI=wz# z-}^5S(ng^$mnd#HJj$fMzHY^?!DGUBc8Ijf@fS{F!Wu43BRA*4>++y3br6Z6jQ0Ev z<1ul%se_vcI6vR;a)&RT!WHGPUenJE@m#gG^F9_~9vymJroU{~;`eyKb%uv<Qd%<? zTA(!s1ck2HMG`V5fRGkg`xJ^zn{;h>W%79)IwOaQ-U}inl(=59kXyXykgtj1+E|@o z%35_j>!`o`e`IK<blI`WdJ+~XPZDvFL|$^FmfHHoGFTuv(7TyXE&J~Cs;c(H6rVLf zBJ^4`wx25p*hSZ(yzY-5^u5iGc1jwy{EUN3eu2z&Lx<Uk)cZkb=%%HPcM?OMIp#)_ zud+#Kqt|QMHBM1{x{#s^S+CIhKCY@`FD7s>PC*1%_J04JBZO#fs7@Q(0rL^rrU%$7 z-c*i>Afj9e!0BRV!NQa1yKW5hJ4Pl#G@{{iuppK>*$5Gj{AS|_TS>iuiBMg|HUu64 z9>@*>9xpH!nS`y(2s4nY9$Pu8tPdp3@f|0opctVw>!X*dm2Av)VEV@m2ZH@+5KXWd zv~4;cl%f<OjXhgXTA5C(1Zo5>x?=$zI0R3i^Ogs9N?Y%g$8$uI`)J**lVJ$%kf*t@ z=vYguYKOedaM&j>*gb@HP93Q%<<Kp}K2jBIj@-zk@(TE?oJo?C>z9mKqx<4y<c^0F z6|8E0Hv)gOTr3B()<Qphouo{+f=Dx4ZN1j_Va+1&dd7N@MO(w1X{>2>!-IdVe7J?3 z3Va0I!R{}ghXp_<mTlcK8X%qWjU&%Wav0VF-{K+g5{?Ht5jyCGc}SQI5v5rA_%-Co z`XXkPClR}HU(28OZN?Lj(?i#A)eTdx`)Z>aA#W`UDh2Hrbp7`%NC&}(-*H0I^e7a( zW9#|ZiVtQykl|Lxp7zqHjjoG2NcmgK(fqM4E^ADFWYO3!h-?REze_-bDExByc&!`* zZYdkjFCPVJ7*?n%8rzU4`SEIRX{_&KnID;rm#);+|I^&3wHPACeB&3f*GX%;!rw_| zMGsca*GQ49VCQ~}wht*nL4a{0>^yt~&~5=SJ#kQi)vQWKMBo=*K^hnY<zKiD1OODk zkqYWN3|h~>tRD-r|8GL7sk!+-_wN5~so%o;?RMCj(Dzv<(0nRxMa;a@d#O9i+m?1C ze(|R<3*9d9rMp%nA$~fO2s5xzUG~MV?;St@pxDGN>EoF#5da2^Ip}>5fIUMd`Knb` zeXT^Q(X&aiiYMXnxw~BLd12vEtuzOvVjOy<WyEn4)diI@Kv%9Fnx&cP^1_wepm_YE zGD)?JENNn4p|XaZ1wjn(NmX$YsW-xCY1xKcZ{W4=&Z}~G%Nr7WqP0fbG_;$cPrskV zCMA`=ffFa_Hxto+KF7MtBgvIrkbkM9dQJSpnB(@&tqEeOaYGFgaqdfDQ@(~JZ+Z4d zWBFvsXG2Z2rIl8<p#iwDlO~{2;7`d!I*F4lbySI<H*pt>eAn_5L*HBg@U`vEGN`>! z+---oC$G6#*o+#4%FSJ5FHh~IkJiqtwnv(aO^09b)x{`Wg2%#4fO3^lk6rM2=WxXd zfzMV$hwhM0<xXoxGj&uP$d?bb-&UZttv?2H!D33b`nlMwNK&iRtRMwSyqlPA#mW~^ zr)R9r=#KK#0A9gA&4LTvDUC2e*A6`J*P5vfW@sMxm&B1*vguNpWYeZIY+yr~{=;jt zY!lb{UKM5&wMoX@RAFM!yKI{D=M?mMf2^!xyRQKv4;R<uv6QooRs~Wkw=G&Wm6&&# zxeyPc>bJ2cS?=%JIrEnq1%VQ*Qm3WVyWa5Jk543jU+3G@8hu25`}cjH9jwGWfrN6v zX8bt8<bhh`ndM^7Es>%M0K!MJV-M|;+W4z~k&r71%qdvubkquzJBdX|l~t1Kx~x$G z+AF)LEAe7u^=(Q!{Und{CJrL%a?;+@q?BZQ5DH(Vh>kxLl`5?*HBKhor44vG?>EgN zgC$S6y4JNw%QlTE^+gJJT|Cu28r&tyDN$tX*(S0c0D&shN;0TLgp>$G-<hq!wfZ_N z6RHJWBa^CB<z;Z#UZdb{e{#J@E>YLIS{qb8F(xt)`Wlts<Y22+DG#Z4AYF}2@#LbI z5xmuKYgaSP1Ltf6hu-(KhOYR5#_+shX;__=fa$0cp&LncmVLO#$2q3U5WfHh8@&q; zdIkqSdcB(ry8}@!?s~2Ku#;GC7vM)RZ6s(uyubAQ6Xmyml#*_wwTBn6n~Ya650X`m zhQf#xG58~3T_GO+_D0b$J0qUHmqCMH*~Ip?1eWxou6jN%*ib@8-eB{@()gdGlEhE) zD5GVHJlP;Yy8btK^RbI1V^E)XeBL~>L8iH{f)d)wnqkNv2(=HjEeR5ey1k!Lwyv34 z;VpqfrAa706%R_MG{!op`38!;$^=couX>^i3pXH{`4Y;fM4LH~y|;>QvEf|c#}Hy5 z-o^SffD)lEx7`KuR5S^z9;#a5P)BA*Zm#hK-zX@O_NI6rXSbK3G6+6{O72&DxEb8( z*E?r$vQDg=vyM7)Fy6?@#A}>&rGBN{7=iX~TC6iQ=kY^%zOGVCaex{cnlSyV14h60 z=gjzT6OeTP+;2;miny%HkD?Q-f_`<EZT}|FN{kRL>OUb^dsweOl{<mLC~ymbpByOs z@5dBePjBDvy)%n-r&FE6#9>hh{_;JAac4C{jr0BaoZ17UBe#})d%Syk%LZ3~L|i}B zD1v{AtHT_&I&0cyWCTe1Va5FPV+NOqb~g!8+RpPY+fSA+|16QxR+OtG1YxdHcWVu* zwWs7@=|d*etCLGyFb|b10EVw;x270(gq`t};ic##fwS_pnC-2c?_V=!Kidg!BGiTv z@^g3LiO&a|F64y5LdN-xe&}HG=Z6_?1rTCN#Bmt4g+caI^A9TV328uG?RlX5Y8QDW z2L71(0g&d_1MOD7KIrrTj(Fv{<tzRZ;fT+^vU$GxO=qHgS=g@viZ@r~V;G$=Ay+Z! zRyn;rU*7h5dfl&#T&5kEUp*bnY|{6BK$W`>^K|&fV*=M{*`3nq&ZTMFs|6_34M=U` zJ2_iE+dUorve;}3kaQW3DL1+R=hf(N&Zdjag>o<FwhwqUrsA^8vN}z?%CG&&$ig^7 zP-&B9+AZ!X$sRi6Mb6k!c55_PmO0a#jUJ67GhA4Qm>1-}(-#5b>zy7c1#<((nSjbZ zmq{GED5EsvU8268Ft11?!SNI;B3nXQ*6k%OgYw1+F$7r@AuYnN^c>DT!-yv^6p7-- zktYk3EICbQt}t#o8R)I|=X2Tnt4D_k9F9jjXK%UZ`>RJoc*gC-1~crJ7$Yd_i))RX zzYSKB&LBoLG+MQq_?jqKHYjI$55MRY0esge22{ogaxZG5BN}^%uqU%6eaCT2QVC7E zg!bk?J?INYR*wv_UC>%upUVvxj7o(3ijo24&$z=!E;u5W8_mt1<W210FF|Lsvx-5V zmds*s=oa@7`q{HZ*n@V1rvVYJ#4RhMvDJ9GT><Q@YAgdKt#hMM%FtMW&^S2ZO3{o_ zW!06_iaW@SdQa7JP1vZ;&D&0{p0t$b3FVV6<HcRT{@z=Xr8)kvZc{|MPF2yQ7(niG z?urfS4`p-fKJ7#5KM%z}oRoCfhi4c2IAPG@2_fD<Qgb?ZHj-XEXr)!edZ2eaD>Exi zjb%^P*lNM0_eSF7UF$R`vQ1TQ%?c<W<B3iYYd?+DJmbNFoDl3s=5r(X2lMCw!If}j zm{|Fa9g*>lX*+crb6m&xn^!8JV3VvY>3n(sWZW@uSX{(W<S2><-9%4dl`SURv{7!@ zPEOv>>tl1*n@?2m#ncuewq1r=o2XwJ22-7TdLvm>&6&a?c`hIV&tGi?tqmRG0#u<J z*d;M#Q>Rly?_5+r>t3r?v1_8)v17h2JqPJ!<%Z-X;3e<s$@PVKUm+rs|EWt1Tspsa znxw#k1XJ8YIJ7Ht>re5Xy*_b7fA6TT6WnH+jSqEI2k@aPl$gkA4&HqkvPv>Lv80gF z^oni>=N8auOtbBj;F{o7gk_*koDz~#)h3v7G{tN(gc{IskfV-EM$pp6DP9t9tqg~$ z#6DP%E*`e)h)N@5>uX@9;e1aD;jsA9xRAQR7!1Eg4}*Ia1D=~<FW7{YX87N40c-oq z#9(w(?!{Jaui*Mb5FD|1KYOvaGVP8cXBnw!3wDC6N@^yC5L+#<wjEtvfT9i4g%-;4 zY&9ixo97kRilaDf7Do`bxU55n6eog&Zb1nqKSdMWtv?pVrxrden7)DE0vx+*+5&mq z0Fwd%R`DIoFL<;E?0!C<W$bmoPb0^9bo#yC4!&Fh!L4kY=@3HHe{_<A!gkYE{L@Mu z;joQ{S~1J@HDWNmZ28)6fP?43Tl$gz<`^8z*QzTeo&*tqO`|pOY_`%OWoyp8OcMjT zgF`nFtfA-88APp&A`YmyQMba<O=EUrbnc!wQ#9;E%7JkVY2ATtT1#iRibDwHi0<A$ z5^l3Zb~Wv4t+3~>yT%zFAmk#uxn9#r+)#nTTsdqJA^;BmpfvrEj3^Mi`%a&Z29sz0 z8oT)VR+FLhyfVj&%h~)rgLQ^WHv$r(bPjWD0?a6l&F-Be`CD|Wh;xR5yhIrgwp<#L z7$iI~oEz9nC|SJVOB3jq6cx!7lgm9sIl1G6W(D3m{>ki6EoXl}2Fw6YH-XJ~yo9;l zH23De$`_~{V>Yc%>CQhn9#1|pEy5WF$F~NQg^diN@mC(d6vJZ_u^qWZ%3xD4idc@P zUa6iQkwSDZ0T4wt45^ki--+rh$s|(J_;L)k$2{tY{FGP7{4i?4DdRA^Z!M&W6=8h( zmfOWVO74tcM%dOQ_e#vH?Xll3yv$Y(6sC2D*XPSnsI{c}2ui-b-`$~5H*cN_9N;tg z2zL4@;hLAL`%TqV^B^5IZx5U`9T7qNL#LWvt(;_l@Cra|gXOHEIelTpoNJwyC@0eH z=j(W4<Wk+vto@K}<fByhcC@8Wo<mU})OAHFq=S?I>ueS?cnl$#a`nPJ{1_)gK>(<c zz225f-i#SULyM6_ASvz!fF~y8{E-uPfcq=-r#_7#E95hR305}Ozhk7hh#VAhG|z?y z)=}33snRa3(Qqwpbq{!AvyX;;DP;7emzJx(`I;w<)SavOxw*>4PZ+Xo$1x~)T7iez zL$0^(Ht5?wei+D$HXae0*)d=vaDbTgxD+sKITpll(Kvi`1+rz1gAzaq^rn_&ECkAh zYJAaXzyi5(X@m$fOe~%vAhuhZ#{M{JWSTpGg@AD_g!~C?-e@0b*fS@JBz-7^iW-_L zgi`)uG;mX`Bv@m;Ai_Hi?~6tvqoh<z6alAYq(}7h=%%$|^MnkvEHv)JnBXGtuMkE} zIBQexnaAIvKLf(}uOiS7$xDbfCkoy&3^-m<V}HaN9;glx>$WpyG^jQ-$Ek!|(p%{+ zT>_6VGYzyx8E+LKlr^}8X;9?f0YEb`k|Zfsffa_9dAs6+p7s&=cf5>^kZ;<+UDu1) z)vBAW5K0ZM8fr?3bPIMf)leyp{`q-dvTp*J6J!1jj5O?lRzbx^kZTqM=oufF86*LA z9m$oJJk|CWA@`!Pkc}#jmPTTVg4qEHBMLXJMC8PK$S3EN9OC>2*8!(_i6Gy!b$NIn zX6~OhBXRA@8mjbBtDdiCZ*&ZdJ@dtUk6r=7{cN0~b$28;4zm>A=D-W>H6VRmfWa!m zo|z2JiblK?6k6602GzQDl|d+YweU1`io#~!Is9H$c{=qp`^#5!z4<DHE_QI<R+BBg zCDoB0%Qi>MoUOS~NudD$#cZ$4W}vaelN-zOCsY94?73ZfOyfdMc@F#&=}A=kNM}^w zysA-yiYBcP0`&4K*+K(2h#6>sm|Xh<h!ePq>a{bO=a(eCKkY)mT<zFd1h%UXf)~gQ zTR!i!Q-c0Q_~Pf)|B}F4Kd>r-Rs7&##%-6+&qFc_T)jy{awXxY1IY@jI_qb?61RLd zk{uhv+_0c+4Q{S=>n394%sV`26JFE{3rQ?(IM*0lTiXhf<)#We8Az4_DC{;Zj0EOM zfdGgXZUU0+li+o8Vq!vs2le-zv+%nXD>p!%qv=6C9wkd0vr3@1AQA)@95tuV;?-@) znM-DIJ&;F5?bXE#+Ce7De-by(%fZlj@yZ|Bt+6^w@}U-Mi0-2_Sz<c1WcDwz6ab^d zOJ8QIUaBLo0+9}dLByY2*ge4GK!!Q^hOjQXbdVi>o@myDg?w9zYDyMT1x2;z9$sn2 zk@W`JrPb<?{3)EYl5D@VF+?{@?PYD!-k*c#k*c&by8+iHheA}le26P=*4uv4(m`b! z!<9^Ae$Vw5JBF=21-Q&vXF}31_$kG$au^OlL0x@tu&9SYW!FY+1S99`r*)(}?bHXl z8ZJCQIhSOmMP{PYj&6B3It&dUgTy>Qq=ZFZ@hbOvLXZO}dtU;5tzWgnBU^X(B`L|3 zI4q(s^f`+Zz5>+f;aht=8Bl4$D1hMFzo28d$b>l17kPhANAqNL>kduEU_4I%{9~Wu zu5E@Ri2MCDhfDRgnK=})V%!#mHbwF-M9g92{GN~b6K{LuKK{%@Mu{vvkN}ML&5rF~ z5CXdMns}rA?a+oWy)9-=pnV0`T{~!)SI9s#;9e~hc7A4m*m?J);rHchN)0>JZrgj* zl-f(n7Y0U~N{sA%!sTnv-537KJv+OHX@*+2(Y0DrPZ1rX%Dh4iL5$iLvc9VZZ<g&~ z&YtYi3<WbdkoQiPDX8c5pV@hi*-udG@_N`6;O~SREmHVEg)l+H8Hlkzarttxh_%Vr zPjc6$5p$jX9qPu}H2SsL@Zm`{Gxl`ncm|AH=P|pLd!gCC-{ZsKh-3uIUg0bE*ZbAK zAM2%4z<2-BygBPPx+*sQ@?3)m8qb?#&={$F0gEQZF!b3faES0dfX^$3Um(Hs-%BL7 z`I&v^2gL8TznaN2KSMGM#jK04e`sr)Im16Y4@hp^o0y`E^CTS|F2Y^mbe*PRo=-yN zdw25R!z56|b(gTE$_2DrRGMF(hXjRjRwQDX2+7nwZ;O^H-wKy5%br2>i0#odB=ub^ z<Yaz$HdNr1lmk&S<iHE22G-4*T`(%9MZFz9vXS|;^yWE#nt{x;Hvzu^-(fIlG9H<R zuXgO%sy&s3cIct!Lj(~+nSmi06hO*@%QX6Dd@o2+S6fC5T%+DH7WC?b+{v!A0fR$A zrg-qJi;m5IEnv1dKl9<ie7}4eqD{UwDeE&f(7m|BQ6Aqt-ha8Nymv<nThJ(3GkA|N zUwi;E(oVAOod=FhGd>(3l>4^nDoyFZqurntF|bpFX!P}<D58;;L4}dl3A)%a(m9G@ zSN8WUi=J|381j3U0oD56IaCLAjra&pVkcOU6x(o;^ZISzPAAp(pO9rFN*HKe47c}g z8+1yf<_z`|j0lLOYhG1NMl*~%;RcV?IJrj)k<$UHv&QszF1$<<1O>`fwmVbrQyaOC zQO!eU4-C{-W7ahDN~^hsuQ@gCmfwnY%azaZctHRj@epEs6Vn?o;l~9zz2LNNflQP= zvg_L#WAT<~?KTo%(0suFopJcy<kd<$)y&k8E$nU}%ZXPFzG(xL<1)=N7KqcaV^5zH zA;{wNo`o$iurowuiJs)%SJE?l<F`9J0r4h{r?(1Nby^yGcfNNt=xyf{kkp@{-w~1; zQbh&Pb*O<%<gRW?845!olD63Qi5?C7LG)$eP*u^WHJ4rxmuPIv@ga?2eo6&r@lV_` ztZjfMzU7;vwIHTPD|_@Ui8I)*Qwvoikl?b0`D$&;{b=R^FKQrJ0gMKtQqc(S3k(3L z!AAqgZrh*HWEKBuDUPRKR+P9rdQX(Y>OoAV8~uE9Us_aQ#*_}Fz|9R!TwMMMS-*24 z&o!|xnf|JS9==d0>Ht50m$g@`e5?9k_#Y=1*N3Z(lzD6_uIt^KaL5QlO-%iZe7v{0 zzw0P9%nQ_oa<zXJo-c>lQ1N&kEQqO!WeyC?m=|9QvYIW#;aYIa+bEZ0xSH$*)YXq; zYh4(YeJA{qH9J)`F5*bNUs3gDLKznMiUPyrXHs{B1RM&xg*zUr#4U11g#7&#;KZ$5 z6f+l7W3Fs3bgWw|oo=*TT8Jgv8P0U5WA@woxu&?tfBoq1apb-2wa4&2m|}31CaJQF zt%FLkl5GU#fuX7Hy!mtkcLvYiTP?8i`-fqVcQ+o+Xo?zvXtoD!T!4u0MbTnQR%FT^ zyEb_44FjxC{~4jS@w+2(v(AyOK-5=rB2|UOP)TA}-CGG{1Sop#+K=$kLJdK<$sTCD zF*A5s6mh2kxG(4v3wK;8Dx3!rswkp$BIKd1*6`u$W9KGaZiLmCZE3)Y!0+8r!G5OK z87M-kJ*AJpG%Co)C#7o-9#C;%BEC9D$eOiDwWH2qP3)B?t_h=04x%+>CRo&62dRe5 zes>s|;gc9NT2>&D;EYS>vQ5YNjH&oZ8jCTRdQn0IhK1B=fpPOBA4Z%ZW%Ery!?!;E z(9C6D?u9zWUX$VbAcHwC>+G%$^!!fSk(%4QHHk(q@8)Mn)t$^rem0GvpS-4t!=a{g zh~K}oJ1Hz9g@=W`r=RaPQY{gesyjx;woniBf8pg_)O7GgI|axUkaw|o*h*sIbGe)n zdCyERM&FH=^A18!A=+m)jtj_Q+!}BV@>pf2@dfZ;kyYBhvRl0p?;hAN_8T!sOR(Oa z)T1GLIXQ1}d3SrRZf1n9H(IX7olM_V<O<egi{AQ2oFZ}ZLx&ocipPzk)Oe)OqJgcV z%&#nrC$*jdR!Jwb>4m3F`0DOrzluP*2%|gcXfrgGR1~Z*uYN_!zCqBdE%l?j9q?mp zdbwk_i18X*-F25d0)l9;+YJ<4(lOuZ9rW5dkbPZ`msq-gz&dqo32#p@1;Lu{qpjUQ zE||uuZ{87BcJM_+d=m!4RnC+6SKd}qR!5HiEpf!j5+8VJuk4DHEx5anMJ7t}5Qrt# zI!+0T+fuVDi4EF-)JvbZA7vbn%yo32=7>&;*UCMBTp_FR{%ah^z(pupSAe&$cCqFw zm~pD!2|qicEYE$B>lFx;DdqLjdAjep5B|(+xu)P?sRN|Z+HJuE+k>g?UhH<N1m$Jh zHta}J_#!jTt?9smrWoS@5PC6w9_VyC3hgtIvB49uJ_Q24;LF>XZjSAx52)|SpvIAR z$(8pPO)0d^>Ix=%+(<)CwT#@SmlsN8{tr$MuOT(>cWr)gt*1>eR~1Rg@iP{eo(^D? zJg)!Zq7QBkD{}4Iq5fg-A`6xKPPC!Y6l06wLY^<n5yJO-p-CLV>a`-0U9<v-v3BYg z%Q#*(=aQH`@<*B#ApTj6xr^7eUzTmO9LWdU?t<9;u5auaM@fL+rUjPY=hwsO>8}3I z7oDQpib@+S^yTR98I2w7ZXQ3jNFD{p4kJcg$NKfck{xA~uqKCV8+094>}8*IyiM3h z6zKKHh|y$$aM(oGMi1EB9QlDZmWIS?mLiwZNwdFP<XQ?Pi;8pAD&!AqcSnyhxILvy zoVx0kXfu*4h}xK9It){z-s84mv{^iCRw=VQ!GS(hVcRFT^IJ58$edw2oNT9D6t4%Z zf<Al2ptFc|IP?!1l(GC*M{m0o>mQ8-8zomPfroy3bw+GrE~N}E4>(({lStStiKCXI zO`LCPLSM?UBf;e)x0G6RQ&59RqM4~UKpsZ-xu(FsbR{2yd^30|emLG&OU_tkJYy4K z%Un=5;ZN!q(?NZi#Qj>ICJfw^C!A!RByCjvP>LxuDU$JCIG6|t;mSaRZcEIa1at6D z6rb^!E0T9BZk|0!J5>~1zt6J3h`Q5mE5XV|Xv&Xd<ndlzjEz=df5nk*?{ovQt%H&n z7*U){8Suf?h0BRgpT4~ClRl44BG<aq%)efM&{C}&y&q2=4(Q1%H&edBE?`r7@eZm- z3}N{~rO}|K&!d}p<<YmGFuQ=5+b0To3|Xdwq;W<|4>lTnrgz}D$Y1nabx+*BSh89_ zT1l_CK?>=WlRN0{*a_a;>NW?05tp#0ku~$PRcR!Y{Mb=|oMuhD<YB-K>aoNZv;$SJ zqtY_B;L!32{lw@R;z8+wRf1CDbRt%U8Ju093>m__V<SM7>Ika@W`2q+#^*&(N@Z@T z(zQvjT&`BGPu`|8!g%|ttw#`4rghfn<}OPr@0G@Z7vIXYJr32u$@snRuP>w4^m8L5 z<SX@&&2VMiCQ`Z8J#xu@?<czQtsEY5=&0%6Dqs!RwlCH56hoq!c4t<21xuv0V9Ali z^Oz7%WExuiZ~?l(z2zK&$WQpOWF_lZfxWWZ{tcQ^qwDiM3bWi62L+_M6*fze(}Q5Z zZpo~_vB#dCxH}AN)0(*&?46UtL%$5r&#*fR{p~T&B8uc`#S`>97N?HUGTtd^gOl-? zJQRE5oUgFHCE@_(+`4arVw2*_v}cchZ?EE;cFP&(|J_SnyzOI+XPy}il*!*3q%CQ? zn$7>HzCG$JsOvrj1!MK>@i^?u3|^*Lq@6z_$eq3X^RoS-2=(Dn28-OuQsHf8xbS(H zqphnNSnEt8rF;)d1>;gn&@s^stVQnSTlxdrx4f^`my1i950EEYC-)smos8%C<yr6A zy~pn6w@@C!3QMS(j#i(GtcBnq#7Ah4ez~beQ`??<u5xQ9oQCzpBMhSZ1R#ia#g44g zbC~#L@Vc++b%v+YPCOVmJqG4qLf7Z#G)`k_adR!pfW$NFao6wBEf;hZF;>Uhq2*9# zv9bOEx@gfOmq+KW+w86YW*S6v_U&i57gY!>=-4F_Gg=20L|6zSPXg8sf7KKo3W<m2 z!40$bku65Q>rV3hN3#cC{&z&Xyn@3rkH-UO=M9S2@sKFu_Sy;UL|68ETwtVv6q&H} zZ72C&{i;cKhsCR~eu5(Qi-K>A6^Z6frdy}(KBdpF-nfL^o{^{tf<2K$9@m+O^HL7p zbs4-e;EJxA*J6-gxq81?hqYlgv5eg2i|*I?Lyq^mEu!~?4Zwg(eRLOgH58v(ro%Ic zj&5wOS$A=!>}B4L-s3<xz=$4_o~D72sZ;Vcva{t@kbsoM`!6E*wA+HPJ(qDzwiwwj z|9=v{(>V(&VCgw;0^k4u)c?5PfBY|ilc}?dy|bO2wG;jS$!-46$mSdk-MGzmRG-&6 z177$>a~s)GS|}5MqHR}pfe!_cEZR&X1_X<Uhx!DGl;TkbKcBf0k%(qq$$H=P29bxY zTQ7KB?CnM=tu^lTzd9I2F{X{z%??*(cR%7zZy9Q6hk+`s$R*HmVPdyKuf*(9l|is` zx<k4(ve>!inkBZ{wUsyqvFxyisg}g>QT0nuYi@FvqjYHOS3wCI3}qP?n>WKZk8Rj5 zalPO6Mq(^Vd(}oan)THf_e`bk)NIpMtC-(J)C0xF3ZMp3_)ag15HD9c=J+=^aErXJ zUP|Y++%8|XsXpX2*C9P!exEP4i1q8URah$eG-#$nHKvD;RC+r6G#GqS#}9dG3<KAe zLIJEx>g7B456t`m$A`M4Tm@7GQW~L2(C`b|hEUs_6)C(+1oErC25~<CK57}Zm9$^o z*Qi^t-o17rV5gR#ic|VCkT>?l&<y!u&3)Rn><b=I_H0I<MA4uhYTgcm6yrQL;N4XI zvgUu06i_$w(s?z>Hw-X0UmGj@g%_oW+l9NWNF+vw_YH#nlK;BF-$K{wF~50pw!X6_ z^^GM<0F%c4qXtO$Ue3!!0b3Afw1B(!uX_*1H%fgC`ZD!M<Y2(9Elp0Z)L-Bmp;d)U zNTu5%S2W-=6e6%Ph;xo&zVaaWG!W4iZIH077|ZCZIC)SA^Y%HZC{6O4{jZ}b5L2kk zr<}QuYvb^Ou&R@Ce(MriL-)HY+bgbI=O}M_Z6A)w1k<UhemQ);Em0t@e_7AC@U`Y# zNdo+4ZboP-Dx6FN0Ba&SfcF$8mz)pdkw(&yMza6oyT5$&rd3&G+gEx0JhP;y39p4w zvptm2*Q?Aam2*y_W%!*VuI#`erfZ-y8s_FpEM+q*H$P?{(cO-LToo0=7xq)*wfcgV zj)B+6*Kq9$5IS|n9l^^7%}RpxguglVz@>9W_2S4&m1K?q#NY2b6cyWb`e;8wNFeGP z^=g~`w#eEz?7uEdnXKI+Iw6$3H6_-G{KqB478=CIq={}BJZ{5Vt{-M{sGKE6ufd2e z0sG}AzZsFS{q;CpVCN`ugJ#It$V-r3rmkGl>G+ak5Ni{b+lc03CuHx9!KW##^jS0$ zrNz7C1I&invV6d79fz&l6|Wro#mT-A@pnY#Whq;+uI&Z{u&Bb%?CLhz6t%Rf3*vEQ z^bUK-msTn1AWGv&MN%|Ewvfu|u6FQsctxW0p^;sTLLGZPb;Z*s*RbyiWxDPd-8AW% zTR!(?xG8cIK{AWnqRs**Rn&MS#a89qVF#APy!npa-LcUcRH-EMz->fsoU+>?!E)GU z@D(4|s^?Lr7zqxq0OSQYltsrlQ<E*9NeGt=YDbw%pUlA^ExM;}h>?h7s9;8-eSCkY zQn1k&>LvncMlv&DkyvFE44V>aUB>tvdz3R}s>b={1;#e;;fN)$36Nefp=yakHSVif z(mBC~no2U;GTDA}a;T|`GzXcN-6B7B{6?{Ax&XM>z!kc{Y**$+0(EkoURZ2NhLCxi znfz5lpHRa1CT_8x{xlc#V4nJC&{VjE#jyJjHiuX{HXZ4GC0$zoTv!VM!6lsKQOir< zkH(Kp;^iMoB)8o2>SJ;>V@~-~A*oP+F1geK$@WTrR6@GSe%@k4TBc!S6q5}&-iw}v ziy-|uy3_sgEACxG+Gom5_F3C_%XVCAe%@|kVcu`lNw?hfy!T^_&(KLTxYaG|3&BCU zt%ZjmdyD-+7-&V*S@HZE3_#Xgzpw8h{5+-4(Be&ibvqC5c0Vax2(0YL=g+feD~_(- zK=piwXI~DOIS<`=8>9|lh^lIeGc<LS;hm=PvRFcH;Psep*S(Bn3~BxJViCR9%3^^J z8^s-Z`a}02J}z6F8Hrshy&vbizKLBCl2l8Wh@u3zUNTM(5O+XzE6{2VDaALsiNz4b z)9sUkVO8v<4Y^s7ue0ikJbl8%&kNgZ;Q0ZGCk%)}3Q)q3K9IV`HyNC!M$%ray3$sC z|DvkQpl#Yd8un<2aa$rQ_m^o0^o6Cj3xtU2kj5TFQG)|iC`>@OIEv*=_oaEUaQv1Y zpo;7pQGba&_n=v8LnpU~rI>K(Ttt&8erT~qjUvP$T8o&zHKsR;{s27D;L@Zsb07Aj zl-;}}Fp;z~@R*Y)f7{bt8_MnoJmSv~YU+E^Hd1x!%Ixf)>PBs@<Qn2z_}oloqZC;( z^QNKkedo1r&-~{f{s{*pwfrgP9xo|(d6k&<dhY&vI*?tj+w9{n)~kmP+p(HnKxW)S z(o=~)2h4-*D_JvbC8d%Xabin-M?L0Za~~QikGw9Yr&`{dU!m3KKke;?d3-)bLw5## z<F|@lgNwnfLT}LgIAVQ$^8_G3-$tUv1L`Y8^{kt>hxnwS|9tKj3)$p;k1>g5<rL<u ztH#*neWNGOedC3HkUs~C{;6u=;iH}pe*gRE4Ro7HW&s8OXoLU&Ap0Ljul|40UZtqX z+GR5!^gL426hbIyI?AUgd!Cnssa=#*#-oF+>eeTWk!=5b%mSSJVXv4pM7{dw5#XL1 zrn1^xsB-36hJ{jj9qm%c=pt3ccDiDq#exBXI)tdR%V~`E)nut%G1b=EVhzZx32=j$ z(L5sA(;q)R<R$ypiO(j6P&3tSF^30)<ps?#5h8^7<$%@ol&j6Zv@M$kB2tWKV*boz z=}2L%V=*NHU2y%>0p9weN&*j9P#z<6DK}or1jTDlgYgt4rC~5fpk7N87!*X<1X4p| zh10az9qD(9$?*w-jU5;qX(G-rA&(=ok`rM>IXSYtIM06HX>?86FI19C<mYLUYC}bC zLhKuG4xgB1MTM3BEAyS1*l6;1#6p9Ds^nKzKz7zk*1n`5J3-H9r`$Ms7V(xx8bWg4 zbFEI2N!fogs+FWh_$9N^E5lSTIwwZ>*55vYTk2n*6Sdt+@+s6dTxl@hzZav-6XW`h zwd`o%Y_dkv>n8%8YnXtELcSLiX~HesUVw#?n2(Gy)J{%Htt3evh`tqjnWDhG%}SdE zCEK)L>Z)}M>QK9>@9ABa)yk7+eDEv`QBrM!3HgUDNXm?Vl+2IT5X3B=!k#!d4f?*A zplJyo4ruzbW|t=Q9FbgDYGmuFnOUd>?y<Wd?M|>=_1jT+f-{OfXC9XrB{3Fgzoe{C z=tjkFw4G?@0i$=Swam2S>D<d^#uWak2|1_pCLu{M{in95>J;z&e#MCVl>9s^erjDk zdWq2wHO{6P-GgS;G_ymHKHR#9sY>Obcfofi*LY@lPpudipaV<^8e&0kfHUOcscHpn zOrsqKZofUkohcm+KrI%I9>Iqy%3+=1aYWq{w?#7Lk|ZZ8j0_ec%u@Flz|BEf5Ox+g zD^7uv8VHrDIMCW?1pH`CmvWAAW*OO(nP(7VPrP>LIq}CusZ<*2PqtC`BF+Ec!dhU# zz7yrYYxny3xhC}N&P+C8LCRH}svc55mSYSf3*?Ys+;lP`T6TG=v>CGKbNstJCgX}b zpK_YC<A25<TpetzKel!wJ+hUvCnlr?fAW0Y_9MGg+Iuf~hyLH|4v}Vgjs_F}fEXSC zfbf5=J8MfLI(v^4b#1#%HWc62IszP+L~T)x7Y%}Q|CY<84I|7KBoH84+;traC4!3f zi@IIT<(TGdXXN;PqPb^o^@!4yQAQhfqc>Bpu8J7jbbEvB)y2m9Qr6B3sWisRc1w3| z2bICjSxC!AC3aYKRXUVJ2~CLx^DQQuVZ)~N<V0<h)~ym}M5Nmt8w|e9>z5$42;=Tb zj7jT|;K-Fkd>W_BmA6WFV2XA#sjADm9&W4SIob!??szCGGp-b^_-BeVJkOceoOspF zEO?hw9_B9G8}TF{C`Eda!9uk$zCWN*I-a!{Y2-Vb6DKe^rlf8Ca{aMim>BB3L3VJ- zs1^)^t*>~h{iNKGZqdWAr7v)iih5ib_1Zc-{?vQgl-!9Hb3LRirMrHCm(fNzHAzTP z;!p2AZ*Z#44_Rul(4e97HXYoa(60<r_Zw7D;cU}TF7XOHL4@C+?`9}MYv}0^U;Zk@ zsowFv3rvx|Q&Z%{WeCNHP}fU@p5!%?Xzns+p3zW1`#-mFekggjeH#Q;$UY)CR?^^- z&|~3ON9Kmw6ceS4uS@ZqSuIthAR%Ei|B|I={JTKYVndSPyouvY{7)x=Qo0C+sfFh9 z64ZgG3g1HJ{gCDa67XrwRd~~*RtB$$uayxT9K~<QHmuQvB>!^uYa6(bA7efq&$n)I z#O*E-w$-4}$v&8j?KFn{y&H3CZ=UH{_G`wla=$@NVZih{1dSv3jzpJBhBd%0NBdhS zfb4qo0u8afz0DZmLj&8npjk=MvihEj{q>m(a_<vP$HdkX%bzqB1tl*|W5TA1`kJ8U zUwzW`XmuBs>}4}5m8=AN_i?y|Ko@8=1B^?es6$-$6d}Lo9jNhy^H(R0a-hlh6D}+y zk#}WfQRP=39Yd+kQg@EUEQu2mI&JAR^85LCD9vrz5mXD5RAWk39(MxI;YBBHFd0{` z0L6Vy1dfwvO4rCIGj*d=AQfZ7ly;u&!fS-1PQp84wID|z#F6Wu4>PcY6%rfbGe;Ww zb_h^Vc)*+rR)iRV(wR+vDk6yY<a6k7(W4ZHCd(>Q0{vPpDS=6|ae+@bNG2fsD{NuC z+G{1Qhaj$pNdU*}QJ-QYiuR%8X=r_@VQ#rsAQcb=K35u3s;O~#MTwD=J}!u$%ZqYg zG=UfD)sneo0?dnVg8*lru?c1+10_UZ5LI;NW#S}dipk?x3B1}E47cNWHUs6A!J44m zNYX-pQ=fC<M(Kuz=%xA3)@Tp2k-)YEVu2FMa-NwolJ!J6W8CvGaK+(3Fi!Se=1${L zV$eX2@4Z~x&BuwVZQ+|~emZi+vW-3mFhUpWv~Yn{pL2}15?Vqt7)`o41w*;LR}w9_ zoB^3Ad8=Kqg8a+NX|&`O#KX(z6x95fEZUb8j>NMKE!t%qMJ4t6>7|Os*#KXg_VJj6 zUqeLp?b3VTnrJxCx%$<i#du|-Mtr?psFl$Vbbu8o>AqV1_&s|2rE|@%>v+ciW{B?+ z_}~-a0%f915Kfw$%}2V&Pj>ov2_MZvkSecrMly~~j+U}n^&lteP|*B7VU0ifLJ@e% z5xK2OXOAC}O%yG2re-tDZ!oPH=&Ws4jmZqWW@9I=@$u;xStltrgAmuY($+YLiic0w zZyU$$L`y{@B3B~`DQH6|WL|a~?OwP>21Di8qv*Sbz~ZBlkhS_hBR9$)G|UIX7K7-q z<?LA}=aJ_;X<~@mKdSc%pAm}6U*z2JrW9qQ<g3(Y0$uO_SF6<|Q8R7(x8krs0RWKx z&#l(U*wND7+38=qjZu@0+hjxNxm1@y1xZy-IkO1>@RA0)A{6z<bA*5jNEKtljzE#H z(tTZX3q>MT?2@|(5_ICQ+wtydDGd|j<o8_RRQNWi4x7zxdT$>WvH8%u5Tm&6zUrJ@ zQG?wHa5kvsGPeODo!2r(ABMmGX|f!J<8NfhWT4C4nlVM5z5CYDbT(^dB_mMFffzeO z>Xq<&kJe*boRX9bx5}S-!)d{$Rf}oV@G`d3OkK%w21)Z&VEFFQ9(%={C!c$S2WxKV zxiUZ!eMSoX=UV*?d*@x7YzwPXg9Fz5C@sFB>2Fz2%6gn~wcMwX5uj@yGE|!bdw<G` zcaXbLIMNr)h6;BFk!Nyh-(o4=!;T~z<BQYHm^EDJ+-Ai#rzx6JA_h^DiI48_#HpWA z?&`T_{Xk;IuLk7Ct2++VZFn+Ib;;vCWMYUzX3zYg=5mI{LlUR_bc73fys1x55$ax| zWtY$RQD2-kIkt%nBW8*JD9L0*Jnmv}rH|wzjo9J|i&<HDgUy5wle?f^vq+dQ179@0 zKwM+ffF4l*nXaiqe$H?md=TR7G>{s5%*#Og`Si}LHCEF~QB5L$b2^JFS9Fn?zB5!A z{c9kbV`VB2P)yy^HWI8c7*JA_Rt5)8`en#c8<`x>VqSLn8-5=_tfgC#K+%*X5awyG zSYP6pQ=vjqDn#<0(H^|B;i*V08+7mwZ%?;4u5!A0`{|vi&@Vc(N+~<Pmyks83$6Eo zW#4?zT~Yo^QvPoLh;GH#Ih~}g4XvMIJH4{a+zje{v_P{ueZ_q$DJ(kz_7jL8#?S(p z*9U@CPbFm2oHmR{(k{5FV$Z|uW*^BlJO4Vca8~j-Pl*R`&^xrds{f~H38esakypOk zY|Y%PJTHZ{vy9FU^XHsE?##P^%)7E#lkFez2-b+bI{Bq@N0ph5LS2Dc!irYR`$!X^ zq0{EAYG06QEiR$1tH5Rvb$Fk$kA`wOOSRK*<AD1S5uca#_?5|>tt?>Mh2*)kXMFRB zv{S)M%W2IvYT*%5m=D_~O90=CG0cIMhB^gp=a8)aFt<A09diM#NN85nGF*-2b>3T- zl>8G5fu}3_!&0HhKd6oV%9!AB`H+)DDC01M&^LonU{Cm(>k#-y^-Gqx_ivy4p6e7_ zE!x0TF4=UjyAC9?4^w=*GKm*cvdiC;mr-J~wW%&Yx~P!rqEuai&!+m|ugsx3!m_R~ z<qj0aTQAFP%rH?;Y@|klUt2spyuG%)HO9~Xa!~RgxT0<pr4TzH0Dv<P0071RyYj6K zU2KglOdSbq3~epVOr4zR+-<C566K|V84*Tqzfl+o&Ion?2uiJQF9rz>1c9U0F>-H$ zJ(}lC)Nb3^DQ#{jQIW;#>}0*qNI$G^V66fszSQm&?ZcYyCD%1;qkSE}3(9a55$KY} zxGCJ>h0je2()|;TX61_Z6$Q4Pl@_ZRkV00WdOo-yOm0??a9@dKYo0s9qUgbAr2wO? z^==dbp*x?&g)g39Z=YMuQxiOJh_@^Ps#q{8^~&DNa%MLx{#y-i{&1B+`5>$6Z^YPn zw1#ve1bzdo@<LPpqf(>Qm_!uB^0j1+Ao6O&>J`O>$%a>P>PzbFTYk+A4sBSlA8Xw` zM6$}%7!}HM72G!Zk;-}gk#;V9v8G5@#LfoklI8=Xv^uB!0GxlGbxK&E^`wRCvAy*v zKbs75ag9&beNW!>8@G|ug6#hLhP!??&g}hf!&O2C03i5(Kfb*OGuuCa*WS?iU&qbS z(2hG~!SK1QW2jM+EkMR|7tmrMR%?nH9+HBHcNd^=L@r}Z8Xa&oEB*4EH7B3#St5nE z!NT`TJG@PubSh~!ove1OnZ42|2TuCI-2N=fU}<e_WMK4Zy{w?h3u%=cxwed!UU{FM zst&=@(yURl9EiE^L&`OkBy-e5U+vas)VX}#@bOEnb89q7QJZ5*I!-v2>a)+;7Nkm^ z2%;(OnO9C-GqozA>hKzb#ak_Ibq);Vl}Wiui{jnC?0WljKUU+XQlpv@A){>~2lQhK z$Z1at^^hL<Lq%0hrKXPAW>h{W86d}@8Qw%uLomaO_IIwNA<*2bv_Cnu#(O}<#~$lo zubo}vsCrJ?L?q#sha2`zIF(TkMNSIXxPvB`kQx$isSb$Ec@v|{xX<_F?*5S+Z1zjn zTK^irAh@Qgy%Ppc%kZl0>HgV0#Jb#yR!eV=s%ir201(83DqF@(iI$ps{a<Q8vhy%5 zUG>2^GJhn9j1wBJm8OZL%Q~%f@MEK*FgDUFi!X5W(!=UB0e*&Ji(CNN3s3t&G7cxu zK;%EPOBjX^$YEYb+R#%;gJUaqjb<{L;TY|F(8hCc6&Xm#;!*W<4PQsNc3P9gO@jMl z9S`o%;EN_kQ0uE7q!8-rkZ&9*L@<6}ax%<vD=x?W_P``QAfjPhog^c|b<Ln=>#}@u zWY|T<&0@_V|A&h})*j0a!V(UbAnXHiM=K*2bb4CogtWq81cnL`fNT=>8>>{m-S0?j z3lj>8IuDeX#OYHcqcAmF<f9pCFDxu9qY^z1l`J-n<Xq?dpN#8Q>VMJoP0^V}-LhY7 z+qP|+9ox2T+a23BJGPy4Y};1n=A8R-|2xik*zbF+vG-gxYu2oayr@LxUUyya+mDFT zv`6$&fk}y!QtA=~=wcU?PbOBw@jOuUzxJ0Gis!IKb?=(r4KRe|a6;~vM{5<Uoz=zx zu01*tqOvGzjssx5U+4>D{Ls5~ONF`OGP}1*M;7XV&LZ)WHxV(w5<6?3=}U&nVZ*^z zZ_A?D^J;sqd@tv*EIrGqRE-F{pfqpQ6L!7S&!kOgtjCz)MTy5P+0YdAuCbs6iNwwK zBtt6dNf;<-Bur5rTR-MC<!pBgz~ULw_nIuTv5#WNP`ZOp@$`fB(42>?G7>k3;UMTd z7|OiJl}^1%9>lp+(+MXmwid1m2W(wX2EEPXE9sdDsx0(X9#<~2#Ed^%wwi1|Ik+`M zQLn>Vm8o*qABJPLrxv?<s{YyUWY|g!WOf^qdJy3WpAndfd}JpX@?c^{;P13AeEz`` z7w~Bl?!2`IgN=QO{mAVBidol53qyal<Br89BH0g*X<vpLk=!h_mm9?PY&E<>6sBuo zPlsYO!3(_-VdPT@MzZ+Bj-~dlEFS>Q_p<GEDu`Cb^q`+eHqDA>tG(*hc5Vr@x{$t^ zzQ_7Z^U+M6!>KcJo61TqQM8(6TCaK?^H8L;(R(s|7Vj)l#Qx*B*<(k3OxT_UWq}VH zuT7qb$l7U0%7>@u?wXljc#|b}-AeaqCNxU9U5@*#CAP{pU9pyI1M)W|*g&4fv<=g% zo67>(kM4(VxM1({9s44(KCf-wzZ`wM+a^oGHtk*(WftsRf;qAttPJ9CnQ6mh-uJs@ zKMR@R0H!2R1CH0V6K^tSWAJYeuw(3*>l36{i>}JCpJ>u9wcwQUGM}e^-Hzx8z-vlj zc$uQoeM74~&9vu;o|jpCqqM;YMp`WiI%q-($bu$x*uatY12CvpSBOk+4At;+{qaZ3 zexVwEmy<`jb*qE?BC~5@5Nvx#(@Q`0u|l_Zs_Ngq*8K3}zu1HZALMQJ#cNkDSoJlU z(ZJkliv_`{Ecgt_2;ZKQ@W(+*r)BXGaMt9M)eVI2_pPP>XDOy6^Ym+Fm<FK!4fLOt z+il^z1?=bA{QL9Z|Id}%$<*A^*~Qf9r*7LO3ds*K!iv3cg{G*|h@bT!)38cbo2fVk z&UNHOkjG`C{@pl8UI2os!{zyY<H5?{g{40t>*NZ2NaP%p{k^_eWbSpp9oEk%uOtGV z6|gEN9SfGk$iRd$E@wi{Z-D3Z-nVzA?MKg7q9U-7yc@2HHYZf84Th|BVQv)9TUSqt zOSniBVDaJ3Q=kFqpj*cvZdWD8z6;qELcPa(U5v~xcMG}XxJ}-*eH*ul5t2pw9EMrk z#3hh&mLQ<pXJi=3vIg`>umEC#5kee$p6V=XyEw$gEyByzur~Cht5iio#~uq8m^x=% zGOO!;rZp#wI$Cy*W>)o;RPSnZn&)04s#L}Bp9fe&)YuF8({U*LkgB-<%K_TE7`mAL z7q6o#XTQM++x?-A2o5ciRYagbSmrwF+NK*ss9>``ZzYpUS|{WGMalI~YZGXxU!RnK zV4R}8u{2bPYsY(u6R9?TeMSQzbiQ}~U76yGtU}GNNXGcwpBA`=&CSUJyVw7wi}~G} zk(?vT@!)qSXr4)c)9J?y4vYDl(Yo3>vs6-H;!Gf$o|j46>?aeDmSrZtVK9C_E7|(k zSfw+;0yi`He3huW23mU`{=)rM1g;(;Pl>e$cx>G%uS%s*nt1wl0bd5>0ptmyK-h4j z+WUUvtkalQNAX|Y_|&ehKnq~AJM}u+RNkXEV#eZ~l!=j5=Ai``^zBueF1<P8SD0F< zpyof|P{kyDGJrW>@6rKTwqp3D>Vrs?2u!9pk>4|aeUiO2cO7l?!K7*GOp3N0Tnyl| z&e_B22dXfmwg#K#|FnWaQ&ie6VxGo?QJI!J`lD1@Whl2}@@EY;DsgQllW4z*QTbk2 zZq^P8tEv-HGXBt<C<bD4n=^(KbW-()Z5i^)@;CjMQCfoJ+bU^b`LYJO<~~>BH&&6c zuNG9+#}BVXE+>}19JcjVRwuD2uht&<M|bmpc@P9l7LBK%7y2P6uicP(;bdnamBK|e zisZP4Kmcjo3i6gGCG-i?Br}1cQyl5>g*=<FhMwsS@*#3_O!8Qf0#BL@`=J-uN1CbT zK48u|G$}I`%5_q?(#Bj=EIbgNi^n+ZE_0rnvj;3EP1Uw_9BuHv0%(JKBTC4VQfCvi zrRbe19LK!)342@_(*?ys2^Ry)a5%cp54E@m;EKw&TCHQ8K4F*2;wxDn&_)SM{Kw`a zk#jnCi{%B?mPIGVj3-%p;Z&*jt$K>vQ6~y;i%=9ZyIx)K=yB)fIQ0X>(;JFl;}eqp zv`FjY3*pRO%%dlZcl{+?tmT?RyDWEd+joBHtz!oQpAkF{4KWP?qdb~3F8j0A`wDkF z>g%xUuN(E3PomWAqn%uFUn+6yv(!CTn9H{pXsu7^A{!id4UVt;pkx=WMUOI&-!T9A z2Z07Ivx@(epQIn;{=bwUXG1qr`~Taln<mNGg)qW~zGM%SL<2=S0gAcA(o{p4i3(Eh zgZCL#RiCb1nF9@3HHkj%-j2AqJz$FWJ4A2bo))xeHvc-0Ga${;^NT8=j3|1QIbH`` zoNjp_6<1a!i6a6<R_$}Mg`4rH^p(|KxL*qs^<ueHGC~$Y0Aa@(siqwLCdOiH+k<rl z2C11eQji<nX*|(8$MOLX^r{48_2bwDTS8V@OJeC>9x^MLcvL>0@$8z)?dta3M%a;~ zfBjSS)_kC}q!3I)($+9;VB1VN%b(eQz>?SIE!z`HgwHxwtOE839q&}0(hSmnQ`@oY zyqhH9#@dsIfCF3WS50^0V5`!AjYXMQtq*S<EvIF>dhlQ$k1%PZZwqYBf7kS!BI84t zQL83@;E}KR+AYY##ms8Y;^WQk3gM?4g{tbvSxVsx`Qap&)c(K0(77uN{@PFdLdOCC zaQ^2S=4|qF2mCj3x3%BkME-ZJ-|ws-Il|TP9CSqoY~nb)r29Bn8cy1+osU7;EV^N1 zqDWXldTsRmF#{_VnRK)@hz)ruIp~>ZZuV#1YF66P#@f_0eUn34Tdm@1>icrrG<5yO zQ`ZcffXOa>p^-$H{F6ESx=dwHy}*h_&xUNJX$@S=Y<h2>&cWsnoN%Q5%p^0za9CRk zTOj)+9uzLZkhh`dI9=W}uxstGvZ3p6tp-?(Srb;5!EBco?2knKJo9E)HHntq9G3s# z?K8MqW~3_0)`Se!`a;P99HKa}lDxa6G9d1hLz-otQPcgN1qd{}OR=$)e9LNyT|E-1 z)wWt`m-R5yp45p=$ZD6gW|f3t-Xvw;v;z`a+~t)^QZYpoP8<!5W8{sR?|C&TXkYm6 zhDYZ~fA7?F-$8kTVHf{uPIcQ<GaR>SvW;(ga}H*U_^A#X`ZkuseVY6zE0Fc`W@eSi zc&#d3YWKVIcN8pp<x*&V@`BSAF-5A9Ru0a*!?Yq8?6y&lhWI5xsKreGC-^HxywnuF zexMvlsTxc_Cn$(<X9MEAFpS;&GS`Q-OZJ5kMII=a02@ie*gdXrkQv#LAT2LisOo!P zwUL~)R4CO$7hpFwF;{}N=QUk-A@HNX;z<XFq785CD`Xby7&5HLWR^$qrPa}_om^XE zw%ej5jI`u7w)oWrjA|n=nc(g%@3$~557P_1vsFWA(J$a82<DSC{jGznrOp?Dn){_$ z_o|DH_`F(srYd9=ip7zIHebh`59apx8A7sT%pqDw1V7I&>!fxS86b1?S|xp2?k~xy zfk+9DIolj;MccxtL4OvHT<<O!l!mS2#_e*Gc_gR|j1S~y!t<JXjf1YF9nrVWlL%bh za83A8yu9miR^5>-ae#;^bHJqTGg=?{6Gbqr!@^bBEXTLjR?;jwN#d|PYD93?X7t~m z_hNBdTvqtDK5k(L2?2)UDgpY_(1cnZ97~QTw3PS&94<*dfB9B4b|4+uLagEJ;WI2q z+NP$Q-uMcNZYlw(d4J@`q>#(ZN_l-ThlJoNjtRkKDGZ1_1NWC~!%P^DEviN{Rb}uR zvn}_B#LJCYkY8SqmQDkdAJASJ^74rN$jetCY9`ut@<kUVckd<>yI4xk&jBga(v%*6 zT7MDyfI4v*2eN=ov1j&+@_vlD<0c9Vt9%49!Ve%Fj|LO_v`e->4sePf96eY^;bAl7 z7mAr5@PWg>I>=tS_eVXMm3W)YK0npZB;w!G0p>g1o;*@7v{y4ca?#zw2F#vh7o(2c z5{jG!5sQy`;7%&&jHs6?XSt6kzmENd`EG0Gd}ZY)<5IpL<w&P~$sErJUeNEA1;UdW zJWky5f{SSZ_~zzeIbFa1tnF!ig{#+KYOVKWtr33QQ|O5ul^L{3D!@N^?9Z)0#0VB; zBCF0-jZUQr1OC;W!r*ci^hx=#0zWOqYG}tw_I=9RT9(UF&<)3DFjC{jRgvS@_}tx{ zmm4<61{h7sD=_R=LLt(_$>B;lTQt8z7m1oJ^+=b_xom>P&15gM6+q{fV?a`|IZ5n- z?{FT}cZ?cjU2!_tw2Zw}+U)iHQCY63mQHws;A2W4i{5EKWyYg}Yp%VRb2w69)0NG3 z8v&W|!hV^%jg80y&y8NSH74fmxTNJ)OlxZlGekJ)35N)Z2#3%&Nbv1qo|u*g<or2q zUY`H=c>R75zI3H45XvVtL%;NXaU{~r9->Rr>>iM(WtYF}JVf+`80*-FCTPIW#xuDL ztN<j=l(|DBvz)Su!_gxoWjG~-*V2lMjcFyK9I^fw+x7rNG&Kmas?kz1hNH&|?2-7p z_S%J}Z}riWA{y^mc*y0Jw3Nao)U`TOzlt|6$+N#7F1i{bhiCZpcM@3*r3@l}<6B@x zj+G$_Fb$W6c&i|c*K$%ejrXU6pe#FQ>NZV8HaZ5B1&2c>@h3;X(fO?{X08qMVXe1o zWa85`_R212+B*bA<C(5z$K8N80S5V{v6Iqfv)6Ai)=Tp{P)ipeI5~!ltXU)O%iOml zSJZZ#h=jSh+eI9He)N&yxSk?TC>0WWF?{ZGkVOp~rU-GD6}xNrSPjdX#{|Wa)-{$D zSMGQx{7%|r@Sk{zG;l<8i2^p^nhc3`gs`*35mpa3<+2^MIGmLDVC&^GGsn$B@!v`1 zG3gfYCIj<pTrniB<F03B1~#F|a%lxYZn)Gy=&t2od%~9j&CczlkyDt*V@9mSmWohz zqH&$>f(oB`$QIe}2mR;YoVW~hZP{k|ATY0(%NT;J%@g`cE`XS-s$fWWm<5pBd^Q^e zjBW$>#NTLHw#=vdb1)JIgF*FXsA?wsQI}Z7=y29{0Xz&U&H>y-YQTfq;rl$0+g!*| zPLa(d<g-C3mGZRS$Mw!dp*(u_Vm>f?<`0f<Ja_Uf2QI>{P8=DJr3@KG`1?}?*IgNb zghzK#3F1DGVB7&|<l&^#ZH4GAP%d3L3e)W}q?EE6;gtLT^nwlUZ`K4FISyCwJmzQD z_zg6GismQn3*-aG=|X)2=;^(hEUgo$mFG^vMu}h^v7G@5omh?Ql5o$8YI^;Xu!<nx zKg)wZ!F3D0I(TV^88pWP>MK=Q?(S7D9_lN)Gr}>bo&Q`$MX9d7&q+~S3#1cAjNzlM zb@-XkxBI*&@&yk-OC$DOSkhr*p1BaNN2gk-GiR!xL6TtKk%|>r9befYGA<~B88QD{ z;%$Puko;&dL<q|cGmCsV_hFZQ>1CMom<&3+1PkYb!E&N41GOr9-2PixjG6qPf8Oa~ zV`oKse!Cugd%@~N3(C>$>KOxvh{wjuIBo>*ZB$a=McHS@&h;(((2*(j{FRJC$KWy9 z(yg9Z8T87uFVC{{#>EofXxW$O{2XP%5celvs?lzE%&on~k>DxxOnl6B80act+Ce44 zb`X){Y~D87f3$^7!^_eMoT@B){q=gaL#mrRt-L^&$Usw(D!Akg=RYwiJ+$5V*$<() z{X=N}FJ0Y_aP<e0{x>9&`GG`;JwII?FsxKfjZqy?m*AY+OEW@q-!&1WiB_SF-4ig? z@E!Wr&Nfz$sFrkN1-ujKjL*Y#@Sq~~JX`Uh6DEY-B<xKHhc5-VlFJncipcijUUMZd z7mbqpXjMuK)I1c$ZGX>q5rM~w-_UT1rZe}m*vUWOMKpnD6-jcn^&peMRRmoQEdL!g zINP7B>sd?P6Rx$yP7Uj0v^vc$A|{%*gbVlARVwtiK<O6f^jq>C{Tem0s)({IpFP|5 z==0iq*W~SLNF7DguL*GGY)qlVRQ4E`6fd`0n+T<~1mi8d+cuP9b0eN05^(>LzGn-A zUzv*VhXBr+0cLOx(uMa#;0OhtM%=#)b&$XbTX93u6wA1G$cR+))HfsiG?m7@%JZkr zIr3)dSC@HlZIRkTleNh@`3K|4w>n_7v&xXCkINauG&x9u@w^YF9D>h%VbIjjk2#0& zOo5+CoY73sj-RO7&#S?>!sLF_<n#VF%Z<ID#l(%`))l3slxZ=aVi$=O3)wz#pGK17 z4rduMsgbWE!-}R-AD~zw6zc1?y6SpJ<gHHZ8gn4_@e0f(e-4do+<WJ=8Y@=$gRl!q zt;B^ITvU$|3rM=?&Kpcj><ynwYd2Z;keg-n^6}9ysu^B}GDK%SzHSseKlnWR5CJI+ zmjlvHe<-Vk?d#o>sOW;aScL8B{z?v7&?KsiTd^~?kZABY^hYReQFc8*jYDKxjm5eY z2*O6#I~HCcSpbA$HG(<=q#>fysJgVPB5Jwho!O;-L7DZF2VJM6Tr%SSK1C@a1J(t@ z!I{+(mbYDZSrc4LP^j}uo8X^+@P7I%^O7eYmvzq>twe#dSZd}<PUhWC7?lzY_&S`? zYG0Yi-vyRrjTn+#bujfYh?QNiB<M$Xc1ki3v<uRW!GCByPdWtwhu~`+@7A95o;5V* zc-(9Ok?T0a*RT^sdEkL!raYPBzqK~3qPapzVOdgmr<Q0dkyf0XA+nTw`YyP%SZwsk zY>MrKKNwNr1l<~P#dn_NAn8JVYZr)~^pI=UoV1}UE9R|mR3%jgMQ1xUbSz-PT4EeW zyKKzOQ$i^+UpNcjt3=dXM8L>V%-T-l%M0H<J7n;Dx53+Gt25jQO=Esrd!)#bq*V!Q zdF(K$tbD)A7H<19Q`|4BUJG}w^GWxofXCXCeEPUNli2Ba5K2MwBFE;AOCBn8pgZFw zh9%uVDpbN)QJE@|BZ<tcFe|QaBN!KyZuf7fX(5_}d**Mc^W$wskD7?nxaxA5%X?^u z*`v)?v2-N7ilOYC4NJk0jh`f*$H4Y5=(WLMIpFWBjI`~!aOcoQtP&gq+$*oSgXp<o zO3>`AC<of{rNc&p{xF~LSJi-CUN!);lmTghG2i8;PrBA$Z@hXC*)@j<`Vkxa#y&X$ za0!BKVX^tlZ|f{*_VA8-ZV-Mm?7vfz1_&SKlm$tzQyp1j(}l(gch8z1YKrZiH+jX* zW`=w`(=pHWKodg*SXUP5r7V)ODJy`=N{s;L+`;x>Z5O}iDF={l01{C4tM%$xB4@F> zx2{m>q4~XXM0wdw$*&<#nOMKUJ?-b}U9^}+TVKT;Ss2sWhpssTyc7d6-P$6!<iTQt ztdxHSvR%1sPnENOisX#fm%HFvIhHzCT8op$g&kU8-G~E18SqH#$$7ik9KlNyl7D~r z{1s$yV;2#14HMpagds)A4EDo@&=u=d&)j;Pw?P$A^k`6(h)hcLSY%0fqhGEph~xKE zR4LE$A{}1^)~IYo4N>i&u>WEqe(?3H)P1{Osj?r>DY>oWKQiVg!%IzyeO2l_x4Ax% zK@8J@aI{<sxoFXyG4G}2xu8ky!7`70$IK{akZ+&8JaquEZ$tkFx4GTdwASj3ugpt} zqB1Cc1a=s1`3GA3yHz_Dy+ql>aJ?PA^qY@hwfme<-<)m?;S%ocd>G~P)LKiBVr##4 z?BMZu;>#Xry={845o@N)ztaceKd%Uk*8ydOADO{00RVvgKR3-T|21QD@T|f5*<xV7 z-|7uIAxsG2>^OdR=mX{_wOz0da6_?i=0qJ4E+AW<tfs9bJ&L_qaW|8cLZ!PY?YjzA zBj*}?`<KMqEUjHSCH&r|W?`3d?Vq(+uUa`0Ro9xj;U}h5P^0wZP;6b?GO#)<Uj<TC z+>n#fG9J1tjdT2~`)Xxp@80V3tDr@Rtr^?!RLHu;o##vLYlOn%TkKByG?Zs<`v!(C z=G=t}{MMy^w@#nlN>E>_JF_;buHI(TsOT|p<=(&0qP^SM8bNwz(o7%Ia4U%OzT-d* z6{7YgRARKMa<?Q!B93=nwGe4g*WX1cdWqP1=-6|Q5_Ipm89(F*t!*<WV6r3CWb5X; z93Em@<<1SB8o6T}K|0z<0TBo7Q38S%Ka^dVH7%gmVOl2TrlT}Fplvg~P%&2HXA=TW zVAY<?9y=lIw=Z`kQ75rHO@px*k&w1nBDUhqC-=YD@Q1U+J<xv>(M7C%lEcfAmYH<m zLu>#N<Oh`cyQ<0#EyN%+p1F85M4QBdC$>4<%`P2!`vA)=#u-_Nv5a*ly%kuwiTWg* zdaP!5dYnHR>{HuNt!WbT9)F{ORzC1-J50&p@@+glXI~unkWU?xiqE3<>V<|DjxiLr z9Q&5)XY=}#NwJaYU<RIkWTDf23(yu|*$V^X(6)Acp%KjoNYl!URTi;~hXtfz?(H~# zEJ_Or$WE%$<_cv`*it}<DnwFZgPfc+nx?N@s7`EYGO6oxKB<PyfVA?lNx{69E$g04 zX&X%0j|`mZf+vjAA0uUwf{cU}Ns;bz7HlYTP!ALq_0>?}1R@FntW1A;;h7Evb3GHD ze*|RD$tJ}n!e4D{+c!SoZ8M4qN*y)or<r0HO&GM}C?3Qe(@T>#_Opx;>k*z^f_kWQ zvv0)Adr7_FCNuT#>XtcT4jC$+A`+=`?(p19AdS0`d%A;HXM*Y`@GTZfL9+^2b!L1a z3Q9h2NWmon0@=J}>x1*{)9!6Ce8wqO$Yb4Ff<b|E3w`LKq!`U}3o6QayYoCepvUHj z5FXKGl*g|c@_Sn8T}$cvHK@nXxUY1i>G5_)ha_IjUPLj$K`#T~@1%N;aF5~N=s>ui zxP5=0VfZd9&>S_u8wTJ<6gK}*E(}j$>*fHvuosgj8=W^5_ktGY==V94cZQuq5@fu> zD}ixdO|~AF7;MNdqlHP#Mo_gBzk_1x_<>N$(9ByY25nbP8K1?>g%Z=ELP5wcfFgCf zq_)Zv(&FwmbOl;llo5tfpr&gpPUL_-bu3QWuoY%ROzn|M3UX~R&jah45+<(Di&axX zF*7onTUCs`a48(|vJg^f$3+NBZypg+P<llW#ljZYGqpuv13VuOcjCZ<&B%3^j!e<i z;fwDQArX%}nG3Ioigi}&sCIO=Uy9$q0ta$z%+6rwxJr>?>B()Z_92=iHr{nzFZ+J! z%~Lpd&4N)5rqR$aGQkX2m};Beq$*47A)|7rE0;M4JyXUu<#KRwq;j1=oUn<|XpC7y ziGtAeKZE-4N9YS;B0mJt1*1&D;CiXfD)Ad5BFa;4<t6ss<Dba~DJmm=^lrApQr|5M zQ*k@8)ikC(q<L!l?l<-q=9$dp;9`>c)E#68MxP>q_CNibQuU1)c^}nPjge@|Pi3Gt z0+7!yn17v_IN6xi4<=2^H~80RzQ?0|n5$T17Y77n1JX)@9>y~OhK^N64-X0q`tMuL z^@-VBW2a+dG^s9Nr27no&0q=eHVSlW=4zDJWz!S4|3F;O5p>iQ7I6W>cBXV!k<fuy zKE9Lu`qw0AaU)zx`-SKh=h}5E2c(2QD`J&%x2J)FlT+iR)t%C)7LI1!?XgAN8oGP7 z0&+uszr5sv>Yrl11kcd4mqrxGuTbnmq(CE01f|-sD%G+G=|EfkQuu@iArTRYOce1e z`G4#(7Ry4c0(74LGJptz{gGs|X4doB(%F)4{WzY>x$PC4yP|^Yr1H(QD#vIa<<HS6 zj@!kRS{F8&EuHUIPMQRVM$PhT%QVQshaVv@-r(nRGJH;4{;aRzlyj{;&G=9T77>c* zN03}NY}c&I%L?H$CxThUsMe_84HgU`t9LLM%x7z*@Giqf9w$G%b1P*dV!&6E>USl5 z6bvVP&}%oB04G}xx_H!i{qkE;qm1c;?vZ+)p@AE6*2D*8)bMS}n;8pTrXR}VP!&@K zT~kS-)($Tqpx=bj+oJ^A5%~A->;z$jV8`b@Bl4KC#R|T#0i={<CCQ%18wd0V9Y;_> zlB!+?XnKk5fb9~C2r?(HLa>H!KfsmbCztLN%O0tqcn|u9B)=0lQ>|)O2y#mWbi(u0 zfI(DJlE<CU?(Zc!9oby=f)fEGTzvZGL*yNyocKSY1rJ#gpEXOk{Z|;uBvS9Gw_$ld zS4v6z!s%Yhwc`1{SsHgMRW&pZbQ}&%5t83V1NsfIA|06pPi|59NC?AY1BZU`-d^}D z9S~eE9g2`y3V>66zB$iY-%Xi@x|m0>=RMbZOfb)?pGJ7m3gP?sVp(D}!lM1Krxq>f zsKafIdH4iu)aM5Ny@3GimkS4q$N961UbHb9TAEc?K|eoN*^6n%_S;<WTy1~%E{hUI zItEq8O$gl$be`ag_o(3Z!{In<fu;bM%#|BLB-}hXqu3qhtEkXuQ{dKD6dsciA|oj5 zbhx!s!bpFyIk`_B2*LV0&{hh;tQY~v!pC$~Rlo>s>N8{E>?997eDJ+?BB|Ptf&#IK zCi4cQh<$!OFN!jL+PAN>^Vh%k9d%aoQAW4qO)+u(f_#)17U;s<{cE*)OPO|1<Diaq zCnDDspdU*p-HGWn|9msXYBgwO6sX@K&OmQ^sejRj#`<WVB3lsAXtm1v&Ty&|YrqbG z;N2riRdT}W_1`RoVkRr=-ki9{%a`~imV+Ba=a9HJf~lu7ni+OW?c9#ZfPmGX$Y>q+ zrd?U*T5xB1`lR#f!!s?1z(dK7^;+qoY~MC%HK7T|{KB5#H&Ita?fTq-(4uNaS^E&e zbu;yvK<pR);poSG5s+fTzDd<cS1u>npvhR09^3^{)8i8VG@mhnG_-wRh<--@{Ft18 z8#AA7r5FYB3FHu!g}seTRgPS?;Pc3quOZ`lE{Z4#g(KKwH(oDs-$&s3@x$HJ2!xC+ z8~;I_6E<W<6812W=K|S65WNLv?Q|eVm+PvJ?z=vegqS(-&<pjdPc1D2MM+en?W!N@ z-PqajZ;Fm^<!}!_l&;wFG7?JZW1`z6>7^ww=!5#Q#zD}lbsmh4@5NQr6EW+L<@V0G zcSz|*_XJ+wz=*vR$O$Tp)H%HZ&ScWyCE{_#o30mi5zmf)mz=bH|IO+Z35fULFVSAP z4cSNP$Z4q>f7WuX!O2=|i(&;qctiP57)cD!mHGaGk260Lu>XZ=aCNY;H#GSHlD3I* zc0+{!J^L~e`-`+DabB4ztvgM54rbxNTn<Fyr*-rkYLetu+{oOzb7GDOqB%!inmvWv zuknkhUls+2fZB=BI%UyY;+cgCjv5$@rJ;t$Xo4Rp#SJ!ap#Nfi0pmO^*0GjtWR<ZB z^M+KB$tgN3PKYb}K^+=>uuCwmoM@hZxoS^Y4%7O)Lube2%(P1K0FsCY$r1l1+sh_< z7i-8-|LuljGw{Q$t#J;bFu0zJe`!3SCw5Ta;0@#i>W?FnAytI7G{2ke1%^FoXvNbN zwVfXs9M6E267>mXClHvx%U8)w0EW?>cV#c(ijFg75cBY?z${f%q2d3xNQ_3AaRu~) zzeRtxh>8AZ{QZ9qPT$1d_`hVnHJWEXJPrEyb#IUZl4Nef5{)eeKIZBSd4^kQ4my`x zeHJJ<-8@rSQaM>g>Cfcq#Wy}&6c0XV_*le1=EhH;C)iIIU4T}Snptm~PO7FYx_9^Y zxC?hpmCl?^PNa$)`AsynIT%d~adNgpiS@LzSYZGqapiV#A*Dq|;%X1!ZJ{`OWjkdg zI?6Dcvgj$^Z_yhIDgGM)=UrL%5bC6cI<!2pazExZX~hIM)ypTQJu$Lka_L|P>ZYgT zCnlPH8?%bW5n_q-=+5n|5Gg7Xk-68~3gJchyQ86QlnH+&;;(_`@8=wK?Oc{`)uzG+ z-7AIsZ*V_pI??U1^<~p_&-%p<>4j_&kIy2lW3C-iw3JFD?_Z`+Yl`%QQjM()0dqXc zjB+fM6=k=x4C%ErMGqmWNhRbk{u-Wo*)qu-eLh*T<X9U?EpU$2W|L5X0#N%VQiRFR zo+h`*(^AD&5j%KGF%`*bw3&e+tYy-P077^a`BfC+9${&Z5dZ`%b8m@jt&jv6fJFEj z2?2;>uQI0DSk*Q3xG~1&85GxuN0CO{C}g`Ez};vFAR*=F;`8=?+H>;tdw*LT{+RrA z@=ZvCY<RhJf3|3)e^<PIkwb|>bTjo*Hb3NGwi|N@jz8wa7H4q}DasRQP^be#q7XP_ z{ebwrU+(H1dY3%k<tbGf08QL#Xi=;CC-qQrOMW~NMupkMjUA!6Jm-(TWGOXcKw$2U z*f_8l5^gGWnRkFyF3K+m&TsHjvHF0ogr;(mMJqiMo!Tx@R8R|+RN(;H(31|fZw`R8 z_#`3rOz<{LUL@U`VvE{RT-uJ&@O_PlB0%OaM%#QB;S3pph#p92qz4|3c!YqUuO;=v zm5lRm`>T9ZhnAQvkYkHnU=|tOD)stb-q~zLfG2~KS!|fqpJ&?it3NUV2)vnFt$z1O z*7DB(a^5f>zg!c!MLD?+|5aXed)8ER8FTw=VKyEe8BbwSSeL&(D`2PQ@OpF*PB+nq z2Ff7{F|In~e{DxhN$~O~XAf?h^Da4#rKB@Bm}oPzb%re{9?siJ5Kf};7+e}x`y_h` z3u(`F9{v(6V_RHr8-b6MfY)}Qv9L%&8keSAf)yhUIVhKtnT;p_>ShhYit{pM1xD3= zZ#8p`4g8mFU>sehE)@B)2r}AXiG!Z}T9Z&(N`44kIsbM9C8?eX^jykUzu1U6XWCy! z14bA3N>p4SF2PuW`{bL|lKzVfB*l8=6fXG$RKTbim>0Mon?OY4CyDQuUJg-wS?=#M zUxU1Bi9Sq4pZ@F--{AV;FHM?QLs_D3JaO1?RN>iq2GeO}NhrwnvbVIrW+G-HQ_8?< zwP0T3R~Zk}VtB4t8b+9)gGD9IEp14zFm%{`JfXg_B4N^_gsBE9TK0R1#=jVWfqjxi z#}HF&)79>NHlMOeqcz4{k1uuU`lQ`q$?$_-S%=bt0f^r7QK|>~21#=uDA`frQ@4yV z*JQ9*OkT_!16oeX%J=xK*gdQmQNuuern=7;fAScvJTJ#G+)nCl6*8rwMNBwg3sw7Q z%@GBOHs@lo&dhwFje~<gH%M&Am69G9rl$I`k;Y7-l;xf4Pw<|@k5^L{+9Umcjd|)C zK|GU*wE&6einTtESyno))_ru3E;n}AK)0nKo`SA+NS|SVaBgGy#cjA?)m;DGGa-5_ z6*o^Z0~b=3watxH&4Lff7B6R&pavqw1?@DzuH){eJ{gW@1*Cn0m=vuxX)6%J&|y80 zcQAgb?yY7A)$t^<rR!|)gUiIn0UZzHx~N~kp`%g12$A>He`WiWcuqUy3ok4y*2?)5 zX5HHt{$(7a%WqBJ2AS72T8;)Ad7<Fx6dEdBg%&gcV5e`hAS(BnOdIZyaUwV=?-pw+ zp_(DQ4IYOtCDDk|4=)>EW&Jn@q`QeMru*3nY`F<q<`NNKP4;{IU16edpmbta+O}o% z3$gh8%UU;LJm~#(>DFiZREOLDFe=NLJIoMu?2RGrJ!1d~jlzAu{(v($`pU7Gbzhnt z*TqErQPAjS7}+>Oo6BI|ux49`g9W$czzyI*D(pkm-X*Vpk(8Ep%X>gho$Ly`3im0l zxOZTux#rBI3qxG6gtrhp1<M%tfct(kXCYrs5n3I6A^0UF_EH+}wc1bbZb=$*|M7?T z9V4e#e_Qv{?fGInTwk7kyNlb;^ZCM_U}iffugCN0{T1xf+xhc;xaxosvtXSR38mVp zAz~~(Hq7j%jQWTdmwl4<@DdW(jgjVjZhwB*8S#EvE-856rqrI$+D`t~2-H2-E-eT^ zAq02U8aJ1!`bu_*^ADx5ZhAX>8Lc@g2Z{YhXv>r9ilsx>n8qj7QPd^tpe@cowk3E3 zJ2Vs2Z2Cct$mcf*RBmas)L7EmQS;Qp{8Zb&wwOP}2EXCy?r{G(f-7d1V_}mq&4a!E z;|&W6F}m+v>n^IoNZX?9K*})>YcJfo6@2p7z{^l3UvuuJ9)o|C6i50KIQjcpGA@-> z?B2q%wXmhr|8$>N_#yyU44kh`;>Vn{!)$EOb#jjV9|sZ4pKlZwwBcrf?dGs=vSvY+ z{${BZ+QCs)bs@GEJPoF%%6_h>R1eJQMd<UH?u50=fQUUlOI*aMq?lL&lV${okGzU~ zs*IqH0NaIrdXF04ByhIb<j&L{1$WA)!fjL?>&+?fHjB9&K!u~dC2#XiU|;(h(ayKu za|O%GS_zJ^@610iTNQ|#e+Kn(dq;%ZXzNwW7@!?i6JvajuHYoJ+b8`MEWomez-}nG z<2P>Wz<8Fe^+9_jrs^ru?$!B>Yb-g@E^!^l8Z;I_;n<Q5>$YUwO&I4iPK!di9#GkR z7!P|6CIDy!-YHBYRaTzt`M-89dWI)<BN|cN^E#2@!7NegdHrIp_t*FLEV3G8EE2S> z_+cyXA_eD;N(}g@8w3KE|6Z40w{7AUJ8bO3a?l`+KA8F<t8f%IQo(;SYh@HK7kjY# zs4lIS@Z}l>=Vr1ZKn@z^oGUW%l>5n!BogQ(a-T2nIez(ymrJ;NK~yU+8|!G^WzU!) zu=Iw;3*X-ylL9jo`h<YMhaM>y_xG_Fx3o}wq&7}`2O0VM^wTrCQ7z$GH{)DT<z6m6 zJp4M*Rc*Cx(HvUqD-VCavabTUxJ@PLk1bM*7{-{*b#>jSMAc1~xq9y4;a6%Z>7<J4 z4&aIiqAwBUY9zy>mXV{p&!u9><GaxhUyBQPfjf=;H3RX|<<14Mj~zF^@i%vB_XNJH za06<!k>$aAG|?-{@3~`FBYkt0pi*AB^l$47%DuaWRC9Fl%5$%1nSX01b{i_T?X$m> z41)5%87zNv&5uuaxe8JSSKNNgPY}<CiHcxNuw(2O8}_&VN4N=Bf2C4PO#ln}BRMk! z{U3~I?94398T5bRM=V|R^?$HqsIpxA;?ENNhkA^YWg|3~gHA;RS~)TYDWXmSGDU_7 z+`pu&<QnRKJO|{@jm^ONM&8GKy&0ZVQTqnCk3O$=zdMn@i)axFF_c1-;a*K*B@}cl z($V=q4V%Nqv4%Tlj5TZ+#ox^sy^x)q+p$X9FEkWUWht$70L06}v$<lM(kMa+192O4 z=(kiu#?Y~xh49*!CXu9K+m2M83=Ltk6w&&BstkAe>)F~Y*O6)l110*e$O#PvOt)_G ze)rUJ;qaG~24V78td_M+?B_>gdo`Up<|V7dw9s8`q#{q|9L*SaKASqGQMj>P;@;oY zX#+PRQFst(W)XtZQurc3==N7}Jhqz)UR;&vqgK$5!Z7P;x*XxTH`VQ3)5AMIFGWSj zyk(fkv8LF+UH1<@Kni7$EXW3hW84#_TfidZ@M)U&93W;IBwwCSE#_>fIfvSQRB`?4 z7%zkOs+1rqo^Y_y2ou{0l?WlEERwMDgQIAg!)2p2>A<|0u>|&Sq-LQ<W>IA93kT|k z@Uu0EyuG~xfwP7hqWlC0UsvRk*sBnyXTew@p=1&OR|17MRu(6GkYHLwMh};piADeQ zad<~=H?h=4#@1c=ZP|wHLpY2aPx(?;C3^ySaGJKLPNMtKHe7Tx8C=^0QkYgtC;q$F zw03jdT6Ea%^~Il+gAnZl?mzpsCb2>NW<&r$jTHc(`v2RH|NHqEIyl&P>N|KkIN4j7 z8oRjI+uHnmO5Hft_8a2&oqoe%Zwd<uXFat9pp={|ie5c3HY93Vpp}C2htfu}iPUM$ zH4kUKJ5!gzli{c@3fY08#O`KpZhAZ{oldysS|J&dgUsVBsbM^N^*nm~PPq+NcG`#f z9x9ELv#H}zp_)^m3{|!nClv;c#1q8rRgh>u9w~ZZjv8UKy&|l82;hr9w!RJQxG*p? z?4DD~_)QL)zzBBf4ZN{yAPk^|M>6(^N06ls;ng}1K@4{}Cco-Q2h(7;Z3mJf>Ee@2 zfl2qkv}vcDK7XPaqK63&7}bvJ^}tDxFo1J!NXL0{P3m{A*ujA7<9`3nicjm!{Y7y( z__XoshJu2E#Ldrn9Gc$aF8{dR<hMzE6s@c#*#MfkXX^E5-~nf_Nz-(6QpuYY7|ZFX z&Z+&6IYWN{CT+A22#t*LE+#4A=PkVv^eG5q*ed8ChhfsYHU3B!<tub(_hP__BP=ep z(Ij;=s=Jd54!S9FsfdP{j+l-xS)T_8wN|(k`RK$}YBV|uhuFX7tbqU^p>Zlq_xCq5 zWSviAr@OkzD*doa-VL}lvGmeC-HGr^TjUgxXM7F(#tS-nl=k+cTh5wR0FwcqKj&J4 z?*w2IXH3(2{6lD}4J>{vAB0S9dZq@*TN~ty+z>q2WE}f4&f*!~SBggNnpM?!=8|pl zUSL3v)de{AcG(RwmNnhyPlg}9WkaK*MBnwpw#e<|bSbrBz^<mEXD0cJ58`IX5w?RQ zb(7BP>nFZ=80>K-0x;^6tD`nLI3@Ys<a{))tc1;uDP!dlOBNS<QQQLlG%G=474HF? zS?(}z^dBO44}jI!3`8(MF8APZ;`s}WVP}zt1G3R!Fc|QcE8;Eb)9$2jOuTwJ#N`?3 z_a(#cWRh#i`=f?M4m#KhF^6tv(#p9iVQ^kj;AMi5OD3SV*f}wA7#}270LE#DC}a%j zq^l?{)(5TNqL_FAyejE({>dUGRUtK%W(pcEF|BB%87%QN*&6ZeB%!<lZ+;gYEf{TS zUrM`IBz`dB!E01}fC(z46VMunl&p+}g@qS8u$D1HbB6drJhg(Z_^Y5mc!F?t;7sA@ zY6|HdmljCCMmE&`FFMTZA%s*Y54U@JeALf)Xi8|Y0tjL`;#??vLILa;aOLRAjP}7& zqn(BD#)@FzkIcxkVM~<XI;^JwHl*+qqpp836@cTPihMeiFBC==`>s|MHhhwMR_dKg zc~?n=10F!{;FD8Cr6b{@q<2(PY2AS!%K}tS>WQG*z{pKu)WAATuo2co($#R?=fSfP zcm}{(6<IR-!ErX7StA*M3vH6^`;1TmhTG^BtDbPi2?2c^dG`Ez-_A}<aP+kTe%YJb zI{Mu?I=ZrwR+*=B33XBdo5W}-I$|?MqnV<S!RQNafX{=9UAZBEQS-g)0ivk1;$7zP zqSKF?WbWZ6TVm?oZa^cpSM3YJ+cJA$<`@iJ`LB7l#BbHf);L&jg<L)TUWC#Uf!;h& zdkPK$3XGG*$&0Fu(pxdGJ$(gIe1d^=%gP7vbMamDb{EF}5MFST7|VlwO_3W6+CWrQ z+Xr0qFP+&|ckE`DnWF;?3`&G}Gw9_)IxNjg|7@Kc|MX42rRvUBbrI_W5>8km%5S)# z0Kzg+sXyEfGO{#2GTwa13>|74F_I=-xoe#M$FMda%xU$K1`uF8T4V_6g>$*>8k7ss zp{xu-#~A~l^?QM28h}61#PchJHEk;-$&DlJFh$<7BN*xGw1kFXCP7J__(5{cW6A@a zpd64wsHjp2JY)4(E5#R-0F4csYfoDU03s{KE<Hfz<LUl=@#<sN!0m><j@-VpHeW}6 z-G@SuSq?+uZ&%GNDV|;RF&UW$93VZ=Ak(6y0HXIu6<fcyPw<r|dvZrm51}N~y0dwu z|C;Fvp30WlR}cPMJe@?z2rSQ)J#+@_qw(*Z#bjI2@Q&a685=TJO=R}@;p(a0FeTw- z*&7Mu-~&vL++alK3|09g6t3|g-S_D_9bGP_3Nof)Qe_B3agx-zp{8`hhbvI~&?`1C zN^Ca?ix!FznNtn?+ohJ#F;zf~$h=JE;W}f?#`xnR9C+l$?y(Ov+lX!Os}MEZ68j4S zP7NF!)XVVGl8X}?Tzz>v7!$9|)?3ypkW}ht1@A`4uy3|N5ap5vku=MzOVlr~VxLM0 zL0zc*%a%elG!2r<${`cjNl|HS>&5vcJalm9_8^0?fYg**Xv)?^-U6!wi%U<&)wN3n zYjQS;pwqvxCGHBDgDirXGSGybq~LLLuwM)bEbTHUZ+^3zC*j>E3V?P9DEG2CA`z#m z7xL<NRSDwIBZIM_5~8$(eIvxO83-GOH|pRy@YGLP+DqRf8be~v4>UGzs;Dl28^7uL zRdRC$CB<@X;wwHoce=kmk7B0r>j^P6veE#MdQc>h43p`8L06mZO677wrOn$SI*yPQ z9+V9q;vb^aq638nORy28O8xy;6_@eiJcG`0ZBZJ$7cHFpN6&~%U~$zTuvz#w)0=8! zNP?pt#~2tu9#>Sjvd;-6$@%rUyf&C19v4%q9IJJ$zF<Lvmn_d+lUjRqL7e5ghV4U{ z3+-?yeV|Kxt&r1CxOa#Ei6e5w+a|Jio>F`gId}1KJJM+C$wn{~j}(Zu!e7L|_TW^7 zuuJ~&L-L{{5hh<)bmI0waGg1?Nci?6u*)#K`TRLXRcFdlLv|sD>6#tlbCI+DrqvV! zmhdnKPjGa1;-`1aX+5i<@lTCN)DfoZ!pgJ=qmb9$qSWa>Ql^siKyG@Y5bb>R+=zA2 ztGVW~GS}A<k8x30>+_kdx(8~@w4>z)F%ZHZf{j)v&6FN3Tos3P)Jk`*7%a!dF=eA( zwn514xz_5n{Tp%{hrfQUJezKM|0vBjPx*`Kv+aIkls0%*?Ff4LF&4LAf{@#=Mva;w zDTF$nBan}(Cm^3aLklKWi5DKsl_r%wA0k#;qfLITXg2TVS9|OZ8z%}<OW3XPqZrgq zSE{Q==CH2wkfz~p+xQ++BX~8)zPC)|0aV-~wHtxH&<o}kwQYm(^*ZY*C^GL8a<Ty+ z-h*!|>r%0miUhc^St&_}Tf~YWuNyuW+^lZYqvwr(v0<h#t0$Ggz|?d|qs=Ak5`bA$ zHLAu6V&>}%`m3m+Xdyow?F-#>{fZ*<<<3JhY3)PEXb~E6;K-~a#_@9X1D__v13fHJ zO16#~c___vJxrFBao6wDEq6P#neE3@OPLer2Wl#)Z#9+SoRzuL#S|s1$(@ZceO5V~ z4^$J?wdtzOHo*H4eJKMG*N??WuyB<PA6o@uKCA?|RLJ~VVALUk)JWvn2RR&*!+@uk z&eNY-PY<<Y4d(NQ^qk`~t9|Cr&M9TL!gl5mi4`1IfjPus96DYkJHHE#%8wxvfcG$S zdEgKT-G4UKikIVR)3B|Js3Hh#raf}yl9%@fz2_`7N}%PV%XdIjgPR9Q{&mkaU9Oqm zn(~Vv0Le~p%U)EsMFVdKHI+9<sjb^CbeSnffFN*57VTzbcNl9e9dXlE%v2#1tNw<Z zWnCq?DR?eHb`hTvUib3ZxdBu>u<F~&DPZeKZYZEMnQNSG`;X{RwhB7}Rk~DL4<4{v z5Qs0Fk*3^h5Klbtt)5oo=4n@i`5y)}a}aU4Fmj(hWty9(9J?Dr@A330Knw;!NVg4j z$qlCUc};D|6so2k8%`bMx1d?_e~r*f1X_K@-eFw@@8eifel>3bb|8E%?rS8}rm5DS zX0D!WV*)Jpo~DBWeJ)yz01?6?)Gm0u9qzW-1(BvtW@>qr<AM*&_G*2PcX=WcbK{YF z(CmBCx56N+S8H({<H}2@vC7@xDqF{M`(bc>7EVFdz5OLT)BLDg3<+j2<`?T>`Ydah z!*V%V9Jn9!%ropWY-lu$ISel>uR*jHNOxrs_A=}R2pzA)ySh9Qp>)XtZ-L2jh_CO2 zKC}2Mt5iW$^IwGHg6mW3X=_cHYuuBkVW3uEv4CeN9AUa`(-T?gx?jGi5=T92X8;;x z-^4WGig<ZQDQ(8uV7cB%17#7k-Bfw(FJVs^LwVfO^hJY%H^%Qt#%Q<m;meJ77qJgA zwyQvh-<J9PmHd2uHM2se5A18CmXe-3Mu{ScIH{g{E1c0_!K+1>D5S=Zi^IS|=rDMZ zX`U&=qPNpo9M#_K;H5yCI)Rj6$yS?!$L{)lHd;k?od51Vh&plFb|emN{1l!e#-10l z=k9d!$tC<hdk9Wv;%(}0{7xaF(GY9ns-X)?#fEVTl_!+i;&eREEXEcboH4>_V+x79 zu`|5H`KxL_6ZUx4h}`gYDy(G^gL^f)vK2I}sjiB$Gqf6{fIecC(N){|x41+x++nzf znYz9OQWo@pBvA@YBEDOO?5!&ZqOEBQ9R!^v6w(-!id|5;7}GF7^}^Yt^AG=-PbW}T zo_a%ZXR9dj5Sp%jy8p(ORUDLWbi*};f6|P-KBMvLqledJ!PKmfx!6|HJ>XnT-gKB^ zSm#rBMK1J?C0R6A1tCgDy+mWom(y{@H!ZTN2H^hcw>NO6-y;wRQwG7}wL*!_^rd7o zaYsWO@>3)1#)AyG!o##G7_$pImzckt21mpLcb)C4Db#WEYPhboz6LS>*TT+x#U6O6 z;i$Y$!KAX2qR{psh$1x(%W5W2IOMH+J$(p{d!jw-o-lY#h3oj*^6XV5wjwohL?Fxu z&?ipFK`XnKg*aCzxQju?e8d&xNQ)n6?Or-$XDyEv)=lPvtRCevrh2j*BErQP!D-zp z!YFZG*lVFZZEnq%$31^WwH~-)s=J8&f~|0@J1E|IgG+K!@%DR@Zi)EddxaF5jJ7R& zx<EG^)4_irMu$i<1+apfCN#!-BaVkzLj2YX30ty`5qB;RT|1rkga}fSkQLG+t;#QR zUcV~!s-bjy7v9fNGw*ym8(*~1<aVu<{F9e&F~8z3Yv-7;r|KLA7EArm**3LClEfTq z-eomIkkp0j+G2T~D%{n@_iY-~Z9V#yqc^?*RTtIWZkwo1Ho~9E(0OIewSs4oJ>*5( z30|l7mHU-Det*pHp}eH@z-{aOk3~T<Md={qoDy9<oB4$Opzho1+GKx$(+dOF3Ep+* z8*Bhq3LC~%AmlweJuZMA-RYD!st-)nH>{nE-6I|5VNN;I<b@Gq3jS?^+yBr2Smc8P z7~@1;eMNcgco9ddJ&aePwWku+4bo5(5L2$LsvwgoquOI)rkkqG#LZKM;AS%P_+aEZ z(!|o`PdmY~6s%->-jp8Pj{)$lT(-Nu$d+onxer2DCdYXyiXhVdYYq4<ldphI_RpR! zs7dv{PZfAnXIGuwUtV7Nvt5cf=j9MIn-Ens5DQODF5x94$T)YjM1YQ_<5SfE8?l^1 zCV;c;+)n`p-+HE8#hw0kTL>4uA!(MCVzvkdh0<7+1YwQ7P6Ks9yqC;|a`u+LAeC7S z!ce;RjMC8bO#Ubr$H6Akj!79gn<3qXTKNm`7sm4pgvYr)4iEhf%C|qSWj9_!0TQcL zE=%}IaUpQtSHGK?iqrRvM~r%InLA!isrDvBECG@I24o4V<1<krEX?5D4k>~o`k_20 z;o?PdPJMnnO`tB(yvEo&sUdp;=kxzDS^BT+UhLB`P%AV5AX?~uSQq?n>ciB-!O-r% zCe|%H|3!AR?mW?$snUwRQBRToA)p8S<L#W~f>V5jZJW72V6A}4*4SPunJTir4E}cW z(se90A@39j2ds%blg(AfHM{4-|6RjS)hJN;rGVkP_E-EVb^*aw??z?*@5jB@sgqB> zn`xQhL=Jo9S+b?8;&DpHWR*~srcv0wxUTxNT8rn-MJ@ZJ3;Ty|6>*&*^JT$1&i|q7 z9JT}j79?7>tGaC4wrzIVwr$(CZQHhO+t&2ky)$R#A99fy8TUr@Mh!(1AcUvN3Vrpp zlkUoDVfBkKXlGxLXt#37YPI^T37z6IF2PZD{~rk0)BOdV)oz8)8jijzxE!QEK^Yb; zzaUN1(iDFaUV~;;EAw~GXP(4QUdm`=zG1I2ulyOm<M1^6GNGxRbzj)-D$U?R|D}<z z>_^=@<rU042@aL9uQIL3N&10ZXW)7<e$9&@Y(`U3q#@|maYrC7Hdu>%$Z-8bBsGAH z(Wtb*Yd|do7g$~cYuFDRbkK#YScRYY*O?`Znb8w~W6m^8@P->BFssXO`H0nH8`EIv zonY*;HxpaTLd`-q^#K6jVW;hdaUeiYc7Z_rZhgZ1XkbD*gkEGU1@#OXL2!qlcP*kn zw5E-(Y{d$pCTsv<-byg^y(Q10gHt#Zqmub3`gM!^L<njs(>(Z@uBvj_nWj3^k3zt5 z(LIYe;uaOYb=t0Dp1=c~T%B*n*P&{+yJfjQKOe1lyII-Q%axI>6~OaOu4ACw2r;i! z>n!{@(mt@5f7M2vSaWAhkMpfNaETW;Yrje<TW#{{cQFln(+fX6a$Q+2=AzK$PN!*y z@VKXj_5|j$y}xjxwdc@h9W+ZryV@u$w{fnIa>Mp}2M|-s`D5cokRvj?s@~Oot>UL2 z@CEWKUw=LCNk4Bw*><}<KOc8hnV)dPNp@8;e7k8Qb9%c$=X|n!o@GXReL$)YZ2699 zZU*>%b_(JiB7D2?G&(=N>zDBy)W0-g6W=WTVRSj2n#0eBjG25o0&&3W!bq33SDkDQ zEV*Vpd;3Eh)!Sn!v=?oxLb6zkAee#{lQ;dFq`eC-PGZ06MMNCY!h()pH(=#ZJ(ut{ z@5r`KJG*ALH!#8(gw87*Q_Lgk%s_$}Cu#Sn2bl~`Nc=SXHA>ju4BabhP1d>G$gSi~ z);r%FQoO@Lc&F6zVqNV}`z5n`Z^2+oJyezTvX^Rkuv-Iy`?>;!9OhZz#hNtQd0wsh z*F8>MWguNt`OXaRN8?>L8*Ux;#OJS^B1)t1ub*^`)zwqIQ%FSBK9egR19hkffx1^Y z<sV6GYpX!5G_=XsDXcplI;v9bOze;Kqo;&$GzR@E`#0L0-)5aa5n>+~WKTPd&U2tB zPTgLVIMX4eUuOLULgutegrEf%B$iR!jT4G<8yAxYC@6eDly4?IQtO-f@+6GeFV<Uc z*tHi3+K0MzzdwA6k0zIs$ugzU$ApL=>h!vh3$tx9x9xEhpel3&jK#n;04QAY{YbS^ z?xDV1h1mu#GKjr*v@QScqm~{WrvyRq5p!=D;xbJ_RMq5&7T17cIUp5w;||he*m4dt zE-|J7Fvy*v!1{tL1<LjW#GTE(l&z>F-jWNSz3W-9usOl?@#F5-Z6&vB6lQAJ#`#6e z7$lpoxd>fY_rGk5lOjmMYFAr)&ygVyjMO0!7;?`t`H}!8EeDt9$f%7r)Y;kH=I-Cs z!?-cixL$l^wIK-H(?1L4`y1Py!EZ>h2M~ojyF>a9QcX%QPLBKh#NQ1c{zz>1RdhhM zeIxezWYDR@_TSCQhn;aZ%BpdIaZd4Ijn-tx3Ie+|D{3!3VF-&@o`%zo%j)#s|FoAs zN6p}J(rN5bZ(_w%FyPnUE27ZXqToXyGK%~$+oa~jRw%A=u!P}-2l4L%cl&XJvS@=i z0bfhB29NIQr6Bn?KOSbvmOHlgEftY}Ij3P4wB`pJB9GaY4zDunpyg^sg{V0R_968J z7P}}=1Y^%`cXN1PRj(M?doW7kqqRRO_Vw2E#%vh9SH_fR_ok(-GY>3<9Mx8vH@a8B zzZl_Z8K%&hEz8w1jUBvOhR3goz>+se^s2@NxWrW(3&|^p00W)B5s#=&g!~3O(bKa2 z=R$y-A_=%HOtYFI?|}ScDq^1+Oa!a>D$8H`E9FEp&=>jhGgn5PECtUYBbDe9!;u+u zG5=EA0N-h@vmCKL4v=C4lJCp??|_@;vE7}1PJf%%kC)HJ0K!Qh9h3&L7)&2fFWmcf z_KCcH`_saF@;tK7NoxlBc){3o<ASh~D0Ra>^tE=tYl;FwJYESx#t!9?D}($6bkIMF zF$;uGqV1BtY6I637PT)OvxVHhnL}(*Fa`94EAs)`7Sl*MfjLLK6dy-mc*E*PLCGV` z58Zj9!O8*zRSN@Of0O$RNB!!vMCVByC=GJ%_Xn(>S;%$*hcp6pa5^NP<oB?O{|N;U zxxlay5YpZZYowl@(pXK1dg0tEA^d3B+lQIg0B1Ase&20~x2}$f4D0Xv8V6y#m<IPi zztrEp2ovfb1v>P!#j2_EV6%mCp@3OHrxLur2%t-mSnh_&IsW`mFkE94z8E=j8LbFe zULdx)*?86w29nrnQ$wfk4+NUYsRcKS!^Nq5G+wuZvCS{GVY<DGUa`b?M6~bn&!Fb) zj`MlX>&*O}X`JGmX;d!Hx1%jkkd8x<bpG|CB$zd4s$$DAW`NMg;knz~@6`Z@z-}?6 zqV84-zdVHSVM76|P=;XpdLld6atzBl?M`WesSA%lGtOriHxK&Nyy4Gx*Qungyn#)z zPVDz!k<xMhA2a>_sA70Fjup;i2(mgQE8uyT&=7bbT2+sTMAr?JtT2f@m93Li4-`d- ziP;rIU>q!+>H?x4Hw4tRF)vdfy7{ZaH%*Jb371(7VXww2`d!iUNJzqc*Z{Ir?0(?a zx5P^lIT1&xT1^8BaRdH<Fw6qU!id1<I@gX<rx=B7S{+RJ1?np^!NC+iP}r;C7=p#p z*x;f5ZaQq=OuFYu4>-I)1^1USj&xV#HdZu>>WEB+1UL&VM`p@B);GlaaX7BV^PcY` z9{2}h`s3`!x1ty6#j}`q!u7iYn9c1fknD~y1(w3tgdD7Av}s@f`D#d~k48aPz*<fX z?&?a%fX)F>3qiOk-`KL5GW;-ZJ*7g&%n`}aM#3vNKKgc%R&1=qP7cxvcGf^GKvH+( zgxYWG7>vrKj}uMS8i1o72Bm$RFIqk~<>vcz{Pz0L^w2LgeFl5}!X953wWlbFqX~QS zluOa|T!W0!nvr}XRN6tP##06r#IAA!8p<#L0<>y5hEn4q2UknLKVUJ|D%ODd7R76W z)AXgF`7qExQEWcK)atw;G_&Dx4!qwWXhjz!L|1O2CW%_PbYay(D<6^!89yjuOclrl zbmLd=k?p8gf5O9mn77eSB$`C5^q|fE{55L2@`o5FVOZc}`+hxp943<Sg8)X1Ggg^; ztHVZz^w(}Mg<oOC0H4>OLP6c-E>uxx<s*=EI&Xupq!c3>S(8p;baM%RtTl<Bh;k$A zj1$J@7<gj9cNJHVgQnlsE0&5XfGxAI2CK`oaP;Z%PwVY0Hi344ydr0>4ZKf~HgA)v zN5H~cJ06EBM<5NwUs6%$ZXqpb(8a_GLPVipM$>P*p<qbSoH5QSV|`@1gK4JYAlsrW z(h!gK#&^0#P-Q$_ueM?Z?1=k}Q{OhE!Ra1wA=kGK$3XAs)d_?Y@EA6()7`%%8nug! zrd~<O0gRiB*NQ?a>$0(kV*8s8q*Y&Uu1DI}Vod-i3IGA-T0_L@B5#bNhr>2#w@N+^ zovoy|0Q`#r)i{jK@&apUs(eGl@o!rd;^=`+O{<NAAsP0TYK%q(eja<@F_wb1rTn${ z=_~-?68GoS`Ih64zX5$pmEPziqM%x#1@Iy!wHz10%ez6b&JYV|UTwfqfGW*$>&0*r zF3#iYd{k0=`ih28dm}dYqe#><^CV|8a~?$omgk*2r|A`K;WL#pD#Ok22W4N1#arZX zDzvMY0cpU<8q7P<TC}C0?vN7Q<M4rG7sSjI`88&3ltE@=c>}Ov5hg&XtC~UN=vql; zEx6wO#_c_Ybv+UN#wag|+Ti`48BJQXpFMeXYmiGTo5f##s{xP;3}X19PVgilzawUM zU%&3LKVrwxVZeZIW3U}nbIi-xGiC5&N52e5e<0()fywS}rIF?()>fW|FxZn&Ua2@5 z&b`KA!7>YqK*CM!Dj%qbUL9Tmm}KX3UCtQ0@}J~z)$PLTeuTQ^EqM>Fub&eaSLuH( zUVg)8XpYE)9+d=c67B!VG0)@2R+06Eb`R>Hm%=M+Ej!HjmJfGpq<pw4RTj~K7j-}Y zQZDh;X}4*B_%0Q-Jfk7ukHlfM&&=_EY&9XIi^dReDx#z5?AZ22wM_nu_;hK<#vE=N zGLl%?s9nsk@JUPB>o<H63*zr@M5U3~w>+Q^B3qX=&Hl5KRa`Z(8}xf;Q@gFKuV4SW z;be|}*!L=hSxyM4A8U&Y<Ln#Bd&NL(*hR+B1*!ZA_1b>szm|8Neqed|mzgICUd)+y zwbcj6M*wk$wI7jU(iqB*=oCxJJK!hh1GOo82ZZ}kNOE-$kPPSV*4GN7nzvG=6CqRU znbHB*jM%c0N5ICZyfncAZeC=5!FeXNelUcv^XIT&i4!Yk2Uwsi*Chg=BG5wnU9*W2 zYKFzHR@<y*{(8NqPA?>HIrU+OHW%-R*4e?}QXR|lFrCrc{Xr{|F0Q2St09Yqq>fJ@ zrslML{lV2LDkN~Is~aA;u>nma`y&*|=zwNCxsH69S&+$|7b^rfD!;kN88dk(pJkzp zsRR?pgp*^c=rr+9YDJ=r<@C&$nYKA{Z`i#yyTc>M2{9iBtGio)aq$o<VCr@_W2Rjz z`)WfhVqy(>Q|bjb9?6E5CxaHX_e!F3D_kN5tkoVqusu5%jUVH<Is4`=FFZ-9XqDE_ z8ct~qjTzXrhs51AH2A_@-QEA-eN#_qu=$1TVD-RnK_Yy0L~)rv(+OnAw-jnboN2VR zKq#%vrHX_GRzKv4O-C*Rl9{$AFae{=U#8jbh|i&39$Fkr$AAmREj8DIPLvs7S0tY? zr62uIoE}t7=5wO2PLFhK(#(pz7q#i`GknbwavVQ5endi0mHbFEd9PCw8WUGAg6&UA zw!7w;5W4^~4~HO?l})TwrH&Fylv$jON{9xo|7N>nk$FYtIwOngR3Q9@g0@IK-jZ`z zywhWsUHww*MMBpVEOdf>cj?eOI*I25Hp=WjP4@uUgcfyLGjEm8^*svUvZc+Sy3~2p zb^<g--X?agY~@%L=*OxENO~)|nAduJE6}O(US;F5A-?~;Y1<2HpL;snnrHg>#Nnfl zt0;6C-v0jh6nR=Q+Y81x?XANtw@9arPi6G+%JJ84@e$+x+US6szbT-fGYujY#gX%8 zK_&lN;NNnmWuUFc$h4}OMgCR}rJz>{UqW%(EMGkhSG-fG>6=1UJ2d}Ve)OORi!NXi zZ(V2ZRpw6rbyUMmZIKasdw@Va8ur@G$_hx2F!ma95t!kegVy>(POr_d%7|iwYt@i_ z7aTVQh(vqWDLe}s>+HKNVd)aw!Sm@6WW@k<^nxQC?ftk42C}w!kU3j>evovIVJ$cv zvQcDwb^YHqRHP$rNNc{HIOb}h_GVvJ=x5U(40U{r{jb={f*mITzvLjkl_co+ue(Ug zhS}K@g>%SKSuKbdotaZLeGY_>vDjH_bCQ-wX8j;+xN#n6jeTED5n<OZLXh5@3WC&* z@OoN@wukYVS2rnG8hu@x_h`HcgQM*DCLROSx^*`%{I{o#^v|+*%mxyjXmHqm9rl(* z$lb(h#~bRof1PJt=`1tXJSW`fKi6GZP2yis;smtb6tFPd^o%`g>m8LTyia%W|DLF5 z>*h;}E?DbYsi<1vdj0=g4^^PUH!=%>x2YqbKGV`nPQkpni$$i~=DZciaYbS*0r$|1 z`yL&-M9who=}?~_PY3ZH?^OW^HBeG8kPs{z)Z!J|ub({H=$H79N6&Fwf>l5<tZVAp zuG4cFDsLY$+?j)ydcoC-;=6<zM!Mz~^z*^={Hvg;ya8w}T6ka!9E%4U5{UycYf(cR z#J4?JVzu4GNTMd9$gXFi+fcR3LXsh?EVGI4?_SN^+x-S{=0c};fVyx8l|NhJOyW33 zo;M>^(xq7FR?`w(gu{9=1}z5UzLThw?Ts0zYFZ#gm2GdsM!`q-VPnX_8ajtN18zdr zeBo}<-h;xoS+YMH*jHG({gwf&D4AM;{32CxHWz8v*xYZ;ty4juV#~08*|N1tx_t?k zlzI`eD@|K<)z8*m*Zev^1JnTbBJt=K4|=3JmM@ic#S@`D_v$+~cedg7mAKWajjd)Q z7;Y6lW;ZO$_H7*Ch$PNmm>%x6!%5KDPH7>Z-43c3z&(`V#&KW|&QKgyWm0LK#Jlpr zWmT_vyLRk$qd{vdlt|+HxpEji60YR6wjK|M%46#WV^l3bYj#WBeAHJ#CASk-0k0t| z7Pvj4%<xeRz3BXO*x6#1qD*mQb<gd>>HRft!Y<Le>2ABptE&srBJntPJ|juxRPB_( zsj8l+EDMk+bRO!02N?*N>`UnT=LJ_3#c6RS4inM=q&Hb*gpK!?*6WhFdpbMb*TsG$ zbTuJEhkuG~B)hvo5qeJoUzxl8_SE9@;}dF;LX5pr(J<+9hvqj<A#xE?P7tiHVbu<h z3$9O3b`Xm_ojx4KQ?a<<6vBcFzvjDRn9J)%Ba(#8+m_gXo<{ye`Kf4u)>jrBgu*cT z{KAgrE&s!Y*L-LS_OUDu4RAOrh2Um|T@`F|-yh|I#ja+>DkzA*(ta<=KNr9tm3R$G zeBEsrcL}q*fmz<{j&J!kDxGK!qs0SeCu2n~epY_Qxzw(F)hx;c9PfSbcD(t4q1<M* zNW;4<Tih535=lh~xk}6@7(oU%$R2e=GHNFMfd#-JU&cP-_#~FB(Eh5=5agr<&J!e$ zY}NL=dL~Cb!27(6=Nn>CoGSGU{iPk1qBZBLspavf;?bRJiKKvtB>>g{`Af@dX=Mn* zG%jT=>fsI<-Y4FshKw~uUq|H)v}RUgMSt$4zQ@{r_tsz`4Ifs;u5WR~lX;(9jfiyP z$F$-P3SpHuh0|>xsvmcVZ|76p;2Na)vR_0ZLxVUemFE3Nu+qsonjQ$CIh%ja!4!hT z1Go<6%FRpSXL}h0RW=9U^S|Jj|3tKUp^#R2{}%SZBmn>j|Ic>X|E{Gib8FjfiYMHD z{K5IqFXuO~F@cA!vg5U4b#aNFBo;lG(%WYskFZ$pk|$1;*;sM^-mR_p$h4x6bf7bZ zA!Y9D?C9vJ>^LKjAice?ng+T3D5<<utm~>_9k$*z(N<8iT3pd=(PHf^ss7D8)m~WM zbZ9rqEI1-em)7a&`f|I!ysUJ5nG9{5y`9nR(W+ZbMXNdvXnpmXW_7+4q^pQ&RZ(rw zF>1|PR%w?aMa)yM%IvuQtG>H~x?KI!jQVj-U`d6JfII*ZclBndhDud3vYctH3b>^@ zv+<--(~_K+QFR?rl~lN01L)^*c7d0AdY;*v+xuP{`Rbcl&!(<!QkgKjrXKIg^pY>& zV00Yyoxsv&Gs3HOXF{mIj!fEReYtY=hI-}{W6KQjAyO^*ME$d7w47laQ2d|}U0SEs zE(QA>|K<S;JCEeSX&~b9e*d)^37^Z?{VC?*^7C@={k|Sm+`H`kZ*{f$BBhtctvyFN zB3dqbIH-U2F6&az3G)GiyLGsNEMA|is^T|YhV<NcWxHNUqRcXl0oaH1?LqrKcvo7{ zh}Bj<<iNvWveWg6R(6qc^MN^AmNb!Nw=c>nyI^kktrtv>8ofWa;oY}^<&HdxBn)IM za|F3u0Y9M6vquj!+d~i<52~-(#?6>Dt-efKM2VQ8C*khC6!Z=t(T^kyon}65$JDrf zh7(sxL<7Nr302S&l$_HH%U+xXW>RcOuv_H5pG8}9_mP>7i6BBoz=@eDp%st!=i!6W z`}6%fvoaF?mXE;vFf3*2I>Agb&Tro}eXOG<I+WiZg2E0{g+O~1{tqr&hK5E~U8HrO zr61+pZO3e+iUR6(OtlNlSp2hbYMoqGqhMH0Bj1lOssNsy4QwPJhcE#K0fO8h_tnOB zm{bZe@W@!<<7gIJHq)irdlAc@^BFuEWs*k4$wQeVO(~B~J-IIi#BZ0(=FU^Is7r*E zjM|S)^pz_2)IY^*y#af`xq#z38Grcm%OE^YHqA<g;o}9gIfEoJ{{&E-5l7r!Mo_t@ zfDLn*N<+^BQ2#x;@L^6|xSH(nqG*-2YzQcCN+`8$RJ>acYU&RqmVnFIXIXE*i3#Oa zYMEurFDzFFqjm==J5yku7?EA3qH;a+zte38m2W%Nv;7j%?6g~c*+Ulu&zMJ5Y)S%< zjKn_tOb@WF_GiWPzkX3t><CjDIH)XY&RU?o+8}#^%|cy=)uLzqg*dC*JjhWKDj+hS zR~a9KBz;9mzyeJ#kD}HgRB-^LWdn}fYW}_W_sy}o#ew_|uBW6ITR@l++iq!uIyJ_M zWfcgf5^vh?(|HI`FbtdItBpnj5MT(&DI_!K-fjH>N0{uXOsT&&Dl&k)vQ&@>490;L zKo2Ev%sE0Zga}Ur7+S@NaOF=*=`n-CTD4Ob+DX_Oh|@0<Xn4H_WnEn+6;)%9vqfqJ z8<H#=-U5?~WyddiI#&SBzmYwSj_LIl>gvweeDZ2ADDH%9M{UUgOvt=$9g;+txdx!z z^KyO*wbCnJhU#O6uL5VE9Exe_JjvGe2ba~&M8Y|ax~_r?_9UNNsz?-WL&yv<QY5F@ z^2>UWp!}BF`a2s+KqIxTlFKdV*CT&mx$5?U0|<z3=_U?TCdJpkPSLD>ib=m8NR^Ae zPK0-j|G}hPm@!ZVsBhA^M?29_leV<2I7zCg01S*!v7fv6U<l&xCPBo-(j76rEPa9D z-#N*}n2FPM=4#u#Qv{!VrG#pbA1p4Dup$v8%~{GIG&>F*-4AHw%>ZN%Ce?ki?mLms zsTCG^c>hEmS;A&RQUvV?fYAGG6pEK8>BS^SaV{8Oy%sG}LrfObX}t#KF7$WM(gQ!H z*^qFP7HvwkHHsNd5z=5Tz3|>)-WZ(~qFouW`te03kE7W*3Ia7mNjiFxdWBp=>~`R} zI?J|DtTb(J_Rl&!ym!<>rlbuS?UZL=8+o;M56}#uJbjiR>)*lP;JQC&5QTEyLIM;P zBM+Fbl2<isQp(}^@uV2n@?5$#_(ksN!eC{xhe%#w`p{$iKTwW4ATX5JfK?=-F=t~6 z7z7l7L}~+X;PgA1cT_lF5bC2X>u8ea6<t@W2s~2FG6Xr3W7?E;ZHmJsSN>NQP~Dgz zyXc-a{fuN57Y$_*xySjc0I)%c32Oje=FE8VzW#}>LEz?Y>PMg&9u4|Tkw9r38V-LB zk(r60NW9Iq5XPENj|%-5$y1toY$7+A@p}f<By`w1*TiXxt;|RSS|~PB1td^7<(QWl zC0w@X?V3Ql<ikcW=d=Jbknu5)N%CcsVc>#3>tW+sl|<I1?(p1ZzGy3Lnz^O4yHim2 zMwFiX$J<<-e@OWk`77)PW-cz^aq7#b_?a73wgVZ}Xz0e7$}{|)AQ}kun{kR22uF&t z>x$0Q>bUmqjH<Q<T7#LIkp{fbZigW*PfdZBj|7mqu%eLIj6|Jkx_{|`KkNsA64D~* zL=tPH=dj>q|Df3Y(bDA4p}-+{(*OtHXY|os;=v?gXRBy^`f>APnFes_Q3RjuN01K# zt(tn@0PIXK7q1B58dg?uGpKk-Y8!<K@yGq}frA*&dOEiuO`p(WmqFG>aW`?qcK_!t zdgBxhBEW++YxSym;F?xE<W(-S`c~9-jk9i*Ed%J?FR7;^hC3#S5_lkdwl)F4ok`hp zlBiKOpBI<zGQ;0ZyNDp7oY@?7pEZ&X^mjY2#fQYUq*vGU8wUG?5yd*rs1V|u$0Z}- zT;j}^1dlSQr4}Xg{W_oZC2f=f=D?Rvvb00#;(kBh{du}Yp5+eIE9f5vApEE00PX-S zjDCq}aOas7&1ZabF4-<5Nb<LFGg0v8O)}ni@O_CRhOjNsJv{dt@S-Y86(PxEGK06T z)c)HHO>)jSOX!RwbWTu<0c9E&O$(N3cSnGpUKcZPqK{tC@Gh8=O+^6)PLB_toq-9! zAA_SV)pM5}R;mb?(Q!UmC4++;Z3U={LeX((*m!xvzro^vpX`$}S%0RUyS@3vCkxJn zeKOK9L&2ud5WLhMfxE_lFQs5?*;k(UPFjnfXvIX`YA~`01x_!TnIsi0A@S_fPCyzs z=KSCyqUx;3g#aH{Y7vbnb-?dE+R2Ac8N;bhEn(6MAfaPV{e2UTun1l5lxFE?2HnLH zR*JyPd28Bc`%`@M+Qt3tZj?uU=O`0(z^<N__v|1kFp(s!b$OPCQZcax1y#?O_MxP* zm*g#`Fj8y#&rX*)5$r8PgsV4{PYH}wb$l5oL{i37@;Hkjm0(n{Fc{&5|JU1XN>auB z4%u_UiCJW3i4G@-lhY5Qtoxu=(-tc!5Zgj$c{(et)Z&kGC$ykjvG78QnfS>Z=0-3) z3J-WifF9@=h)gW?ieE%M=ng(j%HhS<!>{-9A(JXsmcvL7V+hI1zQf3B1wscVC33f; z`kR@dHUbZ&ym(Q|$X}LX@6f%X82O{P04o=B3-7YMV-wcAh|29z%ePjucQ!Ll*=$;F zFXY3>qd>khVapT5HK2Gb_M<O-9J%lJ7&<0|*Jb%BLK>7(B6Npx%+TUhw!q>ZHashH zO9pUC8X;<wEPy8hMj{A;5WuoIOJ99S{dEd^dxPUhHJ}G9%qaVv9V(cHda<2sS*tiO z4N~$d1nV3^Pl|HKHn@5a5$s5wD2089iIpW%F-h3$ME{{S@}Z{3C64k6pVA|RvnnR* zf0@M8Gbs!$y7q%jMQ}S`u7^3^bOHZx)vE)lgMp9FpWEXdd_-jpntq){*)q*cO57f2 zc<^-{ZGXLgslKylh8L!LF_@{G>o8zCF?kQSg%WwSI+AdIZ34PiG9a-(RvHwjY#^f0 zH9X#PnFOLy%wfailH?_%Cr*cE;!encwz~SNh%**T(^)GGP2@^rMn+9e3&*FVJ4b21 zl=BT!Gq`T$gQ_2sQ@O2v#d{Ao2Rk5U;kX3EDI!yxyz+|6IzvYBw%Ju5H$9FctMT~~ zVz;w^w%X5Ny)LjhMp#n&J-eRuGj=JALYpfIYa$KEafZswGh%=7D9JvYUB5I)CFct{ zN>L8xnuD*``R(;pU?3BtEbtt=9gaCwg``)EHmvkWh3&=M8ZBnrFpUbPw*Pz2kLLKd zj}+S4_XZ=#{o)B|tls+91IZ6B4s-xfIj}+<(GcK8UPS1~q-;a|R=L<}elbR8a=&|D zKfw}*z%XUQI-y^W0)crajtPy^Xv!6T!0)zn;Gfz$6tlkk#!RD$^_wMk7x8-{<+)E` zR$plOzGkQdh<>o>LkS|xoI(5jJ%(o|d-{WqZJevW7d24dhE#YzmeTC>sQ0@M6_&1# zCA1Z?Fr&gdsMBxH*1A)#FzYV)^K%(&*a?A@bZ=%=ssis`v&54%$Su;Be?}0c*44~t zNAwSUBAt&kmbLs#thbv$Q5CO9KB$z|=;=wgdt|NSzM1Ly7%K=B;v18P)%1sTLj8AE zgf(p-uBRCZFibMp6&hBj+;<`^7TBCZ5$+TnEF`~VNPK~9BzJB;uH+vaFZvbefbqYE z6(_!$A8=@Jrd*DObq`>IR@xm7=$ym^shZ1*KLtQaVf5Vz!{Jc>^;%~E*@C)Mm5tTi zLDlPz^Q<aJ^vC;1<<Uj|;DKMYv~^$dkKPKTNEPkNsv^}dv~P?HlbYX+6a}`4zf^{0 z7{5B#mw0Z3ww!ep<Rqa=n)Ohx@r0kIVsN7@|80thu_e$EJnwR)BgpmMJU8K%#9U@w zw9hH2^_#%ap~7K~V@<X{B=8P)!n7z<2^X=->`ih>H|9hiuz<}mt*w34?(PbFZHDn> zo&QwWRNhvjoKRgk3a|5+=Oyb^n}-m7Djyk0&#0UTHahB$t8Qxoz4Ms9iL~lP00sEf zQ5e>(v!?4{AWveKhT^}tBZYgEA?Dpar)##NLB^}I-7d;@#;mAM#79{=+bI>m7}Hy- zNLrTu%J9WjHTNNo`Lwvo4}v(9!*%c0I`p%PQ&t>T3~@A>Zw7HP985SjqdFRSwJP3# zoRS4O9VtBNu_j>(q^X`H8!S6L4&X_L<u5B#5TwaejfNrjb<e8s71BCdVF(#6-`j4= zMT`+q{Ix3JkxUVn@xc|Q)5y{WNg~0NbHb<>YwS|?)T7TXJ7n*`>izabip;5#18qTN zHui<4z|~$TWK+zX`YVwtT~dj38%;q_^y#(CQjQZnDS_Mw*DjIbaeJntV_9q`#|N>U z1ue*y!I4l!S+p*vLMfbKz_hdcH)6+4u?pA``I`eA26x6l_;0jj!%XF#sF_-iU|(tc zk?5KZB50vrqK2LiPs)3k2UCSjj4KjA|1xs-ljsUkS2|PsY2~OpRfieCoBIPSRG}+J zLc7isx1IWKp}>OXH6lb+bQ@B>AOHj#SbKV6>^nyq+J(H7QFCNq%lxd^k?g)GuI@-# z;|cTF2VhLUG{hVs1my>(!Qf`g4c2~=9Cr#ned(#F^Q~g~j*w~o9(x1frn*}y<-u^x zZT|XToDz=TNSp=I(Hf4@6CC^4eNlO48g6M}dZCkT?Z71-hHp#{A`{y^B`gWb$mhOX z*}fx$O_$=U-FOdY(-V@tMJ<Y~*u`EU+NKREKzW#aI2@m?e0#@-894L+t2F3_R*r51 z-}l!dM3hNKw|?AuV)_}w`Z6{>LjkQj=L)WGxY{v(uwx3$b(pBBmDHB-i(l&<Pk^Q< z2Q`7lg<!?`A4AdNSpy=pTUcsyW<(ivCz3bIRwti14-fUnd9fEtzFl9FUcaa7P}$6? zKU%F&`mqJ#_58T-PM7$g1E4{L5{NY+-kNT9AYHX1iv5N~n^llQ7^|Kx?f3Wr+z%~| zx8N@~`LwVxkupj9JCj|8LcU+?ct7BBY25QC`9*$114d2#`}*gwz9oiSQKTs?_KHRo z>sN(2v^y|@q~A`$LntPvxS(;`1)(Zp6Db-l)_Zy8_4V*s$hv#$aA|l57GBADP%QUL z%8py9ceX1oK+wSUP6Y_PfXcs&Z^GH~uT<closvrw%302Bc1?w|ZQdTB9V^#Owas3? zW{C~wE9;(0m4(&b$R++WxRxtTJXoQl`8|5C5rwvH(9}%y+Gc}8Zc8%<y>?X$Blle@ z<eZx#3c|at^L2|Hp^6NR$$vjCY}=PyT_%sCKGqkkyKkhvaE@mHSdiy?=2{IZ#2hst z@}>HuxY22?><7UNv7b|MzJ#b#!y~Jsb&gjnSr?_UJD&lKt)`czWxj+_GW}zE=$!Y? z1nHjXI@z9_GU=c1o=4=mKfRo@NtDYMn-C{jg2Um#0-1t~#iIszT{7?<ES>levMc{G zg5SAfXtb|fr@VmxR!=H05~u7p{E(Iz%Wnykam_}u-rhfI+%68K10z|!7Xon~ZkB8^ zFoy)NcyBHR*nTu@oh$M>19;|Ai%(!I4U{k1B^;GlL9I<MYx40paX27USaU<LV8U$s zE$dY~D#;<@;V1!`&<=m;@Wxm8uQaRA+)Gu)<?u>UdRSBtwc{-=#0S7VBY0M2WUnZe z_vmjIow$v49S6?>ui0!C3wnV)wLURmY%lcLt`+a9W!wBFS@%|O+~&<gQ&feS#7NM8 zaar+r^Q#(p$%mv7-QLz|JG@bKHPf0s)$2#?>i&>6Du050wSU{xmfa~imQyZtKy`7f zKQ{X>no;rj2&<-VXV*O6^{Aa7Kk7mEe5DAWj?SB;)uK(e_CcHuNA6bc8lT>b`{#xy z;A&gp*|<G8Logpc-!;M`evvD)(R!BYq+n;p5|r&Hv}ES=U|Dj&#wBq0@`mYc85e&d zMp)#}-6Q&pmdh4Vh=QoVPN=bHPwY=80;~Nh5GYg?o8s#4BJhG7TmgIj?o0ZDQvS;J zH)nVgaTNmRR?LxE38&+@0T0L|0JuLN1fv3kAM1+iv~+b=u8w4#7f9)JG&8-YqER}r zmy|Mt8&x`I!!L{WiXr52-39sTpZfmSY|(%6P1Xmev_4b-fPMA<58nQ#XLhzTG%@{G zLOtfTOx$Em*gaL#8$BjGUU*2T{w|`i9yXQ3O-`k{Cv7fPQou&a*oPCbfOHty$ol<! z1_l6(OEAGEYgPMq3k|no_VaNq%%7Z`jI_<DLXdR%?y<~}4DTv$J(l?wZmusGY_f9I zug`rF@9tQ!8fdC2lAxi{>2!HLCcBYWN@_{fPeM_=Si9#sD<(Cc*%Yt6Xzxy-(b3ZC z=Qy<5ZpboU40w5sZFE%GCcXDuUuLb?2{fL_sElK)<p+h3AF*Cm){sBO=wBfK*UxU$ zOjQus;%!*f*1LxCOj+v;+5Y~VP<lTfFIU#~e%wU1yCtirxM+{JyQ$-y9I!~Uqv?)m zv>5ZE={h$Yx9%oYWa@^6_ujs?Jyc~xwtnLZ?Bc#WlvZU&_AcKUxb#nw0|@LUCrcV_ zvQ}%KTRvvpYwb_I-#t0*0rD791AijD!=b8?eNy*M+USLjcU%2&P$c>Z?;Rk$_^hIY z{{H61ZBBJ>r#Y@0!JAIRGiJlgMRnMn$SNXV&T0XsS-S*0GYy${l7Ol5YMs3RGBTm! z#-$0n*sl_oO%1Yk-%iAiG%c|CNrw#t8^FVQtiEa>ykz8hA@ojkZZ#Ok)&e}j9^&W^ z-A!_J@V+Oi>P@K4*oI4)ic$iIS!nD4xs#%SIe{Kq@ra)AN62GPCu1zm=n}>e1g&Vy zMww3GWy8etn*KZW*fXIakDMXv6g@`EDV!VDTIOX8{h5%wHQvD_e#TQqW`;18k8ZCC z6!>ipGA2q#XOO-{T$l`k3M8z+y)}V)S0GC@FIh(}ezg8|u#c*HNKT@!Wp5;4@sAW& zYS>6PcT-m(3+EJhWoe+<{nPbutc#eNzdyWL)g6zcH!q2y`+(f%y#3@{Zv>~?aR6{j zTRL>;0NddOm=gYy?J*RtzT*etiI5PC514To>KxBncd1IlH%m$KZtt$dRxRzGPq7K& z<I8~T`&G%mI9dQ7^bQE=t+X@g5kW?dLQ^KHxf$JfmP&4dFB}Ga#ZIW{$8Ve`q5Zk* zt$iXxkgbxq6zCRxT9*R9LnyFq?lrZVmvfVYc5td0o@-Z@pq{xKVZ8|D!Nri+pyV$M zXtndC;_m}agB2mI$=Z$dNjW*r5v(LPzpM)^t?0TeAhdD*lyX9yT;y{Dbx|^?(xk|; z+)WK)DGm4l&3@deWf9JFrdKVpUZB|tZd3s-+y}k2Z$R5nW4X__emqWHFVwREg#-Ye zJ*MH*GR@lw$U=(%x+c*_3ElXLik+o}5F6dbJ#N5=>CyS5GsHx-RHjiD36YH8m~KyD zPn`ovzX3NZ@T!ki$r9ZQdS7+7uUNG1ql;rO#Mo-UhG&u{=MbCP4|D@9y}?3p!^P@| z4qEIE1UsybM!59EZ!Gcbg<cs%hj^Z(Ei7n?T#q~kuyKL;7Yt(l7(-Iic3JCJsKBNp zDzj)|Dn`cd48bPpH^H3hcRetwe2oYZ$ehzm+2v~eyV07EmeCfC6-)!M4|5HDHYT$U z)N)_ZOi2u6x##Xr{I%4{pQ&u(@eMZnM1pd4Lis;5I5y?Nu`394tXNy<U5iCtQE#P& z?`(;E6a9;arNo`8Z@%1hey-glntFMX!MEUf!78V$R07Z=@mkp3n45Q}k|?lOPzs4{ z#PM#l0p*W9*8MKUR(~^I`YJ&Kv-nUnAoe_cpaJUD@x4TkF;&@BFPEW14+EvE+*fLN zU@{-X!I7IJKU(w<GzWT`a!pV}4H30Ka;R8*qhgM9M)}HFmJ(^5F7k)js|e<bDyEEK zspem%*lon&vbr@FV&3xJ3;)br&5{$`iPe(bkbj5^sG<cB#kaR5hJtb)tq(8(>&A7? zg22xo$YACblA*JanM&Um`GgtFY7M4M;y~S$7~#2XvVOz15n*Tj0GaJX;<Sx|(YFTP z_-zZa1y`kPB&&e$D)zh4!%=|i5H_3@fN+1&ULK&)Rgi)UAz0>j@)iNl9LKegaArmV zf&xtq^OF<KO{K$wS=6lsJD@VXl0HNc2@Q`ZWVw(<Dy3LbN*<z5wHhR;`@N3zVF0BE z#vE25VTaFABFrVT-D<#Gek?@QbageU@kCHF*-5sVm<E7VPc+eZM9TV(4I6%m9roeN z(m@2`bh37$M?Czc41Eo6nAr0>z#{{elGC2TPo4d;IEi*n>Bb~2NDzc_KW*`9)wySX z(#?8^DulwU1wAa&ci4U%%eKJuaIqi|Ri8d&1dw}?Mq(Vx^T}7pI1Lo?CemCIjH@Xi zZx<Hm9C+%2B;Gxd3b9RZm7_@)?O{sb6keb*pN>Za(2eTe+A7S37D+%|xc+rCyQQQ+ z+EiKquRH9}O3+%ausz12+z|&|n#uHJX0DgI#2_FOkFy7EfH()PU?5R447IwO0Va9+ zZhUo!aOE8`^B%Ocw$CbdI6{P1<rgy!#>+-fnUkT5x#<rcu$wr*%ZV@r3TTa}ehqoR z{?@P#N%n`HrUnIe=8+vRDkbox)5zKQg(P1-G2dj)o<wmyO(CdJA4YSu)TE_-pj47{ zlciZ{Uil*?bV&eV06+rc&p%K8Kqvo8dI5&=zNokRpk!qnO~^xtJW38zx9}3_wzZuy z!AXtzVO={W>esWA3MzDOV`FS?ouds1lAJzp6ds|b%opT4_xkm)!=C|_8glH;TN-?g z|3O<jS#bqdb=C6k<kBLl=@s+|{gzwu7N^<yR;ztzFZxffec1;Z1&m4PPgf@^(@~&r zl5Wp^qyr4Kv2Fo^)|jiOYG=UxL(@A1fJg(@<>g{IdmkORThvaiaATbr=?6E%Rp_Y% z#c3GtkX$i?5Onkmb?n>BdoYAFG-5N7vbO}jF0t^ftF?&3fgD_*Fi<`p!3^)=|E?xC zLmCXooVjfc){x-y^Pnj(OUX~a+9wG&QaD*06KZgURU333#7o=%0n476G~2_M1>p6% z_pj>MFfK#T3!^(<GAU+}OD&|{6Yl{qd5U^{!RRoDyjiONql%6|OdQ0M$Ma0{i#p9< z7Dj}bg@o6r(ry`5qR_1F<EugQ`|)YsbiCF=)uO*!L*fC?3_B6uB#b{BhG>+m!k$B2 zOtMnW7$DP<$OxfLUdA>HsRWfF16^&XG|n_2HI4Q5R%3%_d4K>`9tHP=f%(e`G0t?~ zGHs!<KM%gnOPkn?bfAQ^+!q3K00R+S4^ma%DtQ`-Op_+OeT1syUKlEBJ0k#CabXDP zSds75ZS>+z13%Sx4jR1Xg)-YGyT1+uQul1_qHRD<?$br3uKKk;Hpp24F0XMTb3fg) zI8Z84R!l;ik0!|w)yrNBWAyVc9O0j8IM5`CaT`vC^cofaYVNi6<N&G%dkpi(AZn(* z54)9aW|x^&Dh`2&o^lNKIFXojmAPJ2Fa(V6SNn;&$fC9|(BK4;5<~BREC@BB2h=3G zG!P`@BYNy>&h5vxyNFa5%TgmX7sLxK|GU~WX@>jGdJE3IrGmdC2`y}rFl6+1MNZTc zMc6)@LR0|T05S4!Dkch^pnq>pc!*v_LrW>oTj}Bef9TYHioh70A9cM$$++!4@R9m; zo?@Yv)a{h931m4F`#EM;87ZXTENWS+a+4m3ID^k%qe#4|q%1_brte%?;co>I?>6Q- zNTL3duV53A!B8o&p@F>B>up$s&KzYgXky8sABNcI+YoK|RSI+?FCD)!9VW;b1Ja># zzbrjRm3D9yCVDr@Jfj0^C4Wl@I`*$!rMT<_MO}J7;*Z_>n;45)njb4@nH@D6UAf@V z+!~HZiXPohos+PmQC+|xP$>>EZvTPqQ!8eyv6a(4Ud5mi?LmFIK|Hj=6wtZwN0nY= z$|SYm$)&iB+mO3L-^FyIFd+C?l}{5j{#Oz8TZB9dyz(b(OTI`Ks{NBW$VxXbe9$jm zQG~39q@A^j?wJyB^-q@^wK{kwb8{m-3W)4=0~ZDTLy)wpYTDk-r%jk;y?oHl?2}>o zsVxF>!IINvL2W+}TgqGA4}2v;1>zAQL98m&BZ)9u(G9GN<C0bl-R*JOfg2}7fon}? z33tXOosb`Qxlo8jOGt=^<Z>hV5~g);$dnng3n7Pr2%)Q^q<2qkC9uiyTAC>Fj6;+> zK0JS+-_hrB;_DPbT(CLz5aJ|WU>~mUS|Ic*opJ|7YF;iQ;_M|_Hh)JCCKZeF%R=c! zY+bi>I7iS?9?8;x3Q@U4(otvs!os{DjsC2pRMA;^iS%hx<g`4dv(b68G0TVV*g$Qj z>)!_uviG?qh0u9ERfS6-SE*-n1YdD$u<!=(9Ob^fz?bj-^!*F%5OpO4h=qh9cr`j* zU(e(ww}iKg$<$qM`{(IbU1Bc1N{h!|{<I>`)o5Zoa)+s%w1|X~v%QJS!-DG%&!iN4 zc7`m#oD{fdy&~+wb-ZBM&F`pSEtQ5Gej-$%8!Na_2H@CpzjauwGYA}N3c_W3aM4Jj z#7ZiTCGla?8q{0-Zkw2i09in$)3OW`o973iA)i$go)-D^!GT6Xk!Nov>wsO^E|V*m zXT%}s`?m&>MG;eyLA*Ee`aJ?g_4PUuVmyrGxUH)n&C97ROwP0Kp7qy1IL=2hlcVE~ zPI6cqLnAy&<BgawLY}8Zb*L%}x6pk^a%lEj4lferL<$X=+=Sv}-M_+Pv!ZXH&{Tt! z=j?ifP-b|EBEh_PpPq9D5BUu_iu?`bgZ@<|D>3!DuPbl;xIPR0i<tv_W-Pv%5yEBb zc~!AA20>v220yq<Xj;1J(w%dUxJyaQGT;FB3}ucPheFd&B*ve(jx3H(><r3*^{`O~ z_S_-X+P%gdqXei7(K6{KC8&t#laDd(;-e+~lw#|3`$fGUWJgM*AubD~@X7j3-!bW4 z$=5Z|2@9Y<Ol5>n0LBXTk|5dfop-PF+RUc#poXjaQT1$tYdNssA0C9)LILJv=^XR6 zm7zSzc(gL{Pz<T=%sBj!xN;HW8rV1H#uiV=6{XPj|MsT;wXpI*e>DUfCQQ#eF!EC1 zNxQd<iOUfH6x&p9q9(De2HMDdvQo4%^Yf6F#$yDi{L3Y%)(z7%dW9b2vP|WSx*h}l zYj82vIEy|-oxR{tq8*T2aVx&l9^;3c()P@?Rb7cbV&X3e3nCpp#Kk@_M(XNR4UKDR ztFk4Ji}a#yYq*hXGi5ml$=Yxb8q;T#&!Aa#K;Kx`17fYG1&Tk>#Bv<&bH1i$tey}^ z(lkoVnX%{~X)1o1>z?7>c_O6M{@&jLS5UgmY&EsH_Nt^F>(2HfRGw10*Q_k2?>i#O zW#P~8$jTLmoTlT2icUf%Ov_-Ke>Of7w6wUQTTczk3S^YhUEBf2*H$@wSOX(>yacb7 z^V64ANR-IBxa|$0sq^cEgp08vnrK3tM#Pm11=;NcpnlllU^zcU6K=8x!Xb7#$JL93 zfu?rf6;J{UFW)k37r{!4G3U-l*Q1MZ$`rH+%^^LAtnBE8y&l{E@`1XnYdJ~X32_UY zm5+g*V(;UCGX8J|m_*cV4_Vg##p#@GNV7=gZ#2@NC9KT^6awh1IBQv#h?~N~pb=hb zRbeK#Df-xk8^HDo>}M$oW%q{`h%BWthG6zmqD4TDf}^5<FyO@k@OFv)oal54ef_&- zNVj)Ai?o$ebgAfiHa8)wEK}IWR;PTHvUs6~MSJIgY$O$=*Vt>*zUw6<gNn83nXfsj zR{{39o3w`RU>z{F7nn&=g7I>hN!2F*aj8jtH)~yk`GqLTe-`N_g?n_o)tvK6!%c|Z zYFxN$7|vRMgozi6bN-bR+sgE4hU4VHvFk<OsNu(e=R3>lw+}LqwZ<8W1c(wWFGVy_ z4;@__BJ6U0ZH1aQAKi0fM~9VG;i&mm{*TCFL5GuTRB5t%x$OLbAp8z3p^+Up!wpNM zKS_b<yNihJ96yI~0-~_Tpwq=X3e+6>Ym}x>`;rWD8D1i&6=N?CTUT+Vf(vE5*)!6I zIWG>;b<s8S(sB<at6d9wQ07NE-E2Ym_gZ40-DG{vrs8ZLYRiv0OHsEz3^nlpW%E^R z1o0`f?(WDc%9#*_<fMat6ob28#i+%#SQtOoSk+65)<Y@lpy)CfE#?~Ho&}+d8%cGS zwG~^R|J$jm*bSH@m|p)csYV*$&3D;Kr9%7h&UleSAt2ih;8|fTT(V}y^91e(XSXfd zdD*awup6thUAHFJ8~o%rlXs+sZv$Bs?Gn>{t|B-)VW-W<3_lfw5u=sh@h&g_eivB1 zKt5HcIAk3g_#G=?1NCgb;tEbMcgIL<IFB>(T{q#y*qOi$Co`854m|IB_?6MQz;6qG z724UY&??SXE&=-CnTsd40$)PPx&F?KFTp|&9_<VcN3oEQ%6VZSo0{!V?(f$)5E#?Q z>!HBm(3LQ1_+(Do4YPL9l4HzPVN8csyxbNMyxLxuU^87nBR&np$D5oHXlVl=j<X0J zLCQB<guZWS+9D(=cvVa0kC_+eI)`j`Vp6A-oUR!A>S{7&JJloD)VGsbhy+I|ra_lz zU9a#V6K9hczxc*3;$ihYUSs8Gz=|Cy4wHUq)xjTGxz{K;8DY{bL@(!=bD=>)0^YZg z%`LAC9yI0OBO&y_SzM{0`F5dIJKGe(j-^ZLo5zNNvVuXF{BoSjsgiY7^|>K^HS8K* zf0*T&PWw8A?i1Ed(^UaycuvhyTC%1G%?!9(Yk#qLE(Fuo5>w6rh^_0Gh0GPQsHN8< zY<eBu&L$rHUl;X+p7<L<cUYlVsem_y9;&s0kGPZj_MubVV_ubY)eZ77HWLuTncZrR zKFKLaw^1u>$Qp>K!j44!0uW~Fh}XRjRz5U^i=`s~+sn?xI%TyGl?|G2*77yC46@-X zdcK#erjG1lkY1gWyd>0W*aH!1g`r&Dbnh)Y-l=~|4iBRnL9oN2QLxVw3Uo+!{JbTi zTt>SgIb1{B&;u2ryR;juFuFm+nsAs?_M$CO`wj#<08_QjPFLS1N@=U+7LA~j{&KIO zK5TnNANzAJ$ANf+xy<2ap$&VGXed+eBK@Iv;t5d%yc7|fe-QZH(D~Kh2$i5&R5vJL zy6S%=+WbifEws1x0i7*+92x;UN;e|B1kB0{yOnXDRQWM6@26RiZ_;pQA%vc1Y>qQs zFMr`6AMHt8Intk&_N3eGPVrDCoD$cFUIB%-l^MRWAx})z`Lj`1Kd0U<JVFT5@tLL) znUO*6wFYDCI5!L=>*sS$dih2Bbojt{^NX-Ehona7>djR^x}xBsiS=Zn1G4k?x5w{j zv5o1&nNJR=(#=~hjAy(-dko_A{FiATnMyyv0`~D(&Via_g+WR3L%4AY47u|F@(bec z8mx<=7~Z?Wnk<n^3BbbKzyJxJm)Zj^dZsPtu-vT}uq{6h7qMxURp=>3diHKzxp45` zv#kYWTSaJ{X4hlUUw#}kkP*`XIH*Q*>6){}3*;Y~c4_A?Xz-^*ptnfJwyF3g&axPZ z;>-IS!o-_4v52F@V++Q}cYturqo$1-FT7q>w!sL)obaFnYGbXv*w($idlP4+)b?Kb z*GZ1W$F}MySh)$Y&|cWYbP65PdN^`)>fgVP0{CmUBODWnAYKMvwo-xR7<{NS9juM} zkBen{F<-hWPxt`$$!6HuS#lDhA^n?|Mdo*EA>4D_`*Qf_^cTM=+yBGaI|l0#WZR<4 zw)V2Qmu=g&ZQI<-wr$(CZQHij-QDNhxVQWDi#YH7`C?XmSsC?XL}tw~XO4lrEL{j0 z87~N(?Su061OKnWlbRXB2Rnbw0^t7YmeT*n)?Qr~eJgXLzn1g=M|<-B)-ttLoU=Hf zL-2Z0rShrgp8^NbptFXeUI9thVu#?DKXfiIkmQedq#pVDsIsD5VY?GFxVfw}F;z`s zhE=Lc-cDWjw}2b=s8wr5O8D*feUba<DFpR3w5zk&w7N99%P*eu=$??OfUyB_6HKmQ zN!5a$YwIlWD6ph<59bQAEmS43mo(Ra5OyhR3(A{ao6x^jvt-$~6OJbfKXh(RuL~C> z!S=I9E`MEzh|NoaI~_U$Lc?i?M*mDL#-PDPuo9sY#~6eV6c}n4Zzm&T57$yF<Co1O zKylH7_p63>D4h2@bH`PC@Kx9o5q%A1K()O+Xxfv=D}i`St*<fTY~B6CclzSCO~1AP zXU(cKgID`ZLY8eMpMRQ+X;(vRQX!i`%y!;O!Y;>{sw-gLo<3A*9#Mz`jGtzrgG<>T zdwSw`R^Tj&*};sAy^h+A4`mNL_|cfIMeg9ak*^4^0cJ8&NJfXuO`|J8)HJ~>cYg;* ze()8`p>2zv3m!RlBaPMRg9ClYc3pJGI^~Kkq62KD92}0kXhQDq#lA8^`NV4@>3qLy zUNbye-{cp<fq@wfeSFOm=>hNyn~{a{s*4&+l?W46C<Fxt2WlAnf|pEf9W<~!58{ty z3$-=01mAx}%kut&3=tdv01y=b0Nei<EyfNGwhp=u#&)(2PUbfMsG$^L`r2-^-}(AN z@jSsMX{?-jq6hQ4QRpnUX6?)uip}%rRp$syG!BR)b4kb;7;T&GY{eytiQ6z%f@-97 za&F_?v=Fak2q;UT0hi@;Ckxx;G#E6+zm0!WNqiIz>Xn5vOGb1e!7G!VOkSoYG0(h7 zki-6gehIgwik$pKSQ8Ah0yAg>e6sp=;Kgc0#sC^CPJ&Vc#cWhkAGC9lA%Vs|6MU)g zX-Rpn1hZCxog7ScWXwE!C?e@5!ax2fQt3{JtH2*x#J$hD+F3X?!?p3Z%?TX_2}Oh4 z#i$6cO2}ElQa}FCi#nbds22WUV&dTC;Lzan?(y~Nb>Q{#94QtT9OfJ3!dktqO%I|+ z?*V6{)PP8-i8Bzi89_2ll8ZJ}-Hy_Q#F7X^P`Y#!lrp(cg~s0(FKGY=GB$}IwGzba z9&CBJ6KG9BGVpIrh&B$Ymxb7%a4s|PO05mCOiMx!uq>%n_To`;VJM>9hKnFLklXC= z9xowgZ0z;i%^^G;0!R7~6q0N?qdZwEInwk6+bHD?XXdcqrWM^T7OB=BlNT#S7W+L0 zaK`myLQhO$9{wqO=@(B&c?oE4)Q>r2+(XL<-f+q7%@JGMryECGJEm?gphV=nL04QF zg!1jtOUe&i$w<vNd&W25kI$R;Ga*zyKLfjeL{4Xh6a9CpPn)a>t#43)o_7G!UkOMy zX&=sRH(#ISR0;Z@-}6w++IQ}xm1tBe!vY!;3W>{3>kvi)*EC{mVvIV;myG3U2T4&$ zzm?oZq4U)eU;?1|uN}xDA}zsz3=geHZiJ?NIzZSPBci~9?45yI%4dLbe!b-z(X;7# zec|m8iH68@lQQhmdezkiH&fMDwvOmV-PZBkpmucAv|KQ&c3fPf-eG@fqPpt!xC$ik zA-o9_uB?E^beaG)_3>GffKU@ou69-0ps(@dpAZgdgJ#FlLN}2b3&A2o10E+QjSjZU z^#}J+&uD=RpA0n<2E30-Z9`EL=@kTNa0i2`ClLZWpFjt+2{tzcUVI>sRC%)65whgE z5QC2F*^pifnKS`Nr2Q%aAu3xk$j3GVbkiAMQbDW`ibQYnsDB5XGQxN#r5Ksxg(e`r zwN?>^5jx<r<xXis>r_MH|Ajf^fHKnmfu*muOog%BmoEV*L8%5)jiebYN_NoW?cs|P zRas{72J3A{tJVkV$kz~yA^`-LO`?Lop5LWA=CYFCPJssIIfgVzA#T{IpPnQ*E9pfS zf&SCS`+iL+K@RD@#n}Z!7_?7N4#>{}064F&UREm-aa)L}{Z&iAB7j$tMGCbb+cYI4 z=tyw9p&X9}omfXspAhy*12bz+yYub+xyMF8O=>$MJ3RJrxAwaKYT@7$JZC@Fpa3!l zp#{&NE2v1LUC)cHKAKu*x|{3ObWAT~+v-i%j5#63CJ~=#D=C&I_|Txhh3c5SO$vDn zfy9RJI01<6mgrH9h~P!GoEs(01jS^Dt7Z5bHdDP~FR`@wx2Rocc~5gWP9s_rJ{qLE z8wRFk>0&i~cos@pGwqc&I4ooW3%Z6QM@o@d$esKMUtcvks(@)M#>MFlOHXUvEr>O_ zxIiSUEQ>V=ZW#D{M^ET-m<CKW-kGa{fZFt-gXj}-tti6WH^=SW`}Ja`0j*2nASrM} ztx)h(n0$m9848o8j-1^hK(%QjLY=BD`e&r}0BaM$`<z=_P$jJSElQvgdYx{1K%7_j zK30|qTm-i%ol7H3V=zq32kl$R=iJab);Bixuf8Daj1Nos$!C4}+V1<s!-kdR+;3`J z7W^b_xB{Q$_?uf3VoxaBu5wG=ypaqNpHS9|nW>_W<}z--$uf3SYc6DWbib85d4wi$ zqSr@)Y{Z9KuHTf^<w%mDm?4m%@r@UmTMFdnh3qcc)fRW_*>j=bb>UNQKoyg)Dp-{* z%oy@bSR&oOpCE5-uT+>xME#L05q51jLo)JtsL7<b)-)eA{7P4L0c!{<2a*mBQ@i6y zi`uYT@tu-a;9?sPo06**(K5BpM|M!nfHc@k&|=`+NN?L?#)zCpFqdD1$oMUMq9JAq zaLKBUoNnGWl66zJ(NeRfGqH7wAs2)5ogNoU%^E3K^luMhAc_w~S`7X0+(Eki&xs8B zbMLA3`c5qg9%|Wplz|h=YAiw!hL>pD2zCMY@T@*MDv}3lT~Bmq$}<Xjy03Rg{Cim+ znQ=f{(H;ZyyXFsbJ)j=7Abp_ad38x%{%9nM-qbFi^}nMX{?xB<>|;?)4H(-obbEQy zzlA2DrLGhdw00qDTAcI_@@QDCU|F*js4STdzB&e$Vg1n&QWSHsmpY3UVR>5B1-l{3 z88N+lxH~Jc-+T?oQ}XPs{p0+7z4dx&<nWxW?ZtsJayjR`i>LH!&*;;}fu&BO4p&s- zl-p$4r42xP30?b2lGbu8zZl_Oz`uFl=>Gfi(?H4*bcX~;5CD%-T|Z<R=&qN*5&{zs z{i&&<v_`8coU2+?MKRM%y6+(5^tk~8TX=i<cPUjmd{m1#)@eq}2j&rmXNEoKT10z` zwK#W!+{HXu`m6@GW3BIGXCb#3Lzn)RYfJTbq^7~VfCfMED++P8@o_2D2MwK!832=) zy^GINKX}x7Ef(nXEgk*AZ%sK84edS0aZf#Vs>ISx&_*R|sHaj%-bR-Td4)}`hUD&c zt~R2QROf*$B%?`Pz?;KygFd%#R2CUOHAx`fTEVs9B9x|?;$f1XQ@C&r4Rcb8QcP~A z&V)>iLtLChCnC536o7R<!ky};+1ets6{8r+QuJd@?w(yH_+*NjNvnYzYJ(5>@NM~E zS@-C`5KtFpSoSnS4}(1PDv?PPA_&;Z$-QRH?Amn!z`x(hRLt#&ve0uC{>%I6yqV!% z%3Dq>M%z91d_C<umwALM+A6z?-Nt4lj1T~>`+~e04LdPC!RTZJ#aXmn_!~j2hMXMj z`g~zer`n<vnKQB!werRb9S6#9NCBveW9%qdVpgLJeiyWuB{D{X$CQ<R{-NixjkpHI z32+>2P7vQ%ZS<Uf+(76z8sbHK6csV;(H><24*N#dDghVe$wfX2s_WO>=eS7izF6(Q z&J8RGJ<YUQTQD3JjS}|sh0T$B053u~F#9a9r*`BTb{C%|)BGiRv#bm9e#KjJ-&KmE zFKRHavM%AYb1T)5mS)e+U*{UI%i4u_7))J#%L}$0IeQQ_2<N|CG;9scN<cYhDN5^` z`C_h9!bgoGEPR{ChIaLyw}R#I*HMY2ptzHs=m#lgyt%ZYjHkd~DZ{C|QMw4?@DMfX zz_7k1OD;k+Ole%i<Gk@_p||MFF2n*3se>mH{`CrR=Zi296}@b_7H#svQJVTX#f2s& zSHr_m@JtYA;Q6J#T8n&jfPaqQG5oD}N!dM{M@)mtHRoA=U%YAp-FmOYCzh}6<s1(w z2K=52N4<j~^%WMpTtKSu@*=%~U|)D@i}?+%_=8I=+th_H=-G>Tzzd?(F~<+leqgL; zB0+7x6>4{=WAqcIZ7;O!NrIA14*W6!J}lvQV9|mIxZI#oQ7>gxgzO_325yrfmpHo7 zA|yZC%q@-J)?X9>E8_49t)OwfZDeXu!m)bk^HX02v2lq<UF99qgWu-!rcr1WCl>#- zdWWlao@I&75sS!No&ochQEHV9>n1an&rbg(d`wb)O^rn4*2gxx;DnDqE2&pZw2Box zT+mFB<k7>RjG~OUu;{XaWyU8er2l?iBC|arkIL7|>Re&@M>DdyFGieCiU8GIvH1EM zTluk&Um=7V!ii$GB(rrYcE_==t`6=yYjgGx)Ih3dnX#-F_}QfJyGUA>3FGgf!;Z!5 z(<0%5gdP$M9nY<){cy*hb}(MTE8AFaYVhzT^TkbyZqISZM3}Nxf6#anksV*T)|D1_ z)tvki%v9R0e({E&yQ7Sz;e&$*0?+CZFp+|EUh*YnbL|K#_Vt^W>Iy8vcWOz^J`}gl z`uR<B3`T0{60=K1PSntlivb=Yd=t+j*iP{y5t7HHevvf7nVdU*W9)rvHderNh$erz z#1+=PRLe48UKL3p9)q6Ro=%=Z4<Lf5?;d9jYMq%$`I2sx#})M%j|qlUp7AfLRN-c^ zjt9zyXb%njhG_SYK$C(Xe2DGs&_^`q$UiaP=>dd<F0JNyiR7%H-OseQ8DQ1N^$J>J zR;C(H?*|AcQz{x(j$het&Wc;C_A((8IS1$hCY#Zu5Q40*bK_rwMysqctFFi>Q{r99 z6H^mJ&x(#6Gpk1C7TjI1rqBpJVi6j^-H-1?$X}#LYlHNag4Mn7LDzRhrInX%00E*^ z^;tL&e%od=y`3xa(PwJW--ABG@2_MhKF(zyS5BvGBx<OKFXh-AW#i6Nv~C|~^DEXm zrOx^0#B!W=jl$d$11KvQJ6Y~{O<fQtu#a8*vE2Cgx-aP8^j-N3?<NvoG_X27Nbr}4 zV&A#X@?=U1l?2JBmVl<UN2i*<NOctQWr1=EJ@<7~!3Nu_8O(7Xm8ys&6h!d~D7I>z z#J5;CGdRTmj0z)YzjLB%(<tJE<<JE)G0w4lXV$2u1XGitw~bwtF+*F-`B<!tU+z#! zc`Y@qF92^*c>m18ka%j0-6XeMTYA#+s<8?K%VdIFv~V{rGUFDgTRdw+6`z>WauWvj z@%8XOb0Z5X3HD_BEbT1L{n&1Ip5cStgzwvGb!nje5w~7Axs6O_I)VBb&}EE?&WhdI zfOkIazdnOCpD~Rpa7Y*nSBsp*zA+8_0s7a(v*f6!M)t40O4eVRg5!Ulc)B?`=>Kp2 z!ra#8AHIEmlr}6j=@7hERAJ61(m8^k^WdR1SL0ET(xKH^8-r@+#t($bs365<3<bWs zh;&&xsPhc;t*6q`9H(K9GgDq5s-LF8Kr{tARRJ+In=t*el@6F#%m}rxwR=lq@OI_R zl*39ZAwkd(gG5!z+Ewb85c5I39B>5z_<7mXvvT?*whf8&Oukq^Bcl*BPAX&6`icu6 z0<5}9OsrTXE24gNPe2W`n^rzI`>(PaUn6l!gedOKTf!Ni+)BJ6DlHNYhVTh}2v~Z> zpMvch?n8ox(5MQuxG@2uQ|i+zXWYe~)Yes%p&6D$(vvpfN2RFgSHWym5vCFL{9asQ zz;+Q~l9=AMh@HZiCE%B&sQP=N#KGp#ZTkH*MaA4fWK<X2tQ??ZN0r1a&rGf#z(dxh zy#1xBkKBwLC_u2x;?LMShy5AlpX`j;c1gjvD2<XI*y3i5KTH6|xtL<VkeQLh_lx}x z{<0!|4Ar8Wlg<ZI*yAv8Jc8_{>2~r~W?^WxL#VFkre0nIvN^i-Jo;3rxgBM|UNA_X z@1$6fW#VqMHX%>5960qxSeq3uP~s(!u8XzDyw=bPsg2P=K1!%<8B8s!FKt<^yf4DK zHe(-9ue?Ruw0>li{KC1?eOZ%n1jfTYYWz$P^31KeLxmTE<goRx6<0h?xh;MKY&$9L zTe{nay%G7lj=Q&T^T^s#I@4q;I?v;99Zxw)q;+q6_%{?MyJwnpy9d|z_9D237gHCP z=4sJBi769LOZOXhd-YsAyqa+VYnmHLrkDT5rcK%Eux9*)sT3FhfWZG4rY8E1P8N=T z;b~}QY^|?r>}F_e=k(ujEmHa~tDqNE7*BENAq^EuxFi(=L{9*MAhp3FP38rod30>D zRhf>Z@So|`Dbuw-z-?~(7(FjsjJWDbMfQ4T3~8G_->=^n?-Q_EcRga``SIb!q#D~{ z9Y<RhPlW0AO8K)IuX>W+8HY-{Q{Dne2}RjHg31d~^hIgZq`f<9YwBt{`6Rh4aN{uh zY=RfvjG?gj_AnAQFzJD(GT-9P#HX*gb9MroSAqQI6n~}wT}q9@^%*Oi_hA87I1`~* z!*dyog@?uKBgA|CPAZ%6E$t<#7%7?r%Zj!IbbgiUV)ip-CUQ_p+Y4=<obqX`X2b)R z5H|<Nr=kf9+Nnuo&3{3KuXC&-tOET_oM}X5;sD>(3xHJnkA$&jj;qkh20+oRPa68d zH6B+^23pyc)!bN3vGN2`9^}EuZh!Z3D3VpPJgV9o^1=7}nfasU)4RQbA2QrWo59IP zTwDR*MAdQ+^U$(~RR%K1)XWe%UOA>6_HFI3ngV7fSE{5b;j9QA!l4R7hdOCnjk*;B z-5AUN>U4L%v-J9<Na+ETGts=4{~a4R&MX!=Cy*<HmHH%R?@6d6jjbsLu^Ly09cyRb zl1PJQN1&q}{y>E3yJ9|mHHOoBGl+rRxVOvi7C5HY_3U-=v=~2rJj--~-49#Mlay|) z`!#&|#EhlmOqX%8&#TF}<3!4F3Ff>kN|$El;x5Fryo!TT%UEfc@@o*cClaTN%jJdl z0H1bkhD0aY-EE;+DFt;Wn}8@#6JtMku{JRpYWD=PZ@1doG^;i#-e#R5(|<CWf2JBg zTtzl63*|d8h2QB6Y(A}h<22?89L&I5UxwDsLB^_V?y?UrWBjIl^(QMubKYq74%984 zi-n6bXy^Z|(EsS6-r=34Mpyj{eOwR#!T-O||8J`Kzp;PiZSIOSR(1OFhKeIIJ!cSp zPbGeQF3h?zvOM|3xgA}VMm!@winbQdahz<Uz;aOV^9`^#ue_wZwPd6iq0Mn~6us7z zD@P6hn(Jp<aCW(K$GRgDvBbq5K0k3rCApjP>)=)Jej)CaLpN&SY@d9bx9}k_!YNXk zwBk+Tkxi`LD*5R4;&-+#wr~Mc%uE^TV<g!fq6^peb%yP3%GcM|=~P4l*^NxTX-$D@ zjch?mO%C_Z+s$0ViLGpQcK7Rt{G(A@s`S1vN94$XvQwH=0+kMNff*YX$s!)u`_<u9 z$4QN@@QD1$$F{5Q>DTNVY1X9a8essamQjQFVn^u1P|y7u6P^x9LTio}Ch3DP)K9eA z#1Ayy&fLh({v885BCOtP3t3O*XVuT~*xA|GhU$%8^30CVZOg;V_V<lzv|jYK9ZMQ8 zsmq$Ir}lH#%jhc<Z>a6hCHL<aZ>2|R(FI^X5}cQYLf)8P5yTnkS35rszSFp0@LxB) z-*X2)FF#k8-i{AbtTiSJhbYg8xkFc*L%uiO4^!lAq16ZW96;FD{Xc_SX04Ne178v9 zU}n=XygN<>=3M^b4TpqZPEt5A5ae@pzD<9dq<!#qF?~X57tV}*yEU|?ioewVzE$xT zJ=6HFFRyHv1?W|F0Vm%?m=XKns+p8CH;|ufvIThtoMLgCKSfwqzhi|OsLu5orga|4 z&z+tjimBA88q9-wE-E^x@hcFLb$avEh0L>M9)!7Ypb~GQ=l2X^So4(!&9m9W?OGQ6 zQB`*d(*eZh+>xfHf0AH+WziVur(rj&)$Z7DA<Tl;rpPE}-o8Fe->mTi#&7To;o{)# zpRw!pJOlg*DWK|B!{+*4Ah2DFa`DND77D@k5Sx5KKQ7Z`;5JI-U8MIVr}yPc<&~rN z4K1LZA7bmf%lVtjb&n<su6_^)M1_I{zFA~X**$TuX5Q%`5Lk{wmhZ&Gd!-fyNuK`r zoS43%)O`W-FlZ0fUY{8c9%~mSfcSQa(WYPoMir}Rk<4Lfh$h0AzWvrE{;Rr<j6Id` zHn$7E^JR{J2o$FH*Pl^#$V+V*5Hr-78U%#RjYrdDfLOx_GVtv{nWHnDXV^Vx#5+?e zmm9{VJABZH7dC&0Du7wHq!+@_tRvjy7oy-fR7wG1?CxL~1p4QAN`GAPOKo3<JrXbu z&{Q!53>EtAI3|F=uhHQGZNIY4aVJds(eKwU*FbK3cagV+JvVj<5jHj^b*;XeNUeM~ zj_~`6H3u$%eo(KI+Gv>I@dWosDxc2ttIWM-;E#T7)5a*Gp#sD>b1t8RsbleGKTv^) zoCEvp-jlZXgA*LouSY?5zAPRW8S}geY(GGh0ex^n!vdqR)FAlmjN@3Nv7Qw3;U9wB z&;}}<wXsKGs1nR)r42CwL&DKr`dC0RA|8&uOfQMx3D6CJ0BkY@V#{lW#~~MhRfo=5 z2=GH|w3(XPhwtwR-JPuX&|@-E%<5pf{^u9-6a{n*U36?YbgL7vRid3h$6au`+A3vt zWH#@5X#+VQsS!hBv^qvVO)by5adKQZQ;axPFPdl)GM`?gXc*ps7$D5m1?XH(y=hJm ziXT*=YvluPphtLr4Z93IA3qc|>b&?~92h-t4>mgN;uzI2Cd?TFuuJ9offF9TV{H!X zH3tbT3hl$WC97wGnqfu(uudQh(C>E{+$y$yih`|$l^Gp8;V~2hz>RD|jy==h<etku zp1pfe#JP6juIw#3gW`t($DJalT{~>4c;UzsxfEDivqfSg-L*TMFhj+C(`TF}G4#u> zo*B=;^|4lc39AW0A3H6w3MICpz#)uG;G^c9I(AUHI_E~tnR)Tds(ch<SUrZZ=U6d& z9H7O}X{K2SGctjJW4-5b)8ji?@F6uPwdw>a(+3ZMVNP^AA-@tYc2Q=nBzxZPS2sB@ zV4tG4r@5+;yv8bsetcaS2-<N`VBE{k6A1?9P{+^}T=AHldyH?-SyM7H$$i9~9tNqv zoRkClSk~G_dI>Z#rGTKYqrMV056}C<wFzX{^%y+fa=YmG3&CFX=pV;hbcpL)O)!}L z<tUCpAX0IuNK#ocicESVWj6TIy5Cc9c5(M=SBG;AK=aeV5Q=EhVu5>l&nv$|@q4no zBLdjFWYB8@Q3vM;-x~2r=+?iU9!~;uo|Tki5FkTU@1lq@zz^9!SYZVPfjvnvxIhp+ z07`fP!T6Bj!MesETF0pd?00q5qoqi7b^PkHdbLgbvGKqK>2}d^cH8CTf#9H5`}l_` zmw)l|f*`%qrF&=2ry~B`EdatwIvFn*?Lt5|4lN|T$_8faT6E4xk(gu{qTthxVFZL! zjryUO-XGAog`?|T4z&4+%V=e%i12pQO;_5)vsP!9b9Q(pYQw~U?R?!5{T{@IWr4XO z?V8Y0T7T-&5&E>C>kMz;;x`Z&LYI+_Cs-R~zr`rlK=x)#0&23E<?y5VCFQM>1XK*< zHxI?+n&uVWsttG+aRG=%WuD4sl|><a59~6EL;f2Qfd(LU_lg`l6K#cxfcjOdHN4YU z#hMDZRW|1ClKynquH9T4tPFPBE_iZ72)32>M&RL8t9ps?w|lal_g~YZ7)zNQ&_}Jd zH43H9XSgzLkcc$cx92;HWHJTJB6h`hb)x+UT983=pmOT9Cv;wA(1l=-JeychXsC(R zuoOCz<JKuukN2Cs0RNnBZYmh6H-ZbPbSX%29HDuxw7xF97*YUO@;7)^VRBYumk~Y` zF*PYzcoN3wWUp|*0Vo@N@DesYs1Q!z;JVyBqTz^LC}6dS5w;FFqBj_AtxdZ$W3%4B za^3{|ee73Ag?M+oBrsB_I|pPE=3caN#r=kY8=S>({t{BItli&ze#C9G0&nZQ#1%1i z^i|re?yfWw?Di`tMDaq?j-Sl3`&Mp$c0)hL$%p)>QyQCc8wU}oPLT$|5q!C_wV%zv zTGjdhN*7uG$R6BASh-|jqXeo4J?>7OPd${HDcH%h@)S97pz6V$A!xK<4T4M;!z8W5 zD6cN<zhzoi<fZWi8nY~?oHrtUy+4CO?yb?0WFVZ)(|CK+p^u!5v2lFcnxx~@W=Lm! zg^r!Da`YTk2cB>FIp0!p1Gk^+^~q1GfIncwUiTTZXii^Me!L}ag_<iH&Edu%x6{Dv zDb(?az`SIio$A4a{C-abOt#krq1OrUBlI@qdk|*IX}89m)bLMC0JmO0V&HD=GXB25 zc-YXuIoU3F4A?03^Q7h>?KKAj?$(oop3`7LCl~YEi6xTuA8jzo)EZGN6v4i#IYVij z$UKnFnziS4HY9pu5_PBkg(q!NaKttSPn*0zVA#20K1stgE(Cy8TSSnl(>qTLc;u3P zoM7gfMwW|>%yV);qW62J;HgLGEL#S{m<TVTX0LcMigvP?NNNpe2r<_nk!cx(YEW6t zK&6K7;kaBqZ*g7?d{MrrA|ooMnHIExs2Vf$ifWUo+5xR8;)GdevVJMs#Q6Gc^q^mA z(gwDHUGv5t8JmpOd#a<n*wnrrMY_j<wi2z}1--H*JU=hUdddP*c0R9$;thvrjQ9kT zv#cH8<P>I?IdU23#Do24F@lDa?Z*xiP+VYOjl!gOc~e?wnAwCvchbagAwN?p1vx-q z^(ivyx0HG^bgsi+9a2NV8%1RT!3TtT)i^aUQ&x;*@mConu7=g-v3w5|S%NcA#@^{w zR8cI!%c_1-5XiC(8XN6>JodSY-a73bL{(kA14Fs}R!E!P5E9^7*b8;7o1GgjiVoh{ zQLms<epbd76Z2oiVg~_CShH9?hC}X)?h`4S`lM9!XmG?M_?!%`-1ie?E~=B`cB%Ge zkDR>{ARc;^e@hxEYmJuZ=-}QqUXvt`C5MIkGSz>bXN76qa{_nJm)j8;LTv_r){ud@ z_>mDcSoVAwp3ETY^OA2A5*q^j*?%LK_Y-<_D{RXAIWVE)>o;IX3+uLA!!k7pR_+Zk z>P)vPkY>?_1W~T}^~4N<BYd&rkoH)zMTOXuJJBG~PQ}$?yu!a{NwF+5YO?VAGv4H6 zg~OnHQqZXDxlAUT>=Ai>QF2U63Ouz(I{2X+I8fetKaqk+#!bTjEf-1N3f|qKU4C8C zqxXitrL(wWEm12(@;+j)bIRSpzXNaKtzcUFo;WV*uH>c%4<ZSUcWE2W$SF=3ZG!-m z1#*(-1WHsL(cUIU`68Lq-GJ_qVSb`i>0>r8Utj!Do7AcC43kG-UlyW9J{nQS?ypzq z!z&j~3ADqU4hdy<6*>0Wo~+wuV4l=5mSqAls=WM6!jOZ^J}c%_@O$qNE4n-G%Y52C zA}B07k>2X6H)e-xQ)=YfZ7IDpjI%oqNiswS_f^@t0|gDsq55p*ch@QVu#B*{L`Jz* z35Kb$zo#4WX<Y^Qy2+@r!n?zuD2N}UQK@OWb$gIMA!%=)GNz(mSy{~{nTUA-Zj$Ny zOw%2*){rWbh4#E<9g?lgwooq5hSf8+L!m?ngY7vF{z*zi;)eV>1ZuBiKH+<apbzqr z_fH@o&|1QS>c^|DBhiW59|O%Rke(@?c-m(UjG5E)m=<4LB(O}xXaYwOEeKmY94!Du zZXYS_p$S_hm<rKE)IM|HYTbhthge{11gP$*KUux?uU_sl7b9bBjm5JV=4Ipba(dm9 zw}i6U<S;kx?-v^_WHmCnpWGhb_kZ)Ll-nJ$nP;s!wc%~uXw#Fr2pJftuRrS!N0ej* zTH`cywHAhwt>zS_tkRqZd3GD~ol?>??0wnDKQrW9q!A&7{h{dX;-CKR@DXOr1{M3C zpMO#f`zkaG9weS=-4%SuujK|mtwnRuOW$Em^Yr$Ir4eIK!ftcnz}D^hJK57os77Nh zzKC~0pg{A+YbAVeFUPMau0hUNe@{c>I3oIr70>n1jV3AOf5BlV933qMRClR|Yi_K8 z4{@}odlP%@(tRYLWbpmWS*2gP%A5A2?yb>y4dh;wIC2sA>GLV3>&AUcfJ33*zd#u2 z4<h$G-eST4&!#Q0l=Uj%wUU*l2=FX$<j@w<24tMTY{C_WxKeldfr`gb*3P)_DZ`Iu z1+SC1?({yM2p3XTW?Uf{8V^KB+NcY`Lbs$zxmb9?=}_BmJ{<Ma$q?s|UowseQVq%a zX3FrQ9807Z(^f)cBKZAeVw*Qh!}x>h0a6eKNAu8cv*x0&zIr4_o8d^dXW)A>MuOT2 z3J#O0Jydg}Rb;s>uv<Zo&kj##X9)aqRyP!O!pgtpm_n1()7YF6c?r^Lbz@KYMc>j1 zJKfXMBN?I+)skNFz>Pc7R{Stx;7ydU>&}A(%)U}7s@9>TX1}t=zGt|}ar+~F0`Bgm z9|ib&f!bqE{*CKnKR|Pk)R+__L`UYRHi8Hvx!+S#ZhvCeoRF#>s07tA^+nhg$)9nM znQR`7-c1t9Nq-~ih=gP3^3uru^%-M4C!X#8if3}*51dWnwt$I)2E!>y+Dk1WB}ZDD zfl<0hHM}JZWjo}0{7gG6!9y*_NBPo0!&4brLV4YkCD-U49~qD6Ucw)KcOzTJC}K9p ziH93OLxaTdia;xcEF#+#Y&6(}C^G2GWK%g2B<j2@VcsVe{-*lM9ZI~L+TlN>PhrM- zLY`|<Dx_a|(Z}``OAc672pACbhdC1Ykwj1uzW^~p6Sa>JL!@}Bcyo*@(ghLIbN83< zopF4aBsRhr-yJu0HLYAA8vZqEybLuxk#tV7b{YL8g*uOR1j2nJ)fgA4H{EM!JIFT3 z9_A?B<aeKOd?N244ImE?9G_ksYyyhPEB`6D){Fv*4=!15uSVqrjAr8UZ(^d$vbQn` z&t{qjgA`SlnIl!#@cBAVa)c9bDmk1`ixA;@yU<%#a74VgvhUEVpf*Hgxh;xI0E|qU zXg|BfQnz*NLA~@kZ7h<2VOo=kGchDlhBR6gL`_<5cK@o?0y}7*=vXjN=Q%_g5WI*n z6U-PkPN2{vFCjVaPZoI)6v_wzxFybIWo=*w)yv}~?+W*$W04JUm_PNlM-$^)2G73u zDxG6t0Q|@BpUk@PE~1k;TkC_Ic*EZ6Ap1yd687(KO0l=h2ElXiY}+$vj;JepX`nIh z3z}Fiy4NCh^yoh16jK-Jb9P3Ut#b1>PCG9d)}1kKg!#2sL4j<KE6oPba>-~L__*BU z^g8DRDXLMetqhFP)^u)fhf5DRvfEkD^JfFOfXcK7f4|wHE;8%tw-r0HI&RF~4Wh#r zq2QRRs)g4s>Bv2=fkVn^1<g_+L*?rBk=1EoY1hbPjQ&6e4DJzU7eA25EY}knbn(s# z(p-}jgC~`yYV}oxE_V0j%3-Pl5Wnk1Ovt^}Ufu9=x<5Q0o+T_Kn0|bu+Ud2DQ*;)( z5!0VGmD-p<#>9z|w9Ue{E}#JxkaH_Y7FBDzYeZb&E|8IuGjJX&N;=^KFGfHtj>B7Z z0jL9I;O3o}=hCVBj9fL^t7$iHB*V|xF%UA>1yjsRitEo!|Ej2q#HLa!bg6S2?`DW# znabsfmr)1cFWlyNyJn~x@S7Z}+TY0?qKgv}oXa%&6k(;hTr&ex!*EvHB=y7>Chl5^ zqGNkMJ;ht_9VLgTGm?U$SMTeg10VVvFowq;`Wa{sN97tS&cdSaJyWi8V3DZqTsJZ* z>n1kkcZ*p2)Qil9Bw^BV4;e6tbSYu1<H3h}-EH1wRbaFh)iF?F%_E;7Pkh*zeV6N& z>GA&BaGZR;I~<aK?Dt@ri;j8$e(U##Lt!+NWX|EW-$WHLScQNxNsZo*+~J#}cpky~ zjxdC4CeVpi&z*`mk(Jfy@_oO)G|D00JG)@@_5D8o^&In;o!evldP&fg{dsxXaQ%o* zVN-XAa>tv8rbngEBq;U<xFuYTe|XKT9PBr%-gBhW14Gk{Ok21h1maMPTjApppn=J| zPwR-hkvAAi#}Zmn%}0w;<av+>UPd6di90rdKMvyqzm9W53=v~9@F?t@JHGe+AQpkF zom@mv_CO9?tlJgB$K5$v&rm!dy>W{MFf3&~E9ZP+qu6SjD)sECF8Z=soP(HnyjG7! ze!f~GCVfoK=WNTEwS{CI{?I;>FQSFR<fRT0pJ{(yQ6&uJi^*j;b^=2~ze4HJ4;f}# z4?A3uNpt)pRr*^Xsx@g)H6d(=SEDy<CZ9j;qohKM8c;kW^L&QLG1(O2iFE8iSl%9f zH=|Xa*>Z_=lmQlNMC4_dHHk4;5UmSmp$ur_O2LL^5-!F#HVQTV_7-BTq%H9M!o&7v zr_Lm9)v+Ot&`)U1u#LOA*2g!8_6+D<qqodY(m>LH6*K~!v$%rE&x)41w3X2n363w9 zYc$;?<{`ht|I}%oCfV?5OGvpgxyZ$exgve7Oe_lG#un6M;ps*YS=!PqIU}piF+B%X zyh8VU7i*;-s0P#!_*8oULT|VBr$VpqMQzV2%bWWn7=EoSdr-y%VVbK<c0jKSx#=o8 zfQ~mEX1c;zT5@v(1Lm3aF2u4qzuytv0_k#GV>;SjMP)uri0M}Sr$bG84|pyeq9Dat z+_x)#MYP0d`09N53uS--?a=l7<qqWKgNih~5F`!LPi@RG$cQzvL{Y|B>*M|V&aZ|l zYm$FO`d1tf(HQUZ3hbMi08e^s4C!G3<p0+YQ<(KS*o%n(PkK}o`F<|wUqX0#JXpVM zK+Kr6#=j@aCE|V3U+6!1IcR=q7o=O}Q)R5Tk`IXV>}$%M!WYWoc)s3jb#bpjc(^X6 zE8r;L3(XkNS@+_4B6d~0Y*MnC7@xS+)f&EEb#0$XT^P~Qm%tj9v92g=wPmZUSLQ=x z0mi5bb6DFoaA{w`(k$LWF?R~U(iQ}(hM97x$7IA|ini^RLy0=TsUGtk6&v!M+k^aQ zX4}*(W;O82y|~`xN~l!U$=C1Q)%+Hrg0bh6lFwvuzAx3I@>d2^!B9K$HcGnpOnXSg zNXcWfz?0M{?C<3;*pE)~R$m;qKrgJO7@?N6yrEvOx1Un{c<)BPndHb0`K>VtAVIOd z(~hV`Hxeezx&_90Jq8M8oOHT5<)`eI(O|%y6+z|;yE$9t<Tgui4r^3gr6Ra#bVR5W z!@h;0zSJh*NujaU*Uzh@Tps+hSOu1qlo~zj7;lt6+yM>s0)>TVnvM|*|DofYJhY=S z{rEAHl-j|5@wjTfwzY#d6P()!Ah<kU!dU*a2j<m<RU6cl=X@7WC{l7ih<Xf7^Rbc4 z@xHq)n*H79xi%ETa|^~GmQ|i@qFJPD4GViJ1MUu6zYwP?E$|}DS(SucyCLm@$-3S( zlj#&(OV%Ks!=Ku7(+Y5zxg@PN0B-AFommSm(IAg$d$F4~E?wrFTo!#bL$6NTe!YrO z%yCKjS)Y0uz3Adh@?G8m_QH`^xo-;$`>nr|u(Gg=y6H)Ihw8M<7t=DiDVC)Ap=$9U zF)$3(#Sx}mvXZ=4uw1d*n7fwouoLG{lg(c-Ua4P?iqq4159>ZcYPSMCI~DEvWt|t6 zX}RMx%`n55A$WpFT2(vH@KTCQb*@_pOQE)i7f`%wDBptAiL2FD0GlzS94f=oQ|tyn z)K4L#sZCOR%D|TC9bR_!^1)DCJY!(--f&r;BlSV`Sym&u@@OmoL9eYF#CmNZ=M;ry z(h?7wl=26?KeW>1G!K_$a~C`e-Qwt%Zh&+Px|)EVGFT!Vz-KCZRYh`G2!l#qq%yf7 z>bTmU|7WP2e<wFAK|`Hb2W4E@{$B$v9)cKDUedq>Fe+*;O8>_H`T6I^fdBkQi`H;C z3lTJKbGZ@~6+|^5cm#(Z<r`EJ1qp2~KxTO*=>2^~XK=irGIwBnl#!DGz0%SL()kLl zz+80F&JLyFsxC)TKj&O<sff$>?8$J9_Jz~bKFbq6%S1gwASmw^_MdUJCpIM*Qx2pg zd9J!r5h#DD(-KA!q2|!1^9Z#Xp78)}PCCon)pjfXFJmej^kj`U;=E(j0Mp8HjAD<J zq${=AE{~%*VC9^lqH?FB(N;o{#>pUG5ub5gJo08d7TP~I=5hJLE}qu`GQo^@q=01P z`%l!y*ZX3gT0rNBx+?;Fet`|UQD$)@<<@WoEy0X>M@kQ(u(%%suDtTMXz*^~Mu+$@ zq>DO&xpsTWWMD8psM}7#Ovm|5S5?Uz{&5YdIhatS*cttjQkc_9(6T~V9knYIMdJ4$ z1+QphZc8$JY2iM+Sh8*+$k}s2rcA?(>2fbji`=lzvVvO+|2w>Dg>sg?z=aHIFUh+$ zFZIMc&)x=3{PT~ivb;2>|7)b+mLj}6_Ib8S0r5X4`9neQ@00y=^rQb0_YkE2Z=7*2 zF+Fr7^k9%+0)PGg5RzcRL&6-*3jhto_SRzk*FZ{5F+H~&b9`dD&-Q4E|M1X%p6Z`> z-Dv;L@h|K5e_qx9!(F!zTtOa8&WFF-2TIt||LcBoO^!DeRjOxJ1fdc~ElEy=4LZrX z)9bNbNnolH$@%Rya9(-0Z!z+>QfCyi<R?k1MnTmTY{0r+bRXs^oY$%nJ_uM~)aa}m z-uow$l%Pa>)EvnnJ?P)UF%H?VwU6>!0sKycRY+QperW&lUqA#U@}uS`4w&9+VHyH5 z1+fd{*hznX4w<0XqyBkqM*SP&pJ5GCiM*J8y**SytZ_*d73Xu18ep4s5#8@180b=K z_$CvDCclklJ53)r6uS*Hn;UzB?%J^`D+lHCe!u<XX?d~h*W4CbVpo_k9Kll&h%Jab ztQTUZ0=G5(+xir2v+9cycf2h8Ir}#fQ0_tmTk6H(p$({aRHFS{UTn4V)dAm|>#H%5 z*$yJ2EY3$7B_~Red6A2{+*$3S4V^Y)U7tT|cPTFtAB<I9Uv;4j0<7!83g;rdPQzjE zUWG-b#9csYcez2+e$UxLz@r!D;`EhoqlFj^6o?_f3t~WpO^K&PKxxM+Y{OIsn^tVW zhECXhKk1CuN$vZ9^c}wE$t5~^QnyU~tarIkR1$x+1_FNZ&yD&)^wveCYm}6~<VaR@ z{bPHHa&Yza<pQ1pk12XC4wLtb0DHs4L^2=}(^AqjD^eLJPVV2~WjZ9!Pf4158wtn> zUCzD?V(kI7A;hmTB1OWUp+>1--l^bz93gSujH>B~Z)0y>?%Rk&%&L@bq_k)G&Wo=L zn+DZQSZH5OM{g!jRUGL8EgmjO$P}V+vQ93h&0VuM0}_GdtteQ6Qc!*_wehv{-0T=& zRrfWAuAB}kb~M52GT7zZdA~=(WkJ0aX<tpaIZPkx%Fl=b9<NcjN4@$I%CYM4UQ-3o zB>6<~`($ZXtE+kKNU=q<G|JL4PO5dZDb`+38g>fn$j_s=IZXNOuj-V7B%8KQa33C* zF~;S6cm>VPo}<S!Zn1*ud5npP8zd6D8Fk30x>|p_5VBK$xe*I=Ubq8H3|0YvVq29l z#=AB#jIu}Mlh7~A@|@t^$$1OW2xKF82<dld;^<gVH-v=H)0H&A<Z|(hTgyrNaz5~E zf>rg@Xw72Tt7T&_&?MuNQ4Q1Joh16FM&V*E_r3tg`f4fhws#(Ku~Y!6x;!y2JgT`u zFxg%kDsFvIDJ;=eSt5=jNGXB|0Xsa7!-sKc6x;h_JWirO0KptuS5@#gZP8nvIm9d& zsVot<2;;DsOEV6n1yP3Bvzg1&LF~KUhG{%lVv^T<(3I_pG}odI3Z7MQJmzv)K~1=) z3bKEe|GKE_om@fFn8?$Na^@ns7=t1*HaIUcsl~7YwWC!|1?C~uYid}CvwMZJv?WgC zajf;e>i%$6un)=H#JL{AGvS#kQq|0FjTh5}Lf(#3c+-iqea_R5)jg})mLJDQ?=&Yq zUQ4t0lfadRo90pl!ixDOlD_-KeW;)eC;O5#R|{#}VKCLV66}w|b*qojYi;KBluzZ) zKyRK;#ZMK3*nV4*KD)Q7!P_OYR1U)D!;1YHYKi1(;I`YQFSU1p^f@17I!p|^%9=Jy zbIrBJcG!yMbBqq%`s<`#N-oWFCS1l%c6qhs`(DUGqkYAn-$xq-2d5nhH9;)>ZQP>0 zD-T`~28~%pqhH-fQyV3ZZVWmtgE!6|H}7G69}zb@eN396DfCHD*^jsr9r_L%%JSeT zwK50Jw?Eth*M|4dutq*Y^s_8u>VxMxrna2#5~COx4kFh<nQ?o2{BCXtxVT(?A>gJ8 zbB2`@78d-`b;(VCI8@NJb{otc@@TT>Ivo%smBW%zkwGfT=Y!y+iEsi`v?@e`DzjQr z<88hwvz+55<Ha`NJ)IPO<G!_`I2qHKqC3vbyTKItP;$c{`I0Ok;FW5Aqsjysp`6bS za=31Zy!=}~#x^5y&QmHKHGg=5Y6#+*$0|UB9V0CYl#J=0N}BF6g8@W;AFx_949%Mc zYYbMbwBADv%!mHq*~&BV(mYgf=|&o9HD)vy_cN~FTSlNvo-rKqdGTOl$iy*%_ev;W z6^G_<zJOl$oD8c!t|N1XA9WPWzfR8?71*QYfSX;M$8fP2T^XfHxMv{=r1I3`x@q5D zyk-?}hb*eCV5%8RljsOAu1qskMYLwbbZL{VeK+K0yrXWB1hE*W(4@|ebHFLoVY`oY z9f51#Tt%I%xgUECIB<NSHo%;ZX0fX(2J2B7*utBojl*LRh=+XM87RiD&03?Vw+CPJ zv?YPzg**@I!+;D}A(@MUOpsa%kz;L?QDGDr2bTr)nDX_VVej@*^P$R>kQ1MC8#j_% zaNt59(IEA?v8dwY{?Pv}HlPVcMdM^<92j0c@2<jQ4_cl;!17%ASpuu!)yzAeR#lN0 zTquqBxvf1P_P8cJa$^svXt)S(uw}j+PEM5Fukq?Q7ECMF{tQ`ajwom`-#mI?t-HRb zQCY>@aFu4U2(ht-rX4BpZKU~b8sn6{_^m77Ro6l|-lC@L=(2&5O<gosP70xxA!=1) z>6js3&!DQ<K2%L3i2I}Ct=!lEjJ*s4O2bzb4Uzod5fZYj-=ZH$_q{dz=5G6zh0vl; zURQVd47Z92&~jx_c06-s8R<NY1{jmlLQ<N--({uPr8VIg_*1(3nr&Je_5k)%7xq#t zp>8?lJ3uxUX~)aty1N?E#tk36IAlBVN3q6h<Gb0R>BVJVjM#cQqUCzH4tY^qeakki z^XdeToBhLeZ(KfX@@isjho`B`z}V4uS`fcV^ZB%tvnx(=q&=OKCkw62glOt$d5c5E zIxkPRglm|Z%|&TleW3xF24XK@_V_RBEorn-Zn8~y0l{L)YHQ|*t3Gn;NSGwLWzft* zsjq5k)6jR~+FT`8#(f~0oZB(rZ$P3nB;NnXFl4?Tt(dGD+yFS_K7n0MKfxTBB(Gj{ z=;(F%az9pa!kg2{33`e<EdM+vK9VDBZ3j_Fr1o&}w>cK*0zDftO`^bNF3%#cVZF`* zc!p6s5|&Ie&hdy#hRR}>VD>eIq<XWhOu|U%h`9+-`_IE7cPk^ea+~N_l7`K}o_rJh zrnB$TXGJo_hF!zD|NUL_x~B@@<&~$i(~@>A+$ff(!BuFFc1UFu9u#ksch<$5skWtd zj%5wxQI)&(6=k)Q--$51WmZgZwblqkQIPwxNq4mN2yssNTRdl3HcskOR~PETPW6H- z?78pFcV`@BD-xL|=fp)#F*UC}QCvN@_v#Ugi=XNlHynr4Y+lPDa&xR<*QuGyyBGFQ zvdzV7L`FphmS@bBqJ_#2-dEPBPJ#7K%4Pc>tBs<~*L?ktjq<31<$+59ZO=~+OE^>7 z{SNDs-L1?}2^WVAol}W`#}^UX9EJ^h8D1@hP8?Nd686fY`e*gbm=li=lxI5ZHJ<gz z65bA%Qfkupn*4^~>npoJNY+%B%;m<g+JbmO%;LX-u`O>{MvQY3?dMd$uk7a%f;K&F z5*W)86E&a$J%Sc}W9!YDF~kcRh-E4aULGjPzX?jld9*rKTtpKc;ZpF*H~TufQZ$s@ zbH)e6k!wJiLY!N;3>)@Qp3|Cj*@~nF`%}&NC)!oiSN4~=O)dT1pq&A%R6tkOS151J znh94=*6LlWt<TGtnY`o^jjA9ybnk|xE1prlDrsv}KP}^Wa!+^Dy7*w~yb*PJRlZ7_ z{YDu*8r2+~-A7ZrT#9id2__V*r1s4@bn|1a*|FN16b|jMP0xnH4OY~6tmH&%=GiB{ zcn~Oh`RATvPmm0gVw|+GuH63EMxS{F(qbj!8idg%-CP^L?1x#?H(l6QVYlhmky{^L zP3#3Q99b?Hv{~{-GNa8s#xemNMITnQ4L2W^^L#fiz*~udKFRjs5(=vw5%<^0$Qu{s zMDa@`1STd(fb+6bgsd8fSpX_I<Cg<P?5I#yR5h{w8_6q*Vx?A|BVb+^@8%}FB*{SK zl&R<+t2U;EDl1A@hRQFiEMs(*ED@+IUz=gvkuG-@z<NLo1~TwnI1tpej}EvPae6@Y z(MwFmm)zUL?vX+~ms_hZ{N@lnB*JOET7i9Bz7a*3B&Q4-^E*fZkx>J4oa8(rxCmkn zNc_n^Z=G&yK1KuGjNS%oE@yp`hd)OH99n6cAln0;yIwJ*+@7x_xNRfq;IGD3Xwm#~ zz0PcLU3M{cH3o4DT54HUxrA)Z<}@kF2Hm^DjoJDAy6TRar1z-oa>4cD-4n(Nd@0q8 zONV`;^IyT)#|x3V_~xT##~@7LcK)b?JtHAVt_*Yk`V?us@E8Tq#Hue8zB#Xm_Z*Nq zg%3)AyA9Pg8Cz8%Gt*RUr#7(>_L|%vFc>OqGMpHVvyPI>3q1gjWp?S|?43FZkJ5hX zhO+!^@jr3wIvD(i`PW-LDR-$|ONOhtp1_gK8PD;!rTzsN<QfHV4C#;;12pKKTM!p2 zI5=O1@9^cUe?0T8K2FA<zCnNH`s!5xD8BKQl`D5C2+l=d{L-|C#@EP)FoTLYb?6&` zTInl#no_6WhsT^5j*spWfxJVtS%|FGq$=SbrC)1L?gLpSDl9tu#3ON0gkL((pCB%k zDbhf>RZdfn`DjoTn<>px_aj0A%HZaieHRub+0C%li#V!c9Lkz$0}rb-EO4Br6aq`@ z49fB^T`cZLuU@r+eWx6_-v72_Pm1VO>i??4lay_mH(^=$rHQw%Va?XyPeyHauGAt| z?!`D>sxg})K%?Th&W1y}z@<J?SnS#a3BE1BT6wnhsYL0Vd)1N01VL$=&!Ocrm|Nrf zwNcchb)3;s<Lmi-{dS=$tMj*>Um47l7?5h2J<vC$dje^J%V6x)kF;_lGe1G8#eK>) z%ELbu#;D`-IyIJY8pHefOI1P-_0FLaA76*d*W>>DYr)l&?4!_#+xzSIW=8j`|NHLz ziNdS+$LIdy?5Er3!zKre+_Sg-5c37mEI?NHxR1bw$nTebvm<U!488gQS4Q6N!U7k% z*N6~Psja?pNmo?RbyUoaQJNwVOUv!br5I(2D3;Jp$qPNU>iKn)DK3+uyOtZKg=Tdv zj;Ey>Pxj_YlPJY4lw#(azA-l0=u0hB2(v85(hd!^rn6ulwCypAxZ|UWqW{I%J4J~S zv|XBI+qP|<vTfV8ZQHhOoU(1(cGW3!>g)b{{oOMcJvX@$k$DxdBHqYn?;RD=_Vid+ zzq0vQYyVoQLk$EYmj$U;WE2*~osAfA=RJ{4dG=Js%$qw*Y&>7>e2?GzV{6ZE0BB#8 zO%jDsh5~xVNG$tL@@Q2ewQ0QO+?D8CCnwk+2%vV6Lz1721XITj95|kJ9Z~xk(6-u; zPc~K^30H%Q2mE{5n>7goSFBpQyWB?bDN8|`ww(n?!~e|#?Qi+k=iy;MQ?9pJSSdSH zi&j;)kx=)Bm&b80<g9Y)5HXrDZWMI~NIiPD(Ra}w!6|?30V29Z1&}`^|Fsi;Y)i(E zl?Xuphy>hC2nP=AT~-g?zCp61VNC&a+9-AVA560T29Y*FGgo1*300;YpDPned+`RV zoy~kbQefjyhs3(Jgn<Xdp|uakYH-~dVu?otYE`nYE(#837Y2x)dBYU!yNQX;B9j@7 zK~|F2V!zst-<Erf)_^d-Rb^==iE;}+3@FflbHyGSJ=@xaA+Kanq|auu-Q<ny@LnLo zpBC-k!Xm+Ndg9d2-7EQEuwtis6=cr~g|%Z;))e1R5o8uiZtYMp;IK_j(JUFjSw>)y zeV<r^2yu>zwYp9^Qm3pk7-a;tno4*gZ!|N11Uq#Yc>}!cE~0Mu8*F(|@EgUTO3A1E z=6F>j#*A(MD);m7^`-jHoo=k-iayG9%Rl^VOm4|Bm&dv(arvwWe_e+`i*uzVo!(vg ztr4H-j?1zpU#9D(@=jju#v~YZZfMR|j!97u{GuCxv4g#rd%?vtF|XC0$lCptvv=(y zujS4ah})Fg_f@~yANw}gzoKicndeo=^v%Y=$gdkTtAbCG-i<WL?7a!=GPYhmT<7|` zP|r2_<ZO+0DyJ9)6x{;=E2%5RaOWkQl(-WcNnDvaK^;DvWqr-L)m5U1e_f$~Y_0T` z2)my}&gFN|U79}{>7k@AuccTc*LqM=qn_DBF&CZ8BJo;l6h=Dvyp#Z1Zcda7BPPfx zMmk$v#jqEx+{(c(<#%vw+CLgOp@uH6WndHS?W#w5TiM2W+gEKPYM0F>cmsTXEI$vQ zDXF_o4(e*Mf?Q~Id0o)Yrj>oU>8!qP`-wggmgVc%Rq=#R41Apx%+@I?vX{V=I^{}d z3Fv}KyZ<guQGO?rYq~7Dc4J-G{jLhDqMOz1twgs5=b7}JR{C#VET^0pW}iHQui3ZV z4_nNyE3L?TeQ^6lSS~4HR51zgYnJy<O9v#+<ltDnyrB<PQc`>I9w%VF1T?`dx+|KW zr#5$k5mWI<)LM34{ng0d?SR_+Zv5_7`8m8MifPN%Ugiil##`-jz27h@U}gBfI&&r! zJ$PU_9Fm-uV%i;G%WTpU{fbbQ4(w{2PG%%&znia?WJGtro!I$+GTA1zaY?-5ud*av z)p)IrrCrn^)U;MOc{5kH^IB-J_g*n{1z4(W_;PED=|AFB7+KKJ46zRch7IdMtKB%O zw(7_@c6A9xp4+B)JK|6!^LK3A6wwqpWxA6a-P|@a)q{TJut54^F?7xLATBd4&VVI; z`$DRx){3>mI4!ec0|C;dL|EOcWlc>O(596!pJ)J?CbR>+t;q;I*B4w?jtDArMH#sU z8Qy~rkxw7r`mgex+&Hj@lz}7%{f4=@;QsgWRG^2NW?s{{unD^_e;%~3Jk5)+&P-{? z`<_hly0aELhI&>{W+Fxpb%tt{1`<@nni0&mTwO)KoRKHdz>EL`!*DrpuIldeC+$!{ z6))>tYIxV{{<*z+vJGs0BYfZ(<^c=A+I`##YlgIa?c4ka4cWMF;_p0%$?OaTq3k^K z<wxbaF~qgQrP>8x?|f6)`LL$(%yR3V@0-i|6NS#Lx;neR())k=e{E!$r2TLFyoR=1 zSLFoC%wM7XY$FjZRG?i<n0ha{s@AT)tnjbYBDLXuXmV0QIdVw3k8wKJ4f{VOrYxEL zfcz+jxU}8+ZnI}bT?2=J=Dojcyg23j8xwAvqwjKn%YAZo)VlE>j7RrcXZ3BG!w?S) z-(>G|=yqD!BES9I5p{6$-X?#$bU&6i5Uq4W*SQ(qI$@dDK7(hGNX6>Mq${_1JRe5v zI5Yg=i4%ZbhMYqQFc{#>h0n+fuzd{Rwar_^F>%!|#NPN2D6l@Jm3Oj=n`L9Tm#0E` zR+zW!Ge&UCq+<YD6N+VMquE0k3flm+up6x7P^4;D3}U0pCfs<JFbK+fpzFtZ`wT$B zd8=#T8<gHTCx6dhe8(UB4SPprU7|yl$#j{%8j*u;D;UsZjOMI(u)fRG9j-{CqU$1V z@jNUWexmH$={dnk(EaKC@d$zsDaG(Gj*-a_t!6+He2zR}4An2H&g?vVrGZ2V^dx_K zzNPjIXUrSr-k?Y)!37^fr~%Ck>B}_R3vM&eGGr$BD{^2@eYHMGTZ$%6O?MDi!9B+` z%H$8*MTe7bTD@|YG9Yv;kX_Kf+uPfPf)q5!Xh6wRuaA$7i!8J{8Y{Wt?3~jk#(1Y` z&xddoFL{Gu9kbKmIETx=AMzahqkGUK-_XRn)hc1E9uT3Sq7Yk|GbUY1lQH|I#$)Aj zBnBD_cpeoQj<BYjA*BUQmHz^K!l?T#G7x}5$s)A6ZRXB%lFs~_I?JZdGbB2aeK@Dr zMFC6wdE)Bvz%O`<gj&SGI~K)~O+Cm1wx{6s;%8IW=Oq5a_%!8eJy;|R3pM6U(?MS9 zDC5jEjaeE?BNSTvQa%dkX~2rnetwZTNfxpv%KA@Z$-){Oe{I4GoCnS-R^y}BGLD6{ z#STljT)6%)4YD~WF9ar_G{re;SyihJAcvLYZ)X?zX9E7nghln|D+kA^NR1o7=C2yE zFko3XKtVs7hB<Id&V6%b#g>~#H8UqwAo~(xR;W7eBY_Ju$$P_xU80wm7eyUAQ>3{{ zT7qUJl#YIG|58$=#v3Pl1`bKaN7}*hW*qtQ|G<DN={Yc*_xU(O*ZJC|6Ccc|p#Ge~ z1ZSI@B@RIGL45gNYVZ@KO+qeH7^9R8{1QI~={p{Q#=$(h@^rqdxiynrG%ie4)*Xup zAGR#G8E!?>b&QJ%hfKP>l(QTG5l|!UB;uFqHAOJ@0`HFTf~ee9U2ug|*v!5oQmUoZ z&4>?vo@SxH8GBj|uWo)hrFrfGB&yACT>VoYYF@A!Ob*JTldhme(W}TST>zo7a3!k| z#v#+$?veUpf!#{iQ)Tzc7pR!_^~QfrsNWzmzZgQZAjETaOyFae;m|}kz(?v=IjeNQ z`SN=%0T2Om!m1UKOh6S=S&UwQKS9Fo=v0;LQEDO(u2)FEP-DP@0C}(Y*;p0JAv5-1 zl&y{qzIb!@eDNXhG%P0kamDznhr$xB7=Xf*aNW{;e%$-iz#eR};TA=T`@&xyu}>QI z)P+a(5DdkRmN*Qv*Nlgdbw8p|aCC4(Z01*lhxH8N^ob5OiiF2FHsmOA634v>BfUgA z2`29dMOgs<I9`ZglCbA(St#DioQDqE{t<LVOEH18YdLUBit;zqRUQ)1F)?avKU&fk zyOK=W&|zoakR6FyYe=D|c7u+S(WQbF{CKeHDc;1*Avbj;orXqnEcMxcmMtQ+L=Ac5 zkr#-JEdov8ihW_0zW|~CI!`792RC+e4-S4Ihel*>b0OZV8iX&AV%8m8?VuYKb=l$G zdHFKMzSV+tA8kd3J8*B*p0X!TFVeFH6uBR_*#nQJoL5ww6rz)Xb*IX(p)g@@>EAm} zQk(VT^>EveDuWLKTk^t8>)<ulK8;Sf<%t&H0b%iB6cd>k1-@2YEwr`OuFz7jv{-tJ zlrv_<>N3vbNEjba=g1yfbnY1%*X#*bzXmrilBQQ3;!CH3>GVvQS#PmpprDIk0Z7a> zgn?8!y|r3?!&T_24W$f4YS5F3Si`M(RaUBO?5q~V<t~cdhGU=NyrLl-VhK(UMOdUK zQzrf&C*V;V2!>dK()f6`LgD9WJ>!H!kNqL(OaVk~!nNY-srG`JCPBX&;b0K#MKX4x z+@j*5p!1<~F$f)qg6x84VDQ^_o~8+;#yDcsJM6mv+<$AL^-Y254`<o03_$&496q61 zGszq3%UBvw$jpyb!n>FHI_h`>J?9fW6(%}`?Od`c^_F1h4=@!d1E9YuPtE4>@YfgW zUX8UZLg0KBD?lc?(3363Es6A!C@F6xF>e@>aN$&p>#2KPllUh8I4=#VqNLSNKa6*q z)y&}3G$%&-QI!-VSE$q2)I9O!L_q6cp4;!ePdR0scn}6FmnIw8zmnP#M%(5R&qQcg z3AUd^?AhA<yOVY!mPZ&FudyM@S*5)$$V=TZ_7gZmIBX&zZQ8HrBF*43)WKu2v?9YF z#P_jmlRuTyvDpCaDb5fbcjgR$eiYOZ@fk-YN1Si}hNRfcFMi2e7TL+}uPY9|xw(xq z6GEWs%VYJK8)xIV`*uF%egZyae3l%naSUjgfJzg1q9pC2bh1!^cR-c<D%_a>-)>gf zeyqLyF`xS6y8Y<~=xG4_%+>wG^xo`#ZQ|54tqma2A{v*m{p3(?!sdIb-+sLh>bh5| zVpfuCqS{?ss&TWctU^>yd1ubrm8&W=sVPJ9lkimF=%B^j?o<t@c<WcIKmc8JvDX3r z&q1xTwypf><ISkFsPr4-%;05IS}c+eO!LjcY;9>^Zc}j<q8jRk4&aW}v%kaAX&rn8 zOWjJp#%)rQ`V(xpp^mC}a82;9XY2ti1sKIY+7g)xG@S1X8h|kCjG1D^a~U`#l~)C} z#I8(OrE8V|UY}>OPxZHJo?ENBA=TlDH}kf0Mo{BMROJsD)V0qH9_)4Fw-<jUPp{#l z#wy(AnVhPBi>V`ZZmVcI6S`V&)3Y90FeR_{sPWmgTZXwVJRR>eZRcyK#u~5cs4UgD z$E@f}kI5_`W<s;{4-&Ps)-#mD{7+&LZ7l62XT5N}M?Q8LMv*Q{|D+-HfISgj%b|Ha zIIwhxeJ9iOW*u<7ZU>!WI6vEK&x}tyKdbmoQ3o-*)B;t<eTJ>G?(|$rwNCoHEpyH# zf~`kFo=jNz++qSO1JM6r&z^Lt!zlYr3AfVcphtaQ-Wl$^q<S={i}BE>-m&IG2E?6o zz54D-Vmlbe27AU{<pbcyT2JkdCWw%8i=F6wasC!pdt*q=lCd<Vo593Y%-c+2CrX!7 zazw_=vDNfdZ|7Dp%FsA}>%*;Ql2aNk;I-!0^rt5%F6~bXx#iKY@>*vyQc@s@_C@Kb zQ_2C@@)1F4V|99aQ(HZ`9t%64r#@?;+K~Jw9$Nb`5wZdMG4D#afO|@*tO-9!>WBN# zfVCc>_|_?;5tJ%kG{CmLX*#cd=1w{Ddn@gG(JFNnQAI+<FYX5k#f}OlDn%@$GPpWA z8jmk&x}__y4AP*)QF9Ed0W$RW8!wHcJ7rJBQw5YGdHPrO_X<gf5(>&2Mf+<V)z@=O zPR!P0Ri3YP58FiOtZfid57d-nn`wCUa_QBRZ{$g0bWaN1(Hw(uTp2Uzo8D;5AZzuy zd1G?F-=D9?s}|Ay;&OYv{~a8We!h$|yV;uS5a?$fyI&#Lghs!HY&>ugdZ5hiGc;nw zre|vGBISZ`qdzTCG3{Xf+gVeZ;uCX?>$%5xjB*!$q7m-zl9;;mLQN5^Xa=HJVf>6* zp0Ll_w}6?R23m5**BS%=APHJ>m+EC;U2%^Ju*7MfkY@!9-u+6ht9uUJ_=SG102X*5 zy@q5G>j@ePc#tYO!PpF-cXB@+AKJdN$ji#e?ex06;#mAvj4D%<Gikkk(_>Lt4vTR) z8*TKlRkYO<g|U_IHTs;Dth$>Ords$~mS&ZOB-oJ3)$r1xz`ezn2_n_N0?`{bFnm;3 z(=?m@-1#JA@SI^yJHtk}sbEkaXR&tSOLpPgci}^HT~<a=Oj7?l9<((Uv0%*T>D4sx z81aluBrU{x`R2X-RU>*vy-OV%Zjc-s(aeEx6#aRB7990m$b~Xmlj6tdLWb7RzchEt zElJ|gqHLjk5uTO?w0wM6bt{{?C4iQ3V31g@m`tlmMZOD^UP7PS?*ppP#5HIE@P`EZ z>@bpo)6MPes!_gV`Cs}&8J*_D3W01Pf`&l6-eYF@7Ifk)8_d%FSt)rQu{loMB&w@G z$#@1-p#V9?v2yZR-CXlI-_KWt5M-49m+-JkXvct6WzSVyC2COu$_(b1rgylKg}YB= z!l)%lY!*tK8=FX4qnRS%(6{-vJ(HRYR+ZQ-!CUjL8n`$2+xu=Yx7{Twu@T+h9d(!E z*DWcx$#0Q?#W|4G9T0brLk@25(MZB5)1Bc=MpPLtNC(MNqbI+rAGBV{c~m|%Xc(0` zj>7S}vCLoj1qjT5lxHsxFdrWX(g$OjS5_nf_WeIv!^xyq&1$2=2L7x>j`b8w1EVRn z(KFei<{^$Ge7An3Apj%%8Bl4*gNH5_F6zTM4#GxMHM!-SZJr6bP_dv}-&e%7E{;hy z7)YbIhD)#R@MTjx-C;~^MSr*x2e4{fTjMTqX6@JtNwj%(>bGz#Q2M`1PRSh+V#N7> zCy$aS7K0v#-LLd$)E5{6*0_{1kHD|ux#g9S2($qR`ZpCg`dI&6ObKe<{cUcXrERb@ z!kprYx;$L=u_jyX$DWB7Q78i2N^?VO1qqpK@f0PUMXHutLM%I!WPd0mK~}PDUzxul zY>ComY$Dv{)t#<aMMx8+WJg9%X#t}*Mx?BEm5VFG{Qn9IRkb81zg4r}Ei*5X-yvrY zq}GT{@pc&D>iG&B_Tb1IX=)nZxH3yiqH)yljS`5UOtF*R*JJ8~v8^d7{@F*1nC!nL zCU>W|amvxz-=;fca=A(Hkd3@8zU;!k8WhX5(2(KEz^hL-y4MRqWh2b^&OjHZtgH$c z=8!jWRw;v~gDrf*7h(UADt|YdVsMy|)RM?#V6|C_FHdJ8n^&~JiRUwM5eh&CKGbDs zB29v1w&jeWz=cve{f}<(=vTMMkD1Uot`qo3{9P6tpcC=T!K4xiQH(9F7GE1_i~ZJP zv<h6!6(d6UMpv+EzAv|iLrtV7gbSEzG$VZ#-WX&kydeJ%$IoPitMY5|_SVwCVXKBC z5L9OYkN)8Ps!@zN9ku&&fAQHlVY)Uc$dF-j1#YK$=TBTDSqK@U-n0@IJ`_V3Npkfj ztR?dQR4Rr5Fm?mbR#O+SQ%C}^sGAz8`QREc_V)M)NS<4#D-H{uf7Wm7fd@Hw=SCMD z{+N!G19qO*sraAfb&EYcF&f~0R@=8FWc5=%Wx>%ktvlA<cObWPB&E=5;Ot4_OD+fw zF5GuYt4oOdp&(Y4L^}ARz&jaU8+QMPS8nt?5a&~EJd(M`ilZ->iAGf_mA2wa7{xE2 zyZe{NYOzhpho9mqTJnooq1BWzda<z9fK0oVt4L?-Y*j|HGi;HykZzS}9CFwMF<xx( zSiy8fKT$(%{rFX0Z8(YKNQdmLck|}t$3Vk|bz#vu%5`j|_2AqiGG@*Aul83D_)CW# zCU(Y9`s1Uo^#<7+4<tZ}jeLwHLj$DB6G{FoSc>#J7M>p=gF#Y+IC_x24MrU&r$P0| z8inGR6!zzbs{*rHyMsom^G3J^<kF=Yq5Wnd3>ZG}Z~@c9B1Ilp$y5K83(A4(ksBdg ze~qpds*WzRmaPf!06jrXPs{SSSM-ft$b0}YHvb;L>xfFgxHn9#c_wm+&ka)%Xw|bQ zyUqA^%0cJnSByrpkQ#}+v6mv*?Te=B{@K5mV-sR+3SzHdv*drsbW;&PT$LYo^^szg zltQ_+y87$4IUt@aV!4^7%sY6yW{j~U`J%%_z&w+k=oEAZskV2VJP6u_r9lW`<gc|R z;ToAy!D=>n)X1w>YGe%-?H~rfJe(E_5^|S{{dz75?$CCndXAP0F??XHey<!9Y0!(n z?tZ*ub@o`=W5@(>${1gwiTaP@-X!kq7t7SRGM#eBk0E?kO@IoFUbaE+fw_;%9uwYM zvn54@D^Z4>#e;dRKT<tDX$~yt+4U$yGDGZe2rlox!?__|*+KyGIke^^?H8LB$rj6L z^B%`N!9X+G=XZo@{A>tN-6{#%PSJ-=kmV!2jO2%pe!>x+XUcMgZTrff)p`FLj0YP6 z^fS@V5vlvY3*O6E?NX#>{C4zn6#<x=e~5YrDh@^^CKV5>q@{>b@E^J3Sxr4Q(ac_U zO%iUYQ@lRGgD3`TbZ`jZ;38sD^=c#g%+LTT0KOuCMJ26GBWAvk{FA4Gp3s~^bI)x! z=9D?RlrZhtLv<qEKWao?ZMZQ?qV&iX<VFzzxAA5RSKAVJ)lYEaVR}8`fgI8;je(q! zmAyjq3V4a6?lw^NbgZ`RKy2&S*4^yT_9KKeoP$ImZO3paIEQgUI?f@|)tz<0|GMs{ zagLi7{Jk50qbA+)Kc0rQAL;*tXZ!g*IE?R)1rsCxkJt5e13Y|qrl^NVe;au9(EhKs z|MmF?bkpJgw4Xt`q0!URZcIk;nno@oR$-OOlI5|MSfsR8E|xA+^@Uu-q;^3C*kYk) z6Hw7;i<`bp`^ZdH(Xp@VI&Z^Nx~y&hTXWOLL$sTYmo*7*W?8@GE|K6io6y&qu&KQ^ zzzn4K<@O-{I&x&KUEfE|u|8EZPdI>xYV|F9)ii(G<QfC&nrNaaxZCt=7;+KM?^b^l zHB+svKW_*bKhii3vOaIm<Q^vfF?5~q#7XhU!j)(#x>m15{5mkN^!bb}TQKqxQwD8$ zNVlAOMfC4D(j;o9mt(Ic$F2y`xXMI?x-}|7e3nQAxAQo$UeA-+|IvF4YdUtmM}G9O zMp6*D<P+OXlK@Y)<Ysn2B*E_Jx%*ejGOnN`5etOICwa7{69myaqDGcGyjqj|e8%x! zyF^~l?WQ<{s829^8=GBa`Dq=HTeF<EQG9yGM$rY^(cLB>^9G7g_-EorCDCZ4z~#jm zUyYpjH#o@~Q8#=1z@+_h)>y41?NB%WjDB)>cA5F#x()qoNo+wczu9P2;C6+dO=HhN z02gq-PI))1>8pHt_9EVy2vcac{HJaswradAxWIY3u#$pi9U4K!_rll{e=^uPa$#Hx z{%+I!OqXaC+MD&KC(p{K)hWZHxdYxr4M5X4Wq!Zbs?#cw2mD|CZEqc3^(Tq@RqZ+! z2$Jx$m0{?`!W-o-1_WD`uB}K@PyArez(!mH0pdDh8i<V2`uzC~L^O`297t%*?6i7) zeKsVt;NsE~4S1k$MGZfxD@zPHM4&Z!1;(`Kb%5YTRINRYevr97kUom^f~iB*&V+0` znqBt9%ju)PzPoh>{+kJ>To7$kt3lhN1}_%*QO$)x`8NfD^|5fjz(I2YHbgb=tvI($ zCBa7ia;10<RH5`?T|{$nfVnOxy^L^BYl2{5fpv`5Rhs<+p8wCW8-v70t@)tLK#(cp z_>g<Zd%~3L=p!*sP0-IRqT*pKwstNtvo3%#=bi^A?zPMF20AX`eBN|79@1BcuwQ?M z8=r8LULhZu?;0VikbZNSrHqlm<IHnD#!4uwLZH!Ot?#|kF9rx*z?5ILnBbi64H_Hk zuep5IZ)#wTqHaOtlv8gG%E+{$i0>vvm`2yw(1$8s&IzeO%=<RDVHz#v+{j3iu&QWJ zHNS#3I@)V7aqbqko!}k&JRO+#SU^>++!c|QF@aG#BTJf@6-xE}ft5<dnqV<F7Ag~0 zlipz<9wc11Yk}(AJe?nEV;XH^j)R1v*a&wIuX{pB94mmkI7(OCYKPRH|FR;4{#vKo z08Pg#iv9Ln%?I@FX&ws9KL(<!+dX8uVtw=OK!3_6OBd+JZtSO95WaQj=h6_ab>OFW zfMv^#STnjjOjS5atShKruZ16+Qu7ZHuBC`n6GB+4u#}H=5THKu`~mv*-5mS`aDwKh z1E%?uyG~vJt|5M%0Jk*H(yt{Xnf5(78#Rqw)8bS(A=i2|#%C6bVR);rsj5N_!Nzcx z^0s+Hc3hIpng(e4LA}y5yO6%P{-<oQdWDc=@H+%Nd(*<I!p0!wN6Vo<I;$j>+20q= z*gBnd?8B7V_MNG&yZhZqO(-bH?#r@TPEs5J67s2<bYuSTk#yG<6%h63^XjJ$pYf)T ztD&a=xcBkqSw*2Imz(W0Qi>1n%a6d6mwS<}BLJMpZKg4u!P~i~eX(0U?6G#v%QGha zf&^1X{%i9hjN{H^a7%o?jQoVV*5g1Z#}w;1|A!>_i;19U2&MyDtFt8rFVIA)P(25> zYw2C4+Nk>~8JUwh?<ypK3j{?7a{>;K0IqKyBrvkGX^_ALEeKFp0n&bgMj-YisK&II zTH_p2LU>~<J_CYGJ3S<E@v0$yz}P&P_^Ky#05^rf%23Ymh)RwitD-CGew_JXWMl3m z!f<$%Eq>S3>iqPTe(<CE>Ba!_LtDPlm~`3f3&R5YVy|fStN&~U4Z264oEOe?PO4hc z<YPLp0~U>xYNiNDj4SO#3sm6R9Mz}_AX`gbAC6We<87L$QjMv6N&-*VsV%3}O}BLD zX`6Inp;bhy50g@d56w`}9(K5wY%Ce4O|((PR=^Qvl!65Y*;O908|9pwZJy>%L<c%q zT<WHUrK&Bw_OS++N#N`}!x_{-kE8i$h^F#<FA(4}!!2s3L=Uix?lv0rf@V_DlFF;e zK*?4sFGwTj<FP%*;1^&0PBen}S*j!fo5|G>)e}p0FaUgt`7X<)K3?f2npQ*1blp_` z5d{r6-6Y5LT>er3N?D5K5Z@Qk$dtl$XIm;iu;Mg8V&()3?XKHQzok4qx!+~4hoh(G z!}D_I3rv(5k1PGwa#^Kmo2M2o%<UfPx;l;ka3Ghj-8RMV=<k!jKCOGv2zxW-xy}dJ z`l<Jn+YVM)Ot_bBG)USS7OW&~ZHy{i3MDMgM;qK0Je%|EjOgPHuAzw#H$m=_we=c^ ze9jhQcf~{PXF~Gt7Q=OGHbStd6mOC(z7*(U(PCB+cW#uB`j(**F083V-cA+Ku4q~; zBNFPwN}jepI5r^$O9675t}l0OHbCmh8dL7vq7O#vV;ii%{dKWvd6i`zvgENzr@a6{ zEnntZ*Hxg*scaS~(I`<g$DAp_u9T6YDtwq1Qep|c(DYq-6m@xITM{$!#iw03GYpy5 zDr5OLt1N-caq8>jwHfhc<#wbhfnFX^e~TgI-D)A!T7XcdsA2_1&Xoie;Li2+3>?9< zRI&@Uye!!8EZ4@MLf>hc2-!&kYU^V85}aU{vj`ymyy5WFelnD|p%)LkXfD`r%A`fM z(klx!QbA`MYp`yzOir%!JOsm^$iy3%AugF8)C*Dk*+3t~FggWTrgX&gWJB-NMJgF- zCj7q0#bI5dl46m<shX(KU>|wz%2<&ZeojVHHQBoPtQRPNf>Mz$4-|ZQqEdeMO;5q| zxHj#IV54~|e{5d$q`{&X#!J!dS^iadZ^H8~=GR8@F7`jve3V!B(0xxS*m$`Cfph=I zCq%b6cJ-gTrNhsK?<!Z@GN~$Po{B=mcAo|Iy2<|1M&=95lTnI|61K2t{<%Jf;9N81 z4O?jMnhUhG705%?wg^I8Y=t7lkM+#aQ2+bZByVsGfQS?|cN6^K=&Cia9plyrl%>mO z46Y!bs@bTtlHG|FZ{&oP@Lg{rO`YOleF~AC#QL4jf$Ps}E%<56wQq{ixGXIyUTGzy zcJ$gt*^yIY%Y!}dU$9$MpVcjem59wdslWXH9OVDLs|H<PH#)km_^8dGvcM%d+6Z+! zmVeuX<UzTmST#H$a<Zu`cJINu-*4pGzVEzzGYZZ6H(X4YE6Vy%x=uG$PxU+p3^Pg( zuPoPdv8%!I4M*@UJ1CbCU4c~WOn93?IUW;bQBGdw9KEQ(n)9)sZpNLpo@&(1DeKU= zk_V^sJm>HFg1*}jyA`IydaoHSE*>6QG`nh#9=GQLtu-Pq)M(qC#ITI(y%Vm=XDs(# z@3c+odzE{`W+&-hRfI-t<@zneE%4x`;04*t8fkQ2!s?_6@cMv0R4i~e1>(wv!QwJ^ zB`s&p^q}5g?5r#z4{GiPB8LWPockg6xp(NkN?y{{nbhrbw~pFJuQPj21de<6Q=&o= zG2zt}9w#ROXFE9ekmc16q=-ifgADuUuWTVoU+sBk#5Sy3XD7AQ6PR`VAfR+vhfAdD zOeICMOt1M_xbWSP=c*=s_Wv={Q<Iwp`9b+hOR=hZFOB*WVJCn0^MK&~DMw0_>!^Y$ z>yol7U#WskY)Hv_sm%wYm7<H!Ey9Jv`|d8Q2XCk9_^*DKn&(fK)&3TuQpYEkw{)4! z91{%g^f|gX(q_^Gj^9EzN$dFGG1rO2uTy-$T5Hpy=<ID)(Xw%`9-SBRR*Y)7gi9E~ zZu|)KH8E={!t57a$iOj3dAKqs*Pl;xe!o6nlW~luS3`%pSGlk*(h0TFJeAN^6a{h7 z_^9T7T>IlDae^93S37ko^^9z++VrOAU!!UFD!^M_3}KXZBlOQ%b-CzkEmI~vx8`5p zu-n_F9gIitM4T|4h-NN(F<f{sjvL$P5@tX%lBbl7La}@pJlOwf4TtoebyUQ{q9VN# zUi16+S+-5S_hm{uIzb#F!$@+t0LpZ>v^%r1i=$&FJ_5>I6w9$ssVCcr2308%!`Juo z{yrZD?9);L?=%n6C!U@>7~So7eT30nRM3eRIK{P_@)cuSL6B!l9-e(^5cbI)-<@YG zQB?Ki^Cw_=GWmkEmKuc^a#(zVMo5=?g;6SW>QvA4<ll!Lu23ft_yTOP7r4X+bf+{d z;Eu?G{j~fNOwSE^8eV$Fcx<&>Ojw4mB-ZDE)WBULLl;T4uY@_q@ZfJ{Pll7RL0rTc zd!@P?&q-hm2Qfv>Q0Fz$WxEC|<zS{o&#yQB;T#sWd&!0}K;DMIOIdh+B?aZ+-G(}< z#uSIF$6Hml@PDgrN%hw;z{YSlfq7~Es{G}w(J#Ms%Pk+$2)4x`v}EuO`v_-c4;I+v zz}|q%I3=1Xn$hYxf^&k2YOp8Z1k?Cl<EOq^=)aMy2V+2qjFTSkAesX<;sIA^o+{ND zwBb8*O7o>F5ECls>vd#^Ellg0?YD!m+CD?o;C<usGV~`ub02mGObnQqM=~B<N<|Sl z)7OuM@}#~B4QJ*syEG0v$05N8??R+8^bZD=*_UP-_oVeYl%~-JydwmSFWp!m%L3&3 zZ)cy6*!2Er*CyemK)P9~bEe)*T8I5s|7@bb3UzM6ESV|>o6H=o^B~k8K#luJ^aOh| zNVimbvkKOB3e5|l1!JC_3d>tssW^Jdfz^z(5-MORms-@Xub`&@>JiKU_l;p@f*lG* zYUH2apeY<X98E|sG{V^lXWCJ&UFPHDglLe7`|S0xsKY7$!?&es7T4*dU**^7BC}PV zj2-~x<)b&GF}RSZtV*}YuhV7}!F3DkPs6*3^)<28Wu$%XF0L4^tXR&b$E9`8>Llay zA5%s!=wkxh2y@=i!z3{HY~0&7>(OXjwC7(=0P>r&ZR>4L_lrAB>oaUZ)n&G%h*Nv( z(vfIAV9R!Z*d_^d^mw+2Bs1GCW7DJdFKKG!90Ya`L6Yfa3V_<$KvV92JPK4h`v_p2 z@BGJde2UG0RE_H>4+3$?)(m<WxM8@L#n-O*y~--%!!-Hkrj@THSvysSpOxxLBr3kt zUP~=$%Qi|ayKRs&R2*iI{^SPl*!2V$+)$~cXFy-Q{(~K)6g#@7MriXcy5_{1NHNkP z1oGNmb;*n24UhUu$}PZIm5|X{&LoB?C*9lz`o&L%^8WrTCMD-=2EMKfUYGLE`XtCU zN}mQZZ<8clKMSt)TtAC<tHEsJS&bw|vN$b74y!PdW<|2c(#zDcH+tz=*i+Io$^|CE z(KxMPo#m$irz3P?vC#dvLZzFDU5lldOd|8rtg<fmTLr&4lV&D0JGq(r<|=9D>GsG{ z_-6bfc&JT0Nu?f4u-izG)@0?gFcBEEgn=SNfU;Tz%4$JLEfW&7x1KzyRPO1#Pz6=t z%-UrA_)%1Is8USP%x*qXAG$&_uk$afQ6w&$jN$tSRTfGZ>Sztw%Y!Co+BJy6vvC#g zNJrPWje++D39}=Dga8R>LNjZE@uawqS*i+}z~^$7l2Gw;chpi3a}i$XWdiR41?``w z`jYih;Q}J6xN|Mt^}Y4f_Gr5-EKZ0@szt24-C5KA<+c&k2rVM@s(q-oj1HDfvz6i2 zc^LPG#p;}0Rj0AGmQ|SgiRlxB*K0N{&1=`T0Z6Lq*j6eIZ`|iiM6q52pIh;>cg*T^ zO4ghvJka2ZLECYV+S^!=lLDLgNrlfJ!2dShoywV4ZjtP$aDV~;7$pP%VEF%UyldxZ zW8nNBL-b({FQ?6R#2>vppiyTsW14vfubj?Gv(8-M@p2jKn8K~1L_q}-ihb#XKS<5h zxwoBe=l~M&$;Mt>8IEL#_)*)#c6sVeGDv0F!S|NKg(_j=qa4&Xike#{f0ij;>H5nE zV%UQnG9NhLm<xG5t<pq>ro)MExNyPW7L&8l1Fukz@rSq<9f;h7a7Qnkb>nwd+x>6N z8Hjd$KROoQ92mY?y8gO~swIu<d&6Rtgc>+QXuG8yjCNf`>ABeH#`@+<T-DH*)_M75 z<*Dzgrybor1wt6c44#E0hb~Q*8v^_>Ydv_H*ccU<Pl~Q(V>w{em5`*54Y#`ode1#r zo$r<QnwiSgTiK!fmUTDifS&}vC49o$V$c`_KE46=9`JLEwxzuspDF}uyJ&KyE<cFo z^O373%_skO1{r&X3YB$Mg{ZxJpVL<K;%&y(QR@Tu!vly6Tl#ggI-9i-ziWg8JX-8D zTgN$jIdB@2=7;wR{K+#_A>p%Dse&k6heQf%I1NQtYJ15Wcq83>fF0t;l&23TAa`S# zR>yH+V44iah2Meq9dR#dMYlsjQ)FiCnQBx6<0PD}=MAV2mGfij5dUHJ=*uH4PLGuX zPMiZt45%1-WNgtWb`waAA1dZ6PCm5|wrsqPne29Hm>{AdR+t)h!I_^~oze00`SK|P zX1}|H*@demA9Ne+Z%-YbI#;>fg*X>-DDt%_WA{_(YKrEue&)x<(DUV^xP=d?f}>Dm z!e2mz#xQo7Iv4Zj$qx#|Kxe-{K9_Z*u)9NgB6sN4La&0Nj9Rhdl%gb?l};vfCrq95 ziX+R00bM7MIc%m+D(>89_dyWr!no3E1P?3zGzn!Q#Qygu!Q>`Z)HhqP*Lf+E3$@@{ zT=GK#tB`}D3IJP6q_2l~P4zC*%{KiOv;`DecWePq&GG2LGo0E=dZB9q1&X-A8>64- z#7g`9W2M(gNSrn2G{1@q$m_BcanCT-I)>c=?|t9_Fv|NtG*|@FZE)@wfHeZRkz!wa zO?Z*^5=ax0K$bX8p$|0`8`a39I@)^8aylfKl+-YYuB@kKQPxnfh(NYG5kS>df(W`v zvAi_ApmDb;y7W*ls#tI}*fWfi-xFs`C}ui7`K|>z2fYt8Yl7Kc77tl_HgKD=cv(yF zX4g0Y{e-u}=t7h_Q$qxL2nfK&%(GsIXb7p#KU{3_l^dj+arEcgKwVW2I?+Ixgz~Ef zU5r;~i=fDE>k)0pt-sU#LUPd?&kq4=KuI!$vsgEuYw%h=CM{G9`Omp`;#E+%s()}0 zdOR(u)k`c=n`0C%0ZJ%=L4n9#pf#pmk#M6SLPJibbb%3iujm*eVrVWD0vdF2w|Kl* zuD#q))kC`Gj1n9oM&{Wr=!74}%4!{f*{%hh>vK*M$S$Zn!3=OF5X)nIk&PiAyhR#^ z4iddzh#(;aVO5DX#v03es5FfV=$QYMF<UMc(jrnjLvz(1r1Zp+-+hb2QUmN%{TiOC zRv80uQRXCEz0m|+<Ma`=G#J~d9=bw1LG(gd$xBG@pNDtp{ma*THYlT2x30(ulz1R4 zr1^vVX2YCD+an8%#*&yFfr3F5k~=oA(-aR-JOEXrX^+GwIXPsG;B|)%B=$5Pwe~%a zvHbBR;mJ8Py4v)NJ1c|Vc{qVzdH$CxFeh|v4+;@?21x{%wX(W+2k0me_Y@CY_ZO1R zBO_E_F0X{<P^Mv;;<QE5AuWnM$e*k)HFGkCvtAV+OfZ@W+IhiZJ_adaqP%0I-7F&r z$_$}sZeL?_AfrUdoDenX$mSoSL&NF4fS^UI49j10)>j`D==%c}VRd;^e}qB^i@mVo z0=nzcRT59Fk4r=Mx?~xR4TLT3<VFX*P1@eA?gnZ%#wKgG%`#)sF>sXV09I0RM@S&x zB?*stEh_Z)ncO&Ym>;eCDBpO9aXW~Drv9M(#^HeO5a%=84N~58Pma);v5lrbiTh8O zKCt^B12%N21Ce5S#WlhfSn~WN2^s{*@T>z4LEi*&0VRb$l%{Kds|qx3m`F5tY{opp zoFq8!#;|I|u9^|(hZ9Jobi=>PiO(I{9`8bLsLia|{sv()b))0G=ZRO~#7d5_>{zL> zw-AQtQ%|e4*;vOIej0wLdzHBqQ>!sWCuo?lQZdXi%lh#Gv;K#qqse#=lY}|@dyUX+ zsgx{$ZUW>-s%FGwR@bo4+CIoJ8I%>xg%)bu)j<G2JAk}t=6QR^55#EW7ljNc>S899 zG#nc}f>}12@JvYvLi$@|@Lh$S9kxbAVa7OSX;_vH=9o+DQ%{DsbJI`yLBXAkGW<GT zm|a~Nu$i;8`PY-YAa-Q2vf3!ii%n<5E;h_k+NNjO_Q(3O4`ZnFWhIEwT*k?QGzrDA zMo;|wmsHX=IT4D~J^%T~wJLC4#wr~R*Brg>Dtb?=Ji31=ke!@ck9>xbFlpaEz*%ui zF|AhO3L@WD{7S{7GTT%_-|%bAvI_1kK43tzf8<Y0pphHH2ZVC|a^b@c$*tq!r7b<r zJkv!hU<o0uk74Q2+^YWV0opX5t$OYV@}!&vnA2fJP12!z^e05=MRA)hz?_l?T%<r! z>7{?)KvFU&P`#)1BD_Y;4c7`*iM90gTp+C4lFIt$)cP-5$W{qqt!X_oU9U|p1mMQN zEmM(3q~}7u;ENk3V<+lYuzM*y>{P}R+Mfi#_6aKCv;wdWN?k$F#7t40C928E0Y^c1 zh`VNfxYH!lL&#AK<fh9M-mK$5vD@C39F77!E}BC^=yfGQ2VKz*1Rn|5DVDc3>_G)r zOxE1N<`IF*#<E6V<Fii5uye@RP#!akc_Y4}@R3%(lzpk3+VmW@F6|pI=<0#hwt-m` z;;m1y-BM&ij5N1WY76avlSWT8F}T+BXtAE_t&;cQpO-?OXh>i<xtPh3Ge!yWPZ(@M zwtz>%t((LYaaNW)=yLouZGQUBQ!&d_ws)$u>B`$ywl{lLuOE3!D=k#kSKo5ov^<7- zG>DxYpAT*aZig!jWVY4S&esr!fQR6bLQkgW`Tpzm<X<_NXDbh*8QZ5_H`7LPoL$>U z15c3+ZXSFo0FTiI&0;D``d6xuNdWwJ(psZ_T;8T9z}#4!F1|hc_3(E^pQtP-o5|Xl zQb@<QBNQRlo7lX&^Caxfz;s9&H#Nr|X&ls=-TgrwoS>i)S&!bv{dT$XlJj|HI`LT5 zu~^_C0Qoux*a!eBsi0D$Jf|g~40H-N^Z|k;!x$+3?%os}GV&=)%)2I;s44j=c(Xj9 zJQBN=)cWIfMo(*>_l`5oaQ}3}y*ht%#n`F1MgTIsAL`|?^HM?(daYABR*PjNMAZF8 zvl|=vZuX)3^O%2+dxdHJ+{o_giBloc3g;x>`{rDvQ>K7p*%62<1A8@5X-DWX)juK{ zEkDFUMTnYUb-B3~i>|)%?9#H>c1ylMuVWnzM4C)`N(77YxUM5{WWZbVXXnU?jZEbm zOy`x*Oh*%|+=w%XAO3SzLOBd)G}jHjyJoH*(Enb({wFs=W}oAv4j2Gn4iW$W_y1hJ znz%cgINJX2VZ$}5QgKTh2t6-#_3w!wg3W>0<|NO3l1>8QB3=Sx4<sqJ^szS9VHsDJ zKin#=x;M5QHY`Q4*OjwR%gm1TBcNo5af$HL7{y%0r2mrmaNuf?cA9$m-A1-Yf$i(y zVe$^|G5q|@@OOOl>wLY&!5{)P5NDW)I99Mf(>jvghoWH@%nOzt54?tg=z#LWA<gXL z7JwItqUk2YuYr5`!{V>i9Drs$&A?8gA+@6bGnb=Z7X)TG(lo(lq~I&-*yl58*+)ux zsjEz)HtWhdUqppc%;$wRrYomz*z&bWz(qLW3#Qnsw6L7XC2!Hrf@0EutAwFV0Oihv zbe5|3BwEXnR@+uEq3NWlo!|#r%w%`sj@+zM`RD(cp$x`z;A3$4v>G@t+E|eNL6#y& zO*$dlA`x&=o62n}q@**BG(<1ycP;|r4WG;HCl}K&%pO>YlbqL`*@ySQ!ewAK9C)68 zCfI@mk}{WmXC0f~5q+?l#tR;$NoT!Tp~j-tj!#ZI7MUZCp!I~C!_BlnCL%!Y82qWg z38qE13_8CE^h@5?-j$52-1w6peP&AknfUMBH!gwzsPQLOL}W{;OQ{7k$e$KBNhP@Z zzBA(ar#;wmlk4mlIf;vL$7FvbD0i>aI|xtOuHgIv^Z3nrDup1`#hOBWO`@y=Nx)3; zOQuJ{_9-vvD2;l&duref`r=?G<qGF%lGxp{A1w8KpZherlgzBat~M+G&k>QVeA^~r zvKqvw9LDLv?orZDWQ!={Jgzr3sp$%~YnSTc2<(yoqntd-51#0@0)EMobQW|nyRuXg zCgyP;Y&FFfMfM1oZqtf6U*!^qDa6$_V&C?{O)<PIZ*;Qsbi?_0y*#g%=z68M#<9WH zve+fSB4-_fUBR}>C{AX&s|II*Ix@9IP!PGfQ+@MV|FC@x6iXuqp^mZ{E;L<iREZ;< z8TiWjsBxw`7c$_mr3MyI6fEJbq6GPDpf>}1@Sp{lBN0sP)>I@d-|BUeo$rqIYAW(# z5@H;x!D*KV+>d4D7I^~ae(E|sD_g0$&8tq|qMHCdcey;qu5Dq*Oa9<B87p!))RNva zzXz>}SWG?IcJ|aTe7Xq>`79cx4P%x?<p!izP9FM5fmDOWAxzn^f4~8f2Z&K}Sq>{! zHr=H#f=CYkPr}Lxk~oZ2VMzIFn|&ecBN|y$n?vU1hLOV1p*|QXVkOs6o(5@L|3R1R zTVSF2rg@RT^t;F$4PYf4AHaW)^hS^y<#3ImIQ`#nB&^>IFXI1Wq|>r7(=pL8&>34e zIn!F$n%dDzO9+X`Dv9VQNX2b1AoP5wMRT+$3g32T4AIyM;c%L2#Cl*HPz_PAiG190 zBd@8Ih$onxcug07KXCn3!rxcJ{e<v@tav#kV^G~VzY?@pcLDU|UOz#VRpJrdB(=}3 z2K5VWtt(5CA@D38Rcl|1F!x5bV(+*IVQr@9w`Y15NB(5oxfnmN2X}$!abbNBINiKl zk8Ox8c5@Dby`z0bLt6%Jc$FopZh8W+1-a;M**h`3twSWkJ~+}m5VtSKt;O|lw}QX9 z!h?b^bGqT5sRKlgp9PueaT0sq<Xk!4fT4SYbdD|0vKlhXH?$HHG>FCbHSC82X5@I} zG5fM-pN*dgLBqnQ&UCTs=JS&|0OHmyLnOV9KL1l|t@>%SDUOQ8_ik{<9=Y<~;FL`9 zX*{K0W&5eeZT2_M<q@%FhjtE-4qwfuSx~R&WrP<kw8Pf;sf+`8JS;rSt^Fe^&$Ro; zh)%(eIA77K=~UCdI)CXx!;~lpwC=83T%Ueg^crR__#}kWUlW)f?oJC$1L&Y+sj!mY zf~?Ji4s^vh;iOX<O|D*0y8!0Mks3A;3zXzFKe3Rgv1aZZEYF+N$pQ{iOG*jhRMTQl z-qFUmWAbmPW0{l+Wb$l$Yy7ZgQRG_W0F45w6+!Mj;Bx3Grvzh<&`aj0K;=YGsvI^j zc8VEL6m`JND;2sMB}~eRwk`75Ybsv^W=XsVGgfD3(3hxu#3P4qMM7mhMg>*$h*=<I zi$~av2`SQ^rmA^LO^cwXCOOfPbYQ#SmWKKA-7yh|;H?hn4kRJ+AF<j<!q<OyiC@6~ zX9vBv=PJ|y2LLEW2LK@XzjRO;5oG~k0cC*}buGKYRwUomI(=wsH)!ER`g_}hl}?!? zYwYYRTiKjzDFu>dmQ)R;LP<qekjK$HOv#?ji0B|N2$~4y-K{VjU!X}N+rK~D=ETY? zW;yxSJ|~oq8Gu?xs+1O8#}}KnbC8-l_2Npklf0cLqGO4}mbntchsbPH!9(~7n3E-c z3`BCx@dhCeHKrn~zh`bFxfL)cJy?z*F>cjT0`m@y@?@%~W%yu_4akQn!j-X3OlAgI zUFe{WR=z+da)b~y1}Z@fCNqb^lA+hl8W>vZ1+jL+kIJ?hKqbj{a#Z~UjKAu7x1ZNj zA|p|lCTTZ38<mYoIS5363IuQY<Y!W1W%6`(bi74HZfsQrF-Rgb)<zU__u=<F(-N_X zM}XvCsM7<KIepB8P&6=BZkzD_VP2r1Bc3B142Tba?aG)EMiGi?83Ag545<bgB(s^@ ziGXA{py-9NUlGl=WD-*M_;vi%qp_>cw}(;BOk}t7NJTLg^gFlozQB{Z9Wra&+Ur#N z8*Xk=KH@sVYRyqB*Ad6E3N(eaLGBz4;sj96f~M%%F*h$fB~EOpLozC*y_{r#&WIIM zutW#@?Bp}d039{q(c8ZpGN=D3In3+DcLsLbwbAk|M#xxVXGd4Z2VY0IX-Xt|a7i9~ z+XT_f%B^RFTC=ZPK&2k_CTuKs1r8=W2nPI|Ii_p3_%+NLryNgDeK7se|Mo)v&%y|p zvXRpKz#Lr0-BJV1CC$*9dSnqS+9N|gIYuv~oqivZIjtKLMpJ<LjFrE9Yd`KyS~wkD z=3FF{Eig{R1nZyq9Kzx07~6?JN;MksuAy2qL&(!)^r2uCkMd@PLG;#}X}`MUEiU;Y z5a{uBsgTt>k3s<|UnV~b>G{ycdh99ml+k#Zy(<j3@zVZ9^(7uD%;t7GqEBU^1@VBS zPw(PIGuHfUa4Tq9{B-uW&eV=7Gx7;C!1|PW0{7j&{B4*HIw|E!ID=D)I^KCU*XaE0 zO-M*b@*vZ~EyDe{l$UR7G~BC_M8Wgm95&QYxJQ=+#8nOZm1uBw|5%lZPvFi!pAywI z*QxH|DQm%ebx7~_yg22C)(U8eo|o%-^Im%^e`8~<kWWNX@FsWK`Ex}a=y)<O^&@yD zmpLl3^1GCSW(`@W63q}ZQKge!<4EfCH34&NAx>oI{^C;S@G6&`gD0FIrIwjJPy72s zl^r~6-foZgzC9P2{t$U;o|x!Nt8jn)fO-h@2}>qTS~|~r<0+eE4fvNH0s!4)84Kdb zHO9Mc&KacJ4>iFw|2#K8EnPPQF-!d!QO}b~Fm~1#rnvU_xk9C0AYniTWMX3}&Zj|~ zSs6_O%{=A;e4HrC(mLCEd7Z;xq&Hh;F^>)ORrgizN5+dWFwl)LxMbepb%BcuCX_W= zY*2PWRx}=qa{%JjWCb{|ePF`>rsGcw0==rb8LpBY6*#oRMbc`y{_3#(J9CaKN)@V> zliE-cTv`5^`e9XEff*KSM*59(pDuLSl((%2tip1)CfjGSow=_LVLm08pd;ftx_9E5 zMJZlSRaB$`jt!@hP0c{}qREp;1$jXxSxWz!B~F5GgbrD>;pSxt2hJlC>dVh)DbMUJ zMxQ20#gi^)zqwnbE+gfbI6l)o#Cwf)n9wxnF^D676$E_*0AJu*cLhtL6b&<j_P3L4 ztSq96)DO10{yaz_Bv!w^<q?;*gkuTi+~1Kfgv@sMP^j1$C%2`eMz(I-clFX`_epkh zdq&s9%CXFfrJyu4clQ`}cBA{>qHfiu?ThCB)7g2zQ~AD+|Crgckdaxk_Xs7cvZaj5 zKKAC=l95f6LI@2jBV_MQ_K1*CNw!EKl>Ybme7}8up3_0!|MPi0oj$K#=Y3!Ibzk>& zU-xxi&vRyHCtjCX<Sf-@^GiA4)$_wgKdQR=TwOQ!>K{@F`*KTf<3Y<DUG59d#_hNG zb-^o)jH@2A?@RNetMf<l4CywM{Zq^zKKo2-!yLdoPhjCx^y!4y=Tbb&^6X>1I}S45 zILu@W63xVQT`E_Z;i8z@cjC!D%7mQVWm(E^c{OT4Q)D$JWXEOD|18LV6LF89xMHA` zg78$xrN>_Bi`PyQMT?6s9*<k2h+XA>qG@dPL^A|W>(e^9$%k5MRi{O(rxE<Ps&3XE zDK?j_Bl9?)-QaO3*qZemE>C{IiFIL?Om$gInTq_n|4Xlk`c)0$sB#QM<D;}7`<dn@ zl_C|c*hJ3LG;&e$<qosTq|vd>!D_3MA178>$29LU6c<bmJU??M`_9f<=g@jnd^Bmi z;W<N}nrhO4a?x$pnI4gZ`!>e)W1?FotwCv&A|GAUvv}Isy;s1p*;KMdQeAS>*_@n% z!{|$@y&8QPC((-v>L6?{&x(#Yw>zSO&P()mx?wWzeUumcE@K-#7re2;hZkkvQhM>_ z+(zje?N4_Lv)c+Zj}ehdW-Wf?aZLWucSqCrhr9PMP4UctPlQJzLW-3*n`y|2M)qo- zD?iTg+Qd?m?s!h68cmx^PP;{reA^oN#9AynQFP!#2UEjXQRQDe$Db1Xy4xU<@Y=dv zih8c&l5q&-@y|6q>F_VpEGnP4V>yJqzWG9z=6Oq6KRvJ{BX4ld0YjL%xH`HxIM^co zj2(3@DJZBA_Fhu$?k85};q2+^Ez;y46ngKh-mT1|#NE#KQuC5hJ2!6_-;w8+`}q5W zM2Ce2rwKZG`TEzn-w>bXQR;42d8v7tgH!brfuc&8=IJcqH{G4R%0sGMInz^^C}FMA z6E=2#5Y{?_GZ^keL^HE@arQKHbg;4qM=vfOF0on-QDaPGHD8bIV0AyKVP4lR$>uEa z2Ji4$R-_7o;XKOST$D6Y2{ogi#e~;wn&Wz#kGMB(O%l$#<(*5dSQs~KOn?9R(_#eH zJG%UJ;&Fx0)>vVg&i5XA8RieoxfFBH<SUY8jIyZmnd&?_658sTR;V3r9z^HlC3K%) z@@FERabg~uKvQBPk&ED^Bh+_6l7sTnYqhE8K@xKWJ^@yxc#dL^KS{+qU(*t_+&aG+ zpDUlFA#vPPr0b}$bBbH(3DcgZU#Umc*N3UFua8`tyUrDvfAm|VyhU%bb?;ejn~RZA zbWT4oD`_oc=S|6|ca4MSnP_za_y@SEL;IarPgw6_$~MV*v5KtdW{xSP;P_LCGVhF~ zg$lX_e8{$YNX<Z_!I0%vzw$y&sP_x^_?d!~GY&x#EQD7uZee$Fi%*PEm4-hk!xFll zwG|Q-zCrw!l1mYL^2VrpJ&}Vt%{|xguh}ozo($ah%-`f&Q=kz|Wu<GEG?gYK^8FOG zWw?g42FoL6`b%Gg#3N(mhFm+2ul=ZCtW3shCfZfaY1@*-$`i*cFy&63C7~yX4^qOu zaV)f`|IOD6jhD)5G}Zg``DRoN3LGB1x}`_qKEFvaVv%3RT@Y0HUh8e4fuds+L%GZO zbAceTkE@Pvk=uA3IIho=VO~gX==<~gx38O<(xfw<(?SR(EVs#8Ny94Aq9Z;Sl3pJ+ z9@5+P>sM%T_b1ptit}T16~#}9GThjSV|&UUip^c}`t_Gg=SljV+UgQx!SP>7pRz(R zsSs^Sr`e7?DM&k45UcPoiCE2cNu&CNV-rC_@P@3D4;Qv%+)wZ(LwXXbqMp?NMz`71 zJBl24e?e!NWPX1OCoo}-|K119G8YF&Lt8U9Gh3t`<21++z?kr`>#I^9@ITkk(EI5t zRL$tMedar_fRdzM_(KXD8Sj^@^xyWJT_U%Hwj4K2HBZ7|`noU}%OP_|Q$bE$Q@-Tp z#iF;@%j|ybhL7FMC+N{4xid^gaES?DA#g71fksb)p>IoA0dZ-a#4VoqvQ9X6x5!sL z#1X||QlA+2u}b2f{CLXJKk`0*RHd#W3;$UsmzdJgoYvPVaM5(oYR9IbY?gLaualgs z_P)Qo6CcyvEIKlrU!C~7m@X#6y}NBrF@p09vt?degads|+@d_IR0WPni3JzQA~IKA z0&iYIcD<@Y?xq|6hupVDO!7BxU%O*Gc1q@ZU^|IgSuA+eS&zID-*58kX_tjOTmQfu zmLu{baPPt+5#A*-cYkFUy|QY0L3>?#X)^hX`D4*sznXl*(9asjT<jB>jJ`1IM0T?n zo@}mO+kBkSYKeu39Zqg2&{jZ{y}=+FAe4JO6T9y9L>?S3s6>I(MLg?C+_5a~p(Bfx zA#k7fUBs&xZ}JwItg6_ra^PRQ&u~H9oj|M4^XjZ0ueqQFdz+MR8KsgHu`a)<{K$Dc z5<kYfD~kHk4VCjX(qC?9)<-|MtwIdvyWCqfV*9ygI5a1MtD#W5@oRMfGZ}abLE=%@ zp$*R|AH$^&Sx1>3gx#B<X(`?KjDzcuX?!}kktxuN{e~Vf(ZImuC^3Q2FZ=|$a#zOM z&|KLD1OKV*ah*cUrhE2$S4-n<zL*PDnWrrG5XZ?^onoqz(Rfc+vUMWa@R)+uxqBxY zRVu9Y*1aN+Kec=*)_+ZjvT|b7@k6?#=c)oWSC?+2C|T6a$`p0ek}>IfvExyb%Fi_9 zJ;&tTX70V9NY;!TX&qToz47kky-q9avQ7JwJH6NmxtdEkoW5~s3P+AOzB`l9rFv1@ zAn>gHBN&}OdBf8q?^9BGy)wOr+u201zcAtplClmPrc8venG4Olq%fx_dR*9%K5BTQ zT?h^iR%O}+v@INY3a*%9u}=HS&Uoz>DcouO;OKOPuk9X5>xMFon;1Rev&oMg9yXVL z>c{p7Sm<XHtC0N)BOB`@HgN4{)^f^!I#^?NT(=OPp>i@*s5F$efG4Td-pjS7>+YHH zW#UMaU-;L`cKLnX;t-_5Us{s9Mye=Ad>kj9S+H>{V&HsK#p<iLZY`>|JXVj(@?Kr< z`B>$x^<SM$Kf^xjm@)SBR^BnJugy?kG&93i&Hd@K;x1(rCxmO2d-qO_=mk%LIh($> zkMX`?{TS2OHY_=Fl>Ou>@y^y8Ltn1+rOfjS6*UV57bM3myk}yH&hao)q$9h~psu!} z9^SU~PO&}y^5Dmt(#3b%-)~w<MrQFBM9!3UP=&c~1eMRSO?~Gt2-ZHj?Lw+B6#Pr~ zlVnDYH7Q9uTt9#1i+}(tRxr_v`L)(MHDV02IJdlPI1AZEu%B<#%$H#c!-c3PSjNxa zMNHH;oX1;WR}SZ{hleP>+kgp}y|7gK*kWi_x=Xq?YxyRP?RnGe*gb)G^9&`83vP?2 zRBOb_(%V#3SsJKiC9HR=@8hMp@C1zbVPoFX^z%|ZIewbsnU={59pZczIu<2rwLWa^ znMO(yAM2}gQ!eK_o1atX2v^f{reeIOSren#XulzixQXC8;n}4T))bAXmhegCpm<Fy z=*d-C)6%WPL`r^FTd8Yt6qor6<CUZK71N4my42aI-zoD}*?r7pUE0#pg9|FsX!>Z9 zu?I!iIX?}pl$Q1Gob+Roz1aazu?pt>rSy@0^WL)XxpS=pwJ#E1-0q_Yr@R*zeO-F8 zJ;2^osw1)G9TWd9CAa=Nl3UWneBkGxK3wCKS}b@cDN&z`Ib@v8LR(THnPoyp9VPMk z1#@NbD_r^ajE2e|N=I{8qr`veE)$W?MRj3EMcrVeBI}N&qInX)a7469E4F{<O=K=U z=~nycUr#KX%rCty!0X&iun=duC2_3aN~zc`)4=W|8zGh}yKLR~DHH68<o5UM_Tuhz z(}>XBkjxyND-|d64Oy)@?>aHOo3TWEJ(FNYnpZ!n&#{{ASw1qYIyc^BITk!o5BpBp zI#AUwBxB(6$v}++`woAUGwU&R%*0n!QA7#HBn9*HC5Ngj3ubb+ORoQ9FZvboepCKe z7&wZ0GS(#NV>5CxtK^h>N^lZKMe^{w;j5}SR3UW*&aa*)4Nd&|PWWcwiL!yS(CjH| z=gyL%<*&12n&j{c8S)_vY_e`MYN@??5mq5B`P%UTMkDMYhI}PeCUs)&+Rid5Cun1& zn{)27+h>rIYBa;lqWT#coN`@jFrQpdZVtxoj}F*QYFgh}7fMkG!eBKhXti?R#OTxZ z$h>@9cz#@9ZCy@vA`tEqt%-j^A90(xFPfva-2|b=_9dG_miXd)qwL4Q!57`leHR8v zR3~?EeI`gMJObW0ld(w8kn|qqbDFNLT48tjwhlYFz>sC`W(Q}VmCYAJREwXC?z#M; zJE}ZZw2$`ExvH4D<Bg-Fi}_Ed$b%zk+ZmDqroQo7s?Pd(X4)y)-Qfx1gZmb~Sl>>! zp_0K|y_mP1bdu!j_Rz-2$voDX>85sZtK_gpd_rb8_xhgP8@m+Ab$vIj#j?L^7xxs# z`)47)lHfnfn0>#n-1Kugdh8j)#qrH}uZ3|Iaj{49pBjs^#QZ+`pP02Il^UhP3+h*I z_{kV`ZfSeHmp$t9B>CW%>_Qz5Dt{ar$@v*ti|kywAkrN?Nk&r1idAw~5ht2mdfD9> znvUjtg9Ue)u~S;*Wy}M0ET(nrktEbaEiX-RCgdW0mo=U`hk1wPMltw>MW=uUhVDp_ zn-WLKu@Am!>Qp3skcWLcSIfKlBQHnoeUB$2qsPv05pmk_V}36TIub@#V*jOQfa|ru zD2?P3xa(lWAQ3J0?MF{}RaB)WRGx6<I;qv45*#GP#;PAyzV@}Hfae`E`$?Vti-J7K z3Lg`@?ytYT`7)jht6Xv<`Nv3tw*v*YMU{crOY=zm5z_UxY7Mfb{=)mkA0$*WG1LXE za|mX4j=!c4so>OiNgu6Hm>)_U#(v=8PuO^|?UfHroKS_`R<`hSMf=;kq9(hAb3;w@ zER^Y(R5&M+r}4X^Y*SA!UhZ6E$#we?UVWj%&1r$t^Ug!d9G<1Sedieq^c8H5sFcQF z59wkB-g|1XT|7X{OEw?&){l*(#^{AeU(x7MdVB(d0h_WYnUyg-r;J9%?|Cz=5soou zPb$q(Qm?yP*D$ZqWl3A-vY*$WEb-=f-Er@%Wy<qMI4#&^Qpd-;JMZ$boRVA?jOUO% zJ77q56X)iY%fmXHm9N}$hmYRp^6WT!;*wFu8%OdmCEf4bc=ty{DnB}wG&p|4$#>iN zUU8ghVk@c~Yv80?n%YE@+2a!J%mpJXVv<E$3|Erg?oV-MbY#9m2_l}J=Z<L|X?<=~ z{wcKWMDK&6>W?zZrG+d-<1)_~u#KL+E;P+Mfs12MJ7D)y{F+T5pIg{9FFm0|p{0EG z%`~gBofqQV!4rnBDjYsenK&vnQ6yY)p`*WGpf*dactTuZq^j2-{#Z|da9mOO`<n#) zJAG_ApHC2Z`Bb^5{fw;WVix>1v={*U!YLuGUdsRNhIj}#>=Sd#x}eC*5lXEuK4c%` ztk!o<PI$cADqpnK82lDD<`Qx6Q~r%(ByuSqqF74k`n;?<IVJm8-<ZvR3SX{LE+6?Z z>7bT@p;HYrT(G{)Do)@NgczGTR>(48@*;z|JSI@8Lwl*5?Ad4_jZVNDnyU}H2kq~4 zg?;OjqQ|UDS&jEuULdQT{2Z0gpzjtx^pf#8!_<s&w>On_iu-2q{6`WPEL}ul`t5f* z3g)`UdAys~wyxedHvU*4LGe+ncWY_k_%o*`Eg#R7&MY{`78B}=KhMXs`Ji6=^knic zOFC(>7`*tmN2pky8E0S=@Fkc{avXcS{7NWLZ_&e_lINLwy+D{KnIGjGb^UCHd~6X3 zPrGNJ#9E3b)p#+1j>0JU1qOxK`(_JcX{F7#1jO*dr}#+tY{wQ(BK&Zl#o*j&ynR;j z>H3{4^G1d1)l%OGaP2-`k6cNPEB-{3Ykxw{p#IJK%eUGcMr~(QwiA1W#3M2+1zwYD zmYwg)7V>_B(=1KrgR3ppLn(SX5UbbYvO$e_<wBxY*@LO|2x^?dbCwTl#KOMmdZt}^ zb+)Rtzg35*-ylL8GsN(5aQ++D(GtHl<)f{`?pdso&O;G5b5!D!l;fmg0?&8GzB=B) zy>P?FyT0aafDL2%cT9pKh4L!*qH_uR3hSR1nny1i-TvgD=9O5WU@+2ceIq}>yWR(` zkJ}lW$$H;50=L#}v*OEKcr8u(^mL(Bx_{r&0##MAB({ex^)4-|&MU)>62;MV`;?Gn zgn6*QLS7EGm;1xBMPCA#&oOM%=Wh5#aT}-glXqz{+^rwLJ@q)gw|nBrx74P<!qctV zt1?(7%HHFtOx%_2i2>Xbybd4VzSeXtt(*?@v-v<+E1ppu{&aY?Hzq>%#f5^@o=Ok# zE?m;~<%-p0<(%T&iXptmEZA77IPd%2JPL<Ord~B#$l=I7Bz?1#N=;67_JdhXde<rQ ziioE~Dvsh_m;pP53;f(Kv-v{n{9HdG)TyajQUb%sB(1)ia=06(4Pj7QEoKw8Wk{qH z;@gLPBeK|_t=CvO85nC%?q<WVH4vkbX6~!a8=iOJxmBdCyqEX8;Vcz#fxPf`g*N#f zJCiX*T`t?T7N*@S#U>E}!p2#9f^-Yb=v2Ggn{Q1!y-wCytbTh-sh_JuDB4Xfu2*{2 z^vEDC25hdyXc6Z^?QuN%<tu(XDWaK@5qC+0y2)zbyqy)gm6bER#D)lyzE3+56<!ah z)rTw0-fQ)?aS3A@@R*DksJ?C>)(N+j82t7rMTGU9&Jm0Jdx%^)BB8UD{I4QZU3M4n zc7E+j%ZTs3d$;|x=a=kISCv;Lc-ZCJ6{ZbQhtZVBRP6CX{rY3VOk#--UX$MVmK6Dg zw2NBU#^IY~a^NOq;LeTKq(XWva;zD9vhz>eAJsqc2-N2+WmM=Se49EH_O*okLyDSS z5d8+_(8;RWcVjBUjuQ4_akK_cj>2;TPy8@Iz>J8^`4Yd{bv_BF_btyp@t9!bE<^tK zvNeY%;ab0O=IN8dDUTb!V6Ryh<PaHhyN5Teo_VE2dvD@tRMx!-o{7(SQd1$C1SG7y zoC)_+>#JO&mC4;qT;=NPBXHGn7PPL+y2$;!WSuH9GvKT}77{N^m5mX)apl$+&-r&( zCX#hDLPZjJuI|)ZQ_%fT#{9Key`kTaL6^-UDk`MVk#@R3WNhaRX1jMHk5cQB_hUMv zRVteE>UJ75zp$5da)f?lU=4iOREc&P(j%d=Sv-3^;Jk>2PD0^uS5SdfEw`OGR)(z4 zV0JzGH+MLOwfjVPXR+$jkHsH3@7>m_nhhW8Q`ZrAg4vlb(*9N7x32X&AIC1G%ZF{P z&E;42k`g-SF%{x27A>E7<1Xn?E-7-QDgBnh+bYGE9xN^ijo+hVrdhWaR!)qx+oaW# z@W6R%bH|w{ln2O?PpOu<d(#9&V8y@Nw3B0vg7?@ElVZ@|`qclr+Y-`Nnsz-IQ3~%> zexjeDUndmCl&nxunmd$f@Q5j<Fi=Dc8~0|+o!Q~_q$aMT(MEUt?!~J0Zr^+0XQubm z>0$ARBxj^~+*Pr+r_yAiU#!4Sd_A$7Y{W)8xW)BkdRt#yQ6h;XZhXbwz*o!RmEXhJ zq`uGdS2B{CpAi!_q!vWHKNDx~B;TXZa`aI`bo#1P<rNb_g%ZBcx=cfQj`wJ*rHL$z zc`7bVvs!CS#>|#mhZCHV(^n6^nw(~&HaVB5L)xcSz;;QUGJEOKBd3e4>tcBLMvP8| ziT2nCr8}n73|9ljLKymw=?#otWGrvH)uJn`Pt4C4TswhJM<FY%pIRrMBkjp<HaGrK zsIsb9PJQS|{R7LidbL*#=T~k{8mmpS5b?jp)pm*2VVh&mA(eITpbCjp%##th$j!cv z2ws14)Y|59=A~wiHo7x)JhOJ~J0|02tADUR^Sn|no^{y;oJz3i$j>;!W@?(uN<%*5 zE7A)JOW2dYHvFF8L6q=BotBzyS!a6aiOmh=(l9Qp;-fWP-bUJTLipsL>A%Vqr_|YY zUJYXRmb>|;jBou2t<IEZhNBYP_TFM#W4UHo(_|~Dce@Vj7xT8y6pt~2b`2gjrM_5A z(wu&~k|Ahr9UD-6&2gne!Tc&7!}K*->nu(Qo#E+iqB4;x|I1VNL*Hqg97zyOz<RTW zr73J7AwHMb6Qa{Vvyq|6y1GPxV@&h}al=Oh#++)>)y?y>C9JVFJ5>RbikP`+T*NVY zYu-rfso_(*DXb7{<Msti#LdOZYs2B&*J(bAe^F#B(~7S%FgX_cP||j6TJQD6v9;S9 zr)Ext#?N9A7YpAZI*y6K_N;8cD{PwGVcW0Akng3AkDKP`mE<T+I`Pjul5fvHJ`x|$ z%~yOp<;6#wc`M(1otz8sX7-=DSJr0jHI<(qVZTO}@>Hli`Epg4;yt#6xEr>M8e==M zOEqca(fwt4MZV`58-i}aC&i9CWz<xr=kM;uBySFX#W0&%ZqX8XFk+(^M+ToWAm=sU zvRYHt`i}F9_~soU3m*GBtD%trm+PICE;z+6Qb$y%@Q)Z(1#`_Ku5v}+;tcfFY!neX zRU20IOl2p8Q!R1QWz?7yHe-7nuS48In`ml`H^o%g<VNAWoVNN8Lc&`-E~1&N*k2w~ z)5Rve-eQP@y*3S1CiK7dIYCk`uV+C@t{!)1F8NJ3+)IECmT|`%<CHkvihIA}0~zZ_ zGS?zBIIwtI)RxbhVh^3k(H;);3DmE2c&bc%WIM$#z26<4z8c+z**xbFjy=+RDO0&D ztU7R^<V@@gE}O=W`$@N|JseMT{0#Jox-<4<T6a{6@w?ut1?v=<KycUDMQ;^xR)Ga~ z<<B>IXq$D$WX>7ok8b@CZK|NMqe#x5`)r%vpS!_lY1cOyR>j1|$19S*SWw8tdfGRT z=E3)A)!H87RalYyr(66c5~KGzw{EV)aZ{C+n{V57^=THK^)gN9&N)j#wu-+oM)3ap z;tMBtE&675++4NO@Fu_djb<lqxB%A!i6XuX`?lDvozu(r&+p2=7~{Wmv&=WnQ$n#u ziov^7@qW(BkHV+!Wz5ZWQmBtcBn>q>lPu(=U!J)x?(0$z&GG&^cCGSE;i;GTZ7kzf zWwe9!FA%dy3We8aCo0{T)2H+ZI>IJ6wMrWv_s+jc#V&K>Da_37uI-NYj5z<|vBNR) zDdQI|Gzdi|uG}$0*En}QWkKhek#&}P`A<$@Nh>b$ajq!C&hpjJ8s^JT30;h56fcz0 z5Uv|>yj5}a<SpCHSq?Iyas8KCSLbE}m+>d@gQqIosm_E<D5~ngQ#lc)Yd1AcxNQrJ zM=?=nr@QuEwN_mlT8pwJBl`JVU6*oqy5hqE(<hbS9iG%V`)fJJeNGD|@Vl2(wUUvX zU?2Q?Q71^=2<txoDuUilU&=dd1d|Z)R-gAdvv<{5)A!dMOg&v(^NOB3owm$cO~<`{ z();K_bEf55N1=ICG}SO-tj!tIpZkd0!>K@v4-y}!I2c_{mAo~5Y~@Xo9*+I>ityPK zs+&YXzF(zUaeCWXKc9Z!)Z!>1AS|Q`Gny)py>B8W%h%RidL*VQ=30?M7;$)vG|tNR zd<3&pot)O)EB4-}8y}Xi`zky5zZMk_hYKVohcFZ`N||`-**VhxxEfvSeAAPZ{iTA= z1P>3HzPwY(nY63V5K+|l4~@l_J`&dEf3qn=3=tDG&Sm<oc3hSgd#@obVe-6iCO8OJ zUPWj@Vrby5=NXD4Rv&^B)~*zg1U4I7;UH4*_4rtK<wt*sr<&-MD0mR1LyV>d=>)7J z^ku64+j6YT_6m;Eh;*Hj3m@l7x4D)=2G&0I^`^YfEG8f>tK!<#Fx8=Kb9zueUzF1% z*>9>;D5-no{Hd95)o&TU2*m%SJ4ZTU5u*0=uE2`i`^x5P-UEwpC-oWSEM37j+O<Yb z+3fE#!@`}6v5f1Zzs)Djaa(Pd+E`N*#7!kSOI41WTNAEuDxA3|mh<40L((wu3$EzF zRYcS;>V{N?PqUtmy(xIN$HEo@`07Q<;Qp0*kC(hIv*07{UK!_KC{50s^sT01@r`M~ zACD*3cOu2DNk-^CBorBSxTBx*i2Fm=iu)^0`ZMb>Y0UhMU%QC|eN|>_Uj|+-#?891 zzShyiJ<LBCxjJ{It%{OfAlV>vM0sP&*caw-ceed*3%kg=(e~&{Se<7r9a-Y}9Zu$p zVxC9vA0>)+DXu*u>t5!;%x0+i9;7XDzl`d~ds3}MzNb1CQ}&b$)8~m+v%H2&80uXt z;-zh*bRXS`Jnu#kcrlIp`KGNL6C-7CKHIyu%%|{PCqE?RSP0G?<-akc)U#8ApQ1}? znRdJK+mRF9rW?g?CGmfq&dqNZ*j1IX$iY&Tx41!ZAuF@KBslFcVNoCM$dZj|TU@!f zQ=b5~&PtR|?xo$QmQ9vFN0ntCK6Ju~aZZ&_J{2d^Mx|%$80qtd#LFbPI^p6f@1+&a zHIJ=OxHN^%=1I6^4|_(LNZL1<uv3TyDT3j0X2-Opfug5fRS6ihr#O#4&=11)Su))X zk{<N@RNI_McgE^m+0kinDkuJ?#>VSSZyto^^~!v-ihsV)y`gW8Eh@g2&h<6tjrydK z_Hy=*4-0io7EahH$~z2!M<P@%q?<0EDNcK&@69XV%2hVse{RrXphBVQ-3_VL8*{gw z-xqY={Y)jrby8e7?Ad&U-$kvEz>s9tA`9{J?5>q`868Io?w2N5Tn(&bUgZ-?H!PW0 z!(B^d-;9pOBh}ed0}oOqMBa)di+dTOKQ#7XGP%0gRSS0%(dZG$CXxC)(R?Yy#)mJ( z{i?&pb+?f_YJEJHLoI@Z@;M%rG<qE$DiwcYR4;kweN;q&<FauL!IX0TrsUO?8=t>n zh#wc`OQXWk3o43=98!E%Nijf1yf(xz#x)UpcJP6HzBR!wsZr{X4>~`4V!I}&vT>Fd zv}_vn?u(Uj@SAtUR}yvbbjJC`KOJ~R!FnrhPCv(R-WI&UdHG9#<*dfD25ZCHTO_%J ziA2$YGU8=<ZFifVU;l_Jvs-LX?LGf7IuGkkv)Wg4!&m*syKmp1T(#mRbCY#xj(Ji) z$wA1i#hAC1y8D7}#e|-O`Fn$6#hEIGJV}YIQng5SJo}N8YdshjOK;?cl{r;ba;++V z`NELMH+EcV!s(iO9;u1t>4GkEwc{mMJ<izJ-09m;RtaXe*0CaZsYKFTu=4uHfLURx z+4iv{6Y0+NmEq=HtPI}@){P>SIun^Ci;CT!ZX@b~KRbsCQcbsTyp5&XzpcbKPLlo1 zzEjZKS7*eqB=o)N()%|?SM>D~-X@y|G#eA$Ck`WiY<*{fSZkhr^<0<E$@K_nw}wgF z*Nof&3=ZQ41Y@H28Qv2WU-lL6y&?GCyS!|*`8bJkvRW?R#<!ISqkK}mTek=!TdO*k zTj{9rwLwJ4*^yUqOhqKszJilM-mtOBFZaWserHJ8yDvYF@jsq8qcG(}OW;OKlyv5# zc#13H)8nE~YkdK%8Cb<OA2`=9l`DR;3*Kn@$tQHbsI-b#RZxLNy<PGdP5Q$V`qvm; zN2B7e__&jt3m1&O@P1o*vhc^-Px*{wKNh?5S3dqqEXikd{1Kj<zjEbAVo?5y^UbQ| zSoT6Hk#&({>B|joqY%8DcknG*&NR1&(#LyY6jksS%lO!O*K`~BmM^$wWBDm3oi?K6 zs#<AI$K>kAes~mi#6O8BJB`G8%!EV!>?BRK>*czey^B@!zr5NPtLA=rHGx0tOllSx z8u%ubw|N`*beFbyclkyZwlQ|=^yjyEf8>wOZu7R}>&}3G%^#UY{;B)%pTB?DKG#sE z_kNrAJKw~l*YK<Ca4FA_TcO?ak;Yvlkz}`)WUi$5YC1j($s@aL5m0rM6&|B?=7^1t zY^_MKbRlEv+Q4e$D;}<@2U!m8@)~*C7f9XjBM@BqEaM{!0X*qbT4ir<l?dV8u5(|d z#v-W}mYx4@eSWq7<O*9;DsS22VH-0+2N^c~jt6(uwQ6lMiNCE2jB(l5Ri8qP)f9&G znBO1z$|kZobyHUS=9efLCXcIUG=6;2*3EWcTjg9D&S-Ye82Av!Pm;+dB&WOLKZfn8 zp-OVP6MOs7Gxy1H29mbvnJv!3tu=!md{@QP$KyZ4*|Wb6#lyLc1`|05Orw)_YA%1m z)_eQd_H<D7SAs0%KrJo<*B#fs;}?3hpTBH`X<kdi(g+W-(mG))m9!yps^hCF!7|r) z_cgz#Ww%rl1(w#&j%;QWcZ^>+mjCKAHV5V4E2|D6f|_)yi;l;m?T?B(YIrV6$B>ZS z?B0}CRq0<PN-DJe9PQtZbD7gp@K$&aChfx;_Qt_5__M&&lYE9;cr-upwp^9Giae6X zERN$nnr9lh=HkxysXVdztmn!3#ZQm2`yLaTxh{y}Vct6Oy+m~I6RY3(A9hEAHXmI+ z`!jdB;sOi@Kb<UFS=BMSca>*BaN~<IM}4oXM{>waPQG^kj44qyN&VLK$Taq!ahIw~ z+{t#r3lQuI_hAceC0-J1HEaQnL|+#w=<Y~(g%ml%BqZ6-DvORFvOL|WRt1foyVqXn zNXd#aKDYFon50^Ic_nexjKJJ6qz_*6r821NO-fJ7Su%Q>QbNVmEEoQs;GS#rTEh!) zqhD|5w+O{ts#><(Oh&rPpQ)A*s?KET<p)P(n%FhzcZG-EJC7mk7g1pDEbz__?^|cp zR9#^m!+3&F(adp4cdD4y(?h!7Fk}`zryntz#^!m*Q}&!cgG)GO$F#JlIo5{3UPE|F zken!G&EJOfZLS=4rP;Hp9>&O~+H|?o%cC!d7Hw|_jNE|l^pqDyy`a$)AIqJy`2Iz? z+?4&b7e~cFlxo-G@c<5$H0n21xsyZzweE9#&!oRbosW6P^CMPijA2HdEn?+!{dh&N zd#W=2RqU9_mau{Rt)Ii`t&BZ8r-ME&Ot#zI&ntzqtgoj}tc@0bzanRvF0dGEOA;mU zWr%ZmGkmk{+~two&F!-3Qgg<-?v{6BG&a{hrE6DV)$d-y8WWec$b`qug}cXx(-WvG z`8wjJ@}70OT~qowH8^xc?5xU7^1Q0V0P*%XAw9-Wp*bNUA5w*|`<QFa<<o6;&LXsf z2834AdG+riNs5TfX9$;{Y_-rN3D&9#9W^FSQAxQb-|8%2<*uVub-&`x?8w;1QmtRx zRLYE!T257~yjP#cL}_|<CVH!!_QU_?LV*3kcQ&*k#BBW@PF;LM;%dmy;?RV?Ub=g2 z;?XvElI|^q9Rn$@=bj<{m)?DN<-;$Jooa(KYBc9P$alNDD@(P6muT&2(MVc@i(02} zbO_Ojj;rM=0guN5PK{)4Z<>6}6Lm2({HQ%jFGh4)+35L94y(DPXY<kV)@LHu7H?)v zY-9wf6Of*x$`36QTYqJhY8X-P?BT}{9wz8j{C$jHX}P4YqC=xXFk4X|fUoos&#=^6 zGNvDI9@ZVNG$0z8=@GjDUd&@R<%1n4ckUsZ)1pOpacRfTxl|g(N8KVvYuqh-jU;3~ z)kU@|IhP6%MZQwv=%r=**1^nB*1$2e85B9Gcjd_ikxy2)N8aOY;cR_5I&CL$oEiHQ zTv%pZCh@W!Jxkk20{dt+Lm}?@Ik{Ws6;`;HPk6hLeJ2^pTfBJ<OK(EkYHl-H1te6D z%h)YwsVmaVeQuNqpcR)K3-qTOJdLk6g!Mu7{j%h`_vm>FhtrJ}1~^}_l^zMEm~?yK z<4=X_-pUP%FI9CAZ(}B!D7?$)Xneafy)ceoB%YngH{g~8zdMta+9<)5^3Cl_g&k2D zrd4+&nipyqJ`}iisyM!wxm|#PPk}RO^lO*$*T$nPW^9Qm>b6Tg<MtOrii_%wDqRd? zWvcf$6DtN+onSRBTY3JjGr;|#TdPPOk#^l`bn!cVPHV%XgiCrWdQYu<g8F(?<Vch? zM`W_!-&M(oWlC?&6&YFy8U!o;ZmDng5@VC!@PK16MF!TCaHjkGP}p7Yiu6{t6hZ<H z=AMRQS}ISq@QN;deWF0KQ51=ISLyq+DL%l5JZWrM-Xtcx_^I)I>~@cgYtg)!3%Qih zZ8H}(W%$1be0!z-&iXT5N7C53Rhed9VU}ZZSxtadNxs}5J!NCB`y<~q%y(5ONiW{t zU3i~Wb+R^Kds66(r<c@8ADeLLj9b4(v55@%tE5(DZg8=GezN{1{8(=DSYGW*J==E} z)3Dg(D7^?%JXXc`$zHW)`EMJ2@QL4IH(Hj>b_diakSBL%JSvlFj?pfNc2=3JvUE?a zV5(-O!;~}Vc-&hTAYbgsfEhei+LgSc#&P|FeV0wiaW;#2PDA$%&-y99)qd|{ZCk#^ zF_Tq?K8JdTXpbVFG__x>1j1a4ONJwT$&X9oE|TIoMS;z%3$0-2%!%9ivL3P2<Ow0S zJ*P|Se!Ur@?)*u0!-P2e3DE+dBhA>m8+w-bu@QV%5R1HGez7>VZ!Hw1hK^@Vwh&qI zRa~{>hyC1b;7KuSsk^($)XI94J23Y8gUmPQSmit>7}tf>7CKeNeV)=^vQLesC}FOP z-dW30-v-YG+zdCr*+NrZT4GPVMSy28b)w!0Q@T~@$n*$Ff!XZB>5PhO;;5VPro`Q9 zyIJQ_j$=BL8#}vjS93%WJ^QL_!E}N!Eo#J{A~!eK@$E$!9j5*nv!x$AwXFl}cSdb@ z7kxoR76#@~tfQd%3J->?$qM!{X1E3ZFCN@9;QoE3`6K^^d_>39#R}A2Iy#%d%}mYg z;by#!E|z;Ko#3q$S-b;=L3l9ODtMNH?l%H_rui3xKMnuI7+M;`ZT3FmhYAW~`qst^ zzJe^Rgo2#G6N9KA2RAckXDd@6k|!z%=WGA>NCfCp76$A%fc?JG{6_)E(Z<5i*$m;} z>I^qS93&6&YoOZmp9@)u`uj@rf8_HA#?8#$)WP{6T<}-p!OIjdn2!+*#`K#7KGXas z_Qe@HI+|KJBj4SD+DF-TCvjI$hdK{X$cHI^UupifclQ&{%gWIa4a&jkY2YCE{x${- zCi0sDKGXc^llDVd**Q8myVzQp{GBROM#kA)z{6k<$zd>2NE338{--94O^qGFqoU|E z!hhN4*>TWD3DAl#qz%F+|5F=q2Rl0ldo+qFvq`sf2M@5u{LzA2`v2O3qp=H`7GAAd zl7)j|Z~?7|LHZ#5{C{e}3MlEHqG>dZr1A<poC1o<AVyWxiJbqb5nD40W4I@p7I1vd zQQCnPcuD{BqMF}5N%Pk%_+MHuHi4s|f0l3k76Is=|B#=!<bR<%n;Dy;HzhwjczP5V zf}?~mn9y(G!DpKPLdE~m0s>4ETXY@@$^7kFPD2`Kui38wYh!0)xWhpnM(`9<Au)KW zjr$l3#txy9*B(NJJJ`E`hp^FT8$2N9-b)69b%Hs?0fE9>4uP7x+QauV!l^9Y_H0UE zgi<gV4+QJ^<`67W(1X-q+>!1o3y@d9%@0A_FYJf5b8t2@{CCnEM3-ResYwZifww4N z{<Bj3ZXnHn_iyRQ#?WXw5+>W@M+Ji|T!g{+eq+IBn*R&}19jQ@?|OqGH(02x9L>;q z#|t0eC(MCoi3MhdTws4+Y5qmP;h?OE|Ajk(1>4xd%H9I#!`Q^Z73>wzh<z+C=J7Xx z`vT}(zp>ym%^x25H)Jb&EA(JGP6>D@sET<H<b|5Z<2!!=wllW(w6(H#^*|$YvWoyM zKbR@BU_FAO5s&@`?TWD756%B<Eyf6_A|40$KZrU$Kl=+b!o}GY?&1mp6f|P*J}Jov z0E-VlGYrNFVJD^^&bBjlwn6XjZl2U7+`@&yOh9-7wLH^;!@168POetYW_I9_7j#04 z#H`}Z(ZXOUuBf`sE;}5Ka0Di8ZiQa%N_;y+BpAXgXHgyA#K7Tb7h?-_^2&Uj6Y2qj zX9=7h)HlDFJ{<Z_#EfR>2n7k#SHN<pcm{Ro8W#?yf>;+}g*GNpRWdQs2Mb{vc+MU= z`?f$lx6i!xbTkIMf9CbRvyTbe*h&cx1eYL!hT2*x9_FE7W4H^D7oB>;KAGK`1+zL- z5OqBfAU~YDZ)_Hgbqa9_teq!huu#@ML#DsMqV>owvcw!cV7^@d%7wa#rHR9#W*%@e z$NkjsF4Dzi4h)##Lsa$R%pZ=nG_!R?KPAMD(iP%@A;X8Gaz&0|9Xf2l?YP>aoyCLg z8xnfJ&Qw4c05yl(yoYmL%n&ZX-q6g8#jVpseL%%`z*K{B*`*HWy4qX89nkIpc`okS zeg+;s7I+?LEF^vLFSuaei$>Tiy_YIdK)GYrP~$>p^~0g2R>l_2#&!n<7jXr(-Ju}x z^aA@-CWwRoWr^AVh=NewnS;7V6sVZXdkb{%5X6HZuK4##^KY@m+Vf!LK@ySVQYb}$ zZ@vXL%fAHV>i!yRQvUC;F+M|6Gi08?7-{f^?#9mc=*PP`Rq)XQh(U^hT+mH^iYt@{ zd4lrK4RF>o{A_%nDqWx|ux$N%rTI5_KtUh~M>Ce9<bD+dKoCaY>Y>SxZSOz6|DU}s z8cNO8??t*`wSNXkP>RGY6v_cRvbC4Vem6l6z~%@BV&Z?VH2+t=Pzu;KTA~r-*qHAf zP-qET2R9Vp>IVgY#TwNsBVR4r@P0L{1$g_H^dKnuw|(R==lVkc#?Ej{D>pMk<T{5U zh&^KZD!V|}MI7KJyun<C>f?Dhgk$1rWov3^XXavzLOGhFcXd73%j#AnQVa|ju-$*J zH2>*%2nB9y#UmuhYvy6L*Y+s@!o;y>3?~76lMNLS%Z9zzZjlI4VN?WCC$Xi^)e?6A zf(8?%FWohNAdH>u{-mJx1!||s6*wq@pp$}2=|oQ|7}gSC>(EK8d;xdw_rd%_H!8@U zSfzN*1b_+W4U`Gh=ZQ<G43Nh{XCQF`EO&XphzeYW!9b$#-wXHwbtu9L0Y~QMQ1b%F zH-NoA<?Ry!0!)IJsB>1t5*32F7e)5tS*z1pHqgUkFz1i{D+1C=m*OGc2dP1aKaxa9 z0{3?@2O?nSap3FFZoEo@5`cHLM-y`)A(Lg-lE#4Bzz0(eI;8k%5Qv4Xg9(ax9|N{Y zw)KOf7p-|8&4zy86`grg0>lVO&bJ7pd7nZxZz{1Pd#%C(ApSH=WG}QglP_KR0T8sP z<~`W=2Li2mqxJ==3(amk6hY9LcYXA&(?`M9V-<vi&;hx89e?llt?Usl#<sR*&L|2+ zc17??8%-jZBiz6?pmvdH1cBHZgOmiS14R;C^6@+=fe-fqc_ru!F*kt{94wGKVl+Z9 zDD<ofgGpu#B!CK$YYIVt<f4rk>hwSgL3BlyJR8J8{w=6>MPUmiAly(BW61A2+A&k9 zAv-{X>U@_TK)!EpY-ff5yZb*jnMlfJNss?W5ba)lgt|gICO|0vNe_UuiM^>A>Lwcr ziqh_r_XGB|4sPgL5ZML=c?t=G!2ZvaD3WqHc_}j$Y@CS1QAbAh6@-E?wl_6#Kqts+ z3dWpgKnP?E1J<{HuQdOoBTxj~*~-y{>9nbt8walo$ldK-Rgl7D2^H5`gYSof8|sX| zpd+DW;38{rfwATRV}(XQ(cpMuPek?K;PxM<j?N`tDpWBs1A^QIH`Hb?j6p!?caO;a z=ryeQ3;}2Az=Rq%OhOUvmS*7je`pkj1T4LEa&QHm=>c;GdJHlB2_l0#uo4G%gdxJ! z5qWZef<m4n>9SJ{$O6=HfMNz+`hBJOKbVD}{_iB{pun|ZM${W@RAGX^QJ?(H0-tIA z$L9CN!5x5y*>~&uiAcS$A0U!|l&lb>(c-?ygOZ^7JCYZI0cZu>ryxM*rG0^RAPbBz zL_1%QYHX+D%{T?7Td4*rQ)+pCCU7W7qSc@N70C>)?=*rFz+eerT%fwlz#-UcvU`T+ zfItz6OiJZTxlaaz6@h6DMXHePhctmZIvyb9x3`8fvH~zzei`akg@t)P<Uzg8&FH6% z0TYY*0;=0c)7+P5XNu0WA5)MQ06XLa0RtmsoE<IqB{|reTcNHqNX_-<;>q{{56{Ym zI_323_lNzF--yGTzIr*cIx`x`BqE8L>Z0-97v*UI=JG*$Gt9Vj(iQX)xotcF>FsjV zepFL46IXPdz4eYPaSJSI#$ZnYbqXob`?Jsn!bshX9HAwz2ZpQzMgfX@^I%_`l{31y z8i}JSf2Ch51cSY9LLG{s)ctV?bl%VOm+m$tFcBOO2SH7w=k<Olv{5cnE~2L#qZB}6 zcp#WyfsDY3(S2e21iVOIM3`km4wwn93aFFSab`cBxv@Rm)6l{Uygde8f47>5?eBw; zcmz5N717|wzDVGn_8SU*t!*Pd5GEi*P)Ana2;n|1${g@)L6rlV8JjPKy<QGh4`iAG z8Zx9(?T52<Kxe^UMIw2_fvpv~p!(x`$M+-I0e5`n08d9KdQaa3<e^rsqmGB6<Uz~> zkZ1hd;%@>|83H$SZNt{u59#PBB#uO)J<86OBY-<$z+k>Wi%?+0LBM~yjTT76M@el5 zX2>02*ig5E(AiHy5aha}JIPm?>};b20o=VysMbfXzc0%ZY;5=O$pdo2HPXQP&her0 z+z|WmkjI#YNE1Y3enrLK#qI#dJS~N4H0uHT@j$rfagbZ)hn+ir85j-IMO0_i8n-X= z&nyqpAJo&QB3Qw>ORyknno_f1KNR{P6iLg)rDI$MTR=asYvO=-tD=TOXdvTgY6WtR z=yXWsYOBcv4A2=EAQU_MYCkNnW^in1x?fyLQLudVin?}c1VE|*i9z@Oz0&;EIu6B} zgZ!_VyMwdM{_&gfEzP-?fE@(1aq3?>GH&JQK8$aIEVe>pPEnOxU0z`7@PZvW^pJ>g z@UNJLrml9VnGEF6r4MEgkb^iR6r>_JA;M0L{vFs3VTDFudqs7MQZPTgv{1Q{yMM=Z zcC<so)lZ%wkq1hU0|$n@5P8plP4k|;*PcN3w@v(`Ttg81ATtqY*mvfcH5<Xeje>;| zI&kgmhq95`P&CYLnfCJ6AYF9=I6UaU_457|(-5RL(G6Uh@JC`|;Ff*8P!+r=_IKbv zt3{9zWu1-PLlvOltn;Xo?);6v<2s^dMv!(k5_pGi2k3SI=oUI|ukHR0i}+`2kGhRU zvU%35*4zR6IPka7aieuTj19LmgWI4PH;3^4Vht=XW+1|WGKahmW!jn<qg%7=C0ALk zL3F4L0#0^_?OORB%0#ztA;+uy%xC#pU|cJ%f9wFF4uk$TBZsE@^bg77Z-efSf$oD$ z(!Up|D9rmys-dazA4dbo(fVq}FsT4G1RyAefxX_p7bwjt_*=A@g#}1jnLD77JnZVc z*=w+9q=P2-|AiyH@2!%*#ar%MS4M|l{Q5aax2!Rt7U86p{Vg5+e17`0<nstvmF|Lg z6)Ja3!{3tkpCTu!&N(>(tvm)TK;2Mz^I>!lB#P}DB+~lD4tRrj?i;WY=o;<RdKlQ* z%mS=-f8>MzaTgng+xLL0IH`;}{e%V&!y@)sLzUQfLp#9O(SbA<bo${f9L98Yv~@5> z=iiYQ26Xz*1&wK`zd@k~*B2vGaq>-^SPy}Jpaq+G=KnI0A8Gzt=vfZVp#0Iy)DSFt zC^G?xd-2Oyg;W*>v%89c(qC>YV#reYU(sAV9YJE;5P2;9&%p_*uSG)lRxLx18T}N{ zLiZ_I4la0vAY%f@mB4L5y#S8}TF(E~D<h8_k-lZW7!PSbC3a+spb7(a0n8?7j2G$n z*Z2cUmDgW9KjH`G(=2F11Ts`Dh`;6^oU1(Qed4%0aKUVUIE06;|3ee|Z0@2Z9IR}B zi&Q5>Erj6o{A>C_nbAavk>PQmoueT50qfnr7pR5w`RfM$t>;8BZ{!dM-Rt3P149r1 zdI60nDE<Gs0W`<gNH&H?H#G*(y&Di7%06}bui0qIagj4<Z?QhqG!emvun&Fc0m<K6 zsSj0re8}JP_pyCs1AEK#p;K2c^6wi!2IYU$!y)l|YxJS`=DYtB{?Dui62G@VU-)0E zL^|2<2Y-*>&oGfK?5)m+cECLD?^{4ynvcZqEzO69X7NdXjsLSQABo;umk*U({qbL; z(HG?-@q3H%p&<@O`d{PGR^%h;$gu?e=AY~2e?O5QY5q9R(b5kt$44UfmgBQQkV*$4 z(bwW5iO(^~{o28y$tz%b&}~IR!9haq=V_5leNvW=EJ_$G8KjyxAyQ^E9K<}R3LnX3 zzAWx919+O?h8kMj5LzxuDZ3#E(a{u!Bhebv+#W-opyss;10`x?dGj}DH1+pLY+;Ar zia5x+_(`Ki=jSv?&_z5b5~DA^N0Rpz-$TRPdQ-II!z=HR*u9nary)aUXMQMlU+wNK zyN4P?ro~~@{c7%!((bLfhjQKB4(0AsaF68fEx3nnPF8#l<L+B+j|A&(U|seA+e{u1 zO+zF8hrWk^(U;mIp>s*PJL@3Zpa+s9+>kNT3O@vTK%G63ytmFCs^16q4k7PbWRK+T zEwYEYvF6-ExM(Wuk;J_f_E29NQ+o&zU3oncxwpI?I#$n`4?&_&Oe3LtYwMx&Yj_Yn z^svHuBz13LJycY$sY9sftLl-^y;b$ll>vY85a_<4)ZUVM=)enaAIkjWycsFw-g<hd ziPn~pqVuqh|0;CfVtOQZZ!tYorGt%!aM4%NBcXdM>7h^z@F2(DT=DP6rT!HbeHlFx zy0?rT3RS@)I~a<-h8_vsTSE_pE+0DtioSpz3Ef*j4;_6>=EI<Wo*E&Ed#mT60h}Pm zA;d#U=aKY`?2|vK!G;bzbN0_q`u+B;Y5vu+Xz4BvcD7dgWdV>x%-SfcNN@;YrHguk zc})HwBJ$yyKhjc2pzG3ofm_%h=?-?y&@=w2>jweR&ZVLi3X2xd$z5=>{O&CHO!H4R zJO~ETG-%8IG+}(-ZiDZSf*YEOdTIpW{XP#lAV53YNOhYJY=Bjf`7(%X#>Qw_#<o_* z=<-GWeP((wAUIt)kE*eDQ?#J}9MXUUFUpo5ss84{R~0+JI#R$8K-K@y;{e#7CrL<{ z(<5GdPXLnx-Gp|r&kH>a%@Ge0#N4zc00U=p(&VUTsR1|l2cbLHLDJ^q6w|ap67Uh& zyF>d}?|%U8&%+!fjP13C`BzYBR0e!C)FiIlJplH{2@aBV<W%33DaePI0%bu91p|`N zvOo={nXLorlN(6XWV5o8E>OD!z(M=SoPiz%^2F#8{zw>)KKX6m8^9>kFi@sZ>2tI& zGh>7&fc;a9jACTS68B?UL{v4PgO=u~I&;M#-|OIiPosSfBapJ;K1}|8{s>69gG~uk zXZGOqea{N?n}uF1Br3qY`++df*-M}^XnZiwc@WC*0P)DV2Yb1J<+6gp2WIFj=RJ`5 z=Me@{#A|HYW@SJ`VGwddqrxts199ljEs#k42o6~>FiBm&&K?@TwThud{--|N%$W&n zWUS1=Lu<Sqc7GHBkIuakx(WKN2^<p>q~CI9&{Dw>h$t8$^cf|$frSzrAmbpop_A<A zIkdEW&OMO*&0~I9hX+)s0Y({GwRG-0dX|IBpT!eM61M*v;R`^b7@#?*RDN=3NeE*% zGf?S;&WSI$5}p_Z5>bKT6R4}iR6x%{a|DAFikHBCVIC-c5-1+py`yUALFlT_kR<Bw zjaNv4owWe}0X>HhyNZ^C48BliJCef!(^vilOrQs-3M$bp1GF5pCqYQkvC|357(gO< zFwvPIMpb5b0LjqQ0gkG3Vo;@$#>q&84aUwGtaVV=v1x^ZLzXlh6b2P3G#M6yq?0yC zIzf{cqPA#J;H5RT;HM8g9i1JlK`}Kl&O%Wg(oxdRy~4HzXLJ!Vs8%81gAQxv;Rq^o z(146W@NFLh4~eUU8VC)>paUHynCP0z!+H?*eYl3Iy5dZ9ynp;K+#FrRaU-eq<2zs) zBw!Sv8PWV&bSOhN5D0<8DYO66-a#YtW~x(-6)g6cAdvvdsQ<md8-?os7XMETDR_ww zvM3+@b1j*l>hjfrDJ6qWNc`IdGSJlS{p(gdT%3)6_YTd2;m8@#?O-651lmyn*%4Vt zJ3ssXwjFb0go`x-Ja`TYGwh7PS>!%XU?UCiopc`$jSgt<1U5_#(%$#M|IhaRJAC_e zutcfyxf7V;ZD4*w_dibD6wu}TKXVd|HJCd%+Zq4iWs%)c{UAP*4}5<gh`FINo?i?? zM;_2R+wW&r$oGPUUTcmv0wX~SMw}I*8CuD`s6T&@RYg%wLG6md-p6K;K-8aG|IJME zuR41$@b{0eqY_bnCHDV_+6o5~|M|^WR2=FryZ#^U%ON<(Q_A4?F;U5=KeYLO<myWY u3kvz!O;jxE&uRX~7Gv-z9*q6Zk85fu<A7-fDpA0HglaHYoju4$!u}uswafYd literal 0 HcmV?d00001 diff --git a/Lib/enum.py b/Lib/enum.py index 0b97d3d8a68ef0..e7375e1eae691f 100644 --- a/Lib/enum.py +++ b/Lib/enum.py @@ -185,19 +185,35 @@ class property(DynamicClassAttribute): a corresponding enum member. """ + member = None + def __get__(self, instance, ownerclass=None): if instance is None: - try: - return ownerclass._member_map_[self.name] - except KeyError: + if self.member is not None: + return self.member + else: raise AttributeError( '%r has no attribute %r' % (ownerclass, self.name) ) else: if self.fget is None: - raise AttributeError( - '%r member has no attribute %r' % (ownerclass, self.name) + if self.member is None: # not sure this can happen, but just in case + raise AttributeError( + '%r has no attribute %r' % (ownerclass, self.name) + ) + # issue warning deprecating this behavior + import warnings + warnings.warn( + "`member.member` access (e.g. `Color.RED.BLUE`) is " + "deprecated and will be removed in 3.14.", + DeprecationWarning, + stacklevel=2, ) + return self.member + # XXX: uncomment in 3.14 and remove warning above + # raise AttributeError( + # '%r member has no attribute %r' % (ownerclass, self.name) + # ) else: return self.fget(instance) @@ -247,7 +263,10 @@ def __set_name__(self, enum_class, member_name): if not enum_class._use_args_: enum_member = enum_class._new_member_(enum_class) if not hasattr(enum_member, '_value_'): - enum_member._value_ = value + try: + enum_member._value_ = enum_class._member_type_(*args) + except Exception as exc: + enum_member._value_ = value else: enum_member = enum_class._new_member_(enum_class, *args) if not hasattr(enum_member, '_value_'): @@ -296,29 +315,20 @@ def __set_name__(self, enum_class, member_name): enum_class._member_names_.append(member_name) # get redirect in place before adding to _member_map_ # but check for other instances in parent classes first - need_override = False descriptor = None for base in enum_class.__mro__[1:]: descriptor = base.__dict__.get(member_name) if descriptor is not None: if isinstance(descriptor, (property, DynamicClassAttribute)): break - else: - need_override = True - # keep looking for an enum.property - if descriptor and not need_override: - # previous enum.property found, no further action needed - pass - else: - redirect = property() - redirect.__set_name__(enum_class, member_name) - if descriptor and need_override: - # previous enum.property found, but some other inherited attribute - # is in the way; copy fget, fset, fdel to this one - redirect.fget = descriptor.fget - redirect.fset = descriptor.fset - redirect.fdel = descriptor.fdel - setattr(enum_class, member_name, redirect) + redirect = property() + redirect.member = enum_member + redirect.__set_name__(enum_class, member_name) + if descriptor: + redirect.fget = getattr(descriptor, 'fget', None) + redirect.fset = getattr(descriptor, 'fset', None) + redirect.fdel = getattr(descriptor, 'fdel', None) + setattr(enum_class, member_name, redirect) # now add to _member_map_ (even aliases) enum_class._member_map_[member_name] = enum_member try: @@ -536,111 +546,6 @@ def __new__(metacls, cls, bases, classdict, *, boundary=None, _simple=False, **k # update classdict with any changes made by __init_subclass__ classdict.update(enum_class.__dict__) # - # create a default docstring if one has not been provided - if enum_class.__doc__ is None: - if not member_names or not list(enum_class): - enum_class.__doc__ = classdict['__doc__'] = _dedent("""\ - Create a collection of name/value pairs. - - Example enumeration: - - >>> class Color(Enum): - ... RED = 1 - ... BLUE = 2 - ... GREEN = 3 - - Access them by: - - - attribute access:: - - >>> Color.RED - <Color.RED: 1> - - - value lookup: - - >>> Color(1) - <Color.RED: 1> - - - name lookup: - - >>> Color['RED'] - <Color.RED: 1> - - Enumerations can be iterated over, and know how many members they have: - - >>> len(Color) - 3 - - >>> list(Color) - [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>] - - Methods can be added to enumerations, and members can have their own - attributes -- see the documentation for details. - """) - else: - member = list(enum_class)[0] - enum_length = len(enum_class) - cls_name = enum_class.__name__ - if enum_length == 1: - list_line = 'list(%s)' % cls_name - list_repr = '[<%s.%s: %r>]' % (cls_name, member.name, member.value) - elif enum_length == 2: - member2 = list(enum_class)[1] - list_line = 'list(%s)' % cls_name - list_repr = '[<%s.%s: %r>, <%s.%s: %r>]' % ( - cls_name, member.name, member.value, - cls_name, member2.name, member2.value, - ) - else: - member2 = list(enum_class)[1] - member3 = list(enum_class)[2] - list_line = 'list(%s)%s' % (cls_name, ('','[:3]')[enum_length > 3]) - list_repr = '[<%s.%s: %r>, <%s.%s: %r>, <%s.%s: %r>]' % ( - cls_name, member.name, member.value, - cls_name, member2.name, member2.value, - cls_name, member3.name, member3.value, - ) - enum_class.__doc__ = classdict['__doc__'] = _dedent("""\ - A collection of name/value pairs. - - Access them by: - - - attribute access:: - - >>> %s.%s - <%s.%s: %r> - - - value lookup: - - >>> %s(%r) - <%s.%s: %r> - - - name lookup: - - >>> %s[%r] - <%s.%s: %r> - - Enumerations can be iterated over, and know how many members they have: - - >>> len(%s) - %r - - >>> %s - %s - - Methods can be added to enumerations, and members can have their own - attributes -- see the documentation for details. - """ - % (cls_name, member.name, - cls_name, member.name, member.value, - cls_name, member.value, - cls_name, member.name, member.value, - cls_name, member.name, - cls_name, member.name, member.value, - cls_name, enum_length, - list_line, list_repr, - )) - # # double check that repr and friends are not the mixin's or various # things break (such as pickle) # however, if the method is defined in the Enum itself, don't replace @@ -666,7 +571,13 @@ def __new__(metacls, cls, bases, classdict, *, boundary=None, _simple=False, **k classdict['__str__'] = enum_class.__str__ for name in ('__repr__', '__str__', '__format__', '__reduce_ex__'): if name not in classdict: - setattr(enum_class, name, getattr(first_enum, name)) + # check for mixin overrides before replacing + enum_method = getattr(first_enum, name) + found_method = getattr(enum_class, name) + object_method = getattr(object, name) + data_type_method = getattr(member_type, name) + if found_method in (data_type_method, object_method): + setattr(enum_class, name, enum_method) # # for Flag, add __or__, __and__, __xor__, and __invert__ if Flag is not None and issubclass(enum_class, Flag): @@ -752,7 +663,7 @@ def __new__(metacls, cls, bases, classdict, *, boundary=None, _simple=False, **k 'member order does not match _order_:\n %r\n %r' % (enum_class._member_names_, _order_) ) - # + return enum_class def __bool__(cls): @@ -799,26 +710,16 @@ def __call__(cls, value, names=None, *, module=None, qualname=None, type=None, s boundary=boundary, ) - def __contains__(cls, member): - """ - Return True if member is a member of this enum - raises TypeError if member is not an enum member + def __contains__(cls, value): + """Return True if `value` is in `cls`. - note: in 3.12 TypeError will no longer be raised, and True will also be - returned if member is the value of a member in this enum + `value` is in `cls` if: + 1) `value` is a member of `cls`, or + 2) `value` is the value of one of the `cls`'s members. """ - if not isinstance(member, Enum): - import warnings - warnings.warn( - "in 3.12 __contains__ will no longer raise TypeError, but will return True or\n" - "False depending on whether the value is a member or the value of a member", - DeprecationWarning, - stacklevel=2, - ) - raise TypeError( - "unsupported operand type(s) for 'in': '%s' and '%s'" % ( - type(member).__qualname__, cls.__class__.__qualname__)) - return isinstance(member, cls) and member._name_ in cls._member_map_ + if isinstance(value, cls): + return True + return value in cls._value2member_map_ or value in cls._unhashable_values_ def __delattr__(cls, attr): # nicer error message when someone tries to delete an attribute @@ -845,22 +746,6 @@ def __dir__(cls): # return whatever mixed-in data type has return sorted(set(dir(cls._member_type_)) | interesting) - def __getattr__(cls, name): - """ - Return the enum member matching `name` - - We use __getattr__ instead of descriptors or inserting into the enum - class' __dict__ in order to support `name` and `value` being both - properties for enum members (which live in the class' __dict__) and - enum members themselves. - """ - if _is_dunder(name): - raise AttributeError(name) - try: - return cls._member_map_[name] - except KeyError: - raise AttributeError(name) from None - def __getitem__(cls, name): """ Return the member matching `name`. @@ -1051,16 +936,18 @@ def _find_data_repr_(mcls, class_name, bases): @classmethod def _find_data_type_(mcls, class_name, bases): data_types = set() + base_chain = set() for chain in bases: candidate = None for base in chain.__mro__: + base_chain.add(base) if base is object: continue elif issubclass(base, Enum): if base._member_type_ is not object: data_types.add(base._member_type_) break - elif '__new__' in base.__dict__: + elif '__new__' in base.__dict__ or '__init__' in base.__dict__: if issubclass(base, Enum): continue data_types.add(candidate or base) @@ -1222,14 +1109,32 @@ def _generate_next_value_(name, start, count, last_values): name: the name of the member start: the initial start value or None count: the number of existing members - last_value: the last value assigned or None + last_values: the list of values assigned """ - for last_value in reversed(last_values): - try: - return last_value + 1 - except TypeError: - pass - else: + if not last_values: + return start + try: + last = last_values[-1] + last_values.sort() + if last == last_values[-1]: + # no difference between old and new methods + return last + 1 + else: + # trigger old method (with warning) + raise TypeError + except TypeError: + import warnings + warnings.warn( + "In 3.13 the default `auto()`/`_generate_next_value_` will require all values to be sortable and support adding +1\n" + "and the value returned will be the largest value in the enum incremented by 1", + DeprecationWarning, + stacklevel=3, + ) + for v in last_values: + try: + return v + 1 + except TypeError: + pass return start @classmethod @@ -1237,7 +1142,7 @@ def _missing_(cls, value): return None def __repr__(self): - v_repr = self.__class__._value_repr_ or self._value_.__class__.__repr__ + v_repr = self.__class__._value_repr_ or repr return "<%s.%s: %s>" % (self.__class__.__name__, self._name_, v_repr(self._value_)) def __str__(self): @@ -1285,10 +1190,10 @@ def __reduce_ex__(self, proto): # enum.property is used to provide access to the `name` and # `value` attributes of enum members while keeping some measure of # protection from modification, while still allowing for an enumeration - # to have members named `name` and `value`. This works because enumeration - # members are not set directly on the enum class; they are kept in a - # separate structure, _member_map_, which is where enum.property looks for - # them + # to have members named `name` and `value`. This works because each + # instance of enum.property saves its companion member, which it returns + # on class lookup; on instance lookup it either executes a provided function + # or raises an AttributeError. @property def name(self): @@ -1369,6 +1274,23 @@ class Flag(Enum, boundary=STRICT): Support for flags """ + def __reduce_ex__(self, proto): + cls = self.__class__ + unknown = self._value_ & ~cls._flag_mask_ + member_value = self._value_ & cls._flag_mask_ + if unknown and member_value: + return _or_, (cls(member_value), unknown) + for val in _iter_bits_lsb(member_value): + rest = member_value & ~val + if rest: + return _or_, (cls(rest), cls._value2member_map_.get(val)) + else: + break + if self._name_ is None: + return cls, (self._value_,) + else: + return getattr, (cls, self._name_) + _numeric_repr_ = repr def _generate_next_value_(name, start, count, last_values): @@ -1378,7 +1300,7 @@ def _generate_next_value_(name, start, count, last_values): name: the name of the member start: the initial start value or None count: the number of existing members - last_value: the last value assigned or None + last_values: the last value assigned or None """ if not count: return start if start is not None else 1 @@ -1509,7 +1431,7 @@ def __len__(self): def __repr__(self): cls_name = self.__class__.__name__ - v_repr = self.__class__._value_repr_ or self._value_.__class__.__repr__ + v_repr = self.__class__._value_repr_ or repr if self._name_ is None: return "<%s: %s>" % (cls_name, v_repr(self._value_)) else: @@ -1572,7 +1494,7 @@ def __invert__(self): __rxor__ = __xor__ -class IntFlag(int, ReprEnum, Flag, boundary=EJECT): +class IntFlag(int, ReprEnum, Flag, boundary=KEEP): """ Support for integer-based Flags """ @@ -1729,7 +1651,13 @@ def convert_class(cls): enum_class = type(cls_name, (etype, ), body, boundary=boundary, _simple=True) for name in ('__repr__', '__str__', '__format__', '__reduce_ex__'): if name not in body: - setattr(enum_class, name, getattr(etype, name)) + # check for mixin overrides before replacing + enum_method = getattr(etype, name) + found_method = getattr(enum_class, name) + object_method = getattr(object, name) + data_type_method = getattr(member_type, name) + if found_method in (data_type_method, object_method): + setattr(enum_class, name, enum_method) gnv_last_values = [] if issubclass(enum_class, Flag): # Flag / IntFlag @@ -1739,10 +1667,12 @@ def convert_class(cls): value = gnv(name, 1, len(member_names), gnv_last_values) if value in value2member_map: # an alias to an existing member + member = value2member_map[value] redirect = property() + redirect.member = member redirect.__set_name__(enum_class, name) setattr(enum_class, name, redirect) - member_map[name] = value2member_map[value] + member_map[name] = member else: # create the member if use_args: @@ -1758,6 +1688,7 @@ def convert_class(cls): member.__objclass__ = enum_class member.__init__(value) redirect = property() + redirect.member = member redirect.__set_name__(enum_class, name) setattr(enum_class, name, redirect) member_map[name] = member @@ -1785,10 +1716,12 @@ def convert_class(cls): value = value.value if value in value2member_map: # an alias to an existing member + member = value2member_map[value] redirect = property() + redirect.member = member redirect.__set_name__(enum_class, name) setattr(enum_class, name, redirect) - member_map[name] = value2member_map[value] + member_map[name] = member else: # create the member if use_args: @@ -1805,6 +1738,7 @@ def convert_class(cls): member.__init__(value) member._sort_order_ = len(member_names) redirect = property() + redirect.member = member redirect.__set_name__(enum_class, name) setattr(enum_class, name, redirect) member_map[name] = member @@ -1953,7 +1887,7 @@ def _test_simple_enum(checked_enum, simple_enum): else: checked_value = checked_dict[key] simple_value = simple_dict[key] - if callable(checked_value): + if callable(checked_value) or isinstance(checked_value, bltns.property): continue if key == '__doc__': # remove all spaces/tabs @@ -2060,7 +1994,6 @@ def _old_convert_(etype, name, module, filter, source=None, *, boundary=None): members.sort(key=lambda t: t[0]) cls = etype(name, members, module=module, boundary=boundary or KEEP) cls.__reduce_ex__ = _reduce_ex_by_global_name - cls.__repr__ = global_enum_repr return cls _stdlib_enums = IntEnum, StrEnum, IntFlag diff --git a/Lib/filecmp.py b/Lib/filecmp.py index 70a4b23c982205..30bd900fa805aa 100644 --- a/Lib/filecmp.py +++ b/Lib/filecmp.py @@ -157,17 +157,17 @@ def phase2(self): # Distinguish files, directories, funnies a_path = os.path.join(self.left, x) b_path = os.path.join(self.right, x) - ok = 1 + ok = True try: a_stat = os.stat(a_path) except OSError: # print('Can\'t stat', a_path, ':', why.args[1]) - ok = 0 + ok = False try: b_stat = os.stat(b_path) except OSError: # print('Can\'t stat', b_path, ':', why.args[1]) - ok = 0 + ok = False if ok: a_type = stat.S_IFMT(a_stat.st_mode) @@ -242,7 +242,7 @@ def report_full_closure(self): # Report on self and subdirs recursively methodmap = dict(subdirs=phase4, same_files=phase3, diff_files=phase3, funny_files=phase3, - common_dirs = phase2, common_files=phase2, common_funny=phase2, + common_dirs=phase2, common_files=phase2, common_funny=phase2, common=phase1, left_only=phase1, right_only=phase1, left_list=phase0, right_list=phase0) diff --git a/Lib/fileinput.py b/Lib/fileinput.py index 9f41c18510decf..e234dc9ea65f15 100644 --- a/Lib/fileinput.py +++ b/Lib/fileinput.py @@ -335,18 +335,21 @@ def _readline(self): pass # The next few lines may raise OSError os.rename(self._filename, self._backupfilename) - self._file = open(self._backupfilename, self._mode, encoding=encoding) + self._file = open(self._backupfilename, self._mode, + encoding=encoding, errors=self._errors) try: perm = os.fstat(self._file.fileno()).st_mode except OSError: - self._output = open(self._filename, self._write_mode, encoding=encoding) + self._output = open(self._filename, self._write_mode, + encoding=encoding, errors=self._errors) else: mode = os.O_CREAT | os.O_WRONLY | os.O_TRUNC if hasattr(os, 'O_BINARY'): mode |= os.O_BINARY fd = os.open(self._filename, mode, perm) - self._output = os.fdopen(fd, self._write_mode, encoding=encoding) + self._output = os.fdopen(fd, self._write_mode, + encoding=encoding, errors=self._errors) try: os.chmod(self._filename, perm) except OSError: diff --git a/Lib/fnmatch.py b/Lib/fnmatch.py index 0f5a41ac06f3e6..d5e296f7748c1c 100644 --- a/Lib/fnmatch.py +++ b/Lib/fnmatch.py @@ -102,7 +102,7 @@ def translate(pat): add('\\[') else: stuff = pat[i:j] - if '--' not in stuff: + if '-' not in stuff: stuff = stuff.replace('\\', r'\\') else: chunks = [] @@ -114,7 +114,16 @@ def translate(pat): chunks.append(pat[i:k]) i = k+1 k = k+3 - chunks.append(pat[i:j]) + chunk = pat[i:j] + if chunk: + chunks.append(chunk) + else: + chunks[-1] += '-' + # Remove empty ranges -- invalid in RE. + for k in range(len(chunks)-1, 0, -1): + if chunks[k-1][-1] > chunks[k][0]: + chunks[k-1] = chunks[k-1][:-1] + chunks[k][1:] + del chunks[k] # Escape backslashes and hyphens for set difference (--). # Hyphens that create ranges shouldn't be escaped. stuff = '-'.join(s.replace('\\', r'\\').replace('-', r'\-') @@ -122,11 +131,18 @@ def translate(pat): # Escape set operations (&&, ~~ and ||). stuff = re.sub(r'([&~|])', r'\\\1', stuff) i = j+1 - if stuff[0] == '!': - stuff = '^' + stuff[1:] - elif stuff[0] in ('^', '['): - stuff = '\\' + stuff - add(f'[{stuff}]') + if not stuff: + # Empty range: never match. + add('(?!)') + elif stuff == '!': + # Negated empty range: match any character. + add('.') + else: + if stuff[0] == '!': + stuff = '^' + stuff[1:] + elif stuff[0] in ('^', '['): + stuff = '\\' + stuff + add(f'[{stuff}]') else: add(re.escape(c)) assert i == n diff --git a/Lib/fractions.py b/Lib/fractions.py index f9ac882ec002fa..75c7df14e1b9c7 100644 --- a/Lib/fractions.py +++ b/Lib/fractions.py @@ -4,6 +4,7 @@ """Fraction, infinite-precision, rational numbers.""" from decimal import Decimal +import functools import math import numbers import operator @@ -20,13 +21,46 @@ # _PyHASH_MODULUS. _PyHASH_INF = sys.hash_info.inf +@functools.lru_cache(maxsize = 1 << 14) +def _hash_algorithm(numerator, denominator): + + # To make sure that the hash of a Fraction agrees with the hash + # of a numerically equal integer, float or Decimal instance, we + # follow the rules for numeric hashes outlined in the + # documentation. (See library docs, 'Built-in Types'). + + try: + dinv = pow(denominator, -1, _PyHASH_MODULUS) + except ValueError: + # ValueError means there is no modular inverse. + hash_ = _PyHASH_INF + else: + # The general algorithm now specifies that the absolute value of + # the hash is + # (|N| * dinv) % P + # where N is self._numerator and P is _PyHASH_MODULUS. That's + # optimized here in two ways: first, for a non-negative int i, + # hash(i) == i % P, but the int hash implementation doesn't need + # to divide, and is faster than doing % P explicitly. So we do + # hash(|N| * dinv) + # instead. Second, N is unbounded, so its product with dinv may + # be arbitrarily expensive to compute. The final answer is the + # same if we use the bounded |N| % P instead, which can again + # be done with an int hash() call. If 0 <= i < P, hash(i) == i, + # so this nested hash() call wastes a bit of time making a + # redundant copy when |N| < P, but can save an arbitrarily large + # amount of computation for large |N|. + hash_ = hash(hash(abs(numerator)) * dinv) + result = hash_ if numerator >= 0 else -hash_ + return -2 if result == -1 else result + _RATIONAL_FORMAT = re.compile(r""" \A\s* # optional whitespace at the start, (?P<sign>[-+]?) # an optional sign, then (?=\d|\.\d) # lookahead for digit or .digit (?P<num>\d*|\d+(_\d+)*) # numerator (possibly empty) (?: # followed by - (?:/(?P<denom>\d+(_\d+)*))? # an optional denominator + (?:\s*/\s*(?P<denom>\d+(_\d+)*))? # an optional denominator | # or (?:\.(?P<decimal>d*|\d+(_\d+)*))? # an optional fractional part (?:E(?P<exp>[-+]?\d+(_\d+)*))? # and optional exponent @@ -245,14 +279,16 @@ def limit_denominator(self, max_denominator=1000000): break p0, q0, p1, q1 = p1, q1, p0+a*p1, q2 n, d = d, n-a*d - k = (max_denominator-q0)//q1 - bound1 = Fraction(p0+k*p1, q0+k*q1) - bound2 = Fraction(p1, q1) - if abs(bound2 - self) <= abs(bound1-self): - return bound2 + + # Determine which of the candidates (p0+k*p1)/(q0+k*q1) and p1/q1 is + # closer to self. The distance between them is 1/(q1*(q0+k*q1)), while + # the distance from p1/q1 to self is d/(q1*self._denominator). So we + # need to compare 2*(q0+k*q1) with self._denominator/d. + if 2*d*(q0+k*q1) <= self._denominator: + return Fraction(p1, q1, _normalize=False) else: - return bound1 + return Fraction(p0+k*p1, q0+k*q1, _normalize=False) @property def numerator(a): @@ -644,36 +680,7 @@ def __round__(self, ndigits=None): def __hash__(self): """hash(self)""" - - # To make sure that the hash of a Fraction agrees with the hash - # of a numerically equal integer, float or Decimal instance, we - # follow the rules for numeric hashes outlined in the - # documentation. (See library docs, 'Built-in Types'). - - try: - dinv = pow(self._denominator, -1, _PyHASH_MODULUS) - except ValueError: - # ValueError means there is no modular inverse. - hash_ = _PyHASH_INF - else: - # The general algorithm now specifies that the absolute value of - # the hash is - # (|N| * dinv) % P - # where N is self._numerator and P is _PyHASH_MODULUS. That's - # optimized here in two ways: first, for a non-negative int i, - # hash(i) == i % P, but the int hash implementation doesn't need - # to divide, and is faster than doing % P explicitly. So we do - # hash(|N| * dinv) - # instead. Second, N is unbounded, so its product with dinv may - # be arbitrarily expensive to compute. The final answer is the - # same if we use the bounded |N| % P instead, which can again - # be done with an int hash() call. If 0 <= i < P, hash(i) == i, - # so this nested hash() call wastes a bit of time making a - # redundant copy when |N| < P, but can save an arbitrarily large - # amount of computation for large |N|. - hash_ = hash(hash(abs(self._numerator)) * dinv) - result = hash_ if self._numerator >= 0 else -hash_ - return -2 if result == -1 else result + return _hash_algorithm(self._numerator, self._denominator) def __eq__(a, b): """a == b""" diff --git a/Lib/functools.py b/Lib/functools.py index cd5666dfa71fd0..43ead512e1ea4e 100644 --- a/Lib/functools.py +++ b/Lib/functools.py @@ -843,12 +843,11 @@ def _is_union_type(cls): return get_origin(cls) in {Union, types.UnionType} def _is_valid_dispatch_type(cls): - if isinstance(cls, type) and not isinstance(cls, GenericAlias): + if isinstance(cls, type): return True from typing import get_args return (_is_union_type(cls) and - all(isinstance(arg, type) and not isinstance(arg, GenericAlias) - for arg in get_args(cls))) + all(isinstance(arg, type) for arg in get_args(cls))) def register(cls, func=None): """generic_func.register(cls, func) -> func diff --git a/Lib/gzip.py b/Lib/gzip.py index 5b20e5ba698ee9..8edcda4493c894 100644 --- a/Lib/gzip.py +++ b/Lib/gzip.py @@ -212,14 +212,6 @@ def __init__(self, filename=None, mode=None, if self.mode == WRITE: self._write_gzip_header(compresslevel) - @property - def filename(self): - import warnings - warnings.warn("use the name attribute", DeprecationWarning, 2) - if self.mode == WRITE and self.name[-3:] != ".gz": - return self.name + ".gz" - return self.name - @property def mtime(self): """Last modification time read from stream, or None""" diff --git a/Lib/hashlib.py b/Lib/hashlib.py index b546a3fd795311..21b5e912f3c771 100644 --- a/Lib/hashlib.py +++ b/Lib/hashlib.py @@ -65,7 +65,7 @@ algorithms_available = set(__always_supported) __all__ = __always_supported + ('new', 'algorithms_guaranteed', - 'algorithms_available', 'pbkdf2_hmac', 'file_digest') + 'algorithms_available', 'file_digest') __builtin_constructor_cache = {} @@ -180,72 +180,10 @@ def __hash_new(name, data=b'', **kwargs): try: # OpenSSL's PKCS5_PBKDF2_HMAC requires OpenSSL 1.0+ with HMAC and SHA from _hashlib import pbkdf2_hmac + __all__ += ('pbkdf2_hmac',) except ImportError: - from warnings import warn as _warn - _trans_5C = bytes((x ^ 0x5C) for x in range(256)) - _trans_36 = bytes((x ^ 0x36) for x in range(256)) - - def pbkdf2_hmac(hash_name, password, salt, iterations, dklen=None): - """Password based key derivation function 2 (PKCS #5 v2.0) - - This Python implementations based on the hmac module about as fast - as OpenSSL's PKCS5_PBKDF2_HMAC for short passwords and much faster - for long passwords. - """ - _warn( - "Python implementation of pbkdf2_hmac() is deprecated.", - category=DeprecationWarning, - stacklevel=2 - ) - if not isinstance(hash_name, str): - raise TypeError(hash_name) - - if not isinstance(password, (bytes, bytearray)): - password = bytes(memoryview(password)) - if not isinstance(salt, (bytes, bytearray)): - salt = bytes(memoryview(salt)) - - # Fast inline HMAC implementation - inner = new(hash_name) - outer = new(hash_name) - blocksize = getattr(inner, 'block_size', 64) - if len(password) > blocksize: - password = new(hash_name, password).digest() - password = password + b'\x00' * (blocksize - len(password)) - inner.update(password.translate(_trans_36)) - outer.update(password.translate(_trans_5C)) - - def prf(msg, inner=inner, outer=outer): - # PBKDF2_HMAC uses the password as key. We can re-use the same - # digest objects and just update copies to skip initialization. - icpy = inner.copy() - ocpy = outer.copy() - icpy.update(msg) - ocpy.update(icpy.digest()) - return ocpy.digest() - - if iterations < 1: - raise ValueError(iterations) - if dklen is None: - dklen = outer.digest_size - if dklen < 1: - raise ValueError(dklen) - - dkey = b'' - loop = 1 - from_bytes = int.from_bytes - while len(dkey) < dklen: - prev = prf(salt + loop.to_bytes(4)) - # endianness doesn't matter here as long to / from use the same - rkey = from_bytes(prev) - for i in range(iterations - 1): - prev = prf(prev) - # rkey = rkey ^ prev - rkey ^= from_bytes(prev) - loop += 1 - dkey += rkey.to_bytes(inner.digest_size) - - return dkey[:dklen] + pass + try: # OpenSSL's scrypt requires OpenSSL 1.1+ diff --git a/Lib/html/entities.py b/Lib/html/entities.py index dc508631ac4789..cc59bc314499ad 100644 --- a/Lib/html/entities.py +++ b/Lib/html/entities.py @@ -3,8 +3,7 @@ __all__ = ['html5', 'name2codepoint', 'codepoint2name', 'entitydefs'] -# maps the HTML entity name to the Unicode code point -# from https://html.spec.whatwg.org/multipage/named-characters.html +# maps HTML4 entity name to the Unicode code point name2codepoint = { 'AElig': 0x00c6, # latin capital letter AE = latin capital ligature AE, U+00C6 ISOlat1 'Aacute': 0x00c1, # latin capital letter A with acute, U+00C1 ISOlat1 @@ -261,7 +260,11 @@ } -# maps the HTML5 named character references to the equivalent Unicode character(s) +# HTML5 named character references +# Generated by 'Tools/scripts/parse_html5_entities.py' +# from https://html.spec.whatwg.org/entities.json and +# https://html.spec.whatwg.org/multipage/named-characters.html. +# Map HTML5 named character references to the equivalent Unicode character(s). html5 = { 'Aacute': '\xc1', 'aacute': '\xe1', diff --git a/Lib/html/parser.py b/Lib/html/parser.py index bef0f4fe4bf776..13c95c34e505c8 100644 --- a/Lib/html/parser.py +++ b/Lib/html/parser.py @@ -89,6 +89,7 @@ def __init__(self, *, convert_charrefs=True): If convert_charrefs is True (the default), all character references are automatically converted to the corresponding Unicode characters. """ + super().__init__() self.convert_charrefs = convert_charrefs self.reset() @@ -98,7 +99,7 @@ def reset(self): self.lasttag = '???' self.interesting = interesting_normal self.cdata_elem = None - _markupbase.ParserBase.reset(self) + super().reset() def feed(self, data): r"""Feed data to the parser. diff --git a/Lib/http/__init__.py b/Lib/http/__init__.py index cd2885dc7757b4..e093a1fec4dffc 100644 --- a/Lib/http/__init__.py +++ b/Lib/http/__init__.py @@ -31,6 +31,26 @@ def __new__(cls, value, phrase, description=''): obj.description = description return obj + @property + def is_informational(self): + return 100 <= self <= 199 + + @property + def is_success(self): + return 200 <= self <= 299 + + @property + def is_redirection(self): + return 300 <= self <= 399 + + @property + def is_client_error(self): + return 400 <= self <= 499 + + @property + def is_server_error(self): + return 500 <= self <= 599 + # informational CONTINUE = 100, 'Continue', 'Request received, please continue' SWITCHING_PROTOCOLS = (101, 'Switching Protocols', diff --git a/Lib/http/client.py b/Lib/http/client.py index f54172fd0deeae..0720990f84e7ed 100644 --- a/Lib/http/client.py +++ b/Lib/http/client.py @@ -786,6 +786,20 @@ def getcode(self): ''' return self.status + +def _create_https_context(http_version): + # Function also used by urllib.request to be able to set the check_hostname + # attribute on a context object. + context = ssl._create_default_https_context() + # send ALPN extension to indicate HTTP/1.1 protocol + if http_version == 11: + context.set_alpn_protocols(['http/1.1']) + # enable PHA for TLS 1.3 connections if available + if context.post_handshake_auth is not None: + context.post_handshake_auth = True + return context + + class HTTPConnection: _http_vsn = 11 @@ -942,7 +956,7 @@ def connect(self): (self.host,self.port), self.timeout, self.source_address) # Might fail in OSs that don't implement TCP_NODELAY try: - self.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) + self.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) except OSError as e: if e.errno != errno.ENOPROTOOPT: raise @@ -1418,19 +1432,9 @@ def __init__(self, host, port=None, key_file=None, cert_file=None, self.key_file = key_file self.cert_file = cert_file if context is None: - context = ssl._create_default_https_context() - # send ALPN extension to indicate HTTP/1.1 protocol - if self._http_vsn == 11: - context.set_alpn_protocols(['http/1.1']) - # enable PHA for TLS 1.3 connections if available - if context.post_handshake_auth is not None: - context.post_handshake_auth = True - will_verify = context.verify_mode != ssl.CERT_NONE - if check_hostname is None: - check_hostname = context.check_hostname - if check_hostname and not will_verify: - raise ValueError("check_hostname needs a SSL context with " - "either CERT_OPTIONAL or CERT_REQUIRED") + context = _create_https_context(self._http_vsn) + if check_hostname is not None: + context.check_hostname = check_hostname if key_file or cert_file: context.load_cert_chain(cert_file, key_file) # cert and key file means the user wants to authenticate. @@ -1438,8 +1442,6 @@ def __init__(self, host, port=None, key_file=None, cert_file=None, if context.post_handshake_auth is not None: context.post_handshake_auth = True self._context = context - if check_hostname is not None: - self._context.check_hostname = check_hostname def connect(self): "Connect to a host on a given (SSL) port." diff --git a/Lib/http/cookiejar.py b/Lib/http/cookiejar.py index f19a366496a21a..c514e0d382cbc7 100644 --- a/Lib/http/cookiejar.py +++ b/Lib/http/cookiejar.py @@ -1890,7 +1890,7 @@ def save(self, filename=None, ignore_discard=False, ignore_expires=False): if self.filename is not None: filename = self.filename else: raise ValueError(MISSING_FILENAME_TEXT) - with open(filename, "w") as f: + with os.fdopen(os.open(filename, os.O_CREAT | os.O_WRONLY, 0o600), 'w') as f: # There really isn't an LWP Cookies 2.0 format, but this indicates # that there is extra information in here (domain_dot and # port_spec) while still being compatible with libwww-perl, I hope. @@ -2086,7 +2086,7 @@ def save(self, filename=None, ignore_discard=False, ignore_expires=False): if self.filename is not None: filename = self.filename else: raise ValueError(MISSING_FILENAME_TEXT) - with open(filename, "w") as f: + with os.fdopen(os.open(filename, os.O_CREAT | os.O_WRONLY, 0o600), 'w') as f: f.write(NETSCAPE_HEADER_TEXT) now = time.time() for cookie in self: diff --git a/Lib/http/server.py b/Lib/http/server.py index d115dfc162bb14..8aee31bac2752a 100644 --- a/Lib/http/server.py +++ b/Lib/http/server.py @@ -329,6 +329,13 @@ def parse_request(self): return False self.command, self.path = command, path + # gh-87389: The purpose of replacing '//' with '/' is to protect + # against open redirect attacks possibly triggered if the path starts + # with '//' because http clients treat //path as an absolute URI + # without scheme (similar to http://path) rather than a path. + if self.path.startswith('//'): + self.path = '/' + self.path.lstrip('/') # Reduce to a single / + # Examine the headers and look for a Connection directive. try: self.headers = http.client.parse_headers(self.rfile, @@ -635,6 +642,7 @@ class SimpleHTTPRequestHandler(BaseHTTPRequestHandler): """ + index_pages = ["index.html", "index.htm"] server_version = "SimpleHTTP/" + __version__ extensions_map = _encodings_map_default = { '.gz': 'application/gzip', @@ -643,9 +651,11 @@ class SimpleHTTPRequestHandler(BaseHTTPRequestHandler): '.xz': 'application/x-xz', } - def __init__(self, *args, directory=None, **kwargs): + def __init__(self, *args, directory=None, index_pages=None, **kwargs): if directory is None: directory = os.getcwd() + if index_pages is not None: + self.index_pages = index_pages self.directory = os.fspath(directory) super().__init__(*args, **kwargs) @@ -689,7 +699,7 @@ def send_head(self): self.send_header("Content-Length", "0") self.end_headers() return None - for index in "index.html", "index.htm": + for index in self.index_pages: index = os.path.join(path, index) if os.path.exists(index): path = index diff --git a/Lib/idlelib/CREDITS.txt b/Lib/idlelib/CREDITS.txt index 3a50eb8e7f2ac3..4a42af586a4a9e 100644 --- a/Lib/idlelib/CREDITS.txt +++ b/Lib/idlelib/CREDITS.txt @@ -2,9 +2,10 @@ Guido van Rossum, as well as being the creator of the Python language, is the original creator of IDLE. Other contributors prior to Version 0.8 include Mark Hammond, Jeremy Hylton, Tim Peters, and Moshe Zadka. -IDLE's recent development was carried out in the SF IDLEfork project. The +Until Python 2.3, IDLE's development was carried out in the SF IDLEfork project. The objective was to develop a version of IDLE which had an execution environment which could be initialized prior to each run of user code. +IDLefork was merged into the Python code base in 2003. The IDLEfork project was initiated by David Scherer, with some help from Peter Schneider-Kamp and Nicholas Riley. David wrote the first version of the RPC @@ -28,6 +29,15 @@ Jim Jewett, Martin v. Löwis, Jason Orendorff, Guilherme Polo, Josh Robb, Nigel Rowe, Bruce Sherwood, Jeff Shute, and Weeble have submitted useful patches. Thanks, guys! +Major contributors since 2005: + +- 2005: Tal Einat +- 2010: Terry Jan Reedy (current maintainer) +- 2013: Roger Serwys +- 2014: Saimadhav Heblikar +- 2015: Mark Roseman +- 2017: Louie Lu, Cheryl Sabella, and Serhiy Storchaka + For additional details refer to NEWS.txt and Changelog. Please contact the IDLE maintainer (kbk@shore.net) to have yourself included diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt index 441ec41ed76b2c..7fa7facf8cf780 100644 --- a/Lib/idlelib/NEWS.txt +++ b/Lib/idlelib/NEWS.txt @@ -4,6 +4,22 @@ Released on 2022-10-03 ========================= +gh-65802: Document handling of extensions in Save As dialogs. + +gh-95191: Include prompts when saving Shell (interactive input/output). + +gh-95511: Fix the Shell context menu copy-with-prompts bug of copying +an extra line when one selects whole lines. + +gh-95471: Tweak Edit menu. Move 'Select All' above 'Cut' as it is used +with 'Cut' and 'Copy' but not 'Paste'. Add a separator between 'Replace' +and 'Go to Line' to help IDLE issue triagers. + +gh-95411: Enable using IDLE's module browser with .pyw files. + +gh-89610: Add .pyi as a recognized extension for IDLE on macOS. This allows +opening stub files by double clicking on them in the Finder. + bpo-28950: Apply IDLE syntax highlighting to `.pyi` files. Add util.py for common components. Patch by Alex Waygood and Terry Jan Reedy. @@ -29,6 +45,7 @@ What's New in IDLE 3.10.0 Released on 2021-10-04 ========================= +bpo-45193: Make completion boxes appear on Ubuntu again. bpo-40128: Mostly fix completions on macOS when not using tcl/tk 8.6.11 (as with 3.9). diff --git a/Lib/idlelib/README.txt b/Lib/idlelib/README.txt index 8870fda315e392..76aec58912f00e 100644 --- a/Lib/idlelib/README.txt +++ b/Lib/idlelib/README.txt @@ -16,8 +16,9 @@ and omissions and lag behind changes in idlelib. IDLELIB FILES +============= + Implementation files not in IDLE MENU are marked (nim). -Deprecated files and objects are listed separately as the end. Startup ------- @@ -33,22 +34,22 @@ autocomplete.py # Complete attribute names or filenames. autocomplete_w.py # Display completions. autoexpand.py # Expand word with previous word in file. browser.py # Create module browser window. +calltip.py # Create calltip text. calltip_w.py # Display calltip. -calltips.py # Create calltip text. codecontext.py # Show compound statement headers otherwise not visible. -colorizer.py # Colorize text (nim) +colorizer.py # Colorize text (nim). config.py # Load, fetch, and save configuration (nim). configdialog.py # Display user configuration dialogs. -config_help.py # Specify help source in configdialog. config_key.py # Change keybindings. -dynoption.py # Define mutable OptionMenu widget (nim). -debugobj.py # Define class used in stackviewer. -debugobj_r.py # Communicate objects between processes with rpc (nim). debugger.py # Debug code run from shell or editor; show window. debugger_r.py # Debug code run in remote process. +debugobj.py # Define class used in stackviewer. +debugobj_r.py # Communicate objects between processes with rpc (nim). delegator.py # Define base class for delegators (nim). +dynoption.py # Define mutable OptionMenu widget (nim) editor.py # Define most of editor and utility functions. filelist.py # Open files and manage list of open windows (nim). +format.py # Define format menu options. grep.py # Find all occurrences of pattern in multiple files. help.py # Display IDLE's html doc. help_about.py # Display About IDLE dialog. @@ -59,7 +60,6 @@ macosx.py # Help IDLE run on Macs (nim). mainmenu.py # Define most of IDLE menu. multicall.py # Wrap tk widget to allow multiple calls per event (nim). outwin.py # Create window for grep output. -paragraph.py # Re-wrap multiline strings and comments. parenmatch.py # Match fenceposts: (), [], and {}. pathbrowser.py # Create path browser window. percolator.py # Manage delegator stack (nim). @@ -69,22 +69,25 @@ query.py # Query user for information redirector.py # Intercept widget subcommands (for percolator) (nim). replace.py # Search and replace pattern in text. rpc.py # Communicate between idle and user processes (nim). -rstrip.py # Strip trailing whitespace. run.py # Manage user code execution subprocess. runscript.py # Check and run user code. scrolledlist.py # Define scrolledlist widget for IDLE (nim). search.py # Search for pattern in text. searchbase.py # Define base for search, replace, and grep dialogs. searchengine.py # Define engine for all 3 search dialogs. +sidebar.py # Define line number and shell prompt sidebars. +squeezer.py # Squeeze long shell output (nim). stackviewer.py # View stack after exception. statusbar.py # Define status bar for windows (nim). tabbedpages.py # Define tabbed pages widget (nim). textview.py # Define read-only text widget (nim). +tooltip.py # Define popups for calltips, squeezer (nim). tree.py # Define tree widget, used in browsers (nim). undo.py # Manage undo stack. -util.py # Define objects imported elsewhere with no dependencies (nim) +util.py # Define common objects imported elsewhere (nim). windows.py # Manage window list and define listed top level. zoomheight.py # Zoom window to full height of screen. +zzdummy.py # Example extension. Configuration ------------- @@ -98,6 +101,7 @@ Text CREDITS.txt # not maintained, displayed by About IDLE HISTORY.txt # NEWS up to July 2001 NEWS.txt # commits, displayed by About IDLE +NEWS2.txt # commits to Python2 README.txt # this file, displayed by About IDLE TODO.txt # needs review extend.txt # about writing extensions @@ -108,13 +112,10 @@ Subdirectories Icons # small image files idle_test # files for human test and automated unit tests -Unused and Deprecated files and objects (nim) ---------------------------------------------- -tooltip.py # unused - - IDLE MENUS +========== + Top level items and most submenu items are defined in mainmenu. Extensions add submenu items when active. The names given are found, quoted, in one of these modules, paired with a '<<pseudoevent>>'. @@ -160,63 +161,68 @@ Edit Show call tip # Calltips extension and CalltipWindow (& Hyperparser) Show surrounding parens # parenmatch (& Hyperparser) +Format (Editor only) [fFR = format.FormatRegion] + Format Paragraph # format.FormatParagraph.format_paragraph_event + Indent Region # fFR.indent_region_event + Dedent Region # fFR.dedent_region_event + Comment Out Reg. # fFR.comment_region_event + Uncomment Region # fFR.uncomment_region_event + Tabify Region # fFR.tabify_region_event + Untabify Region # fFR.untabify_region_event + Toggle Tabs # format.Indents.toggle_tabs_event + New Indent Width # format.Indents.change_indentwidth_event + Strip tailing whitespace # format.rstrip + Zin # zzdummy + Zout # zzdummy + +Run (Editor only) + Run Module # runscript.ScriptBinding.run_module_event + Run... Customized # runscript.ScriptBinding.run_custom_event + Check Module # runscript.ScriptBinding.check_module_event + Python Shell # pyshell.Pyshell, pyshell.ModifiedInterpreter + Shell # pyshell View Last Restart # pyshell.PyShell.view_restart_mark Restart Shell # pyshell.PyShell.restart_shell + Previous History # history.History.history_prev + Next History # history.History.history_next Interrupt Execution # pyshell.PyShell.cancel_callback Debug (Shell only) - Go to File/Line + Go to File/Line # outwin.OutputWindow.goto_file_line debugger # debugger, debugger_r, PyShell.toggle_debugger Stack Viewer # stackviewer, PyShell.open_stack_viewer Auto-open Stack Viewer # stackviewer -Format (Editor only) - Indent Region # eEW.indent_region_event - Dedent Region # eEW.dedent_region_event - Comment Out Reg. # eEW.comment_region_event - Uncomment Region # eEW.uncomment_region_event - Tabify Region # eEW.tabify_region_event - Untabify Region # eEW.untabify_region_event - Toggle Tabs # eEW.toggle_tabs_event - New Indent Width # eEW.change_indentwidth_event - Format Paragraph # paragraph extension - --- - Strip tailing whitespace # rstrip extension - -Run (Editor only) - Python Shell # pyshell - --- - Check Module # runscript - Run Module # runscript - Options - Configure IDLE # eEW.config_dialog, configdialog - (tabs in the dialog) - Font tab # config-main.def - Highlight tab # query, config-highlight.def - Keys tab # query, config_key, config_keys.def - General tab # config_help, config-main.def - Extensions tab # config-extensions.def, corresponding .py + Configure IDLE # eEW.config_dialog, config, configdialog (cd) + (Parts of the dialog) + Buttons # cd.ConfigDialog + Font tab # cd.FontPage, config-main.def + Highlight tab # cd.HighPage, query, config-highlight.def + Keys tab # cd.KeysPage, query, config_key, config_keys.def + Windows tab # cd.WinPage, config_main.def + Shell/Ed tab # cd.ShedPage, config-main.def + Extensions tab # config-extensions.def, corresponding .py files --- - Code Context (ed)# codecontext extension + ... Code Context # codecontext + ... Line Numbers # sidebar + Zoomheight # zoomheight Window - Zoomheight # zoomheight extension - --- <open windows> # windows Help About IDLE # eEW.about_dialog, help_about.AboutDialog --- - IDLE Help # eEW.help_dialog, helpshow_idlehelp - Python Doc # eEW.python_docs + IDLE Help # eEW.help_dialog, help.show_idlehelp + Python Docs # eEW.python_docs Turtle Demo # eEW.open_turtle_demo --- <other help sources> <Context Menu> (right click) - Defined in editor, PyShelpyshellut + Defined in editor, PyShell.pyshell Cut Copy Paste @@ -232,11 +238,14 @@ Help Center Insert # eEW.center_insert_event -CODE STYLE -- Generally PEP 8. +OTHER TOPICS +============ + +Generally use PEP 8. -import ------- -Put import at the top, unless there is a good reason otherwise. +import statements +----------------- +Put imports at the top, unless there is a good reason otherwise. PEP 8 says to group stdlib, 3rd-party dependencies, and package imports. For idlelib, the groups are general stdlib, tkinter, and idlelib. Sort modules within each group, except that tkinter.ttk follows tkinter. @@ -250,3 +259,32 @@ htest function def or "if __name__ == '__main__'" clause. Within module imports like "from idlelib.mod import class" may cause circular imports to deadlock. Even without this, circular imports may require at least one of the imports to be delayed until a function call. + +What's New entries +------------------ + +Repository directory Doc/whatsnew/ has a file 3.n.rst for each 3.n +Python version. For the first entry in each file, add subsection +'IDLE and idlelib', in alphabetical position, to the 'Improved Modules' +section. For the rest of cpython, entries to 3.(n+1).rst begin with +the release of 3.n.0b1. For IDLE, entries for features backported from +'main' to '3.n' during its beta period do not got in 3.(n+1).rst. The +latter usually gets its first entry during the 3.n.0 candidate period +or after the 3.n.0 release. + +When, as per PEP 434, feature changes are backported, entries are placed +in the 3.n.rst file *in the main branch* for each Python version n that +gets the backport. (Note: the format of entries have varied between +versions.) Add a line "New in 3.n maintenance releases." before the +first back-ported feature after 3.n.0 is released. Since each older +version file gets a different number of backports, it is easiest to +make a separate PR for each file and label it with the backports +needed. + +Github repository and issues +---------------------------- + +The CPython repository is https://github.com/python/cpython. The +IDLE Issues listing is https://github.com/orgs/python/projects/31. +The main classification is by Topic, based on the IDLE menu. View the +topics list by clicking the [<]] button in the upper right. diff --git a/Lib/idlelib/browser.py b/Lib/idlelib/browser.py index 4da2d4071ac191..4fe64dced60aca 100644 --- a/Lib/idlelib/browser.py +++ b/Lib/idlelib/browser.py @@ -6,7 +6,6 @@ (or recheck on window popup) - add popup menu with more options (e.g. doc strings, base classes, imports) - add base classes to class browser tree -- finish removing limitation to x.py files (ModuleBrowserTreeItem) """ import os @@ -16,12 +15,22 @@ from idlelib.config import idleConf from idlelib import pyshell from idlelib.tree import TreeNode, TreeItem, ScrolledCanvas +from idlelib.util import py_extensions from idlelib.window import ListedToplevel file_open = None # Method...Item and Class...Item use this. # Normally pyshell.flist.open, but there is no pyshell.flist for htest. +# The browser depends on pyclbr and importlib which do not support .pyi files. +browseable_extension_blocklist = ('.pyi',) + + +def is_browseable_extension(path): + _, ext = os.path.splitext(path) + ext = os.path.normcase(ext) + return ext in py_extensions and ext not in browseable_extension_blocklist + def transform_children(child_dict, modname=None): """Transform a child dictionary to an ordered sequence of objects. @@ -76,8 +85,8 @@ def __init__(self, master, path, *, _htest=False, _utest=False): Instance variables: name: Module name. - file: Full path and module with .py extension. Used in - creating ModuleBrowserTreeItem as the rootnode for + file: Full path and module with supported extension. + Used in creating ModuleBrowserTreeItem as the rootnode for the tree and subsequently in the children. """ self.master = master @@ -161,22 +170,22 @@ def GetSubList(self): def OnDoubleClick(self): "Open a module in an editor window when double clicked." - if os.path.normcase(self.file[-3:]) != ".py": + if not is_browseable_extension(self.file): return if not os.path.exists(self.file): return file_open(self.file) def IsExpandable(self): - "Return True if Python (.py) file." - return os.path.normcase(self.file[-3:]) == ".py" + "Return True if Python file." + return is_browseable_extension(self.file) def listchildren(self): "Return sequenced classes and functions in the module." - dir, base = os.path.split(self.file) - name, ext = os.path.splitext(base) - if os.path.normcase(ext) != ".py": + if not is_browseable_extension(self.file): return [] + dir, base = os.path.split(self.file) + name, _ = os.path.splitext(base) try: tree = pyclbr.readmodule_ex(name, [dir] + sys.path) except ImportError: diff --git a/Lib/idlelib/config.py b/Lib/idlelib/config.py index 5ce5f4a4f7bd0d..2b09d79470b47c 100644 --- a/Lib/idlelib/config.py +++ b/Lib/idlelib/config.py @@ -578,7 +578,7 @@ def IsCoreBinding(self, virtualEvent): """ return ('<<'+virtualEvent+'>>') in self.GetCoreKeys() -# TODO make keyBindins a file or class attribute used for test above +# TODO make keyBindings a file or class attribute used for test above # and copied in function below. former_extension_events = { # Those with user-configurable keys. diff --git a/Lib/idlelib/configdialog.py b/Lib/idlelib/configdialog.py index d5748a64a798b7..8e478d743fb767 100644 --- a/Lib/idlelib/configdialog.py +++ b/Lib/idlelib/configdialog.py @@ -11,7 +11,7 @@ """ import re -from tkinter import (Toplevel, Listbox, Scale, Canvas, +from tkinter import (Toplevel, Listbox, Canvas, StringVar, BooleanVar, IntVar, TRUE, FALSE, TOP, BOTTOM, RIGHT, LEFT, SOLID, GROOVE, NONE, BOTH, X, Y, W, E, EW, NS, NSEW, NW, @@ -121,7 +121,7 @@ def create_widgets(self): self.winpage = WinPage(note) self.shedpage = ShedPage(note) - note.add(self.fontpage, text='Fonts/Tabs') + note.add(self.fontpage, text=' Fonts ') note.add(self.highpage, text='Highlights') note.add(self.keyspage, text=' Keys ') note.add(self.winpage, text=' Windows ') diff --git a/Lib/idlelib/editor.py b/Lib/idlelib/editor.py index 6c52efd655e121..08d6aa2efde22a 100644 --- a/Lib/idlelib/editor.py +++ b/Lib/idlelib/editor.py @@ -86,10 +86,20 @@ def __init__(self, flist=None, filename=None, key=None, root=None): dochome = os.path.join(basepath, pyver, 'Doc', 'index.html') elif sys.platform[:3] == 'win': - chmfile = os.path.join(sys.base_prefix, 'Doc', - 'Python%s.chm' % _sphinx_version()) - if os.path.isfile(chmfile): - dochome = chmfile + import winreg # Windows only, block only executed once. + docfile = '' + KEY = (rf"Software\Python\PythonCore\{sys.winver}" + r"\Help\Main Python Documentation") + try: + docfile = winreg.QueryValue(winreg.HKEY_CURRENT_USER, KEY) + except FileNotFoundError: + try: + docfile = winreg.QueryValue(winreg.HKEY_LOCAL_MACHINE, + KEY) + except FileNotFoundError: + pass + if os.path.isfile(docfile): + dochome = docfile elif sys.platform == 'darwin': # documentation may be stored inside a python framework dochome = os.path.join(sys.base_prefix, @@ -1301,7 +1311,7 @@ def smart_backspace_event(self, event): want = ((have - 1) // self.indentwidth) * self.indentwidth # Debug prompt is multilined.... ncharsdeleted = 0 - while 1: + while True: chars = chars[:-1] ncharsdeleted = ncharsdeleted + 1 have = len(chars.expandtabs(tabwidth)) diff --git a/Lib/idlelib/help.html b/Lib/idlelib/help.html index 41626ec5abb561..722406b81a8ae6 100644 --- a/Lib/idlelib/help.html +++ b/Lib/idlelib/help.html @@ -1,24 +1,26 @@ <!DOCTYPE html> -<html> +<html lang="en"> <head> <meta charset="utf-8" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>IDLE &#8212; Python 3.11.0a4 documentation</title> - <link rel="stylesheet" href="../_static/pydoctheme.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> - <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + <title>IDLE &#8212; Python 3.12.0a0 documentation</title><meta name="viewport" content="width=device-width, initial-scale=1.0"> + + <link rel="stylesheet" type="text/css" href="../_static/pygments.css" /> + <link rel="stylesheet" type="text/css" href="../_static/pydoctheme.css?2022.1" /> + + <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script> <script src="../_static/jquery.js"></script> <script src="../_static/underscore.js"></script> + <script src="../_static/_sphinx_javascript_frameworks_compat.js"></script> <script src="../_static/doctools.js"></script> - <script src="../_static/language_data.js"></script> <script src="../_static/sidebar.js"></script> <link rel="search" type="application/opensearchdescription+xml" - title="Search within Python 3.11.0a4 documentation" + title="Search within Python 3.12.0a0 documentation" href="../_static/opensearch.xml"/> <link rel="author" title="About these documents" href="../about.html" /> <link rel="index" title="Index" href="../genindex.html" /> @@ -39,15 +41,111 @@ } } </style> +<link rel="shortcut icon" type="image/png" href="../_static/py.svg" /> + <script type="text/javascript" src="../_static/copybutton.js"></script> + <script type="text/javascript" src="../_static/menu.js"></script> - <link rel="shortcut icon" type="image/png" href="../_static/py.png" /> - - <script type="text/javascript" src="../_static/copybutton.js"></script> - - + </head> +<body> +<div class="mobile-nav"> + <input type="checkbox" id="menuToggler" class="toggler__input" aria-controls="navigation" + aria-pressed="false" aria-expanded="false" role="button" aria-label="Menu" /> + <label for="menuToggler" class="toggler__label"> + <span></span> + </label> + <nav class="nav-content" role="navigation"> + <a href="https://www.python.org/" class="nav-logo"> + <img src="../_static/py.svg" alt="Logo"/> + </a> + <div class="version_switcher_placeholder"></div> + <form role="search" class="search" action="../search.html" method="get"> + <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" class="search-icon"> + <path fill-rule="nonzero" + d="M15.5 14h-.79l-.28-.27a6.5 6.5 0 001.48-5.34c-.47-2.78-2.79-5-5.59-5.34a6.505 6.505 0 00-7.27 7.27c.34 2.8 2.56 5.12 5.34 5.59a6.5 6.5 0 005.34-1.48l.27.28v.79l4.25 4.25c.41.41 1.08.41 1.49 0 .41-.41.41-1.08 0-1.49L15.5 14zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z" fill="#444"></path> + </svg> + <input type="text" name="q" aria-label="Quick search"/> + <input type="submit" value="Go"/> + </form> + </nav> + <div class="menu-wrapper"> + <nav class="menu" role="navigation" aria-label="main navigation"> + <div class="language_switcher_placeholder"></div> + <div> + <h3><a href="../contents.html">Table of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">IDLE</a><ul> +<li><a class="reference internal" href="#menus">Menus</a><ul> +<li><a class="reference internal" href="#file-menu-shell-and-editor">File menu (Shell and Editor)</a></li> +<li><a class="reference internal" href="#edit-menu-shell-and-editor">Edit menu (Shell and Editor)</a></li> +<li><a class="reference internal" href="#format-menu-editor-window-only">Format menu (Editor window only)</a></li> +<li><a class="reference internal" href="#run-menu-editor-window-only">Run menu (Editor window only)</a></li> +<li><a class="reference internal" href="#shell-menu-shell-window-only">Shell menu (Shell window only)</a></li> +<li><a class="reference internal" href="#debug-menu-shell-window-only">Debug menu (Shell window only)</a></li> +<li><a class="reference internal" href="#options-menu-shell-and-editor">Options menu (Shell and Editor)</a></li> +<li><a class="reference internal" href="#window-menu-shell-and-editor">Window menu (Shell and Editor)</a></li> +<li><a class="reference internal" href="#help-menu-shell-and-editor">Help menu (Shell and Editor)</a></li> +<li><a class="reference internal" href="#context-menus">Context menus</a></li> +</ul> +</li> +<li><a class="reference internal" href="#editing-and-navigation">Editing and Navigation</a><ul> +<li><a class="reference internal" href="#editor-windows">Editor windows</a></li> +<li><a class="reference internal" href="#key-bindings">Key bindings</a></li> +<li><a class="reference internal" href="#automatic-indentation">Automatic indentation</a></li> +<li><a class="reference internal" href="#search-and-replace">Search and Replace</a></li> +<li><a class="reference internal" href="#completions">Completions</a></li> +<li><a class="reference internal" href="#calltips">Calltips</a></li> +<li><a class="reference internal" href="#code-context">Code Context</a></li> +<li><a class="reference internal" href="#shell-window">Shell window</a></li> +<li><a class="reference internal" href="#text-colors">Text colors</a></li> +</ul> +</li> +<li><a class="reference internal" href="#startup-and-code-execution">Startup and Code Execution</a><ul> +<li><a class="reference internal" href="#command-line-usage">Command line usage</a></li> +<li><a class="reference internal" href="#startup-failure">Startup failure</a></li> +<li><a class="reference internal" href="#running-user-code">Running user code</a></li> +<li><a class="reference internal" href="#user-output-in-shell">User output in Shell</a></li> +<li><a class="reference internal" href="#developing-tkinter-applications">Developing tkinter applications</a></li> +<li><a class="reference internal" href="#running-without-a-subprocess">Running without a subprocess</a></li> +</ul> +</li> +<li><a class="reference internal" href="#help-and-preferences">Help and Preferences</a><ul> +<li><a class="reference internal" href="#help-sources">Help sources</a></li> +<li><a class="reference internal" href="#setting-preferences">Setting preferences</a></li> +<li><a class="reference internal" href="#idle-on-macos">IDLE on macOS</a></li> +<li><a class="reference internal" href="#extensions">Extensions</a></li> +</ul> +</li> +<li><a class="reference internal" href="#module-idlelib">idlelib</a></li> +</ul> +</li> +</ul> + </div> + <div> + <h4>Previous topic</h4> + <p class="topless"><a href="tkinter.tix.html" + title="previous chapter"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter.tix</span></code> — Extension widgets for Tk</a></p> + </div> + <div> + <h4>Next topic</h4> + <p class="topless"><a href="development.html" + title="next chapter">Development Tools</a></p> + </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="../bugs.html">Report a Bug</a></li> + <li> + <a href="https://github.com/python/cpython/blob/main/Doc/library/idle.rst" + rel="nofollow">Show Source + </a> + </li> + </ul> + </div> + </nav> + </div> +</div> - </head><body> <div class="related" role="navigation" aria-label="related navigation"> <h3>Navigation</h3> @@ -65,32 +163,35 @@ <h3>Navigation</h3> <a href="tkinter.tix.html" title="tkinter.tix — Extension widgets for Tk" accesskey="P">previous</a> |</li> - <li><img src="../_static/py.png" alt="" - style="vertical-align: middle; margin-top: -1px"/></li> - <li><a href="https://www.python.org/">Python</a> &#187;</li> - + <li><img src="../_static/py.svg" alt="python logo" style="vertical-align: middle; margin-top: -1px"/></li> + <li><a href="https://www.python.org/">Python</a> &#187;</li> + <li class="switchers"> + <div class="language_switcher_placeholder"></div> + <div class="version_switcher_placeholder"></div> + </li> + <li> + </li> <li id="cpython-language-and-version"> - <a href="../index.html">3.11.0a4 Documentation</a> &#187; + <a href="../index.html">3.12.0a0 Documentation</a> &#187; </li> <li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> &#187;</li> <li class="nav-item nav-item-2"><a href="tk.html" accesskey="U">Graphical User Interfaces with Tk</a> &#187;</li> <li class="nav-item nav-item-this"><a href="">IDLE</a></li> - <li class="right"> + <li class="right"> - <div class="inline-search" style="display: none" role="search"> + <div class="inline-search" role="search"> <form class="inline-search" action="../search.html" method="get"> - <input placeholder="Quick search" type="text" name="q" /> + <input placeholder="Quick search" aria-label="Quick search" type="text" name="q" /> <input type="submit" value="Go" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </div> - <script type="text/javascript">$('.inline-search').show(0);</script> - | - </li> + | + </li> </ul> </div> @@ -100,8 +201,8 @@ <h3>Navigation</h3> <div class="bodywrapper"> <div class="body" role="main"> - <div class="section" id="idle"> -<span id="id1"></span><h1>IDLE<a class="headerlink" href="#idle" title="Permalink to this headline">¶</a></h1> + <section id="idle"> +<span id="id1"></span><h1>IDLE<a class="headerlink" href="#idle" title="Permalink to this heading">¶</a></h1> <p><strong>Source code:</strong> <a class="reference external" href="https://github.com/python/cpython/tree/main/Lib/idlelib/">Lib/idlelib/</a></p> <hr class="docutils" id="index-0" /> <p>IDLE is Python’s Integrated Development and Learning Environment.</p> @@ -119,8 +220,8 @@ <h3>Navigation</h3> of global and local namespaces</p></li> <li><p>configuration, browsers, and other dialogs</p></li> </ul> -<div class="section" id="menus"> -<h2>Menus<a class="headerlink" href="#menus" title="Permalink to this headline">¶</a></h2> +<section id="menus"> +<h2>Menus<a class="headerlink" href="#menus" title="Permalink to this heading">¶</a></h2> <p>IDLE has two main window types, the Shell window and the Editor window. It is possible to have multiple editor windows simultaneously. On Windows and Linux, each has its own top menu. Each menu documented below indicates @@ -131,20 +232,20 @@ <h2>Menus<a class="headerlink" href="#menus" title="Permalink to this headline"> <p>On macOS, there is one application menu. It dynamically changes according to the window currently selected. It has an IDLE menu, and some entries described below are moved around to conform to Apple guidelines.</p> -<div class="section" id="file-menu-shell-and-editor"> -<h3>File menu (Shell and Editor)<a class="headerlink" href="#file-menu-shell-and-editor" title="Permalink to this headline">¶</a></h3> +<section id="file-menu-shell-and-editor"> +<h3>File menu (Shell and Editor)<a class="headerlink" href="#file-menu-shell-and-editor" title="Permalink to this heading">¶</a></h3> <dl class="simple"> <dt>New File</dt><dd><p>Create a new file editing window.</p> </dd> <dt>Open…</dt><dd><p>Open an existing file with an Open dialog.</p> </dd> -<dt>Recent Files</dt><dd><p>Open a list of recent files. Click one to open it.</p> -</dd> <dt>Open Module…</dt><dd><p>Open an existing module (searches sys.path).</p> </dd> +<dt>Recent Files</dt><dd><p>Open a list of recent files. Click one to open it.</p> +</dd> </dl> <dl class="simple" id="index-1"> -<dt>Class Browser</dt><dd><p>Show functions, classes, and methods in the current Editor file in a +<dt>Module Browser</dt><dd><p>Show functions, classes, and methods in the current Editor file in a tree structure. In the shell, open a module first.</p> </dd> <dt>Path Browser</dt><dd><p>Show sys.path directories, modules, functions, classes and methods in a @@ -156,10 +257,13 @@ <h3>File menu (Shell and Editor)<a class="headerlink" href="#file-menu-shell-and do Save As instead.</p> </dd> <dt>Save As…</dt><dd><p>Save the current window with a Save As dialog. The file saved becomes the -new associated file for the window.</p> +new associated file for the window. (If your file namager is set to hide +extensions, the current extension will be omitted in the file name box. +If the new filename has no ‘.’, ‘.py’ and ‘.txt’ will be added for Python +and text files, except that on macOS Aqua,’.py’ is added for all files.)</p> </dd> <dt>Save Copy As…</dt><dd><p>Save the current window to different file without changing the associated -file.</p> +file. (See Save As note above about filename extensions.)</p> </dd> <dt>Print Window</dt><dd><p>Print the current window to the default printer.</p> </dd> @@ -170,15 +274,17 @@ <h3>File menu (Shell and Editor)<a class="headerlink" href="#file-menu-shell-and <dt>Exit IDLE</dt><dd><p>Close all windows and quit IDLE (ask to save unsaved edit windows).</p> </dd> </dl> -</div> -<div class="section" id="edit-menu-shell-and-editor"> -<h3>Edit menu (Shell and Editor)<a class="headerlink" href="#edit-menu-shell-and-editor" title="Permalink to this headline">¶</a></h3> +</section> +<section id="edit-menu-shell-and-editor"> +<h3>Edit menu (Shell and Editor)<a class="headerlink" href="#edit-menu-shell-and-editor" title="Permalink to this heading">¶</a></h3> <dl class="simple"> <dt>Undo</dt><dd><p>Undo the last change to the current window. A maximum of 1000 changes may be undone.</p> </dd> <dt>Redo</dt><dd><p>Redo the last undone change to the current window.</p> </dd> +<dt>Select All</dt><dd><p>Select the entire contents of the current window.</p> +</dd> <dt>Cut</dt><dd><p>Copy selection into the system-wide clipboard; then delete the selection.</p> </dd> <dt>Copy</dt><dd><p>Copy selection into the system-wide clipboard.</p> @@ -188,8 +294,6 @@ <h3>Edit menu (Shell and Editor)<a class="headerlink" href="#edit-menu-shell-and </dl> <p>The clipboard functions are also available in context menus.</p> <dl class="simple"> -<dt>Select All</dt><dd><p>Select the entire contents of the current window.</p> -</dd> <dt>Find…</dt><dd><p>Open a search dialog with many options</p> </dd> <dt>Find Again</dt><dd><p>Repeat the last search, if there is one.</p> @@ -210,17 +314,21 @@ <h3>Edit menu (Shell and Editor)<a class="headerlink" href="#edit-menu-shell-and <dt>Expand Word</dt><dd><p>Expand a prefix you have typed to match a full word in the same window; repeat to get a different expansion.</p> </dd> -<dt>Show call tip</dt><dd><p>After an unclosed parenthesis for a function, open a small window with +<dt>Show Call Tip</dt><dd><p>After an unclosed parenthesis for a function, open a small window with function parameter hints. See <a class="reference internal" href="#calltips"><span class="std std-ref">Calltips</span></a> in the Editing and navigation section below.</p> </dd> -<dt>Show surrounding parens</dt><dd><p>Highlight the surrounding parenthesis.</p> +<dt>Show Surrounding Parens</dt><dd><p>Highlight the surrounding parenthesis.</p> </dd> </dl> -</div> -<div class="section" id="format-menu-editor-window-only"> -<span id="format-menu"></span><h3>Format menu (Editor window only)<a class="headerlink" href="#format-menu-editor-window-only" title="Permalink to this headline">¶</a></h3> +</section> +<section id="format-menu-editor-window-only"> +<span id="format-menu"></span><h3>Format menu (Editor window only)<a class="headerlink" href="#format-menu-editor-window-only" title="Permalink to this heading">¶</a></h3> <dl class="simple"> +<dt>Format Paragraph</dt><dd><p>Reformat the current blank-line-delimited paragraph in comment block or +multiline string or selected line in a string. All lines in the +paragraph will be formatted to less than N columns, where N defaults to 72.</p> +</dd> <dt>Indent Region</dt><dd><p>Shift selected lines right by the indent width (default 4 spaces).</p> </dd> <dt>Dedent Region</dt><dd><p>Shift selected lines left by the indent width (default 4 spaces).</p> @@ -239,19 +347,15 @@ <h3>Edit menu (Shell and Editor)<a class="headerlink" href="#edit-menu-shell-and <dt>New Indent Width</dt><dd><p>Open a dialog to change indent width. The accepted default by the Python community is 4 spaces.</p> </dd> -<dt>Format Paragraph</dt><dd><p>Reformat the current blank-line-delimited paragraph in comment block or -multiline string or selected line in a string. All lines in the -paragraph will be formatted to less than N columns, where N defaults to 72.</p> -</dd> -<dt>Strip trailing whitespace</dt><dd><p>Remove trailing space and other whitespace characters after the last +<dt>Strip Trailing Chitespace</dt><dd><p>Remove trailing space and other whitespace characters after the last non-whitespace character of a line by applying str.rstrip to each line, including lines within multiline strings. Except for Shell windows, remove extra newlines at the end of the file.</p> </dd> </dl> -</div> -<div class="section" id="run-menu-editor-window-only"> -<span id="index-2"></span><h3>Run menu (Editor window only)<a class="headerlink" href="#run-menu-editor-window-only" title="Permalink to this headline">¶</a></h3> +</section> +<section id="run-menu-editor-window-only"> +<span id="index-2"></span><h3>Run menu (Editor window only)<a class="headerlink" href="#run-menu-editor-window-only" title="Permalink to this heading">¶</a></h3> <dl class="simple" id="run-module"> <dt>Run Module</dt><dd><p>Do <a class="reference internal" href="#check-module"><span class="std std-ref">Check Module</span></a>. If no error, restart the shell to clean the environment, then execute the module. Output is displayed in the Shell @@ -280,9 +384,9 @@ <h3>Edit menu (Shell and Editor)<a class="headerlink" href="#edit-menu-shell-and <dt>Python Shell</dt><dd><p>Open or wake up the Python Shell window.</p> </dd> </dl> -</div> -<div class="section" id="shell-menu-shell-window-only"> -<h3>Shell menu (Shell window only)<a class="headerlink" href="#shell-menu-shell-window-only" title="Permalink to this headline">¶</a></h3> +</section> +<section id="shell-menu-shell-window-only"> +<h3>Shell menu (Shell window only)<a class="headerlink" href="#shell-menu-shell-window-only" title="Permalink to this heading">¶</a></h3> <dl class="simple"> <dt>View Last Restart</dt><dd><p>Scroll the shell window to the last Shell restart.</p> </dd> @@ -295,9 +399,9 @@ <h3>Shell menu (Shell window only)<a class="headerlink" href="#shell-menu-shell- <dt>Interrupt Execution</dt><dd><p>Stop a running program.</p> </dd> </dl> -</div> -<div class="section" id="debug-menu-shell-window-only"> -<h3>Debug menu (Shell window only)<a class="headerlink" href="#debug-menu-shell-window-only" title="Permalink to this headline">¶</a></h3> +</section> +<section id="debug-menu-shell-window-only"> +<h3>Debug menu (Shell window only)<a class="headerlink" href="#debug-menu-shell-window-only" title="Permalink to this heading">¶</a></h3> <dl class="simple"> <dt>Go to File/Line</dt><dd><p>Look on the current line. with the cursor, and the line above for a filename and line number. If found, open the file if not already open, and show the @@ -317,9 +421,9 @@ <h3>Debug menu (Shell window only)<a class="headerlink" href="#debug-menu-shell- <dt>Auto-open Stack Viewer</dt><dd><p>Toggle automatically opening the stack viewer on an unhandled exception.</p> </dd> </dl> -</div> -<div class="section" id="options-menu-shell-and-editor"> -<h3>Options menu (Shell and Editor)<a class="headerlink" href="#options-menu-shell-and-editor" title="Permalink to this headline">¶</a></h3> +</section> +<section id="options-menu-shell-and-editor"> +<h3>Options menu (Shell and Editor)<a class="headerlink" href="#options-menu-shell-and-editor" title="Permalink to this heading">¶</a></h3> <dl class="simple"> <dt>Configure IDLE</dt><dd><p>Open a configuration dialog and change preferences for the following: fonts, indentation, keybindings, text color themes, startup windows and @@ -349,14 +453,14 @@ <h3>Options menu (Shell and Editor)<a class="headerlink" href="#options-menu-she no effect when a window is maximized.</p> </dd> </dl> -</div> -<div class="section" id="window-menu-shell-and-editor"> -<h3>Window menu (Shell and Editor)<a class="headerlink" href="#window-menu-shell-and-editor" title="Permalink to this headline">¶</a></h3> +</section> +<section id="window-menu-shell-and-editor"> +<h3>Window menu (Shell and Editor)<a class="headerlink" href="#window-menu-shell-and-editor" title="Permalink to this heading">¶</a></h3> <p>Lists the names of all open windows; select one to bring it to the foreground (deiconifying it if necessary).</p> -</div> -<div class="section" id="help-menu-shell-and-editor"> -<h3>Help menu (Shell and Editor)<a class="headerlink" href="#help-menu-shell-and-editor" title="Permalink to this headline">¶</a></h3> +</section> +<section id="help-menu-shell-and-editor"> +<h3>Help menu (Shell and Editor)<a class="headerlink" href="#help-menu-shell-and-editor" title="Permalink to this heading">¶</a></h3> <dl class="simple"> <dt>About IDLE</dt><dd><p>Display version, copyright, license, credits, and more.</p> </dd> @@ -372,9 +476,9 @@ <h3>Help menu (Shell and Editor)<a class="headerlink" href="#help-menu-shell-and <p>Additional help sources may be added here with the Configure IDLE dialog under the General tab. See the <a class="reference internal" href="#help-sources"><span class="std std-ref">Help sources</span></a> subsection below for more on Help menu choices.</p> -</div> -<div class="section" id="context-menus"> -<span id="index-4"></span><h3>Context Menus<a class="headerlink" href="#context-menus" title="Permalink to this headline">¶</a></h3> +</section> +<section id="context-menus"> +<span id="index-4"></span><h3>Context menus<a class="headerlink" href="#context-menus" title="Permalink to this heading">¶</a></h3> <p>Open a context menu by right-clicking in a window (Control-click on macOS). Context menus have the standard clipboard functions also on the Edit menu.</p> <dl class="simple"> @@ -407,12 +511,12 @@ <h3>Help menu (Shell and Editor)<a class="headerlink" href="#help-menu-shell-and the code above and the prompt below down to a ‘Squeezed text’ label.</p> </dd> </dl> -</div> -</div> -<div class="section" id="editing-and-navigation"> -<span id="id2"></span><h2>Editing and navigation<a class="headerlink" href="#editing-and-navigation" title="Permalink to this headline">¶</a></h2> -<div class="section" id="editor-windows"> -<h3>Editor windows<a class="headerlink" href="#editor-windows" title="Permalink to this headline">¶</a></h3> +</section> +</section> +<section id="editing-and-navigation"> +<span id="id2"></span><h2>Editing and Navigation<a class="headerlink" href="#editing-and-navigation" title="Permalink to this heading">¶</a></h2> +<section id="editor-windows"> +<h3>Editor windows<a class="headerlink" href="#editor-windows" title="Permalink to this heading">¶</a></h3> <p>IDLE may open editor windows when it starts, depending on settings and how you start IDLE. Thereafter, use the File menu. There can be only one open editor window for a given file.</p> @@ -422,41 +526,41 @@ <h3>Editor windows<a class="headerlink" href="#editor-windows" title="Permalink column numbers with 0.</p> <p>IDLE assumes that files with a known .py* extension contain Python code and that other files do not. Run Python code with the Run menu.</p> -</div> -<div class="section" id="key-bindings"> -<h3>Key bindings<a class="headerlink" href="#key-bindings" title="Permalink to this headline">¶</a></h3> +</section> +<section id="key-bindings"> +<h3>Key bindings<a class="headerlink" href="#key-bindings" title="Permalink to this heading">¶</a></h3> <p>In this section, ‘C’ refers to the <kbd class="kbd docutils literal notranslate">Control</kbd> key on Windows and Unix and the <kbd class="kbd docutils literal notranslate">Command</kbd> key on macOS.</p> <ul> <li><p><kbd class="kbd docutils literal notranslate">Backspace</kbd> deletes to the left; <kbd class="kbd docutils literal notranslate">Del</kbd> deletes to the right</p></li> -<li><p><kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">Backspace</kbd></kbd> delete word left; <kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">Del</kbd></kbd> delete word to the right</p></li> -<li><p>Arrow keys and <kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">Page</kbd> <kbd class="kbd docutils literal notranslate">Up</kbd></kbd>/<kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">Page</kbd> <kbd class="kbd docutils literal notranslate">Down</kbd></kbd> to move around</p></li> -<li><p><kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">LeftArrow</kbd></kbd> and <kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">RightArrow</kbd></kbd> moves by words</p></li> +<li><p><kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">Backspace</kbd></kbd> delete word left; <kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">Del</kbd></kbd> delete word to the right</p></li> +<li><p>Arrow keys and <kbd class="kbd docutils literal notranslate">Page Up</kbd>/<kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">Page</kbd> <kbd class="kbd docutils literal notranslate">Down</kbd></kbd> to move around</p></li> +<li><p><kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">LeftArrow</kbd></kbd> and <kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">RightArrow</kbd></kbd> moves by words</p></li> <li><p><kbd class="kbd docutils literal notranslate">Home</kbd>/<kbd class="kbd docutils literal notranslate">End</kbd> go to begin/end of line</p></li> -<li><p><kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">Home</kbd></kbd>/<kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">End</kbd></kbd> go to begin/end of file</p></li> +<li><p><kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">Home</kbd></kbd>/<kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">End</kbd></kbd> go to begin/end of file</p></li> <li><p>Some useful Emacs bindings are inherited from Tcl/Tk:</p> <blockquote> <div><ul class="simple"> -<li><p><kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">a</kbd></kbd> beginning of line</p></li> -<li><p><kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">e</kbd></kbd> end of line</p></li> -<li><p><kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">k</kbd></kbd> kill line (but doesn’t put it in clipboard)</p></li> -<li><p><kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">l</kbd></kbd> center window around the insertion point</p></li> -<li><p><kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">b</kbd></kbd> go backward one character without deleting (usually you can +<li><p><kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">a</kbd></kbd> beginning of line</p></li> +<li><p><kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">e</kbd></kbd> end of line</p></li> +<li><p><kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">k</kbd></kbd> kill line (but doesn’t put it in clipboard)</p></li> +<li><p><kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">l</kbd></kbd> center window around the insertion point</p></li> +<li><p><kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">b</kbd></kbd> go backward one character without deleting (usually you can also use the cursor key for this)</p></li> -<li><p><kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">f</kbd></kbd> go forward one character without deleting (usually you can +<li><p><kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">f</kbd></kbd> go forward one character without deleting (usually you can also use the cursor key for this)</p></li> -<li><p><kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">p</kbd></kbd> go up one line (usually you can also use the cursor key for +<li><p><kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">p</kbd></kbd> go up one line (usually you can also use the cursor key for this)</p></li> -<li><p><kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">d</kbd></kbd> delete next character</p></li> +<li><p><kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">d</kbd></kbd> delete next character</p></li> </ul> </div></blockquote> </li> </ul> -<p>Standard keybindings (like <kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">c</kbd></kbd> to copy and <kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">v</kbd></kbd> to paste) +<p>Standard keybindings (like <kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">c</kbd></kbd> to copy and <kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">v</kbd></kbd> to paste) may work. Keybindings are selected in the Configure IDLE dialog.</p> -</div> -<div class="section" id="automatic-indentation"> -<h3>Automatic indentation<a class="headerlink" href="#automatic-indentation" title="Permalink to this headline">¶</a></h3> +</section> +<section id="automatic-indentation"> +<h3>Automatic indentation<a class="headerlink" href="#automatic-indentation" title="Permalink to this heading">¶</a></h3> <p>After a block-opening statement, the next line is indented by 4 spaces (in the Python Shell window by one tab). After certain keywords (break, return etc.) the next line is dedented. In leading indentation, <kbd class="kbd docutils literal notranslate">Backspace</kbd> deletes up @@ -465,9 +569,16 @@ <h3>Automatic indentation<a class="headerlink" href="#automatic-indentation" tit are restricted to four spaces due to Tcl/Tk limitations.</p> <p>See also the indent/dedent region commands on the <a class="reference internal" href="#format-menu"><span class="std std-ref">Format menu</span></a>.</p> -</div> -<div class="section" id="completions"> -<span id="id3"></span><h3>Completions<a class="headerlink" href="#completions" title="Permalink to this headline">¶</a></h3> +</section> +<section id="search-and-replace"> +<h3>Search and Replace<a class="headerlink" href="#search-and-replace" title="Permalink to this heading">¶</a></h3> +<p>Any selection becomes a search target. However, only selections within +a line work because searches are only performed within lines with the +terminal newline removed. If <code class="docutils literal notranslate"><span class="pre">[x]</span> <span class="pre">Regular</span> <span class="pre">expresion</span></code> is checked, the +target is interpreted according to the Python re module.</p> +</section> +<section id="completions"> +<span id="id3"></span><h3>Completions<a class="headerlink" href="#completions" title="Permalink to this heading">¶</a></h3> <p>Completions are supplied, when requested and available, for module names, attributes of classes or functions, or filenames. Each request method displays a completion box with existing names. (See tab @@ -489,7 +600,7 @@ <h3>Automatic indentation<a class="headerlink" href="#automatic-indentation" tit directory name and a separator.</p> <p>Instead of waiting, or after a box is closed, open a completion box immediately with Show Completions on the Edit menu. The default hot -key is <kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">space</kbd></kbd>. If one types a prefix for the desired name +key is <kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">space</kbd></kbd>. If one types a prefix for the desired name before opening the box, the first match or near miss is made visible. The result is the same as if one enters a prefix after the box is displayed. Show Completions after a quote completes @@ -509,9 +620,9 @@ <h3>Automatic indentation<a class="headerlink" href="#automatic-indentation" tit <p>Completion boxes initially exclude names beginning with ‘_’ or, for modules, not included in ‘__all__’. The hidden names can be accessed by typing ‘_’ after ‘.’, either before or after the box is opened.</p> -</div> -<div class="section" id="calltips"> -<span id="id4"></span><h3>Calltips<a class="headerlink" href="#calltips" title="Permalink to this headline">¶</a></h3> +</section> +<section id="calltips"> +<span id="id4"></span><h3>Calltips<a class="headerlink" href="#calltips" title="Permalink to this heading">¶</a></h3> <p>A calltip is shown automatically when one types <kbd class="kbd docutils literal notranslate">(</kbd> after the name of an <em>accessible</em> function. A function name expression may include dots and subscripts. A calltip remains until it is clicked, the cursor @@ -535,9 +646,9 @@ <h3>Automatic indentation<a class="headerlink" href="#automatic-indentation" tit <p>In an editor, import statements have no effect until one runs the file. One might want to run a file after writing import statements, after adding function definitions, or after opening an existing file.</p> -</div> -<div class="section" id="code-context"> -<span id="id5"></span><h3>Code Context<a class="headerlink" href="#code-context" title="Permalink to this headline">¶</a></h3> +</section> +<section id="code-context"> +<span id="id5"></span><h3>Code Context<a class="headerlink" href="#code-context" title="Permalink to this heading">¶</a></h3> <p>Within an editor window containing Python code, code context can be toggled in order to show or hide a pane at the top of the window. When shown, this pane freezes the opening lines for block code, such as those beginning with @@ -550,33 +661,44 @@ <h3>Automatic indentation<a class="headerlink" href="#automatic-indentation" tit line to the top of the editor.</p> <p>The text and background colors for the context pane can be configured under the Highlights tab in the Configure IDLE dialog.</p> -</div> -<div class="section" id="python-shell-window"> -<h3>Python Shell window<a class="headerlink" href="#python-shell-window" title="Permalink to this headline">¶</a></h3> -<p>With IDLE’s Shell, one enters, edits, and recalls complete statements. -Most consoles and terminals only work with a single physical line at a time.</p> +</section> +<section id="shell-window"> +<h3>Shell window<a class="headerlink" href="#shell-window" title="Permalink to this heading">¶</a></h3> +<p>In IDLE’s Shell, enter, edit, and recall complete statements. (Most +consoles and terminals only work with a single physical line at a time).</p> +<p>Submit a single-line statement for execution by hitting <kbd class="kbd docutils literal notranslate">Return</kbd> +with the cursor anywhere on the line. If a line is extended with +Backslash (<kbd class="kbd docutils literal notranslate">\</kbd>), the cursor must be on the last physical line. +Submit a multi-line compound statement by entering a blank line after +the statement.</p> <p>When one pastes code into Shell, it is not compiled and possibly executed -until one hits <kbd class="kbd docutils literal notranslate">Return</kbd>. One may edit pasted code first. -If one pastes more that one statement into Shell, the result will be a +until one hits <kbd class="kbd docutils literal notranslate">Return</kbd>, as specified above. +One may edit pasted code first. +If one pastes more than one statement into Shell, the result will be a <a class="reference internal" href="exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> when multiple statements are compiled as if they were one.</p> +<p>Lines containing <code class="docutils literal notranslate"><span class="pre">RESTART</span></code> mean that the user execution process has been +re-started. This occurs when the user execution process has crashed, +when one requests a restart on the Shell menu, or when one runs code +in an editor window.</p> <p>The editing features described in previous subsections work when entering code interactively. IDLE’s Shell window also responds to the following keys.</p> <ul> -<li><p><kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">c</kbd></kbd> interrupts executing command</p></li> -<li><p><kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">d</kbd></kbd> sends end-of-file; closes window if typed at a <code class="docutils literal notranslate"><span class="pre">&gt;&gt;&gt;</span></code> prompt</p></li> -<li><p><kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">/</kbd></kbd> (Expand word) is also useful to reduce typing</p> +<li><p><kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">c</kbd></kbd> interrupts executing command</p></li> +<li><p><kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">d</kbd></kbd> sends end-of-file; closes window if typed at a <code class="docutils literal notranslate"><span class="pre">&gt;&gt;&gt;</span></code> prompt</p></li> +<li><p><kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">/</kbd></kbd> (Expand word) is also useful to reduce typing</p> <p>Command history</p> <ul class="simple"> -<li><p><kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">p</kbd></kbd> retrieves previous command matching what you have typed. On -macOS use <kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">p</kbd></kbd>.</p></li> -<li><p><kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">n</kbd></kbd> retrieves next. On macOS use <kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">n</kbd></kbd>.</p></li> -<li><p><kbd class="kbd docutils literal notranslate">Return</kbd> while on any previous command retrieves that command</p></li> +<li><p><kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">p</kbd></kbd> retrieves previous command matching what you have typed. On +macOS use <kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">p</kbd></kbd>.</p></li> +<li><p><kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">n</kbd></kbd> retrieves next. On macOS use <kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">n</kbd></kbd>.</p></li> +<li><p><kbd class="kbd docutils literal notranslate">Return</kbd> while the cursor is on any previous command +retrieves that command</p></li> </ul> </li> </ul> -</div> -<div class="section" id="text-colors"> -<h3>Text colors<a class="headerlink" href="#text-colors" title="Permalink to this headline">¶</a></h3> +</section> +<section id="text-colors"> +<h3>Text colors<a class="headerlink" href="#text-colors" title="Permalink to this heading">¶</a></h3> <p>Idle defaults to black on white text, but colors text with special meanings. For the shell, these are shell output, shell error, user output, and user error. For Python code, at the shell prompt or in an editor, these are @@ -592,10 +714,10 @@ <h3>Text colors<a class="headerlink" href="#text-colors" title="Permalink to thi visible. To change the color scheme, use the Configure IDLE dialog Highlighting tab. The marking of debugger breakpoint lines in the editor and text in popups and dialogs is not user-configurable.</p> -</div> -</div> -<div class="section" id="startup-and-code-execution"> -<h2>Startup and code execution<a class="headerlink" href="#startup-and-code-execution" title="Permalink to this headline">¶</a></h2> +</section> +</section> +<section id="startup-and-code-execution"> +<h2>Startup and Code Execution<a class="headerlink" href="#startup-and-code-execution" title="Permalink to this heading">¶</a></h2> <p>Upon startup with the <code class="docutils literal notranslate"><span class="pre">-s</span></code> option, IDLE will execute the file referenced by the environment variables <span class="target" id="index-5"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">IDLESTARTUP</span></code> or <span class="target" id="index-6"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHONSTARTUP"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONSTARTUP</span></code></a>. IDLE first checks for <code class="docutils literal notranslate"><span class="pre">IDLESTARTUP</span></code>; if <code class="docutils literal notranslate"><span class="pre">IDLESTARTUP</span></code> is present the file @@ -608,8 +730,8 @@ <h2>Startup and code execution<a class="headerlink" href="#startup-and-code-exec looked for in the user’s home directory. Statements in this file will be executed in the Tk namespace, so this file is not useful for importing functions to be used from IDLE’s Python shell.</p> -<div class="section" id="command-line-usage"> -<h3>Command line usage<a class="headerlink" href="#command-line-usage" title="Permalink to this headline">¶</a></h3> +<section id="command-line-usage"> +<h3>Command line usage<a class="headerlink" href="#command-line-usage" title="Permalink to this heading">¶</a></h3> <div class="highlight-none notranslate"><div class="highlight"><pre><span></span>idle.py [-c command] [-d] [-e] [-h] [-i] [-r file] [-s] [-t title] [-] [arg] ... -c command run command in the shell window @@ -632,9 +754,9 @@ <h3>Command line usage<a class="headerlink" href="#command-line-usage" title="Pe <li><p>Otherwise, arguments are files opened for editing and <code class="docutils literal notranslate"><span class="pre">sys.argv</span></code> reflects the arguments passed to IDLE itself.</p></li> </ul> -</div> -<div class="section" id="startup-failure"> -<h3>Startup failure<a class="headerlink" href="#startup-failure" title="Permalink to this headline">¶</a></h3> +</section> +<section id="startup-failure"> +<h3>Startup failure<a class="headerlink" href="#startup-failure" title="Permalink to this heading">¶</a></h3> <p>IDLE uses a socket to communicate between the IDLE GUI process and the user code execution process. A connection must be established whenever the Shell starts or restarts. (The latter is indicated by a divider line that says @@ -684,9 +806,9 @@ <h3>Startup failure<a class="headerlink" href="#startup-failure" title="Permalin if one starts IDLE to edit a file with such a character or later when entering such a character. If one cannot upgrade tcl/tk, then re-configure IDLE to use a font that works better.</p> -</div> -<div class="section" id="running-user-code"> -<h3>Running user code<a class="headerlink" href="#running-user-code" title="Permalink to this headline">¶</a></h3> +</section> +<section id="running-user-code"> +<h3>Running user code<a class="headerlink" href="#running-user-code" title="Permalink to this heading">¶</a></h3> <p>With rare exceptions, the result of executing Python code with IDLE is intended to be the same as executing the same code by the default method, directly with Python in a text-mode system console or terminal window. @@ -711,7 +833,9 @@ <h3>Running user code<a class="headerlink" href="#running-user-code" title="Perm created in the execution process, whether directly by user code or by modules such as multiprocessing. If such subprocess use <code class="docutils literal notranslate"><span class="pre">input</span></code> from sys.stdin or <code class="docutils literal notranslate"><span class="pre">print</span></code> or <code class="docutils literal notranslate"><span class="pre">write</span></code> to sys.stdout or sys.stderr, -IDLE should be started in a command line window. The secondary subprocess +IDLE should be started in a command line window. (On Windows, +use <code class="docutils literal notranslate"><span class="pre">python</span></code> or <code class="docutils literal notranslate"><span class="pre">py</span></code> rather than <code class="docutils literal notranslate"><span class="pre">pythonw</span></code> or <code class="docutils literal notranslate"><span class="pre">pyw</span></code>.) +The secondary subprocess will then be attached to that window for input and output.</p> <p>If <code class="docutils literal notranslate"><span class="pre">sys</span></code> is reset by user code, such as with <code class="docutils literal notranslate"><span class="pre">importlib.reload(sys)</span></code>, IDLE’s changes are lost and input from the keyboard and output to the screen @@ -726,9 +850,9 @@ <h3>Running user code<a class="headerlink" href="#running-user-code" title="Perm frames.</p> <p>When user code raises SystemExit either directly or by calling sys.exit, IDLE returns to a Shell prompt instead of exiting.</p> -</div> -<div class="section" id="user-output-in-shell"> -<h3>User output in Shell<a class="headerlink" href="#user-output-in-shell" title="Permalink to this headline">¶</a></h3> +</section> +<section id="user-output-in-shell"> +<h3>User output in Shell<a class="headerlink" href="#user-output-in-shell" title="Permalink to this heading">¶</a></h3> <p>When a program outputs text, the result is determined by the corresponding output device. When IDLE executes user code, <code class="docutils literal notranslate"><span class="pre">sys.stdout</span></code> and <code class="docutils literal notranslate"><span class="pre">sys.stderr</span></code> are connected to the display area of IDLE’s Shell. Some of @@ -780,9 +904,9 @@ <h3>User output in Shell<a class="headerlink" href="#user-output-in-shell" title <p>Squeezed output is expanded in place by double-clicking the label. It can also be sent to the clipboard or a separate view window by right-clicking the label.</p> -</div> -<div class="section" id="developing-tkinter-applications"> -<h3>Developing tkinter applications<a class="headerlink" href="#developing-tkinter-applications" title="Permalink to this headline">¶</a></h3> +</section> +<section id="developing-tkinter-applications"> +<h3>Developing tkinter applications<a class="headerlink" href="#developing-tkinter-applications" title="Permalink to this heading">¶</a></h3> <p>IDLE is intentionally different from standard Python in order to facilitate development of tkinter programs. Enter <code class="docutils literal notranslate"><span class="pre">import</span> <span class="pre">tkinter</span> <span class="pre">as</span> <span class="pre">tk;</span> <span class="pre">root</span> <span class="pre">=</span> <span class="pre">tk.Tk()</span></code> in standard Python and nothing appears. Enter the same @@ -800,9 +924,9 @@ <h3>Developing tkinter applications<a class="headerlink" href="#developing-tkint the mainloop call. One then gets a shell prompt immediately and can interact with the live application. One just has to remember to re-enable the mainloop call when running in standard Python.</p> -</div> -<div class="section" id="running-without-a-subprocess"> -<h3>Running without a subprocess<a class="headerlink" href="#running-without-a-subprocess" title="Permalink to this headline">¶</a></h3> +</section> +<section id="running-without-a-subprocess"> +<h3>Running without a subprocess<a class="headerlink" href="#running-without-a-subprocess" title="Permalink to this heading">¶</a></h3> <p>By default, IDLE executes user code in a separate subprocess via a socket, which uses the internal loopback interface. This connection is not externally visible and no data is sent to or received from the internet. @@ -825,12 +949,12 @@ <h3>Running without a subprocess<a class="headerlink" href="#running-without-a-s <div class="deprecated"> <p><span class="versionmodified deprecated">Deprecated since version 3.4.</span></p> </div> -</div> -</div> -<div class="section" id="help-and-preferences"> -<h2>Help and preferences<a class="headerlink" href="#help-and-preferences" title="Permalink to this headline">¶</a></h2> -<div class="section" id="help-sources"> -<span id="id6"></span><h3>Help sources<a class="headerlink" href="#help-sources" title="Permalink to this headline">¶</a></h3> +</section> +</section> +<section id="help-and-preferences"> +<h2>Help and Preferences<a class="headerlink" href="#help-and-preferences" title="Permalink to this heading">¶</a></h2> +<section id="help-sources"> +<span id="id6"></span><h3>Help sources<a class="headerlink" href="#help-sources" title="Permalink to this heading">¶</a></h3> <p>Help menu entry “IDLE Help” displays a formatted html version of the IDLE chapter of the Library Reference. The result, in a read-only tkinter text window, is close to what one sees in a web browser. @@ -845,9 +969,9 @@ <h2>Help and preferences<a class="headerlink" href="#help-and-preferences" title that will be opened instead.</p> <p>Selected URLs can be added or removed from the help menu at any time using the General tab of the Configure IDLE dialog.</p> -</div> -<div class="section" id="setting-preferences"> -<span id="preferences"></span><h3>Setting preferences<a class="headerlink" href="#setting-preferences" title="Permalink to this headline">¶</a></h3> +</section> +<section id="setting-preferences"> +<span id="preferences"></span><h3>Setting preferences<a class="headerlink" href="#setting-preferences" title="Permalink to this heading">¶</a></h3> <p>The font preferences, highlighting, keys, and general preferences can be changed via Configure IDLE on the Option menu. Non-default user settings are saved in a <code class="docutils literal notranslate"><span class="pre">.idlerc</span></code> directory in the user’s @@ -863,23 +987,35 @@ <h2>Help and preferences<a class="headerlink" href="#help-and-preferences" title and key set. To use a newer built-in color theme or key set with older IDLEs, save it as a new custom theme or key set and it well be accessible to older IDLEs.</p> -</div> -<div class="section" id="idle-on-macos"> -<h3>IDLE on macOS<a class="headerlink" href="#idle-on-macos" title="Permalink to this headline">¶</a></h3> +</section> +<section id="idle-on-macos"> +<h3>IDLE on macOS<a class="headerlink" href="#idle-on-macos" title="Permalink to this heading">¶</a></h3> <p>Under System Preferences: Dock, one can set “Prefer tabs when opening documents” to “Always”. This setting is not compatible with the tk/tkinter GUI framework used by IDLE, and it breaks a few IDLE features.</p> -</div> -<div class="section" id="extensions"> -<h3>Extensions<a class="headerlink" href="#extensions" title="Permalink to this headline">¶</a></h3> +</section> +<section id="extensions"> +<h3>Extensions<a class="headerlink" href="#extensions" title="Permalink to this heading">¶</a></h3> <p>IDLE contains an extension facility. Preferences for extensions can be changed with the Extensions tab of the preferences dialog. See the beginning of config-extensions.def in the idlelib directory for further information. The only current default extension is zzdummy, an example also used for testing.</p> -</div> -</div> -</div> +</section> +</section> +<section id="module-idlelib"> +<span id="idlelib"></span><h2>idlelib<a class="headerlink" href="#module-idlelib" title="Permalink to this heading">¶</a></h2> +<p><strong>Source code:</strong> <a class="reference external" href="https://github.com/python/cpython/tree/main/Lib/idlelib">Lib/idlelib</a></p> +<hr class="docutils" /> +<p>The Lib/idlelib package implements the IDLE application. See the rest +of this page for how to use IDLE.</p> +<p>The files in idlelib are described in idlelib/README.txt. Access it +either in idlelib or click Help =&gt; About IDLE on the IDLE menu. This +file also maps IDLE menu items to the code that implements the item. +Except for files listed under ‘Startup’, the idlelib code is ‘private’ in +sense that feature changes can be backported (see <span class="target" id="index-7"></span><a class="pep reference external" href="https://peps.python.org/pep-0434/"><strong>PEP 434</strong></a>).</p> +</section> +</section> <div class="clearer"></div> @@ -888,8 +1024,9 @@ <h3>Extensions<a class="headerlink" href="#extensions" title="Permalink to this </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> - <h3><a href="../contents.html">Table of Contents</a></h3> - <ul> + <div> + <h3><a href="../contents.html">Table of Contents</a></h3> + <ul> <li><a class="reference internal" href="#">IDLE</a><ul> <li><a class="reference internal" href="#menus">Menus</a><ul> <li><a class="reference internal" href="#file-menu-shell-and-editor">File menu (Shell and Editor)</a></li> @@ -901,21 +1038,22 @@ <h3><a href="../contents.html">Table of Contents</a></h3> <li><a class="reference internal" href="#options-menu-shell-and-editor">Options menu (Shell and Editor)</a></li> <li><a class="reference internal" href="#window-menu-shell-and-editor">Window menu (Shell and Editor)</a></li> <li><a class="reference internal" href="#help-menu-shell-and-editor">Help menu (Shell and Editor)</a></li> -<li><a class="reference internal" href="#context-menus">Context Menus</a></li> +<li><a class="reference internal" href="#context-menus">Context menus</a></li> </ul> </li> -<li><a class="reference internal" href="#editing-and-navigation">Editing and navigation</a><ul> +<li><a class="reference internal" href="#editing-and-navigation">Editing and Navigation</a><ul> <li><a class="reference internal" href="#editor-windows">Editor windows</a></li> <li><a class="reference internal" href="#key-bindings">Key bindings</a></li> <li><a class="reference internal" href="#automatic-indentation">Automatic indentation</a></li> +<li><a class="reference internal" href="#search-and-replace">Search and Replace</a></li> <li><a class="reference internal" href="#completions">Completions</a></li> <li><a class="reference internal" href="#calltips">Calltips</a></li> <li><a class="reference internal" href="#code-context">Code Context</a></li> -<li><a class="reference internal" href="#python-shell-window">Python Shell window</a></li> +<li><a class="reference internal" href="#shell-window">Shell window</a></li> <li><a class="reference internal" href="#text-colors">Text colors</a></li> </ul> </li> -<li><a class="reference internal" href="#startup-and-code-execution">Startup and code execution</a><ul> +<li><a class="reference internal" href="#startup-and-code-execution">Startup and Code Execution</a><ul> <li><a class="reference internal" href="#command-line-usage">Command line usage</a></li> <li><a class="reference internal" href="#startup-failure">Startup failure</a></li> <li><a class="reference internal" href="#running-user-code">Running user code</a></li> @@ -924,23 +1062,29 @@ <h3><a href="../contents.html">Table of Contents</a></h3> <li><a class="reference internal" href="#running-without-a-subprocess">Running without a subprocess</a></li> </ul> </li> -<li><a class="reference internal" href="#help-and-preferences">Help and preferences</a><ul> +<li><a class="reference internal" href="#help-and-preferences">Help and Preferences</a><ul> <li><a class="reference internal" href="#help-sources">Help sources</a></li> <li><a class="reference internal" href="#setting-preferences">Setting preferences</a></li> <li><a class="reference internal" href="#idle-on-macos">IDLE on macOS</a></li> <li><a class="reference internal" href="#extensions">Extensions</a></li> </ul> </li> +<li><a class="reference internal" href="#module-idlelib">idlelib</a></li> </ul> </li> </ul> - <h4>Previous topic</h4> - <p class="topless"><a href="tkinter.tix.html" - title="previous chapter"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter.tix</span></code> — Extension widgets for Tk</a></p> - <h4>Next topic</h4> - <p class="topless"><a href="development.html" - title="next chapter">Development Tools</a></p> + </div> + <div> + <h4>Previous topic</h4> + <p class="topless"><a href="tkinter.tix.html" + title="previous chapter"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter.tix</span></code> — Extension widgets for Tk</a></p> + </div> + <div> + <h4>Next topic</h4> + <p class="topless"><a href="development.html" + title="next chapter">Development Tools</a></p> + </div> <div role="note" aria-label="source link"> <h3>This Page</h3> <ul class="this-page-menu"> @@ -953,6 +1097,10 @@ <h3>This Page</h3> </ul> </div> </div> +<div id="sidebarbutton" title="Collapse sidebar"> +<span>«</span> +</div> + </div> <div class="clearer"></div> </div> @@ -972,49 +1120,58 @@ <h3>Navigation</h3> <a href="tkinter.tix.html" title="tkinter.tix — Extension widgets for Tk" >previous</a> |</li> - <li><img src="../_static/py.png" alt="" - style="vertical-align: middle; margin-top: -1px"/></li> - <li><a href="https://www.python.org/">Python</a> &#187;</li> - + <li><img src="../_static/py.svg" alt="python logo" style="vertical-align: middle; margin-top: -1px"/></li> + <li><a href="https://www.python.org/">Python</a> &#187;</li> + <li class="switchers"> + <div class="language_switcher_placeholder"></div> + <div class="version_switcher_placeholder"></div> + </li> + <li> + </li> <li id="cpython-language-and-version"> - <a href="../index.html">3.11.0a4 Documentation</a> &#187; + <a href="../index.html">3.12.0a0 Documentation</a> &#187; </li> <li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> &#187;</li> <li class="nav-item nav-item-2"><a href="tk.html" >Graphical User Interfaces with Tk</a> &#187;</li> <li class="nav-item nav-item-this"><a href="">IDLE</a></li> - <li class="right"> + <li class="right"> - <div class="inline-search" style="display: none" role="search"> + <div class="inline-search" role="search"> <form class="inline-search" action="../search.html" method="get"> - <input placeholder="Quick search" type="text" name="q" /> + <input placeholder="Quick search" aria-label="Quick search" type="text" name="q" /> <input type="submit" value="Go" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </div> - <script type="text/javascript">$('.inline-search').show(0);</script> - | - </li> + | + </li> </ul> </div> <div class="footer"> &copy; <a href="../copyright.html">Copyright</a> 2001-2022, Python Software Foundation. <br /> + This page is licensed under the Python Software Foundation License Version 2. + <br /> + Examples, recipes, and other code in the documentation are additionally licensed under the Zero Clause BSD License. + <br /> + See <a href="/license.html">History and License</a> for more information.<br /> + <br /> The Python Software Foundation is a non-profit corporation. <a href="https://www.python.org/psf/donations/">Please donate.</a> <br /> <br /> - Last updated on Jan 26, 2022. + Last updated on Sep 03, 2022. <a href="/bugs.html">Found a bug</a>? <br /> - Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1. + Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 5.0.2. </div> </body> diff --git a/Lib/idlelib/help.py b/Lib/idlelib/help.py index f420d40fb9ea40..cc027b9cef4f5b 100644 --- a/Lib/idlelib/help.py +++ b/Lib/idlelib/help.py @@ -76,9 +76,9 @@ def handle_starttag(self, tag, attrs): if a == 'class': class_ = v s = '' - if tag == 'div' and class_ == 'section': + if tag == 'section' and attrs == [('id', 'idle')]: self.show = True # Start main content. - elif tag == 'div' and class_ == 'sphinxsidebar': + elif tag == 'div' and class_ == 'clearer': self.show = False # End main content. elif tag == 'p' and self.prevtag and not self.prevtag[0]: # Begin a new block for <p> tags after a closed tag. diff --git a/Lib/idlelib/help_about.py b/Lib/idlelib/help_about.py index 9cb3ba78c50ebd..a0085a40b980ef 100644 --- a/Lib/idlelib/help_about.py +++ b/Lib/idlelib/help_about.py @@ -91,8 +91,9 @@ def create_widgets(self): email = Label(frame_background, text='email: idle-dev@python.org', justify=LEFT, fg=self.fg, bg=self.bg) email.grid(row=6, column=0, columnspan=2, sticky=W, padx=10, pady=0) - docs = Label(frame_background, text="https://docs.python.org/" - f"{version[:version.rindex('.')]}/library/idle.html", + docs_url = ("https://docs.python.org/%d.%d/library/idle.html" % + sys.version_info[:2]) + docs = Label(frame_background, text=docs_url, justify=LEFT, fg=self.fg, bg=self.bg) docs.grid(row=7, column=0, columnspan=2, sticky=W, padx=10, pady=0) docs.bind("<Button-1>", lambda event: webbrowser.open(docs['text'])) diff --git a/Lib/idlelib/history.py b/Lib/idlelib/history.py index 100f505256a940..5a9b32aaf6bb81 100644 --- a/Lib/idlelib/history.py +++ b/Lib/idlelib/history.py @@ -65,7 +65,7 @@ def fetch(self, reverse): self.text.bell() return nprefix = len(prefix) - while 1: + while True: pointer += -1 if reverse else 1 if pointer < 0 or pointer >= nhist: self.text.bell() diff --git a/Lib/idlelib/hyperparser.py b/Lib/idlelib/hyperparser.py index 77baca782b3fdc..76144ee8fb30f5 100644 --- a/Lib/idlelib/hyperparser.py +++ b/Lib/idlelib/hyperparser.py @@ -237,9 +237,9 @@ def get_expression(self): last_identifier_pos = pos postdot_phase = True - while 1: + while True: # Eat whitespaces, comments, and if postdot_phase is False - a dot - while 1: + while True: if pos>brck_limit and rawtext[pos-1] in self._whitespace_chars: # Eat a whitespace pos -= 1 diff --git a/Lib/idlelib/idle_test/test_browser.py b/Lib/idlelib/idle_test/test_browser.py index 03a50f22ca1e82..343d50a6e37bd6 100644 --- a/Lib/idlelib/idle_test/test_browser.py +++ b/Lib/idlelib/idle_test/test_browser.py @@ -5,6 +5,7 @@ import unittest from unittest import mock from idlelib.idle_test.mock_idle import Func +from idlelib.util import py_extensions from collections import deque import os.path @@ -57,6 +58,15 @@ def test_close(self): self.assertTrue(mb.node.destroy.called) del mb.top.destroy, mb.node.destroy + def test_is_browseable_extension(self): + path = "/path/to/file" + for ext in py_extensions: + with self.subTest(ext=ext): + filename = f'{path}{ext}' + actual = browser.is_browseable_extension(filename) + expected = ext not in browser.browseable_extension_blocklist + self.assertEqual(actual, expected) + # Nested tree same as in test_pyclbr.py except for supers on C0. C1. mb = pyclbr diff --git a/Lib/idlelib/idle_test/test_debugger_r.py b/Lib/idlelib/idle_test/test_debugger_r.py index 638ebd36a7405d..cf8af05fe27e77 100644 --- a/Lib/idlelib/idle_test/test_debugger_r.py +++ b/Lib/idlelib/idle_test/test_debugger_r.py @@ -2,28 +2,21 @@ from idlelib import debugger_r import unittest -from test.support import requires -from tkinter import Tk - - -class Test(unittest.TestCase): +# Boilerplate likely to be needed for future test classes. +##from test.support import requires +##from tkinter import Tk +##class Test(unittest.TestCase): ## @classmethod ## def setUpClass(cls): ## requires('gui') ## cls.root = Tk() -## ## @classmethod ## def tearDownClass(cls): ## cls.root.destroy() -## del cls.root - - def test_init(self): - self.assertTrue(True) # Get coverage of import - -# Classes GUIProxy, IdbAdapter, FrameProxy, CodeProxy, DictProxy, -# GUIAdapter, IdbProxy plus 7 module functions. +# GUIProxy, IdbAdapter, FrameProxy, CodeProxy, DictProxy, +# GUIAdapter, IdbProxy, and 7 functions still need tests. class IdbAdapterTest(unittest.TestCase): diff --git a/Lib/idlelib/idle_test/test_editor.py b/Lib/idlelib/idle_test/test_editor.py index 8665d680c0118f..fdb47abf43fb77 100644 --- a/Lib/idlelib/idle_test/test_editor.py +++ b/Lib/idlelib/idle_test/test_editor.py @@ -5,7 +5,6 @@ from collections import namedtuple from test.support import requires from tkinter import Tk -from idlelib.idle_test.mock_idle import Func Editor = editor.EditorWindow diff --git a/Lib/idlelib/idle_test/test_iomenu.py b/Lib/idlelib/idle_test/test_iomenu.py index e338893c09e6a1..2fb836dba21672 100644 --- a/Lib/idlelib/idle_test/test_iomenu.py +++ b/Lib/idlelib/idle_test/test_iomenu.py @@ -1,10 +1,12 @@ "Test , coverage 17%." -from idlelib import iomenu, util +from idlelib import iomenu import unittest from test.support import requires from tkinter import Tk from idlelib.editor import EditorWindow +from idlelib import util +from idlelib.idle_test.mock_idle import Func class IOBindingTest(unittest.TestCase): @@ -36,9 +38,14 @@ def test_fixnewlines_end(self): io = self.io fix = io.fixnewlines text = io.editwin.text + + # Make the editor temporarily look like Shell. self.editwin.interp = None - eq(fix(), '') - del self.editwin.interp + shelltext = '>>> if 1' + self.editwin.get_prompt_text = Func(result=shelltext) + eq(fix(), shelltext) # Get... call and '\n' not added. + del self.editwin.interp, self.editwin.get_prompt_text + text.insert(1.0, 'a') eq(fix(), 'a'+io.eol_convention) eq(text.get('1.0', 'end-1c'), 'a\n') diff --git a/Lib/idlelib/idle_test/test_parenmatch.py b/Lib/idlelib/idle_test/test_parenmatch.py index 4a41d8433d5483..2e10d7cd36760f 100644 --- a/Lib/idlelib/idle_test/test_parenmatch.py +++ b/Lib/idlelib/idle_test/test_parenmatch.py @@ -83,12 +83,12 @@ def test_paren_corner(self): """ Test corner cases in flash_paren_event and paren_closed_event. - These cases force conditional expression and alternate paths. + Force execution of conditional expressions and alternate paths. """ text = self.text pm = self.get_parenmatch() - text.insert('insert', '# this is a commen)') + text.insert('insert', '# Comment.)') pm.paren_closed_event('event') text.insert('insert', '\ndef') diff --git a/Lib/idlelib/idle_test/test_run.py b/Lib/idlelib/idle_test/test_run.py index d859ffc153fcdd..ec4637c5ca617a 100644 --- a/Lib/idlelib/idle_test/test_run.py +++ b/Lib/idlelib/idle_test/test_run.py @@ -3,7 +3,7 @@ from idlelib import run import io import sys -from test.support import captured_output, captured_stderr, has_no_debug_ranges +from test.support import captured_output, captured_stderr import unittest from unittest import mock import idlelib @@ -33,14 +33,9 @@ def __eq__(self, other): run.print_exception() tb = output.getvalue().strip().splitlines() - if has_no_debug_ranges(): - self.assertEqual(11, len(tb)) - self.assertIn('UnhashableException: ex2', tb[3]) - self.assertIn('UnhashableException: ex1', tb[10]) - else: - self.assertEqual(13, len(tb)) - self.assertIn('UnhashableException: ex2', tb[4]) - self.assertIn('UnhashableException: ex1', tb[12]) + self.assertEqual(11, len(tb)) + self.assertIn('UnhashableException: ex2', tb[3]) + self.assertIn('UnhashableException: ex1', tb[10]) data = (('1/0', ZeroDivisionError, "division by zero\n"), ('abc', NameError, "name 'abc' is not defined. " diff --git a/Lib/idlelib/idle_test/test_sidebar.py b/Lib/idlelib/idle_test/test_sidebar.py index 01fd6a04d0de30..049531e66a414e 100644 --- a/Lib/idlelib/idle_test/test_sidebar.py +++ b/Lib/idlelib/idle_test/test_sidebar.py @@ -6,6 +6,7 @@ import unittest import unittest.mock from test.support import requires, swap_attr +from test import support import tkinter as tk from idlelib.idle_test.tkinter_testing_utils import run_in_tk_mainloop @@ -612,7 +613,8 @@ def test_interrupt_recall_undo_redo(self): @run_in_tk_mainloop() def test_very_long_wrapped_line(self): - with swap_attr(self.shell, 'squeezer', None): + with support.adjust_int_max_str_digits(11_111), \ + swap_attr(self.shell, 'squeezer', None): self.do_input('x = ' + '1'*10_000 + '\n') yield self.assertEqual(self.get_sidebar_lines(), ['>>>']) @@ -733,7 +735,7 @@ def test_copy_with_prompts(self): first_line = get_end_linenumber(text) self.do_input(dedent('''\ if True: - print(1) + print(1) ''')) yield @@ -744,9 +746,10 @@ def test_copy_with_prompts(self): selected_lines_text = text.get('sel.first linestart', 'sel.last') selected_lines = selected_lines_text.split('\n') - # Expect a block of input, a single output line, and a new prompt + selected_lines.pop() # Final '' is a split artifact, not a line. + # Expect a block of input and a single output line. expected_prompts = \ - ['>>>'] + ['...'] * (len(selected_lines) - 3) + [None, '>>>'] + ['>>>'] + ['...'] * (len(selected_lines) - 2) + [None] selected_text_with_prompts = '\n'.join( line if prompt is None else prompt + ' ' + line for prompt, line in zip(expected_prompts, diff --git a/Lib/idlelib/iomenu.py b/Lib/idlelib/iomenu.py index ad3109df84096a..af8159c2b33f51 100644 --- a/Lib/idlelib/iomenu.py +++ b/Lib/idlelib/iomenu.py @@ -9,18 +9,12 @@ from tkinter import messagebox from tkinter.simpledialog import askstring -import idlelib from idlelib.config import idleConf from idlelib.util import py_extensions py_extensions = ' '.join("*"+ext for ext in py_extensions) - encoding = 'utf-8' -if sys.platform == 'win32': - errors = 'surrogatepass' -else: - errors = 'surrogateescape' - +errors = 'surrogatepass' if sys.platform == 'win32' else 'surrogateescape' class IOBinding: @@ -257,11 +251,17 @@ def writefile(self, filename): return False def fixnewlines(self): - "Return text with final \n if needed and os eols." - if (self.text.get("end-2c") != '\n' - and not hasattr(self.editwin, "interp")): # Not shell. - self.text.insert("end-1c", "\n") - text = self.text.get("1.0", "end-1c") + """Return text with os eols. + + Add prompts if shell else final \n if missing. + """ + + if hasattr(self.editwin, "interp"): # Saving shell. + text = self.editwin.get_prompt_text('1.0', self.text.index('end-1c')) + else: + if self.text.get("end-2c") != '\n': + self.text.insert("end-1c", "\n") # Changes 'end-1c' value. + text = self.text.get('1.0', "end-1c") if self.eol_convention != "\n": text = text.replace("\n", self.eol_convention) return text diff --git a/Lib/idlelib/mainmenu.py b/Lib/idlelib/mainmenu.py index a1b169176cba92..91a32cebb513f9 100644 --- a/Lib/idlelib/mainmenu.py +++ b/Lib/idlelib/mainmenu.py @@ -42,16 +42,17 @@ ('_Undo', '<<undo>>'), ('_Redo', '<<redo>>'), None, + ('Select _All', '<<select-all>>'), ('Cu_t', '<<cut>>'), ('_Copy', '<<copy>>'), ('_Paste', '<<paste>>'), - ('Select _All', '<<select-all>>'), None, ('_Find...', '<<find>>'), ('Find A_gain', '<<find-again>>'), ('Find _Selection', '<<find-selection>>'), ('Find in Files...', '<<find-in-files>>'), ('R_eplace...', '<<replace>>'), + None, ('Go to _Line', '<<goto-line>>'), ('S_how Completions', '<<force-open-completions>>'), ('E_xpand Word', '<<expand-word>>'), @@ -110,7 +111,7 @@ ('help', [ ('_About IDLE', '<<about-idle>>'), None, - ('_IDLE Help', '<<help>>'), + ('_IDLE Doc', '<<help>>'), ('Python _Docs', '<<python-docs>>'), ]), ] diff --git a/Lib/idlelib/pyshell.py b/Lib/idlelib/pyshell.py index 2e54a81a1d38dd..e68233a5a4131e 100755 --- a/Lib/idlelib/pyshell.py +++ b/Lib/idlelib/pyshell.py @@ -986,6 +986,23 @@ def replace_event(self, event): def get_standard_extension_names(self): return idleConf.GetExtensions(shell_only=True) + def get_prompt_text(self, first, last): + """Return text between first and last with prompts added.""" + text = self.text.get(first, last) + lineno_range = range( + int(float(first)), + int(float(last)) + ) + prompts = [ + self.shell_sidebar.line_prompts.get(lineno) + for lineno in lineno_range + ] + return "\n".join( + line if prompt is None else f"{prompt} {line}" + for prompt, line in zip(prompts, text.splitlines()) + ) + "\n" + + def copy_with_prompts_callback(self, event=None): """Copy selected lines to the clipboard, with prompts. @@ -996,31 +1013,15 @@ def copy_with_prompts_callback(self, event=None): and/or last lines is selected. """ text = self.text - - selection_indexes = ( - self.text.index("sel.first linestart"), - self.text.index("sel.last +1line linestart"), - ) - if selection_indexes[0] is None: - # There is no selection, so do nothing. - return - - selected_text = self.text.get(*selection_indexes) - selection_lineno_range = range( - int(float(selection_indexes[0])), - int(float(selection_indexes[1])) - ) - prompts = [ - self.shell_sidebar.line_prompts.get(lineno) - for lineno in selection_lineno_range - ] - selected_text_with_prompts = "\n".join( - line if prompt is None else f"{prompt} {line}" - for prompt, line in zip(prompts, selected_text.splitlines()) - ) + "\n" - + selfirst = text.index('sel.first linestart') + if selfirst is None: # Should not be possible. + return # No selection, do nothing. + sellast = text.index('sel.last') + if sellast[-1] != '0': + sellast = text.index("sel.last+1line linestart") text.clipboard_clear() - text.clipboard_append(selected_text_with_prompts) + prompt_text = self.get_prompt_text(selfirst, sellast) + text.clipboard_append(prompt_text) reading = False executing = False diff --git a/Lib/idlelib/rpc.py b/Lib/idlelib/rpc.py index 8efcf048fa3aa2..62eec84c9c8d09 100644 --- a/Lib/idlelib/rpc.py +++ b/Lib/idlelib/rpc.py @@ -307,7 +307,7 @@ def _getresponse(self, myseq, wait): self.debug("_getresponse:myseq:", myseq) if threading.current_thread() is self.sockthread: # this thread does all reading of requests or responses - while 1: + while True: response = self.pollresponse(myseq, wait) if response is not None: return response @@ -417,7 +417,7 @@ def pollresponse(self, myseq, wait): self.responses and notify the owning thread. """ - while 1: + while True: # send queued response if there is one available try: qmsg = response_queue.get(0) diff --git a/Lib/idlelib/run.py b/Lib/idlelib/run.py index aaa9b5ce8d181f..577c49eb67b20d 100644 --- a/Lib/idlelib/run.py +++ b/Lib/idlelib/run.py @@ -145,7 +145,7 @@ def main(del_exitfunc=False): args=((LOCALHOST, port),)) sockthread.daemon = True sockthread.start() - while 1: + while True: try: if exit_now: try: diff --git a/Lib/idlelib/searchengine.py b/Lib/idlelib/searchengine.py index eddef581ab40a7..0684142f43644a 100644 --- a/Lib/idlelib/searchengine.py +++ b/Lib/idlelib/searchengine.py @@ -165,7 +165,7 @@ def search_backward(self, text, prog, line, col, wrap, ok=0): wrapped = 0 startline = line chars = text.get("%d.0" % line, "%d.0" % (line+1)) - while 1: + while True: m = search_reverse(prog, chars[:-1], col) if m: if ok or m.start() < col: diff --git a/Lib/idlelib/util.py b/Lib/idlelib/util.py index 5480219786bca6..ede670a4db5536 100644 --- a/Lib/idlelib/util.py +++ b/Lib/idlelib/util.py @@ -12,7 +12,6 @@ * std streams (pyshell, run), * warning stuff (pyshell, run). """ -from os import path # .pyw is for Windows; .pyi is for stub files. py_extensions = ('.py', '.pyw', '.pyi') # Order needed for open/save dialogs. diff --git a/Lib/importlib/_abc.py b/Lib/importlib/_abc.py index f80348fc7ffd1d..08320563896521 100644 --- a/Lib/importlib/_abc.py +++ b/Lib/importlib/_abc.py @@ -38,17 +38,3 @@ def load_module(self, fullname): raise ImportError # Warning implemented in _load_module_shim(). return _bootstrap._load_module_shim(self, fullname) - - def module_repr(self, module): - """Return a module's repr. - - Used by the module type when the method does not raise - NotImplementedError. - - This method is deprecated. - - """ - warnings.warn("importlib.abc.Loader.module_repr() is deprecated and " - "slated for removal in Python 3.12", DeprecationWarning) - # The exception will cause ModuleType.__repr__ to ignore this method. - raise NotImplementedError diff --git a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py index afb95f4e1df869..67989c500f21c0 100644 --- a/Lib/importlib/_bootstrap.py +++ b/Lib/importlib/_bootstrap.py @@ -296,11 +296,6 @@ def _module_repr(module): loader = getattr(module, '__loader__', None) if spec := getattr(module, "__spec__", None): return _module_repr_from_spec(spec) - elif hasattr(loader, 'module_repr'): - try: - return loader.module_repr(module) - except Exception: - pass # Fall through to a catch-all which always succeeds. try: name = module.__name__ @@ -582,7 +577,6 @@ def module_from_spec(spec): def _module_repr_from_spec(spec): """Return the repr to use for the module.""" - # We mostly replicate _module_repr() using the spec attributes. name = '?' if spec.name is None else spec.name if spec.origin is None: if spec.loader is None: diff --git a/Lib/importlib/_bootstrap_external.py b/Lib/importlib/_bootstrap_external.py index eac371fdefc782..b3c31b9659d849 100644 --- a/Lib/importlib/_bootstrap_external.py +++ b/Lib/importlib/_bootstrap_external.py @@ -403,13 +403,19 @@ def _write_atomic(path, data, mode=0o666): # Python 3.11a7 3492 (make POP_JUMP_IF_NONE/NOT_NONE/TRUE/FALSE relative) # Python 3.11a7 3493 (Make JUMP_IF_TRUE_OR_POP/JUMP_IF_FALSE_OR_POP relative) # Python 3.11a7 3494 (New location info table) - # Python 3.12a1 3500 (Remove PRECALL opcode) # Python 3.12a1 3501 (YIELD_VALUE oparg == stack_depth) +# Python 3.12a1 3502 (LOAD_FAST_CHECK, no NULL-check in LOAD_FAST) +# Python 3.12a1 3503 (Shrink LOAD_METHOD cache) +# Python 3.12a1 3504 (Merge LOAD_METHOD back into LOAD_ATTR) +# Python 3.12a1 3505 (Specialization/Cache for FOR_ITER) +# Python 3.12a1 3506 (Add BINARY_SLICE and STORE_SLICE instructions) +# Python 3.12a1 3507 (Set lineno of module's RESUME to 0) +# Python 3.12a1 3508 (Add CLEANUP_THROW) +# Python 3.12a1 3509 (Conditional jumps only jump forward) # Python 3.13 will start with 3550 -# # MAGIC must change whenever the bytecode emitted by the compiler may no # longer be understood by older implementations of the eval loop (usually # due to the addition of new opcodes). @@ -419,7 +425,7 @@ def _write_atomic(path, data, mode=0o666): # Whenever MAGIC_NUMBER is changed, the ranges in the magic_values array # in PC/launcher.c must also be updated. -MAGIC_NUMBER = (3501).to_bytes(2, 'little') + b'\r\n' +MAGIC_NUMBER = (3509).to_bytes(2, 'little') + b'\r\n' _RAW_MAGIC_NUMBER = int.from_bytes(MAGIC_NUMBER, 'little') # For import.c @@ -1334,22 +1340,11 @@ def append(self, item): # This class is actually exposed publicly in a namespace package's __loader__ # attribute, so it should be available through a non-private name. -# https://bugs.python.org/issue35673 +# https://github.com/python/cpython/issues/92054 class NamespaceLoader: def __init__(self, name, path, path_finder): self._path = _NamespacePath(name, path, path_finder) - @staticmethod - def module_repr(module): - """Return repr for the module. - - The method is deprecated. The import machinery does the job itself. - - """ - _warnings.warn("NamespaceLoader.module_repr() is deprecated and " - "slated for removal in Python 3.12", DeprecationWarning) - return '<module {!r} (namespace)>'.format(module.__name__) - def is_package(self, fullname): return True @@ -1397,7 +1392,9 @@ def invalidate_caches(): """Call the invalidate_caches() method on all path entry finders stored in sys.path_importer_caches (where implemented).""" for name, finder in list(sys.path_importer_cache.items()): - if finder is None: + # Drop entry if finder name is a relative path. The current + # working directory may have changed. + if finder is None or not _path_isabs(name): del sys.path_importer_cache[name] elif hasattr(finder, 'invalidate_caches'): finder.invalidate_caches() @@ -1468,7 +1465,7 @@ def _get_spec(cls, fullname, path, target=None): # the list of paths that will become its __path__ namespace_path = [] for entry in path: - if not isinstance(entry, (str, bytes)): + if not isinstance(entry, str): continue finder = cls._path_importer_cache(entry) if finder is not None: @@ -1565,9 +1562,12 @@ def __init__(self, path, *loader_details): loaders.extend((suffix, loader) for suffix in suffixes) self._loaders = loaders # Base (directory) path - self.path = path or '.' - if not _path_isabs(self.path): - self.path = _path_join(_os.getcwd(), self.path) + if not path or path == '.': + self.path = _os.getcwd() + elif not _path_isabs(path): + self.path = _path_join(_os.getcwd(), path) + else: + self.path = path self._path_mtime = -1 self._path_cache = set() self._relaxed_path_cache = set() diff --git a/Lib/importlib/abc.py b/Lib/importlib/abc.py index 3fa151f390ba7c..8fa9a0f3bc1e4b 100644 --- a/Lib/importlib/abc.py +++ b/Lib/importlib/abc.py @@ -15,20 +15,29 @@ import abc import warnings -# for compatibility with Python 3.10 -from .resources.abc import ResourceReader, Traversable, TraversableResources +from .resources import abc as _resources_abc __all__ = [ 'Loader', 'Finder', 'MetaPathFinder', 'PathEntryFinder', 'ResourceLoader', 'InspectLoader', 'ExecutionLoader', 'FileLoader', 'SourceLoader', - - # for compatibility with Python 3.10 - 'ResourceReader', 'Traversable', 'TraversableResources', ] +def __getattr__(name): + """ + For backwards compatibility, continue to make names + from _resources_abc available through this module. #93963 + """ + if name in _resources_abc.__all__: + obj = getattr(_resources_abc, name) + warnings._deprecated(f"{__name__}.{name}", remove=(3, 14)) + globals()[name] = obj + return obj + raise AttributeError(f'module {__name__!r} has no attribute {name!r}') + + def _register(abstract_cls, *classes): for cls in classes: abstract_cls.register(cls) diff --git a/Lib/importlib/metadata/__init__.py b/Lib/importlib/metadata/__init__.py index 9ceae8a0e04b5a..b01de145c33671 100644 --- a/Lib/importlib/metadata/__init__.py +++ b/Lib/importlib/metadata/__init__.py @@ -543,7 +543,7 @@ def locate_file(self, path): """ @classmethod - def from_name(cls, name): + def from_name(cls, name: str): """Return the Distribution for the given package name. :param name: The name of the distribution package to search for. @@ -551,13 +551,13 @@ def from_name(cls, name): package, if found. :raises PackageNotFoundError: When the named package's distribution metadata cannot be found. + :raises ValueError: When an invalid value is supplied for name. """ - for resolver in cls._discover_resolvers(): - dists = resolver(DistributionFinder.Context(name=name)) - dist = next(iter(dists), None) - if dist is not None: - return dist - else: + if not name: + raise ValueError("A distribution name is required.") + try: + return next(cls.discover(name=name)) + except StopIteration: raise PackageNotFoundError(name) @classmethod @@ -945,13 +945,26 @@ def _normalized_name(self): normalized name from the file system path. """ stem = os.path.basename(str(self._path)) - return self._name_from_stem(stem) or super()._normalized_name + return ( + pass_none(Prepared.normalize)(self._name_from_stem(stem)) + or super()._normalized_name + ) - def _name_from_stem(self, stem): - name, ext = os.path.splitext(stem) + @staticmethod + def _name_from_stem(stem): + """ + >>> PathDistribution._name_from_stem('foo-3.0.egg-info') + 'foo' + >>> PathDistribution._name_from_stem('CherryPy-3.0.dist-info') + 'CherryPy' + >>> PathDistribution._name_from_stem('face.egg-info') + 'face' + >>> PathDistribution._name_from_stem('foo.bar') + """ + filename, ext = os.path.splitext(stem) if ext not in ('.dist-info', '.egg-info'): return - name, sep, rest = stem.partition('-') + name, sep, rest = filename.partition('-') return name @@ -991,6 +1004,15 @@ def version(distribution_name): return distribution(distribution_name).version +_unique = functools.partial( + unique_everseen, + key=operator.attrgetter('_normalized_name'), +) +""" +Wrapper for ``distributions`` to return unique distributions by name. +""" + + def entry_points(**params) -> Union[EntryPoints, SelectableGroups]: """Return EntryPoint objects for all installed packages. @@ -1008,10 +1030,8 @@ def entry_points(**params) -> Union[EntryPoints, SelectableGroups]: :return: EntryPoints or SelectableGroups for all installed packages. """ - norm_name = operator.attrgetter('_normalized_name') - unique = functools.partial(unique_everseen, key=norm_name) eps = itertools.chain.from_iterable( - dist.entry_points for dist in unique(distributions()) + dist.entry_points for dist in _unique(distributions()) ) return SelectableGroups.load(eps).select(**params) diff --git a/Lib/importlib/resources/_common.py b/Lib/importlib/resources/_common.py index 147ea19188f718..ca1fa8ab2fe6ff 100644 --- a/Lib/importlib/resources/_common.py +++ b/Lib/importlib/resources/_common.py @@ -67,7 +67,10 @@ def from_package(package): @contextlib.contextmanager -def _tempfile(reader, suffix=''): +def _tempfile(reader, suffix='', + # gh-93353: Keep a reference to call os.remove() in late Python + # finalization. + *, _os_remove=os.remove): # Not using tempfile.NamedTemporaryFile as it leads to deeper 'try' # blocks due to the need to close the temporary file to work on Windows # properly. @@ -81,7 +84,7 @@ def _tempfile(reader, suffix=''): yield pathlib.Path(raw_path) finally: try: - os.remove(raw_path) + _os_remove(raw_path) except FileNotFoundError: pass diff --git a/Lib/inspect.py b/Lib/inspect.py index 6e744712f014b1..498ee7ab9eaf8a 100644 --- a/Lib/inspect.py +++ b/Lib/inspect.py @@ -395,7 +395,7 @@ def _has_code_flag(f, flag): while ismethod(f): f = f.__func__ f = functools._unwrap_partial(f) - if not isfunction(f): + if not (isfunction(f) or _signature_is_functionlike(f)): return False return bool(f.__code__.co_flags & flag) @@ -946,6 +946,9 @@ def getsourcefile(object): elif any(filename.endswith(s) for s in importlib.machinery.EXTENSION_SUFFIXES): return None + # return a filename found in the linecache even if it doesn't exist on disk + if filename in linecache.cache: + return filename if os.path.exists(filename): return filename # only return a non-existent filename if the module has a PEP 302 loader @@ -954,9 +957,6 @@ def getsourcefile(object): return filename elif getattr(getattr(module, "__spec__", None), "loader", None) is not None: return filename - # or it is in the linecache - elif filename in linecache.cache: - return filename def getabsfile(object, _filename=None): """Return an absolute path to the source or compiled file for an object. diff --git a/Lib/io.py b/Lib/io.py index a205e00575f7e8..50ce97436ac1d1 100644 --- a/Lib/io.py +++ b/Lib/io.py @@ -57,22 +57,6 @@ IncrementalNewlineDecoder, text_encoding, TextIOWrapper) -def __getattr__(name): - if name == "OpenWrapper": - # bpo-43680: Until Python 3.9, _pyio.open was not a static method and - # builtins.open was set to OpenWrapper to not become a bound method - # when set to a class variable. _io.open is a built-in function whereas - # _pyio.open is a Python function. In Python 3.10, _pyio.open() is now - # a static method, and builtins.open() is now io.open(). - import warnings - warnings.warn('OpenWrapper is deprecated, use open instead', - DeprecationWarning, stacklevel=2) - global OpenWrapper - OpenWrapper = open - return OpenWrapper - raise AttributeError("module {__name__!r} has no attribute {name!r}") - - # Pretend this exception was created here. UnsupportedOperation.__module__ = "io" diff --git a/Lib/json/__init__.py b/Lib/json/__init__.py index e4c21daaf3e47f..d775fb1c11071d 100644 --- a/Lib/json/__init__.py +++ b/Lib/json/__init__.py @@ -97,7 +97,7 @@ """ __version__ = '2.0.9' __all__ = [ - 'dump', 'dumps', 'load', 'loads', + 'dump', 'dumps', 'load', 'loads', 'AttrDict', 'JSONDecoder', 'JSONDecodeError', 'JSONEncoder', ] @@ -357,3 +357,53 @@ def loads(s, *, cls=None, object_hook=None, parse_float=None, if parse_constant is not None: kw['parse_constant'] = parse_constant return cls(**kw).decode(s) + +class AttrDict(dict): + """Dict like object that supports attribute style dotted access. + + This class is intended for use with the *object_hook* in json.loads(): + + >>> from json import loads, AttrDict + >>> json_string = '{"mercury": 88, "venus": 225, "earth": 365, "mars": 687}' + >>> orbital_period = loads(json_string, object_hook=AttrDict) + >>> orbital_period['earth'] # Dict style lookup + 365 + >>> orbital_period.earth # Attribute style lookup + 365 + >>> orbital_period.keys() # All dict methods are present + dict_keys(['mercury', 'venus', 'earth', 'mars']) + + Attribute style access only works for keys that are valid attribute names. + In contrast, dictionary style access works for all keys. + For example, ``d.two words`` contains a space and is not syntactically + valid Python, so ``d["two words"]`` should be used instead. + + If a key has the same name as dictionary method, then a dictionary + lookup finds the key and an attribute lookup finds the method: + + >>> d = AttrDict(items=50) + >>> d['items'] # Lookup the key + 50 + >>> d.items() # Call the method + dict_items([('items', 50)]) + + """ + __slots__ = () + + def __getattr__(self, attr): + try: + return self[attr] + except KeyError: + raise AttributeError(attr) from None + + def __setattr__(self, attr, value): + self[attr] = value + + def __delattr__(self, attr): + try: + del self[attr] + except KeyError: + raise AttributeError(attr) from None + + def __dir__(self): + return list(self) + dir(type(self)) diff --git a/Lib/linecache.py b/Lib/linecache.py index 23191d6501d2a8..97644a8e3794e1 100644 --- a/Lib/linecache.py +++ b/Lib/linecache.py @@ -135,7 +135,7 @@ def updatecache(filename, module_globals=None): try: with tokenize.open(fullname) as fp: lines = fp.readlines() - except OSError: + except (OSError, UnicodeDecodeError, SyntaxError): return [] if lines and not lines[-1].endswith('\n'): lines[-1] += '\n' diff --git a/Lib/locale.py b/Lib/locale.py index 7a7694e1bfb71c..c2c7a04b280708 100644 --- a/Lib/locale.py +++ b/Lib/locale.py @@ -26,7 +26,7 @@ # trying the import. So __all__ is also fiddled at the end of the file. __all__ = ["getlocale", "getdefaultlocale", "getpreferredencoding", "Error", "setlocale", "resetlocale", "localeconv", "strcoll", "strxfrm", - "str", "atof", "atoi", "format", "format_string", "currency", + "str", "atof", "atoi", "format_string", "currency", "normalize", "LC_CTYPE", "LC_COLLATE", "LC_TIME", "LC_MONETARY", "LC_NUMERIC", "LC_ALL", "CHAR_MAX", "getencoding"] @@ -247,21 +247,6 @@ def format_string(f, val, grouping=False, monetary=False): return new_f % val -def format(percent, value, grouping=False, monetary=False, *additional): - """Deprecated, use format_string instead.""" - import warnings - warnings.warn( - "This method will be removed in a future version of Python. " - "Use 'locale.format_string()' instead.", - DeprecationWarning, stacklevel=2 - ) - - match = _percent_re.match(percent) - if not match or len(match.group())!= len(percent): - raise ValueError(("format() must be given exactly one %%char " - "format specifier, %s not valid") % repr(percent)) - return _format(percent, value, grouping, monetary, *additional) - def currency(val, symbol=True, grouping=False, international=False): """Formats val according to the currency settings in the current locale.""" diff --git a/Lib/logging/__init__.py b/Lib/logging/__init__.py index e7636e18bec4ab..86e1efe6e653ac 100644 --- a/Lib/logging/__init__.py +++ b/Lib/logging/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2001-2019 by Vinay Sajip. All Rights Reserved. +# Copyright 2001-2022 by Vinay Sajip. All Rights Reserved. # # Permission to use, copy, modify, and distribute this software and its # documentation for any purpose and without fee is hereby granted, @@ -18,7 +18,7 @@ Logging package for Python. Based on PEP 282 and comments thereto in comp.lang.python. -Copyright (C) 2001-2019 Vinay Sajip. All Rights Reserved. +Copyright (C) 2001-2022 Vinay Sajip. All Rights Reserved. To use, simply 'import logging' and log away! """ @@ -38,7 +38,8 @@ 'exception', 'fatal', 'getLevelName', 'getLogger', 'getLoggerClass', 'info', 'log', 'makeLogRecord', 'setLoggerClass', 'shutdown', 'warn', 'warning', 'getLogRecordFactory', 'setLogRecordFactory', - 'lastResort', 'raiseExceptions', 'getLevelNamesMapping'] + 'lastResort', 'raiseExceptions', 'getLevelNamesMapping', + 'getHandlerByName', 'getHandlerNames'] import threading @@ -339,7 +340,7 @@ def __init__(self, name, level, pathname, lineno, self.lineno = lineno self.funcName = func self.created = ct - self.msecs = (ct - int(ct)) * 1000 + self.msecs = int((ct - int(ct)) * 1000) + 0.0 # see gh-89047 self.relativeCreated = (self.created - _startTime) * 1000 if logThreads: self.thread = threading.get_ident() @@ -832,23 +833,36 @@ def filter(self, record): Determine if a record is loggable by consulting all the filters. The default is to allow the record to be logged; any filter can veto - this and the record is then dropped. Returns a zero value if a record - is to be dropped, else non-zero. + this by returning a false value. + If a filter attached to a handler returns a log record instance, + then that instance is used in place of the original log record in + any further processing of the event by that handler. + If a filter returns any other true value, the original log record + is used in any further processing of the event by that handler. + + If none of the filters return false values, this method returns + a log record. + If any of the filters return a false value, this method returns + a false value. .. versionchanged:: 3.2 Allow filters to be just callables. + + .. versionchanged:: 3.12 + Allow filters to return a LogRecord instead of + modifying it in place. """ - rv = True for f in self.filters: if hasattr(f, 'filter'): result = f.filter(record) else: result = f(record) # assume callable - will raise if not if not result: - rv = False - break - return rv + return False + if isinstance(result, LogRecord): + record = result + return record #--------------------------------------------------------------------------- # Handler classes and functions @@ -885,6 +899,23 @@ def _addHandlerRef(handler): finally: _releaseLock() + +def getHandlerByName(name): + """ + Get a handler with the specified *name*, or None if there isn't one with + that name. + """ + return _handlers.get(name) + + +def getHandlerNames(): + """ + Return all known handler names as an immutable set. + """ + result = set(_handlers.keys()) + return frozenset(result) + + class Handler(Filterer): """ Handler instances dispatch logging events to specific destinations. @@ -983,10 +1014,14 @@ def handle(self, record): Emission depends on filters which may have been added to the handler. Wrap the actual emission of the record with acquisition/release of - the I/O thread lock. Returns whether the filter passed the record for - emission. + the I/O thread lock. + + Returns an instance of the log record that was emitted + if it passed all filters, otherwise a false value is returned. """ rv = self.filter(record) + if isinstance(rv, LogRecord): + record = rv if rv: self.acquire() try: @@ -1498,7 +1533,7 @@ def info(self, msg, *args, **kwargs): To pass exception information, use the keyword argument exc_info with a true value, e.g. - logger.info("Houston, we have a %s", "interesting problem", exc_info=1) + logger.info("Houston, we have a %s", "notable problem", exc_info=1) """ if self.isEnabledFor(INFO): self._log(INFO, msg, args, **kwargs) @@ -1655,8 +1690,14 @@ def handle(self, record): This method is used for unpickled records received from a socket, as well as those created locally. Logger-level filtering is applied. """ - if (not self.disabled) and self.filter(record): - self.callHandlers(record) + if self.disabled: + return + maybe_record = self.filter(record) + if not maybe_record: + return + if isinstance(maybe_record, LogRecord): + record = maybe_record + self.callHandlers(record) def addHandler(self, hdlr): """ @@ -1787,6 +1828,25 @@ def getChild(self, suffix): suffix = '.'.join((self.name, suffix)) return self.manager.getLogger(suffix) + def getChildren(self): + + def _hierlevel(logger): + if logger is logger.manager.root: + return 0 + return 1 + logger.name.count('.') + + d = self.manager.loggerDict + _acquireLock() + try: + # exclude PlaceHolders - the last check is to ensure that lower-level + # descendants aren't returned - if there are placeholders, a logger's + # parent field might point to a grandparent or ancestor thereof. + return set(item for item in d.values() + if isinstance(item, Logger) and item.parent is self and + _hierlevel(item) == 1 + _hierlevel(item.parent)) + finally: + _releaseLock() + def __repr__(self): level = getLevelName(self.getEffectiveLevel()) return '<%s %s (%s)>' % (self.__class__.__name__, self.name, level) @@ -2204,7 +2264,11 @@ def shutdown(handlerList=_handlerList): if h: try: h.acquire() - h.flush() + # MemoryHandlers might not want to be flushed on close, + # but circular imports prevent us scoping this to just + # those handlers. hence the default to True. + if getattr(h, 'flushOnClose', True): + h.flush() h.close() except (OSError, ValueError): # Ignore errors which might be caused diff --git a/Lib/logging/config.py b/Lib/logging/config.py index 86a1e4eaf4cbc9..7cd16c643e9dad 100644 --- a/Lib/logging/config.py +++ b/Lib/logging/config.py @@ -1,4 +1,4 @@ -# Copyright 2001-2019 by Vinay Sajip. All Rights Reserved. +# Copyright 2001-2022 by Vinay Sajip. All Rights Reserved. # # Permission to use, copy, modify, and distribute this software and its # documentation for any purpose and without fee is hereby granted, @@ -19,15 +19,17 @@ is based on PEP 282 and comments thereto in comp.lang.python, and influenced by Apache's log4j system. -Copyright (C) 2001-2019 Vinay Sajip. All Rights Reserved. +Copyright (C) 2001-2022 Vinay Sajip. All Rights Reserved. To use, simply 'import logging' and log away! """ import errno +import functools import io import logging import logging.handlers +import queue import re import struct import threading @@ -563,7 +565,7 @@ def configure(self): handler.name = name handlers[name] = handler except Exception as e: - if 'target not configured yet' in str(e.__cause__): + if ' not configured yet' in str(e.__cause__): deferred.append(name) else: raise ValueError('Unable to configure handler ' @@ -702,6 +704,21 @@ def add_filters(self, filterer, filters): except Exception as e: raise ValueError('Unable to add filter %r' % f) from e + def _configure_queue_handler(self, klass, **kwargs): + if 'queue' in kwargs: + q = kwargs['queue'] + else: + q = queue.Queue() # unbounded + rhl = kwargs.get('respect_handler_level', False) + if 'listener' in kwargs: + lklass = kwargs['listener'] + else: + lklass = logging.handlers.QueueListener + listener = lklass(q, *kwargs['handlers'], respect_handler_level=rhl) + handler = klass(q) + handler.listener = listener + return handler + def configure_handler(self, config): """Configure a handler from a dictionary.""" config_copy = dict(config) # for restoring in case of error @@ -721,26 +738,83 @@ def configure_handler(self, config): factory = c else: cname = config.pop('class') - klass = self.resolve(cname) - #Special case for handler which refers to another handler + if callable(cname): + klass = cname + else: + klass = self.resolve(cname) if issubclass(klass, logging.handlers.MemoryHandler) and\ 'target' in config: + # Special case for handler which refers to another handler try: - th = self.config['handlers'][config['target']] + tn = config['target'] + th = self.config['handlers'][tn] if not isinstance(th, logging.Handler): config.update(config_copy) # restore for deferred cfg raise TypeError('target not configured yet') config['target'] = th except Exception as e: - raise ValueError('Unable to set target handler ' - '%r' % config['target']) from e + raise ValueError('Unable to set target handler %r' % tn) from e + elif issubclass(klass, logging.handlers.QueueHandler): + # Another special case for handler which refers to other handlers + if 'handlers' not in config: + raise ValueError('No handlers specified for a QueueHandler') + if 'queue' in config: + qspec = config['queue'] + if not isinstance(qspec, queue.Queue): + if isinstance(qspec, str): + q = self.resolve(qspec) + if not callable(q): + raise TypeError('Invalid queue specifier %r' % qspec) + q = q() + elif isinstance(qspec, dict): + if '()' not in qspec: + raise TypeError('Invalid queue specifier %r' % qspec) + q = self.configure_custom(dict(qspec)) + else: + raise TypeError('Invalid queue specifier %r' % qspec) + config['queue'] = q + if 'listener' in config: + lspec = config['listener'] + if isinstance(lspec, type): + if not issubclass(lspec, logging.handlers.QueueListener): + raise TypeError('Invalid listener specifier %r' % lspec) + else: + if isinstance(lspec, str): + listener = self.resolve(lspec) + if isinstance(listener, type) and\ + not issubclass(listener, logging.handlers.QueueListener): + raise TypeError('Invalid listener specifier %r' % lspec) + elif isinstance(lspec, dict): + if '()' not in lspec: + raise TypeError('Invalid listener specifier %r' % lspec) + listener = self.configure_custom(dict(lspec)) + else: + raise TypeError('Invalid listener specifier %r' % lspec) + if not callable(listener): + raise TypeError('Invalid listener specifier %r' % lspec) + config['listener'] = listener + hlist = [] + try: + for hn in config['handlers']: + h = self.config['handlers'][hn] + if not isinstance(h, logging.Handler): + config.update(config_copy) # restore for deferred cfg + raise TypeError('Required handler %r ' + 'is not configured yet' % hn) + hlist.append(h) + except Exception as e: + raise ValueError('Unable to set required handler %r' % hn) from e + config['handlers'] = hlist elif issubclass(klass, logging.handlers.SMTPHandler) and\ 'mailhost' in config: config['mailhost'] = self.as_tuple(config['mailhost']) elif issubclass(klass, logging.handlers.SysLogHandler) and\ 'address' in config: config['address'] = self.as_tuple(config['address']) - factory = klass + if issubclass(klass, logging.handlers.QueueHandler): + factory = functools.partial(self._configure_queue_handler, klass) + else: + factory = klass props = config.pop('.', None) kwargs = {k: config[k] for k in config if valid_ident(k)} try: @@ -795,6 +869,7 @@ def configure_logger(self, name, config, incremental=False): """Configure a non-root logger from a dictionary.""" logger = logging.getLogger(name) self.common_logger_config(logger, config, incremental) + logger.disabled = False propagate = config.get('propagate', None) if propagate is not None: logger.propagate = propagate diff --git a/Lib/logging/handlers.py b/Lib/logging/handlers.py index 78e919d195d974..b4c5c1304b9752 100644 --- a/Lib/logging/handlers.py +++ b/Lib/logging/handlers.py @@ -348,11 +348,15 @@ def shouldRollover(self, record): record is not used, as we are just comparing times, but it is needed so the method signatures are the same """ - # See bpo-45401: Never rollover anything other than regular files - if os.path.exists(self.baseFilename) and not os.path.isfile(self.baseFilename): - return False t = int(time.time()) if t >= self.rolloverAt: + # See #89564: Never rollover anything other than regular files + if os.path.exists(self.baseFilename) and not os.path.isfile(self.baseFilename): + # The file is not a regular file, so do not rollover, but do + # set the next rollover time to avoid repeated checks. + self.rolloverAt = self.computeRollover(t) + return False + return True return False @@ -1107,7 +1111,16 @@ def __init__(self, appname, dllname=None, logtype="Application"): dllname = os.path.join(dllname[0], r'win32service.pyd') self.dllname = dllname self.logtype = logtype - self._welu.AddSourceToRegistry(appname, dllname, logtype) + # Administrative privileges are required to add a source to the registry. + # This may not be available for a user that just wants to add to an + # existing source - handle this specific case. + try: + self._welu.AddSourceToRegistry(appname, dllname, logtype) + except Exception as e: + # This will probably be a pywintypes.error. Only raise if it's not + # an "access denied" error, else let it pass + if getattr(e, 'winerror', None) != 5: # not access denied + raise self.deftype = win32evtlog.EVENTLOG_ERROR_TYPE self.typemap = { logging.DEBUG : win32evtlog.EVENTLOG_INFORMATION_TYPE, @@ -1424,6 +1437,7 @@ def __init__(self, queue): """ logging.Handler.__init__(self) self.queue = queue + self.listener = None # will be set to listener if configured via dictConfig() def enqueue(self, record): """ @@ -1455,7 +1469,7 @@ def prepare(self, record): # (if there's exception data), and also returns the formatted # message. We can then use this to replace the original # msg + args, as these might be unpickleable. We also zap the - # exc_info and exc_text attributes, as they are no longer + # exc_info, exc_text and stack_info attributes, as they are no longer # needed and, if not None, will typically not be pickleable. msg = self.format(record) # bpo-35726: make copy of record to avoid affecting other handlers in the chain. @@ -1465,6 +1479,7 @@ def prepare(self, record): record.args = None record.exc_info = None record.exc_text = None + record.stack_info = None return record def emit(self, record): diff --git a/Lib/mailcap.py b/Lib/mailcap.py index 856b6a55475f38..7278ea7051fccf 100644 --- a/Lib/mailcap.py +++ b/Lib/mailcap.py @@ -2,6 +2,7 @@ import os import warnings +import re __all__ = ["getcaps","findmatch"] @@ -19,6 +20,11 @@ def lineno_sort_key(entry): else: return 1, 0 +_find_unsafe = re.compile(r'[^\xa1-\U0010FFFF\w@+=:,./-]').search + +class UnsafeMailcapInput(Warning): + """Warning raised when refusing unsafe input""" + # Part 1: top-level interface. @@ -171,15 +177,22 @@ def findmatch(caps, MIMEtype, key='view', filename="/dev/null", plist=[]): entry to use. """ + if _find_unsafe(filename): + msg = "Refusing to use mailcap with filename %r. Use a safe temporary filename." % (filename,) + warnings.warn(msg, UnsafeMailcapInput) + return None, None entries = lookup(caps, MIMEtype, key) # XXX This code should somehow check for the needsterminal flag. for e in entries: if 'test' in e: test = subst(e['test'], filename, plist) + if test is None: + continue if test and os.system(test) != 0: continue command = subst(e[key], MIMEtype, filename, plist) - return command, e + if command is not None: + return command, e return None, None def lookup(caps, MIMEtype, key=None): @@ -212,6 +225,10 @@ def subst(field, MIMEtype, filename, plist=[]): elif c == 's': res = res + filename elif c == 't': + if _find_unsafe(MIMEtype): + msg = "Refusing to substitute MIME type %r into a shell command." % (MIMEtype,) + warnings.warn(msg, UnsafeMailcapInput) + return None res = res + MIMEtype elif c == '{': start = i @@ -219,7 +236,12 @@ def subst(field, MIMEtype, filename, plist=[]): i = i+1 name = field[start:i] i = i+1 - res = res + findparam(name, plist) + param = findparam(name, plist) + if _find_unsafe(param): + msg = "Refusing to substitute parameter %r (%s) into a shell command" % (param, name) + warnings.warn(msg, UnsafeMailcapInput) + return None + res = res + param # XXX To do: # %n == number of parts if type is multipart/* # %F == list of alternating type and filename for parts diff --git a/Lib/multiprocessing/context.py b/Lib/multiprocessing/context.py index 8d0525d5d62179..b1960ea296fe20 100644 --- a/Lib/multiprocessing/context.py +++ b/Lib/multiprocessing/context.py @@ -223,6 +223,10 @@ class Process(process.BaseProcess): def _Popen(process_obj): return _default_context.get_context().Process._Popen(process_obj) + @staticmethod + def _after_fork(): + return _default_context.get_context().Process._after_fork() + class DefaultContext(BaseContext): Process = Process @@ -283,6 +287,11 @@ def _Popen(process_obj): from .popen_spawn_posix import Popen return Popen(process_obj) + @staticmethod + def _after_fork(): + # process is spawned, nothing to do + pass + class ForkServerProcess(process.BaseProcess): _start_method = 'forkserver' @staticmethod @@ -326,6 +335,11 @@ def _Popen(process_obj): from .popen_spawn_win32 import Popen return Popen(process_obj) + @staticmethod + def _after_fork(): + # process is spawned, nothing to do + pass + class SpawnContext(BaseContext): _name = 'spawn' Process = SpawnProcess diff --git a/Lib/multiprocessing/pool.py b/Lib/multiprocessing/pool.py index bbe05a550c349c..961d7e5991847a 100644 --- a/Lib/multiprocessing/pool.py +++ b/Lib/multiprocessing/pool.py @@ -203,6 +203,9 @@ def __init__(self, processes=None, initializer=None, initargs=(), processes = os.cpu_count() or 1 if processes < 1: raise ValueError("Number of processes must be at least 1") + if maxtasksperchild is not None: + if not isinstance(maxtasksperchild, int) or maxtasksperchild <= 0: + raise ValueError("maxtasksperchild must be a positive int or None") if initializer is not None and not callable(initializer): raise TypeError('initializer must be a callable') diff --git a/Lib/multiprocessing/process.py b/Lib/multiprocessing/process.py index 3917d2e4fa63ec..c03c859baa795b 100644 --- a/Lib/multiprocessing/process.py +++ b/Lib/multiprocessing/process.py @@ -304,8 +304,7 @@ def _bootstrap(self, parent_sentinel=None): if threading._HAVE_THREAD_NATIVE_ID: threading.main_thread()._set_native_id() try: - util._finalizer_registry.clear() - util._run_after_forkers() + self._after_fork() finally: # delay finalization of the old process object until after # _run_after_forkers() is executed @@ -336,6 +335,13 @@ def _bootstrap(self, parent_sentinel=None): return exitcode + @staticmethod + def _after_fork(): + from . import util + util._finalizer_registry.clear() + util._run_after_forkers() + + # # We subclass bytes to avoid accidental transmission of auth keys over network # diff --git a/Lib/multiprocessing/shared_memory.py b/Lib/multiprocessing/shared_memory.py index 122b3fcebf3fed..881f2001dd5980 100644 --- a/Lib/multiprocessing/shared_memory.py +++ b/Lib/multiprocessing/shared_memory.py @@ -23,6 +23,7 @@ import _posixshmem _USE_POSIX = True +from . import resource_tracker _O_CREX = os.O_CREAT | os.O_EXCL @@ -116,8 +117,7 @@ def __init__(self, name=None, create=False, size=0): self.unlink() raise - from .resource_tracker import register - register(self._name, "shared_memory") + resource_tracker.register(self._name, "shared_memory") else: @@ -237,9 +237,8 @@ def unlink(self): called once (and only once) across all processes which have access to the shared memory block.""" if _USE_POSIX and self._name: - from .resource_tracker import unregister _posixshmem.shm_unlink(self._name) - unregister(self._name, "shared_memory") + resource_tracker.unregister(self._name, "shared_memory") _encoding = "utf8" diff --git a/Lib/netrc.py b/Lib/netrc.py index c1358aac6ae02f..b285fd8e357ddb 100644 --- a/Lib/netrc.py +++ b/Lib/netrc.py @@ -2,7 +2,7 @@ # Module and documentation by Eric S. Raymond, 21 Dec 1998 -import os, shlex, stat +import os, stat __all__ = ["netrc", "NetrcParseError"] diff --git a/Lib/ntpath.py b/Lib/ntpath.py index 041ebc75cb127c..d9582f4087433e 100644 --- a/Lib/ntpath.py +++ b/Lib/ntpath.py @@ -23,6 +23,7 @@ import genericpath from genericpath import * + __all__ = ["normcase","isabs","join","splitdrive","split","splitext", "basename","dirname","commonprefix","getsize","getmtime", "getatime","getctime", "islink","exists","lexists","isdir","isfile", @@ -41,14 +42,39 @@ def _get_bothseps(path): # Other normalizations (such as optimizing '../' away) are not done # (this is done by normpath). -def normcase(s): - """Normalize case of pathname. - - Makes all characters lowercase and all slashes into backslashes.""" - s = os.fspath(s) - if isinstance(s, bytes): - return s.replace(b'/', b'\\').lower() - else: +try: + from _winapi import ( + LCMapStringEx as _LCMapStringEx, + LOCALE_NAME_INVARIANT as _LOCALE_NAME_INVARIANT, + LCMAP_LOWERCASE as _LCMAP_LOWERCASE) + + def normcase(s): + """Normalize case of pathname. + + Makes all characters lowercase and all slashes into backslashes. + """ + s = os.fspath(s) + if not s: + return s + if isinstance(s, bytes): + encoding = sys.getfilesystemencoding() + s = s.decode(encoding, 'surrogateescape').replace('/', '\\') + s = _LCMapStringEx(_LOCALE_NAME_INVARIANT, + _LCMAP_LOWERCASE, s) + return s.encode(encoding, 'surrogateescape') + else: + return _LCMapStringEx(_LOCALE_NAME_INVARIANT, + _LCMAP_LOWERCASE, + s.replace('/', '\\')) +except ImportError: + def normcase(s): + """Normalize case of pathname. + + Makes all characters lowercase and all slashes into backslashes. + """ + s = os.fspath(s) + if isinstance(s, bytes): + return os.fsencode(os.fsdecode(s).replace('/', '\\').lower()) return s.replace('/', '\\').lower() @@ -146,17 +172,23 @@ def splitdrive(p): sep = b'\\' altsep = b'/' colon = b':' + unc_prefix = b'\\\\?\\UNC' else: sep = '\\' altsep = '/' colon = ':' + unc_prefix = '\\\\?\\UNC' normp = p.replace(altsep, sep) if (normp[0:2] == sep*2) and (normp[2:3] != sep): # is a UNC path: # vvvvvvvvvvvvvvvvvvvv drive letter or UNC path # \\machine\mountpoint\directory\etc\... # directory ^^^^^^^^^^^^^^^ - index = normp.find(sep, 2) + if normp[:8].upper().rstrip(sep) == unc_prefix: + start = 8 + else: + start = 2 + index = normp.find(sep, start) if index == -1: return p[:0], p index2 = normp.find(sep, index + 1) @@ -700,9 +732,8 @@ def realpath(path, *, strict=False): return path -# Win9x family and earlier have no Unicode filename support. -supports_unicode_filenames = (hasattr(sys, "getwindowsversion") and - sys.getwindowsversion()[3] >= 2) +# All supported version have Unicode filename support. +supports_unicode_filenames = True def relpath(path, start=None): """Return a relative version of a path""" diff --git a/Lib/numbers.py b/Lib/numbers.py index 8e37d79fa755ad..a2913e32cfada7 100644 --- a/Lib/numbers.py +++ b/Lib/numbers.py @@ -313,7 +313,7 @@ def __float__(self): so that ratios of huge integers convert without overflowing. """ - return self.numerator / self.denominator + return int(self.numerator) / int(self.denominator) class Integral(Rational): diff --git a/Lib/opcode.py b/Lib/opcode.py index 573e461666d4d5..690923061418bd 100644 --- a/Lib/opcode.py +++ b/Lib/opcode.py @@ -4,9 +4,9 @@ operate on bytecodes (e.g. peephole optimizers). """ -__all__ = ["cmp_op", "hasconst", "hasname", "hasjrel", "hasjabs", - "haslocal", "hascompare", "hasfree", "opname", "opmap", - "HAVE_ARGUMENT", "EXTENDED_ARG", "hasnargs"] +__all__ = ["cmp_op", "hasarg", "hasconst", "hasname", "hasjrel", "hasjabs", + "haslocal", "hascompare", "hasfree", "hasexc", "opname", "opmap", + "HAVE_ARGUMENT", "EXTENDED_ARG"] # It's a chicken-and-egg I'm afraid: # We're imported before _opcode's made. @@ -23,6 +23,7 @@ cmp_op = ('<', '<=', '==', '!=', '>', '>=') +hasarg = [] hasconst = [] hasname = [] hasjrel = [] @@ -30,13 +31,21 @@ haslocal = [] hascompare = [] hasfree = [] -hasnargs = [] # unused +hasexc = [] + +def is_pseudo(op): + return op >= MIN_PSEUDO_OPCODE and op <= MAX_PSEUDO_OPCODE + +oplists = [hasarg, hasconst, hasname, hasjrel, hasjabs, + haslocal, hascompare, hasfree, hasexc] opmap = {} -opname = ['<%r>' % (op,) for op in range(256)] + +## pseudo opcodes (used in the compiler) mapped to the values +## they can become in the actual code. +_pseudo_ops = {} def def_op(name, op): - opname[op] = name opmap[name] = op def name_op(name, op): @@ -51,6 +60,17 @@ def jabs_op(name, op): def_op(name, op) hasjabs.append(op) +def pseudo_op(name, op, real_ops): + def_op(name, op) + _pseudo_ops[name] = real_ops + # add the pseudo opcode to the lists its targets are in + for oplist in oplists: + res = [opmap[rop] in oplist for rop in real_ops] + if any(res): + assert all(res) + oplist.append(op) + + # Instruction opcodes for compiled code # Blank lines correspond to available opcodes @@ -66,6 +86,8 @@ def jabs_op(name, op): def_op('UNARY_INVERT', 15) def_op('BINARY_SUBSCR', 25) +def_op('BINARY_SLICE', 26) +def_op('STORE_SLICE', 27) def_op('GET_LEN', 30) def_op('MATCH_MAPPING', 31) @@ -82,6 +104,7 @@ def jabs_op(name, op): def_op('BEFORE_ASYNC_WITH', 52) def_op('BEFORE_WITH', 53) def_op('END_ASYNC_FOR', 54) +def_op('CLEANUP_THROW', 55) def_op('STORE_SUBSCR', 60) def_op('DELETE_SUBSCR', 61) @@ -103,7 +126,7 @@ def jabs_op(name, op): def_op('PREP_RERAISE_STAR', 88) def_op('POP_EXCEPT', 89) -HAVE_ARGUMENT = 90 # Opcodes from here have an argument: +HAVE_ARGUMENT = 90 # real opcodes from here have an argument: name_op('STORE_NAME', 90) # Index in name list name_op('DELETE_NAME', 91) # "" @@ -130,8 +153,8 @@ def jabs_op(name, op): jrel_op('JUMP_FORWARD', 110) # Number of words to skip jrel_op('JUMP_IF_FALSE_OR_POP', 111) # Number of words to skip jrel_op('JUMP_IF_TRUE_OR_POP', 112) # "" -jrel_op('POP_JUMP_FORWARD_IF_FALSE', 114) -jrel_op('POP_JUMP_FORWARD_IF_TRUE', 115) +jrel_op('POP_JUMP_IF_FALSE', 114) +jrel_op('POP_JUMP_IF_TRUE', 115) name_op('LOAD_GLOBAL', 116) # Index in name list def_op('IS_OP', 117) def_op('CONTAINS_OP', 118) @@ -139,14 +162,16 @@ def jabs_op(name, op): def_op('COPY', 120) def_op('BINARY_OP', 122) jrel_op('SEND', 123) # Number of bytes to skip -def_op('LOAD_FAST', 124) # Local variable number +def_op('LOAD_FAST', 124) # Local variable number, no null check haslocal.append(124) def_op('STORE_FAST', 125) # Local variable number haslocal.append(125) def_op('DELETE_FAST', 126) # Local variable number haslocal.append(126) -jrel_op('POP_JUMP_FORWARD_IF_NOT_NONE', 128) -jrel_op('POP_JUMP_FORWARD_IF_NONE', 129) +def_op('LOAD_FAST_CHECK', 127) # Local variable number +haslocal.append(127) +jrel_op('POP_JUMP_IF_NOT_NONE', 128) +jrel_op('POP_JUMP_IF_NONE', 129) def_op('RAISE_VARARGS', 130) # Number of raise arguments (1, 2, or 3) def_op('GET_AWAITABLE', 131) def_op('MAKE_FUNCTION', 132) # Flags @@ -175,15 +200,13 @@ def jabs_op(name, op): hasfree.append(148) def_op('COPY_FREE_VARS', 149) def_op('YIELD_VALUE', 150) -def_op('RESUME', 151) +def_op('RESUME', 151) # This must be kept in sync with deepfreeze.py def_op('MATCH_CLASS', 152) def_op('FORMAT_VALUE', 155) def_op('BUILD_CONST_KEY_MAP', 156) def_op('BUILD_STRING', 157) -name_op('LOAD_METHOD', 160) - def_op('LIST_EXTEND', 162) def_op('SET_UPDATE', 163) def_op('DICT_MERGE', 164) @@ -193,13 +216,32 @@ def jabs_op(name, op): def_op('KW_NAMES', 172) hasconst.append(172) -jrel_op('POP_JUMP_BACKWARD_IF_NOT_NONE', 173) -jrel_op('POP_JUMP_BACKWARD_IF_NONE', 174) -jrel_op('POP_JUMP_BACKWARD_IF_FALSE', 175) -jrel_op('POP_JUMP_BACKWARD_IF_TRUE', 176) +hasarg.extend([op for op in opmap.values() if op >= HAVE_ARGUMENT]) + +MIN_PSEUDO_OPCODE = 256 + +pseudo_op('SETUP_FINALLY', 256, ['NOP']) +hasexc.append(256) +pseudo_op('SETUP_CLEANUP', 257, ['NOP']) +hasexc.append(257) +pseudo_op('SETUP_WITH', 258, ['NOP']) +hasexc.append(258) +pseudo_op('POP_BLOCK', 259, ['NOP']) + +pseudo_op('JUMP', 260, ['JUMP_FORWARD', 'JUMP_BACKWARD']) +pseudo_op('JUMP_NO_INTERRUPT', 261, ['JUMP_FORWARD', 'JUMP_BACKWARD_NO_INTERRUPT']) + +pseudo_op('LOAD_METHOD', 262, ['LOAD_ATTR']) + +MAX_PSEUDO_OPCODE = MIN_PSEUDO_OPCODE + len(_pseudo_ops) - 1 + +del def_op, name_op, jrel_op, jabs_op, pseudo_op + +opname = ['<%r>' % (op,) for op in range(MAX_PSEUDO_OPCODE + 1)] +for op, i in opmap.items(): + opname[i] = op -del def_op, name_op, jrel_op, jabs_op _nb_ops = [ ("NB_ADD", "+"), @@ -278,15 +320,29 @@ def jabs_op(name, op): "EXTENDED_ARG": [ "EXTENDED_ARG_QUICK", ], + "FOR_ITER": [ + "FOR_ITER_ADAPTIVE", + "FOR_ITER_LIST", + "FOR_ITER_RANGE", + ], "JUMP_BACKWARD": [ "JUMP_BACKWARD_QUICK", ], "LOAD_ATTR": [ "LOAD_ATTR_ADAPTIVE", + # These potentially push [NULL, bound method] onto the stack. + "LOAD_ATTR_CLASS", + "LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN", "LOAD_ATTR_INSTANCE_VALUE", "LOAD_ATTR_MODULE", + "LOAD_ATTR_PROPERTY", "LOAD_ATTR_SLOT", "LOAD_ATTR_WITH_HINT", + # These will always push [unbound method, self] onto the stack. + "LOAD_ATTR_METHOD_LAZY_DICT", + "LOAD_ATTR_METHOD_NO_DICT", + "LOAD_ATTR_METHOD_WITH_DICT", + "LOAD_ATTR_METHOD_WITH_VALUES", ], "LOAD_CONST": [ "LOAD_CONST__LOAD_FAST", @@ -300,15 +356,6 @@ def jabs_op(name, op): "LOAD_GLOBAL_BUILTIN", "LOAD_GLOBAL_MODULE", ], - "LOAD_METHOD": [ - "LOAD_METHOD_ADAPTIVE", - "LOAD_METHOD_CLASS", - "LOAD_METHOD_LAZY_DICT", - "LOAD_METHOD_MODULE", - "LOAD_METHOD_NO_DICT", - "LOAD_METHOD_WITH_DICT", - "LOAD_METHOD_WITH_VALUES", - ], "RESUME": [ "RESUME_QUICK", ], @@ -368,23 +415,20 @@ def jabs_op(name, op): "type_version": 2, "func_version": 1, }, + "FOR_ITER": { + "counter": 1, + }, "LOAD_ATTR": { "counter": 1, "version": 2, - "index": 1, + "keys_version": 2, + "descr": 4, }, "STORE_ATTR": { "counter": 1, "version": 2, "index": 1, }, - "LOAD_METHOD": { - "counter": 1, - "type_version": 2, - "dict_offset": 1, - "keys_version": 2, - "descr": 4, - }, "CALL": { "counter": 1, "func_version": 2, diff --git a/Lib/pathlib.py b/Lib/pathlib.py index c608ba0954f32c..0ea621cc601037 100644 --- a/Lib/pathlib.py +++ b/Lib/pathlib.py @@ -1,3 +1,10 @@ +"""Object-oriented filesystem paths. + +This module provides classes to represent abstract paths and concrete +paths with operations that have semantics appropriate for different +operating systems. +""" + import fnmatch import functools import io @@ -54,41 +61,16 @@ def __init__(self): self.join = self.sep.join def parse_parts(self, parts): - parsed = [] + if not parts: + return '', '', [] sep = self.sep altsep = self.altsep - drv = root = '' - it = reversed(parts) - for part in it: - if not part: - continue - if altsep: - part = part.replace(altsep, sep) - drv, root, rel = self.splitroot(part) - if sep in rel: - for x in reversed(rel.split(sep)): - if x and x != '.': - parsed.append(sys.intern(x)) - else: - if rel and rel != '.': - parsed.append(sys.intern(rel)) - if drv or root: - if not drv: - # If no drive is present, try to find one in the previous - # parts. This makes the result of parsing e.g. - # ("C:", "/", "a") reasonably intuitive. - for part in it: - if not part: - continue - if altsep: - part = part.replace(altsep, sep) - drv = self.splitroot(part)[0] - if drv: - break - break - if drv or root: - parsed.append(drv + root) - parsed.reverse() + path = self.pathmod.join(*parts) + if altsep: + path = path.replace(altsep, sep) + drv, root, rel = self.splitroot(path) + unfiltered_parsed = [drv + root] + rel.split(sep) + parsed = [sys.intern(x) for x in unfiltered_parsed if x and x != '.'] return drv, root, parsed def join_parsed_parts(self, drv, root, parts, drv2, root2, parts2): @@ -120,68 +102,18 @@ class _WindowsFlavour(_Flavour): is_supported = (os.name == 'nt') - drive_letters = set('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ') - ext_namespace_prefix = '\\\\?\\' - reserved_names = ( {'CON', 'PRN', 'AUX', 'NUL', 'CONIN$', 'CONOUT$'} | {'COM%s' % c for c in '123456789\xb9\xb2\xb3'} | {'LPT%s' % c for c in '123456789\xb9\xb2\xb3'} ) - # Interesting findings about extended paths: - # * '\\?\c:\a' is an extended path, which bypasses normal Windows API - # path processing. Thus relative paths are not resolved and slash is not - # translated to backslash. It has the native NT path limit of 32767 - # characters, but a bit less after resolving device symbolic links, - # such as '\??\C:' => '\Device\HarddiskVolume2'. - # * '\\?\c:/a' looks for a device named 'C:/a' because slash is a - # regular name character in the object namespace. - # * '\\?\c:\foo/bar' is invalid because '/' is illegal in NT filesystems. - # The only path separator at the filesystem level is backslash. - # * '//?/c:\a' and '//?/c:/a' are effectively equivalent to '\\.\c:\a' and - # thus limited to MAX_PATH. - # * Prior to Windows 8, ANSI API bytes paths are limited to MAX_PATH, - # even with the '\\?\' prefix. - def splitroot(self, part, sep=sep): - first = part[0:1] - second = part[1:2] - if (second == sep and first == sep): - # XXX extended paths should also disable the collapsing of "." - # components (according to MSDN docs). - prefix, part = self._split_extended_path(part) - first = part[0:1] - second = part[1:2] + drv, rest = self.pathmod.splitdrive(part) + if drv[:1] == sep or rest[:1] == sep: + return drv, sep, rest.lstrip(sep) else: - prefix = '' - third = part[2:3] - if (second == sep and first == sep and third != sep): - # is a UNC path: - # vvvvvvvvvvvvvvvvvvvvv root - # \\machine\mountpoint\directory\etc\... - # directory ^^^^^^^^^^^^^^ - index = part.find(sep, 2) - if index != -1: - index2 = part.find(sep, index + 1) - # a UNC path can't have two slashes in a row - # (after the initial two) - if index2 != index + 1: - if index2 == -1: - index2 = len(part) - if prefix: - return prefix + part[1:index2], sep, part[index2+1:] - else: - return part[:index2], sep, part[index2+1:] - drv = root = '' - if second == ':' and first in self.drive_letters: - drv = part[:2] - part = part[2:] - first = third - if first == sep: - root = first - part = part.lstrip(sep) - return prefix + drv, root, part + return drv, '', rest def casefold(self, s): return s.lower() @@ -192,16 +124,6 @@ def casefold_parts(self, parts): def compile_pattern(self, pattern): return re.compile(fnmatch.translate(pattern), re.IGNORECASE).fullmatch - def _split_extended_path(self, s, ext_prefix=ext_namespace_prefix): - prefix = '' - if s.startswith(ext_prefix): - prefix = s[:4] - s = s[4:] - if s.startswith('UNC\\'): - prefix += s[:3] - s = '\\' + s[3:] - return prefix, s - def is_reserved(self, parts): # NOTE: the rules for reserved names seem somewhat complicated # (e.g. r"..\NUL" is reserved but not r"foo\NUL" if "foo" does not @@ -352,6 +274,8 @@ def __init__(self, pat, child_parts, flavour): def _select_from(self, parent_path, is_dir, exists, scandir): try: + # We must close the scandir() object before proceeding to + # avoid exhausting file descriptors when globbing deep trees. with scandir(parent_path) as scandir_it: entries = list(scandir_it) for entry in entries: @@ -383,6 +307,8 @@ def __init__(self, pat, child_parts, flavour): def _iterate_directories(self, parent_path, is_dir, scandir): yield parent_path try: + # We must close the scandir() object before proceeding to + # avoid exhausting file descriptors when globbing deep trees. with scandir(parent_path) as scandir_it: entries = list(scandir_it) for entry in entries: @@ -443,6 +369,8 @@ def __getitem__(self, idx): if idx >= len(self) or idx < -len(self): raise IndexError(idx) + if idx < 0: + idx += len(self) return self._pathcls._from_parsed_parts(self._drv, self._root, self._parts[:-idx - 1]) @@ -1258,23 +1186,9 @@ def is_file(self): def is_mount(self): """ - Check if this path is a POSIX mount point + Check if this path is a mount point """ - # Need to exist and be a dir - if not self.exists() or not self.is_dir(): - return False - - try: - parent_dev = self.parent.stat().st_dev - except OSError: - return False - - dev = self.stat().st_dev - if dev != parent_dev: - return True - ino = self.stat().st_ino - parent_ino = self.parent.stat().st_ino - return ino == parent_ino + return self._flavour.pathmod.ismount(self) def is_symlink(self): """ @@ -1368,6 +1282,49 @@ def expanduser(self): return self + def walk(self, top_down=True, on_error=None, follow_symlinks=False): + """Walk the directory tree from this directory, similar to os.walk().""" + sys.audit("pathlib.Path.walk", self, on_error, follow_symlinks) + return self._walk(top_down, on_error, follow_symlinks) + + def _walk(self, top_down, on_error, follow_symlinks): + # We may not have read permission for self, in which case we can't + # get a list of the files the directory contains. os.walk + # always suppressed the exception then, rather than blow up for a + # minor reason when (say) a thousand readable directories are still + # left to visit. That logic is copied here. + try: + scandir_it = self._scandir() + except OSError as error: + if on_error is not None: + on_error(error) + return + + with scandir_it: + dirnames = [] + filenames = [] + for entry in scandir_it: + try: + is_dir = entry.is_dir(follow_symlinks=follow_symlinks) + except OSError: + # Carried over from os.path.isdir(). + is_dir = False + + if is_dir: + dirnames.append(entry.name) + else: + filenames.append(entry.name) + + if top_down: + yield self, dirnames, filenames + + for dirname in dirnames: + dirpath = self._make_child_relpath(dirname) + yield from dirpath._walk(top_down, on_error, follow_symlinks) + + if not top_down: + yield self, dirnames, filenames + class PosixPath(Path, PurePosixPath): """Path subclass for non-Windows systems. @@ -1382,6 +1339,3 @@ class WindowsPath(Path, PureWindowsPath): On a Windows system, instantiating a Path should return this object. """ __slots__ = () - - def is_mount(self): - raise NotImplementedError("Path.is_mount() is unsupported on this system") diff --git a/Lib/pdb.py b/Lib/pdb.py index e6ed814acbe19a..b0acb1f571d3f6 100755 --- a/Lib/pdb.py +++ b/Lib/pdb.py @@ -131,7 +131,7 @@ def __repr__(self): return self -class ScriptTarget(str): +class _ScriptTarget(str): def __new__(cls, val): # Mutate self to be the "real path". res = super().__new__(cls, os.path.realpath(val)) @@ -167,7 +167,7 @@ def code(self): return f"exec(compile({fp.read()!r}, {self!r}, 'exec'))" -class ModuleTarget(str): +class _ModuleTarget(str): def check(self): try: self._details @@ -1625,7 +1625,7 @@ def lookupmodule(self, filename): return fullname return None - def _run(self, target: Union[ModuleTarget, ScriptTarget]): + def _run(self, target: Union[_ModuleTarget, _ScriptTarget]): # When bdb sets tracing, a number of call and line events happen # BEFORE debugger even reaches user's code (and the exact sequence of # events depends on python version). Take special measures to @@ -1789,7 +1789,7 @@ def main(): commands = [optarg for opt, optarg in opts if opt in ['-c', '--command']] module_indicated = any(opt in ['-m'] for opt, optarg in opts) - cls = ModuleTarget if module_indicated else ScriptTarget + cls = _ModuleTarget if module_indicated else _ScriptTarget target = cls(args[0]) target.check() diff --git a/Lib/pickle.py b/Lib/pickle.py index e7f30f226101f5..f027e0432045b7 100644 --- a/Lib/pickle.py +++ b/Lib/pickle.py @@ -619,7 +619,7 @@ def save_pers(self, pid): "persistent IDs in protocol 0 must be ASCII strings") def save_reduce(self, func, args, state=None, listitems=None, - dictitems=None, state_setter=None, obj=None): + dictitems=None, state_setter=None, *, obj=None): # This API is called by some subclasses if not isinstance(args, tuple): diff --git a/Lib/platform.py b/Lib/platform.py index c272c407c77768..9f5b317287530b 100755 --- a/Lib/platform.py +++ b/Lib/platform.py @@ -309,34 +309,52 @@ def _syscmd_ver(system='', release='', version='', version = _norm_version(version) return system, release, version -_WIN32_CLIENT_RELEASES = { - (5, 0): "2000", - (5, 1): "XP", - # Strictly, 5.2 client is XP 64-bit, but platform.py historically - # has always called it 2003 Server - (5, 2): "2003Server", - (5, None): "post2003", - - (6, 0): "Vista", - (6, 1): "7", - (6, 2): "8", - (6, 3): "8.1", - (6, None): "post8.1", - - (10, 0): "10", - (10, None): "post10", -} - -# Server release name lookup will default to client names if necessary -_WIN32_SERVER_RELEASES = { - (5, 2): "2003Server", - - (6, 0): "2008Server", - (6, 1): "2008ServerR2", - (6, 2): "2012Server", - (6, 3): "2012ServerR2", - (6, None): "post2012ServerR2", -} +try: + import _wmi +except ImportError: + def _wmi_query(*keys): + raise OSError("not supported") +else: + def _wmi_query(table, *keys): + table = { + "OS": "Win32_OperatingSystem", + "CPU": "Win32_Processor", + }[table] + data = _wmi.exec_query("SELECT {} FROM {}".format( + ",".join(keys), + table, + )).split("\0") + split_data = (i.partition("=") for i in data) + dict_data = {i[0]: i[2] for i in split_data} + return (dict_data[k] for k in keys) + + +_WIN32_CLIENT_RELEASES = [ + ((10, 1, 0), "post11"), + ((10, 0, 22000), "11"), + ((6, 4, 0), "10"), + ((6, 3, 0), "8.1"), + ((6, 2, 0), "8"), + ((6, 1, 0), "7"), + ((6, 0, 0), "Vista"), + ((5, 2, 3790), "XP64"), + ((5, 2, 0), "XPMedia"), + ((5, 1, 0), "XP"), + ((5, 0, 0), "2000"), +] + +_WIN32_SERVER_RELEASES = [ + ((10, 1, 0), "post2022Server"), + ((10, 0, 20348), "2022Server"), + ((10, 0, 17763), "2019Server"), + ((6, 4, 0), "2016Server"), + ((6, 3, 0), "2012ServerR2"), + ((6, 2, 0), "2012Server"), + ((6, 1, 0), "2008ServerR2"), + ((6, 0, 0), "2008Server"), + ((5, 2, 0), "2003Server"), + ((5, 0, 0), "2000Server"), +] def win32_is_iot(): return win32_edition() in ('IoTUAP', 'NanoServer', 'WindowsCoreHeadless', 'IoTEdgeOS') @@ -359,22 +377,40 @@ def win32_edition(): return None -def win32_ver(release='', version='', csd='', ptype=''): +def _win32_ver(version, csd, ptype): + # Try using WMI first, as this is the canonical source of data + try: + (version, product_type, ptype, spmajor, spminor) = _wmi_query( + 'OS', + 'Version', + 'ProductType', + 'BuildType', + 'ServicePackMajorVersion', + 'ServicePackMinorVersion', + ) + is_client = (int(product_type) == 1) + if spminor and spminor != '0': + csd = f'SP{spmajor}.{spminor}' + else: + csd = f'SP{spmajor}' + return version, csd, ptype, is_client + except OSError: + pass + + # Fall back to a combination of sys.getwindowsversion and "ver" try: from sys import getwindowsversion except ImportError: - return release, version, csd, ptype + return version, csd, ptype, True winver = getwindowsversion() + is_client = (getattr(winver, 'product_type', 1) == 1) try: - major, minor, build = map(int, _syscmd_ver()[2].split('.')) + version = _syscmd_ver()[2] + major, minor, build = map(int, version.split('.')) except ValueError: major, minor, build = winver.platform_version or winver[:3] - version = '{0}.{1}.{2}'.format(major, minor, build) - - release = (_WIN32_CLIENT_RELEASES.get((major, minor)) or - _WIN32_CLIENT_RELEASES.get((major, None)) or - release) + version = '{0}.{1}.{2}'.format(major, minor, build) # getwindowsversion() reflect the compatibility mode Python is # running under, and so the service pack value is only going to be @@ -386,12 +422,6 @@ def win32_ver(release='', version='', csd='', ptype=''): if csd[:13] == 'Service Pack ': csd = 'SP' + csd[13:] - # VER_NT_SERVER = 3 - if getattr(winver, 'product_type', None) == 3: - release = (_WIN32_SERVER_RELEASES.get((major, minor)) or - _WIN32_SERVER_RELEASES.get((major, None)) or - release) - try: try: import winreg @@ -407,6 +437,18 @@ def win32_ver(release='', version='', csd='', ptype=''): except OSError: pass + return version, csd, ptype, is_client + +def win32_ver(release='', version='', csd='', ptype=''): + is_client = False + + version, csd, ptype, is_client = _win32_ver(version, csd, ptype) + + if version: + intversion = tuple(map(int, version.split('.'))) + releases = _WIN32_CLIENT_RELEASES if is_client else _WIN32_SERVER_RELEASES + release = next((r for v, r in releases if v <= intversion), release) + return release, version, csd, ptype @@ -561,7 +603,7 @@ def _platform(*args): platform = platform.replace('unknown', '') # Fold '--'s and remove trailing '-' - while 1: + while True: cleaned = platform.replace('--', '-') if cleaned == platform: break @@ -725,6 +767,21 @@ def _get_machine_win32(): # http://www.geocities.com/rick_lively/MANUALS/ENV/MSWIN/PROCESSI.HTM # WOW64 processes mask the native architecture + try: + [arch, *_] = _wmi_query('CPU', 'Architecture') + except OSError: + pass + else: + try: + arch = ['x86', 'MIPS', 'Alpha', 'PowerPC', None, + 'ARM', 'ia64', None, None, + 'AMD64', None, None, 'ARM64', + ][int(arch)] + except (ValueError, IndexError): + pass + else: + if arch: + return arch return ( os.environ.get('PROCESSOR_ARCHITEW6432', '') or os.environ.get('PROCESSOR_ARCHITECTURE', '') @@ -738,7 +795,12 @@ def get(cls): return func() or '' def get_win32(): - return os.environ.get('PROCESSOR_IDENTIFIER', _get_machine_win32()) + try: + manufacturer, caption = _wmi_query('CPU', 'Manufacturer', 'Caption') + except OSError: + return os.environ.get('PROCESSOR_IDENTIFIER', _get_machine_win32()) + else: + return f'{caption}, {manufacturer}' def get_OpenVMS(): try: diff --git a/Lib/posixpath.py b/Lib/posixpath.py index a7b2f2d64824fa..5e1ebe3293d849 100644 --- a/Lib/posixpath.py +++ b/Lib/posixpath.py @@ -364,7 +364,7 @@ def normpath(path): initial_slashes = path.startswith(sep) # POSIX allows one or two initial slashes, but treats three or more # as single slash. - # (see http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_13) + # (see https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_13) if (initial_slashes and path.startswith(sep*2) and not path.startswith(sep*3)): initial_slashes = 2 diff --git a/Lib/pprint.py b/Lib/pprint.py index 575688d8eb6f4a..34ed12637e2288 100644 --- a/Lib/pprint.py +++ b/Lib/pprint.py @@ -637,19 +637,6 @@ def _recursion(object): % (type(object).__name__, id(object))) -def _perfcheck(object=None): - import time - if object is None: - object = [("string", (1, 2), [3, 4], {5: 6, 7: 8})] * 100000 - p = PrettyPrinter() - t1 = time.perf_counter() - p._safe_repr(object, {}, None, 0, True) - t2 = time.perf_counter() - p.pformat(object) - t3 = time.perf_counter() - print("_safe_repr:", t2 - t1) - print("pformat:", t3 - t2) - def _wrap_bytes_repr(object, width, allowance): current = b'' last = len(object) // 4 * 4 @@ -666,6 +653,3 @@ def _wrap_bytes_repr(object, width, allowance): current = candidate if current: yield repr(current) - -if __name__ == "__main__": - _perfcheck() diff --git a/Lib/pstats.py b/Lib/pstats.py index 8e0743f2e5f29d..80408313e8b27f 100644 --- a/Lib/pstats.py +++ b/Lib/pstats.py @@ -57,7 +57,7 @@ def __new__(cls, *values): @dataclass(unsafe_hash=True) class FunctionProfile: - ncalls: int + ncalls: str tottime: float percall_tottime: float cumtime: float diff --git a/Lib/pydoc.py b/Lib/pydoc.py index cec9ac89f1cc8d..a4dc910c8a8e89 100755 --- a/Lib/pydoc.py +++ b/Lib/pydoc.py @@ -70,7 +70,6 @@ class or function within a module or module in a package. If the import sysconfig import time import tokenize -import types import urllib.parse import warnings from collections import deque @@ -92,16 +91,13 @@ def pathdirs(): normdirs.append(normdir) return dirs -def _isclass(object): - return inspect.isclass(object) and not isinstance(object, types.GenericAlias) - def _findclass(func): cls = sys.modules.get(func.__module__) if cls is None: return None for name in func.__qualname__.split('.')[:-1]: cls = getattr(cls, name) - if not _isclass(cls): + if not inspect.isclass(cls): return None return cls @@ -109,7 +105,7 @@ def _finddoc(obj): if inspect.ismethod(obj): name = obj.__func__.__name__ self = obj.__self__ - if (_isclass(self) and + if (inspect.isclass(self) and getattr(getattr(self, name, None), '__func__') is obj.__func__): # classmethod cls = self @@ -123,7 +119,7 @@ def _finddoc(obj): elif inspect.isbuiltin(obj): name = obj.__name__ self = obj.__self__ - if (_isclass(self) and + if (inspect.isclass(self) and self.__qualname__ + '.' + name == obj.__qualname__): # classmethod cls = self @@ -210,7 +206,7 @@ def classname(object, modname): def isdata(object): """Check if an object is of a type that probably means it's data.""" - return not (inspect.ismodule(object) or _isclass(object) or + return not (inspect.ismodule(object) or inspect.isclass(object) or inspect.isroutine(object) or inspect.isframe(object) or inspect.istraceback(object) or inspect.iscode(object)) @@ -481,7 +477,7 @@ def document(self, object, name=None, *args): # by lacking a __name__ attribute) and an instance. try: if inspect.ismodule(object): return self.docmodule(*args) - if _isclass(object): return self.docclass(*args) + if inspect.isclass(object): return self.docclass(*args) if inspect.isroutine(object): return self.docroutine(*args) except AttributeError: pass @@ -783,7 +779,7 @@ def docmodule(self, object, name=None, mod=None, *ignored): modules = inspect.getmembers(object, inspect.ismodule) classes, cdict = [], {} - for key, value in inspect.getmembers(object, _isclass): + for key, value in inspect.getmembers(object, inspect.isclass): # if __all__ exists, believe it. Otherwise use old heuristic. if (all is not None or (inspect.getmodule(value) or object) is object): @@ -1175,8 +1171,7 @@ def bold(self, text): def indent(self, text, prefix=' '): """Indent text by prepending a given prefix to each line.""" if not text: return '' - lines = [prefix + line for line in text.split('\n')] - if lines: lines[-1] = lines[-1].rstrip() + lines = [(prefix + line).rstrip() for line in text.split('\n')] return '\n'.join(lines) def section(self, title, contents): @@ -1223,7 +1218,7 @@ def docmodule(self, object, name=None, mod=None): result = result + self.section('DESCRIPTION', desc) classes = [] - for key, value in inspect.getmembers(object, _isclass): + for key, value in inspect.getmembers(object, inspect.isclass): # if __all__ exists, believe it. Otherwise use old heuristic. if (all is not None or (inspect.getmodule(value) or object) is object): @@ -1707,7 +1702,7 @@ def describe(thing): return 'member descriptor %s.%s.%s' % ( thing.__objclass__.__module__, thing.__objclass__.__name__, thing.__name__) - if _isclass(thing): + if inspect.isclass(thing): return 'class ' + thing.__name__ if inspect.isfunction(thing): return 'function ' + thing.__name__ @@ -1768,7 +1763,7 @@ def render_doc(thing, title='Python Library Documentation: %s', forceload=0, desc += ' in module ' + module.__name__ if not (inspect.ismodule(object) or - _isclass(object) or + inspect.isclass(object) or inspect.isroutine(object) or inspect.isdatadescriptor(object) or _getdoc(object)): diff --git a/Lib/random.py b/Lib/random.py index a2dfcb574bd5eb..c70294ee0cbf08 100644 --- a/Lib/random.py +++ b/Lib/random.py @@ -24,6 +24,7 @@ negative exponential gamma beta + binomial pareto Weibull @@ -49,8 +50,9 @@ from math import log as _log, exp as _exp, pi as _pi, e as _e, ceil as _ceil from math import sqrt as _sqrt, acos as _acos, cos as _cos, sin as _sin from math import tau as TWOPI, floor as _floor, isfinite as _isfinite +from math import lgamma as _lgamma, fabs as _fabs, log2 as _log2 from os import urandom as _urandom -from _collections_abc import Set as _Set, Sequence as _Sequence +from _collections_abc import Sequence as _Sequence from operator import index as _index from itertools import accumulate as _accumulate, repeat as _repeat from bisect import bisect as _bisect @@ -68,6 +70,7 @@ "Random", "SystemRandom", "betavariate", + "binomialvariate", "choice", "choices", "expovariate", @@ -236,7 +239,7 @@ def _randbelow_with_getrandbits(self, n): "Return a random int in the range [0,n). Defined for n > 0." getrandbits = self.getrandbits - k = n.bit_length() # don't use (n-1) here because n can be 1 + k = n.bit_length() r = getrandbits(k) # 0 <= r < 2**k while r >= n: r = getrandbits(k) @@ -725,6 +728,91 @@ def betavariate(self, alpha, beta): return y / (y + self.gammavariate(beta, 1.0)) return 0.0 + + def binomialvariate(self, n=1, p=0.5): + """Binomial random variable. + + Gives the number of successes for *n* independent trials + with the probability of success in each trial being *p*: + + sum(random() < p for i in range(n)) + + Returns an integer in the range: 0 <= X <= n + + """ + # Error check inputs and handle edge cases + if n < 0: + raise ValueError("n must be non-negative") + if p <= 0.0 or p >= 1.0: + if p == 0.0: + return 0 + if p == 1.0: + return n + raise ValueError("p must be in the range 0.0 <= p <= 1.0") + + random = self.random + + # Fast path for a common case + if n == 1: + return _index(random() < p) + + # Exploit symmetry to establish: p <= 0.5 + if p > 0.5: + return n - self.binomialvariate(n, 1.0 - p) + + if n * p < 10.0: + # BG: Geometric method by Devroye with running time of O(np). + # https://dl.acm.org/doi/pdf/10.1145/42372.42381 + x = y = 0 + c = _log2(1.0 - p) + if not c: + return x + while True: + y += _floor(_log2(random()) / c) + 1 + if y > n: + return x + x += 1 + + # BTRS: Transformed rejection with squeeze method by Wolfgang Hörmann + # https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.47.8407&rep=rep1&type=pdf + assert n*p >= 10.0 and p <= 0.5 + setup_complete = False + + spq = _sqrt(n * p * (1.0 - p)) # Standard deviation of the distribution + b = 1.15 + 2.53 * spq + a = -0.0873 + 0.0248 * b + 0.01 * p + c = n * p + 0.5 + vr = 0.92 - 4.2 / b + + while True: + + u = random() + u -= 0.5 + us = 0.5 - _fabs(u) + k = _floor((2.0 * a / us + b) * u + c) + if k < 0 or k > n: + continue + + # The early-out "squeeze" test substantially reduces + # the number of acceptance condition evaluations. + v = random() + if us >= 0.07 and v <= vr: + return k + + # Acceptance-rejection test. + # Note, the original paper errorneously omits the call to log(v) + # when comparing to the log of the rescaled binomial distribution. + if not setup_complete: + alpha = (2.83 + 5.1 / b) * spq + lpq = _log(p / (1.0 - p)) + m = _floor((n + 1) * p) # Mode of the distribution + h = _lgamma(m + 1) + _lgamma(n - m + 1) + setup_complete = True # Only needs to be done once + v *= alpha / (a / (us * us) + b) + if _log(v) <= h - _lgamma(k + 1) - _lgamma(n - k + 1) + (k - m) * lpq: + return k + + def paretovariate(self, alpha): """Pareto distribution. alpha is the shape parameter.""" # Jain, pg. 495 @@ -810,6 +898,7 @@ def _notimplemented(self, *args, **kwds): gammavariate = _inst.gammavariate gauss = _inst.gauss betavariate = _inst.betavariate +binomialvariate = _inst.binomialvariate paretovariate = _inst.paretovariate weibullvariate = _inst.weibullvariate getstate = _inst.getstate @@ -834,15 +923,17 @@ def _test_generator(n, func, args): low = min(data) high = max(data) - print(f'{t1 - t0:.3f} sec, {n} times {func.__name__}') + print(f'{t1 - t0:.3f} sec, {n} times {func.__name__}{args!r}') print('avg %g, stddev %g, min %g, max %g\n' % (xbar, sigma, low, high)) -def _test(N=2000): +def _test(N=10_000): _test_generator(N, random, ()) _test_generator(N, normalvariate, (0.0, 1.0)) _test_generator(N, lognormvariate, (0.0, 1.0)) _test_generator(N, vonmisesvariate, (0.0, 1.0)) + _test_generator(N, binomialvariate, (15, 0.60)) + _test_generator(N, binomialvariate, (100, 0.75)) _test_generator(N, gammavariate, (0.01, 1.0)) _test_generator(N, gammavariate, (0.1, 1.0)) _test_generator(N, gammavariate, (0.1, 2.0)) diff --git a/Lib/re/_compiler.py b/Lib/re/_compiler.py index 4b5322338cbd5f..d8e0d2fdefdcca 100644 --- a/Lib/re/_compiler.py +++ b/Lib/re/_compiler.py @@ -28,21 +28,14 @@ POSSESSIVE_REPEAT: (POSSESSIVE_REPEAT, SUCCESS, POSSESSIVE_REPEAT_ONE), } -class _CompileData: - __slots__ = ('code', 'repeat_count') - def __init__(self): - self.code = [] - self.repeat_count = 0 - def _combine_flags(flags, add_flags, del_flags, TYPE_FLAGS=_parser.TYPE_FLAGS): if add_flags & TYPE_FLAGS: flags &= ~TYPE_FLAGS return (flags | add_flags) & ~del_flags -def _compile(data, pattern, flags): +def _compile(code, pattern, flags): # internal: compile a (sub)pattern - code = data.code emit = code.append _len = len LITERAL_CODES = _LITERAL_CODES @@ -115,7 +108,7 @@ def _compile(data, pattern, flags): skip = _len(code); emit(0) emit(av[0]) emit(av[1]) - _compile(data, av[2], flags) + _compile(code, av[2], flags) emit(SUCCESS) code[skip] = _len(code) - skip else: @@ -123,11 +116,7 @@ def _compile(data, pattern, flags): skip = _len(code); emit(0) emit(av[0]) emit(av[1]) - # now op is in (MIN_REPEAT, MAX_REPEAT, POSSESSIVE_REPEAT) - if op != POSSESSIVE_REPEAT: - emit(data.repeat_count) - data.repeat_count += 1 - _compile(data, av[2], flags) + _compile(code, av[2], flags) code[skip] = _len(code) - skip emit(REPEATING_CODES[op][1]) elif op is SUBPATTERN: @@ -136,7 +125,7 @@ def _compile(data, pattern, flags): emit(MARK) emit((group-1)*2) # _compile_info(code, p, _combine_flags(flags, add_flags, del_flags)) - _compile(data, p, _combine_flags(flags, add_flags, del_flags)) + _compile(code, p, _combine_flags(flags, add_flags, del_flags)) if group: emit(MARK) emit((group-1)*2+1) @@ -148,7 +137,7 @@ def _compile(data, pattern, flags): # pop their stack if they reach it emit(ATOMIC_GROUP) skip = _len(code); emit(0) - _compile(data, av, flags) + _compile(code, av, flags) emit(SUCCESS) code[skip] = _len(code) - skip elif op in SUCCESS_CODES: @@ -163,7 +152,7 @@ def _compile(data, pattern, flags): if lo != hi: raise error("look-behind requires fixed-width pattern") emit(lo) # look behind - _compile(data, av[1], flags) + _compile(code, av[1], flags) emit(SUCCESS) code[skip] = _len(code) - skip elif op is AT: @@ -182,7 +171,7 @@ def _compile(data, pattern, flags): for av in av[1]: skip = _len(code); emit(0) # _compile_info(code, av, flags) - _compile(data, av, flags) + _compile(code, av, flags) emit(JUMP) tailappend(_len(code)); emit(0) code[skip] = _len(code) - skip @@ -210,12 +199,12 @@ def _compile(data, pattern, flags): emit(op) emit(av[0]-1) skipyes = _len(code); emit(0) - _compile(data, av[1], flags) + _compile(code, av[1], flags) if av[2]: emit(JUMP) skipno = _len(code); emit(0) code[skipyes] = _len(code) - skipyes + 1 - _compile(data, av[2], flags) + _compile(code, av[2], flags) code[skipno] = _len(code) - skipno else: code[skipyes] = _len(code) - skipyes + 1 @@ -582,17 +571,17 @@ def isstring(obj): def _code(p, flags): flags = p.state.flags | flags - data = _CompileData() + code = [] # compile info block - _compile_info(data.code, p, flags) + _compile_info(code, p, flags) # compile the pattern - _compile(data, p.data, flags) + _compile(code, p.data, flags) - data.code.append(SUCCESS) + code.append(SUCCESS) - return data + return code def _hex_code(code): return '[%s]' % ', '.join('%#0*x' % (_sre.CODESIZE*2+2, x) for x in code) @@ -693,7 +682,7 @@ def print_2(*args): else: print_(FAILURE) i += 1 - elif op in (REPEAT_ONE, MIN_REPEAT_ONE, + elif op in (REPEAT, REPEAT_ONE, MIN_REPEAT_ONE, POSSESSIVE_REPEAT, POSSESSIVE_REPEAT_ONE): skip, min, max = code[i: i+3] if max == MAXREPEAT: @@ -701,13 +690,6 @@ def print_2(*args): print_(op, skip, min, max, to=i+skip) dis_(i+3, i+skip) i += skip - elif op is REPEAT: - skip, min, max, repeat_index = code[i: i+4] - if max == MAXREPEAT: - max = 'MAXREPEAT' - print_(op, skip, min, max, repeat_index, to=i+skip) - dis_(i+4, i+skip) - i += skip elif op is GROUPREF_EXISTS: arg, skip = code[i: i+2] print_(op, arg, skip, to=i+skip) @@ -762,11 +744,11 @@ def compile(p, flags=0): else: pattern = None - data = _code(p, flags) + code = _code(p, flags) if flags & SRE_FLAG_DEBUG: print() - dis(data.code) + dis(code) # map in either direction groupindex = p.state.groupdict @@ -775,6 +757,7 @@ def compile(p, flags=0): indexgroup[i] = k return _sre.compile( - pattern, flags | p.state.flags, data.code, - p.state.groups-1, groupindex, tuple(indexgroup), - data.repeat_count) + pattern, flags | p.state.flags, code, + p.state.groups-1, + groupindex, tuple(indexgroup) + ) diff --git a/Lib/re/_constants.py b/Lib/re/_constants.py index 1cc85c631f22b4..10ee14bfab46ee 100644 --- a/Lib/re/_constants.py +++ b/Lib/re/_constants.py @@ -13,7 +13,7 @@ # update when constants are added or removed -MAGIC = 20220423 +MAGIC = 20220615 from _sre import MAXREPEAT, MAXGROUPS diff --git a/Lib/reprlib.py b/Lib/reprlib.py index f3518df105e418..a92b3e3dbb613a 100644 --- a/Lib/reprlib.py +++ b/Lib/reprlib.py @@ -35,19 +35,24 @@ def wrapper(self): class Repr: - def __init__(self): - self.fillvalue = '...' - self.maxlevel = 6 - self.maxtuple = 6 - self.maxlist = 6 - self.maxarray = 5 - self.maxdict = 4 - self.maxset = 6 - self.maxfrozenset = 6 - self.maxdeque = 6 - self.maxstring = 30 - self.maxlong = 40 - self.maxother = 30 + def __init__( + self, *, maxlevel=6, maxtuple=6, maxlist=6, maxarray=5, maxdict=4, + maxset=6, maxfrozenset=6, maxdeque=6, maxstring=30, maxlong=40, + maxother=30, fillvalue='...', indent=None, + ): + self.maxlevel = maxlevel + self.maxtuple = maxtuple + self.maxlist = maxlist + self.maxarray = maxarray + self.maxdict = maxdict + self.maxset = maxset + self.maxfrozenset = maxfrozenset + self.maxdeque = maxdeque + self.maxstring = maxstring + self.maxlong = maxlong + self.maxother = maxother + self.fillvalue = fillvalue + self.indent = indent def repr(self, x): return self.repr1(x, self.maxlevel) @@ -62,6 +67,26 @@ def repr1(self, x, level): else: return self.repr_instance(x, level) + def _join(self, pieces, level): + if self.indent is None: + return ', '.join(pieces) + if not pieces: + return '' + indent = self.indent + if isinstance(indent, int): + if indent < 0: + raise ValueError( + f'Repr.indent cannot be negative int (was {indent!r})' + ) + indent *= ' ' + try: + sep = ',\n' + (self.maxlevel - level + 1) * indent + except TypeError as error: + raise TypeError( + f'Repr.indent must be a str, int or None, not {type(indent)}' + ) from error + return sep.join(('', *pieces, ''))[1:-len(indent) or None] + def _repr_iterable(self, x, level, left, right, maxiter, trail=''): n = len(x) if level <= 0 and n: @@ -72,8 +97,8 @@ def _repr_iterable(self, x, level, left, right, maxiter, trail=''): pieces = [repr1(elem, newlevel) for elem in islice(x, maxiter)] if n > maxiter: pieces.append(self.fillvalue) - s = ', '.join(pieces) - if n == 1 and trail: + s = self._join(pieces, level) + if n == 1 and trail and self.indent is None: right = trail + right return '%s%s%s' % (left, s, right) @@ -120,7 +145,7 @@ def repr_dict(self, x, level): pieces.append('%s: %s' % (keyrepr, valrepr)) if n > self.maxdict: pieces.append(self.fillvalue) - s = ', '.join(pieces) + s = self._join(pieces, level) return '{%s}' % (s,) def repr_str(self, x, level): diff --git a/Lib/shlex.py b/Lib/shlex.py index 4801a6c1d47bd9..a91c9b022627b1 100644 --- a/Lib/shlex.py +++ b/Lib/shlex.py @@ -305,9 +305,7 @@ def __next__(self): def split(s, comments=False, posix=True): """Split the string *s* using shell-like syntax.""" if s is None: - import warnings - warnings.warn("Passing None for 's' to shlex.split() is deprecated.", - DeprecationWarning, stacklevel=2) + raise ValueError("s argument must not be None") lex = shlex(s, posix=posix) lex.whitespace_split = True if not comments: diff --git a/Lib/shutil.py b/Lib/shutil.py index 2cbd808abf2ffb..b49437cd1f3e87 100644 --- a/Lib/shutil.py +++ b/Lib/shutil.py @@ -897,7 +897,7 @@ def _get_uid(name): return None def _make_tarball(base_name, base_dir, compress="gzip", verbose=0, dry_run=0, - owner=None, group=None, logger=None): + owner=None, group=None, logger=None, root_dir=None): """Create a (possibly compressed) tar file from all the files under 'base_dir'. @@ -954,14 +954,20 @@ def _set_uid_gid(tarinfo): if not dry_run: tar = tarfile.open(archive_name, 'w|%s' % tar_compression) + arcname = base_dir + if root_dir is not None: + base_dir = os.path.join(root_dir, base_dir) try: - tar.add(base_dir, filter=_set_uid_gid) + tar.add(base_dir, arcname, filter=_set_uid_gid) finally: tar.close() + if root_dir is not None: + archive_name = os.path.abspath(archive_name) return archive_name -def _make_zipfile(base_name, base_dir, verbose=0, dry_run=0, logger=None): +def _make_zipfile(base_name, base_dir, verbose=0, dry_run=0, + logger=None, owner=None, group=None, root_dir=None): """Create a zip file from all the files under 'base_dir'. The output zip file will be named 'base_name' + ".zip". Returns the @@ -985,42 +991,60 @@ def _make_zipfile(base_name, base_dir, verbose=0, dry_run=0, logger=None): if not dry_run: with zipfile.ZipFile(zip_filename, "w", compression=zipfile.ZIP_DEFLATED) as zf: - path = os.path.normpath(base_dir) - if path != os.curdir: - zf.write(path, path) + arcname = os.path.normpath(base_dir) + if root_dir is not None: + base_dir = os.path.join(root_dir, base_dir) + base_dir = os.path.normpath(base_dir) + if arcname != os.curdir: + zf.write(base_dir, arcname) if logger is not None: - logger.info("adding '%s'", path) + logger.info("adding '%s'", base_dir) for dirpath, dirnames, filenames in os.walk(base_dir): + arcdirpath = dirpath + if root_dir is not None: + arcdirpath = os.path.relpath(arcdirpath, root_dir) + arcdirpath = os.path.normpath(arcdirpath) for name in sorted(dirnames): - path = os.path.normpath(os.path.join(dirpath, name)) - zf.write(path, path) + path = os.path.join(dirpath, name) + arcname = os.path.join(arcdirpath, name) + zf.write(path, arcname) if logger is not None: logger.info("adding '%s'", path) for name in filenames: - path = os.path.normpath(os.path.join(dirpath, name)) + path = os.path.join(dirpath, name) + path = os.path.normpath(path) if os.path.isfile(path): - zf.write(path, path) + arcname = os.path.join(arcdirpath, name) + zf.write(path, arcname) if logger is not None: logger.info("adding '%s'", path) + if root_dir is not None: + zip_filename = os.path.abspath(zip_filename) return zip_filename +# Maps the name of the archive format to a tuple containing: +# * the archiving function +# * extra keyword arguments +# * description +# * does it support the root_dir argument? _ARCHIVE_FORMATS = { - 'tar': (_make_tarball, [('compress', None)], "uncompressed tar file"), + 'tar': (_make_tarball, [('compress', None)], + "uncompressed tar file", True), } if _ZLIB_SUPPORTED: _ARCHIVE_FORMATS['gztar'] = (_make_tarball, [('compress', 'gzip')], - "gzip'ed tar-file") - _ARCHIVE_FORMATS['zip'] = (_make_zipfile, [], "ZIP file") + "gzip'ed tar-file", True) + _ARCHIVE_FORMATS['zip'] = (_make_zipfile, [], "ZIP file", True) if _BZ2_SUPPORTED: _ARCHIVE_FORMATS['bztar'] = (_make_tarball, [('compress', 'bzip2')], - "bzip2'ed tar-file") + "bzip2'ed tar-file", True) if _LZMA_SUPPORTED: _ARCHIVE_FORMATS['xztar'] = (_make_tarball, [('compress', 'xz')], - "xz'ed tar-file") + "xz'ed tar-file", True) def get_archive_formats(): """Returns a list of supported formats for archiving and unarchiving. @@ -1051,7 +1075,7 @@ def register_archive_format(name, function, extra_args=None, description=''): if not isinstance(element, (tuple, list)) or len(element) !=2: raise TypeError('extra_args elements are : (arg_name, value)') - _ARCHIVE_FORMATS[name] = (function, extra_args, description) + _ARCHIVE_FORMATS[name] = (function, extra_args, description, False) def unregister_archive_format(name): del _ARCHIVE_FORMATS[name] @@ -1075,36 +1099,40 @@ def make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0, uses the current owner and group. """ sys.audit("shutil.make_archive", base_name, format, root_dir, base_dir) - save_cwd = os.getcwd() - if root_dir is not None: - if logger is not None: - logger.debug("changing into '%s'", root_dir) - base_name = os.path.abspath(base_name) - if not dry_run: - os.chdir(root_dir) - - if base_dir is None: - base_dir = os.curdir - - kwargs = {'dry_run': dry_run, 'logger': logger} - try: format_info = _ARCHIVE_FORMATS[format] except KeyError: raise ValueError("unknown archive format '%s'" % format) from None + kwargs = {'dry_run': dry_run, 'logger': logger, + 'owner': owner, 'group': group} + func = format_info[0] for arg, val in format_info[1]: kwargs[arg] = val - if format != 'zip': - kwargs['owner'] = owner - kwargs['group'] = group + if base_dir is None: + base_dir = os.curdir + + support_root_dir = format_info[3] + save_cwd = None + if root_dir is not None: + if support_root_dir: + # Support path-like base_name here for backwards-compatibility. + base_name = os.fspath(base_name) + kwargs['root_dir'] = root_dir + else: + save_cwd = os.getcwd() + if logger is not None: + logger.debug("changing into '%s'", root_dir) + base_name = os.path.abspath(base_name) + if not dry_run: + os.chdir(root_dir) try: filename = func(base_name, base_dir, **kwargs) finally: - if root_dir is not None: + if save_cwd is not None: if logger is not None: logger.debug("changing back to '%s'", save_cwd) os.chdir(save_cwd) @@ -1217,6 +1245,11 @@ def _unpack_tarfile(filename, extract_dir): finally: tarobj.close() +# Maps the name of the unpack format to a tuple containing: +# * extensions +# * the unpacking function +# * extra keyword arguments +# * description _UNPACK_FORMATS = { 'tar': (['.tar'], _unpack_tarfile, [], "uncompressed tar file"), 'zip': (['.zip'], _unpack_zipfile, [], "ZIP file"), diff --git a/Lib/site.py b/Lib/site.py index b11cd48e69e9a8..69670d9d7f2230 100644 --- a/Lib/site.py +++ b/Lib/site.py @@ -266,8 +266,8 @@ def _getuserbase(): if env_base: return env_base - # VxWorks has no home directories - if sys.platform == "vxworks": + # Emscripten, VxWorks, and WASI have no home directories + if sys.platform in {"emscripten", "vxworks", "wasi"}: return None def joinuser(*args): diff --git a/Lib/socket.py b/Lib/socket.py old mode 100755 new mode 100644 index bfca763f72c826..1c8cef6ce65810 --- a/Lib/socket.py +++ b/Lib/socket.py @@ -123,7 +123,7 @@ def _intenum_converter(value, enum_klass): errorTab[10014] = "A fault occurred on the network??" # WSAEFAULT errorTab[10022] = "An invalid operation was attempted." errorTab[10024] = "Too many open files." - errorTab[10035] = "The socket operation would block" + errorTab[10035] = "The socket operation would block." errorTab[10036] = "A blocking operation is already in progress." errorTab[10037] = "Operation already in progress." errorTab[10038] = "Socket operation on nonsocket." @@ -255,17 +255,18 @@ def __repr__(self): self.type, self.proto) if not closed: + # getsockname and getpeername may not be available on WASI. try: laddr = self.getsockname() if laddr: s += ", laddr=%s" % str(laddr) - except error: + except (error, AttributeError): pass try: raddr = self.getpeername() if raddr: s += ", raddr=%s" % str(raddr) - except error: + except (error, AttributeError): pass s += '>' return s diff --git a/Lib/sqlite3/__init__.py b/Lib/sqlite3/__init__.py index 34a9c047dd607c..927267cf0b92ff 100644 --- a/Lib/sqlite3/__init__.py +++ b/Lib/sqlite3/__init__.py @@ -55,3 +55,16 @@ """ from sqlite3.dbapi2 import * +from sqlite3.dbapi2 import (_deprecated_names, + _deprecated_version_info, + _deprecated_version) + + +def __getattr__(name): + if name in _deprecated_names: + from warnings import warn + + warn(f"{name} is deprecated and will be removed in Python 3.14", + DeprecationWarning, stacklevel=2) + return globals()[f"_deprecated_{name}"] + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") diff --git a/Lib/sqlite3/__main__.py b/Lib/sqlite3/__main__.py new file mode 100644 index 00000000000000..f8a5cca24e56af --- /dev/null +++ b/Lib/sqlite3/__main__.py @@ -0,0 +1,120 @@ +"""A simple SQLite CLI for the sqlite3 module. + +Apart from using 'argparse' for the command-line interface, +this module implements the REPL as a thin wrapper around +the InteractiveConsole class from the 'code' stdlib module. +""" +import sqlite3 +import sys + +from argparse import ArgumentParser +from code import InteractiveConsole +from textwrap import dedent + + +def execute(c, sql, suppress_errors=True): + """Helper that wraps execution of SQL code. + + This is used both by the REPL and by direct execution from the CLI. + + 'c' may be a cursor or a connection. + 'sql' is the SQL string to execute. + """ + + try: + for row in c.execute(sql): + print(row) + except sqlite3.Error as e: + tp = type(e).__name__ + try: + print(f"{tp} ({e.sqlite_errorname}): {e}", file=sys.stderr) + except AttributeError: + print(f"{tp}: {e}", file=sys.stderr) + if not suppress_errors: + sys.exit(1) + + +class SqliteInteractiveConsole(InteractiveConsole): + """A simple SQLite REPL.""" + + def __init__(self, connection): + super().__init__() + self._con = connection + self._cur = connection.cursor() + + def runsource(self, source, filename="<input>", symbol="single"): + """Override runsource, the core of the InteractiveConsole REPL. + + Return True if more input is needed; buffering is done automatically. + Return False is input is a complete statement ready for execution. + """ + match source: + case ".version": + print(f"{sqlite3.sqlite_version}") + case ".help": + print("Enter SQL code and press enter.") + case ".quit": + sys.exit(0) + case _: + if not sqlite3.complete_statement(source): + return True + execute(self._cur, source) + return False + + +def main(): + parser = ArgumentParser( + description="Python sqlite3 CLI", + prog="python -m sqlite3", + ) + parser.add_argument( + "filename", type=str, default=":memory:", nargs="?", + help=( + "SQLite database to open (defaults to ':memory:'). " + "A new database is created if the file does not previously exist." + ), + ) + parser.add_argument( + "sql", type=str, nargs="?", + help=( + "An SQL query to execute. " + "Any returned rows are printed to stdout." + ), + ) + parser.add_argument( + "-v", "--version", action="version", + version=f"SQLite version {sqlite3.sqlite_version}", + help="Print underlying SQLite library version", + ) + args = parser.parse_args() + + if args.filename == ":memory:": + db_name = "a transient in-memory database" + else: + db_name = repr(args.filename) + + # Prepare REPL banner and prompts. + banner = dedent(f""" + sqlite3 shell, running on SQLite version {sqlite3.sqlite_version} + Connected to {db_name} + + Each command will be run using execute() on the cursor. + Type ".help" for more information; type ".quit" or CTRL-D to quit. + """).strip() + sys.ps1 = "sqlite> " + sys.ps2 = " ... " + + con = sqlite3.connect(args.filename, isolation_level=None) + try: + if args.sql: + # SQL statement provided on the command-line; execute it directly. + execute(con, args.sql, suppress_errors=False) + else: + # No SQL provided; start the REPL. + console = SqliteInteractiveConsole(con) + console.interact(banner, exitmsg="") + finally: + con.close() + + +main() diff --git a/Lib/sqlite3/dbapi2.py b/Lib/sqlite3/dbapi2.py index 36ce769d5c6b3e..56fc0461e6c922 100644 --- a/Lib/sqlite3/dbapi2.py +++ b/Lib/sqlite3/dbapi2.py @@ -25,6 +25,9 @@ import collections.abc from _sqlite3 import * +from _sqlite3 import _deprecated_version + +_deprecated_names = frozenset({"version", "version_info"}) paramstyle = "qmark" @@ -45,23 +48,32 @@ def TimeFromTicks(ticks): def TimestampFromTicks(ticks): return Timestamp(*time.localtime(ticks)[:6]) -version_info = tuple([int(x) for x in version.split(".")]) +_deprecated_version_info = tuple(map(int, _deprecated_version.split("."))) sqlite_version_info = tuple([int(x) for x in sqlite_version.split(".")]) Binary = memoryview collections.abc.Sequence.register(Row) def register_adapters_and_converters(): + from warnings import warn + + msg = ("The default {what} is deprecated as of Python 3.12; " + "see the sqlite3 documentation for suggested replacement recipes") + def adapt_date(val): + warn(msg.format(what="date adapter"), DeprecationWarning, stacklevel=2) return val.isoformat() def adapt_datetime(val): + warn(msg.format(what="datetime adapter"), DeprecationWarning, stacklevel=2) return val.isoformat(" ") def convert_date(val): + warn(msg.format(what="date converter"), DeprecationWarning, stacklevel=2) return datetime.date(*map(int, val.split(b"-"))) def convert_timestamp(val): + warn(msg.format(what="timestamp converter"), DeprecationWarning, stacklevel=2) datepart, timepart = val.split(b" ") year, month, day = map(int, datepart.split(b"-")) timepart_full = timepart.split(b".") @@ -85,3 +97,12 @@ def convert_timestamp(val): # Clean up namespace del(register_adapters_and_converters) + +def __getattr__(name): + if name in _deprecated_names: + from warnings import warn + + warn(f"{name} is deprecated and will be removed in Python 3.14", + DeprecationWarning, stacklevel=2) + return globals()[f"_deprecated_{name}"] + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") diff --git a/Lib/sqlite3/dump.py b/Lib/sqlite3/dump.py index de9c368be3014e..07b9da10b920f9 100644 --- a/Lib/sqlite3/dump.py +++ b/Lib/sqlite3/dump.py @@ -28,9 +28,16 @@ def _iterdump(connection): ORDER BY "name" """ schema_res = cu.execute(q) + sqlite_sequence = [] for table_name, type, sql in schema_res.fetchall(): if table_name == 'sqlite_sequence': - yield('DELETE FROM "sqlite_sequence";') + rows = cu.execute('SELECT * FROM "sqlite_sequence";').fetchall() + sqlite_sequence = ['DELETE FROM "sqlite_sequence"'] + sqlite_sequence += [ + f'INSERT INTO "sqlite_sequence" VALUES(\'{row[0]}\',{row[1]})' + for row in rows + ] + continue elif table_name == 'sqlite_stat1': yield('ANALYZE "sqlite_master";') elif table_name.startswith('sqlite_'): @@ -67,4 +74,9 @@ def _iterdump(connection): for name, type, sql in schema_res.fetchall(): yield('{0};'.format(sql)) + # gh-79009: Yield statements concerning the sqlite_sequence table at the + # end of the transaction. + for row in sqlite_sequence: + yield('{0};'.format(row)) + yield('COMMIT;') diff --git a/Lib/ssl.py b/Lib/ssl.py index ebac1d60d52de7..1d5873726441e4 100644 --- a/Lib/ssl.py +++ b/Lib/ssl.py @@ -106,7 +106,7 @@ SSLSyscallError, SSLEOFError, SSLCertVerificationError ) from _ssl import txt2obj as _txt2obj, nid2obj as _nid2obj -from _ssl import RAND_status, RAND_add, RAND_bytes, RAND_pseudo_bytes +from _ssl import RAND_status, RAND_add, RAND_bytes try: from _ssl import RAND_egd except ImportError: @@ -373,68 +373,6 @@ def _ipaddress_match(cert_ipaddress, host_ip): return ip == host_ip -def match_hostname(cert, hostname): - """Verify that *cert* (in decoded format as returned by - SSLSocket.getpeercert()) matches the *hostname*. RFC 2818 and RFC 6125 - rules are followed. - - The function matches IP addresses rather than dNSNames if hostname is a - valid ipaddress string. IPv4 addresses are supported on all platforms. - IPv6 addresses are supported on platforms with IPv6 support (AF_INET6 - and inet_pton). - - CertificateError is raised on failure. On success, the function - returns nothing. - """ - warnings.warn( - "ssl.match_hostname() is deprecated", - category=DeprecationWarning, - stacklevel=2 - ) - if not cert: - raise ValueError("empty or no certificate, match_hostname needs a " - "SSL socket or SSL context with either " - "CERT_OPTIONAL or CERT_REQUIRED") - try: - host_ip = _inet_paton(hostname) - except ValueError: - # Not an IP address (common case) - host_ip = None - dnsnames = [] - san = cert.get('subjectAltName', ()) - for key, value in san: - if key == 'DNS': - if host_ip is None and _dnsname_match(value, hostname): - return - dnsnames.append(value) - elif key == 'IP Address': - if host_ip is not None and _ipaddress_match(value, host_ip): - return - dnsnames.append(value) - if not dnsnames: - # The subject is only checked when there is no dNSName entry - # in subjectAltName - for sub in cert.get('subject', ()): - for key, value in sub: - # XXX according to RFC 2818, the most specific Common Name - # must be used. - if key == 'commonName': - if _dnsname_match(value, hostname): - return - dnsnames.append(value) - if len(dnsnames) > 1: - raise CertificateError("hostname %r " - "doesn't match either of %s" - % (hostname, ', '.join(map(repr, dnsnames)))) - elif len(dnsnames) == 1: - raise CertificateError("hostname %r " - "doesn't match %r" - % (hostname, dnsnames[0])) - else: - raise CertificateError("no appropriate commonName or " - "subjectAltName fields were found") - - DefaultVerifyPaths = namedtuple("DefaultVerifyPaths", "cafile capath openssl_cafile_env openssl_cafile openssl_capath_env " "openssl_capath") @@ -1419,36 +1357,6 @@ def version(self): SSLContext.sslobject_class = SSLObject -def wrap_socket(sock, keyfile=None, certfile=None, - server_side=False, cert_reqs=CERT_NONE, - ssl_version=PROTOCOL_TLS, ca_certs=None, - do_handshake_on_connect=True, - suppress_ragged_eofs=True, - ciphers=None): - warnings.warn( - "ssl.wrap_socket() is deprecated, use SSLContext.wrap_socket()", - category=DeprecationWarning, - stacklevel=2 - ) - if server_side and not certfile: - raise ValueError("certfile must be specified for server-side " - "operations") - if keyfile and not certfile: - raise ValueError("certfile must be specified") - context = SSLContext(ssl_version) - context.verify_mode = cert_reqs - if ca_certs: - context.load_verify_locations(ca_certs) - if certfile: - context.load_cert_chain(certfile, keyfile) - if ciphers: - context.set_ciphers(ciphers) - return context.wrap_socket( - sock=sock, server_side=server_side, - do_handshake_on_connect=do_handshake_on_connect, - suppress_ragged_eofs=suppress_ragged_eofs - ) - # some utility functions def cert_time_to_seconds(cert_time): diff --git a/Lib/statistics.py b/Lib/statistics.py index 2d66b0522f19d5..b4adabd3f05ae8 100644 --- a/Lib/statistics.py +++ b/Lib/statistics.py @@ -134,11 +134,11 @@ from fractions import Fraction from decimal import Decimal -from itertools import groupby, repeat +from itertools import count, groupby, repeat from bisect import bisect_left, bisect_right from math import hypot, sqrt, fabs, exp, erf, tau, log, fsum from functools import reduce -from operator import mul +from operator import mul, itemgetter from collections import Counter, namedtuple, defaultdict _SQRT2 = sqrt(2.0) @@ -298,7 +298,7 @@ def _exact_ratio(x): # The integer ratios for binary floats can have numerators or # denominators with over 300 decimal digits. The problem is more - # acute with decimal floats where the the default decimal context + # acute with decimal floats where the default decimal context # supports a huge range of exponents from Emin=-999999 to # Emax=999999. When expanded with as_integer_ratio(), numbers like # Decimal('3.14E+5000') and Decimal('3.14E-5000') have large @@ -356,6 +356,60 @@ def _fail_neg(values, errmsg='negative value'): yield x +def _rank(data, /, *, key=None, reverse=False, ties='average', start=1) -> list[float]: + """Rank order a dataset. The lowest value has rank 1. + + Ties are averaged so that equal values receive the same rank: + + >>> data = [31, 56, 31, 25, 75, 18] + >>> _rank(data) + [3.5, 5.0, 3.5, 2.0, 6.0, 1.0] + + The operation is idempotent: + + >>> _rank([3.5, 5.0, 3.5, 2.0, 6.0, 1.0]) + [3.5, 5.0, 3.5, 2.0, 6.0, 1.0] + + It is possible to rank the data in reverse order so that the + highest value has rank 1. Also, a key-function can extract + the field to be ranked: + + >>> goals = [('eagles', 45), ('bears', 48), ('lions', 44)] + >>> _rank(goals, key=itemgetter(1), reverse=True) + [2.0, 1.0, 3.0] + + Ranks are conventionally numbered starting from one; however, + setting *start* to zero allows the ranks to be used as array indices: + + >>> prize = ['Gold', 'Silver', 'Bronze', 'Certificate'] + >>> scores = [8.1, 7.3, 9.4, 8.3] + >>> [prize[int(i)] for i in _rank(scores, start=0, reverse=True)] + ['Bronze', 'Certificate', 'Gold', 'Silver'] + + """ + # If this function becomes public at some point, more thought + # needs to be given to the signature. A list of ints is + # plausible when ties is "min" or "max". When ties is "average", + # either list[float] or list[Fraction] is plausible. + + # Default handling of ties matches scipy.stats.mstats.spearmanr. + if ties != 'average': + raise ValueError(f'Unknown tie resolution method: {ties!r}') + if key is not None: + data = map(key, data) + val_pos = sorted(zip(data, count()), reverse=reverse) + i = start - 1 + result = [0] * len(val_pos) + for _, g in groupby(val_pos, key=itemgetter(0)): + group = list(g) + size = len(group) + rank = i + (size + 1) / 2 + for value, orig_pos in group: + result[orig_pos] = rank + i += size + return result + + def _integer_sqrt_of_frac_rto(n: int, m: int) -> int: """Square root of n/m, rounded to the nearest integer using round-to-odd.""" # Reference: https://www.lri.fr/~melquion/doc/05-imacs17_1-expose.pdf @@ -988,14 +1042,12 @@ def covariance(x, y, /): return sxy / (n - 1) -def correlation(x, y, /): +def correlation(x, y, /, *, method='linear'): """Pearson's correlation coefficient Return the Pearson's correlation coefficient for two inputs. Pearson's - correlation coefficient *r* takes values between -1 and +1. It measures the - strength and direction of the linear relationship, where +1 means very - strong, positive linear relationship, -1 very strong, negative linear - relationship, and 0 no linear relationship. + correlation coefficient *r* takes values between -1 and +1. It measures + the strength and direction of a linear relationship. >>> x = [1, 2, 3, 4, 5, 6, 7, 8, 9] >>> y = [9, 8, 7, 6, 5, 4, 3, 2, 1] @@ -1004,12 +1056,26 @@ def correlation(x, y, /): >>> correlation(x, y) -1.0 + If *method* is "ranked", computes Spearman's rank correlation coefficient + for two inputs. The data is replaced by ranks. Ties are averaged + so that equal values receive the same rank. The resulting coefficient + measures the strength of a monotonic relationship. + + Spearman's rank correlation coefficient is appropriate for ordinal + data or for continuous data that doesn't meet the linear proportion + requirement for Pearson's correlation coefficient. """ n = len(x) if len(y) != n: raise StatisticsError('correlation requires that both inputs have same number of data points') if n < 2: raise StatisticsError('correlation requires at least two data points') + if method not in {'linear', 'ranked'}: + raise ValueError(f'Unknown method: {method!r}') + if method == 'ranked': + start = (n - 1) / -2 # Center rankings around zero + x = _rank(x, start=start) + y = _rank(y, start=start) xbar = fsum(x) / n ybar = fsum(y) / n sxy = fsum((xi - xbar) * (yi - ybar) for xi, yi in zip(x, y)) @@ -1193,7 +1259,7 @@ def samples(self, n, *, seed=None): "Generate *n* samples for a given mean and standard deviation." gauss = random.gauss if seed is None else random.Random(seed).gauss mu, sigma = self._mu, self._sigma - return [gauss(mu, sigma) for i in range(n)] + return [gauss(mu, sigma) for _ in repeat(None, n)] def pdf(self, x): "Probability density function. P(x <= X < x+dx) / dx" @@ -1221,8 +1287,6 @@ def inv_cdf(self, p): """ if p <= 0.0 or p >= 1.0: raise StatisticsError('p must be in the range 0.0 < p < 1.0') - if self._sigma <= 0.0: - raise StatisticsError('cdf() not defined when sigma at or below zero') return _normal_dist_inv_cdf(p, self._mu, self._sigma) def quantiles(self, n=4): diff --git a/Lib/subprocess.py b/Lib/subprocess.py index e10b01047ebef5..7ae8df154b481f 100644 --- a/Lib/subprocess.py +++ b/Lib/subprocess.py @@ -102,8 +102,19 @@ else: if _can_fork_exec: from _posixsubprocess import fork_exec as _fork_exec + # used in methods that are called by __del__ + _waitpid = os.waitpid + _waitstatus_to_exitcode = os.waitstatus_to_exitcode + _WIFSTOPPED = os.WIFSTOPPED + _WSTOPSIG = os.WSTOPSIG + _WNOHANG = os.WNOHANG else: _fork_exec = None + _waitpid = None + _waitstatus_to_exitcode = None + _WIFSTOPPED = None + _WSTOPSIG = None + _WNOHANG = None import select import selectors @@ -1890,19 +1901,19 @@ def _execute_child(self, args, executable, preexec_fn, close_fds, def _handle_exitstatus(self, sts, - waitstatus_to_exitcode=os.waitstatus_to_exitcode, - _WIFSTOPPED=os.WIFSTOPPED, - _WSTOPSIG=os.WSTOPSIG): + _waitstatus_to_exitcode=_waitstatus_to_exitcode, + _WIFSTOPPED=_WIFSTOPPED, + _WSTOPSIG=_WSTOPSIG): """All callers to this function MUST hold self._waitpid_lock.""" # This method is called (indirectly) by __del__, so it cannot # refer to anything outside of its local scope. if _WIFSTOPPED(sts): self.returncode = -_WSTOPSIG(sts) else: - self.returncode = waitstatus_to_exitcode(sts) + self.returncode = _waitstatus_to_exitcode(sts) - def _internal_poll(self, _deadstate=None, _waitpid=os.waitpid, - _WNOHANG=os.WNOHANG, _ECHILD=errno.ECHILD): + def _internal_poll(self, _deadstate=None, _waitpid=_waitpid, + _WNOHANG=_WNOHANG, _ECHILD=errno.ECHILD): """Check if child process has terminated. Returns returncode attribute. diff --git a/Lib/symtable.py b/Lib/symtable.py index 75ff0921f4c0db..5dd71ffc6b4f19 100644 --- a/Lib/symtable.py +++ b/Lib/symtable.py @@ -111,7 +111,7 @@ def has_children(self): return bool(self._table.children) def get_identifiers(self): - """Return a list of names of symbols in the table. + """Return a view object containing the names of symbols in the table. """ return self._table.symbols.keys() diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py index e21b7303fecc6b..ebe37118274222 100644 --- a/Lib/sysconfig.py +++ b/Lib/sysconfig.py @@ -111,8 +111,8 @@ def _getuserbase(): if env_base: return env_base - # VxWorks has no home directories - if sys.platform == "vxworks": + # Emscripten, VxWorks, and WASI have no home directories + if sys.platform in {"emscripten", "vxworks", "wasi"}: return None def joinuser(*args): @@ -195,37 +195,38 @@ def _safe_realpath(path): # unable to retrieve the real program name _PROJECT_BASE = _safe_realpath(os.getcwd()) -if (os.name == 'nt' and - _PROJECT_BASE.lower().endswith(('\\pcbuild\\win32', '\\pcbuild\\amd64'))): - _PROJECT_BASE = _safe_realpath(os.path.join(_PROJECT_BASE, pardir, pardir)) +# In a virtual environment, `sys._home` gives us the target directory +# `_PROJECT_BASE` for the executable that created it when the virtual +# python is an actual executable ('venv --copies' or Windows). +_sys_home = getattr(sys, '_home', None) +if _sys_home: + _PROJECT_BASE = _sys_home + +if os.name == 'nt': + # In a source build, the executable is in a subdirectory of the root + # that we want (<root>\PCbuild\<platname>). + # `_BASE_PREFIX` is used as the base installation is where the source + # will be. The realpath is needed to prevent mount point confusion + # that can occur with just string comparisons. + if _safe_realpath(_PROJECT_BASE).startswith( + _safe_realpath(f'{_BASE_PREFIX}\\PCbuild')): + _PROJECT_BASE = _BASE_PREFIX # set for cross builds if "_PYTHON_PROJECT_BASE" in os.environ: _PROJECT_BASE = _safe_realpath(os.environ["_PYTHON_PROJECT_BASE"]) -def _is_python_source_dir(d): +def is_python_build(check_home=None): + if check_home is not None: + import warnings + warnings.warn("check_home argument is deprecated and ignored.", + DeprecationWarning, stacklevel=2) for fn in ("Setup", "Setup.local"): - if os.path.isfile(os.path.join(d, "Modules", fn)): + if os.path.isfile(os.path.join(_PROJECT_BASE, "Modules", fn)): return True return False -_sys_home = getattr(sys, '_home', None) - -if os.name == 'nt': - def _fix_pcbuild(d): - if d and os.path.normcase(d).startswith( - os.path.normcase(os.path.join(_PREFIX, "PCbuild"))): - return _PREFIX - return d - _PROJECT_BASE = _fix_pcbuild(_PROJECT_BASE) - _sys_home = _fix_pcbuild(_sys_home) - -def is_python_build(check_home=False): - if check_home and _sys_home: - return _is_python_source_dir(_sys_home) - return _is_python_source_dir(_PROJECT_BASE) - -_PYTHON_BUILD = is_python_build(True) +_PYTHON_BUILD = is_python_build() if _PYTHON_BUILD: for scheme in ('posix_prefix', 'posix_home'): @@ -442,7 +443,7 @@ def _parse_makefile(filename, vars=None, keep_unresolved=True): def get_makefile_filename(): """Return the path of the Makefile.""" if _PYTHON_BUILD: - return os.path.join(_sys_home or _PROJECT_BASE, "Makefile") + return os.path.join(_PROJECT_BASE, "Makefile") if hasattr(sys, 'abiflags'): config_dir_name = f'config-{_PY_VERSION_SHORT}{sys.abiflags}' else: @@ -587,9 +588,9 @@ def get_config_h_filename(): """Return the path of pyconfig.h.""" if _PYTHON_BUILD: if os.name == "nt": - inc_dir = os.path.join(_sys_home or _PROJECT_BASE, "PC") + inc_dir = os.path.join(_PROJECT_BASE, "PC") else: - inc_dir = _sys_home or _PROJECT_BASE + inc_dir = _PROJECT_BASE else: inc_dir = get_path('platinclude') return os.path.join(inc_dir, 'pyconfig.h') diff --git a/Lib/tarfile.py b/Lib/tarfile.py index 8d43d0da7b9880..a08f247f496b3d 100755 --- a/Lib/tarfile.py +++ b/Lib/tarfile.py @@ -336,7 +336,8 @@ class _Stream: _Stream is intended to be used only internally. """ - def __init__(self, name, mode, comptype, fileobj, bufsize): + def __init__(self, name, mode, comptype, fileobj, bufsize, + compresslevel): """Construct a _Stream object. """ self._extfileobj = True @@ -371,7 +372,7 @@ def __init__(self, name, mode, comptype, fileobj, bufsize): self._init_read_gz() self.exception = zlib.error else: - self._init_write_gz() + self._init_write_gz(compresslevel) elif comptype == "bz2": try: @@ -383,7 +384,7 @@ def __init__(self, name, mode, comptype, fileobj, bufsize): self.cmp = bz2.BZ2Decompressor() self.exception = OSError else: - self.cmp = bz2.BZ2Compressor() + self.cmp = bz2.BZ2Compressor(compresslevel) elif comptype == "xz": try: @@ -410,13 +411,14 @@ def __del__(self): if hasattr(self, "closed") and not self.closed: self.close() - def _init_write_gz(self): + def _init_write_gz(self, compresslevel): """Initialize for writing with gzip compression. """ - self.cmp = self.zlib.compressobj(9, self.zlib.DEFLATED, - -self.zlib.MAX_WBITS, - self.zlib.DEF_MEM_LEVEL, - 0) + self.cmp = self.zlib.compressobj(compresslevel, + self.zlib.DEFLATED, + -self.zlib.MAX_WBITS, + self.zlib.DEF_MEM_LEVEL, + 0) timestamp = struct.pack("<L", int(time.time())) self.__write(b"\037\213\010\010" + timestamp + b"\002\377") if self.name.endswith(".gz"): @@ -1163,6 +1165,11 @@ def _proc_builtin(self, tarfile): # header information. self._apply_pax_info(tarfile.pax_headers, tarfile.encoding, tarfile.errors) + # Remove redundant slashes from directories. This is to be consistent + # with frombuf(). + if self.isdir(): + self.name = self.name.rstrip("/") + return self def _proc_gnulong(self, tarfile): @@ -1185,6 +1192,11 @@ def _proc_gnulong(self, tarfile): elif self.type == GNUTYPE_LONGLINK: next.linkname = nts(buf, tarfile.encoding, tarfile.errors) + # Remove redundant slashes from directories. This is to be consistent + # with frombuf(). + if next.isdir(): + next.name = next.name.removesuffix("/") + return next def _proc_sparse(self, tarfile): @@ -1649,7 +1661,9 @@ def not_compressed(comptype): if filemode not in ("r", "w"): raise ValueError("mode must be 'r' or 'w'") - stream = _Stream(name, filemode, comptype, fileobj, bufsize) + compresslevel = kwargs.pop("compresslevel", 9) + stream = _Stream(name, filemode, comptype, fileobj, bufsize, + compresslevel) try: t = cls(name, filemode, stream, **kwargs) except: diff --git a/Lib/tempfile.py b/Lib/tempfile.py index 23d76bbf0b4767..76a22b0bf2f98a 100644 --- a/Lib/tempfile.py +++ b/Lib/tempfile.py @@ -203,8 +203,7 @@ def _get_default_tempdir(): fd = _os.open(filename, _bin_openflags, 0o600) try: try: - with _io.open(fd, 'wb', closefd=False) as fp: - fp.write(b'blat') + _os.write(fd, b'blat') finally: _os.close(fd) finally: @@ -244,6 +243,7 @@ def _get_candidate_names(): def _mkstemp_inner(dir, pre, suf, flags, output_type): """Code common to mkstemp, TemporaryFile, and NamedTemporaryFile.""" + dir = _os.path.abspath(dir) names = _get_candidate_names() if output_type is bytes: names = map(_os.fsencode, names) @@ -264,7 +264,7 @@ def _mkstemp_inner(dir, pre, suf, flags, output_type): continue else: raise - return (fd, _os.path.abspath(file)) + return fd, file raise FileExistsError(_errno.EEXIST, "No usable temporary file name found") @@ -569,15 +569,26 @@ def NamedTemporaryFile(mode='w+b', buffering=-1, encoding=None, if "b" not in mode: encoding = _io.text_encoding(encoding) - (fd, name) = _mkstemp_inner(dir, prefix, suffix, flags, output_type) + name = None + def opener(*args): + nonlocal name + fd, name = _mkstemp_inner(dir, prefix, suffix, flags, output_type) + return fd try: - file = _io.open(fd, mode, buffering=buffering, - newline=newline, encoding=encoding, errors=errors) - - return _TemporaryFileWrapper(file, name, delete, delete_on_close) - except BaseException: - _os.unlink(name) - _os.close(fd) + file = _io.open(dir, mode, buffering=buffering, + newline=newline, encoding=encoding, errors=errors, + opener=opener) + try: + raw = getattr(file, 'buffer', file) + raw = getattr(raw, 'raw', raw) + raw.name = name + return _TemporaryFileWrapper(file, name, delete) + except: + file.close() + raise + except: + if name is not None and not (_os.name == 'nt' and delete): + _os.unlink(name) raise if _os.name != 'posix' or _sys.platform == 'cygwin': @@ -616,9 +627,20 @@ def TemporaryFile(mode='w+b', buffering=-1, encoding=None, flags = _bin_openflags if _O_TMPFILE_WORKS: - try: + fd = None + def opener(*args): + nonlocal fd flags2 = (flags | _os.O_TMPFILE) & ~_os.O_CREAT fd = _os.open(dir, flags2, 0o600) + return fd + try: + file = _io.open(dir, mode, buffering=buffering, + newline=newline, encoding=encoding, + errors=errors, opener=opener) + raw = getattr(file, 'buffer', file) + raw = getattr(raw, 'raw', raw) + raw.name = fd + return file except IsADirectoryError: # Linux kernel older than 3.11 ignores the O_TMPFILE flag: # O_TMPFILE is read as O_DIRECTORY. Trying to open a directory @@ -635,24 +657,25 @@ def TemporaryFile(mode='w+b', buffering=-1, encoding=None, # fails with NotADirectoryError, because O_TMPFILE is read as # O_DIRECTORY. pass - else: - try: - return _io.open(fd, mode, buffering=buffering, - newline=newline, encoding=encoding, - errors=errors) - except: - _os.close(fd) - raise # Fallback to _mkstemp_inner(). - (fd, name) = _mkstemp_inner(dir, prefix, suffix, flags, output_type) - try: - _os.unlink(name) - return _io.open(fd, mode, buffering=buffering, - newline=newline, encoding=encoding, errors=errors) - except: - _os.close(fd) - raise + fd = None + def opener(*args): + nonlocal fd + fd, name = _mkstemp_inner(dir, prefix, suffix, flags, output_type) + try: + _os.unlink(name) + except BaseException as e: + _os.close(fd) + raise + return fd + file = _io.open(dir, mode, buffering=buffering, + newline=newline, encoding=encoding, errors=errors, + opener=opener) + raw = getattr(file, 'buffer', file) + raw = getattr(raw, 'raw', raw) + raw.name = fd + return file class SpooledTemporaryFile(_io.IOBase): """Temporary file wrapper, specialized to switch from BytesIO diff --git a/Lib/test/_test_eintr.py b/Lib/test/_test_eintr.py index e43b59d064f55a..006581f7cc6a9a 100644 --- a/Lib/test/_test_eintr.py +++ b/Lib/test/_test_eintr.py @@ -403,11 +403,9 @@ def check_sigwait(self, wait_func): old_mask = signal.pthread_sigmask(signal.SIG_BLOCK, [signum]) self.addCleanup(signal.pthread_sigmask, signal.SIG_UNBLOCK, [signum]) - t0 = time.monotonic() proc = self.subprocess(code) with kill_on_error(proc): wait_func(signum) - dt = time.monotonic() - t0 self.assertEqual(proc.wait(), 0) @@ -497,16 +495,18 @@ def _lock(self, lock_func, lock_name): proc = self.subprocess(code) with kill_on_error(proc): with open(os_helper.TESTFN, 'wb') as f: - while True: # synchronize the subprocess - dt = time.monotonic() - start_time - if dt > 60.0: - raise Exception("failed to sync child in %.1f sec" % dt) + # synchronize the subprocess + start_time = time.monotonic() + for _ in support.sleeping_retry(support.LONG_TIMEOUT, error=False): try: lock_func(f, fcntl.LOCK_EX | fcntl.LOCK_NB) lock_func(f, fcntl.LOCK_UN) - time.sleep(0.01) except BlockingIOError: break + else: + dt = time.monotonic() - start_time + raise Exception("failed to sync child in %.1f sec" % dt) + # the child locked the file just a moment ago for 'sleep_time' seconds # that means that the lock below will block for 'sleep_time' minus some # potential context switch delay diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py index 67bb17c0ede364..b78586c560a68a 100644 --- a/Lib/test/_test_multiprocessing.py +++ b/Lib/test/_test_multiprocessing.py @@ -5,6 +5,7 @@ import unittest import unittest.mock import queue as pyqueue +import textwrap import time import io import itertools @@ -123,6 +124,8 @@ def _resource_unlink(name, rtype): # BaseManager.shutdown_timeout SHUTDOWN_TIMEOUT = support.SHORT_TIMEOUT +WAIT_ACTIVE_CHILDREN_TIMEOUT = 5.0 + HAVE_GETVALUE = not getattr(_multiprocessing, 'HAVE_BROKEN_SEM_GETVALUE', False) @@ -2860,6 +2863,11 @@ def test_pool_worker_lifetime_early_close(self): for (j, res) in enumerate(results): self.assertEqual(res.get(), sqr(j)) + def test_pool_maxtasksperchild_invalid(self): + for value in [0, -1, 0.5, "12"]: + with self.assertRaises(ValueError): + multiprocessing.Pool(3, maxtasksperchild=value) + def test_worker_finalization_via_atexit_handler_of_multiprocessing(self): # tests cases against bpo-38744 and bpo-39360 cmd = '''if 1: @@ -3965,7 +3973,7 @@ def test_shared_memory_recreate(self): 'multiprocessing.shared_memory._make_filename') as mock_make_filename: NAME_PREFIX = shared_memory._SHM_NAME_PREFIX - names = ['test01_fn', 'test02_fn'] + names = [self._new_shm_name('test03_fn'), self._new_shm_name('test04_fn')] # Prepend NAME_PREFIX which can be '/psm_' or 'wnsm_', necessary # because some POSIX compliant systems require name to start with / names = [NAME_PREFIX + name for name in names] @@ -4312,18 +4320,13 @@ def test_shared_memory_cleaned_after_process_termination(self): p.terminate() p.wait() - deadline = time.monotonic() + support.LONG_TIMEOUT - t = 0.1 - while time.monotonic() < deadline: - time.sleep(t) - t = min(t*2, 5) + err_msg = ("A SharedMemory segment was leaked after " + "a process was abruptly terminated") + for _ in support.sleeping_retry(support.LONG_TIMEOUT, err_msg): try: smm = shared_memory.SharedMemory(name, create=False) except FileNotFoundError: break - else: - raise AssertionError("A SharedMemory segment was leaked after" - " a process was abruptly terminated.") if os.name == 'posix': # Without this line it was raising warnings like: @@ -5333,9 +5336,10 @@ def create_and_register_resource(rtype): p.terminate() p.wait() - deadline = time.monotonic() + support.LONG_TIMEOUT - while time.monotonic() < deadline: - time.sleep(.5) + err_msg = (f"A {rtype} resource was leaked after a process was " + f"abruptly terminated") + for _ in support.sleeping_retry(support.SHORT_TIMEOUT, + err_msg): try: _resource_unlink(name2, rtype) except OSError as e: @@ -5343,10 +5347,7 @@ def create_and_register_resource(rtype): # EINVAL self.assertIn(e.errno, (errno.ENOENT, errno.EINVAL)) break - else: - raise AssertionError( - f"A {rtype} resource was leaked after a process was " - f"abruptly terminated.") + err = p.stderr.read().decode('utf-8') p.stderr.close() expected = ('resource_tracker: There appear to be 2 leaked {} ' @@ -5574,18 +5575,18 @@ def wait_proc_exit(self): # but this can take a bit on slow machines, so wait a few seconds # if there are other children too (see #17395). join_process(self.proc) + + timeout = WAIT_ACTIVE_CHILDREN_TIMEOUT start_time = time.monotonic() - t = 0.01 - while len(multiprocessing.active_children()) > 1: - time.sleep(t) - t *= 2 - dt = time.monotonic() - start_time - if dt >= 5.0: - test.support.environment_altered = True - support.print_warning(f"multiprocessing.Manager still has " - f"{multiprocessing.active_children()} " - f"active children after {dt} seconds") + for _ in support.sleeping_retry(timeout, error=False): + if len(multiprocessing.active_children()) <= 1: break + else: + dt = time.monotonic() - start_time + support.environment_altered = True + support.print_warning(f"multiprocessing.Manager still has " + f"{multiprocessing.active_children()} " + f"active children after {dt:.1f} seconds") def run_worker(self, worker, obj): self.proc = multiprocessing.Process(target=worker, args=(obj, )) @@ -5760,6 +5761,35 @@ def test_namespace(self): self.run_worker(self._test_namespace, o) +class TestNamedResource(unittest.TestCase): + def test_global_named_resource_spawn(self): + # + # gh-90549: Check that global named resources in main module + # will not leak by a subprocess, in spawn context. + # + testfn = os_helper.TESTFN + self.addCleanup(os_helper.unlink, testfn) + with open(testfn, 'w', encoding='utf-8') as f: + f.write(textwrap.dedent('''\ + import multiprocessing as mp + + ctx = mp.get_context('spawn') + + global_resource = ctx.Semaphore() + + def submain(): pass + + if __name__ == '__main__': + p = ctx.Process(target=submain) + p.start() + p.join() + ''')) + rc, out, err = test.support.script_helper.assert_python_ok(testfn) + # on error, err = 'UserWarning: resource_tracker: There appear to + # be 1 leaked semaphore objects to clean up at shutdown' + self.assertEqual(err, b'') + + class MiscTestCase(unittest.TestCase): def test__all__(self): # Just make sure names in not_exported are excluded @@ -5853,18 +5883,17 @@ def tearDownClass(cls): # only the manager process should be returned by active_children() # but this can take a bit on slow machines, so wait a few seconds # if there are other children too (see #17395) + timeout = WAIT_ACTIVE_CHILDREN_TIMEOUT start_time = time.monotonic() - t = 0.01 - while len(multiprocessing.active_children()) > 1: - time.sleep(t) - t *= 2 - dt = time.monotonic() - start_time - if dt >= 5.0: - test.support.environment_altered = True - support.print_warning(f"multiprocessing.Manager still has " - f"{multiprocessing.active_children()} " - f"active children after {dt} seconds") + for _ in support.sleeping_retry(timeout, error=False): + if len(multiprocessing.active_children()) <= 1: break + else: + dt = time.monotonic() - start_time + support.environment_altered = True + support.print_warning(f"multiprocessing.Manager still has " + f"{multiprocessing.active_children()} " + f"active children after {dt:.1f} seconds") gc.collect() # do garbage collection if cls.manager._number_of_objects() != 0: @@ -5991,3 +6020,15 @@ def tearDownModule(): remote_globs['setUpModule'] = setUpModule remote_globs['tearDownModule'] = tearDownModule + + +@unittest.skipIf(not hasattr(_multiprocessing, 'SemLock'), 'SemLock not available') +@unittest.skipIf(sys.platform != "linux", "Linux only") +class SemLockTests(unittest.TestCase): + + def test_semlock_subclass(self): + class SemLock(_multiprocessing.SemLock): + pass + name = f'test_semlock_subclass-{os.getpid()}' + s = SemLock(1, 0, 10, name, 0) + _multiprocessing.sem_unlink(name) diff --git a/Lib/test/_testcppext.cpp b/Lib/test/_testcppext.cpp index eade7ccdaaff7a..0e381a78c5ceed 100644 --- a/Lib/test/_testcppext.cpp +++ b/Lib/test/_testcppext.cpp @@ -6,6 +6,15 @@ #include "Python.h" +#if __cplusplus >= 201103 +# define NAME _testcpp11ext +#else +# define NAME _testcpp03ext +#endif + +#define _STR(NAME) #NAME +#define STR(NAME) _STR(NAME) + PyDoc_STRVAR(_testcppext_add_doc, "add(x, y)\n" "\n" @@ -16,7 +25,7 @@ _testcppext_add(PyObject *Py_UNUSED(module), PyObject *args) { long i, j; if (!PyArg_ParseTuple(args, "ll:foo", &i, &j)) { - return nullptr; + return _Py_NULL; } long res = i + j; return PyLong_FromLong(res); @@ -47,8 +56,8 @@ static PyObject * test_api_casts(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args)) { PyObject *obj = Py_BuildValue("(ii)", 1, 2); - if (obj == nullptr) { - return nullptr; + if (obj == _Py_NULL) { + return _Py_NULL; } Py_ssize_t refcnt = Py_REFCNT(obj); assert(refcnt >= 1); @@ -74,6 +83,15 @@ test_api_casts(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args)) Py_INCREF(strong_ref); Py_DECREF(strong_ref); + // gh-93442: Pass 0 as NULL for PyObject* + Py_XINCREF(0); + Py_XDECREF(0); +#if _cplusplus >= 201103 + // Test nullptr passed as PyObject* + Py_XINCREF(nullptr); + Py_XDECREF(nullptr); +#endif + Py_DECREF(obj); Py_RETURN_NONE; } @@ -83,8 +101,8 @@ static PyObject * test_unicode(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args)) { PyObject *str = PyUnicode_FromString("abc"); - if (str == nullptr) { - return nullptr; + if (str == _Py_NULL) { + return _Py_NULL; } assert(PyUnicode_Check(str)); @@ -92,7 +110,7 @@ test_unicode(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args)) // gh-92800: test PyUnicode_READ() const void* data = PyUnicode_DATA(str); - assert(data != nullptr); + assert(data != _Py_NULL); int kind = PyUnicode_KIND(str); assert(kind == PyUnicode_1BYTE_KIND); assert(PyUnicode_READ(kind, data, 0) == 'a'); @@ -108,12 +126,81 @@ test_unicode(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args)) Py_RETURN_NONE; } +/* Test a `new`-allocated object with a virtual method. + * (https://github.com/python/cpython/issues/94731) */ + +class VirtualPyObject : public PyObject { +public: + VirtualPyObject(); + virtual ~VirtualPyObject() { + delete [] internal_data; + --instance_count; + } + virtual void set_internal_data() { + internal_data[0] = 1; + } + static void dealloc(PyObject* o) { + delete static_cast<VirtualPyObject*>(o); + } + + // Number of "living" instances + static int instance_count; +private: + // buffer that can get corrupted + int* internal_data; +}; + +int VirtualPyObject::instance_count = 0; + +PyType_Slot VirtualPyObject_Slots[] = { + {Py_tp_free, (void*)VirtualPyObject::dealloc}, + {0, _Py_NULL}, +}; + +PyType_Spec VirtualPyObject_Spec = { + /* .name */ STR(NAME) ".VirtualPyObject", + /* .basicsize */ sizeof(VirtualPyObject), + /* .itemsize */ 0, + /* .flags */ Py_TPFLAGS_DEFAULT, + /* .slots */ VirtualPyObject_Slots, +}; + +VirtualPyObject::VirtualPyObject() { + // Create a temporary type (just so we don't need to store it) + PyObject *type = PyType_FromSpec(&VirtualPyObject_Spec); + // no good way to signal failure from a C++ constructor, so use assert + // for error handling + assert(type); + assert(PyObject_Init(this, (PyTypeObject *)type)); + Py_DECREF(type); + internal_data = new int[50]; + ++instance_count; +} + +static PyObject * +test_virtual_object(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args)) +{ + VirtualPyObject* obj = new VirtualPyObject(); + obj->set_internal_data(); + Py_DECREF(obj); + if (VirtualPyObject::instance_count != 0) { + return PyErr_Format( + PyExc_AssertionError, + "instance_count should be 0, got %d", + VirtualPyObject::instance_count); + } + Py_RETURN_NONE; +} static PyMethodDef _testcppext_methods[] = { {"add", _testcppext_add, METH_VARARGS, _testcppext_add_doc}, - {"test_api_casts", test_api_casts, METH_NOARGS, nullptr}, - {"test_unicode", test_unicode, METH_NOARGS, nullptr}, - {nullptr, nullptr, 0, nullptr} /* sentinel */ + {"test_api_casts", test_api_casts, METH_NOARGS, _Py_NULL}, + {"test_unicode", test_unicode, METH_NOARGS, _Py_NULL}, + {"test_virtual_object", test_virtual_object, METH_NOARGS, _Py_NULL}, + // Note: _testcppext_exec currently runs all test functions directly. + // When adding a new one, add a call there. + + {_Py_NULL, _Py_NULL, 0, _Py_NULL} /* sentinel */ }; @@ -123,12 +210,27 @@ _testcppext_exec(PyObject *module) if (PyModule_AddIntMacro(module, __cplusplus) < 0) { return -1; } + + PyObject *result; + + result = PyObject_CallMethod(module, "test_api_casts", ""); + if (!result) return -1; + Py_DECREF(result); + + result = PyObject_CallMethod(module, "test_unicode", ""); + if (!result) return -1; + Py_DECREF(result); + + result = PyObject_CallMethod(module, "test_virtual_object", ""); + if (!result) return -1; + Py_DECREF(result); + return 0; } static PyModuleDef_Slot _testcppext_slots[] = { {Py_mod_exec, reinterpret_cast<void*>(_testcppext_exec)}, - {0, nullptr} + {0, _Py_NULL} }; @@ -136,18 +238,21 @@ PyDoc_STRVAR(_testcppext_doc, "C++ test extension."); static struct PyModuleDef _testcppext_module = { PyModuleDef_HEAD_INIT, // m_base - "_testcppext", // m_name + STR(NAME), // m_name _testcppext_doc, // m_doc 0, // m_size _testcppext_methods, // m_methods _testcppext_slots, // m_slots - nullptr, // m_traverse - nullptr, // m_clear - nullptr, // m_free + _Py_NULL, // m_traverse + _Py_NULL, // m_clear + _Py_NULL, // m_free }; +#define _FUNC_NAME(NAME) PyInit_ ## NAME +#define FUNC_NAME(NAME) _FUNC_NAME(NAME) + PyMODINIT_FUNC -PyInit__testcppext(void) +FUNC_NAME(NAME)(void) { return PyModuleDef_Init(&_testcppext_module); } diff --git a/Lib/test/audiodata/pluck-pcm24-ext.wav b/Lib/test/audiodata/pluck-pcm24-ext.wav new file mode 100644 index 0000000000000000000000000000000000000000..e4c2d133597d85079671147e52bacffef232995d GIT binary patch literal 19922 zcmWieWn5HW6UT4u-c5E{mhKJ_MM@C?2@6rNK*2@@6;$j$B6c8(fsKJ+VgQngC?X*! zA}!s$%XaU*kI#$qW?szae9t+bnfc9`m5UcFs0jvu(D`cvcf=etvjYGC!y!O(8UXBo zK!6D70XqK{{Lc>lTL8cWP6EJdVD^LkJGN{)i2Som&;THE%fT(D|M}TI9eOx{Gu8*K zRsiK%&eOO^OXo@0pY*l6c1tet?yE&I0c<t;B_SJB?uIwSV{1c;et0X^Wamv=A)I;F zerxT-iwJ}Je}}yloX^(>C#);a9_@cc(D+@@Yi~bgVc**p7P@m^f2f;M$9we45iRKK zRJdcCgRN92<xb!c<#w4^i>Y$kL0XokRL$(+`YL-9HD|jjiiW+**DEuQl!$Uw?JYZI zZNiJSejj2X(Z>GC|B*L;DqB{iQEV3S@hK~^hx>K4E`XjcjMTyLM4v!50Gu37Wf`U| z&i$a_UAXc|2|YJ=s%;aa!>f)}%1Fx_oIXx_8L;j6dJ0xe!b~aWi>GN&sCyTM^aW@{ z{=7_>t2rquaG%i7)e2Y?PRYF3veuJ$tbmg>1FT!n7B^Rkwm$kkDBx6CO+Fush&8;b zH!!tIvA@12OZn}|;jZPgNHupl=5+D@`gU|~46u3MWxZH?iOJvwZ7efva@Qi+@?i1O zw2QGzlzY;+)^_StA)#!e`uo+%{SVb45fbx36}5I%$(VY#!3Vn-ym!u~yN^JDVC;<s zvDDQumq0D-8pWNNR||FbCTe{FX1P@8{^PZz>;7Y3J)%`_@xu6zri&ddH<G^Lz_FlR z)UxD}!*6LJU0u;(bh@-*po{YQPv}t-60pLUI)a`a)@mS;qZnIwQM88OR||uf&te{Q zS~LDM`@{@U{A|b96VQP4F7IVfH;LPvq53*<2l*hHyID(T<%C_N6+389Zw2<NwD+Cc zkLaZC7+odheJA^o;%Z2z`R(a-N4pb?r@yKie7c=Wvg1St(-%ZalB1KJ)74KRyH|PR z^Cr-}v+(pi;?r8Vv3hWoNR8TrB{^W7SIX$oII$>TbP_mRr<K7&4i1n*Zj&Fjv3-AO zT#g&LPiJZF3Rk-8{9~V5tYfn>KCG1W!gu)BQ|71RKSqOT|4!pZ1-WiH_p5^9-_XOG zLmNI-|9k^w`99xysp#hCu6Gup?~jA^7fHi?TZpaHBIn;v7BkajXM*U=@?|cH2C73l zxU>>oN2~YKfWJu<RvXj?=O0QRi`VtZndC{%!5Pzz4ti+-qv^d*Pc>Y7)vaF2SqgOp z7{Wfaoh>!`C4Jqxmfr1lL!BXGZ#y`8nQV4~G@$%`F&AqFD;Hk@Pwk}YE(PfY%JdQd zf6*~I8~5L_{9_6>Ti&@O26uKaIk*HkJKHC$7Vg_IxyFXX`7*s>1zlr)L+dl<+Y{Td zd;fpuRVTEAEM_-;&@AK4NZZ4h(7)jqK>f#FYDX$?qMF;0%j}!_`zen$w(WjTUi02M zfkVtmS%6<4ru8W7CFtuptJnHb6L!n`otgi<wc*V3+l?0Bw9;FKP$lWo{mL5*qzT49 z1YzBQZ(Fh@V|`ttqmxSt+?geVmlKfQ1HCU8?d5m7GkN`&th+9zpoOfitNyg)89l%I z{o(yXkBg@c9p}EOWqdm+^O>KYUI@fgywh%mZG{wrt?;oSD0(3@{HAsNN?;!DEh@rZ zL#q24`1}p>nw7Zriw)-UpnWI%yCaEx%bXuvpjsbl>N97I?_Kj|j7463Gc}K$d1fks zpt&$}&)usU|MuTgLQ$s2flla?xVaW$)KpM@)q(QyWA~W?vIki!K?h9;2tpHx3*_KN z6?*N?JpOblQEI$<)Bo9DFj!s#N|LKa@=TW**U6y=D>h~!XM*LH*;v?_@<4s*wW#mE z%{eK}Zf)xa%d#}uUiL)(?0SH8<v;Bz;CJ@8pfjd-y>}t3Jllgd`4;sJJ@~Dz+&i_t z4oOwWJq+s4kzt?sCvks>;x~}n5~5c;b=e(c=EgQyA5wj@b3KalI0hSO_~kX-(_Ua{ zsgajTfh&ewj})ZV#me#+Iph4`lV$Wzd{4c<Oj=XrK%`bdR<=sY_;=Tr?dY|Q*Y^~W zb+I|QtpwX;yDKAz`d7;mw8&eETW=mG`#8}q*rV*7fxS`0$G0^65K^VYZfF`6&33Ci z$Lt-t^h;Zdl-ZPjj4>ea&k3XShSj^+5nhIk6%As2#U1AZr0dP{p1E_DZ?Qi*GN6t& z(fQrYHtQvA?po3Ix4yS?)klP$+%<F-O84r`?ee&uJuFJonE#UZKwDAvR7ra{v}qH; zzA?=_n;bDuU^zkpZnMSfi7#Jv<ru=5^~~hW_zv-`*CY(*HZ0Ln$L(FScQ3Zph@5N= zF^1^LEYz=3y5a=&>L2qSGlq~UxN?QnfF;fT`G58s?`hoZ^2ki``J>9OrwIQn8FvWI z`OWg{q{j&r6ZvE$f^3qB>Kpo8yh<!=*GttRt@bnUG@@#q@f|$CJn8Y`eS;SCGw1qC zW{JxJssXj^>4-Ru5c9s-Q4hC}aDYf@%-WpVg`7AG7H8kUu1F`3wyv3m!@Ev*;*XjN zuXSQSz@Xf&Z)woQKfV0gX*q{S9>tnG;_@S;LfT=qo2KB~Ao?;VBf6XB*4MRvlv*X# z|GJMf5;~f)0D(v4tsC(DW8Pc(R3(zOBOyvo(;TlZWvsOgvKeo#SKkRo>gU4w(d14a z=AEVVS(lg*Nty|tPReT;^A>H6O`yGPP>r{f!$WJgr2n7&&|E@>3;uc!X>U_@eITVN z6<B(b#0&HOsU!+7ncQ_H-AZE4!YDN@eto9Q(F4`-M(lTc@7{^fbo}Gt<U{>YLr?`1 zYL`|$Jc|jNgxkJLWRE{NR!=6akhWy>N4j{t{MtEBTeSXb$FYfDx88Q%`mWMT>R!Sn zWc&8V{xwN48^g}p7pa8%G{n<o_-~<jZ3iVfKWCxuzi3gLJ*Kf{pYG5i%1UP`Jc+bs zjH1OD<^DXzlw$dgN$WqdIcfR}@@1dHJo~*=j%$>Ji{RxzgmMIZP9+XVr~|_m08?|@ zxuomKOisU3Cz<}pX{P5x%F9Q21xtwaZ3j=;5awCUyyHR=Jb$Hmf#N-9VpK{R^7Q45 z5FLNmI252|m(h|%l;K-G){YF{Bcm==T4A%3zkk&1`);HcK<%GnmBm5M<(0FQ>f`Q{ z?w%5|_Ak>@lXlkqO&<LRT3pI0opBjx^@@(SXzj2?mm!DmSJmSN&=L&>zvr;)oF;nf z9JS_1zND#CM<C-Z;=HSL_3p2RGqfHAe+gWod6}xQ+K<}unP|EniE8NC##d#8IS)2V z8Fg?-usHP_plBBzKj2Hwll3Md8^2>aR{)QMgu~f*?<r~;bz0PU&67W#oH@Z-zCwL# zT;oZ~iiQKUrhUab#?e8iMS~v+JA>B2i%D;G7E)U%_rmM`>?N1Gc+tNS4W_y2ONsNW zfY?Rkg@D^x4&6YG&ezwP8+j#)uc>=Vu|I;!O_;MV3t4xwF6p^?&4te5DY5pQ&g65G z2a;P)*!71P+4#TfNPVZzG3@YqQZN71^=9wDLbJX@u8jN2p>PRv(QHoqJNvdZGMzZ$ z+Xm#tHgP<OdC>OfwGr)#=;EnIT3Kp<8AOYj&2mz~UTMAi<|zkd#&26i<U4vpD!#V1 z_`y#8Cha+&Z;2ni&<sAM%9(}VpF~!ik}Z8s-P|>8S~Tmk-Iw!4>}gM${&1P^(!zE~ z=xeZsU^=<i)4(;IU|F*3#9`F2s_nfq<t01su{QZekV7kvu*P?xK^mdD8UX&F9GS(@ zaN1p-8N-2P=l#&kf~8U4ly{FB=rX@J5lI*t3E8Ti>-W<qN9;4Bf9=!BgyU_UtNUwE z?Z>w}_J&%maPByo-Tkbf`+Pxjwz~g*I5l$HC?`bgOYT%qv=#4;qPma1h=#JxOPjS> zDNZfWu<o<O!eS}AJz6koOp9Bnmuw4Fof}>1BfASxLTh=RIaV)tobpKVr$3yo;|>Fz z0{e%?&pnmr4nY21gtqU3ZHMULd#urZ_KxX2dxQ1D%ZrD#*%zh-(YcJ7uF_m9O7vkl zM~>KDjQn|=@NNU%LMJsZdL0pnURX`NJqWv$tRnfrmo*tX%L(sd=qb4r_Rnc^k8Ap0 zFZR&UI((?m!;((><hG!kP_YcnKaEv-SN?b|nHJfx=P5@R)a|Q3@YR>RIjaL$YTY>A zt|jFj8tYzm?YH5`fPE}5P(F4ePG|dEzRO?pr;sW@u9<y{G>Iy7pK7Vj^@Kjq9}6sY zU9EE^bwFiCd!*FUIR*H6i%tI%*Lf)r3deDojf2HF-CKR|!T8rgqhAR;fy(0BCIw-V z6fGfSnDZS97)z)0#1D0Ycgf3!4aYX-xQFT{0?sGiYYqkL<abicS5L@CV0`iN2?X|( zm@&^0YOFpWTL|g&@theD!8aspH`u$^M!piMwF0PL$Qa4?*lx{@C;nc(%=T-1r6w^p z+8XUu6SbR7N8Ir&zu!-}63(aJuYYkQ-0tND1Cih0L9>qU(=Ahd+Q}L!FSO^CU%kv| zXl0lvCU-)L>f{^{niZLsQL*;d+UIUjyg}9LSnc`3;Xp6Lh%2QJPwH9)wi=75Wz|~3 zhZwB@3OglWU*$g!8f#x~dg#h9qaJ0mM~hEueb%1BuUHH`RE)Q2SQet`mqZ1PtXDzQ zyiS8$8g=JJ)3aL&H&G2tHfbifvM^h_ASwCJQm*eDQ2omT7{hYkyBxj`?p|A6{2toJ z{~fRqus-VZ0|Hnx=glvL>y1GzG5JiG{^U`XGnHQj>E4=nGv2Iea2*SIOFCpS?N<|C z`ea~Lt|atq^;&yQpjKN?aR2>L9O?aA@Wdii+NN+IGRnK7otn;u4zvG``l>lM*RVd! zlPuh0!M_Wr_USKcr~MYIY2La==S<>BM)crH6+>_M!>?PNl<0Tl*GbAvm2~}u+_6p` zc4aXABfG|<-*yILYR%C5J&Y=d8^<<_$x}LhU^%~{e43?LAD~-m1@2yH$}VKhO}6|o zy~2O4vBh=C^>mh7*mRrSq{jntIA7hGYH8LZ_ZH1Q)1^v(+<WpduG?CEvlYAZ%j)N9 z{6DuPR^~`co5to<)L~zmeJY!stSnn@&_gIben5Nm*r?MO#foL$b_wX-A&YR86yL2` zuAbnf)G@fd|Mg0j+q5mswOHoe+HT3b$LzNH^7qX0k>rQnt}eXp4yw0?{O3%|LKnDc z*!Z(H1H1`Pq<U|xri!wSzZ|avp6czoSiPG<8MId?w#g1VvU^XD*FKUwz1(|sgk00m zT`gs@z7Nc((Aa0l&Ao22@P#^R0b55?V_gP5FU>H#LlIzQ+3{2BSD;N2wI%nRNn8A& zhr4F7!1j(NVY)H#BSF6ItS&V~bgtJuKUy}FB=IO#*ZlZKamVBIC>Gy<uxCpaFD2Su zHajy#e;$m^Hr3^4tLHlyXBJi1PU<SIw9gNr68ubKIGCm%DSx-{mY}hpKiXwqJ?~U^ zPw~X_(3Xx9rlxCJ4xKOz6m);vJ5U=l-ibHgE)>1vgJrGiy;By~C@BA!<yeyD$}FTo zt^Z&euQS*<<wNr}LtSHDRil#leJ6k8G*RU~cHP3E(*@X5X@}twc-^;-SAmSoV*@8( z4O4&KixtKWBJit1+v0^*U^m>IVE&^*`slMQy^J}TZdbc_*hy&8Y1-Z(qQ@5+h9AKl zY?!wX30eTH<QPu=edh)*p*x8fBv$^o_#^i|pnF0n&V@e|`I6M+n_HYiTQ&Fnpq6bg zSRAK1r#78b{5niGsNT}>%z#Q`uq!sGPAt}P&zs7=*PGxyBnharkajq0_Z%fPFX!v_ z%xKwBZq;_PccCYr?8)T?{&|@vKcFWHc@4!lnm*Z1>F=_i<goI0Q0t%SKi<L9IcNCE zseSQT_R;nq7JFdy`iS4zDWlEIP4|0+r-&gp+bW&Fd$#RwXVV%|2YrU9>g&S9jDOmS z7?GrRT2tRaj>^~BpyiUxOo!BE)H~UBHB6yI-*`i8>qt1cHH$uNzFff2UY<DlID!?w zaC9Kr@#`C&`A_DX_3BM~8b2*0<Od914<Vmg?A%CXP~ObtWM~_Tv@`9E3ZAPs1(+qB zX&iFZkKz4%YfpOEOL~(j)xV*i(>nf{$=#XRH*WPKqOASU&PIsRGJ2Ex<ae9aXZw}4 zgF!xE=!h^)+Mx9iALR}$orAt>({|fJ8{6;1W3d9gb=*Gd)R_rYTXY9kcZjz#OPAKZ zd5_0$?%R(~823@^6<tw7)L+A`+F4-z*^Uq4<b!)hNpHz5xC}w{pY5c*Pcw*`Fm9&M zdc*Da38h984)(v1<xi}`CY0*~^;Udq-<=LU-3taZ@<a02nkB<QYgslo2P3}N-Sy?= z8|&M6fG^B@>fLC!yZ#!iWWMw?nF+J`H@zLmdSg2*Vs9IEIKzYQjR(TovIn%Qld6Pi z@Ut&U?|Fh%dyUfe4!bQ=ExFXApx3V|?O2pqqka1CA5T^I!LI2B_FTR3!Rf49>GC8> zCzgr`E!!g$<oG1iSD*G9o1WRDLC>@hs5F-kD_lZYy$+odVYIQJntf8$-V+@J*7)ZQ z1QVnydX#Z7qix+A*uS6)Zz0ZFGPx)ay;Y~q*sh)OjhPP`si@}1LzrQE9NHTcdQa^) z8{sD(ns1K<ayDrh{p=+()omZ84S|!Du9};Z22QMJx&9gmrQ7s63M$nm@-@VD3FD4I zT2o;2EkB)cck0sjI_Exm{@kOh@8{&Bqvvc)f8MNj@lkhmjV5AK{$?65?;Pj4_f%B5 zL8jeMdJv_esJHHSN9d&<fLF1rwcBsQgx7!l#U>VdWbUQUriB@*CZma}0AfO8)5Ftb z#~G5H{^WOD>ns<_SBc|abNW3ls+Xi;wyW2^fHKfpm9|mck==OIdE$5?_Ge}Hiz`~u zS?$^{Nuv3^epd)@*H5j(VIKl``6_ea0Bg^FBjlU;2^ssx0{a=4@OK|<fGow9ETfVm z034+us~*1JDN9@=fPRchm(kZ3^apxq=4>45*=5o9Q*7XAY3@tY*Ol%zGI%`E?5s4{ zn5$SjUw2#8%+2fB^h`I$>#VSQ`uc4wWyqM}H@aSRnL?uW$m;rmaYE=?@@qpVP5a!m z0eioRX<Y-$d#ct-2Cg}Eu&)e1FV{LA&-=W@wup$?@zez$iJ@oOULPkdj2r<T5jXwO zIl6|p#CE3WJlXMs?(#)6(d&tAdnk**>X>>gapZ?3Z?e%=bn0x+J~jKrSjWgFW?O0B zoc(CmO8#{Y(03Acc}e!U$<}f*_!($XGDCmV-7ZX<$o03<F_!mS)3ZXcv1Js>riocK zVq}urzjhdFBN=_`XIx@@yFOCz+r-;a{`9H!$6n^<2Iw}$)Mv2$;!)!{D97ZWHfm=P z7sdz~cjwHd-AJ%D2%ryLkQ(f!&iPW|9gpo$*L^=W<?tSvAsLBh8GL#)e0EYbjWPNp z=g%m4v_H1~XW!_I>0n$5FK(^%myPO&+Zd7_!d%^<yD)k%xu+%=8N7y^TL&MluxFD{ z|23Ak+^8$n%2GY5#*yExe}Ls9WuiyijQGKHO7CDi1F+~kRis<y)c@hQhV690NDEl1 zL&#VFc|6sQkJBm-wy3;iaQTOgoukIq6!W@Ms<T(w=$P{QUE(UmWZbxL#f}NVo}ud- z5n$Hf-cF4Mjfo<a;R8qYs~^^;;o4=7sqwCs)>i#Snx@4+2YZWIYCuc&jQlWT)+9{q zU*Ux0kV+a*j}nTV_;-UdsBxpBq(SiUu+WS$QO?sDN*Plup}uVz*U#>AUNwH%vF_E4 zF|7|=*5@gTt$`b&s-Dtob|rka5l5XPs($rluYhl8ORO@%+tZ8={70}mYqPtEvMP^i z!K3nXyOy;<=RL~qhVk|Zo9G96&qP74_MP@g`n$gOU+vW$Jt%yjAYEUK#xrrqNw@b9 zrEil(W4z8&J!`|=S_}7@xUYjvgP2jv)Y6a8#vHEGF+u95k<Ngj@F?s9GOQUvPkhXs zHOt_{T>x*go|d4Ou}Nz@!#Z3&E^jy4*U%fXN8^eeK~DK68yzMYzyr5go^b?bhfc7R zdTvpVx{9DnE9Ww$$#?sF?{b(2sBzqJQ#xz-&O~yrpiwd|+1Q-6Z>;)tzujjp*OF2k zrM%RoS6@!Z>4k0wp|wXRti9mi|9H-x!1co#$=BeawdSlR<UouaWJ0?-mmBDV<j?w% zo6NUps2$ndTbCus&FZ-2t(AoLqXMJ9XGA{sT5C6w-z%X_PxVIDAbY76o1SV+4p@xt zXB}i2Ud<uxyFgp^2Ym1opLthEJt{C=GCZ0yyz-c&=<n$F?WF!3L2H`s@8hs|hfU0o z{+mAruQhB!zKiy_7~_QA`&Y=dRN0+AmBl8L+dq}!Fz0Ehh@IG?cRr)#Gw;qXYV?b$ zm)Dik+8a%KxsR_Yz1NIuzhp+f9KY-UQd`CoCi?l$#uQe)i|%lp)~I$RD_2Em8rKsy z2uYKUq>k_6v_eSn55pAGy+pW(0mr=bW4%cxtvY3=Xd#J;n|?$O&1Ol0Fy60bK~*o^ zV5odUM?@C-EMefmbVKP2ac;Xop9%H9nbg&(`Wu!aN2bhzc9U+%OdXTxf9L6@d?BwI zB~cOy%xJaOOoi`pp{8=weBGGsXP!Si$;$wHBP5wltV5B6kTk2SWBPY?nTL5=Q<ego zml>WPALw{YSeeV6?IkN4U~UVS%aCa`n+ZjW9PCzWJu!h-Zqz)Z(UiRpGjpn&S<J~c znw)iYr1UOIsT}nSLvJje*#C?db$%jp<xt5S-tlzNz2B;`UudQQ=}snUTS%JNtbCaQ z&exYr9Z)()Lc+ON<W8+W!RTm{w$)4eZYDI!CmrqWu_j7l*8H-M=$ld7S@5>~myN0- zY2fE5Tlh?(*<oBUM9a?9dVAYo5rM4r%=G?8qSchqm2aeDueB<I(YqGJs2su@T~$K_ zKK-EBCY>8oGI?Oe)MPWaX_<=AF57a1s#Qq1@x=7dbUoJ;E1h6VFq_I+s4v|(xhe$W zMvcP{MQTTch{*m#nK`u)Cx1BX(bcWb)->zYR>usUY{eHGsfURZH^O?q*$#?VDGHyD z<W(YBQJj@7@>u(+A6cC3j|AUCMI$llB6}!u5OoVimgJ&$PpV2o@i2GUw<j`_0C0q$ za@)>~@<l&*YtO#TXxM`;E~Uy>jIC;w{<dz|_Psa!MXRExZRs#SQr2IROEbJ7J=Se> z{Da1nSikO(p<@!GU1_|jl(c`PzHlaS{$~a{4$G?H!!B^%E9J^iFvmj{Vj<dI#G7%R zm$-o6c2s_Nmm)2dFx{O{*QmF$N;~O^Wmd4c`jOVw2)!YWxVR4}beTANPq1pCvf``s z;t;#Kh2%SFjqWk<7U^&OPd_qExcdXJ`d}MVZ*=f=#}$LVR@xN(-N>xh>fU~y(KF?l zYr-SJB7<bn>q6;=ZK~cd@W?QM@(Z$*5XP9QvS(`dQfb_D>9#Cv!A|8)I(=jVsV;>* z)U0`tOLapvZfgi0K=P%V+oCFZF1R%}JGSn>JGwM<fK&?kbL5{)^twYe=j$0i&NQ-O z>a;#EY<@@g=d;IX=(!T=Zw}ZoAIi?cjZUc=Nx*_e<+Ev0J(f7=vLLcm5N9E;3Q(9F zg%(D`&pKF#>sbD)%r2#w-u2S+^wC?c#M%OYsN|`Qe|Va{(jbw9^nvQ5Alscb34CYd zooS>TFw}3y=cWL1hk=rtgMY2M63n{cW24>&M&pFyL3{BbANg4andc?R>U{B-vEmz3 zaVZK)VZwL2;4POBCkyq90QK2pQn{6sbX}QuNa=o#Wa3C}Udz(a)iSVVi25`<+Z2IH zSs}kS>qNIKucfiKS<AQoP~hN(V%g#>l`WIGEm^CbZFKUiQO%G+ZintWclN_xMnfXC zdKalw1zGQd!e*+uO04md3NFG`meQ5CWNuc%Bb9<OwXEustj!LrNdgO$8bPO-rEFu- zcasxW4Duv;7tDx#+Q7c+qUT)hkCWnEx)O&l<jiJj>uH^@{U-F?hEG@~SwrZy+rXn( zj>W#d`G5P8g&ik;53RgDuJvH5JyOwEC<=S8s$MGQR*DD16u5_E=~}qx6n=UUvFs;Y z9|EvEFfS`PM@QCjTkf8sJeUu^2Fb}wG(OJK(nw|ynT(Z3zz2Hra>jTBt$WYbj_Y5V z?frXx1rINu#Y_K+^DYqQ*0KLi*Nwpq9Bqs&LbST>=}RrBo;8{ml8F|FQT+u-mqZ=z z328?tTAoAGH;QQ)in+V_!W8}zP<pIJl5z?EmJay3&{}UYv{DV8=9mO)7`+nf8~>*6 zvja2}<xwQg!)4-&4Ds<^jN3}P+@^s_%_O+)?Qm11g2rmXH>{IvT-H6je6(hIyUx$y z{ehfn{mIJ(c<&)zoi_ll5F{=V4Y<id!uTCqq0D)zrH$x;r${LmcIpS-{-?4@mdhID zMZ=0URzPqr8h?u%^NjU+Kiz*ZgHn#@SSm(?`NNal5x#vP>smIw=&7(B4e1>(v4f`d zsF@OWiWYM$Ua$PAenq>+>U_hvGia4c$Hk90Ya{(U6a6UyBWDvL8Wk7`d2v|eG()-0 zaVoHKYSk&Bg+TNrRwa84{OfmFZD*_k^jtQZsKbmy0fRl2nm7G%A0<A$Vf^w-=`M58 z=N@JL2@O9xl2erhwU9McYsv#P?BcPOPL;#9jt*ez!qdNR{m1to<d+prC>Ii_2)DTu zy5K+Mbdn$YNVHCGlI4VdGFI5SpsqfsdpdF9GUVEGz{5sSd`PwBu59rt+|-6pvYKda z%c{IXiC)Hh{e<u?Q`r<QX|Cwe6%X5=XnE<}|Cl*8H9k5s8*UhvmL#$dc#+@z&^ENv zZW^c9^cqlGkP}?})e@pSkHu$Gytbn2lhIW@>S<)8?xi?bu2^BqExW~ioI7RdEppG6 z9u|YY8)2Pej2Desw**FNwsEMvzTk@vqaEWop!){K9tEo29~Lb>qWt-rc}5OpVwUrd z{`*cbiEE%fa#e4*jjy7$Clm^AziFQr!0ntRkv-u2E+^~ia^(WZRmQ1y<y?Nm7kiEH zJ(R{*<R>2^PpqgHt<W`zDE~El#73U|5+5=a8-)W0Fi1uvC^fZ?-y&T;!uszJ!F02F z<{EjjfA0aCiMXvTmNy3TmXFJ)M())RYGQ=$8f?Sa@Y4#`^m$Cidi2>jy`MyQzsSJ( zDCy~Eof9zKNJ8@+Azl6t`dkU+l*_>DicEBh{E{1E&#74<Isph(-mt7m{bo>u`I}yK z(qM6zfx24v>oxrv6?P|wE?1A)Z-91|ihdYkE@YN20lfRyQnwHdMT|9{kP7}NUyJc+ zEq_0HOPbepdI$5<v=vTFUdB1v&)li~wV+`VH*D6}(&;?o6@%aMrCZIFZ)HGg8e{)q zg3V2GO*HcNmE`hUP#npBS_2x9Ao@(g3?FT87O7`5n;{|Oo>!wBWlw+4-}_w3{TAn! z!}${v7U3gNAJC;grf&aWB|THW?$&sPP}As0t%-KOKlCTo;QAd(?R<UH{ftxJH1%ha z`;*a~<-jjX^`)(f;5z<8;neZ}CbMwS%(YVooRJhrwl<CKEhC~UbS<xFw_Vm5s?c{d z08Tt*_4CFr*OKVo;tQit)&MJGDYVkWa$PnddBDKXo_O(qGS?Ol_3hAkDVaUqoisxb zcu!5z=4%bp>xXzojrhCDsqwkPyH@g6SPy7R#dEi)&n&`DOtIYW!jubSz7uktB=mU- zF&}Wp3!vPqkU;_g%F`w5kQO^>$Nnb%+Nt8DW9?6S@YMqPsy2r;V<$?u$KQ-ZIgyY1 za|+flr}fM9QYd-92)_Zyyq9^H2_HJFM<COmtuRn#G8tLgf9*&+KG6bSV&0n}JqP6z zQwfkNNd3mSbwS)>$7$0-zSRmI)lw%CaQ<xe`llMD+B$0rb+*Mqip^}R9h0G_>14Tx z&mzU;vrNheyT;9VCy4v6=!F#$qSKV<D3;XS<+@oy_3CTC#YdLmPqy=h3h7gsymc4U zzZdX&;|ITe<4wF9;A|30uj39})#fW~`)g2qEJ?{m_8aroc*5^Laq2AK#{Ee9VghHs zzVImu&u8ytp_4<3TX%q<$zD8F9GuiK>^cdV^66!xo5iHkZxfp;XohVf_jkmOM*#jD zJTgW-Q;0aQv;($lm_N{;Glz+2>Xp49e%PS7<bt|Fo3ur!dN!fldqw<iE58pASH^SD zEGRN-O6E;jPm_O>YKqmw2$}Y_K+V-#kohKBvzKscYZ*^)A#)DxoK%ymAX^NY9p6pv zzpqo4g*Mr!o_+wXPWJ9QF0ITQknQ6e?F6v-Q!aG+Y>%nKf0Z+rO_{h49%k~6S`B6R zi6#QT4JVX>95(YUXt0yG#vQpv=JpsMyPUa1DO_YvY(GU9zotJFgXS|??jGp%yK+|x z$SrN){(rI+(LMIoQ=6%R?4#qW0W@OQ#O)*GEQVm_F65q@swM@>ln`SLiS7-|Be5Di z!Me|_8I}opHXOp6Aa-!7`f?4eyA(^V2EPtTr?yEH1Hvm4Q;qAv(k`ySJMzzGB6}j! zBnYq#(=O4X9&#aa-ZPG$=SCl35KahL(>0F8Y5ujKyS+BmPN!KVvJ-15n%-)667pws zu+&eHTs72~Be>-OIJa`6-%z(b;ry!`-L`S!y9a%ZxHsB{Z5e`78DP{B`Q%}(o56t9 zb7a^9`5Vn?4I(J3rfwz?&fP%y`Na7f_1w%!$38M9f1~6V@|FL=TaS+Ht5c9w{hGJ< z-OYSW{zUv$B-L}`i!Q3_p0ZvH=UtTb-GvkGL8UoF<ty5fEA*P<?3FqiwS3*pzX)%< zbh5QD`vT@AC9da#iU;I}e=8UF3udJVvrU1tpHrGC<Zg<<S4-o2rozyVZIy};DWvvm z6h$cSaw?7ZMey<zJ)O>cy;S4#3=<cwM)5V)b-Kp76WHV~QjYdmS{ruRX9O^lB!0zq z9^uVgP3el`%(GA&o|-tcZTS7yiME@gfi>K1VPN(Zv0t60jgxw~7Pd`=U<&u^a>Cmn z{?{U+aT6+CK{B7CgVd6J)9B&X$sK1DuZsx!Hz%IoQ|DI<mCO(sp5vA7;}n}g2gwso zKM6)pIDXF{m%F0%9>|w(>Ia{R@NZPTiI!NvB<!Xi@YFGIAsR7tmuF%8cCEN~z^VjV z-c99-NpPu=prK5*w+h=fC0O#3YzGLcylJysrM*3@9DCgF7rESqaBa50X9a0-fIwJ5 zDaz5{_|yF>jdEfcxSILel<5Wl;Tvf^p`3FN@+fgMpP`h{)rrO;zd2;Pu&JUmia*wq z$9zYtcaOhr9UE(&_&X1n6T;`UGcJ|N{1(98#<*bmRCo-0<E0>e6LJ4E^bMPAU!-+y z6IE{wZErUfGgnoQkk$uHwLJv8T1M`8$Q<pa$h&#AZUEP7a>H~&>5a(-1~g+Ue<&OY zL*%F563?%K{<To%XHeOLG+qJgzb8a_zjo^ae65A{S_LqD5p$-6`r=76p@yITZ+PIo zdi!1Jhi-DTtEhfH<*b*)&_*-+i;~|%<re_fFGL+Zuva>t+(zV2(HvJ&x<d@974$Dh z7(Wb{;|D<LWsUJ1{su#mM$FjoIKJs$C-0Svw1srGUC`jAOb_HvD97gV$DK$M$M=rE zs>QBoaWDO#=N}hcI0oP2Da_k>NtS@+2Vu)H#K@Ky<3jp7QxkbXeQ=KYV;y}$7pp6z zHeVF@6cO^H#z@1eejew?6_M9Z%w~{lUW`;CoLUEP|G}wauE<MEaeD*tuc>;&912aJ z=(C*Giqm&#ptFfumpHiM5qp(6SRBh5c#hRdsCW2$5{yJJRbG76r*5(-OLp-pY1s+s z%A*Xgg9>pT9jaD4S4#r4fx1SX;S1=@IK?37U!iS)?5F%%qH%|<QCI=_e$Y6XEzW&M zi4PtRvp~+BkR@JLAFDxiQ>A_zRh4rDQO_o(?sEnylNPoUi96Jc6O-&ORDYCzDGTnu zB4NE2?8#R`J4CT@!0&8i*o%<Wt`Rd#t}>+_w4vV^#C3Mj7uksWc9J{#$0N94KEw&C zlUwgrKUge`Ux19=p9)+D%*>cFq9BJR1rJE5xJl+oCI31Pd@7?V14#b@a_J%s-~li# zTk{YBWT`bDjp9FjG(H~^B+Vl|{HVBU1$8LMAXOc~MlVSe{FC%0BBlOD2KByr87$Ym zhTRS4(I#<E7ji&0<e#gjd5U;?9-VZClA($0xkQUUB0rN(3D=$&#t0jBNW97c_XFsz zRAr%)I_-c&Eu0)Z!Y{GpylUs9@RS2<Iq|p27dcZ-Y~-^-xaX$mgRd-8DJp)Vid_V2 z9tOXa(K<4SAu<Z8pbXsr=W}VSMbe9!)S?ZO=dKcVKbq9Oj;;4rJ#vv<D}>+Y2tQ=t z{@Q}iRd7S7@TeO~)s=R(puZ<n8Q#>7m*EOu(ybWsOItANDjlo>c5Gvu*8&56(UVUI zw|^yXS|&eiM%Y_Tep3qQ)e*KV!8G4egMu+JpXsl}oYyF+ApUM_DsLX{wG6fG0MeK1 zekzCceQB|4QHcj(M;lo+ree$`+Y2TVal(w1qC_cJPebQdsQW<dLWErA#;yG*(mBXY z{K0$oNbz>oKb40b-^tsNkIeQEuDvJ8IwN6wiKA>4hdRNA!`N>zW$X}qx{Na7K+>9k z!Y!$JcJjtSN-LS`WreowoeVt%I>;3V{wnjeV6Uap6b7E$A)2@Z&;BJ6ZAEViB-{+* zB}e6%LdunE0NzDnwi2w<z*qvs?H-VIkG6sYJw8VBOc$l|$fv$ZRkw*o+sWV9@T4B$ z{YSvPo~&8{+{84`UIey;s%g4_F@g8s9v<<OkhvIG{#g6xGRWW|b?<D#?=WIQ9{TY+ zey;)b8JK)<jZnoE(Dp*~x5SGY_~vxXcD>T*%#??xRHu3>bfqxOM{Z!k5A!8dFXz7s zBK$EB{@o#SIWNAtMcflDdvhKj>Z&enBSUY1q!X0(?S!ioWTApIt6brOk%OzJh8j`M z)yaD)@S$7sbH6ZyDCqP}g|H6W|3lhs1HbE*3~okyzf1SuBm9@Fa9l!J`V5QOK+dGY zt073#Lp&J|oOwxBeuAj`C?-<zVNLSS8<Iy&MAuf*uR!Ea6k-<+DF;zaF=+UMrD*}# zoWo_0!3CRmX_bH(1KIQ)nEaykSO})7DSueV+BImj6ES`+WOk7lGlRRi8VPIW>pMXi zN<z*i9O7fQ7OHBvyepq&+(16xS`1Z7r^*FU4sg>hK{QU7lPV<Q^7^gfmW$#WFQnHl z<IQgs_I+s08?1#wSz`oGGb7Y>5^LtD-lUU8PVp~fpqbpsswAW|Os2>Njy?v9G1bGH zn8`fF!`IM~DcQAEXsn(*s}|93SD06mQwG(759G)=aCIn@_!-f;4HRuc7rMgc$)p{L z(hcqCz0>0R%ZV-{=!rNaL>Fn~K$f1w@F&o?wpPR#<Q)p0PKEp|`0@hq{Wj>#Hn6@x zbA$!8<WoGJ!X^%+xjP6)P(;6<u(NE+Hxbd$=bOxi3Yrn4Qv6X2zL}sdI4>yelUpVV z<|j!4PfHG?qW_}6FP=idF5;hFVfk)lriVDJRjf^rTHnJiUz8UgAVwkT{Bz{{W*`k9 zZk<3JkEjDZP)3mOtr<G~B<HFMxeiMMIpBCRfK_4z7crr;D%}KHov&DHhu+z$cxQ>s z-l6<Hlf3eY`jw1aauj&>5ef`|$G!r@7X;&Na14aT0P=Y?MCPOjFC}dHPJFf<(Ig<= zuCPr8@>B^O?PTR|fMaanxjt~$Qo+syXqyP2Lr~dSMrj08@}81*8s6}kl&M6{hZ7!O zBKUpev-TsaD|kJ-p_RMfH8TL$54cB(+R924G^DtfDzq(^zK<1mI*3RA;tw&QO)`-^ zLxkN{1?q{{@0T1pDk*4GGtSFm0m9!)%Iiv!U<D496U~@#={fAiC&D|L*eaSR3+C$D z6CAt5Tl=Be1VDck;B^z5OU8)tV8jL0mH{GdO!>Y9o>->}N+wlxs*N-#-7s)gAI_W) ztwzCH{>aS`c;iii`jO(*eL`EN2<=9?*Amtaz{@GflpJbV2fKDap37K4n_)*W^5+5^ zpDz@Hu-^fE-(~3a7J6j~v^tl<OM_K<<T>pKX#>${9|6@6Nv|N6PVtEOkZ~S3k_Kd1 z0ZnT$*LUJG#mZ+VM8Vav`z4}X_LAluSbdQwE}YnxB69hquD248*-N9ROI9<~)0?Dl z0qnC?F@H1Z`girQ#b|mc*qnq<IU#SVBxkn~j?A9QX+e&6h|;{^4R-heAF$&V_I5RX zZvqeq)j`*Z&GXd<6XBR`>VsA2Xe_4Bpp>zJTc_cRy<kiP7<K_>=)u?W5P_wN*N9kT ziN@WLi;v;EJK&gA$n}TN&Uw(?|DeJk&3*_TyFfg-4yNoB-=M<=Y|Q^Hgu7CAH$s9g zO2$oi>kRVP2c(9LUfV{<IVMS{MMm!M<gRcLhF=c`ZEgbTZunILss0aDc%Zlem!pv) z|1c?4M{W8<yt<7*WQmnsSag8+3Mez16u()ndSEY2zXk>Q%U2YlbG%elchSqKc>I5W ze<H+)lHq2Eaz5|JOoSj8hP%K+zSxCtAo>C;m=CPl07U8IyDW&@IIK7l9@~Y*lF%2H z_+JItEE+(Buy;GS>MfY(48Q&b<+>m<lhiulh!0I%{0lxf0M6BfjV>d1)<UKspphlC zLc+*=2#xEL7Hhz<_EIYzRL50adj@sektfR`%{EHKZrItL{P_?v?*&@!NwAX0f=3Wi z7cc7;oU$B~4S<UpfX_HSV~1>Kjhe@lXw6b)Efn!@%2c(=qi-ZT><IIJiG}TW*ekKi zxJ*MTwkuSY{gfCafjjofj!KD#B#Ncgs4a-C-U>Q&1Izm5jo+YCd-&-~;oObF;bv&t zLUr#D==}`)Sr0%%_}(e}^BsaR2LH4lp4fzU_!3W!<BKZEOfJy932`=rG|7<M8UB3) z3PusE0Xu7l5Z{X<@55sTfJY~Ue?n@Ep;a#c*IMxPK@DR|sAL^E@fMWJlw&s_<+ySv z6q@IWF5U-e7g79B_#K7(9Yh|{NQGU<*9A)FKS<j)KCu>l_*`{vEi{e+d2fLHRJl(+ z7F{dJ3{$;{6|r08elHb~Ez&bfk=-99b`^kqh=klKw_GIw+?Dr!O4?rmm1^lxE2505 zSpO4s%v066|C>9-Y4enC)`Ls)1hG!gmob5<HgsaKD)0h0?;&=#4sbq&8@mD~D#UOQ zzkeQ{n!sBU2$y4ljs&vZdQh(saor77t%aD|;Y1f`x((vcg!`^Q{<|%)`~?R^Vw*Hz zUOh5%5wy_@@c0A1{6bqK1+Q$U+zEklg^GtEP~2i=8w(2BN|0+qW3iOnYtZy@5<L#~ zTuicCgEa0@Pd|mc^bw?&!!6U4xhat6z`p@QFy*}h-jB~eE8Q8Yeq18T2bC{g$d_QU zoy*~;#ZojL?AMnr`K`b@B`v**JXHFz1<!7lUI`*>IwVicMM<BOS`sM50Xug<rDYE6 zql%tbgQtoFrYpf&3zdsBz@m$o+arKD6F2t;nwKGY`au0lxOEOtS%)~60O$3|l=~pt zgAn-un)4F6cpk=Opqn?c@-g6Y1c`nl6_60`A(eO~+>(jdUWF74Knn+%Aoa8oY@I>X zoChuHQVBgFMYp0t40aa7=X$`@G4eBaD5H*4CWMymAkD3XckjgC>mtY33hl4Le}2nF zNzn4AK+`JlW|lIy1AjGJ7DK>(%@DsGR^F<Ry%Wp#&4Ug<mHo$rP7F&MzAEpWm4@Ui zR7a&Y#<-VE`Z5L~xXV|>qYI3cZJF@fMd}Ba)r;)#xEL|&56t-}Fn$08ELSKl0?*cC zIZJ`_5^RMYu<Je?paay^z$L-Jf?3GNW+34qsplQ2bDPlg8dC6~IXB_o&7kp8<jf3k z%ROXpTsCt7Lb;-R^$0$(1exfCa9u#|2h}bhml;6&A5ziz5UCJj%!WRdDJ;f8cN@s+ zBiOcp9Kr!(-jQ6+Lhp8xRxgBev_a}in4BkK2f>@)%HGC7hBJZfJHdq8s#TW2uRdAT zCG140nEh0BSVzXFRU9z}55>v%?17>(WT78a|Jlj@W+^Ns(zrN`G)MO04xDW*pR_<# zg^D$Ekd2R3+2=5`P1x%?$<~v2#Dw4%9~W+x>tOh}5mq#S_y54ce&PKi5PbkwbiyW% zfVcpDR1CahkW6lXrsD+H6iCM%K9&IQss`u#A}=n2dtV}eyTUFWslBWi<-&gXaHBtb zG6*>G4ElN#eYqVvQ%zlT7<zvg_`DNhausK^pd%Fkvlc9gBi(NU`%+2w1EIUiNb|>` z)hUoV7<Qc_;n85X8fj?=v@8{8ZwD#i>Y_!!!>jTey%-WMS#GZuUzH}sC`;t{fVN`u zJ!r*TxyF5UVYcjStwOR*cCJ%x_Mfb^0&2CDC*~2qA5tg_5IZZ?*B$uYN_CWttY!j> zTqV4D06%hBmURy|sZeX&#}~c9!tUdN9?-0>xV#s3WCPzrVL>`zzaK3)0G@InuH6ki zKL#IK2WQlRhs}^H#US|sVslP;`wBA9Bo`VW;ge9v8QAGAK$(EtG>DTAAkTDaQ5rPM z0y4M)onNLrItNO*f&Wt}2Tq~q8o;Riq;W&2$DYK03K^BcY8W=@l^VA~i_E3Rogrxl z7PuaiVd|7{AjeHnZHRvcrP0^a_dTUM`AWYI%<75a+FeNgRc>_{vz;NAqDoGK>~n;A zvRbwX2TlFuf1QX0s}xN-gqgL<B3B@IsamyP-m(WP91xBH_@V}>rU&jBrXE^^kKe{# zgy8|HVEIMdp$=X=i0{^hOXGmA6-1UV$lpNhbcK|8aHBO$9{^X1;Ad6frPD~+7gfz| zM7m4f?u)c2LBlWbdof@=3qGBV>}-c}-KoRBAkKX_>N7;=D_i$KURSYk3gmf&s6POf zEF?M7p(z<kI|7yDAj|8alI!w}T<Afqq{tNdNWyNd1Jh4pm-YklcE#Kf{P}BX%b1$1 zB{hsx^;D_#^pt<1prTod!MS+pUHRlzW&8|z6jvpu$~^+X(g^wF9YXgU#j0?E=PBjb zB;Yfkdi6r#j;TLB6zzJ5`M61!_F-o`RB8Y}eij3a@irVdyc&O>3E$4ce@sGc^8s6Z z;sp{YK0<VqffjuD#Tc|1fewF$$G(B0^+;5Qdixb*JXHQ=HNxTnd&l9Ei^26VaN9-L zmkq~WqksTBZ4#;FLyTh8tCvu0r8>(G8dy&tlAymd(i0shu>yS@3EA!?Xy-x?{goOI zp<kaQF1nD3qgoXX7PMfy&HzRU%3bmJf|WA&S=cE}>B@4|oC?*h1f?MxO1Y_6Jc{2D z%4f7Fr=OB*-d7DSmbcsi#7E@IB}kQ>;?P-w?gHhdR50tZ>PVH6_(W}eSo~)ZwzEv~ z<R0d;T=lX78{Uh>Pht@XfUX0+d^`O43O?&E)T9p}v4q^ez^CKHoNr*3Eix|`Dw_$_ zU4+wf!S^$flg(Jyf5_Pj^5ON!s&-r(LCliDlw0uK$IuHecu66-#|(}Dh;OxE*O%(x z256m=`s;3J)?6gg5)yqvZHyp7DjKyC+9M#Or9$<?DwB&)n^0oHgq(s@DVx9nGQKty zh|pD;r{i;_GMxihx|<X<R3GbB@;a5P?t=uLLiit$5u_l5t27$rif|R4EDw|8uOG?( z4U_2EDcVv94#vs?JLp4z>Oj5fL9m*?T|!Z)hxbb~S7OPZl)Y!MEvvEd9IToF_zN(A z1z%W;2Q)xudhvTdk>LBlrCmg60{A{0`6pwvw?OPgaB@0mq=X+n!s9m}*$Vm6bqM<> zrqV+Ua>27D@CGjE9}S=UNE%)Yhjb7n-f-U=%m9TCH>o~lK#Pswe;NP#TGVnj^mi+Y ztb?3`h&!)B%2+JsJe0CmnywE$IjS_>4+b!C_IrStrRu4{gYU@WbFhHJ(xbc8VzyE+ zOI1w(r+k&g<3QmpML$Q?s;xLYTNU<A-mwGk|0Lh?1n#p`IG!Xdl_;<*$Qf1zd{q~L zYR&D^-?{3u%O#^)*jy`R+A=I`26pN+mX?QyRbtoPLow6v#SPG%5BS}=2(%M0@gctV z2SY9+Ni(4ORESQ4D{p{>6>zdQVB?95KTzxoMsl0g>1K%VJ@~K*?m7aRUxYJWp=Wl$ z^8e7^8{no=ylDn3ey6(90KKI^t^Yxa7NX%QNal*>Z-Ms56QBRf>23JdbI>7k*-i_n z?USPLBpAxao>c%tv(&j9ynd$Q?J%~zUV1B6eIZ71>y&DKI6%CjyfYW{?NWrFR}Y6N zN}N;;N_oiu_Nq_LmOypW6l1Fi>0OFgQ+RW|GV&gl@J+R4k4)!~8d)oO*s0!kO;KQk zEmf<jYcTyi`1$*ohd<PbVWkaF!CCxG3G6cqNWus+NZ_=5<TelFRY7ib&`>h?<O;kt z7bw<5-fdJq@kCYu>Mm16>mq170F!5cM;^iTH;Dhm!{%+M!9n;%BXE8>41QLP%As5` znDQ7p>qjKSK#vIMi#?EY3Nbth%3_0CFF@}Ia+ev9p1Gp^7O0(#mG%LCZ`CK*fcAIA zW@FsLOI9FP>rKel)T?4LaErgn13STNOQp9N=5t?>=cT&gs?gqx9V06|RzM5qDC}4S z{HG!|5hguXZVkshl2r2#%Bf!JRc9o^7wSqx5j~+!DOJ1JU>}@u+8!*v0o+xGRsDpl zLhymr@HH7u&mugn0*<#KTi$?x9GXai;;w_om&4TnnAiuOaZ%-%B4C7ytcP^FgOwBT zPAZs~1ACt$5U;@zN|bRKUeE)s-3Q-Rs^YC+dut%I26}pj(3JvVjl@5vp@C###VzQd z4K(W}6h~7K1E7rea&8V-y#nJxU^yErm<O1JD8p9a-g&b4dD!S>d8vUqU<kWqri$JV zmPRUj^RRc#is7v)^-hH|75hA0LCygk7ATH<LKLNnk)QCVlS)@I@GeyK;IQH$N$t@p zxq3{!`=Z>pObx}UaZG&x!g~U-)Gc7sbFAPqq_V-|Aej6EcUnxaz78zsBNqF?R$ExQ z4BGq{jMahTW`Wys;X10i14RDU!I`+_oPK}&zR&%6ii|?p$F3wx6SB0ZY*`{wlaj46 zWtkA7=2xV#Zy^=3MMfc0RHTw6AwqU~T9qY=5%qlT?c4P`f5N%0bFS<4KJWL5t)mkS zl=53By^c)9_-;0-k5a-96T@o#z*w@b6mCV4gNt~m6WO~^Zu<xgZ<RY|VQPZjq<wHY zOz-$%xT;Sq;-T4sf*WjJsw*wT{Y!cOp4d7-%vp$zyrfl;vT3-Ehl=J|y7UFy%v^l% zXS3(x)2C^LgKTI|<Bl?UOm(@!t-RFKZn$8cirtl}T(wqF-Uial(`c?0JG_F5GNw1J z>5v;=)=L+dz_nfZ+c$jZ8=>tjy8cA*5n{thNKwV)+fW=U6Sc|}PZTJX*kSmB8yRl| zo3ik4ui;l0{3x7+zvY*;q#}(v{Ukmk(SREAO~KxIr1k{4a)Njs($7Ci9P&u^e$w+Z zZ}27|H-wWuDKb`?Zi1Mr7j+6u=Ia%lhPFAxAQ6(>*;#+sFh@7D8o!>y9UXAaNnyAR zHF>h^OH$3$u`Drjj4mvRKMm&EWVXx<Tfd_VuE_%~RKJe>c&aW7;aj5A)_ag=h&s4} z(Cg~W0m^<4+7cf~Gh#(v%<U>`eA~3jk{3N}-uM@{zQT57^UBL2NAlGD=nrqf*Fivu zNRNZJfpS%l@@L-`NKw`|p^7k~SAxA>VB4dx*b_TXCV}yyPbTq6rHL&ah?gB+6AJ_E zo<nYwgH0l7ZK@w|f;@;+1|^W<Xz?+Kw3{Zr^d{94NYNX3XQWqo8D84xJx_%m&Pwld zurGoyT?^krbVnI}^_Xer;ej`W+j+G9F{`hT2W-^Duj1-h-P~F};XdnE$I@S-j(wO> zf8@HEYMlA(R&<{;ce$t@{{^M(S1<aJ&xPtyYb9d}?UIa}f6%@oT0$o5`le=AW4<}A zIbjj^oyo{aUcN{CTEp*-L7VNwekZW~SFBhML!6{DQX;=gpRdZqo9NatQg{eoP_flw z803vFnUFAhS+<*8c}?ftBnC~w_bzeO$8ML2-FWalO3v-oOFlwkdTLfDkR?-O-g=VC zc=>OndkD~vP?Vwhk_UChdP(W<DMis<fI-K^!woRJK$qAKj9i%Qdi?6HIQ9SqIr8e( z$Sg;F*<TjU*PZDnUX5Vh7JPIts`Fv3)}fSKnt6eT*wZe9c!^g15G#EztFx;h@}=5- zsB&=<4KoIV8XCiR{NJp0j4qcmpYZ0O>3n7_9kGk+{Do67-~3q~>LXN%4WmW<B6!(N zdd8ET1v0WkiQJ7c^2qc>_*x&BFc`wTal3LzE0FDc$+ID>_bHO%BlcV(CO^=Cvt;aj zJp3Rjsn%2;AZhzGYCIX#79EZt-mmy~d-C@M{GbU8rfc->f$=9zi$!)xy>cQAJkH7B z9nfU2vi>mn869^3kIfK{Ur>)TeCjYX*M<go%GEKtPxHm(3|bk$Z%{chjy+C80~_g< zZX$0b?b4S|XhR1Lk?}9o@CC5_qng@5x#mo>f<XT@tw|S})od2kS$$#iBActm@*WX% zM>sdK7G=5IGez!gE4pQ39wI_r;S&}8ZOG8$QY0zg7NCu<iJ2vSGzH?C@dzJGF2Hpw zw0IP$JkI(>k>;m-Spqp$jNIeN@nBrDjTjErOxsF=OErV`lH_No?Egsi8y+~G<bFdb z0{T5yY9ByMuI6hd)O6HrxCnX2(TY9r{Ed2U7>r#>;VhoIL+sSYyCwfV8<k$7x=k|Y zt?uCgQ8<G}p5UWGW$R+5dx|EQGrjGiA(6%o;(NwWm&Zb3>bNr8jA-0Da?+K?XT$bq zG|N*y3}ikx)P!obJh9nv6xaKeo?FXbbN>AjcL<i}C7%|65BZ5FcHmVdT73Y+2zhL| zVmk`C)suc0+pGe+yV%ATn}$Q&CS=~095Cf}zNGtN-a>O9_M;V>TlO9v7)tztl@}qz zlxoa3l8<rt-WqZRi(TW$zs{&m!YfzhYZ2J))(l98TLUy>lVN=bzP%g%j-fhRfC1Fu zDjqydWcI{ArV969)X|)MOlcAF)G-BO0?>Ug_`<KEE8*8lQJFW>HVXEXZlA=j2GH1z zLhVbn3-Ocg)cXus=0jtDLdtV$UnfodnX;Aoma{hH&AqI7^DTAVYTo5KPrArEkCOpS zyrvVr=pj~^fl0Agd<x8bWv00@&ln*_TwkKku`uNb&ixagb%j1TD4`lIUgjB&<U%L@ zIFJ~OM>AHE3`5-b2Z_8+uKJNZ-!$v~B+5*97eL-j7CCmL;<7AeU~-*U6+)(`#v}zQ z%{51k!=WMYa~sU?Wi^iQo~di@;7yFzTH%gcgwHOtGM2S1mUg?<(r@C<BlU1A5%Gth zBlxU`=;jXAl7uM%ws94|7DJzm6+Tm`<406Jnnrt*y5-crFIo4N<_Dp*{_LwWv#4Ni zN9ck^^G~7b$aQ>1DBqFBqdLpoKR7K!6K9CV)-WqyyjccX7a5@?KYvIItoUC-9kU^F zHU1uf7n*^#3MJ)$cDxwfo2;&5lV*^i)w02h7&oE<H&Wk?be=)bEzP&zNybk&??G(N z32a5K*-6w0)@G!0F3jt$`I!KbJv1fJFzPnUj(`MPe%}FZH>wuJxat(Icfji}ihd_i zpkV2BQZ%UMUFGIXb@)herGiKJanFCyr!3ZjpPMb&_!OR+Pv^A}9>Mh4dNhAdi!X^R zjHGe)WMD1rRgD^#ux!Np)Ux0cIvXec$x$ue$m@pisH^;QgV5@@WjJCkLao7@uZVt* zu+d(w+C%Ki<ZVV`Vvyw<=sXjTJcth?I8RYg9QYK8Rfv>Vv)JLpJXD5`BhSlFg&ldc z9Rfy@A8R!8?8(1dNCyWpxu5jxP5!GCQMJ%(JDg92lP{E~JHfEEMh%CpwuA*i`z|7J z3`82y7UgrPGmoEwf4L(9)6m!je2aqSc+k_f^5A9l!U7TP$M5ao)Bi+^t5^m`jb6;E zo{z4hNwwVRFum6fEe)m5k{~ah+Ds-XjnrlePF&3@Qn}YxrtP67%-~D9tI2zL`*QaF z4u5)A+$LiFXtZFKn2?R#GlgDHxHnw3cOV@f$UgPta~R6`2@X~`@FLDE!yavL%34@G zQ5sjlPR`bMC9;h?XF;s)qFPhZ%LvBwAcbu;Q~Qu8N@DsG({r+Q8<LkKLY{&1XWVcE zT(&9EAz)musDHqjgXFz8JZcbrLt(B9J@W|re_=gb@xgmyS1#&vg)3bV&8GQY(xXuI z+AJ)-vtC);sxR_2-~}ygwTaEP5d%$F;bVUL27Q$#qmR%V<KS>QjUGp$^;qOd+%}RO zn<+d6dwW(jSjhF;s63I|?`6GT^PVR}QU|eCmBrrTz*gM;s<;GDH&hn>2MKxd-7~Uf zF<NOvj5}eI2e|S&w(W%DJitFy#@~kiBY2X8-%p7n9Y{<H8f-`&pToTgiHK3o6Y|7O z@z*C??9jshAZ43yx(;6Mc=;Acw^Rz|1AC~1O^3SYq-Z?s&5`lF!0Iebx{r+$SlBEa zoh|(CpaOkSIS^U(Vsf=Cs8cumBWCSqdrEosJy~tZ$1O$TA2xQU7-`GC-{TWL(0m`+ zkV`jc@#BYd%@C5&jUD)mNA6?xHNwq^x3{Ms*YFqZ)IHfe$cb5h<pbA<n`R>AmVB^8 z__^YhH$>k${J~NVIS-H}ebdNo4|Jj*DU;~MM;xAn^Lyc^E%#FeIVMANB)?G$ITJ;; z3MrdV@DJEKALqV@_wAHJ)i7#@l3WYzO3=G!5Wh|MCV|Zz)L}WSdqDP$gVJPWm?fA> zl0N`&DC*Y+p7&(?^Ra~&YvqcA4vVb&C~UfTZ;gK6$Tn=3KYP-U0`bpymLqslfP~rH zBMK!Ku@J2=UBvD`;foEKdwVG=>HJXKG6kPnk$uD1!a*?UH2Za#9Mhj)dr6n?;zumh zWiPn9N(UH-?@nTxgUCN9o&FN;?eU|B;^PZ^a+tid6hyl8+e+-5QMcd7;m>G-0UY1i zlCj18dxCB%nzI`gmh!4%XrSDv3KqDa?pl~>h9in#=r%I-7K}WljK2*g{&-vlbV?H6 zwu8YW^uQG!&L{R}U>c>oGXytdWy~*NY>G#G$5CfkRu)dOWad-wc7M^i1htM9f7zoS zPg#7TJRL|EYekbv>rKTgLs=EXQ`e)3KUkQf93RfCN_a0j7X3jSQ|T9qwwW;043q7c Q)*8Hv*qfH;RsUcA1BAud=l}o! literal 0 HcmV?d00001 diff --git a/Lib/test/audit-tests.py b/Lib/test/audit-tests.py index ccec9fedc4460d..66c08f7f2ff8d5 100644 --- a/Lib/test/audit-tests.py +++ b/Lib/test/audit-tests.py @@ -408,6 +408,28 @@ def hook(event, *args): raise RuntimeError("Expected sqlite3.load_extension to fail") +def test_sys_getframe(): + import sys + + def hook(event, args): + if event.startswith("sys."): + print(event, args[0].f_code.co_name) + + sys.addaudithook(hook) + sys._getframe() + + +def test_wmi_exec_query(): + import _wmi + + def hook(event, args): + if event.startswith("_wmi."): + print(event, args[0]) + + sys.addaudithook(hook) + _wmi.exec_query("SELECT * FROM Win32_OperatingSystem") + + if __name__ == "__main__": from test.support import suppress_msvcrt_asserts diff --git a/Lib/test/clinic.test b/Lib/test/clinic.test index 94322f6d61771d..c73a75b163fa37 100644 --- a/Lib/test/clinic.test +++ b/Lib/test/clinic.test @@ -1930,8 +1930,31 @@ static PyObject * test_keywords(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(a), &_Py_ID(b), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"a", "b", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "test_keywords", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "test_keywords", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; PyObject *a; PyObject *b; @@ -1950,7 +1973,7 @@ exit: static PyObject * test_keywords_impl(PyObject *module, PyObject *a, PyObject *b) -/*[clinic end generated code: output=c03a52cfca192d3b input=0d3484844749c05b]*/ +/*[clinic end generated code: output=73d46a9ae3320f96 input=0d3484844749c05b]*/ /*[clinic input] @@ -1977,8 +2000,31 @@ static PyObject * test_keywords_kwonly(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(a), &_Py_ID(b), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"a", "b", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "test_keywords_kwonly", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "test_keywords_kwonly", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; PyObject *a; PyObject *b; @@ -1997,7 +2043,7 @@ exit: static PyObject * test_keywords_kwonly_impl(PyObject *module, PyObject *a, PyObject *b) -/*[clinic end generated code: output=4704adcb6c7df928 input=384adc78bfa0bff7]*/ +/*[clinic end generated code: output=c9f02a41f425897d input=384adc78bfa0bff7]*/ /*[clinic input] @@ -2025,8 +2071,31 @@ static PyObject * test_keywords_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(a), &_Py_ID(b), &_Py_ID(c), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"a", "b", "c", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "test_keywords_opt", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "test_keywords_opt", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *a; @@ -2058,7 +2127,7 @@ exit: static PyObject * test_keywords_opt_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c) -/*[clinic end generated code: output=de3ee1039da35fa1 input=eda7964f784f4607]*/ +/*[clinic end generated code: output=b35d4e66f7283e46 input=eda7964f784f4607]*/ /*[clinic input] @@ -2088,8 +2157,31 @@ static PyObject * test_keywords_opt_kwonly(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 4 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(a), &_Py_ID(b), &_Py_ID(c), &_Py_ID(d), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"a", "b", "c", "d", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "test_keywords_opt_kwonly", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "test_keywords_opt_kwonly", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *a; @@ -2132,7 +2224,7 @@ exit: static PyObject * test_keywords_opt_kwonly_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c, PyObject *d) -/*[clinic end generated code: output=996394678586854e input=209387a4815e5082]*/ +/*[clinic end generated code: output=ede7e6e65106bf2b input=209387a4815e5082]*/ /*[clinic input] @@ -2161,8 +2253,31 @@ static PyObject * test_keywords_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(a), &_Py_ID(b), &_Py_ID(c), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"a", "b", "c", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "test_keywords_kwonly_opt", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "test_keywords_kwonly_opt", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *a; @@ -2194,7 +2309,7 @@ exit: static PyObject * test_keywords_kwonly_opt_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c) -/*[clinic end generated code: output=4ea9947a903a2f24 input=18393cc64fa000f4]*/ +/*[clinic end generated code: output=36d4df939a4c3eef input=18393cc64fa000f4]*/ /*[clinic input] @@ -2221,8 +2336,31 @@ static PyObject * test_posonly_keywords(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(b), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "b", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "test_posonly_keywords", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "test_posonly_keywords", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; PyObject *a; PyObject *b; @@ -2241,7 +2379,7 @@ exit: static PyObject * test_posonly_keywords_impl(PyObject *module, PyObject *a, PyObject *b) -/*[clinic end generated code: output=478aad346a188a80 input=1767b0ebdf06060e]*/ +/*[clinic end generated code: output=4835f4b6cf386c28 input=1767b0ebdf06060e]*/ /*[clinic input] @@ -2269,8 +2407,31 @@ static PyObject * test_posonly_kwonly(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(c), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "c", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "test_posonly_kwonly", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "test_posonly_kwonly", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; PyObject *a; PyObject *c; @@ -2289,7 +2450,7 @@ exit: static PyObject * test_posonly_kwonly_impl(PyObject *module, PyObject *a, PyObject *c) -/*[clinic end generated code: output=d747975a0b28e9c2 input=9042f2818f664839]*/ +/*[clinic end generated code: output=2570ea156a8d3cb5 input=9042f2818f664839]*/ /*[clinic input] @@ -2319,8 +2480,31 @@ static PyObject * test_posonly_keywords_kwonly(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(b), &_Py_ID(c), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "b", "c", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "test_posonly_keywords_kwonly", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "test_posonly_keywords_kwonly", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; PyObject *a; PyObject *b; @@ -2342,7 +2526,7 @@ exit: static PyObject * test_posonly_keywords_kwonly_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c) -/*[clinic end generated code: output=5b99f692f8ddaa4a input=29546ebdca492fea]*/ +/*[clinic end generated code: output=aaa0e6b5ce02900d input=29546ebdca492fea]*/ /*[clinic input] @@ -2372,8 +2556,31 @@ static PyObject * test_posonly_keywords_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(b), &_Py_ID(c), &_Py_ID(d), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "b", "c", "d", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "test_posonly_keywords_opt", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "test_posonly_keywords_opt", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; PyObject *a; @@ -2407,7 +2614,7 @@ exit: static PyObject * test_posonly_keywords_opt_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c, PyObject *d) -/*[clinic end generated code: output=fd5dfbac5727aebb input=cdf5a9625e554e9b]*/ +/*[clinic end generated code: output=1d9f2d8420d0a85f input=cdf5a9625e554e9b]*/ /*[clinic input] @@ -2436,8 +2643,31 @@ static PyObject * test_posonly_keywords_opt2(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(b), &_Py_ID(c), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "b", "c", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "test_posonly_keywords_opt2", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "test_posonly_keywords_opt2", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *a; @@ -2469,7 +2699,7 @@ exit: static PyObject * test_posonly_keywords_opt2_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c) -/*[clinic end generated code: output=777f58ac70775420 input=1581299d21d16f14]*/ +/*[clinic end generated code: output=a83caa0505b296cf input=1581299d21d16f14]*/ /*[clinic input] @@ -2499,8 +2729,31 @@ static PyObject * test_posonly_opt_keywords_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(c), &_Py_ID(d), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "", "c", "d", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "test_posonly_opt_keywords_opt", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "test_posonly_opt_keywords_opt", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *a; @@ -2539,7 +2792,7 @@ exit: static PyObject * test_posonly_opt_keywords_opt_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c, PyObject *d) -/*[clinic end generated code: output=2c18b8edff78ed22 input=408798ec3d42949f]*/ +/*[clinic end generated code: output=0b24fba3dc04d26b input=408798ec3d42949f]*/ /*[clinic input] @@ -2570,8 +2823,31 @@ static PyObject * test_posonly_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(b), &_Py_ID(c), &_Py_ID(d), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "b", "c", "d", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "test_posonly_kwonly_opt", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "test_posonly_kwonly_opt", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; PyObject *a; @@ -2605,7 +2881,7 @@ exit: static PyObject * test_posonly_kwonly_opt_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c, PyObject *d) -/*[clinic end generated code: output=8db9ab5602e1efaf input=8d8e5643bbbc2309]*/ +/*[clinic end generated code: output=592b217bca2f7bcc input=8d8e5643bbbc2309]*/ /*[clinic input] @@ -2635,8 +2911,31 @@ static PyObject * test_posonly_kwonly_opt2(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(b), &_Py_ID(c), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "b", "c", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "test_posonly_kwonly_opt2", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "test_posonly_kwonly_opt2", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *a; @@ -2668,7 +2967,7 @@ exit: static PyObject * test_posonly_kwonly_opt2_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c) -/*[clinic end generated code: output=6cfe546265d85d2c input=f7e5eed94f75fff0]*/ +/*[clinic end generated code: output=b8b00420826bc11f input=f7e5eed94f75fff0]*/ /*[clinic input] @@ -2699,8 +2998,31 @@ static PyObject * test_posonly_opt_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(c), &_Py_ID(d), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "", "c", "d", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "test_posonly_opt_kwonly_opt", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "test_posonly_opt_kwonly_opt", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *a; @@ -2739,7 +3061,7 @@ exit: static PyObject * test_posonly_opt_kwonly_opt_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c, PyObject *d) -/*[clinic end generated code: output=8b5e21a30cad22b7 input=1e557dc979d120fd]*/ +/*[clinic end generated code: output=3b9ee879ebee285a input=1e557dc979d120fd]*/ /*[clinic input] @@ -2772,8 +3094,31 @@ static PyObject * test_posonly_keywords_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 4 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(b), &_Py_ID(c), &_Py_ID(d), &_Py_ID(e), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "b", "c", "d", "e", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "test_posonly_keywords_kwonly_opt", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "test_posonly_keywords_kwonly_opt", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3; PyObject *a; @@ -2810,7 +3155,7 @@ static PyObject * test_posonly_keywords_kwonly_opt_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c, PyObject *d, PyObject *e) -/*[clinic end generated code: output=950b9ace38b8b4a7 input=c3884a4f956fdc89]*/ +/*[clinic end generated code: output=d380f84f81cc0e45 input=c3884a4f956fdc89]*/ /*[clinic input] @@ -2841,8 +3186,31 @@ static PyObject * test_posonly_keywords_kwonly_opt2(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(b), &_Py_ID(c), &_Py_ID(d), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "b", "c", "d", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "test_posonly_keywords_kwonly_opt2", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "test_posonly_keywords_kwonly_opt2", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; PyObject *a; @@ -2876,7 +3244,7 @@ exit: static PyObject * test_posonly_keywords_kwonly_opt2_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c, PyObject *d) -/*[clinic end generated code: output=fb6951a21b517317 input=68d01d7c0f6dafb0]*/ +/*[clinic end generated code: output=ee629e962cb06992 input=68d01d7c0f6dafb0]*/ /*[clinic input] @@ -2910,8 +3278,31 @@ static PyObject * test_posonly_keywords_opt_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 4 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(b), &_Py_ID(c), &_Py_ID(d), &_Py_ID(e), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "b", "c", "d", "e", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "test_posonly_keywords_opt_kwonly_opt", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "test_posonly_keywords_opt_kwonly_opt", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; PyObject *a; @@ -2957,7 +3348,7 @@ static PyObject * test_posonly_keywords_opt_kwonly_opt_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c, PyObject *d, PyObject *e) -/*[clinic end generated code: output=4db10815a99a857e input=d0883d45876f186c]*/ +/*[clinic end generated code: output=a2721babb42ecfd1 input=d0883d45876f186c]*/ /*[clinic input] @@ -2991,8 +3382,31 @@ static PyObject * test_posonly_keywords_opt2_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 4 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(b), &_Py_ID(c), &_Py_ID(d), &_Py_ID(e), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "b", "c", "d", "e", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "test_posonly_keywords_opt2_kwonly_opt", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "test_posonly_keywords_opt2_kwonly_opt", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *a; @@ -3043,7 +3457,7 @@ static PyObject * test_posonly_keywords_opt2_kwonly_opt_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c, PyObject *d, PyObject *e) -/*[clinic end generated code: output=0416689b23ebf66e input=c95e2e1ec93035ad]*/ +/*[clinic end generated code: output=0626203eedb6e7e8 input=c95e2e1ec93035ad]*/ /*[clinic input] @@ -3079,8 +3493,31 @@ static PyObject * test_posonly_opt_keywords_opt_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 4 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(c), &_Py_ID(d), &_Py_ID(e), &_Py_ID(f), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "", "c", "d", "e", "f", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "test_posonly_opt_keywords_opt_kwonly_opt", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "test_posonly_opt_keywords_opt_kwonly_opt", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[6]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *a; @@ -3139,7 +3576,7 @@ test_posonly_opt_keywords_opt_kwonly_opt_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c, PyObject *d, PyObject *e, PyObject *f) -/*[clinic end generated code: output=8892a137a8c8f46f input=9914857713c5bbf8]*/ +/*[clinic end generated code: output=07d8acc04558a5a0 input=9914857713c5bbf8]*/ /*[clinic input] test_keyword_only_parameter @@ -3165,8 +3602,31 @@ static PyObject * test_keyword_only_parameter(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(co_lnotab), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"co_lnotab", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "test_keyword_only_parameter", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "test_keyword_only_parameter", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyBytesObject *co_lnotab = (PyBytesObject *)self->co_lnotab; @@ -3192,7 +3652,7 @@ exit: static PyObject * test_keyword_only_parameter_impl(PyObject *module, PyBytesObject *co_lnotab) -/*[clinic end generated code: output=332b5f4b444c5d55 input=303df5046c7e37a3]*/ +/*[clinic end generated code: output=b12fe2e515a62603 input=303df5046c7e37a3]*/ /*[clinic input] @@ -3370,8 +3830,31 @@ static PyObject * test_vararg(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(a), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"a", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "test_vararg", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "test_vararg", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = 0 + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *a; @@ -3392,7 +3875,7 @@ exit: static PyObject * test_vararg_impl(PyObject *module, PyObject *a, PyObject *args) -/*[clinic end generated code: output=a2baf8c1fade41d2 input=81d33815ad1bae6e]*/ +/*[clinic end generated code: output=6661f3ca97d85e8c input=81d33815ad1bae6e]*/ /*[clinic input] test_vararg_with_default @@ -3420,8 +3903,31 @@ static PyObject * test_vararg_with_default(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(a), &_Py_ID(b), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"a", "b", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "test_vararg_with_default", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "test_vararg_with_default", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = 0 + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *a; @@ -3452,7 +3958,7 @@ exit: static PyObject * test_vararg_with_default_impl(PyObject *module, PyObject *a, PyObject *args, int b) -/*[clinic end generated code: output=3821d282c29f8616 input=6e110b54acd9b22d]*/ +/*[clinic end generated code: output=5fe3cfccb1bef781 input=6e110b54acd9b22d]*/ /*[clinic input] test_vararg_with_only_defaults @@ -3480,8 +3986,31 @@ static PyObject * test_vararg_with_only_defaults(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(b), &_Py_ID(c), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"b", "c", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "test_vararg_with_only_defaults", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "test_vararg_with_only_defaults", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = 0 + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *__clinic_args = NULL; @@ -3517,4 +4046,68 @@ exit: static PyObject * test_vararg_with_only_defaults_impl(PyObject *module, PyObject *args, int b, PyObject *c) -/*[clinic end generated code: output=7e393689e6ce61a3 input=fa56a709a035666e]*/ +/*[clinic end generated code: output=dd21b28f0db26a4b input=fa56a709a035666e]*/ + +/*[clinic input] +test_paramname_module + + module as mod: object +[clinic start generated code]*/ + +PyDoc_STRVAR(test_paramname_module__doc__, +"test_paramname_module($module, /, module)\n" +"--\n" +"\n"); + +#define TEST_PARAMNAME_MODULE_METHODDEF \ + {"test_paramname_module", _PyCFunction_CAST(test_paramname_module), METH_FASTCALL|METH_KEYWORDS, test_paramname_module__doc__}, + +static PyObject * +test_paramname_module_impl(PyObject *module, PyObject *mod); + +static PyObject * +test_paramname_module(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) +{ + PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(module), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + + static const char * const _keywords[] = {"module", NULL}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "test_paramname_module", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE + PyObject *argsbuf[1]; + PyObject *mod; + + args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf); + if (!args) { + goto exit; + } + mod = args[0]; + return_value = test_paramname_module_impl(module, mod); + +exit: + return return_value; +} + +static PyObject * +test_paramname_module_impl(PyObject *module, PyObject *mod) +/*[clinic end generated code: output=4a2a849ecbcc8b53 input=afefe259667f13ba]*/ diff --git a/Lib/test/crashers/infinite_loop_re.py b/Lib/test/crashers/infinite_loop_re.py index 9aecc568d91fe0..c84f28d601f865 100644 --- a/Lib/test/crashers/infinite_loop_re.py +++ b/Lib/test/crashers/infinite_loop_re.py @@ -1,5 +1,5 @@ -# This was taken from http://python.org/sf/1541697 +# This was taken from https://bugs.python.org/issue1541697 # It's not technically a crasher. It may not even truly be infinite, # however, I haven't waited a long time to see the result. It takes # 100% of CPU while running this and should be fixed. diff --git a/Lib/test/datetimetester.py b/Lib/test/datetimetester.py index 8e4bcc7c9efdca..bba96698e9e2eb 100644 --- a/Lib/test/datetimetester.py +++ b/Lib/test/datetimetester.py @@ -1,13 +1,12 @@ """Test date/time type. -See http://www.zope.org/Members/fdrake/DateTimeWiki/TestCases +See https://www.zope.dev/Members/fdrake/DateTimeWiki/TestCases """ import io import itertools import bisect import copy import decimal -import functools import sys import os import pickle @@ -1464,8 +1463,8 @@ def test_strftime(self): # test that unicode input is allowed (issue 2782) self.assertEqual(t.strftime("%m"), "03") - # A naive object replaces %z and %Z w/ empty strings. - self.assertEqual(t.strftime("'%z' '%Z'"), "'' ''") + # A naive object replaces %z, %:z and %Z w/ empty strings. + self.assertEqual(t.strftime("'%z' '%:z' '%Z'"), "'' '' ''") #make sure that invalid format specifiers are handled correctly #self.assertRaises(ValueError, t.strftime, "%e") @@ -1529,7 +1528,7 @@ def strftime(self, format_spec): for fmt in ["m:%m d:%d y:%y", "m:%m d:%d y:%y H:%H M:%M S:%S", - "%z %Z", + "%z %:z %Z", ]: self.assertEqual(dt.__format__(fmt), dt.strftime(fmt)) self.assertEqual(a.__format__(fmt), dt.strftime(fmt)) @@ -2135,7 +2134,7 @@ def strftime(self, format_spec): for fmt in ["m:%m d:%d y:%y", "m:%m d:%d y:%y H:%H M:%M S:%S", - "%z %Z", + "%z %:z %Z", ]: self.assertEqual(dt.__format__(fmt), dt.strftime(fmt)) self.assertEqual(a.__format__(fmt), dt.strftime(fmt)) @@ -2778,6 +2777,7 @@ def test_more_strftime(self): tz = timezone(-timedelta(hours=2, seconds=s, microseconds=us)) t = t.replace(tzinfo=tz) self.assertEqual(t.strftime("%z"), "-0200" + z) + self.assertEqual(t.strftime("%:z"), "-02:00:" + z) # bpo-34482: Check that surrogates don't cause a crash. try: @@ -3516,8 +3516,8 @@ def test_1653736(self): def test_strftime(self): t = self.theclass(1, 2, 3, 4) self.assertEqual(t.strftime('%H %M %S %f'), "01 02 03 000004") - # A naive object replaces %z and %Z with empty strings. - self.assertEqual(t.strftime("'%z' '%Z'"), "'' ''") + # A naive object replaces %z, %:z and %Z with empty strings. + self.assertEqual(t.strftime("'%z' '%:z' '%Z'"), "'' '' ''") # bpo-34482: Check that surrogates don't cause a crash. try: @@ -3935,10 +3935,10 @@ def test_zones(self): self.assertEqual(repr(t4), d + "(0, 0, 0, 40)") self.assertEqual(repr(t5), d + "(0, 0, 0, 40, tzinfo=utc)") - self.assertEqual(t1.strftime("%H:%M:%S %%Z=%Z %%z=%z"), - "07:47:00 %Z=EST %z=-0500") - self.assertEqual(t2.strftime("%H:%M:%S %Z %z"), "12:47:00 UTC +0000") - self.assertEqual(t3.strftime("%H:%M:%S %Z %z"), "13:47:00 MET +0100") + self.assertEqual(t1.strftime("%H:%M:%S %%Z=%Z %%z=%z %%:z=%:z"), + "07:47:00 %Z=EST %z=-0500 %:z=-05:00") + self.assertEqual(t2.strftime("%H:%M:%S %Z %z %:z"), "12:47:00 UTC +0000 +00:00") + self.assertEqual(t3.strftime("%H:%M:%S %Z %z %:z"), "13:47:00 MET +0100 +01:00") yuck = FixedOffset(-1439, "%z %Z %%z%%Z") t1 = time(23, 59, tzinfo=yuck) diff --git a/Lib/test/fork_wait.py b/Lib/test/fork_wait.py index 4d3dbd8e83f5a9..ebd07e612e5810 100644 --- a/Lib/test/fork_wait.py +++ b/Lib/test/fork_wait.py @@ -54,10 +54,8 @@ def test_wait(self): self.threads.append(thread) # busy-loop to wait for threads - deadline = time.monotonic() + support.SHORT_TIMEOUT - while len(self.alive) < NUM_THREADS: - time.sleep(0.1) - if deadline < time.monotonic(): + for _ in support.sleeping_retry(support.SHORT_TIMEOUT): + if len(self.alive) >= NUM_THREADS: break a = sorted(self.alive.keys()) diff --git a/Lib/test/leakers/test_ctypes.py b/Lib/test/leakers/test_ctypes.py index 7d7e9ff3a11129..ec09ac36996b0c 100644 --- a/Lib/test/leakers/test_ctypes.py +++ b/Lib/test/leakers/test_ctypes.py @@ -1,5 +1,5 @@ -# Taken from Lib/ctypes/test/test_keeprefs.py, PointerToStructure.test(). +# Taken from Lib/test/test_ctypes/test_keeprefs.py, PointerToStructure.test(). from ctypes import Structure, c_int, POINTER import gc diff --git a/Lib/test/libregrtest/cmdline.py b/Lib/test/libregrtest/cmdline.py index 1ac63af734c412..ebe57920d9185c 100644 --- a/Lib/test/libregrtest/cmdline.py +++ b/Lib/test/libregrtest/cmdline.py @@ -1,5 +1,6 @@ import argparse import os +import shlex import sys from test.support import os_helper @@ -372,8 +373,11 @@ def _parse_args(args, **kwargs): parser.error("-s and -f don't go together!") if ns.use_mp is not None and ns.trace: parser.error("-T and -j don't go together!") - if ns.python is not None and ns.use_mp is None: - parser.error("-p requires -j!") + if ns.python is not None: + if ns.use_mp is None: + parser.error("-p requires -j!") + # The "executable" may be two or more parts, e.g. "node python.js" + ns.python = shlex.split(ns.python) if ns.failfast and not (ns.verbose or ns.verbose3): parser.error("-G/--failfast needs either -v or -W") if ns.pgo and (ns.verbose or ns.verbose2 or ns.verbose3): diff --git a/Lib/test/libregrtest/main.py b/Lib/test/libregrtest/main.py index 0cacccfc0b5e39..655e4d2e56f8f0 100644 --- a/Lib/test/libregrtest/main.py +++ b/Lib/test/libregrtest/main.py @@ -306,13 +306,22 @@ def list_cases(self): printlist(self.skipped, file=sys.stderr) def rerun_failed_tests(self): + self.log() + + if self.ns.python: + # Temp patch for https://github.com/python/cpython/issues/94052 + self.log( + "Re-running failed tests is not supported with --python " + "host runner option." + ) + return + self.ns.verbose = True self.ns.failfast = False self.ns.verbose3 = False self.first_result = self.get_tests_result() - self.log() self.log("Re-running failed tests in verbose mode") rerun_list = list(self.need_rerun) self.need_rerun.clear() @@ -600,6 +609,16 @@ def save_xml_result(self): for s in ET.tostringlist(root): f.write(s) + def fix_umask(self): + if support.is_emscripten: + # Emscripten has default umask 0o777, which breaks some tests. + # see https://github.com/emscripten-core/emscripten/issues/17269 + old_mask = os.umask(0) + if old_mask == 0o777: + os.umask(0o027) + else: + os.umask(old_mask) + def set_temp_dir(self): if self.ns.tempdir: self.tmp_dir = self.ns.tempdir @@ -628,11 +647,16 @@ def create_temp_dir(self): # Define a writable temp dir that will be used as cwd while running # the tests. The name of the dir includes the pid to allow parallel # testing (see the -j option). - pid = os.getpid() + # Emscripten and WASI have stubbed getpid(), Emscripten has only + # milisecond clock resolution. Use randint() instead. + if sys.platform in {"emscripten", "wasi"}: + nounce = random.randint(0, 1_000_000) + else: + nounce = os.getpid() if self.worker_test_name is not None: - test_cwd = 'test_python_worker_{}'.format(pid) + test_cwd = 'test_python_worker_{}'.format(nounce) else: - test_cwd = 'test_python_{}'.format(pid) + test_cwd = 'test_python_{}'.format(nounce) test_cwd += os_helper.FS_NONASCII test_cwd = os.path.join(self.tmp_dir, test_cwd) return test_cwd @@ -655,6 +679,8 @@ def main(self, tests=None, **kwargs): self.set_temp_dir() + self.fix_umask() + if self.ns.cleanup: self.cleanup() sys.exit(0) diff --git a/Lib/test/libregrtest/runtest.py b/Lib/test/libregrtest/runtest.py index 62cf1a3f1175ee..e9bb72a7d77ee1 100644 --- a/Lib/test/libregrtest/runtest.py +++ b/Lib/test/libregrtest/runtest.py @@ -80,6 +80,11 @@ class EnvChanged(Failed): def __str__(self) -> str: return f"{self.name} failed (env changed)" + # Convert Passed to EnvChanged + @staticmethod + def from_passed(other): + return EnvChanged(other.name, other.duration_sec, other.xml_data) + class RefLeak(Failed): def __str__(self) -> str: diff --git a/Lib/test/libregrtest/runtest_mp.py b/Lib/test/libregrtest/runtest_mp.py index 39fab5566a089a..a4d3e5c3146a8c 100644 --- a/Lib/test/libregrtest/runtest_mp.py +++ b/Lib/test/libregrtest/runtest_mp.py @@ -1,15 +1,15 @@ import faulthandler import json -import os +import os.path import queue -import shlex import signal import subprocess import sys +import tempfile import threading import time import traceback -from typing import NamedTuple, NoReturn, Literal, Any +from typing import NamedTuple, NoReturn, Literal, Any, TextIO from test import support from test.support import os_helper @@ -17,7 +17,8 @@ from test.libregrtest.cmdline import Namespace from test.libregrtest.main import Regrtest from test.libregrtest.runtest import ( - runtest, is_failed, TestResult, Interrupted, Timeout, ChildError, PROGRESS_MIN_TIME) + runtest, is_failed, TestResult, Interrupted, Timeout, ChildError, + PROGRESS_MIN_TIME, Passed, EnvChanged) from test.libregrtest.setup import setup_tests from test.libregrtest.utils import format_duration, print_warning @@ -52,13 +53,12 @@ def parse_worker_args(worker_args) -> tuple[Namespace, str]: return (ns, test_name) -def run_test_in_subprocess(testname: str, ns: Namespace) -> subprocess.Popen: +def run_test_in_subprocess(testname: str, ns: Namespace, tmp_dir: str, stdout_fh: TextIO) -> subprocess.Popen: ns_dict = vars(ns) worker_args = (ns_dict, testname) worker_args = json.dumps(worker_args) if ns.python is not None: - # The "executable" may be two or more parts, e.g. "node python.js" - executable = shlex.split(ns.python) + executable = ns.python else: executable = [sys.executable] cmd = [*executable, *support.args_from_interpreter_flags(), @@ -66,21 +66,27 @@ def run_test_in_subprocess(testname: str, ns: Namespace) -> subprocess.Popen: '-m', 'test.regrtest', '--worker-args', worker_args] + env = dict(os.environ) + if tmp_dir is not None: + env['TMPDIR'] = tmp_dir + env['TEMP'] = tmp_dir + env['TMP'] = tmp_dir + # Running the child from the same working directory as regrtest's original # invocation ensures that TEMPDIR for the child is the same when # sysconfig.is_python_build() is true. See issue 15300. - kw = {} + kw = dict( + env=env, + stdout=stdout_fh, + # bpo-45410: Write stderr into stdout to keep messages order + stderr=stdout_fh, + text=True, + close_fds=(os.name != 'nt'), + cwd=os_helper.SAVEDCWD, + ) if USE_PROCESS_GROUP: kw['start_new_session'] = True - return subprocess.Popen(cmd, - stdout=subprocess.PIPE, - # bpo-45410: Write stderr into stdout to keep - # messages order - stderr=subprocess.STDOUT, - universal_newlines=True, - close_fds=(os.name != 'nt'), - cwd=os_helper.SAVEDCWD, - **kw) + return subprocess.Popen(cmd, **kw) def run_tests_worker(ns: Namespace, test_name: str) -> NoReturn: @@ -206,12 +212,12 @@ def mp_result_error( test_result.duration_sec = time.monotonic() - self.start_time return MultiprocessResult(test_result, stdout, err_msg) - def _run_process(self, test_name: str) -> tuple[int, str, str]: + def _run_process(self, test_name: str, tmp_dir: str, stdout_fh: TextIO) -> int: self.start_time = time.monotonic() self.current_test_name = test_name try: - popen = run_test_in_subprocess(test_name, self.ns) + popen = run_test_in_subprocess(test_name, self.ns, tmp_dir, stdout_fh) self._killed = False self._popen = popen @@ -228,10 +234,10 @@ def _run_process(self, test_name: str) -> tuple[int, str, str]: raise ExitThread try: - # bpo-45410: stderr is written into stdout - stdout, _ = popen.communicate(timeout=self.timeout) - retcode = popen.returncode + # gh-94026: stdout+stderr are written to tempfile + retcode = popen.wait(timeout=self.timeout) assert retcode is not None + return retcode except subprocess.TimeoutExpired: if self._stopped: # kill() has been called: communicate() fails on reading @@ -246,17 +252,12 @@ def _run_process(self, test_name: str) -> tuple[int, str, str]: # bpo-38207: Don't attempt to call communicate() again: on it # can hang until all child processes using stdout # pipes completes. - stdout = '' except OSError: if self._stopped: # kill() has been called: communicate() fails # on reading closed stdout raise ExitThread raise - else: - stdout = stdout.strip() - - return (retcode, stdout) except: self._kill() raise @@ -266,7 +267,30 @@ def _run_process(self, test_name: str) -> tuple[int, str, str]: self.current_test_name = None def _runtest(self, test_name: str) -> MultiprocessResult: - retcode, stdout = self._run_process(test_name) + # gh-94026: Write stdout+stderr to a tempfile as workaround for + # non-blocking pipes on Emscripten with NodeJS. + with tempfile.TemporaryFile( + 'w+', encoding=sys.stdout.encoding + ) as stdout_fh: + # gh-93353: Check for leaked temporary files in the parent process, + # since the deletion of temporary files can happen late during + # Python finalization: too late for libregrtest. + if not support.is_wasi: + # Don't check for leaked temporary files and directories if Python is + # run on WASI. WASI don't pass environment variables like TMPDIR to + # worker processes. + tmp_dir = tempfile.mkdtemp(prefix="test_python_") + tmp_dir = os.path.abspath(tmp_dir) + try: + retcode = self._run_process(test_name, tmp_dir, stdout_fh) + finally: + tmp_files = os.listdir(tmp_dir) + os_helper.rmtree(tmp_dir) + else: + retcode = self._run_process(test_name, None, stdout_fh) + tmp_files = () + stdout_fh.seek(0) + stdout = stdout_fh.read().strip() if retcode is None: return self.mp_result_error(Timeout(test_name), stdout) @@ -289,6 +313,14 @@ def _runtest(self, test_name: str) -> MultiprocessResult: if err_msg is not None: return self.mp_result_error(ChildError(test_name), stdout, err_msg) + if tmp_files: + msg = (f'\n\n' + f'Warning -- {test_name} leaked temporary files ' + f'({len(tmp_files)}): {", ".join(sorted(tmp_files))}') + stdout += msg + if isinstance(result, Passed): + result = EnvChanged.from_passed(result) + return MultiprocessResult(result, stdout, err_msg) def run(self) -> None: @@ -313,9 +345,6 @@ def run(self) -> None: def _wait_completed(self) -> None: popen = self._popen - # stdout must be closed to ensure that communicate() does not hang - popen.stdout.close() - try: popen.wait(JOIN_TIMEOUT) except (subprocess.TimeoutExpired, OSError) as exc: diff --git a/Lib/test/libregrtest/setup.py b/Lib/test/libregrtest/setup.py index cfc1b82d2785cb..b76bece7ca08b5 100644 --- a/Lib/test/libregrtest/setup.py +++ b/Lib/test/libregrtest/setup.py @@ -141,7 +141,7 @@ def _adjust_resource_limits(): """Adjust the system resource limits (ulimit) if needed.""" try: import resource - from resource import RLIMIT_NOFILE, RLIM_INFINITY + from resource import RLIMIT_NOFILE except ImportError: return fd_limit, max_fds = resource.getrlimit(RLIMIT_NOFILE) @@ -157,4 +157,3 @@ def _adjust_resource_limits(): except (ValueError, OSError) as err: print(f"Unable to raise RLIMIT_NOFILE from {fd_limit} to " f"{new_fd_limit}: {err}.") - diff --git a/Lib/test/libregrtest/utils.py b/Lib/test/libregrtest/utils.py index 8578a028c78bc2..332dcc4c6db247 100644 --- a/Lib/test/libregrtest/utils.py +++ b/Lib/test/libregrtest/utils.py @@ -210,3 +210,10 @@ def clear_caches(): else: for f in typing._cleanups: f() + + try: + fractions = sys.modules['fractions'] + except KeyError: + pass + else: + fractions._hash_algorithm.cache_clear() diff --git a/Lib/test/list_tests.py b/Lib/test/list_tests.py index f7eea88c54a6ae..fe3ee80b8d461f 100644 --- a/Lib/test/list_tests.py +++ b/Lib/test/list_tests.py @@ -3,10 +3,9 @@ """ import sys -import os from functools import cmp_to_key -from test import support, seq_tests +from test import seq_tests from test.support import ALWAYS_EQ, NEVER_EQ diff --git a/Lib/test/lock_tests.py b/Lib/test/lock_tests.py index f16c7ed952cf55..a4f52cb20ad301 100644 --- a/Lib/test/lock_tests.py +++ b/Lib/test/lock_tests.py @@ -2,7 +2,6 @@ Various tests for synchronization primitives. """ -import os import gc import sys import time diff --git a/Lib/test/mock_socket.py b/Lib/test/mock_socket.py index c7abddcf5fafd3..b85b955d7f6654 100644 --- a/Lib/test/mock_socket.py +++ b/Lib/test/mock_socket.py @@ -1,4 +1,4 @@ -"""Mock socket module used by the smtpd and smtplib tests. +"""Mock socket module used by the smtplib tests. """ # imported for _GLOBAL_DEFAULT_TIMEOUT @@ -33,7 +33,7 @@ def close(self): class MockSocket: - """Mock socket object used by smtpd and smtplib tests. + """Mock socket object used by the smtplib tests. """ def __init__(self, family=None): global _reply_data diff --git a/Lib/test/pickletester.py b/Lib/test/pickletester.py index d0ea7d0e55e7d5..21419e11c87497 100644 --- a/Lib/test/pickletester.py +++ b/Lib/test/pickletester.py @@ -3035,6 +3035,67 @@ def check_array(arr): # 2-D, non-contiguous check_array(arr[::2]) + def test_evil_class_mutating_dict(self): + # https://github.com/python/cpython/issues/92930 + from random import getrandbits + + global Bad + class Bad: + def __eq__(self, other): + return ENABLED + def __hash__(self): + return 42 + def __reduce__(self): + if getrandbits(6) == 0: + collection.clear() + return (Bad, ()) + + for proto in protocols: + for _ in range(20): + ENABLED = False + collection = {Bad(): Bad() for _ in range(20)} + for bad in collection: + bad.bad = bad + bad.collection = collection + ENABLED = True + try: + data = self.dumps(collection, proto) + self.loads(data) + except RuntimeError as e: + expected = "changed size during iteration" + self.assertIn(expected, str(e)) + + def test_evil_pickler_mutating_collection(self): + # https://github.com/python/cpython/issues/92930 + if not hasattr(self, "pickler"): + raise self.skipTest(f"{type(self)} has no associated pickler type") + + global Clearer + class Clearer: + pass + + def check(collection): + class EvilPickler(self.pickler): + def persistent_id(self, obj): + if isinstance(obj, Clearer): + collection.clear() + return None + pickler = EvilPickler(io.BytesIO(), proto) + try: + pickler.dump(collection) + except RuntimeError as e: + expected = "changed size during iteration" + self.assertIn(expected, str(e)) + + for proto in protocols: + check([Clearer()]) + check([Clearer(), Clearer()]) + check({Clearer()}) + check({Clearer(), Clearer()}) + check({Clearer(): 1}) + check({Clearer(): 1, Clearer(): 2}) + check({1: Clearer(), 2: Clearer()}) + class BigmemPickleTests: diff --git a/Lib/test/pythoninfo.py b/Lib/test/pythoninfo.py index ca57965bcf1056..adc211b3e2169c 100644 --- a/Lib/test/pythoninfo.py +++ b/Lib/test/pythoninfo.py @@ -144,7 +144,7 @@ def collect_sys(info_add): text = 'Yes (sys.getobjects() present)' else: text = 'No (sys.getobjects() missing)' - info_add('build.Py_REF_DEBUG', text) + info_add('build.Py_TRACE_REFS', text) def collect_platform(info_add): @@ -588,8 +588,8 @@ def collect_socket(info_add): try: hostname = socket.gethostname() - except OSError: - # WASI SDK 15.0 does not have gethostname(2). + except (OSError, AttributeError): + # WASI SDK 16.0 does not have gethostname(2). if sys.platform != "wasi": raise else: @@ -602,7 +602,7 @@ def collect_sqlite(info_add): except ImportError: return - attributes = ('version', 'sqlite_version') + attributes = ('sqlite_version',) copy_attributes(info_add, sqlite3, 'sqlite3.%s', attributes) diff --git a/Lib/test/setup_testcppext.py b/Lib/test/setup_testcppext.py index 780cb7b24a78c9..c6b68104d1333c 100644 --- a/Lib/test/setup_testcppext.py +++ b/Lib/test/setup_testcppext.py @@ -13,16 +13,10 @@ if not MS_WINDOWS: # C++ compiler flags for GCC and clang CPPFLAGS = [ - # Python currently targets C++11 - '-std=c++11', # gh-91321: The purpose of _testcppext extension is to check that building # a C++ extension using the Python C API does not emit C++ compiler # warnings '-Werror', - # Warn on old-style cast (C cast) like: (PyObject*)op - '-Wold-style-cast', - # Warn when using NULL rather than _Py_NULL in static inline functions - '-Wzero-as-null-pointer-constant', ] else: # Don't pass any compiler flag to MSVC @@ -30,12 +24,24 @@ def main(): + cppflags = list(CPPFLAGS) + if '-std=c++03' in sys.argv: + sys.argv.remove('-std=c++03') + std = 'c++03' + name = '_testcpp03ext' + else: + # Python currently targets C++11 + std = 'c++11' + name = '_testcpp11ext' + + cppflags = [*CPPFLAGS, f'-std={std}'] + cpp_ext = Extension( - '_testcppext', + name, sources=[SOURCE], language='c++', - extra_compile_args=CPPFLAGS) - setup(name="_testcppext", ext_modules=[cpp_ext]) + extra_compile_args=cppflags) + setup(name='internal' + name, version='0.0', ext_modules=[cpp_ext]) if __name__ == "__main__": diff --git a/Lib/test/signalinterproctester.py b/Lib/test/signalinterproctester.py index bc60b747f71680..cdcd92a8baace6 100644 --- a/Lib/test/signalinterproctester.py +++ b/Lib/test/signalinterproctester.py @@ -28,16 +28,15 @@ def wait_signal(self, child, signame): # (if set) child.wait() - timeout = support.SHORT_TIMEOUT - deadline = time.monotonic() + timeout - - while time.monotonic() < deadline: + start_time = time.monotonic() + for _ in support.busy_retry(support.SHORT_TIMEOUT, error=False): if self.got_signals[signame]: return signal.pause() - - self.fail('signal %s not received after %s seconds' - % (signame, timeout)) + else: + dt = time.monotonic() - start_time + self.fail('signal %s not received after %.1f seconds' + % (signame, dt)) def subprocess_send_signal(self, pid, signame): code = 'import os, signal; os.kill(%s, signal.%s)' % (pid, signame) diff --git a/Lib/smtpd.py b/Lib/test/smtpd.py similarity index 98% rename from Lib/smtpd.py rename to Lib/test/smtpd.py index b23579f120716f..f9d4b048a83f68 100755 --- a/Lib/smtpd.py +++ b/Lib/test/smtpd.py @@ -77,25 +77,16 @@ import time import socket import collections -from warnings import _deprecated, warn +from test.support.import_helper import import_module +from warnings import warn from email._header_value_parser import get_addr_spec, get_angle_addr __all__ = [ "SMTPChannel", "SMTPServer", "DebuggingServer", "PureProxy", ] -_DEPRECATION_MSG = ('The {name} module is deprecated and unmaintained and will ' - 'be removed in Python {remove}. Please see aiosmtpd ' - '(https://aiosmtpd.readthedocs.io/) for the recommended ' - 'replacement.') -_deprecated(__name__, _DEPRECATION_MSG, remove=(3, 12)) - - -# These are imported after the above warning so that users get the correct -# deprecation warning. -import asyncore -import asynchat - +asyncore = import_module('asyncore', deprecated=True) +asynchat = import_module('asynchat', deprecated=True) program = sys.argv[0] __version__ = 'Python SMTP proxy version 0.3' diff --git a/Lib/test/string_tests.py b/Lib/test/string_tests.py index 0d4c7ecf4a04f2..e998146c190df4 100644 --- a/Lib/test/string_tests.py +++ b/Lib/test/string_tests.py @@ -341,6 +341,42 @@ def reference_find(p, s): self.checkequal(reference_find(p, text), text, 'find', p) + def test_find_many_lengths(self): + haystack_repeats = [a * 10**e for e in range(6) for a in (1,2,5)] + haystacks = [(n, self.fixtype("abcab"*n + "da")) for n in haystack_repeats] + + needle_repeats = [a * 10**e for e in range(6) for a in (1, 3)] + needles = [(m, self.fixtype("abcab"*m + "da")) for m in needle_repeats] + + for n, haystack1 in haystacks: + haystack2 = haystack1[:-1] + for m, needle in needles: + answer1 = 5 * (n - m) if m <= n else -1 + self.assertEqual(haystack1.find(needle), answer1, msg=(n,m)) + self.assertEqual(haystack2.find(needle), -1, msg=(n,m)) + + def test_adaptive_find(self): + # This would be very slow for the naive algorithm, + # but str.find() should be O(n + m). + for N in 1000, 10_000, 100_000, 1_000_000: + A, B = 'a' * N, 'b' * N + haystack = A + A + B + A + A + needle = A + B + B + A + self.checkequal(-1, haystack, 'find', needle) + self.checkequal(0, haystack, 'count', needle) + self.checkequal(len(haystack), haystack + needle, 'find', needle) + self.checkequal(1, haystack + needle, 'count', needle) + + def test_find_with_memory(self): + # Test the "Skip with memory" path in the two-way algorithm. + for N in 1000, 3000, 10_000, 30_000: + needle = 'ab' * N + haystack = ('ab'*(N-1) + 'b') * 2 + self.checkequal(-1, haystack, 'find', needle) + self.checkequal(0, haystack, 'count', needle) + self.checkequal(len(haystack), haystack + needle, 'find', needle) + self.checkequal(1, haystack + needle, 'count', needle) + def test_find_shift_table_overflow(self): """When the table of 8-bit shifts overflows.""" N = 2**8 + 100 @@ -715,6 +751,18 @@ def test_replace(self): self.checkraises(TypeError, 'hello', 'replace', 42, 'h') self.checkraises(TypeError, 'hello', 'replace', 'h', 42) + def test_replace_uses_two_way_maxcount(self): + # Test that maxcount works in _two_way_count in fastsearch.h + A, B = "A"*1000, "B"*1000 + AABAA = A + A + B + A + A + ABBA = A + B + B + A + self.checkequal(AABAA + ABBA, + AABAA + ABBA, 'replace', ABBA, "ccc", 0) + self.checkequal(AABAA + "ccc", + AABAA + ABBA, 'replace', ABBA, "ccc", 1) + self.checkequal(AABAA + "ccc", + AABAA + ABBA, 'replace', ABBA, "ccc", 2) + @unittest.skipIf(sys.maxsize > (1 << 32) or struct.calcsize('P') != 4, 'only applies to 32-bit platforms') def test_replace_overflow(self): diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py index e23ffee22d1cd9..573dce52ca474a 100644 --- a/Lib/test/support/__init__.py +++ b/Lib/test/support/__init__.py @@ -46,6 +46,7 @@ "anticipate_failure", "load_package_tests", "detect_api_mismatch", "check__all__", "skip_if_buggy_ucrt_strfptime", "check_disallow_instantiation", "check_sanitizer", "skip_if_sanitizer", + "requires_limited_api", # sys "is_jython", "is_android", "is_emscripten", "is_wasi", "check_impl_detail", "unix_shell", "setswitchinterval", @@ -305,6 +306,8 @@ def requires(resource, msg=None): if msg is None: msg = "Use of the %r resource not enabled" % resource raise ResourceDenied(msg) + if resource in {"network", "urlfetch"} and not has_socket_support: + raise ResourceDenied("No socket support") if resource == 'gui' and not _is_gui_available(): raise ResourceDenied(_is_gui_available.reason) @@ -1067,6 +1070,15 @@ def refcount_test(test): return no_tracing(cpython_only(test)) +def requires_limited_api(test): + try: + import _testcapi + except ImportError: + return unittest.skip('needs _testcapi module')(test) + return unittest.skipUnless( + _testcapi.LIMITED_API_AVAILABLE, 'needs Limited API support')(test) + + def _filter_suite(suite, pred): """Recursively filter test cases in a suite based on a predicate.""" newtests = [] @@ -1766,6 +1778,16 @@ def cleanup(): setattr(object_to_patch, attr_name, new_value) +@contextlib.contextmanager +def patch_list(orig): + """Like unittest.mock.patch.dict, but for lists.""" + try: + saved = orig[:] + yield + finally: + orig[:] = saved + + def run_in_subinterp(code): """ Run code in a subinterpreter. Raise unittest.SkipTest if the tracemalloc @@ -2070,31 +2092,26 @@ def wait_process(pid, *, exitcode, timeout=None): if timeout is None: timeout = SHORT_TIMEOUT - t0 = time.monotonic() - sleep = 0.001 - max_sleep = 0.1 - while True: + + start_time = time.monotonic() + for _ in sleeping_retry(timeout, error=False): pid2, status = os.waitpid(pid, os.WNOHANG) if pid2 != 0: break - # process is still running - - dt = time.monotonic() - t0 - if dt > SHORT_TIMEOUT: - try: - os.kill(pid, signal.SIGKILL) - os.waitpid(pid, 0) - except OSError: - # Ignore errors like ChildProcessError or PermissionError - pass - - raise AssertionError(f"process {pid} is still running " - f"after {dt:.1f} seconds") + # rety: the process is still running + else: + try: + os.kill(pid, signal.SIGKILL) + os.waitpid(pid, 0) + except OSError: + # Ignore errors like ChildProcessError or PermissionError + pass - sleep = min(sleep * 2, max_sleep) - time.sleep(sleep) + dt = time.monotonic() - start_time + raise AssertionError(f"process {pid} is still running " + f"after {dt:.1f} seconds") else: - # Windows implementation + # Windows implementation: don't support timeout :-( pid2, status = os.waitpid(pid, 0) exitcode2 = os.waitstatus_to_exitcode(status) @@ -2211,3 +2228,127 @@ def requires_venv_with_pip(): # True if Python is built with the Py_DEBUG macro defined: if # Python is built in debug mode (./configure --with-pydebug). Py_DEBUG = hasattr(sys, 'gettotalrefcount') + + +def late_deletion(obj): + """ + Keep a Python alive as long as possible. + + Create a reference cycle and store the cycle in an object deleted late in + Python finalization. Try to keep the object alive until the very last + garbage collection. + + The function keeps a strong reference by design. It should be called in a + subprocess to not mark a test as "leaking a reference". + """ + + # Late CPython finalization: + # - finalize_interp_clear() + # - _PyInterpreterState_Clear(): Clear PyInterpreterState members + # (ex: codec_search_path, before_forkers) + # - clear os.register_at_fork() callbacks + # - clear codecs.register() callbacks + + ref_cycle = [obj] + ref_cycle.append(ref_cycle) + + # Store a reference in PyInterpreterState.codec_search_path + import codecs + def search_func(encoding): + return None + search_func.reference = ref_cycle + codecs.register(search_func) + + if hasattr(os, 'register_at_fork'): + # Store a reference in PyInterpreterState.before_forkers + def atfork_func(): + pass + atfork_func.reference = ref_cycle + os.register_at_fork(before=atfork_func) + + +def busy_retry(timeout, err_msg=None, /, *, error=True): + """ + Run the loop body until "break" stops the loop. + + After *timeout* seconds, raise an AssertionError if *error* is true, + or just stop if *error is false. + + Example: + + for _ in support.busy_retry(support.SHORT_TIMEOUT): + if check(): + break + + Example of error=False usage: + + for _ in support.busy_retry(support.SHORT_TIMEOUT, error=False): + if check(): + break + else: + raise RuntimeError('my custom error') + + """ + if timeout <= 0: + raise ValueError("timeout must be greater than zero") + + start_time = time.monotonic() + deadline = start_time + timeout + + while True: + yield + + if time.monotonic() >= deadline: + break + + if error: + dt = time.monotonic() - start_time + msg = f"timeout ({dt:.1f} seconds)" + if err_msg: + msg = f"{msg}: {err_msg}" + raise AssertionError(msg) + + +def sleeping_retry(timeout, err_msg=None, /, + *, init_delay=0.010, max_delay=1.0, error=True): + """ + Wait strategy that applies exponential backoff. + + Run the loop body until "break" stops the loop. Sleep at each loop + iteration, but not at the first iteration. The sleep delay is doubled at + each iteration (up to *max_delay* seconds). + + See busy_retry() documentation for the parameters usage. + + Example raising an exception after SHORT_TIMEOUT seconds: + + for _ in support.sleeping_retry(support.SHORT_TIMEOUT): + if check(): + break + + Example of error=False usage: + + for _ in support.sleeping_retry(support.SHORT_TIMEOUT, error=False): + if check(): + break + else: + raise RuntimeError('my custom error') + """ + + delay = init_delay + for _ in busy_retry(timeout, err_msg, error=error): + yield + + time.sleep(delay) + delay = min(delay * 2, max_delay) + + +@contextlib.contextmanager +def adjust_int_max_str_digits(max_digits): + """Temporarily change the integer string conversion length limit.""" + current = sys.get_int_max_str_digits() + try: + sys.set_int_max_str_digits(max_digits) + yield + finally: + sys.set_int_max_str_digits(current) diff --git a/Lib/test/support/bytecode_helper.py b/Lib/test/support/bytecode_helper.py index 471d4a68f915aa..05b54911e3f25a 100644 --- a/Lib/test/support/bytecode_helper.py +++ b/Lib/test/support/bytecode_helper.py @@ -3,6 +3,7 @@ import unittest import dis import io +from _testinternalcapi import optimize_cfg _UNSPECIFIED = object() @@ -40,3 +41,95 @@ def assertNotInBytecode(self, x, opname, argval=_UNSPECIFIED): msg = '(%s,%r) occurs in bytecode:\n%s' msg = msg % (opname, argval, disassembly) self.fail(msg) + + +class CfgOptimizationTestCase(unittest.TestCase): + + HAS_ARG = set(dis.hasarg) + HAS_TARGET = set(dis.hasjrel + dis.hasjabs + dis.hasexc) + HAS_ARG_OR_TARGET = HAS_ARG.union(HAS_TARGET) + + def setUp(self): + self.last_label = 0 + + def Label(self): + self.last_label += 1 + return self.last_label + + def complete_insts_info(self, insts): + # fill in omitted fields in location, and oparg 0 for ops with no arg. + instructions = [] + for item in insts: + if isinstance(item, int): + instructions.append(item) + else: + assert isinstance(item, tuple) + inst = list(reversed(item)) + opcode = dis.opmap[inst.pop()] + oparg = inst.pop() if opcode in self.HAS_ARG_OR_TARGET else 0 + loc = inst + [-1] * (4 - len(inst)) + instructions.append((opcode, oparg, *loc)) + return instructions + + def normalize_insts(self, insts): + """ Map labels to instruction index. + Remove labels which are not used as jump targets. + """ + labels_map = {} + targets = set() + idx = 1 + for item in insts: + assert isinstance(item, (int, tuple)) + if isinstance(item, tuple): + opcode, oparg, *_ = item + if dis.opmap.get(opcode, opcode) in self.HAS_TARGET: + targets.add(oparg) + idx += 1 + elif isinstance(item, int): + assert item not in labels_map, "label reused" + labels_map[item] = idx + + res = [] + for item in insts: + if isinstance(item, int) and item in targets: + if not res or labels_map[item] != res[-1]: + res.append(labels_map[item]) + elif isinstance(item, tuple): + opcode, oparg, *loc = item + opcode = dis.opmap.get(opcode, opcode) + if opcode in self.HAS_TARGET: + arg = labels_map[oparg] + else: + arg = oparg if opcode in self.HAS_TARGET else None + opcode = dis.opname[opcode] + res.append((opcode, arg, *loc)) + return res + + def get_optimized(self, insts, consts): + insts = self.complete_insts_info(insts) + insts = optimize_cfg(insts, consts) + return insts, consts + + def compareInstructions(self, actual_, expected_): + # get two lists where each entry is a label or + # an instruction tuple. Compare them, while mapping + # each actual label to a corresponding expected label + # based on their locations. + + self.assertIsInstance(actual_, list) + self.assertIsInstance(expected_, list) + + actual = self.normalize_insts(actual_) + expected = self.normalize_insts(expected_) + self.assertEqual(len(actual), len(expected)) + + # compare instructions + for act, exp in zip(actual, expected): + if isinstance(act, int): + self.assertEqual(exp, act) + continue + self.assertIsInstance(exp, tuple) + self.assertIsInstance(act, tuple) + # pad exp with -1's (if location info is incomplete) + exp += (-1,) * (len(act) - len(exp)) + self.assertEqual(exp, act) diff --git a/Lib/test/support/os_helper.py b/Lib/test/support/os_helper.py index ed4ec15c7cbe92..f37a442aa0e6c8 100644 --- a/Lib/test/support/os_helper.py +++ b/Lib/test/support/os_helper.py @@ -141,6 +141,11 @@ try: name.decode(sys.getfilesystemencoding()) except UnicodeDecodeError: + try: + name.decode(sys.getfilesystemencoding(), + sys.getfilesystemencodeerrors()) + except UnicodeDecodeError: + continue TESTFN_UNDECODABLE = os.fsencode(TESTFN_ASCII) + name break @@ -171,9 +176,13 @@ def can_symlink(): global _can_symlink if _can_symlink is not None: return _can_symlink - symlink_path = TESTFN + "can_symlink" + # WASI / wasmtime prevents symlinks with absolute paths, see man + # openat2(2) RESOLVE_BENEATH. Almost all symlink tests use absolute + # paths. Skip symlink tests on WASI for now. + src = os.path.abspath(TESTFN) + symlink_path = src + "can_symlink" try: - os.symlink(TESTFN, symlink_path) + os.symlink(src, symlink_path) can = True except (OSError, NotImplementedError, AttributeError): can = False @@ -233,6 +242,84 @@ def skip_unless_xattr(test): return test if ok else unittest.skip(msg)(test) +_can_chmod = None + +def can_chmod(): + global _can_chmod + if _can_chmod is not None: + return _can_chmod + if not hasattr(os, "chown"): + _can_chmod = False + return _can_chmod + try: + with open(TESTFN, "wb") as f: + try: + os.chmod(TESTFN, 0o777) + mode1 = os.stat(TESTFN).st_mode + os.chmod(TESTFN, 0o666) + mode2 = os.stat(TESTFN).st_mode + except OSError as e: + can = False + else: + can = stat.S_IMODE(mode1) != stat.S_IMODE(mode2) + finally: + unlink(TESTFN) + _can_chmod = can + return can + + +def skip_unless_working_chmod(test): + """Skip tests that require working os.chmod() + + WASI SDK 15.0 cannot change file mode bits. + """ + ok = can_chmod() + msg = "requires working os.chmod()" + return test if ok else unittest.skip(msg)(test) + + +# Check whether the current effective user has the capability to override +# DAC (discretionary access control). Typically user root is able to +# bypass file read, write, and execute permission checks. The capability +# is independent of the effective user. See capabilities(7). +_can_dac_override = None + +def can_dac_override(): + global _can_dac_override + + if not can_chmod(): + _can_dac_override = False + if _can_dac_override is not None: + return _can_dac_override + + try: + with open(TESTFN, "wb") as f: + os.chmod(TESTFN, 0o400) + try: + with open(TESTFN, "wb"): + pass + except OSError: + _can_dac_override = False + else: + _can_dac_override = True + finally: + unlink(TESTFN) + + return _can_dac_override + + +def skip_if_dac_override(test): + ok = not can_dac_override() + msg = "incompatible with CAP_DAC_OVERRIDE" + return test if ok else unittest.skip(msg)(test) + + +def skip_unless_dac_override(test): + ok = can_dac_override() + msg = "requires CAP_DAC_OVERRIDE" + return test if ok else unittest.skip(msg)(test) + + def unlink(filename): try: _unlink(filename) @@ -459,7 +546,10 @@ def create_empty_file(filename): def open_dir_fd(path): """Open a file descriptor to a directory.""" assert os.path.isdir(path) - dir_fd = os.open(path, os.O_RDONLY) + flags = os.O_RDONLY + if hasattr(os, "O_DIRECTORY"): + flags |= os.O_DIRECTORY + dir_fd = os.open(path, flags) try: yield dir_fd finally: @@ -482,7 +572,7 @@ def fs_is_case_insensitive(directory): class FakePath: - """Simple implementing of the path protocol. + """Simple implementation of the path protocol. """ def __init__(self, path): self.path = path @@ -568,6 +658,11 @@ def temp_umask(umask): yield finally: os.umask(oldmask) +else: + @contextlib.contextmanager + def temp_umask(umask): + """no-op on platforms without umask()""" + yield class EnvironmentVarGuard(collections.abc.MutableMapping): diff --git a/Lib/test/support/socket_helper.py b/Lib/test/support/socket_helper.py index 42b2a93398cbf7..d2960c9e333474 100644 --- a/Lib/test/support/socket_helper.py +++ b/Lib/test/support/socket_helper.py @@ -1,8 +1,10 @@ import contextlib import errno +import os.path import socket -import unittest import sys +import tempfile +import unittest from .. import support from . import warnings_helper @@ -270,3 +272,14 @@ def filter_error(err): # __cause__ or __context__? finally: socket.setdefaulttimeout(old_timeout) + + +def create_unix_domain_name(): + """ + Create a UNIX domain name: socket.bind() argument of a AF_UNIX socket. + + Return a path relative to the current directory to get a short path + (around 27 ASCII characters). + """ + return tempfile.mktemp(prefix="test_python_", suffix='.sock', + dir=os.path.curdir) diff --git a/Lib/test/support/threading_helper.py b/Lib/test/support/threading_helper.py index 26cbc6f4d2439c..b9973c8bf5c914 100644 --- a/Lib/test/support/threading_helper.py +++ b/Lib/test/support/threading_helper.py @@ -88,19 +88,17 @@ def wait_threads_exit(timeout=None): yield finally: start_time = time.monotonic() - deadline = start_time + timeout - while True: + for _ in support.sleeping_retry(timeout, error=False): + support.gc_collect() count = _thread._count() if count <= old_count: break - if time.monotonic() > deadline: - dt = time.monotonic() - start_time - msg = (f"wait_threads() failed to cleanup {count - old_count} " - f"threads after {dt:.1f} seconds " - f"(count: {count}, old count: {old_count})") - raise AssertionError(msg) - time.sleep(0.010) - support.gc_collect() + else: + dt = time.monotonic() - start_time + msg = (f"wait_threads() failed to cleanup {count - old_count} " + f"threads after {dt:.1f} seconds " + f"(count: {count}, old count: {old_count})") + raise AssertionError(msg) def join_thread(thread, timeout=None): diff --git a/Lib/test/test__opcode.py b/Lib/test/test__opcode.py index 2a4c0d2eeb656a..f548e3647b31c7 100644 --- a/Lib/test/test__opcode.py +++ b/Lib/test/test__opcode.py @@ -18,9 +18,10 @@ def test_stack_effect(self): self.assertRaises(ValueError, stack_effect, dis.opmap['BUILD_SLICE']) self.assertRaises(ValueError, stack_effect, dis.opmap['POP_TOP'], 0) # All defined opcodes + has_arg = dis.hasarg for name, code in filter(lambda item: item[0] not in dis.deoptmap, dis.opmap.items()): with self.subTest(opname=name): - if code < dis.HAVE_ARGUMENT: + if code not in has_arg: stack_effect(code) self.assertRaises(ValueError, stack_effect, code, 0) else: @@ -46,10 +47,12 @@ def test_stack_effect_jump(self): self.assertEqual(stack_effect(JUMP_FORWARD, 0, jump=True), 0) self.assertEqual(stack_effect(JUMP_FORWARD, 0, jump=False), 0) # All defined opcodes + has_arg = dis.hasarg + has_exc = dis.hasexc has_jump = dis.hasjabs + dis.hasjrel for name, code in filter(lambda item: item[0] not in dis.deoptmap, dis.opmap.items()): with self.subTest(opname=name): - if code < dis.HAVE_ARGUMENT: + if code not in has_arg: common = stack_effect(code) jump = stack_effect(code, jump=True) nojump = stack_effect(code, jump=False) @@ -57,7 +60,7 @@ def test_stack_effect_jump(self): common = stack_effect(code, 0) jump = stack_effect(code, 0, jump=True) nojump = stack_effect(code, 0, jump=False) - if code in has_jump: + if code in has_jump or code in has_exc: self.assertEqual(common, max(jump, nojump)) else: self.assertEqual(jump, common) diff --git a/Lib/test/test__xxsubinterpreters.py b/Lib/test/test__xxsubinterpreters.py index 5d0ed9ea14ac7f..f20aae8e21c66f 100644 --- a/Lib/test/test__xxsubinterpreters.py +++ b/Lib/test/test__xxsubinterpreters.py @@ -45,12 +45,11 @@ def _wait_for_interp_to_run(interp, timeout=None): # run subinterpreter eariler than the main thread in multiprocess. if timeout is None: timeout = support.SHORT_TIMEOUT - start_time = time.monotonic() - deadline = start_time + timeout - while not interpreters.is_running(interp): - if time.monotonic() > deadline: - raise RuntimeError('interp is not running') - time.sleep(0.010) + for _ in support.sleeping_retry(timeout, error=False): + if interpreters.is_running(interp): + break + else: + raise RuntimeError('interp is not running') @contextlib.contextmanager diff --git a/Lib/test/test_argparse.py b/Lib/test/test_argparse.py index 273db45c00f7ac..2b7f008d38564b 100644 --- a/Lib/test/test_argparse.py +++ b/Lib/test/test_argparse.py @@ -45,6 +45,7 @@ def setUp(self): env['COLUMNS'] = '80' +@os_helper.skip_unless_working_chmod class TempDirMixin(object): def setUp(self): @@ -1504,14 +1505,15 @@ class TestArgumentsFromFile(TempDirMixin, ParserTestCase): def setUp(self): super(TestArgumentsFromFile, self).setUp() file_texts = [ - ('hello', 'hello world!\n'), - ('recursive', '-a\n' - 'A\n' - '@hello'), - ('invalid', '@no-such-path\n'), + ('hello', os.fsencode(self.hello) + b'\n'), + ('recursive', b'-a\n' + b'A\n' + b'@hello'), + ('invalid', b'@no-such-path\n'), + ('undecodable', self.undecodable + b'\n'), ] for path, text in file_texts: - with open(path, 'w', encoding="utf-8") as file: + with open(path, 'wb') as file: file.write(text) parser_signature = Sig(fromfile_prefix_chars='@') @@ -1521,15 +1523,25 @@ def setUp(self): Sig('y', nargs='+'), ] failures = ['', '-b', 'X', '@invalid', '@missing'] + hello = 'hello world!' + os_helper.FS_NONASCII successes = [ ('X Y', NS(a=None, x='X', y=['Y'])), ('X -a A Y Z', NS(a='A', x='X', y=['Y', 'Z'])), - ('@hello X', NS(a=None, x='hello world!', y=['X'])), - ('X @hello', NS(a=None, x='X', y=['hello world!'])), - ('-a B @recursive Y Z', NS(a='A', x='hello world!', y=['Y', 'Z'])), - ('X @recursive Z -a B', NS(a='B', x='X', y=['hello world!', 'Z'])), + ('@hello X', NS(a=None, x=hello, y=['X'])), + ('X @hello', NS(a=None, x='X', y=[hello])), + ('-a B @recursive Y Z', NS(a='A', x=hello, y=['Y', 'Z'])), + ('X @recursive Z -a B', NS(a='B', x='X', y=[hello, 'Z'])), (["-a", "", "X", "Y"], NS(a='', x='X', y=['Y'])), ] + if os_helper.TESTFN_UNDECODABLE: + undecodable = os_helper.TESTFN_UNDECODABLE.lstrip(b'@') + decoded_undecodable = os.fsdecode(undecodable) + successes += [ + ('@undecodable X', NS(a=None, x=decoded_undecodable, y=['X'])), + ('X @undecodable', NS(a=None, x='X', y=[decoded_undecodable])), + ] + else: + undecodable = b'' class TestArgumentsFromFileConverter(TempDirMixin, ParserTestCase): @@ -1538,10 +1550,10 @@ class TestArgumentsFromFileConverter(TempDirMixin, ParserTestCase): def setUp(self): super(TestArgumentsFromFileConverter, self).setUp() file_texts = [ - ('hello', 'hello world!\n'), + ('hello', b'hello world!\n'), ] for path, text in file_texts: - with open(path, 'w', encoding="utf-8") as file: + with open(path, 'wb') as file: file.write(text) class FromFileConverterArgumentParser(ErrorRaisingArgumentParser): @@ -1722,8 +1734,7 @@ def __eq__(self, other): return self.name == other.name -@unittest.skipIf(hasattr(os, 'geteuid') and os.geteuid() == 0, - "non-root user required") +@os_helper.skip_if_dac_override class TestFileTypeW(TempDirMixin, ParserTestCase): """Test the FileType option/argument type for writing files""" @@ -1745,8 +1756,8 @@ def setUp(self): ('-x - -', NS(x=eq_stdout, spam=eq_stdout)), ] -@unittest.skipIf(hasattr(os, 'geteuid') and os.geteuid() == 0, - "non-root user required") + +@os_helper.skip_if_dac_override class TestFileTypeX(TempDirMixin, ParserTestCase): """Test the FileType option/argument type for writing new files only""" @@ -1766,8 +1777,7 @@ def setUp(self): ] -@unittest.skipIf(hasattr(os, 'geteuid') and os.geteuid() == 0, - "non-root user required") +@os_helper.skip_if_dac_override class TestFileTypeWB(TempDirMixin, ParserTestCase): """Test the FileType option/argument type for writing binary files""" @@ -1784,8 +1794,7 @@ class TestFileTypeWB(TempDirMixin, ParserTestCase): ] -@unittest.skipIf(hasattr(os, 'geteuid') and os.geteuid() == 0, - "non-root user required") +@os_helper.skip_if_dac_override class TestFileTypeXB(TestFileTypeX): "Test the FileType option/argument type for writing new binary files only" @@ -5221,6 +5230,13 @@ def test_mixed(self): self.assertEqual(NS(v=3, spam=True, badger="B"), args) self.assertEqual(["C", "--foo", "4"], extras) + def test_zero_or_more_optional(self): + parser = argparse.ArgumentParser() + parser.add_argument('x', nargs='*', choices=('x', 'y')) + args = parser.parse_args([]) + self.assertEqual(NS(x=[]), args) + + # =========================== # parse_intermixed_args tests # =========================== diff --git a/Lib/test/test_ast.py b/Lib/test/test_ast.py index 03d9b310f161b9..c97d16132f472d 100644 --- a/Lib/test/test_ast.py +++ b/Lib/test/test_ast.py @@ -336,6 +336,41 @@ def test_ast_validation(self): tree = ast.parse(snippet) compile(tree, '<string>', 'exec') + def test_invalid_position_information(self): + invalid_linenos = [ + (10, 1), (-10, -11), (10, -11), (-5, -2), (-5, 1) + ] + + for lineno, end_lineno in invalid_linenos: + with self.subTest(f"Check invalid linenos {lineno}:{end_lineno}"): + snippet = "a = 1" + tree = ast.parse(snippet) + tree.body[0].lineno = lineno + tree.body[0].end_lineno = end_lineno + with self.assertRaises(ValueError): + compile(tree, '<string>', 'exec') + + invalid_col_offsets = [ + (10, 1), (-10, -11), (10, -11), (-5, -2), (-5, 1) + ] + for col_offset, end_col_offset in invalid_col_offsets: + with self.subTest(f"Check invalid col_offset {col_offset}:{end_col_offset}"): + snippet = "a = 1" + tree = ast.parse(snippet) + tree.body[0].col_offset = col_offset + tree.body[0].end_col_offset = end_col_offset + with self.assertRaises(ValueError): + compile(tree, '<string>', 'exec') + + def test_compilation_of_ast_nodes_with_default_end_position_values(self): + tree = ast.Module(body=[ + ast.Import(names=[ast.alias(name='builtins', lineno=1, col_offset=0)], lineno=1, col_offset=0), + ast.Import(names=[ast.alias(name='traceback', lineno=0, col_offset=0)], lineno=0, col_offset=1) + ], type_ignores=[]) + + # Check that compilation doesn't crash. Note: this may crash explicitly only on debug mode. + compile(tree, "<string>", "exec") + def test_slice(self): slc = ast.parse("x[::]").body[0].value.slice self.assertIsNone(slc.upper) @@ -703,11 +738,54 @@ def test_ast_asdl_signature(self): expressions[0] = f"expr = {ast.expr.__subclasses__()[0].__doc__}" self.assertCountEqual(ast.expr.__doc__.split("\n"), expressions) - def test_issue40614_feature_version(self): + def test_positional_only_feature_version(self): + ast.parse('def foo(x, /): ...', feature_version=(3, 8)) + ast.parse('def bar(x=1, /): ...', feature_version=(3, 8)) + with self.assertRaises(SyntaxError): + ast.parse('def foo(x, /): ...', feature_version=(3, 7)) + with self.assertRaises(SyntaxError): + ast.parse('def bar(x=1, /): ...', feature_version=(3, 7)) + + ast.parse('lambda x, /: ...', feature_version=(3, 8)) + ast.parse('lambda x=1, /: ...', feature_version=(3, 8)) + with self.assertRaises(SyntaxError): + ast.parse('lambda x, /: ...', feature_version=(3, 7)) + with self.assertRaises(SyntaxError): + ast.parse('lambda x=1, /: ...', feature_version=(3, 7)) + + def test_parenthesized_with_feature_version(self): + ast.parse('with (CtxManager() as example): ...', feature_version=(3, 10)) + # While advertised as a feature in Python 3.10, this was allowed starting 3.9 + ast.parse('with (CtxManager() as example): ...', feature_version=(3, 9)) + with self.assertRaises(SyntaxError): + ast.parse('with (CtxManager() as example): ...', feature_version=(3, 8)) + ast.parse('with CtxManager() as example: ...', feature_version=(3, 8)) + + def test_debug_f_string_feature_version(self): ast.parse('f"{x=}"', feature_version=(3, 8)) with self.assertRaises(SyntaxError): ast.parse('f"{x=}"', feature_version=(3, 7)) + def test_assignment_expression_feature_version(self): + ast.parse('(x := 0)', feature_version=(3, 8)) + with self.assertRaises(SyntaxError): + ast.parse('(x := 0)', feature_version=(3, 7)) + + def test_exception_groups_feature_version(self): + code = dedent(''' + try: ... + except* Exception: ... + ''') + ast.parse(code) + with self.assertRaises(SyntaxError): + ast.parse(code, feature_version=(3, 10)) + + def test_invalid_major_feature_version(self): + with self.assertRaises(ValueError): + ast.parse('pass', feature_version=(2, 7)) + with self.assertRaises(ValueError): + ast.parse('pass', feature_version=(4, 0)) + def test_constant_as_name(self): for constant in "True", "False", "None": expr = ast.Expression(ast.Name(constant, ast.Load())) @@ -745,6 +823,27 @@ def next(self): return self enum._test_simple_enum(_Precedence, ast._Precedence) + @support.cpython_only + def test_ast_recursion_limit(self): + fail_depth = sys.getrecursionlimit() * 3 + crash_depth = sys.getrecursionlimit() * 300 + success_depth = int(fail_depth * 0.75) + + def check_limit(prefix, repeated): + expect_ok = prefix + repeated * success_depth + ast.parse(expect_ok) + for depth in (fail_depth, crash_depth): + broken = prefix + repeated * depth + details = "Compiling ({!r} + {!r} * {})".format( + prefix, repeated, depth) + with self.assertRaises(RecursionError, msg=details): + ast.parse(broken) + + check_limit("a", "()") + check_limit("a", ".b") + check_limit("a", "[0]") + check_limit("a", "*a") + class ASTHelpers_Test(unittest.TestCase): maxDiff = None @@ -1046,6 +1145,14 @@ def test_literal_eval(self): self.assertRaises(ValueError, ast.literal_eval, '+True') self.assertRaises(ValueError, ast.literal_eval, '2+3') + def test_literal_eval_str_int_limit(self): + with support.adjust_int_max_str_digits(4000): + ast.literal_eval('3'*4000) # no error + with self.assertRaises(SyntaxError) as err_ctx: + ast.literal_eval('3'*4001) + self.assertIn('Exceeds the limit ', str(err_ctx.exception)) + self.assertIn(' Consider hexadecimal ', str(err_ctx.exception)) + def test_literal_eval_complex(self): # Issue #4907 self.assertEqual(ast.literal_eval('6j'), 6j) diff --git a/Lib/test/test_asyncio/test_base_events.py b/Lib/test/test_asyncio/test_base_events.py index c6671bd0ad3d85..2dcb20c1cec7f9 100644 --- a/Lib/test/test_asyncio/test_base_events.py +++ b/Lib/test/test_asyncio/test_base_events.py @@ -40,7 +40,6 @@ def mock_socket_module(): m_socket.socket = mock.MagicMock() m_socket.socket.return_value = test_utils.mock_nonblocking_socket() - m_socket.getaddrinfo._is_coroutine = False return m_socket @@ -1110,6 +1109,15 @@ def _socket(*args, **kw): self.assertEqual(str(cm.exception), 'Multiple exceptions: err1, err2') + idx = -1 + coro = self.loop.create_connection(MyProto, 'example.com', 80, all_errors=True) + with self.assertRaises(ExceptionGroup) as cm: + self.loop.run_until_complete(coro) + + self.assertIsInstance(cm.exception, ExceptionGroup) + for e in cm.exception.exceptions: + self.assertIsInstance(e, OSError) + @patch_socket def test_create_connection_timeout(self, m_socket): # Ensure that the socket is closed on timeout @@ -1229,6 +1237,14 @@ def getaddrinfo_task(*args, **kwds): self.assertRaises( OSError, self.loop.run_until_complete, coro) + coro = self.loop.create_connection(MyProto, 'example.com', 80, all_errors=True) + with self.assertRaises(ExceptionGroup) as cm: + self.loop.run_until_complete(coro) + + self.assertIsInstance(cm.exception, ExceptionGroup) + self.assertEqual(len(cm.exception.exceptions), 1) + self.assertIsInstance(cm.exception.exceptions[0], OSError) + def test_create_connection_multiple(self): async def getaddrinfo(*args, **kw): return [(2, 1, 6, '', ('0.0.0.1', 80)), @@ -1246,6 +1262,15 @@ def getaddrinfo_task(*args, **kwds): with self.assertRaises(OSError): self.loop.run_until_complete(coro) + coro = self.loop.create_connection( + MyProto, 'example.com', 80, family=socket.AF_INET, all_errors=True) + with self.assertRaises(ExceptionGroup) as cm: + self.loop.run_until_complete(coro) + + self.assertIsInstance(cm.exception, ExceptionGroup) + for e in cm.exception.exceptions: + self.assertIsInstance(e, OSError) + @patch_socket def test_create_connection_multiple_errors_local_addr(self, m_socket): @@ -1277,6 +1302,16 @@ def getaddrinfo_task(*args, **kwds): self.assertTrue(str(cm.exception).startswith('Multiple exceptions: ')) self.assertTrue(m_socket.socket.return_value.close.called) + coro = self.loop.create_connection( + MyProto, 'example.com', 80, family=socket.AF_INET, + local_addr=(None, 8080), all_errors=True) + with self.assertRaises(ExceptionGroup) as cm: + self.loop.run_until_complete(coro) + + self.assertIsInstance(cm.exception, ExceptionGroup) + for e in cm.exception.exceptions: + self.assertIsInstance(e, OSError) + def _test_create_connection_ip_addr(self, m_socket, allow_inet_pton): # Test the fallback code, even if this system has inet_pton. if not allow_inet_pton: @@ -1286,9 +1321,7 @@ def _test_create_connection_ip_addr(self, m_socket, allow_inet_pton): sock = m_socket.socket.return_value self.loop._add_reader = mock.Mock() - self.loop._add_reader._is_coroutine = False self.loop._add_writer = mock.Mock() - self.loop._add_writer._is_coroutine = False coro = self.loop.create_connection(asyncio.Protocol, '1.2.3.4', 80) t, p = self.loop.run_until_complete(coro) @@ -1330,9 +1363,7 @@ def test_create_connection_ipv6_scope(self, m_socket): sock.family = socket.AF_INET6 self.loop._add_reader = mock.Mock() - self.loop._add_reader._is_coroutine = False self.loop._add_writer = mock.Mock() - self.loop._add_writer._is_coroutine = False coro = self.loop.create_connection(asyncio.Protocol, 'fe80::1%1', 80) t, p = self.loop.run_until_complete(coro) @@ -1359,9 +1390,7 @@ def test_create_connection_service_name(self, m_socket): sock = m_socket.socket.return_value self.loop._add_reader = mock.Mock() - self.loop._add_reader._is_coroutine = False self.loop._add_writer = mock.Mock() - self.loop._add_writer._is_coroutine = False for service, port in ('http', 80), (b'http', 80): coro = self.loop.create_connection(asyncio.Protocol, @@ -1590,7 +1619,6 @@ class Err(OSError): m_socket.getaddrinfo.return_value = [ (2, 1, 6, '', ('127.0.0.1', 10100))] - m_socket.getaddrinfo._is_coroutine = False m_sock = m_socket.socket.return_value = mock.Mock() m_sock.bind.side_effect = Err @@ -1601,7 +1629,6 @@ class Err(OSError): @patch_socket def test_create_datagram_endpoint_no_addrinfo(self, m_socket): m_socket.getaddrinfo.return_value = [] - m_socket.getaddrinfo._is_coroutine = False coro = self.loop.create_datagram_endpoint( MyDatagramProto, local_addr=('localhost', 0)) @@ -1835,7 +1862,6 @@ def getaddrinfo(*args, **kw): m_socket.getaddrinfo = getaddrinfo m_socket.socket.return_value.bind = bind = mock.Mock() self.loop._add_reader = mock.Mock() - self.loop._add_reader._is_coroutine = False reuseport_supported = hasattr(socket, 'SO_REUSEPORT') coro = self.loop.create_datagram_endpoint( diff --git a/Lib/test/test_asyncio/test_events.py b/Lib/test/test_asyncio/test_events.py index 05d9107b28e2ae..80d7152128c469 100644 --- a/Lib/test/test_asyncio/test_events.py +++ b/Lib/test/test_asyncio/test_events.py @@ -29,7 +29,6 @@ import asyncio from asyncio import coroutines from asyncio import events -from asyncio import proactor_events from asyncio import selector_events from test.test_asyncio import utils as test_utils from test import support diff --git a/Lib/test/test_asyncio/test_futures2.py b/Lib/test/test_asyncio/test_futures2.py index 60b58850369f05..71279b69c7929e 100644 --- a/Lib/test/test_asyncio/test_futures2.py +++ b/Lib/test/test_asyncio/test_futures2.py @@ -1,13 +1,42 @@ # IsolatedAsyncioTestCase based tests import asyncio +import traceback import unittest +from asyncio import tasks def tearDownModule(): asyncio.set_event_loop_policy(None) -class FutureTests(unittest.IsolatedAsyncioTestCase): +class FutureTests: + + async def test_future_traceback(self): + + async def raise_exc(): + raise TypeError(42) + + future = self.cls(raise_exc()) + + for _ in range(5): + try: + await future + except TypeError as e: + tb = ''.join(traceback.format_tb(e.__traceback__)) + self.assertEqual(tb.count("await future"), 1) + else: + self.fail('TypeError was not raised') + +@unittest.skipUnless(hasattr(tasks, '_CTask'), + 'requires the C _asyncio module') +class CFutureTests(FutureTests, unittest.IsolatedAsyncioTestCase): + cls = tasks._CTask + +class PyFutureTests(FutureTests, unittest.IsolatedAsyncioTestCase): + cls = tasks._PyTask + +class FutureReprTests(unittest.IsolatedAsyncioTestCase): + async def test_recursive_repr_for_pending_tasks(self): # The call crashes if the guard for recursive call # in base_futures:_future_repr_info is absent diff --git a/Lib/test/test_asyncio/test_locks.py b/Lib/test/test_asyncio/test_locks.py index ff25d9edef518f..3c94baa56e1649 100644 --- a/Lib/test/test_asyncio/test_locks.py +++ b/Lib/test/test_asyncio/test_locks.py @@ -853,7 +853,7 @@ async def c4(result): self.assertTrue(t1.result()) race_tasks = [t2, t3, t4] done_tasks = [t for t in race_tasks if t.done() and t.result()] - self.assertTrue(2, len(done_tasks)) + self.assertEqual(2, len(done_tasks)) # cleanup locked semaphore sem.release() diff --git a/Lib/test/test_asyncio/test_runners.py b/Lib/test/test_asyncio/test_runners.py index 957cfe41eff85d..1308b7e2ba4f82 100644 --- a/Lib/test/test_asyncio/test_runners.py +++ b/Lib/test/test_asyncio/test_runners.py @@ -1,15 +1,13 @@ import _thread import asyncio import contextvars -import gc import re import signal import threading import unittest - +from test.test_asyncio import utils as test_utils from unittest import mock from unittest.mock import patch -from test.test_asyncio import utils as test_utils def tearDownModule(): @@ -45,6 +43,9 @@ class BaseTest(unittest.TestCase): def new_loop(self): loop = asyncio.BaseEventLoop() loop._process_events = mock.Mock() + # Mock waking event loop from select + loop._write_to_self = mock.Mock() + loop._write_to_self.return_value = None loop._selector = mock.Mock() loop._selector.select.return_value = () loop.shutdown_ag_run = False @@ -196,6 +197,66 @@ async def main(): self.assertIsNone(spinner.ag_frame) self.assertFalse(spinner.ag_running) + def test_asyncio_run_set_event_loop(self): + #See https://github.com/python/cpython/issues/93896 + + async def main(): + await asyncio.sleep(0) + return 42 + + policy = asyncio.get_event_loop_policy() + policy.set_event_loop = mock.Mock() + asyncio.run(main()) + self.assertTrue(policy.set_event_loop.called) + + def test_asyncio_run_without_uncancel(self): + # See https://github.com/python/cpython/issues/95097 + class Task: + def __init__(self, loop, coro, **kwargs): + self._task = asyncio.Task(coro, loop=loop, **kwargs) + + def cancel(self, *args, **kwargs): + return self._task.cancel(*args, **kwargs) + + def add_done_callback(self, *args, **kwargs): + return self._task.add_done_callback(*args, **kwargs) + + def remove_done_callback(self, *args, **kwargs): + return self._task.remove_done_callback(*args, **kwargs) + + @property + def _asyncio_future_blocking(self): + return self._task._asyncio_future_blocking + + def result(self, *args, **kwargs): + return self._task.result(*args, **kwargs) + + def done(self, *args, **kwargs): + return self._task.done(*args, **kwargs) + + def cancelled(self, *args, **kwargs): + return self._task.cancelled(*args, **kwargs) + + def exception(self, *args, **kwargs): + return self._task.exception(*args, **kwargs) + + def get_loop(self, *args, **kwargs): + return self._task.get_loop(*args, **kwargs) + + + async def main(): + interrupt_self() + await asyncio.Event().wait() + + def new_event_loop(): + loop = self.new_loop() + loop.set_task_factory(Task) + return loop + + asyncio.set_event_loop_policy(TestPolicy(new_event_loop)) + with self.assertRaises(asyncio.CancelledError): + asyncio.run(main()) + class RunnerTests(BaseTest): @@ -394,6 +455,20 @@ async def coro(): ): runner.run(coro()) + def test_set_event_loop_called_once(self): + # See https://github.com/python/cpython/issues/95736 + async def coro(): + pass + + policy = asyncio.get_event_loop_policy() + policy.set_event_loop = mock.Mock() + runner = asyncio.Runner() + runner.run(coro()) + runner.run(coro()) + + self.assertEqual(1, policy.set_event_loop.call_count) + runner.close() + if __name__ == '__main__': unittest.main() diff --git a/Lib/test/test_asyncio/test_selector_events.py b/Lib/test/test_asyncio/test_selector_events.py index d9d30fc25b513b..22dcfb23083522 100644 --- a/Lib/test/test_asyncio/test_selector_events.py +++ b/Lib/test/test_asyncio/test_selector_events.py @@ -61,7 +61,6 @@ def setUp(self): def test_make_socket_transport(self): m = mock.Mock() self.loop.add_reader = mock.Mock() - self.loop.add_reader._is_coroutine = False transport = self.loop._make_socket_transport(m, asyncio.Protocol()) self.assertIsInstance(transport, _SelectorSocketTransport) diff --git a/Lib/test/test_asyncio/test_sock_lowlevel.py b/Lib/test/test_asyncio/test_sock_lowlevel.py index db47616d18343e..b829fd4cc69fff 100644 --- a/Lib/test/test_asyncio/test_sock_lowlevel.py +++ b/Lib/test/test_asyncio/test_sock_lowlevel.py @@ -5,7 +5,7 @@ from asyncio import proactor_events from itertools import cycle, islice -from unittest.mock import patch, Mock +from unittest.mock import Mock from test.test_asyncio import utils as test_utils from test import support from test.support import socket_helper diff --git a/Lib/test/test_asyncio/test_ssl.py b/Lib/test/test_asyncio/test_ssl.py index 5e3c1573c9c587..5de9b7a14e87da 100644 --- a/Lib/test/test_asyncio/test_ssl.py +++ b/Lib/test/test_asyncio/test_ssl.py @@ -5,6 +5,7 @@ import logging import select import socket +import sys import tempfile import threading import time @@ -20,6 +21,10 @@ from test.test_asyncio import utils as test_utils +MACOS = (sys.platform == 'darwin') +BUF_MULTIPLIER = 1024 if not MACOS else 64 + + def tearDownModule(): asyncio.set_event_loop_policy(None) @@ -58,6 +63,16 @@ def connection_lost(self, exc): self.done.set_result(None) +class MessageOutFilter(logging.Filter): + def __init__(self, msg): + self.msg = msg + + def filter(self, record): + if self.msg in record.msg: + return False + return True + + @unittest.skipIf(ssl is None, 'No ssl module') class TestSSL(test_utils.TestCase): @@ -149,7 +164,7 @@ def _create_client_ssl_context(self, *, disable_verify=True): def _silence_eof_received_warning(self): # TODO This warning has to be fixed in asyncio. logger = logging.getLogger('asyncio') - filter = logging.Filter('has no effect when using ssl') + filter = MessageOutFilter('has no effect when using ssl') logger.addFilter(filter) try: yield @@ -181,8 +196,8 @@ def test_create_server_ssl_1(self): TOTAL_CNT = 25 # total number of clients that test will create TIMEOUT = support.LONG_TIMEOUT # timeout for this test - A_DATA = b'A' * 1024 * 1024 - B_DATA = b'B' * 1024 * 1024 + A_DATA = b'A' * 1024 * BUF_MULTIPLIER + B_DATA = b'B' * 1024 * BUF_MULTIPLIER sslctx = self._create_server_ssl_context( test_utils.ONLYCERT, test_utils.ONLYKEY @@ -277,8 +292,8 @@ def test_create_connection_ssl_1(self): CNT = 0 TOTAL_CNT = 25 - A_DATA = b'A' * 1024 * 1024 - B_DATA = b'B' * 1024 * 1024 + A_DATA = b'A' * 1024 * BUF_MULTIPLIER + B_DATA = b'B' * 1024 * BUF_MULTIPLIER sslctx = self._create_server_ssl_context( test_utils.ONLYCERT, @@ -1024,8 +1039,8 @@ def test_create_server_ssl_over_ssl(self): TOTAL_CNT = 25 # total number of clients that test will create TIMEOUT = support.LONG_TIMEOUT # timeout for this test - A_DATA = b'A' * 1024 * 1024 - B_DATA = b'B' * 1024 * 1024 + A_DATA = b'A' * 1024 * BUF_MULTIPLIER + B_DATA = b'B' * 1024 * BUF_MULTIPLIER sslctx_1 = self._create_server_ssl_context( test_utils.ONLYCERT, test_utils.ONLYKEY) @@ -1168,7 +1183,7 @@ def test_shutdown_cleanly(self): CNT = 0 TOTAL_CNT = 25 - A_DATA = b'A' * 1024 * 1024 + A_DATA = b'A' * 1024 * BUF_MULTIPLIER sslctx = self._create_server_ssl_context( test_utils.ONLYCERT, test_utils.ONLYKEY) diff --git a/Lib/test/test_asyncio/test_streams.py b/Lib/test/test_asyncio/test_streams.py index 098a0da344d0fb..0c49099bc499a5 100644 --- a/Lib/test/test_asyncio/test_streams.py +++ b/Lib/test/test_asyncio/test_streams.py @@ -864,6 +864,25 @@ def test_streamreaderprotocol_constructor_use_global_loop(self): self.assertEqual(cm.filename, __file__) self.assertIs(protocol._loop, self.loop) + def test_multiple_drain(self): + # See https://github.com/python/cpython/issues/74116 + drained = 0 + + async def drainer(stream): + nonlocal drained + await stream._drain_helper() + drained += 1 + + async def main(): + loop = asyncio.get_running_loop() + stream = asyncio.streams.FlowControlMixin(loop) + stream.pause_writing() + loop.call_later(0.1, stream.resume_writing) + await asyncio.gather(*[drainer(stream) for _ in range(10)]) + self.assertEqual(drained, 10) + + self.loop.run_until_complete(main()) + def test_drain_raises(self): # See http://bugs.python.org/issue25441 diff --git a/Lib/test/test_asyncio/test_subprocess.py b/Lib/test/test_asyncio/test_subprocess.py index 09a5c390b36299..961c463f8dc11b 100644 --- a/Lib/test/test_asyncio/test_subprocess.py +++ b/Lib/test/test_asyncio/test_subprocess.py @@ -50,8 +50,6 @@ def setUp(self): def create_transport(self, waiter=None): protocol = mock.Mock() - protocol.connection_made._is_coroutine = False - protocol.process_exited._is_coroutine = False transport = TestSubprocessTransport( self.loop, protocol, ['test'], False, None, None, None, 0, waiter=waiter) @@ -702,34 +700,40 @@ class SubprocessPidfdWatcherTests(SubprocessWatcherMixin, test_utils.TestCase): Watcher = unix_events.PidfdChildWatcher -else: - # Windows - class SubprocessProactorTests(SubprocessMixin, test_utils.TestCase): - - def setUp(self): - super().setUp() - self.loop = asyncio.ProactorEventLoop() - self.set_event_loop(self.loop) + class GenericWatcherTests(test_utils.TestCase): -class GenericWatcherTests: + def test_create_subprocess_fails_with_inactive_watcher(self): + watcher = mock.create_autospec( + asyncio.AbstractChildWatcher, + **{"__enter__.return_value.is_active.return_value": False} + ) - def test_create_subprocess_fails_with_inactive_watcher(self): + async def execute(): + asyncio.set_child_watcher(watcher) - async def execute(): - watcher = mock.create_authspec(asyncio.AbstractChildWatcher) - watcher.is_active.return_value = False - asyncio.set_child_watcher(watcher) + with self.assertRaises(RuntimeError): + await subprocess.create_subprocess_exec( + os_helper.FakePath(sys.executable), '-c', 'pass') - with self.assertRaises(RuntimeError): - await subprocess.create_subprocess_exec( - os_helper.FakePath(sys.executable), '-c', 'pass') + watcher.add_child_handler.assert_not_called() - watcher.add_child_handler.assert_not_called() - - self.assertIsNone(self.loop.run_until_complete(execute())) + with asyncio.Runner(loop_factory=asyncio.new_event_loop) as runner: + self.assertIsNone(runner.run(execute())) + self.assertListEqual(watcher.mock_calls, [ + mock.call.__enter__(), + mock.call.__enter__().is_active(), + mock.call.__exit__(RuntimeError, mock.ANY, mock.ANY), + ]) +else: + # Windows + class SubprocessProactorTests(SubprocessMixin, test_utils.TestCase): + def setUp(self): + super().setUp() + self.loop = asyncio.ProactorEventLoop() + self.set_event_loop(self.loop) if __name__ == '__main__': diff --git a/Lib/test/test_asyncio/test_taskgroups.py b/Lib/test/test_asyncio/test_taskgroups.py index 69369a6100a8fd..6a0231f2859a62 100644 --- a/Lib/test/test_asyncio/test_taskgroups.py +++ b/Lib/test/test_asyncio/test_taskgroups.py @@ -1,9 +1,10 @@ -# Adapted with permission from the EdgeDB project. +# Adapted with permission from the EdgeDB project; +# license: PSFL. import asyncio import contextvars - +import contextlib from asyncio import taskgroups import unittest @@ -122,10 +123,8 @@ async def runner(): self.assertTrue(t2.cancelled()) async def test_cancel_children_on_child_error(self): - """ - When a child task raises an error, the rest of the children - are cancelled and the errors are gathered into an EG. - """ + # When a child task raises an error, the rest of the children + # are cancelled and the errors are gathered into an EG. NUM = 0 t2_cancel = False @@ -231,29 +230,29 @@ async def runner(): self.assertEqual(NUM, 15) - async def test_cancellation_in_body(self): + async def test_taskgroup_08(self): async def foo(): - await asyncio.sleep(0.1) - 1 / 0 + try: + await asyncio.sleep(10) + finally: + 1 / 0 async def runner(): async with taskgroups.TaskGroup() as g: for _ in range(5): g.create_task(foo()) - try: - await asyncio.sleep(10) - except asyncio.CancelledError: - raise + await asyncio.sleep(10) r = asyncio.create_task(runner()) await asyncio.sleep(0.1) self.assertFalse(r.done()) r.cancel() - with self.assertRaises(asyncio.CancelledError) as cm: + with self.assertRaises(ExceptionGroup) as cm: await r + self.assertEqual(get_error_types(cm.exception), {ZeroDivisionError}) async def test_taskgroup_09(self): @@ -317,8 +316,10 @@ async def runner(): async def test_taskgroup_11(self): async def foo(): - await asyncio.sleep(0.1) - 1 / 0 + try: + await asyncio.sleep(10) + finally: + 1 / 0 async def runner(): async with taskgroups.TaskGroup(): @@ -326,24 +327,26 @@ async def runner(): for _ in range(5): g2.create_task(foo()) - try: - await asyncio.sleep(10) - except asyncio.CancelledError: - raise + await asyncio.sleep(10) r = asyncio.create_task(runner()) await asyncio.sleep(0.1) self.assertFalse(r.done()) r.cancel() - with self.assertRaises(asyncio.CancelledError): + with self.assertRaises(ExceptionGroup) as cm: await r + self.assertEqual(get_error_types(cm.exception), {ExceptionGroup}) + self.assertEqual(get_error_types(cm.exception.exceptions[0]), {ZeroDivisionError}) + async def test_taskgroup_12(self): async def foo(): - await asyncio.sleep(0.1) - 1 / 0 + try: + await asyncio.sleep(10) + finally: + 1 / 0 async def runner(): async with taskgroups.TaskGroup() as g1: @@ -353,19 +356,19 @@ async def runner(): for _ in range(5): g2.create_task(foo()) - try: - await asyncio.sleep(10) - except asyncio.CancelledError: - raise + await asyncio.sleep(10) r = asyncio.create_task(runner()) await asyncio.sleep(0.1) self.assertFalse(r.done()) r.cancel() - with self.assertRaises(asyncio.CancelledError): + with self.assertRaises(ExceptionGroup) as cm: await r + self.assertEqual(get_error_types(cm.exception), {ExceptionGroup}) + self.assertEqual(get_error_types(cm.exception.exceptions[0]), {ZeroDivisionError}) + async def test_taskgroup_13(self): async def crash_after(t): @@ -425,8 +428,9 @@ async def runner(): self.assertFalse(r.done()) r.cancel() - with self.assertRaises(asyncio.CancelledError): + with self.assertRaises(ExceptionGroup) as cm: await r + self.assertEqual(get_error_types(cm.exception), {ZeroDivisionError}) async def test_taskgroup_16(self): @@ -452,8 +456,9 @@ async def runner(): self.assertFalse(r.done()) r.cancel() - with self.assertRaises(asyncio.CancelledError): + with self.assertRaises(ExceptionGroup) as cm: await r + self.assertEqual(get_error_types(cm.exception), {ZeroDivisionError}) async def test_taskgroup_17(self): NUM = 0 @@ -722,6 +727,58 @@ async def coro(val): await t2 self.assertEqual(2, ctx.get(cvar)) + async def test_taskgroup_no_create_task_after_failure(self): + async def coro1(): + await asyncio.sleep(0.001) + 1 / 0 + async def coro2(g): + try: + await asyncio.sleep(1) + except asyncio.CancelledError: + with self.assertRaises(RuntimeError): + g.create_task(c1 := coro1()) + # We still have to await c1 to avoid a warning + with self.assertRaises(ZeroDivisionError): + await c1 + + with self.assertRaises(ExceptionGroup) as cm: + async with taskgroups.TaskGroup() as g: + g.create_task(coro1()) + g.create_task(coro2(g)) + + self.assertEqual(get_error_types(cm.exception), {ZeroDivisionError}) + + async def test_taskgroup_context_manager_exit_raises(self): + # See https://github.com/python/cpython/issues/95289 + class CustomException(Exception): + pass + + async def raise_exc(): + raise CustomException + + @contextlib.asynccontextmanager + async def database(): + try: + yield + finally: + raise CustomException + + async def main(): + task = asyncio.current_task() + try: + async with taskgroups.TaskGroup() as tg: + async with database(): + tg.create_task(raise_exc()) + await asyncio.sleep(1) + except* CustomException as err: + self.assertEqual(task.cancelling(), 0) + self.assertEqual(len(err.exceptions), 2) + + else: + self.fail('CustomException not raised') + + await asyncio.create_task(main()) + if __name__ == "__main__": unittest.main() diff --git a/Lib/test/test_asyncio/test_tasks.py b/Lib/test/test_asyncio/test_tasks.py index 6458859db2d127..de735ba77aae96 100644 --- a/Lib/test/test_asyncio/test_tasks.py +++ b/Lib/test/test_asyncio/test_tasks.py @@ -1,22 +1,18 @@ """Tests for tasks.py.""" import collections -import contextlib import contextvars -import functools import gc import io import random import re import sys -import textwrap import traceback import unittest from unittest import mock from types import GenericAlias import asyncio -from asyncio import coroutines from asyncio import futures from asyncio import tasks from test.test_asyncio import utils as test_utils @@ -1653,6 +1649,7 @@ async def fn2(): self.assertTrue(asyncio.iscoroutinefunction(fn2)) self.assertFalse(asyncio.iscoroutinefunction(mock.Mock())) + self.assertTrue(asyncio.iscoroutinefunction(mock.AsyncMock())) def test_coroutine_non_gen_function(self): async def func(): @@ -2383,13 +2380,7 @@ def add_done_callback(self, *args, **kwargs): return super().add_done_callback(*args, **kwargs) class Task(CommonFuture, BaseTask): - def __init__(self, *args, **kwargs): - self._check_future_called = 0 - super().__init__(*args, **kwargs) - - def _check_future(self, future): - self._check_future_called += 1 - return super()._check_future(future) + pass class Future(CommonFuture, BaseFuture): pass @@ -2415,8 +2406,6 @@ async def func(): dict(fut.calls), {'add_done_callback': 1}) - self.assertEqual(1, task._check_future_called) - # Add patched Task & Future back to the test case cls.Task = Task cls.Future = Future diff --git a/Lib/test/test_asyncio/test_timeouts.py b/Lib/test/test_asyncio/test_timeouts.py index ef1ab0acb390d2..b9bac6f783776b 100644 --- a/Lib/test/test_asyncio/test_timeouts.py +++ b/Lib/test/test_asyncio/test_timeouts.py @@ -4,7 +4,6 @@ import time import asyncio -from asyncio import tasks def tearDownModule(): @@ -106,6 +105,30 @@ async def test_timeout_zero(self): self.assertLess(t1-t0, 2) self.assertTrue(t0 <= cm.when() <= t1) + async def test_timeout_zero_sleep_zero(self): + loop = asyncio.get_running_loop() + t0 = loop.time() + with self.assertRaises(TimeoutError): + async with asyncio.timeout(0) as cm: + await asyncio.sleep(0) + t1 = loop.time() + self.assertTrue(cm.expired()) + # 2 sec for slow CI boxes + self.assertLess(t1-t0, 2) + self.assertTrue(t0 <= cm.when() <= t1) + + async def test_timeout_in_the_past_sleep_zero(self): + loop = asyncio.get_running_loop() + t0 = loop.time() + with self.assertRaises(TimeoutError): + async with asyncio.timeout(-11) as cm: + await asyncio.sleep(0) + t1 = loop.time() + self.assertTrue(cm.expired()) + # 2 sec for slow CI boxes + self.assertLess(t1-t0, 2) + self.assertTrue(t0 >= cm.when() <= t1) + async def test_foreign_exception_passed(self): with self.assertRaises(KeyError): async with asyncio.timeout(0.01) as cm: diff --git a/Lib/test/test_asyncio/test_unix_events.py b/Lib/test/test_asyncio/test_unix_events.py index 2f68459d30cd48..5bad21ecbae4af 100644 --- a/Lib/test/test_asyncio/test_unix_events.py +++ b/Lib/test/test_asyncio/test_unix_events.py @@ -9,7 +9,6 @@ import socket import stat import sys -import tempfile import threading import unittest from unittest import mock @@ -315,11 +314,15 @@ def test_create_unix_connection_pathlib(self): self.loop.run_until_complete(coro) def test_create_unix_server_existing_path_nonsock(self): - with tempfile.NamedTemporaryFile() as file: - coro = self.loop.create_unix_server(lambda: None, file.name) - with self.assertRaisesRegex(OSError, - 'Address.*is already in use'): - self.loop.run_until_complete(coro) + path = test_utils.gen_unix_socket_path() + self.addCleanup(os_helper.unlink, path) + # create the file + open(path, "wb").close() + + coro = self.loop.create_unix_server(lambda: None, path) + with self.assertRaisesRegex(OSError, + 'Address.*is already in use'): + self.loop.run_until_complete(coro) def test_create_unix_server_ssl_bool(self): coro = self.loop.create_unix_server(lambda: None, path='spam', @@ -356,20 +359,18 @@ def test_create_unix_server_path_dgram(self): 'no socket.SOCK_NONBLOCK (linux only)') @socket_helper.skip_unless_bind_unix_socket def test_create_unix_server_path_stream_bittype(self): - sock = socket.socket( - socket.AF_UNIX, socket.SOCK_STREAM | socket.SOCK_NONBLOCK) - with tempfile.NamedTemporaryFile() as file: - fn = file.name - try: - with sock: - sock.bind(fn) - coro = self.loop.create_unix_server(lambda: None, path=None, - sock=sock) - srv = self.loop.run_until_complete(coro) - srv.close() - self.loop.run_until_complete(srv.wait_closed()) - finally: - os.unlink(fn) + fn = test_utils.gen_unix_socket_path() + self.addCleanup(os_helper.unlink, fn) + + sock = socket.socket(socket.AF_UNIX, + socket.SOCK_STREAM | socket.SOCK_NONBLOCK) + with sock: + sock.bind(fn) + coro = self.loop.create_unix_server(lambda: None, path=None, + sock=sock) + srv = self.loop.run_until_complete(coro) + srv.close() + self.loop.run_until_complete(srv.wait_closed()) def test_create_unix_server_ssl_timeout_with_plain_sock(self): coro = self.loop.create_unix_server(lambda: None, path='spam', @@ -1530,7 +1531,7 @@ def test_sigchld_child_reaped_elsewhere(self, m_waitpid): self.watcher._sig_chld() if isinstance(self.watcher, asyncio.FastChildWatcher): - # here the FastChildWatche enters a deadlock + # here the FastChildWatcher enters a deadlock # (there is no way to prevent it) self.assertFalse(callback.called) else: diff --git a/Lib/test/test_asyncio/utils.py b/Lib/test/test_asyncio/utils.py index c32494d40ccea8..96be5a1c3bcf77 100644 --- a/Lib/test/test_asyncio/utils.py +++ b/Lib/test/test_asyncio/utils.py @@ -11,9 +11,7 @@ import socket import socketserver import sys -import tempfile import threading -import time import unittest import weakref @@ -34,6 +32,7 @@ from asyncio import tasks from asyncio.log import logger from test import support +from test.support import socket_helper from test.support import threading_helper @@ -109,13 +108,14 @@ async def once(): def run_until(loop, pred, timeout=support.SHORT_TIMEOUT): - deadline = time.monotonic() + timeout - while not pred(): - if timeout is not None: - timeout = deadline - time.monotonic() - if timeout <= 0: - raise futures.TimeoutError() - loop.run_until_complete(tasks.sleep(0.001)) + delay = 0.001 + for _ in support.busy_retry(timeout, error=False): + if pred(): + break + loop.run_until_complete(tasks.sleep(delay)) + delay = max(delay * 2, 1.0) + else: + raise futures.TimeoutError() def run_once(loop): @@ -250,8 +250,7 @@ class UnixSSLWSGIServer(SSLWSGIServerMixin, SilentUnixWSGIServer): def gen_unix_socket_path(): - with tempfile.NamedTemporaryFile() as file: - return file.name + return socket_helper.create_unix_domain_name() @contextlib.contextmanager diff --git a/Lib/test/test_asyncore.py b/Lib/test/test_asyncore.py index 98ccd3a9304deb..5a037fb9c5d595 100644 --- a/Lib/test/test_asyncore.py +++ b/Lib/test/test_asyncore.py @@ -76,8 +76,7 @@ def capture_server(evt, buf, serv): pass else: n = 200 - start = time.monotonic() - while n > 0 and time.monotonic() - start < 3.0: + for _ in support.busy_retry(support.SHORT_TIMEOUT): r, w, e = select.select([conn], [], [], 0.1) if r: n -= 1 @@ -86,7 +85,8 @@ def capture_server(evt, buf, serv): buf.write(data.replace(b'\n', b'')) if b'\n' in data: break - time.sleep(0.01) + if n <= 0: + break conn.close() finally: diff --git a/Lib/test/test_atexit.py b/Lib/test/test_atexit.py index 7ac063cfc78d3a..913b7556be83af 100644 --- a/Lib/test/test_atexit.py +++ b/Lib/test/test_atexit.py @@ -1,6 +1,5 @@ import atexit import os -import sys import textwrap import unittest from test import support diff --git a/Lib/test/test_audit.py b/Lib/test/test_audit.py index 0fa2d74835cba6..09b3333afe184f 100644 --- a/Lib/test/test_audit.py +++ b/Lib/test/test_audit.py @@ -20,7 +20,7 @@ class AuditTest(unittest.TestCase): @support.requires_subprocess() def do_test(self, *args): with subprocess.Popen( - [sys.executable, "-Xutf8", AUDIT_TESTS_PY, *args], + [sys.executable, "-X utf8", AUDIT_TESTS_PY, *args], encoding="utf-8", stdout=subprocess.PIPE, stderr=subprocess.PIPE, @@ -35,7 +35,7 @@ def do_test(self, *args): def run_python(self, *args): events = [] with subprocess.Popen( - [sys.executable, "-Xutf8", AUDIT_TESTS_PY, *args], + [sys.executable, "-X utf8", AUDIT_TESTS_PY, *args], encoding="utf-8", stdout=subprocess.PIPE, stderr=subprocess.PIPE, @@ -155,10 +155,7 @@ def test_http(self): def test_sqlite3(self): - try: - import sqlite3 - except ImportError: - return + sqlite3 = import_helper.import_module("sqlite3") returncode, events, stderr = self.run_python("test_sqlite3") if returncode: self.fail(stderr) @@ -176,5 +173,32 @@ def test_sqlite3(self): self.assertEqual(actual, expected) + def test_sys_getframe(self): + returncode, events, stderr = self.run_python("test_sys_getframe") + if returncode: + self.fail(stderr) + + if support.verbose: + print(*events, sep='\n') + actual = [(ev[0], ev[2]) for ev in events] + expected = [("sys._getframe", "test_sys_getframe")] + + self.assertEqual(actual, expected) + + + def test_wmi_exec_query(self): + import_helper.import_module("_wmi") + returncode, events, stderr = self.run_python("test_wmi_exec_query") + if returncode: + self.fail(stderr) + + if support.verbose: + print(*events, sep='\n') + actual = [(ev[0], ev[2]) for ev in events] + expected = [("_wmi.exec_query", "SELECT * FROM Win32_OperatingSystem")] + + self.assertEqual(actual, expected) + + if __name__ == "__main__": unittest.main() diff --git a/Lib/test/test_base64.py b/Lib/test/test_base64.py index 217f2945468844..fa03fa1d61ceab 100644 --- a/Lib/test/test_base64.py +++ b/Lib/test/test_base64.py @@ -31,6 +31,8 @@ def test_encodebytes(self): b"YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNE" b"RUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0\nNT" b"Y3ODkhQCMwXiYqKCk7Ojw+LC4gW117fQ==\n") + eq(base64.encodebytes(b"Aladdin:open sesame"), + b"QWxhZGRpbjpvcGVuIHNlc2FtZQ==\n") # Non-bytes eq(base64.encodebytes(bytearray(b'abc')), b'YWJj\n') eq(base64.encodebytes(memoryview(b'abc')), b'YWJj\n') @@ -50,6 +52,8 @@ def test_decodebytes(self): b"ABCDEFGHIJKLMNOPQRSTUVWXYZ" b"0123456789!@#0^&*();:<>,. []{}") eq(base64.decodebytes(b''), b'') + eq(base64.decodebytes(b"QWxhZGRpbjpvcGVuIHNlc2FtZQ==\n"), + b"Aladdin:open sesame") # Non-bytes eq(base64.decodebytes(bytearray(b'YWJj\n')), b'abc') eq(base64.decodebytes(memoryview(b'YWJj\n')), b'abc') @@ -762,14 +766,6 @@ def tearDown(self): def get_output(self, *args): return script_helper.assert_python_ok('-m', 'base64', *args).out - def test_encode_decode(self): - output = self.get_output('-t') - self.assertSequenceEqual(output.splitlines(), ( - b"b'Aladdin:open sesame'", - br"b'QWxhZGRpbjpvcGVuIHNlc2FtZQ==\n'", - b"b'Aladdin:open sesame'", - )) - def test_encode_file(self): with open(os_helper.TESTFN, 'wb') as fp: fp.write(b'a\xffb\n') diff --git a/Lib/test/test_bdb.py b/Lib/test/test_bdb.py index 6ec59531fa88f0..87a5ac308a12df 100644 --- a/Lib/test/test_bdb.py +++ b/Lib/test/test_bdb.py @@ -59,6 +59,7 @@ from itertools import islice, repeat from test.support import import_helper from test.support import os_helper +from test.support import patch_list class BdbException(Exception): pass @@ -713,9 +714,18 @@ def test_until_in_caller_frame(self): with TracerRun(self) as tracer: tracer.runcall(tfunc_main) + @patch_list(sys.meta_path) def test_skip(self): # Check that tracing is skipped over the import statement in # 'tfunc_import()'. + + # Remove all but the standard importers. + sys.meta_path[:] = ( + item + for item in sys.meta_path + if item.__module__.startswith('_frozen_importlib') + ) + code = """ def main(): lno = 3 diff --git a/Lib/test/test_binascii.py b/Lib/test/test_binascii.py index 7087d7a471d3f4..a2d7d0293ce1ae 100644 --- a/Lib/test/test_binascii.py +++ b/Lib/test/test_binascii.py @@ -4,7 +4,7 @@ import binascii import array import re -from test.support import bigmemtest, _1G, _4G, warnings_helper +from test.support import bigmemtest, _1G, _4G # Note: "*_hex" functions are aliases for "(un)hexlify" diff --git a/Lib/test/test_bisect.py b/Lib/test/test_bisect.py index 20f8b9d7c0aa87..97204d4cad3871 100644 --- a/Lib/test/test_bisect.py +++ b/Lib/test/test_bisect.py @@ -257,6 +257,40 @@ def test_insort(self): target ) + def test_insort_keynotNone(self): + x = [] + y = {"a": 2, "b": 1} + for f in (self.module.insort_left, self.module.insort_right): + self.assertRaises(TypeError, f, x, y, key = "b") + + def test_lt_returns_non_bool(self): + class A: + def __init__(self, val): + self.val = val + def __lt__(self, other): + return "nonempty" if self.val < other.val else "" + + data = [A(i) for i in range(100)] + i1 = self.module.bisect_left(data, A(33)) + i2 = self.module.bisect_right(data, A(33)) + self.assertEqual(i1, 33) + self.assertEqual(i2, 34) + + def test_lt_returns_notimplemented(self): + class A: + def __init__(self, val): + self.val = val + def __lt__(self, other): + return NotImplemented + def __gt__(self, other): + return self.val > other.val + + data = [A(i) for i in range(100)] + i1 = self.module.bisect_left(data, A(40)) + i2 = self.module.bisect_right(data, A(40)) + self.assertEqual(i1, 40) + self.assertEqual(i2, 41) + class TestBisectPython(TestBisect, unittest.TestCase): module = py_bisect diff --git a/Lib/test/test_bool.py b/Lib/test/test_bool.py index 4b32aad2419f4a..f46f21da8da351 100644 --- a/Lib/test/test_bool.py +++ b/Lib/test/test_bool.py @@ -369,6 +369,13 @@ def f(x): f(x) self.assertGreaterEqual(x.count, 1) + def test_bool_new(self): + self.assertIs(bool.__new__(bool), False) + self.assertIs(bool.__new__(bool, 1), True) + self.assertIs(bool.__new__(bool, 0), False) + self.assertIs(bool.__new__(bool, False), False) + self.assertIs(bool.__new__(bool, True), True) + if __name__ == "__main__": unittest.main() diff --git a/Lib/test/test_buffer.py b/Lib/test/test_buffer.py index 468c6ea9def923..8ac3b7e7eb29d1 100644 --- a/Lib/test/test_buffer.py +++ b/Lib/test/test_buffer.py @@ -64,7 +64,7 @@ '?':0, 'c':0, 'b':0, 'B':0, 'h':0, 'H':0, 'i':0, 'I':0, 'l':0, 'L':0, 'n':0, 'N':0, - 'f':0, 'd':0, 'P':0 + 'e':0, 'f':0, 'd':0, 'P':0 } # NumPy does not have 'n' or 'N': @@ -89,7 +89,8 @@ 'i':(-(1<<31), 1<<31), 'I':(0, 1<<32), 'l':(-(1<<31), 1<<31), 'L':(0, 1<<32), 'q':(-(1<<63), 1<<63), 'Q':(0, 1<<64), - 'f':(-(1<<63), 1<<63), 'd':(-(1<<1023), 1<<1023) + 'e':(-65519, 65520), 'f':(-(1<<63), 1<<63), + 'd':(-(1<<1023), 1<<1023) } def native_type_range(fmt): @@ -98,6 +99,8 @@ def native_type_range(fmt): lh = (0, 256) elif fmt == '?': lh = (0, 2) + elif fmt == 'e': + lh = (-65519, 65520) elif fmt == 'f': lh = (-(1<<63), 1<<63) elif fmt == 'd': @@ -125,7 +128,10 @@ def native_type_range(fmt): for fmt in fmtdict['@']: fmtdict['@'][fmt] = native_type_range(fmt) +# Format codes suppported by the memoryview object MEMORYVIEW = NATIVE.copy() + +# Format codes suppported by array.array ARRAY = NATIVE.copy() for k in NATIVE: if not k in "bBhHiIlLfd": @@ -164,7 +170,7 @@ def randrange_fmt(mode, char, obj): x = b'\x01' if char == '?': x = bool(x) - if char == 'f' or char == 'd': + if char in 'efd': x = struct.pack(char, x) x = struct.unpack(char, x)[0] return x @@ -2246,7 +2252,7 @@ def test_py_buffer_to_contiguous(self): ### ### Fortran output: ### --------------- - ### >>> fortran_buf = nd.tostring(order='F') + ### >>> fortran_buf = nd.tobytes(order='F') ### >>> fortran_buf ### b'\x00\x04\x08\x01\x05\t\x02\x06\n\x03\x07\x0b' ### @@ -2289,7 +2295,7 @@ def test_py_buffer_to_contiguous(self): self.assertEqual(memoryview(y), memoryview(nd)) if numpy_array: - self.assertEqual(b, na.tostring(order='C')) + self.assertEqual(b, na.tobytes(order='C')) # 'F' request if f == 0: # 'C' to 'F' @@ -2312,7 +2318,7 @@ def test_py_buffer_to_contiguous(self): self.assertEqual(memoryview(y), memoryview(nd)) if numpy_array: - self.assertEqual(b, na.tostring(order='F')) + self.assertEqual(b, na.tobytes(order='F')) # 'A' request if f == ND_FORTRAN: @@ -2336,7 +2342,7 @@ def test_py_buffer_to_contiguous(self): self.assertEqual(memoryview(y), memoryview(nd)) if numpy_array: - self.assertEqual(b, na.tostring(order='A')) + self.assertEqual(b, na.tobytes(order='A')) # multi-dimensional, non-contiguous input nd = ndarray(list(range(12)), shape=[3, 4], flags=ND_WRITABLE|ND_PIL) diff --git a/Lib/test/test_bufio.py b/Lib/test/test_bufio.py index 17151b13615e94..dc9a82dc635318 100644 --- a/Lib/test/test_bufio.py +++ b/Lib/test/test_bufio.py @@ -1,5 +1,4 @@ import unittest -from test import support from test.support import os_helper import io # C implementation. diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py index d5eaf291a5ca28..8c9c1e506752ea 100644 --- a/Lib/test/test_builtin.py +++ b/Lib/test/test_builtin.py @@ -737,11 +737,6 @@ def test_exec_globals(self): self.assertRaises(TypeError, exec, code, {'__builtins__': 123}) - # no __build_class__ function - code = compile("class A: pass", "", "exec") - self.assertRaisesRegex(NameError, "__build_class__ not found", - exec, code, {'__builtins__': {}}) - class frozendict_error(Exception): pass @@ -758,6 +753,15 @@ def __setitem__(self, key, value): self.assertRaises(frozendict_error, exec, code, {'__builtins__': frozen_builtins}) + # no __build_class__ function + code = compile("class A: pass", "", "exec") + self.assertRaisesRegex(NameError, "__build_class__ not found", + exec, code, {'__builtins__': {}}) + # __build_class__ in a custom __builtins__ + exec(code, {'__builtins__': frozen_builtins}) + self.assertRaisesRegex(NameError, "__build_class__ not found", + exec, code, {'__builtins__': frozendict()}) + # read-only globals namespace = frozendict({}) code = compile("x=1", "test", "exec") @@ -2068,6 +2072,11 @@ def test_envar_ignored_when_hook_is_set(self): breakpoint() mock.assert_not_called() + def test_runtime_error_when_hook_is_lost(self): + del sys.breakpointhook + with self.assertRaises(RuntimeError): + breakpoint() + @unittest.skipUnless(pty, "the pty and signal modules must be available") class PtyTests(unittest.TestCase): diff --git a/Lib/test/test_bytes.py b/Lib/test/test_bytes.py index b457ff6ca849c5..53ba1ad6f5911f 100644 --- a/Lib/test/test_bytes.py +++ b/Lib/test/test_bytes.py @@ -715,6 +715,24 @@ def test_mod(self): self.assertEqual(b, b'hello,\x00world!') self.assertIs(type(b), self.type2test) + def check(fmt, vals, result): + b = self.type2test(fmt) + b = b % vals + self.assertEqual(b, result) + self.assertIs(type(b), self.type2test) + + # A set of tests adapted from test_unicode:UnicodeTest.test_formatting + check(b'...%(foo)b...', {b'foo':b"abc"}, b'...abc...') + check(b'...%(f(o)o)b...', {b'f(o)o':b"abc", b'foo':b'bar'}, b'...abc...') + check(b'...%(foo)b...', {b'foo':b"abc",b'def':123}, b'...abc...') + check(b'%*b', (5, b'abc',), b' abc') + check(b'%*b', (-5, b'abc',), b'abc ') + check(b'%*.*b', (5, 2, b'abc',), b' ab') + check(b'%*.*b', (5, 3, b'abc',), b' abc') + check(b'%i %*.*b', (10, 5, 3, b'abc',), b'10 abc') + check(b'%i%b %*.*b', (10, b'3', 5, 3, b'abc',), b'103 abc') + check(b'%c', b'a', b'a') + def test_imod(self): b = self.type2test(b'hello, %b!') orig = b @@ -1710,6 +1728,23 @@ def test_repeat_after_setslice(self): self.assertEqual(b1, b) self.assertEqual(b3, b'xcxcxc') + def test_mutating_index(self): + class Boom: + def __index__(self): + b.clear() + return 0 + + with self.subTest("tp_as_mapping"): + b = bytearray(b'Now you see me...') + with self.assertRaises(IndexError): + b[0] = Boom() + + with self.subTest("tp_as_sequence"): + _testcapi = import_helper.import_module('_testcapi') + b = bytearray(b'Now you see me...') + with self.assertRaises(IndexError): + _testcapi.sequence_setitem(b, 0, Boom()) + class AssortedBytesTest(unittest.TestCase): # diff --git a/Lib/test/test_calendar.py b/Lib/test/test_calendar.py index f76cbc9472a6e8..3d9dcf12f2dad8 100644 --- a/Lib/test/test_calendar.py +++ b/Lib/test/test_calendar.py @@ -564,6 +564,19 @@ def test_locale_calendars(self): new_october = calendar.TextCalendar().formatmonthname(2010, 10, 10) self.assertEqual(old_october, new_october) + def test_locale_calendar_formatweekday(self): + try: + # formatweekday uses different day names based on the available width. + cal = calendar.LocaleTextCalendar(locale='en_US') + # For short widths, a centered, abbreviated name is used. + self.assertEqual(cal.formatweekday(0, 5), " Mon ") + # For really short widths, even the abbreviated name is truncated. + self.assertEqual(cal.formatweekday(0, 2), "Mo") + # For long widths, the full day name is used. + self.assertEqual(cal.formatweekday(0, 10), " Monday ") + except locale.Error: + raise unittest.SkipTest('cannot set the en_US locale') + def test_locale_html_calendar_custom_css_class_month_name(self): try: cal = calendar.LocaleHTMLCalendar(locale='') diff --git a/Lib/test/test_call.py b/Lib/test/test_call.py index 6936f093e3db19..c1a386228ff0d0 100644 --- a/Lib/test/test_call.py +++ b/Lib/test/test_call.py @@ -1,5 +1,5 @@ import unittest -from test.support import cpython_only +from test.support import cpython_only, requires_limited_api try: import _testcapi except ImportError: @@ -9,6 +9,15 @@ import itertools import gc import contextlib +import sys + + +class BadStr(str): + def __eq__(self, other): + return True + def __hash__(self): + # Guaranteed different hash + return str.__hash__(self) ^ 3 class FunctionCalls(unittest.TestCase): @@ -26,6 +35,18 @@ def fn(**kw): self.assertIsInstance(res, dict) self.assertEqual(list(res.items()), expected) + def test_frames_are_popped_after_failed_calls(self): + # GH-93252: stuff blows up if we don't pop the new frame after + # recovering from failed calls: + def f(): + pass + for _ in range(1000): + try: + f(None) + except TypeError: + pass + # BOOM! + @cpython_only class CFunctionCallsErrorMessages(unittest.TestCase): @@ -133,6 +154,18 @@ def test_varargs17_kw(self): self.assertRaisesRegex(TypeError, msg, print, 0, sep=1, end=2, file=3, flush=4, foo=5) + def test_varargs18_kw(self): + # _PyArg_UnpackKeywordsWithVararg() + msg = r"invalid keyword argument for print\(\)$" + with self.assertRaisesRegex(TypeError, msg): + print(0, 1, **{BadStr('foo'): ','}) + + def test_varargs19_kw(self): + # _PyArg_UnpackKeywords() + msg = r"invalid keyword argument for round\(\)$" + with self.assertRaisesRegex(TypeError, msg): + round(1.75, **{BadStr('foo'): 1}) + def test_oldargs0_1(self): msg = r"keys\(\) takes no arguments \(1 given\)" self.assertRaisesRegex(TypeError, msg, {}.keys, 0) @@ -547,6 +580,9 @@ def testfunction_kw(self, *, kw): return self +QUICKENING_WARMUP_DELAY = 8 + + class TestPEP590(unittest.TestCase): def test_method_descriptor_flag(self): @@ -574,9 +610,19 @@ def test_vectorcall_flag(self): self.assertFalse(_testcapi.MethodDescriptorNopGet.__flags__ & Py_TPFLAGS_HAVE_VECTORCALL) self.assertTrue(_testcapi.MethodDescriptor2.__flags__ & Py_TPFLAGS_HAVE_VECTORCALL) - # Mutable heap types should not inherit Py_TPFLAGS_HAVE_VECTORCALL + # Mutable heap types should inherit Py_TPFLAGS_HAVE_VECTORCALL, + # but should lose it when __call__ is overridden class MethodDescriptorHeap(_testcapi.MethodDescriptorBase): pass + self.assertTrue(MethodDescriptorHeap.__flags__ & Py_TPFLAGS_HAVE_VECTORCALL) + MethodDescriptorHeap.__call__ = print + self.assertFalse(MethodDescriptorHeap.__flags__ & Py_TPFLAGS_HAVE_VECTORCALL) + + # Mutable heap types should not inherit Py_TPFLAGS_HAVE_VECTORCALL if + # they define __call__ directly + class MethodDescriptorHeap(_testcapi.MethodDescriptorBase): + def __call__(self): + pass self.assertFalse(MethodDescriptorHeap.__flags__ & Py_TPFLAGS_HAVE_VECTORCALL) def test_vectorcall_override(self): @@ -589,6 +635,58 @@ def test_vectorcall_override(self): f = _testcapi.MethodDescriptorNopGet() self.assertIs(f(*args), args) + def test_vectorcall_override_on_mutable_class(self): + """Setting __call__ should disable vectorcall""" + TestType = _testcapi.make_vectorcall_class() + instance = TestType() + self.assertEqual(instance(), "tp_call") + instance.set_vectorcall(TestType) + self.assertEqual(instance(), "vectorcall") # assume vectorcall is used + TestType.__call__ = lambda self: "custom" + self.assertEqual(instance(), "custom") + + def test_vectorcall_override_with_subclass(self): + """Setting __call__ on a superclass should disable vectorcall""" + SuperType = _testcapi.make_vectorcall_class() + class DerivedType(SuperType): + pass + + instance = DerivedType() + + # Derived types with its own vectorcall should be unaffected + UnaffectedType1 = _testcapi.make_vectorcall_class(DerivedType) + UnaffectedType2 = _testcapi.make_vectorcall_class(SuperType) + + # Aside: Quickly check that the C helper actually made derived types + self.assertTrue(issubclass(UnaffectedType1, DerivedType)) + self.assertTrue(issubclass(UnaffectedType2, SuperType)) + + # Initial state: tp_call + self.assertEqual(instance(), "tp_call") + self.assertEqual(_testcapi.has_vectorcall_flag(SuperType), True) + self.assertEqual(_testcapi.has_vectorcall_flag(DerivedType), True) + self.assertEqual(_testcapi.has_vectorcall_flag(UnaffectedType1), True) + self.assertEqual(_testcapi.has_vectorcall_flag(UnaffectedType2), True) + + # Setting the vectorcall function + instance.set_vectorcall(SuperType) + + self.assertEqual(instance(), "vectorcall") + self.assertEqual(_testcapi.has_vectorcall_flag(SuperType), True) + self.assertEqual(_testcapi.has_vectorcall_flag(DerivedType), True) + self.assertEqual(_testcapi.has_vectorcall_flag(UnaffectedType1), True) + self.assertEqual(_testcapi.has_vectorcall_flag(UnaffectedType2), True) + + # Setting __call__ should remove vectorcall from all subclasses + SuperType.__call__ = lambda self: "custom" + + self.assertEqual(instance(), "custom") + self.assertEqual(_testcapi.has_vectorcall_flag(SuperType), False) + self.assertEqual(_testcapi.has_vectorcall_flag(DerivedType), False) + self.assertEqual(_testcapi.has_vectorcall_flag(UnaffectedType1), True) + self.assertEqual(_testcapi.has_vectorcall_flag(UnaffectedType2), True) + + def test_vectorcall(self): # Test a bunch of different ways to call objects: # 1. vectorcall using PyVectorcall_Call() @@ -665,6 +763,60 @@ def __call__(self, *args): self.assertEqual(expected, meth(*args1, **kwargs)) self.assertEqual(expected, wrapped(*args, **kwargs)) + def test_setvectorcall(self): + from _testcapi import function_setvectorcall + def f(num): return num + 1 + assert_equal = self.assertEqual + num = 10 + assert_equal(11, f(num)) + function_setvectorcall(f) + # make sure specializer is triggered by running > 50 times + for _ in range(10 * QUICKENING_WARMUP_DELAY): + assert_equal("overridden", f(num)) + + def test_setvectorcall_load_attr_specialization_skip(self): + from _testcapi import function_setvectorcall + + class X: + def __getattribute__(self, attr): + return attr + + assert_equal = self.assertEqual + x = X() + assert_equal("a", x.a) + function_setvectorcall(X.__getattribute__) + # make sure specialization doesn't trigger + # when vectorcall is overridden + for _ in range(QUICKENING_WARMUP_DELAY): + assert_equal("overridden", x.a) + + def test_setvectorcall_load_attr_specialization_deopt(self): + from _testcapi import function_setvectorcall + + class X: + def __getattribute__(self, attr): + return attr + + def get_a(x): + return x.a + + assert_equal = self.assertEqual + x = X() + # trigger LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN specialization + for _ in range(QUICKENING_WARMUP_DELAY): + assert_equal("a", get_a(x)) + function_setvectorcall(X.__getattribute__) + # make sure specialized LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN + # gets deopted due to overridden vectorcall + for _ in range(QUICKENING_WARMUP_DELAY): + assert_equal("overridden", get_a(x)) + + @requires_limited_api + def test_vectorcall_limited(self): + from _testcapi import pyobject_vectorcall + obj = _testcapi.LimitedVectorCallClass() + self.assertEqual(pyobject_vectorcall(obj, (), ()), "vectorcall called") + class A: def method_two_args(self, x, y): diff --git a/Lib/test/test_capi.py b/Lib/test/test_capi.py index 95930ba40ceb51..94f080978b030f 100644 --- a/Lib/test/test_capi.py +++ b/Lib/test/test_capi.py @@ -15,6 +15,7 @@ import threading import time import unittest +import warnings import weakref from test import support from test.support import MISSING_C_DOCSTRINGS @@ -70,16 +71,17 @@ def test_no_FatalError_infinite_loop(self): 'import _testcapi;' '_testcapi.crash_no_current_thread()'], stdout=subprocess.PIPE, - stderr=subprocess.PIPE) + stderr=subprocess.PIPE, + text=True) (out, err) = p.communicate() - self.assertEqual(out, b'') + self.assertEqual(out, '') # This used to cause an infinite loop. - self.assertTrue(err.rstrip().startswith( - b'Fatal Python error: ' - b'PyThreadState_Get: ' - b'the function must be called with the GIL held, ' - b'but the GIL is released ' - b'(the current Python thread state is NULL)'), + msg = ("Fatal Python error: PyThreadState_Get: " + "the function must be called with the GIL held, " + "after Python initialization and before Python finalization, " + "but the GIL is released " + "(the current Python thread state is NULL)") + self.assertTrue(err.rstrip().startswith(msg), err) def test_memoryview_from_NULL_pointer(self): @@ -537,6 +539,30 @@ def test_heaptype_with_dict(self): inst = _testcapi.HeapCTypeWithDict() self.assertEqual({}, inst.__dict__) + def test_heaptype_with_managed_dict(self): + inst = _testcapi.HeapCTypeWithManagedDict() + inst.foo = 42 + self.assertEqual(inst.foo, 42) + self.assertEqual(inst.__dict__, {"foo": 42}) + + inst = _testcapi.HeapCTypeWithManagedDict() + self.assertEqual({}, inst.__dict__) + + a = _testcapi.HeapCTypeWithManagedDict() + b = _testcapi.HeapCTypeWithManagedDict() + a.b = b + b.a = a + del a, b + + def test_sublclassing_managed_dict(self): + + class C(_testcapi.HeapCTypeWithManagedDict): + pass + + i = C() + i.spam = i + del i + def test_heaptype_with_negative_dict(self): inst = _testcapi.HeapCTypeWithNegativeDict() inst.foo = 42 @@ -553,6 +579,37 @@ def test_heaptype_with_weakref(self): self.assertEqual(ref(), inst) self.assertEqual(inst.weakreflist, ref) + def test_heaptype_with_managed_weakref(self): + inst = _testcapi.HeapCTypeWithManagedWeakref() + ref = weakref.ref(inst) + self.assertEqual(ref(), inst) + + def test_sublclassing_managed_weakref(self): + + class C(_testcapi.HeapCTypeWithManagedWeakref): + pass + + inst = C() + ref = weakref.ref(inst) + self.assertEqual(ref(), inst) + + def test_sublclassing_managed_both(self): + + class C1(_testcapi.HeapCTypeWithManagedWeakref, _testcapi.HeapCTypeWithManagedDict): + pass + + class C2(_testcapi.HeapCTypeWithManagedDict, _testcapi.HeapCTypeWithManagedWeakref): + pass + + for cls in (C1, C2): + inst = cls() + ref = weakref.ref(inst) + self.assertEqual(ref(), inst) + inst.spam = inst + del inst + ref = weakref.ref(cls()) + self.assertIs(ref(), None) + def test_heaptype_with_buffer(self): inst = _testcapi.HeapCTypeWithBuffer() b = bytes(inst) @@ -618,16 +675,108 @@ def test_heaptype_with_custom_metaclass(self): with self.assertRaisesRegex(TypeError, msg): t = _testcapi.pytype_fromspec_meta(_testcapi.HeapCTypeMetaclassCustomNew) + def test_multiple_inheritance_ctypes_with_weakref_or_dict(self): + + with self.assertRaises(TypeError): + class Both1(_testcapi.HeapCTypeWithWeakref, _testcapi.HeapCTypeWithDict): + pass + with self.assertRaises(TypeError): + class Both2(_testcapi.HeapCTypeWithDict, _testcapi.HeapCTypeWithWeakref): + pass + + def test_multiple_inheritance_ctypes_with_weakref_or_dict_and_other_builtin(self): + + with self.assertRaises(TypeError): + class C1(_testcapi.HeapCTypeWithDict, list): + pass + + with self.assertRaises(TypeError): + class C2(_testcapi.HeapCTypeWithWeakref, list): + pass + + class C3(_testcapi.HeapCTypeWithManagedDict, list): + pass + class C4(_testcapi.HeapCTypeWithManagedWeakref, list): + pass + + inst = C3() + inst.append(0) + str(inst.__dict__) + + inst = C4() + inst.append(0) + str(inst.__weakref__) + + for cls in (_testcapi.HeapCTypeWithManagedDict, _testcapi.HeapCTypeWithManagedWeakref): + for cls2 in (_testcapi.HeapCTypeWithDict, _testcapi.HeapCTypeWithWeakref): + class S(cls, cls2): + pass + class B1(C3, cls): + pass + class B2(C4, cls): + pass + + def test_pytype_fromspec_with_repeated_slots(self): + for variant in range(2): + with self.subTest(variant=variant): + with self.assertRaises(SystemError): + _testcapi.create_type_from_repeated_slots(variant) + + @warnings_helper.ignore_warnings(category=DeprecationWarning) + def test_immutable_type_with_mutable_base(self): + # Add deprecation warning here so it's removed in 3.14 + warnings._deprecated( + 'creating immutable classes with mutable bases', remove=(3, 14)) + + class MutableBase: + def meth(self): + return 'original' + + with self.assertWarns(DeprecationWarning): + ImmutableSubclass = _testcapi.make_immutable_type_with_base( + MutableBase) + instance = ImmutableSubclass() + + self.assertEqual(instance.meth(), 'original') + + # Cannot override the static type's method + with self.assertRaisesRegex( + TypeError, + "cannot set 'meth' attribute of immutable type"): + ImmutableSubclass.meth = lambda self: 'overridden' + self.assertEqual(instance.meth(), 'original') + + # Can change the method on the mutable base + MutableBase.meth = lambda self: 'changed' + self.assertEqual(instance.meth(), 'changed') + + def test_pynumber_tobase(self): from _testcapi import pynumber_tobase - self.assertEqual(pynumber_tobase(123, 2), '0b1111011') - self.assertEqual(pynumber_tobase(123, 8), '0o173') - self.assertEqual(pynumber_tobase(123, 10), '123') - self.assertEqual(pynumber_tobase(123, 16), '0x7b') - self.assertEqual(pynumber_tobase(-123, 2), '-0b1111011') - self.assertEqual(pynumber_tobase(-123, 8), '-0o173') - self.assertEqual(pynumber_tobase(-123, 10), '-123') - self.assertEqual(pynumber_tobase(-123, 16), '-0x7b') + small_number = 123 + large_number = 2**64 + class IDX: + def __init__(self, val): + self.val = val + def __index__(self): + return self.val + + test_cases = ((2, '0b1111011', '0b10000000000000000000000000000000000000000000000000000000000000000'), + (8, '0o173', '0o2000000000000000000000'), + (10, '123', '18446744073709551616'), + (16, '0x7b', '0x10000000000000000')) + for base, small_target, large_target in test_cases: + with self.subTest(base=base, st=small_target, lt=large_target): + # Test for small number + self.assertEqual(pynumber_tobase(small_number, base), small_target) + self.assertEqual(pynumber_tobase(-small_number, base), '-' + small_target) + self.assertEqual(pynumber_tobase(IDX(small_number), base), small_target) + # Test for large number(out of range of a longlong,i.e.[-2**63, 2**63-1]) + self.assertEqual(pynumber_tobase(large_number, base), large_target) + self.assertEqual(pynumber_tobase(-large_number, base), '-' + large_target) + self.assertEqual(pynumber_tobase(IDX(large_number), base), large_target) + self.assertRaises(TypeError, pynumber_tobase, IDX(123.0), 10) + self.assertRaises(TypeError, pynumber_tobase, IDX('123'), 10) self.assertRaises(TypeError, pynumber_tobase, 123.0, 10) self.assertRaises(TypeError, pynumber_tobase, '123', 10) self.assertRaises(SystemError, pynumber_tobase, 123, 0) @@ -715,6 +864,20 @@ def test_export_symbols(self): with self.subTest(name=name): self.assertTrue(hasattr(ctypes.pythonapi, name)) + def test_clear_managed_dict(self): + + class C: + def __init__(self): + self.a = 1 + + c = C() + _testcapi.clear_managed_dict(c) + self.assertEqual(c.__dict__, {}) + c = C() + self.assertEqual(c.__dict__, {'a':1}) + _testcapi.clear_managed_dict(c) + self.assertEqual(c.__dict__, {}) + class TestPendingCalls(unittest.TestCase): @@ -906,6 +1069,21 @@ def callback(): t.start() t.join() + @threading_helper.reap_threads + @threading_helper.requires_working_threading() + def test_gilstate_ensure_no_deadlock(self): + # See https://github.com/python/cpython/issues/96071 + code = textwrap.dedent(f""" + import _testcapi + + def callback(): + print('callback called') + + _testcapi._test_thread_state(callback) + """) + ret = assert_python_ok('-X', 'tracemalloc', '-c', code) + self.assertIn(b'callback called', ret.out) + class Test_testcapi(unittest.TestCase): locals().update((name, getattr(_testcapi, name)) diff --git a/Lib/test/test_check_c_globals.py b/Lib/test/test_check_c_globals.py index 030debc452e409..898807a5e69259 100644 --- a/Lib/test/test_check_c_globals.py +++ b/Lib/test/test_check_c_globals.py @@ -1,9 +1,14 @@ import unittest import test.test_tools +from test.support.warnings_helper import save_restore_warnings_filters test.test_tools.skip_if_missing('c-analyzer') with test.test_tools.imports_under_tool('c-analyzer'): - from cpython.__main__ import main + # gh-95349: Save/restore warnings filters to leave them unchanged. + # Importing the c-analyzer imports docutils which imports pkg_resources + # which adds a warnings filter. + with save_restore_warnings_filters(): + from cpython.__main__ import main class ActualChecks(unittest.TestCase): diff --git a/Lib/test/test_cmd_line.py b/Lib/test/test_cmd_line.py index ed733d2f616665..db967088804ae2 100644 --- a/Lib/test/test_cmd_line.py +++ b/Lib/test/test_cmd_line.py @@ -25,32 +25,55 @@ def _kill_python_and_exit_code(p): returncode = p.wait() return data, returncode + class CmdLineTest(unittest.TestCase): def test_directories(self): assert_python_failure('.') assert_python_failure('< .') def verify_valid_flag(self, cmd_line): - rc, out, err = assert_python_ok(*cmd_line) + rc, out, err = assert_python_ok(cmd_line) self.assertTrue(out == b'' or out.endswith(b'\n')) self.assertNotIn(b'Traceback', out) self.assertNotIn(b'Traceback', err) + return out - def test_optimize(self): - self.verify_valid_flag('-O') - self.verify_valid_flag('-OO') + def test_help(self): + self.verify_valid_flag('-h') + self.verify_valid_flag('-?') + out = self.verify_valid_flag('--help') + lines = out.splitlines() + self.assertIn(b'usage', lines[0]) + self.assertNotIn(b'PYTHONHOME', out) + self.assertNotIn(b'-X dev', out) + self.assertLess(len(lines), 50) - def test_site_flag(self): - self.verify_valid_flag('-S') + def test_help_env(self): + out = self.verify_valid_flag('--help-env') + self.assertIn(b'PYTHONHOME', out) + + def test_help_xoptions(self): + out = self.verify_valid_flag('--help-xoptions') + self.assertIn(b'-X dev', out) - def test_usage(self): - rc, out, err = assert_python_ok('-h') + def test_help_all(self): + out = self.verify_valid_flag('--help-all') lines = out.splitlines() self.assertIn(b'usage', lines[0]) + self.assertIn(b'PYTHONHOME', out) + self.assertIn(b'-X dev', out) + # The first line contains the program name, # but the rest should be ASCII-only b''.join(lines[1:]).decode('ascii') + def test_optimize(self): + self.verify_valid_flag('-O') + self.verify_valid_flag('-OO') + + def test_site_flag(self): + self.verify_valid_flag('-S') + def test_version(self): version = ('Python %d.%d' % sys.version_info[:2]).encode("ascii") for switch in '-V', '--version', '-VV': @@ -82,17 +105,8 @@ def get_xoptions(*args): opts = get_xoptions() self.assertEqual(opts, {}) - opts = get_xoptions('-Xno_debug_ranges', '-Xdev=1234') - self.assertEqual(opts, {'no_debug_ranges': True, 'dev': '1234'}) - - @unittest.skipIf(interpreter_requires_environment(), - 'Cannot run -E tests when PYTHON env vars are required.') - def test_unknown_xoptions(self): - rc, out, err = assert_python_failure('-X', 'blech') - self.assertIn(b'Unknown value for option -X', err) - msg = b'Fatal Python error: Unknown value for option -X' - self.assertEqual(err.splitlines().count(msg), 1) - self.assertEqual(b'', out) + opts = get_xoptions('-Xa', '-Xb=c,d=e') + self.assertEqual(opts, {'a': True, 'b': 'c,d=e'}) def test_showrefcount(self): def run_python(*args): @@ -134,7 +148,6 @@ def test_xoption_frozen_modules(self): } for raw, expected in tests: cmd = ['-X', f'frozen_modules{raw}', - #'-c', 'import os; print(os.__spec__.loader.__name__, end="")'] '-c', 'import os; print(os.__spec__.loader, end="")'] with self.subTest(raw): res = assert_python_ok(*cmd) @@ -167,7 +180,6 @@ def test_relativedir_bug46421(self): # Test `python -m unittest` with a relative directory beginning with ./ # Note: We have to switch to the project's top module's directory, as per # the python unittest wiki. We will switch back when we are done. - defaultwd = os.getcwd() projectlibpath = os.path.dirname(__file__).removesuffix("test") with os_helper.change_cwd(projectlibpath): # Testing with and without ./ @@ -247,7 +259,6 @@ def test_invalid_utf8_arg(self): # # Test with default config, in the C locale, in the Python UTF-8 Mode. code = 'import sys, os; s=os.fsencode(sys.argv[1]); print(ascii(s))' - base_cmd = [sys.executable, '-c', code] def run_default(arg): cmd = [sys.executable, '-c', code, arg] @@ -854,6 +865,39 @@ def test_parsing_error(self): self.assertTrue(proc.stderr.startswith(err_msg), proc.stderr) self.assertNotEqual(proc.returncode, 0) + def test_int_max_str_digits(self): + code = "import sys; print(sys.flags.int_max_str_digits, sys.get_int_max_str_digits())" + + assert_python_failure('-X', 'int_max_str_digits', '-c', code) + assert_python_failure('-X', 'int_max_str_digits=foo', '-c', code) + assert_python_failure('-X', 'int_max_str_digits=100', '-c', code) + + assert_python_failure('-c', code, PYTHONINTMAXSTRDIGITS='foo') + assert_python_failure('-c', code, PYTHONINTMAXSTRDIGITS='100') + + def res2int(res): + out = res.out.strip().decode("utf-8") + return tuple(int(i) for i in out.split()) + + res = assert_python_ok('-c', code) + self.assertEqual(res2int(res), (-1, sys.get_int_max_str_digits())) + res = assert_python_ok('-X', 'int_max_str_digits=0', '-c', code) + self.assertEqual(res2int(res), (0, 0)) + res = assert_python_ok('-X', 'int_max_str_digits=4000', '-c', code) + self.assertEqual(res2int(res), (4000, 4000)) + res = assert_python_ok('-X', 'int_max_str_digits=100000', '-c', code) + self.assertEqual(res2int(res), (100000, 100000)) + + res = assert_python_ok('-c', code, PYTHONINTMAXSTRDIGITS='0') + self.assertEqual(res2int(res), (0, 0)) + res = assert_python_ok('-c', code, PYTHONINTMAXSTRDIGITS='4000') + self.assertEqual(res2int(res), (4000, 4000)) + res = assert_python_ok( + '-X', 'int_max_str_digits=6000', '-c', code, + PYTHONINTMAXSTRDIGITS='4000' + ) + self.assertEqual(res2int(res), (6000, 6000)) + @unittest.skipIf(interpreter_requires_environment(), 'Cannot run -I tests when PYTHON env vars are required.') @@ -892,6 +936,7 @@ def test_sys_flags_not_set(self): PYTHONSAFEPATH="1", ) + class SyntaxErrorTests(unittest.TestCase): def check_string(self, code): proc = subprocess.run([sys.executable, "-"], input=code, diff --git a/Lib/test/test_cmd_line_script.py b/Lib/test/test_cmd_line_script.py index d783af65839ad9..9e98edf2146ca9 100644 --- a/Lib/test/test_cmd_line_script.py +++ b/Lib/test/test_cmd_line_script.py @@ -549,10 +549,10 @@ def test_pep_409_verbiage(self): script_name = _make_test_script(script_dir, 'script', script) exitcode, stdout, stderr = assert_python_failure(script_name) text = stderr.decode('ascii').split('\n') - self.assertEqual(len(text), 6) + self.assertEqual(len(text), 5) self.assertTrue(text[0].startswith('Traceback')) self.assertTrue(text[1].startswith(' File ')) - self.assertTrue(text[4].startswith('NameError')) + self.assertTrue(text[3].startswith('NameError')) def test_non_ascii(self): # Mac OS X denies the creation of a file with an invalid UTF-8 name. diff --git a/Lib/test/test_code.py b/Lib/test/test_code.py index 1bb138e7f3243b..2386cf6b59f396 100644 --- a/Lib/test/test_code.py +++ b/Lib/test/test_code.py @@ -141,6 +141,7 @@ check_impl_detail, requires_debug_ranges, gc_collect) from test.support.script_helper import assert_python_ok +from test.support import threading_helper from opcode import opmap COPY_FREE_VARS = opmap['COPY_FREE_VARS'] @@ -375,7 +376,6 @@ def test_co_positions_artificial_instructions(self): for instruction in artificial_instructions ], [ - ('RESUME', 0), ("PUSH_EXC_INFO", None), ("LOAD_CONST", None), # artificial 'None' ("STORE_NAME", "e"), # XX: we know the location for this @@ -428,6 +428,27 @@ def func(): self.assertIsNone(line) self.assertEqual(end_line, new_code.co_firstlineno + 1) + def test_code_equality(self): + def f(): + try: + a() + except: + b() + else: + c() + finally: + d() + code_a = f.__code__ + code_b = code_a.replace(co_linetable=b"") + code_c = code_a.replace(co_exceptiontable=b"") + code_d = code_b.replace(co_exceptiontable=b"") + self.assertNotEqual(code_a, code_b) + self.assertNotEqual(code_a, code_c) + self.assertNotEqual(code_a, code_d) + self.assertNotEqual(code_b, code_c) + self.assertNotEqual(code_b, code_d) + self.assertNotEqual(code_c, code_d) + def isinterned(s): return s is sys.intern(('_' + s + '_')[1:-1]) @@ -574,6 +595,15 @@ def positions_from_location_table(code): for _ in range(length): yield (line, end_line, col, end_col) +def dedup(lst, prev=object()): + for item in lst: + if item != prev: + yield item + prev = item + +def lines_from_postions(positions): + return dedup(l for (l, _, _, _) in positions) + def misshappen(): """ @@ -606,6 +636,13 @@ def misshappen(): ) else p +def bug93662(): + example_report_generation_message= ( + """ + """ + ).strip() + raise ValueError() + class CodeLocationTest(unittest.TestCase): @@ -616,10 +653,23 @@ def check_positions(self, func): self.assertEqual(l1, l2) self.assertEqual(len(pos1), len(pos2)) - def test_positions(self): self.check_positions(parse_location_table) self.check_positions(misshappen) + self.check_positions(bug93662) + + def check_lines(self, func): + co = func.__code__ + lines1 = list(dedup(l for (_, _, l) in co.co_lines())) + lines2 = list(lines_from_postions(positions_from_location_table(co))) + for l1, l2 in zip(lines1, lines2): + self.assertEqual(l1, l2) + self.assertEqual(len(lines1), len(lines2)) + + def test_lines(self): + self.check_lines(parse_location_table) + self.check_lines(misshappen) + self.check_lines(bug93662) if check_impl_detail(cpython=True) and ctypes is not None: @@ -694,6 +744,7 @@ def test_get_set(self): self.assertEqual(extra.value, 300) del f + @threading_helper.requires_working_threading() def test_free_different_thread(self): # Freeing a code object on a different thread then # where the co_extra was set should be safe. diff --git a/Lib/test/test_codecs.py b/Lib/test/test_codecs.py index 42c600dcb00de1..57f3648eb7017c 100644 --- a/Lib/test/test_codecs.py +++ b/Lib/test/test_codecs.py @@ -9,7 +9,6 @@ from test import support from test.support import os_helper -from test.support import warnings_helper try: import _testcapi diff --git a/Lib/test/test_codeop.py b/Lib/test/test_codeop.py index 17376c7ed7537e..133096d25a44bc 100644 --- a/Lib/test/test_codeop.py +++ b/Lib/test/test_codeop.py @@ -321,6 +321,26 @@ def test_warning(self): warnings.simplefilter('error', SyntaxWarning) compile_command('1 is 1', symbol='exec') + # Check DeprecationWarning treated as an SyntaxError + with warnings.catch_warnings(), self.assertRaises(SyntaxError): + warnings.simplefilter('error', DeprecationWarning) + compile_command(r"'\e'", symbol='exec') + + def test_incomplete_warning(self): + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter('always') + self.assertIncomplete("'\\e' + (") + self.assertEqual(w, []) + + def test_invalid_warning(self): + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter('always') + self.assertInvalid("'\\e' 1") + self.assertEqual(len(w), 1) + self.assertEqual(w[0].category, DeprecationWarning) + self.assertRegex(str(w[0].message), 'invalid escape sequence') + self.assertEqual(w[0].filename, '<input>') + if __name__ == "__main__": unittest.main() diff --git a/Lib/test/test_compile.py b/Lib/test/test_compile.py index d4357243ddabf4..3ed57c2a5d2763 100644 --- a/Lib/test/test_compile.py +++ b/Lib/test/test_compile.py @@ -8,6 +8,7 @@ import tempfile import types import textwrap +import warnings from test import support from test.support import script_helper, requires_debug_ranges from test.support.os_helper import FakePath @@ -108,6 +109,7 @@ def __getitem__(self, key): exec('z = a', g, d) self.assertEqual(d['z'], 12) + @unittest.skipIf(support.is_wasi, "exhausts limited stack on WASI") def test_extended_arg(self): # default: 1000 * 2.5 = 2500 repetitions repeat = int(sys.getrecursionlimit() * 2.5) @@ -161,7 +163,7 @@ def test_leading_newlines(self): co = compile(s256, 'fn', 'exec') self.assertEqual(co.co_firstlineno, 1) lines = list(co.co_lines()) - self.assertEqual(lines[0][2], None) + self.assertEqual(lines[0][2], 0) self.assertEqual(lines[1][2], 257) def test_literals_with_leading_zeroes(self): @@ -197,6 +199,19 @@ def test_literals_with_leading_zeroes(self): self.assertEqual(eval("0o777"), 511) self.assertEqual(eval("-0o0000010"), -8) + def test_int_literals_too_long(self): + n = 3000 + source = f"a = 1\nb = 2\nc = {'3'*n}\nd = 4" + with support.adjust_int_max_str_digits(n): + compile(source, "<long_int_pass>", "exec") # no errors. + with support.adjust_int_max_str_digits(n-1): + with self.assertRaises(SyntaxError) as err_ctx: + compile(source, "<long_int_fail>", "exec") + exc = err_ctx.exception + self.assertEqual(exc.lineno, 3) + self.assertIn('Exceeds the limit ', str(exc)) + self.assertIn(' Consider hexadecimal ', str(exc)) + def test_unary_minus(self): # Verify treatment of unary minus on negative numbers SF bug #660455 if sys.maxsize == 2147483647: @@ -542,6 +557,7 @@ def test_yet_more_evil_still_undecodable(self): self.assertIn(b"Non-UTF-8", res.err) @support.cpython_only + @unittest.skipIf(support.is_wasi, "exhausts limited stack on WASI") def test_compiler_recursion_limit(self): # Expected limit is sys.getrecursionlimit() * the scaling factor # in symtable.c (currently 3) @@ -613,7 +629,7 @@ def check_same_constant(const): exec(code, ns) f1 = ns['f1'] f2 = ns['f2'] - self.assertIs(f1.__code__, f2.__code__) + self.assertIs(f1.__code__.co_consts, f2.__code__.co_consts) self.check_constant(f1, const) self.assertEqual(repr(f1()), repr(const)) @@ -626,7 +642,7 @@ def check_same_constant(const): # Note: "lambda: ..." emits "LOAD_CONST Ellipsis", # whereas "lambda: Ellipsis" emits "LOAD_GLOBAL Ellipsis" f1, f2 = lambda: ..., lambda: ... - self.assertIs(f1.__code__, f2.__code__) + self.assertIs(f1.__code__.co_consts, f2.__code__.co_consts) self.check_constant(f1, Ellipsis) self.assertEqual(repr(f1()), repr(Ellipsis)) @@ -641,7 +657,7 @@ def check_same_constant(const): # {0} is converted to a constant frozenset({0}) by the peephole # optimizer f1, f2 = lambda x: x in {0}, lambda x: x in {0} - self.assertIs(f1.__code__, f2.__code__) + self.assertIs(f1.__code__.co_consts, f2.__code__.co_consts) self.check_constant(f1, frozenset({0})) self.assertTrue(f1(0)) @@ -1026,6 +1042,42 @@ def while_not_chained(a, b, c): for instr in dis.Bytecode(while_not_chained): self.assertNotEqual(instr.opname, "EXTENDED_ARG") + @support.cpython_only + def test_uses_slice_instructions(self): + + def check_op_count(func, op, expected): + actual = 0 + for instr in dis.Bytecode(func): + if instr.opname == op: + actual += 1 + self.assertEqual(actual, expected) + + def load(): + return x[a:b] + x [a:] + x[:b] + x[:] + + def store(): + x[a:b] = y + x [a:] = y + x[:b] = y + x[:] = y + + def long_slice(): + return x[a:b:c] + + def aug(): + x[a:b] += y + + check_op_count(load, "BINARY_SLICE", 4) + check_op_count(load, "BUILD_SLICE", 0) + check_op_count(store, "STORE_SLICE", 4) + check_op_count(store, "BUILD_SLICE", 0) + check_op_count(long_slice, "BUILD_SLICE", 1) + check_op_count(long_slice, "BINARY_SLICE", 0) + check_op_count(aug, "BINARY_SLICE", 1) + check_op_count(aug, "STORE_SLICE", 1) + check_op_count(aug, "BUILD_SLICE", 0) + + @requires_debug_ranges() class TestSourcePositions(unittest.TestCase): # Ensure that compiled code snippets have correct line and column numbers @@ -1054,6 +1106,8 @@ def generic_visit(self, node): # Check against the positions in the code object. for (line, end_line, col, end_col) in code.co_positions(): + if line == 0: + continue # This is an artificial module-start line # If the offset is not None (indicating missing data), ensure that # it was part of one of the AST nodes. if line is not None: @@ -1143,6 +1197,148 @@ def test_complex_single_line_expression(self): self.assertOpcodeSourcePositionIs(compiled_code, 'BINARY_OP', line=1, end_line=1, column=0, end_column=27, occurrence=4) + def test_multiline_assert_rewritten_as_method_call(self): + # GH-94694: Don't crash if pytest rewrites a multiline assert as a + # method call with the same location information: + tree = ast.parse("assert (\n42\n)") + old_node = tree.body[0] + new_node = ast.Expr( + ast.Call( + ast.Attribute( + ast.Name("spam", ast.Load()), + "eggs", + ast.Load(), + ), + [], + [], + ) + ) + ast.copy_location(new_node, old_node) + ast.fix_missing_locations(new_node) + tree.body[0] = new_node + compile(tree, "<test>", "exec") + + def test_push_null_load_global_positions(self): + source_template = """ + import abc, dis + import ast as art + + abc = None + dix = dis + ast = art + + def f(): + {} + """ + for body in [ + " abc.a()", + " art.a()", + " ast.a()", + " dis.a()", + " dix.a()", + " abc[...]()", + " art()()", + " (ast or ...)()", + " [dis]()", + " (dix + ...)()", + ]: + with self.subTest(body): + namespace = {} + source = textwrap.dedent(source_template.format(body)) + with warnings.catch_warnings(): + warnings.simplefilter('ignore', SyntaxWarning) + exec(source, namespace) + code = namespace["f"].__code__ + self.assertOpcodeSourcePositionIs( + code, + "LOAD_GLOBAL", + line=10, + end_line=10, + column=4, + end_column=7, + ) + + def test_attribute_augassign(self): + source = "(\n lhs \n . \n rhs \n ) += 42" + code = compile(source, "<test>", "exec") + self.assertOpcodeSourcePositionIs( + code, "LOAD_ATTR", line=4, end_line=4, column=5, end_column=8 + ) + self.assertOpcodeSourcePositionIs( + code, "STORE_ATTR", line=4, end_line=4, column=5, end_column=8 + ) + + def test_attribute_del(self): + source = "del (\n lhs \n . \n rhs \n )" + code = compile(source, "<test>", "exec") + self.assertOpcodeSourcePositionIs( + code, "DELETE_ATTR", line=4, end_line=4, column=5, end_column=8 + ) + + def test_attribute_load(self): + source = "(\n lhs \n . \n rhs \n )" + code = compile(source, "<test>", "exec") + self.assertOpcodeSourcePositionIs( + code, "LOAD_ATTR", line=4, end_line=4, column=5, end_column=8 + ) + + def test_attribute_store(self): + source = "(\n lhs \n . \n rhs \n ) = 42" + code = compile(source, "<test>", "exec") + self.assertOpcodeSourcePositionIs( + code, "STORE_ATTR", line=4, end_line=4, column=5, end_column=8 + ) + + def test_method_call(self): + source = "(\n lhs \n . \n rhs \n )()" + code = compile(source, "<test>", "exec") + self.assertOpcodeSourcePositionIs( + code, "LOAD_ATTR", line=4, end_line=4, column=5, end_column=8 + ) + self.assertOpcodeSourcePositionIs( + code, "CALL", line=4, end_line=5, column=5, end_column=10 + ) + + def test_weird_attribute_position_regressions(self): + def f(): + (bar. + baz) + (bar. + baz( + )) + files().setdefault( + 0 + ).setdefault( + 0 + ) + for line, end_line, column, end_column in f.__code__.co_positions(): + self.assertIsNotNone(line) + self.assertIsNotNone(end_line) + self.assertIsNotNone(column) + self.assertIsNotNone(end_column) + self.assertLessEqual((line, column), (end_line, end_column)) + + @support.cpython_only + def test_column_offset_deduplication(self): + # GH-95150: Code with different column offsets shouldn't be merged! + for source in [ + "lambda: a", + "(a for b in c)", + "[a for b in c]", + "{a for b in c}", + "{a: b for c in d}", + ]: + with self.subTest(source): + code = compile(f"{source}, {source}", "<test>", "eval") + self.assertEqual(len(code.co_consts), 2) + self.assertIsInstance(code.co_consts[0], types.CodeType) + self.assertIsInstance(code.co_consts[1], types.CodeType) + self.assertNotEqual(code.co_consts[0], code.co_consts[1]) + self.assertNotEqual( + list(code.co_consts[0].co_positions()), + list(code.co_consts[1].co_positions()), + ) + class TestExpressionStackSize(unittest.TestCase): # These tests check that the computed stack size for a code object @@ -1207,6 +1403,12 @@ def test_func_and(self): code += " x and x\n" * self.N self.check_stack_size(code) + def test_stack_3050(self): + M = 3050 + code = "x," * M + "=t" + # This raised on 3.10.0 to 3.10.5 + compile(code, "<foo>", "single") + class TestStackSizeStability(unittest.TestCase): # Check that repeating certain snippets doesn't increase the stack size diff --git a/Lib/test/test_compileall.py b/Lib/test/test_compileall.py index 1a9fc973c3aa12..73c83c9bf1efee 100644 --- a/Lib/test/test_compileall.py +++ b/Lib/test/test_compileall.py @@ -434,6 +434,9 @@ class CompileallTestsWithoutSourceEpoch(CompileallTestsBase, pass +# WASI does not have a temp directory and uses cwd instead. The cwd contains +# non-ASCII chars, so _walk_dir() fails to encode self.directory. +@unittest.skipIf(support.is_wasi, "tempdir is not encodable on WASI") class EncodingTest(unittest.TestCase): """Issue 6716: compileall should escape source code when printing errors to stdout.""" diff --git a/Lib/test/test_concurrent_futures.py b/Lib/test/test_concurrent_futures.py index 6f3b4609232bbb..fe9fdc4f44d37b 100644 --- a/Lib/test/test_concurrent_futures.py +++ b/Lib/test/test_concurrent_futures.py @@ -256,12 +256,13 @@ def test_initializer(self): else: with self.assertRaises(BrokenExecutor): future.result() + # At some point, the executor should break - t1 = time.monotonic() - while not self.executor._broken: - if time.monotonic() - t1 > 5: - self.fail("executor not broken after 5 s.") - time.sleep(0.01) + for _ in support.sleeping_retry(support.SHORT_TIMEOUT, + "executor not broken"): + if self.executor._broken: + break + # ... and from this point submit() is guaranteed to fail with self.assertRaises(BrokenExecutor): self.executor.submit(get_init_status) @@ -484,7 +485,7 @@ def test_cancel_futures_wait_false(self): t = ThreadPoolExecutor() t.submit(sleep_and_print, .1, "apple") t.shutdown(wait=False, cancel_futures=True) - """.format(executor_type=self.executor_type.__name__)) + """) # Errors in atexit hooks don't change the process exit code, check # stderr manually. self.assertFalse(err) @@ -931,6 +932,33 @@ def submit(pool): with futures.ProcessPoolExecutor(1, mp_context=mp.get_context('fork')) as workers: workers.submit(tuple) + def test_executor_map_current_future_cancel(self): + stop_event = threading.Event() + log = [] + + def log_n_wait(ident): + log.append(f"{ident=} started") + try: + stop_event.wait() + finally: + log.append(f"{ident=} stopped") + + with self.executor_type(max_workers=1) as pool: + # submit work to saturate the pool + fut = pool.submit(log_n_wait, ident="first") + try: + with contextlib.closing( + pool.map(log_n_wait, ["second", "third"], timeout=0) + ) as gen: + with self.assertRaises(TimeoutError): + next(gen) + finally: + stop_event.set() + fut.result() + # ident='second' is cancelled as a result of raising a TimeoutError + # ident='third' is cancelled because it remained in the collection of futures + self.assertListEqual(log, ["ident='first' started", "ident='first' stopped"]) + class ProcessPoolExecutorTest(ExecutorTest): diff --git a/Lib/test/test_configparser.py b/Lib/test/test_configparser.py index 59c4b275cb46d7..da17c00063c56d 100644 --- a/Lib/test/test_configparser.py +++ b/Lib/test/test_configparser.py @@ -114,7 +114,7 @@ def basic_test(self, cf): # The use of spaces in the section names serves as a # regression test for SourceForge bug #583248: - # http://www.python.org/sf/583248 + # https://bugs.python.org/issue583248 # API access eq(cf.get('Foo Bar', 'foo'), 'bar1') @@ -932,7 +932,7 @@ def test_items(self): ('name', 'value')]) def test_safe_interpolation(self): - # See http://www.python.org/sf/511737 + # See https://bugs.python.org/issue511737 cf = self.fromstring("[section]\n" "option1{eq}xxx\n" "option2{eq}%(option1)s/xxx\n" @@ -1612,23 +1612,12 @@ def test_interpolation_depth_error(self): self.assertEqual(error.section, 'section') def test_parsing_error(self): - with self.assertRaises(ValueError) as cm: + with self.assertRaises(TypeError) as cm: configparser.ParsingError() - self.assertEqual(str(cm.exception), "Required argument `source' not " - "given.") - with self.assertRaises(ValueError) as cm: - configparser.ParsingError(source='source', filename='filename') - self.assertEqual(str(cm.exception), "Cannot specify both `filename' " - "and `source'. Use `source'.") - error = configparser.ParsingError(filename='source') + error = configparser.ParsingError(source='source') + self.assertEqual(error.source, 'source') + error = configparser.ParsingError('source') self.assertEqual(error.source, 'source') - with warnings.catch_warnings(record=True) as w: - warnings.simplefilter("always", DeprecationWarning) - self.assertEqual(error.filename, 'source') - error.filename = 'filename' - self.assertEqual(error.source, 'filename') - for warning in w: - self.assertTrue(warning.category is DeprecationWarning) def test_interpolation_validation(self): parser = configparser.ConfigParser() @@ -1647,27 +1636,6 @@ def test_interpolation_validation(self): self.assertEqual(str(cm.exception), "bad interpolation variable " "reference '%(()'") - def test_readfp_deprecation(self): - sio = io.StringIO(""" - [section] - option = value - """) - parser = configparser.ConfigParser() - with warnings.catch_warnings(record=True) as w: - warnings.simplefilter("always", DeprecationWarning) - parser.readfp(sio, filename='StringIO') - for warning in w: - self.assertTrue(warning.category is DeprecationWarning) - self.assertEqual(len(parser), 2) - self.assertEqual(parser['section']['option'], 'value') - - def test_safeconfigparser_deprecation(self): - with warnings.catch_warnings(record=True) as w: - warnings.simplefilter("always", DeprecationWarning) - parser = configparser.SafeConfigParser() - for warning in w: - self.assertTrue(warning.category is DeprecationWarning) - def test_legacyinterpolation_deprecation(self): with warnings.catch_warnings(record=True) as w: warnings.simplefilter("always", DeprecationWarning) @@ -1841,7 +1809,7 @@ def test_parsingerror(self): self.assertEqual(e1.source, e2.source) self.assertEqual(e1.errors, e2.errors) self.assertEqual(repr(e1), repr(e2)) - e1 = configparser.ParsingError(filename='filename') + e1 = configparser.ParsingError('filename') e1.append(1, 'line1') e1.append(2, 'line2') e1.append(3, 'line3') diff --git a/Lib/test/test_copy.py b/Lib/test/test_copy.py index f1ca8cb254d188..f4d91c16868986 100644 --- a/Lib/test/test_copy.py +++ b/Lib/test/test_copy.py @@ -678,6 +678,28 @@ def __eq__(self, other): self.assertIsNot(x, y) self.assertIsNot(x["foo"], y["foo"]) + def test_reduce_6tuple(self): + def state_setter(*args, **kwargs): + self.fail("shouldn't call this") + class C: + def __reduce__(self): + return C, (), self.__dict__, None, None, state_setter + x = C() + with self.assertRaises(TypeError): + copy.copy(x) + with self.assertRaises(TypeError): + copy.deepcopy(x) + + def test_reduce_6tuple_none(self): + class C: + def __reduce__(self): + return C, (), self.__dict__, None, None, None + x = C() + with self.assertRaises(TypeError): + copy.copy(x) + with self.assertRaises(TypeError): + copy.deepcopy(x) + def test_copy_slots(self): class C(object): __slots__ = ["foo"] diff --git a/Lib/test/test_coroutines.py b/Lib/test/test_coroutines.py index dba5ceffaf1c03..8fff2d47c10fd5 100644 --- a/Lib/test/test_coroutines.py +++ b/Lib/test/test_coroutines.py @@ -4,6 +4,7 @@ import pickle import sys import types +import traceback import unittest import warnings from test import support @@ -2207,6 +2208,29 @@ async def f(): with self.assertWarns(RuntimeWarning): gen.cr_frame.clear() + def test_stack_in_coroutine_throw(self): + # Regression test for https://github.com/python/cpython/issues/93592 + async def a(): + return await b() + + async def b(): + return await c() + + @types.coroutine + def c(): + try: + # traceback.print_stack() + yield len(traceback.extract_stack()) + except ZeroDivisionError: + # traceback.print_stack() + yield len(traceback.extract_stack()) + + coro = a() + len_send = coro.send(None) + len_throw = coro.throw(ZeroDivisionError) + # before fixing, visible stack from throw would be shorter than from send. + self.assertEqual(len_send, len_throw) + @unittest.skipIf( support.is_emscripten or support.is_wasi, diff --git a/Lib/test/test_cppext.py b/Lib/test/test_cppext.py index 9ed90616b0eab5..465894d24e7dfc 100644 --- a/Lib/test/test_cppext.py +++ b/Lib/test/test_cppext.py @@ -4,6 +4,7 @@ import sys import unittest import subprocess +import sysconfig from test import support from test.support import os_helper @@ -16,22 +17,34 @@ @support.requires_subprocess() class TestCPPExt(unittest.TestCase): + def test_build_cpp11(self): + self.check_build(False, '_testcpp11ext') + + def test_build_cpp03(self): + self.check_build(True, '_testcpp03ext') + # With MSVC, the linker fails with: cannot open file 'python311.lib' # https://github.com/python/cpython/pull/32175#issuecomment-1111175897 @unittest.skipIf(MS_WINDOWS, 'test fails on Windows') + # Building and running an extension in clang sanitizing mode is not + # straightforward + @unittest.skipIf( + '-fsanitize' in (sysconfig.get_config_var('PY_CFLAGS') or ''), + 'test does not work with analyzing builds') # the test uses venv+pip: skip if it's not available @support.requires_venv_with_pip() - def test_build(self): + def check_build(self, std_cpp03, extension_name): # Build in a temporary directory with os_helper.temp_cwd(): - self._test_build() + self._check_build(std_cpp03, extension_name) - def _test_build(self): + def _check_build(self, std_cpp03, extension_name): venv_dir = 'env' + verbose = support.verbose # Create virtual environment to get setuptools cmd = [sys.executable, '-X', 'dev', '-m', 'venv', venv_dir] - if support.verbose: + if verbose: print() print('Run:', ' '.join(cmd)) subprocess.run(cmd, check=True) @@ -45,17 +58,47 @@ def _test_build(self): else: python = os.path.join(venv_dir, 'bin', python_exe) + def run_cmd(operation, cmd): + if verbose: + print('Run:', ' '.join(cmd)) + subprocess.run(cmd, check=True) + else: + proc = subprocess.run(cmd, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + text=True) + if proc.returncode: + print(proc.stdout, end='') + self.fail( + f"{operation} failed with exit code {proc.returncode}") + # Build the C++ extension - cmd = [python, '-X', 'dev', SETUP_TESTCPPEXT, 'build_ext', '--verbose'] - if support.verbose: - print('Run:', ' '.join(cmd)) - proc = subprocess.run(cmd, - stdout=subprocess.PIPE, - stderr=subprocess.STDOUT, - text=True) - if proc.returncode: - print(proc.stdout, end='') - self.fail(f"Build failed with exit code {proc.returncode}") + cmd = [python, '-X', 'dev', + SETUP_TESTCPPEXT, 'build_ext', '--verbose'] + if std_cpp03: + cmd.append('-std=c++03') + run_cmd('Build', cmd) + + # Install the C++ extension + cmd = [python, '-X', 'dev', + SETUP_TESTCPPEXT, 'install'] + run_cmd('Install', cmd) + + # Do a reference run. Until we test that running python + # doesn't leak references (gh-94755), run it so one can manually check + # -X showrefcount results against this baseline. + cmd = [python, + '-X', 'dev', + '-X', 'showrefcount', + '-c', 'pass'] + run_cmd('Reference run', cmd) + + # Import the C++ extension + cmd = [python, + '-X', 'dev', + '-X', 'showrefcount', + '-c', f"import {extension_name}"] + run_cmd('Import', cmd) if __name__ == "__main__": diff --git a/Lib/test/test_csv.py b/Lib/test/test_csv.py index 95a19dd46cb4ff..a2b00430c7dd60 100644 --- a/Lib/test/test_csv.py +++ b/Lib/test/test_csv.py @@ -448,6 +448,34 @@ def test_register_kwargs(self): self.assertEqual(csv.get_dialect(name).delimiter, ';') self.assertEqual([['X', 'Y', 'Z']], list(csv.reader(['X;Y;Z'], name))) + def test_register_kwargs_override(self): + class mydialect(csv.Dialect): + delimiter = "\t" + quotechar = '"' + doublequote = True + skipinitialspace = False + lineterminator = '\r\n' + quoting = csv.QUOTE_MINIMAL + + name = 'test_dialect' + csv.register_dialect(name, mydialect, + delimiter=';', + quotechar="'", + doublequote=False, + skipinitialspace=True, + lineterminator='\n', + quoting=csv.QUOTE_ALL) + self.addCleanup(csv.unregister_dialect, name) + + # Ensure that kwargs do override attributes of a dialect class: + dialect = csv.get_dialect(name) + self.assertEqual(dialect.delimiter, ';') + self.assertEqual(dialect.quotechar, "'") + self.assertEqual(dialect.doublequote, False) + self.assertEqual(dialect.skipinitialspace, True) + self.assertEqual(dialect.lineterminator, '\n') + self.assertEqual(dialect.quoting, csv.QUOTE_ALL) + def test_incomplete_dialect(self): class myexceltsv(csv.Dialect): delimiter = "\t" @@ -736,6 +764,34 @@ def test_write_field_not_in_field_names_ignore(self): csv.DictWriter.writerow(writer, dictrow) self.assertEqual(fileobj.getvalue(), "1,2\r\n") + def test_dict_reader_fieldnames_accepts_iter(self): + fieldnames = ["a", "b", "c"] + f = StringIO() + reader = csv.DictReader(f, iter(fieldnames)) + self.assertEqual(reader.fieldnames, fieldnames) + + def test_dict_reader_fieldnames_accepts_list(self): + fieldnames = ["a", "b", "c"] + f = StringIO() + reader = csv.DictReader(f, fieldnames) + self.assertEqual(reader.fieldnames, fieldnames) + + def test_dict_writer_fieldnames_rejects_iter(self): + fieldnames = ["a", "b", "c"] + f = StringIO() + writer = csv.DictWriter(f, iter(fieldnames)) + self.assertEqual(writer.fieldnames, fieldnames) + + def test_dict_writer_fieldnames_accepts_list(self): + fieldnames = ["a", "b", "c"] + f = StringIO() + writer = csv.DictWriter(f, fieldnames) + self.assertEqual(writer.fieldnames, fieldnames) + + def test_dict_reader_fieldnames_is_optional(self): + f = StringIO() + reader = csv.DictReader(f, fieldnames=None) + def test_read_dict_fields(self): with TemporaryFile("w+", encoding="utf-8") as fileobj: fileobj.write("1,2,abc\r\n") diff --git a/Lib/test/test_ctypes.py b/Lib/test/test_ctypes.py deleted file mode 100644 index b0a12c97347490..00000000000000 --- a/Lib/test/test_ctypes.py +++ /dev/null @@ -1,10 +0,0 @@ -import unittest -from test.support.import_helper import import_module - - -ctypes_test = import_module('ctypes.test') - -load_tests = ctypes_test.load_tests - -if __name__ == "__main__": - unittest.main() diff --git a/Lib/ctypes/test/__init__.py b/Lib/test/test_ctypes/__init__.py similarity index 100% rename from Lib/ctypes/test/__init__.py rename to Lib/test/test_ctypes/__init__.py diff --git a/Lib/test/test_ctypes/__main__.py b/Lib/test/test_ctypes/__main__.py new file mode 100644 index 00000000000000..3003d4db890d4d --- /dev/null +++ b/Lib/test/test_ctypes/__main__.py @@ -0,0 +1,4 @@ +from test.test_ctypes import load_tests +import unittest + +unittest.main() diff --git a/Lib/ctypes/test/test_anon.py b/Lib/test/test_ctypes/test_anon.py similarity index 100% rename from Lib/ctypes/test/test_anon.py rename to Lib/test/test_ctypes/test_anon.py diff --git a/Lib/ctypes/test/test_array_in_pointer.py b/Lib/test/test_ctypes/test_array_in_pointer.py similarity index 100% rename from Lib/ctypes/test/test_array_in_pointer.py rename to Lib/test/test_ctypes/test_array_in_pointer.py diff --git a/Lib/ctypes/test/test_arrays.py b/Lib/test/test_ctypes/test_arrays.py similarity index 99% rename from Lib/ctypes/test/test_arrays.py rename to Lib/test/test_ctypes/test_arrays.py index 14603b7049c92c..415a5785a9c1bb 100644 --- a/Lib/ctypes/test/test_arrays.py +++ b/Lib/test/test_ctypes/test_arrays.py @@ -3,7 +3,7 @@ import sys from ctypes import * -from ctypes.test import need_symbol +from test.test_ctypes import need_symbol formats = "bBhHiIlLqQfd" diff --git a/Lib/ctypes/test/test_as_parameter.py b/Lib/test/test_ctypes/test_as_parameter.py similarity index 98% rename from Lib/ctypes/test/test_as_parameter.py rename to Lib/test/test_ctypes/test_as_parameter.py index f9d27cb89d341b..e9ec9ad847b487 100644 --- a/Lib/ctypes/test/test_as_parameter.py +++ b/Lib/test/test_ctypes/test_as_parameter.py @@ -1,6 +1,6 @@ import unittest from ctypes import * -from ctypes.test import need_symbol +from test.test_ctypes import need_symbol import _ctypes_test dll = CDLL(_ctypes_test.__file__) @@ -122,6 +122,7 @@ def callback(value): result = f(self.wrap(-10), self.wrap(cb)) self.assertEqual(result, -18) + @need_symbol('c_longlong') def test_longlong_callbacks(self): f = dll._testfunc_callback_q_qf diff --git a/Lib/ctypes/test/test_bitfields.py b/Lib/test/test_ctypes/test_bitfields.py similarity index 99% rename from Lib/ctypes/test/test_bitfields.py rename to Lib/test/test_ctypes/test_bitfields.py index 66acd62e6851a1..dad71a0ba7ee4a 100644 --- a/Lib/ctypes/test/test_bitfields.py +++ b/Lib/test/test_ctypes/test_bitfields.py @@ -1,5 +1,5 @@ from ctypes import * -from ctypes.test import need_symbol +from test.test_ctypes import need_symbol from test import support import unittest import os diff --git a/Lib/ctypes/test/test_buffers.py b/Lib/test/test_ctypes/test_buffers.py similarity index 98% rename from Lib/ctypes/test/test_buffers.py rename to Lib/test/test_ctypes/test_buffers.py index 15782be757c853..a9be2023aa0fa0 100644 --- a/Lib/ctypes/test/test_buffers.py +++ b/Lib/test/test_ctypes/test_buffers.py @@ -1,5 +1,5 @@ from ctypes import * -from ctypes.test import need_symbol +from test.test_ctypes import need_symbol import unittest class StringBufferTestCase(unittest.TestCase): diff --git a/Lib/ctypes/test/test_bytes.py b/Lib/test/test_ctypes/test_bytes.py similarity index 100% rename from Lib/ctypes/test/test_bytes.py rename to Lib/test/test_ctypes/test_bytes.py diff --git a/Lib/ctypes/test/test_byteswap.py b/Lib/test/test_ctypes/test_byteswap.py similarity index 100% rename from Lib/ctypes/test/test_byteswap.py rename to Lib/test/test_ctypes/test_byteswap.py diff --git a/Lib/ctypes/test/test_callbacks.py b/Lib/test/test_ctypes/test_callbacks.py similarity index 98% rename from Lib/ctypes/test/test_callbacks.py rename to Lib/test/test_ctypes/test_callbacks.py index 1099cf9a69c6b1..b5bef04e14d208 100644 --- a/Lib/ctypes/test/test_callbacks.py +++ b/Lib/test/test_ctypes/test_callbacks.py @@ -3,7 +3,7 @@ from test import support from ctypes import * -from ctypes.test import need_symbol +from test.test_ctypes import need_symbol from _ctypes import CTYPES_MAX_ARGCOUNT import _ctypes_test @@ -65,10 +65,12 @@ def test_long(self): def test_ulong(self): self.check_type(c_ulong, 42) + @need_symbol('c_longlong') def test_longlong(self): self.check_type(c_longlong, 42) self.check_type(c_longlong, -42) + @need_symbol('c_ulonglong') def test_ulonglong(self): self.check_type(c_ulonglong, 42) @@ -82,6 +84,7 @@ def test_double(self): self.check_type(c_double, 3.14) self.check_type(c_double, -3.14) + @need_symbol('c_longdouble') def test_longdouble(self): self.check_type(c_longdouble, 3.14) self.check_type(c_longdouble, -3.14) diff --git a/Lib/ctypes/test/test_cast.py b/Lib/test/test_ctypes/test_cast.py similarity index 98% rename from Lib/ctypes/test/test_cast.py rename to Lib/test/test_ctypes/test_cast.py index 6878f9732826f1..7ee23b16f1b00b 100644 --- a/Lib/ctypes/test/test_cast.py +++ b/Lib/test/test_ctypes/test_cast.py @@ -1,5 +1,5 @@ from ctypes import * -from ctypes.test import need_symbol +from test.test_ctypes import need_symbol import unittest import sys diff --git a/Lib/ctypes/test/test_cfuncs.py b/Lib/test/test_ctypes/test_cfuncs.py similarity index 97% rename from Lib/ctypes/test/test_cfuncs.py rename to Lib/test/test_ctypes/test_cfuncs.py index ac2240fa197d3f..7cba4b0e527f4d 100644 --- a/Lib/ctypes/test/test_cfuncs.py +++ b/Lib/test/test_ctypes/test_cfuncs.py @@ -3,7 +3,7 @@ import unittest from ctypes import * -from ctypes.test import need_symbol +from test.test_ctypes import need_symbol import _ctypes_test @@ -111,24 +111,28 @@ def test_ulong_plus(self): self.assertEqual(self._dll.tf_bL(b' ', 4294967295), 1431655765) self.assertEqual(self.U(), 4294967295) + @need_symbol('c_longlong') def test_longlong(self): self._dll.tf_q.restype = c_longlong self._dll.tf_q.argtypes = (c_longlong, ) self.assertEqual(self._dll.tf_q(-9223372036854775806), -3074457345618258602) self.assertEqual(self.S(), -9223372036854775806) + @need_symbol('c_longlong') def test_longlong_plus(self): self._dll.tf_bq.restype = c_longlong self._dll.tf_bq.argtypes = (c_byte, c_longlong) self.assertEqual(self._dll.tf_bq(0, -9223372036854775806), -3074457345618258602) self.assertEqual(self.S(), -9223372036854775806) + @need_symbol('c_ulonglong') def test_ulonglong(self): self._dll.tf_Q.restype = c_ulonglong self._dll.tf_Q.argtypes = (c_ulonglong, ) self.assertEqual(self._dll.tf_Q(18446744073709551615), 6148914691236517205) self.assertEqual(self.U(), 18446744073709551615) + @need_symbol('c_ulonglong') def test_ulonglong_plus(self): self._dll.tf_bQ.restype = c_ulonglong self._dll.tf_bQ.argtypes = (c_byte, c_ulonglong) @@ -159,12 +163,14 @@ def test_double_plus(self): self.assertEqual(self._dll.tf_bd(0, 42.), 14.) self.assertEqual(self.S(), 42) + @need_symbol('c_longdouble') def test_longdouble(self): self._dll.tf_D.restype = c_longdouble self._dll.tf_D.argtypes = (c_longdouble,) self.assertEqual(self._dll.tf_D(42.), 14.) self.assertEqual(self.S(), 42) + @need_symbol('c_longdouble') def test_longdouble_plus(self): self._dll.tf_bD.restype = c_longdouble self._dll.tf_bD.argtypes = (c_byte, c_longdouble) diff --git a/Lib/ctypes/test/test_checkretval.py b/Lib/test/test_ctypes/test_checkretval.py similarity index 95% rename from Lib/ctypes/test/test_checkretval.py rename to Lib/test/test_ctypes/test_checkretval.py index e9567dc3912585..1492099f4b9e99 100644 --- a/Lib/ctypes/test/test_checkretval.py +++ b/Lib/test/test_ctypes/test_checkretval.py @@ -1,7 +1,7 @@ import unittest from ctypes import * -from ctypes.test import need_symbol +from test.test_ctypes import need_symbol class CHECKED(c_int): def _check_retval_(value): diff --git a/Lib/ctypes/test/test_delattr.py b/Lib/test/test_ctypes/test_delattr.py similarity index 100% rename from Lib/ctypes/test/test_delattr.py rename to Lib/test/test_ctypes/test_delattr.py diff --git a/Lib/ctypes/test/test_errno.py b/Lib/test/test_ctypes/test_errno.py similarity index 100% rename from Lib/ctypes/test/test_errno.py rename to Lib/test/test_ctypes/test_errno.py diff --git a/Lib/ctypes/test/test_find.py b/Lib/test/test_ctypes/test_find.py similarity index 100% rename from Lib/ctypes/test/test_find.py rename to Lib/test/test_ctypes/test_find.py diff --git a/Lib/ctypes/test/test_frombuffer.py b/Lib/test/test_ctypes/test_frombuffer.py similarity index 100% rename from Lib/ctypes/test/test_frombuffer.py rename to Lib/test/test_ctypes/test_frombuffer.py diff --git a/Lib/ctypes/test/test_funcptr.py b/Lib/test/test_ctypes/test_funcptr.py similarity index 100% rename from Lib/ctypes/test/test_funcptr.py rename to Lib/test/test_ctypes/test_funcptr.py diff --git a/Lib/ctypes/test/test_functions.py b/Lib/test/test_ctypes/test_functions.py similarity index 98% rename from Lib/ctypes/test/test_functions.py rename to Lib/test/test_ctypes/test_functions.py index f9e92e1cc6b068..95633dfa8b38fd 100644 --- a/Lib/ctypes/test/test_functions.py +++ b/Lib/test/test_ctypes/test_functions.py @@ -6,7 +6,7 @@ """ from ctypes import * -from ctypes.test import need_symbol +from test.test_ctypes import need_symbol import sys, unittest try: @@ -128,6 +128,7 @@ def test_doubleresult(self): self.assertEqual(result, -21) self.assertEqual(type(result), float) + @need_symbol('c_longdouble') def test_longdoubleresult(self): f = dll._testfunc_D_bhilfD f.argtypes = [c_byte, c_short, c_int, c_long, c_float, c_longdouble] @@ -370,7 +371,7 @@ class S8I(Structure): (9*2, 8*3, 7*4, 6*5, 5*6, 4*7, 3*8, 2*9)) def test_sf1651235(self): - # see https://www.python.org/sf/1651235 + # see https://bugs.python.org/issue1651235 proto = CFUNCTYPE(c_int, RECT, POINT) def callback(*args): diff --git a/Lib/ctypes/test/test_incomplete.py b/Lib/test/test_ctypes/test_incomplete.py similarity index 100% rename from Lib/ctypes/test/test_incomplete.py rename to Lib/test/test_ctypes/test_incomplete.py diff --git a/Lib/ctypes/test/test_init.py b/Lib/test/test_ctypes/test_init.py similarity index 100% rename from Lib/ctypes/test/test_init.py rename to Lib/test/test_ctypes/test_init.py diff --git a/Lib/ctypes/test/test_internals.py b/Lib/test/test_ctypes/test_internals.py similarity index 100% rename from Lib/ctypes/test/test_internals.py rename to Lib/test/test_ctypes/test_internals.py diff --git a/Lib/ctypes/test/test_keeprefs.py b/Lib/test/test_ctypes/test_keeprefs.py similarity index 100% rename from Lib/ctypes/test/test_keeprefs.py rename to Lib/test/test_ctypes/test_keeprefs.py diff --git a/Lib/ctypes/test/test_libc.py b/Lib/test/test_ctypes/test_libc.py similarity index 100% rename from Lib/ctypes/test/test_libc.py rename to Lib/test/test_ctypes/test_libc.py diff --git a/Lib/ctypes/test/test_loading.py b/Lib/test/test_ctypes/test_loading.py similarity index 99% rename from Lib/ctypes/test/test_loading.py rename to Lib/test/test_ctypes/test_loading.py index ea892277c4eae9..8d8632a4eb64d3 100644 --- a/Lib/ctypes/test/test_loading.py +++ b/Lib/test/test_ctypes/test_loading.py @@ -93,7 +93,7 @@ def test_1703286_A(self): # NOT fit into a 32-bit integer. FreeLibrary must be able # to accept this address. - # These are tests for https://www.python.org/sf/1703286 + # These are tests for https://bugs.python.org/issue1703286 handle = LoadLibrary("advapi32") FreeLibrary(handle) diff --git a/Lib/ctypes/test/test_macholib.py b/Lib/test/test_ctypes/test_macholib.py similarity index 100% rename from Lib/ctypes/test/test_macholib.py rename to Lib/test/test_ctypes/test_macholib.py diff --git a/Lib/ctypes/test/test_memfunctions.py b/Lib/test/test_ctypes/test_memfunctions.py similarity index 98% rename from Lib/ctypes/test/test_memfunctions.py rename to Lib/test/test_ctypes/test_memfunctions.py index e784b9a7068422..d5c973521177c8 100644 --- a/Lib/ctypes/test/test_memfunctions.py +++ b/Lib/test/test_ctypes/test_memfunctions.py @@ -2,7 +2,7 @@ from test import support import unittest from ctypes import * -from ctypes.test import need_symbol +from test.test_ctypes import need_symbol class MemFunctionsTest(unittest.TestCase): @unittest.skip('test disabled') diff --git a/Lib/ctypes/test/test_numbers.py b/Lib/test/test_ctypes/test_numbers.py similarity index 100% rename from Lib/ctypes/test/test_numbers.py rename to Lib/test/test_ctypes/test_numbers.py diff --git a/Lib/ctypes/test/test_objects.py b/Lib/test/test_ctypes/test_objects.py similarity index 87% rename from Lib/ctypes/test/test_objects.py rename to Lib/test/test_ctypes/test_objects.py index 19e3dc1f2d7621..44a3c61ad79267 100644 --- a/Lib/ctypes/test/test_objects.py +++ b/Lib/test/test_ctypes/test_objects.py @@ -42,7 +42,7 @@ of 'x' ('_b_base_' is either None, or the root object owning the memory block): >>> print(x.array._b_base_) # doctest: +ELLIPSIS -<ctypes.test.test_objects.X object at 0x...> +<test.test_ctypes.test_objects.X object at 0x...> >>> >>> x.array[0] = b'spam spam spam' @@ -56,12 +56,12 @@ import unittest, doctest -import ctypes.test.test_objects +import test.test_ctypes.test_objects class TestCase(unittest.TestCase): def test(self): - failures, tests = doctest.testmod(ctypes.test.test_objects) + failures, tests = doctest.testmod(test.test_ctypes.test_objects) self.assertFalse(failures, 'doctests failed, see output above') if __name__ == '__main__': - doctest.testmod(ctypes.test.test_objects) + doctest.testmod(test.test_ctypes.test_objects) diff --git a/Lib/ctypes/test/test_parameters.py b/Lib/test/test_ctypes/test_parameters.py similarity index 99% rename from Lib/ctypes/test/test_parameters.py rename to Lib/test/test_ctypes/test_parameters.py index 38af7ac13d756c..84839d9c6a96d9 100644 --- a/Lib/ctypes/test/test_parameters.py +++ b/Lib/test/test_ctypes/test_parameters.py @@ -1,11 +1,10 @@ import unittest -from ctypes.test import need_symbol +from test.test_ctypes import need_symbol import test.support class SimpleTypesTestCase(unittest.TestCase): def setUp(self): - import ctypes try: from _ctypes import set_conversion_mode except ImportError: diff --git a/Lib/ctypes/test/test_pep3118.py b/Lib/test/test_ctypes/test_pep3118.py similarity index 100% rename from Lib/ctypes/test/test_pep3118.py rename to Lib/test/test_ctypes/test_pep3118.py diff --git a/Lib/ctypes/test/test_pickling.py b/Lib/test/test_ctypes/test_pickling.py similarity index 100% rename from Lib/ctypes/test/test_pickling.py rename to Lib/test/test_ctypes/test_pickling.py diff --git a/Lib/ctypes/test/test_pointers.py b/Lib/test/test_ctypes/test_pointers.py similarity index 100% rename from Lib/ctypes/test/test_pointers.py rename to Lib/test/test_ctypes/test_pointers.py diff --git a/Lib/ctypes/test/test_prototypes.py b/Lib/test/test_ctypes/test_prototypes.py similarity index 99% rename from Lib/ctypes/test/test_prototypes.py rename to Lib/test/test_ctypes/test_prototypes.py index cd0c649de3e31b..bf27561487ac81 100644 --- a/Lib/ctypes/test/test_prototypes.py +++ b/Lib/test/test_ctypes/test_prototypes.py @@ -1,5 +1,5 @@ from ctypes import * -from ctypes.test import need_symbol +from test.test_ctypes import need_symbol import unittest # IMPORTANT INFO: diff --git a/Lib/ctypes/test/test_python_api.py b/Lib/test/test_ctypes/test_python_api.py similarity index 100% rename from Lib/ctypes/test/test_python_api.py rename to Lib/test/test_ctypes/test_python_api.py diff --git a/Lib/ctypes/test/test_random_things.py b/Lib/test/test_ctypes/test_random_things.py similarity index 100% rename from Lib/ctypes/test/test_random_things.py rename to Lib/test/test_ctypes/test_random_things.py diff --git a/Lib/ctypes/test/test_refcounts.py b/Lib/test/test_ctypes/test_refcounts.py similarity index 100% rename from Lib/ctypes/test/test_refcounts.py rename to Lib/test/test_ctypes/test_refcounts.py diff --git a/Lib/ctypes/test/test_repr.py b/Lib/test/test_ctypes/test_repr.py similarity index 100% rename from Lib/ctypes/test/test_repr.py rename to Lib/test/test_ctypes/test_repr.py diff --git a/Lib/ctypes/test/test_returnfuncptrs.py b/Lib/test/test_ctypes/test_returnfuncptrs.py similarity index 100% rename from Lib/ctypes/test/test_returnfuncptrs.py rename to Lib/test/test_ctypes/test_returnfuncptrs.py diff --git a/Lib/ctypes/test/test_simplesubclasses.py b/Lib/test/test_ctypes/test_simplesubclasses.py similarity index 100% rename from Lib/ctypes/test/test_simplesubclasses.py rename to Lib/test/test_ctypes/test_simplesubclasses.py diff --git a/Lib/ctypes/test/test_sizes.py b/Lib/test/test_ctypes/test_sizes.py similarity index 90% rename from Lib/ctypes/test/test_sizes.py rename to Lib/test/test_ctypes/test_sizes.py index 4ceacbc2900802..bf8d6ea35aa399 100644 --- a/Lib/ctypes/test/test_sizes.py +++ b/Lib/test/test_ctypes/test_sizes.py @@ -28,6 +28,9 @@ def test_size_t(self): def test_ssize_t(self): self.assertEqual(sizeof(c_void_p), sizeof(c_ssize_t)) + def test_time_t(self): + self.assertEqual(sizeof(c_time_t), SIZEOF_TIME_T) + if __name__ == "__main__": unittest.main() diff --git a/Lib/ctypes/test/test_slicing.py b/Lib/test/test_ctypes/test_slicing.py similarity index 99% rename from Lib/ctypes/test/test_slicing.py rename to Lib/test/test_ctypes/test_slicing.py index a3932f176728af..b3e68f9a822d94 100644 --- a/Lib/ctypes/test/test_slicing.py +++ b/Lib/test/test_ctypes/test_slicing.py @@ -1,6 +1,6 @@ import unittest from ctypes import * -from ctypes.test import need_symbol +from test.test_ctypes import need_symbol import _ctypes_test diff --git a/Lib/ctypes/test/test_stringptr.py b/Lib/test/test_ctypes/test_stringptr.py similarity index 100% rename from Lib/ctypes/test/test_stringptr.py rename to Lib/test/test_ctypes/test_stringptr.py diff --git a/Lib/ctypes/test/test_strings.py b/Lib/test/test_ctypes/test_strings.py similarity index 99% rename from Lib/ctypes/test/test_strings.py rename to Lib/test/test_ctypes/test_strings.py index 12e208828a70db..a9003be3f506e2 100644 --- a/Lib/ctypes/test/test_strings.py +++ b/Lib/test/test_ctypes/test_strings.py @@ -1,6 +1,6 @@ import unittest from ctypes import * -from ctypes.test import need_symbol +from test.test_ctypes import need_symbol class StringArrayTestCase(unittest.TestCase): def test(self): diff --git a/Lib/ctypes/test/test_struct_fields.py b/Lib/test/test_ctypes/test_struct_fields.py similarity index 100% rename from Lib/ctypes/test/test_struct_fields.py rename to Lib/test/test_ctypes/test_struct_fields.py diff --git a/Lib/ctypes/test/test_structures.py b/Lib/test/test_ctypes/test_structures.py similarity index 99% rename from Lib/ctypes/test/test_structures.py rename to Lib/test/test_ctypes/test_structures.py index 97ad2b8ed8a50d..13c0470ba2238c 100644 --- a/Lib/ctypes/test/test_structures.py +++ b/Lib/test/test_ctypes/test_structures.py @@ -2,7 +2,7 @@ import sys import unittest from ctypes import * -from ctypes.test import need_symbol +from test.test_ctypes import need_symbol from struct import calcsize import _ctypes_test from test import support diff --git a/Lib/ctypes/test/test_unaligned_structures.py b/Lib/test/test_ctypes/test_unaligned_structures.py similarity index 100% rename from Lib/ctypes/test/test_unaligned_structures.py rename to Lib/test/test_ctypes/test_unaligned_structures.py diff --git a/Lib/ctypes/test/test_unicode.py b/Lib/test/test_ctypes/test_unicode.py similarity index 97% rename from Lib/ctypes/test/test_unicode.py rename to Lib/test/test_ctypes/test_unicode.py index 60c75424b767fa..319cb3b1dcac21 100644 --- a/Lib/ctypes/test/test_unicode.py +++ b/Lib/test/test_ctypes/test_unicode.py @@ -1,6 +1,6 @@ import unittest import ctypes -from ctypes.test import need_symbol +from test.test_ctypes import need_symbol import _ctypes_test diff --git a/Lib/ctypes/test/test_values.py b/Lib/test/test_ctypes/test_values.py similarity index 100% rename from Lib/ctypes/test/test_values.py rename to Lib/test/test_ctypes/test_values.py diff --git a/Lib/ctypes/test/test_varsize_struct.py b/Lib/test/test_ctypes/test_varsize_struct.py similarity index 100% rename from Lib/ctypes/test/test_varsize_struct.py rename to Lib/test/test_ctypes/test_varsize_struct.py diff --git a/Lib/ctypes/test/test_win32.py b/Lib/test/test_ctypes/test_win32.py similarity index 100% rename from Lib/ctypes/test/test_win32.py rename to Lib/test/test_ctypes/test_win32.py diff --git a/Lib/ctypes/test/test_wintypes.py b/Lib/test/test_ctypes/test_wintypes.py similarity index 100% rename from Lib/ctypes/test/test_wintypes.py rename to Lib/test/test_ctypes/test_wintypes.py diff --git a/Lib/test/test_dataclasses.py b/Lib/test/test_dataclasses.py index cf29cd07516f0d..e2eab695789de7 100644 --- a/Lib/test/test_dataclasses.py +++ b/Lib/test/test_dataclasses.py @@ -2215,12 +2215,12 @@ class C(B): self.assertEqual(c.z, 100) def test_no_init(self): - dataclass(init=False) + @dataclass(init=False) class C: i: int = 0 self.assertEqual(C().i, 0) - dataclass(init=False) + @dataclass(init=False) class C: i: int = 2 def __init__(self): @@ -3109,6 +3109,54 @@ def test_weakref_slot_make_dataclass(self): "weakref_slot is True but slots is False"): B = make_dataclass('B', [('a', int),], weakref_slot=True) + def test_weakref_slot_subclass_weakref_slot(self): + @dataclass(slots=True, weakref_slot=True) + class Base: + field: int + + # A *can* also specify weakref_slot=True if it wants to (gh-93521) + @dataclass(slots=True, weakref_slot=True) + class A(Base): + ... + + # __weakref__ is in the base class, not A. But an instance of A + # is still weakref-able. + self.assertIn("__weakref__", Base.__slots__) + self.assertNotIn("__weakref__", A.__slots__) + a = A(1) + weakref.ref(a) + + def test_weakref_slot_subclass_no_weakref_slot(self): + @dataclass(slots=True, weakref_slot=True) + class Base: + field: int + + @dataclass(slots=True) + class A(Base): + ... + + # __weakref__ is in the base class, not A. Even though A doesn't + # specify weakref_slot, it should still be weakref-able. + self.assertIn("__weakref__", Base.__slots__) + self.assertNotIn("__weakref__", A.__slots__) + a = A(1) + weakref.ref(a) + + def test_weakref_slot_normal_base_weakref_slot(self): + class Base: + __slots__ = ('__weakref__',) + + @dataclass(slots=True, weakref_slot=True) + class A(Base): + field: int + + # __weakref__ is in the base class, not A. But an instance of + # A is still weakref-able. + self.assertIn("__weakref__", Base.__slots__) + self.assertNotIn("__weakref__", A.__slots__) + a = A(1) + weakref.ref(a) + class TestDescriptors(unittest.TestCase): def test_set_name(self): @@ -3181,6 +3229,115 @@ class C: self.assertEqual(D.__set_name__.call_count, 1) + def test_init_calls_set(self): + class D: + pass + + D.__set__ = Mock() + + @dataclass + class C: + i: D = D() + + # Make sure D.__set__ is called. + D.__set__.reset_mock() + c = C(5) + self.assertEqual(D.__set__.call_count, 1) + + def test_getting_field_calls_get(self): + class D: + pass + + D.__set__ = Mock() + D.__get__ = Mock() + + @dataclass + class C: + i: D = D() + + c = C(5) + + # Make sure D.__get__ is called. + D.__get__.reset_mock() + value = c.i + self.assertEqual(D.__get__.call_count, 1) + + def test_setting_field_calls_set(self): + class D: + pass + + D.__set__ = Mock() + + @dataclass + class C: + i: D = D() + + c = C(5) + + # Make sure D.__set__ is called. + D.__set__.reset_mock() + c.i = 10 + self.assertEqual(D.__set__.call_count, 1) + + def test_setting_uninitialized_descriptor_field(self): + class D: + pass + + D.__set__ = Mock() + + @dataclass + class C: + i: D + + # D.__set__ is not called because there's no D instance to call it on + D.__set__.reset_mock() + c = C(5) + self.assertEqual(D.__set__.call_count, 0) + + # D.__set__ still isn't called after setting i to an instance of D + # because descriptors don't behave like that when stored as instance vars + c.i = D() + c.i = 5 + self.assertEqual(D.__set__.call_count, 0) + + def test_default_value(self): + class D: + def __get__(self, instance: Any, owner: object) -> int: + if instance is None: + return 100 + + return instance._x + + def __set__(self, instance: Any, value: int) -> None: + instance._x = value + + @dataclass + class C: + i: D = D() + + c = C() + self.assertEqual(c.i, 100) + + c = C(5) + self.assertEqual(c.i, 5) + + def test_no_default_value(self): + class D: + def __get__(self, instance: Any, owner: object) -> int: + if instance is None: + raise AttributeError() + + return instance._x + + def __set__(self, instance: Any, value: int) -> None: + instance._x = value + + @dataclass + class C: + i: D = D() + + with self.assertRaisesRegex(TypeError, 'missing 1 required positional argument'): + c = C() class TestStringAnnotations(unittest.TestCase): def test_classvar(self): diff --git a/Lib/test/test_dbm_dumb.py b/Lib/test/test_dbm_dumb.py index 73cff638f1e1a4..a481175b3bfdbd 100644 --- a/Lib/test/test_dbm_dumb.py +++ b/Lib/test/test_dbm_dumb.py @@ -42,6 +42,7 @@ def test_dumbdbm_creation(self): self.read_helper(f) @unittest.skipUnless(hasattr(os, 'umask'), 'test needs os.umask()') + @os_helper.skip_unless_working_chmod def test_dumbdbm_creation_mode(self): try: old_umask = os.umask(0o002) @@ -265,6 +266,7 @@ def test_invalid_flag(self): "'r', 'w', 'c', or 'n'"): dumbdbm.open(_fname, flag) + @os_helper.skip_unless_working_chmod def test_readonly_files(self): with os_helper.temp_dir() as dir: fname = os.path.join(dir, 'db') diff --git a/Lib/test/test_dbm_gnu.py b/Lib/test/test_dbm_gnu.py index 4eaa0f474b0209..73602cab5180fc 100644 --- a/Lib/test/test_dbm_gnu.py +++ b/Lib/test/test_dbm_gnu.py @@ -118,6 +118,20 @@ def test_context_manager(self): self.assertEqual(str(cm.exception), "GDBM object has already been closed") + def test_bool_empty(self): + with gdbm.open(filename, 'c') as db: + self.assertFalse(bool(db)) + + def test_bool_not_empty(self): + with gdbm.open(filename, 'c') as db: + db['a'] = 'b' + self.assertTrue(bool(db)) + + def test_bool_on_closed_db_raises(self): + with gdbm.open(filename, 'c') as db: + db['a'] = 'b' + self.assertRaises(gdbm.error, bool, db) + def test_bytes(self): with gdbm.open(filename, 'c') as db: db[b'bytes key \xbd'] = b'bytes value \xbd' diff --git a/Lib/test/test_dbm_ndbm.py b/Lib/test/test_dbm_ndbm.py index e57d9cab1154f7..8f37e3cc624e2e 100644 --- a/Lib/test/test_dbm_ndbm.py +++ b/Lib/test/test_dbm_ndbm.py @@ -133,6 +133,20 @@ def test_open_with_bytes_path(self): def test_open_with_pathlib_bytes_path(self): dbm.ndbm.open(os_helper.FakePath(os.fsencode(self.filename)), "c").close() + def test_bool_empty(self): + with dbm.ndbm.open(self.filename, 'c') as db: + self.assertFalse(bool(db)) + + def test_bool_not_empty(self): + with dbm.ndbm.open(self.filename, 'c') as db: + db['a'] = 'b' + self.assertTrue(bool(db)) + + def test_bool_on_closed_db_raises(self): + with dbm.ndbm.open(self.filename, 'c') as db: + db['a'] = 'b' + self.assertRaises(dbm.ndbm.error, bool, db) + if __name__ == '__main__': unittest.main() diff --git a/Lib/test/test_decimal.py b/Lib/test/test_decimal.py index f7a47c86a3fe88..67ccaab40c5edc 100644 --- a/Lib/test/test_decimal.py +++ b/Lib/test/test_decimal.py @@ -37,7 +37,7 @@ requires_legacy_unicode_capi, check_sanitizer) from test.support import (TestFailed, run_with_locale, cpython_only, - darwin_malloc_err_warning) + darwin_malloc_err_warning, is_emscripten) from test.support.import_helper import import_fresh_module from test.support import threading_helper from test.support import warnings_helper @@ -2526,6 +2526,15 @@ class CUsabilityTest(UsabilityTest): class PyUsabilityTest(UsabilityTest): decimal = P + def setUp(self): + super().setUp() + self._previous_int_limit = sys.get_int_max_str_digits() + sys.set_int_max_str_digits(7000) + + def tearDown(self): + sys.set_int_max_str_digits(self._previous_int_limit) + super().tearDown() + class PythonAPItests(unittest.TestCase): def test_abc(self): @@ -4626,6 +4635,15 @@ class CCoverage(Coverage): class PyCoverage(Coverage): decimal = P + def setUp(self): + super().setUp() + self._previous_int_limit = sys.get_int_max_str_digits() + sys.set_int_max_str_digits(7000) + + def tearDown(self): + sys.set_int_max_str_digits(self._previous_int_limit) + super().tearDown() + class PyFunctionality(unittest.TestCase): """Extra functionality in decimal.py""" @@ -5605,6 +5623,7 @@ def __abs__(self): # Issue 41540: @unittest.skipIf(sys.platform.startswith("aix"), "AIX: default ulimit: test is flaky because of extreme over-allocation") + @unittest.skipIf(is_emscripten, "Test is unstable on Emscripten") @unittest.skipIf(check_sanitizer(address=True, memory=True), "ASAN/MSAN sanitizer defaults to crashing " "instead of returning NULL for malloc failure.") diff --git a/Lib/test/test_decorators.py b/Lib/test/test_decorators.py index a6baa3ad1dd6b3..4b492178c1581f 100644 --- a/Lib/test/test_decorators.py +++ b/Lib/test/test_decorators.py @@ -1,4 +1,3 @@ -from test import support import unittest from types import MethodType diff --git a/Lib/test/test_defaultdict.py b/Lib/test/test_defaultdict.py index 68fc449780a3db..bdbe9b81e8fb3f 100644 --- a/Lib/test/test_defaultdict.py +++ b/Lib/test/test_defaultdict.py @@ -1,9 +1,7 @@ """Unit tests for collections.defaultdict.""" -import os import copy import pickle -import tempfile import unittest from collections import defaultdict diff --git a/Lib/test/test_descr.py b/Lib/test/test_descr.py index 9a09d8a9e3fe03..037c859e97d41b 100644 --- a/Lib/test/test_descr.py +++ b/Lib/test/test_descr.py @@ -21,6 +21,11 @@ except ImportError: _testcapi = None +try: + import xxsubtype +except ImportError: + xxsubtype = None + class OperatorsTest(unittest.TestCase): @@ -299,6 +304,7 @@ def test_explicit_reverse_methods(self): self.assertEqual(float.__rsub__(3.0, 1), -2.0) @support.impl_detail("the module 'xxsubtype' is internal") + @unittest.skipIf(xxsubtype is None, "requires xxsubtype module") def test_spam_lists(self): # Testing spamlist operations... import copy, xxsubtype as spam @@ -343,6 +349,7 @@ def foo(self): return 1 self.assertEqual(a.getstate(), 42) @support.impl_detail("the module 'xxsubtype' is internal") + @unittest.skipIf(xxsubtype is None, "requires xxsubtype module") def test_spam_dicts(self): # Testing spamdict operations... import copy, xxsubtype as spam @@ -838,7 +845,7 @@ def __delattr__(self, name): ("getattr", "foo"), ("delattr", "foo")]) - # http://python.org/sf/1174712 + # https://bugs.python.org/issue1174712 try: class Module(types.ModuleType, str): pass @@ -1600,6 +1607,7 @@ def test_refleaks_in_classmethod___init__(self): self.assertAlmostEqual(gettotalrefcount() - refs_before, 0, delta=10) @support.impl_detail("the module 'xxsubtype' is internal") + @unittest.skipIf(xxsubtype is None, "requires xxsubtype module") def test_classmethods_in_c(self): # Testing C-based class methods... import xxsubtype as spam @@ -1683,6 +1691,7 @@ def test_refleaks_in_staticmethod___init__(self): self.assertAlmostEqual(gettotalrefcount() - refs_before, 0, delta=10) @support.impl_detail("the module 'xxsubtype' is internal") + @unittest.skipIf(xxsubtype is None, "requires xxsubtype module") def test_staticmethods_in_c(self): # Testing C-based static methods... import xxsubtype as spam @@ -3563,7 +3572,6 @@ class MyInt(int): def test_str_of_str_subclass(self): # Testing __str__ defined in subclass of str ... import binascii - import io class octetstring(str): def __str__(self): diff --git a/Lib/test/test_descrtut.py b/Lib/test/test_descrtut.py index e01a31a74695d5..7796031ed0602f 100644 --- a/Lib/test/test_descrtut.py +++ b/Lib/test/test_descrtut.py @@ -1,7 +1,7 @@ # This contains most of the executable examples from Guido's descr # tutorial, once at # -# http://www.python.org/2.2/descrintro.html +# https://www.python.org/download/releases/2.2.3/descrintro/ # # A few examples left implicit in the writeup were fleshed out, a few were # skipped due to lack of interest (e.g., faking super() by hand isn't @@ -9,7 +9,6 @@ # deterministic. from test.support import sortdict -import pprint import doctest import unittest @@ -167,6 +166,7 @@ def merge(self, other): You can get the information from the list type: + >>> import pprint >>> pprint.pprint(dir(list)) # like list.__dict__.keys(), but sorted ['__add__', '__class__', diff --git a/Lib/test/test_dictviews.py b/Lib/test/test_dictviews.py index be271bebaaf1ff..7c48d800cd88bd 100644 --- a/Lib/test/test_dictviews.py +++ b/Lib/test/test_dictviews.py @@ -170,6 +170,10 @@ def test_items_set_operations(self): {('a', 1), ('b', 2)}) self.assertEqual(d1.items() & set(d2.items()), {('b', 2)}) self.assertEqual(d1.items() & set(d3.items()), set()) + self.assertEqual(d1.items() & (("a", 1), ("b", 2)), + {('a', 1), ('b', 2)}) + self.assertEqual(d1.items() & (("a", 2), ("b", 2)), {('b', 2)}) + self.assertEqual(d1.items() & (("d", 4), ("e", 5)), set()) self.assertEqual(d1.items() | d1.items(), {('a', 1), ('b', 2)}) @@ -183,12 +187,23 @@ def test_items_set_operations(self): {('a', 1), ('a', 2), ('b', 2)}) self.assertEqual(d1.items() | set(d3.items()), {('a', 1), ('b', 2), ('d', 4), ('e', 5)}) + self.assertEqual(d1.items() | (('a', 1), ('b', 2)), + {('a', 1), ('b', 2)}) + self.assertEqual(d1.items() | (('a', 2), ('b', 2)), + {('a', 1), ('a', 2), ('b', 2)}) + self.assertEqual(d1.items() | (('d', 4), ('e', 5)), + {('a', 1), ('b', 2), ('d', 4), ('e', 5)}) self.assertEqual(d1.items() ^ d1.items(), set()) self.assertEqual(d1.items() ^ d2.items(), {('a', 1), ('a', 2)}) self.assertEqual(d1.items() ^ d3.items(), {('a', 1), ('b', 2), ('d', 4), ('e', 5)}) + self.assertEqual(d1.items() ^ (('a', 1), ('b', 2)), set()) + self.assertEqual(d1.items() ^ (("a", 2), ("b", 2)), + {('a', 1), ('a', 2)}) + self.assertEqual(d1.items() ^ (("d", 4), ("e", 5)), + {('a', 1), ('b', 2), ('d', 4), ('e', 5)}) self.assertEqual(d1.items() - d1.items(), set()) self.assertEqual(d1.items() - d2.items(), {('a', 1)}) @@ -196,6 +211,9 @@ def test_items_set_operations(self): self.assertEqual(d1.items() - set(d1.items()), set()) self.assertEqual(d1.items() - set(d2.items()), {('a', 1)}) self.assertEqual(d1.items() - set(d3.items()), {('a', 1), ('b', 2)}) + self.assertEqual(d1.items() - (('a', 1), ('b', 2)), set()) + self.assertEqual(d1.items() - (("a", 2), ("b", 2)), {('a', 1)}) + self.assertEqual(d1.items() - (("d", 4), ("e", 5)), {('a', 1), ('b', 2)}) self.assertFalse(d1.items().isdisjoint(d1.items())) self.assertFalse(d1.items().isdisjoint(d2.items())) diff --git a/Lib/test/test_dis.py b/Lib/test/test_dis.py index c5b80b72f8395b..fc2862c61baadb 100644 --- a/Lib/test/test_dis.py +++ b/Lib/test/test_dis.py @@ -143,10 +143,10 @@ def bug708901(): %3d CALL 2 GET_ITER - >> FOR_ITER 2 (to 36) + >> FOR_ITER 2 (to 38) STORE_FAST 0 (res) -%3d JUMP_BACKWARD 3 (to 30) +%3d JUMP_BACKWARD 4 (to 30) %3d >> LOAD_CONST 0 (None) RETURN_VALUE @@ -267,7 +267,7 @@ def bug42562(): expr_str = "x + 1" dis_expr_str = """\ - RESUME 0 + 0 RESUME 0 1 LOAD_NAME 0 (x) LOAD_CONST 0 (1) @@ -278,7 +278,7 @@ def bug42562(): simple_stmt_str = "x = x + 1" dis_simple_stmt_str = """\ - RESUME 0 + 0 RESUME 0 1 LOAD_NAME 0 (x) LOAD_CONST 0 (1) @@ -297,7 +297,7 @@ def bug42562(): # leading newline is for a reason (tests lineno) dis_annot_stmt_str = """\ - RESUME 0 + 0 RESUME 0 2 SETUP_ANNOTATIONS LOAD_CONST 0 (1) @@ -335,7 +335,7 @@ def bug42562(): # Trailing newline has been deliberately omitted dis_compound_stmt_str = """\ - RESUME 0 + 0 RESUME 0 1 LOAD_CONST 0 (0) STORE_NAME 0 (x) @@ -360,17 +360,17 @@ def bug42562(): --> BINARY_OP 11 (/) POP_TOP -%3d LOAD_FAST 1 (tb) +%3d LOAD_FAST_CHECK 1 (tb) RETURN_VALUE >> PUSH_EXC_INFO %3d LOAD_GLOBAL 0 (Exception) CHECK_EXC_MATCH - POP_JUMP_FORWARD_IF_FALSE 18 (to 72) + POP_JUMP_IF_FALSE 23 (to 82) STORE_FAST 0 (e) %3d LOAD_FAST 0 (e) - LOAD_ATTR 1 (__traceback__) + LOAD_ATTR 2 (__traceback__) STORE_FAST 1 (tb) POP_EXCEPT LOAD_CONST 0 (None) @@ -389,6 +389,7 @@ def bug42562(): POP_EXCEPT RERAISE 1 ExceptionTable: +4 rows """ % (TRACEBACK_CODE.co_firstlineno, TRACEBACK_CODE.co_firstlineno + 1, TRACEBACK_CODE.co_firstlineno + 2, @@ -421,6 +422,138 @@ def _fstring(a, b, c, d): RETURN_VALUE """ % (_fstring.__code__.co_firstlineno, _fstring.__code__.co_firstlineno + 1) +def _with(c): + with c: + x = 1 + y = 2 + +dis_with = """\ +%3d RESUME 0 + +%3d LOAD_FAST 0 (c) + BEFORE_WITH + POP_TOP + +%3d LOAD_CONST 1 (1) + STORE_FAST 1 (x) + +%3d LOAD_CONST 0 (None) + LOAD_CONST 0 (None) + LOAD_CONST 0 (None) + CALL 2 + POP_TOP + +%3d LOAD_CONST 2 (2) + STORE_FAST 2 (y) + LOAD_CONST 0 (None) + RETURN_VALUE + +%3d >> PUSH_EXC_INFO + WITH_EXCEPT_START + POP_JUMP_IF_TRUE 1 (to 46) + RERAISE 2 + >> POP_TOP + POP_EXCEPT + POP_TOP + POP_TOP + +%3d LOAD_CONST 2 (2) + STORE_FAST 2 (y) + LOAD_CONST 0 (None) + RETURN_VALUE + >> COPY 3 + POP_EXCEPT + RERAISE 1 +ExceptionTable: +2 rows +""" % (_with.__code__.co_firstlineno, + _with.__code__.co_firstlineno + 1, + _with.__code__.co_firstlineno + 2, + _with.__code__.co_firstlineno + 1, + _with.__code__.co_firstlineno + 3, + _with.__code__.co_firstlineno + 1, + _with.__code__.co_firstlineno + 3, + ) + +async def _asyncwith(c): + async with c: + x = 1 + y = 2 + +dis_asyncwith = """\ +%3d RETURN_GENERATOR + POP_TOP + RESUME 0 + +%3d LOAD_FAST 0 (c) + BEFORE_ASYNC_WITH + GET_AWAITABLE 1 + LOAD_CONST 0 (None) + >> SEND 3 (to 22) + YIELD_VALUE 3 + RESUME 3 + JUMP_BACKWARD_NO_INTERRUPT 4 (to 14) + >> POP_TOP + +%3d LOAD_CONST 1 (1) + STORE_FAST 1 (x) + +%3d LOAD_CONST 0 (None) + LOAD_CONST 0 (None) + LOAD_CONST 0 (None) + CALL 2 + GET_AWAITABLE 2 + LOAD_CONST 0 (None) + >> SEND 3 (to 56) + YIELD_VALUE 2 + RESUME 3 + JUMP_BACKWARD_NO_INTERRUPT 4 (to 48) + >> POP_TOP + +%3d LOAD_CONST 2 (2) + STORE_FAST 2 (y) + LOAD_CONST 0 (None) + RETURN_VALUE + +%3d >> CLEANUP_THROW + JUMP_BACKWARD 24 (to 22) + >> CLEANUP_THROW + JUMP_BACKWARD 9 (to 56) + >> PUSH_EXC_INFO + WITH_EXCEPT_START + GET_AWAITABLE 2 + LOAD_CONST 0 (None) + >> SEND 4 (to 92) + YIELD_VALUE 6 + RESUME 3 + JUMP_BACKWARD_NO_INTERRUPT 4 (to 82) + >> CLEANUP_THROW + >> POP_JUMP_IF_TRUE 1 (to 96) + RERAISE 2 + >> POP_TOP + POP_EXCEPT + POP_TOP + POP_TOP + +%3d LOAD_CONST 2 (2) + STORE_FAST 2 (y) + LOAD_CONST 0 (None) + RETURN_VALUE + >> COPY 3 + POP_EXCEPT + RERAISE 1 +ExceptionTable: +6 rows +""" % (_asyncwith.__code__.co_firstlineno, + _asyncwith.__code__.co_firstlineno + 1, + _asyncwith.__code__.co_firstlineno + 2, + _asyncwith.__code__.co_firstlineno + 1, + _asyncwith.__code__.co_firstlineno + 3, + _asyncwith.__code__.co_firstlineno + 1, + _asyncwith.__code__.co_firstlineno + 3, + ) + + def _tryfinally(a, b): try: return a @@ -455,6 +588,7 @@ def _tryfinallyconst(b): POP_EXCEPT RERAISE 1 ExceptionTable: +2 rows """ % (_tryfinally.__code__.co_firstlineno, _tryfinally.__code__.co_firstlineno + 1, _tryfinally.__code__.co_firstlineno + 2, @@ -484,6 +618,7 @@ def _tryfinallyconst(b): POP_EXCEPT RERAISE 1 ExceptionTable: +1 row """ % (_tryfinallyconst.__code__.co_firstlineno, _tryfinallyconst.__code__.co_firstlineno + 1, _tryfinallyconst.__code__.co_firstlineno + 2, @@ -557,13 +692,13 @@ def foo(x): %3d RESUME 0 BUILD_LIST 0 LOAD_FAST 0 (.0) - >> FOR_ITER 7 (to 24) + >> FOR_ITER 7 (to 26) STORE_FAST 1 (z) LOAD_DEREF 2 (x) LOAD_FAST 1 (z) BINARY_OP 0 (+) LIST_APPEND 2 - JUMP_BACKWARD 8 (to 8) + JUMP_BACKWARD 9 (to 8) >> RETURN_VALUE """ % (dis_nested_1, __file__, @@ -604,14 +739,14 @@ def loop_test(): LOAD_CONST 2 (3) BINARY_OP_ADAPTIVE 5 (*) GET_ITER - FOR_ITER 15 (to 48) + >> FOR_ITER_LIST 15 (to 50) STORE_FAST 0 (i) %3d LOAD_GLOBAL_MODULE 1 (NULL + load_test) LOAD_FAST 0 (i) CALL_PY_WITH_DEFAULTS 1 POP_TOP - JUMP_BACKWARD_QUICK 16 (to 16) + JUMP_BACKWARD_QUICK 17 (to 16) %3d >> LOAD_CONST 0 (None) RETURN_VALUE @@ -620,6 +755,22 @@ def loop_test(): loop_test.__code__.co_firstlineno + 2, loop_test.__code__.co_firstlineno + 1,) +def extended_arg_quick(): + *_, _ = ... + +dis_extended_arg_quick_code = """\ +%3d 0 RESUME 0 + +%3d 2 LOAD_CONST 1 (Ellipsis) + 4 EXTENDED_ARG 1 + 6 UNPACK_EX 256 + 8 STORE_FAST 0 (_) + 10 STORE_FAST 0 (_) + 12 LOAD_CONST 0 (None) + 14 RETURN_VALUE +"""% (extended_arg_quick.__code__.co_firstlineno, + extended_arg_quick.__code__.co_firstlineno + 1,) + QUICKENING_WARMUP_DELAY = 8 class DisTestBase(unittest.TestCase): @@ -662,6 +813,18 @@ def assert_offsets_increasing(self, text, delta): self.assertGreaterEqual(offset, expected_offset, line) expected_offset = offset + delta + def assert_exception_table_increasing(self, lines): + prev_start, prev_end = -1, -1 + count = 0 + for line in lines: + m = re.match(r' (\d+) to (\d+) -> \d+ \[\d+\]', line) + start, end = [int(g) for g in m.groups()] + self.assertGreaterEqual(end, start) + self.assertGreater(start, prev_end) + prev_start, prev_end = start, end + count += 1 + return count + def strip_offsets(self, text): lines = text.splitlines(True) start, end = self.find_offset_column(lines) @@ -675,6 +838,9 @@ def strip_offsets(self, text): res.append(line) else: res.append(line[:start] + line[end:]) + num_rows = self.assert_exception_table_increasing(lines) + if num_rows: + res.append(f"{num_rows} row{'s' if num_rows > 1 else ''}\n") return "".join(res) def do_disassembly_compare(self, got, expected, with_offsets=False): @@ -721,22 +887,14 @@ def test_boundaries(self): self.assertEqual(dis.opmap["STORE_NAME"], dis.HAVE_ARGUMENT) def test_widths(self): - long_opcodes = set(['POP_JUMP_FORWARD_IF_FALSE', - 'POP_JUMP_FORWARD_IF_TRUE', - 'POP_JUMP_FORWARD_IF_NOT_NONE', - 'POP_JUMP_FORWARD_IF_NONE', - 'POP_JUMP_BACKWARD_IF_FALSE', - 'POP_JUMP_BACKWARD_IF_TRUE', - 'POP_JUMP_BACKWARD_IF_NOT_NONE', - 'POP_JUMP_BACKWARD_IF_NONE', - 'JUMP_BACKWARD_NO_INTERRUPT', + long_opcodes = set(['JUMP_BACKWARD_NO_INTERRUPT', ]) for opcode, opname in enumerate(dis.opname): if opname in long_opcodes: continue with self.subTest(opname=opname): width = dis._OPNAME_WIDTH - if opcode < dis.HAVE_ARGUMENT: + if opcode in dis.hasarg: width += 1 + dis._OPARG_WIDTH self.assertLessEqual(len(opname), width) @@ -867,6 +1025,12 @@ def test_disassemble_coroutine(self): def test_disassemble_fstring(self): self.do_disassembly_test(_fstring, dis_fstring) + def test_disassemble_with(self): + self.do_disassembly_test(_with, dis_with) + + def test_disassemble_asyncwith(self): + self.do_disassembly_test(_asyncwith, dis_asyncwith) + def test_disassemble_try_finally(self): self.do_disassembly_test(_tryfinally, dis_tryfinally) self.do_disassembly_test(_tryfinallyconst, dis_tryfinallyconst) @@ -925,7 +1089,7 @@ def test_super_instructions(self): @cpython_only def test_binary_specialize(self): binary_op_quicken = """\ - 0 RESUME_QUICK 0 + 0 0 RESUME_QUICK 0 1 2 LOAD_NAME 0 (a) 4 LOAD_NAME 1 (b) @@ -943,7 +1107,7 @@ def test_binary_specialize(self): self.do_disassembly_compare(got, binary_op_quicken % "BINARY_OP_ADD_UNICODE 0 (+)", True) binary_subscr_quicken = """\ - 0 RESUME_QUICK 0 + 0 0 RESUME_QUICK 0 1 2 LOAD_NAME 0 (a) 4 LOAD_CONST 0 (0) @@ -963,11 +1127,11 @@ def test_binary_specialize(self): @cpython_only def test_load_attr_specialize(self): load_attr_quicken = """\ - 0 RESUME_QUICK 0 + 0 0 RESUME_QUICK 0 1 2 LOAD_CONST 0 ('a') 4 LOAD_ATTR_SLOT 0 (__class__) - 14 RETURN_VALUE + 24 RETURN_VALUE """ co = compile("'a'.__class__", "", "eval") self.code_quicken(lambda: exec(co, {}, {})) @@ -977,7 +1141,7 @@ def test_load_attr_specialize(self): @cpython_only def test_call_specialize(self): call_quicken = """\ - RESUME_QUICK 0 + 0 RESUME_QUICK 0 1 PUSH_NULL LOAD_NAME 0 (str) @@ -997,6 +1161,11 @@ def test_loop_quicken(self): got = self.get_disassembly(loop_test, adaptive=True) self.do_disassembly_compare(got, dis_loop_test_quickened_code) + @cpython_only + def test_extended_arg_quick(self): + got = self.get_disassembly(extended_arg_quick) + self.do_disassembly_compare(got, dis_extended_arg_quick_code, True) + def get_cached_values(self, quickened, adaptive): def f(): l = [] @@ -1025,8 +1194,10 @@ def test_show_caches(self): caches = list(self.get_cached_values(quickened, adaptive)) for cache in caches: self.assertRegex(cache, pattern) - self.assertEqual(caches.count(""), 8) - self.assertEqual(len(caches), 23) + total_caches = 23 + empty_caches = 8 if adaptive and quickened else total_caches + self.assertEqual(caches.count(""), empty_caches) + self.assertEqual(len(caches), total_caches) class DisWithFileTests(DisTests): @@ -1378,113 +1549,114 @@ def _prepare_test_cases(): Instruction(opname='LOAD_CONST', opcode=100, arg=1, argval=10, argrepr='10', offset=14, starts_line=None, is_jump_target=False, positions=None), Instruction(opname='CALL', opcode=171, arg=1, argval=1, argrepr='', offset=16, starts_line=None, is_jump_target=False, positions=None), Instruction(opname='GET_ITER', opcode=68, arg=None, argval=None, argrepr='', offset=26, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='FOR_ITER', opcode=93, arg=29, argval=88, argrepr='to 88', offset=28, starts_line=None, is_jump_target=True, positions=None), - Instruction(opname='STORE_FAST', opcode=125, arg=0, argval='i', argrepr='i', offset=30, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_GLOBAL', opcode=116, arg=3, argval='print', argrepr='NULL + print', offset=32, starts_line=4, is_jump_target=False, positions=None), - Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=44, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='CALL', opcode=171, arg=1, argval=1, argrepr='', offset=46, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=56, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=58, starts_line=5, is_jump_target=False, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=2, argval=4, argrepr='4', offset=60, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='COMPARE_OP', opcode=107, arg=0, argval='<', argrepr='<', offset=62, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_JUMP_FORWARD_IF_FALSE', opcode=114, arg=1, argval=72, argrepr='to 72', offset=68, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='JUMP_BACKWARD', opcode=140, arg=22, argval=28, argrepr='to 28', offset=70, starts_line=6, is_jump_target=False, positions=None), - Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=72, starts_line=7, is_jump_target=True, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=3, argval=6, argrepr='6', offset=74, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='COMPARE_OP', opcode=107, arg=4, argval='>', argrepr='>', offset=76, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_JUMP_BACKWARD_IF_FALSE', opcode=175, arg=28, argval=28, argrepr='to 28', offset=82, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=84, starts_line=8, is_jump_target=False, positions=None), - Instruction(opname='JUMP_FORWARD', opcode=110, arg=13, argval=114, argrepr='to 114', offset=86, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_GLOBAL', opcode=116, arg=3, argval='print', argrepr='NULL + print', offset=88, starts_line=10, is_jump_target=True, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=4, argval='I can haz else clause?', argrepr="'I can haz else clause?'", offset=100, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='CALL', opcode=171, arg=1, argval=1, argrepr='', offset=102, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=112, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=114, starts_line=11, is_jump_target=True, positions=None), - Instruction(opname='POP_JUMP_FORWARD_IF_FALSE', opcode=114, arg=34, argval=186, argrepr='to 186', offset=116, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_GLOBAL', opcode=116, arg=3, argval='print', argrepr='NULL + print', offset=118, starts_line=12, is_jump_target=True, positions=None), - Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=130, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='CALL', opcode=171, arg=1, argval=1, argrepr='', offset=132, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=142, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=144, starts_line=13, is_jump_target=False, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=5, argval=1, argrepr='1', offset=146, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='BINARY_OP', opcode=122, arg=23, argval=23, argrepr='-=', offset=148, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='STORE_FAST', opcode=125, arg=0, argval='i', argrepr='i', offset=152, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=154, starts_line=14, is_jump_target=False, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=3, argval=6, argrepr='6', offset=156, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='COMPARE_OP', opcode=107, arg=4, argval='>', argrepr='>', offset=158, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_JUMP_FORWARD_IF_FALSE', opcode=114, arg=1, argval=168, argrepr='to 168', offset=164, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='JUMP_BACKWARD', opcode=140, arg=27, argval=114, argrepr='to 114', offset=166, starts_line=15, is_jump_target=False, positions=None), - Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=168, starts_line=16, is_jump_target=True, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=2, argval=4, argrepr='4', offset=170, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='COMPARE_OP', opcode=107, arg=0, argval='<', argrepr='<', offset=172, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_JUMP_FORWARD_IF_FALSE', opcode=114, arg=1, argval=182, argrepr='to 182', offset=178, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='JUMP_FORWARD', opcode=110, arg=15, argval=212, argrepr='to 212', offset=180, starts_line=17, is_jump_target=False, positions=None), - Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=182, starts_line=11, is_jump_target=True, positions=None), - Instruction(opname='POP_JUMP_BACKWARD_IF_TRUE', opcode=176, arg=34, argval=118, argrepr='to 118', offset=184, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_GLOBAL', opcode=116, arg=3, argval='print', argrepr='NULL + print', offset=186, starts_line=19, is_jump_target=True, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=6, argval='Who let lolcatz into this test suite?', argrepr="'Who let lolcatz into this test suite?'", offset=198, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='CALL', opcode=171, arg=1, argval=1, argrepr='', offset=200, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=210, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='NOP', opcode=9, arg=None, argval=None, argrepr='', offset=212, starts_line=20, is_jump_target=True, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=5, argval=1, argrepr='1', offset=214, starts_line=21, is_jump_target=False, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=7, argval=0, argrepr='0', offset=216, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='BINARY_OP', opcode=122, arg=11, argval=11, argrepr='/', offset=218, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=222, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=224, starts_line=25, is_jump_target=False, positions=None), - Instruction(opname='BEFORE_WITH', opcode=53, arg=None, argval=None, argrepr='', offset=226, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='STORE_FAST', opcode=125, arg=1, argval='dodgy', argrepr='dodgy', offset=228, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_GLOBAL', opcode=116, arg=3, argval='print', argrepr='NULL + print', offset=230, starts_line=26, is_jump_target=False, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=8, argval='Never reach this', argrepr="'Never reach this'", offset=242, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='CALL', opcode=171, arg=1, argval=1, argrepr='', offset=244, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=254, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=256, starts_line=25, is_jump_target=False, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=258, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=260, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='CALL', opcode=171, arg=2, argval=2, argrepr='', offset=262, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=272, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='JUMP_FORWARD', opcode=110, arg=41, argval=358, argrepr='to 358', offset=274, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='PUSH_EXC_INFO', opcode=35, arg=None, argval=None, argrepr='', offset=276, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='WITH_EXCEPT_START', opcode=49, arg=None, argval=None, argrepr='', offset=278, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_JUMP_FORWARD_IF_TRUE', opcode=115, arg=4, argval=290, argrepr='to 290', offset=280, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='RERAISE', opcode=119, arg=2, argval=2, argrepr='', offset=282, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='COPY', opcode=120, arg=3, argval=3, argrepr='', offset=284, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_EXCEPT', opcode=89, arg=None, argval=None, argrepr='', offset=286, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='RERAISE', opcode=119, arg=1, argval=1, argrepr='', offset=288, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=290, starts_line=None, is_jump_target=True, positions=None), - Instruction(opname='POP_EXCEPT', opcode=89, arg=None, argval=None, argrepr='', offset=292, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=294, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=296, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='JUMP_FORWARD', opcode=110, arg=29, argval=358, argrepr='to 358', offset=298, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='PUSH_EXC_INFO', opcode=35, arg=None, argval=None, argrepr='', offset=300, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_GLOBAL', opcode=116, arg=4, argval='ZeroDivisionError', argrepr='ZeroDivisionError', offset=302, starts_line=22, is_jump_target=False, positions=None), - Instruction(opname='CHECK_EXC_MATCH', opcode=36, arg=None, argval=None, argrepr='', offset=314, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_JUMP_FORWARD_IF_FALSE', opcode=114, arg=16, argval=350, argrepr='to 350', offset=316, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=318, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_GLOBAL', opcode=116, arg=3, argval='print', argrepr='NULL + print', offset=320, starts_line=23, is_jump_target=False, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=9, argval='Here we go, here we go, here we go...', argrepr="'Here we go, here we go, here we go...'", offset=332, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='CALL', opcode=171, arg=1, argval=1, argrepr='', offset=334, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=344, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_EXCEPT', opcode=89, arg=None, argval=None, argrepr='', offset=346, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='JUMP_FORWARD', opcode=110, arg=4, argval=358, argrepr='to 358', offset=348, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='RERAISE', opcode=119, arg=0, argval=0, argrepr='', offset=350, starts_line=22, is_jump_target=True, positions=None), - Instruction(opname='COPY', opcode=120, arg=3, argval=3, argrepr='', offset=352, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_EXCEPT', opcode=89, arg=None, argval=None, argrepr='', offset=354, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='RERAISE', opcode=119, arg=1, argval=1, argrepr='', offset=356, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_GLOBAL', opcode=116, arg=3, argval='print', argrepr='NULL + print', offset=358, starts_line=28, is_jump_target=True, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=370, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='CALL', opcode=171, arg=1, argval=1, argrepr='', offset=372, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=382, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=384, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='RETURN_VALUE', opcode=83, arg=None, argval=None, argrepr='', offset=386, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='PUSH_EXC_INFO', opcode=35, arg=None, argval=None, argrepr='', offset=388, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_GLOBAL', opcode=116, arg=3, argval='print', argrepr='NULL + print', offset=390, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=402, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='CALL', opcode=171, arg=1, argval=1, argrepr='', offset=404, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=414, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='RERAISE', opcode=119, arg=0, argval=0, argrepr='', offset=416, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='COPY', opcode=120, arg=3, argval=3, argrepr='', offset=418, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_EXCEPT', opcode=89, arg=None, argval=None, argrepr='', offset=420, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='RERAISE', opcode=119, arg=1, argval=1, argrepr='', offset=422, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='FOR_ITER', opcode=93, arg=30, argval=92, argrepr='to 92', offset=28, starts_line=None, is_jump_target=True, positions=None), + Instruction(opname='STORE_FAST', opcode=125, arg=0, argval='i', argrepr='i', offset=32, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_GLOBAL', opcode=116, arg=3, argval='print', argrepr='NULL + print', offset=34, starts_line=4, is_jump_target=False, positions=None), + Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=46, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='CALL', opcode=171, arg=1, argval=1, argrepr='', offset=48, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=58, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=60, starts_line=5, is_jump_target=False, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=2, argval=4, argrepr='4', offset=62, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='COMPARE_OP', opcode=107, arg=0, argval='<', argrepr='<', offset=64, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_JUMP_IF_FALSE', opcode=114, arg=1, argval=74, argrepr='to 74', offset=70, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='JUMP_BACKWARD', opcode=140, arg=23, argval=28, argrepr='to 28', offset=72, starts_line=6, is_jump_target=False, positions=None), + Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=74, starts_line=7, is_jump_target=True, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=3, argval=6, argrepr='6', offset=76, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='COMPARE_OP', opcode=107, arg=4, argval='>', argrepr='>', offset=78, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_JUMP_IF_TRUE', opcode=115, arg=1, argval=88, argrepr='to 88', offset=84, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='JUMP_BACKWARD', opcode=140, arg=30, argval=28, argrepr='to 28', offset=86, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=88, starts_line=8, is_jump_target=True, positions=None), + Instruction(opname='JUMP_FORWARD', opcode=110, arg=13, argval=118, argrepr='to 118', offset=90, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_GLOBAL', opcode=116, arg=3, argval='print', argrepr='NULL + print', offset=92, starts_line=10, is_jump_target=True, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=4, argval='I can haz else clause?', argrepr="'I can haz else clause?'", offset=104, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='CALL', opcode=171, arg=1, argval=1, argrepr='', offset=106, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=116, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_FAST_CHECK', opcode=127, arg=0, argval='i', argrepr='i', offset=118, starts_line=11, is_jump_target=True, positions=None), + Instruction(opname='POP_JUMP_IF_FALSE', opcode=114, arg=35, argval=192, argrepr='to 192', offset=120, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_GLOBAL', opcode=116, arg=3, argval='print', argrepr='NULL + print', offset=122, starts_line=12, is_jump_target=True, positions=None), + Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=134, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='CALL', opcode=171, arg=1, argval=1, argrepr='', offset=136, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=146, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=148, starts_line=13, is_jump_target=False, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=5, argval=1, argrepr='1', offset=150, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='BINARY_OP', opcode=122, arg=23, argval=23, argrepr='-=', offset=152, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='STORE_FAST', opcode=125, arg=0, argval='i', argrepr='i', offset=156, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=158, starts_line=14, is_jump_target=False, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=3, argval=6, argrepr='6', offset=160, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='COMPARE_OP', opcode=107, arg=4, argval='>', argrepr='>', offset=162, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_JUMP_IF_FALSE', opcode=114, arg=1, argval=172, argrepr='to 172', offset=168, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='JUMP_BACKWARD', opcode=140, arg=27, argval=118, argrepr='to 118', offset=170, starts_line=15, is_jump_target=False, positions=None), + Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=172, starts_line=16, is_jump_target=True, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=2, argval=4, argrepr='4', offset=174, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='COMPARE_OP', opcode=107, arg=0, argval='<', argrepr='<', offset=176, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_JUMP_IF_FALSE', opcode=114, arg=1, argval=186, argrepr='to 186', offset=182, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='JUMP_FORWARD', opcode=110, arg=16, argval=218, argrepr='to 218', offset=184, starts_line=17, is_jump_target=False, positions=None), + Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=186, starts_line=11, is_jump_target=True, positions=None), + Instruction(opname='POP_JUMP_IF_FALSE', opcode=114, arg=1, argval=192, argrepr='to 192', offset=188, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='JUMP_BACKWARD', opcode=140, arg=35, argval=122, argrepr='to 122', offset=190, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_GLOBAL', opcode=116, arg=3, argval='print', argrepr='NULL + print', offset=192, starts_line=19, is_jump_target=True, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=6, argval='Who let lolcatz into this test suite?', argrepr="'Who let lolcatz into this test suite?'", offset=204, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='CALL', opcode=171, arg=1, argval=1, argrepr='', offset=206, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=216, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='NOP', opcode=9, arg=None, argval=None, argrepr='', offset=218, starts_line=20, is_jump_target=True, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=5, argval=1, argrepr='1', offset=220, starts_line=21, is_jump_target=False, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=7, argval=0, argrepr='0', offset=222, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='BINARY_OP', opcode=122, arg=11, argval=11, argrepr='/', offset=224, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=228, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=230, starts_line=25, is_jump_target=False, positions=None), + Instruction(opname='BEFORE_WITH', opcode=53, arg=None, argval=None, argrepr='', offset=232, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='STORE_FAST', opcode=125, arg=1, argval='dodgy', argrepr='dodgy', offset=234, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_GLOBAL', opcode=116, arg=3, argval='print', argrepr='NULL + print', offset=236, starts_line=26, is_jump_target=False, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=8, argval='Never reach this', argrepr="'Never reach this'", offset=248, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='CALL', opcode=171, arg=1, argval=1, argrepr='', offset=250, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=260, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=262, starts_line=25, is_jump_target=False, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=264, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=266, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='CALL', opcode=171, arg=2, argval=2, argrepr='', offset=268, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=278, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_GLOBAL', opcode=116, arg=3, argval='print', argrepr='NULL + print', offset=280, starts_line=28, is_jump_target=True, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=292, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='CALL', opcode=171, arg=1, argval=1, argrepr='', offset=294, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=304, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=306, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='RETURN_VALUE', opcode=83, arg=None, argval=None, argrepr='', offset=308, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='PUSH_EXC_INFO', opcode=35, arg=None, argval=None, argrepr='', offset=310, starts_line=25, is_jump_target=False, positions=None), + Instruction(opname='WITH_EXCEPT_START', opcode=49, arg=None, argval=None, argrepr='', offset=312, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_JUMP_IF_TRUE', opcode=115, arg=1, argval=318, argrepr='to 318', offset=314, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='RERAISE', opcode=119, arg=2, argval=2, argrepr='', offset=316, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=318, starts_line=None, is_jump_target=True, positions=None), + Instruction(opname='POP_EXCEPT', opcode=89, arg=None, argval=None, argrepr='', offset=320, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=322, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=324, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='JUMP_BACKWARD', opcode=140, arg=24, argval=280, argrepr='to 280', offset=326, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='COPY', opcode=120, arg=3, argval=3, argrepr='', offset=328, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_EXCEPT', opcode=89, arg=None, argval=None, argrepr='', offset=330, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='RERAISE', opcode=119, arg=1, argval=1, argrepr='', offset=332, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='PUSH_EXC_INFO', opcode=35, arg=None, argval=None, argrepr='', offset=334, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_GLOBAL', opcode=116, arg=4, argval='ZeroDivisionError', argrepr='ZeroDivisionError', offset=336, starts_line=22, is_jump_target=False, positions=None), + Instruction(opname='CHECK_EXC_MATCH', opcode=36, arg=None, argval=None, argrepr='', offset=348, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_JUMP_IF_FALSE', opcode=114, arg=16, argval=384, argrepr='to 384', offset=350, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=352, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_GLOBAL', opcode=116, arg=3, argval='print', argrepr='NULL + print', offset=354, starts_line=23, is_jump_target=False, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=9, argval='Here we go, here we go, here we go...', argrepr="'Here we go, here we go, here we go...'", offset=366, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='CALL', opcode=171, arg=1, argval=1, argrepr='', offset=368, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=378, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_EXCEPT', opcode=89, arg=None, argval=None, argrepr='', offset=380, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='JUMP_BACKWARD', opcode=140, arg=52, argval=280, argrepr='to 280', offset=382, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='RERAISE', opcode=119, arg=0, argval=0, argrepr='', offset=384, starts_line=22, is_jump_target=True, positions=None), + Instruction(opname='COPY', opcode=120, arg=3, argval=3, argrepr='', offset=386, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_EXCEPT', opcode=89, arg=None, argval=None, argrepr='', offset=388, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='RERAISE', opcode=119, arg=1, argval=1, argrepr='', offset=390, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='PUSH_EXC_INFO', opcode=35, arg=None, argval=None, argrepr='', offset=392, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_GLOBAL', opcode=116, arg=3, argval='print', argrepr='NULL + print', offset=394, starts_line=28, is_jump_target=False, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=406, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='CALL', opcode=171, arg=1, argval=1, argrepr='', offset=408, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=418, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='RERAISE', opcode=119, arg=0, argval=0, argrepr='', offset=420, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='COPY', opcode=120, arg=3, argval=3, argrepr='', offset=422, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_EXCEPT', opcode=89, arg=None, argval=None, argrepr='', offset=424, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='RERAISE', opcode=119, arg=1, argval=1, argrepr='', offset=426, starts_line=None, is_jump_target=False, positions=None), ] # One last piece of inspect fodder to check the default line number handling @@ -1545,7 +1717,7 @@ def test_co_positions(self): for instr in dis.get_instructions(code) ] expected = [ - (None, None, None, None), + (0, 1, 0, 0), (1, 1, 0, 1), (1, 1, 0, 1), (2, 2, 2, 3), @@ -1580,6 +1752,36 @@ def test_co_positions_missing_info(self): self.assertIsNone(positions.col_offset) self.assertIsNone(positions.end_col_offset) + @requires_debug_ranges() + def test_co_positions_with_lots_of_caches(self): + def roots(a, b, c): + d = b**2 - 4 * a * c + yield (-b - cmath.sqrt(d)) / (2 * a) + if d: + yield (-b + cmath.sqrt(d)) / (2 * a) + code = roots.__code__ + ops = code.co_code[::2] + cache_opcode = opcode.opmap["CACHE"] + caches = sum(op == cache_opcode for op in ops) + non_caches = len(ops) - caches + # Make sure we have "lots of caches". If not, roots should be changed: + assert 1 / 3 <= caches / non_caches, "this test needs more caches!" + for show_caches in (False, True): + for adaptive in (False, True): + with self.subTest(f"{adaptive=}, {show_caches=}"): + co_positions = [ + positions + for op, positions in zip(ops, code.co_positions(), strict=True) + if show_caches or op != cache_opcode + ] + dis_positions = [ + instruction.positions + for instruction in dis.get_instructions( + code, adaptive=adaptive, show_caches=show_caches + ) + ] + self.assertEqual(co_positions, dis_positions) + # get_instructions has its own tests above, so can rely on it to validate # the object oriented API class BytecodeTests(InstructionTestCase, DisTestBase): diff --git a/Lib/test/test_doctest.py b/Lib/test/test_doctest.py index a4aab6cf4db3b5..65e215f1cdda4a 100644 --- a/Lib/test/test_doctest.py +++ b/Lib/test/test_doctest.py @@ -4,7 +4,6 @@ from test import support from test.support import import_helper -from test.support import os_helper import doctest import functools import os @@ -14,7 +13,6 @@ import importlib.util import unittest import tempfile -import shutil import types import contextlib @@ -461,7 +459,7 @@ def basics(): r""" >>> tests = finder.find(sample_func) >>> print(tests) # doctest: +ELLIPSIS - [<DocTest sample_func from test_doctest.py:34 (1 example)>] + [<DocTest sample_func from test_doctest.py:32 (1 example)>] The exact name depends on how test_doctest was invoked, so allow for leading path components. @@ -2811,6 +2809,8 @@ def test_lineendings(): r""" at least one of the line endings will raise a ValueError for inconsistent whitespace if doctest does not correctly do the newline conversion. + >>> from test.support import os_helper + >>> import shutil >>> dn = tempfile.mkdtemp() >>> pkg = os.path.join(dn, "doctest_testpkg") >>> os.mkdir(pkg) @@ -2854,7 +2854,7 @@ def test_testmod(): r""" # Skip the test: the filesystem encoding is unable to encode the filename supports_unicode = False -if supports_unicode and not support.has_no_debug_ranges(): +if supports_unicode: def test_unicode(): """ Check doctest with a non-ascii filename: @@ -2876,10 +2876,8 @@ def test_unicode(): """ Traceback (most recent call last): File ... exec(compile(example.source, filename, "single", - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<doctest foo-bär@baz[0]>", line 1, in <module> raise Exception('clé') - ^^^^^^^^^^^^^^^^^^^^^^ Exception: clé TestResults(failed=1, attempted=1) """ diff --git a/Lib/test/test_dtrace.py b/Lib/test/test_dtrace.py index 8a436ad123b80f..4b971deacc1a5c 100644 --- a/Lib/test/test_dtrace.py +++ b/Lib/test/test_dtrace.py @@ -6,9 +6,14 @@ import types import unittest +from test import support from test.support import findfile +if not support.has_subprocess_support: + raise unittest.SkipTest("test module requires subprocess") + + def abspath(filename): return os.path.abspath(findfile(filename, subdir="dtracedata")) diff --git a/Lib/test/test_dynamic.py b/Lib/test/test_dynamic.py index 3e0fcf4d158f8a..25544dea14df3a 100644 --- a/Lib/test/test_dynamic.py +++ b/Lib/test/test_dynamic.py @@ -1,6 +1,7 @@ # Test the most dynamic corner cases of Python's runtime semantics. import builtins +import sys import unittest from test.support import swap_item, swap_attr @@ -139,12 +140,57 @@ class MyGlobals(dict): def __missing__(self, key): return int(key.removeprefix("_number_")) - code = "lambda: " + "+".join(f"_number_{i}" for i in range(1000)) - sum_1000 = eval(code, MyGlobals()) - expected = sum(range(1000)) + # 1,000 on most systems + limit = sys.getrecursionlimit() + code = "lambda: " + "+".join(f"_number_{i}" for i in range(limit)) + sum_func = eval(code, MyGlobals()) + expected = sum(range(limit)) # Warm up the the function for quickening (PEP 659) for _ in range(30): - self.assertEqual(sum_1000(), expected) + self.assertEqual(sum_func(), expected) + + +class TestTracing(unittest.TestCase): + + def setUp(self): + self.addCleanup(sys.settrace, sys.gettrace()) + sys.settrace(None) + + def test_after_specialization(self): + + def trace(frame, event, arg): + return trace + + turn_on_trace = False + + class C: + def __init__(self, x): + self.x = x + def __del__(self): + if turn_on_trace: + sys.settrace(trace) + + def f(): + # LOAD_GLOBAL[_BUILTIN] immediately follows the call to C.__del__ + C(0).x, len + + def g(): + # BINARY_SUSCR[_LIST_INT] immediately follows the call to C.__del__ + [0][C(0).x] + + def h(): + # BINARY_OP[_ADD_INT] immediately follows the call to C.__del__ + 0 + C(0).x + + for func in (f, g, h): + with self.subTest(func.__name__): + for _ in range(58): + func() + turn_on_trace = True + func() + sys.settrace(None) + turn_on_trace = False + if __name__ == "__main__": unittest.main() diff --git a/Lib/test/test_email/test_email.py b/Lib/test/test_email/test_email.py index 2b1e2b864feda1..44b405740c4403 100644 --- a/Lib/test/test_email/test_email.py +++ b/Lib/test/test_email/test_email.py @@ -7,7 +7,6 @@ import base64 import unittest import textwrap -import warnings from io import StringIO, BytesIO from itertools import chain @@ -45,7 +44,7 @@ # These imports are documented to work, but we are testing them using a # different path, so we import them here just to make sure they are importable. -from email.parser import FeedParser, BytesFeedParser +from email.parser import FeedParser NL = '\n' EMPTYSTRING = '' @@ -3048,33 +3047,43 @@ def test_formatdate_usegmt(self): # parsedate and parsedate_tz will become deprecated interfaces someday def test_parsedate_returns_None_for_invalid_strings(self): - self.assertIsNone(utils.parsedate('')) - self.assertIsNone(utils.parsedate_tz('')) - self.assertIsNone(utils.parsedate(' ')) - self.assertIsNone(utils.parsedate_tz(' ')) - self.assertIsNone(utils.parsedate('0')) - self.assertIsNone(utils.parsedate_tz('0')) - self.assertIsNone(utils.parsedate('A Complete Waste of Time')) - self.assertIsNone(utils.parsedate_tz('A Complete Waste of Time')) - self.assertIsNone(utils.parsedate_tz('Wed, 3 Apr 2002 12.34.56.78+0800')) + # See also test_parsedate_to_datetime_with_invalid_raises_valueerror + # in test_utils. + invalid_dates = [ + '', + ' ', + '0', + 'A Complete Waste of Time', + 'Wed, 3 Apr 2002 12.34.56.78+0800', + '17 June , 2022', + 'Friday, -Nov-82 16:14:55 EST', + 'Friday, Nov--82 16:14:55 EST', + 'Friday, 19-Nov- 16:14:55 EST', + ] + for dtstr in invalid_dates: + with self.subTest(dtstr=dtstr): + self.assertIsNone(utils.parsedate(dtstr)) + self.assertIsNone(utils.parsedate_tz(dtstr)) # Not a part of the spec but, but this has historically worked: self.assertIsNone(utils.parsedate(None)) self.assertIsNone(utils.parsedate_tz(None)) def test_parsedate_compact(self): + self.assertEqual(utils.parsedate_tz('Wed, 3 Apr 2002 14:58:26 +0800'), + (2002, 4, 3, 14, 58, 26, 0, 1, -1, 28800)) # The FWS after the comma is optional - self.assertEqual(utils.parsedate('Wed,3 Apr 2002 14:58:26 +0800'), - utils.parsedate('Wed, 3 Apr 2002 14:58:26 +0800')) + self.assertEqual(utils.parsedate_tz('Wed,3 Apr 2002 14:58:26 +0800'), + (2002, 4, 3, 14, 58, 26, 0, 1, -1, 28800)) + # The comma is optional + self.assertEqual(utils.parsedate_tz('Wed 3 Apr 2002 14:58:26 +0800'), + (2002, 4, 3, 14, 58, 26, 0, 1, -1, 28800)) def test_parsedate_no_dayofweek(self): - eq = self.assertEqual - eq(utils.parsedate_tz('25 Feb 2003 13:47:26 -0800'), - (2003, 2, 25, 13, 47, 26, 0, 1, -1, -28800)) - - def test_parsedate_compact_no_dayofweek(self): eq = self.assertEqual eq(utils.parsedate_tz('5 Feb 2003 13:47:26 -0800'), (2003, 2, 5, 13, 47, 26, 0, 1, -1, -28800)) + eq(utils.parsedate_tz('February 5, 2003 13:47:26 -0800'), + (2003, 2, 5, 13, 47, 26, 0, 1, -1, -28800)) def test_parsedate_no_space_before_positive_offset(self): self.assertEqual(utils.parsedate_tz('Wed, 3 Apr 2002 14:58:26+0800'), @@ -3085,7 +3094,6 @@ def test_parsedate_no_space_before_negative_offset(self): self.assertEqual(utils.parsedate_tz('Wed, 3 Apr 2002 14:58:26-0800'), (2002, 4, 3, 14, 58, 26, 0, 1, -1, -28800)) - def test_parsedate_accepts_time_with_dots(self): eq = self.assertEqual eq(utils.parsedate_tz('5 Feb 2003 13.47.26 -0800'), @@ -3093,6 +3101,20 @@ def test_parsedate_accepts_time_with_dots(self): eq(utils.parsedate_tz('5 Feb 2003 13.47 -0800'), (2003, 2, 5, 13, 47, 0, 0, 1, -1, -28800)) + def test_parsedate_rfc_850(self): + self.assertEqual(utils.parsedate_tz('Friday, 19-Nov-82 16:14:55 EST'), + (1982, 11, 19, 16, 14, 55, 0, 1, -1, -18000)) + + def test_parsedate_no_seconds(self): + self.assertEqual(utils.parsedate_tz('Wed, 3 Apr 2002 14:58 +0800'), + (2002, 4, 3, 14, 58, 0, 0, 1, -1, 28800)) + + def test_parsedate_dot_time_delimiter(self): + self.assertEqual(utils.parsedate_tz('Wed, 3 Apr 2002 14.58.26 +0800'), + (2002, 4, 3, 14, 58, 26, 0, 1, -1, 28800)) + self.assertEqual(utils.parsedate_tz('Wed, 3 Apr 2002 14.58 +0800'), + (2002, 4, 3, 14, 58, 0, 0, 1, -1, 28800)) + def test_parsedate_acceptable_to_time_functions(self): eq = self.assertEqual timetup = utils.parsedate('5 Feb 2003 13:47:26 -0800') diff --git a/Lib/test/test_email/test_utils.py b/Lib/test/test_email/test_utils.py index e3d3eaebc93693..78afb358035e81 100644 --- a/Lib/test/test_email/test_utils.py +++ b/Lib/test/test_email/test_utils.py @@ -49,12 +49,21 @@ def test_parsedate_to_datetime_naive(self): self.naive_dt) def test_parsedate_to_datetime_with_invalid_raises_valueerror(self): - invalid_dates = ['', - '0', - 'A Complete Waste of Time' - 'Tue, 06 Jun 2017 27:39:33 +0600', - 'Tue, 06 Jun 2017 07:39:33 +2600', - 'Tue, 06 Jun 2017 27:39:33'] + # See also test_parsedate_returns_None_for_invalid_strings in test_email. + invalid_dates = [ + '', + ' ', + '0', + 'A Complete Waste of Time', + 'Wed, 3 Apr 2002 12.34.56.78+0800' + 'Tue, 06 Jun 2017 27:39:33 +0600', + 'Tue, 06 Jun 2017 07:39:33 +2600', + 'Tue, 06 Jun 2017 27:39:33', + '17 June , 2022', + 'Friday, -Nov-82 16:14:55 EST', + 'Friday, Nov--82 16:14:55 EST', + 'Friday, 19-Nov- 16:14:55 EST', + ] for dtstr in invalid_dates: with self.subTest(dtstr=dtstr): self.assertRaises(ValueError, utils.parsedate_to_datetime, dtstr) diff --git a/Lib/test/test_embed.py b/Lib/test/test_embed.py index f1ca6da147376c..70d7367ea9e64f 100644 --- a/Lib/test/test_embed.py +++ b/Lib/test/test_embed.py @@ -67,18 +67,16 @@ def setUp(self): ext = ("_d" if debug_build(sys.executable) else "") + ".exe" exename += ext exepath = builddir - expecteddir = os.path.join(support.REPO_ROOT, builddir) else: exepath = os.path.join(builddir, 'Programs') - expecteddir = os.path.join(support.REPO_ROOT, 'Programs') self.test_exe = exe = os.path.join(exepath, exename) - if exepath != expecteddir or not os.path.exists(exe): + if not os.path.exists(exe): self.skipTest("%r doesn't exist" % exe) # This is needed otherwise we get a fatal error: # "Py_Initialize: Unable to get the locale encoding # LookupError: no codec search functions registered: can't find encoding" self.oldcwd = os.getcwd() - os.chdir(support.REPO_ROOT) + os.chdir(builddir) def tearDown(self): os.chdir(self.oldcwd) @@ -285,7 +283,7 @@ def test_pre_initialization_sys_options(self): "test_pre_initialization_sys_options", env=env) expected_output = ( "sys.warnoptions: ['once', 'module', 'default']\n" - "sys._xoptions: {'dev': '2', 'utf8': '1'}\n" + "sys._xoptions: {'not_an_option': '1', 'also_not_an_option': '2'}\n" "warnings.filters[:3]: ['default', 'module', 'once']\n" ) self.assertIn(expected_output, out) @@ -438,6 +436,7 @@ class InitConfigTests(EmbeddingTestsMixin, unittest.TestCase): 'hash_seed': 0, 'faulthandler': 0, 'tracemalloc': 0, + 'perf_profiling': 0, 'import_time': 0, 'code_debug_ranges': 1, 'show_ref_count': 0, @@ -522,6 +521,7 @@ class InitConfigTests(EmbeddingTestsMixin, unittest.TestCase): use_hash_seed=0, faulthandler=0, tracemalloc=0, + perf_profiling=0, pathconfig_warnings=0, ) if MS_WINDOWS: @@ -629,7 +629,7 @@ def _get_expected_config(self): return configs def get_expected_config(self, expected_preconfig, expected, - env, api, modify_path_cb=None, cwd=None): + env, api, modify_path_cb=None): configs = self._get_expected_config() pre_config = configs['pre_config'] @@ -672,14 +672,6 @@ def get_expected_config(self, expected_preconfig, expected, expected['base_executable'] = default_executable if expected['program_name'] is self.GET_DEFAULT_CONFIG: expected['program_name'] = './_testembed' - if MS_WINDOWS: - # follow the calculation in getpath.py - tmpname = expected['program_name'] + '.exe' - if cwd: - tmpname = os.path.join(cwd, tmpname) - if os.path.isfile(tmpname): - expected['program_name'] += '.exe' - del tmpname config = configs['config'] for key, value in expected.items(): @@ -709,6 +701,11 @@ def check_pre_config(self, configs, expected): def check_config(self, configs, expected): config = dict(configs['config']) + if MS_WINDOWS: + value = config.get(key := 'program_name') + if value and isinstance(value, str): + ext = '_d.exe' if debug_build(sys.executable) else '.exe' + config[key] = value[:len(value.lower().removesuffix(ext))] for key, value in list(expected.items()): if value is self.IGNORE_CONFIG: config.pop(key, None) @@ -773,7 +770,7 @@ def check_all_configs(self, testname, expected_config=None, self.get_expected_config(expected_preconfig, expected_config, env, - api, modify_path_cb, cwd) + api, modify_path_cb) out, err = self.run_embedded_interpreter(testname, env=env, cwd=cwd) @@ -833,6 +830,7 @@ def test_init_from_config(self): 'use_hash_seed': 1, 'hash_seed': 123, 'tracemalloc': 2, + 'perf_profiling': 0, 'import_time': 1, 'code_debug_ranges': 0, 'show_ref_count': 1, @@ -846,14 +844,15 @@ def test_init_from_config(self): 'argv': ['-c', 'arg2'], 'orig_argv': ['python3', '-W', 'cmdline_warnoption', - '-X', 'dev', + '-X', 'cmdline_xoption', '-c', 'pass', 'arg2'], 'parse_argv': 2, 'xoptions': [ - 'dev=3', - 'utf8', - 'dev', + 'config_xoption1=3', + 'config_xoption2=', + 'config_xoption3', + 'cmdline_xoption', ], 'warnoptions': [ 'cmdline_warnoption', @@ -894,6 +893,7 @@ def test_init_compat_env(self): 'use_hash_seed': 1, 'hash_seed': 42, 'tracemalloc': 2, + 'perf_profiling': 0, 'import_time': 1, 'code_debug_ranges': 0, 'malloc_stats': 1, @@ -925,6 +925,7 @@ def test_init_python_env(self): 'use_hash_seed': 1, 'hash_seed': 42, 'tracemalloc': 2, + 'perf_profiling': 0, 'import_time': 1, 'code_debug_ranges': 0, 'malloc_stats': 1, @@ -1081,8 +1082,9 @@ def test_init_sys_add(self): config = { 'faulthandler': 1, 'xoptions': [ - 'dev', - 'utf8', + 'config_xoption', + 'cmdline_xoption', + 'sysadd_xoption', 'faulthandler', ], 'warnoptions': [ @@ -1092,12 +1094,9 @@ def test_init_sys_add(self): ], 'orig_argv': ['python3', '-W', 'ignore:::cmdline_warnoption', - '-X', 'utf8'], + '-X', 'cmdline_xoption'], } - preconfig = {'utf8_mode': 1} - self.check_all_configs("test_init_sys_add", config, - expected_preconfig=preconfig, - api=API_PYTHON) + self.check_all_configs("test_init_sys_add", config, api=API_PYTHON) def test_init_run_main(self): code = ('import _testinternalcapi, json; ' @@ -1303,6 +1302,66 @@ def test_init_setpythonhome(self): self.check_all_configs("test_init_setpythonhome", config, api=API_COMPAT, env=env) + def test_init_is_python_build_with_home(self): + # Test _Py_path_config._is_python_build configuration (gh-91985) + config = self._get_expected_config() + paths = config['config']['module_search_paths'] + paths_str = os.path.pathsep.join(paths) + + for path in paths: + if not os.path.isdir(path): + continue + if os.path.exists(os.path.join(path, 'os.py')): + home = os.path.dirname(path) + break + else: + self.fail(f"Unable to find home in {paths!r}") + + prefix = exec_prefix = home + if MS_WINDOWS: + stdlib = os.path.join(home, "Lib") + # Because we are specifying 'home', module search paths + # are fairly static + expected_paths = [paths[0], stdlib, os.path.join(home, 'DLLs')] + else: + version = f'{sys.version_info.major}.{sys.version_info.minor}' + stdlib = os.path.join(home, sys.platlibdir, f'python{version}') + expected_paths = self.module_search_paths(prefix=home, exec_prefix=home) + + config = { + 'home': home, + 'module_search_paths': expected_paths, + 'prefix': prefix, + 'base_prefix': prefix, + 'exec_prefix': exec_prefix, + 'base_exec_prefix': exec_prefix, + 'pythonpath_env': paths_str, + 'stdlib_dir': stdlib, + } + # The code above is taken from test_init_setpythonhome() + env = {'TESTHOME': home, 'PYTHONPATH': paths_str} + + env['NEGATIVE_ISPYTHONBUILD'] = '1' + config['_is_python_build'] = 0 + self.check_all_configs("test_init_is_python_build", config, + api=API_COMPAT, env=env) + + env['NEGATIVE_ISPYTHONBUILD'] = '0' + config['_is_python_build'] = 1 + exedir = os.path.dirname(sys.executable) + with open(os.path.join(exedir, 'pybuilddir.txt'), encoding='utf8') as f: + expected_paths[2] = os.path.normpath( + os.path.join(exedir, f'{f.read()}\n$'.splitlines()[0])) + if not MS_WINDOWS: + # PREFIX (default) is set when running in build directory + prefix = exec_prefix = sys.prefix + # stdlib calculation (/Lib) is not yet supported + expected_paths[0] = self.module_search_paths(prefix=prefix)[0] + config.update(prefix=prefix, base_prefix=prefix, + exec_prefix=exec_prefix, base_exec_prefix=exec_prefix) + self.check_all_configs("test_init_is_python_build", config, + api=API_COMPAT, env=env) + def copy_paths_by_env(self, config): all_configs = self._get_expected_config() paths = all_configs['config']['module_search_paths'] @@ -1318,10 +1377,11 @@ def test_init_pybuilddir(self): with self.tmpdir_with_python() as tmpdir: # pybuilddir.txt is a sub-directory relative to the current # directory (tmpdir) + vpath = sysconfig.get_config_var("VPATH") or '' subdir = 'libdir' libdir = os.path.join(tmpdir, subdir) # The stdlib dir is dirname(executable) + VPATH + 'Lib' - stdlibdir = os.path.join(tmpdir, 'Lib') + stdlibdir = os.path.normpath(os.path.join(tmpdir, vpath, 'Lib')) os.mkdir(libdir) filename = os.path.join(tmpdir, 'pybuilddir.txt') diff --git a/Lib/test/test_enum.py b/Lib/test/test_enum.py index 44a3912630c32b..9d16fbc2777d70 100644 --- a/Lib/test/test_enum.py +++ b/Lib/test/test_enum.py @@ -1,3 +1,4 @@ +import copy import enum import doctest import inspect @@ -6,6 +7,7 @@ import sys import unittest import threading +import typing import builtins as bltns from collections import OrderedDict from datetime import date @@ -64,10 +66,27 @@ class FloatStooges(float, Enum): class FlagStooges(Flag): LARRY = 1 CURLY = 2 - MOE = 3 + MOE = 4 except Exception as exc: FlagStooges = exc +class FlagStoogesWithZero(Flag): + NOFLAG = 0 + LARRY = 1 + CURLY = 2 + MOE = 4 + +class IntFlagStooges(IntFlag): + LARRY = 1 + CURLY = 2 + MOE = 4 + +class IntFlagStoogesWithZero(IntFlag): + NOFLAG = 0 + LARRY = 1 + CURLY = 2 + MOE = 4 + # for pickle test and subclass tests class Name(StrEnum): BDFL = 'Guido van Rossum' @@ -341,20 +360,12 @@ def test_changing_member_fails(self): with self.assertRaises(AttributeError): self.MainEnum.second = 'really first' - @unittest.skipIf( - python_version >= (3, 12), - '__contains__ now returns True/False for all inputs', - ) - @unittest.expectedFailure - def test_contains_er(self): + def test_contains_tf(self): MainEnum = self.MainEnum - self.assertIn(MainEnum.third, MainEnum) - with self.assertRaises(TypeError): - with self.assertWarns(DeprecationWarning): - self.source_values[1] in MainEnum - with self.assertRaises(TypeError): - with self.assertWarns(DeprecationWarning): - 'first' in MainEnum + self.assertIn(MainEnum.first, MainEnum) + self.assertTrue(self.values[0] in MainEnum) + if type(self) is not TestStrEnum: + self.assertFalse('first' in MainEnum) val = MainEnum.dupe self.assertIn(val, MainEnum) # @@ -362,24 +373,43 @@ class OtherEnum(Enum): one = auto() two = auto() self.assertNotIn(OtherEnum.two, MainEnum) - - @unittest.skipIf( - python_version < (3, 12), - '__contains__ works only with enum memmbers before 3.12', - ) - @unittest.expectedFailure - def test_contains_tf(self): + # + if MainEnum._member_type_ is object: + # enums without mixed data types will always be False + class NotEqualEnum(self.enum_type): + this = self.source_values[0] + that = self.source_values[1] + self.assertNotIn(NotEqualEnum.this, MainEnum) + self.assertNotIn(NotEqualEnum.that, MainEnum) + else: + # enums with mixed data types may be True + class EqualEnum(self.enum_type): + this = self.source_values[0] + that = self.source_values[1] + self.assertIn(EqualEnum.this, MainEnum) + self.assertIn(EqualEnum.that, MainEnum) + + def test_contains_same_name_diff_enum_diff_values(self): MainEnum = self.MainEnum - self.assertIn(MainEnum.first, MainEnum) - self.assertTrue(self.source_values[0] in MainEnum) - self.assertFalse('first' in MainEnum) - val = MainEnum.dupe - self.assertIn(val, MainEnum) # class OtherEnum(Enum): - one = auto() - two = auto() - self.assertNotIn(OtherEnum.two, MainEnum) + first = "brand" + second = "new" + third = "values" + # + self.assertIn(MainEnum.first, MainEnum) + self.assertIn(MainEnum.second, MainEnum) + self.assertIn(MainEnum.third, MainEnum) + self.assertNotIn(MainEnum.first, OtherEnum) + self.assertNotIn(MainEnum.second, OtherEnum) + self.assertNotIn(MainEnum.third, OtherEnum) + # + self.assertIn(OtherEnum.first, OtherEnum) + self.assertIn(OtherEnum.second, OtherEnum) + self.assertIn(OtherEnum.third, OtherEnum) + self.assertNotIn(OtherEnum.first, MainEnum) + self.assertNotIn(OtherEnum.second, MainEnum) + self.assertNotIn(OtherEnum.third, MainEnum) def test_dir_on_class(self): TE = self.MainEnum @@ -734,6 +764,13 @@ def test_format_specs(self): self.assertFormatIsValue('{:5.2}', TE.third) self.assertFormatIsValue('{:f}', TE.third) + def test_copy(self): + TE = self.MainEnum + copied = copy.copy(TE) + self.assertEqual(copied, TE) + deep = copy.deepcopy(TE) + self.assertEqual(deep, TE) + class _FlagTests: @@ -972,6 +1009,15 @@ class SpamEnum(Enum): spam = SpamEnumNotInner self.assertEqual(SpamEnum.spam.value, SpamEnumNotInner) + def test_enum_of_generic_aliases(self): + class E(Enum): + a = typing.List[int] + b = list[int] + self.assertEqual(E.a.value, typing.List[int]) + self.assertEqual(E.b.value, list[int]) + self.assertEqual(repr(E.a), '<E.a: typing.List[int]>') + self.assertEqual(repr(E.b), '<E.b: list[int]>') + @unittest.skipIf( python_version >= (3, 13), 'inner classes are not members', @@ -1097,6 +1143,28 @@ class Huh(Enum): self.assertEqual(Huh.name.name, 'name') self.assertEqual(Huh.name.value, 1) + def test_contains_name_and_value_overlap(self): + class IntEnum1(IntEnum): + X = 1 + class IntEnum2(IntEnum): + X = 1 + class IntEnum3(IntEnum): + X = 2 + class IntEnum4(IntEnum): + Y = 1 + self.assertIn(IntEnum1.X, IntEnum1) + self.assertIn(IntEnum1.X, IntEnum2) + self.assertNotIn(IntEnum1.X, IntEnum3) + self.assertIn(IntEnum1.X, IntEnum4) + + def test_contains_different_types_same_members(self): + class IntEnum1(IntEnum): + X = 1 + class IntFlag1(IntFlag): + X = 1 + self.assertIn(IntEnum1.X, IntFlag1) + self.assertIn(IntFlag1.X, IntEnum1) + def test_inherited_data_type(self): class HexInt(int): __qualname__ = 'HexInt' @@ -2578,6 +2646,10 @@ class Private(Enum): self.assertEqual(Private._Private__corporal, 'Radar') self.assertEqual(Private._Private__major_, 'Hoolihan') + @unittest.skipIf( + python_version <= (3, 13), + 'member.member access currently deprecated', + ) def test_exception_for_member_from_member_access(self): with self.assertRaisesRegex(AttributeError, "<enum .Di.> member has no attribute .NO."): class Di(Enum): @@ -2585,6 +2657,17 @@ class Di(Enum): NO = 0 nope = Di.YES.NO + @unittest.skipIf( + python_version > (3, 13), + 'member.member access now raises', + ) + def test_warning_for_member_from_member_access(self): + with self.assertWarnsRegex(DeprecationWarning, '`member.member` access .* is deprecated and will be removed in 3.14'): + class Di(Enum): + YES = 1 + NO = 0 + warn = Di.YES.NO + self.assertIs(warn, Di.NO) def test_dynamic_members_with_static_methods(self): # @@ -2619,12 +2702,15 @@ def test_repr_with_dataclass(self): @dataclass class Foo: __qualname__ = 'Foo' - a: int = 0 + a: int class Entries(Foo, Enum): - ENTRY1 = Foo(1) + ENTRY1 = 1 + self.assertTrue(isinstance(Entries.ENTRY1, Foo)) + self.assertTrue(Entries._member_type_ is Foo, Entries._member_type_) + self.assertTrue(Entries.ENTRY1.value == Foo(1), Entries.ENTRY1.value) self.assertEqual(repr(Entries.ENTRY1), '<Entries.ENTRY1: Foo(a=1)>') - def test_repr_with_non_data_type_mixin(self): + def test_repr_with_init_data_type_mixin(self): # non-data_type is a mixin that doesn't define __new__ class Foo: def __init__(self, a): @@ -2632,10 +2718,23 @@ def __init__(self, a): def __repr__(self): return f'Foo(a={self.a!r})' class Entries(Foo, Enum): - ENTRY1 = Foo(1) - + ENTRY1 = 1 + # self.assertEqual(repr(Entries.ENTRY1), '<Entries.ENTRY1: Foo(a=1)>') + def test_repr_and_str_with_non_data_type_mixin(self): + # non-data_type is a mixin that doesn't define __new__ + class Foo: + def __repr__(self): + return 'Foo' + def __str__(self): + return 'ooF' + class Entries(Foo, Enum): + ENTRY1 = 1 + # + self.assertEqual(repr(Entries.ENTRY1), 'Foo') + self.assertEqual(str(Entries.ENTRY1), 'ooF') + def test_value_backup_assign(self): # check that enum will add missing values when custom __new__ does not class Some(Enum): @@ -2654,6 +2753,26 @@ class MyIntFlag(int, Flag): self.assertTrue(isinstance(MyIntFlag.ONE | MyIntFlag.TWO, MyIntFlag), MyIntFlag.ONE | MyIntFlag.TWO) self.assertTrue(isinstance(MyIntFlag.ONE | 2, MyIntFlag)) + def test_int_flags_copy(self): + class MyIntFlag(IntFlag): + ONE = 1 + TWO = 2 + FOUR = 4 + + flags = MyIntFlag.ONE | MyIntFlag.TWO + copied = copy.copy(flags) + deep = copy.deepcopy(flags) + self.assertEqual(copied, flags) + self.assertEqual(deep, flags) + + flags = MyIntFlag.ONE | MyIntFlag.TWO | 8 + copied = copy.copy(flags) + deep = copy.deepcopy(flags) + self.assertEqual(copied, flags) + self.assertEqual(deep, flags) + self.assertEqual(copied.value, 1 | 2 | 8) + + class TestOrder(unittest.TestCase): "test usage of the `_order_` attribute" @@ -2928,37 +3047,32 @@ def test_programatic_function_from_dict(self): def test_pickle(self): if isinstance(FlagStooges, Exception): raise FlagStooges - test_pickle_dump_load(self.assertIs, FlagStooges.CURLY|FlagStooges.MOE) + test_pickle_dump_load(self.assertIs, FlagStooges.CURLY) + test_pickle_dump_load(self.assertEqual, + FlagStooges.CURLY|FlagStooges.MOE) + test_pickle_dump_load(self.assertEqual, + FlagStooges.CURLY&~FlagStooges.CURLY) test_pickle_dump_load(self.assertIs, FlagStooges) - @unittest.skipIf( - python_version >= (3, 12), - '__contains__ now returns True/False for all inputs', - ) - @unittest.expectedFailure - def test_contains_er(self): - Open = self.Open - Color = self.Color - self.assertFalse(Color.BLACK in Open) - self.assertFalse(Open.RO in Color) - with self.assertRaises(TypeError): - with self.assertWarns(DeprecationWarning): - 'BLACK' in Color - with self.assertRaises(TypeError): - with self.assertWarns(DeprecationWarning): - 'RO' in Open - with self.assertRaises(TypeError): - with self.assertWarns(DeprecationWarning): - 1 in Color - with self.assertRaises(TypeError): - with self.assertWarns(DeprecationWarning): - 1 in Open + test_pickle_dump_load(self.assertIs, FlagStoogesWithZero.CURLY) + test_pickle_dump_load(self.assertEqual, + FlagStoogesWithZero.CURLY|FlagStoogesWithZero.MOE) + test_pickle_dump_load(self.assertIs, FlagStoogesWithZero.NOFLAG) + + test_pickle_dump_load(self.assertIs, IntFlagStooges.CURLY) + test_pickle_dump_load(self.assertEqual, + IntFlagStooges.CURLY|IntFlagStooges.MOE) + test_pickle_dump_load(self.assertEqual, + IntFlagStooges.CURLY|IntFlagStooges.MOE|0x30) + test_pickle_dump_load(self.assertEqual, IntFlagStooges(0)) + test_pickle_dump_load(self.assertEqual, IntFlagStooges(0x30)) + test_pickle_dump_load(self.assertIs, IntFlagStooges) + + test_pickle_dump_load(self.assertIs, IntFlagStoogesWithZero.CURLY) + test_pickle_dump_load(self.assertEqual, + IntFlagStoogesWithZero.CURLY|IntFlagStoogesWithZero.MOE) + test_pickle_dump_load(self.assertIs, IntFlagStoogesWithZero.NOFLAG) - @unittest.skipIf( - python_version < (3, 12), - '__contains__ only works with enum memmbers before 3.12', - ) - @unittest.expectedFailure def test_contains_tf(self): Open = self.Open Color = self.Color @@ -2966,6 +3080,8 @@ def test_contains_tf(self): self.assertFalse(Open.RO in Color) self.assertFalse('BLACK' in Color) self.assertFalse('RO' in Open) + self.assertTrue(Color.BLACK in Color) + self.assertTrue(Open.RO in Open) self.assertTrue(1 in Color) self.assertTrue(1 in Open) @@ -3353,7 +3469,10 @@ def test_invert(self): self.assertIs((Open.WO|Open.CE) & ~Open.WO, Open.CE) def test_boundary(self): - self.assertIs(enum.IntFlag._boundary_, EJECT) + self.assertIs(enum.IntFlag._boundary_, KEEP) + class Simple(IntFlag, boundary=KEEP): + SINGLE = 1 + # class Iron(IntFlag, boundary=STRICT): ONE = 1 TWO = 2 @@ -3372,7 +3491,6 @@ class Space(IntFlag, boundary=EJECT): EIGHT = 8 self.assertIs(Space._boundary_, EJECT) # - # class Bizarre(IntFlag, boundary=KEEP): b = 3 c = 4 @@ -3389,6 +3507,12 @@ class Bizarre(IntFlag, boundary=KEEP): self.assertEqual(list(Bizarre), [Bizarre.c]) self.assertIs(Bizarre(3), Bizarre.b) self.assertIs(Bizarre(6), Bizarre.d) + # + simple = Simple.SINGLE | Iron.TWO + self.assertEqual(simple, 3) + self.assertIsInstance(simple, Simple) + self.assertEqual(repr(simple), '<Simple.SINGLE|<Iron.TWO: 2>: 3>') + self.assertEqual(str(simple), '3') def test_iter(self): Color = self.Color @@ -3497,43 +3621,11 @@ def test_programatic_function_from_empty_tuple(self): self.assertEqual(len(lst), len(Thing)) self.assertEqual(len(Thing), 0, Thing) - @unittest.skipIf( - python_version >= (3, 12), - '__contains__ now returns True/False for all inputs', - ) - @unittest.expectedFailure - def test_contains_er(self): - Open = self.Open - Color = self.Color - self.assertTrue(Color.GREEN in Color) - self.assertTrue(Open.RW in Open) - self.assertFalse(Color.GREEN in Open) - self.assertFalse(Open.RW in Color) - with self.assertRaises(TypeError): - with self.assertWarns(DeprecationWarning): - 'GREEN' in Color - with self.assertRaises(TypeError): - with self.assertWarns(DeprecationWarning): - 'RW' in Open - with self.assertRaises(TypeError): - with self.assertWarns(DeprecationWarning): - 2 in Color - with self.assertRaises(TypeError): - with self.assertWarns(DeprecationWarning): - 2 in Open - - @unittest.skipIf( - python_version < (3, 12), - '__contains__ only works with enum memmbers before 3.12', - ) - @unittest.expectedFailure def test_contains_tf(self): Open = self.Open Color = self.Color self.assertTrue(Color.GREEN in Color) self.assertTrue(Open.RW in Open) - self.assertTrue(Color.GREEN in Open) - self.assertTrue(Open.RW in Color) self.assertFalse('GREEN' in Color) self.assertFalse('RW' in Open) self.assertTrue(2 in Color) @@ -3932,23 +4024,54 @@ class Color(AutoNameEnum): self.assertEqual(Color.blue.value, 'blue') self.assertEqual(Color.green.value, 'green') - def test_auto_garbage(self): - class Color(Enum): - red = 'red' - blue = auto() + @unittest.skipIf( + python_version >= (3, 13), + 'mixed types with auto() no longer supported', + ) + def test_auto_garbage_ok(self): + with self.assertWarnsRegex(DeprecationWarning, 'will require all values to be sortable'): + class Color(Enum): + red = 'red' + blue = auto() self.assertEqual(Color.blue.value, 1) - def test_auto_garbage_corrected(self): - class Color(Enum): - red = 'red' - blue = 2 - green = auto() + @unittest.skipIf( + python_version >= (3, 13), + 'mixed types with auto() no longer supported', + ) + def test_auto_garbage_corrected_ok(self): + with self.assertWarnsRegex(DeprecationWarning, 'will require all values to be sortable'): + class Color(Enum): + red = 'red' + blue = 2 + green = auto() self.assertEqual(list(Color), [Color.red, Color.blue, Color.green]) self.assertEqual(Color.red.value, 'red') self.assertEqual(Color.blue.value, 2) self.assertEqual(Color.green.value, 3) + @unittest.skipIf( + python_version < (3, 13), + 'mixed types with auto() will raise in 3.13', + ) + def test_auto_garbage_fail(self): + with self.assertRaisesRegex(TypeError, 'will require all values to be sortable'): + class Color(Enum): + red = 'red' + blue = auto() + + @unittest.skipIf( + python_version < (3, 13), + 'mixed types with auto() will raise in 3.13', + ) + def test_auto_garbage_corrected_fail(self): + with self.assertRaisesRegex(TypeError, 'will require all values to be sortable'): + class Color(Enum): + red = 'red' + blue = 2 + green = auto() + def test_auto_order(self): with self.assertRaises(TypeError): class Color(Enum): @@ -3970,6 +4093,22 @@ def _generate_next_value_(name, start, count, last): self.assertEqual(Color.red.value, 'pathological case') self.assertEqual(Color.blue.value, 'blue') + @unittest.skipIf( + python_version < (3, 13), + 'auto() will return highest value + 1 in 3.13', + ) + def test_auto_with_aliases(self): + class Color(Enum): + red = auto() + blue = auto() + oxford = blue + crimson = red + green = auto() + self.assertIs(Color.crimson, Color.red) + self.assertIs(Color.oxford, Color.blue) + self.assertIsNot(Color.green, Color.red) + self.assertIsNot(Color.green, Color.blue) + def test_duplicate_auto(self): class Dupes(Enum): first = primero = auto() @@ -3985,84 +4124,54 @@ class TestEnumTypeSubclassing(unittest.TestCase): class Color(enum.Enum) | Color(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None) - |\x20\x20 - | A collection of name/value pairs. - |\x20\x20 - | Access them by: - |\x20\x20 - | - attribute access:: - |\x20\x20 - | >>> Color.CYAN - | <Color.CYAN: 1> - |\x20\x20 - | - value lookup: - |\x20\x20 - | >>> Color(1) - | <Color.CYAN: 1> - |\x20\x20 - | - name lookup: - |\x20\x20 - | >>> Color['CYAN'] - | <Color.CYAN: 1> - |\x20\x20 - | Enumerations can be iterated over, and know how many members they have: - |\x20\x20 - | >>> len(Color) - | 3 - |\x20\x20 - | >>> list(Color) - | [<Color.CYAN: 1>, <Color.MAGENTA: 2>, <Color.YELLOW: 3>] - |\x20\x20 - | Methods can be added to enumerations, and members can have their own - | attributes -- see the documentation for details. - |\x20\x20 + | | Method resolution order: | Color | enum.Enum | builtins.object - |\x20\x20 + | | Data and other attributes defined here: - |\x20\x20 + | | CYAN = <Color.CYAN: 1> - |\x20\x20 + | | MAGENTA = <Color.MAGENTA: 2> - |\x20\x20 + | | YELLOW = <Color.YELLOW: 3> - |\x20\x20 + | | ---------------------------------------------------------------------- | Data descriptors inherited from enum.Enum: - |\x20\x20 + | | name | The name of the Enum member. - |\x20\x20 + | | value | The value of the Enum member. - |\x20\x20 + | | ---------------------------------------------------------------------- | Methods inherited from enum.EnumType: - |\x20\x20 - | __contains__(member) from enum.EnumType - | Return True if member is a member of this enum - | raises TypeError if member is not an enum member - |\x20\x20\x20\x20\x20\x20 - | note: in 3.12 TypeError will no longer be raised, and True will also be - | returned if member is the value of a member in this enum - |\x20\x20 + | + | __contains__(value) from enum.EnumType + | Return True if `value` is in `cls`. + | + | `value` is in `cls` if: + | 1) `value` is a member of `cls`, or + | 2) `value` is the value of one of the `cls`'s members. + | | __getitem__(name) from enum.EnumType | Return the member matching `name`. - |\x20\x20 + | | __iter__() from enum.EnumType | Return members in definition order. - |\x20\x20 + | | __len__() from enum.EnumType | Return the number of members (no aliases) - |\x20\x20 + | | ---------------------------------------------------------------------- | Readonly properties inherited from enum.EnumType: - |\x20\x20 + | | __members__ | Returns a mapping of member name->value. - |\x20\x20\x20\x20\x20\x20 + | | This mapping lists all enum members, including aliases. Note that this | is a read-only view of the internal mapping.""" @@ -4071,30 +4180,30 @@ class Color(enum.Enum) class Color(enum.Enum) | Color(value, names=None, *, module=None, qualname=None, type=None, start=1) - |\x20\x20 + | | Method resolution order: | Color | enum.Enum | builtins.object - |\x20\x20 + | | Data and other attributes defined here: - |\x20\x20 + | | YELLOW = <Color.YELLOW: 3> - |\x20\x20 + | | MAGENTA = <Color.MAGENTA: 2> - |\x20\x20 + | | CYAN = <Color.CYAN: 1> - |\x20\x20 + | | ---------------------------------------------------------------------- | Data descriptors inherited from enum.Enum: - |\x20\x20 + | | name - |\x20\x20 + | | value - |\x20\x20 + | | ---------------------------------------------------------------------- | Data descriptors inherited from enum.EnumType: - |\x20\x20 + | | __members__""" class TestStdLib(unittest.TestCase): @@ -4261,77 +4370,13 @@ def test__all__(self): def test_doc_1(self): class Single(Enum): ONE = 1 - self.assertEqual( - Single.__doc__, - dedent("""\ - A collection of name/value pairs. - - Access them by: - - - attribute access:: - - >>> Single.ONE - <Single.ONE: 1> - - - value lookup: - - >>> Single(1) - <Single.ONE: 1> - - - name lookup: - - >>> Single['ONE'] - <Single.ONE: 1> - - Enumerations can be iterated over, and know how many members they have: - - >>> len(Single) - 1 - - >>> list(Single) - [<Single.ONE: 1>] - - Methods can be added to enumerations, and members can have their own - attributes -- see the documentation for details. - """)) + self.assertEqual(Single.__doc__, None) def test_doc_2(self): class Double(Enum): ONE = 1 TWO = 2 - self.assertEqual( - Double.__doc__, - dedent("""\ - A collection of name/value pairs. - - Access them by: - - - attribute access:: - - >>> Double.ONE - <Double.ONE: 1> - - - value lookup: - - >>> Double(1) - <Double.ONE: 1> - - - name lookup: - - >>> Double['ONE'] - <Double.ONE: 1> - - Enumerations can be iterated over, and know how many members they have: - - >>> len(Double) - 2 - - >>> list(Double) - [<Double.ONE: 1>, <Double.TWO: 2>] - - Methods can be added to enumerations, and members can have their own - attributes -- see the documentation for details. - """)) + self.assertEqual(Double.__doc__, None) def test_doc_1(self): @@ -4339,39 +4384,7 @@ class Triple(Enum): ONE = 1 TWO = 2 THREE = 3 - self.assertEqual( - Triple.__doc__, - dedent("""\ - A collection of name/value pairs. - - Access them by: - - - attribute access:: - - >>> Triple.ONE - <Triple.ONE: 1> - - - value lookup: - - >>> Triple(1) - <Triple.ONE: 1> - - - name lookup: - - >>> Triple['ONE'] - <Triple.ONE: 1> - - Enumerations can be iterated over, and know how many members they have: - - >>> len(Triple) - 3 - - >>> list(Triple) - [<Triple.ONE: 1>, <Triple.TWO: 2>, <Triple.THREE: 3>] - - Methods can be added to enumerations, and members can have their own - attributes -- see the documentation for details. - """)) + self.assertEqual(Triple.__doc__, None) def test_doc_1(self): class Quadruple(Enum): @@ -4379,39 +4392,7 @@ class Quadruple(Enum): TWO = 2 THREE = 3 FOUR = 4 - self.assertEqual( - Quadruple.__doc__, - dedent("""\ - A collection of name/value pairs. - - Access them by: - - - attribute access:: - - >>> Quadruple.ONE - <Quadruple.ONE: 1> - - - value lookup: - - >>> Quadruple(1) - <Quadruple.ONE: 1> - - - name lookup: - - >>> Quadruple['ONE'] - <Quadruple.ONE: 1> - - Enumerations can be iterated over, and know how many members they have: - - >>> len(Quadruple) - 4 - - >>> list(Quadruple)[:3] - [<Quadruple.ONE: 1>, <Quadruple.TWO: 2>, <Quadruple.THREE: 3>] - - Methods can be added to enumerations, and members can have their own - attributes -- see the documentation for details. - """)) + self.assertEqual(Quadruple.__doc__, None) # These are unordered here on purpose to ensure that declaration order diff --git a/Lib/test/test_except_star.py b/Lib/test/test_except_star.py index 490b159e3b71b2..dbe8eff32924ed 100644 --- a/Lib/test/test_except_star.py +++ b/Lib/test/test_except_star.py @@ -955,7 +955,7 @@ def derive(self, excs): def test_falsy_exception_group_subclass(self): class FalsyEG(ExceptionGroup): def __bool__(self): - return False + return False def derive(self, excs): return FalsyEG(self.message, excs) diff --git a/Lib/test/test_exception_group.py b/Lib/test/test_exception_group.py index 2cfd8738304d1c..aa28e16bedfa68 100644 --- a/Lib/test/test_exception_group.py +++ b/Lib/test/test_exception_group.py @@ -1,5 +1,4 @@ import collections.abc -import traceback import types import unittest @@ -759,6 +758,18 @@ def test_split_does_not_copy_non_sequence_notes(self): self.assertFalse(hasattr(match, '__notes__')) self.assertFalse(hasattr(rest, '__notes__')) + def test_drive_invalid_return_value(self): + class MyEg(ExceptionGroup): + def derive(self, excs): + return 42 + + eg = MyEg('eg', [TypeError(1), ValueError(2)]) + msg = "derive must return an instance of BaseExceptionGroup" + with self.assertRaisesRegex(TypeError, msg): + eg.split(TypeError) + with self.assertRaisesRegex(TypeError, msg): + eg.subgroup(TypeError) + class NestedExceptionGroupSubclassSplitTest(ExceptionGroupSplitTestBase): diff --git a/Lib/test/test_exception_hierarchy.py b/Lib/test/test_exception_hierarchy.py index 89fe9ddcefba3e..3318fa8e7746f7 100644 --- a/Lib/test/test_exception_hierarchy.py +++ b/Lib/test/test_exception_hierarchy.py @@ -63,7 +63,7 @@ def test_select_error(self): +-- InterruptedError EINTR +-- IsADirectoryError EISDIR +-- NotADirectoryError ENOTDIR - +-- PermissionError EACCES, EPERM + +-- PermissionError EACCES, EPERM, ENOTCAPABLE +-- ProcessLookupError ESRCH +-- TimeoutError ETIMEDOUT """ @@ -75,6 +75,8 @@ def _make_map(s): continue excname, _, errnames = line.partition(' ') for errname in filter(None, errnames.strip().split(', ')): + if errname == "ENOTCAPABLE" and not hasattr(errno, errname): + continue _map[getattr(errno, errname)] = getattr(builtins, excname) return _map _map = _make_map(_pep_map) @@ -91,7 +93,7 @@ def test_errno_mapping(self): othercodes = set(errno.errorcode) - set(self._map) for errcode in othercodes: e = OSError(errcode, "Some message") - self.assertIs(type(e), OSError) + self.assertIs(type(e), OSError, repr(e)) def test_try_except(self): filename = "some_hopefully_non_existing_file" diff --git a/Lib/test/test_exceptions.py b/Lib/test/test_exceptions.py index ff1a02821a58fc..123bed6198c615 100644 --- a/Lib/test/test_exceptions.py +++ b/Lib/test/test_exceptions.py @@ -1,7 +1,6 @@ # Python test set -- part 5, built-in exceptions import copy -import gc import os import sys import unittest @@ -547,6 +546,29 @@ def testAttributes(self): 'pickled "%r", attribute "%s' % (e, checkArgName)) + def test_setstate(self): + e = Exception(42) + e.blah = 53 + self.assertEqual(e.args, (42,)) + self.assertEqual(e.blah, 53) + self.assertRaises(AttributeError, getattr, e, 'a') + self.assertRaises(AttributeError, getattr, e, 'b') + e.__setstate__({'a': 1 , 'b': 2}) + self.assertEqual(e.args, (42,)) + self.assertEqual(e.blah, 53) + self.assertEqual(e.a, 1) + self.assertEqual(e.b, 2) + e.__setstate__({'a': 11, 'args': (1,2,3), 'blah': 35}) + self.assertEqual(e.args, (1,2,3)) + self.assertEqual(e.blah, 35) + self.assertEqual(e.a, 11) + self.assertEqual(e.b, 2) + + def test_invalid_setstate(self): + e = Exception(42) + with self.assertRaisesRegex(TypeError, "state is not a dictionary"): + e.__setstate__(42) + def test_notes(self): for e in [BaseException(1), Exception(2), ValueError(3)]: with self.subTest(e=e): @@ -603,11 +625,30 @@ def testInvalidTraceback(self): else: self.fail("No exception raised") - def testInvalidAttrs(self): - self.assertRaises(TypeError, setattr, Exception(), '__cause__', 1) - self.assertRaises(TypeError, delattr, Exception(), '__cause__') - self.assertRaises(TypeError, setattr, Exception(), '__context__', 1) - self.assertRaises(TypeError, delattr, Exception(), '__context__') + def test_invalid_setattr(self): + TE = TypeError + exc = Exception() + msg = "'int' object is not iterable" + self.assertRaisesRegex(TE, msg, setattr, exc, 'args', 1) + msg = "__traceback__ must be a traceback or None" + self.assertRaisesRegex(TE, msg, setattr, exc, '__traceback__', 1) + msg = "exception cause must be None or derive from BaseException" + self.assertRaisesRegex(TE, msg, setattr, exc, '__cause__', 1) + msg = "exception context must be None or derive from BaseException" + self.assertRaisesRegex(TE, msg, setattr, exc, '__context__', 1) + + def test_invalid_delattr(self): + TE = TypeError + try: + raise IndexError(4) + except Exception as e: + exc = e + + msg = "may not be deleted" + self.assertRaisesRegex(TE, msg, delattr, exc, 'args') + self.assertRaisesRegex(TE, msg, delattr, exc, '__traceback__') + self.assertRaisesRegex(TE, msg, delattr, exc, '__cause__') + self.assertRaisesRegex(TE, msg, delattr, exc, '__context__') def testNoneClearsTracebackAttr(self): try: @@ -2058,6 +2099,11 @@ class A: except AttributeError as exc: self.assertEqual("bluch", exc.name) self.assertEqual(obj, exc.obj) + try: + object.__getattribute__(obj, "bluch") + except AttributeError as exc: + self.assertEqual("bluch", exc.name) + self.assertEqual(obj, exc.obj) def test_getattr_has_name_and_obj_for_method(self): class A: diff --git a/Lib/test/test_extcall.py b/Lib/test/test_extcall.py index 13265ea0d8ce85..d9d85fe79af883 100644 --- a/Lib/test/test_extcall.py +++ b/Lib/test/test_extcall.py @@ -8,6 +8,7 @@ We're defining four helper functions + >>> from test import support >>> def e(a,b): ... print(a, b) @@ -381,6 +382,27 @@ ... TypeError: test.test_extcall.g() got multiple values for keyword argument 'x' +Call with dict subtype: + + >>> class MyDict(dict): + ... pass + + >>> def s1(**kwargs): + ... return kwargs + >>> def s2(*args, **kwargs): + ... return (args, kwargs) + >>> def s3(*, n, **kwargs): + ... return (n, kwargs) + + >>> md = MyDict({'a': 1, 'b': 2}) + >>> assert s1(**md) == {'a': 1, 'b': 2} + >>> assert s2(*(1, 2), **md) == ((1, 2), {'a': 1, 'b': 2}) + >>> assert s3(**MyDict({'n': 1, 'b': 2})) == (1, {'b': 2}) + >>> s3(**md) + Traceback (most recent call last): + ... + TypeError: s3() missing 1 required keyword-only argument: 'n' + Another helper function >>> def f2(*a, **b): @@ -522,7 +544,6 @@ import doctest import unittest -from test import support def load_tests(loader, tests, pattern): tests.addTest(doctest.DocTestSuite()) diff --git a/Lib/test/test_file.py b/Lib/test/test_file.py index 1146a37323c9bf..9df55278693531 100644 --- a/Lib/test/test_file.py +++ b/Lib/test/test_file.py @@ -217,7 +217,7 @@ def testSetBufferSize(self): self._checkBufferSize(1) def testTruncateOnWindows(self): - # SF bug <http://www.python.org/sf/801631> + # SF bug <https://bugs.python.org/issue801631> # "file.truncate fault on windows" f = self.open(TESTFN, 'wb') diff --git a/Lib/test/test_fileinput.py b/Lib/test/test_fileinput.py index 819200010a2230..ac20c74baa09e2 100644 --- a/Lib/test/test_fileinput.py +++ b/Lib/test/test_fileinput.py @@ -326,6 +326,16 @@ def test_inplace_binary_write_mode(self): with open(temp_file, 'rb') as f: self.assertEqual(f.read(), b'New line.') + def test_inplace_encoding_errors(self): + temp_file = self.writeTmp(b'Initial text \x88', mode='wb') + with FileInput(temp_file, inplace=True, + encoding="ascii", errors="replace") as fobj: + line = fobj.readline() + self.assertEqual(line, 'Initial text \ufffd') + print("New line \x88") + with open(temp_file, 'rb') as f: + self.assertEqual(f.read().rstrip(b'\r\n'), b'New line ?') + def test_file_hook_backward_compatibility(self): def old_hook(filename, mode): return io.StringIO("I used to receive only filename and mode") diff --git a/Lib/test/test_fileio.py b/Lib/test/test_fileio.py index c26cdc028cc890..2263604ed1f97d 100644 --- a/Lib/test/test_fileio.py +++ b/Lib/test/test_fileio.py @@ -503,7 +503,7 @@ def testTruncate(self): def testTruncateOnWindows(self): def bug801631(): - # SF bug <http://www.python.org/sf/801631> + # SF bug <https://bugs.python.org/issue801631> # "file.truncate fault on windows" f = self.FileIO(TESTFN, 'w') f.write(bytes(range(11))) diff --git a/Lib/test/test_float.py b/Lib/test/test_float.py index d8c0fe1854eba5..f8350c1e4caa27 100644 --- a/Lib/test/test_float.py +++ b/Lib/test/test_float.py @@ -8,7 +8,6 @@ import unittest from test import support -from test.support import import_helper from test.test_grammar import (VALID_UNDERSCORE_LITERALS, INVALID_UNDERSCORE_LITERALS) from math import isinf, isnan, copysign, ldexp @@ -138,6 +137,10 @@ def check(s): check('123\xbd') check(' 123 456 ') check(b' 123 456 ') + # all whitespace (cf. https://github.com/python/cpython/issues/95605) + check('') + check(' ') + check('\t \n') # non-ascii digits (error came from non-digit '!') check('\u0663\u0661\u0664!') @@ -832,6 +835,11 @@ def test_inf_nan(self): self.assertRaises(TypeError, round, NAN, "ceci n'est pas un integer") self.assertRaises(TypeError, round, -0.0, 1j) + def test_inf_nan_ndigits(self): + self.assertEqual(round(INF, 0), INF) + self.assertEqual(round(-INF, 0), -INF) + self.assertTrue(math.isnan(round(NAN, 0))) + def test_large_n(self): for n in [324, 325, 400, 2**31-1, 2**31, 2**32, 2**100]: self.assertEqual(round(123.456, n), 123.456) diff --git a/Lib/test/test_flufl.py b/Lib/test/test_flufl.py index a81a4d4c8f0e4c..fd264c926bd575 100644 --- a/Lib/test/test_flufl.py +++ b/Lib/test/test_flufl.py @@ -1,6 +1,5 @@ import __future__ import unittest -from test import support class FLUFLTests(unittest.TestCase): diff --git a/Lib/test/test_fnmatch.py b/Lib/test/test_fnmatch.py index ca695d6f3f019b..10ed496d4e2f37 100644 --- a/Lib/test/test_fnmatch.py +++ b/Lib/test/test_fnmatch.py @@ -2,6 +2,7 @@ import unittest import os +import string import warnings from fnmatch import fnmatch, fnmatchcase, translate, filter @@ -91,6 +92,119 @@ def test_sep(self): check('usr/bin', 'usr\\bin', normsep) check('usr\\bin', 'usr\\bin') + def test_char_set(self): + ignorecase = os.path.normcase('ABC') == os.path.normcase('abc') + check = self.check_match + tescases = string.ascii_lowercase + string.digits + string.punctuation + for c in tescases: + check(c, '[az]', c in 'az') + check(c, '[!az]', c not in 'az') + # Case insensitive. + for c in tescases: + check(c, '[AZ]', (c in 'az') and ignorecase) + check(c, '[!AZ]', (c not in 'az') or not ignorecase) + for c in string.ascii_uppercase: + check(c, '[az]', (c in 'AZ') and ignorecase) + check(c, '[!az]', (c not in 'AZ') or not ignorecase) + # Repeated same character. + for c in tescases: + check(c, '[aa]', c == 'a') + # Special cases. + for c in tescases: + check(c, '[^az]', c in '^az') + check(c, '[[az]', c in '[az') + check(c, r'[!]]', c != ']') + check('[', '[') + check('[]', '[]') + check('[!', '[!') + check('[!]', '[!]') + + def test_range(self): + ignorecase = os.path.normcase('ABC') == os.path.normcase('abc') + normsep = os.path.normcase('\\') == os.path.normcase('/') + check = self.check_match + tescases = string.ascii_lowercase + string.digits + string.punctuation + for c in tescases: + check(c, '[b-d]', c in 'bcd') + check(c, '[!b-d]', c not in 'bcd') + check(c, '[b-dx-z]', c in 'bcdxyz') + check(c, '[!b-dx-z]', c not in 'bcdxyz') + # Case insensitive. + for c in tescases: + check(c, '[B-D]', (c in 'bcd') and ignorecase) + check(c, '[!B-D]', (c not in 'bcd') or not ignorecase) + for c in string.ascii_uppercase: + check(c, '[b-d]', (c in 'BCD') and ignorecase) + check(c, '[!b-d]', (c not in 'BCD') or not ignorecase) + # Upper bound == lower bound. + for c in tescases: + check(c, '[b-b]', c == 'b') + # Special cases. + for c in tescases: + check(c, '[!-#]', c not in '-#') + check(c, '[!--.]', c not in '-.') + check(c, '[^-`]', c in '^_`') + if not (normsep and c == '/'): + check(c, '[[-^]', c in r'[\]^') + check(c, r'[\-^]', c in r'\]^') + check(c, '[b-]', c in '-b') + check(c, '[!b-]', c not in '-b') + check(c, '[-b]', c in '-b') + check(c, '[!-b]', c not in '-b') + check(c, '[-]', c in '-') + check(c, '[!-]', c not in '-') + # Upper bound is less that lower bound: error in RE. + for c in tescases: + check(c, '[d-b]', False) + check(c, '[!d-b]', True) + check(c, '[d-bx-z]', c in 'xyz') + check(c, '[!d-bx-z]', c not in 'xyz') + check(c, '[d-b^-`]', c in '^_`') + if not (normsep and c == '/'): + check(c, '[d-b[-^]', c in r'[\]^') + + def test_sep_in_char_set(self): + normsep = os.path.normcase('\\') == os.path.normcase('/') + check = self.check_match + check('/', r'[/]') + check('\\', r'[\]') + check('/', r'[\]', normsep) + check('\\', r'[/]', normsep) + check('[/]', r'[/]', False) + check(r'[\\]', r'[/]', False) + check('\\', r'[\t]') + check('/', r'[\t]', normsep) + check('t', r'[\t]') + check('\t', r'[\t]', False) + + def test_sep_in_range(self): + normsep = os.path.normcase('\\') == os.path.normcase('/') + check = self.check_match + check('a/b', 'a[.-0]b', not normsep) + check('a\\b', 'a[.-0]b', False) + check('a\\b', 'a[Z-^]b', not normsep) + check('a/b', 'a[Z-^]b', False) + + check('a/b', 'a[/-0]b', not normsep) + check(r'a\b', 'a[/-0]b', False) + check('a[/-0]b', 'a[/-0]b', False) + check(r'a[\-0]b', 'a[/-0]b', False) + + check('a/b', 'a[.-/]b') + check(r'a\b', 'a[.-/]b', normsep) + check('a[.-/]b', 'a[.-/]b', False) + check(r'a[.-\]b', 'a[.-/]b', False) + + check(r'a\b', r'a[\-^]b') + check('a/b', r'a[\-^]b', normsep) + check(r'a[\-^]b', r'a[\-^]b', False) + check('a[/-^]b', r'a[\-^]b', False) + + check(r'a\b', r'a[Z-\]b', not normsep) + check('a/b', r'a[Z-\]b', False) + check(r'a[Z-\]b', r'a[Z-\]b', False) + check('a[Z-/]b', r'a[Z-\]b', False) + def test_warnings(self): with warnings.catch_warnings(): warnings.simplefilter('error', Warning) diff --git a/Lib/test/test_fractions.py b/Lib/test/test_fractions.py index fc46e8674fc46e..7fa9dbea905b59 100644 --- a/Lib/test/test_fractions.py +++ b/Lib/test/test_fractions.py @@ -162,6 +162,7 @@ def testInitFromDecimal(self): def testFromString(self): self.assertEqual((5, 1), _components(F("5"))) self.assertEqual((3, 2), _components(F("3/2"))) + self.assertEqual((3, 2), _components(F("3 / 2"))) self.assertEqual((3, 2), _components(F(" \n +3/2"))) self.assertEqual((-3, 2), _components(F("-3/2 "))) self.assertEqual((13, 2), _components(F(" 013/02 \n "))) @@ -190,9 +191,6 @@ def testFromString(self): self.assertRaisesMessage( ValueError, "Invalid literal for Fraction: '/2'", F, "/2") - self.assertRaisesMessage( - ValueError, "Invalid literal for Fraction: '3 /2'", - F, "3 /2") self.assertRaisesMessage( # Denominators don't need a sign. ValueError, "Invalid literal for Fraction: '3/+2'", diff --git a/Lib/test/test_frame.py b/Lib/test/test_frame.py index a715e725a7e45b..5dda2fbfac374c 100644 --- a/Lib/test/test_frame.py +++ b/Lib/test/test_frame.py @@ -1,10 +1,12 @@ import re import sys +import textwrap import types import unittest import weakref from test import support +from test.support.script_helper import assert_python_ok class ClearTest(unittest.TestCase): @@ -235,6 +237,29 @@ def inner(): r"^<frame at 0x[0-9a-fA-F]+, file %s, line %d, code inner>$" % (file_repr, offset + 5)) +class TestIncompleteFrameAreInvisible(unittest.TestCase): + + def test_issue95818(self): + # See GH-95818 for details + code = textwrap.dedent(f""" + import gc + + gc.set_threshold(1,1,1) + class GCHello: + def __del__(self): + print("Destroyed from gc") + + def gen(): + yield + + fd = open({__file__!r}) + l = [fd, GCHello()] + l.append(l) + del fd + del l + gen() + """) + assert_python_ok("-c", code) if __name__ == "__main__": unittest.main() diff --git a/Lib/test/test_fstring.py b/Lib/test/test_fstring.py index 0c3372f0335517..bf3a5b0bbccdfb 100644 --- a/Lib/test/test_fstring.py +++ b/Lib/test/test_fstring.py @@ -346,10 +346,39 @@ def test_ast_line_numbers_multiline_fstring(self): self.assertEqual(binop.lineno, 4) self.assertEqual(binop.left.lineno, 4) self.assertEqual(binop.right.lineno, 6) - self.assertEqual(binop.col_offset, 4) - self.assertEqual(binop.left.col_offset, 4) + self.assertEqual(binop.col_offset, 3) + self.assertEqual(binop.left.col_offset, 3) self.assertEqual(binop.right.col_offset, 7) + expr = """ +a = f''' + {blech} + ''' +""" + t = ast.parse(expr) + self.assertEqual(type(t), ast.Module) + self.assertEqual(len(t.body), 1) + # Check f'...' + self.assertEqual(type(t.body[0]), ast.Assign) + self.assertEqual(type(t.body[0].value), ast.JoinedStr) + self.assertEqual(len(t.body[0].value.values), 3) + self.assertEqual(type(t.body[0].value.values[1]), ast.FormattedValue) + self.assertEqual(t.body[0].lineno, 2) + self.assertEqual(t.body[0].value.lineno, 2) + self.assertEqual(t.body[0].value.values[0].lineno, 2) + self.assertEqual(t.body[0].value.values[1].lineno, 2) + self.assertEqual(t.body[0].value.values[2].lineno, 2) + self.assertEqual(t.body[0].col_offset, 0) + self.assertEqual(t.body[0].value.col_offset, 4) + self.assertEqual(t.body[0].value.values[0].col_offset, 4) + self.assertEqual(t.body[0].value.values[1].col_offset, 4) + self.assertEqual(t.body[0].value.values[2].col_offset, 4) + # Check {blech} + self.assertEqual(t.body[0].value.values[1].value.lineno, 3) + self.assertEqual(t.body[0].value.values[1].value.end_lineno, 3) + self.assertEqual(t.body[0].value.values[1].value.col_offset, 11) + self.assertEqual(t.body[0].value.values[1].value.end_col_offset, 16) + def test_ast_line_numbers_with_parentheses(self): expr = """ x = ( @@ -590,7 +619,9 @@ def test_format_specifier_expressions(self): self.assertEqual(f'{-10:{"-"}#{1}0{"x"}}', ' -0xa') self.assertEqual(f'{10:#{3 != {4:5} and width}x}', ' 0xa') - self.assertAllRaise(SyntaxError, "f-string: expecting '}'", + self.assertAllRaise(SyntaxError, + """f-string: invalid conversion character 'r{"': """ + """expected 's', 'r', or 'a'""", ["""f'{"s"!r{":10"}}'""", # This looks like a nested format spec. @@ -1012,19 +1043,28 @@ def test_conversions(self): # Not a conversion, but show that ! is allowed in a format spec. self.assertEqual(f'{3.14:!<10.10}', '3.14!!!!!!') - self.assertAllRaise(SyntaxError, 'f-string: invalid conversion character', - ["f'{3!g}'", - "f'{3!A}'", - "f'{3!3}'", - "f'{3!G}'", - "f'{3!!}'", + self.assertAllRaise(SyntaxError, "f-string: expecting '}'", + ["f'{3!'", + "f'{3!s'", + "f'{3!g'", + ]) + + self.assertAllRaise(SyntaxError, 'f-string: missed conversion character', + ["f'{3!}'", + "f'{3!:'", "f'{3!:}'", - "f'{3! s}'", # no space before conversion char ]) - self.assertAllRaise(SyntaxError, "f-string: expecting '}'", - ["f'{x!s{y}}'", - "f'{3!ss}'", + for conv in 'g', 'A', '3', 'G', '!', ' s', 's ', ' s ', 'ä', 'ɐ', 'ª': + self.assertAllRaise(SyntaxError, + "f-string: invalid conversion character %r: " + "expected 's', 'r', or 'a'" % conv, + ["f'{3!" + conv + "}'"]) + + self.assertAllRaise(SyntaxError, + "f-string: invalid conversion character 'ss': " + "expected 's', 'r', or 'a'", + ["f'{3!ss}'", "f'{3!ss:}'", "f'{3!ss:s}'", ]) @@ -1073,6 +1113,7 @@ def test_mismatched_braces(self): "f'{'", "f'x{<'", # See bpo-46762. "f'x{>'", + "f'{i='", # See gh-93418. ]) # But these are just normal strings. diff --git a/Lib/test/test_functools.py b/Lib/test/test_functools.py index 382e7dbffddf9d..a4b098a2a5b8ed 100644 --- a/Lib/test/test_functools.py +++ b/Lib/test/test_functools.py @@ -13,7 +13,6 @@ import typing import unittest import unittest.mock -import os import weakref import gc from weakref import proxy @@ -21,7 +20,6 @@ from test.support import import_helper from test.support import threading_helper -from test.support.script_helper import assert_python_ok import functools @@ -2005,7 +2003,7 @@ class D(collections.defaultdict): c.MutableSequence.register(D) bases = [c.MutableSequence, c.MutableMapping] for haystack in permutations(bases): - m = mro(D, bases) + m = mro(D, haystack) self.assertEqual(m, [D, c.MutableSequence, c.Sequence, c.Reversible, collections.defaultdict, dict, c.MutableMapping, c.Mapping, c.Collection, c.Sized, c.Iterable, c.Container, diff --git a/Lib/test/test_future.py b/Lib/test/test_future.py index c3e8420d6672c5..189cbdc4365b79 100644 --- a/Lib/test/test_future.py +++ b/Lib/test/test_future.py @@ -3,7 +3,6 @@ import __future__ import ast import unittest -from test import support from test.support import import_helper from textwrap import dedent import os diff --git a/Lib/test/test_gc.py b/Lib/test/test_gc.py index dbbd67b4fc88a1..087f72768fa4bf 100644 --- a/Lib/test/test_gc.py +++ b/Lib/test/test_gc.py @@ -1440,19 +1440,13 @@ def test_ast_fini(self): code = textwrap.dedent(""" import ast import codecs + from test import support # Small AST tree to keep their AST types alive tree = ast.parse("def f(x, y): return 2*x-y") - x = [tree] - x.append(x) - - # Put the cycle somewhere to survive until the last GC collection. - # Codec search functions are only cleared at the end of - # interpreter_clear(). - def search_func(encoding): - return None - search_func.a = x - codecs.register(search_func) + + # Store the tree somewhere to survive until the last GC collection + support.late_deletion(tree) """) assert_python_ok("-c", code) diff --git a/Lib/test/test_generators.py b/Lib/test/test_generators.py index 87a7dd69d106c4..e5aa7da1e0df13 100644 --- a/Lib/test/test_generators.py +++ b/Lib/test/test_generators.py @@ -170,6 +170,43 @@ def f(): g.send(0) self.assertEqual(next(g), 1) + def test_handle_frame_object_in_creation(self): + + #Attempt to expose partially constructed frames + #See https://github.com/python/cpython/issues/94262 + + def cb(*args): + inspect.stack() + + def gen(): + yield 1 + + thresholds = gc.get_threshold() + + gc.callbacks.append(cb) + gc.set_threshold(1, 0, 0) + try: + gen() + finally: + gc.set_threshold(*thresholds) + gc.callbacks.pop() + + class Sneaky: + def __del__(self): + inspect.stack() + + sneaky = Sneaky() + sneaky._s = Sneaky() + sneaky._s._s = sneaky + + gc.set_threshold(1, 0, 0) + try: + del sneaky + gen() + finally: + gc.set_threshold(*thresholds) + + class ExceptionTest(unittest.TestCase): # Tests for the issue #23353: check that the currently handled exception diff --git a/Lib/test/test_getargs2.py b/Lib/test/test_getargs2.py index 7c11c6cd33a84d..1d5c7fbaa1510a 100644 --- a/Lib/test/test_getargs2.py +++ b/Lib/test/test_getargs2.py @@ -746,6 +746,33 @@ def test_surrogate_keyword(self): "'\udc80' is an invalid keyword argument for this function"): getargs_keyword_only(1, 2, **{'\uDC80': 10}) + def test_weird_str_subclass(self): + class BadStr(str): + def __eq__(self, other): + return True + def __hash__(self): + # Guaranteed different hash + return str.__hash__(self) ^ 3 + with self.assertRaisesRegex(TypeError, + "invalid keyword argument for this function"): + getargs_keyword_only(1, 2, **{BadStr("keyword_only"): 3}) + with self.assertRaisesRegex(TypeError, + "invalid keyword argument for this function"): + getargs_keyword_only(1, 2, **{BadStr("monster"): 666}) + + def test_weird_str_subclass2(self): + class BadStr(str): + def __eq__(self, other): + return False + def __hash__(self): + return str.__hash__(self) + with self.assertRaisesRegex(TypeError, + "invalid keyword argument for this function"): + getargs_keyword_only(1, 2, **{BadStr("keyword_only"): 3}) + with self.assertRaisesRegex(TypeError, + "invalid keyword argument for this function"): + getargs_keyword_only(1, 2, **{BadStr("monster"): 666}) + class PositionalOnlyAndKeywords_TestCase(unittest.TestCase): from _testcapi import getargs_positional_only_and_keywords as getargs @@ -877,9 +904,19 @@ def test_s_hash(self): def test_s_hash_int(self): # "s#" without PY_SSIZE_T_CLEAN defined. from _testcapi import getargs_s_hash_int - self.assertRaises(SystemError, getargs_s_hash_int, "abc") - self.assertRaises(SystemError, getargs_s_hash_int, x=42) - # getargs_s_hash_int() don't raise SystemError because skipitem() is not called. + from _testcapi import getargs_s_hash_int2 + buf = bytearray([1, 2]) + self.assertRaises(SystemError, getargs_s_hash_int, buf, "abc") + self.assertRaises(SystemError, getargs_s_hash_int, buf, x=42) + self.assertRaises(SystemError, getargs_s_hash_int, buf, x="abc") + self.assertRaises(SystemError, getargs_s_hash_int2, buf, ("abc",)) + self.assertRaises(SystemError, getargs_s_hash_int2, buf, x=42) + self.assertRaises(SystemError, getargs_s_hash_int2, buf, x="abc") + buf.append(3) # still mutable -- not locked by a buffer export + # getargs_s_hash_int(buf) may not raise SystemError because skipitem() + # is not called. But it is an implementation detail. + # getargs_s_hash_int(buf) + # getargs_s_hash_int2(buf) def test_z(self): from _testcapi import getargs_z diff --git a/Lib/test/test_getopt.py b/Lib/test/test_getopt.py index 64b9ce01e05ea2..c96a33b77fe272 100644 --- a/Lib/test/test_getopt.py +++ b/Lib/test/test_getopt.py @@ -83,7 +83,7 @@ def test_do_longs(self): # Much like the preceding, except with a non-alpha character ("-") in # option name that precedes "="; failed in - # http://python.org/sf/126863 + # https://bugs.python.org/issue126863 opts, args = getopt.do_longs([], 'foo=42', ['foo-bar', 'foo=',], []) self.assertEqual(opts, [('--foo', '42')]) self.assertEqual(args, []) diff --git a/Lib/test/test_getpath.py b/Lib/test/test_getpath.py index 5208374e20013c..1e46cb5780c942 100644 --- a/Lib/test/test_getpath.py +++ b/Lib/test/test_getpath.py @@ -2,7 +2,6 @@ import ntpath import pathlib import posixpath -import sys import unittest from test.support import verbose diff --git a/Lib/test/test_grammar.py b/Lib/test/test_grammar.py index da88519862712a..58f907eac09d53 100644 --- a/Lib/test/test_grammar.py +++ b/Lib/test/test_grammar.py @@ -1592,7 +1592,7 @@ def test_selectors(self): s = a[-5:] s = a[:-1] s = a[-4:-3] - # A rough test of SF bug 1333982. http://python.org/sf/1333982 + # A rough test of SF bug 1333982. https://bugs.python.org/issue1333982 # The testing here is fairly incomplete. # Test cases should include: commas with 1 and 2 colons d = {} diff --git a/Lib/test/test_grp.py b/Lib/test/test_grp.py index c7ec03ec0e4388..e52e17b8dc7366 100644 --- a/Lib/test/test_grp.py +++ b/Lib/test/test_grp.py @@ -49,10 +49,12 @@ def test_values_extended(self): def test_errors(self): self.assertRaises(TypeError, grp.getgrgid) + self.assertRaises(TypeError, grp.getgrgid, 3.14) self.assertRaises(TypeError, grp.getgrnam) + self.assertRaises(TypeError, grp.getgrnam, 42) self.assertRaises(TypeError, grp.getgrall, 42) # embedded null character - self.assertRaises(ValueError, grp.getgrnam, 'a\x00b') + self.assertRaisesRegex(ValueError, 'null', grp.getgrnam, 'a\x00b') # try to get some errors bynames = {} diff --git a/Lib/test/test_hashlib.py b/Lib/test/test_hashlib.py index bc9407dc9e424d..450dc4933f47f7 100644 --- a/Lib/test/test_hashlib.py +++ b/Lib/test/test_hashlib.py @@ -1096,15 +1096,7 @@ def _test_pbkdf2_hmac(self, pbkdf2, supported): iterations=1, dklen=None) self.assertEqual(out, self.pbkdf2_results['sha1'][0][0]) - @unittest.skipIf(builtin_hashlib is None, "test requires builtin_hashlib") - def test_pbkdf2_hmac_py(self): - with warnings_helper.check_warnings(): - self._test_pbkdf2_hmac( - builtin_hashlib.pbkdf2_hmac, builtin_hashes - ) - - @unittest.skipUnless(hasattr(openssl_hashlib, 'pbkdf2_hmac'), - ' test requires OpenSSL > 1.0') + @unittest.skipIf(openssl_hashlib is None, "requires OpenSSL bindings") def test_pbkdf2_hmac_c(self): self._test_pbkdf2_hmac(openssl_hashlib.pbkdf2_hmac, openssl_md_meth_names) diff --git a/Lib/test/test_heapq.py b/Lib/test/test_heapq.py index cb1e4505b02a30..1aa8e4e289730d 100644 --- a/Lib/test/test_heapq.py +++ b/Lib/test/test_heapq.py @@ -4,7 +4,6 @@ import unittest import doctest -from test import support from test.support import import_helper from unittest import TestCase, skipUnless from operator import itemgetter diff --git a/Lib/test/test_htmlparser.py b/Lib/test/test_htmlparser.py index 12917755a56017..b42a611c62c0aa 100644 --- a/Lib/test/test_htmlparser.py +++ b/Lib/test/test_htmlparser.py @@ -4,6 +4,8 @@ import pprint import unittest +from unittest.mock import patch + class EventCollector(html.parser.HTMLParser): @@ -787,5 +789,17 @@ def test_weird_chars_in_unquoted_attribute_values(self): ('starttag', 'form', [('action', 'bogus|&#()value')])]) + +class TestInheritance(unittest.TestCase): + + @patch("_markupbase.ParserBase.__init__") + @patch("_markupbase.ParserBase.reset") + def test_base_class_methods_called(self, super_reset_method, super_init_method): + with patch('_markupbase.ParserBase') as parser_base: + EventCollector() + super_init_method.assert_called_once() + super_reset_method.assert_called_once() + + if __name__ == "__main__": unittest.main() diff --git a/Lib/test/test_http_cookiejar.py b/Lib/test/test_http_cookiejar.py index ad2b121fdaf5a1..f8291c2aa32cfe 100644 --- a/Lib/test/test_http_cookiejar.py +++ b/Lib/test/test_http_cookiejar.py @@ -1,8 +1,9 @@ """Tests for http/cookiejar.py.""" import os +import stat +import sys import re -import test.support from test.support import os_helper from test.support import warnings_helper import time @@ -17,6 +18,7 @@ reach, is_HDN, domain_match, user_domain_match, request_path, request_port, request_host) +mswindows = (sys.platform == "win32") class DateTimeTests(unittest.TestCase): @@ -364,10 +366,37 @@ def test_lwp_valueless_cookie(self): c = LWPCookieJar() c.load(filename, ignore_discard=True) finally: - try: os.unlink(filename) - except OSError: pass + os_helper.unlink(filename) self.assertEqual(c._cookies["www.acme.com"]["/"]["boo"].value, None) + @unittest.skipIf(mswindows, "windows file permissions are incompatible with file modes") + @os_helper.skip_unless_working_chmod + def test_lwp_filepermissions(self): + # Cookie file should only be readable by the creator + filename = os_helper.TESTFN + c = LWPCookieJar() + interact_netscape(c, "http://www.acme.com/", 'boo') + try: + c.save(filename, ignore_discard=True) + st = os.stat(filename) + self.assertEqual(stat.S_IMODE(st.st_mode), 0o600) + finally: + os_helper.unlink(filename) + + @unittest.skipIf(mswindows, "windows file permissions are incompatible with file modes") + @os_helper.skip_unless_working_chmod + def test_mozilla_filepermissions(self): + # Cookie file should only be readable by the creator + filename = os_helper.TESTFN + c = MozillaCookieJar() + interact_netscape(c, "http://www.acme.com/", 'boo') + try: + c.save(filename, ignore_discard=True) + st = os.stat(filename) + self.assertEqual(stat.S_IMODE(st.st_mode), 0o600) + finally: + os_helper.unlink(filename) + def test_bad_magic(self): # OSErrors (eg. file doesn't exist) are allowed to propagate filename = os_helper.TESTFN @@ -391,8 +420,7 @@ def test_bad_magic(self): c = cookiejar_class() self.assertRaises(LoadError, c.load, filename) finally: - try: os.unlink(filename) - except OSError: pass + os_helper.unlink(filename) class CookieTests(unittest.TestCase): # XXX @@ -496,7 +524,7 @@ def test_missing_value(self): c = MozillaCookieJar(filename) c.revert(ignore_expires=True, ignore_discard=True) finally: - os.unlink(c.filename) + os_helper.unlink(c.filename) # cookies unchanged apart from lost info re. whether path was specified self.assertEqual( repr(c), @@ -1766,8 +1794,7 @@ def test_rejection(self): c = LWPCookieJar(policy=pol) c.load(filename, ignore_discard=True) finally: - try: os.unlink(filename) - except OSError: pass + os_helper.unlink(filename) self.assertEqual(old, repr(c)) @@ -1826,8 +1853,7 @@ def save_and_restore(cj, ignore_discard): DefaultCookiePolicy(rfc2965=True)) new_c.load(ignore_discard=ignore_discard) finally: - try: os.unlink(filename) - except OSError: pass + os_helper.unlink(filename) return new_c new_c = save_and_restore(c, True) diff --git a/Lib/test/test_httplib.py b/Lib/test/test_httplib.py index 15dab0356f5e35..b3d94e0a21cb6a 100644 --- a/Lib/test/test_httplib.py +++ b/Lib/test/test_httplib.py @@ -553,6 +553,27 @@ def __new__(cls, value, phrase, description=''): obj.phrase = phrase obj.description = description return obj + + @property + def is_informational(self): + return 100 <= self <= 199 + + @property + def is_success(self): + return 200 <= self <= 299 + + @property + def is_redirection(self): + return 300 <= self <= 399 + + @property + def is_client_error(self): + return 400 <= self <= 499 + + @property + def is_server_error(self): + return 500 <= self <= 599 + # informational CONTINUE = 100, 'Continue', 'Request received, please continue' SWITCHING_PROTOCOLS = (101, 'Switching Protocols', @@ -669,6 +690,30 @@ def __new__(cls, value, phrase, description=''): 'The client needs to authenticate to gain network access') enum._test_simple_enum(CheckedHTTPStatus, HTTPStatus) + def test_httpstatus_range(self): + """Checks that the statuses are in the 100-599 range""" + + for member in HTTPStatus.__members__.values(): + self.assertGreaterEqual(member, 100) + self.assertLessEqual(member, 599) + + def test_httpstatus_category(self): + """Checks that the statuses belong to the standard categories""" + + categories = ( + ((100, 199), "is_informational"), + ((200, 299), "is_success"), + ((300, 399), "is_redirection"), + ((400, 499), "is_client_error"), + ((500, 599), "is_server_error"), + ) + for member in HTTPStatus.__members__.values(): + for (lower, upper), category in categories: + category_indicator = getattr(member, category) + if lower <= member <= upper: + self.assertTrue(category_indicator) + else: + self.assertFalse(category_indicator) def test_status_lines(self): # Test HTTP status lines diff --git a/Lib/test/test_httpservers.py b/Lib/test/test_httpservers.py index 1f041aa121f974..a937258069ed89 100644 --- a/Lib/test/test_httpservers.py +++ b/Lib/test/test_httpservers.py @@ -334,7 +334,7 @@ class request_handler(NoLogRequestHandler, SimpleHTTPRequestHandler): pass def setUp(self): - BaseTestCase.setUp(self) + super().setUp() self.cwd = os.getcwd() basetempdir = tempfile.gettempdir() os.chdir(basetempdir) @@ -362,7 +362,7 @@ def tearDown(self): except: pass finally: - BaseTestCase.tearDown(self) + super().tearDown() def check_status_and_reason(self, response, status, data=None): def close_conn(): @@ -418,6 +418,55 @@ def test_undecodable_filename(self): self.check_status_and_reason(response, HTTPStatus.OK, data=os_helper.TESTFN_UNDECODABLE) + def test_get_dir_redirect_location_domain_injection_bug(self): + """Ensure //evil.co/..%2f../../X does not put //evil.co/ in Location. + + //netloc/ in a Location header is a redirect to a new host. + https://github.com/python/cpython/issues/87389 + + This checks that a path resolving to a directory on our server cannot + resolve into a redirect to another server. + """ + os.mkdir(os.path.join(self.tempdir, 'existing_directory')) + url = f'/python.org/..%2f..%2f..%2f..%2f..%2f../%0a%0d/../{self.tempdir_name}/existing_directory' + expected_location = f'{url}/' # /python.org.../ single slash single prefix, trailing slash + # Canonicalizes to /tmp/tempdir_name/existing_directory which does + # exist and is a dir, triggering the 301 redirect logic. + response = self.request(url) + self.check_status_and_reason(response, HTTPStatus.MOVED_PERMANENTLY) + location = response.getheader('Location') + self.assertEqual(location, expected_location, msg='non-attack failed!') + + # //python.org... multi-slash prefix, no trailing slash + attack_url = f'/{url}' + response = self.request(attack_url) + self.check_status_and_reason(response, HTTPStatus.MOVED_PERMANENTLY) + location = response.getheader('Location') + self.assertFalse(location.startswith('//'), msg=location) + self.assertEqual(location, expected_location, + msg='Expected Location header to start with a single / and ' + 'end with a / as this is a directory redirect.') + + # ///python.org... triple-slash prefix, no trailing slash + attack3_url = f'//{url}' + response = self.request(attack3_url) + self.check_status_and_reason(response, HTTPStatus.MOVED_PERMANENTLY) + self.assertEqual(response.getheader('Location'), expected_location) + + # If the second word in the http request (Request-URI for the http + # method) is a full URI, we don't worry about it, as that'll be parsed + # and reassembled as a full URI within BaseHTTPRequestHandler.send_head + # so no errant scheme-less //netloc//evil.co/ domain mixup can happen. + attack_scheme_netloc_2slash_url = f'https://pypi.org/{url}' + expected_scheme_netloc_location = f'{attack_scheme_netloc_2slash_url}/' + response = self.request(attack_scheme_netloc_2slash_url) + self.check_status_and_reason(response, HTTPStatus.MOVED_PERMANENTLY) + location = response.getheader('Location') + # We're just ensuring that the scheme and domain make it through, if + # there are or aren't multiple slashes at the start of the path that + # follows that isn't important in this Location: header. + self.assertTrue(location.startswith('https://pypi.org/'), msg=location) + def test_get(self): #constructs the path relative to the root directory of the HTTPServer response = self.request(self.base_url + '/test') diff --git a/Lib/test/test_imaplib.py b/Lib/test/test_imaplib.py index ff13edea2d1e4a..b554bc0c79960d 100644 --- a/Lib/test/test_imaplib.py +++ b/Lib/test/test_imaplib.py @@ -10,9 +10,7 @@ import threading import socket -from test.support import (verbose, - run_with_tz, run_with_locale, cpython_only, - requires_working_socket) +from test.support import verbose, run_with_tz, run_with_locale, cpython_only from test.support import hashlib_helper from test.support import threading_helper from test.support import warnings_helper @@ -939,6 +937,7 @@ def test_with_statement_logout(self): @threading_helper.reap_threads @cpython_only + @unittest.skipUnless(__debug__, "Won't work if __debug__ is False") def test_dump_ur(self): # See: http://bugs.python.org/issue26543 untagged_resp_dict = {'READ-WRITE': [b'']} diff --git a/Lib/test/test_imp.py b/Lib/test/test_imp.py index d44dc6b49f2935..35b6afa91ebd4f 100644 --- a/Lib/test/test_imp.py +++ b/Lib/test/test_imp.py @@ -66,11 +66,7 @@ def setUp(self): self.test_strings = mod.test_strings self.test_path = mod.__path__ - def test_import_encoded_module(self): - for modname, encoding, teststr in self.test_strings: - mod = importlib.import_module('test.encoded_modules.' - 'module_' + modname) - self.assertEqual(teststr, mod.test) + # test_import_encoded_module moved to test_source_encoding.py def test_find_module_encoding(self): for mod, encoding, _ in self.test_strings: diff --git a/Lib/test/test_import/__init__.py b/Lib/test/test_import/__init__.py index be88677dc697ee..6c5b80bcee6c24 100644 --- a/Lib/test/test_import/__init__.py +++ b/Lib/test/test_import/__init__.py @@ -20,7 +20,8 @@ from test.support import os_helper from test.support import ( - STDLIB_DIR, is_jython, swap_attr, swap_item, cpython_only, is_emscripten) + STDLIB_DIR, is_jython, swap_attr, swap_item, cpython_only, is_emscripten, + is_wasi) from test.support.import_helper import ( forget, make_legacy_pyc, unlink, unload, DirsOnSysPath, CleanImport) from test.support.os_helper import ( @@ -535,7 +536,10 @@ class FilePermissionTests(unittest.TestCase): @unittest.skipUnless(os.name == 'posix', "test meaningful only on posix systems") - @unittest.skipIf(is_emscripten, "Emscripten's umask is a stub.") + @unittest.skipIf( + is_emscripten or is_wasi, + "Emscripten's/WASI's umask is a stub." + ) def test_creation_mode(self): mask = 0o022 with temp_umask(mask), _ready_to_import() as (name, path): @@ -553,6 +557,7 @@ def test_creation_mode(self): @unittest.skipUnless(os.name == 'posix', "test meaningful only on posix systems") + @os_helper.skip_unless_working_chmod def test_cached_mode_issue_2051(self): # permissions of .pyc should match those of .py, regardless of mask mode = 0o600 @@ -569,6 +574,7 @@ def test_cached_mode_issue_2051(self): @unittest.skipUnless(os.name == 'posix', "test meaningful only on posix systems") + @os_helper.skip_unless_working_chmod def test_cached_readonly(self): mode = 0o400 with temp_umask(0o022), _ready_to_import() as (name, path): @@ -879,9 +885,10 @@ def test_import_pyc_path(self): @unittest.skipUnless(os.name == 'posix', "test meaningful only on posix systems") - @unittest.skipIf(hasattr(os, 'geteuid') and os.geteuid() == 0, - "due to varying filesystem permission semantics (issue #11956)") @skip_if_dont_write_bytecode + @os_helper.skip_unless_working_chmod + @os_helper.skip_if_dac_override + @unittest.skipIf(is_emscripten, "umask is a stub") def test_unwritable_directory(self): # When the umask causes the new __pycache__ directory to be # unwritable, the import still succeeds but no .pyc file is written. @@ -920,7 +927,7 @@ def test_missing_source_legacy(self): m = __import__(TESTFN) try: self.assertEqual(m.__file__, - os.path.join(os.getcwd(), os.curdir, os.path.relpath(pyc_file))) + os.path.join(os.getcwd(), os.path.relpath(pyc_file))) finally: os.remove(pyc_file) @@ -928,7 +935,7 @@ def test___cached__(self): # Modules now also have an __cached__ that points to the pyc file. m = __import__(TESTFN) pyc_file = importlib.util.cache_from_source(TESTFN + '.py') - self.assertEqual(m.__cached__, os.path.join(os.getcwd(), os.curdir, pyc_file)) + self.assertEqual(m.__cached__, os.path.join(os.getcwd(), pyc_file)) @skip_if_dont_write_bytecode def test___cached___legacy_pyc(self): @@ -944,7 +951,7 @@ def test___cached___legacy_pyc(self): importlib.invalidate_caches() m = __import__(TESTFN) self.assertEqual(m.__cached__, - os.path.join(os.getcwd(), os.curdir, os.path.relpath(pyc_file))) + os.path.join(os.getcwd(), os.path.relpath(pyc_file))) @skip_if_dont_write_bytecode def test_package___cached__(self): @@ -964,10 +971,10 @@ def cleanup(): m = __import__('pep3147.foo') init_pyc = importlib.util.cache_from_source( os.path.join('pep3147', '__init__.py')) - self.assertEqual(m.__cached__, os.path.join(os.getcwd(), os.curdir, init_pyc)) + self.assertEqual(m.__cached__, os.path.join(os.getcwd(), init_pyc)) foo_pyc = importlib.util.cache_from_source(os.path.join('pep3147', 'foo.py')) self.assertEqual(sys.modules['pep3147.foo'].__cached__, - os.path.join(os.getcwd(), os.curdir, foo_pyc)) + os.path.join(os.getcwd(), foo_pyc)) def test_package___cached___from_pyc(self): # Like test___cached__ but ensuring __cached__ when imported from a @@ -991,10 +998,10 @@ def cleanup(): m = __import__('pep3147.foo') init_pyc = importlib.util.cache_from_source( os.path.join('pep3147', '__init__.py')) - self.assertEqual(m.__cached__, os.path.join(os.getcwd(), os.curdir, init_pyc)) + self.assertEqual(m.__cached__, os.path.join(os.getcwd(), init_pyc)) foo_pyc = importlib.util.cache_from_source(os.path.join('pep3147', 'foo.py')) self.assertEqual(sys.modules['pep3147.foo'].__cached__, - os.path.join(os.getcwd(), os.curdir, foo_pyc)) + os.path.join(os.getcwd(), foo_pyc)) def test_recompute_pyc_same_second(self): # Even when the source file doesn't change timestamp, a change in diff --git a/Lib/test/test_importlib/extension/test_finder.py b/Lib/test/test_importlib/extension/test_finder.py index b6663a44845502..1d5b6e7a5de94b 100644 --- a/Lib/test/test_importlib/extension/test_finder.py +++ b/Lib/test/test_importlib/extension/test_finder.py @@ -3,7 +3,7 @@ machinery = util.import_importlib('importlib.machinery') import unittest -import warnings +import sys class FinderTests(abc.FinderTests): @@ -13,6 +13,10 @@ class FinderTests(abc.FinderTests): def setUp(self): if not self.machinery.EXTENSION_SUFFIXES: raise unittest.SkipTest("Requires dynamic loading support.") + if util.EXTENSIONS.name in sys.builtin_module_names: + raise unittest.SkipTest( + f"{util.EXTENSIONS.name} is a builtin module" + ) def find_spec(self, fullname): importer = self.machinery.FileFinder(util.EXTENSIONS.path, diff --git a/Lib/test/test_importlib/extension/test_loader.py b/Lib/test/test_importlib/extension/test_loader.py index 5080009bee32ee..8570c6bc90cd07 100644 --- a/Lib/test/test_importlib/extension/test_loader.py +++ b/Lib/test/test_importlib/extension/test_loader.py @@ -20,6 +20,10 @@ class LoaderTests(abc.LoaderTests): def setUp(self): if not self.machinery.EXTENSION_SUFFIXES: raise unittest.SkipTest("Requires dynamic loading support.") + if util.EXTENSIONS.name in sys.builtin_module_names: + raise unittest.SkipTest( + f"{util.EXTENSIONS.name} is a builtin module" + ) self.loader = self.machinery.ExtensionFileLoader(util.EXTENSIONS.name, util.EXTENSIONS.file_path) @@ -97,6 +101,10 @@ def setUp(self): if not self.machinery.EXTENSION_SUFFIXES: raise unittest.SkipTest("Requires dynamic loading support.") self.name = '_testmultiphase' + if self.name in sys.builtin_module_names: + raise unittest.SkipTest( + f"{self.name} is a builtin module" + ) finder = self.machinery.FileFinder(None) self.spec = importlib.util.find_spec(self.name) assert self.spec diff --git a/Lib/test/test_importlib/fixtures.py b/Lib/test/test_importlib/fixtures.py index 803d3738d263f4..e7be77b3957c67 100644 --- a/Lib/test/test_importlib/fixtures.py +++ b/Lib/test/test_importlib/fixtures.py @@ -5,6 +5,7 @@ import pathlib import tempfile import textwrap +import functools import contextlib from test.support.os_helper import FS_NONASCII @@ -296,3 +297,18 @@ def setUp(self): # Add self.zip_name to the front of sys.path. self.resources = contextlib.ExitStack() self.addCleanup(self.resources.close) + + +def parameterize(*args_set): + """Run test method with a series of parameters.""" + + def wrapper(func): + @functools.wraps(func) + def _inner(self): + for args in args_set: + with self.subTest(**args): + func(self, **args) + + return _inner + + return wrapper diff --git a/Lib/test/test_importlib/frozen/test_loader.py b/Lib/test/test_importlib/frozen/test_loader.py index f2df7e60bf8e38..32f951cb1aca28 100644 --- a/Lib/test/test_importlib/frozen/test_loader.py +++ b/Lib/test/test_importlib/frozen/test_loader.py @@ -103,14 +103,6 @@ def test_lacking_parent(self): expected=value)) self.assertEqual(output, 'Hello world!\n') - def test_module_repr(self): - name = '__hello__' - module, output = self.exec_module(name) - with deprecated(): - repr_str = self.machinery.FrozenImporter.module_repr(module) - self.assertEqual(repr_str, - "<module '__hello__' (frozen)>") - def test_module_repr_indirect(self): name = '__hello__' module, output = self.exec_module(name) diff --git a/Lib/test/test_importlib/import_/test_path.py b/Lib/test/test_importlib/import_/test_path.py index 6f1d0cabd28a62..de620842bbc52b 100644 --- a/Lib/test/test_importlib/import_/test_path.py +++ b/Lib/test/test_importlib/import_/test_path.py @@ -202,10 +202,11 @@ def __init__(self): def invalidate_caches(self): self.called = True - cache = {'leave_alone': object(), 'finder_to_invalidate': FakeFinder()} + key = os.path.abspath('finder_to_invalidate') + cache = {'leave_alone': object(), key: FakeFinder()} with util.import_state(path_importer_cache=cache): self.machinery.PathFinder.invalidate_caches() - self.assertTrue(cache['finder_to_invalidate'].called) + self.assertTrue(cache[key].called) def test_invalidate_caches_clear_out_None(self): # Clear out None in sys.path_importer_cache() when invalidating caches. @@ -214,6 +215,16 @@ def test_invalidate_caches_clear_out_None(self): self.machinery.PathFinder.invalidate_caches() self.assertEqual(len(cache), 0) + def test_invalidate_caches_clear_out_relative_path(self): + class FakeFinder: + def invalidate_caches(self): + pass + + cache = {'relative_path': FakeFinder()} + with util.import_state(path_importer_cache=cache): + self.machinery.PathFinder.invalidate_caches() + self.assertEqual(cache, {}) + class FindModuleTests(FinderTests): def find(self, *args, **kwargs): diff --git a/Lib/lib2to3/tests/data/fixers/myfixes/__init__.py b/Lib/test/test_importlib/resources/data01/__init__.py similarity index 100% rename from Lib/lib2to3/tests/data/fixers/myfixes/__init__.py rename to Lib/test/test_importlib/resources/data01/__init__.py diff --git a/Lib/test/test_importlib/data01/binary.file b/Lib/test/test_importlib/resources/data01/binary.file similarity index 100% rename from Lib/test/test_importlib/data01/binary.file rename to Lib/test/test_importlib/resources/data01/binary.file diff --git a/Lib/test/test_importlib/data01/__init__.py b/Lib/test/test_importlib/resources/data01/subdirectory/__init__.py similarity index 100% rename from Lib/test/test_importlib/data01/__init__.py rename to Lib/test/test_importlib/resources/data01/subdirectory/__init__.py diff --git a/Lib/test/test_importlib/data01/subdirectory/binary.file b/Lib/test/test_importlib/resources/data01/subdirectory/binary.file similarity index 100% rename from Lib/test/test_importlib/data01/subdirectory/binary.file rename to Lib/test/test_importlib/resources/data01/subdirectory/binary.file diff --git a/Lib/test/test_importlib/data01/utf-16.file b/Lib/test/test_importlib/resources/data01/utf-16.file similarity index 100% rename from Lib/test/test_importlib/data01/utf-16.file rename to Lib/test/test_importlib/resources/data01/utf-16.file diff --git a/Lib/test/test_importlib/data01/utf-8.file b/Lib/test/test_importlib/resources/data01/utf-8.file similarity index 100% rename from Lib/test/test_importlib/data01/utf-8.file rename to Lib/test/test_importlib/resources/data01/utf-8.file diff --git a/Lib/test/test_importlib/data01/subdirectory/__init__.py b/Lib/test/test_importlib/resources/data02/__init__.py similarity index 100% rename from Lib/test/test_importlib/data01/subdirectory/__init__.py rename to Lib/test/test_importlib/resources/data02/__init__.py diff --git a/Lib/test/test_importlib/data02/__init__.py b/Lib/test/test_importlib/resources/data02/one/__init__.py similarity index 100% rename from Lib/test/test_importlib/data02/__init__.py rename to Lib/test/test_importlib/resources/data02/one/__init__.py diff --git a/Lib/test/test_importlib/data02/one/resource1.txt b/Lib/test/test_importlib/resources/data02/one/resource1.txt similarity index 100% rename from Lib/test/test_importlib/data02/one/resource1.txt rename to Lib/test/test_importlib/resources/data02/one/resource1.txt diff --git a/Lib/test/test_importlib/data02/one/__init__.py b/Lib/test/test_importlib/resources/data02/two/__init__.py similarity index 100% rename from Lib/test/test_importlib/data02/one/__init__.py rename to Lib/test/test_importlib/resources/data02/two/__init__.py diff --git a/Lib/test/test_importlib/data02/two/resource2.txt b/Lib/test/test_importlib/resources/data02/two/resource2.txt similarity index 100% rename from Lib/test/test_importlib/data02/two/resource2.txt rename to Lib/test/test_importlib/resources/data02/two/resource2.txt diff --git a/Lib/test/test_importlib/data02/two/__init__.py b/Lib/test/test_importlib/resources/data03/__init__.py similarity index 100% rename from Lib/test/test_importlib/data02/two/__init__.py rename to Lib/test/test_importlib/resources/data03/__init__.py diff --git a/Lib/test/test_importlib/data03/__init__.py b/Lib/test/test_importlib/resources/data03/namespace/portion1/__init__.py similarity index 100% rename from Lib/test/test_importlib/data03/__init__.py rename to Lib/test/test_importlib/resources/data03/namespace/portion1/__init__.py diff --git a/Lib/test/test_importlib/data03/namespace/portion1/__init__.py b/Lib/test/test_importlib/resources/data03/namespace/portion2/__init__.py similarity index 100% rename from Lib/test/test_importlib/data03/namespace/portion1/__init__.py rename to Lib/test/test_importlib/resources/data03/namespace/portion2/__init__.py diff --git a/Lib/test/test_importlib/data03/namespace/resource1.txt b/Lib/test/test_importlib/resources/data03/namespace/resource1.txt similarity index 100% rename from Lib/test/test_importlib/data03/namespace/resource1.txt rename to Lib/test/test_importlib/resources/data03/namespace/resource1.txt diff --git a/Lib/test/test_importlib/namespacedata01/binary.file b/Lib/test/test_importlib/resources/namespacedata01/binary.file similarity index 100% rename from Lib/test/test_importlib/namespacedata01/binary.file rename to Lib/test/test_importlib/resources/namespacedata01/binary.file diff --git a/Lib/test/test_importlib/namespacedata01/utf-16.file b/Lib/test/test_importlib/resources/namespacedata01/utf-16.file similarity index 100% rename from Lib/test/test_importlib/namespacedata01/utf-16.file rename to Lib/test/test_importlib/resources/namespacedata01/utf-16.file diff --git a/Lib/test/test_importlib/namespacedata01/utf-8.file b/Lib/test/test_importlib/resources/namespacedata01/utf-8.file similarity index 100% rename from Lib/test/test_importlib/namespacedata01/utf-8.file rename to Lib/test/test_importlib/resources/namespacedata01/utf-8.file diff --git a/Lib/test/test_importlib/test_compatibilty_files.py b/Lib/test/test_importlib/resources/test_compatibilty_files.py similarity index 99% rename from Lib/test/test_importlib/test_compatibilty_files.py rename to Lib/test/test_importlib/resources/test_compatibilty_files.py index 9a823f2d930583..6fa18a24973f64 100644 --- a/Lib/test/test_importlib/test_compatibilty_files.py +++ b/Lib/test/test_importlib/resources/test_compatibilty_files.py @@ -8,7 +8,7 @@ wrap_spec, ) -from .resources import util +from . import util class CompatibilityFilesTests(unittest.TestCase): diff --git a/Lib/test/test_importlib/test_contents.py b/Lib/test/test_importlib/resources/test_contents.py similarity index 97% rename from Lib/test/test_importlib/test_contents.py rename to Lib/test/test_importlib/resources/test_contents.py index 3323bf5b5cf568..1a13f043a86f03 100644 --- a/Lib/test/test_importlib/test_contents.py +++ b/Lib/test/test_importlib/resources/test_contents.py @@ -2,7 +2,7 @@ from importlib import resources from . import data01 -from .resources import util +from . import util class ContentsTests: diff --git a/Lib/test/test_importlib/test_files.py b/Lib/test/test_importlib/resources/test_files.py similarity index 94% rename from Lib/test/test_importlib/test_files.py rename to Lib/test/test_importlib/resources/test_files.py index b9170d83bea912..779e5a12b5d536 100644 --- a/Lib/test/test_importlib/test_files.py +++ b/Lib/test/test_importlib/resources/test_files.py @@ -2,9 +2,9 @@ import unittest from importlib import resources -from importlib.abc import Traversable +from importlib.resources.abc import Traversable from . import data01 -from .resources import util +from . import util class FilesTests: diff --git a/Lib/test/test_importlib/test_open.py b/Lib/test/test_importlib/resources/test_open.py similarity index 98% rename from Lib/test/test_importlib/test_open.py rename to Lib/test/test_importlib/resources/test_open.py index df75e343d2c5b7..0554c41ba67d0e 100644 --- a/Lib/test/test_importlib/test_open.py +++ b/Lib/test/test_importlib/resources/test_open.py @@ -2,7 +2,7 @@ from importlib import resources from . import data01 -from .resources import util +from . import util class CommonBinaryTests(util.CommonTests, unittest.TestCase): diff --git a/Lib/test/test_importlib/test_path.py b/Lib/test/test_importlib/resources/test_path.py similarity index 98% rename from Lib/test/test_importlib/test_path.py rename to Lib/test/test_importlib/resources/test_path.py index 6fc41f301d1cab..adcf75feea78ec 100644 --- a/Lib/test/test_importlib/test_path.py +++ b/Lib/test/test_importlib/resources/test_path.py @@ -3,7 +3,7 @@ from importlib import resources from . import data01 -from .resources import util +from . import util class CommonTests(util.CommonTests, unittest.TestCase): diff --git a/Lib/test/test_importlib/test_read.py b/Lib/test/test_importlib/resources/test_read.py similarity index 98% rename from Lib/test/test_importlib/test_read.py rename to Lib/test/test_importlib/resources/test_read.py index ebd72267776d96..0ca8ee9d02856b 100644 --- a/Lib/test/test_importlib/test_read.py +++ b/Lib/test/test_importlib/resources/test_read.py @@ -2,7 +2,7 @@ from importlib import import_module, resources from . import data01 -from .resources import util +from . import util class CommonBinaryTests(util.CommonTests, unittest.TestCase): diff --git a/Lib/test/test_importlib/test_reader.py b/Lib/test/test_importlib/resources/test_reader.py similarity index 100% rename from Lib/test/test_importlib/test_reader.py rename to Lib/test/test_importlib/resources/test_reader.py diff --git a/Lib/test/test_importlib/test_resource.py b/Lib/test/test_importlib/resources/test_resource.py similarity index 99% rename from Lib/test/test_importlib/test_resource.py rename to Lib/test/test_importlib/resources/test_resource.py index 834b8bd8a28189..1d6df0cc843173 100644 --- a/Lib/test/test_importlib/test_resource.py +++ b/Lib/test/test_importlib/resources/test_resource.py @@ -5,7 +5,7 @@ from . import data01 from . import zipdata01, zipdata02 -from .resources import util +from . import util from importlib import resources, import_module from test.support import import_helper from test.support.os_helper import unlink diff --git a/Lib/test/test_importlib/update-zips.py b/Lib/test/test_importlib/resources/update-zips.py similarity index 100% rename from Lib/test/test_importlib/update-zips.py rename to Lib/test/test_importlib/resources/update-zips.py diff --git a/Lib/test/test_importlib/resources/util.py b/Lib/test/test_importlib/resources/util.py index 11c8aa80806dce..eb2291f15de122 100644 --- a/Lib/test/test_importlib/resources/util.py +++ b/Lib/test/test_importlib/resources/util.py @@ -5,9 +5,9 @@ import types from pathlib import Path, PurePath -from .. import data01 -from .. import zipdata01 -from importlib.abc import ResourceReader +from . import data01 +from . import zipdata01 +from importlib.resources.abc import ResourceReader from test.support import import_helper diff --git a/Lib/test/test_importlib/data03/namespace/portion2/__init__.py b/Lib/test/test_importlib/resources/zipdata01/__init__.py similarity index 100% rename from Lib/test/test_importlib/data03/namespace/portion2/__init__.py rename to Lib/test/test_importlib/resources/zipdata01/__init__.py diff --git a/Lib/test/test_importlib/zipdata01/ziptestdata.zip b/Lib/test/test_importlib/resources/zipdata01/ziptestdata.zip similarity index 100% rename from Lib/test/test_importlib/zipdata01/ziptestdata.zip rename to Lib/test/test_importlib/resources/zipdata01/ziptestdata.zip diff --git a/Lib/test/test_importlib/zipdata01/__init__.py b/Lib/test/test_importlib/resources/zipdata02/__init__.py similarity index 100% rename from Lib/test/test_importlib/zipdata01/__init__.py rename to Lib/test/test_importlib/resources/zipdata02/__init__.py diff --git a/Lib/test/test_importlib/zipdata02/ziptestdata.zip b/Lib/test/test_importlib/resources/zipdata02/ziptestdata.zip similarity index 100% rename from Lib/test/test_importlib/zipdata02/ziptestdata.zip rename to Lib/test/test_importlib/resources/zipdata02/ziptestdata.zip diff --git a/Lib/test/test_importlib/source/test_file_loader.py b/Lib/test/test_importlib/source/test_file_loader.py index 378dcbe08a8050..f35adec1a8e800 100644 --- a/Lib/test/test_importlib/source/test_file_loader.py +++ b/Lib/test/test_importlib/source/test_file_loader.py @@ -51,7 +51,6 @@ class Tester(self.abc.FileLoader): def get_code(self, _): pass def get_source(self, _): pass def is_package(self, _): pass - def module_repr(self, _): pass path = 'some_path' name = 'some_name' diff --git a/Lib/test/test_importlib/test_abc.py b/Lib/test/test_importlib/test_abc.py index 92cb78067d0ebd..c214209350a0c8 100644 --- a/Lib/test/test_importlib/test_abc.py +++ b/Lib/test/test_importlib/test_abc.py @@ -2,7 +2,6 @@ import marshal import os import sys -from test import support from test.support import import_helper import types import unittest @@ -222,8 +221,6 @@ def test_module_repr(self): mod = types.ModuleType('blah') with warnings.catch_warnings(): warnings.simplefilter("ignore", DeprecationWarning) - with self.assertRaises(NotImplementedError): - self.ins.module_repr(mod) original_repr = repr(mod) mod.__loader__ = self.ins # Should still return a proper repr. @@ -323,32 +320,6 @@ def contents(self, *args, **kwargs): return super().contents(*args, **kwargs) -class ResourceReaderDefaultsTests(ABCTestHarness): - - SPLIT = make_abc_subclasses(ResourceReader) - - def test_open_resource(self): - with self.assertRaises(FileNotFoundError): - self.ins.open_resource('dummy_file') - - def test_resource_path(self): - with self.assertRaises(FileNotFoundError): - self.ins.resource_path('dummy_file') - - def test_is_resource(self): - with self.assertRaises(FileNotFoundError): - self.ins.is_resource('dummy_file') - - def test_contents(self): - with self.assertRaises(FileNotFoundError): - self.ins.contents() - - -(Frozen_RRDefaultTests, - Source_RRDefaultsTests - ) = test_util.test_both(ResourceReaderDefaultsTests) - - ##### MetaPathFinder concrete methods ########################################## class MetaPathFinderFindModuleTests: diff --git a/Lib/test/test_importlib/test_api.py b/Lib/test/test_importlib/test_api.py index ddf80947b9df46..b3a99dc2dd5731 100644 --- a/Lib/test/test_importlib/test_api.py +++ b/Lib/test/test_importlib/test_api.py @@ -6,7 +6,6 @@ import os.path import sys -from test import support from test.support import import_helper from test.support import os_helper import types @@ -396,7 +395,7 @@ def find_module(self, *args): def invalidate_caches(self): self.called = True - key = 'gobledeegook' + key = os.path.abspath('gobledeegook') meta_ins = InvalidatingNullFinder() path_ins = InvalidatingNullFinder() sys.meta_path.insert(0, meta_ins) diff --git a/Lib/test/test_importlib/test_main.py b/Lib/test/test_importlib/test_main.py index c80a0e4a5a9f91..d9d067c4b23d66 100644 --- a/Lib/test/test_importlib/test_main.py +++ b/Lib/test/test_importlib/test_main.py @@ -1,7 +1,6 @@ import re import json import pickle -import textwrap import unittest import warnings import importlib.metadata @@ -16,6 +15,7 @@ Distribution, EntryPoint, PackageNotFoundError, + _unique, distributions, entry_points, metadata, @@ -51,6 +51,14 @@ def test_package_not_found_mentions_metadata(self): def test_new_style_classes(self): self.assertIsInstance(Distribution, type) + @fixtures.parameterize( + dict(name=None), + dict(name=''), + ) + def test_invalid_inputs_to_from_name(self, name): + with self.assertRaises(Exception): + Distribution.from_name(name) + class ImportTests(fixtures.DistInfoPkg, unittest.TestCase): def test_import_nonexistent_module(self): @@ -78,48 +86,50 @@ def test_resolve_without_attr(self): class NameNormalizationTests(fixtures.OnSysPath, fixtures.SiteDir, unittest.TestCase): @staticmethod - def pkg_with_dashes(site_dir): + def make_pkg(name): """ - Create minimal metadata for a package with dashes - in the name (and thus underscores in the filename). + Create minimal metadata for a dist-info package with + the indicated name on the file system. """ - metadata_dir = site_dir / 'my_pkg.dist-info' - metadata_dir.mkdir() - metadata = metadata_dir / 'METADATA' - with metadata.open('w', encoding='utf-8') as strm: - strm.write('Version: 1.0\n') - return 'my-pkg' + return { + f'{name}.dist-info': { + 'METADATA': 'VERSION: 1.0\n', + }, + } def test_dashes_in_dist_name_found_as_underscores(self): """ For a package with a dash in the name, the dist-info metadata uses underscores in the name. Ensure the metadata loads. """ - pkg_name = self.pkg_with_dashes(self.site_dir) - assert version(pkg_name) == '1.0' - - @staticmethod - def pkg_with_mixed_case(site_dir): - """ - Create minimal metadata for a package with mixed case - in the name. - """ - metadata_dir = site_dir / 'CherryPy.dist-info' - metadata_dir.mkdir() - metadata = metadata_dir / 'METADATA' - with metadata.open('w', encoding='utf-8') as strm: - strm.write('Version: 1.0\n') - return 'CherryPy' + fixtures.build_files(self.make_pkg('my_pkg'), self.site_dir) + assert version('my-pkg') == '1.0' def test_dist_name_found_as_any_case(self): """ Ensure the metadata loads when queried with any case. """ - pkg_name = self.pkg_with_mixed_case(self.site_dir) + pkg_name = 'CherryPy' + fixtures.build_files(self.make_pkg(pkg_name), self.site_dir) assert version(pkg_name) == '1.0' assert version(pkg_name.lower()) == '1.0' assert version(pkg_name.upper()) == '1.0' + def test_unique_distributions(self): + """ + Two distributions varying only by non-normalized name on + the file system should resolve as the same. + """ + fixtures.build_files(self.make_pkg('abc'), self.site_dir) + before = list(_unique(distributions())) + + alt_site_dir = self.fixtures.enter_context(fixtures.tempdir()) + self.fixtures.enter_context(self.add_sys_path(alt_site_dir)) + fixtures.build_files(self.make_pkg('ABC'), alt_site_dir) + after = list(_unique(distributions())) + + assert len(after) == len(before) + class NonASCIITests(fixtures.OnSysPath, fixtures.SiteDir, unittest.TestCase): @staticmethod @@ -128,11 +138,12 @@ def pkg_with_non_ascii_description(site_dir): Create minimal metadata for a package with non-ASCII in the description. """ - metadata_dir = site_dir / 'portend.dist-info' - metadata_dir.mkdir() - metadata = metadata_dir / 'METADATA' - with metadata.open('w', encoding='utf-8') as fp: - fp.write('Description: pôrˈtend') + contents = { + 'portend.dist-info': { + 'METADATA': 'Description: pôrˈtend', + }, + } + fixtures.build_files(contents, site_dir) return 'portend' @staticmethod @@ -141,19 +152,15 @@ def pkg_with_non_ascii_description_egg_info(site_dir): Create minimal metadata for an egg-info package with non-ASCII in the description. """ - metadata_dir = site_dir / 'portend.dist-info' - metadata_dir.mkdir() - metadata = metadata_dir / 'METADATA' - with metadata.open('w', encoding='utf-8') as fp: - fp.write( - textwrap.dedent( - """ + contents = { + 'portend.dist-info': { + 'METADATA': """ Name: portend - pôrˈtend - """ - ).strip() - ) + pôrˈtend""", + }, + } + fixtures.build_files(contents, site_dir) return 'portend' def test_metadata_loads(self): diff --git a/Lib/test/test_importlib/test_metadata_api.py b/Lib/test/test_importlib/test_metadata_api.py index c86bb4df19c5eb..69c78e9820c044 100644 --- a/Lib/test/test_importlib/test_metadata_api.py +++ b/Lib/test/test_importlib/test_metadata_api.py @@ -89,15 +89,15 @@ def test_entry_points_distribution(self): self.assertIn(ep.dist.name, ('distinfo-pkg', 'egginfo-pkg')) self.assertEqual(ep.dist.version, "1.0.0") - def test_entry_points_unique_packages(self): + def test_entry_points_unique_packages_normalized(self): """ Entry points should only be exposed for the first package - on sys.path with a given name. + on sys.path with a given name (even when normalized). """ alt_site_dir = self.fixtures.enter_context(fixtures.tempdir()) self.fixtures.enter_context(self.add_sys_path(alt_site_dir)) alt_pkg = { - "distinfo_pkg-1.1.0.dist-info": { + "DistInfo_pkg-1.1.0.dist-info": { "METADATA": """ Name: distinfo-pkg Version: 1.1.0 diff --git a/Lib/test/test_importlib/test_namespace_pkgs.py b/Lib/test/test_importlib/test_namespace_pkgs.py index cd08498545e802..f451f7547b35bb 100644 --- a/Lib/test/test_importlib/test_namespace_pkgs.py +++ b/Lib/test/test_importlib/test_namespace_pkgs.py @@ -79,13 +79,6 @@ def test_cant_import_other(self): with self.assertRaises(ImportError): import foo.two - def test_module_repr(self): - import foo.one - with warnings.catch_warnings(): - warnings.simplefilter("ignore") - self.assertEqual(foo.__spec__.loader.module_repr(foo), - "<module 'foo' (namespace)>") - class DynamicPathNamespacePackage(NamespacePackageTest): paths = ['portion1'] diff --git a/Lib/test/test_importlib/test_spec.py b/Lib/test/test_importlib/test_spec.py index 21e2c02094f22e..f1ab16c7b2a9be 100644 --- a/Lib/test/test_importlib/test_spec.py +++ b/Lib/test/test_importlib/test_spec.py @@ -407,101 +407,6 @@ def test_reload_legacy(self): machinery=machinery) -class ModuleReprTests: - - @property - def bootstrap(self): - return self.init._bootstrap - - def setUp(self): - self.module = type(os)('spam') - self.spec = self.machinery.ModuleSpec('spam', TestLoader()) - - def test_module___loader___module_repr(self): - class Loader: - def module_repr(self, module): - return '<delicious {}>'.format(module.__name__) - self.module.__loader__ = Loader() - modrepr = self.bootstrap._module_repr(self.module) - - self.assertEqual(modrepr, '<delicious spam>') - - def test_module___loader___module_repr_bad(self): - class Loader(TestLoader): - def module_repr(self, module): - raise Exception - self.module.__loader__ = Loader() - modrepr = self.bootstrap._module_repr(self.module) - - self.assertEqual(modrepr, - '<module {!r} (<TestLoader object>)>'.format('spam')) - - def test_module___spec__(self): - origin = 'in a hole, in the ground' - self.spec.origin = origin - self.module.__spec__ = self.spec - modrepr = self.bootstrap._module_repr(self.module) - - self.assertEqual(modrepr, '<module {!r} ({})>'.format('spam', origin)) - - def test_module___spec___location(self): - location = 'in_a_galaxy_far_far_away.py' - self.spec.origin = location - self.spec._set_fileattr = True - self.module.__spec__ = self.spec - modrepr = self.bootstrap._module_repr(self.module) - - self.assertEqual(modrepr, - '<module {!r} from {!r}>'.format('spam', location)) - - def test_module___spec___no_origin(self): - self.spec.loader = TestLoader() - self.module.__spec__ = self.spec - modrepr = self.bootstrap._module_repr(self.module) - - self.assertEqual(modrepr, - '<module {!r} (<TestLoader object>)>'.format('spam')) - - def test_module___spec___no_origin_no_loader(self): - self.spec.loader = None - self.module.__spec__ = self.spec - modrepr = self.bootstrap._module_repr(self.module) - - self.assertEqual(modrepr, '<module {!r}>'.format('spam')) - - def test_module_no_name(self): - del self.module.__name__ - modrepr = self.bootstrap._module_repr(self.module) - - self.assertEqual(modrepr, '<module {!r}>'.format('?')) - - def test_module_with_file(self): - filename = 'e/i/e/i/o/spam.py' - self.module.__file__ = filename - modrepr = self.bootstrap._module_repr(self.module) - - self.assertEqual(modrepr, - '<module {!r} from {!r}>'.format('spam', filename)) - - def test_module_no_file(self): - self.module.__loader__ = TestLoader() - modrepr = self.bootstrap._module_repr(self.module) - - self.assertEqual(modrepr, - '<module {!r} (<TestLoader object>)>'.format('spam')) - - def test_module_no_file_no_loader(self): - modrepr = self.bootstrap._module_repr(self.module) - - self.assertEqual(modrepr, '<module {!r}>'.format('spam')) - - -(Frozen_ModuleReprTests, - Source_ModuleReprTests - ) = test_util.test_both(ModuleReprTests, init=init, util=util, - machinery=machinery) - - class FactoryTests: def setUp(self): diff --git a/Lib/test/test_importlib/test_util.py b/Lib/test/test_importlib/test_util.py index c77c7814a9ccd3..a62d68fcd8b333 100644 --- a/Lib/test/test_importlib/test_util.py +++ b/Lib/test/test_importlib/test_util.py @@ -860,7 +860,7 @@ def test_magic_number(self): # stakeholders such as OS package maintainers must be notified # in advance. Such exceptional releases will then require an # adjustment to this test case. - EXPECTED_MAGIC_NUMBER = 3413 + EXPECTED_MAGIC_NUMBER = 3495 actual = int.from_bytes(importlib.util.MAGIC_NUMBER[:2], 'little') msg = ( diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py index ae1842704d37df..be9f29e04ae110 100644 --- a/Lib/test/test_inspect.py +++ b/Lib/test/test_inspect.py @@ -202,6 +202,10 @@ def test_iscoroutine(self): gen_coroutine_function_example)))) self.assertTrue(inspect.isgenerator(gen_coro)) + self.assertFalse( + inspect.iscoroutinefunction(unittest.mock.Mock())) + self.assertTrue( + inspect.iscoroutinefunction(unittest.mock.AsyncMock())) self.assertTrue( inspect.iscoroutinefunction(coroutine_function_example)) self.assertTrue( @@ -210,6 +214,10 @@ def test_iscoroutine(self): coroutine_function_example)))) self.assertTrue(inspect.iscoroutine(coro)) + self.assertFalse( + inspect.isgeneratorfunction(unittest.mock.Mock())) + self.assertFalse( + inspect.isgeneratorfunction(unittest.mock.AsyncMock())) self.assertFalse( inspect.isgeneratorfunction(coroutine_function_example)) self.assertFalse( @@ -218,6 +226,12 @@ def test_iscoroutine(self): coroutine_function_example)))) self.assertFalse(inspect.isgenerator(coro)) + self.assertFalse( + inspect.isasyncgenfunction(unittest.mock.Mock())) + self.assertFalse( + inspect.isasyncgenfunction(unittest.mock.AsyncMock())) + self.assertFalse( + inspect.isasyncgenfunction(coroutine_function_example)) self.assertTrue( inspect.isasyncgenfunction(async_generator_function_example)) self.assertTrue( diff --git a/Lib/test/test_int.py b/Lib/test/test_int.py index a72699cc7506af..c972b8afb48d75 100644 --- a/Lib/test/test_int.py +++ b/Lib/test/test_int.py @@ -1,4 +1,5 @@ import sys +import time import unittest from test import support @@ -577,5 +578,202 @@ def test_issue31619(self): self.assertEqual(int('1_2_3_4_5_6_7', 32), 1144132807) +class IntStrDigitLimitsTests(unittest.TestCase): + + int_class = int # Override this in subclasses to reuse the suite. + + def setUp(self): + super().setUp() + self._previous_limit = sys.get_int_max_str_digits() + sys.set_int_max_str_digits(2048) + + def tearDown(self): + sys.set_int_max_str_digits(self._previous_limit) + super().tearDown() + + def test_disabled_limit(self): + self.assertGreater(sys.get_int_max_str_digits(), 0) + self.assertLess(sys.get_int_max_str_digits(), 20_000) + with support.adjust_int_max_str_digits(0): + self.assertEqual(sys.get_int_max_str_digits(), 0) + i = self.int_class('1' * 20_000) + str(i) + self.assertGreater(sys.get_int_max_str_digits(), 0) + + def test_max_str_digits_edge_cases(self): + """Ignore the +/- sign and space padding.""" + int_class = self.int_class + maxdigits = sys.get_int_max_str_digits() + + int_class('1' * maxdigits) + int_class(' ' + '1' * maxdigits) + int_class('1' * maxdigits + ' ') + int_class('+' + '1' * maxdigits) + int_class('-' + '1' * maxdigits) + self.assertEqual(len(str(10 ** (maxdigits - 1))), maxdigits) + + def check(self, i, base=None): + with self.assertRaises(ValueError): + if base is None: + self.int_class(i) + else: + self.int_class(i, base) + + def test_max_str_digits(self): + maxdigits = sys.get_int_max_str_digits() + + self.check('1' * (maxdigits + 1)) + self.check(' ' + '1' * (maxdigits + 1)) + self.check('1' * (maxdigits + 1) + ' ') + self.check('+' + '1' * (maxdigits + 1)) + self.check('-' + '1' * (maxdigits + 1)) + self.check('1' * (maxdigits + 1)) + + i = 10 ** maxdigits + with self.assertRaises(ValueError): + str(i) + + def test_denial_of_service_prevented_int_to_str(self): + """Regression test: ensure we fail before performing O(N**2) work.""" + maxdigits = sys.get_int_max_str_digits() + assert maxdigits < 50_000, maxdigits # A test prerequisite. + get_time = time.process_time + if get_time() <= 0: # some platforms like WASM lack process_time() + get_time = time.monotonic + + huge_int = int(f'0x{"c"*65_000}', base=16) # 78268 decimal digits. + digits = 78_268 + with support.adjust_int_max_str_digits(digits): + start = get_time() + huge_decimal = str(huge_int) + seconds_to_convert = get_time() - start + self.assertEqual(len(huge_decimal), digits) + # Ensuring that we chose a slow enough conversion to measure. + # It takes 0.1 seconds on a Zen based cloud VM in an opt build. + # Some OSes have a low res 1/64s timer, skip if hard to measure. + if seconds_to_convert < 1/64: + raise unittest.SkipTest('"slow" conversion took only ' + f'{seconds_to_convert} seconds.') + + # We test with the limit almost at the size needed to check performance. + # The performant limit check is slightly fuzzy, give it a some room. + with support.adjust_int_max_str_digits(int(.995 * digits)): + with self.assertRaises(ValueError) as err: + start = get_time() + str(huge_int) + seconds_to_fail_huge = get_time() - start + self.assertIn('conversion', str(err.exception)) + self.assertLessEqual(seconds_to_fail_huge, seconds_to_convert/2) + + # Now we test that a conversion that would take 30x as long also fails + # in a similarly fast fashion. + extra_huge_int = int(f'0x{"c"*500_000}', base=16) # 602060 digits. + with self.assertRaises(ValueError) as err: + start = get_time() + # If not limited, 8 seconds said Zen based cloud VM. + str(extra_huge_int) + seconds_to_fail_extra_huge = get_time() - start + self.assertIn('conversion', str(err.exception)) + self.assertLess(seconds_to_fail_extra_huge, seconds_to_convert/2) + + def test_denial_of_service_prevented_str_to_int(self): + """Regression test: ensure we fail before performing O(N**2) work.""" + maxdigits = sys.get_int_max_str_digits() + assert maxdigits < 100_000, maxdigits # A test prerequisite. + get_time = time.process_time + if get_time() <= 0: # some platforms like WASM lack process_time() + get_time = time.monotonic + + digits = 133700 + huge = '8'*digits + with support.adjust_int_max_str_digits(digits): + start = get_time() + int(huge) + seconds_to_convert = get_time() - start + # Ensuring that we chose a slow enough conversion to measure. + # It takes 0.1 seconds on a Zen based cloud VM in an opt build. + # Some OSes have a low res 1/64s timer, skip if hard to measure. + if seconds_to_convert < 1/64: + raise unittest.SkipTest('"slow" conversion took only ' + f'{seconds_to_convert} seconds.') + + with support.adjust_int_max_str_digits(digits - 1): + with self.assertRaises(ValueError) as err: + start = get_time() + int(huge) + seconds_to_fail_huge = get_time() - start + self.assertIn('conversion', str(err.exception)) + self.assertLessEqual(seconds_to_fail_huge, seconds_to_convert/2) + + # Now we test that a conversion that would take 30x as long also fails + # in a similarly fast fashion. + extra_huge = '7'*1_200_000 + with self.assertRaises(ValueError) as err: + start = get_time() + # If not limited, 8 seconds in the Zen based cloud VM. + int(extra_huge) + seconds_to_fail_extra_huge = get_time() - start + self.assertIn('conversion', str(err.exception)) + self.assertLessEqual(seconds_to_fail_extra_huge, seconds_to_convert/2) + + def test_power_of_two_bases_unlimited(self): + """The limit does not apply to power of 2 bases.""" + maxdigits = sys.get_int_max_str_digits() + + for base in (2, 4, 8, 16, 32): + with self.subTest(base=base): + self.int_class('1' * (maxdigits + 1), base) + assert maxdigits < 100_000 + self.int_class('1' * 100_000, base) + + def test_underscores_ignored(self): + maxdigits = sys.get_int_max_str_digits() + + triples = maxdigits // 3 + s = '111' * triples + s_ = '1_11' * triples + self.int_class(s) # succeeds + self.int_class(s_) # succeeds + self.check(f'{s}111') + self.check(f'{s_}_111') + + def test_sign_not_counted(self): + int_class = self.int_class + max_digits = sys.get_int_max_str_digits() + s = '5' * max_digits + i = int_class(s) + pos_i = int_class(f'+{s}') + assert i == pos_i + neg_i = int_class(f'-{s}') + assert -pos_i == neg_i + str(pos_i) + str(neg_i) + + def _other_base_helper(self, base): + int_class = self.int_class + max_digits = sys.get_int_max_str_digits() + s = '2' * max_digits + i = int_class(s, base) + if base > 10: + with self.assertRaises(ValueError): + str(i) + elif base < 10: + str(i) + with self.assertRaises(ValueError) as err: + int_class(f'{s}1', base) + + def test_int_from_other_bases(self): + base = 3 + with self.subTest(base=base): + self._other_base_helper(base) + base = 36 + with self.subTest(base=base): + self._other_base_helper(base) + + +class IntSubclassStrDigitLimitsTests(IntStrDigitLimitsTests): + int_class = IntSubclass + + if __name__ == "__main__": unittest.main() diff --git a/Lib/test/test_io.py b/Lib/test/test_io.py index 129734b22328ed..24c93b969ea2b7 100644 --- a/Lib/test/test_io.py +++ b/Lib/test/test_io.py @@ -4301,14 +4301,6 @@ def test_text_encoding(self): proc = assert_python_ok('-X', 'utf8=1', '-c', code) self.assertEqual(b"utf-8", proc.out.strip()) - @support.cpython_only - # Depending if OpenWrapper was already created or not, the warning is - # emitted or not. For example, the attribute is already created when this - # test is run multiple times. - @warnings_helper.ignore_warnings(category=DeprecationWarning) - def test_openwrapper(self): - self.assertIs(self.io.OpenWrapper, self.io.open) - class CMiscIOTest(MiscIOTest): io = io diff --git a/Lib/test/test_itertools.py b/Lib/test/test_itertools.py index 238afbbd883d3a..f469bfe185e65b 100644 --- a/Lib/test/test_itertools.py +++ b/Lib/test/test_itertools.py @@ -180,6 +180,7 @@ def test_chain_from_iterable(self): self.assertEqual(list(chain.from_iterable([''])), []) self.assertEqual(take(4, chain.from_iterable(['abc', 'def'])), list('abcd')) self.assertRaises(TypeError, list, chain.from_iterable([2, 3])) + self.assertEqual(list(islice(chain.from_iterable(repeat(range(5))), 2)), [0, 1]) def test_chain_reducible(self): for oper in [copy.deepcopy] + picklecopiers: diff --git a/Lib/test/test_json/__init__.py b/Lib/test/test_json/__init__.py index 74b64ed86a3183..37b2e0d5e26d16 100644 --- a/Lib/test/test_json/__init__.py +++ b/Lib/test/test_json/__init__.py @@ -18,6 +18,7 @@ class PyTest(unittest.TestCase): json = pyjson loads = staticmethod(pyjson.loads) dumps = staticmethod(pyjson.dumps) + AttrDict = pyjson.AttrDict JSONDecodeError = staticmethod(pyjson.JSONDecodeError) @unittest.skipUnless(cjson, 'requires _json') diff --git a/Lib/test/test_json/test_attrdict.py b/Lib/test/test_json/test_attrdict.py new file mode 100644 index 00000000000000..48d14f4db93c12 --- /dev/null +++ b/Lib/test/test_json/test_attrdict.py @@ -0,0 +1,145 @@ +from test.test_json import PyTest +import pickle +import sys +import unittest + +kepler_dict = { + "orbital_period": { + "mercury": 88, + "venus": 225, + "earth": 365, + "mars": 687, + "jupiter": 4331, + "saturn": 10_756, + "uranus": 30_687, + "neptune": 60_190, + }, + "dist_from_sun": { + "mercury": 58, + "venus": 108, + "earth": 150, + "mars": 228, + "jupiter": 778, + "saturn": 1_400, + "uranus": 2_900, + "neptune": 4_500, + } +} + +class TestAttrDict(PyTest): + + def test_dict_subclass(self): + self.assertTrue(issubclass(self.AttrDict, dict)) + + def test_slots(self): + d = self.AttrDict(x=1, y=2) + with self.assertRaises(TypeError): + vars(d) + + def test_constructor_signatures(self): + AttrDict = self.AttrDict + target = dict(x=1, y=2) + self.assertEqual(AttrDict(x=1, y=2), target) # kwargs + self.assertEqual(AttrDict(dict(x=1, y=2)), target) # mapping + self.assertEqual(AttrDict(dict(x=1, y=0), y=2), target) # mapping, kwargs + self.assertEqual(AttrDict([('x', 1), ('y', 2)]), target) # iterable + self.assertEqual(AttrDict([('x', 1), ('y', 0)], y=2), target) # iterable, kwargs + + def test_getattr(self): + d = self.AttrDict(x=1, y=2) + self.assertEqual(d.x, 1) + with self.assertRaises(AttributeError): + d.z + + def test_setattr(self): + d = self.AttrDict(x=1, y=2) + d.x = 3 + d.z = 5 + self.assertEqual(d, dict(x=3, y=2, z=5)) + + def test_delattr(self): + d = self.AttrDict(x=1, y=2) + del d.x + self.assertEqual(d, dict(y=2)) + with self.assertRaises(AttributeError): + del d.z + + def test_dir(self): + d = self.AttrDict(x=1, y=2) + self.assertTrue(set(dir(d)), set(dir(dict)).union({'x', 'y'})) + + def test_repr(self): + # This repr is doesn't round-trip. It matches a regular dict. + # That seems to be the norm for AttrDict recipes being used + # in the wild. Also it supports the design concept that an + # AttrDict is just like a regular dict but has optional + # attribute style lookup. + self.assertEqual(repr(self.AttrDict(x=1, y=2)), + repr(dict(x=1, y=2))) + + def test_overlapping_keys_and_methods(self): + d = self.AttrDict(items=50) + self.assertEqual(d['items'], 50) + self.assertEqual(d.items(), dict(d).items()) + + def test_invalid_attribute_names(self): + d = self.AttrDict({ + 'control': 'normal case', + 'class': 'keyword', + 'two words': 'contains space', + 'hypen-ate': 'contains a hyphen' + }) + self.assertEqual(d.control, dict(d)['control']) + self.assertEqual(d['class'], dict(d)['class']) + self.assertEqual(d['two words'], dict(d)['two words']) + self.assertEqual(d['hypen-ate'], dict(d)['hypen-ate']) + + def test_object_hook_use_case(self): + AttrDict = self.AttrDict + json_string = self.dumps(kepler_dict) + kepler_ad = self.loads(json_string, object_hook=AttrDict) + + self.assertEqual(kepler_ad, kepler_dict) # Match regular dict + self.assertIsInstance(kepler_ad, AttrDict) # Verify conversion + self.assertIsInstance(kepler_ad.orbital_period, AttrDict) # Nested + + # Exercise dotted lookups + self.assertEqual(kepler_ad.orbital_period, kepler_dict['orbital_period']) + self.assertEqual(kepler_ad.orbital_period.earth, + kepler_dict['orbital_period']['earth']) + self.assertEqual(kepler_ad['orbital_period'].earth, + kepler_dict['orbital_period']['earth']) + + # Dict style error handling and Attribute style error handling + with self.assertRaises(KeyError): + kepler_ad.orbital_period['pluto'] + with self.assertRaises(AttributeError): + kepler_ad.orbital_period.Pluto + + # Order preservation + self.assertEqual(list(kepler_ad.items()), list(kepler_dict.items())) + self.assertEqual(list(kepler_ad.orbital_period.items()), + list(kepler_dict['orbital_period'].items())) + + # Round trip + self.assertEqual(self.dumps(kepler_ad), json_string) + + def test_pickle(self): + AttrDict = self.AttrDict + json_string = self.dumps(kepler_dict) + kepler_ad = self.loads(json_string, object_hook=AttrDict) + + # Pickling requires the cached module to be the real module + cached_module = sys.modules.get('json') + sys.modules['json'] = self.json + try: + for protocol in range(6): + kepler_ad2 = pickle.loads(pickle.dumps(kepler_ad, protocol)) + self.assertEqual(kepler_ad2, kepler_ad) + self.assertEqual(type(kepler_ad2), AttrDict) + finally: + sys.modules['json'] = cached_module + + +if __name__ == "__main__": + unittest.main() diff --git a/Lib/test/test_json/test_decode.py b/Lib/test/test_json/test_decode.py index fdb9e62124ece1..124045b13184b3 100644 --- a/Lib/test/test_json/test_decode.py +++ b/Lib/test/test_json/test_decode.py @@ -2,6 +2,7 @@ from io import StringIO from collections import OrderedDict from test.test_json import PyTest, CTest +from test import support class TestDecode: @@ -95,5 +96,13 @@ def test_negative_index(self): d = self.json.JSONDecoder() self.assertRaises(ValueError, d.raw_decode, 'a'*42, -50000) + def test_limit_int(self): + maxdigits = 5000 + with support.adjust_int_max_str_digits(maxdigits): + self.loads('1' * maxdigits) + with self.assertRaises(ValueError): + self.loads('1' * (maxdigits + 1)) + + class TestPyDecode(TestDecode, PyTest): pass class TestCDecode(TestDecode, CTest): pass diff --git a/Lib/test/test_launcher.py b/Lib/test/test_launcher.py index e9f6fcb7d7f245..be0cd90c7906f5 100644 --- a/Lib/test/test_launcher.py +++ b/Lib/test/test_launcher.py @@ -7,7 +7,6 @@ import sys import sysconfig import tempfile -import textwrap import unittest from pathlib import Path from test import support @@ -70,7 +69,7 @@ TEST_PY_COMMANDS = "\n".join([ "[defaults]", - *[f"{k.lower()}={v}" for k, v in TEST_PY_ENV.items()] + *[f"{k[3:].lower()}={v}" for k, v in TEST_PY_ENV.items()] ]) @@ -150,7 +149,7 @@ class RunPyMixin: @classmethod def find_py(cls): py_exe = None - if sysconfig.is_python_build(True): + if sysconfig.is_python_build(): py_exe = Path(sys.executable).parent / PY_EXE else: for p in os.getenv("PATH").split(";"): @@ -188,20 +187,28 @@ def find_py(cls): ) return py_exe - def run_py(self, args, env=None, allow_fail=False, expect_returncode=0): + def get_py_exe(self): + if not self.py_exe: + self.py_exe = self.find_py() + return self.py_exe + + def run_py(self, args, env=None, allow_fail=False, expect_returncode=0, argv=None): if not self.py_exe: self.py_exe = self.find_py() ignore = {"VIRTUAL_ENV", "PY_PYTHON", "PY_PYTHON2", "PY_PYTHON3"} env = { **{k.upper(): v for k, v in os.environ.items() if k.upper() not in ignore}, - **{k.upper(): v for k, v in (env or {}).items()}, "PYLAUNCHER_DEBUG": "1", "PYLAUNCHER_DRYRUN": "1", + **{k.upper(): v for k, v in (env or {}).items()}, } + if not argv: + argv = [self.py_exe, *args] with subprocess.Popen( - [self.py_exe, *args], + argv, env=env, + executable=self.py_exe, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, @@ -231,9 +238,11 @@ def run_py(self, args, env=None, allow_fail=False, expect_returncode=0): return data def py_ini(self, content): - if not self.py_exe: - self.py_exe = self.find_py() - return PreservePyIni(self.py_exe.with_name("py.ini"), content) + local_appdata = os.environ.get("LOCALAPPDATA") + if not local_appdata: + raise unittest.SkipTest("LOCALAPPDATA environment variable is " + "missing or empty") + return PreservePyIni(Path(local_appdata) / "py.ini", content) @contextlib.contextmanager def script(self, content, encoding="utf-8"): @@ -494,7 +503,7 @@ def test_virtualenv_with_env(self): def test_py_shebang(self): with self.py_ini(TEST_PY_COMMANDS): - with self.script("#! /usr/bin/env python -prearg") as script: + with self.script("#! /usr/bin/python -prearg") as script: data = self.run_py([script, "-postarg"]) self.assertEqual("PythonTestSuite", data["SearchInfo.company"]) self.assertEqual("3.100", data["SearchInfo.tag"]) @@ -502,7 +511,7 @@ def test_py_shebang(self): def test_py2_shebang(self): with self.py_ini(TEST_PY_COMMANDS): - with self.script("#! /usr/bin/env python2 -prearg") as script: + with self.script("#! /usr/bin/python2 -prearg") as script: data = self.run_py([script, "-postarg"]) self.assertEqual("PythonTestSuite", data["SearchInfo.company"]) self.assertEqual("3.100-32", data["SearchInfo.tag"]) @@ -510,12 +519,84 @@ def test_py2_shebang(self): def test_py3_shebang(self): with self.py_ini(TEST_PY_COMMANDS): - with self.script("#! /usr/bin/env python3 -prearg") as script: + with self.script("#! /usr/bin/python3 -prearg") as script: + data = self.run_py([script, "-postarg"]) + self.assertEqual("PythonTestSuite", data["SearchInfo.company"]) + self.assertEqual("3.100-arm64", data["SearchInfo.tag"]) + self.assertEqual(f"X.Y-arm64.exe -X fake_arg_for_test -prearg {script} -postarg", data["stdout"].strip()) + + def test_py_shebang_nl(self): + with self.py_ini(TEST_PY_COMMANDS): + with self.script("#! /usr/bin/python -prearg\n") as script: + data = self.run_py([script, "-postarg"]) + self.assertEqual("PythonTestSuite", data["SearchInfo.company"]) + self.assertEqual("3.100", data["SearchInfo.tag"]) + self.assertEqual(f"X.Y.exe -prearg {script} -postarg", data["stdout"].strip()) + + def test_py2_shebang_nl(self): + with self.py_ini(TEST_PY_COMMANDS): + with self.script("#! /usr/bin/python2 -prearg\n") as script: + data = self.run_py([script, "-postarg"]) + self.assertEqual("PythonTestSuite", data["SearchInfo.company"]) + self.assertEqual("3.100-32", data["SearchInfo.tag"]) + self.assertEqual(f"X.Y-32.exe -prearg {script} -postarg", data["stdout"].strip()) + + def test_py3_shebang_nl(self): + with self.py_ini(TEST_PY_COMMANDS): + with self.script("#! /usr/bin/python3 -prearg\n") as script: data = self.run_py([script, "-postarg"]) self.assertEqual("PythonTestSuite", data["SearchInfo.company"]) self.assertEqual("3.100-arm64", data["SearchInfo.tag"]) self.assertEqual(f"X.Y-arm64.exe -X fake_arg_for_test -prearg {script} -postarg", data["stdout"].strip()) + def test_py_shebang_short_argv0(self): + with self.py_ini(TEST_PY_COMMANDS): + with self.script("#! /usr/bin/python -prearg") as script: + # Override argv to only pass "py.exe" as the command + data = self.run_py([script, "-postarg"], argv=f'"py.exe" "{script}" -postarg') + self.assertEqual("PythonTestSuite", data["SearchInfo.company"]) + self.assertEqual("3.100", data["SearchInfo.tag"]) + self.assertEqual(f'X.Y.exe -prearg "{script}" -postarg', data["stdout"].strip()) + + def test_py_handle_64_in_ini(self): + with self.py_ini("\n".join(["[defaults]", "python=3.999-64"])): + # Expect this to fail, but should get oldStyleTag flipped on + data = self.run_py([], allow_fail=True, expect_returncode=103) + self.assertEqual("3.999-64", data["SearchInfo.tag"]) + self.assertEqual("True", data["SearchInfo.oldStyleTag"]) + + def test_search_path(self): + stem = Path(sys.executable).stem + with self.py_ini(TEST_PY_COMMANDS): + with self.script(f"#! /usr/bin/env {stem} -prearg") as script: + data = self.run_py( + [script, "-postarg"], + env={"PATH": f"{Path(sys.executable).parent};{os.getenv('PATH')}"}, + ) + self.assertEqual(f"{sys.executable} -prearg {script} -postarg", data["stdout"].strip()) + + def test_search_path_exe(self): + # Leave the .exe on the name to ensure we don't add it a second time + name = Path(sys.executable).name + with self.py_ini(TEST_PY_COMMANDS): + with self.script(f"#! /usr/bin/env {name} -prearg") as script: + data = self.run_py( + [script, "-postarg"], + env={"PATH": f"{Path(sys.executable).parent};{os.getenv('PATH')}"}, + ) + self.assertEqual(f"{sys.executable} -prearg {script} -postarg", data["stdout"].strip()) + + def test_recursive_search_path(self): + stem = self.get_py_exe().stem + with self.py_ini(TEST_PY_COMMANDS): + with self.script(f"#! /usr/bin/env {stem}") as script: + data = self.run_py( + [script], + env={"PATH": f"{self.get_py_exe().parent};{os.getenv('PATH')}"}, + ) + # The recursive search is ignored and we get normal "py" behavior + self.assertEqual(f"X.Y.exe {script}", data["stdout"].strip()) + def test_install(self): data = self.run_py(["-V:3.10"], env={"PYLAUNCHER_ALWAYS_INSTALL": "1"}, expect_returncode=111) cmd = data["stdout"].strip() diff --git a/Lib/test/test_lib2to3.py b/Lib/test/test_lib2to3.py deleted file mode 100644 index 6ea8aa4a56e52e..00000000000000 --- a/Lib/test/test_lib2to3.py +++ /dev/null @@ -1,9 +0,0 @@ -import unittest -from test.support.import_helper import import_fresh_module -from test.support.warnings_helper import check_warnings - -with check_warnings(("", DeprecationWarning)): - load_tests = import_fresh_module('lib2to3.tests', fresh=['lib2to3']).load_tests - -if __name__ == '__main__': - unittest.main() diff --git a/Lib/lib2to3/tests/__init__.py b/Lib/test/test_lib2to3/__init__.py similarity index 100% rename from Lib/lib2to3/tests/__init__.py rename to Lib/test/test_lib2to3/__init__.py diff --git a/Lib/lib2to3/tests/__main__.py b/Lib/test/test_lib2to3/__main__.py similarity index 100% rename from Lib/lib2to3/tests/__main__.py rename to Lib/test/test_lib2to3/__main__.py diff --git a/Lib/lib2to3/tests/data/README b/Lib/test/test_lib2to3/data/README similarity index 100% rename from Lib/lib2to3/tests/data/README rename to Lib/test/test_lib2to3/data/README diff --git a/Lib/lib2to3/tests/data/bom.py b/Lib/test/test_lib2to3/data/bom.py similarity index 100% rename from Lib/lib2to3/tests/data/bom.py rename to Lib/test/test_lib2to3/data/bom.py diff --git a/Lib/lib2to3/tests/data/crlf.py b/Lib/test/test_lib2to3/data/crlf.py similarity index 100% rename from Lib/lib2to3/tests/data/crlf.py rename to Lib/test/test_lib2to3/data/crlf.py diff --git a/Lib/lib2to3/tests/data/different_encoding.py b/Lib/test/test_lib2to3/data/different_encoding.py similarity index 100% rename from Lib/lib2to3/tests/data/different_encoding.py rename to Lib/test/test_lib2to3/data/different_encoding.py diff --git a/Lib/lib2to3/tests/data/false_encoding.py b/Lib/test/test_lib2to3/data/false_encoding.py similarity index 100% rename from Lib/lib2to3/tests/data/false_encoding.py rename to Lib/test/test_lib2to3/data/false_encoding.py diff --git a/Lib/lib2to3/tests/data/fixers/bad_order.py b/Lib/test/test_lib2to3/data/fixers/bad_order.py similarity index 100% rename from Lib/lib2to3/tests/data/fixers/bad_order.py rename to Lib/test/test_lib2to3/data/fixers/bad_order.py diff --git a/Lib/test/test_importlib/zipdata02/__init__.py b/Lib/test/test_lib2to3/data/fixers/myfixes/__init__.py similarity index 100% rename from Lib/test/test_importlib/zipdata02/__init__.py rename to Lib/test/test_lib2to3/data/fixers/myfixes/__init__.py diff --git a/Lib/lib2to3/tests/data/fixers/myfixes/fix_explicit.py b/Lib/test/test_lib2to3/data/fixers/myfixes/fix_explicit.py similarity index 100% rename from Lib/lib2to3/tests/data/fixers/myfixes/fix_explicit.py rename to Lib/test/test_lib2to3/data/fixers/myfixes/fix_explicit.py diff --git a/Lib/lib2to3/tests/data/fixers/myfixes/fix_first.py b/Lib/test/test_lib2to3/data/fixers/myfixes/fix_first.py similarity index 100% rename from Lib/lib2to3/tests/data/fixers/myfixes/fix_first.py rename to Lib/test/test_lib2to3/data/fixers/myfixes/fix_first.py diff --git a/Lib/lib2to3/tests/data/fixers/myfixes/fix_last.py b/Lib/test/test_lib2to3/data/fixers/myfixes/fix_last.py similarity index 100% rename from Lib/lib2to3/tests/data/fixers/myfixes/fix_last.py rename to Lib/test/test_lib2to3/data/fixers/myfixes/fix_last.py diff --git a/Lib/lib2to3/tests/data/fixers/myfixes/fix_parrot.py b/Lib/test/test_lib2to3/data/fixers/myfixes/fix_parrot.py similarity index 100% rename from Lib/lib2to3/tests/data/fixers/myfixes/fix_parrot.py rename to Lib/test/test_lib2to3/data/fixers/myfixes/fix_parrot.py diff --git a/Lib/lib2to3/tests/data/fixers/myfixes/fix_preorder.py b/Lib/test/test_lib2to3/data/fixers/myfixes/fix_preorder.py similarity index 100% rename from Lib/lib2to3/tests/data/fixers/myfixes/fix_preorder.py rename to Lib/test/test_lib2to3/data/fixers/myfixes/fix_preorder.py diff --git a/Lib/lib2to3/tests/data/fixers/no_fixer_cls.py b/Lib/test/test_lib2to3/data/fixers/no_fixer_cls.py similarity index 100% rename from Lib/lib2to3/tests/data/fixers/no_fixer_cls.py rename to Lib/test/test_lib2to3/data/fixers/no_fixer_cls.py diff --git a/Lib/lib2to3/tests/data/fixers/parrot_example.py b/Lib/test/test_lib2to3/data/fixers/parrot_example.py similarity index 100% rename from Lib/lib2to3/tests/data/fixers/parrot_example.py rename to Lib/test/test_lib2to3/data/fixers/parrot_example.py diff --git a/Lib/lib2to3/tests/data/infinite_recursion.py b/Lib/test/test_lib2to3/data/infinite_recursion.py similarity index 100% rename from Lib/lib2to3/tests/data/infinite_recursion.py rename to Lib/test/test_lib2to3/data/infinite_recursion.py diff --git a/Lib/lib2to3/tests/data/py2_test_grammar.py b/Lib/test/test_lib2to3/data/py2_test_grammar.py similarity index 99% rename from Lib/lib2to3/tests/data/py2_test_grammar.py rename to Lib/test/test_lib2to3/data/py2_test_grammar.py index f9e4ea1374f907..1a631510f4dba7 100644 --- a/Lib/lib2to3/tests/data/py2_test_grammar.py +++ b/Lib/test/test_lib2to3/data/py2_test_grammar.py @@ -735,7 +735,7 @@ def testSelectors(self): s = a[-5:] s = a[:-1] s = a[-4:-3] - # A rough test of SF bug 1333982. https://python.org/sf/1333982 + # A rough test of SF bug 1333982. https://bugs.python.org/issue1333982 # The testing here is fairly incomplete. # Test cases should include: commas with 1 and 2 colons d = {} diff --git a/Lib/lib2to3/tests/data/py3_test_grammar.py b/Lib/test/test_lib2to3/data/py3_test_grammar.py similarity index 99% rename from Lib/lib2to3/tests/data/py3_test_grammar.py rename to Lib/test/test_lib2to3/data/py3_test_grammar.py index a4a3f7eac0dded..774851f5bd7e85 100644 --- a/Lib/lib2to3/tests/data/py3_test_grammar.py +++ b/Lib/test/test_lib2to3/data/py3_test_grammar.py @@ -714,7 +714,7 @@ def testSelectors(self): s = a[-5:] s = a[:-1] s = a[-4:-3] - # A rough test of SF bug 1333982. https://python.org/sf/1333982 + # A rough test of SF bug 1333982. https://bugs.python.org/issue1333982 # The testing here is fairly incomplete. # Test cases should include: commas with 1 and 2 colons d = {} diff --git a/Lib/lib2to3/tests/pytree_idempotency.py b/Lib/test/test_lib2to3/pytree_idempotency.py similarity index 96% rename from Lib/lib2to3/tests/pytree_idempotency.py rename to Lib/test/test_lib2to3/pytree_idempotency.py index 2e7e9781d42995..eb2e2aa02ae0ed 100755 --- a/Lib/lib2to3/tests/pytree_idempotency.py +++ b/Lib/test/test_lib2to3/pytree_idempotency.py @@ -17,9 +17,9 @@ import logging # Local imports -from .. import pytree -from .. import pgen2 -from ..pgen2 import driver +from lib2to3 import pytree +from lib2to3 import pgen2 +from lib2to3.pgen2 import driver logging.basicConfig() diff --git a/Lib/lib2to3/tests/support.py b/Lib/test/test_lib2to3/support.py similarity index 77% rename from Lib/lib2to3/tests/support.py rename to Lib/test/test_lib2to3/support.py index fe084e8903fc86..9e56273e95992b 100644 --- a/Lib/lib2to3/tests/support.py +++ b/Lib/test/test_lib2to3/support.py @@ -8,12 +8,14 @@ from textwrap import dedent # Local imports +import lib2to3 from lib2to3 import pytree, refactor from lib2to3.pgen2 import driver as pgen2_driver +lib2to3_dir = os.path.dirname(lib2to3.__file__) test_dir = os.path.dirname(__file__) proj_dir = os.path.normpath(os.path.join(test_dir, "..")) -grammar_path = os.path.join(test_dir, "..", "Grammar.txt") +grammar_path = os.path.join(lib2to3_dir, "Grammar.txt") grammar = pgen2_driver.load_grammar(grammar_path) grammar_no_print_statement = pgen2_driver.load_grammar(grammar_path) del grammar_no_print_statement.keywords["print"] @@ -49,10 +51,19 @@ def get_refactorer(fixer_pkg="lib2to3", fixers=None, options=None): options = options or {} return refactor.RefactoringTool(fixers, options, explicit=True) -def all_project_files(): - for dirpath, dirnames, filenames in os.walk(proj_dir): +def _all_project_files(root, files): + for dirpath, dirnames, filenames in os.walk(root): for filename in filenames: - if filename.endswith(".py"): - yield os.path.join(dirpath, filename) + if not filename.endswith(".py"): + continue + files.append(os.path.join(dirpath, filename)) + +def all_project_files(): + files = [] + _all_project_files(lib2to3_dir, files) + _all_project_files(test_dir, files) + # Sort to get more reproducible tests + files.sort() + return files TestCase = unittest.TestCase diff --git a/Lib/lib2to3/tests/test_all_fixers.py b/Lib/test/test_lib2to3/test_all_fixers.py similarity index 99% rename from Lib/lib2to3/tests/test_all_fixers.py rename to Lib/test/test_lib2to3/test_all_fixers.py index a265941490d5dc..d0fca7072482cb 100644 --- a/Lib/lib2to3/tests/test_all_fixers.py +++ b/Lib/test/test_lib2to3/test_all_fixers.py @@ -7,7 +7,6 @@ # Python imports import os.path -import sys import test.support import unittest diff --git a/Lib/lib2to3/tests/test_fixers.py b/Lib/test/test_lib2to3/test_fixers.py similarity index 99% rename from Lib/lib2to3/tests/test_fixers.py rename to Lib/test/test_lib2to3/test_fixers.py index 121ebe68e5402b..68efeee7abb4d5 100644 --- a/Lib/lib2to3/tests/test_fixers.py +++ b/Lib/test/test_lib2to3/test_fixers.py @@ -7,7 +7,7 @@ # Local imports from lib2to3 import pygram, fixer_util -from lib2to3.tests import support +from test.test_lib2to3 import support class FixerTestCase(support.TestCase): @@ -1791,7 +1791,7 @@ def f(): class Test_imports(FixerTestCase, ImportsFixerTests): fixer = "imports" - from ..fixes.fix_imports import MAPPING as modules + from lib2to3.fixes.fix_imports import MAPPING as modules def test_multiple_imports(self): b = """import urlparse, cStringIO""" @@ -1812,16 +1812,16 @@ def test_multiple_imports_as(self): class Test_imports2(FixerTestCase, ImportsFixerTests): fixer = "imports2" - from ..fixes.fix_imports2 import MAPPING as modules + from lib2to3.fixes.fix_imports2 import MAPPING as modules class Test_imports_fixer_order(FixerTestCase, ImportsFixerTests): def setUp(self): super(Test_imports_fixer_order, self).setUp(['imports', 'imports2']) - from ..fixes.fix_imports2 import MAPPING as mapping2 + from lib2to3.fixes.fix_imports2 import MAPPING as mapping2 self.modules = mapping2.copy() - from ..fixes.fix_imports import MAPPING as mapping1 + from lib2to3.fixes.fix_imports import MAPPING as mapping1 for key in ('dbhash', 'dumbdbm', 'dbm', 'gdbm'): self.modules[key] = mapping1[key] @@ -1833,7 +1833,7 @@ def test_after_local_imports_refactoring(self): class Test_urllib(FixerTestCase): fixer = "urllib" - from ..fixes.fix_urllib import MAPPING as modules + from lib2to3.fixes.fix_urllib import MAPPING as modules def test_import_module(self): for old, changes in self.modules.items(): diff --git a/Lib/lib2to3/tests/test_main.py b/Lib/test/test_lib2to3/test_main.py similarity index 100% rename from Lib/lib2to3/tests/test_main.py rename to Lib/test/test_lib2to3/test_main.py diff --git a/Lib/lib2to3/tests/test_parser.py b/Lib/test/test_lib2to3/test_parser.py similarity index 99% rename from Lib/lib2to3/tests/test_parser.py rename to Lib/test/test_lib2to3/test_parser.py index 8e7773bcae13ed..2c798b181fdbda 100644 --- a/Lib/lib2to3/tests/test_parser.py +++ b/Lib/test/test_lib2to3/test_parser.py @@ -26,7 +26,7 @@ # Local imports from lib2to3.pgen2 import driver as pgen2_driver from lib2to3.pgen2 import tokenize -from ..pgen2.parse import ParseError +from lib2to3.pgen2.parse import ParseError from lib2to3.pygram import python_symbols as syms diff --git a/Lib/lib2to3/tests/test_pytree.py b/Lib/test/test_lib2to3/test_pytree.py similarity index 100% rename from Lib/lib2to3/tests/test_pytree.py rename to Lib/test/test_lib2to3/test_pytree.py diff --git a/Lib/lib2to3/tests/test_refactor.py b/Lib/test/test_lib2to3/test_refactor.py similarity index 100% rename from Lib/lib2to3/tests/test_refactor.py rename to Lib/test/test_lib2to3/test_refactor.py diff --git a/Lib/lib2to3/tests/test_util.py b/Lib/test/test_lib2to3/test_util.py similarity index 100% rename from Lib/lib2to3/tests/test_util.py rename to Lib/test/test_lib2to3/test_util.py diff --git a/Lib/test/test_linecache.py b/Lib/test/test_linecache.py index c6e2dadbb25e1f..72dd40136cfdb2 100644 --- a/Lib/test/test_linecache.py +++ b/Lib/test/test_linecache.py @@ -73,12 +73,10 @@ class GetLineTestsBadData(TempFile): # file_byte_string = b'Bad data goes here' def test_getline(self): - self.assertRaises((SyntaxError, UnicodeDecodeError), - linecache.getline, self.file_name, 1) + self.assertEqual(linecache.getline(self.file_name, 1), '') def test_getlines(self): - self.assertRaises((SyntaxError, UnicodeDecodeError), - linecache.getlines, self.file_name) + self.assertEqual(linecache.getlines(self.file_name), []) class EmptyFile(GetLineTestsGoodData, unittest.TestCase): @@ -92,9 +90,11 @@ class SingleEmptyLine(GetLineTestsGoodData, unittest.TestCase): class GoodUnicode(GetLineTestsGoodData, unittest.TestCase): file_list = ['á\n', 'b\n', 'abcdef\n', 'ááááá\n'] +class BadUnicode_NoDeclaration(GetLineTestsBadData, unittest.TestCase): + file_byte_string = b'\n\x80abc' -class BadUnicode(GetLineTestsBadData, unittest.TestCase): - file_byte_string = b'\x80abc' +class BadUnicode_WithDeclaration(GetLineTestsBadData, unittest.TestCase): + file_byte_string = b'# coding=utf-8\n\x80abc' class LineCacheTests(unittest.TestCase): diff --git a/Lib/test/test_lltrace.py b/Lib/test/test_lltrace.py index 5d175ce57b179e..7cf89846f8a727 100644 --- a/Lib/test/test_lltrace.py +++ b/Lib/test/test_lltrace.py @@ -1,5 +1,4 @@ import dis -import sys import textwrap import unittest diff --git a/Lib/test/test_locale.py b/Lib/test/test_locale.py index bc8a7a35fbf2dc..b0d7998559759e 100644 --- a/Lib/test/test_locale.py +++ b/Lib/test/test_locale.py @@ -141,18 +141,9 @@ class BaseFormattingTest(object): # Utility functions for formatting tests # - def _test_formatfunc(self, format, value, out, func, **format_opts): - self.assertEqual( - func(format, value, **format_opts), out) - - def _test_format(self, format, value, out, **format_opts): - with check_warnings(('', DeprecationWarning)): - self._test_formatfunc(format, value, out, - func=locale.format, **format_opts) - def _test_format_string(self, format, value, out, **format_opts): - self._test_formatfunc(format, value, out, - func=locale.format_string, **format_opts) + self.assertEqual( + locale.format_string(format, value, **format_opts), out) def _test_currency(self, value, out, **format_opts): self.assertEqual(locale.currency(value, **format_opts), out) @@ -166,44 +157,40 @@ def setUp(self): self.sep = locale.localeconv()['thousands_sep'] def test_grouping(self): - self._test_format("%f", 1024, grouping=1, out='1%s024.000000' % self.sep) - self._test_format("%f", 102, grouping=1, out='102.000000') - self._test_format("%f", -42, grouping=1, out='-42.000000') - self._test_format("%+f", -42, grouping=1, out='-42.000000') + self._test_format_string("%f", 1024, grouping=1, out='1%s024.000000' % self.sep) + self._test_format_string("%f", 102, grouping=1, out='102.000000') + self._test_format_string("%f", -42, grouping=1, out='-42.000000') + self._test_format_string("%+f", -42, grouping=1, out='-42.000000') def test_grouping_and_padding(self): - self._test_format("%20.f", -42, grouping=1, out='-42'.rjust(20)) + self._test_format_string("%20.f", -42, grouping=1, out='-42'.rjust(20)) if self.sep: - self._test_format("%+10.f", -4200, grouping=1, + self._test_format_string("%+10.f", -4200, grouping=1, out=('-4%s200' % self.sep).rjust(10)) - self._test_format("%-10.f", -4200, grouping=1, + self._test_format_string("%-10.f", -4200, grouping=1, out=('-4%s200' % self.sep).ljust(10)) def test_integer_grouping(self): - self._test_format("%d", 4200, grouping=True, out='4%s200' % self.sep) - self._test_format("%+d", 4200, grouping=True, out='+4%s200' % self.sep) - self._test_format("%+d", -4200, grouping=True, out='-4%s200' % self.sep) + self._test_format_string("%d", 4200, grouping=True, out='4%s200' % self.sep) + self._test_format_string("%+d", 4200, grouping=True, out='+4%s200' % self.sep) + self._test_format_string("%+d", -4200, grouping=True, out='-4%s200' % self.sep) def test_integer_grouping_and_padding(self): - self._test_format("%10d", 4200, grouping=True, + self._test_format_string("%10d", 4200, grouping=True, out=('4%s200' % self.sep).rjust(10)) - self._test_format("%-10d", -4200, grouping=True, + self._test_format_string("%-10d", -4200, grouping=True, out=('-4%s200' % self.sep).ljust(10)) def test_simple(self): - self._test_format("%f", 1024, grouping=0, out='1024.000000') - self._test_format("%f", 102, grouping=0, out='102.000000') - self._test_format("%f", -42, grouping=0, out='-42.000000') - self._test_format("%+f", -42, grouping=0, out='-42.000000') + self._test_format_string("%f", 1024, grouping=0, out='1024.000000') + self._test_format_string("%f", 102, grouping=0, out='102.000000') + self._test_format_string("%f", -42, grouping=0, out='-42.000000') + self._test_format_string("%+f", -42, grouping=0, out='-42.000000') def test_padding(self): - self._test_format("%20.f", -42, grouping=0, out='-42'.rjust(20)) - self._test_format("%+10.f", -4200, grouping=0, out='-4200'.rjust(10)) - self._test_format("%-10.f", 4200, grouping=0, out='4200'.ljust(10)) - - def test_format_deprecation(self): - with self.assertWarns(DeprecationWarning): - locale.format("%-10.f", 4200, grouping=True) + self._test_format_string("%20.f", -42, grouping=0, out='-42'.rjust(20)) + self._test_format_string("%+10.f", -4200, grouping=0, out='-4200'.rjust(10)) + self._test_format_string("%-10.f", 4200, grouping=0, out='4200'.ljust(10)) def test_complex_formatting(self): # Spaces in formatting string @@ -230,20 +217,9 @@ def test_complex_formatting(self): out='int 1%s000 float 1%s000.00 str str' % (self.sep, self.sep)) - -class TestFormatPatternArg(unittest.TestCase): - # Test handling of pattern argument of format - - def test_onlyOnePattern(self): - with check_warnings(('', DeprecationWarning)): - # Issue 2522: accept exactly one % pattern, and no extra chars. - self.assertRaises(ValueError, locale.format, "%f\n", 'foo') - self.assertRaises(ValueError, locale.format, "%f\r", 'foo') - self.assertRaises(ValueError, locale.format, "%f\r\n", 'foo') - self.assertRaises(ValueError, locale.format, " %f", 'foo') - self.assertRaises(ValueError, locale.format, "%fg", 'foo') - self.assertRaises(ValueError, locale.format, "%^g", 'foo') - self.assertRaises(ValueError, locale.format, "%f%%", 'foo') + self._test_format_string("total=%i%%", 100, out='total=100%') + self._test_format_string("newline: %i\n", 3, out='newline: 3\n') + self._test_format_string("extra: %ii", 3, out='extra: 3i') class TestLocaleFormatString(unittest.TestCase): @@ -292,45 +268,45 @@ class TestCNumberFormatting(CCookedTest, BaseFormattingTest): # Test number formatting with a cooked "C" locale. def test_grouping(self): - self._test_format("%.2f", 12345.67, grouping=True, out='12345.67') + self._test_format_string("%.2f", 12345.67, grouping=True, out='12345.67') def test_grouping_and_padding(self): - self._test_format("%9.2f", 12345.67, grouping=True, out=' 12345.67') + self._test_format_string("%9.2f", 12345.67, grouping=True, out=' 12345.67') class TestFrFRNumberFormatting(FrFRCookedTest, BaseFormattingTest): # Test number formatting with a cooked "fr_FR" locale. def test_decimal_point(self): - self._test_format("%.2f", 12345.67, out='12345,67') + self._test_format_string("%.2f", 12345.67, out='12345,67') def test_grouping(self): - self._test_format("%.2f", 345.67, grouping=True, out='345,67') - self._test_format("%.2f", 12345.67, grouping=True, out='12 345,67') + self._test_format_string("%.2f", 345.67, grouping=True, out='345,67') + self._test_format_string("%.2f", 12345.67, grouping=True, out='12 345,67') def test_grouping_and_padding(self): - self._test_format("%6.2f", 345.67, grouping=True, out='345,67') - self._test_format("%7.2f", 345.67, grouping=True, out=' 345,67') - self._test_format("%8.2f", 12345.67, grouping=True, out='12 345,67') - self._test_format("%9.2f", 12345.67, grouping=True, out='12 345,67') - self._test_format("%10.2f", 12345.67, grouping=True, out=' 12 345,67') - self._test_format("%-6.2f", 345.67, grouping=True, out='345,67') - self._test_format("%-7.2f", 345.67, grouping=True, out='345,67 ') - self._test_format("%-8.2f", 12345.67, grouping=True, out='12 345,67') - self._test_format("%-9.2f", 12345.67, grouping=True, out='12 345,67') - self._test_format("%-10.2f", 12345.67, grouping=True, out='12 345,67 ') + self._test_format_string("%6.2f", 345.67, grouping=True, out='345,67') + self._test_format_string("%7.2f", 345.67, grouping=True, out=' 345,67') + self._test_format_string("%8.2f", 12345.67, grouping=True, out='12 345,67') + self._test_format_string("%9.2f", 12345.67, grouping=True, out='12 345,67') + self._test_format_string("%10.2f", 12345.67, grouping=True, out=' 12 345,67') + self._test_format_string("%-6.2f", 345.67, grouping=True, out='345,67') + self._test_format_string("%-7.2f", 345.67, grouping=True, out='345,67 ') + self._test_format_string("%-8.2f", 12345.67, grouping=True, out='12 345,67') + self._test_format_string("%-9.2f", 12345.67, grouping=True, out='12 345,67') + self._test_format_string("%-10.2f", 12345.67, grouping=True, out='12 345,67 ') def test_integer_grouping(self): - self._test_format("%d", 200, grouping=True, out='200') - self._test_format("%d", 4200, grouping=True, out='4 200') + self._test_format_string("%d", 200, grouping=True, out='200') + self._test_format_string("%d", 4200, grouping=True, out='4 200') def test_integer_grouping_and_padding(self): - self._test_format("%4d", 4200, grouping=True, out='4 200') - self._test_format("%5d", 4200, grouping=True, out='4 200') - self._test_format("%10d", 4200, grouping=True, out='4 200'.rjust(10)) - self._test_format("%-4d", 4200, grouping=True, out='4 200') - self._test_format("%-5d", 4200, grouping=True, out='4 200') - self._test_format("%-10d", 4200, grouping=True, out='4 200'.ljust(10)) + self._test_format_string("%4d", 4200, grouping=True, out='4 200') + self._test_format_string("%5d", 4200, grouping=True, out='4 200') + self._test_format_string("%10d", 4200, grouping=True, out='4 200'.rjust(10)) + self._test_format_string("%-4d", 4200, grouping=True, out='4 200') + self._test_format_string("%-5d", 4200, grouping=True, out='4 200') + self._test_format_string("%-10d", 4200, grouping=True, out='4 200'.ljust(10)) def test_currency(self): euro = '\u20ac' diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py index 1c5e8523754cac..d70bfd6b09e13d 100644 --- a/Lib/test/test_logging.py +++ b/Lib/test/test_logging.py @@ -1,4 +1,4 @@ -# Copyright 2001-2021 by Vinay Sajip. All Rights Reserved. +# Copyright 2001-2022 by Vinay Sajip. All Rights Reserved. # # Permission to use, copy, modify, and distribute this software and its # documentation for any purpose and without fee is hereby granted, @@ -16,7 +16,7 @@ """Test harness for the logging module. Run all tests. -Copyright (C) 2001-2021 Vinay Sajip. All Rights Reserved. +Copyright (C) 2001-2022 Vinay Sajip. All Rights Reserved. """ import logging import logging.handlers @@ -29,6 +29,7 @@ import pathlib import pickle import io +import itertools import gc import json import os @@ -60,9 +61,10 @@ from socketserver import (ThreadingUDPServer, DatagramRequestHandler, ThreadingTCPServer, StreamRequestHandler) +with warnings.catch_warnings(): + from . import smtpd asyncore = warnings_helper.import_deprecated('asyncore') -smtpd = warnings_helper.import_deprecated('smtpd') try: @@ -467,6 +469,51 @@ def log_at_all_levels(self, logger): for lvl in LEVEL_RANGE: logger.log(lvl, self.next_message()) + def test_handler_filter_replaces_record(self): + def replace_message(record: logging.LogRecord): + record = copy.copy(record) + record.msg = "new message!" + return record + + # Set up a logging hierarchy such that "child" and it's handler + # (and thus `replace_message()`) always get called before + # propagating up to "parent". + # Then we can confirm that `replace_message()` was able to + # replace the log record without having a side effect on + # other loggers or handlers. + parent = logging.getLogger("parent") + child = logging.getLogger("parent.child") + stream_1 = io.StringIO() + stream_2 = io.StringIO() + handler_1 = logging.StreamHandler(stream_1) + handler_2 = logging.StreamHandler(stream_2) + handler_2.addFilter(replace_message) + parent.addHandler(handler_1) + child.addHandler(handler_2) + + child.info("original message") + handler_1.flush() + handler_2.flush() + self.assertEqual(stream_1.getvalue(), "original message\n") + self.assertEqual(stream_2.getvalue(), "new message!\n") + + def test_logging_filter_replaces_record(self): + records = set() + + class RecordingFilter(logging.Filter): + def filter(self, record: logging.LogRecord): + records.add(id(record)) + return copy.copy(record) + + logger = logging.getLogger("logger") + logger.setLevel(logging.INFO) + logger.addFilter(RecordingFilter()) + logger.addFilter(RecordingFilter()) + + logger.info("msg") + + self.assertEqual(2, len(records)) + def test_logger_filter(self): # Filter at logger level. self.root_logger.setLevel(VERBOSE) @@ -1178,6 +1225,35 @@ def test_flush_on_close(self): # assert that no new lines have been added self.assert_log_lines(lines) # no change + def test_shutdown_flush_on_close(self): + """ + Test that the flush-on-close configuration is respected by the + shutdown method. + """ + self.mem_logger.debug(self.next_message()) + self.assert_log_lines([]) + self.mem_logger.info(self.next_message()) + self.assert_log_lines([]) + # Default behaviour is to flush on close. Check that it happens. + logging.shutdown(handlerList=[logging.weakref.ref(self.mem_hdlr)]) + lines = [ + ('DEBUG', '1'), + ('INFO', '2'), + ] + self.assert_log_lines(lines) + # Now configure for flushing not to be done on close. + self.mem_hdlr = logging.handlers.MemoryHandler(10, logging.WARNING, + self.root_hdlr, + False) + self.mem_logger.addHandler(self.mem_hdlr) + self.mem_logger.debug(self.next_message()) + self.assert_log_lines(lines) # no change + self.mem_logger.info(self.next_message()) + self.assert_log_lines(lines) # no change + # assert that no new lines have been added after shutdown + logging.shutdown(handlerList=[logging.weakref.ref(self.mem_hdlr)]) + self.assert_log_lines(lines) # no change + @threading_helper.requires_working_threading() def test_race_between_set_target_and_flush(self): class MockRaceConditionHandler: @@ -1211,6 +1287,9 @@ class ExceptionFormatter(logging.Formatter): def formatException(self, ei): return "Got a [%s]" % ei[0].__name__ +def closeFileHandler(h, fn): + h.close() + os.remove(fn) class ConfigFileTest(BaseTest): @@ -1594,10 +1673,6 @@ def test_config7_ok(self): def test_config8_ok(self): - def cleanup(h1, fn): - h1.close() - os.remove(fn) - with self.check_no_resource_warning(): fn = make_temp_file(".log", "test_logging-X-") @@ -1612,7 +1687,7 @@ def cleanup(h1, fn): self.apply_config(config8) handler = logging.root.handlers[0] - self.addCleanup(cleanup, handler, fn) + self.addCleanup(closeFileHandler, handler, fn) def test_logger_disabling(self): self.apply_config(self.disable_test) @@ -1783,12 +1858,6 @@ def test_noserver(self): time.sleep(self.sock_hdlr.retryTime - now + 0.001) self.root_logger.error('Nor this') -def _get_temp_domain_socket(): - fn = make_temp_file(prefix='test_logging_', suffix='.sock') - # 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") class UnixSocketHandlerTest(SocketHandlerTest): @@ -1800,13 +1869,10 @@ class UnixSocketHandlerTest(SocketHandlerTest): def setUp(self): # override the definition in the base class - self.address = _get_temp_domain_socket() + self.address = socket_helper.create_unix_domain_name() + self.addCleanup(os_helper.unlink, self.address) SocketHandlerTest.setUp(self) - def tearDown(self): - SocketHandlerTest.tearDown(self) - os_helper.unlink(self.address) - @support.requires_working_socket() @threading_helper.requires_working_threading() class DatagramHandlerTest(BaseTest): @@ -1883,13 +1949,10 @@ class UnixDatagramHandlerTest(DatagramHandlerTest): def setUp(self): # override the definition in the base class - self.address = _get_temp_domain_socket() + self.address = socket_helper.create_unix_domain_name() + self.addCleanup(os_helper.unlink, self.address) DatagramHandlerTest.setUp(self) - def tearDown(self): - DatagramHandlerTest.tearDown(self) - os_helper.unlink(self.address) - @support.requires_working_socket() @threading_helper.requires_working_threading() class SysLogHandlerTest(BaseTest): @@ -1920,7 +1983,7 @@ def setUp(self): self.sl_hdlr = hcls((server.server_address[0], server.port)) else: self.sl_hdlr = hcls(server.server_address) - self.log_output = '' + self.log_output = b'' self.root_logger.removeHandler(self.root_logger.handlers[0]) self.root_logger.addHandler(self.sl_hdlr) self.handled = threading.Event() @@ -1977,13 +2040,10 @@ class UnixSysLogHandlerTest(SysLogHandlerTest): def setUp(self): # override the definition in the base class - self.address = _get_temp_domain_socket() + self.address = socket_helper.create_unix_domain_name() + self.addCleanup(os_helper.unlink, self.address) SysLogHandlerTest.setUp(self) - def tearDown(self): - SysLogHandlerTest.tearDown(self) - os_helper.unlink(self.address) - @unittest.skipUnless(socket_helper.IPV6_ENABLED, 'IPv6 support required for this test.') class IPv6SysLogHandlerTest(SysLogHandlerTest): @@ -2233,6 +2293,21 @@ def handlerFunc(): class CustomHandler(logging.StreamHandler): pass +class CustomListener(logging.handlers.QueueListener): + pass + +class CustomQueue(queue.Queue): + pass + +def queueMaker(): + return queue.Queue() + +def listenerMaker(arg1, arg2, respect_handler_level=False): + def func(queue, *handlers, **kwargs): + kwargs.setdefault('respect_handler_level', respect_handler_level) + return CustomListener(queue, *handlers, **kwargs) + return func + class ConfigDictTest(BaseTest): """Reading logging config from a dictionary.""" @@ -2836,7 +2911,7 @@ class ConfigDictTest(BaseTest): }, } - out_of_order = { + bad_format = { "version": 1, "formatters": { "mySimpleFormatter": { @@ -2856,7 +2931,7 @@ class ConfigDictTest(BaseTest): "formatter": "mySimpleFormatter", "target": "fileGlobal", "level": "DEBUG" - } + } }, "loggers": { "mymodule": { @@ -2975,13 +3050,36 @@ class ConfigDictTest(BaseTest): } } + config_queue_handler = { + 'version': 1, + 'handlers' : { + 'h1' : { + 'class': 'logging.FileHandler', + }, + # key is before depended on handlers to test that deferred config works + 'ah' : { + 'class': 'logging.handlers.QueueHandler', + 'handlers': ['h1'] + }, + }, + "root": { + "level": "DEBUG", + "handlers": ["ah"] + } + } + def apply_config(self, conf): logging.config.dictConfig(conf) + def check_handler(self, name, cls): + h = logging.getHandlerByName(name) + self.assertIsInstance(h, cls) + def test_config0_ok(self): # A simple config which overrides the default settings. with support.captured_stdout() as output: self.apply_config(self.config0) + self.check_handler('hand1', logging.StreamHandler) logger = logging.getLogger() # Won't output anything logger.info(self.next_message()) @@ -3028,6 +3126,7 @@ def test_config4_ok(self): # A config specifying a custom formatter class. with support.captured_stdout() as output: self.apply_config(self.config4) + self.check_handler('hand1', logging.StreamHandler) #logger = logging.getLogger() try: raise RuntimeError() @@ -3056,6 +3155,7 @@ def test_config4a_ok(self): def test_config5_ok(self): self.test_config1_ok(config=self.config5) + self.check_handler('hand1', CustomHandler) def test_config6_failure(self): self.assertRaises(Exception, self.apply_config, self.config6) @@ -3075,6 +3175,7 @@ def test_config7_ok(self): self.assert_log_lines([]) with support.captured_stdout() as output: self.apply_config(self.config7) + self.check_handler('hand1', logging.StreamHandler) logger = logging.getLogger("compiler.parser") self.assertTrue(logger.disabled) logger = logging.getLogger("compiler.lexer") @@ -3104,6 +3205,7 @@ def test_config_8_ok(self): self.assert_log_lines([]) with support.captured_stdout() as output: self.apply_config(self.config8) + self.check_handler('hand1', logging.StreamHandler) logger = logging.getLogger("compiler.parser") self.assertFalse(logger.disabled) # Both will output a message @@ -3125,6 +3227,7 @@ def test_config_8_ok(self): def test_config_8a_ok(self): with support.captured_stdout() as output: self.apply_config(self.config1a) + self.check_handler('hand1', logging.StreamHandler) logger = logging.getLogger("compiler.parser") # See issue #11424. compiler-hyphenated sorts # between compiler and compiler.xyz and this @@ -3145,6 +3248,7 @@ def test_config_8a_ok(self): self.assert_log_lines([]) with support.captured_stdout() as output: self.apply_config(self.config8a) + self.check_handler('hand1', logging.StreamHandler) logger = logging.getLogger("compiler.parser") self.assertFalse(logger.disabled) # Both will output a message @@ -3168,6 +3272,7 @@ def test_config_8a_ok(self): def test_config_9_ok(self): with support.captured_stdout() as output: self.apply_config(self.config9) + self.check_handler('hand1', logging.StreamHandler) logger = logging.getLogger("compiler.parser") # Nothing will be output since both handler and logger are set to WARNING logger.info(self.next_message()) @@ -3186,6 +3291,7 @@ def test_config_9_ok(self): def test_config_10_ok(self): with support.captured_stdout() as output: self.apply_config(self.config10) + self.check_handler('hand1', logging.StreamHandler) logger = logging.getLogger("compiler.parser") logger.warning(self.next_message()) logger = logging.getLogger('compiler') @@ -3222,10 +3328,6 @@ def test_config14_ok(self): def test_config15_ok(self): - def cleanup(h1, fn): - h1.close() - os.remove(fn) - with self.check_no_resource_warning(): fn = make_temp_file(".log", "test_logging-X-") @@ -3247,7 +3349,7 @@ def cleanup(h1, fn): self.apply_config(config) handler = logging.root.handlers[0] - self.addCleanup(cleanup, handler, fn) + self.addCleanup(closeFileHandler, handler, fn) def setup_via_listener(self, text, verify=None): text = text.encode("utf-8") @@ -3281,6 +3383,7 @@ def setup_via_listener(self, text, verify=None): def test_listen_config_10_ok(self): with support.captured_stdout() as output: self.setup_via_listener(json.dumps(self.config10)) + self.check_handler('hand1', logging.StreamHandler) logger = logging.getLogger("compiler.parser") logger.warning(self.next_message()) logger = logging.getLogger('compiler') @@ -3375,11 +3478,11 @@ def verify_reverse(stuff): ('ERROR', '2'), ], pat=r"^[\w.]+ -> (\w+): (\d+)$") - def test_out_of_order(self): - self.assertRaises(ValueError, self.apply_config, self.out_of_order) + def test_bad_format(self): + self.assertRaises(ValueError, self.apply_config, self.bad_format) - def test_out_of_order_with_dollar_style(self): - config = copy.deepcopy(self.out_of_order) + def test_bad_format_with_dollar_style(self): + config = copy.deepcopy(self.bad_format) config['formatters']['mySimpleFormatter']['format'] = "${asctime} (${name}) ${levelname}: ${message}" self.apply_config(config) @@ -3387,6 +3490,8 @@ def test_out_of_order_with_dollar_style(self): self.assertIsInstance(handler.target, logging.Handler) self.assertIsInstance(handler.formatter._style, logging.StringTemplateStyle) + self.assertEqual(sorted(logging.getHandlerNames()), + ['bufferGlobal', 'fileGlobal']) def test_custom_formatter_class_with_validate(self): self.apply_config(self.custom_formatter_class_validate) @@ -3402,7 +3507,7 @@ def test_custom_formatter_class_with_validate2_with_wrong_fmt(self): config = self.custom_formatter_class_validate.copy() config['formatters']['form1']['style'] = "$" - # Exception should not be raise as we have configured 'validate' to False + # Exception should not be raised as we have configured 'validate' to False self.apply_config(config) handler = logging.getLogger("my_test_logger_custom_formatter").handlers[0] self.assertIsInstance(handler.formatter, ExceptionFormatter) @@ -3503,6 +3608,104 @@ class NotAFilter: pass {"version": 1, "root": {"level": "DEBUG", "filters": [filter_]}} ) + def do_queuehandler_configuration(self, qspec, lspec): + cd = copy.deepcopy(self.config_queue_handler) + fn = make_temp_file('.log', 'test_logging-cqh-') + cd['handlers']['h1']['filename'] = fn + if qspec is not None: + cd['handlers']['ah']['queue'] = qspec + if lspec is not None: + cd['handlers']['ah']['listener'] = lspec + qh = None + try: + self.apply_config(cd) + qh = logging.getHandlerByName('ah') + self.assertEqual(sorted(logging.getHandlerNames()), ['ah', 'h1']) + self.assertIsNotNone(qh.listener) + qh.listener.start() + logging.debug('foo') + logging.info('bar') + logging.warning('baz') + + # Need to let the listener thread finish its work + while support.sleeping_retry(support.LONG_TIMEOUT, + "queue not empty"): + if qh.listener.queue.empty(): + break + + # wait until the handler completed its last task + qh.listener.queue.join() + + with open(fn, encoding='utf-8') as f: + data = f.read().splitlines() + self.assertEqual(data, ['foo', 'bar', 'baz']) + finally: + if qh: + qh.listener.stop() + h = logging.getHandlerByName('h1') + if h: + self.addCleanup(closeFileHandler, h, fn) + else: + self.addCleanup(os.remove, fn) + + @threading_helper.requires_working_threading() + def test_config_queue_handler(self): + q = CustomQueue() + dq = { + '()': __name__ + '.CustomQueue', + 'maxsize': 10 + } + dl = { + '()': __name__ + '.listenerMaker', + 'arg1': None, + 'arg2': None, + 'respect_handler_level': True + } + qvalues = (None, __name__ + '.queueMaker', __name__ + '.CustomQueue', dq, q) + lvalues = (None, __name__ + '.CustomListener', dl, CustomListener) + for qspec, lspec in itertools.product(qvalues, lvalues): + self.do_queuehandler_configuration(qspec, lspec) + + # Some failure cases + qvalues = (None, 4, int, '', 'foo') + lvalues = (None, 4, int, '', 'bar') + for qspec, lspec in itertools.product(qvalues, lvalues): + if lspec is None and qspec is None: + continue + with self.assertRaises(ValueError) as ctx: + self.do_queuehandler_configuration(qspec, lspec) + msg = str(ctx.exception) + self.assertEqual(msg, "Unable to configure handler 'ah'") + + def test_90195(self): + # See gh-90195 + config = { + 'version': 1, + 'disable_existing_loggers': False, + 'handlers': { + 'console': { + 'level': 'DEBUG', + 'class': 'logging.StreamHandler', + }, + }, + 'loggers': { + 'a': { + 'level': 'DEBUG', + 'handlers': ['console'] + } + } + } + logger = logging.getLogger('a') + self.assertFalse(logger.disabled) + self.apply_config(config) + self.assertFalse(logger.disabled) + # Should disable all loggers ... + self.apply_config({'version': 1}) + self.assertTrue(logger.disabled) + del config['disable_existing_loggers'] + self.apply_config(config) + # Logger should be enabled, since explicitly mentioned + self.assertFalse(logger.disabled) class ManagerTest(BaseTest): def test_manager_loggerclass(self): @@ -3543,6 +3746,20 @@ def test_child_loggers(self): self.assertIs(c2, logging.getLogger('abc.def.ghi')) self.assertIs(c2, c3) + def test_get_children(self): + r = logging.getLogger() + l1 = logging.getLogger('foo') + l2 = logging.getLogger('foo.bar') + l3 = logging.getLogger('foo.bar.baz.bozz') + l4 = logging.getLogger('bar') + kids = r.getChildren() + expected = {l1, l4} + self.assertEqual(expected, kids & expected) # might be other kids for root + self.assertNotIn(l2, expected) + kids = l1.getChildren() + self.assertEqual({l2}, kids) + kids = l2.getChildren() + self.assertEqual(set(), kids) class DerivedLogRecord(logging.LogRecord): pass @@ -3664,7 +3881,7 @@ def test_queue_listener(self): @unittest.skipUnless(hasattr(logging.handlers, 'QueueListener'), 'logging.handlers.QueueListener required for this test') def test_queue_listener_with_StreamHandler(self): - # Test that traceback only appends once (bpo-34334). + # Test that traceback and stack-info only appends once (bpo-34334, bpo-46755). listener = logging.handlers.QueueListener(self.queue, self.root_hdlr) listener.start() try: @@ -3672,8 +3889,10 @@ def test_queue_listener_with_StreamHandler(self): except ZeroDivisionError as e: exc = e self.que_logger.exception(self.next_message(), exc_info=exc) + self.que_logger.error(self.next_message(), stack_info=True) listener.stop() self.assertEqual(self.stream.getvalue().strip().count('Traceback'), 1) + self.assertEqual(self.stream.getvalue().strip().count('Stack'), 1) @unittest.skipUnless(hasattr(logging.handlers, 'QueueListener'), 'logging.handlers.QueueListener required for this test') @@ -4085,6 +4304,14 @@ class NoMsecFormatter(logging.Formatter): f.converter = time.gmtime self.assertEqual(f.formatTime(r), '21/04/1993 08:03:00') + def test_issue_89047(self): + f = logging.Formatter(fmt='{asctime}.{msecs:03.0f} {message}', style='{', datefmt="%Y-%m-%d %H:%M:%S") + for i in range(2500): + time.sleep(0.0004) + r = logging.makeLogRecord({'msg': 'Message %d' % (i + 1)}) + s = f.format(r) + self.assertNotIn('.1000', s) + class TestBufferingFormatter(logging.BufferingFormatter): def formatHeader(self, records): @@ -4586,6 +4813,7 @@ async def _make_record_async(self, assertion): r = logging.makeLogRecord({}) assertion(r.taskName) + @support.requires_working_socket() def test_taskName_with_asyncio_imported(self): try: make_record = self._make_record_async @@ -4597,6 +4825,7 @@ def test_taskName_with_asyncio_imported(self): finally: asyncio.set_event_loop_policy(None) + @support.requires_working_socket() def test_taskName_without_asyncio_imported(self): try: make_record = self._make_record_async @@ -4886,6 +5115,7 @@ def dummy_handle_error(record): # didn't write anything due to the encoding error self.assertEqual(data, r'') + @support.requires_working_socket() def test_log_taskName(self): async def log_record(): logging.warning('hello world') diff --git a/Lib/test/test_mailcap.py b/Lib/test/test_mailcap.py index d3995b14720e66..819dc80a266433 100644 --- a/Lib/test/test_mailcap.py +++ b/Lib/test/test_mailcap.py @@ -3,7 +3,6 @@ import sys import test.support import unittest -import warnings from test.support import os_helper from test.support import warnings_helper @@ -128,7 +127,8 @@ def test_subst(self): (["", "audio/*", "foo.txt"], ""), (["echo foo", "audio/*", "foo.txt"], "echo foo"), (["echo %s", "audio/*", "foo.txt"], "echo foo.txt"), - (["echo %t", "audio/*", "foo.txt"], "echo audio/*"), + (["echo %t", "audio/*", "foo.txt"], None), + (["echo %t", "audio/wav", "foo.txt"], "echo audio/wav"), (["echo \\%t", "audio/*", "foo.txt"], "echo %t"), (["echo foo", "audio/*", "foo.txt", plist], "echo foo"), (["echo %{total}", "audio/*", "foo.txt", plist], "echo 3") @@ -212,7 +212,10 @@ def test_findmatch(self): ('"An audio fragment"', audio_basic_entry)), ([c, "audio/*"], {"filename": fname}, - ("/usr/local/bin/showaudio audio/*", audio_entry)), + (None, None)), + ([c, "audio/wav"], + {"filename": fname}, + ("/usr/local/bin/showaudio audio/wav", audio_entry)), ([c, "message/external-body"], {"plist": plist}, ("showexternal /dev/null default john python.org /tmp foo bar", message_entry)) diff --git a/Lib/test/test_memoryview.py b/Lib/test/test_memoryview.py index d7e3f0c0effa69..0eb2a367603cfc 100644 --- a/Lib/test/test_memoryview.py +++ b/Lib/test/test_memoryview.py @@ -13,6 +13,7 @@ import io import copy import pickle +import struct from test.support import import_helper @@ -527,6 +528,14 @@ def test_ctypes_cast(self): m[2:] = memoryview(p6).cast(format)[2:] self.assertEqual(d.value, 0.6) + def test_half_float(self): + half_data = struct.pack('eee', 0.0, -1.5, 1.5) + float_data = struct.pack('fff', 0.0, -1.5, 1.5) + half_view = memoryview(half_data).cast('e') + float_view = memoryview(float_data).cast('f') + self.assertEqual(half_view.nbytes * 2, float_view.nbytes) + self.assertListEqual(half_view.tolist(), float_view.tolist()) + def test_memoryview_hex(self): # Issue #9951: memoryview.hex() segfaults with non-contiguous buffers. x = b'0' * 200000 @@ -545,6 +554,107 @@ def test_pickle(self): with self.assertRaises(TypeError): pickle.dumps(m, proto) + def test_use_released_memory(self): + # gh-92888: Previously it was possible to use a memoryview even after + # backing buffer is freed in certain cases. This tests that those + # cases raise an exception. + size = 128 + def release(): + m.release() + nonlocal ba + ba = bytearray(size) + class MyIndex: + def __index__(self): + release() + return 4 + class MyFloat: + def __float__(self): + release() + return 4.25 + class MyBool: + def __bool__(self): + release() + return True + + ba = None + m = memoryview(bytearray(b'\xff'*size)) + with self.assertRaises(ValueError): + m[MyIndex()] + + ba = None + m = memoryview(bytearray(b'\xff'*size)) + self.assertEqual(list(m[:MyIndex()]), [255] * 4) + + ba = None + m = memoryview(bytearray(b'\xff'*size)) + self.assertEqual(list(m[MyIndex():8]), [255] * 4) + + ba = None + m = memoryview(bytearray(b'\xff'*size)).cast('B', (64, 2)) + with self.assertRaisesRegex(ValueError, "operation forbidden"): + m[MyIndex(), 0] + + ba = None + m = memoryview(bytearray(b'\xff'*size)).cast('B', (2, 64)) + with self.assertRaisesRegex(ValueError, "operation forbidden"): + m[0, MyIndex()] + + ba = None + m = memoryview(bytearray(b'\xff'*size)) + with self.assertRaisesRegex(ValueError, "operation forbidden"): + m[MyIndex()] = 42 + self.assertEqual(ba[:8], b'\0'*8) + + ba = None + m = memoryview(bytearray(b'\xff'*size)) + with self.assertRaisesRegex(ValueError, "operation forbidden"): + m[:MyIndex()] = b'spam' + self.assertEqual(ba[:8], b'\0'*8) + + ba = None + m = memoryview(bytearray(b'\xff'*size)) + with self.assertRaisesRegex(ValueError, "operation forbidden"): + m[MyIndex():8] = b'spam' + self.assertEqual(ba[:8], b'\0'*8) + + ba = None + m = memoryview(bytearray(b'\xff'*size)).cast('B', (64, 2)) + with self.assertRaisesRegex(ValueError, "operation forbidden"): + m[MyIndex(), 0] = 42 + self.assertEqual(ba[8:16], b'\0'*8) + ba = None + m = memoryview(bytearray(b'\xff'*size)).cast('B', (2, 64)) + with self.assertRaisesRegex(ValueError, "operation forbidden"): + m[0, MyIndex()] = 42 + self.assertEqual(ba[:8], b'\0'*8) + + ba = None + m = memoryview(bytearray(b'\xff'*size)) + with self.assertRaisesRegex(ValueError, "operation forbidden"): + m[0] = MyIndex() + self.assertEqual(ba[:8], b'\0'*8) + + for fmt in 'bhilqnBHILQN': + with self.subTest(fmt=fmt): + ba = None + m = memoryview(bytearray(b'\xff'*size)).cast(fmt) + with self.assertRaisesRegex(ValueError, "operation forbidden"): + m[0] = MyIndex() + self.assertEqual(ba[:8], b'\0'*8) + + for fmt in 'fd': + with self.subTest(fmt=fmt): + ba = None + m = memoryview(bytearray(b'\xff'*size)).cast(fmt) + with self.assertRaisesRegex(ValueError, "operation forbidden"): + m[0] = MyFloat() + self.assertEqual(ba[:8], b'\0'*8) + + ba = None + m = memoryview(bytearray(b'\xff'*size)).cast('?') + with self.assertRaisesRegex(ValueError, "operation forbidden"): + m[0] = MyBool() + self.assertEqual(ba[:8], b'\0'*8) if __name__ == "__main__": unittest.main() diff --git a/Lib/test/test_minidom.py b/Lib/test/test_minidom.py index 97620258d82f6b..ef38c362103fc6 100644 --- a/Lib/test/test_minidom.py +++ b/Lib/test/test_minidom.py @@ -9,7 +9,7 @@ import pyexpat import xml.dom.minidom -from xml.dom.minidom import parse, Node, Document, parseString +from xml.dom.minidom import parse, Attr, Node, Document, parseString from xml.dom.minidom import getDOMImplementation from xml.parsers.expat import ExpatError @@ -77,6 +77,20 @@ def testParseFromTextFile(self): dom.unlink() self.confirm(isinstance(dom, Document)) + def testAttrModeSetsParamsAsAttrs(self): + attr = Attr("qName", "namespaceURI", "localName", "prefix") + self.assertEqual(attr.name, "qName") + self.assertEqual(attr.namespaceURI, "namespaceURI") + self.assertEqual(attr.prefix, "prefix") + self.assertEqual(attr.localName, "localName") + + def testAttrModeSetsNonOptionalAttrs(self): + attr = Attr("qName", "namespaceURI", None, "prefix") + self.assertEqual(attr.name, "qName") + self.assertEqual(attr.namespaceURI, "namespaceURI") + self.assertEqual(attr.prefix, "prefix") + self.assertEqual(attr.localName, attr.name) + def testGetElementsByTagName(self): dom = parse(tstfile) self.confirm(dom.getElementsByTagName("LI") == \ diff --git a/Lib/test/test_module.py b/Lib/test/test_module.py index f72177dda3702a..6c83d76c8e3c68 100644 --- a/Lib/test/test_module.py +++ b/Lib/test/test_module.py @@ -8,10 +8,10 @@ import sys ModuleType = type(sys) + class FullLoader: - @classmethod - def module_repr(cls, m): - return "<module '{}' (crafted)>".format(m.__name__) + pass + class BareLoader: pass @@ -236,7 +236,7 @@ def test_module_repr_with_full_loader(self): # Yes, a class not an instance. m.__loader__ = FullLoader self.assertEqual( - repr(m), "<module 'foo' (crafted)>") + repr(m), "<module 'foo' (<class 'test.test_module.FullLoader'>)>") def test_module_repr_with_bare_loader_and_filename(self): # Because the loader has no module_repr(), use the file name. @@ -252,7 +252,7 @@ def test_module_repr_with_full_loader_and_filename(self): # Yes, a class not an instance. m.__loader__ = FullLoader m.__file__ = '/tmp/foo.py' - self.assertEqual(repr(m), "<module 'foo' (crafted)>") + self.assertEqual(repr(m), "<module 'foo' from '/tmp/foo.py'>") def test_module_repr_builtin(self): self.assertEqual(repr(sys), "<module 'sys' (built-in)>") diff --git a/Lib/test/test_modulefinder.py b/Lib/test/test_modulefinder.py index ca1058b8d4087c..b64e684f80599f 100644 --- a/Lib/test/test_modulefinder.py +++ b/Lib/test/test_modulefinder.py @@ -10,9 +10,6 @@ import modulefinder -TEST_DIR = tempfile.mkdtemp() -TEST_PATH = [TEST_DIR, os.path.dirname(tempfile.__file__)] - # Each test description is a list of 5 items: # # 1. a module name that will be imported by modulefinder @@ -23,9 +20,9 @@ # about because they MAY be not found # 5. a string specifying packages to create; the format is obvious imo. # -# Each package will be created in TEST_DIR, and TEST_DIR will be +# Each package will be created in test_dir, and test_dir will be # removed after the tests again. -# Modulefinder searches in a path that contains TEST_DIR, plus +# Modulefinder searches in a path that contains test_dir, plus # the standard Lib directory. maybe_test = [ @@ -300,7 +297,7 @@ def open_file(path): return open(path, 'wb') -def create_package(source): +def create_package(test_dir, source): ofi = None try: for line in source.splitlines(): @@ -313,41 +310,45 @@ def create_package(source): ofi.close() if type(line) == bytes: line = line.decode('utf-8') - ofi = open_file(os.path.join(TEST_DIR, line.strip())) + ofi = open_file(os.path.join(test_dir, line.strip())) finally: if ofi: ofi.close() class ModuleFinderTest(unittest.TestCase): + def setUp(self): + self.test_dir = tempfile.mkdtemp() + self.test_path = [self.test_dir, os.path.dirname(tempfile.__file__)] + + def tearDown(self): + shutil.rmtree(self.test_dir) + def _do_test(self, info, report=False, debug=0, replace_paths=[], modulefinder_class=modulefinder.ModuleFinder): import_this, modules, missing, maybe_missing, source = info - create_package(source) - try: - mf = modulefinder_class(path=TEST_PATH, debug=debug, - replace_paths=replace_paths) - mf.import_hook(import_this) - if report: - mf.report() -## # This wouldn't work in general when executed several times: -## opath = sys.path[:] -## sys.path = TEST_PATH -## try: -## __import__(import_this) -## except: -## import traceback; traceback.print_exc() -## sys.path = opath -## return - modules = sorted(set(modules)) - found = sorted(mf.modules) - # check if we found what we expected, not more, not less - self.assertEqual(found, modules) - - # check for missing and maybe missing modules - bad, maybe = mf.any_missing_maybe() - self.assertEqual(bad, missing) - self.assertEqual(maybe, maybe_missing) - finally: - shutil.rmtree(TEST_DIR) + create_package(self.test_dir, source) + mf = modulefinder_class(path=self.test_path, debug=debug, + replace_paths=replace_paths) + mf.import_hook(import_this) + if report: + mf.report() +## # This wouldn't work in general when executed several times: +## opath = sys.path[:] +## sys.path = self.test_path +## try: +## __import__(import_this) +## except: +## import traceback; traceback.print_exc() +## sys.path = opath +## return + modules = sorted(set(modules)) + found = sorted(mf.modules) + # check if we found what we expected, not more, not less + self.assertEqual(found, modules) + + # check for missing and maybe missing modules + bad, maybe = mf.any_missing_maybe() + self.assertEqual(bad, missing) + self.assertEqual(maybe, maybe_missing) def test_package(self): self._do_test(package_test) @@ -380,7 +381,7 @@ def test_same_name_as_bad(self): self._do_test(same_name_as_bad_test) def test_bytecode(self): - base_path = os.path.join(TEST_DIR, 'a') + base_path = os.path.join(self.test_dir, 'a') source_path = base_path + importlib.machinery.SOURCE_SUFFIXES[0] bytecode_path = base_path + importlib.machinery.BYTECODE_SUFFIXES[0] with open_file(source_path) as file: @@ -390,8 +391,8 @@ def test_bytecode(self): self._do_test(bytecode_test) def test_replace_paths(self): - old_path = os.path.join(TEST_DIR, 'a', 'module.py') - new_path = os.path.join(TEST_DIR, 'a', 'spam.py') + old_path = os.path.join(self.test_dir, 'a', 'module.py') + new_path = os.path.join(self.test_dir, 'a', 'spam.py') with support.captured_stdout() as output: self._do_test(maybe_test, debug=2, replace_paths=[(old_path, new_path)]) diff --git a/Lib/test/test_multiprocessing_main_handling.py b/Lib/test/test_multiprocessing_main_handling.py index 510d8d3a7597e1..6b30a89316703b 100644 --- a/Lib/test/test_multiprocessing_main_handling.py +++ b/Lib/test/test_multiprocessing_main_handling.py @@ -40,6 +40,7 @@ import sys import time from multiprocessing import Pool, set_start_method +from test import support # We use this __main__ defined function in the map call below in order to # check that multiprocessing in correctly running the unguarded @@ -59,13 +60,12 @@ def f(x): results = [] with Pool(5) as pool: pool.map_async(f, [1, 2, 3], callback=results.extend) - start_time = time.monotonic() - while not results: - time.sleep(0.05) - # up to 1 min to report the results - dt = time.monotonic() - start_time - if dt > 60.0: - raise RuntimeError("Timed out waiting for results (%.1f sec)" % dt) + + # up to 1 min to report the results + for _ in support.sleeping_retry(support.LONG_TIMEOUT, + "Timed out waiting for results"): + if results: + break results.sort() print(start_method, "->", results) @@ -86,19 +86,18 @@ def f(x): import sys import time from multiprocessing import Pool, set_start_method +from test import support start_method = sys.argv[1] set_start_method(start_method) results = [] with Pool(5) as pool: pool.map_async(int, [1, 4, 9], callback=results.extend) - start_time = time.monotonic() - while not results: - time.sleep(0.05) - # up to 1 min to report the results - dt = time.monotonic() - start_time - if dt > 60.0: - raise RuntimeError("Timed out waiting for results (%.1f sec)" % dt) + # up to 1 min to report the results + for _ in support.sleeping_retry(support.LONG_TIMEOUT, + "Timed out waiting for results"): + if results: + break results.sort() print(start_method, "->", results) diff --git a/Lib/test/test_netrc.py b/Lib/test/test_netrc.py index 05a23e5e8a3ce2..573d636de956d1 100644 --- a/Lib/test/test_netrc.py +++ b/Lib/test/test_netrc.py @@ -272,6 +272,7 @@ def test_comment_at_end_of_machine_line_pass_has_hash(self): @unittest.skipUnless(os.name == 'posix', 'POSIX only test') @unittest.skipIf(pwd is None, 'security check requires pwd module') + @os_helper.skip_unless_working_chmod def test_security(self): # This test is incomplete since we are normally not run as root and # therefore can't test the file ownership being wrong. diff --git a/Lib/test/test_nis.py b/Lib/test/test_nis.py index 797c9023ad34d4..f327ecf3d1de45 100644 --- a/Lib/test/test_nis.py +++ b/Lib/test/test_nis.py @@ -1,4 +1,3 @@ -from test import support from test.support import import_helper import unittest import warnings diff --git a/Lib/test/test_ntpath.py b/Lib/test/test_ntpath.py index 7211ed861762b4..d51946322c8056 100644 --- a/Lib/test/test_ntpath.py +++ b/Lib/test/test_ntpath.py @@ -117,6 +117,31 @@ def test_splitdrive(self): # Issue #19911: UNC part containing U+0130 self.assertEqual(ntpath.splitdrive('//conky/MOUNTPOİNT/foo/bar'), ('//conky/MOUNTPOİNT', '/foo/bar')) + # gh-81790: support device namespace, including UNC drives. + tester('ntpath.splitdrive("//?/c:")', ("//?/c:", "")) + tester('ntpath.splitdrive("//?/c:/")', ("//?/c:", "/")) + tester('ntpath.splitdrive("//?/c:/dir")', ("//?/c:", "/dir")) + tester('ntpath.splitdrive("//?/UNC")', ("", "//?/UNC")) + tester('ntpath.splitdrive("//?/UNC/")', ("", "//?/UNC/")) + tester('ntpath.splitdrive("//?/UNC/server/")', ("//?/UNC/server/", "")) + tester('ntpath.splitdrive("//?/UNC/server/share")', ("//?/UNC/server/share", "")) + tester('ntpath.splitdrive("//?/UNC/server/share/dir")', ("//?/UNC/server/share", "/dir")) + tester('ntpath.splitdrive("//?/VOLUME{00000000-0000-0000-0000-000000000000}/spam")', + ('//?/VOLUME{00000000-0000-0000-0000-000000000000}', '/spam')) + tester('ntpath.splitdrive("//?/BootPartition/")', ("//?/BootPartition", "/")) + + tester('ntpath.splitdrive("\\\\?\\c:")', ("\\\\?\\c:", "")) + tester('ntpath.splitdrive("\\\\?\\c:\\")', ("\\\\?\\c:", "\\")) + tester('ntpath.splitdrive("\\\\?\\c:\\dir")', ("\\\\?\\c:", "\\dir")) + tester('ntpath.splitdrive("\\\\?\\UNC")', ("", "\\\\?\\UNC")) + tester('ntpath.splitdrive("\\\\?\\UNC\\")', ("", "\\\\?\\UNC\\")) + tester('ntpath.splitdrive("\\\\?\\UNC\\server\\")', ("\\\\?\\UNC\\server\\", "")) + tester('ntpath.splitdrive("\\\\?\\UNC\\server\\share")', ("\\\\?\\UNC\\server\\share", "")) + tester('ntpath.splitdrive("\\\\?\\UNC\\server\\share\\dir")', + ("\\\\?\\UNC\\server\\share", "\\dir")) + tester('ntpath.splitdrive("\\\\?\\VOLUME{00000000-0000-0000-0000-000000000000}\\spam")', + ('\\\\?\\VOLUME{00000000-0000-0000-0000-000000000000}', '\\spam')) + tester('ntpath.splitdrive("\\\\?\\BootPartition\\")', ("\\\\?\\BootPartition", "\\")) def test_split(self): tester('ntpath.split("c:\\foo\\bar")', ('c:\\foo', 'bar')) @@ -852,6 +877,8 @@ def _check_function(self, func): def test_path_normcase(self): self._check_function(self.path.normcase) + if sys.platform == 'win32': + self.assertEqual(ntpath.normcase('\u03a9\u2126'), 'ωΩ') def test_path_isabs(self): self._check_function(self.path.isabs) diff --git a/Lib/test/test_numeric_tower.py b/Lib/test/test_numeric_tower.py index c54dedb8b793a0..9cd85e13634c2b 100644 --- a/Lib/test/test_numeric_tower.py +++ b/Lib/test/test_numeric_tower.py @@ -14,6 +14,27 @@ _PyHASH_MODULUS = sys.hash_info.modulus _PyHASH_INF = sys.hash_info.inf + +class DummyIntegral(int): + """Dummy Integral class to test conversion of the Rational to float.""" + + def __mul__(self, other): + return DummyIntegral(super().__mul__(other)) + __rmul__ = __mul__ + + def __truediv__(self, other): + return NotImplemented + __rtruediv__ = __truediv__ + + @property + def numerator(self): + return DummyIntegral(self) + + @property + def denominator(self): + return DummyIntegral(1) + + class HashTest(unittest.TestCase): def check_equal_hash(self, x, y): # check both that x and y are equal and that their hashes are equal @@ -121,6 +142,13 @@ def test_fractions(self): self.assertEqual(hash(F(7*_PyHASH_MODULUS, 1)), 0) self.assertEqual(hash(F(-_PyHASH_MODULUS, 1)), 0) + # The numbers ABC doesn't enforce that the "true" division + # of integers produces a float. This tests that the + # Rational.__float__() method has required type conversions. + x = F(DummyIntegral(1), DummyIntegral(2), _normalize=False) + self.assertRaises(TypeError, lambda: x.numerator/x.denominator) + self.assertEqual(float(x), 0.5) + def test_hash_normalization(self): # Test for a bug encountered while changing long_hash. # diff --git a/Lib/test/test_opcache.py b/Lib/test/test_opcache.py index 61f337d70ea787..5c032d59b13f16 100644 --- a/Lib/test/test_opcache.py +++ b/Lib/test/test_opcache.py @@ -1,5 +1,6 @@ import unittest + class TestLoadAttrCache(unittest.TestCase): def test_descriptor_added_after_optimization(self): class Descriptor: @@ -21,3 +22,346 @@ def f(o): Descriptor.__set__ = lambda *args: None self.assertEqual(f(o), 2) + + def test_metaclass_descriptor_added_after_optimization(self): + class Descriptor: + pass + + class Metaclass(type): + attribute = Descriptor() + + class Class(metaclass=Metaclass): + attribute = True + + def __get__(self, instance, owner): + return False + + def __set__(self, instance, value): + return None + + def f(): + return Class.attribute + + for _ in range(1025): + self.assertTrue(f()) + + Descriptor.__get__ = __get__ + Descriptor.__set__ = __set__ + + for _ in range(1025): + self.assertFalse(f()) + + def test_metaclass_descriptor_shadows_class_attribute(self): + class Metaclass(type): + @property + def attribute(self): + return True + + class Class(metaclass=Metaclass): + attribute = False + + def f(): + return Class.attribute + + for _ in range(1025): + self.assertTrue(f()) + + def test_metaclass_set_descriptor_after_optimization(self): + class Metaclass(type): + pass + + class Class(metaclass=Metaclass): + attribute = True + + @property + def attribute(self): + return False + + def f(): + return Class.attribute + + for _ in range(1025): + self.assertTrue(f()) + + Metaclass.attribute = attribute + + for _ in range(1025): + self.assertFalse(f()) + + def test_metaclass_del_descriptor_after_optimization(self): + class Metaclass(type): + @property + def attribute(self): + return True + + class Class(metaclass=Metaclass): + attribute = False + + def f(): + return Class.attribute + + for _ in range(1025): + self.assertTrue(f()) + + del Metaclass.attribute + + for _ in range(1025): + self.assertFalse(f()) + + def test_type_descriptor_shadows_attribute_method(self): + class Class: + mro = None + + def f(): + return Class.mro + + for _ in range(1025): + self.assertIsNone(f()) + + def test_type_descriptor_shadows_attribute_member(self): + class Class: + __base__ = None + + def f(): + return Class.__base__ + + for _ in range(1025): + self.assertIs(f(), object) + + def test_type_descriptor_shadows_attribute_getset(self): + class Class: + __name__ = "Spam" + + def f(): + return Class.__name__ + + for _ in range(1025): + self.assertEqual(f(), "Class") + + def test_metaclass_getattribute(self): + class Metaclass(type): + def __getattribute__(self, name): + return True + + class Class(metaclass=Metaclass): + attribute = False + + def f(): + return Class.attribute + + for _ in range(1025): + self.assertTrue(f()) + + def test_metaclass_swap(self): + class OldMetaclass(type): + @property + def attribute(self): + return True + + class NewMetaclass(type): + @property + def attribute(self): + return False + + class Class(metaclass=OldMetaclass): + pass + + def f(): + return Class.attribute + + for _ in range(1025): + self.assertTrue(f()) + + Class.__class__ = NewMetaclass + + for _ in range(1025): + self.assertFalse(f()) + + +class TestLoadMethodCache(unittest.TestCase): + def test_descriptor_added_after_optimization(self): + class Descriptor: + pass + + class Class: + attribute = Descriptor() + + def __get__(self, instance, owner): + return lambda: False + + def __set__(self, instance, value): + return None + + def attribute(): + return True + + instance = Class() + instance.attribute = attribute + + def f(): + return instance.attribute() + + for _ in range(1025): + self.assertTrue(f()) + + Descriptor.__get__ = __get__ + Descriptor.__set__ = __set__ + + for _ in range(1025): + self.assertFalse(f()) + + def test_metaclass_descriptor_added_after_optimization(self): + class Descriptor: + pass + + class Metaclass(type): + attribute = Descriptor() + + class Class(metaclass=Metaclass): + def attribute(): + return True + + def __get__(self, instance, owner): + return lambda: False + + def __set__(self, instance, value): + return None + + def f(): + return Class.attribute() + + for _ in range(1025): + self.assertTrue(f()) + + Descriptor.__get__ = __get__ + Descriptor.__set__ = __set__ + + for _ in range(1025): + self.assertFalse(f()) + + def test_metaclass_descriptor_shadows_class_attribute(self): + class Metaclass(type): + @property + def attribute(self): + return lambda: True + + class Class(metaclass=Metaclass): + def attribute(): + return False + + def f(): + return Class.attribute() + + for _ in range(1025): + self.assertTrue(f()) + + def test_metaclass_set_descriptor_after_optimization(self): + class Metaclass(type): + pass + + class Class(metaclass=Metaclass): + def attribute(): + return True + + @property + def attribute(self): + return lambda: False + + def f(): + return Class.attribute() + + for _ in range(1025): + self.assertTrue(f()) + + Metaclass.attribute = attribute + + for _ in range(1025): + self.assertFalse(f()) + + def test_metaclass_del_descriptor_after_optimization(self): + class Metaclass(type): + @property + def attribute(self): + return lambda: True + + class Class(metaclass=Metaclass): + def attribute(): + return False + + def f(): + return Class.attribute() + + for _ in range(1025): + self.assertTrue(f()) + + del Metaclass.attribute + + for _ in range(1025): + self.assertFalse(f()) + + def test_type_descriptor_shadows_attribute_method(self): + class Class: + def mro(): + return ["Spam", "eggs"] + + def f(): + return Class.mro() + + for _ in range(1025): + self.assertEqual(f(), ["Spam", "eggs"]) + + def test_type_descriptor_shadows_attribute_member(self): + class Class: + def __base__(): + return "Spam" + + def f(): + return Class.__base__() + + for _ in range(1025): + self.assertNotEqual(f(), "Spam") + + def test_metaclass_getattribute(self): + class Metaclass(type): + def __getattribute__(self, name): + return lambda: True + + class Class(metaclass=Metaclass): + def attribute(): + return False + + def f(): + return Class.attribute() + + for _ in range(1025): + self.assertTrue(f()) + + def test_metaclass_swap(self): + class OldMetaclass(type): + @property + def attribute(self): + return lambda: True + + class NewMetaclass(type): + @property + def attribute(self): + return lambda: False + + class Class(metaclass=OldMetaclass): + pass + + def f(): + return Class.attribute() + + for _ in range(1025): + self.assertTrue(f()) + + Class.__class__ = NewMetaclass + + for _ in range(1025): + self.assertFalse(f()) + + +if __name__ == "__main__": + import unittest + unittest.main() diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py index 009bb5aec35a4b..2dafb78ebe0ec2 100644 --- a/Lib/test/test_os.py +++ b/Lib/test/test_os.py @@ -186,6 +186,9 @@ def test_access(self): @unittest.skipIf( support.is_emscripten, "Test is unstable under Emscripten." ) + @unittest.skipIf( + support.is_wasi, "WASI does not support dup." + ) def test_closerange(self): first = os.open(os_helper.TESTFN, os.O_CREAT|os.O_RDWR) # We must allocate two consecutive file descriptors, otherwise @@ -1588,7 +1591,10 @@ def test_makedir(self): 'dir5', 'dir6') os.makedirs(path) - @unittest.skipIf(support.is_emscripten, "Emscripten's umask is a stub.") + @unittest.skipIf( + support.is_emscripten or support.is_wasi, + "Emscripten's/WASI's umask is a stub." + ) def test_mode(self): with os_helper.temp_umask(0o002): base = os_helper.TESTFN @@ -1601,6 +1607,10 @@ def test_mode(self): self.assertEqual(os.stat(path).st_mode & 0o777, 0o555) self.assertEqual(os.stat(parent).st_mode & 0o777, 0o775) + @unittest.skipIf( + support.is_emscripten or support.is_wasi, + "Emscripten's/WASI's umask is a stub." + ) def test_exist_ok_existing_directory(self): path = os.path.join(os_helper.TESTFN, 'dir1') mode = 0o777 @@ -1615,6 +1625,10 @@ def test_exist_ok_existing_directory(self): # Issue #25583: A drive root could raise PermissionError on Windows os.makedirs(os.path.abspath('/'), exist_ok=True) + @unittest.skipIf( + support.is_emscripten or support.is_wasi, + "Emscripten's/WASI's umask is a stub." + ) def test_exist_ok_s_isgid_directory(self): path = os.path.join(os_helper.TESTFN, 'dir1') S_ISGID = stat.S_ISGID @@ -1664,7 +1678,7 @@ def tearDown(self): os.removedirs(path) -@unittest.skipUnless(hasattr(os, 'chown'), "Test needs chown") +@os_helper.skip_unless_working_chmod class ChownFileTests(unittest.TestCase): @classmethod @@ -3651,6 +3665,19 @@ def test_stty_match(self): raise self.assertEqual(expected, actual) + @unittest.skipUnless(sys.platform == 'win32', 'Windows specific test') + def test_windows_fd(self): + """Check if get_terminal_size() returns a meaningful value in Windows""" + try: + conout = open('conout$', 'w') + except OSError: + self.skipTest('failed to open conout$') + with conout: + size = os.get_terminal_size(conout.fileno()) + + self.assertGreaterEqual(size.columns, 0) + self.assertGreaterEqual(size.lines, 0) + @unittest.skipUnless(hasattr(os, 'memfd_create'), 'requires os.memfd_create') @support.requires_linux_version(3, 17) @@ -3778,7 +3805,6 @@ class Str(str): def test_oserror_filename(self): funcs = [ (self.filenames, os.chdir,), - (self.filenames, os.chmod, 0o777), (self.filenames, os.lstat,), (self.filenames, os.open, os.O_RDONLY), (self.filenames, os.rmdir,), @@ -3799,6 +3825,8 @@ def test_oserror_filename(self): (self.filenames, os.rename, "dst"), (self.filenames, os.replace, "dst"), )) + if os_helper.can_chmod(): + funcs.append((self.filenames, os.chmod, 0o777)) if hasattr(os, "chown"): funcs.append((self.filenames, os.chown, 0, 0)) if hasattr(os, "lchown"): @@ -3987,7 +4015,7 @@ class PathTConverterTests(unittest.TestCase): ('access', False, (os.F_OK,), None), ('chflags', False, (0,), None), ('lchflags', False, (0,), None), - ('open', False, (0,), getattr(os, 'close', None)), + ('open', False, (os.O_RDONLY,), getattr(os, 'close', None)), ] def test_path_t_converter(self): @@ -4359,6 +4387,7 @@ def test_fd(self): st = os.stat(entry.name, dir_fd=fd, follow_symlinks=False) self.assertEqual(entry.stat(follow_symlinks=False), st) + @unittest.skipIf(support.is_wasi, "WASI maps '' to cwd") def test_empty_path(self): self.assertRaises(FileNotFoundError, os.scandir, '') diff --git a/Lib/test/test_pathlib.py b/Lib/test/test_pathlib.py index 642dfebdcd1cbe..f324177ff85573 100644 --- a/Lib/test/test_pathlib.py +++ b/Lib/test/test_pathlib.py @@ -136,6 +136,10 @@ def test_parse_parts(self): check(['a', '/b', 'c'], ('', '\\', ['\\', 'b', 'c'])) check(['Z:/a', '/b', 'c'], ('Z:', '\\', ['Z:\\', 'b', 'c'])) check(['//?/Z:/a', '/b', 'c'], ('\\\\?\\Z:', '\\', ['\\\\?\\Z:\\', 'b', 'c'])) + # Joining with the same drive => the first path is appended to if + # the second path is relative. + check(['c:/a/b', 'c:x/y'], ('c:', '\\', ['c:\\', 'a', 'b', 'x', 'y'])) + check(['c:/a/b', 'c:/x/y'], ('c:', '\\', ['c:\\', 'x', 'y'])) def test_splitroot(self): f = self.flavour.splitroot @@ -465,6 +469,9 @@ def test_parents_common(self): self.assertEqual(par[0], P('/a/b')) self.assertEqual(par[1], P('/a')) self.assertEqual(par[2], P('/')) + self.assertEqual(par[-1], P('/')) + self.assertEqual(par[-2], P('/a')) + self.assertEqual(par[-3], P('/a/b')) self.assertEqual(par[0:1], (P('/a/b'),)) self.assertEqual(par[:2], (P('/a/b'), P('/a'))) self.assertEqual(par[:-1], (P('/a/b'), P('/a'))) @@ -472,6 +479,8 @@ def test_parents_common(self): self.assertEqual(par[::2], (P('/a/b'), P('/'))) self.assertEqual(par[::-1], (P('/'), P('/a'), P('/a/b'))) self.assertEqual(list(par), [P('/a/b'), P('/a'), P('/')]) + with self.assertRaises(IndexError): + par[-4] with self.assertRaises(IndexError): par[3] @@ -1897,6 +1906,7 @@ def test_with(self): with p: pass + @os_helper.skip_unless_working_chmod def test_chmod(self): p = self.cls(BASE) / 'fileA' mode = p.stat().st_mode @@ -1911,6 +1921,7 @@ def test_chmod(self): # On Windows, os.chmod does not follow symlinks (issue #15411) @only_posix + @os_helper.skip_unless_working_chmod def test_chmod_follow_symlinks_true(self): p = self.cls(BASE) / 'linkA' q = p.resolve() @@ -1926,6 +1937,7 @@ def test_chmod_follow_symlinks_true(self): # XXX also need a test for lchmod. + @os_helper.skip_unless_working_chmod def test_stat(self): p = self.cls(BASE) / 'fileA' st = p.stat() @@ -2286,10 +2298,12 @@ def test_is_file(self): self.assertIs((P / 'fileA\udfff').is_file(), False) self.assertIs((P / 'fileA\x00').is_file(), False) - @only_posix def test_is_mount(self): P = self.cls(BASE) - R = self.cls('/') # TODO: Work out Windows. + if os.name == 'nt': + R = self.cls('c:\\') + else: + R = self.cls('/') self.assertFalse((P / 'fileA').is_mount()) self.assertFalse((P / 'dirA').is_mount()) self.assertFalse((P / 'non-existing').is_mount()) @@ -2297,8 +2311,7 @@ def test_is_mount(self): self.assertTrue(R.is_mount()) if os_helper.can_symlink(): self.assertFalse((P / 'linkA').is_mount()) - self.assertIs(self.cls('/\udfff').is_mount(), False) - self.assertIs(self.cls('/\x00').is_mount(), False) + self.assertIs((R / '\udfff').is_mount(), False) def test_is_symlink(self): P = self.cls(BASE) @@ -2353,6 +2366,9 @@ def test_is_socket_false(self): @unittest.skipIf( is_emscripten, "Unix sockets are not implemented on Emscripten." ) + @unittest.skipIf( + is_wasi, "Cannot create socket on WASI." + ) def test_is_socket_true(self): P = self.cls(BASE, 'mysock') sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) @@ -2467,6 +2483,204 @@ def test_complex_symlinks_relative(self): def test_complex_symlinks_relative_dot_dot(self): self._check_complex_symlinks(os.path.join('dirA', '..')) +class WalkTests(unittest.TestCase): + + def setUp(self): + self.addCleanup(os_helper.rmtree, os_helper.TESTFN) + + # Build: + # TESTFN/ + # TEST1/ a file kid and two directory kids + # tmp1 + # SUB1/ a file kid and a directory kid + # tmp2 + # SUB11/ no kids + # SUB2/ a file kid and a dirsymlink kid + # tmp3 + # SUB21/ not readable + # tmp5 + # link/ a symlink to TEST2 + # broken_link + # broken_link2 + # broken_link3 + # TEST2/ + # tmp4 a lone file + self.walk_path = pathlib.Path(os_helper.TESTFN, "TEST1") + self.sub1_path = self.walk_path / "SUB1" + self.sub11_path = self.sub1_path / "SUB11" + self.sub2_path = self.walk_path / "SUB2" + sub21_path= self.sub2_path / "SUB21" + tmp1_path = self.walk_path / "tmp1" + tmp2_path = self.sub1_path / "tmp2" + tmp3_path = self.sub2_path / "tmp3" + tmp5_path = sub21_path / "tmp3" + self.link_path = self.sub2_path / "link" + t2_path = pathlib.Path(os_helper.TESTFN, "TEST2") + tmp4_path = pathlib.Path(os_helper.TESTFN, "TEST2", "tmp4") + broken_link_path = self.sub2_path / "broken_link" + broken_link2_path = self.sub2_path / "broken_link2" + broken_link3_path = self.sub2_path / "broken_link3" + + os.makedirs(self.sub11_path) + os.makedirs(self.sub2_path) + os.makedirs(sub21_path) + os.makedirs(t2_path) + + for path in tmp1_path, tmp2_path, tmp3_path, tmp4_path, tmp5_path: + with open(path, "x", encoding='utf-8') as f: + f.write(f"I'm {path} and proud of it. Blame test_pathlib.\n") + + if os_helper.can_symlink(): + os.symlink(os.path.abspath(t2_path), self.link_path) + os.symlink('broken', broken_link_path, True) + os.symlink(pathlib.Path('tmp3', 'broken'), broken_link2_path, True) + os.symlink(pathlib.Path('SUB21', 'tmp5'), broken_link3_path, True) + self.sub2_tree = (self.sub2_path, ["SUB21"], + ["broken_link", "broken_link2", "broken_link3", + "link", "tmp3"]) + else: + self.sub2_tree = (self.sub2_path, ["SUB21"], ["tmp3"]) + + if not is_emscripten: + # Emscripten fails with inaccessible directories. + os.chmod(sub21_path, 0) + try: + os.listdir(sub21_path) + except PermissionError: + self.addCleanup(os.chmod, sub21_path, stat.S_IRWXU) + else: + os.chmod(sub21_path, stat.S_IRWXU) + os.unlink(tmp5_path) + os.rmdir(sub21_path) + del self.sub2_tree[1][:1] + + def test_walk_topdown(self): + all = list(self.walk_path.walk()) + + self.assertEqual(len(all), 4) + # We can't know which order SUB1 and SUB2 will appear in. + # Not flipped: TESTFN, SUB1, SUB11, SUB2 + # flipped: TESTFN, SUB2, SUB1, SUB11 + flipped = all[0][1][0] != "SUB1" + all[0][1].sort() + all[3 - 2 * flipped][-1].sort() + all[3 - 2 * flipped][1].sort() + self.assertEqual(all[0], (self.walk_path, ["SUB1", "SUB2"], ["tmp1"])) + self.assertEqual(all[1 + flipped], (self.sub1_path, ["SUB11"], ["tmp2"])) + self.assertEqual(all[2 + flipped], (self.sub11_path, [], [])) + self.assertEqual(all[3 - 2 * flipped], self.sub2_tree) + + def test_walk_prune(self, walk_path=None): + if walk_path is None: + walk_path = self.walk_path + # Prune the search. + all = [] + for root, dirs, files in walk_path.walk(): + all.append((root, dirs, files)) + if 'SUB1' in dirs: + # Note that this also mutates the dirs we appended to all! + dirs.remove('SUB1') + + self.assertEqual(len(all), 2) + self.assertEqual(all[0], (self.walk_path, ["SUB2"], ["tmp1"])) + + all[1][-1].sort() + all[1][1].sort() + self.assertEqual(all[1], self.sub2_tree) + + def test_file_like_path(self): + self.test_walk_prune(FakePath(self.walk_path).__fspath__()) + + def test_walk_bottom_up(self): + all = list(self.walk_path.walk( top_down=False)) + + self.assertEqual(len(all), 4, all) + # We can't know which order SUB1 and SUB2 will appear in. + # Not flipped: SUB11, SUB1, SUB2, TESTFN + # flipped: SUB2, SUB11, SUB1, TESTFN + flipped = all[3][1][0] != "SUB1" + all[3][1].sort() + all[2 - 2 * flipped][-1].sort() + all[2 - 2 * flipped][1].sort() + self.assertEqual(all[3], + (self.walk_path, ["SUB1", "SUB2"], ["tmp1"])) + self.assertEqual(all[flipped], + (self.sub11_path, [], [])) + self.assertEqual(all[flipped + 1], + (self.sub1_path, ["SUB11"], ["tmp2"])) + self.assertEqual(all[2 - 2 * flipped], + self.sub2_tree) + + @os_helper.skip_unless_symlink + def test_walk_follow_symlinks(self): + walk_it = self.walk_path.walk(follow_symlinks=True) + for root, dirs, files in walk_it: + if root == self.link_path: + self.assertEqual(dirs, []) + self.assertEqual(files, ["tmp4"]) + break + else: + self.fail("Didn't follow symlink with follow_symlinks=True") + + @os_helper.skip_unless_symlink + def test_walk_symlink_location(self): + # Tests whether symlinks end up in filenames or dirnames depending + # on the `follow_symlinks` argument. + walk_it = self.walk_path.walk(follow_symlinks=False) + for root, dirs, files in walk_it: + if root == self.sub2_path: + self.assertIn("link", files) + break + else: + self.fail("symlink not found") + + walk_it = self.walk_path.walk(follow_symlinks=True) + for root, dirs, files in walk_it: + if root == self.sub2_path: + self.assertIn("link", dirs) + break + + def test_walk_bad_dir(self): + errors = [] + walk_it = self.walk_path.walk(on_error=errors.append) + root, dirs, files = next(walk_it) + self.assertEqual(errors, []) + dir1 = 'SUB1' + path1 = root / dir1 + path1new = (root / dir1).with_suffix(".new") + path1.rename(path1new) + try: + roots = [r for r, _, _ in walk_it] + self.assertTrue(errors) + self.assertNotIn(path1, roots) + self.assertNotIn(path1new, roots) + for dir2 in dirs: + if dir2 != dir1: + self.assertIn(root / dir2, roots) + finally: + path1new.rename(path1) + + def test_walk_many_open_files(self): + depth = 30 + base = pathlib.Path(os_helper.TESTFN, 'deep') + path = pathlib.Path(base, *(['d']*depth)) + path.mkdir(parents=True) + + iters = [base.walk(top_down=False) for _ in range(100)] + for i in range(depth + 1): + expected = (path, ['d'] if i else [], []) + for it in iters: + self.assertEqual(next(it), expected) + path = path.parent + + iters = [base.walk(top_down=True) for _ in range(100)] + path = base + for i in range(depth + 1): + expected = (path, ['d'] if i < depth else [], []) + for it in iters: + self.assertEqual(next(it), expected) + path = path / 'd' + class PathTest(_BasePathTest, unittest.TestCase): cls = pathlib.Path diff --git a/Lib/test/test_patma.py b/Lib/test/test_patma.py index 57d3b1ec701ca4..0ed54079c99b30 100644 --- a/Lib/test/test_patma.py +++ b/Lib/test/test_patma.py @@ -2654,6 +2654,20 @@ def get(key, default=None): self.assertEqual(y, 'bar') + def test_patma_249(self): + class C: + __attr = "eggs" # mangled to _C__attr + _Outer__attr = "bacon" + class Outer: + def f(self, x): + match x: + # looks up __attr, not _C__attr or _Outer__attr + case C(__attr=y): + return y + c = C() + setattr(c, "__attr", "spam") # setattr is needed because we're in a class scope + self.assertEqual(Outer().f(c), "spam") + class TestSyntaxErrors(unittest.TestCase): @@ -3151,6 +3165,27 @@ def f(command): # 0 self.assertListEqual(self._trace(f, "go x"), [1, 2, 3]) self.assertListEqual(self._trace(f, "spam"), [1, 2, 3]) + def test_parser_deeply_nested_patterns(self): + # Deeply nested patterns can cause exponential backtracking when parsing. + # See gh-93671 for more information. + + levels = 100 + + patterns = [ + "A" + "(" * levels + ")" * levels, + "{1:" * levels + "1" + "}" * levels, + "[" * levels + "1" + "]" * levels, + ] + + for pattern in patterns: + with self.subTest(pattern): + code = inspect.cleandoc(""" + match None: + case {}: + pass + """.format(pattern)) + compile(code, "<string>", "exec") + if __name__ == "__main__": """ diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py index 0141b739c25440..55c3283e26b1e9 100644 --- a/Lib/test/test_pdb.py +++ b/Lib/test/test_pdb.py @@ -1363,6 +1363,117 @@ def test_pdb_issue_43318(): 4 """ +def test_pdb_issue_gh_91742(): + """See GH-91742 + + >>> def test_function(): + ... __author__ = "pi" + ... __version__ = "3.14" + ... + ... def about(): + ... '''About''' + ... print(f"Author: {__author__!r}", + ... f"Version: {__version__!r}", + ... sep=" ") + ... + ... import pdb; pdb.Pdb(nosigint=True, readrc=False).set_trace() + ... about() + + + >>> reset_Breakpoint() + >>> with PdbTestInput([ # doctest: +NORMALIZE_WHITESPACE + ... 'step', + ... 'next', + ... 'next', + ... 'jump 5', + ... 'continue' + ... ]): + ... test_function() + > <doctest test.test_pdb.test_pdb_issue_gh_91742[0]>(12)test_function() + -> about() + (Pdb) step + --Call-- + > <doctest test.test_pdb.test_pdb_issue_gh_91742[0]>(5)about() + -> def about(): + (Pdb) next + > <doctest test.test_pdb.test_pdb_issue_gh_91742[0]>(7)about() + -> print(f"Author: {__author__!r}", + (Pdb) next + > <doctest test.test_pdb.test_pdb_issue_gh_91742[0]>(8)about() + -> f"Version: {__version__!r}", + (Pdb) jump 5 + > <doctest test.test_pdb.test_pdb_issue_gh_91742[0]>(5)about() + -> def about(): + (Pdb) continue + Author: 'pi' Version: '3.14' + """ + +def test_pdb_issue_gh_94215(): + """See GH-94215 + + Check that frame_setlineno() does not leak references. + + >>> def test_function(): + ... def func(): + ... def inner(v): pass + ... inner( + ... 42 + ... ) + ... + ... import pdb; pdb.Pdb(nosigint=True, readrc=False).set_trace() + ... func() + + >>> reset_Breakpoint() + >>> with PdbTestInput([ # doctest: +NORMALIZE_WHITESPACE + ... 'step', + ... 'next', + ... 'next', + ... 'jump 3', + ... 'next', + ... 'next', + ... 'jump 3', + ... 'next', + ... 'next', + ... 'jump 3', + ... 'continue' + ... ]): + ... test_function() + > <doctest test.test_pdb.test_pdb_issue_gh_94215[0]>(9)test_function() + -> func() + (Pdb) step + --Call-- + > <doctest test.test_pdb.test_pdb_issue_gh_94215[0]>(2)func() + -> def func(): + (Pdb) next + > <doctest test.test_pdb.test_pdb_issue_gh_94215[0]>(3)func() + -> def inner(v): pass + (Pdb) next + > <doctest test.test_pdb.test_pdb_issue_gh_94215[0]>(4)func() + -> inner( + (Pdb) jump 3 + > <doctest test.test_pdb.test_pdb_issue_gh_94215[0]>(3)func() + -> def inner(v): pass + (Pdb) next + > <doctest test.test_pdb.test_pdb_issue_gh_94215[0]>(4)func() + -> inner( + (Pdb) next + > <doctest test.test_pdb.test_pdb_issue_gh_94215[0]>(5)func() + -> 42 + (Pdb) jump 3 + > <doctest test.test_pdb.test_pdb_issue_gh_94215[0]>(3)func() + -> def inner(v): pass + (Pdb) next + > <doctest test.test_pdb.test_pdb_issue_gh_94215[0]>(4)func() + -> inner( + (Pdb) next + > <doctest test.test_pdb.test_pdb_issue_gh_94215[0]>(5)func() + -> 42 + (Pdb) jump 3 + > <doctest test.test_pdb.test_pdb_issue_gh_94215[0]>(3)func() + -> def inner(v): pass + (Pdb) continue + """ + @support.requires_subprocess() class PdbTestCase(unittest.TestCase): @@ -1371,7 +1482,7 @@ def tearDown(self): @unittest.skipIf(sys.flags.safe_path, 'PYTHONSAFEPATH changes default sys.path') - def _run_pdb(self, pdb_args, commands): + def _run_pdb(self, pdb_args, commands, expected_returncode=0): self.addCleanup(os_helper.rmtree, '__pycache__') cmd = [sys.executable, '-m', 'pdb'] + pdb_args with subprocess.Popen( @@ -1384,15 +1495,20 @@ def _run_pdb(self, pdb_args, commands): stdout, stderr = proc.communicate(str.encode(commands)) stdout = stdout and bytes.decode(stdout) stderr = stderr and bytes.decode(stderr) + self.assertEqual( + proc.returncode, + expected_returncode, + f"Unexpected return code\nstdout: {stdout}\nstderr: {stderr}" + ) return stdout, stderr - def run_pdb_script(self, script, commands): + def run_pdb_script(self, script, commands, expected_returncode=0): """Run 'script' lines with pdb and the pdb 'commands'.""" filename = 'main.py' with open(filename, 'w') as f: f.write(textwrap.dedent(script)) self.addCleanup(os_helper.unlink, filename) - return self._run_pdb([filename], commands) + return self._run_pdb([filename], commands, expected_returncode) def run_pdb_module(self, script, commands): """Runs the script code as part of a module""" @@ -1598,7 +1714,9 @@ def test_issue16180(self): script = "def f: pass\n" commands = '' expected = "SyntaxError:" - stdout, stderr = self.run_pdb_script(script, commands) + stdout, stderr = self.run_pdb_script( + script, commands, expected_returncode=1 + ) self.assertIn(expected, stdout, '\n\nExpected:\n{}\nGot:\n{}\n' 'Fail to handle a syntax error in the debuggee.' @@ -1761,7 +1879,9 @@ def test_module_without_a_main(self): with open(init_file, 'w'): pass self.addCleanup(os_helper.rmtree, module_name) - stdout, stderr = self._run_pdb(['-m', module_name], "") + stdout, stderr = self._run_pdb( + ['-m', module_name], "", expected_returncode=1 + ) self.assertIn("ImportError: No module named t_main.__main__", stdout.splitlines()) @@ -1774,7 +1894,9 @@ def test_package_without_a_main(self): with open(modpath + '/__init__.py', 'w'): pass self.addCleanup(os_helper.rmtree, pkg_name) - stdout, stderr = self._run_pdb(['-m', modpath.replace('/', '.')], "") + stdout, stderr = self._run_pdb( + ['-m', modpath.replace('/', '.')], "", expected_returncode=1 + ) self.assertIn( "'t_pkg.t_main' is a package and cannot be directly executed", stdout) @@ -1963,6 +2085,24 @@ def test_issue42383(self): expected = '(Pdb) The correct file was executed' self.assertEqual(stdout.split('\n')[6].rstrip('\r'), expected) + def test_gh_94215_crash(self): + script = """\ + def func(): + def inner(v): pass + inner( + 42 + ) + func() + """ + commands = textwrap.dedent(""" + break func + continue + next + next + jump 2 + """) + stdout, stderr = self.run_pdb_script(script, commands) + self.assertFalse(stderr) class ChecklineTests(unittest.TestCase): def setUp(self): diff --git a/Lib/test/test_peepholer.py b/Lib/test/test_peepholer.py index dd993851bee922..ab45e3c52a039b 100644 --- a/Lib/test/test_peepholer.py +++ b/Lib/test/test_peepholer.py @@ -1,9 +1,10 @@ import dis from itertools import combinations, product +import sys import textwrap import unittest -from test.support.bytecode_helper import BytecodeTestCase +from test.support.bytecode_helper import BytecodeTestCase, CfgOptimizationTestCase def compile_pattern_with_fast_locals(pattern): @@ -76,9 +77,8 @@ def unot(x): if not x == 2: del x self.assertNotInBytecode(unot, 'UNARY_NOT') - self.assertNotInBytecode(unot, 'POP_JUMP_FORWARD_IF_FALSE') - self.assertNotInBytecode(unot, 'POP_JUMP_BACKWARD_IF_FALSE') - self.assertInBytecode(unot, 'POP_JUMP_FORWARD_IF_TRUE') + self.assertNotInBytecode(unot, 'POP_JUMP_IF_FALSE') + self.assertInBytecode(unot, 'POP_JUMP_IF_TRUE') self.check_lnotab(unot) def test_elim_inversion_of_is_or_in(self): @@ -406,7 +406,7 @@ def f(a, b, c): self.check_lnotab(f) self.assertNotInBytecode(f, 'JUMP_IF_FALSE_OR_POP') self.assertInBytecode(f, 'JUMP_IF_TRUE_OR_POP') - self.assertInBytecode(f, 'POP_JUMP_FORWARD_IF_FALSE') + self.assertInBytecode(f, 'POP_JUMP_IF_FALSE') # JUMP_IF_TRUE_OR_POP to JUMP_IF_FALSE_OR_POP --> POP_JUMP_IF_TRUE to non-jump def f(a, b, c): return ((a or b) @@ -415,7 +415,7 @@ def f(a, b, c): self.check_lnotab(f) self.assertNotInBytecode(f, 'JUMP_IF_TRUE_OR_POP') self.assertInBytecode(f, 'JUMP_IF_FALSE_OR_POP') - self.assertInBytecode(f, 'POP_JUMP_FORWARD_IF_TRUE') + self.assertInBytecode(f, 'POP_JUMP_IF_TRUE') def test_elim_jump_to_uncond_jump4(self): def f(): @@ -682,5 +682,260 @@ def test_bpo_45773_pop_jump_if_false(self): compile("while True or not spam: pass", "<test>", "exec") +class TestMarkingVariablesAsUnKnown(BytecodeTestCase): + + def setUp(self): + self.addCleanup(sys.settrace, sys.gettrace()) + sys.settrace(None) + + def test_load_fast_known_simple(self): + def f(): + x = 1 + y = x + x + self.assertInBytecode(f, 'LOAD_FAST') + + def test_load_fast_unknown_simple(self): + def f(): + if condition(): + x = 1 + print(x) + self.assertInBytecode(f, 'LOAD_FAST_CHECK') + self.assertNotInBytecode(f, 'LOAD_FAST') + + def test_load_fast_unknown_because_del(self): + def f(): + x = 1 + del x + print(x) + self.assertInBytecode(f, 'LOAD_FAST_CHECK') + self.assertNotInBytecode(f, 'LOAD_FAST') + + def test_load_fast_known_because_parameter(self): + def f1(x): + print(x) + self.assertInBytecode(f1, 'LOAD_FAST') + self.assertNotInBytecode(f1, 'LOAD_FAST_CHECK') + + def f2(*, x): + print(x) + self.assertInBytecode(f2, 'LOAD_FAST') + self.assertNotInBytecode(f2, 'LOAD_FAST_CHECK') + + def f3(*args): + print(args) + self.assertInBytecode(f3, 'LOAD_FAST') + self.assertNotInBytecode(f3, 'LOAD_FAST_CHECK') + + def f4(**kwargs): + print(kwargs) + self.assertInBytecode(f4, 'LOAD_FAST') + self.assertNotInBytecode(f4, 'LOAD_FAST_CHECK') + + def f5(x=0): + print(x) + self.assertInBytecode(f5, 'LOAD_FAST') + self.assertNotInBytecode(f5, 'LOAD_FAST_CHECK') + + def test_load_fast_known_because_already_loaded(self): + def f(): + if condition(): + x = 1 + print(x) + print(x) + self.assertInBytecode(f, 'LOAD_FAST_CHECK') + self.assertInBytecode(f, 'LOAD_FAST') + + def test_load_fast_known_multiple_branches(self): + def f(): + if condition(): + x = 1 + else: + x = 2 + print(x) + self.assertInBytecode(f, 'LOAD_FAST') + self.assertNotInBytecode(f, 'LOAD_FAST_CHECK') + + def test_load_fast_unknown_after_error(self): + def f(): + try: + res = 1 / 0 + except ZeroDivisionError: + pass + return res + # LOAD_FAST (known) still occurs in the no-exception branch. + # Assert that it doesn't occur in the LOAD_FAST_CHECK branch. + self.assertInBytecode(f, 'LOAD_FAST_CHECK') + + def test_load_fast_unknown_after_error_2(self): + def f(): + try: + 1 / 0 + except: + print(a, b, c, d, e, f, g) + a = b = c = d = e = f = g = 1 + self.assertInBytecode(f, 'LOAD_FAST_CHECK') + self.assertNotInBytecode(f, 'LOAD_FAST') + + def test_setting_lineno_adds_check(self): + code = textwrap.dedent("""\ + def f(): + x = 2 + L = 3 + L = 4 + for i in range(55): + x + 6 + del x + L = 8 + L = 9 + L = 10 + """) + ns = {} + exec(code, ns) + f = ns['f'] + self.assertInBytecode(f, "LOAD_FAST") + def trace(frame, event, arg): + if event == 'line' and frame.f_lineno == 9: + frame.f_lineno = 2 + sys.settrace(None) + return None + return trace + sys.settrace(trace) + f() + self.assertNotInBytecode(f, "LOAD_FAST") + + def make_function_with_no_checks(self): + code = textwrap.dedent("""\ + def f(): + x = 2 + L = 3 + L = 4 + L = 5 + if not L: + x + 7 + y = 2 + """) + ns = {} + exec(code, ns) + f = ns['f'] + self.assertInBytecode(f, "LOAD_FAST") + self.assertNotInBytecode(f, "LOAD_FAST_CHECK") + return f + + def test_deleting_local_adds_check(self): + f = self.make_function_with_no_checks() + def trace(frame, event, arg): + if event == 'line' and frame.f_lineno == 4: + del frame.f_locals["x"] + sys.settrace(None) + return None + return trace + sys.settrace(trace) + f() + self.assertNotInBytecode(f, "LOAD_FAST") + self.assertInBytecode(f, "LOAD_FAST_CHECK") + + def test_modifying_local_does_not_add_check(self): + f = self.make_function_with_no_checks() + def trace(frame, event, arg): + if event == 'line' and frame.f_lineno == 4: + frame.f_locals["x"] = 42 + sys.settrace(None) + return None + return trace + sys.settrace(trace) + f() + self.assertInBytecode(f, "LOAD_FAST") + self.assertNotInBytecode(f, "LOAD_FAST_CHECK") + + def test_initializing_local_does_not_add_check(self): + f = self.make_function_with_no_checks() + def trace(frame, event, arg): + if event == 'line' and frame.f_lineno == 4: + frame.f_locals["y"] = 42 + sys.settrace(None) + return None + return trace + sys.settrace(trace) + f() + self.assertInBytecode(f, "LOAD_FAST") + self.assertNotInBytecode(f, "LOAD_FAST_CHECK") + + +class DirectiCfgOptimizerTests(CfgOptimizationTestCase): + + def cfg_optimization_test(self, insts, expected_insts, + consts=None, expected_consts=None): + if expected_consts is None: + expected_consts = consts + opt_insts, opt_consts = self.get_optimized(insts, consts) + self.compareInstructions(opt_insts, expected_insts) + self.assertEqual(opt_consts, expected_consts) + + def test_conditional_jump_forward_non_const_condition(self): + insts = [ + ('LOAD_NAME', 1, 11), + ('POP_JUMP_IF_TRUE', lbl := self.Label(), 12), + ('LOAD_CONST', 2, 13), + lbl, + ('LOAD_CONST', 3, 14), + ] + expected = [ + ('LOAD_NAME', '1', 11), + ('POP_JUMP_IF_TRUE', lbl := self.Label(), 12), + ('LOAD_CONST', '2', 13), + lbl, + ('LOAD_CONST', '3', 14) + ] + self.cfg_optimization_test(insts, expected, consts=list(range(5))) + + def test_conditional_jump_forward_const_condition(self): + # The unreachable branch of the jump is removed, the jump + # becomes redundant and is replaced by a NOP (for the lineno) + + insts = [ + ('LOAD_CONST', 3, 11), + ('POP_JUMP_IF_TRUE', lbl := self.Label(), 12), + ('LOAD_CONST', 2, 13), + lbl, + ('LOAD_CONST', 3, 14), + ] + expected = [ + ('NOP', None, 11), + ('NOP', None, 12), + ('LOAD_CONST', '3', 14) + ] + self.cfg_optimization_test(insts, expected, consts=list(range(5))) + + def test_conditional_jump_backward_non_const_condition(self): + insts = [ + lbl1 := self.Label(), + ('LOAD_NAME', 1, 11), + ('POP_JUMP_IF_TRUE', lbl1, 12), + ('LOAD_CONST', 2, 13), + ] + expected = [ + lbl := self.Label(), + ('LOAD_NAME', '1', 11), + ('POP_JUMP_IF_TRUE', lbl, 12), + ('LOAD_CONST', '2', 13) + ] + self.cfg_optimization_test(insts, expected, consts=list(range(5))) + + def test_conditional_jump_backward_const_condition(self): + # The unreachable branch of the jump is removed + insts = [ + lbl1 := self.Label(), + ('LOAD_CONST', 1, 11), + ('POP_JUMP_IF_TRUE', lbl1, 12), + ('LOAD_CONST', 2, 13), + ] + expected = [ + lbl := self.Label(), + ('NOP', None, 11), + ('JUMP', lbl, 12) + ] + self.cfg_optimization_test(insts, expected, consts=list(range(5))) + + if __name__ == "__main__": unittest.main() diff --git a/Lib/test/test_perf_profiler.py b/Lib/test/test_perf_profiler.py new file mode 100644 index 00000000000000..2b977d78d39324 --- /dev/null +++ b/Lib/test/test_perf_profiler.py @@ -0,0 +1,348 @@ +import unittest +import subprocess +import sys +import sysconfig +import os +import pathlib +from test import support +from test.support.script_helper import ( + make_script, + assert_python_failure, + assert_python_ok, +) +from test.support.os_helper import temp_dir + + +if not support.has_subprocess_support: + raise unittest.SkipTest("test module requires subprocess") + + +def supports_trampoline_profiling(): + perf_trampoline = sysconfig.get_config_var("PY_HAVE_PERF_TRAMPOLINE") + if not perf_trampoline: + return False + return int(perf_trampoline) == 1 + + +if not supports_trampoline_profiling(): + raise unittest.SkipTest("perf trampoline profiling not supported") + + +class TestPerfTrampoline(unittest.TestCase): + def setUp(self): + super().setUp() + self.perf_files = set(pathlib.Path("/tmp/").glob("perf-*.map")) + + def tearDown(self) -> None: + super().tearDown() + files_to_delete = ( + set(pathlib.Path("/tmp/").glob("perf-*.map")) - self.perf_files + ) + for file in files_to_delete: + file.unlink() + + def test_trampoline_works(self): + code = """if 1: + def foo(): + pass + + def bar(): + foo() + + def baz(): + bar() + + baz() + """ + with temp_dir() as script_dir: + script = make_script(script_dir, "perftest", code) + with subprocess.Popen( + [sys.executable, "-Xperf", script], + text=True, + stderr=subprocess.PIPE, + stdout=subprocess.PIPE, + ) as process: + stdout, stderr = process.communicate() + + self.assertEqual(stderr, "") + self.assertEqual(stdout, "") + + perf_file = pathlib.Path(f"/tmp/perf-{process.pid}.map") + self.assertTrue(perf_file.exists()) + perf_file_contents = perf_file.read_text() + self.assertIn(f"py::foo:{script}", perf_file_contents) + self.assertIn(f"py::bar:{script}", perf_file_contents) + self.assertIn(f"py::baz:{script}", perf_file_contents) + + def test_trampoline_works_with_forks(self): + code = """if 1: + import os, sys + + def foo_fork(): + pass + + def bar_fork(): + foo_fork() + + def baz_fork(): + bar_fork() + + def foo(): + pid = os.fork() + if pid == 0: + print(os.getpid()) + baz_fork() + else: + _, status = os.waitpid(-1, 0) + sys.exit(status) + + def bar(): + foo() + + def baz(): + bar() + + baz() + """ + with temp_dir() as script_dir: + script = make_script(script_dir, "perftest", code) + with subprocess.Popen( + [sys.executable, "-Xperf", script], + text=True, + stderr=subprocess.PIPE, + stdout=subprocess.PIPE, + ) as process: + stdout, stderr = process.communicate() + + self.assertEqual(process.returncode, 0) + self.assertEqual(stderr, "") + child_pid = int(stdout.strip()) + perf_file = pathlib.Path(f"/tmp/perf-{process.pid}.map") + perf_child_file = pathlib.Path(f"/tmp/perf-{child_pid}.map") + self.assertTrue(perf_file.exists()) + self.assertTrue(perf_child_file.exists()) + + perf_file_contents = perf_file.read_text() + self.assertIn(f"py::foo:{script}", perf_file_contents) + self.assertIn(f"py::bar:{script}", perf_file_contents) + self.assertIn(f"py::baz:{script}", perf_file_contents) + + child_perf_file_contents = perf_child_file.read_text() + self.assertIn(f"py::foo_fork:{script}", child_perf_file_contents) + self.assertIn(f"py::bar_fork:{script}", child_perf_file_contents) + self.assertIn(f"py::baz_fork:{script}", child_perf_file_contents) + + def test_sys_api(self): + code = """if 1: + import sys + def foo(): + pass + + def spam(): + pass + + def bar(): + sys.deactivate_stack_trampoline() + foo() + sys.activate_stack_trampoline("perf") + spam() + + def baz(): + bar() + + sys.activate_stack_trampoline("perf") + baz() + """ + with temp_dir() as script_dir: + script = make_script(script_dir, "perftest", code) + with subprocess.Popen( + [sys.executable, script], + text=True, + stderr=subprocess.PIPE, + stdout=subprocess.PIPE, + ) as process: + stdout, stderr = process.communicate() + + self.assertEqual(stderr, "") + self.assertEqual(stdout, "") + + perf_file = pathlib.Path(f"/tmp/perf-{process.pid}.map") + self.assertTrue(perf_file.exists()) + perf_file_contents = perf_file.read_text() + self.assertNotIn(f"py::foo:{script}", perf_file_contents) + self.assertIn(f"py::spam:{script}", perf_file_contents) + self.assertIn(f"py::bar:{script}", perf_file_contents) + self.assertIn(f"py::baz:{script}", perf_file_contents) + + def test_sys_api_with_existing_trampoline(self): + code = """if 1: + import sys + sys.activate_stack_trampoline("perf") + sys.activate_stack_trampoline("perf") + """ + assert_python_ok("-c", code) + + def test_sys_api_with_invalid_trampoline(self): + code = """if 1: + import sys + sys.activate_stack_trampoline("invalid") + """ + rc, out, err = assert_python_failure("-c", code) + self.assertIn("invalid backend: invalid", err.decode()) + + def test_sys_api_get_status(self): + code = """if 1: + import sys + sys.activate_stack_trampoline("perf") + assert sys.is_stack_trampoline_active() is True + sys.deactivate_stack_trampoline() + assert sys.is_stack_trampoline_active() is False + """ + assert_python_ok("-c", code) + + +def is_unwinding_reliable(): + cflags = sysconfig.get_config_var("PY_CORE_CFLAGS") + if not cflags: + return False + return "no-omit-frame-pointer" in cflags + + +def perf_command_works(): + try: + cmd = ["perf", "--help"] + stdout = subprocess.check_output(cmd, text=True) + except (subprocess.SubprocessError, OSError): + return False + + # perf version does not return a version number on Fedora. Use presence + # of "perf.data" in help as indicator that it's perf from Linux tools. + if "perf.data" not in stdout: + return False + + # Check that we can run a simple perf run + with temp_dir() as script_dir: + try: + output_file = script_dir + "/perf_output.perf" + cmd = ( + "perf", + "record", + "-g", + "--call-graph=fp", + "-o", + output_file, + "--", + sys.executable, + "-c", + 'print("hello")', + ) + stdout = subprocess.check_output( + cmd, cwd=script_dir, text=True, stderr=subprocess.STDOUT + ) + except (subprocess.SubprocessError, OSError): + return False + + if "hello" not in stdout: + return False + + return True + + +def run_perf(cwd, *args, **env_vars): + if env_vars: + env = os.environ.copy() + env.update(env_vars) + else: + env = None + output_file = cwd + "/perf_output.perf" + base_cmd = ("perf", "record", "-g", "--call-graph=fp", "-o", output_file, "--") + proc = subprocess.run( + base_cmd + args, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + env=env, + ) + if proc.returncode: + print(proc.stderr) + raise ValueError(f"Perf failed with return code {proc.returncode}") + + base_cmd = ("perf", "script") + proc = subprocess.run( + ("perf", "script", "-i", output_file), + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + env=env, + check=True, + ) + return proc.stdout.decode("utf-8", "replace"), proc.stderr.decode( + "utf-8", "replace" + ) + + +@unittest.skipUnless(perf_command_works(), "perf command doesn't work") +@unittest.skipUnless(is_unwinding_reliable(), "Unwinding is unreliable") +@support.skip_if_sanitizer(address=True, memory=True, ub=True) +class TestPerfProfiler(unittest.TestCase): + def setUp(self): + super().setUp() + self.perf_files = set(pathlib.Path("/tmp/").glob("perf-*.map")) + + def tearDown(self) -> None: + super().tearDown() + files_to_delete = ( + set(pathlib.Path("/tmp/").glob("perf-*.map")) - self.perf_files + ) + for file in files_to_delete: + file.unlink() + + def test_python_calls_appear_in_the_stack_if_perf_activated(self): + with temp_dir() as script_dir: + code = """if 1: + def foo(n): + x = 0 + for i in range(n): + x += i + + def bar(n): + foo(n) + + def baz(n): + bar(n) + + baz(10000000) + """ + script = make_script(script_dir, "perftest", code) + stdout, stderr = run_perf(script_dir, sys.executable, "-Xperf", script) + self.assertEqual(stderr, "") + + self.assertIn(f"py::foo:{script}", stdout) + self.assertIn(f"py::bar:{script}", stdout) + self.assertIn(f"py::baz:{script}", stdout) + + def test_python_calls_do_not_appear_in_the_stack_if_perf_activated(self): + with temp_dir() as script_dir: + code = """if 1: + def foo(n): + x = 0 + for i in range(n): + x += i + + def bar(n): + foo(n) + + def baz(n): + bar(n) + + baz(10000000) + """ + script = make_script(script_dir, "perftest", code) + stdout, stderr = run_perf(script_dir, sys.executable, script) + self.assertEqual(stderr, "") + + self.assertNotIn(f"py::foo:{script}", stdout) + self.assertNotIn(f"py::bar:{script}", stdout) + self.assertNotIn(f"py::baz:{script}", stdout) + + +if __name__ == "__main__": + unittest.main() diff --git a/Lib/test/test_pickle.py b/Lib/test/test_pickle.py index 057af21e71fe47..44fdca7a6b1688 100644 --- a/Lib/test/test_pickle.py +++ b/Lib/test/test_pickle.py @@ -154,6 +154,29 @@ def persistent_id(obj): return obj check(PersPickler) + @support.cpython_only + def test_custom_pickler_dispatch_table_memleak(self): + # See https://github.com/python/cpython/issues/89988 + + class Pickler(self.pickler): + def __init__(self, *args, **kwargs): + self.dispatch_table = table + super().__init__(*args, **kwargs) + + class DispatchTable: + pass + + table = DispatchTable() + pickler = Pickler(io.BytesIO()) + self.assertIs(pickler.dispatch_table, table) + table_ref = weakref.ref(table) + self.assertIsNotNone(table_ref()) + del pickler + del table + support.gc_collect() + self.assertIsNone(table_ref()) + + @support.cpython_only def test_unpickler_reference_cycle(self): def check(Unpickler): diff --git a/Lib/test/test_platform.py b/Lib/test/test_platform.py index 9b2cd201f3c2fe..9c03a89fd57d07 100644 --- a/Lib/test/test_platform.py +++ b/Lib/test/test_platform.py @@ -229,6 +229,14 @@ def test_uname(self): self.assertEqual(res[-1], res.processor) self.assertEqual(len(res), 6) + @unittest.skipUnless(sys.platform.startswith('win'), "windows only test") + def test_uname_win32_without_wmi(self): + def raises_oserror(*a): + raise OSError() + + with support.swap_attr(platform, '_wmi_query', raises_oserror): + self.test_uname() + def test_uname_cast_to_tuple(self): res = platform.uname() expected = ( @@ -289,20 +297,27 @@ def test_uname_win32_ARCHITEW6432(self): # on 64 bit Windows: if PROCESSOR_ARCHITEW6432 exists we should be # using it, per # http://blogs.msdn.com/david.wang/archive/2006/03/26/HOWTO-Detect-Process-Bitness.aspx - try: + + # We also need to suppress WMI checks, as those are reliable and + # overrule the environment variables + def raises_oserror(*a): + raise OSError() + + with support.swap_attr(platform, '_wmi_query', raises_oserror): with os_helper.EnvironmentVarGuard() as environ: - if 'PROCESSOR_ARCHITEW6432' in environ: - del environ['PROCESSOR_ARCHITEW6432'] - environ['PROCESSOR_ARCHITECTURE'] = 'foo' - platform._uname_cache = None - system, node, release, version, machine, processor = platform.uname() - self.assertEqual(machine, 'foo') - environ['PROCESSOR_ARCHITEW6432'] = 'bar' - platform._uname_cache = None - system, node, release, version, machine, processor = platform.uname() - self.assertEqual(machine, 'bar') - finally: - platform._uname_cache = None + try: + if 'PROCESSOR_ARCHITEW6432' in environ: + del environ['PROCESSOR_ARCHITEW6432'] + environ['PROCESSOR_ARCHITECTURE'] = 'foo' + platform._uname_cache = None + system, node, release, version, machine, processor = platform.uname() + self.assertEqual(machine, 'foo') + environ['PROCESSOR_ARCHITEW6432'] = 'bar' + platform._uname_cache = None + system, node, release, version, machine, processor = platform.uname() + self.assertEqual(machine, 'bar') + finally: + platform._uname_cache = None def test_java_ver(self): res = platform.java_ver() diff --git a/Lib/test/test_posix.py b/Lib/test/test_posix.py index 28e5e90297e242..ae25ef55885dd6 100644 --- a/Lib/test/test_posix.py +++ b/Lib/test/test_posix.py @@ -31,8 +31,8 @@ os_helper.TESTFN + '-dummy-symlink') requires_32b = unittest.skipUnless( - # Emscripten has 32 bits pointers, but support 64 bits syscall args. - sys.maxsize < 2**32 and not support.is_emscripten, + # Emscripten/WASI have 32 bits pointers, but support 64 bits syscall args. + sys.maxsize < 2**32 and not (support.is_emscripten or support.is_wasi), 'test is only meaningful on 32-bit builds' ) @@ -547,6 +547,7 @@ def test_readv_overflow_32bits(self): @unittest.skipUnless(hasattr(posix, 'dup'), 'test needs posix.dup()') + @unittest.skipIf(support.is_wasi, "WASI does not have dup()") def test_dup(self): fp = open(os_helper.TESTFN) try: @@ -564,6 +565,7 @@ def test_confstr(self): @unittest.skipUnless(hasattr(posix, 'dup2'), 'test needs posix.dup2()') + @unittest.skipIf(support.is_wasi, "WASI does not have dup2()") def test_dup2(self): fp1 = open(os_helper.TESTFN) fp2 = open(os_helper.TESTFN) @@ -784,7 +786,8 @@ def check_stat(uid, gid): self.assertRaises(TypeError, chown_func, first_param, uid, t(gid)) check_stat(uid, gid) - @unittest.skipUnless(hasattr(posix, 'chown'), "test needs os.chown()") + @os_helper.skip_unless_working_chmod + @unittest.skipIf(support.is_emscripten, "getgid() is a stub") def test_chown(self): # raise an OSError if the file does not exist os.unlink(os_helper.TESTFN) @@ -794,7 +797,9 @@ def test_chown(self): os_helper.create_empty_file(os_helper.TESTFN) self._test_all_chown_common(posix.chown, os_helper.TESTFN, posix.stat) + @os_helper.skip_unless_working_chmod @unittest.skipUnless(hasattr(posix, 'fchown'), "test needs os.fchown()") + @unittest.skipIf(support.is_emscripten, "getgid() is a stub") def test_fchown(self): os.unlink(os_helper.TESTFN) @@ -807,6 +812,7 @@ def test_fchown(self): finally: test_file.close() + @os_helper.skip_unless_working_chmod @unittest.skipUnless(hasattr(posix, 'lchown'), "test needs os.lchown()") def test_lchown(self): os.unlink(os_helper.TESTFN) @@ -1212,6 +1218,7 @@ def test_sched_setaffinity(self): # bpo-47205: does not raise OSError on FreeBSD self.assertRaises(OSError, posix.sched_setaffinity, -1, mask) + @unittest.skipIf(support.is_wasi, "No dynamic linking on WASI") def test_rtld_constants(self): # check presence of major RTLD_* constants posix.RTLD_LAZY @@ -1351,6 +1358,7 @@ def test_chmod_dir_fd(self): @unittest.skipUnless(hasattr(os, 'chown') and (os.chown in os.supports_dir_fd), "test needs dir_fd support in os.chown()") + @unittest.skipIf(support.is_emscripten, "getgid() is a stub") def test_chown_dir_fd(self): with self.prepare_file() as (dir_fd, name, fullname): posix.chown(name, os.getuid(), os.getgid(), dir_fd=dir_fd) @@ -1406,6 +1414,10 @@ def test_utime_dir_fd(self): # whoops! using both together not supported on this platform. pass + @unittest.skipIf( + support.is_wasi, + "WASI: symlink following on path_link is not supported" + ) @unittest.skipUnless( hasattr(os, "link") and os.link in os.supports_dir_fd, "test needs dir_fd support in os.link()" diff --git a/Lib/test/test_posixpath.py b/Lib/test/test_posixpath.py index 5fc4205beb125f..c644f881e460fe 100644 --- a/Lib/test/test_posixpath.py +++ b/Lib/test/test_posixpath.py @@ -193,8 +193,7 @@ def test_ismount_non_existent(self): self.assertIs(posixpath.ismount('/\x00'), False) self.assertIs(posixpath.ismount(b'/\x00'), False) - @unittest.skipUnless(os_helper.can_symlink(), - "Test requires symlink support") + @os_helper.skip_unless_symlink def test_ismount_symlinks(self): # Symlinks are never mountpoints. try: @@ -387,8 +386,7 @@ def test_realpath_pardir(self): self.assertEqual(realpath(b'../..'), dirname(dirname(os.getcwdb()))) self.assertEqual(realpath(b'/'.join([b'..'] * 100)), b'/') - @unittest.skipUnless(hasattr(os, "symlink"), - "Missing symlink implementation") + @os_helper.skip_unless_symlink @skip_if_ABSTFN_contains_backslash def test_realpath_basic(self): # Basic operation. @@ -398,8 +396,7 @@ def test_realpath_basic(self): finally: os_helper.unlink(ABSTFN) - @unittest.skipUnless(hasattr(os, "symlink"), - "Missing symlink implementation") + @os_helper.skip_unless_symlink @skip_if_ABSTFN_contains_backslash def test_realpath_strict(self): # Bug #43757: raise FileNotFoundError in strict mode if we encounter @@ -411,8 +408,7 @@ def test_realpath_strict(self): finally: os_helper.unlink(ABSTFN) - @unittest.skipUnless(hasattr(os, "symlink"), - "Missing symlink implementation") + @os_helper.skip_unless_symlink @skip_if_ABSTFN_contains_backslash def test_realpath_relative(self): try: @@ -421,8 +417,7 @@ def test_realpath_relative(self): finally: os_helper.unlink(ABSTFN) - @unittest.skipUnless(hasattr(os, "symlink"), - "Missing symlink implementation") + @os_helper.skip_unless_symlink @skip_if_ABSTFN_contains_backslash def test_realpath_symlink_loops(self): # Bug #930024, return the path unchanged if we get into an infinite @@ -463,8 +458,7 @@ def test_realpath_symlink_loops(self): os_helper.unlink(ABSTFN+"c") os_helper.unlink(ABSTFN+"a") - @unittest.skipUnless(hasattr(os, "symlink"), - "Missing symlink implementation") + @os_helper.skip_unless_symlink @skip_if_ABSTFN_contains_backslash def test_realpath_symlink_loops_strict(self): # Bug #43757, raise OSError if we get into an infinite symlink loop in @@ -505,8 +499,7 @@ def test_realpath_symlink_loops_strict(self): os_helper.unlink(ABSTFN+"c") os_helper.unlink(ABSTFN+"a") - @unittest.skipUnless(hasattr(os, "symlink"), - "Missing symlink implementation") + @os_helper.skip_unless_symlink @skip_if_ABSTFN_contains_backslash def test_realpath_repeated_indirect_symlinks(self): # Issue #6975. @@ -520,8 +513,7 @@ def test_realpath_repeated_indirect_symlinks(self): os_helper.unlink(ABSTFN + '/link') safe_rmdir(ABSTFN) - @unittest.skipUnless(hasattr(os, "symlink"), - "Missing symlink implementation") + @os_helper.skip_unless_symlink @skip_if_ABSTFN_contains_backslash def test_realpath_deep_recursion(self): depth = 10 @@ -540,8 +532,7 @@ def test_realpath_deep_recursion(self): os_helper.unlink(ABSTFN + '/%d' % i) safe_rmdir(ABSTFN) - @unittest.skipUnless(hasattr(os, "symlink"), - "Missing symlink implementation") + @os_helper.skip_unless_symlink @skip_if_ABSTFN_contains_backslash def test_realpath_resolve_parents(self): # We also need to resolve any symlinks in the parents of a relative @@ -560,8 +551,7 @@ def test_realpath_resolve_parents(self): safe_rmdir(ABSTFN + "/y") safe_rmdir(ABSTFN) - @unittest.skipUnless(hasattr(os, "symlink"), - "Missing symlink implementation") + @os_helper.skip_unless_symlink @skip_if_ABSTFN_contains_backslash def test_realpath_resolve_before_normalizing(self): # Bug #990669: Symbolic links should be resolved before we @@ -589,8 +579,7 @@ def test_realpath_resolve_before_normalizing(self): safe_rmdir(ABSTFN + "/k") safe_rmdir(ABSTFN) - @unittest.skipUnless(hasattr(os, "symlink"), - "Missing symlink implementation") + @os_helper.skip_unless_symlink @skip_if_ABSTFN_contains_backslash def test_realpath_resolve_first(self): # Bug #1213894: The first component of the path, if not absolute, diff --git a/Lib/test/test_property.py b/Lib/test/test_property.py index d91ad1c191275e..d07b8632aa8722 100644 --- a/Lib/test/test_property.py +++ b/Lib/test/test_property.py @@ -219,6 +219,9 @@ def test_property_set_name_incorrect_args(self): class PropertySub(property): """This is a subclass of property""" +class PropertySubWoDoc(property): + pass + class PropertySubSlots(property): """This is a subclass of property that defines __slots__""" __slots__ = () @@ -237,6 +240,38 @@ def spam(self): else: raise Exception("AttributeError not raised") + @unittest.skipIf(sys.flags.optimize >= 2, + "Docstrings are omitted with -O2 and above") + def test_issue41287(self): + + self.assertEqual(PropertySub.__doc__, "This is a subclass of property", + "Docstring of `property` subclass is ignored") + + doc = PropertySub(None, None, None, "issue 41287 is fixed").__doc__ + self.assertEqual(doc, "issue 41287 is fixed", + "Subclasses of `property` ignores `doc` constructor argument") + + def getter(x): + """Getter docstring""" + + def getter_wo_doc(x): + pass + + for ps in property, PropertySub, PropertySubWoDoc: + doc = ps(getter, None, None, "issue 41287 is fixed").__doc__ + self.assertEqual(doc, "issue 41287 is fixed", + "Getter overrides explicit property docstring (%s)" % ps.__name__) + + doc = ps(getter, None, None, None).__doc__ + self.assertEqual(doc, "Getter docstring", "Getter docstring is not picked-up (%s)" % ps.__name__) + + doc = ps(getter_wo_doc, None, None, "issue 41287 is fixed").__doc__ + self.assertEqual(doc, "issue 41287 is fixed", + "Getter overrides explicit property docstring (%s)" % ps.__name__) + + doc = ps(getter_wo_doc, None, None, None).__doc__ + self.assertIsNone(doc, "Property class doc appears in instance __doc__ (%s)" % ps.__name__) + @unittest.skipIf(sys.flags.optimize >= 2, "Docstrings are omitted with -O2 and above") def test_docstring_copy(self): @@ -249,6 +284,66 @@ def spam(self): Foo.spam.__doc__, "spam wrapped in property subclass") + @unittest.skipIf(sys.flags.optimize >= 2, + "Docstrings are omitted with -O2 and above") + def test_docstring_copy2(self): + """ + Property tries to provide the best docstring it finds for its instances. + If a user-provided docstring is available, it is preserved on copies. + If no docstring is available during property creation, the property + will utilize the docstring from the getter if available. + """ + def getter1(self): + return 1 + def getter2(self): + """doc 2""" + return 2 + def getter3(self): + """doc 3""" + return 3 + + # Case-1: user-provided doc is preserved in copies + # of property with undocumented getter + p = property(getter1, None, None, "doc-A") + + p2 = p.getter(getter2) + self.assertEqual(p.__doc__, "doc-A") + self.assertEqual(p2.__doc__, "doc-A") + + # Case-2: user-provided doc is preserved in copies + # of property with documented getter + p = property(getter2, None, None, "doc-A") + + p2 = p.getter(getter3) + self.assertEqual(p.__doc__, "doc-A") + self.assertEqual(p2.__doc__, "doc-A") + + # Case-3: with no user-provided doc new getter doc + # takes precendence + p = property(getter2, None, None, None) + + p2 = p.getter(getter3) + self.assertEqual(p.__doc__, "doc 2") + self.assertEqual(p2.__doc__, "doc 3") + + # Case-4: A user-provided doc is assigned after property construction + # with documented getter. The doc IS NOT preserved. + # It's an odd behaviour, but it's a strange enough + # use case with no easy solution. + p = property(getter2, None, None, None) + p.__doc__ = "user" + p2 = p.getter(getter3) + self.assertEqual(p.__doc__, "user") + self.assertEqual(p2.__doc__, "doc 3") + + # Case-5: A user-provided doc is assigned after property construction + # with UNdocumented getter. The doc IS preserved. + p = property(getter1, None, None, None) + p.__doc__ = "user" + p2 = p.getter(getter2) + self.assertEqual(p.__doc__, "user") + self.assertEqual(p2.__doc__, "user") + @unittest.skipIf(sys.flags.optimize >= 2, "Docstrings are omitted with -O2 and above") def test_property_setter_copies_getter_docstring(self): diff --git a/Lib/test/test_pwd.py b/Lib/test/test_pwd.py index c789326425be32..aa090b464a7222 100644 --- a/Lib/test/test_pwd.py +++ b/Lib/test/test_pwd.py @@ -59,6 +59,8 @@ def test_errors(self): self.assertRaises(TypeError, pwd.getpwnam) self.assertRaises(TypeError, pwd.getpwnam, 42) self.assertRaises(TypeError, pwd.getpwall, 42) + # embedded null character + self.assertRaisesRegex(ValueError, 'null', pwd.getpwnam, 'a\x00b') # try to get some errors bynames = {} diff --git a/Lib/test/test_py_compile.py b/Lib/test/test_py_compile.py index 794d6436b61ab0..a4a52b180dbb55 100644 --- a/Lib/test/test_py_compile.py +++ b/Lib/test/test_py_compile.py @@ -115,10 +115,10 @@ def test_relative_path(self): self.assertTrue(os.path.exists(self.pyc_path)) self.assertFalse(os.path.exists(self.cache_path)) - @unittest.skipIf(hasattr(os, 'geteuid') and os.geteuid() == 0, - 'non-root user required') + @os_helper.skip_if_dac_override @unittest.skipIf(os.name == 'nt', 'cannot control directory permissions on Windows') + @os_helper.skip_unless_working_chmod def test_exceptions_propagate(self): # Make sure that exceptions raised thanks to issues with writing # bytecode. diff --git a/Lib/test/test_pyclbr.py b/Lib/test/test_pyclbr.py index ad7b31aef1ddd1..23453e340159db 100644 --- a/Lib/test/test_pyclbr.py +++ b/Lib/test/test_pyclbr.py @@ -9,6 +9,7 @@ import pyclbr from unittest import TestCase, main as unittest_main from test.test_importlib import util as test_importlib_util +import warnings StaticMethodType = type(staticmethod(lambda: None)) @@ -218,13 +219,17 @@ def test_others(self): # These were once some of the longest modules. cm('random', ignore=('Random',)) # from _random import Random as CoreGenerator - cm('cgi', ignore=('log',)) # set with = in module + with warnings.catch_warnings(): + warnings.simplefilter('ignore', DeprecationWarning) + cm('cgi', ignore=('log',)) # set with = in module cm('pickle', ignore=('partial', 'PickleBuffer')) - cm('sre_parse', ignore=('dump', 'groups', 'pos')) # from sre_constants import *; property + with warnings.catch_warnings(): + warnings.simplefilter('ignore', DeprecationWarning) + cm('sre_parse', ignore=('dump', 'groups', 'pos')) # from sre_constants import *; property cm( 'pdb', # pyclbr does not handle elegantly `typing` or properties - ignore=('Union', 'ModuleTarget', 'ScriptTarget'), + ignore=('Union', '_ModuleTarget', '_ScriptTarget'), ) cm('pydoc', ignore=('input', 'output',)) # properties diff --git a/Lib/test/test_pydoc.py b/Lib/test/test_pydoc.py index ac181effe49bb6..8ab3289dd74006 100644 --- a/Lib/test/test_pydoc.py +++ b/Lib/test/test_pydoc.py @@ -54,58 +54,58 @@ class nonascii: A B C -\x20\x20\x20\x20 + class A(builtins.object) | Hello and goodbye - |\x20\x20 + | | Methods defined here: - |\x20\x20 + | | __init__() | Wow, I have no function! - |\x20\x20 + | | ---------------------------------------------------------------------- | Data descriptors defined here: - |\x20\x20 + | | __dict__%s - |\x20\x20 + | | __weakref__%s -\x20\x20\x20\x20 + class B(builtins.object) | Data descriptors defined here: - |\x20\x20 + | | __dict__%s - |\x20\x20 + | | __weakref__%s - |\x20\x20 + | | ---------------------------------------------------------------------- | Data and other attributes defined here: - |\x20\x20 + | | NO_MEANING = 'eggs' - |\x20\x20 + | | __annotations__ = {'NO_MEANING': <class 'str'>} -\x20\x20\x20\x20 + class C(builtins.object) | Methods defined here: - |\x20\x20 + | | get_answer(self) | Return say_no() - |\x20\x20 + | | is_it_true(self) | Return self.get_answer() - |\x20\x20 + | | say_no(self) - |\x20\x20 + | | ---------------------------------------------------------------------- | Class methods defined here: - |\x20\x20 + | | __class_getitem__(item) from builtins.type - |\x20\x20 + | | ---------------------------------------------------------------------- | Data descriptors defined here: - |\x20\x20 + | | __dict__ | dictionary for instance variables (if defined) - |\x20\x20 + | | __weakref__ | list of weak references to the object (if defined) @@ -115,7 +115,7 @@ class C(builtins.object) hunger lack of Python war -\x20\x20\x20\x20 + nodoc_func() DATA @@ -235,16 +235,16 @@ class C(builtins.object) class DA(builtins.object) | Data descriptors defined here: - |\x20\x20 + | | __dict__%s - |\x20\x20 + | | __weakref__%s - |\x20\x20 + | | ham - |\x20\x20 + | | ---------------------------------------------------------------------- | Data and other attributes inherited from Meta: - |\x20\x20 + | | ham = 'spam' """.strip() @@ -253,7 +253,7 @@ class DA(builtins.object) class Class(builtins.object) | Data and other attributes inherited from Meta: - |\x20\x20 + | | LIFE = 42 """.strip() @@ -262,7 +262,7 @@ class Class(builtins.object) class Class1(builtins.object) | Data and other attributes inherited from Meta1: - |\x20\x20 + | | one = 1 """.strip() @@ -274,19 +274,19 @@ class Class2(Class1) | Class2 | Class1 | builtins.object - |\x20\x20 + | | Data and other attributes inherited from Meta1: - |\x20\x20 + | | one = 1 - |\x20\x20 + | | ---------------------------------------------------------------------- | Data and other attributes inherited from Meta3: - |\x20\x20 + | | three = 3 - |\x20\x20 + | | ---------------------------------------------------------------------- | Data and other attributes inherited from Meta2: - |\x20\x20 + | | two = 2 """.strip() @@ -295,7 +295,7 @@ class Class2(Class1) class C(builtins.object) | Data and other attributes defined here: - |\x20\x20 + | | here = 'present!' """.strip() @@ -785,33 +785,33 @@ class B(A) | B | A | builtins.object - |\x20\x20 + | | Methods defined here: - |\x20\x20 + | | b_size = a_size(self) - |\x20\x20 + | | itemconfig = itemconfigure(self, tagOrId, cnf=None, **kw) - |\x20\x20 + | | itemconfigure(self, tagOrId, cnf=None, **kw) | Configure resources of an item TAGORID. - |\x20\x20 + | | ---------------------------------------------------------------------- | Methods inherited from A: - |\x20\x20 + | | a_size(self) | Return size - |\x20\x20 + | | lift = tkraise(self, aboveThis=None) - |\x20\x20 + | | tkraise(self, aboveThis=None) | Raise this widget in the stacking order. - |\x20\x20 + | | ---------------------------------------------------------------------- | Data descriptors inherited from A: - |\x20\x20 + | | __dict__ | dictionary for instance variables (if defined) - |\x20\x20 + | | __weakref__ | list of weak references to the object (if defined) ''' % __name__) @@ -933,6 +933,8 @@ def test_apropos_with_unreadable_dir(self): self.assertEqual(out.getvalue(), '') self.assertEqual(err.getvalue(), '') + @os_helper.skip_unless_working_chmod + @unittest.skipIf(is_emscripten, "cannot remove x bit") def test_apropos_empty_doc(self): pkgdir = os.path.join(TESTFN, 'walkpkg') os.mkdir(pkgdir) @@ -1178,7 +1180,7 @@ def sm(x, y): """) self.assertIn(""" | Static methods defined here: - |\x20\x20 + | | sm(x, y) | A static method """, pydoc.plain(pydoc.render_doc(X))) @@ -1199,7 +1201,7 @@ def cm(cls, x): """) self.assertIn(""" | Class methods defined here: - |\x20\x20 + | | cm(x) from builtins.type | A class method """, pydoc.plain(pydoc.render_doc(X))) diff --git a/Lib/test/test_pyexpat.py b/Lib/test/test_pyexpat.py index 6f0441b66d9b88..863c1194672c1c 100644 --- a/Lib/test/test_pyexpat.py +++ b/Lib/test/test_pyexpat.py @@ -508,7 +508,7 @@ def test(self): class sf1296433Test(unittest.TestCase): def test_parse_only_xml_data(self): - # http://python.org/sf/1296433 + # https://bugs.python.org/issue1296433 # xml = "<?xml version='1.0' encoding='iso8859'?><s>%s</s>" % ('a' * 1025) # this one doesn't crash diff --git a/Lib/test/test_queue.py b/Lib/test/test_queue.py index e3080376a9de5f..33113a72e6b6a9 100644 --- a/Lib/test/test_queue.py +++ b/Lib/test/test_queue.py @@ -10,6 +10,8 @@ from test.support import import_helper from test.support import threading_helper +# queue module depends on threading primitives +threading_helper.requires_working_threading(module=True) py_queue = import_helper.import_fresh_module('queue', blocked=['_queue']) c_queue = import_helper.import_fresh_module('queue', fresh=['_queue']) @@ -87,7 +89,6 @@ def do_exceptional_blocking_test(self,block_func, block_args, trigger_func, self.fail("trigger thread ended but event never set") -@threading_helper.requires_working_threading() class BaseQueueTestMixin(BlockingTestMixin): def setUp(self): self.cum = 0 @@ -291,7 +292,6 @@ class CPriorityQueueTest(PriorityQueueTest, unittest.TestCase): class FailingQueueException(Exception): pass -@threading_helper.requires_working_threading() class FailingQueueTest(BlockingTestMixin): def setUp(self): @@ -467,7 +467,6 @@ def consume_timeout(self, q, results, sentinel): return results.append(val) - @threading_helper.requires_working_threading() def run_threads(self, n_threads, q, inputs, feed_func, consume_func): results = [] sentinel = None diff --git a/Lib/test/test_random.py b/Lib/test/test_random.py index fcf17a949c2a62..1e825c3572d20a 100644 --- a/Lib/test/test_random.py +++ b/Lib/test/test_random.py @@ -1045,6 +1045,9 @@ def test_constant(self): (g.lognormvariate, (0.0, 0.0), 1.0), (g.lognormvariate, (-float('inf'), 0.0), 0.0), (g.normalvariate, (10.0, 0.0), 10.0), + (g.binomialvariate, (0, 0.5), 0), + (g.binomialvariate, (10, 0.0), 0), + (g.binomialvariate, (10, 1.0), 10), (g.paretovariate, (float('inf'),), 1.0), (g.weibullvariate, (10.0, float('inf')), 10.0), (g.weibullvariate, (0.0, 10.0), 0.0), @@ -1052,6 +1055,59 @@ def test_constant(self): for i in range(N): self.assertEqual(variate(*args), expected) + def test_binomialvariate(self): + B = random.binomialvariate + + # Cover all the code paths + with self.assertRaises(ValueError): + B(n=-1) # Negative n + with self.assertRaises(ValueError): + B(n=1, p=-0.5) # Negative p + with self.assertRaises(ValueError): + B(n=1, p=1.5) # p > 1.0 + self.assertEqual(B(10, 0.0), 0) # p == 0.0 + self.assertEqual(B(10, 1.0), 10) # p == 1.0 + self.assertTrue(B(1, 0.3) in {0, 1}) # n == 1 fast path + self.assertTrue(B(1, 0.9) in {0, 1}) # n == 1 fast path + self.assertTrue(B(1, 0.0) in {0}) # n == 1 fast path + self.assertTrue(B(1, 1.0) in {1}) # n == 1 fast path + + # BG method p <= 0.5 and n*p=1.25 + self.assertTrue(B(5, 0.25) in set(range(6))) + + # BG method p >= 0.5 and n*(1-p)=1.25 + self.assertTrue(B(5, 0.75) in set(range(6))) + + # BTRS method p <= 0.5 and n*p=25 + self.assertTrue(B(100, 0.25) in set(range(101))) + + # BTRS method p > 0.5 and n*(1-p)=25 + self.assertTrue(B(100, 0.75) in set(range(101))) + + # Statistical tests chosen such that they are + # exceedingly unlikely to ever fail for correct code. + + # BG code path + # Expected dist: [31641, 42188, 21094, 4688, 391] + c = Counter(B(4, 0.25) for i in range(100_000)) + self.assertTrue(29_641 <= c[0] <= 33_641, c) + self.assertTrue(40_188 <= c[1] <= 44_188) + self.assertTrue(19_094 <= c[2] <= 23_094) + self.assertTrue(2_688 <= c[3] <= 6_688) + self.assertEqual(set(c), {0, 1, 2, 3, 4}) + + # BTRS code path + # Sum of c[20], c[21], c[22], c[23], c[24] expected to be 36,214 + c = Counter(B(100, 0.25) for i in range(100_000)) + self.assertTrue(34_214 <= c[20]+c[21]+c[22]+c[23]+c[24] <= 38_214) + self.assertTrue(set(c) <= set(range(101))) + self.assertEqual(c.total(), 100_000) + + # Demonstrate the BTRS works for huge values of n + self.assertTrue(19_000_000 <= B(100_000_000, 0.2) <= 21_000_000) + self.assertTrue(89_000_000 <= B(100_000_000, 0.9) <= 91_000_000) + + def test_von_mises_range(self): # Issue 17149: von mises variates were not consistently in the # range [0, 2*PI]. diff --git a/Lib/test/test_re.py b/Lib/test/test_re.py index 3752d734dbdef2..3f0f84ea8cee6f 100644 --- a/Lib/test/test_re.py +++ b/Lib/test/test_re.py @@ -1,6 +1,7 @@ from test.support import (gc_collect, bigmemtest, _2G, cpython_only, captured_stdout, - check_disallow_instantiation, is_emscripten, is_wasi) + check_disallow_instantiation, is_emscripten, is_wasi, + SHORT_TIMEOUT) import locale import re import string @@ -11,6 +12,14 @@ from re import Scanner from weakref import proxy +# some platforms lack working multiprocessing +try: + import _multiprocessing +except ImportError: + multiprocessing = None +else: + import multiprocessing + # Misc tests from Tim Peters' re.doc # WARNING: Don't change details in these tests if you don't know @@ -1765,12 +1774,9 @@ def test_dealloc(self): long_overflow = 2**128 self.assertRaises(TypeError, re.finditer, "a", {}) with self.assertRaises(OverflowError): - _sre.compile("abc", 0, [long_overflow], 0, {}, (), 0) + _sre.compile("abc", 0, [long_overflow], 0, {}, ()) with self.assertRaises(TypeError): - _sre.compile({}, 0, [], 0, [], [], 0) - with self.assertRaises(RuntimeError): - # invalid repeat_count -1 - _sre.compile("abc", 0, [1], 0, {}, (), -1) + _sre.compile({}, 0, [], 0, [], []) def test_search_dot_unicode(self): self.assertTrue(re.search("123.*-", '123abc-')) @@ -2410,6 +2416,26 @@ def test_template_function_and_flag_is_deprecated(self): self.assertTrue(template_re1.match('ahoy')) self.assertFalse(template_re1.match('nope')) + @unittest.skipIf(multiprocessing is None, 'test requires multiprocessing') + def test_regression_gh94675(self): + pattern = re.compile(r'(?<=[({}])(((//[^\n]*)?[\n])([\000-\040])*)*' + r'((/[^/\[\n]*(([^\n]|(\[\n]*(]*)*\]))' + r'[^/\[]*)*/))((((//[^\n]*)?[\n])' + r'([\000-\040]|(/\*[^*]*\*+' + r'([^/*]\*+)*/))*)+(?=[^\000-\040);\]}]))') + input_js = '''a(function() { + /////////////////////////////////////////////////////////////////// + });''' + p = multiprocessing.Process(target=pattern.sub, args=('', input_js)) + p.start() + p.join(SHORT_TIMEOUT) + try: + self.assertFalse(p.is_alive(), 'pattern.sub() timed out') + finally: + if p.is_alive(): + p.terminate() + p.join() + def get_debug_out(pat): with captured_stdout() as out: @@ -2509,27 +2535,6 @@ def test_possesive_repeat(self): 14. SUCCESS ''') - def test_repeat_index(self): - self.assertEqual(get_debug_out(r'(?:ab)*?(?:cd)*'), '''\ -MIN_REPEAT 0 MAXREPEAT - LITERAL 97 - LITERAL 98 -MAX_REPEAT 0 MAXREPEAT - LITERAL 99 - LITERAL 100 - - 0. INFO 4 0b0 0 MAXREPEAT (to 5) - 5: REPEAT 8 0 MAXREPEAT 0 (to 14) -10. LITERAL 0x61 ('a') -12. LITERAL 0x62 ('b') -14: MIN_UNTIL -15. REPEAT 8 0 MAXREPEAT 1 (to 24) -20. LITERAL 0x63 ('c') -22. LITERAL 0x64 ('d') -24: MAX_UNTIL -25. SUCCESS -''') - class PatternReprTests(unittest.TestCase): def check(self, pattern, expected): diff --git a/Lib/test/test_regrtest.py b/Lib/test/test_regrtest.py index 4f632bb2f39543..a36d18488a5ef7 100644 --- a/Lib/test/test_regrtest.py +++ b/Lib/test/test_regrtest.py @@ -15,7 +15,6 @@ import sysconfig import tempfile import textwrap -import time import unittest from test import libregrtest from test import support @@ -1358,6 +1357,32 @@ def test_cleanup(self): for name in names: self.assertFalse(os.path.exists(name), name) + @unittest.skipIf(support.is_wasi, + 'checking temp files is not implemented on WASI') + def test_leak_tmp_file(self): + code = textwrap.dedent(r""" + import os.path + import tempfile + import unittest + + class FileTests(unittest.TestCase): + def test_leak_tmp_file(self): + filename = os.path.join(tempfile.gettempdir(), 'mytmpfile') + with open(filename, "wb") as fp: + fp.write(b'content') + """) + testnames = [self.create_test(code=code) for _ in range(3)] + + output = self.run_tests("--fail-env-changed", "-v", "-j2", *testnames, exitcode=3) + self.check_executed_tests(output, testnames, + env_changed=testnames, + fail_env_changed=True, + randomize=True) + for testname in testnames: + self.assertIn(f"Warning -- {testname} leaked temporary " + f"files (1): mytmpfile", + output) + class TestUtils(unittest.TestCase): def test_format_duration(self): diff --git a/Lib/test/test_reprlib.py b/Lib/test/test_reprlib.py index aa326399ab2247..e7216d427200c1 100644 --- a/Lib/test/test_reprlib.py +++ b/Lib/test/test_reprlib.py @@ -9,6 +9,7 @@ import importlib import importlib.util import unittest +import textwrap from test.support import verbose from test.support.os_helper import create_empty_file @@ -25,6 +26,29 @@ def nestedTuple(nesting): class ReprTests(unittest.TestCase): + def test_init_kwargs(self): + example_kwargs = { + "maxlevel": 101, + "maxtuple": 102, + "maxlist": 103, + "maxarray": 104, + "maxdict": 105, + "maxset": 106, + "maxfrozenset": 107, + "maxdeque": 108, + "maxstring": 109, + "maxlong": 110, + "maxother": 111, + "fillvalue": "x" * 112, + "indent": "x" * 113, + } + r1 = Repr() + for attr, val in example_kwargs.items(): + setattr(r1, attr, val) + r2 = Repr(**example_kwargs) + for attr in example_kwargs: + self.assertEqual(getattr(r1, attr), getattr(r2, attr), msg=attr) + def test_string(self): eq = self.assertEqual eq(r("abc"), "'abc'") @@ -224,6 +248,338 @@ def test_unsortable(self): r(y) r(z) + def test_valid_indent(self): + test_cases = [ + { + 'object': (), + 'tests': ( + (dict(indent=None), '()'), + (dict(indent=False), '()'), + (dict(indent=True), '()'), + (dict(indent=0), '()'), + (dict(indent=1), '()'), + (dict(indent=4), '()'), + (dict(indent=4, maxlevel=2), '()'), + (dict(indent=''), '()'), + (dict(indent='-->'), '()'), + (dict(indent='....'), '()'), + ), + }, + { + 'object': '', + 'tests': ( + (dict(indent=None), "''"), + (dict(indent=False), "''"), + (dict(indent=True), "''"), + (dict(indent=0), "''"), + (dict(indent=1), "''"), + (dict(indent=4), "''"), + (dict(indent=4, maxlevel=2), "''"), + (dict(indent=''), "''"), + (dict(indent='-->'), "''"), + (dict(indent='....'), "''"), + ), + }, + { + 'object': [1, 'spam', {'eggs': True, 'ham': []}], + 'tests': ( + (dict(indent=None), '''\ + [1, 'spam', {'eggs': True, 'ham': []}]'''), + (dict(indent=False), '''\ + [ + 1, + 'spam', + { + 'eggs': True, + 'ham': [], + }, + ]'''), + (dict(indent=True), '''\ + [ + 1, + 'spam', + { + 'eggs': True, + 'ham': [], + }, + ]'''), + (dict(indent=0), '''\ + [ + 1, + 'spam', + { + 'eggs': True, + 'ham': [], + }, + ]'''), + (dict(indent=1), '''\ + [ + 1, + 'spam', + { + 'eggs': True, + 'ham': [], + }, + ]'''), + (dict(indent=4), '''\ + [ + 1, + 'spam', + { + 'eggs': True, + 'ham': [], + }, + ]'''), + (dict(indent=4, maxlevel=2), '''\ + [ + 1, + 'spam', + { + 'eggs': True, + 'ham': [], + }, + ]'''), + (dict(indent=''), '''\ + [ + 1, + 'spam', + { + 'eggs': True, + 'ham': [], + }, + ]'''), + (dict(indent='-->'), '''\ + [ + -->1, + -->'spam', + -->{ + -->-->'eggs': True, + -->-->'ham': [], + -->}, + ]'''), + (dict(indent='....'), '''\ + [ + ....1, + ....'spam', + ....{ + ........'eggs': True, + ........'ham': [], + ....}, + ]'''), + ), + }, + { + 'object': { + 1: 'two', + b'three': [ + (4.5, 6.7), + [set((8, 9)), frozenset((10, 11))], + ], + }, + 'tests': ( + (dict(indent=None), '''\ + {1: 'two', b'three': [(4.5, 6.7), [{8, 9}, frozenset({10, 11})]]}'''), + (dict(indent=False), '''\ + { + 1: 'two', + b'three': [ + ( + 4.5, + 6.7, + ), + [ + { + 8, + 9, + }, + frozenset({ + 10, + 11, + }), + ], + ], + }'''), + (dict(indent=True), '''\ + { + 1: 'two', + b'three': [ + ( + 4.5, + 6.7, + ), + [ + { + 8, + 9, + }, + frozenset({ + 10, + 11, + }), + ], + ], + }'''), + (dict(indent=0), '''\ + { + 1: 'two', + b'three': [ + ( + 4.5, + 6.7, + ), + [ + { + 8, + 9, + }, + frozenset({ + 10, + 11, + }), + ], + ], + }'''), + (dict(indent=1), '''\ + { + 1: 'two', + b'three': [ + ( + 4.5, + 6.7, + ), + [ + { + 8, + 9, + }, + frozenset({ + 10, + 11, + }), + ], + ], + }'''), + (dict(indent=4), '''\ + { + 1: 'two', + b'three': [ + ( + 4.5, + 6.7, + ), + [ + { + 8, + 9, + }, + frozenset({ + 10, + 11, + }), + ], + ], + }'''), + (dict(indent=4, maxlevel=2), '''\ + { + 1: 'two', + b'three': [ + (...), + [...], + ], + }'''), + (dict(indent=''), '''\ + { + 1: 'two', + b'three': [ + ( + 4.5, + 6.7, + ), + [ + { + 8, + 9, + }, + frozenset({ + 10, + 11, + }), + ], + ], + }'''), + (dict(indent='-->'), '''\ + { + -->1: 'two', + -->b'three': [ + -->-->( + -->-->-->4.5, + -->-->-->6.7, + -->-->), + -->-->[ + -->-->-->{ + -->-->-->-->8, + -->-->-->-->9, + -->-->-->}, + -->-->-->frozenset({ + -->-->-->-->10, + -->-->-->-->11, + -->-->-->}), + -->-->], + -->], + }'''), + (dict(indent='....'), '''\ + { + ....1: 'two', + ....b'three': [ + ........( + ............4.5, + ............6.7, + ........), + ........[ + ............{ + ................8, + ................9, + ............}, + ............frozenset({ + ................10, + ................11, + ............}), + ........], + ....], + }'''), + ), + }, + ] + for test_case in test_cases: + with self.subTest(test_object=test_case['object']): + for repr_settings, expected_repr in test_case['tests']: + with self.subTest(repr_settings=repr_settings): + r = Repr() + for attribute, value in repr_settings.items(): + setattr(r, attribute, value) + resulting_repr = r.repr(test_case['object']) + expected_repr = textwrap.dedent(expected_repr) + self.assertEqual(resulting_repr, expected_repr) + + def test_invalid_indent(self): + test_object = [1, 'spam', {'eggs': True, 'ham': []}] + test_cases = [ + (-1, (ValueError, '[Nn]egative|[Pp]ositive')), + (-4, (ValueError, '[Nn]egative|[Pp]ositive')), + ((), (TypeError, None)), + ([], (TypeError, None)), + ((4,), (TypeError, None)), + ([4,], (TypeError, None)), + (object(), (TypeError, None)), + ] + for indent, (expected_error, expected_msg) in test_cases: + with self.subTest(indent=indent): + r = Repr() + r.indent = indent + expected_msg = expected_msg or f'{type(indent)}' + with self.assertRaisesRegex(expected_error, expected_msg): + r.repr(test_object) + def write_file(path, text): with open(path, 'w', encoding='ASCII') as fp: fp.write(text) diff --git a/Lib/test/test_select.py b/Lib/test/test_select.py index ca2a9d9d24dabc..a82584d6904920 100644 --- a/Lib/test/test_select.py +++ b/Lib/test/test_select.py @@ -1,5 +1,4 @@ import errno -import os import select import subprocess import sys diff --git a/Lib/test/test_set.py b/Lib/test/test_set.py index 43f23dbbf9bf7d..2dd65240f5faec 100644 --- a/Lib/test/test_set.py +++ b/Lib/test/test_set.py @@ -427,7 +427,7 @@ def test_remove(self): self.assertRaises(KeyError, self.s.remove, self.thetype(self.word)) def test_remove_keyerror_unpacking(self): - # bug: www.python.org/sf/1576657 + # https://bugs.python.org/issue1576657 for v1 in ['Q', (1,)]: try: self.s.remove(v1) diff --git a/Lib/test/test_shelve.py b/Lib/test/test_shelve.py index b9eb007c827966..08c6562f2a273e 100644 --- a/Lib/test/test_shelve.py +++ b/Lib/test/test_shelve.py @@ -1,11 +1,9 @@ import unittest import dbm import shelve -import glob import pickle import os -from test import support from test.support import os_helper from collections.abc import MutableMapping from test.test_dbm import dbm_iterator diff --git a/Lib/test/test_shlex.py b/Lib/test/test_shlex.py index 3081a785204edc..92598dbbd5f293 100644 --- a/Lib/test/test_shlex.py +++ b/Lib/test/test_shlex.py @@ -162,9 +162,8 @@ def oldSplit(self, s): tok = lex.get_token() return ret - @mock.patch('sys.stdin', io.StringIO()) - def testSplitNoneDeprecation(self): - with self.assertWarns(DeprecationWarning): + def testSplitNone(self): + with self.assertRaises(ValueError): shlex.split(None) def testSplitPosix(self): diff --git a/Lib/test/test_shutil.py b/Lib/test/test_shutil.py index a61bb126e4e73f..a2c4ab508195b3 100644 --- a/Lib/test/test_shutil.py +++ b/Lib/test/test_shutil.py @@ -51,6 +51,9 @@ except ImportError: _winapi = None +no_chdir = unittest.mock.patch('os.chdir', + side_effect=AssertionError("shouldn't call os.chdir()")) + def _fake_rename(*args, **kwargs): # Pretend the destination path is on a different filesystem. raise OSError(getattr(errno, 'EXDEV', 18), "Invalid cross-device link") @@ -309,8 +312,8 @@ def onerror(*args): @unittest.skipIf(sys.platform[:6] == 'cygwin', "This test can't be run on Cygwin (issue #1071513).") - @unittest.skipIf(hasattr(os, 'geteuid') and os.geteuid() == 0, - "This test can't be run reliably as root (issue #1076467).") + @os_helper.skip_if_dac_override + @os_helper.skip_unless_working_chmod def test_on_error(self): self.errorState = 0 os.mkdir(TESTFN) @@ -1029,8 +1032,7 @@ def _raise_on_src(fname, *, follow_symlinks=True): @os_helper.skip_unless_symlink @os_helper.skip_unless_xattr - @unittest.skipUnless(hasattr(os, 'geteuid') and os.geteuid() == 0, - 'root privileges required') + @os_helper.skip_unless_dac_override def test_copyxattr_symlinks(self): # On Linux, it's only possible to access non-user xattr for symlinks; # which in turn require root privileges. This test should be expanded @@ -1341,7 +1343,7 @@ def test_make_tarball(self): work_dir = os.path.dirname(tmpdir2) rel_base_name = os.path.join(os.path.basename(tmpdir2), 'archive') - with os_helper.change_cwd(work_dir): + with os_helper.change_cwd(work_dir), no_chdir: base_name = os.path.abspath(rel_base_name) tarball = make_archive(rel_base_name, 'gztar', root_dir, '.') @@ -1355,7 +1357,7 @@ def test_make_tarball(self): './file1', './file2', './sub/file3']) # trying an uncompressed one - with os_helper.change_cwd(work_dir): + with os_helper.change_cwd(work_dir), no_chdir: tarball = make_archive(rel_base_name, 'tar', root_dir, '.') self.assertEqual(tarball, base_name + '.tar') self.assertTrue(os.path.isfile(tarball)) @@ -1391,7 +1393,8 @@ def _create_files(self, base_dir='dist'): def test_tarfile_vs_tar(self): root_dir, base_dir = self._create_files() base_name = os.path.join(self.mkdtemp(), 'archive') - tarball = make_archive(base_name, 'gztar', root_dir, base_dir) + with no_chdir: + tarball = make_archive(base_name, 'gztar', root_dir, base_dir) # check if the compressed tarball was created self.assertEqual(tarball, base_name + '.tar.gz') @@ -1408,13 +1411,15 @@ def test_tarfile_vs_tar(self): self.assertEqual(self._tarinfo(tarball), self._tarinfo(tarball2)) # trying an uncompressed one - tarball = make_archive(base_name, 'tar', root_dir, base_dir) + with no_chdir: + tarball = make_archive(base_name, 'tar', root_dir, base_dir) self.assertEqual(tarball, base_name + '.tar') self.assertTrue(os.path.isfile(tarball)) # now for a dry_run - tarball = make_archive(base_name, 'tar', root_dir, base_dir, - dry_run=True) + with no_chdir: + tarball = make_archive(base_name, 'tar', root_dir, base_dir, + dry_run=True) self.assertEqual(tarball, base_name + '.tar') self.assertTrue(os.path.isfile(tarball)) @@ -1430,7 +1435,7 @@ def test_make_zipfile(self): work_dir = os.path.dirname(tmpdir2) rel_base_name = os.path.join(os.path.basename(tmpdir2), 'archive') - with os_helper.change_cwd(work_dir): + with os_helper.change_cwd(work_dir), no_chdir: base_name = os.path.abspath(rel_base_name) res = make_archive(rel_base_name, 'zip', root_dir) @@ -1443,7 +1448,7 @@ def test_make_zipfile(self): 'dist/file1', 'dist/file2', 'dist/sub/file3', 'outer']) - with os_helper.change_cwd(work_dir): + with os_helper.change_cwd(work_dir), no_chdir: base_name = os.path.abspath(rel_base_name) res = make_archive(rel_base_name, 'zip', root_dir, base_dir) @@ -1461,7 +1466,8 @@ def test_make_zipfile(self): def test_zipfile_vs_zip(self): root_dir, base_dir = self._create_files() base_name = os.path.join(self.mkdtemp(), 'archive') - archive = make_archive(base_name, 'zip', root_dir, base_dir) + with no_chdir: + archive = make_archive(base_name, 'zip', root_dir, base_dir) # check if ZIP file was created self.assertEqual(archive, base_name + '.zip') @@ -1487,7 +1493,8 @@ def test_zipfile_vs_zip(self): def test_unzip_zipfile(self): root_dir, base_dir = self._create_files() base_name = os.path.join(self.mkdtemp(), 'archive') - archive = make_archive(base_name, 'zip', root_dir, base_dir) + with no_chdir: + archive = make_archive(base_name, 'zip', root_dir, base_dir) # check if ZIP file was created self.assertEqual(archive, base_name + '.zip') @@ -1545,7 +1552,7 @@ def test_tarfile_root_owner(self): base_name = os.path.join(self.mkdtemp(), 'archive') group = grp.getgrgid(0)[0] owner = pwd.getpwuid(0)[0] - with os_helper.change_cwd(root_dir): + with os_helper.change_cwd(root_dir), no_chdir: archive_name = make_archive(base_name, 'gztar', root_dir, 'dist', owner=owner, group=group) @@ -1563,23 +1570,30 @@ def test_tarfile_root_owner(self): def test_make_archive_cwd(self): current_dir = os.getcwd() + root_dir = self.mkdtemp() def _breaks(*args, **kw): raise RuntimeError() + dirs = [] + def _chdir(path): + dirs.append(path) + orig_chdir(path) register_archive_format('xxx', _breaks, [], 'xxx file') try: - try: - make_archive('xxx', 'xxx', root_dir=self.mkdtemp()) - except Exception: - pass + with support.swap_attr(os, 'chdir', _chdir) as orig_chdir: + try: + make_archive('xxx', 'xxx', root_dir=root_dir) + except Exception: + pass self.assertEqual(os.getcwd(), current_dir) + self.assertEqual(dirs, [root_dir, current_dir]) finally: unregister_archive_format('xxx') def test_make_tarfile_in_curdir(self): # Issue #21280 root_dir = self.mkdtemp() - with os_helper.change_cwd(root_dir): + with os_helper.change_cwd(root_dir), no_chdir: self.assertEqual(make_archive('test', 'tar'), 'test.tar') self.assertTrue(os.path.isfile('test.tar')) @@ -1587,7 +1601,7 @@ def test_make_tarfile_in_curdir(self): def test_make_zipfile_in_curdir(self): # Issue #21280 root_dir = self.mkdtemp() - with os_helper.change_cwd(root_dir): + with os_helper.change_cwd(root_dir), no_chdir: self.assertEqual(make_archive('test', 'zip'), 'test.zip') self.assertTrue(os.path.isfile('test.zip')) @@ -1814,8 +1828,7 @@ def test_cwd(self): # Other platforms: shouldn't match in the current directory. self.assertIsNone(rv) - @unittest.skipIf(hasattr(os, 'geteuid') and os.geteuid() == 0, - 'non-root user required') + @os_helper.skip_if_dac_override def test_non_matching_mode(self): # Set the file read-only and ask for writeable files. os.chmod(self.temp_file.name, stat.S_IREAD) @@ -2166,11 +2179,11 @@ def test_move_dir_caseinsensitive(self): os.rmdir(dst_dir) - @unittest.skipUnless(hasattr(os, 'geteuid') and os.geteuid() == 0 - and hasattr(os, 'lchflags') + @os_helper.skip_unless_dac_override + @unittest.skipUnless(hasattr(os, 'lchflags') and hasattr(stat, 'SF_IMMUTABLE') and hasattr(stat, 'UF_OPAQUE'), - 'root privileges required') + 'requires lchflags') def test_move_dir_permission_denied(self): # bpo-42782: shutil.move should not create destination directories # if the source directory cannot be removed. @@ -2652,6 +2665,7 @@ def test_stty_match(self): self.assertEqual(expected, actual) + @unittest.skipIf(support.is_wasi, "WASI has no /dev/null") def test_fallback(self): with os_helper.EnvironmentVarGuard() as env: del env['LINES'] diff --git a/Lib/test/test_signal.py b/Lib/test/test_signal.py index 6aa529b0620001..2562a57ea421ff 100644 --- a/Lib/test/test_signal.py +++ b/Lib/test/test_signal.py @@ -812,15 +812,12 @@ def test_itimer_virtual(self): signal.signal(signal.SIGVTALRM, self.sig_vtalrm) signal.setitimer(self.itimer, 0.3, 0.2) - start_time = time.monotonic() - while time.monotonic() - start_time < 60.0: + for _ in support.busy_retry(support.LONG_TIMEOUT): # use up some virtual time by doing real work _ = pow(12345, 67890, 10000019) if signal.getitimer(self.itimer) == (0.0, 0.0): - break # sig_vtalrm handler stopped this itimer - else: # Issue 8424 - self.skipTest("timeout: likely cause: machine too slow or load too " - "high") + # sig_vtalrm handler stopped this itimer + break # virtual itimer should be (0.0, 0.0) now self.assertEqual(signal.getitimer(self.itimer), (0.0, 0.0)) @@ -832,15 +829,12 @@ def test_itimer_prof(self): signal.signal(signal.SIGPROF, self.sig_prof) signal.setitimer(self.itimer, 0.2, 0.2) - start_time = time.monotonic() - while time.monotonic() - start_time < 60.0: + for _ in support.busy_retry(support.LONG_TIMEOUT): # do some work _ = pow(12345, 67890, 10000019) if signal.getitimer(self.itimer) == (0.0, 0.0): - break # sig_prof handler stopped this itimer - else: # Issue 8424 - self.skipTest("timeout: likely cause: machine too slow or load too " - "high") + # sig_prof handler stopped this itimer + break # profiling itimer should be (0.0, 0.0) now self.assertEqual(signal.getitimer(self.itimer), (0.0, 0.0)) @@ -1307,8 +1301,6 @@ def handler(signum, frame): self.setsig(signal.SIGALRM, handler) # for ITIMER_REAL expected_sigs = 0 - deadline = time.monotonic() + support.SHORT_TIMEOUT - while expected_sigs < N: # Hopefully the SIGALRM will be received somewhere during # initial processing of SIGUSR1. @@ -1317,8 +1309,9 @@ def handler(signum, frame): expected_sigs += 2 # Wait for handlers to run to avoid signal coalescing - while len(sigs) < expected_sigs and time.monotonic() < deadline: - time.sleep(1e-5) + for _ in support.sleeping_retry(support.SHORT_TIMEOUT): + if len(sigs) >= expected_sigs: + break # All ITIMER_REAL signals should have been delivered to the # Python handler diff --git a/Lib/test/test_site.py b/Lib/test/test_site.py index dd018d6b38a864..9e701fd847acdf 100644 --- a/Lib/test/test_site.py +++ b/Lib/test/test_site.py @@ -10,10 +10,9 @@ from test.support import os_helper from test.support import socket_helper from test.support import captured_stderr -from test.support.os_helper import TESTFN, EnvironmentVarGuard, change_cwd +from test.support.os_helper import TESTFN, EnvironmentVarGuard import ast import builtins -import encodings import glob import io import os @@ -206,7 +205,7 @@ def test_get_path(self): scheme = 'osx_framework_user' else: scheme = os.name + '_user' - self.assertEqual(site._get_path(site._getuserbase()), + self.assertEqual(os.path.normpath(site._get_path(site._getuserbase())), sysconfig.get_path('purelib', scheme)) @unittest.skipUnless(site.ENABLE_USER_SITE, "requires access to PEP 370 " @@ -214,7 +213,7 @@ def test_get_path(self): @support.requires_subprocess() def test_s_option(self): # (ncoghlan) Change this to use script_helper... - usersite = site.USER_SITE + usersite = os.path.normpath(site.USER_SITE) self.assertIn(usersite, sys.path) env = os.environ.copy() @@ -571,6 +570,8 @@ def _create_underpth_exe(self, lines, exe_pth=True): dll_file = os.path.join(temp_dir, os.path.split(dll_src_file)[1]) shutil.copy(sys.executable, exe_file) shutil.copy(dll_src_file, dll_file) + for fn in glob.glob(os.path.join(os.path.split(dll_src_file)[0], "vcruntime*.dll")): + shutil.copy(fn, os.path.join(temp_dir, os.path.split(fn)[1])) if exe_pth: _pth_file = os.path.splitext(exe_file)[0] + '._pth' else: diff --git a/Lib/test/test_smtpd.py b/Lib/test/test_smtpd.py deleted file mode 100644 index 39ff8793648ba6..00000000000000 --- a/Lib/test/test_smtpd.py +++ /dev/null @@ -1,1019 +0,0 @@ -import unittest -import textwrap -from test import support, mock_socket -from test.support import socket_helper -from test.support import warnings_helper -import socket -import io - - -smtpd = warnings_helper.import_deprecated('smtpd') -asyncore = warnings_helper.import_deprecated('asyncore') - -if not socket_helper.has_gethostname: - raise unittest.SkipTest("test requires gethostname()") - - -class DummyServer(smtpd.SMTPServer): - def __init__(self, *args, **kwargs): - smtpd.SMTPServer.__init__(self, *args, **kwargs) - self.messages = [] - if self._decode_data: - self.return_status = 'return status' - else: - self.return_status = b'return status' - - def process_message(self, peer, mailfrom, rcpttos, data, **kw): - self.messages.append((peer, mailfrom, rcpttos, data)) - if data == self.return_status: - return '250 Okish' - if 'mail_options' in kw and 'SMTPUTF8' in kw['mail_options']: - return '250 SMTPUTF8 message okish' - - -class DummyDispatcherBroken(Exception): - pass - - -class BrokenDummyServer(DummyServer): - def listen(self, num): - raise DummyDispatcherBroken() - - -class SMTPDServerTest(unittest.TestCase): - def setUp(self): - smtpd.socket = asyncore.socket = mock_socket - - def test_process_message_unimplemented(self): - server = smtpd.SMTPServer((socket_helper.HOST, 0), ('b', 0), - decode_data=True) - conn, addr = server.accept() - channel = smtpd.SMTPChannel(server, conn, addr, decode_data=True) - - def write_line(line): - channel.socket.queue_recv(line) - channel.handle_read() - - write_line(b'HELO example') - write_line(b'MAIL From:eggs@example') - write_line(b'RCPT To:spam@example') - write_line(b'DATA') - self.assertRaises(NotImplementedError, write_line, b'spam\r\n.\r\n') - - def test_decode_data_and_enable_SMTPUTF8_raises(self): - self.assertRaises( - ValueError, - smtpd.SMTPServer, - (socket_helper.HOST, 0), - ('b', 0), - enable_SMTPUTF8=True, - decode_data=True) - - def tearDown(self): - asyncore.close_all() - asyncore.socket = smtpd.socket = socket - - -class DebuggingServerTest(unittest.TestCase): - - def setUp(self): - smtpd.socket = asyncore.socket = mock_socket - - def send_data(self, channel, data, enable_SMTPUTF8=False): - def write_line(line): - channel.socket.queue_recv(line) - channel.handle_read() - write_line(b'EHLO example') - if enable_SMTPUTF8: - write_line(b'MAIL From:eggs@example BODY=8BITMIME SMTPUTF8') - else: - write_line(b'MAIL From:eggs@example') - write_line(b'RCPT To:spam@example') - write_line(b'DATA') - write_line(data) - write_line(b'.') - - def test_process_message_with_decode_data_true(self): - server = smtpd.DebuggingServer((socket_helper.HOST, 0), ('b', 0), - decode_data=True) - conn, addr = server.accept() - channel = smtpd.SMTPChannel(server, conn, addr, decode_data=True) - with support.captured_stdout() as s: - self.send_data(channel, b'From: test\n\nhello\n') - stdout = s.getvalue() - self.assertEqual(stdout, textwrap.dedent("""\ - ---------- MESSAGE FOLLOWS ---------- - From: test - X-Peer: peer-address - - hello - ------------ END MESSAGE ------------ - """)) - - def test_process_message_with_decode_data_false(self): - server = smtpd.DebuggingServer((socket_helper.HOST, 0), ('b', 0)) - conn, addr = server.accept() - channel = smtpd.SMTPChannel(server, conn, addr) - with support.captured_stdout() as s: - self.send_data(channel, b'From: test\n\nh\xc3\xa9llo\xff\n') - stdout = s.getvalue() - self.assertEqual(stdout, textwrap.dedent("""\ - ---------- MESSAGE FOLLOWS ---------- - b'From: test' - b'X-Peer: peer-address' - b'' - b'h\\xc3\\xa9llo\\xff' - ------------ END MESSAGE ------------ - """)) - - def test_process_message_with_enable_SMTPUTF8_true(self): - server = smtpd.DebuggingServer((socket_helper.HOST, 0), ('b', 0), - enable_SMTPUTF8=True) - conn, addr = server.accept() - channel = smtpd.SMTPChannel(server, conn, addr, enable_SMTPUTF8=True) - with support.captured_stdout() as s: - self.send_data(channel, b'From: test\n\nh\xc3\xa9llo\xff\n') - stdout = s.getvalue() - self.assertEqual(stdout, textwrap.dedent("""\ - ---------- MESSAGE FOLLOWS ---------- - b'From: test' - b'X-Peer: peer-address' - b'' - b'h\\xc3\\xa9llo\\xff' - ------------ END MESSAGE ------------ - """)) - - def test_process_SMTPUTF8_message_with_enable_SMTPUTF8_true(self): - server = smtpd.DebuggingServer((socket_helper.HOST, 0), ('b', 0), - enable_SMTPUTF8=True) - conn, addr = server.accept() - channel = smtpd.SMTPChannel(server, conn, addr, enable_SMTPUTF8=True) - with support.captured_stdout() as s: - self.send_data(channel, b'From: test\n\nh\xc3\xa9llo\xff\n', - enable_SMTPUTF8=True) - stdout = s.getvalue() - self.assertEqual(stdout, textwrap.dedent("""\ - ---------- MESSAGE FOLLOWS ---------- - mail options: ['BODY=8BITMIME', 'SMTPUTF8'] - b'From: test' - b'X-Peer: peer-address' - b'' - b'h\\xc3\\xa9llo\\xff' - ------------ END MESSAGE ------------ - """)) - - def tearDown(self): - asyncore.close_all() - asyncore.socket = smtpd.socket = socket - - -class TestFamilyDetection(unittest.TestCase): - def setUp(self): - smtpd.socket = asyncore.socket = mock_socket - - def tearDown(self): - asyncore.close_all() - asyncore.socket = smtpd.socket = socket - - @unittest.skipUnless(socket_helper.IPV6_ENABLED, "IPv6 not enabled") - def test_socket_uses_IPv6(self): - server = smtpd.SMTPServer((socket_helper.HOSTv6, 0), (socket_helper.HOSTv4, 0)) - self.assertEqual(server.socket.family, socket.AF_INET6) - - def test_socket_uses_IPv4(self): - server = smtpd.SMTPServer((socket_helper.HOSTv4, 0), (socket_helper.HOSTv6, 0)) - self.assertEqual(server.socket.family, socket.AF_INET) - - -class TestRcptOptionParsing(unittest.TestCase): - error_response = (b'555 RCPT TO parameters not recognized or not ' - b'implemented\r\n') - - def setUp(self): - smtpd.socket = asyncore.socket = mock_socket - self.old_debugstream = smtpd.DEBUGSTREAM - self.debug = smtpd.DEBUGSTREAM = io.StringIO() - - def tearDown(self): - asyncore.close_all() - asyncore.socket = smtpd.socket = socket - smtpd.DEBUGSTREAM = self.old_debugstream - - def write_line(self, channel, line): - channel.socket.queue_recv(line) - channel.handle_read() - - def test_params_rejected(self): - server = DummyServer((socket_helper.HOST, 0), ('b', 0)) - conn, addr = server.accept() - channel = smtpd.SMTPChannel(server, conn, addr) - self.write_line(channel, b'EHLO example') - self.write_line(channel, b'MAIL from: <foo@example.com> size=20') - self.write_line(channel, b'RCPT to: <foo@example.com> foo=bar') - self.assertEqual(channel.socket.last, self.error_response) - - def test_nothing_accepted(self): - server = DummyServer((socket_helper.HOST, 0), ('b', 0)) - conn, addr = server.accept() - channel = smtpd.SMTPChannel(server, conn, addr) - self.write_line(channel, b'EHLO example') - self.write_line(channel, b'MAIL from: <foo@example.com> size=20') - self.write_line(channel, b'RCPT to: <foo@example.com>') - self.assertEqual(channel.socket.last, b'250 OK\r\n') - - -class TestMailOptionParsing(unittest.TestCase): - error_response = (b'555 MAIL FROM parameters not recognized or not ' - b'implemented\r\n') - - def setUp(self): - smtpd.socket = asyncore.socket = mock_socket - self.old_debugstream = smtpd.DEBUGSTREAM - self.debug = smtpd.DEBUGSTREAM = io.StringIO() - - def tearDown(self): - asyncore.close_all() - asyncore.socket = smtpd.socket = socket - smtpd.DEBUGSTREAM = self.old_debugstream - - def write_line(self, channel, line): - channel.socket.queue_recv(line) - channel.handle_read() - - def test_with_decode_data_true(self): - server = DummyServer((socket_helper.HOST, 0), ('b', 0), decode_data=True) - conn, addr = server.accept() - channel = smtpd.SMTPChannel(server, conn, addr, decode_data=True) - self.write_line(channel, b'EHLO example') - for line in [ - b'MAIL from: <foo@example.com> size=20 SMTPUTF8', - b'MAIL from: <foo@example.com> size=20 SMTPUTF8 BODY=8BITMIME', - b'MAIL from: <foo@example.com> size=20 BODY=UNKNOWN', - b'MAIL from: <foo@example.com> size=20 body=8bitmime', - ]: - self.write_line(channel, line) - self.assertEqual(channel.socket.last, self.error_response) - self.write_line(channel, b'MAIL from: <foo@example.com> size=20') - self.assertEqual(channel.socket.last, b'250 OK\r\n') - - def test_with_decode_data_false(self): - server = DummyServer((socket_helper.HOST, 0), ('b', 0)) - conn, addr = server.accept() - channel = smtpd.SMTPChannel(server, conn, addr) - self.write_line(channel, b'EHLO example') - for line in [ - b'MAIL from: <foo@example.com> size=20 SMTPUTF8', - b'MAIL from: <foo@example.com> size=20 SMTPUTF8 BODY=8BITMIME', - ]: - self.write_line(channel, line) - self.assertEqual(channel.socket.last, self.error_response) - self.write_line( - channel, - b'MAIL from: <foo@example.com> size=20 SMTPUTF8 BODY=UNKNOWN') - self.assertEqual( - channel.socket.last, - b'501 Error: BODY can only be one of 7BIT, 8BITMIME\r\n') - self.write_line( - channel, b'MAIL from: <foo@example.com> size=20 body=8bitmime') - self.assertEqual(channel.socket.last, b'250 OK\r\n') - - def test_with_enable_smtputf8_true(self): - server = DummyServer((socket_helper.HOST, 0), ('b', 0), enable_SMTPUTF8=True) - conn, addr = server.accept() - channel = smtpd.SMTPChannel(server, conn, addr, enable_SMTPUTF8=True) - self.write_line(channel, b'EHLO example') - self.write_line( - channel, - b'MAIL from: <foo@example.com> size=20 body=8bitmime smtputf8') - self.assertEqual(channel.socket.last, b'250 OK\r\n') - - -class SMTPDChannelTest(unittest.TestCase): - def setUp(self): - smtpd.socket = asyncore.socket = mock_socket - self.old_debugstream = smtpd.DEBUGSTREAM - self.debug = smtpd.DEBUGSTREAM = io.StringIO() - self.server = DummyServer((socket_helper.HOST, 0), ('b', 0), - decode_data=True) - conn, addr = self.server.accept() - self.channel = smtpd.SMTPChannel(self.server, conn, addr, - decode_data=True) - - def tearDown(self): - asyncore.close_all() - asyncore.socket = smtpd.socket = socket - smtpd.DEBUGSTREAM = self.old_debugstream - - def write_line(self, line): - self.channel.socket.queue_recv(line) - self.channel.handle_read() - - def test_broken_connect(self): - self.assertRaises( - DummyDispatcherBroken, BrokenDummyServer, - (socket_helper.HOST, 0), ('b', 0), decode_data=True) - - def test_decode_data_and_enable_SMTPUTF8_raises(self): - self.assertRaises( - ValueError, smtpd.SMTPChannel, - self.server, self.channel.conn, self.channel.addr, - enable_SMTPUTF8=True, decode_data=True) - - def test_server_accept(self): - self.server.handle_accept() - - def test_missing_data(self): - self.write_line(b'') - self.assertEqual(self.channel.socket.last, - b'500 Error: bad syntax\r\n') - - def test_EHLO(self): - self.write_line(b'EHLO example') - self.assertEqual(self.channel.socket.last, b'250 HELP\r\n') - - def test_EHLO_bad_syntax(self): - self.write_line(b'EHLO') - self.assertEqual(self.channel.socket.last, - b'501 Syntax: EHLO hostname\r\n') - - def test_EHLO_duplicate(self): - self.write_line(b'EHLO example') - self.write_line(b'EHLO example') - self.assertEqual(self.channel.socket.last, - b'503 Duplicate HELO/EHLO\r\n') - - def test_EHLO_HELO_duplicate(self): - self.write_line(b'EHLO example') - self.write_line(b'HELO example') - self.assertEqual(self.channel.socket.last, - b'503 Duplicate HELO/EHLO\r\n') - - def test_HELO(self): - name = smtpd.socket.getfqdn() - self.write_line(b'HELO example') - self.assertEqual(self.channel.socket.last, - '250 {}\r\n'.format(name).encode('ascii')) - - def test_HELO_EHLO_duplicate(self): - self.write_line(b'HELO example') - self.write_line(b'EHLO example') - self.assertEqual(self.channel.socket.last, - b'503 Duplicate HELO/EHLO\r\n') - - def test_HELP(self): - self.write_line(b'HELP') - self.assertEqual(self.channel.socket.last, - b'250 Supported commands: EHLO HELO MAIL RCPT ' + \ - b'DATA RSET NOOP QUIT VRFY\r\n') - - def test_HELP_command(self): - self.write_line(b'HELP MAIL') - self.assertEqual(self.channel.socket.last, - b'250 Syntax: MAIL FROM: <address>\r\n') - - def test_HELP_command_unknown(self): - self.write_line(b'HELP SPAM') - self.assertEqual(self.channel.socket.last, - b'501 Supported commands: EHLO HELO MAIL RCPT ' + \ - b'DATA RSET NOOP QUIT VRFY\r\n') - - def test_HELO_bad_syntax(self): - self.write_line(b'HELO') - self.assertEqual(self.channel.socket.last, - b'501 Syntax: HELO hostname\r\n') - - def test_HELO_duplicate(self): - self.write_line(b'HELO example') - self.write_line(b'HELO example') - self.assertEqual(self.channel.socket.last, - b'503 Duplicate HELO/EHLO\r\n') - - def test_HELO_parameter_rejected_when_extensions_not_enabled(self): - self.extended_smtp = False - self.write_line(b'HELO example') - self.write_line(b'MAIL from:<foo@example.com> SIZE=1234') - self.assertEqual(self.channel.socket.last, - b'501 Syntax: MAIL FROM: <address>\r\n') - - def test_MAIL_allows_space_after_colon(self): - self.write_line(b'HELO example') - self.write_line(b'MAIL from: <foo@example.com>') - self.assertEqual(self.channel.socket.last, - b'250 OK\r\n') - - def test_extended_MAIL_allows_space_after_colon(self): - self.write_line(b'EHLO example') - self.write_line(b'MAIL from: <foo@example.com> size=20') - self.assertEqual(self.channel.socket.last, - b'250 OK\r\n') - - def test_NOOP(self): - self.write_line(b'NOOP') - self.assertEqual(self.channel.socket.last, b'250 OK\r\n') - - def test_HELO_NOOP(self): - self.write_line(b'HELO example') - self.write_line(b'NOOP') - self.assertEqual(self.channel.socket.last, b'250 OK\r\n') - - def test_NOOP_bad_syntax(self): - self.write_line(b'NOOP hi') - self.assertEqual(self.channel.socket.last, - b'501 Syntax: NOOP\r\n') - - def test_QUIT(self): - self.write_line(b'QUIT') - self.assertEqual(self.channel.socket.last, b'221 Bye\r\n') - - def test_HELO_QUIT(self): - self.write_line(b'HELO example') - self.write_line(b'QUIT') - self.assertEqual(self.channel.socket.last, b'221 Bye\r\n') - - def test_QUIT_arg_ignored(self): - self.write_line(b'QUIT bye bye') - self.assertEqual(self.channel.socket.last, b'221 Bye\r\n') - - def test_bad_state(self): - self.channel.smtp_state = 'BAD STATE' - self.write_line(b'HELO example') - self.assertEqual(self.channel.socket.last, - b'451 Internal confusion\r\n') - - def test_command_too_long(self): - self.write_line(b'HELO example') - self.write_line(b'MAIL from: ' + - b'a' * self.channel.command_size_limit + - b'@example') - self.assertEqual(self.channel.socket.last, - b'500 Error: line too long\r\n') - - def test_MAIL_command_limit_extended_with_SIZE(self): - self.write_line(b'EHLO example') - fill_len = self.channel.command_size_limit - len('MAIL from:<@example>') - self.write_line(b'MAIL from:<' + - b'a' * fill_len + - b'@example> SIZE=1234') - self.assertEqual(self.channel.socket.last, b'250 OK\r\n') - - self.write_line(b'MAIL from:<' + - b'a' * (fill_len + 26) + - b'@example> SIZE=1234') - self.assertEqual(self.channel.socket.last, - b'500 Error: line too long\r\n') - - def test_MAIL_command_rejects_SMTPUTF8_by_default(self): - self.write_line(b'EHLO example') - self.write_line( - b'MAIL from: <naive@example.com> BODY=8BITMIME SMTPUTF8') - self.assertEqual(self.channel.socket.last[0:1], b'5') - - def test_data_longer_than_default_data_size_limit(self): - # Hack the default so we don't have to generate so much data. - self.channel.data_size_limit = 1048 - self.write_line(b'HELO example') - self.write_line(b'MAIL From:eggs@example') - self.write_line(b'RCPT To:spam@example') - self.write_line(b'DATA') - self.write_line(b'A' * self.channel.data_size_limit + - b'A\r\n.') - self.assertEqual(self.channel.socket.last, - b'552 Error: Too much mail data\r\n') - - def test_MAIL_size_parameter(self): - self.write_line(b'EHLO example') - self.write_line(b'MAIL FROM:<eggs@example> SIZE=512') - self.assertEqual(self.channel.socket.last, - b'250 OK\r\n') - - def test_MAIL_invalid_size_parameter(self): - self.write_line(b'EHLO example') - self.write_line(b'MAIL FROM:<eggs@example> SIZE=invalid') - self.assertEqual(self.channel.socket.last, - b'501 Syntax: MAIL FROM: <address> [SP <mail-parameters>]\r\n') - - def test_MAIL_RCPT_unknown_parameters(self): - self.write_line(b'EHLO example') - self.write_line(b'MAIL FROM:<eggs@example> ham=green') - self.assertEqual(self.channel.socket.last, - b'555 MAIL FROM parameters not recognized or not implemented\r\n') - - self.write_line(b'MAIL FROM:<eggs@example>') - self.write_line(b'RCPT TO:<eggs@example> ham=green') - self.assertEqual(self.channel.socket.last, - b'555 RCPT TO parameters not recognized or not implemented\r\n') - - def test_MAIL_size_parameter_larger_than_default_data_size_limit(self): - self.channel.data_size_limit = 1048 - self.write_line(b'EHLO example') - self.write_line(b'MAIL FROM:<eggs@example> SIZE=2096') - self.assertEqual(self.channel.socket.last, - b'552 Error: message size exceeds fixed maximum message size\r\n') - - def test_need_MAIL(self): - self.write_line(b'HELO example') - self.write_line(b'RCPT to:spam@example') - self.assertEqual(self.channel.socket.last, - b'503 Error: need MAIL command\r\n') - - def test_MAIL_syntax_HELO(self): - self.write_line(b'HELO example') - self.write_line(b'MAIL from eggs@example') - self.assertEqual(self.channel.socket.last, - b'501 Syntax: MAIL FROM: <address>\r\n') - - def test_MAIL_syntax_EHLO(self): - self.write_line(b'EHLO example') - self.write_line(b'MAIL from eggs@example') - self.assertEqual(self.channel.socket.last, - b'501 Syntax: MAIL FROM: <address> [SP <mail-parameters>]\r\n') - - def test_MAIL_missing_address(self): - self.write_line(b'HELO example') - self.write_line(b'MAIL from:') - self.assertEqual(self.channel.socket.last, - b'501 Syntax: MAIL FROM: <address>\r\n') - - def test_MAIL_chevrons(self): - self.write_line(b'HELO example') - self.write_line(b'MAIL from:<eggs@example>') - self.assertEqual(self.channel.socket.last, b'250 OK\r\n') - - def test_MAIL_empty_chevrons(self): - self.write_line(b'EHLO example') - self.write_line(b'MAIL from:<>') - self.assertEqual(self.channel.socket.last, b'250 OK\r\n') - - def test_MAIL_quoted_localpart(self): - self.write_line(b'EHLO example') - self.write_line(b'MAIL from: <"Fred Blogs"@example.com>') - self.assertEqual(self.channel.socket.last, b'250 OK\r\n') - self.assertEqual(self.channel.mailfrom, '"Fred Blogs"@example.com') - - def test_MAIL_quoted_localpart_no_angles(self): - self.write_line(b'EHLO example') - self.write_line(b'MAIL from: "Fred Blogs"@example.com') - self.assertEqual(self.channel.socket.last, b'250 OK\r\n') - self.assertEqual(self.channel.mailfrom, '"Fred Blogs"@example.com') - - def test_MAIL_quoted_localpart_with_size(self): - self.write_line(b'EHLO example') - self.write_line(b'MAIL from: <"Fred Blogs"@example.com> SIZE=1000') - self.assertEqual(self.channel.socket.last, b'250 OK\r\n') - self.assertEqual(self.channel.mailfrom, '"Fred Blogs"@example.com') - - def test_MAIL_quoted_localpart_with_size_no_angles(self): - self.write_line(b'EHLO example') - self.write_line(b'MAIL from: "Fred Blogs"@example.com SIZE=1000') - self.assertEqual(self.channel.socket.last, b'250 OK\r\n') - self.assertEqual(self.channel.mailfrom, '"Fred Blogs"@example.com') - - def test_nested_MAIL(self): - self.write_line(b'HELO example') - self.write_line(b'MAIL from:eggs@example') - self.write_line(b'MAIL from:spam@example') - self.assertEqual(self.channel.socket.last, - b'503 Error: nested MAIL command\r\n') - - def test_VRFY(self): - self.write_line(b'VRFY eggs@example') - self.assertEqual(self.channel.socket.last, - b'252 Cannot VRFY user, but will accept message and attempt ' + \ - b'delivery\r\n') - - def test_VRFY_syntax(self): - self.write_line(b'VRFY') - self.assertEqual(self.channel.socket.last, - b'501 Syntax: VRFY <address>\r\n') - - def test_EXPN_not_implemented(self): - self.write_line(b'EXPN') - self.assertEqual(self.channel.socket.last, - b'502 EXPN not implemented\r\n') - - def test_no_HELO_MAIL(self): - self.write_line(b'MAIL from:<foo@example.com>') - self.assertEqual(self.channel.socket.last, - b'503 Error: send HELO first\r\n') - - def test_need_RCPT(self): - self.write_line(b'HELO example') - self.write_line(b'MAIL From:eggs@example') - self.write_line(b'DATA') - self.assertEqual(self.channel.socket.last, - b'503 Error: need RCPT command\r\n') - - def test_RCPT_syntax_HELO(self): - self.write_line(b'HELO example') - self.write_line(b'MAIL From: eggs@example') - self.write_line(b'RCPT to eggs@example') - self.assertEqual(self.channel.socket.last, - b'501 Syntax: RCPT TO: <address>\r\n') - - def test_RCPT_syntax_EHLO(self): - self.write_line(b'EHLO example') - self.write_line(b'MAIL From: eggs@example') - self.write_line(b'RCPT to eggs@example') - self.assertEqual(self.channel.socket.last, - b'501 Syntax: RCPT TO: <address> [SP <mail-parameters>]\r\n') - - def test_RCPT_lowercase_to_OK(self): - self.write_line(b'HELO example') - self.write_line(b'MAIL From: eggs@example') - self.write_line(b'RCPT to: <eggs@example>') - self.assertEqual(self.channel.socket.last, b'250 OK\r\n') - - def test_no_HELO_RCPT(self): - self.write_line(b'RCPT to eggs@example') - self.assertEqual(self.channel.socket.last, - b'503 Error: send HELO first\r\n') - - def test_data_dialog(self): - self.write_line(b'HELO example') - self.write_line(b'MAIL From:eggs@example') - self.assertEqual(self.channel.socket.last, b'250 OK\r\n') - self.write_line(b'RCPT To:spam@example') - self.assertEqual(self.channel.socket.last, b'250 OK\r\n') - - self.write_line(b'DATA') - self.assertEqual(self.channel.socket.last, - b'354 End data with <CR><LF>.<CR><LF>\r\n') - self.write_line(b'data\r\nmore\r\n.') - self.assertEqual(self.channel.socket.last, b'250 OK\r\n') - self.assertEqual(self.server.messages, - [(('peer-address', 'peer-port'), - 'eggs@example', - ['spam@example'], - 'data\nmore')]) - - def test_DATA_syntax(self): - self.write_line(b'HELO example') - self.write_line(b'MAIL From:eggs@example') - self.write_line(b'RCPT To:spam@example') - self.write_line(b'DATA spam') - self.assertEqual(self.channel.socket.last, b'501 Syntax: DATA\r\n') - - def test_no_HELO_DATA(self): - self.write_line(b'DATA spam') - self.assertEqual(self.channel.socket.last, - b'503 Error: send HELO first\r\n') - - def test_data_transparency_section_4_5_2(self): - self.write_line(b'HELO example') - self.write_line(b'MAIL From:eggs@example') - self.write_line(b'RCPT To:spam@example') - self.write_line(b'DATA') - self.write_line(b'..\r\n.\r\n') - self.assertEqual(self.channel.received_data, '.') - - def test_multiple_RCPT(self): - self.write_line(b'HELO example') - self.write_line(b'MAIL From:eggs@example') - self.write_line(b'RCPT To:spam@example') - self.write_line(b'RCPT To:ham@example') - self.write_line(b'DATA') - self.write_line(b'data\r\n.') - self.assertEqual(self.server.messages, - [(('peer-address', 'peer-port'), - 'eggs@example', - ['spam@example','ham@example'], - 'data')]) - - def test_manual_status(self): - # checks that the Channel is able to return a custom status message - self.write_line(b'HELO example') - self.write_line(b'MAIL From:eggs@example') - self.write_line(b'RCPT To:spam@example') - self.write_line(b'DATA') - self.write_line(b'return status\r\n.') - self.assertEqual(self.channel.socket.last, b'250 Okish\r\n') - - def test_RSET(self): - self.write_line(b'HELO example') - self.write_line(b'MAIL From:eggs@example') - self.write_line(b'RCPT To:spam@example') - self.write_line(b'RSET') - self.assertEqual(self.channel.socket.last, b'250 OK\r\n') - self.write_line(b'MAIL From:foo@example') - self.write_line(b'RCPT To:eggs@example') - self.write_line(b'DATA') - self.write_line(b'data\r\n.') - self.assertEqual(self.server.messages, - [(('peer-address', 'peer-port'), - 'foo@example', - ['eggs@example'], - 'data')]) - - def test_HELO_RSET(self): - self.write_line(b'HELO example') - self.write_line(b'RSET') - self.assertEqual(self.channel.socket.last, b'250 OK\r\n') - - def test_RSET_syntax(self): - self.write_line(b'RSET hi') - self.assertEqual(self.channel.socket.last, b'501 Syntax: RSET\r\n') - - def test_unknown_command(self): - self.write_line(b'UNKNOWN_CMD') - self.assertEqual(self.channel.socket.last, - b'500 Error: command "UNKNOWN_CMD" not ' + \ - b'recognized\r\n') - - def test_attribute_deprecations(self): - with warnings_helper.check_warnings(('', DeprecationWarning)): - spam = self.channel._SMTPChannel__server - with warnings_helper.check_warnings(('', DeprecationWarning)): - self.channel._SMTPChannel__server = 'spam' - with warnings_helper.check_warnings(('', DeprecationWarning)): - spam = self.channel._SMTPChannel__line - with warnings_helper.check_warnings(('', DeprecationWarning)): - self.channel._SMTPChannel__line = 'spam' - with warnings_helper.check_warnings(('', DeprecationWarning)): - spam = self.channel._SMTPChannel__state - with warnings_helper.check_warnings(('', DeprecationWarning)): - self.channel._SMTPChannel__state = 'spam' - with warnings_helper.check_warnings(('', DeprecationWarning)): - spam = self.channel._SMTPChannel__greeting - with warnings_helper.check_warnings(('', DeprecationWarning)): - self.channel._SMTPChannel__greeting = 'spam' - with warnings_helper.check_warnings(('', DeprecationWarning)): - spam = self.channel._SMTPChannel__mailfrom - with warnings_helper.check_warnings(('', DeprecationWarning)): - self.channel._SMTPChannel__mailfrom = 'spam' - with warnings_helper.check_warnings(('', DeprecationWarning)): - spam = self.channel._SMTPChannel__rcpttos - with warnings_helper.check_warnings(('', DeprecationWarning)): - self.channel._SMTPChannel__rcpttos = 'spam' - with warnings_helper.check_warnings(('', DeprecationWarning)): - spam = self.channel._SMTPChannel__data - with warnings_helper.check_warnings(('', DeprecationWarning)): - self.channel._SMTPChannel__data = 'spam' - with warnings_helper.check_warnings(('', DeprecationWarning)): - spam = self.channel._SMTPChannel__fqdn - with warnings_helper.check_warnings(('', DeprecationWarning)): - self.channel._SMTPChannel__fqdn = 'spam' - with warnings_helper.check_warnings(('', DeprecationWarning)): - spam = self.channel._SMTPChannel__peer - with warnings_helper.check_warnings(('', DeprecationWarning)): - self.channel._SMTPChannel__peer = 'spam' - with warnings_helper.check_warnings(('', DeprecationWarning)): - spam = self.channel._SMTPChannel__conn - with warnings_helper.check_warnings(('', DeprecationWarning)): - self.channel._SMTPChannel__conn = 'spam' - with warnings_helper.check_warnings(('', DeprecationWarning)): - spam = self.channel._SMTPChannel__addr - with warnings_helper.check_warnings(('', DeprecationWarning)): - self.channel._SMTPChannel__addr = 'spam' - -@unittest.skipUnless(socket_helper.IPV6_ENABLED, "IPv6 not enabled") -class SMTPDChannelIPv6Test(SMTPDChannelTest): - def setUp(self): - smtpd.socket = asyncore.socket = mock_socket - self.old_debugstream = smtpd.DEBUGSTREAM - self.debug = smtpd.DEBUGSTREAM = io.StringIO() - self.server = DummyServer((socket_helper.HOSTv6, 0), ('b', 0), - decode_data=True) - conn, addr = self.server.accept() - self.channel = smtpd.SMTPChannel(self.server, conn, addr, - decode_data=True) - -class SMTPDChannelWithDataSizeLimitTest(unittest.TestCase): - - def setUp(self): - smtpd.socket = asyncore.socket = mock_socket - self.old_debugstream = smtpd.DEBUGSTREAM - self.debug = smtpd.DEBUGSTREAM = io.StringIO() - self.server = DummyServer((socket_helper.HOST, 0), ('b', 0), - decode_data=True) - conn, addr = self.server.accept() - # Set DATA size limit to 32 bytes for easy testing - self.channel = smtpd.SMTPChannel(self.server, conn, addr, 32, - decode_data=True) - - def tearDown(self): - asyncore.close_all() - asyncore.socket = smtpd.socket = socket - smtpd.DEBUGSTREAM = self.old_debugstream - - def write_line(self, line): - self.channel.socket.queue_recv(line) - self.channel.handle_read() - - def test_data_limit_dialog(self): - self.write_line(b'HELO example') - self.write_line(b'MAIL From:eggs@example') - self.assertEqual(self.channel.socket.last, b'250 OK\r\n') - self.write_line(b'RCPT To:spam@example') - self.assertEqual(self.channel.socket.last, b'250 OK\r\n') - - self.write_line(b'DATA') - self.assertEqual(self.channel.socket.last, - b'354 End data with <CR><LF>.<CR><LF>\r\n') - self.write_line(b'data\r\nmore\r\n.') - self.assertEqual(self.channel.socket.last, b'250 OK\r\n') - self.assertEqual(self.server.messages, - [(('peer-address', 'peer-port'), - 'eggs@example', - ['spam@example'], - 'data\nmore')]) - - def test_data_limit_dialog_too_much_data(self): - self.write_line(b'HELO example') - self.write_line(b'MAIL From:eggs@example') - self.assertEqual(self.channel.socket.last, b'250 OK\r\n') - self.write_line(b'RCPT To:spam@example') - self.assertEqual(self.channel.socket.last, b'250 OK\r\n') - - self.write_line(b'DATA') - self.assertEqual(self.channel.socket.last, - b'354 End data with <CR><LF>.<CR><LF>\r\n') - self.write_line(b'This message is longer than 32 bytes\r\n.') - self.assertEqual(self.channel.socket.last, - b'552 Error: Too much mail data\r\n') - - -class SMTPDChannelWithDecodeDataFalse(unittest.TestCase): - - def setUp(self): - smtpd.socket = asyncore.socket = mock_socket - self.old_debugstream = smtpd.DEBUGSTREAM - self.debug = smtpd.DEBUGSTREAM = io.StringIO() - self.server = DummyServer((socket_helper.HOST, 0), ('b', 0)) - conn, addr = self.server.accept() - self.channel = smtpd.SMTPChannel(self.server, conn, addr) - - def tearDown(self): - asyncore.close_all() - asyncore.socket = smtpd.socket = socket - smtpd.DEBUGSTREAM = self.old_debugstream - - def write_line(self, line): - self.channel.socket.queue_recv(line) - self.channel.handle_read() - - def test_ascii_data(self): - self.write_line(b'HELO example') - self.write_line(b'MAIL From:eggs@example') - self.write_line(b'RCPT To:spam@example') - self.write_line(b'DATA') - self.write_line(b'plain ascii text') - self.write_line(b'.') - self.assertEqual(self.channel.received_data, b'plain ascii text') - - def test_utf8_data(self): - self.write_line(b'HELO example') - self.write_line(b'MAIL From:eggs@example') - self.write_line(b'RCPT To:spam@example') - self.write_line(b'DATA') - self.write_line(b'utf8 enriched text: \xc5\xbc\xc5\xba\xc4\x87') - self.write_line(b'and some plain ascii') - self.write_line(b'.') - self.assertEqual( - self.channel.received_data, - b'utf8 enriched text: \xc5\xbc\xc5\xba\xc4\x87\n' - b'and some plain ascii') - - -class SMTPDChannelWithDecodeDataTrue(unittest.TestCase): - - def setUp(self): - smtpd.socket = asyncore.socket = mock_socket - self.old_debugstream = smtpd.DEBUGSTREAM - self.debug = smtpd.DEBUGSTREAM = io.StringIO() - self.server = DummyServer((socket_helper.HOST, 0), ('b', 0), - decode_data=True) - conn, addr = self.server.accept() - # Set decode_data to True - self.channel = smtpd.SMTPChannel(self.server, conn, addr, - decode_data=True) - - def tearDown(self): - asyncore.close_all() - asyncore.socket = smtpd.socket = socket - smtpd.DEBUGSTREAM = self.old_debugstream - - def write_line(self, line): - self.channel.socket.queue_recv(line) - self.channel.handle_read() - - def test_ascii_data(self): - self.write_line(b'HELO example') - self.write_line(b'MAIL From:eggs@example') - self.write_line(b'RCPT To:spam@example') - self.write_line(b'DATA') - self.write_line(b'plain ascii text') - self.write_line(b'.') - self.assertEqual(self.channel.received_data, 'plain ascii text') - - def test_utf8_data(self): - self.write_line(b'HELO example') - self.write_line(b'MAIL From:eggs@example') - self.write_line(b'RCPT To:spam@example') - self.write_line(b'DATA') - self.write_line(b'utf8 enriched text: \xc5\xbc\xc5\xba\xc4\x87') - self.write_line(b'and some plain ascii') - self.write_line(b'.') - self.assertEqual( - self.channel.received_data, - 'utf8 enriched text: żźć\nand some plain ascii') - - -class SMTPDChannelTestWithEnableSMTPUTF8True(unittest.TestCase): - def setUp(self): - smtpd.socket = asyncore.socket = mock_socket - self.old_debugstream = smtpd.DEBUGSTREAM - self.debug = smtpd.DEBUGSTREAM = io.StringIO() - self.server = DummyServer((socket_helper.HOST, 0), ('b', 0), - enable_SMTPUTF8=True) - conn, addr = self.server.accept() - self.channel = smtpd.SMTPChannel(self.server, conn, addr, - enable_SMTPUTF8=True) - - def tearDown(self): - asyncore.close_all() - asyncore.socket = smtpd.socket = socket - smtpd.DEBUGSTREAM = self.old_debugstream - - def write_line(self, line): - self.channel.socket.queue_recv(line) - self.channel.handle_read() - - def test_MAIL_command_accepts_SMTPUTF8_when_announced(self): - self.write_line(b'EHLO example') - self.write_line( - 'MAIL from: <naïve@example.com> BODY=8BITMIME SMTPUTF8'.encode( - 'utf-8') - ) - self.assertEqual(self.channel.socket.last, b'250 OK\r\n') - - def test_process_smtputf8_message(self): - self.write_line(b'EHLO example') - for mail_parameters in [b'', b'BODY=8BITMIME SMTPUTF8']: - self.write_line(b'MAIL from: <a@example> ' + mail_parameters) - self.assertEqual(self.channel.socket.last[0:3], b'250') - self.write_line(b'rcpt to:<b@example.com>') - self.assertEqual(self.channel.socket.last[0:3], b'250') - self.write_line(b'data') - self.assertEqual(self.channel.socket.last[0:3], b'354') - self.write_line(b'c\r\n.') - if mail_parameters == b'': - self.assertEqual(self.channel.socket.last, b'250 OK\r\n') - else: - self.assertEqual(self.channel.socket.last, - b'250 SMTPUTF8 message okish\r\n') - - def test_utf8_data(self): - self.write_line(b'EHLO example') - self.write_line( - 'MAIL From: naïve@examplé BODY=8BITMIME SMTPUTF8'.encode('utf-8')) - self.assertEqual(self.channel.socket.last[0:3], b'250') - self.write_line('RCPT To:späm@examplé'.encode('utf-8')) - self.assertEqual(self.channel.socket.last[0:3], b'250') - self.write_line(b'DATA') - self.assertEqual(self.channel.socket.last[0:3], b'354') - self.write_line(b'utf8 enriched text: \xc5\xbc\xc5\xba\xc4\x87') - self.write_line(b'.') - self.assertEqual( - self.channel.received_data, - b'utf8 enriched text: \xc5\xbc\xc5\xba\xc4\x87') - - def test_MAIL_command_limit_extended_with_SIZE_and_SMTPUTF8(self): - self.write_line(b'ehlo example') - fill_len = (512 + 26 + 10) - len('mail from:<@example>') - self.write_line(b'MAIL from:<' + - b'a' * (fill_len + 1) + - b'@example>') - self.assertEqual(self.channel.socket.last, - b'500 Error: line too long\r\n') - self.write_line(b'MAIL from:<' + - b'a' * fill_len + - b'@example>') - self.assertEqual(self.channel.socket.last, b'250 OK\r\n') - - def test_multiple_emails_with_extended_command_length(self): - self.write_line(b'ehlo example') - fill_len = (512 + 26 + 10) - len('mail from:<@example>') - for char in [b'a', b'b', b'c']: - self.write_line(b'MAIL from:<' + char * fill_len + b'a@example>') - self.assertEqual(self.channel.socket.last[0:3], b'500') - self.write_line(b'MAIL from:<' + char * fill_len + b'@example>') - self.assertEqual(self.channel.socket.last[0:3], b'250') - self.write_line(b'rcpt to:<hans@example.com>') - self.assertEqual(self.channel.socket.last[0:3], b'250') - self.write_line(b'data') - self.assertEqual(self.channel.socket.last[0:3], b'354') - self.write_line(b'test\r\n.') - self.assertEqual(self.channel.socket.last[0:3], b'250') - - -class MiscTestCase(unittest.TestCase): - def test__all__(self): - not_exported = { - "program", "Devnull", "DEBUGSTREAM", "NEWLINE", "COMMASPACE", - "DATA_SIZE_DEFAULT", "usage", "Options", "parseargs", - } - support.check__all__(self, smtpd, not_exported=not_exported) - - -if __name__ == "__main__": - unittest.main() diff --git a/Lib/test/test_smtplib.py b/Lib/test/test_smtplib.py index a4074c02f1926f..3210ef217703e5 100644 --- a/Lib/test/test_smtplib.py +++ b/Lib/test/test_smtplib.py @@ -24,9 +24,9 @@ from test.support import warnings_helper from unittest.mock import Mock +from . import smtpd asyncore = warnings_helper.import_deprecated('asyncore') -smtpd = warnings_helper.import_deprecated('smtpd') support.requires_working_socket(module=True) diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py old mode 100755 new mode 100644 index c98190382416ca..d808f3f62b96dc --- a/Lib/test/test_socket.py +++ b/Lib/test/test_socket.py @@ -4,31 +4,30 @@ from test.support import socket_helper from test.support import threading_helper +import _thread as thread +import array +import contextlib import errno import io import itertools -import socket -import select -import tempfile -import time -import traceback -import queue -import sys -import os -import platform -import array -import contextlib -from weakref import proxy -import signal import math +import os import pickle -import re -import struct +import platform +import queue import random -import shutil +import re +import select +import signal +import socket import string -import _thread as thread +import struct +import sys +import tempfile import threading +import time +import traceback +from weakref import proxy try: import multiprocessing except ImportError: @@ -605,17 +604,18 @@ class SocketTestBase(unittest.TestCase): def setUp(self): self.serv = self.newSocket() + self.addCleanup(self.close_server) self.bindServer() + def close_server(self): + self.serv.close() + self.serv = None + def bindServer(self): """Bind server socket and set self.serv_addr to its address.""" self.bindSock(self.serv) self.serv_addr = self.serv.getsockname() - def tearDown(self): - self.serv.close() - self.serv = None - class SocketListeningTestMixin(SocketTestBase): """Mixin to listen on the server socket.""" @@ -700,15 +700,10 @@ class UnixSocketTestBase(SocketTestBase): # can't send anything that might be problematic for a privileged # user running the tests. - def setUp(self): - self.dir_path = tempfile.mkdtemp() - self.addCleanup(os.rmdir, self.dir_path) - super().setUp() - def bindSock(self, sock): - path = tempfile.mktemp(dir=self.dir_path) - socket_helper.bind_unix_socket(sock, path) + path = socket_helper.create_unix_domain_name() self.addCleanup(os_helper.unlink, path) + socket_helper.bind_unix_socket(sock, path) class UnixStreamBase(UnixSocketTestBase): """Base class for Unix-domain SOCK_STREAM tests.""" @@ -970,6 +965,19 @@ def testWindowsSpecificConstants(self): socket.IPPROTO_L2TP socket.IPPROTO_SCTP + @unittest.skipIf(support.is_wasi, "WASI is missing these methods") + def test_socket_methods(self): + # socket methods that depend on a configure HAVE_ check. They should + # be present on all platforms except WASI. + names = [ + "_accept", "bind", "connect", "connect_ex", "getpeername", + "getsockname", "listen", "recvfrom", "recvfrom_into", "sendto", + "setsockopt", "shutdown" + ] + for name in names: + if not hasattr(socket.socket, name): + self.fail(f"socket method {name} is missing") + @unittest.skipUnless(sys.platform == 'darwin', 'macOS specific test') @unittest.skipUnless(socket_helper.IPV6_ENABLED, 'IPv6 required for this test') def test3542SocketOptions(self): @@ -1390,10 +1398,21 @@ def testStringToIPv6(self): def testSockName(self): # Testing getsockname() - port = socket_helper.find_unused_port() sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.addCleanup(sock.close) - sock.bind(("0.0.0.0", port)) + + # Since find_unused_port() is inherently subject to race conditions, we + # call it a couple times if necessary. + for i in itertools.count(): + port = socket_helper.find_unused_port() + try: + sock.bind(("0.0.0.0", port)) + except OSError as e: + if e.errno != errno.EADDRINUSE or i == 5: + raise + else: + break + name = sock.getsockname() # XXX(nnorwitz): http://tinyurl.com/os5jz seems to indicate # it reasonable to get the host's addr in addition to 0.0.0.0. @@ -1905,17 +1924,18 @@ def test_socket_fileno(self): self._test_socket_fileno(s, socket.AF_INET6, socket.SOCK_STREAM) if hasattr(socket, "AF_UNIX"): - tmpdir = tempfile.mkdtemp() - self.addCleanup(shutil.rmtree, tmpdir) + unix_name = socket_helper.create_unix_domain_name() + self.addCleanup(os_helper.unlink, unix_name) + s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) - self.addCleanup(s.close) - try: - s.bind(os.path.join(tmpdir, 'socket')) - except PermissionError: - pass - else: - self._test_socket_fileno(s, socket.AF_UNIX, - socket.SOCK_STREAM) + with s: + try: + s.bind(unix_name) + except PermissionError: + pass + else: + self._test_socket_fileno(s, socket.AF_UNIX, + socket.SOCK_STREAM) def test_socket_fileno_rejects_float(self): with self.assertRaises(TypeError): @@ -2480,7 +2500,6 @@ class BasicHyperVTest(unittest.TestCase): def testHyperVConstants(self): socket.HVSOCKET_CONNECT_TIMEOUT socket.HVSOCKET_CONNECT_TIMEOUT_MAX - socket.HVSOCKET_CONTAINER_PASSTHRU socket.HVSOCKET_CONNECTED_SUSPEND socket.HVSOCKET_ADDRESS_FLAG_PASSTHRU socket.HV_GUID_ZERO @@ -5548,6 +5567,20 @@ def testBytearrayName(self): s.bind(bytearray(b"\x00python\x00test\x00")) self.assertEqual(s.getsockname(), b"\x00python\x00test\x00") + def testAutobind(self): + # Check that binding to an empty string binds to an available address + # in the abstract namespace as specified in unix(7) "Autobind feature". + abstract_address = b"^\0[0-9a-f]{5}" + with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as s1: + s1.bind("") + self.assertRegex(s1.getsockname(), abstract_address) + # Each socket is bound to a different abstract address. + with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as s2: + s2.bind("") + self.assertRegex(s2.getsockname(), abstract_address) + self.assertNotEqual(s1.getsockname(), s2.getsockname()) + + @unittest.skipUnless(hasattr(socket, 'AF_UNIX'), 'test needs socket.AF_UNIX') class TestUnixDomain(unittest.TestCase): @@ -5617,6 +5650,11 @@ def testUnencodableAddr(self): self.addCleanup(os_helper.unlink, path) self.assertEqual(self.sock.getsockname(), path) + @unittest.skipIf(sys.platform == 'linux', 'Linux specific test') + def testEmptyAddress(self): + # Test that binding empty address fails. + self.assertRaises(OSError, self.sock.bind, "") + class BufferIOTest(SocketConnectedTest): """ diff --git a/Lib/test/test_socketserver.py b/Lib/test/test_socketserver.py index 2edb1e0c0e21e2..2fa5069423327a 100644 --- a/Lib/test/test_socketserver.py +++ b/Lib/test/test_socketserver.py @@ -8,7 +8,6 @@ import select import signal import socket -import tempfile import threading import unittest import socketserver @@ -98,8 +97,7 @@ def pickaddr(self, proto): else: # XXX: We need a way to tell AF_UNIX to pick its own name # like AF_INET provides port==0. - dir = None - fn = tempfile.mktemp(prefix='unix_socket.', dir=dir) + fn = socket_helper.create_unix_domain_name() self.test_files.append(fn) return fn diff --git a/Lib/test/test_sort.py b/Lib/test/test_sort.py index 41de4b684f6251..3b6ad4d17b0416 100644 --- a/Lib/test/test_sort.py +++ b/Lib/test/test_sort.py @@ -378,6 +378,12 @@ def test_not_all_tuples(self): self.assertRaises(TypeError, [(1.0, 1.0), (False, "A"), 6].sort) self.assertRaises(TypeError, [('a', 1), (1, 'a')].sort) self.assertRaises(TypeError, [(1, 'a'), ('a', 1)].sort) + + def test_none_in_tuples(self): + expected = [(None, 1), (None, 2)] + actual = sorted([(None, 2), (None, 1)]) + self.assertEqual(actual, expected) + #============================================================================== if __name__ == "__main__": diff --git a/Lib/test/test_source_encoding.py b/Lib/test/test_source_encoding.py index a0375fda0d3656..cfc4b13f18f330 100644 --- a/Lib/test/test_source_encoding.py +++ b/Lib/test/test_source_encoding.py @@ -1,4 +1,4 @@ -# -*- coding: koi8-r -*- +# -*- coding: utf-8 -*- import unittest from test.support import script_helper, captured_stdout, requires_subprocess @@ -12,15 +12,14 @@ class MiscSourceEncodingTest(unittest.TestCase): - def test_pep263(self): - self.assertEqual( - "".encode("utf-8"), - b'\xd0\x9f\xd0\xb8\xd1\x82\xd0\xbe\xd0\xbd' - ) - self.assertEqual( - "\".encode("utf-8"), - b'\\\xd0\x9f' - ) + def test_import_encoded_module(self): + from test.encoded_modules import test_strings + # Make sure we're actually testing something + self.assertGreaterEqual(len(test_strings), 1) + for modname, encoding, teststr in test_strings: + mod = importlib.import_module('test.encoded_modules.' + 'module_' + modname) + self.assertEqual(teststr, mod.test) def test_compilestring(self): # see #1882 @@ -148,6 +147,18 @@ def test_error_from_string(self): self.assertTrue(c.exception.args[0].startswith(expected), msg=c.exception.args[0]) + def test_file_parse_error_multiline(self): + # gh96611: + with open(TESTFN, "wb") as fd: + fd.write(b'print("""\n\xb1""")\n') + + try: + retcode, stdout, stderr = script_helper.assert_python_failure(TESTFN) + + self.assertGreater(retcode, 0) + self.assertIn(b"Non-UTF-8 code starting with '\\xb1'", stderr) + finally: + os.unlink(TESTFN) class AbstractSourceEncodingTest: @@ -224,6 +235,74 @@ def test_crcrcrlf2(self): out = self.check_script_output(src, br"'\n\n\n'") +class UTF8ValidatorTest(unittest.TestCase): + @unittest.skipIf(not sys.platform.startswith("linux"), + "Too slow to run on non-Linux platforms") + def test_invalid_utf8(self): + # This is a port of test_utf8_decode_invalid_sequences in + # test_unicode.py to exercise the separate utf8 validator in + # Parser/tokenizer.c used when reading source files. + + # That file is written using low-level C file I/O, so the only way to + # test it is to write actual files to disk. + + # Each example is put inside a string at the top of the file so + # it's an otherwise valid Python source file. Put some newlines + # beforehand so we can assert that the error is reported on the + # correct line. + template = b'\n\n\n"%s"\n' + + fn = TESTFN + self.addCleanup(unlink, fn) + + def check(content): + with open(fn, 'wb') as fp: + fp.write(template % content) + rc, stdout, stderr = script_helper.assert_python_failure(fn) + # We want to assert that the python subprocess failed gracefully, + # not via a signal. + self.assertGreaterEqual(rc, 1) + self.assertIn(b"Non-UTF-8 code starting with", stderr) + self.assertIn(b"on line 4", stderr) + + # continuation bytes in a sequence of 2, 3, or 4 bytes + continuation_bytes = [bytes([x]) for x in range(0x80, 0xC0)] + # start bytes of a 2-byte sequence equivalent to code points < 0x7F + invalid_2B_seq_start_bytes = [bytes([x]) for x in range(0xC0, 0xC2)] + # start bytes of a 4-byte sequence equivalent to code points > 0x10FFFF + invalid_4B_seq_start_bytes = [bytes([x]) for x in range(0xF5, 0xF8)] + invalid_start_bytes = ( + continuation_bytes + invalid_2B_seq_start_bytes + + invalid_4B_seq_start_bytes + [bytes([x]) for x in range(0xF7, 0x100)] + ) + + for byte in invalid_start_bytes: + check(byte) + + for sb in invalid_2B_seq_start_bytes: + for cb in continuation_bytes: + check(sb + cb) + + for sb in invalid_4B_seq_start_bytes: + for cb1 in continuation_bytes[:3]: + for cb3 in continuation_bytes[:3]: + check(sb+cb1+b'\x80'+cb3) + + for cb in [bytes([x]) for x in range(0x80, 0xA0)]: + check(b'\xE0'+cb+b'\x80') + check(b'\xE0'+cb+b'\xBF') + # surrogates + for cb in [bytes([x]) for x in range(0xA0, 0xC0)]: + check(b'\xED'+cb+b'\x80') + check(b'\xED'+cb+b'\xBF') + for cb in [bytes([x]) for x in range(0x80, 0x90)]: + check(b'\xF0'+cb+b'\x80\x80') + check(b'\xF0'+cb+b'\xBF\xBF') + for cb in [bytes([x]) for x in range(0x90, 0xC0)]: + check(b'\xF4'+cb+b'\x80\x80') + check(b'\xF4'+cb+b'\xBF\xBF') + + class BytesSourceEncodingTest(AbstractSourceEncodingTest, unittest.TestCase): def check_script_output(self, src, expected): diff --git a/Lib/test/test_sqlite3/__init__.py b/Lib/test/test_sqlite3/__init__.py index 099c01e3b3cc70..d777fca82da4b0 100644 --- a/Lib/test/test_sqlite3/__init__.py +++ b/Lib/test/test_sqlite3/__init__.py @@ -3,7 +3,6 @@ # Skip test if _sqlite3 module not installed. import_helper.import_module('_sqlite3') -import unittest import os import sqlite3 @@ -13,6 +12,4 @@ def load_tests(*args): return load_package_tests(pkg_dir, *args) if verbose: - print("test_sqlite3: testing with version", - "{!r}, sqlite_version {!r}".format(sqlite3.version, - sqlite3.sqlite_version)) + print(f"test_sqlite3: testing with SQLite version {sqlite3.sqlite_version}") diff --git a/Lib/test/test_sqlite3/__main__.py b/Lib/test/test_sqlite3/__main__.py index 51eddc3c2fde02..ca6a8347fbd231 100644 --- a/Lib/test/test_sqlite3/__main__.py +++ b/Lib/test/test_sqlite3/__main__.py @@ -1,5 +1,4 @@ from test.test_sqlite3 import load_tests # Needed for the "load tests" protocol. import unittest -if __name__ == "__main__": - unittest.main() +unittest.main() diff --git a/Lib/test/test_sqlite3/test_cli.py b/Lib/test/test_sqlite3/test_cli.py new file mode 100644 index 00000000000000..d374f8ee4fc8d3 --- /dev/null +++ b/Lib/test/test_sqlite3/test_cli.py @@ -0,0 +1,155 @@ +"""sqlite3 CLI tests.""" + +import sqlite3 as sqlite +import subprocess +import sys +import unittest + +from test.support import SHORT_TIMEOUT, requires_subprocess +from test.support.os_helper import TESTFN, unlink + + +@requires_subprocess() +class CommandLineInterface(unittest.TestCase): + + def _do_test(self, *args, expect_success=True): + with subprocess.Popen( + [sys.executable, "-Xutf8", "-m", "sqlite3", *args], + encoding="utf-8", + bufsize=0, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + ) as proc: + proc.wait() + if expect_success == bool(proc.returncode): + self.fail("".join(proc.stderr)) + stdout = proc.stdout.read() + stderr = proc.stderr.read() + if expect_success: + self.assertEqual(stderr, "") + else: + self.assertEqual(stdout, "") + return stdout, stderr + + def expect_success(self, *args): + out, _ = self._do_test(*args) + return out + + def expect_failure(self, *args): + _, err = self._do_test(*args, expect_success=False) + return err + + def test_cli_help(self): + out = self.expect_success("-h") + self.assertIn("usage: python -m sqlite3", out) + + def test_cli_version(self): + out = self.expect_success("-v") + self.assertIn(sqlite.sqlite_version, out) + + def test_cli_execute_sql(self): + out = self.expect_success(":memory:", "select 1") + self.assertIn("(1,)", out) + + def test_cli_execute_too_much_sql(self): + stderr = self.expect_failure(":memory:", "select 1; select 2") + err = "ProgrammingError: You can only execute one statement at a time" + self.assertIn(err, stderr) + + def test_cli_execute_incomplete_sql(self): + stderr = self.expect_failure(":memory:", "sel") + self.assertIn("OperationalError (SQLITE_ERROR)", stderr) + + def test_cli_on_disk_db(self): + self.addCleanup(unlink, TESTFN) + out = self.expect_success(TESTFN, "create table t(t)") + self.assertEqual(out, "") + out = self.expect_success(TESTFN, "select count(t) from t") + self.assertIn("(0,)", out) + + +@requires_subprocess() +class InteractiveSession(unittest.TestCase): + TIMEOUT = SHORT_TIMEOUT / 10. + MEMORY_DB_MSG = "Connected to a transient in-memory database" + PS1 = "sqlite> " + PS2 = "... " + + def start_cli(self, *args): + return subprocess.Popen( + [sys.executable, "-Xutf8", "-m", "sqlite3", *args], + encoding="utf-8", + bufsize=0, + stdin=subprocess.PIPE, + # Note: the banner is printed to stderr, the prompt to stdout. + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + ) + + def expect_success(self, proc): + proc.wait() + if proc.returncode: + self.fail("".join(proc.stderr)) + + def test_interact(self): + with self.start_cli() as proc: + out, err = proc.communicate(timeout=self.TIMEOUT) + self.assertIn(self.MEMORY_DB_MSG, err) + self.assertIn(self.PS1, out) + self.expect_success(proc) + + def test_interact_quit(self): + with self.start_cli() as proc: + out, err = proc.communicate(input=".quit", timeout=self.TIMEOUT) + self.assertIn(self.MEMORY_DB_MSG, err) + self.assertIn(self.PS1, out) + self.expect_success(proc) + + def test_interact_version(self): + with self.start_cli() as proc: + out, err = proc.communicate(input=".version", timeout=self.TIMEOUT) + self.assertIn(self.MEMORY_DB_MSG, err) + self.assertIn(sqlite.sqlite_version, out) + self.expect_success(proc) + + def test_interact_valid_sql(self): + with self.start_cli() as proc: + out, err = proc.communicate(input="select 1;", + timeout=self.TIMEOUT) + self.assertIn(self.MEMORY_DB_MSG, err) + self.assertIn("(1,)", out) + self.expect_success(proc) + + def test_interact_valid_multiline_sql(self): + with self.start_cli() as proc: + out, err = proc.communicate(input="select 1\n;", + timeout=self.TIMEOUT) + self.assertIn(self.MEMORY_DB_MSG, err) + self.assertIn(self.PS2, out) + self.assertIn("(1,)", out) + self.expect_success(proc) + + def test_interact_invalid_sql(self): + with self.start_cli() as proc: + out, err = proc.communicate(input="sel;", timeout=self.TIMEOUT) + self.assertIn(self.MEMORY_DB_MSG, err) + self.assertIn("OperationalError (SQLITE_ERROR)", err) + self.expect_success(proc) + + def test_interact_on_disk_file(self): + self.addCleanup(unlink, TESTFN) + with self.start_cli(TESTFN) as proc: + out, err = proc.communicate(input="create table t(t);", + timeout=self.TIMEOUT) + self.assertIn(TESTFN, err) + self.assertIn(self.PS1, out) + self.expect_success(proc) + with self.start_cli(TESTFN, "select count(t) from t") as proc: + out = proc.stdout.read() + err = proc.stderr.read() + self.assertIn("(0,)", out) + self.expect_success(proc) + + +if __name__ == "__main__": + unittest.main() diff --git a/Lib/test/test_sqlite3/test_dbapi.py b/Lib/test/test_sqlite3/test_dbapi.py index 1fa02db3b3af41..363a308f3e5fec 100644 --- a/Lib/test/test_sqlite3/test_dbapi.py +++ b/Lib/test/test_sqlite3/test_dbapi.py @@ -29,7 +29,10 @@ import unittest import urllib.parse -from test.support import SHORT_TIMEOUT, check_disallow_instantiation +from test.support import ( + SHORT_TIMEOUT, check_disallow_instantiation, requires_subprocess, + is_emscripten, is_wasi +) from test.support import threading_helper from _testcapi import INT_MAX, ULLONG_MAX from os import SEEK_SET, SEEK_CUR, SEEK_END @@ -57,6 +60,17 @@ def test_api_level(self): self.assertEqual(sqlite.apilevel, "2.0", "apilevel is %s, should be 2.0" % sqlite.apilevel) + def test_deprecated_version(self): + msg = "deprecated and will be removed in Python 3.14" + for attr in "version", "version_info": + with self.subTest(attr=attr): + with self.assertWarnsRegex(DeprecationWarning, msg) as cm: + getattr(sqlite, attr) + self.assertEqual(cm.filename, __file__) + with self.assertWarnsRegex(DeprecationWarning, msg) as cm: + getattr(sqlite.dbapi2, attr) + self.assertEqual(cm.filename, __file__) + def test_thread_safety(self): self.assertIn(sqlite.threadsafety, {0, 1, 3}, "threadsafety is %d, should be 0, 1 or 3" % @@ -642,6 +656,7 @@ def test_open_with_path_like_object(self): @unittest.skipIf(sys.platform == "win32", "skipped on Windows") @unittest.skipIf(sys.platform == "darwin", "skipped on macOS") + @unittest.skipIf(is_emscripten or is_wasi, "not supported on Emscripten/WASI") @unittest.skipUnless(TESTFN_UNDECODABLE, "only works if there are undecodable paths") def test_open_with_undecodable_path(self): path = TESTFN_UNDECODABLE @@ -687,6 +702,7 @@ def test_open_uri_readonly(self): @unittest.skipIf(sys.platform == "win32", "skipped on Windows") @unittest.skipIf(sys.platform == "darwin", "skipped on macOS") + @unittest.skipIf(is_emscripten or is_wasi, "not supported on Emscripten/WASI") @unittest.skipUnless(TESTFN_UNDECODABLE, "only works if there are undecodable paths") def test_open_undecodable_uri(self): path = TESTFN_UNDECODABLE @@ -735,22 +751,44 @@ def test_execute_illegal_sql(self): with self.assertRaises(sqlite.OperationalError): self.cu.execute("select asdf") - def test_execute_too_much_sql(self): - self.assertRaisesRegex(sqlite.ProgrammingError, - "You can only execute one statement at a time", - self.cu.execute, "select 5+4; select 4+5") - - def test_execute_too_much_sql2(self): - self.cu.execute("select 5+4; -- foo bar") + def test_execute_multiple_statements(self): + msg = "You can only execute one statement at a time" + dataset = ( + "select 1; select 2", + "select 1; // c++ comments are not allowed", + "select 1; *not a comment", + "select 1; -*not a comment", + "select 1; /* */ a", + "select 1; /**/a", + "select 1; -", + "select 1; /", + "select 1; -\n- select 2", + """select 1; + -- comment + select 2 + """, + ) + for query in dataset: + with self.subTest(query=query): + with self.assertRaisesRegex(sqlite.ProgrammingError, msg): + self.cu.execute(query) - def test_execute_too_much_sql3(self): - self.cu.execute(""" + def test_execute_with_appended_comments(self): + dataset = ( + "select 1; -- foo bar", + "select 1; --", + "select 1; /*", # Unclosed comments ending in \0 are skipped. + """ select 5+4; /* foo */ - """) + """, + ) + for query in dataset: + with self.subTest(query=query): + self.cu.execute(query) def test_execute_wrong_sql_arg(self): with self.assertRaises(TypeError): @@ -887,6 +925,38 @@ def test_rowcount_executemany(self): self.cu.executemany("insert into test(name) values (?)", [(1,), (2,), (3,)]) self.assertEqual(self.cu.rowcount, 3) + @unittest.skipIf(sqlite.sqlite_version_info < (3, 35, 0), + "Requires SQLite 3.35.0 or newer") + def test_rowcount_update_returning(self): + # gh-93421: rowcount is updated correctly for UPDATE...RETURNING queries + self.cu.execute("update test set name='bar' where name='foo' returning 1") + self.assertEqual(self.cu.fetchone()[0], 1) + self.assertEqual(self.cu.rowcount, 1) + + def test_rowcount_prefixed_with_comment(self): + # gh-79579: rowcount is updated even if query is prefixed with comments + self.cu.execute(""" + -- foo + insert into test(name) values ('foo'), ('foo') + """) + self.assertEqual(self.cu.rowcount, 2) + self.cu.execute(""" + /* -- messy *r /* /* ** *- *-- + */ + /* one more */ insert into test(name) values ('messy') + """) + self.assertEqual(self.cu.rowcount, 1) + self.cu.execute("/* bar */ update test set name='bar' where name='foo'") + self.assertEqual(self.cu.rowcount, 3) + + def test_rowcount_vaccuum(self): + data = ((1,), (2,), (3,)) + self.cu.executemany("insert into test(income) values(?)", data) + self.assertEqual(self.cu.rowcount, 3) + self.cx.commit() + self.cu.execute("vacuum") + self.assertEqual(self.cu.rowcount, -1) + def test_total_changes(self): self.cu.execute("insert into test(name) values ('foo')") self.cu.execute("insert into test(name) values ('foo')") @@ -1388,6 +1458,7 @@ def test_blob_closed_db_read(self): blob.read) +@threading_helper.requires_working_threading() class ThreadTests(unittest.TestCase): def setUp(self): self.con = sqlite.connect(":memory:") @@ -1752,6 +1823,7 @@ def test_on_conflict_replace(self): self.assertEqual(self.cu.fetchall(), [('Very different data!', 'foo')]) +@requires_subprocess() class MultiprocessTests(unittest.TestCase): CONNECTION_TIMEOUT = SHORT_TIMEOUT / 1000. # Defaults to 30 ms diff --git a/Lib/test/test_sqlite3/test_dump.py b/Lib/test/test_sqlite3/test_dump.py index 1f14c620f0d24b..d0c24b9c60e613 100644 --- a/Lib/test/test_sqlite3/test_dump.py +++ b/Lib/test/test_sqlite3/test_dump.py @@ -2,6 +2,8 @@ import unittest import sqlite3 as sqlite +from .test_dbapi import memory_database + class DumpTests(unittest.TestCase): def setUp(self): @@ -49,6 +51,51 @@ def test_table_dump(self): [self.assertEqual(expected_sqls[i], actual_sqls[i]) for i in range(len(expected_sqls))] + def test_dump_autoincrement(self): + expected = [ + 'CREATE TABLE "t1" (id integer primary key autoincrement);', + 'INSERT INTO "t1" VALUES(NULL);', + 'CREATE TABLE "t2" (id integer primary key autoincrement);', + ] + self.cu.executescript("".join(expected)) + + # the NULL value should now be automatically be set to 1 + expected[1] = expected[1].replace("NULL", "1") + expected.insert(0, "BEGIN TRANSACTION;") + expected.extend([ + 'DELETE FROM "sqlite_sequence";', + 'INSERT INTO "sqlite_sequence" VALUES(\'t1\',1);', + 'COMMIT;', + ]) + + actual = [stmt for stmt in self.cx.iterdump()] + self.assertEqual(expected, actual) + + def test_dump_autoincrement_create_new_db(self): + self.cu.execute("BEGIN TRANSACTION") + self.cu.execute("CREATE TABLE t1 (id integer primary key autoincrement)") + self.cu.execute("CREATE TABLE t2 (id integer primary key autoincrement)") + self.cu.executemany("INSERT INTO t1 VALUES(?)", ((None,) for _ in range(9))) + self.cu.executemany("INSERT INTO t2 VALUES(?)", ((None,) for _ in range(4))) + self.cx.commit() + + with memory_database() as cx2: + query = "".join(self.cx.iterdump()) + cx2.executescript(query) + cu2 = cx2.cursor() + + dataset = ( + ("t1", 9), + ("t2", 4), + ) + for table, seq in dataset: + with self.subTest(table=table, seq=seq): + res = cu2.execute(""" + SELECT "seq" FROM "sqlite_sequence" WHERE "name" == ? + """, (table,)) + rows = res.fetchall() + self.assertEqual(rows[0][0], seq) + def test_unorderable_row(self): # iterdump() should be able to cope with unorderable row types (issue #15545) class UnorderableRow: diff --git a/Lib/test/test_sqlite3/test_factory.py b/Lib/test/test_sqlite3/test_factory.py index 71603faa02840f..7fdc45ab69243d 100644 --- a/Lib/test/test_sqlite3/test_factory.py +++ b/Lib/test/test_sqlite3/test_factory.py @@ -50,6 +50,26 @@ def __init__(self, *args, **kwargs): con = sqlite.connect(":memory:", factory=factory) self.assertIsInstance(con, factory) + def test_connection_factory_relayed_call(self): + # gh-95132: keyword args must not be passed as positional args + class Factory(sqlite.Connection): + def __init__(self, *args, **kwargs): + kwargs["isolation_level"] = None + super(Factory, self).__init__(*args, **kwargs) + + con = sqlite.connect(":memory:", factory=Factory) + self.assertIsNone(con.isolation_level) + self.assertIsInstance(con, Factory) + + def test_connection_factory_as_positional_arg(self): + class Factory(sqlite.Connection): + def __init__(self, *args, **kwargs): + super(Factory, self).__init__(*args, **kwargs) + + con = sqlite.connect(":memory:", 5.0, 0, None, True, Factory) + self.assertIsNone(con.isolation_level) + self.assertIsInstance(con, Factory) + class CursorFactoryTests(unittest.TestCase): def setUp(self): diff --git a/Lib/test/test_sqlite3/test_regression.py b/Lib/test/test_sqlite3/test_regression.py index 0b727cecb0e8cb..ad83a97c8c40d6 100644 --- a/Lib/test/test_sqlite3/test_regression.py +++ b/Lib/test/test_sqlite3/test_regression.py @@ -129,7 +129,8 @@ def test_type_map_usage(self): con = sqlite.connect(":memory:",detect_types=sqlite.PARSE_DECLTYPES) cur = con.cursor() cur.execute("create table foo(bar timestamp)") - cur.execute("insert into foo(bar) values (?)", (datetime.datetime.now(),)) + with self.assertWarnsRegex(DeprecationWarning, "adapter"): + cur.execute("insert into foo(bar) values (?)", (datetime.datetime.now(),)) cur.execute(SELECT) cur.execute("drop table foo") cur.execute("create table foo(bar integer)") @@ -305,7 +306,8 @@ def test_convert_timestamp_microsecond_padding(self): cur.execute("INSERT INTO t (x) VALUES ('2012-04-04 15:06:00.123456789')") cur.execute("SELECT * FROM t") - values = [x[0] for x in cur.fetchall()] + with self.assertWarnsRegex(DeprecationWarning, "converter"): + values = [x[0] for x in cur.fetchall()] self.assertEqual(values, [ datetime.datetime(2012, 4, 4, 15, 6, 0, 456000), diff --git a/Lib/test/test_sqlite3/test_transactions.py b/Lib/test/test_sqlite3/test_transactions.py index 040ab1ee608cf1..9c3d19e79bd989 100644 --- a/Lib/test/test_sqlite3/test_transactions.py +++ b/Lib/test/test_sqlite3/test_transactions.py @@ -20,38 +20,36 @@ # misrepresented as being the original software. # 3. This notice may not be removed or altered from any source distribution. -import os, unittest +import unittest import sqlite3 as sqlite +from test.support import LOOPBACK_TIMEOUT +from test.support.os_helper import TESTFN, unlink + from test.test_sqlite3.test_dbapi import memory_database -def get_db_path(): - return "sqlite_testdb" + +TIMEOUT = LOOPBACK_TIMEOUT / 10 + class TransactionTests(unittest.TestCase): def setUp(self): - try: - os.remove(get_db_path()) - except OSError: - pass - - self.con1 = sqlite.connect(get_db_path(), timeout=0.1) + self.con1 = sqlite.connect(TESTFN, timeout=TIMEOUT) self.cur1 = self.con1.cursor() - self.con2 = sqlite.connect(get_db_path(), timeout=0.1) + self.con2 = sqlite.connect(TESTFN, timeout=TIMEOUT) self.cur2 = self.con2.cursor() def tearDown(self): - self.cur1.close() - self.con1.close() + try: + self.cur1.close() + self.con1.close() - self.cur2.close() - self.con2.close() + self.cur2.close() + self.con2.close() - try: - os.unlink(get_db_path()) - except OSError: - pass + finally: + unlink(TESTFN) def test_dml_does_not_auto_commit_before(self): self.cur1.execute("create table test(i)") @@ -141,6 +139,45 @@ def test_rollback_cursor_consistency(self): con.rollback() self.assertEqual(cur.fetchall(), [(1,), (2,), (3,)]) + def test_multiple_cursors_and_iternext(self): + # gh-94028: statements are cleared and reset in cursor iternext. + + # Provoke the gh-94028 by using a cursor cache. + CURSORS = {} + def sql(cx, sql, *args): + cu = cx.cursor() + cu.execute(sql, args) + CURSORS[id(sql)] = cu + return cu + + self.con1.execute("create table t(t)") + sql(self.con1, "insert into t values (?), (?), (?)", "u1", "u2", "u3") + self.con1.commit() + + # On second connection, verify rows are visible, then delete them. + count = sql(self.con2, "select count(*) from t").fetchone()[0] + self.assertEqual(count, 3) + changes = sql(self.con2, "delete from t").rowcount + self.assertEqual(changes, 3) + self.con2.commit() + + # Back in original connection, create 2 new users. + sql(self.con1, "insert into t values (?)", "u4") + sql(self.con1, "insert into t values (?)", "u5") + + # The second connection cannot see uncommitted changes. + count = sql(self.con2, "select count(*) from t").fetchone()[0] + self.assertEqual(count, 0) + + # First connection can see its own changes. + count = sql(self.con1, "select count(*) from t").fetchone()[0] + self.assertEqual(count, 2) + + # The second connection can now see the changes. + self.con1.commit() + count = sql(self.con2, "select count(*) from t").fetchone()[0] + self.assertEqual(count, 2) + class RollbackTests(unittest.TestCase): """bpo-44092: sqlite3 now leaves it to SQLite to resolve rollback issues""" diff --git a/Lib/test/test_sqlite3/test_types.py b/Lib/test/test_sqlite3/test_types.py index 177cd102350397..62318823510d40 100644 --- a/Lib/test/test_sqlite3/test_types.py +++ b/Lib/test/test_sqlite3/test_types.py @@ -496,38 +496,51 @@ def tearDown(self): def test_sqlite_date(self): d = sqlite.Date(2004, 2, 14) - self.cur.execute("insert into test(d) values (?)", (d,)) + with self.assertWarnsRegex(DeprecationWarning, "adapter") as cm: + self.cur.execute("insert into test(d) values (?)", (d,)) + self.assertEqual(cm.filename, __file__) self.cur.execute("select d from test") - d2 = self.cur.fetchone()[0] + with self.assertWarnsRegex(DeprecationWarning, "converter") as cm: + d2 = self.cur.fetchone()[0] + self.assertEqual(cm.filename, __file__) self.assertEqual(d, d2) def test_sqlite_timestamp(self): ts = sqlite.Timestamp(2004, 2, 14, 7, 15, 0) - self.cur.execute("insert into test(ts) values (?)", (ts,)) + with self.assertWarnsRegex(DeprecationWarning, "adapter") as cm: + self.cur.execute("insert into test(ts) values (?)", (ts,)) + self.assertEqual(cm.filename, __file__) self.cur.execute("select ts from test") - ts2 = self.cur.fetchone()[0] + with self.assertWarnsRegex(DeprecationWarning, "converter") as cm: + ts2 = self.cur.fetchone()[0] + self.assertEqual(cm.filename, __file__) self.assertEqual(ts, ts2) def test_sql_timestamp(self): now = datetime.datetime.utcnow() self.cur.execute("insert into test(ts) values (current_timestamp)") self.cur.execute("select ts from test") - ts = self.cur.fetchone()[0] + with self.assertWarnsRegex(DeprecationWarning, "converter"): + ts = self.cur.fetchone()[0] self.assertEqual(type(ts), datetime.datetime) self.assertEqual(ts.year, now.year) def test_date_time_sub_seconds(self): ts = sqlite.Timestamp(2004, 2, 14, 7, 15, 0, 500000) - self.cur.execute("insert into test(ts) values (?)", (ts,)) + with self.assertWarnsRegex(DeprecationWarning, "adapter"): + self.cur.execute("insert into test(ts) values (?)", (ts,)) self.cur.execute("select ts from test") - ts2 = self.cur.fetchone()[0] + with self.assertWarnsRegex(DeprecationWarning, "converter"): + ts2 = self.cur.fetchone()[0] self.assertEqual(ts, ts2) def test_date_time_sub_seconds_floating_point(self): ts = sqlite.Timestamp(2004, 2, 14, 7, 15, 0, 510241) - self.cur.execute("insert into test(ts) values (?)", (ts,)) + with self.assertWarnsRegex(DeprecationWarning, "adapter"): + self.cur.execute("insert into test(ts) values (?)", (ts,)) self.cur.execute("select ts from test") - ts2 = self.cur.fetchone()[0] + with self.assertWarnsRegex(DeprecationWarning, "converter"): + ts2 = self.cur.fetchone()[0] self.assertEqual(ts, ts2) diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py index 6a66c167933de6..5007e08f321b5a 100644 --- a/Lib/test/test_ssl.py +++ b/Lib/test/test_ssl.py @@ -47,7 +47,7 @@ PROTOCOL_TO_TLS_VERSION = {} for proto, ver in ( - ("PROTOCOL_SSLv23", "SSLv3"), + ("PROTOCOL_SSLv3", "SSLv3"), ("PROTOCOL_TLSv1", "TLSv1"), ("PROTOCOL_TLSv1_1", "TLSv1_1"), ): @@ -208,10 +208,6 @@ def has_tls_version(version): :param version: TLS version name or ssl.TLSVersion member :return: bool """ - if version == "SSLv2": - # never supported and not even in TLSVersion enum - return False - if isinstance(version, str): version = ssl.TLSVersion.__members__[version] @@ -382,10 +378,6 @@ def test_random(self): % (v, (v and "sufficient randomness") or "insufficient randomness")) - with warnings_helper.check_warnings(): - data, is_cryptographic = ssl.RAND_pseudo_bytes(16) - self.assertEqual(len(data), 16) - self.assertEqual(is_cryptographic, v == 1) if v: data = ssl.RAND_bytes(16) self.assertEqual(len(data), 16) @@ -394,8 +386,6 @@ def test_random(self): # negative num is invalid self.assertRaises(ValueError, ssl.RAND_bytes, -5) - with warnings_helper.check_warnings(): - self.assertRaises(ValueError, ssl.RAND_pseudo_bytes, -5) ssl.RAND_add("this is a random string", 75.0) ssl.RAND_add(b"this is a random bytes object", 75.0) @@ -616,6 +606,8 @@ def test_openssl111_deprecations(self): ) for protocol in protocols: + if not has_tls_protocol(protocol): + continue with self.subTest(protocol=protocol): with self.assertWarns(DeprecationWarning) as cm: ssl.SSLContext(protocol) @@ -625,6 +617,8 @@ def test_openssl111_deprecations(self): ) for version in versions: + if not has_tls_version(version): + continue with self.subTest(version=version): ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT) with self.assertWarns(DeprecationWarning) as cm: @@ -635,36 +629,6 @@ def test_openssl111_deprecations(self): str(cm.warning) ) - @ignore_deprecation - def test_errors_sslwrap(self): - sock = socket.socket() - self.assertRaisesRegex(ValueError, - "certfile must be specified", - ssl.wrap_socket, sock, keyfile=CERTFILE) - self.assertRaisesRegex(ValueError, - "certfile must be specified for server-side operations", - ssl.wrap_socket, sock, server_side=True) - self.assertRaisesRegex(ValueError, - "certfile must be specified for server-side operations", - ssl.wrap_socket, sock, server_side=True, certfile="") - with ssl.wrap_socket(sock, server_side=True, certfile=CERTFILE) as s: - self.assertRaisesRegex(ValueError, "can't connect in server-side mode", - s.connect, (HOST, 8080)) - with self.assertRaises(OSError) as cm: - with socket.socket() as sock: - ssl.wrap_socket(sock, certfile=NONEXISTINGCERT) - self.assertEqual(cm.exception.errno, errno.ENOENT) - with self.assertRaises(OSError) as cm: - with socket.socket() as sock: - ssl.wrap_socket(sock, - certfile=CERTFILE, keyfile=NONEXISTINGCERT) - self.assertEqual(cm.exception.errno, errno.ENOENT) - with self.assertRaises(OSError) as cm: - with socket.socket() as sock: - ssl.wrap_socket(sock, - certfile=NONEXISTINGCERT, keyfile=NONEXISTINGCERT) - self.assertEqual(cm.exception.errno, errno.ENOENT) - def bad_cert_test(self, certfile): """Check that trying to use the given client certificate fails""" certfile = os.path.join(os.path.dirname(__file__) or os.curdir, @@ -687,205 +651,6 @@ def test_malformed_key(self): """Wrapping with a badly formatted key (syntax error)""" self.bad_cert_test("badkey.pem") - @ignore_deprecation - def test_match_hostname(self): - def ok(cert, hostname): - ssl.match_hostname(cert, hostname) - def fail(cert, hostname): - self.assertRaises(ssl.CertificateError, - ssl.match_hostname, cert, hostname) - - # -- Hostname matching -- - - cert = {'subject': ((('commonName', 'example.com'),),)} - ok(cert, 'example.com') - ok(cert, 'ExAmple.cOm') - fail(cert, 'www.example.com') - fail(cert, '.example.com') - fail(cert, 'example.org') - fail(cert, 'exampleXcom') - - cert = {'subject': ((('commonName', '*.a.com'),),)} - ok(cert, 'foo.a.com') - fail(cert, 'bar.foo.a.com') - fail(cert, 'a.com') - fail(cert, 'Xa.com') - fail(cert, '.a.com') - - # only match wildcards when they are the only thing - # in left-most segment - cert = {'subject': ((('commonName', 'f*.com'),),)} - fail(cert, 'foo.com') - fail(cert, 'f.com') - fail(cert, 'bar.com') - fail(cert, 'foo.a.com') - fail(cert, 'bar.foo.com') - - # NULL bytes are bad, CVE-2013-4073 - cert = {'subject': ((('commonName', - 'null.python.org\x00example.org'),),)} - ok(cert, 'null.python.org\x00example.org') # or raise an error? - fail(cert, 'example.org') - fail(cert, 'null.python.org') - - # error cases with wildcards - cert = {'subject': ((('commonName', '*.*.a.com'),),)} - fail(cert, 'bar.foo.a.com') - fail(cert, 'a.com') - fail(cert, 'Xa.com') - fail(cert, '.a.com') - - cert = {'subject': ((('commonName', 'a.*.com'),),)} - fail(cert, 'a.foo.com') - fail(cert, 'a..com') - fail(cert, 'a.com') - - # wildcard doesn't match IDNA prefix 'xn--' - idna = 'püthon.python.org'.encode("idna").decode("ascii") - cert = {'subject': ((('commonName', idna),),)} - ok(cert, idna) - cert = {'subject': ((('commonName', 'x*.python.org'),),)} - fail(cert, idna) - cert = {'subject': ((('commonName', 'xn--p*.python.org'),),)} - fail(cert, idna) - - # wildcard in first fragment and IDNA A-labels in sequent fragments - # are supported. - idna = 'www*.pythön.org'.encode("idna").decode("ascii") - cert = {'subject': ((('commonName', idna),),)} - fail(cert, 'www.pythön.org'.encode("idna").decode("ascii")) - fail(cert, 'www1.pythön.org'.encode("idna").decode("ascii")) - fail(cert, 'ftp.pythön.org'.encode("idna").decode("ascii")) - fail(cert, 'pythön.org'.encode("idna").decode("ascii")) - - # Slightly fake real-world example - cert = {'notAfter': 'Jun 26 21:41:46 2011 GMT', - 'subject': ((('commonName', 'linuxfrz.org'),),), - 'subjectAltName': (('DNS', 'linuxfr.org'), - ('DNS', 'linuxfr.com'), - ('othername', '<unsupported>'))} - ok(cert, 'linuxfr.org') - ok(cert, 'linuxfr.com') - # Not a "DNS" entry - fail(cert, '<unsupported>') - # When there is a subjectAltName, commonName isn't used - fail(cert, 'linuxfrz.org') - - # A pristine real-world example - cert = {'notAfter': 'Dec 18 23:59:59 2011 GMT', - 'subject': ((('countryName', 'US'),), - (('stateOrProvinceName', 'California'),), - (('localityName', 'Mountain View'),), - (('organizationName', 'Google Inc'),), - (('commonName', 'mail.google.com'),))} - ok(cert, 'mail.google.com') - fail(cert, 'gmail.com') - # Only commonName is considered - fail(cert, 'California') - - # -- IPv4 matching -- - cert = {'subject': ((('commonName', 'example.com'),),), - 'subjectAltName': (('DNS', 'example.com'), - ('IP Address', '10.11.12.13'), - ('IP Address', '14.15.16.17'), - ('IP Address', '127.0.0.1'))} - ok(cert, '10.11.12.13') - ok(cert, '14.15.16.17') - # socket.inet_ntoa(socket.inet_aton('127.1')) == '127.0.0.1' - fail(cert, '127.1') - fail(cert, '14.15.16.17 ') - fail(cert, '14.15.16.17 extra data') - fail(cert, '14.15.16.18') - fail(cert, 'example.net') - - # -- IPv6 matching -- - if socket_helper.IPV6_ENABLED: - cert = {'subject': ((('commonName', 'example.com'),),), - 'subjectAltName': ( - ('DNS', 'example.com'), - ('IP Address', '2001:0:0:0:0:0:0:CAFE\n'), - ('IP Address', '2003:0:0:0:0:0:0:BABA\n'))} - ok(cert, '2001::cafe') - ok(cert, '2003::baba') - fail(cert, '2003::baba ') - fail(cert, '2003::baba extra data') - fail(cert, '2003::bebe') - fail(cert, 'example.net') - - # -- Miscellaneous -- - - # Neither commonName nor subjectAltName - cert = {'notAfter': 'Dec 18 23:59:59 2011 GMT', - 'subject': ((('countryName', 'US'),), - (('stateOrProvinceName', 'California'),), - (('localityName', 'Mountain View'),), - (('organizationName', 'Google Inc'),))} - fail(cert, 'mail.google.com') - - # No DNS entry in subjectAltName but a commonName - cert = {'notAfter': 'Dec 18 23:59:59 2099 GMT', - 'subject': ((('countryName', 'US'),), - (('stateOrProvinceName', 'California'),), - (('localityName', 'Mountain View'),), - (('commonName', 'mail.google.com'),)), - 'subjectAltName': (('othername', 'blabla'), )} - ok(cert, 'mail.google.com') - - # No DNS entry subjectAltName and no commonName - cert = {'notAfter': 'Dec 18 23:59:59 2099 GMT', - 'subject': ((('countryName', 'US'),), - (('stateOrProvinceName', 'California'),), - (('localityName', 'Mountain View'),), - (('organizationName', 'Google Inc'),)), - 'subjectAltName': (('othername', 'blabla'),)} - fail(cert, 'google.com') - - # Empty cert / no cert - self.assertRaises(ValueError, ssl.match_hostname, None, 'example.com') - self.assertRaises(ValueError, ssl.match_hostname, {}, 'example.com') - - # Issue #17980: avoid denials of service by refusing more than one - # wildcard per fragment. - cert = {'subject': ((('commonName', 'a*b.example.com'),),)} - with self.assertRaisesRegex( - ssl.CertificateError, - "partial wildcards in leftmost label are not supported"): - ssl.match_hostname(cert, 'axxb.example.com') - - cert = {'subject': ((('commonName', 'www.*.example.com'),),)} - with self.assertRaisesRegex( - ssl.CertificateError, - "wildcard can only be present in the leftmost label"): - ssl.match_hostname(cert, 'www.sub.example.com') - - cert = {'subject': ((('commonName', 'a*b*.example.com'),),)} - with self.assertRaisesRegex( - ssl.CertificateError, - "too many wildcards"): - ssl.match_hostname(cert, 'axxbxxc.example.com') - - cert = {'subject': ((('commonName', '*'),),)} - with self.assertRaisesRegex( - ssl.CertificateError, - "sole wildcard without additional labels are not support"): - ssl.match_hostname(cert, 'host') - - cert = {'subject': ((('commonName', '*.com'),),)} - with self.assertRaisesRegex( - ssl.CertificateError, - r"hostname 'com' doesn't match '\*.com'"): - ssl.match_hostname(cert, 'com') - - # extra checks for _inet_paton() - for invalid in ['1', '', '1.2.3', '256.0.0.1', '127.0.0.1/24']: - with self.assertRaises(ValueError): - ssl._inet_paton(invalid) - for ipaddr in ['127.0.0.1', '192.168.0.1']: - self.assertTrue(ssl._inet_paton(ipaddr)) - if socket_helper.IPV6_ENABLED: - for ipaddr in ['::1', '2001:db8:85a3::8a2e:370:7334']: - self.assertTrue(ssl._inet_paton(ipaddr)) - def test_server_side(self): # server_hostname doesn't work for server sockets ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER) @@ -1139,9 +904,10 @@ class ContextTests(unittest.TestCase): def test_constructor(self): for protocol in PROTOCOLS: - with warnings_helper.check_warnings(): - ctx = ssl.SSLContext(protocol) - self.assertEqual(ctx.protocol, protocol) + if has_tls_protocol(protocol): + with warnings_helper.check_warnings(): + ctx = ssl.SSLContext(protocol) + self.assertEqual(ctx.protocol, protocol) with warnings_helper.check_warnings(): ctx = ssl.SSLContext() self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLS) @@ -1172,8 +938,20 @@ def test_get_ciphers(self): ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT) ctx.set_ciphers('AESGCM') names = set(d['name'] for d in ctx.get_ciphers()) - self.assertIn('AES256-GCM-SHA384', names) - self.assertIn('AES128-GCM-SHA256', names) + expected = { + 'AES128-GCM-SHA256', + 'ECDHE-ECDSA-AES128-GCM-SHA256', + 'ECDHE-RSA-AES128-GCM-SHA256', + 'DHE-RSA-AES128-GCM-SHA256', + 'AES256-GCM-SHA384', + 'ECDHE-ECDSA-AES256-GCM-SHA384', + 'ECDHE-RSA-AES256-GCM-SHA384', + 'DHE-RSA-AES256-GCM-SHA384', + } + intersection = names.intersection(expected) + self.assertGreaterEqual( + len(intersection), 2, f"\ngot: {sorted(names)}\nexpected: {sorted(expected)}" + ) def test_options(self): ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT) @@ -1286,7 +1064,7 @@ def test_min_max_version(self): ctx.maximum_version = ssl.TLSVersion.MINIMUM_SUPPORTED self.assertIn( ctx.maximum_version, - {ssl.TLSVersion.TLSv1, ssl.TLSVersion.SSLv3} + {ssl.TLSVersion.TLSv1, ssl.TLSVersion.TLSv1_1, ssl.TLSVersion.SSLv3} ) ctx.minimum_version = ssl.TLSVersion.MAXIMUM_SUPPORTED @@ -1298,19 +1076,19 @@ def test_min_max_version(self): with self.assertRaises(ValueError): ctx.minimum_version = 42 - ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1_1) - - self.assertIn( - ctx.minimum_version, minimum_range - ) - self.assertEqual( - ctx.maximum_version, ssl.TLSVersion.MAXIMUM_SUPPORTED - ) - with self.assertRaises(ValueError): - ctx.minimum_version = ssl.TLSVersion.MINIMUM_SUPPORTED - with self.assertRaises(ValueError): - ctx.maximum_version = ssl.TLSVersion.TLSv1 + if has_tls_protocol(ssl.PROTOCOL_TLSv1_1): + ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1_1) + self.assertIn( + ctx.minimum_version, minimum_range + ) + self.assertEqual( + ctx.maximum_version, ssl.TLSVersion.MAXIMUM_SUPPORTED + ) + with self.assertRaises(ValueError): + ctx.minimum_version = ssl.TLSVersion.MINIMUM_SUPPORTED + with self.assertRaises(ValueError): + ctx.maximum_version = ssl.TLSVersion.TLSv1 @unittest.skipUnless( hasattr(ssl.SSLContext, 'security_level'), @@ -1707,8 +1485,6 @@ def test_create_default_context(self): self.assertEqual(ctx.verify_mode, ssl.CERT_NONE) self._assert_context_options(ctx) - - def test__create_stdlib_context(self): ctx = ssl._create_stdlib_context() self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLS_CLIENT) @@ -1716,11 +1492,12 @@ def test__create_stdlib_context(self): self.assertFalse(ctx.check_hostname) self._assert_context_options(ctx) - with warnings_helper.check_warnings(): - ctx = ssl._create_stdlib_context(ssl.PROTOCOL_TLSv1) - self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLSv1) - self.assertEqual(ctx.verify_mode, ssl.CERT_NONE) - self._assert_context_options(ctx) + if has_tls_protocol(ssl.PROTOCOL_TLSv1): + with warnings_helper.check_warnings(): + ctx = ssl._create_stdlib_context(ssl.PROTOCOL_TLSv1) + self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLSv1) + self.assertEqual(ctx.verify_mode, ssl.CERT_NONE) + self._assert_context_options(ctx) with warnings_helper.check_warnings(): ctx = ssl._create_stdlib_context( @@ -2262,11 +2039,8 @@ def ssl_io_loop(self, sock, incoming, outgoing, func, *args, **kwargs): # A simple IO loop. Call func(*args) depending on the error we get # (WANT_READ or WANT_WRITE) move data between the socket and the BIOs. timeout = kwargs.get('timeout', support.SHORT_TIMEOUT) - deadline = time.monotonic() + timeout count = 0 - while True: - if time.monotonic() > deadline: - self.fail("timeout") + for _ in support.busy_retry(timeout): errno = None count += 1 try: @@ -3333,37 +3107,10 @@ def test_ssl_cert_verify_error(self): self.assertIn(msg, repr(e)) self.assertIn('certificate verify failed', repr(e)) - @requires_tls_version('SSLv2') - def test_protocol_sslv2(self): - """Connecting to an SSLv2 server with various client options""" - if support.verbose: - sys.stdout.write("\n") - try_protocol_combo(ssl.PROTOCOL_SSLv2, ssl.PROTOCOL_SSLv2, True) - try_protocol_combo(ssl.PROTOCOL_SSLv2, ssl.PROTOCOL_SSLv2, True, ssl.CERT_OPTIONAL) - try_protocol_combo(ssl.PROTOCOL_SSLv2, ssl.PROTOCOL_SSLv2, True, ssl.CERT_REQUIRED) - try_protocol_combo(ssl.PROTOCOL_SSLv2, ssl.PROTOCOL_TLS, False) - if has_tls_version('SSLv3'): - try_protocol_combo(ssl.PROTOCOL_SSLv2, ssl.PROTOCOL_SSLv3, False) - try_protocol_combo(ssl.PROTOCOL_SSLv2, ssl.PROTOCOL_TLSv1, False) - # SSLv23 client with specific SSL options - try_protocol_combo(ssl.PROTOCOL_SSLv2, ssl.PROTOCOL_TLS, False, - client_options=ssl.OP_NO_SSLv3) - try_protocol_combo(ssl.PROTOCOL_SSLv2, ssl.PROTOCOL_TLS, False, - client_options=ssl.OP_NO_TLSv1) - def test_PROTOCOL_TLS(self): """Connecting to an SSLv23 server with various client options""" if support.verbose: sys.stdout.write("\n") - if has_tls_version('SSLv2'): - try: - try_protocol_combo(ssl.PROTOCOL_TLS, ssl.PROTOCOL_SSLv2, True) - except OSError as x: - # this fails on some older versions of OpenSSL (0.9.7l, for instance) - if support.verbose: - sys.stdout.write( - " SSL2 client to SSL23 server test unexpectedly failed:\n %s\n" - % str(x)) if has_tls_version('SSLv3'): try_protocol_combo(ssl.PROTOCOL_TLS, ssl.PROTOCOL_SSLv3, False) try_protocol_combo(ssl.PROTOCOL_TLS, ssl.PROTOCOL_TLS, True) @@ -3401,8 +3148,6 @@ def test_protocol_sslv3(self): try_protocol_combo(ssl.PROTOCOL_SSLv3, ssl.PROTOCOL_SSLv3, 'SSLv3') try_protocol_combo(ssl.PROTOCOL_SSLv3, ssl.PROTOCOL_SSLv3, 'SSLv3', ssl.CERT_OPTIONAL) try_protocol_combo(ssl.PROTOCOL_SSLv3, ssl.PROTOCOL_SSLv3, 'SSLv3', ssl.CERT_REQUIRED) - if has_tls_version('SSLv2'): - try_protocol_combo(ssl.PROTOCOL_SSLv3, ssl.PROTOCOL_SSLv2, False) try_protocol_combo(ssl.PROTOCOL_SSLv3, ssl.PROTOCOL_TLS, False, client_options=ssl.OP_NO_SSLv3) try_protocol_combo(ssl.PROTOCOL_SSLv3, ssl.PROTOCOL_TLSv1, False) @@ -3415,8 +3160,6 @@ def test_protocol_tlsv1(self): try_protocol_combo(ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_TLSv1, 'TLSv1') try_protocol_combo(ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_TLSv1, 'TLSv1', ssl.CERT_OPTIONAL) try_protocol_combo(ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_TLSv1, 'TLSv1', ssl.CERT_REQUIRED) - if has_tls_version('SSLv2'): - try_protocol_combo(ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_SSLv2, False) if has_tls_version('SSLv3'): try_protocol_combo(ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_SSLv3, False) try_protocol_combo(ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_TLS, False, @@ -3429,8 +3172,6 @@ def test_protocol_tlsv1_1(self): if support.verbose: sys.stdout.write("\n") try_protocol_combo(ssl.PROTOCOL_TLSv1_1, ssl.PROTOCOL_TLSv1_1, 'TLSv1.1') - if has_tls_version('SSLv2'): - try_protocol_combo(ssl.PROTOCOL_TLSv1_1, ssl.PROTOCOL_SSLv2, False) if has_tls_version('SSLv3'): try_protocol_combo(ssl.PROTOCOL_TLSv1_1, ssl.PROTOCOL_SSLv3, False) try_protocol_combo(ssl.PROTOCOL_TLSv1_1, ssl.PROTOCOL_TLS, False, @@ -3449,18 +3190,18 @@ def test_protocol_tlsv1_2(self): try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_TLSv1_2, 'TLSv1.2', server_options=ssl.OP_NO_SSLv3|ssl.OP_NO_SSLv2, client_options=ssl.OP_NO_SSLv3|ssl.OP_NO_SSLv2,) - if has_tls_version('SSLv2'): - try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_SSLv2, False) if has_tls_version('SSLv3'): try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_SSLv3, False) try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_TLS, False, client_options=ssl.OP_NO_TLSv1_2) try_protocol_combo(ssl.PROTOCOL_TLS, ssl.PROTOCOL_TLSv1_2, 'TLSv1.2') - try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_TLSv1, False) - try_protocol_combo(ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_TLSv1_2, False) - try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_TLSv1_1, False) - try_protocol_combo(ssl.PROTOCOL_TLSv1_1, ssl.PROTOCOL_TLSv1_2, False) + if has_tls_protocol(ssl.PROTOCOL_TLSv1): + try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_TLSv1, False) + try_protocol_combo(ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_TLSv1_2, False) + if has_tls_protocol(ssl.PROTOCOL_TLSv1_1): + try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_TLSv1_1, False) + try_protocol_combo(ssl.PROTOCOL_TLSv1_1, ssl.PROTOCOL_TLSv1_2, False) def test_starttls(self): """Switching from clear text to encrypted and back again.""" diff --git a/Lib/test/test_stable_abi_ctypes.py b/Lib/test/test_stable_abi_ctypes.py index 53e93ab6b9b4c9..a803e3a5025985 100644 --- a/Lib/test/test_stable_abi_ctypes.py +++ b/Lib/test/test_stable_abi_ctypes.py @@ -782,6 +782,8 @@ def test_windows_feature_macros(self): "PyUnicode_Translate", "PyUnicode_Type", "PyUnicode_WriteChar", + "PyVectorcall_Call", + "PyVectorcall_NARGS", "PyWeakref_GetObject", "PyWeakref_NewProxy", "PyWeakref_NewRef", diff --git a/Lib/test/test_stat.py b/Lib/test/test_stat.py index 2e1e2c349c8d09..4ba37aed2dc9db 100644 --- a/Lib/test/test_stat.py +++ b/Lib/test/test_stat.py @@ -113,6 +113,7 @@ def assertS_IS(self, name, mode): else: self.assertFalse(func(mode)) + @os_helper.skip_unless_working_chmod def test_mode(self): with open(TESTFN, 'w'): pass @@ -151,6 +152,7 @@ def test_mode(self): self.assertEqual(self.statmod.S_IFMT(st_mode), self.statmod.S_IFREG) + @os_helper.skip_unless_working_chmod def test_directory(self): os.mkdir(TESTFN) os.chmod(TESTFN, 0o700) @@ -161,7 +163,7 @@ def test_directory(self): else: self.assertEqual(modestr[0], 'd') - @unittest.skipUnless(hasattr(os, 'symlink'), 'os.symlink not available') + @os_helper.skip_unless_symlink def test_link(self): try: os.symlink(os.getcwd(), TESTFN) diff --git a/Lib/test/test_statistics.py b/Lib/test/test_statistics.py index 6de98241c294d7..05ce79f126590a 100644 --- a/Lib/test/test_statistics.py +++ b/Lib/test/test_statistics.py @@ -2565,6 +2565,22 @@ def test_different_scales(self): self.assertAlmostEqual(statistics.covariance(x, y), 0.1) + def test_correlation_spearman(self): + # https://statistics.laerd.com/statistical-guides/spearmans-rank-order-correlation-statistical-guide-2.php + # Compare with: + # >>> import scipy.stats.mstats + # >>> scipy.stats.mstats.spearmanr(reading, mathematics) + # SpearmanrResult(correlation=0.6686960980480712, pvalue=0.03450954165178532) + # And Wolfram Alpha gives: 0.668696 + # https://www.wolframalpha.com/input?i=SpearmanRho%5B%7B56%2C+75%2C+45%2C+71%2C+61%2C+64%2C+58%2C+80%2C+76%2C+61%7D%2C+%7B66%2C+70%2C+40%2C+60%2C+65%2C+56%2C+59%2C+77%2C+67%2C+63%7D%5D + reading = [56, 75, 45, 71, 61, 64, 58, 80, 76, 61] + mathematics = [66, 70, 40, 60, 65, 56, 59, 77, 67, 63] + self.assertAlmostEqual(statistics.correlation(reading, mathematics, method='ranked'), + 0.6686960980480712) + + with self.assertRaises(ValueError): + statistics.correlation(reading, mathematics, method='bad_method') + class TestLinearRegression(unittest.TestCase): def test_constant_input_error(self): @@ -2801,9 +2817,10 @@ def test_inv_cdf(self): iq.inv_cdf(1.0) # p is one with self.assertRaises(self.module.StatisticsError): iq.inv_cdf(1.1) # p over one - with self.assertRaises(self.module.StatisticsError): - iq = NormalDist(100, 0) # sigma is zero - iq.inv_cdf(0.5) + + # Supported case: + iq = NormalDist(100, 0) # sigma is zero + self.assertEqual(iq.inv_cdf(0.5), 100) # Special values self.assertTrue(math.isnan(Z.inv_cdf(float('NaN')))) diff --git a/Lib/test/test_struct.py b/Lib/test/test_struct.py index 94873ff6124d02..ab738770546c0b 100644 --- a/Lib/test/test_struct.py +++ b/Lib/test/test_struct.py @@ -1,10 +1,12 @@ from collections import abc import array +import gc import math import operator import unittest import struct import sys +import weakref from test import support from test.support import import_helper @@ -672,6 +674,33 @@ def __del__(self): self.assertIn(b"Exception ignored in:", stderr) self.assertIn(b"C.__del__", stderr) + def test__struct_reference_cycle_cleaned_up(self): + # Regression test for python/cpython#94207. + + # When we create a new struct module, trigger use of its cache, + # and then delete it ... + _struct_module = import_helper.import_fresh_module("_struct") + module_ref = weakref.ref(_struct_module) + _struct_module.calcsize("b") + del _struct_module + + # Then the module should have been garbage collected. + gc.collect() + self.assertIsNone( + module_ref(), "_struct module was not garbage collected") + + @support.cpython_only + def test__struct_types_immutable(self): + # See https://github.com/python/cpython/issues/94254 + + Struct = struct.Struct + unpack_iterator = type(struct.iter_unpack("b", b'x')) + for cls in (Struct, unpack_iterator): + with self.subTest(cls=cls): + with self.assertRaises(TypeError): + cls.x = 1 + + def test_issue35714(self): # Embedded null characters should not be allowed in format strings. for s in '\0', '2\0i', b'\0': diff --git a/Lib/test/test_support.py b/Lib/test/test_support.py index 23bcceedd71b2a..7738ca5e9b433d 100644 --- a/Lib/test/test_support.py +++ b/Lib/test/test_support.py @@ -9,7 +9,6 @@ import sys import tempfile import textwrap -import time import unittest import warnings @@ -461,18 +460,12 @@ def test_reap_children(self): # child process: do nothing, just exit os._exit(0) - t0 = time.monotonic() - deadline = time.monotonic() + support.SHORT_TIMEOUT - was_altered = support.environment_altered try: support.environment_altered = False stderr = io.StringIO() - while True: - if time.monotonic() > deadline: - self.fail("timeout") - + for _ in support.sleeping_retry(support.SHORT_TIMEOUT): with support.swap_attr(support.print_warning, 'orig_stderr', stderr): support.reap_children() @@ -481,9 +474,6 @@ def test_reap_children(self): if support.environment_altered: break - # loop until the child process completed - time.sleep(0.100) - msg = "Warning -- reap_children() reaped child process %s" % pid self.assertIn(msg, stderr.getvalue()) self.assertTrue(support.environment_altered) diff --git a/Lib/test/test_syntax.py b/Lib/test/test_syntax.py index 96e5c129c6599c..ae1066924b3cf5 100644 --- a/Lib/test/test_syntax.py +++ b/Lib/test/test_syntax.py @@ -607,7 +607,7 @@ >>> class C(x for x in L): ... pass Traceback (most recent call last): -SyntaxError: expected ':' +SyntaxError: invalid syntax >>> def g(*args, **kwargs): ... print(args, sorted(kwargs.items())) @@ -963,17 +963,22 @@ ... SyntaxError: cannot assign to function call here. Maybe you meant '==' instead of '='? - Missing ':' before suites: +Missing ':' before suites: - >>> def f() - ... pass - Traceback (most recent call last): - SyntaxError: expected ':' + >>> def f() + ... pass + Traceback (most recent call last): + SyntaxError: expected ':' - >>> class A - ... pass - Traceback (most recent call last): - SyntaxError: expected ':' + >>> class A + ... pass + Traceback (most recent call last): + SyntaxError: expected ':' + + >>> class R&D: + ... pass + Traceback (most recent call last): + SyntaxError: invalid syntax >>> if 1 ... pass @@ -1007,6 +1012,11 @@ Traceback (most recent call last): SyntaxError: expected ':' + >>> for x in range 10: + ... pass + Traceback (most recent call last): + SyntaxError: invalid syntax + >>> while True ... pass Traceback (most recent call last): @@ -1052,6 +1062,11 @@ Traceback (most recent call last): SyntaxError: expected ':' + >>> with block ad something: + ... pass + Traceback (most recent call last): + SyntaxError: invalid syntax + >>> try ... pass Traceback (most recent call last): @@ -1070,6 +1085,12 @@ Traceback (most recent call last): SyntaxError: expected ':' + >>> match x x: + ... case list(): + ... pass + Traceback (most recent call last): + SyntaxError: invalid syntax + >>> match x: ... case list() ... pass @@ -1244,12 +1265,22 @@ Traceback (most recent call last): SyntaxError: expression expected after dictionary key and ':' - # Ensure that the error is not raise for syntax errors that happen after sets + # Ensure that the error is not raised for syntax errors that happen after sets >>> {1} $ Traceback (most recent call last): SyntaxError: invalid syntax + # Ensure that the error is not raised for invalid expressions + + >>> {1: 2, 3: foo(,), 4: 5} + Traceback (most recent call last): + SyntaxError: invalid syntax + + >>> {1: $, 2: 3} + Traceback (most recent call last): + SyntaxError: invalid syntax + Specialized indentation errors: >>> while condition: @@ -1981,7 +2012,8 @@ def fib(n): a, b = 0, 1 """ try: - self.assertEqual(compile(s1, '<string>', 'exec'), compile(s2, '<string>', 'exec')) + compile(s1, '<string>', 'exec') + compile(s2, '<string>', 'exec') except SyntaxError: self.fail("Indented statement over multiple lines is valid") diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py index 94a09ff549331a..41482734872e06 100644 --- a/Lib/test/test_sys.py +++ b/Lib/test/test_sys.py @@ -550,11 +550,17 @@ def test_attributes(self): self.assertIsInstance(sys.executable, str) self.assertEqual(len(sys.float_info), 11) self.assertEqual(sys.float_info.radix, 2) - self.assertEqual(len(sys.int_info), 2) + self.assertEqual(len(sys.int_info), 4) self.assertTrue(sys.int_info.bits_per_digit % 5 == 0) self.assertTrue(sys.int_info.sizeof_digit >= 1) + self.assertGreaterEqual(sys.int_info.default_max_str_digits, 500) + self.assertGreaterEqual(sys.int_info.str_digits_check_threshold, 100) + self.assertGreater(sys.int_info.default_max_str_digits, + sys.int_info.str_digits_check_threshold) self.assertEqual(type(sys.int_info.bits_per_digit), int) self.assertEqual(type(sys.int_info.sizeof_digit), int) + self.assertIsInstance(sys.int_info.default_max_str_digits, int) + self.assertIsInstance(sys.int_info.str_digits_check_threshold, int) self.assertIsInstance(sys.hexversion, int) self.assertEqual(len(sys.hash_info), 9) @@ -626,8 +632,16 @@ def test_attributes(self): def test_thread_info(self): info = sys.thread_info self.assertEqual(len(info), 3) - self.assertIn(info.name, ('nt', 'pthread', 'solaris', None)) + self.assertIn(info.name, ('nt', 'pthread', 'pthread-stubs', 'solaris', None)) self.assertIn(info.lock, ('semaphore', 'mutex+cond', None)) + if sys.platform.startswith(("linux", "freebsd")): + self.assertEqual(info.name, "pthread") + elif sys.platform == "win32": + self.assertEqual(info.name, "nt") + elif sys.platform == "emscripten": + self.assertIn(info.name, {"pthread", "pthread-stubs"}) + elif sys.platform == "wasi": + self.assertEqual(info.name, "pthread-stubs") @unittest.skipUnless(support.is_emscripten, "only available on Emscripten") def test_emscripten_info(self): @@ -669,7 +683,7 @@ def test_sys_flags(self): "dont_write_bytecode", "no_user_site", "no_site", "ignore_environment", "verbose", "bytes_warning", "quiet", "hash_randomization", "isolated", "dev_mode", "utf8_mode", - "warn_default_encoding", "safe_path") + "warn_default_encoding", "safe_path", "int_max_str_digits") for attr in attrs: self.assertTrue(hasattr(sys.flags, attr), attr) attr_type = bool if attr in ("dev_mode", "safe_path") else int @@ -1287,7 +1301,7 @@ class OverflowSizeof(int): def __sizeof__(self): return int(self) self.assertEqual(sys.getsizeof(OverflowSizeof(sys.maxsize)), - sys.maxsize + self.gc_headsize) + sys.maxsize + self.gc_headsize*2) with self.assertRaises(OverflowError): sys.getsizeof(OverflowSizeof(sys.maxsize + 1)) with self.assertRaises(ValueError): @@ -1539,6 +1553,7 @@ class newstyleclass(object): pass samples = ['1'*100, '\xff'*50, '\u0100'*40, '\uffff'*100, '\U00010000'*30, '\U0010ffff'*100] + # also update field definitions in test_unicode.test_raiseMemError asciifields = "nnb" compactfields = asciifields + "nP" unicodefields = compactfields + "P" diff --git a/Lib/test/test_sys_setprofile.py b/Lib/test/test_sys_setprofile.py index 21a09b51926e68..4c3053a1e3e9e6 100644 --- a/Lib/test/test_sys_setprofile.py +++ b/Lib/test/test_sys_setprofile.py @@ -2,6 +2,7 @@ import pprint import sys import unittest +from test import support class TestGetProfile(unittest.TestCase): @@ -415,5 +416,43 @@ def show_events(callable): pprint.pprint(capture_events(callable)) +class TestEdgeCases(unittest.TestCase): + + def setUp(self): + self.addCleanup(sys.setprofile, sys.getprofile()) + sys.setprofile(None) + + def test_reentrancy(self): + def foo(*args): + ... + + def bar(*args): + ... + + class A: + def __call__(self, *args): + pass + + def __del__(self): + sys.setprofile(bar) + + sys.setprofile(A()) + with support.catch_unraisable_exception() as cm: + sys.setprofile(foo) + self.assertEqual(cm.unraisable.object, A.__del__) + self.assertIsInstance(cm.unraisable.exc_value, RuntimeError) + + self.assertEqual(sys.getprofile(), foo) + + + def test_same_object(self): + def foo(*args): + ... + + sys.setprofile(foo) + del foo + sys.setprofile(sys.getprofile()) + + if __name__ == "__main__": unittest.main() diff --git a/Lib/test/test_sys_settrace.py b/Lib/test/test_sys_settrace.py index 162fd8328582ca..9f1aa81dbcd249 100644 --- a/Lib/test/test_sys_settrace.py +++ b/Lib/test/test_sys_settrace.py @@ -2,6 +2,7 @@ from test import support import unittest +from unittest.mock import MagicMock import sys import difflib import gc @@ -1570,6 +1571,28 @@ def func(): self.run_and_compare(func, EXPECTED_EVENTS) + def test_very_large_function(self): + # There is a separate code path when the number of lines > (1 << 15). + d = {} + exec("""def f(): # line 0 + x = 0 # line 1 + y = 1 # line 2 + %s # lines 3 through (1 << 16) + x += 1 # + return""" % ('\n' * (1 << 16),), d) + f = d['f'] + + EXPECTED_EVENTS = [ + (0, 'call'), + (1, 'line'), + (2, 'line'), + (65540, 'line'), + (65541, 'line'), + (65541, 'return'), + ] + + self.run_and_compare(f, EXPECTED_EVENTS) + EVENT_NAMES = [ 'call', @@ -1856,7 +1879,7 @@ def test_jump_out_of_block_backwards(output): output.append(6) output.append(7) - @async_jump_test(4, 5, [3], (ValueError, 'into')) + @async_jump_test(4, 5, [3, 5]) async def test_jump_out_of_async_for_block_forwards(output): for i in [1]: async for i in asynciter([1, 2]): @@ -1898,7 +1921,7 @@ def test_jump_in_nested_finally(output): output.append(8) output.append(9) - @jump_test(6, 7, [2], (ValueError, 'within')) + @jump_test(6, 7, [2, 7], (ZeroDivisionError, '')) def test_jump_in_nested_finally_2(output): try: output.append(2) @@ -1909,7 +1932,7 @@ def test_jump_in_nested_finally_2(output): output.append(7) output.append(8) - @jump_test(6, 11, [2], (ValueError, 'within')) + @jump_test(6, 11, [2, 11], (ZeroDivisionError, '')) def test_jump_in_nested_finally_3(output): try: output.append(2) @@ -2020,8 +2043,8 @@ def test_jump_backwards_out_of_try_except_block(output): output.append(5) raise - @jump_test(5, 7, [4], (ValueError, 'within')) - def test_no_jump_between_except_blocks(output): + @jump_test(5, 7, [4, 7, 8]) + def test_jump_between_except_blocks(output): try: 1/0 except ZeroDivisionError: @@ -2031,8 +2054,19 @@ def test_no_jump_between_except_blocks(output): output.append(7) output.append(8) - @jump_test(5, 6, [4], (ValueError, 'within')) - def test_no_jump_within_except_block(output): + @jump_test(5, 7, [4, 7, 8]) + def test_jump_from_except_to_finally(output): + try: + 1/0 + except ZeroDivisionError: + output.append(4) + output.append(5) + finally: + output.append(7) + output.append(8) + + @jump_test(5, 6, [4, 6, 7]) + def test_jump_within_except_block(output): try: 1/0 except: @@ -2041,6 +2075,15 @@ def test_no_jump_within_except_block(output): output.append(6) output.append(7) + @jump_test(6, 1, [1, 5, 1, 5]) + def test_jump_over_try_except(output): + output.append(1) + try: + 1 / 0 + except ZeroDivisionError as e: + output.append(5) + x = 42 # has to be a two-instruction block + @jump_test(2, 4, [1, 4, 5, -4]) def test_jump_across_with(output): output.append(1) @@ -2258,31 +2301,31 @@ def test_no_jump_backwards_into_for_block(output): output.append(2) output.append(3) - @async_jump_test(3, 2, [2, 2], (ValueError, 'within')) + @async_jump_test(3, 2, [2, 2], (ValueError, "can't jump into the body of a for loop")) async def test_no_jump_backwards_into_async_for_block(output): async for i in asynciter([1, 2]): output.append(2) output.append(3) - @jump_test(1, 3, [], (ValueError, 'depth')) + @jump_test(1, 3, [], (ValueError, 'stack')) def test_no_jump_forwards_into_with_block(output): output.append(1) with tracecontext(output, 2): output.append(3) - @async_jump_test(1, 3, [], (ValueError, 'depth')) + @async_jump_test(1, 3, [], (ValueError, 'stack')) async def test_no_jump_forwards_into_async_with_block(output): output.append(1) async with asynctracecontext(output, 2): output.append(3) - @jump_test(3, 2, [1, 2, -1], (ValueError, 'depth')) + @jump_test(3, 2, [1, 2, -1], (ValueError, 'stack')) def test_no_jump_backwards_into_with_block(output): with tracecontext(output, 1): output.append(2) output.append(3) - @async_jump_test(3, 2, [1, 2, -1], (ValueError, 'depth')) + @async_jump_test(3, 2, [1, 2, -1], (ValueError, 'stack')) async def test_no_jump_backwards_into_async_with_block(output): async with asynctracecontext(output, 1): output.append(2) @@ -2323,8 +2366,8 @@ def test_jump_backwards_into_try_except_block(output): output.append(6) # 'except' with a variable creates an implicit finally block - @jump_test(5, 7, [4], (ValueError, 'within')) - def test_no_jump_between_except_blocks_2(output): + @jump_test(5, 7, [4, 7, 8]) + def test_jump_between_except_blocks_2(output): try: 1/0 except ZeroDivisionError: @@ -2360,7 +2403,7 @@ def test_jump_out_of_finally_block(output): finally: output.append(5) - @jump_test(1, 5, [], (ValueError, "into an exception")) + @jump_test(1, 5, [], (ValueError, "can't jump into an 'except' block as there's no exception")) def test_no_jump_into_bare_except_block(output): output.append(1) try: @@ -2368,7 +2411,7 @@ def test_no_jump_into_bare_except_block(output): except: output.append(5) - @jump_test(1, 5, [], (ValueError, "into an exception")) + @jump_test(1, 5, [], (ValueError, "can't jump into an 'except' block as there's no exception")) def test_no_jump_into_qualified_except_block(output): output.append(1) try: @@ -2376,7 +2419,7 @@ def test_no_jump_into_qualified_except_block(output): except Exception: output.append(5) - @jump_test(3, 6, [2, 5, 6], (ValueError, "into an exception")) + @jump_test(3, 6, [2, 5, 6], (ValueError, "can't jump into an 'except' block as there's no exception")) def test_no_jump_into_bare_except_block_from_try_block(output): try: output.append(2) @@ -2387,7 +2430,7 @@ def test_no_jump_into_bare_except_block_from_try_block(output): raise output.append(8) - @jump_test(3, 6, [2], (ValueError, "into an exception")) + @jump_test(3, 6, [2], (ValueError, "can't jump into an 'except' block as there's no exception")) def test_no_jump_into_qualified_except_block_from_try_block(output): try: output.append(2) @@ -2398,8 +2441,8 @@ def test_no_jump_into_qualified_except_block_from_try_block(output): raise output.append(8) - @jump_test(7, 1, [1, 3, 6], (ValueError, "within")) - def test_no_jump_out_of_bare_except_block(output): + @jump_test(7, 1, [1, 3, 6, 1, 3, 6, 7]) + def test_jump_out_of_bare_except_block(output): output.append(1) try: output.append(3) @@ -2408,8 +2451,8 @@ def test_no_jump_out_of_bare_except_block(output): output.append(6) output.append(7) - @jump_test(7, 1, [1, 3, 6], (ValueError, "within")) - def test_no_jump_out_of_qualified_except_block(output): + @jump_test(7, 1, [1, 3, 6, 1, 3, 6, 7]) + def test_jump_out_of_qualified_except_block(output): output.append(1) try: output.append(3) @@ -2584,6 +2627,99 @@ async def test_jump_backward_over_async_listcomp_v2(output): output.append(7) output.append(8) + # checking for segfaults. + @jump_test(3, 7, [], error=(ValueError, "stack")) + def test_jump_with_null_on_stack_load_global(output): + a = 1 + print( + output.append(3) + ) + output.append(5) + ( + ( # 7 + a + + + 10 + ) + + + 13 + ) + output.append(15) + + # checking for segfaults. + @jump_test(4, 8, [], error=(ValueError, "stack")) + def test_jump_with_null_on_stack_push_null(output): + a = 1 + f = print + f( + output.append(4) + ) + output.append(6) + ( + ( # 8 + a + + + 11 + ) + + + 14 + ) + output.append(16) + + # checking for segfaults. + @jump_test(3, 7, [], error=(ValueError, "stack")) + def test_jump_with_null_on_stack_load_attr(output): + a = 1 + list.append( + output, 3 + ) + output.append(5) + ( + ( # 7 + a + + + 10 + ) + + + 13 + ) + output.append(15) + + @jump_test(2, 3, [1, 3]) + def test_jump_extended_args_unpack_ex_simple(output): + output.append(1) + _, *_, _ = output.append(2) or "Spam" + output.append(3) + + @jump_test(3, 4, [1, 4, 4, 5]) + def test_jump_extended_args_unpack_ex_tricky(output): + output.append(1) + ( + _, *_, _ + ) = output.append(4) or "Spam" + output.append(5) + + def test_jump_extended_args_for_iter(self): + # In addition to failing when extended arg handling is broken, this can + # also hang for a *very* long time: + source = [ + "def f(output):", + " output.append(1)", + " for _ in spam:", + *(f" output.append({i})" for i in range(3, 100_000)), + f" output.append(100_000)", + ] + namespace = {} + exec("\n".join(source), namespace) + f = namespace["f"] + self.run_test(f, 2, 100_000, [1, 100_000]) + + @jump_test(2, 3, [1, 3]) + def test_jump_or_pop(output): + output.append(1) + _ = output.append(2) and "Spam" + output.append(3) + class TestExtendedArgs(unittest.TestCase): @@ -2627,5 +2763,43 @@ def f(): self.assertEqual(counts, {'call': 1, 'line': 2000, 'return': 1}) +class TestEdgeCases(unittest.TestCase): + + def setUp(self): + self.addCleanup(sys.settrace, sys.gettrace()) + sys.settrace(None) + + def test_reentrancy(self): + def foo(*args): + ... + + def bar(*args): + ... + + class A: + def __call__(self, *args): + pass + + def __del__(self): + sys.settrace(bar) + + sys.settrace(A()) + with support.catch_unraisable_exception() as cm: + sys.settrace(foo) + self.assertEqual(cm.unraisable.object, A.__del__) + self.assertIsInstance(cm.unraisable.exc_value, RuntimeError) + + self.assertEqual(sys.gettrace(), foo) + + + def test_same_object(self): + def foo(*args): + ... + + sys.settrace(foo) + del foo + sys.settrace(sys.gettrace()) + + if __name__ == "__main__": unittest.main() diff --git a/Lib/test/test_sysconfig.py b/Lib/test/test_sysconfig.py index f2b93706b270a7..b6dbf3d52cb4c3 100644 --- a/Lib/test/test_sysconfig.py +++ b/Lib/test/test_sysconfig.py @@ -5,11 +5,12 @@ import shutil from copy import copy -from test.support import (captured_stdout, PythonSymlink, requires_subprocess) +from test.support import ( + captured_stdout, PythonSymlink, requires_subprocess, is_wasi +) from test.support.import_helper import import_module from test.support.os_helper import (TESTFN, unlink, skip_unless_symlink, change_cwd) -from test.support.warnings_helper import check_warnings import sysconfig from sysconfig import (get_paths, get_platform, get_config_vars, @@ -328,6 +329,7 @@ def test_get_platform(self): # XXX more platforms to tests here + @unittest.skipIf(is_wasi, "Incompatible with WASI mapdir and OOT builds") def test_get_config_h_filename(self): config_h = sysconfig.get_config_h_filename() self.assertTrue(os.path.isfile(config_h), config_h) @@ -367,7 +369,7 @@ def test_user_similar(self): base = base.replace(sys.base_prefix, sys.prefix) if HAS_USER_BASE: user_path = get_path(name, 'posix_user') - expected = global_path.replace(base, user, 1) + expected = os.path.normpath(global_path.replace(base, user, 1)) # bpo-44860: platlib of posix_user doesn't use sys.platlibdir, # whereas posix_prefix does. if name == 'platlib': @@ -436,6 +438,7 @@ def test_platform_in_subprocess(self): self.assertEqual(status, 0) self.assertEqual(my_platform, test_platform) + @unittest.skipIf(is_wasi, "Incompatible with WASI mapdir and OOT builds") def test_srcdir(self): # See Issues #15322, #15364. srcdir = sysconfig.get_config_var('srcdir') @@ -448,7 +451,11 @@ def test_srcdir(self): # should be a full source checkout. Python_h = os.path.join(srcdir, 'Include', 'Python.h') self.assertTrue(os.path.exists(Python_h), Python_h) - self.assertTrue(sysconfig._is_python_source_dir(srcdir)) + # <srcdir>/PC/pyconfig.h always exists even if unused on POSIX. + pyconfig_h = os.path.join(srcdir, 'PC', 'pyconfig.h') + self.assertTrue(os.path.exists(pyconfig_h), pyconfig_h) + pyconfig_h_in = os.path.join(srcdir, 'pyconfig.h.in') + self.assertTrue(os.path.exists(pyconfig_h_in), pyconfig_h_in) elif os.name == 'posix': makefile_dir = os.path.dirname(sysconfig.get_makefile_filename()) # Issue #19340: srcdir has been realpath'ed already @@ -499,6 +506,7 @@ class MakefileTests(unittest.TestCase): @unittest.skipIf(sys.platform.startswith('win'), 'Test is not Windows compatible') + @unittest.skipIf(is_wasi, "Incompatible with WASI mapdir and OOT builds") def test_get_makefile_filename(self): makefile = sysconfig.get_makefile_filename() self.assertTrue(os.path.isfile(makefile), makefile) diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py index a364043d3d9dd8..0868d5d6e90915 100644 --- a/Lib/test/test_tarfile.py +++ b/Lib/test/test_tarfile.py @@ -228,6 +228,7 @@ def test_add_dir_getmember(self): def add_dir_and_getmember(self, name): with os_helper.temp_cwd(): with tarfile.open(tmpname, 'w') as tar: + tar.format = tarfile.USTAR_FORMAT try: os.mkdir(name) tar.add(name) @@ -630,6 +631,7 @@ def test_extract_hardlink(self): data = f.read() self.assertEqual(sha256sum(data), sha256_regtype) + @os_helper.skip_unless_working_chmod def test_extractall(self): # Test if extractall() correctly restores directory permissions # and times (see issue1735). @@ -660,6 +662,7 @@ def format_mtime(mtime): tar.close() os_helper.rmtree(DIR) + @os_helper.skip_unless_working_chmod def test_extract_directory(self): dirtype = "ustar/dirtype" DIR = os.path.join(TEMPDIR, "extractdir") @@ -1018,11 +1021,26 @@ def test_header_offset(self): "iso8859-1", "strict") self.assertEqual(tarinfo.type, self.longnametype) + def test_longname_directory(self): + # Test reading a longlink directory. Issue #47231. + longdir = ('a' * 101) + '/' + with os_helper.temp_cwd(): + with tarfile.open(tmpname, 'w') as tar: + tar.format = self.format + try: + os.mkdir(longdir) + tar.add(longdir) + finally: + os.rmdir(longdir.rstrip("/")) + with tarfile.open(tmpname) as tar: + self.assertIsNotNone(tar.getmember(longdir)) + self.assertIsNotNone(tar.getmember(longdir.removesuffix('/'))) class GNUReadTest(LongnameTest, ReadTest, unittest.TestCase): subdir = "gnu" longnametype = tarfile.GNUTYPE_LONGNAME + format = tarfile.GNU_FORMAT # Since 3.2 tarfile is supposed to accurately restore sparse members and # produce files with holes. This is what we actually want to test here. @@ -1082,6 +1100,7 @@ class PaxReadTest(LongnameTest, ReadTest, unittest.TestCase): subdir = "pax" longnametype = tarfile.XHDTYPE + format = tarfile.PAX_FORMAT def test_pax_global_headers(self): tar = tarfile.open(tarname, encoding="iso8859-1") @@ -1535,6 +1554,75 @@ class Bz2StreamWriteTest(Bz2Test, StreamWriteTest): class LzmaStreamWriteTest(LzmaTest, StreamWriteTest): decompressor = lzma.LZMADecompressor if lzma else None +class _CompressedWriteTest(TarTest): + # This is not actually a standalone test. + # It does not inherit WriteTest because it only makes sense with gz,bz2 + source = (b"And we move to Bristol where they have a special, " + + b"Very Silly candidate") + + def _compressed_tar(self, compresslevel): + fobj = io.BytesIO() + with tarfile.open(tmpname, self.mode, fobj, + compresslevel=compresslevel) as tarfl: + tarfl.addfile(tarfile.TarInfo("foo"), io.BytesIO(self.source)) + return fobj + + def _test_bz2_header(self, compresslevel): + fobj = self._compressed_tar(compresslevel) + self.assertEqual(fobj.getvalue()[0:10], + b"BZh%d1AY&SY" % compresslevel) + + def _test_gz_header(self, compresslevel): + fobj = self._compressed_tar(compresslevel) + self.assertEqual(fobj.getvalue()[:3], b"\x1f\x8b\x08") + +class Bz2CompressWriteTest(Bz2Test, _CompressedWriteTest, unittest.TestCase): + prefix = "w:" + def test_compression_levels(self): + self._test_bz2_header(1) + self._test_bz2_header(5) + self._test_bz2_header(9) + +class Bz2CompressStreamWriteTest(Bz2Test, _CompressedWriteTest, + unittest.TestCase): + prefix = "w|" + def test_compression_levels(self): + self._test_bz2_header(1) + self._test_bz2_header(5) + self._test_bz2_header(9) + +class GzCompressWriteTest(GzipTest, _CompressedWriteTest, unittest.TestCase): + prefix = "w:" + def test_compression_levels(self): + self._test_gz_header(1) + self._test_gz_header(5) + self._test_gz_header(9) + +class GzCompressStreamWriteTest(GzipTest, _CompressedWriteTest, + unittest.TestCase): + prefix = "w|" + def test_compression_levels(self): + self._test_gz_header(1) + self._test_gz_header(5) + self._test_gz_header(9) + +class CompressLevelRaises(unittest.TestCase): + def test_compresslevel_wrong_modes(self): + compresslevel = 5 + fobj = io.BytesIO() + with self.assertRaises(TypeError): + tarfile.open(tmpname, "w:", fobj, compresslevel=compresslevel) + + @support.requires_bz2() + def test_wrong_compresslevels(self): + # BZ2 checks that the compresslevel is in [1,9]. gz does not + fobj = io.BytesIO() + with self.assertRaises(ValueError): + tarfile.open(tmpname, "w:bz2", fobj, compresslevel=0) + with self.assertRaises(ValueError): + tarfile.open(tmpname, "w:bz2", fobj, compresslevel=10) + with self.assertRaises(ValueError): + tarfile.open(tmpname, "w|bz2", fobj, compresslevel=10) class GNUWriteTest(unittest.TestCase): # This testcase checks for correct creation of GNU Longname diff --git a/Lib/test/test_tcl.py b/Lib/test/test_tcl.py index 548914796ed762..cd79024ab2c8e3 100644 --- a/Lib/test/test_tcl.py +++ b/Lib/test/test_tcl.py @@ -1,10 +1,7 @@ import unittest -import locale -import re import subprocess import sys import os -import warnings from test import support from test.support import import_helper from test.support import os_helper diff --git a/Lib/test/test_tempfile.py b/Lib/test/test_tempfile.py index c3a793e6d12bbf..3746b2e8fd8d2b 100644 --- a/Lib/test/test_tempfile.py +++ b/Lib/test/test_tempfile.py @@ -285,19 +285,14 @@ def our_candidate_list(): def raise_OSError(*args, **kwargs): raise OSError() - with support.swap_attr(io, "open", raise_OSError): - # test again with failing io.open() + with support.swap_attr(os, "open", raise_OSError): + # test again with failing os.open() with self.assertRaises(FileNotFoundError): tempfile._get_default_tempdir() self.assertEqual(os.listdir(our_temp_directory), []) - def bad_writer(*args, **kwargs): - fp = orig_open(*args, **kwargs) - fp.write = raise_OSError - return fp - - with support.swap_attr(io, "open", bad_writer) as orig_open: - # test again with failing write() + with support.swap_attr(os, "write", raise_OSError): + # test again with failing os.write() with self.assertRaises(FileNotFoundError): tempfile._get_default_tempdir() self.assertEqual(os.listdir(our_temp_directory), []) @@ -450,6 +445,7 @@ def test_choose_directory(self): support.gc_collect() # For PyPy or other GCs. os.rmdir(dir) + @os_helper.skip_unless_working_chmod def test_file_mode(self): # _mkstemp_inner creates files with the proper mode @@ -787,6 +783,7 @@ def test_choose_directory(self): finally: os.rmdir(dir) + @os_helper.skip_unless_working_chmod def test_mode(self): # mkdtemp creates directories with the proper mode @@ -976,6 +973,7 @@ def test_del_on_close(self): try: with tempfile.NamedTemporaryFile(dir=dir) as f: f.write(b'blat') + self.assertEqual(os.listdir(dir), []) self.assertFalse(os.path.exists(f.name), "NamedTemporaryFile %s exists after close" % f.name) finally: @@ -1074,19 +1072,6 @@ def use_closed(): pass self.assertRaises(ValueError, use_closed) - def test_no_leak_fd(self): - # Issue #21058: don't leak file descriptor when io.open() fails - closed = [] - os_close = os.close - def close(fd): - closed.append(fd) - os_close(fd) - - with mock.patch('os.close', side_effect=close): - with mock.patch('io.open', side_effect=ValueError): - self.assertRaises(ValueError, tempfile.NamedTemporaryFile) - self.assertEqual(len(closed), 1) - def test_bad_mode(self): dir = tempfile.mkdtemp() self.addCleanup(os_helper.rmtree, dir) @@ -1096,6 +1081,24 @@ def test_bad_mode(self): tempfile.NamedTemporaryFile(mode=2, dir=dir) self.assertEqual(os.listdir(dir), []) + def test_bad_encoding(self): + dir = tempfile.mkdtemp() + self.addCleanup(os_helper.rmtree, dir) + with self.assertRaises(LookupError): + tempfile.NamedTemporaryFile('w', encoding='bad-encoding', dir=dir) + self.assertEqual(os.listdir(dir), []) + + def test_unexpected_error(self): + dir = tempfile.mkdtemp() + self.addCleanup(os_helper.rmtree, dir) + with mock.patch('tempfile._TemporaryFileWrapper') as mock_ntf, \ + mock.patch('io.open', mock.mock_open()) as mock_open: + mock_ntf.side_effect = KeyboardInterrupt() + with self.assertRaises(KeyboardInterrupt): + tempfile.NamedTemporaryFile(dir=dir) + mock_open().close.assert_called() + self.assertEqual(os.listdir(dir), []) + # How to test the mode and bufsize parameters? class TestSpooledTemporaryFile(BaseTestCase): @@ -1150,8 +1153,10 @@ def test_del_on_close(self): self.assertTrue(f._rolled) filename = f.name f.close() - self.assertFalse(isinstance(filename, str) and os.path.exists(filename), - "SpooledTemporaryFile %s exists after close" % filename) + self.assertEqual(os.listdir(dir), []) + if not isinstance(filename, int): + self.assertFalse(os.path.exists(filename), + "SpooledTemporaryFile %s exists after close" % filename) finally: os.rmdir(dir) @@ -1468,19 +1473,34 @@ def roundtrip(input, *args, **kwargs): roundtrip("\u039B", "w+", encoding="utf-16") roundtrip("foo\r\n", "w+", newline="") - def test_no_leak_fd(self): - # Issue #21058: don't leak file descriptor when io.open() fails - closed = [] - os_close = os.close - def close(fd): - closed.append(fd) - os_close(fd) - - with mock.patch('os.close', side_effect=close): - with mock.patch('io.open', side_effect=ValueError): - self.assertRaises(ValueError, tempfile.TemporaryFile) - self.assertEqual(len(closed), 1) + def test_bad_mode(self): + dir = tempfile.mkdtemp() + self.addCleanup(os_helper.rmtree, dir) + with self.assertRaises(ValueError): + tempfile.TemporaryFile(mode='wr', dir=dir) + with self.assertRaises(TypeError): + tempfile.TemporaryFile(mode=2, dir=dir) + self.assertEqual(os.listdir(dir), []) + + def test_bad_encoding(self): + dir = tempfile.mkdtemp() + self.addCleanup(os_helper.rmtree, dir) + with self.assertRaises(LookupError): + tempfile.TemporaryFile('w', encoding='bad-encoding', dir=dir) + self.assertEqual(os.listdir(dir), []) + def test_unexpected_error(self): + dir = tempfile.mkdtemp() + self.addCleanup(os_helper.rmtree, dir) + with mock.patch('tempfile._O_TMPFILE_WORKS', False), \ + mock.patch('os.unlink') as mock_unlink, \ + mock.patch('os.open') as mock_open, \ + mock.patch('os.close') as mock_close: + mock_unlink.side_effect = KeyboardInterrupt() + with self.assertRaises(KeyboardInterrupt): + tempfile.TemporaryFile(dir=dir) + mock_close.assert_called() + self.assertEqual(os.listdir(dir), []) # Helper for test_del_on_shutdown diff --git a/Lib/test/test_thread.py b/Lib/test/test_thread.py index ed527e7164fd0a..2ae5e9ccb44088 100644 --- a/Lib/test/test_thread.py +++ b/Lib/test/test_thread.py @@ -13,7 +13,6 @@ NUMTASKS = 10 NUMTRIPS = 3 -POLL_SLEEP = 0.010 # seconds = 10 ms _print_mutex = thread.allocate_lock() @@ -121,19 +120,24 @@ def task(): with threading_helper.wait_threads_exit(): thread.start_new_thread(task, ()) - while not started: - time.sleep(POLL_SLEEP) + for _ in support.sleeping_retry(support.LONG_TIMEOUT): + if started: + break self.assertEqual(thread._count(), orig + 1) + # Allow the task to finish. mut.release() + # The only reliable way to be sure that the thread ended from the - # interpreter's point of view is to wait for the function object to be - # destroyed. + # interpreter's point of view is to wait for the function object to + # be destroyed. done = [] wr = weakref.ref(task, lambda _: done.append(None)) del task - while not done: - time.sleep(POLL_SLEEP) + + for _ in support.sleeping_retry(support.LONG_TIMEOUT): + if done: + break support.gc_collect() # For PyPy or other GCs. self.assertEqual(thread._count(), orig) diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py index dcd27697bb4839..c6649962331464 100644 --- a/Lib/test/test_threading.py +++ b/Lib/test/test_threading.py @@ -853,6 +853,7 @@ def callback(): callback() finally: sys.settrace(old_trace) + threading.settrace(old_trace) def test_gettrace(self): def noop_trace(frame, event, arg): @@ -866,6 +867,35 @@ def noop_trace(frame, event, arg): finally: threading.settrace(old_trace) + def test_gettrace_all_threads(self): + def fn(*args): pass + old_trace = threading.gettrace() + first_check = threading.Event() + second_check = threading.Event() + + trace_funcs = [] + def checker(): + trace_funcs.append(sys.gettrace()) + first_check.set() + second_check.wait() + trace_funcs.append(sys.gettrace()) + + try: + t = threading.Thread(target=checker) + t.start() + first_check.wait() + threading.settrace_all_threads(fn) + second_check.set() + t.join() + self.assertEqual(trace_funcs, [None, fn]) + self.assertEqual(threading.gettrace(), fn) + self.assertEqual(sys.gettrace(), fn) + finally: + threading.settrace_all_threads(old_trace) + + self.assertEqual(threading.gettrace(), old_trace) + self.assertEqual(sys.gettrace(), old_trace) + def test_getprofile(self): def fn(*args): pass old_profile = threading.getprofile() @@ -875,6 +905,35 @@ def fn(*args): pass finally: threading.setprofile(old_profile) + def test_getprofile_all_threads(self): + def fn(*args): pass + old_profile = threading.getprofile() + first_check = threading.Event() + second_check = threading.Event() + + profile_funcs = [] + def checker(): + profile_funcs.append(sys.getprofile()) + first_check.set() + second_check.wait() + profile_funcs.append(sys.getprofile()) + + try: + t = threading.Thread(target=checker) + t.start() + first_check.wait() + threading.setprofile_all_threads(fn) + second_check.set() + t.join() + self.assertEqual(profile_funcs, [None, fn]) + self.assertEqual(threading.getprofile(), fn) + self.assertEqual(sys.getprofile(), fn) + finally: + threading.setprofile_all_threads(old_profile) + + self.assertEqual(threading.getprofile(), old_profile) + self.assertEqual(sys.getprofile(), old_profile) + @cpython_only def test_shutdown_locks(self): for daemon in (False, True): diff --git a/Lib/test/test_threading_local.py b/Lib/test/test_threading_local.py index 9888e631881fa6..48e302930ff7e9 100644 --- a/Lib/test/test_threading_local.py +++ b/Lib/test/test_threading_local.py @@ -4,7 +4,6 @@ from test import support from test.support import threading_helper import weakref -import gc # Modules under test import _thread diff --git a/Lib/test/test_threadsignals.py b/Lib/test/test_threadsignals.py index e0ac18c9463986..6a53d655015cdb 100644 --- a/Lib/test/test_threadsignals.py +++ b/Lib/test/test_threadsignals.py @@ -36,7 +36,9 @@ def send_signals(): os.kill(process_pid, signal.SIGUSR2) signalled_all.release() + @threading_helper.requires_working_threading() +@unittest.skipUnless(hasattr(signal, "alarm"), "test requires signal.alarm") class ThreadSignals(unittest.TestCase): def test_signals(self): diff --git a/Lib/test/test_tk.py b/Lib/test/test_tk.py deleted file mode 100644 index 8f90cbaba9f7c4..00000000000000 --- a/Lib/test/test_tk.py +++ /dev/null @@ -1,20 +0,0 @@ -import unittest -from test import support -from test.support import import_helper -from test.support import check_sanitizer - -if check_sanitizer(address=True, memory=True): - raise unittest.SkipTest("Tests involvin libX11 can SEGFAULT on ASAN/MSAN builds") - -# Skip test if _tkinter wasn't built. -import_helper.import_module('_tkinter') - -# Skip test if tk cannot be initialized. -support.requires('gui') - -def load_tests(loader, tests, pattern): - return loader.discover('tkinter.test.test_tkinter') - - -if __name__ == '__main__': - unittest.main() diff --git a/Lib/tkinter/test/README b/Lib/test/test_tkinter/README similarity index 100% rename from Lib/tkinter/test/README rename to Lib/test/test_tkinter/README diff --git a/Lib/test/test_tkinter/__init__.py b/Lib/test/test_tkinter/__init__.py new file mode 100644 index 00000000000000..edcb44951bde36 --- /dev/null +++ b/Lib/test/test_tkinter/__init__.py @@ -0,0 +1,18 @@ +import os.path +import unittest +from test import support +from test.support import import_helper + + +if support.check_sanitizer(address=True, memory=True): + raise unittest.SkipTest("Tests involving libX11 can SEGFAULT on ASAN/MSAN builds") + +# Skip test if _tkinter wasn't built. +import_helper.import_module('_tkinter') + +# Skip test if tk cannot be initialized. +support.requires('gui') + + +def load_tests(*args): + return support.load_package_tests(os.path.dirname(__file__), *args) diff --git a/Lib/test/test_tkinter/__main__.py b/Lib/test/test_tkinter/__main__.py new file mode 100644 index 00000000000000..40a23a297ec2b4 --- /dev/null +++ b/Lib/test/test_tkinter/__main__.py @@ -0,0 +1,4 @@ +from . import load_tests +import unittest + +unittest.main() diff --git a/Lib/tkinter/test/support.py b/Lib/test/test_tkinter/support.py similarity index 99% rename from Lib/tkinter/test/support.py rename to Lib/test/test_tkinter/support.py index 9e26d04536f227..9154ebac5c48f8 100644 --- a/Lib/tkinter/test/support.py +++ b/Lib/test/test_tkinter/support.py @@ -1,5 +1,4 @@ import functools -import re import tkinter import unittest diff --git a/Lib/tkinter/test/test_tkinter/test_colorchooser.py b/Lib/test/test_tkinter/test_colorchooser.py similarity index 96% rename from Lib/tkinter/test/test_tkinter/test_colorchooser.py rename to Lib/test/test_tkinter/test_colorchooser.py index 488162ff0dd966..9bba21392d8d14 100644 --- a/Lib/tkinter/test/test_tkinter/test_colorchooser.py +++ b/Lib/test/test_tkinter/test_colorchooser.py @@ -1,7 +1,7 @@ import unittest import tkinter from test.support import requires, swap_attr -from tkinter.test.support import AbstractDefaultRootTest, AbstractTkTest +from test.test_tkinter.support import AbstractDefaultRootTest, AbstractTkTest from tkinter import colorchooser from tkinter.colorchooser import askcolor from tkinter.commondialog import Dialog diff --git a/Lib/tkinter/test/test_tkinter/test_font.py b/Lib/test/test_tkinter/test_font.py similarity index 98% rename from Lib/tkinter/test/test_tkinter/test_font.py rename to Lib/test/test_tkinter/test_font.py index 058c53a9023647..563707ddd2fa9b 100644 --- a/Lib/tkinter/test/test_tkinter/test_font.py +++ b/Lib/test/test_tkinter/test_font.py @@ -2,7 +2,7 @@ import tkinter from tkinter import font from test.support import requires, gc_collect, ALWAYS_EQ -from tkinter.test.support import AbstractTkTest, AbstractDefaultRootTest +from test.test_tkinter.support import AbstractTkTest, AbstractDefaultRootTest requires('gui') diff --git a/Lib/tkinter/test/test_tkinter/test_geometry_managers.py b/Lib/test/test_tkinter/test_geometry_managers.py similarity index 99% rename from Lib/tkinter/test/test_tkinter/test_geometry_managers.py rename to Lib/test/test_tkinter/test_geometry_managers.py index c89bc8dbf85759..3663048a145ab1 100644 --- a/Lib/tkinter/test/test_tkinter/test_geometry_managers.py +++ b/Lib/test/test_tkinter/test_geometry_managers.py @@ -4,8 +4,8 @@ from tkinter import TclError from test.support import requires -from tkinter.test.support import pixels_conv -from tkinter.test.widget_tests import AbstractWidgetTest +from test.test_tkinter.support import pixels_conv +from test.test_tkinter.widget_tests import AbstractWidgetTest requires('gui') diff --git a/Lib/tkinter/test/test_tkinter/test_images.py b/Lib/test/test_tkinter/test_images.py similarity index 99% rename from Lib/tkinter/test/test_tkinter/test_images.py rename to Lib/test/test_tkinter/test_images.py index cc69ccac62d742..b6f8b79ae689fa 100644 --- a/Lib/tkinter/test/test_tkinter/test_images.py +++ b/Lib/test/test_tkinter/test_images.py @@ -2,7 +2,7 @@ import tkinter from test import support from test.support import os_helper -from tkinter.test.support import AbstractTkTest, AbstractDefaultRootTest, requires_tcl +from test.test_tkinter.support import AbstractTkTest, AbstractDefaultRootTest, requires_tcl support.requires('gui') diff --git a/Lib/tkinter/test/test_tkinter/test_loadtk.py b/Lib/test/test_tkinter/test_loadtk.py similarity index 100% rename from Lib/tkinter/test/test_tkinter/test_loadtk.py rename to Lib/test/test_tkinter/test_loadtk.py diff --git a/Lib/tkinter/test/test_tkinter/test_messagebox.py b/Lib/test/test_tkinter/test_messagebox.py similarity index 94% rename from Lib/tkinter/test/test_tkinter/test_messagebox.py rename to Lib/test/test_tkinter/test_messagebox.py index d38541a5a45e76..f41bdc98286283 100644 --- a/Lib/tkinter/test/test_tkinter/test_messagebox.py +++ b/Lib/test/test_tkinter/test_messagebox.py @@ -1,7 +1,7 @@ import unittest import tkinter from test.support import requires, swap_attr -from tkinter.test.support import AbstractDefaultRootTest +from test.test_tkinter.support import AbstractDefaultRootTest from tkinter.commondialog import Dialog from tkinter.messagebox import showinfo diff --git a/Lib/tkinter/test/test_tkinter/test_misc.py b/Lib/test/test_tkinter/test_misc.py similarity index 99% rename from Lib/tkinter/test/test_tkinter/test_misc.py rename to Lib/test/test_tkinter/test_misc.py index 620b6ed638c25a..d1aca58d15fbd8 100644 --- a/Lib/tkinter/test/test_tkinter/test_misc.py +++ b/Lib/test/test_tkinter/test_misc.py @@ -3,7 +3,7 @@ import tkinter import enum from test import support -from tkinter.test.support import AbstractTkTest, AbstractDefaultRootTest +from test.test_tkinter.support import AbstractTkTest, AbstractDefaultRootTest support.requires('gui') diff --git a/Lib/tkinter/test/test_tkinter/test_simpledialog.py b/Lib/test/test_tkinter/test_simpledialog.py similarity index 93% rename from Lib/tkinter/test/test_tkinter/test_simpledialog.py rename to Lib/test/test_tkinter/test_simpledialog.py index 18cd2712b0c5ed..502f7f7098a322 100644 --- a/Lib/tkinter/test/test_tkinter/test_simpledialog.py +++ b/Lib/test/test_tkinter/test_simpledialog.py @@ -1,7 +1,7 @@ import unittest import tkinter from test.support import requires, swap_attr -from tkinter.test.support import AbstractDefaultRootTest +from test.test_tkinter.support import AbstractDefaultRootTest from tkinter.simpledialog import Dialog, askinteger requires('gui') diff --git a/Lib/tkinter/test/test_tkinter/test_text.py b/Lib/test/test_tkinter/test_text.py similarity index 96% rename from Lib/tkinter/test/test_tkinter/test_text.py rename to Lib/test/test_tkinter/test_text.py index 482f150df559fc..d1583f0b20aabe 100644 --- a/Lib/tkinter/test/test_tkinter/test_text.py +++ b/Lib/test/test_tkinter/test_text.py @@ -1,7 +1,7 @@ import unittest import tkinter from test.support import requires -from tkinter.test.support import AbstractTkTest +from test.test_tkinter.support import AbstractTkTest requires('gui') diff --git a/Lib/tkinter/test/test_tkinter/test_variables.py b/Lib/test/test_tkinter/test_variables.py similarity index 99% rename from Lib/tkinter/test/test_tkinter/test_variables.py rename to Lib/test/test_tkinter/test_variables.py index 427e168454362c..c1d232e2febc7a 100644 --- a/Lib/tkinter/test/test_tkinter/test_variables.py +++ b/Lib/test/test_tkinter/test_variables.py @@ -6,7 +6,7 @@ from tkinter import (Variable, StringVar, IntVar, DoubleVar, BooleanVar, Tcl, TclError) from test.support import ALWAYS_EQ -from tkinter.test.support import AbstractDefaultRootTest +from test.test_tkinter.support import AbstractDefaultRootTest class Var(Variable): diff --git a/Lib/tkinter/test/test_tkinter/test_widgets.py b/Lib/test/test_tkinter/test_widgets.py similarity index 99% rename from Lib/tkinter/test/test_tkinter/test_widgets.py rename to Lib/test/test_tkinter/test_widgets.py index fe8ecfeb326554..1cddbe17ba5207 100644 --- a/Lib/tkinter/test/test_tkinter/test_widgets.py +++ b/Lib/test/test_tkinter/test_widgets.py @@ -4,10 +4,10 @@ import os from test.support import requires -from tkinter.test.support import (requires_tcl, +from test.test_tkinter.support import (requires_tcl, get_tk_patchlevel, widget_eq, AbstractDefaultRootTest) -from tkinter.test.widget_tests import ( +from test.test_tkinter.widget_tests import ( add_standard_options, AbstractWidgetTest, StandardOptionsTests, IntegerSizeTests, PixelSizeTests, setUpModule) diff --git a/Lib/tkinter/test/widget_tests.py b/Lib/test/test_tkinter/widget_tests.py similarity index 99% rename from Lib/tkinter/test/widget_tests.py rename to Lib/test/test_tkinter/widget_tests.py index a450544c3ee6b8..85b0511aba3c7a 100644 --- a/Lib/tkinter/test/widget_tests.py +++ b/Lib/test/test_tkinter/widget_tests.py @@ -1,8 +1,7 @@ # Common tests for test_tkinter/test_widgets.py and test_ttk/test_widgets.py -import unittest import tkinter -from tkinter.test.support import (AbstractTkTest, tcl_version, +from test.test_tkinter.support import (AbstractTkTest, tcl_version, pixels_conv, tcl_obj_eq) import test.support diff --git a/Lib/test/test_tomllib/test_misc.py b/Lib/test/test_tomllib/test_misc.py index 378db58f255945..a477a219fd9ebd 100644 --- a/Lib/test/test_tomllib/test_misc.py +++ b/Lib/test/test_tomllib/test_misc.py @@ -92,8 +92,8 @@ def test_deepcopy(self): self.assertEqual(obj_copy, expected_obj) def test_inline_array_recursion_limit(self): - # 470 with default recursion limit - nest_count = int(sys.getrecursionlimit() * 0.47) + # 465 with default recursion limit + nest_count = int(sys.getrecursionlimit() * 0.465) recursive_array_toml = "arr = " + nest_count * "[" + nest_count * "]" tomllib.loads(recursive_array_toml) diff --git a/Lib/test/test_tools/test_md5sum.py b/Lib/test/test_tools/test_md5sum.py index c5a230e95c2b7e..710461f8819754 100644 --- a/Lib/test/test_tools/test_md5sum.py +++ b/Lib/test/test_tools/test_md5sum.py @@ -1,6 +1,5 @@ """Tests for the md5sum script in the Tools directory.""" -import sys import os import unittest from test.support import os_helper diff --git a/Lib/test/test_tools/test_pathfix.py b/Lib/test/test_tools/test_pathfix.py index ff61935298b920..aa754bc479b468 100644 --- a/Lib/test/test_tools/test_pathfix.py +++ b/Lib/test/test_tools/test_pathfix.py @@ -2,7 +2,6 @@ import subprocess import sys import unittest -from test import support from test.support import os_helper from test.test_tools import scriptsdir, skip_if_missing diff --git a/Lib/test/test_tools/test_pindent.py b/Lib/test/test_tools/test_pindent.py index 01f13850eae733..61e97fea48cfba 100644 --- a/Lib/test/test_tools/test_pindent.py +++ b/Lib/test/test_tools/test_pindent.py @@ -5,7 +5,6 @@ import unittest import subprocess import textwrap -from test import support from test.support import os_helper from test.support.script_helper import assert_python_ok diff --git a/Lib/test/test_traceback.py b/Lib/test/test_traceback.py index ed5ddf95069e35..2089050cadfc2c 100644 --- a/Lib/test/test_traceback.py +++ b/Lib/test/test_traceback.py @@ -4,6 +4,7 @@ from io import StringIO import linecache import sys +import types import inspect import unittest import re @@ -14,7 +15,6 @@ from test.support.os_helper import TESTFN, unlink from test.support.script_helper import assert_python_ok, assert_python_failure -import os import textwrap import traceback from functools import partial @@ -252,7 +252,7 @@ def do_test(firstlines, message, charset, lineno): self.assertTrue(stdout[2].endswith(err_line), "Invalid traceback line: {0!r} instead of {1!r}".format( stdout[2], err_line)) - actual_err_msg = stdout[3 if has_no_debug_ranges() else 4] + actual_err_msg = stdout[3] self.assertTrue(actual_err_msg == err_msg, "Invalid error message: {0!r} instead of {1!r}".format( actual_err_msg, err_msg)) @@ -386,18 +386,19 @@ def get_exception(self, callable): callable_line = get_exception.__code__.co_firstlineno + 2 def test_basic_caret(self): + # NOTE: In caret tests, "if True:" is used as a way to force indicator + # display, since the raising expression spans only part of the line. def f(): - raise ValueError("basic caret tests") + if True: raise ValueError("basic caret tests") lineno_f = f.__code__.co_firstlineno expected_f = ( 'Traceback (most recent call last):\n' f' File "{__file__}", line {self.callable_line}, in get_exception\n' ' callable()\n' - ' ^^^^^^^^^^\n' f' File "{__file__}", line {lineno_f+1}, in f\n' - ' raise ValueError("basic caret tests")\n' - ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' + ' if True: raise ValueError("basic caret tests")\n' + ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' ) result_lines = self.get_exception(f) self.assertEqual(result_lines, expected_f.splitlines()) @@ -406,17 +407,16 @@ def test_line_with_unicode(self): # Make sure that even if a line contains multi-byte unicode characters # the correct carets are printed. def f_with_unicode(): - raise ValueError("Ĥellö Wörld") + if True: raise ValueError("Ĥellö Wörld") lineno_f = f_with_unicode.__code__.co_firstlineno expected_f = ( 'Traceback (most recent call last):\n' f' File "{__file__}", line {self.callable_line}, in get_exception\n' ' callable()\n' - ' ^^^^^^^^^^\n' f' File "{__file__}", line {lineno_f+1}, in f_with_unicode\n' - ' raise ValueError("Ĥellö Wörld")\n' - ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' + ' if True: raise ValueError("Ĥellö Wörld")\n' + ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' ) result_lines = self.get_exception(f_with_unicode) self.assertEqual(result_lines, expected_f.splitlines()) @@ -431,7 +431,6 @@ def foo(a: THIS_DOES_NOT_EXIST ) -> int: 'Traceback (most recent call last):\n' f' File "{__file__}", line {self.callable_line}, in get_exception\n' ' callable()\n' - ' ^^^^^^^^^^\n' f' File "{__file__}", line {lineno_f+1}, in f_with_type\n' ' def foo(a: THIS_DOES_NOT_EXIST ) -> int:\n' ' ^^^^^^^^^^^^^^^^^^^\n' @@ -443,7 +442,7 @@ def test_caret_multiline_expression(self): # Make sure no carets are printed for expressions spanning multiple # lines. def f_with_multiline(): - raise ValueError( + if True: raise ValueError( "error over multiple lines" ) @@ -452,10 +451,9 @@ def f_with_multiline(): 'Traceback (most recent call last):\n' f' File "{__file__}", line {self.callable_line}, in get_exception\n' ' callable()\n' - ' ^^^^^^^^^^\n' f' File "{__file__}", line {lineno_f+1}, in f_with_multiline\n' - ' raise ValueError(\n' - ' ^^^^^^^^^^^^^^^^^' + ' if True: raise ValueError(\n' + ' ^^^^^^^^^^^^^^^^^' ) result_lines = self.get_exception(f_with_multiline) self.assertEqual(result_lines, expected_f.splitlines()) @@ -484,7 +482,6 @@ def f_with_multiline(): 'Traceback (most recent call last):\n' f' File "{__file__}", line {self.callable_line}, in get_exception\n' ' callable()\n' - ' ^^^^^^^^^^\n' f' File "{__file__}", line {lineno_f+2}, in f_with_multiline\n' ' return compile(code, "?", "exec")\n' ' ^^^^^^^^^^^^^^^^^^^^^^^^^^\n' @@ -501,9 +498,8 @@ def test_caret_multiline_expression_bin_op(self): # lines. def f_with_multiline(): return ( - 1 / - 0 + - 2 + 2 + 1 / + 0 ) lineno_f = f_with_multiline.__code__.co_firstlineno @@ -511,10 +507,9 @@ def f_with_multiline(): 'Traceback (most recent call last):\n' f' File "{__file__}", line {self.callable_line}, in get_exception\n' ' callable()\n' - ' ^^^^^^^^^^\n' f' File "{__file__}", line {lineno_f+2}, in f_with_multiline\n' - ' 1 /\n' - ' ^^^' + ' 2 + 1 /\n' + ' ^^^' ) result_lines = self.get_exception(f_with_multiline) self.assertEqual(result_lines, expected_f.splitlines()) @@ -529,7 +524,6 @@ def f_with_binary_operator(): 'Traceback (most recent call last):\n' f' File "{__file__}", line {self.callable_line}, in get_exception\n' ' callable()\n' - ' ^^^^^^^^^^\n' f' File "{__file__}", line {lineno_f+2}, in f_with_binary_operator\n' ' return 10 + divisor / 0 + 30\n' ' ~~~~~~~~^~~\n' @@ -547,7 +541,6 @@ def f_with_binary_operator(): 'Traceback (most recent call last):\n' f' File "{__file__}", line {self.callable_line}, in get_exception\n' ' callable()\n' - ' ^^^^^^^^^^\n' f' File "{__file__}", line {lineno_f+2}, in f_with_binary_operator\n' ' return 10 + divisor // 0 + 30\n' ' ~~~~~~~~^^~~\n' @@ -565,7 +558,6 @@ def f_with_subscript(): 'Traceback (most recent call last):\n' f' File "{__file__}", line {self.callable_line}, in get_exception\n' ' callable()\n' - ' ^^^^^^^^^^\n' f' File "{__file__}", line {lineno_f+2}, in f_with_subscript\n' " return some_dict['x']['y']['z']\n" ' ~~~~~~~~~~~~~~~~~~~^^^^^\n' @@ -589,7 +581,6 @@ def test_traceback_specialization_with_syntax_error(self): 'Traceback (most recent call last):\n' f' File "{__file__}", line {self.callable_line}, in get_exception\n' ' callable()\n' - ' ^^^^^^^^^^\n' f' File "{TESTFN}", line {lineno_f}, in <module>\n' " 1 $ 0 / 1 / 2\n" ' ^^^^^\n' @@ -597,7 +588,7 @@ def test_traceback_specialization_with_syntax_error(self): self.assertEqual(result_lines, expected_error.splitlines()) def test_traceback_very_long_line(self): - source = "a" * 256 + source = "if True: " + "a" * 256 bytecode = compile(source, TESTFN, "exec") with open(TESTFN, "w") as file: @@ -612,13 +603,54 @@ def test_traceback_very_long_line(self): 'Traceback (most recent call last):\n' f' File "{__file__}", line {self.callable_line}, in get_exception\n' ' callable()\n' - ' ^^^^^^^^^^\n' f' File "{TESTFN}", line {lineno_f}, in <module>\n' f' {source}\n' - f' {"^"*len(source)}\n' + f' {" "*len("if True: ") + "^"*256}\n' ) self.assertEqual(result_lines, expected_error.splitlines()) + def test_secondary_caret_not_elided(self): + # Always show a line's indicators if they include the secondary character. + def f_with_subscript(): + some_dict = {'x': {'y': None}} + some_dict['x']['y']['z'] + + lineno_f = f_with_subscript.__code__.co_firstlineno + expected_error = ( + 'Traceback (most recent call last):\n' + f' File "{__file__}", line {self.callable_line}, in get_exception\n' + ' callable()\n' + f' File "{__file__}", line {lineno_f+2}, in f_with_subscript\n' + " some_dict['x']['y']['z']\n" + ' ~~~~~~~~~~~~~~~~~~~^^^^^\n' + ) + result_lines = self.get_exception(f_with_subscript) + self.assertEqual(result_lines, expected_error.splitlines()) + + def test_caret_exception_group(self): + # Notably, this covers whether indicators handle margin strings correctly. + # (Exception groups use margin strings to display vertical indicators.) + # The implementation must account for both "indent" and "margin" offsets. + + def exc(): + if True: raise ExceptionGroup("eg", [ValueError(1), TypeError(2)]) + + expected_error = ( + f' + Exception Group Traceback (most recent call last):\n' + f' | File "{__file__}", line {self.callable_line}, in get_exception\n' + f' | callable()\n' + f' | File "{__file__}", line {exc.__code__.co_firstlineno + 1}, in exc\n' + f' | if True: raise ExceptionGroup("eg", [ValueError(1), TypeError(2)])\n' + f' | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' + f' | ExceptionGroup: eg (2 sub-exceptions)\n' + f' +-+---------------- 1 ----------------\n' + f' | ValueError: 1\n' + f' +---------------- 2 ----------------\n' + f' | TypeError: 2\n') + + result_lines = self.get_exception(exc) + self.assertEqual(result_lines, expected_error.splitlines()) + def assertSpecialized(self, func, expected_specialization): result_lines = self.get_exception(func) specialization_line = result_lines[-1] @@ -672,13 +704,11 @@ def g(): pass 'Traceback (most recent call last):\n' f' File "{__file__}", line {self.callable_line}, in get_exception\n' ' callable()\n' - ' ^^^^^^^^^^\n' f' File "{__file__}", line {lineno_applydescs + 1}, in applydecs\n' ' @dec_error\n' ' ^^^^^^^^^\n' f' File "{__file__}", line {lineno_dec_error + 1}, in dec_error\n' ' raise TypeError\n' - ' ^^^^^^^^^^^^^^^\n' ) self.assertEqual(result_lines, expected_error.splitlines()) @@ -692,16 +722,61 @@ class A: pass 'Traceback (most recent call last):\n' f' File "{__file__}", line {self.callable_line}, in get_exception\n' ' callable()\n' - ' ^^^^^^^^^^\n' f' File "{__file__}", line {lineno_applydescs_class + 1}, in applydecs_class\n' ' @dec_error\n' ' ^^^^^^^^^\n' f' File "{__file__}", line {lineno_dec_error + 1}, in dec_error\n' ' raise TypeError\n' - ' ^^^^^^^^^^^^^^^\n' ) self.assertEqual(result_lines, expected_error.splitlines()) + def test_multiline_method_call_a(self): + def f(): + (None + .method + )() + actual = self.get_exception(f) + expected = [ + f"Traceback (most recent call last):", + f" File \"{__file__}\", line {self.callable_line}, in get_exception", + f" callable()", + f" File \"{__file__}\", line {f.__code__.co_firstlineno + 2}, in f", + f" .method", + f" ^^^^^^", + ] + self.assertEqual(actual, expected) + + def test_multiline_method_call_b(self): + def f(): + (None. + method + )() + actual = self.get_exception(f) + expected = [ + f"Traceback (most recent call last):", + f" File \"{__file__}\", line {self.callable_line}, in get_exception", + f" callable()", + f" File \"{__file__}\", line {f.__code__.co_firstlineno + 2}, in f", + f" method", + ] + self.assertEqual(actual, expected) + + def test_multiline_method_call_c(self): + def f(): + (None + . method + )() + actual = self.get_exception(f) + expected = [ + f"Traceback (most recent call last):", + f" File \"{__file__}\", line {self.callable_line}, in get_exception", + f" callable()", + f" File \"{__file__}\", line {f.__code__.co_firstlineno + 2}, in f", + f" . method", + f" ^^^^^^", + ] + self.assertEqual(actual, expected) + @cpython_only @requires_debug_ranges() class CPythonTracebackErrorCaretTests(TracebackErrorLocationCaretTests): @@ -765,12 +840,8 @@ def check_traceback_format(self, cleanup_func=None): # Make sure that the traceback is properly indented. tb_lines = python_fmt.splitlines() banner = tb_lines[0] - if has_no_debug_ranges(): - self.assertEqual(len(tb_lines), 5) - location, source_line = tb_lines[-2], tb_lines[-1] - else: - self.assertEqual(len(tb_lines), 7) - location, source_line = tb_lines[-3], tb_lines[-2] + self.assertEqual(len(tb_lines), 5) + location, source_line = tb_lines[-2], tb_lines[-1] self.assertTrue(banner.startswith('Traceback')) self.assertTrue(location.startswith(' File')) self.assertTrue(source_line.startswith(' raise')) @@ -834,16 +905,12 @@ def f(): 'Traceback (most recent call last):\n' f' File "{__file__}", line {lineno_f+5}, in _check_recursive_traceback_display\n' ' f()\n' - ' ^^^\n' f' File "{__file__}", line {lineno_f+1}, in f\n' ' f()\n' - ' ^^^\n' f' File "{__file__}", line {lineno_f+1}, in f\n' ' f()\n' - ' ^^^\n' f' File "{__file__}", line {lineno_f+1}, in f\n' ' f()\n' - ' ^^^\n' # XXX: The following line changes depending on whether the tests # are run through the interactive interpreter or with -m # It also varies depending on the platform (stack size) @@ -894,14 +961,12 @@ def g(count=10): ' [Previous line repeated 7 more times]\n' f' File "{__file__}", line {lineno_g+3}, in g\n' ' raise ValueError\n' - ' ^^^^^^^^^^^^^^^^\n' 'ValueError\n' ) tb_line = ( 'Traceback (most recent call last):\n' f' File "{__file__}", line {lineno_g+7}, in _check_recursive_traceback_display\n' ' g()\n' - ' ^^^\n' ) expected = (tb_line + result_g).splitlines() actual = stderr_g.getvalue().splitlines() @@ -926,7 +991,6 @@ def h(count=10): 'Traceback (most recent call last):\n' f' File "{__file__}", line {lineno_h+7}, in _check_recursive_traceback_display\n' ' h()\n' - ' ^^^\n' f' File "{__file__}", line {lineno_h+2}, in h\n' ' return h(count-1)\n' ' ^^^^^^^^^^\n' @@ -939,7 +1003,6 @@ def h(count=10): ' [Previous line repeated 7 more times]\n' f' File "{__file__}", line {lineno_h+3}, in h\n' ' g()\n' - ' ^^^\n' ) expected = (result_h + result_g).splitlines() actual = stderr_h.getvalue().splitlines() @@ -965,14 +1028,12 @@ def h(count=10): ' ^^^^^^^^^^\n' f' File "{__file__}", line {lineno_g+3}, in g\n' ' raise ValueError\n' - ' ^^^^^^^^^^^^^^^^\n' 'ValueError\n' ) tb_line = ( 'Traceback (most recent call last):\n' - f' File "{__file__}", line {lineno_g+81}, in _check_recursive_traceback_display\n' + f' File "{__file__}", line {lineno_g+77}, in _check_recursive_traceback_display\n' ' g(traceback._RECURSIVE_CUTOFF)\n' - ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' ) expected = (tb_line + result_g).splitlines() actual = stderr_g.getvalue().splitlines() @@ -999,14 +1060,12 @@ def h(count=10): ' [Previous line repeated 1 more time]\n' f' File "{__file__}", line {lineno_g+3}, in g\n' ' raise ValueError\n' - ' ^^^^^^^^^^^^^^^^\n' 'ValueError\n' ) tb_line = ( 'Traceback (most recent call last):\n' - f' File "{__file__}", line {lineno_g+114}, in _check_recursive_traceback_display\n' + f' File "{__file__}", line {lineno_g+108}, in _check_recursive_traceback_display\n' ' g(traceback._RECURSIVE_CUTOFF + 1)\n' - ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' ) expected = (tb_line + result_g).splitlines() actual = stderr_g.getvalue().splitlines() @@ -1059,16 +1118,10 @@ def __eq__(self, other): exception_print(exc_val) tb = stderr_f.getvalue().strip().splitlines() - if has_no_debug_ranges(): - self.assertEqual(11, len(tb)) - self.assertEqual(context_message.strip(), tb[5]) - self.assertIn('UnhashableException: ex2', tb[3]) - self.assertIn('UnhashableException: ex1', tb[10]) - else: - self.assertEqual(13, len(tb)) - self.assertEqual(context_message.strip(), tb[6]) - self.assertIn('UnhashableException: ex2', tb[4]) - self.assertIn('UnhashableException: ex1', tb[12]) + self.assertEqual(11, len(tb)) + self.assertEqual(context_message.strip(), tb[5]) + self.assertIn('UnhashableException: ex2', tb[3]) + self.assertIn('UnhashableException: ex1', tb[10]) def deep_eg(self): e = TypeError(1) @@ -1129,7 +1182,7 @@ def test_print_exception_bad_type_python(self): class BaseExceptionReportingTests: def get_exception(self, exception_or_callable): - if isinstance(exception_or_callable, Exception): + if isinstance(exception_or_callable, BaseException): return exception_or_callable try: exception_or_callable() @@ -1204,12 +1257,8 @@ def test_context_suppression(self): except ZeroDivisionError as _: e = _ lines = self.get_report(e).splitlines() - if has_no_debug_ranges(): - self.assertEqual(len(lines), 4) - self.assertTrue(lines[3].startswith('ZeroDivisionError')) - else: - self.assertEqual(len(lines), 5) - self.assertTrue(lines[4].startswith('ZeroDivisionError')) + self.assertEqual(len(lines), 4) + self.assertTrue(lines[3].startswith('ZeroDivisionError')) self.assertTrue(lines[0].startswith('Traceback')) self.assertTrue(lines[1].startswith(' File')) self.assertIn('ZeroDivisionError from None', lines[2]) @@ -1428,6 +1477,21 @@ def __str__(self): exp = "%s: %s\n" % (str_name, str_value) self.assertEqual(exp, err) + def test_exception_angle_bracketed_filename(self): + src = textwrap.dedent(""" + try: + raise ValueError(42) + except Exception as e: + exc = e + """) + + code = compile(src, "<does not exist>", "exec") + g, l = {}, {} + exec(code, g, l) + err = self.get_report(l['exc']) + exp = ' File "<does not exist>", line 3, in <module>\nValueError: 42\n' + self.assertIn(exp, err) + def test_exception_modulename_not_unicode(self): class X(Exception): def __str__(self): @@ -1459,10 +1523,8 @@ def exc(): f' + Exception Group Traceback (most recent call last):\n' f' | File "{__file__}", line {self.callable_line}, in get_exception\n' f' | exception_or_callable()\n' - f' | ^^^^^^^^^^^^^^^^^^^^^^^\n' f' | File "{__file__}", line {exc.__code__.co_firstlineno + 1}, in exc\n' f' | raise ExceptionGroup("eg", [ValueError(1), TypeError(2)])\n' - f' | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' f' | ExceptionGroup: eg (2 sub-exceptions)\n' f' +-+---------------- 1 ----------------\n' f' | ValueError: 1\n' @@ -1484,7 +1546,6 @@ def exc(): expected = (f' + Exception Group Traceback (most recent call last):\n' f' | File "{__file__}", line {exc.__code__.co_firstlineno + 3}, in exc\n' f' | raise EG("eg1", [ValueError(1), TypeError(2)])\n' - f' | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' f' | ExceptionGroup: eg1 (2 sub-exceptions)\n' f' +-+---------------- 1 ----------------\n' f' | ValueError: 1\n' @@ -1497,10 +1558,8 @@ def exc(): f' + Exception Group Traceback (most recent call last):\n' f' | File "{__file__}", line {self.callable_line}, in get_exception\n' f' | exception_or_callable()\n' - f' | ^^^^^^^^^^^^^^^^^^^^^^^\n' f' | File "{__file__}", line {exc.__code__.co_firstlineno + 5}, in exc\n' f' | raise EG("eg2", [ValueError(3), TypeError(4)]) from e\n' - f' | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' f' | ExceptionGroup: eg2 (2 sub-exceptions)\n' f' +-+---------------- 1 ----------------\n' f' | ValueError: 3\n' @@ -1526,7 +1585,6 @@ def exc(): f' + Exception Group Traceback (most recent call last):\n' f' | File "{__file__}", line {exc.__code__.co_firstlineno + 4}, in exc\n' f' | raise EG("eg1", [ValueError(1), TypeError(2)])\n' - f' | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' f' | ExceptionGroup: eg1 (2 sub-exceptions)\n' f' +-+---------------- 1 ----------------\n' f' | ValueError: 1\n' @@ -1539,7 +1597,6 @@ def exc(): f' + Exception Group Traceback (most recent call last):\n' f' | File "{__file__}", line {exc.__code__.co_firstlineno + 6}, in exc\n' f' | raise EG("eg2", [ValueError(3), TypeError(4)])\n' - f' | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' f' | ExceptionGroup: eg2 (2 sub-exceptions)\n' f' +-+---------------- 1 ----------------\n' f' | ValueError: 3\n' @@ -1552,10 +1609,8 @@ def exc(): f'Traceback (most recent call last):\n' f' File "{__file__}", line {self.callable_line}, in get_exception\n' f' exception_or_callable()\n' - f' ^^^^^^^^^^^^^^^^^^^^^^^\n' f' File "{__file__}", line {exc.__code__.co_firstlineno + 8}, in exc\n' f' raise ImportError(5)\n' - f' ^^^^^^^^^^^^^^^^^^^^\n' f'ImportError: 5\n') report = self.get_report(exc) @@ -1578,7 +1633,6 @@ def exc(): expected = (f' + Exception Group Traceback (most recent call last):\n' f' | File "{__file__}", line {exc.__code__.co_firstlineno + 9}, in exc\n' f' | raise EG("eg", [VE(1), exc, VE(4)])\n' - f' | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' f' | ExceptionGroup: eg (3 sub-exceptions)\n' f' +-+---------------- 1 ----------------\n' f' | ValueError: 1\n' @@ -1586,7 +1640,6 @@ def exc(): f' | Exception Group Traceback (most recent call last):\n' f' | File "{__file__}", line {exc.__code__.co_firstlineno + 6}, in exc\n' f' | raise EG("nested", [TE(2), TE(3)])\n' - f' | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' f' | ExceptionGroup: nested (2 sub-exceptions)\n' f' +-+---------------- 1 ----------------\n' f' | TypeError: 2\n' @@ -1602,10 +1655,8 @@ def exc(): f' + Exception Group Traceback (most recent call last):\n' f' | File "{__file__}", line {self.callable_line}, in get_exception\n' f' | exception_or_callable()\n' - f' | ^^^^^^^^^^^^^^^^^^^^^^^\n' f' | File "{__file__}", line {exc.__code__.co_firstlineno + 11}, in exc\n' f' | raise EG("top", [VE(5)])\n' - f' | ^^^^^^^^^^^^^^^^^^^^^^^^\n' f' | ExceptionGroup: top (1 sub-exception)\n' f' +-+---------------- 1 ----------------\n' f' | ValueError: 5\n' @@ -1763,10 +1814,8 @@ def exc(): expected = (f' + Exception Group Traceback (most recent call last):\n' f' | File "{__file__}", line {self.callable_line}, in get_exception\n' f' | exception_or_callable()\n' - f' | ^^^^^^^^^^^^^^^^^^^^^^^\n' f' | File "{__file__}", line {exc.__code__.co_firstlineno + 9}, in exc\n' f' | raise ExceptionGroup("nested", excs)\n' - f' | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' f' | ExceptionGroup: nested (2 sub-exceptions)\n' f' | >> Multi line note\n' f' | >> Because I am such\n' @@ -1778,14 +1827,12 @@ def exc(): f' | Traceback (most recent call last):\n' f' | File "{__file__}", line {exc.__code__.co_firstlineno + 5}, in exc\n' f' | raise ValueError(msg)\n' - f' | ^^^^^^^^^^^^^^^^^^^^^\n' f' | ValueError: bad value\n' f' | the bad value\n' f' +---------------- 2 ----------------\n' f' | Traceback (most recent call last):\n' f' | File "{__file__}", line {exc.__code__.co_firstlineno + 5}, in exc\n' f' | raise ValueError(msg)\n' - f' | ^^^^^^^^^^^^^^^^^^^^^\n' f' | ValueError: terrible value\n' f' | the terrible value\n' f' +------------------------------------\n') @@ -1818,10 +1865,8 @@ def exc(): expected = (f' + Exception Group Traceback (most recent call last):\n' f' | File "{__file__}", line {self.callable_line}, in get_exception\n' f' | exception_or_callable()\n' - f' | ^^^^^^^^^^^^^^^^^^^^^^^\n' f' | File "{__file__}", line {exc.__code__.co_firstlineno + 10}, in exc\n' f' | raise ExceptionGroup("nested", excs)\n' - f' | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' f' | ExceptionGroup: nested (2 sub-exceptions)\n' f' | >> Multi line note\n' f' | >> Because I am such\n' @@ -1834,7 +1879,6 @@ def exc(): f' | Traceback (most recent call last):\n' f' | File "{__file__}", line {exc.__code__.co_firstlineno + 5}, in exc\n' f' | raise ValueError(msg)\n' - f' | ^^^^^^^^^^^^^^^^^^^^^\n' f' | ValueError: bad value\n' f' | the bad value\n' f' | Goodbye bad value\n' @@ -1842,7 +1886,6 @@ def exc(): f' | Traceback (most recent call last):\n' f' | File "{__file__}", line {exc.__code__.co_firstlineno + 5}, in exc\n' f' | raise ValueError(msg)\n' - f' | ^^^^^^^^^^^^^^^^^^^^^\n' f' | ValueError: terrible value\n' f' | the terrible value\n' f' | Goodbye terrible value\n' @@ -1851,6 +1894,31 @@ def exc(): report = self.get_report(exc) self.assertEqual(report, expected) + def test_KeyboardInterrupt_at_first_line_of_frame(self): + # see GH-93249 + def f(): + return sys._getframe() + + tb_next = None + frame = f() + lasti = 0 + lineno = f.__code__.co_firstlineno + tb = types.TracebackType(tb_next, frame, lasti, lineno) + + exc = KeyboardInterrupt() + exc.__traceback__ = tb + + expected = (f'Traceback (most recent call last):\n' + f' File "{__file__}", line {lineno}, in f\n' + f' def f():\n' + f'\n' + f'KeyboardInterrupt\n') + + report = self.get_report(exc) + # remove trailing writespace: + report = '\n'.join([l.rstrip() for l in report.split('\n')]) + self.assertEqual(report, expected) + class PyExcReportingTests(BaseExceptionReportingTests, unittest.TestCase): # @@ -2222,6 +2290,9 @@ def format_frame_summary(self, frame_summary): f' File "{__file__}", line {lno}, in f\n 1/0\n' ) +class Unrepresentable: + def __repr__(self) -> str: + raise Exception("Unrepresentable") class TestTracebackException(unittest.TestCase): @@ -2489,12 +2560,13 @@ def test_locals(self): linecache.updatecache('/foo.py', globals()) e = Exception("uh oh") c = test_code('/foo.py', 'method') - f = test_frame(c, globals(), {'something': 1, 'other': 'string'}) + f = test_frame(c, globals(), {'something': 1, 'other': 'string', 'unrepresentable': Unrepresentable()}) tb = test_tb(f, 6, None, 0) exc = traceback.TracebackException( Exception, e, tb, capture_locals=True) self.assertEqual( - exc.stack[0].locals, {'something': '1', 'other': "'string'"}) + exc.stack[0].locals, + {'something': '1', 'other': "'string'", 'unrepresentable': '<local repr() failed>'}) def test_no_locals(self): linecache.updatecache('/foo.py', globals()) @@ -2593,19 +2665,16 @@ def test_exception_group_format(self): f' + Exception Group Traceback (most recent call last):', f' | File "{__file__}", line {lno_g+23}, in _get_exception_group', f' | raise ExceptionGroup("eg2", [exc3, exc4])', - f' | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^', f' | ExceptionGroup: eg2 (2 sub-exceptions)', f' +-+---------------- 1 ----------------', f' | Exception Group Traceback (most recent call last):', f' | File "{__file__}", line {lno_g+16}, in _get_exception_group', f' | raise ExceptionGroup("eg1", [exc1, exc2])', - f' | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^', f' | ExceptionGroup: eg1 (2 sub-exceptions)', f' +-+---------------- 1 ----------------', f' | Traceback (most recent call last):', f' | File "{__file__}", line {lno_g+9}, in _get_exception_group', f' | f()', - f' | ^^^', f' | File "{__file__}", line {lno_f+1}, in f', f' | 1/0', f' | ~^~', @@ -2614,20 +2683,16 @@ def test_exception_group_format(self): f' | Traceback (most recent call last):', f' | File "{__file__}", line {lno_g+13}, in _get_exception_group', f' | g(42)', - f' | ^^^^^', f' | File "{__file__}", line {lno_g+1}, in g', f' | raise ValueError(v)', - f' | ^^^^^^^^^^^^^^^^^^^', f' | ValueError: 42', f' +------------------------------------', f' +---------------- 2 ----------------', f' | Traceback (most recent call last):', f' | File "{__file__}", line {lno_g+20}, in _get_exception_group', f' | g(24)', - f' | ^^^^^', f' | File "{__file__}", line {lno_g+1}, in g', f' | raise ValueError(v)', - f' | ^^^^^^^^^^^^^^^^^^^', f' | ValueError: 24', f' +------------------------------------', f''] diff --git a/Lib/test/test_tracemalloc.py b/Lib/test/test_tracemalloc.py index d2a5ede61e3ff1..94bcee302fe730 100644 --- a/Lib/test/test_tracemalloc.py +++ b/Lib/test/test_tracemalloc.py @@ -360,6 +360,20 @@ def test_fork(self): else: support.wait_process(pid, exitcode=0) + def test_no_incomplete_frames(self): + tracemalloc.stop() + tracemalloc.start(8) + + def f(x): + def g(): + return x + return g + + obj = f(0).__closure__[0] + traceback = tracemalloc.get_object_traceback(obj) + self.assertIn("test_tracemalloc", traceback[-1].filename) + self.assertNotIn("test_tracemalloc", traceback[-2].filename) + class TestSnapshot(unittest.TestCase): maxDiff = 4000 diff --git a/Lib/test/test_ttk_guionly.py b/Lib/test/test_ttk/__init__.py similarity index 68% rename from Lib/test/test_ttk_guionly.py rename to Lib/test/test_ttk/__init__.py index c4919045d75cb7..7ee7ffbd6d7408 100644 --- a/Lib/test/test_ttk_guionly.py +++ b/Lib/test/test_ttk/__init__.py @@ -1,10 +1,11 @@ +import os.path import unittest from test import support from test.support import import_helper -from test.support import check_sanitizer -if check_sanitizer(address=True, memory=True): - raise unittest.SkipTest("Tests involvin libX11 can SEGFAULT on ASAN/MSAN builds") + +if support.check_sanitizer(address=True, memory=True): + raise unittest.SkipTest("Tests involving libX11 can SEGFAULT on ASAN/MSAN builds") # Skip this test if _tkinter wasn't built. import_helper.import_module('_tkinter') @@ -12,6 +13,7 @@ # Skip test if tk cannot be initialized. support.requires('gui') + import tkinter from _tkinter import TclError from tkinter import ttk @@ -32,9 +34,6 @@ def setUpModule(): root.destroy() del root -def load_tests(loader, tests, pattern): - return loader.discover('tkinter.test.test_ttk') - -if __name__ == '__main__': - unittest.main() +def load_tests(*args): + return support.load_package_tests(os.path.dirname(__file__), *args) diff --git a/Lib/test/test_ttk/__main__.py b/Lib/test/test_ttk/__main__.py new file mode 100644 index 00000000000000..40a23a297ec2b4 --- /dev/null +++ b/Lib/test/test_ttk/__main__.py @@ -0,0 +1,4 @@ +from . import load_tests +import unittest + +unittest.main() diff --git a/Lib/tkinter/test/test_ttk/test_extensions.py b/Lib/test/test_ttk/test_extensions.py similarity index 99% rename from Lib/tkinter/test/test_ttk/test_extensions.py rename to Lib/test/test_ttk/test_extensions.py index 1220c4831c52f4..6135c49701f08e 100644 --- a/Lib/tkinter/test/test_ttk/test_extensions.py +++ b/Lib/test/test_ttk/test_extensions.py @@ -3,7 +3,7 @@ import tkinter from tkinter import ttk from test.support import requires, gc_collect -from tkinter.test.support import AbstractTkTest, AbstractDefaultRootTest +from test.test_tkinter.support import AbstractTkTest, AbstractDefaultRootTest requires('gui') diff --git a/Lib/tkinter/test/test_ttk/test_style.py b/Lib/test/test_ttk/test_style.py similarity index 98% rename from Lib/tkinter/test/test_ttk/test_style.py rename to Lib/test/test_ttk/test_style.py index 54ad3437168fe1..0ec95cf6b5ffc9 100644 --- a/Lib/tkinter/test/test_ttk/test_style.py +++ b/Lib/test/test_ttk/test_style.py @@ -4,7 +4,7 @@ from tkinter import ttk from test import support from test.support import requires -from tkinter.test.support import AbstractTkTest, get_tk_patchlevel +from test.test_tkinter.support import AbstractTkTest, get_tk_patchlevel requires('gui') diff --git a/Lib/tkinter/test/test_ttk/test_widgets.py b/Lib/test/test_ttk/test_widgets.py similarity index 99% rename from Lib/tkinter/test/test_ttk/test_widgets.py rename to Lib/test/test_ttk/test_widgets.py index c14c321ca2687d..eb0cc93ce270b5 100644 --- a/Lib/tkinter/test/test_ttk/test_widgets.py +++ b/Lib/test/test_ttk/test_widgets.py @@ -5,9 +5,9 @@ import sys from test.test_ttk_textonly import MockTclObj -from tkinter.test.support import (AbstractTkTest, tcl_version, get_tk_patchlevel, +from test.test_tkinter.support import (AbstractTkTest, tcl_version, get_tk_patchlevel, simulate_mouse_click, AbstractDefaultRootTest) -from tkinter.test.widget_tests import (add_standard_options, +from test.test_tkinter.widget_tests import (add_standard_options, AbstractWidgetTest, StandardOptionsTests, IntegerSizeTests, PixelSizeTests, setUpModule) diff --git a/Lib/test/test_type_comments.py b/Lib/test/test_type_comments.py index 71d1430dbc939d..8db7394d1512aa 100644 --- a/Lib/test/test_type_comments.py +++ b/Lib/test/test_type_comments.py @@ -1,7 +1,6 @@ import ast import sys import unittest -from test import support funcdef = """\ @@ -323,7 +322,7 @@ def test_ignores(self): self.assertEqual(tree.type_ignores, []) def test_longargs(self): - for tree in self.parse_all(longargs): + for tree in self.parse_all(longargs, minver=8): for t in tree.body: # The expected args are encoded in the function name todo = set(t.name[1:]) diff --git a/Lib/test/test_types.py b/Lib/test/test_types.py index cde9dadc5e97fa..f00da0a758d46f 100644 --- a/Lib/test/test_types.py +++ b/Lib/test/test_types.py @@ -597,6 +597,12 @@ def test_slot_wrapper_types(self): self.assertIsInstance(object.__lt__, types.WrapperDescriptorType) self.assertIsInstance(int.__lt__, types.WrapperDescriptorType) + def test_dunder_get_signature(self): + sig = inspect.signature(object.__init__.__get__) + self.assertEqual(list(sig.parameters), ["instance", "owner"]) + # gh-93021: Second parameter is optional + self.assertIs(sig.parameters["owner"].default, None) + def test_method_wrapper_types(self): self.assertIsInstance(object().__init__, types.MethodWrapperType) self.assertIsInstance(object().__str__, types.MethodWrapperType) @@ -1197,6 +1203,16 @@ def test_union(self): self.assertDictEqual(mapping, {'a': 0, 'b': 1, 'c': 2}) self.assertDictEqual(other, {'c': 3, 'p': 0}) + def test_hash(self): + class HashableDict(dict): + def __hash__(self): + return 3844817361 + view = self.mappingproxy({'a': 1, 'b': 2}) + self.assertRaises(TypeError, hash, view) + mapping = HashableDict({'a': 1, 'b': 2}) + view = self.mappingproxy(mapping) + self.assertEqual(hash(view), hash(mapping)) + class ClassCreationTests(unittest.TestCase): diff --git a/Lib/test/test_typing.py b/Lib/test/test_typing.py index 2afac235391552..e4cf3c7d53b657 100644 --- a/Lib/test/test_typing.py +++ b/Lib/test/test_typing.py @@ -51,6 +51,10 @@ c_typing = import_helper.import_fresh_module('typing', fresh=['_typing']) +CANNOT_SUBCLASS_TYPE = 'Cannot subclass special typing classes' +CANNOT_SUBCLASS_INSTANCE = 'Cannot subclass an instance of %s' + + class BaseTestCase(TestCase): def assertIsSubclass(self, cls, class_or_tuple, msg=None): @@ -109,6 +113,12 @@ def test_any_instance_type_error(self): def test_repr(self): self.assertEqual(repr(Any), 'typing.Any') + class Sub(Any): pass + self.assertEqual( + repr(Sub), + "<class 'test.test_typing.AnyTests.test_repr.<locals>.Sub'>", + ) + def test_errors(self): with self.assertRaises(TypeError): issubclass(42, Any) @@ -170,10 +180,11 @@ def test_not_generic(self): self.bottom_type[int] def test_cannot_subclass(self): - with self.assertRaises(TypeError): + with self.assertRaisesRegex(TypeError, + 'Cannot subclass ' + re.escape(str(self.bottom_type))): class A(self.bottom_type): pass - with self.assertRaises(TypeError): + with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): class A(type(self.bottom_type)): pass @@ -266,10 +277,11 @@ def test_cannot_subscript(self): Self[int] def test_cannot_subclass(self): - with self.assertRaises(TypeError): + with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): class C(type(Self)): pass - with self.assertRaises(TypeError): + with self.assertRaisesRegex(TypeError, + r'Cannot subclass typing\.Self'): class C(Self): pass @@ -322,10 +334,11 @@ def test_cannot_subscript(self): LiteralString[int] def test_cannot_subclass(self): - with self.assertRaises(TypeError): + with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): class C(type(LiteralString)): pass - with self.assertRaises(TypeError): + with self.assertRaisesRegex(TypeError, + r'Cannot subclass typing\.LiteralString'): class C(LiteralString): pass @@ -415,15 +428,13 @@ def test_no_redefinition(self): self.assertNotEqual(TypeVar('T'), TypeVar('T')) self.assertNotEqual(TypeVar('T', int, str), TypeVar('T', int, str)) - def test_cannot_subclass_vars(self): - with self.assertRaises(TypeError): - class V(TypeVar('T')): - pass - - def test_cannot_subclass_var_itself(self): - with self.assertRaises(TypeError): - class V(TypeVar): - pass + def test_cannot_subclass(self): + with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): + class V(TypeVar): pass + T = TypeVar("T") + with self.assertRaisesRegex(TypeError, + CANNOT_SUBCLASS_INSTANCE % 'TypeVar'): + class V(T): pass def test_cannot_instantiate_vars(self): with self.assertRaises(TypeError): @@ -591,6 +602,7 @@ class GenericAliasSubstitutionTests(BaseTestCase): def test_one_parameter(self): T = TypeVar('T') Ts = TypeVarTuple('Ts') + Ts2 = TypeVarTuple('Ts2') class C(Generic[T]): pass @@ -616,6 +628,8 @@ class C(Generic[T]): pass # Should definitely raise TypeError: list only takes one argument. ('list[T, *tuple_type[int, ...]]', '[int]', 'list[int, *tuple_type[int, ...]]'), ('List[T, *tuple_type[int, ...]]', '[int]', 'TypeError'), + # Should raise, because more than one `TypeVarTuple` is not supported. + ('generic[*Ts, *Ts2]', '[int]', 'TypeError'), ] for alias_template, args_template, expected_template in tests: @@ -753,14 +767,11 @@ class C(Generic[*Ts]): pass ('generic[*Ts]', '[*tuple_type[int]]', 'generic[int]'), ('generic[*Ts]', '[*tuple_type[*Ts]]', 'generic[*Ts]'), ('generic[*Ts]', '[*tuple_type[int, str]]', 'generic[int, str]'), + ('generic[*Ts]', '[str, *tuple_type[int, ...], bool]', 'generic[str, *tuple_type[int, ...], bool]'), ('generic[*Ts]', '[tuple_type[int, ...]]', 'generic[tuple_type[int, ...]]'), ('generic[*Ts]', '[tuple_type[int, ...], tuple_type[str, ...]]', 'generic[tuple_type[int, ...], tuple_type[str, ...]]'), ('generic[*Ts]', '[*tuple_type[int, ...]]', 'generic[*tuple_type[int, ...]]'), - - # Technically, multiple unpackings are forbidden by PEP 646, but we - # choose to be less restrictive at runtime, to allow folks room - # to experiment. So all three of these should be valid. - ('generic[*Ts]', '[*tuple_type[int, ...], *tuple_type[str, ...]]', 'generic[*tuple_type[int, ...], *tuple_type[str, ...]]'), + ('generic[*Ts]', '[*tuple_type[int, ...], *tuple_type[str, ...]]', 'TypeError'), ('generic[*Ts]', '[*Ts]', 'generic[*Ts]'), ('generic[*Ts]', '[T, *Ts]', 'generic[T, *Ts]'), @@ -768,12 +779,24 @@ class C(Generic[*Ts]): pass ('generic[T, *Ts]', '[int]', 'generic[int]'), ('generic[T, *Ts]', '[int, str]', 'generic[int, str]'), ('generic[T, *Ts]', '[int, str, bool]', 'generic[int, str, bool]'), - - ('generic[T, *Ts]', '[*tuple[int, ...]]', 'TypeError'), # Should be generic[int, *tuple[int, ...]] + ('generic[list[T], *Ts]', '[int]', 'generic[list[int]]'), + ('generic[list[T], *Ts]', '[int, str]', 'generic[list[int], str]'), + ('generic[list[T], *Ts]', '[int, str, bool]', 'generic[list[int], str, bool]'), ('generic[*Ts, T]', '[int]', 'generic[int]'), ('generic[*Ts, T]', '[int, str]', 'generic[int, str]'), - ('generic[*Ts, T]', '[int, str, bool]', 'generic[int, str, bool]'), + ('generic[*Ts, T]', '[int, str, bool]', 'generic[int, str, bool]'), + ('generic[*Ts, list[T]]', '[int]', 'generic[list[int]]'), + ('generic[*Ts, list[T]]', '[int, str]', 'generic[int, list[str]]'), + ('generic[*Ts, list[T]]', '[int, str, bool]', 'generic[int, str, list[bool]]'), + + ('generic[T, *Ts]', '[*tuple_type[int, ...]]', 'generic[int, *tuple_type[int, ...]]'), + ('generic[*Ts, T]', '[*tuple_type[int, ...]]', 'generic[*tuple_type[int, ...], int]'), + ('generic[T1, *Ts, T2]', '[*tuple_type[int, ...]]', 'generic[int, *tuple_type[int, ...], int]'), + ('generic[T, str, *Ts]', '[*tuple_type[int, ...]]', 'generic[int, str, *tuple_type[int, ...]]'), + ('generic[*Ts, str, T]', '[*tuple_type[int, ...]]', 'generic[*tuple_type[int, ...], str, int]'), + ('generic[list[T], *Ts]', '[*tuple_type[int, ...]]', 'generic[list[int], *tuple_type[int, ...]]'), + ('generic[*Ts, list[T]]', '[*tuple_type[int, ...]]', 'generic[*tuple_type[int, ...], list[int]]'), ('generic[T, *tuple_type[int, ...]]', '[str]', 'generic[str, *tuple_type[int, ...]]'), ('generic[T1, T2, *tuple_type[int, ...]]', '[str, bool]', 'generic[str, bool, *tuple_type[int, ...]]'), @@ -1007,15 +1030,23 @@ class A(Generic[Unpack[Ts]]): pass self.assertEndsWith(repr(F[float]), 'A[float, *tuple[str, ...]]') self.assertEndsWith(repr(F[float, str]), 'A[float, str, *tuple[str, ...]]') - def test_cannot_subclass_class(self): - with self.assertRaises(TypeError): + def test_cannot_subclass(self): + with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): class C(TypeVarTuple): pass - - def test_cannot_subclass_instance(self): Ts = TypeVarTuple('Ts') - with self.assertRaises(TypeError): + with self.assertRaisesRegex(TypeError, + CANNOT_SUBCLASS_INSTANCE % 'TypeVarTuple'): class C(Ts): pass - with self.assertRaises(TypeError): + with self.assertRaisesRegex(TypeError, r'Cannot subclass \*Ts'): + class C(*Ts): pass + with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): + class C(type(Unpack)): pass + with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): + class C(type(Unpack[Ts])): pass + with self.assertRaisesRegex(TypeError, + r'Cannot subclass typing\.Unpack'): + class C(Unpack): pass + with self.assertRaisesRegex(TypeError, r'Cannot subclass \*Ts'): class C(Unpack[Ts]): pass def test_variadic_class_args_are_correct(self): @@ -1402,13 +1433,15 @@ def test_repr(self): self.assertEqual(repr(u), 'typing.Optional[str]') def test_cannot_subclass(self): - with self.assertRaises(TypeError): + with self.assertRaisesRegex(TypeError, + r'Cannot subclass typing\.Union'): class C(Union): pass - with self.assertRaises(TypeError): + with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): class C(type(Union)): pass - with self.assertRaises(TypeError): + with self.assertRaisesRegex(TypeError, + r'Cannot subclass typing\.Union\[int, str\]'): class C(Union[int, str]): pass @@ -3273,7 +3306,8 @@ class C(B[int]): self.assertEqual(x.bar, 'abc') self.assertEqual(x.__dict__, {'foo': 42, 'bar': 'abc'}) samples = [Any, Union, Tuple, Callable, ClassVar, - Union[int, str], ClassVar[List], Tuple[int, ...], Callable[[str], bytes], + Union[int, str], ClassVar[List], Tuple[int, ...], Tuple[()], + Callable[[str], bytes], typing.DefaultDict, typing.FrozenSet[int]] for s in samples: for proto in range(pickle.HIGHEST_PROTOCOL + 1): @@ -3291,7 +3325,8 @@ class C(B[int]): def test_copy_and_deepcopy(self): T = TypeVar('T') class Node(Generic[T]): ... - things = [Union[T, int], Tuple[T, int], Callable[..., T], Callable[[int], int], + things = [Union[T, int], Tuple[T, int], Tuple[()], + Callable[..., T], Callable[[int], int], Tuple[Any, Any], Node[T], Node[int], Node[Any], typing.Iterable[T], typing.Iterable[Any], typing.Iterable[int], typing.Dict[int, str], typing.Dict[T, Any], ClassVar[int], ClassVar[List[T]], Tuple['T', 'T'], @@ -3633,6 +3668,35 @@ def test_subclass_special_form(self): class Foo(obj): pass + def test_complex_subclasses(self): + T_co = TypeVar("T_co", covariant=True) + + class Base(Generic[T_co]): + ... + + T = TypeVar("T") + + # see gh-94607: this fails in that bug + class Sub(Base, Generic[T]): + ... + + def test_parameter_detection(self): + self.assertEqual(List[T].__parameters__, (T,)) + self.assertEqual(List[List[T]].__parameters__, (T,)) + class A: + __parameters__ = (T,) + # Bare classes should be skipped + for a in (List, list): + for b in (A, int, TypeVar, TypeVarTuple, ParamSpec, types.GenericAlias, types.UnionType): + with self.subTest(generic=a, sub=b): + with self.assertRaisesRegex(TypeError, '.* is not a generic class'): + a[b][str] + # Duck-typing anything that looks like it has __parameters__. + # These tests are optional and failure is okay. + self.assertEqual(List[A()].__parameters__, (T,)) + # C version of GenericAlias + self.assertEqual(list[A()].__parameters__, (T,)) + class ClassVarTests(BaseTestCase): def test_basics(self): @@ -3649,12 +3713,20 @@ def test_repr(self): self.assertEqual(repr(cv), 'typing.ClassVar[%s.Employee]' % __name__) def test_cannot_subclass(self): - with self.assertRaises(TypeError): + with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): class C(type(ClassVar)): pass - with self.assertRaises(TypeError): + with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): class C(type(ClassVar[int])): pass + with self.assertRaisesRegex(TypeError, + r'Cannot subclass typing\.ClassVar'): + class C(ClassVar): + pass + with self.assertRaisesRegex(TypeError, + r'Cannot subclass typing\.ClassVar\[int\]'): + class C(ClassVar[int]): + pass def test_cannot_init(self): with self.assertRaises(TypeError): @@ -3691,12 +3763,20 @@ def test_repr(self): self.assertEqual(repr(cv), 'typing.Final[tuple[int]]') def test_cannot_subclass(self): - with self.assertRaises(TypeError): + with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): class C(type(Final)): pass - with self.assertRaises(TypeError): + with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): class C(type(Final[int])): pass + with self.assertRaisesRegex(TypeError, + r'Cannot subclass typing\.Final'): + class C(Final): + pass + with self.assertRaisesRegex(TypeError, + r'Cannot subclass typing\.Final\[int\]'): + class C(Final[int]): + pass def test_cannot_init(self): with self.assertRaises(TypeError): @@ -4336,6 +4416,20 @@ def blah(): blah() + def test_overload_on_compiled_functions(self): + with patch("typing._overload_registry", + defaultdict(lambda: defaultdict(dict))): + # The registry starts out empty: + self.assertEqual(typing._overload_registry, {}) + + # This should just not fail: + overload(sum) + overload(print) + + # No overloads are recorded (but, it still has a side-effect): + self.assertEqual(typing.get_overloads(sum), []) + self.assertEqual(typing.get_overloads(print), []) + def set_up_overloads(self): def blah(): pass @@ -4370,6 +4464,9 @@ def some_other_func(): pass other_overload = some_other_func def some_other_func(): pass self.assertEqual(list(get_overloads(some_other_func)), [other_overload]) + # Unrelated function still has no overloads: + def not_overloaded(): pass + self.assertEqual(list(get_overloads(not_overloaded)), []) # Make sure that after we clear all overloads, the registry is # completely empty. @@ -4868,17 +4965,28 @@ def test_get_args(self): class C(Generic[T]): pass self.assertEqual(get_args(C[int]), (int,)) self.assertEqual(get_args(C[T]), (T,)) + self.assertEqual(get_args(typing.SupportsAbs[int]), (int,)) # Protocol + self.assertEqual(get_args(typing.SupportsAbs[T]), (T,)) + self.assertEqual(get_args(Point2DGeneric[int]), (int,)) # TypedDict + self.assertEqual(get_args(Point2DGeneric[T]), (T,)) + self.assertEqual(get_args(T), ()) self.assertEqual(get_args(int), ()) + self.assertEqual(get_args(Any), ()) + self.assertEqual(get_args(Self), ()) + self.assertEqual(get_args(LiteralString), ()) self.assertEqual(get_args(ClassVar[int]), (int,)) self.assertEqual(get_args(Union[int, str]), (int, str)) self.assertEqual(get_args(Literal[42, 43]), (42, 43)) self.assertEqual(get_args(Final[List[int]]), (List[int],)) + self.assertEqual(get_args(Optional[int]), (int, type(None))) + self.assertEqual(get_args(Union[int, None]), (int, type(None))) self.assertEqual(get_args(Union[int, Tuple[T, int]][str]), (int, Tuple[str, int])) self.assertEqual(get_args(typing.Dict[int, Tuple[T, T]][Optional[int]]), (int, Tuple[Optional[int], Optional[int]])) self.assertEqual(get_args(Callable[[], T][int]), ([], int)) self.assertEqual(get_args(Callable[..., int]), (..., int)) + self.assertEqual(get_args(Callable[[int], str]), ([int], str)) self.assertEqual(get_args(Union[int, Callable[[Tuple[T, ...]], str]]), (int, Callable[[Tuple[T, ...]], str])) self.assertEqual(get_args(Tuple[int, ...]), (int, ...)) @@ -4895,12 +5003,25 @@ class C(Generic[T]): pass self.assertEqual(get_args(collections.abc.Callable[[int], str]), get_args(Callable[[int], str])) P = ParamSpec('P') + self.assertEqual(get_args(P), ()) + self.assertEqual(get_args(P.args), ()) + self.assertEqual(get_args(P.kwargs), ()) self.assertEqual(get_args(Callable[P, int]), (P, int)) + self.assertEqual(get_args(collections.abc.Callable[P, int]), (P, int)) self.assertEqual(get_args(Callable[Concatenate[int, P], int]), (Concatenate[int, P], int)) + self.assertEqual(get_args(collections.abc.Callable[Concatenate[int, P], int]), + (Concatenate[int, P], int)) + self.assertEqual(get_args(Concatenate[int, str, P]), (int, str, P)) self.assertEqual(get_args(list | str), (list, str)) self.assertEqual(get_args(Required[int]), (int,)) self.assertEqual(get_args(NotRequired[int]), (int,)) + self.assertEqual(get_args(TypeAlias), ()) + self.assertEqual(get_args(TypeGuard[int]), (int,)) + Ts = TypeVarTuple('Ts') + self.assertEqual(get_args(Ts), ()) + self.assertEqual(get_args(Unpack[Ts]), (Ts,)) + self.assertEqual(get_args(tuple[Unpack[Ts]]), (Unpack[Ts],)) class CollectionsAbcTests(BaseTestCase): @@ -5665,9 +5786,12 @@ class Y(Generic[T], NamedTuple): for G in X, Y: with self.subTest(type=G): self.assertEqual(G.__parameters__, (T,)) + self.assertEqual(G[T].__args__, (T,)) + self.assertEqual(get_args(G[T]), (T,)) A = G[int] self.assertIs(A.__origin__, G) self.assertEqual(A.__args__, (int,)) + self.assertEqual(get_args(A), (int,)) self.assertEqual(A.__parameters__, ()) a = A(3) @@ -6197,16 +6321,18 @@ def test_repr(self): self.assertEqual(repr(cv), f'typing.Required[{__name__}.Employee]') def test_cannot_subclass(self): - with self.assertRaises(TypeError): + with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): class C(type(Required)): pass - with self.assertRaises(TypeError): + with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): class C(type(Required[int])): pass - with self.assertRaises(TypeError): + with self.assertRaisesRegex(TypeError, + r'Cannot subclass typing\.Required'): class C(Required): pass - with self.assertRaises(TypeError): + with self.assertRaisesRegex(TypeError, + r'Cannot subclass typing\.Required\[int\]'): class C(Required[int]): pass @@ -6243,16 +6369,18 @@ def test_repr(self): self.assertEqual(repr(cv), f'typing.NotRequired[{__name__}.Employee]') def test_cannot_subclass(self): - with self.assertRaises(TypeError): + with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): class C(type(NotRequired)): pass - with self.assertRaises(TypeError): + with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): class C(type(NotRequired[int])): pass - with self.assertRaises(TypeError): + with self.assertRaisesRegex(TypeError, + r'Cannot subclass typing\.NotRequired'): class C(NotRequired): pass - with self.assertRaises(TypeError): + with self.assertRaisesRegex(TypeError, + r'Cannot subclass typing\.NotRequired\[int\]'): class C(NotRequired[int]): pass @@ -6363,13 +6491,18 @@ def test_re_submodule(self): self.assertEqual(len(w), 1) def test_cannot_subclass(self): - with self.assertRaises(TypeError) as ex: - + with self.assertRaisesRegex( + TypeError, + r"type 're\.Match' is not an acceptable base type", + ): class A(typing.Match): pass - - self.assertEqual(str(ex.exception), - "type 're.Match' is not an acceptable base type") + with self.assertRaisesRegex( + TypeError, + r"type 're\.Pattern' is not an acceptable base type", + ): + class A(typing.Pattern): + pass class AnnotatedTests(BaseTestCase): @@ -6668,7 +6801,8 @@ def test_no_issubclass(self): issubclass(TypeAlias, Employee) def test_cannot_subclass(self): - with self.assertRaises(TypeError): + with self.assertRaisesRegex(TypeError, + r'Cannot subclass typing\.TypeAlias'): class C(TypeAlias): pass @@ -6870,6 +7004,24 @@ def test_paramspec_gets_copied(self): self.assertEqual(C2[Concatenate[str, P2]].__parameters__, (P2,)) self.assertEqual(C2[Concatenate[T, P2]].__parameters__, (T, P2)) + def test_cannot_subclass(self): + with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): + class C(ParamSpec): pass + with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): + class C(ParamSpecArgs): pass + with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): + class C(ParamSpecKwargs): pass + P = ParamSpec('P') + with self.assertRaisesRegex(TypeError, + CANNOT_SUBCLASS_INSTANCE % 'ParamSpec'): + class C(P): pass + with self.assertRaisesRegex(TypeError, + CANNOT_SUBCLASS_INSTANCE % 'ParamSpecArgs'): + class C(P.args): pass + with self.assertRaisesRegex(TypeError, + CANNOT_SUBCLASS_INSTANCE % 'ParamSpecKwargs'): + class C(P.kwargs): pass + class ConcatenateTests(BaseTestCase): def test_basics(self): @@ -6936,12 +7088,20 @@ def test_repr(self): self.assertEqual(repr(cv), 'typing.TypeGuard[tuple[int]]') def test_cannot_subclass(self): - with self.assertRaises(TypeError): + with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): class C(type(TypeGuard)): pass - with self.assertRaises(TypeError): + with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): class C(type(TypeGuard[int])): pass + with self.assertRaisesRegex(TypeError, + r'Cannot subclass typing\.TypeGuard'): + class C(TypeGuard): + pass + with self.assertRaisesRegex(TypeError, + r'Cannot subclass typing\.TypeGuard\[int\]'): + class C(TypeGuard[int]): + pass def test_cannot_init(self): with self.assertRaises(TypeError): @@ -7062,6 +7222,7 @@ def test_special_attrs(self): typing.Self: 'Self', # Subscribed special forms typing.Annotated[Any, "Annotation"]: 'Annotated', + typing.Annotated[int, 'Annotation']: 'Annotated', typing.ClassVar[Any]: 'ClassVar', typing.Concatenate[Any, SpecialAttrsP]: 'Concatenate', typing.Final[Any]: 'Final', diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py index 64abc0c761b3c8..63bccb72e04646 100644 --- a/Lib/test/test_unicode.py +++ b/Lib/test/test_unicode.py @@ -2370,15 +2370,19 @@ def test_expandtabs_optimization(self): self.assertIs(s.expandtabs(), s) def test_raiseMemError(self): - null_byte = 1 - ascii_struct_size = sys.getsizeof("a") - len("a") - null_byte - compact_struct_size = sys.getsizeof("\xff") - len("\xff") - null_byte + asciifields = "nnb" + compactfields = asciifields + "nP" + ascii_struct_size = support.calcobjsize(asciifields) + compact_struct_size = support.calcobjsize(compactfields) for char in ('a', '\xe9', '\u20ac', '\U0010ffff'): code = ord(char) - if code < 0x100: + if code < 0x80: char_size = 1 # sizeof(Py_UCS1) struct_size = ascii_struct_size + elif code < 0x100: + char_size = 1 # sizeof(Py_UCS1) + struct_size = compact_struct_size elif code < 0x10000: char_size = 2 # sizeof(Py_UCS2) struct_size = compact_struct_size @@ -2390,7 +2394,16 @@ def test_raiseMemError(self): # be allocatable, given enough memory. maxlen = ((sys.maxsize - struct_size) // char_size) alloc = lambda: char * maxlen - with self.subTest(char=char): + with self.subTest( + char=char, + struct_size=struct_size, + char_size=char_size + ): + # self-check + self.assertEqual( + sys.getsizeof(char * 42), + struct_size + (char_size * (42 + 1)) + ) self.assertRaises(MemoryError, alloc) self.assertRaises(MemoryError, alloc) @@ -2628,8 +2641,6 @@ def check_format(expected, format, *args): b'%c%c', c_int(0x10000), c_int(0x100000)) # test "%" - check_format('%', - b'%') check_format('%', b'%%') check_format('%s', @@ -2806,23 +2817,22 @@ def check_format(expected, format, *args): check_format('repr=abc\ufffd', b'repr=%V', None, b'abc\xff') - # not supported: copy the raw format string. these tests are just here - # to check for crashes and should not be considered as specifications - check_format('%s', - b'%1%s', b'abc') - check_format('%1abc', - b'%1abc') - check_format('%+i', - b'%+i', c_int(10)) - check_format('%.%s', - b'%.%s', b'abc') - # Issue #33817: empty strings check_format('', b'') check_format('', b'%s', b'') + # check for crashes + for fmt in (b'%', b'%0', b'%01', b'%.', b'%.1', + b'%0%s', b'%1%s', b'%.%s', b'%.1%s', b'%1abc', + b'%l', b'%ll', b'%z', b'%ls', b'%lls', b'%zs'): + with self.subTest(fmt=fmt): + self.assertRaisesRegex(SystemError, 'invalid format string', + PyUnicode_FromFormat, fmt, b'abc') + self.assertRaisesRegex(SystemError, 'invalid format string', + PyUnicode_FromFormat, b'%+i', c_int(10)) + # Test PyUnicode_AsWideChar() @support.cpython_only @unittest.skipIf(_testcapi is None, 'need _testcapi module') diff --git a/Lib/test/test_unicode_file_functions.py b/Lib/test/test_unicode_file_functions.py index 54916dec4eafa3..47619c8807bafe 100644 --- a/Lib/test/test_unicode_file_functions.py +++ b/Lib/test/test_unicode_file_functions.py @@ -6,6 +6,7 @@ import warnings from unicodedata import normalize from test.support import os_helper +from test import support filenames = [ @@ -123,6 +124,10 @@ def test_open(self): # NFKD in Python is useless, because darwin will normalize it later and so # open(), os.stat(), etc. don't raise any exception. @unittest.skipIf(sys.platform == 'darwin', 'irrelevant test on Mac OS X') + @unittest.skipIf( + support.is_emscripten or support.is_wasi, + "test fails on Emscripten/WASI when host platform is macOS." + ) def test_normalize(self): files = set(self.files) others = set() diff --git a/Lib/test/test_unicodedata.py b/Lib/test/test_unicodedata.py index 3514697f548e65..0c31d80e103dbf 100644 --- a/Lib/test/test_unicodedata.py +++ b/Lib/test/test_unicodedata.py @@ -18,7 +18,7 @@ class UnicodeMethodsTest(unittest.TestCase): # update this, if the database changes - expectedchecksum = '4739770dd4d0e5f1b1677accfc3552ed3c8ef326' + expectedchecksum = 'e708c31c0d51f758adf475cb7201cf80917362be' @requires_resource('cpu') def test_method_checksum(self): @@ -71,7 +71,7 @@ class UnicodeFunctionsTest(UnicodeDatabaseTest): # Update this if the database changes. Make sure to do a full rebuild # (e.g. 'make distclean && make') to get the correct checksum. - expectedchecksum = '98d602e1f69d5c5bb8a5910c40bbbad4e18e8370' + expectedchecksum = '84b88a89f40aeae96852732f9dc0ee08be49780f' @requires_resource('cpu') def test_function_checksum(self): @@ -90,6 +90,7 @@ def test_function_checksum(self): self.db.decomposition(char), str(self.db.mirrored(char)), str(self.db.combining(char)), + unicodedata.east_asian_width(char), ] h.update(''.join(data).encode("ascii")) result = h.hexdigest() @@ -220,6 +221,23 @@ def test_east_asian_width(self): self.assertEqual(eaw('\u2010'), 'A') self.assertEqual(eaw('\U00020000'), 'W') + def test_east_asian_width_unassigned(self): + eaw = self.db.east_asian_width + # unassigned + for char in '\u0530\u0ecf\u10c6\u20fc\uaaca\U000107bd\U000115f2': + self.assertEqual(eaw(char), 'N') + self.assertIs(self.db.name(char, None), None) + + # unassigned but reserved for CJK + for char in '\uFA6E\uFADA\U0002A6E0\U0002FA20\U0003134B\U0003FFFD': + self.assertEqual(eaw(char), 'W') + self.assertIs(self.db.name(char, None), None) + + # private use areas + for char in '\uE000\uF800\U000F0000\U000FFFEE\U00100000\U0010FFF0': + self.assertEqual(eaw(char), 'A') + self.assertIs(self.db.name(char, None), None) + def test_east_asian_width_9_0_changes(self): self.assertEqual(self.db.ucd_3_2_0.east_asian_width('\u231a'), 'N') self.assertEqual(self.db.east_asian_width('\u231a'), 'W') diff --git a/Lib/test/test_unittest.py b/Lib/test/test_unittest.py deleted file mode 100644 index 1079c7df2e51c2..00000000000000 --- a/Lib/test/test_unittest.py +++ /dev/null @@ -1,16 +0,0 @@ -import unittest.test - -from test import support - - -def load_tests(*_): - # used by unittest - return unittest.test.suite() - - -def tearDownModule(): - support.reap_children() - - -if __name__ == "__main__": - unittest.main() diff --git a/Lib/test/test_unittest/__init__.py b/Lib/test/test_unittest/__init__.py new file mode 100644 index 00000000000000..bc502ef32d2916 --- /dev/null +++ b/Lib/test/test_unittest/__init__.py @@ -0,0 +1,6 @@ +import os.path +from test.support import load_package_tests + + +def load_tests(*args): + return load_package_tests(os.path.dirname(__file__), *args) diff --git a/Lib/test/test_unittest/__main__.py b/Lib/test/test_unittest/__main__.py new file mode 100644 index 00000000000000..40a23a297ec2b4 --- /dev/null +++ b/Lib/test/test_unittest/__main__.py @@ -0,0 +1,4 @@ +from . import load_tests +import unittest + +unittest.main() diff --git a/Lib/unittest/test/_test_warnings.py b/Lib/test/test_unittest/_test_warnings.py similarity index 84% rename from Lib/unittest/test/_test_warnings.py rename to Lib/test/test_unittest/_test_warnings.py index 5cbfb532ad0502..08b846ee47e926 100644 --- a/Lib/unittest/test/_test_warnings.py +++ b/Lib/test/test_unittest/_test_warnings.py @@ -18,17 +18,6 @@ def warnfun(): warnings.warn('rw', RuntimeWarning) class TestWarnings(unittest.TestCase): - # unittest warnings will be printed at most once per type (max one message - # for the fail* methods, and one for the assert* methods) - def test_assert(self): - self.assertEquals(2+2, 4) - self.assertEquals(2*2, 4) - self.assertEquals(2**2, 4) - - def test_fail(self): - self.failUnless(1) - self.failUnless(True) - def test_other_unittest(self): self.assertAlmostEqual(2+2, 4) self.assertNotAlmostEqual(4+4, 2) diff --git a/Lib/unittest/test/dummy.py b/Lib/test/test_unittest/dummy.py similarity index 100% rename from Lib/unittest/test/dummy.py rename to Lib/test/test_unittest/dummy.py diff --git a/Lib/unittest/test/support.py b/Lib/test/test_unittest/support.py similarity index 100% rename from Lib/unittest/test/support.py rename to Lib/test/test_unittest/support.py diff --git a/Lib/unittest/test/test_assertions.py b/Lib/test/test_unittest/test_assertions.py similarity index 97% rename from Lib/unittest/test/test_assertions.py rename to Lib/test/test_unittest/test_assertions.py index a0db3423b868aa..6557104b81fc0f 100644 --- a/Lib/unittest/test/test_assertions.py +++ b/Lib/test/test_unittest/test_assertions.py @@ -271,15 +271,6 @@ def testAssertDictEqual(self): r"\+ \{'key': 'value'\}$", r"\+ \{'key': 'value'\} : oops$"]) - def testAssertDictContainsSubset(self): - with warnings.catch_warnings(): - warnings.simplefilter("ignore", DeprecationWarning) - - self.assertMessages('assertDictContainsSubset', ({'key': 'value'}, {}), - ["^Missing: 'key'$", "^oops$", - "^Missing: 'key'$", - "^Missing: 'key' : oops$"]) - def testAssertMultiLineEqual(self): self.assertMessages('assertMultiLineEqual', ("", "foo"), [r"\+ foo$", "^oops$", diff --git a/Lib/unittest/test/test_async_case.py b/Lib/test/test_unittest/test_async_case.py similarity index 94% rename from Lib/unittest/test/test_async_case.py rename to Lib/test/test_unittest/test_async_case.py index beadcac070b434..d7d4dc91316c6c 100644 --- a/Lib/unittest/test/test_async_case.py +++ b/Lib/test/test_unittest/test_async_case.py @@ -43,10 +43,10 @@ async def __aenter__(self): class TestAsyncCase(unittest.TestCase): maxDiff = None - def tearDown(self): + def setUp(self): # Ensure that IsolatedAsyncioTestCase instances are destroyed before # starting a new event loop - support.gc_collect() + self.addCleanup(support.gc_collect) def test_full_cycle(self): class Test(unittest.IsolatedAsyncioTestCase): @@ -151,6 +151,7 @@ async def on_cleanup(self): events = [] test = Test("test_func") + self.addCleanup(test._tearDownAsyncioRunner) try: test.debug() except MyException: @@ -186,6 +187,7 @@ async def on_cleanup(self): events = [] test = Test("test_func") + self.addCleanup(test._tearDownAsyncioRunner) try: test.debug() except MyException: @@ -221,6 +223,7 @@ async def on_cleanup(self): events = [] test = Test("test_func") + self.addCleanup(test._tearDownAsyncioRunner) try: test.debug() except MyException: @@ -262,6 +265,7 @@ async def on_cleanup2(self): events = [] test = Test("test_func") + self.addCleanup(test._tearDownAsyncioRunner) try: test.debug() except MyException: @@ -424,6 +428,7 @@ async def cleanup(self, fut): events = [] test = Test("test_func") + self.addCleanup(test._tearDownAsyncioRunner) try: test.debug() except MyException: @@ -434,6 +439,21 @@ async def cleanup(self, fut): test.doCleanups() self.assertEqual(events, ['asyncSetUp', 'test', 'cleanup']) + def test_setup_get_event_loop(self): + # See https://github.com/python/cpython/issues/95736 + # Make sure the default event loop is not used + asyncio.set_event_loop(None) + + class TestCase1(unittest.IsolatedAsyncioTestCase): + def setUp(self): + asyncio.get_event_loop_policy().get_event_loop() + + async def test_demo1(self): + pass + + test = TestCase1('test_demo1') + result = test.run() + self.assertTrue(result.wasSuccessful()) if __name__ == "__main__": unittest.main() diff --git a/Lib/unittest/test/test_break.py b/Lib/test/test_unittest/test_break.py similarity index 100% rename from Lib/unittest/test/test_break.py rename to Lib/test/test_unittest/test_break.py diff --git a/Lib/unittest/test/test_case.py b/Lib/test/test_unittest/test_case.py similarity index 96% rename from Lib/unittest/test/test_case.py rename to Lib/test/test_unittest/test_case.py index 374a255255566f..fae0d1076da948 100644 --- a/Lib/unittest/test/test_case.py +++ b/Lib/test/test_unittest/test_case.py @@ -15,7 +15,7 @@ import unittest -from unittest.test.support import ( +from test.test_unittest.support import ( TestEquality, TestHashing, LoggingResult, LegacyLoggingResult, ResultWithNoStartTestRunStopTestRun ) @@ -698,36 +698,6 @@ def testAssertIn(self): self.assertRaises(self.failureException, self.assertNotIn, 'cow', animals) - def testAssertDictContainsSubset(self): - with warnings.catch_warnings(): - warnings.simplefilter("ignore", DeprecationWarning) - - self.assertDictContainsSubset({}, {}) - self.assertDictContainsSubset({}, {'a': 1}) - self.assertDictContainsSubset({'a': 1}, {'a': 1}) - self.assertDictContainsSubset({'a': 1}, {'a': 1, 'b': 2}) - self.assertDictContainsSubset({'a': 1, 'b': 2}, {'a': 1, 'b': 2}) - - with self.assertRaises(self.failureException): - self.assertDictContainsSubset({1: "one"}, {}) - - with self.assertRaises(self.failureException): - self.assertDictContainsSubset({'a': 2}, {'a': 1}) - - with self.assertRaises(self.failureException): - self.assertDictContainsSubset({'c': 1}, {'a': 1}) - - with self.assertRaises(self.failureException): - self.assertDictContainsSubset({'a': 1, 'c': 1}, {'a': 1}) - - with self.assertRaises(self.failureException): - self.assertDictContainsSubset({'a': 1, 'c': 1}, {'a': 1}) - - one = ''.join(chr(i) for i in range(255)) - # this used to cause a UnicodeDecodeError constructing the failure msg - with self.assertRaises(self.failureException): - self.assertDictContainsSubset({'foo': one}, {'foo': '\uFFFD'}) - def testAssertEqual(self): equal_pairs = [ ((), ()), @@ -1790,45 +1760,18 @@ def testAssertNoLogsYieldsNone(self): pass self.assertIsNone(value) - def testDeprecatedMethodNames(self): - """ - Test that the deprecated methods raise a DeprecationWarning. See #9424. - """ - old = ( - (self.failIfEqual, (3, 5)), - (self.assertNotEquals, (3, 5)), - (self.failUnlessEqual, (3, 3)), - (self.assertEquals, (3, 3)), - (self.failUnlessAlmostEqual, (2.0, 2.0)), - (self.assertAlmostEquals, (2.0, 2.0)), - (self.failIfAlmostEqual, (3.0, 5.0)), - (self.assertNotAlmostEquals, (3.0, 5.0)), - (self.failUnless, (True,)), - (self.assert_, (True,)), - (self.failUnlessRaises, (TypeError, lambda _: 3.14 + 'spam')), - (self.failIf, (False,)), - (self.assertDictContainsSubset, (dict(a=1, b=2), dict(a=1, b=2, c=3))), - (self.assertRaisesRegexp, (KeyError, 'foo', lambda: {}['foo'])), - (self.assertRegexpMatches, ('bar', 'bar')), - ) - for meth, args in old: - with self.assertWarns(DeprecationWarning): - meth(*args) - - # disable this test for now. When the version where the fail* methods will - # be removed is decided, re-enable it and update the version - def _testDeprecatedFailMethods(self): - """Test that the deprecated fail* methods get removed in 3.x""" - if sys.version_info[:2] < (3, 3): - return + def testDeprecatedFailMethods(self): + """Test that the deprecated fail* methods get removed in 3.12""" deprecated_names = [ 'failIfEqual', 'failUnlessEqual', 'failUnlessAlmostEqual', 'failIfAlmostEqual', 'failUnless', 'failUnlessRaises', 'failIf', - 'assertDictContainsSubset', + 'assertNotEquals', 'assertEquals', 'assertAlmostEquals', + 'assertNotAlmostEquals', 'assert_', 'assertDictContainsSubset', + 'assertRaisesRegexp', 'assertRegexpMatches' ] for deprecated_name in deprecated_names: with self.assertRaises(AttributeError): - getattr(self, deprecated_name) # remove these in 3.x + getattr(self, deprecated_name) def testDeepcopy(self): # Issue: 5660 diff --git a/Lib/unittest/test/test_discovery.py b/Lib/test/test_unittest/test_discovery.py similarity index 99% rename from Lib/unittest/test/test_discovery.py rename to Lib/test/test_unittest/test_discovery.py index 3b58786ec16a10..946fa1258ea25e 100644 --- a/Lib/unittest/test/test_discovery.py +++ b/Lib/test/test_unittest/test_discovery.py @@ -10,7 +10,7 @@ import unittest import unittest.mock -import unittest.test +import test.test_unittest class TestableTestProgram(unittest.TestProgram): @@ -789,7 +789,7 @@ def test_discovery_from_dotted_path(self): loader = unittest.TestLoader() tests = [self] - expectedPath = os.path.abspath(os.path.dirname(unittest.test.__file__)) + expectedPath = os.path.abspath(os.path.dirname(test.test_unittest.__file__)) self.wasRun = False def _find_tests(start_dir, pattern): @@ -797,7 +797,7 @@ def _find_tests(start_dir, pattern): self.assertEqual(start_dir, expectedPath) return tests loader._find_tests = _find_tests - suite = loader.discover('unittest.test') + suite = loader.discover('test.test_unittest') self.assertTrue(self.wasRun) self.assertEqual(suite._tests, tests) diff --git a/Lib/unittest/test/test_functiontestcase.py b/Lib/test/test_unittest/test_functiontestcase.py similarity index 99% rename from Lib/unittest/test/test_functiontestcase.py rename to Lib/test/test_unittest/test_functiontestcase.py index 4971729880d6d8..2ebed9564ad9cd 100644 --- a/Lib/unittest/test/test_functiontestcase.py +++ b/Lib/test/test_unittest/test_functiontestcase.py @@ -1,6 +1,6 @@ import unittest -from unittest.test.support import LoggingResult +from test.test_unittest.support import LoggingResult class Test_FunctionTestCase(unittest.TestCase): diff --git a/Lib/unittest/test/test_loader.py b/Lib/test/test_unittest/test_loader.py similarity index 90% rename from Lib/unittest/test/test_loader.py rename to Lib/test/test_unittest/test_loader.py index de2268cda90688..bbdfb247ebaada 100644 --- a/Lib/unittest/test/test_loader.py +++ b/Lib/test/test_unittest/test_loader.py @@ -5,25 +5,6 @@ import unittest -# Decorator used in the deprecation tests to reset the warning registry for -# test isolation and reproducibility. -def warningregistry(func): - def wrapper(*args, **kws): - missing = [] - saved = getattr(warnings, '__warningregistry__', missing).copy() - try: - return func(*args, **kws) - finally: - if saved is missing: - try: - del warnings.__warningregistry__ - except AttributeError: - pass - else: - warnings.__warningregistry__ = saved - return wrapper - - class Test_TestLoader(unittest.TestCase): ### Basic object tests @@ -174,9 +155,8 @@ class NotAModule(object): self.assertEqual(list(suite), reference) - # Check that loadTestsFromModule honors (or not) a module + # Check that loadTestsFromModule honors a module # with a load_tests function. - @warningregistry def test_loadTestsFromModule__load_tests(self): m = types.ModuleType('m') class MyTestCase(unittest.TestCase): @@ -195,126 +175,13 @@ def load_tests(loader, tests, pattern): suite = loader.loadTestsFromModule(m) self.assertIsInstance(suite, unittest.TestSuite) self.assertEqual(load_tests_args, [loader, suite, None]) - # With Python 3.5, the undocumented and unofficial use_load_tests is - # ignored (and deprecated). - load_tests_args = [] - with warnings.catch_warnings(record=False): - warnings.simplefilter('ignore') - suite = loader.loadTestsFromModule(m, use_load_tests=False) - self.assertEqual(load_tests_args, [loader, suite, None]) - - @warningregistry - def test_loadTestsFromModule__use_load_tests_deprecated_positional(self): - m = types.ModuleType('m') - class MyTestCase(unittest.TestCase): - def test(self): - pass - m.testcase_1 = MyTestCase - - load_tests_args = [] - def load_tests(loader, tests, pattern): - self.assertIsInstance(tests, unittest.TestSuite) - load_tests_args.extend((loader, tests, pattern)) - return tests - m.load_tests = load_tests - # The method still works. - loader = unittest.TestLoader() - # use_load_tests=True as a positional argument. - with warnings.catch_warnings(record=True) as w: - warnings.simplefilter('always') - suite = loader.loadTestsFromModule(m, False) - self.assertIsInstance(suite, unittest.TestSuite) - # load_tests was still called because use_load_tests is deprecated - # and ignored. - self.assertEqual(load_tests_args, [loader, suite, None]) - # We got a warning. - self.assertIs(w[-1].category, DeprecationWarning) - self.assertEqual(str(w[-1].message), - 'use_load_tests is deprecated and ignored') - - @warningregistry - def test_loadTestsFromModule__use_load_tests_deprecated_keyword(self): - m = types.ModuleType('m') - class MyTestCase(unittest.TestCase): - def test(self): - pass - m.testcase_1 = MyTestCase - - load_tests_args = [] - def load_tests(loader, tests, pattern): - self.assertIsInstance(tests, unittest.TestSuite) - load_tests_args.extend((loader, tests, pattern)) - return tests - m.load_tests = load_tests - # The method still works. - loader = unittest.TestLoader() - with warnings.catch_warnings(record=True) as w: - warnings.simplefilter('always') - suite = loader.loadTestsFromModule(m, use_load_tests=False) - self.assertIsInstance(suite, unittest.TestSuite) - # load_tests was still called because use_load_tests is deprecated - # and ignored. - self.assertEqual(load_tests_args, [loader, suite, None]) - # We got a warning. - self.assertIs(w[-1].category, DeprecationWarning) - self.assertEqual(str(w[-1].message), - 'use_load_tests is deprecated and ignored') - - @warningregistry - def test_loadTestsFromModule__too_many_positional_args(self): - m = types.ModuleType('m') - class MyTestCase(unittest.TestCase): - def test(self): - pass - m.testcase_1 = MyTestCase - - load_tests_args = [] - def load_tests(loader, tests, pattern): - self.assertIsInstance(tests, unittest.TestSuite) - load_tests_args.extend((loader, tests, pattern)) - return tests - m.load_tests = load_tests - loader = unittest.TestLoader() - with self.assertRaises(TypeError) as cm, \ - warnings.catch_warnings(record=True) as w: - warnings.simplefilter('always') - loader.loadTestsFromModule(m, False, 'testme.*') - # We still got the deprecation warning. - self.assertIs(w[-1].category, DeprecationWarning) - self.assertEqual(str(w[-1].message), - 'use_load_tests is deprecated and ignored') - # We also got a TypeError for too many positional arguments. - self.assertEqual(type(cm.exception), TypeError) - self.assertEqual( - str(cm.exception), - 'loadTestsFromModule() takes 1 positional argument but 3 were given') - - @warningregistry - def test_loadTestsFromModule__use_load_tests_other_bad_keyword(self): - m = types.ModuleType('m') - class MyTestCase(unittest.TestCase): - def test(self): - pass - m.testcase_1 = MyTestCase - load_tests_args = [] - def load_tests(loader, tests, pattern): - self.assertIsInstance(tests, unittest.TestSuite) - load_tests_args.extend((loader, tests, pattern)) - return tests - m.load_tests = load_tests - loader = unittest.TestLoader() - with warnings.catch_warnings(): - warnings.simplefilter('ignore') - with self.assertRaises(TypeError) as cm: - loader.loadTestsFromModule( - m, use_load_tests=False, very_bad=True, worse=False) - self.assertEqual(type(cm.exception), TypeError) - # The error message names the first bad argument alphabetically, - # however use_load_tests (which sorts first) is ignored. - self.assertEqual( - str(cm.exception), - "loadTestsFromModule() got an unexpected keyword argument 'very_bad'") + # In Python 3.12, the undocumented and unofficial use_load_tests has + # been removed. + with self.assertRaises(TypeError): + loader.loadTestsFromModule(m, False) + with self.assertRaises(TypeError): + loader.loadTestsFromModule(m, use_load_tests=False) def test_loadTestsFromModule__pattern(self): m = types.ModuleType('m') @@ -716,7 +583,7 @@ def test_loadTestsFromName__module_not_loaded(self): # We're going to try to load this module as a side-effect, so it # better not be loaded before we try. # - module_name = 'unittest.test.dummy' + module_name = 'test.test_unittest.dummy' sys.modules.pop(module_name, None) loader = unittest.TestLoader() @@ -844,7 +711,7 @@ def test_loadTestsFromNames__unknown_attr_name(self): loader = unittest.TestLoader() suite = loader.loadTestsFromNames( - ['unittest.loader.sdasfasfasdf', 'unittest.test.dummy']) + ['unittest.loader.sdasfasfasdf', 'test.test_unittest.dummy']) error, test = self.check_deferred_error(loader, list(suite)[0]) expected = "module 'unittest.loader' has no attribute 'sdasfasfasdf'" self.assertIn( @@ -1141,7 +1008,7 @@ def test_loadTestsFromNames__module_not_loaded(self): # We're going to try to load this module as a side-effect, so it # better not be loaded before we try. # - module_name = 'unittest.test.dummy' + module_name = 'test.test_unittest.dummy' sys.modules.pop(module_name, None) loader = unittest.TestLoader() diff --git a/Lib/unittest/test/test_program.py b/Lib/test/test_unittest/test_program.py similarity index 93% rename from Lib/unittest/test/test_program.py rename to Lib/test/test_unittest/test_program.py index 26a8550af8fdd2..3645bcf4b43562 100644 --- a/Lib/unittest/test/test_program.py +++ b/Lib/test/test_unittest/test_program.py @@ -1,12 +1,10 @@ -import io - import os import sys import subprocess from test import support import unittest -import unittest.test -from unittest.test.test_result import BufferedWriter +import test.test_unittest +from test.test_unittest.test_result import BufferedWriter class Test_TestProgram(unittest.TestCase): @@ -15,7 +13,7 @@ def test_discovery_from_dotted_path(self): loader = unittest.TestLoader() tests = [self] - expectedPath = os.path.abspath(os.path.dirname(unittest.test.__file__)) + expectedPath = os.path.abspath(os.path.dirname(test.test_unittest.__file__)) self.wasRun = False def _find_tests(start_dir, pattern): @@ -23,7 +21,7 @@ def _find_tests(start_dir, pattern): self.assertEqual(start_dir, expectedPath) return tests loader._find_tests = _find_tests - suite = loader.discover('unittest.test') + suite = loader.discover('test.test_unittest') self.assertTrue(self.wasRun) self.assertEqual(suite._tests, tests) @@ -93,10 +91,10 @@ def run(self, test): sys.argv = ['faketest'] runner = FakeRunner() program = unittest.TestProgram(testRunner=runner, exit=False, - defaultTest='unittest.test', + defaultTest='test.test_unittest', testLoader=self.FooBarLoader()) sys.argv = old_argv - self.assertEqual(('unittest.test',), program.testNames) + self.assertEqual(('test.test_unittest',), program.testNames) def test_defaultTest_with_iterable(self): class FakeRunner(object): @@ -109,10 +107,10 @@ def run(self, test): runner = FakeRunner() program = unittest.TestProgram( testRunner=runner, exit=False, - defaultTest=['unittest.test', 'unittest.test2'], + defaultTest=['test.test_unittest', 'test.test_unittest2'], testLoader=self.FooBarLoader()) sys.argv = old_argv - self.assertEqual(['unittest.test', 'unittest.test2'], + self.assertEqual(['test.test_unittest', 'test.test_unittest2'], program.testNames) def test_NonExit(self): @@ -463,14 +461,14 @@ def run_unittest(args): return stderr.decode() t = '_test_warnings' - self.assertIn('Ran 7 tests', run_unittest([t])) - self.assertIn('Ran 7 tests', run_unittest(['-k', 'TestWarnings', t])) - self.assertIn('Ran 7 tests', run_unittest(['discover', '-p', '*_test*', '-k', 'TestWarnings'])) - self.assertIn('Ran 2 tests', run_unittest(['-k', 'f', t])) - self.assertIn('Ran 7 tests', run_unittest(['-k', 't', t])) - self.assertIn('Ran 3 tests', run_unittest(['-k', '*t', t])) - self.assertIn('Ran 7 tests', run_unittest(['-k', '*test_warnings.*Warning*', t])) - self.assertIn('Ran 1 test', run_unittest(['-k', '*test_warnings.*warning*', t])) + self.assertIn('Ran 5 tests', run_unittest([t])) + self.assertIn('Ran 5 tests', run_unittest(['-k', 'TestWarnings', t])) + self.assertIn('Ran 5 tests', run_unittest(['discover', '-p', '*_test*', '-k', 'TestWarnings'])) + self.assertIn('Ran 1 test ', run_unittest(['-k', 'f', t])) + self.assertIn('Ran 5 tests', run_unittest(['-k', 't', t])) + self.assertIn('Ran 2 tests', run_unittest(['-k', '*t', t])) + self.assertIn('Ran 5 tests', run_unittest(['-k', '*test_warnings.*Warning*', t])) + self.assertIn('Ran 1 test ', run_unittest(['-k', '*test_warnings.*warning*', t])) if __name__ == '__main__': diff --git a/Lib/unittest/test/test_result.py b/Lib/test/test_unittest/test_result.py similarity index 99% rename from Lib/unittest/test/test_result.py rename to Lib/test/test_unittest/test_result.py index b0cc3d867d6e57..e71d114751d94d 100644 --- a/Lib/unittest/test/test_result.py +++ b/Lib/test/test_unittest/test_result.py @@ -2,7 +2,7 @@ import sys import textwrap -from test.support import warnings_helper, captured_stdout, captured_stderr +from test.support import warnings_helper, captured_stdout import traceback import unittest @@ -449,8 +449,8 @@ def testGetSubTestDescriptionWithoutDocstringAndParams(self): '(' + __name__ + '.Test_TextTestResult.testGetSubTestDescriptionWithoutDocstringAndParams) ' '(<subtest>)') - def testGetSubTestDescriptionForFalsyValues(self): - expected = 'testGetSubTestDescriptionForFalsyValues (%s.Test_TextTestResult.testGetSubTestDescriptionForFalsyValues) [%s]' + def testGetSubTestDescriptionForFalseValues(self): + expected = 'testGetSubTestDescriptionForFalseValues (%s.Test_TextTestResult.testGetSubTestDescriptionForFalseValues) [%s]' result = unittest.TextTestResult(None, True, 1) for arg in [0, None, []]: with self.subTest(arg): diff --git a/Lib/unittest/test/test_runner.py b/Lib/test/test_unittest/test_runner.py similarity index 99% rename from Lib/unittest/test/test_runner.py rename to Lib/test/test_unittest/test_runner.py index d3488b40e82bde..d396f2bab57871 100644 --- a/Lib/unittest/test/test_runner.py +++ b/Lib/test/test_unittest/test_runner.py @@ -8,7 +8,7 @@ import unittest from unittest.case import _Outcome -from unittest.test.support import (LoggingResult, +from test.test_unittest.support import (LoggingResult, ResultWithNoStartTestRunStopTestRun) @@ -1262,8 +1262,6 @@ def get_parse_out_err(p): return [b.splitlines() for b in p.communicate()] opts = dict(stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=os.path.dirname(__file__)) - ae_msg = b'Please use assertEqual instead.' - at_msg = b'Please use assertTrue instead.' # no args -> all the warnings are printed, unittest warnings only once p = subprocess.Popen([sys.executable, '-E', '_test_warnings.py'], **opts) @@ -1271,11 +1269,11 @@ def get_parse_out_err(p): out, err = get_parse_out_err(p) self.assertIn(b'OK', err) # check that the total number of warnings in the output is correct - self.assertEqual(len(out), 12) + self.assertEqual(len(out), 10) # check that the numbers of the different kind of warnings is correct for msg in [b'dw', b'iw', b'uw']: self.assertEqual(out.count(msg), 3) - for msg in [ae_msg, at_msg, b'rw']: + for msg in [b'rw']: self.assertEqual(out.count(msg), 1) args_list = ( @@ -1302,11 +1300,9 @@ def get_parse_out_err(p): with p: out, err = get_parse_out_err(p) self.assertIn(b'OK', err) - self.assertEqual(len(out), 14) + self.assertEqual(len(out), 12) for msg in [b'dw', b'iw', b'uw', b'rw']: self.assertEqual(out.count(msg), 3) - for msg in [ae_msg, at_msg]: - self.assertEqual(out.count(msg), 1) def testStdErrLookedUpAtInstantiationTime(self): # see issue 10786 diff --git a/Lib/unittest/test/test_setups.py b/Lib/test/test_unittest/test_setups.py similarity index 100% rename from Lib/unittest/test/test_setups.py rename to Lib/test/test_unittest/test_setups.py diff --git a/Lib/unittest/test/test_skipping.py b/Lib/test/test_unittest/test_skipping.py similarity index 99% rename from Lib/unittest/test/test_skipping.py rename to Lib/test/test_unittest/test_skipping.py index 64ceeae37ef0a7..f146dcac18ecc0 100644 --- a/Lib/unittest/test/test_skipping.py +++ b/Lib/test/test_unittest/test_skipping.py @@ -1,6 +1,6 @@ import unittest -from unittest.test.support import LoggingResult +from test.test_unittest.support import LoggingResult class Test_TestSkipping(unittest.TestCase): diff --git a/Lib/unittest/test/test_suite.py b/Lib/test/test_unittest/test_suite.py similarity index 99% rename from Lib/unittest/test/test_suite.py rename to Lib/test/test_unittest/test_suite.py index 0551a16996723e..ca52ee9d9c011c 100644 --- a/Lib/unittest/test/test_suite.py +++ b/Lib/test/test_unittest/test_suite.py @@ -3,7 +3,7 @@ import gc import sys import weakref -from unittest.test.support import LoggingResult, TestEquality +from test.test_unittest.support import LoggingResult, TestEquality ### Support code for Test_TestSuite diff --git a/Lib/test/test_unittest/testmock/__init__.py b/Lib/test/test_unittest/testmock/__init__.py new file mode 100644 index 00000000000000..bc502ef32d2916 --- /dev/null +++ b/Lib/test/test_unittest/testmock/__init__.py @@ -0,0 +1,6 @@ +import os.path +from test.support import load_package_tests + + +def load_tests(*args): + return load_package_tests(os.path.dirname(__file__), *args) diff --git a/Lib/unittest/test/testmock/__main__.py b/Lib/test/test_unittest/testmock/__main__.py similarity index 86% rename from Lib/unittest/test/testmock/__main__.py rename to Lib/test/test_unittest/testmock/__main__.py index 45c633a4ee48b5..1e3068b0ddf391 100644 --- a/Lib/unittest/test/testmock/__main__.py +++ b/Lib/test/test_unittest/testmock/__main__.py @@ -6,7 +6,7 @@ def load_tests(loader, standard_tests, pattern): # top level directory cached on loader instance this_dir = os.path.dirname(__file__) pattern = pattern or "test*.py" - # We are inside unittest.test.testmock, so the top-level is three notches up + # We are inside test.test_unittest.testmock, so the top-level is three notches up top_level_dir = os.path.dirname(os.path.dirname(os.path.dirname(this_dir))) package_tests = loader.discover(start_dir=this_dir, pattern=pattern, top_level_dir=top_level_dir) diff --git a/Lib/unittest/test/testmock/support.py b/Lib/test/test_unittest/testmock/support.py similarity index 100% rename from Lib/unittest/test/testmock/support.py rename to Lib/test/test_unittest/testmock/support.py diff --git a/Lib/unittest/test/testmock/testasync.py b/Lib/test/test_unittest/testmock/testasync.py similarity index 100% rename from Lib/unittest/test/testmock/testasync.py rename to Lib/test/test_unittest/testmock/testasync.py diff --git a/Lib/unittest/test/testmock/testcallable.py b/Lib/test/test_unittest/testmock/testcallable.py similarity index 98% rename from Lib/unittest/test/testmock/testcallable.py rename to Lib/test/test_unittest/testmock/testcallable.py index 5eadc007049400..ca88511f63959d 100644 --- a/Lib/unittest/test/testmock/testcallable.py +++ b/Lib/test/test_unittest/testmock/testcallable.py @@ -3,7 +3,7 @@ # http://www.voidspace.org.uk/python/mock/ import unittest -from unittest.test.testmock.support import is_instance, X, SomeClass +from test.test_unittest.testmock.support import is_instance, X, SomeClass from unittest.mock import ( Mock, MagicMock, NonCallableMagicMock, diff --git a/Lib/unittest/test/testmock/testhelpers.py b/Lib/test/test_unittest/testmock/testhelpers.py similarity index 100% rename from Lib/unittest/test/testmock/testhelpers.py rename to Lib/test/test_unittest/testmock/testhelpers.py diff --git a/Lib/unittest/test/testmock/testmagicmethods.py b/Lib/test/test_unittest/testmock/testmagicmethods.py similarity index 100% rename from Lib/unittest/test/testmock/testmagicmethods.py rename to Lib/test/test_unittest/testmock/testmagicmethods.py diff --git a/Lib/unittest/test/testmock/testmock.py b/Lib/test/test_unittest/testmock/testmock.py similarity index 99% rename from Lib/unittest/test/testmock/testmock.py rename to Lib/test/test_unittest/testmock/testmock.py index c99098dc4ea86a..8a92490137f9a7 100644 --- a/Lib/unittest/test/testmock/testmock.py +++ b/Lib/test/test_unittest/testmock/testmock.py @@ -5,7 +5,7 @@ from test.support import ALWAYS_EQ import unittest -from unittest.test.testmock.support import is_instance +from test.test_unittest.testmock.support import is_instance from unittest import mock from unittest.mock import ( call, DEFAULT, patch, sentinel, diff --git a/Lib/unittest/test/testmock/testpatch.py b/Lib/test/test_unittest/testmock/testpatch.py similarity index 98% rename from Lib/unittest/test/testmock/testpatch.py rename to Lib/test/test_unittest/testmock/testpatch.py index 8ab63a1317d3df..8ceb5d973e1aaf 100644 --- a/Lib/unittest/test/testmock/testpatch.py +++ b/Lib/test/test_unittest/testmock/testpatch.py @@ -7,8 +7,8 @@ from collections import OrderedDict import unittest -from unittest.test.testmock import support -from unittest.test.testmock.support import SomeClass, is_instance +from test.test_unittest.testmock import support +from test.test_unittest.testmock.support import SomeClass, is_instance from test.test_importlib.util import uncache from unittest.mock import ( @@ -669,7 +669,7 @@ def test_patch_dict_decorator_resolution(self): # the new dictionary during function call original = support.target.copy() - @patch.dict('unittest.test.testmock.support.target', {'bar': 'BAR'}) + @patch.dict('test.test_unittest.testmock.support.target', {'bar': 'BAR'}) def test(): self.assertEqual(support.target, {'foo': 'BAZ', 'bar': 'BAR'}) @@ -1614,7 +1614,7 @@ def test_patch_with_spec_mock_repr(self): def test_patch_nested_autospec_repr(self): - with patch('unittest.test.testmock.support', autospec=True) as m: + with patch('test.test_unittest.testmock.support', autospec=True) as m: self.assertIn(" name='support.SomeClass.wibble()'", repr(m.SomeClass.wibble())) self.assertIn(" name='support.SomeClass().wibble()'", @@ -1882,7 +1882,7 @@ def foo(x=0): with patch.object(foo, '__module__', "testpatch2"): self.assertEqual(foo.__module__, "testpatch2") - self.assertEqual(foo.__module__, 'unittest.test.testmock.testpatch') + self.assertEqual(foo.__module__, 'test.test_unittest.testmock.testpatch') with patch.object(foo, '__annotations__', dict([('s', 1, )])): self.assertEqual(foo.__annotations__, dict([('s', 1, )])) @@ -1917,16 +1917,16 @@ def test_dotted_but_module_not_loaded(self): # This exercises the AttributeError branch of _dot_lookup. # make sure it's there - import unittest.test.testmock.support + import test.test_unittest.testmock.support # now make sure it's not: with patch.dict('sys.modules'): - del sys.modules['unittest.test.testmock.support'] - del sys.modules['unittest.test.testmock'] - del sys.modules['unittest.test'] - del sys.modules['unittest'] + del sys.modules['test.test_unittest.testmock.support'] + del sys.modules['test.test_unittest.testmock'] + del sys.modules['test.test_unittest'] + del sys.modules['test'] # now make sure we can patch based on a dotted path: - @patch('unittest.test.testmock.support.X') + @patch('test.test_unittest.testmock.support.X') def test(mock): pass test() @@ -1943,7 +1943,7 @@ class Foo: def test_cant_set_kwargs_when_passing_a_mock(self): - @patch('unittest.test.testmock.support.X', new=object(), x=1) + @patch('test.test_unittest.testmock.support.X', new=object(), x=1) def test(): pass with self.assertRaises(TypeError): test() diff --git a/Lib/unittest/test/testmock/testsealable.py b/Lib/test/test_unittest/testmock/testsealable.py similarity index 100% rename from Lib/unittest/test/testmock/testsealable.py rename to Lib/test/test_unittest/testmock/testsealable.py diff --git a/Lib/unittest/test/testmock/testsentinel.py b/Lib/test/test_unittest/testmock/testsentinel.py similarity index 100% rename from Lib/unittest/test/testmock/testsentinel.py rename to Lib/test/test_unittest/testmock/testsentinel.py diff --git a/Lib/unittest/test/testmock/testwith.py b/Lib/test/test_unittest/testmock/testwith.py similarity index 99% rename from Lib/unittest/test/testmock/testwith.py rename to Lib/test/test_unittest/testmock/testwith.py index c74d49a63c8928..8dc8eb1137691f 100644 --- a/Lib/unittest/test/testmock/testwith.py +++ b/Lib/test/test_unittest/testmock/testwith.py @@ -1,7 +1,7 @@ import unittest from warnings import catch_warnings -from unittest.test.testmock.support import is_instance +from test.test_unittest.testmock.support import is_instance from unittest.mock import MagicMock, Mock, patch, sentinel, mock_open, call diff --git a/Lib/test/test_univnewlines.py b/Lib/test/test_univnewlines.py index b905491878001c..ed2e0970bac949 100644 --- a/Lib/test/test_univnewlines.py +++ b/Lib/test/test_univnewlines.py @@ -4,7 +4,6 @@ import unittest import os import sys -from test import support from test.support import os_helper diff --git a/Lib/test/test_unparse.py b/Lib/test/test_unparse.py index 969aa16678f493..f1f1dd5dc26be8 100644 --- a/Lib/test/test_unparse.py +++ b/Lib/test/test_unparse.py @@ -422,6 +422,12 @@ def test_invalid_fstring_backslash(self): def test_invalid_yield_from(self): self.check_invalid(ast.YieldFrom(value=None)) + def test_import_from_level_none(self): + tree = ast.ImportFrom(module='mod', names=[ast.alias(name='x')]) + self.assertEqual(ast.unparse(tree), "from mod import x") + tree = ast.ImportFrom(module='mod', names=[ast.alias(name='x')], level=None) + self.assertEqual(ast.unparse(tree), "from mod import x") + def test_docstrings(self): docstrings = ( 'this ends with double quote"', diff --git a/Lib/test/test_urllib2.py b/Lib/test/test_urllib2.py index 46a0ab1d83e60e..28f88412fdcaac 100644 --- a/Lib/test/test_urllib2.py +++ b/Lib/test/test_urllib2.py @@ -1,7 +1,6 @@ import unittest from test import support from test.support import os_helper -from test.support import socket_helper from test.support import warnings_helper from test import test_urllib @@ -1557,11 +1556,11 @@ def test_proxy_basic_auth(self): def test_basic_and_digest_auth_handlers(self): # HTTPDigestAuthHandler raised an exception if it couldn't handle a 40* - # response (http://python.org/sf/1479302), where it should instead + # response (https://bugs.python.org/issue1479302), where it should instead # return None to allow another handler (especially # HTTPBasicAuthHandler) to handle the response. - # Also (http://python.org/sf/14797027, RFC 2617 section 1.2), we must + # Also (https://bugs.python.org/issue14797027, RFC 2617 section 1.2), we must # try digest first (since it's the strongest auth scheme), so we record # order of calls here to check digest comes first: class RecordingOpenerDirector(OpenerDirector): diff --git a/Lib/test/test_uu.py b/Lib/test/test_uu.py index 316a04af1cdaa7..0493aae4fc67be 100644 --- a/Lib/test/test_uu.py +++ b/Lib/test/test_uu.py @@ -74,6 +74,7 @@ def test_encode(self): with self.assertRaises(TypeError): uu.encode(inp, out, "t1", 0o644, True) + @os_helper.skip_unless_working_chmod def test_decode(self): for backtick in True, False: inp = io.BytesIO(encodedtextwrapped(0o666, "t1", backtick=backtick)) @@ -199,6 +200,8 @@ def test_encode(self): s = fout.read() self.assertEqual(s, encodedtextwrapped(0o644, self.tmpin)) + # decode() calls chmod() + @os_helper.skip_unless_working_chmod def test_decode(self): with open(self.tmpin, 'wb') as f: f.write(encodedtextwrapped(0o644, self.tmpout)) @@ -211,6 +214,7 @@ def test_decode(self): self.assertEqual(s, plaintext) # XXX is there an xp way to verify the mode? + @os_helper.skip_unless_working_chmod def test_decode_filename(self): with open(self.tmpin, 'wb') as f: f.write(encodedtextwrapped(0o644, self.tmpout)) @@ -221,6 +225,7 @@ def test_decode_filename(self): s = f.read() self.assertEqual(s, plaintext) + @os_helper.skip_unless_working_chmod def test_decodetwice(self): # Verify that decode() will refuse to overwrite an existing file with open(self.tmpin, 'wb') as f: @@ -231,6 +236,7 @@ def test_decodetwice(self): with open(self.tmpin, 'rb') as f: self.assertRaises(uu.Error, uu.decode, f) + @os_helper.skip_unless_working_chmod def test_decode_mode(self): # Verify that decode() will set the given mode for the out_file expected_mode = 0o444 diff --git a/Lib/test/test_venv.py b/Lib/test/test_venv.py index 37b61a780cb07b..4359a4e3ebe861 100644 --- a/Lib/test/test_venv.py +++ b/Lib/test/test_venv.py @@ -5,6 +5,7 @@ Licensed to the PSF under a contributor agreement. """ +import contextlib import ensurepip import os import os.path @@ -14,8 +15,9 @@ import struct import subprocess import sys +import sysconfig import tempfile -from test.support import (captured_stdout, captured_stderr, requires_zlib, +from test.support import (captured_stdout, captured_stderr, skip_if_broken_multiprocessing_synchronize, verbose, requires_subprocess, is_emscripten, is_wasi, requires_venv_with_pip) @@ -253,18 +255,49 @@ def test_prefixes(self): self.assertEqual(out.strip(), expected.encode(), prefix) @requireVenvCreate - def test_sysconfig_preferred_and_default_scheme(self): + def test_sysconfig(self): """ - Test that the sysconfig preferred(prefix) and default scheme is venv. + Test that the sysconfig functions work in a virtual environment. """ rmtree(self.env_dir) - self.run_with_capture(venv.create, self.env_dir) + self.run_with_capture(venv.create, self.env_dir, symlinks=False) envpy = os.path.join(self.env_dir, self.bindir, self.exe) cmd = [envpy, '-c', None] - for call in ('get_preferred_scheme("prefix")', 'get_default_scheme()'): - cmd[2] = 'import sysconfig; print(sysconfig.%s)' % call - out, err = check_output(cmd) - self.assertEqual(out.strip(), b'venv', err) + for call, expected in ( + # installation scheme + ('get_preferred_scheme("prefix")', 'venv'), + ('get_default_scheme()', 'venv'), + # build environment + ('is_python_build()', str(sysconfig.is_python_build())), + ('get_makefile_filename()', sysconfig.get_makefile_filename()), + ('get_config_h_filename()', sysconfig.get_config_h_filename())): + with self.subTest(call): + cmd[2] = 'import sysconfig; print(sysconfig.%s)' % call + out, err = check_output(cmd) + self.assertEqual(out.strip(), expected.encode(), err) + + @requireVenvCreate + @unittest.skipUnless(can_symlink(), 'Needs symlinks') + def test_sysconfig_symlinks(self): + """ + Test that the sysconfig functions work in a virtual environment. + """ + rmtree(self.env_dir) + self.run_with_capture(venv.create, self.env_dir, symlinks=True) + envpy = os.path.join(self.env_dir, self.bindir, self.exe) + cmd = [envpy, '-c', None] + for call, expected in ( + # installation scheme + ('get_preferred_scheme("prefix")', 'venv'), + ('get_default_scheme()', 'venv'), + # build environment + ('is_python_build()', str(sysconfig.is_python_build())), + ('get_makefile_filename()', sysconfig.get_makefile_filename()), + ('get_config_h_filename()', sysconfig.get_config_h_filename())): + with self.subTest(call): + cmd[2] = 'import sysconfig; print(sysconfig.%s)' % call + out, err = check_output(cmd) + self.assertEqual(out.strip(), expected.encode(), err) if sys.platform == 'win32': ENV_SUBDIRS = ( @@ -558,16 +591,10 @@ def do_test_with_pip(self, system_site_packages): # Actually run the create command with all that unhelpful # config in place to ensure we ignore it - try: + with self.nicer_error(): self.run_with_capture(venv.create, self.env_dir, system_site_packages=system_site_packages, with_pip=True) - except subprocess.CalledProcessError as exc: - # The output this produces can be a little hard to read, - # but at least it has all the details - details = exc.output.decode(errors="replace") - msg = "{}\n\n**Subprocess Output**\n{}" - self.fail(msg.format(exc, details)) # Ensure pip is available in the virtual environment envpy = os.path.join(os.path.realpath(self.env_dir), self.bindir, self.exe) # Ignore DeprecationWarning since pip code is not part of Python @@ -588,13 +615,14 @@ def do_test_with_pip(self, system_site_packages): # Check the private uninstall command provided for the Windows # installers works (at least in a virtual environment) with EnvironmentVarGuard() as envvars: - # It seems ensurepip._uninstall calls subprocesses which do not - # inherit the interpreter settings. - envvars["PYTHONWARNINGS"] = "ignore" - out, err = check_output([envpy, - '-W', 'ignore::DeprecationWarning', - '-W', 'ignore::ImportWarning', '-I', - '-m', 'ensurepip._uninstall']) + with self.nicer_error(): + # It seems ensurepip._uninstall calls subprocesses which do not + # inherit the interpreter settings. + envvars["PYTHONWARNINGS"] = "ignore" + out, err = check_output([envpy, + '-W', 'ignore::DeprecationWarning', + '-W', 'ignore::ImportWarning', '-I', + '-m', 'ensurepip._uninstall']) # We force everything to text, so unittest gives the detailed diff # if we get unexpected results err = err.decode("latin-1") # Force to text, prevent decoding errors @@ -620,10 +648,30 @@ def do_test_with_pip(self, system_site_packages): if not system_site_packages: self.assert_pip_not_installed() + @contextlib.contextmanager + def nicer_error(self): + """ + Capture output from a failed subprocess for easier debugging. + + The output this handler produces can be a little hard to read, + but at least it has all the details. + """ + try: + yield + except subprocess.CalledProcessError as exc: + out = exc.output.decode(errors="replace") + err = exc.stderr.decode(errors="replace") + self.fail( + f"{exc}\n\n" + f"**Subprocess Output**\n{out}\n\n" + f"**Subprocess Error**\n{err}" + ) + @requires_venv_with_pip() def test_with_pip(self): self.do_test_with_pip(False) self.do_test_with_pip(True) + if __name__ == "__main__": unittest.main() diff --git a/Lib/test/test_wait3.py b/Lib/test/test_wait3.py index 4ec7690ac19bbf..eae885a61300be 100644 --- a/Lib/test/test_wait3.py +++ b/Lib/test/test_wait3.py @@ -4,7 +4,6 @@ import os import subprocess import sys -import time import unittest from test.fork_wait import ForkWait from test import support @@ -20,14 +19,12 @@ def wait_impl(self, cpid, *, exitcode): # This many iterations can be required, since some previously run # tests (e.g. test_ctypes) could have spawned a lot of children # very quickly. - deadline = time.monotonic() + support.SHORT_TIMEOUT - while time.monotonic() <= deadline: + for _ in support.sleeping_retry(support.SHORT_TIMEOUT): # wait3() shouldn't hang, but some of the buildbots seem to hang # in the forking tests. This is an attempt to fix the problem. spid, status, rusage = os.wait3(os.WNOHANG) if spid == cpid: break - time.sleep(0.1) self.assertEqual(spid, cpid) self.assertEqual(os.waitstatus_to_exitcode(status), exitcode) diff --git a/Lib/test/test_wait4.py b/Lib/test/test_wait4.py index 24f1aaec60c56b..67afab1d6f2e3c 100644 --- a/Lib/test/test_wait4.py +++ b/Lib/test/test_wait4.py @@ -2,7 +2,6 @@ """ import os -import time import sys import unittest from test.fork_wait import ForkWait @@ -22,14 +21,12 @@ def wait_impl(self, cpid, *, exitcode): # Issue #11185: wait4 is broken on AIX and will always return 0 # with WNOHANG. option = 0 - deadline = time.monotonic() + support.SHORT_TIMEOUT - while time.monotonic() <= deadline: + for _ in support.sleeping_retry(support.SHORT_TIMEOUT): # wait4() shouldn't hang, but some of the buildbots seem to hang # in the forking tests. This is an attempt to fix the problem. spid, status, rusage = os.wait4(cpid, option) if spid == cpid: break - time.sleep(0.1) self.assertEqual(spid, cpid) self.assertEqual(os.waitstatus_to_exitcode(status), exitcode) self.assertTrue(rusage) diff --git a/Lib/test/test_warnings/__init__.py b/Lib/test/test_warnings/__init__.py index b00ddd5df2f256..9e473e923cad03 100644 --- a/Lib/test/test_warnings/__init__.py +++ b/Lib/test/test_warnings/__init__.py @@ -487,7 +487,14 @@ def test_warn_explicit_non_ascii_filename(self): module=self.module) as w: self.module.resetwarnings() self.module.filterwarnings("always", category=UserWarning) - for filename in ("nonascii\xe9\u20ac", "surrogate\udc80"): + filenames = ["nonascii\xe9\u20ac"] + if not support.is_emscripten: + # JavaScript does not like surrogates. + # Invalid UTF-8 leading byte 0x80 encountered when + # deserializing a UTF-8 string in wasm memory to a JS + # string! + filenames.append("surrogate\udc80") + for filename in filenames: try: os.fsencode(filename) except UnicodeEncodeError: diff --git a/Lib/test/test_wave.py b/Lib/test/test_wave.py index 0cc94e88b437d7..35660fd4d34e18 100644 --- a/Lib/test/test_wave.py +++ b/Lib/test/test_wave.py @@ -77,6 +77,33 @@ class WavePCM24Test(WaveTest, unittest.TestCase): frames = wave._byteswap(frames, 3) +class WavePCM24ExtTest(WaveTest, unittest.TestCase): + sndfilename = 'pluck-pcm24-ext.wav' + sndfilenframes = 3307 + nchannels = 2 + sampwidth = 3 + framerate = 11025 + nframes = 48 + comptype = 'NONE' + compname = 'not compressed' + frames = bytes.fromhex("""\ + 022D65FFEB9D 4B5A0F00FA54 3113C304EE2B 80DCD6084303 \ + CBDEC006B261 48A99803F2F8 BFE82401B07D 036BFBFE7B5D \ + B85756FA3EC9 B4B055F3502B 299830EBCB62 1A5CA7E6D99A \ + EDFA3EE491BD C625EBE27884 0E05A9E0B6CF EF2929E02922 \ + 5758D8E27067 FB3557E83E16 1377BFEF8402 D82C5BF7272A \ + 978F16FB7745 F5F865FC1013 086635FB9C4E DF30FCFB40EE \ + 117FE0FA3438 3EE6B8FB5AC3 BC77A3FCB2F4 66D6DAFF5F32 \ + CF13B9041275 431D69097A8C C1BB600EC74E 5120B912A2BA \ + EEDF641754C0 8207001664B7 7FFFFF14453F 8000001294E6 \ + 499C1B0EB3B2 52B73E0DBCA0 EFB2B20F5FD8 CE3CDB0FBE12 \ + E4B49C0CEA2D 6344A80A5A7C 08C8FE0A1FFE 2BB9860B0A0E \ + 51486F0E44E1 8BCC64113B05 B6F4EC0EEB36 4413170A5B48 \ + """) + if sys.byteorder != 'big': + frames = wave._byteswap(frames, 3) + + class WavePCM32Test(WaveTest, unittest.TestCase): sndfilename = 'pluck-pcm32.wav' sndfilenframes = 3307 @@ -106,7 +133,8 @@ class WavePCM32Test(WaveTest, unittest.TestCase): class MiscTestCase(unittest.TestCase): def test__all__(self): - support.check__all__(self, wave, not_exported={'WAVE_FORMAT_PCM'}) + not_exported = {'WAVE_FORMAT_PCM', 'WAVE_FORMAT_EXTENSIBLE'} + support.check__all__(self, wave, not_exported=not_exported) class WaveLowLevelTest(unittest.TestCase): diff --git a/Lib/test/test_weakref.py b/Lib/test/test_weakref.py index 702bb4495e7499..3a9573d6e70559 100644 --- a/Lib/test/test_weakref.py +++ b/Lib/test/test_weakref.py @@ -2154,6 +2154,17 @@ def test_atexit(self): self.assertTrue(b'ZeroDivisionError' in err) +class ModuleTestCase(unittest.TestCase): + def test_names(self): + for name in ('ReferenceType', 'ProxyType', 'CallableProxyType', + 'WeakMethod', 'WeakSet', 'WeakKeyDictionary', 'WeakValueDictionary'): + obj = getattr(weakref, name) + if name != 'WeakSet': + self.assertEqual(obj.__module__, 'weakref') + self.assertEqual(obj.__name__, name) + self.assertEqual(obj.__qualname__, name) + + libreftest = """ Doctest for examples in the library reference: weakref.rst >>> from test.support import gc_collect diff --git a/Lib/test/test_wmi.py b/Lib/test/test_wmi.py new file mode 100644 index 00000000000000..3f579595290524 --- /dev/null +++ b/Lib/test/test_wmi.py @@ -0,0 +1,75 @@ +# Test the internal _wmi module on Windows +# This is used by the platform module, and potentially others + +import sys +import unittest +from test.support import import_helper, requires_resource + + +# Do this first so test will be skipped if module doesn't exist +_wmi = import_helper.import_module('_wmi', required_on=['win']) + + +class WmiTests(unittest.TestCase): + def test_wmi_query_os_version(self): + r = _wmi.exec_query("SELECT Version FROM Win32_OperatingSystem").split("\0") + self.assertEqual(1, len(r)) + k, eq, v = r[0].partition("=") + self.assertEqual("=", eq, r[0]) + self.assertEqual("Version", k, r[0]) + # Best we can check for the version is that it's digits, dot, digits, anything + # Otherwise, we are likely checking the result of the query against itself + self.assertRegex(v, r"\d+\.\d+.+$", r[0]) + + def test_wmi_query_repeated(self): + # Repeated queries should not break + for _ in range(10): + self.test_wmi_query_os_version() + + def test_wmi_query_error(self): + # Invalid queries fail with OSError + try: + _wmi.exec_query("SELECT InvalidColumnName FROM InvalidTableName") + except OSError as ex: + if ex.winerror & 0xFFFFFFFF == 0x80041010: + # This is the expected error code. All others should fail the test + return + self.fail("Expected OSError") + + def test_wmi_query_repeated_error(self): + for _ in range(10): + self.test_wmi_query_error() + + def test_wmi_query_not_select(self): + # Queries other than SELECT are blocked to avoid potential exploits + with self.assertRaises(ValueError): + _wmi.exec_query("not select, just in case someone tries something") + + @requires_resource('cpu') + def test_wmi_query_overflow(self): + # Ensure very big queries fail + # Test multiple times to ensure consistency + for _ in range(2): + with self.assertRaises(OSError): + _wmi.exec_query("SELECT * FROM CIM_DataFile") + + def test_wmi_query_multiple_rows(self): + # Multiple instances should have an extra null separator + r = _wmi.exec_query("SELECT ProcessId FROM Win32_Process WHERE ProcessId < 1000") + self.assertFalse(r.startswith("\0"), r) + self.assertFalse(r.endswith("\0"), r) + it = iter(r.split("\0")) + try: + while True: + self.assertRegex(next(it), r"ProcessId=\d+") + self.assertEqual("", next(it)) + except StopIteration: + pass + + def test_wmi_query_threads(self): + from concurrent.futures import ThreadPoolExecutor + query = "SELECT ProcessId FROM Win32_Process WHERE ProcessId < 1000" + with ThreadPoolExecutor(4) as pool: + task = [pool.submit(_wmi.exec_query, query) for _ in range(32)] + for t in task: + self.assertRegex(t.result(), "ProcessId=") diff --git a/Lib/test/test_xml_etree.py b/Lib/test/test_xml_etree.py index aea77b192c1006..ee3154e99f32b6 100644 --- a/Lib/test/test_xml_etree.py +++ b/Lib/test/test_xml_etree.py @@ -2333,35 +2333,6 @@ def test___init__(self): self.assertIsNot(element_foo.attrib, attrib) self.assertNotEqual(element_foo.attrib, attrib) - def test_copy(self): - # Only run this test if Element.copy() is defined. - if "copy" not in dir(ET.Element): - raise unittest.SkipTest("Element.copy() not present") - - element_foo = ET.Element("foo", { "zix": "wyp" }) - element_foo.append(ET.Element("bar", { "baz": "qix" })) - - with self.assertWarns(DeprecationWarning): - element_foo2 = element_foo.copy() - - # elements are not the same - self.assertIsNot(element_foo2, element_foo) - - # string attributes are equal - self.assertEqual(element_foo2.tag, element_foo.tag) - self.assertEqual(element_foo2.text, element_foo.text) - self.assertEqual(element_foo2.tail, element_foo.tail) - - # number of children is the same - self.assertEqual(len(element_foo2), len(element_foo)) - - # children are the same - for (child1, child2) in itertools.zip_longest(element_foo, element_foo2): - self.assertIs(child1, child2) - - # attrib is a copy - self.assertEqual(element_foo2.attrib, element_foo.attrib) - def test___copy__(self): element_foo = ET.Element("foo", { "zix": "wyp" }) element_foo.append(ET.Element("bar", { "baz": "qix" })) @@ -2734,6 +2705,20 @@ def test_findtext_with_error(self): except ZeroDivisionError: pass + def test_findtext_with_falsey_text_attribute(self): + root_elem = ET.Element('foo') + sub_elem = ET.SubElement(root_elem, 'bar') + falsey = ["", 0, False, [], (), {}] + for val in falsey: + sub_elem.text = val + self.assertEqual(root_elem.findtext('./bar'), val) + + def test_findtext_with_none_text_attribute(self): + root_elem = ET.Element('foo') + sub_elem = ET.SubElement(root_elem, 'bar') + sub_elem.text = None + self.assertEqual(root_elem.findtext('./bar'), '') + def test_findall_with_mutating(self): e = ET.Element('foo') e.extend([ET.Element('bar')]) @@ -3739,13 +3724,7 @@ def test_write_to_filename_as_unicode(self): tree = ET.ElementTree(ET.XML('''<site>\xf8</site>''')) tree.write(TESTFN, encoding='unicode') with open(TESTFN, 'rb') as f: - data = f.read() - expected = "<site>\xf8</site>".encode(encoding, 'xmlcharrefreplace') - if encoding.lower() in ('utf-8', 'ascii'): - self.assertEqual(data, expected) - else: - self.assertIn(b"<?xml version='1.0' encoding=", data) - self.assertIn(expected, data) + self.assertEqual(f.read(), b"<site>\xc3\xb8</site>") def test_write_to_text_file(self): self.addCleanup(os_helper.unlink, TESTFN) @@ -3760,17 +3739,13 @@ def test_write_to_text_file(self): tree.write(f, encoding='unicode') self.assertFalse(f.closed) with open(TESTFN, 'rb') as f: - self.assertEqual(f.read(), convlinesep( - b'''<?xml version='1.0' encoding='ascii'?>\n''' - b'''<site>&#248;</site>''')) + self.assertEqual(f.read(), b'''<site>&#248;</site>''') with open(TESTFN, 'w', encoding='ISO-8859-1') as f: tree.write(f, encoding='unicode') self.assertFalse(f.closed) with open(TESTFN, 'rb') as f: - self.assertEqual(f.read(), convlinesep( - b'''<?xml version='1.0' encoding='ISO-8859-1'?>\n''' - b'''<site>\xf8</site>''')) + self.assertEqual(f.read(), b'''<site>\xf8</site>''') def test_write_to_binary_file(self): self.addCleanup(os_helper.unlink, TESTFN) diff --git a/Lib/test/test_xmlrpc.py b/Lib/test/test_xmlrpc.py index 6c4601ddaddcbd..9ff5545f786a32 100644 --- a/Lib/test/test_xmlrpc.py +++ b/Lib/test/test_xmlrpc.py @@ -289,6 +289,16 @@ def test_load_extension_types(self): check('<bigdecimal>9876543210.0123456789</bigdecimal>', decimal.Decimal('9876543210.0123456789')) + def test_limit_int(self): + check = self.check_loads + maxdigits = 5000 + with support.adjust_int_max_str_digits(maxdigits): + s = '1' * (maxdigits + 1) + with self.assertRaises(ValueError): + check(f'<int>{s}</int>', None) + with self.assertRaises(ValueError): + check(f'<biginteger>{s}</biginteger>', None) + def test_get_host_info(self): # see bug #3613, this raised a TypeError transp = xmlrpc.client.Transport() diff --git a/Lib/test/test_yield_from.py b/Lib/test/test_yield_from.py index d105d8c6eb513c..1a60357a1bcd62 100644 --- a/Lib/test/test_yield_from.py +++ b/Lib/test/test_yield_from.py @@ -1049,6 +1049,533 @@ def outer(): g.send((1, 2, 3, 4)) self.assertEqual(v, (1, 2, 3, 4)) +class TestInterestingEdgeCases(unittest.TestCase): + + def assert_stop_iteration(self, iterator): + with self.assertRaises(StopIteration) as caught: + next(iterator) + self.assertIsNone(caught.exception.value) + self.assertIsNone(caught.exception.__context__) + + def assert_generator_raised_stop_iteration(self): + return self.assertRaisesRegex(RuntimeError, r"^generator raised StopIteration$") + + def assert_generator_ignored_generator_exit(self): + return self.assertRaisesRegex(RuntimeError, r"^generator ignored GeneratorExit$") + + def test_close_and_throw_work(self): + + yielded_first = object() + yielded_second = object() + returned = object() + + def inner(): + yield yielded_first + yield yielded_second + return returned + + def outer(): + return (yield from inner()) + + with self.subTest("close"): + g = outer() + self.assertIs(next(g), yielded_first) + g.close() + self.assert_stop_iteration(g) + + with self.subTest("throw GeneratorExit"): + g = outer() + self.assertIs(next(g), yielded_first) + thrown = GeneratorExit() + with self.assertRaises(GeneratorExit) as caught: + g.throw(thrown) + self.assertIs(caught.exception, thrown) + self.assertIsNone(caught.exception.__context__) + self.assert_stop_iteration(g) + + with self.subTest("throw StopIteration"): + g = outer() + self.assertIs(next(g), yielded_first) + thrown = StopIteration() + # PEP 479: + with self.assert_generator_raised_stop_iteration() as caught: + g.throw(thrown) + self.assertIs(caught.exception.__context__, thrown) + self.assertIsNone(caught.exception.__context__.__context__) + self.assert_stop_iteration(g) + + with self.subTest("throw BaseException"): + g = outer() + self.assertIs(next(g), yielded_first) + thrown = BaseException() + with self.assertRaises(BaseException) as caught: + g.throw(thrown) + self.assertIs(caught.exception, thrown) + self.assertIsNone(caught.exception.__context__) + self.assert_stop_iteration(g) + + with self.subTest("throw Exception"): + g = outer() + self.assertIs(next(g), yielded_first) + thrown = Exception() + with self.assertRaises(Exception) as caught: + g.throw(thrown) + self.assertIs(caught.exception, thrown) + self.assertIsNone(caught.exception.__context__) + self.assert_stop_iteration(g) + + def test_close_and_throw_raise_generator_exit(self): + + yielded_first = object() + yielded_second = object() + returned = object() + + def inner(): + try: + yield yielded_first + yield yielded_second + return returned + finally: + raise raised + + def outer(): + return (yield from inner()) + + with self.subTest("close"): + g = outer() + self.assertIs(next(g), yielded_first) + raised = GeneratorExit() + # GeneratorExit is suppressed. This is consistent with PEP 342: + # https://peps.python.org/pep-0342/#new-generator-method-close + g.close() + self.assert_stop_iteration(g) + + with self.subTest("throw GeneratorExit"): + g = outer() + self.assertIs(next(g), yielded_first) + raised = GeneratorExit() + thrown = GeneratorExit() + with self.assertRaises(GeneratorExit) as caught: + g.throw(thrown) + # The raised GeneratorExit is suppressed, but the thrown one + # propagates. This is consistent with PEP 380: + # https://peps.python.org/pep-0380/#proposal + self.assertIs(caught.exception, thrown) + self.assertIsNone(caught.exception.__context__) + self.assert_stop_iteration(g) + + with self.subTest("throw StopIteration"): + g = outer() + self.assertIs(next(g), yielded_first) + raised = GeneratorExit() + thrown = StopIteration() + with self.assertRaises(GeneratorExit) as caught: + g.throw(thrown) + self.assertIs(caught.exception, raised) + self.assertIs(caught.exception.__context__, thrown) + self.assertIsNone(caught.exception.__context__.__context__) + self.assert_stop_iteration(g) + + with self.subTest("throw BaseException"): + g = outer() + self.assertIs(next(g), yielded_first) + raised = GeneratorExit() + thrown = BaseException() + with self.assertRaises(GeneratorExit) as caught: + g.throw(thrown) + self.assertIs(caught.exception, raised) + self.assertIs(caught.exception.__context__, thrown) + self.assertIsNone(caught.exception.__context__.__context__) + self.assert_stop_iteration(g) + + with self.subTest("throw Exception"): + g = outer() + self.assertIs(next(g), yielded_first) + raised = GeneratorExit() + thrown = Exception() + with self.assertRaises(GeneratorExit) as caught: + g.throw(thrown) + self.assertIs(caught.exception, raised) + self.assertIs(caught.exception.__context__, thrown) + self.assertIsNone(caught.exception.__context__.__context__) + self.assert_stop_iteration(g) + + def test_close_and_throw_raise_stop_iteration(self): + + yielded_first = object() + yielded_second = object() + returned = object() + + def inner(): + try: + yield yielded_first + yield yielded_second + return returned + finally: + raise raised + + def outer(): + return (yield from inner()) + + with self.subTest("close"): + g = outer() + self.assertIs(next(g), yielded_first) + raised = StopIteration() + # PEP 479: + with self.assert_generator_raised_stop_iteration() as caught: + g.close() + self.assertIs(caught.exception.__context__, raised) + self.assertIsInstance(caught.exception.__context__.__context__, GeneratorExit) + self.assertIsNone(caught.exception.__context__.__context__.__context__) + self.assert_stop_iteration(g) + + with self.subTest("throw GeneratorExit"): + g = outer() + self.assertIs(next(g), yielded_first) + raised = StopIteration() + thrown = GeneratorExit() + # PEP 479: + with self.assert_generator_raised_stop_iteration() as caught: + g.throw(thrown) + self.assertIs(caught.exception.__context__, raised) + # This isn't the same GeneratorExit as thrown! It's the one created + # by calling inner.close(): + self.assertIsInstance(caught.exception.__context__.__context__, GeneratorExit) + self.assertIsNone(caught.exception.__context__.__context__.__context__) + self.assert_stop_iteration(g) + + with self.subTest("throw StopIteration"): + g = outer() + self.assertIs(next(g), yielded_first) + raised = StopIteration() + thrown = StopIteration() + # PEP 479: + with self.assert_generator_raised_stop_iteration() as caught: + g.throw(thrown) + self.assertIs(caught.exception.__context__, raised) + self.assertIs(caught.exception.__context__.__context__, thrown) + self.assertIsNone(caught.exception.__context__.__context__.__context__) + self.assert_stop_iteration(g) + + with self.subTest("throw BaseException"): + g = outer() + self.assertIs(next(g), yielded_first) + raised = StopIteration() + thrown = BaseException() + # PEP 479: + with self.assert_generator_raised_stop_iteration() as caught: + g.throw(thrown) + self.assertIs(caught.exception.__context__, raised) + self.assertIs(caught.exception.__context__.__context__, thrown) + self.assertIsNone(caught.exception.__context__.__context__.__context__) + self.assert_stop_iteration(g) + + with self.subTest("throw Exception"): + g = outer() + self.assertIs(next(g), yielded_first) + raised = StopIteration() + thrown = Exception() + # PEP 479: + with self.assert_generator_raised_stop_iteration() as caught: + g.throw(thrown) + self.assertIs(caught.exception.__context__, raised) + self.assertIs(caught.exception.__context__.__context__, thrown) + self.assertIsNone(caught.exception.__context__.__context__.__context__) + self.assert_stop_iteration(g) + + def test_close_and_throw_raise_base_exception(self): + + yielded_first = object() + yielded_second = object() + returned = object() + + def inner(): + try: + yield yielded_first + yield yielded_second + return returned + finally: + raise raised + + def outer(): + return (yield from inner()) + + with self.subTest("close"): + g = outer() + self.assertIs(next(g), yielded_first) + raised = BaseException() + with self.assertRaises(BaseException) as caught: + g.close() + self.assertIs(caught.exception, raised) + self.assertIsInstance(caught.exception.__context__, GeneratorExit) + self.assertIsNone(caught.exception.__context__.__context__) + self.assert_stop_iteration(g) + + with self.subTest("throw GeneratorExit"): + g = outer() + self.assertIs(next(g), yielded_first) + raised = BaseException() + thrown = GeneratorExit() + with self.assertRaises(BaseException) as caught: + g.throw(thrown) + self.assertIs(caught.exception, raised) + # This isn't the same GeneratorExit as thrown! It's the one created + # by calling inner.close(): + self.assertIsInstance(caught.exception.__context__, GeneratorExit) + self.assertIsNone(caught.exception.__context__.__context__) + self.assert_stop_iteration(g) + + with self.subTest("throw StopIteration"): + g = outer() + self.assertIs(next(g), yielded_first) + raised = BaseException() + thrown = StopIteration() + with self.assertRaises(BaseException) as caught: + g.throw(thrown) + self.assertIs(caught.exception, raised) + self.assertIs(caught.exception.__context__, thrown) + self.assertIsNone(caught.exception.__context__.__context__) + self.assert_stop_iteration(g) + + with self.subTest("throw BaseException"): + g = outer() + self.assertIs(next(g), yielded_first) + raised = BaseException() + thrown = BaseException() + with self.assertRaises(BaseException) as caught: + g.throw(thrown) + self.assertIs(caught.exception, raised) + self.assertIs(caught.exception.__context__, thrown) + self.assertIsNone(caught.exception.__context__.__context__) + self.assert_stop_iteration(g) + + with self.subTest("throw Exception"): + g = outer() + self.assertIs(next(g), yielded_first) + raised = BaseException() + thrown = Exception() + with self.assertRaises(BaseException) as caught: + g.throw(thrown) + self.assertIs(caught.exception, raised) + self.assertIs(caught.exception.__context__, thrown) + self.assertIsNone(caught.exception.__context__.__context__) + self.assert_stop_iteration(g) + + def test_close_and_throw_raise_exception(self): + + yielded_first = object() + yielded_second = object() + returned = object() + + def inner(): + try: + yield yielded_first + yield yielded_second + return returned + finally: + raise raised + + def outer(): + return (yield from inner()) + + with self.subTest("close"): + g = outer() + self.assertIs(next(g), yielded_first) + raised = Exception() + with self.assertRaises(Exception) as caught: + g.close() + self.assertIs(caught.exception, raised) + self.assertIsInstance(caught.exception.__context__, GeneratorExit) + self.assertIsNone(caught.exception.__context__.__context__) + self.assert_stop_iteration(g) + + with self.subTest("throw GeneratorExit"): + g = outer() + self.assertIs(next(g), yielded_first) + raised = Exception() + thrown = GeneratorExit() + with self.assertRaises(Exception) as caught: + g.throw(thrown) + self.assertIs(caught.exception, raised) + # This isn't the same GeneratorExit as thrown! It's the one created + # by calling inner.close(): + self.assertIsInstance(caught.exception.__context__, GeneratorExit) + self.assertIsNone(caught.exception.__context__.__context__) + self.assert_stop_iteration(g) + + with self.subTest("throw StopIteration"): + g = outer() + self.assertIs(next(g), yielded_first) + raised = Exception() + thrown = StopIteration() + with self.assertRaises(Exception) as caught: + g.throw(thrown) + self.assertIs(caught.exception, raised) + self.assertIs(caught.exception.__context__, thrown) + self.assertIsNone(caught.exception.__context__.__context__) + self.assert_stop_iteration(g) + + with self.subTest("throw BaseException"): + g = outer() + self.assertIs(next(g), yielded_first) + raised = Exception() + thrown = BaseException() + with self.assertRaises(Exception) as caught: + g.throw(thrown) + self.assertIs(caught.exception, raised) + self.assertIs(caught.exception.__context__, thrown) + self.assertIsNone(caught.exception.__context__.__context__) + self.assert_stop_iteration(g) + + with self.subTest("throw Exception"): + g = outer() + self.assertIs(next(g), yielded_first) + raised = Exception() + thrown = Exception() + with self.assertRaises(Exception) as caught: + g.throw(thrown) + self.assertIs(caught.exception, raised) + self.assertIs(caught.exception.__context__, thrown) + self.assertIsNone(caught.exception.__context__.__context__) + self.assert_stop_iteration(g) + + def test_close_and_throw_yield(self): + + yielded_first = object() + yielded_second = object() + returned = object() + + def inner(): + try: + yield yielded_first + finally: + yield yielded_second + return returned + + def outer(): + return (yield from inner()) + + with self.subTest("close"): + g = outer() + self.assertIs(next(g), yielded_first) + # No chaining happens. This is consistent with PEP 342: + # https://peps.python.org/pep-0342/#new-generator-method-close + with self.assert_generator_ignored_generator_exit() as caught: + g.close() + self.assertIsNone(caught.exception.__context__) + self.assert_stop_iteration(g) + + with self.subTest("throw GeneratorExit"): + g = outer() + self.assertIs(next(g), yielded_first) + thrown = GeneratorExit() + # No chaining happens. This is consistent with PEP 342: + # https://peps.python.org/pep-0342/#new-generator-method-close + with self.assert_generator_ignored_generator_exit() as caught: + g.throw(thrown) + self.assertIsNone(caught.exception.__context__) + self.assert_stop_iteration(g) + + with self.subTest("throw StopIteration"): + g = outer() + self.assertIs(next(g), yielded_first) + thrown = StopIteration() + self.assertEqual(g.throw(thrown), yielded_second) + # PEP 479: + with self.assert_generator_raised_stop_iteration() as caught: + next(g) + self.assertIs(caught.exception.__context__, thrown) + self.assertIsNone(caught.exception.__context__.__context__) + self.assert_stop_iteration(g) + + with self.subTest("throw BaseException"): + g = outer() + self.assertIs(next(g), yielded_first) + thrown = BaseException() + self.assertEqual(g.throw(thrown), yielded_second) + with self.assertRaises(BaseException) as caught: + next(g) + self.assertIs(caught.exception, thrown) + self.assertIsNone(caught.exception.__context__) + self.assert_stop_iteration(g) + + with self.subTest("throw Exception"): + g = outer() + self.assertIs(next(g), yielded_first) + thrown = Exception() + self.assertEqual(g.throw(thrown), yielded_second) + with self.assertRaises(Exception) as caught: + next(g) + self.assertIs(caught.exception, thrown) + self.assertIsNone(caught.exception.__context__) + self.assert_stop_iteration(g) + + def test_close_and_throw_return(self): + + yielded_first = object() + yielded_second = object() + returned = object() + + def inner(): + try: + yield yielded_first + yield yielded_second + finally: + return returned + + def outer(): + return (yield from inner()) + + with self.subTest("close"): + g = outer() + self.assertIs(next(g), yielded_first) + # StopIteration is suppressed. This is consistent with PEP 342: + # https://peps.python.org/pep-0342/#new-generator-method-close + g.close() + self.assert_stop_iteration(g) + + with self.subTest("throw GeneratorExit"): + g = outer() + self.assertIs(next(g), yielded_first) + thrown = GeneratorExit() + # StopIteration is suppressed. This is consistent with PEP 342: + # https://peps.python.org/pep-0342/#new-generator-method-close + with self.assertRaises(GeneratorExit) as caught: + g.throw(thrown) + self.assertIs(caught.exception, thrown) + self.assertIsNone(caught.exception.__context__) + self.assert_stop_iteration(g) + + with self.subTest("throw StopIteration"): + g = outer() + self.assertIs(next(g), yielded_first) + thrown = StopIteration() + with self.assertRaises(StopIteration) as caught: + g.throw(thrown) + self.assertIs(caught.exception.value, returned) + self.assertIsNone(caught.exception.__context__) + self.assert_stop_iteration(g) + + with self.subTest("throw BaseException"): + g = outer() + self.assertIs(next(g), yielded_first) + thrown = BaseException() + with self.assertRaises(StopIteration) as caught: + g.throw(thrown) + self.assertIs(caught.exception.value, returned) + self.assertIsNone(caught.exception.__context__) + self.assert_stop_iteration(g) + + with self.subTest("throw Exception"): + g = outer() + self.assertIs(next(g), yielded_first) + thrown = Exception() + with self.assertRaises(StopIteration) as caught: + g.throw(thrown) + self.assertIs(caught.exception.value, returned) + self.assertIsNone(caught.exception.__context__) + self.assert_stop_iteration(g) + if __name__ == '__main__': unittest.main() diff --git a/Lib/test/test_zipapp.py b/Lib/test/test_zipapp.py index d135c68865812f..f1c6b2d97621ee 100644 --- a/Lib/test/test_zipapp.py +++ b/Lib/test/test_zipapp.py @@ -9,6 +9,7 @@ import zipapp import zipfile from test.support import requires_zlib +from test.support import os_helper from unittest.mock import patch @@ -317,6 +318,7 @@ def test_content_of_copied_archive(self): # (Unix only) tests that archives with shebang lines are made executable @unittest.skipIf(sys.platform == 'win32', 'Windows does not support an executable bit') + @os_helper.skip_unless_working_chmod def test_shebang_is_executable(self): # Test that an archive with a shebang line is made executable. source = self.tmpdir / 'source' diff --git a/Lib/test/test_zipfile.py b/Lib/test/test_zipfile.py index f4c11d88c8a09f..6f6f4bc26b0d40 100644 --- a/Lib/test/test_zipfile.py +++ b/Lib/test/test_zipfile.py @@ -124,8 +124,9 @@ def zip_test(self, f, compression, compresslevel=None): self.assertEqual(info.filename, nm) self.assertEqual(info.file_size, len(self.data)) - # Check that testzip doesn't raise an exception - zipfp.testzip() + # Check that testzip thinks the archive is ok + # (it returns None if all contents could be read properly) + self.assertIsNone(zipfp.testzip()) def test_basic(self): for f in get_files(self): @@ -748,8 +749,8 @@ def zip_test(self, f, compression): self.assertEqual(info.filename, nm) self.assertEqual(info.file_size, len(self.data)) - # Check that testzip doesn't raise an exception - zipfp.testzip() + # Check that testzip thinks the archive is valid + self.assertIsNone(zipfp.testzip()) def test_basic(self): for f in get_files(self): @@ -1440,6 +1441,8 @@ def test_sanitize_windows_name(self): self.assertEqual(san(r',,?,C:,foo,bar/z', ','), r'_,C_,foo,bar/z') self.assertEqual(san(r'a\b,c<d>e|f"g?h*i', ','), r'a\b,c_d_e_f_g_h_i') self.assertEqual(san('../../foo../../ba..r', '/'), r'foo/ba..r') + self.assertEqual(san(' / /foo / /ba r', '/'), r'foo/ba r') + self.assertEqual(san(' . /. /foo ./ . /. ./ba .r', '/'), r'foo/ba .r') def test_extract_hackers_arcnames_common_cases(self): common_hacknames = [ @@ -2030,6 +2033,7 @@ def test_seek_tell(self): fp.seek(bloc, os.SEEK_CUR) self.assertEqual(fp.tell(), bloc) self.assertEqual(fp.read(5), txt[bloc:bloc+5]) + self.assertEqual(fp.tell(), bloc + 5) fp.seek(0, os.SEEK_END) self.assertEqual(fp.tell(), len(txt)) fp.seek(0, os.SEEK_SET) @@ -2047,6 +2051,7 @@ def test_seek_tell(self): fp.seek(bloc, os.SEEK_CUR) self.assertEqual(fp.tell(), bloc) self.assertEqual(fp.read(5), txt[bloc:bloc+5]) + self.assertEqual(fp.tell(), bloc + 5) fp.seek(0, os.SEEK_END) self.assertEqual(fp.tell(), len(txt)) fp.seek(0, os.SEEK_SET) diff --git a/Lib/test/test_zipfile64.py b/Lib/test/test_zipfile64.py index 0947013afbc6ed..be654a8478b04b 100644 --- a/Lib/test/test_zipfile64.py +++ b/Lib/test/test_zipfile64.py @@ -32,10 +32,6 @@ def setUp(self): line_gen = ("Test of zipfile line %d." % i for i in range(1000000)) self.data = '\n'.join(line_gen).encode('ascii') - # And write it to a file. - with open(TESTFN, "wb") as fp: - fp.write(self.data) - def zipTest(self, f, compression): # Create the ZIP archive. with zipfile.ZipFile(f, "w", compression) as zipfp: @@ -67,6 +63,9 @@ def zipTest(self, f, compression): (num, filecount)), file=sys.__stdout__) sys.__stdout__.flush() + # Check that testzip thinks the archive is valid + self.assertIsNone(zipfp.testzip()) + def testStored(self): # Try the temp file first. If we do TESTFN2 first, then it hogs # gigabytes of disk space for the duration of the test. @@ -85,9 +84,7 @@ def testDeflated(self): self.zipTest(TESTFN2, zipfile.ZIP_DEFLATED) def tearDown(self): - for fname in TESTFN, TESTFN2: - if os.path.exists(fname): - os.remove(fname) + os_helper.unlink(TESTFN2) class OtherTests(unittest.TestCase): diff --git a/Lib/test/test_zipimport.py b/Lib/test/test_zipimport.py index 66789262dd6ca1..52d43bdead67f8 100644 --- a/Lib/test/test_zipimport.py +++ b/Lib/test/test_zipimport.py @@ -460,12 +460,6 @@ def testZipImporterMethods(self): # PEP 302 with warnings.catch_warnings(): warnings.simplefilter("ignore", DeprecationWarning) - find_mod = zi.find_module('spam') - self.assertIsNotNone(find_mod) - self.assertIsInstance(find_mod, zipimport.zipimporter) - self.assertFalse(find_mod.is_package('spam')) - load_mod = find_mod.load_module('spam') - self.assertEqual(find_mod.get_filename('spam'), load_mod.__file__) mod = zi.load_module(TESTPACK) self.assertEqual(zi.get_filename(TESTPACK), mod.__file__) @@ -586,16 +580,6 @@ def testZipImporterMethodsInSubDirectory(self): pkg_path = TEMP_ZIP + os.sep + packdir + TESTPACK2 zi2 = zipimport.zipimporter(pkg_path) - # PEP 302 - with warnings.catch_warnings(): - warnings.simplefilter("ignore", DeprecationWarning) - find_mod_dotted = zi2.find_module(TESTMOD) - self.assertIsNotNone(find_mod_dotted) - self.assertIsInstance(find_mod_dotted, zipimport.zipimporter) - self.assertFalse(zi2.is_package(TESTMOD)) - load_mod = find_mod_dotted.load_module(TESTMOD) - self.assertEqual( - find_mod_dotted.get_filename(TESTMOD), load_mod.__file__) # PEP 451 spec = zi2.find_spec(TESTMOD) @@ -654,7 +638,10 @@ def test(val): sys.path.insert(0, TEMP_ZIP) mod = importlib.import_module(TESTMOD) self.assertEqual(mod.test(1), 1) - self.assertRaises(AssertionError, mod.test, False) + if __debug__: + self.assertRaises(AssertionError, mod.test, False) + else: + self.assertEqual(mod.test(0), 0) def testImport_WithStuff(self): # try importing from a zipfile which contains additional @@ -755,7 +742,8 @@ def testBytesPath(self): z.writestr(zinfo, test_src) zipimport.zipimporter(filename) - zipimport.zipimporter(os.fsencode(filename)) + with self.assertRaises(TypeError): + zipimport.zipimporter(os.fsencode(filename)) with self.assertRaises(TypeError): zipimport.zipimporter(bytearray(os.fsencode(filename))) with self.assertRaises(TypeError): diff --git a/Lib/threading.py b/Lib/threading.py index a3df587f10666c..d030e1243623f9 100644 --- a/Lib/threading.py +++ b/Lib/threading.py @@ -7,7 +7,7 @@ from time import monotonic as _time from _weakrefset import WeakSet -from itertools import islice as _islice, count as _count +from itertools import count as _count try: from _collections import deque as _deque except ImportError: @@ -28,7 +28,8 @@ 'Event', 'Lock', 'RLock', 'Semaphore', 'BoundedSemaphore', 'Thread', 'Barrier', 'BrokenBarrierError', 'Timer', 'ThreadError', 'setprofile', 'settrace', 'local', 'stack_size', - 'excepthook', 'ExceptHookArgs', 'gettrace', 'getprofile'] + 'excepthook', 'ExceptHookArgs', 'gettrace', 'getprofile', + 'setprofile_all_threads','settrace_all_threads'] # Rename some stuff so "from threading import *" is safe _start_new_thread = _thread.start_new_thread @@ -60,11 +61,20 @@ def setprofile(func): The func will be passed to sys.setprofile() for each thread, before its run() method is called. - """ global _profile_hook _profile_hook = func +def setprofile_all_threads(func): + """Set a profile function for all threads started from the threading module + and all Python threads that are currently executing. + + The func will be passed to sys.setprofile() for each thread, before its + run() method is called. + """ + setprofile(func) + _sys._setprofileallthreads(func) + def getprofile(): """Get the profiler function as set by threading.setprofile().""" return _profile_hook @@ -74,11 +84,20 @@ def settrace(func): The func will be passed to sys.settrace() for each thread, before its run() method is called. - """ global _trace_hook _trace_hook = func +def settrace_all_threads(func): + """Set a trace function for all threads started from the threading module + and all Python threads that are currently executing. + + The func will be passed to sys.settrace() for each thread, before its run() + method is called. + """ + settrace(func) + _sys._settraceallthreads(func) + def gettrace(): """Get the trace function as set by threading.settrace().""" return _trace_hook @@ -243,18 +262,12 @@ def __init__(self, lock=None): # If the lock defines _release_save() and/or _acquire_restore(), # these override the default implementations (which just call # release() and acquire() on the lock). Ditto for _is_owned(). - try: + if hasattr(lock, '_release_save'): self._release_save = lock._release_save - except AttributeError: - pass - try: + if hasattr(lock, '_acquire_restore'): self._acquire_restore = lock._acquire_restore - except AttributeError: - pass - try: + if hasattr(lock, '_is_owned'): self._is_owned = lock._is_owned - except AttributeError: - pass self._waiters = _deque() def _at_fork_reinit(self): @@ -570,7 +583,7 @@ def is_set(self): def isSet(self): """Return true if and only if the internal flag is true. - This method is deprecated, use notify_all() instead. + This method is deprecated, use is_set() instead. """ import warnings diff --git a/Lib/tkinter/commondialog.py b/Lib/tkinter/commondialog.py index e595c99defb991..86f5387e001bf2 100644 --- a/Lib/tkinter/commondialog.py +++ b/Lib/tkinter/commondialog.py @@ -10,7 +10,7 @@ __all__ = ["Dialog"] -from tkinter import Frame, _get_temp_root, _destroy_temp_root +from tkinter import _get_temp_root, _destroy_temp_root class Dialog: diff --git a/Lib/tkinter/test/__init__.py b/Lib/tkinter/test/__init__.py deleted file mode 100644 index e69de29bb2d1d6..00000000000000 diff --git a/Lib/tkinter/test/test_tkinter/__init__.py b/Lib/tkinter/test/test_tkinter/__init__.py deleted file mode 100644 index e69de29bb2d1d6..00000000000000 diff --git a/Lib/tkinter/test/test_ttk/__init__.py b/Lib/tkinter/test/test_ttk/__init__.py deleted file mode 100644 index e69de29bb2d1d6..00000000000000 diff --git a/Lib/traceback.py b/Lib/traceback.py index 3afe49d1d8a0e6..b1a5fd0a26d40a 100644 --- a/Lib/traceback.py +++ b/Lib/traceback.py @@ -279,7 +279,8 @@ def __init__(self, filename, lineno, name, *, lookup_line=True, self._line = line if lookup_line: self.line - self.locals = {k: repr(v) for k, v in locals.items()} if locals else None + self.locals = {k: _safe_string(v, 'local', func=repr) + for k, v in locals.items()} if locals else None self.end_lineno = end_lineno self.colno = colno self.end_colno = end_colno @@ -465,7 +466,8 @@ def format_frame_summary(self, frame_summary): row.append(' File "{}", line {}, in {}\n'.format( frame_summary.filename, frame_summary.lineno, frame_summary.name)) if frame_summary.line: - row.append(' {}\n'.format(frame_summary.line.strip())) + stripped_line = frame_summary.line.strip() + row.append(' {}\n'.format(stripped_line)) orig_line_len = len(frame_summary._original_line) frame_line_len = len(frame_summary.line.lstrip()) @@ -486,19 +488,22 @@ def format_frame_summary(self, frame_summary): frame_summary._original_line[colno - 1:end_colno - 1] ) else: - end_colno = stripped_characters + len(frame_summary.line.strip()) - - row.append(' ') - row.append(' ' * (colno - stripped_characters)) - - if anchors: - row.append(anchors.primary_char * (anchors.left_end_offset)) - row.append(anchors.secondary_char * (anchors.right_start_offset - anchors.left_end_offset)) - row.append(anchors.primary_char * (end_colno - colno - anchors.right_start_offset)) - else: - row.append('^' * (end_colno - colno)) + end_colno = stripped_characters + len(stripped_line) + + # show indicators if primary char doesn't span the frame line + if end_colno - colno < len(stripped_line) or ( + anchors and anchors.right_start_offset - anchors.left_end_offset > 0): + row.append(' ') + row.append(' ' * (colno - stripped_characters)) + + if anchors: + row.append(anchors.primary_char * (anchors.left_end_offset)) + row.append(anchors.secondary_char * (anchors.right_start_offset - anchors.left_end_offset)) + row.append(anchors.primary_char * (end_colno - colno - anchors.right_start_offset)) + else: + row.append('^' * (end_colno - colno)) - row.append('\n') + row.append('\n') if frame_summary.locals: for name, value in sorted(frame_summary.locals.items()): diff --git a/Lib/types.py b/Lib/types.py index 9490da7b9ee3b9..2e73fbc4501337 100644 --- a/Lib/types.py +++ b/Lib/types.py @@ -80,7 +80,7 @@ def resolve_bases(bases): updated = False shift = 0 for i, base in enumerate(bases): - if isinstance(base, type) and not isinstance(base, GenericAlias): + if isinstance(base, type): continue if not hasattr(base, "__mro_entries__"): continue diff --git a/Lib/typing.py b/Lib/typing.py index 40ab516f7c8ff7..95bd61c7f8c61f 100644 --- a/Lib/typing.py +++ b/Lib/typing.py @@ -250,6 +250,9 @@ def _collect_parameters(args): """ parameters = [] for t in args: + # We don't want __parameters__ descriptor of a bare Python class. + if isinstance(t, type): + continue if hasattr(t, '__typing_subst__'): if t not in parameters: parameters.append(t) @@ -490,7 +493,9 @@ def __instancecheck__(self, obj): return super().__instancecheck__(obj) def __repr__(self): - return "typing.Any" + if self is Any: + return "typing.Any" + return super().__repr__() # respect to subclasses class Any(metaclass=_AnyMeta): @@ -566,7 +571,7 @@ def Self(self, parameters): from typing import Self class Foo: - def returns_self(self) -> Self: + def return_self(self) -> Self: ... return self @@ -954,6 +959,9 @@ def __repr__(self): prefix = '~' return prefix + self.__name__ + def __mro_entries__(self, bases): + raise TypeError(f"Cannot subclass an instance of {type(self).__name__}") + class TypeVar(_Final, _Immutable, _BoundVarianceMixin, _PickleUsingNameMixin, _root=True): @@ -1065,6 +1073,45 @@ def __repr__(self): def __typing_subst__(self, arg): raise TypeError("Substitution of bare TypeVarTuple is not supported") + def __typing_prepare_subst__(self, alias, args): + params = alias.__parameters__ + typevartuple_index = params.index(self) + for param in params[typevartuple_index + 1:]: + if isinstance(param, TypeVarTuple): + raise TypeError(f"More than one TypeVarTuple parameter in {alias}") + + alen = len(args) + plen = len(params) + left = typevartuple_index + right = plen - typevartuple_index - 1 + var_tuple_index = None + fillarg = None + for k, arg in enumerate(args): + if not isinstance(arg, type): + subargs = getattr(arg, '__typing_unpacked_tuple_args__', None) + if subargs and len(subargs) == 2 and subargs[-1] is ...: + if var_tuple_index is not None: + raise TypeError("More than one unpacked arbitrary-length tuple argument") + var_tuple_index = k + fillarg = subargs[0] + if var_tuple_index is not None: + left = min(left, var_tuple_index) + right = min(right, alen - var_tuple_index - 1) + elif left + right > alen: + raise TypeError(f"Too few arguments for {alias};" + f" actual {alen}, expected at least {plen-1}") + + return ( + *args[:left], + *([fillarg]*(typevartuple_index - left)), + tuple(args[left: alen - right]), + *([fillarg]*(plen - right - left - typevartuple_index - 1)), + *args[alen - right:], + ) + + def __mro_entries__(self, bases): + raise TypeError(f"Cannot subclass an instance of {type(self).__name__}") + class ParamSpecArgs(_Final, _Immutable, _root=True): """The args for a ParamSpec object. @@ -1089,6 +1136,9 @@ def __eq__(self, other): return NotImplemented return self.__origin__ == other.__origin__ + def __mro_entries__(self, bases): + raise TypeError(f"Cannot subclass an instance of {type(self).__name__}") + class ParamSpecKwargs(_Final, _Immutable, _root=True): """The kwargs for a ParamSpec object. @@ -1113,6 +1163,9 @@ def __eq__(self, other): return NotImplemented return self.__origin__ == other.__origin__ + def __mro_entries__(self, bases): + raise TypeError(f"Cannot subclass an instance of {type(self).__name__}") + class ParamSpec(_Final, _Immutable, _BoundVarianceMixin, _PickleUsingNameMixin, _root=True): @@ -1184,6 +1237,8 @@ def __typing_subst__(self, arg): f"ParamSpec, or Concatenate. Got {arg}") return arg + def __typing_prepare_subst__(self, alias, args): + return _prepare_paramspec_params(alias, args) def _is_dunder(attr): return attr.startswith('__') and attr.endswith('__') @@ -1255,44 +1310,6 @@ def __dir__(self): + [attr for attr in dir(self.__origin__) if not _is_dunder(attr)])) -def _is_unpacked_tuple(x: Any) -> bool: - # Is `x` something like `*tuple[int]` or `*tuple[int, ...]`? - if not isinstance(x, _UnpackGenericAlias): - return False - # Alright, `x` is `Unpack[something]`. - - # `x` will always have `__args__`, because Unpack[] and Unpack[()] - # aren't legal. - unpacked_type = x.__args__[0] - - return getattr(unpacked_type, '__origin__', None) is tuple - - -def _is_unpacked_arbitrary_length_tuple(x: Any) -> bool: - if not _is_unpacked_tuple(x): - return False - unpacked_tuple = x.__args__[0] - - if not hasattr(unpacked_tuple, '__args__'): - # It's `Unpack[tuple]`. We can't make any assumptions about the length - # of the tuple, so it's effectively an arbitrary-length tuple. - return True - - tuple_args = unpacked_tuple.__args__ - if not tuple_args: - # It's `Unpack[tuple[()]]`. - return False - - last_arg = tuple_args[-1] - if last_arg is Ellipsis: - # It's `Unpack[tuple[something, ...]]`, which is arbitrary-length. - return True - - # If the arguments didn't end with an ellipsis, then it's not an - # arbitrary-length tuple. - return False - - # Special typing constructs Union, Optional, Generic, Callable and Tuple # use three special attributes for internal bookkeeping of generic types: # * __parameters__ is a tuple of unique free type parameters of a generic @@ -1385,10 +1402,6 @@ def __getitem__(self, args): args = (args,) args = tuple(_type_convert(p) for p in args) args = _unpack_args(args) - if (self._paramspec_tvars - and any(isinstance(t, ParamSpec) for t in self.__parameters__)): - args = _prepare_paramspec_params(self, args) - new_args = self._determine_new_args(args) r = self.copy_with(new_args) return r @@ -1410,30 +1423,16 @@ def _determine_new_args(self, args): params = self.__parameters__ # In the example above, this would be {T3: str} - new_arg_by_param = {} - typevartuple_index = None - for i, param in enumerate(params): - if isinstance(param, TypeVarTuple): - if typevartuple_index is not None: - raise TypeError(f"More than one TypeVarTuple parameter in {self}") - typevartuple_index = i - + for param in params: + prepare = getattr(param, '__typing_prepare_subst__', None) + if prepare is not None: + args = prepare(self, args) alen = len(args) plen = len(params) - if typevartuple_index is not None: - i = typevartuple_index - j = alen - (plen - i - 1) - if j < i: - raise TypeError(f"Too few arguments for {self};" - f" actual {alen}, expected at least {plen-1}") - new_arg_by_param.update(zip(params[:i], args[:i])) - new_arg_by_param[params[i]] = tuple(args[i: j]) - new_arg_by_param.update(zip(params[i + 1:], args[j:])) - else: - if alen != plen: - raise TypeError(f"Too {'many' if alen > plen else 'few'} arguments for {self};" - f" actual {alen}, expected {plen}") - new_arg_by_param.update(zip(params, args)) + if alen != plen: + raise TypeError(f"Too {'many' if alen > plen else 'few'} arguments for {self};" + f" actual {alen}, expected {plen}") + new_arg_by_param = dict(zip(params, args)) new_args = [] for old_arg in self.__args__: @@ -2102,7 +2101,7 @@ def __init__(self, origin, metadata): if isinstance(origin, _AnnotatedAlias): metadata = origin.__metadata__ + metadata origin = origin.__origin__ - super().__init__(origin, origin) + super().__init__(origin, origin, name='Annotated') self.__metadata__ = metadata def copy_with(self, params): @@ -2135,6 +2134,9 @@ def __getattr__(self, attr): return 'Annotated' return super().__getattr__(attr) + def __mro_entries__(self, bases): + return (self.__origin__,) + class Annotated: """Add context specific metadata to a type. diff --git a/Lib/unittest/__init__.py b/Lib/unittest/__init__.py index 005d23f6d00ecb..5bcbf834840b59 100644 --- a/Lib/unittest/__init__.py +++ b/Lib/unittest/__init__.py @@ -69,19 +69,6 @@ def testMultiply(self): # IsolatedAsyncioTestCase will be imported lazily. from .loader import makeSuite, getTestCaseNames, findTestCases -# deprecated -_TextTestResult = TextTestResult - - -# There are no tests here, so don't try to run anything discovered from -# introspecting the symbols (e.g. FunctionTestCase). Instead, all our -# tests come from within unittest.test. -def load_tests(loader, tests, pattern): - import os.path - # top level directory cached on loader instance - this_dir = os.path.dirname(__file__) - return loader.discover(start_dir=this_dir, pattern=pattern) - # Lazy import of IsolatedAsyncioTestCase from .async_case # It imports asyncio, which is relatively heavy, but most tests diff --git a/Lib/unittest/async_case.py b/Lib/unittest/async_case.py index a90eed98f87140..3457e92e5da298 100644 --- a/Lib/unittest/async_case.py +++ b/Lib/unittest/async_case.py @@ -79,6 +79,10 @@ async def enterAsyncContext(self, cm): return result def _callSetUp(self): + # Force loop to be initialized and set as the current loop + # so that setUp functions can use get_event_loop() and get the + # correct loop instance. + self._asyncioRunner.get_loop() self._asyncioTestContext.run(self.setUp) self._callAsync(self.asyncSetUp) diff --git a/Lib/unittest/case.py b/Lib/unittest/case.py index ffc8f19ddd38d3..af8303333d4087 100644 --- a/Lib/unittest/case.py +++ b/Lib/unittest/case.py @@ -1171,35 +1171,6 @@ def assertDictEqual(self, d1, d2, msg=None): standardMsg = self._truncateMessage(standardMsg, diff) self.fail(self._formatMessage(msg, standardMsg)) - def assertDictContainsSubset(self, subset, dictionary, msg=None): - """Checks whether dictionary is a superset of subset.""" - warnings.warn('assertDictContainsSubset is deprecated', - DeprecationWarning) - missing = [] - mismatched = [] - for key, value in subset.items(): - if key not in dictionary: - missing.append(key) - elif value != dictionary[key]: - mismatched.append('%s, expected: %s, actual: %s' % - (safe_repr(key), safe_repr(value), - safe_repr(dictionary[key]))) - - if not (missing or mismatched): - return - - standardMsg = '' - if missing: - standardMsg = 'Missing: %s' % ','.join(safe_repr(m) for m in - missing) - if mismatched: - if standardMsg: - standardMsg += '; ' - standardMsg += 'Mismatched values: %s' % ','.join(mismatched) - - self.fail(self._formatMessage(msg, standardMsg)) - - def assertCountEqual(self, first, second, msg=None): """Asserts that two iterables have the same elements, the same number of times, without regard to order. @@ -1363,27 +1334,6 @@ def assertNotRegex(self, text, unexpected_regex, msg=None): raise self.failureException(msg) - def _deprecate(original_func): - def deprecated_func(*args, **kwargs): - warnings.warn( - 'Please use {0} instead.'.format(original_func.__name__), - DeprecationWarning, 2) - return original_func(*args, **kwargs) - return deprecated_func - - # see #9424 - failUnlessEqual = assertEquals = _deprecate(assertEqual) - failIfEqual = assertNotEquals = _deprecate(assertNotEqual) - failUnlessAlmostEqual = assertAlmostEquals = _deprecate(assertAlmostEqual) - failIfAlmostEqual = assertNotAlmostEquals = _deprecate(assertNotAlmostEqual) - failUnless = assert_ = _deprecate(assertTrue) - failUnlessRaises = _deprecate(assertRaises) - failIf = _deprecate(assertFalse) - assertRaisesRegexp = _deprecate(assertRaisesRegex) - assertRegexpMatches = _deprecate(assertRegex) - assertNotRegexpMatches = _deprecate(assertNotRegex) - - class FunctionTestCase(TestCase): """A test case that wraps a test function. diff --git a/Lib/unittest/loader.py b/Lib/unittest/loader.py index 7e6ce2f224bafc..eb18cd0b49cd26 100644 --- a/Lib/unittest/loader.py +++ b/Lib/unittest/loader.py @@ -93,30 +93,8 @@ def loadTestsFromTestCase(self, testCaseClass): loaded_suite = self.suiteClass(map(testCaseClass, testCaseNames)) return loaded_suite - # XXX After Python 3.5, remove backward compatibility hacks for - # use_load_tests deprecation via *args and **kws. See issue 16662. - def loadTestsFromModule(self, module, *args, pattern=None, **kws): + def loadTestsFromModule(self, module, *, pattern=None): """Return a suite of all test cases contained in the given module""" - # This method used to take an undocumented and unofficial - # use_load_tests argument. For backward compatibility, we still - # accept the argument (which can also be the first position) but we - # ignore it and issue a deprecation warning if it's present. - if len(args) > 0 or 'use_load_tests' in kws: - warnings.warn('use_load_tests is deprecated and ignored', - DeprecationWarning) - kws.pop('use_load_tests', None) - if len(args) > 1: - # Complain about the number of arguments, but don't forget the - # required `module` argument. - complaint = len(args) + 1 - raise TypeError('loadTestsFromModule() takes 1 positional argument but {} were given'.format(complaint)) - if len(kws) != 0: - # Since the keyword arguments are unsorted (see PEP 468), just - # pick the alphabetically sorted first argument to complain about, - # if multiple were given. At least the error message will be - # predictable. - complaint = sorted(kws)[0] - raise TypeError("loadTestsFromModule() got an unexpected keyword argument '{}'".format(complaint)) tests = [] for name in dir(module): obj = getattr(module, name) diff --git a/Lib/unittest/mock.py b/Lib/unittest/mock.py index 8262b7170b76b4..cd46fea5162aba 100644 --- a/Lib/unittest/mock.py +++ b/Lib/unittest/mock.py @@ -2175,6 +2175,10 @@ def __init__(self, /, *args, **kwargs): code_mock = NonCallableMock(spec_set=CodeType) code_mock.co_flags = inspect.CO_COROUTINE self.__dict__['__code__'] = code_mock + self.__dict__['__name__'] = 'AsyncMock' + self.__dict__['__defaults__'] = tuple() + self.__dict__['__kwdefaults__'] = {} + self.__dict__['__annotations__'] = None async def _execute_mock_call(self, /, *args, **kwargs): # This is nearly just like super(), except for special handling diff --git a/Lib/unittest/runner.py b/Lib/unittest/runner.py index cb452c7adefb73..6678adb6a7d813 100644 --- a/Lib/unittest/runner.py +++ b/Lib/unittest/runner.py @@ -200,15 +200,6 @@ def run(self, test): if self.warnings: # if self.warnings is set, use it to filter all the warnings warnings.simplefilter(self.warnings) - # if the filter is 'default' or 'always', special-case the - # warnings from the deprecated unittest methods to show them - # no more than once per module, because they can be fairly - # noisy. The -Wd and -Wa flags can be used to bypass this - # only when self.warnings is None. - if self.warnings in ['default', 'always']: - warnings.filterwarnings('module', - category=DeprecationWarning, - message=r'Please use assert\w+ instead.') startTime = time.perf_counter() startTestRun = getattr(result, 'startTestRun', None) if startTestRun is not None: diff --git a/Lib/unittest/test/__init__.py b/Lib/unittest/test/__init__.py deleted file mode 100644 index 143f4ab5a3d878..00000000000000 --- a/Lib/unittest/test/__init__.py +++ /dev/null @@ -1,25 +0,0 @@ -import os -import sys -import unittest - - -here = os.path.dirname(__file__) -loader = unittest.defaultTestLoader - -def suite(): - suite = unittest.TestSuite() - for fn in os.listdir(here): - if fn.startswith("test") and fn.endswith(".py"): - modname = "unittest.test." + fn[:-3] - try: - __import__(modname) - except unittest.SkipTest: - continue - module = sys.modules[modname] - suite.addTest(loader.loadTestsFromModule(module)) - suite.addTest(loader.loadTestsFromName('unittest.test.testmock')) - return suite - - -if __name__ == "__main__": - unittest.main(defaultTest="suite") diff --git a/Lib/unittest/test/__main__.py b/Lib/unittest/test/__main__.py deleted file mode 100644 index 44d0591e8473af..00000000000000 --- a/Lib/unittest/test/__main__.py +++ /dev/null @@ -1,18 +0,0 @@ -import os -import unittest - - -def load_tests(loader, standard_tests, pattern): - # top level directory cached on loader instance - this_dir = os.path.dirname(__file__) - pattern = pattern or "test_*.py" - # We are inside unittest.test, so the top-level is two notches up - top_level_dir = os.path.dirname(os.path.dirname(this_dir)) - package_tests = loader.discover(start_dir=this_dir, pattern=pattern, - top_level_dir=top_level_dir) - standard_tests.addTests(package_tests) - return standard_tests - - -if __name__ == '__main__': - unittest.main() diff --git a/Lib/unittest/test/testmock/__init__.py b/Lib/unittest/test/testmock/__init__.py deleted file mode 100644 index 87d7ae994d5cd3..00000000000000 --- a/Lib/unittest/test/testmock/__init__.py +++ /dev/null @@ -1,17 +0,0 @@ -import os -import sys -import unittest - - -here = os.path.dirname(__file__) -loader = unittest.defaultTestLoader - -def load_tests(*args): - suite = unittest.TestSuite() - for fn in os.listdir(here): - if fn.startswith("test") and fn.endswith(".py"): - modname = "unittest.test.testmock." + fn[:-3] - __import__(modname) - module = sys.modules[modname] - suite.addTest(loader.loadTestsFromModule(module)) - return suite diff --git a/Lib/urllib/parse.py b/Lib/urllib/parse.py index d70a6943f0a739..f25c770068bdd1 100644 --- a/Lib/urllib/parse.py +++ b/Lib/urllib/parse.py @@ -30,7 +30,6 @@ from collections import namedtuple import functools import re -import sys import types import warnings @@ -907,7 +906,7 @@ def quote_from_bytes(bs, safe='/'): if not bs.rstrip(_ALWAYS_SAFE_BYTES + safe): return bs.decode() quoter = _byte_quoter_factory(safe) - return ''.join([quoter(char) for char in bs]) + return ''.join(map(quoter, bs)) def urlencode(query, doseq=False, safe='', encoding=None, errors=None, quote_via=quote_plus): diff --git a/Lib/urllib/request.py b/Lib/urllib/request.py index 6d580a434a7bea..1761e951e62466 100644 --- a/Lib/urllib/request.py +++ b/Lib/urllib/request.py @@ -88,7 +88,6 @@ import http.client import io import os -import posixpath import re import socket import string @@ -1384,12 +1383,16 @@ class HTTPSHandler(AbstractHTTPHandler): def __init__(self, debuglevel=0, context=None, check_hostname=None): AbstractHTTPHandler.__init__(self, debuglevel) + if context is None: + http_version = http.client.HTTPSConnection._http_vsn + context = http.client._create_https_context(http_version) + if check_hostname is not None: + context.check_hostname = check_hostname self._context = context - self._check_hostname = check_hostname def https_open(self, req): return self.do_open(http.client.HTTPSConnection, req, - context=self._context, check_hostname=self._check_hostname) + context=self._context) https_request = AbstractHTTPHandler.do_request_ @@ -1987,9 +1990,17 @@ def http_error_default(self, url, fp, errcode, errmsg, headers): if _have_ssl: def _https_connection(self, host): - return http.client.HTTPSConnection(host, - key_file=self.key_file, - cert_file=self.cert_file) + if self.key_file or self.cert_file: + http_version = http.client.HTTPSConnection._http_vsn + context = http.client._create_https_context(http_version) + context.load_cert_chain(self.cert_file, self.key_file) + # cert and key file means the user wants to authenticate. + # enable TLS 1.3 PHA implicitly even for custom contexts. + if context.post_handshake_auth is not None: + context.post_handshake_auth = True + else: + context = None + return http.client.HTTPSConnection(host, context=context) def open_https(self, url, data=None): """Use HTTPS protocol.""" diff --git a/Lib/uuid.py b/Lib/uuid.py index f179d68e8265ac..8fe2479f3f22cf 100644 --- a/Lib/uuid.py +++ b/Lib/uuid.py @@ -524,6 +524,8 @@ def _ip_getnode(): def _arp_getnode(): """Get the hardware address on Unix by running arp.""" import os, socket + if not hasattr(socket, "gethostbyname"): + return None try: ip_addr = socket.gethostbyname(socket.gethostname()) except OSError: diff --git a/Lib/venv/__init__.py b/Lib/venv/__init__.py index 6032f3648e15ff..f6b790e1b71a13 100644 --- a/Lib/venv/__init__.py +++ b/Lib/venv/__init__.py @@ -138,6 +138,7 @@ def create_if_needed(d): context.inc_path = incpath create_if_needed(incpath) + context.lib_path = libpath create_if_needed(libpath) # Issue 21197: create lib64 as a symlink to lib on 64-bit non-OS X POSIX if ((sys.maxsize > 2**32) and (os.name == 'posix') and diff --git a/Lib/venv/scripts/posix/activate.fish b/Lib/venv/scripts/posix/activate.fish index e40a1d714894fa..9aa4446005f4d8 100644 --- a/Lib/venv/scripts/posix/activate.fish +++ b/Lib/venv/scripts/posix/activate.fish @@ -13,10 +13,13 @@ function deactivate -d "Exit virtual environment and return to normal shell env end if test -n "$_OLD_FISH_PROMPT_OVERRIDE" - functions -e fish_prompt set -e _OLD_FISH_PROMPT_OVERRIDE - functions -c _old_fish_prompt fish_prompt - functions -e _old_fish_prompt + # prevents error when using nested fish instances (Issue #93858) + if functions -q _old_fish_prompt + functions -e fish_prompt + functions -c _old_fish_prompt fish_prompt + functions -e _old_fish_prompt + end end set -e VIRTUAL_ENV diff --git a/Lib/wave.py b/Lib/wave.py index 9a4557487b6e63..e446174b4b22b9 100644 --- a/Lib/wave.py +++ b/Lib/wave.py @@ -83,6 +83,7 @@ class Error(Exception): pass WAVE_FORMAT_PCM = 0x0001 +WAVE_FORMAT_EXTENSIBLE = 0xFFFE _array_fmts = None, 'b', 'h', None, 'i' @@ -377,16 +378,23 @@ def _read_fmt_chunk(self, chunk): wFormatTag, self._nchannels, self._framerate, dwAvgBytesPerSec, wBlockAlign = struct.unpack_from('<HHLLH', chunk.read(14)) except struct.error: raise EOFError from None - if wFormatTag == WAVE_FORMAT_PCM: + if wFormatTag != WAVE_FORMAT_PCM and wFormatTag != WAVE_FORMAT_EXTENSIBLE: + raise Error('unknown format: %r' % (wFormatTag,)) + try: + sampwidth = struct.unpack_from('<H', chunk.read(2))[0] + except struct.error: + raise EOFError from None + if wFormatTag == WAVE_FORMAT_EXTENSIBLE: try: - sampwidth = struct.unpack_from('<H', chunk.read(2))[0] + # Only the first 2 bytes (of 16) of SubFormat are needed. + cbSize, wValidBitsPerSample, dwChannelMask, SubFormatFmt = struct.unpack_from('<HHLH', chunk.read(10)) except struct.error: raise EOFError from None - self._sampwidth = (sampwidth + 7) // 8 - if not self._sampwidth: - raise Error('bad sample width') - else: - raise Error('unknown format: %r' % (wFormatTag,)) + if SubFormatFmt != WAVE_FORMAT_PCM: + raise Error(f'unknown format: {SubFormatFmt}') + self._sampwidth = (sampwidth + 7) // 8 + if not self._sampwidth: + raise Error('bad sample width') if not self._nchannels: raise Error('bad # of channels') self._framesize = self._nchannels * self._sampwidth diff --git a/Lib/wsgiref/types.py b/Lib/wsgiref/types.py index 9e74a6c7312b19..ef0aead5b28b64 100644 --- a/Lib/wsgiref/types.py +++ b/Lib/wsgiref/types.py @@ -1,6 +1,6 @@ """WSGI-related types for static type checking""" -from collections.abc import Callable, Iterable +from collections.abc import Callable, Iterable, Iterator from types import TracebackType from typing import Any, Protocol, TypeAlias @@ -35,7 +35,7 @@ class InputStream(Protocol): def read(self, size: int = ..., /) -> bytes: ... def readline(self, size: int = ..., /) -> bytes: ... def readlines(self, hint: int = ..., /) -> list[bytes]: ... - def __iter__(self) -> Iterable[bytes]: ... + def __iter__(self) -> Iterator[bytes]: ... class ErrorStream(Protocol): """WSGI error stream as defined in PEP 3333""" diff --git a/Lib/xml/dom/minidom.py b/Lib/xml/dom/minidom.py index d09ef5e7d0371a..ef8a159833bbc0 100644 --- a/Lib/xml/dom/minidom.py +++ b/Lib/xml/dom/minidom.py @@ -358,6 +358,8 @@ def __init__(self, qName, namespaceURI=EMPTY_NAMESPACE, localName=None, self._name = qName self.namespaceURI = namespaceURI self._prefix = prefix + if localName is not None: + self._localName = localName self.childNodes = NodeList() # Add the single child node that represents the value of the attr diff --git a/Lib/xml/etree/ElementPath.py b/Lib/xml/etree/ElementPath.py index cd3c354d0813ee..dc6bd28c03137d 100644 --- a/Lib/xml/etree/ElementPath.py +++ b/Lib/xml/etree/ElementPath.py @@ -416,6 +416,8 @@ def findall(elem, path, namespaces=None): def findtext(elem, path, default=None, namespaces=None): try: elem = next(iterfind(elem, path, namespaces)) - return elem.text or "" + if elem.text is None: + return "" + return elem.text except StopIteration: return default diff --git a/Lib/xml/etree/ElementTree.py b/Lib/xml/etree/ElementTree.py index a5cc65e789c004..ebbe2b703bfd8f 100644 --- a/Lib/xml/etree/ElementTree.py +++ b/Lib/xml/etree/ElementTree.py @@ -188,19 +188,6 @@ def makeelement(self, tag, attrib): """ return self.__class__(tag, attrib) - def copy(self): - """Return copy of current element. - - This creates a shallow copy. Subelements will be shared with the - original tree. - - """ - warnings.warn( - "elem.copy() is deprecated. Use copy.copy(elem) instead.", - DeprecationWarning - ) - return self.__copy__() - def __copy__(self): elem = self.makeelement(self.tag, self.attrib) elem.text = self.text @@ -731,6 +718,7 @@ def write(self, file_or_filename, with _get_writer(file_or_filename, encoding) as (write, declared_encoding): if method == "xml" and (xml_declaration or (xml_declaration is None and + encoding.lower() != "unicode" and declared_encoding.lower() not in ("utf-8", "us-ascii"))): write("<?xml version='1.0' encoding='%s'?>\n" % ( declared_encoding,)) @@ -757,13 +745,10 @@ def _get_writer(file_or_filename, encoding): except AttributeError: # file_or_filename is a file name if encoding.lower() == "unicode": - file = open(file_or_filename, "w", - errors="xmlcharrefreplace") - else: - file = open(file_or_filename, "w", encoding=encoding, - errors="xmlcharrefreplace") - with file: - yield file.write, file.encoding + encoding="utf-8" + with open(file_or_filename, "w", encoding=encoding, + errors="xmlcharrefreplace") as file: + yield file.write, encoding else: # file_or_filename is a file-like object # encoding determines if it is a text or binary writer diff --git a/Lib/zipfile.py b/Lib/zipfile.py index fc6ca65e5ed1e9..b6465373c107d5 100644 --- a/Lib/zipfile.py +++ b/Lib/zipfile.py @@ -480,7 +480,7 @@ def FileHeader(self, zip64=None): def _encodeFilenameFlags(self): try: - return self.filename.encode('ascii'), self.flag_bits & ~_MASK_UTF_FILENAME + return self.filename.encode('ascii'), self.flag_bits except UnicodeEncodeError: return self.filename.encode('utf-8'), self.flag_bits | _MASK_UTF_FILENAME @@ -847,6 +847,7 @@ def __init__(self, fileobj, mode, zipinfo, pwd=None, self._orig_compress_size = zipinfo.compress_size self._orig_file_size = zipinfo.file_size self._orig_start_crc = self._running_crc + self._orig_crc = self._expected_crc self._seekable = True except AttributeError: pass @@ -1069,17 +1070,17 @@ def seekable(self): raise ValueError("I/O operation on closed file.") return self._seekable - def seek(self, offset, whence=0): + def seek(self, offset, whence=os.SEEK_SET): if self.closed: raise ValueError("seek on closed file.") if not self._seekable: raise io.UnsupportedOperation("underlying stream is not seekable") curr_pos = self.tell() - if whence == 0: # Seek from start of file + if whence == os.SEEK_SET: new_pos = offset - elif whence == 1: # Seek from current position + elif whence == os.SEEK_CUR: new_pos = curr_pos + offset - elif whence == 2: # Seek from EOF + elif whence == os.SEEK_END: new_pos = self._orig_file_size + offset else: raise ValueError("whence must be os.SEEK_SET (0), " @@ -1094,7 +1095,19 @@ def seek(self, offset, whence=0): read_offset = new_pos - curr_pos buff_offset = read_offset + self._offset - if buff_offset >= 0 and buff_offset < len(self._readbuffer): + # Fast seek uncompressed unencrypted file + if self._compress_type == ZIP_STORED and self._decrypter is None and read_offset > 0: + # disable CRC checking after first seeking - it would be invalid + self._expected_crc = None + # seek actual file taking already buffered data into account + read_offset -= len(self._readbuffer) - self._offset + self._fileobj.seek(read_offset, os.SEEK_CUR) + self._left -= read_offset + read_offset = 0 + # flush read buffer + self._readbuffer = b'' + self._offset = 0 + elif buff_offset >= 0 and buff_offset < len(self._readbuffer): # Just move the _offset index if the new position is in the _readbuffer self._offset = buff_offset read_offset = 0 @@ -1102,6 +1115,7 @@ def seek(self, offset, whence=0): # Position is before the current position. Reset the ZipExtFile self._fileobj.seek(self._orig_compress_start) self._running_crc = self._orig_start_crc + self._expected_crc = self._orig_crc self._compress_left = self._orig_compress_size self._left = self._orig_file_size self._readbuffer = b'' @@ -1454,7 +1468,10 @@ def printdir(self, file=None): file=file) def testzip(self): - """Read all the files and check the CRC.""" + """Read all the files and check the CRC. + + Return None if all files could be read successfully, or the name + of the offending file otherwise.""" chunk_size = 2 ** 20 for zinfo in self.filelist: try: @@ -1685,8 +1702,8 @@ def _sanitize_windows_name(cls, arcname, pathsep): table = str.maketrans(illegal, '_' * len(illegal)) cls._windows_illegal_name_trans_table = table arcname = arcname.translate(table) - # remove trailing dots - arcname = (x.rstrip('.') for x in arcname.split(pathsep)) + # remove trailing dots and spaces + arcname = (x.rstrip(' .') for x in arcname.split(pathsep)) # rejoin, removing empty parts. arcname = pathsep.join(x for x in arcname if x) return arcname diff --git a/Lib/zipimport.py b/Lib/zipimport.py index 25eaee9c0f291b..016f1b8a797988 100644 --- a/Lib/zipimport.py +++ b/Lib/zipimport.py @@ -63,8 +63,7 @@ class zipimporter(_bootstrap_external._LoaderBasics): # if found, or else read it from the archive. def __init__(self, path): if not isinstance(path, str): - import os - path = os.fsdecode(path) + raise TypeError(f"expected str, not {type(path)!r}") if not path: raise ZipImportError('archive path is empty', path=path) if alt_path_sep: @@ -102,64 +101,6 @@ def __init__(self, path): self.prefix += path_sep - # Check whether we can satisfy the import of the module named by - # 'fullname', or whether it could be a portion of a namespace - # package. Return self if we can load it, a string containing the - # full path if it's a possible namespace portion, None if we - # can't load it. - def find_loader(self, fullname, path=None): - """find_loader(fullname, path=None) -> self, str or None. - - Search for a module specified by 'fullname'. 'fullname' must be the - fully qualified (dotted) module name. It returns the zipimporter - instance itself if the module was found, a string containing the - full path name if it's possibly a portion of a namespace package, - or None otherwise. The optional 'path' argument is ignored -- it's - there for compatibility with the importer protocol. - - Deprecated since Python 3.10. Use find_spec() instead. - """ - _warnings.warn("zipimporter.find_loader() is deprecated and slated for " - "removal in Python 3.12; use find_spec() instead", - DeprecationWarning) - mi = _get_module_info(self, fullname) - if mi is not None: - # This is a module or package. - return self, [] - - # Not a module or regular package. See if this is a directory, and - # therefore possibly a portion of a namespace package. - - # We're only interested in the last path component of fullname - # earlier components are recorded in self.prefix. - modpath = _get_module_path(self, fullname) - if _is_dir(self, modpath): - # This is possibly a portion of a namespace - # package. Return the string representing its path, - # without a trailing separator. - return None, [f'{self.archive}{path_sep}{modpath}'] - - return None, [] - - - # Check whether we can satisfy the import of the module named by - # 'fullname'. Return self if we can, None if we can't. - def find_module(self, fullname, path=None): - """find_module(fullname, path=None) -> self or None. - - Search for a module specified by 'fullname'. 'fullname' must be the - fully qualified (dotted) module name. It returns the zipimporter - instance itself if the module was found, or None if it wasn't. - The optional 'path' argument is ignored -- it's there for compatibility - with the importer protocol. - - Deprecated since Python 3.10. Use find_spec() instead. - """ - _warnings.warn("zipimporter.find_module() is deprecated and slated for " - "removal in Python 3.12; use find_spec() instead", - DeprecationWarning) - return self.find_loader(fullname, path)[0] - def find_spec(self, fullname, target=None): """Create a ModuleSpec for the specified module. diff --git a/Mac/BuildScript/build-installer.py b/Mac/BuildScript/build-installer.py index 50b55f9cd1da84..9fd87f3361fde9 100755 --- a/Mac/BuildScript/build-installer.py +++ b/Mac/BuildScript/build-installer.py @@ -203,7 +203,7 @@ def internalTk(): # Do we use 8.6.8 when building our own copy # of Tcl/Tk or a modern version. -# We use the old version when buildin on +# We use the old version when building on # old versions of macOS due to build issues. def useOldTk(): return getBuildTuple() < (10, 15) @@ -246,9 +246,10 @@ def library_recipes(): result.extend([ dict( - name="OpenSSL 1.1.1n", - url="https://www.openssl.org/source/openssl-1.1.1n.tar.gz", - checksum='2aad5635f9bb338bc2c6b7d19cbc9676', + name="OpenSSL 1.1.1q", + url="https://www.openssl.org/source/openssl-1.1.1q.tar.gz", + checksum='d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca', + patches=['openssl1.1.1q-pr-18719.patch'], buildrecipe=build_universal_openssl, configure=None, install=None, @@ -797,10 +798,16 @@ def verifyThirdPartyFile(url, checksum, fname): print("Downloading %s"%(name,)) downloadURL(url, fname) print("Archive for %s stored as %s"%(name, fname)) + if len(checksum) == 32: + algo = 'md5' + elif len(checksum) == 64: + algo = 'sha256' + else: + raise ValueError(checksum) if os.system( - 'MD5=$(openssl md5 %s) ; test "${MD5##*= }" = "%s"' - % (shellQuote(fname), checksum) ): - fatal('MD5 checksum mismatch for file %s' % fname) + 'CHECKSUM=$(openssl %s %s) ; test "${CHECKSUM##*= }" = "%s"' + % (algo, shellQuote(fname), checksum) ): + fatal('%s checksum mismatch for file %s' % (algo, fname)) def build_universal_openssl(basedir, archList): """ diff --git a/Mac/BuildScript/openssl1.1.1q-pr-18719.patch b/Mac/BuildScript/openssl1.1.1q-pr-18719.patch new file mode 100644 index 00000000000000..6b4b1883159fd8 --- /dev/null +++ b/Mac/BuildScript/openssl1.1.1q-pr-18719.patch @@ -0,0 +1,17 @@ +https://github.com/openssl/openssl/commit/60f011f584d80447e86cae1d1bd3ae24bc13235b +This fixes a regression in 1.1.1q: + +test/v3ext.c:201:24: error: implicitly declaring library function 'memcmp' with type 'int (const void *, const void *, unsigned long)' [-Werror,-Wimplicit-function-declaration] + if (!TEST_true(memcmp(ip1->data, ip2->data, ip1->length) <= 0)) + +diff -Naur openssl-1.1.1q/test/v3ext.c openssl-1.1.1q-patched/test/v3ext.c +--- openssl-1.1.1q/test/v3ext.c 2022-07-05 09:08:33.000000000 +0000 ++++ openssl-1.1.1q-patched/test/v3ext.c 2022-09-05 16:54:45.740859256 +0000 +@@ -8,6 +8,7 @@ + */ + + #include <stdio.h> ++#include <string.h> + #include <openssl/x509.h> + #include <openssl/x509v3.h> + #include <openssl/pem.h> diff --git a/Mac/BuildScript/scripts/postflight.framework b/Mac/BuildScript/scripts/postflight.framework index 0f2e52c4ca1926..a63909358f1719 100755 --- a/Mac/BuildScript/scripts/postflight.framework +++ b/Mac/BuildScript/scripts/postflight.framework @@ -8,12 +8,12 @@ FWK="/Library/Frameworks/Python.framework/Versions/@PYVER@" "${FWK}/bin/python@PYVER@" -E -s -Wi \ "${FWK}/lib/python${PYVER}/compileall.py" -q -j0 \ - -f -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ + -f -x 'bad_coding|badsyntax|site-packages|test/test_lib2to3/data' \ "${FWK}/lib/python${PYVER}" "${FWK}/bin/python@PYVER@" -E -s -Wi -O \ "${FWK}/lib/python${PYVER}/compileall.py" -q -j0 \ - -f -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ + -f -x 'bad_coding|badsyntax|site-packages|test/test_lib2to3/data' \ "${FWK}/lib/python${PYVER}" "${FWK}/bin/python@PYVER@" -E -s -Wi \ diff --git a/Mac/IDLE/IDLE.app/Contents/Info.plist b/Mac/IDLE/IDLE.app/Contents/Info.plist index d197c77ed4b1a3..799a164cbdf2ed 100644 --- a/Mac/IDLE/IDLE.app/Contents/Info.plist +++ b/Mac/IDLE/IDLE.app/Contents/Info.plist @@ -10,6 +10,7 @@ <key>CFBundleTypeExtensions</key> <array> <string>py</string> + <string>pyi</string> <string>pyw</string> </array> <key>CFBundleTypeIconFile</key> diff --git a/Makefile.pre.in b/Makefile.pre.in index a178dd0a65c734..5201abb5ee5b41 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -36,7 +36,6 @@ abs_builddir= @abs_builddir@ CC= @CC@ CXX= @CXX@ -MAINCC= @MAINCC@ LINKCC= @LINKCC@ AR= @AR@ READELF= @READELF@ @@ -55,6 +54,8 @@ DTRACE= @DTRACE@ DFLAGS= @DFLAGS@ DTRACE_HEADERS= @DTRACE_HEADERS@ DTRACE_OBJS= @DTRACE_OBJS@ +DSYMUTIL= @DSYMUTIL@ +DSYMUTIL_PATH= @DSYMUTIL_PATH@ GNULD= @GNULD@ @@ -150,6 +151,8 @@ CONFINCLUDEDIR= $(exec_prefix)/include PLATLIBDIR= @PLATLIBDIR@ SCRIPTDIR= $(prefix)/$(PLATLIBDIR) ABIFLAGS= @ABIFLAGS@ +# executable name for shebangs +EXENAME= $(BINDIR)/python$(LDVERSION)$(EXE) # Variable used by ensurepip WHEEL_PKG_DIR= @WHEEL_PKG_DIR@ @@ -209,12 +212,6 @@ ENSUREPIP= @ENSUREPIP@ LIBMPDEC_A= Modules/_decimal/libmpdec/libmpdec.a LIBEXPAT_A= Modules/expat/libexpat.a -# OpenSSL options for setup.py so sysconfig can pick up AC_SUBST() vars. -OPENSSL_INCLUDES=@OPENSSL_INCLUDES@ -OPENSSL_LIBS=@OPENSSL_LIBS@ -OPENSSL_LDFLAGS=@OPENSSL_LDFLAGS@ -OPENSSL_RPATH=@OPENSSL_RPATH@ - # Module state, compiler flags and linker flags # Empty CFLAGS and LDFLAGS are omitted. # states: @@ -222,7 +219,7 @@ OPENSSL_RPATH=@OPENSSL_RPATH@ # * missing: build dependency is missing # * disabled: module is disabled # * n/a: module is not available on the current platform -# MODULE_EGG=yes # yes, missing, disabled, n/a +# MODULE_EGG_STATE=yes # yes, missing, disabled, n/a # MODULE_EGG_CFLAGS= # MODULE_EGG_LDFLAGS= @MODULE_BLOCK@ @@ -247,8 +244,8 @@ SRCDIRS= @SRCDIRS@ SUBDIRSTOO= Include Lib Misc # assets for Emscripten browser builds -WASM_ASSETS_DIR=".$(prefix)" -WASM_STDLIB="$(WASM_ASSETS_DIR)/local/lib/python$(VERSION)/os.py" +WASM_ASSETS_DIR=.$(prefix) +WASM_STDLIB=$(WASM_ASSETS_DIR)/lib/python$(VERSION)/os.py # Files and directories to be distributed CONFIGFILES= configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in @@ -290,8 +287,11 @@ HOSTRUNNER= @HOSTRUNNER@ PYTHON_FOR_REGEN?=@PYTHON_FOR_REGEN@ UPDATE_FILE=$(PYTHON_FOR_REGEN) $(srcdir)/Tools/scripts/update_file.py PYTHON_FOR_BUILD=@PYTHON_FOR_BUILD@ +# Single-platform builds depend on $(BUILDPYTHON). Cross builds use an +# external "build Python" and have an empty PYTHON_FOR_BUILD_DEPS. +PYTHON_FOR_BUILD_DEPS=@PYTHON_FOR_BUILD_DEPS@ -# Normal builds use Programs/_freeze_module.c for bootstrapping and +# Single-platform builds use Programs/_freeze_module.c for bootstrapping and # ./_bootstrap_python Programs/_freeze_module.py for remaining modules # Cross builds use an external "build Python" for all modules. PYTHON_FOR_FREEZE=@PYTHON_FOR_FREEZE@ @@ -313,7 +313,8 @@ PROFILE_TASK= @PROFILE_TASK@ # report files for gcov / lcov coverage report COVERAGE_INFO= $(abs_builddir)/coverage.info COVERAGE_REPORT=$(abs_builddir)/lcov-report -COVERAGE_REPORT_OPTIONS=--no-branch-coverage --title "CPython lcov report" +COVERAGE_LCOV_OPTIONS=--rc lcov_branch_coverage=1 +COVERAGE_REPORT_OPTIONS=--rc lcov_branch_coverage=1 --branch-coverage --title "CPython $(VERSION) LCOV report [commit $(shell $(GITVERSION))]" # === Definitions added by makesetup === @@ -337,10 +338,6 @@ IO_OBJS= \ Modules/_io/bytesio.o \ Modules/_io/stringio.o -########################################################################## - -LIBFFI_INCLUDEDIR= @LIBFFI_INCLUDEDIR@ - ########################################################################## # Parser @@ -393,6 +390,7 @@ PYTHON_OBJS= \ Python/getcopyright.o \ Python/getplatform.o \ Python/getversion.o \ + Python/ceval_gil.o \ Python/hamt.o \ Python/hashtable.o \ Python/import.o \ @@ -439,7 +437,6 @@ PYTHON_OBJS= \ # Objects OBJECT_OBJS= \ Objects/abstract.o \ - Objects/accu.o \ Objects/boolobject.o \ Objects/bytes_methods.o \ Objects/bytearrayobject.o \ @@ -481,7 +478,9 @@ OBJECT_OBJS= \ Objects/unicodeobject.o \ Objects/unicodectype.o \ Objects/unionobject.o \ - Objects/weakrefobject.o + Objects/weakrefobject.o \ + Objects/perf_trampoline.o \ + @PERF_TRAMPOLINE_OBJ@ DEEPFREEZE_OBJS = Python/deepfreeze/deepfreeze.o @@ -580,9 +579,10 @@ LIBEXPAT_HEADERS= \ # Default target all: @DEF_MAKE_ALL_RULE@ -build_all: check-clean-src $(BUILDPYTHON) oldsharedmods sharedmods gdbhooks \ - Programs/_testembed python-config -build_wasm: check-clean-src $(BUILDPYTHON) platform oldsharedmods python-config +build_all: check-clean-src $(BUILDPYTHON) platform sharedmods \ + gdbhooks Programs/_testembed scripts checksharedmods rundsymutil +build_wasm: check-clean-src $(BUILDPYTHON) platform sharedmods \ + python-config checksharedmods # Check that the source is clean when building out of source. check-clean-src: @@ -645,30 +645,39 @@ profile-opt: profile-run-stamp -rm -f profile-clean-stamp $(MAKE) @DEF_MAKE_RULE@ CFLAGS_NODIST="$(CFLAGS_NODIST) $(PGO_PROF_USE_FLAG)" LDFLAGS_NODIST="$(LDFLAGS_NODIST)" +bolt-opt: @PREBOLT_RULE@ + rm -f *.fdata + @LLVM_BOLT@ ./$(BUILDPYTHON) -instrument -instrumentation-file-append-pid -instrumentation-file=$(abspath $(BUILDPYTHON).bolt) -o $(BUILDPYTHON).bolt_inst + ./$(BUILDPYTHON).bolt_inst $(PROFILE_TASK) || true + @MERGE_FDATA@ $(BUILDPYTHON).*.fdata > $(BUILDPYTHON).fdata + @LLVM_BOLT@ ./$(BUILDPYTHON) -o $(BUILDPYTHON).bolt -data=$(BUILDPYTHON).fdata -update-debug-sections -reorder-blocks=ext-tsp -reorder-functions=hfsort+ -split-functions=3 -icf=1 -inline-all -split-eh -reorder-functions-use-hot-size -peepholes=all -jump-tables=aggressive -inline-ap -indirect-call-promotion=all -dyno-stats -use-gnu-stack -frame-opt=hot + rm -f *.fdata + rm -f $(BUILDPYTHON).bolt_inst + mv $(BUILDPYTHON).bolt $(BUILDPYTHON) + # Compile and run with gcov .PHONY=coverage coverage-lcov coverage-report coverage: @echo "Building with support for coverage checking:" $(MAKE) clean - $(MAKE) @DEF_MAKE_RULE@ CFLAGS="$(CFLAGS) -O0 -pg --coverage" LIBS="$(LIBS) --coverage" + $(MAKE) @DEF_MAKE_RULE@ CFLAGS="$(CFLAGS) -O0 -pg --coverage" LDFLAGS="$(LDFLAGS) --coverage" coverage-lcov: @echo "Creating Coverage HTML report with LCOV:" @rm -f $(COVERAGE_INFO) @rm -rf $(COVERAGE_REPORT) - @lcov --capture --directory $(abs_builddir) \ + @lcov $(COVERAGE_LCOV_OPTIONS) --capture \ + --directory $(abs_builddir) \ --base-directory $(realpath $(abs_builddir)) \ --path $(realpath $(abs_srcdir)) \ --output-file $(COVERAGE_INFO) @ # remove 3rd party modules, system headers and internal files with @ # debug, test or dummy functions. - @lcov --remove $(COVERAGE_INFO) \ + @lcov $(COVERAGE_LCOV_OPTIONS) --remove $(COVERAGE_INFO) \ '*/Modules/_blake2/impl/*' \ '*/Modules/_ctypes/libffi*/*' \ '*/Modules/_decimal/libmpdec/*' \ '*/Modules/expat/*' \ - '*/Modules/zlib/*' \ - '*/Include/*' \ '*/Modules/xx*.c' \ '*/Python/pyfpe.c' \ '*/Python/pystrcmp.c' \ @@ -676,7 +685,8 @@ coverage-lcov: '/usr/local/include/*' \ '/usr/lib/gcc/*' \ --output-file $(COVERAGE_INFO) - @genhtml $(COVERAGE_INFO) --output-directory $(COVERAGE_REPORT) \ + @genhtml $(COVERAGE_INFO) \ + --output-directory $(COVERAGE_REPORT) \ $(COVERAGE_REPORT_OPTIONS) @echo @echo "lcov report at $(COVERAGE_REPORT)/index.html" @@ -695,12 +705,13 @@ coverage-report: regen-token regen-frozen .PHONY=clinic clinic: check-clean-src $(srcdir)/Modules/_blake2/blake2s_impl.c $(PYTHON_FOR_REGEN) $(srcdir)/Tools/clinic/clinic.py --make --srcdir $(srcdir) + $(PYTHON_FOR_REGEN) $(srcdir)/Tools/scripts/generate_global_objects.py # Build the interpreter $(BUILDPYTHON): Programs/python.o $(LINK_PYTHON_DEPS) $(LINKCC) $(PY_CORE_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/python.o $(LINK_PYTHON_OBJS) $(LIBS) $(MODLIBS) $(SYSLIBS) -platform: $(BUILDPYTHON) pybuilddir.txt +platform: $(PYTHON_FOR_BUILD_DEPS) pybuilddir.txt $(RUNSHARED) $(PYTHON_FOR_BUILD) -c 'import sys ; from sysconfig import get_platform ; print("%s-%d.%d" % (get_platform(), *sys.version_info[:2]))' >platform # Create build directory and generate the sysconfig build-time data there. @@ -710,7 +721,7 @@ platform: $(BUILDPYTHON) pybuilddir.txt # problems by creating a dummy pybuilddir.txt just to allow interpreter # initialization to succeed. It will be overwritten by generate-posix-vars # or removed in case of failure. -pybuilddir.txt: $(BUILDPYTHON) +pybuilddir.txt: $(PYTHON_FOR_BUILD_DEPS) @echo "none" > ./pybuilddir.txt $(RUNSHARED) $(PYTHON_FOR_BUILD) -S -m sysconfig --generate-posix-vars ;\ if test $$? -ne 0 ; then \ @@ -724,22 +735,6 @@ $(srcdir)/Modules/_blake2/blake2s_impl.c: $(srcdir)/Modules/_blake2/blake2b_impl $(PYTHON_FOR_REGEN) $(srcdir)/Modules/_blake2/blake2b2s.py $(PYTHON_FOR_REGEN) $(srcdir)/Tools/clinic/clinic.py -f $@ -# Build the shared modules -# Under GNU make, MAKEFLAGS are sorted and normalized; the 's' for -# -s, --silent or --quiet is always the first char. -# Under BSD make, MAKEFLAGS might be " -s -v x=y". -# Ignore macros passed by GNU make, passed after -- -sharedmods: $(BUILDPYTHON) pybuilddir.txt @LIBMPDEC_INTERNAL@ @LIBEXPAT_INTERNAL@ - @case "`echo X $$MAKEFLAGS | sed 's/^X //;s/ -- .*//'`" in \ - *\ -s*|s*) quiet="-q";; \ - *) quiet="";; \ - esac; \ - echo "$(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ - $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build"; \ - $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ - $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build - - # Build static library $(LIBRARY): $(LIBRARY_OBJS) -rm -f $@ @@ -813,12 +808,13 @@ $(DLLLIBRARY) libpython$(LDVERSION).dll.a: $(LIBRARY_OBJS) # wasm assets directory is relative to current build dir, e.g. "./usr/local". # --preload-file turns a relative asset path into an absolute path. +.PHONY: wasm_stdlib +wasm_stdlib: $(WASM_STDLIB) $(WASM_STDLIB): $(srcdir)/Lib/*.py $(srcdir)/Lib/*/*.py \ $(srcdir)/Tools/wasm/wasm_assets.py \ - Makefile pybuilddir.txt Modules/Setup.local \ - python.html python.worker.js + Makefile pybuilddir.txt Modules/Setup.local $(PYTHON_FOR_BUILD) $(srcdir)/Tools/wasm/wasm_assets.py \ - --builddir . --prefix $(prefix) + --buildroot . --prefix $(prefix) python.html: $(srcdir)/Tools/wasm/python.html python.worker.js @cp $(srcdir)/Tools/wasm/python.html $@ @@ -828,11 +824,7 @@ python.worker.js: $(srcdir)/Tools/wasm/python.worker.js ########################################################################## # Build static libmpdec.a -LIBMPDEC_CFLAGS=$(PY_STDMODULE_CFLAGS) $(CCSHARED) @LIBMPDEC_CFLAGS@ - -# for setup.py -DECIMAL_CFLAGS=@LIBMPDEC_CFLAGS@ -DECIMAL_LDFLAGS=@LIBMPDEC_LDFLAGS@ +LIBMPDEC_CFLAGS=@LIBMPDEC_CFLAGS@ $(PY_STDMODULE_CFLAGS) $(CCSHARED) # "%.o: %c" is not portable Modules/_decimal/libmpdec/basearith.o: $(srcdir)/Modules/_decimal/libmpdec/basearith.c $(LIBMPDEC_HEADERS) $(PYTHON_HEADERS) @@ -886,11 +878,7 @@ $(LIBMPDEC_A): $(LIBMPDEC_OBJS) ########################################################################## # Build static libexpat.a -LIBEXPAT_CFLAGS=$(PY_STDMODULE_CFLAGS) $(CCSHARED) @LIBEXPAT_CFLAGS@ - -# for setup.py -EXPAT_CFLAGS=@LIBEXPAT_CFLAGS@ -EXPAT_LDFLAGS=@LIBEXPAT_LDFLAGS@ +LIBEXPAT_CFLAGS=@LIBEXPAT_CFLAGS@ $(PY_STDMODULE_CFLAGS) $(CCSHARED) Modules/expat/xmlparse.o: $(srcdir)/Modules/expat/xmlparse.c $(LIBEXPAT_HEADERS) $(PYTHON_HEADERS) $(CC) -c $(LIBEXPAT_CFLAGS) -o $@ $(srcdir)/Modules/expat/xmlparse.c @@ -908,7 +896,7 @@ $(LIBEXPAT_A): $(LIBEXPAT_OBJS) # create relative links from build/lib.platform/egg.so to Modules/egg.so # pybuilddir.txt is created too late. We cannot use it in Makefile # targets. ln --relative is not portable. -oldsharedmods: $(SHAREDMODS) pybuilddir.txt +sharedmods: $(SHAREDMODS) pybuilddir.txt @target=`cat pybuilddir.txt`; \ $(MKDIR_P) $$target; \ for mod in X $(SHAREDMODS); do \ @@ -917,6 +905,26 @@ oldsharedmods: $(SHAREDMODS) pybuilddir.txt fi; \ done +# dependency on BUILDPYTHON ensures that the target is run last +checksharedmods: sharedmods $(PYTHON_FOR_BUILD_DEPS) $(BUILDPYTHON) + @$(RUNSHARED) $(PYTHON_FOR_BUILD) $(srcdir)/Tools/scripts/check_extension_modules.py + +rundsymutil: sharedmods $(PYTHON_FOR_BUILD_DEPS) $(BUILDPYTHON) + @if [ ! -z $(DSYMUTIL) ] ; then \ + echo $(DSYMUTIL_PATH) $(BUILDPYTHON); \ + $(DSYMUTIL_PATH) $(BUILDPYTHON); \ + if test -f $(LDLIBRARY); then \ + echo $(DSYMUTIL_PATH) $(LDLIBRARY); \ + $(DSYMUTIL_PATH) $(LDLIBRARY); \ + fi; \ + for mod in X $(SHAREDMODS); do \ + if test $$mod != X; then \ + echo $(DSYMUTIL_PATH) $$mod; \ + $(DSYMUTIL_PATH) $$mod; \ + fi; \ + done \ + fi + Modules/Setup.local: @# Create empty Setup.local when file was deleted by user echo "# Edit this file for local setup changes" > $@ @@ -937,7 +945,7 @@ Makefile Modules/config.c: Makefile.pre \ $(SHELL) $(MAKESETUP) -c $(srcdir)/Modules/config.c.in \ -s Modules \ Modules/Setup.local \ - @MODULES_SETUP_STDLIB@ \ + Modules/Setup.stdlib \ Modules/Setup.bootstrap \ $(srcdir)/Modules/Setup @mv config.c Modules @@ -1198,6 +1206,14 @@ regen-global-objects: $(srcdir)/Tools/scripts/generate_global_objects.py ############################################################################ # ABI +regen-abidump: all + @$(MKDIR_P) $(srcdir)/Doc/data/ + abidw "libpython$(LDVERSION).so" --no-architecture --out-file $(srcdir)/Doc/data/python$(LDVERSION).abi.new + @$(UPDATE_FILE) --create $(srcdir)/Doc/data/python$(LDVERSION).abi $(srcdir)/Doc/data/python$(LDVERSION).abi.new + +check-abidump: all + abidiff $(srcdir)/Doc/data/python$(LDVERSION).abi "libpython$(LDVERSION).so" --drop-private-types --no-architecture --no-added-syms + regen-limited-abi: all $(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Tools/scripts/stable_abi.py --generate-all $(srcdir)/Misc/stable_abi.toml @@ -1238,10 +1254,10 @@ Modules/getpath.o: $(srcdir)/Modules/getpath.c Python/frozen_modules/getpath.h M -o $@ $(srcdir)/Modules/getpath.c Programs/python.o: $(srcdir)/Programs/python.c - $(MAINCC) -c $(PY_CORE_CFLAGS) -o $@ $(srcdir)/Programs/python.c + $(CC) -c $(PY_CORE_CFLAGS) -o $@ $(srcdir)/Programs/python.c Programs/_testembed.o: $(srcdir)/Programs/_testembed.c Programs/test_frozenmain.h - $(MAINCC) -c $(PY_CORE_CFLAGS) -o $@ $(srcdir)/Programs/_testembed.c + $(CC) -c $(PY_CORE_CFLAGS) -o $@ $(srcdir)/Programs/_testembed.c Modules/_sre/sre.o: $(srcdir)/Modules/_sre/sre.c $(srcdir)/Modules/_sre/sre.h $(srcdir)/Modules/_sre/sre_constants.h $(srcdir)/Modules/_sre/sre_lib.h @@ -1424,8 +1440,7 @@ regen-opcode-targets: $(srcdir)/Python/opcode_targets.h.new $(UPDATE_FILE) $(srcdir)/Python/opcode_targets.h $(srcdir)/Python/opcode_targets.h.new -Python/ceval.o: $(srcdir)/Python/opcode_targets.h $(srcdir)/Python/ceval_gil.h \ - $(srcdir)/Python/condvar.h +Python/ceval.o: $(srcdir)/Python/opcode_targets.h $(srcdir)/Python/condvar.h Python/frozen.o: $(FROZEN_FILES_OUT) @@ -1560,10 +1575,12 @@ PYTHON_HEADERS= \ $(srcdir)/Include/cpython/objimpl.h \ $(srcdir)/Include/cpython/odictobject.h \ $(srcdir)/Include/cpython/picklebufobject.h \ + $(srcdir)/Include/cpython/pthread_stubs.h \ $(srcdir)/Include/cpython/pyctype.h \ $(srcdir)/Include/cpython/pydebug.h \ $(srcdir)/Include/cpython/pyerrors.h \ $(srcdir)/Include/cpython/pyfpe.h \ + $(srcdir)/Include/cpython/pyframe.h \ $(srcdir)/Include/cpython/pylifecycle.h \ $(srcdir)/Include/cpython/pymem.h \ $(srcdir)/Include/cpython/pystate.h \ @@ -1579,7 +1596,6 @@ PYTHON_HEADERS= \ $(srcdir)/Include/cpython/weakrefobject.h \ \ $(srcdir)/Include/internal/pycore_abstract.h \ - $(srcdir)/Include/internal/pycore_accu.h \ $(srcdir)/Include/internal/pycore_asdl.h \ $(srcdir)/Include/internal/pycore_ast.h \ $(srcdir)/Include/internal/pycore_ast_state.h \ @@ -1595,6 +1611,7 @@ PYTHON_HEADERS= \ $(srcdir)/Include/internal/pycore_condvar.h \ $(srcdir)/Include/internal/pycore_context.h \ $(srcdir)/Include/internal/pycore_dict.h \ + $(srcdir)/Include/internal/pycore_descrobject.h \ $(srcdir)/Include/internal/pycore_dtoa.h \ $(srcdir)/Include/internal/pycore_exceptions.h \ $(srcdir)/Include/internal/pycore_fileutils.h \ @@ -1623,7 +1640,9 @@ PYTHON_HEADERS= \ $(srcdir)/Include/internal/pycore_pylifecycle.h \ $(srcdir)/Include/internal/pycore_pymem.h \ $(srcdir)/Include/internal/pycore_pystate.h \ + $(srcdir)/Include/internal/pycore_range.h \ $(srcdir)/Include/internal/pycore_runtime.h \ + $(srcdir)/Include/internal/pycore_runtime_init_generated.h \ $(srcdir)/Include/internal/pycore_runtime_init.h \ $(srcdir)/Include/internal/pycore_signal.h \ $(srcdir)/Include/internal/pycore_sliceobject.h \ @@ -1663,7 +1682,7 @@ cleantest: all # Run a basic set of regression tests. # This excludes some tests that are particularly resource-intensive. -test: @DEF_MAKE_RULE@ platform +test: all $(TESTRUNNER) $(TESTOPTS) # Run the full test suite twice - once without .pyc files, and once with. @@ -1673,7 +1692,7 @@ test: @DEF_MAKE_RULE@ platform # the bytecode read from a .pyc file had the bug, sometimes the directly # generated bytecode. This is sometimes a very shy bug needing a lot of # sample data. -testall: @DEF_MAKE_RULE@ platform +testall: all -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f $(TESTPYTHON) -E $(srcdir)/Lib/compileall.py -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f @@ -1682,7 +1701,7 @@ testall: @DEF_MAKE_RULE@ platform # Run the test suite for both architectures in a Universal build on OSX. # Must be run on an Intel box. -testuniversal: @DEF_MAKE_RULE@ platform +testuniversal: all @if [ `arch` != 'i386' ]; then \ echo "This can only be used on OSX/i386" ;\ exit 1 ;\ @@ -1693,12 +1712,16 @@ testuniversal: @DEF_MAKE_RULE@ platform # Like testall, but with only one pass and without multiple processes. # Run an optional script to include information about the build environment. -buildbottest: all platform +buildbottest: all -@if which pybuildbot.identify >/dev/null 2>&1; then \ pybuildbot.identify "CC='$(CC)'" "CXX='$(CXX)'"; \ fi $(TESTRUNNER) -j 1 -u all -W --slowest --fail-env-changed --timeout=$(TESTTIMEOUT) $(TESTOPTS) +# Like testall, but run Python tests with HOSTRUNNER directly. +hostrunnertest: all + $(RUNSHARED) $(HOSTRUNNER) ./$(BUILDPYTHON) -m test -u all $(TESTOPTS) + pythoninfo: all $(RUNSHARED) $(HOSTRUNNER) ./$(BUILDPYTHON) -m test.pythoninfo @@ -1708,7 +1731,7 @@ QUICKTESTOPTS= $(TESTOPTS) -x test_subprocess test_io test_lib2to3 \ test_multiprocessing_forkserver \ test_mailbox test_nntplib test_socket test_poll \ test_select test_zipfile test_concurrent_futures -quicktest: @DEF_MAKE_RULE@ platform +quicktest: all $(TESTRUNNER) $(QUICKTESTOPTS) # SSL tests @@ -1719,6 +1742,10 @@ multisslcompile: all multissltest: all $(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Tools/ssl/multissltests.py +# All install targets use the "all" target as synchronization point to +# prevent race conditions with PGO builds. PGO builds use recursive make, +# which can lead to two parallel `./python setup.py build` processes that +# step on each others toes. install: @FRAMEWORKINSTALLFIRST@ commoninstall bininstall maninstall @FRAMEWORKINSTALLLAST@ if test "x$(ENSUREPIP)" != "xno" ; then \ case $(ENSUREPIP) in \ @@ -1741,20 +1768,25 @@ altinstall: commoninstall commoninstall: check-clean-src @FRAMEWORKALTINSTALLFIRST@ \ altbininstall libinstall inclinstall libainstall \ - sharedinstall oldsharedinstall altmaninstall \ + sharedinstall altmaninstall \ @FRAMEWORKALTINSTALLLAST@ # Install shared libraries enabled by Setup DESTDIRS= $(exec_prefix) $(LIBDIR) $(BINLIBDEST) $(DESTSHARED) -oldsharedinstall: $(DESTSHARED) $(SHAREDMODS) +sharedinstall: $(DESTSHARED) all @for i in X $(SHAREDMODS); do \ if test $$i != X; then \ echo $(INSTALL_SHARED) $$i $(DESTSHARED)/`basename $$i`; \ $(INSTALL_SHARED) $$i $(DESTDIR)$(DESTSHARED)/`basename $$i`; \ + if test -d "$$i.dSYM"; then \ + echo $(DSYMUTIL_PATH) $(DESTDIR)$(DESTSHARED)/`basename $$i`; \ + $(DSYMUTIL_PATH) $(DESTDIR)$(DESTSHARED)/`basename $$i`; \ + fi; \ fi; \ done + $(DESTSHARED): @for i in $(DESTDIRS); \ do \ @@ -1815,6 +1847,23 @@ altbininstall: $(BUILDPYTHON) @FRAMEWORKPYTHONW@ -output $(DESTDIR)$(BINDIR)/python$(VERSION)-intel64$(EXE) \ $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE); \ fi + # Install macOS debug information (if available) + if test -d "$(BUILDPYTHON).dSYM"; then \ + echo $(DSYMUTIL_PATH) $(DESTDIR)$(BINDIR)/python$(LDVERSION)$(EXE); \ + $(DSYMUTIL_PATH) $(DESTDIR)$(BINDIR)/python$(LDVERSION)$(EXE); \ + fi + if test "$(PYTHONFRAMEWORKDIR)" = "no-framework" ; then \ + if test -d "$(LDLIBRARY).dSYM"; then \ + echo $(DSYMUTIL_PATH) $(DESTDIR)$(LIBDIR)/$(INSTSONAME); \ + $(DSYMUTIL_PATH) $(DESTDIR)$(LIBDIR)/$(INSTSONAME); \ + fi \ + else \ + if test -d "$(LDLIBRARY).dSYM"; then \ + echo $(DSYMUTIL_PATH) $(DESTDIR)$(PYTHONFRAMEWORKPREFIX)/$(INSTSONAME); \ + $(DSYMUTIL_PATH) $(DESTDIR)$(PYTHONFRAMEWORKPREFIX)/$(INSTSONAME); \ + fi \ + fi + bininstall: altbininstall if test ! -d $(DESTDIR)$(LIBPC); then \ @@ -1909,13 +1958,8 @@ LIBSUBDIRS= asyncio \ xmlrpc \ zoneinfo \ __phello__ -TESTSUBDIRS= ctypes/test \ - distutils/tests \ +TESTSUBDIRS= distutils/tests \ idlelib/idle_test \ - lib2to3/tests \ - lib2to3/tests/data \ - lib2to3/tests/data/fixers \ - lib2to3/tests/data/fixers/myfixes \ test test/audiodata \ test/capath test/cjkencodings \ test/data test/decimaltestdata \ @@ -1924,6 +1968,7 @@ TESTSUBDIRS= ctypes/test \ test/libregrtest test/sndhdrdata \ test/subprocessdata test/support \ test/test_asyncio \ + test/test_ctypes \ test/test_email test/test_email/data \ test/test_import \ test/test_import/data \ @@ -1937,15 +1982,6 @@ TESTSUBDIRS= ctypes/test \ test/test_importlib \ test/test_importlib/builtin \ test/test_importlib/data \ - test/test_importlib/data01 \ - test/test_importlib/data01/subdirectory \ - test/test_importlib/data02 \ - test/test_importlib/data02/one \ - test/test_importlib/data02/two \ - test/test_importlib/data03 \ - test/test_importlib/data03/namespace \ - test/test_importlib/data03/namespace/portion1 \ - test/test_importlib/data03/namespace/portion2 \ test/test_importlib/extension \ test/test_importlib/frozen \ test/test_importlib/import_ \ @@ -1969,23 +2005,36 @@ TESTSUBDIRS= ctypes/test \ test/test_importlib/namespace_pkgs/project3 \ test/test_importlib/namespace_pkgs/project3/parent \ test/test_importlib/namespace_pkgs/project3/parent/child \ - test/test_importlib/namespacedata01 \ test/test_importlib/partial \ test/test_importlib/resources \ + test/test_importlib/resources/data01 \ + test/test_importlib/resources/data01/subdirectory \ + test/test_importlib/resources/data02 \ + test/test_importlib/resources/data02/one \ + test/test_importlib/resources/data02/two \ + test/test_importlib/resources/data03 \ + test/test_importlib/resources/data03/namespace \ + test/test_importlib/resources/data03/namespace/portion1 \ + test/test_importlib/resources/data03/namespace/portion2 \ + test/test_importlib/resources/namespacedata01 \ + test/test_importlib/resources/zipdata01 \ + test/test_importlib/resources/zipdata02 \ test/test_importlib/source \ - test/test_importlib/zipdata01 \ - test/test_importlib/zipdata02 \ test/test_json \ + test/test_lib2to3 \ + test/test_lib2to3/data \ + test/test_lib2to3/data/fixers \ + test/test_lib2to3/data/fixers/myfixes \ test/test_peg_generator \ + test/test_tkinter \ test/test_tools \ + test/test_ttk \ test/test_warnings test/test_warnings/data \ test/test_zoneinfo test/test_zoneinfo/data \ + test/test_unittest test/test_unittest/testmock \ test/tracedmodules \ test/xmltestdata test/xmltestdata/c14n-20 \ - test/ziptestdata \ - tkinter/test tkinter/test/test_tkinter \ - tkinter/test/test_ttk \ - unittest/test unittest/test/testmock + test/ziptestdata TEST_MODULES=@TEST_MODULES@ libinstall: all $(srcdir)/Modules/xxmodule.c @@ -2063,17 +2112,17 @@ libinstall: all $(srcdir)/Modules/xxmodule.c -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \ -j0 -d $(LIBDEST) -f \ - -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ + -x 'bad_coding|badsyntax|site-packages|test/test_lib2to3/data' \ $(DESTDIR)$(LIBDEST) -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ $(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \ -j0 -d $(LIBDEST) -f \ - -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ + -x 'bad_coding|badsyntax|site-packages|test/test_lib2to3/data' \ $(DESTDIR)$(LIBDEST) -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ $(PYTHON_FOR_BUILD) -Wi -OO $(DESTDIR)$(LIBDEST)/compileall.py \ -j0 -d $(LIBDEST) -f \ - -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ + -x 'bad_coding|badsyntax|site-packages|test/test_lib2to3/data' \ $(DESTDIR)$(LIBDEST) -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \ @@ -2097,7 +2146,7 @@ libinstall: all $(srcdir)/Modules/xxmodule.c python-config: $(srcdir)/Misc/python-config.in Misc/python-config.sh @ # Substitution happens here, as the completely-expanded BINDIR @ # is not available in configure - sed -e "s,@EXENAME@,$(BINDIR)/python$(LDVERSION)$(EXE)," < $(srcdir)/Misc/python-config.in >python-config.py + sed -e "s,@EXENAME@,$(EXENAME)," < $(srcdir)/Misc/python-config.in >python-config.py @ # Replace makefile compat. variable references with shell script compat. ones; $(VAR) -> ${VAR} LC_ALL=C sed -e 's,\$$(\([A-Za-z0-9_]*\)),\$$\{\1\},g' < Misc/python-config.sh >python-config @ # On Darwin, always use the python version of the script, the shell @@ -2107,6 +2156,29 @@ python-config: $(srcdir)/Misc/python-config.in Misc/python-config.sh cp python-config.py python-config; \ fi +# macOS' make seems to ignore a dependency on a +# "$(BUILD_SCRIPTS_DIR): $(MKDIR_P) $@" rule. +BUILD_SCRIPTS_DIR=build/scripts-$(VERSION) +SCRIPT_2TO3=$(BUILD_SCRIPTS_DIR)/2to3-$(VERSION) +SCRIPT_IDLE=$(BUILD_SCRIPTS_DIR)/idle$(VERSION) +SCRIPT_PYDOC=$(BUILD_SCRIPTS_DIR)/pydoc$(VERSION) + +$(SCRIPT_2TO3): $(srcdir)/Tools/scripts/2to3 + @$(MKDIR_P) $(BUILD_SCRIPTS_DIR) + sed -e "s,/usr/bin/env python3,$(EXENAME)," < $(srcdir)/Tools/scripts/2to3 > $@ + @chmod +x $@ + +$(SCRIPT_IDLE): $(srcdir)/Tools/scripts/idle3 + @$(MKDIR_P) $(BUILD_SCRIPTS_DIR) + sed -e "s,/usr/bin/env python3,$(EXENAME)," < $(srcdir)/Tools/scripts/idle3 > $@ + @chmod +x $@ + +$(SCRIPT_PYDOC): $(srcdir)/Tools/scripts/pydoc3 + @$(MKDIR_P) $(BUILD_SCRIPTS_DIR) + sed -e "s,/usr/bin/env python3,$(EXENAME)," < $(srcdir)/Tools/scripts/pydoc3 > $@ + @chmod +x $@ + +scripts: $(SCRIPT_2TO3) $(SCRIPT_IDLE) $(SCRIPT_PYDOC) python-config # Install the include files INCLDIRSTOMAKE=$(INCLUDEDIR) $(CONFINCLUDEDIR) $(INCLUDEPY) $(CONFINCLUDEPY) @@ -2153,7 +2225,7 @@ LIBPL= @LIBPL@ # pkgconfig directory LIBPC= $(LIBDIR)/pkgconfig -libainstall: @DEF_MAKE_RULE@ python-config +libainstall: all scripts @for i in $(LIBDIR) $(LIBPL) $(LIBPC) $(BINDIR); \ do \ if test ! -d $(DESTDIR)$$i; then \ @@ -2189,6 +2261,9 @@ libainstall: @DEF_MAKE_RULE@ python-config $(INSTALL_SCRIPT) $(srcdir)/install-sh $(DESTDIR)$(LIBPL)/install-sh $(INSTALL_SCRIPT) python-config.py $(DESTDIR)$(LIBPL)/python-config.py $(INSTALL_SCRIPT) python-config $(DESTDIR)$(BINDIR)/python$(LDVERSION)-config + $(INSTALL_SCRIPT) $(SCRIPT_2TO3) $(DESTDIR)$(BINDIR)/2to3-$(VERSION) + $(INSTALL_SCRIPT) $(SCRIPT_IDLE) $(DESTDIR)$(BINDIR)/idle$(VERSION) + $(INSTALL_SCRIPT) $(SCRIPT_PYDOC) $(DESTDIR)$(BINDIR)/pydoc$(VERSION) @if [ -s Modules/python.exp -a \ "`echo $(MACHDEP) | sed 's/^\(...\).*/\1/'`" = "aix" ]; then \ echo; echo "Installing support files for building shared extension modules on AIX:"; \ @@ -2205,17 +2280,6 @@ libainstall: @DEF_MAKE_RULE@ python-config else true; \ fi -# Install the dynamically loadable modules -# This goes into $(exec_prefix) -sharedinstall: sharedmods - $(RUNSHARED) $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \ - --prefix=$(prefix) \ - --install-scripts=$(BINDIR) \ - --install-platlib=$(DESTSHARED) \ - --root=$(DESTDIR)/ - -rm $(DESTDIR)$(DESTSHARED)/_sysconfigdata_$(ABIFLAGS)_$(MACHDEP)_$(MULTIARCH).py - -rm -r $(DESTDIR)$(DESTSHARED)/__pycache__ - # Here are a couple of targets for MacOSX again, to install a full # framework-based Python. frameworkinstall installs everything, the # subtargets install specific parts. Much of the actual work is offloaded to @@ -2300,6 +2364,9 @@ config.status: $(srcdir)/configure .PRECIOUS: config.status $(BUILDPYTHON) Makefile Makefile.pre +Objects/asm_trampoline.o: $(srcdir)/Objects/asm_trampoline.S + $(CC) -c $(PY_CORE_CFLAGS) -o $@ $< + # Some make's put the object file in the current directory .c.o: $(CC) -c $(PY_CORE_CFLAGS) -o $@ $< @@ -2374,6 +2441,7 @@ clean-retain-profile: pycremoval find . -name '*.[oa]' -exec rm -f {} ';' find . -name '*.s[ol]' -exec rm -f {} ';' find . -name '*.so.[0-9]*.[0-9]*' -exec rm -f {} ';' + find . -name '*.lto' -exec rm -f {} ';' find . -name '*.wasm' -exec rm -f {} ';' find . -name '*.lst' -exec rm -f {} ';' find build -name 'fficonfig.h' -exec rm -f {} ';' || true @@ -2383,7 +2451,7 @@ clean-retain-profile: pycremoval -rm -f Lib/lib2to3/*Grammar*.pickle -rm -f _bootstrap_python -rm -f python.html python*.js python.data python*.symbols python*.map - -rm -rf $(WASM_STDLIB) + -rm -f $(WASM_STDLIB) -rm -f Programs/_testembed Programs/_freeze_module -rm -f Python/deepfreeze/*.[co] -rm -f Python/frozen_modules/*.h @@ -2437,7 +2505,7 @@ distclean: clobber -exec rm -f {} ';' # Check that all symbols exported by libpython start with "Py" or "_Py" -smelly: @DEF_MAKE_RULE@ +smelly: all $(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Tools/scripts/smelly.py # Find files with funny names @@ -2472,7 +2540,7 @@ funny: -o -print # Perform some verification checks on any modified files. -patchcheck: @DEF_MAKE_RULE@ +patchcheck: all $(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Tools/scripts/patchcheck.py check-limited-abi: all @@ -2489,26 +2557,30 @@ update-config: Python/thread.o: @THREADHEADERS@ $(srcdir)/Python/condvar.h # Declare targets that aren't real files -.PHONY: all build_all build_wasm sharedmods check-clean-src oldsharedmods test quicktest -.PHONY: install altinstall oldsharedinstall bininstall altbininstall -.PHONY: maninstall libinstall inclinstall libainstall sharedinstall +.PHONY: all build_all build_wasm check-clean-src +.PHONY: sharedmods checksharedmods test quicktest rundsymutil +.PHONY: install altinstall sharedinstall bininstall altbininstall +.PHONY: maninstall libinstall inclinstall libainstall .PHONY: frameworkinstall frameworkinstallframework frameworkinstallstructure .PHONY: frameworkinstallmaclib frameworkinstallapps frameworkinstallunixtools .PHONY: frameworkaltinstallunixtools recheck clean clobber distclean .PHONY: smelly funny patchcheck touch altmaninstall commoninstall .PHONY: clean-retain-profile profile-removal run_profile_task .PHONY: build_all_generate_profile build_all_merge_profile -.PHONY: gdbhooks +.PHONY: gdbhooks scripts ########################################################################## -# Module dependencies +# Module dependencies and platform-specific files + +MODULE_DEPS=$(PYTHON_HEADERS) Modules/config.c $(EXPORTSYMS) MODULE_CMATH_DEPS=$(srcdir)/Modules/_math.h MODULE_MATH_DEPS=$(srcdir)/Modules/_math.h MODULE_PYEXPAT_DEPS=$(LIBEXPAT_HEADERS) @LIBEXPAT_INTERNAL@ MODULE_UNICODEDATA_DEPS=$(srcdir)/Modules/unicodedata_db.h $(srcdir)/Modules/unicodename_db.h MODULE__BLAKE2_DEPS=$(srcdir)/Modules/_blake2/impl/blake2-config.h $(srcdir)/Modules/_blake2/impl/blake2-impl.h $(srcdir)/Modules/_blake2/impl/blake2.h $(srcdir)/Modules/_blake2/impl/blake2b-load-sse2.h $(srcdir)/Modules/_blake2/impl/blake2b-load-sse41.h $(srcdir)/Modules/_blake2/impl/blake2b-ref.c $(srcdir)/Modules/_blake2/impl/blake2b-round.h $(srcdir)/Modules/_blake2/impl/blake2b.c $(srcdir)/Modules/_blake2/impl/blake2s-load-sse2.h $(srcdir)/Modules/_blake2/impl/blake2s-load-sse41.h $(srcdir)/Modules/_blake2/impl/blake2s-load-xop.h $(srcdir)/Modules/_blake2/impl/blake2s-ref.c $(srcdir)/Modules/_blake2/impl/blake2s-round.h $(srcdir)/Modules/_blake2/impl/blake2s.c $(srcdir)/Modules/_blake2/blake2module.h $(srcdir)/Modules/hashlib.h -MODULE__CTYPES_DEPS=$(srcdir)/Modules/_ctypes/ctypes.h +MODULE__CTYPES_DEPS=$(srcdir)/Modules/_ctypes/ctypes.h $(srcdir)/Modules/_ctypes/darwin/dlfcn.h +MODULE__CTYPES_MALLOC_CLOSURE=@MODULE__CTYPES_MALLOC_CLOSURE@ MODULE__DECIMAL_DEPS=$(srcdir)/Modules/_decimal/docstrings.h $(LIBMPDEC_HEADERS) @LIBMPDEC_INTERNAL@ MODULE__ELEMENTTREE_DEPS=$(srcdir)/Modules/pyexpat.c $(LIBEXPAT_HEADERS) @LIBEXPAT_INTERNAL@ MODULE__HASHLIB_DEPS=$(srcdir)/Modules/hashlib.h @@ -2518,9 +2590,9 @@ MODULE__SHA1_DEPS=$(srcdir)/Modules/hashlib.h MODULE__SHA256_DEPS=$(srcdir)/Modules/hashlib.h MODULE__SHA3_DEPS=$(srcdir)/Modules/_sha3/sha3.c $(srcdir)/Modules/_sha3/sha3.h $(srcdir)/Modules/hashlib.h MODULE__SHA512_DEPS=$(srcdir)/Modules/hashlib.h -MODULE__SOCKET_DEPS=$(srcdir)/Modules/socketmodule.h +MODULE__SOCKET_DEPS=$(srcdir)/Modules/socketmodule.h $(srcdir)/Modules/addrinfo.h $(srcdir)/Modules/getaddrinfo.c $(srcdir)/Modules/getnameinfo.c MODULE__SSL_DEPS=$(srcdir)/Modules/_ssl.h $(srcdir)/Modules/_ssl/cert.c $(srcdir)/Modules/_ssl/debughelpers.c $(srcdir)/Modules/_ssl/misc.c $(srcdir)/Modules/_ssl_data.h $(srcdir)/Modules/_ssl_data_111.h $(srcdir)/Modules/_ssl_data_300.h $(srcdir)/Modules/socketmodule.h -MODULE__TESTCAPI_DEPS=$(srcdir)/Modules/testcapi_long.h +MODULE__TESTCAPI_DEPS=$(srcdir)/Modules/testcapi_long.h $(srcdir)/Modules/_testcapi/parts.h MODULE__SQLITE3_DEPS=$(srcdir)/Modules/_sqlite/connection.h $(srcdir)/Modules/_sqlite/cursor.h $(srcdir)/Modules/_sqlite/microprotocols.h $(srcdir)/Modules/_sqlite/module.h $(srcdir)/Modules/_sqlite/prepare_protocol.h $(srcdir)/Modules/_sqlite/row.h $(srcdir)/Modules/_sqlite/util.h # IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/Misc/ACKS b/Misc/ACKS index d0e18303434f22..0edea9219d05ef 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -198,6 +198,7 @@ Gawain Bolton Carl Friedrich Bolz-Tereick Forest Bond Gregory Bond +David Bonner Angelin Booz Médéric Boquien Matias Bordese @@ -548,6 +549,7 @@ Nils Fischbeck Frederik Fix Tom Flanagan Matt Fleming +Sean Fleming Hernán Martínez Foffani Benjamin Fogle Artem Fokin @@ -607,6 +609,7 @@ Marius Gedminas Jan-Philip Gehrcke Thomas Gellekum Gabriel Genellina +Philip Georgi Christos Georgiou Elazar (אלעזר) Gershuni Ben Gertzfield @@ -916,6 +919,7 @@ Sanyam Khurana Tyler Kieft Mads Kiilerich Jason Killen +Derek D. Kim Jan Kim Taek Joo Kim Sam Kimbrel @@ -933,6 +937,7 @@ Ron Klatchko Reid Kleckner Carsten Klein Bastian Kleineidam +Joel Klimont Bob Kline Matthias Klose Jeremy Kloth @@ -1207,6 +1212,7 @@ Gideon Mitchell Tim Mitchell Zubin Mithra Florian Mladitsch +Kevin Modzelewski Doug Moen Jakub Molinski Juliette Monsel @@ -1413,6 +1419,7 @@ John Popplewell Matheus Vieira Portela Davin Potts Guillaume Pratte +Pedro Pregueiro Florian Preinstorfer Alex Prengère Amrit Prem @@ -1435,6 +1442,7 @@ Ram Rachum Jeffrey Rackauckas Jérôme Radix Burton Radons +Kirill (python273) R. Abhilash Raj Shorya Raj Ajith Ramachandran @@ -1455,6 +1463,7 @@ Edward K. Ream Chris Rebert Marc Recht John Redford +Kalyan Reddy Terry J. Reedy Gareth Rees John Reese @@ -1587,6 +1596,7 @@ Ed Schouten Scott Schram Robin Schreiber Chad J. Schroeder +Simon-Martin Schroeder Christian Schubert Sam Schulenburg Andreas Schwab @@ -1978,6 +1988,7 @@ Gordon Worley Darren Worrall Thomas Wouters Daniel Wozniak +Simon Wrede Marcin Niemira Wei Wu Heiko Wundram diff --git a/Misc/HISTORY b/Misc/HISTORY index 570638869f92ed..8ca89854ed13b5 100644 --- a/Misc/HISTORY +++ b/Misc/HISTORY @@ -21790,7 +21790,7 @@ Library x == y is False, and x != y is True. This is akin to the change made for mixed-type comparisons of datetime objects in 2.3a2; more info about the rationale is in the NEWS entry for that. See also SF bug - report <http://www.python.org/sf/693121>. + report <https://bugs.python.org/issue693121>. - On Unix platforms, if os.listdir() is called with a Unicode argument, it now returns Unicode strings. (This behavior was added earlier @@ -22025,7 +22025,7 @@ Extension modules now. today() and now() now round system timestamps to the closest - microsecond <http://www.python.org/sf/661086>. This repairs an + microsecond <https://bugs.python.org/issue661086>. This repairs an irritation most likely seen on Windows systems. In dt.astimezone(tz), if tz.utcoffset(dt) returns a duration, @@ -22080,7 +22080,7 @@ Extension modules datetime.fromtimestamp(): Like datetime.now() above, this had less than useful behavior when the optional tinzo argument was specified. See - also SF bug report <http://www.python.org/sf/660872>. + also SF bug report <https://bugs.python.org/issue660872>. date and datetime comparison: In order to prevent comparison from falling back to the default compare-object-addresses strategy, these @@ -22139,10 +22139,10 @@ Library dependent path modules (e.g. ntpath.py) rather than os.py, so these variables are now available via os.path. They continue to be available from the os module. - (see <http://www.python.org/sf/680789>). + (see <https://bugs.python.org/issue680789>). - array.array was added to the types repr.py knows about (see - <http://www.python.org/sf/680789>). + <https://bugs.python.org/issue680789>). - The new pickletools.py contains lots of documentation about pickle internals, and supplies some helpers for working with pickles, such as @@ -22527,7 +22527,7 @@ Core and builtins potential drawback is that list.sort() may require temp space of len(list)*2 bytes (``*4`` on a 64-bit machine). It's therefore possible for list.sort() to raise MemoryError now, even if a comparison function - does not. See <http://www.python.org/sf/587076> for full details. + does not. See <https://bugs.python.org/issue587076> for full details. - All standard iterators now ensure that, once StopIteration has been raised, all future calls to next() on the same iterator will also diff --git a/Misc/NEWS.d/3.10.0a1.rst b/Misc/NEWS.d/3.10.0a1.rst index 1c1c2d54e8c20a..471811662644bf 100644 --- a/Misc/NEWS.d/3.10.0a1.rst +++ b/Misc/NEWS.d/3.10.0a1.rst @@ -2204,7 +2204,7 @@ Handle cases where the ``end_lineno`` is ``None`` on .. nonce: zwl5Hc .. section: Library -:mod:`distutils` upload creates SHA2-256 and Blake2b-256 digests. MD5 +``distutils`` upload creates SHA2-256 and Blake2b-256 digests. MD5 digests is skipped if platform blocks MD5. .. diff --git a/Misc/NEWS.d/3.10.0a3.rst b/Misc/NEWS.d/3.10.0a3.rst index 4f182e8e3f1f0c..699a0dd9e8d7c4 100644 --- a/Misc/NEWS.d/3.10.0a3.rst +++ b/Misc/NEWS.d/3.10.0a3.rst @@ -763,7 +763,7 @@ as a positional-only argument. .. nonce: qLkNh8 .. section: Library -Enum: fix regression involving inheriting a multiply-inherited enum +Enum: fix regression involving inheriting a multiply inherited enum .. diff --git a/Misc/NEWS.d/3.10.0a4.rst b/Misc/NEWS.d/3.10.0a4.rst index beac530fcb28f6..95f9319668db45 100644 --- a/Misc/NEWS.d/3.10.0a4.rst +++ b/Misc/NEWS.d/3.10.0a4.rst @@ -446,7 +446,7 @@ In ``importlib.metadata``: - ``EntryPoint`` objects now expose a ``.dist`` object referencing the ``Distribution`` when constructed from a ``Distribution``. - Add support for package discovery under package normalization rules. - The object returned by ``metadata()`` now has a -formally-defined protocol called ``PackageMetadata`` with declared support +formally defined protocol called ``PackageMetadata`` with declared support for the ``.get_all()`` method. - Synced with importlib_metadata 3.3. .. diff --git a/Misc/NEWS.d/3.10.0b1.rst b/Misc/NEWS.d/3.10.0b1.rst index 2a3d358edde902..f29fc6632db26c 100644 --- a/Misc/NEWS.d/3.10.0b1.rst +++ b/Misc/NEWS.d/3.10.0b1.rst @@ -1142,7 +1142,7 @@ name>`` instead of ``SQL logic error``. Patch by Erlend E. Aasland. .. nonce: GK9a0l .. section: Library -Install schemes in :mod:`distutils.command.install` are now loaded from +Install schemes in ``distutils.command.install`` are now loaded from :mod:`sysconfig`. .. @@ -1152,7 +1152,7 @@ Install schemes in :mod:`distutils.command.install` are now loaded from .. nonce: SenEje .. section: Library -:mod:`distutils.sysconfig` has been merged to :mod:`sysconfig`. +``distutils.sysconfig`` has been merged to :mod:`sysconfig`. .. diff --git a/Misc/NEWS.d/3.11.0a1.rst b/Misc/NEWS.d/3.11.0a1.rst index 33841d9e4e39bb..7670e482ede5b6 100644 --- a/Misc/NEWS.d/3.11.0a1.rst +++ b/Misc/NEWS.d/3.11.0a1.rst @@ -1445,7 +1445,7 @@ asynchronous. .. nonce: NOwcDJ .. section: Library -Fix clang rpath issue in :mod:`distutils`. The UnixCCompiler now uses +Fix clang rpath issue in ``distutils``. The UnixCCompiler now uses correct clang option to add a runtime library directory (rpath) to a shared library. @@ -2798,7 +2798,7 @@ documentation for deprecations. .. nonce: rvyf2v .. section: Library -Restore back :func:`parse_makefile` in :mod:`distutils.sysconfig` because it +Restore back :func:`parse_makefile` in ``distutils.sysconfig`` because it behaves differently than the similar implementation in :mod:`sysconfig`. .. diff --git a/Misc/NEWS.d/3.11.0a2.rst b/Misc/NEWS.d/3.11.0a2.rst index 1f742a29ebcc9b..8ae8847d846b12 100644 --- a/Misc/NEWS.d/3.11.0a2.rst +++ b/Misc/NEWS.d/3.11.0a2.rst @@ -702,16 +702,6 @@ details. Patch by Jochem Schulenklopper. .. -.. bpo: 10572 -.. date: 2021-01-07-01-25-38 -.. nonce: gEEZ9z -.. section: Library - -Move :mod:`sqlite3` tests to ``/Lib/test/test_sqlite3``. Patch by Erlend E. -Aasland. - -.. - .. bpo: 41374 .. date: 2020-07-27-19-21-05 .. nonce: cd-kFL @@ -956,6 +946,16 @@ use a stricter regular expression. Patch by Victor Stinner. .. +.. bpo: 10572 +.. date: 2021-01-07-01-25-38 +.. nonce: gEEZ9z +.. section: Tests + +Rename :mod:`sqlite3` tests from ``test_sqlite`` to ``test_sqlite3``, and +relocate them to ``Lib/test/test_sqlite3``. Patch by Erlend E. Aasland. + +.. + .. bpo: 43158 .. date: 2021-11-01-12-51-46 .. nonce: fghS6w diff --git a/Misc/NEWS.d/3.11.0a4.rst b/Misc/NEWS.d/3.11.0a4.rst index 2391f43e2b7fa9..bcb6e8b7bdde31 100644 --- a/Misc/NEWS.d/3.11.0a4.rst +++ b/Misc/NEWS.d/3.11.0a4.rst @@ -694,7 +694,7 @@ removed in the future. .. section: Library :mod:`argparse` raises :exc:`ValueError` with clear message when trying to -render usage for an empty mutually-exclusive group. Previously it raised a +render usage for an empty mutually exclusive group. Previously it raised a cryptic :exc:`IndexError`. .. diff --git a/Misc/NEWS.d/3.11.0a6.rst b/Misc/NEWS.d/3.11.0a6.rst index 24fc5f05666a63..68b80e46690dc9 100644 --- a/Misc/NEWS.d/3.11.0a6.rst +++ b/Misc/NEWS.d/3.11.0a6.rst @@ -1043,7 +1043,8 @@ Respect `--with-suffix` when building on case-insensitive file systems. .. nonce: MD783M .. section: Build -Building Python now requires a C11 compiler without optional C11 features. +Building Python now requires a C11 compiler. Optional C11 features are not +required. Patch by Victor Stinner. .. diff --git a/Misc/NEWS.d/3.11.0a7.rst b/Misc/NEWS.d/3.11.0a7.rst index 5eaf8ec1f63c03..8e7ccd4d6771ee 100644 --- a/Misc/NEWS.d/3.11.0a7.rst +++ b/Misc/NEWS.d/3.11.0a7.rst @@ -1099,7 +1099,7 @@ wrong. .. section: Library Fix handling of the ``stacklevel`` argument to logging functions in the -:mod:`logging` module so that it is consistent accross all logging functions +:mod:`logging` module so that it is consistent across all logging functions and, as advertised, similar to the ``stacklevel`` argument used in :meth:`~warnings.warn`. diff --git a/Misc/NEWS.d/3.11.0b1.rst b/Misc/NEWS.d/3.11.0b1.rst index c135eff4598e40..d8c2ec0a799711 100644 --- a/Misc/NEWS.d/3.11.0b1.rst +++ b/Misc/NEWS.d/3.11.0b1.rst @@ -109,7 +109,7 @@ methods are called only on objects of the correct type. .. nonce: 2PpaIN .. section: Core and Builtins -Deoptimize statically-allocated code objects during ``Py_FINALIZE()`` so +Deoptimize statically allocated code objects during ``Py_FINALIZE()`` so that future ``_PyCode_Quicken`` calls always start with unquickened code. .. diff --git a/Misc/NEWS.d/3.5.1rc1.rst b/Misc/NEWS.d/3.5.1rc1.rst index d06817ccb950ec..dc247ce2096a7d 100644 --- a/Misc/NEWS.d/3.5.1rc1.rst +++ b/Misc/NEWS.d/3.5.1rc1.rst @@ -900,7 +900,7 @@ Kurenkov. .. nonce: QhQ9RD .. section: Library -Fixed functools.singledispatch on classes with falsy metaclasses. Patch by +Fixed functools.singledispatch on classes with false metaclasses. Patch by Ethan Furman. .. diff --git a/Misc/NEWS.d/3.5.3rc1.rst b/Misc/NEWS.d/3.5.3rc1.rst index 2307fccbf6f92d..bf4ef9302c9d1d 100644 --- a/Misc/NEWS.d/3.5.3rc1.rst +++ b/Misc/NEWS.d/3.5.3rc1.rst @@ -832,7 +832,7 @@ In the traceback module, restore the formatting of exception messages like .. nonce: 3UhyPo .. section: Library -Allow falsy values to be used for msg parameter of subTest(). +Allow false values to be used for msg parameter of subTest(). .. diff --git a/Misc/NEWS.d/3.6.0b2.rst b/Misc/NEWS.d/3.6.0b2.rst index 627465e887bc18..9413c6e01917d5 100644 --- a/Misc/NEWS.d/3.6.0b2.rst +++ b/Misc/NEWS.d/3.6.0b2.rst @@ -460,7 +460,7 @@ In the traceback module, restore the formatting of exception messages like .. nonce: 3UhyPo .. section: Library -Allow falsy values to be used for msg parameter of subTest(). +Allow false values to be used for msg parameter of subTest(). .. diff --git a/Misc/NEWS.d/3.7.0a1.rst b/Misc/NEWS.d/3.7.0a1.rst index 244bb37e7c61d6..9bada1b76be7a8 100644 --- a/Misc/NEWS.d/3.7.0a1.rst +++ b/Misc/NEWS.d/3.7.0a1.rst @@ -3149,7 +3149,7 @@ they are finished in multiprocessing.Pool. .. section: Library The mode argument of os.makedirs() no longer affects the file permission -bits of newly-created intermediate-level directories. +bits of newly created intermediate-level directories. .. @@ -4453,7 +4453,7 @@ In the traceback module, restore the formatting of exception messages like .. nonce: 3UhyPo .. section: Library -Allow falsy values to be used for msg parameter of subTest(). +Allow false values to be used for msg parameter of subTest(). .. diff --git a/Misc/NEWS.d/3.8.0a1.rst b/Misc/NEWS.d/3.8.0a1.rst index 09b858d250c337..991bbc128670b2 100644 --- a/Misc/NEWS.d/3.8.0a1.rst +++ b/Misc/NEWS.d/3.8.0a1.rst @@ -17,7 +17,7 @@ malicious or buggy certificate can result into segfault. Vulnerability .. section: Security The :option:`-I` command line option (run Python in isolated mode) is now -also copied by the :mod:`multiprocessing` and :mod:`distutils` modules when +also copied by the :mod:`multiprocessing` and ``distutils`` modules when spawning child processes. Previously, only :option:`-E` and :option:`-s` options (enabled by :option:`-I`) were copied. @@ -361,7 +361,7 @@ the "n" formatter. .. nonce: gjm1LO .. section: Core and Builtins -Fix a possible segfault involving a newly-created coroutine. Patch by +Fix a possible segfault involving a newly created coroutine. Patch by Zackery Spytz. .. @@ -2270,7 +2270,7 @@ last release was in 2000. Mac OS 9 last release was in 2001. .. nonce: laV_IE .. section: Library -:func:`~distutils.utils.check_environ` of :mod:`distutils.utils` now catches +:func:`~distutils.utils.check_environ` of ``distutils.utils`` now catches :exc:`KeyError` on calling :func:`pwd.getpwuid`: don't create the ``HOME`` environment variable in this case. @@ -3070,7 +3070,7 @@ Add deprecation warning when `loop` is used in methods: `asyncio.sleep`, .. nonce: Pr3-iG .. section: Library -ZIP files created by :mod:`distutils` will now include entries for +ZIP files created by ``distutils`` will now include entries for directories. .. @@ -3720,7 +3720,7 @@ Deprecate passing non-ThreadPoolExecutor instances to .. section: Library Restore ``msilib.Win64`` to preserve backwards compatibility since it's -already used by :mod:`distutils`' ``bdist_msi`` command. +already used by ``distutils``' ``bdist_msi`` command. .. diff --git a/Misc/NEWS.d/3.8.0a2.rst b/Misc/NEWS.d/3.8.0a2.rst index 1c0abab4c474ac..223126145c77f1 100644 --- a/Misc/NEWS.d/3.8.0a2.rst +++ b/Misc/NEWS.d/3.8.0a2.rst @@ -356,7 +356,7 @@ Add *headers* optional keyword-only parameter to .. section: Library Fix C implementation of pickle.loads to use importlib's locking mechanisms, -and thereby avoid using partially-loaded modules. Patch by Tim Burgess. +and thereby avoid using partially loaded modules. Patch by Tim Burgess. .. diff --git a/Misc/NEWS.d/3.8.0a4.rst b/Misc/NEWS.d/3.8.0a4.rst index fc952fa9dcc8e1..a21de196aa9652 100644 --- a/Misc/NEWS.d/3.8.0a4.rst +++ b/Misc/NEWS.d/3.8.0a4.rst @@ -338,7 +338,7 @@ unexpected cache miss. .. nonce: MW1TLt .. section: Library -Fix :mod:`distutils.sysconfig` if :data:`sys.executable` is ``None`` or an +Fix ``distutils.sysconfig`` if :data:`sys.executable` is ``None`` or an empty string: use :func:`os.getcwd` to initialize ``project_base``. Fix also the distutils build command: don't use :data:`sys.executable` if it is ``None`` or an empty string. @@ -350,7 +350,7 @@ also the distutils build command: don't use :data:`sys.executable` if it is .. nonce: Fg4EXb .. section: Library -:func:`shutil.which` and :func:`distutils.spawn.find_executable` now use +:func:`shutil.which` and ``distutils.spawn.find_executable`` now use ``os.confstr("CS_PATH")`` if available instead of :data:`os.defpath`, if the ``PATH`` environment variable is not set. Moreover, don't use ``os.confstr("CS_PATH")`` nor :data:`os.defpath` if the ``PATH`` environment diff --git a/Misc/NEWS.d/3.9.0a1.rst b/Misc/NEWS.d/3.9.0a1.rst index 45f232f1948d5d..eace8755a0d171 100644 --- a/Misc/NEWS.d/3.9.0a1.rst +++ b/Misc/NEWS.d/3.9.0a1.rst @@ -5769,4 +5769,4 @@ Convert posixmodule.c statically allocated types ``DirEntryType`` and .. section: C API Use singular/plural noun in error message when instantiating an abstract -class with non-overriden abstract method(s). +class with non-overridden abstract method(s). diff --git a/Misc/NEWS.d/3.9.0a5.rst b/Misc/NEWS.d/3.9.0a5.rst index 49a118ad7e4308..25342d21d8f0b1 100644 --- a/Misc/NEWS.d/3.9.0a5.rst +++ b/Misc/NEWS.d/3.9.0a5.rst @@ -623,7 +623,7 @@ connections. .. nonce: 5a822c .. section: Library -Reimplement :func:`distutils.spawn.spawn` function with the +Reimplement ``distutils.spawn.spawn`` function with the :mod:`subprocess` module. .. @@ -1022,7 +1022,7 @@ lock-related objects from :mod:`threading`) around 49-day uptime. .. nonce: MnHdYl .. section: Windows -:mod:`distutils` will no longer statically link :file:`vcruntime140.dll` +``distutils`` will no longer statically link :file:`vcruntime140.dll` when a redistributable version is unavailable. All future releases of CPython will include a copy of this DLL to ensure distributed extensions can continue to load. diff --git a/Misc/NEWS.d/next/Build/2022-05-31-18-04-58.gh-issue-69093.6lSa0C.rst b/Misc/NEWS.d/next/Build/2022-05-31-18-04-58.gh-issue-69093.6lSa0C.rst new file mode 100644 index 00000000000000..b061d6c2186c10 --- /dev/null +++ b/Misc/NEWS.d/next/Build/2022-05-31-18-04-58.gh-issue-69093.6lSa0C.rst @@ -0,0 +1 @@ +Fix ``Modules/Setup.stdlib.in`` rule for ``_sqlite3`` extension. diff --git a/Misc/NEWS.d/next/Build/2022-06-04-12-53-53.gh-issue-93491.ehM211.rst b/Misc/NEWS.d/next/Build/2022-06-04-12-53-53.gh-issue-93491.ehM211.rst new file mode 100644 index 00000000000000..b3560fac81d2a9 --- /dev/null +++ b/Misc/NEWS.d/next/Build/2022-06-04-12-53-53.gh-issue-93491.ehM211.rst @@ -0,0 +1 @@ +``configure`` now detects and reports :pep:`11` support tiers. diff --git a/Misc/NEWS.d/next/Build/2022-06-08-14-28-03.gh-issue-93584.0xfHOK.rst b/Misc/NEWS.d/next/Build/2022-06-08-14-28-03.gh-issue-93584.0xfHOK.rst new file mode 100644 index 00000000000000..07ca5fad592b2d --- /dev/null +++ b/Misc/NEWS.d/next/Build/2022-06-08-14-28-03.gh-issue-93584.0xfHOK.rst @@ -0,0 +1,2 @@ +Address race condition in ``Makefile`` when installing a PGO build. All +``test`` and ``install`` targets now depend on ``all`` target. diff --git a/Misc/NEWS.d/next/Build/2022-06-25-23-25-47.gh-issue-94280.YhEyW_.rst b/Misc/NEWS.d/next/Build/2022-06-25-23-25-47.gh-issue-94280.YhEyW_.rst new file mode 100644 index 00000000000000..1199e842177d7d --- /dev/null +++ b/Misc/NEWS.d/next/Build/2022-06-25-23-25-47.gh-issue-94280.YhEyW_.rst @@ -0,0 +1,3 @@ +Updated pegen regeneration script on Windows to find and use Python 3.9 or +higher. Prior to this, pegen regeneration already required 3.9 or higher, +but the script may have used lower versions of Python. diff --git a/Misc/NEWS.d/next/Build/2022-06-27-11-57-15.gh-issue-93939.rv7s8W.rst b/Misc/NEWS.d/next/Build/2022-06-27-11-57-15.gh-issue-93939.rv7s8W.rst new file mode 100644 index 00000000000000..f9ecf5022e2489 --- /dev/null +++ b/Misc/NEWS.d/next/Build/2022-06-27-11-57-15.gh-issue-93939.rv7s8W.rst @@ -0,0 +1,2 @@ +The ``2to3``, ``idle``, and ``pydoc`` scripts are now generated and installed by +``Makefile`` instead of ``setup.py``. diff --git a/Misc/NEWS.d/next/Build/2022-06-28-09-42-10.gh-issue-93939._VWxKW.rst b/Misc/NEWS.d/next/Build/2022-06-28-09-42-10.gh-issue-93939._VWxKW.rst new file mode 100644 index 00000000000000..ab873bc839f4e5 --- /dev/null +++ b/Misc/NEWS.d/next/Build/2022-06-28-09-42-10.gh-issue-93939._VWxKW.rst @@ -0,0 +1,2 @@ +C extension modules are now built by ``configure`` and ``make`` +instead of ``distutils`` and ``setup.py``. diff --git a/Misc/NEWS.d/next/Build/2022-06-29-08-58-31.gh-issue-94404.3MadM6.rst b/Misc/NEWS.d/next/Build/2022-06-29-08-58-31.gh-issue-94404.3MadM6.rst new file mode 100644 index 00000000000000..c7c47533c54ae2 --- /dev/null +++ b/Misc/NEWS.d/next/Build/2022-06-29-08-58-31.gh-issue-94404.3MadM6.rst @@ -0,0 +1,3 @@ +``makesetup`` now works around an issue with sed on macOS and uses correct +CFLAGS for object files that end up in a shared extension. Module CFLAGS +are used before PY_STDMODULE_CFLAGS to avoid clashes with system headers. diff --git a/Misc/NEWS.d/next/Build/2022-06-30-09-57-39.gh-issue-90005.9-pQyR.rst b/Misc/NEWS.d/next/Build/2022-06-30-09-57-39.gh-issue-90005.9-pQyR.rst new file mode 100644 index 00000000000000..9b14f767847dad --- /dev/null +++ b/Misc/NEWS.d/next/Build/2022-06-30-09-57-39.gh-issue-90005.9-pQyR.rst @@ -0,0 +1 @@ +``_dbm`` module dependencies are now detected by configure. diff --git a/Misc/NEWS.d/next/Build/2022-06-30-17-00-54.gh-issue-90005.iiq5qD.rst b/Misc/NEWS.d/next/Build/2022-06-30-17-00-54.gh-issue-90005.iiq5qD.rst new file mode 100644 index 00000000000000..62f40b8f95f6ce --- /dev/null +++ b/Misc/NEWS.d/next/Build/2022-06-30-17-00-54.gh-issue-90005.iiq5qD.rst @@ -0,0 +1 @@ +Fix building ``_ctypes`` extension without ``pkg-config``. diff --git a/Misc/NEWS.d/next/Build/2022-06-30-17-18-23.gh-issue-90005.EIOOla.rst b/Misc/NEWS.d/next/Build/2022-06-30-17-18-23.gh-issue-90005.EIOOla.rst new file mode 100644 index 00000000000000..90a2dd486c1956 --- /dev/null +++ b/Misc/NEWS.d/next/Build/2022-06-30-17-18-23.gh-issue-90005.EIOOla.rst @@ -0,0 +1,5 @@ +Dependencies of :mod:`readline` and :mod:`curses` module are now detected in +``configure`` script with ``pkg-config``. Only ``ncurses`` / ``ncursesw`` +are detected automatically. The old ``curses`` library is not configured +automatically. Workaround for missing ``termcap`` or ``tinfo`` library +has been removed. diff --git a/Misc/NEWS.d/next/Build/2022-07-08-10-28-23.gh-issue-94682.ZtGt_0.rst b/Misc/NEWS.d/next/Build/2022-07-08-10-28-23.gh-issue-94682.ZtGt_0.rst new file mode 100644 index 00000000000000..60717a15bcc271 --- /dev/null +++ b/Misc/NEWS.d/next/Build/2022-07-08-10-28-23.gh-issue-94682.ZtGt_0.rst @@ -0,0 +1 @@ +Build and test with OpenSSL 1.1.1q diff --git a/Misc/NEWS.d/next/Build/2022-07-12-13-39-18.gh-issue-94773.koHKm5.rst b/Misc/NEWS.d/next/Build/2022-07-12-13-39-18.gh-issue-94773.koHKm5.rst new file mode 100644 index 00000000000000..ed7e40c91103d6 --- /dev/null +++ b/Misc/NEWS.d/next/Build/2022-07-12-13-39-18.gh-issue-94773.koHKm5.rst @@ -0,0 +1,2 @@ +``deepfreeze.py`` now supports code object with frozensets that contain +incompatible, unsortable types. diff --git a/Misc/NEWS.d/next/Build/2022-07-13-10-13-10.gh-issue-94801.3xUB24.rst b/Misc/NEWS.d/next/Build/2022-07-13-10-13-10.gh-issue-94801.3xUB24.rst new file mode 100644 index 00000000000000..5caf84f96da131 --- /dev/null +++ b/Misc/NEWS.d/next/Build/2022-07-13-10-13-10.gh-issue-94801.3xUB24.rst @@ -0,0 +1,2 @@ +``configure`` now uses custom flags like ``ZLIB_CFLAGS`` and ``ZLIB_LIBS`` +when searching for headers and libraries. diff --git a/Misc/NEWS.d/next/Build/2022-07-14-02-45-44.gh-issue-94841.lLRTdf.rst b/Misc/NEWS.d/next/Build/2022-07-14-02-45-44.gh-issue-94841.lLRTdf.rst new file mode 100644 index 00000000000000..f7ad4f88a51db0 --- /dev/null +++ b/Misc/NEWS.d/next/Build/2022-07-14-02-45-44.gh-issue-94841.lLRTdf.rst @@ -0,0 +1 @@ +Fix the possible performance regression of :c:func:`PyObject_Free` compiled with MSVC version 1932. diff --git a/Misc/NEWS.d/next/Build/2022-07-14-11-13-26.gh-issue-94847.s3Kr5p.rst b/Misc/NEWS.d/next/Build/2022-07-14-11-13-26.gh-issue-94847.s3Kr5p.rst new file mode 100644 index 00000000000000..a6d1e7277da4c0 --- /dev/null +++ b/Misc/NEWS.d/next/Build/2022-07-14-11-13-26.gh-issue-94847.s3Kr5p.rst @@ -0,0 +1,2 @@ +Fixed ``_decimal`` module build issue on GCC when compiling with LTO and +pydebug. Debug builds no longer force inlining of functions. diff --git a/Misc/NEWS.d/next/Build/2022-07-21-09-17-01.gh-issue-95085.E9x2S_.rst b/Misc/NEWS.d/next/Build/2022-07-21-09-17-01.gh-issue-95085.E9x2S_.rst new file mode 100644 index 00000000000000..02dbd2b8b3118f --- /dev/null +++ b/Misc/NEWS.d/next/Build/2022-07-21-09-17-01.gh-issue-95085.E9x2S_.rst @@ -0,0 +1,2 @@ +Platforms ``wasm32-unknown-emscripten`` and ``wasm32-unknown-wasi`` have +been promoted to :pep:`11` tier 3 platform support. diff --git a/Misc/NEWS.d/next/Build/2022-07-23-21-39-09.gh-issue-95174.7cYMZR.rst b/Misc/NEWS.d/next/Build/2022-07-23-21-39-09.gh-issue-95174.7cYMZR.rst new file mode 100644 index 00000000000000..72ce183ac8329d --- /dev/null +++ b/Misc/NEWS.d/next/Build/2022-07-23-21-39-09.gh-issue-95174.7cYMZR.rst @@ -0,0 +1 @@ +Python now skips missing :mod:`socket` functions and methods on WASI. WASI can only create sockets from existing fd / accept and has no netdb. diff --git a/Misc/NEWS.d/next/Build/2022-07-25-08-59-35.gh-issue-95174.g8woUW.rst b/Misc/NEWS.d/next/Build/2022-07-25-08-59-35.gh-issue-95174.g8woUW.rst new file mode 100644 index 00000000000000..05f29955072c54 --- /dev/null +++ b/Misc/NEWS.d/next/Build/2022-07-25-08-59-35.gh-issue-95174.g8woUW.rst @@ -0,0 +1,2 @@ +Python now detects missing ``dup`` function in WASI and works around some +missing :mod:`errno`, :mod:`select`, and :mod:`socket` constants. diff --git a/Misc/NEWS.d/next/Build/2022-07-25-09-48-43.gh-issue-95145.ZNS3dj.rst b/Misc/NEWS.d/next/Build/2022-07-25-09-48-43.gh-issue-95145.ZNS3dj.rst new file mode 100644 index 00000000000000..c751b5e3adc474 --- /dev/null +++ b/Misc/NEWS.d/next/Build/2022-07-25-09-48-43.gh-issue-95145.ZNS3dj.rst @@ -0,0 +1,2 @@ +wasm32-wasi builds no longer depend on WASIX's pthread stubs. Python now has +its own stubbed pthread API. diff --git a/Misc/NEWS.d/next/Build/2022-07-26-18-13-34.gh-issue-94801.9fREfy.rst b/Misc/NEWS.d/next/Build/2022-07-26-18-13-34.gh-issue-94801.9fREfy.rst new file mode 100644 index 00000000000000..a58be30e81b057 --- /dev/null +++ b/Misc/NEWS.d/next/Build/2022-07-26-18-13-34.gh-issue-94801.9fREfy.rst @@ -0,0 +1,2 @@ +Fix a regression in ``configure`` script that caused some header checks to +ignore custom ``CPPFLAGS``. The regression was introduced in :gh:`94802`. diff --git a/Misc/NEWS.d/next/Build/2022-08-04-15-29-35.gh-issue-93744.svRuqm.rst b/Misc/NEWS.d/next/Build/2022-08-04-15-29-35.gh-issue-93744.svRuqm.rst new file mode 100644 index 00000000000000..fa9ade25718fcb --- /dev/null +++ b/Misc/NEWS.d/next/Build/2022-08-04-15-29-35.gh-issue-93744.svRuqm.rst @@ -0,0 +1,3 @@ +Remove the ``configure --with-cxx-main`` build option: it didn't work for +many years. Remove the ``MAINCC`` variable from ``configure`` and +``Makefile``. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Build/2022-08-12-13-06-03.gh-issue-90536.qMpF6p.rst b/Misc/NEWS.d/next/Build/2022-08-12-13-06-03.gh-issue-90536.qMpF6p.rst new file mode 100644 index 00000000000000..4605e03915ee63 --- /dev/null +++ b/Misc/NEWS.d/next/Build/2022-08-12-13-06-03.gh-issue-90536.qMpF6p.rst @@ -0,0 +1,2 @@ +Use the BOLT post-link optimizer to improve performance, particularly on +medium-to-large applications. diff --git a/Misc/NEWS.d/next/Build/2022-08-15-10-56-07.gh-issue-95973.Bsswsc.rst b/Misc/NEWS.d/next/Build/2022-08-15-10-56-07.gh-issue-95973.Bsswsc.rst new file mode 100644 index 00000000000000..d03bc5205ead8e --- /dev/null +++ b/Misc/NEWS.d/next/Build/2022-08-15-10-56-07.gh-issue-95973.Bsswsc.rst @@ -0,0 +1,2 @@ +Add a new ``--with-dsymutil`` configure option to to link debug information +in macOS. Patch by Pablo Galindo. diff --git a/Misc/NEWS.d/next/Build/2022-08-26-11-09-11.gh-issue-84461.Nsdn_R.rst b/Misc/NEWS.d/next/Build/2022-08-26-11-09-11.gh-issue-84461.Nsdn_R.rst new file mode 100644 index 00000000000000..134e9645159a69 --- /dev/null +++ b/Misc/NEWS.d/next/Build/2022-08-26-11-09-11.gh-issue-84461.Nsdn_R.rst @@ -0,0 +1,3 @@ +``wasm32-emscripten`` platform no longer builds :mod:`resource` module, +:func:`~os.getresuid`, :func:`~os.getresgid`, and their setters. The APIs +are stubs and not functional. diff --git a/Misc/NEWS.d/next/Build/2022-08-26-11-50-03.gh-issue-96269.x_J5h0.rst b/Misc/NEWS.d/next/Build/2022-08-26-11-50-03.gh-issue-96269.x_J5h0.rst new file mode 100644 index 00000000000000..adb605fede5dae --- /dev/null +++ b/Misc/NEWS.d/next/Build/2022-08-26-11-50-03.gh-issue-96269.x_J5h0.rst @@ -0,0 +1,3 @@ +Shared module targets now depend on new ``MODULE_DEPS`` variable, which +includes ``EXPORTSYMS``. This fixes a build order issue on unsupported AIX +platform. diff --git a/Misc/NEWS.d/next/Build/2022-09-11-14-23-49.gh-issue-96729.W4uBWL.rst b/Misc/NEWS.d/next/Build/2022-09-11-14-23-49.gh-issue-96729.W4uBWL.rst new file mode 100644 index 00000000000000..b67cd200e2d346 --- /dev/null +++ b/Misc/NEWS.d/next/Build/2022-09-11-14-23-49.gh-issue-96729.W4uBWL.rst @@ -0,0 +1,2 @@ +Ensure that Windows releases built with ``Tools\msi\buildrelease.bat`` are +upgradable to and from official Python releases. diff --git a/Misc/NEWS.d/next/Build/2022-09-12-18-34-51.gh-issue-85936.tX4VCU.rst b/Misc/NEWS.d/next/Build/2022-09-12-18-34-51.gh-issue-85936.tX4VCU.rst new file mode 100644 index 00000000000000..302b863a3b1e34 --- /dev/null +++ b/Misc/NEWS.d/next/Build/2022-09-12-18-34-51.gh-issue-85936.tX4VCU.rst @@ -0,0 +1,2 @@ +CPython now uses the ThinLTO option as the default policy if the Clang +compiler accepts the flag. Patch by Dong-hee Na. diff --git a/Misc/NEWS.d/next/C API/2021-10-05-21-59-43.bpo-45383.TVClgf.rst b/Misc/NEWS.d/next/C API/2021-10-05-21-59-43.bpo-45383.TVClgf.rst new file mode 100644 index 00000000000000..ca1b7a43d29481 --- /dev/null +++ b/Misc/NEWS.d/next/C API/2021-10-05-21-59-43.bpo-45383.TVClgf.rst @@ -0,0 +1,3 @@ +The :c:func:`PyType_FromSpec` API will now find and use a metaclass +based on the provided bases. +An error will be raised if there is a metaclass conflict. diff --git a/Misc/NEWS.d/next/C API/2022-04-13-16-10-55.gh-issue-59121.-B7mKp.rst b/Misc/NEWS.d/next/C API/2022-04-13-16-10-55.gh-issue-59121.-B7mKp.rst new file mode 100644 index 00000000000000..d52866ea08f713 --- /dev/null +++ b/Misc/NEWS.d/next/C API/2022-04-13-16-10-55.gh-issue-59121.-B7mKp.rst @@ -0,0 +1 @@ +Fixed an assert that prevented ``PyRun_InteractiveOne`` from providing tracebacks when parsing from the provided FD. diff --git a/Misc/NEWS.d/next/C API/2022-05-03-19-35-37.gh-issue-92193.61VoFL.rst b/Misc/NEWS.d/next/C API/2022-05-03-19-35-37.gh-issue-92193.61VoFL.rst new file mode 100644 index 00000000000000..e0755bb0199491 --- /dev/null +++ b/Misc/NEWS.d/next/C API/2022-05-03-19-35-37.gh-issue-92193.61VoFL.rst @@ -0,0 +1,5 @@ +Add new function :c:func:`PyFunction_SetVectorcall` to the C API +which sets the vectorcall field of a given :c:type:`PyFunctionObject`. + +Warning: extensions using this API must preserve the behavior +of the unaltered function! diff --git a/Misc/NEWS.d/next/C API/2022-05-23-12-31-04.gh-issue-77782.ugC8dn.rst b/Misc/NEWS.d/next/C API/2022-05-23-12-31-04.gh-issue-77782.ugC8dn.rst new file mode 100644 index 00000000000000..d212f6b977ef93 --- /dev/null +++ b/Misc/NEWS.d/next/C API/2022-05-23-12-31-04.gh-issue-77782.ugC8dn.rst @@ -0,0 +1,3 @@ +Deprecate global configuration variable like +:c:var:`Py_IgnoreEnvironmentFlag`: the :c:func:`Py_InitializeFromConfig` API +should be instead. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/C API/2022-06-03-14-54-41.gh-issue-93466.DDtH0X.rst b/Misc/NEWS.d/next/C API/2022-06-03-14-54-41.gh-issue-93466.DDtH0X.rst new file mode 100644 index 00000000000000..0bb65ea2b38786 --- /dev/null +++ b/Misc/NEWS.d/next/C API/2022-06-03-14-54-41.gh-issue-93466.DDtH0X.rst @@ -0,0 +1,3 @@ +Slot IDs in PyType_Spec may not be repeated. The documentation was updated +to mention this. For some cases of repeated slots, PyType_FromSpec and +related functions will now raise an exception. diff --git a/Misc/NEWS.d/next/C API/2022-06-04-13-15-41.gh-issue-93442.4M4NDb.rst b/Misc/NEWS.d/next/C API/2022-06-04-13-15-41.gh-issue-93442.4M4NDb.rst new file mode 100644 index 00000000000000..f48ed37c814454 --- /dev/null +++ b/Misc/NEWS.d/next/C API/2022-06-04-13-15-41.gh-issue-93442.4M4NDb.rst @@ -0,0 +1,3 @@ +Add C++ overloads for _Py_CAST_impl() to handle 0/NULL. This will allow C++ +extensions that pass 0 or NULL to macros using _Py_CAST() to continue to +compile. diff --git a/Misc/NEWS.d/next/C API/2022-06-06-16-04-14.gh-issue-93503.MHJTu8.rst b/Misc/NEWS.d/next/C API/2022-06-06-16-04-14.gh-issue-93503.MHJTu8.rst new file mode 100644 index 00000000000000..3dd292cd778023 --- /dev/null +++ b/Misc/NEWS.d/next/C API/2022-06-06-16-04-14.gh-issue-93503.MHJTu8.rst @@ -0,0 +1,7 @@ +Add two new public functions to the public C-API, +:c:func:`PyEval_SetProfileAllThreads` and :c:func:`PyEval_SetTraceAllThreads`, +that allow to set tracing and profiling functions in all running threads in +addition to the calling one. Also, two analogous functions to the +:mod:`threading` module (:func:`threading.setprofile_all_threads` and +:func:`threading.settrace_all_threads`) that allow to do the same from Python. +Patch by Pablo Galindo diff --git a/Misc/NEWS.d/next/C API/2022-06-10-16-50-27.gh-issue-89546.mX1f10.rst b/Misc/NEWS.d/next/C API/2022-06-10-16-50-27.gh-issue-89546.mX1f10.rst new file mode 100644 index 00000000000000..8e6b6d95c7b4ab --- /dev/null +++ b/Misc/NEWS.d/next/C API/2022-06-10-16-50-27.gh-issue-89546.mX1f10.rst @@ -0,0 +1,4 @@ +:c:func:`PyType_FromMetaclass` (and other ``PyType_From*`` functions) now +check that offsets and the base class's +:c:member:`~PyTypeObject.tp_basicsize` fit in the new class's +``tp_basicsize``. diff --git a/Misc/NEWS.d/next/C API/2022-06-10-23-41-48.gh-issue-91731.fhYUQG.rst b/Misc/NEWS.d/next/C API/2022-06-10-23-41-48.gh-issue-91731.fhYUQG.rst new file mode 100644 index 00000000000000..185671ca4fcfb1 --- /dev/null +++ b/Misc/NEWS.d/next/C API/2022-06-10-23-41-48.gh-issue-91731.fhYUQG.rst @@ -0,0 +1,3 @@ +Avoid defining the ``static_assert`` when compiling with C++ 11, where this +is a keyword and redefining it can lead to undefined behavior. Patch by +Pablo Galindo diff --git a/Misc/NEWS.d/next/C API/2022-06-13-21-37-31.gh-issue-91321.DgJFvS.rst b/Misc/NEWS.d/next/C API/2022-06-13-21-37-31.gh-issue-91321.DgJFvS.rst new file mode 100644 index 00000000000000..57c39bc8d83c87 --- /dev/null +++ b/Misc/NEWS.d/next/C API/2022-06-13-21-37-31.gh-issue-91321.DgJFvS.rst @@ -0,0 +1,2 @@ +Fix the compatibility of the Python C API with C++ older than C++11. Patch by +Victor Stinner. diff --git a/Misc/NEWS.d/next/C API/2022-06-17-13-41-38.gh-issue-93937.uKVTEh.rst b/Misc/NEWS.d/next/C API/2022-06-17-13-41-38.gh-issue-93937.uKVTEh.rst new file mode 100644 index 00000000000000..c0a0745aa0dd25 --- /dev/null +++ b/Misc/NEWS.d/next/C API/2022-06-17-13-41-38.gh-issue-93937.uKVTEh.rst @@ -0,0 +1,14 @@ +The following frame functions and type are now directly available with +``#include <Python.h>``, it's no longer needed to add ``#include +<frameobject.h>``: + +* :c:func:`PyFrame_Check` +* :c:func:`PyFrame_GetBack` +* :c:func:`PyFrame_GetBuiltins` +* :c:func:`PyFrame_GetGenerator` +* :c:func:`PyFrame_GetGlobals` +* :c:func:`PyFrame_GetLasti` +* :c:func:`PyFrame_GetLocals` +* :c:type:`PyFrame_Type` + +Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/C API/2022-07-12-17-39-32.gh-issue-94731.9CPJNU.rst b/Misc/NEWS.d/next/C API/2022-07-12-17-39-32.gh-issue-94731.9CPJNU.rst new file mode 100644 index 00000000000000..b7816d28215e7b --- /dev/null +++ b/Misc/NEWS.d/next/C API/2022-07-12-17-39-32.gh-issue-94731.9CPJNU.rst @@ -0,0 +1,3 @@ +Python again uses C-style casts for most casting operations when compiled +with C++. This may trigger compiler warnings, if they are enabled with e.g. +``-Wold-style-cast `` or ``-Wzero-as-null-pointer-constant`` options for ``g++``. diff --git a/Misc/NEWS.d/next/C API/2022-07-17-18-21-40.gh-issue-94930.gPFGDL.rst b/Misc/NEWS.d/next/C API/2022-07-17-18-21-40.gh-issue-94930.gPFGDL.rst new file mode 100644 index 00000000000000..5b79d757b1e4aa --- /dev/null +++ b/Misc/NEWS.d/next/C API/2022-07-17-18-21-40.gh-issue-94930.gPFGDL.rst @@ -0,0 +1,2 @@ +Fix ``SystemError`` raised when :c:func:`PyArg_ParseTupleAndKeywords` is +used with ``#`` in ``(...)`` but without ``PY_SSIZE_T_CLEAN`` defined. diff --git a/Misc/NEWS.d/next/C API/2022-07-19-22-37-40.gh-issue-94936.LGlmKv.rst b/Misc/NEWS.d/next/C API/2022-07-19-22-37-40.gh-issue-94936.LGlmKv.rst new file mode 100644 index 00000000000000..abef9bb376c895 --- /dev/null +++ b/Misc/NEWS.d/next/C API/2022-07-19-22-37-40.gh-issue-94936.LGlmKv.rst @@ -0,0 +1,3 @@ +Added :c:func:`PyCode_GetVarnames`, :c:func:`PyCode_GetCellvars` and +:c:func:`PyCode_GetFreevars` for accessing ``co_varnames``, ``co_cellvars`` +and ``co_freevars`` respectively via the C API. diff --git a/Misc/NEWS.d/next/C API/2022-07-25-15-54-27.gh-issue-92678.ziZpxz.rst b/Misc/NEWS.d/next/C API/2022-07-25-15-54-27.gh-issue-92678.ziZpxz.rst new file mode 100644 index 00000000000000..52473c9dfab946 --- /dev/null +++ b/Misc/NEWS.d/next/C API/2022-07-25-15-54-27.gh-issue-92678.ziZpxz.rst @@ -0,0 +1,3 @@ +Adds unstable C-API functions ``_PyObject_VisitManagedDict`` and +``_PyObject_ClearManagedDict`` to allow C extensions to allow the VM to +manage their object's dictionaries. diff --git a/Misc/NEWS.d/next/C API/2022-07-29-10-41-59.gh-issue-95388.aiRSgr.rst b/Misc/NEWS.d/next/C API/2022-07-29-10-41-59.gh-issue-95388.aiRSgr.rst new file mode 100644 index 00000000000000..c389d13db6afc2 --- /dev/null +++ b/Misc/NEWS.d/next/C API/2022-07-29-10-41-59.gh-issue-95388.aiRSgr.rst @@ -0,0 +1,2 @@ +Creating :c:data:`immutable types <Py_TPFLAGS_IMMUTABLETYPE>` with mutable +bases is deprecated and is planned to be disabled in Python 3.14. diff --git a/Misc/NEWS.d/next/C API/2022-07-29-15-24-45.gh-issue-93012.-DdGEy.rst b/Misc/NEWS.d/next/C API/2022-07-29-15-24-45.gh-issue-93012.-DdGEy.rst new file mode 100644 index 00000000000000..199c2d1fc197dd --- /dev/null +++ b/Misc/NEWS.d/next/C API/2022-07-29-15-24-45.gh-issue-93012.-DdGEy.rst @@ -0,0 +1,6 @@ +The :const:`Py_TPFLAGS_HAVE_VECTORCALL` flag is now removed from a class +when the class's :py:meth:`~object.__call__` method is reassigned. This +makes vectorcall safe to use with mutable types (i.e. heap types without the +:const:`immutable <Py_TPFLAGS_IMMUTABLETYPE>` flag). Mutable types that do +not override :c:member:`~PyTypeObject.tp_call` now inherit the +:const:`Py_TPFLAGS_HAVE_VECTORCALL` flag. diff --git a/Misc/NEWS.d/next/C API/2022-07-31-21-58-27.gh-issue-95504.wy7B1F.rst b/Misc/NEWS.d/next/C API/2022-07-31-21-58-27.gh-issue-95504.wy7B1F.rst new file mode 100644 index 00000000000000..955bdd4c7494f1 --- /dev/null +++ b/Misc/NEWS.d/next/C API/2022-07-31-21-58-27.gh-issue-95504.wy7B1F.rst @@ -0,0 +1,3 @@ +Fix sign placement when specifying width or precision in +:c:func:`PyUnicode_FromFormat` and :c:func:`PyUnicode_FromFormatV`. +Patch by Philip Georgi. diff --git a/Misc/NEWS.d/next/C API/2022-08-01-16-21-39.gh-issue-93274.QoDHEu.rst b/Misc/NEWS.d/next/C API/2022-08-01-16-21-39.gh-issue-93274.QoDHEu.rst new file mode 100644 index 00000000000000..da6cce4a7b283a --- /dev/null +++ b/Misc/NEWS.d/next/C API/2022-08-01-16-21-39.gh-issue-93274.QoDHEu.rst @@ -0,0 +1,3 @@ +API for implementing vectorcall (:c:data:`Py_TPFLAGS_HAVE_VECTORCALL`, +:c:func:`PyVectorcall_NARGS` and :c:func:`PyVectorcall_Call`) was added to +the limited API and stable ABI. diff --git a/Misc/NEWS.d/next/C API/2022-08-03-13-01-57.gh-issue-92678.DLwONN.rst b/Misc/NEWS.d/next/C API/2022-08-03-13-01-57.gh-issue-92678.DLwONN.rst new file mode 100644 index 00000000000000..a3a209f5e41338 --- /dev/null +++ b/Misc/NEWS.d/next/C API/2022-08-03-13-01-57.gh-issue-92678.DLwONN.rst @@ -0,0 +1,2 @@ +Support C extensions using managed dictionaries by setting the +``Py_TPFLAGS_MANAGED_DICT`` flag. diff --git a/Misc/NEWS.d/next/C API/2022-08-03-14-39-08.gh-issue-92678.ozFTEx.rst b/Misc/NEWS.d/next/C API/2022-08-03-14-39-08.gh-issue-92678.ozFTEx.rst new file mode 100644 index 00000000000000..6bf3d4b1abbf5a --- /dev/null +++ b/Misc/NEWS.d/next/C API/2022-08-03-14-39-08.gh-issue-92678.ozFTEx.rst @@ -0,0 +1,2 @@ +Restore the 3.10 behavior for multiple inheritance of C extension classes +that store their dictionary at the end of the struct. diff --git a/Misc/NEWS.d/next/C API/2022-08-08-14-36-31.gh-issue-95781.W_G8YW.rst b/Misc/NEWS.d/next/C API/2022-08-08-14-36-31.gh-issue-95781.W_G8YW.rst new file mode 100644 index 00000000000000..eb2fd7e9da3d81 --- /dev/null +++ b/Misc/NEWS.d/next/C API/2022-08-08-14-36-31.gh-issue-95781.W_G8YW.rst @@ -0,0 +1,4 @@ +An unrecognized format character in :c:func:`PyUnicode_FromFormat` and +:c:func:`PyUnicode_FromFormatV` now sets a :exc:`SystemError`. +In previous versions it caused all the rest of the format string to be +copied as-is to the result string, and any extra arguments discarded. diff --git a/Misc/NEWS.d/next/C API/2022-08-16-16-54-42.gh-issue-95589.6xE1ar.rst b/Misc/NEWS.d/next/C API/2022-08-16-16-54-42.gh-issue-95589.6xE1ar.rst new file mode 100644 index 00000000000000..696e3c80db62cf --- /dev/null +++ b/Misc/NEWS.d/next/C API/2022-08-16-16-54-42.gh-issue-95589.6xE1ar.rst @@ -0,0 +1,4 @@ +Extensions classes that set ``tp_dictoffset`` and ``tp_weaklistoffset`` +lose the support for multiple inheritance, but are now safe. Extension +classes should use :const:`Py_TPFLAGS_MANAGED_DICT` and +:const:`Py_TPFLAGS_MANAGED_WEAKREF` instead. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-01-02-14-53-59.bpo-46142.WayjgT.rst b/Misc/NEWS.d/next/Core and Builtins/2022-01-02-14-53-59.bpo-46142.WayjgT.rst new file mode 100644 index 00000000000000..3c62c54289946c --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-01-02-14-53-59.bpo-46142.WayjgT.rst @@ -0,0 +1,3 @@ +Make ``--help`` output shorter by moving some info to the new +``--help-env`` and ``--help-xoptions`` command-line options. +Also add ``--help-all`` option to print complete usage. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-03-22-13-12-27.bpo-47091.tJcy-P.rst b/Misc/NEWS.d/next/Core and Builtins/2022-03-22-13-12-27.bpo-47091.tJcy-P.rst new file mode 100644 index 00000000000000..72a39b5ebc7109 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-03-22-13-12-27.bpo-47091.tJcy-P.rst @@ -0,0 +1 @@ +Improve performance of repetition of :class:`list` and :class:`tuple` by using ``memcpy`` to copy data and performing the reference increments in one step. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-04-24-02-22-10.gh-issue-91432.YPJAK6.rst b/Misc/NEWS.d/next/Core and Builtins/2022-04-24-02-22-10.gh-issue-91432.YPJAK6.rst new file mode 100644 index 00000000000000..081dc0f5c334c5 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-04-24-02-22-10.gh-issue-91432.YPJAK6.rst @@ -0,0 +1 @@ +Specialized the :opcode:`FOR_ITER` opcode using the PEP 659 machinery diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-05-11-09-16-54.gh-issue-91102.lenv9h.rst b/Misc/NEWS.d/next/Core and Builtins/2022-05-11-09-16-54.gh-issue-91102.lenv9h.rst new file mode 100644 index 00000000000000..b2bdf9d5322f37 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-05-11-09-16-54.gh-issue-91102.lenv9h.rst @@ -0,0 +1 @@ +:meth:`_warnings.warn_explicit` is ported to Argument Clinic. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-05-17-20-41-43.gh-issue-92858.eIXJTn.rst b/Misc/NEWS.d/next/Core and Builtins/2022-05-17-20-41-43.gh-issue-92858.eIXJTn.rst new file mode 100644 index 00000000000000..fa91d941b1759a --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-05-17-20-41-43.gh-issue-92858.eIXJTn.rst @@ -0,0 +1 @@ +Improve error message for some suites with syntax error before ':' diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-05-18-18-34-45.gh-issue-92930.kpYPOb.rst b/Misc/NEWS.d/next/Core and Builtins/2022-05-18-18-34-45.gh-issue-92930.kpYPOb.rst new file mode 100644 index 00000000000000..cd5d7b3214ea43 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-05-18-18-34-45.gh-issue-92930.kpYPOb.rst @@ -0,0 +1 @@ +Fixed a crash in ``_pickle.c`` from mutating collections during ``__reduce__`` or ``persistent_id``. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-05-20-09-25-34.gh-issue-93021.k3Aji2.rst b/Misc/NEWS.d/next/Core and Builtins/2022-05-20-09-25-34.gh-issue-93021.k3Aji2.rst new file mode 100644 index 00000000000000..8fdd8dfb4229a7 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-05-20-09-25-34.gh-issue-93021.k3Aji2.rst @@ -0,0 +1,2 @@ +Fix the :attr:`__text_signature__` for :meth:`__get__` methods implemented +in C. Patch by Jelle Zijlstra. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-05-23-18-36-07.gh-issue-93143.X1Yqxm.rst b/Misc/NEWS.d/next/Core and Builtins/2022-05-23-18-36-07.gh-issue-93143.X1Yqxm.rst new file mode 100644 index 00000000000000..03994bcfdb56f8 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-05-23-18-36-07.gh-issue-93143.X1Yqxm.rst @@ -0,0 +1 @@ +Avoid ``NULL`` checks for uninitialized local variables by determining at compile time which variables must be initialized. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-05-25-12-30-12.gh-issue-84694.5sjy2w.rst b/Misc/NEWS.d/next/Core and Builtins/2022-05-25-12-30-12.gh-issue-84694.5sjy2w.rst new file mode 100644 index 00000000000000..c062d28b294868 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-05-25-12-30-12.gh-issue-84694.5sjy2w.rst @@ -0,0 +1,2 @@ +The ``--experimental-isolated-subinterpreters`` configure option and +``EXPERIMENTAL_ISOLATED_SUBINTERPRETERS`` macro have been removed. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-05-30-10-22-46.gh-issue-93345.gi1A4L.rst b/Misc/NEWS.d/next/Core and Builtins/2022-05-30-10-22-46.gh-issue-93345.gi1A4L.rst new file mode 100644 index 00000000000000..4cdb37cfe46981 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-05-30-10-22-46.gh-issue-93345.gi1A4L.rst @@ -0,0 +1,2 @@ +Fix a crash in substitution of a ``TypeVar`` in nested generic alias after +``TypeVarTuple``. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-05-30-14-50-03.gh-issue-93283.XDO2ZQ.rst b/Misc/NEWS.d/next/Core and Builtins/2022-05-30-14-50-03.gh-issue-93283.XDO2ZQ.rst new file mode 100644 index 00000000000000..550e86988b25a7 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-05-30-14-50-03.gh-issue-93283.XDO2ZQ.rst @@ -0,0 +1,2 @@ +Improve error message for invalid syntax of conversion character in f-string +expressions. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-05-30-15-35-42.gh-issue-93354.RZk8gs.rst b/Misc/NEWS.d/next/Core and Builtins/2022-05-30-15-35-42.gh-issue-93354.RZk8gs.rst new file mode 100644 index 00000000000000..dcfe6a9b6ba3a5 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-05-30-15-35-42.gh-issue-93354.RZk8gs.rst @@ -0,0 +1,3 @@ +Use exponential backoff for specialization counters in the interpreter. Can +reduce the number of failed specializations significantly and avoid slowdown +for those parts of a program that are not suitable for specialization. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-05-30-15-51-11.gh-issue-93356.l5wnzW.rst b/Misc/NEWS.d/next/Core and Builtins/2022-05-30-15-51-11.gh-issue-93356.l5wnzW.rst new file mode 100644 index 00000000000000..9bb58468197e2d --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-05-30-15-51-11.gh-issue-93356.l5wnzW.rst @@ -0,0 +1 @@ +Code for exception handlers is emitted at the end of the code unit's bytecode. This avoids one jump when no exception is raised. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-05-30-19-00-38.gh-issue-93359.zXV3A0.rst b/Misc/NEWS.d/next/Core and Builtins/2022-05-30-19-00-38.gh-issue-93359.zXV3A0.rst new file mode 100644 index 00000000000000..36e5e52390d7b4 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-05-30-19-00-38.gh-issue-93359.zXV3A0.rst @@ -0,0 +1,2 @@ +Ensure that custom :mod:`ast` nodes without explicit end positions can be +compiled. Patch by Pablo Galindo. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-05-31-16-36-30.gh-issue-93382.Jf6gAj.rst b/Misc/NEWS.d/next/Core and Builtins/2022-05-31-16-36-30.gh-issue-93382.Jf6gAj.rst new file mode 100644 index 00000000000000..1fe821edf5a148 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-05-31-16-36-30.gh-issue-93382.Jf6gAj.rst @@ -0,0 +1,2 @@ +Cache the result of :c:func:`PyCode_GetCode` function to restore the O(1) +lookup of the :attr:`~types.CodeType.co_code` attribute. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-01-17-47-40.gh-issue-93418.24dJuc.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-01-17-47-40.gh-issue-93418.24dJuc.rst new file mode 100644 index 00000000000000..74ad06bfeee7c4 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-06-01-17-47-40.gh-issue-93418.24dJuc.rst @@ -0,0 +1,2 @@ +Fixed an assert where an f-string has an equal sign '=' following an +expression, but there's no trailing brace. For example, f"{i=". diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-02-08-28-55.gh-issue-93429.DZTWHx.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-02-08-28-55.gh-issue-93429.DZTWHx.rst new file mode 100644 index 00000000000000..02efedaa9645f0 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-06-02-08-28-55.gh-issue-93429.DZTWHx.rst @@ -0,0 +1 @@ +``LOAD_METHOD`` instruction has been removed. It was merged back into ``LOAD_ATTR``. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-02-23-00-08.gh-issue-93444.m63DIs.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-02-23-00-08.gh-issue-93444.m63DIs.rst new file mode 100644 index 00000000000000..23cc1bd3e0b4d2 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-06-02-23-00-08.gh-issue-93444.m63DIs.rst @@ -0,0 +1 @@ +Removed redundant fields from the compiler's basicblock struct: ``b_nofallthrough``, ``b_exit``, ``b_return``. They can be easily calculated from the opcode of the last instruction of the block. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-06-14-28-24.gh-issue-93533.lnC0CC.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-06-14-28-24.gh-issue-93533.lnC0CC.rst new file mode 100644 index 00000000000000..2d8ac7068af673 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-06-06-14-28-24.gh-issue-93533.lnC0CC.rst @@ -0,0 +1 @@ +Reduce the size of the inline cache for ``LOAD_METHOD`` by 2 bytes. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-09-09-08-29.gh-issue-93621.-_Pn1d.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-09-09-08-29.gh-issue-93621.-_Pn1d.rst new file mode 100644 index 00000000000000..388540982fd1ff --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-06-09-09-08-29.gh-issue-93621.-_Pn1d.rst @@ -0,0 +1 @@ +Change order of bytecode instructions emitted for :keyword:`with` and :keyword:`async with` to reduce the number of entries in the exception table. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-09-19-19-02.gh-issue-93461.5DqP1e.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-09-19-19-02.gh-issue-93461.5DqP1e.rst new file mode 100644 index 00000000000000..f6ed14887eae1b --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-06-09-19-19-02.gh-issue-93461.5DqP1e.rst @@ -0,0 +1,6 @@ +:func:`importlib.invalidate_caches` now drops entries from +:data:`sys.path_importer_cache` with a relative path as name. This solves a +caching issue when a process changes its current working directory. + +``FileFinder`` no longer inserts a dot in the path, e.g. +``/egg/./spam`` is now ``/egg/spam``. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-10-10-31-18.gh-issue-93662.-7RSC1.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-10-10-31-18.gh-issue-93662.-7RSC1.rst new file mode 100644 index 00000000000000..e444a00cf7ecc0 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-06-10-10-31-18.gh-issue-93662.-7RSC1.rst @@ -0,0 +1,2 @@ +Make sure that the end column offsets are correct in multi-line method +calls. Previously, the end column could precede the column offset. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-10-12-03-17.gh-issue-93671.idkQqG.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-10-12-03-17.gh-issue-93671.idkQqG.rst new file mode 100644 index 00000000000000..a7757153359517 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-06-10-12-03-17.gh-issue-93671.idkQqG.rst @@ -0,0 +1,2 @@ +Fix some exponential backtrace case happening with deeply nested sequence +patterns in match statements. Patch by Pablo Galindo diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-10-16-57-35.gh-issue-93678.1WBnHt.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-10-16-57-35.gh-issue-93678.1WBnHt.rst new file mode 100644 index 00000000000000..24a0d1042d81ae --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-06-10-16-57-35.gh-issue-93678.1WBnHt.rst @@ -0,0 +1 @@ +Refactor the compiler to reduce boilerplate and repetition. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-12-19-31-56.gh-issue-89828.bq02M7.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-12-19-31-56.gh-issue-89828.bq02M7.rst new file mode 100644 index 00000000000000..14ca99e1458ce3 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-06-12-19-31-56.gh-issue-89828.bq02M7.rst @@ -0,0 +1,2 @@ +:class:`types.GenericAlias` no longer relays the ``__class__`` attribute. +For example, ``isinstance(list[int], type)`` no longer returns ``True``. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-13-10-48-09.gh-issue-93516.yJSait.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-13-10-48-09.gh-issue-93516.yJSait.rst new file mode 100644 index 00000000000000..5c22c7a67b6e51 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-06-13-10-48-09.gh-issue-93516.yJSait.rst @@ -0,0 +1,2 @@ +Lazily create a table mapping bytecode offsets to line numbers to speed up +calculation of line numbers when tracing. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-13-13-55-34.gh-issue-93516.HILrDl.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-13-13-55-34.gh-issue-93516.HILrDl.rst new file mode 100644 index 00000000000000..a324c2dbcbe8a6 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-06-13-13-55-34.gh-issue-93516.HILrDl.rst @@ -0,0 +1,2 @@ +Store offset of first traceable instruction in code object to avoid having +to recompute it for each instruction when tracing. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-15-11-16-13.gh-issue-93841.06zqX3.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-15-11-16-13.gh-issue-93841.06zqX3.rst new file mode 100644 index 00000000000000..179d3808e3b4d5 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-06-15-11-16-13.gh-issue-93841.06zqX3.rst @@ -0,0 +1,3 @@ +When built with ``-enable-pystats``, ``sys._stats_on()``, +``sys._stats_off()``, ``sys._stats_clear()`` and ``sys._stats_dump()`` +functions have been added to enable gathering stats for parts of programs. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-15-16-45-53.gh-issue-93678.1I_ZT3.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-15-16-45-53.gh-issue-93678.1I_ZT3.rst new file mode 100644 index 00000000000000..3c99fd2ecf6633 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-06-15-16-45-53.gh-issue-93678.1I_ZT3.rst @@ -0,0 +1 @@ +Refactor compiler optimisation code so that it no longer needs the ``struct assembler`` and ``struct compiler`` passed around. Instead, each function takes the CFG and other data that it actually needs. This will make it possible to test this code directly. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-16-16-53-22.gh-issue-93911.RDwIiK.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-16-16-53-22.gh-issue-93911.RDwIiK.rst new file mode 100644 index 00000000000000..9efa994c1916dd --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-06-16-16-53-22.gh-issue-93911.RDwIiK.rst @@ -0,0 +1 @@ +Specialize ``LOAD_ATTR`` for ``property()`` attributes. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-17-16-30-24.gh-issue-93955.LmiAe9.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-17-16-30-24.gh-issue-93955.LmiAe9.rst new file mode 100644 index 00000000000000..3b2f0e8c32d745 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-06-17-16-30-24.gh-issue-93955.LmiAe9.rst @@ -0,0 +1 @@ +Improve performance of attribute lookups on objects with custom ``__getattribute__`` and ``__getattr__``. Patch by Ken Jin. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-18-17-00-33.gh-issue-93911.y286of.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-18-17-00-33.gh-issue-93911.y286of.rst new file mode 100644 index 00000000000000..7fc8f6a2d49293 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-06-18-17-00-33.gh-issue-93911.y286of.rst @@ -0,0 +1 @@ +Specialize ``LOAD_ATTR`` for objects with custom ``__getattribute__``. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-20-13-48-57.gh-issue-94021.o78q3G.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-20-13-48-57.gh-issue-94021.o78q3G.rst new file mode 100644 index 00000000000000..0724c517b2ba06 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-06-20-13-48-57.gh-issue-94021.o78q3G.rst @@ -0,0 +1 @@ +Fix unreachable code warning in ``Python/specialize.c``. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-23-12-10-39.gh-issue-94163.SqAfQq.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-23-12-10-39.gh-issue-94163.SqAfQq.rst new file mode 100644 index 00000000000000..3f82943cbfbe07 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-06-23-12-10-39.gh-issue-94163.SqAfQq.rst @@ -0,0 +1,5 @@ +Add :opcode:`BINARY_SLICE` and :opcode:`STORE_SLICE` instructions for more efficient handling +and better specialization of slicing operations, where the slice is explicit +in the source code. + + diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-24-14-06-20.gh-issue-93883.8jVQQ4.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-24-14-06-20.gh-issue-93883.8jVQQ4.rst new file mode 100644 index 00000000000000..53345577036a5a --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-06-24-14-06-20.gh-issue-93883.8jVQQ4.rst @@ -0,0 +1 @@ +Revise the display strategy of traceback enhanced error locations. The indicators are only shown when the location doesn't span the whole line. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-25-10-19-43.gh-issue-87995.aMDHnp.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-25-10-19-43.gh-issue-87995.aMDHnp.rst new file mode 100644 index 00000000000000..4154ebce234958 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-06-25-10-19-43.gh-issue-87995.aMDHnp.rst @@ -0,0 +1,2 @@ +:class:`types.MappingProxyType` instances are now hashable if the underlying +mapping is hashable. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-26-14-37-03.gh-issue-94192.ab7tn7.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-26-14-37-03.gh-issue-94192.ab7tn7.rst new file mode 100644 index 00000000000000..ebd8b04e45091e --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-06-26-14-37-03.gh-issue-94192.ab7tn7.rst @@ -0,0 +1 @@ +Fix error for dictionary literals with invalid expression as value. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-28-10-08-06.gh-issue-94262.m-HWUZ.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-28-10-08-06.gh-issue-94262.m-HWUZ.rst new file mode 100644 index 00000000000000..7ba39bbcfe21da --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-06-28-10-08-06.gh-issue-94262.m-HWUZ.rst @@ -0,0 +1,3 @@ +Don't create frame objects for incomplete frames. Prevents the creation of +generators and closures from being observable to Python and C extensions, +restoring the behavior of 3.10 and earlier. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-28-12-41-17.gh-issue-88116.A7fEl_.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-28-12-41-17.gh-issue-88116.A7fEl_.rst new file mode 100644 index 00000000000000..a8347cff09f39f --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-06-28-12-41-17.gh-issue-88116.A7fEl_.rst @@ -0,0 +1,2 @@ +Fix an issue when reading line numbers from code objects if the encoded line +numbers are close to ``INT_MIN``. Patch by Pablo Galindo diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-28-14-20-36.gh-issue-94360.DiEnen.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-28-14-20-36.gh-issue-94360.DiEnen.rst new file mode 100644 index 00000000000000..0a74ba38b0ac43 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-06-28-14-20-36.gh-issue-94360.DiEnen.rst @@ -0,0 +1,2 @@ +Fixed a tokenizer crash when reading encoded files with syntax errors from +``stdin`` with non utf-8 encoded text. Patch by Pablo Galindo diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-29-15-45-04.gh-issue-94329.olUQyk.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-29-15-45-04.gh-issue-94329.olUQyk.rst new file mode 100644 index 00000000000000..afd31b6e4dc44f --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-06-29-15-45-04.gh-issue-94329.olUQyk.rst @@ -0,0 +1,2 @@ +Compile and run code with unpacking of extremely large sequences (1000s of elements). +Such code failed to compile. It now compiles and runs correctly. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-29-22-18-36.gh-issue-91719.3APYYI.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-29-22-18-36.gh-issue-91719.3APYYI.rst new file mode 100644 index 00000000000000..0d085e88778372 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-06-29-22-18-36.gh-issue-91719.3APYYI.rst @@ -0,0 +1,2 @@ +Reload ``opcode`` when raising ``unknown opcode error`` in the interpreter main loop, +for C compilers to generate dispatching code independently. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-30-15-07-26.gh-issue-94438.btzHSk.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-30-15-07-26.gh-issue-94438.btzHSk.rst new file mode 100644 index 00000000000000..b08dd8f2ad160f --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-06-30-15-07-26.gh-issue-94438.btzHSk.rst @@ -0,0 +1,2 @@ +Account for instructions that can push NULL to the stack when setting line +number in a frame. Prevents some (unlikely) crashes. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-01-20-00-19.gh-issue-94485.mo5st7.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-01-20-00-19.gh-issue-94485.mo5st7.rst new file mode 100644 index 00000000000000..14d90b7e764a77 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-07-01-20-00-19.gh-issue-94485.mo5st7.rst @@ -0,0 +1,2 @@ +Line number of a module's ``RESUME`` instruction is set to 0 as specified in +:pep:`626`. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-06-14-02-26.gh-issue-92228.44Cbly.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-06-14-02-26.gh-issue-92228.44Cbly.rst new file mode 100644 index 00000000000000..458ad897cefcb6 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-07-06-14-02-26.gh-issue-92228.44Cbly.rst @@ -0,0 +1 @@ +Disable the compiler's inline-small-exit-blocks optimization for exit blocks that are associated with source code lines. This fixes a bug where the debugger cannot tell where an exception handler ends and the following code block begins. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-07-21-13-25.gh-issue-94215._Sv9Ms.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-07-21-13-25.gh-issue-94215._Sv9Ms.rst new file mode 100644 index 00000000000000..07af472fbdcab4 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-07-07-21-13-25.gh-issue-94215._Sv9Ms.rst @@ -0,0 +1,3 @@ +Fix an issue where exceptions raised by line-tracing events would cause +frames to be left in an invalid state, possibly resulting in a hard crash of +the interpreter. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-08-11-44-45.gh-issue-93252.i2358c.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-08-11-44-45.gh-issue-93252.i2358c.rst new file mode 100644 index 00000000000000..1cc2d8560e53e5 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-07-08-11-44-45.gh-issue-93252.i2358c.rst @@ -0,0 +1,2 @@ +Fix an issue that caused internal frames to outlive failed Python function +calls, possibly resulting in memory leaks or hard interpreter crashes. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-08-16-44-11.gh-issue-94694.VkL2CM.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-08-16-44-11.gh-issue-94694.VkL2CM.rst new file mode 100644 index 00000000000000..6434788140f420 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-07-08-16-44-11.gh-issue-94694.VkL2CM.rst @@ -0,0 +1,4 @@ +Fix an issue that could cause code with multi-line method lookups to have +misleading or incorrect column offset information. In some cases (when +compiling a hand-built AST) this could have resulted in a hard crash of the +interpreter. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-14-10-07-53.gh-issue-90699.x3aG9m.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-14-10-07-53.gh-issue-90699.x3aG9m.rst new file mode 100644 index 00000000000000..795f4df987eb90 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-07-14-10-07-53.gh-issue-90699.x3aG9m.rst @@ -0,0 +1 @@ +Fix reference counting bug in :meth:`bool.__repr__`. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-15-16-15-04.gh-issue-91153.HiBmtt.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-15-16-15-04.gh-issue-91153.HiBmtt.rst new file mode 100644 index 00000000000000..2caa0170f75bca --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-07-15-16-15-04.gh-issue-91153.HiBmtt.rst @@ -0,0 +1,2 @@ +Fix an issue where a :class:`bytearray` item assignment could crash if it's +resized by the new value's :meth:`__index__` method. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-15-22-16-08.gh-issue-94822.zRRzBN.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-15-22-16-08.gh-issue-94822.zRRzBN.rst new file mode 100644 index 00000000000000..5b24918e497706 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-07-15-22-16-08.gh-issue-94822.zRRzBN.rst @@ -0,0 +1,2 @@ +Fix an issue where lookups of metaclass descriptors may be ignored when an +identically-named attribute also exists on the class itself. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-15-22-47-44.gh-issue-94893.YiJYcW.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-15-22-47-44.gh-issue-94893.YiJYcW.rst new file mode 100644 index 00000000000000..6384ef92c6543a --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-07-15-22-47-44.gh-issue-94893.YiJYcW.rst @@ -0,0 +1,2 @@ +Fix an issue where frame object manipulations could corrupt inline bytecode +caches. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-16-08-14-17.gh-issue-94869.eRwMsX.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-16-08-14-17.gh-issue-94869.eRwMsX.rst new file mode 100644 index 00000000000000..2ccf91b0cd99af --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-07-16-08-14-17.gh-issue-94869.eRwMsX.rst @@ -0,0 +1,2 @@ +Fix the column offsets for some expressions in multi-line f-strings +:mod:`ast` nodes. Patch by Pablo Galindo. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-17-15-54-29.gh-issue-91256.z7i7Q5.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-17-15-54-29.gh-issue-91256.z7i7Q5.rst new file mode 100644 index 00000000000000..802a614fd48d72 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-07-17-15-54-29.gh-issue-91256.z7i7Q5.rst @@ -0,0 +1 @@ +Ensures the program name is known for help text during interpreter startup. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-18-04-48-34.gh-issue-94947.df9gUw.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-18-04-48-34.gh-issue-94947.df9gUw.rst new file mode 100644 index 00000000000000..360ea67048fe22 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-07-18-04-48-34.gh-issue-94947.df9gUw.rst @@ -0,0 +1 @@ +:func:`ast.parse` will no longer parse assignment expressions when passed ``feature_version`` less than ``(3, 8)``. Patch by Shantanu Jain. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-18-05-10-29.gh-issue-94949.OsZ7_s.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-18-05-10-29.gh-issue-94949.OsZ7_s.rst new file mode 100644 index 00000000000000..bc452d434da0f6 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-07-18-05-10-29.gh-issue-94949.OsZ7_s.rst @@ -0,0 +1 @@ +:func:`ast.parse` will no longer parse parenthesized context managers when passed ``feature_version`` less than ``(3, 9)``. Patch by Shantanu Jain. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-18-14-19-21.gh-issue-94739.NQJQi7.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-18-14-19-21.gh-issue-94739.NQJQi7.rst new file mode 100644 index 00000000000000..7476892c423b1a --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-07-18-14-19-21.gh-issue-94739.NQJQi7.rst @@ -0,0 +1 @@ +Allow jumping within, out of, and across exception handlers in the debugger. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-19-04-34-56.gh-issue-94996.dV564A.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-19-04-34-56.gh-issue-94996.dV564A.rst new file mode 100644 index 00000000000000..90c9ada079e077 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-07-19-04-34-56.gh-issue-94996.dV564A.rst @@ -0,0 +1 @@ +:func:`ast.parse` will no longer parse function definitions with positional-only params when passed ``feature_version`` less than ``(3, 8)``. Patch by Shantanu Jain. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-19-09-41-55.gh-issue-94938.xYBlM7.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-19-09-41-55.gh-issue-94938.xYBlM7.rst new file mode 100644 index 00000000000000..cc4feae685f23c --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-07-19-09-41-55.gh-issue-94938.xYBlM7.rst @@ -0,0 +1,3 @@ +Fix error detection in some builtin functions when keyword argument name is +an instance of a str subclass with overloaded ``__eq__`` and ``__hash__``. +Previously it could cause SystemError or other undesired behavior. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-19-16-30-59.gh-issue-94036._6Utkm.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-19-16-30-59.gh-issue-94036._6Utkm.rst new file mode 100644 index 00000000000000..b0f03677362631 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-07-19-16-30-59.gh-issue-94036._6Utkm.rst @@ -0,0 +1,2 @@ +Fix incorrect source location info for some multi-line attribute accesses +and method calls. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-20-13-46-01.gh-issue-91409.dhL8Zo.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-20-13-46-01.gh-issue-91409.dhL8Zo.rst new file mode 100644 index 00000000000000..2bc0d8224c6a00 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-07-20-13-46-01.gh-issue-91409.dhL8Zo.rst @@ -0,0 +1,2 @@ +Fix incorrect source location info caused by certain optimizations in the +bytecode compiler. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-21-17-54-52.gh-issue-95113.NnSLpT.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-21-17-54-52.gh-issue-95113.NnSLpT.rst new file mode 100644 index 00000000000000..c2ff6c90ac8c11 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-07-21-17-54-52.gh-issue-95113.NnSLpT.rst @@ -0,0 +1,4 @@ +Replace all ``EXTENDED_ARG_QUICK`` instructions with basic +:opcode:`EXTENDED_ARG` instructions in unquickened code. Consumers of +non-adaptive bytecode should be able to handle extended arguments the same +way they were handled in CPython 3.10 and older. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-21-19-19-20.gh-issue-95060.4xdT1f.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-21-19-19-20.gh-issue-95060.4xdT1f.rst new file mode 100644 index 00000000000000..160999e82bf081 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-07-21-19-19-20.gh-issue-95060.4xdT1f.rst @@ -0,0 +1,2 @@ +Undocumented ``PyCode_Addr2Location`` function now properly returns when +``addrq`` argument is less than zero. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-22-12-53-34.gh-issue-94438.hNqACc.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-22-12-53-34.gh-issue-94438.hNqACc.rst new file mode 100644 index 00000000000000..2a7249a833c2ed --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-07-22-12-53-34.gh-issue-94438.hNqACc.rst @@ -0,0 +1,4 @@ +Fix an issue that caused extended opcode arguments and some conditional pops +to be ignored when calculating valid jump targets for assignments to the +``f_lineno`` attribute of frame objects. In some cases, this could cause +inconsistent internal state, resulting in a hard crash of the interpreter. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-23-19-16-25.gh-issue-93351.0Jyvu-.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-23-19-16-25.gh-issue-93351.0Jyvu-.rst new file mode 100644 index 00000000000000..97cf8055ac54b1 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-07-23-19-16-25.gh-issue-93351.0Jyvu-.rst @@ -0,0 +1,3 @@ +:class:`ast.AST` node positions are now validated when provided to +:func:`compile` and other related functions. If invalid positions are +detected, a :exc:`ValueError` will be raised. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-24-00-27-47.gh-issue-95185.ghYTZx.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-24-00-27-47.gh-issue-95185.ghYTZx.rst new file mode 100644 index 00000000000000..de156bab2f51f1 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-07-24-00-27-47.gh-issue-95185.ghYTZx.rst @@ -0,0 +1,3 @@ +Prevented crashes in the AST constructor when compiling some absurdly long +expressions like ``"+0"*1000000``. :exc:`RecursionError` is now raised +instead. Patch by Pablo Galindo diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-26-09-31-12.gh-issue-93678.W8vvgT.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-26-09-31-12.gh-issue-93678.W8vvgT.rst new file mode 100644 index 00000000000000..6ff816a172cc27 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-07-26-09-31-12.gh-issue-93678.W8vvgT.rst @@ -0,0 +1 @@ +Add cfg_builder struct and refactor the relevant code so that a cfg can be constructed without an instance of the compiler struct. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-26-12-59-03.gh-issue-95245.GHWczn.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-26-12-59-03.gh-issue-95245.GHWczn.rst new file mode 100644 index 00000000000000..d6dccc8fcad0b1 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-07-26-12-59-03.gh-issue-95245.GHWczn.rst @@ -0,0 +1,2 @@ +Merge managed dict and values pointer into a single tagged pointer to save +one word in the pre-header. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-27-14-05-07.gh-issue-95324.28Q5u7.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-27-14-05-07.gh-issue-95324.28Q5u7.rst new file mode 100644 index 00000000000000..250385270e9487 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-07-27-14-05-07.gh-issue-95324.28Q5u7.rst @@ -0,0 +1,2 @@ +Emit a warning in debug mode if an object does not call +:c:func:`PyObject_GC_UnTrack` before deallocation. Patch by Pablo Galindo. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-27-14-21-57.gh-issue-90081.HVAS5x.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-27-14-21-57.gh-issue-90081.HVAS5x.rst new file mode 100644 index 00000000000000..a3be34c175af6e --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-07-27-14-21-57.gh-issue-90081.HVAS5x.rst @@ -0,0 +1,2 @@ +Run Python code in tracer/profiler function at full speed. Fixes slowdown in +earlier versions of 3.11. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-28-08-33-31.gh-issue-95355.yN4XVk.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-28-08-33-31.gh-issue-95355.yN4XVk.rst new file mode 100644 index 00000000000000..6a289991e0d60f --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-07-28-08-33-31.gh-issue-95355.yN4XVk.rst @@ -0,0 +1 @@ +``_PyPegen_Parser_New`` now properly detects token memory allocation errors. Patch by Honglin Zhu. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-28-19-07-06.gh-issue-87092.73IPS1.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-28-19-07-06.gh-issue-87092.73IPS1.rst new file mode 100644 index 00000000000000..d4cc4bb9afc2ef --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-07-28-19-07-06.gh-issue-87092.73IPS1.rst @@ -0,0 +1 @@ +Create a 'jump target label' abstraction in the compiler so that the compiler's codegen stage does not work directly with basic blocks. This prepares the code for changes to the underlying CFG generation mechanism. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-31-03-22-58.gh-issue-91146.Y2Hziy.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-31-03-22-58.gh-issue-91146.Y2Hziy.rst new file mode 100644 index 00000000000000..9172ca298e8095 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-07-31-03-22-58.gh-issue-91146.Y2Hziy.rst @@ -0,0 +1,2 @@ +Reduce allocation size of :class:`list` from :meth:`str.split` +and :meth:`str.rsplit`. Patch by Dong-hee Na and Inada Naoki. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-31-13-23-12.gh-issue-95150.67FXVo.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-31-13-23-12.gh-issue-95150.67FXVo.rst new file mode 100644 index 00000000000000..c3db4714188b3f --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-07-31-13-23-12.gh-issue-95150.67FXVo.rst @@ -0,0 +1,3 @@ +Update code object hashing and equality to consider all debugging and +exception handling tables. This fixes an issue where certain non-identical +code objects could be "deduplicated" during compilation. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-04-18-46-54.gh-issue-95605.FbpCoG.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-04-18-46-54.gh-issue-95605.FbpCoG.rst new file mode 100644 index 00000000000000..49441c6b3118b4 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-08-04-18-46-54.gh-issue-95605.FbpCoG.rst @@ -0,0 +1,2 @@ +Fix misleading contents of error message when converting an all-whitespace +string to :class:`float`. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-11-09-19-55.gh-issue-95876.YpQfoV.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-11-09-19-55.gh-issue-95876.YpQfoV.rst new file mode 100644 index 00000000000000..96b69015a5861a --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-08-11-09-19-55.gh-issue-95876.YpQfoV.rst @@ -0,0 +1,4 @@ +Fix format string in ``_PyPegen_raise_error_known_location`` that can lead +to memory corruption on some 64bit systems. The function was building a +tuple with ``i`` (int) instead of ``n`` (Py_ssize_t) for Py_ssize_t +arguments. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-11-11-01-56.gh-issue-95818.iClLdl.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-11-11-01-56.gh-issue-95818.iClLdl.rst new file mode 100644 index 00000000000000..1e243f5614f1ca --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-08-11-11-01-56.gh-issue-95818.iClLdl.rst @@ -0,0 +1 @@ +Skip over incomplete frames in :c:func:`PyThreadState_GetFrame`. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-12-13-04-25.gh-issue-95922.YNCtyX.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-12-13-04-25.gh-issue-95922.YNCtyX.rst new file mode 100644 index 00000000000000..277d35deab3919 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-08-12-13-04-25.gh-issue-95922.YNCtyX.rst @@ -0,0 +1,2 @@ +Fixed bug where the compiler's ``eliminate_empty_basic_blocks`` function +ignores the last block of the code unit. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-14-10-04-44.gh-issue-95977.gCTZb9.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-14-10-04-44.gh-issue-95977.gCTZb9.rst new file mode 100644 index 00000000000000..b265c770233a33 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-08-14-10-04-44.gh-issue-95977.gCTZb9.rst @@ -0,0 +1 @@ +Optimized calling :meth:`~object.__get__` with vectorcall. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-15-11-58-05.gh-issue-90997.bWwV8Q.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-15-11-58-05.gh-issue-90997.bWwV8Q.rst new file mode 100644 index 00000000000000..8db714e59e1592 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-08-15-11-58-05.gh-issue-90997.bWwV8Q.rst @@ -0,0 +1,3 @@ +Compile virtual :keyword:`try`/:keyword:`except` blocks to handle exceptions +raised during :meth:`~generator.close` or :meth:`~generator.throw` calls +through a suspended frame. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-15-12-41-14.gh-issue-95245.N4gOUV.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-15-12-41-14.gh-issue-95245.N4gOUV.rst new file mode 100644 index 00000000000000..4449ddd8ded8a0 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-08-15-12-41-14.gh-issue-95245.N4gOUV.rst @@ -0,0 +1,3 @@ +Reduces the size of a "simple" Python object from 8 to 6 words by moving the +weakreflist pointer into the pre-header directly before the object's +dict/values pointer. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-15-20-52-41.gh-issue-93678.X7GuIJ.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-15-20-52-41.gh-issue-93678.X7GuIJ.rst new file mode 100644 index 00000000000000..9e2b90ba07a454 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-08-15-20-52-41.gh-issue-93678.X7GuIJ.rst @@ -0,0 +1 @@ +Added test a harness for direct unit tests of the compiler's optimization stage. The ``_testinternalcapi.optimize_cfg()`` function runs the optimiser on a sequence of instructions. The ``CfgOptimizationTestCase`` class in ``test.support`` has utilities for invoking the optimizer and checking the output. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-15-21-08-11.gh-issue-96005.6eoc8k.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-15-21-08-11.gh-issue-96005.6eoc8k.rst new file mode 100644 index 00000000000000..06e414bca0f9c0 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-08-15-21-08-11.gh-issue-96005.6eoc8k.rst @@ -0,0 +1,4 @@ +On WASI :data:`~errno.ENOTCAPABLE` is now mapped to :exc:`PermissionError`. +The :mod:`errno` modules exposes the new error number. ``getpath.py`` now +ignores :exc:`PermissionError` when it cannot open landmark files +``pybuilddir.txt`` and ``pyenv.cfg``. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-18-13-47-59.gh-issue-96046.5Hqbka.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-18-13-47-59.gh-issue-96046.5Hqbka.rst new file mode 100644 index 00000000000000..b8cb52d4b4ece9 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-08-18-13-47-59.gh-issue-96046.5Hqbka.rst @@ -0,0 +1,4 @@ +:c:func:`PyType_Ready` now initializes ``ht_cached_keys`` and performs +additional checks to ensure that type objects are properly configured. This +avoids crashes in 3rd party packages that don't use regular API to create +new types. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-19-06-51-17.gh-issue-96071.mVgPAo.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-19-06-51-17.gh-issue-96071.mVgPAo.rst new file mode 100644 index 00000000000000..37653ffac12418 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-08-19-06-51-17.gh-issue-96071.mVgPAo.rst @@ -0,0 +1 @@ +Fix a deadlock in :c:func:`PyGILState_Ensure` when allocating new thread state. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-20-18-36-40.gh-issue-96143.nh3GFM.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-20-18-36-40.gh-issue-96143.nh3GFM.rst new file mode 100644 index 00000000000000..30f44fd453a547 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-08-20-18-36-40.gh-issue-96143.nh3GFM.rst @@ -0,0 +1,7 @@ +Add a new ``-X perf`` Python command line option as well as +:func:`sys.activate_stack_trampoline` and :func:`sys.deactivate_stack_trampoline` +function in the :mod:`sys` module that allows to set/unset the interpreter in a +way that the Linux ``perf`` profiler can detect Python calls. The new +:func:`sys.is_stack_trampoline_active` function allows to query the state of the +perf trampoline. Design by Pablo Galindo. Patch by Pablo Galindo and Christian Heimes +with contributions from Gregory P. Smith [Google] and Mark Shannon. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-22-21-33-28.gh-issue-96187.W_6SRG.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-22-21-33-28.gh-issue-96187.W_6SRG.rst new file mode 100644 index 00000000000000..fd194faa68545d --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-08-22-21-33-28.gh-issue-96187.W_6SRG.rst @@ -0,0 +1,2 @@ +Fixed a bug that caused ``_PyCode_GetExtra`` to return garbage for negative +indexes. Patch by Pablo Galindo diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-24-14-30-26.gh-issue-96237.msif5f.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-24-14-30-26.gh-issue-96237.msif5f.rst new file mode 100644 index 00000000000000..cb8a1c0eb7c26f --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-08-24-14-30-26.gh-issue-96237.msif5f.rst @@ -0,0 +1,5 @@ +The internal field ``_PyInterpreterFrame.f_func`` is renamed to +``_PyInterpreterFrame.f_funcobj`` and may be any object. The ``f_globals`` +and ``f_builtin`` fields may hold junk values. + +It is safest to treat the ``_PyInterpreterFrame`` struct as opaque. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-25-10-19-34.gh-issue-96268.AbYrLB.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-25-10-19-34.gh-issue-96268.AbYrLB.rst new file mode 100644 index 00000000000000..987d85ff3bab8e --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-08-25-10-19-34.gh-issue-96268.AbYrLB.rst @@ -0,0 +1,2 @@ +Loading a file with invalid UTF-8 will now report the broken character at +the correct location. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-26-18-46-32.gh-issue-93554.QEaCcK.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-26-18-46-32.gh-issue-93554.QEaCcK.rst new file mode 100644 index 00000000000000..dff12aef721b53 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-08-26-18-46-32.gh-issue-93554.QEaCcK.rst @@ -0,0 +1,16 @@ +Change the jump opcodes so that all conditional jumps are forward jumps. +Backward jumps are converted by the assembler into a conditional forward +jump whose target is the fallthrough block (and with a reversed condition), +followed by an unconditional backward jump. For example: + +``POP_JUMP_IF_TRUE BACKWARD_TARGET`` becomes ``POP_JUMP_IF_FALSE NEXT_BLOCK; +JUMP BACKWARD_TARGET``. + +All the directed conditional jump opcodes were removed: +``POP_JUMP_FORWARD_IF_TRUE``, ``POP_JUMP_BACKWARD_IF_TRUE``, +``POP_JUMP_FORWARD_IF_FALSE``, ``POP_JUMP_BACKWARD_IF_FALSE``, +``POP_JUMP_FORWARD_IF_NONE``, ``POP_JUMP_BACKWARD_IF_NONE``, +``POP_JUMP_FORWARD_IF_NOT_NONE``, ``POP_JUMP_BACKWARD_IF_NOT_NONE``. + +The corresponding opcodes without direction are no longer pseudo-instructions, +and they implement the forward conditional jumps. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-28-10-51-19.gh-issue-96352.jTLD2d.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-28-10-51-19.gh-issue-96352.jTLD2d.rst new file mode 100644 index 00000000000000..25ab9678715a92 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-08-28-10-51-19.gh-issue-96352.jTLD2d.rst @@ -0,0 +1,2 @@ +Fix :exc:`AttributeError` missing ``name`` and ``obj`` attributes in +:meth:`object.__getattribute__`. Patch by Philip Georgi. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-29-00-37-21.gh-issue-96364.c-IVyb.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-29-00-37-21.gh-issue-96364.c-IVyb.rst new file mode 100644 index 00000000000000..8872f9a5a498d5 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-08-29-00-37-21.gh-issue-96364.c-IVyb.rst @@ -0,0 +1 @@ +Fix text signatures of ``list.__getitem__`` and ``dict.__getitem__``. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-02-16-47-52.gh-issue-93911.vF-GWe.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-02-16-47-52.gh-issue-93911.vF-GWe.rst new file mode 100644 index 00000000000000..b8dc0435377b5f --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-09-02-16-47-52.gh-issue-93911.vF-GWe.rst @@ -0,0 +1,2 @@ +Fix an issue that could prevent :opcode:`LOAD_ATTR` from specializing +properly when accessing properties. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-05-15-07-25.gh-issue-96582.HEsL5s.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-05-15-07-25.gh-issue-96582.HEsL5s.rst new file mode 100644 index 00000000000000..162f7baadf49d1 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-09-05-15-07-25.gh-issue-96582.HEsL5s.rst @@ -0,0 +1 @@ +Fix possible ``NULL`` pointer dereference in ``_PyThread_CurrentFrames``. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-05-16-43-44.gh-issue-96569.9lmTCC.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-05-16-43-44.gh-issue-96569.9lmTCC.rst new file mode 100644 index 00000000000000..4734d3d6ded12a --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-09-05-16-43-44.gh-issue-96569.9lmTCC.rst @@ -0,0 +1 @@ +Remove two cases of undefined behavoir, by adding NULL checks. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-05-19-20-44.gh-issue-96587.bVxhX2.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-05-19-20-44.gh-issue-96587.bVxhX2.rst new file mode 100644 index 00000000000000..37e9dcbb11f030 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-09-05-19-20-44.gh-issue-96587.bVxhX2.rst @@ -0,0 +1,2 @@ +Correctly raise ``SyntaxError`` on exception groups (:pep:`654`) on python +versions prior to 3.11 diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-06-11-19-03.gh-issue-90230.YOtzs5.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-06-11-19-03.gh-issue-90230.YOtzs5.rst new file mode 100644 index 00000000000000..aac48e7d792f8d --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-09-06-11-19-03.gh-issue-90230.YOtzs5.rst @@ -0,0 +1,2 @@ +Fix compiler warnings and test failures when building with +``--enable-pystats``. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-06-14-26-36.gh-issue-96612.P4ZbeY.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-06-14-26-36.gh-issue-96612.P4ZbeY.rst new file mode 100644 index 00000000000000..52e92703c9c483 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-09-06-14-26-36.gh-issue-96612.P4ZbeY.rst @@ -0,0 +1 @@ +Make sure that incomplete frames do not show up in tracemalloc traces. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-06-16-22-13.gh-issue-96611.14wIX8.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-06-16-22-13.gh-issue-96611.14wIX8.rst new file mode 100644 index 00000000000000..08bd409bc9f997 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-09-06-16-22-13.gh-issue-96611.14wIX8.rst @@ -0,0 +1,2 @@ +When loading a file with invalid UTF-8 inside a multi-line string, a correct +SyntaxError is emitted. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-06-16-54-49.gh-issue-96572.8DRsaW.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-06-16-54-49.gh-issue-96572.8DRsaW.rst new file mode 100644 index 00000000000000..44cceb46c28c3e --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-09-06-16-54-49.gh-issue-96572.8DRsaW.rst @@ -0,0 +1 @@ +Fix use after free in trace refs build mode. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-07-12-02-11.gh-issue-96636.YvN-K6.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-07-12-02-11.gh-issue-96636.YvN-K6.rst new file mode 100644 index 00000000000000..e0fbd8761aa335 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-09-07-12-02-11.gh-issue-96636.YvN-K6.rst @@ -0,0 +1,3 @@ +Ensure that tracing, ``sys.setrace()``, is turned on immediately. In +pre-release versions of 3.11, some tracing events might have been lost when +turning on tracing in a ``__del__`` method or interrupt. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-07-13-38-37.gh-issue-96641.wky0Fc.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-07-13-38-37.gh-issue-96641.wky0Fc.rst new file mode 100644 index 00000000000000..51faca8716fbca --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-09-07-13-38-37.gh-issue-96641.wky0Fc.rst @@ -0,0 +1 @@ +Do not expose ``KeyWrapper`` in :mod:`_functools`. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-09-13-13-27.gh-issue-96678.vMxi9F.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-09-13-13-27.gh-issue-96678.vMxi9F.rst new file mode 100644 index 00000000000000..575b52be2940dc --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-09-09-13-13-27.gh-issue-96678.vMxi9F.rst @@ -0,0 +1 @@ +Fix case of undefined behavior in ceval.c diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-11-00-37-50.gh-issue-90751.VE8-zf.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-11-00-37-50.gh-issue-90751.VE8-zf.rst new file mode 100644 index 00000000000000..0908f1cc066fd8 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-09-11-00-37-50.gh-issue-90751.VE8-zf.rst @@ -0,0 +1,2 @@ +:class:`memoryview` now supports half-floats. +Patch by Dong-hee Na and Antoine Pitrou. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-11-12-43-43.gh-issue-96751.anRT6a.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-11-12-43-43.gh-issue-96751.anRT6a.rst new file mode 100644 index 00000000000000..fb5b73e1ac7727 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-09-11-12-43-43.gh-issue-96751.anRT6a.rst @@ -0,0 +1 @@ +Remove dead code from ``CALL_FUNCTION_EX`` opcode. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-12-15-15-04.gh-issue-90997.sZO8c9.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-12-15-15-04.gh-issue-90997.sZO8c9.rst new file mode 100644 index 00000000000000..4a43e2babcdef8 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-09-12-15-15-04.gh-issue-90997.sZO8c9.rst @@ -0,0 +1,2 @@ +Improve the performance of reading and writing inline bytecode caches on +some platforms. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-12-16-58-22.gh-issue-96754.0GRme5.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-12-16-58-22.gh-issue-96754.0GRme5.rst new file mode 100644 index 00000000000000..beac84ee822a84 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-09-12-16-58-22.gh-issue-96754.0GRme5.rst @@ -0,0 +1,3 @@ +Make sure that all frame objects created are created from valid interpreter +frames. Prevents the possibility of invalid frames in backtraces and signal +handlers. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-13-12-06-46.gh-issue-96678.NqGFyb.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-13-12-06-46.gh-issue-96678.NqGFyb.rst new file mode 100644 index 00000000000000..bdd33c8d2ca914 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-09-13-12-06-46.gh-issue-96678.NqGFyb.rst @@ -0,0 +1 @@ +Fix undefined behaviour in C code of null pointer arithmetic. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-16-19-02-40.gh-issue-95778.cJmnst.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-16-19-02-40.gh-issue-95778.cJmnst.rst new file mode 100644 index 00000000000000..ebf63778a605d7 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-09-16-19-02-40.gh-issue-95778.cJmnst.rst @@ -0,0 +1,3 @@ +When :exc:`ValueError` is raised if an integer is larger than the limit, +mention the :func:`sys.set_int_max_str_digits` function in the error message. +Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Documentation/2022-03-30-17-56-01.bpo-47161.gesHfS.rst b/Misc/NEWS.d/next/Documentation/2022-03-30-17-56-01.bpo-47161.gesHfS.rst new file mode 100644 index 00000000000000..6b552daa7c13af --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2022-03-30-17-56-01.bpo-47161.gesHfS.rst @@ -0,0 +1,2 @@ +Document that :class:`pathlib.PurePath` does not collapse +initial double slashes because they denote UNC paths. diff --git a/Misc/NEWS.d/next/Documentation/2022-05-18-23-58-26.gh-issue-92240.bHvYiz.rst b/Misc/NEWS.d/next/Documentation/2022-05-18-23-58-26.gh-issue-92240.bHvYiz.rst new file mode 100644 index 00000000000000..53b2a66c9779c2 --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2022-05-18-23-58-26.gh-issue-92240.bHvYiz.rst @@ -0,0 +1,2 @@ +Added release dates for +"What's New in Python 3.X" for 3.0, 3.1, 3.2, 3.8 and 3.10 diff --git a/Misc/NEWS.d/next/Documentation/2022-05-26-11-33-23.gh-issue-86438.kEGGmK.rst b/Misc/NEWS.d/next/Documentation/2022-05-26-11-33-23.gh-issue-86438.kEGGmK.rst new file mode 100644 index 00000000000000..75abfdd63b8b2e --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2022-05-26-11-33-23.gh-issue-86438.kEGGmK.rst @@ -0,0 +1,3 @@ +Clarify that :option:`-W` and :envvar:`PYTHONWARNINGS` are matched literally +and case-insensitively, rather than as regular expressions, in +:mod:`warnings`. diff --git a/Misc/NEWS.d/next/Documentation/2022-05-26-14-51-25.gh-issue-88831.5Cccr5.rst b/Misc/NEWS.d/next/Documentation/2022-05-26-14-51-25.gh-issue-88831.5Cccr5.rst new file mode 100644 index 00000000000000..983bea981a9b20 --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2022-05-26-14-51-25.gh-issue-88831.5Cccr5.rst @@ -0,0 +1 @@ +Augmented documentation of asyncio.create_task(). Clarified the need to keep strong references to tasks and added a code snippet detailing how to to this. diff --git a/Misc/NEWS.d/next/Documentation/2022-05-29-21-22-54.gh-issue-86986.lFXw8j.rst b/Misc/NEWS.d/next/Documentation/2022-05-29-21-22-54.gh-issue-86986.lFXw8j.rst new file mode 100644 index 00000000000000..1db028c30f67a4 --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2022-05-29-21-22-54.gh-issue-86986.lFXw8j.rst @@ -0,0 +1 @@ +The minimum Sphinx version required to build the documentation is now 3.2. diff --git a/Misc/NEWS.d/next/Documentation/2022-06-15-12-12-49.gh-issue-87260.epyI7D.rst b/Misc/NEWS.d/next/Documentation/2022-06-15-12-12-49.gh-issue-87260.epyI7D.rst new file mode 100644 index 00000000000000..4c6cee86ca115f --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2022-06-15-12-12-49.gh-issue-87260.epyI7D.rst @@ -0,0 +1 @@ +Align :mod:`sqlite3` argument specs with the actual implementation. diff --git a/Misc/NEWS.d/next/Documentation/2022-06-16-10-10-59.gh-issue-61162.1ypkG8.rst b/Misc/NEWS.d/next/Documentation/2022-06-16-10-10-59.gh-issue-61162.1ypkG8.rst new file mode 100644 index 00000000000000..c8b3a222232189 --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2022-06-16-10-10-59.gh-issue-61162.1ypkG8.rst @@ -0,0 +1 @@ +Clarify :mod:`sqlite3` behavior when :ref:`sqlite3-connection-context-manager`. diff --git a/Misc/NEWS.d/next/Documentation/2022-06-19-18-18-22.gh-issue-86128.39DDTD.rst b/Misc/NEWS.d/next/Documentation/2022-06-19-18-18-22.gh-issue-86128.39DDTD.rst new file mode 100644 index 00000000000000..bab006856deea7 --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2022-06-19-18-18-22.gh-issue-86128.39DDTD.rst @@ -0,0 +1 @@ +Document a limitation in ThreadPoolExecutor where its exit handler is executed before any handlers in atexit. diff --git a/Misc/NEWS.d/next/Documentation/2022-07-07-08-42-05.gh-issue-94321.pmCIPb.rst b/Misc/NEWS.d/next/Documentation/2022-07-07-08-42-05.gh-issue-94321.pmCIPb.rst new file mode 100644 index 00000000000000..c1a8dcd8535383 --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2022-07-07-08-42-05.gh-issue-94321.pmCIPb.rst @@ -0,0 +1,2 @@ +Document the :pep:`246` style protocol type +:class:`sqlite3.PrepareProtocol`. diff --git a/Misc/NEWS.d/next/Documentation/2022-07-29-09-04-02.gh-issue-95415.LKTyw6.rst b/Misc/NEWS.d/next/Documentation/2022-07-29-09-04-02.gh-issue-95415.LKTyw6.rst new file mode 100644 index 00000000000000..ece36bc4d1cedb --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2022-07-29-09-04-02.gh-issue-95415.LKTyw6.rst @@ -0,0 +1,2 @@ +Use consistent syntax for platform availability. The directive now supports +a content body and emits a warning when it encounters an unknown platform. diff --git a/Misc/NEWS.d/next/Documentation/2022-07-29-23-02-19.gh-issue-95451.-tgB93.rst b/Misc/NEWS.d/next/Documentation/2022-07-29-23-02-19.gh-issue-95451.-tgB93.rst new file mode 100644 index 00000000000000..3a7b8a122b7a1c --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2022-07-29-23-02-19.gh-issue-95451.-tgB93.rst @@ -0,0 +1,3 @@ +Update library documentation with +:ref:`availability information <wasm-availability>` +on WebAssembly platforms ``wasm32-emscripten`` and ``wasm32-wasi``. diff --git a/Misc/NEWS.d/next/Documentation/2022-07-30-00-23-11.gh-issue-95454.we7AFm.rst b/Misc/NEWS.d/next/Documentation/2022-07-30-00-23-11.gh-issue-95454.we7AFm.rst new file mode 100644 index 00000000000000..6440c23fd5000a --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2022-07-30-00-23-11.gh-issue-95454.we7AFm.rst @@ -0,0 +1,2 @@ +Replaced incorrectly written true/false values +in documentiation. Patch by Robert O'Shea diff --git a/Misc/NEWS.d/next/Documentation/2022-08-03-13-35-08.gh-issue-91207.eJ4pPf.rst b/Misc/NEWS.d/next/Documentation/2022-08-03-13-35-08.gh-issue-91207.eJ4pPf.rst new file mode 100644 index 00000000000000..8c7391f7edf78b --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2022-08-03-13-35-08.gh-issue-91207.eJ4pPf.rst @@ -0,0 +1,3 @@ +Fix stylesheet not working in Windows CHM htmlhelp docs +and add warning that they are deprecated. +Contributed by C.A.M. Gerlach. diff --git a/Misc/NEWS.d/next/Documentation/2022-08-13-20-34-51.gh-issue-95957.W9ZZAx.rst b/Misc/NEWS.d/next/Documentation/2022-08-13-20-34-51.gh-issue-95957.W9ZZAx.rst new file mode 100644 index 00000000000000..c617bd42abd95a --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2022-08-13-20-34-51.gh-issue-95957.W9ZZAx.rst @@ -0,0 +1,2 @@ +What's New 3.11 now has instructions for how to provide compiler and +linker flags for Tcl/Tk and OpenSSL on RHEL 7 and CentOS 7. diff --git a/Misc/NEWS.d/next/Documentation/2022-08-19-17-07-45.gh-issue-96098.nDp43u.rst b/Misc/NEWS.d/next/Documentation/2022-08-19-17-07-45.gh-issue-96098.nDp43u.rst new file mode 100644 index 00000000000000..5ead20bbb5357b --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2022-08-19-17-07-45.gh-issue-96098.nDp43u.rst @@ -0,0 +1,3 @@ +Improve discoverability of the higher level concurrent.futures module by +providing clearer links from the lower level threading and multiprocessing +modules. diff --git a/Misc/NEWS.d/next/Documentation/2022-09-01-17-03-04.gh-issue-96432.1EJ1-4.rst b/Misc/NEWS.d/next/Documentation/2022-09-01-17-03-04.gh-issue-96432.1EJ1-4.rst new file mode 100644 index 00000000000000..a5858f432932ca --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2022-09-01-17-03-04.gh-issue-96432.1EJ1-4.rst @@ -0,0 +1,2 @@ +Fraction literals now support whitespace around the forward slash, +`Fraction('2 / 3')`. diff --git a/Misc/NEWS.d/next/IDLE/2022-07-28-18-56-57.gh-issue-89610.hcosiM.rst b/Misc/NEWS.d/next/IDLE/2022-07-28-18-56-57.gh-issue-89610.hcosiM.rst new file mode 100644 index 00000000000000..0d283711e3e867 --- /dev/null +++ b/Misc/NEWS.d/next/IDLE/2022-07-28-18-56-57.gh-issue-89610.hcosiM.rst @@ -0,0 +1,2 @@ +Add .pyi as a recognized extension for IDLE on macOS. This allows opening +stub files by double clicking on them in the Finder. diff --git a/Misc/NEWS.d/next/IDLE/2022-07-29-11-08-52.gh-issue-95411.dazlqH.rst b/Misc/NEWS.d/next/IDLE/2022-07-29-11-08-52.gh-issue-95411.dazlqH.rst new file mode 100644 index 00000000000000..94ca8b2c2ea959 --- /dev/null +++ b/Misc/NEWS.d/next/IDLE/2022-07-29-11-08-52.gh-issue-95411.dazlqH.rst @@ -0,0 +1 @@ +Enable using IDLE's module browser with .pyw files. diff --git a/Misc/NEWS.d/next/IDLE/2022-07-30-15-10-39.gh-issue-95471.z3scVG.rst b/Misc/NEWS.d/next/IDLE/2022-07-30-15-10-39.gh-issue-95471.z3scVG.rst new file mode 100644 index 00000000000000..73a9d8058965cb --- /dev/null +++ b/Misc/NEWS.d/next/IDLE/2022-07-30-15-10-39.gh-issue-95471.z3scVG.rst @@ -0,0 +1 @@ +In the Edit menu, move ``Select All`` and add a new separator. diff --git a/Misc/NEWS.d/next/IDLE/2022-07-31-22-15-14.gh-issue-95511.WX6PmB.rst b/Misc/NEWS.d/next/IDLE/2022-07-31-22-15-14.gh-issue-95511.WX6PmB.rst new file mode 100644 index 00000000000000..803fa5f2a2ab0d --- /dev/null +++ b/Misc/NEWS.d/next/IDLE/2022-07-31-22-15-14.gh-issue-95511.WX6PmB.rst @@ -0,0 +1,2 @@ +Fix the Shell context menu copy-with-prompts bug of copying an extra line +when one selects whole lines. diff --git a/Misc/NEWS.d/next/IDLE/2022-08-01-23-31-48.gh-issue-95191.U7vryB.rst b/Misc/NEWS.d/next/IDLE/2022-08-01-23-31-48.gh-issue-95191.U7vryB.rst new file mode 100644 index 00000000000000..94d3dbbd529f03 --- /dev/null +++ b/Misc/NEWS.d/next/IDLE/2022-08-01-23-31-48.gh-issue-95191.U7vryB.rst @@ -0,0 +1 @@ +Include prompts when saving Shell (interactive input and output). diff --git a/Misc/NEWS.d/next/IDLE/2022-08-04-20-07-51.gh-issue-65802.xnThWe.rst b/Misc/NEWS.d/next/IDLE/2022-08-04-20-07-51.gh-issue-65802.xnThWe.rst new file mode 100644 index 00000000000000..a62a784b6e6926 --- /dev/null +++ b/Misc/NEWS.d/next/IDLE/2022-08-04-20-07-51.gh-issue-65802.xnThWe.rst @@ -0,0 +1 @@ +Document handling of extensions in Save As dialogs. diff --git a/Misc/NEWS.d/next/Library/2017-07-31-13-35-28.bpo-26253.8v_sCs.rst b/Misc/NEWS.d/next/Library/2017-07-31-13-35-28.bpo-26253.8v_sCs.rst new file mode 100644 index 00000000000000..fa0dc95b7d62b3 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2017-07-31-13-35-28.bpo-26253.8v_sCs.rst @@ -0,0 +1,2 @@ +Allow adjustable compression level for tarfile streams in +:func:`tarfile.open`. diff --git a/Misc/NEWS.d/next/Library/2018-09-23-07-47-29.bpo-32990.2FVVTU.rst b/Misc/NEWS.d/next/Library/2018-09-23-07-47-29.bpo-32990.2FVVTU.rst new file mode 100644 index 00000000000000..7d7f7e3faaec2b --- /dev/null +++ b/Misc/NEWS.d/next/Library/2018-09-23-07-47-29.bpo-32990.2FVVTU.rst @@ -0,0 +1,2 @@ +Support reading wave files with the ``WAVE_FORMAT_EXTENSIBLE`` format in the +:mod:`wave` module. diff --git a/Misc/NEWS.d/next/Library/2018-09-28-22-18-03.bpo-34828.5Zyi_S.rst b/Misc/NEWS.d/next/Library/2018-09-28-22-18-03.bpo-34828.5Zyi_S.rst new file mode 100644 index 00000000000000..b0e10a158b5b19 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2018-09-28-22-18-03.bpo-34828.5Zyi_S.rst @@ -0,0 +1 @@ +:meth:`sqlite3.Connection.iterdump` now handles databases that use ``AUTOINCREMENT`` in one or more tables. diff --git a/Misc/NEWS.d/next/Library/2021-08-27-18-07-35.bpo-44173.oW92Ev.rst b/Misc/NEWS.d/next/Library/2021-08-27-18-07-35.bpo-44173.oW92Ev.rst new file mode 100644 index 00000000000000..abc98266afb0ce --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-08-27-18-07-35.bpo-44173.oW92Ev.rst @@ -0,0 +1 @@ +Enable fast seeking of uncompressed unencrypted :class:`zipfile.ZipExtFile` diff --git a/Misc/NEWS.d/next/Library/2021-12-27-15-32-15.bpo-45924.0ZpHX2.rst b/Misc/NEWS.d/next/Library/2021-12-27-15-32-15.bpo-45924.0ZpHX2.rst new file mode 100644 index 00000000000000..5cda22737adb79 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-12-27-15-32-15.bpo-45924.0ZpHX2.rst @@ -0,0 +1 @@ +Fix :mod:`asyncio` incorrect traceback when future's exception is raised multiple times. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Library/2022-01-03-15-07-06.bpo-46197.Z0djv6.rst b/Misc/NEWS.d/next/Library/2022-01-03-15-07-06.bpo-46197.Z0djv6.rst new file mode 100644 index 00000000000000..7a3b2d59dfaf42 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-01-03-15-07-06.bpo-46197.Z0djv6.rst @@ -0,0 +1 @@ +Fix :mod:`ensurepip` environment isolation for subprocess running ``pip``. diff --git a/Misc/NEWS.d/next/Library/2022-02-05-18-46-54.bpo-46642.YI6nHQ.rst b/Misc/NEWS.d/next/Library/2022-02-05-18-46-54.bpo-46642.YI6nHQ.rst new file mode 100644 index 00000000000000..2d2815c1e4b00d --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-02-05-18-46-54.bpo-46642.YI6nHQ.rst @@ -0,0 +1 @@ +Improve error message when trying to subclass an instance of :data:`typing.TypeVar`, :data:`typing.ParamSpec`, :data:`typing.TypeVarTuple`, etc. Based on patch by Gregory Beauregard. diff --git a/Misc/NEWS.d/next/Library/2022-02-15-12-40-48.bpo-46755.zePJfx.rst b/Misc/NEWS.d/next/Library/2022-02-15-12-40-48.bpo-46755.zePJfx.rst new file mode 100644 index 00000000000000..399caf72535932 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-02-15-12-40-48.bpo-46755.zePJfx.rst @@ -0,0 +1,2 @@ +In :class:`QueueHandler`, clear ``stack_info`` from :class:`LogRecord` to +prevent stack trace from being written twice. diff --git a/Misc/NEWS.d/next/Library/2022-02-21-01-37-00.bpo-42777.nWK3E6.rst b/Misc/NEWS.d/next/Library/2022-02-21-01-37-00.bpo-42777.nWK3E6.rst new file mode 100644 index 00000000000000..24912380fb590a --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-02-21-01-37-00.bpo-42777.nWK3E6.rst @@ -0,0 +1 @@ +Implement :meth:`pathlib.Path.is_mount` for Windows paths. diff --git a/Misc/NEWS.d/next/Library/2022-03-16-14-24-14.bpo-47025.qtT3CE.rst b/Misc/NEWS.d/next/Library/2022-03-16-14-24-14.bpo-47025.qtT3CE.rst new file mode 100644 index 00000000000000..1c7c7ace9706d7 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-03-16-14-24-14.bpo-47025.qtT3CE.rst @@ -0,0 +1 @@ +Drop support for :class:`bytes` on :attr:`sys.path`. diff --git a/Misc/NEWS.d/next/Library/2022-03-19-04-41-42.bpo-47063.nwRfUo.rst b/Misc/NEWS.d/next/Library/2022-03-19-04-41-42.bpo-47063.nwRfUo.rst new file mode 100644 index 00000000000000..b889d3c6520753 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-03-19-04-41-42.bpo-47063.nwRfUo.rst @@ -0,0 +1 @@ +Add an index_pages parameter to support using non-default index page names. diff --git a/Misc/NEWS.d/next/Library/2022-04-01-09-43-54.bpo-32547.NIUiNC.rst b/Misc/NEWS.d/next/Library/2022-04-01-09-43-54.bpo-32547.NIUiNC.rst new file mode 100644 index 00000000000000..4599b73cc342ca --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-04-01-09-43-54.bpo-32547.NIUiNC.rst @@ -0,0 +1 @@ +The constructors for :class:`~csv.DictWriter` and :class:`~csv.DictReader` now coerce the ``fieldnames`` argument to a :class:`list` if it is an iterator. diff --git a/Misc/NEWS.d/next/Library/2022-04-01-12-35-44.gh-issue-90005.pvaLHQ.rst b/Misc/NEWS.d/next/Library/2022-04-01-12-35-44.gh-issue-90005.pvaLHQ.rst new file mode 100644 index 00000000000000..ef6a881a4d094d --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-04-01-12-35-44.gh-issue-90005.pvaLHQ.rst @@ -0,0 +1 @@ +:mod:`ctypes` dependency ``libffi`` is now detected with ``pkg-config``. diff --git a/Misc/NEWS.d/next/Library/2022-04-03-11-25-02.bpo-41287.8CTdwf.rst b/Misc/NEWS.d/next/Library/2022-04-03-11-25-02.bpo-41287.8CTdwf.rst new file mode 100644 index 00000000000000..ef80ec664c4a86 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-04-03-11-25-02.bpo-41287.8CTdwf.rst @@ -0,0 +1 @@ +Fix handling of the ``doc`` argument in subclasses of :func:`property`. diff --git a/Misc/NEWS.d/next/Library/2022-04-08-22-12-11.bpo-47231.lvyglt.rst b/Misc/NEWS.d/next/Library/2022-04-08-22-12-11.bpo-47231.lvyglt.rst new file mode 100644 index 00000000000000..ee05c5e2856756 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-04-08-22-12-11.bpo-47231.lvyglt.rst @@ -0,0 +1 @@ +Fixed an issue with inconsistent trailing slashes in tarfile longname directories. diff --git a/Misc/NEWS.d/next/Library/2022-04-11-16-55-41.gh-issue-91456.DK3KKl.rst b/Misc/NEWS.d/next/Library/2022-04-11-16-55-41.gh-issue-91456.DK3KKl.rst new file mode 100644 index 00000000000000..a4c853149bdf02 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-04-11-16-55-41.gh-issue-91456.DK3KKl.rst @@ -0,0 +1,3 @@ +Deprecate current default auto() behavior: In 3.13 the default will be for +for auto() to always return the largest member value incremented by +1, and to raise if incompatible value types are used. diff --git a/Misc/NEWS.d/next/Library/2022-04-12-18-05-40.gh-issue-91447.N_Fs4H.rst b/Misc/NEWS.d/next/Library/2022-04-12-18-05-40.gh-issue-91447.N_Fs4H.rst new file mode 100644 index 00000000000000..6f9be2d3e9be41 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-04-12-18-05-40.gh-issue-91447.N_Fs4H.rst @@ -0,0 +1,2 @@ +Fix findtext in the xml module to only give an empty string when the text +attribute is set to None. diff --git a/Misc/NEWS.d/next/Library/2022-04-15-17-38-55.gh-issue-91577.Ah7cLL.rst b/Misc/NEWS.d/next/Library/2022-04-15-17-38-55.gh-issue-91577.Ah7cLL.rst new file mode 100644 index 00000000000000..0f44f34011f9c7 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-04-15-17-38-55.gh-issue-91577.Ah7cLL.rst @@ -0,0 +1 @@ +Move imports in :class:`~multiprocessing.SharedMemory` methods to module level so that they can be executed late in python finalization. diff --git a/Misc/NEWS.d/next/Library/2022-04-24-22-26-45.gh-issue-81790.M5Rvpm.rst b/Misc/NEWS.d/next/Library/2022-04-24-22-26-45.gh-issue-81790.M5Rvpm.rst new file mode 100644 index 00000000000000..8894493e97410f --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-04-24-22-26-45.gh-issue-81790.M5Rvpm.rst @@ -0,0 +1,2 @@ +:func:`os.path.splitdrive` now understands DOS device paths with UNC +links (beginning ``\\?\UNC\``). Contributed by Barney Gale. diff --git a/Misc/NEWS.d/next/Library/2022-05-08-18-51-14.gh-issue-89336.TL6ip7.rst b/Misc/NEWS.d/next/Library/2022-05-08-18-51-14.gh-issue-89336.TL6ip7.rst new file mode 100644 index 00000000000000..b4c58c0e48b25e --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-05-08-18-51-14.gh-issue-89336.TL6ip7.rst @@ -0,0 +1,4 @@ +Removed :mod:`configparser` module APIs: +the ``SafeConfigParser`` class alias, the ``ParsingError.filename`` +property and parameter, and the ``ConfigParser.readfp`` method, all +of which were deprecated since Python 3.2. diff --git a/Misc/NEWS.d/next/Library/2022-05-09-21-31-41.gh-issue-92445.tJosdm.rst b/Misc/NEWS.d/next/Library/2022-05-09-21-31-41.gh-issue-92445.tJosdm.rst new file mode 100644 index 00000000000000..ba69a011601fd0 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-05-09-21-31-41.gh-issue-92445.tJosdm.rst @@ -0,0 +1,3 @@ +Fix a bug in :mod:`argparse` where `nargs="*"` would raise an error instead of returning +an empty list when 0 arguments were supplied if choice was also defined in +``parser.add_argument``. diff --git a/Misc/NEWS.d/next/Library/2022-05-09-22-27-11.gh-issue-92591.V7RCk2.rst b/Misc/NEWS.d/next/Library/2022-05-09-22-27-11.gh-issue-92591.V7RCk2.rst new file mode 100644 index 00000000000000..cd9b598d1dbca1 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-05-09-22-27-11.gh-issue-92591.V7RCk2.rst @@ -0,0 +1,3 @@ +Allow :mod:`logging` filters to return a :class:`logging.LogRecord` instance +so that filters attached to :class:`logging.Handler`\ s can enrich records without +side effects on other handlers. diff --git a/Misc/NEWS.d/next/Library/2022-05-10-16-30-40.gh-issue-90385.1_wBRQ.rst b/Misc/NEWS.d/next/Library/2022-05-10-16-30-40.gh-issue-90385.1_wBRQ.rst new file mode 100644 index 00000000000000..24aa4403f8a68a --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-05-10-16-30-40.gh-issue-90385.1_wBRQ.rst @@ -0,0 +1 @@ +Add :meth:`pathlib.Path.walk` as an alternative to :func:`os.walk`. diff --git a/Misc/NEWS.d/next/Library/2022-05-12-15-19-00.gh-issue-92734.d0wjDt.rst b/Misc/NEWS.d/next/Library/2022-05-12-15-19-00.gh-issue-92734.d0wjDt.rst new file mode 100644 index 00000000000000..a2fcd1ed3dc76f --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-05-12-15-19-00.gh-issue-92734.d0wjDt.rst @@ -0,0 +1 @@ +Allow multi-element reprs emitted by :mod:`reprlib` to be pretty-printed using configurable indentation. diff --git a/Misc/NEWS.d/next/Library/2022-05-14-09-01-38.gh-issue-89325.ys-2BZ.rst b/Misc/NEWS.d/next/Library/2022-05-14-09-01-38.gh-issue-89325.ys-2BZ.rst new file mode 100644 index 00000000000000..175869624f75dd --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-05-14-09-01-38.gh-issue-89325.ys-2BZ.rst @@ -0,0 +1,6 @@ +Removed many old deprecated :mod:`unittest` features: +:class:`~unittest.TestCase` method aliases, undocumented and broken +:class:`~unittest.TestCase` method ``assertDictContainsSubset``, +undocumented :meth:`TestLoader.loadTestsFromModule +<unittest.TestLoader.loadTestsFromModule>` parameter *use_load_tests*, and +an underscored alias of the :class:`~unittest.TextTestResult` class. diff --git a/Misc/NEWS.d/next/Library/2022-05-16-14-35-39.gh-issue-92839.owSMyo.rst b/Misc/NEWS.d/next/Library/2022-05-16-14-35-39.gh-issue-92839.owSMyo.rst new file mode 100644 index 00000000000000..b425bd9c47bc91 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-05-16-14-35-39.gh-issue-92839.owSMyo.rst @@ -0,0 +1 @@ +Fixed crash resulting from calling bisect.insort() or bisect.insort_left() with the key argument not equal to None. diff --git a/Misc/NEWS.d/next/Library/2022-05-17-06-27-39.gh-issue-92869.t8oBkw.rst b/Misc/NEWS.d/next/Library/2022-05-17-06-27-39.gh-issue-92869.t8oBkw.rst new file mode 100644 index 00000000000000..7787f3419de60e --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-05-17-06-27-39.gh-issue-92869.t8oBkw.rst @@ -0,0 +1,2 @@ +Added :class:`~ctypes.c_time_t` to :mod:`ctypes`, which has the same size as +the :c:type:`time_t` type in C. diff --git a/Misc/NEWS.d/next/Library/2022-05-19-17-49-58.gh-issue-92932.o2peTh.rst b/Misc/NEWS.d/next/Library/2022-05-19-17-49-58.gh-issue-92932.o2peTh.rst new file mode 100644 index 00000000000000..cb76ac5cbd60e1 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-05-19-17-49-58.gh-issue-92932.o2peTh.rst @@ -0,0 +1,3 @@ +Now :func:`~dis.dis` and :func:`~dis.get_instructions` handle operand values +for instructions prefixed by ``EXTENDED_ARG_QUICK``. +Patch by Sam Gross and Dong-hee Na. diff --git a/Misc/NEWS.d/next/Library/2022-05-19-22-34-42.gh-issue-92986.e6uKxj.rst b/Misc/NEWS.d/next/Library/2022-05-19-22-34-42.gh-issue-92986.e6uKxj.rst new file mode 100644 index 00000000000000..691c0dd3759f8c --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-05-19-22-34-42.gh-issue-92986.e6uKxj.rst @@ -0,0 +1 @@ +Fix :func:`ast.unparse` when ``ImportFrom.level`` is None diff --git a/Misc/NEWS.d/next/Library/2022-05-22-16-08-01.gh-issue-89973.jc-Q4g.rst b/Misc/NEWS.d/next/Library/2022-05-22-16-08-01.gh-issue-89973.jc-Q4g.rst new file mode 100644 index 00000000000000..7e61fd7d46a0bb --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-05-22-16-08-01.gh-issue-89973.jc-Q4g.rst @@ -0,0 +1,3 @@ +Fix :exc:`re.error` raised in :mod:`fnmatch` if the pattern contains a +character range with upper bound lower than lower bound (e.g. ``[c-a]``). +Now such ranges are interpreted as empty ranges. diff --git a/Misc/NEWS.d/next/Library/2022-05-24-11-19-04.gh-issue-74696.-cnf-A.rst b/Misc/NEWS.d/next/Library/2022-05-24-11-19-04.gh-issue-74696.-cnf-A.rst new file mode 100644 index 00000000000000..5b2e460e9ea075 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-05-24-11-19-04.gh-issue-74696.-cnf-A.rst @@ -0,0 +1,2 @@ +:func:`shutil.make_archive` no longer temporarily changes the current +working directory during creation of standard ``.zip`` or tar archives. diff --git a/Misc/NEWS.d/next/Library/2022-05-26-08-41-34.gh-issue-93243.uw6x5z.rst b/Misc/NEWS.d/next/Library/2022-05-26-08-41-34.gh-issue-93243.uw6x5z.rst new file mode 100644 index 00000000000000..f03ed7b5efc546 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-05-26-08-41-34.gh-issue-93243.uw6x5z.rst @@ -0,0 +1 @@ +The :mod:`smtpd` module was removed per the schedule in :pep:`594`. diff --git a/Misc/NEWS.d/next/Library/2022-05-26-09-24-41.gh-issue-93162.W1VuhU.rst b/Misc/NEWS.d/next/Library/2022-05-26-09-24-41.gh-issue-93162.W1VuhU.rst new file mode 100644 index 00000000000000..4d916a1df5e065 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-05-26-09-24-41.gh-issue-93162.W1VuhU.rst @@ -0,0 +1,4 @@ +Add the ability for :func:`logging.config.dictConfig` to usefully configure +:class:`~logging.handlers.QueueHandler` and :class:`~logging.handlers.QueueListener` +as a pair, and add :func:`logging.getHandlerByName` and :func:`logging.getHandlerNames` +APIs to allow access to handlers by name. diff --git a/Misc/NEWS.d/next/Library/2022-05-26-23-10-55.gh-issue-93156.4XfDVN.rst b/Misc/NEWS.d/next/Library/2022-05-26-23-10-55.gh-issue-93156.4XfDVN.rst new file mode 100644 index 00000000000000..165baa08aaab14 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-05-26-23-10-55.gh-issue-93156.4XfDVN.rst @@ -0,0 +1,2 @@ +Accessing the :attr:`pathlib.PurePath.parents` sequence of an absolute path +using negative index values produced incorrect results. diff --git a/Misc/NEWS.d/next/Library/2022-05-27-10-52-06.gh-issue-85308.K6r-tJ.rst b/Misc/NEWS.d/next/Library/2022-05-27-10-52-06.gh-issue-85308.K6r-tJ.rst new file mode 100644 index 00000000000000..4574264dd4d433 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-05-27-10-52-06.gh-issue-85308.K6r-tJ.rst @@ -0,0 +1,4 @@ +Changed :class:`argparse.ArgumentParser` to use :term:`filesystem encoding +and error handler` instead of default text encoding to read arguments from +file (e.g. ``fromfile_prefix_chars`` option). This change affects Windows; +argument file should be encoded with UTF-8 instead of ANSI Codepage. diff --git a/Misc/NEWS.d/next/Library/2022-05-27-13-18-18.gh-issue-93297.e2zuHz.rst b/Misc/NEWS.d/next/Library/2022-05-27-13-18-18.gh-issue-93297.e2zuHz.rst new file mode 100644 index 00000000000000..a8e4cd93d3047a --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-05-27-13-18-18.gh-issue-93297.e2zuHz.rst @@ -0,0 +1 @@ +Make asyncio task groups prevent child tasks from being GCed diff --git a/Misc/NEWS.d/next/Library/2022-05-27-22-17-11.gh-issue-88123.mkYl5q.rst b/Misc/NEWS.d/next/Library/2022-05-27-22-17-11.gh-issue-88123.mkYl5q.rst new file mode 100644 index 00000000000000..46bd37a85a7ca1 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-05-27-22-17-11.gh-issue-88123.mkYl5q.rst @@ -0,0 +1,2 @@ +Implement Enum __contains__ that returns True or False to replace the +deprecated behaviour that would sometimes raise a TypeError. diff --git a/Misc/NEWS.d/next/Library/2022-05-28-08-02-55.gh-issue-93312.HY0Uzj.rst b/Misc/NEWS.d/next/Library/2022-05-28-08-02-55.gh-issue-93312.HY0Uzj.rst new file mode 100644 index 00000000000000..f11d04f63532f3 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-05-28-08-02-55.gh-issue-93312.HY0Uzj.rst @@ -0,0 +1,3 @@ +Add :data:`os.PIDFD_NONBLOCK` flag to open a file descriptor +for a process with :func:`os.pidfd_open` in non-blocking mode. +Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Library/2022-05-30-21-42-50.gh-issue-83658.01Ntx0.rst b/Misc/NEWS.d/next/Library/2022-05-30-21-42-50.gh-issue-83658.01Ntx0.rst new file mode 100644 index 00000000000000..a1873095409803 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-05-30-21-42-50.gh-issue-83658.01Ntx0.rst @@ -0,0 +1 @@ +Make :class:`multiprocessing.Pool` raise an exception if ``maxtasksperchild`` is not ``None`` or a positive int. diff --git a/Misc/NEWS.d/next/Library/2022-05-31-14-58-40.gh-issue-93353.9Hvm6o.rst b/Misc/NEWS.d/next/Library/2022-05-31-14-58-40.gh-issue-93353.9Hvm6o.rst new file mode 100644 index 00000000000000..67be3c68f47cba --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-05-31-14-58-40.gh-issue-93353.9Hvm6o.rst @@ -0,0 +1,3 @@ +Fix the :func:`importlib.resources.as_file` context manager to remove the +temporary file if destroyed late during Python finalization: keep a local +reference to the :func:`os.remove` function. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Library/2022-06-01-11-24-13.gh-issue-91162.NxvU_u.rst b/Misc/NEWS.d/next/Library/2022-06-01-11-24-13.gh-issue-91162.NxvU_u.rst new file mode 100644 index 00000000000000..09fa47c0d23840 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-01-11-24-13.gh-issue-91162.NxvU_u.rst @@ -0,0 +1,5 @@ +Support splitting of unpacked arbitrary-length tuple over ``TypeVar`` and +``TypeVarTuple`` parameters. For example: + +* ``A[T, *Ts][*tuple[int, ...]]`` -> ``A[int, *tuple[int, ...]]`` +* ``A[*Ts, T][*tuple[int, ...]]`` -> ``A[*tuple[int, ...], int]`` diff --git a/Misc/NEWS.d/next/Library/2022-06-02-08-40-58.gh-issue-91810.Gtk44w.rst b/Misc/NEWS.d/next/Library/2022-06-02-08-40-58.gh-issue-91810.Gtk44w.rst new file mode 100644 index 00000000000000..e40005886afc3e --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-02-08-40-58.gh-issue-91810.Gtk44w.rst @@ -0,0 +1,2 @@ +Suppress writing an XML declaration in open files in ``ElementTree.write()`` +with ``encoding='unicode'`` and ``xml_declaration=None``. diff --git a/Misc/NEWS.d/next/Library/2022-06-03-22-13-28.gh-issue-93370.tjfu9L.rst b/Misc/NEWS.d/next/Library/2022-06-03-22-13-28.gh-issue-93370.tjfu9L.rst new file mode 100644 index 00000000000000..bd531503800319 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-03-22-13-28.gh-issue-93370.tjfu9L.rst @@ -0,0 +1 @@ +Deprecate :data:`sqlite3.version` and :data:`sqlite3.version_info`. diff --git a/Misc/NEWS.d/next/Library/2022-06-04-00-11-54.gh-issue-93475.vffFw1.rst b/Misc/NEWS.d/next/Library/2022-06-04-00-11-54.gh-issue-93475.vffFw1.rst new file mode 100644 index 00000000000000..efe7ff3e9b4fb6 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-04-00-11-54.gh-issue-93475.vffFw1.rst @@ -0,0 +1,2 @@ +Expose ``FICLONE`` and ``FICLONERANGE`` constants in :mod:`fcntl`. Patch by +Illia Volochii. diff --git a/Misc/NEWS.d/next/Library/2022-06-05-22-22-42.gh-issue-93421.43UO_8.rst b/Misc/NEWS.d/next/Library/2022-06-05-22-22-42.gh-issue-93421.43UO_8.rst new file mode 100644 index 00000000000000..9e1d6554e0ab2b --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-05-22-22-42.gh-issue-93421.43UO_8.rst @@ -0,0 +1,3 @@ +Update :data:`sqlite3.Cursor.rowcount` when a DML statement has run to +completion. This fixes the row count for SQL queries like +``UPDATE ... RETURNING``. Patch by Erlend E. Aasland. diff --git a/Misc/NEWS.d/next/Library/2022-06-06-12-58-27.gh-issue-79579.e8rB-M.rst b/Misc/NEWS.d/next/Library/2022-06-06-12-58-27.gh-issue-79579.e8rB-M.rst new file mode 100644 index 00000000000000..82b1a1c28a6001 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-06-12-58-27.gh-issue-79579.e8rB-M.rst @@ -0,0 +1,2 @@ +:mod:`sqlite3` now correctly detects DML queries with leading comments. +Patch by Erlend E. Aasland. diff --git a/Misc/NEWS.d/next/Library/2022-06-06-13-19-43.gh-issue-93521._vE8m9.rst b/Misc/NEWS.d/next/Library/2022-06-06-13-19-43.gh-issue-93521._vE8m9.rst new file mode 100644 index 00000000000000..3a3ff4736d2940 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-06-13-19-43.gh-issue-93521._vE8m9.rst @@ -0,0 +1,4 @@ +Fixed a case where dataclasses would try to add ``__weakref__`` into the +``__slots__`` for a dataclass that specified ``weakref_slot=True`` when it was +already defined in one of its bases. This resulted in a ``TypeError`` upon the +new class being created. diff --git a/Misc/NEWS.d/next/Library/2022-06-07-14-53-46.gh-issue-90549.T4FMKY.rst b/Misc/NEWS.d/next/Library/2022-06-07-14-53-46.gh-issue-90549.T4FMKY.rst new file mode 100644 index 00000000000000..6ebdc394900e63 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-07-14-53-46.gh-issue-90549.T4FMKY.rst @@ -0,0 +1,2 @@ +Fix a multiprocessing bug where a global named resource (such as a semaphore) +could leak when a child process is spawned (as opposed to forked). diff --git a/Misc/NEWS.d/next/Library/2022-06-08-20-11-02.gh-issue-90494.LIZT85.rst b/Misc/NEWS.d/next/Library/2022-06-08-20-11-02.gh-issue-90494.LIZT85.rst new file mode 100644 index 00000000000000..95416768793eaf --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-08-20-11-02.gh-issue-90494.LIZT85.rst @@ -0,0 +1,3 @@ +:func:`copy.copy` and :func:`copy.deepcopy` now always raise a TypeError if +``__reduce__()`` returns a tuple with length 6 instead of silently ignore +the 6th item or produce incorrect result. diff --git a/Misc/NEWS.d/next/Library/2022-06-09-10-12-55.gh-issue-90473.683m_C.rst b/Misc/NEWS.d/next/Library/2022-06-09-10-12-55.gh-issue-90473.683m_C.rst new file mode 100644 index 00000000000000..b053a8e9a08135 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-09-10-12-55.gh-issue-90473.683m_C.rst @@ -0,0 +1,2 @@ +Emscripten and WASI have no home directory and cannot provide :pep:`370` +user site directory. diff --git a/Misc/NEWS.d/next/Library/2022-06-09-14-44-21.gh-issue-93626.sfghs46.rst b/Misc/NEWS.d/next/Library/2022-06-09-14-44-21.gh-issue-93626.sfghs46.rst new file mode 100644 index 00000000000000..c6fa103706e9cd --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-09-14-44-21.gh-issue-93626.sfghs46.rst @@ -0,0 +1 @@ +Set ``__future__.annotations`` to have a ``None`` mandatoryRelease to indicate that it is currently 'TBD'. diff --git a/Misc/NEWS.d/next/Library/2022-06-09-17-15-26.gh-issue-91389.OE4vS5.rst b/Misc/NEWS.d/next/Library/2022-06-09-17-15-26.gh-issue-91389.OE4vS5.rst new file mode 100644 index 00000000000000..0a126551e4110b --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-09-17-15-26.gh-issue-91389.OE4vS5.rst @@ -0,0 +1,2 @@ +Fix an issue where :mod:`dis` utilities could report missing or incorrect +position information in the presence of ``CACHE`` entries. diff --git a/Misc/NEWS.d/next/Library/2022-06-11-13-32-17.gh-issue-79512.A1KTDr.rst b/Misc/NEWS.d/next/Library/2022-06-11-13-32-17.gh-issue-79512.A1KTDr.rst new file mode 100644 index 00000000000000..5393fb52e93c30 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-11-13-32-17.gh-issue-79512.A1KTDr.rst @@ -0,0 +1,3 @@ +Fixed names and ``__module__`` value of :mod:`weakref` classes +:class:`~weakref.ReferenceType`, :class:`~weakref.ProxyType`, +:class:`~weakref.CallableProxyType`. It makes them pickleable. diff --git a/Misc/NEWS.d/next/Library/2022-06-15-21-20-02.gh-issue-93820.FAMLY8.rst b/Misc/NEWS.d/next/Library/2022-06-15-21-20-02.gh-issue-93820.FAMLY8.rst new file mode 100644 index 00000000000000..e06d897e7d8e6b --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-15-21-20-02.gh-issue-93820.FAMLY8.rst @@ -0,0 +1,2 @@ +Fixed a regression when :func:`copy.copy`-ing :class:`enum.Flag` with +multiple flag members. diff --git a/Misc/NEWS.d/next/Library/2022-06-15-21-28-16.gh-issue-83499.u3DQJ-.rst b/Misc/NEWS.d/next/Library/2022-06-15-21-28-16.gh-issue-83499.u3DQJ-.rst new file mode 100644 index 00000000000000..6b32b238dfdede --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-15-21-28-16.gh-issue-83499.u3DQJ-.rst @@ -0,0 +1 @@ +Fix double closing of file description in :mod:`tempfile`. diff --git a/Misc/NEWS.d/next/Library/2022-06-15-21-35-11.gh-issue-91404.39TZzW.rst b/Misc/NEWS.d/next/Library/2022-06-15-21-35-11.gh-issue-91404.39TZzW.rst new file mode 100644 index 00000000000000..e20b15c7b75864 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-15-21-35-11.gh-issue-91404.39TZzW.rst @@ -0,0 +1,3 @@ +Revert the :mod:`re` memory leak when a match is terminated by a signal or +memory allocation failure as the implemented fix caused a major performance +regression. diff --git a/Misc/NEWS.d/next/Library/2022-06-16-09-24-50.gh-issue-93847.kuv8bN.rst b/Misc/NEWS.d/next/Library/2022-06-16-09-24-50.gh-issue-93847.kuv8bN.rst new file mode 100644 index 00000000000000..c6947575e67e1c --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-16-09-24-50.gh-issue-93847.kuv8bN.rst @@ -0,0 +1 @@ +Fix repr of enum of generic aliases. diff --git a/Misc/NEWS.d/next/Library/2022-06-16-11-16-53.gh-issue-93820.00X0Y5.rst b/Misc/NEWS.d/next/Library/2022-06-16-11-16-53.gh-issue-93820.00X0Y5.rst new file mode 100644 index 00000000000000..70bb1e6c0cd764 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-16-11-16-53.gh-issue-93820.00X0Y5.rst @@ -0,0 +1 @@ +Pickle :class:`enum.Flag` by name. diff --git a/Misc/NEWS.d/next/Library/2022-06-17-12-02-30.gh-issue-93858.R49ARc.rst b/Misc/NEWS.d/next/Library/2022-06-17-12-02-30.gh-issue-93858.R49ARc.rst new file mode 100644 index 00000000000000..508ba626bab41d --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-17-12-02-30.gh-issue-93858.R49ARc.rst @@ -0,0 +1 @@ +Prevent error when activating venv in nested fish instances. diff --git a/Misc/NEWS.d/next/Library/2022-06-17-16-00-55.gh-issue-93963.8YYZ-2.rst b/Misc/NEWS.d/next/Library/2022-06-17-16-00-55.gh-issue-93963.8YYZ-2.rst new file mode 100644 index 00000000000000..0973982dfeeffd --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-17-16-00-55.gh-issue-93963.8YYZ-2.rst @@ -0,0 +1,2 @@ +Officially deprecate from ``importlib.abc`` classes moved to +``importlib.resources.abc``. diff --git a/Misc/NEWS.d/next/Library/2022-06-18-15-06-54.gh-issue-93973.4y6UQT.rst b/Misc/NEWS.d/next/Library/2022-06-18-15-06-54.gh-issue-93973.4y6UQT.rst new file mode 100644 index 00000000000000..a3e68ce4fab9df --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-18-15-06-54.gh-issue-93973.4y6UQT.rst @@ -0,0 +1 @@ +Add keyword argument ``all_errors`` to ``asyncio.create_connection`` so that multiple connection errors can be raised as an ``ExceptionGroup``. diff --git a/Misc/NEWS.d/next/Library/2022-06-20-23-14-43.gh-issue-94028.UofEcX.rst b/Misc/NEWS.d/next/Library/2022-06-20-23-14-43.gh-issue-94028.UofEcX.rst new file mode 100644 index 00000000000000..5775b2276d70b4 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-20-23-14-43.gh-issue-94028.UofEcX.rst @@ -0,0 +1,3 @@ +Fix a regression in the :mod:`sqlite3` where statement objects were not +properly cleared and reset after use in cursor iters. The regression was +introduced by PR 27884 in Python 3.11a1. Patch by Erlend E. Aasland. diff --git a/Misc/NEWS.d/next/Library/2022-06-21-11-40-31.gh-issue-84753.FW1pxO.rst b/Misc/NEWS.d/next/Library/2022-06-21-11-40-31.gh-issue-84753.FW1pxO.rst new file mode 100644 index 00000000000000..eeae2edf7161aa --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-21-11-40-31.gh-issue-84753.FW1pxO.rst @@ -0,0 +1,7 @@ +:func:`inspect.iscoroutinefunction`, :func:`inspect.isgeneratorfunction`, +and :func:`inspect.isasyncgenfunction` now properly return ``True`` for +duck-typed function-like objects like instances of +:class:`unittest.mock.AsyncMock`. + +This makes :func:`inspect.iscoroutinefunction` consistent with the +behavior of :func:`asyncio.iscoroutinefunction`. Patch by Mehdi ABAAKOUK. diff --git a/Misc/NEWS.d/next/Library/2022-06-22-11-16-11.gh-issue-94101.V9vDG8.rst b/Misc/NEWS.d/next/Library/2022-06-22-11-16-11.gh-issue-94101.V9vDG8.rst new file mode 100644 index 00000000000000..bcef0ca07470a6 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-22-11-16-11.gh-issue-94101.V9vDG8.rst @@ -0,0 +1,3 @@ +Manual instantiation of :class:`ssl.SSLSession` objects is no longer allowed +as it lead to misconfigured instances that crashed the interpreter when +attributes where accessed on them. diff --git a/Misc/NEWS.d/next/Library/2022-06-23-13-12-05.gh-issue-91742.sNytVX.rst b/Misc/NEWS.d/next/Library/2022-06-23-13-12-05.gh-issue-91742.sNytVX.rst new file mode 100644 index 00000000000000..30c92363b10b36 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-23-13-12-05.gh-issue-91742.sNytVX.rst @@ -0,0 +1 @@ +Fix :mod:`pdb` crash after jump caused by a null pointer dereference. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Library/2022-06-23-14-35-10.gh-issue-94169.jeba90.rst b/Misc/NEWS.d/next/Library/2022-06-23-14-35-10.gh-issue-94169.jeba90.rst new file mode 100644 index 00000000000000..40c1fc10bc0e46 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-23-14-35-10.gh-issue-94169.jeba90.rst @@ -0,0 +1,4 @@ +Remove ``io.OpenWrapper`` and ``_pyio.OpenWrapper``, deprecated in Python +3.10: just use :func:`open` instead. The :func:`open` (:func:`io.open`) +function is a built-in function. Since Python 3.10, :func:`_pyio.open` is +also a static method. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Library/2022-06-24-09-41-41.gh-issue-94196.r2KyfS.rst b/Misc/NEWS.d/next/Library/2022-06-24-09-41-41.gh-issue-94196.r2KyfS.rst new file mode 100644 index 00000000000000..e22776f1b45e6f --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-24-09-41-41.gh-issue-94196.r2KyfS.rst @@ -0,0 +1,4 @@ +:mod:`gzip`: Remove the ``filename`` attribute of :class:`gzip.GzipFile`, +deprecated since Python 2.6, use the :attr:`~gzip.GzipFile.name` attribute +instead. In write mode, the ``filename`` attribute added ``'.gz'`` file +extension if it was not present. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Library/2022-06-24-10-18-59.gh-issue-94199.kYOo8g.rst b/Misc/NEWS.d/next/Library/2022-06-24-10-18-59.gh-issue-94199.kYOo8g.rst new file mode 100644 index 00000000000000..f3a9a35e8fcaa5 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-24-10-18-59.gh-issue-94199.kYOo8g.rst @@ -0,0 +1,5 @@ +:mod:`hashlib`: Remove the pure Python implementation of +:func:`hashlib.pbkdf2_hmac()`, deprecated in Python 3.10. Python 3.10 and +newer requires OpenSSL 1.1.1 (:pep:`644`): this OpenSSL version provides +a C implementation of :func:`~hashlib.pbkdf2_hmac()` which is faster. Patch +by Victor Stinner. diff --git a/Misc/NEWS.d/next/Library/2022-06-24-10-29-19.gh-issue-94199.pfehmz.rst b/Misc/NEWS.d/next/Library/2022-06-24-10-29-19.gh-issue-94199.pfehmz.rst new file mode 100644 index 00000000000000..ed325c0f6886f5 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-24-10-29-19.gh-issue-94199.pfehmz.rst @@ -0,0 +1,3 @@ +Remove the :func:`ssl.RAND_pseudo_bytes` function, deprecated in Python 3.6: +use :func:`os.urandom` or :func:`ssl.RAND_bytes` instead. Patch by Victor +Stinner. diff --git a/Misc/NEWS.d/next/Library/2022-06-24-10-39-56.gh-issue-94199.MIuckY.rst b/Misc/NEWS.d/next/Library/2022-06-24-10-39-56.gh-issue-94199.MIuckY.rst new file mode 100644 index 00000000000000..e1fb163d55d599 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-24-10-39-56.gh-issue-94199.MIuckY.rst @@ -0,0 +1,7 @@ +Remove the :func:`ssl.wrap_socket` function, deprecated in Python 3.7: instead, +create a :class:`ssl.SSLContext` object and call its +:class:`ssl.SSLContext.wrap_socket` method. Any package that still uses +:func:`ssl.wrap_socket` is broken and insecure. The function neither sends a +SNI TLS extension nor validates server hostname. Code is subject to `CWE-295 +<https://cwe.mitre.org/data/definitions/295.html>`_: Improper Certificate +Validation. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Library/2022-06-24-14-25-26.gh-issue-94214.03pXR5.rst b/Misc/NEWS.d/next/Library/2022-06-24-14-25-26.gh-issue-94214.03pXR5.rst new file mode 100644 index 00000000000000..7dccc0abd4af8e --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-24-14-25-26.gh-issue-94214.03pXR5.rst @@ -0,0 +1 @@ +Document the ``context`` object used in the ``venv.EnvBuilder`` class, and add the new environment's library path to it. diff --git a/Misc/NEWS.d/next/Library/2022-06-24-17-11-33.gh-issue-94199.7releN.rst b/Misc/NEWS.d/next/Library/2022-06-24-17-11-33.gh-issue-94199.7releN.rst new file mode 100644 index 00000000000000..68bd283b990741 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-24-17-11-33.gh-issue-94199.7releN.rst @@ -0,0 +1,4 @@ +Remove the :func:`ssl.match_hostname` function. The +:func:`ssl.match_hostname` was deprecated in Python 3.7. OpenSSL performs +hostname matching since Python 3.7, Python no longer uses the +:func:`ssl.match_hostname` function. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Library/2022-06-24-18-20-42.gh-issue-94226.8ZL4Fm.rst b/Misc/NEWS.d/next/Library/2022-06-24-18-20-42.gh-issue-94226.8ZL4Fm.rst new file mode 100644 index 00000000000000..099f945c23f2e4 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-24-18-20-42.gh-issue-94226.8ZL4Fm.rst @@ -0,0 +1,2 @@ +Remove the :func:`locale.format` function, deprecated in Python 3.7: use +:func:`locale.format_string` instead. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Library/2022-06-24-19-16-09.gh-issue-93096.r1_oIc.rst b/Misc/NEWS.d/next/Library/2022-06-24-19-16-09.gh-issue-93096.r1_oIc.rst new file mode 100644 index 00000000000000..536a9d7cab1b81 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-24-19-16-09.gh-issue-93096.r1_oIc.rst @@ -0,0 +1,3 @@ +Removed undocumented ``-t`` argument of ``python -m base64``. Use +``python -m unittest test.test_base64.LegacyBase64TestCase.test_encodebytes`` +instead. diff --git a/Misc/NEWS.d/next/Library/2022-06-24-19-23-59.gh-issue-94207.VhS1eS.rst b/Misc/NEWS.d/next/Library/2022-06-24-19-23-59.gh-issue-94207.VhS1eS.rst new file mode 100644 index 00000000000000..3d38524ac0e83c --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-24-19-23-59.gh-issue-94207.VhS1eS.rst @@ -0,0 +1,2 @@ +Made :class:`_struct.Struct` GC-tracked in order to fix a reference leak in +the :mod:`_struct` module. diff --git a/Misc/NEWS.d/next/Library/2022-06-24-19-40-40.gh-issue-93096.3RlK2d.rst b/Misc/NEWS.d/next/Library/2022-06-24-19-40-40.gh-issue-93096.3RlK2d.rst new file mode 100644 index 00000000000000..f7d9e33eb414db --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-24-19-40-40.gh-issue-93096.3RlK2d.rst @@ -0,0 +1,2 @@ +Removed undocumented ``python -m codecs``. Use ``python -m unittest +test.test_codecs.EncodedFileTest`` instead. diff --git a/Misc/NEWS.d/next/Library/2022-06-24-20-00-57.gh-issue-94216.hxnQPu.rst b/Misc/NEWS.d/next/Library/2022-06-24-20-00-57.gh-issue-94216.hxnQPu.rst new file mode 100644 index 00000000000000..ae3c2e7e71f355 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-24-20-00-57.gh-issue-94216.hxnQPu.rst @@ -0,0 +1 @@ +The :mod:`dis` module now has the opcodes for pseudo instructions (those which are used by the compiler during code generation but then removed or replaced by real opcodes before the final bytecode is emitted). diff --git a/Misc/NEWS.d/next/Library/2022-06-25-13-38-53.gh-issue-93259.FAGw-2.rst b/Misc/NEWS.d/next/Library/2022-06-25-13-38-53.gh-issue-93259.FAGw-2.rst new file mode 100644 index 00000000000000..d346b65836b7a3 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-25-13-38-53.gh-issue-93259.FAGw-2.rst @@ -0,0 +1,2 @@ +Now raise ``ValueError`` when ``None`` or an empty string are passed to +``Distribution.from_name`` (and other callers). diff --git a/Misc/NEWS.d/next/Library/2022-06-25-16-27-02.gh-issue-94254.beP16v.rst b/Misc/NEWS.d/next/Library/2022-06-25-16-27-02.gh-issue-94254.beP16v.rst new file mode 100644 index 00000000000000..81482bcd4f8974 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-25-16-27-02.gh-issue-94254.beP16v.rst @@ -0,0 +1 @@ +Fixed types of :mod:`struct` module to be immutable. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Library/2022-06-25-23-44-44.gh-issue-90016.EB409s.rst b/Misc/NEWS.d/next/Library/2022-06-25-23-44-44.gh-issue-90016.EB409s.rst new file mode 100644 index 00000000000000..040ba44be2b912 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-25-23-44-44.gh-issue-90016.EB409s.rst @@ -0,0 +1,2 @@ +Deprecate :mod:`sqlite3` :ref:`default adapters and converters +<sqlite3-default-converters>`. Patch by Erlend E. Aasland. diff --git a/Misc/NEWS.d/next/Library/2022-06-26-10-59-15.gh-issue-89988.K8rnmt.rst b/Misc/NEWS.d/next/Library/2022-06-26-10-59-15.gh-issue-89988.K8rnmt.rst new file mode 100644 index 00000000000000..811a8d6031e0b5 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-26-10-59-15.gh-issue-89988.K8rnmt.rst @@ -0,0 +1 @@ +Fix memory leak in :class:`pickle.Pickler` when looking up :attr:`dispatch_table`. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Library/2022-06-27-10-33-18.gh-issue-94318.jR4_QV.rst b/Misc/NEWS.d/next/Library/2022-06-27-10-33-18.gh-issue-94318.jR4_QV.rst new file mode 100644 index 00000000000000..97a7cd8c9e7a50 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-27-10-33-18.gh-issue-94318.jR4_QV.rst @@ -0,0 +1 @@ +Strip trailing spaces in :mod:`pydoc` text output. diff --git a/Misc/NEWS.d/next/Library/2022-06-28-00-24-48.gh-issue-94352.JY1Ayt.rst b/Misc/NEWS.d/next/Library/2022-06-28-00-24-48.gh-issue-94352.JY1Ayt.rst new file mode 100644 index 00000000000000..3a166abdcc3203 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-28-00-24-48.gh-issue-94352.JY1Ayt.rst @@ -0,0 +1,3 @@ +:func:`shlex.split`: Passing ``None`` for *s* argument now raises an exception, +rather than reading :data:`sys.stdin`. The feature was deprecated in Python +3.9. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Library/2022-06-28-14-29-21.gh-issue-94379.RrgKfh.rst b/Misc/NEWS.d/next/Library/2022-06-28-14-29-21.gh-issue-94379.RrgKfh.rst new file mode 100644 index 00000000000000..24eafa1048ab4b --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-28-14-29-21.gh-issue-94379.RrgKfh.rst @@ -0,0 +1,3 @@ +:mod:`zipimport`: Remove ``find_loader()`` and ``find_module()`` methods, +deprecated in Python 3.10: use the ``find_spec()`` method instead. See +:pep:`451` for the rationale. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Library/2022-06-28-14-41-22.gh-issue-94383.CXnquo.rst b/Misc/NEWS.d/next/Library/2022-06-28-14-41-22.gh-issue-94383.CXnquo.rst new file mode 100644 index 00000000000000..9ed476b717f334 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-28-14-41-22.gh-issue-94383.CXnquo.rst @@ -0,0 +1,5 @@ +:mod:`xml.etree`: Remove the ``ElementTree.Element.copy()`` method of the +pure Python implementation, deprecated in Python 3.10, use the +:func:`copy.copy` function instead. The C implementation of :mod:`xml.etree` +has no ``copy()`` method, only a ``__copy__()`` method. Patch by Victor +Stinner. diff --git a/Misc/NEWS.d/next/Library/2022-06-29-04-42-56.gh-issue-94398.YOq_bJ.rst b/Misc/NEWS.d/next/Library/2022-06-29-04-42-56.gh-issue-94398.YOq_bJ.rst new file mode 100644 index 00000000000000..c6e7e967d106e1 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-29-04-42-56.gh-issue-94398.YOq_bJ.rst @@ -0,0 +1 @@ +Once a :class:`asyncio.TaskGroup` has started shutting down (i.e., at least one task has failed and the task group has started cancelling the remaining tasks), it should not be possible to add new tasks to the task group. diff --git a/Misc/NEWS.d/next/Library/2022-06-29-09-48-37.gh-issue-92336.otA6c6.rst b/Misc/NEWS.d/next/Library/2022-06-29-09-48-37.gh-issue-92336.otA6c6.rst new file mode 100644 index 00000000000000..eb74e0ceb74466 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-29-09-48-37.gh-issue-92336.otA6c6.rst @@ -0,0 +1 @@ +Fix bug where :meth:`linecache.getline` fails on bad files with :exc:`UnicodeDecodeError` or :exc:`SyntaxError`. It now returns an empty string as per the documentation. diff --git a/Misc/NEWS.d/next/Library/2022-07-02-19-46-30.gh-issue-94510.xOatDC.rst b/Misc/NEWS.d/next/Library/2022-07-02-19-46-30.gh-issue-94510.xOatDC.rst new file mode 100644 index 00000000000000..55856d5756559f --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-02-19-46-30.gh-issue-94510.xOatDC.rst @@ -0,0 +1,2 @@ +Re-entrant calls to :func:`sys.setprofile` and :func:`sys.settrace` now +raise :exc:`RuntimeError`. Patch by Pablo Galindo. diff --git a/Misc/NEWS.d/next/Library/2022-07-03-16-41-03.gh-issue-94382.zuVZeM.rst b/Misc/NEWS.d/next/Library/2022-07-03-16-41-03.gh-issue-94382.zuVZeM.rst new file mode 100644 index 00000000000000..d79300778f762c --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-03-16-41-03.gh-issue-94382.zuVZeM.rst @@ -0,0 +1 @@ +Port static types of ``_multiprocessing`` module to heap types. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Library/2022-07-05-17-22-00.gh-issue-94343.kf4H5r.rst b/Misc/NEWS.d/next/Library/2022-07-05-17-22-00.gh-issue-94343.kf4H5r.rst new file mode 100644 index 00000000000000..f666c2b0ec125e --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-05-17-22-00.gh-issue-94343.kf4H5r.rst @@ -0,0 +1 @@ +Allow setting the attributes of ``reprlib.Repr`` during object initialization diff --git a/Misc/NEWS.d/next/Library/2022-07-06-06-02-02.gh-issue-93896.vIgWGr.rst b/Misc/NEWS.d/next/Library/2022-07-06-06-02-02.gh-issue-93896.vIgWGr.rst new file mode 100644 index 00000000000000..2283e14de9a9ad --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-06-06-02-02.gh-issue-93896.vIgWGr.rst @@ -0,0 +1 @@ +Fix :func:`asyncio.run` and :class:`unittest.IsolatedAsyncioTestCase` to always the set event loop as it was done in Python 3.10 and earlier. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Library/2022-07-06-14-45-12.gh-issue-93910.iZcp67.rst b/Misc/NEWS.d/next/Library/2022-07-06-14-45-12.gh-issue-93910.iZcp67.rst new file mode 100644 index 00000000000000..2e589118e3efd3 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-06-14-45-12.gh-issue-93910.iZcp67.rst @@ -0,0 +1,3 @@ +The ability to access the other values of an enum on an enum (e.g. +``Color.RED.BLUE``) has been restored in order to fix a performance +regression. diff --git a/Misc/NEWS.d/next/Library/2022-07-06-14-57-33.gh-issue-94619.PRqKVX.rst b/Misc/NEWS.d/next/Library/2022-07-06-14-57-33.gh-issue-94619.PRqKVX.rst new file mode 100644 index 00000000000000..a7905034424684 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-06-14-57-33.gh-issue-94619.PRqKVX.rst @@ -0,0 +1 @@ +Remove the long-deprecated `module_repr()` from `importlib`. diff --git a/Misc/NEWS.d/next/Library/2022-07-06-16-01-08.gh-issue-94607.Q6RYfz.rst b/Misc/NEWS.d/next/Library/2022-07-06-16-01-08.gh-issue-94607.Q6RYfz.rst new file mode 100644 index 00000000000000..3bbb9172f26195 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-06-16-01-08.gh-issue-94607.Q6RYfz.rst @@ -0,0 +1,2 @@ +Fix subclassing complex generics with type variables in :mod:`typing`. Previously an error message saying ``Some type variables ... are not listed in Generic[...]`` was shown. +:mod:`typing` no longer populates ``__parameters__`` with the ``__parameters__`` of a Python class. diff --git a/Misc/NEWS.d/next/Library/2022-07-06-21-24-03.gh-issue-92546.s5Upkh.rst b/Misc/NEWS.d/next/Library/2022-07-06-21-24-03.gh-issue-92546.s5Upkh.rst new file mode 100644 index 00000000000000..0ea676ef5b0d8d --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-06-21-24-03.gh-issue-92546.s5Upkh.rst @@ -0,0 +1,2 @@ +An undocumented ``python -m pprint`` benchmark is moved into ``pprint`` +suite of pyperformance. Patch by Oleg Iarygin. diff --git a/Misc/NEWS.d/next/Library/2022-07-06-22-41-51.gh-issue-94309._XswsX.rst b/Misc/NEWS.d/next/Library/2022-07-06-22-41-51.gh-issue-94309._XswsX.rst new file mode 100644 index 00000000000000..b1d45586e9c496 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-06-22-41-51.gh-issue-94309._XswsX.rst @@ -0,0 +1 @@ +Deprecate aliases :class:`typing.Hashable` and :class:`typing.Sized` diff --git a/Misc/NEWS.d/next/Library/2022-07-07-15-46-55.gh-issue-94637.IYEiUM.rst b/Misc/NEWS.d/next/Library/2022-07-07-15-46-55.gh-issue-94637.IYEiUM.rst new file mode 100644 index 00000000000000..20cbbcd5088b78 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-07-15-46-55.gh-issue-94637.IYEiUM.rst @@ -0,0 +1,3 @@ +:meth:`SSLContext.set_default_verify_paths` now releases the GIL around +``SSL_CTX_set_default_verify_paths`` call. The function call performs I/O +and CPU intensive work. diff --git a/Misc/NEWS.d/next/Library/2022-07-08-17-49-12.gh-issue-87822.F9dzkf.rst b/Misc/NEWS.d/next/Library/2022-07-08-17-49-12.gh-issue-87822.F9dzkf.rst new file mode 100644 index 00000000000000..7b27f5df45ba20 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-08-17-49-12.gh-issue-87822.F9dzkf.rst @@ -0,0 +1 @@ +When called with ``capture_locals=True``, the :mod:`traceback` module functions swallow exceptions raised from calls to ``repr()`` on local variables of frames. This is in order to prioritize the original exception over rendering errors. An indication of the failure is printed in place of the missing value. (Patch by Simon-Martin Schroeder). diff --git a/Misc/NEWS.d/next/Library/2022-07-09-08-55-04.gh-issue-74116.0XwYC1.rst b/Misc/NEWS.d/next/Library/2022-07-09-08-55-04.gh-issue-74116.0XwYC1.rst new file mode 100644 index 00000000000000..33782598745b78 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-09-08-55-04.gh-issue-74116.0XwYC1.rst @@ -0,0 +1 @@ +Allow :meth:`asyncio.StreamWriter.drain` to be awaited concurrently by multiple tasks. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Library/2022-07-09-15-17-02.gh-issue-81620.L0O_bV.rst b/Misc/NEWS.d/next/Library/2022-07-09-15-17-02.gh-issue-81620.L0O_bV.rst new file mode 100644 index 00000000000000..b4ccea4924ff67 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-09-15-17-02.gh-issue-81620.L0O_bV.rst @@ -0,0 +1 @@ +Add random.binomialvariate(). diff --git a/Misc/NEWS.d/next/Library/2022-07-11-10-41-48.gh-issue-94736.EbsgeK.rst b/Misc/NEWS.d/next/Library/2022-07-11-10-41-48.gh-issue-94736.EbsgeK.rst new file mode 100644 index 00000000000000..3080672ecdfbb8 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-11-10-41-48.gh-issue-94736.EbsgeK.rst @@ -0,0 +1 @@ +Fix crash when deallocating an instance of a subclass of ``_multiprocessing.SemLock``. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Library/2022-07-14-00-43-52.gh-issue-94821.e17ghU.rst b/Misc/NEWS.d/next/Library/2022-07-14-00-43-52.gh-issue-94821.e17ghU.rst new file mode 100644 index 00000000000000..bf7885aef8cbf9 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-14-00-43-52.gh-issue-94821.e17ghU.rst @@ -0,0 +1,2 @@ +Fix binding of unix socket to empty address on Linux to use an available +address from the abstract namespace, instead of "\0". diff --git a/Misc/NEWS.d/next/Library/2022-07-15-08-13-51.gh-issue-94857.9_KvZJ.rst b/Misc/NEWS.d/next/Library/2022-07-15-08-13-51.gh-issue-94857.9_KvZJ.rst new file mode 100644 index 00000000000000..e684415595d1d2 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-15-08-13-51.gh-issue-94857.9_KvZJ.rst @@ -0,0 +1 @@ +Fix refleak in ``_io.TextIOWrapper.reconfigure``. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Library/2022-07-19-15-37-11.gh-issue-95005.iRmZ74.rst b/Misc/NEWS.d/next/Library/2022-07-19-15-37-11.gh-issue-95005.iRmZ74.rst new file mode 100644 index 00000000000000..787f3146ab7770 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-19-15-37-11.gh-issue-95005.iRmZ74.rst @@ -0,0 +1,2 @@ +Replace :c:expr:`_PyAccu` with :c:expr:`_PyUnicodeWriter` in JSON encoder +and StringIO and remove the :c:expr:`_PyAccu` implementation. diff --git a/Misc/NEWS.d/next/Library/2022-07-20-00-23-58.gh-issue-77617.XGaqSQ.rst b/Misc/NEWS.d/next/Library/2022-07-20-00-23-58.gh-issue-77617.XGaqSQ.rst new file mode 100644 index 00000000000000..1cbaa7dfe15ec2 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-20-00-23-58.gh-issue-77617.XGaqSQ.rst @@ -0,0 +1,2 @@ +Add :mod:`sqlite3` :ref:`command-line interface <sqlite3-cli>`. +Patch by Erlend Aasland. diff --git a/Misc/NEWS.d/next/Library/2022-07-20-22-49-48.gh-issue-95066.TuCu0E.rst b/Misc/NEWS.d/next/Library/2022-07-20-22-49-48.gh-issue-95066.TuCu0E.rst new file mode 100644 index 00000000000000..05ae4a6a2761af --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-20-22-49-48.gh-issue-95066.TuCu0E.rst @@ -0,0 +1 @@ +Replaced assert with exception in :func:`ast.parse`, when ``feature_version`` has an invalid major version. Patch by Shantanu Jain. diff --git a/Misc/NEWS.d/next/Library/2022-07-21-19-55-49.gh-issue-95105.BIX2Km.rst b/Misc/NEWS.d/next/Library/2022-07-21-19-55-49.gh-issue-95105.BIX2Km.rst new file mode 100644 index 00000000000000..58af62b1edc871 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-21-19-55-49.gh-issue-95105.BIX2Km.rst @@ -0,0 +1 @@ +:meth:`wsgiref.types.InputStream.__iter__` should return ``Iterator[bytes]``, not ``Iterable[bytes]``. Patch by Shantanu Jain. diff --git a/Misc/NEWS.d/next/Library/2022-07-21-22-59-22.gh-issue-95109.usxA9r.rst b/Misc/NEWS.d/next/Library/2022-07-21-22-59-22.gh-issue-95109.usxA9r.rst new file mode 100644 index 00000000000000..40196dd214a283 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-21-22-59-22.gh-issue-95109.usxA9r.rst @@ -0,0 +1 @@ +Ensure that timeouts scheduled with :class:`asyncio.Timeout` that have already expired are delivered promptly. diff --git a/Misc/NEWS.d/next/Library/2022-07-22-00-58-49.gh-issue-95077.4Z6CNC.rst b/Misc/NEWS.d/next/Library/2022-07-22-00-58-49.gh-issue-95077.4Z6CNC.rst new file mode 100644 index 00000000000000..09f350067cd31b --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-22-00-58-49.gh-issue-95077.4Z6CNC.rst @@ -0,0 +1 @@ +Add deprecation warning for enum ``member.member`` access (e.g. ``Color.RED.BLUE``). diff --git a/Misc/NEWS.d/next/Library/2022-07-22-17-19-57.gh-issue-93157.RXByAk.rst b/Misc/NEWS.d/next/Library/2022-07-22-17-19-57.gh-issue-93157.RXByAk.rst new file mode 100644 index 00000000000000..054b318ec63f0c --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-22-17-19-57.gh-issue-93157.RXByAk.rst @@ -0,0 +1,2 @@ +Fix :mod:`fileinput` module didn't support ``errors`` option when +``inplace`` is true. diff --git a/Misc/NEWS.d/next/Library/2022-07-22-21-18-17.gh-issue-95132.n9anlw.rst b/Misc/NEWS.d/next/Library/2022-07-22-21-18-17.gh-issue-95132.n9anlw.rst new file mode 100644 index 00000000000000..64666ad84fb4a6 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-22-21-18-17.gh-issue-95132.n9anlw.rst @@ -0,0 +1,4 @@ +Fix a :mod:`sqlite3` regression where ``*args`` and ``**kwds`` were +incorrectly relayed from :py:func:`~sqlite3.connect` to the +:class:`~sqlite3.Connection` factory. The regression was introduced in 3.11a1 +with PR 24421 (:gh:`85128`). Patch by Erlend E. Aasland.` diff --git a/Misc/NEWS.d/next/Library/2022-07-23-10-42-05.gh-issue-95166.xw6p3C.rst b/Misc/NEWS.d/next/Library/2022-07-23-10-42-05.gh-issue-95166.xw6p3C.rst new file mode 100644 index 00000000000000..34b017078436d2 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-23-10-42-05.gh-issue-95166.xw6p3C.rst @@ -0,0 +1 @@ +Fix :meth:`concurrent.futures.Executor.map` to cancel the currently waiting on future on an error - e.g. TimeoutError or KeyboardInterrupt. diff --git a/Misc/NEWS.d/next/Library/2022-07-23-10-50-05.gh-issue-93899.VT34A5.rst b/Misc/NEWS.d/next/Library/2022-07-23-10-50-05.gh-issue-93899.VT34A5.rst new file mode 100644 index 00000000000000..e63475f8ba96f6 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-23-10-50-05.gh-issue-93899.VT34A5.rst @@ -0,0 +1 @@ +Fix check for existence of :data:`os.EFD_CLOEXEC`, :data:`os.EFD_NONBLOCK` and :data:`os.EFD_SEMAPHORE` flags on older kernel versions where these flags are not present. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Library/2022-07-24-09-15-35.gh-issue-95194.ERVmqG.rst b/Misc/NEWS.d/next/Library/2022-07-24-09-15-35.gh-issue-95194.ERVmqG.rst new file mode 100644 index 00000000000000..c69651923b410e --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-24-09-15-35.gh-issue-95194.ERVmqG.rst @@ -0,0 +1 @@ +Upgrade bundled pip to 22.2. diff --git a/Misc/NEWS.d/next/Library/2022-07-24-12-00-06.gh-issue-95199.-5A64k.rst b/Misc/NEWS.d/next/Library/2022-07-24-12-00-06.gh-issue-95199.-5A64k.rst new file mode 100644 index 00000000000000..f3d9cf3306b8d0 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-24-12-00-06.gh-issue-95199.-5A64k.rst @@ -0,0 +1 @@ +Upgrade bundled setuptools to 63.2.0. diff --git a/Misc/NEWS.d/next/Library/2022-07-24-12-59-02.gh-issue-95087.VvqXkN.rst b/Misc/NEWS.d/next/Library/2022-07-24-12-59-02.gh-issue-95087.VvqXkN.rst new file mode 100644 index 00000000000000..48a5c1af74907a --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-24-12-59-02.gh-issue-95087.VvqXkN.rst @@ -0,0 +1 @@ +Fix IndexError in parsing invalid date in the :mod:`email` module. diff --git a/Misc/NEWS.d/next/Library/2022-07-24-18-00-42.gh-issue-95097.lu5qNf.rst b/Misc/NEWS.d/next/Library/2022-07-24-18-00-42.gh-issue-95097.lu5qNf.rst new file mode 100644 index 00000000000000..2840f057a9c1dc --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-24-18-00-42.gh-issue-95097.lu5qNf.rst @@ -0,0 +1 @@ +Fix :func:`asyncio.run` for :class:`asyncio.Task` implementations without :meth:`~asyncio.Task.uncancel` method. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Library/2022-07-25-15-45-06.gh-issue-95231.i807-g.rst b/Misc/NEWS.d/next/Library/2022-07-25-15-45-06.gh-issue-95231.i807-g.rst new file mode 100644 index 00000000000000..aa53f2938bc930 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-25-15-45-06.gh-issue-95231.i807-g.rst @@ -0,0 +1,3 @@ +Fail gracefully if :data:`~errno.EPERM` or :data:`~errno.ENOSYS` is raised when loading +:mod:`crypt` methods. This may happen when trying to load ``MD5`` on a Linux kernel +with :abbr:`FIPS (Federal Information Processing Standard)` enabled. diff --git a/Misc/NEWS.d/next/Library/2022-07-27-11-35-45.gh-issue-95045.iysT-Q.rst b/Misc/NEWS.d/next/Library/2022-07-27-11-35-45.gh-issue-95045.iysT-Q.rst new file mode 100644 index 00000000000000..d4ab325e036583 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-27-11-35-45.gh-issue-95045.iysT-Q.rst @@ -0,0 +1 @@ +Fix GC crash when deallocating ``_lsprof.Profiler`` by untracking it before calling any callbacks. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Library/2022-07-27-19-43-07.gh-issue-95339.NuVQ68.rst b/Misc/NEWS.d/next/Library/2022-07-27-19-43-07.gh-issue-95339.NuVQ68.rst new file mode 100644 index 00000000000000..6674a4a2695398 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-27-19-43-07.gh-issue-95339.NuVQ68.rst @@ -0,0 +1 @@ +Update bundled pip to 22.2.1. diff --git a/Misc/NEWS.d/next/Library/2022-07-28-17-14-38.gh-issue-95385.6YlsDI.rst b/Misc/NEWS.d/next/Library/2022-07-28-17-14-38.gh-issue-95385.6YlsDI.rst new file mode 100644 index 00000000000000..89fa9c2b27664d --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-28-17-14-38.gh-issue-95385.6YlsDI.rst @@ -0,0 +1 @@ +Faster ``json.dumps()`` when sorting of keys is not requested (default). diff --git a/Misc/NEWS.d/next/Library/2022-07-29-20-58-37.gh-issue-94909.YjMusj.rst b/Misc/NEWS.d/next/Library/2022-07-29-20-58-37.gh-issue-94909.YjMusj.rst new file mode 100644 index 00000000000000..b6d853888101c2 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-29-20-58-37.gh-issue-94909.YjMusj.rst @@ -0,0 +1,2 @@ +Fix incorrect joining of relative Windows paths with drives in +:class:`pathlib.PurePath` initializer. diff --git a/Misc/NEWS.d/next/Library/2022-08-03-16-52-32.gh-issue-95289.FMnHlV.rst b/Misc/NEWS.d/next/Library/2022-08-03-16-52-32.gh-issue-95289.FMnHlV.rst new file mode 100644 index 00000000000000..d802f557217b48 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-08-03-16-52-32.gh-issue-95289.FMnHlV.rst @@ -0,0 +1 @@ +Fix :class:`asyncio.TaskGroup` to propagate exception when :exc:`asyncio.CancelledError` was replaced with another exception by a context manger. Patch by Kumar Aditya and Guido van Rossum. diff --git a/Misc/NEWS.d/next/Library/2022-08-03-21-01-17.gh-issue-95609.xxyjyX.rst b/Misc/NEWS.d/next/Library/2022-08-03-21-01-17.gh-issue-95609.xxyjyX.rst new file mode 100644 index 00000000000000..81c02ae900f7a5 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-08-03-21-01-17.gh-issue-95609.xxyjyX.rst @@ -0,0 +1 @@ +Update bundled pip to 22.2.2. diff --git a/Misc/NEWS.d/next/Library/2022-08-07-14-56-23.gh-issue-95149.U0c6Ib.rst b/Misc/NEWS.d/next/Library/2022-08-07-14-56-23.gh-issue-95149.U0c6Ib.rst new file mode 100644 index 00000000000000..6393444b53fb64 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-08-07-14-56-23.gh-issue-95149.U0c6Ib.rst @@ -0,0 +1,2 @@ +The :class:`HTTPStatus <http.HTTPStatus>` enum offers a couple of properties +to indicate the HTTP status category e.g. ``HTTPStatus.OK.is_success``. diff --git a/Misc/NEWS.d/next/Library/2022-08-08-01-42-11.gh-issue-95704.MOPFfX.rst b/Misc/NEWS.d/next/Library/2022-08-08-01-42-11.gh-issue-95704.MOPFfX.rst new file mode 100644 index 00000000000000..31f9fc6547d90f --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-08-08-01-42-11.gh-issue-95704.MOPFfX.rst @@ -0,0 +1,2 @@ +When a task catches :exc:`asyncio.CancelledError` and raises some other error, +the other error should generally not silently be suppressed. diff --git a/Misc/NEWS.d/next/Library/2022-08-10-11-54-04.gh-issue-95804.i5FCFK.rst b/Misc/NEWS.d/next/Library/2022-08-10-11-54-04.gh-issue-95804.i5FCFK.rst new file mode 100644 index 00000000000000..46434cb466046e --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-08-10-11-54-04.gh-issue-95804.i5FCFK.rst @@ -0,0 +1,2 @@ +Fix ``logging`` shutdown handler so it respects +``MemoryHandler.flushOnClose``. diff --git a/Misc/NEWS.d/next/Library/2022-08-10-17-34-07.gh-issue-95861.qv-T5s.rst b/Misc/NEWS.d/next/Library/2022-08-10-17-34-07.gh-issue-95861.qv-T5s.rst new file mode 100644 index 00000000000000..aae76c74e2fd7d --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-08-10-17-34-07.gh-issue-95861.qv-T5s.rst @@ -0,0 +1,2 @@ +Add support for computing Spearman's correlation coefficient to the existing +statistics.correlation() function. diff --git a/Misc/NEWS.d/next/Library/2022-08-11-03-16-48.gh-issue-95865.0IOkFP.rst b/Misc/NEWS.d/next/Library/2022-08-11-03-16-48.gh-issue-95865.0IOkFP.rst new file mode 100644 index 00000000000000..aa7c73ff1a35ab --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-08-11-03-16-48.gh-issue-95865.0IOkFP.rst @@ -0,0 +1 @@ +Speed up :func:`urllib.parse.quote_from_bytes` by replacing a list comprehension with ``map()``. diff --git a/Misc/NEWS.d/next/Library/2022-08-11-18-22-29.gh-issue-95736.LzRZXe.rst b/Misc/NEWS.d/next/Library/2022-08-11-18-22-29.gh-issue-95736.LzRZXe.rst new file mode 100644 index 00000000000000..abc270fe35ca65 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-08-11-18-22-29.gh-issue-95736.LzRZXe.rst @@ -0,0 +1 @@ +Fix :class:`unittest.IsolatedAsyncioTestCase` to set event loop before calling setup functions. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Library/2022-08-11-18-52-17.gh-issue-95899._Bi4uG.rst b/Misc/NEWS.d/next/Library/2022-08-11-18-52-17.gh-issue-95899._Bi4uG.rst new file mode 100644 index 00000000000000..d2386cf3ae2296 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-08-11-18-52-17.gh-issue-95899._Bi4uG.rst @@ -0,0 +1 @@ +Fix :class:`asyncio.Runner` to call :func:`asyncio.set_event_loop` only once to avoid calling :meth:`~asyncio.AbstractChildWatcher.attach_loop` multiple times on child watchers. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Library/2022-08-14-18-59-54.gh-issue-69142.6is5Pq.rst b/Misc/NEWS.d/next/Library/2022-08-14-18-59-54.gh-issue-69142.6is5Pq.rst new file mode 100644 index 00000000000000..0db8b3730cf54d --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-08-14-18-59-54.gh-issue-69142.6is5Pq.rst @@ -0,0 +1 @@ +Add ``%:z`` strftime format code (generates tzoffset with colons as separator), see :ref:`strftime-strptime-behavior`. diff --git a/Misc/NEWS.d/next/Library/2022-08-18-14-53-53.gh-issue-95463.GpP05c.rst b/Misc/NEWS.d/next/Library/2022-08-18-14-53-53.gh-issue-95463.GpP05c.rst new file mode 100644 index 00000000000000..553c55436aab08 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-08-18-14-53-53.gh-issue-95463.GpP05c.rst @@ -0,0 +1,2 @@ +Remove an incompatible change from :issue:`28080` that caused a regression +that ignored the utf8 in ``ZipInfo.flag_bits``. Patch by Pablo Galindo. diff --git a/Misc/NEWS.d/next/Library/2022-08-19-10-19-32.gh-issue-96019.b7uAVP.rst b/Misc/NEWS.d/next/Library/2022-08-19-10-19-32.gh-issue-96019.b7uAVP.rst new file mode 100644 index 00000000000000..296963fd817248 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-08-19-10-19-32.gh-issue-96019.b7uAVP.rst @@ -0,0 +1,3 @@ +Fix a bug in the ``makeunicodedata.py`` script leading to about 13 KiB of +space saving in the ``unicodedata`` module, specifically the character +decomposition data. diff --git a/Misc/NEWS.d/next/Library/2022-08-19-18-21-01.gh-issue-96125.ODcF1Y.rst b/Misc/NEWS.d/next/Library/2022-08-19-18-21-01.gh-issue-96125.ODcF1Y.rst new file mode 100644 index 00000000000000..ba7d26a965821f --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-08-19-18-21-01.gh-issue-96125.ODcF1Y.rst @@ -0,0 +1,2 @@ +Fix incorrect condition that causes ``sys.thread_info.name`` to be wrong on +pthread platforms. diff --git a/Misc/NEWS.d/next/Library/2022-08-20-10-31-01.gh-issue-96052.a6FhaD.rst b/Misc/NEWS.d/next/Library/2022-08-20-10-31-01.gh-issue-96052.a6FhaD.rst new file mode 100644 index 00000000000000..c190fb7dbcb9da --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-08-20-10-31-01.gh-issue-96052.a6FhaD.rst @@ -0,0 +1,4 @@ +Fix handling compiler warnings (SyntaxWarning and DeprecationWarning) in +:func:`codeop.compile_command` when checking for incomplete input. +Previously it emitted warnings and raised a SyntaxError. Now it always +returns ``None`` for incomplete input without emitting any warnings. diff --git a/Misc/NEWS.d/next/Library/2022-08-20-12-56-15.gh-issue-96145.8ah3pE.rst b/Misc/NEWS.d/next/Library/2022-08-20-12-56-15.gh-issue-96145.8ah3pE.rst new file mode 100644 index 00000000000000..540ec8b71ebf90 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-08-20-12-56-15.gh-issue-96145.8ah3pE.rst @@ -0,0 +1 @@ +Add AttrDict to JSON module for use with object_hook. diff --git a/Misc/NEWS.d/next/Library/2022-08-22-13-54-20.gh-issue-96175.bH7zGU.rst b/Misc/NEWS.d/next/Library/2022-08-22-13-54-20.gh-issue-96175.bH7zGU.rst new file mode 100644 index 00000000000000..c34eff22b3d456 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-08-22-13-54-20.gh-issue-96175.bH7zGU.rst @@ -0,0 +1 @@ +Fix unused ``localName`` parameter in the ``Attr`` class in :mod:`xml.dom.minidom`. diff --git a/Misc/NEWS.d/next/Library/2022-08-22-18-42-17.gh-issue-96159.3bFU39.rst b/Misc/NEWS.d/next/Library/2022-08-22-18-42-17.gh-issue-96159.3bFU39.rst new file mode 100644 index 00000000000000..f64469e563f340 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-08-22-18-42-17.gh-issue-96159.3bFU39.rst @@ -0,0 +1 @@ +Fix a performance regression in logging TimedRotatingFileHandler. Only check for special files when the rollover time has passed. diff --git a/Misc/NEWS.d/next/Library/2022-08-23-13-30-30.gh-issue-96172.7WTHer.rst b/Misc/NEWS.d/next/Library/2022-08-23-13-30-30.gh-issue-96172.7WTHer.rst new file mode 100644 index 00000000000000..1bb57f17788761 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-08-23-13-30-30.gh-issue-96172.7WTHer.rst @@ -0,0 +1,3 @@ +Fix a bug in ``unicodedata``: ``east_asian_width`` used to return the wrong +value for unassigned characters; and for yet unassigned, but reserved +characters. diff --git a/Misc/NEWS.d/next/Library/2022-08-27-14-38-49.gh-issue-90467.VOOB0p.rst b/Misc/NEWS.d/next/Library/2022-08-27-14-38-49.gh-issue-90467.VOOB0p.rst new file mode 100644 index 00000000000000..282c0e76a8c81c --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-08-27-14-38-49.gh-issue-90467.VOOB0p.rst @@ -0,0 +1,2 @@ +Fix :class:`asyncio.streams.StreamReaderProtocol` to keep a strong reference +to the created task, so that it's not garbage collected diff --git a/Misc/NEWS.d/next/Library/2022-08-27-21-26-52.gh-issue-96349.XyYLlO.rst b/Misc/NEWS.d/next/Library/2022-08-27-21-26-52.gh-issue-96349.XyYLlO.rst new file mode 100644 index 00000000000000..59eb3517191ddd --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-08-27-21-26-52.gh-issue-96349.XyYLlO.rst @@ -0,0 +1 @@ +Fixed a minor performance regression in :func:`threading.Event.__init__` diff --git a/Misc/NEWS.d/next/Library/2022-08-29-07-04-03.gh-issue-89258.ri7ncj.rst b/Misc/NEWS.d/next/Library/2022-08-29-07-04-03.gh-issue-89258.ri7ncj.rst new file mode 100644 index 00000000000000..74300c108c893b --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-08-29-07-04-03.gh-issue-89258.ri7ncj.rst @@ -0,0 +1,2 @@ +Added a :meth:`~logging.Logger.getChildren` method to +:class:`logging.Logger`, to get the immediate child loggers of a logger. diff --git a/Misc/NEWS.d/next/Library/2022-08-29-15-28-39.gh-issue-96385.uLRTsf.rst b/Misc/NEWS.d/next/Library/2022-08-29-15-28-39.gh-issue-96385.uLRTsf.rst new file mode 100644 index 00000000000000..57354826f34926 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-08-29-15-28-39.gh-issue-96385.uLRTsf.rst @@ -0,0 +1,3 @@ +Fix ``TypeVarTuple.__typing_prepare_subst__``. ``TypeError`` was not raised +when using more than one ``TypeVarTuple``, like ``[*T, *V]`` in type alias +substitutions. diff --git a/Misc/NEWS.d/next/Library/2022-08-29-16-54-36.gh-issue-96388.dCpJcu.rst b/Misc/NEWS.d/next/Library/2022-08-29-16-54-36.gh-issue-96388.dCpJcu.rst new file mode 100644 index 00000000000000..3a35c4734871d1 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-08-29-16-54-36.gh-issue-96388.dCpJcu.rst @@ -0,0 +1,2 @@ +Work around missing socket functions in :class:`~socket.socket`'s +``__repr__``. diff --git a/Misc/NEWS.d/next/Library/2022-08-30-11-46-36.gh-issue-95987.CV7_u4.rst b/Misc/NEWS.d/next/Library/2022-08-30-11-46-36.gh-issue-95987.CV7_u4.rst new file mode 100644 index 00000000000000..232bba1b92440b --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-08-30-11-46-36.gh-issue-95987.CV7_u4.rst @@ -0,0 +1 @@ +Fix ``repr`` of ``Any`` subclasses. diff --git a/Misc/NEWS.d/next/Library/2022-08-31-11-10-21.gh-issue-96079.uqrXdJ.rst b/Misc/NEWS.d/next/Library/2022-08-31-11-10-21.gh-issue-96079.uqrXdJ.rst new file mode 100644 index 00000000000000..4cb8d276cbe7f7 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-08-31-11-10-21.gh-issue-96079.uqrXdJ.rst @@ -0,0 +1 @@ +In :mod:`typing`, fix missing field ``name`` and incorrect ``__module__`` in _AnnotatedAlias. diff --git a/Misc/NEWS.d/next/Library/2022-09-01-13-54-38.gh-issue-96465.0IJmrH.rst b/Misc/NEWS.d/next/Library/2022-09-01-13-54-38.gh-issue-96465.0IJmrH.rst new file mode 100644 index 00000000000000..c78d7538ef943e --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-09-01-13-54-38.gh-issue-96465.0IJmrH.rst @@ -0,0 +1 @@ +Fraction hashes are now cached. diff --git a/Misc/NEWS.d/next/Library/2022-09-03-18-39-05.gh-issue-96538.W156-D.rst b/Misc/NEWS.d/next/Library/2022-09-03-18-39-05.gh-issue-96538.W156-D.rst new file mode 100644 index 00000000000000..22e5b4fc259964 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-09-03-18-39-05.gh-issue-96538.W156-D.rst @@ -0,0 +1 @@ +Speed up ``bisect.bisect()`` functions by taking advantage of type-stability. diff --git a/Misc/NEWS.d/next/Library/2022-09-04-12-32-52.gh-issue-68163.h6TJCc.rst b/Misc/NEWS.d/next/Library/2022-09-04-12-32-52.gh-issue-68163.h6TJCc.rst new file mode 100644 index 00000000000000..756f6c9eb9e842 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-09-04-12-32-52.gh-issue-68163.h6TJCc.rst @@ -0,0 +1 @@ +Correct conversion of :class:`numbers.Rational`'s to :class:`float`. diff --git a/Misc/NEWS.d/next/Library/2022-09-07-22-49-37.gh-issue-96652.YqOKxI.rst b/Misc/NEWS.d/next/Library/2022-09-07-22-49-37.gh-issue-96652.YqOKxI.rst new file mode 100644 index 00000000000000..1d04db7b2a2531 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-09-07-22-49-37.gh-issue-96652.YqOKxI.rst @@ -0,0 +1,3 @@ +Fix the faulthandler implementation of ``faulthandler.register(signal, +chain=True)`` if the ``sigaction()`` function is not available: don't call +the previous signal handler if it's NULL. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Library/2022-09-08-20-12-48.gh-issue-46412.r_cfTh.rst b/Misc/NEWS.d/next/Library/2022-09-08-20-12-48.gh-issue-46412.r_cfTh.rst new file mode 100644 index 00000000000000..27fcd0328bd267 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-09-08-20-12-48.gh-issue-46412.r_cfTh.rst @@ -0,0 +1 @@ +Improve performance of ``bool(db)`` for large ndb/gdb databases. Previously this would call ``len(db)`` which would iterate over all keys -- the answer (empty or not) is known after the first key. diff --git a/Misc/NEWS.d/next/Library/2022-09-13-15-12-31.gh-issue-96734.G08vjz.rst b/Misc/NEWS.d/next/Library/2022-09-13-15-12-31.gh-issue-96734.G08vjz.rst new file mode 100644 index 00000000000000..e5c8a25b4bc6ab --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-09-13-15-12-31.gh-issue-96734.G08vjz.rst @@ -0,0 +1 @@ +Update :mod:`unicodedata` database to Unicode 15.0.0. diff --git a/Misc/NEWS.d/next/Library/2022-09-15-00-37-33.gh-issue-96741.4b6czN.rst b/Misc/NEWS.d/next/Library/2022-09-15-00-37-33.gh-issue-96741.4b6czN.rst new file mode 100644 index 00000000000000..e7f53311e589f2 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-09-15-00-37-33.gh-issue-96741.4b6czN.rst @@ -0,0 +1 @@ +Corrected type annotation for dataclass attribute ``pstats.FunctionProfile.ncalls`` to be ``str``. diff --git a/Misc/NEWS.d/next/Security/2022-04-27-18-25-30.gh-issue-68966.gjS8zs.rst b/Misc/NEWS.d/next/Security/2022-04-27-18-25-30.gh-issue-68966.gjS8zs.rst new file mode 100644 index 00000000000000..da81a1f6993dbe --- /dev/null +++ b/Misc/NEWS.d/next/Security/2022-04-27-18-25-30.gh-issue-68966.gjS8zs.rst @@ -0,0 +1,4 @@ +The deprecated mailcap module now refuses to inject unsafe text (filenames, +MIME types, parameters) into shell commands. Instead of using such text, it +will warn and act as if a match was not found (or for test commands, as if +the test failed). diff --git a/Misc/NEWS.d/next/Security/2022-05-19-08-53-07.gh-issue-92888.TLtR9W.rst b/Misc/NEWS.d/next/Security/2022-05-19-08-53-07.gh-issue-92888.TLtR9W.rst new file mode 100644 index 00000000000000..4841b8a90a0879 --- /dev/null +++ b/Misc/NEWS.d/next/Security/2022-05-19-08-53-07.gh-issue-92888.TLtR9W.rst @@ -0,0 +1,2 @@ +Fix ``memoryview`` use after free when accessing the backing buffer in certain cases. + diff --git a/Misc/NEWS.d/next/Security/2022-06-03-12-52-53.gh-issue-79096.YVoxgC.rst b/Misc/NEWS.d/next/Security/2022-06-03-12-52-53.gh-issue-79096.YVoxgC.rst new file mode 100644 index 00000000000000..9ec3335dc71b92 --- /dev/null +++ b/Misc/NEWS.d/next/Security/2022-06-03-12-52-53.gh-issue-79096.YVoxgC.rst @@ -0,0 +1 @@ +LWPCookieJar and MozillaCookieJar create files with file mode 600 instead of 644 (Microsoft Windows is not affected) diff --git a/Misc/NEWS.d/next/Security/2022-06-15-20-09-23.gh-issue-87389.QVaC3f.rst b/Misc/NEWS.d/next/Security/2022-06-15-20-09-23.gh-issue-87389.QVaC3f.rst new file mode 100644 index 00000000000000..029d437190deb5 --- /dev/null +++ b/Misc/NEWS.d/next/Security/2022-06-15-20-09-23.gh-issue-87389.QVaC3f.rst @@ -0,0 +1,3 @@ +:mod:`http.server`: Fix an open redirection vulnerability in the HTTP server +when an URI path starts with ``//``. Vulnerability discovered, and initial +fix proposed, by Hamza Avvan. diff --git a/Misc/NEWS.d/next/Security/2022-08-07-16-53-38.gh-issue-95778.ch010gps.rst b/Misc/NEWS.d/next/Security/2022-08-07-16-53-38.gh-issue-95778.ch010gps.rst new file mode 100644 index 00000000000000..8eb8a34884dced --- /dev/null +++ b/Misc/NEWS.d/next/Security/2022-08-07-16-53-38.gh-issue-95778.ch010gps.rst @@ -0,0 +1,14 @@ +Converting between :class:`int` and :class:`str` in bases other than 2 +(binary), 4, 8 (octal), 16 (hexadecimal), or 32 such as base 10 (decimal) now +raises a :exc:`ValueError` if the number of digits in string form is above a +limit to avoid potential denial of service attacks due to the algorithmic +complexity. This is a mitigation for `CVE-2020-10735 +<https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-10735>`_. + +This new limit can be configured or disabled by environment variable, command +line flag, or :mod:`sys` APIs. See the :ref:`integer string conversion length +limitation <int_max_str_digits>` documentation. The default limit is 4300 +digits in string form. + +Patch by Gregory P. Smith [Google] and Christian Heimes [Red Hat] with feedback +from Victor Stinner, Thomas Wouters, Steve Dower, Ned Deily, and Mark Dickinson. diff --git a/Misc/NEWS.d/next/Tests/2022-03-14-23-28-17.bpo-47016.K-t2QX.rst b/Misc/NEWS.d/next/Tests/2022-03-14-23-28-17.bpo-47016.K-t2QX.rst new file mode 100644 index 00000000000000..774bfafc021efc --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2022-03-14-23-28-17.bpo-47016.K-t2QX.rst @@ -0,0 +1,2 @@ +Create a GitHub Actions workflow for verifying bundled pip and setuptools. +Patch by Illia Volochii and Adam Turner. diff --git a/Misc/NEWS.d/next/Tests/2022-05-25-23-00-35.gh-issue-92886.Y-vrWj.rst b/Misc/NEWS.d/next/Tests/2022-05-25-23-00-35.gh-issue-92886.Y-vrWj.rst new file mode 100644 index 00000000000000..93c1ffe33f28a6 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2022-05-25-23-00-35.gh-issue-92886.Y-vrWj.rst @@ -0,0 +1 @@ +Fixing tests that fail when running with optimizations (``-O``) in ``test_zipimport.py`` diff --git a/Misc/NEWS.d/next/Tests/2022-05-25-23-07-15.gh-issue-92886.Aki63_.rst b/Misc/NEWS.d/next/Tests/2022-05-25-23-07-15.gh-issue-92886.Aki63_.rst new file mode 100644 index 00000000000000..581f6bfea24b6e --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2022-05-25-23-07-15.gh-issue-92886.Aki63_.rst @@ -0,0 +1 @@ +Fixing tests that fail when running with optimizations (``-O``) in ``test_imaplib.py``. diff --git a/Misc/NEWS.d/next/Tests/2022-06-03-12-22-44.gh-issue-89858.ftBvjE.rst b/Misc/NEWS.d/next/Tests/2022-06-03-12-22-44.gh-issue-89858.ftBvjE.rst new file mode 100644 index 00000000000000..ef806a93c018cc --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2022-06-03-12-22-44.gh-issue-89858.ftBvjE.rst @@ -0,0 +1 @@ +Fix ``test_embed`` for out-of-tree builds. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Tests/2022-06-03-14-18-37.gh-issue-90473.7iXVRK.rst b/Misc/NEWS.d/next/Tests/2022-06-03-14-18-37.gh-issue-90473.7iXVRK.rst new file mode 100644 index 00000000000000..a3165a01111fb9 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2022-06-03-14-18-37.gh-issue-90473.7iXVRK.rst @@ -0,0 +1,2 @@ +Skip symlink tests on WASI. wasmtime uses ``openat2(2)`` with +``RESOLVE_BENEATH`` flag, which prevents symlinks with absolute paths. diff --git a/Misc/NEWS.d/next/Tests/2022-06-03-16-26-04.gh-issue-57539.HxWgYO.rst b/Misc/NEWS.d/next/Tests/2022-06-03-16-26-04.gh-issue-57539.HxWgYO.rst new file mode 100644 index 00000000000000..0734b599f4ad95 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2022-06-03-16-26-04.gh-issue-57539.HxWgYO.rst @@ -0,0 +1 @@ +Increase calendar test coverage for :meth:`calendar.LocaleTextCalendar.formatweekday`. diff --git a/Misc/NEWS.d/next/Tests/2022-06-04-12-05-31.gh-issue-90473.RSpjF7.rst b/Misc/NEWS.d/next/Tests/2022-06-04-12-05-31.gh-issue-90473.RSpjF7.rst new file mode 100644 index 00000000000000..07d579995c0911 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2022-06-04-12-05-31.gh-issue-90473.RSpjF7.rst @@ -0,0 +1 @@ +Skip tests on WASI that require symlinks with absolute paths. diff --git a/Misc/NEWS.d/next/Tests/2022-06-05-10-16-45.gh-issue-90473.QMu7A8.rst b/Misc/NEWS.d/next/Tests/2022-06-05-10-16-45.gh-issue-90473.QMu7A8.rst new file mode 100644 index 00000000000000..6c76b7f4990e4f --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2022-06-05-10-16-45.gh-issue-90473.QMu7A8.rst @@ -0,0 +1,2 @@ +WASI does not have a ``chmod(2)`` syscall. :func:`os.chmod` is now a dummy +function on WASI. Skip all tests that depend on working :func:`os.chmod`. diff --git a/Misc/NEWS.d/next/Tests/2022-06-08-14-17-59.gh-issue-93575.Xb2LNB.rst b/Misc/NEWS.d/next/Tests/2022-06-08-14-17-59.gh-issue-93575.Xb2LNB.rst new file mode 100644 index 00000000000000..98d15328a087ae --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2022-06-08-14-17-59.gh-issue-93575.Xb2LNB.rst @@ -0,0 +1,4 @@ +Fix issue with test_unicode test_raiseMemError. The test case now use +``test.support.calcobjsize`` to calculate size of PyUnicode structs. +:func:`sys.getsizeof` may return different size when string has UTF-8 +memory. diff --git a/Misc/NEWS.d/next/Tests/2022-06-08-22-32-56.gh-issue-93616.e5Kkx2.rst b/Misc/NEWS.d/next/Tests/2022-06-08-22-32-56.gh-issue-93616.e5Kkx2.rst new file mode 100644 index 00000000000000..de8ec52cc88b2a --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2022-06-08-22-32-56.gh-issue-93616.e5Kkx2.rst @@ -0,0 +1,2 @@ +``test_modulefinder`` now creates a temporary directory in +``ModuleFinderTest.setUp()`` instead of module scope. diff --git a/Misc/NEWS.d/next/Tests/2022-06-10-21-18-14.gh-issue-84461.9TAb26.rst b/Misc/NEWS.d/next/Tests/2022-06-10-21-18-14.gh-issue-84461.9TAb26.rst new file mode 100644 index 00000000000000..7cdf5bee721870 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2022-06-10-21-18-14.gh-issue-84461.9TAb26.rst @@ -0,0 +1,2 @@ +``run_tests.py`` now handles cross compiling env vars correctly and pass +``HOSTRUNNER`` to regression tests. diff --git a/Misc/NEWS.d/next/Tests/2022-06-16-17-50-58.gh-issue-93353.JdpATx.rst b/Misc/NEWS.d/next/Tests/2022-06-16-17-50-58.gh-issue-93353.JdpATx.rst new file mode 100644 index 00000000000000..4e232948f49ee7 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2022-06-16-17-50-58.gh-issue-93353.JdpATx.rst @@ -0,0 +1,2 @@ +regrtest now checks if a test leaks temporary files or directories if run +with -jN option. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Tests/2022-06-16-21-38-18.gh-issue-93852.U_Hl6s.rst b/Misc/NEWS.d/next/Tests/2022-06-16-21-38-18.gh-issue-93852.U_Hl6s.rst new file mode 100644 index 00000000000000..ce86eead02660c --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2022-06-16-21-38-18.gh-issue-93852.U_Hl6s.rst @@ -0,0 +1,4 @@ +test_asyncio, test_logging, test_socket and test_socketserver now create +AF_UNIX domains in the current directory to no longer fail with +``OSError("AF_UNIX path too long")`` if the temporary directory (the +:envvar:`TMPDIR` environment variable) is too long. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Tests/2022-06-17-13-27-21.gh-issue-93884.5pvPvl.rst b/Misc/NEWS.d/next/Tests/2022-06-17-13-27-21.gh-issue-93884.5pvPvl.rst new file mode 100644 index 00000000000000..ce389149aaae86 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2022-06-17-13-27-21.gh-issue-93884.5pvPvl.rst @@ -0,0 +1 @@ +Add test cases for :c:func:`PyNumber_ToBase` that take a large number or a non-int object as parameter. diff --git a/Misc/NEWS.d/next/Tests/2022-06-17-13-55-11.gh-issue-93957.X4ovYV.rst b/Misc/NEWS.d/next/Tests/2022-06-17-13-55-11.gh-issue-93957.X4ovYV.rst new file mode 100644 index 00000000000000..2719933f6b94c7 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2022-06-17-13-55-11.gh-issue-93957.X4ovYV.rst @@ -0,0 +1,2 @@ +Provide nicer error reporting from subprocesses in +test_venv.EnsurePipTest.test_with_pip. diff --git a/Misc/NEWS.d/next/Tests/2022-06-17-15-20-09.gh-issue-93951.CW1Vv4.rst b/Misc/NEWS.d/next/Tests/2022-06-17-15-20-09.gh-issue-93951.CW1Vv4.rst new file mode 100644 index 00000000000000..b627466b4b221c --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2022-06-17-15-20-09.gh-issue-93951.CW1Vv4.rst @@ -0,0 +1 @@ +In test_bdb.StateTestCase.test_skip, avoid including auxiliary importers. diff --git a/Misc/NEWS.d/next/Tests/2022-06-20-23-04-52.gh-issue-93839.OE3Ybk.rst b/Misc/NEWS.d/next/Tests/2022-06-20-23-04-52.gh-issue-93839.OE3Ybk.rst new file mode 100644 index 00000000000000..121b64b13307ae --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2022-06-20-23-04-52.gh-issue-93839.OE3Ybk.rst @@ -0,0 +1,2 @@ +Move ``Lib/ctypes/test/`` to ``Lib/test/test_ctypes/``. Patch by Victor +Stinner. diff --git a/Misc/NEWS.d/next/Tests/2022-06-21-17-37-46.gh-issue-54781.BjVAVg.rst b/Misc/NEWS.d/next/Tests/2022-06-21-17-37-46.gh-issue-54781.BjVAVg.rst new file mode 100644 index 00000000000000..f7ae7b976af95b --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2022-06-21-17-37-46.gh-issue-54781.BjVAVg.rst @@ -0,0 +1,2 @@ +Rename test_tk to test_tkinter, and rename test_ttk_guionly to test_ttk. +Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Tests/2022-06-27-08-53-40.gh-issue-94315.MoZT9t.rst b/Misc/NEWS.d/next/Tests/2022-06-27-08-53-40.gh-issue-94315.MoZT9t.rst new file mode 100644 index 00000000000000..09d5d7e56ae835 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2022-06-27-08-53-40.gh-issue-94315.MoZT9t.rst @@ -0,0 +1,2 @@ +Tests now check for DAC override capability instead of relying on +:func:`os.geteuid`. diff --git a/Misc/NEWS.d/next/Tests/2022-06-27-21-27-20.gh-issue-94208.VR6HX-.rst b/Misc/NEWS.d/next/Tests/2022-06-27-21-27-20.gh-issue-94208.VR6HX-.rst new file mode 100644 index 00000000000000..d0f970ad286b1d --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2022-06-27-21-27-20.gh-issue-94208.VR6HX-.rst @@ -0,0 +1,2 @@ +``test_ssl`` is now checking for supported TLS version and protocols in more +tests. diff --git a/Misc/NEWS.d/next/Tests/2022-07-05-17-53-13.gh-issue-91330.Qys5IL.rst b/Misc/NEWS.d/next/Tests/2022-07-05-17-53-13.gh-issue-91330.Qys5IL.rst new file mode 100644 index 00000000000000..6f44dcfd7e66a2 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2022-07-05-17-53-13.gh-issue-91330.Qys5IL.rst @@ -0,0 +1,2 @@ +Added more tests for :mod:`dataclasses` to cover behavior with data +descriptor-based fields. diff --git a/Misc/NEWS.d/next/Tests/2022-07-08-12-22-00.gh-issue-94675.IiTs5f.rst b/Misc/NEWS.d/next/Tests/2022-07-08-12-22-00.gh-issue-94675.IiTs5f.rst new file mode 100644 index 00000000000000..d0005d9f6014cd --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2022-07-08-12-22-00.gh-issue-94675.IiTs5f.rst @@ -0,0 +1 @@ +Add a regression test for :mod:`re` exponentional slowdown when using rjsmin. diff --git a/Misc/NEWS.d/next/Tests/2022-07-24-16-28-31.gh-issue-93963.UB9azu.rst b/Misc/NEWS.d/next/Tests/2022-07-24-16-28-31.gh-issue-93963.UB9azu.rst new file mode 100644 index 00000000000000..89ce124c55f226 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2022-07-24-16-28-31.gh-issue-93963.UB9azu.rst @@ -0,0 +1 @@ +Updated tests to use preferred location for ``importlib.resources`` ABCs. diff --git a/Misc/NEWS.d/next/Tests/2022-07-24-17-24-42.gh-issue-95218.zfBLtu.rst b/Misc/NEWS.d/next/Tests/2022-07-24-17-24-42.gh-issue-95218.zfBLtu.rst new file mode 100644 index 00000000000000..7326689657a7ac --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2022-07-24-17-24-42.gh-issue-95218.zfBLtu.rst @@ -0,0 +1 @@ +Move tests for importlib.resources into test_importlib.resources. diff --git a/Misc/NEWS.d/next/Tests/2022-07-24-20-19-05.gh-issue-95212.fHiU4e.rst b/Misc/NEWS.d/next/Tests/2022-07-24-20-19-05.gh-issue-95212.fHiU4e.rst new file mode 100644 index 00000000000000..44cea181cc1f1e --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2022-07-24-20-19-05.gh-issue-95212.fHiU4e.rst @@ -0,0 +1,2 @@ +Make multiprocessing test case ``test_shared_memory_recreate`` +parallel-safe. diff --git a/Misc/NEWS.d/next/Tests/2022-07-26-15-22-19.gh-issue-95280.h8HvbP.rst b/Misc/NEWS.d/next/Tests/2022-07-26-15-22-19.gh-issue-95280.h8HvbP.rst new file mode 100644 index 00000000000000..523d9d5f2f8bf3 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2022-07-26-15-22-19.gh-issue-95280.h8HvbP.rst @@ -0,0 +1,2 @@ +Fix problem with ``test_ssl`` ``test_get_ciphers`` on systems that require +perfect forward secrecy (PFS) ciphers. diff --git a/Misc/NEWS.d/next/Tests/2022-08-05-09-57-43.gh-issue-95573.edMdQB.rst b/Misc/NEWS.d/next/Tests/2022-08-05-09-57-43.gh-issue-95573.edMdQB.rst new file mode 100644 index 00000000000000..8580556965e1da --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2022-08-05-09-57-43.gh-issue-95573.edMdQB.rst @@ -0,0 +1,6 @@ +:source:`Lib/test/test_asyncio/test_ssl.py` exposed a bug in the macOS +kernel where intense concurrent load on non-blocking sockets occasionally +causes :const:`errno.ENOBUFS` ("No buffer space available") to be emitted. +FB11063974 filed with Apple, in the mean time as a workaround buffer size +used in tests on macOS is decreased to avoid intermittent failures. Patch +by Fantix King. diff --git a/Misc/NEWS.d/next/Tests/2022-08-22-14-59-42.gh-issue-95243.DeD66V.rst b/Misc/NEWS.d/next/Tests/2022-08-22-14-59-42.gh-issue-95243.DeD66V.rst new file mode 100644 index 00000000000000..a9ca1f8b86764c --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2022-08-22-14-59-42.gh-issue-95243.DeD66V.rst @@ -0,0 +1,3 @@ +Mitigate the inherent race condition from using find_unused_port() in +testSockName() by trying to find an unused port a few times before failing. +Patch by Ross Burton. diff --git a/Misc/NEWS.d/next/Tests/2022-09-08-18-31-26.gh-issue-96624.5cANM1.rst b/Misc/NEWS.d/next/Tests/2022-09-08-18-31-26.gh-issue-96624.5cANM1.rst new file mode 100644 index 00000000000000..2d1bcc03e1c8b8 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2022-09-08-18-31-26.gh-issue-96624.5cANM1.rst @@ -0,0 +1 @@ +Fixed the failure of repeated runs of ``test.test_unittest`` caused by side effects in ``test_dotted_but_module_not_loaded``. diff --git a/Misc/NEWS.d/next/Tools-Demos/2022-06-19-14-56-33.gh-issue-86087.R8MkRy.rst b/Misc/NEWS.d/next/Tools-Demos/2022-06-19-14-56-33.gh-issue-86087.R8MkRy.rst new file mode 100644 index 00000000000000..a10d4c76884522 --- /dev/null +++ b/Misc/NEWS.d/next/Tools-Demos/2022-06-19-14-56-33.gh-issue-86087.R8MkRy.rst @@ -0,0 +1,2 @@ +The ``Tools/scripts/parseentities.py`` script used to parse HTML4 entities +has been removed. diff --git a/Misc/NEWS.d/next/Tools-Demos/2022-06-29-22-47-11.gh-issue-94430.hdov8L.rst b/Misc/NEWS.d/next/Tools-Demos/2022-06-29-22-47-11.gh-issue-94430.hdov8L.rst new file mode 100644 index 00000000000000..88aa8d08665319 --- /dev/null +++ b/Misc/NEWS.d/next/Tools-Demos/2022-06-29-22-47-11.gh-issue-94430.hdov8L.rst @@ -0,0 +1,2 @@ +Allow parameters named ``module`` and ``self`` with custom C names in Argument +Clinic. Patch by Erlend E. Aasland diff --git a/Misc/NEWS.d/next/Tools-Demos/2022-07-04-01-37-42.gh-issue-94538.1rgy1Y.rst b/Misc/NEWS.d/next/Tools-Demos/2022-07-04-01-37-42.gh-issue-94538.1rgy1Y.rst new file mode 100644 index 00000000000000..e39ae3950c0fe3 --- /dev/null +++ b/Misc/NEWS.d/next/Tools-Demos/2022-07-04-01-37-42.gh-issue-94538.1rgy1Y.rst @@ -0,0 +1,2 @@ +Fix Argument Clinic output to custom file destinations. Patch by Erlend E. +Aasland. diff --git a/Misc/NEWS.d/next/Tools-Demos/2022-07-04-10-02-02.gh-issue-93939.U6sW6H.rst b/Misc/NEWS.d/next/Tools-Demos/2022-07-04-10-02-02.gh-issue-93939.U6sW6H.rst new file mode 100644 index 00000000000000..a129d6800c360a --- /dev/null +++ b/Misc/NEWS.d/next/Tools-Demos/2022-07-04-10-02-02.gh-issue-93939.U6sW6H.rst @@ -0,0 +1,3 @@ +Add script ``Tools/scripts/check_modules.py`` to check and validate builtin +and shared extension modules. The script also handles ``Modules/Setup`` and +will eventually replace ``setup.py``. diff --git a/Misc/NEWS.d/next/Tools-Demos/2022-08-10-17-08-43.gh-issue-95853.HCjC2m.rst b/Misc/NEWS.d/next/Tools-Demos/2022-08-10-17-08-43.gh-issue-95853.HCjC2m.rst new file mode 100644 index 00000000000000..c38db3af425e51 --- /dev/null +++ b/Misc/NEWS.d/next/Tools-Demos/2022-08-10-17-08-43.gh-issue-95853.HCjC2m.rst @@ -0,0 +1,2 @@ +The new tool ``Tools/wasm/wasm_builder.py`` automates configure, compile, and +test steps for building CPython on WebAssembly platforms. diff --git a/Misc/NEWS.d/next/Tools-Demos/2022-08-29-17-25-13.gh-issue-95853.Ce17cT.rst b/Misc/NEWS.d/next/Tools-Demos/2022-08-29-17-25-13.gh-issue-95853.Ce17cT.rst new file mode 100644 index 00000000000000..1cd1ce14fac08c --- /dev/null +++ b/Misc/NEWS.d/next/Tools-Demos/2022-08-29-17-25-13.gh-issue-95853.Ce17cT.rst @@ -0,0 +1,2 @@ +The ``wasm_build.py`` script now pre-builds Emscripten ports, checks for +broken EMSDK versions, and warns about pkg-config env vars. diff --git a/Misc/NEWS.d/next/Windows/2022-03-20-15-47-35.bpo-42658.16eXtb.rst b/Misc/NEWS.d/next/Windows/2022-03-20-15-47-35.bpo-42658.16eXtb.rst new file mode 100644 index 00000000000000..852cc77676a31d --- /dev/null +++ b/Misc/NEWS.d/next/Windows/2022-03-20-15-47-35.bpo-42658.16eXtb.rst @@ -0,0 +1,3 @@ +Support native Windows case-insensitive path comparisons by using +``LCMapStringEx`` instead of :func:`str.lower` in :func:`ntpath.normcase`. +Add ``LCMapStringEx`` to the :mod:`_winapi` module. diff --git a/Misc/NEWS.d/next/Windows/2022-05-28-19-36-13.gh-issue-43414.NGMJ3g.rst b/Misc/NEWS.d/next/Windows/2022-05-28-19-36-13.gh-issue-43414.NGMJ3g.rst new file mode 100644 index 00000000000000..553e8762d5d1e6 --- /dev/null +++ b/Misc/NEWS.d/next/Windows/2022-05-28-19-36-13.gh-issue-43414.NGMJ3g.rst @@ -0,0 +1,2 @@ +:func:`os.get_terminal_size` now attempts to read the size from any provided +handle, rather than only supporting file descriptors 0, 1 and 2. diff --git a/Misc/NEWS.d/next/Windows/2022-06-15-01-03-52.gh-issue-93824.mR4mxu.rst b/Misc/NEWS.d/next/Windows/2022-06-15-01-03-52.gh-issue-93824.mR4mxu.rst new file mode 100644 index 00000000000000..cabe983847c891 --- /dev/null +++ b/Misc/NEWS.d/next/Windows/2022-06-15-01-03-52.gh-issue-93824.mR4mxu.rst @@ -0,0 +1,2 @@ +Drag and drop of files onto Python files in Windows Explorer has been +enabled for Windows ARM64. diff --git a/Misc/NEWS.d/next/Windows/2022-06-20-22-32-14.gh-issue-94018.bycC3A.rst b/Misc/NEWS.d/next/Windows/2022-06-20-22-32-14.gh-issue-94018.bycC3A.rst new file mode 100644 index 00000000000000..a2e558b3b4b3af --- /dev/null +++ b/Misc/NEWS.d/next/Windows/2022-06-20-22-32-14.gh-issue-94018.bycC3A.rst @@ -0,0 +1 @@ +:mod:`zipfile` will now remove trailing spaces from path components when extracting files on Windows. diff --git a/Misc/NEWS.d/next/Windows/2022-07-12-20-45-43.gh-issue-94772.uNMmdG.rst b/Misc/NEWS.d/next/Windows/2022-07-12-20-45-43.gh-issue-94772.uNMmdG.rst new file mode 100644 index 00000000000000..bb5ab754484eb3 --- /dev/null +++ b/Misc/NEWS.d/next/Windows/2022-07-12-20-45-43.gh-issue-94772.uNMmdG.rst @@ -0,0 +1 @@ +Fix incorrect handling of shebang lines in py.exe launcher diff --git a/Misc/NEWS.d/next/Windows/2022-07-16-16-18-32.gh-issue-90844.vwITT3.rst b/Misc/NEWS.d/next/Windows/2022-07-16-16-18-32.gh-issue-90844.vwITT3.rst new file mode 100644 index 00000000000000..8d9e850a5b5b7c --- /dev/null +++ b/Misc/NEWS.d/next/Windows/2022-07-16-16-18-32.gh-issue-90844.vwITT3.rst @@ -0,0 +1,2 @@ +Allow virtual environments to correctly launch when they have spaces in the +path. diff --git a/Misc/NEWS.d/next/Windows/2022-07-26-20-33-12.gh-issue-95285.w6fa22.rst b/Misc/NEWS.d/next/Windows/2022-07-26-20-33-12.gh-issue-95285.w6fa22.rst new file mode 100644 index 00000000000000..76b38e7803ccac --- /dev/null +++ b/Misc/NEWS.d/next/Windows/2022-07-26-20-33-12.gh-issue-95285.w6fa22.rst @@ -0,0 +1,2 @@ +Fix :ref:`launcher` handling of command lines where it is only passed a +short executable name. diff --git a/Misc/NEWS.d/next/Windows/2022-07-28-20-21-38.gh-issue-95359.ywMrgu.rst b/Misc/NEWS.d/next/Windows/2022-07-28-20-21-38.gh-issue-95359.ywMrgu.rst new file mode 100644 index 00000000000000..513a2be28a9c20 --- /dev/null +++ b/Misc/NEWS.d/next/Windows/2022-07-28-20-21-38.gh-issue-95359.ywMrgu.rst @@ -0,0 +1,3 @@ +Fix :ref:`launcher` handling of :file:`py.ini` commands (it was incorrectly +expecting a ``py_`` prefix on keys) and crashes when reading per-user +configuration file. diff --git a/Misc/NEWS.d/next/Windows/2022-07-30-14-18-33.gh-issue-95445.mjrTaq.rst b/Misc/NEWS.d/next/Windows/2022-07-30-14-18-33.gh-issue-95445.mjrTaq.rst new file mode 100644 index 00000000000000..565489ebf909d5 --- /dev/null +++ b/Misc/NEWS.d/next/Windows/2022-07-30-14-18-33.gh-issue-95445.mjrTaq.rst @@ -0,0 +1 @@ +Fixes the unsuccessful removal of the HTML document directory when uninstalling with Windows msi. diff --git a/Misc/NEWS.d/next/Windows/2022-08-03-00-49-46.gh-issue-94399.KvxHc0.rst b/Misc/NEWS.d/next/Windows/2022-08-03-00-49-46.gh-issue-94399.KvxHc0.rst new file mode 100644 index 00000000000000..a49e99ca266526 --- /dev/null +++ b/Misc/NEWS.d/next/Windows/2022-08-03-00-49-46.gh-issue-94399.KvxHc0.rst @@ -0,0 +1,3 @@ +Restores the behaviour of :ref:`launcher` for ``/usr/bin/env`` shebang +lines, which will now search :envvar:`PATH` for an executable matching the +given command. If none is found, the usual search process is used. diff --git a/Misc/NEWS.d/next/Windows/2022-08-04-01-12-27.gh-issue-95587.Fvdv5q.rst b/Misc/NEWS.d/next/Windows/2022-08-04-01-12-27.gh-issue-95587.Fvdv5q.rst new file mode 100644 index 00000000000000..1033e892876c91 --- /dev/null +++ b/Misc/NEWS.d/next/Windows/2022-08-04-01-12-27.gh-issue-95587.Fvdv5q.rst @@ -0,0 +1,2 @@ +Fixes some issues where the Windows installer would incorrectly detect +certain features of an existing install when upgrading. diff --git a/Misc/NEWS.d/next/Windows/2022-08-04-18-47-54.gh-issue-95656.VJ1d13.rst b/Misc/NEWS.d/next/Windows/2022-08-04-18-47-54.gh-issue-95656.VJ1d13.rst new file mode 100644 index 00000000000000..77fea4c33f7a92 --- /dev/null +++ b/Misc/NEWS.d/next/Windows/2022-08-04-18-47-54.gh-issue-95656.VJ1d13.rst @@ -0,0 +1,2 @@ +Enable the :meth:`~sqlite3.Connection.enable_load_extension` :mod:`sqlite3` +API. diff --git a/Misc/NEWS.d/next/Windows/2022-08-10-22-46-48.gh-issue-95733.2_urOp.rst b/Misc/NEWS.d/next/Windows/2022-08-10-22-46-48.gh-issue-95733.2_urOp.rst new file mode 100644 index 00000000000000..996209211690eb --- /dev/null +++ b/Misc/NEWS.d/next/Windows/2022-08-10-22-46-48.gh-issue-95733.2_urOp.rst @@ -0,0 +1,2 @@ +Make certain requirements of the Windows Store package optional to allow +installing on earlier updates of Windows. diff --git a/Misc/NEWS.d/next/Windows/2022-08-26-00-11-18.gh-issue-89545.zmJMY_.rst b/Misc/NEWS.d/next/Windows/2022-08-26-00-11-18.gh-issue-89545.zmJMY_.rst new file mode 100644 index 00000000000000..eeedbf9d6fa8f6 --- /dev/null +++ b/Misc/NEWS.d/next/Windows/2022-08-26-00-11-18.gh-issue-89545.zmJMY_.rst @@ -0,0 +1 @@ +Updates :mod:`platform` code getting the Windows version to use native Windows Management Instrumentation (WMI) queries to determine OS version, type, and architecture. diff --git a/Misc/NEWS.d/next/Windows/2022-08-30-12-01-51.gh-issue-94781.OxO-Gr.rst b/Misc/NEWS.d/next/Windows/2022-08-30-12-01-51.gh-issue-94781.OxO-Gr.rst new file mode 100644 index 00000000000000..d343173d40d606 --- /dev/null +++ b/Misc/NEWS.d/next/Windows/2022-08-30-12-01-51.gh-issue-94781.OxO-Gr.rst @@ -0,0 +1,2 @@ +Fix :file:`pcbuild.proj` to clean previous instances of ouput files in ``Python\deepfreeze`` and +``Python\frozen_modules`` directories on Windows. Patch by Charlie Zhao. diff --git a/Misc/NEWS.d/next/Windows/2022-09-05-18-32-47.gh-issue-96559.561sUd.rst b/Misc/NEWS.d/next/Windows/2022-09-05-18-32-47.gh-issue-96559.561sUd.rst new file mode 100644 index 00000000000000..275617648f9219 --- /dev/null +++ b/Misc/NEWS.d/next/Windows/2022-09-05-18-32-47.gh-issue-96559.561sUd.rst @@ -0,0 +1,3 @@ +Fixes the Windows launcher not using the compatible interpretation of +default tags found in configuration files when no tag was passed to the +command. diff --git a/Misc/NEWS.d/next/Windows/2022-09-07-00-11-33.gh-issue-96577.kV4K_1.rst b/Misc/NEWS.d/next/Windows/2022-09-07-00-11-33.gh-issue-96577.kV4K_1.rst new file mode 100644 index 00000000000000..6025e5ce413042 --- /dev/null +++ b/Misc/NEWS.d/next/Windows/2022-09-07-00-11-33.gh-issue-96577.kV4K_1.rst @@ -0,0 +1 @@ +Fixes a potential buffer overrun in :mod:`msilib`. diff --git a/Misc/python.man b/Misc/python.man index c6628fe75f40ff..1705eeb0c9c126 100644 --- a/Misc/python.man +++ b/Misc/python.man @@ -84,6 +84,19 @@ python \- an interpreted, interactive, object-oriented programming language | .I never ] +.br + [ +.B \--help +] +[ +.B \--help-env +] +[ +.B \--help-xoptions +] +[ +.B \--help-all +] .br [ .B \-c @@ -149,6 +162,16 @@ the behavior of the interpreter. .B \-h ", " \-? ", "\-\-help Prints the usage for the interpreter executable and exits. .TP +.B "\-\-help\-env" +Prints help about Python-specific environment variables and exits. +.TP +.B "\-\-help\-xoptions" +Prints help about implementation-specific \fB\-X\fP options and exits. +.TP +.TP +.B "\-\-help\-all" +Prints complete usage information and exits. +.TP .B \-i When a script is passed as first argument or the \fB\-c\fP option is used, enter interactive mode after executing the script or the @@ -287,7 +310,7 @@ a regular expression on the warning message. .TP .BI "\-X " option -Set implementation specific option. The following options are available: +Set implementation-specific option. The following options are available: -X faulthandler: enable faulthandler @@ -332,7 +355,7 @@ Set implementation specific option. The following options are available: files are desired as well as suppressing the extra visual location indicators when the interpreter displays tracebacks. - -X frozen_modules=[on|off]: whether or not frozen modules should be used + -X frozen_modules=[on|off]: whether or not frozen modules should be used. The default is "on" (or "off" if you are running a local build). .TP diff --git a/Misc/rhel7/README.md b/Misc/rhel7/README.md new file mode 100644 index 00000000000000..8642e7c678f279 --- /dev/null +++ b/Misc/rhel7/README.md @@ -0,0 +1,19 @@ +# pkg-config overrides for RHEL 7 and CentOS 7 + +RHEL 7 and CentOS 7 do not provide pkg-config `.pc` files for Tcl/Tk. The + OpenSSL 1.1.1 pkg-config file is named `openssl11.pc` and not picked up + by Python's `configure` script. + +To build Python with system Tcl/Tk libs and OpenSSL 1.1 package, first +install the developer packages and the `pkgconfig` package with `pkg-config` +command. + +```shell +sudo yum install pkgconfig 'tcl-devel >= 8.5.12' 'tk-devel >= 8.5.12' openssl11-devel +``` + +The run `configure` with `PKG_CONFIG_PATH` environment variable. + +```shell +PKG_CONFIG_PATH=Misc/rhel7 ./configure -C +``` diff --git a/Misc/rhel7/openssl.pc b/Misc/rhel7/openssl.pc new file mode 100644 index 00000000000000..ffccd36cc30dff --- /dev/null +++ b/Misc/rhel7/openssl.pc @@ -0,0 +1,3 @@ +Name: OpenSSL +Version: 1.1.1k +Requires: libssl11 libcrypto11 diff --git a/Misc/rhel7/tcl.pc b/Misc/rhel7/tcl.pc new file mode 100644 index 00000000000000..922eb51264035c --- /dev/null +++ b/Misc/rhel7/tcl.pc @@ -0,0 +1,4 @@ +Name: Tool Command Language +Version: 8.5.12 +Libs: -ltcl8.5 -ltclstub8.5 +# Libs.private: -ldl -lz -lpthread -lm diff --git a/Misc/rhel7/tk.pc b/Misc/rhel7/tk.pc new file mode 100644 index 00000000000000..67cebb27f791d3 --- /dev/null +++ b/Misc/rhel7/tk.pc @@ -0,0 +1,5 @@ +Name: The Tk Toolkit +Version: 8.5.12 +Requires: tcl >= 8.5.12 +Libs: -ltk8.5 -ltkstub8.5 +# Libs.private: -lXft -lfontconfig -lfreetype -lfontconfig -lX11 diff --git a/Misc/stable_abi.toml b/Misc/stable_abi.toml index 84bec827096050..4da002a0586299 100644 --- a/Misc/stable_abi.toml +++ b/Misc/stable_abi.toml @@ -2275,5 +2275,14 @@ added = '3.11' [function.PyErr_SetHandledException] added = '3.11' + [function.PyType_FromMetaclass] added = '3.12' +[const.Py_TPFLAGS_HAVE_VECTORCALL] + added = '3.12' +[function.PyVectorcall_NARGS] + added = '3.12' +[function.PyVectorcall_Call] + added = '3.12' +[typedef.vectorcallfunc] + added = '3.12' diff --git a/Modules/Setup b/Modules/Setup index d3647ecb995928..8fe79512787cde 100644 --- a/Modules/Setup +++ b/Modules/Setup @@ -275,7 +275,7 @@ PYTHONPATH=$(COREPYTHONPATH) #xx xxmodule.c #xxlimited xxlimited.c #xxlimited_35 xxlimited_35.c -xxsubtype xxsubtype.c # Required for the test suite to pass! +#xxsubtype xxsubtype.c # Testing diff --git a/Modules/Setup.stdlib.in b/Modules/Setup.stdlib.in index 22c0b147c1b894..ac8959ebea5bf2 100644 --- a/Modules/Setup.stdlib.in +++ b/Modules/Setup.stdlib.in @@ -68,12 +68,12 @@ # dbm/gdbm # dbm needs either libndbm, libgdbm_compat, or libdb 5.x -#@MODULE__DBM_TRUE@_dbm _dbmmodule.c +@MODULE__DBM_TRUE@_dbm _dbmmodule.c # gdbm module needs -lgdbm @MODULE__GDBM_TRUE@_gdbm _gdbmmodule.c -# needs -lreadline or -leditline, sometimes termcap, termlib, or tinfo -#@MODULE_READLINE_TRUE@readline readline.c +# needs -lreadline or -ledit, sometimes termcap, termlib, or tinfo +@MODULE_READLINE_TRUE@readline readline.c # hashing builtins, can be disabled with --without-builtin-hashlib-hashes @MODULE__MD5_TRUE@_md5 md5module.c @@ -136,14 +136,14 @@ # # needs -lffi and -ldl -#@MODULE__CTYPES_TRUE@_ctypes _ctypes/_ctypes.c _ctypes/callbacks.c _ctypes/callproc.c _ctypes/stgdict.c _ctypes/cfield.c +@MODULE__CTYPES_TRUE@_ctypes _ctypes/_ctypes.c _ctypes/callbacks.c _ctypes/callproc.c _ctypes/stgdict.c _ctypes/cfield.c @MODULE__CTYPES_MALLOC_CLOSURE@ -# needs -lncurses, -lncursesw or -lcurses, sometimes -ltermcap -#@MODULE__CURSES_TRUE@_curses _cursesmodule.c -# needs -lncurses and -lpanel -#@MODULE__CURSES_PANEL_TRUE@_curses_panel _curses_panel.c +# needs -lncurses[w], sometimes -ltermcap/tinfo +@MODULE__CURSES_TRUE@_curses _cursesmodule.c +# needs -lncurses[w] and -lpanel[w] +@MODULE__CURSES_PANEL_TRUE@_curses_panel _curses_panel.c -@MODULE__SQLITE3_TRUE@_sqlite3 _sqlite/connection.c _sqlite/cursor.c _sqlite/microprotocols.c _sqlite/module.c _sqlite/prepare_protocol.c _sqlite/row.c _sqlite/statement.c _sqlite/util.c +@MODULE__SQLITE3_TRUE@_sqlite3 _sqlite/blob.c _sqlite/connection.c _sqlite/cursor.c _sqlite/microprotocols.c _sqlite/module.c _sqlite/prepare_protocol.c _sqlite/row.c _sqlite/statement.c _sqlite/util.c # needs -lssl and -lcrypt @MODULE__SSL_TRUE@_ssl _ssl.c @@ -165,10 +165,11 @@ ############################################################################ # Test modules +@MODULE_XXSUBTYPE_TRUE@xxsubtype xxsubtype.c @MODULE__XXTESTFUZZ_TRUE@_xxtestfuzz _xxtestfuzz/_xxtestfuzz.c _xxtestfuzz/fuzzer.c @MODULE__TESTBUFFER_TRUE@_testbuffer _testbuffer.c @MODULE__TESTINTERNALCAPI_TRUE@_testinternalcapi _testinternalcapi.c -@MODULE__TESTCAPI_TRUE@_testcapi _testcapimodule.c +@MODULE__TESTCAPI_TRUE@_testcapi _testcapimodule.c _testcapi/vectorcall.c _testcapi/vectorcall_limited.c _testcapi/heaptype.c _testcapi/unicode.c # Some testing modules MUST be built as shared libraries. *shared* diff --git a/Modules/_abc.c b/Modules/_abc.c index 641d6198d1fec4..b22daa81e3ae19 100644 --- a/Modules/_abc.c +++ b/Modules/_abc.c @@ -63,6 +63,7 @@ abc_data_clear(_abc_data *self) static void abc_data_dealloc(_abc_data *self) { + PyObject_GC_UnTrack(self); PyTypeObject *tp = Py_TYPE(self); (void)abc_data_clear(self); tp->tp_free(self); diff --git a/Modules/_asynciomodule.c b/Modules/_asynciomodule.c index bb7c5a7c3ec550..9d2f83bf6c73c1 100644 --- a/Modules/_asynciomodule.c +++ b/Modules/_asynciomodule.c @@ -23,7 +23,6 @@ _Py_IDENTIFIER(call_soon); _Py_IDENTIFIER(cancel); _Py_IDENTIFIER(get_event_loop); _Py_IDENTIFIER(throw); -_Py_IDENTIFIER(_check_future); /* State of the _asyncio module */ @@ -70,6 +69,7 @@ typedef enum { PyObject *prefix##_context0; \ PyObject *prefix##_callbacks; \ PyObject *prefix##_exception; \ + PyObject *prefix##_exception_tb; \ PyObject *prefix##_result; \ PyObject *prefix##_source_tb; \ PyObject *prefix##_cancel_msg; \ @@ -495,6 +495,7 @@ future_init(FutureObj *fut, PyObject *loop) Py_CLEAR(fut->fut_callbacks); Py_CLEAR(fut->fut_result); Py_CLEAR(fut->fut_exception); + Py_CLEAR(fut->fut_exception_tb); Py_CLEAR(fut->fut_source_tb); Py_CLEAR(fut->fut_cancel_msg); Py_CLEAR(fut->fut_cancelled_exc); @@ -601,7 +602,9 @@ future_set_exception(FutureObj *fut, PyObject *exc) } assert(!fut->fut_exception); + assert(!fut->fut_exception_tb); fut->fut_exception = exc_val; + fut->fut_exception_tb = PyException_GetTraceback(exc_val); fut->fut_state = STATE_FINISHED; if (future_schedule_callbacks(fut) == -1) { @@ -628,8 +631,6 @@ create_cancelled_error(FutureObj *fut) } else { exc = PyObject_CallOneArg(asyncio_CancelledError, msg); } - PyException_SetContext(exc, fut->fut_cancelled_exc); - Py_CLEAR(fut->fut_cancelled_exc); return exc; } @@ -637,6 +638,9 @@ static void future_set_cancelled_error(FutureObj *fut) { PyObject *exc = create_cancelled_error(fut); + if (exc == NULL) { + return; + } PyErr_SetObject(asyncio_CancelledError, exc); Py_DECREF(exc); } @@ -656,8 +660,16 @@ future_get_result(FutureObj *fut, PyObject **result) fut->fut_log_tb = 0; if (fut->fut_exception != NULL) { + PyObject *tb = fut->fut_exception_tb; + if (tb == NULL) { + tb = Py_None; + } + if (PyException_SetTraceback(fut->fut_exception, tb) < 0) { + return -1; + } Py_INCREF(fut->fut_exception); *result = fut->fut_exception; + Py_CLEAR(fut->fut_exception_tb); return 1; } @@ -799,6 +811,7 @@ FutureObj_clear(FutureObj *fut) Py_CLEAR(fut->fut_callbacks); Py_CLEAR(fut->fut_result); Py_CLEAR(fut->fut_exception); + Py_CLEAR(fut->fut_exception_tb); Py_CLEAR(fut->fut_source_tb); Py_CLEAR(fut->fut_cancel_msg); Py_CLEAR(fut->fut_cancelled_exc); @@ -815,6 +828,7 @@ FutureObj_traverse(FutureObj *fut, visitproc visit, void *arg) Py_VISIT(fut->fut_callbacks); Py_VISIT(fut->fut_result); Py_VISIT(fut->fut_exception); + Py_VISIT(fut->fut_exception_tb); Py_VISIT(fut->fut_source_tb); Py_VISIT(fut->fut_cancel_msg); Py_VISIT(fut->fut_cancelled_exc); @@ -1796,8 +1810,6 @@ class _asyncio.Task "TaskObj *" "&Task_Type" static int task_call_step_soon(TaskObj *, PyObject *); static PyObject * task_wakeup(TaskObj *, PyObject *); static PyObject * task_step(TaskObj *, PyObject *); -static int task_check_future(TaskObj *, PyObject *); -static int task_check_future_exact(TaskObj *, PyObject *); /* ----- Task._step wrapper */ @@ -2272,6 +2284,7 @@ Returns the remaining number of cancellation requests. static PyObject * _asyncio_Task_uncancel_impl(TaskObj *self) /*[clinic end generated code: output=58184d236a817d3c input=68f81a4b90b46be2]*/ +/*[clinic end generated code]*/ { if (self->task_num_cancels_requested > 0) { self->task_num_cancels_requested -= 1; @@ -2279,21 +2292,6 @@ _asyncio_Task_uncancel_impl(TaskObj *self) return PyLong_FromLong(self->task_num_cancels_requested); } -/*[clinic input] -_asyncio.Task._check_future -> bool - - future: object - -Return False if task and future loops are not compatible. -[clinic start generated code]*/ - -static int -_asyncio_Task__check_future_impl(TaskObj *self, PyObject *future) -/*[clinic end generated code: output=a3bfba79295c8d57 input=3b1d6dfd6fe90aa5]*/ -{ - return task_check_future_exact(self, future); -} - /*[clinic input] _asyncio.Task.get_stack @@ -2519,7 +2517,6 @@ static PyMethodDef TaskType_methods[] = { _ASYNCIO_TASK_CANCEL_METHODDEF _ASYNCIO_TASK_CANCELLING_METHODDEF _ASYNCIO_TASK_UNCANCEL_METHODDEF - _ASYNCIO_TASK__CHECK_FUTURE_METHODDEF _ASYNCIO_TASK_GET_STACK_METHODDEF _ASYNCIO_TASK_PRINT_STACK_METHODDEF _ASYNCIO_TASK__MAKE_CANCELLED_ERROR_METHODDEF @@ -2587,43 +2584,6 @@ TaskObj_dealloc(PyObject *self) Py_TYPE(task)->tp_free(task); } -static int -task_check_future_exact(TaskObj *task, PyObject *future) -{ - int res; - if (Future_CheckExact(future) || Task_CheckExact(future)) { - FutureObj *fut = (FutureObj *)future; - res = (fut->fut_loop == task->task_loop); - } else { - PyObject *oloop = get_future_loop(future); - if (oloop == NULL) { - return -1; - } - res = (oloop == task->task_loop); - Py_DECREF(oloop); - } - return res; -} - - -static int -task_check_future(TaskObj *task, PyObject *future) -{ - if (Task_CheckExact(task)) { - return task_check_future_exact(task, future); - } else { - PyObject * ret = _PyObject_CallMethodIdOneArg((PyObject *)task, - &PyId__check_future, - future); - if (ret == NULL) { - return -1; - } - int is_true = PyObject_IsTrue(ret); - Py_DECREF(ret); - return is_true; - } -} - static int task_call_step_soon(TaskObj *task, PyObject *arg) { @@ -2841,11 +2801,7 @@ task_step_impl(TaskObj *task, PyObject *exc) FutureObj *fut = (FutureObj*)result; /* Check if `result` future is attached to a different loop */ - res = task_check_future(task, result); - if (res == -1) { - goto fail; - } - if (res == 0) { + if (fut->fut_loop != task->task_loop) { goto different_loop; } @@ -2917,13 +2873,15 @@ task_step_impl(TaskObj *task, PyObject *exc) } /* Check if `result` future is attached to a different loop */ - res = task_check_future(task, result); - if (res == -1) { + PyObject *oloop = get_future_loop(result); + if (oloop == NULL) { goto fail; } - if (res == 0) { + if (oloop != task->task_loop) { + Py_DECREF(oloop); goto different_loop; } + Py_DECREF(oloop); if (!blocking) { goto yield_insteadof_yf; diff --git a/Modules/_bisectmodule.c b/Modules/_bisectmodule.c index 19e9cd2d46f109..9ceb3ae46fe56d 100644 --- a/Modules/_bisectmodule.c +++ b/Modules/_bisectmodule.c @@ -25,6 +25,26 @@ get_bisect_state(PyObject *module) return (bisect_state *)state; } +static ssizeargfunc +get_sq_item(PyObject *s) +{ + // The parts of PySequence_GetItem that we only need to do once + PyTypeObject *tp = Py_TYPE(s); + PySequenceMethods *m = tp->tp_as_sequence; + if (m && m->sq_item) { + return m->sq_item; + } + const char *msg; + if (tp->tp_as_mapping && tp->tp_as_mapping->mp_subscript) { + msg = "%.200s is not a sequence"; + } + else { + msg = "'%.200s' object does not support indexing"; + } + PyErr_Format(PyExc_TypeError, msg, tp->tp_name); + return NULL; +} + static inline Py_ssize_t internal_bisect_right(PyObject *list, PyObject *item, Py_ssize_t lo, Py_ssize_t hi, PyObject* key) @@ -42,32 +62,86 @@ internal_bisect_right(PyObject *list, PyObject *item, Py_ssize_t lo, Py_ssize_t if (hi < 0) return -1; } + ssizeargfunc sq_item = get_sq_item(list); + if (sq_item == NULL) { + return -1; + } + if (Py_EnterRecursiveCall("in _bisect.bisect_right") < 0) { + return -1; + } + PyTypeObject *tp = Py_TYPE(item); + richcmpfunc compare = tp->tp_richcompare; while (lo < hi) { /* The (size_t)cast ensures that the addition and subsequent division are performed as unsigned operations, avoiding difficulties from signed overflow. (See issue 13496.) */ mid = ((size_t)lo + hi) / 2; - litem = PySequence_GetItem(list, mid); - if (litem == NULL) - return -1; + assert(mid >= 0); + // PySequence_GetItem, but we already checked the types. + litem = sq_item(list, mid); + assert((PyErr_Occurred() == NULL) ^ (litem == NULL)); + if (litem == NULL) { + goto error; + } if (key != Py_None) { PyObject *newitem = PyObject_CallOneArg(key, litem); if (newitem == NULL) { - Py_DECREF(litem); - return -1; + goto error; } Py_SETREF(litem, newitem); } - res = PyObject_RichCompareBool(item, litem, Py_LT); + /* if item < key(list[mid]): + * hi = mid + * else: + * lo = mid + 1 + */ + if (compare != NULL && Py_IS_TYPE(litem, tp)) { + // A fast path for comparing objects of the same type + PyObject *res_obj = compare(item, litem, Py_LT); + if (res_obj == Py_True) { + Py_DECREF(res_obj); + Py_DECREF(litem); + hi = mid; + continue; + } + if (res_obj == Py_False) { + Py_DECREF(res_obj); + Py_DECREF(litem); + lo = mid + 1; + continue; + } + if (res_obj == NULL) { + goto error; + } + if (res_obj == Py_NotImplemented) { + Py_DECREF(res_obj); + compare = NULL; + res = PyObject_RichCompareBool(item, litem, Py_LT); + } + else { + res = PyObject_IsTrue(res_obj); + Py_DECREF(res_obj); + } + } + else { + // A default path for comparing arbitrary objects + res = PyObject_RichCompareBool(item, litem, Py_LT); + } + if (res < 0) { + goto error; + } Py_DECREF(litem); - if (res < 0) - return -1; if (res) hi = mid; else lo = mid + 1; } + Py_LeaveRecursiveCall(); return lo; +error: + Py_LeaveRecursiveCall(); + Py_XDECREF(litem); + return -1; } /*[clinic input] @@ -128,7 +202,7 @@ _bisect_insort_right_impl(PyObject *module, PyObject *a, PyObject *x, index = internal_bisect_right(a, x, lo, hi, key); } else { key_x = PyObject_CallOneArg(key, x); - if (x == NULL) { + if (key_x == NULL) { return NULL; } index = internal_bisect_right(a, key_x, lo, hi, key); @@ -168,32 +242,86 @@ internal_bisect_left(PyObject *list, PyObject *item, Py_ssize_t lo, Py_ssize_t h if (hi < 0) return -1; } + ssizeargfunc sq_item = get_sq_item(list); + if (sq_item == NULL) { + return -1; + } + if (Py_EnterRecursiveCall("in _bisect.bisect_left") < 0) { + return -1; + } + PyTypeObject *tp = Py_TYPE(item); + richcmpfunc compare = tp->tp_richcompare; while (lo < hi) { /* The (size_t)cast ensures that the addition and subsequent division are performed as unsigned operations, avoiding difficulties from signed overflow. (See issue 13496.) */ mid = ((size_t)lo + hi) / 2; - litem = PySequence_GetItem(list, mid); - if (litem == NULL) - return -1; + assert(mid >= 0); + // PySequence_GetItem, but we already checked the types. + litem = sq_item(list, mid); + assert((PyErr_Occurred() == NULL) ^ (litem == NULL)); + if (litem == NULL) { + goto error; + } if (key != Py_None) { PyObject *newitem = PyObject_CallOneArg(key, litem); if (newitem == NULL) { - Py_DECREF(litem); - return -1; + goto error; } Py_SETREF(litem, newitem); } - res = PyObject_RichCompareBool(litem, item, Py_LT); + /* if key(list[mid]) < item: + * lo = mid + 1 + * else: + * hi = mid + */ + if (compare != NULL && Py_IS_TYPE(litem, tp)) { + // A fast path for comparing objects of the same type + PyObject *res_obj = compare(litem, item, Py_LT); + if (res_obj == Py_True) { + Py_DECREF(res_obj); + Py_DECREF(litem); + lo = mid + 1; + continue; + } + if (res_obj == Py_False) { + Py_DECREF(res_obj); + Py_DECREF(litem); + hi = mid; + continue; + } + if (res_obj == NULL) { + goto error; + } + if (res_obj == Py_NotImplemented) { + Py_DECREF(res_obj); + compare = NULL; + res = PyObject_RichCompareBool(litem, item, Py_LT); + } + else { + res = PyObject_IsTrue(res_obj); + Py_DECREF(res_obj); + } + } + else { + // A default path for comparing arbitrary objects + res = PyObject_RichCompareBool(litem, item, Py_LT); + } + if (res < 0) { + goto error; + } Py_DECREF(litem); - if (res < 0) - return -1; if (res) lo = mid + 1; else hi = mid; } + Py_LeaveRecursiveCall(); return lo; +error: + Py_LeaveRecursiveCall(); + Py_XDECREF(litem); + return -1; } @@ -256,7 +384,7 @@ _bisect_insort_left_impl(PyObject *module, PyObject *a, PyObject *x, index = internal_bisect_left(a, x, lo, hi, key); } else { key_x = PyObject_CallOneArg(key, x); - if (x == NULL) { + if (key_x == NULL) { return NULL; } index = internal_bisect_left(a, key_x, lo, hi, key); diff --git a/Modules/_blake2/clinic/blake2b_impl.c.h b/Modules/_blake2/clinic/blake2b_impl.c.h index 4e74e0885cf238..99b0f098cc2b27 100644 --- a/Modules/_blake2/clinic/blake2b_impl.c.h +++ b/Modules/_blake2/clinic/blake2b_impl.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(py_blake2b_new__doc__, "blake2b(data=b\'\', /, *, digest_size=_blake2.blake2b.MAX_DIGEST_SIZE,\n" " key=b\'\', salt=b\'\', person=b\'\', fanout=1, depth=1, leaf_size=0,\n" @@ -22,8 +28,31 @@ static PyObject * py_blake2b_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 12 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(digest_size), &_Py_ID(key), &_Py_ID(salt), &_Py_ID(person), &_Py_ID(fanout), &_Py_ID(depth), &_Py_ID(leaf_size), &_Py_ID(node_offset), &_Py_ID(node_depth), &_Py_ID(inner_size), &_Py_ID(last_node), &_Py_ID(usedforsecurity), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "digest_size", "key", "salt", "person", "fanout", "depth", "leaf_size", "node_offset", "node_depth", "inner_size", "last_node", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "blake2b", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "blake2b", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[13]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -247,4 +276,4 @@ _blake2_blake2b_hexdigest(BLAKE2bObject *self, PyObject *Py_UNUSED(ignored)) { return _blake2_blake2b_hexdigest_impl(self); } -/*[clinic end generated code: output=10eb47aba77f192d input=a9049054013a1b77]*/ +/*[clinic end generated code: output=996b4fe396824797 input=a9049054013a1b77]*/ diff --git a/Modules/_blake2/clinic/blake2s_impl.c.h b/Modules/_blake2/clinic/blake2s_impl.c.h index 0f0d9835fbfe24..9b821fbcd62cdb 100644 --- a/Modules/_blake2/clinic/blake2s_impl.c.h +++ b/Modules/_blake2/clinic/blake2s_impl.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(py_blake2s_new__doc__, "blake2s(data=b\'\', /, *, digest_size=_blake2.blake2s.MAX_DIGEST_SIZE,\n" " key=b\'\', salt=b\'\', person=b\'\', fanout=1, depth=1, leaf_size=0,\n" @@ -22,8 +28,31 @@ static PyObject * py_blake2s_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 12 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(digest_size), &_Py_ID(key), &_Py_ID(salt), &_Py_ID(person), &_Py_ID(fanout), &_Py_ID(depth), &_Py_ID(leaf_size), &_Py_ID(node_offset), &_Py_ID(node_depth), &_Py_ID(inner_size), &_Py_ID(last_node), &_Py_ID(usedforsecurity), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "digest_size", "key", "salt", "person", "fanout", "depth", "leaf_size", "node_offset", "node_depth", "inner_size", "last_node", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "blake2s", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "blake2s", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[13]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -247,4 +276,4 @@ _blake2_blake2s_hexdigest(BLAKE2sObject *self, PyObject *Py_UNUSED(ignored)) { return _blake2_blake2s_hexdigest_impl(self); } -/*[clinic end generated code: output=f7ee8092ed67e9c7 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=bd0fb7639e450618 input=a9049054013a1b77]*/ diff --git a/Modules/_bz2module.c b/Modules/_bz2module.c index 798e9efc628f05..9304c13fbed5fc 100644 --- a/Modules/_bz2module.c +++ b/Modules/_bz2module.c @@ -81,19 +81,6 @@ OutputBuffer_OnError(_BlocksOutputBuffer *buffer) #define RELEASE_LOCK(obj) PyThread_release_lock((obj)->lock) -typedef struct { - PyTypeObject *bz2_compressor_type; - PyTypeObject *bz2_decompressor_type; -} _bz2_state; - -static inline _bz2_state* -get_bz2_state(PyObject *module) -{ - void *state = PyModule_GetState(module); - assert(state != NULL); - return (_bz2_state *)state; -} - typedef struct { PyObject_HEAD bz_stream bzs; @@ -775,67 +762,40 @@ static PyType_Spec bz2_decompressor_type_spec = { static int _bz2_exec(PyObject *module) { - _bz2_state *state = get_bz2_state(module); - state->bz2_compressor_type = (PyTypeObject *)PyType_FromModuleAndSpec(module, + PyTypeObject *bz2_compressor_type = (PyTypeObject *)PyType_FromModuleAndSpec(module, &bz2_compressor_type_spec, NULL); - if (state->bz2_compressor_type == NULL) { + if (bz2_compressor_type == NULL) { return -1; } - - if (PyModule_AddType(module, state->bz2_compressor_type) < 0) { + int rc = PyModule_AddType(module, bz2_compressor_type); + Py_DECREF(bz2_compressor_type); + if (rc < 0) { return -1; } - state->bz2_decompressor_type = (PyTypeObject *)PyType_FromModuleAndSpec(module, + PyTypeObject *bz2_decompressor_type = (PyTypeObject *)PyType_FromModuleAndSpec(module, &bz2_decompressor_type_spec, NULL); - if (state->bz2_decompressor_type == NULL) { + if (bz2_decompressor_type == NULL) { return -1; } - - if (PyModule_AddType(module, state->bz2_decompressor_type) < 0) { + rc = PyModule_AddType(module, bz2_decompressor_type); + Py_DECREF(bz2_decompressor_type); + if (rc < 0) { return -1; } return 0; } -static int -_bz2_traverse(PyObject *module, visitproc visit, void *arg) -{ - _bz2_state *state = get_bz2_state(module); - Py_VISIT(state->bz2_compressor_type); - Py_VISIT(state->bz2_decompressor_type); - return 0; -} - -static int -_bz2_clear(PyObject *module) -{ - _bz2_state *state = get_bz2_state(module); - Py_CLEAR(state->bz2_compressor_type); - Py_CLEAR(state->bz2_decompressor_type); - return 0; -} - -static void -_bz2_free(void *module) -{ - _bz2_clear((PyObject *)module); -} - static struct PyModuleDef_Slot _bz2_slots[] = { {Py_mod_exec, _bz2_exec}, {0, NULL} }; static struct PyModuleDef _bz2module = { - PyModuleDef_HEAD_INIT, + .m_base = PyModuleDef_HEAD_INIT, .m_name = "_bz2", - .m_size = sizeof(_bz2_state), .m_slots = _bz2_slots, - .m_traverse = _bz2_traverse, - .m_clear = _bz2_clear, - .m_free = _bz2_free, }; PyMODINIT_FUNC diff --git a/Modules/_codecsmodule.c b/Modules/_codecsmodule.c index 50afc097b35026..8a0df4266e8354 100644 --- a/Modules/_codecsmodule.c +++ b/Modules/_codecsmodule.c @@ -42,6 +42,7 @@ module _codecs [clinic start generated code]*/ /*[clinic end generated code: output=da39a3ee5e6b4b0d input=e1390e3da3cb9deb]*/ +#include "pycore_runtime.h" #include "clinic/_codecsmodule.c.h" /* --- Registry ----------------------------------------------------------- */ diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c index 2c629d76beb3bd..a3c7c8c471e584 100644 --- a/Modules/_ctypes/_ctypes.c +++ b/Modules/_ctypes/_ctypes.c @@ -5784,6 +5784,7 @@ _ctypes_add_objects(PyObject *mod) MOD_ADD("RTLD_GLOBAL", PyLong_FromLong(RTLD_GLOBAL)); MOD_ADD("CTYPES_MAX_ARGCOUNT", PyLong_FromLong(CTYPES_MAX_ARGCOUNT)); MOD_ADD("ArgumentError", Py_NewRef(PyExc_ArgError)); + MOD_ADD("SIZEOF_TIME_T", PyLong_FromSsize_t(SIZEOF_TIME_T)); return 0; #undef MOD_ADD } diff --git a/Modules/_ctypes/callbacks.c b/Modules/_ctypes/callbacks.c index e1e0225f67b341..2a668c0ca0cc97 100644 --- a/Modules/_ctypes/callbacks.c +++ b/Modules/_ctypes/callbacks.c @@ -10,7 +10,6 @@ #endif #include "pycore_call.h" // _PyObject_CallNoArgs() -#include "frameobject.h" #include <stdbool.h> @@ -472,24 +471,17 @@ static void LoadPython(void) long Call_GetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv) { - PyObject *mod, *func, *result; + PyObject *func, *result; long retval; static PyObject *context; if (context == NULL) context = PyUnicode_InternFromString("_ctypes.DllGetClassObject"); - mod = PyImport_ImportModule("ctypes"); - if (!mod) { - PyErr_WriteUnraisable(context ? context : Py_None); - /* There has been a warning before about this already */ - return E_FAIL; - } - - func = PyObject_GetAttrString(mod, "DllGetClassObject"); - Py_DECREF(mod); + func = _PyImport_GetModuleAttrString("ctypes", "DllGetClassObject"); if (!func) { PyErr_WriteUnraisable(context ? context : Py_None); + /* There has been a warning before about this already */ return E_FAIL; } diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c index 3fab9ad0c1e7bd..fa1dfac6c7d946 100644 --- a/Modules/_ctypes/callproc.c +++ b/Modules/_ctypes/callproc.c @@ -54,6 +54,9 @@ */ +#ifndef Py_BUILD_CORE_BUILTIN +# define Py_BUILD_CORE_MODULE 1 +#endif #define NEEDS_PY_IDENTIFIER #include "Python.h" diff --git a/Modules/_ctypes/cfield.c b/Modules/_ctypes/cfield.c index c7234fbb18a0fa..13ed8b7eda6555 100644 --- a/Modules/_ctypes/cfield.c +++ b/Modules/_ctypes/cfield.c @@ -279,6 +279,7 @@ PyCField_clear(CFieldObject *self) static void PyCField_dealloc(PyObject *self) { + PyObject_GC_UnTrack(self); PyCField_clear((CFieldObject *)self); Py_TYPE(self)->tp_free((PyObject *)self); } diff --git a/Modules/_ctypes/ctypes.h b/Modules/_ctypes/ctypes.h index da1941caf3927d..88eb9f59922a04 100644 --- a/Modules/_ctypes/ctypes.h +++ b/Modules/_ctypes/ctypes.h @@ -19,7 +19,11 @@ * to avoid allocating a massive buffer on the stack. */ #ifndef CTYPES_MAX_ARGCOUNT - #define CTYPES_MAX_ARGCOUNT 1024 + #ifdef __EMSCRIPTEN__ + #define CTYPES_MAX_ARGCOUNT 1000 + #else + #define CTYPES_MAX_ARGCOUNT 1024 + #endif #endif typedef struct tagPyCArgObject PyCArgObject; diff --git a/Modules/_ctypes/malloc_closure.c b/Modules/_ctypes/malloc_closure.c index 38edc90e707639..d47153f1d7f3e8 100644 --- a/Modules/_ctypes/malloc_closure.c +++ b/Modules/_ctypes/malloc_closure.c @@ -1,3 +1,6 @@ +#ifndef Py_BUILD_CORE_BUILTIN +# define Py_BUILD_CORE_MODULE 1 +#endif #include <Python.h> #include <ffi.h> #ifdef MS_WIN32 diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c index 7e2699e1b5c5bb..c10b2b302c6024 100644 --- a/Modules/_cursesmodule.c +++ b/Modules/_cursesmodule.c @@ -383,6 +383,7 @@ PyCurses_ConvertToString(PyCursesWindowObject *win, PyObject *obj, return 0; /* check for embedded null bytes */ if (PyBytes_AsStringAndSize(*bytes, &str, NULL) < 0) { + Py_CLEAR(*bytes); return 0; } return 1; diff --git a/Modules/_datetimemodule.c b/Modules/_datetimemodule.c index 06dff8fdd9eed9..d86418af0dc1a8 100644 --- a/Modules/_datetimemodule.c +++ b/Modules/_datetimemodule.c @@ -1,5 +1,5 @@ /* C implementation for the date/time type documented at - * http://www.zope.org/Members/fdrake/DateTimeWiki/FrontPage + * https://www.zope.dev/Members/fdrake/DateTimeWiki/FrontPage */ /* bpo-35081: Defining this prevents including the C API capsule; @@ -1506,6 +1506,27 @@ format_utcoffset(char *buf, size_t buflen, const char *sep, return 0; } +static PyObject * +make_somezreplacement(PyObject *object, char *sep, PyObject *tzinfoarg) +{ + char buf[100]; + PyObject *tzinfo = get_tzinfo_member(object); + + if (tzinfo == Py_None || tzinfo == NULL) { + return PyBytes_FromStringAndSize(NULL, 0); + } + + assert(tzinfoarg != NULL); + if (format_utcoffset(buf, + sizeof(buf), + sep, + tzinfo, + tzinfoarg) < 0) + return NULL; + + return PyBytes_FromStringAndSize(buf, strlen(buf)); +} + static PyObject * make_Zreplacement(PyObject *object, PyObject *tzinfoarg) { @@ -1566,7 +1587,7 @@ make_freplacement(PyObject *object) /* I sure don't want to reproduce the strftime code from the time module, * so this imports the module and calls it. All the hair is due to - * giving special meanings to the %z, %Z and %f format codes via a + * giving special meanings to the %z, %:z, %Z and %f format codes via a * preprocessing step on the format string. * tzinfoarg is the argument to pass to the object's tzinfo method, if * needed. @@ -1578,6 +1599,7 @@ wrap_strftime(PyObject *object, PyObject *format, PyObject *timetuple, PyObject *result = NULL; /* guilty until proved innocent */ PyObject *zreplacement = NULL; /* py string, replacement for %z */ + PyObject *colonzreplacement = NULL; /* py string, replacement for %:z */ PyObject *Zreplacement = NULL; /* py string, replacement for %Z */ PyObject *freplacement = NULL; /* py string, replacement for %f */ @@ -1632,32 +1654,29 @@ wrap_strftime(PyObject *object, PyObject *format, PyObject *timetuple, } /* A % has been seen and ch is the character after it. */ else if (ch == 'z') { + /* %z -> +HHMM */ if (zreplacement == NULL) { - /* format utcoffset */ - char buf[100]; - PyObject *tzinfo = get_tzinfo_member(object); - zreplacement = PyBytes_FromStringAndSize("", 0); - if (zreplacement == NULL) goto Done; - if (tzinfo != Py_None && tzinfo != NULL) { - assert(tzinfoarg != NULL); - if (format_utcoffset(buf, - sizeof(buf), - "", - tzinfo, - tzinfoarg) < 0) - goto Done; - Py_DECREF(zreplacement); - zreplacement = - PyBytes_FromStringAndSize(buf, - strlen(buf)); - if (zreplacement == NULL) - goto Done; - } + zreplacement = make_somezreplacement(object, "", tzinfoarg); + if (zreplacement == NULL) + goto Done; } assert(zreplacement != NULL); + assert(PyBytes_Check(zreplacement)); ptoappend = PyBytes_AS_STRING(zreplacement); ntoappend = PyBytes_GET_SIZE(zreplacement); } + else if (ch == ':' && *pin == 'z' && pin++) { + /* %:z -> +HH:MM */ + if (colonzreplacement == NULL) { + colonzreplacement = make_somezreplacement(object, ":", tzinfoarg); + if (colonzreplacement == NULL) + goto Done; + } + assert(colonzreplacement != NULL); + assert(PyBytes_Check(colonzreplacement)); + ptoappend = PyBytes_AS_STRING(colonzreplacement); + ntoappend = PyBytes_GET_SIZE(colonzreplacement); + } else if (ch == 'Z') { /* format tzname */ if (Zreplacement == NULL) { @@ -1686,7 +1705,7 @@ wrap_strftime(PyObject *object, PyObject *format, PyObject *timetuple, ntoappend = PyBytes_GET_SIZE(freplacement); } else { - /* percent followed by neither z nor Z */ + /* percent followed by something else */ ptoappend = pin - 2; ntoappend = 2; } @@ -1718,21 +1737,22 @@ wrap_strftime(PyObject *object, PyObject *format, PyObject *timetuple, goto Done; { PyObject *format; - PyObject *time = PyImport_ImportModule("time"); + PyObject *strftime = _PyImport_GetModuleAttrString("time", "strftime"); - if (time == NULL) + if (strftime == NULL) goto Done; format = PyUnicode_FromString(PyBytes_AS_STRING(newfmt)); if (format != NULL) { - result = _PyObject_CallMethodIdObjArgs(time, &PyId_strftime, + result = PyObject_CallFunctionObjArgs(strftime, format, timetuple, NULL); Py_DECREF(format); } - Py_DECREF(time); + Py_DECREF(strftime); } Done: Py_XDECREF(freplacement); Py_XDECREF(zreplacement); + Py_XDECREF(colonzreplacement); Py_XDECREF(Zreplacement); Py_XDECREF(newfmt); return result; @@ -1748,12 +1768,10 @@ static PyObject * time_time(void) { PyObject *result = NULL; - PyObject *time = PyImport_ImportModule("time"); + PyObject *time = _PyImport_GetModuleAttrString("time", "time"); if (time != NULL) { - _Py_IDENTIFIER(time); - - result = _PyObject_CallMethodIdNoArgs(time, &PyId_time); + result = PyObject_CallNoArgs(time); Py_DECREF(time); } return result; @@ -1765,31 +1783,21 @@ time_time(void) static PyObject * build_struct_time(int y, int m, int d, int hh, int mm, int ss, int dstflag) { - PyObject *time; + PyObject *struct_time; PyObject *result; - _Py_IDENTIFIER(struct_time); - PyObject *args; - - time = PyImport_ImportModule("time"); - if (time == NULL) { + struct_time = _PyImport_GetModuleAttrString("time", "struct_time"); + if (struct_time == NULL) { return NULL; } - args = Py_BuildValue("iiiiiiiii", + result = PyObject_CallFunction(struct_time, "((iiiiiiiii))", y, m, d, hh, mm, ss, weekday(y, m, d), days_before_month(y, m) + d, dstflag); - if (args == NULL) { - Py_DECREF(time); - return NULL; - } - - result = _PyObject_CallMethodIdOneArg(time, &PyId_struct_time, args); - Py_DECREF(time); - Py_DECREF(args); + Py_DECREF(struct_time); return result; } diff --git a/Modules/_dbmmodule.c b/Modules/_dbmmodule.c index 5913b034790e9c..9c83e380afd0f3 100644 --- a/Modules/_dbmmodule.c +++ b/Modules/_dbmmodule.c @@ -130,6 +130,37 @@ dbm_length(dbmobject *dp) return dp->di_size; } +static int +dbm_bool(dbmobject *dp) +{ + _dbm_state *state = PyType_GetModuleState(Py_TYPE(dp)); + assert(state != NULL); + + if (dp->di_dbm == NULL) { + PyErr_SetString(state->dbm_error, "DBM object has already been closed"); + return -1; + } + + if (dp->di_size > 0) { + /* Known non-zero size. */ + return 1; + } + if (dp->di_size == 0) { + /* Known zero size. */ + return 0; + } + + /* Unknown size. Ensure DBM object has an entry. */ + datum key = dbm_firstkey(dp->di_dbm); + if (key.dptr == NULL) { + /* Empty. Cache this fact. */ + dp->di_size = 0; + return 0; + } + /* Non-empty. Don't cache the length since we don't know. */ + return 1; +} + static PyObject * dbm_subscript(dbmobject *dp, PyObject *key) { @@ -416,6 +447,7 @@ static PyType_Slot dbmtype_spec_slots[] = { {Py_mp_length, dbm_length}, {Py_mp_subscript, dbm_subscript}, {Py_mp_ass_subscript, dbm_ass_sub}, + {Py_nb_bool, dbm_bool}, {0, 0} }; diff --git a/Modules/_elementtree.c b/Modules/_elementtree.c index 453e57a94f2c6b..87f18d6e671a63 100644 --- a/Modules/_elementtree.c +++ b/Modules/_elementtree.c @@ -4370,7 +4370,7 @@ static struct PyModuleDef elementtreemodule = { PyMODINIT_FUNC PyInit__elementtree(void) { - PyObject *m, *temp; + PyObject *m; elementtreestate *st; m = PyState_FindModule(&elementtreemodule); @@ -4394,11 +4394,7 @@ PyInit__elementtree(void) return NULL; st = get_elementtree_state(m); - if (!(temp = PyImport_ImportModule("copy"))) - return NULL; - st->deepcopy_obj = PyObject_GetAttrString(temp, "deepcopy"); - Py_XDECREF(temp); - + st->deepcopy_obj = _PyImport_GetModuleAttrString("copy", "deepcopy"); if (st->deepcopy_obj == NULL) { return NULL; } diff --git a/Modules/_functoolsmodule.c b/Modules/_functoolsmodule.c index c6d6ca934e9c47..3abb7fd710aeb4 100644 --- a/Modules/_functoolsmodule.c +++ b/Modules/_functoolsmodule.c @@ -1471,9 +1471,8 @@ _functools_exec(PyObject *module) if (state->keyobject_type == NULL) { return -1; } - if (PyModule_AddType(module, state->keyobject_type) < 0) { - return -1; - } + // keyobject_type is used only internally. + // So we don't expose it in module namespace. state->lru_list_elem_type = (PyTypeObject *)PyType_FromModuleAndSpec( module, &lru_list_elem_type_spec, NULL); diff --git a/Modules/_gdbmmodule.c b/Modules/_gdbmmodule.c index e6440fa9cd364d..a96d32306d5550 100644 --- a/Modules/_gdbmmodule.c +++ b/Modules/_gdbmmodule.c @@ -162,6 +162,35 @@ gdbm_length(gdbmobject *dp) return dp->di_size; } +static int +gdbm_bool(gdbmobject *dp) +{ + _gdbm_state *state = PyType_GetModuleState(Py_TYPE(dp)); + if (dp->di_dbm == NULL) { + PyErr_SetString(state->gdbm_error, "GDBM object has already been closed"); + return -1; + } + if (dp->di_size > 0) { + /* Known non-zero size. */ + return 1; + } + if (dp->di_size == 0) { + /* Known zero size. */ + return 0; + } + /* Unknown size. Ensure DBM object has an entry. */ + datum key = gdbm_firstkey(dp->di_dbm); + if (key.dptr == NULL) { + /* Empty. Cache this fact. */ + dp->di_size = 0; + return 0; + } + + /* Non-empty. Don't cache the length since we don't know. */ + free(key.dptr); + return 1; +} + // Wrapper function for PyArg_Parse(o, "s#", &d.dptr, &d.size). // This function is needed to support PY_SSIZE_T_CLEAN. // Return 1 on success, same to PyArg_Parse(). @@ -569,6 +598,7 @@ static PyType_Slot gdbmtype_spec_slots[] = { {Py_mp_length, gdbm_length}, {Py_mp_subscript, gdbm_subscript}, {Py_mp_ass_subscript, gdbm_ass_sub}, + {Py_nb_bool, gdbm_bool}, {Py_tp_doc, (char*)gdbm_object__doc__}, {0, 0} }; diff --git a/Modules/_hashopenssl.c b/Modules/_hashopenssl.c index 38776edf5f9fdf..82398547f9b372 100644 --- a/Modules/_hashopenssl.c +++ b/Modules/_hashopenssl.c @@ -1998,7 +1998,7 @@ _hashlib_compare_digest_impl(PyObject *module, PyObject *a, PyObject *b) PyUnicode_GET_LENGTH(a), PyUnicode_GET_LENGTH(b)); } - /* fallback to buffer interface for bytes, bytesarray and other */ + /* fallback to buffer interface for bytes, bytearray and other */ else { Py_buffer view_a; Py_buffer view_b; diff --git a/Modules/_io/bufferedio.c b/Modules/_io/bufferedio.c index ac30d1d632bff8..4a4a1992dbbb7a 100644 --- a/Modules/_io/bufferedio.c +++ b/Modules/_io/bufferedio.c @@ -328,7 +328,7 @@ _enter_buffered_busy(buffered *self) : buffered_closed(self))) #define CHECK_CLOSED(self, error_msg) \ - if (IS_CLOSED(self) & (Py_SAFE_DOWNCAST(READAHEAD(self), Py_off_t, Py_ssize_t) == 0)) { \ + if (IS_CLOSED(self) && (Py_SAFE_DOWNCAST(READAHEAD(self), Py_off_t, Py_ssize_t) == 0)) { \ PyErr_SetString(PyExc_ValueError, error_msg); \ return NULL; \ } \ diff --git a/Modules/_io/clinic/_iomodule.c.h b/Modules/_io/clinic/_iomodule.c.h index 0249dd184b1d35..b38738486f6856 100644 --- a/Modules/_io/clinic/_iomodule.c.h +++ b/Modules/_io/clinic/_iomodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_io_open__doc__, "open($module, /, file, mode=\'r\', buffering=-1, encoding=None,\n" " errors=None, newline=None, closefd=True, opener=None)\n" @@ -133,8 +139,31 @@ static PyObject * _io_open(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 8 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(file), &_Py_ID(mode), &_Py_ID(buffering), &_Py_ID(encoding), &_Py_ID(errors), &_Py_ID(newline), &_Py_ID(closefd), &_Py_ID(opener), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"file", "mode", "buffering", "encoding", "errors", "newline", "closefd", "opener", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "open", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "open", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[8]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *file; @@ -333,8 +362,31 @@ static PyObject * _io_open_code(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "open_code", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "open_code", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject *path; @@ -355,4 +407,4 @@ _io_open_code(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec exit: return return_value; } -/*[clinic end generated code: output=c4d7e4ef878985f8 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=1f8001287a423470 input=a9049054013a1b77]*/ diff --git a/Modules/_io/clinic/bufferedio.c.h b/Modules/_io/clinic/bufferedio.c.h index 3700451232c16d..8a8f86b2eea318 100644 --- a/Modules/_io/clinic/bufferedio.c.h +++ b/Modules/_io/clinic/bufferedio.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_io__BufferedIOBase_readinto__doc__, "readinto($self, buffer, /)\n" "--\n" @@ -402,8 +408,31 @@ static int _io_BufferedReader___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(raw), &_Py_ID(buffer_size), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"raw", "buffer_size", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "BufferedReader", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "BufferedReader", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -456,8 +485,31 @@ static int _io_BufferedWriter___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(raw), &_Py_ID(buffer_size), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"raw", "buffer_size", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "BufferedWriter", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "BufferedWriter", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -603,8 +655,31 @@ static int _io_BufferedRandom___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(raw), &_Py_ID(buffer_size), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"raw", "buffer_size", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "BufferedRandom", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "BufferedRandom", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -638,4 +713,4 @@ _io_BufferedRandom___init__(PyObject *self, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=820461c6b0e29e48 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=ca87adcfff6a810b input=a9049054013a1b77]*/ diff --git a/Modules/_io/clinic/bytesio.c.h b/Modules/_io/clinic/bytesio.c.h index 049d3473110f7b..84b58db6c7a702 100644 --- a/Modules/_io/clinic/bytesio.c.h +++ b/Modules/_io/clinic/bytesio.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_io_BytesIO_readable__doc__, "readable($self, /)\n" "--\n" @@ -483,8 +489,31 @@ static int _io_BytesIO___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(initial_bytes), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"initial_bytes", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "BytesIO", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "BytesIO", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -505,4 +534,4 @@ _io_BytesIO___init__(PyObject *self, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=93d9700a6cf395b8 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=a44770efbaeb80dd input=a9049054013a1b77]*/ diff --git a/Modules/_io/clinic/fileio.c.h b/Modules/_io/clinic/fileio.c.h index bb0b36c8502ab7..a925b94fe07531 100644 --- a/Modules/_io/clinic/fileio.c.h +++ b/Modules/_io/clinic/fileio.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_io_FileIO_close__doc__, "close($self, /)\n" "--\n" @@ -49,8 +55,31 @@ static int _io_FileIO___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 4 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(file), &_Py_ID(mode), &_Py_ID(closefd), &_Py_ID(opener), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"file", "mode", "closefd", "opener", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "FileIO", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "FileIO", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[4]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -437,4 +466,4 @@ _io_FileIO_isatty(fileio *self, PyObject *Py_UNUSED(ignored)) #ifndef _IO_FILEIO_TRUNCATE_METHODDEF #define _IO_FILEIO_TRUNCATE_METHODDEF #endif /* !defined(_IO_FILEIO_TRUNCATE_METHODDEF) */ -/*[clinic end generated code: output=fdcf0f9277d44415 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=ff479a26cab0d479 input=a9049054013a1b77]*/ diff --git a/Modules/_io/clinic/iobase.c.h b/Modules/_io/clinic/iobase.c.h index ed3fdc9bb122db..01c035dad2641e 100644 --- a/Modules/_io/clinic/iobase.c.h +++ b/Modules/_io/clinic/iobase.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_io__IOBase_tell__doc__, "tell($self, /)\n" "--\n" @@ -310,4 +316,4 @@ _io__RawIOBase_readall(PyObject *self, PyObject *Py_UNUSED(ignored)) { return _io__RawIOBase_readall_impl(self); } -/*[clinic end generated code: output=0362e134da2d8641 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=b7246a2087eb966b input=a9049054013a1b77]*/ diff --git a/Modules/_io/clinic/stringio.c.h b/Modules/_io/clinic/stringio.c.h index 6758ee05f9104f..d495dd10c16330 100644 --- a/Modules/_io/clinic/stringio.c.h +++ b/Modules/_io/clinic/stringio.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_io_StringIO_getvalue__doc__, "getvalue($self, /)\n" "--\n" @@ -255,8 +261,31 @@ static int _io_StringIO___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(initial_value), &_Py_ID(newline), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"initial_value", "newline", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "StringIO", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "StringIO", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -338,4 +367,4 @@ _io_StringIO_seekable(stringio *self, PyObject *Py_UNUSED(ignored)) { return _io_StringIO_seekable_impl(self); } -/*[clinic end generated code: output=3207dc548c305ad8 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=533f20ae9b773126 input=a9049054013a1b77]*/ diff --git a/Modules/_io/clinic/textio.c.h b/Modules/_io/clinic/textio.c.h index 907785b2beaf9b..038f0a5c209d49 100644 --- a/Modules/_io/clinic/textio.c.h +++ b/Modules/_io/clinic/textio.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_io_IncrementalNewlineDecoder___init____doc__, "IncrementalNewlineDecoder(decoder, translate, errors=\'strict\')\n" "--\n" @@ -24,8 +30,31 @@ static int _io_IncrementalNewlineDecoder___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(decoder), &_Py_ID(translate), &_Py_ID(errors), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"decoder", "translate", "errors", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "IncrementalNewlineDecoder", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "IncrementalNewlineDecoder", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -70,8 +99,31 @@ static PyObject * _io_IncrementalNewlineDecoder_decode(nldecoder_object *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(input), &_Py_ID(final), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"input", "final", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "decode", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "decode", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *input; @@ -182,8 +234,31 @@ static int _io_TextIOWrapper___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 6 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(buffer), &_Py_ID(encoding), &_Py_ID(errors), &_Py_ID(newline), &_Py_ID(line_buffering), &_Py_ID(write_through), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"buffer", "encoding", "errors", "newline", "line_buffering", "write_through", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "TextIOWrapper", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "TextIOWrapper", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[6]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -297,8 +372,31 @@ static PyObject * _io_TextIOWrapper_reconfigure(textio *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 5 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(encoding), &_Py_ID(errors), &_Py_ID(newline), &_Py_ID(line_buffering), &_Py_ID(write_through), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"encoding", "errors", "newline", "line_buffering", "write_through", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "reconfigure", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "reconfigure", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *encoding = Py_None; @@ -671,4 +769,4 @@ _io_TextIOWrapper_close(textio *self, PyObject *Py_UNUSED(ignored)) { return _io_TextIOWrapper_close_impl(self); } -/*[clinic end generated code: output=bb78b568b24759d6 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=aecd376eca3cb148 input=a9049054013a1b77]*/ diff --git a/Modules/_io/clinic/winconsoleio.c.h b/Modules/_io/clinic/winconsoleio.c.h index 75102a3d371564..65820a8f2ea0b3 100644 --- a/Modules/_io/clinic/winconsoleio.c.h +++ b/Modules/_io/clinic/winconsoleio.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + #if defined(MS_WINDOWS) PyDoc_STRVAR(_io__WindowsConsoleIO_close__doc__, @@ -48,8 +54,31 @@ static int _io__WindowsConsoleIO___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 4 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(file), &_Py_ID(mode), &_Py_ID(closefd), &_Py_ID(opener), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"file", "mode", "closefd", "opener", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "_WindowsConsoleIO", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "_WindowsConsoleIO", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[4]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -378,4 +407,4 @@ _io__WindowsConsoleIO_isatty(winconsoleio *self, PyObject *Py_UNUSED(ignored)) #ifndef _IO__WINDOWSCONSOLEIO_ISATTY_METHODDEF #define _IO__WINDOWSCONSOLEIO_ISATTY_METHODDEF #endif /* !defined(_IO__WINDOWSCONSOLEIO_ISATTY_METHODDEF) */ -/*[clinic end generated code: output=2d8648fab31ec60e input=a9049054013a1b77]*/ +/*[clinic end generated code: output=08ae244e9a44da55 input=a9049054013a1b77]*/ diff --git a/Modules/_io/stringio.c b/Modules/_io/stringio.c index 3fe02d35924f80..0f31c172499ac3 100644 --- a/Modules/_io/stringio.c +++ b/Modules/_io/stringio.c @@ -1,7 +1,6 @@ #define PY_SSIZE_T_CLEAN #include "Python.h" #include <stddef.h> // offsetof() -#include "pycore_accu.h" #include "pycore_object.h" #include "_iomodule.h" @@ -27,12 +26,12 @@ typedef struct { /* The stringio object can be in two states: accumulating or realized. In accumulating state, the internal buffer contains nothing and - the contents are given by the embedded _PyAccu structure. + the contents are given by the embedded _PyUnicodeWriter structure. In realized state, the internal buffer is meaningful and the - _PyAccu is destroyed. + _PyUnicodeWriter is destroyed. */ int state; - _PyAccu accu; + _PyUnicodeWriter writer; char ok; /* initialized? */ char closed; @@ -126,12 +125,14 @@ resize_buffer(stringio *self, size_t size) static PyObject * make_intermediate(stringio *self) { - PyObject *intermediate = _PyAccu_Finish(&self->accu); + PyObject *intermediate = _PyUnicodeWriter_Finish(&self->writer); self->state = STATE_REALIZED; if (intermediate == NULL) return NULL; - if (_PyAccu_Init(&self->accu) || - _PyAccu_Accumulate(&self->accu, intermediate)) { + + _PyUnicodeWriter_Init(&self->writer); + self->writer.overallocate = 1; + if (_PyUnicodeWriter_WriteStr(&self->writer, intermediate)) { Py_DECREF(intermediate); return NULL; } @@ -150,7 +151,7 @@ realize(stringio *self) assert(self->state == STATE_ACCUMULATING); self->state = STATE_REALIZED; - intermediate = _PyAccu_Finish(&self->accu); + intermediate = _PyUnicodeWriter_Finish(&self->writer); if (intermediate == NULL) return -1; @@ -218,7 +219,7 @@ write_str(stringio *self, PyObject *obj) if (self->state == STATE_ACCUMULATING) { if (self->string_size == self->pos) { - if (_PyAccu_Accumulate(&self->accu, decoded)) + if (_PyUnicodeWriter_WriteStr(&self->writer, decoded)) goto fail; goto success; } @@ -572,7 +573,7 @@ _io_StringIO_close_impl(stringio *self) /* Free up some memory */ if (resize_buffer(self, 0) < 0) return NULL; - _PyAccu_Destroy(&self->accu); + _PyUnicodeWriter_Dealloc(&self->writer); Py_CLEAR(self->readnl); Py_CLEAR(self->writenl); Py_CLEAR(self->decoder); @@ -602,7 +603,7 @@ stringio_dealloc(stringio *self) PyMem_Free(self->buf); self->buf = NULL; } - _PyAccu_Destroy(&self->accu); + _PyUnicodeWriter_Dealloc(&self->writer); Py_CLEAR(self->readnl); Py_CLEAR(self->writenl); Py_CLEAR(self->decoder); @@ -687,7 +688,7 @@ _io_StringIO___init___impl(stringio *self, PyObject *value, self->ok = 0; - _PyAccu_Destroy(&self->accu); + _PyUnicodeWriter_Dealloc(&self->writer); Py_CLEAR(self->readnl); Py_CLEAR(self->writenl); Py_CLEAR(self->decoder); @@ -742,8 +743,8 @@ _io_StringIO___init___impl(stringio *self, PyObject *value, /* Empty stringio object, we can start by accumulating */ if (resize_buffer(self, 0) < 0) return -1; - if (_PyAccu_Init(&self->accu)) - return -1; + _PyUnicodeWriter_Init(&self->writer); + self->writer.overallocate = 1; self->state = STATE_ACCUMULATING; } self->pos = 0; diff --git a/Modules/_io/textio.c b/Modules/_io/textio.c index 3cbaca3ef46069..3369694653fd96 100644 --- a/Modules/_io/textio.c +++ b/Modules/_io/textio.c @@ -19,9 +19,9 @@ /*[clinic input] module _io class _io.IncrementalNewlineDecoder "nldecoder_object *" "&PyIncrementalNewlineDecoder_Type" -class _io.TextIOWrapper "textio *" "&TextIOWrapper_TYpe" +class _io.TextIOWrapper "textio *" "&TextIOWrapper_Type" [clinic start generated code]*/ -/*[clinic end generated code: output=da39a3ee5e6b4b0d input=2097a4fc85670c26]*/ +/*[clinic end generated code: output=da39a3ee5e6b4b0d input=ed072384f8aada2c]*/ /* TextIOBase */ @@ -1247,6 +1247,7 @@ textiowrapper_change_encoding(textio *self, PyObject *encoding, if (errors == Py_None) { errors = self->errors; } + Py_INCREF(encoding); } else { if (_PyUnicode_EqualToASCIIString(encoding, "locale")) { @@ -1254,6 +1255,8 @@ textiowrapper_change_encoding(textio *self, PyObject *encoding, if (encoding == NULL) { return -1; } + } else { + Py_INCREF(encoding); } if (errors == Py_None) { errors = &_Py_ID(strict); @@ -1262,6 +1265,7 @@ textiowrapper_change_encoding(textio *self, PyObject *encoding, const char *c_errors = PyUnicode_AsUTF8(errors); if (c_errors == NULL) { + Py_DECREF(encoding); return -1; } @@ -1269,16 +1273,17 @@ textiowrapper_change_encoding(textio *self, PyObject *encoding, PyObject *codec_info = _PyCodec_LookupTextEncoding( PyUnicode_AsUTF8(encoding), "codecs.open()"); if (codec_info == NULL) { + Py_DECREF(encoding); return -1; } if (_textiowrapper_set_decoder(self, codec_info, c_errors) != 0 || _textiowrapper_set_encoder(self, codec_info, c_errors) != 0) { Py_DECREF(codec_info); + Py_DECREF(encoding); return -1; } Py_DECREF(codec_info); - Py_INCREF(encoding); Py_INCREF(errors); Py_SETREF(self->encoding, encoding); Py_SETREF(self->errors, errors); @@ -2239,7 +2244,7 @@ _textiowrapper_readline(textio *self, Py_ssize_t limit) Py_CLEAR(chunks); } if (line == NULL) { - line = &_Py_STR(empty); + line = Py_NewRef(&_Py_STR(empty)); } return line; diff --git a/Modules/_json.c b/Modules/_json.c index 9464b9f498ede5..1c39b46937d792 100644 --- a/Modules/_json.c +++ b/Modules/_json.c @@ -12,20 +12,7 @@ #include "Python.h" #include "pycore_ceval.h" // _Py_EnterRecursiveCall() #include "structmember.h" // PyMemberDef -#include "pycore_accu.h" - -typedef struct { - PyObject *PyScannerType; - PyObject *PyEncoderType; -} _jsonmodulestate; - -static inline _jsonmodulestate* -get_json_state(PyObject *module) -{ - void *state = PyModule_GetState(module); - assert(state != NULL); - return (_jsonmodulestate *)state; -} +#include <stdbool.h> // bool typedef struct _PyScannerObject { @@ -98,11 +85,11 @@ encoder_dealloc(PyObject *self); static int encoder_clear(PyEncoderObject *self); static int -encoder_listencode_list(PyEncoderObject *s, _PyAccu *acc, PyObject *seq, Py_ssize_t indent_level); +encoder_listencode_list(PyEncoderObject *s, _PyUnicodeWriter *writer, PyObject *seq, Py_ssize_t indent_level); static int -encoder_listencode_obj(PyEncoderObject *s, _PyAccu *acc, PyObject *obj, Py_ssize_t indent_level); +encoder_listencode_obj(PyEncoderObject *s, _PyUnicodeWriter *writer, PyObject *obj, Py_ssize_t indent_level); static int -encoder_listencode_dict(PyEncoderObject *s, _PyAccu *acc, PyObject *dct, Py_ssize_t indent_level); +encoder_listencode_dict(PyEncoderObject *s, _PyUnicodeWriter *writer, PyObject *dct, Py_ssize_t indent_level); static PyObject * _encoded_const(PyObject *obj); static void @@ -1293,19 +1280,29 @@ encoder_call(PyEncoderObject *self, PyObject *args, PyObject *kwds) { /* Python callable interface to encode_listencode_obj */ static char *kwlist[] = {"obj", "_current_indent_level", NULL}; - PyObject *obj; + PyObject *obj, *result; Py_ssize_t indent_level; - _PyAccu acc; + _PyUnicodeWriter writer; + if (!PyArg_ParseTupleAndKeywords(args, kwds, "On:_iterencode", kwlist, &obj, &indent_level)) return NULL; - if (_PyAccu_Init(&acc)) + + _PyUnicodeWriter_Init(&writer); + writer.overallocate = 1; + + if (encoder_listencode_obj(self, &writer, obj, indent_level)) { + _PyUnicodeWriter_Dealloc(&writer); return NULL; - if (encoder_listencode_obj(self, &acc, obj, indent_level)) { - _PyAccu_Destroy(&acc); + } + + result = PyTuple_New(1); + if (result == NULL || + PyTuple_SetItem(result, 0, _PyUnicodeWriter_Finish(&writer)) < 0) { + Py_XDECREF(result); return NULL; } - return _PyAccu_FinishAsList(&acc); + return result; } static PyObject * @@ -1389,58 +1386,60 @@ encoder_encode_string(PyEncoderObject *s, PyObject *obj) } static int -_steal_accumulate(_PyAccu *acc, PyObject *stolen) +_steal_accumulate(_PyUnicodeWriter *writer, PyObject *stolen) { /* Append stolen and then decrement its reference count */ - int rval = _PyAccu_Accumulate(acc, stolen); + int rval = _PyUnicodeWriter_WriteStr(writer, stolen); Py_DECREF(stolen); return rval; } static int -encoder_listencode_obj(PyEncoderObject *s, _PyAccu *acc, +encoder_listencode_obj(PyEncoderObject *s, _PyUnicodeWriter *writer, PyObject *obj, Py_ssize_t indent_level) { /* Encode Python object obj to a JSON term */ PyObject *newobj; int rv; - if (obj == Py_None || obj == Py_True || obj == Py_False) { - PyObject *cstr = _encoded_const(obj); - if (cstr == NULL) - return -1; - return _steal_accumulate(acc, cstr); + if (obj == Py_None) { + return _PyUnicodeWriter_WriteASCIIString(writer, "null", 4); + } + else if (obj == Py_True) { + return _PyUnicodeWriter_WriteASCIIString(writer, "true", 4); } - else if (PyUnicode_Check(obj)) - { + else if (obj == Py_False) { + return _PyUnicodeWriter_WriteASCIIString(writer, "false", 5); + } + else if (PyUnicode_Check(obj)) { PyObject *encoded = encoder_encode_string(s, obj); if (encoded == NULL) return -1; - return _steal_accumulate(acc, encoded); + return _steal_accumulate(writer, encoded); } else if (PyLong_Check(obj)) { PyObject *encoded = PyLong_Type.tp_repr(obj); if (encoded == NULL) return -1; - return _steal_accumulate(acc, encoded); + return _steal_accumulate(writer, encoded); } else if (PyFloat_Check(obj)) { PyObject *encoded = encoder_encode_float(s, obj); if (encoded == NULL) return -1; - return _steal_accumulate(acc, encoded); + return _steal_accumulate(writer, encoded); } else if (PyList_Check(obj) || PyTuple_Check(obj)) { if (_Py_EnterRecursiveCall(" while encoding a JSON object")) return -1; - rv = encoder_listencode_list(s, acc, obj, indent_level); + rv = encoder_listencode_list(s, writer, obj, indent_level); _Py_LeaveRecursiveCall(); return rv; } else if (PyDict_Check(obj)) { if (_Py_EnterRecursiveCall(" while encoding a JSON object")) return -1; - rv = encoder_listencode_dict(s, acc, obj, indent_level); + rv = encoder_listencode_dict(s, writer, obj, indent_level); _Py_LeaveRecursiveCall(); return rv; } @@ -1474,7 +1473,7 @@ encoder_listencode_obj(PyEncoderObject *s, _PyAccu *acc, Py_XDECREF(ident); return -1; } - rv = encoder_listencode_obj(s, acc, newobj, indent_level); + rv = encoder_listencode_obj(s, writer, newobj, indent_level); _Py_LeaveRecursiveCall(); Py_DECREF(newobj); @@ -1494,28 +1493,81 @@ encoder_listencode_obj(PyEncoderObject *s, _PyAccu *acc, } static int -encoder_listencode_dict(PyEncoderObject *s, _PyAccu *acc, +encoder_encode_key_value(PyEncoderObject *s, _PyUnicodeWriter *writer, bool *first, + PyObject *key, PyObject *value, Py_ssize_t indent_level) +{ + PyObject *keystr = NULL; + PyObject *encoded; + + if (PyUnicode_Check(key)) { + Py_INCREF(key); + keystr = key; + } + else if (PyFloat_Check(key)) { + keystr = encoder_encode_float(s, key); + } + else if (key == Py_True || key == Py_False || key == Py_None) { + /* This must come before the PyLong_Check because + True and False are also 1 and 0.*/ + keystr = _encoded_const(key); + } + else if (PyLong_Check(key)) { + keystr = PyLong_Type.tp_repr(key); + } + else if (s->skipkeys) { + return 0; + } + else { + PyErr_Format(PyExc_TypeError, + "keys must be str, int, float, bool or None, " + "not %.100s", Py_TYPE(key)->tp_name); + return -1; + } + + if (keystr == NULL) { + return -1; + } + + if (*first) { + *first = false; + } + else { + if (_PyUnicodeWriter_WriteStr(writer, s->item_separator) < 0) { + Py_DECREF(keystr); + return -1; + } + } + + encoded = encoder_encode_string(s, keystr); + Py_DECREF(keystr); + if (encoded == NULL) { + return -1; + } + + if (_steal_accumulate(writer, encoded) < 0) { + return -1; + } + if (_PyUnicodeWriter_WriteStr(writer, s->key_separator) < 0) { + return -1; + } + if (encoder_listencode_obj(s, writer, value, indent_level) < 0) { + return -1; + } + return 0; +} + +static int +encoder_listencode_dict(PyEncoderObject *s, _PyUnicodeWriter *writer, PyObject *dct, Py_ssize_t indent_level) { /* Encode Python dict dct a JSON term */ - _Py_static_string(PyId_open_dict, "{"); - _Py_static_string(PyId_close_dict, "}"); - _Py_static_string(PyId_empty_dict, "{}"); - PyObject *open_dict = _PyUnicode_FromId(&PyId_open_dict); // borrowed ref - PyObject *close_dict = _PyUnicode_FromId(&PyId_close_dict); // borrowed ref - PyObject *empty_dict = _PyUnicode_FromId(&PyId_empty_dict); // borrowed ref - PyObject *kstr = NULL; PyObject *ident = NULL; - PyObject *it = NULL; - PyObject *items; - PyObject *item = NULL; - Py_ssize_t idx; + PyObject *items = NULL; + PyObject *key, *value; + bool first = true; - if (open_dict == NULL || close_dict == NULL || empty_dict == NULL) { - return -1; - } if (PyDict_GET_SIZE(dct) == 0) /* Fast path */ - return _PyAccu_Accumulate(acc, empty_dict); + return _PyUnicodeWriter_WriteASCIIString(writer, "{}", 2); if (s->markers != Py_None) { int has_key; @@ -1533,7 +1585,7 @@ encoder_listencode_dict(PyEncoderObject *s, _PyAccu *acc, } } - if (_PyAccu_Accumulate(acc, open_dict)) + if (_PyUnicodeWriter_WriteChar(writer, '{')) goto bail; if (s->indent != Py_None) { @@ -1546,84 +1598,34 @@ encoder_listencode_dict(PyEncoderObject *s, _PyAccu *acc, */ } - items = PyMapping_Items(dct); - if (items == NULL) - goto bail; - if (s->sort_keys && PyList_Sort(items) < 0) { - Py_DECREF(items); - goto bail; - } - it = PyObject_GetIter(items); - Py_DECREF(items); - if (it == NULL) - goto bail; - idx = 0; - while ((item = PyIter_Next(it)) != NULL) { - PyObject *encoded, *key, *value; - if (!PyTuple_Check(item) || PyTuple_GET_SIZE(item) != 2) { - PyErr_SetString(PyExc_ValueError, "items must return 2-tuples"); + if (s->sort_keys) { + + items = PyDict_Items(dct); + if (items == NULL || PyList_Sort(items) < 0) goto bail; - } - key = PyTuple_GET_ITEM(item, 0); - if (PyUnicode_Check(key)) { - Py_INCREF(key); - kstr = key; - } - else if (PyFloat_Check(key)) { - kstr = encoder_encode_float(s, key); - if (kstr == NULL) - goto bail; - } - else if (key == Py_True || key == Py_False || key == Py_None) { - /* This must come before the PyLong_Check because - True and False are also 1 and 0.*/ - kstr = _encoded_const(key); - if (kstr == NULL) - goto bail; - } - else if (PyLong_Check(key)) { - kstr = PyLong_Type.tp_repr(key); - if (kstr == NULL) { + + for (Py_ssize_t i = 0; i < PyList_GET_SIZE(items); i++) { + PyObject *item = PyList_GET_ITEM(items, i); + + if (!PyTuple_Check(item) || PyTuple_GET_SIZE(item) != 2) { + PyErr_SetString(PyExc_ValueError, "items must return 2-tuples"); goto bail; } - } - else if (s->skipkeys) { - Py_DECREF(item); - continue; - } - else { - PyErr_Format(PyExc_TypeError, - "keys must be str, int, float, bool or None, " - "not %.100s", Py_TYPE(key)->tp_name); - goto bail; - } - if (idx) { - if (_PyAccu_Accumulate(acc, s->item_separator)) + key = PyTuple_GET_ITEM(item, 0); + value = PyTuple_GET_ITEM(item, 1); + if (encoder_encode_key_value(s, writer, &first, key, value, indent_level) < 0) goto bail; } + Py_CLEAR(items); - encoded = encoder_encode_string(s, kstr); - Py_CLEAR(kstr); - if (encoded == NULL) - goto bail; - if (_PyAccu_Accumulate(acc, encoded)) { - Py_DECREF(encoded); - goto bail; + } else { + Py_ssize_t pos = 0; + while (PyDict_Next(dct, &pos, &key, &value)) { + if (encoder_encode_key_value(s, writer, &first, key, value, indent_level) < 0) + goto bail; } - Py_DECREF(encoded); - if (_PyAccu_Accumulate(acc, s->key_separator)) - goto bail; - - value = PyTuple_GET_ITEM(item, 1); - if (encoder_listencode_obj(s, acc, value, indent_level)) - goto bail; - idx += 1; - Py_DECREF(item); } - if (PyErr_Occurred()) - goto bail; - Py_CLEAR(it); if (ident != NULL) { if (PyDict_DelItem(s->markers, ident)) @@ -1636,44 +1638,31 @@ encoder_listencode_dict(PyEncoderObject *s, _PyAccu *acc, yield '\n' + (' ' * (_indent * _current_indent_level)) }*/ - if (_PyAccu_Accumulate(acc, close_dict)) + if (_PyUnicodeWriter_WriteChar(writer, '}')) goto bail; return 0; bail: - Py_XDECREF(it); - Py_XDECREF(item); - Py_XDECREF(kstr); + Py_XDECREF(items); Py_XDECREF(ident); return -1; } - static int -encoder_listencode_list(PyEncoderObject *s, _PyAccu *acc, +encoder_listencode_list(PyEncoderObject *s, _PyUnicodeWriter *writer, PyObject *seq, Py_ssize_t indent_level) { - /* Encode Python list seq to a JSON term */ - _Py_static_string(PyId_open_array, "["); - _Py_static_string(PyId_close_array, "]"); - _Py_static_string(PyId_empty_array, "[]"); - PyObject *open_array = _PyUnicode_FromId(&PyId_open_array); // borrowed ref - PyObject *close_array = _PyUnicode_FromId(&PyId_close_array); // borrowed ref - PyObject *empty_array = _PyUnicode_FromId(&PyId_empty_array); // borrowed ref PyObject *ident = NULL; PyObject *s_fast = NULL; Py_ssize_t i; - if (open_array == NULL || close_array == NULL || empty_array == NULL) { - return -1; - } ident = NULL; s_fast = PySequence_Fast(seq, "_iterencode_list needs a sequence"); if (s_fast == NULL) return -1; if (PySequence_Fast_GET_SIZE(s_fast) == 0) { Py_DECREF(s_fast); - return _PyAccu_Accumulate(acc, empty_array); + return _PyUnicodeWriter_WriteASCIIString(writer, "[]", 2); } if (s->markers != Py_None) { @@ -1692,7 +1681,7 @@ encoder_listencode_list(PyEncoderObject *s, _PyAccu *acc, } } - if (_PyAccu_Accumulate(acc, open_array)) + if (_PyUnicodeWriter_WriteChar(writer, '[')) goto bail; if (s->indent != Py_None) { /* TODO: DOES NOT RUN */ @@ -1706,10 +1695,10 @@ encoder_listencode_list(PyEncoderObject *s, _PyAccu *acc, for (i = 0; i < PySequence_Fast_GET_SIZE(s_fast); i++) { PyObject *obj = PySequence_Fast_GET_ITEM(s_fast, i); if (i) { - if (_PyAccu_Accumulate(acc, s->item_separator)) + if (_PyUnicodeWriter_WriteStr(writer, s->item_separator)) goto bail; } - if (encoder_listencode_obj(s, acc, obj, indent_level)) + if (encoder_listencode_obj(s, writer, obj, indent_level)) goto bail; } if (ident != NULL) { @@ -1724,7 +1713,7 @@ encoder_listencode_list(PyEncoderObject *s, _PyAccu *acc, yield '\n' + (' ' * (_indent * _current_indent_level)) }*/ - if (_PyAccu_Accumulate(acc, close_array)) + if (_PyUnicodeWriter_WriteChar(writer, ']')) goto bail; Py_DECREF(s_fast); return 0; @@ -1815,70 +1804,40 @@ PyDoc_STRVAR(module_doc, static int _json_exec(PyObject *module) { - _jsonmodulestate *state = get_json_state(module); - - state->PyScannerType = PyType_FromSpec(&PyScannerType_spec); - if (state->PyScannerType == NULL) { + PyObject *PyScannerType = PyType_FromSpec(&PyScannerType_spec); + if (PyScannerType == NULL) { return -1; } - Py_INCREF(state->PyScannerType); - if (PyModule_AddObject(module, "make_scanner", state->PyScannerType) < 0) { - Py_DECREF(state->PyScannerType); + int rc = PyModule_AddObjectRef(module, "make_scanner", PyScannerType); + Py_DECREF(PyScannerType); + if (rc < 0) { return -1; } - state->PyEncoderType = PyType_FromSpec(&PyEncoderType_spec); - if (state->PyEncoderType == NULL) { + PyObject *PyEncoderType = PyType_FromSpec(&PyEncoderType_spec); + if (PyEncoderType == NULL) { return -1; } - Py_INCREF(state->PyEncoderType); - if (PyModule_AddObject(module, "make_encoder", state->PyEncoderType) < 0) { - Py_DECREF(state->PyEncoderType); + rc = PyModule_AddObjectRef(module, "make_encoder", PyEncoderType); + Py_DECREF(PyEncoderType); + if (rc < 0) { return -1; } return 0; } -static int -_jsonmodule_traverse(PyObject *module, visitproc visit, void *arg) -{ - _jsonmodulestate *state = get_json_state(module); - Py_VISIT(state->PyScannerType); - Py_VISIT(state->PyEncoderType); - return 0; -} - -static int -_jsonmodule_clear(PyObject *module) -{ - _jsonmodulestate *state = get_json_state(module); - Py_CLEAR(state->PyScannerType); - Py_CLEAR(state->PyEncoderType); - return 0; -} - -static void -_jsonmodule_free(void *module) -{ - _jsonmodule_clear((PyObject *)module); -} - static PyModuleDef_Slot _json_slots[] = { {Py_mod_exec, _json_exec}, {0, NULL} }; static struct PyModuleDef jsonmodule = { - PyModuleDef_HEAD_INIT, - "_json", - module_doc, - sizeof(_jsonmodulestate), - speedups_methods, - _json_slots, - _jsonmodule_traverse, - _jsonmodule_clear, - _jsonmodule_free, + .m_base = PyModuleDef_HEAD_INIT, + .m_name = "_json", + .m_doc = module_doc, + .m_methods = speedups_methods, + .m_slots = _json_slots, }; PyMODINIT_FUNC diff --git a/Modules/_lsprof.c b/Modules/_lsprof.c index 9ba45e69ef4e20..a0e262bdac26c6 100644 --- a/Modules/_lsprof.c +++ b/Modules/_lsprof.c @@ -747,10 +747,11 @@ profiler_traverse(ProfilerObject *op, visitproc visit, void *arg) static void profiler_dealloc(ProfilerObject *op) { + PyObject_GC_UnTrack(op); if (op->flags & POF_ENABLED) { PyThreadState *tstate = _PyThreadState_GET(); if (_PyEval_SetProfile(tstate, NULL, NULL) < 0) { - PyErr_WriteUnraisable((PyObject *)op); + _PyErr_WriteUnraisableMsg("When destroying _lsprof profiler", NULL); } } diff --git a/Modules/_multiprocessing/clinic/multiprocessing.c.h b/Modules/_multiprocessing/clinic/multiprocessing.c.h index e9953215aca7df..885cd5c2fff8ea 100644 --- a/Modules/_multiprocessing/clinic/multiprocessing.c.h +++ b/Modules/_multiprocessing/clinic/multiprocessing.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + #if defined(MS_WINDOWS) PyDoc_STRVAR(_multiprocessing_closesocket__doc__, @@ -21,7 +27,8 @@ _multiprocessing_closesocket(PyObject *module, PyObject *arg) PyObject *return_value = NULL; HANDLE handle; - if (!PyArg_Parse(arg, ""F_HANDLE":closesocket", &handle)) { + handle = PyLong_AsVoidPtr(arg); + if (!handle && PyErr_Occurred()) { goto exit; } return_value = _multiprocessing_closesocket_impl(module, handle); @@ -52,8 +59,15 @@ _multiprocessing_recv(PyObject *module, PyObject *const *args, Py_ssize_t nargs) HANDLE handle; int size; - if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE"i:recv", - &handle, &size)) { + if (!_PyArg_CheckPositional("recv", nargs, 2, 2)) { + goto exit; + } + handle = PyLong_AsVoidPtr(args[0]); + if (!handle && PyErr_Occurred()) { + goto exit; + } + size = _PyLong_AsInt(args[1]); + if (size == -1 && PyErr_Occurred()) { goto exit; } return_value = _multiprocessing_recv_impl(module, handle, size); @@ -84,8 +98,18 @@ _multiprocessing_send(PyObject *module, PyObject *const *args, Py_ssize_t nargs) HANDLE handle; Py_buffer buf = {NULL, NULL}; - if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE"y*:send", - &handle, &buf)) { + if (!_PyArg_CheckPositional("send", nargs, 2, 2)) { + goto exit; + } + handle = PyLong_AsVoidPtr(args[0]); + if (!handle && PyErr_Occurred()) { + goto exit; + } + if (PyObject_GetBuffer(args[1], &buf, PyBUF_SIMPLE) != 0) { + goto exit; + } + if (!PyBuffer_IsContiguous(&buf, 'C')) { + _PyArg_BadArgument("send", "argument 2", "contiguous buffer", args[1]); goto exit; } return_value = _multiprocessing_send_impl(module, handle, &buf); @@ -148,4 +172,4 @@ _multiprocessing_sem_unlink(PyObject *module, PyObject *arg) #ifndef _MULTIPROCESSING_SEND_METHODDEF #define _MULTIPROCESSING_SEND_METHODDEF #endif /* !defined(_MULTIPROCESSING_SEND_METHODDEF) */ -/*[clinic end generated code: output=d3bbf69de578db7b input=a9049054013a1b77]*/ +/*[clinic end generated code: output=4a6afc67c1f5ec85 input=a9049054013a1b77]*/ diff --git a/Modules/_multiprocessing/clinic/posixshmem.c.h b/Modules/_multiprocessing/clinic/posixshmem.c.h index be21f836b955a5..df2aa29cfe626e 100644 --- a/Modules/_multiprocessing/clinic/posixshmem.c.h +++ b/Modules/_multiprocessing/clinic/posixshmem.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + #if defined(HAVE_SHM_OPEN) PyDoc_STRVAR(_posixshmem_shm_open__doc__, @@ -21,8 +27,31 @@ static PyObject * _posixshmem_shm_open(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), &_Py_ID(flags), &_Py_ID(mode), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", "flags", "mode", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "shm_open", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "shm_open", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; PyObject *path; @@ -88,8 +117,31 @@ static PyObject * _posixshmem_shm_unlink(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "shm_unlink", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "shm_unlink", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject *path; @@ -120,4 +172,4 @@ _posixshmem_shm_unlink(PyObject *module, PyObject *const *args, Py_ssize_t nargs #ifndef _POSIXSHMEM_SHM_UNLINK_METHODDEF #define _POSIXSHMEM_SHM_UNLINK_METHODDEF #endif /* !defined(_POSIXSHMEM_SHM_UNLINK_METHODDEF) */ -/*[clinic end generated code: output=a6db931a47d36e1b input=a9049054013a1b77]*/ +/*[clinic end generated code: output=3f6fee283d5fd0e9 input=a9049054013a1b77]*/ diff --git a/Modules/_multiprocessing/clinic/semaphore.c.h b/Modules/_multiprocessing/clinic/semaphore.c.h index adb47476c01875..dce0366c266f10 100644 --- a/Modules/_multiprocessing/clinic/semaphore.c.h +++ b/Modules/_multiprocessing/clinic/semaphore.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + #if defined(HAVE_MP_SEMAPHORE) && defined(MS_WINDOWS) PyDoc_STRVAR(_multiprocessing_SemLock_acquire__doc__, @@ -21,8 +27,31 @@ static PyObject * _multiprocessing_SemLock_acquire(SemLockObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(block), &_Py_ID(timeout), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"block", "timeout", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "acquire", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "acquire", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int blocking = 1; @@ -95,8 +124,31 @@ static PyObject * _multiprocessing_SemLock_acquire(SemLockObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(block), &_Py_ID(timeout), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"block", "timeout", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "acquire", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "acquire", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int blocking = 1; @@ -160,8 +212,31 @@ static PyObject * _multiprocessing_SemLock(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 5 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(kind), &_Py_ID(value), &_Py_ID(maxvalue), &_Py_ID(name), &_Py_ID(unlink), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"kind", "value", "maxvalue", "name", "unlink", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "SemLock", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "SemLock", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[5]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -467,4 +542,4 @@ _multiprocessing_SemLock___exit__(SemLockObject *self, PyObject *const *args, Py #ifndef _MULTIPROCESSING_SEMLOCK___EXIT___METHODDEF #define _MULTIPROCESSING_SEMLOCK___EXIT___METHODDEF #endif /* !defined(_MULTIPROCESSING_SEMLOCK___EXIT___METHODDEF) */ -/*[clinic end generated code: output=64ba32544811c9e6 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=720d7d0066dc0954 input=a9049054013a1b77]*/ diff --git a/Modules/_multiprocessing/multiprocessing.c b/Modules/_multiprocessing/multiprocessing.c index 0809c2455dbebc..2463e1e1a8bf7e 100644 --- a/Modules/_multiprocessing/multiprocessing.c +++ b/Modules/_multiprocessing/multiprocessing.c @@ -14,8 +14,16 @@ class HANDLE_converter(CConverter): type = "HANDLE" format_unit = '"F_HANDLE"' + def parse_arg(self, argname, displayname): + return """ + {paramname} = PyLong_AsVoidPtr({argname}); + if (!{paramname} && PyErr_Occurred()) {{{{ + goto exit; + }}}} + """.format(argname=argname, paramname=self.parser_name) + [python start generated code]*/ -/*[python end generated code: output=da39a3ee5e6b4b0d input=9fad6080b79ace91]*/ +/*[python end generated code: output=da39a3ee5e6b4b0d input=3e537d244034affb]*/ /*[clinic input] module _multiprocessing @@ -188,33 +196,39 @@ multiprocessing_exec(PyObject *module) { #ifdef HAVE_MP_SEMAPHORE - /* Add _PyMp_SemLock type to module */ - if (PyModule_AddType(module, &_PyMp_SemLockType) < 0) { + PyTypeObject *semlock_type = (PyTypeObject *)PyType_FromModuleAndSpec( + module, &_PyMp_SemLockType_spec, NULL); + + if (semlock_type == NULL) { + return -1; + } + int rc = PyModule_AddType(module, semlock_type); + Py_DECREF(semlock_type); + if (rc < 0) { return -1; } - { - PyObject *py_sem_value_max; - /* Some systems define SEM_VALUE_MAX as an unsigned value that - * causes it to be negative when used as an int (NetBSD). - * - * Issue #28152: Use (0) instead of 0 to fix a warning on dead code - * when using clang -Wunreachable-code. */ - if ((int)(SEM_VALUE_MAX) < (0)) - py_sem_value_max = PyLong_FromLong(INT_MAX); - else - py_sem_value_max = PyLong_FromLong(SEM_VALUE_MAX); - - if (py_sem_value_max == NULL) { - return -1; - } - if (PyDict_SetItemString(_PyMp_SemLockType.tp_dict, "SEM_VALUE_MAX", - py_sem_value_max) < 0) { - Py_DECREF(py_sem_value_max); - return -1; - } + PyObject *py_sem_value_max; + /* Some systems define SEM_VALUE_MAX as an unsigned value that + * causes it to be negative when used as an int (NetBSD). + * + * Issue #28152: Use (0) instead of 0 to fix a warning on dead code + * when using clang -Wunreachable-code. */ + if ((int)(SEM_VALUE_MAX) < (0)) { + py_sem_value_max = PyLong_FromLong(INT_MAX); + } + else { + py_sem_value_max = PyLong_FromLong(SEM_VALUE_MAX); + } + if (py_sem_value_max == NULL) { + return -1; + } + if (PyDict_SetItemString(semlock_type->tp_dict, "SEM_VALUE_MAX", + py_sem_value_max) < 0) { Py_DECREF(py_sem_value_max); + return -1; } + Py_DECREF(py_sem_value_max); #endif @@ -268,6 +282,7 @@ static PyModuleDef_Slot multiprocessing_slots[] = { static struct PyModuleDef multiprocessing_module = { PyModuleDef_HEAD_INIT, .m_name = "_multiprocessing", + .m_size = 0, .m_methods = module_methods, .m_slots = multiprocessing_slots, }; diff --git a/Modules/_multiprocessing/multiprocessing.h b/Modules/_multiprocessing/multiprocessing.h index 3a8314b1db8331..b595e5a8dd18de 100644 --- a/Modules/_multiprocessing/multiprocessing.h +++ b/Modules/_multiprocessing/multiprocessing.h @@ -89,7 +89,7 @@ PyObject *_PyMp_SetError(PyObject *Type, int num); * Externs - not all will really exist on all platforms */ -extern PyTypeObject _PyMp_SemLockType; +extern PyType_Spec _PyMp_SemLockType_spec; extern PyObject *_PyMp_sem_unlink(const char *name); #endif /* MULTIPROCESSING_H */ diff --git a/Modules/_multiprocessing/semaphore.c b/Modules/_multiprocessing/semaphore.c index 8607476aff10ff..58fb0eb96aeeed 100644 --- a/Modules/_multiprocessing/semaphore.c +++ b/Modules/_multiprocessing/semaphore.c @@ -454,9 +454,7 @@ static PyObject * newsemlockobject(PyTypeObject *type, SEM_HANDLE handle, int kind, int maxvalue, char *name) { - SemLockObject *self; - - self = PyObject_New(SemLockObject, type); + SemLockObject *self = (SemLockObject *)type->tp_alloc(type, 0); if (!self) return NULL; self->handle = handle; @@ -570,10 +568,13 @@ _multiprocessing_SemLock__rebuild_impl(PyTypeObject *type, SEM_HANDLE handle, static void semlock_dealloc(SemLockObject* self) { + PyTypeObject *tp = Py_TYPE(self); + PyObject_GC_UnTrack(self); if (self->handle != SEM_FAILED) SEM_CLOSE(self->handle); PyMem_Free(self->name); - PyObject_Free(self); + tp->tp_free(self); + Py_DECREF(tp); } /*[clinic input] @@ -703,6 +704,13 @@ _multiprocessing_SemLock___exit___impl(SemLockObject *self, return _multiprocessing_SemLock_release_impl(self); } +static int +semlock_traverse(SemLockObject *s, visitproc visit, void *arg) +{ + Py_VISIT(Py_TYPE(s)); + return 0; +} + /* * Semaphore methods */ @@ -741,45 +749,26 @@ static PyMemberDef semlock_members[] = { * Semaphore type */ -PyTypeObject _PyMp_SemLockType = { - PyVarObject_HEAD_INIT(NULL, 0) - /* tp_name */ "_multiprocessing.SemLock", - /* tp_basicsize */ sizeof(SemLockObject), - /* tp_itemsize */ 0, - /* tp_dealloc */ (destructor)semlock_dealloc, - /* tp_vectorcall_offset */ 0, - /* tp_getattr */ 0, - /* tp_setattr */ 0, - /* tp_as_async */ 0, - /* tp_repr */ 0, - /* tp_as_number */ 0, - /* tp_as_sequence */ 0, - /* tp_as_mapping */ 0, - /* tp_hash */ 0, - /* tp_call */ 0, - /* tp_str */ 0, - /* tp_getattro */ 0, - /* tp_setattro */ 0, - /* tp_as_buffer */ 0, - /* tp_flags */ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, - /* tp_doc */ "Semaphore/Mutex type", - /* tp_traverse */ 0, - /* tp_clear */ 0, - /* tp_richcompare */ 0, - /* tp_weaklistoffset */ 0, - /* tp_iter */ 0, - /* tp_iternext */ 0, - /* tp_methods */ semlock_methods, - /* tp_members */ semlock_members, - /* tp_getset */ 0, - /* tp_base */ 0, - /* tp_dict */ 0, - /* tp_descr_get */ 0, - /* tp_descr_set */ 0, - /* tp_dictoffset */ 0, - /* tp_init */ 0, - /* tp_alloc */ 0, - /* tp_new */ _multiprocessing_SemLock, +static PyType_Slot _PyMp_SemLockType_slots[] = { + {Py_tp_dealloc, semlock_dealloc}, + {Py_tp_getattro, PyObject_GenericGetAttr}, + {Py_tp_setattro, PyObject_GenericSetAttr}, + {Py_tp_methods, semlock_methods}, + {Py_tp_members, semlock_members}, + {Py_tp_alloc, PyType_GenericAlloc}, + {Py_tp_new, _multiprocessing_SemLock}, + {Py_tp_traverse, semlock_traverse}, + {Py_tp_free, PyObject_GC_Del}, + {Py_tp_doc, (void *)PyDoc_STR("Semaphore/Mutex type")}, + {0, 0}, +}; + +PyType_Spec _PyMp_SemLockType_spec = { + .name = "_multiprocessing.SemLock", + .basicsize = sizeof(SemLockObject), + .flags = (Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | + Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_IMMUTABLETYPE), + .slots = _PyMp_SemLockType_slots, }; /* diff --git a/Modules/_opcode.c b/Modules/_opcode.c index 4812716c672718..99be977417743e 100644 --- a/Modules/_opcode.c +++ b/Modules/_opcode.c @@ -60,12 +60,7 @@ _opcode_stack_effect_impl(PyObject *module, int opcode, PyObject *oparg, "stack_effect: jump must be False, True or None"); return -1; } - if (IS_ARTIFICIAL(opcode)) { - effect = PY_INVALID_STACK_EFFECT; - } - else { - effect = PyCompile_OpcodeStackEffectWithJump(opcode, oparg_int, jump_int); - } + effect = PyCompile_OpcodeStackEffectWithJump(opcode, oparg_int, jump_int); if (effect == PY_INVALID_STACK_EFFECT) { PyErr_SetString(PyExc_ValueError, "invalid opcode or oparg"); diff --git a/Modules/_operator.c b/Modules/_operator.c index 1af4a4feb7728a..51ca74eeeaee21 100644 --- a/Modules/_operator.c +++ b/Modules/_operator.c @@ -839,7 +839,7 @@ _operator__compare_digest_impl(PyObject *module, PyObject *a, PyObject *b) PyUnicode_GET_LENGTH(a), PyUnicode_GET_LENGTH(b)); } - /* fallback to buffer interface for bytes, bytesarray and other */ + /* fallback to buffer interface for bytes, bytearray and other */ else { Py_buffer view_a; Py_buffer view_b; @@ -1752,16 +1752,11 @@ methodcaller_reduce(methodcallerobject *mc, PyObject *Py_UNUSED(ignored)) return Py_BuildValue("ON", Py_TYPE(mc), newargs); } else { - PyObject *functools; PyObject *partial; PyObject *constructor; PyObject *newargs[2]; - functools = PyImport_ImportModule("functools"); - if (!functools) - return NULL; - partial = PyObject_GetAttr(functools, &_Py_ID(partial)); - Py_DECREF(functools); + partial = _PyImport_GetModuleAttrString("functools", "partial"); if (!partial) return NULL; diff --git a/Modules/_pickle.c b/Modules/_pickle.c index 0adfa4103cc0d0..52704b0c59ade1 100644 --- a/Modules/_pickle.c +++ b/Modules/_pickle.c @@ -232,8 +232,6 @@ _Pickle_InitState(PickleState *st) { PyObject *copyreg = NULL; PyObject *compat_pickle = NULL; - PyObject *codecs = NULL; - PyObject *functools = NULL; st->getattr = _PyEval_GetBuiltin(&_Py_ID(getattr)); if (st->getattr == NULL) @@ -329,10 +327,7 @@ _Pickle_InitState(PickleState *st) } Py_CLEAR(compat_pickle); - codecs = PyImport_ImportModule("codecs"); - if (codecs == NULL) - goto error; - st->codecs_encode = PyObject_GetAttrString(codecs, "encode"); + st->codecs_encode = _PyImport_GetModuleAttrString("codecs", "encode"); if (st->codecs_encode == NULL) { goto error; } @@ -342,23 +337,16 @@ _Pickle_InitState(PickleState *st) Py_TYPE(st->codecs_encode)->tp_name); goto error; } - Py_CLEAR(codecs); - functools = PyImport_ImportModule("functools"); - if (!functools) - goto error; - st->partial = PyObject_GetAttrString(functools, "partial"); + st->partial = _PyImport_GetModuleAttrString("functools", "partial"); if (!st->partial) goto error; - Py_CLEAR(functools); return 0; error: Py_CLEAR(copyreg); Py_CLEAR(compat_pickle); - Py_CLEAR(codecs); - Py_CLEAR(functools); _Pickle_ClearState(st); return -1; } @@ -3006,7 +2994,10 @@ batch_list_exact(PicklerObject *self, PyObject *obj) if (PyList_GET_SIZE(obj) == 1) { item = PyList_GET_ITEM(obj, 0); - if (save(self, item, 0) < 0) + Py_INCREF(item); + int err = save(self, item, 0); + Py_DECREF(item); + if (err < 0) return -1; if (_Pickler_Write(self, &append_op, 1) < 0) return -1; @@ -3021,7 +3012,10 @@ batch_list_exact(PicklerObject *self, PyObject *obj) return -1; while (total < PyList_GET_SIZE(obj)) { item = PyList_GET_ITEM(obj, total); - if (save(self, item, 0) < 0) + Py_INCREF(item); + int err = save(self, item, 0); + Py_DECREF(item); + if (err < 0) return -1; total++; if (++this_batch == BATCHSIZE) @@ -3259,10 +3253,16 @@ batch_dict_exact(PicklerObject *self, PyObject *obj) /* Special-case len(d) == 1 to save space. */ if (dict_size == 1) { PyDict_Next(obj, &ppos, &key, &value); - if (save(self, key, 0) < 0) - return -1; - if (save(self, value, 0) < 0) - return -1; + Py_INCREF(key); + Py_INCREF(value); + if (save(self, key, 0) < 0) { + goto error; + } + if (save(self, value, 0) < 0) { + goto error; + } + Py_CLEAR(key); + Py_CLEAR(value); if (_Pickler_Write(self, &setitem_op, 1) < 0) return -1; return 0; @@ -3274,10 +3274,16 @@ batch_dict_exact(PicklerObject *self, PyObject *obj) if (_Pickler_Write(self, &mark_op, 1) < 0) return -1; while (PyDict_Next(obj, &ppos, &key, &value)) { - if (save(self, key, 0) < 0) - return -1; - if (save(self, value, 0) < 0) - return -1; + Py_INCREF(key); + Py_INCREF(value); + if (save(self, key, 0) < 0) { + goto error; + } + if (save(self, value, 0) < 0) { + goto error; + } + Py_CLEAR(key); + Py_CLEAR(value); if (++i == BATCHSIZE) break; } @@ -3292,6 +3298,10 @@ batch_dict_exact(PicklerObject *self, PyObject *obj) } while (i == BATCHSIZE); return 0; +error: + Py_XDECREF(key); + Py_XDECREF(value); + return -1; } static int @@ -3409,7 +3419,10 @@ save_set(PicklerObject *self, PyObject *obj) if (_Pickler_Write(self, &mark_op, 1) < 0) return -1; while (_PySet_NextEntry(obj, &ppos, &item, &hash)) { - if (save(self, item, 0) < 0) + Py_INCREF(item); + int err = save(self, item, 0); + Py_CLEAR(item); + if (err < 0) return -1; if (++i == BATCHSIZE) break; @@ -4748,7 +4761,9 @@ _pickle_Pickler___init___impl(PicklerObject *self, PyObject *file, { return -1; } - + if (self->dispatch_table != NULL) { + return 0; + } if (_PyObject_LookupAttr((PyObject *)self, &_Py_ID(dispatch_table), &self->dispatch_table) < 0) { return -1; diff --git a/Modules/_randommodule.c b/Modules/_randommodule.c index d96c0371ec7f8e..95f1e505dd1873 100644 --- a/Modules/_randommodule.c +++ b/Modules/_randommodule.c @@ -72,6 +72,7 @@ #include "Python.h" #include "pycore_moduleobject.h" // _PyModule_GetState() +#include "pycore_runtime.h" #ifdef HAVE_PROCESS_H # include <process.h> // getpid() #endif diff --git a/Modules/_sha3/clinic/sha3module.c.h b/Modules/_sha3/clinic/sha3module.c.h index 1c79c269391ca2..a0c7c1c043e515 100644 --- a/Modules/_sha3/clinic/sha3module.c.h +++ b/Modules/_sha3/clinic/sha3module.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(py_sha3_new__doc__, "sha3_224(data=b\'\', /, *, usedforsecurity=True)\n" "--\n" @@ -15,8 +21,31 @@ static PyObject * py_sha3_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(usedforsecurity), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "sha3_224", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "sha3_224", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -164,4 +193,4 @@ _sha3_shake_128_hexdigest(SHA3object *self, PyObject *arg) exit: return return_value; } -/*[clinic end generated code: output=c8a97b34e80def62 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=747c3f34ddd14063 input=a9049054013a1b77]*/ diff --git a/Modules/_sqlite/clinic/blob.c.h b/Modules/_sqlite/clinic/blob.c.h index b467c99e2eb5fd..f3d8a35be46138 100644 --- a/Modules/_sqlite/clinic/blob.c.h +++ b/Modules/_sqlite/clinic/blob.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(blob_close__doc__, "close($self, /)\n" "--\n" @@ -213,4 +219,4 @@ blob_exit(pysqlite_Blob *self, PyObject *const *args, Py_ssize_t nargs) exit: return return_value; } -/*[clinic end generated code: output=382cbf0977bb158a input=a9049054013a1b77]*/ +/*[clinic end generated code: output=ad6a402f70e85977 input=a9049054013a1b77]*/ diff --git a/Modules/_sqlite/clinic/connection.c.h b/Modules/_sqlite/clinic/connection.c.h index dd86fb5b64f3f0..e7e78707ee8d5d 100644 --- a/Modules/_sqlite/clinic/connection.c.h +++ b/Modules/_sqlite/clinic/connection.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + static int pysqlite_connection_init_impl(pysqlite_Connection *self, PyObject *database, double timeout, int detect_types, @@ -13,8 +19,31 @@ static int pysqlite_connection_init(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 8 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(database), &_Py_ID(timeout), &_Py_ID(detect_types), &_Py_ID(isolation_level), &_Py_ID(check_same_thread), &_Py_ID(factory), &_Py_ID(cached_statements), &_Py_ID(uri), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"database", "timeout", "detect_types", "isolation_level", "check_same_thread", "factory", "cached_statements", "uri", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "Connection", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "Connection", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[8]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -119,8 +148,31 @@ static PyObject * pysqlite_connection_cursor(pysqlite_Connection *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(factory), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"factory", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "cursor", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "cursor", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *factory = NULL; @@ -168,8 +220,31 @@ static PyObject * blobopen(pysqlite_Connection *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(readonly), &_Py_ID(name), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "", "", "readonly", "name", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "blobopen", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "blobopen", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3; const char *table; @@ -248,7 +323,9 @@ PyDoc_STRVAR(pysqlite_connection_close__doc__, "close($self, /)\n" "--\n" "\n" -"Closes the connection."); +"Close the database connection.\n" +"\n" +"Any pending transaction is not committed implicitly."); #define PYSQLITE_CONNECTION_CLOSE_METHODDEF \ {"close", (PyCFunction)pysqlite_connection_close, METH_NOARGS, pysqlite_connection_close__doc__}, @@ -266,7 +343,9 @@ PyDoc_STRVAR(pysqlite_connection_commit__doc__, "commit($self, /)\n" "--\n" "\n" -"Commit the current transaction."); +"Commit any pending transaction to the database.\n" +"\n" +"If there is no open transaction, this method is a no-op."); #define PYSQLITE_CONNECTION_COMMIT_METHODDEF \ {"commit", (PyCFunction)pysqlite_connection_commit, METH_NOARGS, pysqlite_connection_commit__doc__}, @@ -284,7 +363,9 @@ PyDoc_STRVAR(pysqlite_connection_rollback__doc__, "rollback($self, /)\n" "--\n" "\n" -"Roll back the current transaction."); +"Roll back to the start of any pending transaction.\n" +"\n" +"If there is no open transaction, this method is a no-op."); #define PYSQLITE_CONNECTION_ROLLBACK_METHODDEF \ {"rollback", (PyCFunction)pysqlite_connection_rollback, METH_NOARGS, pysqlite_connection_rollback__doc__}, @@ -317,8 +398,31 @@ static PyObject * pysqlite_connection_create_function(pysqlite_Connection *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 4 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(name), &_Py_ID(narg), &_Py_ID(func), &_Py_ID(deterministic), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"name", "narg", "func", "deterministic", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "create_function", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "create_function", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3; const char *name; @@ -391,8 +495,19 @@ static PyObject * create_window_function(pysqlite_Connection *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) + #else + # define KWTUPLE NULL + #endif + static const char * const _keywords[] = {"", "", "", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "create_window_function", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "create_window_function", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; const char *name; int num_params; @@ -447,8 +562,31 @@ static PyObject * pysqlite_connection_create_aggregate(pysqlite_Connection *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(name), &_Py_ID(n_arg), &_Py_ID(aggregate_class), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"name", "n_arg", "aggregate_class", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "create_aggregate", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "create_aggregate", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; const char *name; int n_arg; @@ -500,8 +638,31 @@ static PyObject * pysqlite_connection_set_authorizer(pysqlite_Connection *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(authorizer_callback), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"authorizer_callback", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "set_authorizer", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "set_authorizer", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject *callable; @@ -534,8 +695,31 @@ static PyObject * pysqlite_connection_set_progress_handler(pysqlite_Connection *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(progress_handler), &_Py_ID(n), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"progress_handler", "n", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "set_progress_handler", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "set_progress_handler", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; PyObject *callable; int n; @@ -573,8 +757,31 @@ static PyObject * pysqlite_connection_set_trace_callback(pysqlite_Connection *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(trace_callback), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"trace_callback", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "set_trace_callback", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "set_trace_callback", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject *callable; @@ -809,8 +1016,31 @@ static PyObject * pysqlite_connection_backup(pysqlite_Connection *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 5 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(target), &_Py_ID(pages), &_Py_ID(progress), &_Py_ID(name), &_Py_ID(sleep), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"target", "pages", "progress", "name", "sleep", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "backup", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "backup", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; pysqlite_Connection *target; @@ -900,8 +1130,19 @@ static PyObject * pysqlite_connection_create_collation(pysqlite_Connection *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) + #else + # define KWTUPLE NULL + #endif + static const char * const _keywords[] = {"", "", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "create_collation", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "create_collation", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; const char *name; PyObject *callable; @@ -956,8 +1197,31 @@ static PyObject * serialize(pysqlite_Connection *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(name), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"name", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "serialize", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "serialize", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; const char *name = "main"; @@ -1022,8 +1286,31 @@ static PyObject * deserialize(pysqlite_Connection *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(name), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "name", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "deserialize", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "deserialize", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer data = {NULL, NULL}; @@ -1231,4 +1518,4 @@ getlimit(pysqlite_Connection *self, PyObject *arg) #ifndef DESERIALIZE_METHODDEF #define DESERIALIZE_METHODDEF #endif /* !defined(DESERIALIZE_METHODDEF) */ -/*[clinic end generated code: output=fb8908674e9f25ff input=a9049054013a1b77]*/ +/*[clinic end generated code: output=beef3eac690a1f88 input=a9049054013a1b77]*/ diff --git a/Modules/_sqlite/clinic/cursor.c.h b/Modules/_sqlite/clinic/cursor.c.h index b29c333074888b..36b8d0051a2915 100644 --- a/Modules/_sqlite/clinic/cursor.c.h +++ b/Modules/_sqlite/clinic/cursor.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + static int pysqlite_cursor_init_impl(pysqlite_Cursor *self, pysqlite_Connection *connection); @@ -186,8 +192,31 @@ static PyObject * pysqlite_cursor_fetchmany(pysqlite_Cursor *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(size), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"size", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "fetchmany", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "fetchmany", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int maxrows = self->arraysize; @@ -289,4 +318,4 @@ pysqlite_cursor_close(pysqlite_Cursor *self, PyObject *Py_UNUSED(ignored)) { return pysqlite_cursor_close_impl(self); } -/*[clinic end generated code: output=2b9c6a3ca8a8caff input=a9049054013a1b77]*/ +/*[clinic end generated code: output=e53e75a32a9d92bd input=a9049054013a1b77]*/ diff --git a/Modules/_sqlite/clinic/module.c.h b/Modules/_sqlite/clinic/module.c.h index d3367cf62bf724..12f60835880b10 100644 --- a/Modules/_sqlite/clinic/module.c.h +++ b/Modules/_sqlite/clinic/module.c.h @@ -2,115 +2,11 @@ preserve [clinic start generated code]*/ -PyDoc_STRVAR(pysqlite_connect__doc__, -"connect($module, /, database, timeout=5.0, detect_types=0,\n" -" isolation_level=<unrepresentable>, check_same_thread=True,\n" -" factory=ConnectionType, cached_statements=128, uri=False)\n" -"--\n" -"\n" -"Opens a connection to the SQLite database file database.\n" -"\n" -"You can use \":memory:\" to open a database connection to a database that resides\n" -"in RAM instead of on disk."); - -#define PYSQLITE_CONNECT_METHODDEF \ - {"connect", _PyCFunction_CAST(pysqlite_connect), METH_FASTCALL|METH_KEYWORDS, pysqlite_connect__doc__}, - -static PyObject * -pysqlite_connect_impl(PyObject *module, PyObject *database, double timeout, - int detect_types, PyObject *isolation_level, - int check_same_thread, PyObject *factory, - int cached_statements, int uri); - -static PyObject * -pysqlite_connect(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) -{ - PyObject *return_value = NULL; - static const char * const _keywords[] = {"database", "timeout", "detect_types", "isolation_level", "check_same_thread", "factory", "cached_statements", "uri", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "connect", 0}; - PyObject *argsbuf[8]; - Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; - PyObject *database; - double timeout = 5.0; - int detect_types = 0; - PyObject *isolation_level = NULL; - int check_same_thread = 1; - PyObject *factory = (PyObject*)clinic_state()->ConnectionType; - int cached_statements = 128; - int uri = 0; - - args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 8, 0, argsbuf); - if (!args) { - goto exit; - } - database = args[0]; - if (!noptargs) { - goto skip_optional_pos; - } - if (args[1]) { - if (PyFloat_CheckExact(args[1])) { - timeout = PyFloat_AS_DOUBLE(args[1]); - } - else - { - timeout = PyFloat_AsDouble(args[1]); - if (timeout == -1.0 && PyErr_Occurred()) { - goto exit; - } - } - if (!--noptargs) { - goto skip_optional_pos; - } - } - if (args[2]) { - detect_types = _PyLong_AsInt(args[2]); - if (detect_types == -1 && PyErr_Occurred()) { - goto exit; - } - if (!--noptargs) { - goto skip_optional_pos; - } - } - if (args[3]) { - isolation_level = args[3]; - if (!--noptargs) { - goto skip_optional_pos; - } - } - if (args[4]) { - check_same_thread = _PyLong_AsInt(args[4]); - if (check_same_thread == -1 && PyErr_Occurred()) { - goto exit; - } - if (!--noptargs) { - goto skip_optional_pos; - } - } - if (args[5]) { - factory = args[5]; - if (!--noptargs) { - goto skip_optional_pos; - } - } - if (args[6]) { - cached_statements = _PyLong_AsInt(args[6]); - if (cached_statements == -1 && PyErr_Occurred()) { - goto exit; - } - if (!--noptargs) { - goto skip_optional_pos; - } - } - uri = PyObject_IsTrue(args[7]); - if (uri < 0) { - goto exit; - } -skip_optional_pos: - return_value = pysqlite_connect_impl(module, database, timeout, detect_types, isolation_level, check_same_thread, factory, cached_statements, uri); +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif -exit: - return return_value; -} PyDoc_STRVAR(pysqlite_complete_statement__doc__, "complete_statement($module, /, statement)\n" @@ -128,8 +24,31 @@ static PyObject * pysqlite_complete_statement(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(statement), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"statement", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "complete_statement", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "complete_statement", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; const char *statement; @@ -157,10 +76,10 @@ pysqlite_complete_statement(PyObject *module, PyObject *const *args, Py_ssize_t } PyDoc_STRVAR(pysqlite_register_adapter__doc__, -"register_adapter($module, type, caster, /)\n" +"register_adapter($module, type, adapter, /)\n" "--\n" "\n" -"Registers an adapter with sqlite3\'s adapter registry."); +"Register a function to adapt Python objects to SQLite values."); #define PYSQLITE_REGISTER_ADAPTER_METHODDEF \ {"register_adapter", _PyCFunction_CAST(pysqlite_register_adapter), METH_FASTCALL, pysqlite_register_adapter__doc__}, @@ -188,10 +107,10 @@ pysqlite_register_adapter(PyObject *module, PyObject *const *args, Py_ssize_t na } PyDoc_STRVAR(pysqlite_register_converter__doc__, -"register_converter($module, name, converter, /)\n" +"register_converter($module, typename, converter, /)\n" "--\n" "\n" -"Registers a converter with sqlite3."); +"Register a function to convert SQLite values to Python objects."); #define PYSQLITE_REGISTER_CONVERTER_METHODDEF \ {"register_converter", _PyCFunction_CAST(pysqlite_register_converter), METH_FASTCALL, pysqlite_register_converter__doc__}, @@ -292,4 +211,4 @@ pysqlite_adapt(PyObject *module, PyObject *const *args, Py_ssize_t nargs) exit: return return_value; } -/*[clinic end generated code: output=a7cfa6dc9d54273c input=a9049054013a1b77]*/ +/*[clinic end generated code: output=39d38c6cfc455042 input=a9049054013a1b77]*/ diff --git a/Modules/_sqlite/clinic/row.c.h b/Modules/_sqlite/clinic/row.c.h index c936ef75fdeaa4..c543b398db3fcf 100644 --- a/Modules/_sqlite/clinic/row.c.h +++ b/Modules/_sqlite/clinic/row.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + static PyObject * pysqlite_row_new_impl(PyTypeObject *type, pysqlite_Cursor *cursor, PyObject *data); @@ -54,4 +60,4 @@ pysqlite_row_keys(pysqlite_Row *self, PyObject *Py_UNUSED(ignored)) { return pysqlite_row_keys_impl(self); } -/*[clinic end generated code: output=9d54919dbb4ba5f1 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=87b91f234633702e input=a9049054013a1b77]*/ diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c index 7f7de8e709228d..ceb77bbf8420ff 100644 --- a/Modules/_sqlite/connection.c +++ b/Modules/_sqlite/connection.c @@ -140,6 +140,7 @@ class IsolationLevel_converter(CConverter): [python start generated code]*/ /*[python end generated code: output=da39a3ee5e6b4b0d input=cbcfe85b253061c2]*/ +// NB: This needs to be in sync with the sqlite3.connect docstring /*[clinic input] _sqlite3.Connection.__init__ as pysqlite_connection_init @@ -470,12 +471,14 @@ blobopen_impl(pysqlite_Connection *self, const char *table, const char *col, /*[clinic input] _sqlite3.Connection.close as pysqlite_connection_close -Closes the connection. +Close the database connection. + +Any pending transaction is not committed implicitly. [clinic start generated code]*/ static PyObject * pysqlite_connection_close_impl(pysqlite_Connection *self) -/*[clinic end generated code: output=a546a0da212c9b97 input=3d58064bbffaa3d3]*/ +/*[clinic end generated code: output=a546a0da212c9b97 input=b3ed5b74f6fefc06]*/ { if (!pysqlite_check_thread(self)) { return NULL; @@ -522,12 +525,14 @@ int pysqlite_check_connection(pysqlite_Connection* con) /*[clinic input] _sqlite3.Connection.commit as pysqlite_connection_commit -Commit the current transaction. +Commit any pending transaction to the database. + +If there is no open transaction, this method is a no-op. [clinic start generated code]*/ static PyObject * pysqlite_connection_commit_impl(pysqlite_Connection *self) -/*[clinic end generated code: output=3da45579e89407f2 input=39c12c04dda276a8]*/ +/*[clinic end generated code: output=3da45579e89407f2 input=c8793c97c3446065]*/ { if (!pysqlite_check_thread(self) || !pysqlite_check_connection(self)) { return NULL; @@ -557,12 +562,14 @@ pysqlite_connection_commit_impl(pysqlite_Connection *self) /*[clinic input] _sqlite3.Connection.rollback as pysqlite_connection_rollback -Roll back the current transaction. +Roll back to the start of any pending transaction. + +If there is no open transaction, this method is a no-op. [clinic start generated code]*/ static PyObject * pysqlite_connection_rollback_impl(pysqlite_Connection *self) -/*[clinic end generated code: output=b66fa0d43e7ef305 input=12d4e8d068942830]*/ +/*[clinic end generated code: output=b66fa0d43e7ef305 input=7f60a2f1076f16b3]*/ { if (!pysqlite_check_thread(self) || !pysqlite_check_connection(self)) { return NULL; @@ -1582,9 +1589,8 @@ static PyObject* pysqlite_connection_get_total_changes(pysqlite_Connection* self { if (!pysqlite_check_connection(self)) { return NULL; - } else { - return Py_BuildValue("i", sqlite3_total_changes(self->db)); } + return PyLong_FromLong(sqlite3_total_changes(self->db)); } static PyObject* pysqlite_connection_get_in_transaction(pysqlite_Connection* self, void* unused) @@ -1841,43 +1847,21 @@ static PyObject * pysqlite_connection_iterdump_impl(pysqlite_Connection *self) /*[clinic end generated code: output=586997aaf9808768 input=1911ca756066da89]*/ { - PyObject* retval = NULL; - PyObject* module = NULL; - PyObject* module_dict; - PyObject* pyfn_iterdump; - if (!pysqlite_check_connection(self)) { - goto finally; - } - - module = PyImport_ImportModule(MODULE_NAME ".dump"); - if (!module) { - goto finally; - } - - module_dict = PyModule_GetDict(module); - if (!module_dict) { - goto finally; + return NULL; } - PyObject *meth = PyUnicode_InternFromString("_iterdump"); - if (meth == NULL) { - goto finally; - } - pyfn_iterdump = PyDict_GetItemWithError(module_dict, meth); - Py_DECREF(meth); - if (!pyfn_iterdump) { + PyObject *iterdump = _PyImport_GetModuleAttrString(MODULE_NAME ".dump", "_iterdump"); + if (!iterdump) { if (!PyErr_Occurred()) { PyErr_SetString(self->OperationalError, "Failed to obtain _iterdump() reference"); } - goto finally; + return NULL; } - retval = PyObject_CallOneArg(pyfn_iterdump, (PyObject *)self); - -finally: - Py_XDECREF(module); + PyObject *retval = PyObject_CallOneArg(iterdump, (PyObject *)self); + Py_DECREF(iterdump); return retval; } @@ -2091,7 +2075,7 @@ serialize_impl(pysqlite_Connection *self, const char *name) name); return NULL; } - PyObject *res = PyBytes_FromStringAndSize(data, size); + PyObject *res = PyBytes_FromStringAndSize(data, (Py_ssize_t)size); if (!(flags & SQLITE_SERIALIZE_NOCOPY)) { sqlite3_free((void *)data); } diff --git a/Modules/_sqlite/cursor.c b/Modules/_sqlite/cursor.c index c58def5f0362f1..cbf4718365fee6 100644 --- a/Modules/_sqlite/cursor.c +++ b/Modules/_sqlite/cursor.c @@ -130,14 +130,10 @@ stmt_reset(pysqlite_Statement *self) { int rc = SQLITE_OK; - if (self->in_use && self->st) { + if (self->st != NULL) { Py_BEGIN_ALLOW_THREADS rc = sqlite3_reset(self->st); Py_END_ALLOW_THREADS - - if (rc == SQLITE_OK) { - self->in_use = 0; - } } return rc; @@ -770,12 +766,6 @@ bind_parameters(pysqlite_state *state, pysqlite_Statement *self, } } -static inline void -stmt_mark_dirty(pysqlite_Statement *self) -{ - self->in_use = 1; -} - PyObject * _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* operation, PyObject* second_argument) { @@ -830,17 +820,12 @@ _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* operation } } - if (self->statement != NULL) { - /* There is an active statement */ - stmt_reset(self->statement); - } - - /* reset description and rowcount */ + /* reset description */ Py_INCREF(Py_None); Py_SETREF(self->description, Py_None); - self->rowcount = 0L; if (self->statement) { + // Reset pending statements on this cursor. (void)stmt_reset(self->statement); } @@ -857,7 +842,7 @@ _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* operation goto error; } - if (self->statement->in_use) { + if (sqlite3_stmt_busy(self->statement->st)) { Py_SETREF(self->statement, pysqlite_statement_create(self->connection, operation)); if (self->statement == NULL) { @@ -865,8 +850,8 @@ _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* operation } } - stmt_reset(self->statement); - stmt_mark_dirty(self->statement); + (void)stmt_reset(self->statement); + self->rowcount = self->statement->is_dml ? 0L : -1L; /* We start a transaction implicitly before a DML statement. SELECT is the only exception. See #9924. */ @@ -879,14 +864,13 @@ _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* operation } } + assert(!sqlite3_stmt_busy(self->statement->st)); while (1) { parameters = PyIter_Next(parameters_iter); if (!parameters) { break; } - stmt_mark_dirty(self->statement); - bind_parameters(state, self->statement, parameters); if (PyErr_Occurred()) { goto error; @@ -902,7 +886,6 @@ _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* operation PyErr_Clear(); } } - (void)stmt_reset(self->statement); _pysqlite_seterror(state, self->connection->db); goto error; } @@ -944,18 +927,10 @@ _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* operation } } - if (self->statement->is_dml) { - self->rowcount += (long)sqlite3_changes(self->connection->db); - } else { - self->rowcount= -1L; - } - - if (rc == SQLITE_DONE && !multiple) { - stmt_reset(self->statement); - Py_CLEAR(self->statement); - } - - if (multiple) { + if (rc == SQLITE_DONE) { + if (self->statement->is_dml) { + self->rowcount += (long)sqlite3_changes(self->connection->db); + } stmt_reset(self->statement); } Py_XDECREF(parameters); @@ -980,11 +955,17 @@ _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* operation self->locked = 0; if (PyErr_Occurred()) { + if (self->statement) { + (void)stmt_reset(self->statement); + Py_CLEAR(self->statement); + } self->rowcount = -1L; return NULL; - } else { - return Py_NewRef((PyObject *)self); } + if (self->statement && !sqlite3_stmt_busy(self->statement->st)) { + Py_CLEAR(self->statement); + } + return Py_NewRef((PyObject *)self); } /*[clinic input] @@ -1111,11 +1092,7 @@ pysqlite_cursor_iternext(pysqlite_Cursor *self) sqlite3_stmt *stmt = self->statement->st; assert(stmt != NULL); - if (sqlite3_data_count(stmt) == 0) { - (void)stmt_reset(self->statement); - Py_CLEAR(self->statement); - return NULL; - } + assert(sqlite3_data_count(stmt) != 0); self->locked = 1; // GH-80254: Prevent recursive use of cursors. PyObject *row = _pysqlite_fetch_one_row(self); @@ -1125,11 +1102,17 @@ pysqlite_cursor_iternext(pysqlite_Cursor *self) } int rc = stmt_step(stmt); if (rc == SQLITE_DONE) { + if (self->statement->is_dml) { + self->rowcount = (long)sqlite3_changes(self->connection->db); + } (void)stmt_reset(self->statement); + Py_CLEAR(self->statement); } else if (rc != SQLITE_ROW) { (void)_pysqlite_seterror(self->connection->state, self->connection->db); + (void)stmt_reset(self->statement); + Py_CLEAR(self->statement); Py_DECREF(row); return NULL; } diff --git a/Modules/_sqlite/microprotocols.c b/Modules/_sqlite/microprotocols.c index a79f0067b17e8c..148220d0f91f96 100644 --- a/Modules/_sqlite/microprotocols.c +++ b/Modules/_sqlite/microprotocols.c @@ -57,7 +57,7 @@ pysqlite_microprotocols_add(pysqlite_state *state, PyTypeObject *type, assert(type != NULL); assert(proto != NULL); - key = Py_BuildValue("(OO)", (PyObject*)type, proto); + key = PyTuple_Pack(2, (PyObject *)type, proto); if (!key) { return -1; } @@ -81,7 +81,7 @@ pysqlite_microprotocols_adapt(pysqlite_state *state, PyObject *obj, way to get a quotable object to be its instance */ /* look for an adapter in the registry */ - key = Py_BuildValue("(OO)", (PyObject*)Py_TYPE(obj), proto); + key = PyTuple_Pack(2, (PyObject *)Py_TYPE(obj), proto); if (!key) { return NULL; } diff --git a/Modules/_sqlite/module.c b/Modules/_sqlite/module.c index 9b0e921511c56a..707aae160ab4f3 100644 --- a/Modules/_sqlite/module.c +++ b/Modules/_sqlite/module.c @@ -42,47 +42,44 @@ module _sqlite3 [clinic start generated code]*/ /*[clinic end generated code: output=da39a3ee5e6b4b0d input=81e330492d57488e]*/ -// NOTE: This must equal sqlite3.Connection.__init__ argument spec! -/*[clinic input] -_sqlite3.connect as pysqlite_connect - - database: object - timeout: double = 5.0 - detect_types: int = 0 - isolation_level: object = NULL - check_same_thread: bool(accept={int}) = True - factory: object(c_default='(PyObject*)clinic_state()->ConnectionType') = ConnectionType - cached_statements: int = 128 - uri: bool = False - -Opens a connection to the SQLite database file database. - -You can use ":memory:" to open a database connection to a database that resides -in RAM instead of on disk. -[clinic start generated code]*/ +// NB: This needs to be in sync with the Connection.__init__ docstring. +PyDoc_STRVAR(module_connect_doc, +"connect($module, /, database, timeout=5.0, detect_types=0,\n" +" isolation_level='', check_same_thread=True,\n" +" factory=ConnectionType, cached_statements=128, uri=False)\n" +"--\n" +"\n" +"Opens a connection to the SQLite database file database.\n" +"\n" +"You can use \":memory:\" to open a database connection to a database that resides\n" +"in RAM instead of on disk."); + +#define PYSQLITE_CONNECT_METHODDEF \ + {"connect", _PyCFunction_CAST(module_connect), METH_FASTCALL|METH_KEYWORDS, module_connect_doc}, static PyObject * -pysqlite_connect_impl(PyObject *module, PyObject *database, double timeout, - int detect_types, PyObject *isolation_level, - int check_same_thread, PyObject *factory, - int cached_statements, int uri) -/*[clinic end generated code: output=450ac9078b4868bb input=e16914663ddf93ce]*/ +module_connect(PyObject *module, PyObject *const *args, Py_ssize_t nargsf, + PyObject *kwnames) { - if (isolation_level == NULL) { - isolation_level = PyUnicode_FromString(""); - if (isolation_level == NULL) { - return NULL; - } + pysqlite_state *state = pysqlite_get_state(module); + PyObject *factory = (PyObject *)state->ConnectionType; + + static const int FACTORY_POS = 5; + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + if (nargs > FACTORY_POS) { + factory = args[FACTORY_POS]; } - else { - Py_INCREF(isolation_level); + else if (kwnames != NULL) { + for (Py_ssize_t i = 0; i < PyTuple_GET_SIZE(kwnames); i++) { + PyObject *item = PyTuple_GET_ITEM(kwnames, i); // borrowed ref. + if (PyUnicode_CompareWithASCIIString(item, "factory") == 0) { + factory = args[nargs + i]; + break; + } + } } - PyObject *res = PyObject_CallFunction(factory, "OdiOiOii", database, - timeout, detect_types, - isolation_level, check_same_thread, - factory, cached_statements, uri); - Py_DECREF(isolation_level); - return res; + + return PyObject_Vectorcall(factory, args, nargsf, kwnames); } /*[clinic input] @@ -108,16 +105,16 @@ pysqlite_complete_statement_impl(PyObject *module, const char *statement) _sqlite3.register_adapter as pysqlite_register_adapter type: object(type='PyTypeObject *') - caster: object + adapter as caster: object / -Registers an adapter with sqlite3's adapter registry. +Register a function to adapt Python objects to SQLite values. [clinic start generated code]*/ static PyObject * pysqlite_register_adapter_impl(PyObject *module, PyTypeObject *type, PyObject *caster) -/*[clinic end generated code: output=a287e8db18e8af23 input=b4bd87afcadc535d]*/ +/*[clinic end generated code: output=a287e8db18e8af23 input=29a5e0f213030242]*/ { int rc; @@ -142,17 +139,17 @@ pysqlite_register_adapter_impl(PyObject *module, PyTypeObject *type, /*[clinic input] _sqlite3.register_converter as pysqlite_register_converter - name as orig_name: unicode + typename as orig_name: unicode converter as callable: object / -Registers a converter with sqlite3. +Register a function to convert SQLite values to Python objects. [clinic start generated code]*/ static PyObject * pysqlite_register_converter_impl(PyObject *module, PyObject *orig_name, PyObject *callable) -/*[clinic end generated code: output=a2f2bfeed7230062 input=90f645419425d6c4]*/ +/*[clinic end generated code: output=a2f2bfeed7230062 input=159a444971b40378]*/ { PyObject* name = NULL; PyObject* retval = NULL; @@ -227,14 +224,8 @@ static int converters_init(PyObject* module) static int load_functools_lru_cache(PyObject *module) { - PyObject *functools = PyImport_ImportModule("functools"); - if (functools == NULL) { - return -1; - } - pysqlite_state *state = pysqlite_get_state(module); - state->lru_cache = PyObject_GetAttrString(functools, "lru_cache"); - Py_DECREF(functools); + state->lru_cache = _PyImport_GetModuleAttrString("functools", "lru_cache"); if (state->lru_cache == NULL) { return -1; } @@ -707,7 +698,7 @@ module_exec(PyObject *module) goto error; } - if (PyModule_AddStringConstant(module, "version", PYSQLITE_VERSION) < 0) { + if (PyModule_AddStringConstant(module, "_deprecated_version", PYSQLITE_VERSION) < 0) { goto error; } diff --git a/Modules/_sqlite/prepare_protocol.c b/Modules/_sqlite/prepare_protocol.c index cefb46e390ad6b..44533225665dab 100644 --- a/Modules/_sqlite/prepare_protocol.c +++ b/Modules/_sqlite/prepare_protocol.c @@ -46,10 +46,13 @@ pysqlite_prepare_protocol_dealloc(pysqlite_PrepareProtocol *self) Py_DECREF(tp); } +PyDoc_STRVAR(doc, "PEP 246 style object adaption protocol type."); + static PyType_Slot type_slots[] = { {Py_tp_dealloc, pysqlite_prepare_protocol_dealloc}, {Py_tp_init, pysqlite_prepare_protocol_init}, {Py_tp_traverse, pysqlite_prepare_protocol_traverse}, + {Py_tp_doc, (void *)doc}, {0, NULL}, }; diff --git a/Modules/_sqlite/statement.c b/Modules/_sqlite/statement.c index f9cb70f0ef146c..229bfc3b504165 100644 --- a/Modules/_sqlite/statement.c +++ b/Modules/_sqlite/statement.c @@ -26,16 +26,7 @@ #include "util.h" /* prototypes */ -static int pysqlite_check_remaining_sql(const char* tail); - -typedef enum { - LINECOMMENT_1, - IN_LINECOMMENT, - COMMENTSTART_1, - IN_COMMENT, - COMMENTEND_1, - NORMAL -} parse_remaining_sql_state; +static const char *lstrip_sql(const char *sql); pysqlite_Statement * pysqlite_statement_create(pysqlite_Connection *connection, PyObject *sql) @@ -73,7 +64,7 @@ pysqlite_statement_create(pysqlite_Connection *connection, PyObject *sql) return NULL; } - if (pysqlite_check_remaining_sql(tail)) { + if (lstrip_sql(tail) != NULL) { PyErr_SetString(connection->ProgrammingError, "You can only execute one statement at a time."); goto error; @@ -82,20 +73,12 @@ pysqlite_statement_create(pysqlite_Connection *connection, PyObject *sql) /* Determine if the statement is a DML statement. SELECT is the only exception. See #9924. */ int is_dml = 0; - for (const char *p = sql_cstr; *p != 0; p++) { - switch (*p) { - case ' ': - case '\r': - case '\n': - case '\t': - continue; - } - + const char *p = lstrip_sql(sql_cstr); + if (p != NULL) { is_dml = (PyOS_strnicmp(p, "insert", 6) == 0) || (PyOS_strnicmp(p, "update", 6) == 0) || (PyOS_strnicmp(p, "delete", 6) == 0) || (PyOS_strnicmp(p, "replace", 7) == 0); - break; } pysqlite_Statement *self = PyObject_GC_New(pysqlite_Statement, @@ -105,7 +88,6 @@ pysqlite_statement_create(pysqlite_Connection *connection, PyObject *sql) } self->st = stmt; - self->in_use = 0; self->is_dml = is_dml; PyObject_GC_Track(self); @@ -139,73 +121,61 @@ stmt_traverse(pysqlite_Statement *self, visitproc visit, void *arg) } /* - * Checks if there is anything left in an SQL string after SQLite compiled it. - * This is used to check if somebody tried to execute more than one SQL command - * with one execute()/executemany() command, which the DB-API and we don't - * allow. + * Strip leading whitespace and comments from incoming SQL (null terminated C + * string) and return a pointer to the first non-whitespace, non-comment + * character. * - * Returns 1 if there is more left than should be. 0 if ok. + * This is used to check if somebody tries to execute more than one SQL query + * with one execute()/executemany() command, which the DB-API don't allow. + * + * It is also used to harden DML query detection. */ -static int pysqlite_check_remaining_sql(const char* tail) +static inline const char * +lstrip_sql(const char *sql) { - const char* pos = tail; - - parse_remaining_sql_state state = NORMAL; - - for (;;) { + // This loop is borrowed from the SQLite source code. + for (const char *pos = sql; *pos; pos++) { switch (*pos) { - case 0: - return 0; - case '-': - if (state == NORMAL) { - state = LINECOMMENT_1; - } else if (state == LINECOMMENT_1) { - state = IN_LINECOMMENT; - } - break; case ' ': case '\t': - break; + case '\f': case '\n': - case 13: - if (state == IN_LINECOMMENT) { - state = NORMAL; - } + case '\r': + // Skip whitespace. break; - case '/': - if (state == NORMAL) { - state = COMMENTSTART_1; - } else if (state == COMMENTEND_1) { - state = NORMAL; - } else if (state == COMMENTSTART_1) { - return 1; + case '-': + // Skip line comments. + if (pos[1] == '-') { + pos += 2; + while (pos[0] && pos[0] != '\n') { + pos++; + } + if (pos[0] == '\0') { + return NULL; + } + continue; } - break; - case '*': - if (state == NORMAL) { - return 1; - } else if (state == LINECOMMENT_1) { - return 1; - } else if (state == COMMENTSTART_1) { - state = IN_COMMENT; - } else if (state == IN_COMMENT) { - state = COMMENTEND_1; + return pos; + case '/': + // Skip C style comments. + if (pos[1] == '*') { + pos += 2; + while (pos[0] && (pos[0] != '*' || pos[1] != '/')) { + pos++; + } + if (pos[0] == '\0') { + return NULL; + } + pos++; + continue; } - break; + return pos; default: - if (state == COMMENTEND_1) { - state = IN_COMMENT; - } else if (state == IN_LINECOMMENT) { - } else if (state == IN_COMMENT) { - } else { - return 1; - } + return pos; } - - pos++; } - return 0; + return NULL; } static PyType_Slot stmt_slots[] = { diff --git a/Modules/_sqlite/statement.h b/Modules/_sqlite/statement.h index 5e61227424bafa..11a6464b1a1c2b 100644 --- a/Modules/_sqlite/statement.h +++ b/Modules/_sqlite/statement.h @@ -33,7 +33,6 @@ typedef struct { PyObject_HEAD sqlite3_stmt* st; - int in_use; int is_dml; } pysqlite_Statement; diff --git a/Modules/_sre/clinic/sre.c.h b/Modules/_sre/clinic/sre.c.h index e243c756e1f971..711e16a1190d77 100644 --- a/Modules/_sre/clinic/sre.c.h +++ b/Modules/_sre/clinic/sre.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_sre_getcodesize__doc__, "getcodesize($module, /)\n" "--\n" @@ -175,8 +181,31 @@ static PyObject * _sre_SRE_Pattern_match(PatternObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(string), &_Py_ID(pos), &_Py_ID(endpos), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"string", "pos", "endpos", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "match", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "match", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *string; @@ -245,8 +274,31 @@ static PyObject * _sre_SRE_Pattern_fullmatch(PatternObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(string), &_Py_ID(pos), &_Py_ID(endpos), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"string", "pos", "endpos", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "fullmatch", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "fullmatch", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *string; @@ -317,8 +369,31 @@ static PyObject * _sre_SRE_Pattern_search(PatternObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(string), &_Py_ID(pos), &_Py_ID(endpos), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"string", "pos", "endpos", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "search", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "search", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *string; @@ -386,8 +461,31 @@ static PyObject * _sre_SRE_Pattern_findall(PatternObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(string), &_Py_ID(pos), &_Py_ID(endpos), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"string", "pos", "endpos", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "findall", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "findall", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *string; @@ -458,8 +556,31 @@ static PyObject * _sre_SRE_Pattern_finditer(PatternObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(string), &_Py_ID(pos), &_Py_ID(endpos), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"string", "pos", "endpos", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "finditer", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "finditer", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *string; @@ -527,8 +648,31 @@ static PyObject * _sre_SRE_Pattern_scanner(PatternObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(string), &_Py_ID(pos), &_Py_ID(endpos), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"string", "pos", "endpos", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "scanner", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "scanner", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *string; @@ -596,8 +740,31 @@ static PyObject * _sre_SRE_Pattern_split(PatternObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(string), &_Py_ID(maxsplit), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"string", "maxsplit", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "split", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "split", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *string; @@ -647,8 +814,31 @@ static PyObject * _sre_SRE_Pattern_sub(PatternObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(repl), &_Py_ID(string), &_Py_ID(count), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"repl", "string", "count", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "sub", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "sub", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; PyObject *repl; @@ -701,8 +891,31 @@ static PyObject * _sre_SRE_Pattern_subn(PatternObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(repl), &_Py_ID(string), &_Py_ID(count), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"repl", "string", "count", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "subn", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "subn", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; PyObject *repl; @@ -764,7 +977,7 @@ PyDoc_STRVAR(_sre_SRE_Pattern___deepcopy____doc__, PyDoc_STRVAR(_sre_compile__doc__, "compile($module, /, pattern, flags, code, groups, groupindex,\n" -" indexgroup, repeat_count)\n" +" indexgroup)\n" "--\n" "\n"); @@ -774,24 +987,46 @@ PyDoc_STRVAR(_sre_compile__doc__, static PyObject * _sre_compile_impl(PyObject *module, PyObject *pattern, int flags, PyObject *code, Py_ssize_t groups, PyObject *groupindex, - PyObject *indexgroup, Py_ssize_t repeat_count); + PyObject *indexgroup); static PyObject * _sre_compile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - static const char * const _keywords[] = {"pattern", "flags", "code", "groups", "groupindex", "indexgroup", "repeat_count", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "compile", 0}; - PyObject *argsbuf[7]; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 6 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(pattern), &_Py_ID(flags), &_Py_ID(code), &_Py_ID(groups), &_Py_ID(groupindex), &_Py_ID(indexgroup), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + + static const char * const _keywords[] = {"pattern", "flags", "code", "groups", "groupindex", "indexgroup", NULL}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "compile", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE + PyObject *argsbuf[6]; PyObject *pattern; int flags; PyObject *code; Py_ssize_t groups; PyObject *groupindex; PyObject *indexgroup; - Py_ssize_t repeat_count; - args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 7, 7, 0, argsbuf); + args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 6, 6, 0, argsbuf); if (!args) { goto exit; } @@ -827,19 +1062,7 @@ _sre_compile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject goto exit; } indexgroup = args[5]; - { - Py_ssize_t ival = -1; - PyObject *iobj = _PyNumber_Index(args[6]); - if (iobj != NULL) { - ival = PyLong_AsSsize_t(iobj); - Py_DECREF(iobj); - } - if (ival == -1 && PyErr_Occurred()) { - goto exit; - } - repeat_count = ival; - } - return_value = _sre_compile_impl(module, pattern, flags, code, groups, groupindex, indexgroup, repeat_count); + return_value = _sre_compile_impl(module, pattern, flags, code, groups, groupindex, indexgroup); exit: return return_value; @@ -861,8 +1084,31 @@ static PyObject * _sre_SRE_Match_expand(MatchObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(template), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"template", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "expand", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "expand", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject *template; @@ -896,8 +1142,31 @@ static PyObject * _sre_SRE_Match_groups(MatchObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(default), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"default", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "groups", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "groups", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *default_value = Py_None; @@ -936,8 +1205,31 @@ static PyObject * _sre_SRE_Match_groupdict(MatchObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(default), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"default", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "groupdict", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "groupdict", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *default_value = Py_None; @@ -1129,4 +1421,4 @@ _sre_SRE_Scanner_search(ScannerObject *self, PyTypeObject *cls, PyObject *const } return _sre_SRE_Scanner_search_impl(self, cls); } -/*[clinic end generated code: output=97e7ce058366760b input=a9049054013a1b77]*/ +/*[clinic end generated code: output=14ea86f85c130a7b input=a9049054013a1b77]*/ diff --git a/Modules/_sre/sre.c b/Modules/_sre/sre.c index 491734f243849b..bcb30848d9a592 100644 --- a/Modules/_sre/sre.c +++ b/Modules/_sre/sre.c @@ -427,12 +427,6 @@ state_init(SRE_STATE* state, PatternObject* pattern, PyObject* string, state->lastmark = -1; state->lastindex = -1; - state->repeats_array = PyMem_New(SRE_REPEAT, pattern->repeat_count); - if (!state->repeats_array) { - PyErr_NoMemory(); - goto err; - } - state->buffer.buf = NULL; ptr = getstring(string, &length, &isbytes, &charsize, &state->buffer); if (!ptr) @@ -482,9 +476,6 @@ state_init(SRE_STATE* state, PatternObject* pattern, PyObject* string, safely casted to `void*`, see bpo-39943 for details. */ PyMem_Free((void*) state->mark); state->mark = NULL; - PyMem_Free(state->repeats_array); - state->repeats_array = NULL; - if (state->buffer.buf) PyBuffer_Release(&state->buffer); return NULL; @@ -500,8 +491,6 @@ state_fini(SRE_STATE* state) /* See above PyMem_Del for why we explicitly cast here. */ PyMem_Free((void*) state->mark); state->mark = NULL; - PyMem_Free(state->repeats_array); - state->repeats_array = NULL; } /* calculate offset from start of string */ @@ -771,22 +760,12 @@ _sre_SRE_Pattern_search_impl(PatternObject *self, PyTypeObject *cls, static PyObject* call(const char* module, const char* function, PyObject* args) { - PyObject* name; - PyObject* mod; PyObject* func; PyObject* result; if (!args) return NULL; - name = PyUnicode_FromString(module); - if (!name) - return NULL; - mod = PyImport_Import(name); - Py_DECREF(name); - if (!mod) - return NULL; - func = PyObject_GetAttrString(mod, function); - Py_DECREF(mod); + func = _PyImport_GetModuleAttrString(module, function); if (!func) return NULL; result = PyObject_CallObject(func, args); @@ -1418,15 +1397,14 @@ _sre.compile groups: Py_ssize_t groupindex: object(subclass_of='&PyDict_Type') indexgroup: object(subclass_of='&PyTuple_Type') - repeat_count: Py_ssize_t [clinic start generated code]*/ static PyObject * _sre_compile_impl(PyObject *module, PyObject *pattern, int flags, PyObject *code, Py_ssize_t groups, PyObject *groupindex, - PyObject *indexgroup, Py_ssize_t repeat_count) -/*[clinic end generated code: output=922af562d51b1657 input=77e39c322501ec2a]*/ + PyObject *indexgroup) +/*[clinic end generated code: output=ef9c2b3693776404 input=0a68476dbbe5db30]*/ { /* "compile" pattern descriptor to pattern object */ @@ -1484,8 +1462,8 @@ _sre_compile_impl(PyObject *module, PyObject *pattern, int flags, self->pattern = pattern; self->flags = flags; + self->groups = groups; - self->repeat_count = repeat_count; if (PyDict_GET_SIZE(groupindex) > 0) { Py_INCREF(groupindex); @@ -1657,7 +1635,7 @@ _validate_charset(SRE_CODE *code, SRE_CODE *end) } static int -_validate_inner(SRE_CODE *code, SRE_CODE *end, PatternObject *self) +_validate_inner(SRE_CODE *code, SRE_CODE *end, Py_ssize_t groups) { /* Some variables are manipulated by the macros above */ SRE_CODE op; @@ -1678,8 +1656,8 @@ _validate_inner(SRE_CODE *code, SRE_CODE *end, PatternObject *self) sre_match() code is robust even if they don't, and the worst you can get is nonsensical match results. */ GET_ARG; - if (arg > 2 * (size_t)self->groups + 1) { - VTRACE(("arg=%d, groups=%d\n", (int)arg, (int)self->groups)); + if (arg > 2 * (size_t)groups + 1) { + VTRACE(("arg=%d, groups=%d\n", (int)arg, (int)groups)); FAIL; } break; @@ -1808,7 +1786,7 @@ _validate_inner(SRE_CODE *code, SRE_CODE *end, PatternObject *self) if (skip == 0) break; /* Stop 2 before the end; we check the JUMP below */ - if (!_validate_inner(code, code+skip-3, self)) + if (!_validate_inner(code, code+skip-3, groups)) FAIL; code += skip-3; /* Check that it ends with a JUMP, and that each JUMP @@ -1837,7 +1815,7 @@ _validate_inner(SRE_CODE *code, SRE_CODE *end, PatternObject *self) FAIL; if (max > SRE_MAXREPEAT) FAIL; - if (!_validate_inner(code, code+skip-4, self)) + if (!_validate_inner(code, code+skip-4, groups)) FAIL; code += skip-4; GET_OP; @@ -1849,7 +1827,7 @@ _validate_inner(SRE_CODE *code, SRE_CODE *end, PatternObject *self) case SRE_OP_REPEAT: case SRE_OP_POSSESSIVE_REPEAT: { - SRE_CODE op1 = op, min, max, repeat_index; + SRE_CODE op1 = op, min, max; GET_SKIP; GET_ARG; min = arg; GET_ARG; max = arg; @@ -1857,17 +1835,9 @@ _validate_inner(SRE_CODE *code, SRE_CODE *end, PatternObject *self) FAIL; if (max > SRE_MAXREPEAT) FAIL; - if (op1 == SRE_OP_REPEAT) { - GET_ARG; repeat_index = arg; - if (repeat_index >= (size_t)self->repeat_count) - FAIL; - skip -= 4; - } else { - skip -= 3; - } - if (!_validate_inner(code, code+skip, self)) + if (!_validate_inner(code, code+skip-3, groups)) FAIL; - code += skip; + code += skip-3; GET_OP; if (op1 == SRE_OP_POSSESSIVE_REPEAT) { if (op != SRE_OP_SUCCESS) @@ -1883,7 +1853,7 @@ _validate_inner(SRE_CODE *code, SRE_CODE *end, PatternObject *self) case SRE_OP_ATOMIC_GROUP: { GET_SKIP; - if (!_validate_inner(code, code+skip-2, self)) + if (!_validate_inner(code, code+skip-2, groups)) FAIL; code += skip-2; GET_OP; @@ -1897,7 +1867,7 @@ _validate_inner(SRE_CODE *code, SRE_CODE *end, PatternObject *self) case SRE_OP_GROUPREF_UNI_IGNORE: case SRE_OP_GROUPREF_LOC_IGNORE: GET_ARG; - if (arg >= (size_t)self->groups) + if (arg >= (size_t)groups) FAIL; break; @@ -1906,7 +1876,7 @@ _validate_inner(SRE_CODE *code, SRE_CODE *end, PatternObject *self) 'group' is either an integer group number or a group name, 'then' and 'else' are sub-regexes, and 'else' is optional. */ GET_ARG; - if (arg >= (size_t)self->groups) + if (arg >= (size_t)groups) FAIL; GET_SKIP_ADJ(1); code--; /* The skip is relative to the first arg! */ @@ -1939,17 +1909,17 @@ _validate_inner(SRE_CODE *code, SRE_CODE *end, PatternObject *self) code[skip-3] == SRE_OP_JUMP) { VTRACE(("both then and else parts present\n")); - if (!_validate_inner(code+1, code+skip-3, self)) + if (!_validate_inner(code+1, code+skip-3, groups)) FAIL; code += skip-2; /* Position after JUMP, at <skipno> */ GET_SKIP; - if (!_validate_inner(code, code+skip-1, self)) + if (!_validate_inner(code, code+skip-1, groups)) FAIL; code += skip-1; } else { VTRACE(("only a then part present\n")); - if (!_validate_inner(code+1, code+skip-1, self)) + if (!_validate_inner(code+1, code+skip-1, groups)) FAIL; code += skip-1; } @@ -1963,7 +1933,7 @@ _validate_inner(SRE_CODE *code, SRE_CODE *end, PatternObject *self) if (arg & 0x80000000) FAIL; /* Width too large */ /* Stop 1 before the end; we check the SUCCESS below */ - if (!_validate_inner(code+1, code+skip-2, self)) + if (!_validate_inner(code+1, code+skip-2, groups)) FAIL; code += skip-2; GET_OP; @@ -1982,19 +1952,18 @@ _validate_inner(SRE_CODE *code, SRE_CODE *end, PatternObject *self) } static int -_validate_outer(SRE_CODE *code, SRE_CODE *end, PatternObject *self) +_validate_outer(SRE_CODE *code, SRE_CODE *end, Py_ssize_t groups) { - if (self->groups < 0 || (size_t)self->groups > SRE_MAXGROUPS || - self->repeat_count < 0 || + if (groups < 0 || (size_t)groups > SRE_MAXGROUPS || code >= end || end[-1] != SRE_OP_SUCCESS) FAIL; - return _validate_inner(code, end-1, self); + return _validate_inner(code, end-1, groups); } static int _validate(PatternObject *self) { - if (!_validate_outer(self->code, self->code+self->codesize, self)) + if (!_validate_outer(self->code, self->code+self->codesize, self->groups)) { PyErr_SetString(PyExc_RuntimeError, "invalid SRE code"); return 0; diff --git a/Modules/_sre/sre.h b/Modules/_sre/sre.h index aff064d343ec4c..52ae3e11b5f750 100644 --- a/Modules/_sre/sre.h +++ b/Modules/_sre/sre.h @@ -29,8 +29,6 @@ typedef struct { Py_ssize_t groups; /* must be first! */ PyObject* groupindex; /* dict */ PyObject* indexgroup; /* tuple */ - /* the number of REPEATs */ - Py_ssize_t repeat_count; /* compatibility */ PyObject* pattern; /* pattern source (or None) */ int flags; /* flags used when compiling pattern source */ @@ -85,8 +83,6 @@ typedef struct { size_t data_stack_base; /* current repeat context */ SRE_REPEAT *repeat; - /* repeat contexts array */ - SRE_REPEAT *repeats_array; } SRE_STATE; typedef struct { diff --git a/Modules/_sre/sre_constants.h b/Modules/_sre/sre_constants.h index 590d5be7cb4d94..c6335147368626 100644 --- a/Modules/_sre/sre_constants.h +++ b/Modules/_sre/sre_constants.h @@ -11,7 +11,7 @@ * See the sre.c file for information on usage and redistribution. */ -#define SRE_MAGIC 20220423 +#define SRE_MAGIC 20220615 #define SRE_OP_FAILURE 0 #define SRE_OP_SUCCESS 1 #define SRE_OP_ANY 2 diff --git a/Modules/_sre/sre_lib.h b/Modules/_sre/sre_lib.h index 1e5b50170ae76e..fb4c18b63d643d 100644 --- a/Modules/_sre/sre_lib.h +++ b/Modules/_sre/sre_lib.h @@ -1079,12 +1079,17 @@ SRE(match)(SRE_STATE* state, const SRE_CODE* pattern, int toplevel) by the UNTIL operator (MAX_UNTIL, MIN_UNTIL) */ /* <REPEAT> <skip> <1=min> <2=max> <3=repeat_index> item <UNTIL> tail */ - TRACE(("|%p|%p|REPEAT %d %d %d\n", pattern, ptr, - pattern[1], pattern[2], pattern[3])); - - /* install repeat context */ - ctx->u.rep = &state->repeats_array[pattern[3]]; + TRACE(("|%p|%p|REPEAT %d %d\n", pattern, ptr, + pattern[1], pattern[2])); + /* install new repeat context */ + /* TODO(https://github.com/python/cpython/issues/67877): Fix this + * potential memory leak. */ + ctx->u.rep = (SRE_REPEAT*) PyObject_Malloc(sizeof(*ctx->u.rep)); + if (!ctx->u.rep) { + PyErr_NoMemory(); + RETURN_FAILURE; + } ctx->u.rep->count = -1; ctx->u.rep->pattern = pattern; ctx->u.rep->prev = state->repeat; @@ -1094,6 +1099,7 @@ SRE(match)(SRE_STATE* state, const SRE_CODE* pattern, int toplevel) state->ptr = ptr; DO_JUMP(JUMP_REPEAT, jump_repeat, pattern+pattern[0]); state->repeat = ctx->u.rep->prev; + PyObject_Free(ctx->u.rep); if (ret) { RETURN_ON_ERROR(ret); @@ -1103,8 +1109,7 @@ SRE(match)(SRE_STATE* state, const SRE_CODE* pattern, int toplevel) TARGET(SRE_OP_MAX_UNTIL): /* maximizing repeat */ - /* <REPEAT> <skip> <1=min> <2=max> - <3=repeat_index> item <MAX_UNTIL> tail */ + /* <REPEAT> <skip> <1=min> <2=max> item <MAX_UNTIL> tail */ /* FIXME: we probably need to deal with zero-width matches in here... */ @@ -1124,7 +1129,7 @@ SRE(match)(SRE_STATE* state, const SRE_CODE* pattern, int toplevel) /* not enough matches */ ctx->u.rep->count = ctx->count; DO_JUMP(JUMP_MAX_UNTIL_1, jump_max_until_1, - ctx->u.rep->pattern+4); + ctx->u.rep->pattern+3); if (ret) { RETURN_ON_ERROR(ret); RETURN_SUCCESS; @@ -1146,7 +1151,7 @@ SRE(match)(SRE_STATE* state, const SRE_CODE* pattern, int toplevel) DATA_PUSH(&ctx->u.rep->last_ptr); ctx->u.rep->last_ptr = state->ptr; DO_JUMP(JUMP_MAX_UNTIL_2, jump_max_until_2, - ctx->u.rep->pattern+4); + ctx->u.rep->pattern+3); DATA_POP(&ctx->u.rep->last_ptr); if (ret) { MARK_POP_DISCARD(ctx->lastmark); @@ -1171,8 +1176,7 @@ SRE(match)(SRE_STATE* state, const SRE_CODE* pattern, int toplevel) TARGET(SRE_OP_MIN_UNTIL): /* minimizing repeat */ - /* <REPEAT> <skip> <1=min> <2=max> - <3=repeat_index> item <MIN_UNTIL> tail */ + /* <REPEAT> <skip> <1=min> <2=max> item <MIN_UNTIL> tail */ ctx->u.rep = state->repeat; if (!ctx->u.rep) @@ -1189,7 +1193,7 @@ SRE(match)(SRE_STATE* state, const SRE_CODE* pattern, int toplevel) /* not enough matches */ ctx->u.rep->count = ctx->count; DO_JUMP(JUMP_MIN_UNTIL_1, jump_min_until_1, - ctx->u.rep->pattern+4); + ctx->u.rep->pattern+3); if (ret) { RETURN_ON_ERROR(ret); RETURN_SUCCESS; @@ -1232,7 +1236,7 @@ SRE(match)(SRE_STATE* state, const SRE_CODE* pattern, int toplevel) DATA_PUSH(&ctx->u.rep->last_ptr); ctx->u.rep->last_ptr = state->ptr; DO_JUMP(JUMP_MIN_UNTIL_3,jump_min_until_3, - ctx->u.rep->pattern+4); + ctx->u.rep->pattern+3); DATA_POP(&ctx->u.rep->last_ptr); if (ret) { RETURN_ON_ERROR(ret); diff --git a/Modules/_ssl.c b/Modules/_ssl.c index e67ab42050b26c..bf8bd9dea89b6b 100644 --- a/Modules/_ssl.c +++ b/Modules/_ssl.c @@ -138,9 +138,6 @@ extern const SSL_METHOD *TLSv1_2_method(void); #define INVALID_SOCKET (-1) #endif -/* OpenSSL 1.1 does not have SSL 2.0 */ -#define OPENSSL_NO_SSL2 - /* Default cipher suites */ #ifndef PY_SSL_DEFAULT_CIPHERS #define PY_SSL_DEFAULT_CIPHERS 1 @@ -3518,7 +3515,7 @@ set_min_max_proto_version(PySSLContext *self, PyObject *arg, int what) static PyObject * get_minimum_version(PySSLContext *self, void *c) { - int v = SSL_CTX_ctrl(self->ctx, SSL_CTRL_GET_MIN_PROTO_VERSION, 0, NULL); + int v = SSL_CTX_get_min_proto_version(self->ctx); if (v == 0) { v = PY_PROTO_MINIMUM_SUPPORTED; } @@ -3534,7 +3531,7 @@ set_minimum_version(PySSLContext *self, PyObject *arg, void *c) static PyObject * get_maximum_version(PySSLContext *self, void *c) { - int v = SSL_CTX_ctrl(self->ctx, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL); + int v = SSL_CTX_get_max_proto_version(self->ctx); if (v == 0) { v = PY_PROTO_MAXIMUM_SUPPORTED; } @@ -4305,7 +4302,11 @@ static PyObject * _ssl__SSLContext_set_default_verify_paths_impl(PySSLContext *self) /*[clinic end generated code: output=0bee74e6e09deaaa input=35f3408021463d74]*/ { - if (!SSL_CTX_set_default_verify_paths(self->ctx)) { + int rc; + Py_BEGIN_ALLOW_THREADS + rc = SSL_CTX_set_default_verify_paths(self->ctx); + Py_END_ALLOW_THREADS + if (!rc) { _setSSLError(get_state_ctx(self), NULL, 0, __FILE__, __LINE__); return NULL; } @@ -5067,7 +5068,8 @@ static PyType_Spec PySSLSession_spec = { .name = "_ssl.SSLSession", .basicsize = sizeof(PySSLSession), .flags = (Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | - Py_TPFLAGS_IMMUTABLETYPE), + Py_TPFLAGS_IMMUTABLETYPE | + Py_TPFLAGS_DISALLOW_INSTANTIATION), .slots = PySSLSession_slots, }; @@ -5157,24 +5159,6 @@ _ssl_RAND_bytes_impl(PyObject *module, int n) return PySSL_RAND(module, n, 0); } -/*[clinic input] -_ssl.RAND_pseudo_bytes - n: int - / - -Generate n pseudo-random bytes. - -Return a pair (bytes, is_cryptographic). is_cryptographic is True -if the bytes generated are cryptographically strong. -[clinic start generated code]*/ - -static PyObject * -_ssl_RAND_pseudo_bytes_impl(PyObject *module, int n) -/*[clinic end generated code: output=b1509e937000e52d input=58312bd53f9bbdd0]*/ -{ - PY_SSL_DEPRECATED("ssl.RAND_pseudo_bytes() is deprecated", 1, NULL); - return PySSL_RAND(module, n, 1); -} /*[clinic input] _ssl.RAND_status @@ -5633,7 +5617,6 @@ static PyMethodDef PySSL_methods[] = { _SSL__TEST_DECODE_CERT_METHODDEF _SSL_RAND_ADD_METHODDEF _SSL_RAND_BYTES_METHODDEF - _SSL_RAND_PSEUDO_BYTES_METHODDEF _SSL_RAND_STATUS_METHODDEF _SSL_GET_DEFAULT_VERIFY_PATHS_METHODDEF _SSL_ENUM_CERTIFICATES_METHODDEF @@ -5843,10 +5826,6 @@ sslmodule_init_constants(PyObject *m) #undef ADD_AD_CONSTANT /* protocol versions */ -#ifndef OPENSSL_NO_SSL2 - PyModule_AddIntConstant(m, "PROTOCOL_SSLv2", - PY_SSL_VERSION_SSL2); -#endif #ifndef OPENSSL_NO_SSL3 PyModule_AddIntConstant(m, "PROTOCOL_SSLv3", PY_SSL_VERSION_SSL3); @@ -5956,11 +5935,7 @@ sslmodule_init_constants(PyObject *m) addbool(m, "HAS_NPN", 0); addbool(m, "HAS_ALPN", 1); -#if defined(SSL2_VERSION) && !defined(OPENSSL_NO_SSL2) - addbool(m, "HAS_SSLv2", 1); -#else addbool(m, "HAS_SSLv2", 0); -#endif #if defined(SSL3_VERSION) && !defined(OPENSSL_NO_SSL3) addbool(m, "HAS_SSLv3", 1); diff --git a/Modules/_ssl/clinic/cert.c.h b/Modules/_ssl/clinic/cert.c.h index 53cedabc3f7b47..a052ab2086fd96 100644 --- a/Modules/_ssl/clinic/cert.c.h +++ b/Modules/_ssl/clinic/cert.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_ssl_Certificate_public_bytes__doc__, "public_bytes($self, /, format=Encoding.PEM)\n" "--\n" @@ -17,8 +23,31 @@ static PyObject * _ssl_Certificate_public_bytes(PySSLCertificate *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(format), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"format", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "public_bytes", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "public_bytes", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int format = PY_SSL_ENCODING_PEM; @@ -57,4 +86,4 @@ _ssl_Certificate_get_info(PySSLCertificate *self, PyObject *Py_UNUSED(ignored)) { return _ssl_Certificate_get_info_impl(self); } -/*[clinic end generated code: output=18885c4d167d5244 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=82efada014f9b7fe input=a9049054013a1b77]*/ diff --git a/Modules/_statisticsmodule.c b/Modules/_statisticsmodule.c index 78c0676a01f027..b9d1e4f1616036 100644 --- a/Modules/_statisticsmodule.c +++ b/Modules/_statisticsmodule.c @@ -31,7 +31,7 @@ _statistics__normal_dist_inv_cdf_impl(PyObject *module, double p, double mu, /*[clinic end generated code: output=02fd19ddaab36602 input=24715a74be15296a]*/ { double q, num, den, r, x; - if (p <= 0.0 || p >= 1.0 || sigma <= 0.0) { + if (p <= 0.0 || p >= 1.0) { goto error; } diff --git a/Modules/_struct.c b/Modules/_struct.c index 4daf9529d882c5..9d66568a282662 100644 --- a/Modules/_struct.c +++ b/Modules/_struct.c @@ -1496,10 +1496,26 @@ Struct___init___impl(PyStructObject *self, PyObject *format) return ret; } +static int +s_clear(PyStructObject *s) +{ + Py_CLEAR(s->s_format); + return 0; +} + +static int +s_traverse(PyStructObject *s, visitproc visit, void *arg) +{ + Py_VISIT(Py_TYPE(s)); + Py_VISIT(s->s_format); + return 0; +} + static void s_dealloc(PyStructObject *s) { PyTypeObject *tp = Py_TYPE(s); + PyObject_GC_UnTrack(s); if (s->weakreflist != NULL) PyObject_ClearWeakRefs((PyObject *)s); if (s->s_codes != NULL) { @@ -1725,7 +1741,8 @@ static PyType_Spec unpackiter_type_spec = { "_struct.unpack_iterator", sizeof(unpackiterobject), 0, - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, + (Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | + Py_TPFLAGS_IMMUTABLETYPE), unpackiter_type_slots }; @@ -2078,13 +2095,15 @@ static PyType_Slot PyStructType_slots[] = { {Py_tp_getattro, PyObject_GenericGetAttr}, {Py_tp_setattro, PyObject_GenericSetAttr}, {Py_tp_doc, (void*)s__doc__}, + {Py_tp_traverse, s_traverse}, + {Py_tp_clear, s_clear}, {Py_tp_methods, s_methods}, {Py_tp_members, s_members}, {Py_tp_getset, s_getsetlist}, {Py_tp_init, Struct___init__}, {Py_tp_alloc, PyType_GenericAlloc}, {Py_tp_new, s_new}, - {Py_tp_free, PyObject_Del}, + {Py_tp_free, PyObject_GC_Del}, {0, 0}, }; @@ -2092,7 +2111,8 @@ static PyType_Spec PyStructType_spec = { "_struct.Struct", sizeof(PyStructObject), 0, - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, + (Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | + Py_TPFLAGS_BASETYPE | Py_TPFLAGS_IMMUTABLETYPE), PyStructType_slots }; diff --git a/Modules/_testcapi/README.txt b/Modules/_testcapi/README.txt new file mode 100644 index 00000000000000..134b6efc638095 --- /dev/null +++ b/Modules/_testcapi/README.txt @@ -0,0 +1,3 @@ +Tests in this directory are compiled into the _testcapi extension. +The main file for the extension is Modules/_testcapimodule.c, which +calls `_PyTestCapi_Init_*` from these functions. diff --git a/Modules/_testcapi/clinic/vectorcall.c.h b/Modules/_testcapi/clinic/vectorcall.c.h new file mode 100644 index 00000000000000..765afeda9b306c --- /dev/null +++ b/Modules/_testcapi/clinic/vectorcall.c.h @@ -0,0 +1,113 @@ +/*[clinic input] +preserve +[clinic start generated code]*/ + +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + +PyDoc_STRVAR(_testcapi_VectorCallClass_set_vectorcall__doc__, +"set_vectorcall($self, type, /)\n" +"--\n" +"\n" +"Set self\'s vectorcall function for `type` to one that returns \"vectorcall\""); + +#define _TESTCAPI_VECTORCALLCLASS_SET_VECTORCALL_METHODDEF \ + {"set_vectorcall", (PyCFunction)_testcapi_VectorCallClass_set_vectorcall, METH_O, _testcapi_VectorCallClass_set_vectorcall__doc__}, + +static PyObject * +_testcapi_VectorCallClass_set_vectorcall_impl(PyObject *self, + PyTypeObject *type); + +static PyObject * +_testcapi_VectorCallClass_set_vectorcall(PyObject *self, PyObject *arg) +{ + PyObject *return_value = NULL; + PyTypeObject *type; + + if (!PyObject_TypeCheck(arg, &PyType_Type)) { + _PyArg_BadArgument("set_vectorcall", "argument", (&PyType_Type)->tp_name, arg); + goto exit; + } + type = (PyTypeObject *)arg; + return_value = _testcapi_VectorCallClass_set_vectorcall_impl(self, type); + +exit: + return return_value; +} + +PyDoc_STRVAR(_testcapi_make_vectorcall_class__doc__, +"make_vectorcall_class($module, base=<unrepresentable>, /)\n" +"--\n" +"\n" +"Create a class whose instances return \"tpcall\" when called.\n" +"\n" +"When the \"set_vectorcall\" method is called on an instance, a vectorcall\n" +"function that returns \"vectorcall\" will be installed."); + +#define _TESTCAPI_MAKE_VECTORCALL_CLASS_METHODDEF \ + {"make_vectorcall_class", _PyCFunction_CAST(_testcapi_make_vectorcall_class), METH_FASTCALL, _testcapi_make_vectorcall_class__doc__}, + +static PyObject * +_testcapi_make_vectorcall_class_impl(PyObject *module, PyTypeObject *base); + +static PyObject * +_testcapi_make_vectorcall_class(PyObject *module, PyObject *const *args, Py_ssize_t nargs) +{ + PyObject *return_value = NULL; + PyTypeObject *base = NULL; + + if (!_PyArg_CheckPositional("make_vectorcall_class", nargs, 0, 1)) { + goto exit; + } + if (nargs < 1) { + goto skip_optional; + } + if (!PyObject_TypeCheck(args[0], &PyType_Type)) { + _PyArg_BadArgument("make_vectorcall_class", "argument 1", (&PyType_Type)->tp_name, args[0]); + goto exit; + } + base = (PyTypeObject *)args[0]; +skip_optional: + return_value = _testcapi_make_vectorcall_class_impl(module, base); + +exit: + return return_value; +} + +PyDoc_STRVAR(_testcapi_has_vectorcall_flag__doc__, +"has_vectorcall_flag($module, type, /)\n" +"--\n" +"\n" +"Return true iff Py_TPFLAGS_HAVE_VECTORCALL is set on the class."); + +#define _TESTCAPI_HAS_VECTORCALL_FLAG_METHODDEF \ + {"has_vectorcall_flag", (PyCFunction)_testcapi_has_vectorcall_flag, METH_O, _testcapi_has_vectorcall_flag__doc__}, + +static int +_testcapi_has_vectorcall_flag_impl(PyObject *module, PyTypeObject *type); + +static PyObject * +_testcapi_has_vectorcall_flag(PyObject *module, PyObject *arg) +{ + PyObject *return_value = NULL; + PyTypeObject *type; + int _return_value; + + if (!PyObject_TypeCheck(arg, &PyType_Type)) { + _PyArg_BadArgument("has_vectorcall_flag", "argument", (&PyType_Type)->tp_name, arg); + goto exit; + } + type = (PyTypeObject *)arg; + _return_value = _testcapi_has_vectorcall_flag_impl(module, type); + if ((_return_value == -1) && PyErr_Occurred()) { + goto exit; + } + return_value = PyBool_FromLong((long)_return_value); + +exit: + return return_value; +} +/*[clinic end generated code: output=609569aa9942584f input=a9049054013a1b77]*/ diff --git a/Modules/_testcapi/heaptype.c b/Modules/_testcapi/heaptype.c new file mode 100644 index 00000000000000..bf80fd64d80b35 --- /dev/null +++ b/Modules/_testcapi/heaptype.c @@ -0,0 +1,1095 @@ +#include "parts.h" +#include "structmember.h" // PyMemberDef + +static struct PyModuleDef *_testcapimodule = NULL; // set at initialization + +/* Tests for heap types (PyType_From*) */ + +static PyObject *pytype_fromspec_meta(PyObject* self, PyObject *meta) +{ + if (!PyType_Check(meta)) { + PyErr_SetString( + PyExc_TypeError, + "pytype_fromspec_meta: must be invoked with a type argument!"); + return NULL; + } + + PyType_Slot HeapCTypeViaMetaclass_slots[] = { + {0}, + }; + + PyType_Spec HeapCTypeViaMetaclass_spec = { + "_testcapi.HeapCTypeViaMetaclass", + sizeof(PyObject), + 0, + Py_TPFLAGS_DEFAULT, + HeapCTypeViaMetaclass_slots + }; + + return PyType_FromMetaclass( + (PyTypeObject *) meta, NULL, &HeapCTypeViaMetaclass_spec, NULL); +} + + +static PyType_Slot empty_type_slots[] = { + {0, 0}, +}; + +static PyType_Spec MinimalMetaclass_spec = { + .name = "_testcapi.MinimalMetaclass", + .basicsize = sizeof(PyHeapTypeObject), + .flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, + .slots = empty_type_slots, +}; + +static PyType_Spec MinimalType_spec = { + .name = "_testcapi.MinimalSpecType", + .basicsize = 0, // Updated later + .flags = Py_TPFLAGS_DEFAULT, + .slots = empty_type_slots, +}; + + +static PyObject * +test_from_spec_metatype_inheritance(PyObject *self, PyObject *Py_UNUSED(ignored)) +{ + PyObject *metaclass = NULL; + PyObject *class = NULL; + PyObject *new = NULL; + PyObject *subclasses = NULL; + PyObject *result = NULL; + int r; + + metaclass = PyType_FromSpecWithBases(&MinimalMetaclass_spec, (PyObject*)&PyType_Type); + if (metaclass == NULL) { + goto finally; + } + class = PyObject_CallFunction(metaclass, "s(){}", "TestClass"); + if (class == NULL) { + goto finally; + } + + MinimalType_spec.basicsize = (int)(((PyTypeObject*)class)->tp_basicsize); + new = PyType_FromSpecWithBases(&MinimalType_spec, class); + if (new == NULL) { + goto finally; + } + if (Py_TYPE(new) != (PyTypeObject*)metaclass) { + PyErr_SetString(PyExc_AssertionError, + "Metaclass not set properly!"); + goto finally; + } + + /* Assert that __subclasses__ is updated */ + subclasses = PyObject_CallMethod(class, "__subclasses__", ""); + if (!subclasses) { + goto finally; + } + r = PySequence_Contains(subclasses, new); + if (r < 0) { + goto finally; + } + if (r == 0) { + PyErr_SetString(PyExc_AssertionError, + "subclasses not set properly!"); + goto finally; + } + + result = Py_NewRef(Py_None); + +finally: + Py_XDECREF(metaclass); + Py_XDECREF(class); + Py_XDECREF(new); + Py_XDECREF(subclasses); + return result; +} + + +static PyObject * +test_from_spec_invalid_metatype_inheritance(PyObject *self, PyObject *Py_UNUSED(ignored)) +{ + PyObject *metaclass_a = NULL; + PyObject *metaclass_b = NULL; + PyObject *class_a = NULL; + PyObject *class_b = NULL; + PyObject *bases = NULL; + PyObject *new = NULL; + PyObject *meta_error_string = NULL; + PyObject *exc_type = NULL; + PyObject *exc_value = NULL; + PyObject *exc_traceback = NULL; + PyObject *result = NULL; + + metaclass_a = PyType_FromSpecWithBases(&MinimalMetaclass_spec, (PyObject*)&PyType_Type); + if (metaclass_a == NULL) { + goto finally; + } + metaclass_b = PyType_FromSpecWithBases(&MinimalMetaclass_spec, (PyObject*)&PyType_Type); + if (metaclass_b == NULL) { + goto finally; + } + class_a = PyObject_CallFunction(metaclass_a, "s(){}", "TestClassA"); + if (class_a == NULL) { + goto finally; + } + + class_b = PyObject_CallFunction(metaclass_b, "s(){}", "TestClassB"); + if (class_b == NULL) { + goto finally; + } + + bases = PyTuple_Pack(2, class_a, class_b); + if (bases == NULL) { + goto finally; + } + + /* + * The following should raise a TypeError due to a MetaClass conflict. + */ + new = PyType_FromSpecWithBases(&MinimalType_spec, bases); + if (new != NULL) { + PyErr_SetString(PyExc_AssertionError, + "MetaType conflict not recognized by PyType_FromSpecWithBases"); + goto finally; + } + + // Assert that the correct exception was raised + if (PyErr_ExceptionMatches(PyExc_TypeError)) { + PyErr_Fetch(&exc_type, &exc_value, &exc_traceback); + + meta_error_string = PyUnicode_FromString("metaclass conflict:"); + if (meta_error_string == NULL) { + goto finally; + } + int res = PyUnicode_Contains(exc_value, meta_error_string); + if (res < 0) { + goto finally; + } + if (res == 0) { + PyErr_SetString(PyExc_AssertionError, + "TypeError did not inlclude expected message."); + goto finally; + } + result = Py_NewRef(Py_None); + } +finally: + Py_XDECREF(metaclass_a); + Py_XDECREF(metaclass_b); + Py_XDECREF(bases); + Py_XDECREF(new); + Py_XDECREF(meta_error_string); + Py_XDECREF(exc_type); + Py_XDECREF(exc_value); + Py_XDECREF(exc_traceback); + Py_XDECREF(class_a); + Py_XDECREF(class_b); + return result; +} + + +static PyObject * +simple_str(PyObject *self) { + return PyUnicode_FromString("<test>"); +} + + +static PyObject * +test_type_from_ephemeral_spec(PyObject *self, PyObject *Py_UNUSED(ignored)) +{ + // Test that a heap type can be created from a spec that's later deleted + // (along with all its contents). + // All necessary data must be copied and held by the class + PyType_Spec *spec = NULL; + char *name = NULL; + char *doc = NULL; + PyType_Slot *slots = NULL; + PyObject *class = NULL; + PyObject *instance = NULL; + PyObject *obj = NULL; + PyObject *result = NULL; + + /* create a spec (and all its contents) on the heap */ + + const char NAME[] = "testcapi._Test"; + const char DOC[] = "a test class"; + + spec = PyMem_New(PyType_Spec, 1); + if (spec == NULL) { + PyErr_NoMemory(); + goto finally; + } + name = PyMem_New(char, sizeof(NAME)); + if (name == NULL) { + PyErr_NoMemory(); + goto finally; + } + memcpy(name, NAME, sizeof(NAME)); + + doc = PyMem_New(char, sizeof(DOC)); + if (doc == NULL) { + PyErr_NoMemory(); + goto finally; + } + memcpy(doc, DOC, sizeof(DOC)); + + spec->name = name; + spec->basicsize = sizeof(PyObject); + spec->itemsize = 0; + spec->flags = Py_TPFLAGS_DEFAULT; + slots = PyMem_New(PyType_Slot, 3); + if (slots == NULL) { + PyErr_NoMemory(); + goto finally; + } + slots[0].slot = Py_tp_str; + slots[0].pfunc = simple_str; + slots[1].slot = Py_tp_doc; + slots[1].pfunc = doc; + slots[2].slot = 0; + slots[2].pfunc = NULL; + spec->slots = slots; + + /* create the class */ + + class = PyType_FromSpec(spec); + if (class == NULL) { + goto finally; + } + + /* deallocate the spec (and all contents) */ + + // (Explicitly ovewrite memory before freeing, + // so bugs show themselves even without the debug allocator's help.) + memset(spec, 0xdd, sizeof(PyType_Spec)); + PyMem_Del(spec); + spec = NULL; + memset(name, 0xdd, sizeof(NAME)); + PyMem_Del(name); + name = NULL; + memset(doc, 0xdd, sizeof(DOC)); + PyMem_Del(doc); + doc = NULL; + memset(slots, 0xdd, 3 * sizeof(PyType_Slot)); + PyMem_Del(slots); + slots = NULL; + + /* check that everything works */ + + PyTypeObject *class_tp = (PyTypeObject *)class; + PyHeapTypeObject *class_ht = (PyHeapTypeObject *)class; + assert(strcmp(class_tp->tp_name, "testcapi._Test") == 0); + assert(strcmp(PyUnicode_AsUTF8(class_ht->ht_name), "_Test") == 0); + assert(strcmp(PyUnicode_AsUTF8(class_ht->ht_qualname), "_Test") == 0); + assert(strcmp(class_tp->tp_doc, "a test class") == 0); + + // call and check __str__ + instance = PyObject_CallNoArgs(class); + if (instance == NULL) { + goto finally; + } + obj = PyObject_Str(instance); + if (obj == NULL) { + goto finally; + } + assert(strcmp(PyUnicode_AsUTF8(obj), "<test>") == 0); + Py_CLEAR(obj); + + result = Py_NewRef(Py_None); + finally: + PyMem_Del(spec); + PyMem_Del(name); + PyMem_Del(doc); + PyMem_Del(slots); + Py_XDECREF(class); + Py_XDECREF(instance); + Py_XDECREF(obj); + return result; +} + +PyType_Slot repeated_doc_slots[] = { + {Py_tp_doc, "A class used for tests·"}, + {Py_tp_doc, "A class used for tests"}, + {0, 0}, +}; + +PyType_Spec repeated_doc_slots_spec = { + .name = "RepeatedDocSlotClass", + .basicsize = sizeof(PyObject), + .slots = repeated_doc_slots, +}; + +typedef struct { + PyObject_HEAD + int data; +} HeapCTypeWithDataObject; + + +static struct PyMemberDef members_to_repeat[] = { + {"T_INT", T_INT, offsetof(HeapCTypeWithDataObject, data), 0, NULL}, + {NULL} +}; + +PyType_Slot repeated_members_slots[] = { + {Py_tp_members, members_to_repeat}, + {Py_tp_members, members_to_repeat}, + {0, 0}, +}; + +PyType_Spec repeated_members_slots_spec = { + .name = "RepeatedMembersSlotClass", + .basicsize = sizeof(HeapCTypeWithDataObject), + .slots = repeated_members_slots, +}; + +static PyObject * +create_type_from_repeated_slots(PyObject *self, PyObject *variant_obj) +{ + PyObject *class = NULL; + int variant = PyLong_AsLong(variant_obj); + if (PyErr_Occurred()) { + return NULL; + } + switch (variant) { + case 0: + class = PyType_FromSpec(&repeated_doc_slots_spec); + break; + case 1: + class = PyType_FromSpec(&repeated_members_slots_spec); + break; + default: + PyErr_SetString(PyExc_ValueError, "bad test variant"); + break; + } + return class; +} + + + +static PyObject * +make_immutable_type_with_base(PyObject *self, PyObject *base) +{ + assert(PyType_Check(base)); + PyType_Spec ImmutableSubclass_spec = { + .name = "ImmutableSubclass", + .basicsize = (int)((PyTypeObject*)base)->tp_basicsize, + .slots = empty_type_slots, + .flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_IMMUTABLETYPE, + }; + return PyType_FromSpecWithBases(&ImmutableSubclass_spec, base); +} + + +static PyMethodDef TestMethods[] = { + {"pytype_fromspec_meta", pytype_fromspec_meta, METH_O}, + {"test_type_from_ephemeral_spec", test_type_from_ephemeral_spec, METH_NOARGS}, + {"create_type_from_repeated_slots", + create_type_from_repeated_slots, METH_O}, + {"test_from_spec_metatype_inheritance", test_from_spec_metatype_inheritance, + METH_NOARGS}, + {"test_from_spec_invalid_metatype_inheritance", + test_from_spec_invalid_metatype_inheritance, + METH_NOARGS}, + {"make_immutable_type_with_base", make_immutable_type_with_base, METH_O}, + {NULL}, +}; + + +PyDoc_STRVAR(heapdocctype__doc__, +"HeapDocCType(arg1, arg2)\n" +"--\n" +"\n" +"somedoc"); + +typedef struct { + PyObject_HEAD +} HeapDocCTypeObject; + +static PyType_Slot HeapDocCType_slots[] = { + {Py_tp_doc, (char*)heapdocctype__doc__}, + {0}, +}; + +static PyType_Spec HeapDocCType_spec = { + "_testcapi.HeapDocCType", + sizeof(HeapDocCTypeObject), + 0, + Py_TPFLAGS_DEFAULT, + HeapDocCType_slots +}; + +typedef struct { + PyObject_HEAD +} NullTpDocTypeObject; + +static PyType_Slot NullTpDocType_slots[] = { + {Py_tp_doc, NULL}, + {0, 0}, +}; + +static PyType_Spec NullTpDocType_spec = { + "_testcapi.NullTpDocType", + sizeof(NullTpDocTypeObject), + 0, + Py_TPFLAGS_DEFAULT, + NullTpDocType_slots +}; + + +PyDoc_STRVAR(heapgctype__doc__, +"A heap type with GC, and with overridden dealloc.\n\n" +"The 'value' attribute is set to 10 in __init__."); + +typedef struct { + PyObject_HEAD + int value; +} HeapCTypeObject; + +static struct PyMemberDef heapctype_members[] = { + {"value", T_INT, offsetof(HeapCTypeObject, value)}, + {NULL} /* Sentinel */ +}; + +static int +heapctype_init(PyObject *self, PyObject *args, PyObject *kwargs) +{ + ((HeapCTypeObject *)self)->value = 10; + return 0; +} + +static int +heapgcctype_traverse(HeapCTypeObject *self, visitproc visit, void *arg) +{ + Py_VISIT(Py_TYPE(self)); + return 0; +} + +static void +heapgcctype_dealloc(HeapCTypeObject *self) +{ + PyTypeObject *tp = Py_TYPE(self); + PyObject_GC_UnTrack(self); + PyObject_GC_Del(self); + Py_DECREF(tp); +} + +static PyType_Slot HeapGcCType_slots[] = { + {Py_tp_init, heapctype_init}, + {Py_tp_members, heapctype_members}, + {Py_tp_dealloc, heapgcctype_dealloc}, + {Py_tp_traverse, heapgcctype_traverse}, + {Py_tp_doc, (char*)heapgctype__doc__}, + {0, 0}, +}; + +static PyType_Spec HeapGcCType_spec = { + "_testcapi.HeapGcCType", + sizeof(HeapCTypeObject), + 0, + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC, + HeapGcCType_slots +}; + +PyDoc_STRVAR(heapctype__doc__, +"A heap type without GC, but with overridden dealloc.\n\n" +"The 'value' attribute is set to 10 in __init__."); + +static void +heapctype_dealloc(HeapCTypeObject *self) +{ + PyTypeObject *tp = Py_TYPE(self); + PyObject_Free(self); + Py_DECREF(tp); +} + +static PyType_Slot HeapCType_slots[] = { + {Py_tp_init, heapctype_init}, + {Py_tp_members, heapctype_members}, + {Py_tp_dealloc, heapctype_dealloc}, + {Py_tp_doc, (char*)heapctype__doc__}, + {0, 0}, +}; + +static PyType_Spec HeapCType_spec = { + "_testcapi.HeapCType", + sizeof(HeapCTypeObject), + 0, + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, + HeapCType_slots +}; + +PyDoc_STRVAR(heapctypesubclass__doc__, +"Subclass of HeapCType, without GC.\n\n" +"__init__ sets the 'value' attribute to 10 and 'value2' to 20."); + +typedef struct { + HeapCTypeObject base; + int value2; +} HeapCTypeSubclassObject; + +static int +heapctypesubclass_init(PyObject *self, PyObject *args, PyObject *kwargs) +{ + /* Call __init__ of the superclass */ + if (heapctype_init(self, args, kwargs) < 0) { + return -1; + } + /* Initialize additional element */ + ((HeapCTypeSubclassObject *)self)->value2 = 20; + return 0; +} + +static struct PyMemberDef heapctypesubclass_members[] = { + {"value2", T_INT, offsetof(HeapCTypeSubclassObject, value2)}, + {NULL} /* Sentinel */ +}; + +static PyType_Slot HeapCTypeSubclass_slots[] = { + {Py_tp_init, heapctypesubclass_init}, + {Py_tp_members, heapctypesubclass_members}, + {Py_tp_doc, (char*)heapctypesubclass__doc__}, + {0, 0}, +}; + +static PyType_Spec HeapCTypeSubclass_spec = { + "_testcapi.HeapCTypeSubclass", + sizeof(HeapCTypeSubclassObject), + 0, + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, + HeapCTypeSubclass_slots +}; + +PyDoc_STRVAR(heapctypewithbuffer__doc__, +"Heap type with buffer support.\n\n" +"The buffer is set to [b'1', b'2', b'3', b'4']"); + +typedef struct { + HeapCTypeObject base; + char buffer[4]; +} HeapCTypeWithBufferObject; + +static int +heapctypewithbuffer_getbuffer(HeapCTypeWithBufferObject *self, Py_buffer *view, int flags) +{ + self->buffer[0] = '1'; + self->buffer[1] = '2'; + self->buffer[2] = '3'; + self->buffer[3] = '4'; + return PyBuffer_FillInfo( + view, (PyObject*)self, (void *)self->buffer, 4, 1, flags); +} + +static void +heapctypewithbuffer_releasebuffer(HeapCTypeWithBufferObject *self, Py_buffer *view) +{ + assert(view->obj == (void*) self); +} + +static PyType_Slot HeapCTypeWithBuffer_slots[] = { + {Py_bf_getbuffer, heapctypewithbuffer_getbuffer}, + {Py_bf_releasebuffer, heapctypewithbuffer_releasebuffer}, + {Py_tp_doc, (char*)heapctypewithbuffer__doc__}, + {0, 0}, +}; + +static PyType_Spec HeapCTypeWithBuffer_spec = { + "_testcapi.HeapCTypeWithBuffer", + sizeof(HeapCTypeWithBufferObject), + 0, + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, + HeapCTypeWithBuffer_slots +}; + +PyDoc_STRVAR(heapctypesubclasswithfinalizer__doc__, +"Subclass of HeapCType with a finalizer that reassigns __class__.\n\n" +"__class__ is set to plain HeapCTypeSubclass during finalization.\n" +"__init__ sets the 'value' attribute to 10 and 'value2' to 20."); + +static int +heapctypesubclasswithfinalizer_init(PyObject *self, PyObject *args, PyObject *kwargs) +{ + PyTypeObject *base = (PyTypeObject *)PyType_GetSlot(Py_TYPE(self), Py_tp_base); + initproc base_init = PyType_GetSlot(base, Py_tp_init); + base_init(self, args, kwargs); + return 0; +} + +static void +heapctypesubclasswithfinalizer_finalize(PyObject *self) +{ + PyObject *error_type, *error_value, *error_traceback, *m; + PyObject *oldtype = NULL, *newtype = NULL, *refcnt = NULL; + + /* Save the current exception, if any. */ + PyErr_Fetch(&error_type, &error_value, &error_traceback); + + if (_testcapimodule == NULL) { + goto cleanup_finalize; + } + m = PyState_FindModule(_testcapimodule); + if (m == NULL) { + goto cleanup_finalize; + } + oldtype = PyObject_GetAttrString(m, "HeapCTypeSubclassWithFinalizer"); + newtype = PyObject_GetAttrString(m, "HeapCTypeSubclass"); + if (oldtype == NULL || newtype == NULL) { + goto cleanup_finalize; + } + + if (PyObject_SetAttrString(self, "__class__", newtype) < 0) { + goto cleanup_finalize; + } + refcnt = PyLong_FromSsize_t(Py_REFCNT(oldtype)); + if (refcnt == NULL) { + goto cleanup_finalize; + } + if (PyObject_SetAttrString(oldtype, "refcnt_in_del", refcnt) < 0) { + goto cleanup_finalize; + } + Py_DECREF(refcnt); + refcnt = PyLong_FromSsize_t(Py_REFCNT(newtype)); + if (refcnt == NULL) { + goto cleanup_finalize; + } + if (PyObject_SetAttrString(newtype, "refcnt_in_del", refcnt) < 0) { + goto cleanup_finalize; + } + +cleanup_finalize: + Py_XDECREF(oldtype); + Py_XDECREF(newtype); + Py_XDECREF(refcnt); + + /* Restore the saved exception. */ + PyErr_Restore(error_type, error_value, error_traceback); +} + +static PyType_Slot HeapCTypeSubclassWithFinalizer_slots[] = { + {Py_tp_init, heapctypesubclasswithfinalizer_init}, + {Py_tp_members, heapctypesubclass_members}, + {Py_tp_finalize, heapctypesubclasswithfinalizer_finalize}, + {Py_tp_doc, (char*)heapctypesubclasswithfinalizer__doc__}, + {0, 0}, +}; + +static PyType_Spec HeapCTypeSubclassWithFinalizer_spec = { + "_testcapi.HeapCTypeSubclassWithFinalizer", + sizeof(HeapCTypeSubclassObject), + 0, + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_FINALIZE, + HeapCTypeSubclassWithFinalizer_slots +}; + +static PyType_Slot HeapCTypeMetaclass_slots[] = { + {0}, +}; + +static PyType_Spec HeapCTypeMetaclass_spec = { + "_testcapi.HeapCTypeMetaclass", + sizeof(PyHeapTypeObject), + sizeof(PyMemberDef), + Py_TPFLAGS_DEFAULT, + HeapCTypeMetaclass_slots +}; + +static PyObject * +heap_ctype_metaclass_custom_tp_new(PyTypeObject *tp, PyObject *args, PyObject *kwargs) +{ + return PyType_Type.tp_new(tp, args, kwargs); +} + +static PyType_Slot HeapCTypeMetaclassCustomNew_slots[] = { + { Py_tp_new, heap_ctype_metaclass_custom_tp_new }, + {0}, +}; + +static PyType_Spec HeapCTypeMetaclassCustomNew_spec = { + "_testcapi.HeapCTypeMetaclassCustomNew", + sizeof(PyHeapTypeObject), + sizeof(PyMemberDef), + Py_TPFLAGS_DEFAULT, + HeapCTypeMetaclassCustomNew_slots +}; + + +typedef struct { + PyObject_HEAD + PyObject *dict; +} HeapCTypeWithDictObject; + +static void +heapctypewithdict_dealloc(HeapCTypeWithDictObject* self) +{ + + PyTypeObject *tp = Py_TYPE(self); + Py_XDECREF(self->dict); + PyObject_Free(self); + Py_DECREF(tp); +} + +static PyGetSetDef heapctypewithdict_getsetlist[] = { + {"__dict__", PyObject_GenericGetDict, PyObject_GenericSetDict}, + {NULL} /* Sentinel */ +}; + +static struct PyMemberDef heapctypewithdict_members[] = { + {"dictobj", T_OBJECT, offsetof(HeapCTypeWithDictObject, dict)}, + {"__dictoffset__", T_PYSSIZET, offsetof(HeapCTypeWithDictObject, dict), READONLY}, + {NULL} /* Sentinel */ +}; + +static PyType_Slot HeapCTypeWithDict_slots[] = { + {Py_tp_members, heapctypewithdict_members}, + {Py_tp_getset, heapctypewithdict_getsetlist}, + {Py_tp_dealloc, heapctypewithdict_dealloc}, + {0, 0}, +}; + +static PyType_Spec HeapCTypeWithDict_spec = { + "_testcapi.HeapCTypeWithDict", + sizeof(HeapCTypeWithDictObject), + 0, + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, + HeapCTypeWithDict_slots +}; + +static PyType_Spec HeapCTypeWithDict2_spec = { + "_testcapi.HeapCTypeWithDict2", + sizeof(HeapCTypeWithDictObject), + 0, + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, + HeapCTypeWithDict_slots +}; + +static int +heapmanaged_traverse(HeapCTypeObject *self, visitproc visit, void *arg) +{ + Py_VISIT(Py_TYPE(self)); + return _PyObject_VisitManagedDict((PyObject *)self, visit, arg); +} + +static int +heapmanaged_clear(HeapCTypeObject *self) +{ + _PyObject_ClearManagedDict((PyObject *)self); + return 0; +} + +static void +heapmanaged_dealloc(HeapCTypeObject *self) +{ + PyTypeObject *tp = Py_TYPE(self); + _PyObject_ClearManagedDict((PyObject *)self); + PyObject_GC_UnTrack(self); + PyObject_GC_Del(self); + Py_DECREF(tp); +} + +static PyType_Slot HeapCTypeWithManagedDict_slots[] = { + {Py_tp_traverse, heapmanaged_traverse}, + {Py_tp_getset, heapctypewithdict_getsetlist}, + {Py_tp_clear, heapmanaged_clear}, + {Py_tp_dealloc, heapmanaged_dealloc}, + {0, 0}, +}; + +static PyType_Spec HeapCTypeWithManagedDict_spec = { + "_testcapi.HeapCTypeWithManagedDict", + sizeof(PyObject), + 0, + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_MANAGED_DICT, + HeapCTypeWithManagedDict_slots +}; + +static void +heapctypewithmanagedweakref_dealloc(PyObject* self) +{ + + PyTypeObject *tp = Py_TYPE(self); + PyObject_ClearWeakRefs(self); + PyObject_GC_UnTrack(self); + PyObject_GC_Del(self); + Py_DECREF(tp); +} + +static PyType_Slot HeapCTypeWithManagedWeakref_slots[] = { + {Py_tp_traverse, heapgcctype_traverse}, + {Py_tp_getset, heapctypewithdict_getsetlist}, + {Py_tp_dealloc, heapctypewithmanagedweakref_dealloc}, + {0, 0}, +}; + +static PyType_Spec HeapCTypeWithManagedWeakref_spec = { + "_testcapi.HeapCTypeWithManagedWeakref", + sizeof(PyObject), + 0, + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_MANAGED_WEAKREF, + HeapCTypeWithManagedWeakref_slots +}; + +static struct PyMemberDef heapctypewithnegativedict_members[] = { + {"dictobj", T_OBJECT, offsetof(HeapCTypeWithDictObject, dict)}, + {"__dictoffset__", T_PYSSIZET, -(Py_ssize_t)sizeof(void*), READONLY}, + {NULL} /* Sentinel */ +}; + +static PyType_Slot HeapCTypeWithNegativeDict_slots[] = { + {Py_tp_members, heapctypewithnegativedict_members}, + {Py_tp_getset, heapctypewithdict_getsetlist}, + {Py_tp_dealloc, heapctypewithdict_dealloc}, + {0, 0}, +}; + +static PyType_Spec HeapCTypeWithNegativeDict_spec = { + "_testcapi.HeapCTypeWithNegativeDict", + sizeof(HeapCTypeWithDictObject), + 0, + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, + HeapCTypeWithNegativeDict_slots +}; + +typedef struct { + PyObject_HEAD + PyObject *weakreflist; +} HeapCTypeWithWeakrefObject; + +static struct PyMemberDef heapctypewithweakref_members[] = { + {"weakreflist", T_OBJECT, offsetof(HeapCTypeWithWeakrefObject, weakreflist)}, + {"__weaklistoffset__", T_PYSSIZET, + offsetof(HeapCTypeWithWeakrefObject, weakreflist), READONLY}, + {NULL} /* Sentinel */ +}; + +static void +heapctypewithweakref_dealloc(HeapCTypeWithWeakrefObject* self) +{ + + PyTypeObject *tp = Py_TYPE(self); + if (self->weakreflist != NULL) + PyObject_ClearWeakRefs((PyObject *) self); + Py_XDECREF(self->weakreflist); + PyObject_Free(self); + Py_DECREF(tp); +} + +static PyType_Slot HeapCTypeWithWeakref_slots[] = { + {Py_tp_members, heapctypewithweakref_members}, + {Py_tp_dealloc, heapctypewithweakref_dealloc}, + {0, 0}, +}; + +static PyType_Spec HeapCTypeWithWeakref_spec = { + "_testcapi.HeapCTypeWithWeakref", + sizeof(HeapCTypeWithWeakrefObject), + 0, + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, + HeapCTypeWithWeakref_slots +}; + +static PyType_Spec HeapCTypeWithWeakref2_spec = { + "_testcapi.HeapCTypeWithWeakref2", + sizeof(HeapCTypeWithWeakrefObject), + 0, + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, + HeapCTypeWithWeakref_slots +}; + +PyDoc_STRVAR(heapctypesetattr__doc__, +"A heap type without GC, but with overridden __setattr__.\n\n" +"The 'value' attribute is set to 10 in __init__ and updated via attribute setting."); + +typedef struct { + PyObject_HEAD + long value; +} HeapCTypeSetattrObject; + +static struct PyMemberDef heapctypesetattr_members[] = { + {"pvalue", T_LONG, offsetof(HeapCTypeSetattrObject, value)}, + {NULL} /* Sentinel */ +}; + +static int +heapctypesetattr_init(PyObject *self, PyObject *args, PyObject *kwargs) +{ + ((HeapCTypeSetattrObject *)self)->value = 10; + return 0; +} + +static void +heapctypesetattr_dealloc(HeapCTypeSetattrObject *self) +{ + PyTypeObject *tp = Py_TYPE(self); + PyObject_Free(self); + Py_DECREF(tp); +} + +static int +heapctypesetattr_setattro(HeapCTypeSetattrObject *self, PyObject *attr, PyObject *value) +{ + PyObject *svalue = PyUnicode_FromString("value"); + if (svalue == NULL) + return -1; + int eq = PyObject_RichCompareBool(svalue, attr, Py_EQ); + Py_DECREF(svalue); + if (eq < 0) + return -1; + if (!eq) { + return PyObject_GenericSetAttr((PyObject*) self, attr, value); + } + if (value == NULL) { + self->value = 0; + return 0; + } + PyObject *ivalue = PyNumber_Long(value); + if (ivalue == NULL) + return -1; + long v = PyLong_AsLong(ivalue); + Py_DECREF(ivalue); + if (v == -1 && PyErr_Occurred()) + return -1; + self->value = v; + return 0; +} + +static PyType_Slot HeapCTypeSetattr_slots[] = { + {Py_tp_init, heapctypesetattr_init}, + {Py_tp_members, heapctypesetattr_members}, + {Py_tp_setattro, heapctypesetattr_setattro}, + {Py_tp_dealloc, heapctypesetattr_dealloc}, + {Py_tp_doc, (char*)heapctypesetattr__doc__}, + {0, 0}, +}; + +static PyType_Spec HeapCTypeSetattr_spec = { + "_testcapi.HeapCTypeSetattr", + sizeof(HeapCTypeSetattrObject), + 0, + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, + HeapCTypeSetattr_slots +}; + +int +_PyTestCapi_Init_Heaptype(PyObject *m) { + _testcapimodule = PyModule_GetDef(m); + + if (PyModule_AddFunctions(m, TestMethods) < 0) { + return -1; + } + + PyObject *HeapDocCType = PyType_FromSpec(&HeapDocCType_spec); + if (HeapDocCType == NULL) { + return -1; + } + PyModule_AddObject(m, "HeapDocCType", HeapDocCType); + + /* bpo-41832: Add a new type to test PyType_FromSpec() + now can accept a NULL tp_doc slot. */ + PyObject *NullTpDocType = PyType_FromSpec(&NullTpDocType_spec); + if (NullTpDocType == NULL) { + return -1; + } + PyModule_AddObject(m, "NullTpDocType", NullTpDocType); + + PyObject *HeapGcCType = PyType_FromSpec(&HeapGcCType_spec); + if (HeapGcCType == NULL) { + return -1; + } + PyModule_AddObject(m, "HeapGcCType", HeapGcCType); + + PyObject *HeapCType = PyType_FromSpec(&HeapCType_spec); + if (HeapCType == NULL) { + return -1; + } + PyObject *subclass_bases = PyTuple_Pack(1, HeapCType); + if (subclass_bases == NULL) { + return -1; + } + PyObject *HeapCTypeSubclass = PyType_FromSpecWithBases(&HeapCTypeSubclass_spec, subclass_bases); + if (HeapCTypeSubclass == NULL) { + return -1; + } + Py_DECREF(subclass_bases); + PyModule_AddObject(m, "HeapCTypeSubclass", HeapCTypeSubclass); + + PyObject *HeapCTypeWithDict = PyType_FromSpec(&HeapCTypeWithDict_spec); + if (HeapCTypeWithDict == NULL) { + return -1; + } + PyModule_AddObject(m, "HeapCTypeWithDict", HeapCTypeWithDict); + + PyObject *HeapCTypeWithDict2 = PyType_FromSpec(&HeapCTypeWithDict2_spec); + if (HeapCTypeWithDict2 == NULL) { + return -1; + } + PyModule_AddObject(m, "HeapCTypeWithDict2", HeapCTypeWithDict2); + + PyObject *HeapCTypeWithNegativeDict = PyType_FromSpec(&HeapCTypeWithNegativeDict_spec); + if (HeapCTypeWithNegativeDict == NULL) { + return -1; + } + PyModule_AddObject(m, "HeapCTypeWithNegativeDict", HeapCTypeWithNegativeDict); + + PyObject *HeapCTypeWithManagedDict = PyType_FromSpec(&HeapCTypeWithManagedDict_spec); + if (HeapCTypeWithManagedDict == NULL) { + return -1; + } + PyModule_AddObject(m, "HeapCTypeWithManagedDict", HeapCTypeWithManagedDict); + + PyObject *HeapCTypeWithManagedWeakref = PyType_FromSpec(&HeapCTypeWithManagedWeakref_spec); + if (HeapCTypeWithManagedWeakref == NULL) { + return -1; + } + PyModule_AddObject(m, "HeapCTypeWithManagedWeakref", HeapCTypeWithManagedWeakref); + + PyObject *HeapCTypeWithWeakref = PyType_FromSpec(&HeapCTypeWithWeakref_spec); + if (HeapCTypeWithWeakref == NULL) { + return -1; + } + PyModule_AddObject(m, "HeapCTypeWithWeakref", HeapCTypeWithWeakref); + + PyObject *HeapCTypeWithWeakref2 = PyType_FromSpec(&HeapCTypeWithWeakref2_spec); + if (HeapCTypeWithWeakref2 == NULL) { + return -1; + } + PyModule_AddObject(m, "HeapCTypeWithWeakref2", HeapCTypeWithWeakref2); + + PyObject *HeapCTypeWithBuffer = PyType_FromSpec(&HeapCTypeWithBuffer_spec); + if (HeapCTypeWithBuffer == NULL) { + return -1; + } + PyModule_AddObject(m, "HeapCTypeWithBuffer", HeapCTypeWithBuffer); + + PyObject *HeapCTypeSetattr = PyType_FromSpec(&HeapCTypeSetattr_spec); + if (HeapCTypeSetattr == NULL) { + return -1; + } + PyModule_AddObject(m, "HeapCTypeSetattr", HeapCTypeSetattr); + + PyObject *subclass_with_finalizer_bases = PyTuple_Pack(1, HeapCTypeSubclass); + if (subclass_with_finalizer_bases == NULL) { + return -1; + } + PyObject *HeapCTypeSubclassWithFinalizer = PyType_FromSpecWithBases( + &HeapCTypeSubclassWithFinalizer_spec, subclass_with_finalizer_bases); + if (HeapCTypeSubclassWithFinalizer == NULL) { + return -1; + } + Py_DECREF(subclass_with_finalizer_bases); + PyModule_AddObject(m, "HeapCTypeSubclassWithFinalizer", HeapCTypeSubclassWithFinalizer); + + PyObject *HeapCTypeMetaclass = PyType_FromMetaclass( + &PyType_Type, m, &HeapCTypeMetaclass_spec, (PyObject *) &PyType_Type); + if (HeapCTypeMetaclass == NULL) { + return -1; + } + PyModule_AddObject(m, "HeapCTypeMetaclass", HeapCTypeMetaclass); + + PyObject *HeapCTypeMetaclassCustomNew = PyType_FromMetaclass( + &PyType_Type, m, &HeapCTypeMetaclassCustomNew_spec, (PyObject *) &PyType_Type); + if (HeapCTypeMetaclassCustomNew == NULL) { + return -1; + } + PyModule_AddObject(m, "HeapCTypeMetaclassCustomNew", HeapCTypeMetaclassCustomNew); + + return 0; +} diff --git a/Modules/_testcapi/parts.h b/Modules/_testcapi/parts.h new file mode 100644 index 00000000000000..304e5922c0d50b --- /dev/null +++ b/Modules/_testcapi/parts.h @@ -0,0 +1,36 @@ +#ifndef Py_TESTCAPI_PARTS_H +#define Py_TESTCAPI_PARTS_H + +#include "pyconfig.h" // for Py_TRACE_REFS + +// Figure out if Limited API is available for this build. If it isn't we won't +// build tests for it. +// Currently, only Py_TRACE_REFS disables Limited API. +#ifdef Py_TRACE_REFS +#undef LIMITED_API_AVAILABLE +#else +#define LIMITED_API_AVAILABLE 1 +#endif + +// Always enable assertions +#undef NDEBUG + +#if !defined(LIMITED_API_AVAILABLE) && defined(Py_LIMITED_API) +// Limited API being unavailable means that with Py_LIMITED_API defined +// we can't even include Python.h. +// Do nothing; the .c file that defined Py_LIMITED_API should also do nothing. + +#else + +#include "Python.h" + +int _PyTestCapi_Init_Vectorcall(PyObject *module); +int _PyTestCapi_Init_Heaptype(PyObject *module); +int _PyTestCapi_Init_Unicode(PyObject *module); + +#ifdef LIMITED_API_AVAILABLE +int _PyTestCapi_Init_VectorcallLimited(PyObject *module); +#endif // LIMITED_API_AVAILABLE + +#endif +#endif // Py_TESTCAPI_PARTS_H diff --git a/Modules/_testcapi/unicode.c b/Modules/_testcapi/unicode.c new file mode 100644 index 00000000000000..d0f1e2abdc8259 --- /dev/null +++ b/Modules/_testcapi/unicode.c @@ -0,0 +1,713 @@ +#include "parts.h" + +static struct PyModuleDef *_testcapimodule = NULL; // set at initialization + +static PyObject * +codec_incrementalencoder(PyObject *self, PyObject *args) +{ + const char *encoding, *errors = NULL; + if (!PyArg_ParseTuple(args, "s|s:test_incrementalencoder", + &encoding, &errors)) + return NULL; + return PyCodec_IncrementalEncoder(encoding, errors); +} + +static PyObject * +codec_incrementaldecoder(PyObject *self, PyObject *args) +{ + const char *encoding, *errors = NULL; + if (!PyArg_ParseTuple(args, "s|s:test_incrementaldecoder", + &encoding, &errors)) + return NULL; + return PyCodec_IncrementalDecoder(encoding, errors); +} + +static PyObject * +test_unicode_compare_with_ascii(PyObject *self, PyObject *Py_UNUSED(ignored)) { + PyObject *py_s = PyUnicode_FromStringAndSize("str\0", 4); + int result; + if (py_s == NULL) + return NULL; + result = PyUnicode_CompareWithASCIIString(py_s, "str"); + Py_DECREF(py_s); + if (!result) { + PyErr_SetString(PyExc_AssertionError, "Python string ending in NULL " + "should not compare equal to c string."); + return NULL; + } + Py_RETURN_NONE; +} + +static PyObject * +test_widechar(PyObject *self, PyObject *Py_UNUSED(ignored)) +{ +#if defined(SIZEOF_WCHAR_T) && (SIZEOF_WCHAR_T == 4) + const wchar_t wtext[2] = {(wchar_t)0x10ABCDu}; + size_t wtextlen = 1; + const wchar_t invalid[1] = {(wchar_t)0x110000u}; +#else + const wchar_t wtext[3] = {(wchar_t)0xDBEAu, (wchar_t)0xDFCDu}; + size_t wtextlen = 2; +#endif + PyObject *wide, *utf8; + + wide = PyUnicode_FromWideChar(wtext, wtextlen); + if (wide == NULL) + return NULL; + + utf8 = PyUnicode_FromString("\xf4\x8a\xaf\x8d"); + if (utf8 == NULL) { + Py_DECREF(wide); + return NULL; + } + + if (PyUnicode_GET_LENGTH(wide) != PyUnicode_GET_LENGTH(utf8)) { + Py_DECREF(wide); + Py_DECREF(utf8); + PyErr_SetString(PyExc_AssertionError, + "test_widechar: " + "wide string and utf8 string " + "have different length"); + return NULL; + } + if (PyUnicode_Compare(wide, utf8)) { + Py_DECREF(wide); + Py_DECREF(utf8); + if (PyErr_Occurred()) + return NULL; + PyErr_SetString(PyExc_AssertionError, + "test_widechar: " + "wide string and utf8 string " + "are different"); + return NULL; + } + + Py_DECREF(wide); + Py_DECREF(utf8); + +#if defined(SIZEOF_WCHAR_T) && (SIZEOF_WCHAR_T == 4) + wide = PyUnicode_FromWideChar(invalid, 1); + if (wide == NULL) + PyErr_Clear(); + else { + PyErr_SetString(PyExc_AssertionError, + "test_widechar: " + "PyUnicode_FromWideChar(L\"\\U00110000\", 1) didn't fail"); + return NULL; + } +#endif + Py_RETURN_NONE; +} + +static PyObject * +unicode_aswidechar(PyObject *self, PyObject *args) +{ + PyObject *unicode, *result; + Py_ssize_t buflen, size; + wchar_t *buffer; + + if (!PyArg_ParseTuple(args, "Un", &unicode, &buflen)) + return NULL; + buffer = PyMem_New(wchar_t, buflen); + if (buffer == NULL) + return PyErr_NoMemory(); + + size = PyUnicode_AsWideChar(unicode, buffer, buflen); + if (size == -1) { + PyMem_Free(buffer); + return NULL; + } + + if (size < buflen) + buflen = size + 1; + else + buflen = size; + result = PyUnicode_FromWideChar(buffer, buflen); + PyMem_Free(buffer); + if (result == NULL) + return NULL; + + return Py_BuildValue("(Nn)", result, size); +} + +static PyObject * +unicode_aswidecharstring(PyObject *self, PyObject *args) +{ + PyObject *unicode, *result; + Py_ssize_t size; + wchar_t *buffer; + + if (!PyArg_ParseTuple(args, "U", &unicode)) + return NULL; + + buffer = PyUnicode_AsWideCharString(unicode, &size); + if (buffer == NULL) + return NULL; + + result = PyUnicode_FromWideChar(buffer, size + 1); + PyMem_Free(buffer); + if (result == NULL) + return NULL; + return Py_BuildValue("(Nn)", result, size); +} + +static PyObject * +unicode_asucs4(PyObject *self, PyObject *args) +{ + PyObject *unicode, *result; + Py_UCS4 *buffer; + int copy_null; + Py_ssize_t str_len, buf_len; + + if (!PyArg_ParseTuple(args, "Unp:unicode_asucs4", &unicode, &str_len, &copy_null)) { + return NULL; + } + + buf_len = str_len + 1; + buffer = PyMem_NEW(Py_UCS4, buf_len); + if (buffer == NULL) { + return PyErr_NoMemory(); + } + memset(buffer, 0, sizeof(Py_UCS4)*buf_len); + buffer[str_len] = 0xffffU; + + if (!PyUnicode_AsUCS4(unicode, buffer, buf_len, copy_null)) { + PyMem_Free(buffer); + return NULL; + } + + result = PyUnicode_FromKindAndData(PyUnicode_4BYTE_KIND, buffer, buf_len); + PyMem_Free(buffer); + return result; +} + +static PyObject * +unicode_asutf8(PyObject *self, PyObject *args) +{ + PyObject *unicode; + const char *buffer; + + if (!PyArg_ParseTuple(args, "U", &unicode)) { + return NULL; + } + + buffer = PyUnicode_AsUTF8(unicode); + if (buffer == NULL) { + return NULL; + } + + return PyBytes_FromString(buffer); +} + +static PyObject * +unicode_asutf8andsize(PyObject *self, PyObject *args) +{ + PyObject *unicode, *result; + const char *buffer; + Py_ssize_t utf8_len; + + if(!PyArg_ParseTuple(args, "U", &unicode)) { + return NULL; + } + + buffer = PyUnicode_AsUTF8AndSize(unicode, &utf8_len); + if (buffer == NULL) { + return NULL; + } + + result = PyBytes_FromString(buffer); + if (result == NULL) { + return NULL; + } + + return Py_BuildValue("(Nn)", result, utf8_len); +} + +static PyObject * +unicode_findchar(PyObject *self, PyObject *args) +{ + PyObject *str; + int direction; + unsigned int ch; + Py_ssize_t result; + Py_ssize_t start, end; + + if (!PyArg_ParseTuple(args, "UInni:unicode_findchar", &str, &ch, + &start, &end, &direction)) { + return NULL; + } + + result = PyUnicode_FindChar(str, (Py_UCS4)ch, start, end, direction); + if (result == -2) + return NULL; + else + return PyLong_FromSsize_t(result); +} + +static PyObject * +unicode_copycharacters(PyObject *self, PyObject *args) +{ + PyObject *from, *to, *to_copy; + Py_ssize_t from_start, to_start, how_many, copied; + + if (!PyArg_ParseTuple(args, "UnOnn:unicode_copycharacters", &to, &to_start, + &from, &from_start, &how_many)) { + return NULL; + } + + if (!(to_copy = PyUnicode_New(PyUnicode_GET_LENGTH(to), + PyUnicode_MAX_CHAR_VALUE(to)))) { + return NULL; + } + if (PyUnicode_Fill(to_copy, 0, PyUnicode_GET_LENGTH(to_copy), 0U) < 0) { + Py_DECREF(to_copy); + return NULL; + } + + if ((copied = PyUnicode_CopyCharacters(to_copy, to_start, from, + from_start, how_many)) < 0) { + Py_DECREF(to_copy); + return NULL; + } + + return Py_BuildValue("(Nn)", to_copy, copied); +} + +static int +check_raised_systemerror(PyObject *result, char* msg) +{ + if (result) { + // no exception + PyErr_Format(PyExc_AssertionError, + "SystemError not raised: %s", + msg); + return 0; + } + if (PyErr_ExceptionMatches(PyExc_SystemError)) { + // expected exception + PyErr_Clear(); + return 1; + } + // unexpected exception + return 0; +} + +static PyObject * +test_string_from_format(PyObject *self, PyObject *Py_UNUSED(ignored)) +{ + PyObject *result; + PyObject *unicode = PyUnicode_FromString("None"); + +#define CHECK_FORMAT_2(FORMAT, EXPECTED, ARG1, ARG2) \ + result = PyUnicode_FromFormat(FORMAT, ARG1, ARG2); \ + if (EXPECTED == NULL) { \ + if (!check_raised_systemerror(result, FORMAT)) { \ + goto Fail; \ + } \ + } \ + else if (result == NULL) \ + return NULL; \ + else if (!_PyUnicode_EqualToASCIIString(result, EXPECTED)) { \ + PyErr_Format(PyExc_AssertionError, \ + "test_string_from_format: failed at \"%s\" " \ + "expected \"%s\" got \"%s\"", \ + FORMAT, EXPECTED, PyUnicode_AsUTF8(result)); \ + goto Fail; \ + } \ + Py_XDECREF(result) + +#define CHECK_FORMAT_1(FORMAT, EXPECTED, ARG) \ + CHECK_FORMAT_2(FORMAT, EXPECTED, ARG, 0) + +#define CHECK_FORMAT_0(FORMAT, EXPECTED) \ + CHECK_FORMAT_2(FORMAT, EXPECTED, 0, 0) + + // Unrecognized + CHECK_FORMAT_2("%u %? %u", NULL, 1, 2); + + // "%%" (options are rejected) + CHECK_FORMAT_0( "%%", "%"); + CHECK_FORMAT_0( "%0%", NULL); + CHECK_FORMAT_0("%00%", NULL); + CHECK_FORMAT_0( "%2%", NULL); + CHECK_FORMAT_0("%02%", NULL); + CHECK_FORMAT_0("%.0%", NULL); + CHECK_FORMAT_0("%.2%", NULL); + + // "%c" + CHECK_FORMAT_1( "%c", "c", 'c'); + CHECK_FORMAT_1( "%0c", "c", 'c'); + CHECK_FORMAT_1("%00c", "c", 'c'); + CHECK_FORMAT_1( "%2c", "c", 'c'); + CHECK_FORMAT_1("%02c", "c", 'c'); + CHECK_FORMAT_1("%.0c", "c", 'c'); + CHECK_FORMAT_1("%.2c", "c", 'c'); + + // Integers + CHECK_FORMAT_1("%d", "123", (int)123); + CHECK_FORMAT_1("%i", "123", (int)123); + CHECK_FORMAT_1("%u", "123", (unsigned int)123); + CHECK_FORMAT_1("%ld", "123", (long)123); + CHECK_FORMAT_1("%li", "123", (long)123); + CHECK_FORMAT_1("%lu", "123", (unsigned long)123); + CHECK_FORMAT_1("%lld", "123", (long long)123); + CHECK_FORMAT_1("%lli", "123", (long long)123); + CHECK_FORMAT_1("%llu", "123", (unsigned long long)123); + CHECK_FORMAT_1("%zd", "123", (Py_ssize_t)123); + CHECK_FORMAT_1("%zi", "123", (Py_ssize_t)123); + CHECK_FORMAT_1("%zu", "123", (size_t)123); + CHECK_FORMAT_1("%x", "7b", (int)123); + + CHECK_FORMAT_1("%d", "-123", (int)-123); + CHECK_FORMAT_1("%i", "-123", (int)-123); + CHECK_FORMAT_1("%ld", "-123", (long)-123); + CHECK_FORMAT_1("%li", "-123", (long)-123); + CHECK_FORMAT_1("%lld", "-123", (long long)-123); + CHECK_FORMAT_1("%lli", "-123", (long long)-123); + CHECK_FORMAT_1("%zd", "-123", (Py_ssize_t)-123); + CHECK_FORMAT_1("%zi", "-123", (Py_ssize_t)-123); + CHECK_FORMAT_1("%x", "ffffff85", (int)-123); + + // Integers: width < length + CHECK_FORMAT_1("%1d", "123", (int)123); + CHECK_FORMAT_1("%1i", "123", (int)123); + CHECK_FORMAT_1("%1u", "123", (unsigned int)123); + CHECK_FORMAT_1("%1ld", "123", (long)123); + CHECK_FORMAT_1("%1li", "123", (long)123); + CHECK_FORMAT_1("%1lu", "123", (unsigned long)123); + CHECK_FORMAT_1("%1lld", "123", (long long)123); + CHECK_FORMAT_1("%1lli", "123", (long long)123); + CHECK_FORMAT_1("%1llu", "123", (unsigned long long)123); + CHECK_FORMAT_1("%1zd", "123", (Py_ssize_t)123); + CHECK_FORMAT_1("%1zi", "123", (Py_ssize_t)123); + CHECK_FORMAT_1("%1zu", "123", (size_t)123); + CHECK_FORMAT_1("%1x", "7b", (int)123); + + CHECK_FORMAT_1("%1d", "-123", (int)-123); + CHECK_FORMAT_1("%1i", "-123", (int)-123); + CHECK_FORMAT_1("%1ld", "-123", (long)-123); + CHECK_FORMAT_1("%1li", "-123", (long)-123); + CHECK_FORMAT_1("%1lld", "-123", (long long)-123); + CHECK_FORMAT_1("%1lli", "-123", (long long)-123); + CHECK_FORMAT_1("%1zd", "-123", (Py_ssize_t)-123); + CHECK_FORMAT_1("%1zi", "-123", (Py_ssize_t)-123); + CHECK_FORMAT_1("%1x", "ffffff85", (int)-123); + + // Integers: width > length + CHECK_FORMAT_1("%5d", " 123", (int)123); + CHECK_FORMAT_1("%5i", " 123", (int)123); + CHECK_FORMAT_1("%5u", " 123", (unsigned int)123); + CHECK_FORMAT_1("%5ld", " 123", (long)123); + CHECK_FORMAT_1("%5li", " 123", (long)123); + CHECK_FORMAT_1("%5lu", " 123", (unsigned long)123); + CHECK_FORMAT_1("%5lld", " 123", (long long)123); + CHECK_FORMAT_1("%5lli", " 123", (long long)123); + CHECK_FORMAT_1("%5llu", " 123", (unsigned long long)123); + CHECK_FORMAT_1("%5zd", " 123", (Py_ssize_t)123); + CHECK_FORMAT_1("%5zi", " 123", (Py_ssize_t)123); + CHECK_FORMAT_1("%5zu", " 123", (size_t)123); + CHECK_FORMAT_1("%5x", " 7b", (int)123); + + CHECK_FORMAT_1("%5d", " -123", (int)-123); + CHECK_FORMAT_1("%5i", " -123", (int)-123); + CHECK_FORMAT_1("%5ld", " -123", (long)-123); + CHECK_FORMAT_1("%5li", " -123", (long)-123); + CHECK_FORMAT_1("%5lld", " -123", (long long)-123); + CHECK_FORMAT_1("%5lli", " -123", (long long)-123); + CHECK_FORMAT_1("%5zd", " -123", (Py_ssize_t)-123); + CHECK_FORMAT_1("%5zi", " -123", (Py_ssize_t)-123); + CHECK_FORMAT_1("%9x", " ffffff85", (int)-123); + + // Integers: width > length, 0-flag + CHECK_FORMAT_1("%05d", "00123", (int)123); + CHECK_FORMAT_1("%05i", "00123", (int)123); + CHECK_FORMAT_1("%05u", "00123", (unsigned int)123); + CHECK_FORMAT_1("%05ld", "00123", (long)123); + CHECK_FORMAT_1("%05li", "00123", (long)123); + CHECK_FORMAT_1("%05lu", "00123", (unsigned long)123); + CHECK_FORMAT_1("%05lld", "00123", (long long)123); + CHECK_FORMAT_1("%05lli", "00123", (long long)123); + CHECK_FORMAT_1("%05llu", "00123", (unsigned long long)123); + CHECK_FORMAT_1("%05zd", "00123", (Py_ssize_t)123); + CHECK_FORMAT_1("%05zi", "00123", (Py_ssize_t)123); + CHECK_FORMAT_1("%05zu", "00123", (size_t)123); + CHECK_FORMAT_1("%05x", "0007b", (int)123); + + CHECK_FORMAT_1("%05d", "-0123", (int)-123); + CHECK_FORMAT_1("%05i", "-0123", (int)-123); + CHECK_FORMAT_1("%05ld", "-0123", (long)-123); + CHECK_FORMAT_1("%05li", "-0123", (long)-123); + CHECK_FORMAT_1("%05lld", "-0123", (long long)-123); + CHECK_FORMAT_1("%05lli", "-0123", (long long)-123); + CHECK_FORMAT_1("%05zd", "-0123", (Py_ssize_t)-123); + CHECK_FORMAT_1("%05zi", "-0123", (Py_ssize_t)-123); + CHECK_FORMAT_1("%09x", "0ffffff85", (int)-123); + + // Integers: precision < length + CHECK_FORMAT_1("%.1d", "123", (int)123); + CHECK_FORMAT_1("%.1i", "123", (int)123); + CHECK_FORMAT_1("%.1u", "123", (unsigned int)123); + CHECK_FORMAT_1("%.1ld", "123", (long)123); + CHECK_FORMAT_1("%.1li", "123", (long)123); + CHECK_FORMAT_1("%.1lu", "123", (unsigned long)123); + CHECK_FORMAT_1("%.1lld", "123", (long long)123); + CHECK_FORMAT_1("%.1lli", "123", (long long)123); + CHECK_FORMAT_1("%.1llu", "123", (unsigned long long)123); + CHECK_FORMAT_1("%.1zd", "123", (Py_ssize_t)123); + CHECK_FORMAT_1("%.1zi", "123", (Py_ssize_t)123); + CHECK_FORMAT_1("%.1zu", "123", (size_t)123); + CHECK_FORMAT_1("%.1x", "7b", (int)123); + + CHECK_FORMAT_1("%.1d", "-123", (int)-123); + CHECK_FORMAT_1("%.1i", "-123", (int)-123); + CHECK_FORMAT_1("%.1ld", "-123", (long)-123); + CHECK_FORMAT_1("%.1li", "-123", (long)-123); + CHECK_FORMAT_1("%.1lld", "-123", (long long)-123); + CHECK_FORMAT_1("%.1lli", "-123", (long long)-123); + CHECK_FORMAT_1("%.1zd", "-123", (Py_ssize_t)-123); + CHECK_FORMAT_1("%.1zi", "-123", (Py_ssize_t)-123); + CHECK_FORMAT_1("%.1x", "ffffff85", (int)-123); + + // Integers: precision > length + CHECK_FORMAT_1("%.5d", "00123", (int)123); + CHECK_FORMAT_1("%.5i", "00123", (int)123); + CHECK_FORMAT_1("%.5u", "00123", (unsigned int)123); + CHECK_FORMAT_1("%.5ld", "00123", (long)123); + CHECK_FORMAT_1("%.5li", "00123", (long)123); + CHECK_FORMAT_1("%.5lu", "00123", (unsigned long)123); + CHECK_FORMAT_1("%.5lld", "00123", (long long)123); + CHECK_FORMAT_1("%.5lli", "00123", (long long)123); + CHECK_FORMAT_1("%.5llu", "00123", (unsigned long long)123); + CHECK_FORMAT_1("%.5zd", "00123", (Py_ssize_t)123); + CHECK_FORMAT_1("%.5zi", "00123", (Py_ssize_t)123); + CHECK_FORMAT_1("%.5zu", "00123", (size_t)123); + CHECK_FORMAT_1("%.5x", "0007b", (int)123); + + CHECK_FORMAT_1("%.5d", "-00123", (int)-123); + CHECK_FORMAT_1("%.5i", "-00123", (int)-123); + CHECK_FORMAT_1("%.5ld", "-00123", (long)-123); + CHECK_FORMAT_1("%.5li", "-00123", (long)-123); + CHECK_FORMAT_1("%.5lld", "-00123", (long long)-123); + CHECK_FORMAT_1("%.5lli", "-00123", (long long)-123); + CHECK_FORMAT_1("%.5zd", "-00123", (Py_ssize_t)-123); + CHECK_FORMAT_1("%.5zi", "-00123", (Py_ssize_t)-123); + CHECK_FORMAT_1("%.9x", "0ffffff85", (int)-123); + + // Integers: width > precision > length + CHECK_FORMAT_1("%7.5d", " 00123", (int)123); + CHECK_FORMAT_1("%7.5i", " 00123", (int)123); + CHECK_FORMAT_1("%7.5u", " 00123", (unsigned int)123); + CHECK_FORMAT_1("%7.5ld", " 00123", (long)123); + CHECK_FORMAT_1("%7.5li", " 00123", (long)123); + CHECK_FORMAT_1("%7.5lu", " 00123", (unsigned long)123); + CHECK_FORMAT_1("%7.5lld", " 00123", (long long)123); + CHECK_FORMAT_1("%7.5lli", " 00123", (long long)123); + CHECK_FORMAT_1("%7.5llu", " 00123", (unsigned long long)123); + CHECK_FORMAT_1("%7.5zd", " 00123", (Py_ssize_t)123); + CHECK_FORMAT_1("%7.5zi", " 00123", (Py_ssize_t)123); + CHECK_FORMAT_1("%7.5zu", " 00123", (size_t)123); + CHECK_FORMAT_1("%7.5x", " 0007b", (int)123); + + CHECK_FORMAT_1("%7.5d", " -00123", (int)-123); + CHECK_FORMAT_1("%7.5i", " -00123", (int)-123); + CHECK_FORMAT_1("%7.5ld", " -00123", (long)-123); + CHECK_FORMAT_1("%7.5li", " -00123", (long)-123); + CHECK_FORMAT_1("%7.5lld", " -00123", (long long)-123); + CHECK_FORMAT_1("%7.5lli", " -00123", (long long)-123); + CHECK_FORMAT_1("%7.5zd", " -00123", (Py_ssize_t)-123); + CHECK_FORMAT_1("%7.5zi", " -00123", (Py_ssize_t)-123); + CHECK_FORMAT_1("%10.9x", " 0ffffff85", (int)-123); + + // Integers: width > precision > length, 0-flag + CHECK_FORMAT_1("%07.5d", "0000123", (int)123); + CHECK_FORMAT_1("%07.5i", "0000123", (int)123); + CHECK_FORMAT_1("%07.5u", "0000123", (unsigned int)123); + CHECK_FORMAT_1("%07.5ld", "0000123", (long)123); + CHECK_FORMAT_1("%07.5li", "0000123", (long)123); + CHECK_FORMAT_1("%07.5lu", "0000123", (unsigned long)123); + CHECK_FORMAT_1("%07.5lld", "0000123", (long long)123); + CHECK_FORMAT_1("%07.5lli", "0000123", (long long)123); + CHECK_FORMAT_1("%07.5llu", "0000123", (unsigned long long)123); + CHECK_FORMAT_1("%07.5zd", "0000123", (Py_ssize_t)123); + CHECK_FORMAT_1("%07.5zi", "0000123", (Py_ssize_t)123); + CHECK_FORMAT_1("%07.5zu", "0000123", (size_t)123); + CHECK_FORMAT_1("%07.5x", "000007b", (int)123); + + CHECK_FORMAT_1("%07.5d", "-000123", (int)-123); + CHECK_FORMAT_1("%07.5i", "-000123", (int)-123); + CHECK_FORMAT_1("%07.5ld", "-000123", (long)-123); + CHECK_FORMAT_1("%07.5li", "-000123", (long)-123); + CHECK_FORMAT_1("%07.5lld", "-000123", (long long)-123); + CHECK_FORMAT_1("%07.5lli", "-000123", (long long)-123); + CHECK_FORMAT_1("%07.5zd", "-000123", (Py_ssize_t)-123); + CHECK_FORMAT_1("%07.5zi", "-000123", (Py_ssize_t)-123); + CHECK_FORMAT_1("%010.9x", "00ffffff85", (int)-123); + + // Integers: precision > width > length + CHECK_FORMAT_1("%5.7d", "0000123", (int)123); + CHECK_FORMAT_1("%5.7i", "0000123", (int)123); + CHECK_FORMAT_1("%5.7u", "0000123", (unsigned int)123); + CHECK_FORMAT_1("%5.7ld", "0000123", (long)123); + CHECK_FORMAT_1("%5.7li", "0000123", (long)123); + CHECK_FORMAT_1("%5.7lu", "0000123", (unsigned long)123); + CHECK_FORMAT_1("%5.7lld", "0000123", (long long)123); + CHECK_FORMAT_1("%5.7lli", "0000123", (long long)123); + CHECK_FORMAT_1("%5.7llu", "0000123", (unsigned long long)123); + CHECK_FORMAT_1("%5.7zd", "0000123", (Py_ssize_t)123); + CHECK_FORMAT_1("%5.7zi", "0000123", (Py_ssize_t)123); + CHECK_FORMAT_1("%5.7zu", "0000123", (size_t)123); + CHECK_FORMAT_1("%5.7x", "000007b", (int)123); + + CHECK_FORMAT_1("%5.7d", "-0000123", (int)-123); + CHECK_FORMAT_1("%5.7i", "-0000123", (int)-123); + CHECK_FORMAT_1("%5.7ld", "-0000123", (long)-123); + CHECK_FORMAT_1("%5.7li", "-0000123", (long)-123); + CHECK_FORMAT_1("%5.7lld", "-0000123", (long long)-123); + CHECK_FORMAT_1("%5.7lli", "-0000123", (long long)-123); + CHECK_FORMAT_1("%5.7zd", "-0000123", (Py_ssize_t)-123); + CHECK_FORMAT_1("%5.7zi", "-0000123", (Py_ssize_t)-123); + CHECK_FORMAT_1("%9.10x", "00ffffff85", (int)-123); + + // Integers: precision > width > length, 0-flag + CHECK_FORMAT_1("%05.7d", "0000123", (int)123); + CHECK_FORMAT_1("%05.7i", "0000123", (int)123); + CHECK_FORMAT_1("%05.7u", "0000123", (unsigned int)123); + CHECK_FORMAT_1("%05.7ld", "0000123", (long)123); + CHECK_FORMAT_1("%05.7li", "0000123", (long)123); + CHECK_FORMAT_1("%05.7lu", "0000123", (unsigned long)123); + CHECK_FORMAT_1("%05.7lld", "0000123", (long long)123); + CHECK_FORMAT_1("%05.7lli", "0000123", (long long)123); + CHECK_FORMAT_1("%05.7llu", "0000123", (unsigned long long)123); + CHECK_FORMAT_1("%05.7zd", "0000123", (Py_ssize_t)123); + CHECK_FORMAT_1("%05.7zi", "0000123", (Py_ssize_t)123); + CHECK_FORMAT_1("%05.7zu", "0000123", (size_t)123); + CHECK_FORMAT_1("%05.7x", "000007b", (int)123); + + CHECK_FORMAT_1("%05.7d", "-0000123", (int)-123); + CHECK_FORMAT_1("%05.7i", "-0000123", (int)-123); + CHECK_FORMAT_1("%05.7ld", "-0000123", (long)-123); + CHECK_FORMAT_1("%05.7li", "-0000123", (long)-123); + CHECK_FORMAT_1("%05.7lld", "-0000123", (long long)-123); + CHECK_FORMAT_1("%05.7lli", "-0000123", (long long)-123); + CHECK_FORMAT_1("%05.7zd", "-0000123", (Py_ssize_t)-123); + CHECK_FORMAT_1("%05.7zi", "-0000123", (Py_ssize_t)-123); + CHECK_FORMAT_1("%09.10x", "00ffffff85", (int)-123); + + // Integers: precision = 0, arg = 0 (empty string in C) + CHECK_FORMAT_1("%.0d", "0", (int)0); + CHECK_FORMAT_1("%.0i", "0", (int)0); + CHECK_FORMAT_1("%.0u", "0", (unsigned int)0); + CHECK_FORMAT_1("%.0ld", "0", (long)0); + CHECK_FORMAT_1("%.0li", "0", (long)0); + CHECK_FORMAT_1("%.0lu", "0", (unsigned long)0); + CHECK_FORMAT_1("%.0lld", "0", (long long)0); + CHECK_FORMAT_1("%.0lli", "0", (long long)0); + CHECK_FORMAT_1("%.0llu", "0", (unsigned long long)0); + CHECK_FORMAT_1("%.0zd", "0", (Py_ssize_t)0); + CHECK_FORMAT_1("%.0zi", "0", (Py_ssize_t)0); + CHECK_FORMAT_1("%.0zu", "0", (size_t)0); + CHECK_FORMAT_1("%.0x", "0", (int)0); + + // Strings + CHECK_FORMAT_1("%s", "None", "None"); + CHECK_FORMAT_1("%U", "None", unicode); + CHECK_FORMAT_1("%A", "None", Py_None); + CHECK_FORMAT_1("%S", "None", Py_None); + CHECK_FORMAT_1("%R", "None", Py_None); + CHECK_FORMAT_2("%V", "None", unicode, "ignored"); + CHECK_FORMAT_2("%V", "None", NULL, "None"); + + // Strings: width < length + CHECK_FORMAT_1("%1s", "None", "None"); + CHECK_FORMAT_1("%1U", "None", unicode); + CHECK_FORMAT_1("%1A", "None", Py_None); + CHECK_FORMAT_1("%1S", "None", Py_None); + CHECK_FORMAT_1("%1R", "None", Py_None); + CHECK_FORMAT_2("%1V", "None", unicode, "ignored"); + CHECK_FORMAT_2("%1V", "None", NULL, "None"); + + // Strings: width > length + CHECK_FORMAT_1("%5s", " None", "None"); + CHECK_FORMAT_1("%5U", " None", unicode); + CHECK_FORMAT_1("%5A", " None", Py_None); + CHECK_FORMAT_1("%5S", " None", Py_None); + CHECK_FORMAT_1("%5R", " None", Py_None); + CHECK_FORMAT_2("%5V", " None", unicode, "ignored"); + CHECK_FORMAT_2("%5V", " None", NULL, "None"); + + // Strings: precision < length + CHECK_FORMAT_1("%.1s", "N", "None"); + CHECK_FORMAT_1("%.1U", "N", unicode); + CHECK_FORMAT_1("%.1A", "N", Py_None); + CHECK_FORMAT_1("%.1S", "N", Py_None); + CHECK_FORMAT_1("%.1R", "N", Py_None); + CHECK_FORMAT_2("%.1V", "N", unicode, "ignored"); + CHECK_FORMAT_2("%.1V", "N", NULL, "None"); + + // Strings: precision > length + CHECK_FORMAT_1("%.5s", "None", "None"); + CHECK_FORMAT_1("%.5U", "None", unicode); + CHECK_FORMAT_1("%.5A", "None", Py_None); + CHECK_FORMAT_1("%.5S", "None", Py_None); + CHECK_FORMAT_1("%.5R", "None", Py_None); + CHECK_FORMAT_2("%.5V", "None", unicode, "ignored"); + CHECK_FORMAT_2("%.5V", "None", NULL, "None"); + + // Strings: precision < length, width > length + CHECK_FORMAT_1("%5.1s", " N", "None"); + CHECK_FORMAT_1("%5.1U", " N", unicode); + CHECK_FORMAT_1("%5.1A", " N", Py_None); + CHECK_FORMAT_1("%5.1S", " N", Py_None); + CHECK_FORMAT_1("%5.1R", " N", Py_None); + CHECK_FORMAT_2("%5.1V", " N", unicode, "ignored"); + CHECK_FORMAT_2("%5.1V", " N", NULL, "None"); + + // Strings: width < length, precision > length + CHECK_FORMAT_1("%1.5s", "None", "None"); + CHECK_FORMAT_1("%1.5U", "None", unicode); + CHECK_FORMAT_1("%1.5A", "None", Py_None); + CHECK_FORMAT_1("%1.5S", "None", Py_None); + CHECK_FORMAT_1("%1.5R", "None", Py_None); + CHECK_FORMAT_2("%1.5V", "None", unicode, "ignored"); + CHECK_FORMAT_2("%1.5V", "None", NULL, "None"); + + Py_XDECREF(unicode); + Py_RETURN_NONE; + + Fail: + Py_XDECREF(result); + Py_XDECREF(unicode); + return NULL; + +#undef CHECK_FORMAT_2 +#undef CHECK_FORMAT_1 +#undef CHECK_FORMAT_0 +} + +static PyMethodDef TestMethods[] = { + {"codec_incrementalencoder", codec_incrementalencoder, METH_VARARGS}, + {"codec_incrementaldecoder", codec_incrementaldecoder, METH_VARARGS}, + {"test_unicode_compare_with_ascii", + test_unicode_compare_with_ascii, METH_NOARGS}, + {"test_string_from_format", test_string_from_format, METH_NOARGS}, + {"test_widechar", test_widechar, METH_NOARGS}, + {"unicode_aswidechar", unicode_aswidechar, METH_VARARGS}, + {"unicode_aswidecharstring", unicode_aswidecharstring, METH_VARARGS}, + {"unicode_asucs4", unicode_asucs4, METH_VARARGS}, + {"unicode_asutf8", unicode_asutf8, METH_VARARGS}, + {"unicode_asutf8andsize", unicode_asutf8andsize, METH_VARARGS}, + {"unicode_findchar", unicode_findchar, METH_VARARGS}, + {"unicode_copycharacters", unicode_copycharacters, METH_VARARGS}, + {NULL}, +}; + +int +_PyTestCapi_Init_Unicode(PyObject *m) { + _testcapimodule = PyModule_GetDef(m); + + if (PyModule_AddFunctions(m, TestMethods) < 0) { + return -1; + } + + return 0; +} diff --git a/Modules/_testcapi/vectorcall.c b/Modules/_testcapi/vectorcall.c new file mode 100644 index 00000000000000..e9c863a7570458 --- /dev/null +++ b/Modules/_testcapi/vectorcall.c @@ -0,0 +1,409 @@ +#include "parts.h" +#include "clinic/vectorcall.c.h" + +#include "structmember.h" // PyMemberDef +#include <stddef.h> // offsetof + + +/* Test PEP 590 - Vectorcall */ + +static int +fastcall_args(PyObject *args, PyObject ***stack, Py_ssize_t *nargs) +{ + if (args == Py_None) { + *stack = NULL; + *nargs = 0; + } + else if (PyTuple_Check(args)) { + *stack = ((PyTupleObject *)args)->ob_item; + *nargs = PyTuple_GET_SIZE(args); + } + else { + PyErr_SetString(PyExc_TypeError, "args must be None or a tuple"); + return -1; + } + return 0; +} + + +static PyObject * +test_pyobject_fastcall(PyObject *self, PyObject *args) +{ + PyObject *func, *func_args; + PyObject **stack; + Py_ssize_t nargs; + + if (!PyArg_ParseTuple(args, "OO", &func, &func_args)) { + return NULL; + } + + if (fastcall_args(func_args, &stack, &nargs) < 0) { + return NULL; + } + return _PyObject_FastCall(func, stack, nargs); +} + +static PyObject * +test_pyobject_fastcalldict(PyObject *self, PyObject *args) +{ + PyObject *func, *func_args, *kwargs; + PyObject **stack; + Py_ssize_t nargs; + + if (!PyArg_ParseTuple(args, "OOO", &func, &func_args, &kwargs)) { + return NULL; + } + + if (fastcall_args(func_args, &stack, &nargs) < 0) { + return NULL; + } + + if (kwargs == Py_None) { + kwargs = NULL; + } + else if (!PyDict_Check(kwargs)) { + PyErr_SetString(PyExc_TypeError, "kwnames must be None or a dict"); + return NULL; + } + + return PyObject_VectorcallDict(func, stack, nargs, kwargs); +} + +static PyObject * +test_pyobject_vectorcall(PyObject *self, PyObject *args) +{ + PyObject *func, *func_args, *kwnames = NULL; + PyObject **stack; + Py_ssize_t nargs, nkw; + + if (!PyArg_ParseTuple(args, "OOO", &func, &func_args, &kwnames)) { + return NULL; + } + + if (fastcall_args(func_args, &stack, &nargs) < 0) { + return NULL; + } + + if (kwnames == Py_None) { + kwnames = NULL; + } + else if (PyTuple_Check(kwnames)) { + nkw = PyTuple_GET_SIZE(kwnames); + if (nargs < nkw) { + PyErr_SetString(PyExc_ValueError, "kwnames longer than args"); + return NULL; + } + nargs -= nkw; + } + else { + PyErr_SetString(PyExc_TypeError, "kwnames must be None or a tuple"); + return NULL; + } + return PyObject_Vectorcall(func, stack, nargs, kwnames); +} + +static PyObject * +override_vectorcall(PyObject *callable, PyObject *const *args, size_t nargsf, + PyObject *kwnames) +{ + return PyUnicode_FromString("overridden"); +} + +static PyObject * +function_setvectorcall(PyObject *self, PyObject *func) +{ + if (!PyFunction_Check(func)) { + PyErr_SetString(PyExc_TypeError, "'func' must be a function"); + return NULL; + } + PyFunction_SetVectorcall((PyFunctionObject *)func, (vectorcallfunc)override_vectorcall); + Py_RETURN_NONE; +} + +static PyObject * +test_pyvectorcall_call(PyObject *self, PyObject *args) +{ + PyObject *func; + PyObject *argstuple; + PyObject *kwargs = NULL; + + if (!PyArg_ParseTuple(args, "OO|O", &func, &argstuple, &kwargs)) { + return NULL; + } + + if (!PyTuple_Check(argstuple)) { + PyErr_SetString(PyExc_TypeError, "args must be a tuple"); + return NULL; + } + if (kwargs != NULL && !PyDict_Check(kwargs)) { + PyErr_SetString(PyExc_TypeError, "kwargs must be a dict"); + return NULL; + } + + return PyVectorcall_Call(func, argstuple, kwargs); +} + +PyObject * +VectorCallClass_tpcall(PyObject *self, PyObject *args, PyObject *kwargs) { + return PyUnicode_FromString("tp_call"); +} + +PyObject * +VectorCallClass_vectorcall(PyObject *callable, + PyObject *const *args, + size_t nargsf, + PyObject *kwnames) { + return PyUnicode_FromString("vectorcall"); +} + +/*[clinic input] +module _testcapi +class _testcapi.VectorCallClass "PyObject *" "&PyType_Type" +[clinic start generated code]*/ +/*[clinic end generated code: output=da39a3ee5e6b4b0d input=8423a8e919f2f0df]*/ + +/*[clinic input] +_testcapi.VectorCallClass.set_vectorcall + + type: object(subclass_of="&PyType_Type", type="PyTypeObject *") + / + +Set self's vectorcall function for `type` to one that returns "vectorcall" +[clinic start generated code]*/ + +static PyObject * +_testcapi_VectorCallClass_set_vectorcall_impl(PyObject *self, + PyTypeObject *type) +/*[clinic end generated code: output=b37f0466f15da903 input=840de66182c7d71a]*/ +{ + if (!PyObject_TypeCheck(self, type)) { + return PyErr_Format( + PyExc_TypeError, + "expected %s instance", + PyType_GetName(type)); + } + if (!type->tp_vectorcall_offset) { + return PyErr_Format( + PyExc_TypeError, + "type %s has no vectorcall offset", + PyType_GetName(type)); + } + *(vectorcallfunc*)((char*)self + type->tp_vectorcall_offset) = ( + VectorCallClass_vectorcall); + Py_RETURN_NONE; +} + +PyMethodDef VectorCallClass_methods[] = { + _TESTCAPI_VECTORCALLCLASS_SET_VECTORCALL_METHODDEF + {NULL, NULL} +}; + +PyMemberDef VectorCallClass_members[] = { + {"__vectorcalloffset__", T_PYSSIZET, 0/* set later */, READONLY}, + {NULL} +}; + +PyType_Slot VectorCallClass_slots[] = { + {Py_tp_call, VectorCallClass_tpcall}, + {Py_tp_members, VectorCallClass_members}, + {Py_tp_methods, VectorCallClass_methods}, + {0}, +}; + +/*[clinic input] +_testcapi.make_vectorcall_class + + base: object(subclass_of="&PyType_Type", type="PyTypeObject *") = NULL + / + +Create a class whose instances return "tpcall" when called. + +When the "set_vectorcall" method is called on an instance, a vectorcall +function that returns "vectorcall" will be installed. +[clinic start generated code]*/ + +static PyObject * +_testcapi_make_vectorcall_class_impl(PyObject *module, PyTypeObject *base) +/*[clinic end generated code: output=16dcfc3062ddf968 input=f72e01ccf52de2b4]*/ +{ + if (!base) { + base = (PyTypeObject *)&PyBaseObject_Type; + } + VectorCallClass_members[0].offset = base->tp_basicsize; + PyType_Spec spec = { + .name = "_testcapi.VectorcallClass", + .basicsize = (int)(base->tp_basicsize + sizeof(vectorcallfunc)), + .flags = Py_TPFLAGS_DEFAULT + | Py_TPFLAGS_HAVE_VECTORCALL + | Py_TPFLAGS_BASETYPE, + .slots = VectorCallClass_slots, + }; + + return PyType_FromSpecWithBases(&spec, (PyObject *)base); +} + +/*[clinic input] +_testcapi.has_vectorcall_flag -> bool + + type: object(subclass_of="&PyType_Type", type="PyTypeObject *") + / + +Return true iff Py_TPFLAGS_HAVE_VECTORCALL is set on the class. +[clinic start generated code]*/ + +static int +_testcapi_has_vectorcall_flag_impl(PyObject *module, PyTypeObject *type) +/*[clinic end generated code: output=3ae8d1374388c671 input=8eee492ac548749e]*/ +{ + return PyType_HasFeature(type, Py_TPFLAGS_HAVE_VECTORCALL); +} + +static PyMethodDef TestMethods[] = { + {"pyobject_fastcall", test_pyobject_fastcall, METH_VARARGS}, + {"pyobject_fastcalldict", test_pyobject_fastcalldict, METH_VARARGS}, + {"pyobject_vectorcall", test_pyobject_vectorcall, METH_VARARGS}, + {"function_setvectorcall", function_setvectorcall, METH_O}, + {"pyvectorcall_call", test_pyvectorcall_call, METH_VARARGS}, + _TESTCAPI_MAKE_VECTORCALL_CLASS_METHODDEF + _TESTCAPI_HAS_VECTORCALL_FLAG_METHODDEF + {NULL}, +}; + + +typedef struct { + PyObject_HEAD + vectorcallfunc vectorcall; +} MethodDescriptorObject; + +static PyObject * +MethodDescriptor_vectorcall(PyObject *callable, PyObject *const *args, + size_t nargsf, PyObject *kwnames) +{ + /* True if using the vectorcall function in MethodDescriptorObject + * but False for MethodDescriptor2Object */ + MethodDescriptorObject *md = (MethodDescriptorObject *)callable; + return PyBool_FromLong(md->vectorcall != NULL); +} + +static PyObject * +MethodDescriptor_new(PyTypeObject* type, PyObject* args, PyObject *kw) +{ + MethodDescriptorObject *op = (MethodDescriptorObject *)type->tp_alloc(type, 0); + op->vectorcall = MethodDescriptor_vectorcall; + return (PyObject *)op; +} + +static PyObject * +func_descr_get(PyObject *func, PyObject *obj, PyObject *type) +{ + if (obj == Py_None || obj == NULL) { + Py_INCREF(func); + return func; + } + return PyMethod_New(func, obj); +} + +static PyObject * +nop_descr_get(PyObject *func, PyObject *obj, PyObject *type) +{ + Py_INCREF(func); + return func; +} + +static PyObject * +call_return_args(PyObject *self, PyObject *args, PyObject *kwargs) +{ + Py_INCREF(args); + return args; +} + +static PyTypeObject MethodDescriptorBase_Type = { + PyVarObject_HEAD_INIT(NULL, 0) + "MethodDescriptorBase", + sizeof(MethodDescriptorObject), + .tp_new = MethodDescriptor_new, + .tp_call = PyVectorcall_Call, + .tp_vectorcall_offset = offsetof(MethodDescriptorObject, vectorcall), + .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | + Py_TPFLAGS_METHOD_DESCRIPTOR | Py_TPFLAGS_HAVE_VECTORCALL, + .tp_descr_get = func_descr_get, +}; + +static PyTypeObject MethodDescriptorDerived_Type = { + PyVarObject_HEAD_INIT(NULL, 0) + "MethodDescriptorDerived", + .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, +}; + +static PyTypeObject MethodDescriptorNopGet_Type = { + PyVarObject_HEAD_INIT(NULL, 0) + "MethodDescriptorNopGet", + .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, + .tp_call = call_return_args, + .tp_descr_get = nop_descr_get, +}; + +typedef struct { + MethodDescriptorObject base; + vectorcallfunc vectorcall; +} MethodDescriptor2Object; + +static PyObject * +MethodDescriptor2_new(PyTypeObject* type, PyObject* args, PyObject *kw) +{ + MethodDescriptor2Object *op = PyObject_New(MethodDescriptor2Object, type); + op->base.vectorcall = NULL; + op->vectorcall = MethodDescriptor_vectorcall; + return (PyObject *)op; +} + +static PyTypeObject MethodDescriptor2_Type = { + PyVarObject_HEAD_INIT(NULL, 0) + "MethodDescriptor2", + sizeof(MethodDescriptor2Object), + .tp_new = MethodDescriptor2_new, + .tp_call = PyVectorcall_Call, + .tp_vectorcall_offset = offsetof(MethodDescriptor2Object, vectorcall), + .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_VECTORCALL, +}; + + +int +_PyTestCapi_Init_Vectorcall(PyObject *m) { + if (PyModule_AddFunctions(m, TestMethods) < 0) { + return -1; + } + + if (PyType_Ready(&MethodDescriptorBase_Type) < 0) { + return -1; + } + if (PyModule_AddType(m, &MethodDescriptorBase_Type) < 0) { + return -1; + } + + MethodDescriptorDerived_Type.tp_base = &MethodDescriptorBase_Type; + if (PyType_Ready(&MethodDescriptorDerived_Type) < 0) { + return -1; + } + if (PyModule_AddType(m, &MethodDescriptorDerived_Type) < 0) { + return -1; + } + + MethodDescriptorNopGet_Type.tp_base = &MethodDescriptorBase_Type; + if (PyType_Ready(&MethodDescriptorNopGet_Type) < 0) { + return -1; + } + if (PyModule_AddType(m, &MethodDescriptorNopGet_Type) < 0) { + return -1; + } + + MethodDescriptor2_Type.tp_base = &MethodDescriptorBase_Type; + if (PyType_Ready(&MethodDescriptor2_Type) < 0) { + return -1; + } + if (PyModule_AddType(m, &MethodDescriptor2_Type) < 0) { + return -1; + } + + return 0; +} diff --git a/Modules/_testcapi/vectorcall_limited.c b/Modules/_testcapi/vectorcall_limited.c new file mode 100644 index 00000000000000..ee57af84b1bb5f --- /dev/null +++ b/Modules/_testcapi/vectorcall_limited.c @@ -0,0 +1,82 @@ +#define Py_LIMITED_API 0x030c0000 // 3.12 +#include "parts.h" + +#ifdef LIMITED_API_AVAILABLE + +#include "structmember.h" // PyMemberDef + +/* Test Vectorcall in the limited API */ + +static PyObject * +LimitedVectorCallClass_tpcall(PyObject *self, PyObject *args, PyObject *kwargs) { + return PyUnicode_FromString("tp_call called"); +} + +static PyObject * +LimitedVectorCallClass_vectorcall(PyObject *callable, + PyObject *const *args, + size_t nargsf, + PyObject *kwnames) { + return PyUnicode_FromString("vectorcall called"); +} + +static PyObject * +LimitedVectorCallClass_new(PyTypeObject *tp, PyTypeObject *a, PyTypeObject *kw) +{ + PyObject *self = ((allocfunc)PyType_GetSlot(tp, Py_tp_alloc))(tp, 0); + if (!self) { + return NULL; + } + *(vectorcallfunc*)((char*)self + sizeof(PyObject)) = ( + LimitedVectorCallClass_vectorcall); + return self; +} + +static PyMemberDef LimitedVectorCallClass_members[] = { + {"__vectorcalloffset__", T_PYSSIZET, sizeof(PyObject), READONLY}, + {NULL} +}; + +static PyType_Slot LimitedVectorallClass_slots[] = { + {Py_tp_new, LimitedVectorCallClass_new}, + {Py_tp_call, LimitedVectorCallClass_tpcall}, + {Py_tp_members, LimitedVectorCallClass_members}, + {0}, +}; + +static PyType_Spec LimitedVectorCallClass_spec = { + .name = "_testcapi.LimitedVectorCallClass", + .basicsize = (int)(sizeof(PyObject) + sizeof(vectorcallfunc)), + .flags = Py_TPFLAGS_DEFAULT + | Py_TPFLAGS_HAVE_VECTORCALL + | Py_TPFLAGS_BASETYPE, + .slots = LimitedVectorallClass_slots, +}; + +static PyMethodDef TestMethods[] = { + /* Add module methods here. + * (Empty list left here as template/example, since using + * PyModule_AddFunctions isn't very common.) + */ + {NULL}, +}; + +int +_PyTestCapi_Init_VectorcallLimited(PyObject *m) { + if (PyModule_AddFunctions(m, TestMethods) < 0) { + return -1; + } + + PyObject *LimitedVectorCallClass = PyType_FromModuleAndSpec( + m, &LimitedVectorCallClass_spec, NULL); + if (!LimitedVectorCallClass) { + return -1; + } + if (PyModule_AddType(m, (PyTypeObject *)LimitedVectorCallClass) < 0) { + return -1; + } + + return 0; +} + +#endif // LIMITED_API_AVAILABLE diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c index ac0c96a11d3f4a..2d4c73cfe97097 100644 --- a/Modules/_testcapimodule.c +++ b/Modules/_testcapimodule.c @@ -21,7 +21,6 @@ #define PY_SSIZE_T_CLEAN #include "Python.h" -#include "frameobject.h" // PyFrame_Check() #include "datetime.h" // PyDateTimeAPI #include "marshal.h" // PyMarshal_WriteLongToFile #include "structmember.h" // PyMemberDef @@ -44,9 +43,12 @@ # error "The public headers should not include <stdbool.h>, see bpo-46748" #endif +// Several parts of this module are broken out into files in _testcapi/. +// Include definitions from there. +#include "_testcapi/parts.h" + // Forward declarations static struct PyModuleDef _testcapimodule; -static PyType_Spec HeapTypeNameType_Spec; static PyObject *TestError; /* set to exception object in init */ @@ -308,30 +310,6 @@ test_dict_inner(int count) } } -static PyObject *pytype_fromspec_meta(PyObject* self, PyObject *meta) -{ - if (!PyType_Check(meta)) { - PyErr_SetString( - TestError, - "pytype_fromspec_meta: must be invoked with a type argument!"); - return NULL; - } - - PyType_Slot HeapCTypeViaMetaclass_slots[] = { - {0}, - }; - - PyType_Spec HeapCTypeViaMetaclass_spec = { - "_testcapi.HeapCTypeViaMetaclass", - sizeof(PyObject), - 0, - Py_TPFLAGS_DEFAULT, - HeapCTypeViaMetaclass_slots - }; - - return PyType_FromMetaclass( - (PyTypeObject *) meta, NULL, &HeapCTypeViaMetaclass_spec, NULL); -} static PyObject* @@ -1170,6 +1148,17 @@ test_get_statictype_slots(PyObject *self, PyObject *Py_UNUSED(ignored)) } +static PyType_Slot HeapTypeNameType_slots[] = { + {0}, +}; + +static PyType_Spec HeapTypeNameType_Spec = { + .name = "_testcapi.HeapTypeNameType", + .basicsize = sizeof(PyObject), + .flags = Py_TPFLAGS_DEFAULT, + .slots = HeapTypeNameType_slots, +}; + static PyObject * test_get_type_name(PyObject *self, PyObject *Py_UNUSED(ignored)) { @@ -1208,126 +1197,6 @@ test_get_type_name(PyObject *self, PyObject *Py_UNUSED(ignored)) } -static PyObject * -simple_str(PyObject *self) { - return PyUnicode_FromString("<test>"); -} - - -static PyObject * -test_type_from_ephemeral_spec(PyObject *self, PyObject *Py_UNUSED(ignored)) -{ - // Test that a heap type can be created from a spec that's later deleted - // (along with all its contents). - // All necessary data must be copied and held by the class - PyType_Spec *spec = NULL; - char *name = NULL; - char *doc = NULL; - PyType_Slot *slots = NULL; - PyObject *class = NULL; - PyObject *instance = NULL; - PyObject *obj = NULL; - PyObject *result = NULL; - - /* create a spec (and all its contents) on the heap */ - - const char NAME[] = "testcapi._Test"; - const char DOC[] = "a test class"; - - spec = PyMem_New(PyType_Spec, 1); - if (spec == NULL) { - PyErr_NoMemory(); - goto finally; - } - name = PyMem_New(char, sizeof(NAME)); - if (name == NULL) { - PyErr_NoMemory(); - goto finally; - } - memcpy(name, NAME, sizeof(NAME)); - - doc = PyMem_New(char, sizeof(DOC)); - if (doc == NULL) { - PyErr_NoMemory(); - goto finally; - } - memcpy(doc, DOC, sizeof(DOC)); - - spec->name = name; - spec->basicsize = sizeof(PyObject); - spec->itemsize = 0; - spec->flags = Py_TPFLAGS_DEFAULT; - slots = PyMem_New(PyType_Slot, 3); - if (slots == NULL) { - PyErr_NoMemory(); - goto finally; - } - slots[0].slot = Py_tp_str; - slots[0].pfunc = simple_str; - slots[1].slot = Py_tp_doc; - slots[1].pfunc = doc; - slots[2].slot = 0; - slots[2].pfunc = NULL; - spec->slots = slots; - - /* create the class */ - - class = PyType_FromSpec(spec); - if (class == NULL) { - goto finally; - } - - /* deallocate the spec (and all contents) */ - - // (Explicitly ovewrite memory before freeing, - // so bugs show themselves even without the debug allocator's help.) - memset(spec, 0xdd, sizeof(PyType_Spec)); - PyMem_Del(spec); - spec = NULL; - memset(name, 0xdd, sizeof(NAME)); - PyMem_Del(name); - name = NULL; - memset(doc, 0xdd, sizeof(DOC)); - PyMem_Del(doc); - doc = NULL; - memset(slots, 0xdd, 3 * sizeof(PyType_Slot)); - PyMem_Del(slots); - slots = NULL; - - /* check that everything works */ - - PyTypeObject *class_tp = (PyTypeObject *)class; - PyHeapTypeObject *class_ht = (PyHeapTypeObject *)class; - assert(strcmp(class_tp->tp_name, "testcapi._Test") == 0); - assert(strcmp(PyUnicode_AsUTF8(class_ht->ht_name), "_Test") == 0); - assert(strcmp(PyUnicode_AsUTF8(class_ht->ht_qualname), "_Test") == 0); - assert(strcmp(class_tp->tp_doc, "a test class") == 0); - - // call and check __str__ - instance = PyObject_CallNoArgs(class); - if (instance == NULL) { - goto finally; - } - obj = PyObject_Str(instance); - if (obj == NULL) { - goto finally; - } - assert(strcmp(PyUnicode_AsUTF8(obj), "<test>") == 0); - Py_CLEAR(obj); - - result = Py_NewRef(Py_None); - finally: - PyMem_Del(spec); - PyMem_Del(name); - PyMem_Del(doc); - PyMem_Del(slots); - Py_XDECREF(class); - Py_XDECREF(instance); - Py_XDECREF(obj); - return result; -} - - static PyObject * test_get_type_qualname(PyObject *self, PyObject *Py_UNUSED(ignored)) { @@ -2017,234 +1886,6 @@ parse_tuple_and_keywords(PyObject *self, PyObject *args) return return_value; } -static PyObject * -test_widechar(PyObject *self, PyObject *Py_UNUSED(ignored)) -{ -#if defined(SIZEOF_WCHAR_T) && (SIZEOF_WCHAR_T == 4) - const wchar_t wtext[2] = {(wchar_t)0x10ABCDu}; - size_t wtextlen = 1; - const wchar_t invalid[1] = {(wchar_t)0x110000u}; -#else - const wchar_t wtext[3] = {(wchar_t)0xDBEAu, (wchar_t)0xDFCDu}; - size_t wtextlen = 2; -#endif - PyObject *wide, *utf8; - - wide = PyUnicode_FromWideChar(wtext, wtextlen); - if (wide == NULL) - return NULL; - - utf8 = PyUnicode_FromString("\xf4\x8a\xaf\x8d"); - if (utf8 == NULL) { - Py_DECREF(wide); - return NULL; - } - - if (PyUnicode_GET_LENGTH(wide) != PyUnicode_GET_LENGTH(utf8)) { - Py_DECREF(wide); - Py_DECREF(utf8); - return raiseTestError("test_widechar", - "wide string and utf8 string " - "have different length"); - } - if (PyUnicode_Compare(wide, utf8)) { - Py_DECREF(wide); - Py_DECREF(utf8); - if (PyErr_Occurred()) - return NULL; - return raiseTestError("test_widechar", - "wide string and utf8 string " - "are different"); - } - - Py_DECREF(wide); - Py_DECREF(utf8); - -#if defined(SIZEOF_WCHAR_T) && (SIZEOF_WCHAR_T == 4) - wide = PyUnicode_FromWideChar(invalid, 1); - if (wide == NULL) - PyErr_Clear(); - else - return raiseTestError("test_widechar", - "PyUnicode_FromWideChar(L\"\\U00110000\", 1) didn't fail"); -#endif - Py_RETURN_NONE; -} - -static PyObject * -unicode_aswidechar(PyObject *self, PyObject *args) -{ - PyObject *unicode, *result; - Py_ssize_t buflen, size; - wchar_t *buffer; - - if (!PyArg_ParseTuple(args, "Un", &unicode, &buflen)) - return NULL; - buffer = PyMem_New(wchar_t, buflen); - if (buffer == NULL) - return PyErr_NoMemory(); - - size = PyUnicode_AsWideChar(unicode, buffer, buflen); - if (size == -1) { - PyMem_Free(buffer); - return NULL; - } - - if (size < buflen) - buflen = size + 1; - else - buflen = size; - result = PyUnicode_FromWideChar(buffer, buflen); - PyMem_Free(buffer); - if (result == NULL) - return NULL; - - return Py_BuildValue("(Nn)", result, size); -} - -static PyObject * -unicode_aswidecharstring(PyObject *self, PyObject *args) -{ - PyObject *unicode, *result; - Py_ssize_t size; - wchar_t *buffer; - - if (!PyArg_ParseTuple(args, "U", &unicode)) - return NULL; - - buffer = PyUnicode_AsWideCharString(unicode, &size); - if (buffer == NULL) - return NULL; - - result = PyUnicode_FromWideChar(buffer, size + 1); - PyMem_Free(buffer); - if (result == NULL) - return NULL; - return Py_BuildValue("(Nn)", result, size); -} - -static PyObject * -unicode_asucs4(PyObject *self, PyObject *args) -{ - PyObject *unicode, *result; - Py_UCS4 *buffer; - int copy_null; - Py_ssize_t str_len, buf_len; - - if (!PyArg_ParseTuple(args, "Unp:unicode_asucs4", &unicode, &str_len, &copy_null)) { - return NULL; - } - - buf_len = str_len + 1; - buffer = PyMem_NEW(Py_UCS4, buf_len); - if (buffer == NULL) { - return PyErr_NoMemory(); - } - memset(buffer, 0, sizeof(Py_UCS4)*buf_len); - buffer[str_len] = 0xffffU; - - if (!PyUnicode_AsUCS4(unicode, buffer, buf_len, copy_null)) { - PyMem_Free(buffer); - return NULL; - } - - result = PyUnicode_FromKindAndData(PyUnicode_4BYTE_KIND, buffer, buf_len); - PyMem_Free(buffer); - return result; -} - -static PyObject * -unicode_asutf8(PyObject *self, PyObject *args) -{ - PyObject *unicode; - const char *buffer; - - if (!PyArg_ParseTuple(args, "U", &unicode)) { - return NULL; - } - - buffer = PyUnicode_AsUTF8(unicode); - if (buffer == NULL) { - return NULL; - } - - return PyBytes_FromString(buffer); -} - -static PyObject * -unicode_asutf8andsize(PyObject *self, PyObject *args) -{ - PyObject *unicode, *result; - const char *buffer; - Py_ssize_t utf8_len; - - if(!PyArg_ParseTuple(args, "U", &unicode)) { - return NULL; - } - - buffer = PyUnicode_AsUTF8AndSize(unicode, &utf8_len); - if (buffer == NULL) { - return NULL; - } - - result = PyBytes_FromString(buffer); - if (result == NULL) { - return NULL; - } - - return Py_BuildValue("(Nn)", result, utf8_len); -} - -static PyObject * -unicode_findchar(PyObject *self, PyObject *args) -{ - PyObject *str; - int direction; - unsigned int ch; - Py_ssize_t result; - Py_ssize_t start, end; - - if (!PyArg_ParseTuple(args, "UInni:unicode_findchar", &str, &ch, - &start, &end, &direction)) { - return NULL; - } - - result = PyUnicode_FindChar(str, (Py_UCS4)ch, start, end, direction); - if (result == -2) - return NULL; - else - return PyLong_FromSsize_t(result); -} - -static PyObject * -unicode_copycharacters(PyObject *self, PyObject *args) -{ - PyObject *from, *to, *to_copy; - Py_ssize_t from_start, to_start, how_many, copied; - - if (!PyArg_ParseTuple(args, "UnOnn:unicode_copycharacters", &to, &to_start, - &from, &from_start, &how_many)) { - return NULL; - } - - if (!(to_copy = PyUnicode_New(PyUnicode_GET_LENGTH(to), - PyUnicode_MAX_CHAR_VALUE(to)))) { - return NULL; - } - if (PyUnicode_Fill(to_copy, 0, PyUnicode_GET_LENGTH(to_copy), 0U) < 0) { - Py_DECREF(to_copy); - return NULL; - } - - if ((copied = PyUnicode_CopyCharacters(to_copy, to_start, from, - from_start, how_many)) < 0) { - Py_DECREF(to_copy); - return NULL; - } - - return Py_BuildValue("(Nn)", to_copy, copied); -} - static PyObject * getargs_w_star(PyObject *self, PyObject *args) { @@ -2295,27 +1936,6 @@ test_empty_argparse(PyObject *self, PyObject *Py_UNUSED(ignored)) } } -static PyObject * -codec_incrementalencoder(PyObject *self, PyObject *args) -{ - const char *encoding, *errors = NULL; - if (!PyArg_ParseTuple(args, "s|s:test_incrementalencoder", - &encoding, &errors)) - return NULL; - return PyCodec_IncrementalEncoder(encoding, errors); -} - -static PyObject * -codec_incrementaldecoder(PyObject *self, PyObject *args) -{ - const char *encoding, *errors = NULL; - if (!PyArg_ParseTuple(args, "s|s:test_incrementaldecoder", - &encoding, &errors)) - return NULL; - return PyCodec_IncrementalDecoder(encoding, errors); -} - - /* Simple test of _PyLong_NumBits and _PyLong_Sign. */ static PyObject * test_long_numbits(PyObject *self, PyObject *Py_UNUSED(ignored)) @@ -2818,7 +2438,7 @@ test_PyDateTime_GET(PyObject *self, PyObject *obj) month = PyDateTime_GET_MONTH(obj); day = PyDateTime_GET_DAY(obj); - return Py_BuildValue("(lll)", year, month, day); + return Py_BuildValue("(iii)", year, month, day); } static PyObject * @@ -2832,7 +2452,7 @@ test_PyDateTime_DATE_GET(PyObject *self, PyObject *obj) microsecond = PyDateTime_DATE_GET_MICROSECOND(obj); PyObject *tzinfo = PyDateTime_DATE_GET_TZINFO(obj); - return Py_BuildValue("(llllO)", hour, minute, second, microsecond, tzinfo); + return Py_BuildValue("(iiiiO)", hour, minute, second, microsecond, tzinfo); } static PyObject * @@ -2846,7 +2466,7 @@ test_PyDateTime_TIME_GET(PyObject *self, PyObject *obj) microsecond = PyDateTime_TIME_GET_MICROSECOND(obj); PyObject *tzinfo = PyDateTime_TIME_GET_TZINFO(obj); - return Py_BuildValue("(llllO)", hour, minute, second, microsecond, tzinfo); + return Py_BuildValue("(iiiiO)", hour, minute, second, microsecond, tzinfo); } static PyObject * @@ -2858,7 +2478,7 @@ test_PyDateTime_DELTA_GET(PyObject *self, PyObject *obj) seconds = PyDateTime_DELTA_GET_SECONDS(obj); microseconds = PyDateTime_DELTA_GET_MICROSECONDS(obj); - return Py_BuildValue("(lll)", days, seconds, microseconds); + return Py_BuildValue("(iii)", days, seconds, microseconds); } /* test_thread_state spawns a thread of its own, and that thread releases @@ -2978,63 +2598,6 @@ pending_threadfunc(PyObject *self, PyObject *arg) Py_RETURN_TRUE; } -/* Some tests of PyUnicode_FromFormat(). This needs more tests. */ -static PyObject * -test_string_from_format(PyObject *self, PyObject *Py_UNUSED(ignored)) -{ - PyObject *result; - char *msg; - -#define CHECK_1_FORMAT(FORMAT, TYPE) \ - result = PyUnicode_FromFormat(FORMAT, (TYPE)1); \ - if (result == NULL) \ - return NULL; \ - if (!_PyUnicode_EqualToASCIIString(result, "1")) { \ - msg = FORMAT " failed at 1"; \ - goto Fail; \ - } \ - Py_DECREF(result) - - CHECK_1_FORMAT("%d", int); - CHECK_1_FORMAT("%ld", long); - /* The z width modifier was added in Python 2.5. */ - CHECK_1_FORMAT("%zd", Py_ssize_t); - - /* The u type code was added in Python 2.5. */ - CHECK_1_FORMAT("%u", unsigned int); - CHECK_1_FORMAT("%lu", unsigned long); - CHECK_1_FORMAT("%zu", size_t); - - /* "%lld" and "%llu" support added in Python 2.7. */ - CHECK_1_FORMAT("%llu", unsigned long long); - CHECK_1_FORMAT("%lld", long long); - - Py_RETURN_NONE; - - Fail: - Py_XDECREF(result); - return raiseTestError("test_string_from_format", msg); - -#undef CHECK_1_FORMAT -} - - -static PyObject * -test_unicode_compare_with_ascii(PyObject *self, PyObject *Py_UNUSED(ignored)) { - PyObject *py_s = PyUnicode_FromStringAndSize("str\0", 4); - int result; - if (py_s == NULL) - return NULL; - result = PyUnicode_CompareWithASCIIString(py_s, "str"); - Py_DECREF(py_s); - if (!result) { - PyErr_SetString(TestError, "Python string ending in NULL " - "should not compare equal to c string."); - return NULL; - } - Py_RETURN_NONE; -} - /* This is here to provide a docstring for test_descr. */ static PyObject * test_with_docstring(PyObject *self, PyObject *Py_UNUSED(ignored)) @@ -3976,6 +3539,48 @@ test_pymem_alloc0(PyObject *self, PyObject *Py_UNUSED(ignored)) Py_RETURN_NONE; } +static PyObject * +test_pyobject_new(PyObject *self, PyObject *Py_UNUSED(ignored)) +{ + PyObject *obj; + PyTypeObject *type = &PyBaseObject_Type; + PyTypeObject *var_type = &PyLong_Type; + + // PyObject_New() + obj = PyObject_New(PyObject, type); + if (obj == NULL) { + goto alloc_failed; + } + Py_DECREF(obj); + + // PyObject_NEW() + obj = PyObject_NEW(PyObject, type); + if (obj == NULL) { + goto alloc_failed; + } + Py_DECREF(obj); + + // PyObject_NewVar() + obj = PyObject_NewVar(PyObject, var_type, 3); + if (obj == NULL) { + goto alloc_failed; + } + Py_DECREF(obj); + + // PyObject_NEW_VAR() + obj = PyObject_NEW_VAR(PyObject, var_type, 3); + if (obj == NULL) { + goto alloc_failed; + } + Py_DECREF(obj); + + Py_RETURN_NONE; + +alloc_failed: + PyErr_NoMemory(); + return NULL; +} + typedef struct { PyMemAllocatorEx alloc; @@ -5045,155 +4650,33 @@ raise_SIGINT_then_send_None(PyObject *self, PyObject *args) } -static int -fastcall_args(PyObject *args, PyObject ***stack, Py_ssize_t *nargs) +static PyObject* +stack_pointer(PyObject *self, PyObject *args) { - if (args == Py_None) { - *stack = NULL; - *nargs = 0; - } - else if (PyTuple_Check(args)) { - *stack = ((PyTupleObject *)args)->ob_item; - *nargs = PyTuple_GET_SIZE(args); - } - else { - PyErr_SetString(PyExc_TypeError, "args must be None or a tuple"); - return -1; - } - return 0; + int v = 5; + return PyLong_FromVoidPtr(&v); } -static PyObject * -test_pyobject_fastcall(PyObject *self, PyObject *args) +#ifdef W_STOPCODE +static PyObject* +py_w_stopcode(PyObject *self, PyObject *args) { - PyObject *func, *func_args; - PyObject **stack; - Py_ssize_t nargs; - - if (!PyArg_ParseTuple(args, "OO", &func, &func_args)) { - return NULL; - } - - if (fastcall_args(func_args, &stack, &nargs) < 0) { + int sig, status; + if (!PyArg_ParseTuple(args, "i", &sig)) { return NULL; } - return _PyObject_FastCall(func, stack, nargs); + status = W_STOPCODE(sig); + return PyLong_FromLong(status); } +#endif static PyObject * -test_pyobject_fastcalldict(PyObject *self, PyObject *args) +get_mapping_keys(PyObject* self, PyObject *obj) { - PyObject *func, *func_args, *kwargs; - PyObject **stack; - Py_ssize_t nargs; - - if (!PyArg_ParseTuple(args, "OOO", &func, &func_args, &kwargs)) { - return NULL; - } - - if (fastcall_args(func_args, &stack, &nargs) < 0) { - return NULL; - } - - if (kwargs == Py_None) { - kwargs = NULL; - } - else if (!PyDict_Check(kwargs)) { - PyErr_SetString(PyExc_TypeError, "kwnames must be None or a dict"); - return NULL; - } - - return PyObject_VectorcallDict(func, stack, nargs, kwargs); -} - - -static PyObject * -test_pyobject_vectorcall(PyObject *self, PyObject *args) -{ - PyObject *func, *func_args, *kwnames = NULL; - PyObject **stack; - Py_ssize_t nargs, nkw; - - if (!PyArg_ParseTuple(args, "OOO", &func, &func_args, &kwnames)) { - return NULL; - } - - if (fastcall_args(func_args, &stack, &nargs) < 0) { - return NULL; - } - - if (kwnames == Py_None) { - kwnames = NULL; - } - else if (PyTuple_Check(kwnames)) { - nkw = PyTuple_GET_SIZE(kwnames); - if (nargs < nkw) { - PyErr_SetString(PyExc_ValueError, "kwnames longer than args"); - return NULL; - } - nargs -= nkw; - } - else { - PyErr_SetString(PyExc_TypeError, "kwnames must be None or a tuple"); - return NULL; - } - return PyObject_Vectorcall(func, stack, nargs, kwnames); -} - - -static PyObject * -test_pyvectorcall_call(PyObject *self, PyObject *args) -{ - PyObject *func; - PyObject *argstuple; - PyObject *kwargs = NULL; - - if (!PyArg_ParseTuple(args, "OO|O", &func, &argstuple, &kwargs)) { - return NULL; - } - - if (!PyTuple_Check(argstuple)) { - PyErr_SetString(PyExc_TypeError, "args must be a tuple"); - return NULL; - } - if (kwargs != NULL && !PyDict_Check(kwargs)) { - PyErr_SetString(PyExc_TypeError, "kwargs must be a dict"); - return NULL; - } - - return PyVectorcall_Call(func, argstuple, kwargs); -} - - -static PyObject* -stack_pointer(PyObject *self, PyObject *args) -{ - int v = 5; - return PyLong_FromVoidPtr(&v); -} - - -#ifdef W_STOPCODE -static PyObject* -py_w_stopcode(PyObject *self, PyObject *args) -{ - int sig, status; - if (!PyArg_ParseTuple(args, "i", &sig)) { - return NULL; - } - status = W_STOPCODE(sig); - return PyLong_FromLong(status); -} -#endif - - -static PyObject * -get_mapping_keys(PyObject* self, PyObject *obj) -{ - return PyMapping_Keys(obj); -} + return PyMapping_Keys(obj); +} static PyObject * get_mapping_values(PyObject* self, PyObject *obj) @@ -5348,6 +4831,21 @@ sequence_getitem(PyObject *self, PyObject *args) } +static PyObject * +sequence_setitem(PyObject *self, PyObject *args) +{ + Py_ssize_t i; + PyObject *seq, *val; + if (!PyArg_ParseTuple(args, "OnO", &seq, &i, &val)) { + return NULL; + } + if (PySequence_SetItem(seq, i, val)) { + return NULL; + } + Py_RETURN_NONE; +} + + /* Functions for testing C calling conventions (METH_*) are named meth_*, * e.g. "meth_varargs" for METH_VARARGS. * @@ -5796,21 +5294,79 @@ test_code_api(PyObject *self, PyObject *Py_UNUSED(args)) if (co == NULL) { return NULL; } - PyObject *co_code = PyCode_GetCode(co); - if (co_code == NULL) { - Py_DECREF(co); - return NULL; - } - assert(PyBytes_CheckExact(co_code)); - if (PyObject_Length(co_code) == 0) { - PyErr_SetString(PyExc_ValueError, "empty co_code"); - Py_DECREF(co); + /* co_code */ + { + PyObject *co_code = PyCode_GetCode(co); + if (co_code == NULL) { + goto fail; + } + assert(PyBytes_CheckExact(co_code)); + if (PyObject_Length(co_code) == 0) { + PyErr_SetString(PyExc_ValueError, "empty co_code"); + Py_DECREF(co_code); + goto fail; + } Py_DECREF(co_code); - return NULL; + } + /* co_varnames */ + { + PyObject *co_varnames = PyCode_GetVarnames(co); + if (co_varnames == NULL) { + goto fail; + } + if (!PyTuple_CheckExact(co_varnames)) { + PyErr_SetString(PyExc_TypeError, "co_varnames not tuple"); + Py_DECREF(co_varnames); + goto fail; + } + if (PyTuple_GET_SIZE(co_varnames) != 0) { + PyErr_SetString(PyExc_ValueError, "non-empty co_varnames"); + Py_DECREF(co_varnames); + goto fail; + } + Py_DECREF(co_varnames); + } + /* co_cellvars */ + { + PyObject *co_cellvars = PyCode_GetCellvars(co); + if (co_cellvars == NULL) { + goto fail; + } + if (!PyTuple_CheckExact(co_cellvars)) { + PyErr_SetString(PyExc_TypeError, "co_cellvars not tuple"); + Py_DECREF(co_cellvars); + goto fail; + } + if (PyTuple_GET_SIZE(co_cellvars) != 0) { + PyErr_SetString(PyExc_ValueError, "non-empty co_cellvars"); + Py_DECREF(co_cellvars); + goto fail; + } + Py_DECREF(co_cellvars); + } + /* co_freevars */ + { + PyObject *co_freevars = PyCode_GetFreevars(co); + if (co_freevars == NULL) { + goto fail; + } + if (!PyTuple_CheckExact(co_freevars)) { + PyErr_SetString(PyExc_TypeError, "co_freevars not tuple"); + Py_DECREF(co_freevars); + goto fail; + } + if (PyTuple_GET_SIZE(co_freevars) != 0) { + PyErr_SetString(PyExc_ValueError, "non-empty co_freevars"); + Py_DECREF(co_freevars); + goto fail; + } + Py_DECREF(co_freevars); } Py_DECREF(co); - Py_DECREF(co_code); Py_RETURN_NONE; +fail: + Py_DECREF(co); + return NULL; } static int @@ -5858,12 +5414,42 @@ settrace_to_record(PyObject *self, PyObject *list) Py_RETURN_NONE; } +static PyObject * +clear_managed_dict(PyObject *self, PyObject *obj) +{ + _PyObject_ClearManagedDict(obj); + Py_RETURN_NONE; +} + + static PyObject * test_macros(PyObject *self, PyObject *Py_UNUSED(args)) { - // Py_MIN(), Py_MAX() + struct MyStruct { + int x; + }; + wchar_t array[3]; + + // static_assert(), Py_BUILD_ASSERT() + static_assert(1 == 1, "bug"); + Py_BUILD_ASSERT(1 == 1); + + + // Py_MIN(), Py_MAX(), Py_ABS() assert(Py_MIN(5, 11) == 5); assert(Py_MAX(5, 11) == 11); + assert(Py_ABS(-5) == 5); + + // Py_STRINGIFY() + assert(strcmp(Py_STRINGIFY(123), "123") == 0); + + // Py_MEMBER_SIZE(), Py_ARRAY_LENGTH() + assert(Py_MEMBER_SIZE(struct MyStruct, x) == sizeof(int)); + assert(Py_ARRAY_LENGTH(array) == 3); + + // Py_CHARMASK() + int c = 0xab00 | 7; + assert(Py_CHARMASK(c) == 7); // _Py_IS_TYPE_SIGNED() assert(_Py_IS_TYPE_SIGNED(int)); @@ -5872,9 +5458,10 @@ test_macros(PyObject *self, PyObject *Py_UNUSED(args)) Py_RETURN_NONE; } -static PyObject *negative_dictoffset(PyObject *, PyObject *); + static PyObject *test_buildvalue_issue38913(PyObject *, PyObject *); static PyObject *getargs_s_hash_int(PyObject *, PyObject *, PyObject*); +static PyObject *getargs_s_hash_int2(PyObject *, PyObject *, PyObject*); static PyMethodDef TestMethods[] = { {"raise_exception", raise_exception, METH_VARARGS}, @@ -5926,17 +5513,13 @@ static PyMethodDef TestMethods[] = { {"test_long_numbits", test_long_numbits, METH_NOARGS}, {"test_k_code", test_k_code, METH_NOARGS}, {"test_empty_argparse", test_empty_argparse, METH_NOARGS}, - {"pytype_fromspec_meta", pytype_fromspec_meta, METH_O}, {"parse_tuple_and_keywords", parse_tuple_and_keywords, METH_VARARGS}, {"pyobject_repr_from_null", pyobject_repr_from_null, METH_NOARGS}, {"pyobject_str_from_null", pyobject_str_from_null, METH_NOARGS}, {"pyobject_bytes_from_null", pyobject_bytes_from_null, METH_NOARGS}, - {"test_string_from_format", (PyCFunction)test_string_from_format, METH_NOARGS}, {"test_with_docstring", test_with_docstring, METH_NOARGS, PyDoc_STR("This is a pretty normal docstring.")}, {"test_string_to_double", test_string_to_double, METH_NOARGS}, - {"test_unicode_compare_with_ascii", test_unicode_compare_with_ascii, - METH_NOARGS}, {"test_capsule", (PyCFunction)test_capsule, METH_NOARGS}, {"test_from_contiguous", (PyCFunction)test_from_contiguous, METH_NOARGS}, #if (defined(__linux__) || defined(__FreeBSD__)) && defined(__GNUC__) @@ -5945,13 +5528,11 @@ static PyMethodDef TestMethods[] = { {"getbuffer_with_null_view", getbuffer_with_null_view, METH_O}, {"PyBuffer_SizeFromFormat", test_PyBuffer_SizeFromFormat, METH_VARARGS}, {"test_buildvalue_N", test_buildvalue_N, METH_NOARGS}, - {"negative_dictoffset", negative_dictoffset, METH_NOARGS}, {"test_buildvalue_issue38913", test_buildvalue_issue38913, METH_NOARGS}, {"get_args", get_args, METH_VARARGS}, {"test_get_statictype_slots", test_get_statictype_slots, METH_NOARGS}, {"test_get_type_name", test_get_type_name, METH_NOARGS}, {"test_get_type_qualname", test_get_type_qualname, METH_NOARGS}, - {"test_type_from_ephemeral_spec", test_type_from_ephemeral_spec, METH_NOARGS}, {"get_kwargs", _PyCFunction_CAST(get_kwargs), METH_VARARGS|METH_KEYWORDS}, {"getargs_tuple", getargs_tuple, METH_VARARGS}, @@ -5990,6 +5571,8 @@ static PyMethodDef TestMethods[] = { {"getargs_s_hash", getargs_s_hash, METH_VARARGS}, {"getargs_s_hash_int", _PyCFunction_CAST(getargs_s_hash_int), METH_VARARGS|METH_KEYWORDS}, + {"getargs_s_hash_int2", _PyCFunction_CAST(getargs_s_hash_int2), + METH_VARARGS|METH_KEYWORDS}, {"getargs_z", getargs_z, METH_VARARGS}, {"getargs_z_star", getargs_z_star, METH_VARARGS}, {"getargs_z_hash", getargs_z_hash, METH_VARARGS}, @@ -6005,19 +5588,7 @@ static PyMethodDef TestMethods[] = { {"getargs_et", getargs_et, METH_VARARGS}, {"getargs_es_hash", getargs_es_hash, METH_VARARGS}, {"getargs_et_hash", getargs_et_hash, METH_VARARGS}, - {"codec_incrementalencoder", - (PyCFunction)codec_incrementalencoder, METH_VARARGS}, - {"codec_incrementaldecoder", - (PyCFunction)codec_incrementaldecoder, METH_VARARGS}, {"test_s_code", test_s_code, METH_NOARGS}, - {"test_widechar", test_widechar, METH_NOARGS}, - {"unicode_aswidechar", unicode_aswidechar, METH_VARARGS}, - {"unicode_aswidecharstring",unicode_aswidecharstring, METH_VARARGS}, - {"unicode_asucs4", unicode_asucs4, METH_VARARGS}, - {"unicode_asutf8", unicode_asutf8, METH_VARARGS}, - {"unicode_asutf8andsize", unicode_asutf8andsize, METH_VARARGS}, - {"unicode_findchar", unicode_findchar, METH_VARARGS}, - {"unicode_copycharacters", unicode_copycharacters, METH_VARARGS}, {"_test_thread_state", test_thread_state, METH_VARARGS}, {"_pending_threadfunc", pending_threadfunc, METH_VARARGS}, #ifdef HAVE_GETTIMEOFDAY @@ -6041,6 +5612,7 @@ static PyMethodDef TestMethods[] = { {"with_tp_del", with_tp_del, METH_VARARGS}, {"create_cfunction", create_cfunction, METH_NOARGS}, {"test_pymem_alloc0", test_pymem_alloc0, METH_NOARGS}, + {"test_pyobject_new", test_pyobject_new, METH_NOARGS}, {"test_pymem_setrawallocators",test_pymem_setrawallocators, METH_NOARGS}, {"test_pymem_setallocators",test_pymem_setallocators, METH_NOARGS}, {"test_pyobject_setallocators",test_pyobject_setallocators, METH_NOARGS}, @@ -6117,10 +5689,6 @@ static PyMethodDef TestMethods[] = { {"tracemalloc_get_traceback", tracemalloc_get_traceback, METH_VARARGS}, {"dict_get_version", dict_get_version, METH_VARARGS}, {"raise_SIGINT_then_send_None", raise_SIGINT_then_send_None, METH_VARARGS}, - {"pyobject_fastcall", test_pyobject_fastcall, METH_VARARGS}, - {"pyobject_fastcalldict", test_pyobject_fastcalldict, METH_VARARGS}, - {"pyobject_vectorcall", test_pyobject_vectorcall, METH_VARARGS}, - {"pyvectorcall_call", test_pyvectorcall_call, METH_VARARGS}, {"stack_pointer", stack_pointer, METH_NOARGS}, #ifdef W_STOPCODE {"W_STOPCODE", py_w_stopcode, METH_VARARGS}, @@ -6136,6 +5704,7 @@ static PyMethodDef TestMethods[] = { #endif {"write_unraisable_exc", test_write_unraisable_exc, METH_VARARGS}, {"sequence_getitem", sequence_getitem, METH_VARARGS}, + {"sequence_setitem", sequence_setitem, METH_VARARGS}, {"meth_varargs", meth_varargs, METH_VARARGS}, {"meth_varargs_keywords", _PyCFunction_CAST(meth_varargs_keywords), METH_VARARGS|METH_KEYWORDS}, {"meth_o", meth_o, METH_O}, @@ -6164,6 +5733,7 @@ static PyMethodDef TestMethods[] = { {"test_code_api", test_code_api, METH_NOARGS, NULL}, {"settrace_to_record", settrace_to_record, METH_O, NULL}, {"test_macros", test_macros, METH_NOARGS, NULL}, + {"clear_managed_dict", clear_managed_dict, METH_O, NULL}, {NULL, NULL} /* sentinel */ }; @@ -6723,609 +6293,6 @@ static PyTypeObject Generic_Type = { .tp_methods = generic_methods, }; - -/* Test PEP 590 */ - -typedef struct { - PyObject_HEAD - vectorcallfunc vectorcall; -} MethodDescriptorObject; - -static PyObject * -MethodDescriptor_vectorcall(PyObject *callable, PyObject *const *args, - size_t nargsf, PyObject *kwnames) -{ - /* True if using the vectorcall function in MethodDescriptorObject - * but False for MethodDescriptor2Object */ - MethodDescriptorObject *md = (MethodDescriptorObject *)callable; - return PyBool_FromLong(md->vectorcall != NULL); -} - -static PyObject * -MethodDescriptor_new(PyTypeObject* type, PyObject* args, PyObject *kw) -{ - MethodDescriptorObject *op = (MethodDescriptorObject *)type->tp_alloc(type, 0); - op->vectorcall = MethodDescriptor_vectorcall; - return (PyObject *)op; -} - -static PyObject * -func_descr_get(PyObject *func, PyObject *obj, PyObject *type) -{ - if (obj == Py_None || obj == NULL) { - Py_INCREF(func); - return func; - } - return PyMethod_New(func, obj); -} - -static PyObject * -nop_descr_get(PyObject *func, PyObject *obj, PyObject *type) -{ - Py_INCREF(func); - return func; -} - -static PyObject * -call_return_args(PyObject *self, PyObject *args, PyObject *kwargs) -{ - Py_INCREF(args); - return args; -} - -static PyTypeObject MethodDescriptorBase_Type = { - PyVarObject_HEAD_INIT(NULL, 0) - "MethodDescriptorBase", - sizeof(MethodDescriptorObject), - .tp_new = MethodDescriptor_new, - .tp_call = PyVectorcall_Call, - .tp_vectorcall_offset = offsetof(MethodDescriptorObject, vectorcall), - .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | - Py_TPFLAGS_METHOD_DESCRIPTOR | Py_TPFLAGS_HAVE_VECTORCALL, - .tp_descr_get = func_descr_get, -}; - -static PyTypeObject MethodDescriptorDerived_Type = { - PyVarObject_HEAD_INIT(NULL, 0) - "MethodDescriptorDerived", - .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, -}; - -static PyTypeObject MethodDescriptorNopGet_Type = { - PyVarObject_HEAD_INIT(NULL, 0) - "MethodDescriptorNopGet", - .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, - .tp_call = call_return_args, - .tp_descr_get = nop_descr_get, -}; - -typedef struct { - MethodDescriptorObject base; - vectorcallfunc vectorcall; -} MethodDescriptor2Object; - -static PyObject * -MethodDescriptor2_new(PyTypeObject* type, PyObject* args, PyObject *kw) -{ - MethodDescriptor2Object *op = PyObject_New(MethodDescriptor2Object, type); - op->base.vectorcall = NULL; - op->vectorcall = MethodDescriptor_vectorcall; - return (PyObject *)op; -} - -static PyTypeObject MethodDescriptor2_Type = { - PyVarObject_HEAD_INIT(NULL, 0) - "MethodDescriptor2", - sizeof(MethodDescriptor2Object), - .tp_new = MethodDescriptor2_new, - .tp_call = PyVectorcall_Call, - .tp_vectorcall_offset = offsetof(MethodDescriptor2Object, vectorcall), - .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_VECTORCALL, -}; - -PyDoc_STRVAR(heapdocctype__doc__, -"HeapDocCType(arg1, arg2)\n" -"--\n" -"\n" -"somedoc"); - -typedef struct { - PyObject_HEAD -} HeapDocCTypeObject; - -static PyType_Slot HeapDocCType_slots[] = { - {Py_tp_doc, (char*)heapdocctype__doc__}, - {0}, -}; - -static PyType_Spec HeapDocCType_spec = { - "_testcapi.HeapDocCType", - sizeof(HeapDocCTypeObject), - 0, - Py_TPFLAGS_DEFAULT, - HeapDocCType_slots -}; - -typedef struct { - PyObject_HEAD -} HeapTypeNameObject; - -static PyType_Slot HeapTypeNameType_slots[] = { - {0}, -}; - -static PyType_Spec HeapTypeNameType_Spec = { - .name = "_testcapi.HeapTypeNameType", - .basicsize = sizeof(HeapTypeNameObject), - .flags = Py_TPFLAGS_DEFAULT, - .slots = HeapTypeNameType_slots, -}; - -typedef struct { - PyObject_HEAD -} NullTpDocTypeObject; - -static PyType_Slot NullTpDocType_slots[] = { - {Py_tp_doc, NULL}, - {0, 0}, -}; - -static PyType_Spec NullTpDocType_spec = { - "_testcapi.NullTpDocType", - sizeof(NullTpDocTypeObject), - 0, - Py_TPFLAGS_DEFAULT, - NullTpDocType_slots -}; - - -PyDoc_STRVAR(heapgctype__doc__, -"A heap type with GC, and with overridden dealloc.\n\n" -"The 'value' attribute is set to 10 in __init__."); - -typedef struct { - PyObject_HEAD - int value; -} HeapCTypeObject; - -static struct PyMemberDef heapctype_members[] = { - {"value", T_INT, offsetof(HeapCTypeObject, value)}, - {NULL} /* Sentinel */ -}; - -static int -heapctype_init(PyObject *self, PyObject *args, PyObject *kwargs) -{ - ((HeapCTypeObject *)self)->value = 10; - return 0; -} - -static int -heapgcctype_traverse(HeapCTypeObject *self, visitproc visit, void *arg) -{ - Py_VISIT(Py_TYPE(self)); - return 0; -} - -static void -heapgcctype_dealloc(HeapCTypeObject *self) -{ - PyTypeObject *tp = Py_TYPE(self); - PyObject_GC_UnTrack(self); - PyObject_GC_Del(self); - Py_DECREF(tp); -} - -static PyType_Slot HeapGcCType_slots[] = { - {Py_tp_init, heapctype_init}, - {Py_tp_members, heapctype_members}, - {Py_tp_dealloc, heapgcctype_dealloc}, - {Py_tp_traverse, heapgcctype_traverse}, - {Py_tp_doc, (char*)heapgctype__doc__}, - {0, 0}, -}; - -static PyType_Spec HeapGcCType_spec = { - "_testcapi.HeapGcCType", - sizeof(HeapCTypeObject), - 0, - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC, - HeapGcCType_slots -}; - -PyDoc_STRVAR(heapctype__doc__, -"A heap type without GC, but with overridden dealloc.\n\n" -"The 'value' attribute is set to 10 in __init__."); - -static void -heapctype_dealloc(HeapCTypeObject *self) -{ - PyTypeObject *tp = Py_TYPE(self); - PyObject_Free(self); - Py_DECREF(tp); -} - -static PyType_Slot HeapCType_slots[] = { - {Py_tp_init, heapctype_init}, - {Py_tp_members, heapctype_members}, - {Py_tp_dealloc, heapctype_dealloc}, - {Py_tp_doc, (char*)heapctype__doc__}, - {0, 0}, -}; - -static PyType_Spec HeapCType_spec = { - "_testcapi.HeapCType", - sizeof(HeapCTypeObject), - 0, - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, - HeapCType_slots -}; - -PyDoc_STRVAR(heapctypesubclass__doc__, -"Subclass of HeapCType, without GC.\n\n" -"__init__ sets the 'value' attribute to 10 and 'value2' to 20."); - -typedef struct { - HeapCTypeObject base; - int value2; -} HeapCTypeSubclassObject; - -static int -heapctypesubclass_init(PyObject *self, PyObject *args, PyObject *kwargs) -{ - /* Call __init__ of the superclass */ - if (heapctype_init(self, args, kwargs) < 0) { - return -1; - } - /* Initialize additional element */ - ((HeapCTypeSubclassObject *)self)->value2 = 20; - return 0; -} - -static struct PyMemberDef heapctypesubclass_members[] = { - {"value2", T_INT, offsetof(HeapCTypeSubclassObject, value2)}, - {NULL} /* Sentinel */ -}; - -static PyType_Slot HeapCTypeSubclass_slots[] = { - {Py_tp_init, heapctypesubclass_init}, - {Py_tp_members, heapctypesubclass_members}, - {Py_tp_doc, (char*)heapctypesubclass__doc__}, - {0, 0}, -}; - -static PyType_Spec HeapCTypeSubclass_spec = { - "_testcapi.HeapCTypeSubclass", - sizeof(HeapCTypeSubclassObject), - 0, - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, - HeapCTypeSubclass_slots -}; - -PyDoc_STRVAR(heapctypewithbuffer__doc__, -"Heap type with buffer support.\n\n" -"The buffer is set to [b'1', b'2', b'3', b'4']"); - -typedef struct { - HeapCTypeObject base; - char buffer[4]; -} HeapCTypeWithBufferObject; - -static int -heapctypewithbuffer_getbuffer(HeapCTypeWithBufferObject *self, Py_buffer *view, int flags) -{ - self->buffer[0] = '1'; - self->buffer[1] = '2'; - self->buffer[2] = '3'; - self->buffer[3] = '4'; - return PyBuffer_FillInfo( - view, (PyObject*)self, (void *)self->buffer, 4, 1, flags); -} - -static void -heapctypewithbuffer_releasebuffer(HeapCTypeWithBufferObject *self, Py_buffer *view) -{ - assert(view->obj == (void*) self); -} - -static PyType_Slot HeapCTypeWithBuffer_slots[] = { - {Py_bf_getbuffer, heapctypewithbuffer_getbuffer}, - {Py_bf_releasebuffer, heapctypewithbuffer_releasebuffer}, - {Py_tp_doc, (char*)heapctypewithbuffer__doc__}, - {0, 0}, -}; - -static PyType_Spec HeapCTypeWithBuffer_spec = { - "_testcapi.HeapCTypeWithBuffer", - sizeof(HeapCTypeWithBufferObject), - 0, - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, - HeapCTypeWithBuffer_slots -}; - -PyDoc_STRVAR(heapctypesubclasswithfinalizer__doc__, -"Subclass of HeapCType with a finalizer that reassigns __class__.\n\n" -"__class__ is set to plain HeapCTypeSubclass during finalization.\n" -"__init__ sets the 'value' attribute to 10 and 'value2' to 20."); - -static int -heapctypesubclasswithfinalizer_init(PyObject *self, PyObject *args, PyObject *kwargs) -{ - PyTypeObject *base = (PyTypeObject *)PyType_GetSlot(Py_TYPE(self), Py_tp_base); - initproc base_init = PyType_GetSlot(base, Py_tp_init); - base_init(self, args, kwargs); - return 0; -} - -static void -heapctypesubclasswithfinalizer_finalize(PyObject *self) -{ - PyObject *error_type, *error_value, *error_traceback, *m; - PyObject *oldtype = NULL, *newtype = NULL, *refcnt = NULL; - - /* Save the current exception, if any. */ - PyErr_Fetch(&error_type, &error_value, &error_traceback); - - m = PyState_FindModule(&_testcapimodule); - if (m == NULL) { - goto cleanup_finalize; - } - oldtype = PyObject_GetAttrString(m, "HeapCTypeSubclassWithFinalizer"); - newtype = PyObject_GetAttrString(m, "HeapCTypeSubclass"); - if (oldtype == NULL || newtype == NULL) { - goto cleanup_finalize; - } - - if (PyObject_SetAttrString(self, "__class__", newtype) < 0) { - goto cleanup_finalize; - } - refcnt = PyLong_FromSsize_t(Py_REFCNT(oldtype)); - if (refcnt == NULL) { - goto cleanup_finalize; - } - if (PyObject_SetAttrString(oldtype, "refcnt_in_del", refcnt) < 0) { - goto cleanup_finalize; - } - Py_DECREF(refcnt); - refcnt = PyLong_FromSsize_t(Py_REFCNT(newtype)); - if (refcnt == NULL) { - goto cleanup_finalize; - } - if (PyObject_SetAttrString(newtype, "refcnt_in_del", refcnt) < 0) { - goto cleanup_finalize; - } - -cleanup_finalize: - Py_XDECREF(oldtype); - Py_XDECREF(newtype); - Py_XDECREF(refcnt); - - /* Restore the saved exception. */ - PyErr_Restore(error_type, error_value, error_traceback); -} - -static PyType_Slot HeapCTypeSubclassWithFinalizer_slots[] = { - {Py_tp_init, heapctypesubclasswithfinalizer_init}, - {Py_tp_members, heapctypesubclass_members}, - {Py_tp_finalize, heapctypesubclasswithfinalizer_finalize}, - {Py_tp_doc, (char*)heapctypesubclasswithfinalizer__doc__}, - {0, 0}, -}; - -static PyType_Spec HeapCTypeSubclassWithFinalizer_spec = { - "_testcapi.HeapCTypeSubclassWithFinalizer", - sizeof(HeapCTypeSubclassObject), - 0, - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_FINALIZE, - HeapCTypeSubclassWithFinalizer_slots -}; - -static PyType_Slot HeapCTypeMetaclass_slots[] = { - {0}, -}; - -static PyType_Spec HeapCTypeMetaclass_spec = { - "_testcapi.HeapCTypeMetaclass", - sizeof(PyHeapTypeObject), - sizeof(PyMemberDef), - Py_TPFLAGS_DEFAULT, - HeapCTypeMetaclass_slots -}; - -static PyObject * -heap_ctype_metaclass_custom_tp_new(PyTypeObject *tp, PyObject *args, PyObject *kwargs) -{ - return PyType_Type.tp_new(tp, args, kwargs); -} - -static PyType_Slot HeapCTypeMetaclassCustomNew_slots[] = { - { Py_tp_new, heap_ctype_metaclass_custom_tp_new }, - {0}, -}; - -static PyType_Spec HeapCTypeMetaclassCustomNew_spec = { - "_testcapi.HeapCTypeMetaclassCustomNew", - sizeof(PyHeapTypeObject), - sizeof(PyMemberDef), - Py_TPFLAGS_DEFAULT, - HeapCTypeMetaclassCustomNew_slots -}; - - -typedef struct { - PyObject_HEAD - PyObject *dict; -} HeapCTypeWithDictObject; - -static void -heapctypewithdict_dealloc(HeapCTypeWithDictObject* self) -{ - - PyTypeObject *tp = Py_TYPE(self); - Py_XDECREF(self->dict); - PyObject_Free(self); - Py_DECREF(tp); -} - -static PyGetSetDef heapctypewithdict_getsetlist[] = { - {"__dict__", PyObject_GenericGetDict, PyObject_GenericSetDict}, - {NULL} /* Sentinel */ -}; - -static struct PyMemberDef heapctypewithdict_members[] = { - {"dictobj", T_OBJECT, offsetof(HeapCTypeWithDictObject, dict)}, - {"__dictoffset__", T_PYSSIZET, offsetof(HeapCTypeWithDictObject, dict), READONLY}, - {NULL} /* Sentinel */ -}; - -static PyType_Slot HeapCTypeWithDict_slots[] = { - {Py_tp_members, heapctypewithdict_members}, - {Py_tp_getset, heapctypewithdict_getsetlist}, - {Py_tp_dealloc, heapctypewithdict_dealloc}, - {0, 0}, -}; - -static PyType_Spec HeapCTypeWithDict_spec = { - "_testcapi.HeapCTypeWithDict", - sizeof(HeapCTypeWithDictObject), - 0, - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, - HeapCTypeWithDict_slots -}; - -static struct PyMemberDef heapctypewithnegativedict_members[] = { - {"dictobj", T_OBJECT, offsetof(HeapCTypeWithDictObject, dict)}, - {"__dictoffset__", T_PYSSIZET, -(Py_ssize_t)sizeof(void*), READONLY}, - {NULL} /* Sentinel */ -}; - -static PyType_Slot HeapCTypeWithNegativeDict_slots[] = { - {Py_tp_members, heapctypewithnegativedict_members}, - {Py_tp_getset, heapctypewithdict_getsetlist}, - {Py_tp_dealloc, heapctypewithdict_dealloc}, - {0, 0}, -}; - -static PyType_Spec HeapCTypeWithNegativeDict_spec = { - "_testcapi.HeapCTypeWithNegativeDict", - sizeof(HeapCTypeWithDictObject), - 0, - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, - HeapCTypeWithNegativeDict_slots -}; - -typedef struct { - PyObject_HEAD - PyObject *weakreflist; -} HeapCTypeWithWeakrefObject; - -static struct PyMemberDef heapctypewithweakref_members[] = { - {"weakreflist", T_OBJECT, offsetof(HeapCTypeWithWeakrefObject, weakreflist)}, - {"__weaklistoffset__", T_PYSSIZET, - offsetof(HeapCTypeWithWeakrefObject, weakreflist), READONLY}, - {NULL} /* Sentinel */ -}; - -static void -heapctypewithweakref_dealloc(HeapCTypeWithWeakrefObject* self) -{ - - PyTypeObject *tp = Py_TYPE(self); - if (self->weakreflist != NULL) - PyObject_ClearWeakRefs((PyObject *) self); - Py_XDECREF(self->weakreflist); - PyObject_Free(self); - Py_DECREF(tp); -} - -static PyType_Slot HeapCTypeWithWeakref_slots[] = { - {Py_tp_members, heapctypewithweakref_members}, - {Py_tp_dealloc, heapctypewithweakref_dealloc}, - {0, 0}, -}; - -static PyType_Spec HeapCTypeWithWeakref_spec = { - "_testcapi.HeapCTypeWithWeakref", - sizeof(HeapCTypeWithWeakrefObject), - 0, - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, - HeapCTypeWithWeakref_slots -}; - -PyDoc_STRVAR(heapctypesetattr__doc__, -"A heap type without GC, but with overridden __setattr__.\n\n" -"The 'value' attribute is set to 10 in __init__ and updated via attribute setting."); - -typedef struct { - PyObject_HEAD - long value; -} HeapCTypeSetattrObject; - -static struct PyMemberDef heapctypesetattr_members[] = { - {"pvalue", T_LONG, offsetof(HeapCTypeSetattrObject, value)}, - {NULL} /* Sentinel */ -}; - -static int -heapctypesetattr_init(PyObject *self, PyObject *args, PyObject *kwargs) -{ - ((HeapCTypeSetattrObject *)self)->value = 10; - return 0; -} - -static void -heapctypesetattr_dealloc(HeapCTypeSetattrObject *self) -{ - PyTypeObject *tp = Py_TYPE(self); - PyObject_Free(self); - Py_DECREF(tp); -} - -static int -heapctypesetattr_setattro(HeapCTypeSetattrObject *self, PyObject *attr, PyObject *value) -{ - PyObject *svalue = PyUnicode_FromString("value"); - if (svalue == NULL) - return -1; - int eq = PyObject_RichCompareBool(svalue, attr, Py_EQ); - Py_DECREF(svalue); - if (eq < 0) - return -1; - if (!eq) { - return PyObject_GenericSetAttr((PyObject*) self, attr, value); - } - if (value == NULL) { - self->value = 0; - return 0; - } - PyObject *ivalue = PyNumber_Long(value); - if (ivalue == NULL) - return -1; - long v = PyLong_AsLong(ivalue); - Py_DECREF(ivalue); - if (v == -1 && PyErr_Occurred()) - return -1; - self->value = v; - return 0; -} - -static PyType_Slot HeapCTypeSetattr_slots[] = { - {Py_tp_init, heapctypesetattr_init}, - {Py_tp_members, heapctypesetattr_members}, - {Py_tp_setattro, heapctypesetattr_setattro}, - {Py_tp_dealloc, heapctypesetattr_dealloc}, - {Py_tp_doc, (char*)heapctypesetattr__doc__}, - {0, 0}, -}; - -static PyType_Spec HeapCTypeSetattr_spec = { - "_testcapi.HeapCTypeSetattr", - sizeof(HeapCTypeSetattrObject), - 0, - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, - HeapCTypeSetattr_slots -}; - static PyMethodDef meth_instance_methods[] = { {"meth_varargs", meth_varargs, METH_VARARGS}, {"meth_varargs_keywords", _PyCFunction_CAST(meth_varargs_keywords), METH_VARARGS|METH_KEYWORDS}, @@ -7492,29 +6459,6 @@ PyInit__testcapi(void) Py_INCREF(&MyList_Type); PyModule_AddObject(m, "MyList", (PyObject *)&MyList_Type); - if (PyType_Ready(&MethodDescriptorBase_Type) < 0) - return NULL; - Py_INCREF(&MethodDescriptorBase_Type); - PyModule_AddObject(m, "MethodDescriptorBase", (PyObject *)&MethodDescriptorBase_Type); - - MethodDescriptorDerived_Type.tp_base = &MethodDescriptorBase_Type; - if (PyType_Ready(&MethodDescriptorDerived_Type) < 0) - return NULL; - Py_INCREF(&MethodDescriptorDerived_Type); - PyModule_AddObject(m, "MethodDescriptorDerived", (PyObject *)&MethodDescriptorDerived_Type); - - MethodDescriptorNopGet_Type.tp_base = &MethodDescriptorBase_Type; - if (PyType_Ready(&MethodDescriptorNopGet_Type) < 0) - return NULL; - Py_INCREF(&MethodDescriptorNopGet_Type); - PyModule_AddObject(m, "MethodDescriptorNopGet", (PyObject *)&MethodDescriptorNopGet_Type); - - MethodDescriptor2_Type.tp_base = &MethodDescriptorBase_Type; - if (PyType_Ready(&MethodDescriptor2_Type) < 0) - return NULL; - Py_INCREF(&MethodDescriptor2_Type); - PyModule_AddObject(m, "MethodDescriptor2", (PyObject *)&MethodDescriptor2_Type); - if (PyType_Ready(&GenericAlias_Type) < 0) return NULL; Py_INCREF(&GenericAlias_Type); @@ -7588,115 +6532,38 @@ PyInit__testcapi(void) Py_INCREF(TestError); PyModule_AddObject(m, "error", TestError); - PyObject *HeapDocCType = PyType_FromSpec(&HeapDocCType_spec); - if (HeapDocCType == NULL) { - return NULL; - } - PyModule_AddObject(m, "HeapDocCType", HeapDocCType); - - /* bpo-41832: Add a new type to test PyType_FromSpec() - now can accept a NULL tp_doc slot. */ - PyObject *NullTpDocType = PyType_FromSpec(&NullTpDocType_spec); - if (NullTpDocType == NULL) { - return NULL; - } - PyModule_AddObject(m, "NullTpDocType", NullTpDocType); - - PyObject *HeapGcCType = PyType_FromSpec(&HeapGcCType_spec); - if (HeapGcCType == NULL) { - return NULL; - } - PyModule_AddObject(m, "HeapGcCType", HeapGcCType); - - PyObject *HeapCType = PyType_FromSpec(&HeapCType_spec); - if (HeapCType == NULL) { - return NULL; - } - PyObject *subclass_bases = PyTuple_Pack(1, HeapCType); - if (subclass_bases == NULL) { - return NULL; - } - PyObject *HeapCTypeSubclass = PyType_FromSpecWithBases(&HeapCTypeSubclass_spec, subclass_bases); - if (HeapCTypeSubclass == NULL) { - return NULL; - } - Py_DECREF(subclass_bases); - PyModule_AddObject(m, "HeapCTypeSubclass", HeapCTypeSubclass); - - PyObject *HeapCTypeWithDict = PyType_FromSpec(&HeapCTypeWithDict_spec); - if (HeapCTypeWithDict == NULL) { - return NULL; - } - PyModule_AddObject(m, "HeapCTypeWithDict", HeapCTypeWithDict); - - PyObject *HeapCTypeWithNegativeDict = PyType_FromSpec(&HeapCTypeWithNegativeDict_spec); - if (HeapCTypeWithNegativeDict == NULL) { - return NULL; - } - PyModule_AddObject(m, "HeapCTypeWithNegativeDict", HeapCTypeWithNegativeDict); - - PyObject *HeapCTypeWithWeakref = PyType_FromSpec(&HeapCTypeWithWeakref_spec); - if (HeapCTypeWithWeakref == NULL) { - return NULL; - } - PyModule_AddObject(m, "HeapCTypeWithWeakref", HeapCTypeWithWeakref); - - PyObject *HeapCTypeWithBuffer = PyType_FromSpec(&HeapCTypeWithBuffer_spec); - if (HeapCTypeWithBuffer == NULL) { + if (PyType_Ready(&ContainerNoGC_type) < 0) { return NULL; } - PyModule_AddObject(m, "HeapCTypeWithBuffer", HeapCTypeWithBuffer); - - PyObject *HeapCTypeSetattr = PyType_FromSpec(&HeapCTypeSetattr_spec); - if (HeapCTypeSetattr == NULL) { + Py_INCREF(&ContainerNoGC_type); + if (PyModule_AddObject(m, "ContainerNoGC", + (PyObject *) &ContainerNoGC_type) < 0) return NULL; - } - PyModule_AddObject(m, "HeapCTypeSetattr", HeapCTypeSetattr); - PyObject *subclass_with_finalizer_bases = PyTuple_Pack(1, HeapCTypeSubclass); - if (subclass_with_finalizer_bases == NULL) { + /* Include tests from the _testcapi/ directory */ + if (_PyTestCapi_Init_Vectorcall(m) < 0) { return NULL; } - PyObject *HeapCTypeSubclassWithFinalizer = PyType_FromSpecWithBases( - &HeapCTypeSubclassWithFinalizer_spec, subclass_with_finalizer_bases); - if (HeapCTypeSubclassWithFinalizer == NULL) { + if (_PyTestCapi_Init_Heaptype(m) < 0) { return NULL; } - Py_DECREF(subclass_with_finalizer_bases); - PyModule_AddObject(m, "HeapCTypeSubclassWithFinalizer", HeapCTypeSubclassWithFinalizer); - - PyObject *HeapCTypeMetaclass = PyType_FromMetaclass( - &PyType_Type, m, &HeapCTypeMetaclass_spec, (PyObject *) &PyType_Type); - if (HeapCTypeMetaclass == NULL) { - return NULL; - } - PyModule_AddObject(m, "HeapCTypeMetaclass", HeapCTypeMetaclass); - - PyObject *HeapCTypeMetaclassCustomNew = PyType_FromMetaclass( - &PyType_Type, m, &HeapCTypeMetaclassCustomNew_spec, (PyObject *) &PyType_Type); - if (HeapCTypeMetaclassCustomNew == NULL) { + if (_PyTestCapi_Init_Unicode(m) < 0) { return NULL; } - PyModule_AddObject(m, "HeapCTypeMetaclassCustomNew", HeapCTypeMetaclassCustomNew); - if (PyType_Ready(&ContainerNoGC_type) < 0) { +#ifndef LIMITED_API_AVAILABLE + PyModule_AddObjectRef(m, "LIMITED_API_AVAILABLE", Py_False); +#else + PyModule_AddObjectRef(m, "LIMITED_API_AVAILABLE", Py_True); + if (_PyTestCapi_Init_VectorcallLimited(m) < 0) { return NULL; } - Py_INCREF(&ContainerNoGC_type); - if (PyModule_AddObject(m, "ContainerNoGC", - (PyObject *) &ContainerNoGC_type) < 0) - return NULL; +#endif PyState_AddModule(m, &_testcapimodule); return m; } -static PyObject * -negative_dictoffset(PyObject *self, PyObject *Py_UNUSED(ignored)) -{ - return PyType_FromSpec(&HeapCTypeWithNegativeDict_spec); -} - /* Test the C API exposed when PY_SSIZE_T_CLEAN is not defined */ #undef Py_BuildValue @@ -7738,7 +6605,6 @@ test_buildvalue_issue38913(PyObject *self, PyObject *Py_UNUSED(ignored)) } PyErr_Clear(); - Py_RETURN_NONE; } @@ -7749,11 +6615,27 @@ PyAPI_FUNC(int) PyArg_ParseTupleAndKeywords(PyObject *, PyObject *, static PyObject * getargs_s_hash_int(PyObject *self, PyObject *args, PyObject *kwargs) { - static char *keywords[] = {"", "x", NULL}; + static char *keywords[] = {"", "", "x", NULL}; + Py_buffer buf = {NULL}; + const char *s; + int len; + int i = 0; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "w*|s#i", keywords, &buf, &s, &len, &i)) + return NULL; + PyBuffer_Release(&buf); + Py_RETURN_NONE; +} + +static PyObject * +getargs_s_hash_int2(PyObject *self, PyObject *args, PyObject *kwargs) +{ + static char *keywords[] = {"", "", "x", NULL}; + Py_buffer buf = {NULL}; const char *s; int len; int i = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|s#i", keywords, &s, &len, &i)) + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "w*|(s#)i", keywords, &buf, &s, &len, &i)) return NULL; + PyBuffer_Release(&buf); Py_RETURN_NONE; } diff --git a/Modules/_testinternalcapi.c b/Modules/_testinternalcapi.c index 238de749fffc5d..02a061b84f85a3 100644 --- a/Modules/_testinternalcapi.c +++ b/Modules/_testinternalcapi.c @@ -14,6 +14,7 @@ #include "Python.h" #include "pycore_atomic_funcs.h" // _Py_atomic_int_get() #include "pycore_bitutils.h" // _Py_bswap32() +#include "pycore_compile.h" // _PyCompile_OptimizeCfg() #include "pycore_fileutils.h" // _Py_normpath #include "pycore_frame.h" // _PyInterpreterFrame #include "pycore_gc.h" // PyGC_Head @@ -25,7 +26,12 @@ #include "pycore_pystate.h" // _PyThreadState_GET() #include "osdefs.h" // MAXPATHLEN +#include "clinic/_testinternalcapi.c.h" +/*[clinic input] +module _testinternalcapi +[clinic start generated code]*/ +/*[clinic end generated code: output=da39a3ee5e6b4b0d input=7bb583d8c9eb9a78]*/ static PyObject * get_configs(PyObject *self, PyObject *Py_UNUSED(args)) { @@ -505,7 +511,9 @@ set_eval_frame_default(PyObject *self, PyObject *Py_UNUSED(args)) static PyObject * record_eval(PyThreadState *tstate, struct _PyInterpreterFrame *f, int exc) { - PyList_Append(record_list, f->f_func->func_name); + if (PyFunction_Check(f->f_funcobj)) { + PyList_Append(record_list, ((PyFunctionObject *)f->f_funcobj)->func_name); + } return _PyEval_EvalFrameDefault(tstate, f, exc); } @@ -525,6 +533,25 @@ set_eval_frame_record(PyObject *self, PyObject *list) } +/*[clinic input] + +_testinternalcapi.optimize_cfg -> object + + instructions: object + consts: object + +Apply compiler optimizations to an instruction list. +[clinic start generated code]*/ + +static PyObject * +_testinternalcapi_optimize_cfg_impl(PyObject *module, PyObject *instructions, + PyObject *consts) +/*[clinic end generated code: output=5412aeafca683c8b input=7e8a3de86ebdd0f9]*/ +{ + return _PyCompile_OptimizeCfg(instructions, consts); +} + + static PyMethodDef TestMethods[] = { {"get_configs", get_configs, METH_NOARGS}, {"get_recursion_depth", get_recursion_depth, METH_NOARGS}, @@ -543,6 +570,7 @@ static PyMethodDef TestMethods[] = { {"DecodeLocaleEx", decode_locale_ex, METH_VARARGS}, {"set_eval_frame_default", set_eval_frame_default, METH_NOARGS, NULL}, {"set_eval_frame_record", set_eval_frame_record, METH_O, NULL}, + _TESTINTERNALCAPI_OPTIMIZE_CFG_METHODDEF {NULL, NULL} /* sentinel */ }; diff --git a/Modules/_threadmodule.c b/Modules/_threadmodule.c index ace0282ea6fce6..4ac90dc8068934 100644 --- a/Modules/_threadmodule.c +++ b/Modules/_threadmodule.c @@ -57,6 +57,7 @@ lock_traverse(lockobject *self, visitproc visit, void *arg) static void lock_dealloc(lockobject *self) { + PyObject_GC_UnTrack(self); if (self->in_weakreflist != NULL) { PyObject_ClearWeakRefs((PyObject *) self); } @@ -333,6 +334,7 @@ rlock_traverse(rlockobject *self, visitproc visit, void *arg) static void rlock_dealloc(rlockobject *self) { + PyObject_GC_UnTrack(self); if (self->in_weakreflist != NULL) PyObject_ClearWeakRefs((PyObject *) self); /* self->rlock_lock can be NULL if PyThread_allocate_lock() failed diff --git a/Modules/_tracemalloc.c b/Modules/_tracemalloc.c index ae09869deda704..44a1f7b673c0eb 100644 --- a/Modules/_tracemalloc.c +++ b/Modules/_tracemalloc.c @@ -400,7 +400,13 @@ traceback_get_frames(traceback_t *traceback) } _PyInterpreterFrame *pyframe = tstate->cframe->current_frame; - for (; pyframe != NULL;) { + for (;;) { + while (pyframe && _PyFrame_IsIncomplete(pyframe)) { + pyframe = pyframe->previous; + } + if (pyframe == NULL) { + break; + } if (traceback->nframe < _Py_tracemalloc_config.max_nframe) { tracemalloc_get_frame(pyframe, &traceback->frames[traceback->nframe]); assert(traceback->frames[traceback->nframe].filename != NULL); @@ -410,8 +416,7 @@ traceback_get_frames(traceback_t *traceback) traceback->total_nframe++; } - _PyInterpreterFrame *back = pyframe->previous; - pyframe = back; + pyframe = pyframe->previous; } } diff --git a/Modules/_winapi.c b/Modules/_winapi.c index 3e24d512cac384..4845b4e6d4ad7c 100644 --- a/Modules/_winapi.c +++ b/Modules/_winapi.c @@ -1512,6 +1512,50 @@ _winapi_PeekNamedPipe_impl(PyObject *module, HANDLE handle, int size) } } +/*[clinic input] +_winapi.LCMapStringEx + + locale: LPCWSTR + flags: DWORD + src: LPCWSTR + +[clinic start generated code]*/ + +static PyObject * +_winapi_LCMapStringEx_impl(PyObject *module, LPCWSTR locale, DWORD flags, + LPCWSTR src) +/*[clinic end generated code: output=cf4713d80e2b47c9 input=9fe26f95d5ab0001]*/ +{ + if (flags & (LCMAP_SORTHANDLE | LCMAP_HASH | LCMAP_BYTEREV | + LCMAP_SORTKEY)) { + return PyErr_Format(PyExc_ValueError, "unsupported flags"); + } + + int dest_size = LCMapStringEx(locale, flags, src, -1, NULL, 0, + NULL, NULL, 0); + if (dest_size == 0) { + return PyErr_SetFromWindowsErr(0); + } + + wchar_t* dest = PyMem_NEW(wchar_t, dest_size); + if (dest == NULL) { + return PyErr_NoMemory(); + } + + int nmapped = LCMapStringEx(locale, flags, src, -1, dest, dest_size, + NULL, NULL, 0); + if (nmapped == 0) { + DWORD error = GetLastError(); + PyMem_DEL(dest); + return PyErr_SetFromWindowsErr(error); + } + + PyObject *ret = PyUnicode_FromWideChar(dest, dest_size - 1); + PyMem_DEL(dest); + + return ret; +} + /*[clinic input] _winapi.ReadFile @@ -2023,6 +2067,7 @@ static PyMethodDef winapi_functions[] = { _WINAPI_OPENFILEMAPPING_METHODDEF _WINAPI_OPENPROCESS_METHODDEF _WINAPI_PEEKNAMEDPIPE_METHODDEF + _WINAPI_LCMAPSTRINGEX_METHODDEF _WINAPI_READFILE_METHODDEF _WINAPI_SETNAMEDPIPEHANDLESTATE_METHODDEF _WINAPI_TERMINATEPROCESS_METHODDEF @@ -2160,6 +2205,22 @@ static int winapi_exec(PyObject *m) WINAPI_CONSTANT(F_DWORD, FILE_TYPE_PIPE); WINAPI_CONSTANT(F_DWORD, FILE_TYPE_REMOTE); + WINAPI_CONSTANT("u", LOCALE_NAME_INVARIANT); + WINAPI_CONSTANT(F_DWORD, LOCALE_NAME_MAX_LENGTH); + WINAPI_CONSTANT("u", LOCALE_NAME_SYSTEM_DEFAULT); + WINAPI_CONSTANT("u", LOCALE_NAME_USER_DEFAULT); + + WINAPI_CONSTANT(F_DWORD, LCMAP_FULLWIDTH); + WINAPI_CONSTANT(F_DWORD, LCMAP_HALFWIDTH); + WINAPI_CONSTANT(F_DWORD, LCMAP_HIRAGANA); + WINAPI_CONSTANT(F_DWORD, LCMAP_KATAKANA); + WINAPI_CONSTANT(F_DWORD, LCMAP_LINGUISTIC_CASING); + WINAPI_CONSTANT(F_DWORD, LCMAP_LOWERCASE); + WINAPI_CONSTANT(F_DWORD, LCMAP_SIMPLIFIED_CHINESE); + WINAPI_CONSTANT(F_DWORD, LCMAP_TITLECASE); + WINAPI_CONSTANT(F_DWORD, LCMAP_TRADITIONAL_CHINESE); + WINAPI_CONSTANT(F_DWORD, LCMAP_UPPERCASE); + WINAPI_CONSTANT("i", NULL); return 0; diff --git a/Modules/_xxsubinterpretersmodule.c b/Modules/_xxsubinterpretersmodule.c index ee04e308fe554f..f40601ad3a1a72 100644 --- a/Modules/_xxsubinterpretersmodule.c +++ b/Modules/_xxsubinterpretersmodule.c @@ -6,7 +6,6 @@ #endif #include "Python.h" -#include "frameobject.h" #include "pycore_frame.h" #include "pycore_pystate.h" // _PyThreadState_GET() #include "pycore_interpreteridobject.h" @@ -1932,20 +1931,6 @@ _run_script_in_interpreter(PyInterpreterState *interp, const char *codestr, return -1; } -#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS - // Switch to interpreter. - PyThreadState *new_tstate = PyInterpreterState_ThreadHead(interp); - PyThreadState *save1 = PyEval_SaveThread(); - - (void)PyThreadState_Swap(new_tstate); - - // Run the script. - _sharedexception *exc = NULL; - int result = _run_script(interp, codestr, shared, &exc); - - // Switch back. - PyEval_RestoreThread(save1); -#else // Switch to interpreter. PyThreadState *save_tstate = NULL; if (interp != PyInterpreterState_Get()) { @@ -1963,7 +1948,6 @@ _run_script_in_interpreter(PyInterpreterState *interp, const char *codestr, if (save_tstate != NULL) { PyThreadState_Swap(save_tstate); } -#endif // Propagate any exception out to the caller. if (exc != NULL) { diff --git a/Modules/_zoneinfo.c b/Modules/_zoneinfo.c index 1535721b026d1f..207340adec152f 100644 --- a/Modules/_zoneinfo.c +++ b/Modules/_zoneinfo.c @@ -659,14 +659,8 @@ zoneinfo_reduce(PyObject *obj_self, PyObject *unused) PyZoneInfo_ZoneInfo *self = (PyZoneInfo_ZoneInfo *)obj_self; if (self->source == SOURCE_FILE) { // Objects constructed from files cannot be pickled. - PyObject *pickle = PyImport_ImportModule("pickle"); - if (pickle == NULL) { - return NULL; - } - PyObject *pickle_error = - PyObject_GetAttrString(pickle, "PicklingError"); - Py_DECREF(pickle); + _PyImport_GetModuleAttrString("pickle", "PicklingError"); if (pickle_error == NULL) { return NULL; } @@ -2492,14 +2486,13 @@ clear_strong_cache(const PyTypeObject *const type) static PyObject * new_weak_cache(void) { - PyObject *weakref_module = PyImport_ImportModule("weakref"); - if (weakref_module == NULL) { + PyObject *WeakValueDictionary = + _PyImport_GetModuleAttrString("weakref", "WeakValueDictionary"); + if (WeakValueDictionary == NULL) { return NULL; } - - PyObject *weak_cache = - PyObject_CallMethod(weakref_module, "WeakValueDictionary", ""); - Py_DECREF(weakref_module); + PyObject *weak_cache = PyObject_CallNoArgs(WeakValueDictionary); + Py_DECREF(WeakValueDictionary); return weak_cache; } @@ -2656,25 +2649,13 @@ zoneinfomodule_exec(PyObject *m) PyModule_AddObject(m, "ZoneInfo", (PyObject *)&PyZoneInfo_ZoneInfoType); /* Populate imports */ - PyObject *_tzpath_module = PyImport_ImportModule("zoneinfo._tzpath"); - if (_tzpath_module == NULL) { - goto error; - } - _tzpath_find_tzfile = - PyObject_GetAttrString(_tzpath_module, "find_tzfile"); - Py_DECREF(_tzpath_module); + _PyImport_GetModuleAttrString("zoneinfo._tzpath", "find_tzfile"); if (_tzpath_find_tzfile == NULL) { goto error; } - PyObject *io_module = PyImport_ImportModule("io"); - if (io_module == NULL) { - goto error; - } - - io_open = PyObject_GetAttrString(io_module, "open"); - Py_DECREF(io_module); + io_open = _PyImport_GetModuleAttrString("io", "open"); if (io_open == NULL) { goto error; } diff --git a/Modules/addrinfo.h b/Modules/addrinfo.h index c3c86248dd4360..66e5a795f86f19 100644 --- a/Modules/addrinfo.h +++ b/Modules/addrinfo.h @@ -162,7 +162,9 @@ struct sockaddr_storage { #ifdef __cplusplus extern "C" { #endif +#ifdef ENABLE_IPV6 extern void freehostent(struct hostent *); +#endif #ifdef __cplusplus } #endif diff --git a/Modules/arraymodule.c b/Modules/arraymodule.c index a04e6a4e070d9e..924fbf29bfb889 100644 --- a/Modules/arraymodule.c +++ b/Modules/arraymodule.c @@ -60,7 +60,6 @@ typedef struct { PyObject *str_read; PyObject *str_write; - PyObject *str__array_reconstructor; PyObject *str___dict__; PyObject *str_iter; } array_state; @@ -2199,13 +2198,8 @@ array_array___reduce_ex___impl(arrayobject *self, PyTypeObject *cls, assert(state != NULL); if (array_reconstructor == NULL) { - PyObject *array_module = PyImport_ImportModule("array"); - if (array_module == NULL) - return NULL; - array_reconstructor = PyObject_GetAttr( - array_module, - state->str__array_reconstructor); - Py_DECREF(array_module); + array_reconstructor = _PyImport_GetModuleAttrString( + "array", "_array_reconstructor"); if (array_reconstructor == NULL) return NULL; } @@ -3029,7 +3023,6 @@ array_clear(PyObject *module) Py_CLEAR(state->ArrayIterType); Py_CLEAR(state->str_read); Py_CLEAR(state->str_write); - Py_CLEAR(state->str__array_reconstructor); Py_CLEAR(state->str___dict__); Py_CLEAR(state->str_iter); return 0; @@ -3075,7 +3068,6 @@ array_modexec(PyObject *m) /* Add interned strings */ ADD_INTERNED(state, read); ADD_INTERNED(state, write); - ADD_INTERNED(state, _array_reconstructor); ADD_INTERNED(state, __dict__); ADD_INTERNED(state, iter); @@ -3089,13 +3081,8 @@ array_modexec(PyObject *m) return -1; } - PyObject *abc_mod = PyImport_ImportModule("collections.abc"); - if (!abc_mod) { - Py_DECREF((PyObject *)state->ArrayType); - return -1; - } - PyObject *mutablesequence = PyObject_GetAttrString(abc_mod, "MutableSequence"); - Py_DECREF(abc_mod); + PyObject *mutablesequence = _PyImport_GetModuleAttrString( + "collections.abc", "MutableSequence"); if (!mutablesequence) { Py_DECREF((PyObject *)state->ArrayType); return -1; diff --git a/Modules/atexitmodule.c b/Modules/atexitmodule.c index e806730aa9cf2a..a1c511e09d704e 100644 --- a/Modules/atexitmodule.c +++ b/Modules/atexitmodule.c @@ -185,7 +185,7 @@ PyDoc_STRVAR(atexit_run_exitfuncs__doc__, \n\ Run all registered exit functions.\n\ \n\ -If a callaback raises an exception, it is logged with sys.unraisablehook."); +If a callback raises an exception, it is logged with sys.unraisablehook."); static PyObject * atexit_run_exitfuncs(PyObject *module, PyObject *unused) diff --git a/Modules/cjkcodecs/cjkcodecs.h b/Modules/cjkcodecs/cjkcodecs.h index ba8fad26055a8b..d9aeec2ff40b08 100644 --- a/Modules/cjkcodecs/cjkcodecs.h +++ b/Modules/cjkcodecs/cjkcodecs.h @@ -245,14 +245,7 @@ static const struct dbcs_map *mapping_list; static PyObject * getmultibytecodec(void) { - PyObject *mod = PyImport_ImportModuleNoBlock("_multibytecodec"); - if (mod == NULL) { - return NULL; - } - - PyObject *cofunc = PyObject_GetAttrString(mod, "__create_codec"); - Py_DECREF(mod); - return cofunc; + return _PyImport_GetModuleAttrString("_multibytecodec", "__create_codec"); } static PyObject * diff --git a/Modules/cjkcodecs/clinic/multibytecodec.c.h b/Modules/cjkcodecs/clinic/multibytecodec.c.h index 8f850aa8195ca2..b7e340e68796fa 100644 --- a/Modules/cjkcodecs/clinic/multibytecodec.c.h +++ b/Modules/cjkcodecs/clinic/multibytecodec.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_multibytecodec_MultibyteCodec_encode__doc__, "encode($self, /, input, errors=None)\n" "--\n" @@ -25,8 +31,31 @@ static PyObject * _multibytecodec_MultibyteCodec_encode(MultibyteCodecObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(input), &_Py_ID(errors), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"input", "errors", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "encode", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "encode", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *input; @@ -88,8 +117,31 @@ static PyObject * _multibytecodec_MultibyteCodec_decode(MultibyteCodecObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(input), &_Py_ID(errors), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"input", "errors", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "decode", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "decode", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer input = {NULL, NULL}; @@ -156,8 +208,31 @@ static PyObject * _multibytecodec_MultibyteIncrementalEncoder_encode(MultibyteIncrementalEncoderObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(input), &_Py_ID(final), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"input", "final", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "encode", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "encode", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *input; @@ -262,8 +337,31 @@ static PyObject * _multibytecodec_MultibyteIncrementalDecoder_decode(MultibyteIncrementalDecoderObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(input), &_Py_ID(final), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"input", "final", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "decode", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "decode", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer input = {NULL, NULL}; @@ -492,8 +590,19 @@ static PyObject * _multibytecodec_MultibyteStreamWriter_write(MultibyteStreamWriterObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) + #else + # define KWTUPLE NULL + #endif + static const char * const _keywords[] = {"", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "write", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "write", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject *strobj; @@ -525,8 +634,19 @@ static PyObject * _multibytecodec_MultibyteStreamWriter_writelines(MultibyteStreamWriterObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) + #else + # define KWTUPLE NULL + #endif + static const char * const _keywords[] = {"", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "writelines", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "writelines", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject *lines; @@ -570,4 +690,4 @@ PyDoc_STRVAR(_multibytecodec___create_codec__doc__, #define _MULTIBYTECODEC___CREATE_CODEC_METHODDEF \ {"__create_codec", (PyCFunction)_multibytecodec___create_codec, METH_O, _multibytecodec___create_codec__doc__}, -/*[clinic end generated code: output=9e4e3da5ca3c8288 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=b034ec7126c11bde input=a9049054013a1b77]*/ diff --git a/Modules/cjkcodecs/mappings_hk.h b/Modules/cjkcodecs/mappings_hk.h index 1b1d70e7c1750c..9012ae350c4def 100644 --- a/Modules/cjkcodecs/mappings_hk.h +++ b/Modules/cjkcodecs/mappings_hk.h @@ -1,3 +1,4 @@ +// AUTO-GENERATED FILE FROM genmap_tchinese.py: DO NOT EDIT static const ucs2_t __big5hkscs_decmap[6219] = { 17392,19506,17923,17830,17784,29287,19831,17843,31921,19682,31941,15253,18230, 18244,19527,19520,17087,13847,29522,28299,28882,19543,41809,18255,17882,19589, diff --git a/Modules/cjkcodecs/mappings_tw.h b/Modules/cjkcodecs/mappings_tw.h index ec3f9f7468e41b..ceb4bc56a218f2 100644 --- a/Modules/cjkcodecs/mappings_tw.h +++ b/Modules/cjkcodecs/mappings_tw.h @@ -1,3 +1,4 @@ +// AUTO-GENERATED FILE FROM genmap_tchinese.py: DO NOT EDIT static const ucs2_t __big5_decmap[16702] = { 12288,65292,12289,12290,65294,8226,65307,65306,65311,65281,65072,8230,8229, 65104,65380,65106,183,65108,65109,65110,65111,65372,8211,65073,8212,65075, @@ -2631,3 +2632,4 @@ static const struct unim_index cp950ext_encmap[256] = { 0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{__cp950ext_encmap+342,81,104},{ __cp950ext_encmap+366,15,229}, }; + diff --git a/Modules/clinic/_abc.c.h b/Modules/clinic/_abc.c.h index 8d3832e1b83d2d..2adec818c91311 100644 --- a/Modules/clinic/_abc.c.h +++ b/Modules/clinic/_abc.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_abc__reset_registry__doc__, "_reset_registry($module, self, /)\n" "--\n" @@ -159,4 +165,4 @@ _abc_get_cache_token(PyObject *module, PyObject *Py_UNUSED(ignored)) { return _abc_get_cache_token_impl(module); } -/*[clinic end generated code: output=babb3ce445fa9b21 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=c2e69611a495c98d input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_asynciomodule.c.h b/Modules/clinic/_asynciomodule.c.h index 7cc27b8289598d..daf524c3456ca8 100644 --- a/Modules/clinic/_asynciomodule.c.h +++ b/Modules/clinic/_asynciomodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_asyncio_Future___init____doc__, "Future(*, loop=None)\n" "--\n" @@ -26,8 +32,31 @@ static int _asyncio_Future___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(loop), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"loop", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "Future", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "Future", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -139,8 +168,31 @@ static PyObject * _asyncio_Future_add_done_callback(FutureObj *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(context), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "context", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "add_done_callback", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "add_done_callback", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *fn; @@ -193,8 +245,31 @@ static PyObject * _asyncio_Future_cancel(FutureObj *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(msg), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"msg", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "cancel", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "cancel", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *msg = Py_None; @@ -306,8 +381,31 @@ static int _asyncio_Task___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 4 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(coro), &_Py_ID(loop), &_Py_ID(name), &_Py_ID(context), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"coro", "loop", "name", "context", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "Task", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "Task", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[4]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -401,8 +499,31 @@ static PyObject * _asyncio_Task_cancel(TaskObj *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(msg), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"msg", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "cancel", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "cancel", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *msg = Py_None; @@ -466,43 +587,6 @@ _asyncio_Task_uncancel(TaskObj *self, PyObject *Py_UNUSED(ignored)) return _asyncio_Task_uncancel_impl(self); } -PyDoc_STRVAR(_asyncio_Task__check_future__doc__, -"_check_future($self, /, future)\n" -"--\n" -"\n" -"Return False if task and future loops are not compatible."); - -#define _ASYNCIO_TASK__CHECK_FUTURE_METHODDEF \ - {"_check_future", _PyCFunction_CAST(_asyncio_Task__check_future), METH_FASTCALL|METH_KEYWORDS, _asyncio_Task__check_future__doc__}, - -static int -_asyncio_Task__check_future_impl(TaskObj *self, PyObject *future); - -static PyObject * -_asyncio_Task__check_future(TaskObj *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) -{ - PyObject *return_value = NULL; - static const char * const _keywords[] = {"future", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "_check_future", 0}; - PyObject *argsbuf[1]; - PyObject *future; - int _return_value; - - args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf); - if (!args) { - goto exit; - } - future = args[0]; - _return_value = _asyncio_Task__check_future_impl(self, future); - if ((_return_value == -1) && PyErr_Occurred()) { - goto exit; - } - return_value = PyBool_FromLong((long)_return_value); - -exit: - return return_value; -} - PyDoc_STRVAR(_asyncio_Task_get_stack__doc__, "get_stack($self, /, *, limit=None)\n" "--\n" @@ -537,8 +621,31 @@ static PyObject * _asyncio_Task_get_stack(TaskObj *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(limit), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"limit", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "get_stack", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "get_stack", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *limit = Py_None; @@ -581,8 +688,31 @@ static PyObject * _asyncio_Task_print_stack(TaskObj *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(limit), &_Py_ID(file), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"limit", "file", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "print_stack", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "print_stack", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *limit = Py_None; @@ -740,8 +870,31 @@ static PyObject * _asyncio__get_event_loop(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(stacklevel), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"stacklevel", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "_get_event_loop", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "_get_event_loop", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int stacklevel = 3; @@ -802,8 +955,31 @@ static PyObject * _asyncio__register_task(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(task), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"task", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "_register_task", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "_register_task", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject *task; @@ -836,8 +1012,31 @@ static PyObject * _asyncio__unregister_task(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(task), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"task", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "_unregister_task", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "_unregister_task", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject *task; @@ -872,8 +1071,31 @@ static PyObject * _asyncio__enter_task(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(loop), &_Py_ID(task), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"loop", "task", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "_enter_task", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "_enter_task", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; PyObject *loop; PyObject *task; @@ -910,8 +1132,31 @@ static PyObject * _asyncio__leave_task(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(loop), &_Py_ID(task), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"loop", "task", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "_leave_task", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "_leave_task", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; PyObject *loop; PyObject *task; @@ -927,4 +1172,4 @@ _asyncio__leave_task(PyObject *module, PyObject *const *args, Py_ssize_t nargs, exit: return return_value; } -/*[clinic end generated code: output=eccf150c9c30efd5 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=459a7c7f21bbc290 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_bisectmodule.c.h b/Modules/clinic/_bisectmodule.c.h index 2f0a3575cc5ced..bbf456e4b0f411 100644 --- a/Modules/clinic/_bisectmodule.c.h +++ b/Modules/clinic/_bisectmodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_bisect_bisect_right__doc__, "bisect_right($module, /, a, x, lo=0, hi=None, *, key=None)\n" "--\n" @@ -26,8 +32,31 @@ static PyObject * _bisect_bisect_right(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 5 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(a), &_Py_ID(x), &_Py_ID(lo), &_Py_ID(hi), &_Py_ID(key), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"a", "x", "lo", "hi", "key", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "bisect_right", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "bisect_right", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; PyObject *a; @@ -109,8 +138,31 @@ static PyObject * _bisect_insort_right(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 5 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(a), &_Py_ID(x), &_Py_ID(lo), &_Py_ID(hi), &_Py_ID(key), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"a", "x", "lo", "hi", "key", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "insort_right", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "insort_right", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; PyObject *a; @@ -189,8 +241,31 @@ static PyObject * _bisect_bisect_left(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 5 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(a), &_Py_ID(x), &_Py_ID(lo), &_Py_ID(hi), &_Py_ID(key), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"a", "x", "lo", "hi", "key", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "bisect_left", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "bisect_left", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; PyObject *a; @@ -272,8 +347,31 @@ static PyObject * _bisect_insort_left(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 5 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(a), &_Py_ID(x), &_Py_ID(lo), &_Py_ID(hi), &_Py_ID(key), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"a", "x", "lo", "hi", "key", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "insort_left", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "insort_left", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; PyObject *a; @@ -327,4 +425,4 @@ _bisect_insort_left(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P exit: return return_value; } -/*[clinic end generated code: output=ee8c32ff8d3d1fac input=a9049054013a1b77]*/ +/*[clinic end generated code: output=7dc87f7af75275a1 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_bz2module.c.h b/Modules/clinic/_bz2module.c.h index 3ed72f8bceb174..50a48b0bf2b825 100644 --- a/Modules/clinic/_bz2module.c.h +++ b/Modules/clinic/_bz2module.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_bz2_BZ2Compressor_compress__doc__, "compress($self, data, /)\n" "--\n" @@ -95,8 +101,31 @@ static PyObject * _bz2_BZ2Decompressor_decompress(BZ2Decompressor *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(data), &_Py_ID(max_length), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"data", "max_length", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "decompress", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "decompress", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer data = {NULL, NULL}; @@ -139,4 +168,4 @@ _bz2_BZ2Decompressor_decompress(BZ2Decompressor *self, PyObject *const *args, Py return return_value; } -/*[clinic end generated code: output=a1175204a414fe2a input=a9049054013a1b77]*/ +/*[clinic end generated code: output=829bed4097cf2e63 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_codecsmodule.c.h b/Modules/clinic/_codecsmodule.c.h index 29e9d5ea86aa24..25db060cd900fa 100644 --- a/Modules/clinic/_codecsmodule.c.h +++ b/Modules/clinic/_codecsmodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_codecs_register__doc__, "register($module, search_function, /)\n" "--\n" @@ -86,8 +92,31 @@ static PyObject * _codecs_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(obj), &_Py_ID(encoding), &_Py_ID(errors), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"obj", "encoding", "errors", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "encode", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "encode", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *obj; @@ -163,8 +192,31 @@ static PyObject * _codecs_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(obj), &_Py_ID(encoding), &_Py_ID(errors), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"obj", "encoding", "errors", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "decode", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "decode", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *obj; @@ -2817,4 +2869,4 @@ _codecs_lookup_error(PyObject *module, PyObject *arg) #ifndef _CODECS_CODE_PAGE_ENCODE_METHODDEF #define _CODECS_CODE_PAGE_ENCODE_METHODDEF #endif /* !defined(_CODECS_CODE_PAGE_ENCODE_METHODDEF) */ -/*[clinic end generated code: output=92250568c3a6f0a0 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=e885abad241bc54d input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_collectionsmodule.c.h b/Modules/clinic/_collectionsmodule.c.h index e53acd6afb4468..ad4da8856ac3c3 100644 --- a/Modules/clinic/_collectionsmodule.c.h +++ b/Modules/clinic/_collectionsmodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_collections__count_elements__doc__, "_count_elements($module, mapping, iterable, /)\n" "--\n" @@ -69,4 +75,4 @@ tuplegetter_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=36b0948c4676c831 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=12168d58a11a4fb9 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_contextvarsmodule.c.h b/Modules/clinic/_contextvarsmodule.c.h index b1885e41c355d2..461d4845635ef0 100644 --- a/Modules/clinic/_contextvarsmodule.c.h +++ b/Modules/clinic/_contextvarsmodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_contextvars_copy_context__doc__, "copy_context($module, /)\n" "--\n" @@ -18,4 +24,4 @@ _contextvars_copy_context(PyObject *module, PyObject *Py_UNUSED(ignored)) { return _contextvars_copy_context_impl(module); } -/*[clinic end generated code: output=26e07024451baf52 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=1736c27450823e70 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_cryptmodule.c.h b/Modules/clinic/_cryptmodule.c.h index 401d04623e43c7..97b70b3c17e9a2 100644 --- a/Modules/clinic/_cryptmodule.c.h +++ b/Modules/clinic/_cryptmodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(crypt_crypt__doc__, "crypt($module, word, salt, /)\n" "--\n" @@ -60,4 +66,4 @@ crypt_crypt(PyObject *module, PyObject *const *args, Py_ssize_t nargs) exit: return return_value; } -/*[clinic end generated code: output=6f61ab29e361f9d0 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=235ccef9211184f4 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_csv.c.h b/Modules/clinic/_csv.c.h index ae5dec74a173ea..8900946350a524 100644 --- a/Modules/clinic/_csv.c.h +++ b/Modules/clinic/_csv.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_csv_list_dialects__doc__, "list_dialects($module, /)\n" "--\n" @@ -40,8 +46,31 @@ static PyObject * _csv_unregister_dialect(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(name), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"name", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "unregister_dialect", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "unregister_dialect", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject *name; @@ -74,8 +103,31 @@ static PyObject * _csv_get_dialect(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(name), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"name", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "get_dialect", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "get_dialect", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject *name; @@ -111,8 +163,31 @@ static PyObject * _csv_field_size_limit(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(new_limit), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"new_limit", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "field_size_limit", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "field_size_limit", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *new_limit = NULL; @@ -131,4 +206,4 @@ _csv_field_size_limit(PyObject *module, PyObject *const *args, Py_ssize_t nargs, exit: return return_value; } -/*[clinic end generated code: output=6235abc491b02188 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=94374e41eb2806ee input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_curses_panel.c.h b/Modules/clinic/_curses_panel.c.h index 31101c1011ccd6..bb6cc90f0438c0 100644 --- a/Modules/clinic/_curses_panel.c.h +++ b/Modules/clinic/_curses_panel.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_curses_panel_panel_bottom__doc__, "bottom($self, /)\n" "--\n" @@ -163,8 +169,19 @@ static PyObject * _curses_panel_panel_move(PyCursesPanelObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) + #else + # define KWTUPLE NULL + #endif + static const char * const _keywords[] = {"", "", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "move", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "move", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; int y; int x; @@ -223,8 +240,19 @@ static PyObject * _curses_panel_panel_replace(PyCursesPanelObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) + #else + # define KWTUPLE NULL + #endif + static const char * const _keywords[] = {"", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "replace", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "replace", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyCursesWindowObject *win; @@ -260,8 +288,19 @@ static PyObject * _curses_panel_panel_set_userptr(PyCursesPanelObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) + #else + # define KWTUPLE NULL + #endif + static const char * const _keywords[] = {"", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "set_userptr", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "set_userptr", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject *obj; @@ -383,4 +422,4 @@ _curses_panel_update_panels(PyObject *module, PyObject *Py_UNUSED(ignored)) { return _curses_panel_update_panels_impl(module); } -/*[clinic end generated code: output=c471aed62bc31e79 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=8d0533681891523c input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_cursesmodule.c.h b/Modules/clinic/_cursesmodule.c.h index c7d1eca6559b67..67fadace863970 100644 --- a/Modules/clinic/_cursesmodule.c.h +++ b/Modules/clinic/_cursesmodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_curses_window_addch__doc__, "addch([y, x,] ch, [attr=_curses.A_NORMAL])\n" "Paint the character.\n" @@ -2678,8 +2684,31 @@ static PyObject * _curses_setupterm(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(term), &_Py_ID(fd), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"term", "fd", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "setupterm", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "setupterm", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; const char *term = NULL; @@ -4284,4 +4313,4 @@ _curses_has_extended_color_support(PyObject *module, PyObject *Py_UNUSED(ignored #ifndef _CURSES_USE_DEFAULT_COLORS_METHODDEF #define _CURSES_USE_DEFAULT_COLORS_METHODDEF #endif /* !defined(_CURSES_USE_DEFAULT_COLORS_METHODDEF) */ -/*[clinic end generated code: output=1e2a8a160a0fe811 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=b2e71e2012f16197 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_datetimemodule.c.h b/Modules/clinic/_datetimemodule.c.h index 31d2f75f7a86ae..51e51e3791cc24 100644 --- a/Modules/clinic/_datetimemodule.c.h +++ b/Modules/clinic/_datetimemodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(datetime_date_fromtimestamp__doc__, "fromtimestamp($type, timestamp, /)\n" "--\n" @@ -22,8 +28,31 @@ static PyObject * iso_calendar_date_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(year), &_Py_ID(week), &_Py_ID(weekday), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"year", "week", "weekday", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "IsoCalendarDate", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "IsoCalendarDate", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -74,8 +103,31 @@ static PyObject * datetime_datetime_now(PyTypeObject *type, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(tz), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"tz", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "now", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "now", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *tz = Py_None; @@ -94,4 +146,4 @@ datetime_datetime_now(PyTypeObject *type, PyObject *const *args, Py_ssize_t narg exit: return return_value; } -/*[clinic end generated code: output=1a3da7479e443e17 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=42654669940e0e3a input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_dbmmodule.c.h b/Modules/clinic/_dbmmodule.c.h index 8157716a940810..172dc4b9d5793e 100644 --- a/Modules/clinic/_dbmmodule.c.h +++ b/Modules/clinic/_dbmmodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_dbm_dbm_close__doc__, "close($self, /)\n" "--\n" @@ -59,8 +65,19 @@ static PyObject * _dbm_dbm_get(dbmobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) + #else + # define KWTUPLE NULL + #endif + static const char * const _keywords[] = {"", "", NULL}; - static _PyArg_Parser _parser = {"s#|O:get", _keywords, 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .format = "s#|O:get", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE const char *key; Py_ssize_t key_length; PyObject *default_value = Py_None; @@ -94,8 +111,19 @@ static PyObject * _dbm_dbm_setdefault(dbmobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) + #else + # define KWTUPLE NULL + #endif + static const char * const _keywords[] = {"", "", NULL}; - static _PyArg_Parser _parser = {"s#|O:setdefault", _keywords, 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .format = "s#|O:setdefault", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE const char *key; Py_ssize_t key_length; PyObject *default_value = NULL; @@ -172,4 +200,4 @@ dbmopen(PyObject *module, PyObject *const *args, Py_ssize_t nargs) exit: return return_value; } -/*[clinic end generated code: output=5798278a05032d0e input=a9049054013a1b77]*/ +/*[clinic end generated code: output=28dcf736654137c2 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_elementtree.c.h b/Modules/clinic/_elementtree.c.h index 047203eefa3579..0a2a74e220c2d1 100644 --- a/Modules/clinic/_elementtree.c.h +++ b/Modules/clinic/_elementtree.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_elementtree_Element_append__doc__, "append($self, subelement, /)\n" "--\n" @@ -168,8 +174,31 @@ static PyObject * _elementtree_Element_find(ElementObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), &_Py_ID(namespaces), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", "namespaces", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "find", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "find", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *path; @@ -208,8 +237,31 @@ static PyObject * _elementtree_Element_findtext(ElementObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), &_Py_ID(default), &_Py_ID(namespaces), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", "default", "namespaces", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "findtext", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "findtext", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *path; @@ -254,8 +306,31 @@ static PyObject * _elementtree_Element_findall(ElementObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), &_Py_ID(namespaces), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", "namespaces", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "findall", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "findall", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *path; @@ -293,8 +368,31 @@ static PyObject * _elementtree_Element_iterfind(ElementObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), &_Py_ID(namespaces), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", "namespaces", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "iterfind", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "iterfind", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *path; @@ -332,8 +430,31 @@ static PyObject * _elementtree_Element_get(ElementObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(key), &_Py_ID(default), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"key", "default", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "get", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "get", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *key; @@ -370,8 +491,31 @@ static PyObject * _elementtree_Element_iter(ElementObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(tag), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"tag", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "iter", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "iter", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *tag = Py_None; @@ -590,8 +734,31 @@ static int _elementtree_TreeBuilder___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 5 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(element_factory), &_Py_ID(comment_factory), &_Py_ID(pi_factory), &_Py_ID(insert_comments), &_Py_ID(insert_pis), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"element_factory", "comment_factory", "pi_factory", "insert_comments", "insert_pis", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "TreeBuilder", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "TreeBuilder", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[5]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -801,8 +968,31 @@ static int _elementtree_XMLParser___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(target), &_Py_ID(encoding), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"target", "encoding", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "XMLParser", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "XMLParser", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -915,4 +1105,4 @@ _elementtree_XMLParser__setevents(XMLParserObject *self, PyObject *const *args, exit: return return_value; } -/*[clinic end generated code: output=3fd6fa2ce1aeca76 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=67a80531eaf43815 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_gdbmmodule.c.h b/Modules/clinic/_gdbmmodule.c.h index e4cb1e9477f3ac..5c6aeeee7789f7 100644 --- a/Modules/clinic/_gdbmmodule.c.h +++ b/Modules/clinic/_gdbmmodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_gdbm_gdbm_get__doc__, "get($self, key, default=None, /)\n" "--\n" @@ -162,8 +168,19 @@ static PyObject * _gdbm_gdbm_nextkey(gdbmobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) + #else + # define KWTUPLE NULL + #endif + static const char * const _keywords[] = {"", NULL}; - static _PyArg_Parser _parser = {"s#:nextkey", _keywords, 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .format = "s#:nextkey", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE const char *key; Py_ssize_t key_length; @@ -305,4 +322,4 @@ dbmopen(PyObject *module, PyObject *const *args, Py_ssize_t nargs) exit: return return_value; } -/*[clinic end generated code: output=617117d16956ac4d input=a9049054013a1b77]*/ +/*[clinic end generated code: output=c6e721d82335adb3 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_hashopenssl.c.h b/Modules/clinic/_hashopenssl.c.h index 5d84f4ac4e5547..fb61a444018dbb 100644 --- a/Modules/clinic/_hashopenssl.c.h +++ b/Modules/clinic/_hashopenssl.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(EVP_copy__doc__, "copy($self, /)\n" "--\n" @@ -83,8 +89,31 @@ static PyObject * EVPXOF_digest(EVPobject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(length), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"length", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "digest", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "digest", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_ssize_t length; @@ -130,8 +159,31 @@ static PyObject * EVPXOF_hexdigest(EVPobject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(length), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"length", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "hexdigest", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "hexdigest", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_ssize_t length; @@ -181,8 +233,31 @@ static PyObject * EVP_new(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(name), &_Py_ID(string), &_Py_ID(usedforsecurity), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"name", "string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "new", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "new", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *name_obj; @@ -235,8 +310,31 @@ static PyObject * _hashlib_openssl_md5(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "openssl_md5", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "openssl_md5", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *data_obj = NULL; @@ -287,8 +385,31 @@ static PyObject * _hashlib_openssl_sha1(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha1", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "openssl_sha1", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *data_obj = NULL; @@ -339,8 +460,31 @@ static PyObject * _hashlib_openssl_sha224(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha224", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "openssl_sha224", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *data_obj = NULL; @@ -391,8 +535,31 @@ static PyObject * _hashlib_openssl_sha256(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha256", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "openssl_sha256", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *data_obj = NULL; @@ -443,8 +610,31 @@ static PyObject * _hashlib_openssl_sha384(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha384", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "openssl_sha384", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *data_obj = NULL; @@ -495,8 +685,31 @@ static PyObject * _hashlib_openssl_sha512(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha512", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "openssl_sha512", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *data_obj = NULL; @@ -549,8 +762,31 @@ static PyObject * _hashlib_openssl_sha3_224(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha3_224", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "openssl_sha3_224", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *data_obj = NULL; @@ -605,8 +841,31 @@ static PyObject * _hashlib_openssl_sha3_256(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha3_256", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "openssl_sha3_256", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *data_obj = NULL; @@ -661,8 +920,31 @@ static PyObject * _hashlib_openssl_sha3_384(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha3_384", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "openssl_sha3_384", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *data_obj = NULL; @@ -717,8 +999,31 @@ static PyObject * _hashlib_openssl_sha3_512(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha3_512", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "openssl_sha3_512", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *data_obj = NULL; @@ -773,8 +1078,31 @@ static PyObject * _hashlib_openssl_shake_128(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "openssl_shake_128", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "openssl_shake_128", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *data_obj = NULL; @@ -829,8 +1157,31 @@ static PyObject * _hashlib_openssl_shake_256(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "openssl_shake_256", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "openssl_shake_256", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *data_obj = NULL; @@ -885,8 +1236,31 @@ static PyObject * pbkdf2_hmac(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 5 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(hash_name), &_Py_ID(password), &_Py_ID(salt), &_Py_ID(iterations), &_Py_ID(dklen), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"hash_name", "password", "salt", "iterations", "dklen", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "pbkdf2_hmac", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "pbkdf2_hmac", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 4; const char *hash_name; @@ -971,8 +1345,31 @@ static PyObject * _hashlib_scrypt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 7 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(password), &_Py_ID(salt), &_Py_ID(n), &_Py_ID(r), &_Py_ID(p), &_Py_ID(maxmem), &_Py_ID(dklen), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"password", "salt", "n", "r", "p", "maxmem", "dklen", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "scrypt", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "scrypt", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[7]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer password = {NULL, NULL}; @@ -1087,8 +1484,31 @@ static PyObject * _hashlib_hmac_singleshot(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(key), &_Py_ID(msg), &_Py_ID(digest), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"key", "msg", "digest", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "hmac_digest", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "hmac_digest", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_buffer key = {NULL, NULL}; Py_buffer msg = {NULL, NULL}; @@ -1145,8 +1565,31 @@ static PyObject * _hashlib_hmac_new(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(key), &_Py_ID(msg), &_Py_ID(digestmod), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"key", "msg", "digestmod", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "hmac_new", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "hmac_new", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer key = {NULL, NULL}; @@ -1220,8 +1663,31 @@ static PyObject * _hashlib_HMAC_update(HMACobject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(msg), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"msg", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "update", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "update", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject *msg; @@ -1385,4 +1851,4 @@ _hashlib_compare_digest(PyObject *module, PyObject *const *args, Py_ssize_t narg #ifndef _HASHLIB_SCRYPT_METHODDEF #define _HASHLIB_SCRYPT_METHODDEF #endif /* !defined(_HASHLIB_SCRYPT_METHODDEF) */ -/*[clinic end generated code: output=69f2374071bff707 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=b339e255db698147 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_heapqmodule.c.h b/Modules/clinic/_heapqmodule.c.h index 8d73b5b48d6a0e..3ee3f51702fa30 100644 --- a/Modules/clinic/_heapqmodule.c.h +++ b/Modules/clinic/_heapqmodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_heapq_heappush__doc__, "heappush($module, heap, item, /)\n" "--\n" @@ -265,4 +271,4 @@ _heapq__heapify_max(PyObject *module, PyObject *arg) exit: return return_value; } -/*[clinic end generated code: output=9a22715a8bf0c91d input=a9049054013a1b77]*/ +/*[clinic end generated code: output=29e99a48c57f82bb input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_localemodule.c.h b/Modules/clinic/_localemodule.c.h index 0694263573947a..e6b99962d15fc8 100644 --- a/Modules/clinic/_localemodule.c.h +++ b/Modules/clinic/_localemodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_locale_setlocale__doc__, "setlocale($module, category, locale=<unrepresentable>, /)\n" "--\n" @@ -602,4 +608,4 @@ _locale_getencoding(PyObject *module, PyObject *Py_UNUSED(ignored)) #ifndef _LOCALE_BIND_TEXTDOMAIN_CODESET_METHODDEF #define _LOCALE_BIND_TEXTDOMAIN_CODESET_METHODDEF #endif /* !defined(_LOCALE_BIND_TEXTDOMAIN_CODESET_METHODDEF) */ -/*[clinic end generated code: output=cfde12e987960245 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=406842c3441559cb input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_lsprof.c.h b/Modules/clinic/_lsprof.c.h index dfc003eb54774c..5fcc7ae02e3b00 100644 --- a/Modules/clinic/_lsprof.c.h +++ b/Modules/clinic/_lsprof.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_lsprof_Profiler_getstats__doc__, "getstats($self, /)\n" "--\n" @@ -45,4 +51,4 @@ _lsprof_Profiler_getstats(ProfilerObject *self, PyTypeObject *cls, PyObject *con } return _lsprof_Profiler_getstats_impl(self, cls); } -/*[clinic end generated code: output=0615a53cce828f06 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=7425d3481349629a input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_lzmamodule.c.h b/Modules/clinic/_lzmamodule.c.h index d98af74b4aacab..286d2b0070659f 100644 --- a/Modules/clinic/_lzmamodule.c.h +++ b/Modules/clinic/_lzmamodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_lzma_LZMACompressor_compress__doc__, "compress($self, data, /)\n" "--\n" @@ -95,8 +101,31 @@ static PyObject * _lzma_LZMADecompressor_decompress(Decompressor *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(data), &_Py_ID(max_length), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"data", "max_length", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "decompress", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "decompress", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer data = {NULL, NULL}; @@ -171,8 +200,31 @@ static int _lzma_LZMADecompressor___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(format), &_Py_ID(memlimit), &_Py_ID(filters), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"format", "memlimit", "filters", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "LZMADecompressor", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "LZMADecompressor", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -286,4 +338,4 @@ _lzma__decode_filter_properties(PyObject *module, PyObject *const *args, Py_ssiz return return_value; } -/*[clinic end generated code: output=bce20bac13b0f252 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=da3e83ba97244044 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_opcode.c.h b/Modules/clinic/_opcode.c.h index d7e96a95c084fe..3bd3ba02387435 100644 --- a/Modules/clinic/_opcode.c.h +++ b/Modules/clinic/_opcode.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_opcode_stack_effect__doc__, "stack_effect($module, opcode, oparg=None, /, *, jump=None)\n" "--\n" @@ -19,8 +25,31 @@ static PyObject * _opcode_stack_effect(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(jump), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "", "jump", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "stack_effect", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "stack_effect", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; int opcode; @@ -74,4 +103,4 @@ _opcode_get_specialization_stats(PyObject *module, PyObject *Py_UNUSED(ignored)) { return _opcode_get_specialization_stats_impl(module); } -/*[clinic end generated code: output=b904260bf022f953 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=21e3d53a659c651a input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_operator.c.h b/Modules/clinic/_operator.c.h index 3b5be7bf2c07ac..b68e6e0144a586 100644 --- a/Modules/clinic/_operator.c.h +++ b/Modules/clinic/_operator.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_operator_truth__doc__, "truth($module, a, /)\n" "--\n" @@ -1486,4 +1492,4 @@ _operator__compare_digest(PyObject *module, PyObject *const *args, Py_ssize_t na exit: return return_value; } -/*[clinic end generated code: output=44164c4fbd67e5c5 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=227cbcfed44f736e input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_pickle.c.h b/Modules/clinic/_pickle.c.h index 5dc62fe190176c..e9ff2604719abd 100644 --- a/Modules/clinic/_pickle.c.h +++ b/Modules/clinic/_pickle.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_pickle_Pickler_clear_memo__doc__, "clear_memo($self, /)\n" "--\n" @@ -106,8 +112,31 @@ static int _pickle_Pickler___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 4 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(file), &_Py_ID(protocol), &_Py_ID(fix_imports), &_Py_ID(buffer_callback), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"file", "protocol", "fix_imports", "buffer_callback", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "Pickler", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "Pickler", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[4]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -326,8 +355,31 @@ static int _pickle_Unpickler___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 5 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(file), &_Py_ID(fix_imports), &_Py_ID(encoding), &_Py_ID(errors), &_Py_ID(buffers), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"file", "fix_imports", "encoding", "errors", "buffers", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "Unpickler", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "Unpickler", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[5]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -497,8 +549,31 @@ static PyObject * _pickle_dump(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 5 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(obj), &_Py_ID(file), &_Py_ID(protocol), &_Py_ID(fix_imports), &_Py_ID(buffer_callback), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"obj", "file", "protocol", "fix_imports", "buffer_callback", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "dump", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "dump", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; PyObject *obj; @@ -578,8 +653,31 @@ static PyObject * _pickle_dumps(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 4 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(obj), &_Py_ID(protocol), &_Py_ID(fix_imports), &_Py_ID(buffer_callback), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"obj", "protocol", "fix_imports", "buffer_callback", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "dumps", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "dumps", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *obj; @@ -663,8 +761,31 @@ static PyObject * _pickle_load(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 5 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(file), &_Py_ID(fix_imports), &_Py_ID(encoding), &_Py_ID(errors), &_Py_ID(buffers), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"file", "fix_imports", "encoding", "errors", "buffers", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "load", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "load", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *file; @@ -766,8 +887,31 @@ static PyObject * _pickle_loads(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 4 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(fix_imports), &_Py_ID(encoding), &_Py_ID(errors), &_Py_ID(buffers), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "fix_imports", "encoding", "errors", "buffers", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "loads", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "loads", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *data; @@ -836,4 +980,4 @@ _pickle_loads(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec exit: return return_value; } -/*[clinic end generated code: output=1bb1ead3c828e108 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=3321309c2157ee74 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_queuemodule.c.h b/Modules/clinic/_queuemodule.c.h index b0b00f8199b54a..f86dac3c497d64 100644 --- a/Modules/clinic/_queuemodule.c.h +++ b/Modules/clinic/_queuemodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(simplequeue_new__doc__, "SimpleQueue()\n" "--\n" @@ -52,8 +58,31 @@ static PyObject * _queue_SimpleQueue_put(simplequeueobject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(item), &_Py_ID(block), &_Py_ID(timeout), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"item", "block", "timeout", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "put", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "put", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *item; @@ -104,8 +133,31 @@ static PyObject * _queue_SimpleQueue_put_nowait(simplequeueobject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(item), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"item", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "put_nowait", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "put_nowait", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject *item; @@ -145,8 +197,31 @@ static PyObject * _queue_SimpleQueue_get(simplequeueobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(block), &_Py_ID(timeout), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"block", "timeout", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "get", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "get", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int block = 1; @@ -257,4 +332,4 @@ _queue_SimpleQueue_qsize(simplequeueobject *self, PyObject *Py_UNUSED(ignored)) exit: return return_value; } -/*[clinic end generated code: output=88ec8033aeb7241c input=a9049054013a1b77]*/ +/*[clinic end generated code: output=628e992d38f50aac input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_randommodule.c.h b/Modules/clinic/_randommodule.c.h index 503c1f93ed8143..ec8531ce006649 100644 --- a/Modules/clinic/_randommodule.c.h +++ b/Modules/clinic/_randommodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_random_Random_random__doc__, "random($self, /)\n" "--\n" @@ -109,4 +115,4 @@ _random_Random_getrandbits(RandomObject *self, PyObject *arg) exit: return return_value; } -/*[clinic end generated code: output=d144826cde89e605 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=bc17406a886824fc input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_ssl.c.h b/Modules/clinic/_ssl.c.h index 67b125f3d76167..622e321fa1d8b3 100644 --- a/Modules/clinic/_ssl.c.h +++ b/Modules/clinic/_ssl.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_ssl__SSLSocket_do_handshake__doc__, "do_handshake($self, /)\n" "--\n" @@ -348,8 +354,31 @@ static PyObject * _ssl__SSLSocket_get_channel_binding(PySSLSocket *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(cb_type), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"cb_type", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "get_channel_binding", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "get_channel_binding", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; const char *cb_type = "tls-unique"; @@ -531,8 +560,31 @@ static PyObject * _ssl__SSLContext_load_cert_chain(PySSLContext *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(certfile), &_Py_ID(keyfile), &_Py_ID(password), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"certfile", "keyfile", "password", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "load_cert_chain", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "load_cert_chain", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *certfile; @@ -579,8 +631,31 @@ static PyObject * _ssl__SSLContext_load_verify_locations(PySSLContext *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(cafile), &_Py_ID(capath), &_Py_ID(cadata), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"cafile", "capath", "cadata", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "load_verify_locations", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "load_verify_locations", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *cafile = Py_None; @@ -640,8 +715,31 @@ static PyObject * _ssl__SSLContext__wrap_socket(PySSLContext *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 5 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(sock), &_Py_ID(server_side), &_Py_ID(server_hostname), &_Py_ID(owner), &_Py_ID(session), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"sock", "server_side", "server_hostname", "owner", "session", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "_wrap_socket", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "_wrap_socket", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; PyObject *sock; @@ -709,8 +807,31 @@ static PyObject * _ssl__SSLContext__wrap_bio(PySSLContext *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 6 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(incoming), &_Py_ID(outgoing), &_Py_ID(server_side), &_Py_ID(server_hostname), &_Py_ID(owner), &_Py_ID(session), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"incoming", "outgoing", "server_side", "server_hostname", "owner", "session", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "_wrap_bio", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "_wrap_bio", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[6]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3; PySSLMemoryBIO *incoming; @@ -853,8 +974,31 @@ static PyObject * _ssl__SSLContext_get_ca_certs(PySSLContext *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(binary_form), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"binary_form", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "get_ca_certs", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "get_ca_certs", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int binary_form = 0; @@ -1090,37 +1234,6 @@ _ssl_RAND_bytes(PyObject *module, PyObject *arg) return return_value; } -PyDoc_STRVAR(_ssl_RAND_pseudo_bytes__doc__, -"RAND_pseudo_bytes($module, n, /)\n" -"--\n" -"\n" -"Generate n pseudo-random bytes.\n" -"\n" -"Return a pair (bytes, is_cryptographic). is_cryptographic is True\n" -"if the bytes generated are cryptographically strong."); - -#define _SSL_RAND_PSEUDO_BYTES_METHODDEF \ - {"RAND_pseudo_bytes", (PyCFunction)_ssl_RAND_pseudo_bytes, METH_O, _ssl_RAND_pseudo_bytes__doc__}, - -static PyObject * -_ssl_RAND_pseudo_bytes_impl(PyObject *module, int n); - -static PyObject * -_ssl_RAND_pseudo_bytes(PyObject *module, PyObject *arg) -{ - PyObject *return_value = NULL; - int n; - - n = _PyLong_AsInt(arg); - if (n == -1 && PyErr_Occurred()) { - goto exit; - } - return_value = _ssl_RAND_pseudo_bytes_impl(module, n); - -exit: - return return_value; -} - PyDoc_STRVAR(_ssl_RAND_status__doc__, "RAND_status($module, /)\n" "--\n" @@ -1181,8 +1294,31 @@ static PyObject * _ssl_txt2obj(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(txt), &_Py_ID(name), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"txt", "name", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "txt2obj", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "txt2obj", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; const char *txt; @@ -1271,8 +1407,31 @@ static PyObject * _ssl_enum_certificates(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(store_name), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"store_name", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "enum_certificates", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "enum_certificates", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; const char *store_name; @@ -1324,8 +1483,31 @@ static PyObject * _ssl_enum_crls(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(store_name), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"store_name", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "enum_crls", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "enum_crls", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; const char *store_name; @@ -1361,4 +1543,4 @@ _ssl_enum_crls(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje #ifndef _SSL_ENUM_CRLS_METHODDEF #define _SSL_ENUM_CRLS_METHODDEF #endif /* !defined(_SSL_ENUM_CRLS_METHODDEF) */ -/*[clinic end generated code: output=2a488dd0cbc777df input=a9049054013a1b77]*/ +/*[clinic end generated code: output=9f477b0c709acb28 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_statisticsmodule.c.h b/Modules/clinic/_statisticsmodule.c.h index 03543e41af7f5a..4dedadd2939ad6 100644 --- a/Modules/clinic/_statisticsmodule.c.h +++ b/Modules/clinic/_statisticsmodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_statistics__normal_dist_inv_cdf__doc__, "_normal_dist_inv_cdf($module, p, mu, sigma, /)\n" "--\n" @@ -65,4 +71,4 @@ _statistics__normal_dist_inv_cdf(PyObject *module, PyObject *const *args, Py_ssi exit: return return_value; } -/*[clinic end generated code: output=b807a8243e7801e6 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=6899dc752cc6b457 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_struct.c.h b/Modules/clinic/_struct.c.h index 39b8ccb5ca49b8..b21d9ff292433b 100644 --- a/Modules/clinic/_struct.c.h +++ b/Modules/clinic/_struct.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(Struct___init____doc__, "Struct(format)\n" "--\n" @@ -20,8 +26,31 @@ static int Struct___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(format), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"format", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "Struct", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "Struct", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -103,8 +132,31 @@ static PyObject * Struct_unpack_from(PyStructObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(buffer), &_Py_ID(offset), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"buffer", "offset", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "unpack_from", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "unpack_from", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer buffer = {NULL, NULL}; @@ -285,8 +337,31 @@ static PyObject * unpack_from(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(buffer), &_Py_ID(offset), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "buffer", "offset", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "unpack_from", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "unpack_from", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; PyStructObject *s_object = NULL; @@ -376,4 +451,4 @@ iter_unpack(PyObject *module, PyObject *const *args, Py_ssize_t nargs) return return_value; } -/*[clinic end generated code: output=2065c9b007be631c input=a9049054013a1b77]*/ +/*[clinic end generated code: output=eca7df0e75f8919d input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_testinternalcapi.c.h b/Modules/clinic/_testinternalcapi.c.h new file mode 100644 index 00000000000000..8113fff37997af --- /dev/null +++ b/Modules/clinic/_testinternalcapi.c.h @@ -0,0 +1,68 @@ +/*[clinic input] +preserve +[clinic start generated code]*/ + +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + +PyDoc_STRVAR(_testinternalcapi_optimize_cfg__doc__, +"optimize_cfg($module, /, instructions, consts)\n" +"--\n" +"\n" +"Apply compiler optimizations to an instruction list."); + +#define _TESTINTERNALCAPI_OPTIMIZE_CFG_METHODDEF \ + {"optimize_cfg", _PyCFunction_CAST(_testinternalcapi_optimize_cfg), METH_FASTCALL|METH_KEYWORDS, _testinternalcapi_optimize_cfg__doc__}, + +static PyObject * +_testinternalcapi_optimize_cfg_impl(PyObject *module, PyObject *instructions, + PyObject *consts); + +static PyObject * +_testinternalcapi_optimize_cfg(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) +{ + PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(instructions), &_Py_ID(consts), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + + static const char * const _keywords[] = {"instructions", "consts", NULL}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "optimize_cfg", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE + PyObject *argsbuf[2]; + PyObject *instructions; + PyObject *consts; + + args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf); + if (!args) { + goto exit; + } + instructions = args[0]; + consts = args[1]; + return_value = _testinternalcapi_optimize_cfg_impl(module, instructions, consts); + +exit: + return return_value; +} +/*[clinic end generated code: output=3b1fd713290f68a9 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_testmultiphase.c.h b/Modules/clinic/_testmultiphase.c.h index eabaea635d50dc..42ec7475e5e4be 100644 --- a/Modules/clinic/_testmultiphase.c.h +++ b/Modules/clinic/_testmultiphase.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_testmultiphase_StateAccessType_get_defining_module__doc__, "get_defining_module($self, /)\n" "--\n" @@ -73,8 +79,31 @@ static PyObject * _testmultiphase_StateAccessType_increment_count_clinic(StateAccessTypeObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(n), &_Py_ID(twice), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"n", "twice", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "increment_count_clinic", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "increment_count_clinic", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int n = 1; @@ -133,4 +162,4 @@ _testmultiphase_StateAccessType_get_count(StateAccessTypeObject *self, PyTypeObj } return _testmultiphase_StateAccessType_get_count_impl(self, cls); } -/*[clinic end generated code: output=48739d81c3834078 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=52ea97ab2f03bb6d input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_tkinter.c.h b/Modules/clinic/_tkinter.c.h index 9103565ead7027..a251202f9bba2c 100644 --- a/Modules/clinic/_tkinter.c.h +++ b/Modules/clinic/_tkinter.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_tkinter_tkapp_eval__doc__, "eval($self, script, /)\n" "--\n" @@ -859,4 +865,4 @@ _tkinter_getbusywaitinterval(PyObject *module, PyObject *Py_UNUSED(ignored)) #ifndef _TKINTER_TKAPP_DELETEFILEHANDLER_METHODDEF #define _TKINTER_TKAPP_DELETEFILEHANDLER_METHODDEF #endif /* !defined(_TKINTER_TKAPP_DELETEFILEHANDLER_METHODDEF) */ -/*[clinic end generated code: output=b0667ac928eb0c28 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=d022835d05fc8608 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_tracemalloc.c.h b/Modules/clinic/_tracemalloc.c.h index 20c4d5d81b9e9b..a89cd9aabca8d6 100644 --- a/Modules/clinic/_tracemalloc.c.h +++ b/Modules/clinic/_tracemalloc.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_tracemalloc_is_tracing__doc__, "is_tracing($module, /)\n" "--\n" @@ -212,4 +218,4 @@ _tracemalloc_reset_peak(PyObject *module, PyObject *Py_UNUSED(ignored)) { return _tracemalloc_reset_peak_impl(module); } -/*[clinic end generated code: output=2ae4fe05f1a340c9 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=44e3f8553aae2535 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_typingmodule.c.h b/Modules/clinic/_typingmodule.c.h index ea415e67153ed8..f980aa0d0844da 100644 --- a/Modules/clinic/_typingmodule.c.h +++ b/Modules/clinic/_typingmodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_typing__idfunc__doc__, "_idfunc($module, x, /)\n" "--\n" @@ -9,4 +15,4 @@ PyDoc_STRVAR(_typing__idfunc__doc__, #define _TYPING__IDFUNC_METHODDEF \ {"_idfunc", (PyCFunction)_typing__idfunc, METH_O, _typing__idfunc__doc__}, -/*[clinic end generated code: output=e7ea2a3cb7ab301a input=a9049054013a1b77]*/ +/*[clinic end generated code: output=97457fda45072c7d input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_weakref.c.h b/Modules/clinic/_weakref.c.h index 541cba75e6813c..48feb042cac039 100644 --- a/Modules/clinic/_weakref.c.h +++ b/Modules/clinic/_weakref.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_weakref_getweakrefcount__doc__, "getweakrefcount($module, object, /)\n" "--\n" @@ -110,4 +116,4 @@ _weakref_proxy(PyObject *module, PyObject *const *args, Py_ssize_t nargs) exit: return return_value; } -/*[clinic end generated code: output=f4be6b8177fbceb8 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=28265e89d583273d input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_winapi.c.h b/Modules/clinic/_winapi.c.h index 4d89888af9054a..53d5cccdd7db37 100644 --- a/Modules/clinic/_winapi.c.h +++ b/Modules/clinic/_winapi.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_winapi_Overlapped_GetOverlappedResult__doc__, "GetOverlappedResult($self, wait, /)\n" "--\n" @@ -106,8 +112,31 @@ static PyObject * _winapi_ConnectNamedPipe(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(handle), &_Py_ID(overlapped), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"handle", "overlapped", NULL}; - static _PyArg_Parser _parser = {"" F_HANDLE "|i:ConnectNamedPipe", _keywords, 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .format = "" F_HANDLE "|i:ConnectNamedPipe", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE HANDLE handle; int use_overlapped = 0; @@ -820,6 +849,66 @@ _winapi_PeekNamedPipe(PyObject *module, PyObject *const *args, Py_ssize_t nargs) return return_value; } +PyDoc_STRVAR(_winapi_LCMapStringEx__doc__, +"LCMapStringEx($module, /, locale, flags, src)\n" +"--\n" +"\n"); + +#define _WINAPI_LCMAPSTRINGEX_METHODDEF \ + {"LCMapStringEx", _PyCFunction_CAST(_winapi_LCMapStringEx), METH_FASTCALL|METH_KEYWORDS, _winapi_LCMapStringEx__doc__}, + +static PyObject * +_winapi_LCMapStringEx_impl(PyObject *module, LPCWSTR locale, DWORD flags, + LPCWSTR src); + +static PyObject * +_winapi_LCMapStringEx(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) +{ + PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(locale), &_Py_ID(flags), &_Py_ID(src), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + + static const char * const _keywords[] = {"locale", "flags", "src", NULL}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .format = "O&kO&:LCMapStringEx", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE + LPCWSTR locale; + DWORD flags; + LPCWSTR src; + + if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser, + _PyUnicode_WideCharString_Converter, &locale, &flags, _PyUnicode_WideCharString_Converter, &src)) { + goto exit; + } + return_value = _winapi_LCMapStringEx_impl(module, locale, flags, src); + +exit: + /* Cleanup for locale */ + PyMem_Free((void *)locale); + /* Cleanup for src */ + PyMem_Free((void *)src); + + return return_value; +} + PyDoc_STRVAR(_winapi_ReadFile__doc__, "ReadFile($module, /, handle, size, overlapped=False)\n" "--\n" @@ -836,8 +925,31 @@ static PyObject * _winapi_ReadFile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(handle), &_Py_ID(size), &_Py_ID(overlapped), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"handle", "size", "overlapped", NULL}; - static _PyArg_Parser _parser = {"" F_HANDLE "k|i:ReadFile", _keywords, 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .format = "" F_HANDLE "k|i:ReadFile", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE HANDLE handle; DWORD size; int use_overlapped = 0; @@ -1061,8 +1173,31 @@ static PyObject * _winapi_WriteFile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(handle), &_Py_ID(buffer), &_Py_ID(overlapped), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"handle", "buffer", "overlapped", NULL}; - static _PyArg_Parser _parser = {"" F_HANDLE "O|i:WriteFile", _keywords, 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .format = "" F_HANDLE "O|i:WriteFile", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE HANDLE handle; PyObject *buffer; int use_overlapped = 0; @@ -1110,8 +1245,31 @@ static PyObject * _winapi_GetFileType(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(handle), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"handle", NULL}; - static _PyArg_Parser _parser = {"" F_HANDLE ":GetFileType", _keywords, 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .format = "" F_HANDLE ":GetFileType", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE HANDLE handle; DWORD _return_value; @@ -1149,8 +1307,31 @@ static PyObject * _winapi__mimetypes_read_windows_registry(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(on_type_read), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"on_type_read", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "_mimetypes_read_windows_registry", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "_mimetypes_read_windows_registry", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject *on_type_read; @@ -1164,4 +1345,4 @@ _winapi__mimetypes_read_windows_registry(PyObject *module, PyObject *const *args exit: return return_value; } -/*[clinic end generated code: output=b007dde2e7f2fff8 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=3e51e0b2ea3fea5a input=a9049054013a1b77]*/ diff --git a/Modules/clinic/arraymodule.c.h b/Modules/clinic/arraymodule.c.h index 6358ba2f81fa38..e68c3920072dbb 100644 --- a/Modules/clinic/arraymodule.c.h +++ b/Modules/clinic/arraymodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(array_array___copy____doc__, "__copy__($self, /)\n" "--\n" @@ -154,8 +160,19 @@ static PyObject * array_array_extend(arrayobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) + #else + # define KWTUPLE NULL + #endif + static const char * const _keywords[] = {"", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "extend", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "extend", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject *bb; @@ -297,8 +314,19 @@ static PyObject * array_array_fromfile(arrayobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) + #else + # define KWTUPLE NULL + #endif + static const char * const _keywords[] = {"", "", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "fromfile", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "fromfile", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; PyObject *f; Py_ssize_t n; @@ -342,8 +370,19 @@ static PyObject * array_array_tofile(arrayobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) + #else + # define KWTUPLE NULL + #endif + static const char * const _keywords[] = {"", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "tofile", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "tofile", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject *f; @@ -584,8 +623,19 @@ static PyObject * array_array___reduce_ex__(arrayobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) + #else + # define KWTUPLE NULL + #endif + static const char * const _keywords[] = {"", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "__reduce_ex__", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "__reduce_ex__", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject *value; @@ -630,4 +680,4 @@ PyDoc_STRVAR(array_arrayiterator___setstate____doc__, #define ARRAY_ARRAYITERATOR___SETSTATE___METHODDEF \ {"__setstate__", (PyCFunction)array_arrayiterator___setstate__, METH_O, array_arrayiterator___setstate____doc__}, -/*[clinic end generated code: output=85a5fec90d9615b9 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=69bc1451f7bda234 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/audioop.c.h b/Modules/clinic/audioop.c.h index 43103855fa1a2f..1a7ccf8b8284cb 100644 --- a/Modules/clinic/audioop.c.h +++ b/Modules/clinic/audioop.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(audioop_getsample__doc__, "getsample($module, fragment, width, index, /)\n" "--\n" @@ -1309,4 +1315,4 @@ audioop_adpcm2lin(PyObject *module, PyObject *const *args, Py_ssize_t nargs) return return_value; } -/*[clinic end generated code: output=a581c3893ef8ad75 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=9a7e36f1179f0223 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/binascii.c.h b/Modules/clinic/binascii.c.h index 2c766eddee8dcc..23ebdff2108258 100644 --- a/Modules/clinic/binascii.c.h +++ b/Modules/clinic/binascii.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(binascii_a2b_uu__doc__, "a2b_uu($module, data, /)\n" "--\n" @@ -49,8 +55,31 @@ static PyObject * binascii_b2a_uu(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(backtick), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "backtick", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "b2a_uu", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "b2a_uu", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer data = {NULL, NULL}; @@ -106,8 +135,31 @@ static PyObject * binascii_a2b_base64(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(strict_mode), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "strict_mode", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "a2b_base64", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "a2b_base64", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer data = {NULL, NULL}; @@ -154,8 +206,31 @@ static PyObject * binascii_b2a_base64(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(newline), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "newline", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "b2a_base64", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "b2a_base64", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer data = {NULL, NULL}; @@ -322,8 +397,31 @@ static PyObject * binascii_b2a_hex(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(data), &_Py_ID(sep), &_Py_ID(bytes_per_sep), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"data", "sep", "bytes_per_sep", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "b2a_hex", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "b2a_hex", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer data = {NULL, NULL}; @@ -392,8 +490,31 @@ static PyObject * binascii_hexlify(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(data), &_Py_ID(sep), &_Py_ID(bytes_per_sep), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"data", "sep", "bytes_per_sep", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "hexlify", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "hexlify", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer data = {NULL, NULL}; @@ -519,8 +640,31 @@ static PyObject * binascii_a2b_qp(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(data), &_Py_ID(header), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"data", "header", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "a2b_qp", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "a2b_qp", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer data = {NULL, NULL}; @@ -572,8 +716,31 @@ static PyObject * binascii_b2a_qp(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 4 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(data), &_Py_ID(quotetabs), &_Py_ID(istext), &_Py_ID(header), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"data", "quotetabs", "istext", "header", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "b2a_qp", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "b2a_qp", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer data = {NULL, NULL}; @@ -628,4 +795,4 @@ binascii_b2a_qp(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj return return_value; } -/*[clinic end generated code: output=ba9ed7b810b8762d input=a9049054013a1b77]*/ +/*[clinic end generated code: output=a266ba13c374aefa input=a9049054013a1b77]*/ diff --git a/Modules/clinic/cmathmodule.c.h b/Modules/clinic/cmathmodule.c.h index ab556922c029fb..b1da9452c61db8 100644 --- a/Modules/clinic/cmathmodule.c.h +++ b/Modules/clinic/cmathmodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(cmath_acos__doc__, "acos($module, z, /)\n" "--\n" @@ -893,8 +899,31 @@ static PyObject * cmath_isclose(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 4 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(a), &_Py_ID(b), &_Py_ID(rel_tol), &_Py_ID(abs_tol), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"a", "b", "rel_tol", "abs_tol", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "isclose", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "isclose", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; Py_complex a; @@ -953,4 +982,4 @@ cmath_isclose(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec exit: return return_value; } -/*[clinic end generated code: output=b8e445fcd2a3da65 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=0146c656e67f5d5f input=a9049054013a1b77]*/ diff --git a/Modules/clinic/fcntlmodule.c.h b/Modules/clinic/fcntlmodule.c.h index c41f088ff1528b..20eb50b0e76b38 100644 --- a/Modules/clinic/fcntlmodule.c.h +++ b/Modules/clinic/fcntlmodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(fcntl_fcntl__doc__, "fcntl($module, fd, cmd, arg=0, /)\n" "--\n" @@ -243,4 +249,4 @@ fcntl_lockf(PyObject *module, PyObject *const *args, Py_ssize_t nargs) exit: return return_value; } -/*[clinic end generated code: output=b8cb14ab35de4c6a input=a9049054013a1b77]*/ +/*[clinic end generated code: output=1db859412172dd53 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/gcmodule.c.h b/Modules/clinic/gcmodule.c.h index 5391b8be42db98..2d18e2ee0978e0 100644 --- a/Modules/clinic/gcmodule.c.h +++ b/Modules/clinic/gcmodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(gc_enable__doc__, "enable($module, /)\n" "--\n" @@ -88,8 +94,31 @@ static PyObject * gc_collect(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(generation), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"generation", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "collect", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "collect", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int generation = NUM_GENERATIONS - 1; @@ -242,8 +271,31 @@ static PyObject * gc_get_objects(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(generation), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"generation", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "get_objects", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "get_objects", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; Py_ssize_t generation = -1; @@ -372,4 +424,4 @@ gc_get_freeze_count(PyObject *module, PyObject *Py_UNUSED(ignored)) exit: return return_value; } -/*[clinic end generated code: output=71f7136d6e3f2323 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=66432ac0e17fd04f input=a9049054013a1b77]*/ diff --git a/Modules/clinic/grpmodule.c.h b/Modules/clinic/grpmodule.c.h index 3dd35e7e6ba072..4914bc9abd67b5 100644 --- a/Modules/clinic/grpmodule.c.h +++ b/Modules/clinic/grpmodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(grp_getgrgid__doc__, "getgrgid($module, /, id)\n" "--\n" @@ -20,8 +26,31 @@ static PyObject * grp_getgrgid(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(id), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"id", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "getgrgid", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "getgrgid", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject *id; @@ -54,8 +83,31 @@ static PyObject * grp_getgrnam(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(name), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"name", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "getgrnam", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "getgrnam", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject *name; @@ -97,4 +149,4 @@ grp_getgrall(PyObject *module, PyObject *Py_UNUSED(ignored)) { return grp_getgrall_impl(module); } -/*[clinic end generated code: output=ba680465f71ed779 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=0916fdbcdeaf5d7d input=a9049054013a1b77]*/ diff --git a/Modules/clinic/itertoolsmodule.c.h b/Modules/clinic/itertoolsmodule.c.h index 81608ccc089be9..8806606d85befe 100644 --- a/Modules/clinic/itertoolsmodule.c.h +++ b/Modules/clinic/itertoolsmodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(pairwise_new__doc__, "pairwise(iterable, /)\n" "--\n" @@ -54,8 +60,31 @@ static PyObject * itertools_groupby(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(iterable), &_Py_ID(key), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"iterable", "key", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "groupby", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "groupby", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -377,8 +406,31 @@ static PyObject * itertools_combinations(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(iterable), &_Py_ID(r), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"iterable", "r", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "combinations", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "combinations", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -425,8 +477,31 @@ static PyObject * itertools_combinations_with_replacement(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(iterable), &_Py_ID(r), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"iterable", "r", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "combinations_with_replacement", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "combinations_with_replacement", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -472,8 +547,31 @@ static PyObject * itertools_permutations(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(iterable), &_Py_ID(r), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"iterable", "r", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "permutations", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "permutations", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -511,8 +609,31 @@ static PyObject * itertools_accumulate(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(iterable), &_Py_ID(func), &_Py_ID(initial), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"iterable", "func", "initial", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "accumulate", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "accumulate", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -563,8 +684,31 @@ static PyObject * itertools_compress(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(data), &_Py_ID(selectors), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"data", "selectors", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "compress", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "compress", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -638,8 +782,31 @@ static PyObject * itertools_count(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(start), &_Py_ID(step), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"start", "step", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "count", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "count", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -667,4 +834,4 @@ itertools_count(PyTypeObject *type, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=659251a811ff89ed input=a9049054013a1b77]*/ +/*[clinic end generated code: output=b1056d63f68a9059 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/mathmodule.c.h b/Modules/clinic/mathmodule.c.h index efabbf9714237c..9fac1037e52528 100644 --- a/Modules/clinic/mathmodule.c.h +++ b/Modules/clinic/mathmodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(math_ceil__doc__, "ceil($module, x, /)\n" "--\n" @@ -578,8 +584,31 @@ static PyObject * math_isclose(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 4 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(a), &_Py_ID(b), &_Py_ID(rel_tol), &_Py_ID(abs_tol), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"a", "b", "rel_tol", "abs_tol", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "isclose", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "isclose", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; double a; @@ -673,8 +702,31 @@ static PyObject * math_prod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(start), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "start", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "prod", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "prod", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *iterable; @@ -865,4 +917,4 @@ math_ulp(PyObject *module, PyObject *arg) exit: return return_value; } -/*[clinic end generated code: output=965f99dabaa72165 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=c2c2f42452d63734 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/md5module.c.h b/Modules/clinic/md5module.c.h index 999406ba13518c..b4602104f18042 100644 --- a/Modules/clinic/md5module.c.h +++ b/Modules/clinic/md5module.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(MD5Type_copy__doc__, "copy($self, /)\n" "--\n" @@ -85,8 +91,31 @@ static PyObject * _md5_md5(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "md5", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "md5", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *string = NULL; @@ -119,4 +148,4 @@ _md5_md5(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw exit: return return_value; } -/*[clinic end generated code: output=e5dac1237beb2788 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=b4924c9905cc9f34 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/overlapped.c.h b/Modules/clinic/overlapped.c.h index cac44d0a5764ce..cc0c74cc1d2946 100644 --- a/Modules/clinic/overlapped.c.h +++ b/Modules/clinic/overlapped.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_overlapped_CreateIoCompletionPort__doc__, "CreateIoCompletionPort($module, handle, port, key, concurrency, /)\n" "--\n" @@ -26,8 +32,22 @@ _overlapped_CreateIoCompletionPort(PyObject *module, PyObject *const *args, Py_s ULONG_PTR CompletionKey; DWORD NumberOfConcurrentThreads; - if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE""F_HANDLE""F_ULONG_PTR"k:CreateIoCompletionPort", - &FileHandle, &ExistingCompletionPort, &CompletionKey, &NumberOfConcurrentThreads)) { + if (!_PyArg_CheckPositional("CreateIoCompletionPort", nargs, 4, 4)) { + goto exit; + } + FileHandle = PyLong_AsVoidPtr(args[0]); + if (!FileHandle && PyErr_Occurred()) { + goto exit; + } + ExistingCompletionPort = PyLong_AsVoidPtr(args[1]); + if (!ExistingCompletionPort && PyErr_Occurred()) { + goto exit; + } + CompletionKey = (uintptr_t)PyLong_AsVoidPtr(args[2]); + if (!CompletionKey && PyErr_Occurred()) { + goto exit; + } + if (!_PyLong_UnsignedLong_Converter(args[3], &NumberOfConcurrentThreads)) { goto exit; } return_value = _overlapped_CreateIoCompletionPort_impl(module, FileHandle, ExistingCompletionPort, CompletionKey, NumberOfConcurrentThreads); @@ -59,8 +79,14 @@ _overlapped_GetQueuedCompletionStatus(PyObject *module, PyObject *const *args, P HANDLE CompletionPort; DWORD Milliseconds; - if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE"k:GetQueuedCompletionStatus", - &CompletionPort, &Milliseconds)) { + if (!_PyArg_CheckPositional("GetQueuedCompletionStatus", nargs, 2, 2)) { + goto exit; + } + CompletionPort = PyLong_AsVoidPtr(args[0]); + if (!CompletionPort && PyErr_Occurred()) { + goto exit; + } + if (!_PyLong_UnsignedLong_Converter(args[1], &Milliseconds)) { goto exit; } return_value = _overlapped_GetQueuedCompletionStatus_impl(module, CompletionPort, Milliseconds); @@ -94,8 +120,22 @@ _overlapped_PostQueuedCompletionStatus(PyObject *module, PyObject *const *args, ULONG_PTR CompletionKey; OVERLAPPED *Overlapped; - if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE"k"F_ULONG_PTR""F_POINTER":PostQueuedCompletionStatus", - &CompletionPort, &NumberOfBytes, &CompletionKey, &Overlapped)) { + if (!_PyArg_CheckPositional("PostQueuedCompletionStatus", nargs, 4, 4)) { + goto exit; + } + CompletionPort = PyLong_AsVoidPtr(args[0]); + if (!CompletionPort && PyErr_Occurred()) { + goto exit; + } + if (!_PyLong_UnsignedLong_Converter(args[1], &NumberOfBytes)) { + goto exit; + } + CompletionKey = (uintptr_t)PyLong_AsVoidPtr(args[2]); + if (!CompletionKey && PyErr_Occurred()) { + goto exit; + } + Overlapped = PyLong_AsVoidPtr(args[3]); + if (!Overlapped && PyErr_Occurred()) { goto exit; } return_value = _overlapped_PostQueuedCompletionStatus_impl(module, CompletionPort, NumberOfBytes, CompletionKey, Overlapped); @@ -129,8 +169,22 @@ _overlapped_RegisterWaitWithQueue(PyObject *module, PyObject *const *args, Py_ss OVERLAPPED *Overlapped; DWORD Milliseconds; - if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE""F_HANDLE""F_POINTER"k:RegisterWaitWithQueue", - &Object, &CompletionPort, &Overlapped, &Milliseconds)) { + if (!_PyArg_CheckPositional("RegisterWaitWithQueue", nargs, 4, 4)) { + goto exit; + } + Object = PyLong_AsVoidPtr(args[0]); + if (!Object && PyErr_Occurred()) { + goto exit; + } + CompletionPort = PyLong_AsVoidPtr(args[1]); + if (!CompletionPort && PyErr_Occurred()) { + goto exit; + } + Overlapped = PyLong_AsVoidPtr(args[2]); + if (!Overlapped && PyErr_Occurred()) { + goto exit; + } + if (!_PyLong_UnsignedLong_Converter(args[3], &Milliseconds)) { goto exit; } return_value = _overlapped_RegisterWaitWithQueue_impl(module, Object, CompletionPort, Overlapped, Milliseconds); @@ -157,7 +211,8 @@ _overlapped_UnregisterWait(PyObject *module, PyObject *arg) PyObject *return_value = NULL; HANDLE WaitHandle; - if (!PyArg_Parse(arg, ""F_HANDLE":UnregisterWait", &WaitHandle)) { + WaitHandle = PyLong_AsVoidPtr(arg); + if (!WaitHandle && PyErr_Occurred()) { goto exit; } return_value = _overlapped_UnregisterWait_impl(module, WaitHandle); @@ -186,8 +241,15 @@ _overlapped_UnregisterWaitEx(PyObject *module, PyObject *const *args, Py_ssize_t HANDLE WaitHandle; HANDLE Event; - if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE""F_HANDLE":UnregisterWaitEx", - &WaitHandle, &Event)) { + if (!_PyArg_CheckPositional("UnregisterWaitEx", nargs, 2, 2)) { + goto exit; + } + WaitHandle = PyLong_AsVoidPtr(args[0]); + if (!WaitHandle && PyErr_Occurred()) { + goto exit; + } + Event = PyLong_AsVoidPtr(args[1]); + if (!Event && PyErr_Occurred()) { goto exit; } return_value = _overlapped_UnregisterWaitEx_impl(module, WaitHandle, Event); @@ -222,8 +284,29 @@ _overlapped_CreateEvent(PyObject *module, PyObject *const *args, Py_ssize_t narg BOOL InitialState; const Py_UNICODE *Name; - if (!_PyArg_ParseStack(args, nargs, "OiiO&:CreateEvent", - &EventAttributes, &ManualReset, &InitialState, _PyUnicode_WideCharString_Opt_Converter, &Name)) { + if (!_PyArg_CheckPositional("CreateEvent", nargs, 4, 4)) { + goto exit; + } + EventAttributes = args[0]; + ManualReset = _PyLong_AsInt(args[1]); + if (ManualReset == -1 && PyErr_Occurred()) { + goto exit; + } + InitialState = _PyLong_AsInt(args[2]); + if (InitialState == -1 && PyErr_Occurred()) { + goto exit; + } + if (args[3] == Py_None) { + Name = NULL; + } + else if (PyUnicode_Check(args[3])) { + Name = PyUnicode_AsWideCharString(args[3], NULL); + if (Name == NULL) { + goto exit; + } + } + else { + _PyArg_BadArgument("CreateEvent", "argument 4", "str or None", args[3]); goto exit; } return_value = _overlapped_CreateEvent_impl(module, EventAttributes, ManualReset, InitialState, Name); @@ -253,7 +336,8 @@ _overlapped_SetEvent(PyObject *module, PyObject *arg) PyObject *return_value = NULL; HANDLE Handle; - if (!PyArg_Parse(arg, ""F_HANDLE":SetEvent", &Handle)) { + Handle = PyLong_AsVoidPtr(arg); + if (!Handle && PyErr_Occurred()) { goto exit; } return_value = _overlapped_SetEvent_impl(module, Handle); @@ -280,7 +364,8 @@ _overlapped_ResetEvent(PyObject *module, PyObject *arg) PyObject *return_value = NULL; HANDLE Handle; - if (!PyArg_Parse(arg, ""F_HANDLE":ResetEvent", &Handle)) { + Handle = PyLong_AsVoidPtr(arg); + if (!Handle && PyErr_Occurred()) { goto exit; } return_value = _overlapped_ResetEvent_impl(module, Handle); @@ -310,8 +395,15 @@ _overlapped_BindLocal(PyObject *module, PyObject *const *args, Py_ssize_t nargs) HANDLE Socket; int Family; - if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE"i:BindLocal", - &Socket, &Family)) { + if (!_PyArg_CheckPositional("BindLocal", nargs, 2, 2)) { + goto exit; + } + Socket = PyLong_AsVoidPtr(args[0]); + if (!Socket && PyErr_Occurred()) { + goto exit; + } + Family = _PyLong_AsInt(args[1]); + if (Family == -1 && PyErr_Occurred()) { goto exit; } return_value = _overlapped_BindLocal_impl(module, Socket, Family); @@ -338,7 +430,7 @@ _overlapped_FormatMessage(PyObject *module, PyObject *arg) PyObject *return_value = NULL; DWORD code; - if (!PyArg_Parse(arg, "k:FormatMessage", &code)) { + if (!_PyLong_UnsignedLong_Converter(arg, &code)) { goto exit; } return_value = _overlapped_FormatMessage_impl(module, code); @@ -360,14 +452,49 @@ static PyObject * _overlapped_Overlapped(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(event), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"event", NULL}; - static _PyArg_Parser _parser = {"|"F_HANDLE":Overlapped", _keywords, 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "Overlapped", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE + PyObject *argsbuf[1]; + PyObject * const *fastargs; + Py_ssize_t nargs = PyTuple_GET_SIZE(args); + Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0; HANDLE event = INVALID_HANDLE_VALUE; - if (!_PyArg_ParseTupleAndKeywordsFast(args, kwargs, &_parser, - &event)) { + fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 1, 0, argsbuf); + if (!fastargs) { goto exit; } + if (!noptargs) { + goto skip_optional_pos; + } + event = PyLong_AsVoidPtr(fastargs[0]); + if (!event && PyErr_Occurred()) { + goto exit; + } +skip_optional_pos: return_value = _overlapped_Overlapped_impl(type, event); exit: @@ -413,10 +540,17 @@ _overlapped_Overlapped_getresult(OverlappedObject *self, PyObject *const *args, PyObject *return_value = NULL; BOOL wait = FALSE; - if (!_PyArg_ParseStack(args, nargs, "|i:getresult", - &wait)) { + if (!_PyArg_CheckPositional("getresult", nargs, 0, 1)) { goto exit; } + if (nargs < 1) { + goto skip_optional; + } + wait = _PyLong_AsInt(args[0]); + if (wait == -1 && PyErr_Occurred()) { + goto exit; + } +skip_optional: return_value = _overlapped_Overlapped_getresult_impl(self, wait); exit: @@ -443,8 +577,14 @@ _overlapped_Overlapped_ReadFile(OverlappedObject *self, PyObject *const *args, P HANDLE handle; DWORD size; - if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE"k:ReadFile", - &handle, &size)) { + if (!_PyArg_CheckPositional("ReadFile", nargs, 2, 2)) { + goto exit; + } + handle = PyLong_AsVoidPtr(args[0]); + if (!handle && PyErr_Occurred()) { + goto exit; + } + if (!_PyLong_UnsignedLong_Converter(args[1], &size)) { goto exit; } return_value = _overlapped_Overlapped_ReadFile_impl(self, handle, size); @@ -473,8 +613,18 @@ _overlapped_Overlapped_ReadFileInto(OverlappedObject *self, PyObject *const *arg HANDLE handle; Py_buffer bufobj = {NULL, NULL}; - if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE"y*:ReadFileInto", - &handle, &bufobj)) { + if (!_PyArg_CheckPositional("ReadFileInto", nargs, 2, 2)) { + goto exit; + } + handle = PyLong_AsVoidPtr(args[0]); + if (!handle && PyErr_Occurred()) { + goto exit; + } + if (PyObject_GetBuffer(args[1], &bufobj, PyBUF_SIMPLE) != 0) { + goto exit; + } + if (!PyBuffer_IsContiguous(&bufobj, 'C')) { + _PyArg_BadArgument("ReadFileInto", "argument 2", "contiguous buffer", args[1]); goto exit; } return_value = _overlapped_Overlapped_ReadFileInto_impl(self, handle, &bufobj); @@ -509,10 +659,23 @@ _overlapped_Overlapped_WSARecv(OverlappedObject *self, PyObject *const *args, Py DWORD size; DWORD flags = 0; - if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE"k|k:WSARecv", - &handle, &size, &flags)) { + if (!_PyArg_CheckPositional("WSARecv", nargs, 2, 3)) { + goto exit; + } + handle = PyLong_AsVoidPtr(args[0]); + if (!handle && PyErr_Occurred()) { + goto exit; + } + if (!_PyLong_UnsignedLong_Converter(args[1], &size)) { goto exit; } + if (nargs < 3) { + goto skip_optional; + } + if (!_PyLong_UnsignedLong_Converter(args[2], &flags)) { + goto exit; + } +skip_optional: return_value = _overlapped_Overlapped_WSARecv_impl(self, handle, size, flags); exit: @@ -541,8 +704,21 @@ _overlapped_Overlapped_WSARecvInto(OverlappedObject *self, PyObject *const *args Py_buffer bufobj = {NULL, NULL}; DWORD flags; - if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE"y*k:WSARecvInto", - &handle, &bufobj, &flags)) { + if (!_PyArg_CheckPositional("WSARecvInto", nargs, 3, 3)) { + goto exit; + } + handle = PyLong_AsVoidPtr(args[0]); + if (!handle && PyErr_Occurred()) { + goto exit; + } + if (PyObject_GetBuffer(args[1], &bufobj, PyBUF_SIMPLE) != 0) { + goto exit; + } + if (!PyBuffer_IsContiguous(&bufobj, 'C')) { + _PyArg_BadArgument("WSARecvInto", "argument 2", "contiguous buffer", args[1]); + goto exit; + } + if (!_PyLong_UnsignedLong_Converter(args[2], &flags)) { goto exit; } return_value = _overlapped_Overlapped_WSARecvInto_impl(self, handle, &bufobj, flags); @@ -576,8 +752,18 @@ _overlapped_Overlapped_WriteFile(OverlappedObject *self, PyObject *const *args, HANDLE handle; Py_buffer bufobj = {NULL, NULL}; - if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE"y*:WriteFile", - &handle, &bufobj)) { + if (!_PyArg_CheckPositional("WriteFile", nargs, 2, 2)) { + goto exit; + } + handle = PyLong_AsVoidPtr(args[0]); + if (!handle && PyErr_Occurred()) { + goto exit; + } + if (PyObject_GetBuffer(args[1], &bufobj, PyBUF_SIMPLE) != 0) { + goto exit; + } + if (!PyBuffer_IsContiguous(&bufobj, 'C')) { + _PyArg_BadArgument("WriteFile", "argument 2", "contiguous buffer", args[1]); goto exit; } return_value = _overlapped_Overlapped_WriteFile_impl(self, handle, &bufobj); @@ -612,8 +798,21 @@ _overlapped_Overlapped_WSASend(OverlappedObject *self, PyObject *const *args, Py Py_buffer bufobj = {NULL, NULL}; DWORD flags; - if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE"y*k:WSASend", - &handle, &bufobj, &flags)) { + if (!_PyArg_CheckPositional("WSASend", nargs, 3, 3)) { + goto exit; + } + handle = PyLong_AsVoidPtr(args[0]); + if (!handle && PyErr_Occurred()) { + goto exit; + } + if (PyObject_GetBuffer(args[1], &bufobj, PyBUF_SIMPLE) != 0) { + goto exit; + } + if (!PyBuffer_IsContiguous(&bufobj, 'C')) { + _PyArg_BadArgument("WSASend", "argument 2", "contiguous buffer", args[1]); + goto exit; + } + if (!_PyLong_UnsignedLong_Converter(args[2], &flags)) { goto exit; } return_value = _overlapped_Overlapped_WSASend_impl(self, handle, &bufobj, flags); @@ -648,8 +847,15 @@ _overlapped_Overlapped_AcceptEx(OverlappedObject *self, PyObject *const *args, P HANDLE ListenSocket; HANDLE AcceptSocket; - if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE""F_HANDLE":AcceptEx", - &ListenSocket, &AcceptSocket)) { + if (!_PyArg_CheckPositional("AcceptEx", nargs, 2, 2)) { + goto exit; + } + ListenSocket = PyLong_AsVoidPtr(args[0]); + if (!ListenSocket && PyErr_Occurred()) { + goto exit; + } + AcceptSocket = PyLong_AsVoidPtr(args[1]); + if (!AcceptSocket && PyErr_Occurred()) { goto exit; } return_value = _overlapped_Overlapped_AcceptEx_impl(self, ListenSocket, AcceptSocket); @@ -681,10 +887,18 @@ _overlapped_Overlapped_ConnectEx(OverlappedObject *self, PyObject *const *args, HANDLE ConnectSocket; PyObject *AddressObj; - if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE"O!:ConnectEx", - &ConnectSocket, &PyTuple_Type, &AddressObj)) { + if (!_PyArg_CheckPositional("ConnectEx", nargs, 2, 2)) { goto exit; } + ConnectSocket = PyLong_AsVoidPtr(args[0]); + if (!ConnectSocket && PyErr_Occurred()) { + goto exit; + } + if (!PyTuple_Check(args[1])) { + _PyArg_BadArgument("ConnectEx", "argument 2", "tuple", args[1]); + goto exit; + } + AddressObj = args[1]; return_value = _overlapped_Overlapped_ConnectEx_impl(self, ConnectSocket, AddressObj); exit: @@ -710,8 +924,14 @@ _overlapped_Overlapped_DisconnectEx(OverlappedObject *self, PyObject *const *arg HANDLE Socket; DWORD flags; - if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE"k:DisconnectEx", - &Socket, &flags)) { + if (!_PyArg_CheckPositional("DisconnectEx", nargs, 2, 2)) { + goto exit; + } + Socket = PyLong_AsVoidPtr(args[0]); + if (!Socket && PyErr_Occurred()) { + goto exit; + } + if (!_PyLong_UnsignedLong_Converter(args[1], &flags)) { goto exit; } return_value = _overlapped_Overlapped_DisconnectEx_impl(self, Socket, flags); @@ -749,8 +969,30 @@ _overlapped_Overlapped_TransmitFile(OverlappedObject *self, PyObject *const *arg DWORD count_per_send; DWORD flags; - if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE""F_HANDLE"kkkkk:TransmitFile", - &Socket, &File, &offset, &offset_high, &count_to_write, &count_per_send, &flags)) { + if (!_PyArg_CheckPositional("TransmitFile", nargs, 7, 7)) { + goto exit; + } + Socket = PyLong_AsVoidPtr(args[0]); + if (!Socket && PyErr_Occurred()) { + goto exit; + } + File = PyLong_AsVoidPtr(args[1]); + if (!File && PyErr_Occurred()) { + goto exit; + } + if (!_PyLong_UnsignedLong_Converter(args[2], &offset)) { + goto exit; + } + if (!_PyLong_UnsignedLong_Converter(args[3], &offset_high)) { + goto exit; + } + if (!_PyLong_UnsignedLong_Converter(args[4], &count_to_write)) { + goto exit; + } + if (!_PyLong_UnsignedLong_Converter(args[5], &count_per_send)) { + goto exit; + } + if (!_PyLong_UnsignedLong_Converter(args[6], &flags)) { goto exit; } return_value = _overlapped_Overlapped_TransmitFile_impl(self, Socket, File, offset, offset_high, count_to_write, count_per_send, flags); @@ -778,7 +1020,8 @@ _overlapped_Overlapped_ConnectNamedPipe(OverlappedObject *self, PyObject *arg) PyObject *return_value = NULL; HANDLE Pipe; - if (!PyArg_Parse(arg, ""F_HANDLE":ConnectNamedPipe", &Pipe)) { + Pipe = PyLong_AsVoidPtr(arg); + if (!Pipe && PyErr_Occurred()) { goto exit; } return_value = _overlapped_Overlapped_ConnectNamedPipe_impl(self, Pipe); @@ -843,10 +1086,14 @@ _overlapped_WSAConnect(PyObject *module, PyObject *const *args, Py_ssize_t nargs HANDLE ConnectSocket; PyObject *AddressObj; - if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE"O:WSAConnect", - &ConnectSocket, &AddressObj)) { + if (!_PyArg_CheckPositional("WSAConnect", nargs, 2, 2)) { + goto exit; + } + ConnectSocket = PyLong_AsVoidPtr(args[0]); + if (!ConnectSocket && PyErr_Occurred()) { goto exit; } + AddressObj = args[1]; return_value = _overlapped_WSAConnect_impl(module, ConnectSocket, AddressObj); exit: @@ -876,10 +1123,24 @@ _overlapped_Overlapped_WSASendTo(OverlappedObject *self, PyObject *const *args, DWORD flags; PyObject *AddressObj; - if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE"y*kO:WSASendTo", - &handle, &bufobj, &flags, &AddressObj)) { + if (!_PyArg_CheckPositional("WSASendTo", nargs, 4, 4)) { + goto exit; + } + handle = PyLong_AsVoidPtr(args[0]); + if (!handle && PyErr_Occurred()) { + goto exit; + } + if (PyObject_GetBuffer(args[1], &bufobj, PyBUF_SIMPLE) != 0) { + goto exit; + } + if (!PyBuffer_IsContiguous(&bufobj, 'C')) { + _PyArg_BadArgument("WSASendTo", "argument 2", "contiguous buffer", args[1]); + goto exit; + } + if (!_PyLong_UnsignedLong_Converter(args[2], &flags)) { goto exit; } + AddressObj = args[3]; return_value = _overlapped_Overlapped_WSASendTo_impl(self, handle, &bufobj, flags, AddressObj); exit: @@ -913,10 +1174,23 @@ _overlapped_Overlapped_WSARecvFrom(OverlappedObject *self, PyObject *const *args DWORD size; DWORD flags = 0; - if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE"k|k:WSARecvFrom", - &handle, &size, &flags)) { + if (!_PyArg_CheckPositional("WSARecvFrom", nargs, 2, 3)) { goto exit; } + handle = PyLong_AsVoidPtr(args[0]); + if (!handle && PyErr_Occurred()) { + goto exit; + } + if (!_PyLong_UnsignedLong_Converter(args[1], &size)) { + goto exit; + } + if (nargs < 3) { + goto skip_optional; + } + if (!_PyLong_UnsignedLong_Converter(args[2], &flags)) { + goto exit; + } +skip_optional: return_value = _overlapped_Overlapped_WSARecvFrom_impl(self, handle, size, flags); exit: @@ -946,10 +1220,30 @@ _overlapped_Overlapped_WSARecvFromInto(OverlappedObject *self, PyObject *const * DWORD size; DWORD flags = 0; - if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE"y*k|k:WSARecvFromInto", - &handle, &bufobj, &size, &flags)) { + if (!_PyArg_CheckPositional("WSARecvFromInto", nargs, 3, 4)) { + goto exit; + } + handle = PyLong_AsVoidPtr(args[0]); + if (!handle && PyErr_Occurred()) { + goto exit; + } + if (PyObject_GetBuffer(args[1], &bufobj, PyBUF_SIMPLE) != 0) { + goto exit; + } + if (!PyBuffer_IsContiguous(&bufobj, 'C')) { + _PyArg_BadArgument("WSARecvFromInto", "argument 2", "contiguous buffer", args[1]); + goto exit; + } + if (!_PyLong_UnsignedLong_Converter(args[2], &size)) { + goto exit; + } + if (nargs < 4) { + goto skip_optional; + } + if (!_PyLong_UnsignedLong_Converter(args[3], &flags)) { goto exit; } +skip_optional: return_value = _overlapped_Overlapped_WSARecvFromInto_impl(self, handle, &bufobj, size, flags); exit: @@ -960,4 +1254,4 @@ _overlapped_Overlapped_WSARecvFromInto(OverlappedObject *self, PyObject *const * return return_value; } -/*[clinic end generated code: output=9078d9f9984864a2 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=ed7ca699b5cf6260 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/posixmodule.c.h b/Modules/clinic/posixmodule.c.h index 1ce7d86204e6f3..a26cb8261083a9 100644 --- a/Modules/clinic/posixmodule.c.h +++ b/Modules/clinic/posixmodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(os_stat__doc__, "stat($module, /, path, *, dir_fd=None, follow_symlinks=True)\n" "--\n" @@ -37,8 +43,31 @@ static PyObject * os_stat(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), &_Py_ID(dir_fd), &_Py_ID(follow_symlinks), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", "dir_fd", "follow_symlinks", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "stat", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "stat", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; path_t path = PATH_T_INITIALIZE("stat", "path", 0, 1); @@ -96,8 +125,31 @@ static PyObject * os_lstat(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), &_Py_ID(dir_fd), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", "dir_fd", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "lstat", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "lstat", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; path_t path = PATH_T_INITIALIZE("lstat", "path", 0, 0); @@ -169,8 +221,31 @@ static PyObject * os_access(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 5 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), &_Py_ID(mode), &_Py_ID(dir_fd), &_Py_ID(effective_ids), &_Py_ID(follow_symlinks), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", "mode", "dir_fd", "effective_ids", "follow_symlinks", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "access", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "access", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; path_t path = PATH_T_INITIALIZE("access", "path", 0, 0); @@ -306,8 +381,31 @@ static PyObject * os_chdir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "chdir", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "chdir", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; path_t path = PATH_T_INITIALIZE("chdir", "path", 0, PATH_HAVE_FCHDIR); @@ -348,8 +446,31 @@ static PyObject * os_fchdir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(fd), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"fd", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "fchdir", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "fchdir", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; int fd; @@ -405,8 +526,31 @@ static PyObject * os_chmod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 4 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), &_Py_ID(mode), &_Py_ID(dir_fd), &_Py_ID(follow_symlinks), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", "mode", "dir_fd", "follow_symlinks", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "chmod", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "chmod", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; path_t path = PATH_T_INITIALIZE("chmod", "path", 0, PATH_HAVE_FCHMOD); @@ -470,8 +614,31 @@ static PyObject * os_fchmod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(fd), &_Py_ID(mode), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"fd", "mode", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "fchmod", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "fchmod", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; int fd; int mode; @@ -517,8 +684,31 @@ static PyObject * os_lchmod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), &_Py_ID(mode), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", "mode", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "lchmod", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "lchmod", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; path_t path = PATH_T_INITIALIZE("lchmod", "path", 0, 0); int mode; @@ -570,8 +760,31 @@ static PyObject * os_chflags(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), &_Py_ID(flags), &_Py_ID(follow_symlinks), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", "flags", "follow_symlinks", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "chflags", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "chflags", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; path_t path = PATH_T_INITIALIZE("chflags", "path", 0, 0); @@ -630,8 +843,31 @@ static PyObject * os_lchflags(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), &_Py_ID(flags), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", "flags", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "lchflags", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "lchflags", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; path_t path = PATH_T_INITIALIZE("lchflags", "path", 0, 0); unsigned long flags; @@ -677,8 +913,31 @@ static PyObject * os_chroot(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "chroot", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "chroot", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; path_t path = PATH_T_INITIALIZE("chroot", "path", 0, 0); @@ -718,8 +977,31 @@ static PyObject * os_fsync(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(fd), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"fd", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "fsync", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "fsync", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; int fd; @@ -778,8 +1060,31 @@ static PyObject * os_fdatasync(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(fd), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"fd", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "fdatasync", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "fdatasync", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; int fd; @@ -841,8 +1146,31 @@ static PyObject * os_chown(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 5 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), &_Py_ID(uid), &_Py_ID(gid), &_Py_ID(dir_fd), &_Py_ID(follow_symlinks), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", "uid", "gid", "dir_fd", "follow_symlinks", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "chown", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "chown", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3; path_t path = PATH_T_INITIALIZE("chown", "path", 0, PATH_HAVE_FCHOWN); @@ -911,8 +1239,31 @@ static PyObject * os_fchown(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(fd), &_Py_ID(uid), &_Py_ID(gid), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"fd", "uid", "gid", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "fchown", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "fchown", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; int fd; uid_t uid; @@ -961,8 +1312,31 @@ static PyObject * os_lchown(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), &_Py_ID(uid), &_Py_ID(gid), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", "uid", "gid", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "lchown", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "lchown", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; path_t path = PATH_T_INITIALIZE("lchown", "path", 0, 0); uid_t uid; @@ -1058,8 +1432,31 @@ static PyObject * os_link(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 5 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(src), &_Py_ID(dst), &_Py_ID(src_dir_fd), &_Py_ID(dst_dir_fd), &_Py_ID(follow_symlinks), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"src", "dst", "src_dir_fd", "dst_dir_fd", "follow_symlinks", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "link", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "link", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; path_t src = PATH_T_INITIALIZE("link", "src", 0, 0); @@ -1142,8 +1539,31 @@ static PyObject * os_listdir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "listdir", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "listdir", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; path_t path = PATH_T_INITIALIZE("listdir", "path", 1, PATH_HAVE_FDOPENDIR); @@ -1253,8 +1673,31 @@ static PyObject * os__getvolumepathname(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "_getvolumepathname", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "_getvolumepathname", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; path_t path = PATH_T_INITIALIZE("_getvolumepathname", "path", 0, 0); @@ -1294,8 +1737,31 @@ static PyObject * os__path_splitroot(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "_path_splitroot", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "_path_splitroot", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; path_t path = PATH_T_INITIALIZE("_path_splitroot", "path", 0, 0); @@ -1333,8 +1799,31 @@ static PyObject * os__path_normpath(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "_path_normpath", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "_path_normpath", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject *path; @@ -1372,8 +1861,31 @@ static PyObject * os_mkdir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), &_Py_ID(mode), &_Py_ID(dir_fd), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", "mode", "dir_fd", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "mkdir", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "mkdir", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; path_t path = PATH_T_INITIALIZE("mkdir", "path", 0, 0); @@ -1466,8 +1978,31 @@ static PyObject * os_getpriority(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(which), &_Py_ID(who), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"which", "who", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "getpriority", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "getpriority", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; int which; int who; @@ -1510,8 +2045,31 @@ static PyObject * os_setpriority(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(which), &_Py_ID(who), &_Py_ID(priority), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"which", "who", "priority", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "setpriority", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "setpriority", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; int which; int who; @@ -1564,8 +2122,31 @@ static PyObject * os_rename(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 4 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(src), &_Py_ID(dst), &_Py_ID(src_dir_fd), &_Py_ID(dst_dir_fd), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"src", "dst", "src_dir_fd", "dst_dir_fd", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "rename", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "rename", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; path_t src = PATH_T_INITIALIZE("rename", "src", 0, 0); @@ -1632,8 +2213,31 @@ static PyObject * os_replace(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 4 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(src), &_Py_ID(dst), &_Py_ID(src_dir_fd), &_Py_ID(dst_dir_fd), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"src", "dst", "src_dir_fd", "dst_dir_fd", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "replace", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "replace", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; path_t src = PATH_T_INITIALIZE("replace", "src", 0, 0); @@ -1698,8 +2302,31 @@ static PyObject * os_rmdir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), &_Py_ID(dir_fd), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", "dir_fd", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "rmdir", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "rmdir", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; path_t path = PATH_T_INITIALIZE("rmdir", "path", 0, 0); @@ -1746,8 +2373,31 @@ static PyObject * os_system(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(command), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"command", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "system", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "system", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; const Py_UNICODE *command; long _return_value; @@ -1797,8 +2447,31 @@ static PyObject * os_system(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(command), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"command", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "system", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "system", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject *command = NULL; long _return_value; @@ -1878,8 +2551,31 @@ static PyObject * os_unlink(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), &_Py_ID(dir_fd), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", "dir_fd", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "unlink", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "unlink", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; path_t path = PATH_T_INITIALIZE("unlink", "path", 0, 0); @@ -1929,8 +2625,31 @@ static PyObject * os_remove(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), &_Py_ID(dir_fd), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", "dir_fd", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "remove", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "remove", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; path_t path = PATH_T_INITIALIZE("remove", "path", 0, 0); @@ -2024,8 +2743,31 @@ static PyObject * os_utime(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 5 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), &_Py_ID(times), &_Py_ID(ns), &_Py_ID(dir_fd), &_Py_ID(follow_symlinks), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", "times", "ns", "dir_fd", "follow_symlinks", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "utime", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "utime", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; path_t path = PATH_T_INITIALIZE("utime", "path", 0, PATH_UTIME_HAVE_FD); @@ -2098,8 +2840,31 @@ static PyObject * os__exit(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(status), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"status", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "_exit", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "_exit", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; int status; @@ -2186,8 +2951,31 @@ static PyObject * os_execve(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), &_Py_ID(argv), &_Py_ID(env), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", "argv", "env", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "execve", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "execve", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; path_t path = PATH_T_INITIALIZE("execve", "path", 0, PATH_HAVE_FEXECVE); PyObject *argv; @@ -2258,8 +3046,31 @@ static PyObject * os_posix_spawn(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 7 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(file_actions), &_Py_ID(setpgroup), &_Py_ID(resetids), &_Py_ID(setsid), &_Py_ID(setsigmask), &_Py_ID(setsigdef), &_Py_ID(scheduler), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "", "", "file_actions", "setpgroup", "resetids", "setsid", "setsigmask", "setsigdef", "scheduler", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "posix_spawn", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "posix_spawn", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[10]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3; path_t path = PATH_T_INITIALIZE("posix_spawn", "path", 0, 0); @@ -2385,8 +3196,31 @@ static PyObject * os_posix_spawnp(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 7 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(file_actions), &_Py_ID(setpgroup), &_Py_ID(resetids), &_Py_ID(setsid), &_Py_ID(setsigmask), &_Py_ID(setsigdef), &_Py_ID(scheduler), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "", "", "file_actions", "setpgroup", "resetids", "setsid", "setsigmask", "setsigdef", "scheduler", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "posix_spawnp", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "posix_spawnp", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[10]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3; path_t path = PATH_T_INITIALIZE("posix_spawnp", "path", 0, 0); @@ -2605,8 +3439,31 @@ static PyObject * os_register_at_fork(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(before), &_Py_ID(after_in_child), &_Py_ID(after_in_parent), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"before", "after_in_child", "after_in_parent", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "register_at_fork", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "register_at_fork", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *before = NULL; @@ -2708,8 +3565,31 @@ static PyObject * os_sched_get_priority_max(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(policy), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"policy", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "sched_get_priority_max", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "sched_get_priority_max", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; int policy; @@ -2747,8 +3627,31 @@ static PyObject * os_sched_get_priority_min(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(policy), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"policy", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "sched_get_priority_min", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "sched_get_priority_min", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; int policy; @@ -2819,8 +3722,31 @@ static PyObject * os_sched_param(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(sched_priority), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"sched_priority", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "sched_param", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "sched_param", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -3488,8 +4414,31 @@ static PyObject * os_getpgid(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(pid), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"pid", NULL}; - static _PyArg_Parser _parser = {"" _Py_PARSE_PID ":getpgid", _keywords, 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .format = "" _Py_PARSE_PID ":getpgid", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE pid_t pid; if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser, @@ -3949,8 +4898,31 @@ static PyObject * os_wait3(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(options), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"options", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "wait3", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "wait3", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; int options; @@ -3991,8 +4963,31 @@ static PyObject * os_wait4(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(pid), &_Py_ID(options), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"pid", "options", NULL}; - static _PyArg_Parser _parser = {"" _Py_PARSE_PID "i:wait4", _keywords, 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .format = "" _Py_PARSE_PID "i:wait4", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE pid_t pid; int options; @@ -4175,8 +5170,31 @@ static PyObject * os_pidfd_open(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(pid), &_Py_ID(flags), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"pid", "flags", NULL}; - static _PyArg_Parser _parser = {"" _Py_PARSE_PID "|O&:pidfd_open", _keywords, 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .format = "" _Py_PARSE_PID "|O&:pidfd_open", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE pid_t pid; unsigned int flags = 0; @@ -4216,8 +5234,31 @@ static PyObject * os_readlink(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), &_Py_ID(dir_fd), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", "dir_fd", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "readlink", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "readlink", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; path_t path = PATH_T_INITIALIZE("readlink", "path", 0, 0); @@ -4277,8 +5318,31 @@ static PyObject * os_symlink(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 4 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(src), &_Py_ID(dst), &_Py_ID(target_is_directory), &_Py_ID(dir_fd), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"src", "dst", "target_is_directory", "dir_fd", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "symlink", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "symlink", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; path_t src = PATH_T_INITIALIZE("symlink", "src", 0, 0); @@ -4527,8 +5591,31 @@ static PyObject * os_open(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 4 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), &_Py_ID(flags), &_Py_ID(mode), &_Py_ID(dir_fd), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", "flags", "mode", "dir_fd", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "open", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "open", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; path_t path = PATH_T_INITIALIZE("open", "path", 0, 0); @@ -4597,8 +5684,31 @@ static PyObject * os_close(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(fd), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"fd", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "close", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "close", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; int fd; @@ -4685,6 +5795,8 @@ os_dup(PyObject *module, PyObject *arg) return return_value; } +#if ((defined(HAVE_DUP3) || defined(F_DUPFD) || defined(MS_WINDOWS))) + PyDoc_STRVAR(os_dup2__doc__, "dup2($module, /, fd, fd2, inheritable=True)\n" "--\n" @@ -4701,8 +5813,31 @@ static PyObject * os_dup2(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(fd), &_Py_ID(fd2), &_Py_ID(inheritable), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"fd", "fd2", "inheritable", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "dup2", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "dup2", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; int fd; @@ -4740,6 +5875,8 @@ os_dup2(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwn return return_value; } +#endif /* ((defined(HAVE_DUP3) || defined(F_DUPFD) || defined(MS_WINDOWS))) */ + #if defined(HAVE_LOCKF) PyDoc_STRVAR(os_lockf__doc__, @@ -5128,8 +6265,31 @@ static PyObject * os_sendfile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 7 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(out_fd), &_Py_ID(in_fd), &_Py_ID(offset), &_Py_ID(count), &_Py_ID(headers), &_Py_ID(trailers), &_Py_ID(flags), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"out_fd", "in_fd", "offset", "count", "headers", "trailers", "flags", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "sendfile", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "sendfile", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[7]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 4; int out_fd; @@ -5207,8 +6367,31 @@ static PyObject * os_sendfile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 7 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(out_fd), &_Py_ID(in_fd), &_Py_ID(offset), &_Py_ID(count), &_Py_ID(headers), &_Py_ID(trailers), &_Py_ID(flags), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"out_fd", "in_fd", "offset", "count", "headers", "trailers", "flags", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "sendfile", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "sendfile", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[7]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 4; int out_fd; @@ -5293,8 +6476,31 @@ static PyObject * os_sendfile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 4 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(out_fd), &_Py_ID(in_fd), &_Py_ID(offset), &_Py_ID(count), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"out_fd", "in_fd", "offset", "count", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "sendfile", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "sendfile", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[4]; int out_fd; int in_fd; @@ -5398,8 +6604,31 @@ static PyObject * os_fstat(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(fd), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"fd", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "fstat", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "fstat", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; int fd; @@ -5727,8 +6956,31 @@ static PyObject * os_copy_file_range(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 5 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(src), &_Py_ID(dst), &_Py_ID(count), &_Py_ID(offset_src), &_Py_ID(offset_dst), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"src", "dst", "count", "offset_src", "offset_dst", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "copy_file_range", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "copy_file_range", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3; int src; @@ -5818,8 +7070,31 @@ static PyObject * os_splice(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 6 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(src), &_Py_ID(dst), &_Py_ID(count), &_Py_ID(offset_src), &_Py_ID(offset_dst), &_Py_ID(flags), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"src", "dst", "count", "offset_src", "offset_dst", "flags", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "splice", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "splice", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[6]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3; int src; @@ -5903,8 +7178,31 @@ static PyObject * os_mkfifo(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), &_Py_ID(mode), &_Py_ID(dir_fd), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", "mode", "dir_fd", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "mkfifo", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "mkfifo", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; path_t path = PATH_T_INITIALIZE("mkfifo", "path", 0, 0); @@ -5980,8 +7278,31 @@ static PyObject * os_mknod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 4 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), &_Py_ID(mode), &_Py_ID(device), &_Py_ID(dir_fd), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", "mode", "device", "dir_fd", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "mknod", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "mknod", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; path_t path = PATH_T_INITIALIZE("mknod", "path", 0, 0); @@ -6212,8 +7533,31 @@ static PyObject * os_truncate(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), &_Py_ID(length), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", "length", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "truncate", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "truncate", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; path_t path = PATH_T_INITIALIZE("truncate", "path", 0, PATH_HAVE_FTRUNCATE); Py_off_t length; @@ -6590,8 +7934,31 @@ static PyObject * os_WIFCONTINUED(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(status), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"status", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "WIFCONTINUED", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "WIFCONTINUED", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; int status; int _return_value; @@ -6634,8 +8001,31 @@ static PyObject * os_WIFSTOPPED(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(status), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"status", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "WIFSTOPPED", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "WIFSTOPPED", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; int status; int _return_value; @@ -6678,8 +8068,31 @@ static PyObject * os_WIFSIGNALED(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(status), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"status", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "WIFSIGNALED", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "WIFSIGNALED", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; int status; int _return_value; @@ -6722,8 +8135,31 @@ static PyObject * os_WIFEXITED(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(status), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"status", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "WIFEXITED", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "WIFEXITED", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; int status; int _return_value; @@ -6766,8 +8202,31 @@ static PyObject * os_WEXITSTATUS(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(status), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"status", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "WEXITSTATUS", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "WEXITSTATUS", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; int status; int _return_value; @@ -6810,8 +8269,31 @@ static PyObject * os_WTERMSIG(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(status), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"status", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "WTERMSIG", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "WTERMSIG", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; int status; int _return_value; @@ -6854,8 +8336,31 @@ static PyObject * os_WSTOPSIG(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(status), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"status", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "WSTOPSIG", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "WSTOPSIG", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; int status; int _return_value; @@ -6936,8 +8441,31 @@ static PyObject * os_statvfs(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "statvfs", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "statvfs", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; path_t path = PATH_T_INITIALIZE("statvfs", "path", 0, PATH_HAVE_FSTATVFS); @@ -6977,8 +8505,31 @@ static PyObject * os__getdiskusage(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "_getdiskusage", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "_getdiskusage", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; path_t path = PATH_T_INITIALIZE("_getdiskusage", "path", 0, 0); @@ -7067,8 +8618,31 @@ static PyObject * os_pathconf(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), &_Py_ID(name), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", "name", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "pathconf", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "pathconf", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; path_t path = PATH_T_INITIALIZE("pathconf", "path", 0, PATH_HAVE_FPATHCONF); int name; @@ -7233,8 +8807,31 @@ static PyObject * os_startfile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 5 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(filepath), &_Py_ID(operation), &_Py_ID(arguments), &_Py_ID(cwd), &_Py_ID(show_cmd), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"filepath", "operation", "arguments", "cwd", "show_cmd", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "startfile", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "startfile", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; path_t filepath = PATH_T_INITIALIZE("startfile", "filepath", 0, 0); @@ -7354,8 +8951,31 @@ static PyObject * os_device_encoding(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(fd), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"fd", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "device_encoding", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "device_encoding", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; int fd; @@ -7525,8 +9145,31 @@ static PyObject * os_getxattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), &_Py_ID(attribute), &_Py_ID(follow_symlinks), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", "attribute", "follow_symlinks", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "getxattr", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "getxattr", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; path_t path = PATH_T_INITIALIZE("getxattr", "path", 0, 1); @@ -7589,8 +9232,31 @@ static PyObject * os_setxattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 5 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), &_Py_ID(attribute), &_Py_ID(value), &_Py_ID(flags), &_Py_ID(follow_symlinks), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", "attribute", "value", "flags", "follow_symlinks", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "setxattr", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "setxattr", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3; path_t path = PATH_T_INITIALIZE("setxattr", "path", 0, 1); @@ -7678,8 +9344,31 @@ static PyObject * os_removexattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), &_Py_ID(attribute), &_Py_ID(follow_symlinks), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", "attribute", "follow_symlinks", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "removexattr", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "removexattr", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; path_t path = PATH_T_INITIALIZE("removexattr", "path", 0, 1); @@ -7741,8 +9430,31 @@ static PyObject * os_listxattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), &_Py_ID(follow_symlinks), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", "follow_symlinks", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "listxattr", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "listxattr", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; path_t path = PATH_T_INITIALIZE("listxattr", "path", 1, 1); @@ -7836,8 +9548,31 @@ static PyObject * os_memfd_create(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(name), &_Py_ID(flags), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"name", "flags", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "memfd_create", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "memfd_create", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *name = NULL; @@ -7869,7 +9604,7 @@ os_memfd_create(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj #endif /* defined(HAVE_MEMFD_CREATE) */ -#if defined(HAVE_EVENTFD) +#if (defined(HAVE_EVENTFD) && defined(EFD_CLOEXEC)) PyDoc_STRVAR(os_eventfd__doc__, "eventfd($module, /, initval, flags=EFD_CLOEXEC)\n" @@ -7887,8 +9622,31 @@ static PyObject * os_eventfd(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(initval), &_Py_ID(flags), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"initval", "flags", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "eventfd", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "eventfd", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; unsigned int initval; @@ -7915,9 +9673,9 @@ os_eventfd(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject * return return_value; } -#endif /* defined(HAVE_EVENTFD) */ +#endif /* (defined(HAVE_EVENTFD) && defined(EFD_CLOEXEC)) */ -#if defined(HAVE_EVENTFD) +#if (defined(HAVE_EVENTFD) && defined(EFD_CLOEXEC)) PyDoc_STRVAR(os_eventfd_read__doc__, "eventfd_read($module, /, fd)\n" @@ -7935,8 +9693,31 @@ static PyObject * os_eventfd_read(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(fd), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"fd", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "eventfd_read", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "eventfd_read", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; int fd; @@ -7953,9 +9734,9 @@ os_eventfd_read(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj return return_value; } -#endif /* defined(HAVE_EVENTFD) */ +#endif /* (defined(HAVE_EVENTFD) && defined(EFD_CLOEXEC)) */ -#if defined(HAVE_EVENTFD) +#if (defined(HAVE_EVENTFD) && defined(EFD_CLOEXEC)) PyDoc_STRVAR(os_eventfd_write__doc__, "eventfd_write($module, /, fd, value)\n" @@ -7973,8 +9754,31 @@ static PyObject * os_eventfd_write(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(fd), &_Py_ID(value), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"fd", "value", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "eventfd_write", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "eventfd_write", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; int fd; unsigned long long value; @@ -7995,7 +9799,7 @@ os_eventfd_write(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb return return_value; } -#endif /* defined(HAVE_EVENTFD) */ +#endif /* (defined(HAVE_EVENTFD) && defined(EFD_CLOEXEC)) */ #if (defined(TERMSIZE_USE_CONIO) || defined(TERMSIZE_USE_IOCTL)) @@ -8340,8 +10144,31 @@ static PyObject * os_DirEntry_stat(DirEntry *self, PyTypeObject *defining_class, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(follow_symlinks), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"follow_symlinks", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "stat", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "stat", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int follow_symlinks = 1; @@ -8381,8 +10208,31 @@ static PyObject * os_DirEntry_is_dir(DirEntry *self, PyTypeObject *defining_class, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(follow_symlinks), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"follow_symlinks", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "is_dir", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "is_dir", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int follow_symlinks = 1; @@ -8427,8 +10277,31 @@ static PyObject * os_DirEntry_is_file(DirEntry *self, PyTypeObject *defining_class, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(follow_symlinks), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"follow_symlinks", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "is_file", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "is_file", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int follow_symlinks = 1; @@ -8514,8 +10387,31 @@ static PyObject * os_scandir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "scandir", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "scandir", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; path_t path = PATH_T_INITIALIZE("scandir", "path", 1, PATH_HAVE_FDOPENDIR); @@ -8560,8 +10456,31 @@ static PyObject * os_fspath(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "fspath", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "fspath", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject *path; @@ -8594,8 +10513,31 @@ static PyObject * os_getrandom(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(size), &_Py_ID(flags), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"size", "flags", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "getrandom", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "getrandom", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_ssize_t size; @@ -8658,8 +10600,31 @@ static PyObject * os__add_dll_directory(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(path), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"path", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "_add_dll_directory", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "_add_dll_directory", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; path_t path = PATH_T_INITIALIZE("_add_dll_directory", "path", 0, 0); @@ -8703,8 +10668,31 @@ static PyObject * os__remove_dll_directory(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(cookie), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"cookie", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "_remove_dll_directory", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "_remove_dll_directory", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject *cookie; @@ -8751,8 +10739,31 @@ static PyObject * os_waitstatus_to_exitcode(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(status), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"status", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "waitstatus_to_exitcode", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "waitstatus_to_exitcode", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject *status_obj; @@ -9105,6 +11116,10 @@ os_waitstatus_to_exitcode(PyObject *module, PyObject *const *args, Py_ssize_t na #define OS_TCSETPGRP_METHODDEF #endif /* !defined(OS_TCSETPGRP_METHODDEF) */ +#ifndef OS_DUP2_METHODDEF + #define OS_DUP2_METHODDEF +#endif /* !defined(OS_DUP2_METHODDEF) */ + #ifndef OS_LOCKF_METHODDEF #define OS_LOCKF_METHODDEF #endif /* !defined(OS_LOCKF_METHODDEF) */ @@ -9352,4 +11367,4 @@ os_waitstatus_to_exitcode(PyObject *module, PyObject *const *args, Py_ssize_t na #ifndef OS_WAITSTATUS_TO_EXITCODE_METHODDEF #define OS_WAITSTATUS_TO_EXITCODE_METHODDEF #endif /* !defined(OS_WAITSTATUS_TO_EXITCODE_METHODDEF) */ -/*[clinic end generated code: output=bae15f09a1b3d2e7 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=dc71eece3fc988a7 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/pwdmodule.c.h b/Modules/clinic/pwdmodule.c.h index cb83062495dcf9..f2603eaf322588 100644 --- a/Modules/clinic/pwdmodule.c.h +++ b/Modules/clinic/pwdmodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(pwd_getpwuid__doc__, "getpwuid($module, uidobj, /)\n" "--\n" @@ -74,4 +80,4 @@ pwd_getpwall(PyObject *module, PyObject *Py_UNUSED(ignored)) #ifndef PWD_GETPWALL_METHODDEF #define PWD_GETPWALL_METHODDEF #endif /* !defined(PWD_GETPWALL_METHODDEF) */ -/*[clinic end generated code: output=7fceab7f1a85da36 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=a95bc08653cda56b input=a9049054013a1b77]*/ diff --git a/Modules/clinic/pyexpat.c.h b/Modules/clinic/pyexpat.c.h index b2648320aad78d..0454fbc9994504 100644 --- a/Modules/clinic/pyexpat.c.h +++ b/Modules/clinic/pyexpat.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(pyexpat_xmlparser_Parse__doc__, "Parse($self, data, isfinal=False, /)\n" "--\n" @@ -21,8 +27,19 @@ static PyObject * pyexpat_xmlparser_Parse(xmlparseobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) + #else + # define KWTUPLE NULL + #endif + static const char * const _keywords[] = {"", "", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "Parse", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "Parse", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; PyObject *data; int isfinal = 0; @@ -63,8 +80,19 @@ static PyObject * pyexpat_xmlparser_ParseFile(xmlparseobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) + #else + # define KWTUPLE NULL + #endif + static const char * const _keywords[] = {"", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "ParseFile", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "ParseFile", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject *file; @@ -175,8 +203,19 @@ static PyObject * pyexpat_xmlparser_ExternalEntityParserCreate(xmlparseobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) + #else + # define KWTUPLE NULL + #endif + static const char * const _keywords[] = {"", "", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "ExternalEntityParserCreate", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "ExternalEntityParserCreate", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; const char *context; const char *encoding = NULL; @@ -282,8 +321,19 @@ static PyObject * pyexpat_xmlparser_UseForeignDTD(xmlparseobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) + #else + # define KWTUPLE NULL + #endif + static const char * const _keywords[] = {"", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "UseForeignDTD", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "UseForeignDTD", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; int flag = 1; @@ -325,8 +375,31 @@ static PyObject * pyexpat_ParserCreate(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(encoding), &_Py_ID(namespace_separator), &_Py_ID(intern), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"encoding", "namespace_separator", "intern", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "ParserCreate", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "ParserCreate", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; const char *encoding = NULL; @@ -425,4 +498,4 @@ pyexpat_ErrorString(PyObject *module, PyObject *arg) #ifndef PYEXPAT_XMLPARSER_USEFOREIGNDTD_METHODDEF #define PYEXPAT_XMLPARSER_USEFOREIGNDTD_METHODDEF #endif /* !defined(PYEXPAT_XMLPARSER_USEFOREIGNDTD_METHODDEF) */ -/*[clinic end generated code: output=3e333b89da3aa58c input=a9049054013a1b77]*/ +/*[clinic end generated code: output=de5f664ef05ef34a input=a9049054013a1b77]*/ diff --git a/Modules/clinic/readline.c.h b/Modules/clinic/readline.c.h index c64a84ed81ddfb..e36d651f67f6eb 100644 --- a/Modules/clinic/readline.c.h +++ b/Modules/clinic/readline.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(readline_parse_and_bind__doc__, "parse_and_bind($module, string, /)\n" "--\n" @@ -685,4 +691,4 @@ readline_redisplay(PyObject *module, PyObject *Py_UNUSED(ignored)) #ifndef READLINE_CLEAR_HISTORY_METHODDEF #define READLINE_CLEAR_HISTORY_METHODDEF #endif /* !defined(READLINE_CLEAR_HISTORY_METHODDEF) */ -/*[clinic end generated code: output=1fd4c04c2e7ba475 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=9097fcb749c19e27 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/resource.c.h b/Modules/clinic/resource.c.h index c591823ed7170c..d0ca8e7150fa86 100644 --- a/Modules/clinic/resource.c.h +++ b/Modules/clinic/resource.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + #if defined(HAVE_GETRUSAGE) PyDoc_STRVAR(resource_getrusage__doc__, @@ -95,41 +101,42 @@ resource_setrlimit(PyObject *module, PyObject *const *args, Py_ssize_t nargs) #if defined(HAVE_PRLIMIT) PyDoc_STRVAR(resource_prlimit__doc__, -"prlimit(pid, resource, [limits])"); +"prlimit($module, pid, resource, limits=None, /)\n" +"--\n" +"\n"); #define RESOURCE_PRLIMIT_METHODDEF \ - {"prlimit", (PyCFunction)resource_prlimit, METH_VARARGS, resource_prlimit__doc__}, + {"prlimit", _PyCFunction_CAST(resource_prlimit), METH_FASTCALL, resource_prlimit__doc__}, static PyObject * resource_prlimit_impl(PyObject *module, pid_t pid, int resource, - int group_right_1, PyObject *limits); + PyObject *limits); static PyObject * -resource_prlimit(PyObject *module, PyObject *args) +resource_prlimit(PyObject *module, PyObject *const *args, Py_ssize_t nargs) { PyObject *return_value = NULL; pid_t pid; int resource; - int group_right_1 = 0; - PyObject *limits = NULL; - - switch (PyTuple_GET_SIZE(args)) { - case 2: - if (!PyArg_ParseTuple(args, "" _Py_PARSE_PID "i:prlimit", &pid, &resource)) { - goto exit; - } - break; - case 3: - if (!PyArg_ParseTuple(args, "" _Py_PARSE_PID "iO:prlimit", &pid, &resource, &limits)) { - goto exit; - } - group_right_1 = 1; - break; - default: - PyErr_SetString(PyExc_TypeError, "resource.prlimit requires 2 to 3 arguments"); - goto exit; + PyObject *limits = Py_None; + + if (!_PyArg_CheckPositional("prlimit", nargs, 2, 3)) { + goto exit; + } + pid = PyLong_AsPid(args[0]); + if (pid == -1 && PyErr_Occurred()) { + goto exit; + } + resource = _PyLong_AsInt(args[1]); + if (resource == -1 && PyErr_Occurred()) { + goto exit; + } + if (nargs < 3) { + goto skip_optional; } - return_value = resource_prlimit_impl(module, pid, resource, group_right_1, limits); + limits = args[2]; +skip_optional: + return_value = resource_prlimit_impl(module, pid, resource, limits); exit: return return_value; @@ -171,4 +178,4 @@ resource_getpagesize(PyObject *module, PyObject *Py_UNUSED(ignored)) #ifndef RESOURCE_PRLIMIT_METHODDEF #define RESOURCE_PRLIMIT_METHODDEF #endif /* !defined(RESOURCE_PRLIMIT_METHODDEF) */ -/*[clinic end generated code: output=7c57d4f3688d3f07 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=2fbec74335a57230 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/selectmodule.c.h b/Modules/clinic/selectmodule.c.h index daa75427319a14..fda9aaab475567 100644 --- a/Modules/clinic/selectmodule.c.h +++ b/Modules/clinic/selectmodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(select_select__doc__, "select($module, rlist, wlist, xlist, timeout=None, /)\n" "--\n" @@ -522,8 +528,31 @@ static PyObject * select_epoll(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(sizehint), &_Py_ID(flags), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"sizehint", "flags", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "epoll", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "epoll", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -665,8 +694,31 @@ static PyObject * select_epoll_register(pyEpoll_Object *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(fd), &_Py_ID(eventmask), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"fd", "eventmask", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "register", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "register", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; int fd; @@ -719,8 +771,31 @@ static PyObject * select_epoll_modify(pyEpoll_Object *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(fd), &_Py_ID(eventmask), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"fd", "eventmask", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "modify", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "modify", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; int fd; unsigned int eventmask; @@ -765,8 +840,31 @@ static PyObject * select_epoll_unregister(pyEpoll_Object *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(fd), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"fd", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "unregister", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "unregister", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; int fd; @@ -813,8 +911,31 @@ static PyObject * select_epoll_poll(pyEpoll_Object *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(timeout), &_Py_ID(maxevents), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"timeout", "maxevents", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "poll", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "poll", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *timeout_obj = Py_None; @@ -1189,4 +1310,4 @@ select_kqueue_control(kqueue_queue_Object *self, PyObject *const *args, Py_ssize #ifndef SELECT_KQUEUE_CONTROL_METHODDEF #define SELECT_KQUEUE_CONTROL_METHODDEF #endif /* !defined(SELECT_KQUEUE_CONTROL_METHODDEF) */ -/*[clinic end generated code: output=e77cc5c8a6c77860 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=9556c7d6cd5192d1 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/sha1module.c.h b/Modules/clinic/sha1module.c.h index e2338e4a1280a5..ad15ddaadfc86c 100644 --- a/Modules/clinic/sha1module.c.h +++ b/Modules/clinic/sha1module.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(SHA1Type_copy__doc__, "copy($self, /)\n" "--\n" @@ -85,8 +91,31 @@ static PyObject * _sha1_sha1(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "sha1", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "sha1", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *string = NULL; @@ -119,4 +148,4 @@ _sha1_sha1(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject * exit: return return_value; } -/*[clinic end generated code: output=322d77ba0a4282fc input=a9049054013a1b77]*/ +/*[clinic end generated code: output=4d1293ca3472acdb input=a9049054013a1b77]*/ diff --git a/Modules/clinic/sha256module.c.h b/Modules/clinic/sha256module.c.h index b94c1c548a394b..10d09fac695fc4 100644 --- a/Modules/clinic/sha256module.c.h +++ b/Modules/clinic/sha256module.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(SHA256Type_copy__doc__, "copy($self, /)\n" "--\n" @@ -85,8 +91,31 @@ static PyObject * _sha256_sha256(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "sha256", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "sha256", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *string = NULL; @@ -136,8 +165,31 @@ static PyObject * _sha256_sha224(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "sha224", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "sha224", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *string = NULL; @@ -170,4 +222,4 @@ _sha256_sha224(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje exit: return return_value; } -/*[clinic end generated code: output=58b48051890d3fde input=a9049054013a1b77]*/ +/*[clinic end generated code: output=ae926f7ec85e7c97 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/sha512module.c.h b/Modules/clinic/sha512module.c.h index b7227480c342a1..f8d326363c398e 100644 --- a/Modules/clinic/sha512module.c.h +++ b/Modules/clinic/sha512module.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(SHA512Type_copy__doc__, "copy($self, /)\n" "--\n" @@ -85,8 +91,31 @@ static PyObject * _sha512_sha512(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "sha512", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "sha512", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *string = NULL; @@ -136,8 +165,31 @@ static PyObject * _sha512_sha384(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "sha384", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "sha384", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *string = NULL; @@ -170,4 +222,4 @@ _sha512_sha384(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje exit: return return_value; } -/*[clinic end generated code: output=60a0a1a28c07f391 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=dd168f3f21097afe input=a9049054013a1b77]*/ diff --git a/Modules/clinic/signalmodule.c.h b/Modules/clinic/signalmodule.c.h index 9e4a8eb0b998a6..f0276c63df18f2 100644 --- a/Modules/clinic/signalmodule.c.h +++ b/Modules/clinic/signalmodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(signal_default_int_handler__doc__, "default_int_handler($module, signalnum, frame, /)\n" "--\n" @@ -698,4 +704,4 @@ signal_pidfd_send_signal(PyObject *module, PyObject *const *args, Py_ssize_t nar #ifndef SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF #define SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF #endif /* !defined(SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF) */ -/*[clinic end generated code: output=6ca1b70310eecdba input=a9049054013a1b77]*/ +/*[clinic end generated code: output=f2a3321b32b0637c input=a9049054013a1b77]*/ diff --git a/Modules/clinic/socketmodule.c.h b/Modules/clinic/socketmodule.c.h index dab2b6dc45cef6..8ff1044d013b0f 100644 --- a/Modules/clinic/socketmodule.c.h +++ b/Modules/clinic/socketmodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + static int sock_initobj_impl(PySocketSockObject *self, int family, int type, int proto, PyObject *fdobj); @@ -10,8 +16,31 @@ static int sock_initobj(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 4 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(family), &_Py_ID(type), &_Py_ID(proto), &_Py_ID(fileno), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"family", "type", "proto", "fileno", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "socket", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "socket", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[4]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -62,4 +91,4 @@ sock_initobj(PyObject *self, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=2433d6ac51bc962a input=a9049054013a1b77]*/ +/*[clinic end generated code: output=987155ac4b48a198 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/spwdmodule.c.h b/Modules/clinic/spwdmodule.c.h index 411d2344e18fba..f47aa9a77f3f86 100644 --- a/Modules/clinic/spwdmodule.c.h +++ b/Modules/clinic/spwdmodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + #if defined(HAVE_GETSPNAM) PyDoc_STRVAR(spwd_getspnam__doc__, @@ -71,4 +77,4 @@ spwd_getspall(PyObject *module, PyObject *Py_UNUSED(ignored)) #ifndef SPWD_GETSPALL_METHODDEF #define SPWD_GETSPALL_METHODDEF #endif /* !defined(SPWD_GETSPALL_METHODDEF) */ -/*[clinic end generated code: output=eec8d0bedcd312e5 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=dd61827a7b708e11 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/symtablemodule.c.h b/Modules/clinic/symtablemodule.c.h index 2cd08f81782007..04fdb9f2d9b776 100644 --- a/Modules/clinic/symtablemodule.c.h +++ b/Modules/clinic/symtablemodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_symtable_symtable__doc__, "symtable($module, source, filename, startstr, /)\n" "--\n" @@ -48,4 +54,4 @@ _symtable_symtable(PyObject *module, PyObject *const *args, Py_ssize_t nargs) exit: return return_value; } -/*[clinic end generated code: output=3f7ccf535d750238 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=07716ddbd6c7efe1 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/termios.c.h b/Modules/clinic/termios.c.h index 29858fe8d05ea1..78863e53c42ffb 100644 --- a/Modules/clinic/termios.c.h +++ b/Modules/clinic/termios.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(termios_tcgetattr__doc__, "tcgetattr($module, fd, /)\n" "--\n" @@ -286,4 +292,4 @@ termios_tcsetwinsize(PyObject *module, PyObject *const *args, Py_ssize_t nargs) exit: return return_value; } -/*[clinic end generated code: output=ef9ab888876fac17 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=d286a3906a051869 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/unicodedata.c.h b/Modules/clinic/unicodedata.c.h index 835a776fe172f7..6102027d07abda 100644 --- a/Modules/clinic/unicodedata.c.h +++ b/Modules/clinic/unicodedata.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(unicodedata_UCD_decimal__doc__, "decimal($self, chr, default=<unrepresentable>, /)\n" "--\n" @@ -559,4 +565,4 @@ unicodedata_UCD_lookup(PyObject *self, PyObject *arg) exit: return return_value; } -/*[clinic end generated code: output=78d7a7ae57014502 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=aaf601d28b352353 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/zlibmodule.c.h b/Modules/clinic/zlibmodule.c.h index ad6a7d470c5e5e..a04b954a57f353 100644 --- a/Modules/clinic/zlibmodule.c.h +++ b/Modules/clinic/zlibmodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(zlib_compress__doc__, "compress($module, data, /, level=Z_DEFAULT_COMPRESSION, wbits=MAX_WBITS)\n" "--\n" @@ -25,8 +31,31 @@ static PyObject * zlib_compress(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(level), &_Py_ID(wbits), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "level", "wbits", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "compress", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "compress", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer data = {NULL, NULL}; @@ -96,8 +125,31 @@ static PyObject * zlib_decompress(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(wbits), &_Py_ID(bufsize), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "wbits", "bufsize", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "decompress", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "decompress", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer data = {NULL, NULL}; @@ -192,8 +244,31 @@ static PyObject * zlib_compressobj(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 6 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(level), &_Py_ID(method), &_Py_ID(wbits), &_Py_ID(memLevel), &_Py_ID(strategy), &_Py_ID(zdict), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"level", "method", "wbits", "memLevel", "strategy", "zdict", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "compressobj", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "compressobj", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[6]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int level = Z_DEFAULT_COMPRESSION; @@ -296,8 +371,31 @@ static PyObject * zlib_decompressobj(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(wbits), &_Py_ID(zdict), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"wbits", "zdict", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "decompressobj", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "decompressobj", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int wbits = MAX_WBITS; @@ -351,8 +449,19 @@ static PyObject * zlib_Compress_compress(compobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) + #else + # define KWTUPLE NULL + #endif + static const char * const _keywords[] = {"", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "compress", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "compress", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_buffer data = {NULL, NULL}; @@ -406,8 +515,31 @@ static PyObject * zlib_Decompress_decompress(compobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(max_length), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "max_length", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "decompress", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "decompress", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer data = {NULL, NULL}; @@ -473,8 +605,19 @@ static PyObject * zlib_Compress_flush(compobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) + #else + # define KWTUPLE NULL + #endif + static const char * const _keywords[] = {"", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "flush", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "flush", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; int mode = Z_FINISH; @@ -565,8 +708,19 @@ static PyObject * zlib_Compress___deepcopy__(compobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) + #else + # define KWTUPLE NULL + #endif + static const char * const _keywords[] = {"", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "__deepcopy__", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "__deepcopy__", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject *memo; @@ -652,8 +806,19 @@ static PyObject * zlib_Decompress___deepcopy__(compobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) + #else + # define KWTUPLE NULL + #endif + static const char * const _keywords[] = {"", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "__deepcopy__", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "__deepcopy__", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject *memo; @@ -690,8 +855,19 @@ static PyObject * zlib_Decompress_flush(compobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) + #else + # define KWTUPLE NULL + #endif + static const char * const _keywords[] = {"", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "flush", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "flush", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_ssize_t length = DEF_BUF_SIZE; @@ -855,4 +1031,4 @@ zlib_crc32(PyObject *module, PyObject *const *args, Py_ssize_t nargs) #ifndef ZLIB_DECOMPRESS___DEEPCOPY___METHODDEF #define ZLIB_DECOMPRESS___DEEPCOPY___METHODDEF #endif /* !defined(ZLIB_DECOMPRESS___DEEPCOPY___METHODDEF) */ -/*[clinic end generated code: output=757804b3ad33454f input=a9049054013a1b77]*/ +/*[clinic end generated code: output=9e5f9911d0c273e1 input=a9049054013a1b77]*/ diff --git a/Modules/errnomodule.c b/Modules/errnomodule.c index bf6766e02349c0..4de4144520aa48 100644 --- a/Modules/errnomodule.c +++ b/Modules/errnomodule.c @@ -280,6 +280,10 @@ errno_exec(PyObject *module) #ifdef ENOANO add_errcode("ENOANO", ENOANO, "No anode"); #endif +#if defined(__wasi__) && !defined(ESHUTDOWN) + // WASI SDK 16 does not have ESHUTDOWN, shutdown results in EPIPE. + #define ESHUTDOWN EPIPE +#endif #ifdef ESHUTDOWN add_errcode("ESHUTDOWN", ESHUTDOWN, "Cannot send after transport endpoint shutdown"); #else @@ -923,6 +927,10 @@ errno_exec(PyObject *module) #ifdef EQFULL add_errcode("EQFULL", EQFULL, "Interface output queue is full"); #endif +#ifdef ENOTCAPABLE + // WASI extension + add_errcode("ENOTCAPABLE", ENOTCAPABLE, "Capabilities insufficient"); +#endif Py_DECREF(error_dict); return 0; diff --git a/Modules/faulthandler.c b/Modules/faulthandler.c index 08c40834c45f20..8b5cf276afc1dc 100644 --- a/Modules/faulthandler.c +++ b/Modules/faulthandler.c @@ -5,8 +5,6 @@ #include "pycore_signal.h" // Py_NSIG #include "pycore_traceback.h" // _Py_DumpTracebackThreads -#include "frameobject.h" - #include <object.h> #include <signal.h> #include <signal.h> @@ -864,7 +862,7 @@ faulthandler_user(int signum) errno = save_errno; } #else - if (user->chain) { + if (user->chain && user->previous != NULL) { errno = save_errno; /* call the previous signal handler */ user->previous(signum); @@ -1340,13 +1338,13 @@ PyInit_faulthandler(void) static int faulthandler_init_enable(void) { - PyObject *module = PyImport_ImportModule("faulthandler"); - if (module == NULL) { + PyObject *enable = _PyImport_GetModuleAttrString("faulthandler", "enable"); + if (enable == NULL) { return -1; } - PyObject *res = PyObject_CallMethodNoArgs(module, &_Py_ID(enable)); - Py_DECREF(module); + PyObject *res = PyObject_CallNoArgs(enable); + Py_DECREF(enable); if (res == NULL) { return -1; } diff --git a/Modules/fcntlmodule.c b/Modules/fcntlmodule.c index ea9b2bc14a9f24..9a8ec8dc9858d7 100644 --- a/Modules/fcntlmodule.c +++ b/Modules/fcntlmodule.c @@ -8,6 +8,9 @@ #ifdef HAVE_SYS_FILE_H #include <sys/file.h> #endif +#ifdef HAVE_LINUX_FS_H +#include <linux/fs.h> +#endif #include <sys/ioctl.h> #include <fcntl.h> @@ -572,6 +575,12 @@ all_ins(PyObject* m) #ifdef F_GETPIPE_SZ if (PyModule_AddIntMacro(m, F_GETPIPE_SZ)) return -1; #endif +#ifdef FICLONE + if (PyModule_AddIntMacro(m, FICLONE)) return -1; +#endif +#ifdef FICLONERANGE + if (PyModule_AddIntMacro(m, FICLONERANGE)) return -1; +#endif /* OS X specifics */ #ifdef F_FULLFSYNC diff --git a/Modules/gc_weakref.txt b/Modules/gc_weakref.txt index 6d07cce1236431..f53fb99dd6cdcb 100644 --- a/Modules/gc_weakref.txt +++ b/Modules/gc_weakref.txt @@ -47,7 +47,7 @@ soon as we execute Python code, threads other than the gc thread can run too, and they can do ordinary things with weakrefs that end up resurrecting CT while gc is running. - https://www.python.org/sf/1055820 + https://bugs.python.org/issue1055820 shows how innocent it can be, and also how nasty. Variants of the three focused test cases attached to that bug report are now part of Python's diff --git a/Modules/gcmodule.c b/Modules/gcmodule.c index 45dad8f0824df8..97cb6e6e1efb1f 100644 --- a/Modules/gcmodule.c +++ b/Modules/gcmodule.c @@ -794,9 +794,12 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old) if (! _PyType_SUPPORTS_WEAKREFS(Py_TYPE(op))) continue; - /* It supports weakrefs. Does it have any? */ - wrlist = (PyWeakReference **) - _PyObject_GET_WEAKREFS_LISTPTR(op); + /* It supports weakrefs. Does it have any? + * + * This is never triggered for static types so we can avoid the + * (slightly) more costly _PyObject_GET_WEAKREFS_LISTPTR(). + */ + wrlist = _PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET(op); /* `op` may have some weakrefs. March over the list, clear * all the weakrefs, and move the weakrefs with callbacks @@ -1195,14 +1198,6 @@ gc_collect_main(PyThreadState *tstate, int generation, assert(gcstate->garbage != NULL); assert(!_PyErr_Occurred(tstate)); -#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS - if (tstate->interp->config._isolated_interpreter) { - // bpo-40533: The garbage collector must not be run on parallel on - // Python objects shared by multiple interpreters. - return 0; - } -#endif - if (gcstate->debug & DEBUG_STATS) { PySys_WriteStderr("gc: collecting generation %d...\n", generation); show_stats_each_generations(gcstate); @@ -2355,6 +2350,13 @@ PyObject_GC_Del(void *op) size_t presize = _PyType_PreHeaderSize(((PyObject *)op)->ob_type); PyGC_Head *g = AS_GC(op); if (_PyObject_GC_IS_TRACKED(op)) { +#ifdef Py_DEBUG + if (PyErr_WarnExplicitFormat(PyExc_ResourceWarning, "gc", 0, + "gc", NULL, "Object of type %s is not untracked before destruction", + ((PyObject*)op)->ob_type->tp_name)) { + PyErr_WriteUnraisable(NULL); + } +#endif gc_list_remove(g); } GCState *gcstate = get_gc_state(); diff --git a/Modules/getaddrinfo.c b/Modules/getaddrinfo.c index 5aaa6e7c8144f7..0b4620ed683de9 100644 --- a/Modules/getaddrinfo.c +++ b/Modules/getaddrinfo.c @@ -61,6 +61,9 @@ # define FAITH #endif +#ifdef HAVE_NETDB_H +#define HAVE_GETADDRINFO 1 + #define SUCCESS 0 #define GAI_ANY 0 #define YES 1 @@ -636,3 +639,5 @@ get_addr(hostname, af, res, pai, port0) *res = NULL; return error; } + +#endif // HAVE_NETDB_H diff --git a/Modules/getnameinfo.c b/Modules/getnameinfo.c index f014c11ae157e4..335021f79bafea 100644 --- a/Modules/getnameinfo.c +++ b/Modules/getnameinfo.c @@ -48,6 +48,9 @@ #include "addrinfo.h" #endif +#ifdef HAVE_NETDB_H +#define HAVE_GETNAMEINFO 1 + #define SUCCESS 0 #define YES 1 #define NO 0 @@ -104,8 +107,8 @@ getnameinfo(sa, salen, host, hostlen, serv, servlen, flags) u_long v4a; #ifdef ENABLE_IPV6 u_char pfx; -#endif int h_error; +#endif char numserv[512]; char numaddr[512]; @@ -181,7 +184,6 @@ getnameinfo(sa, salen, host, hostlen, serv, servlen, flags) hp = getipnodebyaddr(addr, gni_afd->a_addrlen, gni_afd->a_af, &h_error); #else hp = gethostbyaddr(addr, gni_afd->a_addrlen, gni_afd->a_af); - h_error = h_errno; #endif if (hp) { @@ -212,3 +214,4 @@ getnameinfo(sa, salen, host, hostlen, serv, servlen, flags) } return SUCCESS; } +#endif // HAVE_NETDB_H diff --git a/Modules/getpath.py b/Modules/getpath.py index 47f075caf5551b..e3558bc49e389f 100644 --- a/Modules/getpath.py +++ b/Modules/getpath.py @@ -351,11 +351,11 @@ def search_up(prefix, *landmarks, test=isfile): try: # Read pyvenv.cfg from one level above executable pyvenvcfg = readlines(joinpath(venv_prefix, VENV_LANDMARK)) - except FileNotFoundError: + except (FileNotFoundError, PermissionError): # Try the same directory as executable pyvenvcfg = readlines(joinpath(venv_prefix2, VENV_LANDMARK)) venv_prefix = venv_prefix2 - except FileNotFoundError: + except (FileNotFoundError, PermissionError): venv_prefix = None pyvenvcfg = [] @@ -422,7 +422,7 @@ def search_up(prefix, *landmarks, test=isfile): # ****************************************************************************** # The contents of an optional ._pth file are used to totally override -# sys.path calcualation. Its presence also implies isolated mode and +# sys.path calculation. Its presence also implies isolated mode and # no-site (unless explicitly requested) pth = None pth_dir = None @@ -461,7 +461,8 @@ def search_up(prefix, *landmarks, test=isfile): build_prefix = None -if not home_was_set and real_executable_dir and not py_setpath: +if ((not home_was_set and real_executable_dir and not py_setpath) + or config.get('_is_python_build', 0) > 0): # Detect a build marker and use it to infer prefix, exec_prefix, # stdlib_dir and the platstdlib_dir directories. try: @@ -474,7 +475,7 @@ def search_up(prefix, *landmarks, test=isfile): # File exists but is empty platstdlib_dir = real_executable_dir build_prefix = joinpath(real_executable_dir, VPATH) - except FileNotFoundError: + except (FileNotFoundError, PermissionError): if isfile(joinpath(real_executable_dir, BUILD_LANDMARK)): build_prefix = joinpath(real_executable_dir, VPATH) if os_name == 'nt': diff --git a/Modules/main.c b/Modules/main.c index cca669bdbf4b84..aa523fc58d93fb 100644 --- a/Modules/main.c +++ b/Modules/main.c @@ -479,12 +479,23 @@ pymain_run_interactive_hook(int *exitcode) } +static void +pymain_set_inspect(PyConfig *config, int inspect) +{ + config->inspect = inspect; +_Py_COMP_DIAG_PUSH +_Py_COMP_DIAG_IGNORE_DEPR_DECLS + Py_InspectFlag = inspect; +_Py_COMP_DIAG_POP +} + + static int pymain_run_stdin(PyConfig *config) { if (stdin_is_interactive(config)) { - config->inspect = 0; - Py_InspectFlag = 0; /* do exit on SystemExit */ + // do exit on SystemExit + pymain_set_inspect(config, 0); int exitcode; if (pymain_run_startup(config, &exitcode)) { @@ -517,16 +528,14 @@ pymain_repl(PyConfig *config, int *exitcode) /* Check this environment variable at the end, to give programs the opportunity to set it from Python. */ if (!config->inspect && _Py_GetEnv(config->use_environment, "PYTHONINSPECT")) { - config->inspect = 1; - Py_InspectFlag = 1; + pymain_set_inspect(config, 1); } if (!(config->inspect && stdin_is_interactive(config) && config_run_code(config))) { return; } - config->inspect = 0; - Py_InspectFlag = 0; + pymain_set_inspect(config, 0); if (pymain_run_interactive_hook(exitcode)) { return; } @@ -640,7 +649,7 @@ exit_sigint(void) * SIG_DFL handler for SIGINT if KeyboardInterrupt went unhandled. * If we don't, a calling process such as a shell may not know * about the user's ^C. https://www.cons.org/cracauer/sigint.html */ -#if defined(HAVE_GETPID) && !defined(MS_WINDOWS) +#if defined(HAVE_GETPID) && defined(HAVE_KILL) && !defined(MS_WINDOWS) if (PyOS_setsig(SIGINT, SIG_DFL) == SIG_ERR) { perror("signal"); /* Impossible in normal environments. */ } else { diff --git a/Modules/makesetup b/Modules/makesetup index 9b20e3c9f63442..5c275ac9a04945 100755 --- a/Modules/makesetup +++ b/Modules/makesetup @@ -1,4 +1,5 @@ #! /bin/sh +set -e # Convert templates into Makefile and config.c, based on the module # definitions found in the file Setup. @@ -259,13 +260,14 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' | \$*) ;; *) src='$(srcdir)/'"$srcdir/$src";; esac + # custom flags first, PY_STDMODULE_CFLAGS may contain -I with system libmpdec case $doconfig in - no) cc="$cc \$(CCSHARED) \$(PY_CFLAGS_NODIST) \$(PY_CPPFLAGS)";; + no) cc="$cc $cpps \$(PY_STDMODULE_CFLAGS) \$(CCSHARED)";; *) - cc="$cc \$(PY_BUILTIN_MODULE_CFLAGS)";; + cc="$cc $cpps \$(PY_BUILTIN_MODULE_CFLAGS)";; esac # force rebuild when header file or module build flavor (static/shared) is changed - rule="$obj: $src \$(MODULE_${mods_upper}_DEPS) \$(PYTHON_HEADERS) Modules/config.c; $cc $cpps -c $src -o $obj" + rule="$obj: $src \$(MODULE_${mods_upper}_DEPS) \$(MODULE_DEPS); $cc -c $src -o $obj" echo "$rule" >>$rulesf done case $doconfig in @@ -322,8 +324,13 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' | case $makepre in -) ;; - *) sedf="@sed.in.$$" - trap 'rm -f $sedf' 0 1 2 3 + *) + # macOS' sed has issues with 'a' command. Use 'r' command with an + # external replacement file instead. + sedf="@sed.in.$$" + sedr="@sed.replace.$$" + trap 'rm -f $sedf $sedr' 0 1 2 3 + echo "$NL$NL$DEFS" | sed 's/\\$//' > $sedr echo "1i\\" >$sedf str="# Generated automatically from $makepre by makesetup." echo "$str" >>$sedf @@ -332,10 +339,10 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' | echo "s%_MODDISABLED_NAMES_%$DISABLED%" >>$sedf echo "s%_MODOBJS_%$OBJS%" >>$sedf echo "s%_MODLIBS_%$LIBS%" >>$sedf - echo "/Definitions added by makesetup/a$NL$NL$DEFS" >>$sedf + echo "/Definitions added by makesetup/r $sedr" >>$sedf sed -f $sedf $makepre >Makefile cat $rulesf >>Makefile - rm -f $sedf + rm -f $sedf $sedr ;; esac diff --git a/Modules/mathmodule.c b/Modules/mathmodule.c index aa93e756c606ba..48625c8c18d70e 100644 --- a/Modules/mathmodule.c +++ b/Modules/mathmodule.c @@ -55,13 +55,14 @@ raised for division by zero and mod by zero. #ifndef Py_BUILD_CORE_BUILTIN # define Py_BUILD_CORE_MODULE 1 #endif -#define NEEDS_PY_IDENTIFIER #include "Python.h" #include "pycore_bitutils.h" // _Py_bit_length() #include "pycore_call.h" // _PyObject_CallNoArgs() #include "pycore_dtoa.h" // _Py_dg_infinity() #include "pycore_long.h" // _PyLong_GetZero() +#include "pycore_moduleobject.h" // _PyModule_GetState() +#include "pycore_object.h" // _PyObject_LookupSpecial() #include "pycore_pymath.h" // _PY_SHORT_FLOAT_REPR /* For DBL_EPSILON in _math.h */ #include <float.h> @@ -76,6 +77,20 @@ module math /*[clinic end generated code: output=da39a3ee5e6b4b0d input=76bc7002685dd942]*/ +typedef struct { + PyObject *str___ceil__; + PyObject *str___floor__; + PyObject *str___trunc__; +} math_module_state; + +static inline math_module_state* +get_math_module_state(PyObject *module) +{ + void *state = _PyModule_GetState(module); + assert(state != NULL); + return (math_module_state *)state; +} + /* 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 @@ -1215,10 +1230,10 @@ static PyObject * math_ceil(PyObject *module, PyObject *number) /*[clinic end generated code: output=6c3b8a78bc201c67 input=2725352806399cab]*/ { - _Py_IDENTIFIER(__ceil__); if (!PyFloat_CheckExact(number)) { - PyObject *method = _PyObject_LookupSpecialId(number, &PyId___ceil__); + math_module_state *state = get_math_module_state(module); + PyObject *method = _PyObject_LookupSpecial(number, state->str___ceil__); if (method != NULL) { PyObject *result = _PyObject_CallNoArgs(method); Py_DECREF(method); @@ -1283,14 +1298,13 @@ math_floor(PyObject *module, PyObject *number) { double x; - _Py_IDENTIFIER(__floor__); - if (PyFloat_CheckExact(number)) { x = PyFloat_AS_DOUBLE(number); } else { - PyObject *method = _PyObject_LookupSpecialId(number, &PyId___floor__); + math_module_state *state = get_math_module_state(module); + PyObject *method = _PyObject_LookupSpecial(number, state->str___floor__); if (method != NULL) { PyObject *result = _PyObject_CallNoArgs(method); Py_DECREF(method); @@ -2156,7 +2170,6 @@ static PyObject * math_trunc(PyObject *module, PyObject *x) /*[clinic end generated code: output=34b9697b707e1031 input=2168b34e0a09134d]*/ { - _Py_IDENTIFIER(__trunc__); PyObject *trunc, *result; if (PyFloat_CheckExact(x)) { @@ -2168,7 +2181,8 @@ math_trunc(PyObject *module, PyObject *x) return NULL; } - trunc = _PyObject_LookupSpecialId(x, &PyId___trunc__); + math_module_state *state = get_math_module_state(module); + trunc = _PyObject_LookupSpecial(x, state->str___trunc__); if (trunc == NULL) { if (!PyErr_Occurred()) PyErr_Format(PyExc_TypeError, @@ -2312,7 +2326,7 @@ math_modf_impl(PyObject *module, double x) in that int is larger than PY_SSIZE_T_MAX. */ static PyObject* -loghelper(PyObject* arg, double (*func)(double), const char *funcname) +loghelper(PyObject* arg, double (*func)(double)) { /* If it is int, do it ourselves. */ if (PyLong_Check(arg)) { @@ -2372,11 +2386,11 @@ math_log_impl(PyObject *module, PyObject *x, int group_right_1, PyObject *num, *den; PyObject *ans; - num = loghelper(x, m_log, "log"); + num = loghelper(x, m_log); if (num == NULL || base == NULL) return num; - den = loghelper(base, m_log, "log"); + den = loghelper(base, m_log); if (den == NULL) { Py_DECREF(num); return NULL; @@ -2402,7 +2416,7 @@ static PyObject * math_log2(PyObject *module, PyObject *x) /*[clinic end generated code: output=5425899a4d5d6acb input=08321262bae4f39b]*/ { - return loghelper(x, m_log2, "log2"); + return loghelper(x, m_log2); } @@ -2419,7 +2433,7 @@ static PyObject * math_log10(PyObject *module, PyObject *x) /*[clinic end generated code: output=be72a64617df9c6f input=b2469d02c6469e53]*/ { - return loghelper(x, m_log10, "log10"); + return loghelper(x, m_log10); } @@ -3825,6 +3839,20 @@ math_ulp_impl(PyObject *module, double x) static int math_exec(PyObject *module) { + + math_module_state *state = get_math_module_state(module); + state->str___ceil__ = PyUnicode_InternFromString("__ceil__"); + if (state->str___ceil__ == NULL) { + return -1; + } + state->str___floor__ = PyUnicode_InternFromString("__floor__"); + if (state->str___floor__ == NULL) { + return -1; + } + state->str___trunc__ = PyUnicode_InternFromString("__trunc__"); + if (state->str___trunc__ == NULL) { + return -1; + } if (PyModule_AddObject(module, "pi", PyFloat_FromDouble(Py_MATH_PI)) < 0) { return -1; } @@ -3846,6 +3874,22 @@ math_exec(PyObject *module) return 0; } +static int +math_clear(PyObject *module) +{ + math_module_state *state = get_math_module_state(module); + Py_CLEAR(state->str___ceil__); + Py_CLEAR(state->str___floor__); + Py_CLEAR(state->str___trunc__); + return 0; +} + +static void +math_free(void *module) +{ + math_clear((PyObject *)module); +} + static PyMethodDef math_methods[] = { {"acos", math_acos, METH_O, math_acos_doc}, {"acosh", math_acosh, METH_O, math_acosh_doc}, @@ -3918,9 +3962,11 @@ static struct PyModuleDef mathmodule = { PyModuleDef_HEAD_INIT, .m_name = "math", .m_doc = module_doc, - .m_size = 0, + .m_size = sizeof(math_module_state), .m_methods = math_methods, .m_slots = math_slots, + .m_clear = math_clear, + .m_free = math_free, }; PyMODINIT_FUNC diff --git a/Modules/mmapmodule.c b/Modules/mmapmodule.c index ec36465728c3a6..5c05aa738ef564 100644 --- a/Modules/mmapmodule.c +++ b/Modules/mmapmodule.c @@ -120,18 +120,6 @@ typedef struct { access_mode access; } mmap_object; -typedef struct { - PyTypeObject *mmap_object_type; -} mmap_state; - -static mmap_state * -get_mmap_state(PyObject *module) -{ - mmap_state *state = PyModule_GetState(module); - assert(state); - return state; -} - static int mmap_object_traverse(mmap_object *m_obj, visitproc visit, void *arg) { @@ -1555,46 +1543,23 @@ new_mmap_object(PyTypeObject *type, PyObject *args, PyObject *kwdict) } #endif /* MS_WINDOWS */ -static int -mmap_traverse(PyObject *module, visitproc visit, void *arg) -{ - mmap_state *state = get_mmap_state(module); - Py_VISIT(state->mmap_object_type); - return 0; -} - -static int -mmap_clear(PyObject *module) -{ - mmap_state *state = get_mmap_state(module); - Py_CLEAR(state->mmap_object_type); - return 0; -} - -static void -mmap_free(void *module) -{ - mmap_clear((PyObject *)module); -} - static int mmap_exec(PyObject *module) { - mmap_state *state = get_mmap_state(module); - Py_INCREF(PyExc_OSError); if (PyModule_AddObject(module, "error", PyExc_OSError) < 0) { Py_DECREF(PyExc_OSError); return -1; } - state->mmap_object_type = (PyTypeObject *)PyType_FromModuleAndSpec(module, - &mmap_object_spec, - NULL); - if (state->mmap_object_type == NULL) { + PyObject *mmap_object_type = PyType_FromModuleAndSpec(module, + &mmap_object_spec, NULL); + if (mmap_object_type == NULL) { return -1; } - if (PyModule_AddType(module, state->mmap_object_type) < 0) { + int rc = PyModule_AddType(module, (PyTypeObject *)mmap_object_type); + Py_DECREF(mmap_object_type); + if (rc < 0) { return -1; } @@ -1744,13 +1709,10 @@ static PyModuleDef_Slot mmap_slots[] = { }; static struct PyModuleDef mmapmodule = { - PyModuleDef_HEAD_INIT, + .m_base = PyModuleDef_HEAD_INIT, .m_name = "mmap", - .m_size = sizeof(mmap_state), + .m_size = 0, .m_slots = mmap_slots, - .m_traverse = mmap_traverse, - .m_clear = mmap_clear, - .m_free = mmap_free, }; PyMODINIT_FUNC diff --git a/Modules/overlapped.c b/Modules/overlapped.c index e40a52476bd19a..369b1beae84e3f 100644 --- a/Modules/overlapped.c +++ b/Modules/overlapped.c @@ -32,27 +32,41 @@ #define T_HANDLE T_POINTER /*[python input] -class OVERLAPPED_converter(CConverter): - type = 'OVERLAPPED *' +class pointer_converter(CConverter): format_unit = '"F_POINTER"' -class HANDLE_converter(CConverter): + def parse_arg(self, argname, displayname): + return """ + {paramname} = PyLong_AsVoidPtr({argname}); + if (!{paramname} && PyErr_Occurred()) {{{{ + goto exit; + }}}} + """.format(argname=argname, paramname=self.parser_name) + +class OVERLAPPED_converter(pointer_converter): + type = 'OVERLAPPED *' + +class HANDLE_converter(pointer_converter): type = 'HANDLE' - format_unit = '"F_HANDLE"' -class ULONG_PTR_converter(CConverter): +class ULONG_PTR_converter(pointer_converter): type = 'ULONG_PTR' - format_unit = '"F_ULONG_PTR"' -class DWORD_converter(CConverter): + def parse_arg(self, argname, displayname): + return """ + {paramname} = (uintptr_t)PyLong_AsVoidPtr({argname}); + if (!{paramname} && PyErr_Occurred()) {{{{ + goto exit; + }}}} + """.format(argname=argname, paramname=self.parser_name) + +class DWORD_converter(unsigned_long_converter): type = 'DWORD' - format_unit = 'k' -class BOOL_converter(CConverter): +class BOOL_converter(int_converter): type = 'BOOL' - format_unit = 'i' [python start generated code]*/ -/*[python end generated code: output=da39a3ee5e6b4b0d input=83bb8c2c2514f2a8]*/ +/*[python end generated code: output=da39a3ee5e6b4b0d input=8a07ea3018f4cec8]*/ /*[clinic input] module _overlapped @@ -105,18 +119,6 @@ typedef struct { }; } OverlappedObject; -typedef struct { - PyTypeObject *overlapped_type; -} OverlappedState; - -static inline OverlappedState* -overlapped_get_state(PyObject *module) -{ - void *state = PyModule_GetState(module); - assert(state != NULL); - return (OverlappedState *)state; -} - static inline void steal_buffer(Py_buffer * dst, Py_buffer * src) @@ -1996,28 +1998,6 @@ static PyMethodDef overlapped_functions[] = { {NULL} }; -static int -overlapped_traverse(PyObject *module, visitproc visit, void *arg) -{ - OverlappedState *state = overlapped_get_state(module); - Py_VISIT(state->overlapped_type); - return 0; -} - -static int -overlapped_clear(PyObject *module) -{ - OverlappedState *state = overlapped_get_state(module); - Py_CLEAR(state->overlapped_type); - return 0; -} - -static void -overlapped_free(void *module) -{ - overlapped_clear((PyObject *)module); -} - #define WINAPI_CONSTANT(fmt, con) \ do { \ PyObject *value = Py_BuildValue(fmt, con); \ @@ -2045,14 +2025,15 @@ overlapped_exec(PyObject *module) return -1; } - OverlappedState *st = overlapped_get_state(module); - st->overlapped_type = (PyTypeObject *)PyType_FromModuleAndSpec( + PyTypeObject *overlapped_type = (PyTypeObject *)PyType_FromModuleAndSpec( module, &overlapped_type_spec, NULL); - if (st->overlapped_type == NULL) { + if (overlapped_type == NULL) { return -1; } - if (PyModule_AddType(module, st->overlapped_type) < 0) { + int rc = PyModule_AddType(module, overlapped_type); + Py_DECREF(overlapped_type); + if (rc < 0) { return -1; } @@ -2077,14 +2058,10 @@ static PyModuleDef_Slot overlapped_slots[] = { }; static struct PyModuleDef overlapped_module = { - PyModuleDef_HEAD_INIT, + .m_base = PyModuleDef_HEAD_INIT, .m_name = "_overlapped", - .m_size = sizeof(OverlappedState), .m_methods = overlapped_functions, .m_slots = overlapped_slots, - .m_traverse = overlapped_traverse, - .m_clear = overlapped_clear, - .m_free = overlapped_free }; PyMODINIT_FUNC diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index 0a72aca8d51fa2..3810bc87c1fbab 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -606,6 +606,11 @@ PyOS_AfterFork_Child(void) } assert(_PyThreadState_GET() == tstate); + status = _PyPerfTrampoline_AfterFork_Child(); + if (_PyStatus_EXCEPTION(status)) { + goto fatal_error; + } + run_at_forkers(tstate->interp->after_forkers_child, 0); return; @@ -3282,6 +3287,10 @@ os_chmod_impl(PyObject *module, path_t *path, int mode, int dir_fd, { #ifdef HAVE_CHMOD result = chmod(path->narrow, mode); +#elif defined(__wasi__) + // WASI SDK 15.0 does not support chmod. + // Ignore missing syscall for now. + result = 0; #else result = -1; errno = ENOSYS; @@ -8275,11 +8284,7 @@ wait_helper(PyObject *module, pid_t pid, int status, struct rusage *ru) memset(ru, 0, sizeof(*ru)); } - PyObject *m = PyImport_ImportModule("resource"); - if (m == NULL) - return NULL; - struct_rusage = PyObject_GetAttr(m, get_posix_state(module)->struct_rusage); - Py_DECREF(m); + struct_rusage = _PyImport_GetModuleAttrString("resource", "struct_rusage"); if (struct_rusage == NULL) return NULL; @@ -9316,7 +9321,9 @@ os_dup_impl(PyObject *module, int fd) return _Py_dup(fd); } - +// dup2() is either provided by libc or dup2.c with AC_REPLACE_FUNCS(). +// dup2.c provides working dup2() if and only if F_DUPFD is available. +#if (defined(HAVE_DUP3) || defined(F_DUPFD) || defined(MS_WINDOWS)) /*[clinic input] os.dup2 -> int fd: int @@ -9416,6 +9423,7 @@ os_dup2_impl(PyObject *module, int fd, int fd2, int inheritable) return res; } +#endif #ifdef HAVE_LOCKF @@ -13104,7 +13112,7 @@ os_memfd_create_impl(PyObject *module, PyObject *name, unsigned int flags) } #endif -#ifdef HAVE_EVENTFD +#if defined(HAVE_EVENTFD) && defined(EFD_CLOEXEC) /*[clinic input] os.eventfd @@ -13175,7 +13183,7 @@ os_eventfd_write_impl(PyObject *module, int fd, unsigned long long value) } Py_RETURN_NONE; } -#endif /* HAVE_EVENTFD */ +#endif /* HAVE_EVENTFD && EFD_CLOEXEC */ /* Terminal size querying */ @@ -13244,24 +13252,11 @@ os_get_terminal_size_impl(PyObject *module, int fd) #ifdef TERMSIZE_USE_CONIO { - DWORD nhandle; HANDLE handle; CONSOLE_SCREEN_BUFFER_INFO csbi; - switch (fd) { - case 0: nhandle = STD_INPUT_HANDLE; - break; - case 1: nhandle = STD_OUTPUT_HANDLE; - break; - case 2: nhandle = STD_ERROR_HANDLE; - break; - default: - return PyErr_Format(PyExc_ValueError, "bad file descriptor"); - } - handle = GetStdHandle(nhandle); - if (handle == NULL) - return PyErr_Format(PyExc_OSError, "handle cannot be retrieved"); + handle = _Py_get_osfhandle(fd); if (handle == INVALID_HANDLE_VALUE) - return PyErr_SetFromWindowsErr(0); + return NULL; if (!GetConsoleScreenBufferInfo(handle, &csbi)) return PyErr_SetFromWindowsErr(0); @@ -15255,6 +15250,9 @@ all_ins(PyObject *m) #ifdef P_PIDFD if (PyModule_AddIntMacro(m, P_PIDFD)) return -1; #endif +#ifdef PIDFD_NONBLOCK + if (PyModule_AddIntMacro(m, PIDFD_NONBLOCK)) return -1; +#endif #endif #ifdef WEXITED if (PyModule_AddIntMacro(m, WEXITED)) return -1; @@ -15459,11 +15457,15 @@ all_ins(PyObject *m) #endif #endif /* HAVE_MEMFD_CREATE */ -#ifdef HAVE_EVENTFD +#if defined(HAVE_EVENTFD) && defined(EFD_CLOEXEC) if (PyModule_AddIntMacro(m, EFD_CLOEXEC)) return -1; +#ifdef EFD_NONBLOCK if (PyModule_AddIntMacro(m, EFD_NONBLOCK)) return -1; +#endif +#ifdef EFD_SEMAPHORE if (PyModule_AddIntMacro(m, EFD_SEMAPHORE)) return -1; #endif +#endif /* HAVE_EVENTFD && EFD_CLOEXEC */ #if defined(__APPLE__) if (PyModule_AddIntConstant(m, "_COPYFILE_DATA", COPYFILE_DATA)) return -1; diff --git a/Modules/pyexpat.c b/Modules/pyexpat.c index b8535dfe7115a1..165cb0effae2e4 100644 --- a/Modules/pyexpat.c +++ b/Modules/pyexpat.c @@ -2,7 +2,6 @@ #include <ctype.h> #include "structmember.h" // PyMemberDef -#include "frameobject.h" #include "expat.h" #include "pyexpat.h" @@ -776,7 +775,7 @@ readinst(char *buf, int buf_size, PyObject *meth) Py_ssize_t len; const char *ptr; - str = PyObject_CallFunction(meth, "n", buf_size); + str = PyObject_CallFunction(meth, "i", buf_size); if (str == NULL) goto error; diff --git a/Modules/resource.c b/Modules/resource.c index d8bba2e39847a1..a97fb870062b82 100644 --- a/Modules/resource.c +++ b/Modules/resource.c @@ -24,8 +24,16 @@ module resource class pid_t_converter(CConverter): type = 'pid_t' format_unit = '" _Py_PARSE_PID "' + + def parse_arg(self, argname, displayname): + return """ + {paramname} = PyLong_AsPid({argname}); + if ({paramname} == -1 && PyErr_Occurred()) {{{{ + goto exit; + }}}} + """.format(argname=argname, paramname=self.parser_name) [python start generated code]*/ -/*[python end generated code: output=da39a3ee5e6b4b0d input=0c1d19f640d57e48]*/ +/*[python end generated code: output=da39a3ee5e6b4b0d input=5af1c116d56cbb5a]*/ #include "clinic/resource.c.h" @@ -268,17 +276,15 @@ resource.prlimit pid: pid_t resource: int - [ - limits: object - ] + limits: object = None / [clinic start generated code]*/ static PyObject * resource_prlimit_impl(PyObject *module, pid_t pid, int resource, - int group_right_1, PyObject *limits) -/*[clinic end generated code: output=ee976b393187a7a3 input=b77743bdccc83564]*/ + PyObject *limits) +/*[clinic end generated code: output=6ebc49ff8c3a816e input=54bb69c9585e33bf]*/ { struct rlimit old_limit, new_limit; int retval; @@ -294,7 +300,7 @@ resource_prlimit_impl(PyObject *module, pid_t pid, int resource, return NULL; } - if (group_right_1) { + if (limits != Py_None) { if (py2rlimit(limits, &new_limit) < 0) { return NULL; } diff --git a/Modules/selectmodule.c b/Modules/selectmodule.c index 5c36eaaedeb70b..4eea928a2683ae 100644 --- a/Modules/selectmodule.c +++ b/Modules/selectmodule.c @@ -63,6 +63,11 @@ extern void bzero(void *, int); # define SOCKET int #endif +// WASI SDK 16 does not have POLLPRIO, define as no-op +#if defined(__wasi__) && !defined(POLLPRI) +# define POLLPRI 0 +#endif + typedef struct { PyObject *close; PyTypeObject *poll_Type; diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c index dfb1f923cdccf9..0f30b4da036313 100644 --- a/Modules/signalmodule.c +++ b/Modules/signalmodule.c @@ -189,8 +189,8 @@ compare_handler(PyObject *func, PyObject *dfl_ign_handler) return PyObject_RichCompareBool(func, dfl_ign_handler, Py_EQ) == 1; } -#ifdef HAVE_GETITIMER -/* auxiliary functions for setitimer */ +#ifdef HAVE_SETITIMER +/* auxiliary function for setitimer */ static int timeval_from_double(PyObject *obj, struct timeval *tv) { @@ -206,7 +206,10 @@ timeval_from_double(PyObject *obj, struct timeval *tv) } return _PyTime_AsTimeval(t, tv, _PyTime_ROUND_CEILING); } +#endif +#if defined(HAVE_SETITIMER) || defined(HAVE_GETITIMER) +/* auxiliary functions for get/setitimer */ Py_LOCAL_INLINE(double) double_from_timeval(struct timeval *tv) { @@ -1829,6 +1832,9 @@ _PyErr_CheckSignalsTstate(PyThreadState *tstate) _Py_atomic_store(&is_tripped, 0); _PyInterpreterFrame *frame = tstate->cframe->current_frame; + while (frame && _PyFrame_IsIncomplete(frame)) { + frame = frame->previous; + } signal_state_t *state = &signal_global_state; for (int i = 1; i < Py_NSIG; i++) { if (!_Py_atomic_load_relaxed(&Handlers[i].tripped)) { diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c index 002762e2e41efc..869bacde924d83 100644 --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -227,7 +227,7 @@ shutdown(how) -- shut down traffic in one or both directions\n\ #define HAVE_INET_PTON #include <netdb.h> -#endif +#endif // __sgi /* Solaris fails to define this variable at all. */ #if (defined(__sun) && defined(__SVR4)) && !defined(INET_ADDRSTRLEN) @@ -256,7 +256,9 @@ shutdown(how) -- shut down traffic in one or both directions\n\ #ifndef MS_WINDOWS /* Non-MS WINDOWS includes */ -# include <netdb.h> +#ifdef HAVE_NETDB_H +# include <netdb.h> +#endif # include <unistd.h> /* Headers needed for inet_ntoa() and inet_addr() */ @@ -439,10 +441,11 @@ remove_unusable_flags(PyObject *m) #define freeaddrinfo fake_freeaddrinfo #include "getaddrinfo.c" #endif + #if !defined(HAVE_GETNAMEINFO) #define getnameinfo fake_getnameinfo #include "getnameinfo.c" -#endif +#endif // HAVE_GETNAMEINFO #ifdef MS_WINDOWS #define SOCKETCLOSE closesocket @@ -623,6 +626,7 @@ set_error(void) } +#if defined(HAVE_GETHOSTBYNAME_R) || defined (HAVE_GETHOSTBYNAME) || defined (HAVE_GETHOSTBYADDR) static PyObject * set_herror(int h_error) { @@ -640,8 +644,10 @@ set_herror(int h_error) return NULL; } +#endif +#ifdef HAVE_GETADDRINFO static PyObject * set_gaierror(int error) { @@ -665,6 +671,7 @@ set_gaierror(int error) return NULL; } +#endif /* Function to perform the setting of socket blocking mode internally. block = (1 | 0). */ @@ -1016,6 +1023,7 @@ init_sockobject(PySocketSockObject *s, } +#ifdef HAVE_SOCKETPAIR /* Create a new socket object. This just creates the object and initializes it. If the creation fails, return NULL and set an exception (implicit @@ -1035,6 +1043,7 @@ new_sockobject(SOCKET_T fd, int family, int type, int proto) } return s; } +#endif /* Lock to allow python interpreter to continue, but only allow one @@ -1044,6 +1053,7 @@ static PyThread_type_lock netdb_lock; #endif +#ifdef HAVE_GETADDRINFO /* Convert a string specifying a host name or one of a few symbolic names to a numeric IP address. This usually calls gethostbyname() to do the work; the names "" and "<broadcast>" are special. @@ -1200,7 +1210,7 @@ setipaddr(const char *name, struct sockaddr *addr_ret, size_t addr_ret_size, int return -1; } } - +#endif // HAVE_GETADDRINFO /* Convert IPv4 sockaddr to a Python str. */ @@ -1624,6 +1634,7 @@ makesockaddr(SOCKET_T sockfd, struct sockaddr *addr, size_t addrlen, int proto) } } +#if defined(HAVE_BIND) || defined(HAVE_CONNECTTO) || defined(CMSG_LEN) /* Helper for getsockaddrarg: bypass IDNA for ASCII-only host names (in particular, numeric IP addresses). */ struct maybe_idna { @@ -1722,8 +1733,10 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args, struct sockaddr_un* addr = &addrbuf->un; #ifdef __linux__ - if (path.len > 0 && *(const char *)path.buf == 0) { - /* Linux abstract namespace extension */ + if (path.len == 0 || *(const char *)path.buf == 0) { + /* Linux abstract namespace extension: + - Empty address auto-binding to an abstract address + - Address that starts with null byte */ if ((size_t)path.len > sizeof addr->sun_path) { PyErr_SetString(PyExc_OSError, "AF_UNIX path too long"); @@ -2486,6 +2499,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args, } } +#endif // defined(HAVE_BIND) || defined(HAVE_CONNECTTO) || defined(CMSG_LEN) /* Get the address length according to the socket object's address family. @@ -2783,6 +2797,7 @@ struct sock_accept { SOCKET_T result; }; +#if defined(HAVE_ACCEPT) || defined(HAVE_ACCEPT4) #if defined(HAVE_ACCEPT4) && defined(SOCK_CLOEXEC) /* accept4() is available on Linux 2.6.28+ and glibc 2.10 */ static int accept4_works = -1; @@ -2896,6 +2911,8 @@ PyDoc_STRVAR(accept_doc, Wait for an incoming connection. Return a new socket file descriptor\n\ representing the connection, and the address of the client.\n\ For IP sockets, the address info is a pair (hostaddr, port)."); +#endif // defined(HAVE_ACCEPT) || defined(HAVE_ACCEPT4) + /* s.setblocking(flag) method. Argument: False -- non-blocking mode; same as settimeout(0) @@ -3060,6 +3077,7 @@ Returns the timeout in seconds (float) associated with socket\n\ operations. A timeout of None indicates that timeouts on socket\n\ operations are disabled."); +#ifdef HAVE_SETSOCKOPT /* s.setsockopt() method. With an integer third argument, sets an integer optval with optlen=4. With None as third argument and an integer fourth argument, set @@ -3149,7 +3167,7 @@ setsockopt(level, option, None, optlen: int)\n\ Set a socket option. See the Unix manual for level and option.\n\ The value argument can either be an integer, a string buffer, or\n\ None, optlen."); - +#endif /* s.getsockopt() method. With two arguments, retrieves an integer option. @@ -3223,6 +3241,7 @@ If a nonzero buffersize argument is given, the return value is a\n\ string of that length; otherwise it is an integer."); +#ifdef HAVE_BIND /* s.bind(sockaddr) method */ static PyObject * @@ -3254,6 +3273,7 @@ PyDoc_STRVAR(bind_doc, Bind the socket to a local address. For IP sockets, the address is a\n\ pair (host, port); the host must refer to the local host. For raw packet\n\ sockets the address is a tuple (ifname, proto [,pkttype [,hatype [,addr]]])"); +#endif /* s.close() method. @@ -3306,6 +3326,7 @@ Close the socket object without closing the underlying file descriptor.\n\ The object cannot be used after this call, but the file descriptor\n\ can be reused for other purposes. The file descriptor is returned."); +#ifdef HAVE_CONNECT static int sock_connect_impl(PySocketSockObject *s, void* Py_UNUSED(data)) { @@ -3453,6 +3474,7 @@ PyDoc_STRVAR(connect_ex_doc, \n\ This is like connect(address), but returns an error code (the errno value)\n\ instead of raising an exception when an error occurs."); +#endif // HAVE_CONNECT /* s.fileno() method */ @@ -3469,6 +3491,7 @@ PyDoc_STRVAR(fileno_doc, Return the integer file descriptor of the socket."); +#ifdef HAVE_GETSOCKNAME /* s.getsockname() method */ static PyObject * @@ -3496,6 +3519,7 @@ PyDoc_STRVAR(getsockname_doc, Return the address of the local endpoint. The format depends on the\n\ address family. For IPv4 sockets, the address info is a pair\n\ (hostaddr, port)."); +#endif #ifdef HAVE_GETPEERNAME /* Cray APP doesn't have this :-( */ @@ -3529,6 +3553,7 @@ info is a pair (hostaddr, port)."); #endif /* HAVE_GETPEERNAME */ +#ifdef HAVE_LISTEN /* s.listen(n) method */ static PyObject * @@ -3561,6 +3586,7 @@ Enable a server to accept connections. If backlog is specified, it must be\n\ at least 0 (if it is lower, it is set to 0); it specifies the number of\n\ unaccepted connections that the system will allow before refusing new\n\ connections. If not specified, a default reasonable value is chosen."); +#endif struct sock_recv { char *cbuf; @@ -3737,6 +3763,7 @@ struct sock_recvfrom { Py_ssize_t result; }; +#ifdef HAVE_RECVFROM static int sock_recvfrom_impl(PySocketSockObject *s, void *data) { @@ -3909,6 +3936,7 @@ PyDoc_STRVAR(recvfrom_into_doc, "recvfrom_into(buffer[, nbytes[, flags]]) -> (nbytes, address info)\n\ \n\ Like recv_into(buffer[, nbytes[, flags]]) but also return the sender's address info."); +#endif /* The sendmsg() and recvmsg[_into]() methods require a working CMSG_LEN(). See the comment near get_CMSG_LEN(). */ @@ -4375,6 +4403,7 @@ until all data is sent. If an error occurs, it's impossible\n\ to tell how much data has been sent."); +#ifdef HAVE_SENDTO struct sock_sendto { char *buf; Py_ssize_t len; @@ -4467,6 +4496,7 @@ PyDoc_STRVAR(sendto_doc, \n\ Like send(data, flags) but allows specifying the destination address.\n\ For IP sockets, the address is a pair (hostaddr, port)."); +#endif /* The sendmsg() and recvmsg[_into]() methods require a working @@ -5030,16 +5060,22 @@ socket.fromshare()."); /* List of methods for socket objects */ static PyMethodDef sock_methods[] = { +#if defined(HAVE_ACCEPT) || defined(HAVE_ACCEPT4) {"_accept", (PyCFunction)sock_accept, METH_NOARGS, accept_doc}, +#endif +#ifdef HAVE_BIND {"bind", (PyCFunction)sock_bind, METH_O, bind_doc}, +#endif {"close", (PyCFunction)sock_close, METH_NOARGS, sock_close_doc}, +#ifdef HAVE_CONNECT {"connect", (PyCFunction)sock_connect, METH_O, connect_doc}, {"connect_ex", (PyCFunction)sock_connect_ex, METH_O, connect_ex_doc}, +#endif {"detach", (PyCFunction)sock_detach, METH_NOARGS, detach_doc}, {"fileno", (PyCFunction)sock_fileno, METH_NOARGS, @@ -5048,8 +5084,10 @@ static PyMethodDef sock_methods[] = { {"getpeername", (PyCFunction)sock_getpeername, METH_NOARGS, getpeername_doc}, #endif +#ifdef HAVE_GETSOCKNAME {"getsockname", (PyCFunction)sock_getsockname, METH_NOARGS, getsockname_doc}, +#endif {"getsockopt", (PyCFunction)sock_getsockopt, METH_VARARGS, getsockopt_doc}, #if defined(MS_WINDOWS) && defined(SIO_RCVALL) @@ -5060,22 +5098,28 @@ static PyMethodDef sock_methods[] = { {"share", (PyCFunction)sock_share, METH_VARARGS, sock_share_doc}, #endif +#ifdef HAVE_LISTEN {"listen", (PyCFunction)sock_listen, METH_VARARGS, listen_doc}, +#endif {"recv", (PyCFunction)sock_recv, METH_VARARGS, recv_doc}, {"recv_into", _PyCFunction_CAST(sock_recv_into), METH_VARARGS | METH_KEYWORDS, recv_into_doc}, +#ifdef HAVE_RECVFROM {"recvfrom", (PyCFunction)sock_recvfrom, METH_VARARGS, recvfrom_doc}, {"recvfrom_into", _PyCFunction_CAST(sock_recvfrom_into), METH_VARARGS | METH_KEYWORDS, recvfrom_into_doc}, +#endif {"send", (PyCFunction)sock_send, METH_VARARGS, send_doc}, {"sendall", (PyCFunction)sock_sendall, METH_VARARGS, sendall_doc}, +#ifdef HAVE_SENDTO {"sendto", (PyCFunction)sock_sendto, METH_VARARGS, sendto_doc}, +#endif {"setblocking", (PyCFunction)sock_setblocking, METH_O, setblocking_doc}, {"getblocking", (PyCFunction)sock_getblocking, METH_NOARGS, @@ -5084,8 +5128,10 @@ static PyMethodDef sock_methods[] = { settimeout_doc}, {"gettimeout", (PyCFunction)sock_gettimeout, METH_NOARGS, gettimeout_doc}, +#ifdef HAVE_SETSOCKOPT {"setsockopt", (PyCFunction)sock_setsockopt, METH_VARARGS, setsockopt_doc}, +#endif #ifdef HAVE_SHUTDOWN {"shutdown", (PyCFunction)sock_shutdown, METH_O, shutdown_doc}, @@ -5221,6 +5267,16 @@ static int sock_cloexec_works = -1; /*ARGSUSED*/ +#ifndef HAVE_SOCKET +#define socket stub_socket +static int +socket(int domain, int type, int protocol) +{ + errno = ENOTSUP; + return INVALID_SOCKET; +} +#endif + /*[clinic input] _socket.socket.__init__ as sock_initobj family: int = -1 @@ -5307,6 +5363,7 @@ sock_initobj_impl(PySocketSockObject *self, int family, int type, int proto, socklen_t addrlen = sizeof(sock_addr_t); memset(&addrbuf, 0, addrlen); +#ifdef HAVE_GETSOCKNAME if (getsockname(fd, SAS2SA(&addrbuf), &addrlen) == 0) { if (family == -1) { family = SAS2SA(&addrbuf)->sa_family; @@ -5325,6 +5382,7 @@ sock_initobj_impl(PySocketSockObject *self, int family, int type, int proto, return -1; } } +#endif // HAVE_GETSOCKNAME #ifdef SO_TYPE if (type == -1) { int tmp; @@ -5503,6 +5561,7 @@ static PyTypeObject sock_type = { }; +#ifdef HAVE_GETHOSTNAME /* Python interface to gethostname(). */ /*ARGSUSED*/ @@ -5566,6 +5625,7 @@ PyDoc_STRVAR(gethostname_doc, "gethostname() -> string\n\ \n\ Return the current host name."); +#endif #ifdef HAVE_SETHOSTNAME PyDoc_STRVAR(sethostname_doc, @@ -5609,6 +5669,7 @@ extern int sethostname(const char *, size_t); } #endif +#ifdef HAVE_GETADDRINFO /* Python interface to gethostbyname(name). */ /*ARGSUSED*/ @@ -5636,8 +5697,10 @@ PyDoc_STRVAR(gethostbyname_doc, "gethostbyname(host) -> address\n\ \n\ Return the IP address (a string of the form '255.255.255.255') for a host."); +#endif +#if defined(HAVE_GETHOSTBYNAME_R) || defined (HAVE_GETHOSTBYNAME) || defined (HAVE_GETHOSTBYADDR) static PyObject* sock_decode_hostname(const char *name) { @@ -5779,8 +5842,9 @@ gethost_common(struct hostent *h, struct sockaddr *addr, size_t alen, int af) Py_XDECREF(addr_list); return rtn_tuple; } +#endif - +#if defined(HAVE_GETHOSTBYNAME_R) || defined (HAVE_GETHOSTBYNAME) /* Python interface to gethostbyname_ex(name). */ /*ARGSUSED*/ @@ -5853,8 +5917,9 @@ PyDoc_STRVAR(ghbn_ex_doc, \n\ Return the true host name, a list of aliases, and a list of IP addresses,\n\ for a host. The host argument is a string giving a host name or IP number."); +#endif - +#if defined(HAVE_GETHOSTBYNAME_R) || defined (HAVE_GETHOSTBYADDR) /* Python interface to gethostbyaddr(IP). */ /*ARGSUSED*/ @@ -5949,8 +6014,9 @@ PyDoc_STRVAR(gethostbyaddr_doc, \n\ Return the true host name, a list of aliases, and a list of IP addresses,\n\ for a host. The host argument is a string giving a host name or IP number."); +#endif - +#ifdef HAVE_GETSERVBYNAME /* Python interface to getservbyname(name). This only returns the port number, since the other info is already known or not useful (like the list of aliases). */ @@ -5984,8 +6050,9 @@ PyDoc_STRVAR(getservbyname_doc, Return a port number from a service name and protocol name.\n\ The optional protocol name, if given, should be 'tcp' or 'udp',\n\ otherwise any protocol will match."); +#endif - +#ifdef HAVE_GETSERVBYPORT /* Python interface to getservbyport(port). This only returns the service name, since the other info is already known or not useful (like the list of aliases). */ @@ -6026,7 +6093,9 @@ PyDoc_STRVAR(getservbyport_doc, Return the service name from a port number and protocol name.\n\ The optional protocol name, if given, should be 'tcp' or 'udp',\n\ otherwise any protocol will match."); +#endif +#ifdef HAVE_GETPROTOBYNAME /* Python interface to getprotobyname(name). This only returns the protocol number, since the other info is already known or not useful (like the list of aliases). */ @@ -6053,6 +6122,7 @@ PyDoc_STRVAR(getprotobyname_doc, "getprotobyname(name) -> integer\n\ \n\ Return the protocol number for the named protocol. (Rarely used.)"); +#endif static PyObject * socket_close(PyObject *self, PyObject *fdobj) @@ -6422,6 +6492,7 @@ socket_inet_aton(PyObject *self, PyObject *args) #endif } +#ifdef HAVE_INET_NTOA PyDoc_STRVAR(inet_ntoa_doc, "inet_ntoa(packed_ip) -> ip_address_string\n\ \n\ @@ -6450,6 +6521,7 @@ socket_inet_ntoa(PyObject *self, PyObject *args) SUPPRESS_DEPRECATED_CALL return PyUnicode_FromString(inet_ntoa(packed_addr)); } +#endif // HAVE_INET_NTOA #ifdef HAVE_INET_PTON @@ -6561,6 +6633,7 @@ socket_inet_ntop(PyObject *self, PyObject *args) #endif /* HAVE_INET_PTON */ +#ifdef HAVE_GETADDRINFO /* Python interface to getaddrinfo(host, port). */ /*ARGSUSED*/ @@ -6688,7 +6761,9 @@ PyDoc_STRVAR(getaddrinfo_doc, -> list of (family, type, proto, canonname, sockaddr)\n\ \n\ Resolve host and port into addrinfo struct."); +#endif // HAVE_GETADDRINFO +#ifdef HAVE_GETNAMEINFO /* Python interface to getnameinfo(sa, flags). */ /*ARGSUSED*/ @@ -6789,7 +6864,7 @@ PyDoc_STRVAR(getnameinfo_doc, "getnameinfo(sockaddr, flags) --> (host, port)\n\ \n\ Get host and port for a sockaddr."); - +#endif // HAVE_GETNAMEINFO /* Python API to getting and setting the default timeout value. */ @@ -7045,24 +7120,38 @@ range of values."); /* List of functions exported by this module. */ static PyMethodDef socket_methods[] = { +#ifdef HAVE_GETADDRINFO {"gethostbyname", socket_gethostbyname, METH_VARARGS, gethostbyname_doc}, +#endif +#if defined(HAVE_GETHOSTBYNAME_R) || defined (HAVE_GETHOSTBYNAME) {"gethostbyname_ex", socket_gethostbyname_ex, METH_VARARGS, ghbn_ex_doc}, +#endif +#if defined(HAVE_GETHOSTBYNAME_R) || defined (HAVE_GETHOSTBYADDR) {"gethostbyaddr", socket_gethostbyaddr, METH_VARARGS, gethostbyaddr_doc}, +#endif +#ifdef HAVE_GETHOSTNAME {"gethostname", socket_gethostname, METH_NOARGS, gethostname_doc}, +#endif #ifdef HAVE_SETHOSTNAME {"sethostname", socket_sethostname, METH_VARARGS, sethostname_doc}, #endif +#ifdef HAVE_GETSERVBYNAME {"getservbyname", socket_getservbyname, METH_VARARGS, getservbyname_doc}, +#endif +#ifdef HAVE_GETSERVBYPORT {"getservbyport", socket_getservbyport, METH_VARARGS, getservbyport_doc}, +#endif +#ifdef HAVE_GETPROTOBYNAME {"getprotobyname", socket_getprotobyname, METH_VARARGS, getprotobyname_doc}, +#endif {"close", socket_close, METH_O, close_doc}, #ifndef NO_DUP @@ -7083,18 +7172,24 @@ static PyMethodDef socket_methods[] = { METH_O, htonl_doc}, {"inet_aton", socket_inet_aton, METH_VARARGS, inet_aton_doc}, +#ifdef HAVE_INET_NTOA {"inet_ntoa", socket_inet_ntoa, METH_VARARGS, inet_ntoa_doc}, +#endif #ifdef HAVE_INET_PTON {"inet_pton", socket_inet_pton, METH_VARARGS, inet_pton_doc}, {"inet_ntop", socket_inet_ntop, METH_VARARGS, inet_ntop_doc}, #endif +#ifdef HAVE_GETADDRINFO {"getaddrinfo", _PyCFunction_CAST(socket_getaddrinfo), METH_VARARGS | METH_KEYWORDS, getaddrinfo_doc}, +#endif +#ifdef HAVE_GETNAMEINFO {"getnameinfo", socket_getnameinfo, METH_VARARGS, getnameinfo_doc}, +#endif {"getdefaulttimeout", socket_getdefaulttimeout, METH_NOARGS, getdefaulttimeout_doc}, {"setdefaulttimeout", socket_setdefaulttimeout, @@ -7470,7 +7565,6 @@ PyInit__socket(void) /* for setsockopt() */ PyModule_AddIntMacro(m, HVSOCKET_CONNECT_TIMEOUT); PyModule_AddIntMacro(m, HVSOCKET_CONNECT_TIMEOUT_MAX); - PyModule_AddIntMacro(m, HVSOCKET_CONTAINER_PASSTHRU); PyModule_AddIntMacro(m, HVSOCKET_CONNECTED_SUSPEND); PyModule_AddIntMacro(m, HVSOCKET_ADDRESS_FLAG_PASSTHRU); @@ -7625,7 +7719,9 @@ PyInit__socket(void) /* SOCK_RAW is marked as optional in the POSIX specification */ PyModule_AddIntMacro(m, SOCK_RAW); #endif +#ifdef SOCK_SEQPACKET PyModule_AddIntMacro(m, SOCK_SEQPACKET); +#endif #if defined(SOCK_RDM) PyModule_AddIntMacro(m, SOCK_RDM); #endif @@ -7783,6 +7879,10 @@ PyInit__socket(void) PyModule_AddIntMacro(m, MSG_EOR); #endif #ifdef MSG_TRUNC + // workaround for https://github.com/WebAssembly/wasi-libc/issues/305 + #if defined(__wasi__) && !defined(__WASI_RIFLAGS_RECV_DATA_TRUNCATED) + # define __WASI_RIFLAGS_RECV_DATA_TRUNCATED 2 + #endif PyModule_AddIntMacro(m, MSG_TRUNC); #endif #ifdef MSG_CTRUNC diff --git a/Modules/syslogmodule.c b/Modules/syslogmodule.c index 2655a0c94bbd95..c409fe968f8894 100644 --- a/Modules/syslogmodule.c +++ b/Modules/syslogmodule.c @@ -87,6 +87,10 @@ syslog_get_argv(void) } scriptobj = PyList_GetItem(argv, 0); + if (scriptobj == NULL) { + PyErr_Clear(); + return NULL; + } if (!PyUnicode_Check(scriptobj)) { return(NULL); } @@ -96,16 +100,16 @@ syslog_get_argv(void) } slash = PyUnicode_FindChar(scriptobj, SEP, 0, scriptlen, -1); - if (slash == -2) + if (slash == -2) { + PyErr_Clear(); return NULL; + } if (slash != -1) { return PyUnicode_Substring(scriptobj, slash + 1, scriptlen); } else { Py_INCREF(scriptobj); return(scriptobj); } - - return(NULL); } @@ -114,42 +118,41 @@ syslog_openlog(PyObject * self, PyObject * args, PyObject *kwds) { long logopt = 0; long facility = LOG_USER; - PyObject *new_S_ident_o = NULL; + PyObject *ident = NULL; static char *keywords[] = {"ident", "logoption", "facility", 0}; - const char *ident = NULL; + const char *ident_str = NULL; if (!PyArg_ParseTupleAndKeywords(args, kwds, - "|Ull:openlog", keywords, &new_S_ident_o, &logopt, &facility)) + "|Ull:openlog", keywords, &ident, &logopt, &facility)) return NULL; - if (new_S_ident_o) { - Py_INCREF(new_S_ident_o); + if (ident) { + Py_INCREF(ident); } - - /* get sys.argv[0] or NULL if we can't for some reason */ - if (!new_S_ident_o) { - new_S_ident_o = syslog_get_argv(); + else { + /* get sys.argv[0] or NULL if we can't for some reason */ + ident = syslog_get_argv(); } - Py_XDECREF(S_ident_o); - S_ident_o = new_S_ident_o; - - /* At this point, S_ident_o should be INCREF()ed. openlog(3) does not - * make a copy, and syslog(3) later uses it. We can't garbagecollect it + /* At this point, ident should be INCREF()ed. openlog(3) does not + * make a copy, and syslog(3) later uses it. We can't garbagecollect it. * If NULL, just let openlog figure it out (probably using C argv[0]). */ - if (S_ident_o) { - ident = PyUnicode_AsUTF8(S_ident_o); - if (ident == NULL) + if (ident) { + ident_str = PyUnicode_AsUTF8(ident); + if (ident_str == NULL) { + Py_DECREF(ident); return NULL; + } } - - if (PySys_Audit("syslog.openlog", "sll", ident, logopt, facility) < 0) { + if (PySys_Audit("syslog.openlog", "Oll", ident ? ident : Py_None, logopt, facility) < 0) { + Py_DECREF(ident); return NULL; } - openlog(ident, logopt, facility); + openlog(ident_str, logopt, facility); S_log_open = 1; + Py_XSETREF(S_ident_o, ident); Py_RETURN_NONE; } @@ -188,14 +191,26 @@ syslog_syslog(PyObject * self, PyObject * args) */ if ((openargs = PyTuple_New(0))) { PyObject *openlog_ret = syslog_openlog(self, openargs, NULL); - Py_XDECREF(openlog_ret); Py_DECREF(openargs); + if (openlog_ret == NULL) { + return NULL; + } + Py_DECREF(openlog_ret); + } + else { + return NULL; } } + /* Incref ident, because it can be decrefed if syslog.openlog() is + * called when the GIL is released. + */ + PyObject *ident = S_ident_o; + Py_XINCREF(ident); Py_BEGIN_ALLOW_THREADS; syslog(priority, "%s", message); Py_END_ALLOW_THREADS; + Py_XDECREF(ident); Py_RETURN_NONE; } @@ -355,4 +370,4 @@ PyMODINIT_FUNC PyInit_syslog(void) { return PyModuleDef_Init(&syslogmodule); -} \ No newline at end of file +} diff --git a/Modules/timemodule.c b/Modules/timemodule.c index 18f9ddb909c028..11c888af03e82d 100644 --- a/Modules/timemodule.c +++ b/Modules/timemodule.c @@ -910,14 +910,9 @@ is not present, current time as returned by localtime() is used.\n\ static PyObject * time_strptime(PyObject *self, PyObject *args) { - PyObject *module, *func, *result; + PyObject *func, *result; - module = PyImport_ImportModule("_strptime"); - if (!module) - return NULL; - - func = PyObject_GetAttr(module, &_Py_ID(_strptime_time)); - Py_DECREF(module); + func = _PyImport_GetModuleAttrString("_strptime", "_strptime_time"); if (!func) { return NULL; } diff --git a/Modules/unicodedata.c b/Modules/unicodedata.c index 64918115283d1a..32014707bce747 100644 --- a/Modules/unicodedata.c +++ b/Modules/unicodedata.c @@ -1046,11 +1046,12 @@ is_unified_ideograph(Py_UCS4 code) (0x3400 <= code && code <= 0x4DBF) || /* CJK Ideograph Extension A */ (0x4E00 <= code && code <= 0x9FFF) || /* CJK Ideograph */ (0x20000 <= code && code <= 0x2A6DF) || /* CJK Ideograph Extension B */ - (0x2A700 <= code && code <= 0x2B738) || /* CJK Ideograph Extension C */ + (0x2A700 <= code && code <= 0x2B739) || /* CJK Ideograph Extension C */ (0x2B740 <= code && code <= 0x2B81D) || /* CJK Ideograph Extension D */ (0x2B820 <= code && code <= 0x2CEA1) || /* CJK Ideograph Extension E */ (0x2CEB0 <= code && code <= 0x2EBE0) || /* CJK Ideograph Extension F */ - (0x30000 <= code && code <= 0x3134A); /* CJK Ideograph Extension G */ + (0x30000 <= code && code <= 0x3134A) || /* CJK Ideograph Extension G */ + (0x31350 <= code && code <= 0x323AF); /* CJK Ideograph Extension H */ } /* macros used to determine if the given code point is in the PUA range that diff --git a/Modules/unicodedata_db.h b/Modules/unicodedata_db.h index f56fa035b685f7..4c4b2f589c50bf 100644 --- a/Modules/unicodedata_db.h +++ b/Modules/unicodedata_db.h @@ -1,13 +1,13 @@ /* this file was generated by Tools/unicode/makeunicodedata.py 3.3 */ -#define UNIDATA_VERSION "14.0.0" +#define UNIDATA_VERSION "15.0.0" /* a list of unique database records */ const _PyUnicode_DatabaseRecord _PyUnicode_Database_Records[] = { {0, 0, 0, 0, 0, 0}, - {13, 0, 15, 0, 5, 0}, - {13, 0, 17, 0, 5, 0}, - {13, 0, 16, 0, 5, 0}, - {13, 0, 18, 0, 5, 0}, + {13, 0, 15, 0, 0, 0}, + {13, 0, 17, 0, 0, 0}, + {13, 0, 16, 0, 0, 0}, + {13, 0, 18, 0, 0, 0}, {10, 0, 18, 0, 3, 0}, {26, 0, 19, 0, 3, 0}, {26, 0, 11, 0, 3, 0}, @@ -24,44 +24,44 @@ const _PyUnicode_DatabaseRecord _PyUnicode_Database_Records[] = { {29, 0, 19, 0, 3, 0}, {20, 0, 19, 0, 3, 0}, {2, 0, 1, 0, 3, 0}, - {10, 0, 13, 0, 5, 136}, + {10, 0, 13, 0, 0, 136}, {26, 0, 19, 0, 4, 0}, {28, 0, 11, 0, 4, 0}, {30, 0, 19, 0, 3, 0}, {29, 0, 19, 0, 4, 136}, - {30, 0, 19, 0, 5, 0}, + {30, 0, 19, 0, 0, 0}, {19, 0, 1, 0, 4, 136}, - {24, 0, 19, 1, 5, 0}, + {24, 0, 19, 1, 0, 0}, {14, 0, 15, 0, 4, 0}, {30, 0, 19, 0, 4, 0}, {29, 0, 19, 0, 3, 136}, {30, 0, 11, 0, 4, 0}, {27, 0, 11, 0, 4, 0}, {9, 0, 9, 0, 4, 136}, - {2, 0, 1, 0, 5, 136}, - {25, 0, 19, 1, 5, 0}, + {2, 0, 1, 0, 0, 136}, + {25, 0, 19, 1, 0, 0}, {9, 0, 19, 0, 4, 136}, - {1, 0, 1, 0, 5, 10}, + {1, 0, 1, 0, 0, 10}, {1, 0, 1, 0, 4, 0}, {27, 0, 19, 0, 4, 0}, {2, 0, 1, 0, 4, 0}, {2, 0, 1, 0, 4, 10}, - {2, 0, 1, 0, 5, 10}, - {1, 0, 1, 0, 5, 0}, + {2, 0, 1, 0, 0, 10}, + {1, 0, 1, 0, 0, 0}, {1, 0, 1, 0, 4, 136}, {2, 0, 1, 0, 4, 136}, - {2, 0, 1, 0, 5, 0}, - {19, 0, 1, 0, 5, 0}, - {1, 0, 1, 0, 5, 136}, - {3, 0, 1, 0, 5, 136}, - {18, 0, 1, 0, 5, 136}, - {18, 0, 19, 0, 5, 0}, - {18, 0, 1, 0, 5, 0}, - {29, 0, 19, 0, 5, 0}, + {2, 0, 1, 0, 0, 0}, + {19, 0, 1, 0, 0, 0}, + {1, 0, 1, 0, 0, 136}, + {3, 0, 1, 0, 0, 136}, + {18, 0, 1, 0, 0, 136}, + {18, 0, 19, 0, 0, 0}, + {18, 0, 1, 0, 0, 0}, + {29, 0, 19, 0, 0, 0}, {29, 0, 19, 0, 4, 0}, {18, 0, 19, 0, 4, 0}, {18, 0, 1, 0, 4, 0}, - {29, 0, 19, 0, 5, 136}, + {29, 0, 19, 0, 0, 136}, {4, 230, 14, 0, 4, 80}, {4, 230, 14, 0, 4, 0}, {4, 232, 14, 0, 4, 0}, @@ -77,173 +77,173 @@ const _PyUnicode_DatabaseRecord _PyUnicode_Database_Records[] = { {4, 0, 14, 0, 4, 0}, {4, 233, 14, 0, 4, 0}, {4, 234, 14, 0, 4, 0}, - {18, 0, 19, 0, 5, 170}, - {26, 0, 19, 0, 5, 170}, - {29, 0, 19, 0, 5, 138}, - {1, 0, 1, 0, 5, 138}, - {27, 0, 19, 0, 5, 0}, + {18, 0, 19, 0, 0, 170}, + {26, 0, 19, 0, 0, 170}, + {29, 0, 19, 0, 0, 138}, + {1, 0, 1, 0, 0, 138}, + {27, 0, 19, 0, 0, 0}, {1, 0, 1, 0, 4, 10}, - {30, 0, 1, 0, 5, 0}, - {4, 230, 14, 0, 5, 0}, - {6, 0, 14, 0, 5, 0}, - {26, 0, 1, 0, 5, 0}, - {21, 0, 19, 0, 5, 0}, - {28, 0, 11, 0, 5, 0}, - {4, 220, 14, 0, 5, 0}, - {4, 222, 14, 0, 5, 0}, - {4, 228, 14, 0, 5, 0}, - {4, 10, 14, 0, 5, 0}, - {4, 11, 14, 0, 5, 0}, - {4, 12, 14, 0, 5, 0}, - {4, 13, 14, 0, 5, 0}, - {4, 14, 14, 0, 5, 0}, - {4, 15, 14, 0, 5, 0}, - {4, 16, 14, 0, 5, 0}, - {4, 17, 14, 0, 5, 0}, - {4, 18, 14, 0, 5, 0}, - {4, 19, 14, 0, 5, 0}, - {4, 20, 14, 0, 5, 0}, - {4, 21, 14, 0, 5, 0}, - {4, 22, 14, 0, 5, 0}, - {21, 0, 4, 0, 5, 0}, - {4, 23, 14, 0, 5, 0}, - {26, 0, 4, 0, 5, 0}, - {4, 24, 14, 0, 5, 0}, - {4, 25, 14, 0, 5, 0}, - {19, 0, 4, 0, 5, 0}, - {14, 0, 12, 0, 5, 0}, - {27, 0, 5, 0, 5, 0}, - {26, 0, 11, 0, 5, 0}, - {28, 0, 5, 0, 5, 0}, - {26, 0, 13, 0, 5, 0}, - {26, 0, 5, 0, 5, 0}, - {4, 30, 14, 0, 5, 0}, - {4, 31, 14, 0, 5, 0}, - {4, 32, 14, 0, 5, 0}, - {14, 0, 5, 0, 5, 0}, - {19, 0, 5, 0, 5, 0}, - {19, 0, 5, 0, 5, 10}, - {18, 0, 5, 0, 5, 0}, - {4, 27, 14, 0, 5, 0}, - {4, 28, 14, 0, 5, 0}, - {4, 29, 14, 0, 5, 0}, - {4, 33, 14, 0, 5, 0}, - {4, 34, 14, 0, 5, 0}, - {4, 230, 14, 0, 5, 80}, - {4, 220, 14, 0, 5, 80}, - {7, 0, 12, 0, 5, 0}, - {26, 0, 12, 0, 5, 0}, - {4, 35, 14, 0, 5, 0}, - {19, 0, 5, 0, 5, 136}, - {7, 0, 9, 0, 5, 0}, - {30, 0, 5, 0, 5, 0}, - {4, 36, 14, 0, 5, 0}, - {4, 0, 14, 0, 5, 0}, - {7, 0, 4, 0, 5, 0}, - {18, 0, 4, 0, 5, 0}, - {26, 0, 19, 0, 5, 0}, - {28, 0, 4, 0, 5, 0}, - {29, 0, 5, 0, 5, 0}, - {5, 0, 1, 0, 5, 0}, - {19, 0, 1, 0, 5, 10}, - {4, 7, 14, 0, 5, 80}, - {4, 9, 14, 0, 5, 0}, - {19, 0, 1, 0, 5, 170}, - {7, 0, 1, 0, 5, 0}, - {4, 7, 14, 0, 5, 0}, - {5, 0, 1, 0, 5, 80}, - {5, 0, 1, 0, 5, 10}, - {9, 0, 1, 0, 5, 0}, - {4, 0, 14, 0, 5, 80}, - {4, 0, 14, 0, 5, 10}, - {4, 84, 14, 0, 5, 0}, - {4, 91, 14, 0, 5, 80}, - {9, 0, 19, 0, 5, 0}, - {4, 0, 1, 0, 5, 0}, - {4, 9, 14, 0, 5, 80}, - {19, 0, 1, 0, 5, 136}, - {4, 103, 14, 0, 5, 0}, - {4, 107, 14, 0, 5, 0}, - {4, 118, 14, 0, 5, 0}, - {4, 122, 14, 0, 5, 0}, - {26, 0, 1, 0, 5, 136}, - {4, 216, 14, 0, 5, 0}, - {22, 0, 19, 1, 5, 0}, - {23, 0, 19, 1, 5, 0}, - {4, 129, 14, 0, 5, 0}, - {4, 130, 14, 0, 5, 0}, - {4, 0, 14, 0, 5, 170}, - {4, 132, 14, 0, 5, 0}, - {4, 0, 14, 0, 5, 136}, + {30, 0, 1, 0, 0, 0}, + {4, 230, 14, 0, 0, 0}, + {6, 0, 14, 0, 0, 0}, + {26, 0, 1, 0, 0, 0}, + {21, 0, 19, 0, 0, 0}, + {28, 0, 11, 0, 0, 0}, + {4, 220, 14, 0, 0, 0}, + {4, 222, 14, 0, 0, 0}, + {4, 228, 14, 0, 0, 0}, + {4, 10, 14, 0, 0, 0}, + {4, 11, 14, 0, 0, 0}, + {4, 12, 14, 0, 0, 0}, + {4, 13, 14, 0, 0, 0}, + {4, 14, 14, 0, 0, 0}, + {4, 15, 14, 0, 0, 0}, + {4, 16, 14, 0, 0, 0}, + {4, 17, 14, 0, 0, 0}, + {4, 18, 14, 0, 0, 0}, + {4, 19, 14, 0, 0, 0}, + {4, 20, 14, 0, 0, 0}, + {4, 21, 14, 0, 0, 0}, + {4, 22, 14, 0, 0, 0}, + {21, 0, 4, 0, 0, 0}, + {4, 23, 14, 0, 0, 0}, + {26, 0, 4, 0, 0, 0}, + {4, 24, 14, 0, 0, 0}, + {4, 25, 14, 0, 0, 0}, + {19, 0, 4, 0, 0, 0}, + {14, 0, 12, 0, 0, 0}, + {27, 0, 5, 0, 0, 0}, + {26, 0, 11, 0, 0, 0}, + {28, 0, 5, 0, 0, 0}, + {26, 0, 13, 0, 0, 0}, + {26, 0, 5, 0, 0, 0}, + {4, 30, 14, 0, 0, 0}, + {4, 31, 14, 0, 0, 0}, + {4, 32, 14, 0, 0, 0}, + {14, 0, 5, 0, 0, 0}, + {19, 0, 5, 0, 0, 0}, + {19, 0, 5, 0, 0, 10}, + {18, 0, 5, 0, 0, 0}, + {4, 27, 14, 0, 0, 0}, + {4, 28, 14, 0, 0, 0}, + {4, 29, 14, 0, 0, 0}, + {4, 33, 14, 0, 0, 0}, + {4, 34, 14, 0, 0, 0}, + {4, 230, 14, 0, 0, 80}, + {4, 220, 14, 0, 0, 80}, + {7, 0, 12, 0, 0, 0}, + {26, 0, 12, 0, 0, 0}, + {4, 35, 14, 0, 0, 0}, + {19, 0, 5, 0, 0, 136}, + {7, 0, 9, 0, 0, 0}, + {30, 0, 5, 0, 0, 0}, + {4, 36, 14, 0, 0, 0}, + {4, 0, 14, 0, 0, 0}, + {7, 0, 4, 0, 0, 0}, + {18, 0, 4, 0, 0, 0}, + {26, 0, 19, 0, 0, 0}, + {28, 0, 4, 0, 0, 0}, + {29, 0, 5, 0, 0, 0}, + {5, 0, 1, 0, 0, 0}, + {19, 0, 1, 0, 0, 10}, + {4, 7, 14, 0, 0, 80}, + {4, 9, 14, 0, 0, 0}, + {19, 0, 1, 0, 0, 170}, + {7, 0, 1, 0, 0, 0}, + {4, 7, 14, 0, 0, 0}, + {5, 0, 1, 0, 0, 80}, + {5, 0, 1, 0, 0, 10}, + {9, 0, 1, 0, 0, 0}, + {4, 0, 14, 0, 0, 80}, + {4, 0, 14, 0, 0, 10}, + {4, 84, 14, 0, 0, 0}, + {4, 91, 14, 0, 0, 80}, + {9, 0, 19, 0, 0, 0}, + {4, 0, 1, 0, 0, 0}, + {4, 9, 14, 0, 0, 80}, + {19, 0, 1, 0, 0, 136}, + {4, 103, 14, 0, 0, 0}, + {4, 107, 14, 0, 0, 0}, + {4, 118, 14, 0, 0, 0}, + {4, 122, 14, 0, 0, 0}, + {26, 0, 1, 0, 0, 136}, + {4, 216, 14, 0, 0, 0}, + {22, 0, 19, 1, 0, 0}, + {23, 0, 19, 1, 0, 0}, + {4, 129, 14, 0, 0, 0}, + {4, 130, 14, 0, 0, 0}, + {4, 0, 14, 0, 0, 170}, + {4, 132, 14, 0, 0, 0}, + {4, 0, 14, 0, 0, 136}, {19, 0, 1, 0, 2, 0}, - {19, 0, 1, 0, 5, 80}, - {10, 0, 18, 0, 5, 0}, - {8, 0, 1, 0, 5, 0}, - {5, 9, 1, 0, 5, 0}, - {14, 0, 15, 0, 5, 0}, - {4, 1, 14, 0, 5, 0}, - {4, 234, 14, 0, 5, 0}, - {4, 214, 14, 0, 5, 0}, - {4, 202, 14, 0, 5, 0}, - {4, 232, 14, 0, 5, 0}, - {4, 218, 14, 0, 5, 0}, - {4, 233, 14, 0, 5, 0}, - {2, 0, 1, 0, 5, 138}, - {2, 0, 1, 0, 5, 170}, - {3, 0, 1, 0, 5, 10}, - {1, 0, 1, 0, 5, 170}, - {29, 0, 19, 0, 5, 170}, - {10, 0, 18, 0, 5, 170}, - {10, 0, 18, 0, 5, 136}, - {14, 0, 1, 0, 5, 0}, - {14, 0, 4, 0, 5, 0}, + {19, 0, 1, 0, 0, 80}, + {10, 0, 18, 0, 0, 0}, + {8, 0, 1, 0, 0, 0}, + {5, 9, 1, 0, 0, 0}, + {14, 0, 15, 0, 0, 0}, + {4, 1, 14, 0, 0, 0}, + {4, 234, 14, 0, 0, 0}, + {4, 214, 14, 0, 0, 0}, + {4, 202, 14, 0, 0, 0}, + {4, 232, 14, 0, 0, 0}, + {4, 218, 14, 0, 0, 0}, + {4, 233, 14, 0, 0, 0}, + {2, 0, 1, 0, 0, 138}, + {2, 0, 1, 0, 0, 170}, + {3, 0, 1, 0, 0, 10}, + {1, 0, 1, 0, 0, 170}, + {29, 0, 19, 0, 0, 170}, + {10, 0, 18, 0, 0, 170}, + {10, 0, 18, 0, 0, 136}, + {14, 0, 1, 0, 0, 0}, + {14, 0, 4, 0, 0, 0}, {21, 0, 19, 0, 4, 0}, - {21, 0, 19, 0, 5, 136}, - {26, 0, 19, 0, 5, 136}, + {21, 0, 19, 0, 0, 136}, + {26, 0, 19, 0, 0, 136}, {24, 0, 19, 0, 4, 0}, {25, 0, 19, 0, 4, 0}, - {22, 0, 19, 0, 5, 0}, - {24, 0, 19, 0, 5, 0}, + {22, 0, 19, 0, 0, 0}, + {24, 0, 19, 0, 0, 0}, {26, 0, 19, 0, 4, 136}, - {11, 0, 18, 0, 5, 0}, - {12, 0, 16, 0, 5, 0}, - {14, 0, 2, 0, 5, 0}, - {14, 0, 6, 0, 5, 0}, - {14, 0, 8, 0, 5, 0}, - {14, 0, 3, 0, 5, 0}, - {14, 0, 7, 0, 5, 0}, + {11, 0, 18, 0, 0, 0}, + {12, 0, 16, 0, 0, 0}, + {14, 0, 2, 0, 0, 0}, + {14, 0, 6, 0, 0, 0}, + {14, 0, 8, 0, 0, 0}, + {14, 0, 3, 0, 0, 0}, + {14, 0, 7, 0, 0, 0}, {26, 0, 11, 0, 4, 0}, {26, 0, 11, 0, 4, 136}, - {26, 0, 11, 0, 5, 136}, - {20, 0, 19, 0, 5, 0}, - {27, 0, 13, 0, 5, 0}, - {14, 0, 20, 0, 5, 0}, - {14, 0, 21, 0, 5, 0}, - {14, 0, 22, 0, 5, 0}, - {14, 0, 23, 0, 5, 0}, - {9, 0, 9, 0, 5, 136}, - {27, 0, 10, 0, 5, 136}, - {27, 0, 19, 0, 5, 136}, - {22, 0, 19, 1, 5, 136}, - {23, 0, 19, 1, 5, 136}, + {26, 0, 11, 0, 0, 136}, + {20, 0, 19, 0, 0, 0}, + {27, 0, 13, 0, 0, 0}, + {14, 0, 20, 0, 0, 0}, + {14, 0, 21, 0, 0, 0}, + {14, 0, 22, 0, 0, 0}, + {14, 0, 23, 0, 0, 0}, + {9, 0, 9, 0, 0, 136}, + {27, 0, 10, 0, 0, 136}, + {27, 0, 19, 0, 0, 136}, + {22, 0, 19, 1, 0, 136}, + {23, 0, 19, 1, 0, 136}, {18, 0, 1, 0, 4, 136}, - {28, 0, 11, 0, 5, 136}, + {28, 0, 11, 0, 0, 136}, {28, 0, 11, 0, 1, 0}, - {30, 0, 19, 0, 5, 136}, + {30, 0, 19, 0, 0, 136}, {30, 0, 19, 0, 4, 136}, {1, 0, 1, 0, 4, 170}, - {30, 0, 11, 0, 5, 0}, - {27, 0, 19, 1, 5, 136}, - {9, 0, 19, 0, 5, 136}, + {30, 0, 11, 0, 0, 0}, + {27, 0, 19, 1, 0, 136}, + {9, 0, 19, 0, 0, 136}, {8, 0, 1, 0, 4, 136}, - {8, 0, 1, 0, 5, 136}, - {27, 0, 19, 0, 5, 10}, - {30, 0, 19, 0, 5, 10}, - {27, 0, 19, 1, 5, 0}, + {8, 0, 1, 0, 0, 136}, + {27, 0, 19, 0, 0, 10}, + {30, 0, 19, 0, 0, 10}, + {27, 0, 19, 1, 0, 0}, {27, 0, 19, 1, 4, 0}, - {27, 0, 19, 1, 5, 10}, - {27, 0, 10, 0, 5, 0}, - {27, 0, 11, 0, 5, 0}, + {27, 0, 19, 1, 0, 10}, + {27, 0, 10, 0, 0, 0}, + {27, 0, 11, 0, 0, 0}, {27, 0, 19, 1, 4, 136}, {27, 0, 19, 1, 4, 10}, {30, 0, 19, 0, 2, 0}, @@ -252,10 +252,10 @@ const _PyUnicode_DatabaseRecord _PyUnicode_Database_Records[] = { {30, 0, 1, 0, 4, 136}, {9, 0, 19, 0, 4, 0}, {27, 0, 19, 0, 2, 0}, - {27, 0, 19, 1, 5, 170}, - {30, 0, 19, 1, 5, 0}, + {27, 0, 19, 1, 0, 170}, + {30, 0, 19, 1, 0, 0}, {30, 0, 19, 0, 2, 136}, - {10, 0, 18, 0, 0, 136}, + {10, 0, 18, 0, 5, 136}, {26, 0, 19, 0, 2, 0}, {18, 0, 1, 0, 2, 0}, {8, 0, 1, 0, 2, 0}, @@ -280,15 +280,16 @@ const _PyUnicode_DatabaseRecord _PyUnicode_Database_Records[] = { {30, 0, 1, 0, 2, 136}, {9, 0, 1, 0, 4, 0}, {9, 0, 19, 0, 2, 136}, - {29, 0, 1, 0, 5, 0}, - {15, 0, 1, 0, 5, 0}, + {29, 0, 1, 0, 0, 0}, + {15, 0, 1, 0, 0, 0}, {16, 0, 1, 0, 4, 0}, {19, 0, 1, 0, 2, 170}, - {19, 0, 4, 0, 5, 170}, - {4, 26, 14, 0, 5, 0}, - {19, 0, 4, 0, 5, 136}, - {23, 0, 19, 0, 5, 0}, - {28, 0, 5, 0, 5, 136}, + {0, 0, 0, 0, 2, 0}, + {19, 0, 4, 0, 0, 170}, + {4, 26, 14, 0, 0, 0}, + {19, 0, 4, 0, 0, 136}, + {23, 0, 19, 0, 0, 0}, + {28, 0, 5, 0, 0, 136}, {26, 0, 19, 0, 2, 136}, {22, 0, 19, 0, 2, 136}, {23, 0, 19, 0, 2, 136}, @@ -303,47 +304,47 @@ const _PyUnicode_DatabaseRecord _PyUnicode_Database_Records[] = { {27, 0, 19, 1, 2, 136}, {27, 0, 19, 0, 2, 136}, {28, 0, 11, 0, 2, 136}, - {26, 0, 19, 0, 0, 136}, - {26, 0, 11, 0, 0, 136}, - {28, 0, 11, 0, 0, 136}, - {22, 0, 19, 1, 0, 136}, - {23, 0, 19, 1, 0, 136}, - {27, 0, 10, 0, 0, 136}, - {26, 0, 13, 0, 0, 136}, - {21, 0, 10, 0, 0, 136}, - {7, 0, 9, 0, 0, 136}, - {27, 0, 19, 1, 0, 136}, - {27, 0, 19, 0, 0, 136}, - {1, 0, 1, 0, 0, 136}, - {29, 0, 19, 0, 0, 136}, - {20, 0, 19, 0, 0, 136}, - {2, 0, 1, 0, 0, 136}, + {26, 0, 19, 0, 5, 136}, + {26, 0, 11, 0, 5, 136}, + {28, 0, 11, 0, 5, 136}, + {22, 0, 19, 1, 5, 136}, + {23, 0, 19, 1, 5, 136}, + {27, 0, 10, 0, 5, 136}, + {26, 0, 13, 0, 5, 136}, + {21, 0, 10, 0, 5, 136}, + {7, 0, 9, 0, 5, 136}, + {27, 0, 19, 1, 5, 136}, + {27, 0, 19, 0, 5, 136}, + {1, 0, 1, 0, 5, 136}, + {29, 0, 19, 0, 5, 136}, + {20, 0, 19, 0, 5, 136}, + {2, 0, 1, 0, 5, 136}, {26, 0, 19, 0, 1, 136}, {22, 0, 19, 1, 1, 136}, {23, 0, 19, 1, 1, 136}, {19, 0, 1, 0, 1, 136}, {18, 0, 1, 0, 1, 136}, - {30, 0, 19, 0, 0, 136}, + {30, 0, 19, 0, 5, 136}, {30, 0, 19, 0, 1, 136}, {27, 0, 19, 0, 1, 136}, - {14, 0, 19, 0, 5, 0}, - {8, 0, 19, 0, 5, 0}, - {9, 0, 9, 0, 5, 0}, - {9, 0, 4, 0, 5, 0}, - {30, 0, 4, 0, 5, 0}, - {1, 0, 4, 0, 5, 0}, - {2, 0, 4, 0, 5, 0}, - {9, 0, 12, 0, 5, 0}, - {9, 0, 5, 0, 5, 0}, - {4, 9, 1, 0, 5, 0}, + {14, 0, 19, 0, 0, 0}, + {8, 0, 19, 0, 0, 0}, + {9, 0, 9, 0, 0, 0}, + {9, 0, 4, 0, 0, 0}, + {30, 0, 4, 0, 0, 0}, + {1, 0, 4, 0, 0, 0}, + {2, 0, 4, 0, 0, 0}, + {9, 0, 12, 0, 0, 0}, + {9, 0, 5, 0, 0, 0}, + {4, 9, 1, 0, 0, 0}, {4, 0, 14, 0, 2, 0}, {5, 6, 1, 0, 2, 0}, - {30, 0, 1, 0, 5, 170}, - {5, 216, 1, 0, 5, 0}, - {5, 226, 1, 0, 5, 0}, - {27, 0, 1, 0, 5, 136}, - {7, 0, 9, 0, 5, 136}, - {30, 0, 1, 0, 5, 136}, + {30, 0, 1, 0, 0, 170}, + {5, 216, 1, 0, 0, 0}, + {5, 226, 1, 0, 0, 0}, + {27, 0, 1, 0, 0, 136}, + {7, 0, 9, 0, 0, 136}, + {30, 0, 1, 0, 0, 136}, {30, 0, 1, 0, 4, 0}, {29, 0, 19, 0, 2, 0}, }; @@ -674,12 +675,12 @@ const char *_PyUnicode_BidirectionalNames[] = { NULL }; const char *_PyUnicode_EastAsianWidthNames[] = { - "F", + "N", "H", "W", "Na", "A", - "N", + "F", NULL }; static const char *decomp_prefix[] = { @@ -743,38 +744,38 @@ static const unsigned short index1[] = { 137, 138, 139, 140, 141, 142, 143, 144, 41, 41, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 137, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 137, 169, 170, 137, 171, 172, 173, 174, - 137, 175, 176, 177, 178, 179, 180, 137, 137, 181, 182, 183, 184, 137, - 185, 137, 186, 41, 41, 41, 41, 41, 41, 41, 187, 188, 41, 189, 137, 137, + 137, 175, 176, 177, 178, 179, 180, 181, 137, 182, 183, 184, 185, 137, + 186, 187, 188, 41, 41, 41, 41, 41, 41, 41, 189, 190, 41, 191, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 190, 41, 41, 41, 41, 41, 41, 41, 41, 191, 137, 137, + 137, 137, 137, 137, 192, 41, 41, 41, 41, 41, 41, 41, 41, 193, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 41, 41, 41, 41, 192, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 41, 41, 41, 41, 194, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 41, 41, 41, 41, 193, 194, 195, 196, 137, 137, 137, 137, 197, - 198, 199, 200, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, + 137, 137, 41, 41, 41, 41, 195, 196, 197, 198, 137, 137, 137, 137, 199, + 200, 201, 202, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, - 101, 101, 101, 101, 101, 101, 101, 101, 201, 101, 101, 101, 101, 101, - 101, 101, 101, 101, 202, 203, 137, 137, 137, 137, 137, 137, 137, 137, + 101, 101, 101, 101, 101, 101, 101, 101, 203, 101, 101, 101, 101, 101, + 101, 101, 101, 101, 204, 205, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 204, 101, 101, 205, 101, 101, 206, 137, 137, 137, + 137, 137, 137, 137, 206, 101, 101, 207, 101, 101, 208, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 207, 208, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 209, 210, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 209, 210, 78, 211, - 212, 213, 214, 215, 216, 137, 217, 218, 219, 220, 221, 222, 223, 224, 78, - 78, 78, 78, 225, 226, 137, 137, 137, 137, 137, 137, 137, 137, 227, 137, - 228, 137, 229, 137, 137, 230, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 231, 232, 233, 234, 137, 137, 137, 137, 137, 235, 236, 237, 137, - 238, 239, 137, 137, 240, 241, 242, 243, 244, 137, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 211, 212, 78, 213, + 214, 215, 216, 217, 218, 137, 219, 220, 221, 222, 223, 224, 225, 226, 78, + 78, 78, 78, 227, 228, 137, 137, 137, 137, 137, 137, 137, 137, 229, 137, + 230, 231, 232, 137, 137, 233, 137, 137, 137, 234, 137, 137, 137, 137, + 137, 235, 236, 237, 238, 137, 137, 137, 137, 137, 239, 240, 241, 137, + 242, 243, 137, 137, 244, 245, 246, 247, 248, 137, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 137, 137, 137, 137, 137, 137, 137, 137, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, @@ -799,56 +800,56 @@ static const unsigned short index1[] = { 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, - 101, 101, 101, 101, 101, 263, 101, 101, 101, 101, 101, 101, 101, 101, + 101, 101, 101, 101, 101, 267, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, - 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 264, 101, 265, 101, + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 268, 101, 269, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, - 101, 266, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, + 101, 270, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, - 101, 101, 101, 267, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 121, 121, 121, 121, 268, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, + 101, 101, 101, 271, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 121, 121, 121, 121, 273, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 272, 274, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, - 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 269, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 275, 101, + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, + 101, 101, 101, 276, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 272, 274, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, @@ -1214,7 +1215,7 @@ static const unsigned short index1[] = { 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 270, 137, 271, 272, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 277, 137, 278, 279, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, @@ -1287,7 +1288,7 @@ static const unsigned short index1[] = { 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 273, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 280, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, @@ -1324,7 +1325,7 @@ static const unsigned short index1[] = { 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 273, + 120, 280, }; static const unsigned short index2[] = { @@ -1519,7 +1520,7 @@ static const unsigned short index2[] = { 48, 0, 0, 147, 48, 141, 156, 149, 141, 148, 141, 141, 0, 156, 149, 149, 0, 149, 149, 135, 144, 0, 0, 0, 0, 0, 0, 0, 148, 148, 0, 0, 0, 0, 0, 0, 48, 48, 0, 48, 48, 135, 135, 0, 0, 146, 146, 146, 146, 146, 146, 146, - 146, 146, 146, 0, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, + 146, 146, 146, 0, 48, 48, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, 135, 141, 141, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, @@ -1545,76 +1546,76 @@ static const unsigned short index2[] = { 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, 48, 158, 135, 135, 135, 135, 161, 161, 144, 135, 135, 48, 0, - 0, 48, 48, 48, 48, 48, 0, 53, 0, 162, 162, 162, 162, 135, 135, 0, 0, 146, - 146, 146, 146, 146, 146, 146, 146, 146, 146, 0, 0, 158, 158, 48, 48, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 48, 80, 80, 80, 83, 83, 83, 83, 83, 83, 83, 83, 163, - 83, 83, 83, 83, 83, 83, 80, 83, 80, 80, 80, 86, 86, 80, 80, 80, 80, 80, - 80, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 80, 86, 80, 86, 80, 164, 165, 166, 165, - 166, 141, 141, 48, 48, 48, 145, 48, 48, 48, 48, 0, 48, 48, 48, 48, 145, - 48, 48, 48, 48, 145, 48, 48, 48, 48, 145, 48, 48, 48, 48, 145, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 145, 48, 48, 48, 0, 0, 0, 0, 167, - 168, 169, 170, 169, 169, 171, 169, 171, 168, 168, 168, 168, 135, 141, - 168, 169, 81, 81, 144, 83, 81, 81, 48, 48, 48, 48, 48, 135, 135, 135, - 135, 135, 135, 169, 135, 135, 135, 135, 0, 135, 135, 135, 135, 169, 135, - 135, 135, 135, 169, 135, 135, 135, 135, 169, 135, 135, 135, 135, 169, - 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 169, 135, - 135, 135, 0, 80, 80, 80, 80, 80, 80, 80, 80, 86, 80, 80, 80, 80, 80, 80, - 0, 80, 80, 83, 83, 83, 83, 83, 80, 80, 80, 80, 83, 83, 0, 0, 0, 0, 0, 0, + 0, 48, 48, 48, 48, 48, 0, 53, 0, 162, 162, 162, 162, 135, 135, 135, 0, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 0, 0, 158, 158, 48, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48, 80, 80, 80, 83, 83, 83, 83, 83, 83, 83, 83, + 163, 83, 83, 83, 83, 83, 83, 80, 83, 80, 80, 80, 86, 86, 80, 80, 80, 80, + 80, 80, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 150, 150, 150, + 150, 150, 150, 150, 150, 150, 150, 80, 86, 80, 86, 80, 164, 165, 166, + 165, 166, 141, 141, 48, 48, 48, 145, 48, 48, 48, 48, 0, 48, 48, 48, 48, + 145, 48, 48, 48, 48, 145, 48, 48, 48, 48, 145, 48, 48, 48, 48, 145, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 145, 48, 48, 48, 0, 0, 0, 0, + 167, 168, 169, 170, 169, 169, 171, 169, 171, 168, 168, 168, 168, 135, + 141, 168, 169, 81, 81, 144, 83, 81, 81, 48, 48, 48, 48, 48, 135, 135, + 135, 135, 135, 135, 169, 135, 135, 135, 135, 0, 135, 135, 135, 135, 169, + 135, 135, 135, 135, 169, 135, 135, 135, 135, 169, 135, 135, 135, 135, + 169, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 169, + 135, 135, 135, 0, 80, 80, 80, 80, 80, 80, 80, 80, 86, 80, 80, 80, 80, 80, + 80, 0, 80, 80, 83, 83, 83, 83, 83, 80, 80, 80, 80, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 142, 48, 48, 48, 48, 141, 141, 135, 151, 135, - 135, 141, 135, 135, 135, 135, 135, 147, 141, 144, 144, 141, 141, 135, - 135, 48, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 83, 83, 83, - 83, 83, 83, 48, 48, 48, 48, 48, 48, 141, 141, 135, 135, 48, 48, 48, 48, - 135, 135, 135, 48, 141, 141, 141, 48, 48, 141, 141, 141, 141, 141, 141, - 141, 48, 48, 48, 135, 135, 135, 135, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 135, 141, 141, 135, 135, 141, 141, 141, 141, 141, 141, - 86, 48, 141, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 141, 141, - 141, 135, 80, 80, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, + 48, 48, 48, 48, 48, 48, 48, 48, 142, 48, 48, 48, 48, 141, 141, 135, 151, + 135, 135, 141, 135, 135, 135, 135, 135, 147, 141, 144, 144, 141, 141, + 135, 135, 48, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 83, 83, + 83, 83, 83, 83, 48, 48, 48, 48, 48, 48, 141, 141, 135, 135, 48, 48, 48, + 48, 135, 135, 135, 48, 141, 141, 141, 48, 48, 141, 141, 141, 141, 141, + 141, 141, 48, 48, 48, 135, 135, 135, 135, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 135, 141, 141, 135, 135, 141, 141, 141, 141, 141, + 141, 86, 48, 141, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 141, + 141, 141, 135, 80, 80, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 0, 44, 0, 0, 0, 0, 0, 44, 0, 0, 47, 47, 47, 47, + 44, 44, 44, 44, 44, 44, 44, 44, 0, 44, 0, 0, 0, 0, 0, 44, 0, 0, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 83, 51, 47, 47, 47, 172, 172, 172, 172, 172, 172, 172, 172, + 47, 47, 47, 47, 47, 83, 51, 47, 47, 47, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 48, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 48, 48, 48, 48, + 172, 172, 172, 172, 172, 172, 48, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 173, 173, 173, 173, 173, 173, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 173, 173, 173, 173, 173, 173, 173, 173, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, - 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 0, 48, 48, 48, - 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, + 0, 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 0, 48, 48, + 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 0, 0, 48, 48, - 48, 48, 48, 48, 48, 0, 48, 0, 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 0, 0, 48, + 48, 48, 48, 48, 48, 48, 0, 48, 0, 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, - 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, + 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 81, 81, - 81, 83, 83, 83, 83, 83, 83, 83, 83, 83, 150, 150, 150, 150, 150, 150, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 81, + 81, 81, 83, 83, 83, 83, 83, 83, 83, 83, 83, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 44, 44, 44, 44, 44, @@ -2259,7 +2260,7 @@ static const unsigned short index2[] = { 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 0, 0, 280, 280, 280, 280, 280, 280, 280, + 280, 280, 280, 280, 280, 280, 281, 281, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, @@ -2267,22 +2268,23 @@ static const unsigned short index2[] = { 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, - 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 35, 35, 35, 35, 35, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 35, 35, 35, 0, 0, 0, 0, 0, - 281, 282, 281, 283, 283, 283, 283, 283, 283, 283, 283, 283, 219, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 0, 281, 281, - 281, 281, 281, 0, 281, 0, 281, 281, 0, 281, 281, 0, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 283, 131, 131, 131, 131, 131, 131, 131, 131, + 280, 280, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 35, 35, 35, + 35, 35, 35, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 35, 35, 35, + 0, 0, 0, 0, 0, 282, 283, 282, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 219, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, + 282, 0, 282, 282, 282, 282, 282, 0, 282, 0, 282, 282, 0, 282, 282, 0, + 282, 282, 282, 282, 282, 282, 282, 282, 282, 284, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, @@ -2299,26 +2301,26 @@ static const unsigned short index2[] = { 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, - 131, 284, 199, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 285, 199, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 131, 131, 0, 0, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 0, 0, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 131, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, - 131, 285, 26, 26, 26, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 286, 286, 286, 286, 286, 286, 286, 287, 288, 286, 0, 0, 0, 0, - 0, 0, 81, 81, 81, 81, 81, 81, 81, 86, 86, 86, 86, 86, 86, 86, 81, 81, - 286, 289, 289, 290, 290, 287, 288, 287, 288, 287, 288, 287, 288, 287, - 288, 287, 288, 287, 288, 287, 288, 253, 253, 287, 288, 286, 286, 286, - 286, 290, 290, 290, 291, 286, 291, 0, 286, 291, 286, 286, 289, 292, 293, - 292, 293, 292, 293, 294, 286, 286, 295, 296, 297, 297, 298, 0, 286, 299, - 294, 286, 0, 0, 0, 0, 131, 131, 131, 118, 131, 0, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 0, 0, 0, 0, 0, 0, + 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 286, 26, 26, 26, 71, 71, 71, 71, 71, 71, 71, 71, 71, + 71, 71, 71, 71, 71, 71, 71, 287, 287, 287, 287, 287, 287, 287, 288, 289, + 287, 0, 0, 0, 0, 0, 0, 81, 81, 81, 81, 81, 81, 81, 86, 86, 86, 86, 86, + 86, 86, 81, 81, 287, 290, 290, 291, 291, 288, 289, 288, 289, 288, 289, + 288, 289, 288, 289, 288, 289, 288, 289, 288, 289, 253, 253, 288, 289, + 287, 287, 287, 287, 291, 291, 291, 292, 287, 292, 0, 287, 292, 287, 287, + 290, 293, 294, 293, 294, 293, 294, 295, 287, 287, 296, 297, 298, 298, + 299, 0, 287, 300, 295, 287, 0, 0, 0, 0, 131, 131, 131, 118, 131, 0, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, @@ -2328,464 +2330,477 @@ static const unsigned short index2[] = { 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 0, 0, 177, 0, 300, 300, 301, 302, 301, 300, 300, - 303, 304, 300, 305, 306, 307, 306, 306, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 306, 300, 309, 310, 309, 300, 300, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 303, 300, 304, 312, 313, - 312, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, - 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 303, - 310, 304, 310, 303, 304, 315, 316, 317, 315, 315, 318, 318, 318, 318, - 318, 318, 318, 318, 318, 318, 319, 318, 318, 318, 318, 318, 318, 318, - 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, - 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, - 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 319, 319, 318, 318, - 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, - 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, - 318, 0, 0, 0, 318, 318, 318, 318, 318, 318, 0, 0, 318, 318, 318, 318, - 318, 318, 0, 0, 318, 318, 318, 318, 318, 318, 0, 0, 318, 318, 318, 0, 0, - 0, 302, 302, 310, 312, 320, 302, 302, 0, 321, 322, 322, 322, 322, 321, - 321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 323, 323, 323, 26, 30, 0, 0, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 0, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 131, 131, 131, 131, 131, 131, 131, 131, 0, 0, 177, 0, 301, 301, 302, 303, + 302, 301, 301, 304, 305, 301, 306, 307, 308, 307, 307, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 307, 301, 310, 311, 310, 301, 301, + 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, + 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 304, 301, + 305, 313, 314, 313, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, + 315, 315, 304, 311, 305, 311, 304, 305, 316, 317, 318, 316, 316, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 320, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 320, + 320, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 0, 0, 0, 319, 319, 319, 319, 319, 319, 0, 0, 319, + 319, 319, 319, 319, 319, 0, 0, 319, 319, 319, 319, 319, 319, 0, 0, 319, + 319, 319, 0, 0, 0, 303, 303, 311, 313, 321, 303, 303, 0, 322, 323, 323, + 323, 323, 322, 322, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 324, 324, 324, 26, 30, + 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 0, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 0, 0, 0, 0, 0, 83, 138, 83, 0, 0, 0, 0, 150, 150, 150, + 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 83, 138, 83, 0, 0, 0, 0, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 0, - 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 324, 324, 324, 324, 324, 324, - 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - 324, 324, 324, 324, 324, 155, 155, 155, 155, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 155, 155, 26, 80, 80, 0, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 26, 0, 0, 0, 0, 0, + 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, + 150, 150, 0, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 325, 325, 325, + 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, + 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, + 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, + 325, 325, 325, 325, 325, 325, 325, 325, 155, 155, 155, 155, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 155, 155, 26, 80, + 80, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 80, 80, 80, 80, 80, 80, 80, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 325, 325, 325, - 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, - 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 0, 0, 0, 0, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 150, 150, 150, 150, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 175, 48, 48, 48, 48, 48, 48, 48, 48, 175, 0, 0, - 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 0, 0, 0, + 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 150, 150, + 150, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 175, 48, 48, 48, 48, 48, 48, + 48, 48, 175, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 81, 81, 81, 81, 81, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 81, 81, 81, 81, 81, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 0, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, - 48, 48, 83, 175, 175, 175, 175, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 48, + 48, 48, 48, 48, 48, 48, 48, 83, 175, 175, 175, 175, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, + 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 47, 47, 47, 47, + 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 0, 0, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 0, 0, 0, 0, 0, 0, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, + 48, 48, 48, 48, 48, 48, 0, 0, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 0, 0, 0, 0, 0, 0, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 0, 0, 0, 0, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, + 44, 44, 44, 44, 44, 44, 44, 0, 0, 0, 0, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, + 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 83, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 0, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 0, 44, 44, 44, 44, - 44, 44, 44, 0, 44, 44, 0, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 0, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 0, 47, 47, - 47, 47, 47, 47, 47, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 44, 44, 44, 44, 44, 44, 44, + 44, 44, 44, 44, 0, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, + 44, 44, 0, 44, 44, 44, 44, 44, 44, 44, 0, 44, 44, 0, 47, 47, 47, 47, 47, + 47, 47, 47, 47, 47, 47, 0, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, + 47, 47, 47, 47, 0, 47, 47, 47, 47, 47, 47, 47, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 51, 51, 51, 51, - 51, 0, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, + 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 53, 51, 51, 51, 51, 51, 0, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 0, 51, 51, 51, 51, 51, 51, 51, 51, 51, 0, + 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 0, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, - 107, 107, 107, 107, 0, 0, 107, 0, 107, 107, 107, 107, 107, 107, 107, 107, + 0, 0, 0, 107, 107, 107, 107, 107, 107, 0, 0, 107, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 0, 107, 107, 0, 0, 0, 107, 0, 0, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 107, 107, + 0, 0, 0, 107, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 104, + 327, 327, 327, 327, 327, 327, 327, 327, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 104, 326, 326, 326, 326, - 326, 326, 326, 326, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 327, - 327, 326, 326, 326, 326, 326, 326, 326, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 328, 328, 327, 327, 327, 327, 327, 327, 327, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 0, 0, 0, 0, - 0, 0, 326, 326, 326, 326, 326, 326, 326, 326, 326, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 0, 107, 107, 0, 0, 0, 0, 0, 326, 326, 326, 326, 326, 107, 107, 107, + 107, 0, 0, 0, 0, 0, 0, 0, 0, 327, 327, 327, 327, 327, 327, 327, 327, 327, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 326, 326, 326, 326, 326, 326, 0, 0, 0, 138, 107, + 107, 107, 107, 107, 107, 0, 107, 107, 0, 0, 0, 0, 0, 327, 327, 327, 327, + 327, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 327, 327, 327, 327, 327, + 327, 0, 0, 0, 138, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 0, 0, 0, - 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 107, 0, 0, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 0, 0, 326, 326, - 107, 107, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 0, 0, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 107, 135, 135, 135, 0, 135, - 135, 0, 0, 0, 0, 0, 135, 86, 135, 81, 107, 107, 107, 107, 0, 107, 107, - 107, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 0, 0, 81, 178, 86, 0, 0, 0, 0, 144, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 0, 0, 0, 0, 0, 0, 0, 104, 104, 104, 104, 104, 104, - 104, 104, 104, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, + 0, 0, 0, 327, 327, 107, 107, 327, 327, 327, 327, 327, 327, 327, 327, 327, + 327, 327, 327, 327, 327, 327, 327, 0, 0, 327, 327, 327, 327, 327, 327, + 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, + 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, + 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 107, 135, + 135, 135, 0, 135, 135, 0, 0, 0, 0, 0, 135, 86, 135, 81, 107, 107, 107, + 107, 0, 107, 107, 107, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 326, 326, 104, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 0, 0, 81, 178, 86, 0, 0, 0, 0, 144, 327, + 327, 327, 327, 327, 327, 327, 327, 327, 0, 0, 0, 0, 0, 0, 0, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 326, 326, - 326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 327, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 327, 327, + 104, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 81, - 86, 0, 0, 0, 0, 326, 326, 326, 326, 326, 104, 104, 104, 104, 104, 104, - 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 327, 327, 327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, + 107, 107, 107, 328, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 81, 86, 0, 0, 0, 0, 327, 327, 327, 327, 327, 104, + 104, 104, 104, 104, 104, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 0, 0, 0, 138, 138, 138, 138, 138, 138, 138, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 0, 0, 326, 326, 326, 326, 326, 326, 326, - 326, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 0, 0, 0, 0, 0, 326, 326, 326, 326, 326, - 326, 326, 326, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 0, 0, 0, 0, 0, 0, 0, 104, 104, 104, - 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 326, 326, 326, 326, 326, 326, - 326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 0, 138, 138, 138, 138, + 138, 138, 138, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 327, 327, + 327, 327, 327, 327, 327, 327, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 0, 0, 0, + 327, 327, 327, 327, 327, 327, 327, 327, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 0, 0, + 0, 0, 0, 104, 104, 104, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 327, + 327, 327, 327, 327, 327, 327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, - 329, 329, 329, 329, 329, 329, 329, 329, 329, 0, 0, 0, 0, 0, 0, 0, 326, - 326, 326, 326, 326, 326, 118, 118, 118, 118, 118, 118, 118, 118, 118, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, + 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, + 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, + 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 0, 0, 0, + 0, 0, 0, 0, 327, 327, 327, 327, 327, 327, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, - 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 81, 81, - 81, 81, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, + 118, 118, 81, 81, 81, 81, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, - 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, - 330, 330, 330, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 0, 0, 0, 0, 0, 0, 0, 0, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, + 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, + 331, 331, 331, 331, 331, 331, 331, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 0, 81, 81, 102, 0, 0, 107, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 107, 107, 107, 107, 107, 107, 107, 0, 81, 81, 102, 0, 0, 107, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 107, 0, 0, 0, 0, 0, 0, 0, 0, - 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, - 118, 118, 118, 118, 118, 118, 118, 118, 86, 86, 81, 81, 81, 86, 81, 86, - 86, 86, 86, 331, 331, 331, 331, 113, 113, 113, 113, 113, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 81, - 86, 81, 86, 104, 104, 104, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 86, 86, 86, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 326, 326, 326, 326, 326, 326, 326, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 141, 135, 141, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, - 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 144, 83, - 83, 83, 83, 83, 83, 83, 0, 0, 0, 0, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 146, - 146, 146, 146, 146, 146, 146, 146, 146, 146, 144, 48, 48, 135, 135, 48, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 135, 135, 141, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 142, - 48, 142, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 142, 48, - 48, 48, 48, 141, 141, 141, 135, 135, 135, 135, 141, 141, 144, 143, 83, - 83, 192, 83, 83, 83, 83, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 0, 0, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 146, 146, 146, 146, 146, - 146, 146, 146, 146, 146, 0, 0, 0, 0, 0, 0, 81, 81, 81, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 151, 135, 135, - 135, 135, 141, 135, 152, 152, 135, 135, 135, 144, 144, 0, 146, 146, 146, - 146, 146, 146, 146, 146, 146, 146, 83, 83, 83, 83, 48, 141, 141, 48, 0, - 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 107, 107, 107, 107, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, + 107, 0, 0, 0, 0, 0, 0, 0, 0, 118, 118, 118, 118, 118, 118, 118, 118, 118, + 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 86, 86, + 81, 81, 81, 86, 81, 86, 86, 86, 86, 332, 332, 332, 332, 113, 113, 113, + 113, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 81, 86, 81, 86, 104, 104, 104, 104, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 327, 327, 327, + 327, 327, 327, 327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 141, 135, 141, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + 135, 135, 144, 83, 83, 83, 83, 83, 83, 83, 0, 0, 0, 0, 155, 155, 155, + 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, + 155, 155, 155, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 144, 48, + 48, 135, 135, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 135, 135, 141, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 142, 48, 142, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 142, 48, 48, 48, 48, 141, 141, 141, 135, 135, 135, 135, 141, 141, + 144, 143, 83, 83, 192, 83, 83, 83, 83, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 192, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 0, 0, 0, 0, 0, 0, 81, 81, 81, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 151, + 135, 135, 135, 135, 141, 135, 152, 152, 135, 135, 135, 144, 144, 0, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 83, 83, 83, 83, 48, 141, + 141, 48, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 147, 83, 83, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 135, 135, 141, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 147, 83, 83, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, 135, - 141, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 141, 141, 141, 135, - 135, 135, 135, 135, 135, 135, 135, 135, 141, 176, 48, 48, 48, 48, 83, 83, - 83, 83, 135, 147, 135, 135, 83, 141, 135, 146, 146, 146, 146, 146, 146, - 146, 146, 146, 146, 48, 83, 48, 83, 83, 83, 0, 150, 150, 150, 150, 150, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 141, 141, + 141, 135, 135, 135, 135, 135, 135, 135, 135, 135, 141, 176, 48, 48, 48, + 48, 83, 83, 83, 83, 135, 147, 135, 135, 83, 141, 135, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 48, 83, 48, 83, 83, 83, 0, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, - 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 141, - 141, 141, 135, 135, 135, 141, 141, 135, 176, 147, 135, 83, 83, 83, 83, - 83, 83, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, - 48, 48, 48, 48, 48, 0, 48, 0, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 83, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 150, 150, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 141, 141, 141, 135, 135, 135, 141, 141, 135, 176, 147, 135, 83, + 83, 83, 83, 83, 83, 135, 48, 48, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 0, 48, 48, 48, 48, 0, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 83, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 135, 141, 141, 141, 135, 135, 135, 135, 135, 135, 147, 144, 0, 0, 0, 0, - 0, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 0, 0, 0, 0, 0, 0, - 135, 135, 141, 141, 0, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 48, 48, 0, - 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 0, 48, 48, - 48, 48, 48, 0, 147, 147, 48, 148, 141, 135, 141, 141, 141, 141, 0, 0, - 141, 141, 0, 0, 149, 149, 176, 0, 0, 48, 0, 0, 0, 0, 0, 0, 148, 0, 0, 0, - 0, 0, 48, 48, 48, 48, 48, 141, 141, 0, 0, 81, 81, 81, 81, 81, 81, 81, 0, - 0, 0, 81, 81, 81, 81, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 135, 141, 141, 141, 135, 135, 135, 135, 135, 135, 147, + 144, 0, 0, 0, 0, 0, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 0, + 0, 0, 0, 0, 0, 135, 135, 141, 141, 0, 48, 48, 48, 48, 48, 48, 48, 48, 0, + 0, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, + 0, 48, 48, 48, 48, 48, 0, 147, 147, 48, 148, 141, 135, 141, 141, 141, + 141, 0, 0, 141, 141, 0, 0, 149, 149, 176, 0, 0, 48, 0, 0, 0, 0, 0, 0, + 148, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 141, 141, 0, 0, 81, 81, 81, 81, + 81, 81, 81, 0, 0, 0, 81, 81, 81, 81, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 141, 141, 141, - 135, 135, 135, 135, 135, 135, 135, 135, 141, 141, 144, 135, 135, 141, - 147, 48, 48, 48, 48, 83, 83, 83, 83, 83, 146, 146, 146, 146, 146, 146, - 146, 146, 146, 146, 83, 83, 0, 83, 81, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 141, + 141, 141, 135, 135, 135, 135, 135, 135, 135, 135, 141, 141, 144, 135, + 135, 141, 147, 48, 48, 48, 48, 83, 83, 83, 83, 83, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 83, 83, 0, 83, 81, 48, 48, 48, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 148, 141, 141, 135, 135, 135, - 135, 135, 135, 141, 151, 149, 149, 148, 149, 135, 135, 141, 144, 147, 48, - 48, 83, 48, 0, 0, 0, 0, 0, 0, 0, 0, 146, 146, 146, 146, 146, 146, 146, - 146, 146, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 148, 141, 141, 135, + 135, 135, 135, 135, 135, 141, 151, 149, 149, 148, 149, 135, 135, 141, + 144, 147, 48, 48, 83, 48, 0, 0, 0, 0, 0, 0, 0, 0, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 148, 141, 141, 135, 135, 135, 135, 0, 0, 141, - 141, 149, 149, 135, 135, 141, 144, 147, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 48, 48, 48, - 48, 135, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 148, 141, 141, 135, 135, 135, + 135, 0, 0, 141, 141, 149, 149, 135, 135, 141, 144, 147, 83, 83, 83, 83, + 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, + 83, 48, 48, 48, 48, 135, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 141, 141, 141, 135, 135, 135, 135, 135, 135, 135, 135, - 141, 141, 135, 141, 144, 135, 83, 83, 83, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 0, 0, 0, 0, 0, 0, - 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 141, 141, 141, 135, 135, 135, 135, + 135, 135, 135, 135, 141, 141, 135, 141, 144, 135, 83, 83, 83, 48, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 0, 0, 0, 0, 0, 0, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 135, 141, 135, 141, 141, 135, 135, 135, 135, 135, 135, 176, 147, 48, - 83, 0, 0, 0, 0, 0, 0, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 48, 48, 48, 48, 48, 48, 48, 135, 141, 135, 141, 141, 135, 135, 135, 135, + 135, 135, 176, 147, 48, 83, 0, 0, 0, 0, 0, 0, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 0, 0, 135, 135, 135, 141, 141, 135, 135, 135, 135, 141, 135, 135, + 135, 135, 144, 0, 0, 0, 0, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 150, 150, 83, 83, 83, 80, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 135, 135, 135, - 141, 141, 135, 135, 135, 135, 141, 135, 135, 135, 135, 144, 0, 0, 0, 0, - 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 150, 150, 83, 83, 83, - 80, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, + 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 141, 141, 141, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 141, 144, 147, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 141, 141, 141, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 141, 144, 147, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 44, 44, 44, 44, 44, 44, 44, 44, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, + 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, - 48, 48, 48, 48, 48, 0, 0, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 0, - 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 148, 141, 141, 141, 141, 141, 0, 141, - 149, 0, 0, 135, 135, 176, 144, 48, 141, 48, 141, 147, 83, 83, 83, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 0, + 47, 47, 47, 47, 47, 47, 47, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 150, 150, 150, 150, 150, 150, 150, 150, 150, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 48, 0, 0, 48, 48, 48, + 48, 48, 48, 48, 48, 0, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 148, 141, 141, + 141, 141, 141, 0, 141, 149, 0, 0, 135, 135, 176, 144, 48, 141, 48, 141, + 147, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, - 48, 48, 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 141, 141, 141, 135, 135, 135, - 135, 0, 0, 135, 135, 141, 141, 141, 141, 144, 48, 83, 48, 141, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48, 135, 135, 135, 135, 135, 135, 156, 156, 135, 135, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 141, 141, + 141, 135, 135, 135, 135, 0, 0, 135, 135, 141, 141, 141, 141, 144, 48, 83, + 48, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 48, 135, 135, 135, 135, 135, 135, 156, 156, 135, 135, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, - 144, 135, 135, 135, 135, 141, 48, 135, 135, 135, 135, 83, 83, 83, 83, 83, - 83, 83, 83, 144, 0, 0, 0, 0, 0, 0, 0, 0, 48, 135, 135, 135, 135, 135, - 135, 141, 141, 135, 135, 135, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, - 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 141, 135, - 144, 83, 83, 83, 48, 83, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 135, 144, 135, 135, 135, 135, 141, 48, 135, 135, 135, + 135, 83, 83, 83, 83, 83, 83, 83, 83, 144, 0, 0, 0, 0, 0, 0, 0, 0, 48, + 135, 135, 135, 135, 135, 135, 141, 141, 135, 135, 135, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 141, 135, 144, 83, 83, 83, 48, 83, 83, 83, 83, 83, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 141, 135, 135, 135, 135, 135, 135, 135, 0, 135, 135, 135, 135, 135, 135, - 141, 332, 48, 83, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 146, - 146, 146, 146, 146, 146, 146, 146, 146, 150, 150, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 0, 0, 0, - 83, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 135, 135, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 83, 83, 83, 83, + 83, 83, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 141, 135, + 135, 135, 135, 135, 135, 135, 0, 135, 135, 135, 135, 135, 135, 141, 333, + 48, 83, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 150, 150, 150, 150, 150, 150, 150, 150, + 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 0, 0, 0, 83, 83, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 135, 135, 135, 135, 0, 141, 135, 135, 135, 135, 135, 135, 135, - 141, 135, 135, 141, 135, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 135, 135, 135, 135, 0, 141, 135, 135, 135, 135, 135, 135, 135, 141, 135, + 135, 141, 135, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, - 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 0, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 135, 135, 135, 135, 135, 135, 0, 0, 0, 135, 0, 135, 135, 0, - 135, 135, 135, 147, 135, 144, 144, 48, 135, 0, 0, 0, 0, 0, 0, 0, 0, 146, - 146, 146, 146, 146, 146, 146, 146, 146, 146, 0, 0, 0, 0, 0, 0, 48, 48, - 48, 48, 48, 48, 0, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 135, 135, 135, 135, 135, 135, 0, 0, 0, 135, 0, 135, 135, 0, 135, 135, + 135, 147, 135, 144, 144, 48, 135, 0, 0, 0, 0, 0, 0, 0, 0, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, + 48, 0, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 141, 141, 141, 141, 141, 0, 135, 135, 0, 141, 141, 135, 141, - 144, 48, 0, 0, 0, 0, 0, 0, 0, 146, 146, 146, 146, 146, 146, 146, 146, - 146, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 141, 141, 141, 141, 141, 0, 135, 135, 0, 141, 141, 135, 141, 144, 48, 0, + 0, 0, 0, 0, 0, 0, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, 135, 141, - 141, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 150, 150, 26, 26, 26, 26, 26, 26, 26, 26, - 85, 85, 85, 85, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 48, 48, 48, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, 135, 141, 141, 83, 83, 0, 0, + 0, 0, 0, 0, 0, 135, 135, 48, 141, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 48, 141, 141, 135, 135, 135, 135, 135, 0, 0, 0, 141, 141, 135, 176, + 144, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, + 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 150, 150, 150, + 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, + 150, 150, 150, 26, 26, 26, 26, 26, 26, 26, 26, 85, 85, 85, 85, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 0, 83, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 0, + 83, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 135, 48, 48, 48, 48, 48, 48, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 146, 146, 146, - 146, 146, 146, 146, 146, 146, 146, 0, 0, 0, 0, 83, 83, 48, 48, 48, 48, + 48, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 0, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 0, 0, 0, 0, 83, + 83, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 0, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 0, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 0, 0, 0, - 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 178, 178, - 178, 178, 178, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, + 48, 48, 0, 0, 178, 178, 178, 178, 178, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 81, 81, 81, 81, 81, 81, 81, 83, 83, 83, 83, 83, - 80, 80, 80, 80, 53, 53, 53, 53, 83, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 0, 150, 150, 150, 150, - 150, 150, 150, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 81, 81, 81, 81, 81, 81, + 81, 83, 83, 83, 83, 83, 80, 80, 80, 80, 53, 53, 53, 53, 83, 80, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 0, + 150, 150, 150, 150, 150, 150, 150, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2793,30 +2808,30 @@ static const unsigned short index2[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 150, 150, 150, 150, 150, 150, + 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, - 150, 150, 150, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 150, 150, 150, 150, 150, 150, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 135, - 48, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 0, 0, 0, 0, 135, 48, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, + 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 0, 0, 0, - 0, 0, 0, 0, 135, 135, 135, 135, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 141, 141, 141, 0, 0, 0, 0, 0, 0, 0, 135, 135, 135, 135, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254, 254, - 253, 254, 333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 334, 334, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 254, 254, 253, 254, 334, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 335, 335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, @@ -2824,17 +2839,17 @@ static const unsigned short index2[] = { 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 172, 172, 172, 172, 172, 172, 172, 172, 172, 0, 0, 0, 0, 0, 0, 0, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2843,14 +2858,14 @@ static const unsigned short index2[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 254, 254, 254, 254, 0, 254, 254, 254, 254, 254, - 254, 254, 0, 254, 254, 0, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254, 254, 254, 254, 0, + 254, 254, 254, 254, 254, 254, 254, 0, 254, 254, 0, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 0, 0, 0, 0, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 172, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 0, 0, 172, 172, 172, 0, 0, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 172, 172, 172, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, @@ -2860,73 +2875,74 @@ static const unsigned short index2[] = { 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 172, 172, 172, 172, 172, 172, 172, 172, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, - 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 80, 135, 178, - 83, 177, 177, 177, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 0, 0, 80, 135, 178, 83, 177, 177, 177, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 135, 135, 135, 135, 0, 0, 135, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 0, 0, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 135, 135, 135, 135, 135, 135, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 336, 336, + 336, 336, 336, 336, 336, 337, 337, 178, 178, 178, 80, 80, 80, 338, 337, + 337, 337, 337, 337, 177, 177, 177, 177, 177, 177, 177, 177, 86, 86, 86, + 86, 86, 86, 86, 86, 80, 80, 81, 81, 81, 81, 81, 86, 86, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 335, 335, 335, 335, 335, 335, 335, - 336, 336, 178, 178, 178, 80, 80, 80, 337, 336, 336, 336, 336, 336, 177, - 177, 177, 177, 177, 177, 177, 177, 86, 86, 86, 86, 86, 86, 86, 86, 80, - 80, 81, 81, 81, 81, 81, 86, 86, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 81, 81, 81, 81, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 336, 336, 336, 336, 336, 336, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 81, 81, 81, 81, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 335, 335, 335, 335, 335, 335, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 26, 26, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 81, 81, 81, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 81, 81, 81, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, + 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, + 150, 150, 150, 150, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, + 150, 150, 150, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 0, 0, 0, 0, 0, 0, 0, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 35, 35, 35, 35, 35, 35, 35, 35, 35, @@ -2966,26 +2982,26 @@ static const unsigned short index2[] = { 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 0, 0, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 338, 35, 35, 35, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 339, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 230, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 338, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 339, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 230, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 338, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 49, 49, 49, 49, 339, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 230, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 338, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 49, 49, 49, 49, 49, 49, 49, 49, 339, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 230, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 338, 35, 35, 35, 35, 35, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 339, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 230, 35, 35, 35, 35, 35, 35, 49, 35, 0, 0, 339, 339, 339, 339, - 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, - 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, - 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, - 339, 339, 339, 339, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + 35, 35, 230, 35, 35, 35, 35, 35, 35, 49, 35, 0, 0, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, @@ -3001,36 +3017,48 @@ static const unsigned short index2[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 48, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 0, 0, 0, 0, 0, 0, 0, + 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 0, 0, 0, 0, 0, 0, 47, + 47, 47, 47, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 81, 81, 81, + 81, 81, 81, 0, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, + 81, 81, 81, 0, 0, 81, 81, 81, 81, 81, 81, 81, 0, 81, 81, 0, 81, 81, 81, + 81, 81, 0, 0, 0, 0, 0, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 81, 81, 81, 81, - 81, 81, 0, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 0, 0, 81, 81, 81, 81, 81, 81, 81, 0, 81, 81, 0, 81, 81, 81, 81, - 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 0, 0, 0, 81, 81, 81, 81, 81, 81, 81, 53, 53, 53, 53, 53, 53, 53, 0, - 0, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 0, 0, 0, 0, 48, 80, + 48, 48, 48, 48, 48, 48, 0, 0, 0, 81, 81, 81, 81, 81, 81, 81, 53, 53, 53, + 53, 53, 53, 53, 0, 0, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 0, 0, 0, 0, 48, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 81, 81, 81, 81, 146, 146, 146, 146, - 146, 146, 146, 146, 146, 146, 0, 0, 0, 0, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 81, 81, 81, 81, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 0, 0, 0, 0, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, - 48, 0, 48, 48, 48, 48, 0, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 53, 182, 182, 86, 81, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, + 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 0, 48, 48, 0, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, @@ -3044,111 +3072,111 @@ static const unsigned short index2[] = { 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 0, 0, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 86, 86, 86, 86, 86, 86, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 327, 327, 327, 327, + 327, 327, 327, 327, 327, 86, 86, 86, 86, 86, 86, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 329, 329, 329, 329, 329, - 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, - 329, 81, 81, 81, 81, 81, 81, 147, 137, 0, 0, 0, 0, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 0, 0, 0, 0, 104, 104, 0, 0, 0, 0, 0, 0, 0, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 330, 330, + 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, + 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, + 330, 330, 330, 330, 81, 81, 81, 81, 81, 81, 147, 137, 0, 0, 0, 0, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 0, 0, 0, 0, 104, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 331, 331, 331, 331, - 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, - 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, - 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, - 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 133, - 331, 331, 331, 111, 331, 331, 331, 331, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 332, + 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, + 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, + 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, + 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, + 332, 332, 133, 332, 332, 332, 111, 332, 332, 332, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 331, 331, 331, 331, - 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, - 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, - 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 133, - 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, - 331, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, 131, 131, - 131, 0, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 0, - 131, 131, 0, 131, 0, 0, 131, 0, 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 0, 131, 131, 131, 131, 0, 131, 0, 131, 0, 0, 0, 0, 0, 0, 131, - 0, 0, 0, 0, 131, 0, 131, 0, 131, 0, 131, 131, 131, 0, 131, 131, 0, 131, - 0, 0, 131, 0, 131, 0, 131, 0, 131, 0, 131, 0, 131, 131, 0, 131, 0, 0, - 131, 131, 131, 131, 0, 131, 131, 131, 131, 131, 131, 131, 0, 131, 131, - 131, 131, 0, 131, 131, 131, 131, 0, 131, 0, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 0, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 0, 0, 0, 0, 0, 131, 131, 131, 0, 131, - 131, 131, 131, 131, 0, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 332, + 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, + 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, + 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, + 332, 332, 133, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, + 332, 332, 332, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 78, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 243, 26, 26, 26, 26, 26, 26, 26, 26, + 131, 131, 131, 131, 0, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 0, 131, 131, 0, 131, 0, 0, 131, 0, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 0, 131, 131, 131, 131, 0, 131, 0, 131, 0, + 0, 0, 0, 0, 0, 131, 0, 0, 0, 0, 131, 0, 131, 0, 131, 0, 131, 131, 131, 0, + 131, 131, 0, 131, 0, 0, 131, 0, 131, 0, 131, 0, 131, 0, 131, 0, 131, 131, + 0, 131, 0, 0, 131, 131, 131, 131, 0, 131, 131, 131, 131, 131, 131, 131, + 0, 131, 131, 131, 131, 0, 131, 131, 131, 131, 0, 131, 0, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 0, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 0, 0, 0, 0, 0, 131, + 131, 131, 0, 131, 131, 131, 131, 131, 0, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 78, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 243, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 243, 0, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 243, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 155, 155, 26, 26, 26, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 155, + 155, 26, 26, 26, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 340, 26, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 341, 26, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 226, 226, 226, 26, 26, 26, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 272, 341, - 246, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 274, 274, - 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 274, 274, 274, 274, 274, 274, + 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 342, 342, 342, 342, + 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, + 342, 342, 342, 342, 342, 342, 342, 342, 226, 226, 226, 26, 26, 26, 342, + 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, + 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, + 342, 272, 342, 246, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, + 342, 342, 342, 342, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 274, 274, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 0, 0, 0, 0, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 0, 0, 0, 0, 0, 0, 0, 274, 274, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 243, 243, 243, 243, 243, 243, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 0, + 0, 0, 0, 274, 274, 274, 274, 274, 274, 274, 274, 274, 0, 0, 0, 0, 0, 0, + 0, 274, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 243, 243, 243, + 243, 243, 243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 26, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 26, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 26, 26, - 26, 26, 243, 243, 243, 243, 243, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 26, 26, 26, 243, 26, 26, 26, 243, 243, 243, 342, 342, - 342, 342, 342, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 26, 26, 26, 26, 243, 243, 243, 243, 243, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 26, 26, 26, 243, 26, 26, 26, + 243, 243, 243, 343, 343, 343, 343, 343, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 26, 243, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 26, 243, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, @@ -3161,71 +3189,72 @@ static const unsigned short index2[] = { 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 26, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 26, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 243, 243, 243, 243, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 243, 26, 26, 26, 26, 26, 26, 26, + 243, 243, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 243, 243, + 243, 243, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 243, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 243, 243, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 243, + 26, 26, 26, 26, 26, 26, 243, 243, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 243, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 243, 243, 243, 243, 243, 243, 243, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 26, 26, 26, 26, 26, 26, 243, 26, 26, - 26, 243, 243, 243, 26, 26, 243, 243, 243, 0, 0, 0, 0, 0, 243, 243, 243, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 243, 243, 0, 0, 0, 26, 26, - 26, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 0, 0, 0, 26, 26, 26, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 26, 26, 26, 26, 26, 26, + 243, 26, 26, 26, 243, 243, 243, 26, 26, 243, 243, 243, 0, 0, 0, 0, 243, + 243, 243, 243, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 243, 243, 0, + 0, 0, 26, 26, 26, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 0, 0, + 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 0, 0, 0, 0, - 243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 0, 0, 0, 0, 0, 0, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 0, 0, 0, 0, 243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, - 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 26, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, + 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 0, 0, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 243, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 26, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, @@ -3237,22 +3266,22 @@ static const unsigned short index2[] = { 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 0, 0, 243, 243, 243, 243, 243, 0, 0, 0, 243, 243, 243, 243, - 243, 0, 0, 0, 243, 243, 243, 243, 243, 243, 243, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 0, 0, 0, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 0, 0, 0, 0, 0, 0, 0, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 0, 0, 0, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 0, - 0, 0, 0, 0, 243, 243, 243, 243, 243, 243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 0, 0, 0, 0, 0, 0, 243, - 243, 243, 243, 243, 243, 243, 243, 0, 0, 0, 0, 0, 0, 0, 0, 243, 243, 243, - 243, 243, 243, 243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 0, 243, 243, + 243, 243, 243, 243, 243, 0, 0, 0, 0, 0, 0, 0, 0, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 0, 0, 0, 0, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 0, 0, 0, 0, 0, 0, 0, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, @@ -3260,32 +3289,34 @@ static const unsigned short index2[] = { 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 339, 339, 339, 339, 339, 339, 339, 339, - 339, 339, 0, 0, 0, 0, 0, 0, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 0, 0, 0, 0, 0, 0, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 0, 0, 0, 0, 0, 0, 0, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 281, 281, 281, 281, 281, + 281, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 281, 281, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 0, 0, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, @@ -3294,9 +3325,8 @@ static const unsigned short index2[] = { 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, @@ -3308,30 +3338,63 @@ static const unsigned short index2[] = { 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 172, 172, 172, 172, + 280, 280, 280, 280, 280, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 0, 0, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 281, 281, 281, + 281, 281, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 0, 177, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, + 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, @@ -3344,8 +3407,8 @@ static const unsigned short index2[] = { 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, + 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, + 71, 71, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, @@ -3354,7 +3417,7 @@ static const unsigned short index2[] = { 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 0, 0, + 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 0, 0, }; /* decomposition data */ @@ -3420,121 +3483,120 @@ static const unsigned int decomp_data[] = { 259, 121, 514, 32, 774, 514, 32, 775, 514, 32, 778, 514, 32, 808, 514, 32, 771, 514, 32, 779, 259, 611, 259, 108, 259, 115, 259, 120, 259, 661, 256, 768, 256, 769, 256, 787, 512, 776, 769, 256, 697, 514, 32, 837, 256, - 59, 514, 32, 769, 512, 168, 769, 512, 913, 769, 256, 183, 512, 917, 769, - 512, 919, 769, 512, 921, 769, 512, 927, 769, 512, 933, 769, 512, 937, - 769, 512, 970, 769, 512, 921, 776, 512, 933, 776, 512, 945, 769, 512, - 949, 769, 512, 951, 769, 512, 953, 769, 512, 971, 769, 512, 953, 776, - 512, 965, 776, 512, 959, 769, 512, 965, 769, 512, 969, 769, 258, 946, - 258, 952, 258, 933, 512, 978, 769, 512, 978, 776, 258, 966, 258, 960, - 258, 954, 258, 961, 258, 962, 258, 920, 258, 949, 258, 931, 512, 1045, - 768, 512, 1045, 776, 512, 1043, 769, 512, 1030, 776, 512, 1050, 769, 512, - 1048, 768, 512, 1059, 774, 512, 1048, 774, 512, 1080, 774, 512, 1077, - 768, 512, 1077, 776, 512, 1075, 769, 512, 1110, 776, 512, 1082, 769, 512, - 1080, 768, 512, 1091, 774, 512, 1140, 783, 512, 1141, 783, 512, 1046, - 774, 512, 1078, 774, 512, 1040, 774, 512, 1072, 774, 512, 1040, 776, 512, - 1072, 776, 512, 1045, 774, 512, 1077, 774, 512, 1240, 776, 512, 1241, - 776, 512, 1046, 776, 512, 1078, 776, 512, 1047, 776, 512, 1079, 776, 512, - 1048, 772, 512, 1080, 772, 512, 1048, 776, 512, 1080, 776, 512, 1054, - 776, 512, 1086, 776, 512, 1256, 776, 512, 1257, 776, 512, 1069, 776, 512, - 1101, 776, 512, 1059, 772, 512, 1091, 772, 512, 1059, 776, 512, 1091, - 776, 512, 1059, 779, 512, 1091, 779, 512, 1063, 776, 512, 1095, 776, 512, - 1067, 776, 512, 1099, 776, 514, 1381, 1410, 512, 1575, 1619, 512, 1575, - 1620, 512, 1608, 1620, 512, 1575, 1621, 512, 1610, 1620, 514, 1575, 1652, - 514, 1608, 1652, 514, 1735, 1652, 514, 1610, 1652, 512, 1749, 1620, 512, - 1729, 1620, 512, 1746, 1620, 512, 2344, 2364, 512, 2352, 2364, 512, 2355, - 2364, 512, 2325, 2364, 512, 2326, 2364, 512, 2327, 2364, 512, 2332, 2364, - 512, 2337, 2364, 512, 2338, 2364, 512, 2347, 2364, 512, 2351, 2364, 512, - 2503, 2494, 512, 2503, 2519, 512, 2465, 2492, 512, 2466, 2492, 512, 2479, - 2492, 512, 2610, 2620, 512, 2616, 2620, 512, 2582, 2620, 512, 2583, 2620, - 512, 2588, 2620, 512, 2603, 2620, 512, 2887, 2902, 512, 2887, 2878, 512, - 2887, 2903, 512, 2849, 2876, 512, 2850, 2876, 512, 2962, 3031, 512, 3014, - 3006, 512, 3015, 3006, 512, 3014, 3031, 512, 3142, 3158, 512, 3263, 3285, - 512, 3270, 3285, 512, 3270, 3286, 512, 3270, 3266, 512, 3274, 3285, 512, - 3398, 3390, 512, 3399, 3390, 512, 3398, 3415, 512, 3545, 3530, 512, 3545, - 3535, 512, 3548, 3530, 512, 3545, 3551, 514, 3661, 3634, 514, 3789, 3762, - 514, 3755, 3737, 514, 3755, 3745, 257, 3851, 512, 3906, 4023, 512, 3916, - 4023, 512, 3921, 4023, 512, 3926, 4023, 512, 3931, 4023, 512, 3904, 4021, - 512, 3953, 3954, 512, 3953, 3956, 512, 4018, 3968, 514, 4018, 3969, 512, - 4019, 3968, 514, 4019, 3969, 512, 3953, 3968, 512, 3986, 4023, 512, 3996, - 4023, 512, 4001, 4023, 512, 4006, 4023, 512, 4011, 4023, 512, 3984, 4021, - 512, 4133, 4142, 259, 4316, 512, 6917, 6965, 512, 6919, 6965, 512, 6921, - 6965, 512, 6923, 6965, 512, 6925, 6965, 512, 6929, 6965, 512, 6970, 6965, - 512, 6972, 6965, 512, 6974, 6965, 512, 6975, 6965, 512, 6978, 6965, 259, - 65, 259, 198, 259, 66, 259, 68, 259, 69, 259, 398, 259, 71, 259, 72, 259, - 73, 259, 74, 259, 75, 259, 76, 259, 77, 259, 78, 259, 79, 259, 546, 259, - 80, 259, 82, 259, 84, 259, 85, 259, 87, 259, 97, 259, 592, 259, 593, 259, - 7426, 259, 98, 259, 100, 259, 101, 259, 601, 259, 603, 259, 604, 259, - 103, 259, 107, 259, 109, 259, 331, 259, 111, 259, 596, 259, 7446, 259, - 7447, 259, 112, 259, 116, 259, 117, 259, 7453, 259, 623, 259, 118, 259, - 7461, 259, 946, 259, 947, 259, 948, 259, 966, 259, 967, 261, 105, 261, - 114, 261, 117, 261, 118, 261, 946, 261, 947, 261, 961, 261, 966, 261, - 967, 259, 1085, 259, 594, 259, 99, 259, 597, 259, 240, 259, 604, 259, - 102, 259, 607, 259, 609, 259, 613, 259, 616, 259, 617, 259, 618, 259, - 7547, 259, 669, 259, 621, 259, 7557, 259, 671, 259, 625, 259, 624, 259, - 626, 259, 627, 259, 628, 259, 629, 259, 632, 259, 642, 259, 643, 259, - 427, 259, 649, 259, 650, 259, 7452, 259, 651, 259, 652, 259, 122, 259, - 656, 259, 657, 259, 658, 259, 952, 512, 65, 805, 512, 97, 805, 512, 66, - 775, 512, 98, 775, 512, 66, 803, 512, 98, 803, 512, 66, 817, 512, 98, - 817, 512, 199, 769, 512, 231, 769, 512, 68, 775, 512, 100, 775, 512, 68, - 803, 512, 100, 803, 512, 68, 817, 512, 100, 817, 512, 68, 807, 512, 100, - 807, 512, 68, 813, 512, 100, 813, 512, 274, 768, 512, 275, 768, 512, 274, - 769, 512, 275, 769, 512, 69, 813, 512, 101, 813, 512, 69, 816, 512, 101, - 816, 512, 552, 774, 512, 553, 774, 512, 70, 775, 512, 102, 775, 512, 71, - 772, 512, 103, 772, 512, 72, 775, 512, 104, 775, 512, 72, 803, 512, 104, - 803, 512, 72, 776, 512, 104, 776, 512, 72, 807, 512, 104, 807, 512, 72, - 814, 512, 104, 814, 512, 73, 816, 512, 105, 816, 512, 207, 769, 512, 239, - 769, 512, 75, 769, 512, 107, 769, 512, 75, 803, 512, 107, 803, 512, 75, - 817, 512, 107, 817, 512, 76, 803, 512, 108, 803, 512, 7734, 772, 512, - 7735, 772, 512, 76, 817, 512, 108, 817, 512, 76, 813, 512, 108, 813, 512, - 77, 769, 512, 109, 769, 512, 77, 775, 512, 109, 775, 512, 77, 803, 512, - 109, 803, 512, 78, 775, 512, 110, 775, 512, 78, 803, 512, 110, 803, 512, - 78, 817, 512, 110, 817, 512, 78, 813, 512, 110, 813, 512, 213, 769, 512, - 245, 769, 512, 213, 776, 512, 245, 776, 512, 332, 768, 512, 333, 768, - 512, 332, 769, 512, 333, 769, 512, 80, 769, 512, 112, 769, 512, 80, 775, - 512, 112, 775, 512, 82, 775, 512, 114, 775, 512, 82, 803, 512, 114, 803, - 512, 7770, 772, 512, 7771, 772, 512, 82, 817, 512, 114, 817, 512, 83, - 775, 512, 115, 775, 512, 83, 803, 512, 115, 803, 512, 346, 775, 512, 347, - 775, 512, 352, 775, 512, 353, 775, 512, 7778, 775, 512, 7779, 775, 512, - 84, 775, 512, 116, 775, 512, 84, 803, 512, 116, 803, 512, 84, 817, 512, - 116, 817, 512, 84, 813, 512, 116, 813, 512, 85, 804, 512, 117, 804, 512, - 85, 816, 512, 117, 816, 512, 85, 813, 512, 117, 813, 512, 360, 769, 512, - 361, 769, 512, 362, 776, 512, 363, 776, 512, 86, 771, 512, 118, 771, 512, - 86, 803, 512, 118, 803, 512, 87, 768, 512, 119, 768, 512, 87, 769, 512, - 119, 769, 512, 87, 776, 512, 119, 776, 512, 87, 775, 512, 119, 775, 512, - 87, 803, 512, 119, 803, 512, 88, 775, 512, 120, 775, 512, 88, 776, 512, - 120, 776, 512, 89, 775, 512, 121, 775, 512, 90, 770, 512, 122, 770, 512, - 90, 803, 512, 122, 803, 512, 90, 817, 512, 122, 817, 512, 104, 817, 512, - 116, 776, 512, 119, 778, 512, 121, 778, 514, 97, 702, 512, 383, 775, 512, - 65, 803, 512, 97, 803, 512, 65, 777, 512, 97, 777, 512, 194, 769, 512, - 226, 769, 512, 194, 768, 512, 226, 768, 512, 194, 777, 512, 226, 777, - 512, 194, 771, 512, 226, 771, 512, 7840, 770, 512, 7841, 770, 512, 258, - 769, 512, 259, 769, 512, 258, 768, 512, 259, 768, 512, 258, 777, 512, - 259, 777, 512, 258, 771, 512, 259, 771, 512, 7840, 774, 512, 7841, 774, - 512, 69, 803, 512, 101, 803, 512, 69, 777, 512, 101, 777, 512, 69, 771, - 512, 101, 771, 512, 202, 769, 512, 234, 769, 512, 202, 768, 512, 234, - 768, 512, 202, 777, 512, 234, 777, 512, 202, 771, 512, 234, 771, 512, - 7864, 770, 512, 7865, 770, 512, 73, 777, 512, 105, 777, 512, 73, 803, - 512, 105, 803, 512, 79, 803, 512, 111, 803, 512, 79, 777, 512, 111, 777, - 512, 212, 769, 512, 244, 769, 512, 212, 768, 512, 244, 768, 512, 212, - 777, 512, 244, 777, 512, 212, 771, 512, 244, 771, 512, 7884, 770, 512, - 7885, 770, 512, 416, 769, 512, 417, 769, 512, 416, 768, 512, 417, 768, - 512, 416, 777, 512, 417, 777, 512, 416, 771, 512, 417, 771, 512, 416, - 803, 512, 417, 803, 512, 85, 803, 512, 117, 803, 512, 85, 777, 512, 117, - 777, 512, 431, 769, 512, 432, 769, 512, 431, 768, 512, 432, 768, 512, - 431, 777, 512, 432, 777, 512, 431, 771, 512, 432, 771, 512, 431, 803, - 512, 432, 803, 512, 89, 768, 512, 121, 768, 512, 89, 803, 512, 121, 803, - 512, 89, 777, 512, 121, 777, 512, 89, 771, 512, 121, 771, 512, 945, 787, - 512, 945, 788, 512, 7936, 768, 512, 7937, 768, 512, 7936, 769, 512, 7937, - 769, 512, 7936, 834, 512, 7937, 834, 512, 913, 787, 512, 913, 788, 512, - 7944, 768, 512, 7945, 768, 512, 7944, 769, 512, 7945, 769, 512, 7944, - 834, 512, 7945, 834, 512, 949, 787, 512, 949, 788, 512, 7952, 768, 512, - 7953, 768, 512, 7952, 769, 512, 7953, 769, 512, 917, 787, 512, 917, 788, - 512, 7960, 768, 512, 7961, 768, 512, 7960, 769, 512, 7961, 769, 512, 951, - 787, 512, 951, 788, 512, 7968, 768, 512, 7969, 768, 512, 7968, 769, 512, - 7969, 769, 512, 7968, 834, 512, 7969, 834, 512, 919, 787, 512, 919, 788, - 512, 7976, 768, 512, 7977, 768, 512, 7976, 769, 512, 7977, 769, 512, - 7976, 834, 512, 7977, 834, 512, 953, 787, 512, 953, 788, 512, 7984, 768, - 512, 7985, 768, 512, 7984, 769, 512, 7985, 769, 512, 7984, 834, 512, + 59, 512, 168, 769, 512, 913, 769, 256, 183, 512, 917, 769, 512, 919, 769, + 512, 921, 769, 512, 927, 769, 512, 933, 769, 512, 937, 769, 512, 970, + 769, 512, 921, 776, 512, 933, 776, 512, 945, 769, 512, 949, 769, 512, + 951, 769, 512, 953, 769, 512, 971, 769, 512, 953, 776, 512, 965, 776, + 512, 959, 769, 512, 965, 769, 512, 969, 769, 258, 946, 258, 952, 258, + 933, 512, 978, 769, 512, 978, 776, 258, 966, 258, 960, 258, 954, 258, + 961, 258, 962, 258, 920, 258, 949, 258, 931, 512, 1045, 768, 512, 1045, + 776, 512, 1043, 769, 512, 1030, 776, 512, 1050, 769, 512, 1048, 768, 512, + 1059, 774, 512, 1048, 774, 512, 1080, 774, 512, 1077, 768, 512, 1077, + 776, 512, 1075, 769, 512, 1110, 776, 512, 1082, 769, 512, 1080, 768, 512, + 1091, 774, 512, 1140, 783, 512, 1141, 783, 512, 1046, 774, 512, 1078, + 774, 512, 1040, 774, 512, 1072, 774, 512, 1040, 776, 512, 1072, 776, 512, + 1045, 774, 512, 1077, 774, 512, 1240, 776, 512, 1241, 776, 512, 1046, + 776, 512, 1078, 776, 512, 1047, 776, 512, 1079, 776, 512, 1048, 772, 512, + 1080, 772, 512, 1048, 776, 512, 1080, 776, 512, 1054, 776, 512, 1086, + 776, 512, 1256, 776, 512, 1257, 776, 512, 1069, 776, 512, 1101, 776, 512, + 1059, 772, 512, 1091, 772, 512, 1059, 776, 512, 1091, 776, 512, 1059, + 779, 512, 1091, 779, 512, 1063, 776, 512, 1095, 776, 512, 1067, 776, 512, + 1099, 776, 514, 1381, 1410, 512, 1575, 1619, 512, 1575, 1620, 512, 1608, + 1620, 512, 1575, 1621, 512, 1610, 1620, 514, 1575, 1652, 514, 1608, 1652, + 514, 1735, 1652, 514, 1610, 1652, 512, 1749, 1620, 512, 1729, 1620, 512, + 1746, 1620, 512, 2344, 2364, 512, 2352, 2364, 512, 2355, 2364, 512, 2325, + 2364, 512, 2326, 2364, 512, 2327, 2364, 512, 2332, 2364, 512, 2337, 2364, + 512, 2338, 2364, 512, 2347, 2364, 512, 2351, 2364, 512, 2503, 2494, 512, + 2503, 2519, 512, 2465, 2492, 512, 2466, 2492, 512, 2479, 2492, 512, 2610, + 2620, 512, 2616, 2620, 512, 2582, 2620, 512, 2583, 2620, 512, 2588, 2620, + 512, 2603, 2620, 512, 2887, 2902, 512, 2887, 2878, 512, 2887, 2903, 512, + 2849, 2876, 512, 2850, 2876, 512, 2962, 3031, 512, 3014, 3006, 512, 3015, + 3006, 512, 3014, 3031, 512, 3142, 3158, 512, 3263, 3285, 512, 3270, 3285, + 512, 3270, 3286, 512, 3270, 3266, 512, 3274, 3285, 512, 3398, 3390, 512, + 3399, 3390, 512, 3398, 3415, 512, 3545, 3530, 512, 3545, 3535, 512, 3548, + 3530, 512, 3545, 3551, 514, 3661, 3634, 514, 3789, 3762, 514, 3755, 3737, + 514, 3755, 3745, 257, 3851, 512, 3906, 4023, 512, 3916, 4023, 512, 3921, + 4023, 512, 3926, 4023, 512, 3931, 4023, 512, 3904, 4021, 512, 3953, 3954, + 512, 3953, 3956, 512, 4018, 3968, 514, 4018, 3969, 512, 4019, 3968, 514, + 4019, 3969, 512, 3953, 3968, 512, 3986, 4023, 512, 3996, 4023, 512, 4001, + 4023, 512, 4006, 4023, 512, 4011, 4023, 512, 3984, 4021, 512, 4133, 4142, + 259, 4316, 512, 6917, 6965, 512, 6919, 6965, 512, 6921, 6965, 512, 6923, + 6965, 512, 6925, 6965, 512, 6929, 6965, 512, 6970, 6965, 512, 6972, 6965, + 512, 6974, 6965, 512, 6975, 6965, 512, 6978, 6965, 259, 65, 259, 198, + 259, 66, 259, 68, 259, 69, 259, 398, 259, 71, 259, 72, 259, 73, 259, 74, + 259, 75, 259, 76, 259, 77, 259, 78, 259, 79, 259, 546, 259, 80, 259, 82, + 259, 84, 259, 85, 259, 87, 259, 592, 259, 593, 259, 7426, 259, 98, 259, + 100, 259, 101, 259, 601, 259, 603, 259, 604, 259, 103, 259, 107, 259, + 109, 259, 331, 259, 596, 259, 7446, 259, 7447, 259, 112, 259, 116, 259, + 117, 259, 7453, 259, 623, 259, 118, 259, 7461, 259, 946, 259, 947, 259, + 948, 259, 966, 259, 967, 261, 105, 261, 114, 261, 117, 261, 118, 261, + 946, 261, 947, 261, 961, 261, 966, 261, 967, 259, 1085, 259, 594, 259, + 99, 259, 597, 259, 240, 259, 102, 259, 607, 259, 609, 259, 613, 259, 616, + 259, 617, 259, 618, 259, 7547, 259, 669, 259, 621, 259, 7557, 259, 671, + 259, 625, 259, 624, 259, 626, 259, 627, 259, 628, 259, 629, 259, 632, + 259, 642, 259, 643, 259, 427, 259, 649, 259, 650, 259, 7452, 259, 651, + 259, 652, 259, 122, 259, 656, 259, 657, 259, 658, 259, 952, 512, 65, 805, + 512, 97, 805, 512, 66, 775, 512, 98, 775, 512, 66, 803, 512, 98, 803, + 512, 66, 817, 512, 98, 817, 512, 199, 769, 512, 231, 769, 512, 68, 775, + 512, 100, 775, 512, 68, 803, 512, 100, 803, 512, 68, 817, 512, 100, 817, + 512, 68, 807, 512, 100, 807, 512, 68, 813, 512, 100, 813, 512, 274, 768, + 512, 275, 768, 512, 274, 769, 512, 275, 769, 512, 69, 813, 512, 101, 813, + 512, 69, 816, 512, 101, 816, 512, 552, 774, 512, 553, 774, 512, 70, 775, + 512, 102, 775, 512, 71, 772, 512, 103, 772, 512, 72, 775, 512, 104, 775, + 512, 72, 803, 512, 104, 803, 512, 72, 776, 512, 104, 776, 512, 72, 807, + 512, 104, 807, 512, 72, 814, 512, 104, 814, 512, 73, 816, 512, 105, 816, + 512, 207, 769, 512, 239, 769, 512, 75, 769, 512, 107, 769, 512, 75, 803, + 512, 107, 803, 512, 75, 817, 512, 107, 817, 512, 76, 803, 512, 108, 803, + 512, 7734, 772, 512, 7735, 772, 512, 76, 817, 512, 108, 817, 512, 76, + 813, 512, 108, 813, 512, 77, 769, 512, 109, 769, 512, 77, 775, 512, 109, + 775, 512, 77, 803, 512, 109, 803, 512, 78, 775, 512, 110, 775, 512, 78, + 803, 512, 110, 803, 512, 78, 817, 512, 110, 817, 512, 78, 813, 512, 110, + 813, 512, 213, 769, 512, 245, 769, 512, 213, 776, 512, 245, 776, 512, + 332, 768, 512, 333, 768, 512, 332, 769, 512, 333, 769, 512, 80, 769, 512, + 112, 769, 512, 80, 775, 512, 112, 775, 512, 82, 775, 512, 114, 775, 512, + 82, 803, 512, 114, 803, 512, 7770, 772, 512, 7771, 772, 512, 82, 817, + 512, 114, 817, 512, 83, 775, 512, 115, 775, 512, 83, 803, 512, 115, 803, + 512, 346, 775, 512, 347, 775, 512, 352, 775, 512, 353, 775, 512, 7778, + 775, 512, 7779, 775, 512, 84, 775, 512, 116, 775, 512, 84, 803, 512, 116, + 803, 512, 84, 817, 512, 116, 817, 512, 84, 813, 512, 116, 813, 512, 85, + 804, 512, 117, 804, 512, 85, 816, 512, 117, 816, 512, 85, 813, 512, 117, + 813, 512, 360, 769, 512, 361, 769, 512, 362, 776, 512, 363, 776, 512, 86, + 771, 512, 118, 771, 512, 86, 803, 512, 118, 803, 512, 87, 768, 512, 119, + 768, 512, 87, 769, 512, 119, 769, 512, 87, 776, 512, 119, 776, 512, 87, + 775, 512, 119, 775, 512, 87, 803, 512, 119, 803, 512, 88, 775, 512, 120, + 775, 512, 88, 776, 512, 120, 776, 512, 89, 775, 512, 121, 775, 512, 90, + 770, 512, 122, 770, 512, 90, 803, 512, 122, 803, 512, 90, 817, 512, 122, + 817, 512, 104, 817, 512, 116, 776, 512, 119, 778, 512, 121, 778, 514, 97, + 702, 512, 383, 775, 512, 65, 803, 512, 97, 803, 512, 65, 777, 512, 97, + 777, 512, 194, 769, 512, 226, 769, 512, 194, 768, 512, 226, 768, 512, + 194, 777, 512, 226, 777, 512, 194, 771, 512, 226, 771, 512, 7840, 770, + 512, 7841, 770, 512, 258, 769, 512, 259, 769, 512, 258, 768, 512, 259, + 768, 512, 258, 777, 512, 259, 777, 512, 258, 771, 512, 259, 771, 512, + 7840, 774, 512, 7841, 774, 512, 69, 803, 512, 101, 803, 512, 69, 777, + 512, 101, 777, 512, 69, 771, 512, 101, 771, 512, 202, 769, 512, 234, 769, + 512, 202, 768, 512, 234, 768, 512, 202, 777, 512, 234, 777, 512, 202, + 771, 512, 234, 771, 512, 7864, 770, 512, 7865, 770, 512, 73, 777, 512, + 105, 777, 512, 73, 803, 512, 105, 803, 512, 79, 803, 512, 111, 803, 512, + 79, 777, 512, 111, 777, 512, 212, 769, 512, 244, 769, 512, 212, 768, 512, + 244, 768, 512, 212, 777, 512, 244, 777, 512, 212, 771, 512, 244, 771, + 512, 7884, 770, 512, 7885, 770, 512, 416, 769, 512, 417, 769, 512, 416, + 768, 512, 417, 768, 512, 416, 777, 512, 417, 777, 512, 416, 771, 512, + 417, 771, 512, 416, 803, 512, 417, 803, 512, 85, 803, 512, 117, 803, 512, + 85, 777, 512, 117, 777, 512, 431, 769, 512, 432, 769, 512, 431, 768, 512, + 432, 768, 512, 431, 777, 512, 432, 777, 512, 431, 771, 512, 432, 771, + 512, 431, 803, 512, 432, 803, 512, 89, 768, 512, 121, 768, 512, 89, 803, + 512, 121, 803, 512, 89, 777, 512, 121, 777, 512, 89, 771, 512, 121, 771, + 512, 945, 787, 512, 945, 788, 512, 7936, 768, 512, 7937, 768, 512, 7936, + 769, 512, 7937, 769, 512, 7936, 834, 512, 7937, 834, 512, 913, 787, 512, + 913, 788, 512, 7944, 768, 512, 7945, 768, 512, 7944, 769, 512, 7945, 769, + 512, 7944, 834, 512, 7945, 834, 512, 949, 787, 512, 949, 788, 512, 7952, + 768, 512, 7953, 768, 512, 7952, 769, 512, 7953, 769, 512, 917, 787, 512, + 917, 788, 512, 7960, 768, 512, 7961, 768, 512, 7960, 769, 512, 7961, 769, + 512, 951, 787, 512, 951, 788, 512, 7968, 768, 512, 7969, 768, 512, 7968, + 769, 512, 7969, 769, 512, 7968, 834, 512, 7969, 834, 512, 919, 787, 512, + 919, 788, 512, 7976, 768, 512, 7977, 768, 512, 7976, 769, 512, 7977, 769, + 512, 7976, 834, 512, 7977, 834, 512, 953, 787, 512, 953, 788, 512, 7984, + 768, 512, 7985, 768, 512, 7984, 769, 512, 7985, 769, 512, 7984, 834, 512, 7985, 834, 512, 921, 787, 512, 921, 788, 512, 7992, 768, 512, 7993, 768, 512, 7992, 769, 512, 7993, 769, 512, 7992, 834, 512, 7993, 834, 512, 959, 787, 512, 959, 788, 512, 8000, 768, 512, 8001, 768, 512, 8000, 769, 512, @@ -3561,124 +3623,121 @@ static const unsigned int decomp_data[] = { 8045, 837, 512, 8046, 837, 512, 8047, 837, 512, 945, 774, 512, 945, 772, 512, 8048, 837, 512, 945, 837, 512, 940, 837, 512, 945, 834, 512, 8118, 837, 512, 913, 774, 512, 913, 772, 512, 913, 768, 256, 902, 512, 913, - 837, 514, 32, 787, 256, 953, 514, 32, 787, 514, 32, 834, 512, 168, 834, - 512, 8052, 837, 512, 951, 837, 512, 942, 837, 512, 951, 834, 512, 8134, - 837, 512, 917, 768, 256, 904, 512, 919, 768, 256, 905, 512, 919, 837, - 512, 8127, 768, 512, 8127, 769, 512, 8127, 834, 512, 953, 774, 512, 953, - 772, 512, 970, 768, 256, 912, 512, 953, 834, 512, 970, 834, 512, 921, - 774, 512, 921, 772, 512, 921, 768, 256, 906, 512, 8190, 768, 512, 8190, - 769, 512, 8190, 834, 512, 965, 774, 512, 965, 772, 512, 971, 768, 256, - 944, 512, 961, 787, 512, 961, 788, 512, 965, 834, 512, 971, 834, 512, - 933, 774, 512, 933, 772, 512, 933, 768, 256, 910, 512, 929, 788, 512, - 168, 768, 256, 901, 256, 96, 512, 8060, 837, 512, 969, 837, 512, 974, - 837, 512, 969, 834, 512, 8182, 837, 512, 927, 768, 256, 908, 512, 937, - 768, 256, 911, 512, 937, 837, 256, 180, 514, 32, 788, 256, 8194, 256, - 8195, 258, 32, 258, 32, 258, 32, 258, 32, 258, 32, 257, 32, 258, 32, 258, - 32, 258, 32, 257, 8208, 514, 32, 819, 258, 46, 514, 46, 46, 770, 46, 46, - 46, 257, 32, 514, 8242, 8242, 770, 8242, 8242, 8242, 514, 8245, 8245, - 770, 8245, 8245, 8245, 514, 33, 33, 514, 32, 773, 514, 63, 63, 514, 63, - 33, 514, 33, 63, 1026, 8242, 8242, 8242, 8242, 258, 32, 259, 48, 259, - 105, 259, 52, 259, 53, 259, 54, 259, 55, 259, 56, 259, 57, 259, 43, 259, - 8722, 259, 61, 259, 40, 259, 41, 259, 110, 261, 48, 261, 49, 261, 50, - 261, 51, 261, 52, 261, 53, 261, 54, 261, 55, 261, 56, 261, 57, 261, 43, - 261, 8722, 261, 61, 261, 40, 261, 41, 261, 97, 261, 101, 261, 111, 261, - 120, 261, 601, 261, 104, 261, 107, 261, 108, 261, 109, 261, 110, 261, - 112, 261, 115, 261, 116, 514, 82, 115, 770, 97, 47, 99, 770, 97, 47, 115, - 262, 67, 514, 176, 67, 770, 99, 47, 111, 770, 99, 47, 117, 258, 400, 514, - 176, 70, 262, 103, 262, 72, 262, 72, 262, 72, 262, 104, 262, 295, 262, - 73, 262, 73, 262, 76, 262, 108, 262, 78, 514, 78, 111, 262, 80, 262, 81, - 262, 82, 262, 82, 262, 82, 515, 83, 77, 770, 84, 69, 76, 515, 84, 77, - 262, 90, 256, 937, 262, 90, 256, 75, 256, 197, 262, 66, 262, 67, 262, - 101, 262, 69, 262, 70, 262, 77, 262, 111, 258, 1488, 258, 1489, 258, - 1490, 258, 1491, 262, 105, 770, 70, 65, 88, 262, 960, 262, 947, 262, 915, - 262, 928, 262, 8721, 262, 68, 262, 100, 262, 101, 262, 105, 262, 106, - 772, 49, 8260, 55, 772, 49, 8260, 57, 1028, 49, 8260, 49, 48, 772, 49, - 8260, 51, 772, 50, 8260, 51, 772, 49, 8260, 53, 772, 50, 8260, 53, 772, - 51, 8260, 53, 772, 52, 8260, 53, 772, 49, 8260, 54, 772, 53, 8260, 54, - 772, 49, 8260, 56, 772, 51, 8260, 56, 772, 53, 8260, 56, 772, 55, 8260, - 56, 516, 49, 8260, 258, 73, 514, 73, 73, 770, 73, 73, 73, 514, 73, 86, - 258, 86, 514, 86, 73, 770, 86, 73, 73, 1026, 86, 73, 73, 73, 514, 73, 88, - 258, 88, 514, 88, 73, 770, 88, 73, 73, 258, 76, 258, 67, 258, 68, 258, - 77, 258, 105, 514, 105, 105, 770, 105, 105, 105, 514, 105, 118, 258, 118, - 514, 118, 105, 770, 118, 105, 105, 1026, 118, 105, 105, 105, 514, 105, - 120, 258, 120, 514, 120, 105, 770, 120, 105, 105, 258, 108, 258, 99, 258, - 100, 258, 109, 772, 48, 8260, 51, 512, 8592, 824, 512, 8594, 824, 512, - 8596, 824, 512, 8656, 824, 512, 8660, 824, 512, 8658, 824, 512, 8707, - 824, 512, 8712, 824, 512, 8715, 824, 512, 8739, 824, 512, 8741, 824, 514, - 8747, 8747, 770, 8747, 8747, 8747, 514, 8750, 8750, 770, 8750, 8750, - 8750, 512, 8764, 824, 512, 8771, 824, 512, 8773, 824, 512, 8776, 824, - 512, 61, 824, 512, 8801, 824, 512, 8781, 824, 512, 60, 824, 512, 62, 824, - 512, 8804, 824, 512, 8805, 824, 512, 8818, 824, 512, 8819, 824, 512, - 8822, 824, 512, 8823, 824, 512, 8826, 824, 512, 8827, 824, 512, 8834, - 824, 512, 8835, 824, 512, 8838, 824, 512, 8839, 824, 512, 8866, 824, 512, - 8872, 824, 512, 8873, 824, 512, 8875, 824, 512, 8828, 824, 512, 8829, - 824, 512, 8849, 824, 512, 8850, 824, 512, 8882, 824, 512, 8883, 824, 512, - 8884, 824, 512, 8885, 824, 256, 12296, 256, 12297, 263, 49, 263, 50, 263, - 51, 263, 52, 263, 53, 263, 54, 263, 55, 263, 56, 263, 57, 519, 49, 48, - 519, 49, 49, 519, 49, 50, 519, 49, 51, 519, 49, 52, 519, 49, 53, 519, 49, - 54, 519, 49, 55, 519, 49, 56, 519, 49, 57, 519, 50, 48, 770, 40, 49, 41, - 770, 40, 50, 41, 770, 40, 51, 41, 770, 40, 52, 41, 770, 40, 53, 41, 770, - 40, 54, 41, 770, 40, 55, 41, 770, 40, 56, 41, 770, 40, 57, 41, 1026, 40, - 49, 48, 41, 1026, 40, 49, 49, 41, 1026, 40, 49, 50, 41, 1026, 40, 49, 51, - 41, 1026, 40, 49, 52, 41, 1026, 40, 49, 53, 41, 1026, 40, 49, 54, 41, - 1026, 40, 49, 55, 41, 1026, 40, 49, 56, 41, 1026, 40, 49, 57, 41, 1026, - 40, 50, 48, 41, 514, 49, 46, 514, 50, 46, 514, 51, 46, 514, 52, 46, 514, - 53, 46, 514, 54, 46, 514, 55, 46, 514, 56, 46, 514, 57, 46, 770, 49, 48, - 46, 770, 49, 49, 46, 770, 49, 50, 46, 770, 49, 51, 46, 770, 49, 52, 46, - 770, 49, 53, 46, 770, 49, 54, 46, 770, 49, 55, 46, 770, 49, 56, 46, 770, - 49, 57, 46, 770, 50, 48, 46, 770, 40, 97, 41, 770, 40, 98, 41, 770, 40, - 99, 41, 770, 40, 100, 41, 770, 40, 101, 41, 770, 40, 102, 41, 770, 40, - 103, 41, 770, 40, 104, 41, 770, 40, 105, 41, 770, 40, 106, 41, 770, 40, - 107, 41, 770, 40, 108, 41, 770, 40, 109, 41, 770, 40, 110, 41, 770, 40, - 111, 41, 770, 40, 112, 41, 770, 40, 113, 41, 770, 40, 114, 41, 770, 40, - 115, 41, 770, 40, 116, 41, 770, 40, 117, 41, 770, 40, 118, 41, 770, 40, - 119, 41, 770, 40, 120, 41, 770, 40, 121, 41, 770, 40, 122, 41, 263, 65, - 263, 66, 263, 67, 263, 68, 263, 69, 263, 70, 263, 71, 263, 72, 263, 73, - 263, 74, 263, 75, 263, 76, 263, 77, 263, 78, 263, 79, 263, 80, 263, 81, - 263, 82, 263, 83, 263, 84, 263, 85, 263, 86, 263, 87, 263, 88, 263, 89, - 263, 90, 263, 97, 263, 98, 263, 99, 263, 100, 263, 101, 263, 102, 263, - 103, 263, 104, 263, 105, 263, 106, 263, 107, 263, 108, 263, 109, 263, - 110, 263, 111, 263, 112, 263, 113, 263, 114, 263, 115, 263, 116, 263, - 117, 263, 118, 263, 119, 263, 120, 263, 121, 263, 122, 263, 48, 1026, - 8747, 8747, 8747, 8747, 770, 58, 58, 61, 514, 61, 61, 770, 61, 61, 61, - 512, 10973, 824, 261, 106, 259, 86, 259, 11617, 258, 27597, 258, 40863, - 258, 19968, 258, 20008, 258, 20022, 258, 20031, 258, 20057, 258, 20101, - 258, 20108, 258, 20128, 258, 20154, 258, 20799, 258, 20837, 258, 20843, - 258, 20866, 258, 20886, 258, 20907, 258, 20960, 258, 20981, 258, 20992, - 258, 21147, 258, 21241, 258, 21269, 258, 21274, 258, 21304, 258, 21313, - 258, 21340, 258, 21353, 258, 21378, 258, 21430, 258, 21448, 258, 21475, - 258, 22231, 258, 22303, 258, 22763, 258, 22786, 258, 22794, 258, 22805, - 258, 22823, 258, 22899, 258, 23376, 258, 23424, 258, 23544, 258, 23567, - 258, 23586, 258, 23608, 258, 23662, 258, 23665, 258, 24027, 258, 24037, - 258, 24049, 258, 24062, 258, 24178, 258, 24186, 258, 24191, 258, 24308, - 258, 24318, 258, 24331, 258, 24339, 258, 24400, 258, 24417, 258, 24435, - 258, 24515, 258, 25096, 258, 25142, 258, 25163, 258, 25903, 258, 25908, - 258, 25991, 258, 26007, 258, 26020, 258, 26041, 258, 26080, 258, 26085, - 258, 26352, 258, 26376, 258, 26408, 258, 27424, 258, 27490, 258, 27513, - 258, 27571, 258, 27595, 258, 27604, 258, 27611, 258, 27663, 258, 27668, - 258, 27700, 258, 28779, 258, 29226, 258, 29238, 258, 29243, 258, 29247, - 258, 29255, 258, 29273, 258, 29275, 258, 29356, 258, 29572, 258, 29577, - 258, 29916, 258, 29926, 258, 29976, 258, 29983, 258, 29992, 258, 30000, - 258, 30091, 258, 30098, 258, 30326, 258, 30333, 258, 30382, 258, 30399, - 258, 30446, 258, 30683, 258, 30690, 258, 30707, 258, 31034, 258, 31160, - 258, 31166, 258, 31348, 258, 31435, 258, 31481, 258, 31859, 258, 31992, - 258, 32566, 258, 32593, 258, 32650, 258, 32701, 258, 32769, 258, 32780, - 258, 32786, 258, 32819, 258, 32895, 258, 32905, 258, 33251, 258, 33258, - 258, 33267, 258, 33276, 258, 33292, 258, 33307, 258, 33311, 258, 33390, - 258, 33394, 258, 33400, 258, 34381, 258, 34411, 258, 34880, 258, 34892, - 258, 34915, 258, 35198, 258, 35211, 258, 35282, 258, 35328, 258, 35895, - 258, 35910, 258, 35925, 258, 35960, 258, 35997, 258, 36196, 258, 36208, - 258, 36275, 258, 36523, 258, 36554, 258, 36763, 258, 36784, 258, 36789, - 258, 37009, 258, 37193, 258, 37318, 258, 37324, 258, 37329, 258, 38263, - 258, 38272, 258, 38428, 258, 38582, 258, 38585, 258, 38632, 258, 38737, - 258, 38750, 258, 38754, 258, 38761, 258, 38859, 258, 38893, 258, 38899, - 258, 38913, 258, 39080, 258, 39131, 258, 39135, 258, 39318, 258, 39321, - 258, 39340, 258, 39592, 258, 39640, 258, 39647, 258, 39717, 258, 39727, - 258, 39730, 258, 39740, 258, 39770, 258, 40165, 258, 40565, 258, 40575, - 258, 40613, 258, 40635, 258, 40643, 258, 40653, 258, 40657, 258, 40697, - 258, 40701, 258, 40718, 258, 40723, 258, 40736, 258, 40763, 258, 40778, - 258, 40786, 258, 40845, 258, 40860, 258, 40864, 264, 32, 258, 12306, 258, - 21313, 258, 21316, 258, 21317, 512, 12363, 12441, 512, 12365, 12441, 512, + 837, 514, 32, 787, 256, 953, 514, 32, 834, 512, 168, 834, 512, 8052, 837, + 512, 951, 837, 512, 942, 837, 512, 951, 834, 512, 8134, 837, 512, 917, + 768, 256, 904, 512, 919, 768, 256, 905, 512, 919, 837, 512, 8127, 768, + 512, 8127, 769, 512, 8127, 834, 512, 953, 774, 512, 953, 772, 512, 970, + 768, 256, 912, 512, 953, 834, 512, 970, 834, 512, 921, 774, 512, 921, + 772, 512, 921, 768, 256, 906, 512, 8190, 768, 512, 8190, 769, 512, 8190, + 834, 512, 965, 774, 512, 965, 772, 512, 971, 768, 256, 944, 512, 961, + 787, 512, 961, 788, 512, 965, 834, 512, 971, 834, 512, 933, 774, 512, + 933, 772, 512, 933, 768, 256, 910, 512, 929, 788, 512, 168, 768, 256, + 901, 256, 96, 512, 8060, 837, 512, 969, 837, 512, 974, 837, 512, 969, + 834, 512, 8182, 837, 512, 927, 768, 256, 908, 512, 937, 768, 256, 911, + 512, 937, 837, 256, 180, 514, 32, 788, 256, 8194, 256, 8195, 258, 32, + 257, 8208, 514, 32, 819, 258, 46, 514, 46, 46, 770, 46, 46, 46, 514, + 8242, 8242, 770, 8242, 8242, 8242, 514, 8245, 8245, 770, 8245, 8245, + 8245, 514, 33, 33, 514, 32, 773, 514, 63, 63, 514, 63, 33, 514, 33, 63, + 1026, 8242, 8242, 8242, 8242, 259, 48, 259, 105, 259, 52, 259, 53, 259, + 54, 259, 55, 259, 56, 259, 57, 259, 43, 259, 8722, 259, 61, 259, 40, 259, + 41, 259, 110, 261, 48, 261, 49, 261, 50, 261, 51, 261, 52, 261, 53, 261, + 54, 261, 55, 261, 56, 261, 57, 261, 43, 261, 8722, 261, 61, 261, 40, 261, + 41, 261, 97, 261, 101, 261, 111, 261, 120, 261, 601, 261, 104, 261, 107, + 261, 108, 261, 109, 261, 110, 261, 112, 261, 115, 261, 116, 514, 82, 115, + 770, 97, 47, 99, 770, 97, 47, 115, 262, 67, 514, 176, 67, 770, 99, 47, + 111, 770, 99, 47, 117, 258, 400, 514, 176, 70, 262, 103, 262, 72, 262, + 104, 262, 295, 262, 73, 262, 76, 262, 108, 262, 78, 514, 78, 111, 262, + 80, 262, 81, 262, 82, 515, 83, 77, 770, 84, 69, 76, 515, 84, 77, 262, 90, + 256, 937, 256, 75, 256, 197, 262, 66, 262, 101, 262, 69, 262, 70, 262, + 77, 262, 111, 258, 1488, 258, 1489, 258, 1490, 258, 1491, 262, 105, 770, + 70, 65, 88, 262, 960, 262, 947, 262, 915, 262, 928, 262, 8721, 262, 68, + 262, 100, 262, 106, 772, 49, 8260, 55, 772, 49, 8260, 57, 1028, 49, 8260, + 49, 48, 772, 49, 8260, 51, 772, 50, 8260, 51, 772, 49, 8260, 53, 772, 50, + 8260, 53, 772, 51, 8260, 53, 772, 52, 8260, 53, 772, 49, 8260, 54, 772, + 53, 8260, 54, 772, 49, 8260, 56, 772, 51, 8260, 56, 772, 53, 8260, 56, + 772, 55, 8260, 56, 516, 49, 8260, 258, 73, 514, 73, 73, 770, 73, 73, 73, + 514, 73, 86, 258, 86, 514, 86, 73, 770, 86, 73, 73, 1026, 86, 73, 73, 73, + 514, 73, 88, 258, 88, 514, 88, 73, 770, 88, 73, 73, 258, 76, 258, 67, + 258, 68, 258, 77, 258, 105, 514, 105, 105, 770, 105, 105, 105, 514, 105, + 118, 258, 118, 514, 118, 105, 770, 118, 105, 105, 1026, 118, 105, 105, + 105, 514, 105, 120, 258, 120, 514, 120, 105, 770, 120, 105, 105, 258, + 108, 258, 99, 258, 100, 258, 109, 772, 48, 8260, 51, 512, 8592, 824, 512, + 8594, 824, 512, 8596, 824, 512, 8656, 824, 512, 8660, 824, 512, 8658, + 824, 512, 8707, 824, 512, 8712, 824, 512, 8715, 824, 512, 8739, 824, 512, + 8741, 824, 514, 8747, 8747, 770, 8747, 8747, 8747, 514, 8750, 8750, 770, + 8750, 8750, 8750, 512, 8764, 824, 512, 8771, 824, 512, 8773, 824, 512, + 8776, 824, 512, 61, 824, 512, 8801, 824, 512, 8781, 824, 512, 60, 824, + 512, 62, 824, 512, 8804, 824, 512, 8805, 824, 512, 8818, 824, 512, 8819, + 824, 512, 8822, 824, 512, 8823, 824, 512, 8826, 824, 512, 8827, 824, 512, + 8834, 824, 512, 8835, 824, 512, 8838, 824, 512, 8839, 824, 512, 8866, + 824, 512, 8872, 824, 512, 8873, 824, 512, 8875, 824, 512, 8828, 824, 512, + 8829, 824, 512, 8849, 824, 512, 8850, 824, 512, 8882, 824, 512, 8883, + 824, 512, 8884, 824, 512, 8885, 824, 256, 12296, 256, 12297, 263, 49, + 263, 50, 263, 51, 263, 52, 263, 53, 263, 54, 263, 55, 263, 56, 263, 57, + 519, 49, 48, 519, 49, 49, 519, 49, 50, 519, 49, 51, 519, 49, 52, 519, 49, + 53, 519, 49, 54, 519, 49, 55, 519, 49, 56, 519, 49, 57, 519, 50, 48, 770, + 40, 49, 41, 770, 40, 50, 41, 770, 40, 51, 41, 770, 40, 52, 41, 770, 40, + 53, 41, 770, 40, 54, 41, 770, 40, 55, 41, 770, 40, 56, 41, 770, 40, 57, + 41, 1026, 40, 49, 48, 41, 1026, 40, 49, 49, 41, 1026, 40, 49, 50, 41, + 1026, 40, 49, 51, 41, 1026, 40, 49, 52, 41, 1026, 40, 49, 53, 41, 1026, + 40, 49, 54, 41, 1026, 40, 49, 55, 41, 1026, 40, 49, 56, 41, 1026, 40, 49, + 57, 41, 1026, 40, 50, 48, 41, 514, 49, 46, 514, 50, 46, 514, 51, 46, 514, + 52, 46, 514, 53, 46, 514, 54, 46, 514, 55, 46, 514, 56, 46, 514, 57, 46, + 770, 49, 48, 46, 770, 49, 49, 46, 770, 49, 50, 46, 770, 49, 51, 46, 770, + 49, 52, 46, 770, 49, 53, 46, 770, 49, 54, 46, 770, 49, 55, 46, 770, 49, + 56, 46, 770, 49, 57, 46, 770, 50, 48, 46, 770, 40, 97, 41, 770, 40, 98, + 41, 770, 40, 99, 41, 770, 40, 100, 41, 770, 40, 101, 41, 770, 40, 102, + 41, 770, 40, 103, 41, 770, 40, 104, 41, 770, 40, 105, 41, 770, 40, 106, + 41, 770, 40, 107, 41, 770, 40, 108, 41, 770, 40, 109, 41, 770, 40, 110, + 41, 770, 40, 111, 41, 770, 40, 112, 41, 770, 40, 113, 41, 770, 40, 114, + 41, 770, 40, 115, 41, 770, 40, 116, 41, 770, 40, 117, 41, 770, 40, 118, + 41, 770, 40, 119, 41, 770, 40, 120, 41, 770, 40, 121, 41, 770, 40, 122, + 41, 263, 65, 263, 66, 263, 67, 263, 68, 263, 69, 263, 70, 263, 71, 263, + 72, 263, 73, 263, 74, 263, 75, 263, 76, 263, 77, 263, 78, 263, 79, 263, + 80, 263, 81, 263, 82, 263, 83, 263, 84, 263, 85, 263, 86, 263, 87, 263, + 88, 263, 89, 263, 90, 263, 97, 263, 98, 263, 99, 263, 100, 263, 101, 263, + 102, 263, 103, 263, 104, 263, 105, 263, 106, 263, 107, 263, 108, 263, + 109, 263, 110, 263, 111, 263, 112, 263, 113, 263, 114, 263, 115, 263, + 116, 263, 117, 263, 118, 263, 119, 263, 120, 263, 121, 263, 122, 263, 48, + 1026, 8747, 8747, 8747, 8747, 770, 58, 58, 61, 514, 61, 61, 770, 61, 61, + 61, 512, 10973, 824, 261, 106, 259, 86, 259, 11617, 258, 27597, 258, + 40863, 258, 19968, 258, 20008, 258, 20022, 258, 20031, 258, 20057, 258, + 20101, 258, 20108, 258, 20128, 258, 20154, 258, 20799, 258, 20837, 258, + 20843, 258, 20866, 258, 20886, 258, 20907, 258, 20960, 258, 20981, 258, + 20992, 258, 21147, 258, 21241, 258, 21269, 258, 21274, 258, 21304, 258, + 21313, 258, 21340, 258, 21353, 258, 21378, 258, 21430, 258, 21448, 258, + 21475, 258, 22231, 258, 22303, 258, 22763, 258, 22786, 258, 22794, 258, + 22805, 258, 22823, 258, 22899, 258, 23376, 258, 23424, 258, 23544, 258, + 23567, 258, 23586, 258, 23608, 258, 23662, 258, 23665, 258, 24027, 258, + 24037, 258, 24049, 258, 24062, 258, 24178, 258, 24186, 258, 24191, 258, + 24308, 258, 24318, 258, 24331, 258, 24339, 258, 24400, 258, 24417, 258, + 24435, 258, 24515, 258, 25096, 258, 25142, 258, 25163, 258, 25903, 258, + 25908, 258, 25991, 258, 26007, 258, 26020, 258, 26041, 258, 26080, 258, + 26085, 258, 26352, 258, 26376, 258, 26408, 258, 27424, 258, 27490, 258, + 27513, 258, 27571, 258, 27595, 258, 27604, 258, 27611, 258, 27663, 258, + 27668, 258, 27700, 258, 28779, 258, 29226, 258, 29238, 258, 29243, 258, + 29247, 258, 29255, 258, 29273, 258, 29275, 258, 29356, 258, 29572, 258, + 29577, 258, 29916, 258, 29926, 258, 29976, 258, 29983, 258, 29992, 258, + 30000, 258, 30091, 258, 30098, 258, 30326, 258, 30333, 258, 30382, 258, + 30399, 258, 30446, 258, 30683, 258, 30690, 258, 30707, 258, 31034, 258, + 31160, 258, 31166, 258, 31348, 258, 31435, 258, 31481, 258, 31859, 258, + 31992, 258, 32566, 258, 32593, 258, 32650, 258, 32701, 258, 32769, 258, + 32780, 258, 32786, 258, 32819, 258, 32895, 258, 32905, 258, 33251, 258, + 33258, 258, 33267, 258, 33276, 258, 33292, 258, 33307, 258, 33311, 258, + 33390, 258, 33394, 258, 33400, 258, 34381, 258, 34411, 258, 34880, 258, + 34892, 258, 34915, 258, 35198, 258, 35211, 258, 35282, 258, 35328, 258, + 35895, 258, 35910, 258, 35925, 258, 35960, 258, 35997, 258, 36196, 258, + 36208, 258, 36275, 258, 36523, 258, 36554, 258, 36763, 258, 36784, 258, + 36789, 258, 37009, 258, 37193, 258, 37318, 258, 37324, 258, 37329, 258, + 38263, 258, 38272, 258, 38428, 258, 38582, 258, 38585, 258, 38632, 258, + 38737, 258, 38750, 258, 38754, 258, 38761, 258, 38859, 258, 38893, 258, + 38899, 258, 38913, 258, 39080, 258, 39131, 258, 39135, 258, 39318, 258, + 39321, 258, 39340, 258, 39592, 258, 39640, 258, 39647, 258, 39717, 258, + 39727, 258, 39730, 258, 39740, 258, 39770, 258, 40165, 258, 40565, 258, + 40575, 258, 40613, 258, 40635, 258, 40643, 258, 40653, 258, 40657, 258, + 40697, 258, 40701, 258, 40718, 258, 40723, 258, 40736, 258, 40763, 258, + 40778, 258, 40786, 258, 40845, 258, 40860, 258, 40864, 264, 32, 258, + 12306, 258, 21316, 258, 21317, 512, 12363, 12441, 512, 12365, 12441, 512, 12367, 12441, 512, 12369, 12441, 512, 12371, 12441, 512, 12373, 12441, 512, 12375, 12441, 512, 12377, 12441, 512, 12379, 12441, 512, 12381, 12441, 512, 12383, 12441, 512, 12385, 12441, 512, 12388, 12441, 512, @@ -3844,43 +3903,42 @@ static const unsigned int decomp_data[] = { 51, 49, 26085, 778, 103, 97, 108, 259, 1098, 259, 1100, 259, 42863, 259, 67, 259, 70, 259, 81, 259, 294, 259, 339, 259, 42791, 259, 43831, 259, 619, 259, 43858, 259, 653, 256, 35912, 256, 26356, 256, 36554, 256, - 36040, 256, 28369, 256, 20018, 256, 21477, 256, 40860, 256, 40860, 256, - 22865, 256, 37329, 256, 21895, 256, 22856, 256, 25078, 256, 30313, 256, - 32645, 256, 34367, 256, 34746, 256, 35064, 256, 37007, 256, 27138, 256, - 27931, 256, 28889, 256, 29662, 256, 33853, 256, 37226, 256, 39409, 256, - 20098, 256, 21365, 256, 27396, 256, 29211, 256, 34349, 256, 40478, 256, - 23888, 256, 28651, 256, 34253, 256, 35172, 256, 25289, 256, 33240, 256, - 34847, 256, 24266, 256, 26391, 256, 28010, 256, 29436, 256, 37070, 256, - 20358, 256, 20919, 256, 21214, 256, 25796, 256, 27347, 256, 29200, 256, - 30439, 256, 32769, 256, 34310, 256, 34396, 256, 36335, 256, 38706, 256, - 39791, 256, 40442, 256, 30860, 256, 31103, 256, 32160, 256, 33737, 256, - 37636, 256, 40575, 256, 35542, 256, 22751, 256, 24324, 256, 31840, 256, - 32894, 256, 29282, 256, 30922, 256, 36034, 256, 38647, 256, 22744, 256, - 23650, 256, 27155, 256, 28122, 256, 28431, 256, 32047, 256, 32311, 256, - 38475, 256, 21202, 256, 32907, 256, 20956, 256, 20940, 256, 31260, 256, - 32190, 256, 33777, 256, 38517, 256, 35712, 256, 25295, 256, 27138, 256, - 35582, 256, 20025, 256, 23527, 256, 24594, 256, 29575, 256, 30064, 256, - 21271, 256, 30971, 256, 20415, 256, 24489, 256, 19981, 256, 27852, 256, - 25976, 256, 32034, 256, 21443, 256, 22622, 256, 30465, 256, 33865, 256, - 35498, 256, 27578, 256, 36784, 256, 27784, 256, 25342, 256, 33509, 256, - 25504, 256, 30053, 256, 20142, 256, 20841, 256, 20937, 256, 26753, 256, - 31975, 256, 33391, 256, 35538, 256, 37327, 256, 21237, 256, 21570, 256, - 22899, 256, 24300, 256, 26053, 256, 28670, 256, 31018, 256, 38317, 256, - 39530, 256, 40599, 256, 40654, 256, 21147, 256, 26310, 256, 27511, 256, - 36706, 256, 24180, 256, 24976, 256, 25088, 256, 25754, 256, 28451, 256, - 29001, 256, 29833, 256, 31178, 256, 32244, 256, 32879, 256, 36646, 256, - 34030, 256, 36899, 256, 37706, 256, 21015, 256, 21155, 256, 21693, 256, - 28872, 256, 35010, 256, 35498, 256, 24265, 256, 24565, 256, 25467, 256, - 27566, 256, 31806, 256, 29557, 256, 20196, 256, 22265, 256, 23527, 256, - 23994, 256, 24604, 256, 29618, 256, 29801, 256, 32666, 256, 32838, 256, - 37428, 256, 38646, 256, 38728, 256, 38936, 256, 20363, 256, 31150, 256, - 37300, 256, 38584, 256, 24801, 256, 20102, 256, 20698, 256, 23534, 256, - 23615, 256, 26009, 256, 27138, 256, 29134, 256, 30274, 256, 34044, 256, - 36988, 256, 40845, 256, 26248, 256, 38446, 256, 21129, 256, 26491, 256, - 26611, 256, 27969, 256, 28316, 256, 29705, 256, 30041, 256, 30827, 256, - 32016, 256, 39006, 256, 20845, 256, 25134, 256, 38520, 256, 20523, 256, - 23833, 256, 28138, 256, 36650, 256, 24459, 256, 24900, 256, 26647, 256, - 29575, 256, 38534, 256, 21033, 256, 21519, 256, 23653, 256, 26131, 256, + 36040, 256, 28369, 256, 20018, 256, 21477, 256, 40860, 256, 22865, 256, + 37329, 256, 21895, 256, 22856, 256, 25078, 256, 30313, 256, 32645, 256, + 34367, 256, 34746, 256, 35064, 256, 37007, 256, 27138, 256, 27931, 256, + 28889, 256, 29662, 256, 33853, 256, 37226, 256, 39409, 256, 20098, 256, + 21365, 256, 27396, 256, 29211, 256, 34349, 256, 40478, 256, 23888, 256, + 28651, 256, 34253, 256, 35172, 256, 25289, 256, 33240, 256, 34847, 256, + 24266, 256, 26391, 256, 28010, 256, 29436, 256, 37070, 256, 20358, 256, + 20919, 256, 21214, 256, 25796, 256, 27347, 256, 29200, 256, 30439, 256, + 32769, 256, 34310, 256, 34396, 256, 36335, 256, 38706, 256, 39791, 256, + 40442, 256, 30860, 256, 31103, 256, 32160, 256, 33737, 256, 37636, 256, + 40575, 256, 35542, 256, 22751, 256, 24324, 256, 31840, 256, 32894, 256, + 29282, 256, 30922, 256, 36034, 256, 38647, 256, 22744, 256, 23650, 256, + 27155, 256, 28122, 256, 28431, 256, 32047, 256, 32311, 256, 38475, 256, + 21202, 256, 32907, 256, 20956, 256, 20940, 256, 31260, 256, 32190, 256, + 33777, 256, 38517, 256, 35712, 256, 25295, 256, 35582, 256, 20025, 256, + 23527, 256, 24594, 256, 29575, 256, 30064, 256, 21271, 256, 30971, 256, + 20415, 256, 24489, 256, 19981, 256, 27852, 256, 25976, 256, 32034, 256, + 21443, 256, 22622, 256, 30465, 256, 33865, 256, 35498, 256, 27578, 256, + 36784, 256, 27784, 256, 25342, 256, 33509, 256, 25504, 256, 30053, 256, + 20142, 256, 20841, 256, 20937, 256, 26753, 256, 31975, 256, 33391, 256, + 35538, 256, 37327, 256, 21237, 256, 21570, 256, 22899, 256, 24300, 256, + 26053, 256, 28670, 256, 31018, 256, 38317, 256, 39530, 256, 40599, 256, + 40654, 256, 21147, 256, 26310, 256, 27511, 256, 36706, 256, 24180, 256, + 24976, 256, 25088, 256, 25754, 256, 28451, 256, 29001, 256, 29833, 256, + 31178, 256, 32244, 256, 32879, 256, 36646, 256, 34030, 256, 36899, 256, + 37706, 256, 21015, 256, 21155, 256, 21693, 256, 28872, 256, 35010, 256, + 24265, 256, 24565, 256, 25467, 256, 27566, 256, 31806, 256, 29557, 256, + 20196, 256, 22265, 256, 23994, 256, 24604, 256, 29618, 256, 29801, 256, + 32666, 256, 32838, 256, 37428, 256, 38646, 256, 38728, 256, 38936, 256, + 20363, 256, 31150, 256, 37300, 256, 38584, 256, 24801, 256, 20102, 256, + 20698, 256, 23534, 256, 23615, 256, 26009, 256, 29134, 256, 30274, 256, + 34044, 256, 36988, 256, 40845, 256, 26248, 256, 38446, 256, 21129, 256, + 26491, 256, 26611, 256, 27969, 256, 28316, 256, 29705, 256, 30041, 256, + 30827, 256, 32016, 256, 39006, 256, 20845, 256, 25134, 256, 38520, 256, + 20523, 256, 23833, 256, 28138, 256, 36650, 256, 24459, 256, 24900, 256, + 26647, 256, 38534, 256, 21033, 256, 21519, 256, 23653, 256, 26131, 256, 26446, 256, 26792, 256, 27877, 256, 29702, 256, 30178, 256, 32633, 256, 35023, 256, 35041, 256, 37324, 256, 38626, 256, 21311, 256, 28346, 256, 21533, 256, 29136, 256, 29848, 256, 34298, 256, 38563, 256, 40023, 256, @@ -3898,65 +3956,60 @@ static const unsigned int decomp_data[] = { 25935, 256, 26082, 256, 26257, 256, 26757, 256, 28023, 256, 28186, 256, 28450, 256, 29038, 256, 29227, 256, 29730, 256, 30865, 256, 31038, 256, 31049, 256, 31048, 256, 31056, 256, 31062, 256, 31069, 256, 31117, 256, - 31118, 256, 31296, 256, 31361, 256, 31680, 256, 32244, 256, 32265, 256, - 32321, 256, 32626, 256, 32773, 256, 33261, 256, 33401, 256, 33401, 256, - 33879, 256, 35088, 256, 35222, 256, 35585, 256, 35641, 256, 36051, 256, - 36104, 256, 36790, 256, 36920, 256, 38627, 256, 38911, 256, 38971, 256, - 24693, 256, 148206, 256, 33304, 256, 20006, 256, 20917, 256, 20840, 256, - 20352, 256, 20805, 256, 20864, 256, 21191, 256, 21242, 256, 21917, 256, - 21845, 256, 21913, 256, 21986, 256, 22618, 256, 22707, 256, 22852, 256, - 22868, 256, 23138, 256, 23336, 256, 24274, 256, 24281, 256, 24425, 256, - 24493, 256, 24792, 256, 24910, 256, 24840, 256, 24974, 256, 24928, 256, - 25074, 256, 25140, 256, 25540, 256, 25628, 256, 25682, 256, 25942, 256, - 26228, 256, 26391, 256, 26395, 256, 26454, 256, 27513, 256, 27578, 256, - 27969, 256, 28379, 256, 28363, 256, 28450, 256, 28702, 256, 29038, 256, - 30631, 256, 29237, 256, 29359, 256, 29482, 256, 29809, 256, 29958, 256, - 30011, 256, 30237, 256, 30239, 256, 30410, 256, 30427, 256, 30452, 256, - 30538, 256, 30528, 256, 30924, 256, 31409, 256, 31680, 256, 31867, 256, - 32091, 256, 32244, 256, 32574, 256, 32773, 256, 33618, 256, 33775, 256, - 34681, 256, 35137, 256, 35206, 256, 35222, 256, 35519, 256, 35576, 256, - 35531, 256, 35585, 256, 35582, 256, 35565, 256, 35641, 256, 35722, 256, - 36104, 256, 36664, 256, 36978, 256, 37273, 256, 37494, 256, 38524, 256, - 38627, 256, 38742, 256, 38875, 256, 38911, 256, 38923, 256, 38971, 256, - 39698, 256, 40860, 256, 141386, 256, 141380, 256, 144341, 256, 15261, - 256, 16408, 256, 16441, 256, 152137, 256, 154832, 256, 163539, 256, - 40771, 256, 40846, 514, 102, 102, 514, 102, 105, 514, 102, 108, 770, 102, - 102, 105, 770, 102, 102, 108, 514, 383, 116, 514, 115, 116, 514, 1396, - 1398, 514, 1396, 1381, 514, 1396, 1387, 514, 1406, 1398, 514, 1396, 1389, - 512, 1497, 1460, 512, 1522, 1463, 262, 1506, 262, 1488, 262, 1491, 262, - 1492, 262, 1499, 262, 1500, 262, 1501, 262, 1512, 262, 1514, 262, 43, - 512, 1513, 1473, 512, 1513, 1474, 512, 64329, 1473, 512, 64329, 1474, - 512, 1488, 1463, 512, 1488, 1464, 512, 1488, 1468, 512, 1489, 1468, 512, - 1490, 1468, 512, 1491, 1468, 512, 1492, 1468, 512, 1493, 1468, 512, 1494, - 1468, 512, 1496, 1468, 512, 1497, 1468, 512, 1498, 1468, 512, 1499, 1468, - 512, 1500, 1468, 512, 1502, 1468, 512, 1504, 1468, 512, 1505, 1468, 512, - 1507, 1468, 512, 1508, 1468, 512, 1510, 1468, 512, 1511, 1468, 512, 1512, - 1468, 512, 1513, 1468, 512, 1514, 1468, 512, 1493, 1465, 512, 1489, 1471, - 512, 1499, 1471, 512, 1508, 1471, 514, 1488, 1500, 267, 1649, 268, 1649, - 267, 1659, 268, 1659, 269, 1659, 270, 1659, 267, 1662, 268, 1662, 269, - 1662, 270, 1662, 267, 1664, 268, 1664, 269, 1664, 270, 1664, 267, 1658, - 268, 1658, 269, 1658, 270, 1658, 267, 1663, 268, 1663, 269, 1663, 270, - 1663, 267, 1657, 268, 1657, 269, 1657, 270, 1657, 267, 1700, 268, 1700, - 269, 1700, 270, 1700, 267, 1702, 268, 1702, 269, 1702, 270, 1702, 267, - 1668, 268, 1668, 269, 1668, 270, 1668, 267, 1667, 268, 1667, 269, 1667, - 270, 1667, 267, 1670, 268, 1670, 269, 1670, 270, 1670, 267, 1671, 268, - 1671, 269, 1671, 270, 1671, 267, 1677, 268, 1677, 267, 1676, 268, 1676, - 267, 1678, 268, 1678, 267, 1672, 268, 1672, 267, 1688, 268, 1688, 267, - 1681, 268, 1681, 267, 1705, 268, 1705, 269, 1705, 270, 1705, 267, 1711, - 268, 1711, 269, 1711, 270, 1711, 267, 1715, 268, 1715, 269, 1715, 270, - 1715, 267, 1713, 268, 1713, 269, 1713, 270, 1713, 267, 1722, 268, 1722, - 267, 1723, 268, 1723, 269, 1723, 270, 1723, 267, 1728, 268, 1728, 267, - 1729, 268, 1729, 269, 1729, 270, 1729, 267, 1726, 268, 1726, 269, 1726, - 270, 1726, 267, 1746, 268, 1746, 267, 1747, 268, 1747, 267, 1709, 268, - 1709, 269, 1709, 270, 1709, 267, 1735, 268, 1735, 267, 1734, 268, 1734, - 267, 1736, 268, 1736, 267, 1655, 267, 1739, 268, 1739, 267, 1733, 268, - 1733, 267, 1737, 268, 1737, 267, 1744, 268, 1744, 269, 1744, 270, 1744, - 269, 1609, 270, 1609, 523, 1574, 1575, 524, 1574, 1575, 523, 1574, 1749, - 524, 1574, 1749, 523, 1574, 1608, 524, 1574, 1608, 523, 1574, 1735, 524, - 1574, 1735, 523, 1574, 1734, 524, 1574, 1734, 523, 1574, 1736, 524, 1574, - 1736, 523, 1574, 1744, 524, 1574, 1744, 525, 1574, 1744, 523, 1574, 1609, - 524, 1574, 1609, 525, 1574, 1609, 267, 1740, 268, 1740, 269, 1740, 270, - 1740, 523, 1574, 1580, 523, 1574, 1581, 523, 1574, 1605, 523, 1574, 1609, + 31118, 256, 31296, 256, 31361, 256, 31680, 256, 32265, 256, 32321, 256, + 32626, 256, 32773, 256, 33261, 256, 33401, 256, 33879, 256, 35088, 256, + 35222, 256, 35585, 256, 35641, 256, 36051, 256, 36104, 256, 36790, 256, + 38627, 256, 38911, 256, 38971, 256, 24693, 256, 148206, 256, 33304, 256, + 20006, 256, 20917, 256, 20840, 256, 20352, 256, 20805, 256, 20864, 256, + 21191, 256, 21242, 256, 21845, 256, 21913, 256, 21986, 256, 22707, 256, + 22852, 256, 22868, 256, 23138, 256, 23336, 256, 24274, 256, 24281, 256, + 24425, 256, 24493, 256, 24792, 256, 24910, 256, 24840, 256, 24928, 256, + 25140, 256, 25540, 256, 25628, 256, 25682, 256, 25942, 256, 26395, 256, + 26454, 256, 27513, 256, 28379, 256, 28363, 256, 28702, 256, 30631, 256, + 29237, 256, 29359, 256, 29809, 256, 29958, 256, 30011, 256, 30237, 256, + 30239, 256, 30427, 256, 30452, 256, 30538, 256, 30528, 256, 30924, 256, + 31409, 256, 31867, 256, 32091, 256, 32574, 256, 33618, 256, 33775, 256, + 34681, 256, 35137, 256, 35206, 256, 35519, 256, 35531, 256, 35565, 256, + 35722, 256, 36664, 256, 36978, 256, 37273, 256, 37494, 256, 38524, 256, + 38875, 256, 38923, 256, 39698, 256, 141386, 256, 141380, 256, 144341, + 256, 15261, 256, 16408, 256, 16441, 256, 152137, 256, 154832, 256, + 163539, 256, 40771, 256, 40846, 514, 102, 102, 514, 102, 105, 514, 102, + 108, 770, 102, 102, 105, 770, 102, 102, 108, 514, 383, 116, 514, 115, + 116, 514, 1396, 1398, 514, 1396, 1381, 514, 1396, 1387, 514, 1406, 1398, + 514, 1396, 1389, 512, 1497, 1460, 512, 1522, 1463, 262, 1506, 262, 1488, + 262, 1491, 262, 1492, 262, 1499, 262, 1500, 262, 1501, 262, 1512, 262, + 1514, 262, 43, 512, 1513, 1473, 512, 1513, 1474, 512, 64329, 1473, 512, + 64329, 1474, 512, 1488, 1463, 512, 1488, 1464, 512, 1488, 1468, 512, + 1489, 1468, 512, 1490, 1468, 512, 1491, 1468, 512, 1492, 1468, 512, 1493, + 1468, 512, 1494, 1468, 512, 1496, 1468, 512, 1497, 1468, 512, 1498, 1468, + 512, 1499, 1468, 512, 1500, 1468, 512, 1502, 1468, 512, 1504, 1468, 512, + 1505, 1468, 512, 1507, 1468, 512, 1508, 1468, 512, 1510, 1468, 512, 1511, + 1468, 512, 1512, 1468, 512, 1513, 1468, 512, 1514, 1468, 512, 1493, 1465, + 512, 1489, 1471, 512, 1499, 1471, 512, 1508, 1471, 514, 1488, 1500, 267, + 1649, 268, 1649, 267, 1659, 268, 1659, 269, 1659, 270, 1659, 267, 1662, + 268, 1662, 269, 1662, 270, 1662, 267, 1664, 268, 1664, 269, 1664, 270, + 1664, 267, 1658, 268, 1658, 269, 1658, 270, 1658, 267, 1663, 268, 1663, + 269, 1663, 270, 1663, 267, 1657, 268, 1657, 269, 1657, 270, 1657, 267, + 1700, 268, 1700, 269, 1700, 270, 1700, 267, 1702, 268, 1702, 269, 1702, + 270, 1702, 267, 1668, 268, 1668, 269, 1668, 270, 1668, 267, 1667, 268, + 1667, 269, 1667, 270, 1667, 267, 1670, 268, 1670, 269, 1670, 270, 1670, + 267, 1671, 268, 1671, 269, 1671, 270, 1671, 267, 1677, 268, 1677, 267, + 1676, 268, 1676, 267, 1678, 268, 1678, 267, 1672, 268, 1672, 267, 1688, + 268, 1688, 267, 1681, 268, 1681, 267, 1705, 268, 1705, 269, 1705, 270, + 1705, 267, 1711, 268, 1711, 269, 1711, 270, 1711, 267, 1715, 268, 1715, + 269, 1715, 270, 1715, 267, 1713, 268, 1713, 269, 1713, 270, 1713, 267, + 1722, 268, 1722, 267, 1723, 268, 1723, 269, 1723, 270, 1723, 267, 1728, + 268, 1728, 267, 1729, 268, 1729, 269, 1729, 270, 1729, 267, 1726, 268, + 1726, 269, 1726, 270, 1726, 267, 1746, 268, 1746, 267, 1747, 268, 1747, + 267, 1709, 268, 1709, 269, 1709, 270, 1709, 267, 1735, 268, 1735, 267, + 1734, 268, 1734, 267, 1736, 268, 1736, 267, 1655, 267, 1739, 268, 1739, + 267, 1733, 268, 1733, 267, 1737, 268, 1737, 267, 1744, 268, 1744, 269, + 1744, 270, 1744, 269, 1609, 270, 1609, 523, 1574, 1575, 524, 1574, 1575, + 523, 1574, 1749, 524, 1574, 1749, 523, 1574, 1608, 524, 1574, 1608, 523, + 1574, 1735, 524, 1574, 1735, 523, 1574, 1734, 524, 1574, 1734, 523, 1574, + 1736, 524, 1574, 1736, 523, 1574, 1744, 524, 1574, 1744, 525, 1574, 1744, + 523, 1574, 1609, 524, 1574, 1609, 525, 1574, 1609, 267, 1740, 268, 1740, + 269, 1740, 270, 1740, 523, 1574, 1580, 523, 1574, 1581, 523, 1574, 1605, 523, 1574, 1610, 523, 1576, 1580, 523, 1576, 1581, 523, 1576, 1582, 523, 1576, 1605, 523, 1576, 1609, 523, 1576, 1610, 523, 1578, 1580, 523, 1578, 1581, 523, 1578, 1582, 523, 1578, 1605, 523, 1578, 1609, 523, 1578, 1610, @@ -3980,172 +4033,171 @@ static const unsigned int decomp_data[] = { 1610, 523, 1584, 1648, 523, 1585, 1648, 523, 1609, 1648, 779, 32, 1612, 1617, 779, 32, 1613, 1617, 779, 32, 1614, 1617, 779, 32, 1615, 1617, 779, 32, 1616, 1617, 779, 32, 1617, 1648, 524, 1574, 1585, 524, 1574, 1586, - 524, 1574, 1605, 524, 1574, 1606, 524, 1574, 1609, 524, 1574, 1610, 524, - 1576, 1585, 524, 1576, 1586, 524, 1576, 1605, 524, 1576, 1606, 524, 1576, - 1609, 524, 1576, 1610, 524, 1578, 1585, 524, 1578, 1586, 524, 1578, 1605, - 524, 1578, 1606, 524, 1578, 1609, 524, 1578, 1610, 524, 1579, 1585, 524, - 1579, 1586, 524, 1579, 1605, 524, 1579, 1606, 524, 1579, 1609, 524, 1579, - 1610, 524, 1601, 1609, 524, 1601, 1610, 524, 1602, 1609, 524, 1602, 1610, - 524, 1603, 1575, 524, 1603, 1604, 524, 1603, 1605, 524, 1603, 1609, 524, - 1603, 1610, 524, 1604, 1605, 524, 1604, 1609, 524, 1604, 1610, 524, 1605, - 1575, 524, 1605, 1605, 524, 1606, 1585, 524, 1606, 1586, 524, 1606, 1605, - 524, 1606, 1606, 524, 1606, 1609, 524, 1606, 1610, 524, 1609, 1648, 524, - 1610, 1585, 524, 1610, 1586, 524, 1610, 1605, 524, 1610, 1606, 524, 1610, - 1609, 524, 1610, 1610, 525, 1574, 1580, 525, 1574, 1581, 525, 1574, 1582, - 525, 1574, 1605, 525, 1574, 1607, 525, 1576, 1580, 525, 1576, 1581, 525, - 1576, 1582, 525, 1576, 1605, 525, 1576, 1607, 525, 1578, 1580, 525, 1578, - 1581, 525, 1578, 1582, 525, 1578, 1605, 525, 1578, 1607, 525, 1579, 1605, - 525, 1580, 1581, 525, 1580, 1605, 525, 1581, 1580, 525, 1581, 1605, 525, - 1582, 1580, 525, 1582, 1605, 525, 1587, 1580, 525, 1587, 1581, 525, 1587, - 1582, 525, 1587, 1605, 525, 1589, 1581, 525, 1589, 1582, 525, 1589, 1605, - 525, 1590, 1580, 525, 1590, 1581, 525, 1590, 1582, 525, 1590, 1605, 525, - 1591, 1581, 525, 1592, 1605, 525, 1593, 1580, 525, 1593, 1605, 525, 1594, - 1580, 525, 1594, 1605, 525, 1601, 1580, 525, 1601, 1581, 525, 1601, 1582, - 525, 1601, 1605, 525, 1602, 1581, 525, 1602, 1605, 525, 1603, 1580, 525, - 1603, 1581, 525, 1603, 1582, 525, 1603, 1604, 525, 1603, 1605, 525, 1604, - 1580, 525, 1604, 1581, 525, 1604, 1582, 525, 1604, 1605, 525, 1604, 1607, - 525, 1605, 1580, 525, 1605, 1581, 525, 1605, 1582, 525, 1605, 1605, 525, - 1606, 1580, 525, 1606, 1581, 525, 1606, 1582, 525, 1606, 1605, 525, 1606, - 1607, 525, 1607, 1580, 525, 1607, 1605, 525, 1607, 1648, 525, 1610, 1580, - 525, 1610, 1581, 525, 1610, 1582, 525, 1610, 1605, 525, 1610, 1607, 526, - 1574, 1605, 526, 1574, 1607, 526, 1576, 1605, 526, 1576, 1607, 526, 1578, - 1605, 526, 1578, 1607, 526, 1579, 1605, 526, 1579, 1607, 526, 1587, 1605, - 526, 1587, 1607, 526, 1588, 1605, 526, 1588, 1607, 526, 1603, 1604, 526, - 1603, 1605, 526, 1604, 1605, 526, 1606, 1605, 526, 1606, 1607, 526, 1610, - 1605, 526, 1610, 1607, 782, 1600, 1614, 1617, 782, 1600, 1615, 1617, 782, - 1600, 1616, 1617, 523, 1591, 1609, 523, 1591, 1610, 523, 1593, 1609, 523, - 1593, 1610, 523, 1594, 1609, 523, 1594, 1610, 523, 1587, 1609, 523, 1587, - 1610, 523, 1588, 1609, 523, 1588, 1610, 523, 1581, 1609, 523, 1581, 1610, - 523, 1580, 1609, 523, 1580, 1610, 523, 1582, 1609, 523, 1582, 1610, 523, - 1589, 1609, 523, 1589, 1610, 523, 1590, 1609, 523, 1590, 1610, 523, 1588, - 1580, 523, 1588, 1581, 523, 1588, 1582, 523, 1588, 1605, 523, 1588, 1585, - 523, 1587, 1585, 523, 1589, 1585, 523, 1590, 1585, 524, 1591, 1609, 524, - 1591, 1610, 524, 1593, 1609, 524, 1593, 1610, 524, 1594, 1609, 524, 1594, - 1610, 524, 1587, 1609, 524, 1587, 1610, 524, 1588, 1609, 524, 1588, 1610, - 524, 1581, 1609, 524, 1581, 1610, 524, 1580, 1609, 524, 1580, 1610, 524, - 1582, 1609, 524, 1582, 1610, 524, 1589, 1609, 524, 1589, 1610, 524, 1590, - 1609, 524, 1590, 1610, 524, 1588, 1580, 524, 1588, 1581, 524, 1588, 1582, - 524, 1588, 1605, 524, 1588, 1585, 524, 1587, 1585, 524, 1589, 1585, 524, - 1590, 1585, 525, 1588, 1580, 525, 1588, 1581, 525, 1588, 1582, 525, 1588, - 1605, 525, 1587, 1607, 525, 1588, 1607, 525, 1591, 1605, 526, 1587, 1580, - 526, 1587, 1581, 526, 1587, 1582, 526, 1588, 1580, 526, 1588, 1581, 526, - 1588, 1582, 526, 1591, 1605, 526, 1592, 1605, 524, 1575, 1611, 523, 1575, - 1611, 781, 1578, 1580, 1605, 780, 1578, 1581, 1580, 781, 1578, 1581, - 1580, 781, 1578, 1581, 1605, 781, 1578, 1582, 1605, 781, 1578, 1605, - 1580, 781, 1578, 1605, 1581, 781, 1578, 1605, 1582, 780, 1580, 1605, - 1581, 781, 1580, 1605, 1581, 780, 1581, 1605, 1610, 780, 1581, 1605, - 1609, 781, 1587, 1581, 1580, 781, 1587, 1580, 1581, 780, 1587, 1580, - 1609, 780, 1587, 1605, 1581, 781, 1587, 1605, 1581, 781, 1587, 1605, - 1580, 780, 1587, 1605, 1605, 781, 1587, 1605, 1605, 780, 1589, 1581, - 1581, 781, 1589, 1581, 1581, 780, 1589, 1605, 1605, 780, 1588, 1581, - 1605, 781, 1588, 1581, 1605, 780, 1588, 1580, 1610, 780, 1588, 1605, - 1582, 781, 1588, 1605, 1582, 780, 1588, 1605, 1605, 781, 1588, 1605, - 1605, 780, 1590, 1581, 1609, 780, 1590, 1582, 1605, 781, 1590, 1582, - 1605, 780, 1591, 1605, 1581, 781, 1591, 1605, 1581, 781, 1591, 1605, - 1605, 780, 1591, 1605, 1610, 780, 1593, 1580, 1605, 780, 1593, 1605, - 1605, 781, 1593, 1605, 1605, 780, 1593, 1605, 1609, 780, 1594, 1605, - 1605, 780, 1594, 1605, 1610, 780, 1594, 1605, 1609, 780, 1601, 1582, - 1605, 781, 1601, 1582, 1605, 780, 1602, 1605, 1581, 780, 1602, 1605, - 1605, 780, 1604, 1581, 1605, 780, 1604, 1581, 1610, 780, 1604, 1581, - 1609, 781, 1604, 1580, 1580, 780, 1604, 1580, 1580, 780, 1604, 1582, - 1605, 781, 1604, 1582, 1605, 780, 1604, 1605, 1581, 781, 1604, 1605, - 1581, 781, 1605, 1581, 1580, 781, 1605, 1581, 1605, 780, 1605, 1581, - 1610, 781, 1605, 1580, 1581, 781, 1605, 1580, 1605, 781, 1605, 1582, - 1580, 781, 1605, 1582, 1605, 781, 1605, 1580, 1582, 781, 1607, 1605, - 1580, 781, 1607, 1605, 1605, 781, 1606, 1581, 1605, 780, 1606, 1581, - 1609, 780, 1606, 1580, 1605, 781, 1606, 1580, 1605, 780, 1606, 1580, - 1609, 780, 1606, 1605, 1610, 780, 1606, 1605, 1609, 780, 1610, 1605, - 1605, 781, 1610, 1605, 1605, 780, 1576, 1582, 1610, 780, 1578, 1580, - 1610, 780, 1578, 1580, 1609, 780, 1578, 1582, 1610, 780, 1578, 1582, - 1609, 780, 1578, 1605, 1610, 780, 1578, 1605, 1609, 780, 1580, 1605, - 1610, 780, 1580, 1581, 1609, 780, 1580, 1605, 1609, 780, 1587, 1582, - 1609, 780, 1589, 1581, 1610, 780, 1588, 1581, 1610, 780, 1590, 1581, - 1610, 780, 1604, 1580, 1610, 780, 1604, 1605, 1610, 780, 1610, 1581, - 1610, 780, 1610, 1580, 1610, 780, 1610, 1605, 1610, 780, 1605, 1605, - 1610, 780, 1602, 1605, 1610, 780, 1606, 1581, 1610, 781, 1602, 1605, - 1581, 781, 1604, 1581, 1605, 780, 1593, 1605, 1610, 780, 1603, 1605, - 1610, 781, 1606, 1580, 1581, 780, 1605, 1582, 1610, 781, 1604, 1580, - 1605, 780, 1603, 1605, 1605, 780, 1604, 1580, 1605, 780, 1606, 1580, - 1581, 780, 1580, 1581, 1610, 780, 1581, 1580, 1610, 780, 1605, 1580, - 1610, 780, 1601, 1605, 1610, 780, 1576, 1581, 1610, 781, 1603, 1605, - 1605, 781, 1593, 1580, 1605, 781, 1589, 1605, 1605, 780, 1587, 1582, - 1610, 780, 1606, 1580, 1610, 779, 1589, 1604, 1746, 779, 1602, 1604, - 1746, 1035, 1575, 1604, 1604, 1607, 1035, 1575, 1603, 1576, 1585, 1035, - 1605, 1581, 1605, 1583, 1035, 1589, 1604, 1593, 1605, 1035, 1585, 1587, - 1608, 1604, 1035, 1593, 1604, 1610, 1607, 1035, 1608, 1587, 1604, 1605, - 779, 1589, 1604, 1609, 4619, 1589, 1604, 1609, 32, 1575, 1604, 1604, - 1607, 32, 1593, 1604, 1610, 1607, 32, 1608, 1587, 1604, 1605, 2059, 1580, - 1604, 32, 1580, 1604, 1575, 1604, 1607, 1035, 1585, 1740, 1575, 1604, - 265, 44, 265, 12289, 265, 12290, 265, 58, 265, 59, 265, 33, 265, 63, 265, - 12310, 265, 12311, 265, 8230, 265, 8229, 265, 8212, 265, 8211, 265, 95, - 265, 95, 265, 40, 265, 41, 265, 123, 265, 125, 265, 12308, 265, 12309, - 265, 12304, 265, 12305, 265, 12298, 265, 12299, 265, 12296, 265, 12297, - 265, 12300, 265, 12301, 265, 12302, 265, 12303, 265, 91, 265, 93, 258, - 8254, 258, 8254, 258, 8254, 258, 8254, 258, 95, 258, 95, 258, 95, 271, - 44, 271, 12289, 271, 46, 271, 59, 271, 58, 271, 63, 271, 33, 271, 8212, - 271, 40, 271, 41, 271, 123, 271, 125, 271, 12308, 271, 12309, 271, 35, - 271, 38, 271, 42, 271, 43, 271, 45, 271, 60, 271, 62, 271, 61, 271, 92, - 271, 36, 271, 37, 271, 64, 523, 32, 1611, 526, 1600, 1611, 523, 32, 1612, - 523, 32, 1613, 523, 32, 1614, 526, 1600, 1614, 523, 32, 1615, 526, 1600, - 1615, 523, 32, 1616, 526, 1600, 1616, 523, 32, 1617, 526, 1600, 1617, - 523, 32, 1618, 526, 1600, 1618, 267, 1569, 267, 1570, 268, 1570, 267, - 1571, 268, 1571, 267, 1572, 268, 1572, 267, 1573, 268, 1573, 267, 1574, - 268, 1574, 269, 1574, 270, 1574, 267, 1575, 268, 1575, 267, 1576, 268, - 1576, 269, 1576, 270, 1576, 267, 1577, 268, 1577, 267, 1578, 268, 1578, - 269, 1578, 270, 1578, 267, 1579, 268, 1579, 269, 1579, 270, 1579, 267, - 1580, 268, 1580, 269, 1580, 270, 1580, 267, 1581, 268, 1581, 269, 1581, - 270, 1581, 267, 1582, 268, 1582, 269, 1582, 270, 1582, 267, 1583, 268, - 1583, 267, 1584, 268, 1584, 267, 1585, 268, 1585, 267, 1586, 268, 1586, - 267, 1587, 268, 1587, 269, 1587, 270, 1587, 267, 1588, 268, 1588, 269, - 1588, 270, 1588, 267, 1589, 268, 1589, 269, 1589, 270, 1589, 267, 1590, - 268, 1590, 269, 1590, 270, 1590, 267, 1591, 268, 1591, 269, 1591, 270, - 1591, 267, 1592, 268, 1592, 269, 1592, 270, 1592, 267, 1593, 268, 1593, - 269, 1593, 270, 1593, 267, 1594, 268, 1594, 269, 1594, 270, 1594, 267, - 1601, 268, 1601, 269, 1601, 270, 1601, 267, 1602, 268, 1602, 269, 1602, - 270, 1602, 267, 1603, 268, 1603, 269, 1603, 270, 1603, 267, 1604, 268, - 1604, 269, 1604, 270, 1604, 267, 1605, 268, 1605, 269, 1605, 270, 1605, - 267, 1606, 268, 1606, 269, 1606, 270, 1606, 267, 1607, 268, 1607, 269, - 1607, 270, 1607, 267, 1608, 268, 1608, 267, 1609, 268, 1609, 267, 1610, - 268, 1610, 269, 1610, 270, 1610, 523, 1604, 1570, 524, 1604, 1570, 523, - 1604, 1571, 524, 1604, 1571, 523, 1604, 1573, 524, 1604, 1573, 523, 1604, - 1575, 524, 1604, 1575, 264, 33, 264, 34, 264, 35, 264, 36, 264, 37, 264, - 38, 264, 39, 264, 40, 264, 41, 264, 42, 264, 43, 264, 44, 264, 45, 264, - 46, 264, 47, 264, 48, 264, 49, 264, 50, 264, 51, 264, 52, 264, 53, 264, - 54, 264, 55, 264, 56, 264, 57, 264, 58, 264, 59, 264, 60, 264, 61, 264, - 62, 264, 63, 264, 64, 264, 65, 264, 66, 264, 67, 264, 68, 264, 69, 264, - 70, 264, 71, 264, 72, 264, 73, 264, 74, 264, 75, 264, 76, 264, 77, 264, - 78, 264, 79, 264, 80, 264, 81, 264, 82, 264, 83, 264, 84, 264, 85, 264, - 86, 264, 87, 264, 88, 264, 89, 264, 90, 264, 91, 264, 92, 264, 93, 264, - 94, 264, 95, 264, 96, 264, 97, 264, 98, 264, 99, 264, 100, 264, 101, 264, - 102, 264, 103, 264, 104, 264, 105, 264, 106, 264, 107, 264, 108, 264, - 109, 264, 110, 264, 111, 264, 112, 264, 113, 264, 114, 264, 115, 264, - 116, 264, 117, 264, 118, 264, 119, 264, 120, 264, 121, 264, 122, 264, - 123, 264, 124, 264, 125, 264, 126, 264, 10629, 264, 10630, 272, 12290, - 272, 12300, 272, 12301, 272, 12289, 272, 12539, 272, 12530, 272, 12449, - 272, 12451, 272, 12453, 272, 12455, 272, 12457, 272, 12515, 272, 12517, - 272, 12519, 272, 12483, 272, 12540, 272, 12450, 272, 12452, 272, 12454, - 272, 12456, 272, 12458, 272, 12459, 272, 12461, 272, 12463, 272, 12465, - 272, 12467, 272, 12469, 272, 12471, 272, 12473, 272, 12475, 272, 12477, - 272, 12479, 272, 12481, 272, 12484, 272, 12486, 272, 12488, 272, 12490, - 272, 12491, 272, 12492, 272, 12493, 272, 12494, 272, 12495, 272, 12498, - 272, 12501, 272, 12504, 272, 12507, 272, 12510, 272, 12511, 272, 12512, - 272, 12513, 272, 12514, 272, 12516, 272, 12518, 272, 12520, 272, 12521, - 272, 12522, 272, 12523, 272, 12524, 272, 12525, 272, 12527, 272, 12531, - 272, 12441, 272, 12442, 272, 12644, 272, 12593, 272, 12594, 272, 12595, - 272, 12596, 272, 12597, 272, 12598, 272, 12599, 272, 12600, 272, 12601, - 272, 12602, 272, 12603, 272, 12604, 272, 12605, 272, 12606, 272, 12607, - 272, 12608, 272, 12609, 272, 12610, 272, 12611, 272, 12612, 272, 12613, - 272, 12614, 272, 12615, 272, 12616, 272, 12617, 272, 12618, 272, 12619, - 272, 12620, 272, 12621, 272, 12622, 272, 12623, 272, 12624, 272, 12625, - 272, 12626, 272, 12627, 272, 12628, 272, 12629, 272, 12630, 272, 12631, - 272, 12632, 272, 12633, 272, 12634, 272, 12635, 272, 12636, 272, 12637, - 272, 12638, 272, 12639, 272, 12640, 272, 12641, 272, 12642, 272, 12643, - 264, 162, 264, 163, 264, 172, 264, 175, 264, 166, 264, 165, 264, 8361, - 272, 9474, 272, 8592, 272, 8593, 272, 8594, 272, 8595, 272, 9632, 272, - 9675, 259, 720, 259, 721, 259, 230, 259, 665, 259, 595, 259, 675, 259, - 43878, 259, 677, 259, 676, 259, 598, 259, 599, 259, 7569, 259, 600, 259, - 606, 259, 681, 259, 612, 259, 610, 259, 608, 259, 667, 259, 295, 259, - 668, 259, 615, 259, 644, 259, 682, 259, 683, 259, 620, 259, 122628, 259, + 524, 1574, 1605, 524, 1574, 1606, 524, 1574, 1610, 524, 1576, 1585, 524, + 1576, 1586, 524, 1576, 1605, 524, 1576, 1606, 524, 1576, 1609, 524, 1576, + 1610, 524, 1578, 1585, 524, 1578, 1586, 524, 1578, 1605, 524, 1578, 1606, + 524, 1578, 1609, 524, 1578, 1610, 524, 1579, 1585, 524, 1579, 1586, 524, + 1579, 1605, 524, 1579, 1606, 524, 1579, 1609, 524, 1579, 1610, 524, 1601, + 1609, 524, 1601, 1610, 524, 1602, 1609, 524, 1602, 1610, 524, 1603, 1575, + 524, 1603, 1604, 524, 1603, 1605, 524, 1603, 1609, 524, 1603, 1610, 524, + 1604, 1605, 524, 1604, 1609, 524, 1604, 1610, 524, 1605, 1575, 524, 1605, + 1605, 524, 1606, 1585, 524, 1606, 1586, 524, 1606, 1605, 524, 1606, 1606, + 524, 1606, 1609, 524, 1606, 1610, 524, 1609, 1648, 524, 1610, 1585, 524, + 1610, 1586, 524, 1610, 1605, 524, 1610, 1606, 524, 1610, 1609, 524, 1610, + 1610, 525, 1574, 1580, 525, 1574, 1581, 525, 1574, 1582, 525, 1574, 1605, + 525, 1574, 1607, 525, 1576, 1580, 525, 1576, 1581, 525, 1576, 1582, 525, + 1576, 1605, 525, 1576, 1607, 525, 1578, 1580, 525, 1578, 1581, 525, 1578, + 1582, 525, 1578, 1605, 525, 1578, 1607, 525, 1579, 1605, 525, 1580, 1581, + 525, 1580, 1605, 525, 1581, 1580, 525, 1581, 1605, 525, 1582, 1580, 525, + 1582, 1605, 525, 1587, 1580, 525, 1587, 1581, 525, 1587, 1582, 525, 1587, + 1605, 525, 1589, 1581, 525, 1589, 1582, 525, 1589, 1605, 525, 1590, 1580, + 525, 1590, 1581, 525, 1590, 1582, 525, 1590, 1605, 525, 1591, 1581, 525, + 1592, 1605, 525, 1593, 1580, 525, 1593, 1605, 525, 1594, 1580, 525, 1594, + 1605, 525, 1601, 1580, 525, 1601, 1581, 525, 1601, 1582, 525, 1601, 1605, + 525, 1602, 1581, 525, 1602, 1605, 525, 1603, 1580, 525, 1603, 1581, 525, + 1603, 1582, 525, 1603, 1604, 525, 1603, 1605, 525, 1604, 1580, 525, 1604, + 1581, 525, 1604, 1582, 525, 1604, 1605, 525, 1604, 1607, 525, 1605, 1580, + 525, 1605, 1581, 525, 1605, 1582, 525, 1605, 1605, 525, 1606, 1580, 525, + 1606, 1581, 525, 1606, 1582, 525, 1606, 1605, 525, 1606, 1607, 525, 1607, + 1580, 525, 1607, 1605, 525, 1607, 1648, 525, 1610, 1580, 525, 1610, 1581, + 525, 1610, 1582, 525, 1610, 1605, 525, 1610, 1607, 526, 1574, 1605, 526, + 1574, 1607, 526, 1576, 1605, 526, 1576, 1607, 526, 1578, 1605, 526, 1578, + 1607, 526, 1579, 1605, 526, 1579, 1607, 526, 1587, 1605, 526, 1587, 1607, + 526, 1588, 1605, 526, 1588, 1607, 526, 1603, 1604, 526, 1603, 1605, 526, + 1604, 1605, 526, 1606, 1605, 526, 1606, 1607, 526, 1610, 1605, 526, 1610, + 1607, 782, 1600, 1614, 1617, 782, 1600, 1615, 1617, 782, 1600, 1616, + 1617, 523, 1591, 1609, 523, 1591, 1610, 523, 1593, 1609, 523, 1593, 1610, + 523, 1594, 1609, 523, 1594, 1610, 523, 1587, 1609, 523, 1587, 1610, 523, + 1588, 1609, 523, 1588, 1610, 523, 1581, 1609, 523, 1581, 1610, 523, 1580, + 1609, 523, 1580, 1610, 523, 1582, 1609, 523, 1582, 1610, 523, 1589, 1609, + 523, 1589, 1610, 523, 1590, 1609, 523, 1590, 1610, 523, 1588, 1580, 523, + 1588, 1581, 523, 1588, 1582, 523, 1588, 1605, 523, 1588, 1585, 523, 1587, + 1585, 523, 1589, 1585, 523, 1590, 1585, 524, 1591, 1609, 524, 1591, 1610, + 524, 1593, 1609, 524, 1593, 1610, 524, 1594, 1609, 524, 1594, 1610, 524, + 1587, 1609, 524, 1587, 1610, 524, 1588, 1609, 524, 1588, 1610, 524, 1581, + 1609, 524, 1581, 1610, 524, 1580, 1609, 524, 1580, 1610, 524, 1582, 1609, + 524, 1582, 1610, 524, 1589, 1609, 524, 1589, 1610, 524, 1590, 1609, 524, + 1590, 1610, 524, 1588, 1580, 524, 1588, 1581, 524, 1588, 1582, 524, 1588, + 1605, 524, 1588, 1585, 524, 1587, 1585, 524, 1589, 1585, 524, 1590, 1585, + 525, 1588, 1580, 525, 1588, 1581, 525, 1588, 1582, 525, 1588, 1605, 525, + 1587, 1607, 525, 1588, 1607, 525, 1591, 1605, 526, 1587, 1580, 526, 1587, + 1581, 526, 1587, 1582, 526, 1588, 1580, 526, 1588, 1581, 526, 1588, 1582, + 526, 1591, 1605, 526, 1592, 1605, 524, 1575, 1611, 523, 1575, 1611, 781, + 1578, 1580, 1605, 780, 1578, 1581, 1580, 781, 1578, 1581, 1580, 781, + 1578, 1581, 1605, 781, 1578, 1582, 1605, 781, 1578, 1605, 1580, 781, + 1578, 1605, 1581, 781, 1578, 1605, 1582, 780, 1580, 1605, 1581, 781, + 1580, 1605, 1581, 780, 1581, 1605, 1610, 780, 1581, 1605, 1609, 781, + 1587, 1581, 1580, 781, 1587, 1580, 1581, 780, 1587, 1580, 1609, 780, + 1587, 1605, 1581, 781, 1587, 1605, 1581, 781, 1587, 1605, 1580, 780, + 1587, 1605, 1605, 781, 1587, 1605, 1605, 780, 1589, 1581, 1581, 781, + 1589, 1581, 1581, 780, 1589, 1605, 1605, 780, 1588, 1581, 1605, 781, + 1588, 1581, 1605, 780, 1588, 1580, 1610, 780, 1588, 1605, 1582, 781, + 1588, 1605, 1582, 780, 1588, 1605, 1605, 781, 1588, 1605, 1605, 780, + 1590, 1581, 1609, 780, 1590, 1582, 1605, 781, 1590, 1582, 1605, 780, + 1591, 1605, 1581, 781, 1591, 1605, 1581, 781, 1591, 1605, 1605, 780, + 1591, 1605, 1610, 780, 1593, 1580, 1605, 780, 1593, 1605, 1605, 781, + 1593, 1605, 1605, 780, 1593, 1605, 1609, 780, 1594, 1605, 1605, 780, + 1594, 1605, 1610, 780, 1594, 1605, 1609, 780, 1601, 1582, 1605, 781, + 1601, 1582, 1605, 780, 1602, 1605, 1581, 780, 1602, 1605, 1605, 780, + 1604, 1581, 1605, 780, 1604, 1581, 1610, 780, 1604, 1581, 1609, 781, + 1604, 1580, 1580, 780, 1604, 1580, 1580, 780, 1604, 1582, 1605, 781, + 1604, 1582, 1605, 780, 1604, 1605, 1581, 781, 1604, 1605, 1581, 781, + 1605, 1581, 1580, 781, 1605, 1581, 1605, 780, 1605, 1581, 1610, 781, + 1605, 1580, 1581, 781, 1605, 1580, 1605, 781, 1605, 1582, 1580, 781, + 1605, 1582, 1605, 781, 1605, 1580, 1582, 781, 1607, 1605, 1580, 781, + 1607, 1605, 1605, 781, 1606, 1581, 1605, 780, 1606, 1581, 1609, 780, + 1606, 1580, 1605, 781, 1606, 1580, 1605, 780, 1606, 1580, 1609, 780, + 1606, 1605, 1610, 780, 1606, 1605, 1609, 780, 1610, 1605, 1605, 781, + 1610, 1605, 1605, 780, 1576, 1582, 1610, 780, 1578, 1580, 1610, 780, + 1578, 1580, 1609, 780, 1578, 1582, 1610, 780, 1578, 1582, 1609, 780, + 1578, 1605, 1610, 780, 1578, 1605, 1609, 780, 1580, 1605, 1610, 780, + 1580, 1581, 1609, 780, 1580, 1605, 1609, 780, 1587, 1582, 1609, 780, + 1589, 1581, 1610, 780, 1588, 1581, 1610, 780, 1590, 1581, 1610, 780, + 1604, 1580, 1610, 780, 1604, 1605, 1610, 780, 1610, 1581, 1610, 780, + 1610, 1580, 1610, 780, 1610, 1605, 1610, 780, 1605, 1605, 1610, 780, + 1602, 1605, 1610, 780, 1606, 1581, 1610, 781, 1602, 1605, 1581, 781, + 1604, 1581, 1605, 780, 1593, 1605, 1610, 780, 1603, 1605, 1610, 781, + 1606, 1580, 1581, 780, 1605, 1582, 1610, 781, 1604, 1580, 1605, 780, + 1603, 1605, 1605, 780, 1604, 1580, 1605, 780, 1606, 1580, 1581, 780, + 1580, 1581, 1610, 780, 1581, 1580, 1610, 780, 1605, 1580, 1610, 780, + 1601, 1605, 1610, 780, 1576, 1581, 1610, 781, 1603, 1605, 1605, 781, + 1593, 1580, 1605, 781, 1589, 1605, 1605, 780, 1587, 1582, 1610, 780, + 1606, 1580, 1610, 779, 1589, 1604, 1746, 779, 1602, 1604, 1746, 1035, + 1575, 1604, 1604, 1607, 1035, 1575, 1603, 1576, 1585, 1035, 1605, 1581, + 1605, 1583, 1035, 1589, 1604, 1593, 1605, 1035, 1585, 1587, 1608, 1604, + 1035, 1593, 1604, 1610, 1607, 1035, 1608, 1587, 1604, 1605, 779, 1589, + 1604, 1609, 4619, 1589, 1604, 1609, 32, 1575, 1604, 1604, 1607, 32, 1593, + 1604, 1610, 1607, 32, 1608, 1587, 1604, 1605, 2059, 1580, 1604, 32, 1580, + 1604, 1575, 1604, 1607, 1035, 1585, 1740, 1575, 1604, 265, 44, 265, + 12289, 265, 12290, 265, 58, 265, 59, 265, 33, 265, 63, 265, 12310, 265, + 12311, 265, 8230, 265, 8229, 265, 8212, 265, 8211, 265, 95, 265, 40, 265, + 41, 265, 123, 265, 125, 265, 12308, 265, 12309, 265, 12304, 265, 12305, + 265, 12298, 265, 12299, 265, 12296, 265, 12297, 265, 12300, 265, 12301, + 265, 12302, 265, 12303, 265, 91, 265, 93, 258, 8254, 258, 95, 271, 44, + 271, 12289, 271, 46, 271, 59, 271, 58, 271, 63, 271, 33, 271, 8212, 271, + 40, 271, 41, 271, 123, 271, 125, 271, 12308, 271, 12309, 271, 35, 271, + 38, 271, 42, 271, 43, 271, 45, 271, 60, 271, 62, 271, 61, 271, 92, 271, + 36, 271, 37, 271, 64, 523, 32, 1611, 526, 1600, 1611, 523, 32, 1612, 523, + 32, 1613, 523, 32, 1614, 526, 1600, 1614, 523, 32, 1615, 526, 1600, 1615, + 523, 32, 1616, 526, 1600, 1616, 523, 32, 1617, 526, 1600, 1617, 523, 32, + 1618, 526, 1600, 1618, 267, 1569, 267, 1570, 268, 1570, 267, 1571, 268, + 1571, 267, 1572, 268, 1572, 267, 1573, 268, 1573, 267, 1574, 268, 1574, + 269, 1574, 270, 1574, 267, 1575, 268, 1575, 267, 1576, 268, 1576, 269, + 1576, 270, 1576, 267, 1577, 268, 1577, 267, 1578, 268, 1578, 269, 1578, + 270, 1578, 267, 1579, 268, 1579, 269, 1579, 270, 1579, 267, 1580, 268, + 1580, 269, 1580, 270, 1580, 267, 1581, 268, 1581, 269, 1581, 270, 1581, + 267, 1582, 268, 1582, 269, 1582, 270, 1582, 267, 1583, 268, 1583, 267, + 1584, 268, 1584, 267, 1585, 268, 1585, 267, 1586, 268, 1586, 267, 1587, + 268, 1587, 269, 1587, 270, 1587, 267, 1588, 268, 1588, 269, 1588, 270, + 1588, 267, 1589, 268, 1589, 269, 1589, 270, 1589, 267, 1590, 268, 1590, + 269, 1590, 270, 1590, 267, 1591, 268, 1591, 269, 1591, 270, 1591, 267, + 1592, 268, 1592, 269, 1592, 270, 1592, 267, 1593, 268, 1593, 269, 1593, + 270, 1593, 267, 1594, 268, 1594, 269, 1594, 270, 1594, 267, 1601, 268, + 1601, 269, 1601, 270, 1601, 267, 1602, 268, 1602, 269, 1602, 270, 1602, + 267, 1603, 268, 1603, 269, 1603, 270, 1603, 267, 1604, 268, 1604, 269, + 1604, 270, 1604, 267, 1605, 268, 1605, 269, 1605, 270, 1605, 267, 1606, + 268, 1606, 269, 1606, 270, 1606, 267, 1607, 268, 1607, 269, 1607, 270, + 1607, 267, 1608, 268, 1608, 267, 1609, 268, 1609, 267, 1610, 268, 1610, + 269, 1610, 270, 1610, 523, 1604, 1570, 524, 1604, 1570, 523, 1604, 1571, + 524, 1604, 1571, 523, 1604, 1573, 524, 1604, 1573, 523, 1604, 1575, 524, + 1604, 1575, 264, 33, 264, 34, 264, 35, 264, 36, 264, 37, 264, 38, 264, + 39, 264, 40, 264, 41, 264, 42, 264, 43, 264, 44, 264, 45, 264, 46, 264, + 47, 264, 48, 264, 49, 264, 50, 264, 51, 264, 52, 264, 53, 264, 54, 264, + 55, 264, 56, 264, 57, 264, 58, 264, 59, 264, 60, 264, 61, 264, 62, 264, + 63, 264, 64, 264, 65, 264, 66, 264, 67, 264, 68, 264, 69, 264, 70, 264, + 71, 264, 72, 264, 73, 264, 74, 264, 75, 264, 76, 264, 77, 264, 78, 264, + 79, 264, 80, 264, 81, 264, 82, 264, 83, 264, 84, 264, 85, 264, 86, 264, + 87, 264, 88, 264, 89, 264, 90, 264, 91, 264, 92, 264, 93, 264, 94, 264, + 95, 264, 96, 264, 97, 264, 98, 264, 99, 264, 100, 264, 101, 264, 102, + 264, 103, 264, 104, 264, 105, 264, 106, 264, 107, 264, 108, 264, 109, + 264, 110, 264, 111, 264, 112, 264, 113, 264, 114, 264, 115, 264, 116, + 264, 117, 264, 118, 264, 119, 264, 120, 264, 121, 264, 122, 264, 123, + 264, 124, 264, 125, 264, 126, 264, 10629, 264, 10630, 272, 12290, 272, + 12300, 272, 12301, 272, 12289, 272, 12539, 272, 12530, 272, 12449, 272, + 12451, 272, 12453, 272, 12455, 272, 12457, 272, 12515, 272, 12517, 272, + 12519, 272, 12483, 272, 12540, 272, 12450, 272, 12452, 272, 12454, 272, + 12456, 272, 12458, 272, 12459, 272, 12461, 272, 12463, 272, 12465, 272, + 12467, 272, 12469, 272, 12471, 272, 12473, 272, 12475, 272, 12477, 272, + 12479, 272, 12481, 272, 12484, 272, 12486, 272, 12488, 272, 12490, 272, + 12491, 272, 12492, 272, 12493, 272, 12494, 272, 12495, 272, 12498, 272, + 12501, 272, 12504, 272, 12507, 272, 12510, 272, 12511, 272, 12512, 272, + 12513, 272, 12514, 272, 12516, 272, 12518, 272, 12520, 272, 12521, 272, + 12522, 272, 12523, 272, 12524, 272, 12525, 272, 12527, 272, 12531, 272, + 12441, 272, 12442, 272, 12644, 272, 12593, 272, 12594, 272, 12595, 272, + 12596, 272, 12597, 272, 12598, 272, 12599, 272, 12600, 272, 12601, 272, + 12602, 272, 12603, 272, 12604, 272, 12605, 272, 12606, 272, 12607, 272, + 12608, 272, 12609, 272, 12610, 272, 12611, 272, 12612, 272, 12613, 272, + 12614, 272, 12615, 272, 12616, 272, 12617, 272, 12618, 272, 12619, 272, + 12620, 272, 12621, 272, 12622, 272, 12623, 272, 12624, 272, 12625, 272, + 12626, 272, 12627, 272, 12628, 272, 12629, 272, 12630, 272, 12631, 272, + 12632, 272, 12633, 272, 12634, 272, 12635, 272, 12636, 272, 12637, 272, + 12638, 272, 12639, 272, 12640, 272, 12641, 272, 12642, 272, 12643, 264, + 162, 264, 163, 264, 172, 264, 175, 264, 166, 264, 165, 264, 8361, 272, + 9474, 272, 8592, 272, 8593, 272, 8594, 272, 8595, 272, 9632, 272, 9675, + 259, 720, 259, 721, 259, 230, 259, 665, 259, 595, 259, 675, 259, 43878, + 259, 677, 259, 676, 259, 598, 259, 599, 259, 7569, 259, 600, 259, 606, + 259, 681, 259, 612, 259, 610, 259, 608, 259, 667, 259, 295, 259, 668, + 259, 615, 259, 644, 259, 682, 259, 683, 259, 620, 259, 122628, 259, 42894, 259, 622, 259, 122629, 259, 654, 259, 122630, 259, 248, 259, 630, 259, 631, 259, 113, 259, 634, 259, 122632, 259, 637, 259, 638, 259, 640, 259, 680, 259, 678, 259, 43879, 259, 679, 259, 648, 259, 11377, 259, 655, @@ -4157,281 +4209,141 @@ static const unsigned int decomp_data[] = { 512, 119128, 119141, 512, 119135, 119150, 512, 119135, 119151, 512, 119135, 119152, 512, 119135, 119153, 512, 119135, 119154, 512, 119225, 119141, 512, 119226, 119141, 512, 119227, 119150, 512, 119228, 119150, - 512, 119227, 119151, 512, 119228, 119151, 262, 65, 262, 66, 262, 67, 262, - 68, 262, 69, 262, 70, 262, 71, 262, 72, 262, 73, 262, 74, 262, 75, 262, - 76, 262, 77, 262, 78, 262, 79, 262, 80, 262, 81, 262, 82, 262, 83, 262, - 84, 262, 85, 262, 86, 262, 87, 262, 88, 262, 89, 262, 90, 262, 97, 262, - 98, 262, 99, 262, 100, 262, 101, 262, 102, 262, 103, 262, 104, 262, 105, - 262, 106, 262, 107, 262, 108, 262, 109, 262, 110, 262, 111, 262, 112, - 262, 113, 262, 114, 262, 115, 262, 116, 262, 117, 262, 118, 262, 119, - 262, 120, 262, 121, 262, 122, 262, 65, 262, 66, 262, 67, 262, 68, 262, - 69, 262, 70, 262, 71, 262, 72, 262, 73, 262, 74, 262, 75, 262, 76, 262, - 77, 262, 78, 262, 79, 262, 80, 262, 81, 262, 82, 262, 83, 262, 84, 262, - 85, 262, 86, 262, 87, 262, 88, 262, 89, 262, 90, 262, 97, 262, 98, 262, - 99, 262, 100, 262, 101, 262, 102, 262, 103, 262, 105, 262, 106, 262, 107, - 262, 108, 262, 109, 262, 110, 262, 111, 262, 112, 262, 113, 262, 114, - 262, 115, 262, 116, 262, 117, 262, 118, 262, 119, 262, 120, 262, 121, - 262, 122, 262, 65, 262, 66, 262, 67, 262, 68, 262, 69, 262, 70, 262, 71, - 262, 72, 262, 73, 262, 74, 262, 75, 262, 76, 262, 77, 262, 78, 262, 79, - 262, 80, 262, 81, 262, 82, 262, 83, 262, 84, 262, 85, 262, 86, 262, 87, - 262, 88, 262, 89, 262, 90, 262, 97, 262, 98, 262, 99, 262, 100, 262, 101, - 262, 102, 262, 103, 262, 104, 262, 105, 262, 106, 262, 107, 262, 108, - 262, 109, 262, 110, 262, 111, 262, 112, 262, 113, 262, 114, 262, 115, - 262, 116, 262, 117, 262, 118, 262, 119, 262, 120, 262, 121, 262, 122, - 262, 65, 262, 67, 262, 68, 262, 71, 262, 74, 262, 75, 262, 78, 262, 79, - 262, 80, 262, 81, 262, 83, 262, 84, 262, 85, 262, 86, 262, 87, 262, 88, - 262, 89, 262, 90, 262, 97, 262, 98, 262, 99, 262, 100, 262, 102, 262, - 104, 262, 105, 262, 106, 262, 107, 262, 108, 262, 109, 262, 110, 262, - 112, 262, 113, 262, 114, 262, 115, 262, 116, 262, 117, 262, 118, 262, - 119, 262, 120, 262, 121, 262, 122, 262, 65, 262, 66, 262, 67, 262, 68, - 262, 69, 262, 70, 262, 71, 262, 72, 262, 73, 262, 74, 262, 75, 262, 76, - 262, 77, 262, 78, 262, 79, 262, 80, 262, 81, 262, 82, 262, 83, 262, 84, - 262, 85, 262, 86, 262, 87, 262, 88, 262, 89, 262, 90, 262, 97, 262, 98, - 262, 99, 262, 100, 262, 101, 262, 102, 262, 103, 262, 104, 262, 105, 262, - 106, 262, 107, 262, 108, 262, 109, 262, 110, 262, 111, 262, 112, 262, - 113, 262, 114, 262, 115, 262, 116, 262, 117, 262, 118, 262, 119, 262, - 120, 262, 121, 262, 122, 262, 65, 262, 66, 262, 68, 262, 69, 262, 70, - 262, 71, 262, 74, 262, 75, 262, 76, 262, 77, 262, 78, 262, 79, 262, 80, - 262, 81, 262, 83, 262, 84, 262, 85, 262, 86, 262, 87, 262, 88, 262, 89, - 262, 97, 262, 98, 262, 99, 262, 100, 262, 101, 262, 102, 262, 103, 262, - 104, 262, 105, 262, 106, 262, 107, 262, 108, 262, 109, 262, 110, 262, - 111, 262, 112, 262, 113, 262, 114, 262, 115, 262, 116, 262, 117, 262, - 118, 262, 119, 262, 120, 262, 121, 262, 122, 262, 65, 262, 66, 262, 68, - 262, 69, 262, 70, 262, 71, 262, 73, 262, 74, 262, 75, 262, 76, 262, 77, - 262, 79, 262, 83, 262, 84, 262, 85, 262, 86, 262, 87, 262, 88, 262, 89, - 262, 97, 262, 98, 262, 99, 262, 100, 262, 101, 262, 102, 262, 103, 262, - 104, 262, 105, 262, 106, 262, 107, 262, 108, 262, 109, 262, 110, 262, - 111, 262, 112, 262, 113, 262, 114, 262, 115, 262, 116, 262, 117, 262, - 118, 262, 119, 262, 120, 262, 121, 262, 122, 262, 65, 262, 66, 262, 67, - 262, 68, 262, 69, 262, 70, 262, 71, 262, 72, 262, 73, 262, 74, 262, 75, - 262, 76, 262, 77, 262, 78, 262, 79, 262, 80, 262, 81, 262, 82, 262, 83, - 262, 84, 262, 85, 262, 86, 262, 87, 262, 88, 262, 89, 262, 90, 262, 97, - 262, 98, 262, 99, 262, 100, 262, 101, 262, 102, 262, 103, 262, 104, 262, - 105, 262, 106, 262, 107, 262, 108, 262, 109, 262, 110, 262, 111, 262, - 112, 262, 113, 262, 114, 262, 115, 262, 116, 262, 117, 262, 118, 262, - 119, 262, 120, 262, 121, 262, 122, 262, 65, 262, 66, 262, 67, 262, 68, - 262, 69, 262, 70, 262, 71, 262, 72, 262, 73, 262, 74, 262, 75, 262, 76, - 262, 77, 262, 78, 262, 79, 262, 80, 262, 81, 262, 82, 262, 83, 262, 84, - 262, 85, 262, 86, 262, 87, 262, 88, 262, 89, 262, 90, 262, 97, 262, 98, - 262, 99, 262, 100, 262, 101, 262, 102, 262, 103, 262, 104, 262, 105, 262, - 106, 262, 107, 262, 108, 262, 109, 262, 110, 262, 111, 262, 112, 262, - 113, 262, 114, 262, 115, 262, 116, 262, 117, 262, 118, 262, 119, 262, - 120, 262, 121, 262, 122, 262, 65, 262, 66, 262, 67, 262, 68, 262, 69, - 262, 70, 262, 71, 262, 72, 262, 73, 262, 74, 262, 75, 262, 76, 262, 77, - 262, 78, 262, 79, 262, 80, 262, 81, 262, 82, 262, 83, 262, 84, 262, 85, - 262, 86, 262, 87, 262, 88, 262, 89, 262, 90, 262, 97, 262, 98, 262, 99, - 262, 100, 262, 101, 262, 102, 262, 103, 262, 104, 262, 105, 262, 106, - 262, 107, 262, 108, 262, 109, 262, 110, 262, 111, 262, 112, 262, 113, - 262, 114, 262, 115, 262, 116, 262, 117, 262, 118, 262, 119, 262, 120, - 262, 121, 262, 122, 262, 65, 262, 66, 262, 67, 262, 68, 262, 69, 262, 70, - 262, 71, 262, 72, 262, 73, 262, 74, 262, 75, 262, 76, 262, 77, 262, 78, - 262, 79, 262, 80, 262, 81, 262, 82, 262, 83, 262, 84, 262, 85, 262, 86, - 262, 87, 262, 88, 262, 89, 262, 90, 262, 97, 262, 98, 262, 99, 262, 100, - 262, 101, 262, 102, 262, 103, 262, 104, 262, 105, 262, 106, 262, 107, - 262, 108, 262, 109, 262, 110, 262, 111, 262, 112, 262, 113, 262, 114, - 262, 115, 262, 116, 262, 117, 262, 118, 262, 119, 262, 120, 262, 121, - 262, 122, 262, 65, 262, 66, 262, 67, 262, 68, 262, 69, 262, 70, 262, 71, - 262, 72, 262, 73, 262, 74, 262, 75, 262, 76, 262, 77, 262, 78, 262, 79, - 262, 80, 262, 81, 262, 82, 262, 83, 262, 84, 262, 85, 262, 86, 262, 87, - 262, 88, 262, 89, 262, 90, 262, 97, 262, 98, 262, 99, 262, 100, 262, 101, - 262, 102, 262, 103, 262, 104, 262, 105, 262, 106, 262, 107, 262, 108, - 262, 109, 262, 110, 262, 111, 262, 112, 262, 113, 262, 114, 262, 115, - 262, 116, 262, 117, 262, 118, 262, 119, 262, 120, 262, 121, 262, 122, - 262, 65, 262, 66, 262, 67, 262, 68, 262, 69, 262, 70, 262, 71, 262, 72, - 262, 73, 262, 74, 262, 75, 262, 76, 262, 77, 262, 78, 262, 79, 262, 80, - 262, 81, 262, 82, 262, 83, 262, 84, 262, 85, 262, 86, 262, 87, 262, 88, - 262, 89, 262, 90, 262, 97, 262, 98, 262, 99, 262, 100, 262, 101, 262, - 102, 262, 103, 262, 104, 262, 105, 262, 106, 262, 107, 262, 108, 262, - 109, 262, 110, 262, 111, 262, 112, 262, 113, 262, 114, 262, 115, 262, - 116, 262, 117, 262, 118, 262, 119, 262, 120, 262, 121, 262, 122, 262, - 305, 262, 567, 262, 913, 262, 914, 262, 915, 262, 916, 262, 917, 262, - 918, 262, 919, 262, 920, 262, 921, 262, 922, 262, 923, 262, 924, 262, - 925, 262, 926, 262, 927, 262, 928, 262, 929, 262, 1012, 262, 931, 262, - 932, 262, 933, 262, 934, 262, 935, 262, 936, 262, 937, 262, 8711, 262, - 945, 262, 946, 262, 947, 262, 948, 262, 949, 262, 950, 262, 951, 262, - 952, 262, 953, 262, 954, 262, 955, 262, 956, 262, 957, 262, 958, 262, - 959, 262, 960, 262, 961, 262, 962, 262, 963, 262, 964, 262, 965, 262, - 966, 262, 967, 262, 968, 262, 969, 262, 8706, 262, 1013, 262, 977, 262, - 1008, 262, 981, 262, 1009, 262, 982, 262, 913, 262, 914, 262, 915, 262, - 916, 262, 917, 262, 918, 262, 919, 262, 920, 262, 921, 262, 922, 262, - 923, 262, 924, 262, 925, 262, 926, 262, 927, 262, 928, 262, 929, 262, - 1012, 262, 931, 262, 932, 262, 933, 262, 934, 262, 935, 262, 936, 262, - 937, 262, 8711, 262, 945, 262, 946, 262, 947, 262, 948, 262, 949, 262, - 950, 262, 951, 262, 952, 262, 953, 262, 954, 262, 955, 262, 956, 262, - 957, 262, 958, 262, 959, 262, 960, 262, 961, 262, 962, 262, 963, 262, - 964, 262, 965, 262, 966, 262, 967, 262, 968, 262, 969, 262, 8706, 262, - 1013, 262, 977, 262, 1008, 262, 981, 262, 1009, 262, 982, 262, 913, 262, - 914, 262, 915, 262, 916, 262, 917, 262, 918, 262, 919, 262, 920, 262, - 921, 262, 922, 262, 923, 262, 924, 262, 925, 262, 926, 262, 927, 262, - 928, 262, 929, 262, 1012, 262, 931, 262, 932, 262, 933, 262, 934, 262, - 935, 262, 936, 262, 937, 262, 8711, 262, 945, 262, 946, 262, 947, 262, - 948, 262, 949, 262, 950, 262, 951, 262, 952, 262, 953, 262, 954, 262, - 955, 262, 956, 262, 957, 262, 958, 262, 959, 262, 960, 262, 961, 262, - 962, 262, 963, 262, 964, 262, 965, 262, 966, 262, 967, 262, 968, 262, - 969, 262, 8706, 262, 1013, 262, 977, 262, 1008, 262, 981, 262, 1009, 262, - 982, 262, 913, 262, 914, 262, 915, 262, 916, 262, 917, 262, 918, 262, - 919, 262, 920, 262, 921, 262, 922, 262, 923, 262, 924, 262, 925, 262, - 926, 262, 927, 262, 928, 262, 929, 262, 1012, 262, 931, 262, 932, 262, - 933, 262, 934, 262, 935, 262, 936, 262, 937, 262, 8711, 262, 945, 262, - 946, 262, 947, 262, 948, 262, 949, 262, 950, 262, 951, 262, 952, 262, - 953, 262, 954, 262, 955, 262, 956, 262, 957, 262, 958, 262, 959, 262, - 960, 262, 961, 262, 962, 262, 963, 262, 964, 262, 965, 262, 966, 262, - 967, 262, 968, 262, 969, 262, 8706, 262, 1013, 262, 977, 262, 1008, 262, - 981, 262, 1009, 262, 982, 262, 913, 262, 914, 262, 915, 262, 916, 262, - 917, 262, 918, 262, 919, 262, 920, 262, 921, 262, 922, 262, 923, 262, - 924, 262, 925, 262, 926, 262, 927, 262, 928, 262, 929, 262, 1012, 262, - 931, 262, 932, 262, 933, 262, 934, 262, 935, 262, 936, 262, 937, 262, - 8711, 262, 945, 262, 946, 262, 947, 262, 948, 262, 949, 262, 950, 262, - 951, 262, 952, 262, 953, 262, 954, 262, 955, 262, 956, 262, 957, 262, - 958, 262, 959, 262, 960, 262, 961, 262, 962, 262, 963, 262, 964, 262, - 965, 262, 966, 262, 967, 262, 968, 262, 969, 262, 8706, 262, 1013, 262, - 977, 262, 1008, 262, 981, 262, 1009, 262, 982, 262, 988, 262, 989, 262, - 48, 262, 49, 262, 50, 262, 51, 262, 52, 262, 53, 262, 54, 262, 55, 262, - 56, 262, 57, 262, 48, 262, 49, 262, 50, 262, 51, 262, 52, 262, 53, 262, - 54, 262, 55, 262, 56, 262, 57, 262, 48, 262, 49, 262, 50, 262, 51, 262, - 52, 262, 53, 262, 54, 262, 55, 262, 56, 262, 57, 262, 48, 262, 49, 262, - 50, 262, 51, 262, 52, 262, 53, 262, 54, 262, 55, 262, 56, 262, 57, 262, - 48, 262, 49, 262, 50, 262, 51, 262, 52, 262, 53, 262, 54, 262, 55, 262, - 56, 262, 57, 262, 1575, 262, 1576, 262, 1580, 262, 1583, 262, 1608, 262, - 1586, 262, 1581, 262, 1591, 262, 1610, 262, 1603, 262, 1604, 262, 1605, - 262, 1606, 262, 1587, 262, 1593, 262, 1601, 262, 1589, 262, 1602, 262, - 1585, 262, 1588, 262, 1578, 262, 1579, 262, 1582, 262, 1584, 262, 1590, - 262, 1592, 262, 1594, 262, 1646, 262, 1722, 262, 1697, 262, 1647, 262, - 1576, 262, 1580, 262, 1607, 262, 1581, 262, 1610, 262, 1603, 262, 1604, - 262, 1605, 262, 1606, 262, 1587, 262, 1593, 262, 1601, 262, 1589, 262, - 1602, 262, 1588, 262, 1578, 262, 1579, 262, 1582, 262, 1590, 262, 1594, - 262, 1580, 262, 1581, 262, 1610, 262, 1604, 262, 1606, 262, 1587, 262, - 1593, 262, 1589, 262, 1602, 262, 1588, 262, 1582, 262, 1590, 262, 1594, - 262, 1722, 262, 1647, 262, 1576, 262, 1580, 262, 1607, 262, 1581, 262, - 1591, 262, 1610, 262, 1603, 262, 1605, 262, 1606, 262, 1587, 262, 1593, - 262, 1601, 262, 1589, 262, 1602, 262, 1588, 262, 1578, 262, 1579, 262, - 1582, 262, 1590, 262, 1592, 262, 1594, 262, 1646, 262, 1697, 262, 1575, - 262, 1576, 262, 1580, 262, 1583, 262, 1607, 262, 1608, 262, 1586, 262, - 1581, 262, 1591, 262, 1610, 262, 1604, 262, 1605, 262, 1606, 262, 1587, - 262, 1593, 262, 1601, 262, 1589, 262, 1602, 262, 1585, 262, 1588, 262, - 1578, 262, 1579, 262, 1582, 262, 1584, 262, 1590, 262, 1592, 262, 1594, - 262, 1576, 262, 1580, 262, 1583, 262, 1608, 262, 1586, 262, 1581, 262, - 1591, 262, 1610, 262, 1604, 262, 1605, 262, 1606, 262, 1587, 262, 1593, + 512, 119227, 119151, 512, 119228, 119151, 262, 65, 262, 71, 262, 74, 262, + 75, 262, 79, 262, 83, 262, 84, 262, 85, 262, 86, 262, 87, 262, 88, 262, + 89, 262, 97, 262, 98, 262, 99, 262, 102, 262, 107, 262, 109, 262, 110, + 262, 112, 262, 113, 262, 114, 262, 115, 262, 116, 262, 117, 262, 118, + 262, 119, 262, 120, 262, 121, 262, 122, 262, 305, 262, 567, 262, 913, + 262, 914, 262, 916, 262, 917, 262, 918, 262, 919, 262, 920, 262, 921, + 262, 922, 262, 923, 262, 924, 262, 925, 262, 926, 262, 927, 262, 929, + 262, 1012, 262, 931, 262, 932, 262, 933, 262, 934, 262, 935, 262, 936, + 262, 937, 262, 8711, 262, 945, 262, 946, 262, 948, 262, 949, 262, 950, + 262, 951, 262, 952, 262, 953, 262, 954, 262, 955, 262, 956, 262, 957, + 262, 958, 262, 959, 262, 961, 262, 962, 262, 963, 262, 964, 262, 965, + 262, 966, 262, 967, 262, 968, 262, 969, 262, 8706, 262, 1013, 262, 977, + 262, 1008, 262, 981, 262, 1009, 262, 982, 262, 988, 262, 989, 262, 48, + 262, 49, 262, 50, 262, 51, 262, 52, 262, 53, 262, 54, 262, 55, 262, 56, + 262, 57, 259, 1072, 259, 1073, 259, 1074, 259, 1075, 259, 1076, 259, + 1077, 259, 1078, 259, 1079, 259, 1080, 259, 1082, 259, 1083, 259, 1084, + 259, 1086, 259, 1087, 259, 1088, 259, 1089, 259, 1090, 259, 1091, 259, + 1092, 259, 1093, 259, 1094, 259, 1095, 259, 1096, 259, 1099, 259, 1101, + 259, 1102, 259, 42633, 259, 1241, 259, 1110, 259, 1112, 259, 1257, 259, + 1199, 259, 1231, 261, 1072, 261, 1073, 261, 1074, 261, 1075, 261, 1076, + 261, 1077, 261, 1078, 261, 1079, 261, 1080, 261, 1082, 261, 1083, 261, + 1086, 261, 1087, 261, 1089, 261, 1091, 261, 1092, 261, 1093, 261, 1094, + 261, 1095, 261, 1096, 261, 1098, 261, 1099, 261, 1169, 261, 1110, 261, + 1109, 261, 1119, 259, 1195, 259, 42577, 259, 1201, 262, 1575, 262, 1576, + 262, 1580, 262, 1583, 262, 1608, 262, 1586, 262, 1581, 262, 1591, 262, + 1610, 262, 1603, 262, 1604, 262, 1605, 262, 1606, 262, 1587, 262, 1593, 262, 1601, 262, 1589, 262, 1602, 262, 1585, 262, 1588, 262, 1578, 262, - 1579, 262, 1582, 262, 1584, 262, 1590, 262, 1592, 262, 1594, 514, 48, 46, - 514, 48, 44, 514, 49, 44, 514, 50, 44, 514, 51, 44, 514, 52, 44, 514, 53, - 44, 514, 54, 44, 514, 55, 44, 514, 56, 44, 514, 57, 44, 770, 40, 65, 41, - 770, 40, 66, 41, 770, 40, 67, 41, 770, 40, 68, 41, 770, 40, 69, 41, 770, - 40, 70, 41, 770, 40, 71, 41, 770, 40, 72, 41, 770, 40, 73, 41, 770, 40, - 74, 41, 770, 40, 75, 41, 770, 40, 76, 41, 770, 40, 77, 41, 770, 40, 78, - 41, 770, 40, 79, 41, 770, 40, 80, 41, 770, 40, 81, 41, 770, 40, 82, 41, - 770, 40, 83, 41, 770, 40, 84, 41, 770, 40, 85, 41, 770, 40, 86, 41, 770, - 40, 87, 41, 770, 40, 88, 41, 770, 40, 89, 41, 770, 40, 90, 41, 770, - 12308, 83, 12309, 263, 67, 263, 82, 519, 67, 68, 519, 87, 90, 266, 65, - 266, 66, 266, 67, 266, 68, 266, 69, 266, 70, 266, 71, 266, 72, 266, 73, - 266, 74, 266, 75, 266, 76, 266, 77, 266, 78, 266, 79, 266, 80, 266, 81, - 266, 82, 266, 83, 266, 84, 266, 85, 266, 86, 266, 87, 266, 88, 266, 89, - 266, 90, 522, 72, 86, 522, 77, 86, 522, 83, 68, 522, 83, 83, 778, 80, 80, - 86, 522, 87, 67, 515, 77, 67, 515, 77, 68, 515, 77, 82, 522, 68, 74, 522, - 12411, 12363, 522, 12467, 12467, 266, 12469, 266, 25163, 266, 23383, 266, - 21452, 266, 12487, 266, 20108, 266, 22810, 266, 35299, 266, 22825, 266, - 20132, 266, 26144, 266, 28961, 266, 26009, 266, 21069, 266, 24460, 266, - 20877, 266, 26032, 266, 21021, 266, 32066, 266, 29983, 266, 36009, 266, - 22768, 266, 21561, 266, 28436, 266, 25237, 266, 25429, 266, 19968, 266, - 19977, 266, 36938, 266, 24038, 266, 20013, 266, 21491, 266, 25351, 266, - 36208, 266, 25171, 266, 31105, 266, 31354, 266, 21512, 266, 28288, 266, - 26377, 266, 26376, 266, 30003, 266, 21106, 266, 21942, 266, 37197, 770, - 12308, 26412, 12309, 770, 12308, 19977, 12309, 770, 12308, 20108, 12309, - 770, 12308, 23433, 12309, 770, 12308, 28857, 12309, 770, 12308, 25171, - 12309, 770, 12308, 30423, 12309, 770, 12308, 21213, 12309, 770, 12308, - 25943, 12309, 263, 24471, 263, 21487, 262, 48, 262, 49, 262, 50, 262, 51, - 262, 52, 262, 53, 262, 54, 262, 55, 262, 56, 262, 57, 256, 20029, 256, - 20024, 256, 20033, 256, 131362, 256, 20320, 256, 20398, 256, 20411, 256, - 20482, 256, 20602, 256, 20633, 256, 20711, 256, 20687, 256, 13470, 256, - 132666, 256, 20813, 256, 20820, 256, 20836, 256, 20855, 256, 132380, 256, - 13497, 256, 20839, 256, 20877, 256, 132427, 256, 20887, 256, 20900, 256, - 20172, 256, 20908, 256, 20917, 256, 168415, 256, 20981, 256, 20995, 256, - 13535, 256, 21051, 256, 21062, 256, 21106, 256, 21111, 256, 13589, 256, - 21191, 256, 21193, 256, 21220, 256, 21242, 256, 21253, 256, 21254, 256, - 21271, 256, 21321, 256, 21329, 256, 21338, 256, 21363, 256, 21373, 256, - 21375, 256, 21375, 256, 21375, 256, 133676, 256, 28784, 256, 21450, 256, - 21471, 256, 133987, 256, 21483, 256, 21489, 256, 21510, 256, 21662, 256, - 21560, 256, 21576, 256, 21608, 256, 21666, 256, 21750, 256, 21776, 256, - 21843, 256, 21859, 256, 21892, 256, 21892, 256, 21913, 256, 21931, 256, - 21939, 256, 21954, 256, 22294, 256, 22022, 256, 22295, 256, 22097, 256, - 22132, 256, 20999, 256, 22766, 256, 22478, 256, 22516, 256, 22541, 256, - 22411, 256, 22578, 256, 22577, 256, 22700, 256, 136420, 256, 22770, 256, - 22775, 256, 22790, 256, 22810, 256, 22818, 256, 22882, 256, 136872, 256, - 136938, 256, 23020, 256, 23067, 256, 23079, 256, 23000, 256, 23142, 256, - 14062, 256, 14076, 256, 23304, 256, 23358, 256, 23358, 256, 137672, 256, - 23491, 256, 23512, 256, 23527, 256, 23539, 256, 138008, 256, 23551, 256, - 23558, 256, 24403, 256, 23586, 256, 14209, 256, 23648, 256, 23662, 256, - 23744, 256, 23693, 256, 138724, 256, 23875, 256, 138726, 256, 23918, 256, - 23915, 256, 23932, 256, 24033, 256, 24034, 256, 14383, 256, 24061, 256, - 24104, 256, 24125, 256, 24169, 256, 14434, 256, 139651, 256, 14460, 256, - 24240, 256, 24243, 256, 24246, 256, 24266, 256, 172946, 256, 24318, 256, - 140081, 256, 140081, 256, 33281, 256, 24354, 256, 24354, 256, 14535, 256, - 144056, 256, 156122, 256, 24418, 256, 24427, 256, 14563, 256, 24474, 256, - 24525, 256, 24535, 256, 24569, 256, 24705, 256, 14650, 256, 14620, 256, - 24724, 256, 141012, 256, 24775, 256, 24904, 256, 24908, 256, 24910, 256, - 24908, 256, 24954, 256, 24974, 256, 25010, 256, 24996, 256, 25007, 256, - 25054, 256, 25074, 256, 25078, 256, 25104, 256, 25115, 256, 25181, 256, - 25265, 256, 25300, 256, 25424, 256, 142092, 256, 25405, 256, 25340, 256, - 25448, 256, 25475, 256, 25572, 256, 142321, 256, 25634, 256, 25541, 256, - 25513, 256, 14894, 256, 25705, 256, 25726, 256, 25757, 256, 25719, 256, - 14956, 256, 25935, 256, 25964, 256, 143370, 256, 26083, 256, 26360, 256, - 26185, 256, 15129, 256, 26257, 256, 15112, 256, 15076, 256, 20882, 256, - 20885, 256, 26368, 256, 26268, 256, 32941, 256, 17369, 256, 26391, 256, - 26395, 256, 26401, 256, 26462, 256, 26451, 256, 144323, 256, 15177, 256, - 26618, 256, 26501, 256, 26706, 256, 26757, 256, 144493, 256, 26766, 256, - 26655, 256, 26900, 256, 15261, 256, 26946, 256, 27043, 256, 27114, 256, - 27304, 256, 145059, 256, 27355, 256, 15384, 256, 27425, 256, 145575, 256, - 27476, 256, 15438, 256, 27506, 256, 27551, 256, 27578, 256, 27579, 256, - 146061, 256, 138507, 256, 146170, 256, 27726, 256, 146620, 256, 27839, - 256, 27853, 256, 27751, 256, 27926, 256, 27966, 256, 28023, 256, 27969, - 256, 28009, 256, 28024, 256, 28037, 256, 146718, 256, 27956, 256, 28207, - 256, 28270, 256, 15667, 256, 28363, 256, 28359, 256, 147153, 256, 28153, - 256, 28526, 256, 147294, 256, 147342, 256, 28614, 256, 28729, 256, 28702, - 256, 28699, 256, 15766, 256, 28746, 256, 28797, 256, 28791, 256, 28845, - 256, 132389, 256, 28997, 256, 148067, 256, 29084, 256, 148395, 256, - 29224, 256, 29237, 256, 29264, 256, 149000, 256, 29312, 256, 29333, 256, - 149301, 256, 149524, 256, 29562, 256, 29579, 256, 16044, 256, 29605, 256, - 16056, 256, 16056, 256, 29767, 256, 29788, 256, 29809, 256, 29829, 256, - 29898, 256, 16155, 256, 29988, 256, 150582, 256, 30014, 256, 150674, 256, - 30064, 256, 139679, 256, 30224, 256, 151457, 256, 151480, 256, 151620, - 256, 16380, 256, 16392, 256, 30452, 256, 151795, 256, 151794, 256, - 151833, 256, 151859, 256, 30494, 256, 30495, 256, 30495, 256, 30538, 256, - 16441, 256, 30603, 256, 16454, 256, 16534, 256, 152605, 256, 30798, 256, - 30860, 256, 30924, 256, 16611, 256, 153126, 256, 31062, 256, 153242, 256, - 153285, 256, 31119, 256, 31211, 256, 16687, 256, 31296, 256, 31306, 256, - 31311, 256, 153980, 256, 154279, 256, 154279, 256, 31470, 256, 16898, - 256, 154539, 256, 31686, 256, 31689, 256, 16935, 256, 154752, 256, 31954, - 256, 17056, 256, 31976, 256, 31971, 256, 32000, 256, 155526, 256, 32099, - 256, 17153, 256, 32199, 256, 32258, 256, 32325, 256, 17204, 256, 156200, - 256, 156231, 256, 17241, 256, 156377, 256, 32634, 256, 156478, 256, - 32661, 256, 32762, 256, 32773, 256, 156890, 256, 156963, 256, 32864, 256, - 157096, 256, 32880, 256, 144223, 256, 17365, 256, 32946, 256, 33027, 256, - 17419, 256, 33086, 256, 23221, 256, 157607, 256, 157621, 256, 144275, - 256, 144284, 256, 33281, 256, 33284, 256, 36766, 256, 17515, 256, 33425, - 256, 33419, 256, 33437, 256, 21171, 256, 33457, 256, 33459, 256, 33469, - 256, 33510, 256, 158524, 256, 33509, 256, 33565, 256, 33635, 256, 33709, - 256, 33571, 256, 33725, 256, 33767, 256, 33879, 256, 33619, 256, 33738, - 256, 33740, 256, 33756, 256, 158774, 256, 159083, 256, 158933, 256, - 17707, 256, 34033, 256, 34035, 256, 34070, 256, 160714, 256, 34148, 256, - 159532, 256, 17757, 256, 17761, 256, 159665, 256, 159954, 256, 17771, - 256, 34384, 256, 34396, 256, 34407, 256, 34409, 256, 34473, 256, 34440, - 256, 34574, 256, 34530, 256, 34681, 256, 34600, 256, 34667, 256, 34694, - 256, 17879, 256, 34785, 256, 34817, 256, 17913, 256, 34912, 256, 34915, - 256, 161383, 256, 35031, 256, 35038, 256, 17973, 256, 35066, 256, 13499, - 256, 161966, 256, 162150, 256, 18110, 256, 18119, 256, 35488, 256, 35565, - 256, 35722, 256, 35925, 256, 162984, 256, 36011, 256, 36033, 256, 36123, - 256, 36215, 256, 163631, 256, 133124, 256, 36299, 256, 36284, 256, 36336, - 256, 133342, 256, 36564, 256, 36664, 256, 165330, 256, 165357, 256, + 1579, 262, 1582, 262, 1584, 262, 1590, 262, 1592, 262, 1594, 262, 1646, + 262, 1722, 262, 1697, 262, 1647, 262, 1607, 514, 48, 46, 514, 48, 44, + 514, 49, 44, 514, 50, 44, 514, 51, 44, 514, 52, 44, 514, 53, 44, 514, 54, + 44, 514, 55, 44, 514, 56, 44, 514, 57, 44, 770, 40, 65, 41, 770, 40, 66, + 41, 770, 40, 67, 41, 770, 40, 68, 41, 770, 40, 69, 41, 770, 40, 70, 41, + 770, 40, 71, 41, 770, 40, 72, 41, 770, 40, 73, 41, 770, 40, 74, 41, 770, + 40, 75, 41, 770, 40, 76, 41, 770, 40, 77, 41, 770, 40, 78, 41, 770, 40, + 79, 41, 770, 40, 80, 41, 770, 40, 81, 41, 770, 40, 82, 41, 770, 40, 83, + 41, 770, 40, 84, 41, 770, 40, 85, 41, 770, 40, 86, 41, 770, 40, 87, 41, + 770, 40, 88, 41, 770, 40, 89, 41, 770, 40, 90, 41, 770, 12308, 83, 12309, + 519, 67, 68, 519, 87, 90, 266, 65, 266, 66, 266, 67, 266, 68, 266, 69, + 266, 70, 266, 71, 266, 72, 266, 73, 266, 74, 266, 75, 266, 76, 266, 77, + 266, 78, 266, 79, 266, 80, 266, 81, 266, 82, 266, 83, 266, 84, 266, 85, + 266, 86, 266, 87, 266, 88, 266, 89, 266, 90, 522, 72, 86, 522, 83, 68, + 522, 83, 83, 778, 80, 80, 86, 522, 87, 67, 515, 77, 67, 515, 77, 68, 515, + 77, 82, 522, 68, 74, 522, 12411, 12363, 522, 12467, 12467, 266, 12469, + 266, 25163, 266, 23383, 266, 21452, 266, 12487, 266, 20108, 266, 22810, + 266, 35299, 266, 22825, 266, 20132, 266, 26144, 266, 28961, 266, 26009, + 266, 21069, 266, 24460, 266, 20877, 266, 26032, 266, 21021, 266, 32066, + 266, 29983, 266, 36009, 266, 22768, 266, 21561, 266, 28436, 266, 25237, + 266, 25429, 266, 19968, 266, 19977, 266, 36938, 266, 24038, 266, 20013, + 266, 21491, 266, 25351, 266, 36208, 266, 25171, 266, 31105, 266, 31354, + 266, 21512, 266, 28288, 266, 26377, 266, 26376, 266, 30003, 266, 21106, + 266, 21942, 266, 37197, 770, 12308, 26412, 12309, 770, 12308, 19977, + 12309, 770, 12308, 20108, 12309, 770, 12308, 23433, 12309, 770, 12308, + 28857, 12309, 770, 12308, 25171, 12309, 770, 12308, 30423, 12309, 770, + 12308, 21213, 12309, 770, 12308, 25943, 12309, 263, 24471, 263, 21487, + 256, 20029, 256, 20024, 256, 20033, 256, 131362, 256, 20320, 256, 20411, + 256, 20482, 256, 20602, 256, 20633, 256, 20687, 256, 13470, 256, 132666, + 256, 20820, 256, 20836, 256, 20855, 256, 132380, 256, 13497, 256, 20839, + 256, 20877, 256, 132427, 256, 20887, 256, 20900, 256, 20172, 256, 20908, + 256, 168415, 256, 20981, 256, 20995, 256, 13535, 256, 21051, 256, 21062, + 256, 21106, 256, 21111, 256, 13589, 256, 21253, 256, 21254, 256, 21321, + 256, 21338, 256, 21363, 256, 21373, 256, 21375, 256, 133676, 256, 28784, + 256, 21450, 256, 21471, 256, 133987, 256, 21483, 256, 21489, 256, 21510, + 256, 21662, 256, 21560, 256, 21576, 256, 21608, 256, 21666, 256, 21750, + 256, 21776, 256, 21843, 256, 21859, 256, 21892, 256, 21931, 256, 21939, + 256, 21954, 256, 22294, 256, 22295, 256, 22097, 256, 22132, 256, 22766, + 256, 22478, 256, 22516, 256, 22541, 256, 22411, 256, 22578, 256, 22577, + 256, 22700, 256, 136420, 256, 22770, 256, 22775, 256, 22790, 256, 22810, + 256, 22818, 256, 22882, 256, 136872, 256, 136938, 256, 23020, 256, 23067, + 256, 23079, 256, 23000, 256, 23142, 256, 14062, 256, 14076, 256, 23304, + 256, 23358, 256, 137672, 256, 23491, 256, 23512, 256, 23539, 256, 138008, + 256, 23551, 256, 23558, 256, 24403, 256, 23586, 256, 14209, 256, 23648, + 256, 23744, 256, 23693, 256, 138724, 256, 23875, 256, 138726, 256, 23918, + 256, 23915, 256, 23932, 256, 24033, 256, 24034, 256, 14383, 256, 24061, + 256, 24104, 256, 24125, 256, 24169, 256, 14434, 256, 139651, 256, 14460, + 256, 24240, 256, 24243, 256, 24246, 256, 172946, 256, 24318, 256, 140081, + 256, 33281, 256, 24354, 256, 14535, 256, 144056, 256, 156122, 256, 24418, + 256, 24427, 256, 14563, 256, 24474, 256, 24525, 256, 24535, 256, 24569, + 256, 24705, 256, 14650, 256, 14620, 256, 141012, 256, 24775, 256, 24904, + 256, 24908, 256, 24954, 256, 25010, 256, 24996, 256, 25007, 256, 25054, + 256, 25104, 256, 25115, 256, 25181, 256, 25265, 256, 25300, 256, 25424, + 256, 142092, 256, 25405, 256, 25340, 256, 25448, 256, 25475, 256, 25572, + 256, 142321, 256, 25634, 256, 25541, 256, 25513, 256, 14894, 256, 25705, + 256, 25726, 256, 25757, 256, 25719, 256, 14956, 256, 25964, 256, 143370, + 256, 26083, 256, 26360, 256, 26185, 256, 15129, 256, 15112, 256, 15076, + 256, 20882, 256, 20885, 256, 26368, 256, 26268, 256, 32941, 256, 17369, + 256, 26401, 256, 26462, 256, 26451, 256, 144323, 256, 15177, 256, 26618, + 256, 26501, 256, 26706, 256, 144493, 256, 26766, 256, 26655, 256, 26900, + 256, 26946, 256, 27043, 256, 27114, 256, 27304, 256, 145059, 256, 27355, + 256, 15384, 256, 27425, 256, 145575, 256, 27476, 256, 15438, 256, 27506, + 256, 27551, 256, 27579, 256, 146061, 256, 138507, 256, 146170, 256, + 27726, 256, 146620, 256, 27839, 256, 27853, 256, 27751, 256, 27926, 256, + 27966, 256, 28009, 256, 28024, 256, 28037, 256, 146718, 256, 27956, 256, + 28207, 256, 28270, 256, 15667, 256, 28359, 256, 147153, 256, 28153, 256, + 28526, 256, 147294, 256, 147342, 256, 28614, 256, 28729, 256, 28699, 256, + 15766, 256, 28746, 256, 28797, 256, 28791, 256, 28845, 256, 132389, 256, + 28997, 256, 148067, 256, 29084, 256, 148395, 256, 29224, 256, 29264, 256, + 149000, 256, 29312, 256, 29333, 256, 149301, 256, 149524, 256, 29562, + 256, 29579, 256, 16044, 256, 29605, 256, 16056, 256, 29767, 256, 29788, + 256, 29829, 256, 29898, 256, 16155, 256, 29988, 256, 150582, 256, 30014, + 256, 150674, 256, 139679, 256, 30224, 256, 151457, 256, 151480, 256, + 151620, 256, 16380, 256, 16392, 256, 151795, 256, 151794, 256, 151833, + 256, 151859, 256, 30494, 256, 30495, 256, 30603, 256, 16454, 256, 16534, + 256, 152605, 256, 30798, 256, 16611, 256, 153126, 256, 153242, 256, + 153285, 256, 31211, 256, 16687, 256, 31306, 256, 31311, 256, 153980, 256, + 154279, 256, 31470, 256, 16898, 256, 154539, 256, 31686, 256, 31689, 256, + 16935, 256, 154752, 256, 31954, 256, 17056, 256, 31976, 256, 31971, 256, + 32000, 256, 155526, 256, 32099, 256, 17153, 256, 32199, 256, 32258, 256, + 32325, 256, 17204, 256, 156200, 256, 156231, 256, 17241, 256, 156377, + 256, 32634, 256, 156478, 256, 32661, 256, 32762, 256, 156890, 256, + 156963, 256, 32864, 256, 157096, 256, 32880, 256, 144223, 256, 17365, + 256, 32946, 256, 33027, 256, 17419, 256, 33086, 256, 23221, 256, 157607, + 256, 157621, 256, 144275, 256, 144284, 256, 33284, 256, 36766, 256, + 17515, 256, 33425, 256, 33419, 256, 33437, 256, 21171, 256, 33457, 256, + 33459, 256, 33469, 256, 33510, 256, 158524, 256, 33565, 256, 33635, 256, + 33709, 256, 33571, 256, 33725, 256, 33767, 256, 33619, 256, 33738, 256, + 33740, 256, 33756, 256, 158774, 256, 159083, 256, 158933, 256, 17707, + 256, 34033, 256, 34035, 256, 34070, 256, 160714, 256, 34148, 256, 159532, + 256, 17757, 256, 17761, 256, 159665, 256, 159954, 256, 17771, 256, 34384, + 256, 34407, 256, 34409, 256, 34473, 256, 34440, 256, 34574, 256, 34530, + 256, 34600, 256, 34667, 256, 34694, 256, 17879, 256, 34785, 256, 34817, + 256, 17913, 256, 34912, 256, 34915, 256, 161383, 256, 35031, 256, 35038, + 256, 17973, 256, 35066, 256, 13499, 256, 161966, 256, 162150, 256, 18110, + 256, 18119, 256, 35488, 256, 35925, 256, 162984, 256, 36011, 256, 36033, + 256, 36123, 256, 36215, 256, 163631, 256, 133124, 256, 36299, 256, 36284, + 256, 36336, 256, 133342, 256, 36564, 256, 165330, 256, 165357, 256, 37012, 256, 37105, 256, 37137, 256, 165678, 256, 37147, 256, 37432, 256, 37591, 256, 37592, 256, 37500, 256, 37881, 256, 37909, 256, 166906, 256, 38283, 256, 18837, 256, 38327, 256, 167287, 256, 18918, 256, 38595, 256, 23986, 256, 38691, 256, 168261, 256, 168474, 256, 19054, 256, 19062, 256, - 38880, 256, 168970, 256, 19122, 256, 169110, 256, 38923, 256, 38923, 256, - 38953, 256, 169398, 256, 39138, 256, 19251, 256, 39209, 256, 39335, 256, - 39362, 256, 39422, 256, 19406, 256, 170800, 256, 39698, 256, 40000, 256, - 40189, 256, 19662, 256, 19693, 256, 40295, 256, 172238, 256, 19704, 256, - 172293, 256, 172558, 256, 172689, 256, 40635, 256, 19798, 256, 40697, - 256, 40702, 256, 40709, 256, 40719, 256, 40726, 256, 40763, 256, 173568, + 38880, 256, 168970, 256, 19122, 256, 169110, 256, 38953, 256, 169398, + 256, 39138, 256, 19251, 256, 39209, 256, 39335, 256, 39362, 256, 39422, + 256, 19406, 256, 170800, 256, 40000, 256, 40189, 256, 19662, 256, 19693, + 256, 40295, 256, 172238, 256, 19704, 256, 172293, 256, 172558, 256, + 172689, 256, 40635, 256, 19798, 256, 40697, 256, 40702, 256, 40709, 256, + 40719, 256, 40726, 256, 40763, 256, 173568, }; /* index tables for the decomposition data */ @@ -4478,9 +4390,9 @@ static const unsigned char decomp_index1[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 85, 0, 0, 0, 0, 86, 87, 88, 89, 90, 91, 92, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 94, 95, 0, 0, 0, 0, 96, 97, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 95, 96, 0, 0, 0, 0, 97, 98, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4501,7 +4413,7 @@ static const unsigned char decomp_index1[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 101, 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 102, 103, 104, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4849,116 +4761,116 @@ static const unsigned short decomp_index2[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 894, 896, 0, 898, 900, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 903, 0, 0, 0, 0, - 0, 905, 0, 0, 0, 908, 0, 0, 0, 0, 0, 910, 913, 916, 919, 921, 924, 927, - 0, 930, 0, 933, 936, 939, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 942, 945, 948, 951, 954, 957, 960, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 963, 966, - 969, 972, 975, 0, 978, 980, 982, 984, 987, 990, 992, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 994, 996, 998, 0, - 1000, 1002, 0, 0, 0, 1004, 0, 0, 0, 0, 0, 0, 1006, 1009, 0, 1012, 0, 0, - 0, 1015, 0, 0, 0, 0, 1018, 1021, 1024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1030, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1033, 1036, 0, 1039, 0, 0, 0, 1042, 0, 0, 0, - 0, 1045, 1048, 1051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1054, 1057, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 905, 0, 0, 0, 908, 0, 0, 0, 0, 0, 15, 910, 913, 916, 918, 921, 924, 0, + 927, 0, 930, 933, 936, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 939, 942, 945, 948, 951, 954, 957, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 960, 963, + 966, 969, 972, 0, 975, 977, 979, 981, 984, 987, 989, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 991, 993, 995, 0, + 997, 999, 0, 0, 0, 1001, 0, 0, 0, 0, 0, 0, 1003, 1006, 0, 1009, 0, 0, 0, + 1012, 0, 0, 0, 0, 1015, 1018, 1021, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1030, 1033, 0, 1036, 0, 0, 0, 1039, 0, 0, 0, 0, + 1042, 1045, 1048, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1051, 1054, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1060, 1063, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1066, 1069, 1072, 1075, 0, 0, 1078, 1081, 0, 0, 1084, 1087, - 1090, 1093, 1096, 1099, 0, 0, 1102, 1105, 1108, 1111, 1114, 1117, 0, 0, - 1120, 1123, 1126, 1129, 1132, 1135, 1138, 1141, 1144, 1147, 1150, 1153, - 0, 0, 1156, 1159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1057, 1060, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1063, 1066, 1069, 1072, 0, 0, 1075, 1078, 0, 0, 1081, 1084, + 1087, 1090, 1093, 1096, 0, 0, 1099, 1102, 1105, 1108, 1111, 1114, 0, 0, + 1117, 1120, 1123, 1126, 1129, 1132, 1135, 1138, 1141, 1144, 1147, 1150, + 0, 0, 1153, 1156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1165, 1168, 1171, 1174, 1177, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1162, 1165, 1168, 1171, 1174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1180, 1183, 1186, 1189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1177, 1180, 1183, 1186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1192, 0, 1195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1189, 0, 1192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1201, 0, 0, 0, - 0, 0, 0, 0, 1204, 0, 0, 1207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1210, - 1213, 1216, 1219, 1222, 1225, 1228, 1231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1198, 0, 0, 0, + 0, 0, 0, 0, 1201, 0, 0, 1204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1207, + 1210, 1213, 1216, 1219, 1222, 1225, 1228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1234, 1237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1240, 1243, - 0, 1246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1231, 1234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1237, 1240, + 0, 1243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1249, 0, 0, 1252, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1246, 0, 0, 1249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1255, 1258, 1261, 0, 0, 1264, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1252, 1255, 1258, 0, 0, 1261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1267, 0, 0, 1270, 1273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1276, 1279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1264, 0, 0, 1267, 1270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1273, 1276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1285, 1288, 1291, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1282, 1285, 1288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1297, 0, 0, 0, 0, 0, 0, 1300, 1303, 0, 1306, 1309, 0, 0, 0, 0, + 0, 0, 0, 1294, 0, 0, 0, 0, 0, 0, 1297, 1300, 0, 1303, 1306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1312, 1315, 1318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1309, 1312, 1315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1321, 0, 1324, 1327, 1330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1318, 0, 1321, 1324, 1327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1339, 1342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1336, 1339, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1345, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1347, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1350, 0, 0, 0, 0, 1353, 0, 0, 0, 0, 1356, 0, 0, 0, 0, 1359, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1365, 0, - 1368, 1371, 1374, 1377, 1380, 0, 0, 0, 0, 0, 0, 0, 1383, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1386, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1389, 0, 0, 0, 0, 1392, 0, 0, 0, 0, 1395, 0, 0, 0, 0, 1398, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1401, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1344, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1347, 0, 0, 0, 0, 1350, 0, 0, 0, 0, 1353, 0, 0, 0, 0, 1356, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1362, 0, + 1365, 1368, 1371, 1374, 1377, 0, 0, 0, 0, 0, 0, 0, 1380, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1383, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1386, 0, 0, 0, 0, 1389, 0, 0, 0, 0, 1392, 0, 0, 0, 0, 1395, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1404, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1401, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4967,676 +4879,678 @@ static const unsigned short decomp_index2[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1407, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1409, 0, 1412, 0, 1415, 0, 1418, 0, 1421, 0, 0, - 0, 1424, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1427, 0, 1430, - 0, 0, 1433, 1436, 0, 1439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1404, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1406, 0, 1409, 0, 1412, 0, 1415, 0, 1418, 0, 0, + 0, 1421, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1424, 0, 1427, + 0, 0, 1430, 1433, 0, 1436, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1442, 1444, 1446, 0, - 1448, 1450, 1452, 1454, 1456, 1458, 1460, 1462, 1464, 1466, 1468, 0, - 1470, 1472, 1474, 1476, 1478, 1480, 1482, 1484, 1486, 1488, 1490, 1492, - 1494, 1496, 1498, 1500, 1502, 1504, 0, 1506, 1508, 1510, 1512, 1514, - 1516, 1518, 1520, 1522, 1524, 1526, 1528, 1530, 1532, 1534, 1536, 1538, - 1540, 1542, 1544, 1546, 1548, 1550, 1552, 1554, 1556, 1558, 1560, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1564, 1566, 1568, 1570, 1572, 1574, 1576, 1578, 1580, 1582, 1584, 1586, - 1588, 1590, 1592, 1594, 1596, 1598, 1600, 1602, 1604, 1606, 1608, 1610, - 1612, 1614, 1616, 1618, 1620, 1622, 1624, 1626, 1628, 1630, 1632, 1634, - 1636, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1638, 1641, 1644, - 1647, 1650, 1653, 1656, 1659, 1662, 1665, 1668, 1671, 1674, 1677, 1680, - 1683, 1686, 1689, 1692, 1695, 1698, 1701, 1704, 1707, 1710, 1713, 1716, - 1719, 1722, 1725, 1728, 1731, 1734, 1737, 1740, 1743, 1746, 1749, 1752, - 1755, 1758, 1761, 1764, 1767, 1770, 1773, 1776, 1779, 1782, 1785, 1788, - 1791, 1794, 1797, 1800, 1803, 1806, 1809, 1812, 1815, 1818, 1821, 1824, - 1827, 1830, 1833, 1836, 1839, 1842, 1845, 1848, 1851, 1854, 1857, 1860, - 1863, 1866, 1869, 1872, 1875, 1878, 1881, 1884, 1887, 1890, 1893, 1896, - 1899, 1902, 1905, 1908, 1911, 1914, 1917, 1920, 1923, 1926, 1929, 1932, - 1935, 1938, 1941, 1944, 1947, 1950, 1953, 1956, 1959, 1962, 1965, 1968, - 1971, 1974, 1977, 1980, 1983, 1986, 1989, 1992, 1995, 1998, 2001, 2004, - 2007, 2010, 2013, 2016, 2019, 2022, 2025, 2028, 2031, 2034, 2037, 2040, - 2043, 2046, 2049, 2052, 2055, 2058, 2061, 2064, 2067, 2070, 2073, 2076, - 2079, 2082, 2085, 2088, 2091, 2094, 2097, 2100, 2103, 0, 0, 0, 0, 2106, - 2109, 2112, 2115, 2118, 2121, 2124, 2127, 2130, 2133, 2136, 2139, 2142, - 2145, 2148, 2151, 2154, 2157, 2160, 2163, 2166, 2169, 2172, 2175, 2178, - 2181, 2184, 2187, 2190, 2193, 2196, 2199, 2202, 2205, 2208, 2211, 2214, - 2217, 2220, 2223, 2226, 2229, 2232, 2235, 2238, 2241, 2244, 2247, 2250, - 2253, 2256, 2259, 2262, 2265, 2268, 2271, 2274, 2277, 2280, 2283, 2286, - 2289, 2292, 2295, 2298, 2301, 2304, 2307, 2310, 2313, 2316, 2319, 2322, - 2325, 2328, 2331, 2334, 2337, 2340, 2343, 2346, 2349, 2352, 2355, 2358, - 2361, 2364, 2367, 2370, 2373, 0, 0, 0, 0, 0, 0, 2376, 2379, 2382, 2385, - 2388, 2391, 2394, 2397, 2400, 2403, 2406, 2409, 2412, 2415, 2418, 2421, - 2424, 2427, 2430, 2433, 2436, 2439, 0, 0, 2442, 2445, 2448, 2451, 2454, - 2457, 0, 0, 2460, 2463, 2466, 2469, 2472, 2475, 2478, 2481, 2484, 2487, - 2490, 2493, 2496, 2499, 2502, 2505, 2508, 2511, 2514, 2517, 2520, 2523, - 2526, 2529, 2532, 2535, 2538, 2541, 2544, 2547, 2550, 2553, 2556, 2559, - 2562, 2565, 2568, 2571, 0, 0, 2574, 2577, 2580, 2583, 2586, 2589, 0, 0, - 2592, 2595, 2598, 2601, 2604, 2607, 2610, 2613, 0, 2616, 0, 2619, 0, - 2622, 0, 2625, 2628, 2631, 2634, 2637, 2640, 2643, 2646, 2649, 2652, - 2655, 2658, 2661, 2664, 2667, 2670, 2673, 2676, 2679, 2681, 2684, 2686, - 2689, 2691, 2694, 2696, 2699, 2701, 2704, 2706, 2709, 0, 0, 2711, 2714, - 2717, 2720, 2723, 2726, 2729, 2732, 2735, 2738, 2741, 2744, 2747, 2750, - 2753, 2756, 2759, 2762, 2765, 2768, 2771, 2774, 2777, 2780, 2783, 2786, - 2789, 2792, 2795, 2798, 2801, 2804, 2807, 2810, 2813, 2816, 2819, 2822, - 2825, 2828, 2831, 2834, 2837, 2840, 2843, 2846, 2849, 2852, 2855, 2858, - 2861, 2864, 2867, 0, 2870, 2873, 2876, 2879, 2882, 2885, 2887, 2890, - 2893, 2895, 2898, 2901, 2904, 2907, 2910, 0, 2913, 2916, 2919, 2922, - 2924, 2927, 2929, 2932, 2935, 2938, 2941, 2944, 2947, 2950, 0, 0, 2952, - 2955, 2958, 2961, 2964, 2967, 0, 2969, 2972, 2975, 2978, 2981, 2984, - 2987, 2989, 2992, 2995, 2998, 3001, 3004, 3007, 3010, 3012, 3015, 3018, - 3020, 0, 0, 3022, 3025, 3028, 0, 3031, 3034, 3037, 3040, 3042, 3045, - 3047, 3050, 3052, 0, 3055, 3057, 3059, 3061, 3063, 3065, 3067, 3069, - 3071, 3073, 3075, 0, 0, 0, 0, 0, 0, 3077, 0, 0, 0, 0, 0, 3079, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3082, 3084, 3087, 0, 0, 0, 0, 0, 0, 0, 0, - 3091, 0, 0, 0, 3093, 3096, 0, 3100, 3103, 0, 0, 0, 0, 3107, 0, 3110, 0, - 0, 0, 0, 0, 0, 0, 0, 3113, 3116, 3119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3122, 0, 0, 0, 0, 0, 0, 0, 3127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3129, 3131, 0, 0, 3133, 3135, 3137, 3139, 3141, 3143, - 3145, 3147, 3149, 3151, 3153, 3155, 3157, 3159, 3161, 3163, 3165, 3167, - 3169, 3171, 3173, 3175, 3177, 3179, 3181, 3183, 3185, 0, 3187, 3189, - 3191, 3193, 3195, 3197, 3199, 3201, 3203, 3205, 3207, 3209, 3211, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3216, 3220, 3224, 3226, 0, 3229, 3233, 3237, 0, 3239, 3242, 3244, - 3246, 3248, 3250, 3252, 3254, 3256, 3258, 3260, 0, 3262, 3264, 0, 0, - 3267, 3269, 3271, 3273, 3275, 0, 0, 3277, 3280, 3284, 0, 3287, 0, 3289, - 0, 3291, 0, 3293, 3295, 3297, 3299, 0, 3301, 3303, 3305, 0, 3307, 3309, - 3311, 3313, 3315, 3317, 3319, 0, 3321, 3325, 3327, 3329, 3331, 3333, 0, - 0, 0, 0, 3335, 3337, 3339, 3341, 3343, 0, 0, 0, 0, 0, 0, 3345, 3349, - 3353, 3358, 3362, 3366, 3370, 3374, 3378, 3382, 3386, 3390, 3394, 3398, - 3402, 3406, 3409, 3411, 3414, 3418, 3421, 3423, 3426, 3430, 3435, 3438, - 3440, 3443, 3447, 3449, 3451, 3453, 3455, 3457, 3460, 3464, 3467, 3469, - 3472, 3476, 3481, 3484, 3486, 3489, 3493, 3495, 3497, 3499, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3501, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3505, 3508, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3511, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3514, 3517, 3520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3523, 0, 0, 0, 0, 3526, - 0, 0, 3529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3532, 0, 3535, 0, 0, 0, 0, 0, 3538, 3541, 0, 3545, 3548, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3552, 0, 0, 3555, 0, 0, 3558, - 0, 3561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3564, 0, 3567, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3570, 3573, 3576, 3579, - 3582, 0, 0, 3585, 3588, 0, 0, 3591, 3594, 0, 0, 0, 0, 0, 0, 3597, 3600, - 0, 0, 3603, 3606, 0, 0, 3609, 3612, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3615, - 3618, 3621, 3624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3627, 3630, 3633, 3636, 0, 0, 0, 0, 0, 0, 3639, 3642, - 3645, 3648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3651, 3653, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3655, 3657, 3659, 3661, 3663, 3665, 3667, 3669, - 3671, 3673, 3676, 3679, 3682, 3685, 3688, 3691, 3694, 3697, 3700, 3703, - 3706, 3710, 3714, 3718, 3722, 3726, 3730, 3734, 3738, 3742, 3747, 3752, - 3757, 3762, 3767, 3772, 3777, 3782, 3787, 3792, 3797, 3800, 3803, 3806, - 3809, 3812, 3815, 3818, 3821, 3824, 3828, 3832, 3836, 3840, 3844, 3848, - 3852, 3856, 3860, 3864, 3868, 3872, 3876, 3880, 3884, 3888, 3892, 3896, - 3900, 3904, 3908, 3912, 3916, 3920, 3924, 3928, 3932, 3936, 3940, 3944, - 3948, 3952, 3956, 3960, 3964, 3968, 3972, 3974, 3976, 3978, 3980, 3982, - 3984, 3986, 3988, 3990, 3992, 3994, 3996, 3998, 4000, 4002, 4004, 4006, - 4008, 4010, 4012, 4014, 4016, 4018, 4020, 4022, 4024, 4026, 4028, 4030, - 4032, 4034, 4036, 4038, 4040, 4042, 4044, 4046, 4048, 4050, 4052, 4054, - 4056, 4058, 4060, 4062, 4064, 4066, 4068, 4070, 4072, 4074, 4076, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 4078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4083, 4087, 4090, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 4094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4097, 4099, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4101, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4103, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 4105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4107, - 4109, 4111, 4113, 4115, 4117, 4119, 4121, 4123, 4125, 4127, 4129, 4131, - 4133, 4135, 4137, 4139, 4141, 4143, 4145, 4147, 4149, 4151, 4153, 4155, - 4157, 4159, 4161, 4163, 4165, 4167, 4169, 4171, 4173, 4175, 4177, 4179, - 4181, 4183, 4185, 4187, 4189, 4191, 4193, 4195, 4197, 4199, 4201, 4203, - 4205, 4207, 4209, 4211, 4213, 4215, 4217, 4219, 4221, 4223, 4225, 4227, - 4229, 4231, 4233, 4235, 4237, 4239, 4241, 4243, 4245, 4247, 4249, 4251, - 4253, 4255, 4257, 4259, 4261, 4263, 4265, 4267, 4269, 4271, 4273, 4275, - 4277, 4279, 4281, 4283, 4285, 4287, 4289, 4291, 4293, 4295, 4297, 4299, - 4301, 4303, 4305, 4307, 4309, 4311, 4313, 4315, 4317, 4319, 4321, 4323, - 4325, 4327, 4329, 4331, 4333, 4335, 4337, 4339, 4341, 4343, 4345, 4347, - 4349, 4351, 4353, 4355, 4357, 4359, 4361, 4363, 4365, 4367, 4369, 4371, - 4373, 4375, 4377, 4379, 4381, 4383, 4385, 4387, 4389, 4391, 4393, 4395, - 4397, 4399, 4401, 4403, 4405, 4407, 4409, 4411, 4413, 4415, 4417, 4419, - 4421, 4423, 4425, 4427, 4429, 4431, 4433, 4435, 4437, 4439, 4441, 4443, - 4445, 4447, 4449, 4451, 4453, 4455, 4457, 4459, 4461, 4463, 4465, 4467, - 4469, 4471, 4473, 4475, 4477, 4479, 4481, 4483, 4485, 4487, 4489, 4491, - 4493, 4495, 4497, 4499, 4501, 4503, 4505, 4507, 4509, 4511, 4513, 4515, - 4517, 4519, 4521, 4523, 4525, 4527, 4529, 4531, 4533, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1439, 1441, 1443, 0, + 1445, 1447, 1449, 1451, 1453, 1455, 1457, 1459, 1461, 1463, 1465, 0, + 1467, 1469, 1471, 1473, 1475, 1477, 1479, 6, 1481, 1483, 1485, 1487, + 1489, 1491, 1493, 1495, 1497, 1499, 0, 1501, 1503, 1505, 25, 1507, 1509, + 1511, 1513, 1515, 1517, 1519, 1521, 1523, 1525, 1527, 1529, 1531, 1533, + 1535, 1537, 1539, 1541, 1543, 1545, 1547, 1549, 1551, 1553, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1555, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1557, + 1559, 1561, 1563, 1497, 1565, 1567, 1569, 1571, 1573, 1575, 1577, 1579, + 1581, 1583, 1585, 1587, 1589, 1591, 1593, 1595, 1597, 1599, 1601, 1603, + 1605, 1607, 1609, 1611, 1613, 1615, 1617, 1619, 1621, 1623, 1625, 1627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4537, 0, 4539, - 4541, 4543, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4545, 0, - 4548, 0, 4551, 0, 4554, 0, 4557, 0, 4560, 0, 4563, 0, 4566, 0, 4569, 0, - 4572, 0, 4575, 0, 4578, 0, 0, 4581, 0, 4584, 0, 4587, 0, 0, 0, 0, 0, 0, - 4590, 4593, 0, 4596, 4599, 0, 4602, 4605, 0, 4608, 4611, 0, 4614, 4617, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4620, - 0, 0, 0, 0, 0, 0, 4623, 4626, 0, 4629, 4632, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 4635, 0, 4638, 0, 4641, 0, 4644, 0, 4647, 0, 4650, 0, 4653, 0, - 4656, 0, 4659, 0, 4662, 0, 4665, 0, 4668, 0, 0, 4671, 0, 4674, 0, 4677, - 0, 0, 0, 0, 0, 0, 4680, 4683, 0, 4686, 4689, 0, 4692, 4695, 0, 4698, - 4701, 0, 4704, 4707, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 4710, 0, 0, 4713, 4716, 4719, 4722, 0, 0, 0, 4725, 4728, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1629, 1632, 1635, 1638, + 1641, 1644, 1647, 1650, 1653, 1656, 1659, 1662, 1665, 1668, 1671, 1674, + 1677, 1680, 1683, 1686, 1689, 1692, 1695, 1698, 1701, 1704, 1707, 1710, + 1713, 1716, 1719, 1722, 1725, 1728, 1731, 1734, 1737, 1740, 1743, 1746, + 1749, 1752, 1755, 1758, 1761, 1764, 1767, 1770, 1773, 1776, 1779, 1782, + 1785, 1788, 1791, 1794, 1797, 1800, 1803, 1806, 1809, 1812, 1815, 1818, + 1821, 1824, 1827, 1830, 1833, 1836, 1839, 1842, 1845, 1848, 1851, 1854, + 1857, 1860, 1863, 1866, 1869, 1872, 1875, 1878, 1881, 1884, 1887, 1890, + 1893, 1896, 1899, 1902, 1905, 1908, 1911, 1914, 1917, 1920, 1923, 1926, + 1929, 1932, 1935, 1938, 1941, 1944, 1947, 1950, 1953, 1956, 1959, 1962, + 1965, 1968, 1971, 1974, 1977, 1980, 1983, 1986, 1989, 1992, 1995, 1998, + 2001, 2004, 2007, 2010, 2013, 2016, 2019, 2022, 2025, 2028, 2031, 2034, + 2037, 2040, 2043, 2046, 2049, 2052, 2055, 2058, 2061, 2064, 2067, 2070, + 2073, 2076, 2079, 2082, 2085, 2088, 2091, 2094, 0, 0, 0, 0, 2097, 2100, + 2103, 2106, 2109, 2112, 2115, 2118, 2121, 2124, 2127, 2130, 2133, 2136, + 2139, 2142, 2145, 2148, 2151, 2154, 2157, 2160, 2163, 2166, 2169, 2172, + 2175, 2178, 2181, 2184, 2187, 2190, 2193, 2196, 2199, 2202, 2205, 2208, + 2211, 2214, 2217, 2220, 2223, 2226, 2229, 2232, 2235, 2238, 2241, 2244, + 2247, 2250, 2253, 2256, 2259, 2262, 2265, 2268, 2271, 2274, 2277, 2280, + 2283, 2286, 2289, 2292, 2295, 2298, 2301, 2304, 2307, 2310, 2313, 2316, + 2319, 2322, 2325, 2328, 2331, 2334, 2337, 2340, 2343, 2346, 2349, 2352, + 2355, 2358, 2361, 2364, 0, 0, 0, 0, 0, 0, 2367, 2370, 2373, 2376, 2379, + 2382, 2385, 2388, 2391, 2394, 2397, 2400, 2403, 2406, 2409, 2412, 2415, + 2418, 2421, 2424, 2427, 2430, 0, 0, 2433, 2436, 2439, 2442, 2445, 2448, + 0, 0, 2451, 2454, 2457, 2460, 2463, 2466, 2469, 2472, 2475, 2478, 2481, + 2484, 2487, 2490, 2493, 2496, 2499, 2502, 2505, 2508, 2511, 2514, 2517, + 2520, 2523, 2526, 2529, 2532, 2535, 2538, 2541, 2544, 2547, 2550, 2553, + 2556, 2559, 2562, 0, 0, 2565, 2568, 2571, 2574, 2577, 2580, 0, 0, 2583, + 2586, 2589, 2592, 2595, 2598, 2601, 2604, 0, 2607, 0, 2610, 0, 2613, 0, + 2616, 2619, 2622, 2625, 2628, 2631, 2634, 2637, 2640, 2643, 2646, 2649, + 2652, 2655, 2658, 2661, 2664, 2667, 2670, 2672, 2675, 2677, 2680, 2682, + 2685, 2687, 2690, 2692, 2695, 2697, 2700, 0, 0, 2702, 2705, 2708, 2711, + 2714, 2717, 2720, 2723, 2726, 2729, 2732, 2735, 2738, 2741, 2744, 2747, + 2750, 2753, 2756, 2759, 2762, 2765, 2768, 2771, 2774, 2777, 2780, 2783, + 2786, 2789, 2792, 2795, 2798, 2801, 2804, 2807, 2810, 2813, 2816, 2819, + 2822, 2825, 2828, 2831, 2834, 2837, 2840, 2843, 2846, 2849, 2852, 2855, + 2858, 0, 2861, 2864, 2867, 2870, 2873, 2876, 2878, 2881, 2884, 2881, + 2886, 2889, 2892, 2895, 2898, 0, 2901, 2904, 2907, 2910, 2912, 2915, + 2917, 2920, 2923, 2926, 2929, 2932, 2935, 2938, 0, 0, 2940, 2943, 2946, + 2949, 2952, 2955, 0, 2957, 2960, 2963, 2966, 2969, 2972, 2975, 2977, + 2980, 2983, 2986, 2989, 2992, 2995, 2998, 3000, 3003, 3006, 3008, 0, 0, + 3010, 3013, 3016, 0, 3019, 3022, 3025, 3028, 3030, 3033, 3035, 3038, + 3040, 0, 3043, 3045, 3047, 3047, 3047, 3047, 3047, 1, 3047, 3047, 3047, + 0, 0, 0, 0, 0, 0, 3049, 0, 0, 0, 0, 0, 3051, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3054, 3056, 3059, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3063, + 3066, 0, 3070, 3073, 0, 0, 0, 0, 3077, 0, 3080, 0, 0, 0, 0, 0, 0, 0, 0, + 3083, 3086, 3089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3092, 0, 0, 0, + 0, 0, 0, 0, 3047, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3097, + 3099, 0, 0, 3101, 3103, 3105, 3107, 3109, 3111, 3113, 3115, 3117, 3119, + 3121, 3123, 3125, 3127, 3129, 3131, 3133, 3135, 3137, 3139, 3141, 3143, + 3145, 3147, 3149, 3151, 3153, 0, 3155, 3157, 3159, 3161, 3163, 3165, + 3167, 3169, 3171, 3173, 3175, 3177, 3179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3184, 3188, 3192, + 3194, 0, 3197, 3201, 3205, 0, 3207, 3210, 3212, 3212, 3212, 3214, 3216, + 3218, 3218, 3220, 3222, 0, 3224, 3226, 0, 0, 3229, 3231, 3233, 3233, + 3233, 0, 0, 3235, 3238, 3242, 0, 3245, 0, 3247, 0, 3245, 0, 3249, 3251, + 3253, 3192, 0, 3255, 3257, 3259, 0, 3261, 3263, 3265, 3267, 3269, 3271, + 3273, 0, 3275, 3279, 3281, 3283, 3285, 3287, 0, 0, 0, 0, 3289, 3291, + 3255, 3273, 3293, 0, 0, 0, 0, 0, 0, 3295, 3299, 3303, 3308, 3312, 3316, + 3320, 3324, 3328, 3332, 3336, 3340, 3344, 3348, 3352, 3356, 3359, 3361, + 3364, 3368, 3371, 3373, 3376, 3380, 3385, 3388, 3390, 3393, 3397, 3399, + 3401, 3403, 3405, 3407, 3410, 3414, 3417, 3419, 3422, 3426, 3431, 3434, + 3436, 3439, 3443, 3445, 3447, 3449, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3451, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3455, 3458, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3461, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3464, + 3467, 3470, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3473, 0, 0, 0, 0, 3476, 0, 0, 3479, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3482, 0, 3485, + 0, 0, 0, 0, 0, 3488, 3491, 0, 3495, 3498, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3502, 0, 0, 3505, 0, 0, 3508, 0, 3511, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3514, 0, 3517, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3520, 3523, 3526, 3529, 3532, 0, 0, 3535, 3538, + 0, 0, 3541, 3544, 0, 0, 0, 0, 0, 0, 3547, 3550, 0, 0, 3553, 3556, 0, 0, + 3559, 3562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3565, 3568, 3571, 3574, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3577, + 3580, 3583, 3586, 0, 0, 0, 0, 0, 0, 3589, 3592, 3595, 3598, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3601, 3603, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3605, 3607, 3609, 3611, 3613, 3615, 3617, 3619, 3621, 3623, 3626, 3629, + 3632, 3635, 3638, 3641, 3644, 3647, 3650, 3653, 3656, 3660, 3664, 3668, + 3672, 3676, 3680, 3684, 3688, 3692, 3697, 3702, 3707, 3712, 3717, 3722, + 3727, 3732, 3737, 3742, 3747, 3750, 3753, 3756, 3759, 3762, 3765, 3768, + 3771, 3774, 3778, 3782, 3786, 3790, 3794, 3798, 3802, 3806, 3810, 3814, + 3818, 3822, 3826, 3830, 3834, 3838, 3842, 3846, 3850, 3854, 3858, 3862, + 3866, 3870, 3874, 3878, 3882, 3886, 3890, 3894, 3898, 3902, 3906, 3910, + 3914, 3918, 3922, 3924, 3926, 3928, 3930, 3932, 3934, 3936, 3938, 3940, + 3942, 3944, 3946, 3948, 3950, 3952, 3954, 3956, 3958, 3960, 3962, 3964, + 3966, 3968, 3970, 3972, 3974, 3976, 3978, 3980, 3982, 3984, 3986, 3988, + 3990, 3992, 3994, 3996, 3998, 4000, 4002, 4004, 4006, 4008, 4010, 4012, + 4014, 4016, 4018, 4020, 4022, 4024, 4026, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4028, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4731, 4733, 4735, 4737, 4739, 4741, 4743, 4745, 4747, 4749, 4751, - 4753, 4755, 4757, 4759, 4761, 4763, 4765, 4767, 4769, 4771, 4773, 4775, - 4777, 4779, 4781, 4783, 4785, 4787, 4789, 4791, 4793, 4795, 4797, 4799, - 4801, 4803, 4805, 4807, 4809, 4811, 4813, 4815, 4817, 4819, 4821, 4823, - 4825, 4827, 4829, 4831, 4833, 4835, 4837, 4839, 4841, 4843, 4845, 4847, - 4849, 4851, 4853, 4855, 4857, 4859, 4861, 4863, 4865, 4867, 4869, 4871, - 4873, 4875, 4877, 4879, 4881, 4883, 4885, 4887, 4889, 4891, 4893, 4895, - 4897, 4899, 4901, 4903, 4905, 4907, 4909, 4911, 4913, 4915, 4917, 0, 0, - 0, 4919, 4921, 4923, 4925, 4927, 4929, 4931, 4933, 4935, 4937, 4939, - 4941, 4943, 4945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4033, 4037, 4040, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 4947, 4951, 4955, 4959, 4963, 4967, 4971, 4975, 4979, - 4983, 4987, 4991, 4995, 4999, 5003, 5008, 5013, 5018, 5023, 5028, 5033, - 5038, 5043, 5048, 5053, 5058, 5063, 5068, 5073, 5078, 5086, 0, 5093, - 5097, 5101, 5105, 5109, 5113, 5117, 5121, 5125, 5129, 5133, 5137, 5141, - 5145, 5149, 5153, 5157, 5161, 5165, 5169, 5173, 5177, 5181, 5185, 5189, - 5193, 5197, 5201, 5205, 5209, 5213, 5217, 5221, 5225, 5229, 5233, 5237, - 5239, 5241, 5243, 0, 0, 0, 0, 0, 0, 0, 0, 5245, 5249, 5252, 5255, 5258, - 5261, 5264, 5267, 5270, 5273, 5276, 5279, 5282, 5285, 5288, 5291, 5294, - 5296, 5298, 5300, 5302, 5304, 5306, 5308, 5310, 5312, 5314, 5316, 5318, - 5320, 5322, 5325, 5328, 5331, 5334, 5337, 5340, 5343, 5346, 5349, 5352, - 5355, 5358, 5361, 5364, 5370, 5375, 0, 5378, 5380, 5382, 5384, 5386, - 5388, 5390, 5392, 5394, 5396, 5398, 5400, 5402, 5404, 5406, 5408, 5410, - 5412, 5414, 5416, 5418, 5420, 5422, 5424, 5426, 5428, 5430, 5432, 5434, - 5436, 5438, 5440, 5442, 5444, 5446, 5448, 5450, 5452, 5454, 5456, 5458, - 5460, 5462, 5464, 5466, 5468, 5470, 5472, 5474, 5476, 5479, 5482, 5485, - 5488, 5491, 5494, 5497, 5500, 5503, 5506, 5509, 5512, 5515, 5518, 5521, - 5524, 5527, 5530, 5533, 5536, 5539, 5542, 5545, 5548, 5552, 5556, 5560, - 5563, 5567, 5570, 5574, 5576, 5578, 5580, 5582, 5584, 5586, 5588, 5590, - 5592, 5594, 5596, 5598, 5600, 5602, 5604, 5606, 5608, 5610, 5612, 5614, - 5616, 5618, 5620, 5622, 5624, 5626, 5628, 5630, 5632, 5634, 5636, 5638, - 5640, 5642, 5644, 5646, 5648, 5650, 5652, 5654, 5656, 5658, 5660, 5662, - 5664, 5666, 5668, 5671, 5676, 5681, 5686, 5690, 5695, 5699, 5703, 5709, - 5714, 5718, 5722, 5726, 5731, 5736, 5740, 5744, 5747, 5751, 5756, 5761, - 5764, 5770, 5777, 5783, 5787, 5793, 5799, 5804, 5808, 5812, 5816, 5821, - 5827, 5832, 5836, 5840, 5844, 5847, 5850, 5853, 5856, 5860, 5864, 5870, - 5874, 5879, 5885, 5889, 5892, 5895, 5901, 5906, 5912, 5916, 5922, 5925, - 5929, 5933, 5937, 5941, 5945, 5950, 5954, 5957, 5961, 5965, 5969, 5974, - 5978, 5982, 5986, 5992, 5997, 6000, 6006, 6009, 6014, 6019, 6023, 6027, - 6031, 6036, 6039, 6043, 6048, 6051, 6057, 6061, 6064, 6067, 6070, 6073, - 6076, 6079, 6082, 6085, 6088, 6091, 6095, 6099, 6103, 6107, 6111, 6115, - 6119, 6123, 6127, 6131, 6135, 6139, 6143, 6147, 6151, 6155, 6158, 6161, - 6165, 6168, 6171, 6174, 6178, 6182, 6185, 6188, 6191, 6194, 6197, 6202, - 6205, 6208, 6211, 6214, 6217, 6220, 6223, 6226, 6230, 6235, 6238, 6241, - 6244, 6247, 6250, 6253, 6256, 6260, 6264, 6268, 6272, 6275, 6278, 6281, - 6284, 6287, 6290, 6293, 6296, 6299, 6302, 6306, 6310, 6313, 6317, 6321, - 6325, 6328, 6332, 6336, 6341, 6344, 6348, 6352, 6356, 6360, 6366, 6373, - 6376, 6379, 6382, 6385, 6388, 6391, 6394, 6397, 6400, 6403, 6406, 6409, - 6412, 6415, 6418, 6421, 6424, 6427, 6432, 6435, 6438, 6441, 6446, 6450, - 6453, 6456, 6459, 6462, 6465, 6468, 6471, 6474, 6477, 6480, 6484, 6487, - 6490, 6494, 6498, 6501, 6506, 6510, 6513, 6516, 6519, 6522, 6526, 6530, - 6533, 6536, 6539, 6542, 6545, 6548, 6551, 6554, 6557, 6561, 6565, 6569, - 6573, 6577, 6581, 6585, 6589, 6593, 6597, 6601, 6605, 6609, 6613, 6617, - 6621, 6625, 6629, 6633, 6637, 6641, 6645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6649, 6651, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6653, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 6655, 6657, 6659, 0, 0, 0, 6661, 6663, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6665, 6667, 6669, - 6671, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6673, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6675, 6677, 6679, 6681, 6683, 6685, - 6687, 6689, 6691, 6693, 6695, 6697, 6699, 6701, 6703, 6705, 6707, 6709, - 6711, 6713, 6715, 6717, 6719, 6721, 6723, 6725, 6727, 6729, 6731, 6733, - 6735, 6737, 6739, 6741, 6743, 6745, 6747, 6749, 6751, 6753, 6755, 6757, - 6759, 6761, 6763, 6765, 6767, 6769, 6771, 6773, 6775, 6777, 6779, 6781, - 6783, 6785, 6787, 6789, 6791, 6793, 6795, 6797, 6799, 6801, 6803, 6805, - 6807, 6809, 6811, 6813, 6815, 6817, 6819, 6821, 6823, 6825, 6827, 6829, - 6831, 6833, 6835, 6837, 6839, 6841, 6843, 6845, 6847, 6849, 6851, 6853, - 6855, 6857, 6859, 6861, 6863, 6865, 6867, 6869, 6871, 6873, 6875, 6877, - 6879, 6881, 6883, 6885, 6887, 6889, 6891, 6893, 6895, 6897, 6899, 6901, - 6903, 6905, 6907, 6909, 6911, 6913, 6915, 6917, 6919, 6921, 6923, 6925, - 6927, 6929, 6931, 6933, 6935, 6937, 6939, 6941, 6943, 6945, 6947, 6949, - 6951, 6953, 6955, 6957, 6959, 6961, 6963, 6965, 6967, 6969, 6971, 6973, - 6975, 6977, 6979, 6981, 6983, 6985, 6987, 6989, 6991, 6993, 6995, 6997, - 6999, 7001, 7003, 7005, 7007, 7009, 7011, 7013, 7015, 7017, 7019, 7021, - 7023, 7025, 7027, 7029, 7031, 7033, 7035, 7037, 7039, 7041, 7043, 7045, - 7047, 7049, 7051, 7053, 7055, 7057, 7059, 7061, 7063, 7065, 7067, 7069, - 7071, 7073, 7075, 7077, 7079, 7081, 7083, 7085, 7087, 7089, 7091, 7093, - 7095, 7097, 7099, 7101, 7103, 7105, 7107, 7109, 7111, 7113, 7115, 7117, - 7119, 7121, 7123, 7125, 7127, 7129, 7131, 7133, 7135, 7137, 7139, 7141, - 7143, 7145, 7147, 7149, 7151, 7153, 7155, 7157, 7159, 7161, 7163, 7165, - 7167, 7169, 7171, 7173, 7175, 7177, 7179, 7181, 7183, 7185, 7187, 7189, - 7191, 7193, 7195, 7197, 7199, 7201, 7203, 7205, 7207, 7209, 7211, 7213, - 0, 0, 7215, 0, 7217, 0, 0, 7219, 7221, 7223, 7225, 7227, 7229, 7231, - 7233, 7235, 7237, 0, 7239, 0, 7241, 0, 0, 7243, 7245, 0, 0, 0, 7247, - 7249, 7251, 7253, 7255, 7257, 7259, 7261, 7263, 7265, 7267, 7269, 7271, - 7273, 7275, 7277, 7279, 7281, 7283, 7285, 7287, 7289, 7291, 7293, 7295, - 7297, 7299, 7301, 7303, 7305, 7307, 7309, 7311, 7313, 7315, 7317, 7319, - 7321, 7323, 7325, 7327, 7329, 7331, 7333, 7335, 7337, 7339, 7341, 7343, - 7345, 7347, 7349, 7351, 7353, 7355, 7357, 7359, 7361, 7363, 7365, 7367, - 7369, 7371, 7373, 7375, 7377, 7379, 7381, 0, 0, 7383, 7385, 7387, 7389, - 7391, 7393, 7395, 7397, 7399, 7401, 7403, 7405, 7407, 7409, 7411, 7413, - 7415, 7417, 7419, 7421, 7423, 7425, 7427, 7429, 7431, 7433, 7435, 7437, - 7439, 7441, 7443, 7445, 7447, 7449, 7451, 7453, 7455, 7457, 7459, 7461, - 7463, 7465, 7467, 7469, 7471, 7473, 7475, 7477, 7479, 7481, 7483, 7485, - 7487, 7489, 7491, 7493, 7495, 7497, 7499, 7501, 7503, 7505, 7507, 7509, - 7511, 7513, 7515, 7517, 7519, 7521, 7523, 7525, 7527, 7529, 7531, 7533, - 7535, 7537, 7539, 7541, 7543, 7545, 7547, 7549, 7551, 7553, 7555, 7557, - 7559, 7561, 7563, 7565, 7567, 7569, 7571, 7573, 7575, 7577, 7579, 7581, - 7583, 7585, 7587, 7589, 7591, 7593, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7595, 7598, 7601, 7604, 7608, 7612, 7615, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7618, 7621, 7624, 7627, 7630, 0, 0, 0, 0, 0, 7633, 0, 7636, - 7639, 7641, 7643, 7645, 7647, 7649, 7651, 7653, 7655, 7657, 7659, 7662, - 7665, 7668, 7671, 7674, 7677, 7680, 7683, 7686, 7689, 7692, 7695, 0, - 7698, 7701, 7704, 7707, 7710, 0, 7713, 0, 7716, 7719, 0, 7722, 7725, 0, - 7728, 7731, 7734, 7737, 7740, 7743, 7746, 7749, 7752, 7755, 7758, 7760, - 7762, 7764, 7766, 7768, 7770, 7772, 7774, 7776, 7778, 7780, 7782, 7784, - 7786, 7788, 7790, 7792, 7794, 7796, 7798, 7800, 7802, 7804, 7806, 7808, - 7810, 7812, 7814, 7816, 7818, 7820, 7822, 7824, 7826, 7828, 7830, 7832, - 7834, 7836, 7838, 7840, 7842, 7844, 7846, 7848, 7850, 7852, 7854, 7856, - 7858, 7860, 7862, 7864, 7866, 7868, 7870, 7872, 7874, 7876, 7878, 7880, - 7882, 7884, 7886, 7888, 7890, 7892, 7894, 7896, 7898, 7900, 7902, 7904, - 7906, 7908, 7910, 7912, 7914, 7916, 7918, 7920, 7922, 7924, 7926, 7928, - 7930, 7932, 7934, 7936, 7938, 7940, 7942, 7944, 7946, 7948, 7950, 7952, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 7954, 7956, 7958, 7960, 7962, 7964, 7966, - 7968, 7970, 7972, 7974, 7976, 7978, 7980, 7982, 7984, 7986, 7988, 7990, - 7992, 7994, 7996, 7998, 8000, 8003, 8006, 8009, 8012, 8015, 8018, 8021, - 8024, 8027, 8030, 8033, 8036, 8039, 8042, 8045, 8048, 8051, 8054, 8056, - 8058, 8060, 8062, 8065, 8068, 8071, 8074, 8077, 8080, 8083, 8086, 8089, - 8092, 8095, 8098, 8101, 8104, 8107, 8110, 8113, 8116, 8119, 8122, 8125, - 8128, 8131, 8134, 8137, 8140, 8143, 8146, 8149, 8152, 8155, 8158, 8161, - 8164, 8167, 8170, 8173, 8176, 8179, 8182, 8185, 8188, 8191, 8194, 8197, - 8200, 8203, 8206, 8209, 8212, 8215, 8218, 8221, 8224, 8227, 8230, 8233, - 8236, 8239, 8242, 8245, 8248, 8251, 8254, 8257, 8260, 8263, 8266, 8269, - 8272, 8275, 8278, 8281, 8284, 8287, 8290, 8293, 8296, 8299, 8302, 8305, - 8308, 8311, 8314, 8317, 8320, 8323, 8326, 8329, 8332, 8335, 8338, 8341, - 8344, 8348, 8352, 8356, 8360, 8364, 8368, 8371, 8374, 8377, 8380, 8383, - 8386, 8389, 8392, 8395, 8398, 8401, 8404, 8407, 8410, 8413, 8416, 8419, - 8422, 8425, 8428, 8431, 8434, 8437, 8440, 8443, 8446, 8449, 8452, 8455, - 8458, 8461, 8464, 8467, 8470, 8473, 8476, 8479, 8482, 8485, 8488, 8491, - 8494, 8497, 8500, 8503, 8506, 8509, 8512, 8515, 8518, 8521, 8524, 8527, - 8530, 8533, 8536, 8539, 8542, 8545, 8548, 8551, 8554, 8557, 8560, 8563, - 8566, 8569, 8572, 8575, 8578, 8581, 8584, 8587, 8590, 8593, 8596, 8599, - 8602, 8605, 8608, 8611, 8614, 8617, 8620, 8623, 8626, 8629, 8632, 8635, - 8638, 8641, 8644, 8647, 8650, 8653, 8656, 8659, 8662, 8665, 8668, 8671, - 8674, 8677, 8680, 8683, 8686, 8689, 8692, 8695, 8698, 8701, 8704, 8707, - 8710, 8713, 8716, 8719, 8722, 8725, 8728, 8731, 8734, 8737, 8740, 8743, - 8746, 8749, 8752, 8755, 8758, 8761, 8764, 8767, 8770, 8773, 8776, 8779, - 8782, 8785, 8788, 8791, 8794, 8798, 8802, 8806, 8809, 8812, 8815, 8818, - 8821, 8824, 8827, 8830, 8833, 8836, 8839, 8842, 8845, 8848, 8851, 8854, - 8857, 8860, 8863, 8866, 8869, 8872, 8875, 8878, 8881, 8884, 8887, 8890, - 8893, 8896, 8899, 8902, 8905, 8908, 8911, 8914, 8917, 8920, 8923, 8926, - 8929, 8932, 8935, 8938, 8941, 8944, 8947, 8950, 8953, 8956, 8959, 8962, - 8965, 8968, 8971, 8974, 8977, 8980, 8983, 8986, 8989, 8992, 8995, 8998, - 9001, 9004, 9007, 9010, 9013, 9016, 9019, 9022, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9025, 9029, 9033, 9037, 9041, 9045, 9049, - 9053, 9057, 9061, 9065, 9069, 9073, 9077, 9081, 9085, 9089, 9093, 9097, - 9101, 9105, 9109, 9113, 9117, 9121, 9125, 9129, 9133, 9137, 9141, 9145, - 9149, 9153, 9157, 9161, 9165, 9169, 9173, 9177, 9181, 9185, 9189, 9193, - 9197, 9201, 9205, 9209, 9213, 9217, 9221, 9225, 9229, 9233, 9237, 9241, - 9245, 9249, 9253, 9257, 9261, 9265, 9269, 9273, 9277, 0, 0, 9281, 9285, - 9289, 9293, 9297, 9301, 9305, 9309, 9313, 9317, 9321, 9325, 9329, 9333, - 9337, 9341, 9345, 9349, 9353, 9357, 9361, 9365, 9369, 9373, 9377, 9381, - 9385, 9389, 9393, 9397, 9401, 9405, 9409, 9413, 9417, 9421, 9425, 9429, - 9433, 9437, 9441, 9445, 9449, 9453, 9457, 9461, 9465, 9469, 9473, 9477, - 9481, 9485, 9489, 9493, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 9497, 9501, 9505, 9510, 9515, 9520, 9525, 9530, 9535, 9540, 9544, 9563, - 9572, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9577, - 9579, 9581, 9583, 9585, 9587, 9589, 9591, 9593, 9595, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9597, 9599, 9601, 9603, - 9605, 9607, 9609, 9611, 9613, 9615, 9617, 9619, 9621, 9623, 9625, 9627, - 9629, 9631, 9633, 9635, 9637, 0, 0, 9639, 9641, 9643, 9645, 9647, 9649, - 9651, 9653, 9655, 9657, 9659, 9661, 0, 9663, 9665, 9667, 9669, 9671, - 9673, 9675, 9677, 9679, 9681, 9683, 9685, 9687, 9689, 9691, 9693, 9695, - 9697, 9699, 0, 9701, 9703, 9705, 9707, 0, 0, 0, 0, 9709, 9712, 9715, 0, - 9718, 0, 9721, 9724, 9727, 9730, 9733, 9736, 9739, 9742, 9745, 9748, - 9751, 9753, 9755, 9757, 9759, 9761, 9763, 9765, 9767, 9769, 9771, 9773, - 9775, 9777, 9779, 9781, 9783, 9785, 9787, 9789, 9791, 9793, 9795, 9797, - 9799, 9801, 9803, 9805, 9807, 9809, 9811, 9813, 9815, 9817, 9819, 9821, - 9823, 9825, 9827, 9829, 9831, 9833, 9835, 9837, 9839, 9841, 9843, 9845, - 9847, 9849, 9851, 9853, 9855, 9857, 9859, 9861, 9863, 9865, 9867, 9869, - 9871, 9873, 9875, 9877, 9879, 9881, 9883, 9885, 9887, 9889, 9891, 9893, - 9895, 9897, 9899, 9901, 9903, 9905, 9907, 9909, 9911, 9913, 9915, 9917, - 9919, 9921, 9923, 9925, 9927, 9929, 9931, 9933, 9935, 9937, 9939, 9941, - 9943, 9945, 9947, 9949, 9951, 9953, 9955, 9957, 9959, 9961, 9963, 9965, - 9967, 9969, 9971, 9973, 9975, 9977, 9979, 9981, 9983, 9985, 9988, 9991, - 9994, 9997, 10000, 10003, 10006, 0, 0, 0, 0, 10009, 10011, 10013, 10015, - 10017, 10019, 10021, 10023, 10025, 10027, 10029, 10031, 10033, 10035, - 10037, 10039, 10041, 10043, 10045, 10047, 10049, 10051, 10053, 10055, - 10057, 10059, 10061, 10063, 10065, 10067, 10069, 10071, 10073, 10075, - 10077, 10079, 10081, 10083, 10085, 10087, 10089, 10091, 10093, 10095, - 10097, 10099, 10101, 10103, 10105, 10107, 10109, 10111, 10113, 10115, - 10117, 10119, 10121, 10123, 10125, 10127, 10129, 10131, 10133, 10135, - 10137, 10139, 10141, 10143, 10145, 10147, 10149, 10151, 10153, 10155, - 10157, 10159, 10161, 10163, 10165, 10167, 10169, 10171, 10173, 10175, - 10177, 10179, 10181, 10183, 10185, 10187, 10189, 10191, 10193, 10195, - 10197, 10199, 10201, 10203, 10205, 10207, 10209, 10211, 10213, 10215, - 10217, 10219, 10221, 10223, 10225, 10227, 10229, 10231, 10233, 10235, - 10237, 10239, 10241, 10243, 10245, 10247, 10249, 10251, 10253, 10255, - 10257, 10259, 10261, 10263, 10265, 10267, 10269, 10271, 10273, 10275, - 10277, 10279, 10281, 10283, 10285, 10287, 10289, 10291, 10293, 10295, - 10297, 10299, 10301, 10303, 10305, 10307, 10309, 10311, 10313, 10315, - 10317, 10319, 10321, 10323, 10325, 10327, 10329, 10331, 10333, 10335, - 10337, 10339, 10341, 10343, 10345, 10347, 10349, 10351, 10353, 10355, - 10357, 10359, 10361, 10363, 10365, 10367, 10369, 10371, 10373, 10375, - 10377, 10379, 10381, 10383, 10385, 10387, 0, 0, 0, 10389, 10391, 10393, - 10395, 10397, 10399, 0, 0, 10401, 10403, 10405, 10407, 10409, 10411, 0, - 0, 10413, 10415, 10417, 10419, 10421, 10423, 0, 0, 10425, 10427, 10429, - 0, 0, 0, 10431, 10433, 10435, 10437, 10439, 10441, 10443, 0, 10445, - 10447, 10449, 10451, 10453, 10455, 10457, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 10459, 10461, 10463, 10465, 10467, 0, 10469, - 10471, 10473, 10475, 10477, 10479, 10481, 10483, 10485, 10487, 10489, - 10491, 10493, 10495, 10497, 10499, 10501, 10503, 10505, 10507, 10509, - 10511, 10513, 10515, 10517, 10519, 10521, 10523, 10525, 10527, 10529, - 10531, 10533, 10535, 10537, 10539, 10541, 10543, 10545, 10547, 10549, - 10551, 0, 10553, 10555, 10557, 10559, 10561, 10563, 10565, 10567, 10569, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4044, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4047, 4049, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4053, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 10571, 0, 10574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10577, 0, 0, + 4055, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4057, 4059, 4061, 4063, 4065, + 4067, 4069, 4071, 4073, 4075, 4077, 4079, 4081, 4083, 4085, 4087, 4089, + 4091, 4093, 4095, 4097, 4099, 4101, 4103, 4105, 4107, 4109, 4111, 4113, + 4115, 4117, 4119, 4121, 4123, 4125, 4127, 4129, 4131, 4133, 4135, 4137, + 4139, 4141, 4143, 4145, 4147, 4149, 4151, 4153, 4155, 4157, 4159, 4161, + 4163, 4165, 4167, 4169, 4171, 4173, 4175, 4177, 4179, 4181, 4183, 4185, + 4187, 4189, 4191, 4193, 4195, 4197, 4199, 4201, 4203, 4205, 4207, 4209, + 4211, 4213, 4215, 4217, 4219, 4221, 4223, 4225, 4227, 4229, 4231, 4233, + 4235, 4237, 4239, 4241, 4243, 4245, 4247, 4249, 4251, 4253, 4255, 4257, + 4259, 4261, 4263, 4265, 4267, 4269, 4271, 4273, 4275, 4277, 4279, 4281, + 4283, 4285, 4287, 4289, 4291, 4293, 4295, 4297, 4299, 4301, 4303, 4305, + 4307, 4309, 4311, 4313, 4315, 4317, 4319, 4321, 4323, 4325, 4327, 4329, + 4331, 4333, 4335, 4337, 4339, 4341, 4343, 4345, 4347, 4349, 4351, 4353, + 4355, 4357, 4359, 4361, 4363, 4365, 4367, 4369, 4371, 4373, 4375, 4377, + 4379, 4381, 4383, 4385, 4387, 4389, 4391, 4393, 4395, 4397, 4399, 4401, + 4403, 4405, 4407, 4409, 4411, 4413, 4415, 4417, 4419, 4421, 4423, 4425, + 4427, 4429, 4431, 4433, 4435, 4437, 4439, 4441, 4443, 4445, 4447, 4449, + 4451, 4453, 4455, 4457, 4459, 4461, 4463, 4465, 4467, 4469, 4471, 4473, + 4475, 4477, 4479, 4481, 4483, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4485, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4487, 0, 4103, 4489, 4491, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4493, 0, 4496, 0, 4499, 0, 4502, + 0, 4505, 0, 4508, 0, 4511, 0, 4514, 0, 4517, 0, 4520, 0, 4523, 0, 4526, + 0, 0, 4529, 0, 4532, 0, 4535, 0, 0, 0, 0, 0, 0, 4538, 4541, 0, 4544, + 4547, 0, 4550, 4553, 0, 4556, 4559, 0, 4562, 4565, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4568, 0, 0, 0, 0, 0, 0, + 4571, 4574, 0, 4577, 4580, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4583, 0, + 4586, 0, 4589, 0, 4592, 0, 4595, 0, 4598, 0, 4601, 0, 4604, 0, 4607, 0, + 4610, 0, 4613, 0, 4616, 0, 0, 4619, 0, 4622, 0, 4625, 0, 0, 0, 0, 0, 0, + 4628, 4631, 0, 4634, 4637, 0, 4640, 4643, 0, 4646, 4649, 0, 4652, 4655, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4658, + 0, 0, 4661, 4664, 4667, 4670, 0, 0, 0, 4673, 4676, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4679, 4681, 4683, + 4685, 4687, 4689, 4691, 4693, 4695, 4697, 4699, 4701, 4703, 4705, 4707, + 4709, 4711, 4713, 4715, 4717, 4719, 4721, 4723, 4725, 4727, 4729, 4731, + 4733, 4735, 4737, 4739, 4741, 4743, 4745, 4747, 4749, 4751, 4753, 4755, + 4757, 4759, 4761, 4763, 4765, 4767, 4769, 4771, 4773, 4775, 4777, 4779, + 4781, 4783, 4785, 4787, 4789, 4791, 4793, 4795, 4797, 4799, 4801, 4803, + 4805, 4807, 4809, 4811, 4813, 4815, 4817, 4819, 4821, 4823, 4825, 4827, + 4829, 4831, 4833, 4835, 4837, 4839, 4841, 4843, 4845, 4847, 4849, 4851, + 4853, 4855, 4857, 4859, 4861, 4863, 4865, 0, 0, 0, 4867, 4869, 4871, + 4873, 4875, 4877, 4879, 4881, 4883, 4885, 4887, 4889, 4891, 4893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 10580, 10583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4895, + 4899, 4903, 4907, 4911, 4915, 4919, 4923, 4927, 4931, 4935, 4939, 4943, + 4947, 4951, 4956, 4961, 4966, 4971, 4976, 4981, 4986, 4991, 4996, 5001, + 5006, 5011, 5016, 5021, 5026, 5034, 0, 5041, 5045, 5049, 5053, 5057, + 5061, 5065, 5069, 5073, 5077, 5081, 5085, 5089, 5093, 5097, 5101, 5105, + 5109, 5113, 5117, 5121, 5125, 5129, 5133, 5137, 5141, 5145, 5149, 5153, + 5157, 5161, 5165, 5169, 5173, 5177, 5181, 5185, 5187, 5189, 5191, 0, 0, + 0, 0, 0, 0, 0, 0, 5193, 5197, 5200, 5203, 5206, 5209, 5212, 5215, 5218, + 5221, 5224, 5227, 5230, 5233, 5236, 5239, 5242, 5244, 5246, 5248, 5250, + 5252, 5254, 5256, 5258, 5260, 5262, 5264, 5266, 5268, 5270, 5273, 5276, + 5279, 5282, 5285, 5288, 5291, 5294, 5297, 5300, 5303, 5306, 5309, 5312, + 5318, 5323, 0, 5326, 5328, 5330, 5332, 5334, 5336, 5338, 5340, 5342, + 5344, 5346, 5348, 5350, 5352, 5354, 5356, 5358, 5360, 5362, 5364, 5366, + 5368, 5370, 5372, 5374, 5376, 5378, 5380, 5382, 5384, 5386, 5388, 5390, + 5392, 5394, 5396, 5398, 5400, 5402, 5404, 5406, 5408, 5410, 5412, 5414, + 5416, 5418, 5420, 5422, 5424, 5427, 5430, 5433, 5436, 5439, 5442, 5445, + 5448, 5451, 5454, 5457, 5460, 5463, 5466, 5469, 5472, 5475, 5478, 5481, + 5484, 5487, 5490, 5493, 5496, 5500, 5504, 5508, 5511, 5515, 5518, 5522, + 5524, 5526, 5528, 5530, 5532, 5534, 5536, 5538, 5540, 5542, 5544, 5546, + 5548, 5550, 5552, 5554, 5556, 5558, 5560, 5562, 5564, 5566, 5568, 5570, + 5572, 5574, 5576, 5578, 5580, 5582, 5584, 5586, 5588, 5590, 5592, 5594, + 5596, 5598, 5600, 5602, 5604, 5606, 5608, 5610, 5612, 5614, 5616, 5619, + 5624, 5629, 5634, 5638, 5643, 5647, 5651, 5657, 5662, 5666, 5670, 5674, + 5679, 5684, 5688, 5692, 5695, 5699, 5704, 5709, 5712, 5718, 5725, 5731, + 5735, 5741, 5747, 5752, 5756, 5760, 5764, 5769, 5775, 5780, 5784, 5788, + 5792, 5795, 5798, 5801, 5804, 5808, 5812, 5818, 5822, 5827, 5833, 5837, + 5840, 5843, 5849, 5854, 5860, 5864, 5870, 5873, 5877, 5881, 5885, 5889, + 5893, 5898, 5902, 5905, 5909, 5913, 5917, 5922, 5926, 5930, 5934, 5940, + 5945, 5948, 5954, 5957, 5962, 5967, 5971, 5975, 5979, 5984, 5987, 5991, + 5996, 5999, 6005, 6009, 6012, 6015, 6018, 6021, 6024, 6027, 6030, 6033, + 6036, 6039, 6043, 6047, 6051, 6055, 6059, 6063, 6067, 6071, 6075, 6079, + 6083, 6087, 6091, 6095, 6099, 6103, 6106, 6109, 6113, 6116, 6119, 6122, + 6126, 6130, 6133, 6136, 6139, 6142, 6145, 6150, 6153, 6156, 6159, 6162, + 6165, 6168, 6171, 6174, 6178, 6183, 6186, 6189, 6192, 6195, 6198, 6201, + 6204, 6208, 6212, 6216, 6220, 6223, 6226, 6229, 6232, 6235, 6238, 6241, + 6244, 6247, 6250, 6254, 6258, 6261, 6265, 6269, 6273, 6276, 6280, 6284, + 6289, 6292, 6296, 6300, 6304, 6308, 6314, 6321, 6324, 6327, 6330, 6333, + 6336, 6339, 6342, 6345, 6348, 6351, 6354, 6357, 6360, 6363, 6366, 6369, + 6372, 6375, 6380, 6383, 6386, 6389, 6394, 6398, 6401, 6404, 6407, 6410, + 6413, 6416, 6419, 6422, 6425, 6428, 6432, 6435, 6438, 6442, 6446, 6449, + 6454, 6458, 6461, 6464, 6467, 6470, 6474, 6478, 6481, 6484, 6487, 6490, + 6493, 6496, 6499, 6502, 6505, 6509, 6513, 6517, 6521, 6525, 6529, 6533, + 6537, 6541, 6545, 6549, 6553, 6557, 6561, 6565, 6569, 6573, 6577, 6581, + 6585, 6589, 6593, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6597, 6599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 6601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6603, 6605, + 6607, 0, 0, 0, 6609, 6611, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6613, 6615, 6617, 6619, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6623, 6625, 6627, 6629, 6631, 6633, 6635, 6637, 6637, 6639, + 6641, 6643, 6645, 6647, 6649, 6651, 6653, 6655, 6657, 6659, 6661, 6663, + 6665, 6667, 6669, 6671, 6673, 6675, 6677, 6679, 6681, 6683, 6685, 6687, + 6689, 6691, 6693, 6695, 6697, 6699, 6701, 6703, 6705, 6707, 6709, 6711, + 6713, 6715, 6717, 6719, 6721, 6723, 6725, 6727, 6729, 6731, 6733, 6735, + 6737, 6739, 6741, 6743, 6745, 6747, 6749, 6751, 6753, 6755, 6757, 6759, + 6761, 6763, 6765, 6767, 6769, 6771, 6773, 6775, 6777, 6779, 6781, 6783, + 6785, 6787, 6789, 6791, 6793, 6795, 6797, 6799, 6801, 6803, 6661, 6805, + 6807, 6809, 6811, 6813, 6815, 6817, 6819, 6821, 6823, 6825, 6827, 6829, + 6831, 6833, 6835, 6837, 6839, 6841, 6843, 6845, 6847, 6849, 6851, 6853, + 6855, 6857, 6859, 6861, 6863, 6865, 6867, 6869, 6871, 6873, 6875, 6877, + 6879, 6881, 6883, 6885, 6887, 6889, 6891, 6893, 6895, 6897, 6899, 6901, + 6903, 6905, 6907, 6909, 6911, 6913, 6915, 6917, 6919, 6921, 6923, 6925, + 6927, 6929, 6931, 6933, 6935, 6937, 6939, 6841, 6941, 6943, 6945, 6947, + 6949, 6951, 6953, 6955, 6809, 6957, 6959, 6961, 6963, 6965, 6967, 6969, + 6971, 6973, 6975, 6977, 6979, 6981, 6983, 6985, 6987, 6989, 6991, 6993, + 6995, 6661, 6997, 6999, 7001, 7003, 7005, 7007, 7009, 7011, 7013, 7015, + 7017, 7019, 7021, 7023, 7025, 7027, 7029, 7031, 7033, 7035, 7037, 7039, + 7041, 7043, 7045, 7047, 7049, 6813, 7051, 7053, 7055, 7057, 7059, 7061, + 7063, 7065, 7067, 7069, 7071, 7073, 7075, 7077, 7079, 7081, 7083, 7085, + 7087, 7089, 7091, 7093, 7095, 7097, 7099, 7101, 7103, 7105, 7107, 7109, + 7111, 7113, 7115, 7117, 7119, 7121, 7123, 7125, 7127, 7129, 7131, 7133, + 7135, 7137, 7139, 7141, 7143, 7145, 7147, 7149, 0, 0, 7151, 0, 7153, 0, + 0, 7155, 7157, 7159, 7161, 7163, 7165, 7167, 7169, 7171, 7173, 0, 7175, + 0, 7177, 0, 0, 7179, 7181, 0, 0, 0, 7183, 7185, 7187, 7189, 7191, 7193, + 7195, 7197, 7199, 7201, 7203, 7205, 7207, 7209, 7211, 7213, 7215, 7217, + 7219, 7221, 7223, 7225, 7227, 7229, 7231, 7233, 7235, 7237, 7239, 7241, + 7243, 7245, 7247, 7249, 7251, 7253, 7255, 7257, 7259, 7261, 7263, 7265, + 7267, 7269, 7271, 6919, 7273, 7275, 7277, 7279, 7281, 7283, 7283, 7285, + 7287, 7289, 7291, 7293, 7295, 7297, 7299, 7179, 7301, 7303, 7305, 7307, + 7309, 7311, 0, 0, 7313, 7315, 7317, 7319, 7321, 7323, 7325, 7327, 7207, + 7329, 7331, 7333, 7151, 7335, 7337, 7339, 7341, 7343, 7345, 7347, 7349, + 7351, 7353, 7355, 7357, 7225, 7359, 7227, 7361, 7363, 7365, 7367, 7369, + 7153, 6703, 7371, 7373, 7375, 6843, 7017, 7377, 7379, 7241, 7381, 7243, + 7383, 7385, 7387, 7157, 7389, 7391, 7393, 7395, 7397, 7159, 7399, 7401, + 7403, 7405, 7407, 7409, 7271, 7411, 7413, 6919, 7415, 7279, 7417, 7419, + 7421, 7423, 7425, 7289, 7427, 7177, 7429, 7291, 6805, 7431, 7293, 7433, + 7297, 7435, 7437, 7439, 7441, 7443, 7301, 7169, 7445, 7303, 7447, 7305, + 7449, 6637, 7451, 7453, 7455, 7457, 7459, 7461, 7463, 7465, 7467, 7469, + 7471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7473, 7476, 7479, 7482, + 7486, 7490, 7493, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7496, 7499, 7502, + 7505, 7508, 0, 0, 0, 0, 0, 7511, 0, 7514, 7517, 7519, 7521, 7523, 7525, + 7527, 7529, 7531, 7533, 7535, 7537, 7540, 7543, 7546, 7549, 7552, 7555, + 7558, 7561, 7564, 7567, 7570, 7573, 0, 7576, 7579, 7582, 7585, 7588, 0, + 7591, 0, 7594, 7597, 0, 7600, 7603, 0, 7606, 7609, 7612, 7615, 7618, + 7621, 7624, 7627, 7630, 7633, 7636, 7638, 7640, 7642, 7644, 7646, 7648, + 7650, 7652, 7654, 7656, 7658, 7660, 7662, 7664, 7666, 7668, 7670, 7672, + 7674, 7676, 7678, 7680, 7682, 7684, 7686, 7688, 7690, 7692, 7694, 7696, + 7698, 7700, 7702, 7704, 7706, 7708, 7710, 7712, 7714, 7716, 7718, 7720, + 7722, 7724, 7726, 7728, 7730, 7732, 7734, 7736, 7738, 7740, 7742, 7744, + 7746, 7748, 7750, 7752, 7754, 7756, 7758, 7760, 7762, 7764, 7766, 7768, + 7770, 7772, 7774, 7776, 7778, 7780, 7782, 7784, 7786, 7788, 7790, 7792, + 7794, 7796, 7798, 7800, 7802, 7804, 7806, 7808, 7810, 7812, 7814, 7816, + 7818, 7820, 7822, 7824, 7826, 7828, 7830, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7832, 7834, 7836, 7838, 7840, 7842, 7844, 7846, 7848, 7850, 7852, 7854, + 7856, 7858, 7860, 7862, 7864, 7866, 7868, 7870, 7872, 7874, 7876, 7878, + 7881, 7884, 7887, 7890, 7893, 7896, 7899, 7902, 7905, 7908, 7911, 7914, + 7917, 7920, 7923, 7926, 7929, 7932, 7934, 7936, 7938, 7940, 7943, 7946, + 7923, 7949, 7952, 7955, 7958, 7961, 7964, 7967, 7970, 7973, 7976, 7979, + 7982, 7985, 7988, 7991, 7994, 7997, 8000, 8003, 8006, 8009, 8012, 8015, + 8018, 8021, 8024, 8027, 8030, 8033, 8036, 8039, 8042, 8045, 8048, 8051, + 8054, 8057, 8060, 8063, 8066, 8069, 8072, 8075, 8078, 8081, 8084, 8087, + 8090, 8093, 8096, 8099, 8102, 8105, 8108, 8111, 8114, 8117, 8120, 8123, + 8126, 8129, 8132, 8135, 8138, 8141, 8144, 8147, 8150, 8153, 8156, 8159, + 8162, 8165, 8168, 8171, 8174, 8177, 8180, 8183, 8186, 8189, 8192, 8195, + 8198, 8201, 8204, 8207, 8210, 8213, 8216, 8219, 8223, 8227, 8231, 8235, + 8239, 8243, 8246, 8249, 8252, 7926, 8255, 8258, 8261, 8264, 8267, 8270, + 8273, 8276, 8279, 8282, 8285, 8288, 8291, 8294, 8297, 8300, 8303, 8306, + 8309, 8312, 8315, 8318, 8321, 8324, 8327, 8330, 8333, 8336, 8339, 8342, + 8345, 8348, 8351, 8354, 8357, 8360, 8363, 8366, 8369, 8372, 8375, 8378, + 8381, 8384, 8387, 8390, 8393, 8396, 8399, 8402, 8405, 8408, 8411, 8414, + 8417, 8420, 8423, 8426, 8429, 8432, 8435, 8438, 8441, 8444, 8447, 8450, + 8453, 8456, 8459, 8462, 8465, 8468, 8471, 8474, 8477, 8480, 8483, 8486, + 8489, 8492, 8495, 8498, 8501, 8504, 8507, 8510, 8513, 8516, 8519, 8522, + 8525, 8528, 8531, 8534, 8537, 8540, 8543, 8546, 8549, 8552, 8555, 8558, + 8561, 8564, 8567, 8570, 8573, 8576, 8579, 8582, 8585, 8588, 8591, 8594, + 8597, 8600, 8603, 8606, 8609, 8612, 8615, 8618, 8621, 8624, 8627, 8630, + 8633, 8636, 8639, 8642, 8645, 8648, 8651, 8654, 8657, 8660, 8663, 8666, + 8670, 8674, 8678, 8681, 8684, 8687, 8690, 8693, 8696, 8699, 8702, 8705, + 8708, 8711, 8714, 8717, 8720, 8723, 8726, 8729, 8732, 8735, 8738, 8741, + 8744, 8747, 8750, 8753, 8756, 8759, 8762, 8765, 8768, 8771, 8774, 8777, + 8780, 8783, 8786, 8789, 8792, 8795, 8798, 8801, 8804, 8807, 8810, 8813, + 8816, 8819, 8822, 8825, 8828, 8831, 8834, 8837, 8840, 8843, 8846, 8849, + 8852, 8855, 8858, 8861, 8864, 8867, 8870, 8873, 8876, 8879, 8882, 8885, + 8888, 8891, 8894, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8897, 8901, 8905, 8909, 8913, 8917, 8921, 8925, 8929, 8933, 8937, 8941, + 8945, 8949, 8953, 8957, 8961, 8965, 8969, 8973, 8977, 8981, 8985, 8989, + 8993, 8997, 9001, 9005, 9009, 9013, 9017, 9021, 9025, 9029, 9033, 9037, + 9041, 9045, 9049, 9053, 9057, 9061, 9065, 9069, 9073, 9077, 9081, 9085, + 9089, 9093, 9097, 9101, 9105, 9109, 9113, 9117, 9121, 9125, 9129, 9133, + 9137, 9141, 9145, 9149, 0, 0, 9153, 9157, 9161, 9165, 9169, 9173, 9177, + 9181, 9185, 9189, 9193, 9197, 9201, 9205, 9209, 9213, 9217, 9221, 9225, + 9229, 9233, 9237, 9241, 9245, 9249, 9253, 9257, 9261, 9265, 9269, 9273, + 9277, 9281, 9285, 9289, 9293, 9297, 9301, 9305, 9309, 9313, 9317, 9321, + 9325, 9329, 9333, 9337, 9341, 9345, 9349, 9353, 9357, 9361, 9365, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9369, 9373, 9377, 9382, 9387, + 9392, 9397, 9402, 9407, 9412, 9416, 9435, 9444, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9449, 9451, 9453, 9455, 9457, 9459, + 9461, 9463, 9465, 9467, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 9469, 9471, 9473, 9475, 9475, 9477, 9479, 9481, 9483, + 9485, 9487, 9489, 9491, 9493, 9495, 9497, 9499, 9501, 9503, 9505, 9507, + 0, 0, 9509, 9511, 9513, 9513, 9513, 9513, 9515, 9515, 9515, 9517, 9519, + 9521, 0, 9523, 9525, 9527, 9529, 9531, 9533, 9535, 9537, 9539, 9541, + 9543, 9545, 9547, 9549, 9551, 9553, 9555, 9557, 9559, 0, 9561, 9563, + 9565, 9567, 0, 0, 0, 0, 9569, 9572, 9575, 0, 9578, 0, 9581, 9584, 9587, + 9590, 9593, 9596, 9599, 9602, 9605, 9608, 9611, 9613, 9615, 9617, 9619, + 9621, 9623, 9625, 9627, 9629, 9631, 9633, 9635, 9637, 9639, 9641, 9643, + 9645, 9647, 9649, 9651, 9653, 9655, 9657, 9659, 9661, 9663, 9665, 9667, + 9669, 9671, 9673, 9675, 9677, 9679, 9681, 9683, 9685, 9687, 9689, 9691, + 9693, 9695, 9697, 9699, 9701, 9703, 9705, 9707, 9709, 9711, 9713, 9715, + 9717, 9719, 9721, 9723, 9725, 9727, 9729, 9731, 9733, 9735, 9737, 9739, + 9741, 9743, 9745, 9747, 9749, 9751, 9753, 9755, 9757, 9759, 9761, 9763, + 9765, 9767, 9769, 9771, 9773, 9775, 9777, 9779, 9781, 9783, 9785, 9787, + 9789, 9791, 9793, 9795, 9797, 9799, 9801, 9803, 9805, 9807, 9809, 9811, + 9813, 9815, 9817, 9819, 9821, 9823, 9825, 9827, 9829, 9831, 9833, 9835, + 9837, 9839, 9841, 9843, 9845, 9848, 9851, 9854, 9857, 9860, 9863, 9866, + 0, 0, 0, 0, 9869, 9871, 9873, 9875, 9877, 9879, 9881, 9883, 9885, 9887, + 9889, 9891, 9893, 9895, 9897, 9899, 9901, 9903, 9905, 9907, 9909, 9911, + 9913, 9915, 9917, 9919, 9921, 9923, 9925, 9927, 9929, 9931, 9933, 9935, + 9937, 9939, 9941, 9943, 9945, 9947, 9949, 9951, 9953, 9955, 9957, 9959, + 9961, 9963, 9965, 9967, 9969, 9971, 9973, 9975, 9977, 9979, 9981, 9983, + 9985, 9987, 9989, 9991, 9993, 9995, 9997, 9999, 10001, 10003, 10005, + 10007, 10009, 10011, 10013, 10015, 10017, 10019, 10021, 10023, 10025, + 10027, 10029, 10031, 10033, 10035, 10037, 10039, 10041, 10043, 10045, + 10047, 10049, 10051, 10053, 10055, 10057, 10059, 10061, 10063, 10065, + 10067, 10069, 10071, 10073, 10075, 10077, 10079, 10081, 10083, 10085, + 10087, 10089, 10091, 10093, 10095, 10097, 10099, 10101, 10103, 10105, + 10107, 10109, 10111, 10113, 10115, 10117, 10119, 10121, 10123, 10125, + 10127, 10129, 10131, 10133, 10135, 10137, 10139, 10141, 10143, 10145, + 10147, 10149, 10151, 10153, 10155, 10157, 10159, 10161, 10163, 10165, + 10167, 10169, 10171, 10173, 10175, 10177, 10179, 10181, 10183, 10185, + 10187, 10189, 10191, 10193, 10195, 10197, 10199, 10201, 10203, 10205, + 10207, 10209, 10211, 10213, 10215, 10217, 10219, 10221, 10223, 10225, + 10227, 10229, 10231, 10233, 10235, 10237, 10239, 10241, 10243, 10245, + 10247, 0, 0, 0, 10249, 10251, 10253, 10255, 10257, 10259, 0, 0, 10261, + 10263, 10265, 10267, 10269, 10271, 0, 0, 10273, 10275, 10277, 10279, + 10281, 10283, 0, 0, 10285, 10287, 10289, 0, 0, 0, 10291, 10293, 10295, + 10297, 10299, 10301, 10303, 0, 10305, 10307, 10309, 10311, 10313, 10315, + 10317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10319, + 10321, 10323, 10325, 10327, 0, 10329, 10331, 10333, 10335, 10337, 10339, + 10341, 10343, 10345, 10347, 10349, 10351, 10353, 10355, 10357, 10359, + 10361, 10363, 10365, 10367, 10369, 10371, 10373, 10375, 10377, 10379, + 10381, 10383, 10385, 10387, 10389, 10391, 10393, 10395, 10397, 10399, + 10401, 10403, 10405, 10407, 10409, 10411, 0, 10413, 10415, 10417, 10419, + 10421, 10423, 10425, 10427, 10429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10431, 0, 10434, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 10437, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10440, 10443, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 10446, 10449, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 10452, 10455, 0, 10458, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10461, 10464, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10467, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10470, 10473, + 10476, 10479, 10482, 10485, 10488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 10491, 10494, 10497, 10500, 10503, 10506, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 10509, 3253, 3192, 3289, 3257, 3259, 10511, 3212, 3218, + 10513, 10515, 3220, 3261, 3224, 10517, 3229, 3231, 3233, 10519, 10521, + 10523, 10525, 10527, 10529, 10531, 3245, 10533, 10535, 10537, 3291, 3255, + 10539, 3210, 3214, 3273, 3293, 10541, 3222, 10543, 10545, 3263, 10547, + 10549, 10551, 10553, 10555, 10557, 10559, 10561, 10563, 10565, 10567, + 10509, 3253, 3192, 3289, 3257, 3259, 10511, 3212, 3218, 10513, 10515, + 3220, 3261, 3224, 10517, 3229, 3231, 3233, 10519, 10521, 10523, 10525, + 10527, 10529, 10531, 3245, 10533, 10535, 10537, 3291, 3255, 10539, 3210, + 0, 3273, 3293, 10541, 3222, 10543, 10545, 3263, 10547, 10549, 10551, + 10553, 10555, 10557, 10559, 10561, 10563, 10565, 10567, 10509, 3253, + 3192, 3289, 3257, 3259, 10511, 3212, 3218, 10513, 10515, 3220, 3261, + 3224, 10517, 3229, 3231, 3233, 10519, 10521, 10523, 10525, 10527, 10529, + 10531, 3245, 10533, 10535, 10537, 3291, 3255, 10539, 3210, 3214, 3273, + 3293, 10541, 3222, 10543, 10545, 3263, 10547, 10549, 10551, 10553, 10555, + 10557, 10559, 10561, 10563, 10565, 10567, 10509, 0, 3192, 3289, 0, 0, + 10511, 0, 0, 10513, 10515, 0, 0, 3224, 10517, 3229, 3231, 0, 10519, + 10521, 10523, 10525, 10527, 10529, 10531, 3245, 10533, 10535, 10537, + 3291, 0, 10539, 0, 3214, 3273, 3293, 10541, 3222, 10543, 10545, 0, 10547, + 10549, 10551, 10553, 10555, 10557, 10559, 10561, 10563, 10565, 10567, + 10509, 3253, 3192, 3289, 3257, 3259, 10511, 3212, 3218, 10513, 10515, + 3220, 3261, 3224, 10517, 3229, 3231, 3233, 10519, 10521, 10523, 10525, + 10527, 10529, 10531, 3245, 10533, 10535, 10537, 3291, 3255, 10539, 3210, + 3214, 3273, 3293, 10541, 3222, 10543, 10545, 3263, 10547, 10549, 10551, + 10553, 10555, 10557, 10559, 10561, 10563, 10565, 10567, 10509, 3253, 0, + 3289, 3257, 3259, 10511, 0, 0, 10513, 10515, 3220, 3261, 3224, 10517, + 3229, 3231, 0, 10519, 10521, 10523, 10525, 10527, 10529, 10531, 0, 10533, + 10535, 10537, 3291, 3255, 10539, 3210, 3214, 3273, 3293, 10541, 3222, + 10543, 10545, 3263, 10547, 10549, 10551, 10553, 10555, 10557, 10559, + 10561, 10563, 10565, 10567, 10509, 3253, 0, 3289, 3257, 3259, 10511, 0, + 3218, 10513, 10515, 3220, 3261, 0, 10517, 0, 0, 0, 10519, 10521, 10523, + 10525, 10527, 10529, 10531, 0, 10533, 10535, 10537, 3291, 3255, 10539, + 3210, 3214, 3273, 3293, 10541, 3222, 10543, 10545, 3263, 10547, 10549, + 10551, 10553, 10555, 10557, 10559, 10561, 10563, 10565, 10567, 10509, + 3253, 3192, 3289, 3257, 3259, 10511, 3212, 3218, 10513, 10515, 3220, + 3261, 3224, 10517, 3229, 3231, 3233, 10519, 10521, 10523, 10525, 10527, + 10529, 10531, 3245, 10533, 10535, 10537, 3291, 3255, 10539, 3210, 3214, + 3273, 3293, 10541, 3222, 10543, 10545, 3263, 10547, 10549, 10551, 10553, + 10555, 10557, 10559, 10561, 10563, 10565, 10567, 10509, 3253, 3192, 3289, + 3257, 3259, 10511, 3212, 3218, 10513, 10515, 3220, 3261, 3224, 10517, + 3229, 3231, 3233, 10519, 10521, 10523, 10525, 10527, 10529, 10531, 3245, + 10533, 10535, 10537, 3291, 3255, 10539, 3210, 3214, 3273, 3293, 10541, + 3222, 10543, 10545, 3263, 10547, 10549, 10551, 10553, 10555, 10557, + 10559, 10561, 10563, 10565, 10567, 10509, 3253, 3192, 3289, 3257, 3259, + 10511, 3212, 3218, 10513, 10515, 3220, 3261, 3224, 10517, 3229, 3231, + 3233, 10519, 10521, 10523, 10525, 10527, 10529, 10531, 3245, 10533, + 10535, 10537, 3291, 3255, 10539, 3210, 3214, 3273, 3293, 10541, 3222, + 10543, 10545, 3263, 10547, 10549, 10551, 10553, 10555, 10557, 10559, + 10561, 10563, 10565, 10567, 10509, 3253, 3192, 3289, 3257, 3259, 10511, + 3212, 3218, 10513, 10515, 3220, 3261, 3224, 10517, 3229, 3231, 3233, + 10519, 10521, 10523, 10525, 10527, 10529, 10531, 3245, 10533, 10535, + 10537, 3291, 3255, 10539, 3210, 3214, 3273, 3293, 10541, 3222, 10543, + 10545, 3263, 10547, 10549, 10551, 10553, 10555, 10557, 10559, 10561, + 10563, 10565, 10567, 10509, 3253, 3192, 3289, 3257, 3259, 10511, 3212, + 3218, 10513, 10515, 3220, 3261, 3224, 10517, 3229, 3231, 3233, 10519, + 10521, 10523, 10525, 10527, 10529, 10531, 3245, 10533, 10535, 10537, + 3291, 3255, 10539, 3210, 3214, 3273, 3293, 10541, 3222, 10543, 10545, + 3263, 10547, 10549, 10551, 10553, 10555, 10557, 10559, 10561, 10563, + 10565, 10567, 10509, 3253, 3192, 3289, 3257, 3259, 10511, 3212, 3218, + 10513, 10515, 3220, 3261, 3224, 10517, 3229, 3231, 3233, 10519, 10521, + 10523, 10525, 10527, 10529, 10531, 3245, 10533, 10535, 10537, 3291, 3255, + 10539, 3210, 3214, 3273, 3293, 10541, 3222, 10543, 10545, 3263, 10547, + 10549, 10551, 10553, 10555, 10557, 10559, 10561, 10563, 10565, 10567, + 10569, 10571, 0, 0, 10573, 10575, 3283, 10577, 10579, 10581, 10583, + 10585, 10587, 10589, 10591, 10593, 10595, 10597, 10599, 3285, 10601, + 10603, 10605, 10607, 10609, 10611, 10613, 10615, 10617, 10619, 10621, + 10623, 3281, 10625, 10627, 10629, 10631, 10633, 10635, 10637, 10639, + 10641, 10643, 10645, 10647, 3279, 10649, 10651, 10653, 10655, 10657, + 10659, 10661, 10663, 10665, 10667, 10669, 10671, 10673, 10675, 10677, + 10679, 10573, 10575, 3283, 10577, 10579, 10581, 10583, 10585, 10587, + 10589, 10591, 10593, 10595, 10597, 10599, 3285, 10601, 10603, 10605, + 10607, 10609, 10611, 10613, 10615, 10617, 10619, 10621, 10623, 3281, + 10625, 10627, 10629, 10631, 10633, 10635, 10637, 10639, 10641, 10643, + 10645, 10647, 3279, 10649, 10651, 10653, 10655, 10657, 10659, 10661, + 10663, 10665, 10667, 10669, 10671, 10673, 10675, 10677, 10679, 10573, + 10575, 3283, 10577, 10579, 10581, 10583, 10585, 10587, 10589, 10591, + 10593, 10595, 10597, 10599, 3285, 10601, 10603, 10605, 10607, 10609, + 10611, 10613, 10615, 10617, 10619, 10621, 10623, 3281, 10625, 10627, + 10629, 10631, 10633, 10635, 10637, 10639, 10641, 10643, 10645, 10647, + 3279, 10649, 10651, 10653, 10655, 10657, 10659, 10661, 10663, 10665, + 10667, 10669, 10671, 10673, 10675, 10677, 10679, 10573, 10575, 3283, + 10577, 10579, 10581, 10583, 10585, 10587, 10589, 10591, 10593, 10595, + 10597, 10599, 3285, 10601, 10603, 10605, 10607, 10609, 10611, 10613, + 10615, 10617, 10619, 10621, 10623, 3281, 10625, 10627, 10629, 10631, + 10633, 10635, 10637, 10639, 10641, 10643, 10645, 10647, 3279, 10649, + 10651, 10653, 10655, 10657, 10659, 10661, 10663, 10665, 10667, 10669, + 10671, 10673, 10675, 10677, 10679, 10573, 10575, 3283, 10577, 10579, + 10581, 10583, 10585, 10587, 10589, 10591, 10593, 10595, 10597, 10599, + 3285, 10601, 10603, 10605, 10607, 10609, 10611, 10613, 10615, 10617, + 10619, 10621, 10623, 3281, 10625, 10627, 10629, 10631, 10633, 10635, + 10637, 10639, 10641, 10643, 10645, 10647, 3279, 10649, 10651, 10653, + 10655, 10657, 10659, 10661, 10663, 10665, 10667, 10669, 10671, 10673, + 10675, 10677, 10679, 10681, 10683, 0, 0, 10685, 10687, 10689, 10691, + 10693, 10695, 10697, 10699, 10701, 10703, 10685, 10687, 10689, 10691, + 10693, 10695, 10697, 10699, 10701, 10703, 10685, 10687, 10689, 10691, + 10693, 10695, 10697, 10699, 10701, 10703, 10685, 10687, 10689, 10691, + 10693, 10695, 10697, 10699, 10701, 10703, 10685, 10687, 10689, 10691, + 10693, 10695, 10697, 10699, 10701, 10703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10705, 10707, 10709, 10711, + 10713, 10715, 10717, 10719, 10721, 10723, 10725, 10727, 10729, 10731, + 10733, 10735, 10737, 10739, 10741, 10743, 10745, 10747, 10749, 10751, + 10753, 10755, 10757, 10759, 10761, 10763, 10765, 10767, 10769, 10771, + 10773, 10775, 10777, 10779, 10781, 10783, 10785, 10787, 10789, 10791, + 10793, 10795, 10797, 10799, 10801, 10803, 10805, 10807, 10809, 10811, + 10813, 10815, 10817, 10819, 10821, 10823, 10825, 10827, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10829, 10831, 10833, 10835, 0, 10837, + 10839, 10841, 10843, 10845, 10847, 10849, 10851, 10853, 10855, 10857, + 10859, 10861, 10863, 10865, 10867, 10869, 10871, 10873, 10875, 10877, + 10879, 10881, 10883, 10885, 10887, 10889, 0, 10831, 10833, 0, 10891, 0, + 0, 10841, 0, 10845, 10847, 10849, 10851, 10853, 10855, 10857, 10859, + 10861, 10863, 0, 10867, 10869, 10871, 10873, 0, 10877, 0, 10881, 0, 0, 0, + 0, 0, 0, 10833, 0, 0, 0, 0, 10841, 0, 10845, 0, 10849, 0, 10853, 10855, + 10857, 0, 10861, 10863, 0, 10867, 0, 0, 10873, 0, 10877, 0, 10881, 0, + 10885, 0, 10889, 0, 10831, 10833, 0, 10891, 0, 0, 10841, 10843, 10845, + 10847, 0, 10851, 10853, 10855, 10857, 10859, 10861, 10863, 0, 10867, + 10869, 10871, 10873, 0, 10877, 10879, 10881, 10883, 0, 10887, 0, 10829, + 10831, 10833, 10835, 10891, 10837, 10839, 10841, 10843, 10845, 0, 10849, + 10851, 10853, 10855, 10857, 10859, 10861, 10863, 10865, 10867, 10869, + 10871, 10873, 10875, 10877, 10879, 10881, 0, 0, 0, 0, 0, 10831, 10833, + 10835, 0, 10837, 10839, 10841, 10843, 10845, 0, 10849, 10851, 10853, + 10855, 10857, 10859, 10861, 10863, 10865, 10867, 10869, 10871, 10873, + 10875, 10877, 10879, 10881, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 10893, 10896, 10899, 10902, 10905, 10908, 10911, 10914, + 10917, 10920, 10923, 0, 0, 0, 0, 0, 10926, 10930, 10934, 10938, 10942, + 10946, 10950, 10954, 10958, 10962, 10966, 10970, 10974, 10978, 10982, + 10986, 10990, 10994, 10998, 11002, 11006, 11010, 11014, 11018, 11022, + 11026, 11030, 3926, 3956, 11034, 11037, 0, 11040, 11042, 11044, 11046, + 11048, 11050, 11052, 11054, 11056, 11058, 11060, 11062, 11064, 11066, + 11068, 11070, 11072, 11074, 11076, 11078, 11080, 11082, 11084, 11086, + 11088, 11090, 11092, 6348, 11095, 11098, 11101, 11105, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11108, 11111, + 11114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11117, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 11120, 11123, 11126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 11128, 11130, 11132, 11134, 11136, 11138, 11140, 11142, 11144, + 11146, 11148, 11150, 11152, 11154, 11156, 11158, 11160, 11162, 11164, + 11166, 11168, 11170, 11172, 11174, 11176, 11178, 11180, 11182, 11184, + 11186, 11188, 11190, 11192, 11194, 11196, 11198, 11200, 11202, 11204, + 11206, 11208, 11210, 11212, 11214, 0, 0, 0, 0, 11216, 11220, 11224, + 11228, 11232, 11236, 11240, 11244, 11248, 0, 0, 0, 0, 0, 0, 0, 11252, + 11254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10685, 10687, 10689, + 10691, 10693, 10695, 10697, 10699, 10701, 10703, 0, 0, 0, 0, 0, 0, 11256, + 11258, 11260, 11262, 11264, 7195, 11266, 11268, 11270, 11272, 7197, + 11274, 11276, 11278, 7199, 11280, 11282, 11284, 11286, 11288, 11290, + 11292, 11294, 11296, 11298, 11300, 11302, 7315, 11304, 11306, 11308, + 11310, 11312, 11314, 11316, 11318, 11320, 7325, 7201, 7203, 7327, 11322, + 11324, 6817, 11326, 7205, 11328, 11330, 11332, 11334, 11334, 11334, + 11336, 11338, 11340, 11342, 11344, 11346, 11348, 11350, 11352, 11354, + 11356, 11358, 11360, 11362, 11364, 11366, 11368, 11370, 11370, 7331, + 11372, 11374, 11376, 11378, 7209, 11380, 11382, 11384, 7123, 11386, + 11388, 11390, 11392, 11394, 11396, 11398, 11400, 11402, 11404, 11406, + 11408, 11410, 11412, 11414, 11416, 11418, 11420, 11422, 11424, 11426, + 11428, 11430, 11432, 11434, 11436, 11436, 11438, 11440, 11442, 6809, + 11444, 11446, 11448, 11450, 11452, 11454, 11456, 11458, 7219, 11460, + 11462, 11464, 11466, 11468, 11470, 11472, 11474, 11476, 11478, 11480, + 11482, 11484, 11486, 11488, 11490, 11492, 11494, 11496, 11498, 11500, + 6701, 11502, 11504, 11506, 11506, 11508, 11510, 11510, 11512, 11514, + 11516, 11518, 11520, 11522, 11524, 11526, 11528, 11530, 11532, 11534, + 11536, 7221, 11538, 11540, 11542, 11544, 7355, 11544, 11546, 7225, 11548, + 11550, 11552, 11554, 7227, 6647, 11556, 11558, 11560, 11562, 11564, + 11566, 11568, 11570, 11572, 11574, 11576, 11578, 11580, 11582, 11584, + 11586, 11588, 11590, 11592, 11594, 11596, 11598, 7229, 11600, 11602, + 11604, 11606, 11608, 11610, 7233, 11612, 11614, 11616, 11618, 11620, + 11622, 11624, 11626, 6703, 7371, 11628, 11630, 11632, 11634, 11636, + 11638, 11640, 11642, 7235, 11644, 11646, 11648, 11650, 7457, 11652, + 11654, 11656, 11658, 11660, 11662, 11664, 11666, 11668, 11670, 11672, + 11674, 11676, 6843, 11678, 11680, 11682, 11684, 11686, 11688, 11690, + 11692, 11694, 11696, 11698, 7237, 7017, 11700, 11702, 11704, 11706, + 11708, 11710, 11712, 11714, 7379, 11716, 11718, 11720, 11722, 11724, + 11726, 11728, 11730, 7381, 11732, 11734, 11736, 11738, 11740, 11742, + 11744, 11746, 11748, 11750, 11752, 11754, 7385, 11756, 11758, 11760, + 11762, 11764, 11766, 11768, 11770, 11772, 11774, 11776, 11776, 11778, + 11780, 7389, 11782, 11784, 11786, 11788, 11790, 11792, 11794, 6815, + 11796, 11798, 11800, 11802, 11804, 11806, 11808, 7401, 11810, 11812, + 11814, 11816, 11818, 11820, 11820, 7403, 7461, 11822, 11824, 11826, + 11828, 11830, 6739, 7407, 11832, 11834, 7259, 11836, 11838, 7167, 11840, + 11842, 7267, 11844, 11846, 11848, 11850, 11850, 11852, 11854, 11856, + 11858, 11860, 11862, 11864, 11866, 11868, 11870, 11872, 11874, 11876, + 11878, 11880, 11882, 11884, 11886, 11888, 11890, 11892, 11894, 11896, + 11898, 11900, 11902, 11904, 7279, 11906, 11908, 11910, 11912, 11914, + 11916, 11918, 11920, 11922, 11924, 11926, 11928, 11930, 11932, 11934, + 11936, 11508, 11938, 11940, 11942, 11944, 11946, 11948, 11950, 11952, + 11954, 11956, 11958, 11960, 6851, 11962, 11964, 11966, 11968, 11970, + 11972, 7285, 11974, 11976, 11978, 11980, 11982, 11984, 11986, 11988, + 11990, 11992, 11994, 11996, 11998, 12000, 12002, 12004, 12006, 12008, + 12010, 12012, 6729, 12014, 12016, 12018, 12020, 12022, 12024, 7421, + 12026, 12028, 12030, 12032, 12034, 12036, 12038, 12040, 12042, 12044, + 12046, 12048, 12050, 12052, 12054, 12056, 12058, 12060, 12062, 12064, + 7431, 7433, 12066, 12068, 12070, 12072, 12074, 12076, 12078, 12080, + 12082, 12084, 12086, 12088, 12090, 7435, 12092, 12094, 12096, 12098, + 12100, 12102, 12104, 12106, 12108, 12110, 12112, 12114, 12116, 12118, + 12120, 12122, 12124, 12126, 12128, 12130, 12132, 12134, 12136, 12138, + 12140, 12142, 12144, 12146, 12148, 12150, 7447, 7447, 12152, 12154, + 12156, 12158, 12160, 12162, 12164, 12166, 12168, 12170, 7449, 12172, + 12174, 12176, 12178, 12180, 12182, 12184, 12186, 12188, 12190, 12192, + 12194, 12196, 12198, 12200, 12202, 12204, 12206, 12208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 10586, 10589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10592, 10595, 0, - 10598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 10601, 10604, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10607, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10610, 10613, 10616, 10619, 10622, - 10625, 10628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10631, 10634, - 10637, 10640, 10643, 10646, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 10649, 10651, 10653, 10655, 10657, 10659, 10661, 10663, 10665, 10667, - 10669, 10671, 10673, 10675, 10677, 10679, 10681, 10683, 10685, 10687, - 10689, 10691, 10693, 10695, 10697, 10699, 10701, 10703, 10705, 10707, - 10709, 10711, 10713, 10715, 10717, 10719, 10721, 10723, 10725, 10727, - 10729, 10731, 10733, 10735, 10737, 10739, 10741, 10743, 10745, 10747, - 10749, 10751, 10753, 10755, 10757, 10759, 10761, 10763, 10765, 10767, - 10769, 10771, 10773, 10775, 10777, 10779, 10781, 10783, 10785, 10787, - 10789, 10791, 10793, 10795, 10797, 10799, 10801, 10803, 10805, 10807, - 10809, 10811, 10813, 10815, 10817, 0, 10819, 10821, 10823, 10825, 10827, - 10829, 10831, 10833, 10835, 10837, 10839, 10841, 10843, 10845, 10847, - 10849, 10851, 10853, 10855, 10857, 10859, 10861, 10863, 10865, 10867, - 10869, 10871, 10873, 10875, 10877, 10879, 10881, 10883, 10885, 10887, - 10889, 10891, 10893, 10895, 10897, 10899, 10901, 10903, 10905, 10907, - 10909, 10911, 10913, 10915, 10917, 10919, 10921, 10923, 10925, 10927, - 10929, 10931, 10933, 10935, 10937, 10939, 10941, 10943, 10945, 10947, - 10949, 10951, 10953, 10955, 10957, 10959, 0, 10961, 10963, 0, 0, 10965, - 0, 0, 10967, 10969, 0, 0, 10971, 10973, 10975, 10977, 0, 10979, 10981, - 10983, 10985, 10987, 10989, 10991, 10993, 10995, 10997, 10999, 11001, 0, - 11003, 0, 11005, 11007, 11009, 11011, 11013, 11015, 11017, 0, 11019, - 11021, 11023, 11025, 11027, 11029, 11031, 11033, 11035, 11037, 11039, - 11041, 11043, 11045, 11047, 11049, 11051, 11053, 11055, 11057, 11059, - 11061, 11063, 11065, 11067, 11069, 11071, 11073, 11075, 11077, 11079, - 11081, 11083, 11085, 11087, 11089, 11091, 11093, 11095, 11097, 11099, - 11101, 11103, 11105, 11107, 11109, 11111, 11113, 11115, 11117, 11119, - 11121, 11123, 11125, 11127, 11129, 11131, 11133, 11135, 11137, 11139, - 11141, 11143, 11145, 11147, 0, 11149, 11151, 11153, 11155, 0, 0, 11157, - 11159, 11161, 11163, 11165, 11167, 11169, 11171, 0, 11173, 11175, 11177, - 11179, 11181, 11183, 11185, 0, 11187, 11189, 11191, 11193, 11195, 11197, - 11199, 11201, 11203, 11205, 11207, 11209, 11211, 11213, 11215, 11217, - 11219, 11221, 11223, 11225, 11227, 11229, 11231, 11233, 11235, 11237, - 11239, 11241, 0, 11243, 11245, 11247, 11249, 0, 11251, 11253, 11255, - 11257, 11259, 0, 11261, 0, 0, 0, 11263, 11265, 11267, 11269, 11271, - 11273, 11275, 0, 11277, 11279, 11281, 11283, 11285, 11287, 11289, 11291, - 11293, 11295, 11297, 11299, 11301, 11303, 11305, 11307, 11309, 11311, - 11313, 11315, 11317, 11319, 11321, 11323, 11325, 11327, 11329, 11331, - 11333, 11335, 11337, 11339, 11341, 11343, 11345, 11347, 11349, 11351, - 11353, 11355, 11357, 11359, 11361, 11363, 11365, 11367, 11369, 11371, - 11373, 11375, 11377, 11379, 11381, 11383, 11385, 11387, 11389, 11391, - 11393, 11395, 11397, 11399, 11401, 11403, 11405, 11407, 11409, 11411, - 11413, 11415, 11417, 11419, 11421, 11423, 11425, 11427, 11429, 11431, - 11433, 11435, 11437, 11439, 11441, 11443, 11445, 11447, 11449, 11451, - 11453, 11455, 11457, 11459, 11461, 11463, 11465, 11467, 11469, 11471, - 11473, 11475, 11477, 11479, 11481, 11483, 11485, 11487, 11489, 11491, - 11493, 11495, 11497, 11499, 11501, 11503, 11505, 11507, 11509, 11511, - 11513, 11515, 11517, 11519, 11521, 11523, 11525, 11527, 11529, 11531, - 11533, 11535, 11537, 11539, 11541, 11543, 11545, 11547, 11549, 11551, - 11553, 11555, 11557, 11559, 11561, 11563, 11565, 11567, 11569, 11571, - 11573, 11575, 11577, 11579, 11581, 11583, 11585, 11587, 11589, 11591, - 11593, 11595, 11597, 11599, 11601, 11603, 11605, 11607, 11609, 11611, - 11613, 11615, 11617, 11619, 11621, 11623, 11625, 11627, 11629, 11631, - 11633, 11635, 11637, 11639, 11641, 11643, 11645, 11647, 11649, 11651, - 11653, 11655, 11657, 11659, 11661, 11663, 11665, 11667, 11669, 11671, - 11673, 11675, 11677, 11679, 11681, 11683, 11685, 11687, 11689, 11691, - 11693, 11695, 11697, 11699, 11701, 11703, 11705, 11707, 11709, 11711, - 11713, 11715, 11717, 11719, 11721, 11723, 11725, 11727, 11729, 11731, - 11733, 11735, 11737, 11739, 11741, 11743, 11745, 11747, 11749, 11751, - 11753, 11755, 11757, 11759, 11761, 11763, 11765, 11767, 11769, 11771, - 11773, 11775, 11777, 11779, 11781, 11783, 11785, 11787, 11789, 11791, - 11793, 11795, 11797, 11799, 11801, 11803, 11805, 11807, 11809, 11811, - 11813, 11815, 11817, 11819, 11821, 11823, 11825, 11827, 11829, 11831, - 11833, 11835, 11837, 11839, 11841, 11843, 11845, 11847, 11849, 11851, - 11853, 11855, 11857, 11859, 11861, 11863, 11865, 11867, 11869, 11871, - 11873, 11875, 11877, 11879, 11881, 11883, 11885, 11887, 11889, 11891, - 11893, 11895, 11897, 11899, 11901, 11903, 11905, 11907, 11909, 11911, - 11913, 11915, 11917, 11919, 11921, 11923, 11925, 11927, 11929, 11931, - 11933, 11935, 11937, 11939, 11941, 11943, 11945, 11947, 11949, 11951, - 11953, 11955, 0, 0, 11957, 11959, 11961, 11963, 11965, 11967, 11969, - 11971, 11973, 11975, 11977, 11979, 11981, 11983, 11985, 11987, 11989, - 11991, 11993, 11995, 11997, 11999, 12001, 12003, 12005, 12007, 12009, - 12011, 12013, 12015, 12017, 12019, 12021, 12023, 12025, 12027, 12029, - 12031, 12033, 12035, 12037, 12039, 12041, 12043, 12045, 12047, 12049, - 12051, 12053, 12055, 12057, 12059, 12061, 12063, 12065, 12067, 12069, - 12071, 12073, 12075, 12077, 12079, 12081, 12083, 12085, 12087, 12089, - 12091, 12093, 12095, 12097, 12099, 12101, 12103, 12105, 12107, 12109, - 12111, 12113, 12115, 12117, 12119, 12121, 12123, 12125, 12127, 12129, - 12131, 12133, 12135, 12137, 12139, 12141, 12143, 12145, 12147, 12149, - 12151, 12153, 12155, 12157, 12159, 12161, 12163, 12165, 12167, 12169, - 12171, 12173, 12175, 12177, 12179, 12181, 12183, 12185, 12187, 12189, - 12191, 12193, 12195, 12197, 12199, 12201, 12203, 12205, 12207, 12209, - 12211, 12213, 12215, 12217, 12219, 12221, 12223, 12225, 12227, 12229, - 12231, 12233, 12235, 12237, 12239, 12241, 12243, 12245, 12247, 12249, - 12251, 12253, 12255, 12257, 12259, 12261, 12263, 12265, 12267, 12269, - 12271, 12273, 12275, 12277, 12279, 12281, 12283, 12285, 12287, 12289, - 12291, 12293, 12295, 12297, 12299, 12301, 12303, 12305, 12307, 12309, - 12311, 12313, 12315, 12317, 12319, 12321, 12323, 12325, 12327, 12329, - 12331, 12333, 12335, 12337, 12339, 12341, 12343, 12345, 12347, 12349, - 12351, 12353, 12355, 12357, 12359, 12361, 12363, 12365, 12367, 12369, - 12371, 12373, 12375, 12377, 12379, 12381, 12383, 12385, 12387, 12389, - 12391, 12393, 12395, 12397, 12399, 12401, 12403, 12405, 12407, 12409, - 12411, 12413, 12415, 12417, 12419, 12421, 12423, 12425, 12427, 12429, - 12431, 12433, 12435, 12437, 12439, 12441, 12443, 12445, 12447, 12449, - 12451, 12453, 12455, 12457, 12459, 12461, 12463, 12465, 12467, 12469, - 12471, 12473, 12475, 12477, 12479, 12481, 12483, 12485, 12487, 12489, - 12491, 12493, 12495, 12497, 12499, 12501, 12503, 12505, 12507, 12509, - 12511, 12513, 12515, 12517, 12519, 12521, 12523, 12525, 12527, 12529, - 12531, 12533, 12535, 12537, 12539, 0, 0, 12541, 12543, 12545, 12547, - 12549, 12551, 12553, 12555, 12557, 12559, 12561, 12563, 12565, 12567, - 12569, 12571, 12573, 12575, 12577, 12579, 12581, 12583, 12585, 12587, - 12589, 12591, 12593, 12595, 12597, 12599, 12601, 12603, 12605, 12607, - 12609, 12611, 12613, 12615, 12617, 12619, 12621, 12623, 12625, 12627, - 12629, 12631, 12633, 12635, 12637, 12639, 12641, 12643, 12645, 12647, 0, - 12649, 12651, 12653, 12655, 12657, 12659, 12661, 12663, 12665, 12667, - 12669, 12671, 12673, 12675, 12677, 12679, 12681, 12683, 12685, 12687, - 12689, 12691, 12693, 12695, 12697, 12699, 12701, 0, 12703, 12705, 0, - 12707, 0, 0, 12709, 0, 12711, 12713, 12715, 12717, 12719, 12721, 12723, - 12725, 12727, 12729, 0, 12731, 12733, 12735, 12737, 0, 12739, 0, 12741, - 0, 0, 0, 0, 0, 0, 12743, 0, 0, 0, 0, 12745, 0, 12747, 0, 12749, 0, 12751, - 12753, 12755, 0, 12757, 12759, 0, 12761, 0, 0, 12763, 0, 12765, 0, 12767, - 0, 12769, 0, 12771, 0, 12773, 12775, 0, 12777, 0, 0, 12779, 12781, 12783, - 12785, 0, 12787, 12789, 12791, 12793, 12795, 12797, 12799, 0, 12801, - 12803, 12805, 12807, 0, 12809, 12811, 12813, 12815, 0, 12817, 0, 12819, - 12821, 12823, 12825, 12827, 12829, 12831, 12833, 12835, 12837, 0, 12839, - 12841, 12843, 12845, 12847, 12849, 12851, 12853, 12855, 12857, 12859, - 12861, 12863, 12865, 12867, 12869, 12871, 0, 0, 0, 0, 0, 12873, 12875, - 12877, 0, 12879, 12881, 12883, 12885, 12887, 0, 12889, 12891, 12893, - 12895, 12897, 12899, 12901, 12903, 12905, 12907, 12909, 12911, 12913, - 12915, 12917, 12919, 12921, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 12923, 12926, 12929, 12932, 12935, 12938, 12941, 12944, - 12947, 12950, 12953, 0, 0, 0, 0, 0, 12956, 12960, 12964, 12968, 12972, - 12976, 12980, 12984, 12988, 12992, 12996, 13000, 13004, 13008, 13012, - 13016, 13020, 13024, 13028, 13032, 13036, 13040, 13044, 13048, 13052, - 13056, 13060, 13064, 13066, 13068, 13071, 0, 13074, 13076, 13078, 13080, - 13082, 13084, 13086, 13088, 13090, 13092, 13094, 13096, 13098, 13100, - 13102, 13104, 13106, 13108, 13110, 13112, 13114, 13116, 13118, 13120, - 13122, 13124, 13126, 13129, 13132, 13135, 13138, 13142, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13145, 13148, - 13151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13154, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 13157, 13160, 13163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 13165, 13167, 13169, 13171, 13173, 13175, 13177, 13179, 13181, - 13183, 13185, 13187, 13189, 13191, 13193, 13195, 13197, 13199, 13201, - 13203, 13205, 13207, 13209, 13211, 13213, 13215, 13217, 13219, 13221, - 13223, 13225, 13227, 13229, 13231, 13233, 13235, 13237, 13239, 13241, - 13243, 13245, 13247, 13249, 13251, 0, 0, 0, 0, 13253, 13257, 13261, - 13265, 13269, 13273, 13277, 13281, 13285, 0, 0, 0, 0, 0, 0, 0, 13289, - 13291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13293, 13295, 13297, - 13299, 13301, 13303, 13305, 13307, 13309, 13311, 0, 0, 0, 0, 0, 0, 13313, - 13315, 13317, 13319, 13321, 13323, 13325, 13327, 13329, 13331, 13333, - 13335, 13337, 13339, 13341, 13343, 13345, 13347, 13349, 13351, 13353, - 13355, 13357, 13359, 13361, 13363, 13365, 13367, 13369, 13371, 13373, - 13375, 13377, 13379, 13381, 13383, 13385, 13387, 13389, 13391, 13393, - 13395, 13397, 13399, 13401, 13403, 13405, 13407, 13409, 13411, 13413, - 13415, 13417, 13419, 13421, 13423, 13425, 13427, 13429, 13431, 13433, - 13435, 13437, 13439, 13441, 13443, 13445, 13447, 13449, 13451, 13453, - 13455, 13457, 13459, 13461, 13463, 13465, 13467, 13469, 13471, 13473, - 13475, 13477, 13479, 13481, 13483, 13485, 13487, 13489, 13491, 13493, - 13495, 13497, 13499, 13501, 13503, 13505, 13507, 13509, 13511, 13513, - 13515, 13517, 13519, 13521, 13523, 13525, 13527, 13529, 13531, 13533, - 13535, 13537, 13539, 13541, 13543, 13545, 13547, 13549, 13551, 13553, - 13555, 13557, 13559, 13561, 13563, 13565, 13567, 13569, 13571, 13573, - 13575, 13577, 13579, 13581, 13583, 13585, 13587, 13589, 13591, 13593, - 13595, 13597, 13599, 13601, 13603, 13605, 13607, 13609, 13611, 13613, - 13615, 13617, 13619, 13621, 13623, 13625, 13627, 13629, 13631, 13633, - 13635, 13637, 13639, 13641, 13643, 13645, 13647, 13649, 13651, 13653, - 13655, 13657, 13659, 13661, 13663, 13665, 13667, 13669, 13671, 13673, - 13675, 13677, 13679, 13681, 13683, 13685, 13687, 13689, 13691, 13693, - 13695, 13697, 13699, 13701, 13703, 13705, 13707, 13709, 13711, 13713, - 13715, 13717, 13719, 13721, 13723, 13725, 13727, 13729, 13731, 13733, - 13735, 13737, 13739, 13741, 13743, 13745, 13747, 13749, 13751, 13753, - 13755, 13757, 13759, 13761, 13763, 13765, 13767, 13769, 13771, 13773, - 13775, 13777, 13779, 13781, 13783, 13785, 13787, 13789, 13791, 13793, - 13795, 13797, 13799, 13801, 13803, 13805, 13807, 13809, 13811, 13813, - 13815, 13817, 13819, 13821, 13823, 13825, 13827, 13829, 13831, 13833, - 13835, 13837, 13839, 13841, 13843, 13845, 13847, 13849, 13851, 13853, - 13855, 13857, 13859, 13861, 13863, 13865, 13867, 13869, 13871, 13873, - 13875, 13877, 13879, 13881, 13883, 13885, 13887, 13889, 13891, 13893, - 13895, 13897, 13899, 13901, 13903, 13905, 13907, 13909, 13911, 13913, - 13915, 13917, 13919, 13921, 13923, 13925, 13927, 13929, 13931, 13933, - 13935, 13937, 13939, 13941, 13943, 13945, 13947, 13949, 13951, 13953, - 13955, 13957, 13959, 13961, 13963, 13965, 13967, 13969, 13971, 13973, - 13975, 13977, 13979, 13981, 13983, 13985, 13987, 13989, 13991, 13993, - 13995, 13997, 13999, 14001, 14003, 14005, 14007, 14009, 14011, 14013, - 14015, 14017, 14019, 14021, 14023, 14025, 14027, 14029, 14031, 14033, - 14035, 14037, 14039, 14041, 14043, 14045, 14047, 14049, 14051, 14053, - 14055, 14057, 14059, 14061, 14063, 14065, 14067, 14069, 14071, 14073, - 14075, 14077, 14079, 14081, 14083, 14085, 14087, 14089, 14091, 14093, - 14095, 14097, 14099, 14101, 14103, 14105, 14107, 14109, 14111, 14113, - 14115, 14117, 14119, 14121, 14123, 14125, 14127, 14129, 14131, 14133, - 14135, 14137, 14139, 14141, 14143, 14145, 14147, 14149, 14151, 14153, - 14155, 14157, 14159, 14161, 14163, 14165, 14167, 14169, 14171, 14173, - 14175, 14177, 14179, 14181, 14183, 14185, 14187, 14189, 14191, 14193, - 14195, 14197, 14199, 14201, 14203, 14205, 14207, 14209, 14211, 14213, - 14215, 14217, 14219, 14221, 14223, 14225, 14227, 14229, 14231, 14233, - 14235, 14237, 14239, 14241, 14243, 14245, 14247, 14249, 14251, 14253, - 14255, 14257, 14259, 14261, 14263, 14265, 14267, 14269, 14271, 14273, - 14275, 14277, 14279, 14281, 14283, 14285, 14287, 14289, 14291, 14293, - 14295, 14297, 14299, 14301, 14303, 14305, 14307, 14309, 14311, 14313, - 14315, 14317, 14319, 14321, 14323, 14325, 14327, 14329, 14331, 14333, - 14335, 14337, 14339, 14341, 14343, 14345, 14347, 14349, 14351, 14353, - 14355, 14357, 14359, 14361, 14363, 14365, 14367, 14369, 14371, 14373, - 14375, 14377, 14379, 14381, 14383, 14385, 14387, 14389, 14391, 14393, - 14395, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /* NFC pairs */ @@ -6107,7 +6021,7 @@ static const change_record change_records_3_2_0[] = { { 19, 30, 255, 255, 255, 0 }, { 255, 8, 255, 255, 255, 0 }, { 255, 27, 255, 255, 255, 0 }, - { 255, 255, 255, 255, 5, 0 }, + { 255, 255, 255, 255, 0, 0 }, { 255, 22, 255, 255, 255, 0 }, { 255, 23, 255, 255, 255, 0 }, { 9, 255, 255, 255, 255, 0 }, @@ -6145,56 +6059,57 @@ static const unsigned char changes_3_2_0_index[] = { 2, 122, 123, 124, 125, 126, 127, 2, 128, 129, 130, 131, 132, 133, 134, 52, 52, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 2, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 2, 159, 160, 2, - 161, 162, 163, 164, 2, 165, 166, 167, 168, 169, 170, 2, 2, 171, 172, 173, - 174, 2, 175, 2, 176, 52, 52, 52, 52, 52, 52, 52, 177, 178, 52, 179, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 180, 52, 52, 52, - 52, 52, 52, 52, 52, 181, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 52, 52, 52, 52, 182, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 52, 52, 52, 52, 183, - 184, 185, 186, 2, 2, 2, 2, 187, 188, 189, 190, 52, 52, 52, 52, 52, 52, + 161, 162, 163, 164, 2, 165, 166, 167, 168, 169, 170, 171, 2, 172, 173, + 174, 175, 2, 176, 177, 178, 52, 52, 52, 52, 52, 52, 52, 179, 180, 52, + 181, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 182, 52, + 52, 52, 52, 52, 52, 52, 52, 183, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 52, 52, 52, 52, + 184, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 52, 52, 52, + 52, 185, 186, 187, 188, 2, 2, 2, 2, 189, 190, 191, 192, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 102, 52, 52, 52, 52, 52, 52, 52, 52, 52, 191, 192, 2, + 52, 52, 52, 52, 52, 52, 52, 102, 52, 52, 52, 52, 52, 52, 52, 52, 52, 183, + 193, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 194, 52, + 52, 195, 52, 52, 196, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 197, 198, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 199, 181, 2, 2, 200, 201, + 202, 203, 204, 2, 2, 205, 2, 2, 2, 206, 207, 208, 52, 52, 52, 52, 52, + 209, 2, 2, 2, 2, 2, 2, 2, 2, 210, 2, 211, 212, 213, 2, 2, 214, 2, 2, 2, + 215, 2, 2, 2, 2, 2, 216, 52, 217, 218, 2, 2, 2, 2, 2, 219, 220, 221, 2, + 222, 223, 2, 2, 224, 225, 52, 226, 227, 2, 52, 52, 52, 52, 52, 52, 52, + 228, 229, 230, 231, 232, 52, 52, 233, 234, 52, 235, 2, 2, 2, 2, 2, 2, 2, + 2, 236, 237, 97, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 86, 238, 2, + 239, 240, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 193, 52, 52, - 194, 52, 52, 195, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 196, 197, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 198, 179, 2, 2, 199, 200, - 201, 202, 203, 2, 2, 204, 2, 2, 2, 205, 206, 207, 52, 52, 52, 52, 52, - 208, 2, 2, 2, 2, 2, 2, 2, 2, 209, 2, 210, 2, 211, 2, 2, 212, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 213, 52, 214, 215, 2, 2, 2, 2, 2, 216, 217, 218, 2, 219, - 220, 2, 2, 221, 222, 52, 223, 224, 2, 52, 52, 52, 52, 52, 52, 52, 225, - 226, 227, 228, 229, 52, 52, 230, 231, 52, 232, 2, 2, 2, 2, 2, 2, 2, 2, - 233, 234, 97, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 86, 235, 2, - 236, 237, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 241, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 242, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 238, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 239, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 243, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 240, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 244, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 241, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 242, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 243, - 52, 244, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 2, 2, 245, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 246, + 52, 247, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 245, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 248, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 246, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 238, 2, 2, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 249, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 241, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 247, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 250, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 251, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -6426,7 +6341,7 @@ static const unsigned char changes_3_2_0_index[] = { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 52, 248, 2, 2, + 2, 2, 2, 2, 2, 2, 52, 252, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -6490,7 +6405,7 @@ static const unsigned char changes_3_2_0_index[] = { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, }; static const unsigned char changes_3_2_0_data[] = { @@ -6621,7 +6536,7 @@ static const unsigned char changes_3_2_0_data[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 20, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 9, 9, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, @@ -6636,7 +6551,7 @@ static const unsigned char changes_3_2_0_data[] = { 0, 0, 9, 0, 0, 9, 0, 0, 9, 0, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, + 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7298,7 +7213,7 @@ static const unsigned char changes_3_2_0_data[] = { 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, @@ -7333,7 +7248,7 @@ static const unsigned char changes_3_2_0_data[] = { 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 0, 9, 9, 9, 9, 0, 9, 9, 9, 9, @@ -7411,119 +7326,124 @@ static const unsigned char changes_3_2_0_data[] = { 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, - 0, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 0, 9, 9, 0, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 0, 9, 9, 9, 9, 9, 9, 0, 0, - 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, + 9, 9, 9, 9, 0, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 0, 0, 0, 9, 0, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, + 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9, 9, + 9, 9, 9, 0, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 0, + 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, + 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, - 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, + 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, + 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, + 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, - 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, + 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, + 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7532,109 +7452,120 @@ static const unsigned char changes_3_2_0_data[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, - 9, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 0, 0, 0, 0, 0, 9, 9, 9, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, - 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, + 0, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, + 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 9, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 57, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 0, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, - 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, - 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 0, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 0, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 0, 0, 0, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, + 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7702,18 +7633,18 @@ static const unsigned char changes_3_2_0_data[] = { 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, @@ -7730,12 +7661,12 @@ static const unsigned char changes_3_2_0_data[] = { 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, - 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9, 9, - 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, + 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, + 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, @@ -7797,7 +7728,7 @@ static const unsigned char changes_3_2_0_data[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, @@ -7819,14 +7750,20 @@ static const unsigned char changes_3_2_0_data[] = { 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, }; static const change_record* get_change_3_2_0(Py_UCS4 n) diff --git a/Modules/unicodename_db.h b/Modules/unicodename_db.h index 690470485996f1..f6320c43e53f77 100644 --- a/Modules/unicodename_db.h +++ b/Modules/unicodename_db.h @@ -12,742 +12,744 @@ static const unsigned char lexicon[] = { 65, 206, 67, 79, 77, 80, 65, 84, 73, 66, 73, 76, 73, 84, 217, 83, 89, 77, 66, 79, 204, 68, 73, 71, 73, 212, 86, 79, 87, 69, 204, 84, 65, 78, 71, 85, 212, 70, 79, 82, 77, 128, 67, 65, 78, 65, 68, 73, 65, 206, 83, 89, - 76, 76, 65, 66, 73, 67, 211, 83, 73, 71, 78, 87, 82, 73, 84, 73, 78, 199, - 65, 78, 196, 84, 73, 77, 69, 211, 66, 65, 77, 85, 205, 83, 67, 82, 73, + 76, 76, 65, 66, 73, 67, 211, 65, 78, 196, 83, 73, 71, 78, 87, 82, 73, 84, + 73, 78, 199, 84, 73, 77, 69, 211, 66, 65, 77, 85, 205, 83, 67, 82, 73, 80, 212, 66, 79, 76, 196, 65, 78, 65, 84, 79, 76, 73, 65, 206, 72, 65, 78, 71, 85, 204, 78, 85, 77, 66, 69, 210, 76, 73, 78, 69, 65, 210, 67, 79, 77, 66, 73, 78, 73, 78, 199, 76, 73, 71, 65, 84, 85, 82, 197, 71, 82, 69, 69, 203, 69, 84, 72, 73, 79, 80, 73, 195, 77, 85, 83, 73, 67, 65, - 204, 70, 79, 210, 75, 72, 73, 84, 65, 206, 193, 67, 89, 82, 73, 76, 76, - 73, 195, 73, 84, 65, 76, 73, 195, 84, 65, 77, 73, 204, 76, 69, 70, 212, + 204, 67, 89, 82, 73, 76, 76, 73, 195, 70, 79, 210, 75, 72, 73, 84, 65, + 206, 193, 73, 84, 65, 76, 73, 195, 84, 65, 77, 73, 204, 76, 69, 70, 212, 78, 85, 83, 72, 213, 67, 73, 82, 67, 76, 69, 196, 82, 65, 68, 73, 67, 65, 204, 83, 65, 78, 83, 45, 83, 69, 82, 73, 198, 82, 73, 71, 72, 212, 83, - 81, 85, 65, 82, 197, 70, 73, 78, 65, 204, 84, 65, 201, 68, 79, 85, 66, - 76, 197, 65, 82, 82, 79, 87, 128, 65, 66, 79, 86, 69, 128, 83, 73, 71, - 78, 128, 86, 65, 201, 77, 79, 68, 73, 70, 73, 69, 210, 66, 69, 76, 79, + 81, 85, 65, 82, 197, 77, 79, 68, 73, 70, 73, 69, 210, 70, 73, 78, 65, + 204, 84, 65, 201, 68, 79, 85, 66, 76, 197, 83, 73, 71, 78, 128, 65, 82, + 82, 79, 87, 128, 65, 66, 79, 86, 69, 128, 86, 65, 201, 66, 69, 76, 79, 87, 128, 72, 69, 78, 84, 65, 73, 71, 65, 78, 193, 66, 76, 65, 67, 203, - 65, 82, 82, 79, 215, 87, 72, 73, 84, 197, 65, 128, 86, 65, 82, 73, 65, - 84, 73, 79, 206, 66, 82, 65, 73, 76, 76, 197, 80, 65, 84, 84, 69, 82, - 206, 85, 128, 73, 128, 75, 65, 84, 65, 75, 65, 78, 193, 66, 89, 90, 65, - 78, 84, 73, 78, 197, 79, 128, 68, 79, 212, 73, 83, 79, 76, 65, 84, 69, - 196, 77, 65, 82, 75, 128, 194, 77, 89, 65, 78, 77, 65, 210, 79, 198, 86, - 69, 82, 84, 73, 67, 65, 204, 77, 73, 68, 68, 76, 197, 75, 65, 78, 71, 88, + 87, 72, 73, 84, 197, 65, 82, 82, 79, 215, 65, 128, 85, 128, 86, 65, 82, + 73, 65, 84, 73, 79, 206, 73, 128, 66, 82, 65, 73, 76, 76, 197, 80, 65, + 84, 84, 69, 82, 206, 75, 65, 84, 65, 75, 65, 78, 193, 66, 89, 90, 65, 78, + 84, 73, 78, 197, 79, 128, 68, 79, 212, 73, 83, 79, 76, 65, 84, 69, 196, + 77, 65, 82, 75, 128, 194, 79, 198, 77, 89, 65, 78, 77, 65, 210, 86, 69, + 82, 84, 73, 67, 65, 204, 77, 73, 68, 68, 76, 197, 75, 65, 78, 71, 88, 201, 75, 73, 75, 65, 75, 85, 201, 77, 69, 78, 68, 197, 84, 73, 66, 69, 84, 65, 206, 77, 65, 82, 203, 72, 69, 65, 86, 217, 73, 78, 73, 84, 73, - 65, 204, 72, 77, 79, 78, 199, 79, 78, 197, 77, 69, 69, 205, 67, 79, 80, - 84, 73, 195, 75, 72, 77, 69, 210, 65, 66, 79, 86, 197, 82, 73, 71, 72, + 65, 204, 72, 77, 79, 78, 199, 79, 78, 197, 77, 69, 69, 205, 65, 66, 79, + 86, 197, 67, 79, 80, 84, 73, 195, 75, 72, 77, 69, 210, 82, 73, 71, 72, 84, 87, 65, 82, 68, 211, 90, 78, 65, 77, 69, 78, 78, 217, 67, 65, 82, 82, - 73, 69, 210, 89, 69, 200, 71, 69, 79, 82, 71, 73, 65, 206, 67, 72, 69, - 82, 79, 75, 69, 197, 77, 79, 78, 71, 79, 76, 73, 65, 206, 84, 87, 207, - 68, 69, 86, 65, 78, 65, 71, 65, 82, 201, 83, 84, 82, 79, 75, 69, 128, 72, - 79, 79, 75, 128, 80, 76, 85, 211, 79, 78, 69, 128, 84, 87, 79, 128, 76, + 73, 69, 210, 89, 69, 200, 68, 69, 86, 65, 78, 65, 71, 65, 82, 201, 71, + 69, 79, 82, 71, 73, 65, 206, 72, 79, 79, 75, 128, 67, 72, 69, 82, 79, 75, + 69, 197, 77, 79, 78, 71, 79, 76, 73, 65, 206, 84, 87, 207, 83, 84, 82, + 79, 75, 69, 128, 79, 78, 69, 128, 80, 76, 85, 211, 84, 87, 79, 128, 76, 79, 87, 69, 210, 66, 79, 216, 83, 81, 85, 65, 82, 69, 196, 83, 89, 77, 66, 79, 76, 128, 80, 72, 65, 83, 69, 45, 197, 84, 72, 82, 69, 197, 85, - 80, 80, 69, 210, 76, 69, 70, 84, 87, 65, 82, 68, 211, 84, 207, 67, 79, - 78, 83, 79, 78, 65, 78, 212, 77, 73, 65, 207, 86, 79, 67, 65, 76, 73, - 195, 68, 82, 65, 87, 73, 78, 71, 211, 84, 73, 76, 197, 68, 85, 80, 76, - 79, 89, 65, 206, 74, 79, 78, 71, 83, 69, 79, 78, 199, 80, 65, 82, 69, 78, - 84, 72, 69, 83, 73, 90, 69, 196, 84, 72, 65, 205, 71, 79, 78, 68, 201, - 65, 76, 69, 198, 76, 79, 215, 85, 208, 71, 76, 65, 71, 79, 76, 73, 84, - 73, 195, 72, 65, 76, 198, 72, 69, 66, 82, 69, 215, 72, 73, 71, 200, 70, - 79, 85, 82, 128, 79, 86, 69, 210, 84, 72, 82, 69, 69, 128, 73, 78, 68, + 80, 80, 69, 210, 86, 79, 67, 65, 76, 73, 195, 76, 69, 70, 84, 87, 65, 82, + 68, 211, 84, 207, 67, 79, 78, 83, 79, 78, 65, 78, 212, 77, 73, 65, 207, + 68, 82, 65, 87, 73, 78, 71, 211, 84, 73, 76, 197, 68, 85, 80, 76, 79, 89, + 65, 206, 74, 79, 78, 71, 83, 69, 79, 78, 199, 80, 65, 82, 69, 78, 84, 72, + 69, 83, 73, 90, 69, 196, 84, 72, 65, 205, 71, 79, 78, 68, 201, 76, 79, + 215, 65, 76, 69, 198, 72, 65, 76, 198, 85, 208, 70, 79, 85, 82, 128, 71, + 76, 65, 71, 79, 76, 73, 84, 73, 195, 72, 69, 66, 82, 69, 215, 72, 73, 71, + 200, 84, 72, 82, 69, 69, 128, 79, 86, 69, 210, 72, 65, 128, 73, 78, 68, 69, 216, 77, 65, 76, 65, 89, 65, 76, 65, 205, 83, 73, 89, 65, 209, 68, - 79, 87, 206, 72, 65, 128, 80, 65, 72, 65, 87, 200, 67, 72, 79, 83, 69, - 79, 78, 199, 66, 65, 76, 73, 78, 69, 83, 197, 72, 65, 76, 70, 87, 73, 68, - 84, 200, 72, 65, 78, 68, 45, 70, 73, 83, 212, 77, 69, 82, 79, 73, 84, 73, - 195, 84, 85, 82, 78, 69, 196, 70, 73, 86, 69, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 73, 195, 76, 73, 71, 72, 212, 73, 68, 69, 79, 71, 82, 65, - 205, 75, 65, 128, 80, 72, 65, 83, 69, 45, 196, 84, 79, 128, 65, 76, 67, - 72, 69, 77, 73, 67, 65, 204, 78, 69, 85, 77, 197, 66, 82, 65, 72, 77, - 201, 84, 79, 78, 197, 66, 65, 82, 128, 83, 73, 78, 72, 65, 76, 193, 82, - 65, 128, 78, 85, 77, 69, 82, 73, 195, 80, 65, 128, 89, 65, 128, 76, 65, - 128, 77, 65, 128, 83, 73, 88, 128, 84, 72, 85, 77, 194, 72, 85, 78, 71, - 65, 82, 73, 65, 206, 69, 73, 71, 72, 84, 128, 76, 79, 78, 199, 66, 65, - 82, 194, 72, 65, 200, 78, 65, 128, 83, 69, 86, 69, 78, 128, 66, 76, 79, - 67, 203, 68, 79, 84, 211, 78, 73, 78, 69, 128, 78, 79, 82, 84, 200, 82, - 73, 71, 72, 84, 128, 84, 72, 79, 85, 83, 65, 78, 68, 128, 83, 65, 128, - 70, 85, 76, 76, 87, 73, 68, 84, 200, 90, 90, 89, 88, 128, 90, 90, 89, 84, - 128, 90, 90, 89, 82, 88, 128, 90, 90, 89, 82, 128, 90, 90, 89, 80, 128, - 90, 90, 89, 65, 128, 90, 90, 89, 128, 90, 90, 85, 88, 128, 90, 90, 85, - 82, 88, 128, 90, 90, 85, 82, 128, 90, 90, 85, 80, 128, 90, 90, 85, 128, - 90, 90, 83, 89, 65, 128, 90, 90, 83, 65, 128, 90, 90, 79, 88, 128, 90, - 90, 79, 80, 128, 90, 90, 79, 128, 90, 90, 73, 88, 128, 90, 90, 73, 84, - 128, 90, 90, 73, 80, 128, 90, 90, 73, 69, 88, 128, 90, 90, 73, 69, 84, - 128, 90, 90, 73, 69, 80, 128, 90, 90, 73, 69, 128, 90, 90, 73, 128, 90, - 90, 69, 88, 128, 90, 90, 69, 80, 128, 90, 90, 69, 69, 128, 90, 90, 69, - 128, 90, 90, 65, 88, 128, 90, 90, 65, 84, 128, 90, 90, 65, 80, 128, 90, - 90, 65, 65, 128, 90, 90, 65, 128, 90, 89, 71, 79, 83, 128, 90, 87, 83, - 80, 128, 90, 87, 78, 74, 128, 90, 87, 78, 66, 83, 80, 128, 90, 87, 74, - 128, 90, 87, 202, 90, 87, 65, 82, 65, 75, 65, 89, 128, 90, 87, 65, 128, - 90, 85, 84, 128, 90, 85, 79, 88, 128, 90, 85, 79, 80, 128, 90, 85, 79, - 128, 90, 85, 77, 128, 90, 85, 66, 85, 82, 128, 90, 85, 53, 128, 90, 85, - 181, 90, 213, 90, 83, 72, 65, 128, 90, 82, 65, 128, 90, 81, 65, 80, 72, - 193, 90, 79, 84, 128, 90, 79, 79, 128, 90, 79, 77, 66, 73, 69, 128, 90, - 79, 65, 128, 90, 77, 69, 89, 84, 83, 65, 128, 90, 76, 65, 77, 193, 90, - 76, 65, 128, 90, 76, 193, 90, 74, 69, 128, 90, 73, 90, 50, 128, 90, 73, - 81, 65, 65, 128, 90, 73, 80, 80, 69, 82, 45, 77, 79, 85, 84, 200, 90, 73, - 78, 79, 82, 128, 90, 73, 76, 68, 69, 128, 90, 73, 71, 90, 65, 199, 90, - 73, 71, 128, 90, 73, 68, 193, 90, 73, 66, 128, 90, 73, 194, 90, 73, 51, - 128, 90, 201, 90, 72, 89, 88, 128, 90, 72, 89, 84, 128, 90, 72, 89, 82, - 88, 128, 90, 72, 89, 82, 128, 90, 72, 89, 80, 128, 90, 72, 89, 128, 90, - 72, 87, 69, 128, 90, 72, 87, 65, 128, 90, 72, 85, 88, 128, 90, 72, 85, - 84, 128, 90, 72, 85, 82, 88, 128, 90, 72, 85, 82, 128, 90, 72, 85, 80, - 128, 90, 72, 85, 79, 88, 128, 90, 72, 85, 79, 80, 128, 90, 72, 85, 79, - 128, 90, 72, 85, 128, 90, 72, 79, 88, 128, 90, 72, 79, 84, 128, 90, 72, - 79, 80, 128, 90, 72, 79, 79, 128, 90, 72, 79, 73, 128, 90, 72, 79, 128, - 90, 72, 73, 86, 69, 84, 69, 128, 90, 72, 73, 76, 128, 90, 72, 73, 128, - 90, 72, 69, 88, 128, 90, 72, 69, 84, 128, 90, 72, 69, 80, 128, 90, 72, - 69, 69, 128, 90, 72, 69, 128, 90, 72, 197, 90, 72, 65, 89, 73, 78, 128, - 90, 72, 65, 88, 128, 90, 72, 65, 84, 128, 90, 72, 65, 82, 128, 90, 72, - 65, 80, 128, 90, 72, 65, 73, 78, 128, 90, 72, 65, 65, 128, 90, 72, 65, - 128, 90, 72, 128, 90, 69, 86, 79, 75, 128, 90, 69, 85, 83, 128, 90, 69, - 84, 65, 128, 90, 69, 82, 79, 128, 90, 69, 82, 207, 90, 69, 78, 128, 90, - 69, 77, 76, 89, 65, 128, 90, 69, 77, 76, 74, 65, 128, 90, 69, 76, 79, - 128, 90, 69, 66, 82, 193, 90, 69, 50, 128, 90, 197, 90, 65, 89, 78, 128, - 90, 65, 89, 73, 78, 45, 89, 79, 68, 72, 128, 90, 65, 89, 73, 78, 128, 90, - 65, 89, 73, 206, 90, 65, 86, 73, 89, 65, 78, 73, 128, 90, 65, 84, 65, - 128, 90, 65, 82, 81, 65, 128, 90, 65, 82, 76, 128, 90, 65, 81, 69, 198, - 90, 65, 80, 89, 65, 84, 89, 77, 73, 128, 90, 65, 80, 89, 65, 84, 79, 89, - 128, 90, 65, 80, 89, 65, 84, 79, 217, 90, 65, 80, 89, 65, 84, 65, 89, 65, - 128, 90, 65, 78, 79, 90, 72, 69, 75, 128, 90, 65, 78, 65, 66, 65, 90, 65, - 210, 90, 65, 77, 88, 128, 90, 65, 76, 128, 90, 65, 204, 90, 65, 75, 82, - 89, 84, 79, 69, 128, 90, 65, 75, 82, 89, 84, 65, 89, 65, 128, 90, 65, 75, - 82, 89, 84, 65, 89, 193, 90, 65, 73, 78, 128, 90, 65, 73, 206, 90, 65, - 73, 128, 90, 65, 72, 128, 90, 65, 200, 90, 65, 71, 128, 90, 65, 69, 70, - 128, 90, 65, 68, 69, 82, 90, 72, 75, 65, 128, 90, 65, 55, 128, 90, 193, - 90, 48, 49, 54, 72, 128, 90, 48, 49, 54, 71, 128, 90, 48, 49, 54, 70, - 128, 90, 48, 49, 54, 69, 128, 90, 48, 49, 54, 68, 128, 90, 48, 49, 54, - 67, 128, 90, 48, 49, 54, 66, 128, 90, 48, 49, 54, 65, 128, 90, 48, 49, - 54, 128, 90, 48, 49, 53, 73, 128, 90, 48, 49, 53, 72, 128, 90, 48, 49, - 53, 71, 128, 90, 48, 49, 53, 70, 128, 90, 48, 49, 53, 69, 128, 90, 48, - 49, 53, 68, 128, 90, 48, 49, 53, 67, 128, 90, 48, 49, 53, 66, 128, 90, - 48, 49, 53, 65, 128, 90, 48, 49, 53, 128, 90, 48, 49, 52, 128, 90, 48, - 49, 51, 128, 90, 48, 49, 50, 128, 90, 48, 49, 49, 128, 90, 48, 49, 48, - 128, 90, 48, 48, 57, 128, 90, 48, 48, 56, 128, 90, 48, 48, 55, 128, 90, - 48, 48, 54, 128, 90, 48, 48, 53, 65, 128, 90, 48, 48, 53, 128, 90, 48, - 48, 52, 65, 128, 90, 48, 48, 52, 128, 90, 48, 48, 51, 66, 128, 90, 48, - 48, 51, 65, 128, 90, 48, 48, 51, 128, 90, 48, 48, 50, 68, 128, 90, 48, - 48, 50, 67, 128, 90, 48, 48, 50, 66, 128, 90, 48, 48, 50, 65, 128, 90, - 48, 48, 50, 128, 90, 48, 48, 49, 128, 90, 128, 218, 89, 89, 88, 128, 89, - 89, 84, 128, 89, 89, 82, 88, 128, 89, 89, 82, 128, 89, 89, 80, 128, 89, - 89, 69, 128, 89, 89, 65, 65, 128, 89, 89, 65, 128, 89, 89, 128, 89, 87, - 79, 79, 128, 89, 87, 79, 128, 89, 87, 73, 73, 128, 89, 87, 73, 128, 89, - 87, 69, 128, 89, 87, 65, 65, 128, 89, 87, 65, 128, 89, 86, 128, 89, 85, - 88, 128, 89, 85, 87, 79, 81, 128, 89, 85, 85, 75, 65, 76, 69, 65, 80, 73, - 78, 84, 85, 128, 89, 85, 85, 128, 89, 85, 84, 128, 89, 85, 83, 128, 89, - 85, 211, 89, 85, 82, 88, 128, 89, 85, 82, 128, 89, 85, 81, 128, 89, 85, - 209, 89, 85, 80, 128, 89, 85, 79, 88, 128, 89, 85, 79, 84, 128, 89, 85, - 79, 80, 128, 89, 85, 79, 77, 128, 89, 85, 79, 128, 89, 85, 78, 128, 89, - 85, 77, 128, 89, 85, 74, 128, 89, 85, 73, 128, 89, 85, 69, 81, 128, 89, - 85, 69, 128, 89, 85, 68, 72, 128, 89, 85, 68, 200, 89, 85, 65, 78, 128, - 89, 85, 65, 69, 78, 128, 89, 85, 45, 89, 69, 79, 128, 89, 85, 45, 89, 69, - 128, 89, 85, 45, 85, 128, 89, 85, 45, 79, 128, 89, 85, 45, 73, 128, 89, - 85, 45, 69, 79, 128, 89, 85, 45, 69, 128, 89, 85, 45, 65, 69, 128, 89, - 85, 45, 65, 128, 89, 85, 45, 52, 128, 89, 85, 45, 51, 128, 89, 85, 45, - 50, 128, 89, 85, 45, 49, 128, 89, 85, 128, 89, 213, 89, 82, 89, 128, 89, - 80, 83, 73, 76, 73, 128, 89, 80, 79, 82, 82, 79, 73, 128, 89, 80, 79, 75, - 82, 73, 83, 73, 83, 128, 89, 80, 79, 75, 82, 73, 83, 73, 211, 89, 80, 79, - 71, 69, 71, 82, 65, 77, 77, 69, 78, 73, 128, 89, 79, 89, 128, 89, 79, 88, - 128, 89, 79, 87, 68, 128, 89, 79, 85, 84, 72, 70, 85, 76, 78, 69, 83, 83, - 128, 89, 79, 85, 84, 72, 70, 85, 204, 89, 79, 213, 89, 79, 84, 128, 89, - 79, 212, 89, 79, 82, 73, 128, 89, 79, 81, 128, 89, 79, 209, 89, 79, 80, - 128, 89, 79, 79, 128, 89, 79, 77, 79, 128, 89, 79, 71, 72, 128, 89, 79, - 68, 128, 89, 79, 196, 89, 79, 65, 128, 89, 79, 45, 89, 79, 128, 89, 79, - 45, 89, 69, 79, 128, 89, 79, 45, 89, 65, 69, 128, 89, 79, 45, 89, 65, - 128, 89, 79, 45, 79, 128, 89, 79, 45, 73, 128, 89, 79, 45, 69, 79, 128, - 89, 79, 45, 65, 69, 128, 89, 79, 45, 65, 128, 89, 79, 45, 54, 128, 89, - 79, 45, 53, 128, 89, 79, 45, 52, 128, 89, 79, 45, 51, 128, 89, 79, 45, - 50, 128, 89, 79, 45, 49, 128, 89, 207, 89, 73, 90, 69, 84, 128, 89, 73, - 88, 128, 89, 73, 87, 78, 128, 89, 73, 84, 128, 89, 73, 80, 128, 89, 73, - 78, 71, 128, 89, 73, 73, 128, 89, 73, 72, 128, 89, 73, 199, 89, 73, 69, - 88, 128, 89, 73, 69, 84, 128, 89, 73, 69, 80, 128, 89, 73, 69, 69, 128, - 89, 73, 69, 128, 89, 73, 68, 68, 73, 83, 200, 89, 73, 45, 85, 128, 89, - 73, 128, 89, 72, 69, 128, 89, 72, 65, 128, 89, 70, 69, 83, 73, 83, 128, - 89, 70, 69, 83, 73, 211, 89, 70, 69, 206, 89, 69, 90, 73, 68, 201, 89, - 69, 89, 128, 89, 69, 87, 128, 89, 69, 85, 88, 128, 89, 69, 85, 82, 65, - 69, 128, 89, 69, 85, 81, 128, 89, 69, 85, 77, 128, 89, 69, 85, 65, 69, - 84, 128, 89, 69, 85, 65, 69, 128, 89, 69, 84, 73, 86, 128, 89, 69, 83, - 84, 85, 128, 89, 69, 83, 73, 69, 85, 78, 71, 45, 83, 83, 65, 78, 71, 75, - 73, 89, 69, 79, 75, 128, 89, 69, 83, 73, 69, 85, 78, 71, 45, 83, 73, 79, - 83, 128, 89, 69, 83, 73, 69, 85, 78, 71, 45, 80, 65, 78, 83, 73, 79, 83, - 128, 89, 69, 83, 73, 69, 85, 78, 71, 45, 77, 73, 69, 85, 77, 128, 89, 69, - 83, 73, 69, 85, 78, 71, 45, 75, 73, 89, 69, 79, 75, 128, 89, 69, 83, 73, - 69, 85, 78, 71, 45, 75, 72, 73, 69, 85, 75, 72, 128, 89, 69, 83, 73, 69, - 85, 78, 71, 45, 72, 73, 69, 85, 72, 128, 89, 69, 83, 73, 69, 85, 78, 71, - 128, 89, 69, 82, 85, 128, 89, 69, 82, 213, 89, 69, 82, 73, 128, 89, 69, - 82, 65, 200, 89, 69, 82, 128, 89, 69, 79, 82, 73, 78, 72, 73, 69, 85, 72, - 128, 89, 69, 79, 45, 89, 65, 128, 89, 69, 79, 45, 85, 128, 89, 69, 79, - 45, 79, 128, 89, 69, 78, 73, 83, 69, 201, 89, 69, 78, 65, 80, 128, 89, - 69, 78, 128, 89, 69, 206, 89, 69, 76, 76, 79, 87, 128, 89, 69, 76, 76, - 79, 215, 89, 69, 73, 78, 128, 89, 69, 72, 128, 89, 69, 69, 71, 128, 89, - 69, 69, 128, 89, 69, 65, 210, 89, 69, 65, 128, 89, 65, 90, 90, 128, 89, - 65, 90, 72, 128, 89, 65, 90, 128, 89, 65, 89, 68, 128, 89, 65, 89, 65, - 78, 78, 65, 128, 89, 65, 89, 128, 89, 65, 87, 78, 73, 78, 199, 89, 65, - 87, 78, 128, 89, 65, 87, 128, 89, 65, 86, 128, 89, 65, 85, 128, 89, 65, - 84, 84, 128, 89, 65, 84, 73, 128, 89, 65, 84, 72, 128, 89, 65, 84, 128, - 89, 65, 83, 83, 128, 89, 65, 83, 72, 128, 89, 65, 83, 128, 89, 65, 82, - 82, 128, 89, 65, 82, 78, 128, 89, 65, 82, 128, 89, 65, 210, 89, 65, 81, - 128, 89, 65, 80, 128, 89, 65, 78, 83, 65, 89, 65, 128, 89, 65, 78, 71, - 128, 89, 65, 78, 199, 89, 65, 78, 128, 89, 65, 77, 79, 75, 128, 89, 65, - 77, 65, 75, 75, 65, 78, 128, 89, 65, 77, 128, 89, 65, 76, 128, 89, 65, - 75, 72, 72, 128, 89, 65, 75, 72, 128, 89, 65, 75, 65, 83, 72, 128, 89, - 65, 75, 128, 89, 65, 74, 85, 82, 86, 69, 68, 73, 195, 89, 65, 74, 128, - 89, 65, 73, 128, 89, 65, 72, 72, 128, 89, 65, 72, 128, 89, 65, 71, 78, - 128, 89, 65, 71, 72, 72, 128, 89, 65, 71, 72, 128, 89, 65, 71, 128, 89, - 65, 70, 213, 89, 65, 70, 128, 89, 65, 69, 77, 77, 65, 69, 128, 89, 65, - 68, 72, 128, 89, 65, 68, 68, 72, 128, 89, 65, 68, 68, 128, 89, 65, 68, - 128, 89, 65, 67, 72, 128, 89, 65, 66, 72, 128, 89, 65, 66, 128, 89, 65, - 65, 82, 85, 128, 89, 65, 65, 73, 128, 89, 65, 65, 68, 79, 128, 89, 65, - 45, 89, 79, 128, 89, 65, 45, 85, 128, 89, 65, 45, 79, 128, 89, 65, 45, - 53, 128, 89, 65, 45, 52, 128, 89, 65, 45, 51, 128, 89, 65, 45, 50, 128, - 89, 65, 45, 49, 128, 89, 48, 48, 56, 128, 89, 48, 48, 55, 128, 89, 48, - 48, 54, 128, 89, 48, 48, 53, 128, 89, 48, 48, 52, 128, 89, 48, 48, 51, - 128, 89, 48, 48, 50, 128, 89, 48, 48, 49, 65, 128, 89, 48, 48, 49, 128, - 89, 45, 67, 82, 69, 197, 88, 89, 88, 128, 88, 89, 85, 128, 88, 89, 84, - 128, 88, 89, 82, 88, 128, 88, 89, 82, 128, 88, 89, 80, 128, 88, 89, 79, - 79, 74, 128, 88, 89, 79, 79, 128, 88, 89, 79, 128, 88, 89, 73, 128, 88, - 89, 69, 69, 205, 88, 89, 69, 69, 128, 88, 89, 69, 128, 88, 89, 65, 65, - 128, 88, 89, 65, 128, 88, 89, 128, 88, 87, 73, 128, 88, 87, 69, 69, 128, - 88, 87, 69, 128, 88, 87, 65, 65, 128, 88, 87, 65, 128, 88, 87, 128, 88, - 215, 88, 86, 69, 128, 88, 86, 65, 128, 88, 85, 79, 88, 128, 88, 85, 79, - 128, 88, 85, 128, 88, 83, 72, 65, 65, 89, 65, 84, 72, 73, 89, 65, 128, - 88, 79, 88, 128, 88, 79, 84, 128, 88, 79, 82, 128, 88, 79, 80, 72, 128, - 88, 79, 80, 128, 88, 79, 65, 128, 88, 79, 128, 88, 73, 88, 128, 88, 73, - 84, 128, 88, 73, 82, 79, 206, 88, 73, 80, 128, 88, 73, 69, 88, 128, 88, - 73, 69, 84, 128, 88, 73, 69, 80, 128, 88, 73, 69, 128, 88, 73, 65, 78, - 71, 81, 201, 88, 73, 65, 66, 128, 88, 73, 128, 88, 72, 69, 89, 78, 128, - 88, 71, 128, 88, 69, 89, 78, 128, 88, 69, 83, 84, 69, 211, 88, 69, 72, - 128, 88, 69, 69, 128, 88, 69, 128, 88, 65, 85, 83, 128, 88, 65, 85, 128, - 88, 65, 80, 72, 128, 88, 65, 78, 128, 88, 65, 65, 128, 88, 65, 128, 88, - 48, 48, 56, 65, 128, 88, 48, 48, 56, 128, 88, 48, 48, 55, 128, 88, 48, - 48, 54, 65, 128, 88, 48, 48, 54, 128, 88, 48, 48, 53, 128, 88, 48, 48, - 52, 66, 128, 88, 48, 48, 52, 65, 128, 88, 48, 48, 52, 128, 88, 48, 48, - 51, 128, 88, 48, 48, 50, 128, 88, 48, 48, 49, 128, 88, 45, 216, 88, 45, - 82, 65, 89, 128, 87, 90, 128, 87, 89, 78, 78, 128, 87, 89, 78, 206, 87, - 86, 73, 128, 87, 86, 69, 128, 87, 86, 65, 128, 87, 86, 128, 87, 85, 80, - 128, 87, 85, 79, 88, 128, 87, 85, 79, 80, 128, 87, 85, 79, 128, 87, 85, - 78, 74, 207, 87, 85, 78, 128, 87, 85, 76, 85, 128, 87, 85, 76, 213, 87, - 85, 73, 128, 87, 85, 69, 128, 87, 85, 65, 69, 84, 128, 87, 85, 65, 69, - 78, 128, 87, 85, 128, 87, 82, 217, 87, 82, 79, 78, 71, 128, 87, 82, 73, - 83, 212, 87, 82, 73, 78, 75, 76, 69, 83, 128, 87, 82, 73, 78, 75, 76, 69, - 211, 87, 82, 73, 78, 75, 76, 69, 68, 128, 87, 82, 69, 83, 84, 76, 69, 82, - 83, 128, 87, 82, 69, 78, 67, 72, 128, 87, 82, 69, 65, 84, 200, 87, 82, - 65, 80, 80, 69, 196, 87, 82, 65, 80, 128, 87, 79, 88, 128, 87, 79, 87, - 128, 87, 79, 82, 83, 72, 73, 80, 128, 87, 79, 82, 82, 73, 69, 196, 87, - 79, 82, 77, 128, 87, 79, 82, 76, 196, 87, 79, 82, 75, 69, 82, 128, 87, - 79, 82, 75, 128, 87, 79, 82, 203, 87, 79, 82, 68, 83, 80, 65, 67, 69, - 128, 87, 79, 82, 196, 87, 79, 80, 128, 87, 79, 79, 78, 128, 87, 79, 79, - 76, 128, 87, 79, 79, 68, 83, 45, 67, 82, 69, 197, 87, 79, 79, 68, 128, - 87, 79, 78, 128, 87, 79, 206, 87, 79, 77, 69, 78, 211, 87, 79, 77, 69, - 206, 87, 79, 77, 65, 78, 211, 87, 79, 77, 65, 78, 128, 87, 79, 77, 65, - 206, 87, 79, 76, 79, 83, 79, 128, 87, 79, 76, 198, 87, 79, 69, 128, 87, - 79, 65, 128, 87, 79, 45, 55, 128, 87, 79, 45, 54, 128, 87, 79, 45, 53, - 128, 87, 79, 45, 52, 128, 87, 79, 45, 51, 128, 87, 79, 45, 50, 128, 87, - 79, 45, 49, 128, 87, 73, 84, 72, 79, 85, 212, 87, 73, 84, 72, 73, 78, - 128, 87, 73, 84, 72, 73, 206, 87, 73, 82, 69, 196, 87, 73, 78, 84, 69, - 82, 128, 87, 73, 78, 75, 73, 78, 199, 87, 73, 78, 75, 128, 87, 73, 78, - 74, 65, 128, 87, 73, 78, 71, 83, 128, 87, 73, 78, 69, 128, 87, 73, 78, - 197, 87, 73, 78, 68, 85, 128, 87, 73, 78, 68, 79, 87, 128, 87, 73, 78, - 68, 128, 87, 73, 78, 196, 87, 73, 78, 128, 87, 73, 76, 84, 69, 196, 87, - 73, 71, 78, 89, 65, 78, 128, 87, 73, 71, 71, 76, 217, 87, 73, 71, 71, 76, - 69, 83, 128, 87, 73, 68, 84, 72, 128, 87, 73, 68, 69, 78, 73, 78, 199, - 87, 73, 68, 69, 45, 72, 69, 65, 68, 69, 196, 87, 73, 68, 197, 87, 73, 65, - 78, 71, 87, 65, 65, 75, 128, 87, 73, 65, 78, 71, 128, 87, 73, 45, 53, - 128, 87, 73, 45, 52, 128, 87, 73, 45, 51, 128, 87, 73, 45, 50, 128, 87, - 73, 45, 49, 128, 87, 72, 79, 76, 197, 87, 72, 73, 84, 69, 45, 70, 69, 65, - 84, 72, 69, 82, 69, 196, 87, 72, 73, 84, 69, 128, 87, 72, 69, 69, 76, 69, - 196, 87, 72, 69, 69, 76, 67, 72, 65, 73, 82, 128, 87, 72, 69, 69, 76, 67, - 72, 65, 73, 210, 87, 72, 69, 69, 76, 128, 87, 72, 69, 69, 204, 87, 72, - 69, 65, 84, 128, 87, 72, 65, 76, 69, 128, 87, 72, 128, 87, 71, 128, 87, - 69, 88, 128, 87, 69, 85, 88, 128, 87, 69, 212, 87, 69, 83, 84, 69, 82, - 206, 87, 69, 83, 84, 45, 67, 82, 69, 197, 87, 69, 83, 84, 128, 87, 69, - 83, 212, 87, 69, 80, 128, 87, 69, 79, 128, 87, 69, 78, 128, 87, 69, 76, - 76, 128, 87, 69, 73, 71, 72, 212, 87, 69, 73, 69, 82, 83, 84, 82, 65, 83, - 211, 87, 69, 73, 128, 87, 69, 69, 78, 128, 87, 69, 68, 71, 69, 45, 84, - 65, 73, 76, 69, 196, 87, 69, 68, 71, 69, 128, 87, 69, 68, 68, 73, 78, 71, - 128, 87, 69, 66, 128, 87, 69, 65, 82, 217, 87, 69, 65, 80, 79, 78, 128, - 87, 69, 45, 52, 128, 87, 69, 45, 51, 128, 87, 69, 45, 50, 128, 87, 69, - 45, 49, 128, 87, 67, 128, 87, 66, 128, 87, 65, 89, 128, 87, 65, 217, 87, - 65, 88, 73, 78, 199, 87, 65, 88, 128, 87, 65, 87, 45, 65, 89, 73, 78, 45, - 82, 69, 83, 72, 128, 87, 65, 87, 128, 87, 65, 215, 87, 65, 86, 217, 87, - 65, 86, 73, 78, 199, 87, 65, 86, 69, 83, 128, 87, 65, 86, 69, 128, 87, - 65, 86, 197, 87, 65, 85, 128, 87, 65, 84, 84, 79, 128, 87, 65, 84, 69, - 82, 77, 69, 76, 79, 78, 128, 87, 65, 84, 69, 82, 128, 87, 65, 84, 69, - 210, 87, 65, 84, 67, 72, 128, 87, 65, 84, 128, 87, 65, 83, 84, 73, 78, - 71, 128, 87, 65, 83, 84, 69, 66, 65, 83, 75, 69, 84, 128, 87, 65, 83, 83, - 65, 76, 76, 65, 77, 128, 87, 65, 83, 76, 65, 128, 87, 65, 83, 76, 193, - 87, 65, 83, 65, 76, 76, 65, 77, 128, 87, 65, 83, 65, 76, 76, 65, 205, 87, - 65, 83, 45, 83, 65, 76, 65, 65, 77, 128, 87, 65, 82, 78, 73, 78, 199, 87, - 65, 82, 65, 78, 199, 87, 65, 81, 70, 65, 128, 87, 65, 80, 128, 87, 65, - 78, 73, 78, 199, 87, 65, 78, 71, 75, 85, 79, 81, 128, 87, 65, 78, 68, 69, - 82, 69, 82, 128, 87, 65, 78, 68, 128, 87, 65, 78, 67, 72, 207, 87, 65, - 78, 128, 87, 65, 76, 76, 80, 76, 65, 78, 197, 87, 65, 76, 76, 128, 87, - 65, 76, 204, 87, 65, 76, 75, 128, 87, 65, 76, 203, 87, 65, 73, 84, 73, - 78, 71, 128, 87, 65, 73, 83, 84, 128, 87, 65, 73, 128, 87, 65, 70, 70, - 76, 69, 128, 87, 65, 69, 78, 128, 87, 65, 69, 128, 87, 65, 68, 68, 65, - 128, 87, 65, 65, 86, 85, 128, 87, 65, 65, 74, 73, 66, 128, 87, 65, 65, - 65, 76, 73, 72, 69, 197, 87, 65, 45, 84, 65, 65, 65, 76, 65, 65, 128, 87, - 65, 45, 83, 65, 76, 76, 65, 77, 128, 87, 65, 45, 65, 65, 76, 73, 72, 128, - 87, 65, 45, 53, 128, 87, 65, 45, 52, 128, 87, 65, 45, 51, 128, 87, 65, - 45, 50, 128, 87, 65, 45, 49, 128, 87, 193, 87, 48, 50, 53, 128, 87, 48, - 50, 52, 65, 128, 87, 48, 50, 52, 128, 87, 48, 50, 51, 128, 87, 48, 50, - 50, 128, 87, 48, 50, 49, 128, 87, 48, 50, 48, 128, 87, 48, 49, 57, 128, - 87, 48, 49, 56, 65, 128, 87, 48, 49, 56, 128, 87, 48, 49, 55, 65, 128, - 87, 48, 49, 55, 128, 87, 48, 49, 54, 128, 87, 48, 49, 53, 128, 87, 48, - 49, 52, 65, 128, 87, 48, 49, 52, 128, 87, 48, 49, 51, 128, 87, 48, 49, - 50, 128, 87, 48, 49, 49, 128, 87, 48, 49, 48, 65, 128, 87, 48, 49, 48, - 128, 87, 48, 48, 57, 65, 128, 87, 48, 48, 57, 128, 87, 48, 48, 56, 128, - 87, 48, 48, 55, 128, 87, 48, 48, 54, 128, 87, 48, 48, 53, 128, 87, 48, - 48, 52, 128, 87, 48, 48, 51, 65, 128, 87, 48, 48, 51, 128, 87, 48, 48, - 50, 128, 87, 48, 48, 49, 128, 86, 90, 77, 69, 84, 128, 86, 90, 128, 86, - 89, 88, 128, 86, 89, 84, 128, 86, 89, 83, 79, 75, 79, 128, 86, 89, 83, - 79, 75, 207, 86, 89, 82, 88, 128, 86, 89, 82, 128, 86, 89, 80, 128, 86, - 89, 128, 86, 88, 128, 86, 87, 74, 128, 86, 87, 65, 128, 86, 87, 128, 86, - 85, 88, 128, 86, 85, 85, 128, 86, 85, 84, 128, 86, 85, 82, 88, 128, 86, - 85, 82, 128, 86, 85, 80, 128, 86, 85, 76, 71, 65, 210, 86, 85, 76, 67, - 65, 78, 85, 83, 128, 86, 85, 69, 81, 128, 86, 84, 83, 128, 86, 84, 128, - 86, 83, 57, 57, 128, 86, 83, 57, 56, 128, 86, 83, 57, 55, 128, 86, 83, - 57, 54, 128, 86, 83, 57, 53, 128, 86, 83, 57, 52, 128, 86, 83, 57, 51, - 128, 86, 83, 57, 50, 128, 86, 83, 57, 49, 128, 86, 83, 57, 48, 128, 86, - 83, 57, 128, 86, 83, 56, 57, 128, 86, 83, 56, 56, 128, 86, 83, 56, 55, - 128, 86, 83, 56, 54, 128, 86, 83, 56, 53, 128, 86, 83, 56, 52, 128, 86, - 83, 56, 51, 128, 86, 83, 56, 50, 128, 86, 83, 56, 49, 128, 86, 83, 56, - 48, 128, 86, 83, 56, 128, 86, 83, 55, 57, 128, 86, 83, 55, 56, 128, 86, - 83, 55, 55, 128, 86, 83, 55, 54, 128, 86, 83, 55, 53, 128, 86, 83, 55, - 52, 128, 86, 83, 55, 51, 128, 86, 83, 55, 50, 128, 86, 83, 55, 49, 128, - 86, 83, 55, 48, 128, 86, 83, 55, 128, 86, 83, 54, 57, 128, 86, 83, 54, - 56, 128, 86, 83, 54, 55, 128, 86, 83, 54, 54, 128, 86, 83, 54, 53, 128, - 86, 83, 54, 52, 128, 86, 83, 54, 51, 128, 86, 83, 54, 50, 128, 86, 83, - 54, 49, 128, 86, 83, 54, 48, 128, 86, 83, 54, 128, 86, 83, 53, 57, 128, - 86, 83, 53, 56, 128, 86, 83, 53, 55, 128, 86, 83, 53, 54, 128, 86, 83, - 53, 53, 128, 86, 83, 53, 52, 128, 86, 83, 53, 51, 128, 86, 83, 53, 50, - 128, 86, 83, 53, 49, 128, 86, 83, 53, 48, 128, 86, 83, 53, 128, 86, 83, - 52, 57, 128, 86, 83, 52, 56, 128, 86, 83, 52, 55, 128, 86, 83, 52, 54, - 128, 86, 83, 52, 53, 128, 86, 83, 52, 52, 128, 86, 83, 52, 51, 128, 86, - 83, 52, 50, 128, 86, 83, 52, 49, 128, 86, 83, 52, 48, 128, 86, 83, 52, - 128, 86, 83, 51, 57, 128, 86, 83, 51, 56, 128, 86, 83, 51, 55, 128, 86, - 83, 51, 54, 128, 86, 83, 51, 53, 128, 86, 83, 51, 52, 128, 86, 83, 51, - 51, 128, 86, 83, 51, 50, 128, 86, 83, 51, 49, 128, 86, 83, 51, 48, 128, - 86, 83, 51, 128, 86, 83, 50, 57, 128, 86, 83, 50, 56, 128, 86, 83, 50, - 55, 128, 86, 83, 50, 54, 128, 86, 83, 50, 53, 54, 128, 86, 83, 50, 53, - 53, 128, 86, 83, 50, 53, 52, 128, 86, 83, 50, 53, 51, 128, 86, 83, 50, - 53, 50, 128, 86, 83, 50, 53, 49, 128, 86, 83, 50, 53, 48, 128, 86, 83, - 50, 53, 128, 86, 83, 50, 52, 57, 128, 86, 83, 50, 52, 56, 128, 86, 83, - 50, 52, 55, 128, 86, 83, 50, 52, 54, 128, 86, 83, 50, 52, 53, 128, 86, - 83, 50, 52, 52, 128, 86, 83, 50, 52, 51, 128, 86, 83, 50, 52, 50, 128, - 86, 83, 50, 52, 49, 128, 86, 83, 50, 52, 48, 128, 86, 83, 50, 52, 128, - 86, 83, 50, 51, 57, 128, 86, 83, 50, 51, 56, 128, 86, 83, 50, 51, 55, - 128, 86, 83, 50, 51, 54, 128, 86, 83, 50, 51, 53, 128, 86, 83, 50, 51, - 52, 128, 86, 83, 50, 51, 51, 128, 86, 83, 50, 51, 50, 128, 86, 83, 50, - 51, 49, 128, 86, 83, 50, 51, 48, 128, 86, 83, 50, 51, 128, 86, 83, 50, - 50, 57, 128, 86, 83, 50, 50, 56, 128, 86, 83, 50, 50, 55, 128, 86, 83, - 50, 50, 54, 128, 86, 83, 50, 50, 53, 128, 86, 83, 50, 50, 52, 128, 86, - 83, 50, 50, 51, 128, 86, 83, 50, 50, 50, 128, 86, 83, 50, 50, 49, 128, - 86, 83, 50, 50, 48, 128, 86, 83, 50, 50, 128, 86, 83, 50, 49, 57, 128, - 86, 83, 50, 49, 56, 128, 86, 83, 50, 49, 55, 128, 86, 83, 50, 49, 54, - 128, 86, 83, 50, 49, 53, 128, 86, 83, 50, 49, 52, 128, 86, 83, 50, 49, - 51, 128, 86, 83, 50, 49, 50, 128, 86, 83, 50, 49, 49, 128, 86, 83, 50, - 49, 48, 128, 86, 83, 50, 49, 128, 86, 83, 50, 48, 57, 128, 86, 83, 50, - 48, 56, 128, 86, 83, 50, 48, 55, 128, 86, 83, 50, 48, 54, 128, 86, 83, - 50, 48, 53, 128, 86, 83, 50, 48, 52, 128, 86, 83, 50, 48, 51, 128, 86, - 83, 50, 48, 50, 128, 86, 83, 50, 48, 49, 128, 86, 83, 50, 48, 48, 128, - 86, 83, 50, 48, 128, 86, 83, 50, 128, 86, 83, 49, 57, 57, 128, 86, 83, - 49, 57, 56, 128, 86, 83, 49, 57, 55, 128, 86, 83, 49, 57, 54, 128, 86, - 83, 49, 57, 53, 128, 86, 83, 49, 57, 52, 128, 86, 83, 49, 57, 51, 128, - 86, 83, 49, 57, 50, 128, 86, 83, 49, 57, 49, 128, 86, 83, 49, 57, 48, - 128, 86, 83, 49, 57, 128, 86, 83, 49, 56, 57, 128, 86, 83, 49, 56, 56, - 128, 86, 83, 49, 56, 55, 128, 86, 83, 49, 56, 54, 128, 86, 83, 49, 56, - 53, 128, 86, 83, 49, 56, 52, 128, 86, 83, 49, 56, 51, 128, 86, 83, 49, - 56, 50, 128, 86, 83, 49, 56, 49, 128, 86, 83, 49, 56, 48, 128, 86, 83, - 49, 56, 128, 86, 83, 49, 55, 57, 128, 86, 83, 49, 55, 56, 128, 86, 83, - 49, 55, 55, 128, 86, 83, 49, 55, 54, 128, 86, 83, 49, 55, 53, 128, 86, - 83, 49, 55, 52, 128, 86, 83, 49, 55, 51, 128, 86, 83, 49, 55, 50, 128, - 86, 83, 49, 55, 49, 128, 86, 83, 49, 55, 48, 128, 86, 83, 49, 55, 128, - 86, 83, 49, 54, 57, 128, 86, 83, 49, 54, 56, 128, 86, 83, 49, 54, 55, - 128, 86, 83, 49, 54, 54, 128, 86, 83, 49, 54, 53, 128, 86, 83, 49, 54, - 52, 128, 86, 83, 49, 54, 51, 128, 86, 83, 49, 54, 50, 128, 86, 83, 49, - 54, 49, 128, 86, 83, 49, 54, 48, 128, 86, 83, 49, 54, 128, 86, 83, 49, - 53, 57, 128, 86, 83, 49, 53, 56, 128, 86, 83, 49, 53, 55, 128, 86, 83, - 49, 53, 54, 128, 86, 83, 49, 53, 53, 128, 86, 83, 49, 53, 52, 128, 86, - 83, 49, 53, 51, 128, 86, 83, 49, 53, 50, 128, 86, 83, 49, 53, 49, 128, - 86, 83, 49, 53, 48, 128, 86, 83, 49, 53, 128, 86, 83, 49, 52, 57, 128, - 86, 83, 49, 52, 56, 128, 86, 83, 49, 52, 55, 128, 86, 83, 49, 52, 54, - 128, 86, 83, 49, 52, 53, 128, 86, 83, 49, 52, 52, 128, 86, 83, 49, 52, - 51, 128, 86, 83, 49, 52, 50, 128, 86, 83, 49, 52, 49, 128, 86, 83, 49, - 52, 48, 128, 86, 83, 49, 52, 128, 86, 83, 49, 51, 57, 128, 86, 83, 49, - 51, 56, 128, 86, 83, 49, 51, 55, 128, 86, 83, 49, 51, 54, 128, 86, 83, - 49, 51, 53, 128, 86, 83, 49, 51, 52, 128, 86, 83, 49, 51, 51, 128, 86, - 83, 49, 51, 50, 128, 86, 83, 49, 51, 49, 128, 86, 83, 49, 51, 48, 128, - 86, 83, 49, 51, 128, 86, 83, 49, 50, 57, 128, 86, 83, 49, 50, 56, 128, - 86, 83, 49, 50, 55, 128, 86, 83, 49, 50, 54, 128, 86, 83, 49, 50, 53, - 128, 86, 83, 49, 50, 52, 128, 86, 83, 49, 50, 51, 128, 86, 83, 49, 50, - 50, 128, 86, 83, 49, 50, 49, 128, 86, 83, 49, 50, 48, 128, 86, 83, 49, - 50, 128, 86, 83, 49, 49, 57, 128, 86, 83, 49, 49, 56, 128, 86, 83, 49, - 49, 55, 128, 86, 83, 49, 49, 54, 128, 86, 83, 49, 49, 53, 128, 86, 83, - 49, 49, 52, 128, 86, 83, 49, 49, 51, 128, 86, 83, 49, 49, 50, 128, 86, - 83, 49, 49, 49, 128, 86, 83, 49, 49, 48, 128, 86, 83, 49, 49, 128, 86, - 83, 49, 48, 57, 128, 86, 83, 49, 48, 56, 128, 86, 83, 49, 48, 55, 128, - 86, 83, 49, 48, 54, 128, 86, 83, 49, 48, 53, 128, 86, 83, 49, 48, 52, - 128, 86, 83, 49, 48, 51, 128, 86, 83, 49, 48, 50, 128, 86, 83, 49, 48, - 49, 128, 86, 83, 49, 48, 48, 128, 86, 83, 49, 48, 128, 86, 83, 49, 128, - 86, 83, 128, 86, 82, 65, 75, 72, 73, 89, 193, 86, 82, 65, 67, 72, 89, - 128, 86, 81, 128, 86, 79, 88, 128, 86, 79, 87, 69, 76, 45, 67, 65, 82, - 82, 73, 69, 210, 86, 79, 87, 128, 86, 79, 85, 128, 86, 79, 84, 128, 86, - 79, 211, 86, 79, 80, 128, 86, 79, 79, 73, 128, 86, 79, 79, 128, 86, 79, - 77, 73, 84, 73, 78, 71, 128, 86, 79, 77, 128, 86, 79, 76, 85, 77, 197, - 86, 79, 76, 84, 65, 71, 197, 86, 79, 76, 76, 69, 89, 66, 65, 76, 76, 128, - 86, 79, 76, 67, 65, 78, 79, 128, 86, 79, 76, 65, 80, 85, 203, 86, 79, 73, - 68, 69, 196, 86, 79, 73, 196, 86, 79, 73, 67, 73, 78, 71, 128, 86, 79, - 73, 67, 69, 76, 69, 83, 211, 86, 79, 73, 67, 69, 196, 86, 79, 68, 128, - 86, 79, 67, 65, 76, 73, 90, 65, 84, 73, 79, 206, 86, 79, 67, 65, 204, 86, - 79, 128, 86, 73, 89, 79, 128, 86, 73, 88, 128, 86, 73, 84, 82, 73, 79, - 76, 45, 50, 128, 86, 73, 84, 82, 73, 79, 76, 128, 86, 73, 84, 72, 75, 85, - 81, 201, 86, 73, 84, 65, 69, 45, 50, 128, 86, 73, 84, 65, 69, 128, 86, - 73, 84, 128, 86, 73, 83, 73, 71, 79, 84, 72, 73, 195, 86, 73, 83, 65, 82, - 71, 65, 89, 65, 128, 86, 73, 83, 65, 82, 71, 65, 128, 86, 73, 83, 65, 82, - 71, 193, 86, 73, 82, 73, 65, 77, 128, 86, 73, 82, 71, 79, 128, 86, 73, - 82, 71, 65, 128, 86, 73, 82, 65, 77, 65, 128, 86, 73, 80, 128, 86, 73, - 79, 76, 73, 78, 128, 86, 73, 78, 69, 71, 65, 82, 45, 51, 128, 86, 73, 78, - 69, 71, 65, 82, 45, 50, 128, 86, 73, 78, 69, 71, 65, 82, 128, 86, 73, 78, - 69, 71, 65, 210, 86, 73, 78, 69, 128, 86, 73, 78, 197, 86, 73, 78, 128, - 86, 73, 76, 76, 65, 71, 69, 128, 86, 73, 73, 128, 86, 73, 71, 73, 78, 84, - 73, 76, 69, 128, 86, 73, 69, 88, 128, 86, 73, 69, 87, 73, 78, 199, 86, - 73, 69, 87, 69, 82, 128, 86, 73, 69, 87, 68, 65, 84, 193, 86, 73, 69, 84, - 78, 65, 77, 69, 83, 197, 86, 73, 69, 84, 128, 86, 73, 69, 212, 86, 73, - 69, 80, 128, 86, 73, 69, 128, 86, 73, 68, 74, 45, 50, 128, 86, 73, 68, - 74, 128, 86, 73, 68, 69, 79, 67, 65, 83, 83, 69, 84, 84, 69, 128, 86, 73, - 68, 69, 207, 86, 73, 68, 65, 128, 86, 73, 67, 84, 79, 82, 217, 86, 73, - 66, 82, 65, 84, 73, 79, 206, 86, 72, 65, 128, 86, 70, 65, 128, 86, 69, - 89, 90, 128, 86, 69, 88, 128, 86, 69, 87, 128, 86, 69, 215, 86, 69, 85, - 88, 128, 86, 69, 85, 77, 128, 86, 69, 85, 65, 69, 80, 69, 78, 128, 86, - 69, 85, 65, 69, 128, 86, 69, 83, 84, 65, 128, 86, 69, 83, 84, 128, 86, - 69, 83, 83, 69, 204, 86, 69, 82, 217, 86, 69, 82, 84, 73, 67, 65, 76, 76, - 89, 128, 86, 69, 82, 84, 73, 67, 65, 76, 76, 217, 86, 69, 82, 84, 73, 67, - 65, 76, 45, 48, 54, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, - 48, 54, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 54, 45, - 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 54, 45, 48, 51, 128, - 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 54, 45, 48, 50, 128, 86, 69, 82, - 84, 73, 67, 65, 76, 45, 48, 54, 45, 48, 49, 128, 86, 69, 82, 84, 73, 67, - 65, 76, 45, 48, 54, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, - 48, 53, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 53, 45, - 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 53, 45, 48, 52, 128, - 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 53, 45, 48, 51, 128, 86, 69, 82, - 84, 73, 67, 65, 76, 45, 48, 53, 45, 48, 50, 128, 86, 69, 82, 84, 73, 67, - 65, 76, 45, 48, 53, 45, 48, 49, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, - 48, 53, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 52, 45, - 48, 54, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 52, 45, 48, 53, 128, - 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 52, 45, 48, 52, 128, 86, 69, 82, - 84, 73, 67, 65, 76, 45, 48, 52, 45, 48, 51, 128, 86, 69, 82, 84, 73, 67, - 65, 76, 45, 48, 52, 45, 48, 50, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, - 48, 52, 45, 48, 49, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 52, 45, - 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, 54, 128, - 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, 53, 128, 86, 69, 82, - 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, 52, 128, 86, 69, 82, 84, 73, 67, - 65, 76, 45, 48, 51, 45, 48, 51, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, - 48, 51, 45, 48, 50, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, - 48, 49, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, 48, 128, - 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 54, 128, 86, 69, 82, - 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, - 65, 76, 45, 48, 50, 45, 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, - 48, 50, 45, 48, 51, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, - 48, 50, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 49, 128, - 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 48, 128, 86, 69, 82, - 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67, - 65, 76, 45, 48, 49, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, - 48, 49, 45, 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 49, 45, - 48, 51, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, 50, 128, - 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, 49, 128, 86, 69, 82, - 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, - 65, 76, 45, 48, 48, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, - 48, 48, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 48, 45, - 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 48, 45, 48, 51, 128, - 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 48, 45, 48, 50, 128, 86, 69, 82, - 84, 73, 67, 65, 76, 45, 48, 48, 45, 48, 49, 128, 86, 69, 82, 84, 73, 67, - 65, 76, 45, 48, 48, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 128, - 86, 69, 82, 83, 73, 67, 76, 69, 128, 86, 69, 82, 83, 197, 86, 69, 82, 71, - 69, 128, 86, 69, 82, 68, 73, 71, 82, 73, 83, 128, 86, 69, 82, 128, 86, - 69, 80, 128, 86, 69, 78, 68, 128, 86, 69, 76, 73, 128, 86, 69, 73, 76, - 128, 86, 69, 72, 73, 67, 76, 69, 128, 86, 69, 72, 128, 86, 69, 200, 86, - 69, 69, 128, 86, 69, 197, 86, 69, 68, 69, 128, 86, 69, 67, 84, 79, 210, - 86, 67, 128, 86, 65, 89, 65, 78, 78, 65, 128, 86, 65, 88, 128, 86, 65, - 86, 128, 86, 65, 214, 86, 65, 85, 128, 86, 65, 84, 72, 89, 128, 86, 65, - 84, 128, 86, 65, 83, 84, 78, 69, 83, 211, 86, 65, 83, 73, 83, 128, 86, - 65, 82, 89, 211, 86, 65, 82, 73, 75, 65, 128, 86, 65, 82, 73, 65, 78, 84, - 128, 86, 65, 82, 73, 65, 78, 212, 86, 65, 82, 73, 65, 128, 86, 65, 82, - 73, 193, 86, 65, 82, 69, 73, 65, 201, 86, 65, 82, 69, 73, 193, 86, 65, - 82, 65, 65, 75, 65, 78, 128, 86, 65, 80, 79, 85, 82, 83, 128, 86, 65, 80, - 128, 86, 65, 78, 69, 128, 86, 65, 77, 80, 73, 82, 69, 128, 86, 65, 77, - 65, 71, 79, 77, 85, 75, 72, 65, 128, 86, 65, 77, 65, 71, 79, 77, 85, 75, - 72, 193, 86, 65, 76, 76, 69, 89, 128, 86, 65, 75, 65, 73, 89, 65, 82, 65, - 65, 128, 86, 65, 74, 128, 86, 65, 73, 128, 86, 65, 72, 128, 86, 65, 200, - 86, 65, 65, 86, 85, 128, 86, 65, 65, 128, 86, 193, 86, 48, 52, 48, 65, - 128, 86, 48, 52, 48, 128, 86, 48, 51, 57, 128, 86, 48, 51, 56, 128, 86, - 48, 51, 55, 65, 128, 86, 48, 51, 55, 128, 86, 48, 51, 54, 128, 86, 48, - 51, 53, 128, 86, 48, 51, 52, 128, 86, 48, 51, 51, 65, 128, 86, 48, 51, - 51, 128, 86, 48, 51, 50, 128, 86, 48, 51, 49, 65, 128, 86, 48, 51, 49, - 128, 86, 48, 51, 48, 65, 128, 86, 48, 51, 48, 128, 86, 48, 50, 57, 65, - 128, 86, 48, 50, 57, 128, 86, 48, 50, 56, 65, 128, 86, 48, 50, 56, 128, - 86, 48, 50, 55, 128, 86, 48, 50, 54, 128, 86, 48, 50, 53, 128, 86, 48, - 50, 52, 128, 86, 48, 50, 51, 65, 128, 86, 48, 50, 51, 128, 86, 48, 50, - 50, 128, 86, 48, 50, 49, 128, 86, 48, 50, 48, 76, 128, 86, 48, 50, 48, - 75, 128, 86, 48, 50, 48, 74, 128, 86, 48, 50, 48, 73, 128, 86, 48, 50, - 48, 72, 128, 86, 48, 50, 48, 71, 128, 86, 48, 50, 48, 70, 128, 86, 48, - 50, 48, 69, 128, 86, 48, 50, 48, 68, 128, 86, 48, 50, 48, 67, 128, 86, - 48, 50, 48, 66, 128, 86, 48, 50, 48, 65, 128, 86, 48, 50, 48, 128, 86, - 48, 49, 57, 128, 86, 48, 49, 56, 128, 86, 48, 49, 55, 128, 86, 48, 49, - 54, 128, 86, 48, 49, 53, 128, 86, 48, 49, 52, 128, 86, 48, 49, 51, 128, - 86, 48, 49, 50, 66, 128, 86, 48, 49, 50, 65, 128, 86, 48, 49, 50, 128, - 86, 48, 49, 49, 67, 128, 86, 48, 49, 49, 66, 128, 86, 48, 49, 49, 65, - 128, 86, 48, 49, 49, 128, 86, 48, 49, 48, 128, 86, 48, 48, 57, 128, 86, - 48, 48, 56, 128, 86, 48, 48, 55, 66, 128, 86, 48, 48, 55, 65, 128, 86, - 48, 48, 55, 128, 86, 48, 48, 54, 128, 86, 48, 48, 53, 128, 86, 48, 48, - 52, 128, 86, 48, 48, 51, 128, 86, 48, 48, 50, 65, 128, 86, 48, 48, 50, - 128, 86, 48, 48, 49, 73, 128, 86, 48, 48, 49, 72, 128, 86, 48, 48, 49, - 71, 128, 86, 48, 48, 49, 70, 128, 86, 48, 48, 49, 69, 128, 86, 48, 48, - 49, 68, 128, 86, 48, 48, 49, 67, 128, 86, 48, 48, 49, 66, 128, 86, 48, - 48, 49, 65, 128, 86, 48, 48, 49, 128, 85, 90, 85, 128, 85, 90, 72, 65, - 75, 75, 85, 128, 85, 90, 51, 128, 85, 90, 179, 85, 90, 128, 85, 89, 71, - 72, 85, 210, 85, 89, 65, 78, 78, 65, 128, 85, 89, 128, 85, 87, 85, 128, - 85, 85, 89, 65, 78, 78, 65, 128, 85, 85, 85, 85, 128, 85, 85, 85, 51, - 128, 85, 85, 85, 50, 128, 85, 85, 69, 128, 85, 84, 85, 75, 73, 128, 85, - 83, 83, 85, 51, 128, 85, 83, 83, 85, 128, 85, 83, 72, 88, 128, 85, 83, - 72, 85, 77, 88, 128, 85, 83, 72, 69, 78, 78, 65, 128, 85, 83, 72, 50, - 128, 85, 83, 72, 128, 85, 83, 200, 85, 83, 69, 196, 85, 83, 69, 45, 50, - 128, 85, 83, 69, 45, 49, 128, 85, 83, 69, 128, 85, 83, 197, 85, 82, 85, - 218, 85, 82, 85, 83, 128, 85, 82, 85, 68, 65, 128, 85, 82, 85, 68, 193, - 85, 82, 85, 128, 85, 82, 213, 85, 82, 78, 128, 85, 82, 73, 78, 69, 128, - 85, 82, 73, 51, 128, 85, 82, 73, 128, 85, 82, 65, 78, 85, 83, 128, 85, - 82, 65, 128, 85, 82, 52, 128, 85, 82, 50, 128, 85, 82, 178, 85, 80, 87, - 65, 82, 68, 83, 128, 85, 80, 87, 65, 82, 68, 211, 85, 80, 87, 65, 82, 68, - 128, 85, 80, 87, 65, 82, 196, 85, 80, 84, 85, 82, 78, 128, 85, 80, 83, - 73, 76, 79, 78, 128, 85, 80, 83, 73, 76, 79, 206, 85, 80, 83, 73, 68, 69, - 45, 68, 79, 87, 206, 85, 80, 82, 73, 71, 72, 212, 85, 80, 80, 69, 82, - 128, 85, 80, 65, 68, 72, 77, 65, 78, 73, 89, 65, 128, 85, 80, 45, 80, 79, - 73, 78, 84, 73, 78, 199, 85, 79, 78, 128, 85, 79, 71, 128, 85, 78, 78, - 128, 85, 78, 77, 65, 82, 82, 73, 69, 196, 85, 78, 75, 78, 79, 87, 78, - 128, 85, 78, 75, 128, 85, 78, 73, 86, 69, 82, 83, 65, 204, 85, 78, 73, - 84, 89, 128, 85, 78, 73, 84, 69, 196, 85, 78, 73, 84, 128, 85, 78, 73, - 212, 85, 78, 73, 79, 78, 128, 85, 78, 73, 79, 206, 85, 78, 73, 70, 79, - 82, 77, 128, 85, 78, 73, 70, 73, 69, 196, 85, 78, 73, 67, 79, 82, 206, - 85, 78, 69, 86, 69, 206, 85, 78, 68, 207, 85, 78, 68, 69, 82, 84, 73, 69, - 128, 85, 78, 68, 69, 82, 76, 73, 78, 197, 85, 78, 68, 69, 82, 68, 79, 84, - 128, 85, 78, 68, 69, 82, 66, 65, 82, 128, 85, 78, 68, 69, 82, 128, 85, - 78, 68, 69, 210, 85, 78, 67, 73, 193, 85, 78, 67, 69, 82, 84, 65, 73, 78, - 84, 217, 85, 78, 66, 76, 69, 78, 68, 69, 196, 85, 78, 65, 83, 80, 73, 82, - 65, 84, 69, 68, 128, 85, 78, 65, 80, 128, 85, 78, 65, 77, 85, 83, 69, - 196, 85, 78, 65, 128, 85, 206, 85, 77, 85, 77, 128, 85, 77, 85, 205, 85, - 77, 66, 82, 69, 76, 76, 65, 128, 85, 77, 66, 82, 69, 76, 76, 193, 85, 77, - 66, 73, 78, 128, 85, 75, 85, 128, 85, 75, 82, 65, 73, 78, 73, 65, 206, - 85, 75, 65, 82, 65, 128, 85, 75, 65, 82, 193, 85, 75, 128, 85, 73, 90, - 128, 85, 73, 88, 128, 85, 73, 85, 90, 128, 85, 73, 85, 88, 128, 85, 73, - 85, 81, 128, 85, 73, 85, 67, 128, 85, 73, 81, 128, 85, 73, 76, 76, 69, - 65, 78, 78, 128, 85, 73, 71, 72, 85, 210, 85, 73, 67, 128, 85, 72, 68, - 128, 85, 71, 65, 82, 73, 84, 73, 195, 85, 69, 90, 128, 85, 69, 89, 128, - 85, 69, 88, 128, 85, 69, 78, 128, 85, 69, 73, 128, 85, 69, 69, 128, 85, - 69, 67, 128, 85, 69, 65, 128, 85, 68, 85, 71, 128, 85, 68, 65, 84, 84, - 65, 128, 85, 68, 65, 84, 84, 193, 85, 68, 65, 82, 75, 65, 128, 85, 68, - 65, 65, 84, 128, 85, 68, 128, 85, 196, 85, 66, 85, 70, 73, 76, 73, 128, - 85, 66, 72, 65, 89, 65, 84, 207, 85, 66, 65, 68, 65, 77, 65, 128, 85, 66, - 128, 85, 65, 84, 72, 128, 85, 65, 78, 71, 128, 85, 65, 128, 85, 178, 85, - 48, 52, 50, 128, 85, 48, 52, 49, 128, 85, 48, 52, 48, 128, 85, 48, 51, - 57, 128, 85, 48, 51, 56, 128, 85, 48, 51, 55, 128, 85, 48, 51, 54, 128, - 85, 48, 51, 53, 128, 85, 48, 51, 52, 128, 85, 48, 51, 51, 128, 85, 48, - 51, 50, 65, 128, 85, 48, 51, 50, 128, 85, 48, 51, 49, 128, 85, 48, 51, - 48, 128, 85, 48, 50, 57, 65, 128, 85, 48, 50, 57, 128, 85, 48, 50, 56, - 128, 85, 48, 50, 55, 128, 85, 48, 50, 54, 128, 85, 48, 50, 53, 128, 85, - 48, 50, 52, 128, 85, 48, 50, 51, 65, 128, 85, 48, 50, 51, 128, 85, 48, - 50, 50, 128, 85, 48, 50, 49, 128, 85, 48, 50, 48, 128, 85, 48, 49, 57, - 128, 85, 48, 49, 56, 128, 85, 48, 49, 55, 128, 85, 48, 49, 54, 128, 85, - 48, 49, 53, 128, 85, 48, 49, 52, 128, 85, 48, 49, 51, 128, 85, 48, 49, - 50, 128, 85, 48, 49, 49, 128, 85, 48, 49, 48, 128, 85, 48, 48, 57, 128, - 85, 48, 48, 56, 128, 85, 48, 48, 55, 128, 85, 48, 48, 54, 66, 128, 85, - 48, 48, 54, 65, 128, 85, 48, 48, 54, 128, 85, 48, 48, 53, 128, 85, 48, - 48, 52, 128, 85, 48, 48, 51, 128, 85, 48, 48, 50, 128, 85, 48, 48, 49, - 128, 85, 45, 83, 72, 65, 80, 69, 196, 85, 45, 73, 45, 73, 128, 85, 45, - 69, 79, 45, 69, 85, 128, 85, 45, 66, 82, 74, 71, 85, 128, 85, 45, 53, - 128, 84, 90, 85, 128, 84, 90, 79, 65, 128, 84, 90, 79, 128, 84, 90, 73, - 210, 84, 90, 73, 128, 84, 90, 69, 69, 128, 84, 90, 69, 128, 84, 90, 65, - 65, 128, 84, 90, 65, 128, 84, 90, 128, 84, 89, 210, 84, 89, 80, 69, 45, - 183, 84, 89, 80, 69, 45, 54, 128, 84, 89, 80, 69, 45, 182, 84, 89, 80, - 69, 45, 53, 128, 84, 89, 80, 69, 45, 181, 84, 89, 80, 69, 45, 52, 128, - 84, 89, 80, 69, 45, 180, 84, 89, 80, 69, 45, 51, 128, 84, 89, 80, 69, 45, - 179, 84, 89, 80, 69, 45, 178, 84, 89, 80, 69, 45, 49, 45, 50, 128, 84, - 89, 80, 69, 45, 177, 84, 89, 80, 197, 84, 89, 79, 128, 84, 89, 73, 128, - 84, 89, 69, 128, 84, 89, 65, 89, 128, 84, 89, 65, 128, 84, 88, 87, 86, - 128, 84, 88, 87, 214, 84, 88, 72, 69, 69, 202, 84, 88, 65, 128, 84, 87, - 79, 79, 128, 84, 87, 79, 45, 87, 65, 217, 84, 87, 79, 45, 84, 72, 73, 82, - 84, 89, 128, 84, 87, 79, 45, 76, 73, 78, 197, 84, 87, 79, 45, 72, 69, 65, - 68, 69, 196, 84, 87, 79, 45, 69, 205, 84, 87, 79, 45, 67, 73, 82, 67, 76, - 197, 84, 87, 73, 83, 84, 73, 78, 71, 128, 84, 87, 73, 83, 84, 69, 196, - 84, 87, 73, 73, 128, 84, 87, 73, 128, 84, 87, 69, 78, 84, 89, 45, 84, 87, - 79, 128, 84, 87, 69, 78, 84, 89, 45, 84, 87, 207, 84, 87, 69, 78, 84, 89, - 45, 84, 72, 82, 69, 69, 128, 84, 87, 69, 78, 84, 89, 45, 83, 73, 88, 128, - 84, 87, 69, 78, 84, 89, 45, 83, 69, 86, 69, 78, 128, 84, 87, 69, 78, 84, - 89, 45, 79, 78, 69, 128, 84, 87, 69, 78, 84, 89, 45, 78, 73, 78, 69, 128, - 84, 87, 69, 78, 84, 89, 45, 70, 79, 85, 82, 128, 84, 87, 69, 78, 84, 89, - 45, 70, 73, 86, 69, 128, 84, 87, 69, 78, 84, 89, 45, 70, 73, 86, 197, 84, - 87, 69, 78, 84, 89, 45, 69, 73, 71, 72, 84, 200, 84, 87, 69, 78, 84, 89, - 45, 69, 73, 71, 72, 84, 128, 84, 87, 69, 78, 84, 89, 128, 84, 87, 69, 78, - 84, 217, 84, 87, 69, 78, 84, 73, 69, 84, 72, 83, 128, 84, 87, 69, 78, 84, - 73, 69, 84, 72, 128, 84, 87, 69, 76, 86, 69, 45, 84, 72, 73, 82, 84, 89, - 128, 84, 87, 69, 76, 86, 69, 128, 84, 87, 69, 76, 86, 197, 84, 87, 69, - 76, 70, 84, 72, 83, 128, 84, 87, 69, 76, 70, 84, 72, 128, 84, 87, 69, - 128, 84, 87, 65, 65, 128, 84, 87, 65, 128, 84, 86, 82, 73, 68, 79, 128, - 84, 86, 73, 77, 65, 68, 85, 210, 84, 85, 88, 69, 68, 79, 128, 84, 85, 88, - 128, 84, 85, 85, 77, 85, 128, 84, 85, 85, 128, 84, 85, 84, 84, 89, 128, - 84, 85, 84, 69, 89, 65, 83, 65, 84, 128, 84, 85, 84, 128, 84, 85, 82, 88, - 128, 84, 85, 82, 85, 128, 84, 85, 82, 84, 76, 69, 128, 84, 85, 82, 79, - 50, 128, 84, 85, 82, 78, 83, 84, 73, 76, 69, 128, 84, 85, 82, 206, 84, - 85, 82, 75, 73, 83, 200, 84, 85, 82, 75, 73, 195, 84, 85, 82, 75, 69, 89, - 128, 84, 85, 82, 66, 65, 78, 128, 84, 85, 82, 128, 84, 85, 210, 84, 85, - 80, 78, 73, 128, 84, 85, 80, 128, 84, 85, 79, 88, 128, 84, 85, 79, 84, - 128, 84, 85, 79, 80, 128, 84, 85, 79, 128, 84, 85, 78, 78, 89, 128, 84, - 85, 77, 69, 84, 69, 83, 128, 84, 85, 77, 66, 76, 69, 210, 84, 85, 77, 65, - 69, 128, 84, 85, 77, 128, 84, 85, 205, 84, 85, 76, 73, 80, 128, 84, 85, - 75, 87, 69, 78, 84, 73, 83, 128, 84, 85, 75, 128, 84, 85, 71, 82, 73, - 203, 84, 85, 71, 50, 128, 84, 85, 71, 178, 84, 85, 66, 69, 128, 84, 85, - 66, 128, 84, 85, 65, 82, 69, 199, 84, 85, 65, 69, 80, 128, 84, 85, 65, - 69, 128, 84, 85, 45, 84, 79, 128, 84, 85, 45, 52, 128, 84, 85, 45, 51, - 128, 84, 85, 45, 50, 128, 84, 85, 45, 49, 128, 84, 213, 84, 84, 85, 85, - 128, 84, 84, 85, 68, 68, 65, 71, 128, 84, 84, 85, 68, 68, 65, 65, 71, - 128, 84, 84, 85, 128, 84, 84, 84, 72, 65, 128, 84, 84, 84, 65, 128, 84, - 84, 83, 85, 128, 84, 84, 83, 79, 128, 84, 84, 83, 73, 128, 84, 84, 83, - 69, 69, 128, 84, 84, 83, 69, 128, 84, 84, 83, 65, 128, 84, 84, 79, 79, - 128, 84, 84, 73, 73, 128, 84, 84, 73, 128, 84, 84, 72, 87, 69, 128, 84, - 84, 72, 85, 128, 84, 84, 72, 79, 79, 128, 84, 84, 72, 79, 128, 84, 84, - 72, 73, 128, 84, 84, 72, 69, 69, 128, 84, 84, 72, 69, 128, 84, 84, 72, - 65, 65, 128, 84, 84, 72, 128, 84, 84, 69, 72, 69, 72, 128, 84, 84, 69, - 72, 69, 200, 84, 84, 69, 72, 128, 84, 84, 69, 200, 84, 84, 69, 69, 128, - 84, 84, 65, 89, 65, 78, 78, 65, 128, 84, 84, 65, 85, 128, 84, 84, 65, 73, - 128, 84, 84, 65, 65, 128, 84, 84, 50, 128, 84, 83, 87, 69, 128, 84, 83, - 87, 66, 128, 84, 83, 87, 65, 128, 84, 83, 86, 128, 84, 83, 83, 69, 128, - 84, 83, 83, 65, 128, 84, 83, 79, 214, 84, 83, 73, 85, 128, 84, 83, 72, - 85, 71, 83, 128, 84, 83, 72, 79, 79, 75, 128, 84, 83, 72, 79, 79, 203, - 84, 83, 72, 79, 79, 74, 128, 84, 83, 72, 69, 83, 128, 84, 83, 72, 69, 71, - 128, 84, 83, 72, 69, 199, 84, 83, 72, 69, 69, 74, 128, 84, 83, 72, 69, - 128, 84, 83, 72, 65, 194, 84, 83, 72, 65, 128, 84, 83, 69, 82, 69, 128, - 84, 83, 69, 69, 66, 128, 84, 83, 65, 84, 193, 84, 83, 65, 68, 73, 128, - 84, 83, 65, 68, 201, 84, 83, 65, 66, 128, 84, 83, 65, 65, 68, 73, 89, - 128, 84, 83, 65, 65, 128, 84, 83, 193, 84, 82, 89, 66, 76, 73, 79, 206, - 84, 82, 89, 65, 83, 79, 83, 84, 82, 69, 76, 78, 65, 89, 65, 128, 84, 82, - 89, 65, 83, 79, 80, 79, 86, 79, 68, 78, 65, 89, 65, 128, 84, 82, 89, 65, - 83, 79, 71, 76, 65, 83, 78, 65, 89, 65, 128, 84, 82, 89, 65, 83, 75, 65, - 128, 84, 82, 85, 84, 72, 128, 84, 82, 85, 78, 75, 128, 84, 82, 85, 78, - 67, 65, 84, 69, 196, 84, 82, 85, 77, 80, 69, 84, 128, 84, 82, 85, 77, 80, - 45, 57, 128, 84, 82, 85, 77, 80, 45, 56, 128, 84, 82, 85, 77, 80, 45, 55, - 128, 84, 82, 85, 77, 80, 45, 54, 128, 84, 82, 85, 77, 80, 45, 53, 128, - 84, 82, 85, 77, 80, 45, 52, 128, 84, 82, 85, 77, 80, 45, 51, 128, 84, 82, - 85, 77, 80, 45, 50, 49, 128, 84, 82, 85, 77, 80, 45, 50, 48, 128, 84, 82, - 85, 77, 80, 45, 50, 128, 84, 82, 85, 77, 80, 45, 49, 57, 128, 84, 82, 85, - 77, 80, 45, 49, 56, 128, 84, 82, 85, 77, 80, 45, 49, 55, 128, 84, 82, 85, - 77, 80, 45, 49, 54, 128, 84, 82, 85, 77, 80, 45, 49, 53, 128, 84, 82, 85, - 77, 80, 45, 49, 52, 128, 84, 82, 85, 77, 80, 45, 49, 51, 128, 84, 82, 85, - 77, 80, 45, 49, 50, 128, 84, 82, 85, 77, 80, 45, 49, 49, 128, 84, 82, 85, - 77, 80, 45, 49, 48, 128, 84, 82, 85, 77, 80, 45, 49, 128, 84, 82, 85, 69, - 128, 84, 82, 85, 197, 84, 82, 85, 67, 75, 128, 84, 82, 79, 80, 73, 67, - 65, 204, 84, 82, 79, 80, 72, 89, 128, 84, 82, 79, 77, 73, 75, 79, 83, 89, - 78, 65, 71, 77, 65, 128, 84, 82, 79, 77, 73, 75, 79, 80, 83, 73, 70, 73, - 83, 84, 79, 78, 128, 84, 82, 79, 77, 73, 75, 79, 80, 65, 82, 65, 75, 65, - 76, 69, 83, 77, 65, 128, 84, 82, 79, 77, 73, 75, 79, 78, 128, 84, 82, 79, - 77, 73, 75, 79, 206, 84, 82, 79, 77, 73, 75, 79, 76, 89, 71, 73, 83, 77, - 65, 128, 84, 82, 79, 76, 76, 69, 89, 66, 85, 83, 128, 84, 82, 79, 76, 76, - 69, 89, 128, 84, 82, 79, 76, 76, 128, 84, 82, 79, 75, 85, 84, 65, 83, 84, - 201, 84, 82, 79, 69, 90, 69, 78, 73, 65, 206, 84, 82, 73, 85, 77, 80, 72, - 128, 84, 82, 73, 84, 79, 211, 84, 82, 73, 84, 73, 77, 79, 82, 73, 79, 78, - 128, 84, 82, 73, 83, 73, 77, 79, 85, 128, 84, 82, 73, 83, 69, 77, 69, - 128, 84, 82, 73, 80, 79, 68, 128, 84, 82, 73, 80, 76, 73, 128, 84, 82, - 73, 80, 76, 69, 128, 84, 82, 73, 80, 76, 197, 84, 82, 73, 79, 206, 84, - 82, 73, 76, 76, 73, 79, 78, 83, 128, 84, 82, 73, 76, 76, 128, 84, 82, 73, - 73, 83, 65, 80, 128, 84, 82, 73, 71, 82, 65, 77, 77, 79, 211, 84, 82, 73, - 71, 82, 65, 205, 84, 82, 73, 71, 79, 82, 71, 79, 78, 128, 84, 82, 73, 70, - 79, 78, 73, 65, 83, 128, 84, 82, 73, 70, 79, 76, 73, 65, 84, 197, 84, 82, - 73, 68, 69, 78, 84, 128, 84, 82, 73, 68, 69, 78, 212, 84, 82, 73, 67, 79, - 76, 79, 78, 128, 84, 82, 73, 65, 78, 71, 85, 76, 65, 210, 84, 82, 73, 65, - 78, 71, 76, 69, 45, 82, 79, 85, 78, 196, 84, 82, 73, 65, 78, 71, 76, 69, - 45, 72, 69, 65, 68, 69, 196, 84, 82, 73, 65, 78, 71, 76, 69, 128, 84, 82, - 73, 65, 78, 71, 76, 197, 84, 82, 73, 65, 128, 84, 82, 73, 128, 84, 82, - 69, 83, 86, 69, 84, 76, 89, 128, 84, 82, 69, 83, 86, 69, 84, 76, 79, 128, - 84, 82, 69, 83, 86, 69, 84, 76, 65, 89, 65, 128, 84, 82, 69, 83, 73, 76, - 76, 79, 128, 84, 82, 69, 78, 68, 128, 84, 82, 69, 78, 196, 84, 82, 69, - 77, 79, 76, 79, 45, 51, 128, 84, 82, 69, 77, 79, 76, 79, 45, 50, 128, 84, - 82, 69, 77, 79, 76, 79, 45, 49, 128, 84, 82, 69, 69, 128, 84, 82, 69, - 197, 84, 82, 69, 68, 69, 67, 73, 76, 69, 128, 84, 82, 69, 65, 68, 73, 78, - 71, 128, 84, 82, 65, 89, 128, 84, 82, 65, 86, 69, 76, 45, 87, 65, 76, 76, - 80, 76, 65, 78, 197, 84, 82, 65, 86, 69, 76, 45, 70, 76, 79, 79, 82, 80, - 76, 65, 78, 197, 84, 82, 65, 80, 69, 90, 73, 85, 77, 128, 84, 82, 65, 80, - 128, 84, 82, 65, 78, 83, 86, 69, 82, 83, 65, 204, 84, 82, 65, 78, 83, 80, - 79, 83, 73, 84, 73, 79, 206, 84, 82, 65, 78, 83, 80, 76, 85, 84, 79, 128, - 84, 82, 65, 78, 83, 77, 73, 212, 84, 82, 65, 78, 83, 77, 73, 83, 83, 73, - 79, 78, 128, 84, 82, 65, 78, 83, 77, 73, 83, 83, 73, 79, 206, 84, 82, 65, - 77, 87, 65, 89, 128, 84, 82, 65, 77, 128, 84, 82, 65, 205, 84, 82, 65, - 73, 78, 128, 84, 82, 65, 73, 206, 84, 82, 65, 73, 76, 73, 78, 199, 84, - 82, 65, 70, 70, 73, 67, 128, 84, 82, 65, 70, 70, 73, 195, 84, 82, 65, 68, - 73, 84, 73, 79, 78, 65, 204, 84, 82, 65, 68, 197, 84, 82, 65, 67, 84, 79, - 82, 128, 84, 82, 65, 67, 75, 66, 65, 76, 76, 128, 84, 82, 65, 67, 75, - 128, 84, 82, 65, 128, 84, 82, 128, 84, 79, 88, 128, 84, 79, 87, 69, 82, - 128, 84, 79, 87, 65, 82, 68, 211, 84, 79, 86, 128, 84, 79, 85, 82, 78, - 79, 73, 211, 84, 79, 85, 67, 72, 84, 79, 78, 197, 84, 79, 85, 67, 72, 73, - 78, 199, 84, 79, 85, 67, 72, 69, 211, 84, 79, 85, 67, 200, 84, 79, 84, - 207, 84, 79, 84, 65, 204, 84, 79, 84, 128, 84, 79, 83, 128, 84, 79, 82, - 84, 79, 73, 83, 197, 84, 79, 82, 83, 79, 45, 87, 65, 76, 76, 80, 76, 65, - 78, 197, 84, 79, 82, 83, 79, 45, 70, 76, 79, 79, 82, 80, 76, 65, 78, 197, - 84, 79, 82, 83, 79, 128, 84, 79, 82, 78, 65, 68, 79, 128, 84, 79, 82, 67, - 85, 76, 85, 83, 128, 84, 79, 82, 67, 85, 76, 85, 211, 84, 79, 82, 67, 72, - 128, 84, 79, 81, 128, 84, 79, 80, 66, 65, 82, 128, 84, 79, 80, 45, 76, - 73, 71, 72, 84, 69, 196, 84, 79, 80, 128, 84, 79, 208, 84, 79, 79, 84, - 72, 66, 82, 85, 83, 72, 128, 84, 79, 79, 84, 72, 128, 84, 79, 79, 78, - 128, 84, 79, 79, 76, 66, 79, 88, 128, 84, 79, 78, 79, 83, 128, 84, 79, - 78, 71, 85, 69, 128, 84, 79, 78, 71, 85, 197, 84, 79, 78, 71, 128, 84, - 79, 78, 69, 45, 86, 128, 84, 79, 78, 69, 45, 83, 128, 84, 79, 78, 69, 45, - 77, 128, 84, 79, 78, 69, 45, 74, 128, 84, 79, 78, 69, 45, 71, 128, 84, - 79, 78, 69, 45, 68, 128, 84, 79, 78, 69, 45, 66, 128, 84, 79, 78, 69, 45, - 56, 128, 84, 79, 78, 69, 45, 55, 128, 84, 79, 78, 69, 45, 54, 128, 84, - 79, 78, 69, 45, 53, 128, 84, 79, 78, 69, 45, 52, 128, 84, 79, 78, 69, 45, - 51, 128, 84, 79, 78, 69, 45, 50, 128, 84, 79, 78, 69, 45, 49, 128, 84, - 79, 78, 69, 128, 84, 79, 78, 65, 204, 84, 79, 77, 80, 73, 128, 84, 79, - 77, 65, 84, 79, 128, 84, 79, 76, 79, 78, 71, 128, 84, 79, 75, 89, 207, - 84, 79, 73, 76, 69, 84, 128, 84, 79, 71, 69, 84, 72, 69, 82, 128, 84, 79, - 68, 207, 84, 79, 67, 72, 75, 65, 128, 84, 79, 65, 78, 68, 65, 75, 72, 73, - 65, 84, 128, 84, 79, 65, 128, 84, 79, 45, 82, 65, 128, 84, 79, 45, 54, - 128, 84, 79, 45, 53, 128, 84, 79, 45, 52, 128, 84, 79, 45, 51, 128, 84, - 79, 45, 50, 128, 84, 79, 45, 49, 128, 84, 78, 128, 84, 76, 86, 128, 84, - 76, 85, 128, 84, 76, 73, 128, 84, 76, 72, 89, 65, 128, 84, 76, 72, 87, - 69, 128, 84, 76, 72, 85, 128, 84, 76, 72, 79, 79, 128, 84, 76, 72, 79, - 128, 84, 76, 72, 73, 128, 84, 76, 72, 69, 69, 128, 84, 76, 72, 69, 128, - 84, 76, 72, 65, 128, 84, 76, 69, 69, 128, 84, 76, 65, 128, 84, 74, 69, - 128, 84, 73, 88, 128, 84, 73, 87, 82, 128, 84, 73, 87, 78, 128, 84, 73, - 87, 65, 218, 84, 73, 84, 85, 65, 69, 80, 128, 84, 73, 84, 76, 79, 128, - 84, 73, 84, 76, 207, 84, 73, 84, 193, 84, 73, 84, 128, 84, 73, 82, 89, - 65, 75, 128, 84, 73, 82, 84, 193, 84, 73, 82, 79, 78, 73, 65, 206, 84, - 73, 82, 72, 85, 84, 193, 84, 73, 82, 69, 196, 84, 73, 82, 128, 84, 73, - 210, 84, 73, 80, 80, 73, 128, 84, 73, 80, 69, 72, 65, 128, 84, 73, 80, - 128, 84, 73, 208, 84, 73, 78, 89, 128, 84, 73, 78, 217, 84, 73, 78, 78, - 69, 128, 84, 73, 78, 67, 84, 85, 82, 69, 128, 84, 73, 78, 65, 71, 77, 65, - 128, 84, 73, 77, 69, 83, 128, 84, 73, 77, 69, 210, 84, 73, 77, 69, 128, - 84, 73, 76, 84, 73, 78, 71, 128, 84, 73, 76, 84, 73, 78, 199, 84, 73, 76, - 84, 128, 84, 73, 76, 69, 83, 128, 84, 73, 76, 68, 69, 128, 84, 73, 76, - 68, 197, 84, 73, 76, 128, 84, 73, 204, 84, 73, 75, 72, 89, 128, 84, 73, - 75, 72, 65, 89, 65, 128, 84, 73, 75, 72, 65, 89, 193, 84, 73, 75, 69, 85, - 84, 45, 84, 72, 73, 69, 85, 84, 72, 128, 84, 73, 75, 69, 85, 84, 45, 83, - 73, 79, 83, 45, 75, 73, 89, 69, 79, 75, 128, 84, 73, 75, 69, 85, 84, 45, - 83, 73, 79, 83, 128, 84, 73, 75, 69, 85, 84, 45, 82, 73, 69, 85, 76, 128, - 84, 73, 75, 69, 85, 84, 45, 80, 73, 69, 85, 80, 128, 84, 73, 75, 69, 85, - 84, 45, 77, 73, 69, 85, 77, 128, 84, 73, 75, 69, 85, 84, 45, 75, 73, 89, - 69, 79, 75, 128, 84, 73, 75, 69, 85, 84, 45, 67, 73, 69, 85, 67, 128, 84, - 73, 75, 69, 85, 84, 45, 67, 72, 73, 69, 85, 67, 72, 128, 84, 73, 75, 69, - 85, 84, 128, 84, 73, 75, 69, 85, 212, 84, 73, 71, 72, 84, 76, 89, 45, 67, - 76, 79, 83, 69, 196, 84, 73, 71, 72, 212, 84, 73, 71, 69, 82, 128, 84, - 73, 71, 69, 210, 84, 73, 70, 73, 78, 65, 71, 200, 84, 73, 69, 88, 128, - 84, 73, 69, 80, 128, 84, 73, 197, 84, 73, 67, 75, 69, 84, 83, 128, 84, - 73, 67, 75, 69, 84, 128, 84, 73, 67, 75, 128, 84, 73, 67, 203, 84, 73, - 65, 82, 65, 128, 84, 73, 50, 128, 84, 73, 45, 55, 128, 84, 73, 45, 54, - 128, 84, 73, 45, 53, 128, 84, 73, 45, 52, 128, 84, 73, 45, 51, 128, 84, - 73, 45, 50, 128, 84, 73, 45, 49, 128, 84, 72, 90, 128, 84, 72, 89, 79, - 79, 205, 84, 72, 87, 79, 79, 128, 84, 72, 87, 79, 128, 84, 72, 87, 73, - 73, 128, 84, 72, 87, 73, 128, 84, 72, 87, 69, 69, 128, 84, 72, 87, 65, - 65, 128, 84, 72, 87, 65, 128, 84, 72, 85, 82, 211, 84, 72, 85, 82, 73, - 83, 65, 218, 84, 72, 85, 78, 71, 128, 84, 72, 85, 78, 68, 69, 82, 83, 84, - 79, 82, 77, 128, 84, 72, 85, 78, 68, 69, 82, 128, 84, 72, 85, 78, 68, 69, + 79, 87, 206, 80, 65, 72, 65, 87, 200, 67, 72, 79, 83, 69, 79, 78, 199, + 66, 65, 76, 73, 78, 69, 83, 197, 70, 73, 86, 69, 128, 72, 65, 76, 70, 87, + 73, 68, 84, 200, 72, 65, 78, 68, 45, 70, 73, 83, 212, 77, 69, 82, 79, 73, + 84, 73, 195, 84, 85, 82, 78, 69, 196, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 73, 195, 75, 65, 128, 76, 73, 71, 72, 212, 73, 68, 69, 79, 71, 82, 65, + 205, 80, 72, 65, 83, 69, 45, 196, 84, 79, 128, 65, 76, 67, 72, 69, 77, + 73, 67, 65, 204, 78, 69, 85, 77, 197, 66, 82, 65, 72, 77, 201, 84, 79, + 78, 197, 66, 65, 82, 128, 82, 65, 128, 83, 73, 78, 72, 65, 76, 193, 78, + 85, 77, 69, 82, 73, 195, 80, 65, 128, 83, 73, 88, 128, 89, 65, 128, 69, + 73, 71, 72, 84, 128, 76, 65, 128, 77, 65, 128, 83, 69, 86, 69, 78, 128, + 84, 72, 85, 77, 194, 72, 85, 78, 71, 65, 82, 73, 65, 206, 78, 73, 78, 69, + 128, 76, 79, 78, 199, 78, 65, 128, 66, 65, 82, 194, 72, 65, 200, 82, 73, + 71, 72, 84, 128, 66, 76, 79, 67, 203, 68, 79, 84, 211, 78, 79, 82, 84, + 200, 83, 65, 128, 84, 72, 79, 85, 83, 65, 78, 68, 128, 84, 65, 128, 90, + 90, 89, 88, 128, 90, 90, 89, 84, 128, 90, 90, 89, 82, 88, 128, 90, 90, + 89, 82, 128, 90, 90, 89, 80, 128, 90, 90, 89, 65, 128, 90, 90, 89, 128, + 90, 90, 85, 88, 128, 90, 90, 85, 82, 88, 128, 90, 90, 85, 82, 128, 90, + 90, 85, 80, 128, 90, 90, 85, 128, 90, 90, 83, 89, 65, 128, 90, 90, 83, + 65, 128, 90, 90, 79, 88, 128, 90, 90, 79, 80, 128, 90, 90, 79, 128, 90, + 90, 73, 88, 128, 90, 90, 73, 84, 128, 90, 90, 73, 80, 128, 90, 90, 73, + 69, 88, 128, 90, 90, 73, 69, 84, 128, 90, 90, 73, 69, 80, 128, 90, 90, + 73, 69, 128, 90, 90, 73, 128, 90, 90, 69, 88, 128, 90, 90, 69, 80, 128, + 90, 90, 69, 69, 128, 90, 90, 69, 128, 90, 90, 65, 88, 128, 90, 90, 65, + 84, 128, 90, 90, 65, 80, 128, 90, 90, 65, 65, 128, 90, 90, 65, 128, 90, + 89, 71, 79, 83, 128, 90, 87, 83, 80, 128, 90, 87, 78, 74, 128, 90, 87, + 78, 66, 83, 80, 128, 90, 87, 74, 128, 90, 87, 202, 90, 87, 65, 82, 65, + 75, 65, 89, 128, 90, 87, 65, 128, 90, 85, 84, 128, 90, 85, 79, 88, 128, + 90, 85, 79, 80, 128, 90, 85, 79, 128, 90, 85, 77, 128, 90, 85, 66, 85, + 82, 128, 90, 85, 53, 128, 90, 85, 181, 90, 213, 90, 83, 72, 65, 128, 90, + 82, 65, 128, 90, 81, 65, 80, 72, 193, 90, 79, 84, 128, 90, 79, 79, 128, + 90, 79, 77, 66, 73, 69, 128, 90, 79, 65, 128, 90, 77, 69, 89, 84, 83, 65, + 128, 90, 76, 65, 77, 193, 90, 76, 65, 128, 90, 76, 193, 90, 74, 69, 128, + 90, 73, 90, 50, 128, 90, 73, 81, 65, 65, 128, 90, 73, 80, 80, 69, 82, 45, + 77, 79, 85, 84, 200, 90, 73, 78, 79, 82, 128, 90, 73, 76, 68, 69, 128, + 90, 73, 71, 90, 65, 199, 90, 73, 71, 128, 90, 73, 68, 193, 90, 73, 66, + 128, 90, 73, 194, 90, 73, 51, 128, 90, 201, 90, 72, 89, 88, 128, 90, 72, + 89, 84, 128, 90, 72, 89, 82, 88, 128, 90, 72, 89, 82, 128, 90, 72, 89, + 80, 128, 90, 72, 89, 128, 90, 72, 87, 69, 128, 90, 72, 87, 65, 128, 90, + 72, 85, 88, 128, 90, 72, 85, 84, 128, 90, 72, 85, 82, 88, 128, 90, 72, + 85, 82, 128, 90, 72, 85, 80, 128, 90, 72, 85, 79, 88, 128, 90, 72, 85, + 79, 80, 128, 90, 72, 85, 79, 128, 90, 72, 85, 128, 90, 72, 79, 88, 128, + 90, 72, 79, 84, 128, 90, 72, 79, 80, 128, 90, 72, 79, 79, 128, 90, 72, + 79, 73, 128, 90, 72, 79, 128, 90, 72, 73, 86, 69, 84, 69, 128, 90, 72, + 73, 76, 128, 90, 72, 73, 128, 90, 72, 69, 88, 128, 90, 72, 69, 84, 128, + 90, 72, 69, 80, 128, 90, 72, 69, 69, 128, 90, 72, 69, 128, 90, 72, 197, + 90, 72, 65, 89, 73, 78, 128, 90, 72, 65, 88, 128, 90, 72, 65, 84, 128, + 90, 72, 65, 82, 128, 90, 72, 65, 80, 128, 90, 72, 65, 73, 78, 128, 90, + 72, 65, 65, 128, 90, 72, 65, 128, 90, 72, 128, 90, 69, 86, 79, 75, 128, + 90, 69, 85, 83, 128, 90, 69, 84, 65, 128, 90, 69, 82, 79, 128, 90, 69, + 82, 207, 90, 69, 78, 128, 90, 69, 77, 76, 89, 65, 128, 90, 69, 77, 76, + 74, 65, 128, 90, 69, 76, 79, 128, 90, 69, 66, 82, 193, 90, 69, 50, 128, + 90, 197, 90, 65, 89, 78, 128, 90, 65, 89, 73, 78, 45, 89, 79, 68, 72, + 128, 90, 65, 89, 73, 78, 128, 90, 65, 89, 73, 206, 90, 65, 86, 73, 89, + 65, 78, 73, 128, 90, 65, 84, 65, 128, 90, 65, 82, 81, 65, 128, 90, 65, + 82, 76, 128, 90, 65, 81, 69, 198, 90, 65, 80, 89, 65, 84, 89, 77, 73, + 128, 90, 65, 80, 89, 65, 84, 79, 89, 128, 90, 65, 80, 89, 65, 84, 79, + 217, 90, 65, 80, 89, 65, 84, 65, 89, 65, 128, 90, 65, 78, 79, 90, 72, 69, + 75, 128, 90, 65, 78, 65, 66, 65, 90, 65, 210, 90, 65, 77, 88, 128, 90, + 65, 76, 128, 90, 65, 204, 90, 65, 75, 82, 89, 84, 79, 69, 128, 90, 65, + 75, 82, 89, 84, 65, 89, 65, 128, 90, 65, 75, 82, 89, 84, 65, 89, 193, 90, + 65, 73, 78, 128, 90, 65, 73, 206, 90, 65, 73, 128, 90, 65, 72, 128, 90, + 65, 200, 90, 65, 71, 128, 90, 65, 69, 70, 128, 90, 65, 68, 69, 82, 90, + 72, 75, 65, 128, 90, 65, 55, 128, 90, 193, 90, 48, 49, 54, 72, 128, 90, + 48, 49, 54, 71, 128, 90, 48, 49, 54, 70, 128, 90, 48, 49, 54, 69, 128, + 90, 48, 49, 54, 68, 128, 90, 48, 49, 54, 67, 128, 90, 48, 49, 54, 66, + 128, 90, 48, 49, 54, 65, 128, 90, 48, 49, 54, 128, 90, 48, 49, 53, 73, + 128, 90, 48, 49, 53, 72, 128, 90, 48, 49, 53, 71, 128, 90, 48, 49, 53, + 70, 128, 90, 48, 49, 53, 69, 128, 90, 48, 49, 53, 68, 128, 90, 48, 49, + 53, 67, 128, 90, 48, 49, 53, 66, 128, 90, 48, 49, 53, 65, 128, 90, 48, + 49, 53, 128, 90, 48, 49, 52, 128, 90, 48, 49, 51, 128, 90, 48, 49, 50, + 128, 90, 48, 49, 49, 128, 90, 48, 49, 48, 128, 90, 48, 48, 57, 128, 90, + 48, 48, 56, 128, 90, 48, 48, 55, 128, 90, 48, 48, 54, 128, 90, 48, 48, + 53, 65, 128, 90, 48, 48, 53, 128, 90, 48, 48, 52, 65, 128, 90, 48, 48, + 52, 128, 90, 48, 48, 51, 66, 128, 90, 48, 48, 51, 65, 128, 90, 48, 48, + 51, 128, 90, 48, 48, 50, 68, 128, 90, 48, 48, 50, 67, 128, 90, 48, 48, + 50, 66, 128, 90, 48, 48, 50, 65, 128, 90, 48, 48, 50, 128, 90, 48, 48, + 49, 128, 90, 128, 218, 89, 89, 88, 128, 89, 89, 84, 128, 89, 89, 82, 88, + 128, 89, 89, 82, 128, 89, 89, 80, 128, 89, 89, 69, 128, 89, 89, 65, 65, + 128, 89, 89, 65, 128, 89, 89, 128, 89, 87, 79, 79, 128, 89, 87, 79, 128, + 89, 87, 73, 73, 128, 89, 87, 73, 128, 89, 87, 69, 128, 89, 87, 65, 65, + 128, 89, 87, 65, 128, 89, 86, 128, 89, 85, 88, 128, 89, 85, 87, 79, 81, + 128, 89, 85, 85, 75, 65, 76, 69, 65, 80, 73, 78, 84, 85, 128, 89, 85, 85, + 128, 89, 85, 84, 128, 89, 85, 83, 128, 89, 85, 211, 89, 85, 82, 88, 128, + 89, 85, 82, 128, 89, 85, 81, 128, 89, 85, 209, 89, 85, 80, 128, 89, 85, + 79, 88, 128, 89, 85, 79, 84, 128, 89, 85, 79, 80, 128, 89, 85, 79, 77, + 128, 89, 85, 79, 128, 89, 85, 78, 128, 89, 85, 77, 128, 89, 85, 74, 128, + 89, 85, 73, 128, 89, 85, 69, 81, 128, 89, 85, 69, 128, 89, 85, 68, 72, + 128, 89, 85, 68, 200, 89, 85, 65, 78, 128, 89, 85, 65, 69, 78, 128, 89, + 85, 45, 89, 69, 79, 128, 89, 85, 45, 89, 69, 128, 89, 85, 45, 85, 128, + 89, 85, 45, 79, 128, 89, 85, 45, 73, 128, 89, 85, 45, 69, 79, 128, 89, + 85, 45, 69, 128, 89, 85, 45, 65, 69, 128, 89, 85, 45, 65, 128, 89, 85, + 45, 52, 128, 89, 85, 45, 51, 128, 89, 85, 45, 50, 128, 89, 85, 45, 49, + 128, 89, 85, 128, 89, 213, 89, 82, 89, 128, 89, 80, 83, 73, 76, 73, 128, + 89, 80, 79, 82, 82, 79, 73, 128, 89, 80, 79, 75, 82, 73, 83, 73, 83, 128, + 89, 80, 79, 75, 82, 73, 83, 73, 211, 89, 80, 79, 71, 69, 71, 82, 65, 77, + 77, 69, 78, 73, 128, 89, 79, 89, 128, 89, 79, 88, 128, 89, 79, 87, 68, + 128, 89, 79, 85, 84, 72, 70, 85, 76, 78, 69, 83, 83, 128, 89, 79, 85, 84, + 72, 70, 85, 204, 89, 79, 213, 89, 79, 84, 128, 89, 79, 212, 89, 79, 82, + 73, 128, 89, 79, 81, 128, 89, 79, 209, 89, 79, 80, 128, 89, 79, 79, 128, + 89, 79, 77, 79, 128, 89, 79, 71, 72, 128, 89, 79, 68, 128, 89, 79, 196, + 89, 79, 65, 128, 89, 79, 45, 89, 79, 128, 89, 79, 45, 89, 69, 79, 128, + 89, 79, 45, 89, 65, 69, 128, 89, 79, 45, 89, 65, 128, 89, 79, 45, 79, + 128, 89, 79, 45, 73, 128, 89, 79, 45, 69, 79, 128, 89, 79, 45, 65, 69, + 128, 89, 79, 45, 65, 128, 89, 79, 45, 54, 128, 89, 79, 45, 53, 128, 89, + 79, 45, 52, 128, 89, 79, 45, 51, 128, 89, 79, 45, 50, 128, 89, 79, 45, + 49, 128, 89, 207, 89, 73, 90, 69, 84, 128, 89, 73, 88, 128, 89, 73, 87, + 78, 128, 89, 73, 84, 128, 89, 73, 80, 128, 89, 73, 78, 71, 128, 89, 73, + 73, 128, 89, 73, 72, 128, 89, 73, 199, 89, 73, 69, 88, 128, 89, 73, 69, + 84, 128, 89, 73, 69, 80, 128, 89, 73, 69, 69, 128, 89, 73, 69, 128, 89, + 73, 68, 68, 73, 83, 200, 89, 73, 45, 85, 128, 89, 73, 128, 89, 72, 69, + 128, 89, 72, 65, 128, 89, 70, 69, 83, 73, 83, 128, 89, 70, 69, 83, 73, + 211, 89, 70, 69, 206, 89, 69, 90, 73, 68, 201, 89, 69, 89, 128, 89, 69, + 87, 128, 89, 69, 85, 88, 128, 89, 69, 85, 82, 65, 69, 128, 89, 69, 85, + 81, 128, 89, 69, 85, 77, 128, 89, 69, 85, 65, 69, 84, 128, 89, 69, 85, + 65, 69, 128, 89, 69, 84, 73, 86, 128, 89, 69, 83, 84, 85, 128, 89, 69, + 83, 73, 69, 85, 78, 71, 45, 83, 83, 65, 78, 71, 75, 73, 89, 69, 79, 75, + 128, 89, 69, 83, 73, 69, 85, 78, 71, 45, 83, 73, 79, 83, 128, 89, 69, 83, + 73, 69, 85, 78, 71, 45, 80, 65, 78, 83, 73, 79, 83, 128, 89, 69, 83, 73, + 69, 85, 78, 71, 45, 77, 73, 69, 85, 77, 128, 89, 69, 83, 73, 69, 85, 78, + 71, 45, 75, 73, 89, 69, 79, 75, 128, 89, 69, 83, 73, 69, 85, 78, 71, 45, + 75, 72, 73, 69, 85, 75, 72, 128, 89, 69, 83, 73, 69, 85, 78, 71, 45, 72, + 73, 69, 85, 72, 128, 89, 69, 83, 73, 69, 85, 78, 71, 128, 89, 69, 82, 85, + 128, 89, 69, 82, 213, 89, 69, 82, 73, 128, 89, 69, 82, 65, 200, 89, 69, + 82, 128, 89, 69, 79, 82, 73, 78, 72, 73, 69, 85, 72, 128, 89, 69, 79, 45, + 89, 65, 128, 89, 69, 79, 45, 85, 128, 89, 69, 79, 45, 79, 128, 89, 69, + 78, 73, 83, 69, 201, 89, 69, 78, 65, 80, 128, 89, 69, 78, 128, 89, 69, + 206, 89, 69, 76, 76, 79, 87, 128, 89, 69, 76, 76, 79, 215, 89, 69, 73, + 78, 128, 89, 69, 72, 128, 89, 69, 69, 71, 128, 89, 69, 69, 128, 89, 69, + 65, 210, 89, 69, 65, 128, 89, 65, 90, 90, 128, 89, 65, 90, 72, 128, 89, + 65, 90, 128, 89, 65, 89, 68, 128, 89, 65, 89, 65, 78, 78, 65, 128, 89, + 65, 89, 128, 89, 65, 87, 78, 73, 78, 199, 89, 65, 87, 78, 128, 89, 65, + 87, 128, 89, 65, 86, 128, 89, 65, 85, 128, 89, 65, 84, 84, 128, 89, 65, + 84, 73, 128, 89, 65, 84, 72, 128, 89, 65, 84, 128, 89, 65, 83, 83, 128, + 89, 65, 83, 72, 128, 89, 65, 83, 128, 89, 65, 82, 82, 128, 89, 65, 82, + 78, 128, 89, 65, 82, 128, 89, 65, 210, 89, 65, 81, 128, 89, 65, 80, 128, + 89, 65, 78, 83, 65, 89, 65, 128, 89, 65, 78, 71, 128, 89, 65, 78, 199, + 89, 65, 78, 128, 89, 65, 77, 79, 75, 128, 89, 65, 77, 65, 75, 75, 65, 78, + 128, 89, 65, 77, 128, 89, 65, 76, 128, 89, 65, 75, 72, 72, 128, 89, 65, + 75, 72, 128, 89, 65, 75, 65, 83, 72, 128, 89, 65, 75, 128, 89, 65, 74, + 85, 82, 86, 69, 68, 73, 195, 89, 65, 74, 128, 89, 65, 73, 128, 89, 65, + 72, 72, 128, 89, 65, 72, 128, 89, 65, 71, 78, 128, 89, 65, 71, 72, 72, + 128, 89, 65, 71, 72, 128, 89, 65, 71, 128, 89, 65, 70, 213, 89, 65, 70, + 128, 89, 65, 69, 77, 77, 65, 69, 128, 89, 65, 68, 72, 128, 89, 65, 68, + 68, 72, 128, 89, 65, 68, 68, 128, 89, 65, 68, 128, 89, 65, 67, 72, 128, + 89, 65, 66, 72, 128, 89, 65, 66, 128, 89, 65, 65, 82, 85, 128, 89, 65, + 65, 73, 128, 89, 65, 65, 68, 79, 128, 89, 65, 45, 89, 79, 128, 89, 65, + 45, 85, 128, 89, 65, 45, 79, 128, 89, 65, 45, 53, 128, 89, 65, 45, 52, + 128, 89, 65, 45, 51, 128, 89, 65, 45, 50, 128, 89, 65, 45, 49, 128, 89, + 48, 48, 56, 128, 89, 48, 48, 55, 128, 89, 48, 48, 54, 128, 89, 48, 48, + 53, 128, 89, 48, 48, 52, 128, 89, 48, 48, 51, 128, 89, 48, 48, 50, 128, + 89, 48, 48, 49, 65, 128, 89, 48, 48, 49, 128, 89, 45, 67, 82, 69, 197, + 88, 89, 88, 128, 88, 89, 85, 128, 88, 89, 84, 128, 88, 89, 82, 88, 128, + 88, 89, 82, 128, 88, 89, 80, 128, 88, 89, 79, 79, 74, 128, 88, 89, 79, + 79, 128, 88, 89, 79, 128, 88, 89, 73, 128, 88, 89, 69, 69, 205, 88, 89, + 69, 69, 128, 88, 89, 69, 128, 88, 89, 65, 65, 128, 88, 89, 65, 128, 88, + 89, 128, 88, 87, 73, 128, 88, 87, 69, 69, 128, 88, 87, 69, 128, 88, 87, + 65, 65, 128, 88, 87, 65, 128, 88, 87, 128, 88, 215, 88, 86, 69, 128, 88, + 86, 65, 128, 88, 85, 79, 88, 128, 88, 85, 79, 128, 88, 85, 128, 88, 83, + 72, 65, 65, 89, 65, 84, 72, 73, 89, 65, 128, 88, 79, 88, 128, 88, 79, 84, + 128, 88, 79, 82, 128, 88, 79, 80, 72, 128, 88, 79, 80, 128, 88, 79, 65, + 128, 88, 79, 128, 88, 73, 88, 128, 88, 73, 84, 128, 88, 73, 82, 79, 206, + 88, 73, 80, 128, 88, 73, 69, 88, 128, 88, 73, 69, 84, 128, 88, 73, 69, + 80, 128, 88, 73, 69, 128, 88, 73, 65, 78, 71, 81, 201, 88, 73, 65, 66, + 128, 88, 73, 128, 88, 72, 69, 89, 78, 128, 88, 71, 128, 88, 69, 89, 78, + 128, 88, 69, 83, 84, 69, 211, 88, 69, 72, 128, 88, 69, 69, 128, 88, 69, + 128, 88, 65, 85, 83, 128, 88, 65, 85, 128, 88, 65, 80, 72, 128, 88, 65, + 78, 128, 88, 65, 65, 128, 88, 65, 128, 88, 48, 48, 56, 65, 128, 88, 48, + 48, 56, 128, 88, 48, 48, 55, 128, 88, 48, 48, 54, 65, 128, 88, 48, 48, + 54, 128, 88, 48, 48, 53, 128, 88, 48, 48, 52, 66, 128, 88, 48, 48, 52, + 65, 128, 88, 48, 48, 52, 128, 88, 48, 48, 51, 128, 88, 48, 48, 50, 128, + 88, 48, 48, 49, 128, 88, 45, 216, 88, 45, 82, 65, 89, 128, 87, 90, 128, + 87, 89, 78, 78, 128, 87, 89, 78, 206, 87, 86, 73, 128, 87, 86, 69, 128, + 87, 86, 65, 128, 87, 86, 128, 87, 85, 80, 128, 87, 85, 79, 88, 128, 87, + 85, 79, 80, 128, 87, 85, 79, 128, 87, 85, 78, 74, 207, 87, 85, 78, 128, + 87, 85, 76, 85, 128, 87, 85, 76, 213, 87, 85, 73, 128, 87, 85, 69, 128, + 87, 85, 65, 69, 84, 128, 87, 85, 65, 69, 78, 128, 87, 85, 128, 87, 82, + 217, 87, 82, 79, 78, 71, 128, 87, 82, 73, 83, 212, 87, 82, 73, 78, 75, + 76, 69, 83, 128, 87, 82, 73, 78, 75, 76, 69, 211, 87, 82, 73, 78, 75, 76, + 69, 68, 128, 87, 82, 69, 83, 84, 76, 69, 82, 83, 128, 87, 82, 69, 78, 67, + 72, 128, 87, 82, 69, 65, 84, 200, 87, 82, 65, 80, 80, 69, 196, 87, 82, + 65, 80, 128, 87, 79, 88, 128, 87, 79, 87, 128, 87, 79, 82, 83, 72, 73, + 80, 128, 87, 79, 82, 82, 73, 69, 196, 87, 79, 82, 77, 128, 87, 79, 82, + 76, 196, 87, 79, 82, 75, 69, 82, 128, 87, 79, 82, 75, 128, 87, 79, 82, + 203, 87, 79, 82, 68, 83, 80, 65, 67, 69, 128, 87, 79, 82, 196, 87, 79, + 80, 128, 87, 79, 79, 78, 128, 87, 79, 79, 76, 128, 87, 79, 79, 68, 83, + 45, 67, 82, 69, 197, 87, 79, 79, 68, 128, 87, 79, 78, 128, 87, 79, 206, + 87, 79, 77, 69, 78, 211, 87, 79, 77, 69, 206, 87, 79, 77, 65, 78, 211, + 87, 79, 77, 65, 78, 128, 87, 79, 77, 65, 206, 87, 79, 76, 79, 83, 79, + 128, 87, 79, 76, 198, 87, 79, 69, 128, 87, 79, 65, 128, 87, 79, 45, 55, + 128, 87, 79, 45, 54, 128, 87, 79, 45, 53, 128, 87, 79, 45, 52, 128, 87, + 79, 45, 51, 128, 87, 79, 45, 50, 128, 87, 79, 45, 49, 128, 87, 73, 84, + 72, 79, 85, 212, 87, 73, 84, 72, 73, 78, 128, 87, 73, 84, 72, 73, 206, + 87, 73, 82, 69, 76, 69, 83, 83, 128, 87, 73, 82, 69, 196, 87, 73, 78, 84, + 69, 82, 128, 87, 73, 78, 75, 73, 78, 199, 87, 73, 78, 75, 128, 87, 73, + 78, 74, 65, 128, 87, 73, 78, 71, 83, 128, 87, 73, 78, 71, 128, 87, 73, + 78, 69, 128, 87, 73, 78, 197, 87, 73, 78, 68, 85, 128, 87, 73, 78, 68, + 79, 87, 128, 87, 73, 78, 68, 128, 87, 73, 78, 196, 87, 73, 78, 128, 87, + 73, 76, 84, 69, 196, 87, 73, 71, 78, 89, 65, 78, 128, 87, 73, 71, 71, 76, + 217, 87, 73, 71, 71, 76, 69, 83, 128, 87, 73, 68, 84, 72, 128, 87, 73, + 68, 69, 78, 73, 78, 199, 87, 73, 68, 69, 45, 72, 69, 65, 68, 69, 196, 87, + 73, 68, 197, 87, 73, 65, 78, 71, 87, 65, 65, 75, 128, 87, 73, 65, 78, 71, + 128, 87, 73, 45, 53, 128, 87, 73, 45, 52, 128, 87, 73, 45, 51, 128, 87, + 73, 45, 50, 128, 87, 73, 45, 49, 128, 87, 72, 79, 76, 197, 87, 72, 73, + 84, 69, 45, 70, 69, 65, 84, 72, 69, 82, 69, 196, 87, 72, 73, 84, 69, 128, + 87, 72, 69, 69, 76, 69, 196, 87, 72, 69, 69, 76, 67, 72, 65, 73, 82, 128, + 87, 72, 69, 69, 76, 67, 72, 65, 73, 210, 87, 72, 69, 69, 76, 128, 87, 72, + 69, 69, 204, 87, 72, 69, 65, 84, 128, 87, 72, 65, 76, 69, 128, 87, 72, + 128, 87, 71, 128, 87, 69, 88, 128, 87, 69, 85, 88, 128, 87, 69, 212, 87, + 69, 83, 84, 69, 82, 206, 87, 69, 83, 84, 45, 67, 82, 69, 197, 87, 69, 83, + 84, 128, 87, 69, 83, 212, 87, 69, 80, 128, 87, 69, 79, 128, 87, 69, 78, + 128, 87, 69, 76, 76, 128, 87, 69, 73, 71, 72, 212, 87, 69, 73, 69, 82, + 83, 84, 82, 65, 83, 211, 87, 69, 73, 128, 87, 69, 69, 78, 128, 87, 69, + 68, 71, 69, 45, 84, 65, 73, 76, 69, 196, 87, 69, 68, 71, 69, 128, 87, 69, + 68, 68, 73, 78, 71, 128, 87, 69, 66, 128, 87, 69, 65, 82, 217, 87, 69, + 65, 80, 79, 78, 128, 87, 69, 45, 52, 128, 87, 69, 45, 51, 128, 87, 69, + 45, 50, 128, 87, 69, 45, 49, 128, 87, 67, 128, 87, 66, 128, 87, 65, 89, + 128, 87, 65, 217, 87, 65, 88, 73, 78, 199, 87, 65, 88, 128, 87, 65, 87, + 45, 65, 89, 73, 78, 45, 82, 69, 83, 72, 128, 87, 65, 87, 128, 87, 65, + 215, 87, 65, 86, 217, 87, 65, 86, 73, 78, 199, 87, 65, 86, 69, 83, 128, + 87, 65, 86, 69, 128, 87, 65, 86, 197, 87, 65, 85, 128, 87, 65, 84, 84, + 79, 128, 87, 65, 84, 69, 82, 77, 69, 76, 79, 78, 128, 87, 65, 84, 69, 82, + 128, 87, 65, 84, 69, 210, 87, 65, 84, 67, 72, 128, 87, 65, 84, 128, 87, + 65, 83, 84, 73, 78, 71, 128, 87, 65, 83, 84, 69, 66, 65, 83, 75, 69, 84, + 128, 87, 65, 83, 83, 65, 76, 76, 65, 77, 128, 87, 65, 83, 76, 65, 128, + 87, 65, 83, 76, 193, 87, 65, 83, 65, 76, 76, 65, 77, 128, 87, 65, 83, 65, + 76, 76, 65, 205, 87, 65, 83, 45, 83, 65, 76, 65, 65, 77, 128, 87, 65, 82, + 78, 73, 78, 199, 87, 65, 82, 65, 78, 199, 87, 65, 81, 70, 65, 128, 87, + 65, 80, 128, 87, 65, 78, 73, 78, 199, 87, 65, 78, 71, 75, 85, 79, 81, + 128, 87, 65, 78, 68, 69, 82, 69, 82, 128, 87, 65, 78, 68, 128, 87, 65, + 78, 67, 72, 207, 87, 65, 78, 128, 87, 65, 76, 76, 80, 76, 65, 78, 197, + 87, 65, 76, 76, 69, 196, 87, 65, 76, 76, 128, 87, 65, 76, 204, 87, 65, + 76, 75, 128, 87, 65, 76, 203, 87, 65, 73, 84, 73, 78, 71, 128, 87, 65, + 73, 83, 84, 128, 87, 65, 73, 128, 87, 65, 70, 70, 76, 69, 128, 87, 65, + 69, 78, 128, 87, 65, 69, 128, 87, 65, 68, 68, 65, 128, 87, 65, 65, 86, + 85, 128, 87, 65, 65, 74, 73, 66, 128, 87, 65, 65, 65, 76, 73, 72, 69, + 197, 87, 65, 45, 84, 65, 65, 65, 76, 65, 65, 128, 87, 65, 45, 83, 65, 76, + 76, 65, 77, 128, 87, 65, 45, 65, 65, 76, 73, 72, 128, 87, 65, 45, 53, + 128, 87, 65, 45, 52, 128, 87, 65, 45, 51, 128, 87, 65, 45, 50, 128, 87, + 65, 45, 49, 128, 87, 193, 87, 48, 50, 53, 128, 87, 48, 50, 52, 65, 128, + 87, 48, 50, 52, 128, 87, 48, 50, 51, 128, 87, 48, 50, 50, 128, 87, 48, + 50, 49, 128, 87, 48, 50, 48, 128, 87, 48, 49, 57, 128, 87, 48, 49, 56, + 65, 128, 87, 48, 49, 56, 128, 87, 48, 49, 55, 65, 128, 87, 48, 49, 55, + 128, 87, 48, 49, 54, 128, 87, 48, 49, 53, 128, 87, 48, 49, 52, 65, 128, + 87, 48, 49, 52, 128, 87, 48, 49, 51, 128, 87, 48, 49, 50, 128, 87, 48, + 49, 49, 128, 87, 48, 49, 48, 65, 128, 87, 48, 49, 48, 128, 87, 48, 48, + 57, 65, 128, 87, 48, 48, 57, 128, 87, 48, 48, 56, 128, 87, 48, 48, 55, + 128, 87, 48, 48, 54, 128, 87, 48, 48, 53, 128, 87, 48, 48, 52, 128, 87, + 48, 48, 51, 65, 128, 87, 48, 48, 51, 128, 87, 48, 48, 50, 128, 87, 48, + 48, 49, 128, 86, 90, 77, 69, 84, 128, 86, 90, 128, 86, 89, 88, 128, 86, + 89, 84, 128, 86, 89, 83, 79, 75, 79, 128, 86, 89, 83, 79, 75, 207, 86, + 89, 82, 88, 128, 86, 89, 82, 128, 86, 89, 80, 128, 86, 89, 128, 86, 88, + 128, 86, 87, 74, 128, 86, 87, 65, 128, 86, 87, 128, 86, 85, 88, 128, 86, + 85, 85, 128, 86, 85, 84, 128, 86, 85, 82, 88, 128, 86, 85, 82, 128, 86, + 85, 80, 128, 86, 85, 76, 71, 65, 210, 86, 85, 76, 67, 65, 78, 85, 83, + 128, 86, 85, 69, 81, 128, 86, 84, 83, 128, 86, 84, 128, 86, 83, 57, 57, + 128, 86, 83, 57, 56, 128, 86, 83, 57, 55, 128, 86, 83, 57, 54, 128, 86, + 83, 57, 53, 128, 86, 83, 57, 52, 128, 86, 83, 57, 51, 128, 86, 83, 57, + 50, 128, 86, 83, 57, 49, 128, 86, 83, 57, 48, 128, 86, 83, 57, 128, 86, + 83, 56, 57, 128, 86, 83, 56, 56, 128, 86, 83, 56, 55, 128, 86, 83, 56, + 54, 128, 86, 83, 56, 53, 128, 86, 83, 56, 52, 128, 86, 83, 56, 51, 128, + 86, 83, 56, 50, 128, 86, 83, 56, 49, 128, 86, 83, 56, 48, 128, 86, 83, + 56, 128, 86, 83, 55, 57, 128, 86, 83, 55, 56, 128, 86, 83, 55, 55, 128, + 86, 83, 55, 54, 128, 86, 83, 55, 53, 128, 86, 83, 55, 52, 128, 86, 83, + 55, 51, 128, 86, 83, 55, 50, 128, 86, 83, 55, 49, 128, 86, 83, 55, 48, + 128, 86, 83, 55, 128, 86, 83, 54, 57, 128, 86, 83, 54, 56, 128, 86, 83, + 54, 55, 128, 86, 83, 54, 54, 128, 86, 83, 54, 53, 128, 86, 83, 54, 52, + 128, 86, 83, 54, 51, 128, 86, 83, 54, 50, 128, 86, 83, 54, 49, 128, 86, + 83, 54, 48, 128, 86, 83, 54, 128, 86, 83, 53, 57, 128, 86, 83, 53, 56, + 128, 86, 83, 53, 55, 128, 86, 83, 53, 54, 128, 86, 83, 53, 53, 128, 86, + 83, 53, 52, 128, 86, 83, 53, 51, 128, 86, 83, 53, 50, 128, 86, 83, 53, + 49, 128, 86, 83, 53, 48, 128, 86, 83, 53, 128, 86, 83, 52, 57, 128, 86, + 83, 52, 56, 128, 86, 83, 52, 55, 128, 86, 83, 52, 54, 128, 86, 83, 52, + 53, 128, 86, 83, 52, 52, 128, 86, 83, 52, 51, 128, 86, 83, 52, 50, 128, + 86, 83, 52, 49, 128, 86, 83, 52, 48, 128, 86, 83, 52, 128, 86, 83, 51, + 57, 128, 86, 83, 51, 56, 128, 86, 83, 51, 55, 128, 86, 83, 51, 54, 128, + 86, 83, 51, 53, 128, 86, 83, 51, 52, 128, 86, 83, 51, 51, 128, 86, 83, + 51, 50, 128, 86, 83, 51, 49, 128, 86, 83, 51, 48, 128, 86, 83, 51, 128, + 86, 83, 50, 57, 128, 86, 83, 50, 56, 128, 86, 83, 50, 55, 128, 86, 83, + 50, 54, 128, 86, 83, 50, 53, 54, 128, 86, 83, 50, 53, 53, 128, 86, 83, + 50, 53, 52, 128, 86, 83, 50, 53, 51, 128, 86, 83, 50, 53, 50, 128, 86, + 83, 50, 53, 49, 128, 86, 83, 50, 53, 48, 128, 86, 83, 50, 53, 128, 86, + 83, 50, 52, 57, 128, 86, 83, 50, 52, 56, 128, 86, 83, 50, 52, 55, 128, + 86, 83, 50, 52, 54, 128, 86, 83, 50, 52, 53, 128, 86, 83, 50, 52, 52, + 128, 86, 83, 50, 52, 51, 128, 86, 83, 50, 52, 50, 128, 86, 83, 50, 52, + 49, 128, 86, 83, 50, 52, 48, 128, 86, 83, 50, 52, 128, 86, 83, 50, 51, + 57, 128, 86, 83, 50, 51, 56, 128, 86, 83, 50, 51, 55, 128, 86, 83, 50, + 51, 54, 128, 86, 83, 50, 51, 53, 128, 86, 83, 50, 51, 52, 128, 86, 83, + 50, 51, 51, 128, 86, 83, 50, 51, 50, 128, 86, 83, 50, 51, 49, 128, 86, + 83, 50, 51, 48, 128, 86, 83, 50, 51, 128, 86, 83, 50, 50, 57, 128, 86, + 83, 50, 50, 56, 128, 86, 83, 50, 50, 55, 128, 86, 83, 50, 50, 54, 128, + 86, 83, 50, 50, 53, 128, 86, 83, 50, 50, 52, 128, 86, 83, 50, 50, 51, + 128, 86, 83, 50, 50, 50, 128, 86, 83, 50, 50, 49, 128, 86, 83, 50, 50, + 48, 128, 86, 83, 50, 50, 128, 86, 83, 50, 49, 57, 128, 86, 83, 50, 49, + 56, 128, 86, 83, 50, 49, 55, 128, 86, 83, 50, 49, 54, 128, 86, 83, 50, + 49, 53, 128, 86, 83, 50, 49, 52, 128, 86, 83, 50, 49, 51, 128, 86, 83, + 50, 49, 50, 128, 86, 83, 50, 49, 49, 128, 86, 83, 50, 49, 48, 128, 86, + 83, 50, 49, 128, 86, 83, 50, 48, 57, 128, 86, 83, 50, 48, 56, 128, 86, + 83, 50, 48, 55, 128, 86, 83, 50, 48, 54, 128, 86, 83, 50, 48, 53, 128, + 86, 83, 50, 48, 52, 128, 86, 83, 50, 48, 51, 128, 86, 83, 50, 48, 50, + 128, 86, 83, 50, 48, 49, 128, 86, 83, 50, 48, 48, 128, 86, 83, 50, 48, + 128, 86, 83, 50, 128, 86, 83, 49, 57, 57, 128, 86, 83, 49, 57, 56, 128, + 86, 83, 49, 57, 55, 128, 86, 83, 49, 57, 54, 128, 86, 83, 49, 57, 53, + 128, 86, 83, 49, 57, 52, 128, 86, 83, 49, 57, 51, 128, 86, 83, 49, 57, + 50, 128, 86, 83, 49, 57, 49, 128, 86, 83, 49, 57, 48, 128, 86, 83, 49, + 57, 128, 86, 83, 49, 56, 57, 128, 86, 83, 49, 56, 56, 128, 86, 83, 49, + 56, 55, 128, 86, 83, 49, 56, 54, 128, 86, 83, 49, 56, 53, 128, 86, 83, + 49, 56, 52, 128, 86, 83, 49, 56, 51, 128, 86, 83, 49, 56, 50, 128, 86, + 83, 49, 56, 49, 128, 86, 83, 49, 56, 48, 128, 86, 83, 49, 56, 128, 86, + 83, 49, 55, 57, 128, 86, 83, 49, 55, 56, 128, 86, 83, 49, 55, 55, 128, + 86, 83, 49, 55, 54, 128, 86, 83, 49, 55, 53, 128, 86, 83, 49, 55, 52, + 128, 86, 83, 49, 55, 51, 128, 86, 83, 49, 55, 50, 128, 86, 83, 49, 55, + 49, 128, 86, 83, 49, 55, 48, 128, 86, 83, 49, 55, 128, 86, 83, 49, 54, + 57, 128, 86, 83, 49, 54, 56, 128, 86, 83, 49, 54, 55, 128, 86, 83, 49, + 54, 54, 128, 86, 83, 49, 54, 53, 128, 86, 83, 49, 54, 52, 128, 86, 83, + 49, 54, 51, 128, 86, 83, 49, 54, 50, 128, 86, 83, 49, 54, 49, 128, 86, + 83, 49, 54, 48, 128, 86, 83, 49, 54, 128, 86, 83, 49, 53, 57, 128, 86, + 83, 49, 53, 56, 128, 86, 83, 49, 53, 55, 128, 86, 83, 49, 53, 54, 128, + 86, 83, 49, 53, 53, 128, 86, 83, 49, 53, 52, 128, 86, 83, 49, 53, 51, + 128, 86, 83, 49, 53, 50, 128, 86, 83, 49, 53, 49, 128, 86, 83, 49, 53, + 48, 128, 86, 83, 49, 53, 128, 86, 83, 49, 52, 57, 128, 86, 83, 49, 52, + 56, 128, 86, 83, 49, 52, 55, 128, 86, 83, 49, 52, 54, 128, 86, 83, 49, + 52, 53, 128, 86, 83, 49, 52, 52, 128, 86, 83, 49, 52, 51, 128, 86, 83, + 49, 52, 50, 128, 86, 83, 49, 52, 49, 128, 86, 83, 49, 52, 48, 128, 86, + 83, 49, 52, 128, 86, 83, 49, 51, 57, 128, 86, 83, 49, 51, 56, 128, 86, + 83, 49, 51, 55, 128, 86, 83, 49, 51, 54, 128, 86, 83, 49, 51, 53, 128, + 86, 83, 49, 51, 52, 128, 86, 83, 49, 51, 51, 128, 86, 83, 49, 51, 50, + 128, 86, 83, 49, 51, 49, 128, 86, 83, 49, 51, 48, 128, 86, 83, 49, 51, + 128, 86, 83, 49, 50, 57, 128, 86, 83, 49, 50, 56, 128, 86, 83, 49, 50, + 55, 128, 86, 83, 49, 50, 54, 128, 86, 83, 49, 50, 53, 128, 86, 83, 49, + 50, 52, 128, 86, 83, 49, 50, 51, 128, 86, 83, 49, 50, 50, 128, 86, 83, + 49, 50, 49, 128, 86, 83, 49, 50, 48, 128, 86, 83, 49, 50, 128, 86, 83, + 49, 49, 57, 128, 86, 83, 49, 49, 56, 128, 86, 83, 49, 49, 55, 128, 86, + 83, 49, 49, 54, 128, 86, 83, 49, 49, 53, 128, 86, 83, 49, 49, 52, 128, + 86, 83, 49, 49, 51, 128, 86, 83, 49, 49, 50, 128, 86, 83, 49, 49, 49, + 128, 86, 83, 49, 49, 48, 128, 86, 83, 49, 49, 128, 86, 83, 49, 48, 57, + 128, 86, 83, 49, 48, 56, 128, 86, 83, 49, 48, 55, 128, 86, 83, 49, 48, + 54, 128, 86, 83, 49, 48, 53, 128, 86, 83, 49, 48, 52, 128, 86, 83, 49, + 48, 51, 128, 86, 83, 49, 48, 50, 128, 86, 83, 49, 48, 49, 128, 86, 83, + 49, 48, 48, 128, 86, 83, 49, 48, 128, 86, 83, 49, 128, 86, 83, 128, 86, + 82, 65, 75, 72, 73, 89, 193, 86, 82, 65, 67, 72, 89, 128, 86, 81, 128, + 86, 79, 88, 128, 86, 79, 87, 69, 76, 45, 67, 65, 82, 82, 73, 69, 210, 86, + 79, 87, 128, 86, 79, 85, 128, 86, 79, 84, 128, 86, 79, 211, 86, 79, 80, + 128, 86, 79, 79, 73, 128, 86, 79, 79, 128, 86, 79, 77, 73, 84, 73, 78, + 71, 128, 86, 79, 77, 128, 86, 79, 76, 85, 77, 197, 86, 79, 76, 84, 65, + 71, 197, 86, 79, 76, 76, 69, 89, 66, 65, 76, 76, 128, 86, 79, 76, 67, 65, + 78, 79, 128, 86, 79, 76, 65, 80, 85, 203, 86, 79, 73, 68, 69, 196, 86, + 79, 73, 196, 86, 79, 73, 67, 73, 78, 71, 128, 86, 79, 73, 67, 69, 76, 69, + 83, 211, 86, 79, 73, 67, 69, 196, 86, 79, 68, 128, 86, 79, 67, 65, 76, + 73, 90, 65, 84, 73, 79, 206, 86, 79, 67, 65, 204, 86, 79, 128, 86, 73, + 89, 79, 128, 86, 73, 88, 128, 86, 73, 84, 82, 73, 79, 76, 45, 50, 128, + 86, 73, 84, 82, 73, 79, 76, 128, 86, 73, 84, 72, 75, 85, 81, 201, 86, 73, + 84, 65, 69, 45, 50, 128, 86, 73, 84, 65, 69, 128, 86, 73, 84, 128, 86, + 73, 83, 73, 71, 79, 84, 72, 73, 195, 86, 73, 83, 65, 82, 71, 65, 89, 65, + 128, 86, 73, 83, 65, 82, 71, 65, 128, 86, 73, 83, 65, 82, 71, 193, 86, + 73, 82, 73, 65, 77, 128, 86, 73, 82, 71, 79, 128, 86, 73, 82, 71, 65, + 128, 86, 73, 82, 65, 77, 65, 128, 86, 73, 80, 128, 86, 73, 79, 76, 73, + 78, 128, 86, 73, 78, 69, 71, 65, 82, 45, 51, 128, 86, 73, 78, 69, 71, 65, + 82, 45, 50, 128, 86, 73, 78, 69, 71, 65, 82, 128, 86, 73, 78, 69, 71, 65, + 210, 86, 73, 78, 69, 128, 86, 73, 78, 197, 86, 73, 78, 128, 86, 73, 76, + 76, 65, 71, 69, 128, 86, 73, 73, 128, 86, 73, 71, 73, 78, 84, 73, 76, 69, + 128, 86, 73, 69, 88, 128, 86, 73, 69, 87, 73, 78, 199, 86, 73, 69, 87, + 69, 82, 128, 86, 73, 69, 87, 68, 65, 84, 193, 86, 73, 69, 84, 78, 65, 77, + 69, 83, 197, 86, 73, 69, 84, 128, 86, 73, 69, 212, 86, 73, 69, 80, 128, + 86, 73, 69, 128, 86, 73, 68, 74, 45, 50, 128, 86, 73, 68, 74, 128, 86, + 73, 68, 69, 79, 67, 65, 83, 83, 69, 84, 84, 69, 128, 86, 73, 68, 69, 207, + 86, 73, 68, 65, 128, 86, 73, 67, 84, 79, 82, 217, 86, 73, 66, 82, 65, 84, + 73, 79, 206, 86, 72, 65, 128, 86, 70, 65, 128, 86, 69, 89, 90, 128, 86, + 69, 88, 128, 86, 69, 87, 128, 86, 69, 215, 86, 69, 85, 88, 128, 86, 69, + 85, 77, 128, 86, 69, 85, 65, 69, 80, 69, 78, 128, 86, 69, 85, 65, 69, + 128, 86, 69, 83, 84, 65, 128, 86, 69, 83, 84, 128, 86, 69, 83, 83, 69, + 204, 86, 69, 82, 217, 86, 69, 82, 84, 73, 67, 65, 76, 76, 89, 128, 86, + 69, 82, 84, 73, 67, 65, 76, 76, 217, 86, 69, 82, 84, 73, 67, 65, 76, 45, + 48, 54, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 54, 45, + 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 54, 45, 48, 52, 128, + 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 54, 45, 48, 51, 128, 86, 69, 82, + 84, 73, 67, 65, 76, 45, 48, 54, 45, 48, 50, 128, 86, 69, 82, 84, 73, 67, + 65, 76, 45, 48, 54, 45, 48, 49, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, + 48, 54, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 53, 45, + 48, 54, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 53, 45, 48, 53, 128, + 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 53, 45, 48, 52, 128, 86, 69, 82, + 84, 73, 67, 65, 76, 45, 48, 53, 45, 48, 51, 128, 86, 69, 82, 84, 73, 67, + 65, 76, 45, 48, 53, 45, 48, 50, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, + 48, 53, 45, 48, 49, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 53, 45, + 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 52, 45, 48, 54, 128, + 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 52, 45, 48, 53, 128, 86, 69, 82, + 84, 73, 67, 65, 76, 45, 48, 52, 45, 48, 52, 128, 86, 69, 82, 84, 73, 67, + 65, 76, 45, 48, 52, 45, 48, 51, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, + 48, 52, 45, 48, 50, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 52, 45, + 48, 49, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 52, 45, 48, 48, 128, + 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, 54, 128, 86, 69, 82, + 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, + 65, 76, 45, 48, 51, 45, 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, + 48, 51, 45, 48, 51, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, + 48, 50, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, 49, 128, + 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, 48, 128, 86, 69, 82, + 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67, + 65, 76, 45, 48, 50, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, + 48, 50, 45, 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, + 48, 51, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 50, 128, + 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 49, 128, 86, 69, 82, + 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, + 65, 76, 45, 48, 49, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, + 48, 49, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 49, 45, + 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, 51, 128, + 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, 50, 128, 86, 69, 82, + 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, 49, 128, 86, 69, 82, 84, 73, 67, + 65, 76, 45, 48, 49, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, + 48, 48, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 48, 45, + 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 48, 45, 48, 52, 128, + 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 48, 45, 48, 51, 128, 86, 69, 82, + 84, 73, 67, 65, 76, 45, 48, 48, 45, 48, 50, 128, 86, 69, 82, 84, 73, 67, + 65, 76, 45, 48, 48, 45, 48, 49, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, + 48, 48, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 128, 86, 69, 82, + 83, 73, 67, 76, 69, 128, 86, 69, 82, 83, 197, 86, 69, 82, 71, 69, 128, + 86, 69, 82, 68, 73, 71, 82, 73, 83, 128, 86, 69, 82, 128, 86, 69, 80, + 128, 86, 69, 78, 68, 128, 86, 69, 76, 73, 128, 86, 69, 73, 76, 128, 86, + 69, 72, 73, 67, 76, 69, 128, 86, 69, 72, 128, 86, 69, 200, 86, 69, 69, + 128, 86, 69, 197, 86, 69, 68, 69, 128, 86, 69, 67, 84, 79, 210, 86, 67, + 128, 86, 65, 89, 65, 78, 78, 65, 128, 86, 65, 88, 128, 86, 65, 86, 128, + 86, 65, 214, 86, 65, 85, 128, 86, 65, 84, 72, 89, 128, 86, 65, 84, 128, + 86, 65, 83, 84, 78, 69, 83, 211, 86, 65, 83, 73, 83, 128, 86, 65, 82, 89, + 211, 86, 65, 82, 73, 75, 65, 128, 86, 65, 82, 73, 65, 78, 84, 128, 86, + 65, 82, 73, 65, 78, 212, 86, 65, 82, 73, 65, 128, 86, 65, 82, 73, 193, + 86, 65, 82, 69, 73, 65, 201, 86, 65, 82, 69, 73, 193, 86, 65, 82, 65, 65, + 75, 65, 78, 128, 86, 65, 80, 79, 85, 82, 83, 128, 86, 65, 80, 128, 86, + 65, 78, 69, 128, 86, 65, 77, 80, 73, 82, 69, 128, 86, 65, 77, 65, 71, 79, + 77, 85, 75, 72, 65, 128, 86, 65, 77, 65, 71, 79, 77, 85, 75, 72, 193, 86, + 65, 76, 76, 69, 89, 128, 86, 65, 75, 65, 73, 89, 65, 82, 65, 65, 128, 86, + 65, 74, 128, 86, 65, 73, 128, 86, 65, 72, 128, 86, 65, 200, 86, 65, 65, + 86, 85, 128, 86, 65, 65, 128, 86, 193, 86, 48, 52, 48, 65, 128, 86, 48, + 52, 48, 128, 86, 48, 51, 57, 128, 86, 48, 51, 56, 128, 86, 48, 51, 55, + 65, 128, 86, 48, 51, 55, 128, 86, 48, 51, 54, 128, 86, 48, 51, 53, 128, + 86, 48, 51, 52, 128, 86, 48, 51, 51, 65, 128, 86, 48, 51, 51, 128, 86, + 48, 51, 50, 128, 86, 48, 51, 49, 65, 128, 86, 48, 51, 49, 128, 86, 48, + 51, 48, 65, 128, 86, 48, 51, 48, 128, 86, 48, 50, 57, 65, 128, 86, 48, + 50, 57, 128, 86, 48, 50, 56, 65, 128, 86, 48, 50, 56, 128, 86, 48, 50, + 55, 128, 86, 48, 50, 54, 128, 86, 48, 50, 53, 128, 86, 48, 50, 52, 128, + 86, 48, 50, 51, 65, 128, 86, 48, 50, 51, 128, 86, 48, 50, 50, 128, 86, + 48, 50, 49, 128, 86, 48, 50, 48, 76, 128, 86, 48, 50, 48, 75, 128, 86, + 48, 50, 48, 74, 128, 86, 48, 50, 48, 73, 128, 86, 48, 50, 48, 72, 128, + 86, 48, 50, 48, 71, 128, 86, 48, 50, 48, 70, 128, 86, 48, 50, 48, 69, + 128, 86, 48, 50, 48, 68, 128, 86, 48, 50, 48, 67, 128, 86, 48, 50, 48, + 66, 128, 86, 48, 50, 48, 65, 128, 86, 48, 50, 48, 128, 86, 48, 49, 57, + 128, 86, 48, 49, 56, 128, 86, 48, 49, 55, 128, 86, 48, 49, 54, 128, 86, + 48, 49, 53, 128, 86, 48, 49, 52, 128, 86, 48, 49, 51, 128, 86, 48, 49, + 50, 66, 128, 86, 48, 49, 50, 65, 128, 86, 48, 49, 50, 128, 86, 48, 49, + 49, 68, 128, 86, 48, 49, 49, 67, 128, 86, 48, 49, 49, 66, 128, 86, 48, + 49, 49, 65, 128, 86, 48, 49, 49, 128, 86, 48, 49, 48, 128, 86, 48, 48, + 57, 128, 86, 48, 48, 56, 128, 86, 48, 48, 55, 66, 128, 86, 48, 48, 55, + 65, 128, 86, 48, 48, 55, 128, 86, 48, 48, 54, 128, 86, 48, 48, 53, 128, + 86, 48, 48, 52, 128, 86, 48, 48, 51, 128, 86, 48, 48, 50, 65, 128, 86, + 48, 48, 50, 128, 86, 48, 48, 49, 73, 128, 86, 48, 48, 49, 72, 128, 86, + 48, 48, 49, 71, 128, 86, 48, 48, 49, 70, 128, 86, 48, 48, 49, 69, 128, + 86, 48, 48, 49, 68, 128, 86, 48, 48, 49, 67, 128, 86, 48, 48, 49, 66, + 128, 86, 48, 48, 49, 65, 128, 86, 48, 48, 49, 128, 85, 90, 85, 128, 85, + 90, 72, 65, 75, 75, 85, 128, 85, 90, 51, 128, 85, 90, 179, 85, 90, 128, + 85, 89, 71, 72, 85, 210, 85, 89, 65, 78, 78, 65, 128, 85, 89, 128, 85, + 87, 85, 128, 85, 85, 89, 65, 78, 78, 65, 128, 85, 85, 85, 85, 128, 85, + 85, 85, 51, 128, 85, 85, 85, 50, 128, 85, 85, 69, 128, 85, 84, 85, 75, + 73, 128, 85, 83, 83, 85, 51, 128, 85, 83, 83, 85, 128, 85, 83, 72, 88, + 128, 85, 83, 72, 85, 77, 88, 128, 85, 83, 72, 69, 78, 78, 65, 128, 85, + 83, 72, 50, 128, 85, 83, 72, 128, 85, 83, 200, 85, 83, 69, 196, 85, 83, + 69, 45, 50, 128, 85, 83, 69, 45, 49, 128, 85, 83, 69, 128, 85, 83, 197, + 85, 82, 85, 218, 85, 82, 85, 83, 128, 85, 82, 85, 68, 65, 128, 85, 82, + 85, 68, 193, 85, 82, 85, 128, 85, 82, 213, 85, 82, 78, 128, 85, 82, 73, + 78, 69, 128, 85, 82, 73, 51, 128, 85, 82, 73, 128, 85, 82, 65, 78, 85, + 83, 128, 85, 82, 65, 128, 85, 82, 52, 128, 85, 82, 50, 128, 85, 82, 178, + 85, 80, 87, 65, 82, 68, 83, 128, 85, 80, 87, 65, 82, 68, 211, 85, 80, 87, + 65, 82, 68, 128, 85, 80, 87, 65, 82, 196, 85, 80, 84, 85, 82, 78, 128, + 85, 80, 83, 73, 76, 79, 78, 128, 85, 80, 83, 73, 76, 79, 206, 85, 80, 83, + 73, 68, 69, 45, 68, 79, 87, 206, 85, 80, 82, 73, 71, 72, 212, 85, 80, 80, + 69, 82, 128, 85, 80, 65, 68, 72, 77, 65, 78, 73, 89, 65, 128, 85, 80, 45, + 80, 79, 73, 78, 84, 73, 78, 199, 85, 79, 78, 128, 85, 79, 71, 128, 85, + 78, 78, 128, 85, 78, 77, 65, 82, 82, 73, 69, 196, 85, 78, 75, 78, 79, 87, + 78, 128, 85, 78, 75, 128, 85, 78, 73, 86, 69, 82, 83, 65, 204, 85, 78, + 73, 84, 89, 128, 85, 78, 73, 84, 69, 196, 85, 78, 73, 84, 128, 85, 78, + 73, 212, 85, 78, 73, 79, 78, 128, 85, 78, 73, 79, 206, 85, 78, 73, 70, + 79, 82, 77, 128, 85, 78, 73, 70, 73, 69, 196, 85, 78, 73, 67, 79, 82, + 206, 85, 78, 69, 86, 69, 206, 85, 78, 68, 207, 85, 78, 68, 69, 82, 84, + 73, 69, 128, 85, 78, 68, 69, 82, 76, 73, 78, 197, 85, 78, 68, 69, 82, 68, + 79, 84, 128, 85, 78, 68, 69, 82, 66, 65, 82, 128, 85, 78, 68, 69, 82, + 128, 85, 78, 68, 69, 210, 85, 78, 67, 73, 193, 85, 78, 67, 69, 82, 84, + 65, 73, 78, 84, 217, 85, 78, 66, 76, 69, 78, 68, 69, 196, 85, 78, 65, 83, + 80, 73, 82, 65, 84, 69, 68, 128, 85, 78, 65, 80, 128, 85, 78, 65, 77, 85, + 83, 69, 196, 85, 78, 65, 128, 85, 206, 85, 77, 85, 77, 128, 85, 77, 85, + 205, 85, 77, 66, 82, 69, 76, 76, 65, 128, 85, 77, 66, 82, 69, 76, 76, + 193, 85, 77, 66, 73, 78, 128, 85, 75, 85, 128, 85, 75, 82, 65, 73, 78, + 73, 65, 206, 85, 75, 65, 82, 65, 128, 85, 75, 65, 82, 193, 85, 75, 128, + 85, 73, 90, 128, 85, 73, 88, 128, 85, 73, 85, 90, 128, 85, 73, 85, 88, + 128, 85, 73, 85, 81, 128, 85, 73, 85, 67, 128, 85, 73, 81, 128, 85, 73, + 76, 76, 69, 65, 78, 78, 128, 85, 73, 71, 72, 85, 210, 85, 73, 67, 128, + 85, 72, 68, 128, 85, 71, 65, 82, 73, 84, 73, 195, 85, 69, 90, 128, 85, + 69, 89, 128, 85, 69, 88, 128, 85, 69, 78, 128, 85, 69, 73, 128, 85, 69, + 69, 128, 85, 69, 67, 128, 85, 69, 65, 128, 85, 68, 85, 71, 128, 85, 68, + 65, 84, 84, 65, 128, 85, 68, 65, 84, 84, 193, 85, 68, 65, 82, 75, 65, + 128, 85, 68, 65, 65, 84, 128, 85, 68, 128, 85, 196, 85, 66, 85, 70, 73, + 76, 73, 128, 85, 66, 72, 65, 89, 65, 84, 207, 85, 66, 65, 68, 65, 77, 65, + 128, 85, 66, 128, 85, 65, 84, 72, 128, 85, 65, 78, 71, 128, 85, 65, 128, + 85, 178, 85, 48, 52, 50, 128, 85, 48, 52, 49, 128, 85, 48, 52, 48, 128, + 85, 48, 51, 57, 128, 85, 48, 51, 56, 128, 85, 48, 51, 55, 128, 85, 48, + 51, 54, 128, 85, 48, 51, 53, 128, 85, 48, 51, 52, 128, 85, 48, 51, 51, + 128, 85, 48, 51, 50, 65, 128, 85, 48, 51, 50, 128, 85, 48, 51, 49, 128, + 85, 48, 51, 48, 128, 85, 48, 50, 57, 65, 128, 85, 48, 50, 57, 128, 85, + 48, 50, 56, 128, 85, 48, 50, 55, 128, 85, 48, 50, 54, 128, 85, 48, 50, + 53, 128, 85, 48, 50, 52, 128, 85, 48, 50, 51, 65, 128, 85, 48, 50, 51, + 128, 85, 48, 50, 50, 128, 85, 48, 50, 49, 128, 85, 48, 50, 48, 128, 85, + 48, 49, 57, 128, 85, 48, 49, 56, 128, 85, 48, 49, 55, 128, 85, 48, 49, + 54, 128, 85, 48, 49, 53, 128, 85, 48, 49, 52, 128, 85, 48, 49, 51, 128, + 85, 48, 49, 50, 128, 85, 48, 49, 49, 128, 85, 48, 49, 48, 128, 85, 48, + 48, 57, 128, 85, 48, 48, 56, 128, 85, 48, 48, 55, 128, 85, 48, 48, 54, + 66, 128, 85, 48, 48, 54, 65, 128, 85, 48, 48, 54, 128, 85, 48, 48, 53, + 128, 85, 48, 48, 52, 128, 85, 48, 48, 51, 128, 85, 48, 48, 50, 128, 85, + 48, 48, 49, 128, 85, 45, 83, 72, 65, 80, 69, 196, 85, 45, 73, 45, 73, + 128, 85, 45, 69, 79, 45, 69, 85, 128, 85, 45, 66, 82, 74, 71, 85, 128, + 85, 45, 53, 128, 84, 90, 85, 128, 84, 90, 79, 65, 128, 84, 90, 79, 128, + 84, 90, 73, 210, 84, 90, 73, 128, 84, 90, 69, 69, 128, 84, 90, 69, 128, + 84, 90, 65, 65, 128, 84, 90, 65, 128, 84, 90, 128, 84, 89, 210, 84, 89, + 80, 69, 45, 183, 84, 89, 80, 69, 45, 54, 128, 84, 89, 80, 69, 45, 182, + 84, 89, 80, 69, 45, 53, 128, 84, 89, 80, 69, 45, 181, 84, 89, 80, 69, 45, + 52, 128, 84, 89, 80, 69, 45, 180, 84, 89, 80, 69, 45, 51, 128, 84, 89, + 80, 69, 45, 179, 84, 89, 80, 69, 45, 178, 84, 89, 80, 69, 45, 49, 45, 50, + 128, 84, 89, 80, 69, 45, 177, 84, 89, 80, 197, 84, 89, 79, 128, 84, 89, + 73, 128, 84, 89, 69, 128, 84, 89, 65, 89, 128, 84, 89, 65, 128, 84, 88, + 87, 86, 128, 84, 88, 87, 214, 84, 88, 72, 69, 69, 202, 84, 88, 65, 128, + 84, 87, 79, 79, 128, 84, 87, 79, 45, 87, 65, 217, 84, 87, 79, 45, 84, 72, + 73, 82, 84, 89, 128, 84, 87, 79, 45, 76, 73, 78, 197, 84, 87, 79, 45, 72, + 69, 65, 68, 69, 196, 84, 87, 79, 45, 69, 205, 84, 87, 79, 45, 67, 73, 82, + 67, 76, 197, 84, 87, 73, 83, 84, 73, 78, 71, 128, 84, 87, 73, 83, 84, 69, + 196, 84, 87, 73, 73, 128, 84, 87, 73, 128, 84, 87, 69, 78, 84, 89, 45, + 84, 87, 79, 128, 84, 87, 69, 78, 84, 89, 45, 84, 87, 207, 84, 87, 69, 78, + 84, 89, 45, 84, 72, 82, 69, 69, 128, 84, 87, 69, 78, 84, 89, 45, 83, 73, + 88, 128, 84, 87, 69, 78, 84, 89, 45, 83, 69, 86, 69, 78, 128, 84, 87, 69, + 78, 84, 89, 45, 79, 78, 69, 128, 84, 87, 69, 78, 84, 89, 45, 78, 73, 78, + 69, 128, 84, 87, 69, 78, 84, 89, 45, 70, 79, 85, 82, 128, 84, 87, 69, 78, + 84, 89, 45, 70, 73, 86, 69, 128, 84, 87, 69, 78, 84, 89, 45, 70, 73, 86, + 197, 84, 87, 69, 78, 84, 89, 45, 69, 73, 71, 72, 84, 200, 84, 87, 69, 78, + 84, 89, 45, 69, 73, 71, 72, 84, 128, 84, 87, 69, 78, 84, 89, 128, 84, 87, + 69, 78, 84, 217, 84, 87, 69, 78, 84, 73, 69, 84, 72, 83, 128, 84, 87, 69, + 78, 84, 73, 69, 84, 72, 128, 84, 87, 69, 76, 86, 69, 45, 84, 72, 73, 82, + 84, 89, 128, 84, 87, 69, 76, 86, 69, 128, 84, 87, 69, 76, 86, 197, 84, + 87, 69, 76, 70, 84, 72, 83, 128, 84, 87, 69, 76, 70, 84, 72, 128, 84, 87, + 69, 128, 84, 87, 65, 65, 128, 84, 87, 65, 128, 84, 86, 82, 73, 68, 79, + 128, 84, 86, 73, 77, 65, 68, 85, 210, 84, 85, 88, 69, 68, 79, 128, 84, + 85, 88, 128, 84, 85, 85, 77, 85, 128, 84, 85, 85, 128, 84, 85, 84, 84, + 89, 128, 84, 85, 84, 69, 89, 65, 83, 65, 84, 128, 84, 85, 84, 128, 84, + 85, 82, 88, 128, 84, 85, 82, 85, 128, 84, 85, 82, 84, 76, 69, 128, 84, + 85, 82, 79, 50, 128, 84, 85, 82, 78, 83, 84, 73, 76, 69, 128, 84, 85, 82, + 206, 84, 85, 82, 75, 73, 83, 200, 84, 85, 82, 75, 73, 195, 84, 85, 82, + 75, 69, 89, 128, 84, 85, 82, 66, 65, 78, 128, 84, 85, 82, 128, 84, 85, + 210, 84, 85, 80, 78, 73, 128, 84, 85, 80, 128, 84, 85, 79, 88, 128, 84, + 85, 79, 84, 128, 84, 85, 79, 80, 128, 84, 85, 79, 128, 84, 85, 78, 78, + 89, 128, 84, 85, 77, 69, 84, 69, 83, 128, 84, 85, 77, 66, 76, 69, 210, + 84, 85, 77, 65, 69, 128, 84, 85, 77, 128, 84, 85, 205, 84, 85, 76, 73, + 80, 128, 84, 85, 75, 87, 69, 78, 84, 73, 83, 128, 84, 85, 75, 128, 84, + 85, 71, 82, 73, 203, 84, 85, 71, 50, 128, 84, 85, 71, 178, 84, 85, 66, + 69, 128, 84, 85, 66, 128, 84, 85, 65, 82, 69, 199, 84, 85, 65, 69, 80, + 128, 84, 85, 65, 69, 128, 84, 85, 45, 84, 79, 128, 84, 85, 45, 52, 128, + 84, 85, 45, 51, 128, 84, 85, 45, 50, 128, 84, 85, 45, 49, 128, 84, 213, + 84, 84, 85, 85, 128, 84, 84, 85, 68, 68, 65, 71, 128, 84, 84, 85, 68, 68, + 65, 65, 71, 128, 84, 84, 85, 128, 84, 84, 84, 72, 65, 128, 84, 84, 84, + 65, 128, 84, 84, 83, 85, 128, 84, 84, 83, 79, 128, 84, 84, 83, 73, 128, + 84, 84, 83, 69, 69, 128, 84, 84, 83, 69, 128, 84, 84, 83, 65, 128, 84, + 84, 79, 79, 128, 84, 84, 73, 73, 128, 84, 84, 73, 128, 84, 84, 72, 87, + 69, 128, 84, 84, 72, 85, 128, 84, 84, 72, 79, 79, 128, 84, 84, 72, 79, + 128, 84, 84, 72, 73, 128, 84, 84, 72, 69, 69, 128, 84, 84, 72, 69, 128, + 84, 84, 72, 65, 65, 128, 84, 84, 72, 128, 84, 84, 69, 72, 69, 72, 128, + 84, 84, 69, 72, 69, 200, 84, 84, 69, 72, 128, 84, 84, 69, 200, 84, 84, + 69, 69, 128, 84, 84, 65, 89, 65, 78, 78, 65, 128, 84, 84, 65, 85, 128, + 84, 84, 65, 73, 128, 84, 84, 65, 65, 128, 84, 84, 50, 128, 84, 83, 87, + 69, 128, 84, 83, 87, 66, 128, 84, 83, 87, 65, 128, 84, 83, 86, 128, 84, + 83, 83, 69, 128, 84, 83, 83, 65, 128, 84, 83, 79, 214, 84, 83, 73, 85, + 128, 84, 83, 72, 85, 71, 83, 128, 84, 83, 72, 79, 79, 75, 128, 84, 83, + 72, 79, 79, 203, 84, 83, 72, 79, 79, 74, 128, 84, 83, 72, 69, 83, 128, + 84, 83, 72, 69, 71, 128, 84, 83, 72, 69, 199, 84, 83, 72, 69, 69, 74, + 128, 84, 83, 72, 69, 128, 84, 83, 72, 65, 194, 84, 83, 72, 65, 128, 84, + 83, 69, 82, 69, 128, 84, 83, 69, 69, 66, 128, 84, 83, 65, 84, 193, 84, + 83, 65, 68, 73, 128, 84, 83, 65, 68, 201, 84, 83, 65, 66, 128, 84, 83, + 65, 65, 68, 73, 89, 128, 84, 83, 65, 65, 128, 84, 83, 193, 84, 82, 89, + 66, 76, 73, 79, 206, 84, 82, 89, 65, 83, 79, 83, 84, 82, 69, 76, 78, 65, + 89, 65, 128, 84, 82, 89, 65, 83, 79, 80, 79, 86, 79, 68, 78, 65, 89, 65, + 128, 84, 82, 89, 65, 83, 79, 71, 76, 65, 83, 78, 65, 89, 65, 128, 84, 82, + 89, 65, 83, 75, 65, 128, 84, 82, 85, 84, 72, 128, 84, 82, 85, 78, 75, + 128, 84, 82, 85, 78, 67, 65, 84, 69, 196, 84, 82, 85, 77, 80, 69, 84, + 128, 84, 82, 85, 77, 80, 45, 57, 128, 84, 82, 85, 77, 80, 45, 56, 128, + 84, 82, 85, 77, 80, 45, 55, 128, 84, 82, 85, 77, 80, 45, 54, 128, 84, 82, + 85, 77, 80, 45, 53, 128, 84, 82, 85, 77, 80, 45, 52, 128, 84, 82, 85, 77, + 80, 45, 51, 128, 84, 82, 85, 77, 80, 45, 50, 49, 128, 84, 82, 85, 77, 80, + 45, 50, 48, 128, 84, 82, 85, 77, 80, 45, 50, 128, 84, 82, 85, 77, 80, 45, + 49, 57, 128, 84, 82, 85, 77, 80, 45, 49, 56, 128, 84, 82, 85, 77, 80, 45, + 49, 55, 128, 84, 82, 85, 77, 80, 45, 49, 54, 128, 84, 82, 85, 77, 80, 45, + 49, 53, 128, 84, 82, 85, 77, 80, 45, 49, 52, 128, 84, 82, 85, 77, 80, 45, + 49, 51, 128, 84, 82, 85, 77, 80, 45, 49, 50, 128, 84, 82, 85, 77, 80, 45, + 49, 49, 128, 84, 82, 85, 77, 80, 45, 49, 48, 128, 84, 82, 85, 77, 80, 45, + 49, 128, 84, 82, 85, 69, 128, 84, 82, 85, 197, 84, 82, 85, 67, 75, 128, + 84, 82, 79, 80, 73, 67, 65, 204, 84, 82, 79, 80, 72, 89, 128, 84, 82, 79, + 77, 73, 75, 79, 83, 89, 78, 65, 71, 77, 65, 128, 84, 82, 79, 77, 73, 75, + 79, 80, 83, 73, 70, 73, 83, 84, 79, 78, 128, 84, 82, 79, 77, 73, 75, 79, + 80, 65, 82, 65, 75, 65, 76, 69, 83, 77, 65, 128, 84, 82, 79, 77, 73, 75, + 79, 78, 128, 84, 82, 79, 77, 73, 75, 79, 206, 84, 82, 79, 77, 73, 75, 79, + 76, 89, 71, 73, 83, 77, 65, 128, 84, 82, 79, 76, 76, 69, 89, 66, 85, 83, + 128, 84, 82, 79, 76, 76, 69, 89, 128, 84, 82, 79, 76, 76, 128, 84, 82, + 79, 75, 85, 84, 65, 83, 84, 201, 84, 82, 79, 69, 90, 69, 78, 73, 65, 206, + 84, 82, 73, 85, 77, 80, 72, 128, 84, 82, 73, 84, 79, 211, 84, 82, 73, 84, + 73, 77, 79, 82, 73, 79, 78, 128, 84, 82, 73, 83, 73, 77, 79, 85, 128, 84, + 82, 73, 83, 69, 77, 69, 128, 84, 82, 73, 80, 79, 68, 128, 84, 82, 73, 80, + 76, 73, 128, 84, 82, 73, 80, 76, 69, 128, 84, 82, 73, 80, 76, 197, 84, + 82, 73, 79, 206, 84, 82, 73, 76, 76, 73, 79, 78, 83, 128, 84, 82, 73, 76, + 76, 128, 84, 82, 73, 73, 83, 65, 80, 128, 84, 82, 73, 71, 82, 65, 77, 77, + 79, 211, 84, 82, 73, 71, 82, 65, 205, 84, 82, 73, 71, 79, 82, 71, 79, 78, + 128, 84, 82, 73, 70, 79, 78, 73, 65, 83, 128, 84, 82, 73, 70, 79, 76, 73, + 65, 84, 197, 84, 82, 73, 68, 69, 78, 84, 128, 84, 82, 73, 68, 69, 78, + 212, 84, 82, 73, 67, 79, 76, 79, 78, 128, 84, 82, 73, 65, 78, 71, 85, 76, + 65, 210, 84, 82, 73, 65, 78, 71, 76, 69, 45, 82, 79, 85, 78, 196, 84, 82, + 73, 65, 78, 71, 76, 69, 45, 72, 69, 65, 68, 69, 196, 84, 82, 73, 65, 78, + 71, 76, 69, 128, 84, 82, 73, 65, 78, 71, 76, 197, 84, 82, 73, 65, 128, + 84, 82, 73, 128, 84, 82, 69, 83, 86, 69, 84, 76, 89, 128, 84, 82, 69, 83, + 86, 69, 84, 76, 79, 128, 84, 82, 69, 83, 86, 69, 84, 76, 65, 89, 65, 128, + 84, 82, 69, 83, 73, 76, 76, 79, 128, 84, 82, 69, 78, 68, 128, 84, 82, 69, + 78, 196, 84, 82, 69, 77, 79, 76, 79, 45, 51, 128, 84, 82, 69, 77, 79, 76, + 79, 45, 50, 128, 84, 82, 69, 77, 79, 76, 79, 45, 49, 128, 84, 82, 69, 69, + 128, 84, 82, 69, 197, 84, 82, 69, 68, 69, 67, 73, 76, 69, 128, 84, 82, + 69, 65, 68, 73, 78, 71, 128, 84, 82, 65, 89, 128, 84, 82, 65, 86, 69, 76, + 45, 87, 65, 76, 76, 80, 76, 65, 78, 197, 84, 82, 65, 86, 69, 76, 45, 70, + 76, 79, 79, 82, 80, 76, 65, 78, 197, 84, 82, 65, 80, 69, 90, 73, 85, 77, + 128, 84, 82, 65, 80, 128, 84, 82, 65, 78, 83, 86, 69, 82, 83, 65, 204, + 84, 82, 65, 78, 83, 80, 79, 83, 73, 84, 73, 79, 206, 84, 82, 65, 78, 83, + 80, 76, 85, 84, 79, 128, 84, 82, 65, 78, 83, 77, 73, 212, 84, 82, 65, 78, + 83, 77, 73, 83, 83, 73, 79, 78, 128, 84, 82, 65, 78, 83, 77, 73, 83, 83, + 73, 79, 206, 84, 82, 65, 77, 87, 65, 89, 128, 84, 82, 65, 77, 128, 84, + 82, 65, 205, 84, 82, 65, 73, 78, 128, 84, 82, 65, 73, 206, 84, 82, 65, + 73, 76, 73, 78, 199, 84, 82, 65, 70, 70, 73, 67, 128, 84, 82, 65, 70, 70, + 73, 195, 84, 82, 65, 68, 73, 84, 73, 79, 78, 65, 204, 84, 82, 65, 68, + 197, 84, 82, 65, 67, 84, 79, 82, 128, 84, 82, 65, 67, 75, 66, 65, 76, 76, + 128, 84, 82, 65, 67, 75, 128, 84, 82, 65, 128, 84, 82, 128, 84, 79, 89, + 79, 82, 128, 84, 79, 88, 128, 84, 79, 87, 69, 82, 128, 84, 79, 87, 65, + 82, 68, 211, 84, 79, 86, 128, 84, 79, 85, 82, 78, 79, 73, 211, 84, 79, + 85, 67, 72, 84, 79, 78, 197, 84, 79, 85, 67, 72, 73, 78, 199, 84, 79, 85, + 67, 72, 69, 211, 84, 79, 85, 67, 200, 84, 79, 84, 207, 84, 79, 84, 65, + 204, 84, 79, 84, 128, 84, 79, 83, 128, 84, 79, 82, 84, 79, 73, 83, 197, + 84, 79, 82, 83, 79, 45, 87, 65, 76, 76, 80, 76, 65, 78, 197, 84, 79, 82, + 83, 79, 45, 70, 76, 79, 79, 82, 80, 76, 65, 78, 197, 84, 79, 82, 83, 79, + 128, 84, 79, 82, 78, 65, 68, 79, 128, 84, 79, 82, 67, 85, 76, 85, 83, + 128, 84, 79, 82, 67, 85, 76, 85, 211, 84, 79, 82, 67, 72, 128, 84, 79, + 81, 128, 84, 79, 80, 66, 65, 82, 128, 84, 79, 80, 45, 76, 73, 71, 72, 84, + 69, 196, 84, 79, 80, 128, 84, 79, 208, 84, 79, 79, 84, 72, 66, 82, 85, + 83, 72, 128, 84, 79, 79, 84, 72, 128, 84, 79, 79, 78, 128, 84, 79, 79, + 76, 66, 79, 88, 128, 84, 79, 78, 79, 83, 128, 84, 79, 78, 71, 85, 69, + 128, 84, 79, 78, 71, 85, 197, 84, 79, 78, 71, 128, 84, 79, 78, 69, 45, + 86, 128, 84, 79, 78, 69, 45, 83, 128, 84, 79, 78, 69, 45, 77, 128, 84, + 79, 78, 69, 45, 74, 128, 84, 79, 78, 69, 45, 71, 128, 84, 79, 78, 69, 45, + 68, 128, 84, 79, 78, 69, 45, 66, 128, 84, 79, 78, 69, 45, 56, 128, 84, + 79, 78, 69, 45, 55, 128, 84, 79, 78, 69, 45, 54, 128, 84, 79, 78, 69, 45, + 53, 128, 84, 79, 78, 69, 45, 52, 128, 84, 79, 78, 69, 45, 51, 128, 84, + 79, 78, 69, 45, 50, 128, 84, 79, 78, 69, 45, 49, 128, 84, 79, 78, 69, + 128, 84, 79, 78, 65, 204, 84, 79, 77, 80, 73, 128, 84, 79, 77, 65, 84, + 79, 128, 84, 79, 76, 79, 78, 71, 128, 84, 79, 75, 89, 207, 84, 79, 73, + 76, 69, 84, 128, 84, 79, 71, 69, 84, 72, 69, 82, 128, 84, 79, 68, 207, + 84, 79, 67, 72, 75, 65, 128, 84, 79, 65, 78, 68, 65, 75, 72, 73, 65, 84, + 128, 84, 79, 65, 128, 84, 79, 45, 82, 65, 128, 84, 79, 45, 54, 128, 84, + 79, 45, 53, 128, 84, 79, 45, 52, 128, 84, 79, 45, 51, 128, 84, 79, 45, + 50, 128, 84, 79, 45, 49, 128, 84, 78, 128, 84, 76, 86, 128, 84, 76, 85, + 128, 84, 76, 73, 128, 84, 76, 72, 89, 65, 128, 84, 76, 72, 87, 69, 128, + 84, 76, 72, 85, 128, 84, 76, 72, 79, 79, 128, 84, 76, 72, 79, 128, 84, + 76, 72, 73, 128, 84, 76, 72, 69, 69, 128, 84, 76, 72, 69, 128, 84, 76, + 72, 65, 128, 84, 76, 69, 69, 128, 84, 76, 65, 128, 84, 74, 69, 128, 84, + 73, 88, 128, 84, 73, 87, 82, 128, 84, 73, 87, 78, 128, 84, 73, 87, 65, + 218, 84, 73, 84, 85, 65, 69, 80, 128, 84, 73, 84, 76, 79, 128, 84, 73, + 84, 76, 207, 84, 73, 84, 193, 84, 73, 84, 128, 84, 73, 82, 89, 65, 75, + 128, 84, 73, 82, 84, 193, 84, 73, 82, 79, 78, 73, 65, 206, 84, 73, 82, + 72, 85, 84, 193, 84, 73, 82, 69, 196, 84, 73, 82, 128, 84, 73, 210, 84, + 73, 80, 80, 73, 128, 84, 73, 80, 69, 72, 65, 128, 84, 73, 80, 128, 84, + 73, 208, 84, 73, 78, 89, 128, 84, 73, 78, 217, 84, 73, 78, 78, 69, 128, + 84, 73, 78, 67, 84, 85, 82, 69, 128, 84, 73, 78, 65, 71, 77, 65, 128, 84, + 73, 77, 69, 83, 128, 84, 73, 77, 69, 210, 84, 73, 77, 69, 128, 84, 73, + 76, 84, 73, 78, 71, 128, 84, 73, 76, 84, 73, 78, 199, 84, 73, 76, 84, + 128, 84, 73, 76, 69, 83, 128, 84, 73, 76, 68, 69, 128, 84, 73, 76, 68, + 197, 84, 73, 76, 128, 84, 73, 204, 84, 73, 75, 72, 89, 128, 84, 73, 75, + 72, 65, 89, 65, 128, 84, 73, 75, 72, 65, 89, 193, 84, 73, 75, 69, 85, 84, + 45, 84, 72, 73, 69, 85, 84, 72, 128, 84, 73, 75, 69, 85, 84, 45, 83, 73, + 79, 83, 45, 75, 73, 89, 69, 79, 75, 128, 84, 73, 75, 69, 85, 84, 45, 83, + 73, 79, 83, 128, 84, 73, 75, 69, 85, 84, 45, 82, 73, 69, 85, 76, 128, 84, + 73, 75, 69, 85, 84, 45, 80, 73, 69, 85, 80, 128, 84, 73, 75, 69, 85, 84, + 45, 77, 73, 69, 85, 77, 128, 84, 73, 75, 69, 85, 84, 45, 75, 73, 89, 69, + 79, 75, 128, 84, 73, 75, 69, 85, 84, 45, 67, 73, 69, 85, 67, 128, 84, 73, + 75, 69, 85, 84, 45, 67, 72, 73, 69, 85, 67, 72, 128, 84, 73, 75, 69, 85, + 84, 128, 84, 73, 75, 69, 85, 212, 84, 73, 71, 72, 84, 76, 89, 45, 67, 76, + 79, 83, 69, 196, 84, 73, 71, 72, 212, 84, 73, 71, 69, 82, 128, 84, 73, + 71, 69, 210, 84, 73, 70, 73, 78, 65, 71, 200, 84, 73, 69, 88, 128, 84, + 73, 69, 80, 128, 84, 73, 197, 84, 73, 67, 75, 69, 84, 83, 128, 84, 73, + 67, 75, 69, 84, 128, 84, 73, 67, 75, 128, 84, 73, 67, 203, 84, 73, 65, + 82, 65, 128, 84, 73, 50, 128, 84, 73, 45, 55, 128, 84, 73, 45, 54, 128, + 84, 73, 45, 53, 128, 84, 73, 45, 52, 128, 84, 73, 45, 51, 128, 84, 73, + 45, 50, 128, 84, 73, 45, 49, 128, 84, 72, 90, 128, 84, 72, 89, 79, 79, + 205, 84, 72, 87, 79, 79, 128, 84, 72, 87, 79, 128, 84, 72, 87, 73, 73, + 128, 84, 72, 87, 73, 128, 84, 72, 87, 69, 69, 128, 84, 72, 87, 65, 65, + 128, 84, 72, 87, 65, 128, 84, 72, 85, 82, 211, 84, 72, 85, 82, 73, 83, + 65, 218, 84, 72, 85, 78, 71, 128, 84, 72, 85, 78, 68, 69, 82, 83, 84, 79, + 82, 77, 128, 84, 72, 85, 78, 68, 69, 82, 128, 84, 72, 85, 78, 68, 69, 210, 84, 72, 85, 77, 66, 211, 84, 72, 85, 77, 66, 128, 84, 72, 82, 79, 87, 73, 78, 199, 84, 72, 82, 79, 85, 71, 72, 128, 84, 72, 82, 79, 85, 71, 200, 84, 72, 82, 69, 69, 45, 84, 72, 73, 82, 84, 89, 128, 84, 72, 82, 69, @@ -910,274 +912,274 @@ static const unsigned char lexicon[] = { 65, 212, 83, 87, 65, 83, 200, 83, 87, 65, 80, 80, 73, 78, 71, 128, 83, 87, 65, 78, 128, 83, 87, 65, 65, 128, 83, 87, 128, 83, 86, 65, 83, 84, 201, 83, 86, 65, 82, 73, 84, 65, 128, 83, 86, 65, 82, 73, 84, 193, 83, - 85, 88, 128, 83, 85, 85, 128, 83, 85, 84, 82, 193, 83, 85, 84, 128, 83, - 85, 83, 80, 69, 78, 83, 73, 79, 206, 83, 85, 83, 72, 73, 128, 83, 85, 82, - 89, 65, 128, 83, 85, 82, 88, 128, 83, 85, 82, 82, 79, 85, 78, 68, 128, - 83, 85, 82, 82, 79, 85, 78, 196, 83, 85, 82, 70, 69, 82, 128, 83, 85, 82, - 70, 65, 67, 197, 83, 85, 82, 69, 128, 83, 85, 82, 65, 78, 71, 128, 83, - 85, 82, 57, 128, 83, 85, 82, 128, 83, 85, 210, 83, 85, 80, 82, 65, 76, - 73, 78, 69, 65, 210, 83, 85, 80, 69, 82, 86, 73, 83, 69, 128, 83, 85, 80, - 69, 82, 86, 73, 76, 76, 65, 73, 78, 128, 83, 85, 80, 69, 82, 83, 69, 84, - 128, 83, 85, 80, 69, 82, 83, 69, 212, 83, 85, 80, 69, 82, 83, 67, 82, 73, - 80, 212, 83, 85, 80, 69, 82, 73, 77, 80, 79, 83, 69, 196, 83, 85, 80, 69, - 82, 72, 69, 82, 79, 128, 83, 85, 80, 69, 82, 70, 73, 88, 69, 196, 83, 85, - 80, 69, 210, 83, 85, 80, 128, 83, 85, 79, 88, 128, 83, 85, 79, 80, 128, - 83, 85, 79, 128, 83, 85, 78, 83, 69, 212, 83, 85, 78, 82, 73, 83, 69, - 128, 83, 85, 78, 82, 73, 83, 197, 83, 85, 78, 71, 76, 65, 83, 83, 69, 83, - 128, 83, 85, 78, 71, 128, 83, 85, 78, 70, 76, 79, 87, 69, 82, 128, 83, - 85, 78, 68, 65, 78, 69, 83, 197, 83, 85, 78, 128, 83, 85, 206, 83, 85, - 77, 77, 69, 82, 128, 83, 85, 77, 77, 65, 84, 73, 79, 78, 128, 83, 85, 77, - 77, 65, 84, 73, 79, 206, 83, 85, 77, 65, 83, 72, 128, 83, 85, 77, 128, - 83, 85, 76, 70, 85, 82, 128, 83, 85, 75, 85, 78, 128, 83, 85, 75, 85, - 206, 83, 85, 75, 85, 128, 83, 85, 75, 213, 83, 85, 73, 84, 65, 66, 76, - 69, 128, 83, 85, 73, 212, 83, 85, 72, 85, 82, 128, 83, 85, 69, 128, 83, - 85, 68, 50, 128, 83, 85, 68, 128, 83, 85, 67, 75, 73, 78, 199, 83, 85, - 67, 75, 69, 68, 128, 83, 85, 67, 203, 83, 85, 67, 67, 69, 69, 68, 83, - 128, 83, 85, 67, 67, 69, 69, 68, 211, 83, 85, 67, 67, 69, 69, 68, 128, - 83, 85, 67, 67, 69, 69, 196, 83, 85, 66, 85, 78, 73, 84, 128, 83, 85, 66, - 83, 84, 73, 84, 85, 84, 73, 79, 206, 83, 85, 66, 83, 84, 73, 84, 85, 84, - 69, 128, 83, 85, 66, 83, 84, 73, 84, 85, 84, 197, 83, 85, 66, 83, 69, 84, - 128, 83, 85, 66, 83, 69, 212, 83, 85, 66, 83, 67, 82, 73, 80, 212, 83, - 85, 66, 80, 85, 78, 67, 84, 73, 83, 128, 83, 85, 66, 76, 73, 78, 69, 65, - 210, 83, 85, 66, 76, 73, 77, 65, 84, 73, 79, 78, 128, 83, 85, 66, 76, 73, - 77, 65, 84, 69, 45, 51, 128, 83, 85, 66, 76, 73, 77, 65, 84, 69, 45, 50, - 128, 83, 85, 66, 76, 73, 77, 65, 84, 69, 128, 83, 85, 66, 76, 73, 77, 65, - 84, 197, 83, 85, 66, 74, 79, 73, 78, 69, 82, 128, 83, 85, 66, 74, 79, 73, - 78, 69, 196, 83, 85, 66, 74, 69, 67, 84, 128, 83, 85, 66, 73, 84, 79, - 128, 83, 85, 66, 72, 65, 65, 78, 65, 72, 213, 83, 85, 66, 71, 82, 79, 85, - 80, 128, 83, 85, 66, 71, 82, 79, 85, 208, 83, 85, 66, 128, 83, 85, 65, - 77, 128, 83, 85, 65, 69, 84, 128, 83, 85, 65, 69, 78, 128, 83, 85, 65, - 69, 128, 83, 85, 65, 66, 128, 83, 85, 65, 128, 83, 85, 45, 56, 128, 83, - 85, 45, 55, 128, 83, 85, 45, 54, 128, 83, 85, 45, 53, 128, 83, 85, 45, - 52, 128, 83, 85, 45, 51, 128, 83, 85, 45, 50, 128, 83, 85, 45, 49, 128, - 83, 213, 83, 84, 88, 128, 83, 84, 87, 65, 128, 83, 84, 85, 80, 65, 128, - 83, 84, 85, 70, 70, 69, 196, 83, 84, 85, 68, 89, 128, 83, 84, 85, 68, 73, - 207, 83, 84, 85, 67, 75, 45, 79, 85, 212, 83, 84, 83, 128, 83, 84, 82, - 79, 78, 199, 83, 84, 82, 79, 75, 69, 83, 128, 83, 84, 82, 79, 75, 69, - 211, 83, 84, 82, 79, 75, 69, 45, 57, 128, 83, 84, 82, 79, 75, 69, 45, 56, - 128, 83, 84, 82, 79, 75, 69, 45, 55, 128, 83, 84, 82, 79, 75, 69, 45, 54, - 128, 83, 84, 82, 79, 75, 69, 45, 53, 128, 83, 84, 82, 79, 75, 69, 45, 52, - 128, 83, 84, 82, 79, 75, 69, 45, 51, 128, 83, 84, 82, 79, 75, 69, 45, 50, - 128, 83, 84, 82, 79, 75, 69, 45, 49, 49, 128, 83, 84, 82, 79, 75, 69, 45, - 49, 48, 128, 83, 84, 82, 79, 75, 69, 45, 49, 128, 83, 84, 82, 79, 75, - 197, 83, 84, 82, 73, 80, 69, 128, 83, 84, 82, 73, 78, 71, 128, 83, 84, - 82, 73, 78, 199, 83, 84, 82, 73, 75, 69, 84, 72, 82, 79, 85, 71, 72, 128, - 83, 84, 82, 73, 75, 197, 83, 84, 82, 73, 68, 69, 128, 83, 84, 82, 73, 67, - 84, 76, 217, 83, 84, 82, 69, 84, 67, 72, 69, 196, 83, 84, 82, 69, 84, 67, - 72, 128, 83, 84, 82, 69, 83, 211, 83, 84, 82, 69, 78, 71, 84, 72, 128, - 83, 84, 82, 69, 76, 193, 83, 84, 82, 69, 65, 77, 69, 82, 128, 83, 84, 82, - 65, 87, 66, 69, 82, 82, 89, 128, 83, 84, 82, 65, 87, 128, 83, 84, 82, 65, - 84, 85, 77, 45, 50, 128, 83, 84, 82, 65, 84, 85, 77, 128, 83, 84, 82, 65, - 84, 85, 205, 83, 84, 82, 65, 84, 73, 65, 206, 83, 84, 82, 65, 78, 78, 79, - 128, 83, 84, 82, 65, 78, 78, 207, 83, 84, 82, 65, 73, 78, 69, 82, 128, - 83, 84, 82, 65, 73, 71, 72, 84, 78, 69, 83, 83, 128, 83, 84, 82, 65, 73, - 71, 72, 84, 128, 83, 84, 82, 65, 73, 71, 72, 212, 83, 84, 82, 65, 73, 70, - 128, 83, 84, 82, 65, 71, 71, 73, 83, 77, 65, 84, 65, 128, 83, 84, 79, 86, - 69, 128, 83, 84, 79, 82, 69, 128, 83, 84, 79, 80, 87, 65, 84, 67, 72, - 128, 83, 84, 79, 80, 80, 73, 78, 71, 128, 83, 84, 79, 80, 80, 65, 71, 69, - 128, 83, 84, 79, 80, 73, 84, 83, 65, 128, 83, 84, 79, 80, 73, 84, 83, - 193, 83, 84, 79, 80, 128, 83, 84, 79, 208, 83, 84, 79, 78, 69, 128, 83, - 84, 79, 67, 75, 128, 83, 84, 79, 67, 203, 83, 84, 73, 82, 82, 85, 208, - 83, 84, 73, 77, 77, 69, 128, 83, 84, 73, 76, 204, 83, 84, 73, 76, 197, - 83, 84, 73, 71, 77, 65, 128, 83, 84, 73, 67, 75, 73, 78, 199, 83, 84, 73, - 67, 203, 83, 84, 69, 84, 72, 79, 83, 67, 79, 80, 69, 128, 83, 84, 69, 82, - 69, 79, 128, 83, 84, 69, 80, 128, 83, 84, 69, 78, 79, 71, 82, 65, 80, 72, - 73, 195, 83, 84, 69, 77, 128, 83, 84, 69, 65, 77, 217, 83, 84, 69, 65, - 77, 73, 78, 199, 83, 84, 69, 65, 77, 128, 83, 84, 69, 65, 205, 83, 84, - 65, 86, 82, 79, 85, 128, 83, 84, 65, 86, 82, 79, 83, 128, 83, 84, 65, 86, - 82, 79, 211, 83, 84, 65, 85, 82, 79, 83, 128, 83, 84, 65, 84, 89, 65, - 128, 83, 84, 65, 84, 89, 193, 83, 84, 65, 84, 85, 197, 83, 84, 65, 84, - 73, 79, 78, 128, 83, 84, 65, 84, 69, 82, 83, 128, 83, 84, 65, 84, 69, - 128, 83, 84, 65, 82, 84, 73, 78, 199, 83, 84, 65, 82, 84, 128, 83, 84, - 65, 82, 212, 83, 84, 65, 82, 83, 128, 83, 84, 65, 82, 82, 69, 196, 83, - 84, 65, 82, 75, 128, 83, 84, 65, 82, 128, 83, 84, 65, 210, 83, 84, 65, - 78, 68, 83, 84, 73, 76, 76, 128, 83, 84, 65, 78, 68, 73, 78, 199, 83, 84, - 65, 78, 68, 65, 82, 196, 83, 84, 65, 78, 68, 128, 83, 84, 65, 78, 128, - 83, 84, 65, 77, 80, 69, 196, 83, 84, 65, 76, 76, 73, 79, 78, 128, 83, 84, - 65, 70, 70, 128, 83, 84, 65, 70, 198, 83, 84, 65, 68, 73, 85, 77, 128, - 83, 84, 65, 67, 75, 69, 196, 83, 84, 65, 67, 67, 65, 84, 79, 128, 83, 84, - 65, 67, 67, 65, 84, 73, 83, 83, 73, 77, 79, 128, 83, 84, 50, 128, 83, 83, - 89, 88, 128, 83, 83, 89, 84, 128, 83, 83, 89, 82, 88, 128, 83, 83, 89, - 82, 128, 83, 83, 89, 80, 128, 83, 83, 89, 128, 83, 83, 85, 88, 128, 83, - 83, 85, 85, 128, 83, 83, 85, 84, 128, 83, 83, 85, 80, 128, 83, 83, 79, - 88, 128, 83, 83, 79, 84, 128, 83, 83, 79, 80, 128, 83, 83, 79, 79, 128, - 83, 83, 79, 128, 83, 83, 73, 88, 128, 83, 83, 73, 84, 128, 83, 83, 73, - 80, 128, 83, 83, 73, 73, 128, 83, 83, 73, 69, 88, 128, 83, 83, 73, 69, - 80, 128, 83, 83, 73, 69, 128, 83, 83, 72, 73, 78, 128, 83, 83, 72, 69, - 128, 83, 83, 69, 88, 128, 83, 83, 69, 80, 128, 83, 83, 69, 69, 128, 83, - 83, 65, 88, 128, 83, 83, 65, 85, 128, 83, 83, 65, 84, 128, 83, 83, 65, - 80, 128, 83, 83, 65, 78, 71, 89, 69, 83, 73, 69, 85, 78, 71, 128, 83, 83, - 65, 78, 71, 89, 69, 79, 82, 73, 78, 72, 73, 69, 85, 72, 128, 83, 83, 65, - 78, 71, 84, 73, 75, 69, 85, 84, 45, 80, 73, 69, 85, 80, 128, 83, 83, 65, - 78, 71, 84, 73, 75, 69, 85, 84, 128, 83, 83, 65, 78, 71, 84, 72, 73, 69, - 85, 84, 72, 128, 83, 83, 65, 78, 71, 83, 73, 79, 83, 45, 84, 73, 75, 69, - 85, 84, 128, 83, 83, 65, 78, 71, 83, 73, 79, 83, 45, 80, 73, 69, 85, 80, - 128, 83, 83, 65, 78, 71, 83, 73, 79, 83, 45, 75, 73, 89, 69, 79, 75, 128, - 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 83, 83, 65, 78, 71, 82, 73, 69, - 85, 76, 45, 75, 72, 73, 69, 85, 75, 72, 128, 83, 83, 65, 78, 71, 82, 73, - 69, 85, 76, 128, 83, 83, 65, 78, 71, 80, 73, 69, 85, 80, 128, 83, 83, 65, - 78, 71, 78, 73, 69, 85, 78, 128, 83, 83, 65, 78, 71, 77, 73, 69, 85, 77, - 128, 83, 83, 65, 78, 71, 73, 69, 85, 78, 71, 128, 83, 83, 65, 78, 71, 72, - 73, 69, 85, 72, 128, 83, 83, 65, 78, 71, 67, 73, 69, 85, 67, 45, 72, 73, - 69, 85, 72, 128, 83, 83, 65, 78, 71, 67, 73, 69, 85, 67, 128, 83, 83, 65, - 78, 71, 65, 82, 65, 69, 65, 128, 83, 83, 65, 73, 128, 83, 83, 65, 65, - 128, 83, 83, 51, 128, 83, 83, 50, 128, 83, 82, 69, 68, 78, 197, 83, 82, - 128, 83, 81, 85, 73, 83, 200, 83, 81, 85, 73, 82, 82, 69, 204, 83, 81, - 85, 73, 71, 71, 76, 197, 83, 81, 85, 73, 68, 128, 83, 81, 85, 69, 69, 90, - 69, 68, 128, 83, 81, 85, 69, 69, 90, 197, 83, 81, 85, 65, 212, 83, 81, - 85, 65, 82, 69, 83, 128, 83, 81, 85, 65, 82, 69, 68, 128, 83, 81, 85, 65, - 82, 69, 128, 83, 80, 89, 128, 83, 80, 87, 65, 128, 83, 80, 85, 78, 71, - 211, 83, 80, 82, 79, 85, 84, 128, 83, 80, 82, 73, 78, 71, 83, 128, 83, - 80, 82, 73, 78, 71, 128, 83, 80, 82, 69, 67, 72, 71, 69, 83, 65, 78, 199, - 83, 80, 82, 69, 65, 68, 128, 83, 80, 82, 69, 65, 196, 83, 80, 79, 85, 84, - 73, 78, 199, 83, 80, 79, 84, 128, 83, 80, 79, 82, 84, 211, 83, 80, 79, - 79, 78, 128, 83, 80, 79, 79, 204, 83, 80, 79, 78, 71, 69, 128, 83, 80, - 79, 128, 83, 80, 76, 73, 84, 84, 73, 78, 199, 83, 80, 76, 73, 84, 128, - 83, 80, 76, 73, 212, 83, 80, 76, 65, 89, 69, 68, 128, 83, 80, 76, 65, 83, - 72, 73, 78, 199, 83, 80, 73, 82, 73, 84, 85, 211, 83, 80, 73, 82, 73, 84, - 128, 83, 80, 73, 82, 73, 212, 83, 80, 73, 82, 65, 78, 84, 128, 83, 80, - 73, 82, 65, 76, 128, 83, 80, 73, 82, 65, 204, 83, 80, 73, 78, 69, 128, - 83, 80, 73, 68, 69, 82, 217, 83, 80, 73, 68, 69, 82, 128, 83, 80, 73, 68, - 69, 210, 83, 80, 73, 67, 69, 128, 83, 80, 73, 128, 83, 80, 72, 69, 82, - 73, 67, 65, 204, 83, 80, 69, 83, 77, 73, 76, 207, 83, 80, 69, 78, 212, - 83, 80, 69, 69, 68, 66, 79, 65, 84, 128, 83, 80, 69, 69, 67, 72, 128, 83, - 80, 69, 69, 67, 200, 83, 80, 69, 67, 73, 65, 76, 128, 83, 80, 69, 65, 82, - 128, 83, 80, 69, 65, 75, 73, 78, 199, 83, 80, 69, 65, 75, 69, 82, 128, - 83, 80, 69, 65, 75, 69, 210, 83, 80, 69, 65, 75, 45, 78, 79, 45, 69, 86, - 73, 204, 83, 80, 69, 128, 83, 80, 65, 84, 72, 73, 128, 83, 80, 65, 82, - 75, 76, 73, 78, 199, 83, 80, 65, 82, 75, 76, 69, 83, 128, 83, 80, 65, 82, - 75, 76, 69, 82, 128, 83, 80, 65, 82, 75, 76, 69, 128, 83, 80, 65, 71, 72, - 69, 84, 84, 73, 128, 83, 80, 65, 68, 69, 83, 128, 83, 80, 65, 68, 197, - 83, 80, 65, 67, 73, 78, 199, 83, 80, 65, 67, 197, 83, 80, 65, 128, 83, - 79, 89, 79, 77, 66, 207, 83, 79, 89, 128, 83, 79, 87, 73, 76, 207, 83, - 79, 87, 128, 83, 79, 85, 84, 72, 69, 82, 206, 83, 79, 85, 84, 72, 45, 83, - 76, 65, 86, 69, 217, 83, 79, 85, 84, 200, 83, 79, 85, 82, 67, 69, 128, - 83, 79, 85, 78, 68, 128, 83, 79, 85, 78, 196, 83, 79, 85, 78, 65, 80, - 128, 83, 79, 85, 128, 83, 79, 83, 128, 83, 79, 82, 79, 67, 72, 89, 193, - 83, 79, 82, 73, 128, 83, 79, 82, 193, 83, 79, 81, 128, 83, 79, 79, 206, - 83, 79, 78, 74, 65, 77, 128, 83, 79, 78, 71, 128, 83, 79, 78, 128, 83, - 79, 77, 80, 69, 78, 199, 83, 79, 77, 128, 83, 79, 205, 83, 79, 76, 73, - 68, 85, 83, 128, 83, 79, 76, 73, 68, 85, 211, 83, 79, 76, 73, 196, 83, - 79, 76, 68, 73, 69, 82, 128, 83, 79, 72, 128, 83, 79, 71, 68, 73, 65, - 206, 83, 79, 70, 84, 87, 65, 82, 69, 45, 70, 85, 78, 67, 84, 73, 79, 206, - 83, 79, 70, 84, 78, 69, 83, 83, 128, 83, 79, 70, 84, 66, 65, 76, 76, 128, - 83, 79, 70, 212, 83, 79, 198, 83, 79, 67, 75, 83, 128, 83, 79, 67, 73, - 69, 84, 89, 128, 83, 79, 67, 67, 69, 210, 83, 79, 65, 80, 128, 83, 79, - 65, 128, 83, 79, 45, 55, 128, 83, 79, 45, 54, 128, 83, 79, 45, 53, 128, - 83, 79, 45, 52, 128, 83, 79, 45, 51, 128, 83, 79, 45, 50, 128, 83, 79, - 45, 49, 128, 83, 207, 83, 78, 79, 87, 77, 65, 78, 128, 83, 78, 79, 87, - 77, 65, 206, 83, 78, 79, 87, 70, 76, 65, 75, 69, 128, 83, 78, 79, 87, 66, - 79, 65, 82, 68, 69, 82, 128, 83, 78, 79, 87, 128, 83, 78, 79, 215, 83, - 78, 79, 85, 84, 128, 83, 78, 79, 85, 212, 83, 78, 69, 69, 90, 73, 78, - 199, 83, 78, 65, 208, 83, 78, 65, 75, 69, 128, 83, 78, 65, 75, 197, 83, - 78, 65, 73, 76, 128, 83, 78, 193, 83, 77, 79, 75, 73, 78, 199, 83, 77, - 73, 82, 75, 73, 78, 199, 83, 77, 73, 76, 73, 78, 199, 83, 77, 73, 76, 69, - 128, 83, 77, 73, 76, 197, 83, 77, 69, 65, 82, 128, 83, 77, 65, 83, 200, - 83, 77, 65, 76, 76, 69, 210, 83, 77, 65, 76, 76, 128, 83, 76, 85, 82, - 128, 83, 76, 79, 90, 72, 73, 84, 73, 69, 128, 83, 76, 79, 90, 72, 73, 84, - 73, 197, 83, 76, 79, 87, 76, 89, 128, 83, 76, 79, 87, 128, 83, 76, 79, - 215, 83, 76, 79, 86, 79, 128, 83, 76, 79, 84, 72, 128, 83, 76, 79, 212, - 83, 76, 79, 80, 73, 78, 199, 83, 76, 79, 80, 69, 128, 83, 76, 79, 65, - 206, 83, 76, 73, 78, 71, 128, 83, 76, 73, 71, 72, 84, 76, 217, 83, 76, - 73, 68, 73, 78, 71, 128, 83, 76, 73, 68, 69, 82, 128, 83, 76, 73, 68, 69, - 128, 83, 76, 73, 67, 69, 128, 83, 76, 73, 67, 197, 83, 76, 69, 85, 84, - 200, 83, 76, 69, 69, 80, 217, 83, 76, 69, 69, 80, 73, 78, 199, 83, 76, - 69, 69, 208, 83, 76, 69, 68, 128, 83, 76, 65, 86, 79, 78, 73, 195, 83, - 76, 65, 86, 69, 128, 83, 76, 65, 83, 72, 128, 83, 76, 65, 83, 200, 83, - 76, 65, 78, 84, 69, 196, 83, 75, 87, 65, 128, 83, 75, 87, 128, 83, 75, - 85, 78, 75, 128, 83, 75, 85, 76, 76, 128, 83, 75, 85, 76, 204, 83, 75, - 79, 66, 65, 128, 83, 75, 76, 73, 82, 79, 206, 83, 75, 73, 78, 128, 83, - 75, 73, 69, 82, 128, 83, 75, 201, 83, 75, 69, 87, 69, 196, 83, 75, 65, - 84, 69, 66, 79, 65, 82, 68, 128, 83, 75, 65, 84, 69, 128, 83, 75, 65, 77, - 69, 89, 84, 83, 193, 83, 75, 128, 83, 74, 69, 128, 83, 73, 90, 197, 83, - 73, 88, 84, 89, 45, 70, 79, 85, 82, 84, 72, 83, 128, 83, 73, 88, 84, 89, - 45, 70, 79, 85, 82, 84, 72, 128, 83, 73, 88, 84, 89, 45, 70, 79, 85, 82, - 84, 200, 83, 73, 88, 84, 89, 128, 83, 73, 88, 84, 217, 83, 73, 88, 84, - 72, 83, 128, 83, 73, 88, 84, 72, 211, 83, 73, 88, 84, 72, 128, 83, 73, - 88, 84, 69, 69, 78, 84, 72, 83, 128, 83, 73, 88, 84, 69, 69, 78, 84, 72, - 45, 50, 128, 83, 73, 88, 84, 69, 69, 78, 84, 72, 45, 49, 128, 83, 73, 88, - 84, 69, 69, 78, 84, 72, 128, 83, 73, 88, 84, 69, 69, 78, 84, 200, 83, 73, - 88, 84, 69, 69, 78, 128, 83, 73, 88, 84, 69, 69, 206, 83, 73, 88, 45, 84, - 72, 73, 82, 84, 89, 128, 83, 73, 88, 45, 83, 84, 82, 73, 78, 199, 83, 73, - 88, 45, 80, 69, 82, 45, 69, 205, 83, 73, 88, 45, 76, 73, 78, 197, 83, 73, - 216, 83, 73, 84, 69, 128, 83, 73, 83, 65, 128, 83, 73, 82, 82, 65, 72, - 128, 83, 73, 82, 73, 78, 71, 85, 128, 83, 73, 79, 83, 45, 84, 72, 73, 69, - 85, 84, 72, 128, 83, 73, 79, 83, 45, 83, 83, 65, 78, 71, 83, 73, 79, 83, - 128, 83, 73, 79, 83, 45, 82, 73, 69, 85, 76, 128, 83, 73, 79, 83, 45, 80, - 73, 69, 85, 80, 45, 75, 73, 89, 69, 79, 75, 128, 83, 73, 79, 83, 45, 80, - 72, 73, 69, 85, 80, 72, 128, 83, 73, 79, 83, 45, 80, 65, 78, 83, 73, 79, - 83, 128, 83, 73, 79, 83, 45, 78, 73, 69, 85, 78, 128, 83, 73, 79, 83, 45, - 77, 73, 69, 85, 77, 128, 83, 73, 79, 83, 45, 75, 72, 73, 69, 85, 75, 72, - 128, 83, 73, 79, 83, 45, 75, 65, 80, 89, 69, 79, 85, 78, 80, 73, 69, 85, - 80, 128, 83, 73, 79, 83, 45, 73, 69, 85, 78, 71, 128, 83, 73, 79, 83, 45, - 72, 73, 69, 85, 72, 128, 83, 73, 79, 83, 45, 67, 73, 69, 85, 67, 128, 83, - 73, 79, 83, 45, 67, 72, 73, 69, 85, 67, 72, 128, 83, 73, 79, 211, 83, 73, - 78, 85, 83, 79, 73, 196, 83, 73, 78, 79, 76, 79, 71, 73, 67, 65, 204, 83, - 73, 78, 78, 89, 73, 73, 89, 72, 69, 128, 83, 73, 78, 75, 73, 78, 71, 128, - 83, 73, 78, 71, 76, 69, 45, 83, 72, 73, 70, 84, 45, 51, 128, 83, 73, 78, - 71, 76, 69, 45, 83, 72, 73, 70, 84, 45, 50, 128, 83, 73, 78, 71, 76, 69, - 45, 76, 73, 78, 197, 83, 73, 78, 71, 76, 69, 128, 83, 73, 78, 71, 76, - 197, 83, 73, 78, 71, 65, 65, 84, 128, 83, 73, 78, 197, 83, 73, 78, 68, - 72, 201, 83, 73, 78, 128, 83, 73, 206, 83, 73, 77, 85, 76, 84, 65, 78, - 69, 79, 85, 83, 128, 83, 73, 77, 85, 76, 84, 65, 78, 69, 79, 85, 211, 83, - 73, 77, 80, 76, 73, 70, 73, 69, 196, 83, 73, 77, 73, 76, 65, 82, 128, 83, - 73, 77, 73, 76, 65, 210, 83, 73, 77, 65, 78, 83, 73, 211, 83, 73, 77, 65, - 76, 85, 78, 71, 85, 206, 83, 73, 77, 65, 128, 83, 73, 76, 86, 69, 82, - 128, 83, 73, 76, 75, 128, 83, 73, 76, 73, 81, 85, 193, 83, 73, 76, 72, - 79, 85, 69, 84, 84, 69, 128, 83, 73, 76, 72, 79, 85, 69, 84, 84, 197, 83, - 73, 76, 65, 51, 128, 83, 73, 75, 73, 128, 83, 73, 75, 50, 128, 83, 73, - 75, 178, 83, 73, 71, 78, 83, 128, 83, 73, 71, 77, 79, 73, 196, 83, 73, - 71, 77, 65, 128, 83, 73, 71, 77, 193, 83, 73, 71, 69, 204, 83, 73, 71, - 52, 128, 83, 73, 71, 180, 83, 73, 71, 128, 83, 73, 69, 69, 128, 83, 73, - 68, 69, 87, 65, 89, 211, 83, 73, 68, 69, 128, 83, 73, 68, 197, 83, 73, - 68, 68, 72, 73, 128, 83, 73, 68, 68, 72, 65, 77, 128, 83, 73, 68, 68, 72, - 65, 205, 83, 73, 67, 75, 78, 69, 83, 83, 128, 83, 73, 67, 75, 76, 69, - 128, 83, 73, 66, 197, 83, 73, 65, 128, 83, 73, 45, 54, 128, 83, 73, 45, - 53, 128, 83, 73, 45, 52, 128, 83, 73, 45, 51, 128, 83, 73, 45, 50, 128, - 83, 73, 45, 49, 128, 83, 201, 83, 72, 89, 88, 128, 83, 72, 89, 84, 128, - 83, 72, 89, 82, 88, 128, 83, 72, 89, 82, 128, 83, 72, 89, 80, 128, 83, - 72, 89, 69, 128, 83, 72, 89, 65, 128, 83, 72, 89, 128, 83, 72, 87, 79, - 89, 128, 83, 72, 87, 79, 79, 128, 83, 72, 87, 79, 128, 83, 72, 87, 73, - 73, 128, 83, 72, 87, 73, 128, 83, 72, 87, 69, 128, 83, 72, 87, 197, 83, - 72, 87, 65, 65, 128, 83, 72, 87, 65, 128, 83, 72, 86, 128, 83, 72, 85, - 88, 128, 83, 72, 85, 85, 128, 83, 72, 85, 84, 84, 76, 69, 67, 79, 67, 75, - 128, 83, 72, 85, 84, 128, 83, 72, 85, 82, 88, 128, 83, 72, 85, 82, 128, - 83, 72, 85, 80, 128, 83, 72, 85, 79, 88, 128, 83, 72, 85, 79, 80, 128, - 83, 72, 85, 79, 128, 83, 72, 85, 77, 128, 83, 72, 85, 76, 128, 83, 72, - 85, 70, 70, 76, 197, 83, 72, 85, 69, 81, 128, 83, 72, 85, 69, 78, 83, 72, - 85, 69, 84, 128, 83, 72, 85, 66, 85, 82, 128, 83, 72, 85, 65, 78, 71, 88, - 73, 128, 83, 72, 85, 50, 128, 83, 72, 85, 178, 83, 72, 85, 128, 83, 72, - 84, 65, 80, 73, 67, 128, 83, 72, 84, 65, 128, 83, 72, 82, 85, 71, 128, - 83, 72, 82, 79, 79, 128, 83, 72, 82, 79, 128, 83, 72, 82, 73, 78, 69, - 128, 83, 72, 82, 73, 77, 80, 128, 83, 72, 82, 73, 73, 128, 83, 72, 82, - 73, 128, 83, 72, 82, 65, 65, 128, 83, 72, 82, 65, 128, 83, 72, 79, 89, - 128, 83, 72, 79, 88, 128, 83, 72, 79, 87, 69, 82, 128, 83, 72, 79, 85, - 76, 68, 69, 82, 69, 196, 83, 72, 79, 85, 76, 68, 69, 210, 83, 72, 79, 85, - 128, 83, 72, 79, 84, 128, 83, 72, 79, 82, 84, 83, 128, 83, 72, 79, 82, - 84, 211, 83, 72, 79, 82, 84, 72, 65, 78, 196, 83, 72, 79, 82, 84, 69, 78, - 69, 82, 128, 83, 72, 79, 82, 84, 67, 65, 75, 69, 128, 83, 72, 79, 82, 84, - 45, 84, 87, 73, 71, 45, 89, 82, 128, 83, 72, 79, 82, 84, 45, 84, 87, 73, - 71, 45, 84, 89, 210, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 83, 79, - 204, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 79, 83, 211, 83, 72, 79, - 82, 84, 45, 84, 87, 73, 71, 45, 78, 65, 85, 196, 83, 72, 79, 82, 84, 45, - 84, 87, 73, 71, 45, 77, 65, 68, 210, 83, 72, 79, 82, 84, 45, 84, 87, 73, - 71, 45, 72, 65, 71, 65, 76, 204, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, - 45, 66, 74, 65, 82, 75, 65, 206, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, - 45, 65, 210, 83, 72, 79, 82, 84, 128, 83, 72, 79, 82, 212, 83, 72, 79, - 81, 128, 83, 72, 79, 209, 83, 72, 79, 80, 80, 73, 78, 199, 83, 72, 79, - 80, 128, 83, 72, 79, 79, 84, 73, 78, 199, 83, 72, 79, 79, 84, 128, 83, - 72, 79, 79, 73, 128, 83, 72, 79, 79, 128, 83, 72, 79, 71, 201, 83, 72, - 79, 199, 83, 72, 79, 69, 83, 128, 83, 72, 79, 69, 128, 83, 72, 79, 197, - 83, 72, 79, 67, 75, 69, 196, 83, 72, 79, 65, 128, 83, 72, 79, 128, 83, - 72, 73, 89, 89, 65, 65, 76, 65, 65, 128, 83, 72, 73, 84, 65, 128, 83, 72, - 73, 84, 193, 83, 72, 73, 82, 212, 83, 72, 73, 82, 65, 69, 128, 83, 72, - 73, 82, 128, 83, 72, 73, 210, 83, 72, 73, 81, 128, 83, 72, 73, 78, 84, - 207, 83, 72, 73, 78, 73, 71, 128, 83, 72, 73, 78, 68, 193, 83, 72, 73, - 206, 83, 72, 73, 77, 65, 128, 83, 72, 73, 77, 193, 83, 72, 73, 77, 128, - 83, 72, 73, 205, 83, 72, 73, 73, 78, 128, 83, 72, 73, 73, 128, 83, 72, - 73, 70, 212, 83, 72, 73, 69, 76, 68, 128, 83, 72, 73, 68, 128, 83, 72, - 73, 196, 83, 72, 72, 65, 128, 83, 72, 72, 193, 83, 72, 69, 88, 128, 83, - 72, 69, 86, 65, 128, 83, 72, 69, 85, 88, 128, 83, 72, 69, 85, 79, 81, + 85, 88, 128, 83, 85, 85, 128, 83, 85, 84, 85, 72, 128, 83, 85, 84, 82, + 193, 83, 85, 84, 128, 83, 85, 83, 80, 69, 78, 83, 73, 79, 206, 83, 85, + 83, 72, 73, 128, 83, 85, 82, 89, 65, 128, 83, 85, 82, 88, 128, 83, 85, + 82, 82, 79, 85, 78, 68, 128, 83, 85, 82, 82, 79, 85, 78, 196, 83, 85, 82, + 70, 69, 82, 128, 83, 85, 82, 70, 65, 67, 197, 83, 85, 82, 69, 128, 83, + 85, 82, 65, 78, 71, 128, 83, 85, 82, 57, 128, 83, 85, 82, 128, 83, 85, + 210, 83, 85, 80, 82, 65, 76, 73, 78, 69, 65, 210, 83, 85, 80, 69, 82, 86, + 73, 83, 69, 128, 83, 85, 80, 69, 82, 86, 73, 76, 76, 65, 73, 78, 128, 83, + 85, 80, 69, 82, 83, 69, 84, 128, 83, 85, 80, 69, 82, 83, 69, 212, 83, 85, + 80, 69, 82, 83, 67, 82, 73, 80, 212, 83, 85, 80, 69, 82, 73, 77, 80, 79, + 83, 69, 196, 83, 85, 80, 69, 82, 72, 69, 82, 79, 128, 83, 85, 80, 69, 82, + 70, 73, 88, 69, 196, 83, 85, 80, 69, 210, 83, 85, 80, 128, 83, 85, 79, + 88, 128, 83, 85, 79, 80, 128, 83, 85, 79, 128, 83, 85, 78, 83, 69, 212, + 83, 85, 78, 82, 73, 83, 69, 128, 83, 85, 78, 82, 73, 83, 197, 83, 85, 78, + 71, 76, 65, 83, 83, 69, 83, 128, 83, 85, 78, 71, 128, 83, 85, 78, 70, 76, + 79, 87, 69, 82, 128, 83, 85, 78, 68, 65, 78, 69, 83, 197, 83, 85, 78, + 128, 83, 85, 206, 83, 85, 77, 77, 69, 82, 128, 83, 85, 77, 77, 65, 84, + 73, 79, 78, 128, 83, 85, 77, 77, 65, 84, 73, 79, 206, 83, 85, 77, 65, 83, + 72, 128, 83, 85, 77, 128, 83, 85, 76, 70, 85, 82, 128, 83, 85, 75, 85, + 78, 128, 83, 85, 75, 85, 206, 83, 85, 75, 85, 128, 83, 85, 75, 213, 83, + 85, 73, 84, 65, 66, 76, 69, 128, 83, 85, 73, 212, 83, 85, 72, 85, 82, + 128, 83, 85, 69, 128, 83, 85, 68, 50, 128, 83, 85, 68, 128, 83, 85, 67, + 75, 73, 78, 199, 83, 85, 67, 75, 69, 68, 128, 83, 85, 67, 203, 83, 85, + 67, 67, 69, 69, 68, 83, 128, 83, 85, 67, 67, 69, 69, 68, 211, 83, 85, 67, + 67, 69, 69, 68, 128, 83, 85, 67, 67, 69, 69, 196, 83, 85, 66, 85, 78, 73, + 84, 128, 83, 85, 66, 83, 84, 73, 84, 85, 84, 73, 79, 206, 83, 85, 66, 83, + 84, 73, 84, 85, 84, 69, 128, 83, 85, 66, 83, 84, 73, 84, 85, 84, 197, 83, + 85, 66, 83, 69, 84, 128, 83, 85, 66, 83, 69, 212, 83, 85, 66, 83, 67, 82, + 73, 80, 212, 83, 85, 66, 80, 85, 78, 67, 84, 73, 83, 128, 83, 85, 66, 76, + 73, 78, 69, 65, 210, 83, 85, 66, 76, 73, 77, 65, 84, 73, 79, 78, 128, 83, + 85, 66, 76, 73, 77, 65, 84, 69, 45, 51, 128, 83, 85, 66, 76, 73, 77, 65, + 84, 69, 45, 50, 128, 83, 85, 66, 76, 73, 77, 65, 84, 69, 128, 83, 85, 66, + 76, 73, 77, 65, 84, 197, 83, 85, 66, 74, 79, 73, 78, 69, 82, 128, 83, 85, + 66, 74, 79, 73, 78, 69, 196, 83, 85, 66, 74, 69, 67, 84, 128, 83, 85, 66, + 73, 84, 79, 128, 83, 85, 66, 72, 65, 65, 78, 65, 72, 213, 83, 85, 66, 71, + 82, 79, 85, 80, 128, 83, 85, 66, 71, 82, 79, 85, 208, 83, 85, 66, 128, + 83, 85, 65, 77, 128, 83, 85, 65, 69, 84, 128, 83, 85, 65, 69, 78, 128, + 83, 85, 65, 69, 128, 83, 85, 65, 66, 128, 83, 85, 65, 128, 83, 85, 45, + 56, 128, 83, 85, 45, 55, 128, 83, 85, 45, 54, 128, 83, 85, 45, 53, 128, + 83, 85, 45, 52, 128, 83, 85, 45, 51, 128, 83, 85, 45, 50, 128, 83, 85, + 45, 49, 128, 83, 213, 83, 84, 88, 128, 83, 84, 87, 65, 128, 83, 84, 85, + 80, 65, 128, 83, 84, 85, 70, 70, 69, 196, 83, 84, 85, 68, 89, 128, 83, + 84, 85, 68, 73, 207, 83, 84, 85, 67, 75, 45, 79, 85, 212, 83, 84, 83, + 128, 83, 84, 82, 79, 78, 199, 83, 84, 82, 79, 75, 69, 83, 128, 83, 84, + 82, 79, 75, 69, 211, 83, 84, 82, 79, 75, 69, 45, 57, 128, 83, 84, 82, 79, + 75, 69, 45, 56, 128, 83, 84, 82, 79, 75, 69, 45, 55, 128, 83, 84, 82, 79, + 75, 69, 45, 54, 128, 83, 84, 82, 79, 75, 69, 45, 53, 128, 83, 84, 82, 79, + 75, 69, 45, 52, 128, 83, 84, 82, 79, 75, 69, 45, 51, 128, 83, 84, 82, 79, + 75, 69, 45, 50, 128, 83, 84, 82, 79, 75, 69, 45, 49, 49, 128, 83, 84, 82, + 79, 75, 69, 45, 49, 48, 128, 83, 84, 82, 79, 75, 69, 45, 49, 128, 83, 84, + 82, 79, 75, 197, 83, 84, 82, 73, 80, 69, 128, 83, 84, 82, 73, 78, 71, + 128, 83, 84, 82, 73, 78, 199, 83, 84, 82, 73, 75, 69, 84, 72, 82, 79, 85, + 71, 72, 128, 83, 84, 82, 73, 75, 197, 83, 84, 82, 73, 68, 69, 128, 83, + 84, 82, 73, 67, 84, 76, 217, 83, 84, 82, 69, 84, 67, 72, 69, 196, 83, 84, + 82, 69, 84, 67, 72, 128, 83, 84, 82, 69, 83, 211, 83, 84, 82, 69, 78, 71, + 84, 72, 128, 83, 84, 82, 69, 76, 193, 83, 84, 82, 69, 65, 77, 69, 82, + 128, 83, 84, 82, 65, 87, 66, 69, 82, 82, 89, 128, 83, 84, 82, 65, 87, + 128, 83, 84, 82, 65, 84, 85, 77, 45, 50, 128, 83, 84, 82, 65, 84, 85, 77, + 128, 83, 84, 82, 65, 84, 85, 205, 83, 84, 82, 65, 84, 73, 65, 206, 83, + 84, 82, 65, 78, 78, 79, 128, 83, 84, 82, 65, 78, 78, 207, 83, 84, 82, 65, + 73, 78, 69, 82, 128, 83, 84, 82, 65, 73, 71, 72, 84, 78, 69, 83, 83, 128, + 83, 84, 82, 65, 73, 71, 72, 84, 128, 83, 84, 82, 65, 73, 71, 72, 212, 83, + 84, 82, 65, 73, 70, 128, 83, 84, 82, 65, 71, 71, 73, 83, 77, 65, 84, 65, + 128, 83, 84, 79, 86, 69, 128, 83, 84, 79, 82, 69, 128, 83, 84, 79, 80, + 87, 65, 84, 67, 72, 128, 83, 84, 79, 80, 80, 73, 78, 71, 128, 83, 84, 79, + 80, 80, 65, 71, 69, 128, 83, 84, 79, 80, 73, 84, 83, 65, 128, 83, 84, 79, + 80, 73, 84, 83, 193, 83, 84, 79, 80, 128, 83, 84, 79, 208, 83, 84, 79, + 78, 69, 128, 83, 84, 79, 67, 75, 128, 83, 84, 79, 67, 203, 83, 84, 73, + 82, 82, 85, 208, 83, 84, 73, 77, 77, 69, 128, 83, 84, 73, 76, 204, 83, + 84, 73, 76, 197, 83, 84, 73, 71, 77, 65, 128, 83, 84, 73, 67, 75, 73, 78, + 199, 83, 84, 73, 67, 203, 83, 84, 69, 84, 72, 79, 83, 67, 79, 80, 69, + 128, 83, 84, 69, 82, 69, 79, 128, 83, 84, 69, 80, 128, 83, 84, 69, 78, + 79, 71, 82, 65, 80, 72, 73, 195, 83, 84, 69, 77, 128, 83, 84, 69, 65, 77, + 217, 83, 84, 69, 65, 77, 73, 78, 199, 83, 84, 69, 65, 77, 128, 83, 84, + 69, 65, 205, 83, 84, 65, 86, 82, 79, 85, 128, 83, 84, 65, 86, 82, 79, 83, + 128, 83, 84, 65, 86, 82, 79, 211, 83, 84, 65, 85, 82, 79, 83, 128, 83, + 84, 65, 84, 89, 65, 128, 83, 84, 65, 84, 89, 193, 83, 84, 65, 84, 85, + 197, 83, 84, 65, 84, 73, 79, 78, 128, 83, 84, 65, 84, 69, 82, 83, 128, + 83, 84, 65, 84, 69, 128, 83, 84, 65, 82, 84, 73, 78, 199, 83, 84, 65, 82, + 84, 128, 83, 84, 65, 82, 212, 83, 84, 65, 82, 83, 128, 83, 84, 65, 82, + 82, 69, 196, 83, 84, 65, 82, 75, 128, 83, 84, 65, 82, 128, 83, 84, 65, + 210, 83, 84, 65, 78, 68, 83, 84, 73, 76, 76, 128, 83, 84, 65, 78, 68, 73, + 78, 199, 83, 84, 65, 78, 68, 65, 82, 196, 83, 84, 65, 78, 68, 128, 83, + 84, 65, 78, 128, 83, 84, 65, 77, 80, 69, 196, 83, 84, 65, 76, 76, 73, 79, + 78, 128, 83, 84, 65, 70, 70, 128, 83, 84, 65, 70, 198, 83, 84, 65, 68, + 73, 85, 77, 128, 83, 84, 65, 67, 75, 69, 196, 83, 84, 65, 67, 67, 65, 84, + 79, 128, 83, 84, 65, 67, 67, 65, 84, 73, 83, 83, 73, 77, 79, 128, 83, 84, + 50, 128, 83, 83, 89, 88, 128, 83, 83, 89, 84, 128, 83, 83, 89, 82, 88, + 128, 83, 83, 89, 82, 128, 83, 83, 89, 80, 128, 83, 83, 89, 128, 83, 83, + 85, 88, 128, 83, 83, 85, 85, 128, 83, 83, 85, 84, 128, 83, 83, 85, 80, + 128, 83, 83, 79, 88, 128, 83, 83, 79, 84, 128, 83, 83, 79, 80, 128, 83, + 83, 79, 79, 128, 83, 83, 79, 128, 83, 83, 73, 88, 128, 83, 83, 73, 84, + 128, 83, 83, 73, 80, 128, 83, 83, 73, 73, 128, 83, 83, 73, 69, 88, 128, + 83, 83, 73, 69, 80, 128, 83, 83, 73, 69, 128, 83, 83, 72, 73, 78, 128, + 83, 83, 72, 69, 128, 83, 83, 69, 88, 128, 83, 83, 69, 80, 128, 83, 83, + 69, 69, 128, 83, 83, 65, 88, 128, 83, 83, 65, 85, 128, 83, 83, 65, 84, + 128, 83, 83, 65, 80, 128, 83, 83, 65, 78, 71, 89, 69, 83, 73, 69, 85, 78, + 71, 128, 83, 83, 65, 78, 71, 89, 69, 79, 82, 73, 78, 72, 73, 69, 85, 72, + 128, 83, 83, 65, 78, 71, 84, 73, 75, 69, 85, 84, 45, 80, 73, 69, 85, 80, + 128, 83, 83, 65, 78, 71, 84, 73, 75, 69, 85, 84, 128, 83, 83, 65, 78, 71, + 84, 72, 73, 69, 85, 84, 72, 128, 83, 83, 65, 78, 71, 83, 73, 79, 83, 45, + 84, 73, 75, 69, 85, 84, 128, 83, 83, 65, 78, 71, 83, 73, 79, 83, 45, 80, + 73, 69, 85, 80, 128, 83, 83, 65, 78, 71, 83, 73, 79, 83, 45, 75, 73, 89, + 69, 79, 75, 128, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 83, 83, 65, 78, + 71, 82, 73, 69, 85, 76, 45, 75, 72, 73, 69, 85, 75, 72, 128, 83, 83, 65, + 78, 71, 82, 73, 69, 85, 76, 128, 83, 83, 65, 78, 71, 80, 73, 69, 85, 80, + 128, 83, 83, 65, 78, 71, 78, 73, 69, 85, 78, 128, 83, 83, 65, 78, 71, 77, + 73, 69, 85, 77, 128, 83, 83, 65, 78, 71, 73, 69, 85, 78, 71, 128, 83, 83, + 65, 78, 71, 72, 73, 69, 85, 72, 128, 83, 83, 65, 78, 71, 67, 73, 69, 85, + 67, 45, 72, 73, 69, 85, 72, 128, 83, 83, 65, 78, 71, 67, 73, 69, 85, 67, + 128, 83, 83, 65, 78, 71, 65, 82, 65, 69, 65, 128, 83, 83, 65, 73, 128, + 83, 83, 65, 65, 128, 83, 83, 51, 128, 83, 83, 50, 128, 83, 82, 69, 68, + 78, 197, 83, 82, 128, 83, 81, 85, 73, 83, 200, 83, 81, 85, 73, 82, 82, + 69, 204, 83, 81, 85, 73, 71, 71, 76, 197, 83, 81, 85, 73, 68, 128, 83, + 81, 85, 69, 69, 90, 69, 68, 128, 83, 81, 85, 69, 69, 90, 197, 83, 81, 85, + 65, 212, 83, 81, 85, 65, 82, 69, 83, 128, 83, 81, 85, 65, 82, 69, 68, + 128, 83, 81, 85, 65, 82, 69, 128, 83, 80, 89, 128, 83, 80, 87, 65, 128, + 83, 80, 85, 78, 71, 211, 83, 80, 82, 79, 85, 84, 128, 83, 80, 82, 73, 78, + 71, 83, 128, 83, 80, 82, 73, 78, 71, 128, 83, 80, 82, 69, 67, 72, 71, 69, + 83, 65, 78, 199, 83, 80, 82, 69, 65, 68, 128, 83, 80, 82, 69, 65, 196, + 83, 80, 79, 85, 84, 73, 78, 199, 83, 80, 79, 84, 128, 83, 80, 79, 82, 84, + 211, 83, 80, 79, 79, 78, 128, 83, 80, 79, 79, 204, 83, 80, 79, 78, 71, + 69, 128, 83, 80, 79, 128, 83, 80, 76, 73, 84, 84, 73, 78, 199, 83, 80, + 76, 73, 84, 128, 83, 80, 76, 73, 212, 83, 80, 76, 65, 89, 69, 68, 128, + 83, 80, 76, 65, 83, 72, 73, 78, 199, 83, 80, 73, 82, 73, 84, 85, 211, 83, + 80, 73, 82, 73, 84, 128, 83, 80, 73, 82, 73, 212, 83, 80, 73, 82, 65, 78, + 84, 128, 83, 80, 73, 82, 65, 76, 128, 83, 80, 73, 82, 65, 204, 83, 80, + 73, 78, 69, 128, 83, 80, 73, 68, 69, 82, 217, 83, 80, 73, 68, 69, 82, + 128, 83, 80, 73, 68, 69, 210, 83, 80, 73, 67, 69, 128, 83, 80, 73, 128, + 83, 80, 72, 69, 82, 73, 67, 65, 204, 83, 80, 69, 83, 77, 73, 76, 207, 83, + 80, 69, 78, 212, 83, 80, 69, 69, 68, 66, 79, 65, 84, 128, 83, 80, 69, 69, + 67, 72, 128, 83, 80, 69, 69, 67, 200, 83, 80, 69, 67, 73, 65, 76, 128, + 83, 80, 69, 65, 82, 128, 83, 80, 69, 65, 75, 73, 78, 199, 83, 80, 69, 65, + 75, 69, 82, 128, 83, 80, 69, 65, 75, 69, 210, 83, 80, 69, 65, 75, 45, 78, + 79, 45, 69, 86, 73, 204, 83, 80, 69, 128, 83, 80, 65, 84, 72, 73, 128, + 83, 80, 65, 82, 75, 76, 73, 78, 199, 83, 80, 65, 82, 75, 76, 69, 83, 128, + 83, 80, 65, 82, 75, 76, 69, 82, 128, 83, 80, 65, 82, 75, 76, 69, 128, 83, + 80, 65, 71, 72, 69, 84, 84, 73, 128, 83, 80, 65, 68, 69, 83, 128, 83, 80, + 65, 68, 197, 83, 80, 65, 67, 73, 78, 199, 83, 80, 65, 67, 197, 83, 80, + 65, 128, 83, 79, 89, 79, 77, 66, 207, 83, 79, 89, 128, 83, 79, 87, 73, + 76, 207, 83, 79, 87, 128, 83, 79, 85, 84, 72, 69, 82, 206, 83, 79, 85, + 84, 72, 45, 83, 76, 65, 86, 69, 217, 83, 79, 85, 84, 200, 83, 79, 85, 82, + 67, 69, 128, 83, 79, 85, 78, 68, 128, 83, 79, 85, 78, 196, 83, 79, 85, + 78, 65, 80, 128, 83, 79, 85, 128, 83, 79, 83, 128, 83, 79, 82, 79, 67, + 72, 89, 193, 83, 79, 82, 73, 128, 83, 79, 82, 193, 83, 79, 81, 128, 83, + 79, 79, 206, 83, 79, 78, 74, 65, 77, 128, 83, 79, 78, 71, 128, 83, 79, + 78, 128, 83, 79, 77, 80, 69, 78, 199, 83, 79, 77, 128, 83, 79, 205, 83, + 79, 76, 73, 68, 85, 83, 128, 83, 79, 76, 73, 68, 85, 211, 83, 79, 76, 73, + 196, 83, 79, 76, 68, 73, 69, 82, 128, 83, 79, 72, 128, 83, 79, 71, 68, + 73, 65, 206, 83, 79, 70, 84, 87, 65, 82, 69, 45, 70, 85, 78, 67, 84, 73, + 79, 206, 83, 79, 70, 84, 78, 69, 83, 83, 128, 83, 79, 70, 84, 66, 65, 76, + 76, 128, 83, 79, 70, 212, 83, 79, 198, 83, 79, 67, 75, 83, 128, 83, 79, + 67, 73, 69, 84, 89, 128, 83, 79, 67, 67, 69, 210, 83, 79, 65, 80, 128, + 83, 79, 65, 128, 83, 79, 45, 55, 128, 83, 79, 45, 54, 128, 83, 79, 45, + 53, 128, 83, 79, 45, 52, 128, 83, 79, 45, 51, 128, 83, 79, 45, 50, 128, + 83, 79, 45, 49, 128, 83, 207, 83, 78, 79, 87, 77, 65, 78, 128, 83, 78, + 79, 87, 77, 65, 206, 83, 78, 79, 87, 70, 76, 65, 75, 69, 128, 83, 78, 79, + 87, 66, 79, 65, 82, 68, 69, 82, 128, 83, 78, 79, 87, 128, 83, 78, 79, + 215, 83, 78, 79, 85, 84, 128, 83, 78, 79, 85, 212, 83, 78, 69, 69, 90, + 73, 78, 199, 83, 78, 65, 208, 83, 78, 65, 75, 69, 128, 83, 78, 65, 75, + 197, 83, 78, 65, 73, 76, 128, 83, 78, 193, 83, 77, 79, 75, 73, 78, 199, + 83, 77, 73, 82, 75, 73, 78, 199, 83, 77, 73, 76, 73, 78, 199, 83, 77, 73, + 76, 69, 128, 83, 77, 73, 76, 197, 83, 77, 69, 65, 82, 128, 83, 77, 65, + 83, 200, 83, 77, 65, 76, 76, 69, 210, 83, 77, 65, 76, 76, 128, 83, 76, + 85, 82, 128, 83, 76, 79, 90, 72, 73, 84, 73, 69, 128, 83, 76, 79, 90, 72, + 73, 84, 73, 197, 83, 76, 79, 87, 76, 89, 128, 83, 76, 79, 87, 128, 83, + 76, 79, 215, 83, 76, 79, 86, 79, 128, 83, 76, 79, 84, 72, 128, 83, 76, + 79, 212, 83, 76, 79, 80, 73, 78, 199, 83, 76, 79, 80, 69, 128, 83, 76, + 79, 65, 206, 83, 76, 73, 78, 71, 128, 83, 76, 73, 71, 72, 84, 76, 217, + 83, 76, 73, 68, 73, 78, 71, 128, 83, 76, 73, 68, 69, 82, 128, 83, 76, 73, + 68, 69, 128, 83, 76, 73, 67, 69, 128, 83, 76, 73, 67, 197, 83, 76, 69, + 85, 84, 200, 83, 76, 69, 69, 80, 217, 83, 76, 69, 69, 80, 73, 78, 199, + 83, 76, 69, 69, 208, 83, 76, 69, 68, 128, 83, 76, 65, 86, 79, 78, 73, + 195, 83, 76, 65, 86, 69, 128, 83, 76, 65, 83, 72, 128, 83, 76, 65, 83, + 200, 83, 76, 65, 78, 84, 69, 196, 83, 75, 87, 65, 128, 83, 75, 87, 128, + 83, 75, 85, 78, 75, 128, 83, 75, 85, 76, 76, 128, 83, 75, 85, 76, 204, + 83, 75, 79, 66, 65, 128, 83, 75, 76, 73, 82, 79, 206, 83, 75, 73, 78, + 128, 83, 75, 73, 69, 82, 128, 83, 75, 201, 83, 75, 69, 87, 69, 196, 83, + 75, 65, 84, 69, 66, 79, 65, 82, 68, 128, 83, 75, 65, 84, 69, 128, 83, 75, + 65, 77, 69, 89, 84, 83, 193, 83, 75, 128, 83, 74, 69, 128, 83, 73, 90, + 197, 83, 73, 88, 84, 89, 45, 70, 79, 85, 82, 84, 72, 83, 128, 83, 73, 88, + 84, 89, 45, 70, 79, 85, 82, 84, 72, 128, 83, 73, 88, 84, 89, 45, 70, 79, + 85, 82, 84, 200, 83, 73, 88, 84, 89, 128, 83, 73, 88, 84, 217, 83, 73, + 88, 84, 72, 83, 128, 83, 73, 88, 84, 72, 211, 83, 73, 88, 84, 72, 128, + 83, 73, 88, 84, 69, 69, 78, 84, 72, 83, 128, 83, 73, 88, 84, 69, 69, 78, + 84, 72, 45, 50, 128, 83, 73, 88, 84, 69, 69, 78, 84, 72, 45, 49, 128, 83, + 73, 88, 84, 69, 69, 78, 84, 72, 128, 83, 73, 88, 84, 69, 69, 78, 84, 200, + 83, 73, 88, 84, 69, 69, 78, 128, 83, 73, 88, 84, 69, 69, 206, 83, 73, 88, + 45, 84, 72, 73, 82, 84, 89, 128, 83, 73, 88, 45, 83, 84, 82, 73, 78, 199, + 83, 73, 88, 45, 80, 69, 82, 45, 69, 205, 83, 73, 88, 45, 76, 73, 78, 197, + 83, 73, 216, 83, 73, 84, 69, 128, 83, 73, 83, 65, 128, 83, 73, 82, 82, + 65, 72, 128, 83, 73, 82, 73, 78, 71, 85, 128, 83, 73, 79, 83, 45, 84, 72, + 73, 69, 85, 84, 72, 128, 83, 73, 79, 83, 45, 83, 83, 65, 78, 71, 83, 73, + 79, 83, 128, 83, 73, 79, 83, 45, 82, 73, 69, 85, 76, 128, 83, 73, 79, 83, + 45, 80, 73, 69, 85, 80, 45, 75, 73, 89, 69, 79, 75, 128, 83, 73, 79, 83, + 45, 80, 72, 73, 69, 85, 80, 72, 128, 83, 73, 79, 83, 45, 80, 65, 78, 83, + 73, 79, 83, 128, 83, 73, 79, 83, 45, 78, 73, 69, 85, 78, 128, 83, 73, 79, + 83, 45, 77, 73, 69, 85, 77, 128, 83, 73, 79, 83, 45, 75, 72, 73, 69, 85, + 75, 72, 128, 83, 73, 79, 83, 45, 75, 65, 80, 89, 69, 79, 85, 78, 80, 73, + 69, 85, 80, 128, 83, 73, 79, 83, 45, 73, 69, 85, 78, 71, 128, 83, 73, 79, + 83, 45, 72, 73, 69, 85, 72, 128, 83, 73, 79, 83, 45, 67, 73, 69, 85, 67, + 128, 83, 73, 79, 83, 45, 67, 72, 73, 69, 85, 67, 72, 128, 83, 73, 79, + 211, 83, 73, 78, 85, 83, 79, 73, 196, 83, 73, 78, 79, 76, 79, 71, 73, 67, + 65, 204, 83, 73, 78, 78, 89, 73, 73, 89, 72, 69, 128, 83, 73, 78, 75, 73, + 78, 71, 128, 83, 73, 78, 71, 76, 69, 45, 83, 72, 73, 70, 84, 45, 51, 128, + 83, 73, 78, 71, 76, 69, 45, 83, 72, 73, 70, 84, 45, 50, 128, 83, 73, 78, + 71, 76, 69, 45, 76, 73, 78, 197, 83, 73, 78, 71, 76, 69, 128, 83, 73, 78, + 71, 76, 197, 83, 73, 78, 71, 65, 65, 84, 128, 83, 73, 78, 197, 83, 73, + 78, 68, 72, 201, 83, 73, 78, 128, 83, 73, 206, 83, 73, 77, 85, 76, 84, + 65, 78, 69, 79, 85, 83, 128, 83, 73, 77, 85, 76, 84, 65, 78, 69, 79, 85, + 211, 83, 73, 77, 80, 76, 73, 70, 73, 69, 196, 83, 73, 77, 73, 76, 65, 82, + 128, 83, 73, 77, 73, 76, 65, 210, 83, 73, 77, 65, 78, 83, 73, 211, 83, + 73, 77, 65, 76, 85, 78, 71, 85, 206, 83, 73, 77, 65, 128, 83, 73, 76, 86, + 69, 82, 128, 83, 73, 76, 75, 128, 83, 73, 76, 73, 81, 85, 193, 83, 73, + 76, 72, 79, 85, 69, 84, 84, 69, 128, 83, 73, 76, 72, 79, 85, 69, 84, 84, + 197, 83, 73, 76, 65, 51, 128, 83, 73, 75, 73, 128, 83, 73, 75, 50, 128, + 83, 73, 75, 178, 83, 73, 71, 78, 83, 128, 83, 73, 71, 77, 79, 73, 196, + 83, 73, 71, 77, 65, 128, 83, 73, 71, 77, 193, 83, 73, 71, 69, 204, 83, + 73, 71, 52, 128, 83, 73, 71, 180, 83, 73, 71, 128, 83, 73, 69, 69, 128, + 83, 73, 68, 69, 87, 65, 89, 211, 83, 73, 68, 69, 128, 83, 73, 68, 197, + 83, 73, 68, 68, 72, 73, 128, 83, 73, 68, 68, 72, 65, 77, 128, 83, 73, 68, + 68, 72, 65, 205, 83, 73, 67, 75, 78, 69, 83, 83, 128, 83, 73, 67, 75, 76, + 69, 128, 83, 73, 66, 197, 83, 73, 65, 128, 83, 73, 45, 54, 128, 83, 73, + 45, 53, 128, 83, 73, 45, 52, 128, 83, 73, 45, 51, 128, 83, 73, 45, 50, + 128, 83, 73, 45, 49, 128, 83, 201, 83, 72, 89, 88, 128, 83, 72, 89, 84, + 128, 83, 72, 89, 82, 88, 128, 83, 72, 89, 82, 128, 83, 72, 89, 80, 128, + 83, 72, 89, 69, 128, 83, 72, 89, 65, 128, 83, 72, 89, 128, 83, 72, 87, + 79, 89, 128, 83, 72, 87, 79, 79, 128, 83, 72, 87, 79, 128, 83, 72, 87, + 73, 73, 128, 83, 72, 87, 73, 128, 83, 72, 87, 69, 128, 83, 72, 87, 197, + 83, 72, 87, 65, 65, 128, 83, 72, 87, 65, 128, 83, 72, 86, 128, 83, 72, + 85, 88, 128, 83, 72, 85, 85, 128, 83, 72, 85, 84, 84, 76, 69, 67, 79, 67, + 75, 128, 83, 72, 85, 84, 128, 83, 72, 85, 82, 88, 128, 83, 72, 85, 82, + 128, 83, 72, 85, 80, 128, 83, 72, 85, 79, 88, 128, 83, 72, 85, 79, 80, + 128, 83, 72, 85, 79, 128, 83, 72, 85, 77, 128, 83, 72, 85, 76, 128, 83, + 72, 85, 70, 70, 76, 197, 83, 72, 85, 69, 81, 128, 83, 72, 85, 69, 78, 83, + 72, 85, 69, 84, 128, 83, 72, 85, 66, 85, 82, 128, 83, 72, 85, 65, 78, 71, + 88, 73, 128, 83, 72, 85, 50, 128, 83, 72, 85, 178, 83, 72, 85, 128, 83, + 72, 84, 65, 80, 73, 67, 128, 83, 72, 84, 65, 128, 83, 72, 82, 85, 71, + 128, 83, 72, 82, 79, 79, 128, 83, 72, 82, 79, 128, 83, 72, 82, 73, 78, + 69, 128, 83, 72, 82, 73, 77, 80, 128, 83, 72, 82, 73, 73, 128, 83, 72, + 82, 73, 128, 83, 72, 82, 65, 65, 128, 83, 72, 82, 65, 128, 83, 72, 79, + 89, 128, 83, 72, 79, 88, 128, 83, 72, 79, 87, 69, 82, 128, 83, 72, 79, + 85, 76, 68, 69, 82, 69, 196, 83, 72, 79, 85, 76, 68, 69, 210, 83, 72, 79, + 85, 128, 83, 72, 79, 84, 128, 83, 72, 79, 82, 84, 83, 128, 83, 72, 79, + 82, 84, 211, 83, 72, 79, 82, 84, 72, 65, 78, 196, 83, 72, 79, 82, 84, 69, + 78, 69, 82, 128, 83, 72, 79, 82, 84, 67, 65, 75, 69, 128, 83, 72, 79, 82, + 84, 45, 84, 87, 73, 71, 45, 89, 82, 128, 83, 72, 79, 82, 84, 45, 84, 87, + 73, 71, 45, 84, 89, 210, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 83, + 79, 204, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 79, 83, 211, 83, 72, + 79, 82, 84, 45, 84, 87, 73, 71, 45, 78, 65, 85, 196, 83, 72, 79, 82, 84, + 45, 84, 87, 73, 71, 45, 77, 65, 68, 210, 83, 72, 79, 82, 84, 45, 84, 87, + 73, 71, 45, 72, 65, 71, 65, 76, 204, 83, 72, 79, 82, 84, 45, 84, 87, 73, + 71, 45, 66, 74, 65, 82, 75, 65, 206, 83, 72, 79, 82, 84, 45, 84, 87, 73, + 71, 45, 65, 210, 83, 72, 79, 82, 84, 128, 83, 72, 79, 82, 212, 83, 72, + 79, 81, 128, 83, 72, 79, 209, 83, 72, 79, 80, 80, 73, 78, 199, 83, 72, + 79, 80, 128, 83, 72, 79, 79, 84, 73, 78, 199, 83, 72, 79, 79, 84, 128, + 83, 72, 79, 79, 73, 128, 83, 72, 79, 79, 128, 83, 72, 79, 71, 201, 83, + 72, 79, 199, 83, 72, 79, 69, 83, 128, 83, 72, 79, 69, 128, 83, 72, 79, + 197, 83, 72, 79, 67, 75, 69, 196, 83, 72, 79, 65, 128, 83, 72, 79, 128, + 83, 72, 73, 89, 89, 65, 65, 76, 65, 65, 128, 83, 72, 73, 84, 65, 128, 83, + 72, 73, 84, 193, 83, 72, 73, 82, 212, 83, 72, 73, 82, 65, 69, 128, 83, + 72, 73, 82, 128, 83, 72, 73, 210, 83, 72, 73, 81, 128, 83, 72, 73, 78, + 84, 207, 83, 72, 73, 78, 73, 71, 128, 83, 72, 73, 78, 68, 193, 83, 72, + 73, 206, 83, 72, 73, 77, 65, 128, 83, 72, 73, 77, 193, 83, 72, 73, 77, + 128, 83, 72, 73, 205, 83, 72, 73, 73, 78, 128, 83, 72, 73, 73, 128, 83, + 72, 73, 70, 212, 83, 72, 73, 69, 76, 68, 128, 83, 72, 73, 68, 128, 83, + 72, 73, 196, 83, 72, 72, 65, 128, 83, 72, 72, 193, 83, 72, 69, 88, 128, + 83, 72, 69, 86, 65, 128, 83, 72, 69, 85, 88, 128, 83, 72, 69, 85, 79, 81, 128, 83, 72, 69, 85, 65, 69, 81, 84, 85, 128, 83, 72, 69, 85, 65, 69, 81, 128, 83, 72, 69, 85, 65, 69, 128, 83, 72, 69, 84, 128, 83, 72, 69, 212, 83, 72, 69, 83, 72, 76, 65, 77, 128, 83, 72, 69, 83, 72, 73, 71, 128, 83, @@ -1716,136 +1718,137 @@ static const unsigned char lexicon[] = { 128, 81, 85, 69, 69, 206, 81, 85, 69, 128, 81, 85, 68, 68, 73, 83, 193, 81, 85, 66, 85, 84, 83, 128, 81, 85, 65, 84, 69, 82, 78, 73, 79, 206, 81, 85, 65, 82, 84, 69, 82, 83, 128, 81, 85, 65, 82, 84, 69, 82, 211, 81, 85, - 65, 82, 84, 69, 82, 128, 81, 85, 65, 78, 84, 73, 84, 217, 81, 85, 65, 68, - 82, 85, 80, 76, 197, 81, 85, 65, 68, 82, 65, 78, 84, 128, 81, 85, 65, 68, - 82, 65, 78, 212, 81, 85, 65, 68, 67, 79, 76, 79, 78, 128, 81, 85, 65, 68, - 128, 81, 85, 65, 196, 81, 85, 65, 128, 81, 85, 128, 81, 208, 81, 79, 88, - 128, 81, 79, 84, 128, 81, 79, 80, 72, 128, 81, 79, 80, 65, 128, 81, 79, - 80, 128, 81, 79, 79, 128, 81, 79, 207, 81, 79, 70, 128, 81, 79, 198, 81, - 79, 65, 128, 81, 79, 128, 81, 78, 128, 81, 73, 88, 128, 81, 73, 84, 83, - 65, 128, 81, 73, 84, 128, 81, 73, 80, 128, 81, 73, 73, 128, 81, 73, 70, - 128, 81, 73, 69, 88, 128, 81, 73, 69, 84, 128, 81, 73, 69, 80, 128, 81, - 73, 69, 128, 81, 73, 128, 81, 72, 87, 73, 128, 81, 72, 87, 69, 69, 128, - 81, 72, 87, 69, 128, 81, 72, 87, 65, 65, 128, 81, 72, 87, 65, 128, 81, - 72, 85, 128, 81, 72, 79, 80, 72, 128, 81, 72, 79, 128, 81, 72, 73, 128, - 81, 72, 69, 69, 128, 81, 72, 69, 128, 81, 72, 65, 85, 128, 81, 72, 65, - 65, 128, 81, 72, 65, 128, 81, 71, 65, 128, 81, 69, 84, 65, 78, 65, 128, - 81, 69, 69, 128, 81, 69, 128, 81, 65, 89, 128, 81, 65, 85, 128, 81, 65, - 84, 65, 78, 128, 81, 65, 82, 78, 69, 217, 81, 65, 82, 128, 81, 65, 81, - 128, 81, 65, 80, 72, 128, 81, 65, 77, 65, 84, 83, 128, 81, 65, 77, 65, - 84, 211, 81, 65, 76, 193, 81, 65, 73, 82, 84, 72, 82, 65, 128, 81, 65, - 73, 128, 81, 65, 70, 128, 81, 65, 198, 81, 65, 68, 77, 65, 128, 81, 65, - 65, 73, 128, 81, 65, 65, 70, 85, 128, 81, 65, 65, 70, 128, 81, 48, 48, - 55, 128, 81, 48, 48, 54, 128, 81, 48, 48, 53, 128, 81, 48, 48, 52, 128, - 81, 48, 48, 51, 128, 81, 48, 48, 50, 128, 81, 48, 48, 49, 128, 80, 90, - 128, 80, 89, 88, 128, 80, 89, 84, 128, 80, 89, 82, 88, 128, 80, 89, 82, - 128, 80, 89, 80, 128, 80, 87, 79, 89, 128, 80, 87, 79, 79, 128, 80, 87, - 79, 128, 80, 87, 207, 80, 87, 73, 73, 128, 80, 87, 73, 128, 80, 87, 69, - 69, 128, 80, 87, 69, 128, 80, 87, 65, 65, 128, 80, 87, 128, 80, 86, 128, - 80, 85, 90, 90, 76, 197, 80, 85, 88, 128, 80, 85, 85, 84, 128, 80, 85, - 85, 128, 80, 85, 84, 82, 69, 70, 65, 67, 84, 73, 79, 78, 128, 80, 85, 84, - 78, 65, 89, 65, 128, 80, 85, 84, 128, 80, 85, 212, 80, 85, 83, 72, 80, - 73, 78, 128, 80, 85, 83, 72, 80, 73, 75, 65, 128, 80, 85, 83, 72, 73, 78, - 199, 80, 85, 82, 88, 128, 80, 85, 82, 83, 69, 128, 80, 85, 82, 80, 76, - 197, 80, 85, 82, 78, 65, 77, 65, 128, 80, 85, 82, 73, 84, 89, 128, 80, - 85, 82, 73, 70, 89, 128, 80, 85, 82, 128, 80, 85, 81, 128, 80, 85, 80, - 128, 80, 85, 79, 88, 128, 80, 85, 79, 80, 128, 80, 85, 79, 128, 80, 85, - 78, 71, 65, 65, 77, 128, 80, 85, 78, 71, 128, 80, 85, 78, 67, 84, 85, - 211, 80, 85, 78, 67, 84, 85, 65, 84, 73, 79, 78, 128, 80, 85, 78, 67, 84, - 85, 65, 84, 73, 79, 206, 80, 85, 77, 80, 128, 80, 85, 77, 128, 80, 85, - 70, 70, 69, 68, 128, 80, 85, 69, 128, 80, 85, 67, 75, 128, 80, 85, 66, - 76, 73, 195, 80, 85, 194, 80, 85, 65, 81, 128, 80, 85, 65, 69, 128, 80, - 85, 65, 67, 72, 85, 197, 80, 85, 50, 128, 80, 85, 49, 128, 80, 85, 128, - 80, 84, 72, 65, 72, 193, 80, 84, 69, 128, 80, 83, 73, 76, 201, 80, 83, - 73, 70, 73, 83, 84, 79, 83, 89, 78, 65, 71, 77, 65, 128, 80, 83, 73, 70, - 73, 83, 84, 79, 80, 65, 82, 65, 75, 65, 76, 69, 83, 77, 65, 128, 80, 83, - 73, 70, 73, 83, 84, 79, 206, 80, 83, 73, 70, 73, 83, 84, 79, 76, 89, 71, - 73, 83, 77, 65, 128, 80, 83, 73, 128, 80, 83, 65, 76, 84, 69, 210, 80, - 83, 128, 80, 82, 79, 86, 69, 128, 80, 82, 79, 84, 79, 86, 65, 82, 89, - 211, 80, 82, 79, 84, 79, 211, 80, 82, 79, 84, 69, 67, 84, 69, 196, 80, - 82, 79, 83, 84, 65, 89, 65, 128, 80, 82, 79, 83, 71, 69, 71, 82, 65, 77, - 77, 69, 78, 73, 128, 80, 82, 79, 83, 69, 82, 80, 73, 78, 65, 128, 80, 82, - 79, 80, 79, 82, 84, 73, 79, 78, 65, 204, 80, 82, 79, 80, 79, 82, 84, 73, - 79, 78, 128, 80, 82, 79, 80, 69, 82, 84, 217, 80, 82, 79, 80, 69, 76, 76, - 69, 210, 80, 82, 79, 79, 70, 128, 80, 82, 79, 76, 79, 78, 71, 69, 196, - 80, 82, 79, 76, 65, 84, 73, 79, 78, 197, 80, 82, 79, 74, 69, 67, 84, 79, - 82, 128, 80, 82, 79, 74, 69, 67, 84, 73, 86, 69, 128, 80, 82, 79, 74, 69, - 67, 84, 73, 79, 78, 128, 80, 82, 79, 72, 73, 66, 73, 84, 69, 196, 80, 82, - 79, 71, 82, 69, 83, 83, 128, 80, 82, 79, 71, 82, 65, 205, 80, 82, 79, 70, - 79, 85, 78, 68, 128, 80, 82, 79, 68, 85, 67, 84, 128, 80, 82, 79, 68, 85, - 67, 212, 80, 82, 79, 66, 73, 78, 199, 80, 82, 73, 90, 78, 65, 203, 80, - 82, 73, 86, 65, 84, 69, 128, 80, 82, 73, 86, 65, 84, 197, 80, 82, 73, 86, - 65, 67, 217, 80, 82, 73, 83, 72, 84, 72, 65, 77, 65, 84, 82, 193, 80, 82, - 73, 78, 84, 83, 128, 80, 82, 73, 78, 84, 69, 82, 128, 80, 82, 73, 78, 84, - 69, 210, 80, 82, 73, 78, 84, 128, 80, 82, 73, 78, 212, 80, 82, 73, 78, - 67, 69, 83, 83, 128, 80, 82, 73, 78, 67, 69, 128, 80, 82, 73, 77, 69, - 128, 80, 82, 73, 77, 197, 80, 82, 69, 86, 73, 79, 85, 211, 80, 82, 69, - 84, 90, 69, 76, 128, 80, 82, 69, 83, 83, 69, 196, 80, 82, 69, 83, 69, 84, - 128, 80, 82, 69, 83, 69, 78, 84, 65, 84, 73, 79, 206, 80, 82, 69, 83, 67, - 82, 73, 80, 84, 73, 79, 206, 80, 82, 69, 80, 79, 78, 68, 69, 82, 65, 78, - 67, 69, 128, 80, 82, 69, 78, 75, 72, 65, 128, 80, 82, 69, 71, 78, 65, 78, - 212, 80, 82, 69, 70, 73, 88, 69, 196, 80, 82, 69, 70, 65, 67, 197, 80, - 82, 69, 67, 73, 80, 73, 84, 65, 84, 69, 128, 80, 82, 69, 67, 69, 68, 73, - 78, 199, 80, 82, 69, 67, 69, 68, 69, 83, 128, 80, 82, 69, 67, 69, 68, 69, - 211, 80, 82, 69, 67, 69, 68, 69, 196, 80, 82, 69, 67, 69, 68, 69, 128, - 80, 82, 69, 67, 69, 68, 197, 80, 82, 65, 89, 69, 210, 80, 82, 65, 77, 45, - 80, 73, 73, 128, 80, 82, 65, 77, 45, 80, 73, 201, 80, 82, 65, 77, 45, 77, - 85, 79, 89, 128, 80, 82, 65, 77, 45, 77, 85, 79, 217, 80, 82, 65, 77, 45, - 66, 85, 79, 78, 128, 80, 82, 65, 77, 45, 66, 85, 79, 206, 80, 82, 65, 77, - 45, 66, 69, 73, 128, 80, 82, 65, 77, 45, 66, 69, 201, 80, 82, 65, 77, - 128, 80, 82, 65, 205, 80, 82, 128, 80, 80, 86, 128, 80, 80, 77, 128, 80, - 80, 65, 128, 80, 79, 89, 128, 80, 79, 88, 128, 80, 79, 87, 69, 82, 211, - 80, 79, 87, 69, 82, 128, 80, 79, 87, 69, 210, 80, 79, 87, 68, 69, 82, 69, - 196, 80, 79, 87, 68, 69, 82, 128, 80, 79, 86, 89, 83, 72, 69, 128, 80, - 79, 86, 89, 83, 72, 197, 80, 79, 86, 79, 68, 78, 89, 128, 80, 79, 85, 82, - 73, 78, 199, 80, 79, 85, 78, 196, 80, 79, 85, 76, 84, 82, 217, 80, 79, - 85, 67, 72, 128, 80, 79, 84, 84, 69, 196, 80, 79, 84, 65, 84, 79, 128, - 80, 79, 84, 65, 66, 76, 197, 80, 79, 212, 80, 79, 83, 84, 80, 79, 83, 73, - 84, 73, 79, 206, 80, 79, 83, 84, 66, 79, 88, 128, 80, 79, 83, 84, 65, - 204, 80, 79, 83, 84, 128, 80, 79, 83, 212, 80, 79, 83, 83, 69, 83, 83, - 73, 79, 78, 128, 80, 79, 83, 83, 69, 83, 83, 73, 79, 206, 80, 79, 83, 73, - 84, 73, 79, 78, 83, 128, 80, 79, 83, 73, 84, 73, 79, 78, 128, 80, 79, 83, - 69, 73, 68, 79, 78, 128, 80, 79, 82, 84, 65, 66, 76, 197, 80, 79, 82, 82, - 69, 67, 84, 85, 83, 128, 80, 79, 82, 82, 69, 67, 84, 85, 211, 80, 79, 80, - 80, 73, 78, 199, 80, 79, 80, 80, 69, 82, 128, 80, 79, 80, 67, 79, 82, 78, - 128, 80, 79, 80, 128, 80, 79, 208, 80, 79, 79, 68, 76, 69, 128, 80, 79, - 79, 128, 80, 79, 78, 68, 79, 128, 80, 79, 206, 80, 79, 77, 77, 69, 69, - 128, 80, 79, 77, 77, 69, 197, 80, 79, 76, 85, 80, 79, 86, 79, 68, 78, 65, - 89, 65, 128, 80, 79, 76, 79, 128, 80, 79, 76, 78, 65, 89, 65, 128, 80, - 79, 76, 76, 85, 128, 80, 79, 76, 75, 85, 76, 73, 90, 77, 89, 128, 80, 79, - 76, 73, 83, 72, 128, 80, 79, 76, 73, 83, 200, 80, 79, 76, 73, 67, 197, - 80, 79, 76, 201, 80, 79, 76, 69, 128, 80, 79, 76, 197, 80, 79, 75, 82, - 89, 84, 73, 69, 128, 80, 79, 75, 79, 74, 73, 128, 80, 79, 73, 78, 84, - 211, 80, 79, 73, 78, 84, 79, 128, 80, 79, 73, 78, 84, 69, 82, 128, 80, - 79, 73, 78, 84, 69, 196, 80, 79, 73, 78, 84, 128, 80, 79, 73, 78, 212, - 80, 79, 69, 84, 82, 217, 80, 79, 69, 84, 73, 195, 80, 79, 68, 86, 69, 82, - 84, 75, 65, 128, 80, 79, 68, 67, 72, 65, 83, 72, 73, 69, 77, 128, 80, 79, - 68, 67, 72, 65, 83, 72, 73, 69, 128, 80, 79, 68, 67, 72, 65, 83, 72, 73, - 197, 80, 79, 68, 65, 84, 85, 83, 128, 80, 79, 67, 75, 69, 212, 80, 79, - 65, 128, 80, 207, 80, 78, 69, 85, 77, 65, 84, 65, 128, 80, 76, 85, 84, - 207, 80, 76, 85, 84, 65, 128, 80, 76, 85, 83, 45, 77, 73, 78, 85, 211, - 80, 76, 85, 83, 128, 80, 76, 85, 82, 65, 76, 128, 80, 76, 85, 78, 71, 69, - 82, 128, 80, 76, 85, 77, 69, 196, 80, 76, 85, 77, 128, 80, 76, 85, 75, - 128, 80, 76, 85, 71, 128, 80, 76, 85, 128, 80, 76, 79, 87, 128, 80, 76, - 79, 80, 72, 85, 128, 80, 76, 72, 65, 85, 128, 80, 76, 69, 84, 72, 82, 79, - 78, 128, 80, 76, 69, 65, 68, 73, 78, 199, 80, 76, 68, 128, 80, 76, 65, - 89, 73, 78, 199, 80, 76, 65, 89, 71, 82, 79, 85, 78, 196, 80, 76, 65, 84, - 69, 128, 80, 76, 65, 83, 84, 73, 67, 83, 128, 80, 76, 65, 78, 84, 128, - 80, 76, 65, 78, 69, 84, 128, 80, 76, 65, 78, 69, 128, 80, 76, 65, 78, 67, - 203, 80, 76, 65, 75, 128, 80, 76, 65, 71, 73, 79, 211, 80, 76, 65, 67, - 69, 72, 79, 76, 68, 69, 82, 128, 80, 76, 65, 67, 69, 72, 79, 76, 68, 69, - 210, 80, 76, 65, 67, 197, 80, 76, 65, 67, 65, 82, 68, 128, 80, 76, 65, - 128, 80, 73, 90, 90, 73, 67, 65, 84, 79, 128, 80, 73, 90, 90, 65, 128, - 80, 73, 88, 128, 80, 73, 87, 82, 128, 80, 73, 84, 67, 72, 70, 79, 82, 75, - 128, 80, 73, 84, 67, 72, 70, 79, 82, 203, 80, 73, 84, 128, 80, 73, 83, - 84, 79, 76, 128, 80, 73, 83, 69, 76, 69, 72, 128, 80, 73, 83, 67, 69, 83, - 128, 80, 73, 82, 73, 71, 128, 80, 73, 82, 73, 199, 80, 73, 82, 73, 69, - 69, 78, 128, 80, 73, 82, 65, 67, 89, 128, 80, 73, 82, 50, 128, 80, 73, - 80, 73, 78, 71, 128, 80, 73, 80, 65, 69, 77, 71, 66, 73, 69, 69, 128, 80, - 73, 80, 65, 69, 77, 66, 65, 128, 80, 73, 80, 128, 80, 73, 78, 87, 72, 69, - 69, 204, 80, 73, 78, 69, 65, 80, 80, 76, 69, 128, 80, 73, 78, 197, 80, - 73, 78, 67, 72, 73, 78, 199, 80, 73, 78, 67, 72, 69, 196, 80, 73, 78, 65, - 84, 65, 128, 80, 73, 78, 65, 82, 66, 79, 82, 65, 83, 128, 80, 73, 76, 76, + 65, 82, 84, 69, 82, 128, 81, 85, 65, 79, 65, 82, 128, 81, 85, 65, 78, 84, + 73, 84, 217, 81, 85, 65, 68, 82, 85, 80, 76, 197, 81, 85, 65, 68, 82, 65, + 78, 84, 128, 81, 85, 65, 68, 82, 65, 78, 212, 81, 85, 65, 68, 67, 79, 76, + 79, 78, 128, 81, 85, 65, 68, 128, 81, 85, 65, 196, 81, 85, 65, 128, 81, + 85, 128, 81, 208, 81, 79, 88, 128, 81, 79, 84, 128, 81, 79, 80, 72, 128, + 81, 79, 80, 65, 128, 81, 79, 80, 128, 81, 79, 79, 128, 81, 79, 207, 81, + 79, 70, 128, 81, 79, 198, 81, 79, 65, 128, 81, 79, 128, 81, 78, 128, 81, + 73, 88, 128, 81, 73, 84, 83, 65, 128, 81, 73, 84, 128, 81, 73, 80, 128, + 81, 73, 73, 128, 81, 73, 70, 128, 81, 73, 69, 88, 128, 81, 73, 69, 84, + 128, 81, 73, 69, 80, 128, 81, 73, 69, 128, 81, 73, 128, 81, 72, 87, 73, + 128, 81, 72, 87, 69, 69, 128, 81, 72, 87, 69, 128, 81, 72, 87, 65, 65, + 128, 81, 72, 87, 65, 128, 81, 72, 85, 128, 81, 72, 79, 80, 72, 128, 81, + 72, 79, 128, 81, 72, 73, 128, 81, 72, 69, 69, 128, 81, 72, 69, 128, 81, + 72, 65, 85, 128, 81, 72, 65, 65, 128, 81, 72, 65, 128, 81, 71, 65, 128, + 81, 69, 84, 65, 78, 65, 128, 81, 69, 69, 128, 81, 69, 128, 81, 65, 89, + 128, 81, 65, 85, 128, 81, 65, 84, 65, 78, 128, 81, 65, 83, 82, 128, 81, + 65, 82, 78, 69, 217, 81, 65, 82, 128, 81, 65, 81, 128, 81, 65, 80, 72, + 128, 81, 65, 77, 65, 84, 83, 128, 81, 65, 77, 65, 84, 211, 81, 65, 76, + 193, 81, 65, 73, 82, 84, 72, 82, 65, 128, 81, 65, 73, 128, 81, 65, 70, + 128, 81, 65, 198, 81, 65, 68, 77, 65, 128, 81, 65, 65, 73, 128, 81, 65, + 65, 70, 85, 128, 81, 65, 65, 70, 128, 81, 48, 48, 55, 128, 81, 48, 48, + 54, 128, 81, 48, 48, 53, 128, 81, 48, 48, 52, 128, 81, 48, 48, 51, 128, + 81, 48, 48, 50, 128, 81, 48, 48, 49, 128, 80, 90, 128, 80, 89, 88, 128, + 80, 89, 84, 128, 80, 89, 82, 88, 128, 80, 89, 82, 128, 80, 89, 80, 128, + 80, 87, 79, 89, 128, 80, 87, 79, 79, 128, 80, 87, 79, 128, 80, 87, 207, + 80, 87, 73, 73, 128, 80, 87, 73, 128, 80, 87, 69, 69, 128, 80, 87, 69, + 128, 80, 87, 65, 65, 128, 80, 87, 128, 80, 86, 128, 80, 85, 90, 90, 76, + 197, 80, 85, 88, 128, 80, 85, 85, 84, 128, 80, 85, 85, 128, 80, 85, 84, + 82, 69, 70, 65, 67, 84, 73, 79, 78, 128, 80, 85, 84, 78, 65, 89, 65, 128, + 80, 85, 84, 128, 80, 85, 212, 80, 85, 83, 72, 80, 73, 78, 128, 80, 85, + 83, 72, 80, 73, 75, 65, 128, 80, 85, 83, 72, 73, 78, 199, 80, 85, 82, 88, + 128, 80, 85, 82, 83, 69, 128, 80, 85, 82, 80, 76, 197, 80, 85, 82, 78, + 65, 77, 65, 128, 80, 85, 82, 73, 84, 89, 128, 80, 85, 82, 73, 70, 89, + 128, 80, 85, 82, 128, 80, 85, 81, 128, 80, 85, 80, 128, 80, 85, 79, 88, + 128, 80, 85, 79, 80, 128, 80, 85, 79, 128, 80, 85, 78, 71, 65, 65, 77, + 128, 80, 85, 78, 71, 128, 80, 85, 78, 67, 84, 85, 211, 80, 85, 78, 67, + 84, 85, 65, 84, 73, 79, 78, 128, 80, 85, 78, 67, 84, 85, 65, 84, 73, 79, + 206, 80, 85, 77, 80, 128, 80, 85, 77, 128, 80, 85, 70, 70, 69, 68, 128, + 80, 85, 69, 128, 80, 85, 67, 75, 128, 80, 85, 66, 76, 73, 195, 80, 85, + 194, 80, 85, 65, 81, 128, 80, 85, 65, 69, 128, 80, 85, 65, 67, 72, 85, + 197, 80, 85, 50, 128, 80, 85, 49, 128, 80, 85, 128, 80, 84, 72, 65, 72, + 193, 80, 84, 69, 128, 80, 83, 73, 76, 201, 80, 83, 73, 70, 73, 83, 84, + 79, 83, 89, 78, 65, 71, 77, 65, 128, 80, 83, 73, 70, 73, 83, 84, 79, 80, + 65, 82, 65, 75, 65, 76, 69, 83, 77, 65, 128, 80, 83, 73, 70, 73, 83, 84, + 79, 206, 80, 83, 73, 70, 73, 83, 84, 79, 76, 89, 71, 73, 83, 77, 65, 128, + 80, 83, 73, 128, 80, 83, 65, 76, 84, 69, 210, 80, 83, 128, 80, 82, 79, + 86, 69, 128, 80, 82, 79, 84, 79, 86, 65, 82, 89, 211, 80, 82, 79, 84, 79, + 211, 80, 82, 79, 84, 69, 67, 84, 69, 196, 80, 82, 79, 83, 84, 65, 89, 65, + 128, 80, 82, 79, 83, 71, 69, 71, 82, 65, 77, 77, 69, 78, 73, 128, 80, 82, + 79, 83, 69, 82, 80, 73, 78, 65, 128, 80, 82, 79, 80, 79, 82, 84, 73, 79, + 78, 65, 204, 80, 82, 79, 80, 79, 82, 84, 73, 79, 78, 128, 80, 82, 79, 80, + 69, 82, 84, 217, 80, 82, 79, 80, 69, 76, 76, 69, 210, 80, 82, 79, 79, 70, + 128, 80, 82, 79, 76, 79, 78, 71, 69, 196, 80, 82, 79, 76, 65, 84, 73, 79, + 78, 197, 80, 82, 79, 74, 69, 67, 84, 79, 82, 128, 80, 82, 79, 74, 69, 67, + 84, 73, 86, 69, 128, 80, 82, 79, 74, 69, 67, 84, 73, 79, 78, 128, 80, 82, + 79, 72, 73, 66, 73, 84, 69, 196, 80, 82, 79, 71, 82, 69, 83, 83, 128, 80, + 82, 79, 71, 82, 65, 205, 80, 82, 79, 70, 79, 85, 78, 68, 128, 80, 82, 79, + 68, 85, 67, 84, 128, 80, 82, 79, 68, 85, 67, 212, 80, 82, 79, 66, 73, 78, + 199, 80, 82, 73, 90, 78, 65, 203, 80, 82, 73, 86, 65, 84, 69, 128, 80, + 82, 73, 86, 65, 84, 197, 80, 82, 73, 86, 65, 67, 217, 80, 82, 73, 83, 72, + 84, 72, 65, 77, 65, 84, 82, 193, 80, 82, 73, 78, 84, 83, 128, 80, 82, 73, + 78, 84, 69, 82, 128, 80, 82, 73, 78, 84, 69, 210, 80, 82, 73, 78, 84, + 128, 80, 82, 73, 78, 212, 80, 82, 73, 78, 67, 69, 83, 83, 128, 80, 82, + 73, 78, 67, 69, 128, 80, 82, 73, 77, 69, 128, 80, 82, 73, 77, 197, 80, + 82, 69, 86, 73, 79, 85, 211, 80, 82, 69, 84, 90, 69, 76, 128, 80, 82, 69, + 83, 83, 69, 196, 80, 82, 69, 83, 69, 84, 128, 80, 82, 69, 83, 69, 78, 84, + 65, 84, 73, 79, 206, 80, 82, 69, 83, 67, 82, 73, 80, 84, 73, 79, 206, 80, + 82, 69, 80, 79, 78, 68, 69, 82, 65, 78, 67, 69, 128, 80, 82, 69, 78, 75, + 72, 65, 128, 80, 82, 69, 71, 78, 65, 78, 212, 80, 82, 69, 70, 73, 88, 69, + 196, 80, 82, 69, 70, 65, 67, 197, 80, 82, 69, 67, 73, 80, 73, 84, 65, 84, + 69, 128, 80, 82, 69, 67, 69, 68, 73, 78, 199, 80, 82, 69, 67, 69, 68, 69, + 83, 128, 80, 82, 69, 67, 69, 68, 69, 211, 80, 82, 69, 67, 69, 68, 69, + 196, 80, 82, 69, 67, 69, 68, 69, 128, 80, 82, 69, 67, 69, 68, 197, 80, + 82, 65, 89, 69, 210, 80, 82, 65, 77, 45, 80, 73, 73, 128, 80, 82, 65, 77, + 45, 80, 73, 201, 80, 82, 65, 77, 45, 77, 85, 79, 89, 128, 80, 82, 65, 77, + 45, 77, 85, 79, 217, 80, 82, 65, 77, 45, 66, 85, 79, 78, 128, 80, 82, 65, + 77, 45, 66, 85, 79, 206, 80, 82, 65, 77, 45, 66, 69, 73, 128, 80, 82, 65, + 77, 45, 66, 69, 201, 80, 82, 65, 77, 128, 80, 82, 65, 205, 80, 82, 128, + 80, 80, 86, 128, 80, 80, 77, 128, 80, 80, 65, 128, 80, 79, 89, 128, 80, + 79, 88, 128, 80, 79, 87, 69, 82, 211, 80, 79, 87, 69, 82, 128, 80, 79, + 87, 69, 210, 80, 79, 87, 68, 69, 82, 69, 196, 80, 79, 87, 68, 69, 82, + 128, 80, 79, 86, 89, 83, 72, 69, 128, 80, 79, 86, 89, 83, 72, 197, 80, + 79, 86, 79, 68, 78, 89, 128, 80, 79, 85, 82, 73, 78, 199, 80, 79, 85, 78, + 196, 80, 79, 85, 76, 84, 82, 217, 80, 79, 85, 67, 72, 128, 80, 79, 84, + 84, 69, 196, 80, 79, 84, 65, 84, 79, 128, 80, 79, 84, 65, 66, 76, 197, + 80, 79, 212, 80, 79, 83, 84, 80, 79, 83, 73, 84, 73, 79, 206, 80, 79, 83, + 84, 66, 79, 88, 128, 80, 79, 83, 84, 65, 204, 80, 79, 83, 84, 128, 80, + 79, 83, 212, 80, 79, 83, 83, 69, 83, 83, 73, 79, 78, 128, 80, 79, 83, 83, + 69, 83, 83, 73, 79, 206, 80, 79, 83, 73, 84, 73, 79, 78, 83, 128, 80, 79, + 83, 73, 84, 73, 79, 78, 128, 80, 79, 83, 69, 73, 68, 79, 78, 128, 80, 79, + 82, 84, 65, 66, 76, 197, 80, 79, 82, 82, 69, 67, 84, 85, 83, 128, 80, 79, + 82, 82, 69, 67, 84, 85, 211, 80, 79, 80, 80, 73, 78, 199, 80, 79, 80, 80, + 69, 82, 128, 80, 79, 80, 67, 79, 82, 78, 128, 80, 79, 80, 128, 80, 79, + 208, 80, 79, 79, 68, 76, 69, 128, 80, 79, 79, 128, 80, 79, 78, 68, 79, + 128, 80, 79, 206, 80, 79, 77, 77, 69, 69, 128, 80, 79, 77, 77, 69, 197, + 80, 79, 76, 85, 80, 79, 86, 79, 68, 78, 65, 89, 65, 128, 80, 79, 76, 79, + 128, 80, 79, 76, 78, 65, 89, 65, 128, 80, 79, 76, 76, 85, 128, 80, 79, + 76, 75, 85, 76, 73, 90, 77, 89, 128, 80, 79, 76, 73, 83, 72, 128, 80, 79, + 76, 73, 83, 200, 80, 79, 76, 73, 67, 197, 80, 79, 76, 201, 80, 79, 76, + 69, 128, 80, 79, 76, 197, 80, 79, 75, 82, 89, 84, 73, 69, 128, 80, 79, + 75, 79, 74, 73, 128, 80, 79, 73, 78, 84, 211, 80, 79, 73, 78, 84, 79, + 128, 80, 79, 73, 78, 84, 69, 82, 128, 80, 79, 73, 78, 84, 69, 196, 80, + 79, 73, 78, 84, 128, 80, 79, 73, 78, 212, 80, 79, 69, 84, 82, 217, 80, + 79, 69, 84, 73, 195, 80, 79, 68, 86, 69, 82, 84, 75, 65, 128, 80, 79, 68, + 67, 72, 65, 83, 72, 73, 69, 77, 128, 80, 79, 68, 67, 72, 65, 83, 72, 73, + 69, 128, 80, 79, 68, 67, 72, 65, 83, 72, 73, 197, 80, 79, 68, 65, 84, 85, + 83, 128, 80, 79, 67, 75, 69, 212, 80, 79, 65, 128, 80, 207, 80, 78, 69, + 85, 77, 65, 84, 65, 128, 80, 76, 85, 84, 207, 80, 76, 85, 84, 65, 128, + 80, 76, 85, 83, 45, 77, 73, 78, 85, 211, 80, 76, 85, 83, 128, 80, 76, 85, + 82, 65, 76, 128, 80, 76, 85, 78, 71, 69, 82, 128, 80, 76, 85, 77, 69, + 196, 80, 76, 85, 77, 128, 80, 76, 85, 75, 128, 80, 76, 85, 71, 128, 80, + 76, 85, 128, 80, 76, 79, 87, 128, 80, 76, 79, 80, 72, 85, 128, 80, 76, + 72, 65, 85, 128, 80, 76, 69, 84, 72, 82, 79, 78, 128, 80, 76, 69, 65, 68, + 73, 78, 199, 80, 76, 68, 128, 80, 76, 65, 89, 73, 78, 199, 80, 76, 65, + 89, 71, 82, 79, 85, 78, 196, 80, 76, 65, 84, 69, 128, 80, 76, 65, 83, 84, + 73, 67, 83, 128, 80, 76, 65, 78, 84, 128, 80, 76, 65, 78, 69, 84, 128, + 80, 76, 65, 78, 69, 128, 80, 76, 65, 78, 67, 203, 80, 76, 65, 75, 128, + 80, 76, 65, 71, 73, 79, 211, 80, 76, 65, 67, 69, 72, 79, 76, 68, 69, 82, + 128, 80, 76, 65, 67, 69, 72, 79, 76, 68, 69, 210, 80, 76, 65, 67, 197, + 80, 76, 65, 67, 65, 82, 68, 128, 80, 76, 65, 128, 80, 73, 90, 90, 73, 67, + 65, 84, 79, 128, 80, 73, 90, 90, 65, 128, 80, 73, 88, 128, 80, 73, 87, + 82, 128, 80, 73, 84, 67, 72, 70, 79, 82, 75, 128, 80, 73, 84, 67, 72, 70, + 79, 82, 203, 80, 73, 84, 128, 80, 73, 83, 84, 79, 76, 128, 80, 73, 83, + 69, 76, 69, 72, 128, 80, 73, 83, 67, 69, 83, 128, 80, 73, 82, 73, 71, + 128, 80, 73, 82, 73, 199, 80, 73, 82, 73, 69, 69, 78, 128, 80, 73, 82, + 65, 67, 89, 128, 80, 73, 82, 50, 128, 80, 73, 80, 73, 78, 71, 128, 80, + 73, 80, 65, 69, 77, 71, 66, 73, 69, 69, 128, 80, 73, 80, 65, 69, 77, 66, + 65, 128, 80, 73, 80, 128, 80, 73, 78, 87, 72, 69, 69, 204, 80, 73, 78, + 203, 80, 73, 78, 69, 65, 80, 80, 76, 69, 128, 80, 73, 78, 197, 80, 73, + 78, 67, 72, 73, 78, 199, 80, 73, 78, 67, 72, 69, 196, 80, 73, 78, 65, 84, + 65, 128, 80, 73, 78, 65, 82, 66, 79, 82, 65, 83, 128, 80, 73, 76, 76, 128, 80, 73, 76, 197, 80, 73, 76, 67, 82, 79, 215, 80, 73, 75, 85, 82, 85, 128, 80, 73, 75, 79, 128, 80, 73, 71, 128, 80, 73, 199, 80, 73, 69, 88, 128, 80, 73, 69, 85, 80, 45, 84, 72, 73, 69, 85, 84, 72, 128, 80, 73, @@ -1916,2286 +1919,2298 @@ static const unsigned char lexicon[] = { 65, 76, 128, 80, 69, 68, 69, 83, 84, 65, 204, 80, 69, 68, 65, 204, 80, 69, 65, 78, 85, 84, 83, 128, 80, 69, 65, 75, 211, 80, 69, 65, 67, 79, 67, 75, 128, 80, 69, 65, 67, 72, 128, 80, 69, 65, 67, 69, 128, 80, 69, 65, - 67, 197, 80, 68, 73, 128, 80, 68, 70, 128, 80, 68, 128, 80, 67, 128, 80, - 65, 90, 69, 82, 128, 80, 65, 89, 69, 82, 79, 75, 128, 80, 65, 89, 65, 78, - 78, 65, 128, 80, 65, 89, 128, 80, 65, 88, 128, 80, 65, 87, 78, 128, 80, - 65, 87, 206, 80, 65, 215, 80, 65, 86, 73, 89, 65, 78, 73, 128, 80, 65, - 85, 83, 197, 80, 65, 85, 75, 128, 80, 65, 85, 128, 80, 65, 213, 80, 65, - 84, 84, 217, 80, 65, 84, 84, 69, 82, 78, 128, 80, 65, 84, 72, 65, 77, 65, - 83, 65, 84, 128, 80, 65, 84, 72, 65, 75, 75, 85, 128, 80, 65, 84, 200, - 80, 65, 84, 65, 75, 128, 80, 65, 84, 65, 72, 128, 80, 65, 84, 128, 80, - 65, 83, 85, 81, 128, 80, 65, 83, 83, 80, 79, 82, 212, 80, 65, 83, 83, 73, - 86, 69, 45, 80, 85, 76, 76, 45, 85, 80, 45, 79, 85, 84, 80, 85, 212, 80, - 65, 83, 83, 73, 86, 69, 45, 80, 85, 76, 76, 45, 68, 79, 87, 78, 45, 79, - 85, 84, 80, 85, 212, 80, 65, 83, 83, 73, 77, 66, 65, 78, 71, 128, 80, 65, - 83, 83, 69, 78, 71, 69, 210, 80, 65, 83, 83, 69, 196, 80, 65, 83, 72, 84, - 65, 128, 80, 65, 83, 72, 65, 69, 128, 80, 65, 83, 69, 81, 128, 80, 65, - 83, 65, 78, 71, 65, 206, 80, 65, 82, 85, 77, 128, 80, 65, 82, 84, 217, - 80, 65, 82, 84, 78, 69, 82, 83, 72, 73, 208, 80, 65, 82, 84, 73, 65, 76, - 76, 89, 45, 82, 69, 67, 89, 67, 76, 69, 196, 80, 65, 82, 84, 73, 65, 204, - 80, 65, 82, 84, 72, 73, 65, 206, 80, 65, 82, 212, 80, 65, 82, 82, 79, 84, - 128, 80, 65, 82, 75, 128, 80, 65, 82, 73, 67, 72, 79, 78, 128, 80, 65, - 82, 69, 83, 84, 73, 71, 77, 69, 78, 79, 206, 80, 65, 82, 69, 82, 69, 78, - 128, 80, 65, 82, 69, 78, 84, 72, 69, 83, 73, 83, 128, 80, 65, 82, 69, 78, - 84, 72, 69, 83, 73, 211, 80, 65, 82, 69, 78, 84, 72, 69, 83, 69, 211, 80, - 65, 82, 65, 80, 72, 82, 65, 83, 197, 80, 65, 82, 65, 76, 76, 69, 76, 79, - 71, 82, 65, 77, 128, 80, 65, 82, 65, 76, 76, 69, 76, 128, 80, 65, 82, 65, - 76, 76, 69, 204, 80, 65, 82, 65, 75, 76, 73, 84, 73, 75, 73, 128, 80, 65, - 82, 65, 75, 76, 73, 84, 73, 75, 201, 80, 65, 82, 65, 75, 76, 73, 84, 128, - 80, 65, 82, 65, 75, 65, 76, 69, 83, 77, 193, 80, 65, 82, 65, 71, 82, 65, - 80, 72, 85, 211, 80, 65, 82, 65, 71, 82, 65, 80, 72, 79, 83, 128, 80, 65, - 82, 65, 71, 82, 65, 80, 72, 128, 80, 65, 82, 65, 71, 82, 65, 80, 200, 80, - 65, 82, 65, 67, 72, 85, 84, 69, 128, 80, 65, 82, 65, 128, 80, 65, 82, - 128, 80, 65, 80, 89, 82, 85, 83, 128, 80, 65, 80, 69, 82, 67, 76, 73, 80, - 83, 128, 80, 65, 80, 69, 82, 67, 76, 73, 80, 128, 80, 65, 80, 69, 82, - 128, 80, 65, 80, 69, 210, 80, 65, 80, 128, 80, 65, 208, 80, 65, 207, 80, - 65, 78, 89, 85, 75, 85, 128, 80, 65, 78, 89, 73, 75, 85, 128, 80, 65, 78, - 89, 69, 67, 69, 75, 128, 80, 65, 78, 89, 65, 78, 71, 71, 65, 128, 80, 65, - 78, 89, 65, 75, 82, 65, 128, 80, 65, 78, 84, 73, 128, 80, 65, 78, 84, - 201, 80, 65, 78, 83, 73, 79, 83, 45, 80, 73, 69, 85, 80, 128, 80, 65, 78, - 83, 73, 79, 83, 45, 75, 65, 80, 89, 69, 79, 85, 78, 80, 73, 69, 85, 80, - 128, 80, 65, 78, 79, 78, 71, 79, 78, 65, 78, 128, 80, 65, 78, 79, 76, 79, - 78, 71, 128, 80, 65, 78, 71, 87, 73, 83, 65, 68, 128, 80, 65, 78, 71, 82, - 65, 78, 71, 75, 69, 80, 128, 80, 65, 78, 71, 79, 76, 65, 84, 128, 80, 65, - 78, 71, 76, 79, 78, 71, 128, 80, 65, 78, 71, 76, 65, 89, 65, 82, 128, 80, - 65, 78, 71, 75, 79, 78, 128, 80, 65, 78, 71, 75, 65, 84, 128, 80, 65, 78, - 71, 72, 85, 76, 85, 128, 80, 65, 78, 71, 128, 80, 65, 78, 69, 85, 76, 69, - 85, 78, 71, 128, 80, 65, 78, 68, 193, 80, 65, 78, 67, 65, 75, 69, 83, - 128, 80, 65, 78, 65, 77, 128, 80, 65, 78, 65, 69, 76, 65, 69, 78, 71, - 128, 80, 65, 78, 128, 80, 65, 206, 80, 65, 77, 85, 78, 71, 75, 65, 72, - 128, 80, 65, 77, 85, 68, 80, 79, 68, 128, 80, 65, 77, 83, 72, 65, 69, - 128, 80, 65, 77, 80, 72, 89, 76, 73, 65, 206, 80, 65, 77, 73, 78, 71, 75, - 65, 76, 128, 80, 65, 77, 69, 80, 69, 84, 128, 80, 65, 77, 69, 78, 69, 78, - 71, 128, 80, 65, 77, 65, 68, 65, 128, 80, 65, 77, 65, 68, 193, 80, 65, - 77, 65, 65, 69, 72, 128, 80, 65, 76, 85, 84, 65, 128, 80, 65, 76, 79, 67, - 72, 75, 65, 128, 80, 65, 76, 77, 89, 82, 69, 78, 197, 80, 65, 76, 77, - 211, 80, 65, 76, 77, 128, 80, 65, 76, 205, 80, 65, 76, 76, 65, 87, 65, - 128, 80, 65, 76, 76, 65, 83, 128, 80, 65, 76, 75, 65, 128, 80, 65, 76, - 201, 80, 65, 76, 69, 84, 84, 69, 128, 80, 65, 76, 65, 85, 78, 199, 80, - 65, 76, 65, 84, 65, 76, 73, 90, 69, 196, 80, 65, 76, 65, 84, 65, 76, 73, - 90, 65, 84, 73, 79, 78, 128, 80, 65, 76, 65, 84, 65, 204, 80, 65, 75, 80, - 65, 203, 80, 65, 73, 89, 65, 78, 78, 79, 73, 128, 80, 65, 73, 82, 84, 72, - 82, 65, 128, 80, 65, 73, 82, 69, 196, 80, 65, 73, 78, 84, 66, 82, 85, 83, - 72, 128, 80, 65, 73, 128, 80, 65, 72, 76, 65, 86, 201, 80, 65, 72, 128, - 80, 65, 71, 79, 68, 65, 128, 80, 65, 71, 69, 83, 128, 80, 65, 71, 69, 82, - 128, 80, 65, 71, 197, 80, 65, 68, 77, 193, 80, 65, 68, 68, 76, 197, 80, - 65, 68, 68, 73, 78, 199, 80, 65, 68, 193, 80, 65, 68, 128, 80, 65, 67, - 75, 73, 78, 71, 128, 80, 65, 67, 75, 65, 71, 69, 128, 80, 65, 65, 84, 85, - 128, 80, 65, 65, 83, 69, 78, 84, 79, 128, 80, 65, 65, 82, 65, 77, 128, - 80, 65, 65, 82, 65, 69, 128, 80, 65, 65, 77, 128, 80, 65, 65, 73, 128, - 80, 65, 65, 45, 80, 73, 76, 76, 65, 128, 80, 65, 65, 128, 80, 50, 128, - 80, 48, 49, 49, 128, 80, 48, 49, 48, 128, 80, 48, 48, 57, 128, 80, 48, - 48, 56, 128, 80, 48, 48, 55, 128, 80, 48, 48, 54, 128, 80, 48, 48, 53, - 128, 80, 48, 48, 52, 128, 80, 48, 48, 51, 65, 128, 80, 48, 48, 51, 128, - 80, 48, 48, 50, 128, 80, 48, 48, 49, 65, 128, 80, 48, 48, 49, 128, 79, - 90, 128, 79, 89, 83, 84, 69, 82, 128, 79, 89, 82, 65, 78, 73, 83, 77, - 193, 79, 89, 65, 78, 78, 65, 128, 79, 88, 73, 65, 128, 79, 88, 73, 193, - 79, 88, 69, 73, 65, 201, 79, 88, 69, 73, 193, 79, 87, 76, 128, 79, 86, - 69, 82, 83, 84, 82, 85, 67, 203, 79, 86, 69, 82, 82, 73, 68, 69, 128, 79, - 86, 69, 82, 76, 79, 78, 199, 79, 86, 69, 82, 76, 73, 78, 69, 128, 79, 86, - 69, 82, 76, 65, 89, 128, 79, 86, 69, 82, 76, 65, 217, 79, 86, 69, 82, 76, - 65, 80, 80, 73, 78, 199, 79, 86, 69, 82, 76, 65, 80, 128, 79, 86, 69, 82, - 76, 65, 73, 68, 128, 79, 86, 69, 82, 76, 65, 73, 196, 79, 86, 69, 82, 72, - 69, 65, 84, 69, 196, 79, 86, 69, 82, 66, 65, 82, 128, 79, 86, 65, 76, - 128, 79, 86, 65, 204, 79, 85, 84, 76, 73, 78, 69, 196, 79, 85, 84, 76, - 73, 78, 69, 128, 79, 85, 84, 69, 210, 79, 85, 84, 66, 79, 216, 79, 85, - 78, 75, 73, 193, 79, 85, 78, 67, 69, 128, 79, 85, 78, 67, 197, 79, 84, - 85, 128, 79, 84, 84, 79, 77, 65, 206, 79, 84, 84, 69, 82, 128, 79, 84, - 84, 65, 86, 193, 79, 84, 84, 128, 79, 84, 83, 69, 67, 72, 75, 65, 128, - 79, 84, 72, 69, 82, 211, 79, 84, 72, 69, 210, 79, 84, 72, 65, 76, 65, - 206, 79, 84, 72, 65, 76, 128, 79, 83, 79, 75, 65, 128, 79, 83, 79, 75, - 193, 79, 83, 77, 65, 78, 89, 193, 79, 83, 67, 128, 79, 83, 65, 71, 197, - 79, 82, 84, 72, 79, 71, 79, 78, 65, 204, 79, 82, 84, 72, 79, 68, 79, 216, - 79, 82, 78, 65, 84, 197, 79, 82, 78, 65, 77, 69, 78, 84, 83, 128, 79, 82, - 78, 65, 77, 69, 78, 84, 128, 79, 82, 78, 65, 77, 69, 78, 212, 79, 82, 75, - 72, 79, 206, 79, 82, 73, 89, 193, 79, 82, 73, 71, 73, 78, 65, 204, 79, - 82, 73, 71, 73, 78, 128, 79, 82, 69, 45, 50, 128, 79, 82, 68, 73, 78, 65, - 204, 79, 82, 68, 69, 210, 79, 82, 67, 72, 73, 68, 128, 79, 82, 65, 78, - 71, 85, 84, 65, 78, 128, 79, 82, 65, 78, 71, 197, 79, 80, 84, 73, 79, - 206, 79, 80, 84, 73, 67, 65, 204, 79, 80, 80, 82, 69, 83, 83, 73, 79, 78, - 128, 79, 80, 80, 79, 83, 73, 84, 73, 79, 78, 128, 79, 80, 80, 79, 83, 73, - 78, 199, 79, 80, 80, 79, 83, 69, 128, 79, 80, 72, 73, 85, 67, 72, 85, 83, - 128, 79, 80, 69, 82, 65, 84, 79, 82, 128, 79, 80, 69, 82, 65, 84, 79, - 210, 79, 80, 69, 82, 65, 84, 73, 78, 199, 79, 80, 69, 78, 73, 78, 199, - 79, 80, 69, 78, 45, 80, 128, 79, 80, 69, 78, 45, 79, 85, 84, 76, 73, 78, - 69, 196, 79, 80, 69, 78, 45, 79, 128, 79, 80, 69, 78, 45, 207, 79, 80, - 69, 78, 45, 72, 69, 65, 68, 69, 196, 79, 80, 69, 78, 45, 67, 73, 82, 67, - 85, 73, 84, 45, 79, 85, 84, 80, 85, 212, 79, 80, 69, 78, 128, 79, 80, 69, - 206, 79, 79, 90, 69, 128, 79, 79, 89, 65, 78, 78, 65, 128, 79, 79, 85, - 128, 79, 79, 77, 85, 128, 79, 79, 72, 128, 79, 79, 69, 128, 79, 79, 66, - 79, 79, 70, 73, 76, 73, 128, 79, 78, 85, 128, 79, 78, 83, 85, 128, 79, - 78, 78, 128, 79, 78, 75, 65, 82, 128, 79, 78, 73, 79, 78, 128, 79, 78, - 69, 83, 69, 76, 70, 128, 79, 78, 69, 45, 87, 65, 217, 79, 78, 69, 45, 84, - 72, 73, 82, 84, 89, 128, 79, 78, 69, 45, 80, 73, 69, 67, 197, 79, 78, 69, - 45, 76, 73, 78, 197, 79, 78, 69, 45, 72, 85, 78, 68, 82, 69, 68, 45, 65, - 78, 68, 45, 83, 73, 88, 84, 73, 69, 84, 72, 128, 79, 78, 67, 79, 77, 73, - 78, 199, 79, 78, 65, 80, 128, 79, 78, 45, 79, 70, 198, 79, 77, 73, 83, - 83, 73, 79, 206, 79, 77, 73, 67, 82, 79, 78, 128, 79, 77, 73, 67, 82, 79, - 206, 79, 77, 69, 84, 128, 79, 77, 69, 71, 65, 128, 79, 77, 69, 71, 193, - 79, 77, 65, 76, 79, 78, 128, 79, 76, 73, 86, 69, 128, 79, 76, 73, 71, 79, - 206, 79, 76, 68, 128, 79, 75, 84, 207, 79, 75, 65, 82, 65, 128, 79, 75, - 65, 82, 193, 79, 74, 73, 66, 87, 65, 217, 79, 74, 69, 79, 78, 128, 79, - 73, 78, 128, 79, 73, 76, 128, 79, 73, 204, 79, 72, 77, 128, 79, 72, 205, - 79, 71, 82, 69, 128, 79, 71, 79, 78, 69, 75, 128, 79, 71, 79, 78, 69, - 203, 79, 71, 72, 65, 205, 79, 70, 70, 73, 67, 69, 82, 128, 79, 70, 70, - 73, 67, 69, 128, 79, 70, 70, 73, 67, 197, 79, 70, 70, 128, 79, 69, 89, - 128, 79, 69, 82, 128, 79, 69, 75, 128, 79, 69, 69, 128, 79, 68, 69, 78, - 128, 79, 68, 68, 128, 79, 68, 196, 79, 67, 84, 79, 80, 85, 83, 128, 79, - 67, 84, 79, 66, 69, 82, 128, 79, 67, 84, 69, 212, 79, 67, 84, 65, 71, 79, - 78, 65, 204, 79, 67, 84, 65, 71, 79, 78, 128, 79, 67, 210, 79, 67, 76, - 79, 67, 75, 128, 79, 67, 72, 75, 79, 77, 128, 79, 67, 67, 76, 85, 83, 73, - 79, 78, 128, 79, 66, 83, 84, 82, 85, 67, 84, 73, 79, 78, 128, 79, 66, 83, - 69, 82, 86, 69, 210, 79, 66, 79, 76, 211, 79, 66, 79, 204, 79, 66, 79, - 70, 73, 76, 73, 128, 79, 66, 76, 73, 81, 85, 197, 79, 66, 76, 65, 75, 79, - 128, 79, 66, 76, 65, 67, 72, 75, 79, 128, 79, 66, 74, 69, 67, 212, 79, - 66, 69, 76, 85, 83, 128, 79, 66, 69, 76, 79, 83, 128, 79, 66, 128, 79, - 65, 89, 128, 79, 65, 75, 128, 79, 65, 66, 79, 65, 70, 73, 76, 73, 128, - 79, 193, 79, 48, 53, 49, 128, 79, 48, 53, 48, 66, 128, 79, 48, 53, 48, - 65, 128, 79, 48, 53, 48, 128, 79, 48, 52, 57, 128, 79, 48, 52, 56, 128, - 79, 48, 52, 55, 128, 79, 48, 52, 54, 128, 79, 48, 52, 53, 128, 79, 48, - 52, 52, 128, 79, 48, 52, 51, 128, 79, 48, 52, 50, 128, 79, 48, 52, 49, - 128, 79, 48, 52, 48, 128, 79, 48, 51, 57, 128, 79, 48, 51, 56, 128, 79, - 48, 51, 55, 128, 79, 48, 51, 54, 68, 128, 79, 48, 51, 54, 67, 128, 79, - 48, 51, 54, 66, 128, 79, 48, 51, 54, 65, 128, 79, 48, 51, 54, 128, 79, - 48, 51, 53, 128, 79, 48, 51, 52, 128, 79, 48, 51, 51, 65, 128, 79, 48, - 51, 51, 128, 79, 48, 51, 50, 128, 79, 48, 51, 49, 128, 79, 48, 51, 48, - 65, 128, 79, 48, 51, 48, 128, 79, 48, 50, 57, 65, 128, 79, 48, 50, 57, - 128, 79, 48, 50, 56, 128, 79, 48, 50, 55, 128, 79, 48, 50, 54, 128, 79, - 48, 50, 53, 65, 128, 79, 48, 50, 53, 128, 79, 48, 50, 52, 65, 128, 79, - 48, 50, 52, 128, 79, 48, 50, 51, 128, 79, 48, 50, 50, 128, 79, 48, 50, - 49, 128, 79, 48, 50, 48, 65, 128, 79, 48, 50, 48, 128, 79, 48, 49, 57, - 65, 128, 79, 48, 49, 57, 128, 79, 48, 49, 56, 128, 79, 48, 49, 55, 128, - 79, 48, 49, 54, 128, 79, 48, 49, 53, 128, 79, 48, 49, 52, 128, 79, 48, - 49, 51, 128, 79, 48, 49, 50, 128, 79, 48, 49, 49, 128, 79, 48, 49, 48, - 67, 128, 79, 48, 49, 48, 66, 128, 79, 48, 49, 48, 65, 128, 79, 48, 49, - 48, 128, 79, 48, 48, 57, 128, 79, 48, 48, 56, 128, 79, 48, 48, 55, 128, - 79, 48, 48, 54, 70, 128, 79, 48, 48, 54, 69, 128, 79, 48, 48, 54, 68, - 128, 79, 48, 48, 54, 67, 128, 79, 48, 48, 54, 66, 128, 79, 48, 48, 54, - 65, 128, 79, 48, 48, 54, 128, 79, 48, 48, 53, 65, 128, 79, 48, 48, 53, - 128, 79, 48, 48, 52, 128, 79, 48, 48, 51, 128, 79, 48, 48, 50, 128, 79, - 48, 48, 49, 65, 128, 79, 48, 48, 49, 128, 79, 45, 89, 69, 128, 79, 45, - 79, 45, 73, 128, 79, 45, 69, 128, 78, 90, 89, 88, 128, 78, 90, 89, 84, - 128, 78, 90, 89, 82, 88, 128, 78, 90, 89, 82, 128, 78, 90, 89, 80, 128, - 78, 90, 89, 128, 78, 90, 85, 88, 128, 78, 90, 85, 82, 88, 128, 78, 90, - 85, 82, 128, 78, 90, 85, 81, 128, 78, 90, 85, 80, 128, 78, 90, 85, 79, - 88, 128, 78, 90, 85, 79, 128, 78, 90, 85, 206, 78, 90, 85, 128, 78, 90, - 79, 88, 128, 78, 90, 79, 80, 128, 78, 90, 73, 88, 128, 78, 90, 73, 84, - 128, 78, 90, 73, 80, 128, 78, 90, 73, 69, 88, 128, 78, 90, 73, 69, 80, - 128, 78, 90, 73, 69, 128, 78, 90, 73, 128, 78, 90, 69, 88, 128, 78, 90, - 69, 85, 77, 128, 78, 90, 69, 128, 78, 90, 65, 88, 128, 78, 90, 65, 84, - 128, 78, 90, 65, 81, 128, 78, 90, 65, 80, 128, 78, 90, 65, 128, 78, 90, - 193, 78, 89, 87, 65, 128, 78, 89, 85, 88, 128, 78, 89, 85, 85, 128, 78, - 89, 85, 84, 128, 78, 89, 85, 80, 128, 78, 89, 85, 79, 88, 128, 78, 89, - 85, 79, 80, 128, 78, 89, 85, 79, 128, 78, 89, 85, 78, 128, 78, 89, 85, - 69, 128, 78, 89, 85, 128, 78, 89, 79, 88, 128, 78, 89, 79, 84, 128, 78, - 89, 79, 80, 128, 78, 89, 79, 79, 128, 78, 89, 79, 78, 128, 78, 89, 79, - 65, 128, 78, 89, 79, 128, 78, 89, 74, 65, 128, 78, 89, 73, 88, 128, 78, - 89, 73, 84, 128, 78, 89, 73, 212, 78, 89, 73, 211, 78, 89, 73, 210, 78, - 89, 73, 80, 128, 78, 89, 73, 78, 45, 68, 79, 128, 78, 89, 73, 78, 128, - 78, 89, 73, 73, 128, 78, 89, 73, 69, 88, 128, 78, 89, 73, 69, 84, 128, - 78, 89, 73, 69, 80, 128, 78, 89, 73, 69, 128, 78, 89, 73, 65, 75, 69, 78, - 199, 78, 89, 73, 128, 78, 89, 201, 78, 89, 72, 65, 128, 78, 89, 69, 84, - 128, 78, 89, 69, 212, 78, 89, 69, 78, 128, 78, 89, 69, 72, 128, 78, 89, - 69, 200, 78, 89, 69, 69, 128, 78, 89, 69, 128, 78, 89, 196, 78, 89, 67, - 65, 128, 78, 89, 65, 85, 128, 78, 89, 65, 74, 128, 78, 89, 65, 73, 128, - 78, 89, 65, 72, 128, 78, 89, 65, 69, 77, 65, 69, 128, 78, 89, 65, 65, - 128, 78, 87, 79, 79, 128, 78, 87, 79, 128, 78, 87, 73, 73, 128, 78, 87, - 73, 128, 78, 87, 69, 128, 78, 87, 65, 65, 128, 78, 87, 65, 128, 78, 87, - 128, 78, 86, 128, 78, 85, 88, 128, 78, 85, 85, 78, 128, 78, 85, 85, 128, - 78, 85, 84, 73, 76, 76, 85, 128, 78, 85, 84, 128, 78, 85, 212, 78, 85, - 82, 88, 128, 78, 85, 82, 128, 78, 85, 80, 128, 78, 85, 79, 88, 128, 78, - 85, 79, 80, 128, 78, 85, 79, 128, 78, 85, 78, 85, 90, 128, 78, 85, 78, - 85, 218, 78, 85, 78, 71, 128, 78, 85, 78, 65, 86, 85, 212, 78, 85, 78, - 65, 86, 73, 203, 78, 85, 78, 128, 78, 85, 206, 78, 85, 77, 69, 82, 207, - 78, 85, 77, 69, 82, 65, 84, 79, 210, 78, 85, 77, 69, 82, 65, 204, 78, 85, - 77, 66, 69, 82, 83, 128, 78, 85, 77, 66, 69, 82, 128, 78, 85, 77, 128, - 78, 85, 76, 76, 128, 78, 85, 76, 204, 78, 85, 76, 128, 78, 85, 75, 84, - 65, 128, 78, 85, 75, 84, 193, 78, 85, 69, 78, 71, 128, 78, 85, 69, 128, - 78, 85, 66, 73, 65, 206, 78, 85, 65, 69, 128, 78, 85, 49, 49, 128, 78, - 85, 49, 177, 78, 85, 48, 50, 50, 65, 128, 78, 85, 48, 50, 50, 128, 78, - 85, 48, 50, 49, 128, 78, 85, 48, 50, 48, 128, 78, 85, 48, 49, 57, 128, - 78, 85, 48, 49, 56, 65, 128, 78, 85, 48, 49, 56, 128, 78, 85, 48, 49, 55, - 128, 78, 85, 48, 49, 54, 128, 78, 85, 48, 49, 53, 128, 78, 85, 48, 49, - 52, 128, 78, 85, 48, 49, 51, 128, 78, 85, 48, 49, 50, 128, 78, 85, 48, - 49, 49, 65, 128, 78, 85, 48, 49, 49, 128, 78, 85, 48, 49, 48, 65, 128, - 78, 85, 48, 49, 48, 128, 78, 85, 48, 48, 57, 128, 78, 85, 48, 48, 56, - 128, 78, 85, 48, 48, 55, 128, 78, 85, 48, 48, 54, 128, 78, 85, 48, 48, - 53, 128, 78, 85, 48, 48, 52, 128, 78, 85, 48, 48, 51, 128, 78, 85, 48, - 48, 50, 128, 78, 85, 48, 48, 49, 128, 78, 85, 45, 51, 128, 78, 85, 45, - 50, 128, 78, 85, 45, 49, 128, 78, 84, 88, 73, 86, 128, 78, 84, 88, 65, - 128, 78, 84, 85, 85, 128, 78, 84, 85, 77, 128, 78, 84, 85, 74, 128, 78, - 84, 213, 78, 84, 83, 65, 85, 128, 78, 84, 83, 65, 128, 78, 84, 79, 81, - 80, 69, 78, 128, 78, 84, 79, 71, 128, 78, 84, 79, 199, 78, 84, 73, 69, - 197, 78, 84, 72, 65, 85, 128, 78, 84, 69, 85, 78, 71, 66, 65, 128, 78, - 84, 69, 85, 77, 128, 78, 84, 69, 78, 128, 78, 84, 69, 69, 128, 78, 84, - 65, 80, 128, 78, 84, 65, 208, 78, 84, 65, 65, 128, 78, 84, 65, 128, 78, - 83, 85, 79, 212, 78, 83, 85, 78, 128, 78, 83, 85, 77, 128, 78, 83, 79, - 77, 128, 78, 83, 73, 69, 69, 84, 128, 78, 83, 73, 69, 69, 80, 128, 78, - 83, 73, 69, 69, 128, 78, 83, 72, 85, 84, 128, 78, 83, 72, 85, 212, 78, - 83, 72, 85, 79, 80, 128, 78, 83, 72, 85, 69, 128, 78, 83, 72, 73, 69, 69, - 128, 78, 83, 72, 69, 69, 128, 78, 83, 72, 65, 81, 128, 78, 83, 72, 65, - 128, 78, 83, 69, 85, 65, 69, 78, 128, 78, 83, 69, 78, 128, 78, 83, 65, - 128, 78, 82, 89, 88, 128, 78, 82, 89, 84, 128, 78, 82, 89, 82, 88, 128, - 78, 82, 89, 82, 128, 78, 82, 89, 80, 128, 78, 82, 89, 128, 78, 82, 85, - 88, 128, 78, 82, 85, 84, 128, 78, 82, 85, 82, 88, 128, 78, 82, 85, 82, - 128, 78, 82, 85, 80, 128, 78, 82, 85, 65, 128, 78, 82, 85, 128, 78, 82, - 79, 88, 128, 78, 82, 79, 80, 128, 78, 82, 79, 128, 78, 82, 69, 88, 128, - 78, 82, 69, 84, 128, 78, 82, 69, 211, 78, 82, 69, 80, 128, 78, 82, 69, - 128, 78, 82, 65, 88, 128, 78, 82, 65, 84, 128, 78, 82, 65, 80, 128, 78, - 82, 65, 128, 78, 81, 73, 71, 128, 78, 81, 65, 128, 78, 80, 76, 65, 128, - 78, 80, 65, 128, 78, 79, 90, 72, 75, 65, 128, 78, 79, 89, 128, 78, 79, - 88, 128, 78, 79, 87, 67, 128, 78, 79, 86, 73, 76, 69, 128, 78, 79, 86, - 69, 77, 66, 69, 82, 128, 78, 79, 84, 84, 79, 128, 78, 79, 84, 69, 83, - 128, 78, 79, 84, 69, 72, 69, 65, 68, 128, 78, 79, 84, 69, 72, 69, 65, - 196, 78, 79, 84, 69, 66, 79, 79, 75, 128, 78, 79, 84, 69, 66, 79, 79, - 203, 78, 79, 84, 69, 128, 78, 79, 84, 197, 78, 79, 84, 67, 72, 69, 196, - 78, 79, 84, 67, 72, 128, 78, 79, 84, 65, 84, 73, 79, 206, 78, 79, 84, - 128, 78, 79, 212, 78, 79, 83, 69, 128, 78, 79, 83, 197, 78, 79, 82, 84, - 72, 87, 69, 83, 212, 78, 79, 82, 84, 72, 69, 82, 206, 78, 79, 82, 84, 72, - 69, 65, 83, 84, 45, 80, 79, 73, 78, 84, 73, 78, 199, 78, 79, 82, 77, 65, - 204, 78, 79, 82, 68, 73, 195, 78, 79, 210, 78, 79, 80, 128, 78, 79, 79, - 78, 85, 128, 78, 79, 79, 128, 78, 79, 78, 70, 79, 82, 75, 73, 78, 71, - 128, 78, 79, 78, 45, 80, 79, 84, 65, 66, 76, 197, 78, 79, 78, 45, 74, 79, - 73, 78, 69, 82, 128, 78, 79, 78, 45, 66, 82, 69, 65, 75, 73, 78, 199, 78, - 79, 78, 128, 78, 79, 77, 73, 83, 77, 193, 78, 79, 77, 73, 78, 65, 204, - 78, 79, 75, 72, 85, 75, 128, 78, 79, 68, 69, 128, 78, 79, 65, 128, 78, - 79, 45, 66, 82, 69, 65, 203, 78, 79, 45, 53, 128, 78, 79, 45, 52, 128, - 78, 79, 45, 51, 128, 78, 79, 45, 50, 128, 78, 79, 45, 49, 128, 78, 78, - 85, 85, 128, 78, 78, 85, 128, 78, 78, 79, 79, 128, 78, 78, 78, 85, 85, - 128, 78, 78, 78, 85, 128, 78, 78, 78, 79, 79, 128, 78, 78, 78, 79, 128, - 78, 78, 78, 73, 73, 128, 78, 78, 78, 73, 128, 78, 78, 78, 69, 69, 128, - 78, 78, 78, 69, 128, 78, 78, 78, 65, 85, 128, 78, 78, 78, 65, 73, 128, - 78, 78, 78, 65, 65, 128, 78, 78, 78, 65, 128, 78, 78, 78, 128, 78, 78, - 72, 65, 128, 78, 78, 71, 79, 79, 128, 78, 78, 71, 79, 128, 78, 78, 71, - 73, 73, 128, 78, 78, 71, 73, 128, 78, 78, 71, 65, 65, 128, 78, 78, 71, - 65, 128, 78, 78, 71, 128, 78, 78, 66, 83, 80, 128, 78, 77, 128, 78, 76, - 65, 85, 128, 78, 76, 48, 50, 48, 128, 78, 76, 48, 49, 57, 128, 78, 76, - 48, 49, 56, 128, 78, 76, 48, 49, 55, 65, 128, 78, 76, 48, 49, 55, 128, - 78, 76, 48, 49, 54, 128, 78, 76, 48, 49, 53, 128, 78, 76, 48, 49, 52, - 128, 78, 76, 48, 49, 51, 128, 78, 76, 48, 49, 50, 128, 78, 76, 48, 49, - 49, 128, 78, 76, 48, 49, 48, 128, 78, 76, 48, 48, 57, 128, 78, 76, 48, - 48, 56, 128, 78, 76, 48, 48, 55, 128, 78, 76, 48, 48, 54, 128, 78, 76, - 48, 48, 53, 65, 128, 78, 76, 48, 48, 53, 128, 78, 76, 48, 48, 52, 128, - 78, 76, 48, 48, 51, 128, 78, 76, 48, 48, 50, 128, 78, 76, 48, 48, 49, - 128, 78, 76, 128, 78, 75, 79, 77, 128, 78, 75, 207, 78, 75, 73, 78, 68, - 73, 128, 78, 75, 65, 85, 128, 78, 75, 65, 65, 82, 65, 69, 128, 78, 75, - 65, 128, 78, 74, 89, 88, 128, 78, 74, 89, 84, 128, 78, 74, 89, 82, 88, - 128, 78, 74, 89, 82, 128, 78, 74, 89, 80, 128, 78, 74, 89, 128, 78, 74, - 85, 88, 128, 78, 74, 85, 82, 88, 128, 78, 74, 85, 82, 128, 78, 74, 85, - 81, 65, 128, 78, 74, 85, 80, 128, 78, 74, 85, 79, 88, 128, 78, 74, 85, - 79, 128, 78, 74, 85, 69, 81, 128, 78, 74, 85, 65, 69, 128, 78, 74, 85, - 128, 78, 74, 79, 88, 128, 78, 74, 79, 84, 128, 78, 74, 79, 80, 128, 78, - 74, 79, 79, 128, 78, 74, 79, 128, 78, 74, 73, 88, 128, 78, 74, 73, 84, - 128, 78, 74, 73, 80, 128, 78, 74, 73, 69, 88, 128, 78, 74, 73, 69, 84, - 128, 78, 74, 73, 69, 80, 128, 78, 74, 73, 69, 69, 128, 78, 74, 73, 69, - 128, 78, 74, 73, 128, 78, 74, 201, 78, 74, 69, 85, 88, 128, 78, 74, 69, - 85, 84, 128, 78, 74, 69, 85, 65, 69, 78, 65, 128, 78, 74, 69, 85, 65, 69, - 77, 128, 78, 74, 69, 69, 69, 69, 128, 78, 74, 69, 69, 128, 78, 74, 69, - 197, 78, 74, 69, 128, 78, 74, 65, 81, 128, 78, 74, 65, 80, 128, 78, 74, - 65, 69, 77, 76, 73, 128, 78, 74, 65, 69, 77, 128, 78, 74, 65, 65, 128, - 78, 73, 90, 75, 207, 78, 73, 88, 128, 78, 73, 84, 82, 69, 128, 78, 73, - 83, 65, 71, 128, 78, 73, 82, 85, 71, 85, 128, 78, 73, 80, 128, 78, 73, - 78, 84, 72, 128, 78, 73, 78, 74, 65, 128, 78, 73, 78, 69, 84, 89, 128, - 78, 73, 78, 69, 84, 217, 78, 73, 78, 69, 84, 69, 69, 78, 128, 78, 73, 78, - 69, 84, 69, 69, 206, 78, 73, 78, 69, 45, 84, 72, 73, 82, 84, 89, 128, 78, - 73, 78, 197, 78, 73, 78, 68, 65, 50, 128, 78, 73, 78, 68, 65, 178, 78, - 73, 78, 57, 128, 78, 73, 78, 128, 78, 73, 77, 128, 78, 73, 205, 78, 73, - 75, 79, 76, 83, 66, 85, 82, 199, 78, 73, 75, 72, 65, 72, 73, 84, 128, 78, - 73, 75, 65, 72, 73, 84, 128, 78, 73, 75, 65, 128, 78, 73, 72, 83, 72, 86, - 65, 83, 65, 128, 78, 73, 71, 73, 68, 65, 77, 73, 78, 128, 78, 73, 71, 73, - 68, 65, 69, 83, 72, 128, 78, 73, 71, 72, 84, 128, 78, 73, 71, 72, 212, - 78, 73, 71, 71, 65, 72, 73, 84, 65, 128, 78, 73, 69, 88, 128, 78, 73, 69, - 85, 78, 45, 84, 73, 75, 69, 85, 84, 128, 78, 73, 69, 85, 78, 45, 84, 72, - 73, 69, 85, 84, 72, 128, 78, 73, 69, 85, 78, 45, 83, 73, 79, 83, 128, 78, - 73, 69, 85, 78, 45, 82, 73, 69, 85, 76, 128, 78, 73, 69, 85, 78, 45, 80, - 73, 69, 85, 80, 128, 78, 73, 69, 85, 78, 45, 80, 65, 78, 83, 73, 79, 83, - 128, 78, 73, 69, 85, 78, 45, 75, 73, 89, 69, 79, 75, 128, 78, 73, 69, 85, - 78, 45, 72, 73, 69, 85, 72, 128, 78, 73, 69, 85, 78, 45, 67, 73, 69, 85, - 67, 128, 78, 73, 69, 85, 78, 45, 67, 72, 73, 69, 85, 67, 72, 128, 78, 73, - 69, 85, 206, 78, 73, 69, 80, 128, 78, 73, 69, 128, 78, 73, 66, 128, 78, - 73, 65, 128, 78, 73, 50, 128, 78, 73, 45, 84, 69, 128, 78, 73, 45, 55, - 128, 78, 73, 45, 54, 128, 78, 73, 45, 53, 128, 78, 73, 45, 52, 128, 78, - 73, 45, 51, 128, 78, 73, 45, 50, 128, 78, 73, 45, 49, 128, 78, 72, 85, - 69, 128, 78, 72, 74, 65, 128, 78, 72, 65, 89, 128, 78, 72, 128, 78, 71, - 89, 69, 128, 78, 71, 86, 69, 128, 78, 71, 85, 85, 128, 78, 71, 85, 79, - 88, 128, 78, 71, 85, 79, 84, 128, 78, 71, 85, 79, 128, 78, 71, 85, 65, - 78, 128, 78, 71, 85, 65, 69, 84, 128, 78, 71, 85, 65, 69, 128, 78, 71, - 79, 88, 128, 78, 71, 79, 85, 128, 78, 71, 79, 213, 78, 71, 79, 84, 128, - 78, 71, 79, 81, 128, 78, 71, 79, 80, 128, 78, 71, 79, 78, 128, 78, 71, - 79, 77, 128, 78, 71, 79, 69, 72, 128, 78, 71, 79, 69, 200, 78, 71, 207, - 78, 71, 75, 89, 69, 69, 128, 78, 71, 75, 87, 65, 69, 78, 128, 78, 71, 75, - 85, 80, 128, 78, 71, 75, 85, 78, 128, 78, 71, 75, 85, 77, 128, 78, 71, - 75, 85, 69, 78, 90, 69, 85, 77, 128, 78, 71, 75, 85, 197, 78, 71, 75, 73, - 78, 68, 201, 78, 71, 75, 73, 69, 69, 128, 78, 71, 75, 69, 85, 88, 128, - 78, 71, 75, 69, 85, 82, 73, 128, 78, 71, 75, 69, 85, 65, 69, 81, 128, 78, - 71, 75, 69, 85, 65, 69, 77, 128, 78, 71, 75, 65, 81, 128, 78, 71, 75, 65, - 80, 128, 78, 71, 75, 65, 65, 77, 73, 128, 78, 71, 75, 65, 128, 78, 71, - 73, 69, 88, 128, 78, 71, 73, 69, 80, 128, 78, 71, 73, 69, 128, 78, 71, - 72, 65, 128, 78, 71, 71, 87, 65, 69, 78, 128, 78, 71, 71, 85, 82, 65, 69, - 128, 78, 71, 71, 85, 80, 128, 78, 71, 71, 85, 79, 81, 128, 78, 71, 71, - 85, 79, 209, 78, 71, 71, 85, 79, 78, 128, 78, 71, 71, 85, 79, 77, 128, - 78, 71, 71, 85, 77, 128, 78, 71, 71, 85, 69, 69, 84, 128, 78, 71, 71, 85, - 65, 69, 83, 72, 65, 197, 78, 71, 71, 85, 65, 69, 206, 78, 71, 71, 85, 65, - 128, 78, 71, 71, 85, 128, 78, 71, 71, 79, 79, 128, 78, 71, 71, 79, 128, - 78, 71, 71, 73, 128, 78, 71, 71, 69, 85, 88, 128, 78, 71, 71, 69, 85, 65, - 69, 84, 128, 78, 71, 71, 69, 85, 65, 69, 128, 78, 71, 71, 69, 213, 78, - 71, 71, 69, 78, 128, 78, 71, 71, 69, 69, 84, 128, 78, 71, 71, 69, 69, 69, - 69, 128, 78, 71, 71, 69, 69, 128, 78, 71, 71, 69, 128, 78, 71, 71, 65, - 80, 128, 78, 71, 71, 65, 65, 77, 65, 69, 128, 78, 71, 71, 65, 65, 77, - 128, 78, 71, 71, 65, 65, 128, 78, 71, 71, 128, 78, 71, 69, 88, 128, 78, - 71, 69, 85, 82, 69, 85, 84, 128, 78, 71, 69, 80, 128, 78, 71, 69, 78, - 128, 78, 71, 69, 69, 128, 78, 71, 69, 65, 68, 65, 76, 128, 78, 71, 65, - 88, 128, 78, 71, 65, 85, 128, 78, 71, 65, 84, 128, 78, 71, 65, 211, 78, - 71, 65, 81, 128, 78, 71, 65, 80, 128, 78, 71, 65, 78, 71, 85, 128, 78, - 71, 65, 78, 128, 78, 71, 65, 73, 128, 78, 71, 65, 72, 128, 78, 71, 65, - 65, 73, 128, 78, 71, 193, 78, 70, 128, 78, 69, 88, 212, 78, 69, 88, 128, - 78, 69, 87, 83, 80, 65, 80, 69, 82, 128, 78, 69, 87, 76, 73, 78, 69, 128, - 78, 69, 87, 76, 73, 78, 197, 78, 69, 87, 193, 78, 69, 87, 128, 78, 69, - 215, 78, 69, 85, 84, 82, 65, 76, 128, 78, 69, 85, 84, 82, 65, 204, 78, - 69, 85, 84, 69, 82, 128, 78, 69, 84, 87, 79, 82, 75, 69, 196, 78, 69, - 212, 78, 69, 83, 84, 73, 78, 199, 78, 69, 83, 84, 69, 196, 78, 69, 83, - 84, 128, 78, 69, 83, 212, 78, 69, 83, 83, 85, 83, 128, 78, 69, 82, 196, - 78, 69, 81, 85, 68, 65, 65, 128, 78, 69, 80, 84, 85, 78, 69, 128, 78, 69, - 80, 84, 85, 78, 197, 78, 69, 80, 79, 83, 84, 79, 89, 65, 78, 78, 65, 89, - 65, 128, 78, 69, 80, 128, 78, 69, 79, 128, 78, 69, 207, 78, 69, 78, 79, - 69, 128, 78, 69, 78, 65, 78, 79, 128, 78, 69, 78, 128, 78, 69, 77, 75, - 65, 128, 78, 69, 76, 128, 78, 69, 73, 84, 72, 69, 210, 78, 69, 71, 65, - 84, 73, 86, 197, 78, 69, 71, 65, 84, 73, 79, 206, 78, 69, 71, 65, 84, 69, - 196, 78, 69, 69, 68, 76, 69, 128, 78, 69, 67, 75, 84, 73, 69, 128, 78, - 69, 67, 75, 128, 78, 69, 66, 69, 78, 83, 84, 73, 77, 77, 69, 128, 78, 69, - 45, 75, 79, 128, 78, 68, 85, 88, 128, 78, 68, 85, 84, 128, 78, 68, 85, - 82, 88, 128, 78, 68, 85, 82, 128, 78, 68, 85, 80, 128, 78, 68, 85, 78, - 128, 78, 68, 213, 78, 68, 79, 88, 128, 78, 68, 79, 84, 128, 78, 68, 79, - 80, 128, 78, 68, 79, 79, 128, 78, 68, 79, 78, 128, 78, 68, 79, 77, 66, - 85, 128, 78, 68, 79, 76, 197, 78, 68, 73, 88, 128, 78, 68, 73, 84, 128, - 78, 68, 73, 81, 128, 78, 68, 73, 80, 128, 78, 68, 73, 69, 88, 128, 78, - 68, 73, 69, 128, 78, 68, 73, 68, 65, 128, 78, 68, 73, 65, 81, 128, 78, - 68, 69, 88, 128, 78, 68, 69, 85, 88, 128, 78, 68, 69, 85, 84, 128, 78, - 68, 69, 85, 65, 69, 82, 69, 69, 128, 78, 68, 69, 80, 128, 78, 68, 69, 69, - 128, 78, 68, 69, 128, 78, 68, 65, 88, 128, 78, 68, 65, 84, 128, 78, 68, - 65, 80, 128, 78, 68, 65, 77, 128, 78, 68, 65, 65, 78, 71, 71, 69, 85, 65, - 69, 84, 128, 78, 68, 65, 65, 128, 78, 68, 65, 193, 78, 67, 72, 65, 85, - 128, 78, 67, 65, 128, 78, 66, 89, 88, 128, 78, 66, 89, 84, 128, 78, 66, - 89, 82, 88, 128, 78, 66, 89, 82, 128, 78, 66, 89, 80, 128, 78, 66, 89, - 128, 78, 66, 85, 88, 128, 78, 66, 85, 84, 128, 78, 66, 85, 82, 88, 128, - 78, 66, 85, 82, 128, 78, 66, 85, 80, 128, 78, 66, 85, 128, 78, 66, 79, - 88, 128, 78, 66, 79, 84, 128, 78, 66, 79, 80, 128, 78, 66, 79, 128, 78, - 66, 73, 88, 128, 78, 66, 73, 84, 128, 78, 66, 73, 80, 128, 78, 66, 73, - 69, 88, 128, 78, 66, 73, 69, 80, 128, 78, 66, 73, 69, 128, 78, 66, 73, - 128, 78, 66, 72, 128, 78, 66, 65, 88, 128, 78, 66, 65, 84, 128, 78, 66, - 65, 80, 128, 78, 66, 65, 128, 78, 65, 90, 65, 210, 78, 65, 89, 65, 78, - 78, 65, 128, 78, 65, 89, 128, 78, 65, 88, 73, 65, 206, 78, 65, 88, 128, - 78, 65, 85, 84, 72, 83, 128, 78, 65, 85, 83, 69, 65, 84, 69, 196, 78, 65, - 85, 68, 73, 218, 78, 65, 84, 85, 82, 65, 204, 78, 65, 84, 84, 73, 76, 73, - 203, 78, 65, 84, 73, 79, 78, 65, 204, 78, 65, 83, 75, 65, 80, 201, 78, - 65, 83, 72, 73, 128, 78, 65, 83, 65, 76, 73, 90, 69, 196, 78, 65, 83, 65, - 76, 73, 90, 65, 84, 73, 79, 78, 128, 78, 65, 83, 65, 76, 73, 90, 65, 84, - 73, 79, 206, 78, 65, 83, 65, 204, 78, 65, 82, 82, 79, 215, 78, 65, 82, - 128, 78, 65, 81, 128, 78, 65, 79, 211, 78, 65, 78, 83, 65, 78, 65, 81, - 128, 78, 65, 78, 71, 77, 79, 78, 84, 72, 79, 128, 78, 65, 78, 68, 73, 78, - 65, 71, 65, 82, 201, 78, 65, 78, 68, 128, 78, 65, 78, 65, 128, 78, 65, - 77, 69, 128, 78, 65, 77, 197, 78, 65, 77, 50, 128, 78, 65, 75, 65, 65, - 82, 193, 78, 65, 75, 128, 78, 65, 73, 82, 193, 78, 65, 73, 204, 78, 65, - 71, 82, 201, 78, 65, 71, 65, 82, 128, 78, 65, 71, 65, 128, 78, 65, 71, - 193, 78, 65, 71, 128, 78, 65, 199, 78, 65, 69, 128, 78, 65, 66, 76, 65, - 128, 78, 65, 66, 65, 84, 65, 69, 65, 206, 78, 65, 65, 83, 73, 75, 89, 65, - 89, 65, 128, 78, 65, 65, 75, 83, 73, 75, 89, 65, 89, 65, 128, 78, 65, 65, - 73, 128, 78, 65, 193, 78, 65, 52, 128, 78, 65, 50, 128, 78, 65, 45, 57, - 128, 78, 65, 45, 56, 128, 78, 65, 45, 55, 128, 78, 65, 45, 54, 128, 78, - 65, 45, 53, 128, 78, 65, 45, 52, 128, 78, 65, 45, 51, 128, 78, 65, 45, - 50, 128, 78, 65, 45, 49, 128, 78, 48, 52, 50, 128, 78, 48, 52, 49, 128, - 78, 48, 52, 48, 128, 78, 48, 51, 57, 128, 78, 48, 51, 56, 128, 78, 48, - 51, 55, 65, 128, 78, 48, 51, 55, 128, 78, 48, 51, 54, 128, 78, 48, 51, - 53, 65, 128, 78, 48, 51, 53, 128, 78, 48, 51, 52, 65, 128, 78, 48, 51, - 52, 128, 78, 48, 51, 51, 65, 128, 78, 48, 51, 51, 128, 78, 48, 51, 50, - 128, 78, 48, 51, 49, 128, 78, 48, 51, 48, 128, 78, 48, 50, 57, 128, 78, - 48, 50, 56, 128, 78, 48, 50, 55, 128, 78, 48, 50, 54, 128, 78, 48, 50, - 53, 65, 128, 78, 48, 50, 53, 128, 78, 48, 50, 52, 128, 78, 48, 50, 51, - 128, 78, 48, 50, 50, 128, 78, 48, 50, 49, 128, 78, 48, 50, 48, 128, 78, - 48, 49, 57, 128, 78, 48, 49, 56, 66, 128, 78, 48, 49, 56, 65, 128, 78, - 48, 49, 56, 128, 78, 48, 49, 55, 128, 78, 48, 49, 54, 128, 78, 48, 49, - 53, 128, 78, 48, 49, 52, 128, 78, 48, 49, 51, 128, 78, 48, 49, 50, 128, - 78, 48, 49, 49, 128, 78, 48, 49, 48, 128, 78, 48, 48, 57, 128, 78, 48, - 48, 56, 128, 78, 48, 48, 55, 128, 78, 48, 48, 54, 128, 78, 48, 48, 53, - 128, 78, 48, 48, 52, 128, 78, 48, 48, 51, 128, 78, 48, 48, 50, 128, 78, - 48, 48, 49, 128, 78, 45, 77, 85, 45, 77, 79, 45, 50, 128, 78, 45, 77, 85, - 45, 77, 79, 45, 49, 128, 78, 45, 67, 82, 69, 197, 78, 45, 65, 82, 217, - 77, 90, 128, 77, 89, 88, 128, 77, 89, 84, 128, 77, 89, 83, 76, 73, 84, - 69, 128, 77, 89, 80, 128, 77, 89, 65, 128, 77, 89, 193, 77, 87, 79, 79, - 128, 77, 87, 79, 128, 77, 87, 73, 73, 128, 77, 87, 73, 128, 77, 87, 69, - 69, 128, 77, 87, 69, 128, 77, 87, 65, 65, 128, 77, 87, 65, 128, 77, 87, - 128, 77, 215, 77, 86, 83, 128, 77, 86, 79, 80, 128, 77, 86, 73, 128, 77, - 86, 69, 85, 65, 69, 78, 71, 65, 77, 128, 77, 86, 128, 77, 214, 77, 85, - 88, 128, 77, 85, 85, 86, 85, 90, 72, 65, 75, 75, 85, 128, 77, 85, 85, 83, - 73, 75, 65, 84, 79, 65, 78, 128, 77, 85, 85, 82, 68, 72, 65, 74, 193, 77, - 85, 85, 128, 77, 85, 84, 72, 65, 76, 73, 89, 65, 128, 77, 85, 84, 128, - 77, 85, 83, 73, 67, 128, 77, 85, 83, 73, 195, 77, 85, 83, 72, 82, 79, 79, - 77, 128, 77, 85, 83, 72, 51, 128, 77, 85, 83, 72, 179, 77, 85, 83, 72, - 128, 77, 85, 83, 200, 77, 85, 83, 128, 77, 85, 82, 88, 128, 77, 85, 82, - 71, 85, 50, 128, 77, 85, 82, 69, 128, 77, 85, 82, 68, 65, 128, 77, 85, - 82, 68, 193, 77, 85, 82, 128, 77, 85, 81, 68, 65, 77, 128, 77, 85, 80, - 128, 77, 85, 79, 88, 128, 77, 85, 79, 84, 128, 77, 85, 79, 80, 128, 77, - 85, 79, 77, 65, 69, 128, 77, 85, 79, 128, 77, 85, 78, 83, 85, 66, 128, - 77, 85, 78, 65, 72, 128, 77, 85, 78, 128, 77, 85, 76, 84, 73, 83, 69, 84, + 67, 197, 80, 69, 193, 80, 68, 73, 128, 80, 68, 70, 128, 80, 68, 128, 80, + 67, 128, 80, 65, 90, 69, 82, 128, 80, 65, 89, 69, 82, 79, 75, 128, 80, + 65, 89, 65, 78, 78, 65, 128, 80, 65, 89, 128, 80, 65, 88, 128, 80, 65, + 87, 78, 128, 80, 65, 87, 206, 80, 65, 215, 80, 65, 86, 73, 89, 65, 78, + 73, 128, 80, 65, 85, 83, 197, 80, 65, 85, 75, 128, 80, 65, 85, 128, 80, + 65, 213, 80, 65, 84, 84, 217, 80, 65, 84, 84, 69, 82, 78, 128, 80, 65, + 84, 72, 65, 77, 65, 83, 65, 84, 128, 80, 65, 84, 72, 65, 75, 75, 85, 128, + 80, 65, 84, 200, 80, 65, 84, 65, 75, 128, 80, 65, 84, 65, 72, 128, 80, + 65, 84, 128, 80, 65, 83, 85, 81, 128, 80, 65, 83, 83, 80, 79, 82, 212, + 80, 65, 83, 83, 73, 86, 69, 45, 80, 85, 76, 76, 45, 85, 80, 45, 79, 85, + 84, 80, 85, 212, 80, 65, 83, 83, 73, 86, 69, 45, 80, 85, 76, 76, 45, 68, + 79, 87, 78, 45, 79, 85, 84, 80, 85, 212, 80, 65, 83, 83, 73, 77, 66, 65, + 78, 71, 128, 80, 65, 83, 83, 69, 78, 71, 69, 210, 80, 65, 83, 83, 69, + 196, 80, 65, 83, 72, 84, 65, 128, 80, 65, 83, 72, 65, 69, 128, 80, 65, + 83, 69, 81, 128, 80, 65, 83, 65, 78, 71, 65, 206, 80, 65, 82, 85, 77, + 128, 80, 65, 82, 84, 217, 80, 65, 82, 84, 78, 69, 82, 83, 72, 73, 208, + 80, 65, 82, 84, 73, 65, 76, 76, 89, 45, 82, 69, 67, 89, 67, 76, 69, 196, + 80, 65, 82, 84, 73, 65, 204, 80, 65, 82, 84, 72, 73, 65, 206, 80, 65, 82, + 212, 80, 65, 82, 82, 79, 84, 128, 80, 65, 82, 75, 128, 80, 65, 82, 73, + 67, 72, 79, 78, 128, 80, 65, 82, 69, 83, 84, 73, 71, 77, 69, 78, 79, 206, + 80, 65, 82, 69, 82, 69, 78, 128, 80, 65, 82, 69, 78, 84, 72, 69, 83, 73, + 83, 128, 80, 65, 82, 69, 78, 84, 72, 69, 83, 73, 211, 80, 65, 82, 69, 78, + 84, 72, 69, 83, 69, 211, 80, 65, 82, 65, 80, 72, 82, 65, 83, 197, 80, 65, + 82, 65, 76, 76, 69, 76, 79, 71, 82, 65, 77, 128, 80, 65, 82, 65, 76, 76, + 69, 76, 128, 80, 65, 82, 65, 76, 76, 69, 204, 80, 65, 82, 65, 75, 76, 73, + 84, 73, 75, 73, 128, 80, 65, 82, 65, 75, 76, 73, 84, 73, 75, 201, 80, 65, + 82, 65, 75, 76, 73, 84, 128, 80, 65, 82, 65, 75, 65, 76, 69, 83, 77, 193, + 80, 65, 82, 65, 71, 82, 65, 80, 72, 85, 211, 80, 65, 82, 65, 71, 82, 65, + 80, 72, 79, 83, 128, 80, 65, 82, 65, 71, 82, 65, 80, 72, 128, 80, 65, 82, + 65, 71, 82, 65, 80, 200, 80, 65, 82, 65, 67, 72, 85, 84, 69, 128, 80, 65, + 82, 65, 128, 80, 65, 82, 128, 80, 65, 80, 89, 82, 85, 83, 128, 80, 65, + 80, 69, 82, 67, 76, 73, 80, 83, 128, 80, 65, 80, 69, 82, 67, 76, 73, 80, + 128, 80, 65, 80, 69, 82, 128, 80, 65, 80, 69, 210, 80, 65, 80, 128, 80, + 65, 208, 80, 65, 207, 80, 65, 78, 89, 85, 75, 85, 128, 80, 65, 78, 89, + 73, 75, 85, 128, 80, 65, 78, 89, 69, 67, 69, 75, 128, 80, 65, 78, 89, 65, + 78, 71, 71, 65, 128, 80, 65, 78, 89, 65, 75, 82, 65, 128, 80, 65, 78, 84, + 73, 128, 80, 65, 78, 84, 201, 80, 65, 78, 83, 73, 79, 83, 45, 80, 73, 69, + 85, 80, 128, 80, 65, 78, 83, 73, 79, 83, 45, 75, 65, 80, 89, 69, 79, 85, + 78, 80, 73, 69, 85, 80, 128, 80, 65, 78, 79, 78, 71, 79, 78, 65, 78, 128, + 80, 65, 78, 79, 76, 79, 78, 71, 128, 80, 65, 78, 71, 87, 73, 83, 65, 68, + 128, 80, 65, 78, 71, 82, 65, 78, 71, 75, 69, 80, 128, 80, 65, 78, 71, 79, + 76, 65, 84, 128, 80, 65, 78, 71, 76, 79, 78, 71, 128, 80, 65, 78, 71, 76, + 65, 89, 65, 82, 128, 80, 65, 78, 71, 75, 79, 78, 128, 80, 65, 78, 71, 75, + 65, 84, 128, 80, 65, 78, 71, 72, 85, 76, 85, 128, 80, 65, 78, 71, 128, + 80, 65, 78, 69, 85, 76, 69, 85, 78, 71, 128, 80, 65, 78, 68, 193, 80, 65, + 78, 67, 65, 75, 69, 83, 128, 80, 65, 78, 65, 77, 128, 80, 65, 78, 65, 69, + 76, 65, 69, 78, 71, 128, 80, 65, 78, 128, 80, 65, 206, 80, 65, 77, 85, + 78, 71, 75, 65, 72, 128, 80, 65, 77, 85, 68, 80, 79, 68, 128, 80, 65, 77, + 83, 72, 65, 69, 128, 80, 65, 77, 80, 72, 89, 76, 73, 65, 206, 80, 65, 77, + 73, 78, 71, 75, 65, 76, 128, 80, 65, 77, 69, 80, 69, 84, 128, 80, 65, 77, + 69, 78, 69, 78, 71, 128, 80, 65, 77, 65, 68, 65, 128, 80, 65, 77, 65, 68, + 193, 80, 65, 77, 65, 65, 69, 72, 128, 80, 65, 76, 85, 84, 65, 128, 80, + 65, 76, 79, 67, 72, 75, 65, 128, 80, 65, 76, 77, 89, 82, 69, 78, 197, 80, + 65, 76, 77, 211, 80, 65, 76, 77, 128, 80, 65, 76, 205, 80, 65, 76, 76, + 65, 87, 65, 128, 80, 65, 76, 76, 65, 83, 128, 80, 65, 76, 75, 65, 128, + 80, 65, 76, 201, 80, 65, 76, 69, 84, 84, 69, 128, 80, 65, 76, 65, 85, 78, + 199, 80, 65, 76, 65, 84, 65, 76, 73, 90, 69, 196, 80, 65, 76, 65, 84, 65, + 76, 73, 90, 65, 84, 73, 79, 78, 128, 80, 65, 76, 65, 84, 65, 204, 80, 65, + 75, 80, 65, 203, 80, 65, 73, 89, 65, 78, 78, 79, 73, 128, 80, 65, 73, 82, + 84, 72, 82, 65, 128, 80, 65, 73, 82, 69, 196, 80, 65, 73, 78, 84, 66, 82, + 85, 83, 72, 128, 80, 65, 73, 128, 80, 65, 72, 76, 65, 86, 201, 80, 65, + 72, 128, 80, 65, 71, 79, 68, 65, 128, 80, 65, 71, 69, 83, 128, 80, 65, + 71, 69, 82, 128, 80, 65, 71, 197, 80, 65, 68, 77, 193, 80, 65, 68, 68, + 76, 197, 80, 65, 68, 68, 73, 78, 199, 80, 65, 68, 193, 80, 65, 68, 128, + 80, 65, 67, 75, 73, 78, 71, 128, 80, 65, 67, 75, 65, 71, 69, 128, 80, 65, + 65, 84, 85, 128, 80, 65, 65, 83, 69, 78, 84, 79, 128, 80, 65, 65, 82, 65, + 77, 128, 80, 65, 65, 82, 65, 69, 128, 80, 65, 65, 77, 128, 80, 65, 65, + 73, 128, 80, 65, 65, 45, 80, 73, 76, 76, 65, 128, 80, 65, 65, 128, 80, + 50, 128, 80, 48, 49, 49, 128, 80, 48, 49, 48, 128, 80, 48, 48, 57, 128, + 80, 48, 48, 56, 128, 80, 48, 48, 55, 128, 80, 48, 48, 54, 128, 80, 48, + 48, 53, 128, 80, 48, 48, 52, 128, 80, 48, 48, 51, 65, 128, 80, 48, 48, + 51, 128, 80, 48, 48, 50, 128, 80, 48, 48, 49, 65, 128, 80, 48, 48, 49, + 128, 79, 90, 128, 79, 89, 83, 84, 69, 82, 128, 79, 89, 82, 65, 78, 73, + 83, 77, 193, 79, 89, 65, 78, 78, 65, 128, 79, 88, 73, 65, 128, 79, 88, + 73, 193, 79, 88, 69, 73, 65, 201, 79, 88, 69, 73, 193, 79, 87, 76, 128, + 79, 86, 69, 82, 83, 84, 82, 85, 67, 203, 79, 86, 69, 82, 82, 73, 68, 69, + 128, 79, 86, 69, 82, 76, 79, 78, 199, 79, 86, 69, 82, 76, 73, 78, 69, + 128, 79, 86, 69, 82, 76, 65, 89, 128, 79, 86, 69, 82, 76, 65, 217, 79, + 86, 69, 82, 76, 65, 80, 80, 73, 78, 199, 79, 86, 69, 82, 76, 65, 80, 128, + 79, 86, 69, 82, 76, 65, 73, 68, 128, 79, 86, 69, 82, 76, 65, 73, 196, 79, + 86, 69, 82, 72, 69, 65, 84, 69, 196, 79, 86, 69, 82, 66, 65, 82, 128, 79, + 86, 65, 76, 128, 79, 86, 65, 204, 79, 85, 84, 76, 73, 78, 69, 196, 79, + 85, 84, 76, 73, 78, 69, 128, 79, 85, 84, 69, 210, 79, 85, 84, 66, 79, + 216, 79, 85, 78, 75, 73, 193, 79, 85, 78, 67, 69, 128, 79, 85, 78, 67, + 197, 79, 84, 85, 128, 79, 84, 84, 79, 77, 65, 206, 79, 84, 84, 69, 82, + 128, 79, 84, 84, 65, 86, 193, 79, 84, 84, 128, 79, 84, 83, 69, 67, 72, + 75, 65, 128, 79, 84, 72, 69, 82, 211, 79, 84, 72, 69, 210, 79, 84, 72, + 65, 76, 65, 206, 79, 84, 72, 65, 76, 128, 79, 83, 79, 75, 65, 128, 79, + 83, 79, 75, 193, 79, 83, 77, 65, 78, 89, 193, 79, 83, 67, 128, 79, 83, + 65, 71, 197, 79, 82, 84, 72, 79, 71, 79, 78, 65, 204, 79, 82, 84, 72, 79, + 68, 79, 216, 79, 82, 78, 65, 84, 197, 79, 82, 78, 65, 77, 69, 78, 84, 83, + 128, 79, 82, 78, 65, 77, 69, 78, 84, 128, 79, 82, 78, 65, 77, 69, 78, + 212, 79, 82, 75, 72, 79, 206, 79, 82, 73, 89, 193, 79, 82, 73, 71, 73, + 78, 65, 204, 79, 82, 73, 71, 73, 78, 128, 79, 82, 69, 45, 50, 128, 79, + 82, 68, 73, 78, 65, 204, 79, 82, 68, 69, 210, 79, 82, 67, 85, 83, 128, + 79, 82, 67, 72, 73, 68, 128, 79, 82, 65, 78, 71, 85, 84, 65, 78, 128, 79, + 82, 65, 78, 71, 197, 79, 80, 84, 73, 79, 206, 79, 80, 84, 73, 67, 65, + 204, 79, 80, 80, 82, 69, 83, 83, 73, 79, 78, 128, 79, 80, 80, 79, 83, 73, + 84, 73, 79, 78, 128, 79, 80, 80, 79, 83, 73, 78, 199, 79, 80, 80, 79, 83, + 69, 128, 79, 80, 72, 73, 85, 67, 72, 85, 83, 128, 79, 80, 69, 82, 65, 84, + 79, 82, 128, 79, 80, 69, 82, 65, 84, 79, 210, 79, 80, 69, 82, 65, 84, 73, + 78, 199, 79, 80, 69, 78, 73, 78, 199, 79, 80, 69, 78, 45, 80, 128, 79, + 80, 69, 78, 45, 79, 85, 84, 76, 73, 78, 69, 196, 79, 80, 69, 78, 45, 79, + 128, 79, 80, 69, 78, 45, 207, 79, 80, 69, 78, 45, 72, 69, 65, 68, 69, + 196, 79, 80, 69, 78, 45, 67, 73, 82, 67, 85, 73, 84, 45, 79, 85, 84, 80, + 85, 212, 79, 80, 69, 78, 128, 79, 80, 69, 206, 79, 79, 90, 69, 128, 79, + 79, 89, 65, 78, 78, 65, 128, 79, 79, 85, 128, 79, 79, 77, 85, 128, 79, + 79, 72, 128, 79, 79, 69, 128, 79, 79, 66, 79, 79, 70, 73, 76, 73, 128, + 79, 78, 85, 128, 79, 78, 83, 85, 128, 79, 78, 78, 128, 79, 78, 75, 65, + 82, 128, 79, 78, 73, 79, 78, 128, 79, 78, 69, 83, 69, 76, 70, 128, 79, + 78, 69, 45, 87, 65, 217, 79, 78, 69, 45, 84, 72, 73, 82, 84, 89, 128, 79, + 78, 69, 45, 80, 73, 69, 67, 197, 79, 78, 69, 45, 76, 73, 78, 197, 79, 78, + 69, 45, 72, 85, 78, 68, 82, 69, 68, 45, 65, 78, 68, 45, 83, 73, 88, 84, + 73, 69, 84, 72, 128, 79, 78, 67, 79, 77, 73, 78, 199, 79, 78, 65, 80, + 128, 79, 78, 45, 79, 70, 198, 79, 77, 73, 83, 83, 73, 79, 206, 79, 77, + 73, 67, 82, 79, 78, 128, 79, 77, 73, 67, 82, 79, 206, 79, 77, 69, 84, + 128, 79, 77, 69, 71, 65, 128, 79, 77, 69, 71, 193, 79, 77, 65, 76, 79, + 78, 128, 79, 76, 73, 86, 69, 128, 79, 76, 73, 71, 79, 206, 79, 76, 68, + 128, 79, 75, 84, 207, 79, 75, 65, 82, 65, 128, 79, 75, 65, 82, 193, 79, + 74, 79, 68, 128, 79, 74, 73, 66, 87, 65, 217, 79, 74, 69, 79, 78, 128, + 79, 73, 78, 128, 79, 73, 76, 128, 79, 73, 204, 79, 72, 77, 128, 79, 72, + 205, 79, 71, 82, 69, 128, 79, 71, 79, 78, 69, 75, 128, 79, 71, 79, 78, + 69, 203, 79, 71, 72, 65, 205, 79, 70, 70, 73, 67, 69, 82, 128, 79, 70, + 70, 73, 67, 69, 128, 79, 70, 70, 73, 67, 197, 79, 70, 70, 128, 79, 69, + 89, 128, 79, 69, 82, 128, 79, 69, 75, 128, 79, 69, 69, 128, 79, 68, 69, + 78, 128, 79, 68, 68, 128, 79, 68, 196, 79, 67, 84, 79, 80, 85, 83, 128, + 79, 67, 84, 79, 66, 69, 82, 128, 79, 67, 84, 69, 212, 79, 67, 84, 65, 71, + 79, 78, 65, 204, 79, 67, 84, 65, 71, 79, 78, 128, 79, 67, 210, 79, 67, + 76, 79, 67, 75, 128, 79, 67, 72, 75, 79, 77, 128, 79, 67, 67, 85, 76, 84, + 65, 84, 73, 79, 78, 128, 79, 67, 67, 76, 85, 83, 73, 79, 78, 128, 79, 66, + 83, 84, 82, 85, 67, 84, 73, 79, 78, 128, 79, 66, 83, 69, 82, 86, 69, 210, + 79, 66, 79, 76, 211, 79, 66, 79, 204, 79, 66, 79, 70, 73, 76, 73, 128, + 79, 66, 76, 73, 81, 85, 197, 79, 66, 76, 65, 75, 79, 128, 79, 66, 76, 65, + 67, 72, 75, 79, 128, 79, 66, 74, 69, 67, 212, 79, 66, 69, 76, 85, 83, + 128, 79, 66, 69, 76, 79, 83, 128, 79, 66, 128, 79, 65, 89, 128, 79, 65, + 75, 128, 79, 65, 66, 79, 65, 70, 73, 76, 73, 128, 79, 193, 79, 48, 53, + 49, 128, 79, 48, 53, 48, 66, 128, 79, 48, 53, 48, 65, 128, 79, 48, 53, + 48, 128, 79, 48, 52, 57, 128, 79, 48, 52, 56, 128, 79, 48, 52, 55, 128, + 79, 48, 52, 54, 128, 79, 48, 52, 53, 128, 79, 48, 52, 52, 128, 79, 48, + 52, 51, 128, 79, 48, 52, 50, 128, 79, 48, 52, 49, 128, 79, 48, 52, 48, + 128, 79, 48, 51, 57, 128, 79, 48, 51, 56, 128, 79, 48, 51, 55, 128, 79, + 48, 51, 54, 68, 128, 79, 48, 51, 54, 67, 128, 79, 48, 51, 54, 66, 128, + 79, 48, 51, 54, 65, 128, 79, 48, 51, 54, 128, 79, 48, 51, 53, 128, 79, + 48, 51, 52, 128, 79, 48, 51, 51, 65, 128, 79, 48, 51, 51, 128, 79, 48, + 51, 50, 128, 79, 48, 51, 49, 128, 79, 48, 51, 48, 65, 128, 79, 48, 51, + 48, 128, 79, 48, 50, 57, 65, 128, 79, 48, 50, 57, 128, 79, 48, 50, 56, + 128, 79, 48, 50, 55, 128, 79, 48, 50, 54, 128, 79, 48, 50, 53, 65, 128, + 79, 48, 50, 53, 128, 79, 48, 50, 52, 65, 128, 79, 48, 50, 52, 128, 79, + 48, 50, 51, 128, 79, 48, 50, 50, 128, 79, 48, 50, 49, 128, 79, 48, 50, + 48, 65, 128, 79, 48, 50, 48, 128, 79, 48, 49, 57, 65, 128, 79, 48, 49, + 57, 128, 79, 48, 49, 56, 128, 79, 48, 49, 55, 128, 79, 48, 49, 54, 128, + 79, 48, 49, 53, 128, 79, 48, 49, 52, 128, 79, 48, 49, 51, 128, 79, 48, + 49, 50, 128, 79, 48, 49, 49, 128, 79, 48, 49, 48, 67, 128, 79, 48, 49, + 48, 66, 128, 79, 48, 49, 48, 65, 128, 79, 48, 49, 48, 128, 79, 48, 48, + 57, 128, 79, 48, 48, 56, 128, 79, 48, 48, 55, 128, 79, 48, 48, 54, 70, + 128, 79, 48, 48, 54, 69, 128, 79, 48, 48, 54, 68, 128, 79, 48, 48, 54, + 67, 128, 79, 48, 48, 54, 66, 128, 79, 48, 48, 54, 65, 128, 79, 48, 48, + 54, 128, 79, 48, 48, 53, 65, 128, 79, 48, 48, 53, 128, 79, 48, 48, 52, + 128, 79, 48, 48, 51, 128, 79, 48, 48, 50, 128, 79, 48, 48, 49, 65, 128, + 79, 48, 48, 49, 128, 79, 45, 89, 69, 128, 79, 45, 79, 45, 73, 128, 79, + 45, 69, 128, 78, 90, 89, 88, 128, 78, 90, 89, 84, 128, 78, 90, 89, 82, + 88, 128, 78, 90, 89, 82, 128, 78, 90, 89, 80, 128, 78, 90, 89, 128, 78, + 90, 85, 88, 128, 78, 90, 85, 82, 88, 128, 78, 90, 85, 82, 128, 78, 90, + 85, 81, 128, 78, 90, 85, 80, 128, 78, 90, 85, 79, 88, 128, 78, 90, 85, + 79, 128, 78, 90, 85, 206, 78, 90, 85, 128, 78, 90, 79, 88, 128, 78, 90, + 79, 80, 128, 78, 90, 73, 88, 128, 78, 90, 73, 84, 128, 78, 90, 73, 80, + 128, 78, 90, 73, 69, 88, 128, 78, 90, 73, 69, 80, 128, 78, 90, 73, 69, + 128, 78, 90, 73, 128, 78, 90, 69, 88, 128, 78, 90, 69, 85, 77, 128, 78, + 90, 69, 128, 78, 90, 65, 88, 128, 78, 90, 65, 84, 128, 78, 90, 65, 81, + 128, 78, 90, 65, 80, 128, 78, 90, 65, 128, 78, 90, 193, 78, 89, 87, 65, + 128, 78, 89, 85, 88, 128, 78, 89, 85, 85, 128, 78, 89, 85, 84, 128, 78, + 89, 85, 80, 128, 78, 89, 85, 79, 88, 128, 78, 89, 85, 79, 80, 128, 78, + 89, 85, 79, 128, 78, 89, 85, 78, 128, 78, 89, 85, 69, 128, 78, 89, 85, + 128, 78, 89, 79, 88, 128, 78, 89, 79, 84, 128, 78, 89, 79, 80, 128, 78, + 89, 79, 79, 128, 78, 89, 79, 78, 128, 78, 89, 79, 65, 128, 78, 89, 79, + 128, 78, 89, 74, 65, 128, 78, 89, 73, 88, 128, 78, 89, 73, 84, 128, 78, + 89, 73, 212, 78, 89, 73, 211, 78, 89, 73, 210, 78, 89, 73, 80, 128, 78, + 89, 73, 78, 45, 68, 79, 128, 78, 89, 73, 78, 128, 78, 89, 73, 73, 128, + 78, 89, 73, 69, 88, 128, 78, 89, 73, 69, 84, 128, 78, 89, 73, 69, 80, + 128, 78, 89, 73, 69, 128, 78, 89, 73, 65, 75, 69, 78, 199, 78, 89, 73, + 128, 78, 89, 201, 78, 89, 72, 65, 128, 78, 89, 69, 84, 128, 78, 89, 69, + 212, 78, 89, 69, 78, 128, 78, 89, 69, 72, 128, 78, 89, 69, 200, 78, 89, + 69, 69, 128, 78, 89, 69, 128, 78, 89, 196, 78, 89, 67, 65, 128, 78, 89, + 65, 85, 128, 78, 89, 65, 74, 128, 78, 89, 65, 73, 128, 78, 89, 65, 72, + 128, 78, 89, 65, 69, 77, 65, 69, 128, 78, 89, 65, 65, 128, 78, 87, 79, + 79, 128, 78, 87, 79, 128, 78, 87, 73, 73, 128, 78, 87, 73, 128, 78, 87, + 69, 128, 78, 87, 65, 65, 128, 78, 87, 65, 128, 78, 87, 128, 78, 86, 128, + 78, 85, 88, 128, 78, 85, 85, 78, 128, 78, 85, 85, 128, 78, 85, 84, 73, + 76, 76, 85, 128, 78, 85, 84, 128, 78, 85, 212, 78, 85, 82, 88, 128, 78, + 85, 82, 128, 78, 85, 80, 128, 78, 85, 79, 88, 128, 78, 85, 79, 80, 128, + 78, 85, 79, 128, 78, 85, 78, 85, 90, 128, 78, 85, 78, 85, 218, 78, 85, + 78, 71, 128, 78, 85, 78, 65, 86, 85, 212, 78, 85, 78, 65, 86, 73, 203, + 78, 85, 78, 128, 78, 85, 206, 78, 85, 77, 69, 82, 207, 78, 85, 77, 69, + 82, 65, 84, 79, 210, 78, 85, 77, 69, 82, 65, 204, 78, 85, 77, 66, 69, 82, + 83, 128, 78, 85, 77, 66, 69, 82, 128, 78, 85, 77, 128, 78, 85, 76, 76, + 128, 78, 85, 76, 204, 78, 85, 76, 128, 78, 85, 75, 84, 65, 128, 78, 85, + 75, 84, 193, 78, 85, 69, 78, 71, 128, 78, 85, 69, 128, 78, 85, 66, 73, + 65, 206, 78, 85, 65, 69, 128, 78, 85, 49, 49, 128, 78, 85, 49, 177, 78, + 85, 48, 50, 50, 65, 128, 78, 85, 48, 50, 50, 128, 78, 85, 48, 50, 49, + 128, 78, 85, 48, 50, 48, 128, 78, 85, 48, 49, 57, 128, 78, 85, 48, 49, + 56, 65, 128, 78, 85, 48, 49, 56, 128, 78, 85, 48, 49, 55, 128, 78, 85, + 48, 49, 54, 128, 78, 85, 48, 49, 53, 128, 78, 85, 48, 49, 52, 128, 78, + 85, 48, 49, 51, 128, 78, 85, 48, 49, 50, 128, 78, 85, 48, 49, 49, 65, + 128, 78, 85, 48, 49, 49, 128, 78, 85, 48, 49, 48, 65, 128, 78, 85, 48, + 49, 48, 128, 78, 85, 48, 48, 57, 128, 78, 85, 48, 48, 56, 128, 78, 85, + 48, 48, 55, 128, 78, 85, 48, 48, 54, 128, 78, 85, 48, 48, 53, 128, 78, + 85, 48, 48, 52, 128, 78, 85, 48, 48, 51, 128, 78, 85, 48, 48, 50, 128, + 78, 85, 48, 48, 49, 128, 78, 85, 45, 51, 128, 78, 85, 45, 50, 128, 78, + 85, 45, 49, 128, 78, 84, 88, 73, 86, 128, 78, 84, 88, 65, 128, 78, 84, + 85, 85, 128, 78, 84, 85, 77, 128, 78, 84, 85, 74, 128, 78, 84, 213, 78, + 84, 83, 65, 85, 128, 78, 84, 83, 65, 128, 78, 84, 79, 81, 80, 69, 78, + 128, 78, 84, 79, 71, 128, 78, 84, 79, 199, 78, 84, 73, 69, 197, 78, 84, + 72, 65, 85, 128, 78, 84, 69, 85, 78, 71, 66, 65, 128, 78, 84, 69, 85, 77, + 128, 78, 84, 69, 78, 128, 78, 84, 69, 69, 128, 78, 84, 65, 80, 128, 78, + 84, 65, 208, 78, 84, 65, 65, 128, 78, 84, 65, 128, 78, 83, 85, 79, 212, + 78, 83, 85, 78, 128, 78, 83, 85, 77, 128, 78, 83, 79, 77, 128, 78, 83, + 73, 69, 69, 84, 128, 78, 83, 73, 69, 69, 80, 128, 78, 83, 73, 69, 69, + 128, 78, 83, 72, 85, 84, 128, 78, 83, 72, 85, 212, 78, 83, 72, 85, 79, + 80, 128, 78, 83, 72, 85, 69, 128, 78, 83, 72, 73, 69, 69, 128, 78, 83, + 72, 69, 69, 128, 78, 83, 72, 65, 81, 128, 78, 83, 72, 65, 128, 78, 83, + 69, 85, 65, 69, 78, 128, 78, 83, 69, 78, 128, 78, 83, 65, 128, 78, 82, + 89, 88, 128, 78, 82, 89, 84, 128, 78, 82, 89, 82, 88, 128, 78, 82, 89, + 82, 128, 78, 82, 89, 80, 128, 78, 82, 89, 128, 78, 82, 85, 88, 128, 78, + 82, 85, 84, 128, 78, 82, 85, 82, 88, 128, 78, 82, 85, 82, 128, 78, 82, + 85, 80, 128, 78, 82, 85, 65, 128, 78, 82, 85, 128, 78, 82, 79, 88, 128, + 78, 82, 79, 80, 128, 78, 82, 79, 128, 78, 82, 69, 88, 128, 78, 82, 69, + 84, 128, 78, 82, 69, 211, 78, 82, 69, 80, 128, 78, 82, 69, 128, 78, 82, + 65, 88, 128, 78, 82, 65, 84, 128, 78, 82, 65, 80, 128, 78, 82, 65, 128, + 78, 81, 73, 71, 128, 78, 81, 65, 128, 78, 80, 76, 65, 128, 78, 80, 65, + 128, 78, 79, 90, 72, 75, 65, 128, 78, 79, 89, 128, 78, 79, 88, 128, 78, + 79, 87, 67, 128, 78, 79, 86, 73, 76, 69, 128, 78, 79, 86, 69, 77, 66, 69, + 82, 128, 78, 79, 84, 84, 79, 128, 78, 79, 84, 69, 83, 128, 78, 79, 84, + 69, 72, 69, 65, 68, 128, 78, 79, 84, 69, 72, 69, 65, 196, 78, 79, 84, 69, + 66, 79, 79, 75, 128, 78, 79, 84, 69, 66, 79, 79, 203, 78, 79, 84, 69, + 128, 78, 79, 84, 197, 78, 79, 84, 67, 72, 69, 196, 78, 79, 84, 67, 72, + 128, 78, 79, 84, 65, 84, 73, 79, 206, 78, 79, 84, 128, 78, 79, 212, 78, + 79, 83, 69, 128, 78, 79, 83, 197, 78, 79, 82, 84, 72, 87, 69, 83, 212, + 78, 79, 82, 84, 72, 69, 82, 206, 78, 79, 82, 84, 72, 69, 65, 83, 84, 45, + 80, 79, 73, 78, 84, 73, 78, 199, 78, 79, 82, 77, 65, 204, 78, 79, 82, 68, + 73, 195, 78, 79, 210, 78, 79, 80, 128, 78, 79, 79, 78, 85, 128, 78, 79, + 79, 128, 78, 79, 78, 70, 79, 82, 75, 73, 78, 71, 128, 78, 79, 78, 45, 80, + 79, 84, 65, 66, 76, 197, 78, 79, 78, 45, 74, 79, 73, 78, 69, 82, 128, 78, + 79, 78, 45, 66, 82, 69, 65, 75, 73, 78, 199, 78, 79, 78, 128, 78, 79, 77, + 73, 83, 77, 193, 78, 79, 77, 73, 78, 65, 204, 78, 79, 75, 72, 85, 75, + 128, 78, 79, 68, 69, 128, 78, 79, 65, 128, 78, 79, 45, 66, 82, 69, 65, + 203, 78, 79, 45, 53, 128, 78, 79, 45, 52, 128, 78, 79, 45, 51, 128, 78, + 79, 45, 50, 128, 78, 79, 45, 49, 128, 78, 78, 85, 85, 128, 78, 78, 85, + 128, 78, 78, 79, 79, 128, 78, 78, 78, 85, 85, 128, 78, 78, 78, 85, 128, + 78, 78, 78, 79, 79, 128, 78, 78, 78, 79, 128, 78, 78, 78, 73, 73, 128, + 78, 78, 78, 73, 128, 78, 78, 78, 69, 69, 128, 78, 78, 78, 69, 128, 78, + 78, 78, 65, 85, 128, 78, 78, 78, 65, 73, 128, 78, 78, 78, 65, 65, 128, + 78, 78, 78, 65, 128, 78, 78, 78, 128, 78, 78, 72, 65, 128, 78, 78, 71, + 79, 79, 128, 78, 78, 71, 79, 128, 78, 78, 71, 73, 73, 128, 78, 78, 71, + 73, 128, 78, 78, 71, 65, 65, 128, 78, 78, 71, 65, 128, 78, 78, 71, 128, + 78, 78, 66, 83, 80, 128, 78, 77, 128, 78, 76, 65, 85, 128, 78, 76, 48, + 50, 48, 128, 78, 76, 48, 49, 57, 128, 78, 76, 48, 49, 56, 128, 78, 76, + 48, 49, 55, 65, 128, 78, 76, 48, 49, 55, 128, 78, 76, 48, 49, 54, 128, + 78, 76, 48, 49, 53, 128, 78, 76, 48, 49, 52, 128, 78, 76, 48, 49, 51, + 128, 78, 76, 48, 49, 50, 128, 78, 76, 48, 49, 49, 128, 78, 76, 48, 49, + 48, 128, 78, 76, 48, 48, 57, 128, 78, 76, 48, 48, 56, 128, 78, 76, 48, + 48, 55, 128, 78, 76, 48, 48, 54, 128, 78, 76, 48, 48, 53, 65, 128, 78, + 76, 48, 48, 53, 128, 78, 76, 48, 48, 52, 128, 78, 76, 48, 48, 51, 128, + 78, 76, 48, 48, 50, 128, 78, 76, 48, 48, 49, 128, 78, 76, 128, 78, 75, + 79, 77, 128, 78, 75, 207, 78, 75, 73, 78, 68, 73, 128, 78, 75, 65, 85, + 128, 78, 75, 65, 65, 82, 65, 69, 128, 78, 75, 65, 128, 78, 74, 89, 88, + 128, 78, 74, 89, 84, 128, 78, 74, 89, 82, 88, 128, 78, 74, 89, 82, 128, + 78, 74, 89, 80, 128, 78, 74, 89, 128, 78, 74, 85, 88, 128, 78, 74, 85, + 82, 88, 128, 78, 74, 85, 82, 128, 78, 74, 85, 81, 65, 128, 78, 74, 85, + 80, 128, 78, 74, 85, 79, 88, 128, 78, 74, 85, 79, 128, 78, 74, 85, 69, + 81, 128, 78, 74, 85, 65, 69, 128, 78, 74, 85, 128, 78, 74, 79, 88, 128, + 78, 74, 79, 84, 128, 78, 74, 79, 80, 128, 78, 74, 79, 79, 128, 78, 74, + 79, 128, 78, 74, 73, 88, 128, 78, 74, 73, 84, 128, 78, 74, 73, 80, 128, + 78, 74, 73, 69, 88, 128, 78, 74, 73, 69, 84, 128, 78, 74, 73, 69, 80, + 128, 78, 74, 73, 69, 69, 128, 78, 74, 73, 69, 128, 78, 74, 73, 128, 78, + 74, 201, 78, 74, 69, 85, 88, 128, 78, 74, 69, 85, 84, 128, 78, 74, 69, + 85, 65, 69, 78, 65, 128, 78, 74, 69, 85, 65, 69, 77, 128, 78, 74, 69, 69, + 69, 69, 128, 78, 74, 69, 69, 128, 78, 74, 69, 197, 78, 74, 69, 128, 78, + 74, 65, 81, 128, 78, 74, 65, 80, 128, 78, 74, 65, 69, 77, 76, 73, 128, + 78, 74, 65, 69, 77, 128, 78, 74, 65, 65, 128, 78, 73, 90, 75, 207, 78, + 73, 88, 128, 78, 73, 84, 82, 69, 128, 78, 73, 83, 65, 71, 128, 78, 73, + 82, 85, 71, 85, 128, 78, 73, 80, 128, 78, 73, 78, 84, 72, 128, 78, 73, + 78, 74, 65, 128, 78, 73, 78, 69, 84, 89, 128, 78, 73, 78, 69, 84, 217, + 78, 73, 78, 69, 84, 69, 69, 78, 128, 78, 73, 78, 69, 84, 69, 69, 206, 78, + 73, 78, 69, 45, 84, 72, 73, 82, 84, 89, 128, 78, 73, 78, 69, 45, 76, 73, + 75, 197, 78, 73, 78, 197, 78, 73, 78, 68, 65, 50, 128, 78, 73, 78, 68, + 65, 178, 78, 73, 78, 57, 128, 78, 73, 78, 128, 78, 73, 77, 128, 78, 73, + 205, 78, 73, 75, 79, 76, 83, 66, 85, 82, 199, 78, 73, 75, 72, 65, 72, 73, + 84, 128, 78, 73, 75, 65, 72, 73, 84, 128, 78, 73, 75, 65, 128, 78, 73, + 72, 83, 72, 86, 65, 83, 65, 128, 78, 73, 71, 73, 68, 65, 77, 73, 78, 128, + 78, 73, 71, 73, 68, 65, 69, 83, 72, 128, 78, 73, 71, 72, 84, 128, 78, 73, + 71, 72, 212, 78, 73, 71, 71, 65, 72, 73, 84, 65, 128, 78, 73, 69, 88, + 128, 78, 73, 69, 85, 78, 45, 84, 73, 75, 69, 85, 84, 128, 78, 73, 69, 85, + 78, 45, 84, 72, 73, 69, 85, 84, 72, 128, 78, 73, 69, 85, 78, 45, 83, 73, + 79, 83, 128, 78, 73, 69, 85, 78, 45, 82, 73, 69, 85, 76, 128, 78, 73, 69, + 85, 78, 45, 80, 73, 69, 85, 80, 128, 78, 73, 69, 85, 78, 45, 80, 65, 78, + 83, 73, 79, 83, 128, 78, 73, 69, 85, 78, 45, 75, 73, 89, 69, 79, 75, 128, + 78, 73, 69, 85, 78, 45, 72, 73, 69, 85, 72, 128, 78, 73, 69, 85, 78, 45, + 67, 73, 69, 85, 67, 128, 78, 73, 69, 85, 78, 45, 67, 72, 73, 69, 85, 67, + 72, 128, 78, 73, 69, 85, 206, 78, 73, 69, 80, 128, 78, 73, 69, 128, 78, + 73, 66, 128, 78, 73, 65, 128, 78, 73, 50, 128, 78, 73, 45, 84, 69, 128, + 78, 73, 45, 55, 128, 78, 73, 45, 54, 128, 78, 73, 45, 53, 128, 78, 73, + 45, 52, 128, 78, 73, 45, 51, 128, 78, 73, 45, 50, 128, 78, 73, 45, 49, + 128, 78, 72, 85, 69, 128, 78, 72, 74, 65, 128, 78, 72, 65, 89, 128, 78, + 72, 128, 78, 71, 89, 69, 128, 78, 71, 86, 69, 128, 78, 71, 85, 85, 128, + 78, 71, 85, 79, 88, 128, 78, 71, 85, 79, 84, 128, 78, 71, 85, 79, 128, + 78, 71, 85, 65, 78, 128, 78, 71, 85, 65, 69, 84, 128, 78, 71, 85, 65, 69, + 128, 78, 71, 79, 88, 128, 78, 71, 79, 85, 128, 78, 71, 79, 213, 78, 71, + 79, 84, 128, 78, 71, 79, 81, 128, 78, 71, 79, 80, 128, 78, 71, 79, 78, + 128, 78, 71, 79, 77, 128, 78, 71, 79, 69, 72, 128, 78, 71, 79, 69, 200, + 78, 71, 207, 78, 71, 75, 89, 69, 69, 128, 78, 71, 75, 87, 65, 69, 78, + 128, 78, 71, 75, 85, 80, 128, 78, 71, 75, 85, 78, 128, 78, 71, 75, 85, + 77, 128, 78, 71, 75, 85, 69, 78, 90, 69, 85, 77, 128, 78, 71, 75, 85, + 197, 78, 71, 75, 73, 78, 68, 201, 78, 71, 75, 73, 69, 69, 128, 78, 71, + 75, 69, 85, 88, 128, 78, 71, 75, 69, 85, 82, 73, 128, 78, 71, 75, 69, 85, + 65, 69, 81, 128, 78, 71, 75, 69, 85, 65, 69, 77, 128, 78, 71, 75, 65, 81, + 128, 78, 71, 75, 65, 80, 128, 78, 71, 75, 65, 65, 77, 73, 128, 78, 71, + 75, 65, 128, 78, 71, 73, 69, 88, 128, 78, 71, 73, 69, 80, 128, 78, 71, + 73, 69, 128, 78, 71, 72, 65, 128, 78, 71, 71, 87, 65, 69, 78, 128, 78, + 71, 71, 85, 82, 65, 69, 128, 78, 71, 71, 85, 80, 128, 78, 71, 71, 85, 79, + 81, 128, 78, 71, 71, 85, 79, 209, 78, 71, 71, 85, 79, 78, 128, 78, 71, + 71, 85, 79, 77, 128, 78, 71, 71, 85, 77, 128, 78, 71, 71, 85, 69, 69, 84, + 128, 78, 71, 71, 85, 65, 69, 83, 72, 65, 197, 78, 71, 71, 85, 65, 69, + 206, 78, 71, 71, 85, 65, 128, 78, 71, 71, 85, 128, 78, 71, 71, 79, 79, + 128, 78, 71, 71, 79, 128, 78, 71, 71, 73, 128, 78, 71, 71, 69, 85, 88, + 128, 78, 71, 71, 69, 85, 65, 69, 84, 128, 78, 71, 71, 69, 85, 65, 69, + 128, 78, 71, 71, 69, 213, 78, 71, 71, 69, 78, 128, 78, 71, 71, 69, 69, + 84, 128, 78, 71, 71, 69, 69, 69, 69, 128, 78, 71, 71, 69, 69, 128, 78, + 71, 71, 69, 128, 78, 71, 71, 65, 80, 128, 78, 71, 71, 65, 65, 77, 65, 69, + 128, 78, 71, 71, 65, 65, 77, 128, 78, 71, 71, 65, 65, 128, 78, 71, 71, + 128, 78, 71, 69, 88, 128, 78, 71, 69, 85, 82, 69, 85, 84, 128, 78, 71, + 69, 80, 128, 78, 71, 69, 78, 128, 78, 71, 69, 69, 128, 78, 71, 69, 65, + 68, 65, 76, 128, 78, 71, 65, 88, 128, 78, 71, 65, 85, 128, 78, 71, 65, + 84, 128, 78, 71, 65, 211, 78, 71, 65, 81, 128, 78, 71, 65, 80, 128, 78, + 71, 65, 78, 71, 85, 128, 78, 71, 65, 78, 128, 78, 71, 65, 73, 128, 78, + 71, 65, 72, 128, 78, 71, 65, 65, 73, 128, 78, 71, 193, 78, 70, 128, 78, + 69, 88, 212, 78, 69, 88, 128, 78, 69, 87, 83, 80, 65, 80, 69, 82, 128, + 78, 69, 87, 76, 73, 78, 69, 128, 78, 69, 87, 76, 73, 78, 197, 78, 69, 87, + 193, 78, 69, 87, 128, 78, 69, 215, 78, 69, 85, 84, 82, 65, 76, 128, 78, + 69, 85, 84, 82, 65, 204, 78, 69, 85, 84, 69, 82, 128, 78, 69, 84, 87, 79, + 82, 75, 69, 196, 78, 69, 212, 78, 69, 83, 84, 73, 78, 199, 78, 69, 83, + 84, 69, 196, 78, 69, 83, 84, 128, 78, 69, 83, 212, 78, 69, 83, 83, 85, + 83, 128, 78, 69, 82, 196, 78, 69, 81, 85, 68, 65, 65, 128, 78, 69, 80, + 84, 85, 78, 69, 128, 78, 69, 80, 84, 85, 78, 197, 78, 69, 80, 79, 83, 84, + 79, 89, 65, 78, 78, 65, 89, 65, 128, 78, 69, 80, 128, 78, 69, 79, 128, + 78, 69, 207, 78, 69, 78, 79, 69, 128, 78, 69, 78, 65, 78, 79, 128, 78, + 69, 78, 128, 78, 69, 77, 75, 65, 128, 78, 69, 76, 128, 78, 69, 73, 84, + 72, 69, 210, 78, 69, 71, 65, 84, 73, 86, 197, 78, 69, 71, 65, 84, 73, 79, + 206, 78, 69, 71, 65, 84, 69, 196, 78, 69, 69, 68, 76, 69, 128, 78, 69, + 67, 75, 84, 73, 69, 128, 78, 69, 67, 75, 128, 78, 69, 66, 69, 78, 83, 84, + 73, 77, 77, 69, 128, 78, 69, 45, 75, 79, 128, 78, 68, 85, 88, 128, 78, + 68, 85, 84, 128, 78, 68, 85, 82, 88, 128, 78, 68, 85, 82, 128, 78, 68, + 85, 80, 128, 78, 68, 85, 78, 128, 78, 68, 213, 78, 68, 79, 88, 128, 78, + 68, 79, 84, 128, 78, 68, 79, 80, 128, 78, 68, 79, 79, 128, 78, 68, 79, + 78, 128, 78, 68, 79, 77, 66, 85, 128, 78, 68, 79, 76, 197, 78, 68, 73, + 88, 128, 78, 68, 73, 84, 128, 78, 68, 73, 81, 128, 78, 68, 73, 80, 128, + 78, 68, 73, 69, 88, 128, 78, 68, 73, 69, 128, 78, 68, 73, 68, 65, 128, + 78, 68, 73, 65, 81, 128, 78, 68, 69, 88, 128, 78, 68, 69, 85, 88, 128, + 78, 68, 69, 85, 84, 128, 78, 68, 69, 85, 65, 69, 82, 69, 69, 128, 78, 68, + 69, 80, 128, 78, 68, 69, 69, 128, 78, 68, 69, 128, 78, 68, 65, 88, 128, + 78, 68, 65, 84, 128, 78, 68, 65, 80, 128, 78, 68, 65, 77, 128, 78, 68, + 65, 65, 78, 71, 71, 69, 85, 65, 69, 84, 128, 78, 68, 65, 65, 128, 78, 68, + 65, 193, 78, 67, 72, 65, 85, 128, 78, 67, 65, 128, 78, 66, 89, 88, 128, + 78, 66, 89, 84, 128, 78, 66, 89, 82, 88, 128, 78, 66, 89, 82, 128, 78, + 66, 89, 80, 128, 78, 66, 89, 128, 78, 66, 85, 88, 128, 78, 66, 85, 84, + 128, 78, 66, 85, 82, 88, 128, 78, 66, 85, 82, 128, 78, 66, 85, 80, 128, + 78, 66, 85, 128, 78, 66, 79, 88, 128, 78, 66, 79, 84, 128, 78, 66, 79, + 80, 128, 78, 66, 79, 128, 78, 66, 73, 88, 128, 78, 66, 73, 84, 128, 78, + 66, 73, 80, 128, 78, 66, 73, 69, 88, 128, 78, 66, 73, 69, 80, 128, 78, + 66, 73, 69, 128, 78, 66, 73, 128, 78, 66, 72, 128, 78, 66, 65, 88, 128, + 78, 66, 65, 84, 128, 78, 66, 65, 80, 128, 78, 66, 65, 128, 78, 65, 90, + 65, 210, 78, 65, 89, 65, 78, 78, 65, 128, 78, 65, 89, 128, 78, 65, 88, + 73, 65, 206, 78, 65, 88, 128, 78, 65, 85, 84, 72, 83, 128, 78, 65, 85, + 83, 69, 65, 84, 69, 196, 78, 65, 85, 68, 73, 218, 78, 65, 84, 85, 82, 65, + 204, 78, 65, 84, 84, 73, 76, 73, 203, 78, 65, 84, 73, 79, 78, 65, 204, + 78, 65, 83, 75, 65, 80, 201, 78, 65, 83, 72, 73, 128, 78, 65, 83, 65, 76, + 73, 90, 69, 196, 78, 65, 83, 65, 76, 73, 90, 65, 84, 73, 79, 78, 128, 78, + 65, 83, 65, 76, 73, 90, 65, 84, 73, 79, 206, 78, 65, 83, 65, 204, 78, 65, + 82, 82, 79, 215, 78, 65, 82, 128, 78, 65, 81, 128, 78, 65, 79, 211, 78, + 65, 78, 83, 65, 78, 65, 81, 128, 78, 65, 78, 71, 77, 79, 78, 84, 72, 79, + 128, 78, 65, 78, 68, 73, 78, 65, 71, 65, 82, 201, 78, 65, 78, 68, 128, + 78, 65, 78, 65, 128, 78, 65, 77, 69, 128, 78, 65, 77, 197, 78, 65, 77, + 50, 128, 78, 65, 75, 65, 65, 82, 193, 78, 65, 75, 128, 78, 65, 73, 82, + 193, 78, 65, 73, 204, 78, 65, 71, 82, 201, 78, 65, 71, 65, 82, 128, 78, + 65, 71, 65, 128, 78, 65, 71, 193, 78, 65, 71, 128, 78, 65, 199, 78, 65, + 69, 128, 78, 65, 66, 76, 65, 128, 78, 65, 66, 65, 84, 65, 69, 65, 206, + 78, 65, 65, 83, 73, 75, 89, 65, 89, 65, 128, 78, 65, 65, 75, 83, 73, 75, + 89, 65, 89, 65, 128, 78, 65, 65, 73, 128, 78, 65, 193, 78, 65, 52, 128, + 78, 65, 50, 128, 78, 65, 45, 57, 128, 78, 65, 45, 56, 128, 78, 65, 45, + 55, 128, 78, 65, 45, 54, 128, 78, 65, 45, 53, 128, 78, 65, 45, 52, 128, + 78, 65, 45, 51, 128, 78, 65, 45, 50, 128, 78, 65, 45, 49, 128, 78, 48, + 52, 50, 128, 78, 48, 52, 49, 128, 78, 48, 52, 48, 128, 78, 48, 51, 57, + 128, 78, 48, 51, 56, 128, 78, 48, 51, 55, 65, 128, 78, 48, 51, 55, 128, + 78, 48, 51, 54, 128, 78, 48, 51, 53, 65, 128, 78, 48, 51, 53, 128, 78, + 48, 51, 52, 65, 128, 78, 48, 51, 52, 128, 78, 48, 51, 51, 65, 128, 78, + 48, 51, 51, 128, 78, 48, 51, 50, 128, 78, 48, 51, 49, 128, 78, 48, 51, + 48, 128, 78, 48, 50, 57, 128, 78, 48, 50, 56, 128, 78, 48, 50, 55, 128, + 78, 48, 50, 54, 128, 78, 48, 50, 53, 65, 128, 78, 48, 50, 53, 128, 78, + 48, 50, 52, 128, 78, 48, 50, 51, 128, 78, 48, 50, 50, 128, 78, 48, 50, + 49, 128, 78, 48, 50, 48, 128, 78, 48, 49, 57, 128, 78, 48, 49, 56, 66, + 128, 78, 48, 49, 56, 65, 128, 78, 48, 49, 56, 128, 78, 48, 49, 55, 128, + 78, 48, 49, 54, 128, 78, 48, 49, 53, 128, 78, 48, 49, 52, 128, 78, 48, + 49, 51, 128, 78, 48, 49, 50, 128, 78, 48, 49, 49, 128, 78, 48, 49, 48, + 128, 78, 48, 48, 57, 128, 78, 48, 48, 56, 128, 78, 48, 48, 55, 128, 78, + 48, 48, 54, 128, 78, 48, 48, 53, 128, 78, 48, 48, 52, 128, 78, 48, 48, + 51, 128, 78, 48, 48, 50, 128, 78, 48, 48, 49, 128, 78, 45, 77, 85, 45, + 77, 79, 45, 50, 128, 78, 45, 77, 85, 45, 77, 79, 45, 49, 128, 78, 45, 67, + 82, 69, 197, 78, 45, 65, 82, 217, 77, 90, 128, 77, 89, 88, 128, 77, 89, + 84, 128, 77, 89, 83, 76, 73, 84, 69, 128, 77, 89, 80, 128, 77, 89, 65, + 128, 77, 89, 193, 77, 87, 79, 79, 128, 77, 87, 79, 128, 77, 87, 73, 73, + 128, 77, 87, 73, 128, 77, 87, 69, 69, 128, 77, 87, 69, 128, 77, 87, 65, + 65, 128, 77, 87, 65, 128, 77, 87, 128, 77, 215, 77, 86, 83, 128, 77, 86, + 79, 80, 128, 77, 86, 73, 128, 77, 86, 69, 85, 65, 69, 78, 71, 65, 77, + 128, 77, 86, 128, 77, 214, 77, 85, 88, 128, 77, 85, 85, 86, 85, 90, 72, + 65, 75, 75, 85, 128, 77, 85, 85, 83, 73, 75, 65, 84, 79, 65, 78, 128, 77, + 85, 85, 82, 68, 72, 65, 74, 193, 77, 85, 85, 128, 77, 85, 84, 72, 65, 76, + 73, 89, 65, 128, 77, 85, 84, 128, 77, 85, 83, 73, 67, 128, 77, 85, 83, + 73, 195, 77, 85, 83, 72, 82, 79, 79, 77, 128, 77, 85, 83, 72, 51, 128, + 77, 85, 83, 72, 179, 77, 85, 83, 72, 128, 77, 85, 83, 200, 77, 85, 83, + 128, 77, 85, 82, 88, 128, 77, 85, 82, 71, 85, 50, 128, 77, 85, 82, 69, + 128, 77, 85, 82, 68, 65, 128, 77, 85, 82, 68, 193, 77, 85, 82, 128, 77, + 85, 81, 68, 65, 77, 128, 77, 85, 80, 128, 77, 85, 79, 88, 128, 77, 85, + 79, 84, 128, 77, 85, 79, 80, 128, 77, 85, 79, 77, 65, 69, 128, 77, 85, + 79, 128, 77, 85, 78, 83, 85, 66, 128, 77, 85, 78, 68, 65, 82, 201, 77, + 85, 78, 65, 72, 128, 77, 85, 78, 128, 77, 85, 76, 84, 73, 83, 69, 84, 128, 77, 85, 76, 84, 73, 83, 69, 212, 77, 85, 76, 84, 73, 80, 76, 73, 67, 65, 84, 73, 79, 78, 128, 77, 85, 76, 84, 73, 80, 76, 73, 67, 65, 84, 73, 79, 206, 77, 85, 76, 84, 73, 80, 76, 69, 128, 77, 85, 76, 84, 73, 80, 76, 197, 77, 85, 76, 84, 73, 79, 67, 85, 76, 65, 210, 77, 85, 76, 84, 73, 77, 65, 80, 128, 77, 85, 76, 84, 201, 77, 85, 76, 84, 65, 78, 201, 77, 85, 75, 80, 72, 82, 69, 78, 71, 128, 77, 85, 75, 75, 85, 82, 85, 78, 73, 128, - 77, 85, 73, 78, 128, 77, 85, 71, 83, 128, 77, 85, 71, 128, 77, 85, 199, - 77, 85, 69, 78, 128, 77, 85, 69, 128, 77, 85, 67, 72, 128, 77, 85, 67, - 200, 77, 85, 67, 65, 65, 68, 128, 77, 85, 65, 83, 128, 77, 85, 65, 78, - 128, 77, 85, 65, 69, 128, 77, 85, 45, 71, 65, 65, 72, 76, 65, 193, 77, - 85, 45, 52, 128, 77, 85, 45, 51, 128, 77, 85, 45, 50, 128, 77, 85, 45, - 49, 128, 77, 213, 77, 84, 65, 86, 82, 85, 76, 201, 77, 83, 128, 77, 82, - 207, 77, 82, 65, 67, 72, 78, 89, 128, 77, 82, 65, 67, 72, 78, 79, 84, 73, - 75, 72, 65, 89, 65, 128, 77, 82, 65, 67, 72, 78, 79, 128, 77, 82, 65, 67, - 72, 78, 65, 89, 65, 128, 77, 210, 77, 81, 128, 77, 80, 65, 128, 77, 79, - 89, 65, 73, 128, 77, 79, 88, 128, 77, 79, 86, 73, 197, 77, 79, 86, 69, - 211, 77, 79, 86, 69, 77, 69, 78, 84, 45, 87, 65, 76, 76, 80, 76, 65, 78, - 197, 77, 79, 86, 69, 77, 69, 78, 84, 45, 72, 73, 78, 71, 197, 77, 79, 86, - 69, 77, 69, 78, 84, 45, 70, 76, 79, 79, 82, 80, 76, 65, 78, 197, 77, 79, - 86, 69, 77, 69, 78, 84, 45, 68, 73, 65, 71, 79, 78, 65, 204, 77, 79, 86, - 69, 77, 69, 78, 84, 128, 77, 79, 86, 69, 77, 69, 78, 212, 77, 79, 86, 69, - 196, 77, 79, 86, 69, 128, 77, 79, 85, 84, 72, 128, 77, 79, 85, 83, 69, - 128, 77, 79, 85, 83, 197, 77, 79, 85, 78, 84, 65, 73, 78, 83, 128, 77, - 79, 85, 78, 84, 65, 73, 78, 128, 77, 79, 85, 78, 84, 65, 73, 206, 77, 79, - 85, 78, 212, 77, 79, 85, 78, 68, 128, 77, 79, 85, 78, 196, 77, 79, 84, - 79, 82, 87, 65, 89, 128, 77, 79, 84, 79, 82, 73, 90, 69, 196, 77, 79, 84, - 79, 82, 67, 89, 67, 76, 69, 128, 77, 79, 84, 79, 210, 77, 79, 84, 72, 69, - 82, 128, 77, 79, 84, 72, 69, 210, 77, 79, 84, 128, 77, 79, 83, 81, 85, - 73, 84, 79, 128, 77, 79, 83, 81, 85, 69, 128, 77, 79, 82, 84, 85, 85, 77, - 128, 77, 79, 82, 84, 65, 82, 128, 77, 79, 82, 80, 72, 79, 76, 79, 71, 73, - 67, 65, 204, 77, 79, 82, 78, 73, 78, 71, 128, 77, 79, 80, 128, 77, 79, - 79, 83, 69, 45, 67, 82, 69, 197, 77, 79, 79, 78, 128, 77, 79, 79, 206, - 77, 79, 79, 77, 80, 85, 81, 128, 77, 79, 79, 77, 69, 85, 84, 128, 77, 79, - 79, 68, 128, 77, 79, 79, 196, 77, 79, 79, 128, 77, 79, 78, 84, 73, 69, - 69, 78, 128, 77, 79, 78, 84, 72, 128, 77, 79, 78, 84, 200, 77, 79, 78, - 83, 84, 69, 82, 128, 77, 79, 78, 79, 83, 84, 65, 66, 76, 197, 77, 79, 78, - 79, 83, 80, 65, 67, 197, 77, 79, 78, 79, 82, 65, 73, 76, 128, 77, 79, 78, - 79, 71, 82, 65, 80, 200, 77, 79, 78, 79, 71, 82, 65, 77, 77, 79, 211, 77, - 79, 78, 79, 71, 82, 65, 205, 77, 79, 78, 79, 70, 79, 78, 73, 65, 83, 128, - 77, 79, 78, 79, 67, 85, 76, 65, 210, 77, 79, 78, 79, 67, 76, 69, 128, 77, - 79, 78, 75, 69, 89, 128, 77, 79, 78, 75, 69, 217, 77, 79, 78, 73, 128, - 77, 79, 78, 71, 75, 69, 85, 65, 69, 81, 128, 77, 79, 78, 69, 89, 45, 77, - 79, 85, 84, 200, 77, 79, 78, 69, 217, 77, 79, 78, 128, 77, 79, 206, 77, - 79, 76, 128, 77, 79, 75, 72, 65, 83, 83, 65, 83, 128, 77, 79, 72, 65, 77, - 77, 65, 196, 77, 79, 68, 85, 76, 207, 77, 79, 68, 73, 70, 73, 69, 82, 45, - 57, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 56, 128, 77, 79, 68, 73, 70, - 73, 69, 82, 45, 55, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 54, 128, 77, - 79, 68, 73, 70, 73, 69, 82, 45, 53, 128, 77, 79, 68, 73, 70, 73, 69, 82, - 45, 52, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 51, 128, 77, 79, 68, 73, - 70, 73, 69, 82, 45, 50, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 49, 54, - 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 49, 53, 128, 77, 79, 68, 73, 70, - 73, 69, 82, 45, 49, 52, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 49, 51, - 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 49, 50, 128, 77, 79, 68, 73, 70, - 73, 69, 82, 45, 49, 49, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 49, 48, - 128, 77, 79, 68, 73, 70, 73, 69, 82, 128, 77, 79, 68, 201, 77, 79, 68, - 69, 83, 84, 89, 128, 77, 79, 68, 69, 82, 206, 77, 79, 68, 69, 77, 128, - 77, 79, 68, 69, 76, 83, 128, 77, 79, 68, 69, 76, 128, 77, 79, 68, 69, - 128, 77, 79, 66, 73, 76, 197, 77, 79, 65, 128, 77, 79, 45, 54, 128, 77, - 79, 45, 53, 128, 77, 79, 45, 52, 128, 77, 79, 45, 51, 128, 77, 207, 77, - 78, 89, 65, 205, 77, 78, 65, 83, 128, 77, 77, 83, 80, 128, 77, 77, 128, - 77, 205, 77, 76, 65, 128, 77, 76, 128, 77, 75, 80, 65, 82, 65, 209, 77, - 73, 88, 128, 77, 73, 84, 128, 77, 73, 83, 82, 65, 128, 77, 73, 82, 82, - 79, 82, 128, 77, 73, 82, 82, 79, 210, 77, 73, 82, 73, 66, 65, 65, 82, 85, - 128, 77, 73, 82, 73, 128, 77, 73, 82, 69, 68, 128, 77, 73, 80, 128, 77, - 73, 78, 89, 128, 77, 73, 78, 85, 83, 45, 79, 82, 45, 80, 76, 85, 211, 77, - 73, 78, 85, 83, 128, 77, 73, 78, 78, 65, 206, 77, 73, 78, 73, 83, 84, 69, - 82, 128, 77, 73, 78, 73, 77, 73, 90, 69, 128, 77, 73, 78, 73, 77, 65, - 128, 77, 73, 78, 73, 68, 73, 83, 67, 128, 77, 73, 78, 73, 66, 85, 83, - 128, 77, 73, 77, 69, 128, 77, 73, 77, 128, 77, 73, 76, 76, 73, 79, 78, - 83, 128, 77, 73, 76, 76, 73, 79, 78, 211, 77, 73, 76, 76, 69, 84, 128, - 77, 73, 76, 76, 197, 77, 73, 76, 204, 77, 73, 76, 75, 217, 77, 73, 76, - 75, 128, 77, 73, 76, 73, 84, 65, 82, 217, 77, 73, 76, 128, 77, 73, 75, - 85, 82, 79, 78, 128, 77, 73, 75, 82, 79, 206, 77, 73, 75, 82, 73, 128, - 77, 73, 73, 78, 128, 77, 73, 73, 77, 128, 77, 73, 73, 128, 77, 73, 199, - 77, 73, 69, 88, 128, 77, 73, 69, 85, 77, 45, 84, 73, 75, 69, 85, 84, 128, - 77, 73, 69, 85, 77, 45, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 77, 73, - 69, 85, 77, 45, 83, 83, 65, 78, 71, 78, 73, 69, 85, 78, 128, 77, 73, 69, - 85, 77, 45, 82, 73, 69, 85, 76, 128, 77, 73, 69, 85, 77, 45, 80, 73, 69, - 85, 80, 45, 83, 73, 79, 83, 128, 77, 73, 69, 85, 77, 45, 80, 73, 69, 85, - 80, 128, 77, 73, 69, 85, 77, 45, 80, 65, 78, 83, 73, 79, 83, 128, 77, 73, - 69, 85, 77, 45, 78, 73, 69, 85, 78, 128, 77, 73, 69, 85, 77, 45, 67, 73, - 69, 85, 67, 128, 77, 73, 69, 85, 77, 45, 67, 72, 73, 69, 85, 67, 72, 128, - 77, 73, 69, 85, 205, 77, 73, 69, 80, 128, 77, 73, 69, 69, 128, 77, 73, - 69, 128, 77, 73, 68, 76, 73, 78, 197, 77, 73, 68, 68, 76, 69, 45, 87, 69, - 76, 83, 200, 77, 73, 68, 68, 76, 69, 128, 77, 73, 68, 45, 76, 69, 86, 69, - 204, 77, 73, 196, 77, 73, 67, 82, 79, 83, 67, 79, 80, 69, 128, 77, 73, - 67, 82, 79, 80, 72, 79, 78, 69, 128, 77, 73, 67, 82, 79, 66, 69, 128, 77, - 73, 67, 82, 207, 77, 73, 67, 210, 77, 73, 45, 55, 128, 77, 73, 45, 54, - 128, 77, 73, 45, 53, 128, 77, 73, 45, 52, 128, 77, 73, 45, 51, 128, 77, - 73, 45, 50, 128, 77, 73, 45, 49, 128, 77, 72, 90, 128, 77, 72, 65, 128, - 77, 72, 128, 77, 71, 85, 88, 128, 77, 71, 85, 84, 128, 77, 71, 85, 82, - 88, 128, 77, 71, 85, 82, 128, 77, 71, 85, 80, 128, 77, 71, 85, 79, 88, - 128, 77, 71, 85, 79, 80, 128, 77, 71, 85, 79, 128, 77, 71, 85, 128, 77, - 71, 79, 88, 128, 77, 71, 79, 84, 128, 77, 71, 79, 80, 128, 77, 71, 79, - 128, 77, 71, 207, 77, 71, 73, 69, 88, 128, 77, 71, 73, 69, 128, 77, 71, - 69, 88, 128, 77, 71, 69, 80, 128, 77, 71, 69, 128, 77, 71, 66, 85, 128, - 77, 71, 66, 79, 79, 128, 77, 71, 66, 79, 70, 85, 77, 128, 77, 71, 66, 79, - 128, 77, 71, 66, 73, 128, 77, 71, 66, 69, 85, 78, 128, 77, 71, 66, 69, - 78, 128, 77, 71, 66, 69, 69, 128, 77, 71, 66, 69, 128, 77, 71, 66, 65, - 83, 65, 81, 128, 77, 71, 66, 65, 83, 65, 128, 77, 71, 65, 88, 128, 77, - 71, 65, 84, 128, 77, 71, 65, 80, 128, 77, 71, 65, 128, 77, 71, 128, 77, - 70, 79, 78, 128, 77, 70, 79, 206, 77, 70, 79, 128, 77, 70, 73, 89, 65, - 81, 128, 77, 70, 73, 69, 69, 128, 77, 70, 69, 85, 84, 128, 77, 70, 69, - 85, 81, 128, 77, 70, 69, 85, 65, 69, 128, 77, 70, 65, 65, 128, 77, 69, - 90, 90, 79, 128, 77, 69, 88, 128, 77, 69, 85, 212, 77, 69, 85, 81, 128, - 77, 69, 85, 78, 74, 79, 77, 78, 68, 69, 85, 81, 128, 77, 69, 85, 78, 128, - 77, 69, 84, 82, 79, 128, 77, 69, 84, 82, 73, 67, 65, 204, 77, 69, 84, 82, - 73, 65, 128, 77, 69, 84, 82, 69, 84, 69, 211, 77, 69, 84, 79, 66, 69, 76, - 85, 83, 128, 77, 69, 84, 69, 75, 128, 77, 69, 84, 69, 71, 128, 77, 69, - 84, 65, 76, 128, 77, 69, 84, 193, 77, 69, 83, 83, 69, 78, 73, 65, 206, - 77, 69, 83, 83, 65, 71, 69, 128, 77, 69, 83, 83, 65, 71, 197, 77, 69, 83, - 79, 128, 77, 69, 83, 73, 128, 77, 69, 83, 72, 128, 77, 69, 82, 80, 69, - 82, 83, 79, 78, 128, 77, 69, 82, 75, 72, 65, 128, 77, 69, 82, 75, 72, - 193, 77, 69, 82, 73, 68, 73, 65, 78, 83, 128, 77, 69, 82, 73, 128, 77, - 69, 82, 71, 69, 128, 77, 69, 82, 67, 85, 82, 89, 128, 77, 69, 82, 67, 85, - 82, 217, 77, 69, 78, 79, 82, 65, 200, 77, 69, 78, 79, 69, 128, 77, 69, - 78, 68, 85, 84, 128, 77, 69, 78, 128, 77, 69, 77, 79, 128, 77, 69, 77, - 66, 69, 82, 83, 72, 73, 80, 128, 77, 69, 77, 66, 69, 82, 128, 77, 69, 77, - 66, 69, 210, 77, 69, 77, 45, 81, 79, 80, 72, 128, 77, 69, 77, 128, 77, - 69, 205, 77, 69, 76, 84, 73, 78, 199, 77, 69, 76, 79, 68, 73, 195, 77, - 69, 76, 73, 75, 128, 77, 69, 73, 90, 73, 128, 77, 69, 71, 65, 84, 79, 78, - 128, 77, 69, 71, 65, 80, 72, 79, 78, 69, 128, 77, 69, 71, 65, 76, 73, - 128, 77, 69, 69, 84, 79, 82, 85, 128, 77, 69, 69, 84, 69, 201, 77, 69, - 69, 84, 128, 77, 69, 69, 77, 85, 128, 77, 69, 69, 77, 128, 77, 69, 69, - 202, 77, 69, 69, 69, 69, 128, 77, 69, 68, 73, 85, 77, 128, 77, 69, 68, - 73, 85, 205, 77, 69, 68, 73, 69, 86, 65, 204, 77, 69, 68, 73, 67, 73, 78, - 69, 128, 77, 69, 68, 73, 67, 65, 204, 77, 69, 68, 73, 65, 204, 77, 69, - 68, 69, 70, 65, 73, 68, 82, 73, 206, 77, 69, 68, 65, 76, 128, 77, 69, 67, - 72, 73, 75, 128, 77, 69, 67, 72, 73, 203, 77, 69, 67, 72, 65, 78, 73, 67, - 65, 204, 77, 69, 65, 84, 128, 77, 69, 65, 212, 77, 69, 65, 83, 85, 82, - 69, 196, 77, 69, 65, 83, 85, 82, 69, 128, 77, 69, 65, 83, 85, 82, 197, - 77, 69, 45, 77, 65, 128, 77, 69, 45, 50, 128, 77, 69, 45, 49, 128, 77, - 68, 85, 206, 77, 196, 77, 67, 72, 213, 77, 67, 72, 65, 206, 77, 67, 128, - 77, 195, 77, 66, 85, 85, 128, 77, 66, 85, 79, 81, 128, 77, 66, 85, 79, - 128, 77, 66, 85, 69, 128, 77, 66, 85, 65, 69, 77, 128, 77, 66, 85, 65, - 69, 128, 77, 66, 79, 79, 128, 77, 66, 79, 128, 77, 66, 73, 84, 128, 77, - 66, 73, 212, 77, 66, 73, 82, 73, 69, 69, 78, 128, 77, 66, 73, 128, 77, - 66, 69, 85, 88, 128, 77, 66, 69, 85, 82, 73, 128, 77, 66, 69, 85, 77, - 128, 77, 66, 69, 82, 65, 69, 128, 77, 66, 69, 78, 128, 77, 66, 69, 69, - 75, 69, 69, 84, 128, 77, 66, 69, 69, 128, 77, 66, 69, 128, 77, 66, 65, - 81, 128, 77, 66, 65, 78, 89, 73, 128, 77, 66, 65, 65, 82, 65, 69, 128, - 77, 66, 65, 65, 75, 69, 84, 128, 77, 66, 65, 65, 128, 77, 66, 65, 193, - 77, 66, 193, 77, 66, 52, 128, 77, 66, 51, 128, 77, 66, 50, 128, 77, 65, - 89, 69, 203, 77, 65, 89, 65, 78, 78, 65, 128, 77, 65, 89, 65, 206, 77, - 65, 89, 128, 77, 65, 88, 73, 77, 73, 90, 69, 128, 77, 65, 88, 73, 77, 65, - 128, 77, 65, 88, 128, 77, 65, 85, 128, 77, 65, 84, 84, 79, 67, 75, 128, - 77, 65, 84, 82, 73, 88, 128, 77, 65, 84, 69, 82, 73, 65, 76, 83, 128, 77, - 65, 84, 128, 77, 65, 83, 213, 77, 65, 83, 83, 73, 78, 71, 128, 77, 65, - 83, 83, 65, 71, 69, 128, 77, 65, 83, 79, 82, 193, 77, 65, 83, 75, 128, - 77, 65, 83, 203, 77, 65, 83, 72, 70, 65, 65, 84, 128, 77, 65, 83, 72, 50, - 128, 77, 65, 83, 67, 85, 76, 73, 78, 197, 77, 65, 83, 65, 82, 65, 205, - 77, 65, 82, 89, 128, 77, 65, 82, 87, 65, 82, 201, 77, 65, 82, 85, 75, 85, - 128, 77, 65, 82, 84, 89, 82, 73, 193, 77, 65, 82, 84, 73, 65, 204, 77, - 65, 82, 82, 89, 73, 78, 199, 77, 65, 82, 82, 73, 65, 71, 197, 77, 65, 82, - 82, 65, 84, 65, 78, 128, 77, 65, 82, 75, 211, 77, 65, 82, 75, 69, 82, - 128, 77, 65, 82, 75, 45, 52, 128, 77, 65, 82, 75, 45, 51, 128, 77, 65, - 82, 75, 45, 50, 128, 77, 65, 82, 75, 45, 49, 128, 77, 65, 82, 69, 128, - 77, 65, 82, 67, 72, 69, 206, 77, 65, 82, 67, 72, 128, 77, 65, 82, 67, 65, - 84, 79, 45, 83, 84, 65, 67, 67, 65, 84, 79, 128, 77, 65, 82, 67, 65, 84, - 79, 128, 77, 65, 82, 67, 65, 83, 73, 84, 69, 128, 77, 65, 82, 66, 85, 84, - 65, 128, 77, 65, 82, 66, 85, 84, 193, 77, 65, 82, 128, 77, 65, 81, 65, - 70, 128, 77, 65, 81, 128, 77, 65, 80, 76, 197, 77, 65, 80, 73, 81, 128, - 77, 65, 208, 77, 65, 79, 128, 77, 65, 78, 85, 65, 204, 77, 65, 78, 84, - 69, 76, 80, 73, 69, 67, 197, 77, 65, 78, 83, 89, 79, 78, 128, 77, 65, 78, - 83, 85, 65, 69, 128, 77, 65, 78, 78, 65, 218, 77, 65, 78, 78, 65, 128, - 77, 65, 78, 73, 67, 72, 65, 69, 65, 206, 77, 65, 78, 71, 79, 128, 77, 65, - 78, 71, 65, 76, 65, 77, 128, 77, 65, 78, 68, 65, 82, 73, 78, 128, 77, 65, - 78, 68, 65, 73, 76, 73, 78, 199, 77, 65, 78, 68, 65, 73, 195, 77, 65, 78, - 67, 72, 213, 77, 65, 78, 65, 212, 77, 65, 78, 65, 67, 76, 69, 83, 128, - 77, 65, 77, 77, 79, 84, 72, 128, 77, 65, 76, 84, 69, 83, 197, 77, 65, 76, - 207, 77, 65, 76, 69, 69, 82, 73, 128, 77, 65, 76, 197, 77, 65, 76, 65, - 75, 79, 206, 77, 65, 75, 83, 85, 82, 65, 128, 77, 65, 75, 83, 85, 82, - 193, 77, 65, 75, 65, 83, 65, 210, 77, 65, 73, 90, 69, 128, 77, 65, 73, - 89, 65, 77, 79, 75, 128, 77, 65, 73, 84, 65, 73, 75, 72, 85, 128, 77, 65, - 73, 82, 85, 128, 77, 65, 73, 77, 85, 65, 78, 128, 77, 65, 73, 77, 65, 76, - 65, 73, 128, 77, 65, 73, 76, 66, 79, 216, 77, 65, 73, 75, 85, 82, 79, - 128, 77, 65, 73, 68, 69, 78, 128, 77, 65, 73, 128, 77, 65, 72, 74, 79, - 78, 199, 77, 65, 72, 72, 65, 128, 77, 65, 72, 65, 80, 82, 65, 78, 65, - 128, 77, 65, 72, 65, 80, 65, 75, 72, 128, 77, 65, 72, 65, 74, 65, 78, - 201, 77, 65, 72, 65, 65, 80, 82, 65, 65, 78, 193, 77, 65, 72, 128, 77, - 65, 71, 78, 73, 70, 89, 73, 78, 199, 77, 65, 71, 78, 69, 84, 128, 77, 65, - 71, 73, 195, 77, 65, 71, 69, 128, 77, 65, 69, 83, 73, 128, 77, 65, 69, - 78, 89, 73, 128, 77, 65, 69, 78, 74, 69, 84, 128, 77, 65, 69, 77, 86, 69, - 85, 88, 128, 77, 65, 69, 77, 75, 80, 69, 78, 128, 77, 65, 69, 77, 71, 66, - 73, 69, 69, 128, 77, 65, 69, 77, 66, 71, 66, 73, 69, 69, 128, 77, 65, 69, - 77, 66, 65, 128, 77, 65, 69, 77, 128, 77, 65, 69, 76, 69, 69, 128, 77, - 65, 69, 75, 69, 85, 80, 128, 77, 65, 68, 89, 65, 128, 77, 65, 68, 85, - 128, 77, 65, 68, 68, 65, 72, 128, 77, 65, 68, 68, 65, 200, 77, 65, 68, - 68, 65, 128, 77, 65, 68, 68, 193, 77, 65, 67, 82, 79, 78, 45, 71, 82, 65, - 86, 69, 128, 77, 65, 67, 82, 79, 78, 45, 66, 82, 69, 86, 69, 128, 77, 65, - 67, 82, 79, 78, 45, 65, 67, 85, 84, 69, 128, 77, 65, 67, 82, 79, 78, 128, - 77, 65, 67, 82, 79, 206, 77, 65, 67, 72, 73, 78, 69, 128, 77, 65, 65, 89, - 89, 65, 65, 128, 77, 65, 65, 73, 128, 77, 65, 65, 128, 77, 65, 50, 128, - 77, 65, 45, 55, 128, 77, 65, 45, 54, 128, 77, 65, 45, 53, 128, 77, 65, - 45, 52, 128, 77, 65, 45, 51, 128, 77, 65, 45, 50, 128, 77, 65, 45, 49, - 128, 77, 49, 57, 183, 77, 49, 57, 182, 77, 49, 57, 181, 77, 49, 57, 180, - 77, 49, 57, 179, 77, 49, 57, 178, 77, 49, 57, 177, 77, 49, 57, 176, 77, - 49, 56, 185, 77, 49, 56, 184, 77, 49, 56, 183, 77, 49, 56, 182, 77, 49, - 56, 181, 77, 49, 56, 180, 77, 49, 56, 179, 77, 49, 56, 178, 77, 49, 56, - 177, 77, 49, 56, 176, 77, 49, 55, 185, 77, 49, 55, 184, 77, 49, 55, 183, - 77, 49, 55, 182, 77, 49, 55, 181, 77, 49, 55, 180, 77, 49, 55, 179, 77, - 49, 55, 178, 77, 49, 55, 177, 77, 49, 55, 176, 77, 49, 54, 185, 77, 49, - 54, 184, 77, 49, 54, 183, 77, 49, 54, 182, 77, 49, 54, 181, 77, 49, 54, - 180, 77, 49, 54, 179, 77, 49, 54, 178, 77, 49, 54, 177, 77, 49, 54, 176, - 77, 49, 53, 185, 77, 49, 53, 184, 77, 49, 53, 183, 77, 49, 53, 182, 77, - 49, 53, 181, 77, 49, 53, 180, 77, 49, 53, 179, 77, 49, 53, 178, 77, 49, - 53, 177, 77, 49, 53, 176, 77, 49, 52, 185, 77, 49, 52, 184, 77, 49, 52, - 183, 77, 49, 52, 182, 77, 49, 52, 181, 77, 49, 52, 180, 77, 49, 52, 179, - 77, 49, 52, 178, 77, 49, 52, 177, 77, 49, 52, 176, 77, 49, 51, 185, 77, - 49, 51, 184, 77, 49, 51, 183, 77, 49, 51, 182, 77, 49, 51, 181, 77, 49, - 51, 180, 77, 49, 51, 179, 77, 49, 51, 178, 77, 49, 51, 177, 77, 49, 51, - 176, 77, 49, 50, 185, 77, 49, 50, 184, 77, 49, 50, 183, 77, 49, 50, 182, - 77, 49, 50, 181, 77, 49, 50, 180, 77, 49, 50, 179, 77, 49, 50, 178, 77, - 49, 50, 177, 77, 49, 50, 176, 77, 49, 49, 185, 77, 49, 49, 184, 77, 49, - 49, 183, 77, 49, 49, 182, 77, 49, 49, 181, 77, 49, 49, 180, 77, 49, 49, - 179, 77, 49, 49, 178, 77, 49, 49, 177, 77, 49, 49, 176, 77, 49, 48, 185, - 77, 49, 48, 184, 77, 49, 48, 183, 77, 49, 48, 182, 77, 49, 48, 181, 77, - 49, 48, 180, 77, 49, 48, 179, 77, 49, 48, 178, 77, 49, 48, 177, 77, 49, - 48, 176, 77, 48, 57, 185, 77, 48, 57, 184, 77, 48, 57, 183, 77, 48, 57, - 182, 77, 48, 57, 181, 77, 48, 57, 180, 77, 48, 57, 179, 77, 48, 57, 178, - 77, 48, 57, 177, 77, 48, 57, 176, 77, 48, 56, 185, 77, 48, 56, 184, 77, - 48, 56, 183, 77, 48, 56, 182, 77, 48, 56, 181, 77, 48, 56, 180, 77, 48, - 56, 179, 77, 48, 56, 178, 77, 48, 56, 177, 77, 48, 56, 176, 77, 48, 55, - 185, 77, 48, 55, 184, 77, 48, 55, 183, 77, 48, 55, 182, 77, 48, 55, 181, - 77, 48, 55, 180, 77, 48, 55, 179, 77, 48, 55, 178, 77, 48, 55, 177, 77, - 48, 55, 176, 77, 48, 54, 185, 77, 48, 54, 184, 77, 48, 54, 183, 77, 48, - 54, 182, 77, 48, 54, 181, 77, 48, 54, 180, 77, 48, 54, 179, 77, 48, 54, - 178, 77, 48, 54, 177, 77, 48, 54, 176, 77, 48, 53, 185, 77, 48, 53, 184, - 77, 48, 53, 183, 77, 48, 53, 182, 77, 48, 53, 181, 77, 48, 53, 180, 77, - 48, 53, 179, 77, 48, 53, 178, 77, 48, 53, 177, 77, 48, 53, 176, 77, 48, - 52, 185, 77, 48, 52, 184, 77, 48, 52, 183, 77, 48, 52, 182, 77, 48, 52, - 181, 77, 48, 52, 52, 128, 77, 48, 52, 180, 77, 48, 52, 51, 128, 77, 48, - 52, 179, 77, 48, 52, 50, 128, 77, 48, 52, 178, 77, 48, 52, 49, 128, 77, - 48, 52, 177, 77, 48, 52, 48, 65, 128, 77, 48, 52, 48, 128, 77, 48, 52, - 176, 77, 48, 51, 57, 128, 77, 48, 51, 185, 77, 48, 51, 56, 128, 77, 48, - 51, 184, 77, 48, 51, 55, 128, 77, 48, 51, 183, 77, 48, 51, 54, 128, 77, - 48, 51, 182, 77, 48, 51, 53, 128, 77, 48, 51, 181, 77, 48, 51, 52, 128, - 77, 48, 51, 180, 77, 48, 51, 51, 66, 128, 77, 48, 51, 51, 65, 128, 77, - 48, 51, 51, 128, 77, 48, 51, 179, 77, 48, 51, 50, 128, 77, 48, 51, 178, - 77, 48, 51, 49, 65, 128, 77, 48, 51, 49, 128, 77, 48, 51, 177, 77, 48, - 51, 48, 128, 77, 48, 51, 176, 77, 48, 50, 57, 128, 77, 48, 50, 185, 77, - 48, 50, 56, 65, 128, 77, 48, 50, 56, 128, 77, 48, 50, 184, 77, 48, 50, - 55, 128, 77, 48, 50, 183, 77, 48, 50, 54, 128, 77, 48, 50, 182, 77, 48, - 50, 53, 128, 77, 48, 50, 181, 77, 48, 50, 52, 65, 128, 77, 48, 50, 52, - 128, 77, 48, 50, 180, 77, 48, 50, 51, 128, 77, 48, 50, 179, 77, 48, 50, - 50, 65, 128, 77, 48, 50, 50, 128, 77, 48, 50, 178, 77, 48, 50, 49, 128, - 77, 48, 50, 177, 77, 48, 50, 48, 128, 77, 48, 50, 176, 77, 48, 49, 57, - 128, 77, 48, 49, 185, 77, 48, 49, 56, 128, 77, 48, 49, 184, 77, 48, 49, - 55, 65, 128, 77, 48, 49, 55, 128, 77, 48, 49, 183, 77, 48, 49, 54, 65, - 128, 77, 48, 49, 54, 128, 77, 48, 49, 182, 77, 48, 49, 53, 65, 128, 77, - 48, 49, 53, 128, 77, 48, 49, 181, 77, 48, 49, 52, 128, 77, 48, 49, 180, - 77, 48, 49, 51, 128, 77, 48, 49, 179, 77, 48, 49, 50, 72, 128, 77, 48, - 49, 50, 71, 128, 77, 48, 49, 50, 70, 128, 77, 48, 49, 50, 69, 128, 77, - 48, 49, 50, 68, 128, 77, 48, 49, 50, 67, 128, 77, 48, 49, 50, 66, 128, - 77, 48, 49, 50, 65, 128, 77, 48, 49, 50, 128, 77, 48, 49, 178, 77, 48, - 49, 49, 128, 77, 48, 49, 177, 77, 48, 49, 48, 65, 128, 77, 48, 49, 48, - 128, 77, 48, 49, 176, 77, 48, 48, 57, 128, 77, 48, 48, 185, 77, 48, 48, - 56, 128, 77, 48, 48, 184, 77, 48, 48, 55, 128, 77, 48, 48, 183, 77, 48, - 48, 54, 128, 77, 48, 48, 182, 77, 48, 48, 53, 128, 77, 48, 48, 181, 77, - 48, 48, 52, 128, 77, 48, 48, 180, 77, 48, 48, 51, 65, 128, 77, 48, 48, - 51, 128, 77, 48, 48, 179, 77, 48, 48, 50, 128, 77, 48, 48, 178, 77, 48, - 48, 49, 66, 128, 77, 48, 48, 49, 65, 128, 77, 48, 48, 49, 128, 77, 48, - 48, 177, 76, 218, 76, 89, 89, 128, 76, 89, 88, 128, 76, 89, 84, 128, 76, - 89, 82, 88, 128, 76, 89, 82, 128, 76, 89, 80, 128, 76, 89, 73, 84, 128, - 76, 89, 73, 78, 199, 76, 89, 68, 73, 65, 206, 76, 89, 67, 73, 65, 206, - 76, 88, 128, 76, 87, 79, 79, 128, 76, 87, 79, 128, 76, 87, 73, 73, 128, - 76, 87, 73, 128, 76, 87, 69, 128, 76, 87, 65, 65, 128, 76, 87, 65, 128, - 76, 85, 88, 128, 76, 85, 85, 128, 76, 85, 84, 128, 76, 85, 82, 88, 128, - 76, 85, 80, 128, 76, 85, 79, 88, 128, 76, 85, 79, 84, 128, 76, 85, 79, - 80, 128, 76, 85, 79, 128, 76, 85, 78, 71, 83, 73, 128, 76, 85, 78, 71, - 83, 128, 76, 85, 78, 65, 84, 197, 76, 85, 205, 76, 85, 76, 128, 76, 85, - 73, 83, 128, 76, 85, 72, 85, 82, 128, 76, 85, 72, 128, 76, 85, 200, 76, - 85, 71, 71, 65, 71, 69, 128, 76, 85, 71, 65, 76, 128, 76, 85, 71, 65, - 204, 76, 85, 69, 128, 76, 85, 197, 76, 85, 66, 128, 76, 85, 65, 69, 80, - 128, 76, 85, 51, 128, 76, 85, 50, 128, 76, 85, 178, 76, 82, 79, 128, 76, - 82, 77, 128, 76, 82, 73, 128, 76, 82, 69, 128, 76, 79, 90, 69, 78, 71, - 69, 128, 76, 79, 90, 69, 78, 71, 197, 76, 79, 88, 128, 76, 79, 87, 69, - 82, 69, 196, 76, 79, 87, 45, 82, 69, 86, 69, 82, 83, 69, 68, 45, 185, 76, - 79, 87, 45, 77, 73, 196, 76, 79, 87, 45, 70, 65, 76, 76, 73, 78, 199, 76, - 79, 87, 45, 185, 76, 79, 86, 197, 76, 79, 85, 82, 69, 128, 76, 79, 85, - 68, 83, 80, 69, 65, 75, 69, 82, 128, 76, 79, 85, 68, 76, 217, 76, 79, 84, - 85, 83, 128, 76, 79, 84, 85, 211, 76, 79, 84, 73, 79, 206, 76, 79, 84, - 128, 76, 79, 83, 83, 76, 69, 83, 83, 128, 76, 79, 82, 82, 89, 128, 76, - 79, 82, 82, 65, 73, 78, 69, 128, 76, 79, 81, 128, 76, 79, 80, 128, 76, - 79, 79, 84, 128, 76, 79, 79, 80, 69, 196, 76, 79, 79, 80, 128, 76, 79, - 79, 208, 76, 79, 79, 78, 128, 76, 79, 79, 203, 76, 79, 79, 128, 76, 79, - 78, 83, 85, 77, 128, 76, 79, 78, 71, 65, 128, 76, 79, 78, 71, 193, 76, - 79, 78, 71, 45, 76, 69, 71, 71, 69, 196, 76, 79, 78, 71, 45, 66, 82, 65, - 78, 67, 72, 45, 89, 82, 128, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, - 45, 83, 79, 204, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 79, 83, - 211, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 77, 65, 68, 210, 76, - 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 72, 65, 71, 65, 76, 204, 76, - 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 65, 210, 76, 79, 77, 77, 65, - 69, 128, 76, 79, 77, 75, 65, 128, 76, 79, 77, 128, 76, 79, 205, 76, 79, - 76, 76, 73, 80, 79, 80, 128, 76, 79, 76, 76, 128, 76, 79, 71, 210, 76, - 79, 71, 79, 84, 89, 80, 197, 76, 79, 71, 79, 71, 82, 65, 205, 76, 79, 71, - 128, 76, 79, 68, 69, 83, 84, 79, 78, 69, 128, 76, 79, 67, 79, 77, 79, 84, - 73, 86, 69, 128, 76, 79, 67, 75, 73, 78, 71, 45, 83, 72, 73, 70, 212, 76, - 79, 67, 65, 84, 73, 86, 69, 128, 76, 79, 67, 65, 84, 73, 79, 78, 45, 87, - 65, 76, 76, 80, 76, 65, 78, 197, 76, 79, 67, 65, 84, 73, 79, 78, 45, 70, - 76, 79, 79, 82, 80, 76, 65, 78, 197, 76, 79, 67, 65, 84, 73, 79, 78, 128, - 76, 79, 67, 65, 84, 73, 79, 206, 76, 79, 66, 83, 84, 69, 82, 128, 76, 79, - 65, 128, 76, 78, 128, 76, 76, 85, 85, 128, 76, 76, 79, 79, 128, 76, 76, - 76, 85, 85, 128, 76, 76, 76, 85, 128, 76, 76, 76, 79, 79, 128, 76, 76, - 76, 79, 128, 76, 76, 76, 73, 73, 128, 76, 76, 76, 73, 128, 76, 76, 76, - 69, 69, 128, 76, 76, 76, 69, 128, 76, 76, 76, 65, 85, 128, 76, 76, 76, - 65, 73, 128, 76, 76, 76, 65, 65, 128, 76, 76, 76, 65, 128, 76, 76, 76, - 128, 76, 76, 72, 65, 128, 76, 76, 65, 77, 65, 128, 76, 74, 85, 68, 73, - 74, 69, 128, 76, 74, 69, 128, 76, 74, 128, 76, 73, 90, 65, 82, 68, 128, - 76, 73, 88, 128, 76, 73, 87, 78, 128, 76, 73, 86, 82, 197, 76, 73, 84, - 84, 76, 69, 128, 76, 73, 84, 84, 76, 197, 76, 73, 84, 84, 69, 210, 76, - 73, 84, 82, 193, 76, 73, 84, 200, 76, 73, 83, 213, 76, 73, 83, 128, 76, - 73, 82, 193, 76, 73, 81, 85, 73, 68, 128, 76, 73, 81, 85, 73, 196, 76, - 73, 81, 128, 76, 73, 80, 83, 84, 73, 67, 75, 128, 76, 73, 80, 211, 76, - 73, 208, 76, 73, 78, 75, 73, 78, 199, 76, 73, 78, 75, 69, 196, 76, 73, - 78, 203, 76, 73, 78, 71, 83, 65, 128, 76, 73, 78, 69, 83, 128, 76, 73, - 78, 69, 211, 76, 73, 78, 69, 45, 57, 128, 76, 73, 78, 69, 45, 55, 128, - 76, 73, 78, 69, 45, 51, 128, 76, 73, 78, 69, 45, 49, 128, 76, 73, 77, 77, - 85, 52, 128, 76, 73, 77, 77, 85, 50, 128, 76, 73, 77, 77, 85, 128, 76, - 73, 77, 77, 213, 76, 73, 77, 73, 84, 69, 196, 76, 73, 77, 73, 84, 65, 84, - 73, 79, 78, 128, 76, 73, 77, 73, 84, 128, 76, 73, 77, 69, 128, 76, 73, - 77, 66, 213, 76, 73, 77, 66, 211, 76, 73, 77, 194, 76, 73, 76, 89, 128, - 76, 73, 76, 73, 84, 72, 128, 76, 73, 76, 128, 76, 73, 71, 72, 84, 78, 73, - 78, 71, 128, 76, 73, 71, 72, 84, 78, 73, 78, 199, 76, 73, 71, 72, 84, 72, - 79, 85, 83, 69, 128, 76, 73, 71, 72, 84, 128, 76, 73, 71, 65, 84, 73, 78, - 199, 76, 73, 70, 84, 69, 82, 128, 76, 73, 70, 69, 128, 76, 73, 69, 88, - 128, 76, 73, 69, 84, 128, 76, 73, 69, 80, 128, 76, 73, 69, 69, 128, 76, - 73, 69, 128, 76, 73, 68, 128, 76, 73, 67, 75, 73, 78, 199, 76, 73, 66, - 82, 65, 128, 76, 73, 66, 69, 82, 84, 89, 128, 76, 73, 65, 66, 73, 76, 73, - 84, 217, 76, 72, 73, 73, 128, 76, 72, 65, 86, 73, 89, 65, 78, 73, 128, - 76, 72, 65, 199, 76, 72, 65, 65, 128, 76, 72, 128, 76, 69, 90, 72, 128, - 76, 69, 90, 200, 76, 69, 88, 128, 76, 69, 86, 73, 84, 65, 84, 73, 78, 71, - 128, 76, 69, 86, 69, 76, 45, 51, 128, 76, 69, 86, 69, 76, 45, 50, 128, - 76, 69, 85, 77, 128, 76, 69, 85, 65, 69, 80, 128, 76, 69, 85, 65, 69, 77, - 128, 76, 69, 85, 128, 76, 69, 213, 76, 69, 84, 84, 69, 82, 83, 128, 76, - 69, 84, 84, 69, 82, 128, 76, 69, 212, 76, 69, 83, 83, 69, 210, 76, 69, - 83, 83, 45, 84, 72, 65, 78, 128, 76, 69, 83, 83, 45, 84, 72, 65, 206, 76, - 69, 83, 72, 128, 76, 69, 80, 67, 72, 193, 76, 69, 80, 128, 76, 69, 79, - 80, 65, 82, 68, 128, 76, 69, 79, 128, 76, 69, 78, 84, 73, 67, 85, 76, 65, - 210, 76, 69, 78, 73, 83, 128, 76, 69, 78, 73, 211, 76, 69, 78, 71, 84, - 72, 69, 78, 69, 82, 128, 76, 69, 78, 71, 84, 72, 45, 55, 128, 76, 69, 78, - 71, 84, 72, 45, 54, 128, 76, 69, 78, 71, 84, 72, 45, 53, 128, 76, 69, 78, - 71, 84, 72, 45, 52, 128, 76, 69, 78, 71, 84, 72, 45, 51, 128, 76, 69, 78, - 71, 84, 72, 45, 50, 128, 76, 69, 78, 71, 84, 72, 45, 49, 128, 76, 69, 78, - 71, 84, 200, 76, 69, 78, 71, 65, 128, 76, 69, 78, 71, 193, 76, 69, 77, - 79, 78, 128, 76, 69, 77, 79, 73, 128, 76, 69, 76, 69, 84, 128, 76, 69, - 76, 69, 212, 76, 69, 203, 76, 69, 73, 77, 77, 65, 128, 76, 69, 73, 77, - 77, 193, 76, 69, 73, 128, 76, 69, 71, 83, 128, 76, 69, 71, 73, 79, 78, - 128, 76, 69, 71, 69, 84, 79, 211, 76, 69, 71, 128, 76, 69, 199, 76, 69, - 70, 84, 87, 65, 82, 68, 83, 128, 76, 69, 70, 84, 45, 84, 79, 45, 82, 73, - 71, 72, 212, 76, 69, 70, 84, 45, 83, 84, 69, 205, 76, 69, 70, 84, 45, 83, - 73, 68, 197, 76, 69, 70, 84, 45, 83, 72, 65, 68, 69, 196, 76, 69, 70, 84, - 45, 80, 79, 73, 78, 84, 73, 78, 199, 76, 69, 70, 84, 45, 76, 73, 71, 72, - 84, 69, 196, 76, 69, 70, 84, 45, 72, 65, 78, 68, 69, 196, 76, 69, 70, 84, - 45, 72, 65, 78, 196, 76, 69, 70, 84, 45, 70, 65, 67, 73, 78, 199, 76, 69, - 70, 84, 128, 76, 69, 69, 82, 65, 69, 87, 65, 128, 76, 69, 69, 75, 128, - 76, 69, 69, 69, 69, 128, 76, 69, 68, 71, 69, 82, 128, 76, 69, 65, 84, 72, - 69, 82, 128, 76, 69, 65, 78, 73, 78, 199, 76, 69, 65, 70, 217, 76, 69, - 65, 70, 128, 76, 69, 65, 198, 76, 69, 65, 68, 69, 82, 128, 76, 69, 65, - 196, 76, 68, 65, 78, 128, 76, 68, 50, 128, 76, 67, 201, 76, 67, 197, 76, - 65, 90, 217, 76, 65, 89, 65, 78, 78, 65, 128, 76, 65, 88, 128, 76, 65, - 87, 128, 76, 65, 215, 76, 65, 85, 76, 65, 128, 76, 65, 85, 75, 65, 218, - 76, 65, 85, 74, 128, 76, 65, 85, 71, 72, 73, 78, 71, 128, 76, 65, 84, 73, - 78, 65, 84, 197, 76, 65, 84, 73, 75, 128, 76, 65, 84, 69, 82, 65, 204, - 76, 65, 84, 197, 76, 65, 83, 212, 76, 65, 82, 89, 78, 71, 69, 65, 204, - 76, 65, 82, 201, 76, 65, 82, 71, 69, 83, 84, 128, 76, 65, 82, 71, 69, - 210, 76, 65, 82, 71, 69, 128, 76, 65, 82, 71, 197, 76, 65, 81, 128, 76, - 65, 80, 65, 81, 128, 76, 65, 207, 76, 65, 78, 84, 69, 82, 78, 128, 76, - 65, 78, 84, 65, 78, 71, 128, 76, 65, 78, 71, 85, 65, 71, 197, 76, 65, 78, - 69, 83, 128, 76, 65, 78, 196, 76, 65, 78, 128, 76, 65, 77, 80, 128, 76, - 65, 77, 69, 68, 72, 128, 76, 65, 77, 69, 68, 128, 76, 65, 77, 69, 196, - 76, 65, 77, 69, 128, 76, 65, 77, 197, 76, 65, 77, 68, 65, 128, 76, 65, - 77, 68, 128, 76, 65, 77, 66, 68, 193, 76, 65, 77, 65, 68, 72, 128, 76, - 65, 76, 128, 76, 65, 204, 76, 65, 75, 75, 72, 65, 78, 71, 89, 65, 79, - 128, 76, 65, 75, 72, 65, 78, 128, 76, 65, 75, 72, 128, 76, 65, 75, 200, - 76, 65, 75, 45, 55, 52, 57, 128, 76, 65, 75, 45, 55, 50, 52, 128, 76, 65, - 75, 45, 54, 54, 56, 128, 76, 65, 75, 45, 54, 52, 56, 128, 76, 65, 75, 45, - 54, 52, 184, 76, 65, 75, 45, 54, 51, 54, 128, 76, 65, 75, 45, 54, 49, 55, - 128, 76, 65, 75, 45, 54, 49, 183, 76, 65, 75, 45, 54, 48, 56, 128, 76, - 65, 75, 45, 53, 53, 48, 128, 76, 65, 75, 45, 52, 57, 53, 128, 76, 65, 75, - 45, 52, 57, 51, 128, 76, 65, 75, 45, 52, 57, 50, 128, 76, 65, 75, 45, 52, - 57, 48, 128, 76, 65, 75, 45, 52, 56, 51, 128, 76, 65, 75, 45, 52, 55, 48, - 128, 76, 65, 75, 45, 52, 53, 55, 128, 76, 65, 75, 45, 52, 53, 48, 128, - 76, 65, 75, 45, 52, 52, 57, 128, 76, 65, 75, 45, 52, 52, 185, 76, 65, 75, - 45, 52, 52, 49, 128, 76, 65, 75, 45, 51, 57, 48, 128, 76, 65, 75, 45, 51, - 56, 52, 128, 76, 65, 75, 45, 51, 56, 51, 128, 76, 65, 75, 45, 51, 52, 56, - 128, 76, 65, 75, 45, 51, 52, 55, 128, 76, 65, 75, 45, 51, 52, 51, 128, - 76, 65, 75, 45, 50, 54, 54, 128, 76, 65, 75, 45, 50, 54, 53, 128, 76, 65, - 75, 45, 50, 51, 56, 128, 76, 65, 75, 45, 50, 50, 56, 128, 76, 65, 75, 45, - 50, 50, 53, 128, 76, 65, 75, 45, 50, 50, 48, 128, 76, 65, 75, 45, 50, 49, - 57, 128, 76, 65, 75, 45, 50, 49, 48, 128, 76, 65, 75, 45, 49, 52, 50, - 128, 76, 65, 75, 45, 49, 51, 48, 128, 76, 65, 75, 45, 48, 57, 50, 128, - 76, 65, 75, 45, 48, 56, 49, 128, 76, 65, 75, 45, 48, 56, 177, 76, 65, 75, - 45, 48, 56, 48, 128, 76, 65, 75, 45, 48, 55, 185, 76, 65, 75, 45, 48, 54, - 50, 128, 76, 65, 75, 45, 48, 53, 49, 128, 76, 65, 75, 45, 48, 53, 48, - 128, 76, 65, 75, 45, 48, 51, 48, 128, 76, 65, 75, 45, 48, 50, 53, 128, - 76, 65, 75, 45, 48, 50, 49, 128, 76, 65, 75, 45, 48, 50, 48, 128, 76, 65, - 75, 45, 48, 48, 51, 128, 76, 65, 74, 65, 78, 89, 65, 76, 65, 78, 128, 76, - 65, 73, 78, 199, 76, 65, 201, 76, 65, 72, 83, 72, 85, 128, 76, 65, 72, - 128, 76, 65, 71, 85, 83, 128, 76, 65, 71, 213, 76, 65, 71, 65, 82, 128, - 76, 65, 71, 65, 210, 76, 65, 71, 65, 66, 128, 76, 65, 71, 65, 194, 76, - 65, 69, 86, 128, 76, 65, 69, 128, 76, 65, 68, 217, 76, 65, 68, 68, 69, - 82, 128, 76, 65, 67, 82, 79, 83, 83, 197, 76, 65, 67, 75, 128, 76, 65, - 67, 65, 128, 76, 65, 66, 79, 85, 82, 73, 78, 71, 128, 76, 65, 66, 79, 82, - 128, 76, 65, 66, 73, 65, 76, 73, 90, 65, 84, 73, 79, 206, 76, 65, 66, 73, - 65, 204, 76, 65, 66, 69, 76, 128, 76, 65, 66, 65, 84, 128, 76, 65, 194, - 76, 65, 65, 78, 65, 69, 128, 76, 65, 65, 78, 128, 76, 65, 65, 77, 85, - 128, 76, 65, 65, 73, 128, 76, 54, 128, 76, 52, 128, 76, 51, 128, 76, 50, - 128, 76, 48, 48, 54, 65, 128, 76, 48, 48, 50, 65, 128, 76, 45, 84, 89, - 80, 197, 76, 45, 83, 72, 65, 80, 69, 196, 75, 89, 85, 82, 73, 73, 128, - 75, 89, 85, 128, 75, 89, 79, 128, 75, 89, 76, 73, 83, 77, 65, 128, 75, - 89, 73, 128, 75, 89, 69, 128, 75, 89, 65, 84, 72, 79, 211, 75, 89, 65, - 65, 128, 75, 89, 65, 128, 75, 88, 87, 73, 128, 75, 88, 87, 69, 69, 128, - 75, 88, 87, 69, 128, 75, 88, 87, 65, 65, 128, 75, 88, 87, 65, 128, 75, - 88, 85, 128, 75, 88, 79, 128, 75, 88, 73, 128, 75, 88, 69, 69, 128, 75, - 88, 69, 128, 75, 88, 65, 65, 128, 75, 88, 65, 128, 75, 87, 86, 128, 75, - 87, 85, 51, 49, 56, 128, 75, 87, 79, 79, 128, 75, 87, 79, 128, 75, 87, - 77, 128, 75, 87, 73, 73, 128, 75, 87, 73, 128, 75, 87, 69, 69, 128, 75, - 87, 69, 128, 75, 87, 66, 128, 75, 87, 65, 89, 128, 75, 87, 65, 69, 84, - 128, 75, 87, 65, 65, 128, 75, 86, 65, 128, 75, 86, 128, 75, 85, 90, 72, - 73, 128, 75, 85, 88, 128, 75, 85, 86, 128, 75, 85, 85, 72, 128, 75, 85, - 84, 128, 75, 85, 83, 77, 65, 128, 75, 85, 83, 72, 85, 50, 128, 75, 85, - 83, 72, 85, 178, 75, 85, 82, 88, 128, 75, 85, 82, 85, 90, 69, 73, 82, 79, - 128, 75, 85, 82, 84, 128, 75, 85, 82, 79, 79, 78, 69, 128, 75, 85, 82, - 128, 75, 85, 210, 75, 85, 81, 128, 75, 85, 80, 78, 65, 89, 65, 128, 75, - 85, 79, 88, 128, 75, 85, 79, 80, 128, 75, 85, 79, 208, 75, 85, 79, 77, - 128, 75, 85, 79, 128, 75, 85, 78, 71, 128, 75, 85, 78, 68, 68, 65, 76, - 73, 89, 65, 128, 75, 85, 76, 128, 75, 85, 204, 75, 85, 71, 128, 75, 85, - 70, 73, 83, 77, 65, 128, 75, 85, 69, 84, 128, 75, 85, 66, 128, 75, 85, - 65, 86, 128, 75, 85, 65, 66, 128, 75, 85, 65, 128, 75, 85, 55, 128, 75, - 85, 52, 128, 75, 85, 180, 75, 85, 51, 128, 75, 85, 179, 75, 85, 45, 55, - 128, 75, 85, 45, 54, 128, 75, 85, 45, 53, 128, 75, 85, 45, 52, 128, 75, - 85, 45, 51, 128, 75, 85, 45, 50, 128, 75, 85, 45, 49, 128, 75, 84, 128, - 75, 83, 83, 85, 85, 128, 75, 83, 83, 85, 128, 75, 83, 83, 79, 79, 128, - 75, 83, 83, 79, 128, 75, 83, 83, 73, 73, 128, 75, 83, 83, 73, 128, 75, - 83, 83, 69, 69, 128, 75, 83, 83, 69, 128, 75, 83, 83, 65, 85, 128, 75, - 83, 83, 65, 73, 128, 75, 83, 83, 65, 65, 128, 75, 83, 83, 65, 128, 75, - 83, 83, 128, 75, 83, 73, 128, 75, 82, 89, 90, 72, 69, 86, 65, 89, 65, - 128, 75, 82, 89, 90, 72, 69, 77, 128, 75, 82, 89, 90, 72, 69, 205, 75, - 82, 89, 90, 72, 128, 75, 82, 89, 90, 200, 75, 82, 89, 85, 75, 79, 86, 65, - 89, 65, 128, 75, 82, 89, 85, 75, 79, 86, 65, 89, 193, 75, 82, 89, 85, 75, - 128, 75, 82, 89, 85, 203, 75, 82, 79, 78, 79, 83, 128, 75, 82, 69, 77, - 65, 83, 84, 73, 128, 75, 82, 65, 84, 73, 77, 79, 89, 80, 79, 82, 82, 79, - 79, 78, 128, 75, 82, 65, 84, 73, 77, 79, 75, 79, 85, 70, 73, 83, 77, 65, - 128, 75, 82, 65, 84, 73, 77, 65, 84, 65, 128, 75, 82, 65, 84, 73, 77, - 193, 75, 80, 85, 128, 75, 80, 79, 81, 128, 75, 80, 79, 79, 128, 75, 80, - 79, 128, 75, 80, 73, 128, 75, 80, 69, 85, 88, 128, 75, 80, 69, 69, 128, - 75, 80, 69, 128, 75, 80, 65, 82, 65, 81, 128, 75, 80, 65, 78, 128, 75, - 80, 65, 72, 128, 75, 80, 65, 128, 75, 80, 128, 75, 79, 88, 128, 75, 79, - 86, 85, 85, 128, 75, 79, 86, 128, 75, 79, 84, 79, 128, 75, 79, 82, 85, - 78, 65, 128, 75, 79, 82, 79, 78, 73, 83, 128, 75, 79, 82, 79, 78, 128, - 75, 79, 82, 69, 65, 206, 75, 79, 82, 65, 78, 73, 195, 75, 79, 81, 78, 68, - 79, 78, 128, 75, 79, 80, 80, 65, 128, 75, 79, 80, 128, 75, 79, 79, 86, - 128, 75, 79, 79, 80, 79, 128, 75, 79, 79, 77, 85, 85, 84, 128, 75, 79, - 79, 66, 128, 75, 79, 79, 128, 75, 79, 78, 84, 69, 86, 77, 65, 128, 75, - 79, 78, 84, 69, 86, 77, 193, 75, 79, 77, 201, 75, 79, 77, 66, 85, 86, 65, - 128, 75, 79, 77, 66, 85, 86, 193, 75, 79, 77, 66, 213, 75, 79, 75, 79, - 128, 75, 79, 75, 69, 128, 75, 79, 75, 128, 75, 79, 203, 75, 79, 73, 78, - 73, 128, 75, 79, 73, 128, 75, 79, 201, 75, 79, 72, 128, 75, 79, 71, 72, - 79, 77, 128, 75, 79, 69, 84, 128, 75, 79, 66, 89, 76, 65, 128, 75, 79, - 66, 128, 75, 79, 65, 76, 65, 128, 75, 79, 65, 128, 75, 79, 45, 75, 73, - 128, 75, 79, 45, 51, 128, 75, 79, 45, 50, 128, 75, 79, 45, 49, 128, 75, - 78, 85, 67, 75, 76, 69, 83, 128, 75, 78, 85, 67, 75, 76, 69, 128, 75, 78, - 79, 84, 128, 75, 78, 79, 66, 83, 128, 75, 78, 73, 71, 72, 84, 45, 82, 79, - 79, 75, 128, 75, 78, 73, 71, 72, 84, 45, 81, 85, 69, 69, 78, 128, 75, 78, - 73, 71, 72, 84, 45, 66, 73, 83, 72, 79, 80, 128, 75, 78, 73, 71, 72, 84, - 128, 75, 78, 73, 71, 72, 212, 75, 78, 73, 70, 69, 128, 75, 78, 73, 70, - 197, 75, 78, 69, 69, 76, 73, 78, 199, 75, 77, 128, 75, 205, 75, 76, 89, - 85, 67, 72, 69, 86, 79, 89, 128, 75, 76, 89, 85, 67, 72, 69, 86, 65, 89, - 65, 128, 75, 76, 89, 85, 67, 72, 69, 86, 65, 89, 193, 75, 76, 89, 85, 67, - 72, 69, 80, 79, 86, 79, 68, 78, 89, 128, 75, 76, 89, 85, 67, 72, 69, 80, - 79, 86, 79, 68, 78, 65, 89, 65, 128, 75, 76, 89, 85, 67, 72, 69, 78, 69, - 80, 79, 83, 84, 79, 89, 65, 78, 78, 89, 128, 75, 76, 89, 85, 67, 72, 69, - 78, 69, 80, 79, 83, 84, 79, 89, 65, 78, 78, 65, 89, 65, 128, 75, 76, 89, - 85, 67, 72, 128, 75, 76, 73, 84, 79, 78, 128, 75, 76, 65, 83, 77, 65, - 128, 75, 76, 65, 83, 77, 193, 75, 76, 65, 128, 75, 76, 128, 75, 75, 79, - 128, 75, 75, 73, 128, 75, 75, 69, 69, 128, 75, 75, 69, 128, 75, 75, 65, - 128, 75, 75, 128, 75, 74, 69, 128, 75, 73, 89, 69, 79, 75, 45, 84, 73, - 75, 69, 85, 84, 128, 75, 73, 89, 69, 79, 75, 45, 83, 73, 79, 83, 45, 75, - 73, 89, 69, 79, 75, 128, 75, 73, 89, 69, 79, 75, 45, 82, 73, 69, 85, 76, - 128, 75, 73, 89, 69, 79, 75, 45, 80, 73, 69, 85, 80, 128, 75, 73, 89, 69, - 79, 75, 45, 78, 73, 69, 85, 78, 128, 75, 73, 89, 69, 79, 75, 45, 75, 72, - 73, 69, 85, 75, 72, 128, 75, 73, 89, 69, 79, 75, 45, 67, 72, 73, 69, 85, - 67, 72, 128, 75, 73, 89, 69, 79, 203, 75, 73, 88, 128, 75, 73, 87, 73, - 70, 82, 85, 73, 84, 128, 75, 73, 87, 128, 75, 73, 86, 128, 75, 73, 84, - 69, 128, 75, 73, 84, 128, 75, 73, 83, 83, 73, 78, 199, 75, 73, 83, 83, - 128, 75, 73, 83, 211, 75, 73, 83, 73, 77, 53, 128, 75, 73, 83, 73, 77, - 181, 75, 73, 83, 72, 128, 75, 73, 83, 65, 76, 128, 75, 73, 82, 79, 87, - 65, 84, 84, 79, 128, 75, 73, 82, 79, 77, 69, 69, 84, 79, 82, 85, 128, 75, - 73, 82, 79, 71, 85, 82, 65, 77, 85, 128, 75, 73, 82, 79, 128, 75, 73, 82, - 71, 72, 73, 218, 75, 73, 81, 128, 75, 73, 80, 128, 75, 73, 208, 75, 73, - 78, 83, 72, 73, 80, 128, 75, 73, 78, 78, 193, 75, 73, 78, 68, 69, 82, 71, - 65, 82, 84, 69, 78, 128, 75, 73, 77, 79, 78, 79, 128, 75, 73, 76, 76, 69, - 82, 128, 75, 73, 73, 90, 72, 128, 75, 73, 73, 128, 75, 73, 72, 128, 75, - 73, 69, 88, 128, 75, 73, 69, 86, 65, 206, 75, 73, 69, 80, 128, 75, 73, - 69, 69, 77, 128, 75, 73, 69, 128, 75, 73, 68, 128, 75, 73, 196, 75, 73, - 67, 75, 128, 75, 73, 66, 128, 75, 73, 65, 86, 128, 75, 73, 65, 66, 128, - 75, 73, 45, 56, 128, 75, 73, 45, 55, 128, 75, 73, 45, 54, 128, 75, 73, - 45, 53, 128, 75, 73, 45, 52, 128, 75, 73, 45, 51, 128, 75, 73, 45, 50, - 128, 75, 73, 45, 49, 128, 75, 72, 90, 128, 75, 72, 87, 65, 73, 128, 75, - 72, 85, 69, 78, 45, 76, 85, 197, 75, 72, 85, 69, 206, 75, 72, 85, 68, 65, - 87, 65, 68, 201, 75, 72, 85, 68, 65, 77, 128, 75, 72, 85, 65, 84, 128, - 75, 72, 79, 85, 128, 75, 72, 79, 212, 75, 72, 79, 78, 78, 65, 128, 75, - 72, 79, 78, 128, 75, 72, 79, 77, 85, 84, 128, 75, 72, 79, 75, 72, 76, 79, - 205, 75, 72, 79, 74, 75, 201, 75, 72, 79, 128, 75, 72, 207, 75, 72, 77, - 213, 75, 72, 73, 84, 128, 75, 72, 73, 78, 89, 65, 128, 75, 72, 73, 69, - 85, 75, 200, 75, 72, 73, 128, 75, 72, 201, 75, 72, 72, 79, 128, 75, 72, - 72, 65, 128, 75, 72, 69, 84, 72, 128, 75, 72, 69, 73, 128, 75, 72, 69, - 69, 128, 75, 72, 69, 128, 75, 72, 65, 86, 128, 75, 72, 65, 82, 79, 83, - 72, 84, 72, 201, 75, 72, 65, 82, 128, 75, 72, 65, 80, 72, 128, 75, 72, - 65, 78, 199, 75, 72, 65, 78, 68, 193, 75, 72, 65, 77, 84, 201, 75, 72, - 65, 77, 73, 76, 79, 128, 75, 72, 65, 75, 65, 83, 83, 73, 65, 206, 75, 72, - 65, 73, 128, 75, 72, 65, 72, 128, 75, 72, 65, 200, 75, 72, 65, 70, 128, - 75, 72, 65, 66, 128, 75, 72, 65, 65, 128, 75, 71, 128, 75, 69, 89, 67, - 65, 80, 128, 75, 69, 89, 67, 65, 208, 75, 69, 89, 66, 79, 65, 82, 68, - 128, 75, 69, 89, 66, 79, 65, 82, 196, 75, 69, 88, 128, 75, 69, 86, 128, - 75, 69, 85, 89, 69, 85, 88, 128, 75, 69, 85, 83, 72, 69, 85, 65, 69, 80, - 128, 75, 69, 85, 83, 69, 85, 88, 128, 75, 69, 85, 80, 85, 81, 128, 75, - 69, 85, 79, 212, 75, 69, 85, 77, 128, 75, 69, 85, 75, 69, 85, 84, 78, 68, - 65, 128, 75, 69, 85, 75, 65, 81, 128, 75, 69, 85, 65, 69, 84, 77, 69, 85, - 78, 128, 75, 69, 85, 65, 69, 82, 73, 128, 75, 69, 84, 84, 201, 75, 69, - 83, 72, 50, 128, 75, 69, 82, 69, 84, 128, 75, 69, 79, 87, 128, 75, 69, - 78, 84, 73, 77, 65, 84, 65, 128, 75, 69, 78, 84, 73, 77, 65, 84, 193, 75, - 69, 78, 84, 73, 77, 193, 75, 69, 78, 65, 84, 128, 75, 69, 78, 128, 75, - 69, 206, 75, 69, 77, 80, 85, 76, 128, 75, 69, 77, 80, 85, 204, 75, 69, - 77, 80, 76, 73, 128, 75, 69, 77, 80, 76, 201, 75, 69, 77, 80, 72, 82, 69, - 78, 71, 128, 75, 69, 77, 66, 65, 78, 71, 128, 75, 69, 76, 86, 73, 206, - 75, 69, 72, 69, 72, 128, 75, 69, 72, 69, 200, 75, 69, 72, 128, 75, 69, - 70, 85, 76, 65, 128, 75, 69, 69, 86, 128, 75, 69, 69, 83, 85, 128, 75, - 69, 69, 80, 73, 78, 199, 75, 69, 69, 78, 71, 128, 75, 69, 69, 66, 128, - 75, 69, 66, 128, 75, 69, 65, 65, 69, 128, 75, 67, 65, 76, 128, 75, 66, - 128, 75, 65, 90, 65, 75, 200, 75, 65, 89, 65, 78, 78, 65, 128, 75, 65, - 89, 65, 200, 75, 65, 88, 128, 75, 65, 87, 86, 128, 75, 65, 87, 73, 128, - 75, 65, 87, 66, 128, 75, 65, 86, 89, 75, 65, 128, 75, 65, 86, 89, 75, - 193, 75, 65, 86, 128, 75, 65, 85, 86, 128, 75, 65, 85, 78, 65, 128, 75, - 65, 85, 206, 75, 65, 85, 66, 128, 75, 65, 84, 79, 128, 75, 65, 84, 72, - 73, 83, 84, 73, 128, 75, 65, 84, 72, 65, 75, 193, 75, 65, 84, 65, 86, 65, - 83, 77, 65, 128, 75, 65, 84, 65, 86, 193, 75, 65, 84, 65, 75, 65, 78, 65, - 45, 72, 73, 82, 65, 71, 65, 78, 193, 75, 65, 83, 82, 65, 84, 65, 78, 128, - 75, 65, 83, 82, 65, 84, 65, 206, 75, 65, 83, 82, 65, 128, 75, 65, 83, 82, - 193, 75, 65, 83, 75, 65, 76, 128, 75, 65, 83, 75, 65, 204, 75, 65, 83, - 72, 77, 73, 82, 201, 75, 65, 82, 83, 72, 65, 78, 65, 128, 75, 65, 82, 79, - 82, 73, 73, 128, 75, 65, 82, 79, 82, 65, 78, 128, 75, 65, 82, 79, 82, - 128, 75, 65, 82, 207, 75, 65, 82, 69, 206, 75, 65, 82, 65, 84, 84, 79, - 128, 75, 65, 82, 65, 78, 128, 75, 65, 80, 89, 69, 79, 85, 78, 83, 83, 65, - 78, 71, 80, 73, 69, 85, 80, 128, 75, 65, 80, 89, 69, 79, 85, 78, 82, 73, - 69, 85, 76, 128, 75, 65, 80, 89, 69, 79, 85, 78, 80, 72, 73, 69, 85, 80, - 72, 128, 75, 65, 80, 89, 69, 79, 85, 78, 77, 73, 69, 85, 77, 128, 75, 65, - 80, 80, 65, 128, 75, 65, 80, 80, 193, 75, 65, 80, 79, 128, 75, 65, 80, - 72, 128, 75, 65, 80, 65, 76, 128, 75, 65, 80, 65, 128, 75, 65, 208, 75, - 65, 78, 84, 65, 74, 193, 75, 65, 78, 78, 65, 68, 193, 75, 65, 78, 71, 65, - 82, 79, 79, 128, 75, 65, 78, 71, 128, 75, 65, 78, 199, 75, 65, 78, 65, - 75, 79, 128, 75, 65, 77, 52, 128, 75, 65, 77, 50, 128, 75, 65, 77, 128, - 75, 65, 75, 79, 128, 75, 65, 75, 65, 66, 65, 84, 128, 75, 65, 75, 128, - 75, 65, 203, 75, 65, 73, 86, 128, 75, 65, 73, 84, 72, 201, 75, 65, 73, - 82, 73, 128, 75, 65, 73, 66, 128, 75, 65, 73, 128, 75, 65, 201, 75, 65, - 70, 65, 128, 75, 65, 70, 128, 75, 65, 198, 75, 65, 68, 53, 128, 75, 65, - 68, 181, 75, 65, 68, 52, 128, 75, 65, 68, 51, 128, 75, 65, 68, 179, 75, - 65, 68, 50, 128, 75, 65, 68, 128, 75, 65, 67, 72, 75, 65, 128, 75, 65, - 66, 193, 75, 65, 66, 128, 75, 65, 65, 86, 128, 75, 65, 65, 73, 128, 75, - 65, 65, 70, 85, 128, 75, 65, 65, 70, 128, 75, 65, 65, 67, 85, 128, 75, - 65, 65, 66, 65, 128, 75, 65, 65, 66, 128, 75, 65, 50, 128, 75, 65, 178, - 75, 65, 45, 75, 69, 128, 75, 65, 45, 57, 128, 75, 65, 45, 56, 128, 75, - 65, 45, 55, 128, 75, 65, 45, 54, 128, 75, 65, 45, 53, 128, 75, 65, 45, - 52, 128, 75, 65, 45, 51, 128, 75, 65, 45, 50, 128, 75, 65, 45, 49, 49, - 128, 75, 65, 45, 49, 48, 128, 75, 65, 45, 49, 128, 75, 48, 48, 56, 128, - 75, 48, 48, 55, 128, 75, 48, 48, 54, 128, 75, 48, 48, 53, 128, 75, 48, - 48, 52, 128, 75, 48, 48, 51, 128, 75, 48, 48, 50, 128, 75, 48, 48, 49, - 128, 74, 87, 65, 128, 74, 85, 85, 128, 74, 85, 84, 128, 74, 85, 83, 84, - 73, 70, 73, 67, 65, 84, 73, 79, 78, 128, 74, 85, 80, 73, 84, 69, 82, 128, - 74, 85, 79, 84, 128, 74, 85, 79, 80, 128, 74, 85, 78, 79, 128, 74, 85, - 78, 71, 83, 69, 79, 78, 199, 74, 85, 78, 69, 128, 74, 85, 76, 89, 128, - 74, 85, 71, 71, 76, 73, 78, 71, 128, 74, 85, 69, 85, 73, 128, 74, 85, 68, - 85, 76, 128, 74, 85, 68, 71, 69, 128, 74, 85, 68, 69, 79, 45, 83, 80, 65, - 78, 73, 83, 200, 74, 79, 89, 83, 84, 73, 67, 75, 128, 74, 79, 89, 79, 85, - 211, 74, 79, 89, 128, 74, 79, 86, 69, 128, 74, 79, 212, 74, 79, 78, 71, - 128, 74, 79, 78, 193, 74, 79, 75, 69, 82, 128, 74, 79, 73, 78, 84, 83, - 128, 74, 79, 73, 78, 69, 68, 128, 74, 79, 73, 78, 128, 74, 79, 65, 128, - 74, 78, 89, 65, 128, 74, 74, 89, 88, 128, 74, 74, 89, 84, 128, 74, 74, - 89, 80, 128, 74, 74, 89, 128, 74, 74, 85, 88, 128, 74, 74, 85, 84, 128, - 74, 74, 85, 82, 88, 128, 74, 74, 85, 82, 128, 74, 74, 85, 80, 128, 74, - 74, 85, 79, 88, 128, 74, 74, 85, 79, 80, 128, 74, 74, 85, 79, 128, 74, - 74, 85, 128, 74, 74, 79, 88, 128, 74, 74, 79, 84, 128, 74, 74, 79, 80, - 128, 74, 74, 79, 128, 74, 74, 73, 88, 128, 74, 74, 73, 84, 128, 74, 74, - 73, 80, 128, 74, 74, 73, 69, 88, 128, 74, 74, 73, 69, 84, 128, 74, 74, - 73, 69, 80, 128, 74, 74, 73, 69, 128, 74, 74, 73, 128, 74, 74, 69, 69, - 128, 74, 74, 69, 128, 74, 74, 65, 128, 74, 73, 76, 128, 74, 73, 73, 77, - 128, 74, 73, 73, 128, 74, 73, 72, 86, 65, 77, 85, 76, 73, 89, 65, 128, - 74, 73, 71, 83, 65, 215, 74, 73, 65, 128, 74, 72, 79, 88, 128, 74, 72, - 79, 128, 74, 72, 69, 72, 128, 74, 72, 65, 89, 73, 78, 128, 74, 72, 65, - 78, 128, 74, 72, 65, 77, 128, 74, 72, 65, 65, 128, 74, 72, 65, 128, 74, - 69, 85, 128, 74, 69, 82, 85, 83, 65, 76, 69, 77, 128, 74, 69, 82, 65, - 206, 74, 69, 82, 65, 128, 74, 69, 82, 128, 74, 69, 72, 128, 74, 69, 200, - 74, 69, 71, 79, 71, 65, 78, 128, 74, 69, 69, 77, 128, 74, 69, 69, 205, - 74, 69, 65, 78, 83, 128, 74, 65, 89, 78, 128, 74, 65, 89, 73, 78, 128, - 74, 65, 89, 65, 78, 78, 65, 128, 74, 65, 87, 128, 74, 65, 86, 73, 89, 65, - 78, 73, 128, 74, 65, 86, 65, 78, 69, 83, 197, 74, 65, 85, 128, 74, 65, - 82, 128, 74, 65, 80, 65, 78, 69, 83, 197, 74, 65, 80, 65, 78, 128, 74, - 65, 78, 85, 65, 82, 89, 128, 74, 65, 76, 76, 65, 74, 65, 76, 65, 76, 79, - 85, 72, 79, 85, 128, 74, 65, 76, 76, 128, 74, 65, 73, 206, 74, 65, 73, - 128, 74, 65, 72, 128, 74, 65, 68, 69, 128, 74, 65, 67, 75, 83, 128, 74, - 65, 67, 75, 45, 79, 45, 76, 65, 78, 84, 69, 82, 78, 128, 74, 65, 67, 203, - 74, 45, 83, 73, 77, 80, 76, 73, 70, 73, 69, 196, 73, 90, 72, 73, 84, 83, - 65, 128, 73, 90, 72, 73, 84, 83, 193, 73, 90, 72, 69, 128, 73, 90, 65, - 75, 65, 89, 193, 73, 89, 69, 75, 128, 73, 89, 65, 78, 78, 65, 128, 73, - 85, 74, 65, 128, 73, 84, 211, 73, 84, 69, 82, 65, 84, 73, 79, 206, 73, - 84, 69, 77, 128, 73, 83, 83, 72, 65, 82, 128, 73, 83, 79, 83, 67, 69, 76, - 69, 211, 73, 83, 79, 78, 128, 73, 83, 79, 206, 73, 83, 79, 76, 65, 84, - 69, 128, 73, 83, 76, 65, 78, 68, 128, 73, 83, 72, 77, 65, 65, 77, 128, - 73, 83, 69, 78, 45, 73, 83, 69, 78, 128, 73, 83, 65, 75, 73, 193, 73, 83, - 45, 80, 73, 76, 76, 65, 128, 73, 82, 85, 89, 65, 78, 78, 65, 128, 73, 82, - 85, 85, 89, 65, 78, 78, 65, 128, 73, 82, 79, 78, 45, 67, 79, 80, 80, 69, - 210, 73, 82, 79, 78, 128, 73, 82, 66, 128, 73, 79, 84, 73, 70, 73, 69, - 196, 73, 79, 84, 65, 84, 69, 196, 73, 79, 84, 65, 128, 73, 79, 84, 193, - 73, 79, 82, 128, 73, 79, 78, 71, 128, 73, 79, 68, 72, 65, 68, 72, 128, - 73, 78, 86, 73, 83, 73, 66, 76, 197, 73, 78, 86, 69, 82, 84, 69, 68, 128, - 73, 78, 86, 69, 82, 84, 69, 196, 73, 78, 86, 69, 82, 84, 69, 66, 82, 65, - 84, 69, 128, 73, 78, 86, 69, 82, 83, 197, 73, 78, 84, 82, 79, 68, 85, 67, - 69, 82, 128, 73, 78, 84, 73, 128, 73, 78, 84, 69, 82, 83, 89, 76, 76, 65, - 66, 73, 195, 73, 78, 84, 69, 82, 83, 69, 67, 84, 73, 79, 78, 128, 73, 78, - 84, 69, 82, 83, 69, 67, 84, 73, 79, 206, 73, 78, 84, 69, 82, 83, 69, 67, - 84, 73, 78, 199, 73, 78, 84, 69, 82, 82, 79, 66, 65, 78, 71, 128, 73, 78, - 84, 69, 82, 82, 79, 66, 65, 78, 199, 73, 78, 84, 69, 82, 80, 79, 76, 65, - 84, 73, 79, 206, 73, 78, 84, 69, 82, 76, 79, 67, 75, 69, 196, 73, 78, 84, - 69, 82, 76, 73, 78, 69, 65, 210, 73, 78, 84, 69, 82, 76, 65, 67, 69, 196, - 73, 78, 84, 69, 82, 73, 79, 210, 73, 78, 84, 69, 82, 69, 83, 212, 73, 78, - 84, 69, 82, 67, 65, 76, 65, 84, 69, 128, 73, 78, 84, 69, 71, 82, 65, 84, - 73, 79, 78, 128, 73, 78, 84, 69, 71, 82, 65, 84, 73, 79, 206, 73, 78, 84, - 69, 71, 82, 65, 76, 128, 73, 78, 84, 69, 71, 82, 65, 204, 73, 78, 83, 85, - 76, 65, 210, 73, 78, 83, 84, 82, 85, 77, 69, 78, 84, 65, 204, 73, 78, 83, - 73, 68, 69, 128, 73, 78, 83, 73, 68, 197, 73, 78, 83, 69, 82, 84, 73, 79, - 206, 73, 78, 83, 69, 82, 212, 73, 78, 83, 69, 67, 84, 128, 73, 78, 83, - 67, 82, 73, 80, 84, 73, 79, 78, 65, 204, 73, 78, 80, 85, 212, 73, 78, 78, - 79, 67, 69, 78, 67, 69, 128, 73, 78, 78, 78, 128, 73, 78, 78, 69, 82, - 128, 73, 78, 78, 69, 210, 73, 78, 78, 128, 73, 78, 73, 78, 71, 85, 128, - 73, 78, 72, 73, 66, 73, 212, 73, 78, 72, 69, 82, 69, 78, 212, 73, 78, 72, - 65, 76, 69, 128, 73, 78, 71, 87, 65, 90, 128, 73, 78, 70, 79, 82, 77, 65, - 84, 73, 79, 206, 73, 78, 70, 76, 85, 69, 78, 67, 69, 128, 73, 78, 70, 73, - 78, 73, 84, 89, 128, 73, 78, 70, 73, 78, 73, 84, 217, 73, 78, 68, 85, 83, - 84, 82, 73, 65, 204, 73, 78, 68, 73, 82, 69, 67, 212, 73, 78, 68, 73, 67, - 84, 73, 79, 206, 73, 78, 68, 73, 67, 65, 84, 79, 82, 128, 73, 78, 68, 73, - 67, 65, 84, 79, 210, 73, 78, 68, 73, 195, 73, 78, 68, 73, 65, 206, 73, - 78, 68, 69, 88, 128, 73, 78, 68, 69, 80, 69, 78, 68, 69, 78, 212, 73, 78, - 67, 82, 69, 77, 69, 78, 84, 128, 73, 78, 67, 82, 69, 65, 83, 69, 211, 73, - 78, 67, 82, 69, 65, 83, 69, 128, 73, 78, 67, 82, 69, 65, 83, 197, 73, 78, - 67, 79, 77, 80, 76, 69, 84, 197, 73, 78, 67, 79, 77, 73, 78, 199, 73, 78, - 67, 76, 85, 68, 73, 78, 199, 73, 78, 67, 72, 128, 73, 78, 66, 79, 216, - 73, 78, 65, 80, 128, 73, 78, 45, 65, 76, 65, 70, 128, 73, 77, 80, 69, 82, - 73, 65, 204, 73, 77, 80, 69, 82, 70, 69, 67, 84, 85, 205, 73, 77, 80, 69, - 82, 70, 69, 67, 84, 65, 128, 73, 77, 80, 69, 82, 70, 69, 67, 84, 193, 73, - 77, 78, 128, 73, 77, 73, 83, 69, 79, 211, 73, 77, 73, 78, 51, 128, 73, - 77, 73, 78, 128, 73, 77, 73, 206, 73, 77, 73, 70, 84, 72, 79, 82, 79, 78, - 128, 73, 77, 73, 70, 84, 72, 79, 82, 65, 128, 73, 77, 73, 70, 79, 78, 79, - 78, 128, 73, 77, 73, 68, 73, 65, 82, 71, 79, 78, 128, 73, 77, 65, 71, - 197, 73, 77, 65, 65, 76, 65, 128, 73, 76, 85, 89, 65, 78, 78, 65, 128, - 73, 76, 85, 89, 128, 73, 76, 85, 85, 89, 65, 78, 78, 65, 128, 73, 76, 85, - 84, 128, 73, 76, 73, 77, 77, 85, 52, 128, 73, 76, 73, 77, 77, 85, 51, - 128, 73, 76, 73, 77, 77, 85, 128, 73, 76, 73, 77, 77, 213, 73, 76, 50, - 128, 73, 75, 65, 82, 65, 128, 73, 75, 65, 82, 193, 73, 74, 128, 73, 73, - 89, 65, 78, 78, 65, 128, 73, 71, 73, 128, 73, 71, 201, 73, 71, 71, 87, - 83, 128, 73, 70, 73, 78, 128, 73, 69, 85, 78, 71, 45, 84, 73, 75, 69, 85, - 84, 128, 73, 69, 85, 78, 71, 45, 84, 72, 73, 69, 85, 84, 72, 128, 73, 69, - 85, 78, 71, 45, 82, 73, 69, 85, 76, 128, 73, 69, 85, 78, 71, 45, 80, 73, - 69, 85, 80, 128, 73, 69, 85, 78, 71, 45, 80, 72, 73, 69, 85, 80, 72, 128, - 73, 69, 85, 78, 71, 45, 67, 73, 69, 85, 67, 128, 73, 69, 85, 78, 71, 45, - 67, 72, 73, 69, 85, 67, 72, 128, 73, 69, 85, 78, 199, 73, 68, 76, 69, - 128, 73, 68, 73, 77, 128, 73, 68, 73, 205, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 68, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 68, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, - 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 54, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 53, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 68, 52, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 68, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 68, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, - 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 48, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 70, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 67, 69, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 67, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 67, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, - 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 65, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 57, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 67, 56, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 67, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 67, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, - 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 52, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 51, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 67, 50, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 67, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 67, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, - 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 69, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 68, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 66, 67, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 66, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 66, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, - 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 56, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 55, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 66, 54, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 66, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 66, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, - 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 50, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 49, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 66, 48, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 65, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 65, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, - 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 67, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 66, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 65, 65, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 65, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 65, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, - 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 54, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 53, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 65, 52, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 65, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 65, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, - 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 48, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 70, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 57, 69, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 57, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 57, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, - 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 65, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 57, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 57, 56, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 57, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 57, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, - 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 52, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 51, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 57, 50, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 57, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 57, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, - 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 69, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 68, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 56, 67, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 56, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 56, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, - 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 56, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 55, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 56, 54, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 56, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 56, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, - 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 50, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 49, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 56, 48, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 55, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 55, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, - 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 67, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 66, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 55, 65, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 55, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 55, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, - 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 54, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 53, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 55, 52, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 55, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 55, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, - 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 48, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 68, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 54, 67, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 54, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 54, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, - 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 56, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 55, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 54, 54, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 54, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 54, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, - 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 50, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 49, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 54, 48, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 53, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 53, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, - 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 67, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 66, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 53, 65, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 53, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 53, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, - 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 54, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 53, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 53, 52, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 53, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 53, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, - 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 48, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 70, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 52, 69, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 52, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 52, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, - 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 65, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 57, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 52, 56, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 52, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 52, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, - 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 52, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 51, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 52, 50, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 52, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 52, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, - 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 69, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 68, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 51, 67, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 51, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 51, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, - 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 56, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 55, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 51, 54, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 51, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 51, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, - 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 50, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 49, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 51, 48, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 50, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 50, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, - 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 67, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 66, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 50, 65, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 50, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, - 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 54, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 53, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 50, 52, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 50, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 50, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, - 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 48, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 70, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 49, 69, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 49, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, - 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 65, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 57, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 49, 56, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 49, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 49, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, - 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 52, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 51, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 49, 50, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 49, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 49, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, - 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 69, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 68, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 48, 67, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 48, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 48, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, - 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 56, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 55, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 48, 54, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 65, 48, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 65, 48, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, - 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 50, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 49, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 65, 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 70, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 70, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, - 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 67, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 66, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 70, 65, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 70, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 70, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, - 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 54, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 53, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 70, 52, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 70, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 70, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, - 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 48, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 70, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 69, 69, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 69, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 69, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, - 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 65, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 57, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 69, 56, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 69, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 69, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, - 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 52, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 51, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 69, 50, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 69, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 69, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, - 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 69, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 68, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 68, 67, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 68, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 68, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, - 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 56, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 55, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 68, 54, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 68, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 68, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, - 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 50, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 49, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 68, 48, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 67, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 67, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, - 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 67, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 66, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 67, 65, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 67, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 67, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, - 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 54, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 53, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 67, 52, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 67, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 67, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, - 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 48, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 70, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 66, 69, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 66, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 66, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, - 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 65, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 57, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 66, 56, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 66, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 66, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, - 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 52, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 51, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 66, 50, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 66, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 66, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, - 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 69, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 68, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 65, 67, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 65, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 65, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, - 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 56, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 55, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 65, 54, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 65, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 65, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, - 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 50, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 49, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 65, 48, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 57, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 57, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, - 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 67, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 66, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 57, 65, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 57, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 57, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, - 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 54, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 53, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 57, 52, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 57, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 57, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, - 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 48, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 70, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 56, 69, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 56, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 56, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, - 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 65, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 57, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 56, 56, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 56, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 56, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, - 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 52, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 51, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 56, 50, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 56, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 56, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, - 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 69, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 68, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 55, 67, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 55, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 55, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, - 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 56, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 55, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 55, 54, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 55, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 55, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, - 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 50, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 49, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 55, 48, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 54, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 54, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, - 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 67, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 66, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 54, 65, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 54, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 54, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, - 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 54, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 53, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 54, 52, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 54, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 54, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, - 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 48, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 70, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 53, 69, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 53, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 53, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, - 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 65, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 57, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 53, 56, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 53, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 53, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, - 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 52, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 51, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 53, 50, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 53, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 53, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, - 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 69, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 68, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 52, 67, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 52, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 52, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, - 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 56, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 55, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 52, 54, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 52, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 52, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, - 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 50, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 49, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 52, 48, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 51, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 51, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, - 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 67, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 66, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 51, 65, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 51, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 51, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, - 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 54, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 53, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 51, 52, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 51, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 51, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, - 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 48, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 70, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 50, 69, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 50, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 50, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, - 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 65, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 57, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 50, 56, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 50, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 50, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, - 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 52, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 51, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 50, 50, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 50, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 50, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, - 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 69, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 68, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 49, 67, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 49, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 49, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, - 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 56, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 55, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 49, 54, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 49, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 49, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, - 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 50, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 49, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 49, 48, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 48, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 48, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, - 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 67, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 66, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 48, 65, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 48, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, - 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 54, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 53, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 70, 57, 48, 52, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 70, 57, 48, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 70, 57, 48, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, - 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 48, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 57, 49, 52, 68, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 57, 48, 52, 65, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 56, 68, 55, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 56, 67, 65, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 56, 57, 69, - 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 55, 68, 52, 50, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 55, 65, 55, 65, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 55, 57, 56, 49, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 55, 54, 68, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 55, 53, 51, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 55, 53, 49, - 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 55, 49, 50, 49, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 55, 48, 66, 57, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 54, 70, 49, 52, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 54, 69, 56, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 54, 55, 50, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 55, 48, - 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 55, 48, 56, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 54, 50, 48, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 54, 53, 66, 48, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 54, 53, 57, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 54, 53, 53, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 51, 53, - 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 51, 48, 55, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 50, 57, 53, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 54, 50, 53, 51, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 54, 50, 52, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 53, 70, 56, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 68, 69, - 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 66, 56, 57, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 66, 53, 55, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 53, 57, 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 53, 57, 49, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 53, 56, 70, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 53, 66, - 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 52, 51, 57, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 52, 48, 56, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 53, 51, 70, 51, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 53, 51, 67, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 53, 50, 68, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 50, 55, - 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 50, 52, 68, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 50, 49, 68, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 53, 49, 56, 68, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 52, 69, 65, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 52, 69, 56, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 52, 69, 50, - 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 52, 69, 48, 57, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 52, 69, 48, 48, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 68, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 65, 49, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 65, 49, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 65, 49, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 65, 49, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, - 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 55, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 54, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 53, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 52, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 65, 49, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 65, 49, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 65, 49, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 65, 49, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, - 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 69, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 68, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 67, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 66, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 65, 48, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 65, 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 65, 48, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 65, 48, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, - 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 53, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 52, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 51, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 50, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 65, 48, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 65, 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 57, 70, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 57, 70, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, - 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 67, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 66, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 65, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 57, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 57, 70, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 57, 70, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 57, 70, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 57, 70, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, - 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 51, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 50, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 49, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 48, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 57, 69, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 57, 69, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 57, 69, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 57, 69, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, - 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 65, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 57, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 56, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 55, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 57, 69, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 57, 69, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 57, 69, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 57, 69, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, - 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 49, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 48, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 70, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 69, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 57, 68, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 57, 68, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 57, 68, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 57, 68, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, - 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 56, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 55, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 54, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 53, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 57, 68, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 57, 68, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 57, 68, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 57, 68, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, - 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 70, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 69, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 68, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 67, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 57, 67, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 57, 67, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 57, 67, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 57, 67, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, - 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 54, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 53, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 52, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 51, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 57, 67, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 57, 67, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 57, 67, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 57, 66, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, - 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 68, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 67, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 66, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 65, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 57, 66, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 57, 66, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 57, 66, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 57, 66, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, - 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 52, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 51, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 50, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 49, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 57, 66, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 57, 65, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 57, 65, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 57, 65, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, - 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 66, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 65, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 57, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 56, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 57, 65, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 57, 65, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 57, 65, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 57, 65, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, - 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 50, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 49, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 48, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 70, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 57, 57, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 57, 57, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 57, 57, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 57, 57, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, - 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 57, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 56, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 55, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 54, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 57, 57, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 57, 57, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 57, 57, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 57, 57, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, - 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 48, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 70, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 69, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 68, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 57, 56, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 57, 56, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 57, 56, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 57, 56, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, - 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 55, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 54, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 53, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 52, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 57, 56, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 57, 56, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 57, 56, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 57, 56, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, - 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 69, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 68, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 67, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 66, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 57, 55, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 57, 55, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 57, 55, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 57, 55, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, - 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 53, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 52, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 51, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 50, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 57, 55, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 57, 55, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 57, 54, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 57, 54, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, - 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 67, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 66, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 65, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 57, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 57, 54, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 57, 54, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 57, 54, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 57, 54, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, - 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 51, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 50, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 49, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 48, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 57, 53, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 57, 53, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 57, 53, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 57, 53, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, - 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 65, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 57, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 56, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 55, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 57, 53, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 57, 53, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 57, 53, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 57, 53, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, - 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 49, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 48, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 70, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 69, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 57, 52, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 57, 52, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 57, 52, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 57, 52, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, - 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 56, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 55, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 54, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 53, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 57, 52, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 57, 52, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 57, 52, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 57, 52, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, - 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 70, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 69, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 68, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 67, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 57, 51, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 57, 51, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 57, 51, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 57, 51, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, - 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 54, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 53, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 52, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 51, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 57, 51, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 57, 51, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 57, 51, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 57, 50, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, - 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 68, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 67, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 66, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 65, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 57, 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 57, 50, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 57, 50, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 57, 50, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, - 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 52, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 51, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 50, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 49, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 57, 50, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 57, 49, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 57, 49, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 57, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, - 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 66, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 65, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 57, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 56, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 57, 49, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 57, 49, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 57, 49, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 57, 49, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, - 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 50, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 49, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 48, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 70, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 57, 48, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 57, 48, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 57, 48, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 57, 48, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, - 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 57, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 56, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 55, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 54, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 57, 48, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 57, 48, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 57, 48, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 57, 48, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, - 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 48, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 70, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 69, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 68, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 56, 70, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 56, 70, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 56, 70, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 56, 70, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, - 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 55, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 54, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 53, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 52, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 56, 70, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 56, 70, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 56, 70, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 56, 70, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, - 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 69, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 68, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 67, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 66, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 56, 69, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 56, 69, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 56, 69, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 56, 69, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, - 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 53, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 52, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 51, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 50, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 56, 69, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 56, 69, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 56, 68, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 56, 68, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, - 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 67, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 66, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 65, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 57, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 56, 68, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 56, 68, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 56, 68, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 56, 68, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, - 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 51, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 50, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 49, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 48, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 56, 67, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 56, 67, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 56, 67, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 56, 67, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, - 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 65, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 57, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 56, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 55, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 56, 67, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 56, 67, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 56, 67, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 56, 67, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, - 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 49, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 48, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 70, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 69, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 56, 66, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 56, 66, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 56, 66, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 56, 66, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, - 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 56, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 55, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 54, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 53, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 56, 66, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 56, 66, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 56, 66, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 56, 66, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, - 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 70, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 69, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 68, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 67, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 56, 65, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 56, 65, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 56, 65, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 56, 65, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, - 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 54, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 53, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 52, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 51, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 56, 65, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 56, 65, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 56, 65, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 56, 57, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, - 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 68, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 67, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 66, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 65, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 56, 57, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 56, 57, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 56, 57, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 56, 57, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, - 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 52, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 51, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 50, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 49, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 56, 57, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 56, 56, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 56, 56, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 56, 56, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, - 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 66, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 65, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 57, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 56, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 56, 56, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 56, 56, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 56, 56, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 56, 56, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, - 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 50, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 49, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 48, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 70, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 56, 55, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 56, 55, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 56, 55, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 56, 55, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, - 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 57, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 56, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 55, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 54, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 56, 55, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 56, 55, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 56, 55, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 56, 55, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, - 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 48, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 70, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 69, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 68, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 56, 54, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 56, 54, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 56, 54, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 56, 54, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, - 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 55, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 54, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 53, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 52, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 56, 54, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 56, 54, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 56, 54, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 56, 54, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, - 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 69, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 68, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 67, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 66, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 56, 53, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 56, 53, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 56, 53, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 56, 53, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, - 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 53, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 52, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 51, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 50, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 56, 53, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 56, 53, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 56, 52, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 56, 52, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, - 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 67, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 66, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 65, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 57, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 56, 52, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 56, 52, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 56, 52, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 56, 52, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, - 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 51, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 50, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 49, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 48, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 56, 51, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 56, 51, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 56, 51, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 56, 51, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, - 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 65, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 57, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 56, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 55, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 56, 51, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 56, 51, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 56, 51, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 56, 51, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, - 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 49, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 48, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 70, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 69, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 56, 50, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 56, 50, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 56, 50, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 56, 50, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, - 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 56, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 55, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 54, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 53, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 56, 50, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 56, 50, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 56, 50, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 56, 50, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, - 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 70, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 69, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 68, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 67, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 56, 49, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 56, 49, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 56, 49, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 56, 49, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, - 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 54, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 53, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 52, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 51, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 56, 49, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 56, 49, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 56, 49, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 56, 48, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, - 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 68, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 67, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 66, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 65, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 56, 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 50, 70, 56, 48, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, - 50, 70, 56, 48, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, - 56, 48, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, - 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 52, 128, - 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 51, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 50, 128, 73, 68, 69, 79, - 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 49, 128, 73, 68, 69, 79, 71, 82, - 65, 80, 72, 45, 50, 70, 56, 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 200, 73, 68, 69, 78, 84, 73, 70, 73, 67, 65, 84, 73, 79, 78, 128, 73, 68, - 69, 78, 84, 73, 70, 73, 67, 65, 84, 73, 79, 206, 73, 68, 69, 78, 84, 73, - 67, 65, 204, 73, 67, 79, 78, 128, 73, 67, 72, 79, 85, 128, 73, 67, 72, - 79, 83, 128, 73, 67, 72, 73, 77, 65, 84, 79, 83, 128, 73, 67, 72, 65, 68, - 73, 78, 128, 73, 67, 69, 76, 65, 78, 68, 73, 67, 45, 89, 82, 128, 73, 66, - 73, 70, 73, 76, 73, 128, 73, 65, 85, 68, 65, 128, 73, 48, 49, 53, 128, - 73, 48, 49, 52, 128, 73, 48, 49, 51, 128, 73, 48, 49, 50, 128, 73, 48, - 49, 49, 65, 128, 73, 48, 49, 49, 128, 73, 48, 49, 48, 65, 128, 73, 48, - 49, 48, 128, 73, 48, 48, 57, 65, 128, 73, 48, 48, 57, 128, 73, 48, 48, - 56, 128, 73, 48, 48, 55, 128, 73, 48, 48, 54, 128, 73, 48, 48, 53, 65, - 128, 73, 48, 48, 53, 128, 73, 48, 48, 52, 128, 73, 48, 48, 51, 128, 73, - 48, 48, 50, 128, 73, 48, 48, 49, 128, 73, 45, 89, 85, 128, 73, 45, 89, - 79, 128, 73, 45, 89, 69, 79, 128, 73, 45, 89, 69, 128, 73, 45, 89, 65, - 69, 128, 73, 45, 89, 65, 45, 79, 128, 73, 45, 89, 65, 128, 73, 45, 79, - 45, 73, 128, 73, 45, 79, 128, 73, 45, 69, 85, 128, 73, 45, 66, 69, 65, - 77, 128, 73, 45, 65, 82, 65, 69, 65, 128, 73, 45, 65, 128, 72, 90, 90, - 90, 71, 128, 72, 90, 90, 90, 128, 72, 90, 90, 80, 128, 72, 90, 90, 128, - 72, 90, 87, 71, 128, 72, 90, 87, 128, 72, 90, 84, 128, 72, 90, 71, 128, - 72, 89, 83, 84, 69, 82, 69, 83, 73, 211, 72, 89, 80, 79, 68, 73, 65, 83, - 84, 79, 76, 69, 128, 72, 89, 80, 72, 69, 78, 65, 84, 73, 79, 206, 72, 89, - 80, 72, 69, 78, 45, 77, 73, 78, 85, 83, 128, 72, 89, 80, 72, 69, 78, 128, - 72, 89, 80, 72, 69, 206, 72, 89, 71, 73, 69, 73, 65, 128, 72, 89, 71, 73, - 69, 65, 128, 72, 88, 87, 71, 128, 72, 88, 85, 79, 88, 128, 72, 88, 85, - 79, 84, 128, 72, 88, 85, 79, 80, 128, 72, 88, 85, 79, 128, 72, 88, 79, - 88, 128, 72, 88, 79, 84, 128, 72, 88, 79, 80, 128, 72, 88, 79, 128, 72, - 88, 73, 88, 128, 72, 88, 73, 84, 128, 72, 88, 73, 80, 128, 72, 88, 73, - 69, 88, 128, 72, 88, 73, 69, 84, 128, 72, 88, 73, 69, 80, 128, 72, 88, - 73, 69, 128, 72, 88, 73, 128, 72, 88, 69, 88, 128, 72, 88, 69, 80, 128, - 72, 88, 69, 128, 72, 88, 65, 88, 128, 72, 88, 65, 84, 128, 72, 88, 65, - 80, 128, 72, 88, 65, 128, 72, 87, 85, 128, 72, 87, 65, 73, 82, 128, 72, - 87, 65, 72, 128, 72, 85, 86, 65, 128, 72, 85, 83, 72, 69, 196, 72, 85, - 83, 72, 128, 72, 85, 82, 65, 78, 128, 72, 85, 79, 84, 128, 72, 85, 78, - 68, 82, 69, 68, 83, 128, 72, 85, 78, 68, 82, 69, 68, 211, 72, 85, 78, 68, - 82, 69, 68, 128, 72, 85, 78, 68, 82, 69, 196, 72, 85, 78, 128, 72, 85, - 77, 208, 72, 85, 77, 65, 78, 128, 72, 85, 77, 65, 206, 72, 85, 76, 50, - 128, 72, 85, 73, 73, 84, 79, 128, 72, 85, 71, 71, 73, 78, 71, 128, 72, - 85, 71, 71, 73, 78, 199, 72, 85, 66, 50, 128, 72, 85, 66, 178, 72, 85, - 66, 128, 72, 85, 65, 82, 65, 68, 68, 79, 128, 72, 85, 65, 78, 128, 72, - 85, 45, 51, 128, 72, 85, 45, 50, 128, 72, 85, 45, 49, 128, 72, 84, 84, - 65, 128, 72, 84, 83, 128, 72, 84, 74, 128, 72, 82, 89, 86, 78, 73, 193, - 72, 80, 87, 71, 128, 72, 80, 65, 128, 72, 80, 128, 72, 79, 85, 83, 197, - 72, 79, 85, 82, 71, 76, 65, 83, 83, 128, 72, 79, 85, 82, 71, 76, 65, 83, - 211, 72, 79, 85, 82, 128, 72, 79, 85, 210, 72, 79, 84, 69, 76, 128, 72, - 79, 84, 65, 128, 72, 79, 83, 80, 73, 84, 65, 76, 128, 72, 79, 82, 83, 69, - 128, 72, 79, 82, 83, 197, 72, 79, 82, 82, 128, 72, 79, 82, 78, 83, 128, - 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 76, 217, 72, 79, 82, 73, 90, 79, - 78, 84, 65, 76, 45, 48, 54, 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, 78, - 84, 65, 76, 45, 48, 54, 45, 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, - 65, 76, 45, 48, 54, 45, 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, - 76, 45, 48, 54, 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, - 45, 48, 54, 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, - 48, 54, 45, 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, - 54, 45, 48, 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, - 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, - 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, 48, - 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, 48, 51, - 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, 48, 50, 128, - 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, 48, 49, 128, 72, - 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, 48, 48, 128, 72, 79, - 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 52, 45, 48, 54, 128, 72, 79, 82, - 73, 90, 79, 78, 84, 65, 76, 45, 48, 52, 45, 48, 53, 128, 72, 79, 82, 73, - 90, 79, 78, 84, 65, 76, 45, 48, 52, 45, 48, 52, 128, 72, 79, 82, 73, 90, - 79, 78, 84, 65, 76, 45, 48, 52, 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, - 78, 84, 65, 76, 45, 48, 52, 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, 78, - 84, 65, 76, 45, 48, 52, 45, 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, - 65, 76, 45, 48, 52, 45, 48, 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, - 76, 45, 48, 51, 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, - 45, 48, 51, 45, 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, - 48, 51, 45, 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, - 51, 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, - 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, - 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, 48, - 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 50, 45, 48, 54, - 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 50, 45, 48, 53, 128, - 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 50, 45, 48, 52, 128, 72, - 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 50, 45, 48, 51, 128, 72, 79, - 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 50, 45, 48, 50, 128, 72, 79, 82, - 73, 90, 79, 78, 84, 65, 76, 45, 48, 50, 45, 48, 49, 128, 72, 79, 82, 73, - 90, 79, 78, 84, 65, 76, 45, 48, 50, 45, 48, 48, 128, 72, 79, 82, 73, 90, - 79, 78, 84, 65, 76, 45, 48, 49, 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, - 78, 84, 65, 76, 45, 48, 49, 45, 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, - 84, 65, 76, 45, 48, 49, 45, 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, - 65, 76, 45, 48, 49, 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, - 76, 45, 48, 49, 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, - 45, 48, 49, 45, 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, - 48, 49, 45, 48, 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, - 48, 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, - 45, 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, - 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, 48, - 51, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, 48, 50, - 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, 48, 49, 128, - 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, 48, 48, 128, 72, - 79, 82, 73, 90, 79, 78, 84, 65, 76, 128, 72, 79, 82, 73, 90, 79, 78, 84, - 65, 204, 72, 79, 82, 73, 128, 72, 79, 82, 193, 72, 79, 79, 85, 128, 72, - 79, 79, 82, 85, 128, 72, 79, 79, 80, 128, 72, 79, 79, 78, 128, 72, 79, - 79, 75, 69, 68, 128, 72, 79, 79, 75, 69, 196, 72, 79, 78, 69, 89, 66, 69, - 69, 128, 72, 79, 78, 69, 217, 72, 79, 77, 79, 84, 72, 69, 84, 73, 67, - 128, 72, 79, 77, 79, 84, 72, 69, 84, 73, 195, 72, 79, 76, 79, 128, 72, - 79, 76, 76, 79, 215, 72, 79, 76, 69, 128, 72, 79, 76, 68, 73, 78, 199, - 72, 79, 76, 65, 77, 128, 72, 79, 76, 65, 205, 72, 79, 75, 65, 128, 72, - 79, 67, 75, 69, 217, 72, 79, 67, 72, 79, 128, 72, 79, 45, 56, 128, 72, - 79, 45, 55, 128, 72, 79, 45, 54, 128, 72, 79, 45, 53, 128, 72, 79, 45, - 52, 128, 72, 79, 45, 51, 128, 72, 79, 45, 50, 128, 72, 79, 45, 49, 128, - 72, 78, 85, 84, 128, 72, 78, 85, 79, 88, 128, 72, 78, 85, 79, 128, 72, - 78, 85, 66, 128, 72, 78, 79, 88, 128, 72, 78, 79, 84, 128, 72, 78, 79, - 80, 128, 72, 78, 73, 88, 128, 72, 78, 73, 84, 128, 72, 78, 73, 80, 128, - 72, 78, 73, 69, 88, 128, 72, 78, 73, 69, 84, 128, 72, 78, 73, 69, 80, - 128, 72, 78, 73, 69, 128, 72, 78, 73, 128, 72, 78, 69, 88, 128, 72, 78, - 69, 80, 128, 72, 78, 69, 128, 72, 78, 65, 88, 128, 72, 78, 65, 85, 128, - 72, 78, 65, 84, 128, 72, 78, 65, 80, 128, 72, 78, 65, 128, 72, 77, 89, - 88, 128, 72, 77, 89, 82, 88, 128, 72, 77, 89, 82, 128, 72, 77, 89, 80, - 128, 72, 77, 89, 128, 72, 77, 85, 88, 128, 72, 77, 85, 84, 128, 72, 77, - 85, 82, 88, 128, 72, 77, 85, 82, 128, 72, 77, 85, 80, 128, 72, 77, 85, - 79, 88, 128, 72, 77, 85, 79, 80, 128, 72, 77, 85, 79, 128, 72, 77, 85, - 128, 72, 77, 79, 88, 128, 72, 77, 79, 84, 128, 72, 77, 79, 80, 128, 72, - 77, 79, 128, 72, 77, 73, 88, 128, 72, 77, 73, 84, 128, 72, 77, 73, 80, - 128, 72, 77, 73, 69, 88, 128, 72, 77, 73, 69, 80, 128, 72, 77, 73, 69, - 128, 72, 77, 73, 128, 72, 77, 69, 128, 72, 77, 65, 88, 128, 72, 77, 65, - 84, 128, 72, 77, 65, 80, 128, 72, 77, 65, 128, 72, 76, 89, 88, 128, 72, - 76, 89, 84, 128, 72, 76, 89, 82, 88, 128, 72, 76, 89, 82, 128, 72, 76, - 89, 80, 128, 72, 76, 89, 128, 72, 76, 85, 88, 128, 72, 76, 85, 84, 128, - 72, 76, 85, 82, 88, 128, 72, 76, 85, 82, 128, 72, 76, 85, 80, 128, 72, - 76, 85, 79, 88, 128, 72, 76, 85, 79, 80, 128, 72, 76, 85, 79, 128, 72, - 76, 85, 128, 72, 76, 79, 88, 128, 72, 76, 79, 80, 128, 72, 76, 79, 128, - 72, 76, 73, 88, 128, 72, 76, 73, 84, 128, 72, 76, 73, 80, 128, 72, 76, - 73, 69, 88, 128, 72, 76, 73, 69, 80, 128, 72, 76, 73, 69, 128, 72, 76, - 73, 128, 72, 76, 69, 88, 128, 72, 76, 69, 80, 128, 72, 76, 69, 128, 72, - 76, 65, 88, 128, 72, 76, 65, 85, 128, 72, 76, 65, 84, 128, 72, 76, 65, - 80, 128, 72, 76, 65, 128, 72, 76, 128, 72, 75, 128, 72, 73, 90, 66, 128, - 72, 73, 89, 79, 128, 72, 73, 84, 84, 73, 78, 199, 72, 73, 83, 84, 79, 82, - 73, 195, 72, 73, 82, 73, 81, 128, 72, 73, 80, 80, 79, 80, 79, 84, 65, 77, - 85, 83, 128, 72, 73, 78, 71, 69, 68, 128, 72, 73, 78, 71, 69, 196, 72, - 73, 78, 71, 69, 128, 72, 73, 78, 68, 213, 72, 73, 75, 73, 78, 199, 72, - 73, 71, 72, 45, 83, 80, 69, 69, 196, 72, 73, 71, 72, 45, 82, 69, 86, 69, - 82, 83, 69, 68, 45, 185, 72, 73, 71, 72, 45, 76, 79, 215, 72, 73, 71, 72, - 45, 72, 69, 69, 76, 69, 196, 72, 73, 69, 88, 128, 72, 73, 69, 85, 72, 45, - 83, 73, 79, 83, 128, 72, 73, 69, 85, 72, 45, 82, 73, 69, 85, 76, 128, 72, - 73, 69, 85, 72, 45, 80, 73, 69, 85, 80, 128, 72, 73, 69, 85, 72, 45, 78, - 73, 69, 85, 78, 128, 72, 73, 69, 85, 72, 45, 77, 73, 69, 85, 77, 128, 72, - 73, 69, 85, 200, 72, 73, 69, 82, 79, 71, 76, 89, 80, 72, 73, 195, 72, 73, - 68, 73, 78, 199, 72, 73, 68, 69, 84, 128, 72, 73, 68, 69, 128, 72, 73, - 66, 73, 83, 67, 85, 83, 128, 72, 73, 45, 82, 69, 83, 128, 72, 73, 45, 55, - 128, 72, 73, 45, 54, 128, 72, 73, 45, 53, 128, 72, 73, 45, 52, 128, 72, - 73, 45, 51, 128, 72, 73, 45, 50, 128, 72, 73, 45, 49, 128, 72, 72, 89, - 85, 128, 72, 72, 89, 79, 128, 72, 72, 89, 73, 128, 72, 72, 89, 69, 69, - 128, 72, 72, 89, 69, 128, 72, 72, 89, 65, 65, 128, 72, 72, 89, 65, 128, - 72, 72, 87, 73, 128, 72, 72, 87, 69, 69, 128, 72, 72, 87, 69, 128, 72, - 72, 87, 65, 128, 72, 72, 85, 128, 72, 72, 73, 128, 72, 72, 69, 69, 128, - 72, 72, 69, 128, 72, 72, 65, 65, 128, 72, 71, 128, 72, 69, 89, 84, 128, - 72, 69, 88, 73, 70, 79, 82, 205, 72, 69, 88, 65, 71, 82, 65, 205, 72, 69, - 88, 65, 71, 79, 78, 128, 72, 69, 82, 85, 84, 85, 128, 72, 69, 82, 85, - 128, 72, 69, 82, 77, 73, 84, 73, 65, 206, 72, 69, 82, 77, 73, 79, 78, 73, - 65, 206, 72, 69, 82, 77, 69, 83, 128, 72, 69, 82, 69, 128, 72, 69, 82, - 66, 128, 72, 69, 82, 65, 69, 85, 205, 72, 69, 78, 71, 128, 72, 69, 78, - 199, 72, 69, 77, 80, 128, 72, 69, 76, 77, 69, 84, 128, 72, 69, 76, 77, - 69, 212, 72, 69, 76, 205, 72, 69, 76, 76, 83, 67, 72, 82, 69, 73, 66, 69, - 210, 72, 69, 76, 73, 88, 128, 72, 69, 76, 73, 67, 79, 80, 84, 69, 82, - 128, 72, 69, 75, 85, 84, 65, 65, 82, 85, 128, 72, 69, 73, 83, 69, 73, - 128, 72, 69, 73, 71, 72, 84, 128, 72, 69, 69, 73, 128, 72, 69, 68, 71, - 69, 72, 79, 71, 128, 72, 69, 65, 86, 89, 128, 72, 69, 65, 86, 69, 78, 76, - 217, 72, 69, 65, 86, 69, 78, 128, 72, 69, 65, 86, 69, 206, 72, 69, 65, - 82, 84, 83, 128, 72, 69, 65, 82, 84, 45, 83, 72, 65, 80, 69, 196, 72, 69, - 65, 82, 84, 128, 72, 69, 65, 82, 212, 72, 69, 65, 82, 73, 78, 199, 72, - 69, 65, 82, 45, 78, 79, 45, 69, 86, 73, 204, 72, 69, 65, 68, 83, 84, 82, - 79, 75, 69, 128, 72, 69, 65, 68, 83, 84, 79, 78, 69, 128, 72, 69, 65, 68, - 83, 84, 79, 78, 197, 72, 69, 65, 68, 83, 67, 65, 82, 70, 128, 72, 69, 65, - 68, 80, 72, 79, 78, 69, 128, 72, 69, 65, 68, 73, 78, 71, 128, 72, 69, 65, - 68, 45, 66, 65, 78, 68, 65, 71, 69, 128, 72, 69, 45, 55, 128, 72, 69, 45, - 54, 128, 72, 69, 45, 53, 128, 72, 69, 45, 52, 128, 72, 69, 45, 51, 128, - 72, 69, 45, 50, 128, 72, 69, 45, 49, 128, 72, 68, 82, 128, 72, 67, 128, - 72, 66, 65, 83, 65, 45, 69, 83, 65, 83, 193, 72, 66, 65, 83, 193, 72, 65, - 89, 65, 78, 78, 65, 128, 72, 65, 87, 74, 128, 72, 65, 86, 69, 128, 72, - 65, 85, 80, 84, 83, 84, 73, 77, 77, 69, 128, 72, 65, 213, 72, 65, 84, 82, - 65, 206, 72, 65, 84, 72, 73, 128, 72, 65, 84, 69, 128, 72, 65, 84, 67, - 72, 73, 78, 199, 72, 65, 84, 65, 198, 72, 65, 83, 69, 210, 72, 65, 83, - 65, 78, 84, 65, 128, 72, 65, 82, 80, 79, 79, 78, 128, 72, 65, 82, 80, 79, - 79, 206, 72, 65, 82, 77, 79, 78, 73, 67, 128, 72, 65, 82, 75, 76, 69, 65, - 206, 72, 65, 82, 68, 78, 69, 83, 83, 128, 72, 65, 82, 196, 72, 65, 82, - 66, 65, 72, 65, 89, 128, 72, 65, 80, 80, 217, 72, 65, 78, 85, 78, 79, - 207, 72, 65, 78, 73, 70, 201, 72, 65, 78, 71, 90, 72, 79, 213, 72, 65, - 78, 68, 83, 72, 65, 75, 69, 128, 72, 65, 78, 68, 83, 128, 72, 65, 78, 68, - 211, 72, 65, 78, 68, 76, 69, 83, 128, 72, 65, 78, 68, 76, 69, 128, 72, - 65, 78, 68, 66, 65, 76, 76, 128, 72, 65, 78, 68, 66, 65, 71, 128, 72, 65, - 78, 68, 45, 79, 86, 65, 76, 128, 72, 65, 78, 68, 45, 79, 86, 65, 204, 72, - 65, 78, 68, 45, 72, 79, 79, 75, 128, 72, 65, 78, 68, 45, 72, 79, 79, 203, - 72, 65, 78, 68, 45, 72, 73, 78, 71, 69, 128, 72, 65, 78, 68, 45, 72, 73, - 78, 71, 197, 72, 65, 78, 68, 45, 70, 76, 65, 84, 128, 72, 65, 78, 68, 45, - 70, 76, 65, 212, 72, 65, 78, 68, 45, 70, 73, 83, 84, 128, 72, 65, 78, 68, - 45, 67, 85, 82, 76, 73, 67, 85, 69, 128, 72, 65, 78, 68, 45, 67, 85, 82, - 76, 73, 67, 85, 197, 72, 65, 78, 68, 45, 67, 85, 80, 128, 72, 65, 78, 68, - 45, 67, 85, 208, 72, 65, 78, 68, 45, 67, 76, 65, 87, 128, 72, 65, 78, 68, - 45, 67, 76, 65, 215, 72, 65, 78, 68, 45, 67, 73, 82, 67, 76, 69, 128, 72, - 65, 78, 68, 45, 67, 73, 82, 67, 76, 197, 72, 65, 78, 68, 45, 65, 78, 71, - 76, 69, 128, 72, 65, 78, 68, 45, 65, 78, 71, 76, 197, 72, 65, 78, 68, - 128, 72, 65, 78, 45, 65, 75, 65, 84, 128, 72, 65, 77, 90, 65, 128, 72, - 65, 77, 90, 193, 72, 65, 77, 83, 84, 69, 210, 72, 65, 77, 83, 65, 128, - 72, 65, 77, 77, 69, 82, 128, 72, 65, 77, 77, 69, 210, 72, 65, 77, 66, 85, - 82, 71, 69, 82, 128, 72, 65, 76, 81, 65, 128, 72, 65, 76, 79, 128, 72, - 65, 76, 70, 45, 67, 73, 82, 67, 76, 197, 72, 65, 76, 70, 45, 50, 128, 72, - 65, 76, 70, 45, 49, 128, 72, 65, 76, 70, 128, 72, 65, 76, 66, 69, 82, 68, - 128, 72, 65, 76, 65, 78, 84, 65, 128, 72, 65, 73, 84, 85, 128, 72, 65, - 73, 211, 72, 65, 73, 82, 67, 85, 84, 128, 72, 65, 71, 76, 65, 218, 72, - 65, 71, 76, 128, 72, 65, 70, 85, 75, 72, 65, 128, 72, 65, 70, 85, 75, 72, - 128, 72, 65, 69, 71, 204, 72, 65, 68, 69, 83, 128, 72, 65, 65, 82, 85, - 128, 72, 65, 65, 77, 128, 72, 65, 193, 72, 65, 45, 72, 65, 128, 72, 65, - 45, 57, 128, 72, 65, 45, 56, 128, 72, 65, 45, 55, 128, 72, 65, 45, 54, - 128, 72, 65, 45, 53, 128, 72, 65, 45, 52, 128, 72, 65, 45, 51, 128, 72, - 65, 45, 50, 128, 72, 65, 45, 49, 49, 128, 72, 65, 45, 49, 48, 128, 72, - 65, 45, 49, 128, 72, 48, 48, 56, 128, 72, 48, 48, 55, 128, 72, 48, 48, - 54, 65, 128, 72, 48, 48, 54, 128, 72, 48, 48, 53, 128, 72, 48, 48, 52, - 128, 72, 48, 48, 51, 128, 72, 48, 48, 50, 128, 72, 48, 48, 49, 128, 72, - 45, 84, 89, 80, 197, 71, 89, 85, 128, 71, 89, 79, 78, 128, 71, 89, 79, - 128, 71, 89, 73, 128, 71, 89, 70, 213, 71, 89, 69, 69, 128, 71, 89, 65, - 83, 128, 71, 89, 65, 65, 128, 71, 89, 65, 128, 71, 89, 128, 71, 87, 85, - 128, 71, 87, 73, 128, 71, 87, 69, 69, 128, 71, 87, 69, 128, 71, 87, 65, - 65, 128, 71, 87, 65, 128, 71, 87, 128, 71, 86, 65, 78, 71, 128, 71, 86, - 128, 71, 85, 82, 85, 83, 72, 128, 71, 85, 82, 85, 78, 128, 71, 85, 82, - 77, 85, 75, 72, 201, 71, 85, 82, 65, 77, 85, 84, 79, 78, 128, 71, 85, 82, - 65, 71, 197, 71, 85, 82, 55, 128, 71, 85, 78, 85, 128, 71, 85, 78, 213, - 71, 85, 78, 74, 65, 76, 193, 71, 85, 205, 71, 85, 76, 128, 71, 85, 74, - 65, 82, 65, 84, 201, 71, 85, 73, 84, 65, 82, 128, 71, 85, 73, 68, 197, - 71, 85, 199, 71, 85, 69, 73, 128, 71, 85, 69, 72, 128, 71, 85, 69, 200, - 71, 85, 68, 128, 71, 85, 196, 71, 85, 65, 82, 68, 83, 77, 65, 78, 128, - 71, 85, 65, 82, 68, 69, 68, 78, 69, 83, 83, 128, 71, 85, 65, 82, 68, 69, - 196, 71, 85, 65, 82, 68, 128, 71, 85, 65, 82, 65, 78, 201, 71, 85, 193, - 71, 85, 178, 71, 84, 69, 210, 71, 83, 85, 77, 128, 71, 83, 85, 205, 71, - 82, 213, 71, 82, 79, 87, 73, 78, 199, 71, 82, 79, 85, 78, 68, 128, 71, - 82, 79, 78, 84, 72, 73, 83, 77, 65, 84, 65, 128, 71, 82, 79, 77, 79, 80, - 79, 86, 79, 68, 78, 65, 89, 65, 128, 71, 82, 79, 77, 79, 80, 79, 86, 79, - 68, 78, 65, 89, 193, 71, 82, 79, 77, 79, 75, 82, 89, 90, 72, 69, 86, 65, - 89, 65, 128, 71, 82, 79, 77, 79, 75, 82, 89, 90, 72, 69, 86, 65, 89, 193, - 71, 82, 79, 77, 78, 65, 89, 65, 128, 71, 82, 79, 77, 78, 65, 89, 193, 71, - 82, 73, 78, 78, 73, 78, 199, 71, 82, 73, 77, 65, 67, 73, 78, 199, 71, 82, - 69, 71, 79, 82, 73, 65, 206, 71, 82, 69, 69, 78, 128, 71, 82, 69, 69, - 206, 71, 82, 69, 65, 84, 78, 69, 83, 83, 128, 71, 82, 69, 65, 84, 69, 82, - 45, 84, 72, 65, 78, 128, 71, 82, 69, 65, 84, 69, 82, 45, 84, 72, 65, 206, - 71, 82, 69, 65, 84, 69, 210, 71, 82, 69, 65, 212, 71, 82, 65, 86, 69, 89, - 65, 82, 196, 71, 82, 65, 86, 69, 45, 77, 65, 67, 82, 79, 78, 128, 71, 82, - 65, 86, 69, 45, 65, 67, 85, 84, 69, 45, 71, 82, 65, 86, 69, 128, 71, 82, - 65, 86, 197, 71, 82, 65, 84, 69, 82, 128, 71, 82, 65, 83, 83, 128, 71, - 82, 65, 83, 211, 71, 82, 65, 83, 208, 71, 82, 65, 80, 72, 69, 77, 197, - 71, 82, 65, 80, 69, 83, 128, 71, 82, 65, 78, 84, 72, 193, 71, 82, 65, 77, - 77, 193, 71, 82, 65, 73, 78, 128, 71, 82, 65, 70, 128, 71, 82, 65, 68, - 85, 65, 84, 73, 79, 206, 71, 82, 65, 68, 85, 65, 76, 128, 71, 82, 65, 67, - 69, 128, 71, 82, 65, 67, 197, 71, 80, 65, 128, 71, 79, 82, 84, 72, 77, - 73, 75, 79, 206, 71, 79, 82, 84, 128, 71, 79, 82, 73, 76, 76, 65, 128, - 71, 79, 82, 71, 79, 84, 69, 82, 73, 128, 71, 79, 82, 71, 79, 83, 89, 78, - 84, 72, 69, 84, 79, 78, 128, 71, 79, 82, 71, 79, 206, 71, 79, 82, 71, 73, - 128, 71, 79, 82, 65, 90, 68, 207, 71, 79, 82, 65, 128, 71, 79, 79, 196, - 71, 79, 78, 71, 128, 71, 79, 76, 85, 66, 67, 72, 73, 203, 71, 79, 76, 70, - 69, 82, 128, 71, 79, 76, 68, 128, 71, 79, 75, 128, 71, 79, 73, 78, 199, - 71, 79, 71, 71, 76, 69, 83, 128, 71, 79, 66, 76, 73, 78, 128, 71, 79, 65, - 76, 128, 71, 79, 65, 204, 71, 79, 65, 128, 71, 78, 89, 73, 83, 128, 71, - 78, 65, 86, 73, 89, 65, 78, 73, 128, 71, 76, 79, 87, 73, 78, 199, 71, 76, - 79, 86, 69, 83, 128, 71, 76, 79, 86, 69, 128, 71, 76, 79, 84, 84, 65, - 204, 71, 76, 79, 66, 197, 71, 76, 73, 83, 83, 65, 78, 68, 207, 71, 76, - 69, 73, 67, 200, 71, 76, 65, 71, 79, 76, 73, 128, 71, 76, 65, 128, 71, - 74, 69, 128, 71, 73, 88, 128, 71, 73, 84, 128, 71, 73, 83, 72, 128, 71, - 73, 83, 200, 71, 73, 83, 65, 76, 128, 71, 73, 82, 85, 68, 65, 65, 128, - 71, 73, 82, 76, 211, 71, 73, 82, 76, 128, 71, 73, 82, 65, 70, 70, 197, - 71, 73, 82, 51, 128, 71, 73, 82, 179, 71, 73, 82, 50, 128, 71, 73, 82, - 178, 71, 73, 80, 128, 71, 73, 78, 73, 73, 128, 71, 73, 77, 69, 76, 45, - 72, 69, 84, 72, 128, 71, 73, 77, 69, 76, 128, 71, 73, 77, 69, 204, 71, - 73, 77, 128, 71, 73, 71, 65, 128, 71, 73, 71, 128, 71, 73, 70, 212, 71, - 73, 69, 84, 128, 71, 73, 68, 73, 77, 128, 71, 73, 66, 66, 79, 85, 211, - 71, 73, 66, 65, 128, 71, 73, 52, 128, 71, 73, 180, 71, 72, 90, 128, 71, - 72, 87, 65, 128, 71, 72, 85, 78, 78, 65, 128, 71, 72, 85, 78, 78, 193, - 71, 72, 85, 128, 71, 72, 79, 85, 128, 71, 72, 79, 83, 84, 128, 71, 72, - 79, 128, 71, 72, 73, 77, 69, 76, 128, 71, 72, 73, 128, 71, 72, 72, 65, - 128, 71, 72, 69, 89, 83, 128, 71, 72, 69, 85, 88, 128, 71, 72, 69, 85, - 78, 128, 71, 72, 69, 85, 71, 72, 69, 85, 65, 69, 77, 128, 71, 72, 69, 85, - 71, 72, 69, 78, 128, 71, 72, 69, 85, 65, 69, 82, 65, 69, 128, 71, 72, 69, - 85, 65, 69, 71, 72, 69, 85, 65, 69, 128, 71, 72, 69, 84, 128, 71, 72, 69, - 69, 128, 71, 72, 69, 128, 71, 72, 197, 71, 72, 65, 89, 78, 128, 71, 72, - 65, 82, 65, 69, 128, 71, 72, 65, 80, 128, 71, 72, 65, 78, 128, 71, 72, - 65, 77, 77, 65, 128, 71, 72, 65, 77, 65, 76, 128, 71, 72, 65, 73, 78, 85, + 77, 85, 73, 78, 128, 77, 85, 72, 79, 82, 128, 77, 85, 71, 83, 128, 77, + 85, 71, 128, 77, 85, 199, 77, 85, 69, 78, 128, 77, 85, 69, 128, 77, 85, + 67, 72, 128, 77, 85, 67, 200, 77, 85, 67, 65, 65, 68, 128, 77, 85, 65, + 83, 128, 77, 85, 65, 78, 128, 77, 85, 65, 69, 128, 77, 85, 45, 71, 65, + 65, 72, 76, 65, 193, 77, 85, 45, 52, 128, 77, 85, 45, 51, 128, 77, 85, + 45, 50, 128, 77, 85, 45, 49, 128, 77, 213, 77, 84, 65, 86, 82, 85, 76, + 201, 77, 83, 128, 77, 82, 207, 77, 82, 65, 67, 72, 78, 89, 128, 77, 82, + 65, 67, 72, 78, 79, 84, 73, 75, 72, 65, 89, 65, 128, 77, 82, 65, 67, 72, + 78, 79, 128, 77, 82, 65, 67, 72, 78, 65, 89, 65, 128, 77, 210, 77, 81, + 128, 77, 80, 65, 128, 77, 79, 89, 65, 73, 128, 77, 79, 88, 128, 77, 79, + 86, 73, 197, 77, 79, 86, 69, 211, 77, 79, 86, 69, 77, 69, 78, 84, 45, 87, + 65, 76, 76, 80, 76, 65, 78, 197, 77, 79, 86, 69, 77, 69, 78, 84, 45, 72, + 73, 78, 71, 197, 77, 79, 86, 69, 77, 69, 78, 84, 45, 70, 76, 79, 79, 82, + 80, 76, 65, 78, 197, 77, 79, 86, 69, 77, 69, 78, 84, 45, 68, 73, 65, 71, + 79, 78, 65, 204, 77, 79, 86, 69, 77, 69, 78, 84, 128, 77, 79, 86, 69, 77, + 69, 78, 212, 77, 79, 86, 69, 196, 77, 79, 86, 69, 128, 77, 79, 85, 84, + 72, 128, 77, 79, 85, 83, 69, 128, 77, 79, 85, 83, 197, 77, 79, 85, 78, + 84, 65, 73, 78, 83, 128, 77, 79, 85, 78, 84, 65, 73, 78, 128, 77, 79, 85, + 78, 84, 65, 73, 206, 77, 79, 85, 78, 212, 77, 79, 85, 78, 68, 128, 77, + 79, 85, 78, 196, 77, 79, 84, 79, 82, 87, 65, 89, 128, 77, 79, 84, 79, 82, + 73, 90, 69, 196, 77, 79, 84, 79, 82, 67, 89, 67, 76, 69, 128, 77, 79, 84, + 79, 210, 77, 79, 84, 72, 69, 82, 128, 77, 79, 84, 72, 69, 210, 77, 79, + 84, 128, 77, 79, 83, 81, 85, 73, 84, 79, 128, 77, 79, 83, 81, 85, 69, + 128, 77, 79, 82, 84, 85, 85, 77, 128, 77, 79, 82, 84, 65, 82, 128, 77, + 79, 82, 80, 72, 79, 76, 79, 71, 73, 67, 65, 204, 77, 79, 82, 78, 73, 78, + 71, 128, 77, 79, 80, 128, 77, 79, 79, 83, 69, 45, 67, 82, 69, 197, 77, + 79, 79, 83, 69, 128, 77, 79, 79, 78, 128, 77, 79, 79, 206, 77, 79, 79, + 77, 80, 85, 81, 128, 77, 79, 79, 77, 69, 85, 84, 128, 77, 79, 79, 68, + 128, 77, 79, 79, 196, 77, 79, 79, 128, 77, 79, 78, 84, 73, 69, 69, 78, + 128, 77, 79, 78, 84, 72, 128, 77, 79, 78, 84, 200, 77, 79, 78, 83, 84, + 69, 82, 128, 77, 79, 78, 79, 83, 84, 65, 66, 76, 197, 77, 79, 78, 79, 83, + 80, 65, 67, 197, 77, 79, 78, 79, 82, 65, 73, 76, 128, 77, 79, 78, 79, 71, + 82, 65, 80, 200, 77, 79, 78, 79, 71, 82, 65, 77, 77, 79, 211, 77, 79, 78, + 79, 71, 82, 65, 205, 77, 79, 78, 79, 70, 79, 78, 73, 65, 83, 128, 77, 79, + 78, 79, 67, 85, 76, 65, 210, 77, 79, 78, 79, 67, 76, 69, 128, 77, 79, 78, + 75, 69, 89, 128, 77, 79, 78, 75, 69, 217, 77, 79, 78, 73, 128, 77, 79, + 78, 71, 75, 69, 85, 65, 69, 81, 128, 77, 79, 78, 69, 89, 45, 77, 79, 85, + 84, 200, 77, 79, 78, 69, 217, 77, 79, 78, 128, 77, 79, 206, 77, 79, 76, + 128, 77, 79, 75, 72, 65, 83, 83, 65, 83, 128, 77, 79, 72, 65, 77, 77, 65, + 196, 77, 79, 68, 85, 76, 207, 77, 79, 68, 73, 70, 73, 69, 82, 45, 57, + 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 56, 128, 77, 79, 68, 73, 70, 73, + 69, 82, 45, 55, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 54, 128, 77, 79, + 68, 73, 70, 73, 69, 82, 45, 53, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, + 52, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 51, 128, 77, 79, 68, 73, 70, + 73, 69, 82, 45, 50, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 49, 54, 128, + 77, 79, 68, 73, 70, 73, 69, 82, 45, 49, 53, 128, 77, 79, 68, 73, 70, 73, + 69, 82, 45, 49, 52, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 49, 51, 128, + 77, 79, 68, 73, 70, 73, 69, 82, 45, 49, 50, 128, 77, 79, 68, 73, 70, 73, + 69, 82, 45, 49, 49, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 49, 48, 128, + 77, 79, 68, 73, 70, 73, 69, 82, 128, 77, 79, 68, 201, 77, 79, 68, 69, 83, + 84, 89, 128, 77, 79, 68, 69, 82, 206, 77, 79, 68, 69, 77, 128, 77, 79, + 68, 69, 76, 83, 128, 77, 79, 68, 69, 76, 128, 77, 79, 68, 69, 128, 77, + 79, 66, 73, 76, 197, 77, 79, 65, 128, 77, 79, 45, 54, 128, 77, 79, 45, + 53, 128, 77, 79, 45, 52, 128, 77, 79, 45, 51, 128, 77, 207, 77, 78, 89, + 65, 205, 77, 78, 65, 83, 128, 77, 77, 83, 80, 128, 77, 77, 128, 77, 205, + 77, 76, 65, 128, 77, 76, 128, 77, 75, 80, 65, 82, 65, 209, 77, 73, 88, + 128, 77, 73, 84, 128, 77, 73, 83, 82, 65, 128, 77, 73, 82, 82, 79, 82, + 128, 77, 73, 82, 82, 79, 210, 77, 73, 82, 73, 66, 65, 65, 82, 85, 128, + 77, 73, 82, 73, 128, 77, 73, 82, 69, 68, 128, 77, 73, 80, 128, 77, 73, + 78, 89, 128, 77, 73, 78, 85, 83, 45, 79, 82, 45, 80, 76, 85, 211, 77, 73, + 78, 85, 83, 128, 77, 73, 78, 78, 65, 206, 77, 73, 78, 73, 83, 84, 69, 82, + 128, 77, 73, 78, 73, 77, 73, 90, 69, 128, 77, 73, 78, 73, 77, 65, 128, + 77, 73, 78, 73, 68, 73, 83, 67, 128, 77, 73, 78, 73, 66, 85, 83, 128, 77, + 73, 78, 68, 85, 128, 77, 73, 77, 69, 128, 77, 73, 77, 128, 77, 73, 76, + 76, 73, 79, 78, 83, 128, 77, 73, 76, 76, 73, 79, 78, 211, 77, 73, 76, 76, + 69, 84, 128, 77, 73, 76, 76, 197, 77, 73, 76, 204, 77, 73, 76, 75, 217, + 77, 73, 76, 75, 128, 77, 73, 76, 73, 84, 65, 82, 217, 77, 73, 76, 128, + 77, 73, 75, 85, 82, 79, 78, 128, 77, 73, 75, 82, 79, 206, 77, 73, 75, 82, + 73, 128, 77, 73, 73, 78, 128, 77, 73, 73, 77, 128, 77, 73, 73, 128, 77, + 73, 199, 77, 73, 69, 88, 128, 77, 73, 69, 85, 77, 45, 84, 73, 75, 69, 85, + 84, 128, 77, 73, 69, 85, 77, 45, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, + 77, 73, 69, 85, 77, 45, 83, 83, 65, 78, 71, 78, 73, 69, 85, 78, 128, 77, + 73, 69, 85, 77, 45, 82, 73, 69, 85, 76, 128, 77, 73, 69, 85, 77, 45, 80, + 73, 69, 85, 80, 45, 83, 73, 79, 83, 128, 77, 73, 69, 85, 77, 45, 80, 73, + 69, 85, 80, 128, 77, 73, 69, 85, 77, 45, 80, 65, 78, 83, 73, 79, 83, 128, + 77, 73, 69, 85, 77, 45, 78, 73, 69, 85, 78, 128, 77, 73, 69, 85, 77, 45, + 67, 73, 69, 85, 67, 128, 77, 73, 69, 85, 77, 45, 67, 72, 73, 69, 85, 67, + 72, 128, 77, 73, 69, 85, 205, 77, 73, 69, 80, 128, 77, 73, 69, 69, 128, + 77, 73, 69, 128, 77, 73, 68, 76, 73, 78, 197, 77, 73, 68, 68, 76, 69, 45, + 87, 69, 76, 83, 200, 77, 73, 68, 68, 76, 69, 128, 77, 73, 68, 45, 76, 69, + 86, 69, 204, 77, 73, 68, 45, 72, 69, 73, 71, 72, 212, 77, 73, 196, 77, + 73, 67, 82, 79, 83, 67, 79, 80, 69, 128, 77, 73, 67, 82, 79, 80, 72, 79, + 78, 69, 128, 77, 73, 67, 82, 79, 66, 69, 128, 77, 73, 67, 82, 207, 77, + 73, 67, 210, 77, 73, 45, 55, 128, 77, 73, 45, 54, 128, 77, 73, 45, 53, + 128, 77, 73, 45, 52, 128, 77, 73, 45, 51, 128, 77, 73, 45, 50, 128, 77, + 73, 45, 49, 128, 77, 72, 90, 128, 77, 72, 65, 128, 77, 72, 128, 77, 71, + 85, 88, 128, 77, 71, 85, 84, 128, 77, 71, 85, 82, 88, 128, 77, 71, 85, + 82, 128, 77, 71, 85, 80, 128, 77, 71, 85, 79, 88, 128, 77, 71, 85, 79, + 80, 128, 77, 71, 85, 79, 128, 77, 71, 85, 128, 77, 71, 79, 88, 128, 77, + 71, 79, 84, 128, 77, 71, 79, 80, 128, 77, 71, 79, 128, 77, 71, 207, 77, + 71, 73, 69, 88, 128, 77, 71, 73, 69, 128, 77, 71, 69, 88, 128, 77, 71, + 69, 80, 128, 77, 71, 69, 128, 77, 71, 66, 85, 128, 77, 71, 66, 79, 79, + 128, 77, 71, 66, 79, 70, 85, 77, 128, 77, 71, 66, 79, 128, 77, 71, 66, + 73, 128, 77, 71, 66, 69, 85, 78, 128, 77, 71, 66, 69, 78, 128, 77, 71, + 66, 69, 69, 128, 77, 71, 66, 69, 128, 77, 71, 66, 65, 83, 65, 81, 128, + 77, 71, 66, 65, 83, 65, 128, 77, 71, 65, 88, 128, 77, 71, 65, 84, 128, + 77, 71, 65, 80, 128, 77, 71, 65, 128, 77, 71, 128, 77, 70, 79, 78, 128, + 77, 70, 79, 206, 77, 70, 79, 128, 77, 70, 73, 89, 65, 81, 128, 77, 70, + 73, 69, 69, 128, 77, 70, 69, 85, 84, 128, 77, 70, 69, 85, 81, 128, 77, + 70, 69, 85, 65, 69, 128, 77, 70, 65, 65, 128, 77, 69, 90, 90, 79, 128, + 77, 69, 88, 128, 77, 69, 85, 212, 77, 69, 85, 81, 128, 77, 69, 85, 78, + 74, 79, 77, 78, 68, 69, 85, 81, 128, 77, 69, 85, 78, 128, 77, 69, 84, 82, + 79, 128, 77, 69, 84, 82, 73, 67, 65, 204, 77, 69, 84, 82, 73, 65, 128, + 77, 69, 84, 82, 69, 84, 69, 211, 77, 69, 84, 79, 66, 69, 76, 85, 83, 128, + 77, 69, 84, 69, 75, 128, 77, 69, 84, 69, 71, 128, 77, 69, 84, 65, 76, + 128, 77, 69, 84, 193, 77, 69, 83, 83, 69, 78, 73, 65, 206, 77, 69, 83, + 83, 65, 71, 69, 128, 77, 69, 83, 83, 65, 71, 197, 77, 69, 83, 79, 128, + 77, 69, 83, 73, 128, 77, 69, 83, 72, 128, 77, 69, 82, 80, 69, 82, 83, 79, + 78, 128, 77, 69, 82, 75, 72, 65, 128, 77, 69, 82, 75, 72, 193, 77, 69, + 82, 73, 68, 73, 65, 78, 83, 128, 77, 69, 82, 73, 128, 77, 69, 82, 71, 69, + 128, 77, 69, 82, 67, 85, 82, 89, 128, 77, 69, 82, 67, 85, 82, 217, 77, + 69, 78, 79, 82, 65, 200, 77, 69, 78, 79, 69, 128, 77, 69, 78, 68, 85, 84, + 128, 77, 69, 78, 128, 77, 69, 77, 79, 128, 77, 69, 77, 66, 69, 82, 83, + 72, 73, 80, 128, 77, 69, 77, 66, 69, 82, 128, 77, 69, 77, 66, 69, 210, + 77, 69, 77, 45, 81, 79, 80, 72, 128, 77, 69, 77, 128, 77, 69, 205, 77, + 69, 76, 84, 73, 78, 199, 77, 69, 76, 79, 68, 73, 195, 77, 69, 76, 73, 75, + 128, 77, 69, 73, 90, 73, 128, 77, 69, 71, 65, 84, 79, 78, 128, 77, 69, + 71, 65, 80, 72, 79, 78, 69, 128, 77, 69, 71, 65, 76, 73, 128, 77, 69, 69, + 84, 79, 82, 85, 128, 77, 69, 69, 84, 69, 201, 77, 69, 69, 84, 128, 77, + 69, 69, 77, 85, 128, 77, 69, 69, 77, 128, 77, 69, 69, 202, 77, 69, 69, + 69, 69, 128, 77, 69, 68, 73, 85, 77, 128, 77, 69, 68, 73, 85, 205, 77, + 69, 68, 73, 69, 86, 65, 204, 77, 69, 68, 73, 67, 73, 78, 69, 128, 77, 69, + 68, 73, 67, 65, 204, 77, 69, 68, 73, 65, 204, 77, 69, 68, 69, 70, 65, 73, + 68, 82, 73, 206, 77, 69, 68, 65, 76, 128, 77, 69, 67, 72, 73, 75, 128, + 77, 69, 67, 72, 73, 203, 77, 69, 67, 72, 65, 78, 73, 67, 65, 204, 77, 69, + 65, 84, 128, 77, 69, 65, 212, 77, 69, 65, 83, 85, 82, 69, 196, 77, 69, + 65, 83, 85, 82, 69, 128, 77, 69, 65, 83, 85, 82, 197, 77, 69, 45, 77, 65, + 128, 77, 69, 45, 50, 128, 77, 69, 45, 49, 128, 77, 68, 85, 206, 77, 196, + 77, 67, 72, 213, 77, 67, 72, 65, 206, 77, 67, 128, 77, 195, 77, 66, 85, + 85, 128, 77, 66, 85, 79, 81, 128, 77, 66, 85, 79, 128, 77, 66, 85, 69, + 128, 77, 66, 85, 65, 69, 77, 128, 77, 66, 85, 65, 69, 128, 77, 66, 79, + 79, 128, 77, 66, 79, 128, 77, 66, 73, 84, 128, 77, 66, 73, 212, 77, 66, + 73, 82, 73, 69, 69, 78, 128, 77, 66, 73, 128, 77, 66, 69, 85, 88, 128, + 77, 66, 69, 85, 82, 73, 128, 77, 66, 69, 85, 77, 128, 77, 66, 69, 82, 65, + 69, 128, 77, 66, 69, 78, 128, 77, 66, 69, 69, 75, 69, 69, 84, 128, 77, + 66, 69, 69, 128, 77, 66, 69, 128, 77, 66, 65, 81, 128, 77, 66, 65, 78, + 89, 73, 128, 77, 66, 65, 65, 82, 65, 69, 128, 77, 66, 65, 65, 75, 69, 84, + 128, 77, 66, 65, 65, 128, 77, 66, 65, 193, 77, 66, 193, 77, 66, 52, 128, + 77, 66, 51, 128, 77, 66, 50, 128, 77, 65, 89, 69, 203, 77, 65, 89, 65, + 78, 78, 65, 128, 77, 65, 89, 65, 206, 77, 65, 89, 128, 77, 65, 88, 73, + 77, 73, 90, 69, 128, 77, 65, 88, 73, 77, 65, 128, 77, 65, 88, 128, 77, + 65, 85, 128, 77, 65, 84, 84, 79, 67, 75, 128, 77, 65, 84, 82, 73, 88, + 128, 77, 65, 84, 69, 82, 73, 65, 76, 83, 128, 77, 65, 84, 128, 77, 65, + 83, 213, 77, 65, 83, 83, 73, 78, 71, 128, 77, 65, 83, 83, 65, 71, 69, + 128, 77, 65, 83, 79, 82, 193, 77, 65, 83, 75, 128, 77, 65, 83, 203, 77, + 65, 83, 72, 70, 65, 65, 84, 128, 77, 65, 83, 72, 50, 128, 77, 65, 83, 67, + 85, 76, 73, 78, 197, 77, 65, 83, 65, 82, 65, 205, 77, 65, 82, 89, 128, + 77, 65, 82, 87, 65, 82, 201, 77, 65, 82, 85, 75, 85, 128, 77, 65, 82, 84, + 89, 82, 73, 193, 77, 65, 82, 84, 73, 65, 204, 77, 65, 82, 82, 89, 73, 78, + 199, 77, 65, 82, 82, 73, 65, 71, 197, 77, 65, 82, 82, 65, 84, 65, 78, + 128, 77, 65, 82, 75, 211, 77, 65, 82, 75, 69, 82, 128, 77, 65, 82, 75, + 45, 52, 128, 77, 65, 82, 75, 45, 51, 128, 77, 65, 82, 75, 45, 50, 128, + 77, 65, 82, 75, 45, 49, 128, 77, 65, 82, 69, 128, 77, 65, 82, 67, 72, 69, + 206, 77, 65, 82, 67, 72, 128, 77, 65, 82, 67, 65, 84, 79, 45, 83, 84, 65, + 67, 67, 65, 84, 79, 128, 77, 65, 82, 67, 65, 84, 79, 128, 77, 65, 82, 67, + 65, 83, 73, 84, 69, 128, 77, 65, 82, 66, 85, 84, 65, 128, 77, 65, 82, 66, + 85, 84, 193, 77, 65, 82, 65, 67, 65, 83, 128, 77, 65, 82, 128, 77, 65, + 81, 65, 70, 128, 77, 65, 81, 128, 77, 65, 80, 76, 197, 77, 65, 80, 73, + 81, 128, 77, 65, 208, 77, 65, 79, 128, 77, 65, 78, 85, 65, 204, 77, 65, + 78, 84, 69, 76, 80, 73, 69, 67, 197, 77, 65, 78, 83, 89, 79, 78, 128, 77, + 65, 78, 83, 85, 65, 69, 128, 77, 65, 78, 78, 65, 218, 77, 65, 78, 78, 65, + 128, 77, 65, 78, 73, 67, 72, 65, 69, 65, 206, 77, 65, 78, 71, 79, 128, + 77, 65, 78, 71, 65, 76, 65, 77, 128, 77, 65, 78, 68, 65, 82, 73, 78, 128, + 77, 65, 78, 68, 65, 73, 76, 73, 78, 199, 77, 65, 78, 68, 65, 73, 195, 77, + 65, 78, 67, 72, 213, 77, 65, 78, 65, 212, 77, 65, 78, 65, 67, 76, 69, 83, + 128, 77, 65, 77, 77, 79, 84, 72, 128, 77, 65, 76, 84, 69, 83, 197, 77, + 65, 76, 207, 77, 65, 76, 69, 69, 82, 73, 128, 77, 65, 76, 197, 77, 65, + 76, 65, 75, 79, 206, 77, 65, 75, 83, 85, 82, 65, 128, 77, 65, 75, 83, 85, + 82, 193, 77, 65, 75, 69, 77, 65, 75, 69, 128, 77, 65, 75, 65, 83, 65, + 210, 77, 65, 73, 90, 69, 128, 77, 65, 73, 89, 65, 77, 79, 75, 128, 77, + 65, 73, 84, 65, 73, 75, 72, 85, 128, 77, 65, 73, 82, 85, 128, 77, 65, 73, + 77, 85, 65, 78, 128, 77, 65, 73, 77, 65, 76, 65, 73, 128, 77, 65, 73, 76, + 66, 79, 216, 77, 65, 73, 75, 85, 82, 79, 128, 77, 65, 73, 68, 69, 78, + 128, 77, 65, 73, 128, 77, 65, 72, 74, 79, 78, 199, 77, 65, 72, 72, 65, + 128, 77, 65, 72, 65, 80, 82, 65, 78, 65, 128, 77, 65, 72, 65, 80, 65, 75, + 72, 128, 77, 65, 72, 65, 74, 65, 78, 201, 77, 65, 72, 65, 65, 80, 82, 65, + 65, 78, 193, 77, 65, 72, 128, 77, 65, 71, 78, 73, 70, 89, 73, 78, 199, + 77, 65, 71, 78, 69, 84, 128, 77, 65, 71, 73, 195, 77, 65, 71, 69, 128, + 77, 65, 69, 83, 73, 128, 77, 65, 69, 78, 89, 73, 128, 77, 65, 69, 78, 74, + 69, 84, 128, 77, 65, 69, 77, 86, 69, 85, 88, 128, 77, 65, 69, 77, 75, 80, + 69, 78, 128, 77, 65, 69, 77, 71, 66, 73, 69, 69, 128, 77, 65, 69, 77, 66, + 71, 66, 73, 69, 69, 128, 77, 65, 69, 77, 66, 65, 128, 77, 65, 69, 77, + 128, 77, 65, 69, 76, 69, 69, 128, 77, 65, 69, 75, 69, 85, 80, 128, 77, + 65, 68, 89, 65, 128, 77, 65, 68, 85, 128, 77, 65, 68, 68, 65, 72, 128, + 77, 65, 68, 68, 65, 200, 77, 65, 68, 68, 65, 128, 77, 65, 68, 68, 193, + 77, 65, 67, 82, 79, 78, 45, 71, 82, 65, 86, 69, 128, 77, 65, 67, 82, 79, + 78, 45, 66, 82, 69, 86, 69, 128, 77, 65, 67, 82, 79, 78, 45, 65, 67, 85, + 84, 69, 128, 77, 65, 67, 82, 79, 78, 128, 77, 65, 67, 82, 79, 206, 77, + 65, 67, 72, 73, 78, 69, 128, 77, 65, 65, 89, 89, 65, 65, 128, 77, 65, 65, + 73, 128, 77, 65, 65, 128, 77, 65, 50, 128, 77, 65, 45, 55, 128, 77, 65, + 45, 54, 128, 77, 65, 45, 53, 128, 77, 65, 45, 52, 128, 77, 65, 45, 51, + 128, 77, 65, 45, 50, 128, 77, 65, 45, 49, 128, 77, 49, 57, 183, 77, 49, + 57, 182, 77, 49, 57, 181, 77, 49, 57, 180, 77, 49, 57, 179, 77, 49, 57, + 178, 77, 49, 57, 177, 77, 49, 57, 176, 77, 49, 56, 185, 77, 49, 56, 184, + 77, 49, 56, 183, 77, 49, 56, 182, 77, 49, 56, 181, 77, 49, 56, 180, 77, + 49, 56, 179, 77, 49, 56, 178, 77, 49, 56, 177, 77, 49, 56, 176, 77, 49, + 55, 185, 77, 49, 55, 184, 77, 49, 55, 183, 77, 49, 55, 182, 77, 49, 55, + 181, 77, 49, 55, 180, 77, 49, 55, 179, 77, 49, 55, 178, 77, 49, 55, 177, + 77, 49, 55, 176, 77, 49, 54, 185, 77, 49, 54, 184, 77, 49, 54, 183, 77, + 49, 54, 182, 77, 49, 54, 181, 77, 49, 54, 180, 77, 49, 54, 179, 77, 49, + 54, 178, 77, 49, 54, 177, 77, 49, 54, 176, 77, 49, 53, 185, 77, 49, 53, + 184, 77, 49, 53, 183, 77, 49, 53, 182, 77, 49, 53, 181, 77, 49, 53, 180, + 77, 49, 53, 179, 77, 49, 53, 178, 77, 49, 53, 177, 77, 49, 53, 176, 77, + 49, 52, 185, 77, 49, 52, 184, 77, 49, 52, 183, 77, 49, 52, 182, 77, 49, + 52, 181, 77, 49, 52, 180, 77, 49, 52, 179, 77, 49, 52, 178, 77, 49, 52, + 177, 77, 49, 52, 176, 77, 49, 51, 185, 77, 49, 51, 184, 77, 49, 51, 183, + 77, 49, 51, 182, 77, 49, 51, 181, 77, 49, 51, 180, 77, 49, 51, 179, 77, + 49, 51, 178, 77, 49, 51, 177, 77, 49, 51, 176, 77, 49, 50, 185, 77, 49, + 50, 184, 77, 49, 50, 183, 77, 49, 50, 182, 77, 49, 50, 181, 77, 49, 50, + 180, 77, 49, 50, 179, 77, 49, 50, 178, 77, 49, 50, 177, 77, 49, 50, 176, + 77, 49, 49, 185, 77, 49, 49, 184, 77, 49, 49, 183, 77, 49, 49, 182, 77, + 49, 49, 181, 77, 49, 49, 180, 77, 49, 49, 179, 77, 49, 49, 178, 77, 49, + 49, 177, 77, 49, 49, 176, 77, 49, 48, 185, 77, 49, 48, 184, 77, 49, 48, + 183, 77, 49, 48, 182, 77, 49, 48, 181, 77, 49, 48, 180, 77, 49, 48, 179, + 77, 49, 48, 178, 77, 49, 48, 177, 77, 49, 48, 176, 77, 48, 57, 185, 77, + 48, 57, 184, 77, 48, 57, 183, 77, 48, 57, 182, 77, 48, 57, 181, 77, 48, + 57, 180, 77, 48, 57, 179, 77, 48, 57, 178, 77, 48, 57, 177, 77, 48, 57, + 176, 77, 48, 56, 185, 77, 48, 56, 184, 77, 48, 56, 183, 77, 48, 56, 182, + 77, 48, 56, 181, 77, 48, 56, 180, 77, 48, 56, 179, 77, 48, 56, 178, 77, + 48, 56, 177, 77, 48, 56, 176, 77, 48, 55, 185, 77, 48, 55, 184, 77, 48, + 55, 183, 77, 48, 55, 182, 77, 48, 55, 181, 77, 48, 55, 180, 77, 48, 55, + 179, 77, 48, 55, 178, 77, 48, 55, 177, 77, 48, 55, 176, 77, 48, 54, 185, + 77, 48, 54, 184, 77, 48, 54, 183, 77, 48, 54, 182, 77, 48, 54, 181, 77, + 48, 54, 180, 77, 48, 54, 179, 77, 48, 54, 178, 77, 48, 54, 177, 77, 48, + 54, 176, 77, 48, 53, 185, 77, 48, 53, 184, 77, 48, 53, 183, 77, 48, 53, + 182, 77, 48, 53, 181, 77, 48, 53, 180, 77, 48, 53, 179, 77, 48, 53, 178, + 77, 48, 53, 177, 77, 48, 53, 176, 77, 48, 52, 185, 77, 48, 52, 184, 77, + 48, 52, 183, 77, 48, 52, 182, 77, 48, 52, 181, 77, 48, 52, 52, 128, 77, + 48, 52, 180, 77, 48, 52, 51, 128, 77, 48, 52, 179, 77, 48, 52, 50, 128, + 77, 48, 52, 178, 77, 48, 52, 49, 128, 77, 48, 52, 177, 77, 48, 52, 48, + 65, 128, 77, 48, 52, 48, 128, 77, 48, 52, 176, 77, 48, 51, 57, 128, 77, + 48, 51, 185, 77, 48, 51, 56, 128, 77, 48, 51, 184, 77, 48, 51, 55, 128, + 77, 48, 51, 183, 77, 48, 51, 54, 128, 77, 48, 51, 182, 77, 48, 51, 53, + 128, 77, 48, 51, 181, 77, 48, 51, 52, 128, 77, 48, 51, 180, 77, 48, 51, + 51, 66, 128, 77, 48, 51, 51, 65, 128, 77, 48, 51, 51, 128, 77, 48, 51, + 179, 77, 48, 51, 50, 128, 77, 48, 51, 178, 77, 48, 51, 49, 65, 128, 77, + 48, 51, 49, 128, 77, 48, 51, 177, 77, 48, 51, 48, 128, 77, 48, 51, 176, + 77, 48, 50, 57, 128, 77, 48, 50, 185, 77, 48, 50, 56, 65, 128, 77, 48, + 50, 56, 128, 77, 48, 50, 184, 77, 48, 50, 55, 128, 77, 48, 50, 183, 77, + 48, 50, 54, 128, 77, 48, 50, 182, 77, 48, 50, 53, 128, 77, 48, 50, 181, + 77, 48, 50, 52, 65, 128, 77, 48, 50, 52, 128, 77, 48, 50, 180, 77, 48, + 50, 51, 128, 77, 48, 50, 179, 77, 48, 50, 50, 65, 128, 77, 48, 50, 50, + 128, 77, 48, 50, 178, 77, 48, 50, 49, 128, 77, 48, 50, 177, 77, 48, 50, + 48, 128, 77, 48, 50, 176, 77, 48, 49, 57, 128, 77, 48, 49, 185, 77, 48, + 49, 56, 128, 77, 48, 49, 184, 77, 48, 49, 55, 65, 128, 77, 48, 49, 55, + 128, 77, 48, 49, 183, 77, 48, 49, 54, 65, 128, 77, 48, 49, 54, 128, 77, + 48, 49, 182, 77, 48, 49, 53, 65, 128, 77, 48, 49, 53, 128, 77, 48, 49, + 181, 77, 48, 49, 52, 128, 77, 48, 49, 180, 77, 48, 49, 51, 128, 77, 48, + 49, 179, 77, 48, 49, 50, 72, 128, 77, 48, 49, 50, 71, 128, 77, 48, 49, + 50, 70, 128, 77, 48, 49, 50, 69, 128, 77, 48, 49, 50, 68, 128, 77, 48, + 49, 50, 67, 128, 77, 48, 49, 50, 66, 128, 77, 48, 49, 50, 65, 128, 77, + 48, 49, 50, 128, 77, 48, 49, 178, 77, 48, 49, 49, 128, 77, 48, 49, 177, + 77, 48, 49, 48, 65, 128, 77, 48, 49, 48, 128, 77, 48, 49, 176, 77, 48, + 48, 57, 128, 77, 48, 48, 185, 77, 48, 48, 56, 128, 77, 48, 48, 184, 77, + 48, 48, 55, 128, 77, 48, 48, 183, 77, 48, 48, 54, 128, 77, 48, 48, 182, + 77, 48, 48, 53, 128, 77, 48, 48, 181, 77, 48, 48, 52, 128, 77, 48, 48, + 180, 77, 48, 48, 51, 65, 128, 77, 48, 48, 51, 128, 77, 48, 48, 179, 77, + 48, 48, 50, 128, 77, 48, 48, 178, 77, 48, 48, 49, 66, 128, 77, 48, 48, + 49, 65, 128, 77, 48, 48, 49, 128, 77, 48, 48, 177, 76, 218, 76, 89, 89, + 128, 76, 89, 88, 128, 76, 89, 84, 128, 76, 89, 82, 88, 128, 76, 89, 82, + 128, 76, 89, 80, 128, 76, 89, 73, 84, 128, 76, 89, 73, 78, 199, 76, 89, + 68, 73, 65, 206, 76, 89, 67, 73, 65, 206, 76, 88, 128, 76, 87, 79, 79, + 128, 76, 87, 79, 128, 76, 87, 73, 73, 128, 76, 87, 73, 128, 76, 87, 69, + 128, 76, 87, 65, 65, 128, 76, 87, 65, 128, 76, 85, 88, 128, 76, 85, 85, + 128, 76, 85, 84, 128, 76, 85, 82, 88, 128, 76, 85, 80, 128, 76, 85, 79, + 88, 128, 76, 85, 79, 84, 128, 76, 85, 79, 80, 128, 76, 85, 79, 128, 76, + 85, 78, 71, 83, 73, 128, 76, 85, 78, 71, 83, 128, 76, 85, 78, 65, 84, + 197, 76, 85, 78, 65, 210, 76, 85, 205, 76, 85, 76, 128, 76, 85, 73, 83, + 128, 76, 85, 72, 85, 82, 128, 76, 85, 72, 128, 76, 85, 200, 76, 85, 71, + 71, 65, 71, 69, 128, 76, 85, 71, 65, 76, 128, 76, 85, 71, 65, 204, 76, + 85, 69, 128, 76, 85, 197, 76, 85, 66, 128, 76, 85, 65, 69, 80, 128, 76, + 85, 51, 128, 76, 85, 50, 128, 76, 85, 178, 76, 82, 79, 128, 76, 82, 77, + 128, 76, 82, 73, 128, 76, 82, 69, 128, 76, 79, 90, 69, 78, 71, 69, 128, + 76, 79, 90, 69, 78, 71, 197, 76, 79, 88, 128, 76, 79, 87, 69, 82, 69, + 196, 76, 79, 87, 45, 82, 69, 86, 69, 82, 83, 69, 68, 45, 185, 76, 79, 87, + 45, 77, 73, 196, 76, 79, 87, 45, 70, 65, 76, 76, 73, 78, 199, 76, 79, 87, + 45, 185, 76, 79, 86, 197, 76, 79, 85, 82, 69, 128, 76, 79, 85, 68, 83, + 80, 69, 65, 75, 69, 82, 128, 76, 79, 85, 68, 76, 217, 76, 79, 84, 85, 83, + 128, 76, 79, 84, 85, 211, 76, 79, 84, 73, 79, 206, 76, 79, 84, 128, 76, + 79, 83, 212, 76, 79, 83, 83, 76, 69, 83, 83, 128, 76, 79, 82, 82, 89, + 128, 76, 79, 82, 82, 65, 73, 78, 69, 128, 76, 79, 81, 128, 76, 79, 80, + 128, 76, 79, 79, 84, 128, 76, 79, 79, 80, 69, 196, 76, 79, 79, 80, 128, + 76, 79, 79, 208, 76, 79, 79, 78, 128, 76, 79, 79, 203, 76, 79, 79, 128, + 76, 79, 78, 83, 85, 77, 128, 76, 79, 78, 71, 65, 128, 76, 79, 78, 71, + 193, 76, 79, 78, 71, 45, 76, 69, 71, 71, 69, 196, 76, 79, 78, 71, 45, 66, + 82, 65, 78, 67, 72, 45, 89, 82, 128, 76, 79, 78, 71, 45, 66, 82, 65, 78, + 67, 72, 45, 83, 79, 204, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, + 79, 83, 211, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 77, 65, 68, + 210, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 72, 65, 71, 65, 76, + 204, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 65, 210, 76, 79, 77, + 77, 65, 69, 128, 76, 79, 77, 75, 65, 128, 76, 79, 77, 128, 76, 79, 205, + 76, 79, 76, 76, 73, 80, 79, 80, 128, 76, 79, 76, 76, 128, 76, 79, 71, + 210, 76, 79, 71, 79, 84, 89, 80, 197, 76, 79, 71, 79, 71, 82, 65, 205, + 76, 79, 71, 128, 76, 79, 68, 69, 83, 84, 79, 78, 69, 128, 76, 79, 67, 79, + 77, 79, 84, 73, 86, 69, 128, 76, 79, 67, 75, 73, 78, 71, 45, 83, 72, 73, + 70, 212, 76, 79, 67, 65, 84, 73, 86, 69, 128, 76, 79, 67, 65, 84, 73, 79, + 78, 45, 87, 65, 76, 76, 80, 76, 65, 78, 197, 76, 79, 67, 65, 84, 73, 79, + 78, 45, 70, 76, 79, 79, 82, 80, 76, 65, 78, 197, 76, 79, 67, 65, 84, 73, + 79, 78, 128, 76, 79, 67, 65, 84, 73, 79, 206, 76, 79, 66, 83, 84, 69, 82, + 128, 76, 79, 65, 128, 76, 78, 128, 76, 76, 85, 85, 128, 76, 76, 79, 79, + 128, 76, 76, 76, 85, 85, 128, 76, 76, 76, 85, 128, 76, 76, 76, 79, 79, + 128, 76, 76, 76, 79, 128, 76, 76, 76, 73, 73, 128, 76, 76, 76, 73, 128, + 76, 76, 76, 69, 69, 128, 76, 76, 76, 69, 128, 76, 76, 76, 65, 85, 128, + 76, 76, 76, 65, 73, 128, 76, 76, 76, 65, 65, 128, 76, 76, 76, 65, 128, + 76, 76, 76, 128, 76, 76, 72, 65, 128, 76, 76, 65, 77, 65, 128, 76, 74, + 85, 68, 73, 74, 69, 128, 76, 74, 69, 128, 76, 74, 128, 76, 73, 90, 65, + 82, 68, 128, 76, 73, 88, 128, 76, 73, 87, 78, 128, 76, 73, 86, 82, 197, + 76, 73, 84, 84, 76, 69, 128, 76, 73, 84, 84, 76, 197, 76, 73, 84, 84, 69, + 210, 76, 73, 84, 82, 193, 76, 73, 84, 200, 76, 73, 83, 213, 76, 73, 83, + 128, 76, 73, 82, 193, 76, 73, 81, 85, 73, 68, 128, 76, 73, 81, 85, 73, + 196, 76, 73, 81, 128, 76, 73, 80, 83, 84, 73, 67, 75, 128, 76, 73, 80, + 211, 76, 73, 208, 76, 73, 78, 75, 73, 78, 199, 76, 73, 78, 75, 69, 196, + 76, 73, 78, 203, 76, 73, 78, 71, 83, 65, 128, 76, 73, 78, 69, 83, 128, + 76, 73, 78, 69, 211, 76, 73, 78, 69, 45, 57, 128, 76, 73, 78, 69, 45, 55, + 128, 76, 73, 78, 69, 45, 51, 128, 76, 73, 78, 69, 45, 49, 128, 76, 73, + 77, 77, 85, 52, 128, 76, 73, 77, 77, 85, 50, 128, 76, 73, 77, 77, 85, + 128, 76, 73, 77, 77, 213, 76, 73, 77, 73, 84, 69, 196, 76, 73, 77, 73, + 84, 65, 84, 73, 79, 78, 128, 76, 73, 77, 73, 84, 128, 76, 73, 77, 69, + 128, 76, 73, 77, 66, 213, 76, 73, 77, 66, 211, 76, 73, 77, 194, 76, 73, + 76, 89, 128, 76, 73, 76, 73, 84, 72, 128, 76, 73, 76, 128, 76, 73, 71, + 72, 84, 78, 73, 78, 71, 128, 76, 73, 71, 72, 84, 78, 73, 78, 199, 76, 73, + 71, 72, 84, 72, 79, 85, 83, 69, 128, 76, 73, 71, 72, 84, 128, 76, 73, 71, + 65, 84, 73, 78, 199, 76, 73, 70, 84, 69, 82, 128, 76, 73, 70, 69, 128, + 76, 73, 69, 88, 128, 76, 73, 69, 84, 128, 76, 73, 69, 80, 128, 76, 73, + 69, 69, 128, 76, 73, 69, 128, 76, 73, 68, 128, 76, 73, 67, 75, 73, 78, + 199, 76, 73, 66, 82, 65, 128, 76, 73, 66, 69, 82, 84, 89, 128, 76, 73, + 65, 66, 73, 76, 73, 84, 217, 76, 72, 73, 73, 128, 76, 72, 65, 86, 73, 89, + 65, 78, 73, 128, 76, 72, 65, 199, 76, 72, 65, 65, 128, 76, 72, 128, 76, + 69, 90, 72, 128, 76, 69, 90, 200, 76, 69, 88, 128, 76, 69, 86, 73, 84, + 65, 84, 73, 78, 71, 128, 76, 69, 86, 69, 76, 45, 51, 128, 76, 69, 86, 69, + 76, 45, 50, 128, 76, 69, 85, 77, 128, 76, 69, 85, 65, 69, 80, 128, 76, + 69, 85, 65, 69, 77, 128, 76, 69, 85, 128, 76, 69, 213, 76, 69, 84, 84, + 69, 82, 83, 128, 76, 69, 84, 84, 69, 82, 128, 76, 69, 212, 76, 69, 83, + 83, 69, 210, 76, 69, 83, 83, 45, 84, 72, 65, 78, 128, 76, 69, 83, 83, 45, + 84, 72, 65, 206, 76, 69, 83, 72, 128, 76, 69, 80, 67, 72, 193, 76, 69, + 80, 128, 76, 69, 79, 80, 65, 82, 68, 128, 76, 69, 79, 128, 76, 69, 78, + 84, 73, 67, 85, 76, 65, 210, 76, 69, 78, 73, 83, 128, 76, 69, 78, 73, + 211, 76, 69, 78, 71, 84, 72, 69, 78, 69, 82, 128, 76, 69, 78, 71, 84, 72, + 45, 55, 128, 76, 69, 78, 71, 84, 72, 45, 54, 128, 76, 69, 78, 71, 84, 72, + 45, 53, 128, 76, 69, 78, 71, 84, 72, 45, 52, 128, 76, 69, 78, 71, 84, 72, + 45, 51, 128, 76, 69, 78, 71, 84, 72, 45, 50, 128, 76, 69, 78, 71, 84, 72, + 45, 49, 128, 76, 69, 78, 71, 84, 200, 76, 69, 78, 71, 65, 128, 76, 69, + 78, 71, 193, 76, 69, 77, 79, 78, 128, 76, 69, 77, 79, 73, 128, 76, 69, + 76, 69, 84, 128, 76, 69, 76, 69, 212, 76, 69, 203, 76, 69, 73, 77, 77, + 65, 128, 76, 69, 73, 77, 77, 193, 76, 69, 73, 128, 76, 69, 71, 83, 128, + 76, 69, 71, 73, 79, 78, 128, 76, 69, 71, 69, 84, 79, 211, 76, 69, 71, + 128, 76, 69, 199, 76, 69, 70, 84, 87, 65, 82, 68, 83, 128, 76, 69, 70, + 84, 45, 84, 79, 45, 82, 73, 71, 72, 212, 76, 69, 70, 84, 45, 83, 84, 69, + 205, 76, 69, 70, 84, 45, 83, 73, 68, 197, 76, 69, 70, 84, 45, 83, 72, 65, + 68, 69, 196, 76, 69, 70, 84, 45, 80, 79, 73, 78, 84, 73, 78, 199, 76, 69, + 70, 84, 45, 76, 73, 71, 72, 84, 69, 196, 76, 69, 70, 84, 45, 72, 65, 78, + 68, 69, 196, 76, 69, 70, 84, 45, 72, 65, 78, 196, 76, 69, 70, 84, 45, 70, + 65, 67, 73, 78, 199, 76, 69, 70, 84, 128, 76, 69, 69, 82, 65, 69, 87, 65, + 128, 76, 69, 69, 75, 128, 76, 69, 69, 69, 69, 128, 76, 69, 68, 71, 69, + 82, 128, 76, 69, 65, 84, 72, 69, 82, 128, 76, 69, 65, 78, 73, 78, 199, + 76, 69, 65, 70, 217, 76, 69, 65, 70, 128, 76, 69, 65, 198, 76, 69, 65, + 68, 69, 82, 128, 76, 69, 65, 196, 76, 68, 65, 78, 128, 76, 68, 50, 128, + 76, 67, 201, 76, 67, 197, 76, 65, 90, 217, 76, 65, 89, 65, 78, 78, 65, + 128, 76, 65, 88, 128, 76, 65, 87, 128, 76, 65, 215, 76, 65, 85, 76, 65, + 128, 76, 65, 85, 75, 65, 218, 76, 65, 85, 74, 128, 76, 65, 85, 71, 72, + 73, 78, 71, 128, 76, 65, 84, 73, 78, 65, 84, 197, 76, 65, 84, 73, 75, + 128, 76, 65, 84, 69, 82, 65, 204, 76, 65, 84, 197, 76, 65, 83, 212, 76, + 65, 82, 89, 78, 71, 69, 65, 204, 76, 65, 82, 201, 76, 65, 82, 71, 69, 83, + 84, 128, 76, 65, 82, 71, 69, 210, 76, 65, 82, 71, 69, 128, 76, 65, 82, + 71, 197, 76, 65, 81, 128, 76, 65, 80, 65, 81, 128, 76, 65, 207, 76, 65, + 78, 84, 69, 82, 78, 128, 76, 65, 78, 84, 65, 78, 71, 128, 76, 65, 78, 71, + 85, 65, 71, 197, 76, 65, 78, 69, 83, 128, 76, 65, 78, 196, 76, 65, 78, + 128, 76, 65, 77, 80, 128, 76, 65, 77, 69, 68, 72, 128, 76, 65, 77, 69, + 68, 128, 76, 65, 77, 69, 196, 76, 65, 77, 69, 128, 76, 65, 77, 197, 76, + 65, 77, 68, 65, 128, 76, 65, 77, 68, 128, 76, 65, 77, 66, 68, 193, 76, + 65, 77, 65, 68, 72, 128, 76, 65, 76, 128, 76, 65, 204, 76, 65, 75, 75, + 72, 65, 78, 71, 89, 65, 79, 128, 76, 65, 75, 72, 65, 78, 128, 76, 65, 75, + 72, 128, 76, 65, 75, 200, 76, 65, 75, 45, 55, 52, 57, 128, 76, 65, 75, + 45, 55, 50, 52, 128, 76, 65, 75, 45, 54, 54, 56, 128, 76, 65, 75, 45, 54, + 52, 56, 128, 76, 65, 75, 45, 54, 52, 184, 76, 65, 75, 45, 54, 51, 54, + 128, 76, 65, 75, 45, 54, 49, 55, 128, 76, 65, 75, 45, 54, 49, 183, 76, + 65, 75, 45, 54, 48, 56, 128, 76, 65, 75, 45, 53, 53, 48, 128, 76, 65, 75, + 45, 52, 57, 53, 128, 76, 65, 75, 45, 52, 57, 51, 128, 76, 65, 75, 45, 52, + 57, 50, 128, 76, 65, 75, 45, 52, 57, 48, 128, 76, 65, 75, 45, 52, 56, 51, + 128, 76, 65, 75, 45, 52, 55, 48, 128, 76, 65, 75, 45, 52, 53, 55, 128, + 76, 65, 75, 45, 52, 53, 48, 128, 76, 65, 75, 45, 52, 52, 57, 128, 76, 65, + 75, 45, 52, 52, 185, 76, 65, 75, 45, 52, 52, 49, 128, 76, 65, 75, 45, 51, + 57, 48, 128, 76, 65, 75, 45, 51, 56, 52, 128, 76, 65, 75, 45, 51, 56, 51, + 128, 76, 65, 75, 45, 51, 52, 56, 128, 76, 65, 75, 45, 51, 52, 55, 128, + 76, 65, 75, 45, 51, 52, 51, 128, 76, 65, 75, 45, 50, 54, 54, 128, 76, 65, + 75, 45, 50, 54, 53, 128, 76, 65, 75, 45, 50, 51, 56, 128, 76, 65, 75, 45, + 50, 50, 56, 128, 76, 65, 75, 45, 50, 50, 53, 128, 76, 65, 75, 45, 50, 50, + 48, 128, 76, 65, 75, 45, 50, 49, 57, 128, 76, 65, 75, 45, 50, 49, 48, + 128, 76, 65, 75, 45, 49, 52, 50, 128, 76, 65, 75, 45, 49, 51, 48, 128, + 76, 65, 75, 45, 48, 57, 50, 128, 76, 65, 75, 45, 48, 56, 49, 128, 76, 65, + 75, 45, 48, 56, 177, 76, 65, 75, 45, 48, 56, 48, 128, 76, 65, 75, 45, 48, + 55, 185, 76, 65, 75, 45, 48, 54, 50, 128, 76, 65, 75, 45, 48, 53, 49, + 128, 76, 65, 75, 45, 48, 53, 48, 128, 76, 65, 75, 45, 48, 51, 48, 128, + 76, 65, 75, 45, 48, 50, 53, 128, 76, 65, 75, 45, 48, 50, 49, 128, 76, 65, + 75, 45, 48, 50, 48, 128, 76, 65, 75, 45, 48, 48, 51, 128, 76, 65, 74, 65, + 78, 89, 65, 76, 65, 78, 128, 76, 65, 73, 78, 199, 76, 65, 201, 76, 65, + 72, 83, 72, 85, 128, 76, 65, 72, 128, 76, 65, 71, 85, 83, 128, 76, 65, + 71, 213, 76, 65, 71, 65, 82, 128, 76, 65, 71, 65, 210, 76, 65, 71, 65, + 66, 128, 76, 65, 71, 65, 194, 76, 65, 69, 86, 128, 76, 65, 69, 128, 76, + 65, 68, 217, 76, 65, 68, 68, 69, 82, 128, 76, 65, 67, 82, 79, 83, 83, + 197, 76, 65, 67, 75, 128, 76, 65, 67, 65, 128, 76, 65, 66, 79, 85, 82, + 73, 78, 71, 128, 76, 65, 66, 79, 82, 128, 76, 65, 66, 73, 65, 76, 73, 90, + 65, 84, 73, 79, 206, 76, 65, 66, 73, 65, 204, 76, 65, 66, 69, 76, 128, + 76, 65, 66, 65, 84, 128, 76, 65, 194, 76, 65, 65, 78, 65, 69, 128, 76, + 65, 65, 78, 128, 76, 65, 65, 77, 85, 128, 76, 65, 65, 73, 128, 76, 54, + 128, 76, 52, 128, 76, 51, 128, 76, 50, 128, 76, 48, 48, 54, 65, 128, 76, + 48, 48, 50, 65, 128, 76, 45, 84, 89, 80, 197, 76, 45, 83, 72, 65, 80, 69, + 196, 75, 89, 85, 82, 73, 73, 128, 75, 89, 85, 128, 75, 89, 79, 128, 75, + 89, 76, 73, 83, 77, 65, 128, 75, 89, 73, 128, 75, 89, 69, 128, 75, 89, + 65, 84, 72, 79, 211, 75, 89, 65, 65, 128, 75, 89, 65, 128, 75, 88, 87, + 73, 128, 75, 88, 87, 69, 69, 128, 75, 88, 87, 69, 128, 75, 88, 87, 65, + 65, 128, 75, 88, 87, 65, 128, 75, 88, 85, 128, 75, 88, 79, 128, 75, 88, + 73, 128, 75, 88, 69, 69, 128, 75, 88, 69, 128, 75, 88, 65, 65, 128, 75, + 88, 65, 128, 75, 87, 86, 128, 75, 87, 85, 51, 49, 56, 128, 75, 87, 79, + 79, 128, 75, 87, 79, 128, 75, 87, 77, 128, 75, 87, 73, 73, 128, 75, 87, + 73, 128, 75, 87, 69, 69, 128, 75, 87, 69, 128, 75, 87, 66, 128, 75, 87, + 65, 89, 128, 75, 87, 65, 69, 84, 128, 75, 87, 65, 65, 128, 75, 86, 65, + 128, 75, 86, 128, 75, 85, 90, 72, 73, 128, 75, 85, 88, 128, 75, 85, 86, + 128, 75, 85, 85, 72, 128, 75, 85, 84, 128, 75, 85, 83, 77, 65, 128, 75, + 85, 83, 72, 85, 50, 128, 75, 85, 83, 72, 85, 178, 75, 85, 82, 88, 128, + 75, 85, 82, 85, 90, 69, 73, 82, 79, 128, 75, 85, 82, 84, 128, 75, 85, 82, + 79, 79, 78, 69, 128, 75, 85, 82, 128, 75, 85, 210, 75, 85, 81, 128, 75, + 85, 80, 78, 65, 89, 65, 128, 75, 85, 79, 88, 128, 75, 85, 79, 80, 128, + 75, 85, 79, 208, 75, 85, 79, 77, 128, 75, 85, 79, 128, 75, 85, 78, 71, + 128, 75, 85, 78, 68, 68, 65, 76, 73, 89, 65, 128, 75, 85, 76, 128, 75, + 85, 204, 75, 85, 71, 128, 75, 85, 70, 73, 83, 77, 65, 128, 75, 85, 69, + 84, 128, 75, 85, 66, 128, 75, 85, 65, 86, 128, 75, 85, 65, 66, 128, 75, + 85, 65, 128, 75, 85, 55, 128, 75, 85, 52, 128, 75, 85, 180, 75, 85, 51, + 128, 75, 85, 179, 75, 85, 45, 55, 128, 75, 85, 45, 54, 128, 75, 85, 45, + 53, 128, 75, 85, 45, 52, 128, 75, 85, 45, 51, 128, 75, 85, 45, 50, 128, + 75, 85, 45, 49, 128, 75, 84, 128, 75, 83, 83, 85, 85, 128, 75, 83, 83, + 85, 128, 75, 83, 83, 79, 79, 128, 75, 83, 83, 79, 128, 75, 83, 83, 73, + 73, 128, 75, 83, 83, 73, 128, 75, 83, 83, 69, 69, 128, 75, 83, 83, 69, + 128, 75, 83, 83, 65, 85, 128, 75, 83, 83, 65, 73, 128, 75, 83, 83, 65, + 65, 128, 75, 83, 83, 65, 128, 75, 83, 83, 128, 75, 83, 73, 128, 75, 82, + 89, 90, 72, 69, 86, 65, 89, 65, 128, 75, 82, 89, 90, 72, 69, 77, 128, 75, + 82, 89, 90, 72, 69, 205, 75, 82, 89, 90, 72, 128, 75, 82, 89, 90, 200, + 75, 82, 89, 85, 75, 79, 86, 65, 89, 65, 128, 75, 82, 89, 85, 75, 79, 86, + 65, 89, 193, 75, 82, 89, 85, 75, 128, 75, 82, 89, 85, 203, 75, 82, 79, + 78, 79, 83, 128, 75, 82, 69, 77, 65, 83, 84, 73, 128, 75, 82, 65, 84, 73, + 77, 79, 89, 80, 79, 82, 82, 79, 79, 78, 128, 75, 82, 65, 84, 73, 77, 79, + 75, 79, 85, 70, 73, 83, 77, 65, 128, 75, 82, 65, 84, 73, 77, 65, 84, 65, + 128, 75, 82, 65, 84, 73, 77, 193, 75, 80, 85, 128, 75, 80, 79, 81, 128, + 75, 80, 79, 79, 128, 75, 80, 79, 128, 75, 80, 73, 128, 75, 80, 69, 85, + 88, 128, 75, 80, 69, 69, 128, 75, 80, 69, 128, 75, 80, 65, 82, 65, 81, + 128, 75, 80, 65, 78, 128, 75, 80, 65, 72, 128, 75, 80, 65, 128, 75, 80, + 128, 75, 79, 88, 128, 75, 79, 86, 85, 85, 128, 75, 79, 86, 128, 75, 79, + 84, 79, 128, 75, 79, 82, 85, 78, 65, 128, 75, 79, 82, 79, 78, 73, 83, + 128, 75, 79, 82, 79, 78, 128, 75, 79, 82, 69, 65, 206, 75, 79, 82, 65, + 78, 73, 195, 75, 79, 81, 78, 68, 79, 78, 128, 75, 79, 80, 80, 65, 128, + 75, 79, 80, 128, 75, 79, 79, 86, 128, 75, 79, 79, 80, 79, 128, 75, 79, + 79, 77, 85, 85, 84, 128, 75, 79, 79, 66, 128, 75, 79, 79, 128, 75, 79, + 78, 84, 69, 86, 77, 65, 128, 75, 79, 78, 84, 69, 86, 77, 193, 75, 79, 77, + 201, 75, 79, 77, 66, 85, 86, 65, 128, 75, 79, 77, 66, 85, 86, 193, 75, + 79, 77, 66, 213, 75, 79, 75, 79, 128, 75, 79, 75, 69, 128, 75, 79, 75, + 128, 75, 79, 203, 75, 79, 73, 78, 73, 128, 75, 79, 73, 128, 75, 79, 201, + 75, 79, 72, 128, 75, 79, 71, 72, 79, 77, 128, 75, 79, 69, 84, 128, 75, + 79, 66, 89, 76, 65, 128, 75, 79, 66, 128, 75, 79, 65, 76, 65, 128, 75, + 79, 65, 128, 75, 79, 45, 75, 73, 128, 75, 79, 45, 51, 128, 75, 79, 45, + 50, 128, 75, 79, 45, 49, 128, 75, 78, 85, 67, 75, 76, 69, 83, 128, 75, + 78, 85, 67, 75, 76, 69, 128, 75, 78, 79, 84, 128, 75, 78, 79, 66, 83, + 128, 75, 78, 73, 71, 72, 84, 45, 82, 79, 79, 75, 128, 75, 78, 73, 71, 72, + 84, 45, 81, 85, 69, 69, 78, 128, 75, 78, 73, 71, 72, 84, 45, 66, 73, 83, + 72, 79, 80, 128, 75, 78, 73, 71, 72, 84, 128, 75, 78, 73, 71, 72, 212, + 75, 78, 73, 70, 69, 128, 75, 78, 73, 70, 197, 75, 78, 69, 69, 76, 73, 78, + 199, 75, 77, 128, 75, 205, 75, 76, 89, 85, 67, 72, 69, 86, 79, 89, 128, + 75, 76, 89, 85, 67, 72, 69, 86, 65, 89, 65, 128, 75, 76, 89, 85, 67, 72, + 69, 86, 65, 89, 193, 75, 76, 89, 85, 67, 72, 69, 80, 79, 86, 79, 68, 78, + 89, 128, 75, 76, 89, 85, 67, 72, 69, 80, 79, 86, 79, 68, 78, 65, 89, 65, + 128, 75, 76, 89, 85, 67, 72, 69, 78, 69, 80, 79, 83, 84, 79, 89, 65, 78, + 78, 89, 128, 75, 76, 89, 85, 67, 72, 69, 78, 69, 80, 79, 83, 84, 79, 89, + 65, 78, 78, 65, 89, 65, 128, 75, 76, 89, 85, 67, 72, 128, 75, 76, 73, 84, + 79, 78, 128, 75, 76, 65, 83, 77, 65, 128, 75, 76, 65, 83, 77, 193, 75, + 76, 65, 128, 75, 76, 128, 75, 75, 79, 128, 75, 75, 73, 128, 75, 75, 69, + 69, 128, 75, 75, 69, 128, 75, 75, 65, 128, 75, 75, 128, 75, 74, 69, 128, + 75, 73, 89, 69, 79, 75, 45, 84, 73, 75, 69, 85, 84, 128, 75, 73, 89, 69, + 79, 75, 45, 83, 73, 79, 83, 45, 75, 73, 89, 69, 79, 75, 128, 75, 73, 89, + 69, 79, 75, 45, 82, 73, 69, 85, 76, 128, 75, 73, 89, 69, 79, 75, 45, 80, + 73, 69, 85, 80, 128, 75, 73, 89, 69, 79, 75, 45, 78, 73, 69, 85, 78, 128, + 75, 73, 89, 69, 79, 75, 45, 75, 72, 73, 69, 85, 75, 72, 128, 75, 73, 89, + 69, 79, 75, 45, 67, 72, 73, 69, 85, 67, 72, 128, 75, 73, 89, 69, 79, 203, + 75, 73, 88, 128, 75, 73, 87, 73, 70, 82, 85, 73, 84, 128, 75, 73, 87, + 128, 75, 73, 86, 128, 75, 73, 84, 69, 128, 75, 73, 84, 128, 75, 73, 83, + 83, 73, 78, 199, 75, 73, 83, 83, 128, 75, 73, 83, 211, 75, 73, 83, 73, + 77, 53, 128, 75, 73, 83, 73, 77, 181, 75, 73, 83, 72, 128, 75, 73, 83, + 65, 76, 128, 75, 73, 82, 79, 87, 65, 84, 84, 79, 128, 75, 73, 82, 79, 77, + 69, 69, 84, 79, 82, 85, 128, 75, 73, 82, 79, 71, 85, 82, 65, 77, 85, 128, + 75, 73, 82, 79, 128, 75, 73, 82, 71, 72, 73, 218, 75, 73, 81, 128, 75, + 73, 80, 128, 75, 73, 208, 75, 73, 78, 83, 72, 73, 80, 128, 75, 73, 78, + 78, 193, 75, 73, 78, 68, 69, 82, 71, 65, 82, 84, 69, 78, 128, 75, 73, 77, + 79, 78, 79, 128, 75, 73, 76, 76, 69, 82, 128, 75, 73, 73, 90, 72, 128, + 75, 73, 73, 128, 75, 73, 72, 128, 75, 73, 69, 88, 128, 75, 73, 69, 86, + 65, 206, 75, 73, 69, 80, 128, 75, 73, 69, 69, 77, 128, 75, 73, 69, 128, + 75, 73, 68, 128, 75, 73, 196, 75, 73, 67, 75, 128, 75, 73, 66, 128, 75, + 73, 65, 86, 128, 75, 73, 65, 66, 128, 75, 73, 45, 56, 128, 75, 73, 45, + 55, 128, 75, 73, 45, 54, 128, 75, 73, 45, 53, 128, 75, 73, 45, 52, 128, + 75, 73, 45, 51, 128, 75, 73, 45, 50, 128, 75, 73, 45, 49, 128, 75, 72, + 90, 128, 75, 72, 87, 65, 73, 128, 75, 72, 85, 69, 78, 45, 76, 85, 197, + 75, 72, 85, 69, 206, 75, 72, 85, 68, 65, 87, 65, 68, 201, 75, 72, 85, 68, + 65, 77, 128, 75, 72, 85, 65, 84, 128, 75, 72, 79, 85, 128, 75, 72, 79, + 212, 75, 72, 79, 78, 78, 65, 128, 75, 72, 79, 78, 128, 75, 72, 79, 77, + 85, 84, 128, 75, 72, 79, 75, 72, 76, 79, 205, 75, 72, 79, 74, 75, 201, + 75, 72, 79, 128, 75, 72, 207, 75, 72, 77, 213, 75, 72, 73, 84, 128, 75, + 72, 73, 78, 89, 65, 128, 75, 72, 73, 69, 85, 75, 200, 75, 72, 73, 128, + 75, 72, 201, 75, 72, 72, 79, 128, 75, 72, 72, 65, 128, 75, 72, 69, 84, + 72, 128, 75, 72, 69, 73, 128, 75, 72, 69, 69, 128, 75, 72, 69, 128, 75, + 72, 65, 86, 128, 75, 72, 65, 82, 79, 83, 72, 84, 72, 201, 75, 72, 65, 82, + 128, 75, 72, 65, 80, 72, 128, 75, 72, 65, 78, 199, 75, 72, 65, 78, 68, + 65, 128, 75, 72, 65, 78, 68, 193, 75, 72, 65, 77, 84, 201, 75, 72, 65, + 77, 73, 76, 79, 128, 75, 72, 65, 75, 65, 83, 83, 73, 65, 206, 75, 72, 65, + 73, 128, 75, 72, 65, 72, 128, 75, 72, 65, 200, 75, 72, 65, 70, 128, 75, + 72, 65, 66, 128, 75, 72, 65, 65, 128, 75, 71, 128, 75, 69, 89, 67, 65, + 80, 128, 75, 69, 89, 67, 65, 208, 75, 69, 89, 66, 79, 65, 82, 68, 128, + 75, 69, 89, 66, 79, 65, 82, 196, 75, 69, 88, 128, 75, 69, 86, 128, 75, + 69, 85, 89, 69, 85, 88, 128, 75, 69, 85, 83, 72, 69, 85, 65, 69, 80, 128, + 75, 69, 85, 83, 69, 85, 88, 128, 75, 69, 85, 80, 85, 81, 128, 75, 69, 85, + 79, 212, 75, 69, 85, 77, 128, 75, 69, 85, 75, 69, 85, 84, 78, 68, 65, + 128, 75, 69, 85, 75, 65, 81, 128, 75, 69, 85, 65, 69, 84, 77, 69, 85, 78, + 128, 75, 69, 85, 65, 69, 82, 73, 128, 75, 69, 84, 84, 201, 75, 69, 83, + 72, 50, 128, 75, 69, 82, 69, 84, 128, 75, 69, 79, 87, 128, 75, 69, 78, + 84, 73, 77, 65, 84, 65, 128, 75, 69, 78, 84, 73, 77, 65, 84, 193, 75, 69, + 78, 84, 73, 77, 193, 75, 69, 78, 65, 84, 128, 75, 69, 78, 128, 75, 69, + 206, 75, 69, 77, 80, 85, 76, 128, 75, 69, 77, 80, 85, 204, 75, 69, 77, + 80, 76, 73, 128, 75, 69, 77, 80, 76, 201, 75, 69, 77, 80, 72, 82, 69, 78, + 71, 128, 75, 69, 77, 66, 65, 78, 71, 128, 75, 69, 76, 86, 73, 206, 75, + 69, 72, 69, 72, 128, 75, 69, 72, 69, 200, 75, 69, 72, 128, 75, 69, 70, + 85, 76, 65, 128, 75, 69, 69, 86, 128, 75, 69, 69, 83, 85, 128, 75, 69, + 69, 80, 73, 78, 199, 75, 69, 69, 78, 71, 128, 75, 69, 69, 66, 128, 75, + 69, 66, 128, 75, 69, 65, 65, 69, 128, 75, 67, 65, 76, 128, 75, 66, 128, + 75, 65, 90, 65, 75, 200, 75, 65, 89, 65, 78, 78, 65, 128, 75, 65, 89, 65, + 200, 75, 65, 88, 128, 75, 65, 87, 86, 128, 75, 65, 87, 73, 128, 75, 65, + 87, 201, 75, 65, 87, 66, 128, 75, 65, 86, 89, 75, 65, 128, 75, 65, 86, + 89, 75, 193, 75, 65, 86, 128, 75, 65, 85, 86, 128, 75, 65, 85, 78, 65, + 128, 75, 65, 85, 206, 75, 65, 85, 66, 128, 75, 65, 84, 79, 128, 75, 65, + 84, 72, 73, 83, 84, 73, 128, 75, 65, 84, 72, 65, 75, 193, 75, 65, 84, 65, + 86, 65, 83, 77, 65, 128, 75, 65, 84, 65, 86, 193, 75, 65, 84, 65, 75, 65, + 78, 65, 45, 72, 73, 82, 65, 71, 65, 78, 193, 75, 65, 83, 82, 65, 84, 65, + 78, 128, 75, 65, 83, 82, 65, 84, 65, 206, 75, 65, 83, 82, 65, 128, 75, + 65, 83, 82, 193, 75, 65, 83, 75, 65, 76, 128, 75, 65, 83, 75, 65, 204, + 75, 65, 83, 72, 77, 73, 82, 201, 75, 65, 82, 83, 72, 65, 78, 65, 128, 75, + 65, 82, 79, 82, 73, 73, 128, 75, 65, 82, 79, 82, 65, 78, 128, 75, 65, 82, + 79, 82, 128, 75, 65, 82, 207, 75, 65, 82, 69, 206, 75, 65, 82, 65, 84, + 84, 79, 128, 75, 65, 82, 65, 78, 128, 75, 65, 80, 89, 69, 79, 85, 78, 83, + 83, 65, 78, 71, 80, 73, 69, 85, 80, 128, 75, 65, 80, 89, 69, 79, 85, 78, + 82, 73, 69, 85, 76, 128, 75, 65, 80, 89, 69, 79, 85, 78, 80, 72, 73, 69, + 85, 80, 72, 128, 75, 65, 80, 89, 69, 79, 85, 78, 77, 73, 69, 85, 77, 128, + 75, 65, 80, 80, 65, 128, 75, 65, 80, 80, 193, 75, 65, 80, 79, 128, 75, + 65, 80, 72, 128, 75, 65, 80, 65, 76, 128, 75, 65, 80, 65, 128, 75, 65, + 208, 75, 65, 78, 84, 65, 74, 193, 75, 65, 78, 78, 65, 68, 193, 75, 65, + 78, 71, 65, 82, 79, 79, 128, 75, 65, 78, 71, 128, 75, 65, 78, 199, 75, + 65, 78, 65, 75, 79, 128, 75, 65, 77, 52, 128, 75, 65, 77, 50, 128, 75, + 65, 77, 128, 75, 65, 75, 84, 79, 86, 73, 203, 75, 65, 75, 79, 128, 75, + 65, 75, 65, 66, 65, 84, 128, 75, 65, 75, 128, 75, 65, 203, 75, 65, 73, + 86, 128, 75, 65, 73, 84, 72, 201, 75, 65, 73, 82, 73, 128, 75, 65, 73, + 66, 128, 75, 65, 73, 128, 75, 65, 201, 75, 65, 70, 65, 128, 75, 65, 70, + 128, 75, 65, 198, 75, 65, 68, 53, 128, 75, 65, 68, 181, 75, 65, 68, 52, + 128, 75, 65, 68, 51, 128, 75, 65, 68, 179, 75, 65, 68, 50, 128, 75, 65, + 68, 128, 75, 65, 67, 72, 75, 65, 128, 75, 65, 66, 193, 75, 65, 66, 128, + 75, 65, 65, 86, 128, 75, 65, 65, 73, 128, 75, 65, 65, 70, 85, 128, 75, + 65, 65, 70, 128, 75, 65, 65, 67, 85, 128, 75, 65, 65, 66, 65, 128, 75, + 65, 65, 66, 128, 75, 65, 50, 128, 75, 65, 178, 75, 65, 45, 75, 69, 128, + 75, 65, 45, 57, 128, 75, 65, 45, 56, 128, 75, 65, 45, 55, 128, 75, 65, + 45, 54, 128, 75, 65, 45, 53, 128, 75, 65, 45, 52, 128, 75, 65, 45, 51, + 128, 75, 65, 45, 50, 128, 75, 65, 45, 49, 49, 128, 75, 65, 45, 49, 48, + 128, 75, 65, 45, 49, 128, 75, 48, 48, 56, 128, 75, 48, 48, 55, 128, 75, + 48, 48, 54, 128, 75, 48, 48, 53, 128, 75, 48, 48, 52, 128, 75, 48, 48, + 51, 128, 75, 48, 48, 50, 128, 75, 48, 48, 49, 128, 74, 87, 65, 128, 74, + 85, 85, 128, 74, 85, 84, 128, 74, 85, 83, 84, 73, 70, 73, 67, 65, 84, 73, + 79, 78, 128, 74, 85, 80, 73, 84, 69, 82, 128, 74, 85, 79, 84, 128, 74, + 85, 79, 80, 128, 74, 85, 78, 79, 128, 74, 85, 78, 71, 83, 69, 79, 78, + 199, 74, 85, 78, 69, 128, 74, 85, 76, 89, 128, 74, 85, 71, 71, 76, 73, + 78, 71, 128, 74, 85, 69, 85, 73, 128, 74, 85, 68, 85, 76, 128, 74, 85, + 68, 71, 69, 128, 74, 85, 68, 69, 79, 45, 83, 80, 65, 78, 73, 83, 200, 74, + 79, 89, 83, 84, 73, 67, 75, 128, 74, 79, 89, 79, 85, 211, 74, 79, 89, + 128, 74, 79, 86, 69, 128, 74, 79, 212, 74, 79, 78, 71, 128, 74, 79, 78, + 193, 74, 79, 75, 69, 82, 128, 74, 79, 73, 78, 84, 83, 128, 74, 79, 73, + 78, 69, 68, 128, 74, 79, 73, 78, 128, 74, 79, 65, 128, 74, 78, 89, 65, + 128, 74, 74, 89, 88, 128, 74, 74, 89, 84, 128, 74, 74, 89, 80, 128, 74, + 74, 89, 128, 74, 74, 85, 88, 128, 74, 74, 85, 84, 128, 74, 74, 85, 82, + 88, 128, 74, 74, 85, 82, 128, 74, 74, 85, 80, 128, 74, 74, 85, 79, 88, + 128, 74, 74, 85, 79, 80, 128, 74, 74, 85, 79, 128, 74, 74, 85, 128, 74, + 74, 79, 88, 128, 74, 74, 79, 84, 128, 74, 74, 79, 80, 128, 74, 74, 79, + 128, 74, 74, 73, 88, 128, 74, 74, 73, 84, 128, 74, 74, 73, 80, 128, 74, + 74, 73, 69, 88, 128, 74, 74, 73, 69, 84, 128, 74, 74, 73, 69, 80, 128, + 74, 74, 73, 69, 128, 74, 74, 73, 128, 74, 74, 69, 69, 128, 74, 74, 69, + 128, 74, 74, 65, 128, 74, 73, 76, 128, 74, 73, 73, 77, 128, 74, 73, 73, + 128, 74, 73, 72, 86, 65, 77, 85, 76, 73, 89, 65, 128, 74, 73, 71, 83, 65, + 215, 74, 73, 65, 128, 74, 72, 79, 88, 128, 74, 72, 79, 128, 74, 72, 69, + 72, 128, 74, 72, 65, 89, 73, 78, 128, 74, 72, 65, 78, 128, 74, 72, 65, + 77, 128, 74, 72, 65, 65, 128, 74, 72, 65, 128, 74, 69, 85, 128, 74, 69, + 82, 85, 83, 65, 76, 69, 77, 128, 74, 69, 82, 65, 206, 74, 69, 82, 65, + 128, 74, 69, 82, 128, 74, 69, 76, 76, 89, 70, 73, 83, 72, 128, 74, 69, + 72, 128, 74, 69, 200, 74, 69, 71, 79, 71, 65, 78, 128, 74, 69, 69, 77, + 128, 74, 69, 69, 205, 74, 69, 65, 78, 83, 128, 74, 65, 89, 78, 128, 74, + 65, 89, 73, 78, 128, 74, 65, 89, 65, 78, 78, 65, 128, 74, 65, 87, 128, + 74, 65, 86, 73, 89, 65, 78, 73, 128, 74, 65, 86, 65, 78, 69, 83, 197, 74, + 65, 85, 128, 74, 65, 82, 128, 74, 65, 80, 65, 78, 69, 83, 197, 74, 65, + 80, 65, 78, 128, 74, 65, 78, 85, 65, 82, 89, 128, 74, 65, 76, 76, 65, 74, + 65, 76, 65, 76, 79, 85, 72, 79, 85, 128, 74, 65, 76, 76, 128, 74, 65, 73, + 206, 74, 65, 73, 128, 74, 65, 72, 128, 74, 65, 68, 69, 128, 74, 65, 67, + 75, 83, 128, 74, 65, 67, 75, 45, 79, 45, 76, 65, 78, 84, 69, 82, 78, 128, + 74, 65, 67, 203, 74, 45, 83, 73, 77, 80, 76, 73, 70, 73, 69, 196, 73, 90, + 72, 73, 84, 83, 65, 128, 73, 90, 72, 73, 84, 83, 193, 73, 90, 72, 69, + 128, 73, 90, 65, 75, 65, 89, 193, 73, 89, 69, 75, 128, 73, 89, 65, 78, + 78, 65, 128, 73, 85, 74, 65, 128, 73, 84, 211, 73, 84, 69, 82, 65, 84, + 73, 79, 206, 73, 84, 69, 77, 128, 73, 83, 83, 72, 65, 82, 128, 73, 83, + 79, 83, 67, 69, 76, 69, 211, 73, 83, 79, 78, 128, 73, 83, 79, 206, 73, + 83, 79, 76, 65, 84, 69, 128, 73, 83, 76, 65, 78, 68, 128, 73, 83, 72, 77, + 65, 65, 77, 128, 73, 83, 69, 78, 45, 73, 83, 69, 78, 128, 73, 83, 65, 75, + 73, 193, 73, 83, 45, 80, 73, 76, 76, 65, 128, 73, 82, 85, 89, 65, 78, 78, + 65, 128, 73, 82, 85, 85, 89, 65, 78, 78, 65, 128, 73, 82, 79, 78, 45, 67, + 79, 80, 80, 69, 210, 73, 82, 79, 78, 128, 73, 82, 66, 128, 73, 79, 84, + 73, 70, 73, 69, 196, 73, 79, 84, 65, 84, 69, 196, 73, 79, 84, 65, 128, + 73, 79, 84, 193, 73, 79, 82, 128, 73, 79, 78, 71, 128, 73, 79, 68, 72, + 65, 68, 72, 128, 73, 78, 86, 73, 83, 73, 66, 76, 197, 73, 78, 86, 69, 82, + 84, 69, 68, 128, 73, 78, 86, 69, 82, 84, 69, 196, 73, 78, 86, 69, 82, 84, + 69, 66, 82, 65, 84, 69, 128, 73, 78, 86, 69, 82, 83, 197, 73, 78, 84, 82, + 79, 68, 85, 67, 69, 82, 128, 73, 78, 84, 73, 128, 73, 78, 84, 69, 82, 83, + 89, 76, 76, 65, 66, 73, 195, 73, 78, 84, 69, 82, 83, 69, 67, 84, 73, 79, + 78, 128, 73, 78, 84, 69, 82, 83, 69, 67, 84, 73, 79, 206, 73, 78, 84, 69, + 82, 83, 69, 67, 84, 73, 78, 199, 73, 78, 84, 69, 82, 82, 79, 66, 65, 78, + 71, 128, 73, 78, 84, 69, 82, 82, 79, 66, 65, 78, 199, 73, 78, 84, 69, 82, + 80, 79, 76, 65, 84, 73, 79, 206, 73, 78, 84, 69, 82, 76, 79, 67, 75, 69, + 196, 73, 78, 84, 69, 82, 76, 73, 78, 69, 65, 210, 73, 78, 84, 69, 82, 76, + 65, 67, 69, 196, 73, 78, 84, 69, 82, 73, 79, 210, 73, 78, 84, 69, 82, 69, + 83, 212, 73, 78, 84, 69, 82, 67, 65, 76, 65, 84, 69, 128, 73, 78, 84, 69, + 71, 82, 65, 84, 73, 79, 78, 128, 73, 78, 84, 69, 71, 82, 65, 84, 73, 79, + 206, 73, 78, 84, 69, 71, 82, 65, 76, 128, 73, 78, 84, 69, 71, 82, 65, + 204, 73, 78, 83, 85, 76, 65, 210, 73, 78, 83, 84, 82, 85, 77, 69, 78, 84, + 65, 204, 73, 78, 83, 73, 68, 69, 128, 73, 78, 83, 73, 68, 197, 73, 78, + 83, 69, 82, 84, 73, 79, 206, 73, 78, 83, 69, 82, 212, 73, 78, 83, 69, 67, + 84, 128, 73, 78, 83, 67, 82, 73, 80, 84, 73, 79, 78, 65, 204, 73, 78, 80, + 85, 212, 73, 78, 78, 79, 67, 69, 78, 67, 69, 128, 73, 78, 78, 78, 128, + 73, 78, 78, 69, 82, 128, 73, 78, 78, 69, 210, 73, 78, 78, 128, 73, 78, + 73, 78, 71, 85, 128, 73, 78, 72, 73, 66, 73, 212, 73, 78, 72, 69, 82, 69, + 78, 212, 73, 78, 72, 65, 76, 69, 128, 73, 78, 71, 87, 65, 90, 128, 73, + 78, 70, 79, 82, 77, 65, 84, 73, 79, 206, 73, 78, 70, 76, 85, 69, 78, 67, + 69, 128, 73, 78, 70, 73, 78, 73, 84, 89, 128, 73, 78, 70, 73, 78, 73, 84, + 217, 73, 78, 68, 85, 83, 84, 82, 73, 65, 204, 73, 78, 68, 73, 82, 69, 67, + 212, 73, 78, 68, 73, 67, 84, 73, 79, 206, 73, 78, 68, 73, 67, 65, 84, 79, + 82, 128, 73, 78, 68, 73, 67, 65, 84, 79, 210, 73, 78, 68, 73, 195, 73, + 78, 68, 73, 65, 206, 73, 78, 68, 69, 88, 128, 73, 78, 68, 69, 80, 69, 78, + 68, 69, 78, 212, 73, 78, 67, 82, 69, 77, 69, 78, 84, 128, 73, 78, 67, 82, + 69, 65, 83, 69, 211, 73, 78, 67, 82, 69, 65, 83, 69, 128, 73, 78, 67, 82, + 69, 65, 83, 197, 73, 78, 67, 79, 77, 80, 76, 69, 84, 197, 73, 78, 67, 79, + 77, 73, 78, 199, 73, 78, 67, 76, 85, 68, 73, 78, 199, 73, 78, 67, 72, + 128, 73, 78, 66, 79, 216, 73, 78, 65, 80, 128, 73, 78, 45, 65, 76, 65, + 70, 128, 73, 77, 80, 69, 82, 73, 65, 204, 73, 77, 80, 69, 82, 70, 69, 67, + 84, 85, 205, 73, 77, 80, 69, 82, 70, 69, 67, 84, 65, 128, 73, 77, 80, 69, + 82, 70, 69, 67, 84, 193, 73, 77, 78, 128, 73, 77, 73, 83, 69, 79, 211, + 73, 77, 73, 78, 51, 128, 73, 77, 73, 78, 128, 73, 77, 73, 206, 73, 77, + 73, 70, 84, 72, 79, 82, 79, 78, 128, 73, 77, 73, 70, 84, 72, 79, 82, 65, + 128, 73, 77, 73, 70, 79, 78, 79, 78, 128, 73, 77, 73, 68, 73, 65, 82, 71, + 79, 78, 128, 73, 77, 65, 71, 197, 73, 77, 65, 65, 76, 65, 128, 73, 76, + 85, 89, 65, 78, 78, 65, 128, 73, 76, 85, 89, 128, 73, 76, 85, 85, 89, 65, + 78, 78, 65, 128, 73, 76, 85, 84, 128, 73, 76, 73, 77, 77, 85, 52, 128, + 73, 76, 73, 77, 77, 85, 51, 128, 73, 76, 73, 77, 77, 85, 128, 73, 76, 73, + 77, 77, 213, 73, 76, 50, 128, 73, 75, 73, 82, 128, 73, 75, 65, 82, 65, + 128, 73, 75, 65, 82, 193, 73, 74, 128, 73, 73, 89, 65, 78, 78, 65, 128, + 73, 71, 73, 128, 73, 71, 201, 73, 71, 71, 87, 83, 128, 73, 70, 73, 78, + 128, 73, 69, 85, 78, 71, 45, 84, 73, 75, 69, 85, 84, 128, 73, 69, 85, 78, + 71, 45, 84, 72, 73, 69, 85, 84, 72, 128, 73, 69, 85, 78, 71, 45, 82, 73, + 69, 85, 76, 128, 73, 69, 85, 78, 71, 45, 80, 73, 69, 85, 80, 128, 73, 69, + 85, 78, 71, 45, 80, 72, 73, 69, 85, 80, 72, 128, 73, 69, 85, 78, 71, 45, + 67, 73, 69, 85, 67, 128, 73, 69, 85, 78, 71, 45, 67, 72, 73, 69, 85, 67, + 72, 128, 73, 69, 85, 78, 199, 73, 68, 76, 69, 128, 73, 68, 73, 77, 128, + 73, 68, 73, 205, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 57, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 56, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 55, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 68, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 68, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 68, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 51, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 50, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 49, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 68, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 67, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 67, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 68, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 67, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 66, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 67, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 67, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 67, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 55, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 54, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 53, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 67, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 67, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 67, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 49, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 48, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 70, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 66, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 66, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 66, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 66, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 65, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 57, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 66, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 66, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 66, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 53, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 52, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 51, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 66, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 66, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 66, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 70, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 69, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 68, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 65, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 65, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 65, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 57, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 56, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 55, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 65, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 65, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 65, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 51, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 50, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 49, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 65, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 57, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 57, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 68, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 67, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 66, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 57, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 57, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 57, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 55, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 54, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 53, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 57, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 57, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 57, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 49, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 48, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 70, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 56, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 56, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 56, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 66, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 65, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 57, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 56, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 56, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 56, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 53, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 52, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 51, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 56, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 56, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 56, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 70, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 69, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 68, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 55, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 55, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 55, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 57, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 56, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 55, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 55, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 55, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 55, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 51, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 50, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 49, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 55, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 54, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 54, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 66, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 65, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 57, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 54, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 54, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 54, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 53, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 52, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 51, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 54, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 54, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 54, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 70, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 69, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 68, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 53, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 53, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 53, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 57, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 56, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 55, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 53, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 53, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 53, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 51, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 50, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 49, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 53, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 52, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 52, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 68, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 67, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 66, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 52, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 52, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 52, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 55, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 54, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 53, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 52, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 52, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 52, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 49, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 48, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 70, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 51, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 51, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 51, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 66, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 65, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 57, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 51, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 51, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 51, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 53, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 52, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 51, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 51, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 51, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 51, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 70, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 69, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 68, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 50, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 50, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 50, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 57, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 56, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 55, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 50, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 50, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 50, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 51, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 50, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 49, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 50, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 49, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 49, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 68, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 67, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 66, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 49, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 49, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 49, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 55, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 54, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 53, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 49, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 49, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 49, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 49, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 48, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 70, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 48, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 48, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 48, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 66, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 65, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 57, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 48, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 48, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 48, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 53, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 52, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 51, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 65, 48, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 65, 48, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 65, 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 70, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 69, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 68, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 70, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 70, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 70, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 57, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 56, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 55, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 70, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 70, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 70, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 51, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 50, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 49, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 70, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 69, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 69, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 68, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 67, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 66, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 69, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 69, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 69, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 55, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 54, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 53, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 69, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 69, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 69, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 49, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 48, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 70, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 68, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 68, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 68, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 66, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 65, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 57, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 68, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 68, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 68, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 53, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 52, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 51, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 68, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 68, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 68, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 70, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 69, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 68, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 67, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 67, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 67, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 57, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 56, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 55, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 67, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 67, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 67, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 51, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 50, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 49, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 67, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 66, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 66, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 68, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 67, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 66, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 66, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 66, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 66, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 55, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 54, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 53, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 66, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 66, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 66, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 49, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 48, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 70, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 65, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 65, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 65, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 66, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 65, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 57, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 65, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 65, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 65, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 53, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 52, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 51, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 65, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 65, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 65, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 70, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 69, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 68, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 57, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 57, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 57, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 57, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 56, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 55, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 57, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 57, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 57, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 51, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 50, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 49, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 57, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 56, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 56, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 68, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 67, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 66, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 56, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 56, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 56, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 55, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 54, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 53, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 56, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 56, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 56, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 49, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 48, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 70, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 55, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 55, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 55, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 66, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 65, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 57, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 55, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 55, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 55, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 53, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 52, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 51, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 55, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 55, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 55, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 70, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 69, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 68, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 54, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 54, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 54, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 57, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 56, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 55, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 54, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 54, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 54, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 51, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 50, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 49, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 54, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 53, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 53, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 68, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 67, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 66, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 53, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 53, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 53, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 55, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 54, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 53, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 53, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 53, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 53, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 49, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 48, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 70, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 52, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 52, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 52, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 66, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 65, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 57, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 52, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 52, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 52, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 53, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 52, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 51, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 52, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 52, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 52, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 70, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 69, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 68, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 51, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 51, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 51, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 57, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 56, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 55, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 51, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 51, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 51, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 51, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 50, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 49, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 51, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 50, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 50, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 68, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 67, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 66, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 50, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 50, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 55, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 54, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 53, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 50, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 50, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 50, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 49, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 48, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 70, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 49, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 49, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 66, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 65, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 57, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 49, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 49, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 49, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 53, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 52, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 51, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 49, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 49, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 49, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 70, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 69, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 68, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 48, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 48, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 48, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 57, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 56, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 55, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 48, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 70, 57, 48, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, + 57, 48, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 51, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 50, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 49, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 70, 57, 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 57, 49, 52, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 57, + 48, 52, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 56, 68, 55, 48, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 56, 67, 65, 57, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 56, 57, 69, 51, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 55, 68, 52, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 55, 65, 55, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 55, + 57, 56, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 55, 54, 68, 55, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 55, 53, 51, 51, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 55, 53, 49, 70, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 55, 49, 50, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 55, 48, 66, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, + 70, 49, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 69, 56, 48, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 55, 50, 67, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 54, 55, 48, 57, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 54, 55, 48, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 54, 54, 50, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, + 53, 66, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 53, 57, 57, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 53, 53, 55, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 54, 51, 53, 53, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 54, 51, 48, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 54, 50, 57, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, + 50, 53, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 50, 52, 66, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 70, 56, 67, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 53, 68, 69, 54, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 53, 66, 56, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 53, 66, 53, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, + 57, 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 57, 49, 65, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 56, 70, 48, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 53, 53, 66, 54, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 53, 52, 51, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 53, 52, 48, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, + 51, 70, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 51, 67, 67, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 50, 68, 68, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 53, 50, 55, 50, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 53, 50, 52, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 53, 50, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, + 49, 56, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 52, 69, 65, 52, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 52, 69, 56, 67, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 52, 69, 50, 68, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 52, 69, 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 52, 69, 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 65, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, + 49, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 66, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 65, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 57, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 56, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 65, 49, 55, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 65, 49, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 65, 49, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 65, 49, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, + 49, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 50, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 49, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 48, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 70, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 65, 48, 69, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 65, 48, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 65, 48, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 65, 48, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, + 48, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 57, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 56, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 55, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 54, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 65, 48, 53, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 65, 48, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 65, 48, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 65, 48, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, + 48, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 48, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 70, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 69, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 68, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 57, 70, 67, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 57, 70, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 57, 70, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 57, 70, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, + 70, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 55, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 54, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 53, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 52, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 57, 70, 51, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 57, 70, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 57, 70, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 57, 70, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, + 69, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 69, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 68, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 67, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 66, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 57, 69, 65, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 57, 69, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 57, 69, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 57, 69, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, + 69, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 53, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 52, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 51, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 50, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 57, 69, 49, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 57, 69, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 57, 68, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 57, 68, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, + 68, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 67, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 66, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 65, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 57, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 57, 68, 56, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 57, 68, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 57, 68, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 57, 68, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, + 68, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 51, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 50, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 49, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 48, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 57, 67, 70, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 57, 67, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 57, 67, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 57, 67, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, + 67, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 65, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 57, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 56, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 55, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 57, 67, 54, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 57, 67, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 57, 67, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 57, 67, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, + 67, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 49, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 48, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 70, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 69, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 57, 66, 68, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 57, 66, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 57, 66, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 57, 66, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, + 66, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 56, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 55, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 54, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 53, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 57, 66, 52, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 57, 66, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 57, 66, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 57, 66, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, + 66, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 70, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 69, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 68, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 67, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 57, 65, 66, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 57, 65, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 57, 65, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 57, 65, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, + 65, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 54, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 53, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 52, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 51, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 57, 65, 50, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 57, 65, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 57, 65, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 57, 57, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, + 57, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 68, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 67, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 66, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 65, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 57, 57, 57, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 57, 57, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 57, 57, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 57, 57, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, + 57, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 52, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 51, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 50, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 49, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 57, 57, 48, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 57, 56, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 57, 56, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 57, 56, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, + 56, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 66, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 65, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 57, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 56, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 57, 56, 55, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 57, 56, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 57, 56, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 57, 56, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, + 56, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 50, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 49, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 48, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 70, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 57, 55, 69, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 57, 55, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 57, 55, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 57, 55, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, + 55, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 57, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 56, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 55, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 54, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 57, 55, 53, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 57, 55, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 57, 55, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 57, 55, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, + 55, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 48, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 70, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 69, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 68, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 57, 54, 67, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 57, 54, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 57, 54, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 57, 54, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, + 54, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 55, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 54, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 53, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 52, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 57, 54, 51, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 57, 54, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 57, 54, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 57, 54, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, + 53, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 69, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 68, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 67, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 66, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 57, 53, 65, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 57, 53, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 57, 53, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 57, 53, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, + 53, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 53, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 52, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 51, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 50, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 57, 53, 49, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 57, 53, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 57, 52, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 57, 52, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, + 52, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 67, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 66, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 65, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 57, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 57, 52, 56, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 57, 52, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 57, 52, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 57, 52, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, + 52, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 51, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 50, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 49, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 48, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 57, 51, 70, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 57, 51, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 57, 51, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 57, 51, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, + 51, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 65, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 57, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 56, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 55, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 57, 51, 54, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 57, 51, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 57, 51, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 57, 51, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, + 51, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 49, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 48, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 70, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 69, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 57, 50, 68, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 57, 50, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 57, 50, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 57, 50, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, + 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 56, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 55, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 54, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 53, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 57, 50, 52, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 57, 50, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 57, 50, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 57, 50, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, + 50, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 70, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 69, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 68, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 67, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 57, 49, 66, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 57, 49, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 57, 49, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 57, 49, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, + 49, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 54, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 53, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 52, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 51, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 57, 49, 50, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 57, 49, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 57, 49, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 57, 48, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, + 48, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 68, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 67, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 66, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 65, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 57, 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 57, 48, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 57, 48, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 57, 48, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, + 48, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 52, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 51, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 50, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 49, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 57, 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 56, 70, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 56, 70, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 56, 70, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, + 70, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 66, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 65, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 57, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 56, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 56, 70, 55, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 56, 70, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 56, 70, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 56, 70, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, + 70, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 50, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 49, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 48, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 70, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 56, 69, 69, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 56, 69, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 56, 69, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 56, 69, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, + 69, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 57, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 56, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 55, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 54, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 56, 69, 53, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 56, 69, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 56, 69, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 56, 69, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, + 69, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 48, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 70, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 69, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 68, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 56, 68, 67, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 56, 68, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 56, 68, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 56, 68, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, + 68, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 55, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 54, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 53, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 52, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 56, 68, 51, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 56, 68, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 56, 68, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 56, 68, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, + 67, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 69, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 68, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 67, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 66, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 56, 67, 65, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 56, 67, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 56, 67, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 56, 67, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, + 67, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 53, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 52, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 51, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 50, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 56, 67, 49, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 56, 67, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 56, 66, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 56, 66, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, + 66, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 67, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 66, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 65, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 57, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 56, 66, 56, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 56, 66, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 56, 66, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 56, 66, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, + 66, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 51, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 50, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 49, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 48, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 56, 65, 70, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 56, 65, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 56, 65, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 56, 65, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, + 65, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 65, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 57, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 56, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 55, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 56, 65, 54, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 56, 65, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 56, 65, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 56, 65, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, + 65, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 49, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 48, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 70, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 69, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 56, 57, 68, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 56, 57, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 56, 57, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 56, 57, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, + 57, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 56, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 55, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 54, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 53, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 56, 57, 52, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 56, 57, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 56, 57, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 56, 57, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, + 57, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 70, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 69, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 68, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 67, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 56, 56, 66, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 56, 56, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 56, 56, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 56, 56, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, + 56, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 54, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 53, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 52, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 51, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 56, 56, 50, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 56, 56, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 56, 56, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 56, 55, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, + 55, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 68, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 67, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 66, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 65, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 56, 55, 57, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 56, 55, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 56, 55, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 56, 55, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, + 55, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 52, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 51, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 50, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 49, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 56, 55, 48, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 56, 54, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 56, 54, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 56, 54, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, + 54, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 66, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 65, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 57, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 56, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 56, 54, 55, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 56, 54, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 56, 54, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 56, 54, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, + 54, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 50, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 49, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 48, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 70, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 56, 53, 69, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 56, 53, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 56, 53, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 56, 53, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, + 53, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 57, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 56, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 55, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 54, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 56, 53, 53, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 56, 53, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 56, 53, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 56, 53, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, + 53, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 48, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 70, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 69, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 68, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 56, 52, 67, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 56, 52, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 56, 52, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 56, 52, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, + 52, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 55, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 54, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 53, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 52, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 56, 52, 51, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 56, 52, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 56, 52, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 56, 52, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, + 51, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 69, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 68, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 67, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 66, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 56, 51, 65, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 56, 51, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 56, 51, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 56, 51, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, + 51, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 53, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 52, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 51, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 50, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 56, 51, 49, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 56, 51, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 56, 50, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 56, 50, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, + 50, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 67, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 66, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 65, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 57, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 56, 50, 56, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 56, 50, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 56, 50, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 56, 50, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, + 50, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 51, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 50, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 49, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 48, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 56, 49, 70, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 56, 49, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 56, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 56, 49, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, + 49, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 65, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 57, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 56, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 55, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 56, 49, 54, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 56, 49, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 56, 49, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 56, 49, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, + 49, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 49, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 48, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 70, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 69, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 56, 48, 68, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 56, 48, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 56, 48, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 56, 48, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, + 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 56, + 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 55, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 54, 128, 73, 68, 69, + 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 53, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 45, 50, 70, 56, 48, 52, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 50, 70, 56, 48, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, + 45, 50, 70, 56, 48, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, + 70, 56, 48, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, + 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 200, 73, 68, 69, 78, 84, 73, + 70, 73, 67, 65, 84, 73, 79, 78, 128, 73, 68, 69, 78, 84, 73, 70, 73, 67, + 65, 84, 73, 79, 206, 73, 68, 69, 78, 84, 73, 67, 65, 204, 73, 68, 68, + 128, 73, 67, 79, 78, 128, 73, 67, 72, 79, 85, 128, 73, 67, 72, 79, 83, + 128, 73, 67, 72, 73, 77, 65, 84, 79, 83, 128, 73, 67, 72, 65, 68, 73, 78, + 128, 73, 67, 69, 76, 65, 78, 68, 73, 67, 45, 89, 82, 128, 73, 66, 73, 70, + 73, 76, 73, 128, 73, 65, 85, 68, 65, 128, 73, 48, 49, 53, 128, 73, 48, + 49, 52, 128, 73, 48, 49, 51, 128, 73, 48, 49, 50, 128, 73, 48, 49, 49, + 65, 128, 73, 48, 49, 49, 128, 73, 48, 49, 48, 65, 128, 73, 48, 49, 48, + 128, 73, 48, 48, 57, 65, 128, 73, 48, 48, 57, 128, 73, 48, 48, 56, 128, + 73, 48, 48, 55, 128, 73, 48, 48, 54, 128, 73, 48, 48, 53, 65, 128, 73, + 48, 48, 53, 128, 73, 48, 48, 52, 128, 73, 48, 48, 51, 128, 73, 48, 48, + 50, 128, 73, 48, 48, 49, 128, 73, 45, 89, 85, 128, 73, 45, 89, 79, 128, + 73, 45, 89, 69, 79, 128, 73, 45, 89, 69, 128, 73, 45, 89, 65, 69, 128, + 73, 45, 89, 65, 45, 79, 128, 73, 45, 89, 65, 128, 73, 45, 79, 45, 73, + 128, 73, 45, 79, 128, 73, 45, 69, 85, 128, 73, 45, 66, 69, 65, 77, 128, + 73, 45, 65, 82, 65, 69, 65, 128, 73, 45, 65, 128, 72, 90, 90, 90, 71, + 128, 72, 90, 90, 90, 128, 72, 90, 90, 80, 128, 72, 90, 90, 128, 72, 90, + 87, 71, 128, 72, 90, 87, 128, 72, 90, 84, 128, 72, 90, 71, 128, 72, 89, + 83, 84, 69, 82, 69, 83, 73, 211, 72, 89, 80, 79, 68, 73, 65, 83, 84, 79, + 76, 69, 128, 72, 89, 80, 72, 69, 78, 65, 84, 73, 79, 206, 72, 89, 80, 72, + 69, 78, 45, 77, 73, 78, 85, 83, 128, 72, 89, 80, 72, 69, 78, 128, 72, 89, + 80, 72, 69, 206, 72, 89, 71, 73, 69, 73, 65, 128, 72, 89, 71, 73, 69, 65, + 128, 72, 89, 65, 67, 73, 78, 84, 72, 128, 72, 88, 87, 71, 128, 72, 88, + 85, 79, 88, 128, 72, 88, 85, 79, 84, 128, 72, 88, 85, 79, 80, 128, 72, + 88, 85, 79, 128, 72, 88, 79, 88, 128, 72, 88, 79, 84, 128, 72, 88, 79, + 80, 128, 72, 88, 79, 128, 72, 88, 73, 88, 128, 72, 88, 73, 84, 128, 72, + 88, 73, 80, 128, 72, 88, 73, 69, 88, 128, 72, 88, 73, 69, 84, 128, 72, + 88, 73, 69, 80, 128, 72, 88, 73, 69, 128, 72, 88, 73, 128, 72, 88, 69, + 88, 128, 72, 88, 69, 80, 128, 72, 88, 69, 128, 72, 88, 65, 88, 128, 72, + 88, 65, 84, 128, 72, 88, 65, 80, 128, 72, 88, 65, 128, 72, 87, 85, 128, + 72, 87, 65, 73, 82, 128, 72, 87, 65, 72, 128, 72, 85, 86, 65, 128, 72, + 85, 83, 72, 69, 196, 72, 85, 83, 72, 128, 72, 85, 82, 65, 78, 128, 72, + 85, 79, 84, 128, 72, 85, 78, 68, 82, 69, 68, 83, 128, 72, 85, 78, 68, 82, + 69, 68, 211, 72, 85, 78, 68, 82, 69, 68, 128, 72, 85, 78, 68, 82, 69, + 196, 72, 85, 78, 128, 72, 85, 77, 208, 72, 85, 77, 65, 78, 128, 72, 85, + 77, 65, 206, 72, 85, 76, 50, 128, 72, 85, 73, 73, 84, 79, 128, 72, 85, + 71, 71, 73, 78, 71, 128, 72, 85, 71, 71, 73, 78, 199, 72, 85, 66, 50, + 128, 72, 85, 66, 178, 72, 85, 66, 128, 72, 85, 65, 82, 65, 68, 68, 79, + 128, 72, 85, 65, 78, 128, 72, 85, 45, 51, 128, 72, 85, 45, 50, 128, 72, + 85, 45, 49, 128, 72, 84, 84, 65, 128, 72, 84, 83, 128, 72, 84, 74, 128, + 72, 82, 89, 86, 78, 73, 193, 72, 80, 87, 71, 128, 72, 80, 65, 128, 72, + 80, 128, 72, 79, 85, 83, 197, 72, 79, 85, 82, 71, 76, 65, 83, 83, 128, + 72, 79, 85, 82, 71, 76, 65, 83, 211, 72, 79, 85, 82, 128, 72, 79, 85, + 210, 72, 79, 84, 69, 76, 128, 72, 79, 84, 65, 128, 72, 79, 83, 80, 73, + 84, 65, 76, 128, 72, 79, 82, 83, 69, 128, 72, 79, 82, 83, 197, 72, 79, + 82, 82, 128, 72, 79, 82, 78, 83, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, + 76, 76, 89, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 76, 217, 72, 79, + 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 54, 45, 48, 54, 128, 72, 79, 82, + 73, 90, 79, 78, 84, 65, 76, 45, 48, 54, 45, 48, 53, 128, 72, 79, 82, 73, + 90, 79, 78, 84, 65, 76, 45, 48, 54, 45, 48, 52, 128, 72, 79, 82, 73, 90, + 79, 78, 84, 65, 76, 45, 48, 54, 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, + 78, 84, 65, 76, 45, 48, 54, 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, 78, + 84, 65, 76, 45, 48, 54, 45, 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, + 65, 76, 45, 48, 54, 45, 48, 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, + 76, 45, 48, 53, 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, + 45, 48, 53, 45, 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, + 48, 53, 45, 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, + 53, 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, + 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, + 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, 48, + 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 52, 45, 48, 54, + 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 52, 45, 48, 53, 128, + 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 52, 45, 48, 52, 128, 72, + 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 52, 45, 48, 51, 128, 72, 79, + 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 52, 45, 48, 50, 128, 72, 79, 82, + 73, 90, 79, 78, 84, 65, 76, 45, 48, 52, 45, 48, 49, 128, 72, 79, 82, 73, + 90, 79, 78, 84, 65, 76, 45, 48, 52, 45, 48, 48, 128, 72, 79, 82, 73, 90, + 79, 78, 84, 65, 76, 45, 48, 51, 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, + 78, 84, 65, 76, 45, 48, 51, 45, 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, + 84, 65, 76, 45, 48, 51, 45, 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, + 65, 76, 45, 48, 51, 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, + 76, 45, 48, 51, 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, + 45, 48, 51, 45, 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, + 48, 51, 45, 48, 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, + 50, 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 50, + 45, 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 50, 45, + 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 50, 45, 48, + 51, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 50, 45, 48, 50, + 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 50, 45, 48, 49, 128, + 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 50, 45, 48, 48, 128, 72, + 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 49, 45, 48, 54, 128, 72, 79, + 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 49, 45, 48, 53, 128, 72, 79, 82, + 73, 90, 79, 78, 84, 65, 76, 45, 48, 49, 45, 48, 52, 128, 72, 79, 82, 73, + 90, 79, 78, 84, 65, 76, 45, 48, 49, 45, 48, 51, 128, 72, 79, 82, 73, 90, + 79, 78, 84, 65, 76, 45, 48, 49, 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, + 78, 84, 65, 76, 45, 48, 49, 45, 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, + 84, 65, 76, 45, 48, 49, 45, 48, 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, + 65, 76, 45, 48, 48, 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, + 76, 45, 48, 48, 45, 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, + 45, 48, 48, 45, 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, + 48, 48, 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, + 48, 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, + 45, 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, + 48, 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 128, 72, 79, 82, 73, + 90, 79, 78, 84, 65, 204, 72, 79, 82, 73, 128, 72, 79, 82, 193, 72, 79, + 79, 85, 128, 72, 79, 79, 82, 85, 128, 72, 79, 79, 80, 128, 72, 79, 79, + 78, 128, 72, 79, 79, 75, 69, 68, 128, 72, 79, 79, 75, 69, 196, 72, 79, + 78, 69, 89, 66, 69, 69, 128, 72, 79, 78, 69, 217, 72, 79, 77, 79, 84, 72, + 69, 84, 73, 67, 128, 72, 79, 77, 79, 84, 72, 69, 84, 73, 195, 72, 79, 76, + 79, 128, 72, 79, 76, 76, 79, 215, 72, 79, 76, 69, 128, 72, 79, 76, 68, + 73, 78, 199, 72, 79, 76, 65, 77, 128, 72, 79, 76, 65, 205, 72, 79, 75, + 65, 128, 72, 79, 67, 75, 69, 217, 72, 79, 67, 72, 79, 128, 72, 79, 45, + 56, 128, 72, 79, 45, 55, 128, 72, 79, 45, 54, 128, 72, 79, 45, 53, 128, + 72, 79, 45, 52, 128, 72, 79, 45, 51, 128, 72, 79, 45, 50, 128, 72, 79, + 45, 49, 128, 72, 78, 85, 84, 128, 72, 78, 85, 79, 88, 128, 72, 78, 85, + 79, 128, 72, 78, 85, 66, 128, 72, 78, 79, 88, 128, 72, 78, 79, 84, 128, + 72, 78, 79, 80, 128, 72, 78, 73, 88, 128, 72, 78, 73, 84, 128, 72, 78, + 73, 80, 128, 72, 78, 73, 69, 88, 128, 72, 78, 73, 69, 84, 128, 72, 78, + 73, 69, 80, 128, 72, 78, 73, 69, 128, 72, 78, 73, 128, 72, 78, 69, 88, + 128, 72, 78, 69, 80, 128, 72, 78, 69, 128, 72, 78, 65, 88, 128, 72, 78, + 65, 85, 128, 72, 78, 65, 84, 128, 72, 78, 65, 80, 128, 72, 78, 65, 128, + 72, 77, 89, 88, 128, 72, 77, 89, 82, 88, 128, 72, 77, 89, 82, 128, 72, + 77, 89, 80, 128, 72, 77, 89, 128, 72, 77, 85, 88, 128, 72, 77, 85, 84, + 128, 72, 77, 85, 82, 88, 128, 72, 77, 85, 82, 128, 72, 77, 85, 80, 128, + 72, 77, 85, 79, 88, 128, 72, 77, 85, 79, 80, 128, 72, 77, 85, 79, 128, + 72, 77, 85, 128, 72, 77, 79, 88, 128, 72, 77, 79, 84, 128, 72, 77, 79, + 80, 128, 72, 77, 79, 128, 72, 77, 73, 88, 128, 72, 77, 73, 84, 128, 72, + 77, 73, 80, 128, 72, 77, 73, 69, 88, 128, 72, 77, 73, 69, 80, 128, 72, + 77, 73, 69, 128, 72, 77, 73, 128, 72, 77, 69, 128, 72, 77, 65, 88, 128, + 72, 77, 65, 84, 128, 72, 77, 65, 80, 128, 72, 77, 65, 128, 72, 76, 89, + 88, 128, 72, 76, 89, 84, 128, 72, 76, 89, 82, 88, 128, 72, 76, 89, 82, + 128, 72, 76, 89, 80, 128, 72, 76, 89, 128, 72, 76, 85, 88, 128, 72, 76, + 85, 84, 128, 72, 76, 85, 82, 88, 128, 72, 76, 85, 82, 128, 72, 76, 85, + 80, 128, 72, 76, 85, 79, 88, 128, 72, 76, 85, 79, 80, 128, 72, 76, 85, + 79, 128, 72, 76, 85, 128, 72, 76, 79, 88, 128, 72, 76, 79, 80, 128, 72, + 76, 79, 128, 72, 76, 73, 88, 128, 72, 76, 73, 84, 128, 72, 76, 73, 80, + 128, 72, 76, 73, 69, 88, 128, 72, 76, 73, 69, 80, 128, 72, 76, 73, 69, + 128, 72, 76, 73, 128, 72, 76, 69, 88, 128, 72, 76, 69, 80, 128, 72, 76, + 69, 128, 72, 76, 65, 88, 128, 72, 76, 65, 85, 128, 72, 76, 65, 84, 128, + 72, 76, 65, 80, 128, 72, 76, 65, 128, 72, 76, 128, 72, 75, 128, 72, 73, + 90, 66, 128, 72, 73, 89, 79, 128, 72, 73, 84, 84, 73, 78, 199, 72, 73, + 83, 84, 79, 82, 73, 195, 72, 73, 82, 73, 81, 128, 72, 73, 80, 80, 79, 80, + 79, 84, 65, 77, 85, 83, 128, 72, 73, 78, 71, 69, 68, 128, 72, 73, 78, 71, + 69, 196, 72, 73, 78, 71, 69, 128, 72, 73, 78, 68, 213, 72, 73, 75, 73, + 78, 199, 72, 73, 71, 72, 45, 83, 80, 69, 69, 196, 72, 73, 71, 72, 45, 82, + 69, 86, 69, 82, 83, 69, 68, 45, 185, 72, 73, 71, 72, 45, 76, 79, 215, 72, + 73, 71, 72, 45, 72, 69, 69, 76, 69, 196, 72, 73, 69, 88, 128, 72, 73, 69, + 85, 72, 45, 83, 73, 79, 83, 128, 72, 73, 69, 85, 72, 45, 82, 73, 69, 85, + 76, 128, 72, 73, 69, 85, 72, 45, 80, 73, 69, 85, 80, 128, 72, 73, 69, 85, + 72, 45, 78, 73, 69, 85, 78, 128, 72, 73, 69, 85, 72, 45, 77, 73, 69, 85, + 77, 128, 72, 73, 69, 85, 200, 72, 73, 69, 82, 79, 71, 76, 89, 80, 72, 73, + 195, 72, 73, 68, 73, 78, 199, 72, 73, 68, 69, 84, 128, 72, 73, 68, 69, + 128, 72, 73, 66, 73, 83, 67, 85, 83, 128, 72, 73, 45, 82, 69, 83, 128, + 72, 73, 45, 55, 128, 72, 73, 45, 54, 128, 72, 73, 45, 53, 128, 72, 73, + 45, 52, 128, 72, 73, 45, 51, 128, 72, 73, 45, 50, 128, 72, 73, 45, 49, + 128, 72, 72, 89, 85, 128, 72, 72, 89, 79, 128, 72, 72, 89, 73, 128, 72, + 72, 89, 69, 69, 128, 72, 72, 89, 69, 128, 72, 72, 89, 65, 65, 128, 72, + 72, 89, 65, 128, 72, 72, 87, 73, 128, 72, 72, 87, 69, 69, 128, 72, 72, + 87, 69, 128, 72, 72, 87, 65, 128, 72, 72, 85, 128, 72, 72, 73, 128, 72, + 72, 69, 69, 128, 72, 72, 69, 128, 72, 72, 65, 65, 128, 72, 71, 128, 72, + 69, 89, 84, 128, 72, 69, 88, 73, 70, 79, 82, 205, 72, 69, 88, 65, 71, 82, + 65, 205, 72, 69, 88, 65, 71, 79, 78, 128, 72, 69, 82, 85, 84, 85, 128, + 72, 69, 82, 85, 128, 72, 69, 82, 77, 73, 84, 73, 65, 206, 72, 69, 82, 77, + 73, 79, 78, 73, 65, 206, 72, 69, 82, 77, 69, 83, 128, 72, 69, 82, 69, + 128, 72, 69, 82, 66, 128, 72, 69, 82, 65, 69, 85, 205, 72, 69, 78, 71, + 128, 72, 69, 78, 199, 72, 69, 77, 80, 128, 72, 69, 76, 77, 69, 84, 128, + 72, 69, 76, 77, 69, 212, 72, 69, 76, 205, 72, 69, 76, 76, 83, 67, 72, 82, + 69, 73, 66, 69, 210, 72, 69, 76, 73, 88, 128, 72, 69, 76, 73, 67, 79, 80, + 84, 69, 82, 128, 72, 69, 75, 85, 84, 65, 65, 82, 85, 128, 72, 69, 73, 83, + 69, 73, 128, 72, 69, 73, 71, 72, 84, 128, 72, 69, 69, 73, 128, 72, 69, + 68, 71, 69, 72, 79, 71, 128, 72, 69, 65, 86, 89, 128, 72, 69, 65, 86, 69, + 78, 76, 217, 72, 69, 65, 86, 69, 78, 128, 72, 69, 65, 86, 69, 206, 72, + 69, 65, 82, 84, 83, 128, 72, 69, 65, 82, 84, 45, 83, 72, 65, 80, 69, 196, + 72, 69, 65, 82, 84, 128, 72, 69, 65, 82, 212, 72, 69, 65, 82, 73, 78, + 199, 72, 69, 65, 82, 45, 78, 79, 45, 69, 86, 73, 204, 72, 69, 65, 68, 83, + 84, 82, 79, 75, 69, 128, 72, 69, 65, 68, 83, 84, 79, 78, 69, 128, 72, 69, + 65, 68, 83, 84, 79, 78, 197, 72, 69, 65, 68, 83, 67, 65, 82, 70, 128, 72, + 69, 65, 68, 80, 72, 79, 78, 69, 128, 72, 69, 65, 68, 73, 78, 71, 128, 72, + 69, 65, 68, 45, 66, 65, 78, 68, 65, 71, 69, 128, 72, 69, 45, 55, 128, 72, + 69, 45, 54, 128, 72, 69, 45, 53, 128, 72, 69, 45, 52, 128, 72, 69, 45, + 51, 128, 72, 69, 45, 50, 128, 72, 69, 45, 49, 128, 72, 68, 82, 128, 72, + 67, 128, 72, 66, 65, 83, 65, 45, 69, 83, 65, 83, 193, 72, 66, 65, 83, + 193, 72, 65, 89, 65, 78, 78, 65, 128, 72, 65, 87, 74, 128, 72, 65, 86, + 69, 128, 72, 65, 85, 80, 84, 83, 84, 73, 77, 77, 69, 128, 72, 65, 85, 77, + 69, 65, 128, 72, 65, 213, 72, 65, 84, 82, 65, 206, 72, 65, 84, 72, 73, + 128, 72, 65, 84, 69, 128, 72, 65, 84, 67, 72, 73, 78, 199, 72, 65, 84, + 65, 198, 72, 65, 83, 69, 210, 72, 65, 83, 65, 78, 84, 65, 128, 72, 65, + 82, 80, 79, 79, 78, 128, 72, 65, 82, 80, 79, 79, 206, 72, 65, 82, 77, 79, + 78, 73, 67, 128, 72, 65, 82, 75, 76, 69, 65, 206, 72, 65, 82, 68, 78, 69, + 83, 83, 128, 72, 65, 82, 196, 72, 65, 82, 66, 65, 72, 65, 89, 128, 72, + 65, 80, 80, 217, 72, 65, 78, 85, 78, 79, 207, 72, 65, 78, 73, 70, 201, + 72, 65, 78, 71, 90, 72, 79, 213, 72, 65, 78, 68, 83, 72, 65, 75, 69, 128, + 72, 65, 78, 68, 83, 128, 72, 65, 78, 68, 211, 72, 65, 78, 68, 76, 69, 83, + 128, 72, 65, 78, 68, 76, 69, 128, 72, 65, 78, 68, 66, 65, 76, 76, 128, + 72, 65, 78, 68, 66, 65, 71, 128, 72, 65, 78, 68, 45, 79, 86, 65, 76, 128, + 72, 65, 78, 68, 45, 79, 86, 65, 204, 72, 65, 78, 68, 45, 72, 79, 79, 75, + 128, 72, 65, 78, 68, 45, 72, 79, 79, 203, 72, 65, 78, 68, 45, 72, 73, 78, + 71, 69, 128, 72, 65, 78, 68, 45, 72, 73, 78, 71, 197, 72, 65, 78, 68, 45, + 70, 76, 65, 84, 128, 72, 65, 78, 68, 45, 70, 76, 65, 212, 72, 65, 78, 68, + 45, 70, 73, 83, 84, 128, 72, 65, 78, 68, 45, 67, 85, 82, 76, 73, 67, 85, + 69, 128, 72, 65, 78, 68, 45, 67, 85, 82, 76, 73, 67, 85, 197, 72, 65, 78, + 68, 45, 67, 85, 80, 128, 72, 65, 78, 68, 45, 67, 85, 208, 72, 65, 78, 68, + 45, 67, 76, 65, 87, 128, 72, 65, 78, 68, 45, 67, 76, 65, 215, 72, 65, 78, + 68, 45, 67, 73, 82, 67, 76, 69, 128, 72, 65, 78, 68, 45, 67, 73, 82, 67, + 76, 197, 72, 65, 78, 68, 45, 65, 78, 71, 76, 69, 128, 72, 65, 78, 68, 45, + 65, 78, 71, 76, 197, 72, 65, 78, 68, 128, 72, 65, 78, 45, 65, 75, 65, 84, + 128, 72, 65, 77, 90, 65, 128, 72, 65, 77, 90, 193, 72, 65, 77, 83, 84, + 69, 210, 72, 65, 77, 83, 65, 128, 72, 65, 77, 77, 69, 82, 128, 72, 65, + 77, 77, 69, 210, 72, 65, 77, 66, 85, 82, 71, 69, 82, 128, 72, 65, 76, 81, + 65, 128, 72, 65, 76, 79, 128, 72, 65, 76, 70, 45, 67, 73, 82, 67, 76, + 197, 72, 65, 76, 70, 45, 50, 128, 72, 65, 76, 70, 45, 49, 128, 72, 65, + 76, 70, 128, 72, 65, 76, 66, 69, 82, 68, 128, 72, 65, 76, 65, 78, 84, 65, + 128, 72, 65, 73, 84, 85, 128, 72, 65, 73, 211, 72, 65, 73, 82, 67, 85, + 84, 128, 72, 65, 71, 76, 65, 218, 72, 65, 71, 76, 128, 72, 65, 70, 85, + 75, 72, 65, 128, 72, 65, 70, 85, 75, 72, 128, 72, 65, 69, 71, 204, 72, + 65, 68, 69, 83, 128, 72, 65, 65, 82, 85, 128, 72, 65, 65, 77, 128, 72, + 65, 193, 72, 65, 45, 72, 65, 128, 72, 65, 45, 57, 128, 72, 65, 45, 56, + 128, 72, 65, 45, 55, 128, 72, 65, 45, 54, 128, 72, 65, 45, 53, 128, 72, + 65, 45, 52, 128, 72, 65, 45, 51, 128, 72, 65, 45, 50, 128, 72, 65, 45, + 49, 49, 128, 72, 65, 45, 49, 48, 128, 72, 65, 45, 49, 128, 72, 48, 48, + 56, 128, 72, 48, 48, 55, 128, 72, 48, 48, 54, 65, 128, 72, 48, 48, 54, + 128, 72, 48, 48, 53, 128, 72, 48, 48, 52, 128, 72, 48, 48, 51, 128, 72, + 48, 48, 50, 128, 72, 48, 48, 49, 128, 72, 45, 84, 89, 80, 197, 71, 89, + 85, 128, 71, 89, 79, 78, 128, 71, 89, 79, 128, 71, 89, 73, 128, 71, 89, + 70, 213, 71, 89, 69, 69, 128, 71, 89, 65, 83, 128, 71, 89, 65, 65, 128, + 71, 89, 65, 128, 71, 89, 128, 71, 87, 85, 128, 71, 87, 73, 128, 71, 87, + 69, 69, 128, 71, 87, 69, 128, 71, 87, 65, 65, 128, 71, 87, 65, 128, 71, + 87, 128, 71, 86, 65, 78, 71, 128, 71, 86, 128, 71, 85, 82, 85, 83, 72, + 128, 71, 85, 82, 85, 78, 128, 71, 85, 82, 77, 85, 75, 72, 201, 71, 85, + 82, 65, 77, 85, 84, 79, 78, 128, 71, 85, 82, 65, 71, 197, 71, 85, 82, 55, + 128, 71, 85, 78, 85, 128, 71, 85, 78, 213, 71, 85, 78, 74, 65, 76, 193, + 71, 85, 205, 71, 85, 76, 128, 71, 85, 74, 65, 82, 65, 84, 201, 71, 85, + 73, 84, 65, 82, 128, 71, 85, 73, 68, 197, 71, 85, 199, 71, 85, 69, 73, + 128, 71, 85, 69, 72, 128, 71, 85, 69, 200, 71, 85, 68, 128, 71, 85, 196, + 71, 85, 65, 82, 68, 83, 77, 65, 78, 128, 71, 85, 65, 82, 68, 69, 68, 78, + 69, 83, 83, 128, 71, 85, 65, 82, 68, 69, 196, 71, 85, 65, 82, 68, 128, + 71, 85, 65, 82, 65, 78, 201, 71, 85, 193, 71, 85, 178, 71, 84, 69, 210, + 71, 83, 85, 77, 128, 71, 83, 85, 205, 71, 82, 213, 71, 82, 79, 87, 73, + 78, 199, 71, 82, 79, 85, 78, 68, 128, 71, 82, 79, 78, 84, 72, 73, 83, 77, + 65, 84, 65, 128, 71, 82, 79, 77, 79, 80, 79, 86, 79, 68, 78, 65, 89, 65, + 128, 71, 82, 79, 77, 79, 80, 79, 86, 79, 68, 78, 65, 89, 193, 71, 82, 79, + 77, 79, 75, 82, 89, 90, 72, 69, 86, 65, 89, 65, 128, 71, 82, 79, 77, 79, + 75, 82, 89, 90, 72, 69, 86, 65, 89, 193, 71, 82, 79, 77, 78, 65, 89, 65, + 128, 71, 82, 79, 77, 78, 65, 89, 193, 71, 82, 73, 78, 78, 73, 78, 199, + 71, 82, 73, 77, 65, 67, 73, 78, 199, 71, 82, 69, 217, 71, 82, 69, 71, 79, + 82, 73, 65, 206, 71, 82, 69, 69, 78, 128, 71, 82, 69, 69, 206, 71, 82, + 69, 65, 84, 78, 69, 83, 83, 128, 71, 82, 69, 65, 84, 69, 82, 45, 84, 72, + 65, 78, 128, 71, 82, 69, 65, 84, 69, 82, 45, 84, 72, 65, 206, 71, 82, 69, + 65, 84, 69, 210, 71, 82, 69, 65, 212, 71, 82, 65, 86, 69, 89, 65, 82, + 196, 71, 82, 65, 86, 69, 45, 77, 65, 67, 82, 79, 78, 128, 71, 82, 65, 86, + 69, 45, 65, 67, 85, 84, 69, 45, 71, 82, 65, 86, 69, 128, 71, 82, 65, 86, + 197, 71, 82, 65, 84, 69, 82, 128, 71, 82, 65, 83, 83, 128, 71, 82, 65, + 83, 211, 71, 82, 65, 83, 208, 71, 82, 65, 80, 72, 69, 77, 197, 71, 82, + 65, 80, 69, 83, 128, 71, 82, 65, 78, 84, 72, 193, 71, 82, 65, 77, 77, + 193, 71, 82, 65, 73, 78, 128, 71, 82, 65, 70, 128, 71, 82, 65, 68, 85, + 65, 84, 73, 79, 206, 71, 82, 65, 68, 85, 65, 76, 128, 71, 82, 65, 67, 69, + 128, 71, 82, 65, 67, 197, 71, 80, 65, 128, 71, 79, 82, 84, 72, 77, 73, + 75, 79, 206, 71, 79, 82, 84, 128, 71, 79, 82, 73, 76, 76, 65, 128, 71, + 79, 82, 71, 79, 84, 69, 82, 73, 128, 71, 79, 82, 71, 79, 83, 89, 78, 84, + 72, 69, 84, 79, 78, 128, 71, 79, 82, 71, 79, 206, 71, 79, 82, 71, 73, + 128, 71, 79, 82, 65, 90, 68, 207, 71, 79, 82, 65, 128, 71, 79, 79, 83, + 69, 128, 71, 79, 79, 196, 71, 79, 78, 71, 71, 79, 78, 71, 128, 71, 79, + 76, 85, 66, 67, 72, 73, 203, 71, 79, 76, 70, 69, 82, 128, 71, 79, 76, 68, + 128, 71, 79, 75, 128, 71, 79, 73, 78, 199, 71, 79, 71, 71, 76, 69, 83, + 128, 71, 79, 66, 76, 73, 78, 128, 71, 79, 65, 76, 128, 71, 79, 65, 204, + 71, 79, 65, 128, 71, 78, 89, 73, 83, 128, 71, 78, 65, 86, 73, 89, 65, 78, + 73, 128, 71, 76, 79, 87, 73, 78, 199, 71, 76, 79, 86, 69, 83, 128, 71, + 76, 79, 86, 69, 128, 71, 76, 79, 84, 84, 65, 204, 71, 76, 79, 66, 197, + 71, 76, 73, 83, 83, 65, 78, 68, 207, 71, 76, 69, 73, 67, 200, 71, 76, 65, + 71, 79, 76, 73, 128, 71, 76, 65, 128, 71, 74, 69, 128, 71, 73, 88, 128, + 71, 73, 84, 128, 71, 73, 83, 72, 128, 71, 73, 83, 200, 71, 73, 83, 65, + 76, 128, 71, 73, 82, 85, 68, 65, 65, 128, 71, 73, 82, 76, 211, 71, 73, + 82, 76, 128, 71, 73, 82, 65, 70, 70, 197, 71, 73, 82, 51, 128, 71, 73, + 82, 179, 71, 73, 82, 50, 128, 71, 73, 82, 178, 71, 73, 80, 128, 71, 73, + 78, 73, 73, 128, 71, 73, 78, 71, 69, 210, 71, 73, 77, 69, 76, 45, 72, 69, + 84, 72, 128, 71, 73, 77, 69, 76, 128, 71, 73, 77, 69, 204, 71, 73, 77, + 128, 71, 73, 71, 65, 128, 71, 73, 71, 128, 71, 73, 70, 212, 71, 73, 69, + 84, 128, 71, 73, 68, 73, 77, 128, 71, 73, 66, 66, 79, 85, 211, 71, 73, + 66, 65, 128, 71, 73, 52, 128, 71, 73, 180, 71, 72, 90, 128, 71, 72, 87, + 65, 128, 71, 72, 85, 78, 78, 65, 128, 71, 72, 85, 78, 78, 193, 71, 72, + 85, 128, 71, 72, 79, 85, 128, 71, 72, 79, 83, 84, 128, 71, 72, 79, 128, + 71, 72, 73, 77, 69, 76, 128, 71, 72, 73, 128, 71, 72, 72, 65, 128, 71, + 72, 69, 89, 83, 128, 71, 72, 69, 85, 88, 128, 71, 72, 69, 85, 78, 128, + 71, 72, 69, 85, 71, 72, 69, 85, 65, 69, 77, 128, 71, 72, 69, 85, 71, 72, + 69, 78, 128, 71, 72, 69, 85, 65, 69, 82, 65, 69, 128, 71, 72, 69, 85, 65, + 69, 71, 72, 69, 85, 65, 69, 128, 71, 72, 69, 84, 128, 71, 72, 69, 69, + 128, 71, 72, 69, 128, 71, 72, 197, 71, 72, 65, 89, 78, 128, 71, 72, 65, + 82, 65, 69, 128, 71, 72, 65, 80, 128, 71, 72, 65, 78, 128, 71, 72, 65, + 77, 77, 65, 128, 71, 72, 65, 77, 65, 76, 128, 71, 72, 65, 73, 78, 85, 128, 71, 72, 65, 73, 78, 128, 71, 72, 65, 73, 206, 71, 72, 65, 68, 128, 71, 72, 65, 65, 77, 65, 69, 128, 71, 72, 65, 65, 128, 71, 71, 87, 73, 128, 71, 71, 87, 69, 69, 128, 71, 71, 87, 69, 128, 71, 71, 87, 65, 65, @@ -4260,155 +4275,157 @@ static const unsigned char lexicon[] = { 128, 70, 86, 83, 50, 128, 70, 86, 83, 49, 128, 70, 85, 88, 128, 70, 85, 84, 128, 70, 85, 83, 69, 128, 70, 85, 83, 193, 70, 85, 82, 88, 128, 70, 85, 80, 128, 70, 85, 78, 69, 82, 65, 204, 70, 85, 78, 67, 84, 73, 79, 78, - 65, 204, 70, 85, 78, 67, 84, 73, 79, 78, 128, 70, 85, 76, 76, 78, 69, 83, - 83, 128, 70, 85, 76, 204, 70, 85, 74, 73, 128, 70, 85, 69, 84, 128, 70, - 85, 69, 204, 70, 85, 69, 128, 70, 85, 65, 128, 70, 84, 72, 79, 82, 193, - 70, 83, 73, 128, 70, 82, 79, 87, 78, 73, 78, 71, 128, 70, 82, 79, 87, 78, - 73, 78, 199, 70, 82, 79, 87, 78, 128, 70, 82, 79, 87, 206, 70, 82, 79, - 78, 84, 45, 84, 73, 76, 84, 69, 196, 70, 82, 79, 78, 84, 45, 70, 65, 67, - 73, 78, 199, 70, 82, 79, 78, 212, 70, 82, 79, 205, 70, 82, 79, 71, 128, - 70, 82, 79, 199, 70, 82, 73, 84, 85, 128, 70, 82, 73, 69, 83, 128, 70, - 82, 73, 69, 196, 70, 82, 73, 67, 65, 84, 73, 86, 69, 128, 70, 82, 69, 84, - 66, 79, 65, 82, 68, 128, 70, 82, 69, 78, 67, 200, 70, 82, 69, 69, 90, 73, - 78, 199, 70, 82, 69, 69, 128, 70, 82, 69, 197, 70, 82, 65, 78, 75, 211, - 70, 82, 65, 78, 195, 70, 82, 65, 77, 69, 83, 128, 70, 82, 65, 77, 69, - 128, 70, 82, 65, 77, 197, 70, 82, 65, 75, 84, 85, 210, 70, 82, 65, 71, - 82, 65, 78, 84, 128, 70, 82, 65, 71, 77, 69, 78, 84, 128, 70, 82, 65, 67, - 84, 73, 79, 206, 70, 79, 88, 128, 70, 79, 216, 70, 79, 85, 82, 84, 69, - 69, 78, 128, 70, 79, 85, 82, 84, 69, 69, 206, 70, 79, 85, 82, 45, 84, 72, - 73, 82, 84, 89, 128, 70, 79, 85, 82, 45, 83, 84, 82, 73, 78, 199, 70, 79, - 85, 82, 45, 80, 69, 82, 45, 69, 205, 70, 79, 85, 82, 45, 76, 73, 78, 197, - 70, 79, 85, 210, 70, 79, 85, 78, 84, 65, 73, 78, 128, 70, 79, 85, 78, 84, - 65, 73, 206, 70, 79, 83, 84, 69, 82, 73, 78, 71, 128, 70, 79, 82, 87, 65, - 82, 68, 128, 70, 79, 82, 87, 65, 82, 196, 70, 79, 82, 84, 89, 45, 70, 73, - 86, 197, 70, 79, 82, 84, 89, 128, 70, 79, 82, 84, 217, 70, 79, 82, 84, - 85, 78, 197, 70, 79, 82, 84, 73, 69, 84, 72, 128, 70, 79, 82, 84, 69, - 128, 70, 79, 82, 77, 211, 70, 79, 82, 77, 69, 69, 128, 70, 79, 82, 77, - 69, 197, 70, 79, 82, 77, 65, 84, 84, 73, 78, 71, 128, 70, 79, 82, 77, 65, - 212, 70, 79, 82, 75, 69, 196, 70, 79, 82, 69, 72, 69, 65, 196, 70, 79, - 82, 67, 69, 83, 128, 70, 79, 82, 67, 69, 128, 70, 79, 80, 128, 70, 79, - 79, 84, 83, 84, 79, 79, 76, 128, 70, 79, 79, 84, 80, 82, 73, 78, 84, 83, - 128, 70, 79, 79, 84, 78, 79, 84, 197, 70, 79, 79, 84, 66, 65, 76, 76, + 65, 204, 70, 85, 78, 67, 84, 73, 79, 78, 128, 70, 85, 76, 76, 87, 73, 68, + 84, 200, 70, 85, 76, 76, 78, 69, 83, 83, 128, 70, 85, 76, 204, 70, 85, + 74, 73, 128, 70, 85, 69, 84, 128, 70, 85, 69, 204, 70, 85, 69, 128, 70, + 85, 65, 128, 70, 84, 72, 79, 82, 193, 70, 83, 73, 128, 70, 82, 79, 87, + 78, 73, 78, 71, 128, 70, 82, 79, 87, 78, 73, 78, 199, 70, 82, 79, 87, 78, + 128, 70, 82, 79, 87, 206, 70, 82, 79, 78, 84, 45, 84, 73, 76, 84, 69, + 196, 70, 82, 79, 78, 84, 45, 70, 65, 67, 73, 78, 199, 70, 82, 79, 78, + 212, 70, 82, 79, 205, 70, 82, 79, 71, 128, 70, 82, 79, 199, 70, 82, 73, + 84, 85, 128, 70, 82, 73, 69, 83, 128, 70, 82, 73, 69, 196, 70, 82, 73, + 67, 65, 84, 73, 86, 69, 128, 70, 82, 69, 84, 66, 79, 65, 82, 68, 128, 70, + 82, 69, 78, 67, 200, 70, 82, 69, 69, 90, 73, 78, 199, 70, 82, 69, 69, + 128, 70, 82, 69, 197, 70, 82, 65, 78, 75, 211, 70, 82, 65, 78, 195, 70, + 82, 65, 77, 69, 83, 128, 70, 82, 65, 77, 69, 128, 70, 82, 65, 77, 197, + 70, 82, 65, 75, 84, 85, 210, 70, 82, 65, 71, 82, 65, 78, 84, 128, 70, 82, + 65, 71, 77, 69, 78, 84, 128, 70, 82, 65, 67, 84, 73, 79, 206, 70, 79, 88, + 128, 70, 79, 216, 70, 79, 85, 82, 84, 69, 69, 78, 128, 70, 79, 85, 82, + 84, 69, 69, 206, 70, 79, 85, 82, 45, 84, 72, 73, 82, 84, 89, 128, 70, 79, + 85, 82, 45, 83, 84, 82, 73, 78, 199, 70, 79, 85, 82, 45, 80, 69, 82, 45, + 69, 205, 70, 79, 85, 82, 45, 76, 73, 78, 197, 70, 79, 85, 210, 70, 79, + 85, 78, 84, 65, 73, 78, 128, 70, 79, 85, 78, 84, 65, 73, 206, 70, 79, 83, + 84, 69, 82, 73, 78, 71, 128, 70, 79, 82, 87, 65, 82, 68, 128, 70, 79, 82, + 87, 65, 82, 196, 70, 79, 82, 84, 89, 45, 70, 73, 86, 197, 70, 79, 82, 84, + 89, 128, 70, 79, 82, 84, 217, 70, 79, 82, 84, 85, 78, 69, 128, 70, 79, + 82, 84, 85, 78, 197, 70, 79, 82, 84, 73, 69, 84, 72, 128, 70, 79, 82, 84, + 69, 128, 70, 79, 82, 77, 211, 70, 79, 82, 77, 69, 69, 128, 70, 79, 82, + 77, 69, 197, 70, 79, 82, 77, 65, 84, 84, 73, 78, 71, 128, 70, 79, 82, 77, + 65, 212, 70, 79, 82, 75, 69, 196, 70, 79, 82, 69, 72, 69, 65, 196, 70, + 79, 82, 67, 69, 83, 128, 70, 79, 82, 67, 69, 128, 70, 79, 80, 128, 70, + 79, 79, 84, 83, 84, 79, 79, 76, 128, 70, 79, 79, 84, 80, 82, 73, 78, 84, + 83, 128, 70, 79, 79, 84, 78, 79, 84, 197, 70, 79, 79, 84, 66, 65, 76, 76, 128, 70, 79, 79, 84, 128, 70, 79, 79, 76, 128, 70, 79, 79, 68, 128, 70, 79, 79, 128, 70, 79, 78, 212, 70, 79, 78, 71, 77, 65, 78, 128, 70, 79, 78, 68, 85, 69, 128, 70, 79, 77, 128, 70, 79, 76, 76, 89, 128, 70, 79, - 76, 76, 79, 87, 73, 78, 71, 128, 70, 79, 76, 68, 69, 82, 128, 70, 79, 76, - 68, 69, 196, 70, 79, 71, 71, 89, 128, 70, 79, 71, 128, 70, 207, 70, 77, - 128, 70, 76, 89, 73, 78, 199, 70, 76, 89, 128, 70, 76, 85, 84, 84, 69, - 82, 73, 78, 71, 128, 70, 76, 85, 84, 84, 69, 82, 73, 78, 199, 70, 76, 85, - 84, 69, 128, 70, 76, 85, 83, 72, 69, 196, 70, 76, 79, 87, 73, 78, 199, - 70, 76, 79, 87, 69, 82, 83, 128, 70, 76, 79, 87, 69, 210, 70, 76, 79, 85, - 82, 73, 83, 72, 128, 70, 76, 79, 82, 69, 84, 84, 69, 128, 70, 76, 79, 82, - 65, 204, 70, 76, 79, 80, 80, 217, 70, 76, 79, 79, 82, 128, 70, 76, 79, - 79, 210, 70, 76, 73, 80, 128, 70, 76, 73, 71, 72, 84, 128, 70, 76, 73, - 67, 203, 70, 76, 69, 88, 85, 83, 128, 70, 76, 69, 88, 69, 196, 70, 76, - 69, 88, 128, 70, 76, 69, 85, 82, 79, 78, 128, 70, 76, 69, 85, 82, 45, 68, - 69, 45, 76, 73, 83, 128, 70, 76, 65, 84, 84, 69, 78, 69, 196, 70, 76, 65, - 84, 78, 69, 83, 83, 128, 70, 76, 65, 84, 66, 82, 69, 65, 68, 128, 70, 76, - 65, 83, 72, 128, 70, 76, 65, 77, 73, 78, 71, 79, 128, 70, 76, 65, 77, 69, - 128, 70, 76, 65, 71, 83, 128, 70, 76, 65, 71, 45, 53, 128, 70, 76, 65, - 71, 45, 52, 128, 70, 76, 65, 71, 45, 51, 128, 70, 76, 65, 71, 45, 50, - 128, 70, 76, 65, 71, 45, 49, 128, 70, 76, 65, 71, 128, 70, 76, 65, 199, - 70, 76, 65, 128, 70, 76, 128, 70, 73, 88, 69, 68, 45, 70, 79, 82, 205, - 70, 73, 88, 128, 70, 73, 86, 69, 45, 84, 72, 73, 82, 84, 89, 128, 70, 73, - 86, 69, 45, 76, 73, 78, 197, 70, 73, 84, 90, 80, 65, 84, 82, 73, 67, 203, - 70, 73, 84, 65, 128, 70, 73, 84, 128, 70, 73, 83, 84, 69, 196, 70, 73, - 83, 72, 73, 78, 199, 70, 73, 83, 72, 72, 79, 79, 75, 128, 70, 73, 83, 72, - 72, 79, 79, 203, 70, 73, 83, 72, 69, 89, 69, 128, 70, 73, 83, 72, 128, - 70, 73, 83, 200, 70, 73, 82, 83, 212, 70, 73, 82, 73, 128, 70, 73, 82, - 69, 87, 79, 82, 75, 83, 128, 70, 73, 82, 69, 87, 79, 82, 203, 70, 73, 82, - 69, 67, 82, 65, 67, 75, 69, 82, 128, 70, 73, 82, 69, 128, 70, 73, 82, - 197, 70, 73, 80, 128, 70, 73, 78, 73, 84, 197, 70, 73, 78, 71, 69, 82, - 83, 128, 70, 73, 78, 71, 69, 82, 211, 70, 73, 78, 71, 69, 82, 78, 65, 73, - 76, 83, 128, 70, 73, 78, 71, 69, 82, 69, 196, 70, 73, 78, 71, 69, 82, 45, - 80, 79, 83, 212, 70, 73, 78, 71, 69, 82, 128, 70, 73, 78, 71, 69, 210, - 70, 73, 78, 65, 78, 67, 73, 65, 76, 128, 70, 73, 78, 65, 76, 128, 70, 73, - 76, 205, 70, 73, 76, 76, 69, 82, 45, 50, 128, 70, 73, 76, 76, 69, 82, 45, - 49, 128, 70, 73, 76, 76, 69, 82, 128, 70, 73, 76, 76, 69, 196, 70, 73, - 76, 76, 128, 70, 73, 76, 204, 70, 73, 76, 197, 70, 73, 73, 128, 70, 73, - 71, 85, 82, 69, 45, 51, 128, 70, 73, 71, 85, 82, 69, 45, 50, 128, 70, 73, - 71, 85, 82, 69, 45, 49, 128, 70, 73, 71, 85, 82, 69, 128, 70, 73, 71, 85, - 82, 197, 70, 73, 71, 72, 84, 128, 70, 73, 70, 84, 89, 128, 70, 73, 70, - 84, 217, 70, 73, 70, 84, 72, 83, 128, 70, 73, 70, 84, 72, 128, 70, 73, - 70, 84, 69, 69, 78, 128, 70, 73, 70, 84, 69, 69, 206, 70, 73, 69, 76, 68, - 128, 70, 73, 69, 76, 196, 70, 72, 84, 79, 82, 193, 70, 70, 76, 128, 70, - 70, 73, 128, 70, 69, 85, 88, 128, 70, 69, 85, 70, 69, 85, 65, 69, 84, - 128, 70, 69, 84, 72, 128, 70, 69, 83, 84, 73, 86, 65, 76, 128, 70, 69, - 82, 82, 89, 128, 70, 69, 82, 82, 73, 211, 70, 69, 82, 77, 65, 84, 65, - 128, 70, 69, 82, 77, 65, 84, 193, 70, 69, 79, 200, 70, 69, 78, 199, 70, - 69, 78, 67, 69, 82, 128, 70, 69, 78, 67, 69, 128, 70, 69, 77, 73, 78, 73, - 78, 197, 70, 69, 77, 65, 76, 69, 128, 70, 69, 77, 65, 76, 197, 70, 69, - 76, 76, 79, 87, 83, 72, 73, 80, 128, 70, 69, 73, 128, 70, 69, 72, 213, - 70, 69, 72, 128, 70, 69, 200, 70, 69, 69, 78, 71, 128, 70, 69, 69, 77, - 128, 70, 69, 69, 68, 128, 70, 69, 69, 196, 70, 69, 69, 128, 70, 69, 66, - 82, 85, 65, 82, 89, 128, 70, 69, 65, 84, 72, 69, 82, 128, 70, 69, 65, 84, - 72, 69, 210, 70, 69, 65, 82, 78, 128, 70, 69, 65, 82, 70, 85, 204, 70, - 69, 65, 82, 128, 70, 65, 89, 65, 78, 78, 65, 128, 70, 65, 89, 128, 70, - 65, 88, 128, 70, 65, 216, 70, 65, 84, 73, 71, 85, 69, 128, 70, 65, 84, - 72, 69, 82, 128, 70, 65, 84, 72, 69, 210, 70, 65, 84, 72, 65, 84, 65, 78, - 128, 70, 65, 84, 72, 65, 84, 65, 206, 70, 65, 84, 72, 65, 128, 70, 65, - 84, 72, 193, 70, 65, 84, 128, 70, 65, 83, 84, 128, 70, 65, 82, 83, 201, - 70, 65, 82, 128, 70, 65, 81, 128, 70, 65, 80, 128, 70, 65, 78, 71, 128, - 70, 65, 78, 69, 82, 79, 83, 73, 211, 70, 65, 78, 128, 70, 65, 77, 73, 76, - 89, 128, 70, 65, 77, 128, 70, 65, 76, 76, 69, 206, 70, 65, 76, 65, 70, - 69, 76, 128, 70, 65, 74, 128, 70, 65, 73, 82, 89, 128, 70, 65, 73, 76, - 85, 82, 69, 128, 70, 65, 73, 72, 85, 128, 70, 65, 73, 66, 128, 70, 65, - 72, 82, 69, 78, 72, 69, 73, 84, 128, 70, 65, 67, 84, 79, 82, 89, 128, 70, - 65, 67, 84, 79, 210, 70, 65, 67, 83, 73, 77, 73, 76, 197, 70, 65, 67, 73, - 78, 71, 83, 128, 70, 65, 67, 69, 45, 54, 128, 70, 65, 67, 69, 45, 53, - 128, 70, 65, 67, 69, 45, 52, 128, 70, 65, 67, 69, 45, 51, 128, 70, 65, - 67, 69, 45, 50, 128, 70, 65, 67, 69, 45, 49, 128, 70, 65, 65, 77, 65, 69, - 128, 70, 65, 65, 73, 128, 70, 65, 65, 70, 85, 128, 70, 48, 53, 51, 128, - 70, 48, 53, 50, 128, 70, 48, 53, 49, 67, 128, 70, 48, 53, 49, 66, 128, - 70, 48, 53, 49, 65, 128, 70, 48, 53, 49, 128, 70, 48, 53, 48, 128, 70, - 48, 52, 57, 128, 70, 48, 52, 56, 128, 70, 48, 52, 55, 65, 128, 70, 48, - 52, 55, 128, 70, 48, 52, 54, 65, 128, 70, 48, 52, 54, 128, 70, 48, 52, - 53, 65, 128, 70, 48, 52, 53, 128, 70, 48, 52, 52, 128, 70, 48, 52, 51, - 128, 70, 48, 52, 50, 128, 70, 48, 52, 49, 128, 70, 48, 52, 48, 128, 70, - 48, 51, 57, 128, 70, 48, 51, 56, 65, 128, 70, 48, 51, 56, 128, 70, 48, - 51, 55, 65, 128, 70, 48, 51, 55, 128, 70, 48, 51, 54, 128, 70, 48, 51, - 53, 128, 70, 48, 51, 52, 128, 70, 48, 51, 51, 128, 70, 48, 51, 50, 128, - 70, 48, 51, 49, 65, 128, 70, 48, 51, 49, 128, 70, 48, 51, 48, 128, 70, - 48, 50, 57, 128, 70, 48, 50, 56, 128, 70, 48, 50, 55, 128, 70, 48, 50, - 54, 128, 70, 48, 50, 53, 128, 70, 48, 50, 52, 128, 70, 48, 50, 51, 128, - 70, 48, 50, 50, 128, 70, 48, 50, 49, 65, 128, 70, 48, 50, 49, 128, 70, - 48, 50, 48, 128, 70, 48, 49, 57, 128, 70, 48, 49, 56, 128, 70, 48, 49, - 55, 128, 70, 48, 49, 54, 128, 70, 48, 49, 53, 128, 70, 48, 49, 52, 128, - 70, 48, 49, 51, 65, 128, 70, 48, 49, 51, 128, 70, 48, 49, 50, 128, 70, - 48, 49, 49, 128, 70, 48, 49, 48, 128, 70, 48, 48, 57, 128, 70, 48, 48, - 56, 128, 70, 48, 48, 55, 128, 70, 48, 48, 54, 128, 70, 48, 48, 53, 128, - 70, 48, 48, 52, 128, 70, 48, 48, 51, 128, 70, 48, 48, 50, 128, 70, 48, - 48, 49, 65, 128, 70, 48, 48, 49, 128, 69, 90, 83, 128, 69, 90, 69, 78, - 128, 69, 90, 69, 206, 69, 89, 89, 89, 128, 69, 89, 69, 83, 128, 69, 89, - 69, 211, 69, 89, 69, 76, 65, 83, 72, 69, 211, 69, 89, 69, 71, 76, 65, 83, - 83, 69, 83, 128, 69, 89, 69, 71, 65, 90, 69, 45, 87, 65, 76, 76, 80, 76, - 65, 78, 197, 69, 89, 69, 71, 65, 90, 69, 45, 70, 76, 79, 79, 82, 80, 76, - 65, 78, 197, 69, 89, 69, 66, 82, 79, 87, 211, 69, 89, 69, 66, 82, 79, - 215, 69, 89, 197, 69, 89, 66, 69, 89, 70, 73, 76, 73, 128, 69, 89, 65, - 78, 78, 65, 128, 69, 88, 84, 82, 69, 77, 69, 76, 217, 69, 88, 84, 82, 65, - 84, 69, 82, 82, 69, 83, 84, 82, 73, 65, 204, 69, 88, 84, 82, 65, 45, 76, - 79, 215, 69, 88, 84, 82, 65, 45, 72, 73, 71, 200, 69, 88, 84, 82, 193, - 69, 88, 84, 73, 78, 71, 85, 73, 83, 72, 69, 82, 128, 69, 88, 84, 69, 78, - 83, 73, 79, 78, 128, 69, 88, 84, 69, 78, 68, 69, 68, 128, 69, 88, 84, 69, - 78, 68, 69, 196, 69, 88, 80, 82, 69, 83, 83, 73, 79, 78, 76, 69, 83, 211, - 69, 88, 80, 79, 78, 69, 78, 212, 69, 88, 80, 76, 79, 68, 73, 78, 199, 69, - 88, 79, 128, 69, 88, 207, 69, 88, 73, 83, 84, 83, 128, 69, 88, 73, 83, - 84, 128, 69, 88, 72, 65, 85, 83, 84, 73, 79, 78, 128, 69, 88, 72, 65, 76, - 69, 128, 69, 88, 67, 76, 65, 77, 65, 84, 73, 79, 78, 128, 69, 88, 67, 76, - 65, 77, 65, 84, 73, 79, 206, 69, 88, 67, 73, 84, 69, 77, 69, 78, 84, 128, - 69, 88, 67, 72, 65, 78, 71, 69, 128, 69, 88, 67, 69, 83, 83, 128, 69, 88, - 67, 69, 76, 76, 69, 78, 84, 128, 69, 87, 69, 128, 69, 86, 69, 82, 217, - 69, 86, 69, 82, 71, 82, 69, 69, 206, 69, 86, 69, 78, 73, 78, 71, 128, 69, - 85, 82, 79, 80, 69, 65, 206, 69, 85, 82, 79, 80, 69, 45, 65, 70, 82, 73, - 67, 65, 128, 69, 85, 82, 79, 45, 67, 85, 82, 82, 69, 78, 67, 217, 69, 85, - 82, 207, 69, 85, 76, 69, 210, 69, 85, 45, 85, 128, 69, 85, 45, 79, 128, - 69, 85, 45, 69, 85, 128, 69, 85, 45, 69, 79, 128, 69, 85, 45, 69, 128, - 69, 85, 45, 65, 128, 69, 84, 88, 128, 69, 84, 78, 65, 72, 84, 65, 128, - 69, 84, 72, 69, 204, 69, 84, 69, 82, 79, 206, 69, 84, 69, 82, 78, 73, 84, - 89, 128, 69, 84, 69, 82, 78, 73, 84, 217, 69, 84, 66, 128, 69, 83, 90, - 128, 69, 83, 85, 75, 85, 85, 68, 79, 128, 69, 83, 84, 73, 77, 65, 84, 69, - 83, 128, 69, 83, 84, 73, 77, 65, 84, 69, 196, 69, 83, 72, 69, 51, 128, - 69, 83, 72, 50, 49, 128, 69, 83, 72, 49, 54, 128, 69, 83, 67, 65, 80, 69, + 76, 76, 79, 87, 73, 78, 71, 128, 70, 79, 76, 68, 73, 78, 199, 70, 79, 76, + 68, 69, 82, 128, 70, 79, 76, 68, 69, 196, 70, 79, 71, 71, 89, 128, 70, + 79, 71, 128, 70, 207, 70, 77, 128, 70, 76, 89, 73, 78, 199, 70, 76, 89, + 128, 70, 76, 85, 84, 84, 69, 82, 73, 78, 71, 128, 70, 76, 85, 84, 84, 69, + 82, 73, 78, 199, 70, 76, 85, 84, 69, 128, 70, 76, 85, 83, 72, 69, 196, + 70, 76, 79, 87, 73, 78, 199, 70, 76, 79, 87, 69, 82, 83, 128, 70, 76, 79, + 87, 69, 210, 70, 76, 79, 85, 82, 73, 83, 72, 128, 70, 76, 79, 82, 69, 84, + 84, 69, 128, 70, 76, 79, 82, 65, 204, 70, 76, 79, 80, 80, 217, 70, 76, + 79, 79, 82, 128, 70, 76, 79, 79, 210, 70, 76, 73, 80, 128, 70, 76, 73, + 71, 72, 84, 128, 70, 76, 73, 67, 203, 70, 76, 69, 88, 85, 83, 128, 70, + 76, 69, 88, 69, 196, 70, 76, 69, 88, 128, 70, 76, 69, 85, 82, 79, 78, + 128, 70, 76, 69, 85, 82, 45, 68, 69, 45, 76, 73, 83, 128, 70, 76, 65, 84, + 84, 69, 78, 69, 196, 70, 76, 65, 84, 78, 69, 83, 83, 128, 70, 76, 65, 84, + 66, 82, 69, 65, 68, 128, 70, 76, 65, 83, 72, 128, 70, 76, 65, 77, 73, 78, + 71, 79, 128, 70, 76, 65, 77, 69, 128, 70, 76, 65, 71, 83, 128, 70, 76, + 65, 71, 45, 53, 128, 70, 76, 65, 71, 45, 52, 128, 70, 76, 65, 71, 45, 51, + 128, 70, 76, 65, 71, 45, 50, 128, 70, 76, 65, 71, 45, 49, 128, 70, 76, + 65, 71, 128, 70, 76, 65, 199, 70, 76, 65, 128, 70, 76, 128, 70, 73, 88, + 69, 68, 45, 70, 79, 82, 205, 70, 73, 88, 128, 70, 73, 86, 69, 45, 84, 72, + 73, 82, 84, 89, 128, 70, 73, 86, 69, 45, 76, 73, 78, 197, 70, 73, 86, 69, + 45, 76, 73, 75, 197, 70, 73, 84, 90, 80, 65, 84, 82, 73, 67, 203, 70, 73, + 84, 65, 128, 70, 73, 84, 128, 70, 73, 83, 84, 69, 196, 70, 73, 83, 72, + 73, 78, 199, 70, 73, 83, 72, 72, 79, 79, 75, 128, 70, 73, 83, 72, 72, 79, + 79, 203, 70, 73, 83, 72, 69, 89, 69, 128, 70, 73, 83, 200, 70, 73, 82, + 83, 212, 70, 73, 82, 73, 128, 70, 73, 82, 69, 87, 79, 82, 75, 83, 128, + 70, 73, 82, 69, 87, 79, 82, 203, 70, 73, 82, 69, 67, 82, 65, 67, 75, 69, + 82, 128, 70, 73, 82, 69, 128, 70, 73, 82, 197, 70, 73, 80, 128, 70, 73, + 78, 73, 84, 197, 70, 73, 78, 71, 69, 82, 83, 128, 70, 73, 78, 71, 69, 82, + 211, 70, 73, 78, 71, 69, 82, 78, 65, 73, 76, 83, 128, 70, 73, 78, 71, 69, + 82, 69, 196, 70, 73, 78, 71, 69, 82, 45, 80, 79, 83, 212, 70, 73, 78, 71, + 69, 82, 128, 70, 73, 78, 71, 69, 210, 70, 73, 78, 65, 78, 67, 73, 65, 76, + 128, 70, 73, 78, 65, 76, 128, 70, 73, 76, 205, 70, 73, 76, 76, 69, 82, + 45, 50, 128, 70, 73, 76, 76, 69, 82, 45, 49, 128, 70, 73, 76, 76, 69, 82, + 128, 70, 73, 76, 76, 69, 196, 70, 73, 76, 76, 128, 70, 73, 76, 204, 70, + 73, 76, 197, 70, 73, 73, 128, 70, 73, 71, 85, 82, 69, 45, 51, 128, 70, + 73, 71, 85, 82, 69, 45, 50, 128, 70, 73, 71, 85, 82, 69, 45, 49, 128, 70, + 73, 71, 85, 82, 69, 128, 70, 73, 71, 85, 82, 197, 70, 73, 71, 72, 84, + 128, 70, 73, 70, 84, 89, 128, 70, 73, 70, 84, 217, 70, 73, 70, 84, 72, + 83, 128, 70, 73, 70, 84, 72, 128, 70, 73, 70, 84, 69, 69, 78, 128, 70, + 73, 70, 84, 69, 69, 206, 70, 73, 69, 76, 68, 128, 70, 73, 69, 76, 196, + 70, 72, 84, 79, 82, 193, 70, 70, 76, 128, 70, 70, 73, 128, 70, 69, 85, + 88, 128, 70, 69, 85, 70, 69, 85, 65, 69, 84, 128, 70, 69, 84, 72, 128, + 70, 69, 83, 84, 73, 86, 65, 76, 128, 70, 69, 82, 82, 89, 128, 70, 69, 82, + 82, 73, 211, 70, 69, 82, 77, 65, 84, 65, 128, 70, 69, 82, 77, 65, 84, + 193, 70, 69, 79, 200, 70, 69, 78, 199, 70, 69, 78, 67, 69, 82, 128, 70, + 69, 78, 67, 69, 128, 70, 69, 77, 73, 78, 73, 78, 197, 70, 69, 77, 65, 76, + 69, 128, 70, 69, 77, 65, 76, 197, 70, 69, 76, 76, 79, 87, 83, 72, 73, 80, + 128, 70, 69, 73, 128, 70, 69, 72, 213, 70, 69, 72, 128, 70, 69, 200, 70, + 69, 69, 78, 71, 128, 70, 69, 69, 77, 128, 70, 69, 69, 68, 128, 70, 69, + 69, 196, 70, 69, 69, 128, 70, 69, 66, 82, 85, 65, 82, 89, 128, 70, 69, + 65, 84, 72, 69, 82, 128, 70, 69, 65, 84, 72, 69, 210, 70, 69, 65, 82, 78, + 128, 70, 69, 65, 82, 70, 85, 204, 70, 69, 65, 82, 128, 70, 65, 89, 65, + 78, 78, 65, 128, 70, 65, 89, 128, 70, 65, 88, 128, 70, 65, 216, 70, 65, + 84, 73, 71, 85, 69, 128, 70, 65, 84, 72, 69, 82, 128, 70, 65, 84, 72, 69, + 210, 70, 65, 84, 72, 65, 84, 65, 78, 128, 70, 65, 84, 72, 65, 84, 65, + 206, 70, 65, 84, 72, 65, 128, 70, 65, 84, 72, 193, 70, 65, 84, 128, 70, + 65, 83, 84, 128, 70, 65, 82, 83, 201, 70, 65, 82, 128, 70, 65, 81, 128, + 70, 65, 80, 128, 70, 65, 78, 71, 128, 70, 65, 78, 69, 82, 79, 83, 73, + 211, 70, 65, 78, 128, 70, 65, 77, 73, 76, 89, 128, 70, 65, 77, 128, 70, + 65, 76, 76, 69, 206, 70, 65, 76, 65, 70, 69, 76, 128, 70, 65, 74, 128, + 70, 65, 73, 82, 89, 128, 70, 65, 73, 76, 85, 82, 69, 128, 70, 65, 73, 72, + 85, 128, 70, 65, 73, 66, 128, 70, 65, 72, 82, 69, 78, 72, 69, 73, 84, + 128, 70, 65, 67, 84, 79, 82, 89, 128, 70, 65, 67, 84, 79, 210, 70, 65, + 67, 83, 73, 77, 73, 76, 197, 70, 65, 67, 73, 78, 71, 83, 128, 70, 65, 67, + 69, 45, 54, 128, 70, 65, 67, 69, 45, 53, 128, 70, 65, 67, 69, 45, 52, + 128, 70, 65, 67, 69, 45, 51, 128, 70, 65, 67, 69, 45, 50, 128, 70, 65, + 67, 69, 45, 49, 128, 70, 65, 65, 77, 65, 69, 128, 70, 65, 65, 73, 128, + 70, 65, 65, 70, 85, 128, 70, 48, 53, 51, 128, 70, 48, 53, 50, 128, 70, + 48, 53, 49, 67, 128, 70, 48, 53, 49, 66, 128, 70, 48, 53, 49, 65, 128, + 70, 48, 53, 49, 128, 70, 48, 53, 48, 128, 70, 48, 52, 57, 128, 70, 48, + 52, 56, 128, 70, 48, 52, 55, 65, 128, 70, 48, 52, 55, 128, 70, 48, 52, + 54, 65, 128, 70, 48, 52, 54, 128, 70, 48, 52, 53, 65, 128, 70, 48, 52, + 53, 128, 70, 48, 52, 52, 128, 70, 48, 52, 51, 128, 70, 48, 52, 50, 128, + 70, 48, 52, 49, 128, 70, 48, 52, 48, 128, 70, 48, 51, 57, 128, 70, 48, + 51, 56, 65, 128, 70, 48, 51, 56, 128, 70, 48, 51, 55, 65, 128, 70, 48, + 51, 55, 128, 70, 48, 51, 54, 128, 70, 48, 51, 53, 128, 70, 48, 51, 52, + 128, 70, 48, 51, 51, 128, 70, 48, 51, 50, 128, 70, 48, 51, 49, 65, 128, + 70, 48, 51, 49, 128, 70, 48, 51, 48, 128, 70, 48, 50, 57, 128, 70, 48, + 50, 56, 128, 70, 48, 50, 55, 128, 70, 48, 50, 54, 128, 70, 48, 50, 53, + 128, 70, 48, 50, 52, 128, 70, 48, 50, 51, 128, 70, 48, 50, 50, 128, 70, + 48, 50, 49, 65, 128, 70, 48, 50, 49, 128, 70, 48, 50, 48, 128, 70, 48, + 49, 57, 128, 70, 48, 49, 56, 128, 70, 48, 49, 55, 128, 70, 48, 49, 54, + 128, 70, 48, 49, 53, 128, 70, 48, 49, 52, 128, 70, 48, 49, 51, 65, 128, + 70, 48, 49, 51, 128, 70, 48, 49, 50, 128, 70, 48, 49, 49, 128, 70, 48, + 49, 48, 128, 70, 48, 48, 57, 128, 70, 48, 48, 56, 128, 70, 48, 48, 55, + 128, 70, 48, 48, 54, 128, 70, 48, 48, 53, 128, 70, 48, 48, 52, 128, 70, + 48, 48, 51, 128, 70, 48, 48, 50, 128, 70, 48, 48, 49, 65, 128, 70, 48, + 48, 49, 128, 69, 90, 83, 128, 69, 90, 69, 78, 128, 69, 90, 69, 206, 69, + 89, 89, 89, 128, 69, 89, 69, 83, 128, 69, 89, 69, 211, 69, 89, 69, 76, + 65, 83, 72, 69, 211, 69, 89, 69, 71, 76, 65, 83, 83, 69, 83, 128, 69, 89, + 69, 71, 65, 90, 69, 45, 87, 65, 76, 76, 80, 76, 65, 78, 197, 69, 89, 69, + 71, 65, 90, 69, 45, 70, 76, 79, 79, 82, 80, 76, 65, 78, 197, 69, 89, 69, + 66, 82, 79, 87, 211, 69, 89, 69, 66, 82, 79, 215, 69, 89, 197, 69, 89, + 66, 69, 89, 70, 73, 76, 73, 128, 69, 89, 65, 78, 78, 65, 128, 69, 88, 84, + 82, 69, 77, 69, 76, 217, 69, 88, 84, 82, 65, 84, 69, 82, 82, 69, 83, 84, + 82, 73, 65, 204, 69, 88, 84, 82, 65, 45, 76, 79, 215, 69, 88, 84, 82, 65, + 45, 72, 73, 71, 200, 69, 88, 84, 82, 193, 69, 88, 84, 73, 78, 71, 85, 73, + 83, 72, 69, 82, 128, 69, 88, 84, 69, 78, 83, 73, 79, 78, 128, 69, 88, 84, + 69, 78, 68, 69, 68, 128, 69, 88, 84, 69, 78, 68, 69, 196, 69, 88, 80, 82, + 69, 83, 83, 73, 79, 78, 76, 69, 83, 211, 69, 88, 80, 79, 78, 69, 78, 212, + 69, 88, 80, 76, 79, 68, 73, 78, 199, 69, 88, 79, 128, 69, 88, 207, 69, + 88, 73, 83, 84, 83, 128, 69, 88, 73, 83, 84, 128, 69, 88, 72, 65, 85, 83, + 84, 73, 79, 78, 128, 69, 88, 72, 65, 76, 69, 128, 69, 88, 67, 76, 65, 77, + 65, 84, 73, 79, 78, 128, 69, 88, 67, 76, 65, 77, 65, 84, 73, 79, 206, 69, + 88, 67, 73, 84, 69, 77, 69, 78, 84, 128, 69, 88, 67, 72, 65, 78, 71, 69, + 128, 69, 88, 67, 69, 83, 83, 128, 69, 88, 67, 69, 76, 76, 69, 78, 84, + 128, 69, 87, 69, 128, 69, 86, 69, 82, 217, 69, 86, 69, 82, 71, 82, 69, + 69, 206, 69, 86, 69, 78, 73, 78, 71, 128, 69, 85, 82, 79, 80, 69, 65, + 206, 69, 85, 82, 79, 80, 69, 45, 65, 70, 82, 73, 67, 65, 128, 69, 85, 82, + 79, 45, 67, 85, 82, 82, 69, 78, 67, 217, 69, 85, 82, 207, 69, 85, 76, 69, + 210, 69, 85, 45, 85, 128, 69, 85, 45, 79, 128, 69, 85, 45, 69, 85, 128, + 69, 85, 45, 69, 79, 128, 69, 85, 45, 69, 128, 69, 85, 45, 65, 128, 69, + 84, 88, 128, 69, 84, 84, 128, 69, 84, 78, 65, 72, 84, 65, 128, 69, 84, + 72, 69, 204, 69, 84, 69, 82, 79, 206, 69, 84, 69, 82, 78, 73, 84, 89, + 128, 69, 84, 69, 82, 78, 73, 84, 217, 69, 84, 66, 128, 69, 83, 90, 128, + 69, 83, 85, 75, 85, 85, 68, 79, 128, 69, 83, 84, 73, 77, 65, 84, 69, 83, + 128, 69, 83, 84, 73, 77, 65, 84, 69, 196, 69, 83, 72, 69, 51, 128, 69, + 83, 72, 50, 49, 128, 69, 83, 72, 49, 54, 128, 69, 83, 67, 65, 80, 69, 128, 69, 83, 67, 128, 69, 83, 65, 128, 69, 83, 45, 84, 69, 128, 69, 83, 45, 51, 128, 69, 83, 45, 50, 128, 69, 83, 45, 49, 128, 69, 82, 82, 79, 82, 45, 66, 65, 82, 82, 69, 196, 69, 82, 82, 128, 69, 82, 73, 211, 69, @@ -4464,101 +4481,102 @@ static const unsigned char lexicon[] = { 89, 128, 69, 71, 73, 82, 128, 69, 71, 71, 83, 128, 69, 71, 71, 128, 69, 69, 89, 65, 78, 78, 65, 128, 69, 69, 75, 65, 65, 128, 69, 69, 72, 128, 69, 69, 66, 69, 69, 70, 73, 76, 73, 128, 69, 68, 73, 84, 79, 82, 73, 65, - 204, 69, 68, 73, 78, 128, 69, 68, 68, 128, 69, 67, 83, 128, 69, 66, 69, - 70, 73, 76, 73, 128, 69, 65, 83, 84, 69, 82, 206, 69, 65, 83, 84, 128, - 69, 65, 83, 212, 69, 65, 82, 84, 72, 76, 217, 69, 65, 82, 84, 72, 128, - 69, 65, 82, 84, 200, 69, 65, 82, 76, 217, 69, 65, 77, 72, 65, 78, 67, 72, - 79, 76, 76, 128, 69, 65, 71, 76, 69, 128, 69, 65, 68, 72, 65, 68, 72, - 128, 69, 65, 66, 72, 65, 68, 72, 128, 69, 178, 69, 48, 51, 56, 128, 69, - 48, 51, 55, 128, 69, 48, 51, 54, 128, 69, 48, 51, 52, 65, 128, 69, 48, - 51, 52, 128, 69, 48, 51, 51, 128, 69, 48, 51, 50, 128, 69, 48, 51, 49, - 128, 69, 48, 51, 48, 128, 69, 48, 50, 57, 128, 69, 48, 50, 56, 65, 128, - 69, 48, 50, 56, 128, 69, 48, 50, 55, 128, 69, 48, 50, 54, 128, 69, 48, - 50, 53, 128, 69, 48, 50, 52, 128, 69, 48, 50, 51, 128, 69, 48, 50, 50, - 128, 69, 48, 50, 49, 128, 69, 48, 50, 48, 65, 128, 69, 48, 50, 48, 128, - 69, 48, 49, 57, 128, 69, 48, 49, 56, 128, 69, 48, 49, 55, 65, 128, 69, - 48, 49, 55, 128, 69, 48, 49, 54, 65, 128, 69, 48, 49, 54, 128, 69, 48, - 49, 53, 128, 69, 48, 49, 52, 128, 69, 48, 49, 51, 128, 69, 48, 49, 50, - 128, 69, 48, 49, 49, 128, 69, 48, 49, 48, 128, 69, 48, 48, 57, 65, 128, - 69, 48, 48, 57, 128, 69, 48, 48, 56, 65, 128, 69, 48, 48, 56, 128, 69, - 48, 48, 55, 128, 69, 48, 48, 54, 128, 69, 48, 48, 53, 128, 69, 48, 48, - 52, 128, 69, 48, 48, 51, 128, 69, 48, 48, 50, 128, 69, 48, 48, 49, 128, - 69, 45, 77, 65, 73, 204, 68, 90, 90, 72, 69, 128, 68, 90, 90, 69, 128, - 68, 90, 90, 65, 128, 68, 90, 89, 73, 128, 68, 90, 89, 65, 89, 128, 68, - 90, 87, 69, 128, 68, 90, 85, 128, 68, 90, 79, 128, 68, 90, 74, 69, 128, - 68, 90, 73, 84, 65, 128, 68, 90, 73, 128, 68, 90, 72, 79, 73, 128, 68, - 90, 72, 69, 128, 68, 90, 72, 65, 128, 68, 90, 69, 76, 79, 128, 68, 90, - 69, 69, 128, 68, 90, 69, 128, 68, 90, 65, 89, 128, 68, 90, 65, 65, 128, - 68, 90, 65, 128, 68, 90, 128, 68, 218, 68, 89, 79, 128, 68, 89, 207, 68, - 89, 78, 65, 77, 73, 195, 68, 89, 69, 72, 128, 68, 89, 69, 200, 68, 89, - 65, 78, 128, 68, 87, 79, 128, 68, 87, 69, 128, 68, 87, 65, 128, 68, 86, - 85, 77, 89, 193, 68, 86, 79, 69, 84, 79, 67, 72, 73, 69, 128, 68, 86, 79, - 69, 67, 72, 69, 76, 78, 79, 80, 79, 86, 79, 68, 78, 65, 89, 65, 128, 68, - 86, 79, 69, 67, 72, 69, 76, 78, 79, 80, 79, 86, 79, 68, 78, 65, 89, 193, - 68, 86, 79, 69, 67, 72, 69, 76, 78, 79, 75, 82, 89, 90, 72, 69, 86, 65, - 89, 65, 128, 68, 86, 79, 69, 67, 72, 69, 76, 78, 65, 89, 65, 128, 68, 86, - 79, 69, 67, 72, 69, 76, 78, 65, 89, 193, 68, 86, 73, 83, 86, 65, 82, 65, - 128, 68, 86, 68, 128, 68, 86, 193, 68, 86, 128, 68, 85, 84, 73, 69, 83, - 128, 68, 85, 83, 75, 128, 68, 85, 83, 72, 69, 78, 78, 65, 128, 68, 85, - 82, 65, 84, 73, 79, 78, 128, 68, 85, 82, 50, 128, 68, 85, 80, 79, 78, 68, - 73, 85, 211, 68, 85, 79, 88, 128, 68, 85, 79, 128, 68, 85, 78, 52, 128, - 68, 85, 78, 51, 128, 68, 85, 78, 179, 68, 85, 77, 80, 76, 73, 78, 71, - 128, 68, 85, 77, 128, 68, 85, 204, 68, 85, 72, 128, 68, 85, 71, 85, 68, - 128, 68, 85, 199, 68, 85, 68, 65, 128, 68, 85, 67, 75, 128, 68, 85, 66, - 50, 128, 68, 85, 66, 128, 68, 85, 194, 68, 82, 89, 128, 68, 82, 217, 68, - 82, 85, 77, 83, 84, 73, 67, 75, 83, 128, 68, 82, 85, 77, 128, 68, 82, 85, - 205, 68, 82, 79, 80, 83, 128, 68, 82, 79, 80, 76, 69, 84, 128, 68, 82, - 79, 80, 45, 83, 72, 65, 68, 79, 87, 69, 196, 68, 82, 79, 208, 68, 82, 79, - 79, 76, 73, 78, 199, 68, 82, 79, 77, 69, 68, 65, 82, 217, 68, 82, 73, 86, - 69, 128, 68, 82, 73, 86, 197, 68, 82, 73, 78, 75, 128, 68, 82, 73, 204, - 68, 82, 69, 83, 83, 128, 68, 82, 69, 65, 77, 217, 68, 82, 65, 85, 71, 72, - 84, 211, 68, 82, 65, 77, 128, 68, 82, 65, 205, 68, 82, 65, 71, 79, 78, - 128, 68, 82, 65, 71, 79, 206, 68, 82, 65, 70, 84, 73, 78, 199, 68, 82, - 65, 67, 72, 77, 65, 83, 128, 68, 82, 65, 67, 72, 77, 65, 128, 68, 82, 65, - 67, 72, 77, 193, 68, 79, 87, 78, 87, 65, 82, 68, 83, 128, 68, 79, 87, 78, - 87, 65, 82, 68, 211, 68, 79, 87, 78, 87, 65, 82, 196, 68, 79, 87, 78, 83, - 67, 65, 76, 73, 78, 199, 68, 79, 87, 78, 45, 80, 79, 73, 78, 84, 73, 78, - 199, 68, 79, 87, 78, 128, 68, 79, 86, 69, 128, 68, 79, 86, 197, 68, 79, - 85, 71, 72, 78, 85, 84, 128, 68, 79, 85, 66, 84, 128, 68, 79, 85, 66, 76, - 69, 196, 68, 79, 85, 66, 76, 69, 45, 83, 84, 82, 85, 67, 203, 68, 79, 85, - 66, 76, 69, 45, 76, 73, 78, 69, 196, 68, 79, 85, 66, 76, 69, 45, 76, 73, - 78, 197, 68, 79, 85, 66, 76, 69, 45, 69, 78, 68, 69, 196, 68, 79, 85, 66, - 76, 69, 128, 68, 79, 84, 84, 69, 68, 45, 80, 128, 68, 79, 84, 84, 69, 68, - 45, 78, 128, 68, 79, 84, 84, 69, 68, 45, 76, 128, 68, 79, 84, 84, 69, 68, - 128, 68, 79, 84, 84, 69, 196, 68, 79, 84, 83, 45, 56, 128, 68, 79, 84, - 83, 45, 55, 56, 128, 68, 79, 84, 83, 45, 55, 128, 68, 79, 84, 83, 45, 54, - 56, 128, 68, 79, 84, 83, 45, 54, 55, 56, 128, 68, 79, 84, 83, 45, 54, 55, - 128, 68, 79, 84, 83, 45, 54, 128, 68, 79, 84, 83, 45, 53, 56, 128, 68, - 79, 84, 83, 45, 53, 55, 56, 128, 68, 79, 84, 83, 45, 53, 55, 128, 68, 79, - 84, 83, 45, 53, 54, 56, 128, 68, 79, 84, 83, 45, 53, 54, 55, 56, 128, 68, - 79, 84, 83, 45, 53, 54, 55, 128, 68, 79, 84, 83, 45, 53, 54, 128, 68, 79, - 84, 83, 45, 53, 128, 68, 79, 84, 83, 45, 52, 56, 128, 68, 79, 84, 83, 45, - 52, 55, 56, 128, 68, 79, 84, 83, 45, 52, 55, 128, 68, 79, 84, 83, 45, 52, - 54, 56, 128, 68, 79, 84, 83, 45, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, - 52, 54, 55, 128, 68, 79, 84, 83, 45, 52, 54, 128, 68, 79, 84, 83, 45, 52, - 53, 56, 128, 68, 79, 84, 83, 45, 52, 53, 55, 56, 128, 68, 79, 84, 83, 45, - 52, 53, 55, 128, 68, 79, 84, 83, 45, 52, 53, 54, 56, 128, 68, 79, 84, 83, - 45, 52, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 52, 53, 54, 55, 128, 68, - 79, 84, 83, 45, 52, 53, 54, 128, 68, 79, 84, 83, 45, 52, 53, 128, 68, 79, - 84, 83, 45, 52, 128, 68, 79, 84, 83, 45, 51, 56, 128, 68, 79, 84, 83, 45, - 51, 55, 56, 128, 68, 79, 84, 83, 45, 51, 55, 128, 68, 79, 84, 83, 45, 51, - 54, 56, 128, 68, 79, 84, 83, 45, 51, 54, 55, 56, 128, 68, 79, 84, 83, 45, - 51, 54, 55, 128, 68, 79, 84, 83, 45, 51, 54, 128, 68, 79, 84, 83, 45, 51, - 53, 56, 128, 68, 79, 84, 83, 45, 51, 53, 55, 56, 128, 68, 79, 84, 83, 45, - 51, 53, 55, 128, 68, 79, 84, 83, 45, 51, 53, 54, 56, 128, 68, 79, 84, 83, - 45, 51, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 51, 53, 54, 55, 128, 68, - 79, 84, 83, 45, 51, 53, 54, 128, 68, 79, 84, 83, 45, 51, 53, 128, 68, 79, - 84, 83, 45, 51, 52, 56, 128, 68, 79, 84, 83, 45, 51, 52, 55, 56, 128, 68, - 79, 84, 83, 45, 51, 52, 55, 128, 68, 79, 84, 83, 45, 51, 52, 54, 56, 128, - 68, 79, 84, 83, 45, 51, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 51, 52, - 54, 55, 128, 68, 79, 84, 83, 45, 51, 52, 54, 128, 68, 79, 84, 83, 45, 51, - 52, 53, 56, 128, 68, 79, 84, 83, 45, 51, 52, 53, 55, 56, 128, 68, 79, 84, - 83, 45, 51, 52, 53, 55, 128, 68, 79, 84, 83, 45, 51, 52, 53, 54, 56, 128, - 68, 79, 84, 83, 45, 51, 52, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 51, - 52, 53, 54, 55, 128, 68, 79, 84, 83, 45, 51, 52, 53, 54, 128, 68, 79, 84, - 83, 45, 51, 52, 53, 128, 68, 79, 84, 83, 45, 51, 52, 128, 68, 79, 84, 83, - 45, 51, 128, 68, 79, 84, 83, 45, 50, 56, 128, 68, 79, 84, 83, 45, 50, 55, - 56, 128, 68, 79, 84, 83, 45, 50, 55, 128, 68, 79, 84, 83, 45, 50, 54, 56, + 204, 69, 68, 73, 78, 128, 69, 68, 68, 128, 69, 67, 83, 128, 69, 67, 76, + 73, 80, 83, 69, 128, 69, 66, 69, 70, 73, 76, 73, 128, 69, 65, 83, 84, 69, + 82, 206, 69, 65, 83, 84, 128, 69, 65, 83, 212, 69, 65, 82, 84, 72, 76, + 217, 69, 65, 82, 84, 72, 128, 69, 65, 82, 84, 200, 69, 65, 82, 76, 217, + 69, 65, 77, 72, 65, 78, 67, 72, 79, 76, 76, 128, 69, 65, 71, 76, 69, 128, + 69, 65, 68, 72, 65, 68, 72, 128, 69, 65, 66, 72, 65, 68, 72, 128, 69, + 178, 69, 48, 51, 56, 128, 69, 48, 51, 55, 128, 69, 48, 51, 54, 128, 69, + 48, 51, 52, 65, 128, 69, 48, 51, 52, 128, 69, 48, 51, 51, 128, 69, 48, + 51, 50, 128, 69, 48, 51, 49, 128, 69, 48, 51, 48, 128, 69, 48, 50, 57, + 128, 69, 48, 50, 56, 65, 128, 69, 48, 50, 56, 128, 69, 48, 50, 55, 128, + 69, 48, 50, 54, 128, 69, 48, 50, 53, 128, 69, 48, 50, 52, 128, 69, 48, + 50, 51, 128, 69, 48, 50, 50, 128, 69, 48, 50, 49, 128, 69, 48, 50, 48, + 65, 128, 69, 48, 50, 48, 128, 69, 48, 49, 57, 128, 69, 48, 49, 56, 128, + 69, 48, 49, 55, 65, 128, 69, 48, 49, 55, 128, 69, 48, 49, 54, 65, 128, + 69, 48, 49, 54, 128, 69, 48, 49, 53, 128, 69, 48, 49, 52, 128, 69, 48, + 49, 51, 128, 69, 48, 49, 50, 128, 69, 48, 49, 49, 128, 69, 48, 49, 48, + 128, 69, 48, 48, 57, 65, 128, 69, 48, 48, 57, 128, 69, 48, 48, 56, 65, + 128, 69, 48, 48, 56, 128, 69, 48, 48, 55, 128, 69, 48, 48, 54, 128, 69, + 48, 48, 53, 128, 69, 48, 48, 52, 128, 69, 48, 48, 51, 128, 69, 48, 48, + 50, 128, 69, 48, 48, 49, 128, 69, 45, 77, 65, 73, 204, 68, 90, 90, 72, + 69, 128, 68, 90, 90, 69, 128, 68, 90, 90, 65, 128, 68, 90, 89, 73, 128, + 68, 90, 89, 65, 89, 128, 68, 90, 87, 69, 128, 68, 90, 85, 128, 68, 90, + 79, 128, 68, 90, 74, 69, 128, 68, 90, 73, 84, 65, 128, 68, 90, 73, 128, + 68, 90, 72, 79, 73, 128, 68, 90, 72, 69, 128, 68, 90, 72, 65, 128, 68, + 90, 69, 76, 79, 128, 68, 90, 69, 69, 128, 68, 90, 69, 128, 68, 90, 65, + 89, 128, 68, 90, 65, 65, 128, 68, 90, 65, 128, 68, 90, 128, 68, 218, 68, + 89, 79, 128, 68, 89, 207, 68, 89, 78, 65, 77, 73, 195, 68, 89, 69, 72, + 128, 68, 89, 69, 200, 68, 89, 65, 78, 128, 68, 87, 79, 128, 68, 87, 69, + 128, 68, 87, 65, 128, 68, 86, 85, 77, 89, 193, 68, 86, 79, 69, 84, 79, + 67, 72, 73, 69, 128, 68, 86, 79, 69, 67, 72, 69, 76, 78, 79, 80, 79, 86, + 79, 68, 78, 65, 89, 65, 128, 68, 86, 79, 69, 67, 72, 69, 76, 78, 79, 80, + 79, 86, 79, 68, 78, 65, 89, 193, 68, 86, 79, 69, 67, 72, 69, 76, 78, 79, + 75, 82, 89, 90, 72, 69, 86, 65, 89, 65, 128, 68, 86, 79, 69, 67, 72, 69, + 76, 78, 65, 89, 65, 128, 68, 86, 79, 69, 67, 72, 69, 76, 78, 65, 89, 193, + 68, 86, 73, 83, 86, 65, 82, 65, 128, 68, 86, 68, 128, 68, 86, 193, 68, + 86, 128, 68, 85, 84, 73, 69, 83, 128, 68, 85, 83, 75, 128, 68, 85, 83, + 72, 69, 78, 78, 65, 128, 68, 85, 82, 65, 84, 73, 79, 78, 128, 68, 85, 82, + 50, 128, 68, 85, 80, 79, 78, 68, 73, 85, 211, 68, 85, 79, 88, 128, 68, + 85, 79, 128, 68, 85, 78, 52, 128, 68, 85, 78, 51, 128, 68, 85, 78, 179, + 68, 85, 77, 80, 76, 73, 78, 71, 128, 68, 85, 77, 128, 68, 85, 204, 68, + 85, 72, 128, 68, 85, 71, 85, 68, 128, 68, 85, 199, 68, 85, 68, 65, 128, + 68, 85, 67, 75, 128, 68, 85, 66, 50, 128, 68, 85, 66, 128, 68, 85, 194, + 68, 82, 89, 128, 68, 82, 217, 68, 82, 85, 77, 83, 84, 73, 67, 75, 83, + 128, 68, 82, 85, 77, 128, 68, 82, 85, 205, 68, 82, 79, 80, 83, 128, 68, + 82, 79, 80, 76, 69, 84, 128, 68, 82, 79, 80, 45, 83, 72, 65, 68, 79, 87, + 69, 196, 68, 82, 79, 208, 68, 82, 79, 79, 76, 73, 78, 199, 68, 82, 79, + 77, 69, 68, 65, 82, 217, 68, 82, 73, 86, 69, 128, 68, 82, 73, 86, 197, + 68, 82, 73, 78, 75, 128, 68, 82, 73, 204, 68, 82, 69, 83, 83, 128, 68, + 82, 69, 65, 77, 217, 68, 82, 65, 85, 71, 72, 84, 211, 68, 82, 65, 77, + 128, 68, 82, 65, 205, 68, 82, 65, 71, 79, 78, 128, 68, 82, 65, 71, 79, + 206, 68, 82, 65, 70, 84, 73, 78, 199, 68, 82, 65, 67, 72, 77, 65, 83, + 128, 68, 82, 65, 67, 72, 77, 65, 128, 68, 82, 65, 67, 72, 77, 193, 68, + 79, 87, 78, 87, 65, 82, 68, 83, 128, 68, 79, 87, 78, 87, 65, 82, 68, 211, + 68, 79, 87, 78, 87, 65, 82, 196, 68, 79, 87, 78, 83, 67, 65, 76, 73, 78, + 199, 68, 79, 87, 78, 45, 80, 79, 73, 78, 84, 73, 78, 199, 68, 79, 87, 78, + 128, 68, 79, 86, 69, 128, 68, 79, 86, 197, 68, 79, 85, 71, 72, 78, 85, + 84, 128, 68, 79, 85, 66, 84, 128, 68, 79, 85, 66, 76, 69, 196, 68, 79, + 85, 66, 76, 69, 45, 83, 84, 82, 85, 67, 203, 68, 79, 85, 66, 76, 69, 45, + 76, 73, 78, 69, 196, 68, 79, 85, 66, 76, 69, 45, 76, 73, 78, 197, 68, 79, + 85, 66, 76, 69, 45, 69, 78, 68, 69, 196, 68, 79, 85, 66, 76, 69, 128, 68, + 79, 84, 84, 69, 68, 45, 80, 128, 68, 79, 84, 84, 69, 68, 45, 78, 128, 68, + 79, 84, 84, 69, 68, 45, 76, 128, 68, 79, 84, 84, 69, 68, 128, 68, 79, 84, + 84, 69, 196, 68, 79, 84, 83, 45, 56, 128, 68, 79, 84, 83, 45, 55, 56, + 128, 68, 79, 84, 83, 45, 55, 128, 68, 79, 84, 83, 45, 54, 56, 128, 68, + 79, 84, 83, 45, 54, 55, 56, 128, 68, 79, 84, 83, 45, 54, 55, 128, 68, 79, + 84, 83, 45, 54, 128, 68, 79, 84, 83, 45, 53, 56, 128, 68, 79, 84, 83, 45, + 53, 55, 56, 128, 68, 79, 84, 83, 45, 53, 55, 128, 68, 79, 84, 83, 45, 53, + 54, 56, 128, 68, 79, 84, 83, 45, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, + 53, 54, 55, 128, 68, 79, 84, 83, 45, 53, 54, 128, 68, 79, 84, 83, 45, 53, + 128, 68, 79, 84, 83, 45, 52, 56, 128, 68, 79, 84, 83, 45, 52, 55, 56, + 128, 68, 79, 84, 83, 45, 52, 55, 128, 68, 79, 84, 83, 45, 52, 54, 56, + 128, 68, 79, 84, 83, 45, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 52, 54, + 55, 128, 68, 79, 84, 83, 45, 52, 54, 128, 68, 79, 84, 83, 45, 52, 53, 56, + 128, 68, 79, 84, 83, 45, 52, 53, 55, 56, 128, 68, 79, 84, 83, 45, 52, 53, + 55, 128, 68, 79, 84, 83, 45, 52, 53, 54, 56, 128, 68, 79, 84, 83, 45, 52, + 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 52, 53, 54, 55, 128, 68, 79, 84, + 83, 45, 52, 53, 54, 128, 68, 79, 84, 83, 45, 52, 53, 128, 68, 79, 84, 83, + 45, 52, 128, 68, 79, 84, 83, 45, 51, 56, 128, 68, 79, 84, 83, 45, 51, 55, + 56, 128, 68, 79, 84, 83, 45, 51, 55, 128, 68, 79, 84, 83, 45, 51, 54, 56, + 128, 68, 79, 84, 83, 45, 51, 54, 55, 56, 128, 68, 79, 84, 83, 45, 51, 54, + 55, 128, 68, 79, 84, 83, 45, 51, 54, 128, 68, 79, 84, 83, 45, 51, 53, 56, + 128, 68, 79, 84, 83, 45, 51, 53, 55, 56, 128, 68, 79, 84, 83, 45, 51, 53, + 55, 128, 68, 79, 84, 83, 45, 51, 53, 54, 56, 128, 68, 79, 84, 83, 45, 51, + 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 51, 53, 54, 55, 128, 68, 79, 84, + 83, 45, 51, 53, 54, 128, 68, 79, 84, 83, 45, 51, 53, 128, 68, 79, 84, 83, + 45, 51, 52, 56, 128, 68, 79, 84, 83, 45, 51, 52, 55, 56, 128, 68, 79, 84, + 83, 45, 51, 52, 55, 128, 68, 79, 84, 83, 45, 51, 52, 54, 56, 128, 68, 79, + 84, 83, 45, 51, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 51, 52, 54, 55, + 128, 68, 79, 84, 83, 45, 51, 52, 54, 128, 68, 79, 84, 83, 45, 51, 52, 53, + 56, 128, 68, 79, 84, 83, 45, 51, 52, 53, 55, 56, 128, 68, 79, 84, 83, 45, + 51, 52, 53, 55, 128, 68, 79, 84, 83, 45, 51, 52, 53, 54, 56, 128, 68, 79, + 84, 83, 45, 51, 52, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 51, 52, 53, + 54, 55, 128, 68, 79, 84, 83, 45, 51, 52, 53, 54, 128, 68, 79, 84, 83, 45, + 51, 52, 53, 128, 68, 79, 84, 83, 45, 51, 52, 128, 68, 79, 84, 83, 45, 51, + 128, 68, 79, 84, 83, 45, 50, 56, 128, 68, 79, 84, 83, 45, 50, 55, 56, + 128, 68, 79, 84, 83, 45, 50, 55, 128, 68, 79, 84, 83, 45, 50, 54, 56, 128, 68, 79, 84, 83, 45, 50, 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 54, 55, 128, 68, 79, 84, 83, 45, 50, 54, 128, 68, 79, 84, 83, 45, 50, 53, 56, 128, 68, 79, 84, 83, 45, 50, 53, 55, 56, 128, 68, 79, 84, 83, 45, 50, 53, @@ -4669,172 +4687,173 @@ static const unsigned char lexicon[] = { 128, 68, 79, 84, 83, 45, 49, 50, 51, 128, 68, 79, 84, 83, 45, 49, 50, 128, 68, 79, 84, 83, 45, 49, 128, 68, 79, 84, 83, 128, 68, 79, 84, 76, 69, 83, 211, 68, 79, 82, 85, 128, 68, 79, 82, 79, 77, 197, 68, 79, 79, - 82, 128, 68, 79, 79, 78, 71, 128, 68, 79, 78, 71, 128, 68, 79, 77, 73, - 78, 207, 68, 79, 77, 65, 73, 206, 68, 79, 76, 80, 72, 73, 78, 128, 68, - 79, 76, 76, 83, 128, 68, 79, 76, 76, 65, 210, 68, 79, 76, 73, 85, 77, - 128, 68, 79, 75, 77, 65, 73, 128, 68, 79, 73, 84, 128, 68, 79, 73, 78, - 199, 68, 79, 73, 128, 68, 79, 71, 82, 193, 68, 79, 71, 128, 68, 79, 199, - 68, 79, 69, 211, 68, 79, 68, 79, 128, 68, 79, 68, 69, 75, 65, 84, 65, - 128, 68, 79, 67, 85, 77, 69, 78, 84, 128, 68, 79, 67, 85, 77, 69, 78, - 212, 68, 79, 66, 82, 79, 128, 68, 79, 65, 67, 72, 65, 83, 72, 77, 69, 69, - 128, 68, 79, 65, 67, 72, 65, 83, 72, 77, 69, 197, 68, 79, 65, 128, 68, - 79, 45, 79, 128, 68, 78, 193, 68, 77, 128, 68, 205, 68, 76, 85, 128, 68, - 76, 79, 128, 68, 76, 73, 128, 68, 76, 72, 89, 65, 128, 68, 76, 72, 65, - 128, 68, 76, 69, 69, 128, 68, 76, 65, 128, 68, 76, 128, 68, 75, 65, 82, - 128, 68, 75, 65, 210, 68, 74, 69, 82, 86, 73, 128, 68, 74, 69, 82, 86, - 128, 68, 74, 69, 128, 68, 74, 65, 128, 68, 73, 90, 90, 217, 68, 73, 89, - 193, 68, 73, 86, 79, 82, 67, 197, 68, 73, 86, 73, 83, 73, 79, 78, 128, - 68, 73, 86, 73, 83, 73, 79, 206, 68, 73, 86, 73, 78, 199, 68, 73, 86, 73, - 78, 65, 84, 73, 79, 78, 128, 68, 73, 86, 73, 68, 69, 83, 128, 68, 73, 86, - 73, 68, 69, 82, 83, 128, 68, 73, 86, 73, 68, 69, 82, 128, 68, 73, 86, 73, - 68, 69, 196, 68, 73, 86, 73, 68, 69, 128, 68, 73, 86, 73, 68, 197, 68, - 73, 86, 69, 211, 68, 73, 86, 69, 82, 71, 69, 78, 67, 69, 128, 68, 73, 84, - 84, 207, 68, 73, 83, 84, 79, 82, 84, 73, 79, 78, 128, 68, 73, 83, 84, 73, - 78, 71, 85, 73, 83, 72, 128, 68, 73, 83, 84, 73, 76, 76, 128, 68, 73, 83, - 83, 79, 76, 86, 69, 45, 50, 128, 68, 73, 83, 83, 79, 76, 86, 69, 128, 68, - 73, 83, 80, 85, 84, 69, 196, 68, 73, 83, 80, 69, 82, 83, 73, 79, 78, 128, - 68, 73, 83, 75, 128, 68, 73, 83, 73, 77, 79, 85, 128, 68, 73, 83, 72, - 128, 68, 73, 83, 71, 85, 73, 83, 69, 196, 68, 73, 83, 67, 79, 78, 84, 73, - 78, 85, 79, 85, 211, 68, 73, 83, 195, 68, 73, 83, 65, 80, 80, 79, 73, 78, - 84, 69, 196, 68, 73, 83, 65, 66, 76, 69, 196, 68, 73, 82, 71, 193, 68, - 73, 82, 69, 67, 84, 76, 217, 68, 73, 82, 69, 67, 84, 73, 79, 78, 65, 204, - 68, 73, 82, 69, 67, 84, 73, 79, 206, 68, 73, 80, 84, 69, 128, 68, 73, 80, - 80, 69, 82, 128, 68, 73, 80, 76, 79, 85, 78, 128, 68, 73, 80, 76, 73, - 128, 68, 73, 80, 76, 201, 68, 73, 78, 71, 66, 65, 212, 68, 73, 206, 68, - 73, 77, 77, 73, 78, 71, 128, 68, 73, 77, 73, 78, 85, 84, 73, 79, 78, 45, - 51, 128, 68, 73, 77, 73, 78, 85, 84, 73, 79, 78, 45, 50, 128, 68, 73, 77, - 73, 78, 85, 84, 73, 79, 78, 45, 49, 128, 68, 73, 77, 73, 78, 73, 83, 72, - 77, 69, 78, 84, 128, 68, 73, 77, 73, 68, 73, 193, 68, 73, 77, 69, 78, 83, - 73, 79, 78, 65, 204, 68, 73, 77, 69, 78, 83, 73, 79, 206, 68, 73, 77, 50, - 128, 68, 73, 77, 178, 68, 73, 76, 128, 68, 73, 71, 82, 65, 80, 72, 128, - 68, 73, 71, 82, 65, 80, 200, 68, 73, 71, 82, 65, 77, 77, 79, 211, 68, 73, - 71, 82, 65, 77, 77, 193, 68, 73, 71, 82, 65, 205, 68, 73, 71, 79, 82, 71, - 79, 78, 128, 68, 73, 71, 79, 82, 71, 79, 206, 68, 73, 71, 73, 84, 83, - 128, 68, 73, 71, 65, 77, 77, 65, 128, 68, 73, 71, 193, 68, 73, 70, 84, - 79, 71, 71, 79, 211, 68, 73, 70, 79, 78, 73, 65, 83, 128, 68, 73, 70, 70, - 73, 67, 85, 76, 84, 217, 68, 73, 70, 70, 73, 67, 85, 76, 84, 73, 69, 83, - 128, 68, 73, 70, 70, 69, 82, 69, 78, 84, 73, 65, 76, 128, 68, 73, 70, 70, - 69, 82, 69, 78, 67, 197, 68, 73, 70, 65, 84, 128, 68, 73, 69, 83, 73, 83, - 128, 68, 73, 69, 83, 73, 211, 68, 73, 69, 83, 69, 204, 68, 73, 69, 80, - 128, 68, 73, 197, 68, 73, 66, 128, 68, 73, 65, 84, 79, 78, 79, 206, 68, - 73, 65, 84, 79, 78, 73, 75, 201, 68, 73, 65, 83, 84, 79, 76, 201, 68, 73, - 65, 77, 79, 78, 68, 83, 128, 68, 73, 65, 77, 79, 78, 68, 128, 68, 73, 65, - 77, 79, 78, 196, 68, 73, 65, 77, 69, 84, 69, 210, 68, 73, 65, 76, 89, 84, - 73, 75, 65, 128, 68, 73, 65, 76, 89, 84, 73, 75, 193, 68, 73, 65, 76, 69, - 67, 84, 45, 208, 68, 73, 65, 71, 79, 78, 65, 76, 128, 68, 73, 65, 69, 82, - 69, 83, 73, 90, 69, 196, 68, 73, 65, 69, 82, 69, 83, 73, 83, 45, 82, 73, - 78, 71, 128, 68, 73, 65, 69, 82, 69, 83, 73, 83, 128, 68, 73, 65, 69, 82, - 69, 83, 73, 211, 68, 72, 79, 85, 128, 68, 72, 79, 79, 128, 68, 72, 79, - 128, 68, 72, 73, 73, 128, 68, 72, 72, 85, 128, 68, 72, 72, 79, 79, 128, - 68, 72, 72, 79, 128, 68, 72, 72, 73, 128, 68, 72, 72, 69, 69, 128, 68, - 72, 72, 69, 128, 68, 72, 72, 65, 128, 68, 72, 69, 69, 128, 68, 72, 65, - 82, 77, 65, 128, 68, 72, 65, 77, 69, 68, 72, 128, 68, 72, 65, 76, 69, 84, - 72, 128, 68, 72, 65, 76, 65, 84, 72, 128, 68, 72, 65, 76, 128, 68, 72, - 65, 68, 72, 69, 128, 68, 72, 65, 65, 76, 85, 128, 68, 72, 65, 65, 128, - 68, 72, 65, 128, 68, 69, 90, 200, 68, 69, 89, 84, 69, 82, 79, 213, 68, - 69, 89, 84, 69, 82, 79, 211, 68, 69, 88, 73, 65, 128, 68, 69, 86, 73, 67, - 197, 68, 69, 86, 69, 76, 79, 80, 77, 69, 78, 84, 128, 68, 69, 85, 78, 71, - 128, 68, 69, 83, 75, 84, 79, 208, 68, 69, 83, 203, 68, 69, 83, 73, 71, - 78, 128, 68, 69, 83, 73, 128, 68, 69, 83, 69, 82, 84, 128, 68, 69, 83, - 69, 82, 212, 68, 69, 83, 69, 82, 69, 212, 68, 69, 83, 67, 82, 73, 80, 84, - 73, 79, 206, 68, 69, 83, 67, 69, 78, 68, 73, 78, 199, 68, 69, 83, 67, 69, - 78, 68, 69, 82, 128, 68, 69, 82, 69, 84, 45, 72, 73, 68, 69, 84, 128, 68, - 69, 82, 69, 84, 128, 68, 69, 82, 69, 76, 73, 67, 212, 68, 69, 82, 66, 73, - 84, 83, 65, 128, 68, 69, 80, 84, 72, 128, 68, 69, 80, 65, 82, 84, 85, 82, - 69, 128, 68, 69, 80, 65, 82, 84, 77, 69, 78, 212, 68, 69, 80, 65, 82, 84, - 73, 78, 199, 68, 69, 78, 84, 73, 83, 84, 82, 217, 68, 69, 78, 84, 65, - 204, 68, 69, 78, 79, 77, 73, 78, 65, 84, 79, 82, 128, 68, 69, 78, 79, 77, - 73, 78, 65, 84, 79, 210, 68, 69, 78, 78, 69, 78, 128, 68, 69, 78, 71, - 128, 68, 69, 78, 197, 68, 69, 78, 65, 82, 73, 85, 211, 68, 69, 77, 69, - 83, 84, 86, 69, 78, 78, 217, 68, 69, 76, 84, 65, 128, 68, 69, 76, 84, - 193, 68, 69, 76, 84, 128, 68, 69, 76, 80, 72, 73, 195, 68, 69, 76, 73, - 86, 69, 82, 217, 68, 69, 76, 73, 86, 69, 82, 65, 78, 67, 69, 128, 68, 69, - 76, 73, 77, 73, 84, 69, 82, 128, 68, 69, 76, 73, 77, 73, 84, 69, 210, 68, - 69, 76, 73, 67, 73, 79, 85, 211, 68, 69, 76, 69, 84, 73, 79, 206, 68, 69, - 76, 69, 84, 69, 128, 68, 69, 76, 69, 84, 197, 68, 69, 75, 65, 128, 68, - 69, 75, 128, 68, 69, 73, 128, 68, 69, 72, 73, 128, 68, 69, 71, 82, 69, - 69, 83, 128, 68, 69, 71, 82, 69, 197, 68, 69, 70, 73, 78, 73, 84, 73, 79, - 78, 128, 68, 69, 70, 69, 67, 84, 73, 86, 69, 78, 69, 83, 211, 68, 69, 69, - 82, 128, 68, 69, 69, 80, 76, 89, 128, 68, 69, 69, 76, 128, 68, 69, 67, - 82, 69, 83, 67, 69, 78, 68, 79, 128, 68, 69, 67, 82, 69, 65, 83, 69, 128, - 68, 69, 67, 82, 69, 65, 83, 197, 68, 69, 67, 79, 82, 65, 84, 73, 86, 197, - 68, 69, 67, 79, 82, 65, 84, 73, 79, 78, 128, 68, 69, 67, 73, 83, 73, 86, - 69, 78, 69, 83, 83, 128, 68, 69, 67, 73, 77, 65, 204, 68, 69, 67, 73, 68, - 85, 79, 85, 211, 68, 69, 67, 69, 77, 66, 69, 82, 128, 68, 69, 67, 65, 89, - 69, 68, 128, 68, 69, 66, 73, 212, 68, 69, 65, 84, 72, 128, 68, 69, 65, - 198, 68, 69, 65, 68, 128, 68, 68, 87, 65, 128, 68, 68, 85, 88, 128, 68, - 68, 85, 84, 128, 68, 68, 85, 82, 88, 128, 68, 68, 85, 82, 128, 68, 68, - 85, 80, 128, 68, 68, 85, 79, 88, 128, 68, 68, 85, 79, 80, 128, 68, 68, - 85, 79, 128, 68, 68, 85, 128, 68, 68, 79, 88, 128, 68, 68, 79, 84, 128, - 68, 68, 79, 80, 128, 68, 68, 79, 65, 128, 68, 68, 73, 88, 128, 68, 68, - 73, 84, 128, 68, 68, 73, 80, 128, 68, 68, 73, 69, 88, 128, 68, 68, 73, - 69, 80, 128, 68, 68, 73, 69, 128, 68, 68, 73, 128, 68, 68, 72, 85, 128, - 68, 68, 72, 79, 128, 68, 68, 72, 69, 69, 128, 68, 68, 72, 69, 128, 68, - 68, 72, 65, 65, 128, 68, 68, 72, 65, 128, 68, 68, 69, 88, 128, 68, 68, - 69, 80, 128, 68, 68, 69, 69, 128, 68, 68, 69, 128, 68, 68, 68, 72, 65, - 128, 68, 68, 68, 65, 128, 68, 68, 65, 89, 65, 78, 78, 65, 128, 68, 68, - 65, 88, 128, 68, 68, 65, 84, 128, 68, 68, 65, 80, 128, 68, 68, 65, 76, - 128, 68, 68, 65, 204, 68, 68, 65, 72, 65, 76, 128, 68, 68, 65, 72, 65, - 204, 68, 68, 65, 65, 128, 68, 67, 83, 128, 68, 67, 72, 69, 128, 68, 67, - 52, 128, 68, 67, 51, 128, 68, 67, 50, 128, 68, 67, 49, 128, 68, 194, 68, - 65, 89, 45, 78, 73, 71, 72, 84, 128, 68, 65, 217, 68, 65, 87, 66, 128, - 68, 65, 86, 73, 89, 65, 78, 73, 128, 68, 65, 86, 73, 68, 128, 68, 65, 84, - 197, 68, 65, 83, 73, 65, 128, 68, 65, 83, 73, 193, 68, 65, 83, 72, 69, - 196, 68, 65, 83, 72, 128, 68, 65, 83, 200, 68, 65, 83, 69, 73, 65, 128, - 68, 65, 82, 84, 128, 68, 65, 82, 75, 69, 78, 73, 78, 71, 128, 68, 65, 82, - 75, 69, 78, 73, 78, 199, 68, 65, 82, 203, 68, 65, 82, 71, 65, 128, 68, - 65, 82, 65, 52, 128, 68, 65, 82, 65, 51, 128, 68, 65, 82, 128, 68, 65, - 80, 45, 80, 82, 65, 205, 68, 65, 80, 45, 80, 73, 201, 68, 65, 80, 45, 77, - 85, 79, 217, 68, 65, 80, 45, 66, 85, 79, 206, 68, 65, 80, 45, 66, 69, - 201, 68, 65, 208, 68, 65, 78, 84, 65, 89, 65, 76, 65, 78, 128, 68, 65, - 78, 84, 65, 74, 193, 68, 65, 78, 71, 79, 128, 68, 65, 78, 71, 128, 68, - 65, 78, 199, 68, 65, 78, 68, 65, 128, 68, 65, 78, 67, 73, 78, 71, 128, - 68, 65, 78, 67, 69, 82, 128, 68, 65, 77, 80, 128, 68, 65, 77, 208, 68, - 65, 77, 77, 65, 84, 65, 78, 128, 68, 65, 77, 77, 65, 84, 65, 206, 68, 65, - 77, 77, 65, 128, 68, 65, 77, 77, 193, 68, 65, 77, 65, 82, 85, 128, 68, - 65, 76, 69, 84, 72, 45, 82, 69, 83, 72, 128, 68, 65, 76, 69, 84, 128, 68, - 65, 76, 69, 212, 68, 65, 76, 68, 65, 128, 68, 65, 76, 65, 84, 72, 128, - 68, 65, 76, 65, 84, 200, 68, 65, 76, 65, 84, 128, 68, 65, 73, 82, 128, - 68, 65, 73, 78, 71, 128, 68, 65, 73, 128, 68, 65, 72, 89, 65, 65, 85, 83, - 72, 45, 50, 128, 68, 65, 72, 89, 65, 65, 85, 83, 72, 128, 68, 65, 71, 83, - 128, 68, 65, 71, 71, 69, 82, 128, 68, 65, 71, 71, 69, 210, 68, 65, 71, - 69, 83, 72, 128, 68, 65, 71, 69, 83, 200, 68, 65, 71, 66, 65, 83, 73, 78, - 78, 65, 128, 68, 65, 71, 65, 218, 68, 65, 71, 65, 76, 71, 65, 128, 68, - 65, 71, 51, 128, 68, 65, 199, 68, 65, 69, 78, 71, 128, 68, 65, 69, 199, - 68, 65, 68, 128, 68, 65, 196, 68, 65, 65, 83, 85, 128, 68, 65, 65, 76, - 73, 128, 68, 65, 65, 68, 72, 85, 128, 68, 48, 54, 55, 72, 128, 68, 48, - 54, 55, 71, 128, 68, 48, 54, 55, 70, 128, 68, 48, 54, 55, 69, 128, 68, - 48, 54, 55, 68, 128, 68, 48, 54, 55, 67, 128, 68, 48, 54, 55, 66, 128, - 68, 48, 54, 55, 65, 128, 68, 48, 54, 55, 128, 68, 48, 54, 54, 128, 68, - 48, 54, 53, 128, 68, 48, 54, 52, 128, 68, 48, 54, 51, 128, 68, 48, 54, - 50, 128, 68, 48, 54, 49, 128, 68, 48, 54, 48, 128, 68, 48, 53, 57, 128, - 68, 48, 53, 56, 128, 68, 48, 53, 55, 128, 68, 48, 53, 54, 128, 68, 48, - 53, 53, 128, 68, 48, 53, 52, 65, 128, 68, 48, 53, 52, 128, 68, 48, 53, - 51, 128, 68, 48, 53, 50, 65, 128, 68, 48, 53, 50, 128, 68, 48, 53, 49, - 128, 68, 48, 53, 48, 73, 128, 68, 48, 53, 48, 72, 128, 68, 48, 53, 48, - 71, 128, 68, 48, 53, 48, 70, 128, 68, 48, 53, 48, 69, 128, 68, 48, 53, - 48, 68, 128, 68, 48, 53, 48, 67, 128, 68, 48, 53, 48, 66, 128, 68, 48, - 53, 48, 65, 128, 68, 48, 53, 48, 128, 68, 48, 52, 57, 128, 68, 48, 52, - 56, 65, 128, 68, 48, 52, 56, 128, 68, 48, 52, 55, 128, 68, 48, 52, 54, - 65, 128, 68, 48, 52, 54, 128, 68, 48, 52, 53, 128, 68, 48, 52, 52, 128, - 68, 48, 52, 51, 128, 68, 48, 52, 50, 128, 68, 48, 52, 49, 128, 68, 48, - 52, 48, 128, 68, 48, 51, 57, 128, 68, 48, 51, 56, 128, 68, 48, 51, 55, - 128, 68, 48, 51, 54, 128, 68, 48, 51, 53, 128, 68, 48, 51, 52, 65, 128, - 68, 48, 51, 52, 128, 68, 48, 51, 51, 128, 68, 48, 51, 50, 128, 68, 48, - 51, 49, 65, 128, 68, 48, 51, 49, 128, 68, 48, 51, 48, 128, 68, 48, 50, - 57, 128, 68, 48, 50, 56, 128, 68, 48, 50, 55, 65, 128, 68, 48, 50, 55, - 128, 68, 48, 50, 54, 128, 68, 48, 50, 53, 128, 68, 48, 50, 52, 128, 68, - 48, 50, 51, 128, 68, 48, 50, 50, 128, 68, 48, 50, 49, 128, 68, 48, 50, - 48, 128, 68, 48, 49, 57, 128, 68, 48, 49, 56, 128, 68, 48, 49, 55, 128, - 68, 48, 49, 54, 128, 68, 48, 49, 53, 128, 68, 48, 49, 52, 128, 68, 48, - 49, 51, 128, 68, 48, 49, 50, 128, 68, 48, 49, 49, 128, 68, 48, 49, 48, - 128, 68, 48, 48, 57, 128, 68, 48, 48, 56, 65, 128, 68, 48, 48, 56, 128, - 68, 48, 48, 55, 128, 68, 48, 48, 54, 128, 68, 48, 48, 53, 128, 68, 48, - 48, 52, 128, 68, 48, 48, 51, 128, 68, 48, 48, 50, 128, 68, 48, 48, 49, - 128, 67, 89, 88, 128, 67, 89, 84, 128, 67, 89, 82, 88, 128, 67, 89, 82, - 69, 78, 65, 73, 195, 67, 89, 82, 128, 67, 89, 80, 82, 79, 45, 77, 73, 78, - 79, 65, 206, 67, 89, 80, 82, 73, 79, 212, 67, 89, 80, 69, 82, 85, 83, - 128, 67, 89, 80, 128, 67, 89, 76, 73, 78, 68, 82, 73, 67, 73, 84, 89, + 82, 128, 68, 79, 79, 78, 71, 128, 68, 79, 78, 75, 69, 89, 128, 68, 79, + 78, 71, 128, 68, 79, 77, 73, 78, 207, 68, 79, 77, 65, 73, 206, 68, 79, + 76, 80, 72, 73, 78, 128, 68, 79, 76, 76, 83, 128, 68, 79, 76, 76, 65, + 210, 68, 79, 76, 73, 85, 77, 128, 68, 79, 75, 77, 65, 73, 128, 68, 79, + 73, 84, 128, 68, 79, 73, 78, 199, 68, 79, 73, 128, 68, 79, 71, 82, 193, + 68, 79, 71, 128, 68, 79, 199, 68, 79, 69, 211, 68, 79, 68, 79, 128, 68, + 79, 68, 69, 75, 65, 84, 65, 128, 68, 79, 67, 85, 77, 69, 78, 84, 128, 68, + 79, 67, 85, 77, 69, 78, 212, 68, 79, 66, 82, 79, 128, 68, 79, 65, 67, 72, + 65, 83, 72, 77, 69, 69, 128, 68, 79, 65, 67, 72, 65, 83, 72, 77, 69, 197, + 68, 79, 65, 128, 68, 79, 45, 79, 128, 68, 78, 193, 68, 77, 128, 68, 205, + 68, 76, 85, 128, 68, 76, 79, 128, 68, 76, 73, 128, 68, 76, 72, 89, 65, + 128, 68, 76, 72, 65, 128, 68, 76, 69, 69, 128, 68, 76, 65, 128, 68, 76, + 128, 68, 75, 65, 82, 128, 68, 75, 65, 210, 68, 74, 69, 82, 86, 73, 128, + 68, 74, 69, 82, 86, 128, 68, 74, 69, 128, 68, 74, 65, 128, 68, 73, 90, + 90, 217, 68, 73, 89, 193, 68, 73, 86, 79, 82, 67, 197, 68, 73, 86, 73, + 83, 73, 79, 78, 128, 68, 73, 86, 73, 83, 73, 79, 206, 68, 73, 86, 73, 78, + 199, 68, 73, 86, 73, 78, 65, 84, 73, 79, 78, 128, 68, 73, 86, 73, 68, 69, + 83, 128, 68, 73, 86, 73, 68, 69, 82, 83, 128, 68, 73, 86, 73, 68, 69, 82, + 128, 68, 73, 86, 73, 68, 69, 196, 68, 73, 86, 73, 68, 69, 128, 68, 73, + 86, 73, 68, 197, 68, 73, 86, 69, 211, 68, 73, 86, 69, 82, 71, 69, 78, 67, + 69, 128, 68, 73, 84, 84, 207, 68, 73, 83, 84, 79, 82, 84, 73, 79, 78, + 128, 68, 73, 83, 84, 73, 78, 71, 85, 73, 83, 72, 128, 68, 73, 83, 84, 73, + 76, 76, 128, 68, 73, 83, 83, 79, 76, 86, 69, 45, 50, 128, 68, 73, 83, 83, + 79, 76, 86, 69, 128, 68, 73, 83, 80, 85, 84, 69, 196, 68, 73, 83, 80, 69, + 82, 83, 73, 79, 78, 128, 68, 73, 83, 75, 128, 68, 73, 83, 73, 77, 79, 85, + 128, 68, 73, 83, 72, 128, 68, 73, 83, 71, 85, 73, 83, 69, 196, 68, 73, + 83, 67, 79, 78, 84, 73, 78, 85, 79, 85, 211, 68, 73, 83, 195, 68, 73, 83, + 65, 80, 80, 79, 73, 78, 84, 69, 196, 68, 73, 83, 65, 66, 76, 69, 196, 68, + 73, 82, 71, 193, 68, 73, 82, 69, 67, 84, 76, 217, 68, 73, 82, 69, 67, 84, + 73, 79, 78, 65, 204, 68, 73, 82, 69, 67, 84, 73, 79, 206, 68, 73, 80, 84, + 69, 128, 68, 73, 80, 80, 69, 82, 128, 68, 73, 80, 76, 79, 85, 78, 128, + 68, 73, 80, 76, 73, 128, 68, 73, 80, 76, 201, 68, 73, 78, 71, 66, 65, + 212, 68, 73, 206, 68, 73, 77, 77, 73, 78, 71, 128, 68, 73, 77, 73, 78, + 85, 84, 73, 79, 78, 45, 51, 128, 68, 73, 77, 73, 78, 85, 84, 73, 79, 78, + 45, 50, 128, 68, 73, 77, 73, 78, 85, 84, 73, 79, 78, 45, 49, 128, 68, 73, + 77, 73, 78, 73, 83, 72, 77, 69, 78, 84, 128, 68, 73, 77, 73, 68, 73, 193, + 68, 73, 77, 69, 78, 83, 73, 79, 78, 65, 204, 68, 73, 77, 69, 78, 83, 73, + 79, 206, 68, 73, 77, 50, 128, 68, 73, 77, 178, 68, 73, 76, 128, 68, 73, + 71, 82, 65, 80, 72, 128, 68, 73, 71, 82, 65, 80, 200, 68, 73, 71, 82, 65, + 77, 77, 79, 211, 68, 73, 71, 82, 65, 77, 77, 193, 68, 73, 71, 82, 65, + 205, 68, 73, 71, 79, 82, 71, 79, 78, 128, 68, 73, 71, 79, 82, 71, 79, + 206, 68, 73, 71, 73, 84, 83, 128, 68, 73, 71, 65, 77, 77, 65, 128, 68, + 73, 71, 193, 68, 73, 70, 84, 79, 71, 71, 79, 211, 68, 73, 70, 79, 78, 73, + 65, 83, 128, 68, 73, 70, 70, 73, 67, 85, 76, 84, 217, 68, 73, 70, 70, 73, + 67, 85, 76, 84, 73, 69, 83, 128, 68, 73, 70, 70, 69, 82, 69, 78, 84, 73, + 65, 76, 128, 68, 73, 70, 70, 69, 82, 69, 78, 67, 197, 68, 73, 70, 65, 84, + 128, 68, 73, 69, 83, 73, 83, 128, 68, 73, 69, 83, 73, 211, 68, 73, 69, + 83, 69, 204, 68, 73, 69, 80, 128, 68, 73, 197, 68, 73, 66, 128, 68, 73, + 65, 84, 79, 78, 79, 206, 68, 73, 65, 84, 79, 78, 73, 75, 201, 68, 73, 65, + 83, 84, 79, 76, 201, 68, 73, 65, 77, 79, 78, 68, 83, 128, 68, 73, 65, 77, + 79, 78, 68, 128, 68, 73, 65, 77, 79, 78, 196, 68, 73, 65, 77, 69, 84, 69, + 210, 68, 73, 65, 76, 89, 84, 73, 75, 65, 128, 68, 73, 65, 76, 89, 84, 73, + 75, 193, 68, 73, 65, 76, 69, 67, 84, 45, 208, 68, 73, 65, 71, 79, 78, 65, + 76, 128, 68, 73, 65, 69, 82, 69, 83, 73, 90, 69, 196, 68, 73, 65, 69, 82, + 69, 83, 73, 83, 45, 82, 73, 78, 71, 128, 68, 73, 65, 69, 82, 69, 83, 73, + 83, 128, 68, 73, 65, 69, 82, 69, 83, 73, 211, 68, 72, 79, 85, 128, 68, + 72, 79, 79, 128, 68, 72, 79, 128, 68, 72, 73, 73, 128, 68, 72, 72, 85, + 128, 68, 72, 72, 79, 79, 128, 68, 72, 72, 79, 128, 68, 72, 72, 73, 128, + 68, 72, 72, 69, 69, 128, 68, 72, 72, 69, 128, 68, 72, 72, 65, 128, 68, + 72, 69, 69, 128, 68, 72, 65, 82, 77, 65, 128, 68, 72, 65, 77, 69, 68, 72, + 128, 68, 72, 65, 76, 69, 84, 72, 128, 68, 72, 65, 76, 65, 84, 72, 128, + 68, 72, 65, 76, 128, 68, 72, 65, 68, 72, 69, 128, 68, 72, 65, 65, 76, 85, + 128, 68, 72, 65, 65, 128, 68, 72, 65, 128, 68, 69, 90, 200, 68, 69, 89, + 84, 69, 82, 79, 213, 68, 69, 89, 84, 69, 82, 79, 211, 68, 69, 88, 73, 65, + 128, 68, 69, 86, 73, 67, 197, 68, 69, 86, 69, 76, 79, 80, 77, 69, 78, 84, + 128, 68, 69, 85, 78, 71, 128, 68, 69, 83, 75, 84, 79, 208, 68, 69, 83, + 203, 68, 69, 83, 73, 71, 78, 128, 68, 69, 83, 73, 128, 68, 69, 83, 69, + 82, 84, 128, 68, 69, 83, 69, 82, 212, 68, 69, 83, 69, 82, 69, 212, 68, + 69, 83, 67, 82, 73, 80, 84, 73, 79, 206, 68, 69, 83, 67, 69, 78, 68, 73, + 78, 199, 68, 69, 83, 67, 69, 78, 68, 69, 82, 128, 68, 69, 82, 69, 84, 45, + 72, 73, 68, 69, 84, 128, 68, 69, 82, 69, 84, 128, 68, 69, 82, 69, 76, 73, + 67, 212, 68, 69, 82, 66, 73, 84, 83, 65, 128, 68, 69, 80, 84, 72, 128, + 68, 69, 80, 65, 82, 84, 85, 82, 69, 128, 68, 69, 80, 65, 82, 84, 77, 69, + 78, 212, 68, 69, 80, 65, 82, 84, 73, 78, 199, 68, 69, 78, 84, 73, 83, 84, + 82, 217, 68, 69, 78, 84, 65, 204, 68, 69, 78, 79, 77, 73, 78, 65, 84, 79, + 82, 128, 68, 69, 78, 79, 77, 73, 78, 65, 84, 79, 210, 68, 69, 78, 78, 69, + 78, 128, 68, 69, 78, 71, 128, 68, 69, 78, 197, 68, 69, 78, 65, 82, 73, + 85, 211, 68, 69, 77, 69, 83, 84, 86, 69, 78, 78, 217, 68, 69, 76, 84, 65, + 128, 68, 69, 76, 84, 193, 68, 69, 76, 84, 128, 68, 69, 76, 80, 72, 73, + 195, 68, 69, 76, 73, 86, 69, 82, 217, 68, 69, 76, 73, 86, 69, 82, 65, 78, + 67, 69, 128, 68, 69, 76, 73, 77, 73, 84, 69, 82, 128, 68, 69, 76, 73, 77, + 73, 84, 69, 210, 68, 69, 76, 73, 67, 73, 79, 85, 211, 68, 69, 76, 69, 84, + 73, 79, 206, 68, 69, 76, 69, 84, 69, 128, 68, 69, 76, 69, 84, 197, 68, + 69, 75, 65, 128, 68, 69, 75, 128, 68, 69, 73, 128, 68, 69, 72, 73, 128, + 68, 69, 71, 82, 69, 69, 83, 128, 68, 69, 71, 82, 69, 197, 68, 69, 70, 73, + 78, 73, 84, 73, 79, 78, 128, 68, 69, 70, 69, 67, 84, 73, 86, 69, 78, 69, + 83, 211, 68, 69, 69, 82, 128, 68, 69, 69, 80, 76, 89, 128, 68, 69, 69, + 76, 128, 68, 69, 67, 82, 69, 83, 67, 69, 78, 68, 79, 128, 68, 69, 67, 82, + 69, 65, 83, 69, 128, 68, 69, 67, 82, 69, 65, 83, 197, 68, 69, 67, 79, 82, + 65, 84, 73, 86, 197, 68, 69, 67, 79, 82, 65, 84, 73, 79, 78, 128, 68, 69, + 67, 73, 83, 73, 86, 69, 78, 69, 83, 83, 128, 68, 69, 67, 73, 77, 65, 204, + 68, 69, 67, 73, 68, 85, 79, 85, 211, 68, 69, 67, 69, 77, 66, 69, 82, 128, + 68, 69, 67, 65, 89, 69, 68, 128, 68, 69, 66, 73, 212, 68, 69, 65, 84, 72, + 128, 68, 69, 65, 198, 68, 69, 65, 68, 128, 68, 68, 87, 65, 128, 68, 68, + 85, 88, 128, 68, 68, 85, 84, 128, 68, 68, 85, 82, 88, 128, 68, 68, 85, + 82, 128, 68, 68, 85, 80, 128, 68, 68, 85, 79, 88, 128, 68, 68, 85, 79, + 80, 128, 68, 68, 85, 79, 128, 68, 68, 85, 128, 68, 68, 79, 88, 128, 68, + 68, 79, 84, 128, 68, 68, 79, 80, 128, 68, 68, 79, 65, 128, 68, 68, 73, + 88, 128, 68, 68, 73, 84, 128, 68, 68, 73, 80, 128, 68, 68, 73, 69, 88, + 128, 68, 68, 73, 69, 80, 128, 68, 68, 73, 69, 128, 68, 68, 73, 128, 68, + 68, 72, 85, 128, 68, 68, 72, 79, 128, 68, 68, 72, 69, 69, 128, 68, 68, + 72, 69, 128, 68, 68, 72, 65, 65, 128, 68, 68, 72, 65, 128, 68, 68, 69, + 88, 128, 68, 68, 69, 80, 128, 68, 68, 69, 69, 128, 68, 68, 69, 128, 68, + 68, 68, 72, 65, 128, 68, 68, 68, 65, 128, 68, 68, 65, 89, 65, 78, 78, 65, + 128, 68, 68, 65, 88, 128, 68, 68, 65, 84, 128, 68, 68, 65, 80, 128, 68, + 68, 65, 76, 128, 68, 68, 65, 204, 68, 68, 65, 72, 65, 76, 128, 68, 68, + 65, 72, 65, 204, 68, 68, 65, 65, 128, 68, 67, 83, 128, 68, 67, 72, 69, + 128, 68, 67, 52, 128, 68, 67, 51, 128, 68, 67, 50, 128, 68, 67, 49, 128, + 68, 194, 68, 65, 89, 45, 78, 73, 71, 72, 84, 128, 68, 65, 217, 68, 65, + 87, 66, 128, 68, 65, 86, 73, 89, 65, 78, 73, 128, 68, 65, 86, 73, 68, + 128, 68, 65, 84, 197, 68, 65, 83, 73, 65, 128, 68, 65, 83, 73, 193, 68, + 65, 83, 72, 69, 196, 68, 65, 83, 72, 128, 68, 65, 83, 200, 68, 65, 83, + 69, 73, 65, 128, 68, 65, 82, 84, 128, 68, 65, 82, 75, 69, 78, 73, 78, 71, + 128, 68, 65, 82, 75, 69, 78, 73, 78, 199, 68, 65, 82, 203, 68, 65, 82, + 71, 65, 128, 68, 65, 82, 65, 52, 128, 68, 65, 82, 65, 51, 128, 68, 65, + 82, 128, 68, 65, 80, 45, 80, 82, 65, 205, 68, 65, 80, 45, 80, 73, 201, + 68, 65, 80, 45, 77, 85, 79, 217, 68, 65, 80, 45, 66, 85, 79, 206, 68, 65, + 80, 45, 66, 69, 201, 68, 65, 208, 68, 65, 78, 84, 65, 89, 65, 76, 65, 78, + 128, 68, 65, 78, 84, 65, 74, 193, 68, 65, 78, 71, 79, 128, 68, 65, 78, + 71, 128, 68, 65, 78, 199, 68, 65, 78, 68, 65, 128, 68, 65, 78, 67, 73, + 78, 71, 128, 68, 65, 78, 67, 69, 82, 128, 68, 65, 77, 80, 128, 68, 65, + 77, 208, 68, 65, 77, 77, 65, 84, 65, 78, 128, 68, 65, 77, 77, 65, 84, 65, + 206, 68, 65, 77, 77, 65, 128, 68, 65, 77, 77, 193, 68, 65, 77, 65, 82, + 85, 128, 68, 65, 77, 65, 71, 69, 68, 128, 68, 65, 77, 65, 71, 69, 196, + 68, 65, 76, 69, 84, 72, 45, 82, 69, 83, 72, 128, 68, 65, 76, 69, 84, 128, + 68, 65, 76, 69, 212, 68, 65, 76, 68, 65, 128, 68, 65, 76, 65, 84, 72, + 128, 68, 65, 76, 65, 84, 200, 68, 65, 76, 65, 84, 128, 68, 65, 73, 82, + 128, 68, 65, 73, 78, 71, 128, 68, 65, 73, 128, 68, 65, 72, 89, 65, 65, + 85, 83, 72, 45, 50, 128, 68, 65, 72, 89, 65, 65, 85, 83, 72, 128, 68, 65, + 71, 83, 128, 68, 65, 71, 71, 69, 82, 128, 68, 65, 71, 71, 69, 210, 68, + 65, 71, 69, 83, 72, 128, 68, 65, 71, 69, 83, 200, 68, 65, 71, 66, 65, 83, + 73, 78, 78, 65, 128, 68, 65, 71, 65, 218, 68, 65, 71, 65, 76, 71, 65, + 128, 68, 65, 71, 51, 128, 68, 65, 199, 68, 65, 69, 78, 71, 128, 68, 65, + 69, 199, 68, 65, 68, 128, 68, 65, 196, 68, 65, 65, 83, 85, 128, 68, 65, + 65, 76, 73, 128, 68, 65, 65, 68, 72, 85, 128, 68, 48, 54, 55, 72, 128, + 68, 48, 54, 55, 71, 128, 68, 48, 54, 55, 70, 128, 68, 48, 54, 55, 69, + 128, 68, 48, 54, 55, 68, 128, 68, 48, 54, 55, 67, 128, 68, 48, 54, 55, + 66, 128, 68, 48, 54, 55, 65, 128, 68, 48, 54, 55, 128, 68, 48, 54, 54, + 128, 68, 48, 54, 53, 128, 68, 48, 54, 52, 128, 68, 48, 54, 51, 128, 68, + 48, 54, 50, 128, 68, 48, 54, 49, 128, 68, 48, 54, 48, 128, 68, 48, 53, + 57, 128, 68, 48, 53, 56, 128, 68, 48, 53, 55, 128, 68, 48, 53, 54, 128, + 68, 48, 53, 53, 128, 68, 48, 53, 52, 65, 128, 68, 48, 53, 52, 128, 68, + 48, 53, 51, 128, 68, 48, 53, 50, 65, 128, 68, 48, 53, 50, 128, 68, 48, + 53, 49, 128, 68, 48, 53, 48, 73, 128, 68, 48, 53, 48, 72, 128, 68, 48, + 53, 48, 71, 128, 68, 48, 53, 48, 70, 128, 68, 48, 53, 48, 69, 128, 68, + 48, 53, 48, 68, 128, 68, 48, 53, 48, 67, 128, 68, 48, 53, 48, 66, 128, + 68, 48, 53, 48, 65, 128, 68, 48, 53, 48, 128, 68, 48, 52, 57, 128, 68, + 48, 52, 56, 65, 128, 68, 48, 52, 56, 128, 68, 48, 52, 55, 128, 68, 48, + 52, 54, 65, 128, 68, 48, 52, 54, 128, 68, 48, 52, 53, 128, 68, 48, 52, + 52, 128, 68, 48, 52, 51, 128, 68, 48, 52, 50, 128, 68, 48, 52, 49, 128, + 68, 48, 52, 48, 128, 68, 48, 51, 57, 128, 68, 48, 51, 56, 128, 68, 48, + 51, 55, 128, 68, 48, 51, 54, 128, 68, 48, 51, 53, 128, 68, 48, 51, 52, + 65, 128, 68, 48, 51, 52, 128, 68, 48, 51, 51, 128, 68, 48, 51, 50, 128, + 68, 48, 51, 49, 65, 128, 68, 48, 51, 49, 128, 68, 48, 51, 48, 128, 68, + 48, 50, 57, 128, 68, 48, 50, 56, 128, 68, 48, 50, 55, 65, 128, 68, 48, + 50, 55, 128, 68, 48, 50, 54, 128, 68, 48, 50, 53, 128, 68, 48, 50, 52, + 128, 68, 48, 50, 51, 128, 68, 48, 50, 50, 128, 68, 48, 50, 49, 128, 68, + 48, 50, 48, 128, 68, 48, 49, 57, 128, 68, 48, 49, 56, 128, 68, 48, 49, + 55, 128, 68, 48, 49, 54, 128, 68, 48, 49, 53, 128, 68, 48, 49, 52, 128, + 68, 48, 49, 51, 128, 68, 48, 49, 50, 128, 68, 48, 49, 49, 128, 68, 48, + 49, 48, 128, 68, 48, 48, 57, 128, 68, 48, 48, 56, 65, 128, 68, 48, 48, + 56, 128, 68, 48, 48, 55, 128, 68, 48, 48, 54, 128, 68, 48, 48, 53, 128, + 68, 48, 48, 52, 128, 68, 48, 48, 51, 128, 68, 48, 48, 50, 128, 68, 48, + 48, 49, 128, 67, 89, 88, 128, 67, 89, 84, 128, 67, 89, 82, 88, 128, 67, + 89, 82, 69, 78, 65, 73, 195, 67, 89, 82, 128, 67, 89, 80, 82, 79, 45, 77, + 73, 78, 79, 65, 206, 67, 89, 80, 82, 73, 79, 212, 67, 89, 80, 69, 82, 85, + 83, 128, 67, 89, 80, 128, 67, 89, 76, 73, 78, 68, 82, 73, 67, 73, 84, 89, 128, 67, 89, 67, 76, 79, 78, 69, 128, 67, 89, 65, 89, 128, 67, 89, 65, 87, 128, 67, 89, 65, 128, 67, 87, 79, 79, 128, 67, 87, 79, 128, 67, 87, 73, 73, 128, 67, 87, 73, 128, 67, 87, 69, 79, 82, 84, 72, 128, 67, 87, @@ -4899,1671 +4918,1672 @@ static const unsigned char lexicon[] = { 83, 84, 65, 78, 67, 89, 128, 67, 79, 78, 83, 69, 67, 85, 84, 73, 86, 197, 67, 79, 78, 74, 85, 78, 67, 84, 73, 79, 78, 128, 67, 79, 78, 74, 85, 71, 65, 84, 197, 67, 79, 78, 74, 79, 73, 78, 73, 78, 199, 67, 79, 78, 74, 79, - 73, 78, 69, 68, 128, 67, 79, 78, 74, 79, 73, 78, 69, 196, 67, 79, 78, 73, - 67, 65, 204, 67, 79, 78, 71, 82, 85, 69, 78, 212, 67, 79, 78, 71, 82, 65, - 84, 85, 76, 65, 84, 73, 79, 78, 128, 67, 79, 78, 70, 85, 83, 69, 196, 67, - 79, 78, 70, 79, 85, 78, 68, 69, 196, 67, 79, 78, 70, 76, 73, 67, 84, 128, - 67, 79, 78, 70, 69, 84, 84, 201, 67, 79, 78, 67, 65, 86, 69, 45, 83, 73, - 68, 69, 196, 67, 79, 78, 67, 65, 86, 69, 45, 80, 79, 73, 78, 84, 69, 196, - 67, 79, 77, 80, 85, 84, 69, 82, 83, 128, 67, 79, 77, 80, 85, 84, 69, 82, - 128, 67, 79, 77, 80, 82, 69, 83, 83, 73, 79, 78, 128, 67, 79, 77, 80, 82, - 69, 83, 83, 69, 196, 67, 79, 77, 80, 79, 83, 73, 84, 73, 79, 78, 128, 67, - 79, 77, 80, 79, 83, 73, 84, 73, 79, 206, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 55, 54, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 54, - 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 54, 54, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 55, 54, 53, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 55, 54, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 55, 54, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 54, 50, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 54, 49, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 55, 54, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 55, 53, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 53, - 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 53, 55, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 55, 53, 54, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 55, 53, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 55, 53, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 53, 51, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 53, 50, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 55, 53, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 55, 53, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 52, - 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 52, 56, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 55, 52, 55, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 55, 52, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 55, 52, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 52, 52, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 52, 51, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 55, 52, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 55, 52, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 52, - 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 51, 57, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 55, 51, 56, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 55, 51, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 55, 51, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 51, 53, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 51, 52, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 55, 51, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 55, 51, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 51, - 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 51, 48, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 55, 50, 57, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 55, 50, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 55, 50, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 50, 54, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 50, 53, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 55, 50, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 55, 50, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 50, - 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 50, 49, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 55, 50, 48, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 55, 49, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 55, 49, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 49, 55, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 49, 54, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 55, 49, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 55, 49, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 49, - 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 49, 50, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 55, 49, 49, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 55, 49, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 55, 48, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 48, 56, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 48, 55, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 55, 48, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 55, 48, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 48, - 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 48, 51, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 55, 48, 50, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 55, 48, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 55, 48, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 57, 57, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 57, 56, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 54, 57, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 54, 57, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 57, - 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 57, 52, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 54, 57, 51, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 54, 57, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 54, 57, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 57, 48, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 56, 57, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 54, 56, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 54, 56, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 56, - 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 56, 53, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 54, 56, 52, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 54, 56, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 54, 56, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 56, 49, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 56, 48, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 54, 55, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 54, 55, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 55, - 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 55, 54, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 54, 55, 53, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 54, 55, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 54, 55, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 55, 50, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 55, 49, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 54, 55, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 54, 54, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 54, - 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 54, 55, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 54, 54, 54, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 54, 54, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 54, 54, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 54, 51, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 54, 50, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 54, 54, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 54, 54, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 53, - 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 53, 56, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 54, 53, 55, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 54, 53, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 54, 53, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 53, 52, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 53, 51, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 54, 53, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 54, 53, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 53, - 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 52, 57, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 54, 52, 56, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 54, 52, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 54, 52, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 52, 53, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 52, 52, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 54, 52, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 54, 52, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 52, - 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 52, 48, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 54, 51, 57, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 54, 51, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 54, 51, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 51, 54, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 51, 53, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 54, 51, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 54, 51, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 51, - 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 51, 49, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 54, 51, 48, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 54, 50, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 54, 50, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 50, 55, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 50, 54, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 54, 50, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 54, 50, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 50, - 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 50, 50, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 54, 50, 49, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 54, 50, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 54, 49, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 49, 56, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 49, 55, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 54, 49, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 54, 49, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 49, - 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 49, 51, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 54, 49, 50, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 54, 49, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 54, 49, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 48, 57, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 48, 56, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 54, 48, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 54, 48, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 48, - 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 48, 52, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 54, 48, 51, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 54, 48, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 54, 48, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 48, 48, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 57, 57, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 53, 57, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 53, 57, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 57, - 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 57, 53, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 53, 57, 52, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 53, 57, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 53, 57, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 57, 49, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 57, 48, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 53, 56, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 53, 56, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 56, - 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 56, 54, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 53, 56, 53, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 53, 56, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 53, 56, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 56, 50, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 56, 49, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 53, 56, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 53, 55, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 55, - 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 55, 55, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 53, 55, 54, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 53, 55, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 53, 55, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 55, 51, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 55, 50, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 53, 55, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 53, 55, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 54, - 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 54, 56, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 53, 54, 55, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 53, 54, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 53, 54, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 54, 52, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 54, 51, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 53, 54, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 53, 54, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 54, - 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 53, 57, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 53, 53, 56, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 53, 53, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 53, 53, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 53, 53, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 53, 52, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 53, 53, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 53, 53, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 53, - 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 53, 48, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 53, 52, 57, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 53, 52, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 53, 52, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 52, 54, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 52, 53, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 53, 52, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 53, 52, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 52, - 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 52, 49, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 53, 52, 48, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 53, 51, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 53, 51, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 51, 55, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 51, 54, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 53, 51, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 53, 51, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 51, - 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 51, 50, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 53, 51, 49, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 53, 51, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 53, 50, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 50, 56, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 50, 55, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 53, 50, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 53, 50, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 50, - 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 50, 51, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 53, 50, 50, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 53, 50, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 53, 50, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 49, 57, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 49, 56, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 53, 49, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 53, 49, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 49, - 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 49, 52, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 53, 49, 51, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 53, 49, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 53, 49, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 49, 48, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 48, 57, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 53, 48, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 53, 48, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 48, - 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 48, 53, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 53, 48, 52, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 53, 48, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 53, 48, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 48, 49, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 48, 48, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 52, 57, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 52, 57, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 57, - 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 57, 54, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 52, 57, 53, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 52, 57, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 52, 57, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 57, 50, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 57, 49, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 52, 57, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 52, 56, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 56, - 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 56, 55, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 52, 56, 54, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 52, 56, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 52, 56, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 56, 51, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 56, 50, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 52, 56, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 52, 56, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 55, - 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 55, 56, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 52, 55, 55, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 52, 55, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 52, 55, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 55, 52, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 55, 51, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 52, 55, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 52, 55, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 55, - 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 54, 57, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 52, 54, 56, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 52, 54, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 52, 54, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 54, 53, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 54, 52, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 52, 54, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 52, 54, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 54, - 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 54, 48, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 52, 53, 57, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 52, 53, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 52, 53, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 53, 54, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 53, 53, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 52, 53, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 52, 53, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 53, - 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 53, 49, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 52, 53, 48, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 52, 52, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 52, 52, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 52, 55, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 52, 54, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 52, 52, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 52, 52, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 52, - 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 52, 50, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 52, 52, 49, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 52, 52, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 52, 51, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 51, 56, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 51, 55, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 52, 51, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 52, 51, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 51, - 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 51, 51, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 52, 51, 50, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 52, 51, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 52, 51, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 50, 57, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 50, 56, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 52, 50, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 52, 50, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 50, - 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 50, 52, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 52, 50, 51, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 52, 50, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 52, 50, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 50, 48, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 49, 57, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 52, 49, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 52, 49, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 49, - 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 49, 53, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 52, 49, 52, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 52, 49, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 52, 49, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 49, 49, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 49, 48, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 52, 48, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 52, 48, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 48, - 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 48, 54, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 52, 48, 53, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 52, 48, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 52, 48, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 48, 50, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 48, 49, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 52, 48, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 51, 57, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 57, - 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 57, 55, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 51, 57, 54, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 51, 57, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 51, 57, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 57, 51, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 57, 50, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 51, 57, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 51, 57, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 56, - 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 56, 56, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 51, 56, 55, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 51, 56, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 51, 56, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 56, 52, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 56, 51, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 51, 56, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 51, 56, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 56, - 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 55, 57, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 51, 55, 56, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 51, 55, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 51, 55, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 55, 53, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 55, 52, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 51, 55, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 51, 55, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 55, - 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 55, 48, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 51, 54, 57, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 51, 54, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 51, 54, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 54, 54, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 54, 53, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 51, 54, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 51, 54, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 54, - 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 54, 49, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 51, 54, 48, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 51, 53, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 51, 53, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 53, 55, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 53, 54, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 51, 53, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 51, 53, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 53, - 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 53, 50, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 51, 53, 49, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 51, 53, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 51, 52, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 52, 56, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 52, 55, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 51, 52, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 51, 52, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 52, - 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 52, 51, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 51, 52, 50, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 51, 52, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 51, 52, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 51, 57, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 51, 56, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 51, 51, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 51, 51, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 51, - 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 51, 52, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 51, 51, 51, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 51, 51, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 51, 51, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 51, 48, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 50, 57, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 51, 50, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 51, 50, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 50, - 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 50, 53, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 51, 50, 52, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 51, 50, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 51, 50, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 50, 49, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 50, 48, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 51, 49, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 51, 49, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 49, - 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 49, 54, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 51, 49, 53, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 51, 49, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 51, 49, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 49, 50, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 49, 49, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 51, 49, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 51, 48, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 48, - 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 48, 55, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 51, 48, 54, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 51, 48, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 51, 48, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 48, 51, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 48, 50, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 51, 48, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 51, 48, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 57, - 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 57, 56, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 50, 57, 55, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 50, 57, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 50, 57, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 57, 52, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 57, 51, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 50, 57, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 50, 57, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 57, - 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 56, 57, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 50, 56, 56, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 50, 56, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 50, 56, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 56, 53, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 56, 52, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 50, 56, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 50, 56, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 56, - 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 56, 48, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 50, 55, 57, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 50, 55, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 50, 55, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 55, 54, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 55, 53, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 50, 55, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 50, 55, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 55, - 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 55, 49, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 50, 55, 48, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 50, 54, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 50, 54, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 54, 55, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 54, 54, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 50, 54, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 50, 54, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 54, - 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 54, 50, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 50, 54, 49, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 50, 54, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 50, 53, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 53, 56, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 53, 55, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 50, 53, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 50, 53, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 53, - 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 53, 51, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 50, 53, 50, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 50, 53, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 50, 53, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 52, 57, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 52, 56, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 50, 52, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 50, 52, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 52, - 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 52, 52, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 50, 52, 51, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 50, 52, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 50, 52, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 52, 48, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 51, 57, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 50, 51, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 50, 51, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 51, - 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 51, 53, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 50, 51, 52, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 50, 51, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 50, 51, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 51, 49, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 51, 48, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 50, 50, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 50, 50, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 50, - 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 50, 54, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 50, 50, 53, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 50, 50, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 50, 50, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 50, 50, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 50, 49, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 50, 50, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 50, 49, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 49, - 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 49, 55, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 50, 49, 54, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 50, 49, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 50, 49, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 49, 51, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 49, 50, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 50, 49, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 50, 49, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 48, - 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 48, 56, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 50, 48, 55, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 50, 48, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 50, 48, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 48, 52, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 48, 51, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 50, 48, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 50, 48, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 48, - 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 57, 57, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 49, 57, 56, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 49, 57, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 49, 57, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 57, 53, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 57, 52, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 49, 57, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 49, 57, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 57, - 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 57, 48, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 49, 56, 57, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 49, 56, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 49, 56, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 56, 54, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 56, 53, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 49, 56, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 49, 56, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 56, - 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 56, 49, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 49, 56, 48, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 49, 55, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 49, 55, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 55, 55, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 55, 54, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 49, 55, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 49, 55, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 55, - 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 55, 50, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 49, 55, 49, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 49, 55, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 49, 54, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 54, 56, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 54, 55, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 49, 54, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 49, 54, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 54, - 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 54, 51, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 49, 54, 50, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 49, 54, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 49, 54, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 53, 57, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 53, 56, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 49, 53, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 49, 53, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 53, - 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 53, 52, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 49, 53, 51, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 49, 53, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 49, 53, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 53, 48, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 52, 57, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 49, 52, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 49, 52, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 52, - 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 52, 53, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 49, 52, 52, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 49, 52, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 49, 52, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 52, 49, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 52, 48, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 49, 51, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 49, 51, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 51, - 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 51, 54, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 49, 51, 53, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 49, 51, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 49, 51, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 51, 50, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 51, 49, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 49, 51, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 49, 50, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 50, - 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 50, 55, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 49, 50, 54, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 49, 50, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 49, 50, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 50, 51, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 50, 50, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 49, 50, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 49, 50, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 49, - 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 49, 56, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 49, 49, 55, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 49, 49, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 49, 49, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 49, 52, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 49, 51, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 49, 49, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 49, 49, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 49, - 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 48, 57, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 49, 48, 56, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 49, 48, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 49, 48, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 48, 53, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 48, 52, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 49, 48, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 49, 48, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 48, - 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 48, 48, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 48, 57, 57, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 48, 57, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 48, 57, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 57, 54, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 57, 53, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 48, 57, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 48, 57, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 57, - 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 57, 49, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 48, 57, 48, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 48, 56, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 48, 56, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 56, 55, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 56, 54, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 48, 56, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 48, 56, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 56, - 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 56, 50, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 48, 56, 49, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 48, 56, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 48, 55, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 55, 56, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 55, 55, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 48, 55, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 48, 55, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 55, - 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 55, 51, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 48, 55, 50, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 48, 55, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 48, 55, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 54, 57, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 54, 56, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 48, 54, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 48, 54, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 54, - 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 54, 52, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 48, 54, 51, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 48, 54, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 48, 54, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 54, 48, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 53, 57, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 48, 53, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 48, 53, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 53, - 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 53, 53, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 48, 53, 52, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 48, 53, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 48, 53, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 53, 49, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 53, 48, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 48, 52, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 48, 52, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 52, - 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 52, 54, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 48, 52, 53, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 48, 52, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 48, 52, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 52, 50, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 52, 49, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 48, 52, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 48, 51, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 51, - 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 51, 55, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 48, 51, 54, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 48, 51, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 48, 51, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 51, 51, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 51, 50, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 48, 51, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 48, 51, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 50, - 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 50, 56, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 48, 50, 55, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 48, 50, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 48, 50, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 50, 52, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 50, 51, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 48, 50, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 48, 50, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 50, - 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 49, 57, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 48, 49, 56, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 48, 49, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 48, 49, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 49, 53, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 49, 52, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 48, 49, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 48, 49, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 49, - 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 49, 48, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 84, 45, 48, 48, 57, 128, 67, 79, 77, 80, 79, 78, - 69, 78, 84, 45, 48, 48, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, - 48, 48, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 48, 54, 128, - 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 48, 53, 128, 67, 79, 77, 80, - 79, 78, 69, 78, 84, 45, 48, 48, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, - 84, 45, 48, 48, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 48, - 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 48, 49, 128, 67, 79, - 77, 80, 79, 78, 69, 78, 212, 67, 79, 77, 80, 76, 73, 65, 78, 67, 69, 128, - 67, 79, 77, 80, 76, 69, 84, 73, 79, 78, 128, 67, 79, 77, 80, 76, 69, 84, - 69, 68, 128, 67, 79, 77, 80, 76, 69, 77, 69, 78, 84, 128, 67, 79, 77, 80, - 65, 83, 83, 128, 67, 79, 77, 80, 65, 82, 69, 128, 67, 79, 77, 77, 79, - 206, 67, 79, 77, 77, 69, 82, 67, 73, 65, 204, 67, 79, 77, 77, 65, 78, 68, - 128, 67, 79, 77, 77, 65, 128, 67, 79, 77, 77, 193, 67, 79, 77, 69, 84, - 128, 67, 79, 77, 66, 73, 78, 69, 68, 128, 67, 79, 77, 66, 73, 78, 65, 84, - 73, 79, 78, 128, 67, 79, 77, 66, 128, 67, 79, 76, 85, 77, 78, 128, 67, - 79, 76, 79, 82, 128, 67, 79, 76, 76, 73, 83, 73, 79, 206, 67, 79, 76, 76, - 128, 67, 79, 76, 196, 67, 79, 73, 78, 128, 67, 79, 70, 70, 73, 78, 128, - 67, 79, 69, 78, 71, 128, 67, 79, 69, 78, 199, 67, 79, 68, 65, 128, 67, - 79, 67, 79, 78, 85, 84, 128, 67, 79, 67, 75, 84, 65, 73, 204, 67, 79, 67, - 75, 82, 79, 65, 67, 72, 128, 67, 79, 65, 84, 128, 67, 79, 65, 83, 84, 69, - 82, 128, 67, 79, 65, 128, 67, 77, 51, 48, 50, 128, 67, 77, 51, 48, 49, - 128, 67, 77, 49, 49, 52, 128, 67, 77, 49, 49, 50, 128, 67, 77, 49, 49, - 48, 128, 67, 77, 49, 48, 57, 128, 67, 77, 49, 48, 56, 128, 67, 77, 49, - 48, 55, 128, 67, 77, 49, 48, 53, 128, 67, 77, 49, 48, 52, 128, 67, 77, - 49, 48, 51, 128, 67, 77, 49, 48, 50, 128, 67, 77, 49, 48, 49, 128, 67, - 77, 49, 48, 48, 128, 67, 77, 48, 57, 57, 128, 67, 77, 48, 57, 56, 128, - 67, 77, 48, 57, 55, 128, 67, 77, 48, 57, 54, 128, 67, 77, 48, 57, 53, - 128, 67, 77, 48, 57, 52, 128, 67, 77, 48, 57, 50, 128, 67, 77, 48, 57, - 49, 128, 67, 77, 48, 57, 48, 128, 67, 77, 48, 56, 57, 128, 67, 77, 48, - 56, 56, 128, 67, 77, 48, 56, 55, 128, 67, 77, 48, 56, 54, 128, 67, 77, - 48, 56, 53, 128, 67, 77, 48, 56, 52, 128, 67, 77, 48, 56, 51, 128, 67, - 77, 48, 56, 50, 128, 67, 77, 48, 56, 49, 128, 67, 77, 48, 56, 48, 128, - 67, 77, 48, 55, 57, 128, 67, 77, 48, 55, 56, 128, 67, 77, 48, 55, 54, - 128, 67, 77, 48, 55, 53, 66, 128, 67, 77, 48, 55, 53, 128, 67, 77, 48, - 55, 52, 128, 67, 77, 48, 55, 51, 128, 67, 77, 48, 55, 50, 128, 67, 77, - 48, 55, 49, 128, 67, 77, 48, 55, 48, 128, 67, 77, 48, 54, 57, 128, 67, - 77, 48, 54, 56, 128, 67, 77, 48, 54, 55, 128, 67, 77, 48, 54, 54, 128, - 67, 77, 48, 54, 52, 128, 67, 77, 48, 54, 51, 128, 67, 77, 48, 54, 50, - 128, 67, 77, 48, 54, 49, 128, 67, 77, 48, 54, 48, 128, 67, 77, 48, 53, - 57, 128, 67, 77, 48, 53, 56, 128, 67, 77, 48, 53, 54, 128, 67, 77, 48, - 53, 53, 128, 67, 77, 48, 53, 52, 128, 67, 77, 48, 53, 51, 128, 67, 77, - 48, 53, 50, 128, 67, 77, 48, 53, 49, 128, 67, 77, 48, 53, 48, 128, 67, - 77, 48, 52, 57, 128, 67, 77, 48, 52, 55, 128, 67, 77, 48, 52, 54, 128, - 67, 77, 48, 52, 52, 128, 67, 77, 48, 52, 49, 128, 67, 77, 48, 52, 48, - 128, 67, 77, 48, 51, 57, 128, 67, 77, 48, 51, 56, 128, 67, 77, 48, 51, - 55, 128, 67, 77, 48, 51, 54, 128, 67, 77, 48, 51, 53, 128, 67, 77, 48, - 51, 52, 128, 67, 77, 48, 51, 51, 128, 67, 77, 48, 51, 48, 128, 67, 77, - 48, 50, 57, 128, 67, 77, 48, 50, 56, 128, 67, 77, 48, 50, 55, 128, 67, - 77, 48, 50, 54, 128, 67, 77, 48, 50, 53, 128, 67, 77, 48, 50, 52, 128, - 67, 77, 48, 50, 51, 128, 67, 77, 48, 50, 49, 128, 67, 77, 48, 49, 57, - 128, 67, 77, 48, 49, 55, 128, 67, 77, 48, 49, 53, 128, 67, 77, 48, 49, - 51, 128, 67, 77, 48, 49, 50, 66, 128, 67, 77, 48, 49, 50, 128, 67, 77, - 48, 49, 49, 128, 67, 77, 48, 49, 48, 128, 67, 77, 48, 48, 57, 128, 67, - 77, 48, 48, 56, 128, 67, 77, 48, 48, 55, 128, 67, 77, 48, 48, 54, 128, - 67, 77, 48, 48, 53, 128, 67, 77, 48, 48, 52, 128, 67, 77, 48, 48, 50, - 128, 67, 77, 48, 48, 49, 128, 67, 77, 128, 67, 205, 67, 76, 85, 83, 84, - 69, 82, 45, 73, 78, 73, 84, 73, 65, 204, 67, 76, 85, 83, 84, 69, 82, 45, - 70, 73, 78, 65, 204, 67, 76, 85, 83, 84, 69, 210, 67, 76, 85, 66, 83, - 128, 67, 76, 85, 66, 45, 83, 80, 79, 75, 69, 196, 67, 76, 85, 66, 128, - 67, 76, 85, 194, 67, 76, 79, 87, 206, 67, 76, 79, 86, 69, 82, 128, 67, - 76, 79, 85, 68, 128, 67, 76, 79, 85, 196, 67, 76, 79, 84, 72, 69, 83, - 128, 67, 76, 79, 84, 72, 128, 67, 76, 79, 83, 69, 84, 128, 67, 76, 79, - 83, 69, 78, 69, 83, 83, 128, 67, 76, 79, 83, 69, 68, 128, 67, 76, 79, 83, - 197, 67, 76, 79, 67, 75, 87, 73, 83, 197, 67, 76, 79, 67, 203, 67, 76, - 73, 86, 73, 83, 128, 67, 76, 73, 80, 66, 79, 65, 82, 68, 128, 67, 76, 73, - 78, 75, 73, 78, 199, 67, 76, 73, 78, 71, 73, 78, 199, 67, 76, 73, 77, 66, - 73, 78, 71, 128, 67, 76, 73, 77, 65, 67, 85, 83, 128, 67, 76, 73, 70, 70, - 128, 67, 76, 73, 67, 75, 128, 67, 76, 73, 67, 203, 67, 76, 69, 70, 45, - 50, 128, 67, 76, 69, 70, 45, 49, 128, 67, 76, 69, 70, 128, 67, 76, 69, - 198, 67, 76, 69, 65, 86, 69, 82, 128, 67, 76, 69, 65, 210, 67, 76, 65, - 83, 83, 73, 67, 65, 204, 67, 76, 65, 80, 80, 73, 78, 199, 67, 76, 65, 80, - 80, 69, 210, 67, 76, 65, 78, 128, 67, 76, 65, 206, 67, 76, 65, 77, 83, - 72, 69, 76, 204, 67, 76, 65, 73, 77, 128, 67, 76, 128, 67, 73, 88, 128, - 67, 73, 86, 73, 76, 73, 65, 78, 128, 67, 73, 84, 89, 83, 67, 65, 80, 69, - 128, 67, 73, 84, 89, 83, 67, 65, 80, 197, 67, 73, 84, 201, 67, 73, 84, - 65, 84, 73, 79, 206, 67, 73, 84, 128, 67, 73, 82, 67, 85, 211, 67, 73, - 82, 67, 85, 77, 70, 76, 69, 88, 128, 67, 73, 82, 67, 85, 77, 70, 76, 69, - 216, 67, 73, 82, 67, 85, 76, 65, 84, 73, 79, 206, 67, 73, 82, 67, 76, 73, - 78, 71, 128, 67, 73, 82, 67, 76, 73, 78, 199, 67, 73, 82, 67, 76, 69, 83, - 128, 67, 73, 82, 67, 76, 69, 211, 67, 73, 82, 67, 76, 69, 68, 128, 67, - 73, 80, 128, 67, 73, 78, 78, 65, 66, 65, 82, 128, 67, 73, 78, 69, 77, 65, - 128, 67, 73, 206, 67, 73, 77, 128, 67, 73, 205, 67, 73, 73, 128, 67, 73, - 69, 88, 128, 67, 73, 69, 85, 67, 45, 83, 83, 65, 78, 71, 80, 73, 69, 85, - 80, 128, 67, 73, 69, 85, 67, 45, 80, 73, 69, 85, 80, 128, 67, 73, 69, 85, - 67, 45, 73, 69, 85, 78, 71, 128, 67, 73, 69, 85, 195, 67, 73, 69, 84, - 128, 67, 73, 69, 80, 128, 67, 73, 69, 128, 67, 72, 89, 88, 128, 67, 72, - 89, 84, 128, 67, 72, 89, 82, 88, 128, 67, 72, 89, 82, 128, 67, 72, 89, - 80, 128, 67, 72, 87, 86, 128, 67, 72, 85, 88, 128, 67, 72, 85, 82, 88, - 128, 67, 72, 85, 82, 67, 72, 128, 67, 72, 85, 82, 128, 67, 72, 85, 80, - 128, 67, 72, 85, 79, 88, 128, 67, 72, 85, 79, 84, 128, 67, 72, 85, 79, - 80, 128, 67, 72, 85, 79, 128, 67, 72, 85, 76, 65, 128, 67, 72, 85, 128, - 67, 72, 82, 89, 83, 65, 78, 84, 72, 69, 77, 85, 77, 128, 67, 72, 82, 79, - 78, 79, 85, 128, 67, 72, 82, 79, 78, 79, 78, 128, 67, 72, 82, 79, 77, - 193, 67, 72, 82, 79, 193, 67, 72, 82, 73, 86, 73, 128, 67, 72, 82, 73, - 83, 84, 77, 65, 83, 128, 67, 72, 82, 73, 83, 84, 77, 65, 211, 67, 72, 79, - 89, 128, 67, 72, 79, 88, 128, 67, 72, 79, 84, 128, 67, 72, 79, 82, 69, - 86, 77, 193, 67, 72, 79, 82, 65, 83, 77, 73, 65, 206, 67, 72, 79, 80, 83, - 84, 73, 67, 75, 83, 128, 67, 72, 79, 80, 128, 67, 72, 79, 75, 69, 128, - 67, 72, 79, 69, 128, 67, 72, 79, 67, 79, 76, 65, 84, 197, 67, 72, 79, 65, - 128, 67, 72, 73, 84, 85, 69, 85, 77, 83, 83, 65, 78, 71, 83, 73, 79, 83, - 128, 67, 72, 73, 84, 85, 69, 85, 77, 83, 83, 65, 78, 71, 67, 73, 69, 85, - 67, 128, 67, 72, 73, 84, 85, 69, 85, 77, 83, 73, 79, 83, 128, 67, 72, 73, - 84, 85, 69, 85, 77, 67, 73, 69, 85, 67, 128, 67, 72, 73, 84, 85, 69, 85, - 77, 67, 72, 73, 69, 85, 67, 72, 128, 67, 72, 73, 82, 79, 78, 128, 67, 72, - 73, 82, 69, 84, 128, 67, 72, 73, 80, 77, 85, 78, 75, 128, 67, 72, 73, 78, - 79, 79, 203, 67, 72, 73, 78, 71, 128, 67, 72, 73, 78, 69, 83, 197, 67, - 72, 73, 78, 128, 67, 72, 73, 77, 69, 128, 67, 72, 73, 77, 128, 67, 72, - 73, 76, 76, 213, 67, 72, 73, 76, 68, 82, 69, 206, 67, 72, 73, 76, 68, - 128, 67, 72, 73, 76, 128, 67, 72, 73, 75, 201, 67, 72, 73, 69, 85, 67, - 72, 45, 75, 72, 73, 69, 85, 75, 72, 128, 67, 72, 73, 69, 85, 67, 72, 45, - 72, 73, 69, 85, 72, 128, 67, 72, 73, 69, 85, 67, 200, 67, 72, 73, 67, 75, - 69, 78, 128, 67, 72, 73, 67, 75, 128, 67, 72, 73, 128, 67, 72, 201, 67, - 72, 72, 73, 77, 128, 67, 72, 72, 65, 128, 67, 72, 69, 88, 128, 67, 72, - 69, 86, 82, 79, 78, 128, 67, 72, 69, 86, 82, 79, 206, 67, 72, 69, 84, - 128, 67, 72, 69, 83, 84, 78, 85, 84, 128, 67, 72, 69, 83, 84, 128, 67, - 72, 69, 83, 211, 67, 72, 69, 82, 89, 128, 67, 72, 69, 82, 82, 217, 67, - 72, 69, 82, 82, 73, 69, 83, 128, 67, 72, 69, 81, 85, 69, 82, 69, 196, 67, - 72, 69, 80, 128, 67, 72, 69, 76, 89, 85, 83, 84, 75, 65, 128, 67, 72, 69, - 76, 78, 85, 128, 67, 72, 69, 73, 78, 65, 80, 128, 67, 72, 69, 73, 75, 72, - 69, 73, 128, 67, 72, 69, 73, 75, 72, 65, 78, 128, 67, 72, 69, 69, 83, - 197, 67, 72, 69, 69, 82, 73, 78, 199, 67, 72, 69, 69, 77, 128, 67, 72, - 69, 69, 75, 211, 67, 72, 69, 69, 75, 128, 67, 72, 69, 69, 128, 67, 72, - 69, 67, 75, 69, 210, 67, 72, 69, 67, 75, 128, 67, 72, 69, 67, 203, 67, - 72, 197, 67, 72, 65, 88, 128, 67, 72, 65, 86, 73, 89, 65, 78, 73, 128, - 67, 72, 65, 84, 84, 65, 87, 65, 128, 67, 72, 65, 84, 128, 67, 72, 65, 83, - 72, 75, 65, 128, 67, 72, 65, 83, 72, 75, 193, 67, 72, 65, 82, 84, 128, - 67, 72, 65, 82, 212, 67, 72, 65, 82, 73, 79, 84, 128, 67, 72, 65, 82, 73, - 79, 212, 67, 72, 65, 82, 65, 67, 84, 69, 82, 83, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 70, 66, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 70, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 70, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 70, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 70, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 70, 54, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 70, 53, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 70, 52, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 70, 51, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 70, 50, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 70, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 70, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 69, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 69, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 69, 68, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 69, 67, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 69, 66, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 69, 65, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 69, 57, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 69, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 69, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 69, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 69, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 69, 52, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 69, 51, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 69, 50, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 69, 49, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 69, 48, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 68, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 68, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 68, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 68, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 68, 66, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 68, 65, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 68, 57, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 68, 56, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 68, 55, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 68, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 68, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 68, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 68, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 68, 50, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 68, 49, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 68, 48, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 67, 70, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 67, 69, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 67, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 67, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 67, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 67, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 67, 57, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 67, 56, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 67, 55, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 67, 54, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 67, 53, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 67, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 67, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 67, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 67, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 67, 48, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 66, 70, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 66, 69, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 66, 68, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 66, 67, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 66, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 66, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 66, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 66, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 66, 55, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 66, 54, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 66, 53, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 66, 52, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 66, 51, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 66, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 66, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 66, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 65, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 65, 69, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 65, 68, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 65, 67, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 65, 66, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 65, 65, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 65, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 65, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 65, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 65, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 65, 53, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 65, 52, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 65, 51, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 65, 50, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 65, 49, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 65, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 57, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 57, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 57, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 57, 67, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 57, 66, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 57, 65, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 57, 57, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 57, 56, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 57, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 57, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 57, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 57, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 57, 51, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 57, 50, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 57, 49, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 57, 48, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 56, 70, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 56, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 56, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 56, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 56, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 56, 65, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 56, 57, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 56, 56, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 56, 55, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 56, 54, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 56, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 56, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 56, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 56, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 56, 49, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 56, 48, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 55, 70, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 55, 69, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 55, 68, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 55, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 55, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 55, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 55, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 55, 56, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 55, 55, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 55, 54, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 55, 53, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 55, 52, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 55, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 55, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 55, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 55, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 54, 70, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 54, 69, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 54, 68, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 54, 67, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 54, 66, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 54, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 54, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 54, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 54, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 54, 54, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 54, 53, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 54, 52, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 54, 51, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 54, 50, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 54, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 54, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 53, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 53, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 53, 68, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 53, 67, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 53, 66, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 53, 65, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 53, 57, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 53, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 53, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 53, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 53, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 53, 52, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 53, 51, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 53, 50, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 53, 49, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 53, 48, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 52, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 52, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 52, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 52, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 52, 66, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 52, 65, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 52, 57, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 52, 56, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 52, 55, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 52, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 52, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 52, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 52, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 52, 50, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 52, 49, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 52, 48, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 51, 70, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 51, 69, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 51, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 51, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 51, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 51, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 51, 57, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 51, 56, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 51, 55, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 51, 54, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 51, 53, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 51, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 51, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 51, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 51, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 51, 48, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 50, 70, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 50, 69, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 50, 68, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 50, 67, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 50, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 50, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 50, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 50, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 50, 55, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 50, 54, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 50, 53, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 50, 52, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 50, 51, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 50, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 50, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 50, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 49, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 49, 69, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 49, 68, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 49, 67, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 49, 66, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 49, 65, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 49, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 49, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 49, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 49, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 49, 53, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 49, 52, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 49, 51, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 49, 50, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 49, 49, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 49, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 48, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 48, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 48, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 48, 67, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 48, 66, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 48, 65, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 48, 57, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 48, 56, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 48, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 48, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 48, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 48, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 48, 51, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 48, 50, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 48, 49, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 48, 48, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 49, 70, 70, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 49, 70, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 49, 70, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 49, 70, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, - 70, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 70, 65, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 70, 57, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 70, 56, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 70, 55, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 49, 70, 54, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 49, 70, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 49, 70, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 49, 70, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, - 70, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 70, 49, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 70, 48, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 69, 70, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 69, 69, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 49, 69, 68, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 49, 69, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 49, 69, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 49, 69, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, - 69, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 69, 56, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 69, 55, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 69, 54, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 69, 53, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 49, 69, 52, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 49, 69, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 49, 69, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 49, 69, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, - 69, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 68, 70, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 68, 69, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 68, 68, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 68, 67, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 49, 68, 66, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 49, 68, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 49, 68, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 49, 68, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, - 68, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 68, 54, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 68, 53, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 68, 52, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 68, 51, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 49, 68, 50, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 49, 68, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 49, 68, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 49, 67, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, - 67, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 67, 68, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 67, 67, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 67, 66, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 67, 65, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 49, 67, 57, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 49, 67, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 49, 67, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 49, 67, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, - 67, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 67, 52, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 67, 51, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 67, 50, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 67, 49, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 49, 67, 48, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 49, 66, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 49, 66, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 49, 66, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, - 66, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 66, 66, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 66, 65, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 66, 57, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 66, 56, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 49, 66, 55, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 49, 66, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 49, 66, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 49, 66, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, - 66, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 66, 50, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 66, 49, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 66, 48, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 65, 70, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 49, 65, 69, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 49, 65, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 49, 65, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 49, 65, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, - 65, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 65, 57, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 65, 56, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 65, 55, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 65, 54, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 49, 65, 53, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 49, 65, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 49, 65, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 49, 65, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, - 65, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 65, 48, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 57, 70, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 57, 69, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 57, 68, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 49, 57, 67, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 49, 57, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 49, 57, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 49, 57, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, - 57, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 57, 55, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 57, 54, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 57, 53, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 57, 52, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 49, 57, 51, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 49, 57, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 49, 57, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 49, 57, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, - 56, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 56, 69, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 56, 68, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 56, 67, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 56, 66, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 49, 56, 65, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 49, 56, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 49, 56, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 49, 56, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, - 56, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 56, 53, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 56, 52, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 56, 51, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 56, 50, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 49, 56, 49, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 49, 56, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 49, 55, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 49, 55, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, - 55, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 55, 67, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 55, 66, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 55, 65, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 55, 57, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 49, 55, 56, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 49, 55, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 49, 55, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 49, 55, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, - 55, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 55, 51, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 55, 50, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 55, 49, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 55, 48, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 68, 53, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 68, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 68, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 68, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 68, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 68, 48, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 70, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 69, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 68, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 67, 67, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 67, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 67, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 67, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 67, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 55, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 54, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 53, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 52, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 67, 51, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 67, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 67, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 67, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 66, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 69, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 68, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 67, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 66, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 66, 65, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 66, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 66, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 66, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 66, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 53, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 52, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 51, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 50, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 66, 49, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 66, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 65, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 65, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 65, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 67, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 66, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 65, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 57, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 65, 56, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 65, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 65, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 65, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 65, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 51, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 50, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 49, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 48, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 57, 70, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 57, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 57, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 57, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 57, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 65, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 57, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 56, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 55, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 57, 54, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 57, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 57, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 57, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 57, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 49, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 48, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 70, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 69, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 56, 68, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 56, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 56, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 56, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 56, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 56, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 55, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 54, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 53, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 56, 52, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 56, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 56, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 56, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 56, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 70, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 69, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 68, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 67, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 55, 66, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 55, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 55, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 55, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 55, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 54, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 53, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 52, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 51, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 55, 50, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 55, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 55, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 54, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 54, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 68, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 67, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 66, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 65, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 54, 57, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 54, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 54, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 54, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 54, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 52, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 51, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 50, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 49, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 54, 48, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 53, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 53, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 53, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 53, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 66, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 65, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 57, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 56, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 53, 55, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 53, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 53, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 53, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 53, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 50, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 49, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 48, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 70, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 52, 69, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 52, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 52, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 52, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 52, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 57, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 56, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 55, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 54, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 52, 53, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 52, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 52, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 52, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 52, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 48, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 70, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 69, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 68, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 51, 67, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 51, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 51, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 51, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 51, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 55, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 54, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 53, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 52, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 51, 51, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 51, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 51, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 51, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 50, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 69, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 68, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 67, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 66, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 50, 65, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 50, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 50, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 50, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 50, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 53, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 52, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 51, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 50, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 50, 49, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 50, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 49, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 49, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 49, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 67, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 66, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 65, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 57, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 49, 56, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 49, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 49, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 49, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 49, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 51, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 50, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 49, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 48, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 48, 70, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 48, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 48, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 48, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 48, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 65, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 57, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 56, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 55, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 48, 54, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 48, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 48, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 48, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 48, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 49, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 48, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 70, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 69, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 70, 68, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 70, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 70, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 70, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 70, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 56, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 55, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 54, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 53, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 70, 52, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 70, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 70, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 70, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 70, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 70, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 69, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 68, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 67, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 69, 66, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 69, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 69, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 69, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 69, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 54, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 53, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 52, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 51, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 69, 50, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 69, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 69, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 68, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 68, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 68, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 67, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 66, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 65, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 68, 57, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 68, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 68, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 68, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 68, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 52, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 51, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 50, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 49, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 68, 48, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 67, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 67, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 67, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 67, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 66, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 65, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 57, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 56, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 67, 55, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 67, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 67, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 67, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 67, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 50, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 49, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 48, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 70, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 66, 69, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 66, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 66, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 66, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 66, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 57, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 56, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 55, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 54, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 66, 53, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 66, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 66, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 66, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 66, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 48, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 70, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 69, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 68, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 65, 67, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 65, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 65, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 65, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 65, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 55, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 54, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 53, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 52, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 65, 51, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 65, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 65, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 65, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 57, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 69, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 68, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 67, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 66, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 57, 65, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 57, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 57, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 57, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 57, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 53, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 52, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 51, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 50, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 57, 49, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 57, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 56, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 56, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 56, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 67, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 66, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 65, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 57, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 56, 56, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 56, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 56, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 56, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 56, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 51, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 50, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 49, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 48, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 55, 70, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 55, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 55, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 55, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 55, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 65, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 57, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 56, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 55, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 55, 54, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 55, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 55, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 55, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 55, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 49, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 48, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 70, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 69, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 54, 68, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 54, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 54, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 54, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 54, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 56, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 55, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 54, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 53, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 54, 52, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 54, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 54, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 54, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 54, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 70, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 69, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 68, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 67, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 53, 66, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 53, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 53, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 53, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 53, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 54, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 53, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 52, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 51, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 53, 50, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 53, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 53, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 52, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 52, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 68, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 67, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 66, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 65, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 52, 57, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 52, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 52, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 52, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 52, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 52, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 51, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 50, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 49, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 52, 48, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 51, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 51, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 51, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 51, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 66, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 65, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 57, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 56, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 51, 55, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 51, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 51, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 51, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 51, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 50, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 49, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 48, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 70, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 50, 69, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 50, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 50, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 50, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 50, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 57, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 56, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 55, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 54, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 50, 53, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 50, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 50, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 50, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 50, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 48, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 70, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 69, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 68, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 49, 67, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 49, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 49, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 49, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 49, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 55, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 54, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 53, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 52, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 49, 51, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 49, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 49, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 49, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 48, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 69, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 68, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 67, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 66, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 48, 65, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 48, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 48, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 48, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 48, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 53, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 52, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 51, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 50, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 48, 49, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 48, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 210, 67, 72, 65, 82, 128, 67, 72, - 65, 80, 84, 69, 82, 128, 67, 72, 65, 80, 128, 67, 72, 65, 78, 71, 128, - 67, 72, 65, 78, 128, 67, 72, 65, 77, 75, 79, 128, 67, 72, 65, 77, 73, 76, - 79, 78, 128, 67, 72, 65, 77, 73, 76, 73, 128, 67, 72, 65, 205, 67, 72, - 65, 75, 77, 193, 67, 72, 65, 73, 78, 83, 128, 67, 72, 65, 68, 65, 128, - 67, 72, 65, 196, 67, 72, 65, 65, 128, 67, 71, 74, 128, 67, 69, 88, 128, - 67, 69, 86, 73, 84, 85, 128, 67, 69, 82, 69, 83, 128, 67, 69, 82, 69, 77, - 79, 78, 89, 128, 67, 69, 82, 69, 75, 128, 67, 69, 82, 45, 87, 65, 128, - 67, 69, 80, 128, 67, 69, 79, 78, 71, 67, 72, 73, 69, 85, 77, 83, 83, 65, - 78, 71, 83, 73, 79, 83, 128, 67, 69, 79, 78, 71, 67, 72, 73, 69, 85, 77, - 83, 83, 65, 78, 71, 67, 73, 69, 85, 67, 128, 67, 69, 79, 78, 71, 67, 72, - 73, 69, 85, 77, 83, 73, 79, 83, 128, 67, 69, 79, 78, 71, 67, 72, 73, 69, - 85, 77, 67, 73, 69, 85, 67, 128, 67, 69, 79, 78, 71, 67, 72, 73, 69, 85, - 77, 67, 72, 73, 69, 85, 67, 72, 128, 67, 69, 78, 84, 85, 82, 73, 65, 204, - 67, 69, 78, 84, 82, 69, 76, 73, 78, 197, 67, 69, 78, 84, 82, 69, 68, 128, - 67, 69, 78, 84, 82, 69, 196, 67, 69, 78, 84, 82, 69, 128, 67, 69, 78, 84, - 82, 197, 67, 69, 78, 84, 82, 65, 76, 73, 90, 65, 84, 73, 79, 206, 67, 69, - 78, 128, 67, 69, 76, 84, 73, 195, 67, 69, 76, 83, 73, 85, 83, 128, 67, - 69, 76, 69, 66, 82, 65, 84, 73, 79, 78, 128, 67, 69, 73, 82, 84, 128, 67, - 69, 73, 76, 73, 78, 71, 128, 67, 69, 73, 76, 73, 78, 199, 67, 69, 69, 86, - 128, 67, 69, 69, 66, 128, 67, 69, 69, 128, 67, 69, 68, 73, 76, 76, 65, - 128, 67, 69, 68, 73, 76, 76, 193, 67, 69, 68, 201, 67, 69, 67, 69, 75, - 128, 67, 69, 67, 65, 75, 128, 67, 69, 67, 65, 203, 67, 69, 65, 76, 67, - 128, 67, 67, 85, 128, 67, 67, 79, 128, 67, 67, 73, 128, 67, 67, 72, 85, - 128, 67, 67, 72, 79, 128, 67, 67, 72, 73, 128, 67, 67, 72, 72, 85, 128, - 67, 67, 72, 72, 79, 128, 67, 67, 72, 72, 73, 128, 67, 67, 72, 72, 69, 69, - 128, 67, 67, 72, 72, 69, 128, 67, 67, 72, 72, 65, 65, 128, 67, 67, 72, - 72, 65, 128, 67, 67, 72, 69, 69, 128, 67, 67, 72, 69, 128, 67, 67, 72, - 65, 65, 128, 67, 67, 72, 65, 128, 67, 67, 72, 128, 67, 67, 69, 69, 128, - 67, 67, 65, 65, 128, 67, 65, 89, 78, 128, 67, 65, 89, 65, 78, 78, 65, - 128, 67, 65, 88, 128, 67, 65, 86, 69, 128, 67, 65, 85, 84, 73, 79, 206, - 67, 65, 85, 76, 68, 82, 79, 78, 128, 67, 65, 85, 68, 65, 84, 197, 67, 65, - 85, 68, 65, 128, 67, 65, 85, 67, 65, 83, 73, 65, 206, 67, 65, 85, 128, - 67, 65, 84, 65, 87, 65, 128, 67, 65, 84, 128, 67, 65, 212, 67, 65, 83, - 84, 76, 69, 128, 67, 65, 83, 75, 69, 212, 67, 65, 82, 89, 83, 84, 73, 65, - 206, 67, 65, 82, 84, 87, 72, 69, 69, 76, 128, 67, 65, 82, 84, 82, 73, 68, - 71, 69, 128, 67, 65, 82, 84, 128, 67, 65, 82, 211, 67, 65, 82, 82, 79, - 84, 128, 67, 65, 82, 82, 73, 65, 71, 197, 67, 65, 82, 80, 69, 78, 84, 82, - 217, 67, 65, 82, 208, 67, 65, 82, 79, 85, 83, 69, 204, 67, 65, 82, 79, - 78, 128, 67, 65, 82, 79, 206, 67, 65, 82, 73, 203, 67, 65, 82, 73, 65, - 206, 67, 65, 82, 69, 84, 128, 67, 65, 82, 69, 212, 67, 65, 82, 197, 67, - 65, 82, 68, 83, 128, 67, 65, 82, 196, 67, 65, 82, 128, 67, 65, 210, 67, - 65, 80, 85, 212, 67, 65, 80, 84, 73, 86, 69, 128, 67, 65, 80, 82, 73, 67, - 79, 82, 78, 128, 67, 65, 80, 80, 69, 196, 67, 65, 80, 79, 128, 67, 65, - 80, 73, 84, 85, 76, 85, 77, 128, 67, 65, 80, 73, 84, 65, 76, 128, 67, 65, - 78, 84, 73, 76, 76, 65, 84, 73, 79, 206, 67, 65, 78, 79, 69, 128, 67, 65, - 78, 78, 79, 78, 128, 67, 65, 78, 78, 69, 196, 67, 65, 78, 199, 67, 65, - 78, 69, 128, 67, 65, 78, 68, 89, 128, 67, 65, 78, 68, 82, 65, 66, 73, 78, - 68, 85, 128, 67, 65, 78, 68, 82, 65, 66, 73, 78, 68, 213, 67, 65, 78, 68, - 82, 65, 128, 67, 65, 78, 68, 82, 193, 67, 65, 78, 68, 76, 69, 128, 67, - 65, 78, 67, 69, 82, 128, 67, 65, 78, 67, 69, 76, 76, 65, 84, 73, 79, 206, - 67, 65, 78, 67, 69, 76, 128, 67, 65, 78, 67, 69, 204, 67, 65, 78, 128, - 67, 65, 77, 80, 73, 78, 71, 128, 67, 65, 77, 78, 85, 195, 67, 65, 77, 69, - 82, 65, 128, 67, 65, 77, 69, 82, 193, 67, 65, 77, 69, 76, 128, 67, 65, - 76, 89, 65, 128, 67, 65, 76, 89, 193, 67, 65, 76, 88, 128, 67, 65, 76, - 76, 128, 67, 65, 76, 204, 67, 65, 76, 69, 78, 68, 65, 82, 128, 67, 65, - 76, 69, 78, 68, 65, 210, 67, 65, 76, 67, 85, 76, 65, 84, 79, 82, 128, 67, - 65, 76, 67, 128, 67, 65, 75, 82, 65, 128, 67, 65, 75, 197, 67, 65, 73, - 128, 67, 65, 72, 128, 67, 65, 69, 83, 85, 82, 65, 128, 67, 65, 68, 85, - 67, 69, 85, 83, 128, 67, 65, 68, 193, 67, 65, 67, 84, 85, 83, 128, 67, - 65, 66, 76, 69, 87, 65, 89, 128, 67, 65, 66, 73, 78, 69, 84, 128, 67, 65, - 66, 66, 65, 71, 69, 45, 84, 82, 69, 69, 128, 67, 65, 65, 78, 71, 128, 67, - 65, 65, 73, 128, 67, 193, 67, 48, 50, 52, 128, 67, 48, 50, 51, 128, 67, - 48, 50, 50, 128, 67, 48, 50, 49, 128, 67, 48, 50, 48, 128, 67, 48, 49, - 57, 128, 67, 48, 49, 56, 128, 67, 48, 49, 55, 128, 67, 48, 49, 54, 128, - 67, 48, 49, 53, 128, 67, 48, 49, 52, 128, 67, 48, 49, 51, 128, 67, 48, - 49, 50, 128, 67, 48, 49, 49, 128, 67, 48, 49, 48, 65, 128, 67, 48, 49, - 48, 128, 67, 48, 48, 57, 128, 67, 48, 48, 56, 128, 67, 48, 48, 55, 128, - 67, 48, 48, 54, 128, 67, 48, 48, 53, 128, 67, 48, 48, 52, 128, 67, 48, - 48, 51, 128, 67, 48, 48, 50, 67, 128, 67, 48, 48, 50, 66, 128, 67, 48, - 48, 50, 65, 128, 67, 48, 48, 50, 128, 67, 48, 48, 49, 128, 67, 45, 83, - 73, 77, 80, 76, 73, 70, 73, 69, 196, 67, 45, 51, 57, 128, 67, 45, 49, 56, - 128, 66, 90, 85, 78, 199, 66, 90, 72, 201, 66, 89, 84, 197, 66, 89, 69, - 76, 79, 82, 85, 83, 83, 73, 65, 78, 45, 85, 75, 82, 65, 73, 78, 73, 65, - 206, 66, 88, 71, 128, 66, 87, 73, 128, 66, 87, 69, 69, 128, 66, 87, 69, - 128, 66, 87, 65, 128, 66, 85, 85, 77, 73, 83, 72, 128, 66, 85, 84, 84, - 79, 78, 128, 66, 85, 84, 84, 79, 206, 66, 85, 84, 84, 69, 82, 70, 76, 89, - 128, 66, 85, 84, 84, 69, 82, 128, 66, 85, 212, 66, 85, 83, 84, 211, 66, - 85, 83, 212, 66, 85, 83, 83, 89, 69, 82, 85, 128, 66, 85, 83, 73, 78, 69, - 83, 211, 66, 85, 211, 66, 85, 82, 213, 66, 85, 82, 82, 73, 84, 79, 128, - 66, 85, 82, 50, 128, 66, 85, 210, 66, 85, 79, 89, 128, 66, 85, 79, 88, - 128, 66, 85, 79, 80, 128, 66, 85, 78, 78, 217, 66, 85, 78, 71, 128, 66, - 85, 77, 80, 217, 66, 85, 76, 85, 71, 128, 66, 85, 76, 85, 199, 66, 85, - 76, 76, 83, 69, 89, 69, 128, 66, 85, 76, 76, 211, 66, 85, 76, 76, 72, 79, - 82, 78, 128, 66, 85, 76, 76, 72, 79, 82, 206, 66, 85, 76, 76, 69, 84, - 128, 66, 85, 76, 76, 69, 212, 66, 85, 76, 76, 128, 66, 85, 76, 66, 128, - 66, 85, 75, 89, 128, 66, 85, 73, 76, 68, 73, 78, 71, 83, 128, 66, 85, 73, - 76, 68, 73, 78, 71, 128, 66, 85, 73, 76, 68, 73, 78, 199, 66, 85, 72, 73, - 196, 66, 85, 71, 73, 78, 69, 83, 197, 66, 85, 71, 128, 66, 85, 70, 70, - 65, 76, 79, 128, 66, 85, 68, 128, 66, 85, 67, 75, 76, 69, 128, 66, 85, - 67, 75, 69, 84, 128, 66, 85, 66, 66, 76, 69, 83, 128, 66, 85, 66, 66, 76, - 69, 128, 66, 85, 66, 66, 76, 197, 66, 83, 84, 65, 82, 128, 66, 83, 75, - 85, 210, 66, 83, 75, 65, 173, 66, 83, 68, 85, 211, 66, 82, 85, 83, 200, - 66, 82, 79, 87, 206, 66, 82, 79, 79, 77, 128, 66, 82, 79, 78, 90, 69, - 128, 66, 82, 79, 75, 69, 206, 66, 82, 79, 67, 67, 79, 76, 73, 128, 66, - 82, 79, 65, 196, 66, 82, 73, 83, 84, 76, 69, 128, 66, 82, 73, 71, 72, 84, - 78, 69, 83, 211, 66, 82, 73, 69, 70, 83, 128, 66, 82, 73, 69, 70, 67, 65, - 83, 69, 128, 66, 82, 73, 68, 71, 197, 66, 82, 73, 68, 197, 66, 82, 73, - 67, 75, 128, 66, 82, 73, 128, 66, 82, 69, 86, 73, 83, 128, 66, 82, 69, - 86, 69, 45, 77, 65, 67, 82, 79, 78, 128, 66, 82, 69, 86, 197, 66, 82, 69, - 65, 84, 72, 217, 66, 82, 69, 65, 84, 200, 66, 82, 69, 65, 83, 84, 45, 70, - 69, 69, 68, 73, 78, 71, 128, 66, 82, 69, 65, 75, 84, 72, 82, 79, 85, 71, - 72, 128, 66, 82, 68, 193, 66, 82, 65, 78, 67, 72, 73, 78, 199, 66, 82, - 65, 78, 67, 72, 69, 83, 128, 66, 82, 65, 78, 67, 72, 128, 66, 82, 65, 78, - 67, 200, 66, 82, 65, 75, 67, 69, 84, 128, 66, 82, 65, 73, 78, 128, 66, - 82, 65, 67, 75, 69, 84, 211, 66, 82, 65, 67, 75, 69, 84, 69, 196, 66, 82, - 65, 67, 75, 69, 84, 128, 66, 82, 65, 67, 75, 69, 212, 66, 82, 65, 67, 69, - 128, 66, 81, 128, 66, 80, 72, 128, 66, 79, 89, 211, 66, 79, 89, 128, 66, - 79, 88, 73, 78, 199, 66, 79, 87, 84, 73, 69, 128, 66, 79, 87, 84, 73, - 197, 66, 79, 87, 76, 73, 78, 71, 128, 66, 79, 87, 76, 128, 66, 79, 87, - 204, 66, 79, 87, 73, 78, 199, 66, 79, 215, 66, 79, 85, 81, 85, 69, 84, - 128, 66, 79, 85, 81, 85, 69, 212, 66, 79, 85, 78, 68, 65, 82, 217, 66, - 79, 84, 84, 79, 77, 45, 83, 72, 65, 68, 69, 196, 66, 79, 84, 84, 79, 77, - 45, 76, 73, 71, 72, 84, 69, 196, 66, 79, 84, 84, 79, 77, 128, 66, 79, 84, - 84, 79, 205, 66, 79, 84, 84, 76, 69, 128, 66, 79, 84, 84, 76, 197, 66, - 79, 84, 200, 66, 79, 82, 90, 89, 128, 66, 79, 82, 90, 65, 89, 65, 128, - 66, 79, 82, 85, 84, 79, 128, 66, 79, 82, 65, 88, 45, 51, 128, 66, 79, 82, - 65, 88, 45, 50, 128, 66, 79, 82, 65, 88, 128, 66, 79, 80, 79, 77, 79, 70, - 207, 66, 79, 79, 84, 83, 128, 66, 79, 79, 84, 128, 66, 79, 79, 77, 69, - 82, 65, 78, 71, 128, 66, 79, 79, 75, 83, 128, 66, 79, 79, 75, 77, 65, 82, - 75, 128, 66, 79, 79, 75, 77, 65, 82, 203, 66, 79, 78, 69, 128, 66, 79, - 77, 66, 128, 66, 79, 77, 128, 66, 79, 76, 84, 128, 66, 79, 76, 212, 66, - 79, 72, 65, 73, 82, 73, 195, 66, 79, 68, 89, 128, 66, 79, 68, 217, 66, - 79, 65, 82, 128, 66, 79, 65, 128, 66, 76, 85, 69, 66, 69, 82, 82, 73, 69, - 83, 128, 66, 76, 85, 69, 128, 66, 76, 85, 197, 66, 76, 79, 87, 73, 78, - 199, 66, 76, 79, 87, 70, 73, 83, 72, 128, 66, 76, 79, 215, 66, 76, 79, - 83, 83, 79, 77, 128, 66, 76, 79, 79, 68, 128, 66, 76, 79, 78, 196, 66, - 76, 79, 67, 75, 45, 55, 128, 66, 76, 79, 67, 75, 45, 54, 128, 66, 76, 79, - 67, 75, 45, 53, 128, 66, 76, 79, 67, 75, 45, 52, 128, 66, 76, 79, 67, 75, - 45, 51, 128, 66, 76, 79, 67, 75, 45, 50, 128, 66, 76, 79, 67, 75, 45, 49, - 51, 53, 56, 128, 66, 76, 79, 67, 75, 128, 66, 76, 73, 78, 203, 66, 76, - 65, 78, 75, 128, 66, 76, 65, 78, 203, 66, 76, 65, 68, 197, 66, 76, 65, - 67, 75, 76, 69, 84, 84, 69, 210, 66, 76, 65, 67, 75, 70, 79, 79, 212, 66, - 76, 65, 67, 75, 45, 76, 69, 84, 84, 69, 210, 66, 76, 65, 67, 75, 45, 70, - 69, 65, 84, 72, 69, 82, 69, 196, 66, 76, 65, 67, 75, 128, 66, 75, 65, - 173, 66, 73, 84, 84, 69, 82, 128, 66, 73, 84, 73, 78, 199, 66, 73, 84, - 197, 66, 73, 84, 67, 79, 73, 206, 66, 73, 83, 79, 78, 128, 66, 73, 83, - 77, 85, 84, 200, 66, 73, 83, 77, 73, 76, 76, 65, 200, 66, 73, 83, 72, 79, - 208, 66, 73, 83, 69, 67, 84, 73, 78, 199, 66, 73, 83, 65, 72, 128, 66, - 73, 82, 85, 128, 66, 73, 82, 84, 72, 68, 65, 217, 66, 73, 82, 71, 65, - 128, 66, 73, 82, 71, 193, 66, 73, 82, 68, 128, 66, 73, 79, 72, 65, 90, - 65, 82, 196, 66, 73, 78, 79, 86, 73, 76, 69, 128, 66, 73, 78, 79, 67, 85, - 76, 65, 210, 66, 73, 78, 68, 73, 78, 199, 66, 73, 78, 68, 73, 128, 66, - 73, 78, 65, 82, 217, 66, 73, 76, 76, 73, 79, 78, 83, 128, 66, 73, 76, 76, - 73, 65, 82, 68, 83, 128, 66, 73, 76, 76, 69, 196, 66, 73, 76, 65, 66, 73, - 65, 204, 66, 73, 75, 73, 78, 73, 128, 66, 73, 71, 128, 66, 73, 199, 66, - 73, 69, 84, 128, 66, 73, 68, 69, 78, 84, 65, 204, 66, 73, 68, 65, 75, 85, - 79, 206, 66, 73, 67, 89, 67, 76, 73, 83, 84, 128, 66, 73, 67, 89, 67, 76, - 69, 83, 128, 66, 73, 67, 89, 67, 76, 69, 128, 66, 73, 67, 69, 80, 83, - 128, 66, 73, 66, 76, 69, 45, 67, 82, 69, 197, 66, 73, 66, 128, 66, 201, - 66, 72, 85, 128, 66, 72, 79, 79, 128, 66, 72, 79, 128, 66, 72, 73, 128, - 66, 72, 69, 84, 72, 128, 66, 72, 69, 69, 128, 66, 72, 69, 128, 66, 72, - 65, 84, 84, 73, 80, 82, 79, 76, 213, 66, 72, 65, 77, 128, 66, 72, 65, 73, - 75, 83, 85, 75, 201, 66, 72, 65, 65, 128, 66, 72, 65, 128, 66, 69, 89, - 89, 65, 76, 128, 66, 69, 88, 128, 66, 69, 86, 69, 82, 65, 71, 69, 128, - 66, 69, 86, 69, 82, 65, 71, 197, 66, 69, 84, 87, 69, 69, 78, 128, 66, 69, - 84, 87, 69, 69, 206, 66, 69, 84, 72, 128, 66, 69, 84, 65, 128, 66, 69, - 84, 193, 66, 69, 212, 66, 69, 83, 73, 68, 197, 66, 69, 82, 75, 65, 78, - 65, 206, 66, 69, 82, 66, 69, 210, 66, 69, 80, 128, 66, 69, 79, 82, 195, - 66, 69, 78, 90, 69, 78, 197, 66, 69, 78, 84, 207, 66, 69, 78, 84, 128, - 66, 69, 78, 212, 66, 69, 78, 71, 65, 76, 201, 66, 69, 78, 68, 69, 128, - 66, 69, 78, 68, 128, 66, 69, 78, 196, 66, 69, 206, 66, 69, 76, 84, 128, - 66, 69, 76, 212, 66, 69, 76, 79, 215, 66, 69, 76, 76, 72, 79, 208, 66, - 69, 76, 76, 128, 66, 69, 76, 204, 66, 69, 76, 71, 84, 72, 79, 210, 66, - 69, 73, 84, 72, 128, 66, 69, 72, 73, 78, 196, 66, 69, 72, 69, 72, 128, - 66, 69, 72, 69, 200, 66, 69, 72, 128, 66, 69, 200, 66, 69, 71, 73, 78, - 78, 73, 78, 71, 128, 66, 69, 71, 73, 78, 78, 69, 82, 128, 66, 69, 71, 73, + 73, 78, 69, 82, 128, 67, 79, 78, 74, 79, 73, 78, 69, 68, 128, 67, 79, 78, + 74, 79, 73, 78, 69, 196, 67, 79, 78, 73, 67, 65, 204, 67, 79, 78, 71, 82, + 85, 69, 78, 212, 67, 79, 78, 71, 82, 65, 84, 85, 76, 65, 84, 73, 79, 78, + 128, 67, 79, 78, 70, 85, 83, 69, 196, 67, 79, 78, 70, 79, 85, 78, 68, 69, + 196, 67, 79, 78, 70, 76, 73, 67, 84, 128, 67, 79, 78, 70, 69, 84, 84, + 201, 67, 79, 78, 67, 65, 86, 69, 45, 83, 73, 68, 69, 196, 67, 79, 78, 67, + 65, 86, 69, 45, 80, 79, 73, 78, 84, 69, 196, 67, 79, 77, 80, 85, 84, 69, + 82, 83, 128, 67, 79, 77, 80, 85, 84, 69, 82, 128, 67, 79, 77, 80, 82, 69, + 83, 83, 73, 79, 78, 128, 67, 79, 77, 80, 82, 69, 83, 83, 69, 196, 67, 79, + 77, 80, 79, 83, 73, 84, 73, 79, 78, 128, 67, 79, 77, 80, 79, 83, 73, 84, + 73, 79, 206, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 54, 56, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 54, 55, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 55, 54, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 55, 54, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 54, 52, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 54, 51, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 55, 54, 50, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 55, 54, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, + 54, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 53, 57, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 53, 56, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 55, 53, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 55, 53, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 53, 53, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 53, 52, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 55, 53, 51, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 55, 53, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, + 53, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 53, 48, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 52, 57, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 55, 52, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 55, 52, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 52, 54, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 52, 53, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 55, 52, 52, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 55, 52, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, + 52, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 52, 49, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 52, 48, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 55, 51, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 55, 51, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 51, 55, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 51, 54, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 55, 51, 53, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 55, 51, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, + 51, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 51, 50, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 51, 49, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 55, 51, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 55, 50, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 50, 56, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 50, 55, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 55, 50, 54, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 55, 50, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, + 50, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 50, 51, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 50, 50, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 55, 50, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 55, 50, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 49, 57, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 49, 56, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 55, 49, 55, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 55, 49, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, + 49, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 49, 52, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 49, 51, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 55, 49, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 55, 49, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 49, 48, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 48, 57, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 55, 48, 56, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 55, 48, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, + 48, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 48, 53, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 48, 52, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 55, 48, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 55, 48, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 48, 49, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 48, 48, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 54, 57, 57, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 54, 57, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, + 57, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 57, 54, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 57, 53, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 54, 57, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 54, 57, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 57, 50, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 57, 49, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 54, 57, 48, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 54, 56, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, + 56, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 56, 55, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 56, 54, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 54, 56, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 54, 56, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 56, 51, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 56, 50, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 54, 56, 49, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 54, 56, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, + 55, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 55, 56, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 55, 55, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 54, 55, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 54, 55, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 55, 52, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 55, 51, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 54, 55, 50, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 54, 55, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, + 55, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 54, 57, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 54, 56, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 54, 54, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 54, 54, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 54, 53, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 54, 52, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 54, 54, 51, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 54, 54, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, + 54, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 54, 48, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 53, 57, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 54, 53, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 54, 53, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 53, 54, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 53, 53, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 54, 53, 52, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 54, 53, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, + 53, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 53, 49, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 53, 48, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 54, 52, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 54, 52, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 52, 55, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 52, 54, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 54, 52, 53, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 54, 52, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, + 52, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 52, 50, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 52, 49, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 54, 52, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 54, 51, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 51, 56, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 51, 55, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 54, 51, 54, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 54, 51, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, + 51, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 51, 51, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 51, 50, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 54, 51, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 54, 51, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 50, 57, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 50, 56, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 54, 50, 55, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 54, 50, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, + 50, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 50, 52, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 50, 51, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 54, 50, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 54, 50, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 50, 48, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 49, 57, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 54, 49, 56, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 54, 49, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, + 49, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 49, 53, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 49, 52, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 54, 49, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 54, 49, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 49, 49, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 49, 48, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 54, 48, 57, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 54, 48, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, + 48, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 48, 54, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 48, 53, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 54, 48, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 54, 48, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 48, 50, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 48, 49, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 54, 48, 48, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 53, 57, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, + 57, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 57, 55, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 57, 54, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 53, 57, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 53, 57, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 57, 51, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 57, 50, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 53, 57, 49, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 53, 57, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, + 56, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 56, 56, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 56, 55, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 53, 56, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 53, 56, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 56, 52, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 56, 51, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 53, 56, 50, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 53, 56, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, + 56, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 55, 57, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 55, 56, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 53, 55, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 53, 55, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 55, 53, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 55, 52, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 53, 55, 51, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 53, 55, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, + 55, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 55, 48, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 54, 57, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 53, 54, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 53, 54, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 54, 54, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 54, 53, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 53, 54, 52, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 53, 54, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, + 54, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 54, 49, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 54, 48, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 53, 53, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 53, 53, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 53, 55, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 53, 54, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 53, 53, 53, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 53, 53, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, + 53, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 53, 50, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 53, 49, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 53, 53, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 53, 52, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 52, 56, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 52, 55, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 53, 52, 54, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 53, 52, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, + 52, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 52, 51, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 52, 50, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 53, 52, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 53, 52, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 51, 57, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 51, 56, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 53, 51, 55, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 53, 51, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, + 51, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 51, 52, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 51, 51, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 53, 51, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 53, 51, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 51, 48, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 50, 57, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 53, 50, 56, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 53, 50, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, + 50, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 50, 53, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 50, 52, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 53, 50, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 53, 50, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 50, 49, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 50, 48, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 53, 49, 57, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 53, 49, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, + 49, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 49, 54, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 49, 53, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 53, 49, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 53, 49, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 49, 50, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 49, 49, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 53, 49, 48, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 53, 48, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, + 48, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 48, 55, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 48, 54, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 53, 48, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 53, 48, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 48, 51, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 48, 50, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 53, 48, 49, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 53, 48, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, + 57, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 57, 56, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 57, 55, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 52, 57, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 52, 57, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 57, 52, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 57, 51, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 52, 57, 50, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 52, 57, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, + 57, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 56, 57, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 56, 56, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 52, 56, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 52, 56, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 56, 53, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 56, 52, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 52, 56, 51, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 52, 56, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, + 56, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 56, 48, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 55, 57, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 52, 55, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 52, 55, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 55, 54, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 55, 53, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 52, 55, 52, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 52, 55, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, + 55, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 55, 49, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 55, 48, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 52, 54, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 52, 54, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 54, 55, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 54, 54, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 52, 54, 53, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 52, 54, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, + 54, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 54, 50, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 54, 49, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 52, 54, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 52, 53, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 53, 56, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 53, 55, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 52, 53, 54, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 52, 53, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, + 53, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 53, 51, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 53, 50, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 52, 53, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 52, 53, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 52, 57, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 52, 56, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 52, 52, 55, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 52, 52, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, + 52, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 52, 52, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 52, 51, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 52, 52, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 52, 52, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 52, 48, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 51, 57, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 52, 51, 56, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 52, 51, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, + 51, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 51, 53, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 51, 52, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 52, 51, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 52, 51, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 51, 49, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 51, 48, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 52, 50, 57, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 52, 50, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, + 50, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 50, 54, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 50, 53, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 52, 50, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 52, 50, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 50, 50, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 50, 49, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 52, 50, 48, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 52, 49, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, + 49, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 49, 55, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 49, 54, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 52, 49, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 52, 49, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 49, 51, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 49, 50, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 52, 49, 49, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 52, 49, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, + 48, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 48, 56, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 48, 55, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 52, 48, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 52, 48, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 48, 52, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 48, 51, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 52, 48, 50, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 52, 48, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, + 48, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 57, 57, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 57, 56, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 51, 57, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 51, 57, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 57, 53, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 57, 52, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 51, 57, 51, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 51, 57, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, + 57, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 57, 48, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 56, 57, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 51, 56, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 51, 56, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 56, 54, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 56, 53, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 51, 56, 52, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 51, 56, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, + 56, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 56, 49, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 56, 48, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 51, 55, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 51, 55, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 55, 55, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 55, 54, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 51, 55, 53, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 51, 55, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, + 55, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 55, 50, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 55, 49, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 51, 55, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 51, 54, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 54, 56, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 54, 55, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 51, 54, 54, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 51, 54, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, + 54, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 54, 51, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 54, 50, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 51, 54, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 51, 54, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 53, 57, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 53, 56, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 51, 53, 55, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 51, 53, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, + 53, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 53, 52, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 53, 51, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 51, 53, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 51, 53, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 53, 48, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 52, 57, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 51, 52, 56, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 51, 52, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, + 52, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 52, 53, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 52, 52, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 51, 52, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 51, 52, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 52, 49, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 52, 48, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 51, 51, 57, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 51, 51, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, + 51, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 51, 54, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 51, 53, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 51, 51, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 51, 51, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 51, 50, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 51, 49, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 51, 51, 48, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 51, 50, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, + 50, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 50, 55, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 50, 54, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 51, 50, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 51, 50, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 50, 51, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 50, 50, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 51, 50, 49, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 51, 50, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, + 49, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 49, 56, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 49, 55, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 51, 49, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 51, 49, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 49, 52, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 49, 51, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 51, 49, 50, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 51, 49, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, + 49, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 48, 57, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 48, 56, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 51, 48, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 51, 48, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 48, 53, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 48, 52, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 51, 48, 51, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 51, 48, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, + 48, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 48, 48, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 57, 57, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 50, 57, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 50, 57, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 57, 54, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 57, 53, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 50, 57, 52, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 50, 57, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, + 57, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 57, 49, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 57, 48, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 50, 56, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 50, 56, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 56, 55, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 56, 54, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 50, 56, 53, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 50, 56, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, + 56, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 56, 50, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 56, 49, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 50, 56, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 50, 55, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 55, 56, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 55, 55, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 50, 55, 54, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 50, 55, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, + 55, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 55, 51, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 55, 50, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 50, 55, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 50, 55, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 54, 57, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 54, 56, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 50, 54, 55, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 50, 54, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, + 54, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 54, 52, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 54, 51, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 50, 54, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 50, 54, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 54, 48, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 53, 57, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 50, 53, 56, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 50, 53, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, + 53, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 53, 53, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 53, 52, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 50, 53, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 50, 53, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 53, 49, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 53, 48, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 50, 52, 57, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 50, 52, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, + 52, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 52, 54, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 52, 53, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 50, 52, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 50, 52, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 52, 50, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 52, 49, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 50, 52, 48, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 50, 51, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, + 51, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 51, 55, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 51, 54, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 50, 51, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 50, 51, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 51, 51, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 51, 50, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 50, 51, 49, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 50, 51, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, + 50, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 50, 56, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 50, 55, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 50, 50, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 50, 50, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 50, 52, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 50, 51, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 50, 50, 50, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 50, 50, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, + 50, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 49, 57, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 49, 56, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 50, 49, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 50, 49, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 49, 53, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 49, 52, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 50, 49, 51, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 50, 49, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, + 49, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 49, 48, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 48, 57, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 50, 48, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 50, 48, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 48, 54, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 48, 53, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 50, 48, 52, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 50, 48, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, + 48, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 48, 49, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 48, 48, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 49, 57, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 49, 57, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 57, 55, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 57, 54, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 49, 57, 53, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 49, 57, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, + 57, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 57, 50, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 57, 49, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 49, 57, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 49, 56, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 56, 56, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 56, 55, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 49, 56, 54, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 49, 56, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, + 56, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 56, 51, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 56, 50, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 49, 56, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 49, 56, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 55, 57, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 55, 56, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 49, 55, 55, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 49, 55, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, + 55, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 55, 52, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 55, 51, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 49, 55, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 49, 55, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 55, 48, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 54, 57, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 49, 54, 56, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 49, 54, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, + 54, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 54, 53, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 54, 52, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 49, 54, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 49, 54, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 54, 49, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 54, 48, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 49, 53, 57, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 49, 53, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, + 53, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 53, 54, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 53, 53, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 49, 53, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 49, 53, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 53, 50, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 53, 49, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 49, 53, 48, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 49, 52, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, + 52, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 52, 55, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 52, 54, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 49, 52, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 49, 52, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 52, 51, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 52, 50, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 49, 52, 49, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 49, 52, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, + 51, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 51, 56, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 51, 55, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 49, 51, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 49, 51, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 51, 52, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 51, 51, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 49, 51, 50, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 49, 51, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, + 51, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 50, 57, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 50, 56, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 49, 50, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 49, 50, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 50, 53, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 50, 52, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 49, 50, 51, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 49, 50, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, + 50, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 50, 48, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 49, 57, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 49, 49, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 49, 49, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 49, 54, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 49, 53, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 49, 49, 52, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 49, 49, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, + 49, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 49, 49, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 49, 48, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 49, 48, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 49, 48, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 48, 55, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 48, 54, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 49, 48, 53, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 49, 48, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, + 48, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 48, 50, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 48, 49, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 49, 48, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 48, 57, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 57, 56, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 57, 55, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 48, 57, 54, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 48, 57, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, + 57, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 57, 51, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 57, 50, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 48, 57, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 48, 57, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 56, 57, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 56, 56, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 48, 56, 55, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 48, 56, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, + 56, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 56, 52, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 56, 51, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 48, 56, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 48, 56, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 56, 48, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 55, 57, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 48, 55, 56, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 48, 55, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, + 55, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 55, 53, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 55, 52, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 48, 55, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 48, 55, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 55, 49, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 55, 48, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 48, 54, 57, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 48, 54, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, + 54, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 54, 54, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 54, 53, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 48, 54, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 48, 54, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 54, 50, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 54, 49, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 48, 54, 48, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 48, 53, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, + 53, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 53, 55, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 53, 54, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 48, 53, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 48, 53, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 53, 51, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 53, 50, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 48, 53, 49, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 48, 53, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, + 52, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 52, 56, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 52, 55, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 48, 52, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 48, 52, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 52, 52, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 52, 51, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 48, 52, 50, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 48, 52, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, + 52, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 51, 57, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 51, 56, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 48, 51, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 48, 51, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 51, 53, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 51, 52, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 48, 51, 51, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 48, 51, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, + 51, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 51, 48, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 50, 57, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 48, 50, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 48, 50, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 50, 54, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 50, 53, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 48, 50, 52, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 48, 50, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, + 50, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 50, 49, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 50, 48, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 48, 49, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 48, 49, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 49, 55, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 49, 54, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 48, 49, 53, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 48, 49, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, + 49, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 49, 50, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 49, 49, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 48, 49, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, + 45, 48, 48, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 48, 56, + 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 48, 55, 128, 67, 79, 77, + 80, 79, 78, 69, 78, 84, 45, 48, 48, 54, 128, 67, 79, 77, 80, 79, 78, 69, + 78, 84, 45, 48, 48, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, + 48, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 48, 51, 128, 67, + 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 48, 50, 128, 67, 79, 77, 80, 79, + 78, 69, 78, 84, 45, 48, 48, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 212, + 67, 79, 77, 80, 76, 73, 65, 78, 67, 69, 128, 67, 79, 77, 80, 76, 69, 84, + 73, 79, 78, 128, 67, 79, 77, 80, 76, 69, 84, 69, 68, 128, 67, 79, 77, 80, + 76, 69, 77, 69, 78, 84, 128, 67, 79, 77, 80, 65, 83, 83, 128, 67, 79, 77, + 80, 65, 82, 69, 128, 67, 79, 77, 77, 79, 206, 67, 79, 77, 77, 69, 82, 67, + 73, 65, 204, 67, 79, 77, 77, 65, 78, 68, 128, 67, 79, 77, 77, 65, 128, + 67, 79, 77, 77, 193, 67, 79, 77, 69, 84, 128, 67, 79, 77, 66, 73, 78, 69, + 68, 128, 67, 79, 77, 66, 73, 78, 65, 84, 73, 79, 78, 128, 67, 79, 77, 66, + 128, 67, 79, 76, 85, 77, 78, 128, 67, 79, 76, 79, 82, 128, 67, 79, 76, + 76, 73, 83, 73, 79, 206, 67, 79, 76, 76, 128, 67, 79, 76, 196, 67, 79, + 73, 78, 128, 67, 79, 70, 70, 73, 78, 128, 67, 79, 69, 78, 71, 128, 67, + 79, 69, 78, 199, 67, 79, 68, 65, 128, 67, 79, 67, 79, 78, 85, 84, 128, + 67, 79, 67, 75, 84, 65, 73, 204, 67, 79, 67, 75, 82, 79, 65, 67, 72, 128, + 67, 79, 65, 84, 128, 67, 79, 65, 83, 84, 69, 82, 128, 67, 79, 65, 128, + 67, 77, 51, 48, 50, 128, 67, 77, 51, 48, 49, 128, 67, 77, 49, 49, 52, + 128, 67, 77, 49, 49, 50, 128, 67, 77, 49, 49, 48, 128, 67, 77, 49, 48, + 57, 128, 67, 77, 49, 48, 56, 128, 67, 77, 49, 48, 55, 128, 67, 77, 49, + 48, 53, 128, 67, 77, 49, 48, 52, 128, 67, 77, 49, 48, 51, 128, 67, 77, + 49, 48, 50, 128, 67, 77, 49, 48, 49, 128, 67, 77, 49, 48, 48, 128, 67, + 77, 48, 57, 57, 128, 67, 77, 48, 57, 56, 128, 67, 77, 48, 57, 55, 128, + 67, 77, 48, 57, 54, 128, 67, 77, 48, 57, 53, 128, 67, 77, 48, 57, 52, + 128, 67, 77, 48, 57, 50, 128, 67, 77, 48, 57, 49, 128, 67, 77, 48, 57, + 48, 128, 67, 77, 48, 56, 57, 128, 67, 77, 48, 56, 56, 128, 67, 77, 48, + 56, 55, 128, 67, 77, 48, 56, 54, 128, 67, 77, 48, 56, 53, 128, 67, 77, + 48, 56, 52, 128, 67, 77, 48, 56, 51, 128, 67, 77, 48, 56, 50, 128, 67, + 77, 48, 56, 49, 128, 67, 77, 48, 56, 48, 128, 67, 77, 48, 55, 57, 128, + 67, 77, 48, 55, 56, 128, 67, 77, 48, 55, 54, 128, 67, 77, 48, 55, 53, 66, + 128, 67, 77, 48, 55, 53, 128, 67, 77, 48, 55, 52, 128, 67, 77, 48, 55, + 51, 128, 67, 77, 48, 55, 50, 128, 67, 77, 48, 55, 49, 128, 67, 77, 48, + 55, 48, 128, 67, 77, 48, 54, 57, 128, 67, 77, 48, 54, 56, 128, 67, 77, + 48, 54, 55, 128, 67, 77, 48, 54, 54, 128, 67, 77, 48, 54, 52, 128, 67, + 77, 48, 54, 51, 128, 67, 77, 48, 54, 50, 128, 67, 77, 48, 54, 49, 128, + 67, 77, 48, 54, 48, 128, 67, 77, 48, 53, 57, 128, 67, 77, 48, 53, 56, + 128, 67, 77, 48, 53, 54, 128, 67, 77, 48, 53, 53, 128, 67, 77, 48, 53, + 52, 128, 67, 77, 48, 53, 51, 128, 67, 77, 48, 53, 50, 128, 67, 77, 48, + 53, 49, 128, 67, 77, 48, 53, 48, 128, 67, 77, 48, 52, 57, 128, 67, 77, + 48, 52, 55, 128, 67, 77, 48, 52, 54, 128, 67, 77, 48, 52, 52, 128, 67, + 77, 48, 52, 49, 128, 67, 77, 48, 52, 48, 128, 67, 77, 48, 51, 57, 128, + 67, 77, 48, 51, 56, 128, 67, 77, 48, 51, 55, 128, 67, 77, 48, 51, 54, + 128, 67, 77, 48, 51, 53, 128, 67, 77, 48, 51, 52, 128, 67, 77, 48, 51, + 51, 128, 67, 77, 48, 51, 48, 128, 67, 77, 48, 50, 57, 128, 67, 77, 48, + 50, 56, 128, 67, 77, 48, 50, 55, 128, 67, 77, 48, 50, 54, 128, 67, 77, + 48, 50, 53, 128, 67, 77, 48, 50, 52, 128, 67, 77, 48, 50, 51, 128, 67, + 77, 48, 50, 49, 128, 67, 77, 48, 49, 57, 128, 67, 77, 48, 49, 55, 128, + 67, 77, 48, 49, 53, 128, 67, 77, 48, 49, 51, 128, 67, 77, 48, 49, 50, 66, + 128, 67, 77, 48, 49, 50, 128, 67, 77, 48, 49, 49, 128, 67, 77, 48, 49, + 48, 128, 67, 77, 48, 48, 57, 128, 67, 77, 48, 48, 56, 128, 67, 77, 48, + 48, 55, 128, 67, 77, 48, 48, 54, 128, 67, 77, 48, 48, 53, 128, 67, 77, + 48, 48, 52, 128, 67, 77, 48, 48, 50, 128, 67, 77, 48, 48, 49, 128, 67, + 77, 128, 67, 205, 67, 76, 85, 83, 84, 69, 82, 45, 73, 78, 73, 84, 73, 65, + 204, 67, 76, 85, 83, 84, 69, 82, 45, 70, 73, 78, 65, 204, 67, 76, 85, 83, + 84, 69, 210, 67, 76, 85, 66, 83, 128, 67, 76, 85, 66, 45, 83, 80, 79, 75, + 69, 196, 67, 76, 85, 66, 128, 67, 76, 85, 194, 67, 76, 79, 87, 206, 67, + 76, 79, 86, 69, 82, 128, 67, 76, 79, 85, 68, 128, 67, 76, 79, 85, 196, + 67, 76, 79, 84, 72, 69, 83, 128, 67, 76, 79, 84, 72, 128, 67, 76, 79, 83, + 69, 84, 128, 67, 76, 79, 83, 69, 78, 69, 83, 83, 128, 67, 76, 79, 83, 69, + 68, 128, 67, 76, 79, 83, 197, 67, 76, 79, 67, 75, 87, 73, 83, 197, 67, + 76, 79, 67, 203, 67, 76, 73, 86, 73, 83, 128, 67, 76, 73, 80, 66, 79, 65, + 82, 68, 128, 67, 76, 73, 78, 75, 73, 78, 199, 67, 76, 73, 78, 71, 73, 78, + 199, 67, 76, 73, 77, 66, 73, 78, 71, 128, 67, 76, 73, 77, 65, 67, 85, 83, + 128, 67, 76, 73, 70, 70, 128, 67, 76, 73, 67, 75, 128, 67, 76, 73, 67, + 203, 67, 76, 69, 70, 45, 50, 128, 67, 76, 69, 70, 45, 49, 128, 67, 76, + 69, 70, 128, 67, 76, 69, 198, 67, 76, 69, 65, 86, 69, 82, 128, 67, 76, + 69, 65, 210, 67, 76, 65, 83, 83, 73, 67, 65, 204, 67, 76, 65, 80, 80, 73, + 78, 199, 67, 76, 65, 80, 80, 69, 210, 67, 76, 65, 78, 128, 67, 76, 65, + 206, 67, 76, 65, 77, 83, 72, 69, 76, 204, 67, 76, 65, 73, 77, 128, 67, + 76, 128, 67, 73, 88, 128, 67, 73, 86, 73, 76, 73, 65, 78, 128, 67, 73, + 84, 89, 83, 67, 65, 80, 69, 128, 67, 73, 84, 89, 83, 67, 65, 80, 197, 67, + 73, 84, 201, 67, 73, 84, 65, 84, 73, 79, 206, 67, 73, 84, 128, 67, 73, + 82, 67, 85, 211, 67, 73, 82, 67, 85, 77, 70, 76, 69, 88, 128, 67, 73, 82, + 67, 85, 77, 70, 76, 69, 216, 67, 73, 82, 67, 85, 76, 65, 84, 73, 79, 206, + 67, 73, 82, 67, 76, 73, 78, 71, 128, 67, 73, 82, 67, 76, 73, 78, 199, 67, + 73, 82, 67, 76, 69, 83, 128, 67, 73, 82, 67, 76, 69, 211, 67, 73, 82, 67, + 76, 69, 68, 128, 67, 73, 80, 128, 67, 73, 78, 78, 65, 66, 65, 82, 128, + 67, 73, 78, 69, 77, 65, 128, 67, 73, 206, 67, 73, 77, 128, 67, 73, 205, + 67, 73, 73, 128, 67, 73, 69, 88, 128, 67, 73, 69, 85, 67, 45, 83, 83, 65, + 78, 71, 80, 73, 69, 85, 80, 128, 67, 73, 69, 85, 67, 45, 80, 73, 69, 85, + 80, 128, 67, 73, 69, 85, 67, 45, 73, 69, 85, 78, 71, 128, 67, 73, 69, 85, + 195, 67, 73, 69, 84, 128, 67, 73, 69, 80, 128, 67, 73, 69, 128, 67, 72, + 89, 88, 128, 67, 72, 89, 84, 128, 67, 72, 89, 82, 88, 128, 67, 72, 89, + 82, 128, 67, 72, 89, 80, 128, 67, 72, 87, 86, 128, 67, 72, 85, 88, 128, + 67, 72, 85, 82, 88, 128, 67, 72, 85, 82, 67, 72, 128, 67, 72, 85, 82, + 128, 67, 72, 85, 80, 128, 67, 72, 85, 79, 88, 128, 67, 72, 85, 79, 84, + 128, 67, 72, 85, 79, 80, 128, 67, 72, 85, 79, 128, 67, 72, 85, 76, 65, + 128, 67, 72, 85, 128, 67, 72, 82, 89, 83, 65, 78, 84, 72, 69, 77, 85, 77, + 128, 67, 72, 82, 79, 78, 79, 85, 128, 67, 72, 82, 79, 78, 79, 78, 128, + 67, 72, 82, 79, 77, 193, 67, 72, 82, 79, 193, 67, 72, 82, 73, 86, 73, + 128, 67, 72, 82, 73, 83, 84, 77, 65, 83, 128, 67, 72, 82, 73, 83, 84, 77, + 65, 211, 67, 72, 79, 89, 128, 67, 72, 79, 88, 128, 67, 72, 79, 84, 128, + 67, 72, 79, 82, 69, 86, 77, 193, 67, 72, 79, 82, 65, 83, 77, 73, 65, 206, + 67, 72, 79, 80, 83, 84, 73, 67, 75, 83, 128, 67, 72, 79, 80, 128, 67, 72, + 79, 75, 69, 128, 67, 72, 79, 69, 128, 67, 72, 79, 67, 79, 76, 65, 84, + 197, 67, 72, 79, 65, 128, 67, 72, 73, 84, 85, 69, 85, 77, 83, 83, 65, 78, + 71, 83, 73, 79, 83, 128, 67, 72, 73, 84, 85, 69, 85, 77, 83, 83, 65, 78, + 71, 67, 73, 69, 85, 67, 128, 67, 72, 73, 84, 85, 69, 85, 77, 83, 73, 79, + 83, 128, 67, 72, 73, 84, 85, 69, 85, 77, 67, 73, 69, 85, 67, 128, 67, 72, + 73, 84, 85, 69, 85, 77, 67, 72, 73, 69, 85, 67, 72, 128, 67, 72, 73, 82, + 79, 78, 128, 67, 72, 73, 82, 69, 84, 128, 67, 72, 73, 80, 77, 85, 78, 75, + 128, 67, 72, 73, 78, 79, 79, 203, 67, 72, 73, 78, 71, 128, 67, 72, 73, + 78, 69, 83, 197, 67, 72, 73, 78, 128, 67, 72, 73, 77, 69, 128, 67, 72, + 73, 77, 128, 67, 72, 73, 76, 76, 213, 67, 72, 73, 76, 68, 82, 69, 206, + 67, 72, 73, 76, 68, 128, 67, 72, 73, 76, 128, 67, 72, 73, 75, 201, 67, + 72, 73, 69, 85, 67, 72, 45, 75, 72, 73, 69, 85, 75, 72, 128, 67, 72, 73, + 69, 85, 67, 72, 45, 72, 73, 69, 85, 72, 128, 67, 72, 73, 69, 85, 67, 200, + 67, 72, 73, 67, 75, 69, 78, 128, 67, 72, 73, 67, 75, 128, 67, 72, 73, + 128, 67, 72, 201, 67, 72, 72, 73, 77, 128, 67, 72, 72, 65, 128, 67, 72, + 69, 88, 128, 67, 72, 69, 86, 82, 79, 78, 128, 67, 72, 69, 86, 82, 79, + 206, 67, 72, 69, 84, 128, 67, 72, 69, 83, 84, 78, 85, 84, 128, 67, 72, + 69, 83, 84, 128, 67, 72, 69, 83, 211, 67, 72, 69, 82, 89, 128, 67, 72, + 69, 82, 82, 217, 67, 72, 69, 82, 82, 73, 69, 83, 128, 67, 72, 69, 81, 85, + 69, 82, 69, 196, 67, 72, 69, 80, 128, 67, 72, 69, 76, 89, 85, 83, 84, 75, + 65, 128, 67, 72, 69, 76, 78, 85, 128, 67, 72, 69, 73, 78, 65, 80, 128, + 67, 72, 69, 73, 75, 72, 69, 73, 128, 67, 72, 69, 73, 75, 72, 65, 78, 128, + 67, 72, 69, 69, 83, 197, 67, 72, 69, 69, 82, 73, 78, 199, 67, 72, 69, 69, + 77, 128, 67, 72, 69, 69, 75, 211, 67, 72, 69, 69, 75, 128, 67, 72, 69, + 69, 128, 67, 72, 69, 67, 75, 69, 210, 67, 72, 69, 67, 75, 128, 67, 72, + 69, 67, 203, 67, 72, 197, 67, 72, 65, 88, 128, 67, 72, 65, 86, 73, 89, + 65, 78, 73, 128, 67, 72, 65, 84, 84, 65, 87, 65, 128, 67, 72, 65, 84, + 128, 67, 72, 65, 83, 72, 75, 65, 128, 67, 72, 65, 83, 72, 75, 193, 67, + 72, 65, 82, 84, 128, 67, 72, 65, 82, 212, 67, 72, 65, 82, 73, 79, 84, + 128, 67, 72, 65, 82, 73, 79, 212, 67, 72, 65, 82, 65, 67, 84, 69, 82, 83, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 70, 66, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 70, 65, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 70, 57, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 70, 56, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 70, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 70, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 70, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 70, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 70, 51, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 70, 50, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 70, 49, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 70, 48, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 69, 70, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 69, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 69, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 69, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 69, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 69, 65, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 69, 57, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 69, 56, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 69, 55, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 69, 54, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 69, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 69, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 69, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 69, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 69, 49, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 69, 48, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 68, 70, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 68, 69, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 68, 68, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 68, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 68, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 68, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 68, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 68, 56, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 68, 55, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 68, 54, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 68, 53, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 68, 52, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 68, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 68, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 68, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 68, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 67, 70, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 67, 69, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 67, 68, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 67, 67, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 67, 66, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 67, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 67, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 67, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 67, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 67, 54, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 67, 53, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 67, 52, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 67, 51, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 67, 50, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 67, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 67, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 66, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 66, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 66, 68, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 66, 67, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 66, 66, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 66, 65, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 66, 57, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 66, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 66, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 66, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 66, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 66, 52, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 66, 51, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 66, 50, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 66, 49, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 66, 48, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 65, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 65, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 65, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 65, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 65, 66, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 65, 65, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 65, 57, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 65, 56, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 65, 55, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 65, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 65, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 65, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 65, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 65, 50, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 65, 49, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 65, 48, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 57, 70, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 57, 69, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 57, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 57, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 57, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 57, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 57, 57, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 57, 56, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 57, 55, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 57, 54, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 57, 53, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 57, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 57, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 57, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 57, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 57, 48, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 56, 70, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 56, 69, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 56, 68, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 56, 67, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 56, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 56, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 56, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 56, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 56, 55, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 56, 54, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 56, 53, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 56, 52, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 56, 51, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 56, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 56, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 56, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 55, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 55, 69, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 55, 68, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 55, 67, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 55, 66, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 55, 65, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 55, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 55, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 55, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 55, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 55, 53, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 55, 52, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 55, 51, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 55, 50, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 55, 49, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 55, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 54, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 54, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 54, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 54, 67, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 54, 66, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 54, 65, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 54, 57, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 54, 56, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 54, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 54, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 54, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 54, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 54, 51, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 54, 50, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 54, 49, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 54, 48, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 53, 70, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 53, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 53, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 53, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 53, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 53, 65, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 53, 57, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 53, 56, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 53, 55, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 53, 54, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 53, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 53, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 53, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 53, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 53, 49, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 53, 48, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 52, 70, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 52, 69, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 52, 68, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 52, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 52, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 52, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 52, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 52, 56, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 52, 55, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 52, 54, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 52, 53, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 52, 52, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 52, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 52, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 52, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 52, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 51, 70, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 51, 69, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 51, 68, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 51, 67, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 51, 66, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 51, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 51, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 51, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 51, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 51, 54, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 51, 53, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 51, 52, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 51, 51, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 51, 50, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 51, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 51, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 50, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 50, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 50, 68, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 50, 67, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 50, 66, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 50, 65, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 50, 57, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 50, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 50, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 50, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 50, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 50, 52, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 50, 51, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 50, 50, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 50, 49, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 50, 48, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 49, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 49, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 49, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 49, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 49, 66, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 49, 65, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 49, 57, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 49, 56, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 49, 55, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 49, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 49, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 49, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 49, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 49, 50, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 49, 49, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 49, 48, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 48, 70, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 48, 69, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 48, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 48, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 48, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 48, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 48, 57, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 48, 56, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 48, 55, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 48, 54, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 48, 53, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 48, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 48, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 48, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 48, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 48, 48, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 70, 70, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 70, 69, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 70, 68, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 49, 70, 67, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 49, 70, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 49, 70, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 49, 70, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, + 70, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 70, 55, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 70, 54, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 70, 53, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 70, 52, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 49, 70, 51, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 49, 70, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 49, 70, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 49, 70, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, + 69, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 69, 69, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 69, 68, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 69, 67, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 69, 66, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 49, 69, 65, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 49, 69, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 49, 69, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 49, 69, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, + 69, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 69, 53, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 69, 52, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 69, 51, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 69, 50, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 49, 69, 49, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 49, 69, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 49, 68, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 49, 68, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, + 68, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 68, 67, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 68, 66, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 68, 65, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 68, 57, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 49, 68, 56, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 49, 68, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 49, 68, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 49, 68, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, + 68, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 68, 51, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 68, 50, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 68, 49, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 68, 48, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 49, 67, 70, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 49, 67, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 49, 67, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 49, 67, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, + 67, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 67, 65, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 67, 57, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 67, 56, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 67, 55, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 49, 67, 54, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 49, 67, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 49, 67, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 49, 67, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, + 67, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 67, 49, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 67, 48, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 66, 70, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 66, 69, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 49, 66, 68, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 49, 66, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 49, 66, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 49, 66, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, + 66, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 66, 56, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 66, 55, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 66, 54, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 66, 53, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 49, 66, 52, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 49, 66, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 49, 66, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 49, 66, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, + 66, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 65, 70, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 65, 69, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 65, 68, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 65, 67, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 49, 65, 66, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 49, 65, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 49, 65, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 49, 65, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, + 65, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 65, 54, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 65, 53, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 65, 52, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 65, 51, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 49, 65, 50, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 49, 65, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 49, 65, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 49, 57, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, + 57, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 57, 68, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 57, 67, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 57, 66, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 57, 65, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 49, 57, 57, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 49, 57, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 49, 57, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 49, 57, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, + 57, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 57, 52, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 57, 51, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 57, 50, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 57, 49, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 49, 57, 48, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 49, 56, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 49, 56, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 49, 56, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, + 56, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 56, 66, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 56, 65, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 56, 57, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 56, 56, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 49, 56, 55, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 49, 56, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 49, 56, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 49, 56, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, + 56, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 56, 50, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 56, 49, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 56, 48, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 55, 70, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 49, 55, 69, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 49, 55, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 49, 55, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 49, 55, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, + 55, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 55, 57, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 55, 56, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 55, 55, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 55, 54, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 49, 55, 53, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 49, 55, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 49, 55, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 49, 55, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, + 55, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 55, 48, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 68, 53, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 68, 52, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 68, 51, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 68, 50, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 68, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 68, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 67, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 67, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 68, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 67, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 66, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 65, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 67, 57, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 67, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 67, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 67, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 67, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 52, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 51, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 50, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 49, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 67, 48, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 66, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 66, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 66, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 66, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 66, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 65, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 57, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 56, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 66, 55, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 66, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 66, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 66, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 66, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 50, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 49, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 48, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 70, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 65, 69, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 65, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 65, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 65, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 65, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 57, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 56, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 55, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 54, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 65, 53, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 65, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 65, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 65, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 65, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 48, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 70, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 69, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 68, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 57, 67, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 57, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 57, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 57, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 57, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 55, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 54, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 53, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 52, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 57, 51, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 57, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 57, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 57, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 56, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 69, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 68, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 67, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 66, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 56, 65, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 56, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 56, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 56, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 56, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 53, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 52, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 51, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 50, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 56, 49, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 56, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 55, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 55, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 55, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 67, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 66, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 65, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 57, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 55, 56, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 55, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 55, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 55, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 55, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 51, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 50, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 49, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 48, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 54, 70, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 54, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 54, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 54, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 54, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 65, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 57, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 56, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 55, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 54, 54, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 54, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 54, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 54, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 54, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 49, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 48, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 70, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 69, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 53, 68, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 53, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 53, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 53, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 53, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 56, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 55, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 54, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 53, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 53, 52, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 53, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 53, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 53, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 53, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 70, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 69, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 68, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 67, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 52, 66, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 52, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 52, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 52, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 52, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 54, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 53, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 52, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 51, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 52, 50, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 52, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 52, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 51, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 51, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 68, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 67, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 66, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 65, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 51, 57, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 51, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 51, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 51, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 51, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 52, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 51, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 50, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 49, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 51, 48, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 50, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 50, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 50, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 50, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 66, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 65, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 57, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 56, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 50, 55, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 50, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 50, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 50, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 50, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 50, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 49, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 48, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 70, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 49, 69, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 49, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 49, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 49, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 49, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 57, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 56, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 55, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 54, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 49, 53, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 49, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 49, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 49, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 49, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 48, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 70, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 69, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 68, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 48, 67, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 48, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 48, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 48, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 48, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 55, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 54, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 53, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 52, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 48, 51, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 48, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 48, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 48, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 70, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 69, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 68, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 67, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 66, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 70, 65, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 70, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 70, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 70, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 70, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 53, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 52, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 51, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 50, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 70, 49, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 70, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 69, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 69, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 69, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 67, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 66, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 65, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 57, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 69, 56, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 69, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 69, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 69, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 69, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 51, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 50, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 49, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 48, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 68, 70, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 68, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 68, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 68, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 68, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 65, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 57, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 56, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 55, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 68, 54, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 68, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 68, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 68, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 68, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 49, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 48, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 70, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 69, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 67, 68, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 67, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 67, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 67, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 67, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 56, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 55, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 54, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 53, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 67, 52, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 67, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 67, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 67, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 67, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 70, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 69, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 68, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 67, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 66, 66, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 66, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 66, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 66, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 66, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 54, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 53, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 52, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 51, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 66, 50, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 66, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 66, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 65, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 65, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 68, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 67, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 66, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 65, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 65, 57, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 65, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 65, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 65, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 65, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 52, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 51, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 50, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 49, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 65, 48, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 57, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 57, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 57, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 57, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 66, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 65, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 57, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 56, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 57, 55, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 57, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 57, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 57, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 57, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 50, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 49, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 48, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 70, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 56, 69, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 56, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 56, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 56, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 56, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 57, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 56, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 55, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 54, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 56, 53, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 56, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 56, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 56, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 56, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 48, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 70, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 69, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 68, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 55, 67, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 55, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 55, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 55, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 55, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 55, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 54, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 53, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 52, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 55, 51, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 55, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 55, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 55, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 54, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 69, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 68, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 67, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 66, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 54, 65, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 54, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 54, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 54, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 54, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 53, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 52, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 51, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 50, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 54, 49, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 54, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 53, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 53, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 53, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 67, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 66, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 65, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 57, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 53, 56, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 53, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 53, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 53, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 53, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 51, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 50, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 49, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 48, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 52, 70, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 52, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 52, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 52, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 52, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 65, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 57, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 56, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 55, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 52, 54, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 52, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 52, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 52, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 52, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 49, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 48, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 70, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 69, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 51, 68, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 51, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 51, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 51, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 51, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 56, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 55, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 54, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 53, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 51, 52, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 51, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 51, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 51, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 51, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 70, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 69, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 68, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 67, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 50, 66, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 50, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 50, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 50, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 50, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 54, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 53, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 52, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 51, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 50, 50, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 50, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 50, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 49, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 49, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 68, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 67, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 66, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 65, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 49, 57, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 49, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 49, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 49, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 49, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 52, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 51, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 50, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 49, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 49, 48, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 48, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 48, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 48, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 48, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 66, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 65, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 57, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 56, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 48, 55, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 48, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 48, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 48, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 48, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 50, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 49, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 48, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 128, 67, 72, 65, 82, 65, 67, 84, 69, 210, 67, 72, + 65, 82, 128, 67, 72, 65, 80, 84, 69, 82, 128, 67, 72, 65, 80, 128, 67, + 72, 65, 78, 71, 128, 67, 72, 65, 78, 128, 67, 72, 65, 77, 75, 79, 128, + 67, 72, 65, 77, 73, 76, 79, 78, 128, 67, 72, 65, 77, 73, 76, 73, 128, 67, + 72, 65, 205, 67, 72, 65, 75, 77, 193, 67, 72, 65, 73, 78, 83, 128, 67, + 72, 65, 68, 65, 128, 67, 72, 65, 196, 67, 72, 65, 65, 128, 67, 71, 74, + 128, 67, 69, 88, 128, 67, 69, 86, 73, 84, 85, 128, 67, 69, 82, 69, 83, + 128, 67, 69, 82, 69, 77, 79, 78, 89, 128, 67, 69, 82, 69, 75, 128, 67, + 69, 82, 45, 87, 65, 128, 67, 69, 80, 128, 67, 69, 79, 78, 71, 67, 72, 73, + 69, 85, 77, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 67, 69, 79, 78, 71, + 67, 72, 73, 69, 85, 77, 83, 83, 65, 78, 71, 67, 73, 69, 85, 67, 128, 67, + 69, 79, 78, 71, 67, 72, 73, 69, 85, 77, 83, 73, 79, 83, 128, 67, 69, 79, + 78, 71, 67, 72, 73, 69, 85, 77, 67, 73, 69, 85, 67, 128, 67, 69, 79, 78, + 71, 67, 72, 73, 69, 85, 77, 67, 72, 73, 69, 85, 67, 72, 128, 67, 69, 78, + 84, 85, 82, 73, 65, 204, 67, 69, 78, 84, 82, 69, 76, 73, 78, 197, 67, 69, + 78, 84, 82, 69, 68, 128, 67, 69, 78, 84, 82, 69, 196, 67, 69, 78, 84, 82, + 69, 128, 67, 69, 78, 84, 82, 197, 67, 69, 78, 84, 82, 65, 76, 73, 90, 65, + 84, 73, 79, 206, 67, 69, 78, 128, 67, 69, 76, 84, 73, 195, 67, 69, 76, + 83, 73, 85, 83, 128, 67, 69, 76, 69, 66, 82, 65, 84, 73, 79, 78, 128, 67, + 69, 73, 82, 84, 128, 67, 69, 73, 76, 73, 78, 71, 128, 67, 69, 73, 76, 73, + 78, 199, 67, 69, 69, 86, 128, 67, 69, 69, 66, 128, 67, 69, 69, 128, 67, + 69, 68, 73, 76, 76, 65, 128, 67, 69, 68, 73, 76, 76, 193, 67, 69, 68, + 201, 67, 69, 67, 69, 75, 128, 67, 69, 67, 65, 75, 128, 67, 69, 67, 65, + 203, 67, 69, 65, 76, 67, 128, 67, 67, 85, 128, 67, 67, 79, 128, 67, 67, + 73, 128, 67, 67, 72, 85, 128, 67, 67, 72, 79, 128, 67, 67, 72, 73, 128, + 67, 67, 72, 72, 85, 128, 67, 67, 72, 72, 79, 128, 67, 67, 72, 72, 73, + 128, 67, 67, 72, 72, 69, 69, 128, 67, 67, 72, 72, 69, 128, 67, 67, 72, + 72, 65, 65, 128, 67, 67, 72, 72, 65, 128, 67, 67, 72, 69, 69, 128, 67, + 67, 72, 69, 128, 67, 67, 72, 65, 65, 128, 67, 67, 72, 65, 128, 67, 67, + 72, 128, 67, 67, 69, 69, 128, 67, 67, 65, 65, 128, 67, 65, 89, 78, 128, + 67, 65, 89, 65, 78, 78, 65, 128, 67, 65, 88, 128, 67, 65, 86, 69, 128, + 67, 65, 85, 84, 73, 79, 206, 67, 65, 85, 76, 68, 82, 79, 78, 128, 67, 65, + 85, 68, 65, 84, 197, 67, 65, 85, 68, 65, 128, 67, 65, 85, 67, 65, 83, 73, + 65, 206, 67, 65, 85, 128, 67, 65, 84, 65, 87, 65, 128, 67, 65, 84, 128, + 67, 65, 212, 67, 65, 83, 84, 76, 69, 128, 67, 65, 83, 75, 69, 212, 67, + 65, 82, 89, 83, 84, 73, 65, 206, 67, 65, 82, 84, 87, 72, 69, 69, 76, 128, + 67, 65, 82, 84, 82, 73, 68, 71, 69, 128, 67, 65, 82, 84, 128, 67, 65, 82, + 211, 67, 65, 82, 82, 79, 84, 128, 67, 65, 82, 82, 73, 65, 71, 197, 67, + 65, 82, 80, 69, 78, 84, 82, 217, 67, 65, 82, 208, 67, 65, 82, 79, 85, 83, + 69, 204, 67, 65, 82, 79, 78, 128, 67, 65, 82, 79, 206, 67, 65, 82, 73, + 203, 67, 65, 82, 73, 65, 206, 67, 65, 82, 69, 84, 128, 67, 65, 82, 69, + 212, 67, 65, 82, 197, 67, 65, 82, 68, 83, 128, 67, 65, 82, 196, 67, 65, + 82, 128, 67, 65, 210, 67, 65, 80, 85, 212, 67, 65, 80, 84, 73, 86, 69, + 128, 67, 65, 80, 82, 73, 67, 79, 82, 78, 128, 67, 65, 80, 80, 69, 196, + 67, 65, 80, 79, 128, 67, 65, 80, 73, 84, 85, 76, 85, 77, 128, 67, 65, 80, + 73, 84, 65, 76, 128, 67, 65, 78, 84, 73, 76, 76, 65, 84, 73, 79, 206, 67, + 65, 78, 79, 69, 128, 67, 65, 78, 78, 79, 78, 128, 67, 65, 78, 78, 69, + 196, 67, 65, 78, 199, 67, 65, 78, 69, 128, 67, 65, 78, 68, 89, 128, 67, + 65, 78, 68, 82, 65, 66, 73, 78, 68, 85, 128, 67, 65, 78, 68, 82, 65, 66, + 73, 78, 68, 213, 67, 65, 78, 68, 82, 65, 128, 67, 65, 78, 68, 82, 193, + 67, 65, 78, 68, 76, 69, 128, 67, 65, 78, 67, 69, 82, 128, 67, 65, 78, 67, + 69, 76, 76, 65, 84, 73, 79, 206, 67, 65, 78, 67, 69, 76, 128, 67, 65, 78, + 67, 69, 204, 67, 65, 78, 128, 67, 65, 77, 80, 73, 78, 71, 128, 67, 65, + 77, 78, 85, 195, 67, 65, 77, 69, 82, 65, 128, 67, 65, 77, 69, 82, 193, + 67, 65, 77, 69, 76, 128, 67, 65, 76, 89, 65, 128, 67, 65, 76, 89, 193, + 67, 65, 76, 88, 128, 67, 65, 76, 76, 128, 67, 65, 76, 204, 67, 65, 76, + 69, 78, 68, 65, 82, 128, 67, 65, 76, 69, 78, 68, 65, 210, 67, 65, 76, 67, + 85, 76, 65, 84, 79, 82, 128, 67, 65, 76, 67, 128, 67, 65, 75, 82, 65, + 128, 67, 65, 75, 197, 67, 65, 73, 128, 67, 65, 72, 128, 67, 65, 69, 83, + 85, 82, 65, 128, 67, 65, 68, 85, 67, 69, 85, 83, 128, 67, 65, 68, 193, + 67, 65, 67, 84, 85, 83, 128, 67, 65, 66, 76, 69, 87, 65, 89, 128, 67, 65, + 66, 73, 78, 69, 84, 128, 67, 65, 66, 66, 65, 71, 69, 45, 84, 82, 69, 69, + 128, 67, 65, 65, 78, 71, 128, 67, 65, 65, 73, 128, 67, 193, 67, 48, 50, + 52, 128, 67, 48, 50, 51, 128, 67, 48, 50, 50, 128, 67, 48, 50, 49, 128, + 67, 48, 50, 48, 128, 67, 48, 49, 57, 128, 67, 48, 49, 56, 128, 67, 48, + 49, 55, 128, 67, 48, 49, 54, 128, 67, 48, 49, 53, 128, 67, 48, 49, 52, + 128, 67, 48, 49, 51, 128, 67, 48, 49, 50, 128, 67, 48, 49, 49, 128, 67, + 48, 49, 48, 65, 128, 67, 48, 49, 48, 128, 67, 48, 48, 57, 128, 67, 48, + 48, 56, 128, 67, 48, 48, 55, 128, 67, 48, 48, 54, 128, 67, 48, 48, 53, + 128, 67, 48, 48, 52, 128, 67, 48, 48, 51, 128, 67, 48, 48, 50, 67, 128, + 67, 48, 48, 50, 66, 128, 67, 48, 48, 50, 65, 128, 67, 48, 48, 50, 128, + 67, 48, 48, 49, 128, 67, 45, 83, 73, 77, 80, 76, 73, 70, 73, 69, 196, 67, + 45, 51, 57, 128, 67, 45, 49, 56, 128, 66, 90, 85, 78, 199, 66, 90, 72, + 201, 66, 89, 84, 197, 66, 89, 69, 76, 79, 82, 85, 83, 83, 73, 65, 78, 45, + 85, 75, 82, 65, 73, 78, 73, 65, 206, 66, 88, 71, 128, 66, 87, 73, 128, + 66, 87, 69, 69, 128, 66, 87, 69, 128, 66, 87, 65, 128, 66, 85, 85, 77, + 73, 83, 72, 128, 66, 85, 84, 84, 79, 78, 128, 66, 85, 84, 84, 79, 206, + 66, 85, 84, 84, 69, 82, 70, 76, 89, 128, 66, 85, 84, 84, 69, 82, 128, 66, + 85, 212, 66, 85, 83, 84, 211, 66, 85, 83, 212, 66, 85, 83, 83, 89, 69, + 82, 85, 128, 66, 85, 83, 73, 78, 69, 83, 211, 66, 85, 211, 66, 85, 82, + 213, 66, 85, 82, 82, 73, 84, 79, 128, 66, 85, 82, 50, 128, 66, 85, 210, + 66, 85, 79, 89, 128, 66, 85, 79, 88, 128, 66, 85, 79, 80, 128, 66, 85, + 78, 78, 217, 66, 85, 78, 71, 128, 66, 85, 77, 80, 217, 66, 85, 76, 85, + 71, 128, 66, 85, 76, 85, 199, 66, 85, 76, 76, 83, 69, 89, 69, 128, 66, + 85, 76, 76, 211, 66, 85, 76, 76, 72, 79, 82, 78, 128, 66, 85, 76, 76, 72, + 79, 82, 206, 66, 85, 76, 76, 69, 84, 128, 66, 85, 76, 76, 69, 212, 66, + 85, 76, 76, 128, 66, 85, 76, 66, 128, 66, 85, 75, 89, 128, 66, 85, 73, + 76, 68, 73, 78, 71, 83, 128, 66, 85, 73, 76, 68, 73, 78, 71, 128, 66, 85, + 73, 76, 68, 73, 78, 199, 66, 85, 72, 73, 196, 66, 85, 71, 73, 78, 69, 83, + 197, 66, 85, 71, 128, 66, 85, 70, 70, 65, 76, 79, 128, 66, 85, 68, 128, + 66, 85, 67, 75, 76, 69, 128, 66, 85, 67, 75, 69, 84, 128, 66, 85, 66, 66, + 76, 69, 83, 128, 66, 85, 66, 66, 76, 69, 128, 66, 85, 66, 66, 76, 197, + 66, 83, 84, 65, 82, 128, 66, 83, 75, 85, 210, 66, 83, 75, 65, 173, 66, + 83, 68, 85, 211, 66, 82, 85, 83, 200, 66, 82, 79, 87, 206, 66, 82, 79, + 79, 77, 128, 66, 82, 79, 78, 90, 69, 128, 66, 82, 79, 75, 69, 206, 66, + 82, 79, 67, 67, 79, 76, 73, 128, 66, 82, 79, 65, 196, 66, 82, 73, 83, 84, + 76, 69, 128, 66, 82, 73, 71, 72, 84, 78, 69, 83, 211, 66, 82, 73, 69, 70, + 83, 128, 66, 82, 73, 69, 70, 67, 65, 83, 69, 128, 66, 82, 73, 68, 71, + 197, 66, 82, 73, 68, 197, 66, 82, 73, 67, 75, 128, 66, 82, 73, 128, 66, + 82, 69, 86, 73, 83, 128, 66, 82, 69, 86, 69, 45, 77, 65, 67, 82, 79, 78, + 128, 66, 82, 69, 86, 197, 66, 82, 69, 65, 84, 72, 217, 66, 82, 69, 65, + 84, 200, 66, 82, 69, 65, 83, 84, 45, 70, 69, 69, 68, 73, 78, 71, 128, 66, + 82, 69, 65, 75, 84, 72, 82, 79, 85, 71, 72, 128, 66, 82, 68, 193, 66, 82, + 65, 78, 67, 72, 73, 78, 199, 66, 82, 65, 78, 67, 72, 69, 83, 128, 66, 82, + 65, 78, 67, 72, 128, 66, 82, 65, 78, 67, 200, 66, 82, 65, 75, 67, 69, 84, + 128, 66, 82, 65, 73, 78, 128, 66, 82, 65, 67, 75, 69, 84, 211, 66, 82, + 65, 67, 75, 69, 84, 69, 196, 66, 82, 65, 67, 75, 69, 84, 128, 66, 82, 65, + 67, 75, 69, 212, 66, 82, 65, 67, 69, 128, 66, 81, 128, 66, 80, 72, 128, + 66, 79, 89, 211, 66, 79, 89, 128, 66, 79, 88, 73, 78, 199, 66, 79, 87, + 84, 73, 69, 128, 66, 79, 87, 84, 73, 197, 66, 79, 87, 76, 73, 78, 71, + 128, 66, 79, 87, 76, 128, 66, 79, 87, 204, 66, 79, 87, 73, 78, 199, 66, + 79, 215, 66, 79, 85, 81, 85, 69, 84, 128, 66, 79, 85, 81, 85, 69, 212, + 66, 79, 85, 78, 68, 65, 82, 217, 66, 79, 84, 84, 79, 77, 45, 83, 72, 65, + 68, 69, 196, 66, 79, 84, 84, 79, 77, 45, 76, 73, 71, 72, 84, 69, 196, 66, + 79, 84, 84, 79, 77, 128, 66, 79, 84, 84, 79, 205, 66, 79, 84, 84, 76, 69, + 128, 66, 79, 84, 84, 76, 197, 66, 79, 84, 200, 66, 79, 82, 90, 89, 128, + 66, 79, 82, 90, 65, 89, 65, 128, 66, 79, 82, 85, 84, 79, 128, 66, 79, 82, + 65, 88, 45, 51, 128, 66, 79, 82, 65, 88, 45, 50, 128, 66, 79, 82, 65, 88, + 128, 66, 79, 80, 79, 77, 79, 70, 207, 66, 79, 79, 84, 83, 128, 66, 79, + 79, 84, 128, 66, 79, 79, 77, 69, 82, 65, 78, 71, 128, 66, 79, 79, 75, 83, + 128, 66, 79, 79, 75, 77, 65, 82, 75, 128, 66, 79, 79, 75, 77, 65, 82, + 203, 66, 79, 78, 69, 128, 66, 79, 77, 66, 128, 66, 79, 77, 128, 66, 79, + 76, 84, 128, 66, 79, 76, 212, 66, 79, 72, 65, 73, 82, 73, 195, 66, 79, + 68, 89, 128, 66, 79, 68, 217, 66, 79, 65, 82, 128, 66, 79, 65, 128, 66, + 76, 85, 69, 66, 69, 82, 82, 73, 69, 83, 128, 66, 76, 85, 69, 128, 66, 76, + 85, 197, 66, 76, 79, 87, 73, 78, 199, 66, 76, 79, 87, 70, 73, 83, 72, + 128, 66, 76, 79, 215, 66, 76, 79, 83, 83, 79, 77, 128, 66, 76, 79, 79, + 68, 128, 66, 76, 79, 78, 196, 66, 76, 79, 67, 75, 45, 55, 128, 66, 76, + 79, 67, 75, 45, 54, 128, 66, 76, 79, 67, 75, 45, 53, 128, 66, 76, 79, 67, + 75, 45, 52, 128, 66, 76, 79, 67, 75, 45, 51, 128, 66, 76, 79, 67, 75, 45, + 50, 128, 66, 76, 79, 67, 75, 45, 49, 51, 53, 56, 128, 66, 76, 79, 67, 75, + 128, 66, 76, 73, 78, 203, 66, 76, 65, 78, 75, 128, 66, 76, 65, 78, 203, + 66, 76, 65, 68, 197, 66, 76, 65, 67, 75, 76, 69, 84, 84, 69, 210, 66, 76, + 65, 67, 75, 70, 79, 79, 212, 66, 76, 65, 67, 75, 45, 76, 69, 84, 84, 69, + 210, 66, 76, 65, 67, 75, 45, 70, 69, 65, 84, 72, 69, 82, 69, 196, 66, 76, + 65, 67, 75, 128, 66, 75, 65, 173, 66, 73, 84, 84, 69, 82, 128, 66, 73, + 84, 73, 78, 199, 66, 73, 84, 197, 66, 73, 84, 67, 79, 73, 206, 66, 73, + 83, 79, 78, 128, 66, 73, 83, 77, 85, 84, 200, 66, 73, 83, 77, 73, 76, 76, + 65, 200, 66, 73, 83, 72, 79, 208, 66, 73, 83, 69, 67, 84, 73, 78, 199, + 66, 73, 83, 65, 72, 128, 66, 73, 82, 85, 128, 66, 73, 82, 84, 72, 68, 65, + 217, 66, 73, 82, 71, 65, 128, 66, 73, 82, 71, 193, 66, 73, 82, 68, 128, + 66, 73, 79, 72, 65, 90, 65, 82, 196, 66, 73, 78, 79, 86, 73, 76, 69, 128, + 66, 73, 78, 79, 67, 85, 76, 65, 210, 66, 73, 78, 68, 73, 78, 199, 66, 73, + 78, 68, 73, 128, 66, 73, 78, 65, 82, 217, 66, 73, 76, 76, 73, 79, 78, 83, + 128, 66, 73, 76, 76, 73, 65, 82, 68, 83, 128, 66, 73, 76, 76, 69, 196, + 66, 73, 76, 65, 66, 73, 65, 204, 66, 73, 75, 73, 78, 73, 128, 66, 73, 71, + 128, 66, 73, 199, 66, 73, 69, 84, 128, 66, 73, 68, 69, 78, 84, 65, 204, + 66, 73, 68, 65, 75, 85, 79, 206, 66, 73, 67, 89, 67, 76, 73, 83, 84, 128, + 66, 73, 67, 89, 67, 76, 69, 83, 128, 66, 73, 67, 89, 67, 76, 69, 128, 66, + 73, 67, 69, 80, 83, 128, 66, 73, 66, 76, 69, 45, 67, 82, 69, 197, 66, 73, + 66, 128, 66, 201, 66, 72, 85, 128, 66, 72, 79, 79, 128, 66, 72, 79, 128, + 66, 72, 73, 128, 66, 72, 69, 84, 72, 128, 66, 72, 69, 69, 128, 66, 72, + 69, 128, 66, 72, 65, 84, 84, 73, 80, 82, 79, 76, 213, 66, 72, 65, 77, + 128, 66, 72, 65, 76, 69, 128, 66, 72, 65, 76, 197, 66, 72, 65, 73, 75, + 83, 85, 75, 201, 66, 72, 65, 65, 128, 66, 72, 65, 128, 66, 69, 89, 89, + 65, 76, 128, 66, 69, 88, 128, 66, 69, 86, 69, 82, 65, 71, 69, 128, 66, + 69, 86, 69, 82, 65, 71, 197, 66, 69, 84, 87, 69, 69, 78, 128, 66, 69, 84, + 87, 69, 69, 206, 66, 69, 84, 72, 128, 66, 69, 84, 65, 128, 66, 69, 84, + 193, 66, 69, 212, 66, 69, 83, 73, 68, 197, 66, 69, 82, 75, 65, 78, 65, + 206, 66, 69, 82, 66, 69, 210, 66, 69, 80, 128, 66, 69, 79, 82, 195, 66, + 69, 78, 90, 69, 78, 197, 66, 69, 78, 84, 207, 66, 69, 78, 84, 128, 66, + 69, 78, 212, 66, 69, 78, 71, 65, 76, 201, 66, 69, 78, 68, 69, 128, 66, + 69, 78, 68, 128, 66, 69, 78, 196, 66, 69, 206, 66, 69, 76, 84, 128, 66, + 69, 76, 212, 66, 69, 76, 79, 215, 66, 69, 76, 76, 72, 79, 208, 66, 69, + 76, 76, 128, 66, 69, 76, 204, 66, 69, 76, 71, 84, 72, 79, 210, 66, 69, + 73, 84, 72, 128, 66, 69, 72, 73, 78, 196, 66, 69, 72, 69, 72, 128, 66, + 69, 72, 69, 200, 66, 69, 72, 128, 66, 69, 200, 66, 69, 71, 73, 78, 78, + 73, 78, 71, 128, 66, 69, 71, 73, 78, 78, 69, 82, 128, 66, 69, 71, 73, 206, 66, 69, 70, 79, 82, 197, 66, 69, 69, 84, 76, 69, 128, 66, 69, 69, 84, 65, 128, 66, 69, 69, 210, 66, 69, 69, 72, 73, 86, 69, 128, 66, 69, 69, 72, 128, 66, 69, 69, 200, 66, 69, 67, 65, 85, 83, 69, 128, 66, 69, @@ -6729,10083 +6749,10122 @@ static const unsigned char lexicon[] = { 68, 69, 82, 77, 193, 65, 80, 76, 79, 85, 78, 128, 65, 80, 76, 201, 65, 80, 204, 65, 80, 73, 78, 128, 65, 80, 69, 83, 207, 65, 80, 67, 128, 65, 80, 65, 82, 84, 128, 65, 80, 65, 65, 84, 79, 128, 65, 79, 85, 128, 65, - 79, 82, 128, 65, 78, 85, 83, 86, 65, 82, 65, 89, 65, 128, 65, 78, 85, 83, - 86, 65, 82, 65, 128, 65, 78, 85, 83, 86, 65, 82, 193, 65, 78, 85, 68, 65, - 84, 84, 65, 128, 65, 78, 85, 68, 65, 84, 84, 193, 65, 78, 84, 73, 82, 69, - 83, 84, 82, 73, 67, 84, 73, 79, 78, 128, 65, 78, 84, 73, 77, 79, 78, 89, - 45, 50, 128, 65, 78, 84, 73, 77, 79, 78, 89, 128, 65, 78, 84, 73, 77, 79, - 78, 217, 65, 78, 84, 73, 77, 79, 78, 73, 65, 84, 69, 128, 65, 78, 84, 73, - 75, 69, 78, 79, 77, 65, 128, 65, 78, 84, 73, 75, 69, 78, 79, 75, 89, 76, - 73, 83, 77, 65, 128, 65, 78, 84, 73, 70, 79, 78, 73, 65, 128, 65, 78, 84, - 73, 67, 76, 79, 67, 75, 87, 73, 83, 69, 45, 82, 79, 84, 65, 84, 69, 196, - 65, 78, 84, 73, 67, 76, 79, 67, 75, 87, 73, 83, 69, 128, 65, 78, 84, 73, - 67, 76, 79, 67, 75, 87, 73, 83, 197, 65, 78, 84, 69, 78, 78, 65, 128, 65, - 78, 84, 69, 78, 78, 193, 65, 78, 84, 65, 82, 71, 79, 77, 85, 75, 72, 65, - 128, 65, 78, 83, 85, 218, 65, 78, 83, 72, 69, 128, 65, 78, 80, 69, 65, - 128, 65, 78, 207, 65, 78, 78, 85, 73, 84, 217, 65, 78, 78, 79, 84, 65, - 84, 73, 79, 206, 65, 78, 78, 65, 65, 85, 128, 65, 78, 75, 72, 128, 65, - 78, 74, 73, 128, 65, 78, 73, 77, 65, 76, 128, 65, 78, 72, 85, 78, 78, 65, - 128, 65, 78, 72, 85, 77, 65, 65, 128, 65, 78, 72, 85, 77, 128, 65, 78, - 72, 85, 128, 65, 78, 72, 65, 65, 128, 65, 78, 72, 128, 65, 78, 71, 85, - 76, 65, 82, 128, 65, 78, 71, 85, 73, 83, 72, 69, 196, 65, 78, 71, 83, 84, - 82, 79, 205, 65, 78, 71, 82, 217, 65, 78, 71, 76, 73, 67, 65, 78, 193, - 65, 78, 71, 76, 69, 68, 128, 65, 78, 71, 76, 69, 196, 65, 78, 71, 75, 72, - 65, 78, 75, 72, 85, 128, 65, 78, 71, 75, 65, 128, 65, 78, 71, 69, 210, - 65, 78, 71, 69, 76, 128, 65, 78, 71, 69, 68, 128, 65, 78, 68, 65, 80, - 128, 65, 78, 67, 79, 82, 65, 128, 65, 78, 67, 72, 79, 82, 128, 65, 78, - 65, 84, 82, 73, 67, 72, 73, 83, 77, 65, 128, 65, 78, 65, 84, 79, 77, 73, - 67, 65, 204, 65, 78, 65, 80, 128, 65, 78, 45, 78, 73, 83, 70, 128, 65, - 77, 85, 76, 69, 84, 128, 65, 77, 80, 83, 128, 65, 77, 80, 72, 79, 82, 65, - 128, 65, 77, 80, 69, 82, 83, 65, 78, 68, 128, 65, 77, 80, 69, 82, 83, 65, - 78, 196, 65, 77, 79, 85, 78, 212, 65, 77, 69, 82, 73, 67, 65, 83, 128, - 65, 77, 69, 82, 73, 67, 65, 206, 65, 77, 66, 85, 76, 65, 78, 67, 69, 128, - 65, 77, 66, 193, 65, 77, 66, 128, 65, 77, 65, 82, 128, 65, 77, 65, 210, - 65, 77, 65, 76, 71, 65, 77, 65, 84, 73, 79, 206, 65, 77, 65, 76, 71, 65, - 77, 128, 65, 76, 86, 69, 79, 76, 65, 210, 65, 76, 85, 77, 128, 65, 76, - 84, 69, 82, 78, 65, 84, 73, 86, 197, 65, 76, 84, 69, 82, 78, 65, 84, 73, - 79, 206, 65, 76, 84, 69, 82, 78, 65, 84, 73, 78, 71, 128, 65, 76, 84, 69, - 82, 78, 65, 84, 73, 78, 199, 65, 76, 84, 69, 82, 78, 65, 84, 69, 128, 65, - 76, 84, 69, 82, 78, 65, 84, 197, 65, 76, 84, 65, 128, 65, 76, 80, 72, 65, - 128, 65, 76, 80, 72, 193, 65, 76, 80, 65, 80, 82, 65, 78, 65, 128, 65, - 76, 80, 65, 80, 82, 65, 65, 78, 193, 65, 76, 80, 65, 128, 65, 76, 77, 79, - 83, 212, 65, 76, 76, 79, 128, 65, 76, 76, 73, 65, 78, 67, 69, 128, 65, - 76, 76, 201, 65, 76, 76, 65, 200, 65, 76, 76, 65, 65, 72, 128, 65, 76, - 75, 65, 76, 73, 45, 50, 128, 65, 76, 75, 65, 76, 73, 128, 65, 76, 73, 71, - 78, 69, 196, 65, 76, 73, 70, 85, 128, 65, 76, 73, 70, 128, 65, 76, 73, - 198, 65, 76, 73, 69, 78, 128, 65, 76, 73, 69, 206, 65, 76, 71, 73, 218, - 65, 76, 70, 65, 128, 65, 76, 69, 85, 212, 65, 76, 69, 82, 84, 128, 65, - 76, 69, 80, 72, 128, 65, 76, 69, 77, 66, 73, 67, 128, 65, 76, 69, 70, - 128, 65, 76, 66, 65, 78, 73, 65, 206, 65, 76, 65, 89, 78, 65, 65, 128, - 65, 76, 65, 89, 72, 73, 77, 65, 193, 65, 76, 65, 89, 72, 73, 205, 65, 76, - 65, 89, 72, 201, 65, 76, 65, 89, 72, 69, 128, 65, 76, 65, 89, 72, 197, - 65, 76, 65, 89, 72, 65, 193, 65, 76, 65, 82, 205, 65, 76, 65, 80, 72, - 128, 65, 76, 45, 76, 65, 75, 85, 78, 65, 128, 65, 76, 45, 74, 85, 90, - 128, 65, 75, 85, 82, 213, 65, 75, 84, 73, 69, 83, 69, 76, 83, 75, 65, 66, - 128, 65, 75, 83, 65, 128, 65, 75, 72, 77, 73, 77, 73, 195, 65, 75, 66, - 65, 210, 65, 75, 65, 82, 65, 128, 65, 75, 65, 82, 193, 65, 73, 89, 65, - 78, 78, 65, 128, 65, 73, 86, 73, 76, 73, 203, 65, 73, 86, 65, 128, 65, - 73, 84, 79, 206, 65, 73, 82, 80, 76, 65, 78, 69, 128, 65, 73, 82, 80, 76, - 65, 78, 197, 65, 73, 78, 213, 65, 73, 78, 78, 128, 65, 73, 76, 77, 128, - 65, 73, 75, 65, 82, 65, 128, 65, 73, 72, 86, 85, 83, 128, 65, 72, 83, 68, - 65, 128, 65, 72, 83, 65, 128, 65, 72, 79, 205, 65, 72, 65, 78, 199, 65, - 72, 65, 71, 71, 65, 210, 65, 72, 65, 68, 128, 65, 71, 85, 78, 71, 128, - 65, 71, 79, 71, 201, 65, 71, 71, 82, 65, 86, 65, 84, 73, 79, 78, 128, 65, - 71, 71, 82, 65, 86, 65, 84, 69, 196, 65, 71, 65, 73, 78, 83, 212, 65, 71, - 65, 73, 78, 128, 65, 70, 84, 69, 210, 65, 70, 83, 65, 65, 81, 128, 65, - 70, 82, 73, 67, 65, 206, 65, 70, 79, 82, 69, 77, 69, 78, 84, 73, 79, 78, - 69, 68, 128, 65, 70, 71, 72, 65, 78, 201, 65, 70, 70, 82, 73, 67, 65, 84, - 73, 79, 206, 65, 70, 70, 73, 216, 65, 69, 89, 65, 78, 78, 65, 128, 65, - 69, 89, 128, 65, 69, 83, 67, 85, 76, 65, 80, 73, 85, 83, 128, 65, 69, 83, - 67, 128, 65, 69, 83, 128, 65, 69, 82, 73, 65, 204, 65, 69, 82, 128, 65, - 69, 76, 65, 45, 80, 73, 76, 76, 65, 128, 65, 69, 76, 128, 65, 69, 75, - 128, 65, 69, 71, 69, 65, 206, 65, 69, 71, 128, 65, 69, 69, 89, 65, 78, - 78, 65, 128, 65, 69, 69, 128, 65, 69, 68, 65, 45, 80, 73, 76, 76, 65, - 128, 65, 69, 68, 128, 65, 69, 66, 128, 65, 68, 86, 65, 78, 84, 65, 71, - 69, 128, 65, 68, 86, 65, 78, 67, 69, 128, 65, 68, 85, 76, 84, 128, 65, - 68, 77, 73, 83, 83, 73, 79, 206, 65, 68, 77, 69, 84, 79, 83, 128, 65, 68, - 76, 65, 205, 65, 68, 72, 69, 83, 73, 86, 197, 65, 68, 69, 71, 128, 65, - 68, 69, 199, 65, 68, 68, 82, 69, 83, 83, 69, 196, 65, 68, 68, 82, 69, 83, - 211, 65, 68, 68, 65, 75, 128, 65, 68, 65, 203, 65, 67, 85, 84, 69, 45, - 77, 65, 67, 82, 79, 78, 128, 65, 67, 85, 84, 69, 45, 71, 82, 65, 86, 69, - 45, 65, 67, 85, 84, 69, 128, 65, 67, 85, 84, 197, 65, 67, 84, 85, 65, 76, - 76, 217, 65, 67, 84, 73, 86, 65, 84, 197, 65, 67, 82, 79, 80, 72, 79, 78, - 73, 195, 65, 67, 75, 78, 79, 87, 76, 69, 68, 71, 69, 128, 65, 67, 67, 85, - 77, 85, 76, 65, 84, 73, 79, 78, 128, 65, 67, 67, 79, 85, 78, 212, 65, 67, - 67, 79, 82, 68, 73, 79, 78, 128, 65, 67, 67, 79, 77, 77, 79, 68, 65, 84, - 73, 79, 78, 128, 65, 67, 67, 69, 80, 84, 128, 65, 67, 67, 69, 78, 84, 45, - 83, 84, 65, 67, 67, 65, 84, 79, 128, 65, 67, 67, 69, 78, 84, 128, 65, 67, - 67, 69, 78, 212, 65, 67, 65, 68, 69, 77, 217, 65, 66, 89, 83, 77, 65, - 204, 65, 66, 85, 78, 68, 65, 78, 67, 69, 128, 65, 66, 75, 72, 65, 83, 73, - 65, 206, 65, 66, 66, 82, 69, 86, 73, 65, 84, 73, 79, 206, 65, 66, 65, 70, - 73, 76, 73, 128, 65, 66, 65, 67, 85, 83, 128, 65, 66, 178, 65, 66, 49, - 57, 49, 128, 65, 66, 49, 56, 56, 128, 65, 66, 49, 56, 48, 128, 65, 66, - 49, 55, 49, 128, 65, 66, 49, 54, 52, 128, 65, 66, 49, 51, 49, 66, 128, - 65, 66, 49, 51, 49, 65, 128, 65, 66, 49, 50, 51, 128, 65, 66, 49, 50, 50, - 128, 65, 66, 49, 50, 48, 128, 65, 66, 49, 49, 56, 128, 65, 66, 48, 56, - 55, 128, 65, 66, 48, 56, 54, 128, 65, 66, 48, 56, 53, 128, 65, 66, 48, - 56, 50, 128, 65, 66, 48, 56, 49, 128, 65, 66, 48, 56, 48, 128, 65, 66, - 48, 55, 57, 128, 65, 66, 48, 55, 56, 128, 65, 66, 48, 55, 55, 128, 65, - 66, 48, 55, 54, 128, 65, 66, 48, 55, 52, 128, 65, 66, 48, 55, 51, 128, - 65, 66, 48, 55, 48, 128, 65, 66, 48, 54, 57, 128, 65, 66, 48, 54, 55, - 128, 65, 66, 48, 54, 54, 128, 65, 66, 48, 54, 53, 128, 65, 66, 48, 54, - 49, 128, 65, 66, 48, 54, 48, 128, 65, 66, 48, 53, 57, 128, 65, 66, 48, - 53, 56, 128, 65, 66, 48, 53, 55, 128, 65, 66, 48, 53, 54, 128, 65, 66, - 48, 53, 53, 128, 65, 66, 48, 53, 52, 128, 65, 66, 48, 53, 51, 128, 65, - 66, 48, 53, 49, 128, 65, 66, 48, 53, 48, 128, 65, 66, 48, 52, 57, 128, - 65, 66, 48, 52, 56, 128, 65, 66, 48, 52, 55, 128, 65, 66, 48, 52, 54, - 128, 65, 66, 48, 52, 53, 128, 65, 66, 48, 52, 52, 128, 65, 66, 48, 52, - 49, 128, 65, 66, 48, 52, 48, 128, 65, 66, 48, 51, 57, 128, 65, 66, 48, - 51, 56, 128, 65, 66, 48, 51, 55, 128, 65, 66, 48, 51, 52, 128, 65, 66, - 48, 51, 49, 128, 65, 66, 48, 51, 48, 128, 65, 66, 48, 50, 57, 128, 65, - 66, 48, 50, 56, 128, 65, 66, 48, 50, 55, 128, 65, 66, 48, 50, 54, 128, - 65, 66, 48, 50, 52, 128, 65, 66, 48, 50, 51, 77, 128, 65, 66, 48, 50, 51, - 128, 65, 66, 48, 50, 50, 77, 128, 65, 66, 48, 50, 50, 70, 128, 65, 66, - 48, 50, 50, 128, 65, 66, 48, 50, 49, 77, 128, 65, 66, 48, 50, 49, 70, - 128, 65, 66, 48, 50, 49, 128, 65, 66, 48, 50, 48, 128, 65, 66, 48, 49, - 55, 128, 65, 66, 48, 49, 54, 128, 65, 66, 48, 49, 51, 128, 65, 66, 48, - 49, 49, 128, 65, 66, 48, 49, 48, 128, 65, 66, 48, 48, 57, 128, 65, 66, - 48, 48, 56, 128, 65, 66, 48, 48, 55, 128, 65, 66, 48, 48, 54, 128, 65, - 66, 48, 48, 53, 128, 65, 66, 48, 48, 52, 128, 65, 66, 48, 48, 51, 128, - 65, 66, 48, 48, 50, 128, 65, 66, 48, 48, 49, 128, 65, 65, 90, 72, 65, 65, - 75, 75, 85, 128, 65, 65, 89, 73, 78, 128, 65, 65, 89, 65, 78, 78, 65, - 128, 65, 65, 89, 128, 65, 65, 87, 128, 65, 65, 79, 128, 65, 65, 74, 128, - 65, 65, 66, 65, 65, 70, 73, 76, 73, 128, 65, 65, 48, 51, 50, 128, 65, 65, - 48, 51, 49, 128, 65, 65, 48, 51, 48, 128, 65, 65, 48, 50, 57, 128, 65, - 65, 48, 50, 56, 128, 65, 65, 48, 50, 55, 128, 65, 65, 48, 50, 54, 128, - 65, 65, 48, 50, 53, 128, 65, 65, 48, 50, 52, 128, 65, 65, 48, 50, 51, - 128, 65, 65, 48, 50, 50, 128, 65, 65, 48, 50, 49, 128, 65, 65, 48, 50, - 48, 128, 65, 65, 48, 49, 57, 128, 65, 65, 48, 49, 56, 128, 65, 65, 48, - 49, 55, 128, 65, 65, 48, 49, 54, 128, 65, 65, 48, 49, 53, 128, 65, 65, - 48, 49, 52, 128, 65, 65, 48, 49, 51, 128, 65, 65, 48, 49, 50, 128, 65, - 65, 48, 49, 49, 128, 65, 65, 48, 49, 48, 128, 65, 65, 48, 48, 57, 128, - 65, 65, 48, 48, 56, 128, 65, 65, 48, 48, 55, 66, 128, 65, 65, 48, 48, 55, - 65, 128, 65, 65, 48, 48, 55, 128, 65, 65, 48, 48, 54, 128, 65, 65, 48, - 48, 53, 128, 65, 65, 48, 48, 52, 128, 65, 65, 48, 48, 51, 128, 65, 65, - 48, 48, 50, 128, 65, 65, 48, 48, 49, 128, 65, 56, 48, 55, 128, 65, 56, - 48, 54, 128, 65, 56, 48, 53, 128, 65, 56, 48, 52, 128, 65, 56, 48, 51, - 128, 65, 56, 48, 50, 128, 65, 56, 48, 49, 128, 65, 56, 48, 48, 128, 65, - 55, 51, 178, 65, 55, 50, 182, 65, 55, 49, 183, 65, 55, 49, 181, 65, 55, - 49, 180, 65, 55, 49, 179, 65, 55, 49, 178, 65, 55, 49, 177, 65, 55, 49, - 176, 65, 55, 48, 57, 45, 182, 65, 55, 48, 57, 45, 180, 65, 55, 48, 57, - 45, 179, 65, 55, 48, 57, 45, 178, 65, 55, 48, 185, 65, 55, 48, 184, 65, - 55, 48, 183, 65, 55, 48, 182, 65, 55, 48, 181, 65, 55, 48, 180, 65, 55, - 48, 179, 65, 55, 48, 178, 65, 55, 48, 177, 65, 54, 54, 52, 128, 65, 54, - 54, 51, 128, 65, 54, 54, 50, 128, 65, 54, 54, 49, 128, 65, 54, 54, 48, - 128, 65, 54, 53, 57, 128, 65, 54, 53, 56, 128, 65, 54, 53, 55, 128, 65, - 54, 53, 54, 128, 65, 54, 53, 53, 128, 65, 54, 53, 52, 128, 65, 54, 53, - 51, 128, 65, 54, 53, 50, 128, 65, 54, 53, 49, 128, 65, 54, 52, 57, 128, - 65, 54, 52, 56, 128, 65, 54, 52, 54, 128, 65, 54, 52, 53, 128, 65, 54, - 52, 52, 128, 65, 54, 52, 51, 128, 65, 54, 52, 50, 128, 65, 54, 52, 48, - 128, 65, 54, 51, 56, 128, 65, 54, 51, 55, 128, 65, 54, 51, 52, 128, 65, - 54, 50, 57, 128, 65, 54, 50, 56, 128, 65, 54, 50, 55, 128, 65, 54, 50, - 54, 128, 65, 54, 50, 52, 128, 65, 54, 50, 51, 128, 65, 54, 50, 50, 128, - 65, 54, 50, 49, 128, 65, 54, 50, 48, 128, 65, 54, 49, 57, 128, 65, 54, - 49, 56, 128, 65, 54, 49, 55, 128, 65, 54, 49, 54, 128, 65, 54, 49, 53, - 128, 65, 54, 49, 52, 128, 65, 54, 49, 51, 128, 65, 54, 49, 50, 128, 65, - 54, 49, 49, 128, 65, 54, 49, 48, 128, 65, 54, 48, 57, 128, 65, 54, 48, - 56, 128, 65, 54, 48, 54, 128, 65, 54, 48, 52, 128, 65, 54, 48, 51, 128, - 65, 54, 48, 50, 128, 65, 54, 48, 49, 128, 65, 54, 48, 48, 128, 65, 53, - 57, 56, 128, 65, 53, 57, 54, 128, 65, 53, 57, 53, 128, 65, 53, 57, 52, - 128, 65, 53, 57, 50, 128, 65, 53, 57, 49, 128, 65, 53, 56, 57, 128, 65, - 53, 56, 56, 128, 65, 53, 56, 55, 128, 65, 53, 56, 54, 128, 65, 53, 56, - 53, 128, 65, 53, 56, 52, 128, 65, 53, 56, 51, 128, 65, 53, 56, 50, 128, - 65, 53, 56, 49, 128, 65, 53, 56, 48, 128, 65, 53, 55, 57, 128, 65, 53, - 55, 56, 128, 65, 53, 55, 55, 128, 65, 53, 55, 54, 128, 65, 53, 55, 53, - 128, 65, 53, 55, 52, 128, 65, 53, 55, 51, 128, 65, 53, 55, 50, 128, 65, - 53, 55, 49, 128, 65, 53, 55, 48, 128, 65, 53, 54, 57, 128, 65, 53, 54, - 56, 128, 65, 53, 54, 54, 128, 65, 53, 54, 53, 128, 65, 53, 54, 52, 128, - 65, 53, 54, 51, 128, 65, 53, 53, 57, 128, 65, 53, 53, 55, 128, 65, 53, - 53, 54, 128, 65, 53, 53, 53, 128, 65, 53, 53, 52, 128, 65, 53, 53, 51, - 128, 65, 53, 53, 50, 128, 65, 53, 53, 49, 128, 65, 53, 53, 48, 128, 65, - 53, 52, 57, 128, 65, 53, 52, 56, 128, 65, 53, 52, 55, 128, 65, 53, 52, - 53, 128, 65, 53, 52, 50, 128, 65, 53, 52, 49, 128, 65, 53, 52, 48, 128, - 65, 53, 51, 57, 128, 65, 53, 51, 56, 128, 65, 53, 51, 55, 128, 65, 53, - 51, 54, 128, 65, 53, 51, 53, 128, 65, 53, 51, 52, 128, 65, 53, 51, 50, - 128, 65, 53, 51, 49, 128, 65, 53, 51, 48, 128, 65, 53, 50, 57, 128, 65, - 53, 50, 56, 128, 65, 53, 50, 55, 128, 65, 53, 50, 54, 128, 65, 53, 50, - 53, 128, 65, 53, 50, 52, 128, 65, 53, 50, 51, 128, 65, 53, 50, 50, 128, - 65, 53, 50, 49, 128, 65, 53, 50, 48, 128, 65, 53, 49, 57, 128, 65, 53, - 49, 56, 128, 65, 53, 49, 55, 128, 65, 53, 49, 54, 128, 65, 53, 49, 53, - 128, 65, 53, 49, 52, 128, 65, 53, 49, 51, 128, 65, 53, 49, 50, 128, 65, - 53, 49, 49, 128, 65, 53, 49, 48, 128, 65, 53, 48, 57, 128, 65, 53, 48, - 56, 128, 65, 53, 48, 55, 128, 65, 53, 48, 54, 128, 65, 53, 48, 53, 128, - 65, 53, 48, 52, 128, 65, 53, 48, 51, 128, 65, 53, 48, 50, 128, 65, 53, - 48, 49, 128, 65, 52, 57, 55, 128, 65, 52, 57, 54, 128, 65, 52, 57, 53, - 128, 65, 52, 57, 52, 128, 65, 52, 57, 51, 128, 65, 52, 57, 50, 128, 65, - 52, 57, 49, 128, 65, 52, 57, 48, 128, 65, 52, 56, 57, 128, 65, 52, 56, - 56, 128, 65, 52, 56, 55, 128, 65, 52, 56, 54, 128, 65, 52, 56, 53, 128, - 65, 52, 56, 52, 128, 65, 52, 56, 51, 128, 65, 52, 56, 50, 128, 65, 52, - 56, 49, 128, 65, 52, 56, 48, 128, 65, 52, 55, 57, 128, 65, 52, 55, 56, - 128, 65, 52, 55, 55, 128, 65, 52, 55, 54, 128, 65, 52, 55, 53, 128, 65, - 52, 55, 52, 128, 65, 52, 55, 51, 128, 65, 52, 55, 50, 128, 65, 52, 55, - 49, 128, 65, 52, 55, 48, 128, 65, 52, 54, 57, 128, 65, 52, 54, 56, 128, - 65, 52, 54, 55, 128, 65, 52, 54, 54, 128, 65, 52, 54, 53, 128, 65, 52, - 54, 52, 128, 65, 52, 54, 51, 128, 65, 52, 54, 50, 128, 65, 52, 54, 49, - 128, 65, 52, 54, 48, 128, 65, 52, 53, 57, 128, 65, 52, 53, 56, 128, 65, - 52, 53, 55, 65, 128, 65, 52, 53, 55, 128, 65, 52, 53, 54, 128, 65, 52, - 53, 53, 128, 65, 52, 53, 52, 128, 65, 52, 53, 51, 128, 65, 52, 53, 50, - 128, 65, 52, 53, 49, 128, 65, 52, 53, 48, 65, 128, 65, 52, 53, 48, 128, - 65, 52, 52, 57, 128, 65, 52, 52, 56, 128, 65, 52, 52, 55, 128, 65, 52, - 52, 54, 128, 65, 52, 52, 53, 128, 65, 52, 52, 52, 128, 65, 52, 52, 51, - 128, 65, 52, 52, 50, 128, 65, 52, 52, 49, 128, 65, 52, 52, 48, 128, 65, - 52, 51, 57, 128, 65, 52, 51, 56, 128, 65, 52, 51, 55, 128, 65, 52, 51, - 54, 128, 65, 52, 51, 53, 128, 65, 52, 51, 52, 128, 65, 52, 51, 51, 128, - 65, 52, 51, 50, 128, 65, 52, 51, 49, 128, 65, 52, 51, 48, 128, 65, 52, - 50, 57, 128, 65, 52, 50, 56, 128, 65, 52, 50, 55, 128, 65, 52, 50, 54, - 128, 65, 52, 50, 53, 128, 65, 52, 50, 52, 128, 65, 52, 50, 51, 128, 65, - 52, 50, 50, 128, 65, 52, 50, 49, 128, 65, 52, 50, 48, 128, 65, 52, 49, - 57, 128, 65, 52, 49, 56, 45, 86, 65, 83, 128, 65, 52, 49, 56, 128, 65, - 52, 49, 55, 45, 86, 65, 83, 128, 65, 52, 49, 55, 128, 65, 52, 49, 54, 45, - 86, 65, 83, 128, 65, 52, 49, 54, 128, 65, 52, 49, 53, 45, 86, 65, 83, - 128, 65, 52, 49, 53, 128, 65, 52, 49, 52, 45, 86, 65, 83, 128, 65, 52, - 49, 52, 128, 65, 52, 49, 51, 45, 86, 65, 83, 128, 65, 52, 49, 51, 128, - 65, 52, 49, 50, 45, 86, 65, 83, 128, 65, 52, 49, 50, 128, 65, 52, 49, 49, - 45, 86, 65, 83, 128, 65, 52, 49, 49, 128, 65, 52, 49, 48, 193, 65, 52, - 49, 48, 45, 86, 65, 83, 128, 65, 52, 49, 176, 65, 52, 48, 57, 45, 86, 65, - 83, 128, 65, 52, 48, 57, 128, 65, 52, 48, 56, 45, 86, 65, 83, 128, 65, - 52, 48, 56, 128, 65, 52, 48, 55, 45, 86, 65, 83, 128, 65, 52, 48, 55, - 128, 65, 52, 48, 54, 45, 86, 65, 83, 128, 65, 52, 48, 54, 128, 65, 52, - 48, 53, 45, 86, 65, 83, 128, 65, 52, 48, 53, 128, 65, 52, 48, 52, 45, 86, - 65, 83, 128, 65, 52, 48, 52, 128, 65, 52, 48, 51, 45, 86, 65, 83, 128, - 65, 52, 48, 51, 128, 65, 52, 48, 50, 45, 86, 65, 83, 128, 65, 52, 48, 50, - 128, 65, 52, 48, 49, 45, 86, 65, 83, 128, 65, 52, 48, 49, 128, 65, 52, - 48, 48, 45, 86, 65, 83, 128, 65, 52, 48, 48, 128, 65, 51, 57, 57, 128, - 65, 51, 57, 56, 128, 65, 51, 57, 55, 128, 65, 51, 57, 54, 128, 65, 51, - 57, 53, 128, 65, 51, 57, 52, 128, 65, 51, 57, 179, 65, 51, 57, 50, 128, - 65, 51, 57, 49, 128, 65, 51, 57, 48, 128, 65, 51, 56, 57, 128, 65, 51, - 56, 56, 128, 65, 51, 56, 55, 128, 65, 51, 56, 54, 65, 128, 65, 51, 56, - 54, 128, 65, 51, 56, 53, 128, 65, 51, 56, 52, 128, 65, 51, 56, 51, 65, - 128, 65, 51, 56, 179, 65, 51, 56, 50, 128, 65, 51, 56, 49, 65, 128, 65, - 51, 56, 49, 128, 65, 51, 56, 48, 128, 65, 51, 55, 57, 128, 65, 51, 55, - 56, 128, 65, 51, 55, 55, 128, 65, 51, 55, 54, 128, 65, 51, 55, 53, 128, - 65, 51, 55, 52, 128, 65, 51, 55, 51, 128, 65, 51, 55, 50, 128, 65, 51, - 55, 49, 65, 128, 65, 51, 55, 49, 128, 65, 51, 55, 48, 128, 65, 51, 54, - 57, 128, 65, 51, 54, 56, 65, 128, 65, 51, 54, 56, 128, 65, 51, 54, 55, - 128, 65, 51, 54, 54, 128, 65, 51, 54, 53, 128, 65, 51, 54, 52, 65, 128, - 65, 51, 54, 52, 128, 65, 51, 54, 51, 128, 65, 51, 54, 50, 128, 65, 51, - 54, 49, 128, 65, 51, 54, 48, 128, 65, 51, 53, 57, 65, 128, 65, 51, 53, - 57, 128, 65, 51, 53, 56, 128, 65, 51, 53, 55, 128, 65, 51, 53, 54, 128, - 65, 51, 53, 53, 128, 65, 51, 53, 52, 128, 65, 51, 53, 51, 128, 65, 51, - 53, 50, 128, 65, 51, 53, 49, 128, 65, 51, 53, 48, 128, 65, 51, 52, 57, - 128, 65, 51, 52, 56, 128, 65, 51, 52, 55, 128, 65, 51, 52, 54, 128, 65, - 51, 52, 53, 128, 65, 51, 52, 52, 128, 65, 51, 52, 51, 128, 65, 51, 52, - 50, 128, 65, 51, 52, 49, 128, 65, 51, 52, 48, 128, 65, 51, 51, 57, 128, - 65, 51, 51, 56, 128, 65, 51, 51, 55, 128, 65, 51, 51, 54, 67, 128, 65, - 51, 51, 54, 66, 128, 65, 51, 51, 54, 65, 128, 65, 51, 51, 54, 128, 65, - 51, 51, 53, 128, 65, 51, 51, 52, 128, 65, 51, 51, 51, 128, 65, 51, 51, - 50, 67, 128, 65, 51, 51, 50, 66, 128, 65, 51, 51, 50, 65, 128, 65, 51, - 51, 50, 128, 65, 51, 51, 49, 128, 65, 51, 51, 48, 128, 65, 51, 50, 57, - 65, 128, 65, 51, 50, 57, 128, 65, 51, 50, 56, 128, 65, 51, 50, 55, 128, - 65, 51, 50, 54, 128, 65, 51, 50, 53, 128, 65, 51, 50, 52, 128, 65, 51, - 50, 51, 128, 65, 51, 50, 50, 128, 65, 51, 50, 49, 128, 65, 51, 50, 48, - 128, 65, 51, 49, 57, 128, 65, 51, 49, 56, 128, 65, 51, 49, 55, 128, 65, - 51, 49, 54, 128, 65, 51, 49, 53, 128, 65, 51, 49, 52, 128, 65, 51, 49, - 51, 67, 128, 65, 51, 49, 51, 66, 128, 65, 51, 49, 51, 65, 128, 65, 51, - 49, 51, 128, 65, 51, 49, 50, 128, 65, 51, 49, 49, 128, 65, 51, 49, 48, - 128, 65, 51, 48, 57, 67, 128, 65, 51, 48, 57, 66, 128, 65, 51, 48, 57, - 65, 128, 65, 51, 48, 57, 128, 65, 51, 48, 56, 128, 65, 51, 48, 55, 128, - 65, 51, 48, 54, 128, 65, 51, 48, 53, 128, 65, 51, 48, 52, 128, 65, 51, - 48, 51, 128, 65, 51, 48, 50, 128, 65, 51, 48, 49, 128, 65, 51, 48, 48, - 128, 65, 50, 57, 57, 65, 128, 65, 50, 57, 57, 128, 65, 50, 57, 56, 128, - 65, 50, 57, 55, 128, 65, 50, 57, 54, 128, 65, 50, 57, 53, 128, 65, 50, - 57, 52, 65, 128, 65, 50, 57, 52, 128, 65, 50, 57, 51, 128, 65, 50, 57, - 50, 128, 65, 50, 57, 49, 128, 65, 50, 57, 48, 128, 65, 50, 56, 57, 65, - 128, 65, 50, 56, 57, 128, 65, 50, 56, 56, 128, 65, 50, 56, 55, 128, 65, - 50, 56, 54, 128, 65, 50, 56, 53, 128, 65, 50, 56, 52, 128, 65, 50, 56, - 51, 128, 65, 50, 56, 50, 128, 65, 50, 56, 49, 128, 65, 50, 56, 48, 128, - 65, 50, 55, 57, 128, 65, 50, 55, 56, 128, 65, 50, 55, 55, 128, 65, 50, - 55, 54, 128, 65, 50, 55, 53, 128, 65, 50, 55, 52, 128, 65, 50, 55, 51, - 128, 65, 50, 55, 50, 128, 65, 50, 55, 49, 128, 65, 50, 55, 48, 128, 65, - 50, 54, 57, 128, 65, 50, 54, 56, 128, 65, 50, 54, 55, 65, 128, 65, 50, - 54, 55, 128, 65, 50, 54, 54, 128, 65, 50, 54, 53, 128, 65, 50, 54, 52, - 128, 65, 50, 54, 51, 128, 65, 50, 54, 50, 128, 65, 50, 54, 49, 128, 65, - 50, 54, 48, 128, 65, 50, 53, 57, 128, 65, 50, 53, 56, 128, 65, 50, 53, - 55, 128, 65, 50, 53, 54, 128, 65, 50, 53, 53, 128, 65, 50, 53, 52, 128, - 65, 50, 53, 51, 128, 65, 50, 53, 50, 128, 65, 50, 53, 49, 128, 65, 50, - 53, 48, 128, 65, 50, 52, 57, 128, 65, 50, 52, 56, 128, 65, 50, 52, 55, - 128, 65, 50, 52, 54, 128, 65, 50, 52, 53, 128, 65, 50, 52, 52, 128, 65, - 50, 52, 51, 128, 65, 50, 52, 50, 128, 65, 50, 52, 49, 128, 65, 50, 52, - 48, 128, 65, 50, 51, 57, 128, 65, 50, 51, 56, 128, 65, 50, 51, 55, 128, - 65, 50, 51, 54, 128, 65, 50, 51, 53, 128, 65, 50, 51, 52, 128, 65, 50, - 51, 51, 128, 65, 50, 51, 50, 128, 65, 50, 51, 49, 128, 65, 50, 51, 48, - 128, 65, 50, 50, 57, 128, 65, 50, 50, 56, 128, 65, 50, 50, 55, 65, 128, - 65, 50, 50, 55, 128, 65, 50, 50, 54, 128, 65, 50, 50, 53, 128, 65, 50, - 50, 52, 128, 65, 50, 50, 51, 128, 65, 50, 50, 50, 128, 65, 50, 50, 49, - 128, 65, 50, 50, 48, 128, 65, 50, 49, 57, 128, 65, 50, 49, 56, 128, 65, - 50, 49, 55, 128, 65, 50, 49, 54, 65, 128, 65, 50, 49, 54, 128, 65, 50, - 49, 53, 65, 128, 65, 50, 49, 53, 128, 65, 50, 49, 52, 128, 65, 50, 49, - 51, 128, 65, 50, 49, 50, 128, 65, 50, 49, 49, 128, 65, 50, 49, 48, 128, - 65, 50, 48, 57, 65, 128, 65, 50, 48, 57, 128, 65, 50, 48, 56, 128, 65, - 50, 48, 55, 65, 128, 65, 50, 48, 55, 128, 65, 50, 48, 54, 128, 65, 50, - 48, 53, 128, 65, 50, 48, 52, 128, 65, 50, 48, 51, 128, 65, 50, 48, 50, - 66, 128, 65, 50, 48, 50, 65, 128, 65, 50, 48, 50, 128, 65, 50, 48, 49, - 128, 65, 50, 48, 48, 128, 65, 49, 57, 57, 128, 65, 49, 57, 56, 128, 65, - 49, 57, 55, 128, 65, 49, 57, 54, 128, 65, 49, 57, 53, 128, 65, 49, 57, - 52, 128, 65, 49, 57, 51, 128, 65, 49, 57, 50, 128, 65, 49, 57, 49, 128, - 65, 49, 57, 48, 128, 65, 49, 56, 57, 128, 65, 49, 56, 56, 128, 65, 49, - 56, 55, 128, 65, 49, 56, 54, 128, 65, 49, 56, 53, 128, 65, 49, 56, 52, - 128, 65, 49, 56, 51, 128, 65, 49, 56, 50, 128, 65, 49, 56, 49, 128, 65, - 49, 56, 48, 128, 65, 49, 55, 57, 128, 65, 49, 55, 56, 128, 65, 49, 55, - 55, 128, 65, 49, 55, 54, 128, 65, 49, 55, 53, 128, 65, 49, 55, 52, 128, - 65, 49, 55, 51, 128, 65, 49, 55, 50, 128, 65, 49, 55, 49, 128, 65, 49, - 55, 48, 128, 65, 49, 54, 57, 128, 65, 49, 54, 56, 128, 65, 49, 54, 55, - 128, 65, 49, 54, 54, 128, 65, 49, 54, 53, 128, 65, 49, 54, 52, 128, 65, - 49, 54, 51, 128, 65, 49, 54, 50, 128, 65, 49, 54, 49, 128, 65, 49, 54, - 48, 128, 65, 49, 53, 57, 128, 65, 49, 53, 56, 128, 65, 49, 53, 55, 128, - 65, 49, 53, 54, 128, 65, 49, 53, 53, 128, 65, 49, 53, 52, 128, 65, 49, - 53, 51, 128, 65, 49, 53, 50, 128, 65, 49, 53, 49, 128, 65, 49, 53, 48, - 128, 65, 49, 52, 57, 128, 65, 49, 52, 56, 128, 65, 49, 52, 55, 128, 65, - 49, 52, 54, 128, 65, 49, 52, 53, 128, 65, 49, 52, 52, 128, 65, 49, 52, - 51, 128, 65, 49, 52, 50, 128, 65, 49, 52, 49, 128, 65, 49, 52, 48, 128, - 65, 49, 51, 57, 128, 65, 49, 51, 56, 128, 65, 49, 51, 55, 128, 65, 49, - 51, 54, 128, 65, 49, 51, 53, 65, 128, 65, 49, 51, 53, 128, 65, 49, 51, - 52, 128, 65, 49, 51, 51, 128, 65, 49, 51, 50, 128, 65, 49, 51, 49, 67, - 128, 65, 49, 51, 49, 128, 65, 49, 51, 48, 128, 65, 49, 50, 57, 128, 65, - 49, 50, 56, 128, 65, 49, 50, 55, 128, 65, 49, 50, 54, 128, 65, 49, 50, - 53, 65, 128, 65, 49, 50, 53, 128, 65, 49, 50, 52, 128, 65, 49, 50, 51, - 128, 65, 49, 50, 50, 128, 65, 49, 50, 49, 128, 65, 49, 50, 48, 66, 128, - 65, 49, 50, 48, 128, 65, 49, 49, 57, 128, 65, 49, 49, 56, 128, 65, 49, - 49, 55, 128, 65, 49, 49, 54, 128, 65, 49, 49, 53, 65, 128, 65, 49, 49, - 53, 128, 65, 49, 49, 52, 128, 65, 49, 49, 51, 128, 65, 49, 49, 50, 128, - 65, 49, 49, 49, 128, 65, 49, 49, 48, 66, 128, 65, 49, 49, 48, 65, 128, - 65, 49, 49, 48, 128, 65, 49, 48, 57, 128, 65, 49, 48, 56, 128, 65, 49, - 48, 55, 67, 128, 65, 49, 48, 55, 66, 128, 65, 49, 48, 55, 65, 128, 65, - 49, 48, 55, 128, 65, 49, 48, 54, 128, 65, 49, 48, 53, 66, 128, 65, 49, - 48, 53, 65, 128, 65, 49, 48, 53, 128, 65, 49, 48, 52, 67, 128, 65, 49, - 48, 52, 66, 128, 65, 49, 48, 52, 65, 128, 65, 49, 48, 52, 128, 65, 49, - 48, 51, 128, 65, 49, 48, 50, 65, 128, 65, 49, 48, 50, 128, 65, 49, 48, - 49, 65, 128, 65, 49, 48, 49, 128, 65, 49, 48, 48, 65, 128, 65, 49, 48, - 48, 45, 49, 48, 50, 128, 65, 49, 48, 48, 128, 65, 48, 57, 57, 128, 65, - 48, 57, 56, 65, 128, 65, 48, 57, 56, 128, 65, 48, 57, 55, 65, 128, 65, - 48, 57, 55, 128, 65, 48, 57, 54, 128, 65, 48, 57, 53, 128, 65, 48, 57, - 52, 128, 65, 48, 57, 51, 128, 65, 48, 57, 50, 128, 65, 48, 57, 49, 128, - 65, 48, 57, 48, 128, 65, 48, 56, 57, 128, 65, 48, 56, 56, 128, 65, 48, - 56, 55, 128, 65, 48, 56, 54, 128, 65, 48, 56, 53, 128, 65, 48, 56, 52, - 128, 65, 48, 56, 51, 128, 65, 48, 56, 50, 128, 65, 48, 56, 49, 128, 65, - 48, 56, 48, 128, 65, 48, 55, 57, 128, 65, 48, 55, 56, 128, 65, 48, 55, - 55, 128, 65, 48, 55, 54, 128, 65, 48, 55, 53, 128, 65, 48, 55, 52, 128, - 65, 48, 55, 51, 128, 65, 48, 55, 50, 128, 65, 48, 55, 49, 128, 65, 48, - 55, 48, 128, 65, 48, 54, 57, 128, 65, 48, 54, 56, 128, 65, 48, 54, 55, - 128, 65, 48, 54, 54, 67, 128, 65, 48, 54, 54, 66, 128, 65, 48, 54, 54, - 65, 128, 65, 48, 54, 54, 128, 65, 48, 54, 53, 128, 65, 48, 54, 52, 128, - 65, 48, 54, 51, 128, 65, 48, 54, 50, 128, 65, 48, 54, 49, 128, 65, 48, - 54, 48, 128, 65, 48, 53, 57, 128, 65, 48, 53, 56, 128, 65, 48, 53, 55, - 128, 65, 48, 53, 54, 128, 65, 48, 53, 53, 128, 65, 48, 53, 52, 128, 65, - 48, 53, 51, 128, 65, 48, 53, 50, 128, 65, 48, 53, 49, 128, 65, 48, 53, - 48, 128, 65, 48, 52, 57, 128, 65, 48, 52, 56, 128, 65, 48, 52, 55, 128, - 65, 48, 52, 54, 66, 128, 65, 48, 52, 54, 65, 128, 65, 48, 52, 54, 128, - 65, 48, 52, 53, 65, 128, 65, 48, 52, 53, 128, 65, 48, 52, 52, 128, 65, - 48, 52, 51, 65, 128, 65, 48, 52, 51, 128, 65, 48, 52, 50, 65, 128, 65, - 48, 52, 50, 128, 65, 48, 52, 49, 65, 128, 65, 48, 52, 49, 128, 65, 48, - 52, 48, 65, 128, 65, 48, 52, 48, 128, 65, 48, 51, 57, 65, 128, 65, 48, - 51, 57, 128, 65, 48, 51, 56, 128, 65, 48, 51, 55, 128, 65, 48, 51, 54, - 128, 65, 48, 51, 53, 128, 65, 48, 51, 52, 128, 65, 48, 51, 51, 128, 65, - 48, 51, 50, 65, 128, 65, 48, 50, 56, 66, 128, 65, 48, 50, 54, 65, 128, - 65, 48, 49, 55, 65, 128, 65, 48, 49, 52, 65, 128, 65, 48, 49, 48, 65, - 128, 65, 48, 48, 54, 66, 128, 65, 48, 48, 54, 65, 128, 65, 48, 48, 53, - 65, 128, 65, 45, 87, 79, 128, 65, 45, 69, 85, 128, 45, 85, 205, 45, 80, - 72, 82, 85, 128, 45, 75, 72, 89, 85, 196, 45, 75, 72, 89, 73, 76, 128, - 45, 68, 90, 85, 196, 45, 67, 72, 65, 210, 45, 67, 72, 65, 76, 128, + 79, 82, 128, 65, 78, 89, 128, 65, 78, 85, 83, 86, 65, 82, 65, 89, 65, + 128, 65, 78, 85, 83, 86, 65, 82, 65, 128, 65, 78, 85, 83, 86, 65, 82, + 193, 65, 78, 85, 68, 65, 84, 84, 65, 128, 65, 78, 85, 68, 65, 84, 84, + 193, 65, 78, 84, 73, 82, 69, 83, 84, 82, 73, 67, 84, 73, 79, 78, 128, 65, + 78, 84, 73, 77, 79, 78, 89, 45, 50, 128, 65, 78, 84, 73, 77, 79, 78, 89, + 128, 65, 78, 84, 73, 77, 79, 78, 217, 65, 78, 84, 73, 77, 79, 78, 73, 65, + 84, 69, 128, 65, 78, 84, 73, 75, 69, 78, 79, 77, 65, 128, 65, 78, 84, 73, + 75, 69, 78, 79, 75, 89, 76, 73, 83, 77, 65, 128, 65, 78, 84, 73, 70, 79, + 78, 73, 65, 128, 65, 78, 84, 73, 67, 76, 79, 67, 75, 87, 73, 83, 69, 45, + 82, 79, 84, 65, 84, 69, 196, 65, 78, 84, 73, 67, 76, 79, 67, 75, 87, 73, + 83, 69, 128, 65, 78, 84, 73, 67, 76, 79, 67, 75, 87, 73, 83, 197, 65, 78, + 84, 69, 78, 78, 65, 128, 65, 78, 84, 69, 78, 78, 193, 65, 78, 84, 65, 82, + 71, 79, 77, 85, 75, 72, 65, 128, 65, 78, 83, 85, 218, 65, 78, 83, 72, 69, + 128, 65, 78, 80, 69, 65, 128, 65, 78, 207, 65, 78, 78, 85, 73, 84, 217, + 65, 78, 78, 79, 84, 65, 84, 73, 79, 206, 65, 78, 78, 65, 65, 85, 128, 65, + 78, 75, 72, 128, 65, 78, 74, 73, 128, 65, 78, 73, 77, 65, 76, 128, 65, + 78, 72, 85, 78, 78, 65, 128, 65, 78, 72, 85, 77, 65, 65, 128, 65, 78, 72, + 85, 77, 128, 65, 78, 72, 85, 128, 65, 78, 72, 65, 65, 128, 65, 78, 72, + 128, 65, 78, 71, 85, 76, 65, 82, 128, 65, 78, 71, 85, 73, 83, 72, 69, + 196, 65, 78, 71, 83, 84, 82, 79, 205, 65, 78, 71, 82, 217, 65, 78, 71, + 76, 73, 67, 65, 78, 193, 65, 78, 71, 76, 69, 68, 128, 65, 78, 71, 76, 69, + 196, 65, 78, 71, 75, 72, 65, 78, 75, 72, 85, 128, 65, 78, 71, 75, 65, + 128, 65, 78, 71, 69, 210, 65, 78, 71, 69, 76, 128, 65, 78, 71, 69, 68, + 128, 65, 78, 68, 65, 80, 128, 65, 78, 67, 79, 82, 65, 128, 65, 78, 67, + 72, 79, 82, 128, 65, 78, 65, 84, 82, 73, 67, 72, 73, 83, 77, 65, 128, 65, + 78, 65, 84, 79, 77, 73, 67, 65, 204, 65, 78, 65, 80, 128, 65, 78, 45, 78, + 73, 83, 70, 128, 65, 77, 85, 76, 69, 84, 128, 65, 77, 80, 83, 128, 65, + 77, 80, 72, 79, 82, 65, 128, 65, 77, 80, 69, 82, 83, 65, 78, 68, 128, 65, + 77, 80, 69, 82, 83, 65, 78, 196, 65, 77, 79, 85, 78, 212, 65, 77, 69, 82, + 73, 67, 65, 83, 128, 65, 77, 69, 82, 73, 67, 65, 206, 65, 77, 66, 85, 76, + 65, 78, 67, 69, 128, 65, 77, 66, 193, 65, 77, 66, 128, 65, 77, 65, 82, + 128, 65, 77, 65, 210, 65, 77, 65, 76, 71, 65, 77, 65, 84, 73, 79, 206, + 65, 77, 65, 76, 71, 65, 77, 128, 65, 76, 86, 69, 79, 76, 65, 210, 65, 76, + 85, 77, 128, 65, 76, 84, 69, 82, 78, 65, 84, 73, 86, 197, 65, 76, 84, 69, + 82, 78, 65, 84, 73, 79, 206, 65, 76, 84, 69, 82, 78, 65, 84, 73, 78, 71, + 128, 65, 76, 84, 69, 82, 78, 65, 84, 73, 78, 199, 65, 76, 84, 69, 82, 78, + 65, 84, 69, 128, 65, 76, 84, 69, 82, 78, 65, 84, 197, 65, 76, 84, 65, + 128, 65, 76, 80, 72, 65, 128, 65, 76, 80, 72, 193, 65, 76, 80, 65, 80, + 82, 65, 78, 65, 128, 65, 76, 80, 65, 80, 82, 65, 65, 78, 193, 65, 76, 80, + 65, 128, 65, 76, 77, 79, 83, 212, 65, 76, 76, 79, 128, 65, 76, 76, 73, + 65, 78, 67, 69, 128, 65, 76, 76, 201, 65, 76, 76, 65, 200, 65, 76, 76, + 65, 65, 72, 128, 65, 76, 75, 65, 76, 73, 45, 50, 128, 65, 76, 75, 65, 76, + 73, 128, 65, 76, 73, 71, 78, 69, 196, 65, 76, 73, 70, 85, 128, 65, 76, + 73, 70, 128, 65, 76, 73, 198, 65, 76, 73, 69, 78, 128, 65, 76, 73, 69, + 206, 65, 76, 71, 73, 218, 65, 76, 70, 65, 128, 65, 76, 69, 85, 212, 65, + 76, 69, 82, 84, 128, 65, 76, 69, 80, 72, 128, 65, 76, 69, 77, 66, 73, 67, + 128, 65, 76, 69, 70, 128, 65, 76, 66, 65, 78, 73, 65, 206, 65, 76, 65, + 89, 78, 65, 65, 128, 65, 76, 65, 89, 72, 73, 77, 65, 193, 65, 76, 65, 89, + 72, 73, 205, 65, 76, 65, 89, 72, 201, 65, 76, 65, 89, 72, 69, 128, 65, + 76, 65, 89, 72, 197, 65, 76, 65, 89, 72, 65, 193, 65, 76, 65, 82, 205, + 65, 76, 65, 80, 72, 128, 65, 76, 45, 76, 65, 75, 85, 78, 65, 128, 65, 76, + 45, 74, 85, 90, 128, 65, 75, 85, 82, 213, 65, 75, 84, 73, 69, 83, 69, 76, + 83, 75, 65, 66, 128, 65, 75, 83, 65, 128, 65, 75, 72, 77, 73, 77, 73, + 195, 65, 75, 66, 65, 210, 65, 75, 65, 82, 65, 128, 65, 75, 65, 82, 193, + 65, 73, 89, 65, 78, 78, 65, 128, 65, 73, 86, 73, 76, 73, 203, 65, 73, 86, + 65, 128, 65, 73, 84, 79, 206, 65, 73, 82, 80, 76, 65, 78, 69, 128, 65, + 73, 82, 80, 76, 65, 78, 197, 65, 73, 78, 213, 65, 73, 78, 78, 128, 65, + 73, 76, 77, 128, 65, 73, 75, 65, 82, 65, 128, 65, 73, 72, 86, 85, 83, + 128, 65, 72, 83, 68, 65, 128, 65, 72, 83, 65, 128, 65, 72, 79, 205, 65, + 72, 65, 78, 199, 65, 72, 65, 71, 71, 65, 210, 65, 72, 65, 68, 128, 65, + 71, 85, 78, 71, 128, 65, 71, 79, 71, 201, 65, 71, 71, 82, 65, 86, 65, 84, + 73, 79, 78, 128, 65, 71, 71, 82, 65, 86, 65, 84, 69, 196, 65, 71, 65, 73, + 78, 83, 212, 65, 71, 65, 73, 78, 128, 65, 70, 84, 69, 210, 65, 70, 83, + 65, 65, 81, 128, 65, 70, 82, 73, 67, 65, 206, 65, 70, 79, 82, 69, 77, 69, + 78, 84, 73, 79, 78, 69, 68, 128, 65, 70, 71, 72, 65, 78, 201, 65, 70, 70, + 82, 73, 67, 65, 84, 73, 79, 206, 65, 70, 70, 73, 216, 65, 69, 89, 65, 78, + 78, 65, 128, 65, 69, 89, 128, 65, 69, 83, 67, 85, 76, 65, 80, 73, 85, 83, + 128, 65, 69, 83, 67, 128, 65, 69, 83, 128, 65, 69, 82, 73, 65, 204, 65, + 69, 82, 128, 65, 69, 76, 65, 45, 80, 73, 76, 76, 65, 128, 65, 69, 76, + 128, 65, 69, 75, 128, 65, 69, 71, 69, 65, 206, 65, 69, 71, 128, 65, 69, + 69, 89, 65, 78, 78, 65, 128, 65, 69, 69, 128, 65, 69, 68, 65, 45, 80, 73, + 76, 76, 65, 128, 65, 69, 68, 128, 65, 69, 66, 128, 65, 68, 86, 65, 78, + 84, 65, 71, 69, 128, 65, 68, 86, 65, 78, 67, 69, 128, 65, 68, 85, 76, 84, + 128, 65, 68, 77, 73, 83, 83, 73, 79, 206, 65, 68, 77, 69, 84, 79, 83, + 128, 65, 68, 76, 65, 205, 65, 68, 72, 69, 83, 73, 86, 197, 65, 68, 69, + 71, 128, 65, 68, 69, 199, 65, 68, 68, 82, 69, 83, 83, 69, 196, 65, 68, + 68, 82, 69, 83, 211, 65, 68, 68, 65, 75, 128, 65, 68, 65, 203, 65, 67, + 85, 84, 69, 45, 77, 65, 67, 82, 79, 78, 128, 65, 67, 85, 84, 69, 45, 71, + 82, 65, 86, 69, 45, 65, 67, 85, 84, 69, 128, 65, 67, 85, 84, 197, 65, 67, + 84, 85, 65, 76, 76, 217, 65, 67, 84, 73, 86, 65, 84, 197, 65, 67, 82, 79, + 80, 72, 79, 78, 73, 195, 65, 67, 75, 78, 79, 87, 76, 69, 68, 71, 69, 128, + 65, 67, 67, 85, 77, 85, 76, 65, 84, 73, 79, 78, 128, 65, 67, 67, 79, 85, + 78, 212, 65, 67, 67, 79, 82, 68, 73, 79, 78, 128, 65, 67, 67, 79, 77, 77, + 79, 68, 65, 84, 73, 79, 78, 128, 65, 67, 67, 69, 80, 84, 128, 65, 67, 67, + 69, 78, 84, 45, 83, 84, 65, 67, 67, 65, 84, 79, 128, 65, 67, 67, 69, 78, + 84, 128, 65, 67, 67, 69, 78, 212, 65, 67, 65, 68, 69, 77, 217, 65, 66, + 89, 83, 77, 65, 204, 65, 66, 85, 78, 68, 65, 78, 67, 69, 128, 65, 66, 75, + 72, 65, 83, 73, 65, 206, 65, 66, 66, 82, 69, 86, 73, 65, 84, 73, 79, 206, + 65, 66, 65, 70, 73, 76, 73, 128, 65, 66, 65, 67, 85, 83, 128, 65, 66, + 178, 65, 66, 49, 57, 49, 128, 65, 66, 49, 56, 56, 128, 65, 66, 49, 56, + 48, 128, 65, 66, 49, 55, 49, 128, 65, 66, 49, 54, 52, 128, 65, 66, 49, + 51, 49, 66, 128, 65, 66, 49, 51, 49, 65, 128, 65, 66, 49, 50, 51, 128, + 65, 66, 49, 50, 50, 128, 65, 66, 49, 50, 48, 128, 65, 66, 49, 49, 56, + 128, 65, 66, 48, 56, 55, 128, 65, 66, 48, 56, 54, 128, 65, 66, 48, 56, + 53, 128, 65, 66, 48, 56, 50, 128, 65, 66, 48, 56, 49, 128, 65, 66, 48, + 56, 48, 128, 65, 66, 48, 55, 57, 128, 65, 66, 48, 55, 56, 128, 65, 66, + 48, 55, 55, 128, 65, 66, 48, 55, 54, 128, 65, 66, 48, 55, 52, 128, 65, + 66, 48, 55, 51, 128, 65, 66, 48, 55, 48, 128, 65, 66, 48, 54, 57, 128, + 65, 66, 48, 54, 55, 128, 65, 66, 48, 54, 54, 128, 65, 66, 48, 54, 53, + 128, 65, 66, 48, 54, 49, 128, 65, 66, 48, 54, 48, 128, 65, 66, 48, 53, + 57, 128, 65, 66, 48, 53, 56, 128, 65, 66, 48, 53, 55, 128, 65, 66, 48, + 53, 54, 128, 65, 66, 48, 53, 53, 128, 65, 66, 48, 53, 52, 128, 65, 66, + 48, 53, 51, 128, 65, 66, 48, 53, 49, 128, 65, 66, 48, 53, 48, 128, 65, + 66, 48, 52, 57, 128, 65, 66, 48, 52, 56, 128, 65, 66, 48, 52, 55, 128, + 65, 66, 48, 52, 54, 128, 65, 66, 48, 52, 53, 128, 65, 66, 48, 52, 52, + 128, 65, 66, 48, 52, 49, 128, 65, 66, 48, 52, 48, 128, 65, 66, 48, 51, + 57, 128, 65, 66, 48, 51, 56, 128, 65, 66, 48, 51, 55, 128, 65, 66, 48, + 51, 52, 128, 65, 66, 48, 51, 49, 128, 65, 66, 48, 51, 48, 128, 65, 66, + 48, 50, 57, 128, 65, 66, 48, 50, 56, 128, 65, 66, 48, 50, 55, 128, 65, + 66, 48, 50, 54, 128, 65, 66, 48, 50, 52, 128, 65, 66, 48, 50, 51, 77, + 128, 65, 66, 48, 50, 51, 128, 65, 66, 48, 50, 50, 77, 128, 65, 66, 48, + 50, 50, 70, 128, 65, 66, 48, 50, 50, 128, 65, 66, 48, 50, 49, 77, 128, + 65, 66, 48, 50, 49, 70, 128, 65, 66, 48, 50, 49, 128, 65, 66, 48, 50, 48, + 128, 65, 66, 48, 49, 55, 128, 65, 66, 48, 49, 54, 128, 65, 66, 48, 49, + 51, 128, 65, 66, 48, 49, 49, 128, 65, 66, 48, 49, 48, 128, 65, 66, 48, + 48, 57, 128, 65, 66, 48, 48, 56, 128, 65, 66, 48, 48, 55, 128, 65, 66, + 48, 48, 54, 128, 65, 66, 48, 48, 53, 128, 65, 66, 48, 48, 52, 128, 65, + 66, 48, 48, 51, 128, 65, 66, 48, 48, 50, 128, 65, 66, 48, 48, 49, 128, + 65, 65, 90, 72, 65, 65, 75, 75, 85, 128, 65, 65, 89, 73, 78, 128, 65, 65, + 89, 65, 78, 78, 65, 128, 65, 65, 89, 128, 65, 65, 87, 128, 65, 65, 79, + 128, 65, 65, 74, 128, 65, 65, 66, 65, 65, 70, 73, 76, 73, 128, 65, 65, + 48, 51, 50, 128, 65, 65, 48, 51, 49, 128, 65, 65, 48, 51, 48, 128, 65, + 65, 48, 50, 57, 128, 65, 65, 48, 50, 56, 128, 65, 65, 48, 50, 55, 128, + 65, 65, 48, 50, 54, 128, 65, 65, 48, 50, 53, 128, 65, 65, 48, 50, 52, + 128, 65, 65, 48, 50, 51, 128, 65, 65, 48, 50, 50, 128, 65, 65, 48, 50, + 49, 128, 65, 65, 48, 50, 48, 128, 65, 65, 48, 49, 57, 128, 65, 65, 48, + 49, 56, 128, 65, 65, 48, 49, 55, 128, 65, 65, 48, 49, 54, 128, 65, 65, + 48, 49, 53, 128, 65, 65, 48, 49, 52, 128, 65, 65, 48, 49, 51, 128, 65, + 65, 48, 49, 50, 128, 65, 65, 48, 49, 49, 128, 65, 65, 48, 49, 48, 128, + 65, 65, 48, 48, 57, 128, 65, 65, 48, 48, 56, 128, 65, 65, 48, 48, 55, 66, + 128, 65, 65, 48, 48, 55, 65, 128, 65, 65, 48, 48, 55, 128, 65, 65, 48, + 48, 54, 128, 65, 65, 48, 48, 53, 128, 65, 65, 48, 48, 52, 128, 65, 65, + 48, 48, 51, 128, 65, 65, 48, 48, 50, 128, 65, 65, 48, 48, 49, 128, 65, + 56, 48, 55, 128, 65, 56, 48, 54, 128, 65, 56, 48, 53, 128, 65, 56, 48, + 52, 128, 65, 56, 48, 51, 128, 65, 56, 48, 50, 128, 65, 56, 48, 49, 128, + 65, 56, 48, 48, 128, 65, 55, 51, 178, 65, 55, 50, 182, 65, 55, 49, 183, + 65, 55, 49, 181, 65, 55, 49, 180, 65, 55, 49, 179, 65, 55, 49, 178, 65, + 55, 49, 177, 65, 55, 49, 176, 65, 55, 48, 57, 45, 182, 65, 55, 48, 57, + 45, 180, 65, 55, 48, 57, 45, 179, 65, 55, 48, 57, 45, 178, 65, 55, 48, + 185, 65, 55, 48, 184, 65, 55, 48, 183, 65, 55, 48, 182, 65, 55, 48, 181, + 65, 55, 48, 180, 65, 55, 48, 179, 65, 55, 48, 178, 65, 55, 48, 177, 65, + 54, 54, 52, 128, 65, 54, 54, 51, 128, 65, 54, 54, 50, 128, 65, 54, 54, + 49, 128, 65, 54, 54, 48, 128, 65, 54, 53, 57, 128, 65, 54, 53, 56, 128, + 65, 54, 53, 55, 128, 65, 54, 53, 54, 128, 65, 54, 53, 53, 128, 65, 54, + 53, 52, 128, 65, 54, 53, 51, 128, 65, 54, 53, 50, 128, 65, 54, 53, 49, + 128, 65, 54, 52, 57, 128, 65, 54, 52, 56, 128, 65, 54, 52, 54, 128, 65, + 54, 52, 53, 128, 65, 54, 52, 52, 128, 65, 54, 52, 51, 128, 65, 54, 52, + 50, 128, 65, 54, 52, 48, 128, 65, 54, 51, 56, 128, 65, 54, 51, 55, 128, + 65, 54, 51, 52, 128, 65, 54, 50, 57, 128, 65, 54, 50, 56, 128, 65, 54, + 50, 55, 128, 65, 54, 50, 54, 128, 65, 54, 50, 52, 128, 65, 54, 50, 51, + 128, 65, 54, 50, 50, 128, 65, 54, 50, 49, 128, 65, 54, 50, 48, 128, 65, + 54, 49, 57, 128, 65, 54, 49, 56, 128, 65, 54, 49, 55, 128, 65, 54, 49, + 54, 128, 65, 54, 49, 53, 128, 65, 54, 49, 52, 128, 65, 54, 49, 51, 128, + 65, 54, 49, 50, 128, 65, 54, 49, 49, 128, 65, 54, 49, 48, 128, 65, 54, + 48, 57, 128, 65, 54, 48, 56, 128, 65, 54, 48, 54, 128, 65, 54, 48, 52, + 128, 65, 54, 48, 51, 128, 65, 54, 48, 50, 128, 65, 54, 48, 49, 128, 65, + 54, 48, 48, 128, 65, 53, 57, 56, 128, 65, 53, 57, 54, 128, 65, 53, 57, + 53, 128, 65, 53, 57, 52, 128, 65, 53, 57, 50, 128, 65, 53, 57, 49, 128, + 65, 53, 56, 57, 128, 65, 53, 56, 56, 128, 65, 53, 56, 55, 128, 65, 53, + 56, 54, 128, 65, 53, 56, 53, 128, 65, 53, 56, 52, 128, 65, 53, 56, 51, + 128, 65, 53, 56, 50, 128, 65, 53, 56, 49, 128, 65, 53, 56, 48, 128, 65, + 53, 55, 57, 128, 65, 53, 55, 56, 128, 65, 53, 55, 55, 128, 65, 53, 55, + 54, 128, 65, 53, 55, 53, 128, 65, 53, 55, 52, 128, 65, 53, 55, 51, 128, + 65, 53, 55, 50, 128, 65, 53, 55, 49, 128, 65, 53, 55, 48, 128, 65, 53, + 54, 57, 128, 65, 53, 54, 56, 128, 65, 53, 54, 54, 128, 65, 53, 54, 53, + 128, 65, 53, 54, 52, 128, 65, 53, 54, 51, 128, 65, 53, 53, 57, 128, 65, + 53, 53, 55, 128, 65, 53, 53, 54, 128, 65, 53, 53, 53, 128, 65, 53, 53, + 52, 128, 65, 53, 53, 51, 128, 65, 53, 53, 50, 128, 65, 53, 53, 49, 128, + 65, 53, 53, 48, 128, 65, 53, 52, 57, 128, 65, 53, 52, 56, 128, 65, 53, + 52, 55, 128, 65, 53, 52, 53, 128, 65, 53, 52, 50, 128, 65, 53, 52, 49, + 128, 65, 53, 52, 48, 128, 65, 53, 51, 57, 128, 65, 53, 51, 56, 128, 65, + 53, 51, 55, 128, 65, 53, 51, 54, 128, 65, 53, 51, 53, 128, 65, 53, 51, + 52, 128, 65, 53, 51, 50, 128, 65, 53, 51, 49, 128, 65, 53, 51, 48, 128, + 65, 53, 50, 57, 128, 65, 53, 50, 56, 128, 65, 53, 50, 55, 128, 65, 53, + 50, 54, 128, 65, 53, 50, 53, 128, 65, 53, 50, 52, 128, 65, 53, 50, 51, + 128, 65, 53, 50, 50, 128, 65, 53, 50, 49, 128, 65, 53, 50, 48, 128, 65, + 53, 49, 57, 128, 65, 53, 49, 56, 128, 65, 53, 49, 55, 128, 65, 53, 49, + 54, 128, 65, 53, 49, 53, 128, 65, 53, 49, 52, 128, 65, 53, 49, 51, 128, + 65, 53, 49, 50, 128, 65, 53, 49, 49, 128, 65, 53, 49, 48, 128, 65, 53, + 48, 57, 128, 65, 53, 48, 56, 128, 65, 53, 48, 55, 128, 65, 53, 48, 54, + 128, 65, 53, 48, 53, 128, 65, 53, 48, 52, 128, 65, 53, 48, 51, 128, 65, + 53, 48, 50, 128, 65, 53, 48, 49, 128, 65, 52, 57, 55, 128, 65, 52, 57, + 54, 128, 65, 52, 57, 53, 128, 65, 52, 57, 52, 128, 65, 52, 57, 51, 128, + 65, 52, 57, 50, 128, 65, 52, 57, 49, 128, 65, 52, 57, 48, 128, 65, 52, + 56, 57, 128, 65, 52, 56, 56, 128, 65, 52, 56, 55, 128, 65, 52, 56, 54, + 128, 65, 52, 56, 53, 128, 65, 52, 56, 52, 128, 65, 52, 56, 51, 128, 65, + 52, 56, 50, 128, 65, 52, 56, 49, 128, 65, 52, 56, 48, 128, 65, 52, 55, + 57, 128, 65, 52, 55, 56, 128, 65, 52, 55, 55, 128, 65, 52, 55, 54, 128, + 65, 52, 55, 53, 128, 65, 52, 55, 52, 128, 65, 52, 55, 51, 128, 65, 52, + 55, 50, 128, 65, 52, 55, 49, 128, 65, 52, 55, 48, 128, 65, 52, 54, 57, + 128, 65, 52, 54, 56, 128, 65, 52, 54, 55, 128, 65, 52, 54, 54, 128, 65, + 52, 54, 53, 128, 65, 52, 54, 52, 128, 65, 52, 54, 51, 128, 65, 52, 54, + 50, 128, 65, 52, 54, 49, 128, 65, 52, 54, 48, 128, 65, 52, 53, 57, 128, + 65, 52, 53, 56, 128, 65, 52, 53, 55, 65, 128, 65, 52, 53, 55, 128, 65, + 52, 53, 54, 128, 65, 52, 53, 53, 128, 65, 52, 53, 52, 128, 65, 52, 53, + 51, 128, 65, 52, 53, 50, 128, 65, 52, 53, 49, 128, 65, 52, 53, 48, 65, + 128, 65, 52, 53, 48, 128, 65, 52, 52, 57, 128, 65, 52, 52, 56, 128, 65, + 52, 52, 55, 128, 65, 52, 52, 54, 128, 65, 52, 52, 53, 128, 65, 52, 52, + 52, 128, 65, 52, 52, 51, 128, 65, 52, 52, 50, 128, 65, 52, 52, 49, 128, + 65, 52, 52, 48, 128, 65, 52, 51, 57, 128, 65, 52, 51, 56, 128, 65, 52, + 51, 55, 128, 65, 52, 51, 54, 128, 65, 52, 51, 53, 128, 65, 52, 51, 52, + 128, 65, 52, 51, 51, 128, 65, 52, 51, 50, 128, 65, 52, 51, 49, 128, 65, + 52, 51, 48, 128, 65, 52, 50, 57, 128, 65, 52, 50, 56, 128, 65, 52, 50, + 55, 128, 65, 52, 50, 54, 128, 65, 52, 50, 53, 128, 65, 52, 50, 52, 128, + 65, 52, 50, 51, 128, 65, 52, 50, 50, 128, 65, 52, 50, 49, 128, 65, 52, + 50, 48, 128, 65, 52, 49, 57, 128, 65, 52, 49, 56, 45, 86, 65, 83, 128, + 65, 52, 49, 56, 128, 65, 52, 49, 55, 45, 86, 65, 83, 128, 65, 52, 49, 55, + 128, 65, 52, 49, 54, 45, 86, 65, 83, 128, 65, 52, 49, 54, 128, 65, 52, + 49, 53, 45, 86, 65, 83, 128, 65, 52, 49, 53, 128, 65, 52, 49, 52, 45, 86, + 65, 83, 128, 65, 52, 49, 52, 128, 65, 52, 49, 51, 45, 86, 65, 83, 128, + 65, 52, 49, 51, 128, 65, 52, 49, 50, 45, 86, 65, 83, 128, 65, 52, 49, 50, + 128, 65, 52, 49, 49, 45, 86, 65, 83, 128, 65, 52, 49, 49, 128, 65, 52, + 49, 48, 193, 65, 52, 49, 48, 45, 86, 65, 83, 128, 65, 52, 49, 176, 65, + 52, 48, 57, 45, 86, 65, 83, 128, 65, 52, 48, 57, 128, 65, 52, 48, 56, 45, + 86, 65, 83, 128, 65, 52, 48, 56, 128, 65, 52, 48, 55, 45, 86, 65, 83, + 128, 65, 52, 48, 55, 128, 65, 52, 48, 54, 45, 86, 65, 83, 128, 65, 52, + 48, 54, 128, 65, 52, 48, 53, 45, 86, 65, 83, 128, 65, 52, 48, 53, 128, + 65, 52, 48, 52, 45, 86, 65, 83, 128, 65, 52, 48, 52, 128, 65, 52, 48, 51, + 45, 86, 65, 83, 128, 65, 52, 48, 51, 128, 65, 52, 48, 50, 45, 86, 65, 83, + 128, 65, 52, 48, 50, 128, 65, 52, 48, 49, 45, 86, 65, 83, 128, 65, 52, + 48, 49, 128, 65, 52, 48, 48, 45, 86, 65, 83, 128, 65, 52, 48, 48, 128, + 65, 51, 57, 57, 128, 65, 51, 57, 56, 128, 65, 51, 57, 55, 128, 65, 51, + 57, 54, 128, 65, 51, 57, 53, 128, 65, 51, 57, 52, 128, 65, 51, 57, 179, + 65, 51, 57, 50, 128, 65, 51, 57, 49, 128, 65, 51, 57, 48, 128, 65, 51, + 56, 57, 128, 65, 51, 56, 56, 128, 65, 51, 56, 55, 128, 65, 51, 56, 54, + 65, 128, 65, 51, 56, 54, 128, 65, 51, 56, 53, 128, 65, 51, 56, 52, 128, + 65, 51, 56, 51, 65, 128, 65, 51, 56, 179, 65, 51, 56, 50, 128, 65, 51, + 56, 49, 65, 128, 65, 51, 56, 49, 128, 65, 51, 56, 48, 128, 65, 51, 55, + 57, 128, 65, 51, 55, 56, 128, 65, 51, 55, 55, 128, 65, 51, 55, 54, 128, + 65, 51, 55, 53, 128, 65, 51, 55, 52, 128, 65, 51, 55, 51, 128, 65, 51, + 55, 50, 128, 65, 51, 55, 49, 65, 128, 65, 51, 55, 49, 128, 65, 51, 55, + 48, 128, 65, 51, 54, 57, 128, 65, 51, 54, 56, 65, 128, 65, 51, 54, 56, + 128, 65, 51, 54, 55, 128, 65, 51, 54, 54, 128, 65, 51, 54, 53, 128, 65, + 51, 54, 52, 65, 128, 65, 51, 54, 52, 128, 65, 51, 54, 51, 128, 65, 51, + 54, 50, 128, 65, 51, 54, 49, 128, 65, 51, 54, 48, 128, 65, 51, 53, 57, + 65, 128, 65, 51, 53, 57, 128, 65, 51, 53, 56, 128, 65, 51, 53, 55, 128, + 65, 51, 53, 54, 128, 65, 51, 53, 53, 128, 65, 51, 53, 52, 128, 65, 51, + 53, 51, 128, 65, 51, 53, 50, 128, 65, 51, 53, 49, 128, 65, 51, 53, 48, + 128, 65, 51, 52, 57, 128, 65, 51, 52, 56, 128, 65, 51, 52, 55, 128, 65, + 51, 52, 54, 128, 65, 51, 52, 53, 128, 65, 51, 52, 52, 128, 65, 51, 52, + 51, 128, 65, 51, 52, 50, 128, 65, 51, 52, 49, 128, 65, 51, 52, 48, 128, + 65, 51, 51, 57, 128, 65, 51, 51, 56, 128, 65, 51, 51, 55, 128, 65, 51, + 51, 54, 67, 128, 65, 51, 51, 54, 66, 128, 65, 51, 51, 54, 65, 128, 65, + 51, 51, 54, 128, 65, 51, 51, 53, 128, 65, 51, 51, 52, 128, 65, 51, 51, + 51, 128, 65, 51, 51, 50, 67, 128, 65, 51, 51, 50, 66, 128, 65, 51, 51, + 50, 65, 128, 65, 51, 51, 50, 128, 65, 51, 51, 49, 128, 65, 51, 51, 48, + 128, 65, 51, 50, 57, 65, 128, 65, 51, 50, 57, 128, 65, 51, 50, 56, 128, + 65, 51, 50, 55, 128, 65, 51, 50, 54, 128, 65, 51, 50, 53, 128, 65, 51, + 50, 52, 128, 65, 51, 50, 51, 128, 65, 51, 50, 50, 128, 65, 51, 50, 49, + 128, 65, 51, 50, 48, 128, 65, 51, 49, 57, 128, 65, 51, 49, 56, 128, 65, + 51, 49, 55, 128, 65, 51, 49, 54, 128, 65, 51, 49, 53, 128, 65, 51, 49, + 52, 128, 65, 51, 49, 51, 67, 128, 65, 51, 49, 51, 66, 128, 65, 51, 49, + 51, 65, 128, 65, 51, 49, 51, 128, 65, 51, 49, 50, 128, 65, 51, 49, 49, + 128, 65, 51, 49, 48, 128, 65, 51, 48, 57, 67, 128, 65, 51, 48, 57, 66, + 128, 65, 51, 48, 57, 65, 128, 65, 51, 48, 57, 128, 65, 51, 48, 56, 128, + 65, 51, 48, 55, 128, 65, 51, 48, 54, 128, 65, 51, 48, 53, 128, 65, 51, + 48, 52, 128, 65, 51, 48, 51, 128, 65, 51, 48, 50, 128, 65, 51, 48, 49, + 128, 65, 51, 48, 48, 128, 65, 50, 57, 57, 65, 128, 65, 50, 57, 57, 128, + 65, 50, 57, 56, 128, 65, 50, 57, 55, 128, 65, 50, 57, 54, 128, 65, 50, + 57, 53, 128, 65, 50, 57, 52, 65, 128, 65, 50, 57, 52, 128, 65, 50, 57, + 51, 128, 65, 50, 57, 50, 128, 65, 50, 57, 49, 128, 65, 50, 57, 48, 128, + 65, 50, 56, 57, 65, 128, 65, 50, 56, 57, 128, 65, 50, 56, 56, 128, 65, + 50, 56, 55, 128, 65, 50, 56, 54, 128, 65, 50, 56, 53, 128, 65, 50, 56, + 52, 128, 65, 50, 56, 51, 128, 65, 50, 56, 50, 128, 65, 50, 56, 49, 128, + 65, 50, 56, 48, 128, 65, 50, 55, 57, 128, 65, 50, 55, 56, 128, 65, 50, + 55, 55, 128, 65, 50, 55, 54, 128, 65, 50, 55, 53, 128, 65, 50, 55, 52, + 128, 65, 50, 55, 51, 128, 65, 50, 55, 50, 128, 65, 50, 55, 49, 128, 65, + 50, 55, 48, 128, 65, 50, 54, 57, 128, 65, 50, 54, 56, 128, 65, 50, 54, + 55, 65, 128, 65, 50, 54, 55, 128, 65, 50, 54, 54, 128, 65, 50, 54, 53, + 128, 65, 50, 54, 52, 128, 65, 50, 54, 51, 128, 65, 50, 54, 50, 128, 65, + 50, 54, 49, 128, 65, 50, 54, 48, 128, 65, 50, 53, 57, 128, 65, 50, 53, + 56, 128, 65, 50, 53, 55, 128, 65, 50, 53, 54, 128, 65, 50, 53, 53, 128, + 65, 50, 53, 52, 128, 65, 50, 53, 51, 128, 65, 50, 53, 50, 128, 65, 50, + 53, 49, 128, 65, 50, 53, 48, 128, 65, 50, 52, 57, 128, 65, 50, 52, 56, + 128, 65, 50, 52, 55, 128, 65, 50, 52, 54, 128, 65, 50, 52, 53, 128, 65, + 50, 52, 52, 128, 65, 50, 52, 51, 128, 65, 50, 52, 50, 128, 65, 50, 52, + 49, 128, 65, 50, 52, 48, 128, 65, 50, 51, 57, 128, 65, 50, 51, 56, 128, + 65, 50, 51, 55, 128, 65, 50, 51, 54, 128, 65, 50, 51, 53, 128, 65, 50, + 51, 52, 128, 65, 50, 51, 51, 128, 65, 50, 51, 50, 128, 65, 50, 51, 49, + 128, 65, 50, 51, 48, 128, 65, 50, 50, 57, 128, 65, 50, 50, 56, 128, 65, + 50, 50, 55, 65, 128, 65, 50, 50, 55, 128, 65, 50, 50, 54, 128, 65, 50, + 50, 53, 128, 65, 50, 50, 52, 128, 65, 50, 50, 51, 128, 65, 50, 50, 50, + 128, 65, 50, 50, 49, 128, 65, 50, 50, 48, 128, 65, 50, 49, 57, 128, 65, + 50, 49, 56, 128, 65, 50, 49, 55, 128, 65, 50, 49, 54, 65, 128, 65, 50, + 49, 54, 128, 65, 50, 49, 53, 65, 128, 65, 50, 49, 53, 128, 65, 50, 49, + 52, 128, 65, 50, 49, 51, 128, 65, 50, 49, 50, 128, 65, 50, 49, 49, 128, + 65, 50, 49, 48, 128, 65, 50, 48, 57, 65, 128, 65, 50, 48, 57, 128, 65, + 50, 48, 56, 128, 65, 50, 48, 55, 65, 128, 65, 50, 48, 55, 128, 65, 50, + 48, 54, 128, 65, 50, 48, 53, 128, 65, 50, 48, 52, 128, 65, 50, 48, 51, + 128, 65, 50, 48, 50, 66, 128, 65, 50, 48, 50, 65, 128, 65, 50, 48, 50, + 128, 65, 50, 48, 49, 128, 65, 50, 48, 48, 128, 65, 49, 57, 57, 128, 65, + 49, 57, 56, 128, 65, 49, 57, 55, 128, 65, 49, 57, 54, 128, 65, 49, 57, + 53, 128, 65, 49, 57, 52, 128, 65, 49, 57, 51, 128, 65, 49, 57, 50, 128, + 65, 49, 57, 49, 128, 65, 49, 57, 48, 128, 65, 49, 56, 57, 128, 65, 49, + 56, 56, 128, 65, 49, 56, 55, 128, 65, 49, 56, 54, 128, 65, 49, 56, 53, + 128, 65, 49, 56, 52, 128, 65, 49, 56, 51, 128, 65, 49, 56, 50, 128, 65, + 49, 56, 49, 128, 65, 49, 56, 48, 128, 65, 49, 55, 57, 128, 65, 49, 55, + 56, 128, 65, 49, 55, 55, 128, 65, 49, 55, 54, 128, 65, 49, 55, 53, 128, + 65, 49, 55, 52, 128, 65, 49, 55, 51, 128, 65, 49, 55, 50, 128, 65, 49, + 55, 49, 128, 65, 49, 55, 48, 128, 65, 49, 54, 57, 128, 65, 49, 54, 56, + 128, 65, 49, 54, 55, 128, 65, 49, 54, 54, 128, 65, 49, 54, 53, 128, 65, + 49, 54, 52, 128, 65, 49, 54, 51, 128, 65, 49, 54, 50, 128, 65, 49, 54, + 49, 128, 65, 49, 54, 48, 128, 65, 49, 53, 57, 128, 65, 49, 53, 56, 128, + 65, 49, 53, 55, 128, 65, 49, 53, 54, 128, 65, 49, 53, 53, 128, 65, 49, + 53, 52, 128, 65, 49, 53, 51, 128, 65, 49, 53, 50, 128, 65, 49, 53, 49, + 128, 65, 49, 53, 48, 128, 65, 49, 52, 57, 128, 65, 49, 52, 56, 128, 65, + 49, 52, 55, 128, 65, 49, 52, 54, 128, 65, 49, 52, 53, 128, 65, 49, 52, + 52, 128, 65, 49, 52, 51, 128, 65, 49, 52, 50, 128, 65, 49, 52, 49, 128, + 65, 49, 52, 48, 128, 65, 49, 51, 57, 128, 65, 49, 51, 56, 128, 65, 49, + 51, 55, 128, 65, 49, 51, 54, 128, 65, 49, 51, 53, 65, 128, 65, 49, 51, + 53, 128, 65, 49, 51, 52, 128, 65, 49, 51, 51, 128, 65, 49, 51, 50, 128, + 65, 49, 51, 49, 67, 128, 65, 49, 51, 49, 128, 65, 49, 51, 48, 128, 65, + 49, 50, 57, 128, 65, 49, 50, 56, 128, 65, 49, 50, 55, 128, 65, 49, 50, + 54, 128, 65, 49, 50, 53, 65, 128, 65, 49, 50, 53, 128, 65, 49, 50, 52, + 128, 65, 49, 50, 51, 128, 65, 49, 50, 50, 128, 65, 49, 50, 49, 128, 65, + 49, 50, 48, 66, 128, 65, 49, 50, 48, 128, 65, 49, 49, 57, 128, 65, 49, + 49, 56, 128, 65, 49, 49, 55, 128, 65, 49, 49, 54, 128, 65, 49, 49, 53, + 65, 128, 65, 49, 49, 53, 128, 65, 49, 49, 52, 128, 65, 49, 49, 51, 128, + 65, 49, 49, 50, 128, 65, 49, 49, 49, 128, 65, 49, 49, 48, 66, 128, 65, + 49, 49, 48, 65, 128, 65, 49, 49, 48, 128, 65, 49, 48, 57, 128, 65, 49, + 48, 56, 128, 65, 49, 48, 55, 67, 128, 65, 49, 48, 55, 66, 128, 65, 49, + 48, 55, 65, 128, 65, 49, 48, 55, 128, 65, 49, 48, 54, 128, 65, 49, 48, + 53, 66, 128, 65, 49, 48, 53, 65, 128, 65, 49, 48, 53, 128, 65, 49, 48, + 52, 67, 128, 65, 49, 48, 52, 66, 128, 65, 49, 48, 52, 65, 128, 65, 49, + 48, 52, 128, 65, 49, 48, 51, 128, 65, 49, 48, 50, 65, 128, 65, 49, 48, + 50, 128, 65, 49, 48, 49, 65, 128, 65, 49, 48, 49, 128, 65, 49, 48, 48, + 65, 128, 65, 49, 48, 48, 45, 49, 48, 50, 128, 65, 49, 48, 48, 128, 65, + 48, 57, 57, 128, 65, 48, 57, 56, 65, 128, 65, 48, 57, 56, 128, 65, 48, + 57, 55, 65, 128, 65, 48, 57, 55, 128, 65, 48, 57, 54, 128, 65, 48, 57, + 53, 128, 65, 48, 57, 52, 128, 65, 48, 57, 51, 128, 65, 48, 57, 50, 128, + 65, 48, 57, 49, 128, 65, 48, 57, 48, 128, 65, 48, 56, 57, 128, 65, 48, + 56, 56, 128, 65, 48, 56, 55, 128, 65, 48, 56, 54, 128, 65, 48, 56, 53, + 128, 65, 48, 56, 52, 128, 65, 48, 56, 51, 128, 65, 48, 56, 50, 128, 65, + 48, 56, 49, 128, 65, 48, 56, 48, 128, 65, 48, 55, 57, 128, 65, 48, 55, + 56, 128, 65, 48, 55, 55, 128, 65, 48, 55, 54, 128, 65, 48, 55, 53, 128, + 65, 48, 55, 52, 128, 65, 48, 55, 51, 128, 65, 48, 55, 50, 128, 65, 48, + 55, 49, 128, 65, 48, 55, 48, 128, 65, 48, 54, 57, 128, 65, 48, 54, 56, + 128, 65, 48, 54, 55, 128, 65, 48, 54, 54, 67, 128, 65, 48, 54, 54, 66, + 128, 65, 48, 54, 54, 65, 128, 65, 48, 54, 54, 128, 65, 48, 54, 53, 128, + 65, 48, 54, 52, 128, 65, 48, 54, 51, 128, 65, 48, 54, 50, 128, 65, 48, + 54, 49, 128, 65, 48, 54, 48, 128, 65, 48, 53, 57, 128, 65, 48, 53, 56, + 128, 65, 48, 53, 55, 128, 65, 48, 53, 54, 128, 65, 48, 53, 53, 128, 65, + 48, 53, 52, 128, 65, 48, 53, 51, 128, 65, 48, 53, 50, 128, 65, 48, 53, + 49, 128, 65, 48, 53, 48, 128, 65, 48, 52, 57, 128, 65, 48, 52, 56, 128, + 65, 48, 52, 55, 128, 65, 48, 52, 54, 66, 128, 65, 48, 52, 54, 65, 128, + 65, 48, 52, 54, 128, 65, 48, 52, 53, 65, 128, 65, 48, 52, 53, 128, 65, + 48, 52, 52, 128, 65, 48, 52, 51, 65, 128, 65, 48, 52, 51, 128, 65, 48, + 52, 50, 65, 128, 65, 48, 52, 50, 128, 65, 48, 52, 49, 65, 128, 65, 48, + 52, 49, 128, 65, 48, 52, 48, 65, 128, 65, 48, 52, 48, 128, 65, 48, 51, + 57, 65, 128, 65, 48, 51, 57, 128, 65, 48, 51, 56, 128, 65, 48, 51, 55, + 128, 65, 48, 51, 54, 128, 65, 48, 51, 53, 128, 65, 48, 51, 52, 128, 65, + 48, 51, 51, 128, 65, 48, 51, 50, 65, 128, 65, 48, 50, 56, 66, 128, 65, + 48, 50, 54, 65, 128, 65, 48, 49, 55, 65, 128, 65, 48, 49, 52, 65, 128, + 65, 48, 49, 48, 65, 128, 65, 48, 48, 54, 66, 128, 65, 48, 48, 54, 65, + 128, 65, 48, 48, 53, 65, 128, 65, 45, 87, 79, 128, 65, 45, 69, 85, 128, + 45, 85, 205, 45, 80, 72, 82, 85, 128, 45, 75, 72, 89, 85, 196, 45, 75, + 72, 89, 73, 76, 128, 45, 68, 90, 85, 196, 45, 67, 72, 65, 210, 45, 67, + 72, 65, 76, 128, }; static const unsigned int lexicon_offset[] = { 0, 0, 6, 11, 15, 19, 27, 34, 44, 49, 55, 64, 66, 69, 81, 89, 102, 108, - 113, 118, 124, 129, 137, 146, 157, 160, 165, 170, 176, 180, 189, 195, - 201, 207, 216, 224, 229, 237, 177, 244, 247, 253, 254, 262, 268, 273, - 277, 282, 289, 296, 306, 311, 317, 322, 325, 331, 337, 343, 348, 351, - 359, 365, 375, 380, 385, 390, 392, 401, 408, 415, 417, 419, 427, 341, - 436, 438, 441, 449, 454, 455, 462, 464, 472, 478, 484, 491, 496, 503, - 507, 512, 519, 524, 527, 531, 537, 542, 547, 557, 565, 572, 575, 583, - 591, 600, 603, 613, 620, 625, 629, 633, 637, 642, 645, 652, 659, 666, - 671, 676, 685, 687, 696, 700, 707, 715, 719, 727, 281, 736, 749, 753, - 758, 762, 765, 767, 777, 781, 787, 791, 796, 800, 806, 811, 820, 825, - 829, 832, 838, 846, 794, 854, 863, 872, 880, 886, 891, 902, 907, 915, - 918, 925, 928, 938, 943, 949, 953, 957, 964, 967, 974, 977, 657, 980, - 983, 986, 990, 995, 1004, 1010, 1014, 1018, 1021, 1024, 1030, 1035, 1039, - 1044, 602, 1049, 1055, 1064, 1067, 1076, 1081, 1086, 1092, 1097, 1102, - 1107, 1111, 1116, 1122, 1127, 1132, 1136, 1142, 1147, 1152, 1157, 1161, - 1166, 1171, 1176, 1182, 1188, 1194, 1199, 1203, 1208, 1213, 1218, 1222, - 1227, 1232, 1237, 1242, 1077, 1082, 1087, 1093, 1098, 1246, 1108, 1252, - 1257, 1262, 1269, 1273, 1276, 1285, 1112, 1289, 1117, 1123, 1128, 1293, - 1298, 1303, 1307, 1311, 1317, 1321, 1133, 1324, 1326, 1143, 1331, 1335, - 1148, 1341, 1153, 1345, 1349, 1356, 1158, 1360, 1368, 1373, 1377, 1380, - 1384, 1162, 1167, 1389, 1395, 1172, 1407, 1413, 1419, 1425, 1177, 1189, - 1195, 1429, 1433, 1437, 1440, 1200, 1444, 1446, 1451, 1456, 1462, 1467, - 1472, 1476, 1481, 1486, 1491, 1496, 1502, 1507, 1512, 1518, 1524, 1529, - 1533, 1538, 1543, 1548, 1553, 1558, 1562, 1570, 1575, 1579, 1584, 1589, - 1594, 1599, 1603, 1606, 1613, 1618, 1623, 1628, 1633, 1639, 1644, 1648, - 1204, 1651, 1657, 1662, 1667, 1672, 1209, 1676, 1680, 1687, 1694, 1214, - 1699, 1704, 1219, 1708, 1710, 1715, 1726, 1732, 1223, 1737, 1746, 1228, - 1751, 1757, 1762, 1767, 1777, 1786, 1794, 1233, 1804, 1813, 1822, 1827, - 1831, 1834, 1843, 1853, 1862, 1867, 1871, 1875, 1879, 1882, 1886, 1891, - 1238, 1901, 1243, 1905, 1907, 1913, 1919, 1925, 1931, 1937, 1943, 1949, - 1955, 1960, 1966, 1972, 1978, 1984, 1990, 1996, 2002, 2008, 2014, 2019, - 2024, 2029, 2034, 2039, 2044, 2049, 2054, 2059, 2064, 2070, 2075, 2081, - 2086, 2092, 2098, 2103, 2109, 2115, 2121, 2127, 2132, 2137, 2139, 2140, - 2144, 2148, 2153, 2157, 2161, 2165, 2170, 2174, 2177, 2182, 2186, 2191, - 2195, 2199, 2204, 2208, 2211, 2215, 2221, 2235, 2239, 2243, 2247, 2250, - 2255, 2259, 2263, 2266, 2270, 2275, 2280, 2285, 2290, 2294, 2298, 2302, - 2306, 2310, 2315, 2319, 2324, 2328, 2333, 2339, 2346, 2352, 2357, 2362, - 2367, 2373, 2378, 2384, 2389, 2394, 2399, 2404, 2409, 2412, 2414, 1094, - 2418, 2425, 2433, 2443, 2452, 2466, 2470, 2474, 2479, 2492, 2500, 2503, - 2507, 2510, 2515, 2519, 2522, 2526, 2530, 2535, 1721, 2540, 2544, 2547, - 2551, 2557, 2564, 2571, 2577, 2582, 2587, 2593, 2599, 2604, 2609, 2614, - 2619, 2624, 2629, 2554, 2634, 1712, 2636, 2642, 2646, 2651, 2655, 2659, - 1609, 1734, 2664, 2668, 2672, 2675, 2680, 2685, 2690, 2695, 2699, 2706, - 2711, 2714, 2718, 2722, 2729, 2735, 2739, 2745, 2749, 2753, 2758, 2765, - 2770, 2775, 2782, 2788, 2794, 2800, 2821, 2835, 2852, 2867, 2883, 2900, - 2915, 2924, 2929, 2933, 2938, 2943, 2947, 2959, 2966, 2972, 2342, 2978, - 2985, 2991, 2995, 2998, 3005, 3011, 3016, 3020, 3025, 3029, 3033, 2162, - 3037, 3042, 3047, 3051, 3056, 3064, 3068, 3075, 3080, 3084, 3088, 3092, - 3097, 3102, 3107, 3111, 3116, 3121, 3125, 3130, 3135, 3139, 3142, 3146, - 3150, 3158, 3163, 3167, 3171, 3177, 3186, 3190, 3194, 3200, 3205, 3212, - 3216, 3226, 3230, 3234, 3239, 3243, 3248, 3254, 3259, 3263, 3267, 3271, - 2567, 3279, 3284, 3290, 3295, 3299, 3304, 3309, 3313, 3319, 3324, 2166, - 3330, 3336, 3341, 3346, 3351, 3356, 3361, 3366, 3371, 3376, 3381, 3386, - 3391, 3396, 3401, 3406, 3412, 3417, 1109, 101, 3423, 3427, 3431, 3435, - 3440, 3444, 3448, 3454, 3459, 3463, 3467, 3472, 3477, 3481, 3486, 3490, - 3493, 3497, 3502, 3506, 3511, 3515, 3518, 3520, 3524, 3528, 3533, 3537, - 3540, 3553, 3557, 3561, 3565, 3570, 3574, 3578, 3581, 3585, 3589, 3594, - 3598, 3603, 3608, 3613, 3617, 3624, 3629, 3632, 3638, 3641, 3646, 3652, - 3656, 3660, 3663, 3668, 3672, 3677, 3681, 3685, 3688, 3694, 3699, 3704, - 3710, 3715, 3720, 3726, 3732, 3737, 3742, 3747, 3752, 3755, 988, 644, - 3761, 3764, 3769, 3773, 3777, 3781, 3785, 3788, 3792, 3797, 3802, 3806, - 3811, 3815, 3820, 3824, 3828, 3832, 3838, 3844, 3847, 3850, 150, 3856, - 3861, 3870, 3878, 3887, 3897, 3904, 3910, 3917, 3922, 3926, 3930, 3938, - 3945, 3950, 3955, 3962, 3967, 3971, 3981, 3985, 3989, 3994, 3999, 4009, - 2178, 4014, 4018, 4021, 4027, 4032, 4038, 4044, 4049, 4056, 4060, 4064, - 4068, 4073, 4078, 4083, 4088, 4093, 4098, 634, 601, 1270, 4103, 4110, - 4117, 4123, 4128, 4135, 4142, 4147, 4153, 4159, 4164, 4168, 4174, 4181, - 4186, 4190, 4194, 2187, 4200, 4208, 4214, 4222, 858, 4228, 4236, 4247, - 4251, 4261, 4267, 4272, 4277, 4282, 4287, 2192, 4292, 4297, 4312, 4318, - 4325, 4336, 4346, 4352, 4357, 4363, 4369, 4372, 4375, 4379, 4384, 4387, - 4394, 4403, 4408, 4412, 4416, 4420, 4424, 4429, 4435, 4446, 4450, 3498, - 4455, 4467, 4473, 4481, 4485, 4490, 4497, 4502, 4507, 4512, 1478, 4517, - 4520, 4523, 4527, 4530, 4536, 4540, 4554, 4558, 4561, 4565, 4571, 4577, - 4582, 4586, 4590, 4596, 4607, 4613, 4618, 4624, 4628, 4636, 4648, 4658, - 4664, 4669, 4678, 4686, 4697, 4704, 4710, 4716, 4720, 4726, 4735, 4744, - 4749, 4755, 4759, 4768, 4773, 4777, 4782, 4786, 4794, 4800, 4804, 4811, - 4816, 4820, 4826, 4832, 4839, 2200, 4848, 4859, 4869, 4878, 4883, 4888, - 4893, 4898, 1286, 4903, 4905, 4910, 4916, 4921, 4926, 4931, 4936, 4941, - 4946, 4952, 4957, 4963, 4968, 4973, 4978, 4984, 4989, 4994, 4999, 5004, - 5010, 5015, 5021, 5026, 5031, 5036, 5041, 5046, 5051, 5057, 5062, 5067, - 335, 384, 5072, 5078, 5081, 5085, 5089, 5096, 5102, 5107, 5111, 5115, - 5118, 5121, 5125, 5129, 5132, 5136, 5140, 5144, 5149, 5153, 5157, 5163, - 5172, 4829, 5177, 5181, 5184, 5189, 5194, 5199, 5204, 5209, 5214, 5219, - 5224, 5229, 5234, 5238, 5243, 5248, 5253, 5258, 5263, 5268, 5273, 5278, - 5283, 5288, 5292, 5297, 5302, 5307, 5312, 5317, 5322, 5327, 5332, 5337, - 5342, 5346, 5351, 5356, 5361, 5366, 5371, 5376, 5381, 5386, 5391, 5396, - 5400, 5405, 5410, 5415, 5420, 5425, 5430, 5435, 5440, 5445, 5450, 5454, - 5459, 5464, 5469, 5474, 5479, 5484, 5489, 5494, 5499, 5504, 5508, 5513, - 5518, 5523, 5528, 5533, 5538, 5543, 5548, 5553, 5558, 5562, 5567, 5572, - 5577, 5582, 5588, 5594, 5600, 5606, 5612, 5618, 5624, 5629, 5635, 5641, - 5647, 5653, 5659, 5665, 5671, 5677, 5683, 5689, 5694, 5700, 5706, 5712, - 5718, 5724, 5730, 5736, 5742, 5748, 5754, 5759, 5765, 5771, 5777, 5783, - 5789, 5795, 5801, 5807, 5813, 5819, 5824, 5830, 5836, 5842, 5848, 5854, - 5860, 5866, 5872, 5878, 5884, 5889, 5895, 5901, 5907, 5913, 5919, 5925, - 5931, 5937, 5943, 5949, 5954, 5958, 5964, 5970, 5976, 5982, 5988, 5994, - 6000, 6006, 6012, 6018, 6023, 6029, 6035, 6041, 6047, 6053, 6059, 6065, - 6071, 6077, 6083, 6088, 6094, 6100, 6106, 6112, 6118, 6124, 6130, 6136, - 6142, 6148, 6153, 6159, 6165, 6171, 6177, 6183, 6189, 6195, 6201, 6207, - 6213, 6218, 6224, 6230, 6236, 6242, 6248, 6254, 6260, 6266, 6272, 6278, - 6283, 6289, 6295, 6301, 6307, 6313, 6319, 6325, 6331, 6337, 6343, 6348, - 6354, 6360, 6366, 6372, 6378, 6384, 6390, 6396, 6402, 6408, 6413, 6419, - 6425, 6431, 6437, 6443, 6449, 6455, 6461, 6467, 6473, 6478, 6484, 6490, - 6496, 6502, 6508, 6514, 6520, 6526, 6532, 6538, 6543, 6549, 6555, 6561, - 6567, 6573, 6579, 6585, 6591, 6597, 6603, 6608, 6612, 6615, 6623, 6630, - 6633, 6637, 6650, 6654, 6658, 6662, 6665, 6669, 6674, 6678, 6687, 6691, - 6697, 6704, 6715, 6723, 6730, 6736, 6740, 6748, 6757, 6763, 6767, 6779, - 6784, 6787, 6792, 6796, 6806, 6814, 6822, 6830, 6836, 6840, 6850, 6860, - 6868, 6875, 6882, 6888, 6894, 6901, 6905, 6912, 6922, 6932, 6940, 6947, - 6952, 6956, 6960, 6968, 6972, 6982, 6987, 6994, 7001, 7009, 7019, 7024, - 7028, 7033, 7037, 7044, 7049, 7063, 7068, 7073, 7080, 3774, 7089, 7093, - 7097, 7102, 7106, 7110, 7113, 7118, 7123, 7132, 7138, 7144, 7149, 7155, - 7159, 7170, 7180, 7195, 7210, 7225, 7240, 7255, 7270, 7285, 7300, 7315, - 7330, 7345, 7360, 7375, 7390, 7405, 7420, 7435, 7450, 7465, 7480, 7495, - 7510, 7525, 7540, 7555, 7570, 7585, 7600, 7615, 7630, 7645, 7660, 7675, - 7690, 7705, 7720, 7735, 7750, 7765, 7780, 7795, 7810, 7825, 7840, 7855, - 7870, 7885, 7900, 7915, 7924, 7933, 7938, 7944, 7954, 7958, 7962, 7967, - 7972, 7977, 7985, 7989, 7992, 7996, 3221, 7999, 8004, 340, 545, 8010, - 8013, 8021, 8025, 8029, 8032, 8036, 8042, 8046, 8054, 8060, 8065, 8072, - 8080, 8087, 8093, 8098, 8105, 8111, 8120, 8128, 8132, 8137, 8145, 8157, - 8168, 8175, 8186, 8190, 8194, 8198, 8201, 8207, 3525, 8211, 8213, 8219, - 8224, 8229, 8234, 8240, 8245, 8250, 8255, 8260, 8266, 8271, 8276, 8282, - 8287, 8293, 8298, 8304, 8309, 8315, 8320, 8325, 8330, 8335, 8340, 8346, - 8351, 8356, 8361, 8367, 8373, 8379, 8385, 8391, 8397, 8403, 8409, 8415, - 8421, 8427, 8433, 8438, 8443, 8448, 8453, 8458, 8463, 8468, 8473, 8479, - 8485, 8490, 8496, 8502, 8508, 8513, 8518, 8523, 8528, 8534, 8540, 8545, - 8550, 8555, 8560, 8565, 8571, 8576, 8582, 8588, 8594, 8600, 8606, 8612, - 8618, 8624, 8630, 2209, 8031, 8635, 8639, 8647, 8651, 8654, 8657, 8663, - 8670, 1113, 8673, 8677, 8685, 8690, 8695, 8686, 8700, 2236, 8704, 8710, - 8716, 8721, 8726, 8733, 8741, 8746, 8750, 8753, 8757, 8763, 8769, 8773, - 1659, 627, 8776, 8780, 8785, 8791, 8796, 8800, 8803, 8807, 8813, 8818, - 8822, 8829, 8833, 8837, 8841, 793, 8661, 2260, 8844, 8852, 8859, 8866, - 8872, 8879, 8887, 8894, 8905, 8912, 8918, 8930, 1129, 1294, 1299, 8941, - 8945, 1304, 8949, 8953, 8962, 8970, 8974, 8983, 8989, 8995, 9000, 9004, - 9010, 9015, 9023, 9030, 2920, 9037, 9043, 9047, 9056, 9065, 9074, 9083, - 9089, 9094, 9099, 9110, 9119, 9131, 9136, 9144, 2295, 9148, 9150, 9155, - 9159, 9168, 9176, 1308, 168, 3816, 3821, 9182, 9186, 9195, 9201, 9206, - 9209, 9213, 9217, 9222, 9227, 9232, 9237, 9241, 9250, 9256, 2307, 9260, - 2912, 9264, 9272, 9276, 9280, 2311, 9284, 9288, 9292, 9296, 9300, 2316, - 9304, 9309, 9316, 9322, 9329, 9335, 9338, 9234, 9340, 9348, 9356, 9364, - 9367, 9372, 2329, 9377, 8697, 9380, 9382, 9387, 9392, 9397, 9402, 9407, - 9412, 9417, 9422, 9427, 9432, 9438, 9443, 9448, 9453, 9459, 9464, 9469, - 9474, 9479, 9484, 9489, 9495, 9500, 9505, 9510, 9515, 9520, 9525, 9530, - 9535, 9540, 9545, 9550, 9555, 9560, 9565, 9570, 9575, 9580, 9586, 9592, - 9597, 9602, 9607, 9612, 9617, 2340, 2347, 2353, 9622, 9630, 9636, 9644, - 2379, 2385, 9652, 2390, 2395, 2400, 2405, 9656, 9660, 9665, 9669, 9673, - 9677, 9682, 9686, 9691, 9695, 9698, 9701, 9707, 9714, 9720, 9727, 9733, - 9740, 9746, 9753, 9759, 9765, 9774, 9780, 9784, 9788, 9792, 9796, 9801, - 9805, 9810, 9814, 9820, 9824, 9829, 9836, 9847, 9855, 9865, 9871, 9881, - 9890, 9897, 9902, 9906, 9917, 9927, 9940, 9951, 9964, 9975, 9987, 9999, - 10011, 10022, 10035, 10048, 10055, 10061, 10072, 10082, 10096, 10103, - 10109, 10118, 10126, 10130, 10135, 10139, 10146, 10154, 10161, 10165, - 10171, 10175, 10181, 10191, 10195, 10200, 10205, 10212, 10218, 8874, - 10228, 10232, 10239, 10245, 10252, 10259, 10263, 10266, 10272, 10276, - 10281, 10286, 10291, 10295, 10301, 10309, 10316, 10322, 10326, 10329, - 10335, 10345, 10349, 10355, 10360, 10364, 10369, 10373, 10379, 10385, - 10390, 10396, 10401, 10406, 10411, 2232, 10416, 10418, 10423, 10431, - 10440, 10444, 10450, 10455, 10460, 10465, 10470, 10476, 10481, 10486, - 4592, 10491, 10496, 10500, 10506, 10511, 10517, 10522, 10527, 10533, - 10538, 10445, 10544, 10548, 10555, 10561, 10566, 10570, 7059, 10575, - 10584, 10589, 10594, 9312, 9319, 10599, 3094, 10603, 10608, 10613, 10618, - 10456, 10622, 10627, 10632, 10461, 10636, 10466, 10641, 10648, 10655, - 10661, 10668, 10674, 10680, 10685, 10692, 10697, 10702, 10707, 10713, - 10471, 10477, 10719, 10724, 10730, 10735, 10740, 10748, 1364, 10753, - 1037, 10756, 10764, 10780, 10796, 10811, 10819, 10825, 10831, 10840, - 10848, 10856, 10864, 10872, 10880, 10888, 10896, 10904, 10913, 10922, - 10930, 10939, 10948, 10957, 10966, 10975, 10984, 10993, 11002, 11011, - 11020, 11028, 11033, 11037, 11043, 11051, 11058, 11073, 11090, 11109, - 11118, 11126, 11141, 11152, 11160, 11166, 11176, 11186, 11194, 11200, - 11212, 11221, 11229, 11236, 11243, 11250, 11256, 11261, 11271, 11277, - 11285, 11295, 11302, 11312, 11322, 11332, 11340, 11347, 11356, 11366, - 11380, 11395, 11404, 11412, 11417, 11421, 11431, 11441, 11453, 11462, - 11468, 11473, 11483, 11493, 11503, 11508, 11512, 11522, 11531, 11536, - 11552, 11569, 11579, 11584, 11595, 11608, 11619, 11627, 11640, 11652, - 11660, 11665, 11669, 11675, 11680, 11688, 11696, 11703, 11714, 11719, - 11727, 11737, 11743, 11747, 11750, 11754, 11760, 11767, 11771, 11779, - 11788, 11796, 11803, 11808, 11812, 11817, 11821, 11825, 11833, 11848, - 11864, 11870, 11878, 11887, 11895, 11901, 11905, 11912, 11923, 11927, - 11930, 11941, 11947, 11952, 10487, 11960, 11966, 11973, 11979, 11984, - 11991, 11998, 12005, 12012, 12019, 12026, 12033, 12040, 12047, 12054, - 12061, 12068, 12075, 12082, 12089, 12094, 11086, 12099, 12105, 12112, - 12119, 12124, 12131, 12140, 12144, 12151, 12163, 12167, 12173, 12178, - 12183, 12188, 12193, 12198, 12203, 12206, 12210, 11437, 12214, 12218, - 12224, 12230, 12235, 12241, 12246, 12251, 12257, 12262, 12267, 10208, - 12272, 12276, 12280, 12284, 12289, 12294, 12299, 12307, 12313, 12318, - 12322, 12326, 12333, 12338, 12346, 12353, 12358, 12362, 12365, 12371, - 12378, 12382, 12385, 12390, 12394, 4631, 12400, 12409, 46, 12417, 12423, - 12428, 12433, 12441, 12448, 12453, 6977, 12459, 12465, 12470, 12474, - 12477, 12483, 12491, 12498, 12513, 12532, 12544, 12557, 12570, 12583, - 12597, 12610, 12625, 12632, 10492, 12638, 12652, 12657, 12663, 12668, - 12676, 12681, 9052, 12686, 12689, 12697, 12704, 12709, 12713, 12719, - 12723, 12728, 12733, 12738, 12743, 12748, 12753, 3099, 11174, 12758, - 12762, 12768, 12774, 12779, 12785, 12790, 10501, 12796, 12802, 12807, - 12812, 12820, 12826, 12839, 12847, 12854, 12860, 10507, 12866, 12874, - 12882, 12889, 12902, 12915, 12927, 12937, 12949, 12977, 12985, 12994, - 13001, 13013, 13020, 13030, 13039, 13047, 13054, 13059, 13065, 10512, - 13070, 13076, 13081, 13086, 13091, 10518, 13096, 13099, 13106, 13112, - 13126, 13139, 13150, 9840, 13161, 13167, 13176, 13184, 13191, 13197, - 13208, 13214, 13219, 13227, 4119, 13233, 13238, 12505, 13244, 13251, - 13256, 10523, 13262, 13267, 13274, 13280, 13286, 13291, 13299, 13307, - 13314, 13318, 13330, 13344, 13354, 13359, 13363, 13374, 13380, 13385, - 13390, 10528, 13394, 10534, 13399, 13402, 13407, 13419, 13426, 13431, - 13435, 13443, 13448, 13452, 13457, 13461, 13468, 13474, 10539, 10446, - 13481, 3104, 17, 13488, 13493, 13497, 13501, 13507, 13515, 13525, 13530, - 13535, 13542, 13549, 13553, 13564, 13574, 13583, 13592, 13604, 13609, - 13613, 13621, 13635, 13639, 13642, 13646, 13654, 13661, 13669, 13673, - 13684, 13692, 13696, 13703, 13708, 13712, 13718, 13723, 13729, 13734, - 13739, 13743, 13749, 13754, 13765, 13769, 13772, 13778, 13785, 13791, - 13796, 13802, 13808, 13815, 13826, 13836, 13846, 13855, 13862, 13871, - 13875, 10549, 10556, 10562, 10567, 13881, 13887, 13893, 13898, 13904, - 10571, 13910, 13913, 13920, 13925, 13931, 13936, 13951, 13967, 13982, - 13990, 13995, 14002, 14008, 14012, 14017, 14022, 14027, 14032, 14037, - 14042, 14047, 14052, 14057, 1567, 388, 14062, 14070, 14077, 14083, 14088, - 14093, 10576, 14095, 14099, 14104, 14108, 14118, 14123, 14127, 14130, - 14139, 14143, 14146, 14153, 10585, 14158, 14161, 14169, 14176, 14184, - 14188, 14194, 14202, 14206, 14213, 14222, 14229, 14225, 14236, 14240, - 14246, 14250, 14254, 14258, 14264, 14270, 14280, 14288, 14295, 14299, - 14307, 14312, 14316, 14323, 14328, 14335, 14339, 14344, 14349, 14353, - 14360, 14366, 14374, 14380, 14385, 14395, 14402, 14407, 14412, 14416, - 14420, 14428, 4461, 14436, 14441, 10590, 14445, 14452, 14456, 14459, - 14467, 14474, 14478, 14481, 6832, 14485, 14490, 14495, 14499, 14510, - 14520, 14525, 14531, 14536, 14545, 14549, 14552, 14560, 14565, 14570, - 14577, 14582, 4851, 10595, 14587, 14591, 14598, 14603, 14608, 14613, - 1664, 7007, 14618, 14623, 14628, 14633, 14639, 14644, 14650, 14655, - 14660, 14665, 14670, 14675, 14680, 14685, 14690, 14695, 14700, 14705, - 14710, 14715, 14720, 14725, 14730, 14736, 14741, 14746, 14751, 14756, - 14761, 14767, 14772, 14777, 14783, 14788, 14794, 14799, 14805, 14810, - 14815, 14820, 14825, 14831, 14836, 14841, 14846, 14854, 1008, 112, 14860, - 14864, 14869, 14874, 14878, 14882, 14886, 14891, 14895, 14900, 14904, - 14907, 14911, 14915, 14921, 14926, 14936, 14942, 14950, 14956, 14960, - 14964, 14971, 14979, 14988, 14999, 15009, 15016, 15023, 15027, 15036, - 15045, 15053, 15060, 15069, 15078, 15087, 15096, 15106, 15116, 15126, - 15136, 15146, 15155, 15165, 15175, 15185, 15195, 15205, 15215, 15225, - 15234, 15244, 15254, 15264, 15274, 15284, 15294, 15303, 15313, 15323, - 15333, 15343, 15353, 15363, 15373, 15383, 15393, 15402, 15412, 15422, - 15432, 15442, 15452, 15462, 15472, 15482, 15492, 15502, 15511, 15517, - 1138, 15521, 15524, 15528, 15533, 15540, 15546, 15551, 15555, 15560, - 15569, 15578, 15586, 15591, 15595, 15599, 15605, 15610, 15616, 10604, - 15621, 15626, 15635, 15640, 10614, 15645, 11424, 11434, 11444, 15648, - 15654, 15662, 10619, 15669, 15673, 15677, 15682, 15686, 15696, 15702, - 15708, 15713, 15722, 15730, 15737, 15744, 15749, 15756, 15761, 15765, - 15768, 15779, 15789, 15802, 15811, 15819, 15830, 15842, 15852, 15862, - 15867, 15871, 15876, 15881, 15885, 15891, 15899, 15906, 15917, 15922, - 15932, 15941, 15945, 15948, 15955, 15965, 15974, 15981, 15985, 15992, - 15998, 16003, 16008, 16012, 15564, 16021, 16025, 16031, 16035, 16040, - 16044, 16051, 16058, 16062, 16071, 16079, 16087, 16094, 16102, 16114, - 16125, 16135, 16142, 16148, 16157, 16168, 16177, 16189, 16201, 16213, - 16223, 16232, 16242, 16251, 16259, 16266, 16276, 16285, 16293, 16297, - 16302, 16308, 16314, 16319, 16324, 16328, 16333, 16338, 16343, 16348, - 16353, 16358, 16363, 8718, 16368, 16370, 16374, 16379, 16385, 16392, - 16398, 16404, 16413, 16417, 16423, 16431, 16438, 16447, 16456, 16465, - 16474, 16483, 16492, 16501, 16510, 16520, 16530, 16539, 16545, 16552, - 16559, 16565, 16579, 16585, 16592, 16600, 16609, 16617, 16623, 16632, - 16638, 16647, 16658, 16664, 16674, 16682, 16689, 16697, 16705, 16712, - 16721, 16734, 16743, 16751, 16758, 16771, 16777, 16783, 16793, 16802, - 16811, 16820, 16828, 16833, 16837, 16843, 16849, 16854, 16861, 16868, - 10222, 16873, 16878, 16885, 16893, 16898, 16910, 16917, 16922, 16934, - 14917, 16939, 16945, 16953, 16959, 16964, 16972, 16980, 16987, 16995, - 17002, 17008, 17014, 17022, 17030, 17036, 17044, 17050, 17055, 17061, - 17068, 17074, 17079, 17083, 17094, 17102, 17110, 17116, 17121, 17128, - 17137, 17143, 17148, 17156, 17163, 17172, 17186, 4405, 17190, 17195, - 17200, 17206, 17211, 17216, 17220, 17225, 17230, 17235, 8717, 17240, - 17245, 17250, 17255, 17260, 17264, 17269, 17274, 17279, 17284, 17290, - 17296, 14190, 17301, 17307, 17312, 17317, 17322, 10623, 17327, 17332, - 17337, 17342, 17347, 17361, 17378, 17396, 17408, 17421, 17438, 17454, - 17471, 17481, 17500, 17511, 17522, 17533, 2809, 17544, 17555, 17566, - 17583, 17594, 17605, 17610, 10628, 17615, 17619, 2489, 17623, 17629, - 17632, 17638, 17646, 17654, 17660, 17669, 17676, 17681, 17689, 17697, - 17704, 17708, 17713, 17719, 17726, 17734, 17741, 17753, 17760, 17766, - 17774, 17779, 17785, 17791, 17796, 13945, 17803, 17807, 17816, 17822, - 17827, 17835, 17844, 17852, 17859, 17865, 17873, 17880, 17886, 17892, - 17899, 17906, 17912, 17918, 17922, 17931, 17939, 17944, 17954, 17961, - 17967, 17975, 17981, 17989, 17997, 18004, 18017, 18021, 18028, 18037, - 18046, 18055, 18063, 18073, 18080, 18085, 3975, 18092, 18097, 1254, - 18101, 18108, 17241, 18112, 18118, 18122, 18130, 18142, 18147, 18154, - 18160, 18165, 18172, 17246, 18176, 18180, 18188, 18193, 18197, 17251, - 18201, 17256, 18205, 18212, 18217, 18221, 18228, 18232, 18235, 18243, - 18250, 18255, 18263, 18267, 18274, 18291, 18300, 18309, 18313, 18316, - 18322, 18330, 18336, 18341, 18345, 18350, 18355, 18360, 18365, 18370, - 18375, 4053, 18380, 18382, 18390, 18397, 18407, 18419, 18424, 18428, - 18434, 18439, 18447, 18451, 18457, 18462, 18468, 18471, 18478, 18486, - 18493, 18499, 18504, 18510, 18515, 18522, 18528, 18533, 18543, 18552, - 18559, 18564, 18568, 18574, 18580, 18584, 18591, 18597, 18602, 18608, - 18616, 18624, 18631, 18637, 18643, 18648, 18654, 18660, 18668, 18673, - 18678, 18686, 18692, 18698, 18703, 18710, 18715, 18719, 18725, 18731, - 18736, 18742, 18749, 18754, 18760, 18763, 18769, 18780, 18786, 18795, - 18798, 18802, 18806, 18820, 18833, 18845, 18851, 18856, 18863, 18869, - 18875, 18886, 18898, 18910, 18920, 18929, 18937, 18944, 18955, 18965, - 18975, 18983, 18986, 17270, 18991, 18996, 19003, 17275, 17426, 19011, - 19024, 19039, 19050, 17443, 19068, 19081, 19094, 19105, 12520, 19116, - 19129, 19148, 19159, 19170, 19181, 2830, 19194, 19198, 19206, 19217, - 19228, 19236, 19251, 19266, 19277, 19284, 19290, 19298, 19302, 19308, - 19312, 19315, 19328, 19340, 19350, 19358, 19365, 19373, 19383, 19388, - 19395, 19400, 19407, 19418, 19428, 19434, 19439, 19444, 17280, 19448, - 19454, 19461, 19467, 19472, 19477, 19482, 19486, 17285, 17291, 19490, - 17297, 19495, 19503, 19508, 19512, 19519, 19527, 19534, 19543, 19550, - 19554, 19558, 19563, 19568, 19573, 19578, 19583, 10467, 19588, 19590, - 19595, 19600, 19606, 19611, 19616, 19621, 19626, 19630, 19636, 19642, - 19647, 19653, 19658, 19663, 19667, 19673, 19678, 19682, 19687, 19692, - 19704, 19709, 19715, 19720, 19725, 19731, 19737, 19742, 19747, 19752, - 19759, 19765, 19776, 19783, 19792, 19797, 19801, 279, 19805, 19813, - 19818, 19824, 19830, 19835, 19842, 19849, 19855, 19860, 19866, 19871, - 19876, 19881, 19888, 19898, 19906, 19911, 19916, 19923, 19929, 19938, - 19948, 19958, 19972, 19986, 20000, 20014, 20029, 20044, 20061, 20079, - 20092, 20098, 20103, 20108, 20112, 20120, 20125, 20133, 20139, 20145, - 20150, 20155, 20159, 20165, 20170, 20174, 20181, 20186, 20190, 20201, - 20207, 20212, 20217, 20224, 20229, 20233, 3933, 20238, 20244, 20251, - 17302, 20257, 20261, 20267, 20272, 20277, 20281, 20287, 20292, 20297, - 20304, 20309, 15698, 20313, 20318, 20322, 20327, 20333, 20339, 20346, - 20356, 20364, 20371, 20376, 20380, 20389, 20397, 20404, 20411, 20417, - 20422, 20428, 20433, 20438, 20444, 20449, 20455, 20460, 20466, 20472, - 20479, 20485, 20490, 20495, 10693, 20504, 20507, 20515, 20521, 20526, - 20531, 20541, 20548, 20554, 20559, 20564, 20570, 20575, 20581, 20586, - 20592, 20599, 20605, 20611, 20616, 20624, 20631, 20636, 20641, 20647, - 20652, 20656, 20665, 20676, 20683, 20690, 20698, 20705, 20712, 20717, - 20722, 20728, 20733, 20741, 20747, 20753, 20758, 20765, 20771, 20776, - 20780, 20786, 20791, 20796, 20800, 20805, 1327, 8742, 3118, 20809, 20813, - 20817, 20821, 20825, 20829, 20832, 20837, 20844, 20852, 20862, 20873, - 20883, 20894, 20906, 20917, 20927, 20938, 20950, 20961, 20973, 20986, - 20998, 21009, 21019, 21030, 21042, 21053, 21066, 21078, 21089, 21101, - 21114, 21126, 21139, 21153, 21166, 21178, 21189, 21199, 21210, 21222, - 21233, 21245, 21258, 21270, 21281, 21293, 21306, 21319, 21333, 21346, - 21358, 21369, 21381, 21394, 21406, 21419, 21433, 21446, 21458, 21471, - 21485, 21498, 21512, 21526, 21539, 21551, 21562, 21572, 17313, 21579, - 21585, 21595, 21603, 21610, 21618, 21628, 21637, 21650, 21655, 21660, - 21668, 21675, 15807, 15816, 21682, 21692, 21707, 21713, 21720, 21727, - 21734, 21740, 21746, 21757, 21765, 21773, 21783, 21793, 21802, 17318, - 21811, 21817, 21823, 21832, 21840, 21848, 21853, 21862, 21870, 21882, - 21892, 21902, 21912, 21921, 21933, 21943, 21953, 21964, 21971, 21976, - 21983, 21995, 22007, 22019, 22031, 22043, 22055, 22067, 22079, 22091, - 22103, 22114, 22126, 22138, 22150, 22162, 22174, 22186, 22198, 22210, - 22222, 22234, 22245, 22257, 22269, 22281, 22293, 22305, 22317, 22329, - 22341, 22353, 22365, 22376, 22388, 22400, 22412, 22424, 22436, 22448, - 22460, 22472, 22484, 22496, 22507, 22519, 22531, 22543, 22555, 22567, - 22579, 22591, 22603, 22615, 22627, 22638, 22650, 22662, 22674, 22686, - 22698, 22710, 22722, 22734, 22746, 22758, 22769, 22781, 22793, 22805, - 22817, 22829, 22841, 22853, 22865, 22877, 22889, 22900, 22912, 22924, - 22936, 22948, 22961, 22974, 22987, 23000, 23013, 23026, 23039, 23051, - 23064, 23077, 23090, 23103, 23116, 23129, 23142, 23155, 23168, 23181, - 23193, 23206, 23219, 23232, 23245, 23258, 23271, 23284, 23297, 23310, - 23323, 23335, 23348, 23361, 23374, 23387, 23400, 23413, 23426, 23439, - 23452, 23465, 23477, 23490, 23503, 23516, 23529, 23542, 23555, 23568, - 23581, 23594, 23607, 23619, 23632, 23645, 23658, 23671, 23684, 23697, - 23710, 23723, 23736, 23749, 23761, 23772, 23785, 23798, 23811, 23824, - 23837, 23850, 23863, 23876, 23889, 23902, 23914, 23927, 23940, 23953, - 23966, 23979, 23992, 24005, 24018, 24031, 24044, 24056, 24069, 24082, - 24095, 24108, 24121, 24134, 24147, 24160, 24173, 24186, 24198, 24211, - 24224, 24237, 24250, 24263, 24276, 24289, 24302, 24315, 24328, 24340, - 24353, 24366, 24379, 24392, 24405, 24418, 24431, 24444, 24457, 24470, - 24482, 24495, 24508, 24521, 24534, 24547, 24560, 24573, 24586, 24599, - 24612, 24624, 24637, 24650, 24663, 24676, 24689, 24702, 24715, 24728, - 24741, 24754, 24766, 24779, 24792, 24805, 24818, 24831, 24844, 24857, - 24870, 24883, 24896, 24908, 24921, 24934, 24947, 24960, 24973, 24986, - 24999, 25012, 25025, 25038, 25050, 25063, 25076, 25089, 25102, 25115, - 25128, 25141, 25154, 25167, 25180, 25192, 25203, 25212, 25220, 25228, - 25235, 25241, 25245, 25251, 25257, 25266, 25274, 25279, 25285, 25290, - 25294, 25303, 10472, 25314, 25320, 25327, 25335, 25342, 13119, 13133, - 25349, 25356, 25365, 25370, 25375, 25382, 25387, 25392, 8758, 8764, 8770, - 25397, 25402, 25405, 25410, 25418, 25425, 25432, 25444, 25451, 25457, - 25466, 25471, 25480, 25489, 25495, 25503, 25512, 25516, 25522, 25527, - 25537, 25544, 25550, 25558, 25564, 25571, 25577, 25587, 25596, 25600, - 25607, 25611, 25616, 25622, 25630, 25634, 25644, 17328, 25653, 25659, - 25663, 25672, 25681, 25691, 25697, 17333, 25704, 25711, 25722, 25730, - 25740, 25749, 25757, 10187, 25765, 25770, 25776, 25781, 25785, 25789, - 25793, 11281, 25798, 25806, 25813, 25822, 25830, 25837, 25844, 25853, - 25859, 1059, 25866, 25872, 25876, 25882, 25889, 25895, 25903, 25909, - 25916, 25922, 25928, 25937, 25941, 25949, 25957, 25964, 25973, 25980, - 25985, 25989, 25999, 26010, 26021, 26026, 26031, 26037, 26046, 26051, - 26064, 8980, 26068, 26074, 26080, 26086, 26091, 26099, 26103, 26110, - 26119, 26124, 17606, 26132, 26136, 26148, 26153, 26157, 26160, 26166, - 26172, 26178, 26183, 26188, 26192, 26195, 26206, 26211, 10749, 26218, - 26223, 26228, 26233, 26238, 26243, 26248, 26253, 26258, 10754, 26263, - 26268, 26273, 26278, 26283, 26288, 26293, 26298, 26303, 26308, 26313, - 26318, 26324, 26329, 26334, 26339, 26344, 26349, 26354, 26359, 26364, - 26369, 26375, 26381, 26386, 26391, 26396, 26401, 26406, 26411, 26416, - 26421, 26426, 26432, 26437, 26442, 26447, 26453, 26459, 26464, 26469, - 26474, 26479, 26484, 26489, 26494, 26499, 26505, 26510, 26515, 26520, - 26525, 26531, 26536, 26541, 26545, 1250, 145, 26553, 26557, 26561, 26565, - 26570, 26574, 15704, 2415, 26578, 26583, 26587, 26592, 26596, 26601, - 26605, 26611, 26616, 26620, 26624, 26632, 26636, 26640, 26647, 26652, - 26657, 26661, 26667, 26672, 26676, 26681, 26686, 26690, 26697, 26704, - 26711, 26716, 26720, 26724, 26729, 26733, 26736, 26742, 26755, 26760, - 26766, 26775, 26780, 11029, 26785, 26794, 26799, 26802, 26806, 26811, - 26816, 26821, 26826, 26831, 2926, 2931, 26836, 26842, 26846, 26852, 3894, - 26857, 26862, 26867, 26873, 26878, 16654, 26883, 26888, 26893, 26898, - 26904, 26909, 26914, 26920, 26925, 26929, 26934, 26939, 26944, 26949, - 26954, 26958, 26963, 26967, 26972, 26977, 26982, 26987, 26991, 26996, - 27000, 27005, 27010, 27015, 26930, 3127, 26935, 27020, 27028, 27035, - 11375, 27047, 27055, 27065, 27083, 27102, 27111, 27119, 26940, 27126, - 27131, 27139, 26945, 27144, 27149, 27157, 27162, 27167, 27171, 19826, - 27176, 27184, 27189, 27193, 27200, 27206, 27215, 27219, 27227, 27233, - 27237, 27240, 20660, 27247, 27251, 27255, 27260, 27266, 27273, 27278, - 10214, 27282, 27287, 27292, 27297, 27302, 27307, 1669, 1674, 27312, - 27318, 27324, 27329, 27333, 27337, 27341, 27345, 27349, 27353, 27357, - 27361, 25438, 27364, 27371, 27379, 27385, 27391, 27396, 27401, 27407, - 27411, 27416, 27423, 16554, 16561, 27429, 27441, 27444, 27451, 27455, - 19851, 27462, 27470, 27481, 27490, 27503, 27513, 27527, 27539, 27553, - 27566, 27578, 27588, 27600, 27606, 27621, 27645, 27663, 27682, 27695, - 27709, 27727, 27743, 27760, 27778, 27789, 27808, 27825, 27845, 27863, - 27875, 27889, 27903, 27915, 27932, 27951, 27969, 27981, 27999, 28018, - 17486, 28031, 28051, 28063, 12551, 28075, 28080, 28085, 28090, 28099, - 28105, 28110, 28114, 28121, 28127, 28131, 28136, 28141, 28146, 28151, - 28156, 28161, 2512, 28166, 28172, 28176, 28179, 28190, 28194, 28197, - 28205, 28211, 14856, 28215, 28224, 28235, 28241, 28247, 28262, 28271, - 28279, 28286, 28291, 28295, 28302, 28308, 28317, 28325, 28332, 28342, - 28351, 28361, 28366, 28375, 28384, 28395, 28406, 28416, 28433, 4549, - 28443, 28447, 28457, 28465, 28475, 28486, 28492, 28497, 28507, 28515, - 28522, 28528, 28535, 28540, 26978, 28544, 28553, 28557, 28560, 28565, - 28573, 28580, 28589, 28597, 28605, 28613, 28623, 28632, 28638, 28644, - 28650, 28654, 26983, 26988, 28658, 28668, 28678, 28688, 28696, 28703, - 28713, 28721, 28729, 28735, 28743, 802, 28752, 17693, 649, 28766, 28775, - 28783, 28794, 28805, 28815, 28824, 28836, 28845, 28854, 28861, 28867, - 28877, 28886, 28895, 28903, 28911, 28921, 28929, 28937, 28944, 28950, - 28955, 28960, 28965, 8142, 28970, 28973, 28977, 28982, 28990, 28996, - 29001, 29005, 3757, 27001, 29013, 27006, 29019, 29025, 29031, 29036, - 29041, 29045, 29053, 29059, 29065, 29069, 3918, 29077, 29082, 29087, - 29091, 29095, 11661, 29102, 29110, 29124, 29131, 29138, 29144, 11670, - 11676, 29152, 29160, 29167, 29172, 29177, 27011, 29183, 29194, 29203, - 18999, 29211, 29216, 2761, 29221, 29232, 29238, 29243, 29247, 29251, - 29254, 29261, 29268, 29274, 29282, 29289, 29295, 29299, 8182, 29304, - 29308, 29312, 29320, 29325, 29330, 29335, 1702, 29340, 29345, 29350, - 29355, 29360, 29365, 29370, 29375, 29380, 29385, 29390, 29395, 29400, - 29405, 29411, 29416, 29421, 29426, 29431, 29436, 29441, 29447, 29452, - 29457, 29462, 29467, 29472, 29477, 29482, 29488, 29494, 29499, 29505, - 29510, 29515, 5, 29521, 29525, 29529, 29533, 29538, 29542, 29546, 29550, - 29554, 29559, 29563, 29568, 29572, 29575, 29579, 29584, 29588, 29593, - 29597, 29601, 29605, 29610, 29614, 29618, 29628, 29633, 29637, 29641, - 29646, 29651, 29660, 29665, 29670, 29674, 29678, 29687, 29700, 29712, - 29721, 29730, 29735, 29741, 29746, 29750, 29754, 29764, 29773, 29781, - 29787, 29792, 29796, 29803, 29810, 29820, 29829, 29837, 12908, 29845, - 29853, 29862, 29871, 29879, 29889, 29894, 29898, 29902, 29905, 29907, - 29911, 29915, 29920, 29925, 29929, 29933, 29936, 29940, 29943, 29947, - 29950, 29953, 29957, 29963, 29967, 29971, 29975, 29979, 29984, 29989, - 29994, 29998, 30001, 30006, 30012, 30017, 30023, 30028, 30032, 30038, - 30042, 30046, 30051, 30055, 30060, 30065, 30069, 30073, 30080, 30084, - 30087, 30091, 30095, 30101, 30107, 30111, 30115, 30120, 30127, 30133, - 30137, 30146, 30150, 30154, 30157, 30163, 30168, 30174, 1391, 1754, - 30179, 30184, 30189, 30194, 30199, 30204, 30209, 2219, 824, 30214, 30217, - 30221, 30225, 30230, 30234, 17705, 30238, 30243, 30248, 30252, 30255, - 30260, 30264, 30269, 30273, 17709, 30278, 30281, 30284, 30290, 30294, - 30299, 30303, 30316, 30324, 30328, 30331, 30339, 30348, 30355, 30360, - 30366, 30372, 30380, 30387, 30394, 30398, 30402, 30406, 30411, 30416, - 30420, 30428, 30433, 30440, 30452, 30463, 30468, 30472, 30479, 30483, - 30488, 30494, 30497, 30502, 30507, 30514, 30518, 30522, 30525, 30531, - 8880, 2419, 30535, 30540, 30556, 11080, 30576, 30585, 30601, 30605, - 30612, 30615, 30621, 30631, 30637, 30646, 30655, 30670, 30681, 30693, - 30704, 30712, 30721, 30727, 30736, 30746, 30756, 30767, 30778, 30788, - 30797, 30804, 30813, 30821, 30828, 30835, 30842, 30850, 30857, 30864, - 30877, 30884, 30892, 30899, 30905, 30910, 30919, 30926, 30932, 30937, - 30945, 30953, 30960, 30967, 28467, 30979, 30991, 31005, 31013, 31021, - 31029, 31036, 31048, 31057, 31066, 31074, 31082, 31090, 31097, 31103, - 31112, 31120, 31130, 31139, 31149, 31158, 31167, 31175, 31180, 31184, - 31187, 31191, 31195, 31199, 31203, 31207, 31213, 31219, 31224, 31232, - 31239, 31247, 31254, 10786, 17767, 31262, 31269, 31274, 31281, 31287, - 31293, 31300, 13998, 31307, 31310, 31322, 31330, 31336, 31341, 31345, - 31356, 31366, 31376, 11600, 31385, 31394, 31402, 31412, 31421, 31428, - 31435, 31443, 31447, 17786, 31450, 31457, 31461, 4493, 31467, 31470, - 31477, 31483, 31497, 31502, 31510, 31516, 31527, 31534, 31540, 31546, - 31550, 31555, 31559, 31568, 31575, 31581, 8933, 31588, 31596, 31603, - 31609, 31614, 31620, 31626, 31636, 31648, 31659, 31669, 31677, 31683, - 17804, 31687, 31689, 31192, 11613, 31698, 31703, 31709, 31719, 31724, - 31731, 31739, 31745, 31750, 31755, 31760, 31764, 31769, 31776, 31782, - 31791, 31799, 31803, 31810, 31820, 31826, 31835, 31841, 31848, 4763, - 31854, 31860, 31865, 31872, 31884, 31895, 31900, 31908, 31912, 31922, - 31928, 31932, 31937, 31947, 31956, 31960, 31967, 31975, 31982, 31988, - 31993, 32001, 32008, 32013, 32020, 32032, 32041, 32045, 15630, 32053, - 32063, 32067, 32075, 32082, 32089, 30335, 32100, 32105, 32109, 32116, - 32123, 26663, 31117, 32128, 32132, 32135, 27795, 32140, 32154, 32170, - 32188, 32207, 32224, 32242, 27814, 32259, 32279, 27831, 32291, 32303, - 19055, 32315, 27851, 32329, 32341, 12564, 32355, 32360, 32365, 32370, - 32376, 32382, 32388, 32392, 32400, 32406, 32413, 32418, 32428, 32435, - 32441, 12102, 32447, 32449, 32454, 32462, 32466, 31772, 32472, 32479, - 13840, 13850, 32486, 32493, 32503, 32508, 32512, 32515, 32521, 32529, - 32541, 32551, 32567, 32580, 32594, 19073, 32608, 32615, 32619, 32622, - 32627, 32631, 32638, 32645, 32652, 32659, 32669, 32674, 32679, 32684, - 32692, 32700, 32705, 32714, 28488, 3567, 32719, 32722, 32725, 32730, - 32737, 32742, 32747, 32763, 32771, 32779, 10844, 32787, 32792, 32796, - 32802, 32807, 32813, 32816, 32822, 32834, 32842, 32849, 32855, 32862, - 32873, 32887, 32900, 32906, 32915, 32921, 32930, 32942, 32953, 32963, - 32972, 32981, 32989, 32999, 33008, 33019, 673, 33026, 33033, 33039, - 33044, 33050, 33057, 33063, 33074, 33084, 33094, 33103, 33109, 33116, - 33121, 33129, 33136, 33144, 33152, 33164, 7128, 33171, 33174, 33183, - 33191, 33197, 33203, 33208, 33212, 33215, 33221, 33228, 33233, 33238, - 33245, 33250, 33254, 33266, 33277, 33286, 33294, 17976, 33299, 33307, - 33312, 33320, 33326, 33332, 13833, 9782, 33337, 33341, 33345, 33348, - 33351, 33357, 33365, 33373, 33377, 33381, 33386, 33390, 33393, 33402, - 33407, 33412, 33416, 33419, 33424, 33432, 33443, 33452, 33456, 33462, - 33468, 33472, 33478, 33486, 33508, 33532, 33543, 33552, 33558, 33565, - 33572, 33578, 33586, 33592, 33597, 33608, 33626, 33633, 33641, 33645, - 33652, 33657, 33666, 33679, 33687, 33699, 33710, 33721, 33731, 33745, - 33754, 33762, 33774, 33785, 11097, 33794, 33805, 33816, 33828, 33838, - 33847, 33857, 33862, 33866, 33874, 33885, 33895, 33901, 33906, 33910, - 33913, 33916, 33924, 33932, 33941, 33951, 33960, 33966, 33971, 33985, - 2844, 34007, 34018, 34027, 34037, 34049, 34058, 34067, 34077, 34085, - 34093, 34102, 34107, 34118, 34123, 34132, 34138, 34149, 34153, 34156, - 34166, 34175, 34183, 34193, 34203, 34211, 34220, 34227, 34233, 34241, - 34248, 34257, 34266, 34271, 34276, 34280, 34288, 34295, 34301, 34305, - 34313, 34320, 34331, 34346, 34353, 34359, 34369, 34378, 34384, 34395, - 34399, 34406, 34410, 34417, 34423, 16806, 34429, 34433, 34438, 34444, - 34451, 34455, 34459, 34467, 34475, 34481, 34490, 34497, 34504, 34509, - 34514, 34524, 28542, 34528, 34531, 34536, 34541, 34546, 34551, 34556, - 34561, 34566, 34571, 34577, 34582, 34587, 34593, 1100, 766, 34598, 34601, - 34608, 34617, 1783, 34624, 34629, 34633, 34639, 1149, 643, 34644, 334, - 34648, 34658, 34667, 34675, 34684, 34692, 34699, 34710, 34718, 34727, - 34735, 34745, 34753, 34758, 11768, 34762, 34770, 34778, 34783, 17722, - 4107, 34789, 34795, 34801, 6655, 34806, 34810, 34817, 34823, 34829, - 34833, 34842, 34848, 34853, 34860, 1342, 34866, 34872, 34877, 34884, - 34888, 1249, 6663, 34893, 34903, 34911, 34917, 34927, 34936, 34944, - 34950, 34955, 34963, 34970, 13350, 34976, 34983, 34988, 34995, 35005, - 1410, 245, 2218, 35011, 35017, 35024, 35035, 35046, 35054, 35061, 35071, - 35080, 35088, 35097, 35104, 35111, 35124, 35131, 35137, 35148, 35167, - 35172, 1154, 35176, 35181, 35189, 3990, 35193, 35198, 35202, 35206, 1346, - 29934, 35216, 35220, 35225, 35229, 35235, 3852, 35241, 35249, 35256, - 35267, 35276, 35284, 35309, 35317, 35322, 3991, 399, 35328, 35336, 35344, - 35351, 35356, 35362, 35367, 2287, 12766, 35374, 35380, 31551, 31890, - 35386, 656, 106, 35390, 35394, 35400, 622, 10659, 35405, 35412, 35418, - 35422, 35426, 1555, 35429, 35433, 18264, 35436, 35441, 35448, 35454, - 8946, 35459, 35467, 35474, 35480, 27173, 35484, 35488, 35492, 35496, - 1840, 20172, 35500, 35505, 35509, 35512, 35520, 35528, 35533, 35542, - 35550, 35553, 35560, 35567, 27252, 35577, 35589, 35597, 35602, 35606, - 35614, 35621, 35628, 35637, 35643, 35650, 35657, 35660, 35664, 35668, - 1357, 35678, 35680, 35685, 35691, 35697, 35702, 35707, 35712, 35717, - 35722, 35727, 35732, 35737, 35742, 35747, 35752, 35757, 35762, 35767, - 35773, 35779, 35785, 35791, 35796, 35801, 35806, 35812, 35817, 35822, - 35827, 35833, 35838, 35844, 35849, 35854, 35859, 35864, 35870, 35875, - 35881, 35886, 35891, 35896, 35901, 35907, 35912, 35918, 35923, 35928, - 35933, 35938, 35943, 35948, 35953, 35958, 35963, 35969, 35975, 35981, - 35986, 35991, 35996, 36001, 36007, 36013, 36019, 36025, 36031, 36037, - 36042, 36048, 36053, 36058, 36063, 36068, 36074, 2558, 36079, 2565, 2572, - 2968, 36084, 2578, 2588, 36090, 2620, 2625, 2630, 36094, 36099, 36104, - 36110, 36115, 36120, 36124, 36129, 36135, 36140, 36145, 36150, 36156, - 36161, 36165, 36169, 36174, 36179, 36184, 36189, 36194, 36200, 36206, - 36211, 36215, 36220, 36226, 36230, 36235, 36240, 36245, 36250, 36254, - 36257, 36262, 36267, 36272, 36277, 36282, 36288, 36294, 36299, 36304, - 36309, 36313, 36318, 36323, 36328, 36333, 36338, 36343, 36347, 36352, - 36357, 36362, 36366, 36370, 36374, 36379, 36387, 36392, 36397, 36403, - 36409, 36415, 36420, 36428, 36432, 36435, 36440, 36445, 36449, 36454, - 36459, 36463, 36468, 36472, 36475, 36480, 4203, 21663, 36485, 36490, - 36495, 36500, 36508, 25833, 34881, 10298, 36513, 36518, 36522, 36527, - 36531, 36535, 36540, 36544, 36547, 36550, 36554, 36559, 36563, 36571, - 36575, 36578, 36583, 36587, 36591, 36596, 36601, 36605, 36611, 36616, - 36621, 36628, 36635, 36639, 36642, 36648, 36657, 36664, 36672, 36679, - 36683, 36688, 36692, 36696, 36702, 36707, 36713, 36717, 36723, 36728, - 36733, 36737, 36744, 36750, 36756, 36762, 36768, 36775, 36781, 36787, - 36793, 36799, 36805, 36811, 36817, 36824, 36830, 36837, 36843, 36849, - 36855, 36861, 36867, 36873, 36879, 36885, 36891, 36897, 36902, 36907, - 13705, 36912, 36918, 36923, 36928, 36933, 36938, 36941, 36947, 36952, - 36960, 36965, 36969, 36974, 36980, 36989, 36995, 37000, 37005, 37010, - 37014, 37019, 37023, 37028, 37033, 37038, 37043, 37050, 37057, 37063, - 37069, 37074, 19769, 37081, 37087, 37094, 37100, 37106, 37111, 37119, - 37124, 11268, 37128, 37133, 37138, 37144, 37149, 37154, 37158, 37163, - 37168, 37174, 37179, 37184, 37189, 37193, 37198, 37203, 37207, 37212, - 37217, 37221, 37226, 37230, 37235, 37240, 37245, 37249, 37254, 37258, - 37263, 37267, 37274, 37278, 37282, 18420, 37287, 37294, 37303, 37309, - 37315, 37324, 37332, 37341, 37349, 37354, 37358, 37365, 37371, 37379, - 37383, 37386, 37391, 37395, 37404, 37412, 37430, 37436, 1409, 37442, - 37445, 37449, 27319, 27325, 37455, 37459, 37470, 37481, 37492, 37504, - 37508, 37515, 37522, 37529, 37534, 37538, 37546, 37551, 37556, 37561, - 37566, 6720, 16710, 25832, 37571, 37576, 37580, 16701, 37585, 37591, - 37596, 37602, 37607, 37613, 37618, 37624, 37629, 37635, 37641, 37647, - 37652, 37608, 37614, 37656, 37661, 37667, 37672, 37678, 37683, 37689, - 37694, 37619, 12396, 37698, 37630, 37636, 37642, 3060, 3766, 37704, - 37707, 37712, 37718, 37724, 37730, 37737, 37743, 37749, 37755, 37761, - 37767, 37773, 37779, 37785, 37791, 37797, 37803, 37809, 37816, 37822, - 37828, 37834, 37840, 37846, 37849, 37854, 37857, 37864, 37869, 37877, - 37881, 37886, 37891, 37897, 37902, 37907, 37911, 37916, 37922, 37927, - 37933, 37938, 37944, 37949, 37955, 37961, 37965, 37970, 37975, 37980, - 37985, 37989, 37994, 37999, 38004, 38010, 38016, 38022, 38028, 38033, - 38037, 38040, 38046, 38052, 38061, 38069, 38076, 38081, 38085, 38089, - 38094, 18207, 38099, 38107, 38113, 4149, 1259, 38118, 38123, 38127, 8996, - 38133, 38139, 38146, 9005, 38150, 38156, 38162, 38169, 38175, 38184, - 38192, 38204, 38208, 38215, 38221, 38226, 38230, 38234, 38237, 38247, - 38256, 38264, 37609, 38269, 38279, 38289, 38299, 38305, 38310, 38320, - 38325, 38338, 38352, 38363, 38375, 38387, 38401, 38414, 38426, 38438, - 17527, 38452, 38457, 38462, 38466, 38470, 38474, 38478, 38484, 38489, - 38494, 38499, 38504, 38509, 38514, 1743, 32951, 38519, 38524, 38529, - 37657, 38534, 38537, 38542, 38547, 38552, 38558, 38564, 19379, 11968, - 38569, 38575, 38582, 19007, 38588, 38593, 38598, 38602, 38607, 38612, - 37662, 38617, 38622, 38627, 38633, 37668, 38638, 38641, 38648, 38656, - 38662, 38668, 38674, 38685, 38690, 38697, 38704, 38711, 38719, 38728, - 38737, 38743, 38749, 38757, 37673, 38762, 38768, 38774, 37679, 38779, - 38784, 38792, 38800, 38806, 38813, 38819, 38826, 38833, 38839, 38847, - 38857, 38864, 38870, 38875, 38881, 38886, 38891, 38898, 38907, 38915, - 38920, 38926, 38933, 38941, 38947, 38952, 38958, 38967, 38974, 33946, - 38980, 38984, 38989, 38998, 39003, 39008, 39013, 14946, 39021, 39026, - 39031, 39036, 39040, 39045, 39050, 39057, 39062, 39067, 39072, 37684, - 25761, 39078, 2661, 155, 39081, 39084, 39088, 39092, 39102, 39110, 39117, - 39121, 39125, 39128, 39136, 39143, 39150, 31844, 39159, 39162, 39169, - 39175, 39180, 39184, 39191, 39195, 39203, 39211, 39218, 39233, 39237, - 39241, 39244, 39250, 39257, 39261, 39267, 39271, 39278, 39286, 39294, - 39301, 37620, 39308, 39316, 39321, 39333, 12049, 12056, 12063, 12070, - 12077, 12084, 630, 434, 39339, 39344, 39349, 39355, 39360, 39365, 4170, - 39370, 39373, 39378, 39383, 39388, 39393, 39398, 39405, 27437, 39410, - 39415, 39420, 39425, 39430, 39436, 39441, 39447, 37860, 39453, 39458, - 39464, 39470, 39480, 39485, 39490, 39494, 39499, 39504, 39509, 39514, - 39527, 39532, 27051, 20254, 1061, 39536, 39542, 39546, 39551, 39556, - 39562, 39567, 39572, 39576, 39581, 39586, 39592, 39597, 39602, 1264, - 39606, 39611, 39616, 39621, 39625, 39630, 39635, 39640, 39646, 39652, - 39657, 39661, 39665, 39670, 39675, 39680, 39684, 39689, 39697, 39701, - 39707, 39711, 39718, 39727, 20025, 37631, 39733, 39740, 39748, 39756, - 39763, 39769, 39778, 39791, 39803, 39808, 39814, 39818, 2987, 39822, - 39826, 39252, 39835, 39846, 39857, 39862, 34014, 39867, 39872, 39876, - 34134, 27330, 39881, 39888, 39892, 39897, 37637, 25868, 39901, 39906, - 39912, 39917, 39921, 39925, 39928, 39932, 39938, 39947, 39958, 39970, - 37643, 39975, 39978, 39982, 39986, 39991, 39996, 40001, 40006, 40011, - 40016, 40021, 40026, 373, 40031, 40036, 40041, 40046, 40051, 40056, - 40062, 40067, 40072, 40078, 40083, 40089, 40094, 40100, 40105, 40110, - 40115, 40120, 40125, 40130, 40135, 40140, 40146, 40151, 40156, 40161, - 40166, 40171, 40176, 40181, 40187, 40193, 40198, 40203, 40208, 40213, - 40218, 40223, 40228, 40233, 40238, 40243, 40248, 40253, 40258, 40263, - 40268, 40273, 40278, 40283, 40293, 40303, 40309, 346, 14, 40314, 40317, - 40321, 40325, 40333, 40337, 40341, 31524, 16943, 1824, 40344, 40349, - 40353, 40358, 40362, 40367, 40371, 40376, 40380, 40383, 40385, 40389, - 40394, 40398, 40409, 40412, 40414, 40418, 40430, 40442, 40451, 40455, - 40465, 40469, 40475, 40480, 40489, 40495, 40500, 40505, 40509, 40513, - 40518, 40525, 40530, 40536, 40541, 40545, 40552, 31125, 31135, 40556, - 40561, 40566, 40571, 40578, 40582, 40589, 40595, 9151, 40599, 40608, - 40616, 40631, 40645, 40654, 40662, 40673, 40682, 40687, 40694, 40704, - 8151, 40714, 40719, 40724, 40728, 40731, 40736, 40740, 40745, 40749, - 40756, 40761, 40766, 40771, 40781, 40786, 40791, 40796, 10168, 40801, - 40803, 40811, 40814, 40817, 40825, 40840, 40848, 40858, 40860, 40863, - 40867, 40873, 40877, 40882, 40887, 40905, 40919, 40938, 40955, 40964, - 40972, 40977, 40982, 1402, 40988, 40994, 40999, 41009, 41018, 41026, - 41031, 41037, 41042, 41051, 41060, 41071, 41076, 41083, 41089, 41093, - 41102, 41109, 41117, 41124, 41137, 41145, 41149, 41159, 41164, 41168, - 41176, 41184, 41189, 41193, 41197, 41206, 41212, 41217, 41225, 41235, - 41244, 41253, 41262, 41273, 41281, 41292, 41301, 41309, 41316, 41322, - 41327, 41338, 41349, 41354, 41358, 41361, 41365, 41375, 41383, 41389, - 41400, 41411, 41422, 41433, 41444, 41455, 41466, 41477, 41489, 41501, - 41513, 41525, 41537, 41549, 41561, 41570, 41574, 41582, 41588, 41594, - 41601, 41607, 41612, 41618, 41622, 41627, 41632, 41637, 40288, 40298, - 2532, 41642, 41644, 41649, 41654, 41659, 41662, 41664, 41668, 41671, - 41678, 41682, 11624, 41686, 41692, 41699, 41705, 41715, 41720, 41726, - 41730, 41735, 41748, 31714, 41754, 41760, 41769, 41778, 21886, 41785, - 41794, 38285, 41802, 41807, 41811, 41820, 41828, 41835, 41840, 41844, - 41849, 41854, 41862, 41866, 41874, 41880, 41886, 41891, 41896, 41900, - 41903, 41908, 41921, 41937, 27921, 41954, 41966, 41983, 41995, 42009, - 27938, 27957, 42021, 42033, 2861, 42047, 42052, 42057, 42062, 42066, - 42073, 42085, 42092, 42101, 42104, 42115, 42126, 42134, 42139, 42143, - 42148, 42153, 42158, 42163, 42168, 42173, 1774, 947, 42178, 42182, 42186, - 42189, 42194, 42199, 42205, 42210, 42215, 42221, 42227, 42232, 42236, - 42241, 42246, 42251, 42255, 42258, 42264, 42269, 42274, 42279, 42283, - 42288, 42294, 42302, 32025, 42307, 42312, 42319, 42325, 42331, 42336, - 42344, 27446, 42351, 42356, 42361, 42366, 42370, 42373, 42378, 42382, - 42386, 42393, 42399, 42405, 42411, 42418, 42423, 42429, 41179, 42433, - 42437, 42442, 42455, 42460, 42466, 42474, 42481, 42489, 42499, 42505, - 42511, 42517, 42521, 42530, 42538, 42545, 42550, 42555, 12419, 42560, - 42570, 42577, 42583, 42593, 42598, 42604, 42612, 4023, 42619, 42626, - 42632, 42639, 4029, 42643, 42648, 42659, 42666, 42672, 42681, 42685, - 42688, 4601, 42695, 42702, 42708, 42714, 42722, 42732, 35357, 42739, - 42747, 42753, 42758, 42764, 42769, 42773, 31473, 42779, 42786, 42792, - 42800, 42809, 42816, 42822, 42833, 28740, 42839, 42846, 42852, 42862, - 42867, 42871, 42879, 42887, 42894, 42900, 42905, 11226, 941, 42910, - 42914, 42916, 42920, 42925, 42928, 42930, 42935, 42941, 42946, 42951, - 42958, 39401, 42964, 42969, 42973, 42978, 42982, 42991, 42995, 43001, - 43008, 43014, 43021, 43026, 43035, 43040, 43044, 43049, 43056, 43064, - 43072, 43077, 25924, 43081, 43084, 43088, 43092, 12863, 993, 43096, - 43101, 43109, 43114, 43118, 43127, 43134, 43138, 43142, 43150, 43157, - 16228, 43167, 43171, 43175, 43183, 43191, 43197, 43202, 43206, 43215, - 15976, 43221, 43230, 43237, 43242, 43249, 43256, 43264, 43271, 43279, - 43287, 43296, 43301, 43308, 43315, 43322, 43329, 43336, 43341, 43348, - 43354, 43371, 43379, 43389, 43397, 43404, 459, 43408, 43414, 43418, - 43423, 40678, 43429, 43432, 43436, 43442, 43453, 43461, 4034, 43469, - 43475, 43481, 43491, 43497, 43506, 43515, 43525, 43532, 43538, 43543, - 4040, 4046, 43552, 43560, 43567, 43571, 14330, 43579, 43583, 43590, - 43598, 43605, 43612, 43618, 43627, 43637, 43643, 43651, 43660, 43667, - 43675, 43682, 26726, 43686, 43693, 43699, 43709, 43718, 43726, 43737, - 43741, 43751, 43758, 43763, 43768, 43774, 43781, 43789, 43798, 43807, - 43817, 43828, 43835, 43840, 43847, 3275, 43855, 43861, 43866, 43873, - 43879, 43885, 43890, 43903, 43916, 43929, 43936, 43942, 43950, 43958, - 43963, 43967, 43971, 43976, 43981, 43986, 43991, 43996, 44001, 1371, - 44006, 44010, 44014, 44018, 44022, 44026, 44030, 44034, 44038, 44042, - 44046, 44050, 44054, 44058, 44062, 44066, 44070, 44074, 44078, 44082, - 44086, 44090, 44094, 44098, 44102, 44106, 44110, 44114, 44118, 44122, - 44126, 44130, 44134, 44138, 44142, 44146, 44150, 44154, 44158, 44162, - 44166, 44170, 44174, 44178, 44182, 44186, 44190, 44194, 44198, 44202, - 44206, 44210, 44214, 44218, 44222, 44226, 44230, 44234, 44238, 44242, - 44246, 44250, 44254, 44258, 44262, 44266, 44270, 44274, 44278, 44282, - 44286, 44290, 44294, 44298, 44302, 44306, 44310, 44314, 44318, 44322, - 44326, 44330, 44334, 44338, 44342, 44346, 44350, 44354, 44358, 44362, - 44366, 44370, 44374, 44378, 44382, 44386, 44390, 44394, 44398, 44402, - 44406, 44410, 44414, 44418, 44422, 44426, 44430, 44434, 44438, 44442, - 44446, 44450, 44454, 44458, 44462, 44466, 44470, 44474, 44478, 44482, - 44486, 44490, 44494, 44498, 44502, 44506, 44510, 44514, 44518, 44522, - 44526, 44530, 44534, 44538, 44542, 44546, 44550, 44554, 44558, 44562, - 44566, 44570, 44574, 44578, 44582, 44586, 44590, 44594, 44598, 44602, - 44606, 44610, 44614, 44618, 44623, 44627, 44632, 44636, 44641, 44645, - 44650, 44654, 44660, 44665, 44669, 44674, 44678, 44683, 44687, 44692, - 44696, 44701, 44705, 44710, 44714, 44719, 44723, 44729, 44735, 44740, - 44744, 44749, 44753, 44759, 44764, 44768, 44773, 44777, 44782, 44786, - 44792, 44797, 44801, 44806, 44810, 44815, 44819, 44824, 44828, 44834, - 44839, 44843, 44848, 44852, 44858, 44863, 44867, 44872, 44876, 44881, - 44885, 44890, 44894, 44899, 44903, 44909, 44914, 44918, 44924, 44929, - 44933, 44939, 44944, 44948, 44953, 44957, 44962, 44966, 44972, 44978, - 44984, 44990, 44996, 45002, 45008, 45014, 45019, 45023, 45028, 45032, - 45038, 45043, 45047, 45052, 45056, 45061, 45065, 45070, 45074, 45079, - 45083, 45088, 45092, 45097, 45101, 45107, 45112, 45116, 45121, 45125, - 45131, 45137, 45142, 127, 63, 45146, 45148, 45152, 45156, 45160, 45165, - 45169, 45173, 45178, 11133, 45183, 45189, 1683, 7167, 45195, 45198, - 45203, 45207, 45212, 45216, 45220, 45225, 12207, 45229, 45233, 45237, - 626, 45241, 18529, 45246, 45250, 45255, 45260, 45265, 45269, 45276, - 45282, 31746, 45288, 45291, 45295, 45300, 45306, 45310, 45313, 45321, - 45327, 45332, 45336, 45339, 45343, 45349, 45353, 45357, 3817, 3822, - 15058, 45360, 45364, 45368, 45372, 45376, 45384, 45391, 45395, 15926, - 45402, 45416, 45423, 45434, 361, 45439, 45443, 45449, 45461, 45467, - 45473, 45478, 45484, 45488, 35653, 45497, 45503, 45512, 45516, 45520, - 45525, 45531, 45536, 45540, 45545, 45549, 45553, 45560, 45566, 45571, - 45582, 45597, 45612, 45627, 45643, 45661, 12114, 45675, 45682, 45688, - 45692, 45695, 45704, 45709, 45713, 45721, 19210, 45729, 45733, 45743, - 45754, 35555, 1031, 45767, 45776, 45794, 45813, 45822, 45830, 45838, - 1696, 12316, 45842, 27342, 45845, 31512, 45850, 11458, 45855, 45861, - 45866, 45872, 45877, 45883, 45888, 45894, 45899, 45905, 45911, 45917, - 45922, 45878, 45884, 45926, 45889, 45895, 45900, 45931, 45906, 45912, - 9164, 4426, 45937, 45945, 45949, 45952, 45959, 45963, 45968, 45973, - 45980, 45986, 45992, 45997, 17818, 46001, 31529, 46005, 46009, 46013, - 46020, 46026, 46030, 33880, 46039, 10331, 46043, 10760, 46046, 46053, - 46059, 46063, 14355, 46070, 46076, 46081, 46088, 46095, 46102, 34679, - 9061, 46109, 46116, 46123, 46129, 46134, 46141, 46152, 46158, 46163, - 46168, 46173, 46177, 46182, 46189, 45879, 46193, 46203, 46212, 46223, - 46229, 46237, 46244, 46249, 46254, 46259, 46264, 46269, 46273, 46277, - 46284, 46290, 46298, 2422, 30538, 12219, 12231, 12236, 12242, 46307, - 12247, 12252, 12258, 46312, 46322, 46326, 12263, 46331, 20452, 46334, - 46339, 46343, 46347, 46358, 46366, 42096, 46374, 46379, 46386, 46393, - 46397, 46400, 46408, 12127, 46415, 46418, 46424, 46434, 6753, 46443, - 46448, 46454, 46458, 46466, 46470, 46480, 46486, 46491, 46502, 46511, - 46520, 46529, 46538, 46547, 46556, 46565, 46571, 46577, 46582, 46588, - 46594, 46600, 46605, 46608, 46615, 46621, 46625, 46630, 46637, 46644, - 46648, 46651, 46661, 46674, 46683, 46692, 46703, 46716, 46728, 46739, - 46748, 46759, 46764, 46773, 46778, 12268, 46784, 46791, 46799, 46806, - 46811, 46816, 31792, 46820, 46827, 4366, 25, 46831, 46836, 20301, 46840, - 46843, 46846, 34071, 46850, 34688, 46858, 46862, 46866, 46869, 46875, - 46881, 46886, 37708, 46895, 46903, 46909, 46916, 34054, 46920, 34291, - 46924, 46933, 46937, 46945, 46951, 46957, 46962, 46966, 34714, 46972, - 46975, 46983, 46991, 46999, 4764, 47005, 47009, 47013, 47018, 47025, - 47031, 47036, 47041, 47045, 47051, 47056, 47062, 4654, 817, 47069, 47073, - 47076, 47088, 47095, 47100, 18402, 47104, 47112, 47120, 47128, 47136, - 47143, 47151, 47159, 47166, 47174, 47182, 47190, 47198, 47206, 47214, - 47222, 47230, 47238, 47246, 47254, 47261, 47269, 47277, 47285, 47293, - 47301, 47309, 47317, 47325, 47333, 47341, 47349, 47357, 47365, 47373, - 47381, 47389, 47397, 47405, 47413, 47420, 47428, 47435, 47443, 47451, - 47459, 47467, 47475, 47483, 47491, 47499, 47510, 26762, 47515, 47518, - 47525, 47529, 47535, 47539, 47545, 47550, 47556, 47561, 47566, 47570, - 47574, 47581, 47589, 47594, 47599, 47609, 47615, 47628, 47634, 47640, - 47646, 47649, 47656, 47661, 4692, 47667, 4855, 962, 47672, 47675, 47678, - 47681, 37792, 37798, 47684, 37804, 37817, 37823, 37829, 47690, 37835, - 37841, 47696, 47702, 10, 47710, 47717, 47721, 47725, 47733, 38643, 47737, - 47741, 47748, 47753, 47757, 47762, 47768, 47773, 47779, 47784, 47788, - 47792, 47796, 47801, 47805, 47810, 47814, 47818, 47825, 47830, 47834, - 47838, 47843, 47847, 47852, 47856, 47860, 47865, 47871, 18711, 18716, - 47876, 47880, 47883, 47889, 47893, 47897, 25718, 47902, 47906, 47912, - 47919, 47925, 47930, 40707, 47940, 47945, 47953, 47957, 47960, 47964, - 38658, 47972, 4730, 47977, 47982, 47986, 47991, 47995, 48000, 15994, - 48011, 48015, 48018, 48022, 48030, 48035, 48039, 48044, 48049, 48053, - 48057, 48061, 48064, 48068, 48071, 48076, 48081, 48086, 48091, 48096, - 48101, 8644, 16010, 48106, 48109, 48115, 48120, 48126, 48131, 48137, - 48142, 48148, 48153, 48159, 48165, 48171, 48176, 48180, 48184, 48195, - 48203, 48210, 48216, 48221, 48232, 48242, 48248, 48253, 48260, 48269, - 48285, 48301, 48311, 33956, 48318, 48322, 48327, 48332, 48336, 48340, - 43802, 48346, 48351, 48355, 48362, 48367, 48372, 48376, 48379, 48383, - 48389, 32754, 48393, 26076, 48398, 48405, 48413, 48419, 48425, 48432, - 48440, 48446, 48450, 48455, 48461, 48469, 48474, 48478, 48487, 11114, - 48495, 48499, 48507, 48514, 48519, 48524, 48529, 48533, 48536, 48542, - 48546, 48549, 48553, 48560, 48565, 48572, 48576, 48582, 48586, 48592, - 48597, 48602, 5093, 5100, 48607, 48616, 48624, 48629, 48635, 48647, - 48660, 48674, 48681, 48687, 48693, 48698, 48706, 48709, 48711, 48722, - 48734, 48745, 48760, 48777, 48797, 48819, 48826, 48833, 48840, 48846, - 48850, 8643, 48853, 48857, 48861, 48866, 48870, 48874, 48877, 48881, - 48895, 27987, 48914, 48927, 48940, 48953, 28005, 48968, 2814, 48983, - 48989, 48993, 49003, 49007, 49011, 49016, 49020, 49027, 49032, 49036, - 49043, 49049, 49054, 49060, 49070, 49082, 49093, 49098, 49105, 49109, - 49113, 49116, 49124, 19231, 4138, 49129, 18750, 49142, 49149, 49156, - 49162, 49166, 49170, 49175, 49181, 49186, 49192, 49196, 49200, 49203, - 49208, 49212, 49217, 49222, 49227, 49232, 49237, 49242, 49247, 49252, - 49257, 8707, 18761, 49262, 49266, 49272, 49281, 49286, 49295, 49302, - 43633, 49308, 49313, 49317, 49324, 49329, 49336, 49344, 49350, 49354, - 49357, 49361, 49366, 2892, 49373, 49380, 49384, 49387, 49392, 49397, - 49403, 49408, 49413, 49417, 49422, 49432, 49437, 49443, 49448, 47090, - 49454, 49460, 49468, 49478, 49483, 49488, 49492, 49497, 49502, 8153, - 8165, 49507, 49510, 49517, 49523, 49532, 10248, 41319, 49540, 49544, - 49548, 38706, 49556, 49567, 49575, 43850, 49582, 49587, 49592, 49603, - 49610, 49621, 38730, 26093, 49629, 4644, 49634, 16427, 49640, 34045, - 49646, 49651, 49661, 49670, 49677, 49683, 49687, 49690, 49697, 49703, - 49710, 49716, 49726, 49734, 49740, 49746, 49751, 49755, 49762, 49767, - 49773, 49780, 49786, 48862, 49791, 49795, 16469, 16478, 16487, 16496, - 16505, 16534, 617, 16543, 49801, 49806, 49809, 49815, 49823, 1281, 49828, - 49832, 49837, 49842, 49847, 49854, 49860, 49864, 49869, 49875, 49879, - 37865, 49884, 49889, 49898, 49905, 49915, 49921, 34089, 49938, 49947, - 49955, 49961, 49966, 49973, 49979, 49987, 49996, 50004, 50012, 50018, - 50022, 50027, 50035, 35231, 38739, 50041, 50060, 19134, 50074, 50090, - 50104, 50110, 50115, 50120, 50125, 50131, 38745, 50136, 50139, 50146, - 50153, 50162, 50167, 50171, 423, 3182, 50178, 50183, 50188, 33148, 49976, - 50192, 50197, 50205, 50209, 50212, 50217, 50223, 50229, 50234, 50238, - 34162, 50241, 50246, 50250, 50253, 50258, 50262, 50267, 50272, 50276, - 50281, 50285, 50292, 50296, 50300, 25714, 25725, 50305, 50310, 50316, - 50321, 50327, 50333, 32710, 50338, 50342, 50345, 50351, 50356, 50361, - 50366, 50371, 50376, 50381, 50386, 50391, 50397, 50403, 14543, 19441, - 50408, 50413, 50418, 50423, 50428, 50433, 50438, 50443, 452, 68, 37882, - 37887, 37892, 37898, 37903, 37908, 50448, 37912, 50452, 50456, 50460, - 37917, 37923, 50474, 37934, 37939, 50482, 50487, 37945, 50492, 50497, - 50506, 50511, 50516, 50525, 50531, 50537, 50543, 37962, 50556, 50565, - 50571, 37966, 50575, 37971, 50580, 37976, 37981, 50583, 50588, 50592, - 50598, 16235, 50605, 16245, 50612, 50617, 37986, 50621, 50626, 50631, - 50636, 50641, 50645, 50650, 50655, 50661, 50666, 50671, 50677, 50683, - 50688, 50692, 50697, 50702, 50707, 50711, 50716, 50721, 50726, 50732, - 50738, 50744, 50749, 50753, 50758, 50762, 37990, 37995, 38000, 50766, - 50770, 50775, 50779, 50791, 38005, 38011, 38017, 38029, 50797, 31572, - 50801, 50806, 50810, 50815, 50822, 50827, 50832, 50837, 50841, 50845, - 50855, 50860, 50865, 50869, 50873, 50876, 50884, 50889, 38077, 50893, - 1381, 50899, 50904, 50910, 50918, 50922, 50931, 50939, 50943, 50947, - 50955, 50961, 50969, 50985, 50990, 50994, 50998, 51002, 51007, 51013, - 51028, 38114, 1691, 14575, 51032, 1260, 1275, 51044, 51052, 51059, 51064, - 9210, 51071, 51076, 10745, 987, 2647, 12295, 51083, 10638, 51088, 51091, - 51100, 1168, 51105, 49033, 51112, 51121, 51126, 51130, 51138, 51145, - 27392, 2703, 51153, 12816, 51163, 51169, 2440, 2450, 51178, 51187, 51197, - 51208, 3590, 41716, 51213, 4333, 4344, 9238, 1173, 51217, 51225, 51232, - 51237, 51241, 51245, 51250, 29022, 49368, 12386, 51258, 51267, 51276, - 51284, 51297, 51304, 51315, 51320, 51333, 51346, 51358, 51370, 51382, - 51393, 51406, 51417, 51428, 51438, 51446, 51454, 51466, 51478, 51489, - 51498, 51506, 51513, 51525, 51532, 51538, 51547, 51553, 51560, 51573, - 51578, 51588, 51593, 51599, 51604, 46060, 51608, 48538, 51615, 51622, - 51630, 51637, 2660, 51644, 51655, 51665, 51674, 51682, 51692, 51700, - 51709, 51719, 51728, 51733, 51739, 51745, 4182, 51756, 51766, 51775, - 51784, 51792, 51802, 51810, 51819, 51824, 51829, 51834, 1610, 47, 51842, - 51850, 51861, 51872, 19845, 51882, 51886, 51893, 51899, 51904, 51908, - 51919, 51929, 51938, 51949, 51954, 20274, 20279, 51961, 51970, 51975, - 51985, 51990, 51998, 52006, 52013, 52019, 1572, 271, 52023, 52029, 45941, - 52034, 52037, 2188, 2669, 52045, 52049, 52052, 1426, 52058, 16755, 1178, - 52063, 52076, 2803, 2824, 52090, 52102, 52114, 2838, 2855, 2870, 2886, - 2903, 52128, 52140, 2918, 52154, 1184, 1190, 1196, 12687, 52159, 52164, - 52169, 52173, 52188, 52203, 52218, 52233, 52248, 52263, 52278, 52293, - 52308, 52323, 52338, 52353, 52368, 52383, 52398, 52413, 52428, 52443, - 52458, 52473, 52488, 52503, 52518, 52533, 52548, 52563, 52578, 52593, - 52608, 52623, 52638, 52653, 52668, 52683, 52698, 52713, 52728, 52743, - 52758, 52773, 52788, 52803, 52818, 52833, 52848, 52863, 52878, 52893, - 52908, 52923, 52938, 52953, 52968, 52983, 52998, 53013, 53028, 53043, - 53058, 53073, 53088, 53103, 53118, 53133, 53148, 53163, 53178, 53193, - 53208, 53223, 53238, 53253, 53268, 53283, 53298, 53313, 53328, 53343, - 53358, 53373, 53388, 53403, 53418, 53433, 53448, 53463, 53478, 53493, - 53508, 53523, 53538, 53553, 53568, 53583, 53598, 53613, 53628, 53643, - 53658, 53673, 53688, 53703, 53718, 53733, 53748, 53763, 53778, 53793, - 53808, 53823, 53838, 53853, 53868, 53883, 53898, 53913, 53928, 53943, - 53958, 53973, 53988, 54003, 54018, 54033, 54048, 54063, 54078, 54093, - 54108, 54123, 54138, 54153, 54168, 54183, 54198, 54213, 54228, 54243, - 54258, 54273, 54288, 54303, 54318, 54333, 54348, 54363, 54378, 54393, - 54408, 54423, 54438, 54453, 54468, 54483, 54498, 54513, 54528, 54543, - 54558, 54573, 54588, 54603, 54618, 54633, 54648, 54663, 54678, 54693, - 54708, 54723, 54738, 54753, 54768, 54783, 54798, 54813, 54828, 54843, - 54858, 54873, 54888, 54903, 54918, 54933, 54948, 54963, 54978, 54993, - 55008, 55023, 55038, 55053, 55068, 55083, 55098, 55113, 55128, 55143, - 55158, 55173, 55188, 55203, 55218, 55233, 55248, 55263, 55278, 55293, - 55308, 55323, 55338, 55353, 55368, 55383, 55398, 55413, 55428, 55443, - 55458, 55473, 55488, 55503, 55518, 55533, 55548, 55563, 55578, 55593, - 55608, 55623, 55638, 55653, 55668, 55683, 55698, 55713, 55728, 55743, - 55758, 55773, 55788, 55803, 55818, 55833, 55848, 55863, 55878, 55893, - 55908, 55923, 55938, 55953, 55968, 55983, 55998, 56013, 56028, 56043, - 56058, 56073, 56088, 56103, 56118, 56133, 56148, 56163, 56178, 56193, - 56208, 56223, 56238, 56253, 56268, 56283, 56298, 56313, 56328, 56343, - 56358, 56373, 56388, 56403, 56418, 56433, 56448, 56463, 56478, 56493, - 56508, 56523, 56538, 56553, 56568, 56583, 56598, 56613, 56628, 56643, - 56658, 56673, 56688, 56703, 56718, 56733, 56748, 56763, 56778, 56793, - 56808, 56823, 56838, 56853, 56868, 56883, 56898, 56913, 56928, 56943, - 56958, 56973, 56988, 57003, 57018, 57033, 57048, 57063, 57078, 57093, - 57108, 57123, 57138, 57153, 57168, 57183, 57198, 57213, 57228, 57243, - 57258, 57273, 57288, 57303, 57318, 57333, 57348, 57363, 57378, 57393, - 57408, 57423, 57438, 57453, 57468, 57483, 57498, 57513, 57528, 57543, - 57558, 57573, 57588, 57603, 57618, 57633, 57648, 57663, 57678, 57693, - 57708, 57723, 57738, 57753, 57768, 57783, 57798, 57813, 57828, 57843, - 57858, 57873, 57888, 57903, 57918, 57933, 57948, 57963, 57978, 57993, - 58008, 58023, 58038, 58053, 58068, 58083, 58098, 58113, 58128, 58143, - 58158, 58173, 58188, 58203, 58218, 58233, 58248, 58263, 58278, 58293, - 58308, 58323, 58338, 58353, 58368, 58383, 58398, 58413, 58428, 58443, - 58458, 58473, 58488, 58503, 58518, 58533, 58548, 58563, 58578, 58593, - 58608, 58623, 58638, 58653, 58668, 58683, 58698, 58713, 58728, 58743, - 58758, 58773, 58788, 58803, 58818, 58833, 58848, 58863, 58878, 58893, - 58908, 58923, 58938, 58953, 58968, 58983, 58998, 59013, 59028, 59043, - 59058, 59073, 59088, 59103, 59118, 59133, 59148, 59163, 59178, 59193, - 59208, 59223, 59238, 59253, 59268, 59283, 59298, 59313, 59328, 59343, - 59358, 59373, 59388, 59403, 59418, 59433, 59448, 59463, 59478, 59493, - 59508, 59523, 59538, 59553, 59568, 59583, 59598, 59613, 59628, 59643, - 59658, 59673, 59688, 59703, 59718, 59733, 59748, 59763, 59778, 59793, - 59808, 59823, 59838, 59853, 59868, 59883, 59898, 59913, 59928, 59943, - 59958, 59973, 59988, 60004, 60020, 60036, 60052, 60068, 60084, 60100, - 60116, 60132, 60148, 60164, 60180, 60196, 60212, 60228, 60244, 60260, - 60276, 60292, 60308, 60324, 60340, 60356, 60372, 60388, 60404, 60420, - 60436, 60452, 60468, 60484, 60500, 60516, 60532, 60548, 60564, 60580, - 60596, 60612, 60628, 60644, 60660, 60676, 60692, 60708, 60724, 60740, - 60756, 60772, 60788, 60804, 60820, 60836, 60852, 60868, 60884, 60900, - 60916, 60932, 60948, 60964, 60980, 60996, 61012, 61028, 61044, 61060, - 61076, 61092, 61108, 61124, 61140, 61156, 61172, 61188, 61204, 61220, - 61236, 61252, 61268, 61284, 61300, 61316, 61332, 61348, 61364, 61380, - 61396, 61412, 61428, 61444, 61460, 61476, 61492, 61508, 61524, 61540, - 61556, 61572, 61588, 61604, 61620, 61636, 61652, 61668, 61684, 61700, - 61716, 61732, 61748, 61764, 61780, 61796, 61812, 61828, 61844, 61860, - 61876, 61892, 61908, 61924, 61940, 61956, 61972, 61988, 62004, 62020, - 62036, 62052, 62068, 62084, 62100, 62116, 62132, 62148, 62164, 62180, - 62196, 62212, 62228, 62244, 62260, 62276, 62292, 62308, 62324, 62340, - 62356, 62372, 62388, 62404, 62420, 62436, 62452, 62468, 62484, 62500, - 62516, 62532, 62548, 62564, 62580, 62596, 62612, 62628, 62644, 62660, - 62676, 62692, 62708, 62724, 62740, 62756, 62772, 62788, 62804, 62820, - 62836, 62852, 62868, 62884, 62900, 62916, 62932, 62948, 62964, 62980, - 62996, 63012, 63028, 63044, 63060, 63076, 63092, 63108, 63124, 63140, - 63156, 63172, 63188, 63204, 63220, 63236, 63252, 63268, 63284, 63300, - 63316, 63332, 63348, 63364, 63380, 63396, 63412, 63428, 63444, 63460, - 63476, 63492, 63508, 63524, 63540, 63556, 63572, 63588, 63604, 63620, - 63636, 63652, 63668, 63684, 63700, 63716, 63732, 63748, 63764, 63780, - 63796, 63812, 63828, 63844, 63860, 63876, 63892, 63908, 63924, 63940, - 63956, 63972, 63988, 64004, 64020, 64036, 64052, 64068, 64084, 64100, - 64116, 64132, 64148, 64164, 64180, 64196, 64212, 64228, 64244, 64260, - 64276, 64292, 64308, 64324, 64340, 64356, 64372, 64388, 64404, 64420, - 64436, 64452, 64468, 64484, 64500, 64516, 64532, 64548, 64564, 64580, - 64596, 64612, 64628, 64644, 64660, 64676, 64692, 64708, 64724, 64740, - 64756, 64772, 64788, 64804, 64820, 64836, 64852, 64868, 64884, 64900, - 64916, 64932, 64948, 64964, 64980, 64996, 65012, 65028, 65044, 65060, - 65076, 65092, 65108, 65124, 65140, 65156, 65172, 65188, 65204, 65220, - 65236, 65252, 65268, 65284, 65300, 65316, 65332, 65348, 65364, 65380, - 65396, 65412, 65428, 65444, 65460, 65476, 65492, 65508, 65524, 65540, - 65556, 65572, 65588, 65604, 65620, 65636, 65652, 65668, 65684, 65700, - 65716, 65732, 65748, 65764, 65780, 65796, 65812, 65828, 65844, 65860, - 65876, 65892, 65908, 65924, 65940, 65956, 65972, 65988, 66004, 66020, - 66036, 66052, 66068, 66084, 66100, 66116, 66132, 66148, 66164, 66180, - 66196, 66212, 66228, 66244, 66260, 66276, 66292, 66308, 66324, 66340, - 66356, 66372, 66388, 66404, 66420, 66436, 66452, 66468, 66484, 66500, - 66516, 66532, 66548, 66564, 66580, 66596, 66612, 66628, 66644, 66660, - 66676, 66692, 66708, 66724, 66740, 66756, 66772, 66788, 66804, 66820, - 66836, 66852, 66868, 66884, 66900, 66916, 66932, 66948, 66964, 66980, - 66996, 67012, 67028, 67044, 67060, 67076, 67092, 67108, 67124, 67140, - 67156, 67172, 67188, 67204, 67220, 67236, 67252, 67268, 67284, 67300, - 67316, 67332, 67348, 67364, 67380, 67396, 67412, 67428, 67444, 67460, - 67476, 67492, 67508, 67524, 67540, 67556, 67572, 67588, 67604, 67620, - 67636, 67652, 67668, 67684, 67700, 67716, 67732, 67748, 67764, 67780, - 67796, 67812, 67828, 67844, 67860, 67876, 67892, 67908, 67924, 67940, - 67956, 67972, 67988, 68004, 68020, 68036, 68052, 68068, 68084, 68100, - 68116, 68132, 68148, 68164, 68180, 68196, 68212, 68228, 68244, 68260, - 68276, 68292, 68308, 68324, 68340, 68356, 68372, 68388, 68404, 68420, - 68436, 68452, 68468, 68484, 68500, 68516, 68532, 68548, 68564, 68580, - 68596, 68612, 68628, 68644, 68660, 68669, 68684, 68698, 17657, 68707, - 68712, 68718, 68724, 68734, 68742, 17914, 18645, 9257, 68755, 1434, 1438, - 68763, 4262, 33273, 8090, 68769, 68774, 68779, 68784, 68789, 68795, - 68800, 68806, 68811, 68817, 68822, 68827, 68832, 68837, 68843, 68848, - 68853, 68858, 68863, 68868, 68873, 68878, 68884, 68889, 68895, 68902, - 2707, 68907, 68913, 9632, 68917, 68922, 68929, 68937, 4273, 4278, 4283, - 4288, 65, 68941, 68947, 68952, 68957, 68961, 68966, 68970, 68974, 12759, - 68978, 68988, 69001, 69012, 69025, 69032, 69038, 69046, 12220, 69053, - 69058, 69064, 69070, 69076, 69081, 69086, 69091, 69096, 69100, 69105, - 69110, 69115, 69121, 69127, 69133, 69138, 69142, 69147, 69152, 69156, - 69161, 69166, 69171, 69175, 12775, 12786, 12791, 1477, 69179, 69185, - 1482, 19679, 69190, 19688, 1492, 69195, 69201, 69206, 1513, 69212, 1519, - 1525, 12821, 69217, 69226, 69234, 69242, 69249, 69253, 69257, 69263, - 69268, 37525, 69273, 69280, 69288, 69295, 69300, 69304, 69308, 69317, - 69322, 69327, 69332, 1530, 280, 69337, 69342, 69346, 19814, 1007, 69350, - 69357, 69362, 69366, 19872, 1534, 46217, 69369, 69374, 69384, 69393, - 69398, 69402, 69408, 1539, 49314, 69413, 69422, 69428, 69433, 69438, - 13060, 13066, 69444, 69456, 69473, 69490, 69507, 69524, 69541, 69558, - 69575, 69592, 69609, 69626, 69643, 69660, 69677, 69694, 69711, 69728, - 69745, 69762, 69779, 69796, 69813, 69830, 69847, 69864, 69881, 69898, - 69915, 69932, 69949, 69966, 69983, 70000, 70017, 70034, 70051, 70068, - 70085, 70102, 70119, 70136, 70153, 70170, 70187, 70204, 70221, 70238, - 70255, 70272, 70289, 70300, 70310, 70315, 1544, 70319, 70324, 70330, - 70335, 70340, 70347, 10657, 1549, 70353, 70362, 33662, 70367, 70378, - 13082, 70388, 70393, 70399, 70404, 70411, 70417, 70422, 1554, 20166, - 70427, 70433, 13092, 70439, 70444, 70449, 70454, 70459, 70464, 70469, - 70474, 1559, 4753, 70479, 70484, 70490, 70495, 70500, 70505, 70510, - 70515, 70520, 70525, 70530, 70536, 70542, 70548, 70553, 70557, 70562, - 70567, 70571, 70576, 70581, 70586, 70591, 70595, 70600, 70606, 70611, - 70616, 70620, 70625, 70630, 70636, 70641, 70646, 70652, 70658, 70663, - 70667, 70672, 70677, 70682, 70686, 70691, 70696, 70701, 70707, 70713, - 70718, 70722, 70726, 70731, 70736, 70741, 35430, 70745, 70750, 70755, - 70761, 70766, 70771, 70775, 70780, 70785, 70791, 70796, 70801, 70807, - 70813, 70818, 70822, 70827, 70832, 70836, 70841, 70846, 70851, 70857, - 70863, 70868, 70872, 70877, 70882, 70886, 70891, 70896, 70901, 70906, - 70910, 70913, 70916, 70921, 70926, 38252, 70933, 70941, 49930, 70947, - 3934, 33605, 70960, 70967, 70973, 70979, 4113, 70984, 13234, 70990, - 71000, 71015, 71023, 13239, 71034, 71039, 71050, 71062, 71074, 71086, - 2909, 71098, 71103, 31655, 71115, 71121, 71127, 71132, 71141, 71148, - 71153, 71158, 71163, 71168, 71173, 71178, 1576, 19306, 71183, 71188, - 71193, 71198, 71204, 71209, 71215, 71220, 71225, 71231, 71236, 71241, - 49388, 71245, 71249, 71254, 71258, 20314, 71263, 71266, 71271, 71279, - 71287, 1580, 13275, 13281, 1585, 71295, 71302, 71307, 71316, 71326, - 71333, 71338, 71343, 1590, 71350, 71355, 20434, 71359, 71364, 71371, - 71377, 71381, 71394, 71400, 71411, 71421, 71428, 20456, 10551, 10558, - 4347, 4353, 71435, 1595, 71440, 71449, 71455, 71463, 71470, 71476, 71483, - 71495, 71501, 71506, 71513, 71525, 71536, 71546, 71555, 71565, 71575, - 4241, 71583, 37319, 37328, 20496, 71596, 71601, 71606, 71611, 71616, - 71621, 71626, 1600, 1604, 71631, 71635, 71638, 71649, 71654, 20522, 1614, - 71662, 71667, 71672, 20555, 71684, 71687, 71693, 71699, 71704, 71712, - 1619, 71717, 71722, 71730, 71738, 71745, 71754, 71762, 71771, 71775, - 1624, 71784, 1629, 25899, 71789, 71796, 71802, 20642, 71810, 71820, - 71826, 71831, 71839, 71846, 71855, 71863, 71873, 71882, 71892, 71901, - 71912, 71922, 71932, 71941, 71951, 71965, 71978, 71987, 71995, 72005, - 72014, 72026, 72037, 72048, 72058, 19934, 72063, 13427, 72072, 72078, - 72083, 72090, 72096, 72103, 72109, 19523, 72119, 72125, 72130, 72141, - 72148, 72155, 72160, 72168, 13444, 13449, 72176, 72182, 72186, 4331, - 4342, 20718, 49484, 72194, 72200, 72205, 72213, 72220, 14556, 72225, - 72231, 72237, 1640, 72242, 72245, 72251, 72256, 72261, 72266, 72271, - 72276, 72281, 72286, 72291, 72297, 72303, 1339, 72308, 72313, 72318, - 72324, 72329, 72334, 72339, 72344, 72349, 72354, 1649, 18, 72360, 72364, - 72369, 72373, 72377, 72381, 38538, 72386, 28206, 72391, 72396, 72400, - 72403, 72407, 72411, 72416, 72420, 72425, 72429, 72432, 72438, 42190, - 42195, 42200, 72441, 72448, 72454, 72462, 49086, 72472, 72478, 42206, - 38802, 38553, 38559, 42222, 38565, 72483, 72488, 72492, 38835, 72499, - 72502, 72506, 72514, 72521, 72526, 72529, 72534, 72539, 72543, 72547, - 72550, 72560, 72572, 72579, 72585, 38570, 72592, 40521, 72595, 9649, - 13789, 72598, 72602, 72607, 4156, 72611, 72614, 16288, 72621, 72628, - 72641, 72656, 72670, 72686, 72701, 72710, 72718, 72726, 72735, 72744, - 72750, 72755, 72765, 72778, 72790, 72797, 72802, 72811, 72824, 43897, - 72842, 72847, 72854, 72860, 72865, 895, 72870, 72878, 72885, 72892, - 33089, 911, 72898, 72904, 72909, 72919, 72927, 72933, 72938, 38589, 6844, - 38603, 72942, 72952, 72957, 72965, 72975, 72990, 72996, 73002, 73009, - 38613, 73014, 37663, 73018, 73023, 73032, 73039, 73044, 73048, 73053, - 73061, 20499, 73068, 73073, 73077, 6885, 38639, 73081, 73087, 345, 73097, - 73104, 73111, 73117, 73124, 73129, 73138, 15909, 69378, 69388, 73144, - 73152, 73156, 73160, 73164, 73168, 73173, 73177, 73183, 73191, 73196, - 73201, 73208, 73213, 73217, 73222, 73226, 73230, 73236, 73247, 73253, - 73258, 73262, 73267, 73271, 38763, 73275, 38769, 38775, 73280, 73286, - 73293, 73298, 73302, 37680, 20153, 73305, 73309, 73314, 73321, 73327, - 73331, 73336, 48555, 73342, 73346, 73353, 73357, 73362, 73368, 73374, - 73380, 73392, 73401, 73411, 73417, 73424, 73429, 73434, 73438, 73441, - 73447, 73454, 73459, 73464, 73471, 73478, 73485, 73491, 73496, 73501, - 73509, 38780, 2537, 73514, 73519, 73525, 73530, 73536, 73541, 73546, - 73551, 73557, 38801, 73562, 73568, 73574, 73580, 38871, 73585, 73590, - 73595, 38882, 73600, 73605, 73610, 73616, 73622, 38887, 73627, 73632, - 73637, 38942, 38948, 73642, 73647, 38953, 38975, 33947, 38981, 38985, - 73652, 14232, 73656, 73664, 73670, 73678, 73685, 73691, 73701, 73707, - 73714, 12659, 38999, 73720, 73733, 73742, 73748, 73757, 73763, 73769, - 73776, 28549, 73784, 73791, 73801, 73809, 73812, 38943, 73817, 73824, - 73829, 73833, 73837, 73842, 73846, 4470, 73851, 73856, 73861, 42284, - 42289, 73865, 42303, 73870, 42308, 73875, 73881, 42320, 42326, 42332, - 73886, 73892, 27447, 73903, 73906, 73918, 73926, 39022, 73930, 73939, - 73949, 73958, 39032, 73963, 73970, 73979, 73985, 73993, 74000, 74007, - 6936, 5160, 74012, 38954, 74018, 74021, 74027, 74034, 74039, 74044, - 28453, 74048, 74054, 74060, 74065, 74070, 74074, 74080, 74086, 40405, - 74091, 43500, 45323, 45329, 39063, 39068, 74095, 74099, 74103, 74106, - 74119, 74125, 74129, 74132, 74137, 40774, 74141, 37685, 25840, 74147, - 6865, 6873, 10357, 74150, 74155, 74160, 74165, 74170, 74175, 74180, - 74185, 74190, 74195, 74201, 74206, 74211, 74217, 74222, 74227, 74232, - 74237, 74242, 74247, 74253, 74258, 74264, 74269, 74274, 74279, 74284, - 74289, 74294, 74299, 74304, 74309, 74314, 74320, 74325, 74330, 74335, - 74340, 74345, 74350, 74356, 74361, 74366, 74371, 74376, 74381, 74386, - 74391, 74396, 74401, 74407, 74412, 74417, 74422, 74427, 74433, 74439, - 74444, 74450, 74455, 74460, 74465, 74470, 74475, 1427, 156, 74480, 74484, - 74488, 74492, 30391, 74496, 74500, 74505, 74509, 74514, 74518, 74523, - 74528, 74533, 74538, 74542, 74546, 74551, 74555, 15988, 74560, 74564, - 74571, 74581, 18283, 74590, 74599, 74603, 74608, 74613, 74617, 74621, - 30171, 3265, 74625, 74631, 21731, 74635, 74644, 74652, 74658, 74663, - 74675, 74687, 74692, 74696, 74701, 74705, 74711, 74717, 74722, 74732, - 74742, 74748, 74756, 74761, 74765, 74771, 74776, 74783, 74789, 74794, - 74801, 74810, 74819, 74827, 74831, 18839, 74834, 74843, 74851, 74863, - 74874, 74885, 74894, 74898, 74907, 74915, 74925, 74933, 74940, 74950, - 74956, 74961, 74968, 74977, 74983, 74988, 74995, 75001, 75012, 60, 37462, - 75018, 31942, 31952, 75024, 75032, 75039, 75045, 75049, 75059, 75070, - 75078, 75087, 75092, 75097, 75102, 75106, 75110, 75118, 21678, 75125, - 75129, 75135, 75145, 75152, 75158, 75164, 42383, 75168, 75170, 75173, - 75179, 75183, 75194, 75204, 75210, 75217, 75224, 15925, 75232, 75238, - 75247, 75256, 75262, 11559, 75268, 75274, 75279, 75284, 75291, 75296, - 75303, 75309, 75314, 75322, 75335, 75344, 75353, 71927, 71937, 75363, - 75369, 75378, 75384, 75390, 75397, 75404, 75411, 75418, 75425, 75430, - 75434, 75438, 75441, 75451, 75455, 75467, 10018, 75476, 75487, 75492, - 75496, 71946, 75502, 75509, 75518, 75526, 75534, 75539, 75543, 75548, - 75553, 75563, 75571, 75583, 75588, 75592, 75596, 75602, 75610, 75617, - 75629, 75637, 75648, 75655, 75661, 75671, 75677, 75681, 75690, 75699, - 75706, 75712, 75717, 75721, 75725, 75729, 75738, 75747, 75756, 75763, - 75769, 75775, 75781, 75786, 75793, 75799, 75807, 75814, 75820, 15020, - 75825, 75831, 75835, 17140, 75839, 75844, 75854, 75859, 75868, 75874, - 75880, 75888, 75895, 75899, 75903, 75910, 75916, 75924, 75931, 75937, - 75948, 75952, 75956, 75960, 75963, 75969, 75974, 75979, 75983, 75987, - 75996, 76004, 76011, 76017, 76024, 29213, 48696, 76029, 76037, 76041, - 76045, 76048, 76056, 76063, 76069, 76078, 76086, 76092, 76097, 76101, - 76106, 76111, 76115, 76119, 76123, 76128, 76137, 76141, 76148, 45427, - 76152, 76158, 76166, 76170, 76176, 76184, 76190, 76195, 76206, 76214, - 76220, 76229, 27594, 76237, 76244, 76251, 76258, 76265, 76272, 52348, - 15740, 76279, 76286, 76291, 42419, 4713, 76297, 76302, 76307, 76313, - 76319, 76325, 76330, 76335, 76340, 76345, 76351, 76356, 76362, 76367, - 76373, 76378, 76383, 76388, 76393, 76398, 76403, 76408, 76414, 76419, - 76425, 76430, 76435, 76440, 76445, 76450, 76455, 76461, 76466, 76471, - 76476, 76481, 76486, 76491, 76496, 76501, 76506, 76511, 76517, 76522, - 76527, 76532, 76537, 76542, 76547, 76552, 76557, 76563, 76568, 76573, - 76578, 76583, 76588, 76593, 76598, 76603, 76608, 76613, 76618, 76623, - 76629, 1889, 305, 76634, 46335, 46340, 76638, 76643, 9273, 76647, 3634, - 76652, 76657, 76661, 76670, 76681, 76698, 76716, 76724, 75530, 76731, - 76734, 76744, 76751, 76760, 76776, 76785, 76795, 76800, 76813, 76823, - 76832, 76840, 76854, 76862, 76871, 76875, 76878, 76885, 76891, 76902, - 76909, 76921, 76932, 76943, 76952, 76959, 1179, 809, 76969, 2750, 76973, - 76978, 76987, 1025, 9039, 25276, 76995, 77003, 77017, 77030, 77034, - 77039, 77044, 77049, 77055, 77061, 77066, 9641, 18326, 77071, 77075, - 77083, 10078, 77088, 77094, 77103, 77111, 1663, 13288, 1185, 4385, 77115, - 77119, 77128, 77138, 2488, 32788, 77147, 77153, 20406, 32803, 77159, - 4550, 13670, 77165, 77172, 71644, 77176, 77180, 77186, 77191, 77196, - 3867, 163, 3893, 77201, 77213, 77217, 77221, 77227, 77232, 33682, 77236, - 13658, 2944, 4, 77241, 77251, 77262, 77273, 77283, 77289, 77300, 77307, - 77313, 77319, 2312, 77324, 77332, 77339, 77345, 77355, 77365, 77375, - 77384, 28536, 1191, 77389, 77393, 77397, 77403, 77407, 2967, 2973, 9638, - 2343, 77411, 77415, 77424, 77432, 77443, 77451, 77459, 77465, 77470, - 77481, 77492, 77500, 77506, 77511, 11336, 77521, 77529, 77533, 77537, - 77542, 77546, 77558, 34145, 18225, 77565, 77575, 77581, 77587, 7963, - 11470, 77597, 77608, 77619, 77629, 77638, 77642, 77649, 1027, 2737, - 77659, 77664, 77672, 71360, 77680, 77685, 77696, 77703, 77717, 16936, - 529, 77727, 77734, 77738, 77742, 77750, 77759, 77767, 77773, 20451, - 77778, 77792, 77799, 77805, 77813, 77822, 77831, 77838, 77850, 77860, - 77868, 77875, 77883, 77890, 4349, 116, 77898, 77909, 77913, 77925, 77931, - 1810, 227, 77936, 10689, 77941, 3012, 77945, 77952, 77958, 77969, 77979, - 77987, 77994, 10029, 78001, 78010, 78018, 4430, 78031, 4447, 78035, - 78040, 78046, 78051, 78056, 78061, 3017, 573, 78067, 78080, 78084, 78089, - 78094, 3022, 1888, 760, 78098, 4451, 78106, 78112, 78116, 803, 78126, - 78135, 78140, 3884, 78144, 17957, 17964, 9297, 78148, 4482, 4359, 15618, - 78156, 78163, 78168, 28600, 78172, 78179, 78185, 13926, 78190, 13991, - 204, 78195, 78207, 78213, 78221, 3034, 1705, 78229, 78231, 78236, 78241, - 78246, 78252, 78257, 78262, 78267, 78272, 78277, 78282, 78288, 78293, - 78298, 78303, 78308, 78313, 78318, 78323, 78328, 78334, 78339, 78344, - 78349, 78355, 78360, 78366, 78371, 78376, 78381, 78386, 78391, 78396, - 78401, 78407, 78412, 78418, 78423, 78428, 78433, 78438, 78443, 78448, - 78453, 78458, 9710, 9723, 4498, 4503, 4508, 4513, 26, 78464, 78470, - 78475, 78480, 78485, 78491, 78496, 78500, 78504, 78509, 78515, 78519, - 78525, 78530, 78535, 78541, 78546, 78550, 78555, 78560, 78564, 78567, - 78569, 78573, 78576, 78583, 78588, 78592, 78597, 78601, 78605, 78609, - 78615, 78626, 78646, 78665, 78686, 78699, 78711, 78720, 78724, 78727, - 39340, 78730, 39345, 78737, 78742, 39350, 78751, 78760, 39356, 78765, - 39361, 78774, 78779, 13915, 78783, 78788, 78793, 39366, 78797, 78806, - 50533, 78810, 78813, 78817, 9305, 78823, 78826, 78831, 78836, 78841, - 78845, 4171, 39371, 78848, 78852, 78855, 78866, 78871, 78875, 78881, - 78889, 78902, 78906, 78914, 78923, 78929, 78934, 78940, 78944, 78950, - 78956, 78964, 78969, 78973, 78980, 78986, 78994, 79003, 79011, 39374, - 79018, 79028, 79037, 79045, 79056, 79069, 79074, 79079, 79083, 79092, - 79098, 79105, 79118, 79130, 79141, 79153, 79160, 79169, 79178, 79187, - 79194, 79200, 79207, 79215, 79222, 79230, 79239, 79247, 79254, 79262, - 79271, 79279, 79288, 79298, 79307, 79315, 79322, 79330, 79339, 79347, - 79356, 79366, 79375, 79383, 79392, 79402, 79411, 79421, 79432, 79442, - 79451, 79459, 79466, 79474, 79483, 79491, 79500, 79510, 79519, 79527, - 79536, 79546, 79555, 79565, 79576, 79586, 79595, 79603, 79612, 79622, - 79631, 79641, 79652, 79662, 79671, 79681, 79692, 79702, 79713, 79725, - 79736, 79746, 79755, 79763, 79770, 79778, 79787, 79795, 79804, 79814, - 79823, 79831, 79840, 79850, 79859, 79869, 79880, 79890, 79899, 79907, - 79916, 79926, 79935, 79945, 79956, 79966, 79975, 79985, 79996, 80006, - 80017, 80029, 80040, 80050, 80059, 80067, 80076, 80086, 80095, 80105, - 80116, 80126, 80135, 80145, 80156, 80166, 80177, 80189, 80200, 80210, - 80219, 80229, 80240, 80250, 80261, 80273, 80284, 80294, 80305, 80317, - 80328, 80340, 80353, 80365, 80376, 80386, 80395, 80403, 80410, 80418, - 80427, 80435, 80444, 80454, 80463, 80471, 80480, 80490, 80499, 80509, - 80520, 80530, 80539, 80547, 80556, 80566, 80575, 80585, 80596, 80606, - 80615, 80625, 80636, 80646, 80657, 80669, 80680, 80690, 80699, 80707, - 80716, 80726, 80735, 80745, 80756, 80766, 80775, 80785, 80796, 80806, - 80817, 80829, 80840, 80850, 80859, 80869, 80880, 80890, 80901, 80913, - 80924, 80934, 80945, 80957, 80968, 80980, 80993, 81005, 81016, 81026, - 81035, 81043, 81052, 81062, 81071, 81081, 81092, 81102, 81111, 81121, - 81132, 81142, 81153, 81165, 81176, 81186, 81195, 81205, 81216, 81226, - 81237, 81249, 81260, 81270, 81281, 81293, 81304, 81316, 81329, 81341, - 81352, 81362, 81371, 81381, 81392, 81402, 81413, 81425, 81436, 81446, - 81457, 81469, 81480, 81492, 81505, 81517, 81528, 81538, 81549, 81561, - 81572, 81584, 81597, 81609, 81620, 81632, 81645, 81657, 81670, 81684, - 81697, 81709, 81720, 81730, 81739, 81747, 81754, 81759, 9070, 81766, - 81771, 39384, 81777, 81782, 39389, 81788, 25398, 31390, 81793, 81799, - 81805, 81813, 81819, 81825, 81832, 81839, 81844, 81849, 81853, 81858, - 81862, 81865, 81869, 81874, 81883, 81892, 81900, 81906, 81918, 81929, - 81933, 3327, 9045, 81938, 81941, 81944, 81946, 81950, 81954, 81958, - 81964, 81969, 31453, 81974, 81978, 81981, 81986, 81990, 81997, 82003, - 82007, 7046, 82011, 82016, 39411, 82020, 82027, 82036, 82044, 82050, - 82061, 82069, 82078, 82086, 82093, 82100, 82106, 82111, 82122, 39416, - 82127, 82138, 82150, 82158, 82169, 82178, 82186, 82197, 82202, 82210, - 2702, 82215, 82224, 41789, 82237, 82241, 82253, 82261, 82266, 82274, - 82285, 21896, 82294, 82300, 82307, 82315, 82321, 39426, 82326, 4476, - 68738, 82333, 82336, 82344, 82357, 82370, 82383, 82396, 82403, 82414, - 82423, 82428, 52165, 52170, 82432, 82436, 82444, 82451, 82460, 82468, - 82474, 82483, 82491, 82498, 82506, 82510, 82519, 82528, 82538, 82551, - 82564, 82574, 39431, 82580, 82587, 82593, 82599, 39437, 82604, 82607, - 82611, 82619, 82628, 51941, 82636, 82645, 82653, 82660, 82668, 82678, - 82687, 82696, 40947, 82705, 82716, 82731, 82741, 10727, 26214, 82750, - 82755, 82760, 82764, 19515, 82769, 82774, 82780, 82785, 82790, 82796, - 82801, 82806, 26174, 82811, 82818, 82826, 82834, 82842, 82847, 82854, - 82861, 82866, 1723, 82870, 82874, 82882, 82890, 39454, 82896, 82902, - 82914, 82920, 82927, 82931, 82938, 82943, 82950, 82956, 82963, 82974, - 82984, 82994, 83006, 83012, 83020, 83029, 83035, 83045, 83055, 39481, - 83064, 83073, 83079, 83091, 83102, 83109, 83114, 83118, 83126, 83137, - 83143, 83148, 83153, 83160, 83168, 83180, 83190, 83199, 83208, 83216, - 83223, 41603, 28974, 83229, 83234, 83238, 83242, 83247, 83255, 83261, - 83272, 83285, 83290, 83297, 39486, 83302, 83314, 83323, 83331, 83341, - 83352, 83365, 83372, 83381, 83390, 83398, 83403, 83409, 83413, 1416, - 83418, 83423, 83428, 83433, 83439, 83444, 83449, 83455, 83461, 83466, - 83470, 83475, 83480, 83485, 69313, 83490, 83495, 83500, 83505, 83511, - 83517, 83522, 83526, 83531, 19514, 83536, 83542, 83547, 83553, 83558, - 83563, 83568, 83573, 83577, 83583, 83588, 83597, 83602, 83607, 83612, - 83617, 83621, 83628, 83634, 4822, 20768, 3292, 83639, 83643, 83648, - 83652, 83656, 83660, 55965, 83664, 83589, 83666, 83676, 39495, 83679, - 83684, 83693, 83699, 7005, 39500, 83703, 83709, 83714, 83720, 83725, - 83729, 83736, 83741, 83751, 83760, 83764, 83770, 83776, 83782, 83786, - 83794, 83801, 83809, 83817, 39505, 83824, 83827, 83838, 83845, 83851, - 83856, 83860, 83866, 83874, 83881, 83886, 83890, 83899, 83907, 83913, - 83918, 39510, 83925, 28426, 83937, 83943, 83948, 83954, 83961, 83967, - 25862, 33296, 83973, 83978, 83984, 83988, 84000, 83622, 83629, 26106, - 84010, 84015, 84022, 84028, 84035, 84041, 84052, 84057, 84065, 10427, - 84070, 84073, 84079, 84083, 84087, 84090, 84096, 84102, 39199, 4823, - 1431, 16037, 84109, 84115, 84121, 84127, 84133, 84139, 84145, 84151, - 84157, 84162, 84167, 84172, 84177, 84182, 84187, 84192, 84197, 84202, - 84207, 84212, 84217, 84222, 84228, 84233, 84238, 84244, 84249, 84254, - 84260, 84266, 84272, 84278, 84284, 84290, 84296, 84302, 84308, 84313, - 84318, 84324, 84329, 84334, 84340, 84345, 84350, 84355, 84360, 84365, - 84370, 84375, 84380, 84385, 84390, 84395, 84400, 84406, 84411, 84416, - 84421, 84427, 84432, 84437, 84442, 84447, 84453, 84458, 84463, 84468, - 84473, 84478, 84483, 84488, 84493, 84498, 84503, 84508, 84513, 84518, - 84523, 84528, 84533, 84538, 84543, 84548, 84554, 84559, 84564, 84569, - 84574, 84579, 84584, 84589, 1062, 159, 84594, 84598, 84602, 84607, 84615, - 84619, 84631, 84638, 84646, 84650, 84663, 84671, 84676, 84681, 32005, - 84685, 84690, 84694, 84699, 84703, 84711, 84715, 25406, 84720, 84724, - 72190, 84728, 84731, 84739, 84747, 84755, 84760, 84765, 84772, 84779, - 84785, 84791, 84796, 84803, 84808, 84816, 77022, 84823, 84828, 71956, - 84835, 84841, 84846, 84850, 84857, 84863, 84870, 71983, 14005, 84878, - 84883, 84888, 84892, 84895, 84906, 84915, 84921, 84926, 84930, 84940, - 84949, 50324, 84953, 84957, 84964, 84977, 84983, 84991, 84998, 85007, - 85018, 85029, 85040, 85051, 85060, 85066, 85075, 85083, 85093, 85106, - 85114, 85121, 85132, 85141, 85147, 85152, 85157, 85163, 85173, 85179, - 85189, 85197, 85204, 85214, 85223, 83304, 85231, 85237, 85245, 85251, - 75575, 85258, 85263, 85266, 85270, 85276, 85280, 85283, 85291, 85297, - 85303, 85311, 85323, 85335, 85342, 85347, 85351, 85362, 85370, 85377, - 85389, 85397, 85404, 85412, 85419, 85425, 85430, 85436, 85446, 85455, - 85463, 85468, 85478, 85487, 51202, 85494, 85498, 85503, 85511, 85518, - 85524, 85528, 85538, 85549, 85557, 85564, 85576, 85588, 85597, 82227, - 85604, 85614, 85626, 85637, 85651, 85659, 85669, 85676, 85684, 85697, - 85709, 85718, 85726, 85736, 85747, 85759, 85768, 85778, 85788, 85797, - 85804, 85813, 85828, 85836, 85846, 85855, 85863, 85876, 68708, 85891, - 85901, 85910, 85922, 85932, 85944, 85955, 85969, 85983, 85997, 86011, - 86025, 86039, 86053, 86067, 86081, 86095, 86109, 86123, 86137, 86151, - 86165, 86179, 86193, 86207, 86221, 86235, 86249, 86263, 86277, 86291, - 86305, 86319, 86333, 86347, 86361, 86375, 86389, 86403, 86417, 86431, - 86445, 86459, 86473, 86487, 86501, 86515, 86529, 86543, 86557, 86571, - 86585, 86599, 86613, 86627, 86641, 86655, 86669, 86683, 86697, 86711, - 86725, 86739, 86753, 86767, 86781, 86795, 86809, 86823, 86837, 86851, - 86865, 86879, 86893, 86907, 86921, 86935, 86949, 86963, 86977, 86991, - 87005, 87019, 87033, 87047, 87061, 87075, 87089, 87103, 87117, 87131, - 87145, 87159, 87173, 87187, 87201, 87215, 87229, 87243, 87257, 87271, - 87285, 87299, 87313, 87327, 87341, 87355, 87369, 87383, 87397, 87411, - 87425, 87439, 87453, 87467, 87481, 87495, 87509, 87523, 87537, 87551, - 87565, 87579, 87593, 87607, 87621, 87635, 87649, 87663, 87677, 87691, - 87705, 87719, 87733, 87747, 87761, 87775, 87789, 87803, 87817, 87831, - 87845, 87859, 87873, 87887, 87901, 87915, 87929, 87943, 87957, 87971, - 87985, 87999, 88013, 88027, 88041, 88055, 88069, 88083, 88097, 88111, - 88125, 88139, 88153, 88167, 88181, 88195, 88209, 88223, 88237, 88251, - 88265, 88279, 88293, 88307, 88321, 88335, 88349, 88363, 88377, 88391, - 88405, 88419, 88433, 88447, 88461, 88475, 88489, 88503, 88517, 88531, - 88545, 88559, 88573, 88587, 88601, 88615, 88629, 88643, 88657, 88671, - 88685, 88699, 88713, 88727, 88741, 88755, 88769, 88783, 88797, 88811, - 88825, 88839, 88853, 88867, 88881, 88895, 88909, 88923, 88937, 88951, - 88965, 88979, 88993, 89007, 89021, 89035, 89049, 89063, 89077, 89091, - 89105, 89119, 89133, 89147, 89161, 89175, 89189, 89203, 89217, 89231, - 89245, 89259, 89273, 89287, 89301, 89315, 89329, 89343, 89357, 89371, - 89385, 89399, 89413, 89427, 89441, 89455, 89469, 89483, 89497, 89511, - 89525, 89539, 89553, 89567, 89581, 89595, 89609, 89623, 89637, 89651, - 89665, 89679, 89693, 89707, 89721, 89735, 89749, 89763, 89777, 89791, - 89805, 89819, 89833, 89847, 89861, 89875, 89889, 89903, 89917, 89931, - 89945, 89959, 89973, 89987, 90001, 90015, 90029, 90043, 90057, 90071, - 90085, 90099, 90113, 90127, 90141, 90155, 90169, 90183, 90197, 90211, - 90225, 90239, 90253, 90267, 90281, 90295, 90309, 90323, 90337, 90351, - 90365, 90379, 90393, 90407, 90421, 90435, 90449, 90463, 90477, 90491, - 90505, 90519, 90533, 90547, 90561, 90575, 90589, 90603, 90617, 90631, - 90645, 90659, 90673, 90687, 90701, 90715, 90729, 90743, 90757, 90771, - 90785, 90799, 90813, 90827, 90841, 90855, 90869, 90883, 90897, 90911, - 90925, 90939, 90953, 90967, 90981, 90995, 91009, 91023, 91037, 91051, - 91065, 91079, 91093, 91107, 91121, 91135, 91149, 91163, 91177, 91191, - 91205, 91219, 91233, 91247, 91261, 91275, 91289, 91303, 91317, 91331, - 91345, 91359, 91373, 91387, 91401, 91415, 91429, 91443, 91457, 91471, - 91485, 91499, 91513, 91527, 91541, 91555, 91569, 91583, 91597, 91611, - 91625, 91639, 91653, 91667, 91681, 91695, 91709, 91723, 91737, 91751, - 91765, 91779, 91793, 91807, 91821, 91835, 91849, 91863, 91877, 91891, - 91905, 91919, 91933, 91947, 91961, 91975, 91989, 92003, 92017, 92031, - 92045, 92059, 92073, 92087, 92101, 92115, 92129, 92143, 92157, 92171, - 92185, 92199, 92213, 92227, 92241, 92255, 92269, 92283, 92297, 92311, - 92325, 92339, 92353, 92367, 92381, 92395, 92409, 92423, 92437, 92451, - 92465, 92479, 92493, 92507, 92521, 92535, 92549, 92563, 92577, 92591, - 92605, 92619, 92633, 92647, 92661, 92675, 92689, 92703, 92717, 92731, - 92745, 92759, 92773, 92787, 92801, 92815, 92829, 92843, 92857, 92871, - 92885, 92899, 92913, 92927, 92941, 92955, 92969, 92983, 92997, 93011, - 93025, 93039, 93053, 93067, 93081, 93095, 93109, 93123, 93137, 93151, - 93165, 93179, 93193, 93207, 93221, 93235, 93249, 93263, 93277, 93291, - 93305, 93319, 93333, 93347, 93361, 93375, 93389, 93403, 93417, 93431, - 93445, 93459, 93473, 93487, 93501, 93515, 93529, 93543, 93557, 93571, - 93585, 93599, 93613, 93627, 93641, 93655, 93669, 93683, 93697, 93711, - 93725, 93739, 93753, 93767, 93781, 93795, 93809, 93823, 93837, 93851, - 93865, 93879, 93893, 93907, 93921, 93935, 93949, 93963, 93977, 93991, - 94005, 94019, 94033, 94047, 94061, 94075, 94089, 94103, 94117, 94131, - 94145, 94159, 94173, 94187, 94201, 94215, 94229, 94243, 94257, 94271, - 94285, 94299, 94313, 94327, 94341, 94355, 94369, 94383, 94397, 94411, - 94425, 94439, 94453, 94467, 94481, 94495, 94509, 94523, 94537, 94551, - 94565, 94579, 94593, 94607, 94621, 94635, 94649, 94663, 94677, 94691, - 94705, 94719, 94733, 94747, 94761, 94775, 94789, 94803, 94817, 94831, - 94845, 94859, 94873, 94887, 94901, 94915, 94929, 94943, 94957, 94971, - 94985, 94999, 95013, 95027, 95041, 95055, 95069, 95083, 95097, 95111, - 95125, 95139, 95153, 95167, 95181, 95195, 95209, 95223, 95237, 95251, - 95265, 95279, 95293, 95307, 95321, 95335, 95349, 95363, 95377, 95391, - 95405, 95419, 95433, 95447, 95461, 95475, 95489, 95503, 95517, 95531, - 95545, 95559, 95573, 95587, 95601, 95615, 95629, 95643, 95657, 95671, - 95685, 95699, 95713, 95727, 95741, 95755, 95769, 95783, 95797, 95811, - 95825, 95839, 95853, 95867, 95881, 95895, 95909, 95923, 95937, 95951, - 95965, 95979, 95993, 96007, 96021, 96035, 96049, 96063, 96077, 96091, - 96105, 96119, 96133, 96147, 96161, 96175, 96189, 96203, 96217, 96231, - 96245, 96259, 96273, 96287, 96301, 96315, 96329, 96343, 96357, 96371, - 96385, 96399, 96413, 96427, 96441, 96455, 96469, 96483, 96497, 96511, - 96525, 96539, 96553, 96567, 96581, 96595, 96609, 96623, 96637, 96651, - 96665, 96679, 96693, 96707, 96716, 96727, 96738, 96748, 96759, 96767, - 96775, 96781, 96791, 96799, 96805, 35311, 96810, 96816, 96825, 96837, - 96842, 96849, 11350, 21916, 96855, 96864, 96869, 96873, 96878, 96885, - 96891, 96896, 96901, 96909, 96917, 96927, 96932, 96940, 14487, 96944, - 96950, 96956, 96962, 96968, 96974, 96980, 96986, 96992, 96998, 97004, - 97010, 97016, 97022, 97028, 97034, 97040, 97046, 97052, 97058, 97064, - 97070, 97076, 97082, 97088, 97094, 97100, 97106, 97112, 97118, 97124, - 97130, 97136, 97142, 97148, 97154, 97160, 97167, 97173, 97179, 97185, - 97191, 97197, 97203, 97209, 97215, 97221, 97227, 97233, 97239, 97245, - 97251, 97257, 97263, 97269, 97275, 97281, 97287, 97293, 97299, 97305, - 97311, 97317, 97323, 97329, 97335, 97341, 97347, 97353, 97359, 97365, - 97371, 97377, 97383, 97389, 97395, 97401, 97407, 97413, 97419, 97425, - 97431, 97437, 97443, 97449, 97455, 97461, 97467, 97474, 97480, 97486, - 97492, 97498, 97504, 97510, 97516, 97522, 97528, 97534, 97540, 97543, - 97545, 97560, 97573, 97580, 97586, 97597, 97602, 97606, 97611, 97618, - 97624, 97629, 97637, 77621, 77631, 97643, 97650, 97660, 12646, 97667, - 97672, 35554, 97681, 97686, 97693, 97703, 97711, 97719, 97728, 97737, - 97743, 97749, 97754, 97761, 97768, 97773, 97777, 97785, 72000, 97790, - 97799, 97807, 97814, 97819, 97823, 97832, 97838, 97841, 97845, 97854, - 97864, 84658, 97873, 97877, 97885, 97889, 97895, 97906, 97916, 21925, - 97927, 97936, 97944, 97952, 97959, 72019, 9875, 97967, 97971, 97980, - 97987, 97990, 97994, 33167, 97997, 98001, 98006, 98023, 98035, 12604, - 98047, 98052, 98057, 98062, 25513, 98066, 98071, 98076, 98082, 98087, - 6626, 98092, 25517, 98097, 98102, 98108, 98115, 98120, 98125, 98131, - 98137, 98143, 98148, 98154, 98158, 98172, 98180, 98188, 98194, 98199, - 98206, 98216, 98225, 98230, 98235, 98240, 98248, 98258, 98269, 98274, - 98280, 98285, 98294, 70435, 4752, 98299, 98317, 98336, 98349, 98363, - 98379, 98386, 98393, 98402, 98409, 98415, 98422, 98427, 98433, 98438, - 98444, 98452, 98458, 98463, 98468, 98484, 12617, 98498, 98505, 98513, - 98519, 98523, 98526, 98532, 98537, 98542, 98550, 98557, 98562, 98571, - 98577, 98582, 98588, 98594, 98603, 98612, 43344, 98617, 98628, 98635, - 98643, 98652, 14078, 98661, 98667, 98675, 98681, 98687, 98693, 98698, - 98705, 98711, 14089, 98716, 98719, 98724, 39537, 98734, 98743, 98748, - 98756, 98763, 98769, 98774, 98782, 98789, 98800, 98816, 98832, 98848, - 98864, 98880, 98896, 98912, 98928, 98944, 98960, 98976, 98992, 99008, - 99024, 99040, 99056, 99072, 99088, 99104, 99120, 99136, 99152, 99168, - 99184, 99200, 99216, 99232, 99248, 99264, 99280, 99296, 99312, 99328, - 99344, 99360, 99376, 99392, 99408, 99424, 99440, 99456, 99472, 99488, - 99504, 99520, 99536, 99552, 99568, 99584, 99600, 99616, 99632, 99648, - 99664, 99680, 99696, 99712, 99728, 99744, 99760, 99776, 99792, 99808, - 99824, 99840, 99856, 99872, 99888, 99904, 99920, 99936, 99952, 99968, - 99984, 100000, 100016, 100032, 100048, 100064, 100080, 100096, 100112, - 100128, 100144, 100160, 100176, 100192, 100208, 100224, 100240, 100256, - 100272, 100288, 100304, 100320, 100336, 100352, 100368, 100384, 100400, - 100416, 100432, 100448, 100464, 100480, 100496, 100512, 100528, 100544, - 100560, 100576, 100592, 100608, 100624, 100640, 100656, 100672, 100688, - 100704, 100720, 100736, 100752, 100768, 100784, 100800, 100816, 100832, - 100848, 100864, 100880, 100896, 100912, 100928, 100944, 100960, 100976, - 100992, 101008, 101024, 101040, 101056, 101072, 101088, 101104, 101120, - 101136, 101152, 101168, 101184, 101200, 101216, 101232, 101248, 101264, - 101280, 101296, 101312, 101328, 101344, 101360, 101376, 101392, 101408, - 101424, 101440, 101456, 101472, 101488, 101504, 101520, 101536, 101552, - 101568, 101584, 101600, 101616, 101632, 101648, 101664, 101680, 101696, - 101712, 101728, 101744, 101760, 101776, 101792, 101808, 101824, 101840, - 101856, 101872, 101888, 101904, 101920, 101936, 101952, 101968, 101984, - 102000, 102016, 102032, 102048, 102064, 102080, 102096, 102112, 102128, - 102144, 102160, 102176, 102192, 102208, 102224, 102240, 102256, 102272, - 102288, 102304, 102320, 102336, 102352, 102368, 102384, 102400, 102416, - 102432, 102448, 102464, 102480, 102496, 102512, 102528, 102544, 102560, - 102576, 102592, 102608, 102624, 102640, 102656, 102672, 102688, 102704, - 102720, 102736, 102752, 102768, 102784, 102800, 102816, 102832, 102848, - 102864, 102880, 102896, 102912, 102928, 102944, 102960, 102976, 102992, - 103008, 103024, 103040, 103056, 103072, 103088, 103104, 103120, 103136, - 103152, 103168, 103184, 103200, 103216, 103232, 103248, 103264, 103280, - 103296, 103312, 103328, 103344, 103360, 103376, 103392, 103408, 103424, - 103440, 103456, 103472, 103488, 103504, 103520, 103536, 103552, 103568, - 103584, 103600, 103616, 103632, 103648, 103664, 103680, 103696, 103712, - 103728, 103744, 103760, 103776, 103792, 103808, 103824, 103840, 103856, - 103872, 103888, 103904, 103920, 103936, 103952, 103968, 103984, 104000, - 104016, 104032, 104048, 104064, 104080, 104096, 104112, 104128, 104144, - 104160, 104176, 104192, 104208, 104224, 104240, 104256, 104272, 104288, - 104304, 104320, 104336, 104352, 104368, 104384, 104400, 104416, 104432, - 104448, 104464, 104480, 104496, 104512, 104528, 104544, 104560, 104576, - 104592, 104608, 104624, 104640, 104656, 104672, 104688, 104704, 104720, - 104736, 104752, 104768, 104784, 104800, 104816, 104832, 104848, 104864, - 104880, 104896, 104912, 104928, 104944, 104960, 104976, 104992, 105008, - 105024, 105040, 105056, 105072, 105088, 105104, 105120, 105136, 105152, - 105168, 105184, 105200, 105216, 105232, 105248, 105264, 105280, 105296, - 105312, 105328, 105344, 105360, 105376, 105392, 105408, 105424, 105440, - 105456, 105472, 105488, 105504, 105520, 105536, 105552, 105568, 105584, - 105600, 105616, 105632, 105648, 105664, 105680, 105696, 105712, 105728, - 105744, 105760, 105776, 105792, 105808, 105824, 105840, 105856, 105872, - 105888, 105904, 105920, 105936, 105952, 105968, 105984, 106000, 106016, - 106032, 106048, 106064, 106080, 106096, 106112, 106128, 106144, 106160, - 106176, 106192, 106208, 106224, 106240, 106256, 106272, 106288, 106304, - 106320, 106336, 106352, 106368, 106384, 106400, 106416, 106432, 106448, - 106464, 106480, 106496, 106512, 106528, 106544, 106560, 106576, 106592, - 106608, 106624, 106640, 106656, 106672, 106688, 106704, 106720, 106736, - 106752, 106768, 106784, 106800, 106816, 106832, 106848, 106864, 106880, - 106896, 106912, 106928, 106944, 106960, 106976, 106992, 107008, 107024, - 107040, 107056, 107072, 107088, 107104, 107120, 107136, 107152, 107168, - 107184, 107200, 107216, 107232, 107248, 107264, 107280, 107296, 107312, - 107328, 107344, 107360, 107376, 107392, 107408, 107424, 107440, 107456, - 107472, 107488, 107504, 107520, 107536, 107552, 107568, 107584, 107600, - 107616, 107632, 107648, 107664, 107680, 107696, 107712, 107728, 107744, - 107760, 107776, 107792, 107808, 107824, 107840, 107856, 107872, 107888, - 107904, 107920, 107936, 107952, 107968, 107984, 108000, 108016, 108032, - 108048, 108064, 108080, 108096, 108112, 108128, 108144, 108160, 108176, - 108192, 108208, 108224, 108240, 108256, 108272, 108288, 108304, 108320, - 108336, 108352, 108368, 108384, 108400, 108416, 108432, 108448, 108464, - 108480, 108496, 108512, 108528, 108544, 108560, 108576, 108592, 108608, - 108624, 108640, 108656, 108672, 108688, 108704, 108720, 108736, 108752, - 108768, 108784, 108800, 108816, 108832, 108848, 108864, 108880, 108896, - 108912, 108928, 108944, 108960, 108976, 108992, 109008, 109024, 109040, - 109056, 109072, 109088, 109104, 109120, 109136, 109152, 109168, 109184, - 109200, 109216, 109232, 109248, 109264, 109280, 109296, 109312, 109328, - 109344, 109360, 109376, 109392, 109408, 109424, 109440, 109456, 109472, - 109488, 109504, 109520, 109536, 109552, 109568, 109584, 109600, 109616, - 109632, 109648, 109664, 109680, 109696, 109712, 109728, 109744, 109760, - 109776, 109792, 109808, 109824, 109840, 109856, 109872, 109888, 109904, - 109920, 109936, 109952, 109968, 109984, 110000, 110016, 110032, 110048, - 110064, 110080, 110096, 110112, 110128, 110144, 110160, 110176, 110192, - 110208, 110224, 110240, 110256, 110272, 110288, 110304, 110320, 110336, - 110352, 110368, 110384, 110400, 110416, 110432, 110448, 110464, 110480, - 110496, 110512, 110528, 110544, 110560, 110576, 110592, 110608, 110624, - 110640, 110656, 110672, 110688, 110704, 110720, 110736, 110752, 110768, - 110784, 110800, 110816, 110832, 110848, 110864, 110880, 110896, 110912, - 110928, 110944, 110960, 110976, 110992, 111008, 111024, 111040, 111056, - 111072, 111088, 111104, 111120, 111136, 111152, 111168, 111184, 111200, - 111216, 111232, 111248, 111264, 111280, 111296, 111312, 111328, 111344, - 111360, 111376, 111392, 111408, 111424, 111440, 111456, 111472, 111488, - 111504, 111520, 111536, 111552, 111568, 111584, 111600, 111616, 111632, - 111648, 111664, 111680, 111696, 111712, 111728, 111744, 111760, 111776, - 111792, 111808, 111824, 111840, 111856, 111872, 111888, 111904, 111920, - 111936, 111952, 111968, 111984, 112000, 112016, 112032, 112048, 112064, - 112080, 112096, 112112, 112128, 112144, 112160, 112176, 112192, 112208, - 112224, 112240, 112256, 112272, 112288, 112304, 112320, 112336, 112352, - 112368, 112384, 112400, 112416, 112432, 112448, 112464, 112480, 112496, - 112512, 112528, 112544, 112560, 112576, 112592, 112608, 112624, 112640, - 112656, 112666, 112675, 112680, 112688, 76945, 112693, 112699, 112704, - 112711, 112720, 112728, 112732, 4330, 112738, 112745, 112751, 112755, - 20517, 46451, 3301, 112760, 112764, 112768, 112775, 112781, 112790, - 112796, 112803, 112807, 112828, 112850, 112866, 112883, 112902, 112911, - 112921, 112929, 112936, 112943, 112949, 33022, 112963, 112967, 112973, - 112981, 112993, 112999, 113007, 113014, 113019, 113024, 113028, 113036, - 113043, 113047, 113053, 113059, 113064, 3978, 52365, 113070, 113074, - 113078, 113082, 113087, 113092, 113097, 113103, 113109, 113115, 113122, - 113128, 113135, 113141, 113147, 113152, 113158, 113163, 113167, 105260, - 113172, 105324, 52380, 113177, 113182, 113190, 113194, 113199, 113206, - 113215, 113222, 113228, 113237, 113241, 113248, 113252, 113255, 113262, - 113268, 113277, 113287, 113297, 113302, 113306, 113313, 113321, 113330, - 113334, 113342, 113348, 113353, 113358, 113364, 113370, 113375, 113379, - 31903, 113385, 113389, 113393, 113396, 113401, 113409, 113419, 113425, - 113430, 113440, 49513, 113448, 113460, 113466, 113473, 113479, 113483, - 113488, 113494, 113506, 113517, 113524, 113530, 113537, 113544, 113556, - 113563, 113569, 25597, 113573, 113581, 113587, 113594, 113600, 113606, - 113612, 113617, 113622, 113627, 113631, 113640, 113648, 113659, 7920, - 113664, 19953, 113670, 113674, 113678, 113682, 113690, 113699, 113703, - 113710, 113719, 113727, 113740, 113746, 105836, 36477, 113751, 113753, - 113758, 113763, 113768, 113773, 113778, 113783, 113788, 113793, 113798, - 113803, 113808, 113813, 113818, 113823, 113829, 113834, 113839, 113844, - 113849, 113854, 113859, 113864, 113869, 113875, 113881, 113887, 113892, - 113897, 113909, 113914, 1941, 54, 113919, 113924, 39547, 113928, 39552, - 39557, 39563, 39568, 113932, 39573, 26783, 113954, 113958, 113962, - 113967, 113971, 39577, 113975, 113983, 113990, 113996, 114006, 39582, - 114013, 114016, 114021, 114025, 114034, 11148, 114042, 39587, 26627, - 114045, 114049, 114057, 1313, 114062, 39598, 114065, 114070, 114075, - 31144, 31154, 42942, 114080, 114085, 114090, 114095, 114101, 114106, - 114115, 114120, 114129, 114137, 114144, 114150, 114155, 114160, 114165, - 114175, 114184, 114192, 114197, 114205, 114209, 114217, 114221, 114228, - 114235, 114243, 114250, 39402, 46166, 114256, 114262, 114267, 114272, - 14522, 11935, 114277, 114282, 114287, 114293, 114300, 114306, 114315, - 114320, 114328, 114338, 114345, 114355, 114361, 114366, 114372, 114376, - 21947, 114383, 43910, 114396, 114401, 114408, 114414, 114429, 37541, - 75357, 114442, 114446, 114455, 114464, 114471, 114477, 114485, 114491, - 114499, 114508, 114516, 114523, 46286, 114529, 114532, 114536, 114540, - 114544, 11956, 114550, 114557, 114563, 114571, 114576, 114580, 29148, - 114586, 114589, 114597, 114604, 114612, 114625, 114639, 114646, 114652, - 114659, 114665, 39612, 114669, 114675, 114683, 114690, 114698, 114706, - 114712, 39617, 114720, 114726, 114731, 114741, 114747, 114756, 37336, - 42290, 114764, 114769, 114774, 114778, 114783, 114787, 114795, 114800, - 17949, 18774, 49535, 114804, 114809, 39622, 18106, 114813, 114825, - 114830, 114834, 114841, 114850, 114854, 114862, 114868, 114873, 114881, - 114889, 114897, 114905, 114913, 114921, 114932, 114938, 9112, 114943, - 114949, 114954, 114959, 114970, 114979, 114991, 115006, 39934, 115012, - 20072, 39626, 115016, 115023, 115029, 115033, 29285, 115040, 115046, - 115053, 48667, 115062, 115068, 115077, 115083, 115088, 115096, 115102, - 115107, 39636, 115112, 115121, 115130, 113512, 115139, 115146, 115152, - 115158, 115167, 115177, 115183, 115191, 115198, 115202, 39641, 115205, - 39647, 1352, 115210, 115218, 115226, 115236, 115245, 115253, 115260, - 115270, 39658, 115274, 115276, 115280, 115285, 115289, 115293, 115299, - 115304, 115308, 115319, 115324, 115333, 115338, 3306, 115342, 115349, - 115353, 115362, 115370, 115378, 115385, 115390, 115395, 73882, 115399, - 115402, 115408, 115416, 115422, 115426, 115431, 115438, 115443, 115448, - 115452, 115459, 115465, 115470, 42321, 115474, 115477, 115482, 115486, - 115491, 115498, 115503, 115507, 47636, 115515, 31163, 31172, 115521, - 115527, 115533, 115538, 115542, 115545, 115555, 115564, 115569, 115575, - 115582, 115588, 115592, 115600, 115605, 42327, 84917, 115609, 115617, - 115624, 115630, 115637, 115642, 115649, 115654, 115658, 115664, 115669, - 68924, 115675, 115681, 10366, 115686, 115691, 115695, 115700, 115705, - 115710, 115714, 115719, 115724, 115730, 115735, 115740, 115746, 115752, - 115757, 115761, 115766, 115771, 115776, 115780, 29284, 115785, 115790, - 115796, 115802, 115808, 115813, 115817, 115822, 115827, 109612, 115832, - 115837, 115842, 115847, 109676, 52635, 115852, 39666, 115860, 115864, - 115872, 115880, 115891, 115896, 115900, 27262, 82330, 115905, 115911, - 115916, 4641, 115926, 115933, 115938, 115946, 115955, 115960, 115964, - 115969, 115973, 115981, 115989, 115996, 77207, 116002, 116010, 116017, - 116028, 116034, 116040, 39676, 116043, 116050, 116058, 116063, 116067, - 33538, 71588, 116073, 116078, 116085, 116090, 10255, 116094, 116102, - 116109, 116116, 116125, 116132, 116138, 116152, 116160, 6710, 115922, - 116166, 116171, 116177, 116181, 116184, 116192, 116199, 116204, 116217, - 116224, 116230, 116234, 116242, 116247, 116254, 116260, 116265, 71859, - 116270, 116273, 116282, 116289, 109884, 116295, 116298, 116306, 116312, - 116321, 116331, 116341, 116350, 116361, 116369, 116380, 116385, 116389, - 116394, 116398, 43073, 116406, 18739, 43082, 116411, 101403, 101419, - 101435, 101451, 101467, 116416, 101499, 101515, 101531, 101547, 101659, - 101675, 116420, 101707, 101723, 116424, 116428, 116432, 116436, 101963, - 101995, 116440, 102027, 116444, 116448, 102171, 102187, 102203, 102219, - 116452, 102283, 102299, 116456, 102427, 102443, 102459, 102475, 102491, - 102507, 102523, 102539, 102555, 102571, 102683, 102699, 102715, 102731, - 102747, 102763, 102779, 102795, 102811, 102827, 116460, 104619, 104731, - 104795, 104811, 104827, 104843, 104859, 104875, 104987, 105003, 105019, - 116464, 105067, 116468, 105099, 105115, 105131, 116472, 116477, 116482, - 116487, 116492, 116497, 116502, 116506, 116510, 116515, 116520, 116524, - 116529, 116534, 116538, 116543, 116548, 116553, 116558, 116562, 116567, - 116572, 116576, 116581, 116585, 116589, 116593, 116597, 116602, 116606, - 116610, 116614, 116618, 116622, 116626, 116630, 116634, 116638, 116643, - 116648, 116653, 116658, 116663, 116668, 116673, 116678, 116683, 116688, - 116692, 116696, 116700, 116704, 116708, 116712, 116717, 116721, 116726, - 116730, 116735, 116740, 116744, 116748, 116753, 116757, 116761, 116765, - 116769, 116773, 116777, 116781, 116785, 116789, 116793, 116797, 116801, - 116805, 116809, 116814, 116819, 116823, 116827, 116831, 116835, 116839, - 116843, 116848, 116852, 116856, 116860, 116864, 116868, 116872, 116877, - 116881, 116886, 116890, 116894, 116898, 116902, 116906, 116910, 116914, - 116918, 116922, 116926, 116930, 116935, 116939, 116943, 116947, 116951, - 116955, 116959, 116963, 116967, 116971, 116975, 116979, 116984, 116988, - 116992, 116997, 117002, 117006, 117010, 117014, 117018, 117022, 117026, - 117030, 117034, 117039, 117043, 117048, 117052, 117057, 117061, 117066, - 117070, 117076, 117081, 117085, 117090, 117094, 117099, 117103, 117108, - 117112, 117117, 1435, 117121, 117125, 3048, 1711, 28421, 1608, 31099, - 117129, 3057, 117133, 1282, 117138, 1224, 117142, 117146, 117150, 117154, - 117158, 117162, 3081, 117166, 117174, 117181, 117188, 117202, 3085, 8030, - 117211, 117219, 117226, 117237, 117246, 117250, 117257, 117269, 117282, - 117295, 117306, 117311, 117318, 117330, 117334, 3089, 14159, 117344, - 117349, 117358, 117368, 117373, 117382, 3093, 117390, 117394, 117399, - 117406, 117412, 117417, 117426, 117434, 117446, 117456, 1229, 15619, - 117469, 117473, 117479, 117493, 117505, 117517, 117525, 117535, 117544, - 117553, 117562, 117570, 117581, 117589, 4649, 117599, 117610, 117619, - 117625, 117640, 117647, 117653, 117658, 43216, 117663, 3117, 15623, - 117667, 117672, 117679, 10186, 117688, 117694, 4687, 117704, 3122, 39038, - 117713, 71478, 117720, 117724, 117730, 117741, 117747, 117752, 117759, - 117765, 117773, 117780, 117786, 117797, 117813, 117823, 117832, 117843, - 117852, 117859, 117865, 117875, 117883, 117889, 117904, 117910, 117915, - 117919, 117926, 117934, 117938, 117941, 117947, 117954, 117960, 117968, - 117977, 117985, 117991, 118000, 51943, 118014, 118019, 118025, 17700, - 118030, 118043, 118055, 118064, 118072, 118079, 118083, 118087, 118090, - 118097, 118104, 118112, 118120, 118129, 118137, 17599, 118145, 118150, - 118154, 118166, 118173, 118180, 118189, 954, 118199, 118208, 118219, - 3143, 118223, 118227, 118233, 118246, 118258, 118268, 118277, 118289, - 32057, 118300, 118308, 118317, 118328, 118339, 118349, 118359, 118367, - 118376, 118384, 13578, 118391, 118395, 118398, 118403, 118408, 118412, - 118418, 1234, 118425, 118429, 14255, 118433, 118444, 118453, 118461, - 118470, 118478, 118494, 118505, 118514, 118522, 118534, 118545, 118561, - 118571, 118592, 118606, 118619, 118627, 118634, 8076, 118647, 118652, - 118658, 6719, 118664, 118667, 118674, 118684, 9246, 118691, 118696, - 118701, 118708, 118716, 118724, 118730, 118735, 118741, 118745, 118753, - 118762, 118770, 118775, 118784, 118791, 11398, 11407, 118797, 118808, - 118814, 118819, 118825, 3159, 3164, 118831, 1060, 118837, 118844, 118851, - 118864, 118874, 118879, 2330, 87, 118887, 118894, 118899, 118907, 118917, - 118926, 118932, 118941, 118949, 118959, 118963, 118967, 118972, 118976, - 118988, 3187, 118996, 119004, 119009, 119020, 119031, 119043, 119054, - 119064, 119073, 25981, 119078, 119084, 119089, 119099, 119109, 119114, - 34272, 119120, 119125, 119134, 26003, 119138, 26014, 119143, 4769, 8, - 119150, 119159, 119166, 119173, 119179, 119184, 119188, 119194, 34302, - 119199, 119204, 72156, 119209, 119214, 119220, 119226, 119234, 119239, - 119247, 119255, 119264, 119271, 119277, 119284, 119290, 119297, 119302, - 47505, 51837, 119308, 119318, 1828, 32, 119325, 119330, 119343, 119348, - 119356, 119361, 119367, 3213, 30840, 119372, 119380, 119387, 119392, - 119397, 119406, 4332, 4343, 73480, 119414, 119418, 1635, 1868, 119423, - 119428, 119435, 34723, 1872, 323, 119442, 119448, 119453, 3235, 119457, - 119462, 119469, 1876, 119474, 119480, 119485, 119497, 6964, 119507, - 119514, 1883, 119520, 119525, 119532, 119539, 119554, 119561, 119572, - 119577, 119585, 2778, 119589, 119601, 119606, 119610, 119616, 34144, - 2335, 119620, 119631, 119635, 119639, 119645, 119649, 119658, 119662, - 119673, 119677, 2381, 38855, 119681, 119691, 119699, 3326, 119705, - 119714, 119722, 10732, 119727, 119735, 119740, 119744, 119753, 119760, - 119766, 3296, 17764, 119770, 119783, 43923, 119801, 119806, 119814, - 119822, 119832, 11739, 15741, 119844, 119857, 119864, 119874, 119888, - 119895, 119911, 119918, 119924, 26061, 14954, 119931, 119938, 119948, - 119957, 52634, 119969, 119977, 52769, 119984, 119987, 119993, 119999, - 120005, 120011, 120017, 120024, 120031, 120037, 120043, 120049, 120055, - 120061, 120067, 120073, 120079, 120085, 120091, 120097, 120103, 120109, - 120115, 120121, 120127, 120133, 120139, 120145, 120151, 120157, 120163, - 120169, 120175, 120181, 120187, 120193, 120199, 120205, 120211, 120217, - 120223, 120229, 120235, 120241, 120247, 120253, 120259, 120265, 120271, - 120277, 120283, 120289, 120295, 120301, 120307, 120313, 120319, 120325, - 120331, 120337, 120344, 120350, 120357, 120364, 120370, 120377, 120384, - 120390, 120396, 120402, 120408, 120414, 120420, 120426, 120432, 120438, - 120444, 120450, 120456, 120462, 120468, 120474, 3310, 10700, 120480, - 120490, 120496, 120504, 120508, 117402, 3314, 120512, 113741, 25726, - 4693, 4257, 120516, 3320, 120520, 120530, 120536, 120542, 120548, 120554, - 120560, 120566, 120572, 120578, 120584, 120590, 120596, 120602, 120608, - 120614, 120620, 120626, 120632, 120638, 120644, 120650, 120656, 120662, - 120668, 120674, 120680, 120687, 120694, 120700, 120706, 120712, 120718, - 120724, 120730, 1239, 120736, 120741, 120746, 120751, 120756, 120761, - 120766, 120771, 120776, 120780, 120784, 120788, 120792, 120796, 120800, - 120804, 120808, 120812, 120818, 120824, 120830, 120836, 120840, 120844, - 120848, 120852, 120856, 120860, 120864, 120868, 120872, 120877, 120882, - 120887, 120892, 120897, 120902, 120907, 120912, 120917, 120922, 120927, - 120932, 120937, 120942, 120947, 120952, 120957, 120962, 120967, 120972, - 120977, 120982, 120987, 120992, 120997, 121002, 121007, 121012, 121017, - 121022, 121027, 121032, 121037, 121042, 121047, 121052, 121057, 121062, - 121067, 121072, 121077, 121082, 121087, 121092, 121097, 121102, 121107, - 121112, 121117, 121122, 121127, 121132, 121137, 121142, 121147, 121152, - 121157, 121162, 121167, 121172, 121177, 121182, 121187, 121192, 121197, - 121202, 121207, 121212, 121217, 121222, 121227, 121232, 121237, 121242, - 121247, 121252, 121257, 121262, 121267, 121272, 121277, 121282, 121287, - 121292, 121297, 121302, 121307, 121312, 121317, 121322, 121327, 121332, - 121337, 121342, 121347, 121352, 121357, 121362, 121367, 121372, 121377, - 121382, 121387, 121392, 121397, 121402, 121407, 121412, 121417, 121422, - 121427, 121432, 121437, 121442, 121447, 121452, 121457, 121462, 121467, - 121472, 121477, 121482, 121487, 121492, 121497, 121502, 121507, 121512, - 121517, 121522, 121527, 121532, 121537, 121542, 121547, 121552, 121557, - 121562, 121567, 121572, 121577, 121582, 121587, 121592, 121597, 121602, - 121607, 121612, 121617, 121622, 121627, 121632, 121637, 121642, 121647, - 121652, 121657, 121662, 121667, 121672, 121677, 121682, 121687, 121692, - 121697, 121702, 121707, 121712, 121717, 121722, 121727, 121732, 121737, - 121742, 121747, 121752, 121757, 121762, 121768, 121773, 121778, 121783, - 121788, 121793, 121798, 121803, 121809, 121814, 121819, 121824, 121829, - 121834, 121839, 121844, 121849, 121854, 121859, 121864, 121869, 121874, - 121879, 121884, 121889, 121894, 121899, 121904, 121909, 121914, 121919, - 121924, 121929, 121934, 121939, 121944, 121949, 121954, 121959, 121964, - 121969, 121978, 121983, 121992, 121997, 122006, 122011, 122020, 122025, - 122034, 122039, 122048, 122053, 122062, 122067, 122076, 122081, 122086, - 122095, 122099, 122108, 122113, 122122, 122127, 122136, 122141, 122150, - 122155, 122164, 122169, 122178, 122183, 122192, 122197, 122206, 122211, - 122220, 122225, 122234, 122239, 122244, 122249, 122254, 122259, 122264, - 122269, 122273, 122278, 122283, 122288, 122293, 122298, 122303, 122309, - 122314, 122319, 122324, 122330, 122334, 122339, 122345, 122350, 122355, - 122360, 122365, 122370, 122375, 122380, 122385, 122390, 122395, 122401, - 122406, 122411, 122416, 122422, 122427, 122432, 122437, 122442, 122448, - 122453, 122458, 122463, 122468, 122473, 122479, 122484, 122489, 122494, - 122499, 122504, 122509, 122514, 122519, 122524, 122529, 122534, 122539, - 122544, 122549, 122554, 122559, 122564, 122569, 122574, 122579, 122584, - 122589, 122594, 122600, 122606, 122612, 122617, 122622, 122627, 122632, - 122638, 122644, 122650, 122655, 122660, 122665, 122671, 122676, 122681, - 122686, 122691, 122696, 122701, 122706, 122711, 122716, 122721, 122726, - 122731, 122736, 122741, 122746, 122751, 122757, 122763, 122769, 122774, - 122779, 122784, 122789, 122795, 122801, 122807, 122812, 122817, 122822, - 122827, 122832, 122837, 122842, 122847, 122852, 19431, 122857, 122863, - 122868, 122873, 122878, 122883, 122888, 122894, 122899, 122904, 122909, - 122914, 122919, 122925, 122930, 122935, 122940, 122945, 122950, 122955, - 122960, 122965, 122970, 122975, 122980, 122985, 122990, 122995, 123000, - 123005, 123010, 123015, 123020, 123025, 123030, 123035, 123041, 123046, - 123051, 123056, 123061, 123066, 123071, 123076, 123081, 123086, 123091, - 123096, 123101, 123106, 123111, 123116, 123121, 123126, 123131, 123136, - 123141, 123146, 123151, 123156, 123161, 123166, 123171, 123176, 123181, - 123186, 123191, 123196, 123201, 123206, 123211, 123216, 123221, 123226, - 123231, 123236, 123241, 123247, 123252, 123257, 123262, 123267, 123272, - 123277, 123282, 123287, 123292, 123297, 123302, 123308, 123313, 123319, - 123324, 123329, 123334, 123339, 123344, 123349, 123355, 123360, 123365, - 123371, 123376, 123381, 123386, 123391, 123396, 123402, 123408, 123413, - 123418, 14588, 123423, 123428, 123433, 123438, 123443, 123448, 123453, - 123458, 123463, 123468, 123473, 123478, 123483, 123488, 123493, 123498, - 123503, 123508, 123513, 123518, 123523, 123528, 123533, 123538, 123543, - 123548, 123553, 123558, 123563, 123568, 123573, 123578, 123583, 123588, - 123593, 123598, 123603, 123608, 123613, 123618, 123623, 123628, 123633, - 123638, 123643, 123648, 123653, 123658, 123663, 123668, 123673, 123678, - 123683, 123688, 123693, 123698, 123703, 123708, 123713, 123718, 123723, - 123728, 123733, 123738, 123743, 123749, 123754, 123759, 123764, 123769, - 123775, 123780, 123785, 123790, 123795, 123800, 123805, 123811, 123816, - 123821, 123826, 123831, 123836, 123842, 123847, 123852, 123857, 123862, - 123867, 123873, 123878, 123883, 123888, 123893, 123898, 123904, 123910, - 123915, 123920, 123925, 123931, 123937, 123943, 123948, 123953, 123959, - 123965, 123970, 123976, 123982, 123988, 123993, 123998, 124004, 124009, - 124015, 124020, 124026, 124035, 124040, 124045, 124051, 124056, 124062, - 124067, 124072, 124077, 124082, 124087, 124092, 124097, 124102, 124107, - 124112, 124117, 124122, 124127, 124132, 124137, 124142, 124147, 124152, - 124157, 124162, 124167, 124172, 124177, 124182, 124187, 124192, 124197, - 124202, 124207, 124212, 124217, 124223, 124229, 124235, 124240, 124245, - 124250, 124255, 124260, 124265, 124270, 124275, 124280, 124285, 124290, - 124295, 124300, 124305, 124310, 124315, 124320, 124325, 124330, 124335, - 124341, 124347, 124352, 124358, 124363, 124368, 124374, 124379, 124385, - 124390, 124396, 124401, 124407, 124412, 124418, 124423, 124428, 124433, - 124438, 124443, 124448, 124453, 120531, 120537, 120543, 120549, 124459, - 120555, 120561, 124465, 120567, 120573, 120579, 120585, 120591, 120597, - 120603, 120609, 120615, 124471, 120621, 120627, 120633, 124477, 120639, - 120645, 120651, 120657, 124483, 120663, 120669, 120675, 120695, 124489, - 124495, 120701, 124501, 120707, 120713, 120719, 120725, 120731, 124507, - 3337, 3342, 124512, 3357, 3362, 3367, 124517, 124520, 124526, 124532, - 124539, 124544, 124549, 2386, + 113, 118, 124, 129, 137, 146, 149, 160, 165, 170, 176, 180, 189, 195, + 201, 207, 216, 224, 229, 237, 244, 177, 252, 255, 261, 262, 268, 273, + 277, 282, 289, 296, 306, 311, 317, 325, 330, 333, 339, 344, 350, 356, + 359, 365, 375, 380, 385, 390, 392, 394, 403, 405, 412, 354, 419, 427, + 436, 438, 441, 449, 454, 455, 457, 464, 472, 478, 484, 491, 496, 503, + 507, 512, 519, 524, 527, 531, 536, 542, 547, 557, 565, 572, 575, 585, + 593, 598, 606, 615, 618, 625, 629, 633, 637, 642, 645, 652, 659, 666, + 671, 676, 683, 692, 694, 703, 707, 715, 719, 727, 281, 736, 749, 753, + 758, 761, 765, 769, 771, 776, 786, 792, 796, 802, 806, 809, 814, 823, + 828, 832, 774, 838, 846, 854, 859, 868, 877, 885, 891, 902, 905, 910, + 918, 925, 928, 938, 943, 949, 953, 957, 960, 967, 974, 977, 981, 984, + 657, 990, 993, 996, 1002, 1007, 1016, 1021, 1025, 1028, 1032, 1035, 1041, + 1046, 1050, 617, 1055, 1058, 1067, 1070, 1075, 1080, 1086, 1091, 1096, + 1101, 1105, 1110, 1116, 1121, 1126, 1130, 1136, 1141, 1146, 1151, 1155, + 1160, 1165, 1170, 1176, 1182, 1188, 1193, 1197, 1202, 1207, 1212, 1216, + 1221, 1226, 1231, 1236, 1071, 1076, 1081, 1087, 1092, 1240, 1102, 1246, + 1251, 1256, 1263, 1267, 1270, 1279, 1106, 1283, 1111, 1117, 1122, 1287, + 1292, 1297, 1301, 1305, 1311, 1315, 1127, 1318, 1320, 1137, 1325, 1329, + 1142, 1335, 1147, 1339, 1343, 1350, 1152, 1354, 1362, 1367, 1371, 1374, + 1378, 1156, 1161, 1383, 1389, 1166, 1401, 1407, 1413, 1419, 1171, 1183, + 1189, 1423, 1427, 1431, 1434, 1194, 1438, 1440, 1445, 1450, 1456, 1461, + 1466, 1470, 1475, 1480, 1485, 1490, 1496, 1501, 1506, 1512, 1518, 1523, + 1527, 1532, 1537, 1542, 1547, 1552, 1556, 1564, 1569, 1573, 1578, 1583, + 1588, 1593, 1597, 1600, 1607, 1612, 1617, 1622, 1627, 1633, 1638, 1642, + 1198, 1645, 1651, 1656, 1661, 1666, 1203, 1670, 1674, 1681, 1688, 1208, + 1693, 1698, 1213, 1702, 1704, 1709, 1720, 1726, 1217, 1731, 1740, 1222, + 1745, 1751, 1756, 1761, 1771, 1780, 1788, 1227, 1798, 1807, 1816, 1821, + 1825, 1828, 1837, 1847, 1856, 1861, 1865, 1869, 1873, 1876, 1880, 1885, + 1232, 1895, 1237, 1899, 1901, 1907, 1913, 1919, 1925, 1931, 1937, 1943, + 1949, 1954, 1960, 1966, 1972, 1978, 1984, 1990, 1996, 2002, 2008, 2013, + 2018, 2023, 2028, 2033, 2038, 2043, 2048, 2053, 2058, 2064, 2069, 2075, + 2080, 2086, 2092, 2097, 2103, 2109, 2115, 2121, 2126, 2131, 2133, 2134, + 2138, 2142, 2147, 2151, 2155, 2159, 2164, 2168, 2171, 2176, 2180, 2185, + 2189, 2193, 2198, 2202, 2205, 2209, 2215, 2229, 2233, 2237, 2241, 2244, + 2249, 2253, 2257, 2260, 2264, 2269, 2274, 2279, 2284, 2288, 2292, 2296, + 2300, 2304, 2309, 2313, 2318, 2322, 2327, 2333, 2340, 2346, 2351, 2356, + 2361, 2367, 2372, 2378, 2383, 2388, 2393, 2398, 2403, 2406, 2408, 1088, + 2412, 2419, 2427, 2437, 2446, 2460, 2464, 2468, 2473, 2486, 2494, 2497, + 2501, 2504, 2509, 2513, 2516, 2520, 2524, 2529, 1715, 2534, 2538, 2541, + 2545, 2551, 2558, 2565, 2571, 2576, 2581, 2587, 2593, 2598, 2603, 2608, + 2613, 2618, 2623, 2548, 2628, 1706, 2630, 2636, 2640, 2645, 2649, 2653, + 1603, 1728, 2658, 2662, 2666, 2669, 2674, 2679, 2684, 2689, 2693, 2700, + 2705, 2708, 2712, 2716, 2723, 2729, 2733, 2739, 2743, 2747, 2752, 2759, + 2764, 2769, 2776, 2782, 2788, 2794, 2815, 2829, 2846, 2861, 2877, 2894, + 2909, 2918, 2923, 2927, 2932, 2937, 2941, 2953, 2960, 2966, 2336, 2972, + 2979, 2985, 2989, 2992, 2999, 3005, 3010, 3014, 3019, 3023, 3027, 2156, + 3031, 3036, 3041, 3045, 3050, 3058, 3062, 3069, 3074, 3078, 3082, 3086, + 3091, 3096, 3101, 3105, 3110, 3115, 3119, 3124, 3129, 3133, 3136, 3140, + 3144, 3152, 3157, 3161, 3165, 3171, 3180, 3184, 3188, 3194, 3199, 3206, + 3210, 3220, 3224, 3228, 3233, 3237, 3242, 3248, 3253, 3257, 3261, 3265, + 2561, 3273, 3278, 3284, 3289, 3293, 3298, 3303, 3307, 3313, 3318, 2160, + 3324, 3330, 3335, 3340, 3345, 3350, 3355, 3360, 3365, 3370, 3375, 3380, + 3385, 3390, 3395, 3400, 3406, 3411, 1103, 101, 3417, 3421, 3425, 3429, + 3434, 3438, 3442, 3448, 3453, 3457, 3461, 3466, 3471, 3475, 3480, 3484, + 3487, 3491, 3496, 3500, 3505, 3509, 3512, 3514, 3518, 3522, 3527, 3531, + 3534, 3547, 3551, 3555, 3559, 3564, 3568, 3572, 3575, 3579, 3583, 3588, + 3592, 3597, 3602, 3607, 3611, 3618, 3623, 3626, 3632, 3635, 3640, 3646, + 3650, 3654, 3657, 3662, 3666, 3671, 3675, 3679, 3682, 3688, 3693, 3698, + 3704, 3709, 3714, 3720, 3726, 3731, 3736, 3741, 3746, 3749, 979, 644, + 3755, 3758, 3763, 3767, 3771, 3775, 3779, 3782, 3786, 3791, 3796, 3800, + 3805, 3809, 3814, 3818, 3822, 3826, 3832, 3838, 3841, 3844, 153, 3850, + 3855, 3864, 3872, 3881, 3891, 3898, 3904, 3911, 3916, 3920, 3924, 3932, + 3939, 3944, 3949, 3956, 3961, 3965, 3975, 3979, 3983, 3988, 3993, 4003, + 2172, 4008, 4012, 4015, 4021, 4026, 4032, 4038, 4043, 4050, 4054, 4058, + 4062, 4067, 4072, 4077, 4082, 4087, 4092, 634, 616, 1264, 4097, 4104, + 4111, 4117, 4126, 4131, 4138, 4145, 4150, 4156, 4162, 4167, 4172, 4176, + 4182, 4189, 4194, 4198, 4202, 2181, 4208, 4216, 4222, 4230, 863, 4236, + 4244, 4255, 4259, 4269, 4275, 4280, 4285, 4290, 4295, 2186, 4300, 4305, + 4320, 4326, 4333, 4344, 4354, 4360, 4365, 4371, 4377, 4380, 4383, 4387, + 4392, 4395, 4402, 4411, 4416, 4420, 4424, 4428, 4432, 4437, 4443, 4454, + 4458, 3492, 4463, 4475, 4481, 4489, 4493, 4498, 4505, 4510, 4515, 4520, + 1472, 4525, 4528, 4531, 4535, 4538, 4544, 4548, 4562, 4566, 4569, 4573, + 4579, 4585, 4590, 4594, 4598, 4604, 4615, 4621, 4626, 4632, 4636, 4644, + 4656, 4666, 4672, 4677, 4686, 4694, 4705, 4712, 4718, 4724, 4728, 4734, + 4743, 4752, 4757, 4763, 4767, 4776, 4782, 4787, 4791, 4796, 4800, 4808, + 4814, 4818, 4825, 4830, 4834, 4840, 4846, 4853, 2194, 4862, 4873, 4883, + 4892, 4897, 4902, 4907, 4912, 1280, 4917, 4919, 4924, 4930, 4935, 4940, + 4945, 4950, 4955, 4960, 4966, 4971, 4977, 4982, 4987, 4992, 4998, 5003, + 5008, 5013, 5018, 5024, 5029, 5035, 5040, 5045, 5050, 5055, 5060, 5065, + 5071, 5076, 5081, 348, 389, 5086, 5092, 5095, 5099, 5103, 5110, 5116, + 5121, 5125, 5129, 5132, 5135, 5139, 5143, 5146, 5150, 5154, 5158, 5163, + 5167, 5171, 5177, 5186, 4843, 5191, 5195, 5198, 5203, 5208, 5213, 5218, + 5223, 5228, 5233, 5238, 5243, 5248, 5252, 5257, 5262, 5267, 5272, 5277, + 5282, 5287, 5292, 5297, 5302, 5306, 5311, 5316, 5321, 5326, 5331, 5336, + 5341, 5346, 5351, 5356, 5360, 5365, 5370, 5375, 5380, 5385, 5390, 5395, + 5400, 5405, 5410, 5414, 5419, 5424, 5429, 5434, 5439, 5444, 5449, 5454, + 5459, 5464, 5468, 5473, 5478, 5483, 5488, 5493, 5498, 5503, 5508, 5513, + 5518, 5522, 5527, 5532, 5537, 5542, 5547, 5552, 5557, 5562, 5567, 5572, + 5576, 5581, 5586, 5591, 5596, 5602, 5608, 5614, 5620, 5626, 5632, 5638, + 5643, 5649, 5655, 5661, 5667, 5673, 5679, 5685, 5691, 5697, 5703, 5708, + 5714, 5720, 5726, 5732, 5738, 5744, 5750, 5756, 5762, 5768, 5773, 5779, + 5785, 5791, 5797, 5803, 5809, 5815, 5821, 5827, 5833, 5838, 5844, 5850, + 5856, 5862, 5868, 5874, 5880, 5886, 5892, 5898, 5903, 5909, 5915, 5921, + 5927, 5933, 5939, 5945, 5951, 5957, 5963, 5968, 5972, 5978, 5984, 5990, + 5996, 6002, 6008, 6014, 6020, 6026, 6032, 6037, 6043, 6049, 6055, 6061, + 6067, 6073, 6079, 6085, 6091, 6097, 6102, 6108, 6114, 6120, 6126, 6132, + 6138, 6144, 6150, 6156, 6162, 6167, 6173, 6179, 6185, 6191, 6197, 6203, + 6209, 6215, 6221, 6227, 6232, 6238, 6244, 6250, 6256, 6262, 6268, 6274, + 6280, 6286, 6292, 6297, 6303, 6309, 6315, 6321, 6327, 6333, 6339, 6345, + 6351, 6357, 6362, 6368, 6374, 6380, 6386, 6392, 6398, 6404, 6410, 6416, + 6422, 6427, 6433, 6439, 6445, 6451, 6457, 6463, 6469, 6475, 6481, 6487, + 6492, 6498, 6504, 6510, 6516, 6522, 6528, 6534, 6540, 6546, 6552, 6557, + 6563, 6569, 6575, 6581, 6587, 6593, 6599, 6605, 6611, 6617, 6622, 6626, + 6629, 6637, 6644, 6647, 6651, 6664, 6668, 6672, 6676, 6679, 6683, 6688, + 6692, 6701, 6705, 6711, 6718, 6729, 6737, 6744, 6750, 6754, 6762, 6771, + 6777, 6781, 6793, 6798, 6801, 6806, 6810, 6820, 6828, 6836, 6844, 6850, + 6854, 6864, 6874, 6882, 6889, 6896, 6902, 6908, 6915, 6919, 6926, 6936, + 6946, 6954, 6961, 6966, 6970, 6974, 6982, 6986, 6996, 7001, 7008, 7015, + 7023, 7033, 7038, 7042, 7047, 7051, 7058, 7063, 7077, 7082, 7087, 7094, + 3768, 7103, 7107, 7111, 7116, 7120, 7124, 7127, 7132, 7137, 7146, 7152, + 7158, 7163, 7169, 7173, 7184, 7194, 7209, 7224, 7239, 7254, 7269, 7284, + 7299, 7314, 7329, 7344, 7359, 7374, 7389, 7404, 7419, 7434, 7449, 7464, + 7479, 7494, 7509, 7524, 7539, 7554, 7569, 7584, 7599, 7614, 7629, 7644, + 7659, 7674, 7689, 7704, 7719, 7734, 7749, 7764, 7779, 7794, 7809, 7824, + 7839, 7854, 7869, 7884, 7899, 7914, 7929, 7938, 7947, 7952, 7958, 7968, + 7972, 7976, 7981, 7986, 7991, 7999, 8003, 8006, 8010, 3215, 8013, 8018, + 353, 534, 8024, 8027, 8035, 8039, 8043, 8046, 8050, 8056, 8060, 8068, + 8074, 8079, 8086, 8094, 8101, 8107, 8112, 8119, 8125, 8134, 8142, 8146, + 8151, 8159, 8171, 8182, 8189, 8200, 8204, 8208, 8212, 8215, 8221, 3519, + 8225, 8227, 8233, 8238, 8243, 8248, 8254, 8259, 8264, 8269, 8274, 8280, + 8285, 8290, 8296, 8301, 8307, 8312, 8318, 8323, 8329, 8334, 8339, 8344, + 8349, 8354, 8360, 8365, 8370, 8375, 8381, 8387, 8393, 8399, 8405, 8411, + 8417, 8423, 8429, 8435, 8441, 8447, 8452, 8457, 8462, 8467, 8472, 8477, + 8482, 8487, 8493, 8499, 8504, 8510, 8516, 8522, 8528, 8533, 8538, 8543, + 8548, 8554, 8560, 8565, 8570, 8575, 8580, 8585, 8591, 8596, 8602, 8608, + 8614, 8620, 8626, 8632, 8638, 8644, 8650, 2203, 8045, 8655, 8659, 8667, + 8671, 8674, 8677, 8683, 8690, 1107, 8693, 8697, 8705, 8710, 8715, 8706, + 8720, 2230, 8724, 8730, 8736, 8741, 8746, 8753, 8761, 8766, 8770, 8773, + 8777, 8783, 8789, 8793, 1653, 631, 8796, 8800, 8805, 8811, 8816, 8820, + 8823, 8827, 8833, 8838, 8842, 8849, 8853, 8857, 8861, 773, 8681, 2254, + 8864, 8872, 8879, 8886, 8892, 8899, 8907, 8914, 8925, 8932, 8938, 8950, + 1123, 1288, 1293, 8961, 8965, 1298, 8969, 8973, 8982, 8990, 8994, 9003, + 9009, 9015, 9020, 9024, 9030, 9035, 9043, 9050, 2914, 9057, 9063, 9067, + 9076, 9085, 9094, 9103, 9109, 9114, 9119, 9130, 9139, 9151, 9156, 9164, + 2289, 9168, 9170, 9175, 9179, 9188, 9196, 1302, 168, 3810, 3815, 9202, + 9206, 9215, 9221, 9226, 9229, 9233, 9237, 9242, 9247, 9252, 9257, 9261, + 9270, 9276, 2301, 9280, 2906, 9284, 9292, 9296, 9300, 2305, 9304, 9308, + 9312, 9316, 9320, 2310, 9324, 9329, 9336, 9342, 9349, 9355, 9358, 9254, + 9360, 9368, 9376, 9384, 9387, 9392, 2323, 9397, 8717, 9400, 9402, 9407, + 9412, 9417, 9422, 9427, 9432, 9437, 9442, 9447, 9452, 9458, 9463, 9468, + 9473, 9479, 9484, 9489, 9494, 9499, 9504, 9509, 9515, 9520, 9525, 9530, + 9535, 9540, 9545, 9550, 9555, 9560, 9565, 9570, 9575, 9580, 9585, 9590, + 9595, 9600, 9606, 9612, 9617, 9622, 9627, 9632, 9637, 2334, 2341, 2347, + 9642, 9650, 9656, 9664, 2373, 2379, 9672, 2384, 2389, 2394, 2399, 9676, + 9680, 9685, 9689, 9693, 9697, 9702, 9706, 9711, 9715, 9718, 9721, 9727, + 9734, 9740, 9747, 9753, 9760, 9766, 9773, 9779, 9785, 9794, 9800, 9804, + 9808, 9812, 9816, 9821, 9825, 9830, 9834, 9840, 9844, 9849, 9856, 9867, + 9875, 9885, 9891, 9901, 9910, 9917, 9922, 9926, 9937, 9947, 9960, 9971, + 9984, 9995, 10007, 10019, 10031, 10042, 10055, 10068, 10075, 10081, + 10092, 10102, 10116, 10123, 10129, 10138, 10146, 10150, 10155, 10159, + 10166, 10174, 10181, 10185, 10191, 10195, 10201, 10211, 10215, 10220, + 10225, 10232, 10238, 8894, 10248, 10252, 10259, 10265, 10272, 10279, + 10283, 10286, 10292, 10296, 10301, 10306, 10311, 10315, 10321, 10329, + 10336, 10342, 10346, 10349, 10355, 10365, 10369, 10375, 10380, 10384, + 10389, 10393, 10399, 10405, 10410, 10416, 10421, 10426, 10431, 2226, + 10436, 10438, 10443, 10451, 10460, 10464, 10470, 10475, 10480, 10485, + 10490, 10496, 10501, 10506, 4600, 10511, 10516, 10520, 10526, 10531, + 10537, 10542, 10547, 10553, 10558, 10465, 10564, 10568, 10575, 10581, + 10586, 10590, 7073, 10595, 10604, 10609, 10614, 9332, 9339, 10619, 3088, + 10623, 10628, 10633, 10638, 10476, 10642, 10647, 10652, 10481, 10656, + 10486, 10661, 10668, 10675, 10681, 10688, 10694, 10700, 10705, 10712, + 10717, 10722, 10727, 10733, 10491, 10497, 10739, 10744, 10750, 10755, + 10760, 10768, 1358, 10773, 1048, 10776, 10784, 10800, 10816, 10831, + 10839, 10845, 10851, 10860, 10868, 10876, 10884, 10892, 10900, 10908, + 10916, 10924, 10933, 10942, 10950, 10959, 10968, 10977, 10986, 10995, + 11004, 11013, 11022, 11031, 11040, 11048, 11053, 11057, 11063, 11071, + 11078, 11093, 11110, 11129, 11138, 11146, 11161, 11172, 11180, 11186, + 11196, 11206, 11214, 11220, 11232, 11241, 11249, 11256, 11263, 11270, + 11276, 11281, 11291, 11297, 11305, 11315, 11322, 11332, 11342, 11352, + 11360, 11367, 11376, 11386, 11400, 11415, 11424, 11432, 11437, 11441, + 11451, 11461, 11473, 11482, 11488, 11493, 11503, 11513, 11523, 11528, + 11532, 11542, 11551, 11556, 11572, 11589, 11599, 11604, 11615, 11628, + 11639, 11647, 11660, 11672, 11680, 11685, 11689, 11695, 11700, 11708, + 11716, 11723, 11734, 11739, 11747, 11757, 11763, 11767, 11770, 11776, + 11780, 11786, 11793, 11797, 11805, 11814, 11822, 11829, 11834, 11838, + 11843, 11847, 11851, 11859, 11874, 11890, 11896, 11904, 11913, 11921, + 11927, 11931, 11938, 11949, 11953, 11956, 11967, 11973, 11978, 10507, + 11986, 11992, 11999, 12005, 12010, 12017, 12024, 12031, 12038, 12045, + 12052, 12059, 12066, 12073, 12080, 12087, 12094, 12101, 12108, 12115, + 12120, 11106, 12125, 12131, 12138, 12145, 12150, 12157, 12166, 12170, + 12177, 12189, 12193, 12199, 12204, 12209, 12214, 12219, 12224, 12229, + 12232, 12236, 11457, 12240, 12244, 12250, 12256, 12261, 12267, 12272, + 12277, 12283, 12288, 12293, 10228, 12298, 12302, 12306, 12310, 12315, + 12320, 12325, 12333, 12339, 12344, 12348, 12352, 12359, 12364, 12372, + 12379, 12384, 12388, 12391, 12397, 12404, 12408, 12411, 12416, 12420, + 4639, 12426, 12435, 46, 12443, 12449, 12454, 12459, 12467, 12474, 12479, + 6991, 12485, 12491, 12496, 12500, 12503, 12509, 12517, 12524, 12539, + 12558, 12570, 12583, 12596, 12609, 12623, 12636, 12651, 12658, 10512, + 12664, 12678, 12683, 12689, 12694, 12702, 12707, 9072, 12712, 12715, + 12723, 12730, 12735, 12739, 12745, 12749, 12754, 12759, 12764, 12769, + 12774, 12779, 3093, 11194, 12784, 12788, 12794, 12800, 12805, 12811, + 12816, 10521, 12822, 12828, 12833, 12838, 12846, 12852, 12865, 12873, + 12880, 12886, 10527, 12892, 12900, 12908, 12915, 12928, 12941, 12953, + 12963, 12975, 13003, 13011, 13020, 13027, 13039, 13046, 13056, 13065, + 13073, 13080, 13085, 13091, 10532, 13096, 13102, 13107, 13112, 13117, + 10538, 13122, 13125, 13132, 13138, 13152, 13165, 13176, 9860, 13187, + 13193, 13202, 13210, 13217, 13223, 13234, 13240, 13245, 13253, 4113, + 13259, 13264, 12531, 13270, 13277, 13282, 10543, 13288, 13293, 13300, + 13306, 13312, 13317, 13325, 13333, 13340, 13344, 13356, 13370, 13380, + 13385, 13389, 13400, 13406, 13411, 13416, 10548, 13420, 10554, 13425, + 13428, 13433, 13445, 13452, 13457, 13461, 13469, 13474, 13478, 13483, + 13487, 13494, 13500, 10559, 10466, 13507, 3098, 17, 13514, 13519, 13523, + 13527, 13533, 13541, 13551, 13556, 13561, 13568, 13575, 13579, 13590, + 13600, 13609, 13618, 13630, 13635, 13639, 13647, 13661, 13665, 13668, + 13672, 13680, 13687, 13695, 13699, 13710, 13718, 13722, 13729, 13734, + 13738, 13744, 13749, 13755, 13760, 13765, 13769, 13775, 13780, 13791, + 13795, 13798, 13804, 13811, 13817, 13822, 13828, 13834, 13841, 13852, + 13862, 13872, 13881, 13888, 13897, 13901, 10569, 10576, 10582, 10587, + 13907, 13913, 13919, 13924, 13930, 10591, 13936, 13939, 13946, 13951, + 13957, 13962, 13977, 13993, 14008, 14016, 14021, 14028, 14034, 14038, + 14043, 14048, 14053, 14058, 14063, 14068, 14073, 14078, 14083, 1561, 383, + 14088, 14096, 14103, 14109, 14114, 14119, 10596, 14121, 14125, 14130, + 14134, 14144, 14149, 14153, 14156, 14165, 14169, 14172, 14179, 10605, + 14184, 14187, 14195, 14202, 14210, 14214, 14220, 14228, 14232, 14239, + 14248, 14255, 14251, 14262, 14266, 14272, 14276, 14280, 14284, 14290, + 14296, 14306, 14314, 14321, 14325, 14333, 14338, 14342, 14349, 14354, + 14361, 14365, 14370, 14375, 14379, 14386, 14392, 14400, 14406, 14411, + 14421, 14428, 14433, 14438, 14442, 14446, 14454, 4469, 14462, 14467, + 10610, 14471, 14478, 14482, 14485, 14493, 14500, 14504, 14507, 6846, + 14511, 14516, 14521, 14525, 14536, 14546, 14551, 14557, 14562, 14571, + 14575, 14578, 14586, 14591, 14596, 14603, 14608, 4865, 10615, 14613, + 14617, 14624, 14629, 14634, 14639, 7021, 14644, 14649, 14654, 14659, + 14665, 14670, 14676, 14681, 14686, 14691, 14696, 14701, 14706, 14711, + 14716, 14721, 14726, 14731, 14736, 14741, 14746, 14751, 14756, 14762, + 14767, 14772, 14777, 14782, 14787, 14793, 14798, 14803, 14809, 14814, + 14820, 14825, 14831, 14836, 14841, 14846, 14851, 14857, 14862, 14867, + 14872, 14880, 988, 112, 14886, 14890, 14895, 14900, 14904, 14908, 14912, + 14917, 14921, 14926, 14930, 14933, 14937, 14941, 14947, 14952, 14962, + 14968, 14976, 14982, 14986, 14990, 14997, 15005, 15014, 15025, 15035, + 15042, 15049, 15053, 15062, 15071, 15079, 15086, 15095, 15104, 15113, + 15122, 15132, 15142, 15152, 15162, 15172, 15181, 15191, 15201, 15211, + 15221, 15231, 15241, 15251, 15260, 15270, 15280, 15290, 15300, 15310, + 15320, 15329, 15339, 15349, 15359, 15369, 15379, 15389, 15399, 15409, + 15419, 15428, 15438, 15448, 15458, 15468, 15478, 15488, 15498, 15508, + 15518, 15528, 15537, 15543, 1132, 15547, 15550, 15554, 15559, 15566, + 15572, 15577, 15581, 15586, 15595, 15604, 15612, 15617, 15621, 15625, + 15631, 15636, 15642, 10624, 15647, 15652, 15661, 15666, 10634, 15671, + 11444, 11454, 11464, 15674, 15680, 15688, 10639, 15695, 15699, 15703, + 15709, 15714, 15718, 15728, 15734, 15740, 15745, 15754, 15762, 15769, + 15776, 15781, 15788, 15793, 15797, 15800, 15811, 15821, 15834, 15843, + 15851, 15862, 15874, 15884, 15894, 15899, 15903, 15908, 15913, 15917, + 15923, 15931, 15938, 15949, 15954, 15964, 15973, 15977, 15980, 15987, + 15997, 16006, 16013, 16017, 16024, 16030, 16035, 16040, 16044, 15590, + 16053, 16057, 16063, 16067, 16072, 16076, 16083, 16090, 16094, 16103, + 16111, 16119, 16126, 16134, 16146, 16157, 16167, 16174, 16180, 16189, + 16200, 16209, 16221, 16233, 16245, 16255, 16264, 16274, 16283, 16291, + 16298, 16308, 16317, 16325, 16329, 16334, 16340, 16346, 16351, 16356, + 16360, 16365, 16370, 16375, 16380, 16385, 16390, 16395, 8738, 16400, + 16402, 16406, 16411, 16417, 16424, 16430, 16436, 16445, 16449, 16455, + 16463, 16470, 16479, 16488, 16497, 16506, 16515, 16524, 16533, 16542, + 16552, 16562, 16571, 16577, 16584, 16591, 16597, 16611, 16617, 16624, + 16632, 16641, 16649, 16655, 16664, 16670, 16679, 16690, 16696, 16706, + 16714, 16721, 16729, 16737, 16744, 16753, 16766, 16775, 16783, 16790, + 16803, 16809, 16815, 16825, 16834, 16843, 16852, 16860, 16865, 16869, + 16875, 16881, 16886, 16893, 16900, 10242, 16905, 16910, 16917, 16925, + 16930, 16942, 16949, 16954, 16966, 14943, 16971, 16977, 16985, 16991, + 16996, 17004, 17012, 17019, 17027, 17034, 17040, 17046, 17054, 17062, + 17068, 17076, 17082, 17087, 17093, 17100, 17106, 17111, 17115, 17126, + 17134, 17142, 17148, 17153, 17160, 17169, 17175, 17180, 17188, 17195, + 17204, 17218, 4413, 17222, 17227, 17232, 17238, 17243, 17248, 17252, + 17257, 17262, 17267, 8737, 17272, 17277, 17282, 17287, 17292, 17296, + 17301, 17306, 17311, 17316, 17322, 17328, 14216, 17333, 17339, 17344, + 17349, 17354, 10643, 17359, 17364, 17369, 17374, 17379, 17393, 17410, + 17428, 17440, 17453, 17470, 17486, 17503, 17513, 17532, 17543, 17554, + 17565, 2803, 17576, 17587, 17598, 17615, 17626, 17637, 17642, 10648, + 17647, 17651, 2483, 17655, 17661, 17664, 17670, 17678, 17686, 17692, + 17701, 17708, 17713, 17721, 17729, 17736, 17740, 17745, 17751, 17758, + 17766, 17773, 17785, 17792, 17798, 17806, 17811, 17817, 17823, 17828, + 13971, 17835, 17839, 17848, 17854, 17859, 17867, 17876, 17884, 17891, + 17897, 17905, 17912, 17918, 17924, 17931, 17938, 17944, 17950, 17954, + 17963, 17971, 17976, 17986, 17993, 17999, 18007, 18013, 18021, 18029, + 18036, 18049, 18053, 18060, 18069, 18078, 18087, 18095, 18105, 18112, + 18117, 3969, 18124, 18129, 1248, 18133, 18140, 17273, 18144, 18150, + 18154, 18162, 18174, 18179, 18186, 18192, 18197, 18204, 17278, 18208, + 18212, 18220, 18225, 18229, 17283, 18233, 17288, 18237, 18244, 18249, + 18253, 18260, 18264, 18267, 18275, 18282, 18287, 18295, 18299, 18306, + 18323, 18332, 18341, 18345, 18348, 18354, 18362, 18368, 18373, 18377, + 18382, 18387, 18392, 18397, 18402, 18407, 4047, 18412, 18414, 18422, + 18429, 18439, 18451, 18456, 18460, 18466, 18471, 18479, 18483, 18489, + 18494, 18500, 18503, 18510, 18518, 18525, 18531, 18536, 18542, 18547, + 18554, 18560, 18565, 18575, 18584, 18591, 18596, 18600, 18606, 18612, + 18616, 18623, 18629, 18634, 18640, 18648, 18656, 18663, 18669, 18675, + 18680, 18686, 18692, 18700, 18705, 18710, 18718, 18724, 18730, 18735, + 18742, 18747, 18751, 18757, 18763, 18768, 18774, 18781, 18786, 18792, + 18795, 18801, 18812, 18818, 18827, 18830, 18834, 18838, 18852, 18865, + 18877, 18883, 18888, 18895, 18901, 18907, 18918, 18930, 18942, 18952, + 18961, 18969, 18976, 18987, 18997, 19007, 19015, 19018, 17302, 19023, + 19028, 19035, 17307, 17458, 19043, 19056, 19071, 19082, 17475, 19100, + 19113, 19126, 19137, 12546, 19148, 19161, 19180, 19191, 19202, 19213, + 2824, 19226, 19230, 19238, 19249, 19260, 19268, 19283, 19298, 19309, + 19316, 19322, 19330, 19334, 19340, 19344, 19347, 19360, 19372, 19382, + 19390, 19397, 19405, 19415, 19420, 19427, 19432, 19439, 19450, 19460, + 19466, 19471, 19476, 17312, 19480, 19486, 19493, 19499, 19504, 19509, + 19514, 19518, 17317, 17323, 19522, 17329, 19527, 19535, 19540, 19544, + 19551, 19559, 19566, 19575, 19582, 19586, 19590, 19595, 19600, 19605, + 19610, 19615, 10487, 19620, 19622, 19627, 19632, 19638, 19643, 19648, + 19653, 19658, 19662, 19668, 19674, 19679, 19685, 19690, 19695, 19699, + 19705, 19710, 19714, 19719, 19724, 19736, 19741, 19747, 19752, 19757, + 19763, 19769, 19774, 19779, 19784, 19791, 19797, 19808, 19815, 19824, + 19829, 19833, 279, 19837, 19845, 19850, 19856, 19862, 19867, 19874, + 19881, 19887, 19892, 19898, 19903, 19908, 19913, 19920, 19930, 19938, + 19943, 19948, 19955, 19961, 19970, 19980, 19990, 20004, 20018, 20032, + 20046, 20061, 20076, 20093, 20111, 20124, 20130, 20135, 20140, 20144, + 20152, 20157, 20165, 20171, 20177, 20182, 20187, 20191, 20197, 20202, + 20206, 20213, 20218, 20222, 20233, 20239, 20244, 20249, 20256, 20261, + 20265, 3927, 20270, 20276, 20283, 17334, 20289, 20293, 20299, 20304, + 20309, 20313, 20319, 20324, 20329, 20336, 20341, 15730, 20345, 20350, + 20354, 20359, 20365, 20371, 20378, 20388, 20396, 20403, 20408, 20412, + 20421, 20429, 20436, 20443, 20449, 20454, 20460, 20465, 20470, 20476, + 20481, 20487, 20492, 20498, 20504, 20511, 20517, 20522, 20527, 10713, + 20536, 20539, 20547, 20553, 20558, 20563, 20573, 20580, 20586, 20591, + 20596, 20602, 20607, 20613, 20618, 20624, 20631, 20637, 20643, 20648, + 20656, 20663, 20668, 20673, 20679, 20684, 20688, 20697, 20708, 20715, + 20722, 20730, 20737, 20744, 20749, 20754, 20760, 20765, 20773, 20779, + 20785, 20790, 20797, 20803, 20808, 20812, 20818, 20823, 20828, 20832, + 20837, 1321, 8762, 3112, 20841, 20845, 20849, 20853, 20857, 20861, 20864, + 20869, 20876, 20884, 20894, 20905, 20915, 20926, 20938, 20949, 20959, + 20970, 20982, 20993, 21005, 21018, 21030, 21041, 21051, 21062, 21074, + 21085, 21098, 21110, 21121, 21133, 21146, 21158, 21171, 21185, 21198, + 21210, 21221, 21231, 21242, 21254, 21265, 21277, 21290, 21302, 21313, + 21325, 21338, 21351, 21365, 21378, 21390, 21401, 21413, 21426, 21438, + 21451, 21465, 21478, 21490, 21503, 21517, 21530, 21544, 21558, 21571, + 21583, 21594, 21604, 17345, 21611, 21617, 21627, 21635, 21642, 21650, + 21660, 21669, 21682, 21687, 21692, 21700, 21707, 15839, 15848, 21714, + 21724, 21739, 21745, 21752, 21759, 21766, 21772, 21778, 21789, 21797, + 21805, 21815, 21825, 21834, 17350, 21843, 21849, 21855, 21864, 21872, + 21880, 21885, 21894, 21902, 21914, 21924, 21934, 21944, 21953, 21965, + 21975, 21985, 21996, 22003, 22008, 22015, 22027, 22039, 22051, 22063, + 22075, 22087, 22099, 22111, 22123, 22135, 22146, 22158, 22170, 22182, + 22194, 22206, 22218, 22230, 22242, 22254, 22266, 22277, 22289, 22301, + 22313, 22325, 22337, 22349, 22361, 22373, 22385, 22397, 22408, 22420, + 22432, 22444, 22456, 22468, 22480, 22492, 22504, 22516, 22528, 22539, + 22551, 22563, 22575, 22587, 22599, 22611, 22623, 22635, 22647, 22659, + 22670, 22682, 22694, 22706, 22718, 22730, 22742, 22754, 22766, 22778, + 22790, 22801, 22813, 22825, 22837, 22849, 22861, 22873, 22885, 22897, + 22909, 22921, 22932, 22944, 22956, 22968, 22980, 22993, 23006, 23019, + 23032, 23045, 23058, 23071, 23083, 23096, 23109, 23122, 23135, 23148, + 23161, 23174, 23187, 23200, 23213, 23225, 23238, 23251, 23264, 23277, + 23290, 23303, 23316, 23329, 23342, 23355, 23367, 23380, 23393, 23406, + 23419, 23432, 23445, 23458, 23471, 23484, 23497, 23509, 23522, 23535, + 23548, 23561, 23574, 23587, 23600, 23613, 23626, 23639, 23651, 23664, + 23677, 23690, 23703, 23716, 23729, 23742, 23755, 23768, 23781, 23793, + 23804, 23817, 23830, 23843, 23856, 23869, 23882, 23895, 23908, 23921, + 23934, 23946, 23959, 23972, 23985, 23998, 24011, 24024, 24037, 24050, + 24063, 24076, 24088, 24101, 24114, 24127, 24140, 24153, 24166, 24179, + 24192, 24205, 24218, 24230, 24243, 24256, 24269, 24282, 24295, 24308, + 24321, 24334, 24347, 24360, 24372, 24385, 24398, 24411, 24424, 24437, + 24450, 24463, 24476, 24489, 24502, 24514, 24527, 24540, 24553, 24566, + 24579, 24592, 24605, 24618, 24631, 24644, 24656, 24669, 24682, 24695, + 24708, 24721, 24734, 24747, 24760, 24773, 24786, 24798, 24811, 24824, + 24837, 24850, 24863, 24876, 24889, 24902, 24915, 24928, 24940, 24953, + 24966, 24979, 24992, 25005, 25018, 25031, 25044, 25057, 25070, 25082, + 25095, 25108, 25121, 25134, 25147, 25160, 25173, 25186, 25199, 25212, + 25224, 25235, 25244, 25252, 25260, 25267, 25273, 25277, 25283, 25289, + 25298, 25306, 25311, 25317, 25322, 25326, 25335, 10492, 25346, 25352, + 25359, 25367, 25374, 13145, 13159, 25381, 25388, 25397, 25402, 25407, + 25414, 25419, 25424, 8778, 8784, 8790, 25429, 25434, 25437, 25442, 25450, + 25457, 25464, 25476, 25483, 25489, 25498, 25503, 25512, 25521, 25527, + 25535, 25544, 25548, 25554, 25559, 25569, 25576, 25582, 25590, 25596, + 25603, 25609, 25619, 25628, 25632, 25639, 25643, 25648, 25654, 25662, + 25666, 25676, 17360, 25685, 25691, 25695, 25704, 25713, 25723, 25729, + 17365, 25736, 25743, 25754, 25762, 25772, 25781, 25789, 10207, 25797, + 25802, 25808, 25813, 25817, 25821, 25825, 11301, 25830, 25838, 25845, + 25854, 25862, 25869, 25876, 25885, 25891, 1062, 25898, 25904, 25908, + 25914, 25921, 25927, 25935, 25941, 25948, 25954, 25960, 25969, 25973, + 25981, 25989, 25996, 26005, 26012, 26017, 26021, 26031, 26042, 26053, + 26058, 26063, 26069, 26078, 26083, 26096, 9000, 26100, 26106, 26112, + 26118, 26123, 26131, 26135, 26142, 26151, 26156, 17638, 26164, 26168, + 26180, 26185, 26189, 26192, 26198, 26204, 26210, 26215, 26220, 26224, + 26227, 26238, 26243, 10769, 26250, 26255, 26260, 26265, 26270, 26275, + 26280, 26285, 26290, 10774, 26295, 26300, 26305, 26310, 26315, 26320, + 26325, 26330, 26335, 26340, 26345, 26350, 26356, 26361, 26366, 26371, + 26376, 26381, 26386, 26391, 26396, 26401, 26407, 26413, 26418, 26423, + 26428, 26433, 26438, 26443, 26448, 26453, 26458, 26464, 26469, 26474, + 26479, 26485, 26491, 26496, 26501, 26506, 26511, 26516, 26521, 26526, + 26531, 26537, 26542, 26547, 26552, 26557, 26563, 26568, 26573, 26577, + 1244, 145, 26585, 26589, 26593, 26597, 26602, 26606, 15736, 2409, 26610, + 26615, 26619, 26624, 26628, 26633, 26637, 26643, 26648, 26652, 26656, + 26664, 26668, 26672, 26679, 26684, 26689, 26693, 26699, 26704, 26708, + 26713, 26718, 26722, 26729, 26736, 26743, 26748, 26752, 26756, 26761, + 26765, 26768, 26774, 26787, 26792, 26798, 26807, 26812, 11049, 26817, + 26826, 26831, 26834, 26838, 26843, 26848, 26853, 26858, 26863, 2920, + 2925, 26868, 26874, 26878, 26884, 3888, 26889, 26894, 26899, 26905, + 26910, 16686, 26915, 26920, 26925, 26930, 26936, 26941, 26946, 26952, + 26957, 26961, 26966, 26971, 26976, 26981, 26986, 26990, 26995, 26999, + 27004, 27009, 27014, 27019, 27023, 27028, 27032, 27037, 27042, 27047, + 26962, 3121, 26967, 27052, 27060, 27067, 11395, 27079, 27087, 27097, + 27115, 27134, 27143, 27151, 26972, 27158, 27163, 27171, 26977, 27176, + 27181, 27189, 27194, 27199, 27203, 19858, 27208, 27216, 27221, 27225, + 27232, 27238, 27247, 27251, 27259, 27265, 27269, 27272, 20692, 27279, + 27283, 27287, 27292, 27298, 27305, 27310, 10234, 27314, 27319, 27324, + 27329, 27334, 27339, 1663, 1668, 27344, 27350, 27356, 27361, 27365, + 27369, 27373, 27377, 27381, 27385, 27389, 27393, 25470, 27396, 27403, + 27411, 27417, 27423, 27428, 27433, 27439, 27443, 27448, 27455, 16586, + 16593, 27461, 27473, 27476, 27483, 27487, 19883, 27494, 27502, 27513, + 27522, 27535, 27545, 27559, 27571, 27585, 27598, 27610, 27620, 27632, + 27638, 27653, 27677, 27695, 27714, 27727, 27741, 27759, 27775, 27792, + 27810, 27821, 27840, 27857, 27877, 27895, 27907, 27921, 27935, 27947, + 27964, 27983, 28001, 28013, 28031, 28050, 17518, 28063, 28083, 28095, + 12577, 28107, 28112, 28117, 28122, 28131, 28137, 28142, 28146, 28153, + 28159, 28163, 28168, 28173, 28178, 28183, 28188, 28193, 2506, 28198, + 28204, 28208, 28211, 28222, 28226, 28229, 28237, 28243, 14882, 28247, + 28256, 28267, 28273, 28279, 28294, 28303, 28311, 28318, 28323, 28327, + 28334, 28340, 28349, 28357, 28364, 28374, 28383, 28393, 28398, 28407, + 28416, 28427, 28438, 28448, 28465, 4557, 28475, 28479, 28489, 28497, + 28507, 28518, 28524, 28529, 28539, 28547, 28554, 28560, 28567, 28572, + 27010, 28576, 28585, 28589, 28592, 28597, 28605, 28612, 28621, 28629, + 28637, 28645, 28655, 28664, 28670, 28676, 28682, 28686, 27015, 27020, + 28690, 28700, 28710, 28720, 28728, 28735, 28745, 28753, 28761, 28767, + 28775, 798, 28784, 17725, 649, 28798, 28807, 28815, 28826, 28837, 28847, + 28856, 28868, 28877, 28886, 28893, 28899, 28909, 28918, 28927, 28935, + 28943, 28953, 28961, 28969, 28976, 28982, 28987, 28992, 28997, 8156, + 29002, 29005, 29009, 29014, 29022, 29028, 29033, 29037, 3751, 27033, + 29045, 27038, 29051, 29057, 29063, 29068, 29073, 29077, 29085, 29091, + 29097, 29101, 3912, 29109, 29114, 29119, 29123, 29127, 11681, 29134, + 29142, 29156, 29163, 29170, 29176, 11690, 11696, 29184, 29192, 29199, + 29204, 29209, 27043, 29215, 29226, 29235, 19031, 29243, 29248, 2755, + 29253, 29264, 29270, 29275, 29279, 29283, 29286, 29293, 29300, 29306, + 29314, 29321, 29327, 29331, 8196, 29336, 29340, 29344, 29352, 29357, + 29362, 29367, 1696, 29372, 29377, 29382, 29387, 29392, 29397, 29402, + 29407, 29412, 29417, 29422, 29427, 29432, 29437, 29443, 29448, 29453, + 29458, 29463, 29468, 29473, 29479, 29484, 29489, 29494, 29499, 29504, + 29509, 29514, 29520, 29526, 29531, 29537, 29542, 29547, 5, 29553, 29557, + 29561, 29565, 29570, 29574, 29578, 29582, 29586, 29591, 29595, 29600, + 29604, 29607, 29611, 29616, 29620, 29625, 29629, 29633, 29637, 29642, + 29646, 29650, 29660, 29665, 29669, 29673, 29678, 29683, 29692, 29697, + 29702, 29706, 29710, 29719, 29732, 29744, 29753, 29762, 29767, 29773, + 29778, 29782, 29786, 29796, 29805, 29813, 29819, 29824, 29828, 29835, + 29842, 29852, 29861, 29869, 12934, 29877, 29884, 29892, 29901, 29910, + 29918, 29928, 29933, 29937, 29941, 29944, 29946, 29950, 29954, 29959, + 29964, 29968, 29972, 29975, 29979, 29982, 29986, 29989, 29992, 29996, + 30002, 30006, 30010, 30014, 30018, 30023, 30028, 30033, 30037, 30040, + 30045, 30051, 30056, 30062, 30067, 30071, 30077, 30081, 30085, 30090, + 30094, 30099, 30104, 30108, 30112, 30119, 30123, 30126, 30130, 30134, + 30140, 30145, 30151, 30155, 30159, 30164, 30171, 30177, 30181, 30190, + 30194, 30198, 30201, 30207, 30212, 30218, 1385, 1748, 30223, 30228, + 30233, 30238, 30243, 30248, 30253, 2213, 827, 30258, 30261, 30265, 30269, + 30274, 30278, 17737, 30282, 30287, 30292, 30296, 30299, 30304, 30308, + 30313, 30317, 17741, 30322, 30325, 30328, 30334, 30338, 30343, 30347, + 30360, 30368, 30372, 30375, 30383, 30392, 30399, 30404, 30410, 30416, + 30424, 30431, 30438, 30442, 30446, 30450, 30455, 30460, 30464, 30472, + 30477, 30484, 30496, 30507, 30512, 30516, 30523, 30527, 30532, 30538, + 30541, 30546, 30551, 30558, 30562, 30566, 30569, 30575, 8900, 2413, + 30579, 30584, 30600, 11100, 30620, 30629, 30645, 30649, 30656, 30659, + 30665, 30675, 30681, 30690, 30699, 30714, 30725, 30737, 30748, 30756, + 30765, 30771, 30780, 30790, 30800, 30811, 30822, 30832, 30841, 30848, + 30857, 30865, 30872, 30879, 30886, 30894, 30901, 30908, 30921, 30928, + 30936, 30943, 30949, 30954, 30963, 30970, 30976, 30981, 30989, 30997, + 31004, 31011, 28499, 31023, 31035, 31049, 31057, 31065, 31073, 31080, + 31092, 31101, 31110, 31118, 31126, 31134, 31141, 31147, 31156, 31164, + 31174, 31183, 31193, 31202, 31211, 31219, 31224, 31228, 31231, 31235, + 31239, 31243, 31247, 31251, 31257, 31263, 31268, 31276, 31283, 31291, + 31298, 10806, 17799, 31306, 31313, 31318, 31325, 31331, 31337, 31344, + 14024, 31351, 31354, 31366, 31374, 31380, 31385, 31389, 31400, 31410, + 31420, 11620, 31429, 31438, 31446, 31456, 31465, 31472, 31479, 31487, + 31491, 17818, 31494, 31501, 31505, 4501, 31511, 31514, 31521, 31527, + 31541, 31546, 31554, 31560, 31571, 31578, 31584, 31590, 31594, 31599, + 31603, 31612, 31619, 31625, 8953, 31632, 31640, 31647, 31653, 31658, + 31664, 31670, 31680, 31692, 31703, 31713, 11252, 31721, 31727, 17836, + 31731, 31733, 31236, 11633, 31742, 31747, 31753, 31763, 31768, 31775, + 31783, 31789, 31794, 31799, 31804, 31808, 31813, 31820, 31826, 31835, + 31843, 31847, 31854, 31864, 31870, 31879, 31885, 31892, 4771, 31898, + 31904, 31909, 31916, 31928, 31939, 31944, 31952, 31956, 31966, 31972, + 31976, 31981, 31991, 32000, 32004, 32011, 32019, 32026, 32032, 32037, + 32045, 32052, 32057, 32064, 32076, 32085, 32089, 32097, 15656, 32101, + 32111, 32115, 32123, 32130, 32137, 30379, 32148, 32153, 32157, 32164, + 32171, 26695, 31161, 32176, 32180, 32183, 27827, 32188, 32202, 32218, + 32236, 32255, 32272, 32290, 27846, 32307, 32327, 27863, 32339, 32351, + 19087, 32363, 27883, 32377, 32389, 12590, 32403, 32408, 32413, 32418, + 32424, 32430, 32436, 32440, 32448, 32454, 32461, 32466, 32476, 32483, + 32489, 12128, 32495, 32497, 32502, 32510, 32514, 31816, 32520, 32527, + 13866, 13876, 32534, 32541, 32551, 32556, 32560, 32563, 32569, 32577, + 32589, 32599, 32615, 32628, 32642, 19105, 32656, 32663, 32667, 32670, + 32675, 32679, 32686, 32693, 32700, 32707, 32717, 32722, 32727, 32732, + 32740, 32748, 32753, 32762, 28520, 3561, 32767, 32770, 32773, 32778, + 32785, 32790, 32795, 32811, 32819, 32827, 10864, 32835, 32840, 32844, + 32850, 32855, 32861, 32864, 32870, 32882, 32890, 32897, 32903, 32910, + 32921, 32935, 32948, 32954, 32963, 32969, 32978, 32990, 33001, 33011, + 33020, 33029, 33037, 33047, 33056, 33067, 673, 33074, 33081, 33087, + 33092, 33098, 33105, 33111, 33122, 33132, 33142, 33151, 33157, 33164, + 33169, 33177, 33184, 33192, 33200, 33212, 7142, 33219, 33222, 33231, + 33239, 33245, 33251, 33256, 33260, 33263, 33269, 33276, 33281, 33286, + 33293, 33298, 33302, 33314, 33325, 33334, 33342, 18008, 33347, 33355, + 33360, 33368, 33374, 33380, 33385, 13859, 9802, 33388, 33392, 33396, + 33399, 33402, 33408, 33416, 33424, 33428, 33432, 33437, 33441, 33444, + 33453, 33458, 33463, 33467, 33470, 33475, 33483, 33494, 33503, 33507, + 33513, 33519, 33523, 33529, 33537, 33559, 33583, 33594, 33603, 33609, + 33616, 33623, 33629, 33637, 33643, 33648, 33659, 33677, 33684, 33692, + 33696, 33703, 33708, 33717, 33730, 33738, 33750, 33761, 33772, 33782, + 33796, 33805, 33813, 33825, 33836, 11117, 33845, 33856, 33867, 33879, + 33889, 33898, 33908, 33913, 33917, 33925, 33936, 33946, 33952, 33957, + 33961, 33964, 33967, 33975, 33983, 33992, 34002, 34011, 34017, 34022, + 34036, 2838, 34058, 34069, 34078, 34088, 34100, 34109, 34118, 34128, + 34136, 34144, 34153, 34158, 34169, 34174, 34183, 34189, 34200, 34204, + 34207, 34217, 34226, 34234, 34244, 34254, 34262, 34271, 34278, 34284, + 34292, 34299, 34308, 34317, 34322, 34327, 34331, 34339, 34346, 34352, + 34356, 34364, 34371, 34382, 34397, 34404, 34410, 34420, 34429, 34435, + 34446, 34450, 34457, 34461, 34468, 34474, 16838, 34480, 34484, 34489, + 34495, 34502, 34506, 34510, 34518, 34526, 34532, 34541, 34548, 34555, + 34560, 34565, 34575, 28574, 34579, 34582, 34587, 34592, 34597, 34602, + 34607, 34612, 34617, 34622, 34628, 34633, 34638, 34644, 1094, 770, 34649, + 34652, 34659, 34668, 1777, 34675, 34680, 34684, 34690, 1143, 643, 34695, + 347, 34699, 34709, 34718, 34726, 34735, 34743, 34750, 34761, 34769, + 34778, 34786, 34796, 34804, 34809, 11794, 34813, 34821, 34829, 34834, + 17754, 4101, 34840, 34846, 34852, 6669, 34857, 34861, 34868, 34874, + 34880, 34884, 34893, 34899, 34904, 34911, 1336, 34917, 34923, 34928, + 34935, 34939, 1243, 6677, 34944, 34954, 34962, 34968, 34978, 34987, + 34995, 35001, 35006, 35014, 35021, 13376, 35027, 35034, 35039, 35045, + 35052, 35062, 1404, 253, 2212, 35068, 35074, 35081, 35092, 35103, 35111, + 35118, 35128, 35137, 35145, 35154, 35161, 35168, 35181, 35188, 35194, + 35205, 35224, 35229, 1148, 35233, 35238, 35246, 3984, 35250, 35255, + 35259, 35263, 1340, 29973, 35273, 35277, 35282, 35286, 35292, 3846, + 35298, 35306, 35313, 35324, 35333, 35341, 35366, 35374, 35379, 3985, 401, + 35385, 35393, 35401, 35408, 35413, 35419, 35424, 2281, 12792, 35431, + 35437, 31595, 31934, 35443, 656, 106, 35447, 35451, 35457, 595, 10679, + 35462, 35467, 35474, 35480, 35484, 35488, 1549, 35491, 35495, 18296, + 35498, 35503, 35510, 35516, 8966, 35521, 35529, 35536, 35542, 27205, + 35546, 35550, 35554, 35558, 1834, 20204, 35562, 35567, 35571, 35574, + 35582, 35590, 35595, 35604, 35612, 35615, 35622, 35629, 35641, 27284, + 35651, 35663, 35671, 35676, 35680, 35688, 35695, 35702, 35711, 35717, + 35724, 35731, 35734, 35738, 35742, 1351, 35752, 35754, 35759, 35765, + 35771, 35776, 35781, 35786, 35791, 35796, 35801, 35806, 35811, 35816, + 35821, 35826, 35831, 35836, 35841, 35847, 35853, 35859, 35865, 35870, + 35875, 35880, 35886, 35891, 35896, 35901, 35907, 35912, 35918, 35923, + 35928, 35933, 35938, 35944, 35949, 35955, 35960, 35965, 35970, 35975, + 35981, 35986, 35992, 35997, 36002, 36007, 36012, 36017, 36022, 36027, + 36032, 36037, 36043, 36049, 36055, 36060, 36065, 36070, 36075, 36081, + 36087, 36093, 36099, 36105, 36111, 36116, 36122, 36127, 36132, 36137, + 36142, 36148, 2552, 36153, 2559, 2566, 2962, 36158, 2572, 2582, 36164, + 2614, 2619, 2624, 36168, 36173, 36178, 36184, 36189, 36194, 36198, 36203, + 36209, 36214, 36219, 36224, 36230, 36235, 36239, 36243, 36248, 36253, + 36258, 36263, 36268, 36274, 36280, 36285, 36289, 36294, 36300, 36304, + 36309, 36314, 36319, 36324, 36328, 36331, 36336, 36341, 36346, 36351, + 36356, 36362, 36368, 36373, 36378, 36383, 36387, 36392, 36397, 36402, + 36407, 36412, 36417, 36421, 36426, 36431, 36436, 36440, 36444, 36448, + 36453, 36461, 36466, 36471, 36477, 36483, 36489, 36494, 36502, 36506, + 36509, 36514, 36519, 36523, 36528, 36533, 36537, 36542, 36546, 36549, + 36554, 4211, 21695, 36559, 36564, 36569, 36574, 36582, 25865, 34932, + 10318, 36587, 36592, 36596, 36601, 36605, 36609, 36614, 36618, 36621, + 36624, 36628, 36633, 36637, 36645, 36649, 36652, 36657, 36661, 36665, + 36670, 36675, 36679, 36685, 36690, 36695, 36702, 36709, 36713, 36716, + 36722, 36731, 36738, 36746, 36753, 36757, 36762, 36766, 36770, 36776, + 36781, 36787, 36791, 36797, 36802, 36807, 36811, 36818, 36824, 36830, + 36836, 36842, 36849, 36855, 36861, 36867, 36873, 36879, 36885, 36891, + 36898, 36904, 36911, 36917, 36923, 36929, 36935, 36941, 36947, 36953, + 36959, 36965, 36971, 36976, 36981, 13731, 36986, 36992, 36997, 37002, + 37007, 37012, 37015, 37021, 37026, 37034, 37039, 37043, 37048, 37054, + 37063, 37069, 37074, 37079, 37084, 37088, 37093, 37097, 37102, 37107, + 37112, 37117, 37124, 37131, 37137, 37143, 37148, 19801, 37155, 37161, + 37168, 37174, 37180, 37185, 37193, 37198, 11288, 37202, 37207, 37212, + 37218, 37223, 37228, 37232, 37237, 37242, 37248, 37253, 37258, 37263, + 37267, 37272, 37277, 37281, 37286, 37291, 37295, 37300, 37304, 37309, + 37314, 37319, 37323, 37328, 37332, 37337, 37341, 37348, 37352, 37356, + 18452, 37361, 37368, 37377, 37383, 37389, 37398, 37406, 37415, 37423, + 37428, 37432, 37439, 37445, 37453, 37457, 37460, 37465, 37469, 37478, + 37486, 37504, 37510, 1403, 37516, 37519, 37523, 27351, 27357, 37529, + 37533, 37544, 37555, 37566, 37578, 37582, 37589, 37596, 37603, 37608, + 37612, 37620, 37625, 37630, 37635, 37640, 6734, 16742, 25864, 37645, + 37650, 37654, 16733, 37659, 37665, 37670, 37676, 37681, 37687, 37692, + 37698, 37703, 37709, 37715, 37721, 37726, 37682, 37688, 37730, 37735, + 37741, 37746, 37752, 37757, 37763, 37768, 37693, 12422, 37772, 37704, + 37710, 37716, 3054, 3760, 37778, 37781, 37786, 37792, 37798, 37804, + 37811, 37817, 37823, 37829, 37835, 37841, 37847, 37853, 37859, 37865, + 37871, 37877, 37883, 37890, 37896, 37902, 37908, 37914, 37920, 37923, + 37928, 37931, 37938, 37943, 37951, 37955, 37960, 37965, 37971, 37976, + 37981, 37985, 37990, 37996, 38001, 38007, 38012, 38018, 38023, 38029, + 38035, 38039, 38044, 38049, 38054, 38059, 38063, 38068, 38073, 38078, + 38084, 38090, 38096, 38102, 38107, 38111, 38114, 38120, 38126, 38135, + 38143, 38150, 38155, 38159, 38163, 38168, 18239, 38173, 38181, 38187, + 4152, 1253, 38192, 38197, 38201, 9016, 38207, 38213, 38220, 9025, 38224, + 38230, 38236, 38243, 38249, 38258, 38266, 38278, 38287, 38291, 38298, + 38304, 38309, 38313, 38317, 38320, 38330, 38339, 38347, 37683, 38352, + 38362, 38372, 38382, 38388, 38393, 38403, 38408, 38421, 38435, 38446, + 38458, 38470, 38484, 38497, 38509, 38521, 17559, 38535, 38540, 38545, + 38549, 38553, 38557, 38561, 38567, 38572, 38577, 38582, 38587, 38592, + 38597, 1737, 32999, 38602, 38607, 38612, 37731, 38617, 38620, 38625, + 38630, 38635, 38641, 38647, 19411, 11994, 38652, 38658, 38665, 19039, + 38671, 38676, 38681, 38685, 38690, 38695, 37736, 38700, 38705, 38710, + 38716, 37742, 38721, 38724, 38731, 38739, 38745, 38751, 38757, 38768, + 38773, 38780, 38787, 38794, 38802, 38811, 38820, 38826, 38832, 38840, + 37747, 38845, 38851, 38857, 37753, 38862, 38867, 38875, 38883, 38889, + 38896, 38902, 38909, 38916, 38922, 38930, 38940, 38947, 38953, 38958, + 38964, 38969, 38974, 38981, 38990, 38998, 39003, 39009, 39016, 39024, + 39030, 39035, 39041, 39050, 39057, 33997, 39063, 39067, 39072, 39081, + 39086, 39091, 39096, 14972, 39104, 39109, 39114, 39119, 39123, 39128, + 39133, 39140, 39145, 39150, 39155, 37758, 25793, 39161, 2655, 158, 39164, + 39167, 39171, 39175, 39185, 39193, 39200, 39204, 39208, 39211, 39219, + 39226, 39233, 31888, 39242, 39245, 39252, 39258, 39263, 39267, 39274, + 39278, 39286, 39294, 39301, 39316, 39320, 39324, 39327, 39333, 39340, + 39344, 39350, 39354, 39361, 39369, 39377, 39384, 37694, 39391, 39399, + 39404, 39416, 12075, 12082, 12089, 12096, 12103, 12110, 626, 434, 39422, + 39427, 39432, 39438, 39443, 39448, 4178, 39453, 39456, 39461, 39466, + 39471, 39476, 39481, 39488, 27469, 39493, 39498, 39503, 39508, 39513, + 39519, 39524, 39530, 37934, 39536, 39541, 39547, 39553, 39563, 39568, + 39573, 39577, 39582, 39587, 39592, 39597, 39610, 39615, 27083, 20286, + 1064, 39619, 39625, 39629, 39634, 39639, 39645, 39650, 39655, 39659, + 39664, 39669, 39675, 39680, 39685, 1258, 39689, 39694, 39699, 39704, + 39708, 39713, 39718, 39723, 39729, 39735, 39740, 39744, 39748, 39753, + 39758, 39763, 39767, 39772, 39780, 39784, 39790, 39794, 39801, 39810, + 20057, 37705, 39816, 39823, 39831, 39839, 39846, 39852, 39861, 39874, + 39886, 39891, 39897, 39901, 2981, 39905, 39909, 39335, 39918, 39929, + 39940, 39945, 34065, 39950, 39955, 39959, 34185, 27362, 39964, 39971, + 39975, 39980, 37711, 25900, 39984, 39989, 39995, 40000, 40004, 40008, + 40011, 40015, 40021, 40030, 40041, 40053, 37717, 40058, 40061, 40065, + 40069, 40074, 40079, 40084, 40089, 40094, 40099, 40104, 40109, 373, + 40114, 40119, 40124, 40129, 40134, 40139, 40145, 40150, 40155, 40161, + 40166, 40172, 40177, 40183, 40188, 40193, 40198, 40203, 40208, 40213, + 40218, 40223, 40229, 40234, 40239, 40244, 40249, 40254, 40259, 40264, + 40270, 40276, 40281, 40286, 40291, 40296, 40301, 40306, 40311, 40316, + 40321, 40326, 40331, 40336, 40341, 40346, 40351, 40356, 40361, 40366, + 40376, 40386, 40392, 342, 14, 40397, 40400, 40404, 40408, 40416, 40420, + 40424, 31568, 16975, 1818, 40427, 40432, 40436, 40441, 40445, 40450, + 40454, 40459, 40463, 40466, 40468, 40472, 40477, 40481, 40492, 40495, + 40497, 40501, 40513, 40525, 40534, 40538, 40548, 40552, 40558, 40563, + 40572, 40578, 40583, 40588, 40592, 40596, 40601, 40608, 40613, 40619, + 40624, 40628, 40635, 31169, 31179, 40639, 40644, 40649, 40654, 40661, + 40665, 40672, 40679, 40685, 9171, 40689, 40698, 40706, 40721, 40735, + 40744, 40752, 40763, 40772, 40777, 40784, 40794, 8165, 40804, 40809, + 40815, 40820, 40824, 40827, 40832, 40836, 40841, 40845, 40852, 40857, + 40862, 40867, 40877, 40882, 40887, 40892, 10188, 40897, 40899, 40907, + 40910, 40913, 40921, 40936, 40944, 40954, 40956, 40959, 40963, 40969, + 40973, 40978, 40983, 41001, 41015, 41034, 41051, 41060, 41068, 41073, + 41078, 1396, 41084, 41090, 41095, 41105, 41114, 41122, 41127, 41133, + 41138, 41147, 41156, 41167, 41172, 41179, 41185, 41189, 41198, 41205, + 41213, 41220, 41233, 41241, 41245, 41255, 41261, 41266, 41270, 41278, + 41286, 41291, 41295, 41299, 41308, 41314, 41319, 41327, 41337, 41346, + 41355, 41364, 41375, 41383, 41394, 41403, 41411, 41418, 41424, 41429, + 41440, 41451, 41456, 41460, 41463, 41467, 41477, 41485, 41491, 41502, + 41513, 41524, 41535, 41546, 41557, 41568, 41579, 41591, 41603, 41615, + 41627, 41639, 41651, 41663, 41672, 41676, 41684, 41690, 41696, 41703, + 41709, 41714, 41720, 41724, 41729, 41734, 41739, 40371, 40381, 2526, + 41744, 41746, 41751, 41756, 41761, 41764, 41766, 41770, 41773, 41780, + 41784, 11644, 41788, 41794, 41801, 41807, 41817, 41822, 41828, 41832, + 41837, 41850, 31758, 41856, 41862, 41871, 41880, 21918, 41887, 41896, + 41904, 38368, 41910, 41915, 41919, 41928, 41936, 41943, 41948, 41952, + 41957, 41962, 41970, 41974, 41982, 41988, 41994, 41999, 42004, 42008, + 42011, 42016, 42029, 42045, 27953, 42062, 42074, 42091, 42103, 42117, + 27970, 27989, 42129, 42141, 2855, 42155, 42160, 42165, 42170, 42174, + 42181, 42193, 42200, 42209, 42219, 42222, 42233, 42244, 42252, 42257, + 42261, 42266, 42271, 42276, 42281, 42286, 42291, 1768, 947, 42296, 42300, + 42304, 42307, 42312, 42317, 42323, 42328, 42333, 42339, 42345, 42350, + 42354, 42359, 42364, 42369, 42373, 42376, 42382, 42387, 42392, 42397, + 42401, 42406, 42412, 42420, 32069, 42425, 42430, 42437, 42443, 42449, + 42454, 42462, 27478, 42469, 42474, 42479, 42484, 42488, 42491, 42496, + 42500, 42504, 42511, 42517, 42523, 42529, 42536, 42541, 42547, 41281, + 42551, 42555, 42560, 42573, 42578, 42584, 42592, 42599, 42607, 42617, + 42623, 42629, 42635, 42639, 42648, 42656, 42663, 42668, 42673, 12445, + 42678, 42688, 42695, 42701, 42711, 42716, 42722, 42730, 4017, 42737, + 42744, 42750, 42757, 4023, 42761, 42766, 42777, 42784, 42790, 42799, + 42803, 42806, 4609, 42813, 42820, 42826, 42832, 42840, 42850, 35414, + 42857, 42865, 42871, 42876, 42882, 42887, 42891, 31517, 42897, 42904, + 42910, 42918, 42927, 42934, 42940, 42951, 28772, 42957, 42964, 42970, + 42980, 42985, 42989, 42997, 43005, 43012, 43018, 43023, 11246, 941, + 43028, 43032, 43034, 43038, 43043, 43046, 43048, 43053, 43059, 43064, + 43069, 43076, 39484, 43082, 43087, 43091, 43096, 43100, 43109, 43113, + 43119, 43126, 43132, 43139, 43144, 43153, 43158, 43162, 43167, 43174, + 43182, 43190, 43195, 25956, 43199, 43202, 43206, 43210, 12889, 1005, + 43214, 43219, 43227, 43232, 43236, 43245, 43252, 43256, 43260, 43268, + 43275, 16260, 43285, 43289, 43293, 43301, 43309, 43315, 43320, 43324, + 43333, 16008, 43339, 43348, 43355, 43360, 43367, 43374, 43382, 43389, + 43397, 43405, 43414, 43419, 43426, 43433, 43440, 43447, 43454, 43459, + 43466, 43472, 43489, 43497, 43507, 43515, 43522, 43530, 461, 43534, + 43540, 43544, 43549, 40768, 43555, 43558, 43562, 43568, 43579, 43587, + 4028, 43595, 43601, 43607, 43617, 43623, 43632, 43641, 43651, 43658, + 43664, 43669, 4034, 4040, 43678, 43686, 43693, 43697, 14356, 43705, + 43709, 43716, 43724, 43731, 43740, 43747, 43753, 43762, 43772, 43778, + 43786, 43795, 43802, 43810, 43817, 26758, 43821, 43828, 43834, 43844, + 43853, 43861, 43872, 43876, 43886, 43893, 43898, 43903, 43909, 43916, + 43924, 43933, 43942, 43952, 43963, 43970, 43975, 43982, 3269, 43990, + 43996, 44001, 44008, 44014, 44020, 44025, 44038, 44051, 44064, 44071, + 44077, 44085, 44093, 44098, 44102, 44106, 44111, 44116, 44121, 44126, + 44131, 44136, 1365, 44141, 44145, 44149, 44153, 44157, 44161, 44165, + 44169, 44173, 44177, 44181, 44185, 44189, 44193, 44197, 44201, 44205, + 44209, 44213, 44217, 44221, 44225, 44229, 44233, 44237, 44241, 44245, + 44249, 44253, 44257, 44261, 44265, 44269, 44273, 44277, 44281, 44285, + 44289, 44293, 44297, 44301, 44305, 44309, 44313, 44317, 44321, 44325, + 44329, 44333, 44337, 44341, 44345, 44349, 44353, 44357, 44361, 44365, + 44369, 44373, 44377, 44381, 44385, 44389, 44393, 44397, 44401, 44405, + 44409, 44413, 44417, 44421, 44425, 44429, 44433, 44437, 44441, 44445, + 44449, 44453, 44457, 44461, 44465, 44469, 44473, 44477, 44481, 44485, + 44489, 44493, 44497, 44501, 44505, 44509, 44513, 44517, 44521, 44525, + 44529, 44533, 44537, 44541, 44545, 44549, 44553, 44557, 44561, 44565, + 44569, 44573, 44577, 44581, 44585, 44589, 44593, 44597, 44601, 44605, + 44609, 44613, 44617, 44621, 44625, 44629, 44633, 44637, 44641, 44645, + 44649, 44653, 44657, 44661, 44665, 44669, 44673, 44677, 44681, 44685, + 44689, 44693, 44697, 44701, 44705, 44709, 44713, 44717, 44721, 44725, + 44729, 44733, 44737, 44741, 44745, 44749, 44753, 44758, 44762, 44767, + 44771, 44776, 44780, 44785, 44789, 44795, 44800, 44804, 44809, 44813, + 44818, 44822, 44827, 44831, 44836, 44840, 44845, 44849, 44854, 44858, + 44864, 44870, 44875, 44879, 44884, 44888, 44894, 44899, 44903, 44908, + 44912, 44917, 44921, 44927, 44932, 44936, 44941, 44945, 44950, 44954, + 44959, 44963, 44969, 44974, 44978, 44983, 44987, 44993, 44998, 45002, + 45007, 45011, 45016, 45020, 45025, 45029, 45034, 45038, 45044, 45049, + 45053, 45059, 45064, 45068, 45074, 45079, 45083, 45088, 45092, 45097, + 45101, 45107, 45113, 45119, 45125, 45131, 45137, 45143, 45149, 45154, + 45158, 45163, 45167, 45173, 45178, 45182, 45187, 45191, 45196, 45200, + 45205, 45209, 45214, 45218, 45223, 45227, 45232, 45236, 45242, 45247, + 45251, 45256, 45260, 45266, 45272, 45277, 127, 63, 45281, 45283, 45287, + 45291, 45295, 45300, 45304, 45308, 45313, 11153, 45318, 45324, 1677, + 7181, 45330, 45333, 45338, 45342, 45347, 45351, 45355, 45360, 12233, + 45364, 45368, 45372, 630, 45376, 18561, 45381, 45385, 45390, 45395, + 45400, 45404, 45411, 45417, 45423, 31790, 45428, 45431, 45435, 45440, + 45446, 45450, 45453, 45461, 45467, 45472, 45476, 45479, 45483, 45489, + 45493, 45497, 3811, 3816, 15084, 45500, 45504, 45508, 45512, 45516, + 45524, 45531, 45535, 15958, 45542, 45556, 45563, 45574, 361, 45579, + 45583, 45589, 45601, 45607, 45613, 45618, 45624, 18613, 45628, 45632, + 35727, 45641, 45647, 45656, 45660, 45664, 45669, 45675, 45680, 45684, + 45689, 45693, 45697, 45704, 45710, 45715, 45726, 45741, 45756, 45771, + 45787, 45805, 12140, 45819, 45826, 45832, 45836, 45839, 45848, 45853, + 45857, 45865, 19242, 45873, 45877, 45887, 45898, 35617, 1042, 45911, + 45920, 45938, 45957, 45966, 45974, 45982, 1690, 12342, 45986, 27374, + 45989, 31556, 45994, 11478, 45999, 46005, 46010, 46016, 46021, 46027, + 46032, 46038, 46043, 46049, 46055, 46061, 46066, 46022, 46028, 46070, + 46033, 46039, 46044, 46075, 46050, 46056, 9184, 4434, 46081, 46089, + 46093, 46096, 46103, 46107, 46112, 46117, 46124, 46130, 46136, 46141, + 17850, 46145, 31573, 46149, 46153, 46157, 46164, 46170, 46174, 33931, + 46183, 10351, 46187, 10780, 46190, 46197, 46203, 46207, 14381, 46214, + 46220, 46225, 46232, 46239, 46246, 34730, 9081, 46253, 46260, 46267, + 46273, 46278, 46285, 46296, 46302, 46307, 46312, 46317, 46321, 46326, + 46333, 46023, 46337, 46347, 46356, 46367, 46373, 46381, 46388, 46393, + 46398, 46403, 46408, 46413, 46417, 46421, 46428, 46434, 46442, 2416, + 30582, 12245, 12257, 12262, 12268, 46451, 12273, 12278, 12284, 46456, + 46466, 46470, 12289, 46475, 20484, 46478, 46483, 46487, 46491, 46502, + 46510, 42204, 46518, 46523, 46530, 46537, 46541, 46544, 46552, 12153, + 46559, 46562, 46568, 46578, 6767, 46587, 46592, 46598, 46602, 46610, + 46614, 46624, 46630, 46635, 46646, 46655, 46664, 46673, 46682, 46691, + 46700, 46709, 46715, 46721, 46726, 46732, 46738, 46744, 46749, 46752, + 46759, 46765, 46769, 46774, 46781, 46788, 46792, 46795, 46805, 46818, + 46827, 46836, 46847, 46860, 46872, 46883, 46892, 46903, 46908, 46917, + 46922, 12294, 46928, 46935, 46943, 46950, 46955, 46960, 31836, 46964, + 46971, 4374, 25, 46975, 46980, 20333, 46984, 46987, 46990, 34122, 46994, + 34739, 47002, 47006, 47010, 47013, 47019, 47025, 47030, 37782, 47039, + 47047, 47053, 47060, 34105, 47064, 34342, 47068, 47077, 47081, 47089, + 47095, 47101, 47106, 47110, 34765, 47116, 47119, 47127, 47135, 47143, + 4772, 47149, 47153, 47157, 47162, 47169, 47175, 47180, 47185, 47189, + 47195, 47200, 47206, 4662, 820, 47213, 47217, 47220, 47232, 47239, 47244, + 18434, 47248, 47256, 47264, 47272, 47280, 47287, 47295, 47303, 47310, + 47318, 47326, 47334, 47342, 47350, 47358, 47366, 47374, 47382, 47390, + 47398, 47405, 47413, 47421, 47429, 47437, 47445, 47453, 47461, 47469, + 47477, 47485, 47493, 47501, 47509, 47517, 47525, 47533, 47541, 47549, + 47557, 47564, 47572, 47579, 47587, 47595, 47603, 47611, 47619, 47627, + 47635, 47643, 47654, 26794, 47659, 47662, 47669, 47673, 47679, 47683, + 47689, 47694, 47700, 47705, 47710, 47714, 47718, 47725, 47733, 47738, + 47743, 47753, 47759, 47772, 47778, 47784, 47790, 47793, 47800, 47805, + 4700, 47811, 4869, 965, 47816, 47819, 47822, 47825, 37866, 37872, 47828, + 37878, 37891, 37897, 37903, 47834, 37909, 37915, 47840, 47846, 10, 47854, + 47861, 47865, 47869, 47877, 38726, 47881, 47885, 47892, 47897, 47901, + 47906, 47912, 47917, 47923, 47928, 47932, 47936, 47940, 47945, 47949, + 47954, 47958, 47962, 47969, 47974, 47978, 47982, 47987, 47991, 47996, + 48000, 48004, 48009, 48015, 18743, 18748, 48020, 48024, 48027, 48033, + 48037, 48041, 25750, 48046, 48050, 48056, 48063, 48069, 48074, 40797, + 48084, 48089, 48097, 48101, 48104, 48108, 38741, 48116, 4738, 48121, + 48126, 48130, 48135, 48139, 48144, 16026, 48155, 48159, 48162, 48166, + 48174, 48179, 48183, 48188, 48193, 48197, 48201, 48205, 48208, 48212, + 48215, 48220, 48225, 48230, 48235, 48240, 48245, 8664, 16042, 48250, + 48253, 48259, 48264, 48270, 48275, 48281, 48286, 48292, 48297, 48303, + 48309, 48315, 48320, 48324, 48328, 48339, 48347, 48354, 48360, 48365, + 48376, 48386, 48392, 48397, 48404, 48413, 48429, 48445, 48455, 34007, + 48462, 48466, 48471, 48476, 48480, 48484, 43937, 48490, 48495, 48499, + 48506, 48511, 48516, 48520, 48523, 48527, 48533, 32802, 48537, 26108, + 48542, 48549, 48557, 48563, 48569, 48576, 48584, 48590, 48594, 48599, + 48605, 48613, 48618, 48622, 48631, 11134, 48639, 48643, 48651, 48658, + 48663, 48668, 48673, 48677, 48680, 48686, 48690, 48693, 48697, 48704, + 48709, 48716, 48720, 48726, 48730, 48736, 48741, 48746, 5107, 5114, + 48751, 48760, 48768, 48773, 48779, 48791, 48804, 48818, 48825, 48831, + 48837, 48842, 48850, 48853, 48855, 48866, 48878, 48889, 48904, 48921, + 48941, 48963, 48970, 48977, 48984, 48990, 48994, 8663, 48997, 49001, + 49005, 49010, 49014, 49018, 49021, 49025, 49039, 28019, 49058, 49071, + 49084, 49097, 28037, 49112, 2808, 49127, 49133, 49137, 49147, 49151, + 49155, 49160, 49164, 49171, 49176, 49180, 49187, 49193, 49198, 49204, + 49214, 49226, 49237, 49242, 49249, 49253, 49257, 49260, 49268, 19263, + 4141, 49273, 18782, 49286, 49293, 49300, 49306, 49310, 49314, 49319, + 49325, 49330, 49336, 49340, 49344, 49347, 49352, 49356, 49361, 49366, + 49371, 49376, 49381, 49386, 49391, 49396, 49401, 8727, 18793, 49406, + 49410, 49416, 49425, 49430, 49439, 49446, 43768, 49452, 49457, 49461, + 49468, 49473, 49480, 49488, 49494, 49498, 49501, 49505, 49510, 2886, + 49517, 49524, 49528, 49531, 49536, 49541, 49547, 49552, 49557, 49561, + 49566, 49576, 49581, 49587, 49592, 49599, 47234, 49605, 49611, 49619, + 49629, 49634, 49639, 49643, 49648, 49653, 8167, 8179, 49658, 49661, + 49668, 49674, 49683, 10268, 41421, 49691, 49695, 49699, 38789, 49707, + 49718, 49726, 43985, 49733, 49738, 49743, 49754, 49761, 49772, 38813, + 26125, 49780, 4652, 49785, 16459, 49791, 34096, 49797, 49802, 49812, + 49821, 49828, 49834, 49838, 49841, 49848, 49854, 49861, 49867, 49877, + 49885, 49891, 49897, 49902, 49906, 49913, 49918, 49924, 49931, 49937, + 49006, 49942, 49946, 16501, 16510, 16519, 16528, 16537, 16566, 622, + 16575, 49952, 49957, 49960, 49966, 49974, 1275, 49979, 49983, 49988, + 49993, 49997, 50002, 50009, 50015, 50019, 50024, 50030, 50034, 37939, + 50039, 50044, 50053, 50060, 50070, 50076, 34140, 50093, 50102, 50110, + 50116, 50121, 50128, 50134, 50142, 50151, 50159, 50167, 50173, 50177, + 50182, 50190, 35288, 38822, 50196, 50215, 19166, 50229, 50245, 50259, + 50265, 50270, 50275, 50280, 50286, 38828, 50291, 50294, 50301, 50308, + 50317, 50322, 50326, 423, 3176, 50333, 50338, 50343, 33196, 50131, 50347, + 50355, 50360, 50368, 50372, 50375, 50380, 50386, 50392, 50397, 50401, + 34213, 50404, 50409, 50413, 50416, 50421, 50425, 50430, 50435, 50439, + 50444, 50448, 50455, 50459, 50463, 25746, 25757, 50468, 50473, 50479, + 50484, 50490, 50496, 32758, 50501, 50505, 50508, 50514, 50519, 50524, + 50529, 50534, 50539, 50544, 50549, 50554, 50560, 50566, 14569, 19473, + 50571, 50576, 50581, 50586, 50591, 50596, 50601, 50606, 452, 68, 37956, + 37961, 37966, 37972, 37977, 37982, 50611, 37986, 50615, 50619, 50623, + 37991, 37997, 50637, 38008, 38013, 50645, 50650, 38019, 50655, 50660, + 50669, 50674, 50679, 50688, 50694, 50700, 50706, 38036, 50719, 50728, + 50734, 38040, 50738, 38045, 50743, 38050, 38055, 50746, 50751, 50755, + 50761, 16267, 50768, 16277, 50775, 50780, 38060, 50784, 50789, 50794, + 50799, 50804, 50808, 50813, 50818, 50824, 50829, 50834, 50840, 50846, + 50851, 50855, 50860, 50865, 50870, 50874, 50879, 50884, 50889, 50895, + 50901, 50907, 50912, 50916, 50921, 50925, 38064, 38069, 38074, 50929, + 50933, 50938, 50942, 50954, 38079, 38085, 38091, 38103, 50960, 31616, + 50964, 50969, 50973, 50978, 50985, 50990, 50995, 51000, 51004, 51008, + 51018, 51023, 51028, 51032, 51042, 51046, 51049, 51057, 51062, 38151, + 51066, 1375, 51072, 51077, 51083, 51091, 51095, 51104, 51112, 51116, + 51120, 51128, 51134, 51142, 51158, 51163, 51167, 51171, 51175, 51180, + 51186, 51201, 38188, 1685, 14601, 51205, 1254, 1269, 51217, 51225, 51232, + 51237, 9230, 51244, 51249, 10765, 978, 2641, 12321, 51256, 10658, 51261, + 51264, 51273, 1162, 51278, 49177, 51285, 51294, 51299, 51303, 51311, + 51318, 27424, 2697, 51326, 12842, 51336, 51342, 2434, 2444, 51351, 51360, + 51370, 51381, 3584, 41818, 51386, 4341, 4352, 9258, 1167, 51390, 51398, + 51405, 51410, 51414, 51418, 51423, 29054, 49512, 12412, 51431, 51440, + 51449, 51457, 51470, 51477, 51488, 51493, 51506, 51519, 51531, 51543, + 51555, 51566, 51579, 51590, 51601, 51611, 51619, 51627, 51639, 51651, + 51662, 51671, 51679, 51686, 51698, 51705, 51711, 51720, 51726, 51733, + 51746, 51751, 51761, 51766, 51772, 51777, 32098, 51781, 48682, 51788, + 51795, 51803, 51810, 2654, 51817, 51828, 51838, 51847, 51855, 51865, + 51873, 51882, 51892, 51901, 51906, 51912, 51918, 4190, 51929, 51939, + 51948, 51957, 51965, 51975, 51983, 51992, 51997, 52002, 52007, 1604, 47, + 52015, 52023, 52034, 52045, 19877, 52055, 52059, 52066, 52072, 52077, + 52081, 52092, 52102, 52111, 52122, 52127, 20306, 20311, 52134, 52143, + 52148, 52158, 52163, 52171, 52179, 52186, 52192, 1566, 271, 52196, 52201, + 52207, 46085, 52212, 52215, 2182, 2663, 52223, 52227, 52230, 1420, 52236, + 16787, 1172, 52241, 52254, 2797, 2818, 52268, 52280, 52292, 2832, 2849, + 2864, 2880, 2897, 52306, 52318, 2912, 52332, 1178, 1184, 1190, 12713, + 52337, 52342, 52347, 52351, 52366, 52381, 52396, 52411, 52426, 52441, + 52456, 52471, 52486, 52501, 52516, 52531, 52546, 52561, 52576, 52591, + 52606, 52621, 52636, 52651, 52666, 52681, 52696, 52711, 52726, 52741, + 52756, 52771, 52786, 52801, 52816, 52831, 52846, 52861, 52876, 52891, + 52906, 52921, 52936, 52951, 52966, 52981, 52996, 53011, 53026, 53041, + 53056, 53071, 53086, 53101, 53116, 53131, 53146, 53161, 53176, 53191, + 53206, 53221, 53236, 53251, 53266, 53281, 53296, 53311, 53326, 53341, + 53356, 53371, 53386, 53401, 53416, 53431, 53446, 53461, 53476, 53491, + 53506, 53521, 53536, 53551, 53566, 53581, 53596, 53611, 53626, 53641, + 53656, 53671, 53686, 53701, 53716, 53731, 53746, 53761, 53776, 53791, + 53806, 53821, 53836, 53851, 53866, 53881, 53896, 53911, 53926, 53941, + 53956, 53971, 53986, 54001, 54016, 54031, 54046, 54061, 54076, 54091, + 54106, 54121, 54136, 54151, 54166, 54181, 54196, 54211, 54226, 54241, + 54256, 54271, 54286, 54301, 54316, 54331, 54346, 54361, 54376, 54391, + 54406, 54421, 54436, 54451, 54466, 54481, 54496, 54511, 54526, 54541, + 54556, 54571, 54586, 54601, 54616, 54631, 54646, 54661, 54676, 54691, + 54706, 54721, 54736, 54751, 54766, 54781, 54796, 54811, 54826, 54841, + 54856, 54871, 54886, 54901, 54916, 54931, 54946, 54961, 54976, 54991, + 55006, 55021, 55036, 55051, 55066, 55081, 55096, 55111, 55126, 55141, + 55156, 55171, 55186, 55201, 55216, 55231, 55246, 55261, 55276, 55291, + 55306, 55321, 55336, 55351, 55366, 55381, 55396, 55411, 55426, 55441, + 55456, 55471, 55486, 55501, 55516, 55531, 55546, 55561, 55576, 55591, + 55606, 55621, 55636, 55651, 55666, 55681, 55696, 55711, 55726, 55741, + 55756, 55771, 55786, 55801, 55816, 55831, 55846, 55861, 55876, 55891, + 55906, 55921, 55936, 55951, 55966, 55981, 55996, 56011, 56026, 56041, + 56056, 56071, 56086, 56101, 56116, 56131, 56146, 56161, 56176, 56191, + 56206, 56221, 56236, 56251, 56266, 56281, 56296, 56311, 56326, 56341, + 56356, 56371, 56386, 56401, 56416, 56431, 56446, 56461, 56476, 56491, + 56506, 56521, 56536, 56551, 56566, 56581, 56596, 56611, 56626, 56641, + 56656, 56671, 56686, 56701, 56716, 56731, 56746, 56761, 56776, 56791, + 56806, 56821, 56836, 56851, 56866, 56881, 56896, 56911, 56926, 56941, + 56956, 56971, 56986, 57001, 57016, 57031, 57046, 57061, 57076, 57091, + 57106, 57121, 57136, 57151, 57166, 57181, 57196, 57211, 57226, 57241, + 57256, 57271, 57286, 57301, 57316, 57331, 57346, 57361, 57376, 57391, + 57406, 57421, 57436, 57451, 57466, 57481, 57496, 57511, 57526, 57541, + 57556, 57571, 57586, 57601, 57616, 57631, 57646, 57661, 57676, 57691, + 57706, 57721, 57736, 57751, 57766, 57781, 57796, 57811, 57826, 57841, + 57856, 57871, 57886, 57901, 57916, 57931, 57946, 57961, 57976, 57991, + 58006, 58021, 58036, 58051, 58066, 58081, 58096, 58111, 58126, 58141, + 58156, 58171, 58186, 58201, 58216, 58231, 58246, 58261, 58276, 58291, + 58306, 58321, 58336, 58351, 58366, 58381, 58396, 58411, 58426, 58441, + 58456, 58471, 58486, 58501, 58516, 58531, 58546, 58561, 58576, 58591, + 58606, 58621, 58636, 58651, 58666, 58681, 58696, 58711, 58726, 58741, + 58756, 58771, 58786, 58801, 58816, 58831, 58846, 58861, 58876, 58891, + 58906, 58921, 58936, 58951, 58966, 58981, 58996, 59011, 59026, 59041, + 59056, 59071, 59086, 59101, 59116, 59131, 59146, 59161, 59176, 59191, + 59206, 59221, 59236, 59251, 59266, 59281, 59296, 59311, 59326, 59341, + 59356, 59371, 59386, 59401, 59416, 59431, 59446, 59461, 59476, 59491, + 59506, 59521, 59536, 59551, 59566, 59581, 59596, 59611, 59626, 59641, + 59656, 59671, 59686, 59701, 59716, 59731, 59746, 59761, 59776, 59791, + 59806, 59821, 59836, 59851, 59866, 59881, 59896, 59911, 59926, 59941, + 59956, 59971, 59986, 60001, 60016, 60031, 60046, 60061, 60076, 60091, + 60106, 60121, 60136, 60151, 60166, 60182, 60198, 60214, 60230, 60246, + 60262, 60278, 60294, 60310, 60326, 60342, 60358, 60374, 60390, 60406, + 60422, 60438, 60454, 60470, 60486, 60502, 60518, 60534, 60550, 60566, + 60582, 60598, 60614, 60630, 60646, 60662, 60678, 60694, 60710, 60726, + 60742, 60758, 60774, 60790, 60806, 60822, 60838, 60854, 60870, 60886, + 60902, 60918, 60934, 60950, 60966, 60982, 60998, 61014, 61030, 61046, + 61062, 61078, 61094, 61110, 61126, 61142, 61158, 61174, 61190, 61206, + 61222, 61238, 61254, 61270, 61286, 61302, 61318, 61334, 61350, 61366, + 61382, 61398, 61414, 61430, 61446, 61462, 61478, 61494, 61510, 61526, + 61542, 61558, 61574, 61590, 61606, 61622, 61638, 61654, 61670, 61686, + 61702, 61718, 61734, 61750, 61766, 61782, 61798, 61814, 61830, 61846, + 61862, 61878, 61894, 61910, 61926, 61942, 61958, 61974, 61990, 62006, + 62022, 62038, 62054, 62070, 62086, 62102, 62118, 62134, 62150, 62166, + 62182, 62198, 62214, 62230, 62246, 62262, 62278, 62294, 62310, 62326, + 62342, 62358, 62374, 62390, 62406, 62422, 62438, 62454, 62470, 62486, + 62502, 62518, 62534, 62550, 62566, 62582, 62598, 62614, 62630, 62646, + 62662, 62678, 62694, 62710, 62726, 62742, 62758, 62774, 62790, 62806, + 62822, 62838, 62854, 62870, 62886, 62902, 62918, 62934, 62950, 62966, + 62982, 62998, 63014, 63030, 63046, 63062, 63078, 63094, 63110, 63126, + 63142, 63158, 63174, 63190, 63206, 63222, 63238, 63254, 63270, 63286, + 63302, 63318, 63334, 63350, 63366, 63382, 63398, 63414, 63430, 63446, + 63462, 63478, 63494, 63510, 63526, 63542, 63558, 63574, 63590, 63606, + 63622, 63638, 63654, 63670, 63686, 63702, 63718, 63734, 63750, 63766, + 63782, 63798, 63814, 63830, 63846, 63862, 63878, 63894, 63910, 63926, + 63942, 63958, 63974, 63990, 64006, 64022, 64038, 64054, 64070, 64086, + 64102, 64118, 64134, 64150, 64166, 64182, 64198, 64214, 64230, 64246, + 64262, 64278, 64294, 64310, 64326, 64342, 64358, 64374, 64390, 64406, + 64422, 64438, 64454, 64470, 64486, 64502, 64518, 64534, 64550, 64566, + 64582, 64598, 64614, 64630, 64646, 64662, 64678, 64694, 64710, 64726, + 64742, 64758, 64774, 64790, 64806, 64822, 64838, 64854, 64870, 64886, + 64902, 64918, 64934, 64950, 64966, 64982, 64998, 65014, 65030, 65046, + 65062, 65078, 65094, 65110, 65126, 65142, 65158, 65174, 65190, 65206, + 65222, 65238, 65254, 65270, 65286, 65302, 65318, 65334, 65350, 65366, + 65382, 65398, 65414, 65430, 65446, 65462, 65478, 65494, 65510, 65526, + 65542, 65558, 65574, 65590, 65606, 65622, 65638, 65654, 65670, 65686, + 65702, 65718, 65734, 65750, 65766, 65782, 65798, 65814, 65830, 65846, + 65862, 65878, 65894, 65910, 65926, 65942, 65958, 65974, 65990, 66006, + 66022, 66038, 66054, 66070, 66086, 66102, 66118, 66134, 66150, 66166, + 66182, 66198, 66214, 66230, 66246, 66262, 66278, 66294, 66310, 66326, + 66342, 66358, 66374, 66390, 66406, 66422, 66438, 66454, 66470, 66486, + 66502, 66518, 66534, 66550, 66566, 66582, 66598, 66614, 66630, 66646, + 66662, 66678, 66694, 66710, 66726, 66742, 66758, 66774, 66790, 66806, + 66822, 66838, 66854, 66870, 66886, 66902, 66918, 66934, 66950, 66966, + 66982, 66998, 67014, 67030, 67046, 67062, 67078, 67094, 67110, 67126, + 67142, 67158, 67174, 67190, 67206, 67222, 67238, 67254, 67270, 67286, + 67302, 67318, 67334, 67350, 67366, 67382, 67398, 67414, 67430, 67446, + 67462, 67478, 67494, 67510, 67526, 67542, 67558, 67574, 67590, 67606, + 67622, 67638, 67654, 67670, 67686, 67702, 67718, 67734, 67750, 67766, + 67782, 67798, 67814, 67830, 67846, 67862, 67878, 67894, 67910, 67926, + 67942, 67958, 67974, 67990, 68006, 68022, 68038, 68054, 68070, 68086, + 68102, 68118, 68134, 68150, 68166, 68182, 68198, 68214, 68230, 68246, + 68262, 68278, 68294, 68310, 68326, 68342, 68358, 68374, 68390, 68406, + 68422, 68438, 68454, 68470, 68486, 68502, 68518, 68534, 68550, 68566, + 68582, 68598, 68614, 68630, 68646, 68662, 68678, 68694, 68710, 68726, + 68742, 68758, 68774, 68790, 68806, 68822, 68838, 68847, 68862, 68876, + 68885, 17689, 68889, 68894, 68900, 68906, 68916, 68924, 17946, 18677, + 9277, 68937, 1428, 1432, 68945, 4270, 33321, 8104, 68951, 68956, 68961, + 68966, 68971, 68977, 68982, 68988, 68993, 68999, 69004, 69009, 69014, + 69019, 69025, 69030, 69035, 69040, 69045, 69050, 69055, 69060, 69066, + 69071, 69077, 69084, 2701, 69089, 69095, 9652, 69099, 69104, 69111, + 69119, 4281, 4286, 4291, 4296, 65, 69123, 69129, 69134, 69139, 69143, + 69148, 69152, 69156, 12785, 69160, 69170, 69183, 69194, 69207, 69214, + 69220, 69228, 69235, 12246, 69244, 69249, 69255, 69261, 69267, 69272, + 69277, 69282, 69287, 69291, 69296, 69301, 69306, 69312, 69318, 69324, + 69329, 69333, 69338, 69343, 69347, 69352, 69357, 69362, 69366, 12801, + 12812, 12817, 1471, 69370, 69376, 1476, 19711, 69381, 19720, 1486, 69386, + 69392, 69397, 1507, 69403, 1513, 1519, 12847, 69408, 69417, 69425, 69433, + 69440, 69444, 69448, 69454, 69459, 37599, 69464, 69471, 69479, 69486, + 69491, 69495, 69499, 69508, 69513, 69518, 69523, 1524, 280, 69528, 69533, + 69537, 19846, 987, 69541, 69548, 69553, 69557, 19904, 1528, 46361, 69560, + 69565, 69575, 69584, 69589, 69593, 69599, 1533, 49458, 69604, 69613, + 69619, 69624, 69629, 13086, 13092, 69635, 69648, 69660, 69677, 69694, + 69711, 69728, 69745, 69762, 69779, 69796, 69813, 69830, 69847, 69864, + 69881, 69898, 69915, 69932, 69949, 69966, 69983, 70000, 70017, 70034, + 70051, 70068, 70085, 70102, 70119, 70136, 70153, 70170, 70187, 70204, + 70221, 70238, 70255, 70272, 70289, 70306, 70323, 70340, 70357, 70374, + 70391, 70408, 70425, 70442, 70459, 70476, 70493, 70504, 70514, 70519, + 1538, 70523, 70528, 70534, 70539, 70544, 70551, 10677, 1543, 70557, + 70566, 33713, 70571, 70582, 13108, 70592, 70597, 70603, 70608, 70615, + 70621, 70626, 1548, 20198, 70631, 70637, 13118, 70643, 70648, 70653, + 70658, 70663, 70668, 70673, 70678, 1553, 4761, 70683, 70688, 70694, + 70699, 70704, 70709, 70714, 70719, 70724, 70729, 70734, 70740, 70746, + 70752, 70757, 70761, 70766, 70771, 70775, 70780, 70785, 70790, 70795, + 70799, 70804, 70810, 70815, 70820, 70824, 70829, 70834, 70840, 70845, + 70850, 70856, 70862, 70867, 70871, 70876, 70881, 70886, 70890, 70895, + 70900, 70905, 70911, 70917, 70922, 70926, 70930, 70935, 70940, 70945, + 35492, 70949, 70954, 70959, 70965, 70970, 70975, 70979, 70984, 70989, + 70995, 71000, 71005, 71011, 71017, 71022, 71026, 71031, 71036, 71040, + 71045, 71050, 71055, 71061, 71067, 71072, 71076, 71081, 71086, 71090, + 71095, 71100, 71105, 71110, 71114, 71117, 71120, 71125, 71130, 38335, + 71137, 71145, 50085, 71151, 3928, 33656, 71164, 71171, 71177, 71183, + 4107, 71188, 13260, 71194, 71204, 71219, 71227, 13265, 71238, 71243, + 71254, 71266, 71278, 71290, 2903, 71302, 71307, 31699, 71319, 71325, + 71331, 71336, 71345, 71352, 71357, 71362, 71367, 71372, 71377, 71382, + 1570, 19338, 71387, 71392, 71397, 71402, 71408, 71413, 71419, 71424, + 71429, 71435, 71440, 71445, 49532, 71449, 71453, 71458, 71462, 20346, + 71467, 71470, 71475, 71483, 71491, 1574, 13301, 13307, 1579, 71499, + 71506, 71511, 71520, 71530, 71537, 71542, 71547, 1584, 71554, 71559, + 20466, 71563, 71568, 71575, 71581, 71585, 71598, 71604, 71615, 71625, + 71632, 20488, 10571, 10578, 4355, 4361, 71639, 1589, 71644, 71653, 71659, + 71667, 71674, 71680, 71687, 71699, 71705, 71710, 71717, 71729, 71740, + 71750, 71759, 71769, 71779, 4249, 71787, 37393, 37402, 20528, 71800, + 71805, 71810, 71815, 71820, 71825, 71830, 1594, 1598, 71835, 71839, + 71842, 71853, 71858, 20554, 1608, 71866, 71871, 71876, 71888, 20587, + 71895, 71898, 71904, 71910, 71915, 71923, 1613, 71928, 71933, 71941, + 71949, 71956, 71965, 71973, 71982, 71986, 1618, 71995, 1623, 25931, + 72000, 72007, 72013, 20674, 72021, 72031, 72037, 72042, 72050, 72057, + 72066, 72074, 72084, 72093, 72103, 72112, 72123, 72133, 72143, 72152, + 72162, 72176, 72189, 72198, 72206, 72216, 72225, 72237, 72248, 72259, + 72269, 19966, 72274, 13453, 72283, 72289, 72294, 72301, 72307, 72314, + 72320, 19555, 72330, 72336, 72341, 72352, 72359, 72366, 72371, 72379, + 13470, 13475, 72387, 72393, 72397, 4339, 4350, 20750, 49635, 72405, + 72411, 72416, 72424, 72431, 14582, 72436, 72442, 72448, 1634, 72453, + 72456, 72462, 72467, 72472, 72477, 72482, 72487, 72492, 72497, 72502, + 72508, 72514, 1333, 72519, 72524, 72529, 72535, 72540, 72545, 72550, + 72555, 72560, 72565, 1643, 18, 72571, 72575, 72580, 72584, 72588, 72592, + 38621, 72597, 28238, 72602, 72607, 72611, 72614, 72618, 72622, 72627, + 72631, 72636, 72640, 72643, 72649, 42308, 42313, 42318, 72652, 72659, + 72665, 72673, 49230, 72683, 72689, 42324, 38885, 38636, 38642, 42340, + 38648, 72694, 72699, 72703, 38918, 72710, 72713, 72717, 72725, 72732, + 72737, 72740, 72745, 72750, 72754, 72758, 72761, 72771, 72783, 72790, + 72796, 38653, 72803, 40604, 72806, 9669, 13815, 72809, 72813, 72818, + 4159, 72822, 72825, 16320, 72832, 72839, 72852, 72867, 72881, 72897, + 72912, 72921, 72929, 72937, 72946, 72950, 72959, 72965, 72970, 72980, + 72993, 73005, 73012, 73017, 73026, 73039, 44032, 73057, 73062, 73069, + 73075, 73080, 895, 73085, 73093, 73100, 73107, 33137, 914, 73113, 73119, + 73124, 73134, 73142, 73148, 73153, 38672, 6858, 38686, 73157, 73167, + 73172, 73180, 73190, 73205, 73211, 73217, 73224, 38696, 73229, 73235, + 37737, 73239, 73243, 73248, 73257, 73264, 73269, 73273, 73278, 73286, + 20531, 73293, 73298, 73302, 6899, 38722, 73306, 73312, 341, 73322, 73329, + 73336, 73342, 73349, 73354, 73363, 15941, 69569, 69579, 73369, 73377, + 73381, 73385, 73389, 73393, 73398, 73402, 73408, 73416, 73421, 73426, + 73433, 73438, 73442, 73447, 73451, 73455, 73461, 73467, 73478, 73484, + 73489, 73493, 73498, 73502, 38846, 73506, 38852, 38858, 73511, 73517, + 73524, 73529, 73533, 37754, 20185, 73536, 73540, 73545, 73552, 73558, + 73562, 73567, 48699, 73573, 73577, 73584, 73588, 73593, 73599, 73605, + 73611, 73623, 73632, 73642, 73648, 73655, 73660, 73665, 73669, 73672, + 73678, 73685, 73690, 73695, 73702, 73709, 73716, 73722, 73727, 73732, + 73740, 38863, 2531, 73745, 73750, 73756, 73761, 73767, 73772, 73777, + 73782, 73788, 38884, 73793, 73799, 73805, 73811, 38954, 73816, 73821, + 73826, 38965, 73831, 73836, 73841, 73847, 73853, 38970, 73858, 73863, + 73868, 39025, 39031, 73873, 73878, 39036, 39058, 33998, 39064, 39068, + 73883, 14258, 73887, 73895, 73901, 73909, 73916, 73922, 73932, 73938, + 73945, 12685, 39082, 73951, 73964, 73973, 73979, 73988, 73994, 74000, + 74007, 28581, 74015, 74022, 74032, 74040, 74043, 39026, 74048, 74055, + 74060, 74064, 74068, 74073, 74077, 4478, 74082, 74087, 74092, 42402, + 42407, 74096, 42421, 74101, 42426, 74106, 74112, 42438, 42444, 42450, + 74117, 74123, 27479, 74134, 74137, 74149, 74157, 39105, 74161, 74170, + 74180, 74189, 39115, 74194, 74201, 74210, 74216, 74224, 74231, 74238, + 6950, 5174, 74243, 39037, 74249, 74252, 74258, 74265, 74270, 74275, + 28485, 74279, 74285, 74291, 74296, 74301, 74305, 74311, 74317, 40488, + 74322, 43626, 45463, 45469, 39146, 39151, 74326, 74330, 74334, 74337, + 74350, 74356, 74360, 74363, 74368, 40870, 74372, 37759, 25872, 74378, + 6879, 6887, 10377, 74381, 74386, 74391, 74396, 74401, 74406, 74411, + 74416, 74421, 74426, 74432, 74437, 74442, 74448, 74453, 74458, 74463, + 74468, 74473, 74478, 74484, 74489, 74495, 74500, 74505, 74510, 74515, + 74520, 74525, 74530, 74535, 74540, 74545, 74551, 74556, 74561, 74566, + 74571, 74576, 74581, 74587, 74592, 74597, 74602, 74607, 74612, 74617, + 74622, 74627, 74632, 74638, 74643, 74648, 74653, 74658, 74664, 74670, + 74675, 74681, 74686, 74691, 74696, 74701, 74706, 1421, 159, 74711, 74715, + 74719, 74723, 30435, 74727, 74731, 74736, 74740, 74745, 74749, 74754, + 74759, 74764, 74769, 74773, 74777, 74782, 74786, 16020, 74791, 74795, + 74802, 74812, 18315, 74821, 74830, 74839, 74843, 74848, 74853, 74857, + 74861, 30215, 3259, 74865, 74871, 21763, 74875, 74884, 74892, 74898, + 74903, 74915, 74927, 74932, 74936, 74941, 74945, 74951, 74957, 74962, + 74972, 74982, 74988, 74996, 75001, 75005, 75011, 75016, 75023, 75029, + 75034, 75041, 75050, 75059, 75067, 75071, 18871, 75074, 75083, 75091, + 75103, 75114, 75125, 75134, 75138, 75147, 75155, 75165, 75173, 75180, + 75190, 75196, 75201, 75209, 75216, 75225, 75231, 75236, 75243, 75249, + 75260, 60, 37536, 75266, 31986, 31996, 75272, 75280, 75287, 75293, 75297, + 75307, 75318, 75326, 75335, 75340, 75345, 75350, 75354, 75358, 75366, + 21710, 75373, 75377, 75383, 75393, 75400, 75407, 75413, 75419, 42501, + 75423, 75425, 75428, 75434, 75438, 75449, 75459, 75465, 75472, 75479, + 15957, 75487, 75493, 75502, 75511, 75517, 11579, 75523, 75529, 75534, + 75539, 75546, 75551, 75558, 75564, 75569, 75577, 75590, 75599, 75608, + 72138, 72148, 75618, 75624, 75633, 75639, 75645, 75652, 75659, 75666, + 75673, 75680, 75685, 75689, 75693, 75696, 75706, 75710, 75722, 75731, + 10038, 75740, 75751, 75756, 75760, 72157, 75766, 75773, 75782, 75790, + 51037, 75798, 75802, 75807, 75812, 75822, 75830, 75842, 75847, 75851, + 75855, 75861, 75869, 75876, 75888, 75896, 75907, 75914, 75920, 75930, + 75936, 75940, 75949, 75958, 75965, 75971, 75976, 75980, 75984, 75988, + 75997, 76006, 76015, 76022, 76028, 76034, 76040, 76045, 76052, 76058, + 76066, 76073, 76079, 15046, 76084, 76090, 76094, 17172, 76098, 76103, + 76113, 76118, 76127, 76133, 76139, 76147, 76154, 76158, 76162, 76169, + 76175, 76183, 76190, 76196, 76207, 76211, 76215, 76219, 76222, 76228, + 76233, 76238, 76242, 76246, 76255, 76263, 76270, 76276, 76283, 29245, + 48840, 76288, 76296, 76300, 76304, 76307, 76315, 76322, 76328, 76337, + 76345, 76351, 76356, 76360, 76365, 76370, 76374, 76378, 76382, 76387, + 76396, 76400, 76407, 45567, 76411, 76417, 76425, 76429, 76435, 76443, + 76449, 76454, 76465, 76473, 76479, 76488, 27626, 76496, 76503, 76510, + 76517, 76524, 76531, 52526, 15772, 76538, 76545, 76550, 42537, 4721, + 76556, 76561, 76566, 76572, 76578, 76584, 76589, 76594, 76599, 76604, + 76610, 76615, 76621, 76626, 76632, 76637, 76642, 76647, 76652, 76657, + 76662, 76667, 76673, 76678, 76684, 76689, 76694, 76699, 76704, 76709, + 76714, 76720, 76725, 76730, 76735, 76740, 76745, 76750, 76755, 76760, + 76765, 76770, 76776, 76781, 76786, 76791, 76796, 76801, 76806, 76811, + 76816, 76822, 76827, 76832, 76837, 76842, 76847, 76852, 76857, 76862, + 76867, 76872, 76877, 76882, 76888, 1883, 305, 76893, 46479, 46484, 76897, + 76902, 9293, 76906, 3628, 76911, 76916, 76920, 76929, 76940, 76957, + 76975, 76983, 75794, 76990, 76993, 77003, 77010, 77019, 77035, 77044, + 77054, 77059, 77072, 77082, 77091, 77099, 77113, 77121, 77130, 77134, + 77137, 77144, 77150, 77161, 77168, 77180, 77191, 77202, 77211, 77218, + 1173, 812, 77228, 2744, 77232, 77237, 77246, 997, 9059, 25308, 77254, + 77262, 77276, 77289, 77293, 77298, 77303, 77308, 77314, 77320, 77325, + 9661, 18358, 77330, 77334, 77338, 77346, 10098, 77351, 77357, 77366, + 77374, 1657, 13314, 1179, 4393, 77378, 77382, 77391, 77401, 2482, 32836, + 77410, 77416, 20438, 32851, 77422, 4558, 13696, 77428, 77435, 71848, + 77439, 77443, 77449, 77454, 77459, 3861, 163, 3887, 77464, 77476, 77480, + 77484, 77490, 77495, 33733, 77499, 13684, 2938, 4, 77504, 77514, 77525, + 77536, 77546, 77552, 77563, 77570, 77576, 77582, 2306, 77587, 77595, + 77602, 77608, 77618, 77628, 77638, 77647, 28568, 1185, 77652, 77656, + 77660, 77666, 77670, 2961, 2967, 9658, 2337, 77674, 77678, 77687, 77695, + 77706, 77714, 77722, 77728, 77733, 77744, 77755, 77763, 77769, 77774, + 11356, 77784, 77792, 77796, 77800, 77805, 77809, 77821, 34196, 18257, + 77828, 77838, 77844, 77850, 7977, 11490, 77860, 77871, 77882, 77892, + 77901, 77905, 77912, 999, 2731, 77922, 77927, 77935, 71564, 77943, 77948, + 77959, 77966, 77980, 16968, 529, 77990, 77997, 78001, 78005, 78013, + 78022, 4433, 78030, 78036, 20483, 78041, 78055, 78062, 78068, 78076, + 78085, 78094, 78101, 78113, 78123, 78131, 78138, 78146, 78153, 4357, 116, + 78161, 78172, 78176, 78188, 78194, 1804, 227, 78199, 10709, 78204, 3006, + 78208, 78215, 78221, 78232, 78242, 78250, 78257, 10049, 78264, 78273, + 78281, 4438, 78294, 4455, 78298, 78303, 78309, 78314, 78319, 78324, 3011, + 573, 78330, 78343, 78347, 78352, 78357, 3016, 1882, 763, 78361, 4459, + 78369, 78375, 78379, 799, 78389, 78398, 78403, 3878, 78407, 78411, 17989, + 17996, 9317, 78419, 4490, 4367, 15644, 78427, 78434, 78439, 28632, 78443, + 78450, 78456, 13952, 78461, 14017, 204, 78466, 78478, 78484, 78492, 3028, + 1699, 78500, 78502, 78507, 78512, 78517, 78523, 78528, 78533, 78538, + 78543, 78548, 78553, 78559, 78564, 78569, 78574, 78579, 78584, 78589, + 78594, 78599, 78605, 78610, 78615, 78620, 78626, 78631, 78637, 78642, + 78647, 78652, 78657, 78662, 78667, 78672, 78678, 78683, 78689, 78694, + 78699, 78704, 78709, 78714, 78719, 78724, 78729, 9730, 9743, 4506, 4511, + 4516, 4521, 26, 78735, 78741, 78746, 78751, 78756, 78762, 78767, 78771, + 78775, 78780, 78786, 78790, 78796, 78801, 78806, 78812, 78817, 78821, + 78826, 78831, 78835, 78838, 78840, 78844, 78847, 78854, 78859, 78863, + 78868, 78872, 78876, 78880, 78886, 78897, 78917, 78936, 78957, 78970, + 78982, 78991, 78995, 78998, 39423, 79001, 39428, 79008, 79013, 39433, + 79022, 79031, 39439, 79036, 39444, 79045, 79050, 13941, 79054, 79059, + 79064, 39449, 79068, 79077, 50696, 79081, 79084, 79088, 9325, 79094, + 79097, 79102, 79107, 79112, 79116, 4179, 39454, 79119, 79123, 79126, + 79137, 79142, 79146, 79152, 79160, 79173, 79177, 79185, 79194, 79200, + 79205, 79211, 79215, 79221, 79227, 79235, 79240, 79244, 79251, 79257, + 79265, 79274, 79282, 39457, 79289, 79299, 79308, 79316, 79327, 79340, + 79345, 79350, 79354, 79363, 79369, 79376, 79389, 79401, 79412, 79424, + 79431, 79440, 79449, 79458, 79465, 79471, 79478, 79486, 79493, 79501, + 79510, 79518, 79525, 79533, 79542, 79550, 79559, 79569, 79578, 79586, + 79593, 79601, 79610, 79618, 79627, 79637, 79646, 79654, 79663, 79673, + 79682, 79692, 79703, 79713, 79722, 79730, 79737, 79745, 79754, 79762, + 79771, 79781, 79790, 79798, 79807, 79817, 79826, 79836, 79847, 79857, + 79866, 79874, 79883, 79893, 79902, 79912, 79923, 79933, 79942, 79952, + 79963, 79973, 79984, 79996, 80007, 80017, 80026, 80034, 80041, 80049, + 80058, 80066, 80075, 80085, 80094, 80102, 80111, 80121, 80130, 80140, + 80151, 80161, 80170, 80178, 80187, 80197, 80206, 80216, 80227, 80237, + 80246, 80256, 80267, 80277, 80288, 80300, 80311, 80321, 80330, 80338, + 80347, 80357, 80366, 80376, 80387, 80397, 80406, 80416, 80427, 80437, + 80448, 80460, 80471, 80481, 80490, 80500, 80511, 80521, 80532, 80544, + 80555, 80565, 80576, 80588, 80599, 80611, 80624, 80636, 80647, 80657, + 80666, 80674, 80681, 80689, 80698, 80706, 80715, 80725, 80734, 80742, + 80751, 80761, 80770, 80780, 80791, 80801, 80810, 80818, 80827, 80837, + 80846, 80856, 80867, 80877, 80886, 80896, 80907, 80917, 80928, 80940, + 80951, 80961, 80970, 80978, 80987, 80997, 81006, 81016, 81027, 81037, + 81046, 81056, 81067, 81077, 81088, 81100, 81111, 81121, 81130, 81140, + 81151, 81161, 81172, 81184, 81195, 81205, 81216, 81228, 81239, 81251, + 81264, 81276, 81287, 81297, 81306, 81314, 81323, 81333, 81342, 81352, + 81363, 81373, 81382, 81392, 81403, 81413, 81424, 81436, 81447, 81457, + 81466, 81476, 81487, 81497, 81508, 81520, 81531, 81541, 81552, 81564, + 81575, 81587, 81600, 81612, 81623, 81633, 81642, 81652, 81663, 81673, + 81684, 81696, 81707, 81717, 81728, 81740, 81751, 81763, 81776, 81788, + 81799, 81809, 81820, 81832, 81843, 81855, 81868, 81880, 81891, 81903, + 81916, 81928, 81941, 81955, 81968, 81980, 81991, 82001, 82010, 82018, + 82025, 82030, 9090, 82037, 82042, 39467, 82048, 82053, 39472, 82059, + 82066, 25430, 31434, 82071, 82077, 82083, 82091, 82097, 82103, 82110, + 82117, 82122, 82127, 82131, 82136, 82140, 82143, 82147, 82152, 82161, + 82170, 82178, 82184, 82196, 82207, 82211, 3321, 9065, 82216, 82219, + 82222, 82224, 82228, 82232, 82236, 82242, 82247, 31497, 82252, 82256, + 82259, 82264, 82268, 82275, 82281, 82285, 7060, 82289, 82294, 39494, + 82298, 82305, 82314, 82322, 82328, 82339, 82347, 82356, 82364, 82371, + 82378, 82384, 82389, 82400, 39499, 82405, 82416, 82428, 82436, 82447, + 82456, 82464, 82475, 82480, 82488, 2696, 82493, 82502, 41891, 82515, + 82519, 82531, 82539, 82544, 82552, 82563, 21928, 82572, 82578, 82585, + 82593, 82599, 39509, 82604, 4484, 68920, 82611, 82614, 82622, 82635, + 82648, 82661, 82674, 82681, 82692, 82701, 82706, 52343, 52348, 82710, + 82714, 82722, 82729, 82738, 82746, 82752, 82761, 82769, 82776, 82784, + 82788, 82797, 82806, 82816, 82829, 82842, 82852, 39514, 82858, 82865, + 82871, 82877, 39520, 82882, 82885, 82889, 82897, 82906, 52114, 82914, + 82923, 82931, 82938, 82946, 82956, 82965, 82974, 41043, 82983, 82994, + 83009, 83019, 10747, 26246, 83028, 83033, 83038, 83042, 19547, 83047, + 83052, 83058, 83063, 83068, 83074, 83079, 83084, 26206, 83089, 83096, + 83104, 83112, 83120, 83125, 83132, 83139, 83144, 1717, 83148, 83152, + 83160, 83168, 39537, 83174, 83180, 83192, 83198, 83205, 83209, 83216, + 83221, 83228, 83234, 83241, 83252, 83262, 83272, 83284, 83290, 83298, + 83307, 83313, 83323, 83333, 39564, 83342, 83351, 83357, 83369, 83380, + 83387, 83392, 83396, 83404, 83415, 83421, 83426, 83431, 83438, 83446, + 83458, 83468, 83477, 83486, 83494, 83501, 41705, 29006, 83507, 83512, + 83516, 83520, 83525, 83533, 83539, 83550, 83563, 83568, 83575, 39569, + 83580, 83592, 83601, 83609, 83619, 83630, 83643, 83650, 83659, 83668, + 83676, 83681, 83687, 83691, 1410, 83696, 83701, 83706, 83711, 83717, + 83722, 83727, 83733, 83739, 83744, 83748, 83753, 83758, 83763, 69504, + 83768, 83773, 83778, 83783, 83789, 83795, 83800, 83804, 83809, 19546, + 83814, 83820, 83825, 83831, 83836, 83841, 83846, 83851, 83855, 83861, + 83866, 83875, 83880, 83885, 83890, 83895, 83899, 83906, 83912, 4836, + 20800, 3286, 83917, 83921, 83926, 83930, 83934, 83938, 56143, 83942, + 83867, 83944, 83954, 39578, 83957, 83962, 83971, 83977, 7019, 39583, + 83981, 83987, 83992, 83998, 84003, 84007, 84014, 84019, 84029, 84038, + 84042, 84048, 84054, 84060, 84064, 84072, 84079, 84087, 84095, 39588, + 84102, 84105, 84116, 84123, 84129, 84134, 84138, 84144, 84152, 84159, + 84164, 84168, 84177, 84185, 84191, 84196, 84203, 84211, 39593, 84218, + 28458, 84230, 84236, 84241, 84247, 84254, 84260, 25894, 33344, 84266, + 84271, 84277, 84281, 84293, 83900, 83907, 26138, 84303, 84308, 84315, + 84321, 84328, 84334, 84345, 84350, 84358, 10447, 84363, 84366, 84372, + 84376, 84380, 84383, 84389, 84395, 39282, 4837, 1425, 16069, 84402, + 84408, 84414, 84420, 84426, 84432, 84438, 84444, 84450, 84455, 84460, + 84465, 84470, 84475, 84480, 84485, 84490, 84495, 84500, 84505, 84510, + 84515, 84521, 84526, 84531, 84537, 84542, 84547, 84553, 84559, 84565, + 84571, 84577, 84583, 84589, 84595, 84601, 84606, 84611, 84617, 84622, + 84627, 84633, 84638, 84643, 84648, 84653, 84658, 84663, 84668, 84673, + 84678, 84683, 84688, 84693, 84699, 84704, 84709, 84714, 84720, 84725, + 84730, 84735, 84740, 84746, 84751, 84756, 84761, 84766, 84771, 84776, + 84781, 84786, 84791, 84796, 84801, 84806, 84811, 84816, 84821, 84826, + 84831, 84836, 84841, 84847, 84852, 84857, 84862, 84867, 84872, 84877, + 84882, 1065, 148, 84887, 84891, 84895, 84900, 84908, 84912, 84924, 84931, + 84939, 84943, 84956, 84964, 84969, 84974, 32049, 84978, 84983, 84987, + 84992, 84996, 85004, 85008, 25438, 85013, 85017, 72401, 85021, 85024, + 85032, 85040, 85048, 85053, 85058, 85065, 85072, 85078, 85084, 85089, + 85096, 85101, 85109, 77281, 85116, 85121, 72167, 85128, 85134, 85139, + 85143, 85150, 85156, 85163, 72194, 14031, 85171, 85176, 85181, 85185, + 85188, 85199, 85208, 85214, 85219, 85223, 85233, 85242, 50487, 85246, + 85250, 85257, 85270, 85276, 85284, 85291, 85300, 85311, 85322, 85333, + 85344, 85353, 85359, 85368, 85376, 85386, 85399, 85407, 85414, 85425, + 85434, 85440, 85445, 85450, 85456, 85466, 85472, 85482, 85490, 85497, + 85507, 85516, 83582, 85524, 85530, 85538, 85544, 75834, 85551, 85556, + 85559, 85563, 85569, 85573, 85576, 85584, 85590, 85596, 85604, 85616, + 85628, 85635, 85640, 85644, 85655, 85663, 85670, 85682, 85690, 85697, + 85705, 85712, 85718, 85723, 85729, 85739, 85748, 85756, 85761, 85771, + 85780, 51375, 85787, 85791, 85796, 85804, 85811, 85817, 85821, 85831, + 85842, 85850, 85857, 85869, 85881, 85890, 82505, 85897, 85907, 85919, + 85930, 85944, 85952, 85962, 85969, 85977, 85990, 86002, 86011, 86019, + 86029, 86040, 86052, 86061, 86071, 86081, 86091, 86100, 86107, 86116, + 86131, 86139, 86149, 86158, 86166, 86179, 68890, 86194, 86204, 86213, + 86225, 86235, 86247, 86258, 86272, 86286, 86300, 86314, 86328, 86342, + 86356, 86370, 86384, 86398, 86412, 86426, 86440, 86454, 86468, 86482, + 86496, 86510, 86524, 86538, 86552, 86566, 86580, 86594, 86608, 86622, + 86636, 86650, 86664, 86678, 86692, 86706, 86720, 86734, 86748, 86762, + 86776, 86790, 86804, 86818, 86832, 86846, 86860, 86874, 86888, 86902, + 86916, 86930, 86944, 86958, 86972, 86986, 87000, 87014, 87028, 87042, + 87056, 87070, 87084, 87098, 87112, 87126, 87140, 87154, 87168, 87182, + 87196, 87210, 87224, 87238, 87252, 87266, 87280, 87294, 87308, 87322, + 87336, 87350, 87364, 87378, 87392, 87406, 87420, 87434, 87448, 87462, + 87476, 87490, 87504, 87518, 87532, 87546, 87560, 87574, 87588, 87602, + 87616, 87630, 87644, 87658, 87672, 87686, 87700, 87714, 87728, 87742, + 87756, 87770, 87784, 87798, 87812, 87826, 87840, 87854, 87868, 87882, + 87896, 87910, 87924, 87938, 87952, 87966, 87980, 87994, 88008, 88022, + 88036, 88050, 88064, 88078, 88092, 88106, 88120, 88134, 88148, 88162, + 88176, 88190, 88204, 88218, 88232, 88246, 88260, 88274, 88288, 88302, + 88316, 88330, 88344, 88358, 88372, 88386, 88400, 88414, 88428, 88442, + 88456, 88470, 88484, 88498, 88512, 88526, 88540, 88554, 88568, 88582, + 88596, 88610, 88624, 88638, 88652, 88666, 88680, 88694, 88708, 88722, + 88736, 88750, 88764, 88778, 88792, 88806, 88820, 88834, 88848, 88862, + 88876, 88890, 88904, 88918, 88932, 88946, 88960, 88974, 88988, 89002, + 89016, 89030, 89044, 89058, 89072, 89086, 89100, 89114, 89128, 89142, + 89156, 89170, 89184, 89198, 89212, 89226, 89240, 89254, 89268, 89282, + 89296, 89310, 89324, 89338, 89352, 89366, 89380, 89394, 89408, 89422, + 89436, 89450, 89464, 89478, 89492, 89506, 89520, 89534, 89548, 89562, + 89576, 89590, 89604, 89618, 89632, 89646, 89660, 89674, 89688, 89702, + 89716, 89730, 89744, 89758, 89772, 89786, 89800, 89814, 89828, 89842, + 89856, 89870, 89884, 89898, 89912, 89926, 89940, 89954, 89968, 89982, + 89996, 90010, 90024, 90038, 90052, 90066, 90080, 90094, 90108, 90122, + 90136, 90150, 90164, 90178, 90192, 90206, 90220, 90234, 90248, 90262, + 90276, 90290, 90304, 90318, 90332, 90346, 90360, 90374, 90388, 90402, + 90416, 90430, 90444, 90458, 90472, 90486, 90500, 90514, 90528, 90542, + 90556, 90570, 90584, 90598, 90612, 90626, 90640, 90654, 90668, 90682, + 90696, 90710, 90724, 90738, 90752, 90766, 90780, 90794, 90808, 90822, + 90836, 90850, 90864, 90878, 90892, 90906, 90920, 90934, 90948, 90962, + 90976, 90990, 91004, 91018, 91032, 91046, 91060, 91074, 91088, 91102, + 91116, 91130, 91144, 91158, 91172, 91186, 91200, 91214, 91228, 91242, + 91256, 91270, 91284, 91298, 91312, 91326, 91340, 91354, 91368, 91382, + 91396, 91410, 91424, 91438, 91452, 91466, 91480, 91494, 91508, 91522, + 91536, 91550, 91564, 91578, 91592, 91606, 91620, 91634, 91648, 91662, + 91676, 91690, 91704, 91718, 91732, 91746, 91760, 91774, 91788, 91802, + 91816, 91830, 91844, 91858, 91872, 91886, 91900, 91914, 91928, 91942, + 91956, 91970, 91984, 91998, 92012, 92026, 92040, 92054, 92068, 92082, + 92096, 92110, 92124, 92138, 92152, 92166, 92180, 92194, 92208, 92222, + 92236, 92250, 92264, 92278, 92292, 92306, 92320, 92334, 92348, 92362, + 92376, 92390, 92404, 92418, 92432, 92446, 92460, 92474, 92488, 92502, + 92516, 92530, 92544, 92558, 92572, 92586, 92600, 92614, 92628, 92642, + 92656, 92670, 92684, 92698, 92712, 92726, 92740, 92754, 92768, 92782, + 92796, 92810, 92824, 92838, 92852, 92866, 92880, 92894, 92908, 92922, + 92936, 92950, 92964, 92978, 92992, 93006, 93020, 93034, 93048, 93062, + 93076, 93090, 93104, 93118, 93132, 93146, 93160, 93174, 93188, 93202, + 93216, 93230, 93244, 93258, 93272, 93286, 93300, 93314, 93328, 93342, + 93356, 93370, 93384, 93398, 93412, 93426, 93440, 93454, 93468, 93482, + 93496, 93510, 93524, 93538, 93552, 93566, 93580, 93594, 93608, 93622, + 93636, 93650, 93664, 93678, 93692, 93706, 93720, 93734, 93748, 93762, + 93776, 93790, 93804, 93818, 93832, 93846, 93860, 93874, 93888, 93902, + 93916, 93930, 93944, 93958, 93972, 93986, 94000, 94014, 94028, 94042, + 94056, 94070, 94084, 94098, 94112, 94126, 94140, 94154, 94168, 94182, + 94196, 94210, 94224, 94238, 94252, 94266, 94280, 94294, 94308, 94322, + 94336, 94350, 94364, 94378, 94392, 94406, 94420, 94434, 94448, 94462, + 94476, 94490, 94504, 94518, 94532, 94546, 94560, 94574, 94588, 94602, + 94616, 94630, 94644, 94658, 94672, 94686, 94700, 94714, 94728, 94742, + 94756, 94770, 94784, 94798, 94812, 94826, 94840, 94854, 94868, 94882, + 94896, 94910, 94924, 94938, 94952, 94966, 94980, 94994, 95008, 95022, + 95036, 95050, 95064, 95078, 95092, 95106, 95120, 95134, 95148, 95162, + 95176, 95190, 95204, 95218, 95232, 95246, 95260, 95274, 95288, 95302, + 95316, 95330, 95344, 95358, 95372, 95386, 95400, 95414, 95428, 95442, + 95456, 95470, 95484, 95498, 95512, 95526, 95540, 95554, 95568, 95582, + 95596, 95610, 95624, 95638, 95652, 95666, 95680, 95694, 95708, 95722, + 95736, 95750, 95764, 95778, 95792, 95806, 95820, 95834, 95848, 95862, + 95876, 95890, 95904, 95918, 95932, 95946, 95960, 95974, 95988, 96002, + 96016, 96030, 96044, 96058, 96072, 96086, 96100, 96114, 96128, 96142, + 96156, 96170, 96184, 96198, 96212, 96226, 96240, 96254, 96268, 96282, + 96296, 96310, 96324, 96338, 96352, 96366, 96380, 96394, 96408, 96422, + 96436, 96450, 96464, 96478, 96492, 96506, 96520, 96534, 96548, 96562, + 96576, 96590, 96604, 96618, 96632, 96646, 96660, 96674, 96688, 96702, + 96716, 96730, 96744, 96758, 96772, 96786, 96800, 96814, 96828, 96842, + 96856, 96870, 96884, 96898, 96912, 96926, 96940, 96954, 96968, 96982, + 96996, 97010, 97019, 97030, 97041, 97051, 97062, 97070, 97078, 97084, + 97094, 97102, 97108, 35368, 97113, 97119, 97128, 97140, 97145, 97152, + 11370, 21948, 97158, 97167, 97172, 97176, 97181, 97188, 97194, 97199, + 97204, 97212, 97220, 97230, 97235, 97243, 14513, 97247, 97253, 97259, + 97265, 97271, 97277, 97283, 97289, 97295, 97301, 97307, 97313, 97319, + 97325, 97331, 97337, 97343, 97349, 97355, 97361, 97367, 97373, 97379, + 97385, 97391, 97397, 97403, 97409, 97415, 97421, 97427, 97433, 97439, + 97445, 97451, 97457, 97463, 97470, 97476, 97482, 97488, 97494, 97500, + 97506, 97512, 97518, 97524, 97530, 97536, 97542, 97548, 97554, 97560, + 97566, 97572, 97578, 97584, 97590, 97596, 97602, 97608, 97614, 97620, + 97626, 97632, 97638, 97644, 97650, 97656, 97662, 97668, 97674, 97680, + 97686, 97692, 97698, 97704, 97710, 97716, 97722, 97728, 97734, 97740, + 97746, 97752, 97758, 97764, 97770, 97777, 97783, 97789, 97795, 97801, + 97807, 97813, 97819, 97825, 97831, 97837, 97843, 97846, 97848, 97863, + 97876, 97883, 97889, 97900, 97905, 97909, 97914, 97921, 97927, 97932, + 97940, 77884, 77894, 97946, 97953, 97963, 12672, 97970, 97975, 35616, + 97984, 97989, 97996, 98006, 98014, 98022, 98031, 98040, 98046, 98052, + 98057, 98064, 98071, 98076, 98080, 98088, 72211, 98093, 98102, 98110, + 98117, 98122, 98126, 98135, 98141, 98144, 98148, 98157, 98167, 84951, + 98176, 98180, 98188, 98192, 98198, 98209, 98219, 21957, 98230, 98239, + 98247, 98255, 98262, 72230, 9895, 98270, 98274, 98283, 98290, 98293, + 98297, 33215, 98300, 98304, 98309, 98326, 98338, 12630, 98350, 98355, + 98360, 98365, 25545, 98369, 98374, 98379, 98385, 98390, 6640, 98395, + 25549, 98400, 98405, 98411, 98418, 98423, 98428, 98434, 98440, 98446, + 98451, 98457, 98461, 98475, 98483, 98491, 98497, 98502, 98509, 98519, + 98528, 98533, 98538, 98543, 98551, 98561, 98572, 98577, 98583, 98588, + 98597, 70639, 4760, 98602, 98620, 98639, 98652, 98666, 98682, 98689, + 98696, 98705, 98712, 98718, 98725, 98730, 98736, 98741, 98747, 98755, + 98761, 98766, 98771, 98787, 12643, 98801, 98808, 98816, 98822, 98826, + 98829, 98835, 98840, 98845, 98853, 98860, 98865, 98874, 98880, 98885, + 98891, 98897, 98906, 98915, 43462, 98920, 98931, 98938, 98946, 98955, + 14104, 98964, 98970, 98978, 98984, 98990, 98996, 99001, 99008, 99014, + 14115, 99019, 99022, 99027, 39620, 99037, 99046, 99051, 99059, 99066, + 99072, 99077, 99085, 99092, 99103, 99119, 99135, 99151, 99167, 99183, + 99199, 99215, 99231, 99247, 99263, 99279, 99295, 99311, 99327, 99343, + 99359, 99375, 99391, 99407, 99423, 99439, 99455, 99471, 99487, 99503, + 99519, 99535, 99551, 99567, 99583, 99599, 99615, 99631, 99647, 99663, + 99679, 99695, 99711, 99727, 99743, 99759, 99775, 99791, 99807, 99823, + 99839, 99855, 99871, 99887, 99903, 99919, 99935, 99951, 99967, 99983, + 99999, 100015, 100031, 100047, 100063, 100079, 100095, 100111, 100127, + 100143, 100159, 100175, 100191, 100207, 100223, 100239, 100255, 100271, + 100287, 100303, 100319, 100335, 100351, 100367, 100383, 100399, 100415, + 100431, 100447, 100463, 100479, 100495, 100511, 100527, 100543, 100559, + 100575, 100591, 100607, 100623, 100639, 100655, 100671, 100687, 100703, + 100719, 100735, 100751, 100767, 100783, 100799, 100815, 100831, 100847, + 100863, 100879, 100895, 100911, 100927, 100943, 100959, 100975, 100991, + 101007, 101023, 101039, 101055, 101071, 101087, 101103, 101119, 101135, + 101151, 101167, 101183, 101199, 101215, 101231, 101247, 101263, 101279, + 101295, 101311, 101327, 101343, 101359, 101375, 101391, 101407, 101423, + 101439, 101455, 101471, 101487, 101503, 101519, 101535, 101551, 101567, + 101583, 101599, 101615, 101631, 101647, 101663, 101679, 101695, 101711, + 101727, 101743, 101759, 101775, 101791, 101807, 101823, 101839, 101855, + 101871, 101887, 101903, 101919, 101935, 101951, 101967, 101983, 101999, + 102015, 102031, 102047, 102063, 102079, 102095, 102111, 102127, 102143, + 102159, 102175, 102191, 102207, 102223, 102239, 102255, 102271, 102287, + 102303, 102319, 102335, 102351, 102367, 102383, 102399, 102415, 102431, + 102447, 102463, 102479, 102495, 102511, 102527, 102543, 102559, 102575, + 102591, 102607, 102623, 102639, 102655, 102671, 102687, 102703, 102719, + 102735, 102751, 102767, 102783, 102799, 102815, 102831, 102847, 102863, + 102879, 102895, 102911, 102927, 102943, 102959, 102975, 102991, 103007, + 103023, 103039, 103055, 103071, 103087, 103103, 103119, 103135, 103151, + 103167, 103183, 103199, 103215, 103231, 103247, 103263, 103279, 103295, + 103311, 103327, 103343, 103359, 103375, 103391, 103407, 103423, 103439, + 103455, 103471, 103487, 103503, 103519, 103535, 103551, 103567, 103583, + 103599, 103615, 103631, 103647, 103663, 103679, 103695, 103711, 103727, + 103743, 103759, 103775, 103791, 103807, 103823, 103839, 103855, 103871, + 103887, 103903, 103919, 103935, 103951, 103967, 103983, 103999, 104015, + 104031, 104047, 104063, 104079, 104095, 104111, 104127, 104143, 104159, + 104175, 104191, 104207, 104223, 104239, 104255, 104271, 104287, 104303, + 104319, 104335, 104351, 104367, 104383, 104399, 104415, 104431, 104447, + 104463, 104479, 104495, 104511, 104527, 104543, 104559, 104575, 104591, + 104607, 104623, 104639, 104655, 104671, 104687, 104703, 104719, 104735, + 104751, 104767, 104783, 104799, 104815, 104831, 104847, 104863, 104879, + 104895, 104911, 104927, 104943, 104959, 104975, 104991, 105007, 105023, + 105039, 105055, 105071, 105087, 105103, 105119, 105135, 105151, 105167, + 105183, 105199, 105215, 105231, 105247, 105263, 105279, 105295, 105311, + 105327, 105343, 105359, 105375, 105391, 105407, 105423, 105439, 105455, + 105471, 105487, 105503, 105519, 105535, 105551, 105567, 105583, 105599, + 105615, 105631, 105647, 105663, 105679, 105695, 105711, 105727, 105743, + 105759, 105775, 105791, 105807, 105823, 105839, 105855, 105871, 105887, + 105903, 105919, 105935, 105951, 105967, 105983, 105999, 106015, 106031, + 106047, 106063, 106079, 106095, 106111, 106127, 106143, 106159, 106175, + 106191, 106207, 106223, 106239, 106255, 106271, 106287, 106303, 106319, + 106335, 106351, 106367, 106383, 106399, 106415, 106431, 106447, 106463, + 106479, 106495, 106511, 106527, 106543, 106559, 106575, 106591, 106607, + 106623, 106639, 106655, 106671, 106687, 106703, 106719, 106735, 106751, + 106767, 106783, 106799, 106815, 106831, 106847, 106863, 106879, 106895, + 106911, 106927, 106943, 106959, 106975, 106991, 107007, 107023, 107039, + 107055, 107071, 107087, 107103, 107119, 107135, 107151, 107167, 107183, + 107199, 107215, 107231, 107247, 107263, 107279, 107295, 107311, 107327, + 107343, 107359, 107375, 107391, 107407, 107423, 107439, 107455, 107471, + 107487, 107503, 107519, 107535, 107551, 107567, 107583, 107599, 107615, + 107631, 107647, 107663, 107679, 107695, 107711, 107727, 107743, 107759, + 107775, 107791, 107807, 107823, 107839, 107855, 107871, 107887, 107903, + 107919, 107935, 107951, 107967, 107983, 107999, 108015, 108031, 108047, + 108063, 108079, 108095, 108111, 108127, 108143, 108159, 108175, 108191, + 108207, 108223, 108239, 108255, 108271, 108287, 108303, 108319, 108335, + 108351, 108367, 108383, 108399, 108415, 108431, 108447, 108463, 108479, + 108495, 108511, 108527, 108543, 108559, 108575, 108591, 108607, 108623, + 108639, 108655, 108671, 108687, 108703, 108719, 108735, 108751, 108767, + 108783, 108799, 108815, 108831, 108847, 108863, 108879, 108895, 108911, + 108927, 108943, 108959, 108975, 108991, 109007, 109023, 109039, 109055, + 109071, 109087, 109103, 109119, 109135, 109151, 109167, 109183, 109199, + 109215, 109231, 109247, 109263, 109279, 109295, 109311, 109327, 109343, + 109359, 109375, 109391, 109407, 109423, 109439, 109455, 109471, 109487, + 109503, 109519, 109535, 109551, 109567, 109583, 109599, 109615, 109631, + 109647, 109663, 109679, 109695, 109711, 109727, 109743, 109759, 109775, + 109791, 109807, 109823, 109839, 109855, 109871, 109887, 109903, 109919, + 109935, 109951, 109967, 109983, 109999, 110015, 110031, 110047, 110063, + 110079, 110095, 110111, 110127, 110143, 110159, 110175, 110191, 110207, + 110223, 110239, 110255, 110271, 110287, 110303, 110319, 110335, 110351, + 110367, 110383, 110399, 110415, 110431, 110447, 110463, 110479, 110495, + 110511, 110527, 110543, 110559, 110575, 110591, 110607, 110623, 110639, + 110655, 110671, 110687, 110703, 110719, 110735, 110751, 110767, 110783, + 110799, 110815, 110831, 110847, 110863, 110879, 110895, 110911, 110927, + 110943, 110959, 110975, 110991, 111007, 111023, 111039, 111055, 111071, + 111087, 111103, 111119, 111135, 111151, 111167, 111183, 111199, 111215, + 111231, 111247, 111263, 111279, 111295, 111311, 111327, 111343, 111359, + 111375, 111391, 111407, 111423, 111439, 111455, 111471, 111487, 111503, + 111519, 111535, 111551, 111567, 111583, 111599, 111615, 111631, 111647, + 111663, 111679, 111695, 111711, 111727, 111743, 111759, 111775, 111791, + 111807, 111823, 111839, 111855, 111871, 111887, 111903, 111919, 111935, + 111951, 111967, 111983, 111999, 112015, 112031, 112047, 112063, 112079, + 112095, 112111, 112127, 112143, 112159, 112175, 112191, 112207, 112223, + 112239, 112255, 112271, 112287, 112303, 112319, 112335, 112351, 112367, + 112383, 112399, 112415, 112431, 112447, 112463, 112479, 112495, 112511, + 112527, 112543, 112559, 112575, 112591, 112607, 112623, 112639, 112655, + 112671, 112687, 112703, 112719, 112735, 112751, 112767, 112783, 112799, + 112815, 112831, 112847, 112863, 112879, 112895, 112911, 112927, 112943, + 112959, 112969, 112978, 112983, 112991, 77204, 112996, 113002, 113007, + 113014, 113023, 113031, 113035, 4338, 113041, 113048, 113054, 113058, + 20549, 46595, 3295, 113063, 113067, 113071, 113078, 113084, 113093, + 113099, 113106, 113110, 113131, 113153, 113169, 113186, 113205, 113214, + 113224, 113232, 113239, 113246, 113252, 33070, 113266, 113270, 113276, + 113284, 113296, 113302, 113310, 113317, 113322, 113327, 113331, 113339, + 113346, 113350, 113356, 113362, 113367, 3972, 52543, 113373, 113377, + 113381, 113385, 113390, 113395, 113400, 113406, 113412, 113418, 113425, + 113431, 113438, 113444, 113450, 113455, 113461, 113466, 113470, 105563, + 113475, 105627, 52558, 113480, 113485, 113493, 113497, 113502, 113509, + 113518, 113525, 113531, 113540, 113544, 113551, 113555, 113558, 113565, + 113571, 113580, 113590, 113600, 113605, 113609, 113616, 113624, 113633, + 113637, 113645, 113651, 113656, 113661, 113667, 113673, 113678, 113682, + 31947, 113688, 113692, 113696, 113699, 113704, 113712, 113722, 113728, + 113733, 113743, 49664, 113751, 113763, 113769, 113776, 113782, 113786, + 113791, 113797, 113809, 113820, 113827, 113833, 113840, 113847, 113859, + 113866, 113872, 25629, 113876, 113884, 113890, 113897, 113903, 113909, + 113915, 113920, 113925, 113930, 113934, 113943, 113951, 113962, 7934, + 113967, 19985, 113973, 113977, 113981, 113985, 113993, 114002, 114006, + 114013, 114022, 114030, 114043, 114049, 106139, 36551, 114054, 114056, + 114061, 114066, 114071, 114076, 114081, 114086, 114091, 114096, 114101, + 114106, 114111, 114116, 114121, 114126, 114132, 114137, 114142, 114147, + 114152, 114157, 114162, 114167, 114172, 114178, 114184, 114190, 114195, + 114200, 114212, 114217, 1935, 54, 114222, 114227, 39630, 114231, 39635, + 39640, 39646, 39651, 114235, 39656, 26815, 114257, 114261, 114265, + 114270, 114274, 39660, 114278, 114286, 114293, 114299, 114309, 39665, + 114316, 114319, 114324, 114328, 114337, 11168, 114345, 39670, 26659, + 114348, 114352, 114360, 1307, 114365, 39681, 114368, 114373, 114378, + 31188, 31198, 43060, 114383, 114388, 114393, 114398, 114404, 114409, + 114418, 114423, 114432, 114440, 114447, 114453, 114458, 114463, 114468, + 114478, 114487, 114495, 114500, 114508, 114512, 114520, 114524, 114531, + 114538, 114546, 114553, 39485, 46310, 114559, 114565, 114570, 114575, + 14548, 11961, 114580, 114585, 114590, 114596, 114603, 114609, 114618, + 114623, 114631, 114641, 114648, 114658, 114664, 114669, 114675, 114679, + 21979, 114686, 44045, 114699, 114704, 114711, 114717, 114732, 37615, + 75612, 114745, 114749, 114758, 114767, 114774, 114780, 114788, 114794, + 114802, 114811, 114819, 114826, 46430, 114832, 114835, 114839, 114843, + 114847, 11982, 114853, 114860, 114866, 114874, 114879, 114883, 29180, + 114889, 114892, 114900, 114907, 114915, 114928, 114942, 114949, 114955, + 114962, 114968, 39695, 114972, 114978, 114986, 114993, 115001, 115009, + 115015, 39700, 115023, 115029, 115034, 115044, 115050, 115059, 37410, + 42408, 115067, 115072, 115077, 115081, 115086, 115090, 115098, 115103, + 17981, 18806, 49686, 115107, 115112, 39705, 18138, 115116, 115128, + 115133, 115137, 115144, 115153, 115157, 115165, 115171, 115176, 115184, + 115192, 115200, 115208, 115216, 115224, 115235, 115241, 9132, 115246, + 115252, 115257, 115262, 115273, 115282, 115294, 115309, 40017, 115315, + 20104, 39709, 115319, 115326, 115332, 115336, 29317, 115343, 115349, + 115356, 48811, 115365, 115371, 115380, 115386, 115391, 115399, 115405, + 115410, 39719, 115415, 115424, 115433, 113815, 115442, 115449, 115455, + 115461, 115470, 115480, 115486, 115494, 115501, 115505, 39724, 115508, + 39730, 1346, 115513, 115521, 115529, 115539, 115548, 115556, 115563, + 115573, 39741, 115577, 115579, 115583, 115588, 115592, 115596, 115602, + 115607, 115611, 115622, 115627, 115633, 115638, 115647, 115652, 3300, + 115656, 115663, 115667, 115676, 115684, 115692, 115699, 115704, 115709, + 74113, 115713, 115716, 115722, 115730, 115736, 115740, 115745, 115752, + 115757, 115762, 115766, 115773, 115779, 115784, 42439, 115788, 115791, + 115796, 115800, 115805, 115812, 115817, 115821, 47780, 115829, 31207, + 31216, 115835, 115841, 115847, 115852, 115856, 115859, 115869, 115878, + 115883, 115889, 115896, 115902, 115906, 115914, 115919, 42445, 85210, + 115923, 115931, 115938, 115944, 115951, 115956, 115963, 115968, 115972, + 115978, 115983, 69106, 115989, 115995, 10386, 116000, 116005, 116009, + 116014, 116019, 116024, 116028, 116033, 116038, 116044, 116049, 116054, + 116060, 116066, 116071, 116075, 116080, 116085, 116090, 116094, 29316, + 116099, 116104, 116110, 116116, 116122, 116127, 116131, 116136, 116141, + 109915, 116146, 116151, 116156, 116161, 109979, 52813, 116166, 39749, + 116174, 116178, 116186, 116194, 116205, 116210, 116214, 27294, 82608, + 116219, 116225, 116230, 4649, 116240, 116247, 116252, 116260, 116269, + 116274, 116278, 116283, 116287, 116295, 116303, 116310, 77470, 116316, + 116324, 116331, 116342, 116348, 116354, 39759, 116357, 116364, 116372, + 116377, 116381, 33589, 71792, 116387, 116392, 116399, 116404, 10275, + 116408, 116416, 116423, 116430, 116439, 116446, 116452, 116466, 116474, + 6724, 116236, 116480, 116485, 116491, 116495, 116498, 116506, 116513, + 116518, 116531, 116538, 116544, 116548, 116556, 116561, 116568, 116574, + 116579, 72070, 116584, 116587, 116596, 116603, 110187, 116609, 116612, + 116620, 116626, 116635, 116645, 116655, 116664, 116675, 116683, 116694, + 116699, 116703, 116708, 116712, 43191, 116720, 18771, 43200, 116725, + 101706, 101722, 101738, 101754, 101770, 116730, 101802, 101818, 101834, + 101850, 101962, 101978, 116734, 102010, 102026, 116738, 116742, 116746, + 116750, 102266, 102298, 116754, 102330, 116758, 116762, 102474, 102490, + 102506, 102522, 116766, 102586, 102602, 116770, 102730, 102746, 102762, + 102778, 102794, 102810, 102826, 102842, 102858, 102874, 102986, 103002, + 103018, 103034, 103050, 103066, 103082, 103098, 103114, 103130, 116774, + 104922, 105034, 105098, 105114, 105130, 105146, 105162, 105178, 105290, + 105306, 105322, 116778, 105370, 116782, 105402, 105418, 105434, 116786, + 116791, 116796, 116801, 116806, 116811, 116816, 116820, 116824, 116829, + 116834, 116838, 116843, 116848, 116852, 116857, 116862, 116867, 116872, + 116876, 116881, 116886, 116890, 116895, 116899, 116903, 116907, 116911, + 116916, 116920, 116924, 116928, 116932, 116936, 116940, 116944, 116948, + 116952, 116957, 116962, 116967, 116972, 116977, 116982, 116987, 116992, + 116997, 117002, 117006, 117010, 117014, 117018, 117022, 117026, 117031, + 117035, 117040, 117044, 117049, 117054, 117058, 117062, 117067, 117071, + 117075, 117079, 117083, 117087, 117091, 117095, 117099, 117103, 117107, + 117111, 117115, 117119, 117123, 117128, 117133, 117137, 117141, 117145, + 117149, 117153, 117157, 117162, 117166, 117170, 117174, 117178, 117182, + 117186, 117191, 117195, 117200, 117204, 117208, 117212, 117216, 117220, + 117224, 117228, 117232, 117236, 117240, 117244, 117249, 117253, 117257, + 117261, 117265, 117269, 117273, 117277, 117281, 117285, 117289, 117293, + 117298, 117302, 117306, 117311, 117316, 117320, 117324, 117328, 117332, + 117336, 117340, 117344, 117348, 117353, 117357, 117362, 117366, 117371, + 117375, 117380, 117384, 117390, 117395, 117399, 117404, 117408, 117413, + 117417, 117422, 117426, 117431, 1429, 117435, 117439, 3042, 1705, 28453, + 1602, 31143, 117443, 3051, 117447, 1276, 117452, 1218, 117456, 117460, + 117464, 117468, 117472, 117476, 3075, 117480, 117488, 117495, 117502, + 117516, 3079, 8044, 117525, 117533, 117540, 117551, 117560, 117564, + 117571, 117583, 117596, 117609, 117620, 117625, 117632, 117644, 117648, + 3083, 14185, 117658, 117663, 117672, 117682, 117687, 117696, 3087, + 117704, 117708, 117713, 117720, 117726, 117731, 117740, 117748, 117760, + 117770, 1223, 15645, 117783, 117787, 117793, 117807, 117819, 117831, + 117839, 117849, 117858, 117867, 117876, 117884, 117895, 117903, 4657, + 117913, 117924, 117933, 117939, 117954, 117961, 117967, 117972, 43334, + 117977, 3111, 15649, 117981, 117986, 117993, 10206, 118002, 118008, 4695, + 118018, 3116, 39121, 118027, 71682, 118034, 118038, 118044, 118055, + 118061, 118066, 118073, 118079, 118087, 118094, 118100, 118111, 118127, + 118137, 118146, 118157, 118166, 118173, 118179, 118189, 118197, 118203, + 118218, 118224, 118229, 118233, 118240, 118248, 118252, 118255, 118261, + 118268, 118274, 118282, 118291, 118299, 118305, 118314, 52116, 118328, + 118333, 118339, 17732, 118344, 118357, 118369, 118378, 118386, 118393, + 118397, 118401, 118404, 118411, 118418, 118426, 118434, 118443, 118451, + 17631, 118459, 118464, 118468, 118480, 118487, 118494, 118503, 954, + 118513, 118522, 118533, 3137, 118537, 118541, 118547, 118560, 118572, + 118582, 118591, 118603, 32105, 118614, 118622, 118631, 118642, 118653, + 118663, 118673, 118681, 118690, 118698, 13604, 118705, 118709, 118712, + 118717, 118722, 118726, 118732, 1228, 118739, 118743, 14281, 118747, + 118751, 118762, 118771, 118779, 118788, 118796, 118812, 118823, 118832, + 118840, 118852, 118863, 118879, 118889, 118910, 118924, 118937, 118945, + 118952, 8090, 118965, 118970, 118976, 6733, 118982, 118985, 118992, + 119002, 9266, 119009, 119014, 119019, 119026, 119034, 119042, 119048, + 119053, 119059, 119063, 119071, 119080, 119088, 119093, 119102, 119109, + 11418, 11427, 119115, 119126, 119132, 119137, 119143, 3153, 3158, 119149, + 1063, 119155, 119162, 119169, 119182, 119192, 119197, 2324, 87, 119205, + 119212, 119217, 119225, 119235, 119244, 119250, 119259, 119267, 119277, + 119281, 119285, 119290, 119294, 119306, 3181, 119314, 119322, 119327, + 119338, 119349, 119361, 119372, 119382, 119391, 26013, 119396, 119402, + 119407, 119417, 119427, 119432, 34323, 119438, 119443, 119452, 26035, + 119456, 26046, 119461, 4783, 8, 119468, 119477, 119484, 119491, 119497, + 119502, 119506, 119512, 34353, 119517, 119522, 72367, 119527, 119532, + 119538, 119544, 119552, 119557, 119565, 119573, 119582, 119589, 119595, + 119602, 119608, 119615, 119620, 47649, 52010, 119626, 119636, 1822, 32, + 119643, 119648, 119661, 119666, 119674, 119679, 119685, 3207, 30884, + 3221, 119690, 119698, 119705, 119710, 119715, 119724, 4340, 4351, 73711, + 119732, 119736, 1629, 1862, 119741, 119746, 119753, 34774, 1866, 331, + 119760, 119766, 119771, 3229, 119775, 119780, 119787, 1870, 119792, + 119798, 119803, 119815, 6978, 119825, 119832, 1877, 119838, 119843, + 119850, 119857, 119872, 119879, 119890, 119895, 119903, 2772, 119907, + 119919, 119924, 119928, 119934, 34195, 2329, 119938, 119949, 119953, + 119957, 119963, 119967, 119976, 119980, 119991, 119995, 2375, 38938, + 119999, 120009, 120017, 3320, 120023, 120032, 120040, 10752, 120045, + 120053, 120058, 120062, 120071, 120078, 120084, 3290, 17796, 120088, + 120101, 44058, 120119, 120124, 120132, 120140, 120150, 11759, 15773, + 120162, 120175, 120182, 120192, 120206, 120213, 120229, 120236, 120242, + 26093, 14980, 120249, 120256, 120266, 120275, 52812, 120287, 120295, + 52947, 120302, 120305, 120311, 120317, 120323, 120329, 120335, 120342, + 120349, 120355, 120361, 120367, 120373, 120379, 120385, 120391, 120397, + 120403, 120409, 120415, 120421, 120427, 120433, 120439, 120445, 120451, + 120457, 120463, 120469, 120475, 120481, 120487, 120493, 120499, 120505, + 120511, 120517, 120523, 120529, 120535, 120541, 120547, 120553, 120559, + 120565, 120571, 120577, 120583, 120589, 120595, 120601, 120607, 120613, + 120619, 120625, 120631, 120637, 120643, 120649, 120655, 120662, 120668, + 120675, 120682, 120688, 120695, 120702, 120708, 120714, 120720, 120726, + 120732, 120738, 120744, 120750, 120756, 120762, 120768, 120774, 120780, + 120786, 120792, 3304, 10720, 120798, 120808, 120814, 120822, 120826, + 117716, 3308, 120830, 114044, 25758, 4701, 4265, 120834, 3314, 120838, + 120848, 120854, 120860, 120866, 120872, 120878, 120884, 120890, 120896, + 120902, 120908, 120914, 120920, 120926, 120932, 120938, 120944, 120950, + 120956, 120962, 120968, 120974, 120980, 120986, 120992, 120998, 121005, + 121012, 121018, 121024, 121030, 121036, 121042, 121048, 1233, 121054, + 121059, 121064, 121069, 121074, 121079, 121084, 121089, 121094, 121098, + 121102, 121106, 121110, 121114, 121118, 121122, 121126, 121130, 121136, + 121142, 121148, 121154, 121158, 121162, 121166, 121170, 121174, 121178, + 121182, 121186, 121190, 121195, 121200, 121205, 121210, 121215, 121220, + 121225, 121230, 121235, 121240, 121245, 121250, 121255, 121260, 121265, + 121270, 121275, 121280, 121285, 121290, 121295, 121300, 121305, 121310, + 121315, 121320, 121325, 121330, 121335, 121340, 121345, 121350, 121355, + 121360, 121365, 121370, 121375, 121380, 121385, 121390, 121395, 121400, + 121405, 121410, 121415, 121420, 121425, 121430, 121435, 121440, 121445, + 121450, 121455, 121460, 121465, 121470, 121475, 121480, 121485, 121490, + 121495, 121500, 121505, 121510, 121515, 121520, 121525, 121530, 121535, + 121540, 121545, 121550, 121555, 121560, 121565, 121570, 121575, 121580, + 121585, 121590, 121595, 121600, 121605, 121610, 121615, 121620, 121625, + 121630, 121635, 121640, 121645, 121650, 121655, 121660, 121665, 121670, + 121675, 121680, 121685, 121690, 121695, 121700, 121705, 121710, 121715, + 121720, 121725, 121730, 121735, 121740, 121745, 121750, 121755, 121760, + 121765, 121770, 121775, 121780, 121785, 121790, 121795, 121800, 121805, + 121810, 121815, 121820, 121825, 121830, 121835, 121840, 121845, 121850, + 121855, 121860, 121865, 121870, 121875, 121880, 121885, 121890, 121895, + 121900, 121905, 121910, 121915, 121920, 121925, 121930, 121935, 121940, + 121945, 121950, 121955, 121960, 121965, 121970, 121975, 121980, 121985, + 121990, 121995, 122000, 122005, 122010, 122015, 122020, 122025, 122030, + 122035, 122040, 122045, 122050, 122055, 122060, 122065, 122070, 122075, + 122080, 122086, 122091, 122096, 122101, 122106, 122111, 122116, 122121, + 122127, 122132, 122137, 122142, 122147, 122152, 122157, 122162, 122167, + 122172, 122177, 122182, 122187, 122192, 122197, 122202, 122207, 122212, + 122217, 122222, 122227, 122232, 122237, 122242, 122247, 122252, 122257, + 122262, 122267, 122272, 122277, 122282, 122287, 122296, 122301, 122310, + 122315, 122324, 122329, 122338, 122343, 122352, 122357, 122366, 122371, + 122380, 122385, 122394, 122399, 122404, 122413, 122417, 122426, 122431, + 122440, 122445, 122454, 122459, 122468, 122473, 122482, 122487, 122496, + 122501, 122510, 122515, 122524, 122529, 122538, 122543, 122552, 122557, + 122562, 122567, 122572, 122577, 122582, 122587, 122591, 122596, 122601, + 122606, 122611, 122616, 122621, 122627, 122632, 122637, 122642, 122648, + 122652, 122657, 122663, 122668, 122673, 122678, 122683, 122688, 122693, + 122698, 122703, 122708, 122713, 122719, 122724, 122729, 122734, 122740, + 122745, 122750, 122755, 122760, 122766, 122771, 122776, 122781, 122786, + 122791, 122797, 122802, 122807, 122812, 122817, 122822, 122827, 122832, + 122837, 122842, 122847, 122852, 122857, 122862, 122867, 122872, 122877, + 122882, 122887, 122892, 122897, 122902, 122907, 122912, 122918, 122924, + 122930, 122935, 122940, 122945, 122950, 122956, 122962, 122968, 122973, + 122978, 122983, 122989, 122994, 122999, 123004, 123009, 123014, 123019, + 123024, 123029, 123034, 123039, 123044, 123049, 123054, 123059, 123064, + 123069, 123075, 123081, 123087, 123092, 123097, 123102, 123107, 123113, + 123119, 123125, 123130, 123135, 123140, 123145, 123150, 123155, 123160, + 123165, 123170, 19463, 123175, 123181, 123186, 123191, 123196, 123201, + 123206, 123212, 123217, 123222, 123227, 123232, 123237, 123243, 123248, + 123253, 123258, 123263, 123268, 123273, 123278, 123283, 123288, 123293, + 123298, 123303, 123308, 123313, 123318, 123323, 123328, 123333, 123338, + 123343, 123348, 123353, 123359, 123364, 123369, 123374, 123379, 123384, + 123389, 123394, 123399, 123404, 123409, 123414, 123419, 123424, 123429, + 123434, 123439, 123444, 123449, 123454, 123459, 123464, 123469, 123474, + 123479, 123484, 123489, 123494, 123499, 123504, 123509, 123514, 123519, + 123524, 123529, 123534, 123539, 123544, 123549, 123554, 123559, 123565, + 123570, 123575, 123580, 123585, 123590, 123595, 123600, 123605, 123610, + 123615, 123620, 123626, 123631, 123637, 123642, 123647, 123652, 123657, + 123662, 123667, 123673, 123678, 123683, 123689, 123694, 123699, 123704, + 123709, 123714, 123720, 123726, 123731, 123736, 14614, 123741, 123746, + 123751, 123756, 123761, 123766, 123771, 123776, 123781, 123786, 123791, + 123796, 123801, 123806, 123811, 123816, 123821, 123826, 123831, 123836, + 123841, 123846, 123851, 123856, 123861, 123866, 123871, 123876, 123881, + 123886, 123891, 123896, 123901, 123906, 123911, 123916, 123921, 123926, + 123931, 123936, 123941, 123946, 123951, 123956, 123961, 123966, 123971, + 123976, 123981, 123986, 123991, 123996, 124001, 124006, 124011, 124016, + 124021, 124026, 124031, 124036, 124041, 124046, 124051, 124056, 124061, + 124067, 124072, 124077, 124082, 124087, 124093, 124098, 124103, 124108, + 124113, 124118, 124123, 124129, 124134, 124139, 124144, 124149, 124154, + 124160, 124165, 124170, 124175, 124180, 124185, 124191, 124196, 124201, + 124206, 124211, 124216, 124222, 124228, 124233, 124238, 124243, 124249, + 124255, 124261, 124266, 124271, 124277, 124283, 124288, 124294, 124300, + 124306, 124311, 124316, 124322, 124327, 124333, 124338, 124344, 124353, + 124358, 124363, 124369, 124374, 124380, 124385, 124390, 124395, 124400, + 124405, 124410, 124415, 124420, 124425, 124430, 124435, 124440, 124445, + 124450, 124455, 124460, 124465, 124470, 124475, 124480, 124485, 124490, + 124495, 124500, 124505, 124510, 124515, 124520, 124525, 124530, 124535, + 124541, 124547, 124553, 124558, 124563, 124568, 124573, 124578, 124583, + 124588, 124593, 124598, 124603, 124608, 124613, 124618, 124623, 124628, + 124633, 124638, 124643, 124648, 124653, 124659, 124665, 124670, 124676, + 124681, 124686, 124692, 124697, 124703, 124708, 124714, 124719, 124725, + 124730, 124736, 124741, 124746, 124751, 124756, 124761, 124766, 124771, + 120849, 120855, 120861, 120867, 124777, 120873, 120879, 124783, 120885, + 120891, 120897, 120903, 120909, 120915, 120921, 120927, 120933, 124789, + 120939, 120945, 120951, 124795, 120957, 120963, 120969, 120975, 124801, + 120981, 120987, 120993, 121013, 124807, 124813, 121019, 124819, 121025, + 121031, 121037, 121043, 121049, 124825, 3331, 3336, 124830, 3351, 3356, + 3361, 124835, 124838, 124844, 124850, 124857, 124862, 124867, 2380, }; /* code->name phrasebook */ #define phrasebook_shift 7 #define phrasebook_short 190 static const unsigned char phrasebook[] = { - 0, 201, 242, 233, 175, 77, 207, 247, 77, 31, 57, 236, 110, 57, 210, 4, - 57, 251, 86, 250, 255, 45, 210, 103, 50, 210, 103, 250, 143, 107, 57, - 242, 26, 228, 57, 232, 42, 201, 58, 202, 18, 17, 191, 77, 17, 108, 17, - 109, 17, 139, 17, 137, 17, 153, 17, 173, 17, 181, 17, 176, 17, 184, 242, - 35, 204, 20, 219, 156, 57, 234, 1, 57, 230, 170, 57, 208, 8, 77, 242, 24, - 250, 132, 8, 6, 1, 65, 8, 6, 1, 250, 70, 8, 6, 1, 247, 145, 8, 6, 1, 238, - 80, 8, 6, 1, 73, 8, 6, 1, 233, 134, 8, 6, 1, 232, 14, 8, 6, 1, 230, 83, - 8, 6, 1, 70, 8, 6, 1, 223, 7, 8, 6, 1, 222, 125, 8, 6, 1, 170, 8, 6, 1, - 218, 147, 8, 6, 1, 215, 47, 8, 6, 1, 74, 8, 6, 1, 210, 226, 8, 6, 1, 208, - 97, 8, 6, 1, 148, 8, 6, 1, 206, 3, 8, 6, 1, 200, 39, 8, 6, 1, 69, 8, 6, - 1, 196, 8, 8, 6, 1, 193, 221, 8, 6, 1, 192, 235, 8, 6, 1, 192, 159, 8, 6, - 1, 191, 166, 45, 51, 248, 5, 207, 14, 202, 18, 50, 51, 248, 5, 242, 210, - 252, 8, 131, 219, 88, 230, 177, 252, 8, 8, 2, 1, 65, 8, 2, 1, 250, 70, 8, - 2, 1, 247, 145, 8, 2, 1, 238, 80, 8, 2, 1, 73, 8, 2, 1, 233, 134, 8, 2, - 1, 232, 14, 8, 2, 1, 230, 83, 8, 2, 1, 70, 8, 2, 1, 223, 7, 8, 2, 1, 222, - 125, 8, 2, 1, 170, 8, 2, 1, 218, 147, 8, 2, 1, 215, 47, 8, 2, 1, 74, 8, - 2, 1, 210, 226, 8, 2, 1, 208, 97, 8, 2, 1, 148, 8, 2, 1, 206, 3, 8, 2, 1, - 200, 39, 8, 2, 1, 69, 8, 2, 1, 196, 8, 8, 2, 1, 193, 221, 8, 2, 1, 192, - 235, 8, 2, 1, 192, 159, 8, 2, 1, 191, 166, 45, 238, 124, 248, 5, 81, 219, - 88, 50, 238, 124, 248, 5, 198, 147, 213, 24, 201, 242, 223, 65, 233, 175, - 77, 246, 232, 57, 209, 1, 57, 238, 123, 57, 192, 71, 57, 247, 230, 164, - 205, 49, 57, 236, 253, 238, 215, 57, 232, 255, 211, 40, 223, 116, 219, - 195, 54, 251, 65, 207, 247, 77, 212, 255, 57, 202, 27, 228, 58, 207, 73, - 57, 217, 125, 237, 80, 57, 209, 72, 57, 200, 177, 109, 200, 177, 139, - 251, 251, 252, 8, 216, 72, 57, 209, 133, 57, 82, 236, 96, 246, 243, 200, - 177, 108, 217, 21, 211, 40, 223, 116, 206, 198, 54, 251, 65, 207, 247, - 77, 193, 243, 232, 80, 91, 208, 17, 193, 243, 232, 80, 91, 230, 37, 193, - 243, 232, 80, 115, 208, 15, 223, 65, 208, 8, 77, 8, 6, 1, 41, 4, 230, - 176, 8, 6, 1, 41, 4, 251, 250, 8, 6, 1, 41, 4, 242, 209, 8, 6, 1, 41, 4, - 198, 147, 8, 6, 1, 41, 4, 236, 253, 8, 6, 1, 41, 4, 206, 184, 56, 8, 6, - 1, 251, 229, 8, 6, 1, 247, 146, 4, 246, 243, 8, 6, 1, 234, 227, 4, 230, - 176, 8, 6, 1, 234, 227, 4, 251, 250, 8, 6, 1, 234, 227, 4, 242, 209, 8, - 6, 1, 234, 227, 4, 236, 253, 8, 6, 1, 228, 44, 4, 230, 176, 8, 6, 1, 228, - 44, 4, 251, 250, 8, 6, 1, 228, 44, 4, 242, 209, 8, 6, 1, 228, 44, 4, 236, - 253, 8, 6, 1, 233, 206, 8, 6, 1, 215, 48, 4, 198, 147, 8, 6, 1, 186, 4, - 230, 176, 8, 6, 1, 186, 4, 251, 250, 8, 6, 1, 186, 4, 242, 209, 8, 6, 1, - 186, 4, 198, 147, 8, 6, 1, 186, 4, 236, 253, 215, 112, 57, 8, 6, 1, 186, - 4, 105, 8, 6, 1, 126, 4, 230, 176, 8, 6, 1, 126, 4, 251, 250, 8, 6, 1, - 126, 4, 242, 209, 8, 6, 1, 126, 4, 236, 253, 8, 6, 1, 192, 160, 4, 251, - 250, 8, 6, 1, 198, 228, 8, 2, 1, 203, 122, 206, 3, 8, 2, 1, 41, 4, 230, - 176, 8, 2, 1, 41, 4, 251, 250, 8, 2, 1, 41, 4, 242, 209, 8, 2, 1, 41, 4, - 198, 147, 8, 2, 1, 41, 4, 236, 253, 8, 2, 1, 41, 4, 206, 184, 56, 8, 2, - 1, 251, 229, 8, 2, 1, 247, 146, 4, 246, 243, 8, 2, 1, 234, 227, 4, 230, - 176, 8, 2, 1, 234, 227, 4, 251, 250, 8, 2, 1, 234, 227, 4, 242, 209, 8, - 2, 1, 234, 227, 4, 236, 253, 8, 2, 1, 228, 44, 4, 230, 176, 8, 2, 1, 228, - 44, 4, 251, 250, 8, 2, 1, 228, 44, 4, 242, 209, 8, 2, 1, 228, 44, 4, 236, - 253, 8, 2, 1, 233, 206, 8, 2, 1, 215, 48, 4, 198, 147, 8, 2, 1, 186, 4, - 230, 176, 8, 2, 1, 186, 4, 251, 250, 8, 2, 1, 186, 4, 242, 209, 8, 2, 1, - 186, 4, 198, 147, 8, 2, 1, 186, 4, 236, 253, 236, 155, 57, 8, 2, 1, 186, - 4, 105, 8, 2, 1, 126, 4, 230, 176, 8, 2, 1, 126, 4, 251, 250, 8, 2, 1, - 126, 4, 242, 209, 8, 2, 1, 126, 4, 236, 253, 8, 2, 1, 192, 160, 4, 251, - 250, 8, 2, 1, 198, 228, 8, 2, 1, 192, 160, 4, 236, 253, 8, 6, 1, 41, 4, - 217, 125, 8, 2, 1, 41, 4, 217, 125, 8, 6, 1, 41, 4, 247, 244, 8, 2, 1, - 41, 4, 247, 244, 8, 6, 1, 41, 4, 211, 126, 8, 2, 1, 41, 4, 211, 126, 8, - 6, 1, 247, 146, 4, 251, 250, 8, 2, 1, 247, 146, 4, 251, 250, 8, 6, 1, - 247, 146, 4, 242, 209, 8, 2, 1, 247, 146, 4, 242, 209, 8, 6, 1, 247, 146, - 4, 75, 56, 8, 2, 1, 247, 146, 4, 75, 56, 8, 6, 1, 247, 146, 4, 247, 44, - 8, 2, 1, 247, 146, 4, 247, 44, 8, 6, 1, 238, 81, 4, 247, 44, 8, 2, 1, - 238, 81, 4, 247, 44, 8, 6, 1, 238, 81, 4, 105, 8, 2, 1, 238, 81, 4, 105, - 8, 6, 1, 234, 227, 4, 217, 125, 8, 2, 1, 234, 227, 4, 217, 125, 8, 6, 1, - 234, 227, 4, 247, 244, 8, 2, 1, 234, 227, 4, 247, 244, 8, 6, 1, 234, 227, - 4, 75, 56, 8, 2, 1, 234, 227, 4, 75, 56, 8, 6, 1, 234, 227, 4, 211, 126, - 8, 2, 1, 234, 227, 4, 211, 126, 8, 6, 1, 234, 227, 4, 247, 44, 8, 2, 1, - 234, 227, 4, 247, 44, 8, 6, 1, 232, 15, 4, 242, 209, 8, 2, 1, 232, 15, 4, - 242, 209, 8, 6, 1, 232, 15, 4, 247, 244, 8, 2, 1, 232, 15, 4, 247, 244, - 8, 6, 1, 232, 15, 4, 75, 56, 8, 2, 1, 232, 15, 4, 75, 56, 8, 6, 1, 232, - 15, 4, 246, 243, 8, 2, 1, 232, 15, 4, 246, 243, 8, 6, 1, 230, 84, 4, 242, - 209, 8, 2, 1, 230, 84, 4, 242, 209, 8, 6, 1, 230, 84, 4, 105, 8, 2, 1, - 230, 84, 4, 105, 8, 6, 1, 228, 44, 4, 198, 147, 8, 2, 1, 228, 44, 4, 198, - 147, 8, 6, 1, 228, 44, 4, 217, 125, 8, 2, 1, 228, 44, 4, 217, 125, 8, 6, - 1, 228, 44, 4, 247, 244, 8, 2, 1, 228, 44, 4, 247, 244, 8, 6, 1, 228, 44, - 4, 211, 126, 8, 2, 1, 228, 44, 4, 211, 126, 8, 6, 1, 228, 44, 4, 75, 56, - 8, 2, 1, 236, 95, 70, 8, 6, 34, 223, 168, 8, 2, 34, 223, 168, 8, 6, 1, - 223, 8, 4, 242, 209, 8, 2, 1, 223, 8, 4, 242, 209, 8, 6, 1, 222, 126, 4, - 246, 243, 8, 2, 1, 222, 126, 4, 246, 243, 8, 2, 1, 220, 240, 8, 6, 1, - 220, 119, 4, 251, 250, 8, 2, 1, 220, 119, 4, 251, 250, 8, 6, 1, 220, 119, - 4, 246, 243, 8, 2, 1, 220, 119, 4, 246, 243, 8, 6, 1, 220, 119, 4, 247, - 44, 8, 2, 1, 220, 119, 4, 247, 44, 8, 6, 1, 220, 119, 4, 82, 236, 96, 8, - 2, 1, 220, 119, 4, 82, 236, 96, 8, 6, 1, 220, 119, 4, 105, 8, 2, 1, 220, - 119, 4, 105, 8, 6, 1, 215, 48, 4, 251, 250, 8, 2, 1, 215, 48, 4, 251, - 250, 8, 6, 1, 215, 48, 4, 246, 243, 8, 2, 1, 215, 48, 4, 246, 243, 8, 6, - 1, 215, 48, 4, 247, 44, 8, 2, 1, 215, 48, 4, 247, 44, 8, 2, 1, 215, 48, - 208, 226, 247, 157, 250, 255, 8, 6, 1, 234, 46, 8, 2, 1, 234, 46, 8, 6, - 1, 186, 4, 217, 125, 8, 2, 1, 186, 4, 217, 125, 8, 6, 1, 186, 4, 247, - 244, 8, 2, 1, 186, 4, 247, 244, 8, 6, 1, 186, 4, 54, 251, 250, 8, 2, 1, - 186, 4, 54, 251, 250, 8, 6, 34, 211, 139, 8, 2, 34, 211, 139, 8, 6, 1, - 207, 217, 4, 251, 250, 8, 2, 1, 207, 217, 4, 251, 250, 8, 6, 1, 207, 217, - 4, 246, 243, 8, 2, 1, 207, 217, 4, 246, 243, 8, 6, 1, 207, 217, 4, 247, - 44, 8, 2, 1, 207, 217, 4, 247, 44, 8, 6, 1, 206, 4, 4, 251, 250, 8, 2, 1, - 206, 4, 4, 251, 250, 8, 6, 1, 206, 4, 4, 242, 209, 8, 2, 1, 206, 4, 4, - 242, 209, 8, 6, 1, 206, 4, 4, 246, 243, 8, 2, 1, 206, 4, 4, 246, 243, 8, - 6, 1, 206, 4, 4, 247, 44, 8, 2, 1, 206, 4, 4, 247, 44, 8, 6, 1, 200, 40, - 4, 246, 243, 8, 2, 1, 200, 40, 4, 246, 243, 8, 6, 1, 200, 40, 4, 247, 44, - 8, 2, 1, 200, 40, 4, 247, 44, 8, 6, 1, 200, 40, 4, 105, 8, 2, 1, 200, 40, - 4, 105, 8, 6, 1, 126, 4, 198, 147, 8, 2, 1, 126, 4, 198, 147, 8, 6, 1, - 126, 4, 217, 125, 8, 2, 1, 126, 4, 217, 125, 8, 6, 1, 126, 4, 247, 244, - 8, 2, 1, 126, 4, 247, 244, 8, 6, 1, 126, 4, 206, 184, 56, 8, 2, 1, 126, - 4, 206, 184, 56, 8, 6, 1, 126, 4, 54, 251, 250, 8, 2, 1, 126, 4, 54, 251, - 250, 8, 6, 1, 126, 4, 211, 126, 8, 2, 1, 126, 4, 211, 126, 8, 6, 1, 193, - 222, 4, 242, 209, 8, 2, 1, 193, 222, 4, 242, 209, 8, 6, 1, 192, 160, 4, - 242, 209, 8, 2, 1, 192, 160, 4, 242, 209, 8, 6, 1, 192, 160, 4, 236, 253, - 8, 6, 1, 191, 167, 4, 251, 250, 8, 2, 1, 191, 167, 4, 251, 250, 8, 6, 1, - 191, 167, 4, 75, 56, 8, 2, 1, 191, 167, 4, 75, 56, 8, 6, 1, 191, 167, 4, - 247, 44, 8, 2, 1, 191, 167, 4, 247, 44, 8, 2, 1, 177, 206, 3, 8, 2, 1, - 78, 4, 105, 8, 6, 1, 78, 4, 106, 8, 6, 1, 78, 4, 198, 46, 8, 2, 1, 78, 4, - 198, 46, 8, 6, 1, 163, 173, 8, 2, 1, 163, 173, 8, 6, 1, 211, 66, 74, 8, - 6, 1, 247, 146, 4, 106, 8, 2, 1, 247, 146, 4, 106, 8, 6, 1, 251, 204, - 238, 80, 8, 6, 1, 238, 81, 4, 106, 8, 6, 1, 238, 81, 4, 198, 46, 8, 2, 1, - 238, 81, 4, 198, 46, 8, 2, 1, 152, 237, 61, 8, 6, 1, 207, 13, 73, 8, 6, - 1, 205, 81, 8, 6, 1, 211, 66, 73, 8, 6, 1, 233, 135, 4, 106, 8, 2, 1, - 233, 135, 4, 106, 8, 6, 1, 232, 15, 4, 106, 8, 6, 1, 231, 174, 8, 2, 1, - 228, 95, 8, 6, 1, 223, 55, 8, 6, 1, 228, 44, 4, 105, 8, 6, 1, 222, 126, - 4, 106, 8, 2, 1, 222, 126, 4, 106, 8, 2, 1, 220, 119, 4, 164, 8, 2, 1, - 220, 9, 4, 105, 8, 6, 1, 152, 218, 147, 8, 6, 1, 215, 48, 4, 45, 106, 8, - 2, 1, 215, 48, 4, 177, 50, 219, 188, 8, 6, 1, 186, 4, 82, 198, 147, 8, 6, - 1, 186, 4, 228, 156, 8, 2, 1, 186, 4, 228, 156, 8, 6, 1, 211, 121, 8, 2, - 1, 211, 121, 8, 6, 1, 210, 227, 4, 106, 8, 2, 1, 210, 227, 4, 106, 8, 1, - 191, 228, 8, 6, 1, 163, 109, 8, 2, 1, 163, 109, 8, 6, 1, 233, 226, 8, 1, - 207, 13, 233, 227, 218, 236, 8, 2, 1, 200, 40, 4, 210, 182, 106, 8, 6, 1, - 200, 40, 4, 106, 8, 2, 1, 200, 40, 4, 106, 8, 6, 1, 200, 40, 4, 207, 19, - 106, 8, 6, 1, 126, 4, 228, 156, 8, 2, 1, 126, 4, 228, 156, 8, 6, 1, 196, - 66, 8, 6, 1, 196, 9, 4, 106, 8, 6, 1, 192, 160, 4, 106, 8, 2, 1, 192, - 160, 4, 106, 8, 6, 1, 191, 167, 4, 105, 8, 2, 1, 191, 167, 4, 105, 8, 6, - 1, 233, 137, 8, 6, 1, 233, 138, 207, 12, 8, 2, 1, 233, 138, 207, 12, 8, - 2, 1, 233, 138, 4, 199, 210, 8, 1, 103, 4, 105, 8, 6, 1, 163, 153, 8, 2, - 1, 163, 153, 8, 1, 223, 65, 230, 231, 201, 59, 4, 105, 8, 1, 192, 238, 8, - 1, 237, 53, 242, 183, 8, 1, 219, 235, 242, 183, 8, 1, 251, 99, 242, 183, - 8, 1, 207, 19, 242, 183, 8, 6, 1, 234, 249, 4, 247, 44, 8, 6, 1, 238, 81, - 4, 2, 1, 191, 167, 4, 247, 44, 8, 2, 1, 234, 249, 4, 247, 44, 8, 6, 1, - 219, 53, 8, 6, 1, 220, 119, 4, 2, 1, 223, 7, 8, 2, 1, 219, 53, 8, 6, 1, - 213, 145, 8, 6, 1, 215, 48, 4, 2, 1, 223, 7, 8, 2, 1, 213, 145, 8, 6, 1, - 41, 4, 247, 44, 8, 2, 1, 41, 4, 247, 44, 8, 6, 1, 228, 44, 4, 247, 44, 8, - 2, 1, 228, 44, 4, 247, 44, 8, 6, 1, 186, 4, 247, 44, 8, 2, 1, 186, 4, - 247, 44, 8, 6, 1, 126, 4, 247, 44, 8, 2, 1, 126, 4, 247, 44, 8, 6, 1, - 126, 4, 236, 254, 24, 217, 125, 8, 2, 1, 126, 4, 236, 254, 24, 217, 125, - 8, 6, 1, 126, 4, 236, 254, 24, 251, 250, 8, 2, 1, 126, 4, 236, 254, 24, - 251, 250, 8, 6, 1, 126, 4, 236, 254, 24, 247, 44, 8, 2, 1, 126, 4, 236, - 254, 24, 247, 44, 8, 6, 1, 126, 4, 236, 254, 24, 230, 176, 8, 2, 1, 126, - 4, 236, 254, 24, 230, 176, 8, 2, 1, 152, 73, 8, 6, 1, 41, 4, 236, 254, - 24, 217, 125, 8, 2, 1, 41, 4, 236, 254, 24, 217, 125, 8, 6, 1, 41, 4, 75, - 95, 24, 217, 125, 8, 2, 1, 41, 4, 75, 95, 24, 217, 125, 8, 6, 1, 251, - 230, 4, 217, 125, 8, 2, 1, 251, 230, 4, 217, 125, 8, 6, 1, 232, 15, 4, - 105, 8, 2, 1, 232, 15, 4, 105, 8, 6, 1, 232, 15, 4, 247, 44, 8, 2, 1, - 232, 15, 4, 247, 44, 8, 6, 1, 222, 126, 4, 247, 44, 8, 2, 1, 222, 126, 4, - 247, 44, 8, 6, 1, 186, 4, 211, 126, 8, 2, 1, 186, 4, 211, 126, 8, 6, 1, - 186, 4, 211, 127, 24, 217, 125, 8, 2, 1, 186, 4, 211, 127, 24, 217, 125, - 8, 6, 1, 233, 138, 4, 247, 44, 8, 2, 1, 233, 138, 4, 247, 44, 8, 2, 1, - 223, 8, 4, 247, 44, 8, 6, 1, 234, 248, 8, 6, 1, 238, 81, 4, 2, 1, 191, - 166, 8, 2, 1, 234, 248, 8, 6, 1, 232, 15, 4, 251, 250, 8, 2, 1, 232, 15, - 4, 251, 250, 8, 6, 1, 228, 92, 8, 6, 1, 192, 238, 8, 6, 1, 215, 48, 4, - 230, 176, 8, 2, 1, 215, 48, 4, 230, 176, 8, 6, 1, 41, 4, 206, 184, 95, - 24, 251, 250, 8, 2, 1, 41, 4, 206, 184, 95, 24, 251, 250, 8, 6, 1, 251, - 230, 4, 251, 250, 8, 2, 1, 251, 230, 4, 251, 250, 8, 6, 1, 186, 4, 201, - 23, 24, 251, 250, 8, 2, 1, 186, 4, 201, 23, 24, 251, 250, 8, 6, 1, 41, 4, - 54, 230, 176, 8, 2, 1, 41, 4, 54, 230, 176, 8, 6, 1, 41, 4, 223, 65, 247, - 244, 8, 2, 1, 41, 4, 223, 65, 247, 244, 8, 6, 1, 234, 227, 4, 54, 230, - 176, 8, 2, 1, 234, 227, 4, 54, 230, 176, 8, 6, 1, 234, 227, 4, 223, 65, - 247, 244, 8, 2, 1, 234, 227, 4, 223, 65, 247, 244, 8, 6, 1, 228, 44, 4, - 54, 230, 176, 8, 2, 1, 228, 44, 4, 54, 230, 176, 8, 6, 1, 228, 44, 4, - 223, 65, 247, 244, 8, 2, 1, 228, 44, 4, 223, 65, 247, 244, 8, 6, 1, 186, - 4, 54, 230, 176, 8, 2, 1, 186, 4, 54, 230, 176, 8, 6, 1, 186, 4, 223, 65, - 247, 244, 8, 2, 1, 186, 4, 223, 65, 247, 244, 8, 6, 1, 207, 217, 4, 54, - 230, 176, 8, 2, 1, 207, 217, 4, 54, 230, 176, 8, 6, 1, 207, 217, 4, 223, - 65, 247, 244, 8, 2, 1, 207, 217, 4, 223, 65, 247, 244, 8, 6, 1, 126, 4, - 54, 230, 176, 8, 2, 1, 126, 4, 54, 230, 176, 8, 6, 1, 126, 4, 223, 65, - 247, 244, 8, 2, 1, 126, 4, 223, 65, 247, 244, 8, 6, 1, 206, 4, 4, 242, - 27, 60, 8, 2, 1, 206, 4, 4, 242, 27, 60, 8, 6, 1, 200, 40, 4, 242, 27, - 60, 8, 2, 1, 200, 40, 4, 242, 27, 60, 8, 6, 1, 191, 248, 8, 2, 1, 191, - 248, 8, 6, 1, 230, 84, 4, 247, 44, 8, 2, 1, 230, 84, 4, 247, 44, 8, 6, 1, - 215, 48, 4, 177, 50, 219, 188, 8, 2, 1, 238, 81, 4, 238, 128, 8, 6, 1, - 211, 9, 8, 2, 1, 211, 9, 8, 6, 1, 191, 167, 4, 106, 8, 2, 1, 191, 167, 4, - 106, 8, 6, 1, 41, 4, 75, 56, 8, 2, 1, 41, 4, 75, 56, 8, 6, 1, 234, 227, - 4, 246, 243, 8, 2, 1, 234, 227, 4, 246, 243, 8, 6, 1, 186, 4, 236, 254, - 24, 217, 125, 8, 2, 1, 186, 4, 236, 254, 24, 217, 125, 8, 6, 1, 186, 4, - 198, 148, 24, 217, 125, 8, 2, 1, 186, 4, 198, 148, 24, 217, 125, 8, 6, 1, - 186, 4, 75, 56, 8, 2, 1, 186, 4, 75, 56, 8, 6, 1, 186, 4, 75, 95, 24, - 217, 125, 8, 2, 1, 186, 4, 75, 95, 24, 217, 125, 8, 6, 1, 192, 160, 4, - 217, 125, 8, 2, 1, 192, 160, 4, 217, 125, 8, 2, 1, 220, 119, 4, 238, 128, - 8, 2, 1, 215, 48, 4, 238, 128, 8, 2, 1, 200, 40, 4, 238, 128, 8, 2, 1, - 236, 95, 223, 7, 8, 2, 1, 237, 156, 236, 213, 8, 2, 1, 208, 28, 236, 213, - 8, 6, 1, 41, 4, 105, 8, 6, 1, 247, 146, 4, 105, 8, 2, 1, 247, 146, 4, - 105, 8, 6, 1, 220, 119, 4, 164, 8, 6, 1, 200, 40, 4, 236, 250, 105, 8, 2, - 1, 206, 4, 4, 200, 142, 199, 210, 8, 2, 1, 191, 167, 4, 200, 142, 199, - 210, 8, 6, 1, 230, 231, 201, 58, 8, 2, 1, 230, 231, 201, 58, 8, 6, 1, 78, - 4, 105, 8, 6, 1, 126, 164, 8, 6, 1, 152, 196, 8, 8, 6, 1, 234, 227, 4, - 105, 8, 2, 1, 234, 227, 4, 105, 8, 6, 1, 223, 8, 4, 105, 8, 2, 1, 223, 8, - 4, 105, 8, 6, 1, 2, 208, 98, 4, 228, 219, 199, 210, 8, 2, 1, 208, 98, 4, - 228, 219, 199, 210, 8, 6, 1, 207, 217, 4, 105, 8, 2, 1, 207, 217, 4, 105, - 8, 6, 1, 192, 160, 4, 105, 8, 2, 1, 192, 160, 4, 105, 8, 2, 1, 152, 65, - 8, 2, 1, 251, 109, 8, 2, 1, 152, 251, 109, 8, 2, 1, 78, 4, 106, 8, 2, 1, - 211, 66, 74, 8, 2, 1, 247, 146, 4, 238, 128, 8, 2, 1, 238, 81, 4, 199, - 210, 8, 2, 1, 238, 81, 4, 106, 8, 2, 1, 207, 13, 73, 8, 2, 1, 205, 81, 8, - 2, 1, 205, 82, 4, 106, 8, 2, 1, 211, 66, 73, 8, 2, 1, 207, 13, 211, 66, - 73, 8, 2, 1, 207, 13, 211, 66, 234, 227, 4, 106, 8, 2, 1, 242, 171, 207, - 13, 211, 66, 73, 8, 2, 1, 236, 95, 223, 8, 4, 105, 8, 2, 1, 232, 15, 4, - 106, 8, 2, 1, 27, 232, 14, 8, 1, 2, 6, 232, 14, 8, 2, 1, 231, 174, 8, 2, - 1, 207, 135, 228, 156, 8, 2, 1, 152, 230, 83, 8, 2, 1, 230, 84, 4, 106, - 8, 2, 1, 229, 165, 4, 106, 8, 2, 1, 228, 44, 4, 105, 8, 2, 1, 223, 55, 8, - 1, 2, 6, 70, 8, 2, 1, 220, 119, 4, 82, 198, 147, 8, 2, 1, 220, 119, 4, - 248, 181, 8, 2, 1, 220, 119, 4, 207, 19, 106, 8, 2, 1, 219, 138, 8, 2, 1, - 152, 218, 147, 8, 2, 1, 152, 218, 148, 4, 177, 219, 188, 8, 2, 1, 218, - 148, 4, 106, 8, 2, 1, 215, 48, 4, 45, 106, 8, 2, 1, 215, 48, 4, 207, 19, - 106, 8, 1, 2, 6, 215, 47, 8, 2, 1, 249, 32, 74, 8, 1, 2, 6, 211, 139, 8, - 2, 1, 242, 171, 211, 99, 8, 2, 1, 209, 202, 8, 2, 1, 152, 148, 8, 2, 1, - 152, 207, 217, 4, 177, 219, 188, 8, 2, 1, 152, 207, 217, 4, 106, 8, 2, 1, - 207, 217, 4, 177, 219, 188, 8, 2, 1, 207, 217, 4, 199, 210, 8, 2, 1, 207, - 217, 4, 232, 192, 8, 2, 1, 207, 13, 207, 217, 4, 232, 192, 8, 1, 2, 6, - 148, 8, 1, 2, 6, 223, 65, 148, 8, 2, 1, 206, 4, 4, 106, 8, 2, 1, 233, - 226, 8, 2, 1, 236, 95, 223, 8, 4, 201, 23, 24, 106, 8, 2, 1, 201, 182, - 207, 13, 233, 226, 8, 2, 1, 233, 227, 4, 238, 128, 8, 2, 1, 152, 200, 39, - 8, 2, 1, 200, 40, 4, 207, 19, 106, 8, 2, 1, 126, 164, 8, 2, 1, 196, 66, - 8, 2, 1, 196, 9, 4, 106, 8, 2, 1, 152, 196, 8, 8, 2, 1, 152, 193, 221, 8, - 2, 1, 152, 192, 159, 8, 1, 2, 6, 192, 159, 8, 2, 1, 191, 167, 4, 207, 19, - 106, 8, 2, 1, 191, 167, 4, 238, 128, 8, 2, 1, 233, 137, 8, 2, 1, 233, - 138, 4, 238, 128, 8, 1, 230, 231, 201, 58, 8, 1, 209, 210, 195, 17, 232, - 66, 8, 1, 223, 65, 230, 231, 201, 58, 8, 1, 201, 31, 247, 145, 8, 1, 248, - 124, 242, 183, 8, 1, 2, 6, 250, 70, 8, 2, 1, 242, 171, 211, 66, 73, 8, 1, - 2, 6, 232, 15, 4, 106, 8, 1, 2, 6, 230, 83, 8, 2, 1, 223, 8, 4, 238, 165, - 8, 2, 1, 152, 222, 125, 8, 1, 2, 6, 170, 8, 2, 1, 208, 98, 4, 106, 8, 1, - 230, 231, 201, 59, 4, 105, 8, 1, 207, 13, 230, 231, 201, 59, 4, 105, 8, - 2, 1, 234, 249, 236, 213, 8, 2, 1, 237, 25, 236, 213, 8, 2, 1, 234, 249, - 236, 214, 4, 238, 128, 8, 2, 1, 197, 166, 236, 213, 8, 2, 1, 199, 74, - 236, 213, 8, 2, 1, 199, 147, 236, 214, 4, 238, 128, 8, 2, 1, 232, 252, - 236, 213, 8, 2, 1, 218, 205, 236, 213, 8, 2, 1, 218, 149, 236, 213, 8, 1, - 248, 124, 210, 3, 8, 1, 248, 132, 210, 3, 8, 2, 1, 152, 230, 84, 4, 232, - 192, 8, 2, 1, 152, 230, 84, 4, 232, 193, 24, 199, 210, 59, 1, 2, 230, 83, - 59, 1, 2, 230, 84, 4, 106, 59, 1, 2, 223, 7, 59, 1, 2, 148, 59, 1, 2, - 152, 148, 59, 1, 2, 152, 207, 217, 4, 106, 59, 1, 2, 6, 223, 65, 148, 59, - 1, 2, 193, 221, 59, 1, 2, 192, 159, 59, 1, 208, 208, 59, 1, 54, 208, 208, - 59, 1, 152, 242, 26, 59, 1, 250, 255, 59, 1, 207, 13, 242, 26, 59, 1, 50, - 134, 206, 183, 59, 1, 45, 134, 206, 183, 59, 1, 230, 231, 201, 58, 59, 1, - 207, 13, 230, 231, 201, 58, 59, 1, 45, 250, 185, 59, 1, 50, 250, 185, 59, - 1, 132, 250, 185, 59, 1, 143, 250, 185, 59, 1, 242, 210, 252, 8, 247, 44, - 59, 1, 81, 219, 88, 59, 1, 217, 125, 59, 1, 251, 251, 252, 8, 59, 1, 230, - 177, 252, 8, 59, 1, 131, 81, 219, 88, 59, 1, 131, 217, 125, 59, 1, 131, - 230, 177, 252, 8, 59, 1, 131, 251, 251, 252, 8, 59, 1, 197, 234, 242, 35, - 59, 1, 134, 197, 234, 242, 35, 59, 1, 246, 228, 50, 134, 206, 183, 59, 1, - 246, 228, 45, 134, 206, 183, 59, 1, 132, 199, 223, 59, 1, 143, 199, 223, - 59, 1, 107, 57, 59, 1, 216, 18, 57, 247, 244, 75, 56, 206, 184, 56, 211, - 126, 2, 198, 147, 54, 251, 251, 252, 8, 59, 1, 206, 253, 106, 59, 1, 238, - 171, 252, 8, 59, 1, 2, 231, 174, 59, 1, 2, 170, 59, 1, 2, 206, 3, 59, 1, - 2, 192, 235, 59, 1, 2, 207, 13, 230, 231, 201, 58, 59, 1, 233, 159, 163, - 164, 59, 1, 136, 163, 164, 59, 1, 216, 68, 163, 164, 59, 1, 131, 163, - 164, 59, 1, 233, 158, 163, 164, 59, 1, 192, 22, 237, 50, 163, 77, 59, 1, - 192, 107, 237, 50, 163, 77, 59, 1, 195, 15, 59, 1, 196, 105, 59, 1, 54, - 250, 255, 59, 1, 131, 143, 250, 185, 59, 1, 131, 132, 250, 185, 59, 1, - 131, 45, 250, 185, 59, 1, 131, 50, 250, 185, 59, 1, 131, 206, 183, 59, 1, - 82, 230, 177, 252, 8, 59, 1, 82, 54, 230, 177, 252, 8, 59, 1, 82, 54, - 251, 251, 252, 8, 59, 1, 131, 198, 147, 59, 1, 207, 142, 242, 35, 59, 1, - 248, 199, 136, 198, 74, 59, 1, 234, 53, 136, 198, 74, 59, 1, 248, 199, - 131, 198, 74, 59, 1, 234, 53, 131, 198, 74, 59, 1, 203, 99, 59, 1, 211, - 66, 203, 99, 59, 1, 131, 45, 55, 33, 230, 177, 252, 8, 33, 251, 251, 252, - 8, 33, 242, 210, 252, 8, 33, 198, 147, 33, 217, 125, 33, 210, 244, 33, - 247, 244, 33, 75, 56, 33, 236, 253, 33, 228, 219, 56, 33, 206, 184, 56, - 33, 54, 251, 251, 252, 8, 33, 247, 44, 33, 81, 219, 89, 56, 33, 54, 81, - 219, 89, 56, 33, 54, 230, 177, 252, 8, 33, 247, 71, 33, 223, 65, 247, - 244, 33, 152, 242, 27, 56, 33, 242, 27, 56, 33, 207, 13, 242, 27, 56, 33, - 242, 27, 95, 187, 33, 230, 177, 252, 9, 60, 33, 251, 251, 252, 9, 60, 33, - 45, 199, 224, 60, 33, 50, 199, 224, 60, 33, 45, 251, 65, 56, 33, 228, - 156, 33, 45, 134, 206, 184, 60, 33, 132, 199, 224, 60, 33, 143, 199, 224, - 60, 33, 107, 3, 60, 33, 216, 18, 3, 60, 33, 210, 180, 228, 219, 60, 33, - 207, 19, 228, 219, 60, 33, 75, 60, 33, 236, 254, 60, 33, 206, 184, 60, - 33, 242, 27, 60, 33, 246, 243, 33, 211, 126, 33, 81, 219, 89, 60, 33, - 247, 237, 60, 33, 223, 65, 54, 250, 221, 60, 33, 247, 45, 60, 33, 242, - 210, 252, 9, 60, 33, 247, 245, 60, 33, 223, 65, 247, 245, 60, 33, 198, - 148, 60, 33, 217, 126, 60, 33, 131, 219, 88, 33, 54, 131, 219, 88, 33, - 198, 148, 210, 245, 33, 203, 35, 201, 23, 210, 245, 33, 177, 201, 23, - 210, 245, 33, 203, 35, 202, 19, 210, 245, 33, 177, 202, 19, 210, 245, 33, - 50, 134, 206, 184, 60, 33, 223, 65, 247, 237, 60, 33, 51, 60, 33, 205, - 57, 60, 33, 192, 236, 56, 33, 81, 198, 147, 33, 54, 210, 244, 33, 230, - 177, 163, 77, 33, 251, 251, 163, 77, 33, 35, 209, 251, 33, 35, 221, 6, - 33, 35, 236, 247, 198, 55, 33, 35, 191, 233, 33, 247, 237, 56, 33, 234, - 1, 3, 60, 33, 54, 81, 219, 89, 60, 33, 45, 251, 65, 60, 33, 212, 255, - 198, 148, 56, 33, 228, 225, 56, 33, 251, 114, 234, 3, 118, 56, 33, 45, - 50, 63, 60, 33, 196, 62, 63, 60, 33, 230, 183, 222, 169, 33, 50, 250, - 186, 56, 33, 45, 134, 206, 184, 56, 33, 232, 249, 33, 192, 236, 60, 33, - 45, 250, 186, 60, 33, 50, 250, 186, 60, 33, 50, 250, 186, 24, 132, 250, - 186, 60, 33, 50, 134, 206, 184, 56, 33, 75, 95, 187, 33, 250, 144, 60, - 33, 54, 206, 184, 60, 33, 191, 21, 56, 33, 54, 247, 245, 60, 33, 54, 247, - 244, 33, 54, 217, 125, 33, 54, 217, 126, 60, 33, 54, 198, 147, 33, 54, - 223, 65, 247, 244, 33, 54, 96, 63, 60, 33, 8, 2, 1, 65, 33, 8, 2, 1, 73, - 33, 8, 2, 1, 70, 33, 8, 2, 1, 74, 33, 8, 2, 1, 69, 33, 8, 2, 1, 247, 145, - 33, 8, 2, 1, 238, 80, 33, 8, 2, 1, 230, 83, 33, 8, 2, 1, 218, 147, 33, 8, - 2, 1, 148, 33, 8, 2, 1, 200, 39, 33, 8, 2, 1, 196, 8, 33, 8, 2, 1, 192, - 235, 35, 6, 1, 229, 153, 35, 2, 1, 229, 153, 35, 6, 1, 250, 220, 205, - 140, 35, 2, 1, 250, 220, 205, 140, 35, 212, 121, 57, 35, 110, 212, 121, - 57, 35, 6, 1, 210, 161, 236, 221, 35, 2, 1, 210, 161, 236, 221, 35, 191, - 233, 35, 2, 207, 13, 218, 185, 202, 192, 113, 35, 2, 235, 94, 218, 185, - 202, 192, 113, 35, 2, 207, 13, 235, 94, 218, 185, 202, 192, 113, 35, 208, - 8, 77, 35, 6, 1, 191, 240, 35, 198, 55, 35, 236, 247, 198, 55, 35, 6, 1, - 251, 110, 4, 198, 55, 35, 251, 43, 199, 103, 35, 6, 1, 234, 6, 4, 198, - 55, 35, 6, 1, 233, 212, 4, 198, 55, 35, 6, 1, 223, 56, 4, 198, 55, 35, 6, - 1, 211, 97, 4, 198, 55, 35, 6, 1, 196, 67, 4, 198, 55, 35, 6, 1, 211, - 100, 4, 198, 55, 35, 2, 1, 223, 56, 4, 236, 247, 24, 198, 55, 35, 6, 1, - 251, 109, 35, 6, 1, 248, 162, 35, 6, 1, 231, 174, 35, 6, 1, 237, 61, 35, - 6, 1, 234, 5, 35, 6, 1, 191, 76, 35, 6, 1, 233, 211, 35, 6, 1, 199, 10, - 35, 6, 1, 223, 55, 35, 6, 1, 222, 46, 35, 6, 1, 220, 7, 35, 6, 1, 215, - 139, 35, 6, 1, 212, 165, 35, 6, 1, 192, 207, 35, 6, 1, 211, 96, 35, 6, 1, - 209, 176, 35, 6, 1, 206, 254, 35, 6, 1, 202, 191, 35, 6, 1, 199, 161, 35, - 6, 1, 196, 66, 35, 6, 1, 209, 202, 35, 6, 1, 243, 47, 35, 6, 1, 208, 169, - 35, 6, 1, 211, 99, 35, 6, 1, 223, 56, 4, 236, 246, 35, 6, 1, 196, 67, 4, - 236, 246, 35, 2, 1, 251, 110, 4, 198, 55, 35, 2, 1, 234, 6, 4, 198, 55, - 35, 2, 1, 233, 212, 4, 198, 55, 35, 2, 1, 223, 56, 4, 198, 55, 35, 2, 1, - 196, 67, 4, 236, 247, 24, 198, 55, 35, 2, 1, 251, 109, 35, 2, 1, 248, - 162, 35, 2, 1, 231, 174, 35, 2, 1, 237, 61, 35, 2, 1, 234, 5, 35, 2, 1, - 191, 76, 35, 2, 1, 233, 211, 35, 2, 1, 199, 10, 35, 2, 1, 223, 55, 35, 2, - 1, 222, 46, 35, 2, 1, 220, 7, 35, 2, 1, 215, 139, 35, 2, 1, 212, 165, 35, - 2, 1, 192, 207, 35, 2, 1, 211, 96, 35, 2, 1, 209, 176, 35, 2, 1, 206, - 254, 35, 2, 1, 52, 202, 191, 35, 2, 1, 202, 191, 35, 2, 1, 199, 161, 35, - 2, 1, 196, 66, 35, 2, 1, 209, 202, 35, 2, 1, 243, 47, 35, 2, 1, 208, 169, - 35, 2, 1, 211, 99, 35, 2, 1, 223, 56, 4, 236, 246, 35, 2, 1, 196, 67, 4, - 236, 246, 35, 2, 1, 211, 97, 4, 198, 55, 35, 2, 1, 196, 67, 4, 198, 55, - 35, 2, 1, 211, 100, 4, 198, 55, 35, 6, 222, 76, 113, 35, 248, 163, 113, - 35, 199, 11, 113, 35, 196, 67, 4, 228, 219, 113, 35, 196, 67, 4, 251, - 251, 24, 228, 219, 113, 35, 196, 67, 4, 236, 254, 24, 228, 219, 113, 35, - 209, 203, 113, 35, 209, 177, 113, 35, 222, 76, 113, 35, 1, 250, 220, 221, - 11, 35, 2, 1, 250, 220, 221, 11, 35, 1, 201, 68, 35, 2, 1, 201, 68, 35, - 1, 236, 221, 35, 2, 1, 236, 221, 35, 1, 221, 11, 35, 2, 1, 221, 11, 35, - 1, 205, 140, 35, 2, 1, 205, 140, 93, 6, 1, 203, 100, 93, 2, 1, 203, 100, - 93, 6, 1, 233, 3, 93, 2, 1, 233, 3, 93, 6, 1, 221, 171, 93, 2, 1, 221, - 171, 93, 6, 1, 228, 210, 93, 2, 1, 228, 210, 93, 6, 1, 231, 169, 93, 2, - 1, 231, 169, 93, 6, 1, 203, 66, 93, 2, 1, 203, 66, 93, 6, 1, 237, 77, 93, - 2, 1, 237, 77, 35, 222, 47, 113, 35, 206, 255, 113, 35, 218, 185, 202, - 192, 113, 35, 1, 191, 240, 35, 6, 199, 11, 113, 35, 218, 185, 234, 6, - 113, 35, 207, 13, 218, 185, 234, 6, 113, 35, 6, 1, 203, 51, 35, 2, 1, - 203, 51, 35, 6, 218, 185, 202, 192, 113, 35, 6, 1, 205, 137, 35, 2, 1, - 205, 137, 35, 206, 255, 4, 201, 23, 113, 35, 6, 207, 13, 218, 185, 202, - 192, 113, 35, 6, 235, 94, 218, 185, 202, 192, 113, 35, 6, 207, 13, 235, - 94, 218, 185, 202, 192, 113, 42, 6, 1, 223, 198, 4, 230, 176, 42, 6, 1, - 223, 60, 42, 6, 1, 236, 147, 42, 6, 1, 230, 240, 42, 6, 1, 196, 121, 223, - 197, 42, 6, 1, 234, 244, 42, 6, 1, 247, 155, 70, 42, 6, 1, 192, 33, 42, - 6, 1, 222, 238, 42, 6, 1, 219, 52, 42, 6, 1, 213, 137, 42, 6, 1, 197, - 151, 42, 6, 1, 221, 79, 42, 6, 1, 228, 44, 4, 230, 176, 42, 6, 1, 203, - 35, 69, 42, 6, 1, 234, 240, 42, 6, 1, 65, 42, 6, 1, 248, 223, 42, 6, 1, - 195, 150, 42, 6, 1, 231, 40, 42, 6, 1, 237, 101, 42, 6, 1, 223, 197, 42, - 6, 1, 191, 62, 42, 6, 1, 191, 87, 42, 6, 1, 70, 42, 6, 1, 203, 35, 70, - 42, 6, 1, 157, 42, 6, 1, 234, 97, 42, 6, 1, 234, 72, 42, 6, 1, 234, 61, - 42, 6, 1, 74, 42, 6, 1, 210, 53, 42, 6, 1, 233, 248, 42, 6, 1, 233, 236, - 42, 6, 1, 199, 140, 42, 6, 1, 69, 42, 6, 1, 234, 138, 42, 6, 1, 144, 42, - 6, 1, 197, 157, 42, 6, 1, 243, 79, 42, 6, 1, 203, 160, 42, 6, 1, 203, - 111, 42, 6, 1, 229, 240, 57, 42, 6, 1, 192, 58, 42, 6, 1, 202, 27, 57, - 42, 6, 1, 73, 42, 6, 1, 191, 225, 42, 6, 1, 169, 42, 2, 1, 65, 42, 2, 1, - 248, 223, 42, 2, 1, 195, 150, 42, 2, 1, 231, 40, 42, 2, 1, 237, 101, 42, - 2, 1, 223, 197, 42, 2, 1, 191, 62, 42, 2, 1, 191, 87, 42, 2, 1, 70, 42, - 2, 1, 203, 35, 70, 42, 2, 1, 157, 42, 2, 1, 234, 97, 42, 2, 1, 234, 72, - 42, 2, 1, 234, 61, 42, 2, 1, 74, 42, 2, 1, 210, 53, 42, 2, 1, 233, 248, - 42, 2, 1, 233, 236, 42, 2, 1, 199, 140, 42, 2, 1, 69, 42, 2, 1, 234, 138, - 42, 2, 1, 144, 42, 2, 1, 197, 157, 42, 2, 1, 243, 79, 42, 2, 1, 203, 160, - 42, 2, 1, 203, 111, 42, 2, 1, 229, 240, 57, 42, 2, 1, 192, 58, 42, 2, 1, - 202, 27, 57, 42, 2, 1, 73, 42, 2, 1, 191, 225, 42, 2, 1, 169, 42, 2, 1, - 223, 198, 4, 230, 176, 42, 2, 1, 223, 60, 42, 2, 1, 236, 147, 42, 2, 1, - 230, 240, 42, 2, 1, 196, 121, 223, 197, 42, 2, 1, 234, 244, 42, 2, 1, - 247, 155, 70, 42, 2, 1, 192, 33, 42, 2, 1, 222, 238, 42, 2, 1, 219, 52, - 42, 2, 1, 213, 137, 42, 2, 1, 197, 151, 42, 2, 1, 221, 79, 42, 2, 1, 228, - 44, 4, 230, 176, 42, 2, 1, 203, 35, 69, 42, 2, 1, 234, 240, 42, 6, 1, - 211, 99, 42, 2, 1, 211, 99, 42, 6, 1, 192, 95, 42, 2, 1, 192, 95, 42, 6, - 1, 223, 53, 73, 42, 2, 1, 223, 53, 73, 42, 6, 1, 219, 59, 191, 190, 42, - 2, 1, 219, 59, 191, 190, 42, 6, 1, 223, 53, 219, 59, 191, 190, 42, 2, 1, - 223, 53, 219, 59, 191, 190, 42, 6, 1, 248, 127, 191, 190, 42, 2, 1, 248, - 127, 191, 190, 42, 6, 1, 223, 53, 248, 127, 191, 190, 42, 2, 1, 223, 53, - 248, 127, 191, 190, 42, 6, 1, 220, 224, 42, 2, 1, 220, 224, 42, 6, 1, - 208, 169, 42, 2, 1, 208, 169, 42, 6, 1, 232, 187, 42, 2, 1, 232, 187, 42, - 6, 1, 223, 9, 42, 2, 1, 223, 9, 42, 6, 1, 223, 10, 4, 54, 230, 177, 252, - 8, 42, 2, 1, 223, 10, 4, 54, 230, 177, 252, 8, 42, 6, 1, 196, 124, 42, 2, - 1, 196, 124, 42, 6, 1, 206, 110, 211, 99, 42, 2, 1, 206, 110, 211, 99, - 42, 6, 1, 211, 100, 4, 198, 117, 42, 2, 1, 211, 100, 4, 198, 117, 42, 6, - 1, 211, 20, 42, 2, 1, 211, 20, 42, 6, 1, 221, 11, 42, 2, 1, 221, 11, 42, - 198, 224, 57, 33, 42, 198, 117, 33, 42, 210, 181, 33, 42, 237, 168, 209, - 67, 33, 42, 208, 163, 209, 67, 33, 42, 209, 47, 33, 42, 228, 110, 198, - 224, 57, 33, 42, 216, 30, 57, 42, 6, 1, 203, 35, 228, 44, 4, 199, 210, - 42, 2, 1, 203, 35, 228, 44, 4, 199, 210, 42, 6, 1, 204, 16, 57, 42, 2, 1, - 204, 16, 57, 42, 6, 1, 233, 249, 4, 198, 177, 42, 2, 1, 233, 249, 4, 198, - 177, 42, 6, 1, 231, 41, 4, 196, 65, 42, 2, 1, 231, 41, 4, 196, 65, 42, 6, - 1, 231, 41, 4, 105, 42, 2, 1, 231, 41, 4, 105, 42, 6, 1, 231, 41, 4, 82, - 106, 42, 2, 1, 231, 41, 4, 82, 106, 42, 6, 1, 191, 63, 4, 237, 42, 42, 2, - 1, 191, 63, 4, 237, 42, 42, 6, 1, 191, 88, 4, 237, 42, 42, 2, 1, 191, 88, - 4, 237, 42, 42, 6, 1, 222, 115, 4, 237, 42, 42, 2, 1, 222, 115, 4, 237, - 42, 42, 6, 1, 222, 115, 4, 81, 105, 42, 2, 1, 222, 115, 4, 81, 105, 42, - 6, 1, 222, 115, 4, 105, 42, 2, 1, 222, 115, 4, 105, 42, 6, 1, 249, 20, - 157, 42, 2, 1, 249, 20, 157, 42, 6, 1, 234, 62, 4, 237, 42, 42, 2, 1, - 234, 62, 4, 237, 42, 42, 6, 34, 234, 62, 231, 40, 42, 2, 34, 234, 62, - 231, 40, 42, 6, 1, 210, 54, 4, 82, 106, 42, 2, 1, 210, 54, 4, 82, 106, - 42, 6, 1, 252, 15, 144, 42, 2, 1, 252, 15, 144, 42, 6, 1, 233, 237, 4, - 237, 42, 42, 2, 1, 233, 237, 4, 237, 42, 42, 6, 1, 199, 141, 4, 237, 42, - 42, 2, 1, 199, 141, 4, 237, 42, 42, 6, 1, 201, 48, 69, 42, 2, 1, 201, 48, - 69, 42, 6, 1, 201, 48, 126, 4, 105, 42, 2, 1, 201, 48, 126, 4, 105, 42, - 6, 1, 230, 72, 4, 237, 42, 42, 2, 1, 230, 72, 4, 237, 42, 42, 6, 34, 199, - 141, 197, 157, 42, 2, 34, 199, 141, 197, 157, 42, 6, 1, 243, 80, 4, 237, - 42, 42, 2, 1, 243, 80, 4, 237, 42, 42, 6, 1, 243, 80, 4, 81, 105, 42, 2, - 1, 243, 80, 4, 81, 105, 42, 6, 1, 203, 77, 42, 2, 1, 203, 77, 42, 6, 1, - 252, 15, 243, 79, 42, 2, 1, 252, 15, 243, 79, 42, 6, 1, 252, 15, 243, 80, - 4, 237, 42, 42, 2, 1, 252, 15, 243, 80, 4, 237, 42, 42, 1, 210, 169, 42, - 6, 1, 191, 63, 4, 247, 244, 42, 2, 1, 191, 63, 4, 247, 244, 42, 6, 1, - 222, 115, 4, 106, 42, 2, 1, 222, 115, 4, 106, 42, 6, 1, 234, 98, 4, 199, - 210, 42, 2, 1, 234, 98, 4, 199, 210, 42, 6, 1, 234, 62, 4, 106, 42, 2, 1, - 234, 62, 4, 106, 42, 6, 1, 234, 62, 4, 199, 210, 42, 2, 1, 234, 62, 4, - 199, 210, 42, 6, 1, 221, 183, 243, 79, 42, 2, 1, 221, 183, 243, 79, 42, - 6, 1, 234, 73, 4, 199, 210, 42, 2, 1, 234, 73, 4, 199, 210, 42, 2, 1, - 210, 169, 42, 6, 1, 41, 4, 247, 244, 42, 2, 1, 41, 4, 247, 244, 42, 6, 1, - 41, 4, 236, 253, 42, 2, 1, 41, 4, 236, 253, 42, 6, 34, 41, 223, 197, 42, - 2, 34, 41, 223, 197, 42, 6, 1, 223, 198, 4, 247, 244, 42, 2, 1, 223, 198, - 4, 247, 244, 42, 6, 1, 205, 81, 42, 2, 1, 205, 81, 42, 6, 1, 205, 82, 4, - 236, 253, 42, 2, 1, 205, 82, 4, 236, 253, 42, 6, 1, 191, 63, 4, 236, 253, - 42, 2, 1, 191, 63, 4, 236, 253, 42, 6, 1, 191, 88, 4, 236, 253, 42, 2, 1, - 191, 88, 4, 236, 253, 42, 6, 1, 252, 15, 234, 244, 42, 2, 1, 252, 15, - 234, 244, 42, 6, 1, 228, 44, 4, 217, 125, 42, 2, 1, 228, 44, 4, 217, 125, - 42, 6, 1, 228, 44, 4, 236, 253, 42, 2, 1, 228, 44, 4, 236, 253, 42, 6, 1, - 186, 4, 236, 253, 42, 2, 1, 186, 4, 236, 253, 42, 6, 1, 249, 32, 74, 42, - 2, 1, 249, 32, 74, 42, 6, 1, 249, 32, 186, 4, 236, 253, 42, 2, 1, 249, - 32, 186, 4, 236, 253, 42, 6, 1, 234, 227, 4, 236, 253, 42, 2, 1, 234, - 227, 4, 236, 253, 42, 6, 1, 126, 4, 217, 125, 42, 2, 1, 126, 4, 217, 125, - 42, 6, 1, 126, 4, 236, 253, 42, 2, 1, 126, 4, 236, 253, 42, 6, 1, 126, 4, - 54, 251, 250, 42, 2, 1, 126, 4, 54, 251, 250, 42, 6, 1, 243, 80, 4, 236, - 253, 42, 2, 1, 243, 80, 4, 236, 253, 42, 6, 1, 231, 41, 4, 237, 42, 42, - 2, 1, 231, 41, 4, 237, 42, 42, 6, 1, 192, 59, 4, 236, 253, 42, 2, 1, 192, - 59, 4, 236, 253, 42, 6, 1, 231, 41, 4, 201, 23, 24, 106, 42, 2, 1, 231, - 41, 4, 201, 23, 24, 106, 42, 6, 1, 230, 72, 4, 106, 42, 2, 1, 230, 72, 4, - 106, 42, 6, 1, 230, 72, 4, 105, 42, 2, 1, 230, 72, 4, 105, 42, 6, 1, 221, - 21, 237, 101, 42, 2, 1, 221, 21, 237, 101, 42, 6, 1, 221, 21, 236, 147, - 42, 2, 1, 221, 21, 236, 147, 42, 6, 1, 221, 21, 191, 12, 42, 2, 1, 221, - 21, 191, 12, 42, 6, 1, 221, 21, 234, 236, 42, 2, 1, 221, 21, 234, 236, - 42, 6, 1, 221, 21, 219, 52, 42, 2, 1, 221, 21, 219, 52, 42, 6, 1, 221, - 21, 213, 137, 42, 2, 1, 221, 21, 213, 137, 42, 6, 1, 221, 21, 202, 110, - 42, 2, 1, 221, 21, 202, 110, 42, 6, 1, 221, 21, 198, 111, 42, 2, 1, 221, - 21, 198, 111, 42, 6, 1, 207, 13, 191, 87, 42, 2, 1, 207, 13, 191, 87, 42, - 6, 1, 234, 98, 4, 106, 42, 2, 1, 234, 98, 4, 106, 42, 6, 1, 219, 135, 42, - 2, 1, 219, 135, 42, 6, 1, 207, 1, 42, 2, 1, 207, 1, 42, 6, 1, 192, 129, - 42, 2, 1, 192, 129, 42, 6, 1, 208, 89, 42, 2, 1, 208, 89, 42, 6, 1, 193, - 123, 42, 2, 1, 193, 123, 42, 6, 1, 251, 137, 157, 42, 2, 1, 251, 137, - 157, 42, 6, 1, 234, 98, 4, 82, 106, 42, 2, 1, 234, 98, 4, 82, 106, 42, 6, - 1, 234, 62, 4, 82, 106, 42, 2, 1, 234, 62, 4, 82, 106, 42, 6, 1, 210, 54, - 4, 237, 42, 42, 2, 1, 210, 54, 4, 237, 42, 42, 6, 1, 203, 78, 4, 237, 42, - 42, 2, 1, 203, 78, 4, 237, 42, 42, 6, 1, 234, 62, 4, 45, 106, 42, 2, 1, - 234, 62, 4, 45, 106, 42, 6, 1, 234, 228, 42, 2, 1, 234, 228, 42, 6, 1, - 237, 150, 42, 2, 1, 237, 150, 42, 6, 1, 234, 98, 4, 237, 42, 42, 2, 1, - 234, 98, 4, 237, 42, 250, 199, 6, 1, 250, 78, 250, 199, 6, 1, 248, 179, - 250, 199, 6, 1, 231, 3, 250, 199, 6, 1, 237, 241, 250, 199, 6, 1, 234, - 151, 250, 199, 6, 1, 191, 123, 250, 199, 6, 1, 234, 130, 250, 199, 6, 1, - 233, 213, 250, 199, 6, 1, 159, 250, 199, 6, 1, 191, 62, 250, 199, 6, 1, - 223, 103, 250, 199, 6, 1, 219, 56, 250, 199, 6, 1, 192, 212, 250, 199, 6, - 1, 247, 112, 250, 199, 6, 1, 221, 226, 250, 199, 6, 1, 228, 247, 250, - 199, 6, 1, 223, 4, 250, 199, 6, 1, 231, 51, 250, 199, 6, 1, 243, 69, 250, - 199, 6, 1, 216, 167, 250, 199, 6, 1, 192, 33, 250, 199, 6, 1, 212, 240, - 250, 199, 6, 1, 203, 160, 250, 199, 6, 1, 195, 21, 250, 199, 6, 1, 246, - 209, 250, 199, 6, 1, 210, 32, 250, 199, 6, 1, 222, 220, 250, 199, 6, 1, - 166, 250, 199, 6, 1, 205, 34, 250, 199, 6, 1, 195, 71, 250, 199, 6, 1, - 198, 114, 250, 199, 6, 1, 207, 66, 250, 199, 6, 1, 242, 51, 250, 199, 6, - 1, 192, 17, 250, 199, 6, 1, 209, 106, 250, 199, 6, 1, 221, 237, 250, 199, - 6, 1, 211, 124, 250, 199, 6, 1, 233, 5, 250, 199, 59, 1, 45, 134, 206, - 183, 250, 199, 250, 255, 250, 199, 234, 65, 77, 250, 199, 233, 175, 77, - 250, 199, 242, 26, 250, 199, 208, 8, 77, 250, 199, 252, 16, 77, 250, 199, - 2, 1, 152, 250, 78, 250, 199, 2, 1, 250, 78, 250, 199, 2, 1, 248, 179, - 250, 199, 2, 1, 231, 3, 250, 199, 2, 1, 237, 241, 250, 199, 2, 1, 234, - 151, 250, 199, 2, 1, 191, 123, 250, 199, 2, 1, 234, 130, 250, 199, 2, 1, - 233, 213, 250, 199, 2, 1, 159, 250, 199, 2, 1, 191, 62, 250, 199, 2, 1, - 223, 103, 250, 199, 2, 1, 219, 56, 250, 199, 2, 1, 192, 212, 250, 199, 2, - 1, 247, 112, 250, 199, 2, 1, 221, 226, 250, 199, 2, 1, 228, 247, 250, - 199, 2, 1, 223, 4, 250, 199, 2, 1, 231, 51, 250, 199, 2, 1, 243, 69, 250, - 199, 2, 1, 216, 167, 250, 199, 2, 1, 192, 33, 250, 199, 2, 1, 212, 240, - 250, 199, 2, 1, 203, 160, 250, 199, 2, 1, 195, 21, 250, 199, 2, 1, 246, - 209, 250, 199, 2, 1, 210, 32, 250, 199, 2, 1, 222, 220, 250, 199, 2, 1, - 166, 250, 199, 2, 1, 205, 34, 250, 199, 2, 1, 195, 71, 250, 199, 2, 1, - 198, 114, 250, 199, 2, 1, 207, 66, 250, 199, 2, 1, 242, 51, 250, 199, 2, - 1, 192, 17, 250, 199, 2, 1, 209, 106, 250, 199, 2, 1, 221, 237, 250, 199, - 2, 1, 211, 124, 250, 199, 2, 1, 233, 5, 250, 199, 2, 34, 234, 152, 192, - 17, 250, 199, 2, 1, 11, 4, 105, 250, 199, 232, 42, 201, 58, 250, 199, - 228, 58, 206, 202, 250, 199, 233, 209, 57, 219, 199, 250, 199, 233, 209, - 57, 250, 199, 235, 66, 57, 135, 252, 9, 233, 204, 135, 252, 9, 205, 35, - 135, 252, 9, 203, 136, 135, 252, 9, 191, 99, 208, 72, 135, 252, 9, 191, - 99, 231, 193, 135, 252, 9, 198, 129, 135, 252, 9, 207, 10, 135, 252, 9, - 191, 97, 135, 252, 9, 210, 87, 135, 252, 9, 192, 48, 135, 252, 9, 199, - 51, 135, 252, 9, 231, 102, 135, 252, 9, 231, 103, 215, 96, 135, 252, 9, - 231, 100, 135, 252, 9, 208, 73, 210, 120, 135, 252, 9, 199, 98, 231, 121, - 135, 252, 9, 210, 59, 135, 252, 9, 250, 123, 230, 52, 135, 252, 9, 215, - 106, 135, 252, 9, 217, 96, 135, 252, 9, 216, 156, 135, 252, 9, 216, 157, - 221, 238, 135, 252, 9, 237, 177, 135, 252, 9, 208, 84, 135, 252, 9, 199, - 98, 208, 67, 135, 252, 9, 192, 61, 248, 180, 191, 247, 135, 252, 9, 211, - 106, 135, 252, 9, 223, 155, 135, 252, 9, 237, 78, 135, 252, 9, 191, 19, - 135, 87, 217, 15, 242, 218, 135, 209, 55, 203, 80, 135, 209, 55, 229, - 231, 205, 35, 135, 209, 55, 229, 231, 210, 78, 135, 209, 55, 229, 231, - 208, 77, 135, 209, 55, 229, 87, 135, 209, 55, 197, 154, 135, 209, 55, - 205, 35, 135, 209, 55, 210, 78, 135, 209, 55, 208, 77, 135, 209, 55, 228, - 231, 135, 209, 55, 228, 232, 229, 233, 39, 195, 155, 135, 209, 55, 208, - 13, 135, 209, 55, 237, 226, 211, 46, 217, 50, 135, 209, 55, 216, 145, - 135, 208, 145, 217, 47, 135, 209, 55, 207, 156, 135, 208, 145, 210, 89, - 135, 209, 55, 203, 65, 236, 96, 135, 209, 55, 202, 170, 236, 96, 135, - 208, 145, 202, 28, 210, 80, 135, 87, 116, 236, 96, 135, 87, 110, 236, 96, - 135, 208, 145, 212, 118, 230, 51, 135, 209, 55, 208, 78, 208, 72, 135, 1, - 251, 141, 135, 1, 248, 164, 135, 1, 231, 1, 135, 1, 237, 206, 135, 1, - 229, 213, 135, 1, 195, 155, 135, 1, 191, 91, 135, 1, 229, 154, 135, 1, - 199, 68, 135, 1, 191, 250, 135, 1, 52, 222, 79, 135, 1, 222, 79, 135, 1, - 220, 3, 135, 1, 52, 216, 174, 135, 1, 216, 174, 135, 1, 52, 212, 117, - 135, 1, 212, 117, 135, 1, 205, 143, 135, 1, 250, 76, 135, 1, 52, 210, 53, - 135, 1, 210, 53, 135, 1, 52, 197, 159, 135, 1, 197, 159, 135, 1, 208, 36, - 135, 1, 207, 33, 135, 1, 203, 64, 135, 1, 199, 157, 135, 191, 251, 197, - 237, 135, 34, 192, 31, 54, 195, 155, 135, 34, 192, 31, 195, 156, 191, - 250, 135, 34, 192, 31, 54, 191, 250, 135, 208, 145, 231, 102, 135, 208, - 145, 231, 100, 9, 31, 57, 9, 3, 205, 136, 9, 232, 118, 217, 32, 9, 3, - 205, 182, 9, 3, 205, 139, 9, 31, 87, 56, 250, 234, 238, 144, 206, 123, - 250, 234, 232, 83, 206, 123, 9, 207, 117, 250, 234, 210, 5, 216, 32, 57, - 250, 234, 210, 5, 199, 91, 198, 225, 57, 251, 206, 57, 9, 242, 26, 9, - 237, 164, 204, 5, 9, 209, 57, 195, 134, 57, 9, 3, 216, 8, 9, 3, 205, 156, - 251, 148, 193, 147, 9, 3, 251, 148, 250, 148, 9, 3, 207, 152, 251, 147, - 9, 3, 207, 162, 251, 119, 251, 54, 9, 3, 199, 201, 9, 2, 136, 199, 214, - 9, 2, 136, 34, 130, 4, 220, 12, 4, 192, 75, 9, 2, 136, 191, 113, 9, 2, - 233, 29, 9, 2, 237, 200, 9, 2, 222, 26, 9, 204, 20, 9, 1, 77, 9, 234, 53, - 80, 199, 49, 77, 9, 197, 221, 75, 208, 145, 77, 9, 208, 8, 77, 9, 1, 222, - 30, 192, 75, 9, 1, 230, 24, 9, 1, 130, 4, 217, 121, 56, 9, 1, 130, 4, - 230, 25, 56, 9, 1, 193, 132, 4, 230, 25, 56, 9, 1, 130, 4, 230, 25, 60, - 9, 1, 99, 4, 230, 25, 56, 9, 1, 251, 141, 9, 1, 248, 195, 9, 1, 199, 110, - 217, 43, 9, 1, 199, 109, 9, 1, 199, 24, 9, 1, 222, 234, 9, 1, 230, 48, 9, - 1, 221, 185, 9, 1, 237, 212, 9, 1, 199, 36, 9, 1, 207, 66, 9, 1, 191, - 113, 9, 1, 205, 41, 9, 1, 203, 104, 9, 1, 205, 187, 9, 1, 237, 235, 9, 1, - 199, 214, 9, 1, 191, 116, 9, 1, 251, 178, 9, 1, 231, 49, 9, 1, 221, 236, - 4, 103, 183, 56, 9, 1, 221, 236, 4, 115, 183, 60, 9, 1, 233, 33, 99, 4, - 223, 65, 196, 8, 9, 1, 233, 33, 99, 4, 103, 183, 56, 9, 1, 233, 33, 99, - 4, 115, 183, 56, 9, 199, 163, 9, 1, 233, 5, 9, 1, 208, 82, 9, 1, 222, 79, - 9, 1, 220, 11, 9, 1, 216, 189, 9, 1, 213, 11, 9, 1, 229, 178, 9, 1, 193, - 131, 9, 1, 130, 217, 79, 9, 1, 192, 75, 9, 233, 27, 9, 237, 198, 9, 222, - 24, 9, 233, 29, 9, 237, 200, 9, 222, 26, 9, 203, 150, 9, 200, 201, 9, - 217, 119, 56, 9, 230, 25, 56, 9, 230, 25, 60, 9, 200, 225, 251, 141, 9, - 223, 65, 237, 200, 9, 87, 213, 12, 231, 20, 9, 190, 237, 9, 18, 3, 2, - 196, 9, 56, 9, 18, 3, 223, 65, 2, 196, 9, 56, 9, 18, 3, 75, 60, 9, 207, - 13, 237, 200, 9, 233, 30, 4, 103, 236, 94, 9, 193, 133, 230, 25, 60, 250, - 234, 17, 191, 77, 250, 234, 17, 108, 250, 234, 17, 109, 250, 234, 17, - 139, 250, 234, 17, 137, 250, 234, 17, 153, 250, 234, 17, 173, 250, 234, - 17, 181, 250, 234, 17, 176, 250, 234, 17, 184, 9, 210, 4, 57, 9, 237, 93, - 204, 5, 9, 198, 224, 204, 5, 9, 232, 185, 209, 53, 201, 97, 9, 1, 236, - 95, 248, 195, 9, 1, 236, 95, 208, 82, 9, 1, 200, 177, 251, 141, 9, 1, - 130, 193, 148, 9, 1, 130, 4, 193, 133, 230, 25, 56, 9, 1, 130, 4, 193, - 133, 230, 25, 60, 9, 1, 136, 230, 24, 9, 1, 136, 230, 25, 251, 141, 9, 1, - 136, 230, 25, 193, 131, 9, 1, 126, 4, 230, 25, 56, 9, 1, 136, 230, 25, - 192, 75, 9, 1, 197, 120, 9, 1, 197, 118, 9, 1, 248, 205, 9, 1, 199, 110, - 4, 206, 183, 9, 1, 199, 110, 4, 115, 183, 95, 235, 74, 9, 1, 210, 32, 9, - 1, 199, 107, 9, 1, 248, 193, 9, 1, 179, 4, 230, 25, 56, 9, 1, 179, 4, - 103, 183, 81, 56, 9, 1, 212, 74, 9, 1, 234, 253, 9, 1, 179, 4, 115, 183, - 56, 9, 1, 199, 144, 9, 1, 199, 142, 9, 1, 237, 141, 9, 1, 237, 213, 4, - 206, 183, 9, 1, 237, 213, 4, 75, 60, 9, 1, 237, 213, 4, 75, 248, 183, 24, - 2, 199, 214, 9, 1, 237, 219, 9, 1, 237, 143, 9, 1, 235, 34, 9, 1, 237, - 213, 4, 115, 183, 95, 235, 74, 9, 1, 237, 213, 4, 232, 90, 183, 56, 9, 1, - 206, 96, 9, 1, 207, 67, 4, 2, 196, 8, 9, 1, 207, 67, 4, 206, 183, 9, 1, - 207, 67, 4, 75, 60, 9, 1, 207, 67, 4, 2, 196, 9, 60, 9, 1, 207, 67, 4, - 75, 248, 183, 24, 75, 56, 9, 1, 207, 67, 4, 103, 183, 56, 9, 1, 222, 231, - 9, 1, 207, 67, 4, 232, 90, 183, 56, 9, 1, 205, 42, 4, 75, 248, 183, 24, - 75, 56, 9, 1, 205, 42, 4, 115, 183, 60, 9, 1, 205, 42, 4, 115, 183, 248, - 183, 24, 115, 183, 56, 9, 1, 205, 188, 4, 103, 183, 60, 9, 1, 205, 188, - 4, 115, 183, 56, 9, 1, 199, 215, 4, 115, 183, 56, 9, 1, 251, 179, 4, 115, - 183, 56, 9, 1, 236, 95, 233, 5, 9, 1, 233, 6, 4, 75, 215, 161, 60, 9, 1, - 233, 6, 4, 75, 60, 9, 1, 195, 143, 9, 1, 233, 6, 4, 115, 183, 60, 9, 1, - 210, 30, 9, 1, 208, 83, 4, 75, 56, 9, 1, 208, 83, 4, 115, 183, 56, 9, 1, - 221, 235, 9, 1, 200, 142, 222, 79, 9, 1, 222, 80, 4, 206, 183, 9, 1, 222, - 80, 4, 75, 56, 9, 1, 214, 56, 9, 1, 222, 80, 4, 115, 183, 60, 9, 1, 231, - 190, 9, 1, 231, 191, 4, 206, 183, 9, 1, 213, 233, 9, 1, 231, 191, 4, 103, - 183, 60, 9, 1, 230, 133, 9, 1, 231, 191, 4, 115, 183, 56, 9, 1, 220, 12, - 4, 2, 196, 8, 9, 1, 220, 12, 4, 75, 56, 9, 1, 220, 12, 4, 115, 183, 56, - 9, 1, 220, 12, 4, 115, 183, 60, 9, 1, 213, 12, 4, 75, 60, 9, 1, 213, 12, - 231, 20, 9, 1, 206, 160, 9, 1, 213, 12, 4, 206, 183, 9, 1, 213, 12, 4, - 115, 183, 56, 9, 1, 229, 179, 236, 125, 9, 1, 199, 145, 4, 75, 56, 9, 1, - 229, 179, 4, 99, 56, 9, 1, 229, 179, 230, 220, 9, 1, 229, 179, 230, 221, - 4, 230, 25, 56, 9, 1, 199, 110, 217, 44, 230, 220, 9, 1, 193, 132, 4, - 206, 183, 9, 1, 221, 108, 211, 139, 9, 1, 211, 139, 9, 1, 69, 9, 1, 191, - 225, 9, 1, 221, 108, 191, 225, 9, 1, 193, 132, 4, 103, 183, 56, 9, 1, - 195, 150, 9, 1, 233, 33, 192, 75, 9, 1, 99, 4, 199, 210, 9, 1, 99, 4, 2, - 196, 8, 9, 1, 193, 132, 4, 75, 56, 9, 1, 73, 9, 1, 99, 4, 115, 183, 60, - 9, 1, 99, 249, 30, 9, 1, 99, 249, 31, 4, 230, 25, 56, 9, 232, 42, 201, - 58, 9, 1, 251, 229, 9, 2, 136, 34, 205, 188, 4, 220, 12, 4, 130, 217, 79, - 9, 2, 136, 34, 208, 83, 4, 220, 12, 4, 130, 217, 79, 9, 2, 136, 92, 89, - 20, 9, 2, 136, 220, 12, 251, 141, 9, 2, 136, 222, 234, 9, 2, 136, 115, - 236, 94, 9, 2, 136, 205, 41, 9, 234, 53, 80, 250, 80, 9, 201, 93, 80, - 206, 55, 234, 98, 229, 82, 9, 2, 136, 206, 108, 191, 77, 9, 2, 136, 196, - 69, 207, 86, 191, 77, 9, 2, 136, 236, 95, 229, 204, 80, 221, 185, 9, 2, - 136, 92, 76, 20, 9, 2, 131, 205, 41, 9, 2, 136, 217, 120, 9, 2, 193, 131, - 9, 2, 192, 75, 9, 2, 136, 192, 75, 9, 2, 136, 213, 11, 9, 209, 100, 80, - 205, 172, 9, 234, 63, 246, 230, 131, 201, 58, 9, 234, 63, 246, 230, 136, - 201, 58, 9, 206, 108, 136, 201, 59, 4, 232, 219, 246, 229, 9, 2, 131, - 216, 189, 9, 1, 237, 213, 4, 223, 65, 196, 8, 9, 1, 207, 67, 4, 223, 65, - 196, 8, 233, 164, 250, 234, 17, 191, 77, 233, 164, 250, 234, 17, 108, - 233, 164, 250, 234, 17, 109, 233, 164, 250, 234, 17, 139, 233, 164, 250, - 234, 17, 137, 233, 164, 250, 234, 17, 153, 233, 164, 250, 234, 17, 173, - 233, 164, 250, 234, 17, 181, 233, 164, 250, 234, 17, 176, 233, 164, 250, - 234, 17, 184, 9, 1, 203, 105, 4, 75, 60, 9, 1, 237, 236, 4, 75, 60, 9, 1, - 231, 50, 4, 75, 60, 9, 3, 202, 168, 251, 86, 9, 3, 202, 168, 209, 9, 216, - 167, 9, 1, 229, 179, 4, 223, 65, 196, 8, 200, 59, 234, 53, 80, 210, 117, - 200, 59, 200, 172, 232, 42, 201, 58, 200, 59, 200, 227, 232, 42, 201, 58, - 200, 59, 200, 172, 242, 35, 200, 59, 200, 227, 242, 35, 200, 59, 228, - 209, 242, 35, 200, 59, 242, 36, 202, 105, 219, 200, 200, 59, 242, 36, - 202, 105, 187, 200, 59, 200, 172, 242, 36, 202, 105, 219, 200, 200, 59, - 200, 227, 242, 36, 202, 105, 187, 200, 59, 238, 233, 200, 59, 229, 238, - 211, 163, 200, 59, 229, 238, 216, 143, 200, 59, 229, 238, 250, 145, 200, - 59, 252, 16, 77, 200, 59, 1, 251, 151, 200, 59, 1, 200, 177, 251, 151, - 200, 59, 1, 248, 161, 200, 59, 1, 231, 180, 200, 59, 1, 231, 181, 231, - 157, 200, 59, 1, 237, 209, 200, 59, 1, 236, 95, 237, 210, 206, 176, 200, - 59, 1, 229, 213, 200, 59, 1, 193, 131, 200, 59, 1, 191, 113, 200, 59, 1, - 229, 152, 200, 59, 1, 199, 64, 200, 59, 1, 199, 65, 231, 157, 200, 59, 1, - 191, 208, 200, 59, 1, 191, 209, 229, 213, 200, 59, 1, 222, 49, 200, 59, - 1, 220, 10, 200, 59, 1, 216, 28, 200, 59, 1, 212, 117, 200, 59, 1, 204, - 13, 200, 59, 1, 52, 204, 13, 200, 59, 1, 73, 200, 59, 1, 210, 53, 200, - 59, 1, 207, 13, 210, 53, 200, 59, 1, 205, 184, 200, 59, 1, 208, 76, 200, - 59, 1, 206, 176, 200, 59, 1, 203, 64, 200, 59, 1, 199, 154, 200, 59, 1, - 209, 243, 248, 146, 200, 59, 1, 209, 243, 231, 47, 200, 59, 1, 209, 243, - 237, 18, 200, 59, 208, 159, 56, 200, 59, 208, 159, 60, 200, 59, 208, 159, - 235, 93, 200, 59, 191, 0, 56, 200, 59, 191, 0, 60, 200, 59, 191, 0, 235, - 93, 200, 59, 207, 111, 56, 200, 59, 207, 111, 60, 200, 59, 235, 94, 191, - 9, 228, 208, 200, 59, 235, 94, 191, 9, 251, 57, 200, 59, 229, 218, 56, - 200, 59, 229, 218, 60, 200, 59, 229, 217, 235, 93, 200, 59, 233, 230, 56, - 200, 59, 233, 230, 60, 200, 59, 206, 19, 200, 59, 232, 255, 236, 96, 200, - 59, 207, 241, 200, 59, 206, 49, 200, 59, 103, 81, 183, 56, 200, 59, 103, - 81, 183, 60, 200, 59, 115, 183, 56, 200, 59, 115, 183, 60, 200, 59, 211, - 159, 219, 89, 56, 200, 59, 211, 159, 219, 89, 60, 200, 59, 215, 82, 200, - 59, 249, 29, 200, 59, 1, 202, 23, 191, 69, 200, 59, 1, 202, 23, 221, 177, - 200, 59, 1, 202, 23, 233, 18, 9, 1, 248, 196, 4, 115, 183, 228, 158, 60, - 9, 1, 248, 196, 4, 75, 248, 183, 24, 115, 183, 56, 9, 1, 248, 196, 4, - 115, 183, 209, 51, 196, 62, 60, 9, 1, 248, 196, 4, 115, 183, 209, 51, - 196, 62, 248, 183, 24, 103, 183, 56, 9, 1, 248, 196, 4, 103, 183, 248, - 183, 24, 75, 56, 9, 1, 248, 196, 4, 223, 65, 2, 196, 9, 60, 9, 1, 248, - 196, 4, 2, 196, 8, 9, 1, 179, 4, 103, 183, 56, 9, 1, 179, 4, 115, 183, - 209, 51, 196, 62, 60, 9, 1, 237, 213, 4, 103, 183, 195, 82, 248, 183, 24, - 2, 199, 214, 9, 1, 237, 213, 4, 223, 65, 2, 196, 9, 60, 9, 1, 207, 67, 4, - 105, 9, 1, 205, 42, 4, 232, 90, 183, 56, 9, 1, 251, 179, 4, 103, 183, 56, - 9, 1, 251, 179, 4, 115, 183, 209, 51, 235, 75, 56, 9, 1, 251, 179, 4, - 103, 183, 195, 82, 56, 9, 1, 233, 6, 4, 103, 183, 60, 9, 1, 233, 6, 4, - 115, 183, 209, 51, 196, 62, 60, 9, 1, 221, 236, 4, 75, 56, 9, 1, 221, - 236, 4, 115, 183, 56, 9, 1, 221, 236, 4, 115, 183, 209, 51, 196, 62, 60, - 9, 1, 92, 4, 75, 56, 9, 1, 92, 4, 75, 60, 9, 1, 213, 12, 4, 103, 183, 60, - 9, 1, 213, 12, 4, 2, 199, 214, 9, 1, 213, 12, 4, 2, 196, 8, 9, 1, 220, - 12, 4, 164, 9, 1, 207, 67, 4, 103, 183, 195, 82, 56, 9, 1, 207, 67, 4, - 230, 25, 56, 9, 1, 205, 42, 4, 103, 183, 195, 82, 56, 9, 1, 179, 4, 2, 9, - 1, 199, 215, 60, 9, 1, 179, 4, 2, 9, 1, 199, 215, 24, 103, 236, 94, 9, 1, - 205, 42, 4, 2, 9, 1, 199, 215, 24, 103, 236, 94, 9, 1, 207, 67, 4, 2, 9, - 1, 199, 215, 24, 103, 236, 94, 9, 1, 179, 4, 2, 9, 1, 199, 215, 56, 9, 1, - 130, 4, 233, 164, 250, 234, 17, 103, 56, 9, 1, 130, 4, 233, 164, 250, - 234, 17, 115, 56, 9, 1, 233, 33, 99, 4, 233, 164, 250, 234, 17, 103, 56, - 9, 1, 233, 33, 99, 4, 233, 164, 250, 234, 17, 115, 56, 9, 1, 233, 33, 99, - 4, 233, 164, 250, 234, 17, 232, 90, 60, 9, 1, 193, 132, 4, 233, 164, 250, - 234, 17, 103, 56, 9, 1, 193, 132, 4, 233, 164, 250, 234, 17, 115, 56, 9, - 1, 99, 249, 31, 4, 233, 164, 250, 234, 17, 103, 56, 9, 1, 99, 249, 31, 4, - 233, 164, 250, 234, 17, 115, 56, 9, 1, 179, 4, 233, 164, 250, 234, 17, - 232, 90, 60, 9, 1, 205, 42, 4, 233, 164, 250, 234, 17, 232, 90, 56, 9, 1, - 205, 42, 4, 223, 65, 196, 8, 9, 1, 222, 80, 4, 103, 183, 56, 199, 41, 1, - 230, 58, 199, 41, 1, 203, 114, 199, 41, 1, 213, 10, 199, 41, 1, 207, 173, - 199, 41, 1, 249, 101, 199, 41, 1, 219, 132, 199, 41, 1, 222, 95, 199, 41, - 1, 251, 128, 199, 41, 1, 195, 183, 199, 41, 1, 216, 188, 199, 41, 1, 233, - 66, 199, 41, 1, 237, 21, 199, 41, 1, 199, 43, 199, 41, 1, 220, 98, 199, - 41, 1, 231, 199, 199, 41, 1, 230, 226, 199, 41, 1, 205, 40, 199, 41, 1, - 237, 162, 199, 41, 1, 191, 94, 199, 41, 1, 199, 156, 199, 41, 1, 192, - 140, 199, 41, 1, 210, 67, 199, 41, 1, 222, 243, 199, 41, 1, 243, 82, 199, - 41, 1, 197, 127, 199, 41, 1, 229, 144, 199, 41, 1, 221, 189, 199, 41, 1, - 199, 42, 199, 41, 1, 191, 121, 199, 41, 1, 203, 103, 199, 41, 1, 205, - 191, 199, 41, 1, 237, 239, 199, 41, 1, 159, 199, 41, 1, 191, 7, 199, 41, - 1, 251, 175, 199, 41, 1, 231, 48, 199, 41, 1, 208, 86, 199, 41, 1, 193, - 175, 199, 41, 252, 18, 199, 41, 252, 119, 199, 41, 227, 255, 199, 41, - 234, 144, 199, 41, 196, 157, 199, 41, 211, 75, 199, 41, 234, 154, 199, - 41, 233, 154, 199, 41, 211, 158, 199, 41, 211, 168, 199, 41, 200, 201, - 199, 41, 1, 214, 236, 213, 94, 17, 191, 77, 213, 94, 17, 108, 213, 94, - 17, 109, 213, 94, 17, 139, 213, 94, 17, 137, 213, 94, 17, 153, 213, 94, - 17, 173, 213, 94, 17, 181, 213, 94, 17, 176, 213, 94, 17, 184, 213, 94, - 1, 65, 213, 94, 1, 234, 145, 213, 94, 1, 70, 213, 94, 1, 73, 213, 94, 1, - 69, 213, 94, 1, 211, 76, 213, 94, 1, 74, 213, 94, 1, 237, 227, 213, 94, - 1, 215, 47, 213, 94, 1, 249, 103, 213, 94, 1, 168, 213, 94, 1, 199, 247, - 213, 94, 1, 223, 4, 213, 94, 1, 246, 209, 213, 94, 1, 237, 241, 213, 94, - 1, 166, 213, 94, 1, 206, 104, 213, 94, 1, 189, 213, 94, 1, 231, 145, 213, - 94, 1, 233, 68, 213, 94, 1, 157, 213, 94, 1, 171, 213, 94, 1, 214, 249, - 193, 37, 213, 94, 1, 172, 213, 94, 1, 212, 88, 213, 94, 1, 180, 213, 94, - 1, 144, 213, 94, 1, 193, 187, 213, 94, 1, 169, 213, 94, 1, 212, 89, 193, - 37, 213, 94, 1, 222, 166, 223, 4, 213, 94, 1, 222, 166, 246, 209, 213, - 94, 1, 222, 166, 166, 213, 94, 33, 203, 35, 136, 198, 74, 213, 94, 33, - 203, 35, 131, 198, 74, 213, 94, 33, 203, 35, 206, 175, 198, 74, 213, 94, - 33, 177, 237, 41, 198, 74, 213, 94, 33, 177, 136, 198, 74, 213, 94, 33, - 177, 131, 198, 74, 213, 94, 33, 177, 206, 175, 198, 74, 213, 94, 33, 214, - 199, 77, 213, 94, 33, 54, 75, 56, 213, 94, 136, 163, 250, 255, 213, 94, - 131, 163, 250, 255, 213, 94, 16, 211, 77, 237, 56, 213, 94, 16, 231, 144, - 213, 94, 242, 26, 213, 94, 233, 175, 77, 213, 94, 220, 70, 213, 94, 237, - 188, 213, 94, 236, 98, 57, 213, 94, 199, 190, 57, 205, 146, 1, 251, 153, - 205, 146, 1, 248, 100, 205, 146, 1, 231, 179, 205, 146, 1, 237, 211, 205, - 146, 1, 223, 16, 205, 146, 1, 249, 101, 205, 146, 1, 191, 80, 205, 146, - 1, 223, 25, 205, 146, 1, 198, 120, 205, 146, 1, 191, 189, 205, 146, 1, - 222, 96, 205, 146, 1, 220, 94, 205, 146, 1, 216, 28, 205, 146, 1, 212, - 117, 205, 146, 1, 202, 166, 205, 146, 1, 223, 134, 205, 146, 1, 232, 238, - 205, 146, 1, 197, 162, 205, 146, 1, 208, 5, 205, 146, 1, 206, 176, 205, - 146, 1, 203, 133, 205, 146, 1, 199, 238, 205, 146, 87, 223, 134, 205, - 146, 87, 223, 133, 205, 146, 87, 211, 152, 205, 146, 87, 237, 225, 205, - 146, 59, 1, 234, 10, 191, 189, 205, 146, 87, 234, 10, 191, 189, 205, 146, - 18, 3, 177, 73, 205, 146, 18, 3, 73, 205, 146, 18, 3, 210, 243, 252, 154, - 205, 146, 18, 3, 177, 252, 154, 205, 146, 18, 3, 252, 154, 205, 146, 18, - 3, 210, 243, 65, 205, 146, 18, 3, 177, 65, 205, 146, 18, 3, 65, 205, 146, - 59, 1, 203, 35, 65, 205, 146, 18, 3, 203, 35, 65, 205, 146, 18, 3, 177, - 69, 205, 146, 18, 3, 69, 205, 146, 59, 1, 70, 205, 146, 18, 3, 177, 70, - 205, 146, 18, 3, 70, 205, 146, 18, 3, 74, 205, 146, 18, 3, 200, 201, 205, - 146, 87, 214, 79, 205, 146, 208, 145, 214, 79, 205, 146, 208, 145, 251, - 203, 205, 146, 208, 145, 251, 70, 205, 146, 208, 145, 249, 7, 205, 146, - 208, 145, 250, 124, 205, 146, 208, 145, 203, 52, 205, 146, 252, 16, 77, - 205, 146, 208, 145, 216, 178, 208, 42, 205, 146, 208, 145, 191, 16, 205, - 146, 208, 145, 208, 42, 205, 146, 208, 145, 191, 119, 205, 146, 208, 145, - 197, 50, 205, 146, 208, 145, 250, 205, 205, 146, 208, 145, 202, 28, 217, - 18, 205, 146, 208, 145, 251, 46, 217, 66, 1, 230, 32, 217, 66, 1, 252, - 103, 217, 66, 1, 251, 201, 217, 66, 1, 251, 246, 217, 66, 1, 251, 193, - 217, 66, 1, 196, 32, 217, 66, 1, 250, 73, 217, 66, 1, 223, 25, 217, 66, - 1, 250, 121, 217, 66, 1, 251, 160, 217, 66, 1, 251, 165, 217, 66, 1, 251, - 156, 217, 66, 1, 251, 98, 217, 66, 1, 251, 81, 217, 66, 1, 250, 169, 217, - 66, 1, 223, 134, 217, 66, 1, 251, 15, 217, 66, 1, 250, 134, 217, 66, 1, - 250, 243, 217, 66, 1, 250, 239, 217, 66, 1, 250, 159, 217, 66, 1, 250, - 132, 217, 66, 1, 235, 18, 217, 66, 1, 222, 87, 217, 66, 1, 251, 178, 217, - 66, 251, 207, 77, 217, 66, 195, 19, 77, 217, 66, 231, 116, 77, 217, 66, - 208, 144, 200, 59, 1, 141, 214, 54, 200, 59, 1, 141, 223, 4, 200, 59, 1, - 141, 212, 88, 200, 59, 1, 141, 197, 128, 200, 59, 1, 141, 213, 66, 200, - 59, 1, 141, 213, 48, 200, 59, 1, 141, 248, 153, 200, 59, 1, 141, 166, - 200, 59, 1, 141, 219, 49, 200, 59, 1, 141, 219, 38, 200, 59, 1, 141, 201, - 170, 9, 1, 130, 4, 250, 120, 233, 29, 9, 1, 130, 4, 250, 120, 198, 49, - 50, 233, 29, 9, 1, 130, 4, 50, 82, 105, 9, 1, 130, 4, 45, 82, 105, 9, 1, - 130, 4, 250, 120, 222, 26, 9, 1, 130, 4, 250, 120, 248, 29, 50, 222, 26, - 9, 1, 130, 4, 250, 120, 206, 110, 75, 56, 9, 1, 130, 4, 250, 120, 50, - 206, 110, 236, 96, 9, 1, 130, 4, 250, 120, 45, 206, 110, 236, 96, 9, 1, - 130, 4, 250, 120, 206, 110, 75, 60, 9, 1, 130, 4, 75, 56, 9, 1, 130, 4, - 250, 120, 198, 49, 50, 233, 30, 24, 75, 56, 9, 1, 130, 4, 50, 82, 201, - 23, 24, 75, 56, 9, 1, 130, 4, 250, 120, 248, 29, 50, 222, 27, 24, 75, 56, - 9, 1, 130, 4, 250, 120, 198, 49, 50, 233, 30, 24, 45, 206, 183, 9, 1, - 130, 4, 50, 82, 201, 23, 24, 45, 206, 183, 9, 1, 130, 4, 250, 120, 248, - 29, 50, 222, 27, 24, 45, 206, 183, 9, 1, 130, 4, 250, 120, 50, 230, 24, - 9, 1, 130, 4, 250, 120, 45, 230, 24, 9, 199, 164, 4, 210, 241, 230, 24, - 9, 199, 164, 4, 210, 241, 193, 131, 9, 199, 164, 4, 103, 183, 60, 9, 1, - 198, 255, 192, 75, 9, 249, 22, 206, 110, 236, 96, 9, 207, 142, 206, 110, - 236, 96, 9, 1, 213, 12, 4, 223, 65, 2, 196, 8, 9, 1, 179, 4, 223, 65, 2, - 196, 9, 60, 9, 1, 199, 215, 4, 75, 60, 9, 1, 199, 215, 4, 115, 183, 60, - 9, 1, 221, 236, 4, 103, 183, 195, 82, 60, 9, 81, 199, 210, 9, 209, 1, 87, - 56, 9, 209, 173, 87, 56, 9, 2, 136, 193, 23, 251, 155, 9, 2, 131, 193, - 23, 223, 33, 9, 2, 131, 193, 23, 223, 151, 9, 2, 131, 193, 23, 199, 168, - 9, 217, 121, 193, 176, 9, 200, 177, 130, 215, 217, 9, 235, 84, 217, 120, - 9, 134, 217, 121, 138, 217, 120, 9, 1, 248, 196, 4, 2, 196, 9, 60, 9, 1, - 248, 196, 4, 230, 25, 56, 9, 1, 222, 235, 4, 103, 183, 56, 9, 1, 199, - 215, 4, 103, 183, 56, 9, 1, 233, 6, 4, 75, 248, 183, 24, 115, 183, 56, 9, - 1, 208, 83, 4, 75, 60, 9, 1, 220, 12, 4, 54, 164, 9, 1, 92, 4, 115, 183, - 56, 9, 1, 99, 4, 103, 183, 248, 183, 24, 230, 25, 56, 9, 1, 99, 4, 103, - 183, 248, 183, 24, 75, 56, 9, 1, 207, 67, 4, 218, 236, 9, 1, 193, 132, 4, - 75, 193, 52, 9, 1, 206, 137, 192, 75, 9, 1, 131, 251, 141, 9, 1, 237, - 213, 4, 115, 183, 60, 9, 1, 205, 188, 4, 115, 183, 60, 9, 1, 231, 191, 4, - 223, 65, 105, 9, 1, 201, 48, 193, 131, 9, 1, 191, 114, 4, 223, 65, 196, - 9, 56, 9, 1, 251, 179, 4, 115, 183, 60, 9, 1, 222, 80, 4, 75, 60, 9, 1, - 208, 83, 4, 75, 248, 183, 24, 213, 31, 183, 56, 9, 1, 248, 196, 4, 2, 92, - 56, 9, 1, 210, 33, 4, 2, 92, 56, 9, 1, 199, 110, 4, 2, 199, 110, 56, 9, - 1, 207, 67, 4, 2, 213, 12, 56, 9, 1, 99, 4, 103, 183, 248, 183, 24, 2, - 213, 12, 56, 9, 1, 251, 204, 233, 5, 9, 1, 251, 204, 208, 82, 9, 1, 251, - 204, 213, 11, 9, 1, 210, 33, 4, 2, 196, 8, 9, 1, 199, 110, 4, 2, 196, 8, - 9, 1, 197, 121, 4, 2, 196, 8, 9, 1, 199, 145, 4, 2, 196, 8, 9, 1, 221, - 236, 4, 2, 196, 8, 9, 1, 231, 50, 4, 115, 183, 56, 9, 1, 251, 204, 208, - 83, 4, 115, 183, 56, 9, 1, 222, 235, 4, 115, 183, 56, 9, 1, 222, 235, 4, - 115, 183, 60, 9, 1, 220, 12, 4, 2, 9, 1, 199, 215, 56, 9, 1, 230, 190, 9, - 2, 233, 33, 192, 75, 9, 2, 136, 233, 33, 192, 75, 9, 2, 136, 99, 249, 31, - 4, 103, 183, 60, 9, 2, 136, 193, 23, 205, 177, 9, 2, 136, 191, 116, 9, - 219, 245, 206, 110, 75, 56, 9, 219, 245, 206, 110, 75, 60, 9, 200, 202, - 60, 9, 219, 245, 242, 219, 60, 9, 219, 245, 206, 110, 75, 223, 90, 242, - 219, 60, 9, 2, 131, 193, 131, 9, 2, 136, 193, 23, 250, 236, 9, 2, 136, - 205, 187, 9, 2, 136, 251, 178, 9, 2, 136, 208, 82, 9, 2, 136, 213, 12, 4, - 222, 26, 9, 2, 131, 213, 12, 4, 222, 26, 9, 2, 136, 193, 23, 250, 131, 9, - 2, 136, 193, 23, 250, 168, 9, 2, 136, 193, 23, 251, 80, 9, 2, 136, 193, - 23, 205, 166, 9, 2, 136, 193, 23, 208, 46, 9, 2, 136, 193, 23, 193, 155, - 9, 2, 136, 232, 118, 217, 32, 9, 2, 136, 3, 205, 182, 9, 236, 173, 234, - 53, 80, 250, 80, 9, 152, 237, 201, 60, 9, 238, 124, 233, 29, 9, 238, 124, - 237, 200, 9, 238, 124, 222, 26, 9, 238, 124, 233, 27, 9, 238, 124, 237, - 198, 9, 238, 124, 222, 24, 9, 163, 91, 75, 56, 9, 163, 103, 183, 56, 9, - 163, 218, 237, 56, 9, 163, 91, 75, 60, 9, 163, 103, 183, 60, 9, 163, 218, - 237, 60, 9, 211, 66, 233, 27, 9, 211, 66, 237, 198, 9, 211, 66, 222, 24, - 9, 2, 136, 193, 131, 9, 233, 30, 4, 206, 183, 9, 233, 30, 4, 75, 56, 9, - 222, 27, 4, 75, 60, 9, 45, 250, 186, 56, 9, 50, 250, 186, 56, 9, 45, 250, - 186, 60, 9, 50, 250, 186, 60, 9, 54, 50, 250, 186, 56, 9, 54, 50, 250, - 186, 95, 4, 236, 96, 9, 50, 250, 186, 95, 4, 236, 96, 9, 237, 201, 4, - 236, 96, 9, 87, 202, 201, 213, 12, 231, 20, 104, 3, 223, 65, 247, 71, - 104, 3, 247, 71, 104, 3, 251, 20, 104, 3, 195, 32, 104, 1, 203, 35, 65, - 104, 1, 65, 104, 1, 252, 154, 104, 1, 70, 104, 1, 223, 170, 104, 1, 69, - 104, 1, 196, 26, 104, 1, 121, 148, 104, 1, 121, 170, 104, 1, 247, 74, 73, - 104, 1, 203, 35, 73, 104, 1, 73, 104, 1, 251, 184, 104, 1, 247, 74, 74, - 104, 1, 203, 35, 74, 104, 1, 74, 104, 1, 250, 113, 104, 1, 157, 104, 1, - 221, 190, 104, 1, 231, 203, 104, 1, 231, 54, 104, 1, 214, 54, 104, 1, - 247, 112, 104, 1, 246, 209, 104, 1, 223, 4, 104, 1, 222, 225, 104, 1, - 212, 88, 104, 1, 197, 128, 104, 1, 197, 116, 104, 1, 237, 146, 104, 1, - 237, 130, 104, 1, 213, 66, 104, 1, 199, 247, 104, 1, 199, 44, 104, 1, - 237, 241, 104, 1, 237, 23, 104, 1, 180, 104, 1, 213, 48, 104, 1, 168, - 104, 1, 209, 219, 104, 1, 249, 103, 104, 1, 248, 153, 104, 1, 172, 104, - 1, 169, 104, 1, 166, 104, 1, 206, 104, 104, 1, 171, 104, 1, 219, 49, 104, - 1, 219, 38, 104, 1, 195, 185, 104, 1, 203, 160, 104, 1, 201, 170, 104, 1, - 189, 104, 1, 144, 104, 18, 3, 211, 139, 104, 18, 3, 211, 74, 104, 3, 212, - 128, 104, 3, 250, 95, 104, 18, 3, 252, 154, 104, 18, 3, 70, 104, 18, 3, - 223, 170, 104, 18, 3, 69, 104, 18, 3, 196, 26, 104, 18, 3, 121, 148, 104, - 18, 3, 121, 206, 105, 104, 18, 3, 247, 74, 73, 104, 18, 3, 203, 35, 73, - 104, 18, 3, 73, 104, 18, 3, 251, 184, 104, 18, 3, 247, 74, 74, 104, 18, - 3, 203, 35, 74, 104, 18, 3, 74, 104, 18, 3, 250, 113, 104, 3, 195, 37, - 104, 18, 3, 208, 200, 73, 104, 18, 3, 250, 90, 104, 211, 102, 104, 201, - 33, 3, 196, 150, 104, 201, 33, 3, 251, 22, 104, 230, 177, 252, 8, 104, - 251, 251, 252, 8, 104, 18, 3, 247, 74, 177, 73, 104, 18, 3, 196, 148, - 104, 18, 3, 196, 25, 104, 1, 208, 89, 104, 1, 221, 169, 104, 1, 231, 29, - 104, 1, 191, 123, 104, 1, 237, 135, 104, 1, 207, 1, 104, 1, 233, 68, 104, - 1, 191, 175, 104, 1, 121, 206, 105, 104, 1, 121, 219, 50, 104, 18, 3, - 121, 170, 104, 18, 3, 121, 219, 50, 104, 237, 193, 104, 54, 237, 193, - 104, 17, 191, 77, 104, 17, 108, 104, 17, 109, 104, 17, 139, 104, 17, 137, - 104, 17, 153, 104, 17, 173, 104, 17, 181, 104, 17, 176, 104, 17, 184, - 104, 252, 16, 57, 104, 3, 136, 201, 241, 236, 96, 104, 1, 247, 74, 65, - 104, 1, 211, 139, 104, 1, 211, 74, 104, 1, 250, 90, 104, 1, 196, 148, - 104, 1, 196, 25, 104, 1, 217, 24, 237, 146, 104, 1, 191, 71, 104, 1, 88, - 169, 104, 1, 231, 90, 104, 1, 222, 203, 104, 1, 230, 231, 201, 58, 104, - 1, 237, 136, 104, 1, 249, 3, 248, 175, 251, 49, 248, 175, 3, 247, 71, - 248, 175, 3, 251, 20, 248, 175, 3, 195, 32, 248, 175, 1, 65, 248, 175, 1, - 252, 154, 248, 175, 1, 70, 248, 175, 1, 223, 170, 248, 175, 1, 69, 248, - 175, 1, 196, 26, 248, 175, 1, 121, 148, 248, 175, 1, 121, 170, 248, 175, - 1, 73, 248, 175, 1, 251, 184, 248, 175, 1, 74, 248, 175, 1, 250, 113, - 248, 175, 1, 157, 248, 175, 1, 221, 190, 248, 175, 1, 231, 203, 248, 175, - 1, 231, 54, 248, 175, 1, 214, 54, 248, 175, 1, 247, 112, 248, 175, 1, - 246, 209, 248, 175, 1, 223, 4, 248, 175, 1, 222, 225, 248, 175, 1, 212, - 88, 248, 175, 1, 197, 128, 248, 175, 1, 197, 116, 248, 175, 1, 237, 146, - 248, 175, 1, 237, 130, 248, 175, 1, 213, 66, 248, 175, 1, 199, 247, 248, - 175, 1, 199, 44, 248, 175, 1, 237, 241, 248, 175, 1, 237, 23, 248, 175, - 1, 180, 248, 175, 1, 168, 248, 175, 1, 209, 219, 248, 175, 1, 249, 103, - 248, 175, 1, 248, 153, 248, 175, 1, 172, 248, 175, 1, 169, 248, 175, 1, - 166, 248, 175, 1, 171, 248, 175, 1, 203, 160, 248, 175, 1, 201, 170, 248, - 175, 1, 189, 248, 175, 1, 144, 248, 175, 3, 212, 128, 248, 175, 3, 250, - 95, 248, 175, 18, 3, 252, 154, 248, 175, 18, 3, 70, 248, 175, 18, 3, 223, - 170, 248, 175, 18, 3, 69, 248, 175, 18, 3, 196, 26, 248, 175, 18, 3, 121, - 148, 248, 175, 18, 3, 121, 206, 105, 248, 175, 18, 3, 73, 248, 175, 18, - 3, 251, 184, 248, 175, 18, 3, 74, 248, 175, 18, 3, 250, 113, 248, 175, 3, - 195, 37, 248, 175, 1, 221, 179, 199, 247, 248, 175, 250, 114, 219, 174, - 77, 248, 175, 1, 206, 104, 248, 175, 1, 207, 1, 248, 175, 1, 191, 175, - 248, 175, 1, 121, 206, 105, 248, 175, 1, 121, 219, 50, 248, 175, 18, 3, - 121, 170, 248, 175, 18, 3, 121, 219, 50, 248, 175, 17, 191, 77, 248, 175, - 17, 108, 248, 175, 17, 109, 248, 175, 17, 139, 248, 175, 17, 137, 248, - 175, 17, 153, 248, 175, 17, 173, 248, 175, 17, 181, 248, 175, 17, 176, - 248, 175, 17, 184, 248, 175, 1, 207, 181, 4, 82, 236, 249, 248, 175, 1, - 207, 181, 4, 110, 236, 249, 248, 175, 206, 31, 77, 248, 175, 206, 31, 57, - 248, 175, 238, 123, 212, 120, 108, 248, 175, 238, 123, 212, 120, 109, - 248, 175, 238, 123, 212, 120, 139, 248, 175, 238, 123, 212, 120, 137, - 248, 175, 238, 123, 212, 120, 91, 219, 157, 199, 34, 199, 29, 237, 54, - 248, 175, 238, 123, 237, 55, 202, 125, 248, 175, 223, 26, 248, 175, 231, - 170, 77, 248, 175, 1, 195, 147, 251, 20, 248, 175, 252, 16, 57, 248, 175, - 205, 133, 77, 230, 111, 3, 251, 245, 248, 119, 230, 111, 3, 248, 119, - 230, 111, 3, 195, 32, 230, 111, 1, 65, 230, 111, 1, 252, 154, 230, 111, - 1, 70, 230, 111, 1, 223, 170, 230, 111, 1, 69, 230, 111, 1, 196, 26, 230, - 111, 1, 234, 145, 230, 111, 1, 251, 184, 230, 111, 1, 211, 76, 230, 111, - 1, 250, 113, 230, 111, 1, 157, 230, 111, 1, 221, 190, 230, 111, 1, 231, - 203, 230, 111, 1, 231, 54, 230, 111, 1, 214, 54, 230, 111, 1, 247, 112, - 230, 111, 1, 246, 209, 230, 111, 1, 223, 4, 230, 111, 1, 222, 225, 230, - 111, 1, 212, 88, 230, 111, 1, 197, 128, 230, 111, 1, 197, 116, 230, 111, - 1, 237, 146, 230, 111, 1, 237, 130, 230, 111, 1, 213, 66, 230, 111, 1, - 199, 247, 230, 111, 1, 199, 44, 230, 111, 1, 237, 241, 230, 111, 1, 237, - 23, 230, 111, 1, 180, 230, 111, 1, 168, 230, 111, 1, 209, 219, 230, 111, - 1, 249, 103, 230, 111, 1, 248, 153, 230, 111, 1, 172, 230, 111, 1, 169, - 230, 111, 1, 166, 230, 111, 1, 171, 230, 111, 1, 219, 49, 230, 111, 1, - 195, 185, 230, 111, 1, 203, 160, 230, 111, 1, 189, 230, 111, 1, 144, 230, - 111, 3, 212, 128, 230, 111, 18, 3, 252, 154, 230, 111, 18, 3, 70, 230, - 111, 18, 3, 223, 170, 230, 111, 18, 3, 69, 230, 111, 18, 3, 196, 26, 230, - 111, 18, 3, 234, 145, 230, 111, 18, 3, 251, 184, 230, 111, 18, 3, 211, - 76, 230, 111, 18, 3, 250, 113, 230, 111, 3, 195, 37, 230, 111, 3, 196, - 153, 230, 111, 1, 221, 169, 230, 111, 1, 231, 29, 230, 111, 1, 191, 123, - 230, 111, 1, 206, 104, 230, 111, 1, 233, 68, 230, 111, 17, 191, 77, 230, - 111, 17, 108, 230, 111, 17, 109, 230, 111, 17, 139, 230, 111, 17, 137, - 230, 111, 17, 153, 230, 111, 17, 173, 230, 111, 17, 181, 230, 111, 17, - 176, 230, 111, 17, 184, 230, 111, 198, 128, 230, 111, 251, 244, 230, 111, - 223, 47, 230, 111, 196, 54, 230, 111, 234, 105, 211, 81, 230, 111, 3, - 192, 115, 230, 111, 252, 16, 57, 230, 128, 3, 247, 71, 230, 128, 3, 251, - 20, 230, 128, 3, 195, 32, 230, 128, 1, 65, 230, 128, 1, 252, 154, 230, - 128, 1, 70, 230, 128, 1, 223, 170, 230, 128, 1, 69, 230, 128, 1, 196, 26, - 230, 128, 1, 121, 148, 230, 128, 1, 121, 170, 230, 128, 18, 247, 74, 73, - 230, 128, 1, 73, 230, 128, 1, 251, 184, 230, 128, 18, 247, 74, 74, 230, - 128, 1, 74, 230, 128, 1, 250, 113, 230, 128, 1, 157, 230, 128, 1, 221, - 190, 230, 128, 1, 231, 203, 230, 128, 1, 231, 54, 230, 128, 1, 214, 54, - 230, 128, 1, 247, 112, 230, 128, 1, 246, 209, 230, 128, 1, 223, 4, 230, - 128, 1, 222, 225, 230, 128, 1, 212, 88, 230, 128, 1, 197, 128, 230, 128, - 1, 197, 116, 230, 128, 1, 237, 146, 230, 128, 1, 237, 130, 230, 128, 1, - 213, 66, 230, 128, 1, 199, 247, 230, 128, 1, 199, 44, 230, 128, 1, 237, - 241, 230, 128, 1, 237, 23, 230, 128, 1, 180, 230, 128, 1, 168, 230, 128, - 1, 209, 219, 230, 128, 1, 249, 103, 230, 128, 1, 248, 153, 230, 128, 1, - 172, 230, 128, 1, 169, 230, 128, 1, 166, 230, 128, 1, 171, 230, 128, 1, - 219, 49, 230, 128, 1, 195, 185, 230, 128, 1, 203, 160, 230, 128, 1, 201, - 170, 230, 128, 1, 189, 230, 128, 1, 144, 230, 128, 3, 212, 128, 230, 128, - 3, 250, 95, 230, 128, 18, 3, 252, 154, 230, 128, 18, 3, 70, 230, 128, 18, - 3, 223, 170, 230, 128, 18, 3, 69, 230, 128, 18, 3, 196, 26, 230, 128, 18, - 3, 121, 148, 230, 128, 18, 3, 121, 206, 105, 230, 128, 18, 3, 247, 74, - 73, 230, 128, 18, 3, 73, 230, 128, 18, 3, 251, 184, 230, 128, 18, 3, 247, - 74, 74, 230, 128, 18, 3, 74, 230, 128, 18, 3, 250, 113, 230, 128, 3, 195, - 37, 230, 128, 211, 102, 230, 128, 1, 121, 206, 105, 230, 128, 1, 121, - 219, 50, 230, 128, 18, 3, 121, 170, 230, 128, 18, 3, 121, 219, 50, 230, - 128, 17, 191, 77, 230, 128, 17, 108, 230, 128, 17, 109, 230, 128, 17, - 139, 230, 128, 17, 137, 230, 128, 17, 153, 230, 128, 17, 173, 230, 128, - 17, 181, 230, 128, 17, 176, 230, 128, 17, 184, 230, 128, 252, 16, 57, - 230, 128, 206, 31, 57, 230, 128, 1, 191, 71, 230, 128, 3, 200, 201, 230, - 128, 3, 203, 150, 230, 128, 3, 217, 118, 230, 128, 3, 198, 219, 212, 129, - 56, 230, 128, 3, 242, 219, 212, 129, 56, 230, 128, 3, 197, 11, 212, 129, - 56, 211, 35, 3, 247, 71, 211, 35, 3, 251, 20, 211, 35, 3, 195, 32, 211, - 35, 1, 65, 211, 35, 1, 252, 154, 211, 35, 1, 70, 211, 35, 1, 223, 170, - 211, 35, 1, 69, 211, 35, 1, 196, 26, 211, 35, 1, 121, 148, 211, 35, 1, - 121, 170, 211, 35, 1, 73, 211, 35, 1, 251, 184, 211, 35, 1, 74, 211, 35, - 1, 250, 113, 211, 35, 1, 157, 211, 35, 1, 221, 190, 211, 35, 1, 231, 203, - 211, 35, 1, 231, 54, 211, 35, 1, 214, 54, 211, 35, 1, 247, 112, 211, 35, - 1, 246, 209, 211, 35, 1, 223, 4, 211, 35, 1, 222, 225, 211, 35, 1, 212, - 88, 211, 35, 1, 197, 128, 211, 35, 1, 197, 116, 211, 35, 1, 237, 146, - 211, 35, 1, 237, 130, 211, 35, 1, 213, 66, 211, 35, 1, 199, 247, 211, 35, - 1, 199, 44, 211, 35, 1, 237, 241, 211, 35, 1, 237, 23, 211, 35, 1, 180, - 211, 35, 1, 168, 211, 35, 1, 209, 219, 211, 35, 1, 249, 103, 211, 35, 1, - 248, 153, 211, 35, 1, 172, 211, 35, 1, 169, 211, 35, 1, 166, 211, 35, 1, - 171, 211, 35, 1, 219, 49, 211, 35, 1, 195, 185, 211, 35, 1, 203, 160, - 211, 35, 1, 201, 170, 211, 35, 1, 189, 211, 35, 1, 144, 211, 35, 3, 212, - 128, 211, 35, 3, 250, 95, 211, 35, 18, 3, 252, 154, 211, 35, 18, 3, 70, - 211, 35, 18, 3, 223, 170, 211, 35, 18, 3, 69, 211, 35, 18, 3, 196, 26, - 211, 35, 18, 3, 121, 148, 211, 35, 18, 3, 121, 206, 105, 211, 35, 18, 3, - 73, 211, 35, 18, 3, 251, 184, 211, 35, 18, 3, 74, 211, 35, 18, 3, 250, - 113, 211, 35, 3, 195, 37, 211, 35, 3, 210, 244, 211, 35, 251, 185, 219, - 174, 77, 211, 35, 250, 114, 219, 174, 77, 211, 35, 1, 206, 104, 211, 35, - 1, 207, 1, 211, 35, 1, 191, 175, 211, 35, 1, 121, 206, 105, 211, 35, 1, - 121, 219, 50, 211, 35, 18, 3, 121, 170, 211, 35, 18, 3, 121, 219, 50, - 211, 35, 17, 191, 77, 211, 35, 17, 108, 211, 35, 17, 109, 211, 35, 17, - 139, 211, 35, 17, 137, 211, 35, 17, 153, 211, 35, 17, 173, 211, 35, 17, - 181, 211, 35, 17, 176, 211, 35, 17, 184, 211, 35, 223, 26, 211, 35, 1, - 193, 187, 211, 35, 232, 80, 91, 208, 17, 211, 35, 232, 80, 91, 230, 37, - 211, 35, 232, 80, 115, 208, 15, 211, 35, 232, 80, 91, 202, 123, 211, 35, - 232, 80, 91, 234, 116, 211, 35, 232, 80, 115, 202, 120, 44, 3, 251, 20, - 44, 3, 195, 32, 44, 1, 65, 44, 1, 252, 154, 44, 1, 70, 44, 1, 223, 170, - 44, 1, 69, 44, 1, 196, 26, 44, 1, 73, 44, 1, 234, 145, 44, 1, 251, 184, - 44, 1, 74, 44, 1, 211, 76, 44, 1, 250, 113, 44, 1, 157, 44, 1, 214, 54, - 44, 1, 247, 112, 44, 1, 223, 4, 44, 1, 212, 88, 44, 1, 197, 128, 44, 1, - 213, 66, 44, 1, 199, 247, 44, 1, 180, 44, 1, 213, 48, 44, 1, 168, 44, 1, - 172, 44, 1, 169, 44, 1, 166, 44, 1, 206, 104, 44, 1, 171, 44, 1, 219, 49, - 44, 1, 219, 38, 44, 1, 195, 185, 44, 1, 203, 160, 44, 1, 201, 170, 44, 1, - 189, 44, 1, 144, 44, 18, 3, 252, 154, 44, 18, 3, 70, 44, 18, 3, 223, 170, - 44, 18, 3, 69, 44, 18, 3, 196, 26, 44, 18, 3, 73, 44, 18, 3, 234, 145, - 44, 18, 3, 251, 184, 44, 18, 3, 74, 44, 18, 3, 211, 76, 44, 18, 3, 250, - 113, 44, 3, 195, 37, 44, 211, 102, 44, 250, 114, 219, 174, 77, 44, 17, - 191, 77, 44, 17, 108, 44, 17, 109, 44, 17, 139, 44, 17, 137, 44, 17, 153, - 44, 17, 173, 44, 17, 181, 44, 17, 176, 44, 17, 184, 44, 31, 199, 90, 44, - 31, 91, 228, 109, 44, 31, 91, 188, 44, 237, 159, 57, 44, 215, 197, 57, - 44, 192, 78, 57, 44, 237, 97, 57, 44, 238, 183, 57, 44, 250, 170, 95, 57, - 44, 206, 31, 57, 44, 31, 57, 199, 94, 3, 33, 247, 72, 56, 199, 94, 3, - 247, 71, 199, 94, 3, 251, 20, 199, 94, 3, 195, 32, 199, 94, 3, 33, 251, - 21, 56, 199, 94, 1, 65, 199, 94, 1, 252, 154, 199, 94, 1, 70, 199, 94, 1, - 223, 170, 199, 94, 1, 69, 199, 94, 1, 196, 26, 199, 94, 1, 121, 148, 199, - 94, 1, 121, 170, 199, 94, 1, 73, 199, 94, 1, 234, 145, 199, 94, 1, 251, - 184, 199, 94, 1, 74, 199, 94, 1, 211, 76, 199, 94, 1, 250, 113, 199, 94, - 1, 157, 199, 94, 1, 221, 190, 199, 94, 1, 231, 203, 199, 94, 1, 231, 54, - 199, 94, 1, 214, 54, 199, 94, 1, 247, 112, 199, 94, 1, 246, 209, 199, 94, - 1, 223, 4, 199, 94, 1, 222, 225, 199, 94, 1, 212, 88, 199, 94, 1, 197, - 128, 199, 94, 1, 197, 116, 199, 94, 1, 237, 146, 199, 94, 1, 237, 130, - 199, 94, 1, 213, 66, 199, 94, 1, 199, 247, 199, 94, 1, 199, 44, 199, 94, - 1, 237, 241, 199, 94, 1, 237, 23, 199, 94, 1, 180, 199, 94, 1, 168, 199, - 94, 1, 209, 219, 199, 94, 1, 249, 103, 199, 94, 1, 248, 153, 199, 94, 1, - 172, 199, 94, 1, 169, 199, 94, 1, 166, 199, 94, 1, 206, 104, 199, 94, 1, - 171, 199, 94, 1, 219, 49, 199, 94, 1, 219, 38, 199, 94, 1, 195, 185, 199, - 94, 1, 203, 160, 199, 94, 1, 201, 170, 199, 94, 1, 189, 199, 94, 1, 144, - 199, 94, 3, 212, 128, 199, 94, 3, 250, 95, 199, 94, 18, 3, 252, 154, 199, - 94, 18, 3, 70, 199, 94, 18, 3, 223, 170, 199, 94, 18, 3, 69, 199, 94, 18, - 3, 196, 26, 199, 94, 18, 3, 121, 148, 199, 94, 18, 3, 121, 206, 105, 199, - 94, 18, 3, 73, 199, 94, 18, 3, 234, 145, 199, 94, 18, 3, 251, 184, 199, - 94, 18, 3, 74, 199, 94, 18, 3, 211, 76, 199, 94, 18, 3, 250, 113, 199, - 94, 3, 195, 37, 199, 94, 219, 174, 77, 199, 94, 251, 185, 219, 174, 77, - 199, 94, 1, 197, 164, 199, 94, 1, 234, 247, 199, 94, 1, 206, 85, 199, 94, - 1, 214, 218, 209, 39, 199, 94, 1, 121, 206, 105, 199, 94, 1, 121, 219, - 50, 199, 94, 18, 3, 121, 170, 199, 94, 18, 3, 121, 219, 50, 199, 94, 17, - 191, 77, 199, 94, 17, 108, 199, 94, 17, 109, 199, 94, 17, 139, 199, 94, - 17, 137, 199, 94, 17, 153, 199, 94, 17, 173, 199, 94, 17, 181, 199, 94, - 17, 176, 199, 94, 17, 184, 199, 94, 3, 202, 205, 199, 94, 232, 80, 17, - 191, 78, 39, 211, 143, 208, 246, 80, 137, 199, 94, 232, 80, 17, 91, 39, - 211, 143, 208, 246, 80, 137, 199, 94, 232, 80, 17, 103, 39, 211, 143, - 208, 246, 80, 137, 199, 94, 232, 80, 17, 115, 39, 211, 143, 208, 246, 80, - 137, 199, 94, 232, 80, 17, 91, 39, 233, 188, 208, 246, 80, 137, 199, 94, - 232, 80, 17, 103, 39, 233, 188, 208, 246, 80, 137, 199, 94, 232, 80, 17, - 115, 39, 233, 188, 208, 246, 80, 137, 199, 94, 3, 197, 44, 222, 55, 3, - 201, 241, 247, 71, 222, 55, 3, 247, 71, 222, 55, 3, 251, 20, 222, 55, 3, - 195, 32, 222, 55, 3, 202, 205, 222, 55, 1, 65, 222, 55, 1, 252, 154, 222, - 55, 1, 70, 222, 55, 1, 223, 170, 222, 55, 1, 69, 222, 55, 1, 196, 26, - 222, 55, 1, 121, 148, 222, 55, 1, 121, 170, 222, 55, 1, 73, 222, 55, 1, - 234, 145, 222, 55, 1, 251, 184, 222, 55, 1, 74, 222, 55, 1, 211, 76, 222, - 55, 1, 250, 113, 222, 55, 1, 157, 222, 55, 1, 221, 190, 222, 55, 1, 231, - 203, 222, 55, 1, 231, 54, 222, 55, 1, 214, 54, 222, 55, 1, 247, 112, 222, - 55, 1, 246, 209, 222, 55, 1, 223, 4, 222, 55, 1, 222, 225, 222, 55, 1, - 212, 88, 222, 55, 1, 197, 128, 222, 55, 1, 197, 116, 222, 55, 1, 237, - 146, 222, 55, 1, 237, 130, 222, 55, 1, 213, 66, 222, 55, 1, 199, 247, - 222, 55, 1, 199, 44, 222, 55, 1, 237, 241, 222, 55, 1, 237, 23, 222, 55, - 1, 180, 222, 55, 1, 168, 222, 55, 1, 209, 219, 222, 55, 1, 249, 103, 222, - 55, 1, 248, 153, 222, 55, 1, 172, 222, 55, 1, 169, 222, 55, 1, 166, 222, - 55, 1, 206, 104, 222, 55, 1, 171, 222, 55, 1, 219, 49, 222, 55, 1, 195, - 185, 222, 55, 1, 203, 160, 222, 55, 1, 201, 170, 222, 55, 1, 189, 222, - 55, 1, 144, 222, 55, 3, 212, 128, 222, 55, 3, 250, 95, 222, 55, 18, 3, - 252, 154, 222, 55, 18, 3, 70, 222, 55, 18, 3, 223, 170, 222, 55, 18, 3, - 69, 222, 55, 18, 3, 196, 26, 222, 55, 18, 3, 121, 148, 222, 55, 18, 3, - 121, 206, 105, 222, 55, 18, 3, 73, 222, 55, 18, 3, 234, 145, 222, 55, 18, - 3, 251, 184, 222, 55, 18, 3, 74, 222, 55, 18, 3, 211, 76, 222, 55, 18, 3, - 250, 113, 222, 55, 3, 195, 37, 222, 55, 219, 174, 77, 222, 55, 251, 185, - 219, 174, 77, 222, 55, 1, 214, 218, 209, 39, 222, 55, 1, 233, 68, 222, - 55, 1, 121, 206, 105, 222, 55, 1, 121, 219, 50, 222, 55, 18, 3, 121, 170, - 222, 55, 18, 3, 121, 219, 50, 222, 55, 17, 191, 77, 222, 55, 17, 108, - 222, 55, 17, 109, 222, 55, 17, 139, 222, 55, 17, 137, 222, 55, 17, 153, - 222, 55, 17, 173, 222, 55, 17, 181, 222, 55, 17, 176, 222, 55, 17, 184, - 222, 55, 3, 222, 210, 222, 55, 3, 196, 71, 141, 3, 33, 251, 21, 56, 141, - 3, 247, 71, 141, 3, 251, 20, 141, 3, 195, 32, 141, 1, 195, 147, 251, 20, - 141, 1, 65, 141, 1, 252, 154, 141, 1, 70, 141, 1, 223, 170, 141, 1, 69, - 141, 1, 196, 26, 141, 1, 121, 148, 141, 1, 121, 170, 141, 1, 73, 141, 1, - 234, 145, 141, 1, 251, 184, 141, 1, 74, 141, 1, 211, 76, 141, 1, 250, - 113, 141, 1, 157, 141, 1, 221, 190, 141, 1, 231, 203, 141, 1, 231, 54, - 141, 1, 214, 54, 141, 1, 247, 112, 141, 1, 246, 209, 141, 1, 223, 4, 141, - 1, 222, 225, 141, 1, 212, 88, 141, 1, 197, 128, 141, 1, 197, 116, 141, 1, - 237, 146, 141, 1, 237, 130, 141, 1, 213, 66, 141, 1, 199, 247, 141, 1, - 199, 44, 141, 1, 237, 241, 141, 1, 237, 23, 141, 1, 180, 141, 1, 213, 48, - 141, 1, 168, 141, 1, 209, 219, 141, 1, 249, 103, 141, 1, 248, 153, 141, - 1, 172, 141, 1, 169, 141, 1, 166, 141, 1, 206, 104, 141, 1, 171, 141, 1, - 219, 49, 141, 1, 219, 38, 141, 1, 195, 185, 141, 1, 203, 160, 141, 1, - 201, 170, 141, 1, 189, 141, 1, 144, 141, 1, 197, 97, 141, 3, 81, 249, 38, - 195, 37, 141, 3, 242, 212, 195, 37, 141, 3, 250, 95, 141, 18, 3, 252, - 154, 141, 18, 3, 70, 141, 18, 3, 223, 170, 141, 18, 3, 69, 141, 18, 3, - 196, 26, 141, 18, 3, 121, 148, 141, 18, 3, 121, 206, 105, 141, 18, 3, 73, - 141, 18, 3, 234, 145, 141, 18, 3, 251, 184, 141, 18, 3, 74, 141, 18, 3, - 211, 76, 141, 18, 3, 250, 113, 141, 3, 195, 37, 141, 1, 75, 207, 40, 141, - 3, 210, 120, 141, 1, 243, 36, 218, 147, 141, 1, 243, 36, 192, 159, 141, - 1, 243, 36, 219, 39, 141, 250, 114, 219, 174, 77, 141, 232, 80, 91, 211, - 89, 141, 232, 80, 91, 232, 100, 141, 232, 80, 115, 234, 112, 141, 232, - 80, 91, 197, 31, 141, 232, 80, 91, 199, 81, 141, 232, 80, 115, 197, 30, - 141, 232, 80, 91, 232, 233, 141, 1, 250, 220, 223, 170, 141, 1, 121, 206, - 105, 141, 1, 121, 219, 50, 141, 18, 3, 121, 170, 141, 18, 3, 121, 219, - 50, 141, 17, 191, 77, 141, 17, 108, 141, 17, 109, 141, 17, 139, 141, 17, - 137, 141, 17, 153, 141, 17, 173, 141, 17, 181, 141, 17, 176, 141, 17, - 184, 141, 31, 199, 90, 141, 31, 91, 228, 109, 141, 31, 91, 188, 141, 232, - 80, 91, 208, 17, 141, 232, 80, 91, 230, 37, 141, 232, 80, 115, 208, 15, - 141, 232, 80, 91, 202, 123, 141, 232, 80, 91, 234, 116, 141, 232, 80, - 115, 202, 120, 141, 237, 164, 77, 141, 1, 243, 36, 213, 67, 141, 1, 243, - 36, 215, 47, 141, 1, 243, 36, 206, 105, 141, 1, 243, 36, 170, 141, 1, - 243, 36, 219, 50, 141, 1, 243, 36, 222, 125, 165, 3, 247, 71, 165, 3, - 251, 19, 165, 3, 195, 31, 165, 1, 250, 79, 165, 1, 252, 107, 165, 1, 251, - 209, 165, 1, 251, 224, 165, 1, 223, 15, 165, 1, 223, 169, 165, 1, 196, - 16, 165, 1, 196, 20, 165, 1, 223, 42, 165, 1, 223, 43, 165, 1, 223, 154, - 165, 1, 223, 156, 165, 1, 233, 155, 165, 1, 234, 140, 165, 1, 251, 167, - 165, 1, 210, 231, 165, 1, 211, 69, 165, 1, 250, 98, 165, 1, 251, 112, - 222, 2, 165, 1, 217, 98, 222, 2, 165, 1, 251, 112, 231, 148, 165, 1, 217, - 98, 231, 148, 165, 1, 222, 54, 214, 233, 165, 1, 205, 127, 231, 148, 165, - 1, 251, 112, 247, 20, 165, 1, 217, 98, 247, 20, 165, 1, 251, 112, 222, - 241, 165, 1, 217, 98, 222, 241, 165, 1, 199, 236, 214, 233, 165, 1, 199, - 236, 205, 126, 214, 234, 165, 1, 205, 127, 222, 241, 165, 1, 251, 112, - 197, 124, 165, 1, 217, 98, 197, 124, 165, 1, 251, 112, 237, 137, 165, 1, - 217, 98, 237, 137, 165, 1, 215, 78, 214, 183, 165, 1, 205, 127, 237, 137, - 165, 1, 251, 112, 199, 148, 165, 1, 217, 98, 199, 148, 165, 1, 251, 112, - 237, 157, 165, 1, 217, 98, 237, 157, 165, 1, 237, 189, 214, 183, 165, 1, - 205, 127, 237, 157, 165, 1, 251, 112, 210, 61, 165, 1, 217, 98, 210, 61, - 165, 1, 251, 112, 249, 5, 165, 1, 217, 98, 249, 5, 165, 1, 217, 0, 165, - 1, 251, 92, 249, 5, 165, 1, 192, 85, 165, 1, 207, 116, 165, 1, 237, 189, - 219, 223, 165, 1, 195, 153, 165, 1, 199, 236, 205, 97, 165, 1, 215, 78, - 205, 97, 165, 1, 237, 189, 205, 97, 165, 1, 229, 219, 165, 1, 215, 78, - 219, 223, 165, 1, 233, 20, 165, 3, 251, 154, 165, 18, 3, 251, 219, 165, - 18, 3, 221, 215, 251, 226, 165, 18, 3, 236, 222, 251, 226, 165, 18, 3, - 221, 215, 223, 39, 165, 18, 3, 236, 222, 223, 39, 165, 18, 3, 221, 215, - 210, 209, 165, 18, 3, 236, 222, 210, 209, 165, 18, 3, 231, 192, 165, 18, - 3, 221, 22, 165, 18, 3, 236, 222, 221, 22, 165, 18, 3, 221, 24, 237, 75, - 165, 18, 3, 221, 23, 230, 59, 251, 219, 165, 18, 3, 221, 23, 230, 59, - 236, 222, 251, 219, 165, 18, 3, 221, 23, 230, 59, 231, 147, 165, 18, 3, - 231, 147, 165, 219, 62, 17, 191, 77, 165, 219, 62, 17, 108, 165, 219, 62, - 17, 109, 165, 219, 62, 17, 139, 165, 219, 62, 17, 137, 165, 219, 62, 17, - 153, 165, 219, 62, 17, 173, 165, 219, 62, 17, 181, 165, 219, 62, 17, 176, - 165, 219, 62, 17, 184, 165, 18, 3, 236, 222, 231, 192, 165, 18, 3, 236, - 222, 231, 147, 165, 208, 145, 220, 185, 199, 39, 246, 192, 221, 44, 222, - 75, 199, 39, 246, 192, 221, 160, 221, 184, 199, 39, 246, 192, 221, 160, - 221, 150, 199, 39, 246, 192, 221, 160, 221, 145, 199, 39, 246, 192, 221, - 160, 221, 155, 199, 39, 246, 192, 221, 160, 207, 138, 199, 39, 246, 192, - 213, 236, 213, 223, 199, 39, 246, 192, 243, 21, 246, 198, 199, 39, 246, - 192, 243, 21, 243, 31, 199, 39, 246, 192, 243, 21, 246, 197, 199, 39, - 246, 192, 202, 42, 202, 41, 199, 39, 246, 192, 243, 21, 243, 17, 199, 39, - 246, 192, 192, 13, 192, 20, 199, 39, 246, 192, 236, 130, 246, 206, 199, - 39, 246, 192, 118, 210, 77, 199, 39, 246, 192, 198, 237, 199, 33, 199, - 39, 246, 192, 198, 237, 214, 208, 199, 39, 246, 192, 198, 237, 209, 179, - 199, 39, 246, 192, 213, 31, 214, 88, 199, 39, 246, 192, 236, 130, 237, - 76, 199, 39, 246, 192, 118, 199, 179, 199, 39, 246, 192, 198, 237, 198, - 202, 199, 39, 246, 192, 198, 237, 199, 40, 199, 39, 246, 192, 198, 237, - 198, 231, 199, 39, 246, 192, 213, 31, 212, 165, 199, 39, 246, 192, 248, - 64, 249, 68, 199, 39, 246, 192, 209, 66, 209, 102, 199, 39, 246, 192, - 209, 191, 209, 181, 199, 39, 246, 192, 232, 136, 233, 68, 199, 39, 246, - 192, 209, 191, 209, 212, 199, 39, 246, 192, 232, 136, 233, 39, 199, 39, - 246, 192, 209, 191, 205, 141, 199, 39, 246, 192, 215, 252, 172, 199, 39, - 246, 192, 192, 13, 192, 116, 199, 39, 246, 192, 206, 158, 206, 56, 199, - 39, 246, 192, 206, 63, 199, 39, 246, 192, 219, 20, 219, 81, 199, 39, 246, - 192, 218, 203, 199, 39, 246, 192, 193, 49, 193, 172, 199, 39, 246, 192, - 202, 42, 205, 162, 199, 39, 246, 192, 202, 42, 206, 27, 199, 39, 246, - 192, 202, 42, 200, 246, 199, 39, 246, 192, 228, 248, 229, 90, 199, 39, - 246, 192, 219, 20, 242, 255, 199, 39, 246, 192, 186, 251, 71, 199, 39, - 246, 192, 228, 248, 213, 21, 199, 39, 246, 192, 210, 184, 199, 39, 246, - 192, 205, 121, 65, 199, 39, 246, 192, 217, 92, 230, 22, 199, 39, 246, - 192, 205, 121, 252, 154, 199, 39, 246, 192, 205, 121, 251, 98, 199, 39, - 246, 192, 205, 121, 70, 199, 39, 246, 192, 205, 121, 223, 170, 199, 39, - 246, 192, 205, 121, 196, 148, 199, 39, 246, 192, 205, 121, 196, 145, 199, - 39, 246, 192, 205, 121, 69, 199, 39, 246, 192, 205, 121, 196, 26, 199, - 39, 246, 192, 209, 193, 199, 39, 238, 123, 16, 249, 69, 199, 39, 246, - 192, 205, 121, 73, 199, 39, 246, 192, 205, 121, 251, 229, 199, 39, 246, - 192, 205, 121, 74, 199, 39, 246, 192, 205, 121, 251, 185, 217, 86, 199, - 39, 246, 192, 205, 121, 251, 185, 217, 87, 199, 39, 246, 192, 220, 15, - 199, 39, 246, 192, 217, 83, 199, 39, 246, 192, 217, 84, 199, 39, 246, - 192, 217, 92, 234, 104, 199, 39, 246, 192, 217, 92, 198, 236, 199, 39, - 246, 192, 217, 92, 197, 240, 199, 39, 246, 192, 217, 92, 243, 84, 199, - 39, 246, 192, 199, 31, 199, 39, 246, 192, 213, 169, 199, 39, 246, 192, - 192, 110, 199, 39, 246, 192, 232, 125, 199, 39, 17, 191, 77, 199, 39, 17, - 108, 199, 39, 17, 109, 199, 39, 17, 139, 199, 39, 17, 137, 199, 39, 17, - 153, 199, 39, 17, 173, 199, 39, 17, 181, 199, 39, 17, 176, 199, 39, 17, - 184, 199, 39, 246, 192, 251, 66, 199, 39, 246, 192, 221, 156, 219, 249, - 1, 221, 43, 219, 249, 1, 221, 160, 200, 190, 219, 249, 1, 221, 160, 199, - 192, 219, 249, 1, 210, 177, 231, 54, 219, 249, 1, 213, 235, 219, 249, 1, - 242, 51, 219, 249, 1, 210, 177, 246, 209, 219, 249, 1, 202, 42, 199, 192, - 219, 249, 1, 210, 177, 222, 225, 219, 249, 1, 212, 52, 219, 249, 1, 210, - 177, 212, 88, 219, 249, 1, 210, 177, 197, 128, 219, 249, 1, 210, 177, - 197, 116, 219, 249, 1, 210, 177, 237, 146, 219, 249, 1, 210, 177, 237, - 130, 219, 249, 1, 210, 177, 213, 66, 219, 249, 1, 236, 129, 219, 249, 1, - 159, 219, 249, 1, 198, 237, 200, 190, 219, 249, 1, 198, 237, 199, 192, - 219, 249, 1, 210, 177, 237, 23, 219, 249, 1, 213, 30, 219, 249, 1, 248, - 63, 219, 249, 1, 209, 65, 219, 249, 1, 209, 191, 200, 190, 219, 249, 1, - 232, 136, 199, 192, 219, 249, 1, 209, 191, 199, 192, 219, 249, 1, 232, - 136, 200, 190, 219, 249, 1, 210, 177, 248, 153, 219, 249, 1, 215, 251, - 219, 249, 1, 192, 12, 219, 249, 1, 219, 20, 219, 81, 219, 249, 1, 219, - 20, 218, 234, 219, 249, 1, 193, 48, 219, 249, 1, 205, 129, 203, 160, 219, - 249, 1, 205, 129, 201, 170, 219, 249, 1, 202, 42, 200, 190, 219, 249, 1, - 228, 248, 200, 190, 219, 249, 1, 210, 177, 219, 49, 219, 249, 1, 74, 219, - 249, 1, 228, 248, 199, 192, 219, 249, 234, 78, 219, 249, 18, 3, 65, 219, - 249, 18, 3, 217, 92, 222, 61, 219, 249, 18, 3, 252, 154, 219, 249, 18, 3, - 251, 98, 219, 249, 18, 3, 70, 219, 249, 18, 3, 223, 170, 219, 249, 18, 3, - 192, 159, 219, 249, 18, 3, 191, 176, 219, 249, 18, 3, 69, 219, 249, 18, - 3, 196, 26, 219, 249, 3, 210, 177, 195, 37, 219, 249, 18, 3, 217, 92, - 221, 20, 219, 249, 204, 15, 3, 219, 19, 219, 249, 204, 15, 3, 212, 52, - 219, 249, 18, 3, 73, 219, 249, 18, 3, 234, 123, 219, 249, 18, 3, 74, 219, - 249, 18, 3, 250, 81, 219, 249, 18, 3, 251, 184, 219, 249, 221, 44, 171, - 219, 249, 163, 217, 92, 234, 104, 219, 249, 163, 217, 92, 198, 236, 219, - 249, 163, 217, 92, 198, 188, 219, 249, 163, 217, 92, 247, 29, 219, 249, - 247, 77, 77, 219, 249, 213, 178, 219, 249, 17, 191, 77, 219, 249, 17, - 108, 219, 249, 17, 109, 219, 249, 17, 139, 219, 249, 17, 137, 219, 249, - 17, 153, 219, 249, 17, 173, 219, 249, 17, 181, 219, 249, 17, 176, 219, - 249, 17, 184, 219, 249, 228, 248, 213, 30, 219, 249, 228, 248, 215, 251, - 219, 249, 1, 221, 161, 230, 223, 219, 249, 1, 221, 161, 212, 52, 86, 5, - 211, 102, 86, 87, 230, 148, 192, 25, 216, 99, 197, 174, 65, 86, 87, 230, - 148, 192, 25, 216, 99, 255, 155, 206, 162, 248, 225, 172, 86, 87, 230, - 148, 192, 25, 216, 99, 255, 155, 230, 148, 197, 149, 172, 86, 87, 89, - 192, 25, 216, 99, 216, 215, 172, 86, 87, 242, 167, 192, 25, 216, 99, 203, - 167, 172, 86, 87, 247, 49, 192, 25, 216, 99, 209, 180, 203, 153, 172, 86, - 87, 192, 25, 216, 99, 197, 149, 203, 153, 172, 86, 87, 205, 95, 203, 152, - 86, 87, 247, 221, 192, 25, 216, 98, 86, 87, 248, 93, 203, 45, 192, 25, - 216, 98, 86, 87, 223, 70, 197, 148, 86, 87, 237, 68, 197, 149, 247, 220, - 86, 87, 203, 152, 86, 87, 212, 57, 203, 152, 86, 87, 197, 149, 203, 152, - 86, 87, 212, 57, 197, 149, 203, 152, 86, 87, 206, 186, 243, 63, 201, 188, - 203, 152, 86, 87, 207, 5, 230, 188, 203, 152, 86, 87, 247, 49, 255, 159, - 206, 68, 216, 214, 177, 247, 80, 86, 87, 230, 148, 197, 148, 86, 219, 3, - 3, 246, 207, 206, 67, 86, 219, 3, 3, 219, 133, 206, 67, 86, 250, 138, 3, - 203, 163, 231, 131, 255, 160, 206, 67, 86, 250, 138, 3, 255, 157, 168, - 86, 250, 138, 3, 205, 64, 197, 143, 86, 3, 207, 110, 236, 144, 231, 130, - 86, 3, 207, 110, 236, 144, 230, 225, 86, 3, 207, 110, 236, 144, 230, 149, - 86, 3, 207, 110, 214, 229, 231, 130, 86, 3, 207, 110, 214, 229, 230, 225, - 86, 3, 207, 110, 236, 144, 207, 110, 214, 228, 86, 17, 191, 77, 86, 17, - 108, 86, 17, 109, 86, 17, 139, 86, 17, 137, 86, 17, 153, 86, 17, 173, 86, - 17, 181, 86, 17, 176, 86, 17, 184, 86, 17, 134, 108, 86, 17, 134, 109, - 86, 17, 134, 139, 86, 17, 134, 137, 86, 17, 134, 153, 86, 17, 134, 173, - 86, 17, 134, 181, 86, 17, 134, 176, 86, 17, 134, 184, 86, 17, 134, 191, - 77, 86, 87, 247, 223, 206, 67, 86, 87, 214, 45, 247, 147, 212, 69, 191, - 10, 86, 87, 247, 49, 255, 159, 206, 68, 247, 148, 216, 44, 247, 80, 86, - 87, 214, 45, 247, 147, 203, 164, 206, 67, 86, 87, 243, 80, 216, 98, 86, - 87, 197, 165, 255, 156, 86, 87, 230, 131, 206, 68, 230, 86, 86, 87, 230, - 131, 206, 68, 230, 92, 86, 87, 251, 72, 221, 178, 230, 86, 86, 87, 251, - 72, 221, 178, 230, 92, 86, 3, 192, 102, 197, 147, 86, 3, 217, 46, 197, - 147, 86, 1, 157, 86, 1, 221, 190, 86, 1, 231, 203, 86, 1, 231, 54, 86, 1, - 214, 54, 86, 1, 247, 112, 86, 1, 246, 209, 86, 1, 223, 4, 86, 1, 212, 88, - 86, 1, 197, 128, 86, 1, 197, 116, 86, 1, 237, 146, 86, 1, 237, 130, 86, - 1, 213, 66, 86, 1, 199, 247, 86, 1, 199, 44, 86, 1, 237, 241, 86, 1, 237, - 23, 86, 1, 180, 86, 1, 168, 86, 1, 209, 219, 86, 1, 249, 103, 86, 1, 248, - 153, 86, 1, 172, 86, 1, 197, 164, 86, 1, 197, 153, 86, 1, 234, 247, 86, - 1, 234, 241, 86, 1, 193, 187, 86, 1, 191, 71, 86, 1, 191, 123, 86, 1, - 255, 162, 86, 1, 169, 86, 1, 166, 86, 1, 171, 86, 1, 203, 160, 86, 1, - 201, 170, 86, 1, 189, 86, 1, 144, 86, 1, 65, 86, 1, 220, 222, 86, 1, 232, - 181, 166, 86, 1, 221, 77, 86, 1, 206, 104, 86, 18, 3, 252, 154, 86, 18, - 3, 70, 86, 18, 3, 223, 170, 86, 18, 3, 69, 86, 18, 3, 196, 26, 86, 18, 3, - 121, 148, 86, 18, 3, 121, 206, 105, 86, 18, 3, 121, 170, 86, 18, 3, 121, - 219, 50, 86, 18, 3, 73, 86, 18, 3, 234, 145, 86, 18, 3, 74, 86, 18, 3, - 211, 76, 86, 3, 206, 168, 201, 0, 214, 55, 206, 157, 86, 3, 206, 162, - 248, 224, 86, 18, 3, 207, 13, 70, 86, 18, 3, 207, 13, 223, 170, 86, 3, - 212, 69, 191, 11, 214, 237, 237, 241, 86, 3, 202, 56, 219, 216, 86, 87, - 230, 39, 86, 87, 210, 168, 86, 3, 219, 219, 206, 67, 86, 3, 192, 107, - 206, 67, 86, 3, 219, 220, 197, 165, 247, 80, 86, 3, 216, 217, 247, 80, - 86, 3, 230, 152, 247, 81, 207, 3, 86, 3, 230, 152, 216, 201, 207, 3, 86, - 3, 223, 65, 216, 217, 247, 80, 86, 200, 234, 3, 219, 220, 197, 165, 247, - 80, 86, 200, 234, 3, 216, 217, 247, 80, 86, 200, 234, 3, 223, 65, 216, - 217, 247, 80, 86, 200, 234, 1, 157, 86, 200, 234, 1, 221, 190, 86, 200, - 234, 1, 231, 203, 86, 200, 234, 1, 231, 54, 86, 200, 234, 1, 214, 54, 86, - 200, 234, 1, 247, 112, 86, 200, 234, 1, 246, 209, 86, 200, 234, 1, 223, - 4, 86, 200, 234, 1, 212, 88, 86, 200, 234, 1, 197, 128, 86, 200, 234, 1, - 197, 116, 86, 200, 234, 1, 237, 146, 86, 200, 234, 1, 237, 130, 86, 200, - 234, 1, 213, 66, 86, 200, 234, 1, 199, 247, 86, 200, 234, 1, 199, 44, 86, - 200, 234, 1, 237, 241, 86, 200, 234, 1, 237, 23, 86, 200, 234, 1, 180, - 86, 200, 234, 1, 168, 86, 200, 234, 1, 209, 219, 86, 200, 234, 1, 249, - 103, 86, 200, 234, 1, 248, 153, 86, 200, 234, 1, 172, 86, 200, 234, 1, - 197, 164, 86, 200, 234, 1, 197, 153, 86, 200, 234, 1, 234, 247, 86, 200, - 234, 1, 234, 241, 86, 200, 234, 1, 193, 187, 86, 200, 234, 1, 191, 71, - 86, 200, 234, 1, 191, 123, 86, 200, 234, 1, 255, 162, 86, 200, 234, 1, - 169, 86, 200, 234, 1, 166, 86, 200, 234, 1, 171, 86, 200, 234, 1, 203, - 160, 86, 200, 234, 1, 201, 170, 86, 200, 234, 1, 189, 86, 200, 234, 1, - 144, 86, 200, 234, 1, 65, 86, 200, 234, 1, 220, 222, 86, 200, 234, 1, - 232, 181, 193, 187, 86, 200, 234, 1, 232, 181, 169, 86, 200, 234, 1, 232, - 181, 166, 86, 220, 209, 206, 64, 221, 190, 86, 220, 209, 206, 64, 221, - 191, 247, 148, 216, 44, 247, 80, 86, 247, 64, 3, 88, 248, 213, 86, 247, - 64, 3, 155, 248, 213, 86, 247, 64, 3, 247, 68, 199, 130, 86, 247, 64, 3, - 205, 94, 255, 161, 86, 16, 235, 61, 247, 218, 86, 16, 207, 109, 206, 169, - 86, 16, 210, 196, 231, 129, 86, 16, 207, 109, 206, 170, 207, 5, 230, 187, - 86, 16, 209, 180, 168, 86, 16, 213, 8, 247, 218, 86, 16, 213, 8, 247, - 219, 212, 57, 255, 158, 86, 16, 213, 8, 247, 219, 230, 150, 255, 158, 86, - 16, 213, 8, 247, 219, 247, 148, 255, 158, 86, 3, 207, 110, 214, 229, 207, - 110, 236, 143, 86, 3, 207, 110, 214, 229, 230, 149, 86, 87, 247, 222, - 203, 45, 231, 17, 216, 99, 207, 4, 86, 87, 215, 253, 192, 25, 231, 17, - 216, 99, 207, 4, 86, 87, 212, 57, 197, 148, 86, 87, 89, 247, 252, 206, - 159, 192, 25, 216, 99, 216, 215, 172, 86, 87, 242, 167, 247, 252, 206, - 159, 192, 25, 216, 99, 203, 167, 172, 206, 202, 200, 151, 57, 219, 199, - 200, 151, 57, 206, 202, 200, 151, 3, 4, 236, 94, 219, 199, 200, 151, 3, - 4, 236, 94, 86, 87, 219, 211, 216, 218, 206, 67, 86, 87, 198, 14, 216, - 218, 206, 67, 79, 1, 157, 79, 1, 221, 190, 79, 1, 231, 203, 79, 1, 231, - 54, 79, 1, 214, 54, 79, 1, 247, 112, 79, 1, 246, 209, 79, 1, 223, 4, 79, - 1, 222, 225, 79, 1, 212, 88, 79, 1, 213, 32, 79, 1, 197, 128, 79, 1, 197, - 116, 79, 1, 237, 146, 79, 1, 237, 130, 79, 1, 213, 66, 79, 1, 199, 247, - 79, 1, 199, 44, 79, 1, 237, 241, 79, 1, 237, 23, 79, 1, 180, 79, 1, 168, - 79, 1, 209, 219, 79, 1, 249, 103, 79, 1, 248, 153, 79, 1, 172, 79, 1, - 169, 79, 1, 166, 79, 1, 171, 79, 1, 193, 187, 79, 1, 189, 79, 1, 144, 79, - 1, 219, 49, 79, 1, 65, 79, 1, 203, 134, 65, 79, 1, 70, 79, 1, 223, 170, - 79, 1, 69, 79, 1, 196, 26, 79, 1, 73, 79, 1, 215, 215, 73, 79, 1, 74, 79, - 1, 250, 113, 79, 18, 3, 199, 195, 252, 154, 79, 18, 3, 252, 154, 79, 18, - 3, 70, 79, 18, 3, 223, 170, 79, 18, 3, 69, 79, 18, 3, 196, 26, 79, 18, 3, - 73, 79, 18, 3, 251, 184, 79, 18, 3, 215, 215, 223, 170, 79, 18, 3, 215, - 215, 74, 79, 18, 3, 234, 227, 56, 79, 3, 251, 20, 79, 3, 75, 60, 79, 3, - 195, 32, 79, 3, 195, 37, 79, 3, 250, 164, 79, 119, 3, 216, 198, 169, 79, - 119, 3, 216, 198, 166, 79, 119, 3, 216, 198, 193, 187, 79, 119, 3, 216, - 198, 144, 79, 1, 230, 172, 189, 79, 17, 191, 77, 79, 17, 108, 79, 17, - 109, 79, 17, 139, 79, 17, 137, 79, 17, 153, 79, 17, 173, 79, 17, 181, 79, - 17, 176, 79, 17, 184, 79, 3, 219, 59, 205, 48, 79, 3, 205, 48, 79, 16, - 219, 12, 79, 16, 242, 19, 79, 16, 251, 205, 79, 16, 231, 109, 79, 1, 203, - 160, 79, 1, 201, 170, 79, 1, 121, 148, 79, 1, 121, 206, 105, 79, 1, 121, - 170, 79, 1, 121, 219, 50, 79, 18, 3, 121, 148, 79, 18, 3, 121, 206, 105, - 79, 18, 3, 121, 170, 79, 18, 3, 121, 219, 50, 79, 1, 215, 215, 214, 54, - 79, 1, 215, 215, 222, 225, 79, 1, 215, 215, 249, 3, 79, 1, 215, 215, 248, - 254, 79, 119, 3, 215, 215, 216, 198, 180, 79, 119, 3, 215, 215, 216, 198, - 172, 79, 119, 3, 215, 215, 216, 198, 171, 79, 1, 203, 166, 222, 36, 203, - 160, 79, 18, 3, 203, 166, 222, 36, 233, 201, 79, 163, 87, 203, 166, 222, - 36, 229, 228, 79, 163, 87, 203, 166, 222, 36, 221, 254, 209, 190, 79, 1, - 193, 100, 208, 109, 222, 36, 199, 44, 79, 1, 193, 100, 208, 109, 222, 36, - 208, 115, 79, 18, 3, 193, 100, 208, 109, 222, 36, 233, 201, 79, 18, 3, - 193, 100, 208, 109, 222, 36, 196, 148, 79, 3, 193, 100, 208, 109, 222, - 36, 198, 73, 79, 3, 193, 100, 208, 109, 222, 36, 198, 72, 79, 3, 193, - 100, 208, 109, 222, 36, 198, 71, 79, 3, 193, 100, 208, 109, 222, 36, 198, - 70, 79, 3, 193, 100, 208, 109, 222, 36, 198, 69, 79, 1, 234, 158, 208, - 109, 222, 36, 213, 66, 79, 1, 234, 158, 208, 109, 222, 36, 191, 183, 79, - 1, 234, 158, 208, 109, 222, 36, 231, 19, 79, 18, 3, 231, 124, 222, 36, - 70, 79, 18, 3, 222, 3, 211, 139, 79, 18, 3, 222, 3, 69, 79, 18, 3, 222, - 3, 234, 145, 79, 1, 203, 134, 157, 79, 1, 203, 134, 221, 190, 79, 1, 203, - 134, 231, 203, 79, 1, 203, 134, 247, 112, 79, 1, 203, 134, 191, 123, 79, - 1, 203, 134, 212, 88, 79, 1, 203, 134, 237, 241, 79, 1, 203, 134, 180, - 79, 1, 203, 134, 209, 219, 79, 1, 203, 134, 233, 68, 79, 1, 203, 134, - 249, 103, 79, 1, 203, 134, 199, 44, 79, 1, 203, 134, 144, 79, 119, 3, - 203, 134, 216, 198, 193, 187, 79, 18, 3, 203, 134, 252, 154, 79, 18, 3, - 203, 134, 73, 79, 18, 3, 203, 134, 234, 227, 56, 79, 18, 3, 203, 134, 52, - 192, 159, 79, 3, 203, 134, 198, 72, 79, 3, 203, 134, 198, 71, 79, 3, 203, - 134, 198, 69, 79, 3, 203, 134, 198, 68, 79, 3, 203, 134, 238, 200, 198, - 72, 79, 3, 203, 134, 238, 200, 198, 71, 79, 3, 203, 134, 238, 200, 234, - 64, 198, 74, 79, 1, 206, 42, 210, 179, 233, 68, 79, 3, 206, 42, 210, 179, - 198, 69, 79, 203, 134, 17, 191, 77, 79, 203, 134, 17, 108, 79, 203, 134, - 17, 109, 79, 203, 134, 17, 139, 79, 203, 134, 17, 137, 79, 203, 134, 17, - 153, 79, 203, 134, 17, 173, 79, 203, 134, 17, 181, 79, 203, 134, 17, 176, - 79, 203, 134, 17, 184, 79, 3, 221, 181, 198, 73, 79, 3, 221, 181, 198, - 71, 79, 18, 3, 251, 170, 65, 79, 18, 3, 251, 170, 251, 184, 79, 16, 203, - 134, 108, 79, 16, 203, 134, 233, 174, 100, 6, 1, 251, 81, 100, 6, 1, 249, - 51, 100, 6, 1, 231, 173, 100, 6, 1, 236, 105, 100, 6, 1, 234, 61, 100, 6, - 1, 195, 46, 100, 6, 1, 191, 80, 100, 6, 1, 199, 188, 100, 6, 1, 223, 134, - 100, 6, 1, 222, 61, 100, 6, 1, 219, 239, 100, 6, 1, 217, 70, 100, 6, 1, - 214, 202, 100, 6, 1, 211, 93, 100, 6, 1, 210, 121, 100, 6, 1, 191, 67, - 100, 6, 1, 207, 158, 100, 6, 1, 205, 137, 100, 6, 1, 199, 174, 100, 6, 1, - 196, 109, 100, 6, 1, 209, 211, 100, 6, 1, 221, 176, 100, 6, 1, 231, 45, - 100, 6, 1, 208, 74, 100, 6, 1, 203, 64, 100, 6, 1, 243, 33, 100, 6, 1, - 247, 80, 100, 6, 1, 222, 207, 100, 6, 1, 242, 226, 100, 6, 1, 246, 193, - 100, 6, 1, 192, 218, 100, 6, 1, 222, 222, 100, 6, 1, 230, 54, 100, 6, 1, - 229, 213, 100, 6, 1, 229, 113, 100, 6, 1, 193, 123, 100, 6, 1, 229, 242, - 100, 6, 1, 228, 235, 100, 6, 1, 192, 14, 100, 6, 1, 251, 218, 100, 1, - 251, 81, 100, 1, 249, 51, 100, 1, 231, 173, 100, 1, 236, 105, 100, 1, - 234, 61, 100, 1, 195, 46, 100, 1, 191, 80, 100, 1, 199, 188, 100, 1, 223, - 134, 100, 1, 222, 61, 100, 1, 219, 239, 100, 1, 217, 70, 100, 1, 214, - 202, 100, 1, 211, 93, 100, 1, 210, 121, 100, 1, 191, 67, 100, 1, 207, - 158, 100, 1, 205, 137, 100, 1, 199, 174, 100, 1, 196, 109, 100, 1, 209, - 211, 100, 1, 221, 176, 100, 1, 231, 45, 100, 1, 208, 74, 100, 1, 203, 64, - 100, 1, 243, 33, 100, 1, 247, 80, 100, 1, 222, 207, 100, 1, 242, 226, - 100, 1, 246, 193, 100, 1, 192, 218, 100, 1, 222, 222, 100, 1, 230, 54, - 100, 1, 229, 213, 100, 1, 229, 113, 100, 1, 193, 123, 100, 1, 229, 242, - 100, 1, 228, 235, 100, 1, 232, 238, 100, 1, 192, 14, 100, 1, 234, 80, - 100, 1, 152, 231, 173, 100, 1, 251, 178, 100, 210, 118, 204, 5, 59, 1, - 100, 214, 202, 100, 1, 251, 218, 100, 1, 229, 240, 57, 100, 1, 220, 92, - 57, 30, 146, 221, 89, 30, 146, 201, 162, 30, 146, 213, 190, 30, 146, 198, - 163, 30, 146, 201, 151, 30, 146, 206, 234, 30, 146, 216, 59, 30, 146, - 209, 160, 30, 146, 201, 159, 30, 146, 202, 155, 30, 146, 201, 156, 30, - 146, 223, 193, 30, 146, 242, 232, 30, 146, 201, 166, 30, 146, 243, 43, - 30, 146, 221, 164, 30, 146, 199, 2, 30, 146, 209, 200, 30, 146, 229, 110, - 30, 146, 213, 186, 30, 146, 201, 160, 30, 146, 213, 180, 30, 146, 213, - 184, 30, 146, 198, 160, 30, 146, 206, 222, 30, 146, 201, 158, 30, 146, - 206, 232, 30, 146, 222, 42, 30, 146, 216, 52, 30, 146, 222, 45, 30, 146, - 209, 155, 30, 146, 209, 153, 30, 146, 209, 141, 30, 146, 209, 149, 30, - 146, 209, 147, 30, 146, 209, 144, 30, 146, 209, 146, 30, 146, 209, 143, - 30, 146, 209, 148, 30, 146, 209, 158, 30, 146, 209, 159, 30, 146, 209, - 142, 30, 146, 209, 152, 30, 146, 222, 43, 30, 146, 222, 41, 30, 146, 202, - 148, 30, 146, 202, 146, 30, 146, 202, 138, 30, 146, 202, 141, 30, 146, - 202, 147, 30, 146, 202, 143, 30, 146, 202, 142, 30, 146, 202, 140, 30, - 146, 202, 151, 30, 146, 202, 153, 30, 146, 202, 154, 30, 146, 202, 149, - 30, 146, 202, 139, 30, 146, 202, 144, 30, 146, 202, 152, 30, 146, 243, - 24, 30, 146, 243, 22, 30, 146, 246, 222, 30, 146, 246, 220, 30, 146, 210, - 139, 30, 146, 223, 188, 30, 146, 223, 179, 30, 146, 223, 187, 30, 146, - 223, 184, 30, 146, 223, 182, 30, 146, 223, 186, 30, 146, 201, 163, 30, - 146, 223, 191, 30, 146, 223, 192, 30, 146, 223, 180, 30, 146, 223, 185, - 30, 146, 192, 57, 30, 146, 242, 231, 30, 146, 243, 25, 30, 146, 243, 23, - 30, 146, 246, 223, 30, 146, 246, 221, 30, 146, 243, 41, 30, 146, 243, 42, - 30, 146, 243, 26, 30, 146, 246, 224, 30, 146, 209, 198, 30, 146, 222, 44, - 30, 146, 201, 164, 30, 146, 192, 63, 30, 146, 221, 80, 30, 146, 213, 182, - 30, 146, 213, 188, 30, 146, 213, 187, 30, 146, 198, 157, 30, 146, 232, - 218, 30, 222, 147, 232, 218, 30, 222, 147, 65, 30, 222, 147, 251, 229, - 30, 222, 147, 169, 30, 222, 147, 192, 129, 30, 222, 147, 234, 23, 30, - 222, 147, 73, 30, 222, 147, 192, 67, 30, 222, 147, 192, 80, 30, 222, 147, - 74, 30, 222, 147, 193, 187, 30, 222, 147, 193, 173, 30, 222, 147, 211, - 139, 30, 222, 147, 192, 12, 30, 222, 147, 69, 30, 222, 147, 193, 105, 30, - 222, 147, 193, 123, 30, 222, 147, 193, 84, 30, 222, 147, 191, 225, 30, - 222, 147, 233, 201, 30, 222, 147, 192, 33, 30, 222, 147, 70, 30, 222, - 147, 255, 150, 30, 222, 147, 255, 149, 30, 222, 147, 192, 143, 30, 222, - 147, 192, 141, 30, 222, 147, 234, 21, 30, 222, 147, 234, 20, 30, 222, - 147, 234, 22, 30, 222, 147, 192, 66, 30, 222, 147, 192, 65, 30, 222, 147, - 211, 253, 30, 222, 147, 211, 254, 30, 222, 147, 211, 247, 30, 222, 147, - 211, 252, 30, 222, 147, 211, 250, 30, 222, 147, 192, 0, 30, 222, 147, - 191, 255, 30, 222, 147, 191, 254, 30, 222, 147, 192, 1, 30, 222, 147, - 192, 2, 30, 222, 147, 196, 222, 30, 222, 147, 196, 221, 30, 222, 147, - 196, 219, 30, 222, 147, 196, 215, 30, 222, 147, 196, 216, 30, 222, 147, - 191, 220, 30, 222, 147, 191, 217, 30, 222, 147, 191, 218, 30, 222, 147, - 191, 212, 30, 222, 147, 191, 213, 30, 222, 147, 191, 214, 30, 222, 147, - 191, 216, 30, 222, 147, 233, 195, 30, 222, 147, 233, 197, 30, 222, 147, - 192, 32, 30, 222, 147, 228, 39, 30, 222, 147, 228, 31, 30, 222, 147, 228, - 34, 30, 222, 147, 228, 32, 30, 222, 147, 228, 36, 30, 222, 147, 228, 38, - 30, 222, 147, 250, 231, 30, 222, 147, 250, 228, 30, 222, 147, 250, 226, - 30, 222, 147, 250, 227, 30, 222, 147, 201, 167, 30, 222, 147, 255, 151, - 30, 222, 147, 192, 142, 30, 222, 147, 192, 64, 30, 222, 147, 211, 249, - 30, 222, 147, 211, 248, 30, 125, 221, 89, 30, 125, 201, 162, 30, 125, - 221, 82, 30, 125, 213, 190, 30, 125, 213, 188, 30, 125, 213, 187, 30, - 125, 198, 163, 30, 125, 206, 234, 30, 125, 206, 229, 30, 125, 206, 226, - 30, 125, 206, 219, 30, 125, 206, 214, 30, 125, 206, 209, 30, 125, 206, - 220, 30, 125, 206, 232, 30, 125, 216, 59, 30, 125, 209, 160, 30, 125, - 209, 149, 30, 125, 202, 155, 30, 125, 201, 156, 30, 125, 223, 193, 30, - 125, 242, 232, 30, 125, 243, 43, 30, 125, 221, 164, 30, 125, 199, 2, 30, - 125, 209, 200, 30, 125, 229, 110, 30, 125, 221, 83, 30, 125, 221, 81, 30, - 125, 213, 186, 30, 125, 213, 180, 30, 125, 213, 182, 30, 125, 213, 185, - 30, 125, 213, 181, 30, 125, 198, 160, 30, 125, 198, 157, 30, 125, 206, - 227, 30, 125, 206, 222, 30, 125, 206, 208, 30, 125, 206, 207, 30, 125, - 201, 158, 30, 125, 206, 224, 30, 125, 206, 223, 30, 125, 206, 216, 30, - 125, 206, 218, 30, 125, 206, 231, 30, 125, 206, 211, 30, 125, 206, 221, - 30, 125, 206, 230, 30, 125, 206, 206, 30, 125, 216, 55, 30, 125, 216, 50, - 30, 125, 216, 52, 30, 125, 216, 49, 30, 125, 216, 47, 30, 125, 216, 53, - 30, 125, 216, 58, 30, 125, 216, 56, 30, 125, 222, 45, 30, 125, 209, 151, - 30, 125, 209, 152, 30, 125, 209, 157, 30, 125, 222, 43, 30, 125, 202, - 148, 30, 125, 202, 138, 30, 125, 202, 141, 30, 125, 202, 143, 30, 125, - 210, 139, 30, 125, 223, 188, 30, 125, 223, 181, 30, 125, 201, 163, 30, - 125, 223, 189, 30, 125, 192, 57, 30, 125, 192, 51, 30, 125, 192, 52, 30, - 125, 209, 198, 30, 125, 222, 44, 30, 125, 229, 108, 30, 125, 229, 106, - 30, 125, 229, 109, 30, 125, 229, 107, 30, 125, 192, 63, 30, 125, 221, 85, - 30, 125, 221, 84, 30, 125, 221, 88, 30, 125, 221, 86, 30, 125, 221, 87, - 30, 125, 201, 160, 36, 5, 144, 36, 5, 228, 128, 36, 5, 229, 126, 36, 5, - 230, 58, 36, 5, 229, 183, 36, 5, 229, 213, 36, 5, 228, 247, 36, 5, 228, - 238, 36, 5, 171, 36, 5, 218, 203, 36, 5, 219, 122, 36, 5, 220, 101, 36, - 5, 219, 204, 36, 5, 219, 214, 36, 5, 219, 19, 36, 5, 218, 170, 36, 5, - 229, 145, 36, 5, 229, 139, 36, 5, 229, 141, 36, 5, 229, 144, 36, 5, 229, - 142, 36, 5, 229, 143, 36, 5, 229, 140, 36, 5, 229, 138, 36, 5, 172, 36, - 5, 215, 139, 36, 5, 216, 81, 36, 5, 217, 130, 36, 5, 216, 192, 36, 5, - 216, 213, 36, 5, 215, 251, 36, 5, 215, 66, 36, 5, 200, 50, 36, 5, 200, - 44, 36, 5, 200, 46, 36, 5, 200, 49, 36, 5, 200, 47, 36, 5, 200, 48, 36, - 5, 200, 45, 36, 5, 200, 43, 36, 5, 166, 36, 5, 206, 63, 36, 5, 206, 252, - 36, 5, 207, 173, 36, 5, 207, 79, 36, 5, 207, 108, 36, 5, 206, 157, 36, 5, - 206, 21, 36, 5, 189, 36, 5, 200, 255, 36, 5, 202, 217, 36, 5, 205, 192, - 36, 5, 205, 45, 36, 5, 205, 63, 36, 5, 202, 41, 36, 5, 200, 146, 36, 5, - 203, 160, 36, 5, 203, 0, 36, 5, 203, 76, 36, 5, 203, 155, 36, 5, 203, - 106, 36, 5, 203, 108, 36, 5, 203, 51, 36, 5, 202, 235, 36, 5, 208, 89, - 36, 5, 208, 27, 36, 5, 208, 51, 36, 5, 208, 88, 36, 5, 208, 68, 36, 5, - 208, 69, 36, 5, 208, 39, 36, 5, 208, 38, 36, 5, 207, 235, 36, 5, 207, - 231, 36, 5, 207, 234, 36, 5, 207, 232, 36, 5, 207, 233, 36, 5, 208, 65, - 36, 5, 208, 57, 36, 5, 208, 60, 36, 5, 208, 64, 36, 5, 208, 61, 36, 5, - 208, 62, 36, 5, 208, 59, 36, 5, 208, 56, 36, 5, 208, 52, 36, 5, 208, 55, - 36, 5, 208, 53, 36, 5, 208, 54, 36, 5, 249, 103, 36, 5, 247, 218, 36, 5, - 248, 140, 36, 5, 249, 101, 36, 5, 248, 207, 36, 5, 248, 223, 36, 5, 248, - 63, 36, 5, 247, 162, 36, 5, 195, 185, 36, 5, 193, 246, 36, 5, 195, 66, - 36, 5, 195, 184, 36, 5, 195, 145, 36, 5, 195, 150, 36, 5, 195, 21, 36, 5, - 193, 235, 36, 5, 199, 247, 36, 5, 197, 90, 36, 5, 198, 188, 36, 5, 199, - 240, 36, 5, 199, 116, 36, 5, 199, 140, 36, 5, 159, 36, 5, 197, 39, 36, 5, - 247, 112, 36, 5, 238, 148, 36, 5, 242, 237, 36, 5, 247, 111, 36, 5, 246, - 242, 36, 5, 246, 250, 36, 5, 242, 51, 36, 5, 238, 104, 36, 5, 192, 220, - 36, 5, 192, 188, 36, 5, 192, 207, 36, 5, 192, 219, 36, 5, 192, 213, 36, - 5, 192, 214, 36, 5, 192, 196, 36, 5, 192, 195, 36, 5, 192, 181, 36, 5, - 192, 177, 36, 5, 192, 180, 36, 5, 192, 178, 36, 5, 192, 179, 36, 5, 180, - 36, 5, 212, 165, 36, 5, 213, 205, 36, 5, 214, 236, 36, 5, 214, 96, 36, 5, - 214, 107, 36, 5, 213, 30, 36, 5, 212, 97, 36, 5, 212, 88, 36, 5, 212, 45, - 36, 5, 212, 68, 36, 5, 212, 87, 36, 5, 212, 76, 36, 5, 212, 77, 36, 5, - 212, 52, 36, 5, 212, 35, 36, 5, 230, 231, 65, 36, 5, 230, 231, 69, 36, 5, - 230, 231, 70, 36, 5, 230, 231, 252, 154, 36, 5, 230, 231, 234, 145, 36, - 5, 230, 231, 73, 36, 5, 230, 231, 74, 36, 5, 230, 231, 193, 187, 36, 5, - 157, 36, 5, 220, 208, 36, 5, 221, 142, 36, 5, 222, 100, 36, 5, 221, 244, - 36, 5, 221, 253, 36, 5, 221, 43, 36, 5, 221, 38, 36, 5, 220, 155, 36, 5, - 220, 148, 36, 5, 220, 154, 36, 5, 220, 149, 36, 5, 220, 150, 36, 5, 220, - 141, 36, 5, 220, 135, 36, 5, 220, 137, 36, 5, 220, 140, 36, 5, 220, 138, - 36, 5, 220, 139, 36, 5, 220, 136, 36, 5, 220, 134, 36, 5, 220, 130, 36, - 5, 220, 133, 36, 5, 220, 131, 36, 5, 220, 132, 36, 5, 193, 187, 36, 5, - 193, 0, 36, 5, 193, 84, 36, 5, 193, 178, 36, 5, 193, 112, 36, 5, 193, - 123, 36, 5, 193, 48, 36, 5, 193, 40, 36, 5, 209, 210, 65, 36, 5, 209, - 210, 69, 36, 5, 209, 210, 70, 36, 5, 209, 210, 252, 154, 36, 5, 209, 210, - 234, 145, 36, 5, 209, 210, 73, 36, 5, 209, 210, 74, 36, 5, 191, 123, 36, - 5, 190, 251, 36, 5, 191, 30, 36, 5, 191, 121, 36, 5, 191, 84, 36, 5, 191, - 87, 36, 5, 191, 7, 36, 5, 190, 238, 36, 5, 191, 71, 36, 5, 191, 48, 36, - 5, 191, 57, 36, 5, 191, 70, 36, 5, 191, 61, 36, 5, 191, 62, 36, 5, 191, - 54, 36, 5, 191, 39, 36, 5, 169, 36, 5, 191, 225, 36, 5, 192, 33, 36, 5, - 192, 140, 36, 5, 192, 77, 36, 5, 192, 80, 36, 5, 192, 12, 36, 5, 191, - 252, 36, 5, 237, 241, 36, 5, 235, 45, 36, 5, 236, 255, 36, 5, 237, 240, - 36, 5, 237, 86, 36, 5, 237, 101, 36, 5, 236, 129, 36, 5, 235, 2, 36, 5, - 237, 146, 36, 5, 237, 111, 36, 5, 237, 123, 36, 5, 237, 145, 36, 5, 237, - 133, 36, 5, 237, 134, 36, 5, 237, 116, 36, 5, 237, 102, 36, 5, 223, 4, - 36, 5, 222, 155, 36, 5, 222, 217, 36, 5, 223, 3, 36, 5, 222, 236, 36, 5, - 222, 238, 36, 5, 222, 174, 36, 5, 222, 133, 36, 5, 231, 203, 36, 5, 230, - 146, 36, 5, 231, 16, 36, 5, 231, 200, 36, 5, 231, 120, 36, 5, 231, 128, - 36, 5, 230, 223, 36, 5, 230, 222, 36, 5, 230, 102, 36, 5, 230, 98, 36, 5, - 230, 101, 36, 5, 230, 99, 36, 5, 230, 100, 36, 5, 231, 90, 36, 5, 231, - 70, 36, 5, 231, 80, 36, 5, 231, 89, 36, 5, 231, 84, 36, 5, 231, 85, 36, - 5, 231, 74, 36, 5, 231, 59, 36, 5, 199, 44, 36, 5, 198, 208, 36, 5, 199, - 6, 36, 5, 199, 43, 36, 5, 199, 26, 36, 5, 199, 28, 36, 5, 198, 236, 36, - 5, 198, 199, 36, 5, 246, 209, 36, 5, 243, 0, 36, 5, 243, 47, 36, 5, 246, - 208, 36, 5, 243, 75, 36, 5, 243, 79, 36, 5, 243, 20, 36, 5, 242, 245, 36, - 5, 209, 219, 36, 5, 209, 182, 36, 5, 209, 202, 36, 5, 209, 218, 36, 5, - 209, 204, 36, 5, 209, 205, 36, 5, 209, 190, 36, 5, 209, 178, 36, 5, 197, - 164, 36, 5, 197, 136, 36, 5, 197, 142, 36, 5, 197, 163, 36, 5, 197, 156, - 36, 5, 197, 157, 36, 5, 197, 140, 36, 5, 197, 134, 36, 5, 196, 236, 36, - 5, 196, 228, 36, 5, 196, 232, 36, 5, 196, 235, 36, 5, 196, 233, 36, 5, - 196, 234, 36, 5, 196, 230, 36, 5, 196, 229, 36, 5, 233, 68, 36, 5, 232, - 48, 36, 5, 232, 238, 36, 5, 233, 67, 36, 5, 233, 11, 36, 5, 233, 18, 36, - 5, 232, 135, 36, 5, 232, 25, 36, 5, 168, 36, 5, 208, 158, 36, 5, 209, - 176, 36, 5, 210, 210, 36, 5, 210, 40, 36, 5, 210, 53, 36, 5, 209, 65, 36, - 5, 208, 115, 36, 5, 206, 11, 36, 5, 215, 54, 36, 5, 232, 19, 36, 33, 231, - 116, 24, 18, 219, 174, 77, 36, 33, 18, 219, 174, 77, 36, 33, 231, 116, - 77, 36, 205, 49, 77, 36, 193, 22, 36, 232, 42, 201, 58, 36, 242, 26, 36, - 204, 20, 36, 242, 35, 36, 208, 221, 242, 35, 36, 208, 8, 77, 36, 210, - 118, 204, 5, 36, 17, 108, 36, 17, 109, 36, 17, 139, 36, 17, 137, 36, 17, - 153, 36, 17, 173, 36, 17, 181, 36, 17, 176, 36, 17, 184, 36, 31, 199, 90, - 36, 31, 197, 28, 36, 31, 198, 244, 36, 31, 232, 97, 36, 31, 232, 230, 36, - 31, 202, 115, 36, 31, 203, 236, 36, 31, 234, 110, 36, 31, 213, 156, 36, - 31, 228, 109, 36, 31, 199, 91, 188, 36, 5, 205, 54, 215, 66, 36, 5, 215, - 62, 36, 5, 215, 63, 36, 5, 215, 64, 36, 5, 205, 54, 247, 162, 36, 5, 247, - 159, 36, 5, 247, 160, 36, 5, 247, 161, 36, 5, 205, 54, 232, 25, 36, 5, - 232, 21, 36, 5, 232, 22, 36, 5, 232, 23, 36, 5, 205, 54, 208, 115, 36, 5, - 208, 111, 36, 5, 208, 112, 36, 5, 208, 113, 36, 198, 75, 87, 192, 15, 36, - 198, 75, 87, 237, 44, 36, 198, 75, 87, 206, 189, 36, 198, 75, 87, 203, - 35, 206, 189, 36, 198, 75, 87, 236, 229, 36, 198, 75, 87, 221, 225, 36, - 198, 75, 87, 243, 28, 36, 198, 75, 87, 229, 115, 36, 198, 75, 87, 237, - 43, 36, 198, 75, 87, 220, 171, 101, 1, 65, 101, 1, 73, 101, 1, 70, 101, - 1, 74, 101, 1, 69, 101, 1, 196, 8, 101, 1, 231, 203, 101, 1, 157, 101, 1, - 231, 128, 101, 1, 231, 16, 101, 1, 230, 223, 101, 1, 230, 146, 101, 1, - 230, 105, 101, 1, 144, 101, 1, 229, 213, 101, 1, 229, 126, 101, 1, 228, - 247, 101, 1, 228, 128, 101, 1, 228, 95, 101, 1, 171, 101, 1, 219, 214, - 101, 1, 219, 122, 101, 1, 219, 19, 101, 1, 218, 203, 101, 1, 218, 171, - 101, 1, 172, 101, 1, 216, 213, 101, 1, 216, 81, 101, 1, 215, 251, 101, 1, - 215, 139, 101, 1, 180, 101, 1, 229, 15, 101, 1, 214, 223, 101, 1, 214, - 107, 101, 1, 213, 205, 101, 1, 213, 30, 101, 1, 212, 165, 101, 1, 212, - 99, 101, 1, 208, 26, 101, 1, 208, 11, 101, 1, 208, 4, 101, 1, 207, 250, - 101, 1, 207, 239, 101, 1, 207, 237, 101, 1, 189, 101, 1, 206, 3, 101, 1, - 205, 63, 101, 1, 202, 217, 101, 1, 202, 41, 101, 1, 200, 255, 101, 1, - 200, 154, 101, 1, 237, 241, 101, 1, 199, 247, 101, 1, 237, 101, 101, 1, - 199, 140, 101, 1, 236, 255, 101, 1, 198, 188, 101, 1, 236, 129, 101, 1, - 235, 45, 101, 1, 235, 13, 101, 1, 236, 141, 101, 1, 198, 110, 101, 1, - 198, 109, 101, 1, 198, 98, 101, 1, 198, 97, 101, 1, 198, 96, 101, 1, 198, - 95, 101, 1, 197, 164, 101, 1, 197, 157, 101, 1, 197, 142, 101, 1, 197, - 140, 101, 1, 197, 136, 101, 1, 197, 135, 101, 1, 193, 187, 101, 1, 193, - 123, 101, 1, 193, 84, 101, 1, 193, 48, 101, 1, 193, 0, 101, 1, 192, 243, - 101, 1, 169, 101, 1, 192, 80, 101, 1, 192, 33, 101, 1, 192, 12, 101, 1, - 191, 225, 101, 1, 191, 184, 101, 1, 215, 73, 101, 2, 1, 192, 80, 101, 2, - 1, 192, 33, 101, 2, 1, 192, 12, 101, 2, 1, 191, 225, 101, 2, 1, 191, 184, - 101, 2, 1, 215, 73, 21, 22, 228, 58, 21, 22, 73, 21, 22, 252, 118, 21, - 22, 70, 21, 22, 223, 170, 21, 22, 74, 21, 22, 211, 76, 21, 22, 192, 158, - 211, 76, 21, 22, 98, 234, 145, 21, 22, 98, 70, 21, 22, 65, 21, 22, 252, - 154, 21, 22, 193, 123, 21, 22, 193, 101, 193, 123, 21, 22, 193, 84, 21, - 22, 193, 101, 193, 84, 21, 22, 193, 68, 21, 22, 193, 101, 193, 68, 21, - 22, 193, 48, 21, 22, 193, 101, 193, 48, 21, 22, 193, 29, 21, 22, 193, - 101, 193, 29, 21, 22, 214, 195, 193, 29, 21, 22, 193, 187, 21, 22, 193, - 101, 193, 187, 21, 22, 193, 178, 21, 22, 193, 101, 193, 178, 21, 22, 214, - 195, 193, 178, 21, 22, 251, 184, 21, 22, 192, 158, 193, 221, 21, 22, 230, - 231, 201, 58, 21, 22, 52, 251, 250, 21, 22, 52, 230, 176, 21, 22, 52, - 248, 29, 134, 206, 183, 21, 22, 52, 198, 49, 134, 206, 183, 21, 22, 52, - 50, 134, 206, 183, 21, 22, 52, 206, 183, 21, 22, 52, 54, 251, 250, 21, - 22, 52, 54, 203, 35, 81, 201, 10, 21, 22, 52, 82, 236, 96, 21, 22, 52, - 203, 35, 228, 209, 105, 21, 22, 52, 209, 73, 21, 22, 52, 143, 199, 223, - 21, 22, 234, 61, 21, 22, 223, 134, 21, 22, 211, 93, 21, 22, 251, 81, 21, - 22, 210, 53, 21, 22, 210, 208, 21, 22, 209, 176, 21, 22, 209, 136, 21, - 22, 209, 65, 21, 22, 209, 30, 21, 22, 192, 158, 209, 30, 21, 22, 98, 229, - 183, 21, 22, 98, 229, 126, 21, 22, 168, 21, 22, 210, 210, 21, 22, 208, - 113, 21, 22, 193, 101, 208, 113, 21, 22, 208, 111, 21, 22, 193, 101, 208, - 111, 21, 22, 208, 110, 21, 22, 193, 101, 208, 110, 21, 22, 208, 108, 21, - 22, 193, 101, 208, 108, 21, 22, 208, 107, 21, 22, 193, 101, 208, 107, 21, - 22, 208, 115, 21, 22, 193, 101, 208, 115, 21, 22, 208, 114, 21, 22, 193, - 101, 208, 114, 21, 22, 192, 158, 208, 114, 21, 22, 210, 226, 21, 22, 193, - 101, 210, 226, 21, 22, 98, 230, 83, 21, 22, 199, 140, 21, 22, 199, 237, - 21, 22, 198, 188, 21, 22, 198, 165, 21, 22, 159, 21, 22, 198, 54, 21, 22, - 192, 158, 198, 54, 21, 22, 98, 237, 86, 21, 22, 98, 236, 255, 21, 22, - 199, 247, 21, 22, 199, 240, 21, 22, 197, 37, 21, 22, 193, 101, 197, 37, - 21, 22, 197, 15, 21, 22, 193, 101, 197, 15, 21, 22, 197, 14, 21, 22, 193, - 101, 197, 14, 21, 22, 109, 21, 22, 193, 101, 109, 21, 22, 197, 5, 21, 22, - 193, 101, 197, 5, 21, 22, 197, 39, 21, 22, 193, 101, 197, 39, 21, 22, - 197, 38, 21, 22, 193, 101, 197, 38, 21, 22, 214, 195, 197, 38, 21, 22, - 200, 39, 21, 22, 197, 123, 21, 22, 197, 107, 21, 22, 197, 105, 21, 22, - 197, 128, 21, 22, 221, 253, 21, 22, 222, 94, 21, 22, 221, 142, 21, 22, - 221, 121, 21, 22, 221, 43, 21, 22, 221, 17, 21, 22, 192, 158, 221, 17, - 21, 22, 157, 21, 22, 222, 100, 21, 22, 220, 150, 21, 22, 193, 101, 220, - 150, 21, 22, 220, 148, 21, 22, 193, 101, 220, 148, 21, 22, 220, 147, 21, - 22, 193, 101, 220, 147, 21, 22, 220, 145, 21, 22, 193, 101, 220, 145, 21, - 22, 220, 144, 21, 22, 193, 101, 220, 144, 21, 22, 220, 155, 21, 22, 193, - 101, 220, 155, 21, 22, 220, 154, 21, 22, 193, 101, 220, 154, 21, 22, 214, - 195, 220, 154, 21, 22, 222, 125, 21, 22, 220, 156, 21, 22, 201, 252, 221, - 237, 21, 22, 201, 252, 221, 122, 21, 22, 201, 252, 221, 32, 21, 22, 201, - 252, 222, 77, 21, 22, 246, 250, 21, 22, 247, 110, 21, 22, 242, 237, 21, - 22, 242, 227, 21, 22, 242, 51, 21, 22, 238, 227, 21, 22, 192, 158, 238, - 227, 21, 22, 247, 112, 21, 22, 247, 111, 21, 22, 238, 102, 21, 22, 193, - 101, 238, 102, 21, 22, 238, 100, 21, 22, 193, 101, 238, 100, 21, 22, 238, - 99, 21, 22, 193, 101, 238, 99, 21, 22, 238, 98, 21, 22, 193, 101, 238, - 98, 21, 22, 238, 97, 21, 22, 193, 101, 238, 97, 21, 22, 238, 104, 21, 22, - 193, 101, 238, 104, 21, 22, 238, 103, 21, 22, 193, 101, 238, 103, 21, 22, - 214, 195, 238, 103, 21, 22, 247, 145, 21, 22, 205, 96, 199, 46, 21, 22, - 216, 213, 21, 22, 217, 129, 21, 22, 216, 81, 21, 22, 216, 43, 21, 22, - 215, 251, 21, 22, 215, 194, 21, 22, 192, 158, 215, 194, 21, 22, 172, 21, - 22, 217, 130, 21, 22, 215, 64, 21, 22, 193, 101, 215, 64, 21, 22, 215, - 62, 21, 22, 193, 101, 215, 62, 21, 22, 215, 61, 21, 22, 193, 101, 215, - 61, 21, 22, 215, 60, 21, 22, 193, 101, 215, 60, 21, 22, 215, 59, 21, 22, - 193, 101, 215, 59, 21, 22, 215, 66, 21, 22, 193, 101, 215, 66, 21, 22, - 215, 65, 21, 22, 193, 101, 215, 65, 21, 22, 214, 195, 215, 65, 21, 22, - 218, 147, 21, 22, 193, 101, 218, 147, 21, 22, 216, 85, 21, 22, 250, 130, - 218, 147, 21, 22, 205, 96, 218, 147, 21, 22, 214, 107, 21, 22, 214, 235, - 21, 22, 213, 205, 21, 22, 213, 172, 21, 22, 213, 30, 21, 22, 213, 13, 21, - 22, 192, 158, 213, 13, 21, 22, 180, 21, 22, 214, 236, 21, 22, 212, 95, - 21, 22, 193, 101, 212, 95, 21, 22, 212, 97, 21, 22, 193, 101, 212, 97, - 21, 22, 212, 96, 21, 22, 193, 101, 212, 96, 21, 22, 214, 195, 212, 96, - 21, 22, 215, 47, 21, 22, 98, 214, 56, 21, 22, 213, 211, 21, 22, 219, 214, - 21, 22, 220, 100, 21, 22, 219, 122, 21, 22, 219, 104, 21, 22, 219, 19, - 21, 22, 218, 240, 21, 22, 192, 158, 218, 240, 21, 22, 171, 21, 22, 220, - 101, 21, 22, 218, 168, 21, 22, 193, 101, 218, 168, 21, 22, 218, 167, 21, - 22, 193, 101, 218, 167, 21, 22, 218, 166, 21, 22, 193, 101, 218, 166, 21, - 22, 218, 165, 21, 22, 193, 101, 218, 165, 21, 22, 218, 164, 21, 22, 193, - 101, 218, 164, 21, 22, 218, 170, 21, 22, 193, 101, 218, 170, 21, 22, 218, - 169, 21, 22, 193, 101, 218, 169, 21, 22, 170, 21, 22, 193, 101, 170, 21, - 22, 216, 198, 170, 21, 22, 205, 63, 21, 22, 205, 190, 21, 22, 202, 217, - 21, 22, 202, 188, 21, 22, 202, 41, 21, 22, 202, 11, 21, 22, 192, 158, - 202, 11, 21, 22, 189, 21, 22, 205, 192, 21, 22, 200, 141, 21, 22, 193, - 101, 200, 141, 21, 22, 200, 135, 21, 22, 193, 101, 200, 135, 21, 22, 200, - 134, 21, 22, 193, 101, 200, 134, 21, 22, 200, 129, 21, 22, 193, 101, 200, - 129, 21, 22, 200, 128, 21, 22, 193, 101, 200, 128, 21, 22, 200, 146, 21, - 22, 193, 101, 200, 146, 21, 22, 200, 145, 21, 22, 193, 101, 200, 145, 21, - 22, 214, 195, 200, 145, 21, 22, 206, 3, 21, 22, 250, 130, 206, 3, 21, 22, - 200, 147, 21, 22, 248, 88, 206, 3, 21, 22, 215, 187, 202, 109, 21, 22, - 214, 195, 202, 96, 21, 22, 214, 195, 206, 1, 21, 22, 214, 195, 201, 187, - 21, 22, 214, 195, 201, 2, 21, 22, 214, 195, 202, 95, 21, 22, 214, 195, - 205, 66, 21, 22, 203, 108, 21, 22, 203, 76, 21, 22, 203, 71, 21, 22, 203, - 51, 21, 22, 203, 43, 21, 22, 203, 160, 21, 22, 203, 155, 21, 22, 202, - 232, 21, 22, 193, 101, 202, 232, 21, 22, 202, 231, 21, 22, 193, 101, 202, - 231, 21, 22, 202, 230, 21, 22, 193, 101, 202, 230, 21, 22, 202, 229, 21, - 22, 193, 101, 202, 229, 21, 22, 202, 228, 21, 22, 193, 101, 202, 228, 21, - 22, 202, 235, 21, 22, 193, 101, 202, 235, 21, 22, 202, 234, 21, 22, 193, - 101, 202, 234, 21, 22, 203, 162, 21, 22, 192, 80, 21, 22, 192, 138, 21, - 22, 192, 33, 21, 22, 192, 23, 21, 22, 192, 12, 21, 22, 191, 246, 21, 22, - 192, 158, 191, 246, 21, 22, 169, 21, 22, 192, 140, 21, 22, 191, 181, 21, - 22, 193, 101, 191, 181, 21, 22, 191, 180, 21, 22, 193, 101, 191, 180, 21, - 22, 191, 179, 21, 22, 193, 101, 191, 179, 21, 22, 191, 178, 21, 22, 193, - 101, 191, 178, 21, 22, 191, 177, 21, 22, 193, 101, 191, 177, 21, 22, 191, - 183, 21, 22, 193, 101, 191, 183, 21, 22, 191, 182, 21, 22, 193, 101, 191, - 182, 21, 22, 214, 195, 191, 182, 21, 22, 192, 159, 21, 22, 248, 138, 192, - 159, 21, 22, 193, 101, 192, 159, 21, 22, 205, 96, 192, 33, 21, 22, 207, - 108, 21, 22, 207, 216, 207, 108, 21, 22, 193, 101, 219, 214, 21, 22, 207, - 172, 21, 22, 206, 252, 21, 22, 206, 190, 21, 22, 206, 157, 21, 22, 206, - 129, 21, 22, 193, 101, 219, 19, 21, 22, 166, 21, 22, 207, 173, 21, 22, - 193, 101, 171, 21, 22, 206, 20, 21, 22, 193, 101, 206, 20, 21, 22, 148, - 21, 22, 193, 101, 148, 21, 22, 216, 198, 148, 21, 22, 233, 18, 21, 22, - 233, 65, 21, 22, 232, 238, 21, 22, 232, 223, 21, 22, 232, 135, 21, 22, - 232, 123, 21, 22, 233, 68, 21, 22, 233, 67, 21, 22, 232, 24, 21, 22, 193, - 101, 232, 24, 21, 22, 233, 134, 21, 22, 199, 28, 21, 22, 215, 45, 199, - 28, 21, 22, 199, 6, 21, 22, 215, 45, 199, 6, 21, 22, 199, 0, 21, 22, 215, - 45, 199, 0, 21, 22, 198, 236, 21, 22, 198, 230, 21, 22, 199, 44, 21, 22, - 199, 43, 21, 22, 198, 198, 21, 22, 193, 101, 198, 198, 21, 22, 199, 46, - 21, 22, 197, 114, 21, 22, 197, 112, 21, 22, 197, 111, 21, 22, 197, 116, - 21, 22, 197, 117, 21, 22, 196, 254, 21, 22, 196, 253, 21, 22, 196, 252, - 21, 22, 197, 0, 21, 22, 212, 116, 229, 213, 21, 22, 212, 116, 229, 126, - 21, 22, 212, 116, 229, 98, 21, 22, 212, 116, 228, 247, 21, 22, 212, 116, - 228, 220, 21, 22, 212, 116, 144, 21, 22, 212, 116, 230, 58, 21, 22, 212, - 116, 230, 83, 21, 22, 212, 115, 230, 83, 21, 22, 229, 81, 21, 22, 208, - 85, 21, 22, 208, 51, 21, 22, 208, 45, 21, 22, 208, 39, 21, 22, 208, 34, - 21, 22, 208, 89, 21, 22, 208, 88, 21, 22, 208, 97, 21, 22, 198, 106, 21, - 22, 198, 104, 21, 22, 198, 103, 21, 22, 198, 107, 21, 22, 193, 101, 207, - 108, 21, 22, 193, 101, 206, 252, 21, 22, 193, 101, 206, 157, 21, 22, 193, - 101, 166, 21, 22, 214, 52, 21, 22, 214, 2, 21, 22, 213, 254, 21, 22, 213, - 235, 21, 22, 213, 230, 21, 22, 214, 54, 21, 22, 214, 53, 21, 22, 214, 56, - 21, 22, 213, 59, 21, 22, 205, 96, 203, 108, 21, 22, 205, 96, 203, 76, 21, - 22, 205, 96, 203, 51, 21, 22, 205, 96, 203, 160, 21, 22, 193, 27, 199, - 28, 21, 22, 193, 27, 199, 6, 21, 22, 193, 27, 198, 236, 21, 22, 193, 27, - 199, 44, 21, 22, 193, 27, 199, 46, 21, 22, 219, 129, 21, 22, 219, 128, - 21, 22, 219, 127, 21, 22, 219, 126, 21, 22, 219, 135, 21, 22, 219, 134, - 21, 22, 219, 136, 21, 22, 199, 45, 199, 28, 21, 22, 199, 45, 199, 6, 21, - 22, 199, 45, 199, 0, 21, 22, 199, 45, 198, 236, 21, 22, 199, 45, 198, - 230, 21, 22, 199, 45, 199, 44, 21, 22, 199, 45, 199, 43, 21, 22, 199, 45, - 199, 46, 21, 22, 251, 168, 250, 70, 21, 22, 248, 88, 73, 21, 22, 248, 88, - 70, 21, 22, 248, 88, 74, 21, 22, 248, 88, 65, 21, 22, 248, 88, 193, 123, - 21, 22, 248, 88, 193, 84, 21, 22, 248, 88, 193, 48, 21, 22, 248, 88, 193, - 187, 21, 22, 248, 88, 214, 107, 21, 22, 248, 88, 213, 205, 21, 22, 248, - 88, 213, 30, 21, 22, 248, 88, 180, 21, 22, 248, 88, 221, 253, 21, 22, - 248, 88, 221, 142, 21, 22, 248, 88, 221, 43, 21, 22, 248, 88, 157, 21, - 22, 205, 96, 229, 213, 21, 22, 205, 96, 229, 126, 21, 22, 205, 96, 228, - 247, 21, 22, 205, 96, 144, 21, 22, 98, 231, 22, 21, 22, 98, 231, 26, 21, - 22, 98, 231, 40, 21, 22, 98, 231, 39, 21, 22, 98, 231, 28, 21, 22, 98, - 231, 54, 21, 22, 98, 206, 63, 21, 22, 98, 206, 157, 21, 22, 98, 207, 108, - 21, 22, 98, 207, 79, 21, 22, 98, 206, 252, 21, 22, 98, 166, 21, 22, 98, - 193, 0, 21, 22, 98, 193, 48, 21, 22, 98, 193, 123, 21, 22, 98, 193, 112, - 21, 22, 98, 193, 84, 21, 22, 98, 193, 187, 21, 22, 98, 228, 87, 21, 22, - 98, 228, 88, 21, 22, 98, 228, 91, 21, 22, 98, 228, 90, 21, 22, 98, 228, - 89, 21, 22, 98, 228, 94, 21, 22, 98, 198, 208, 21, 22, 98, 198, 236, 21, - 22, 98, 199, 28, 21, 22, 98, 199, 26, 21, 22, 98, 199, 6, 21, 22, 98, - 199, 44, 21, 22, 98, 197, 95, 21, 22, 98, 197, 105, 21, 22, 98, 197, 123, - 21, 22, 98, 197, 122, 21, 22, 98, 197, 107, 21, 22, 98, 197, 128, 21, 22, - 98, 208, 158, 21, 22, 98, 209, 65, 21, 22, 98, 210, 53, 21, 22, 98, 210, - 40, 21, 22, 98, 209, 176, 21, 22, 98, 168, 21, 22, 98, 210, 226, 21, 22, - 98, 230, 146, 21, 22, 98, 230, 223, 21, 22, 98, 231, 128, 21, 22, 98, - 231, 120, 21, 22, 98, 231, 16, 21, 22, 98, 231, 203, 21, 22, 98, 221, - 151, 21, 22, 98, 221, 159, 21, 22, 98, 221, 173, 21, 22, 98, 221, 172, - 21, 22, 98, 221, 166, 21, 22, 98, 221, 190, 21, 22, 98, 221, 72, 21, 22, - 98, 221, 73, 21, 22, 98, 221, 76, 21, 22, 98, 221, 75, 21, 22, 98, 221, - 74, 21, 22, 98, 221, 77, 21, 22, 98, 221, 78, 21, 22, 98, 212, 165, 21, - 22, 98, 213, 30, 21, 22, 98, 214, 107, 21, 22, 98, 214, 96, 21, 22, 98, - 213, 205, 21, 22, 98, 180, 21, 22, 98, 215, 139, 21, 22, 98, 215, 251, - 21, 22, 98, 216, 213, 21, 22, 98, 216, 192, 21, 22, 98, 216, 81, 21, 22, - 98, 172, 21, 22, 98, 191, 225, 21, 22, 98, 192, 12, 21, 22, 98, 192, 80, - 21, 22, 98, 192, 77, 21, 22, 98, 192, 33, 21, 22, 98, 169, 21, 22, 98, - 222, 155, 21, 22, 205, 96, 222, 155, 21, 22, 98, 222, 174, 21, 22, 98, - 222, 238, 21, 22, 98, 222, 236, 21, 22, 98, 222, 217, 21, 22, 205, 96, - 222, 217, 21, 22, 98, 223, 4, 21, 22, 98, 222, 188, 21, 22, 98, 222, 192, - 21, 22, 98, 222, 202, 21, 22, 98, 222, 201, 21, 22, 98, 222, 200, 21, 22, - 98, 222, 203, 21, 22, 98, 218, 203, 21, 22, 98, 219, 19, 21, 22, 98, 219, - 214, 21, 22, 98, 219, 204, 21, 22, 98, 219, 122, 21, 22, 98, 171, 21, 22, - 98, 236, 134, 21, 22, 98, 236, 135, 21, 22, 98, 236, 140, 21, 22, 98, - 236, 139, 21, 22, 98, 236, 136, 21, 22, 98, 236, 141, 21, 22, 98, 219, - 125, 21, 22, 98, 219, 127, 21, 22, 98, 219, 131, 21, 22, 98, 219, 130, - 21, 22, 98, 219, 129, 21, 22, 98, 219, 135, 21, 22, 98, 198, 101, 21, 22, - 98, 198, 103, 21, 22, 98, 198, 106, 21, 22, 98, 198, 105, 21, 22, 98, - 198, 104, 21, 22, 98, 198, 107, 21, 22, 98, 198, 96, 21, 22, 98, 198, 97, - 21, 22, 98, 198, 109, 21, 22, 98, 198, 108, 21, 22, 98, 198, 98, 21, 22, - 98, 198, 110, 21, 22, 98, 190, 251, 21, 22, 98, 191, 7, 21, 22, 98, 191, - 87, 21, 22, 98, 191, 84, 21, 22, 98, 191, 30, 21, 22, 98, 191, 123, 21, - 22, 98, 191, 166, 21, 22, 98, 89, 191, 166, 21, 22, 98, 234, 234, 21, 22, - 98, 234, 235, 21, 22, 98, 234, 244, 21, 22, 98, 234, 243, 21, 22, 98, - 234, 238, 21, 22, 98, 234, 247, 21, 22, 98, 200, 255, 21, 22, 98, 202, - 41, 21, 22, 98, 205, 63, 21, 22, 98, 205, 45, 21, 22, 98, 202, 217, 21, - 22, 98, 189, 21, 22, 98, 203, 0, 21, 22, 98, 203, 51, 21, 22, 98, 203, - 108, 21, 22, 98, 203, 106, 21, 22, 98, 203, 76, 21, 22, 98, 203, 160, 21, - 22, 98, 203, 162, 21, 22, 98, 197, 136, 21, 22, 98, 197, 140, 21, 22, 98, - 197, 157, 21, 22, 98, 197, 156, 21, 22, 98, 197, 142, 21, 22, 98, 197, - 164, 21, 22, 98, 243, 0, 21, 22, 98, 243, 20, 21, 22, 98, 243, 79, 21, - 22, 98, 243, 75, 21, 22, 98, 243, 47, 21, 22, 98, 246, 209, 21, 22, 98, - 197, 98, 21, 22, 98, 197, 99, 21, 22, 98, 197, 102, 21, 22, 98, 197, 101, - 21, 22, 98, 197, 100, 21, 22, 98, 197, 103, 21, 22, 243, 48, 57, 21, 22, - 232, 42, 201, 58, 21, 22, 208, 81, 21, 22, 214, 50, 21, 22, 213, 56, 21, - 22, 213, 55, 21, 22, 213, 54, 21, 22, 213, 53, 21, 22, 213, 58, 21, 22, - 213, 57, 21, 22, 193, 27, 198, 196, 21, 22, 193, 27, 198, 195, 21, 22, - 193, 27, 198, 194, 21, 22, 193, 27, 198, 193, 21, 22, 193, 27, 198, 192, - 21, 22, 193, 27, 198, 199, 21, 22, 193, 27, 198, 198, 21, 22, 193, 27, - 52, 199, 46, 21, 22, 248, 88, 193, 221, 211, 128, 201, 243, 77, 211, 128, - 1, 248, 189, 211, 128, 1, 218, 189, 211, 128, 1, 233, 15, 211, 128, 1, - 205, 174, 211, 128, 1, 213, 153, 211, 128, 1, 196, 161, 211, 128, 1, 237, - 214, 211, 128, 1, 198, 134, 211, 128, 1, 242, 38, 211, 128, 1, 246, 237, - 211, 128, 1, 215, 122, 211, 128, 1, 230, 200, 211, 128, 1, 214, 40, 211, - 128, 1, 201, 49, 211, 128, 1, 206, 50, 211, 128, 1, 251, 180, 211, 128, - 1, 211, 80, 211, 128, 1, 196, 58, 211, 128, 1, 234, 171, 211, 128, 1, - 223, 59, 211, 128, 1, 234, 172, 211, 128, 1, 211, 45, 211, 128, 1, 196, - 132, 211, 128, 1, 223, 176, 211, 128, 1, 234, 169, 211, 128, 1, 210, 29, - 211, 128, 233, 14, 77, 211, 128, 207, 13, 233, 14, 77, 206, 39, 1, 233, - 4, 232, 251, 233, 19, 233, 134, 206, 39, 1, 196, 8, 206, 39, 1, 196, 43, - 196, 59, 69, 206, 39, 1, 191, 228, 206, 39, 1, 192, 159, 206, 39, 1, 193, - 221, 206, 39, 1, 198, 201, 198, 200, 198, 228, 206, 39, 1, 233, 206, 206, - 39, 1, 251, 39, 65, 206, 39, 1, 211, 27, 74, 206, 39, 1, 252, 12, 65, - 206, 39, 1, 251, 213, 206, 39, 1, 218, 247, 74, 206, 39, 1, 203, 28, 74, - 206, 39, 1, 74, 206, 39, 1, 211, 139, 206, 39, 1, 211, 93, 206, 39, 1, - 207, 149, 207, 164, 207, 64, 148, 206, 39, 1, 222, 13, 206, 39, 1, 246, - 233, 206, 39, 1, 222, 14, 222, 125, 206, 39, 1, 232, 14, 206, 39, 1, 234, - 46, 206, 39, 1, 231, 123, 230, 89, 232, 14, 206, 39, 1, 231, 163, 206, - 39, 1, 192, 248, 192, 239, 193, 221, 206, 39, 1, 230, 49, 230, 83, 206, - 39, 1, 230, 53, 230, 83, 206, 39, 1, 218, 249, 230, 83, 206, 39, 1, 203, - 31, 230, 83, 206, 39, 1, 214, 189, 212, 78, 214, 190, 215, 47, 206, 39, - 1, 203, 29, 215, 47, 206, 39, 1, 235, 91, 206, 39, 1, 223, 37, 223, 41, - 223, 27, 70, 206, 39, 1, 73, 206, 39, 1, 222, 228, 223, 7, 206, 39, 1, - 231, 104, 206, 39, 1, 218, 250, 251, 229, 206, 39, 1, 203, 33, 65, 206, - 39, 1, 223, 19, 234, 19, 206, 39, 1, 209, 238, 210, 9, 210, 226, 206, 39, - 1, 251, 134, 234, 17, 206, 39, 1, 201, 249, 206, 3, 206, 39, 1, 202, 193, - 218, 246, 206, 3, 206, 39, 1, 203, 27, 206, 3, 206, 39, 1, 247, 145, 206, - 39, 1, 191, 166, 206, 39, 1, 198, 115, 198, 127, 196, 238, 200, 39, 206, - 39, 1, 203, 26, 200, 39, 206, 39, 1, 238, 80, 206, 39, 1, 248, 167, 248, - 170, 248, 94, 250, 70, 206, 39, 1, 203, 32, 250, 70, 206, 39, 1, 235, 90, - 206, 39, 1, 211, 59, 206, 39, 1, 234, 124, 234, 131, 73, 206, 39, 1, 217, - 59, 217, 71, 218, 147, 206, 39, 1, 218, 248, 218, 147, 206, 39, 1, 203, - 30, 218, 147, 206, 39, 1, 219, 229, 220, 77, 219, 2, 170, 206, 39, 1, - 235, 92, 206, 39, 1, 223, 107, 206, 39, 1, 223, 108, 206, 39, 1, 237, - 228, 237, 234, 238, 80, 206, 39, 1, 211, 18, 233, 205, 74, 206, 39, 1, - 234, 167, 206, 39, 1, 223, 57, 206, 39, 1, 238, 101, 206, 39, 1, 247, 95, - 206, 39, 1, 246, 249, 206, 39, 1, 201, 103, 206, 39, 1, 218, 245, 206, - 39, 1, 203, 25, 206, 39, 1, 227, 251, 206, 39, 1, 208, 97, 206, 39, 1, - 192, 235, 206, 39, 202, 165, 208, 144, 206, 39, 215, 114, 208, 144, 206, - 39, 238, 171, 208, 144, 206, 39, 250, 202, 113, 206, 39, 197, 41, 113, - 206, 39, 248, 187, 113, 206, 39, 1, 222, 125, 206, 39, 1, 203, 162, 206, - 39, 1, 211, 76, 206, 39, 1, 232, 72, 247, 33, 211, 26, 206, 39, 1, 232, - 72, 247, 33, 223, 40, 206, 39, 1, 232, 72, 247, 33, 234, 130, 206, 39, 1, - 232, 72, 247, 33, 252, 11, 206, 39, 1, 232, 72, 247, 33, 251, 213, 199, - 217, 1, 65, 199, 217, 1, 70, 199, 217, 1, 69, 199, 217, 1, 157, 199, 217, - 1, 231, 203, 199, 217, 1, 214, 54, 199, 217, 1, 199, 247, 199, 217, 1, - 237, 241, 199, 217, 1, 180, 199, 217, 1, 168, 199, 217, 1, 249, 103, 199, - 217, 1, 172, 199, 217, 1, 169, 199, 217, 1, 166, 199, 217, 1, 171, 199, - 217, 1, 193, 187, 199, 217, 1, 189, 199, 217, 1, 144, 199, 217, 18, 3, - 70, 199, 217, 18, 3, 69, 199, 217, 3, 195, 37, 199, 217, 3, 210, 159, - 199, 217, 1, 250, 220, 166, 229, 246, 1, 65, 229, 246, 1, 70, 229, 246, - 1, 69, 229, 246, 1, 157, 229, 246, 1, 231, 203, 229, 246, 1, 214, 54, - 229, 246, 1, 199, 247, 229, 246, 1, 237, 241, 229, 246, 1, 180, 229, 246, - 1, 168, 229, 246, 1, 249, 103, 229, 246, 1, 172, 229, 246, 1, 169, 229, - 246, 1, 166, 229, 246, 1, 171, 229, 246, 1, 193, 187, 229, 246, 1, 189, - 229, 246, 1, 144, 229, 246, 18, 3, 70, 229, 246, 18, 3, 69, 229, 246, 3, - 210, 159, 209, 195, 202, 165, 208, 144, 209, 195, 54, 208, 144, 247, 208, - 1, 65, 247, 208, 1, 70, 247, 208, 1, 69, 247, 208, 1, 157, 247, 208, 1, - 231, 203, 247, 208, 1, 214, 54, 247, 208, 1, 199, 247, 247, 208, 1, 237, - 241, 247, 208, 1, 180, 247, 208, 1, 168, 247, 208, 1, 249, 103, 247, 208, - 1, 172, 247, 208, 1, 169, 247, 208, 1, 166, 247, 208, 1, 171, 247, 208, - 1, 193, 187, 247, 208, 1, 189, 247, 208, 1, 144, 247, 208, 18, 3, 70, - 247, 208, 18, 3, 69, 199, 216, 1, 65, 199, 216, 1, 70, 199, 216, 1, 69, - 199, 216, 1, 157, 199, 216, 1, 231, 203, 199, 216, 1, 214, 54, 199, 216, - 1, 199, 247, 199, 216, 1, 237, 241, 199, 216, 1, 180, 199, 216, 1, 168, - 199, 216, 1, 249, 103, 199, 216, 1, 172, 199, 216, 1, 169, 199, 216, 1, - 171, 199, 216, 1, 193, 187, 199, 216, 1, 189, 199, 216, 18, 3, 70, 199, - 216, 18, 3, 69, 94, 1, 157, 94, 1, 221, 190, 94, 1, 221, 43, 94, 1, 221, - 159, 94, 1, 213, 235, 94, 1, 247, 112, 94, 1, 246, 209, 94, 1, 242, 51, - 94, 1, 243, 20, 94, 1, 212, 52, 94, 1, 237, 241, 94, 1, 197, 116, 94, 1, - 236, 129, 94, 1, 197, 111, 94, 1, 213, 36, 94, 1, 199, 247, 94, 1, 199, - 44, 94, 1, 159, 94, 1, 198, 236, 94, 1, 213, 30, 94, 1, 249, 103, 94, 1, - 209, 219, 94, 1, 209, 65, 94, 1, 209, 190, 94, 1, 215, 251, 94, 1, 192, - 12, 94, 1, 206, 157, 94, 1, 219, 19, 94, 1, 195, 21, 94, 1, 203, 160, 94, - 1, 201, 129, 94, 1, 189, 94, 1, 144, 94, 1, 171, 94, 1, 208, 89, 94, 223, - 121, 18, 208, 75, 94, 223, 121, 18, 208, 88, 94, 223, 121, 18, 208, 51, - 94, 223, 121, 18, 208, 45, 94, 223, 121, 18, 208, 27, 94, 223, 121, 18, - 207, 251, 94, 223, 121, 18, 207, 239, 94, 223, 121, 18, 207, 238, 94, - 223, 121, 18, 206, 12, 94, 223, 121, 18, 206, 5, 94, 223, 121, 18, 218, - 162, 94, 223, 121, 18, 218, 150, 94, 223, 121, 18, 208, 69, 94, 223, 121, - 18, 208, 81, 94, 223, 121, 18, 208, 35, 196, 251, 108, 94, 223, 121, 18, - 208, 35, 196, 251, 109, 94, 223, 121, 18, 208, 71, 94, 18, 223, 105, 250, - 243, 94, 18, 223, 105, 252, 154, 94, 18, 3, 252, 154, 94, 18, 3, 70, 94, - 18, 3, 223, 170, 94, 18, 3, 192, 159, 94, 18, 3, 191, 176, 94, 18, 3, 69, - 94, 18, 3, 196, 26, 94, 18, 3, 196, 164, 94, 18, 3, 211, 139, 94, 18, 3, - 169, 94, 18, 3, 223, 197, 94, 18, 3, 73, 94, 18, 3, 251, 229, 94, 18, 3, - 251, 184, 94, 18, 3, 211, 76, 94, 18, 3, 250, 113, 94, 3, 213, 170, 94, - 3, 207, 101, 94, 3, 191, 187, 94, 3, 215, 77, 94, 3, 197, 225, 94, 3, - 249, 40, 94, 3, 206, 146, 94, 3, 198, 85, 94, 3, 222, 68, 94, 3, 251, - 186, 94, 3, 205, 138, 205, 130, 94, 3, 195, 34, 94, 3, 242, 42, 94, 3, - 249, 10, 94, 3, 221, 180, 94, 3, 249, 35, 94, 3, 247, 83, 209, 137, 220, - 162, 94, 3, 219, 181, 198, 54, 94, 3, 248, 155, 94, 3, 209, 192, 215, - 132, 94, 3, 221, 15, 94, 238, 123, 16, 206, 236, 94, 3, 250, 94, 94, 3, - 250, 116, 94, 17, 191, 77, 94, 17, 108, 94, 17, 109, 94, 17, 139, 94, 17, - 137, 94, 17, 153, 94, 17, 173, 94, 17, 181, 94, 17, 176, 94, 17, 184, 94, - 16, 219, 181, 250, 118, 202, 14, 94, 16, 219, 181, 250, 118, 215, 98, 94, - 16, 219, 181, 250, 118, 209, 136, 94, 16, 219, 181, 250, 118, 248, 190, - 94, 16, 219, 181, 250, 118, 247, 188, 94, 16, 219, 181, 250, 118, 208, - 238, 94, 16, 219, 181, 250, 118, 208, 232, 94, 16, 219, 181, 250, 118, - 208, 230, 94, 16, 219, 181, 250, 118, 208, 236, 94, 16, 219, 181, 250, - 118, 208, 234, 102, 248, 110, 102, 234, 78, 102, 242, 26, 102, 232, 42, - 201, 58, 102, 242, 35, 102, 232, 90, 236, 94, 102, 198, 83, 202, 27, 228, - 58, 102, 202, 209, 5, 248, 25, 217, 32, 102, 217, 67, 242, 26, 102, 217, - 67, 232, 42, 201, 58, 102, 213, 151, 102, 232, 71, 66, 205, 30, 108, 102, - 232, 71, 66, 205, 30, 109, 102, 232, 71, 66, 205, 30, 139, 102, 18, 204, - 5, 102, 232, 71, 66, 205, 30, 137, 102, 17, 191, 77, 102, 17, 108, 102, - 17, 109, 102, 17, 139, 102, 17, 137, 102, 17, 153, 102, 17, 173, 102, 17, - 181, 102, 17, 176, 102, 17, 184, 102, 1, 65, 102, 1, 73, 102, 1, 70, 102, - 1, 74, 102, 1, 69, 102, 1, 211, 139, 102, 1, 196, 148, 102, 1, 234, 145, - 102, 1, 180, 102, 1, 251, 71, 102, 1, 249, 103, 102, 1, 168, 102, 1, 208, - 89, 102, 1, 231, 203, 102, 1, 172, 102, 1, 171, 102, 1, 189, 102, 1, 203, - 160, 102, 1, 199, 247, 102, 1, 237, 241, 102, 1, 246, 209, 102, 1, 223, - 4, 102, 1, 169, 102, 1, 166, 102, 1, 193, 187, 102, 1, 233, 68, 102, 1, - 157, 102, 1, 221, 190, 102, 1, 197, 164, 102, 1, 191, 123, 102, 1, 230, - 58, 102, 1, 190, 255, 102, 1, 219, 135, 102, 1, 191, 57, 102, 1, 243, 47, - 102, 1, 198, 83, 177, 18, 57, 102, 1, 198, 83, 73, 102, 1, 198, 83, 70, - 102, 1, 198, 83, 74, 102, 1, 198, 83, 69, 102, 1, 198, 83, 211, 139, 102, - 1, 198, 83, 196, 148, 102, 1, 198, 83, 251, 71, 102, 1, 198, 83, 249, - 103, 102, 1, 198, 83, 168, 102, 1, 198, 83, 208, 89, 102, 1, 198, 83, - 231, 203, 102, 1, 198, 83, 172, 102, 1, 198, 83, 199, 247, 102, 1, 198, - 83, 237, 241, 102, 1, 198, 83, 246, 209, 102, 1, 198, 83, 223, 4, 102, 1, - 198, 83, 197, 164, 102, 1, 198, 83, 169, 102, 1, 198, 83, 193, 187, 102, - 1, 198, 83, 157, 102, 1, 198, 83, 231, 200, 102, 1, 198, 83, 230, 58, - 102, 1, 198, 83, 222, 216, 102, 1, 198, 83, 213, 195, 102, 1, 198, 83, - 234, 247, 102, 1, 202, 209, 73, 102, 1, 202, 209, 70, 102, 1, 202, 209, - 223, 16, 102, 1, 202, 209, 196, 148, 102, 1, 202, 209, 69, 102, 1, 202, - 209, 251, 71, 102, 1, 202, 209, 157, 102, 1, 202, 209, 231, 203, 102, 1, - 202, 209, 144, 102, 1, 202, 209, 168, 102, 1, 202, 209, 203, 160, 102, 1, - 202, 209, 199, 247, 102, 1, 202, 209, 237, 241, 102, 1, 202, 209, 223, 4, - 102, 1, 202, 209, 233, 68, 102, 1, 202, 209, 231, 200, 102, 1, 202, 209, - 230, 58, 102, 1, 202, 209, 197, 164, 102, 1, 202, 209, 191, 123, 102, 1, - 202, 209, 207, 173, 102, 1, 202, 209, 246, 209, 102, 1, 202, 209, 191, - 71, 102, 1, 217, 67, 70, 102, 1, 217, 67, 157, 102, 1, 217, 67, 166, 102, - 1, 217, 67, 233, 68, 102, 1, 217, 67, 191, 71, 102, 1, 246, 210, 4, 103, - 236, 94, 102, 1, 251, 133, 231, 183, 251, 21, 108, 102, 1, 251, 133, 231, - 183, 195, 33, 108, 102, 1, 251, 133, 231, 183, 237, 202, 102, 1, 251, - 133, 231, 183, 196, 159, 102, 1, 251, 133, 231, 183, 223, 65, 196, 159, - 102, 1, 251, 133, 231, 183, 249, 54, 102, 1, 251, 133, 231, 183, 115, - 249, 54, 102, 1, 251, 133, 231, 183, 65, 102, 1, 251, 133, 231, 183, 70, - 102, 1, 251, 133, 231, 183, 157, 102, 1, 251, 133, 231, 183, 214, 54, - 102, 1, 251, 133, 231, 183, 247, 112, 102, 1, 251, 133, 231, 183, 197, - 128, 102, 1, 251, 133, 231, 183, 197, 116, 102, 1, 251, 133, 231, 183, - 237, 146, 102, 1, 251, 133, 231, 183, 213, 66, 102, 1, 251, 133, 231, - 183, 199, 247, 102, 1, 251, 133, 231, 183, 237, 241, 102, 1, 251, 133, - 231, 183, 168, 102, 1, 251, 133, 231, 183, 209, 219, 102, 1, 251, 133, - 231, 183, 201, 170, 102, 1, 251, 133, 231, 183, 191, 71, 102, 1, 251, - 133, 231, 183, 191, 123, 102, 1, 251, 133, 231, 183, 251, 193, 102, 1, - 198, 83, 251, 133, 231, 183, 199, 247, 102, 1, 198, 83, 251, 133, 231, - 183, 191, 71, 102, 1, 217, 67, 251, 133, 231, 183, 231, 54, 102, 1, 217, - 67, 251, 133, 231, 183, 214, 54, 102, 1, 217, 67, 251, 133, 231, 183, - 247, 112, 102, 1, 217, 67, 251, 133, 231, 183, 222, 225, 102, 1, 217, 67, - 251, 133, 231, 183, 197, 128, 102, 1, 217, 67, 251, 133, 231, 183, 237, - 130, 102, 1, 217, 67, 251, 133, 231, 183, 199, 247, 102, 1, 217, 67, 251, - 133, 231, 183, 237, 23, 102, 1, 217, 67, 251, 133, 231, 183, 201, 170, - 102, 1, 217, 67, 251, 133, 231, 183, 238, 95, 102, 1, 217, 67, 251, 133, - 231, 183, 191, 71, 102, 1, 217, 67, 251, 133, 231, 183, 191, 123, 102, 1, - 251, 133, 231, 183, 134, 69, 102, 1, 251, 133, 231, 183, 134, 169, 102, - 1, 217, 67, 251, 133, 231, 183, 248, 153, 102, 1, 251, 133, 231, 183, - 237, 229, 102, 1, 217, 67, 251, 133, 231, 183, 219, 135, 21, 22, 210, - 232, 21, 22, 250, 81, 21, 22, 252, 108, 21, 22, 193, 126, 21, 22, 208, - 244, 21, 22, 210, 62, 21, 22, 208, 106, 21, 22, 199, 149, 21, 22, 222, 4, - 21, 22, 220, 152, 21, 22, 217, 2, 21, 22, 212, 237, 21, 22, 214, 184, 21, - 22, 219, 224, 21, 22, 201, 247, 21, 22, 205, 98, 21, 22, 203, 13, 21, 22, - 203, 112, 21, 22, 202, 227, 21, 22, 191, 234, 21, 22, 192, 86, 21, 22, - 207, 117, 21, 22, 212, 94, 21, 22, 211, 116, 212, 94, 21, 22, 212, 93, - 21, 22, 211, 116, 212, 93, 21, 22, 212, 92, 21, 22, 211, 116, 212, 92, - 21, 22, 212, 91, 21, 22, 211, 116, 212, 91, 21, 22, 206, 17, 21, 22, 206, - 16, 21, 22, 206, 15, 21, 22, 206, 14, 21, 22, 206, 13, 21, 22, 206, 21, - 21, 22, 211, 116, 210, 226, 21, 22, 211, 116, 200, 39, 21, 22, 211, 116, - 222, 125, 21, 22, 211, 116, 247, 145, 21, 22, 211, 116, 218, 147, 21, 22, - 211, 116, 215, 47, 21, 22, 211, 116, 206, 3, 21, 22, 211, 116, 203, 162, - 21, 22, 234, 158, 193, 221, 21, 22, 193, 100, 193, 221, 21, 22, 52, 2, - 206, 183, 21, 22, 52, 207, 142, 236, 96, 21, 22, 207, 216, 206, 18, 21, - 22, 193, 101, 218, 240, 21, 22, 193, 101, 220, 101, 21, 22, 198, 197, 21, - 22, 198, 199, 21, 22, 197, 108, 21, 22, 197, 110, 21, 22, 197, 115, 21, - 22, 198, 100, 21, 22, 198, 102, 21, 22, 205, 96, 202, 232, 21, 22, 205, - 96, 203, 43, 21, 22, 205, 96, 228, 220, 21, 22, 98, 230, 97, 21, 22, 98, - 237, 58, 231, 120, 21, 22, 98, 231, 200, 21, 22, 98, 230, 102, 21, 22, - 205, 96, 222, 135, 21, 22, 98, 222, 133, 21, 22, 248, 211, 237, 58, 170, - 21, 22, 248, 211, 237, 58, 148, 21, 22, 98, 237, 53, 206, 3, 219, 98, - 194, 254, 219, 151, 219, 98, 1, 157, 219, 98, 1, 221, 190, 219, 98, 1, - 231, 203, 219, 98, 1, 231, 54, 219, 98, 1, 214, 54, 219, 98, 1, 247, 112, - 219, 98, 1, 246, 209, 219, 98, 1, 223, 4, 219, 98, 1, 222, 225, 219, 98, - 1, 192, 108, 219, 98, 1, 199, 247, 219, 98, 1, 199, 44, 219, 98, 1, 237, - 241, 219, 98, 1, 237, 23, 219, 98, 1, 180, 219, 98, 1, 168, 219, 98, 1, - 209, 219, 219, 98, 1, 249, 103, 219, 98, 1, 248, 153, 219, 98, 1, 172, - 219, 98, 1, 169, 219, 98, 1, 166, 219, 98, 1, 171, 219, 98, 1, 193, 187, - 219, 98, 1, 203, 160, 219, 98, 1, 201, 170, 219, 98, 1, 189, 219, 98, 1, - 144, 219, 98, 1, 230, 93, 219, 98, 1, 198, 22, 219, 98, 18, 3, 65, 219, - 98, 18, 3, 70, 219, 98, 18, 3, 69, 219, 98, 18, 3, 234, 145, 219, 98, 18, - 3, 251, 184, 219, 98, 18, 3, 211, 76, 219, 98, 18, 3, 250, 113, 219, 98, - 18, 3, 73, 219, 98, 18, 3, 74, 219, 98, 200, 234, 1, 169, 219, 98, 200, - 234, 1, 166, 219, 98, 200, 234, 1, 193, 187, 219, 98, 2, 1, 157, 219, 98, - 2, 1, 214, 54, 219, 98, 2, 1, 251, 20, 219, 98, 2, 1, 199, 247, 219, 98, - 2, 1, 180, 219, 98, 2, 1, 168, 219, 98, 2, 1, 172, 219, 98, 2, 1, 166, - 219, 98, 2, 1, 171, 219, 98, 3, 215, 119, 219, 98, 3, 221, 232, 219, 98, - 3, 205, 193, 219, 98, 3, 218, 240, 219, 98, 233, 175, 77, 219, 98, 208, - 8, 77, 219, 98, 17, 191, 77, 219, 98, 17, 108, 219, 98, 17, 109, 219, 98, - 17, 139, 219, 98, 17, 137, 219, 98, 17, 153, 219, 98, 17, 173, 219, 98, - 17, 181, 219, 98, 17, 176, 219, 98, 17, 184, 53, 219, 215, 1, 157, 53, - 219, 215, 1, 192, 220, 53, 219, 215, 1, 214, 54, 53, 219, 215, 1, 197, - 164, 53, 219, 215, 1, 189, 53, 219, 215, 1, 169, 53, 219, 215, 1, 199, - 247, 53, 219, 215, 1, 199, 44, 53, 219, 215, 1, 171, 53, 219, 215, 1, - 168, 53, 219, 215, 1, 209, 219, 53, 219, 215, 1, 172, 53, 219, 215, 1, - 233, 68, 53, 219, 215, 1, 195, 185, 53, 219, 215, 1, 144, 53, 219, 215, - 1, 208, 89, 53, 219, 215, 1, 221, 190, 53, 219, 215, 1, 197, 153, 53, - 219, 215, 1, 180, 53, 219, 215, 1, 65, 53, 219, 215, 1, 70, 53, 219, 215, - 1, 234, 145, 53, 219, 215, 1, 234, 130, 53, 219, 215, 1, 69, 53, 219, - 215, 1, 211, 76, 53, 219, 215, 1, 74, 53, 219, 215, 1, 196, 148, 53, 219, - 215, 1, 73, 53, 219, 215, 1, 250, 111, 53, 219, 215, 1, 251, 184, 53, - 219, 215, 1, 198, 72, 53, 219, 215, 1, 198, 71, 53, 219, 215, 1, 198, 70, - 53, 219, 215, 1, 198, 69, 53, 219, 215, 1, 198, 68, 214, 66, 53, 218, - 197, 1, 136, 208, 89, 214, 66, 53, 218, 197, 1, 131, 208, 89, 214, 66, - 53, 218, 197, 1, 136, 157, 214, 66, 53, 218, 197, 1, 136, 192, 220, 214, - 66, 53, 218, 197, 1, 136, 214, 54, 214, 66, 53, 218, 197, 1, 131, 157, - 214, 66, 53, 218, 197, 1, 131, 192, 220, 214, 66, 53, 218, 197, 1, 131, - 214, 54, 214, 66, 53, 218, 197, 1, 136, 197, 164, 214, 66, 53, 218, 197, - 1, 136, 189, 214, 66, 53, 218, 197, 1, 136, 169, 214, 66, 53, 218, 197, - 1, 131, 197, 164, 214, 66, 53, 218, 197, 1, 131, 189, 214, 66, 53, 218, - 197, 1, 131, 169, 214, 66, 53, 218, 197, 1, 136, 199, 247, 214, 66, 53, - 218, 197, 1, 136, 199, 44, 214, 66, 53, 218, 197, 1, 136, 180, 214, 66, - 53, 218, 197, 1, 131, 199, 247, 214, 66, 53, 218, 197, 1, 131, 199, 44, - 214, 66, 53, 218, 197, 1, 131, 180, 214, 66, 53, 218, 197, 1, 136, 168, - 214, 66, 53, 218, 197, 1, 136, 209, 219, 214, 66, 53, 218, 197, 1, 136, - 172, 214, 66, 53, 218, 197, 1, 131, 168, 214, 66, 53, 218, 197, 1, 131, - 209, 219, 214, 66, 53, 218, 197, 1, 131, 172, 214, 66, 53, 218, 197, 1, - 136, 233, 68, 214, 66, 53, 218, 197, 1, 136, 195, 185, 214, 66, 53, 218, - 197, 1, 136, 171, 214, 66, 53, 218, 197, 1, 131, 233, 68, 214, 66, 53, - 218, 197, 1, 131, 195, 185, 214, 66, 53, 218, 197, 1, 131, 171, 214, 66, - 53, 218, 197, 1, 136, 144, 214, 66, 53, 218, 197, 1, 136, 237, 241, 214, - 66, 53, 218, 197, 1, 136, 249, 103, 214, 66, 53, 218, 197, 1, 131, 144, - 214, 66, 53, 218, 197, 1, 131, 237, 241, 214, 66, 53, 218, 197, 1, 131, - 249, 103, 214, 66, 53, 218, 197, 1, 136, 220, 157, 214, 66, 53, 218, 197, - 1, 136, 192, 185, 214, 66, 53, 218, 197, 1, 131, 220, 157, 214, 66, 53, - 218, 197, 1, 131, 192, 185, 214, 66, 53, 218, 197, 1, 136, 200, 246, 214, - 66, 53, 218, 197, 1, 131, 200, 246, 214, 66, 53, 218, 197, 18, 3, 18, - 203, 23, 214, 66, 53, 218, 197, 18, 3, 252, 154, 214, 66, 53, 218, 197, - 18, 3, 223, 170, 214, 66, 53, 218, 197, 18, 3, 69, 214, 66, 53, 218, 197, - 18, 3, 196, 26, 214, 66, 53, 218, 197, 18, 3, 73, 214, 66, 53, 218, 197, - 18, 3, 251, 229, 214, 66, 53, 218, 197, 18, 3, 74, 214, 66, 53, 218, 197, - 18, 3, 211, 169, 214, 66, 53, 218, 197, 18, 3, 196, 148, 214, 66, 53, - 218, 197, 18, 3, 250, 81, 214, 66, 53, 218, 197, 18, 3, 252, 108, 214, - 66, 53, 218, 197, 18, 3, 196, 17, 214, 66, 53, 218, 197, 18, 3, 210, 232, - 214, 66, 53, 218, 197, 18, 3, 211, 166, 214, 66, 53, 218, 197, 18, 3, - 196, 140, 214, 66, 53, 218, 197, 18, 3, 223, 16, 214, 66, 53, 218, 197, - 1, 52, 196, 8, 214, 66, 53, 218, 197, 1, 52, 214, 56, 214, 66, 53, 218, - 197, 1, 52, 215, 47, 214, 66, 53, 218, 197, 1, 52, 218, 147, 214, 66, 53, - 218, 197, 1, 52, 222, 125, 214, 66, 53, 218, 197, 1, 52, 238, 80, 214, - 66, 53, 218, 197, 1, 52, 250, 70, 214, 66, 53, 218, 197, 163, 217, 36, - 214, 66, 53, 218, 197, 163, 217, 35, 214, 66, 53, 218, 197, 17, 191, 77, - 214, 66, 53, 218, 197, 17, 108, 214, 66, 53, 218, 197, 17, 109, 214, 66, - 53, 218, 197, 17, 139, 214, 66, 53, 218, 197, 17, 137, 214, 66, 53, 218, - 197, 17, 153, 214, 66, 53, 218, 197, 17, 173, 214, 66, 53, 218, 197, 17, - 181, 214, 66, 53, 218, 197, 17, 176, 214, 66, 53, 218, 197, 17, 184, 214, - 66, 53, 218, 197, 128, 17, 108, 214, 66, 53, 218, 197, 3, 220, 83, 214, - 66, 53, 218, 197, 3, 220, 82, 94, 16, 210, 74, 94, 16, 215, 99, 221, 34, - 94, 16, 209, 137, 221, 34, 94, 16, 248, 191, 221, 34, 94, 16, 247, 189, - 221, 34, 94, 16, 208, 239, 221, 34, 94, 16, 208, 233, 221, 34, 94, 16, - 208, 231, 221, 34, 94, 16, 208, 237, 221, 34, 94, 16, 208, 235, 221, 34, - 94, 16, 237, 187, 221, 34, 94, 16, 237, 183, 221, 34, 94, 16, 237, 182, - 221, 34, 94, 16, 237, 185, 221, 34, 94, 16, 237, 184, 221, 34, 94, 16, - 237, 181, 221, 34, 94, 16, 197, 47, 94, 16, 215, 99, 206, 144, 94, 16, - 209, 137, 206, 144, 94, 16, 248, 191, 206, 144, 94, 16, 247, 189, 206, - 144, 94, 16, 208, 239, 206, 144, 94, 16, 208, 233, 206, 144, 94, 16, 208, - 231, 206, 144, 94, 16, 208, 237, 206, 144, 94, 16, 208, 235, 206, 144, - 94, 16, 237, 187, 206, 144, 94, 16, 237, 183, 206, 144, 94, 16, 237, 182, - 206, 144, 94, 16, 237, 185, 206, 144, 94, 16, 237, 184, 206, 144, 94, 16, - 237, 181, 206, 144, 247, 209, 1, 157, 247, 209, 1, 231, 203, 247, 209, 1, - 214, 54, 247, 209, 1, 213, 253, 247, 209, 1, 168, 247, 209, 1, 249, 103, - 247, 209, 1, 172, 247, 209, 1, 215, 150, 247, 209, 1, 199, 247, 247, 209, - 1, 237, 241, 247, 209, 1, 180, 247, 209, 1, 212, 231, 247, 209, 1, 247, - 112, 247, 209, 1, 223, 4, 247, 209, 1, 212, 88, 247, 209, 1, 212, 79, - 247, 209, 1, 169, 247, 209, 1, 166, 247, 209, 1, 171, 247, 209, 1, 195, - 185, 247, 209, 1, 189, 247, 209, 1, 65, 247, 209, 1, 144, 247, 209, 18, - 3, 70, 247, 209, 18, 3, 69, 247, 209, 18, 3, 73, 247, 209, 18, 3, 74, - 247, 209, 18, 3, 251, 229, 247, 209, 210, 174, 247, 209, 234, 53, 80, - 205, 48, 53, 128, 1, 136, 157, 53, 128, 1, 136, 221, 190, 53, 128, 1, - 136, 220, 141, 53, 128, 1, 131, 157, 53, 128, 1, 131, 220, 141, 53, 128, - 1, 131, 221, 190, 53, 128, 1, 214, 54, 53, 128, 1, 136, 247, 112, 53, - 128, 1, 136, 246, 209, 53, 128, 1, 131, 247, 112, 53, 128, 1, 131, 189, - 53, 128, 1, 131, 246, 209, 53, 128, 1, 212, 88, 53, 128, 1, 207, 124, 53, - 128, 1, 136, 207, 122, 53, 128, 1, 237, 241, 53, 128, 1, 131, 207, 122, - 53, 128, 1, 207, 133, 53, 128, 1, 136, 199, 247, 53, 128, 1, 136, 199, - 44, 53, 128, 1, 131, 199, 247, 53, 128, 1, 131, 199, 44, 53, 128, 1, 180, - 53, 128, 1, 249, 103, 53, 128, 1, 136, 168, 53, 128, 1, 136, 209, 219, - 53, 128, 1, 136, 233, 68, 53, 128, 1, 131, 168, 53, 128, 1, 131, 233, 68, - 53, 128, 1, 131, 209, 219, 53, 128, 1, 172, 53, 128, 1, 131, 169, 53, - 128, 1, 136, 169, 53, 128, 1, 166, 53, 128, 1, 206, 52, 53, 128, 1, 171, - 53, 128, 1, 218, 196, 53, 128, 1, 193, 187, 53, 128, 1, 136, 203, 160, - 53, 128, 1, 136, 201, 170, 53, 128, 1, 136, 189, 53, 128, 1, 136, 144, - 53, 128, 1, 219, 49, 53, 128, 1, 65, 53, 128, 1, 131, 144, 53, 128, 1, - 70, 53, 128, 1, 223, 170, 53, 128, 1, 69, 53, 128, 1, 196, 26, 53, 128, - 1, 234, 145, 53, 128, 1, 211, 76, 53, 128, 1, 220, 83, 53, 128, 1, 230, - 172, 189, 53, 128, 119, 3, 216, 198, 166, 53, 128, 119, 3, 216, 198, 171, - 53, 128, 119, 3, 220, 102, 199, 185, 220, 72, 53, 128, 3, 217, 92, 222, - 58, 220, 72, 53, 128, 119, 3, 52, 214, 54, 53, 128, 119, 3, 131, 168, 53, - 128, 119, 3, 136, 207, 123, 211, 46, 131, 168, 53, 128, 119, 3, 172, 53, - 128, 119, 3, 249, 103, 53, 128, 119, 3, 189, 53, 128, 3, 205, 167, 53, - 128, 18, 3, 65, 53, 128, 18, 3, 217, 92, 205, 117, 53, 128, 18, 3, 252, - 154, 53, 128, 18, 3, 199, 195, 252, 154, 53, 128, 18, 3, 70, 53, 128, 18, - 3, 223, 170, 53, 128, 18, 3, 196, 148, 53, 128, 18, 3, 196, 25, 53, 128, - 18, 3, 69, 53, 128, 18, 3, 196, 26, 53, 128, 18, 3, 74, 53, 128, 18, 3, - 211, 170, 60, 53, 128, 18, 3, 210, 232, 53, 128, 18, 3, 73, 53, 128, 18, - 3, 251, 229, 53, 128, 18, 3, 211, 76, 53, 128, 18, 3, 251, 184, 53, 128, - 18, 3, 128, 251, 184, 53, 128, 18, 3, 211, 170, 56, 53, 128, 3, 217, 92, - 222, 57, 53, 128, 3, 198, 73, 53, 128, 3, 198, 72, 53, 128, 3, 221, 147, - 198, 71, 53, 128, 3, 221, 147, 198, 70, 53, 128, 3, 221, 147, 198, 69, - 53, 128, 3, 207, 181, 230, 57, 53, 128, 3, 217, 92, 205, 147, 53, 128, 3, - 221, 146, 222, 38, 53, 128, 33, 238, 151, 236, 96, 53, 128, 228, 211, 17, - 191, 77, 53, 128, 228, 211, 17, 108, 53, 128, 228, 211, 17, 109, 53, 128, - 228, 211, 17, 139, 53, 128, 228, 211, 17, 137, 53, 128, 228, 211, 17, - 153, 53, 128, 228, 211, 17, 173, 53, 128, 228, 211, 17, 181, 53, 128, - 228, 211, 17, 176, 53, 128, 228, 211, 17, 184, 53, 128, 128, 17, 191, 77, - 53, 128, 128, 17, 108, 53, 128, 128, 17, 109, 53, 128, 128, 17, 139, 53, - 128, 128, 17, 137, 53, 128, 128, 17, 153, 53, 128, 128, 17, 173, 53, 128, - 128, 17, 181, 53, 128, 128, 17, 176, 53, 128, 128, 17, 184, 53, 128, 3, - 193, 78, 53, 128, 3, 193, 77, 53, 128, 3, 205, 102, 53, 128, 3, 221, 221, - 53, 128, 3, 228, 139, 53, 128, 3, 236, 112, 53, 128, 3, 207, 13, 206, - 117, 207, 133, 53, 128, 3, 217, 92, 192, 109, 53, 128, 3, 222, 93, 53, - 128, 3, 222, 92, 53, 128, 3, 205, 112, 53, 128, 3, 205, 111, 53, 128, 3, - 229, 249, 53, 128, 3, 247, 109, 33, 235, 84, 242, 210, 252, 8, 33, 236, - 252, 33, 223, 111, 33, 235, 75, 55, 33, 197, 221, 236, 96, 33, 192, 233, - 60, 33, 193, 70, 219, 89, 60, 33, 211, 66, 87, 60, 33, 54, 211, 66, 87, - 60, 33, 155, 246, 231, 201, 23, 60, 33, 201, 9, 246, 231, 201, 23, 60, - 33, 210, 105, 56, 33, 54, 210, 105, 56, 33, 210, 105, 60, 33, 210, 105, - 210, 245, 33, 8, 2, 1, 193, 222, 60, 33, 8, 2, 1, 152, 193, 222, 60, 33, - 45, 210, 104, 95, 219, 200, 33, 50, 210, 104, 95, 187, 33, 45, 210, 104, - 248, 183, 219, 200, 33, 50, 210, 104, 248, 183, 187, 33, 51, 248, 3, 56, - 33, 31, 3, 56, 33, 223, 65, 54, 250, 221, 56, 33, 107, 3, 56, 33, 54, - 107, 3, 56, 33, 54, 107, 3, 60, 33, 197, 221, 251, 251, 252, 8, 33, 8, 2, - 1, 223, 87, 232, 14, 33, 8, 2, 1, 223, 87, 148, 33, 8, 2, 1, 223, 87, - 200, 39, 147, 3, 196, 119, 206, 239, 147, 3, 196, 119, 247, 73, 147, 3, - 246, 246, 147, 3, 200, 168, 147, 3, 248, 107, 147, 1, 251, 163, 147, 1, - 251, 164, 199, 118, 147, 1, 223, 165, 147, 1, 223, 166, 199, 118, 147, 1, - 196, 122, 147, 1, 196, 123, 199, 118, 147, 1, 207, 181, 207, 46, 147, 1, - 207, 181, 207, 47, 199, 118, 147, 1, 220, 102, 219, 175, 147, 1, 220, - 102, 219, 176, 199, 118, 147, 1, 234, 102, 147, 1, 251, 181, 147, 1, 211, - 112, 147, 1, 211, 113, 199, 118, 147, 1, 157, 147, 1, 222, 115, 217, 95, - 147, 1, 231, 203, 147, 1, 231, 204, 230, 207, 147, 1, 214, 54, 147, 1, - 247, 112, 147, 1, 247, 113, 220, 88, 147, 1, 223, 4, 147, 1, 223, 5, 222, - 229, 147, 1, 212, 88, 147, 1, 199, 248, 219, 234, 147, 1, 199, 248, 215, - 94, 217, 95, 147, 1, 237, 242, 215, 94, 251, 111, 147, 1, 237, 242, 215, - 94, 217, 95, 147, 1, 214, 249, 207, 136, 147, 1, 199, 247, 147, 1, 199, - 248, 199, 153, 147, 1, 237, 241, 147, 1, 237, 242, 217, 117, 147, 1, 180, - 147, 1, 168, 147, 1, 210, 211, 222, 50, 147, 1, 249, 103, 147, 1, 249, - 104, 221, 233, 147, 1, 172, 147, 1, 169, 147, 1, 166, 147, 1, 171, 147, - 1, 193, 187, 147, 1, 205, 202, 205, 179, 147, 1, 205, 202, 205, 124, 147, - 1, 189, 147, 1, 144, 147, 3, 207, 36, 147, 18, 3, 199, 118, 147, 18, 3, - 196, 118, 147, 18, 3, 196, 119, 205, 120, 147, 18, 3, 200, 203, 147, 18, - 3, 200, 204, 223, 157, 147, 18, 3, 207, 181, 207, 46, 147, 18, 3, 207, - 181, 207, 47, 199, 118, 147, 18, 3, 220, 102, 219, 175, 147, 18, 3, 220, - 102, 219, 176, 199, 118, 147, 18, 3, 199, 196, 147, 18, 3, 199, 197, 207, - 46, 147, 18, 3, 199, 197, 199, 118, 147, 18, 3, 199, 197, 207, 47, 199, - 118, 147, 18, 3, 210, 7, 147, 18, 3, 210, 8, 199, 118, 147, 251, 241, - 251, 240, 147, 1, 222, 80, 205, 119, 147, 1, 221, 153, 205, 119, 147, 1, - 196, 231, 205, 119, 147, 1, 234, 139, 205, 119, 147, 1, 195, 151, 205, - 119, 147, 1, 191, 109, 205, 119, 147, 1, 250, 135, 205, 119, 147, 1, 250, - 220, 222, 175, 147, 17, 191, 77, 147, 17, 108, 147, 17, 109, 147, 17, - 139, 147, 17, 137, 147, 17, 153, 147, 17, 173, 147, 17, 181, 147, 17, - 176, 147, 17, 184, 147, 210, 135, 147, 210, 165, 147, 193, 62, 147, 247, - 46, 210, 158, 147, 247, 46, 202, 185, 147, 247, 46, 210, 102, 147, 210, - 164, 147, 37, 16, 236, 103, 147, 37, 16, 237, 57, 147, 37, 16, 235, 27, - 147, 37, 16, 237, 191, 147, 37, 16, 237, 192, 200, 168, 147, 37, 16, 236, - 197, 147, 37, 16, 237, 233, 147, 37, 16, 237, 32, 147, 37, 16, 237, 215, - 147, 37, 16, 237, 192, 231, 122, 147, 37, 16, 33, 199, 111, 147, 37, 16, - 33, 234, 50, 147, 37, 16, 33, 221, 228, 147, 37, 16, 33, 221, 230, 147, - 37, 16, 33, 222, 233, 147, 37, 16, 33, 221, 229, 4, 222, 233, 147, 37, - 16, 33, 221, 231, 4, 222, 233, 147, 37, 16, 33, 248, 176, 147, 37, 16, - 33, 230, 211, 147, 37, 16, 206, 201, 211, 66, 235, 38, 147, 37, 16, 206, - 201, 211, 66, 237, 231, 147, 37, 16, 206, 201, 242, 171, 197, 76, 147, - 37, 16, 206, 201, 242, 171, 199, 206, 147, 37, 16, 219, 198, 211, 66, - 210, 150, 147, 37, 16, 219, 198, 211, 66, 208, 142, 147, 37, 16, 219, - 198, 242, 171, 209, 96, 147, 37, 16, 219, 198, 242, 171, 209, 78, 147, - 37, 16, 219, 198, 211, 66, 209, 123, 147, 210, 136, 219, 251, 147, 210, - 166, 219, 251, 200, 192, 3, 210, 132, 200, 192, 3, 210, 146, 200, 192, 3, - 210, 142, 200, 192, 1, 65, 200, 192, 1, 70, 200, 192, 1, 69, 200, 192, 1, - 251, 229, 200, 192, 1, 74, 200, 192, 1, 73, 200, 192, 1, 233, 201, 200, - 192, 1, 157, 200, 192, 1, 208, 89, 200, 192, 1, 231, 203, 200, 192, 1, - 214, 54, 200, 192, 1, 247, 112, 200, 192, 1, 223, 4, 200, 192, 1, 191, - 123, 200, 192, 1, 212, 88, 200, 192, 1, 199, 247, 200, 192, 1, 237, 241, - 200, 192, 1, 180, 200, 192, 1, 168, 200, 192, 1, 233, 68, 200, 192, 1, - 195, 185, 200, 192, 1, 249, 103, 200, 192, 1, 172, 200, 192, 1, 169, 200, - 192, 1, 166, 200, 192, 1, 171, 200, 192, 1, 193, 187, 200, 192, 1, 189, - 200, 192, 1, 192, 220, 200, 192, 1, 144, 200, 192, 119, 3, 210, 162, 200, - 192, 119, 3, 210, 134, 200, 192, 119, 3, 210, 131, 200, 192, 18, 3, 210, - 149, 200, 192, 18, 3, 210, 130, 200, 192, 18, 3, 210, 155, 200, 192, 18, - 3, 210, 141, 200, 192, 18, 3, 210, 163, 200, 192, 18, 3, 210, 151, 200, - 192, 3, 210, 167, 200, 192, 3, 195, 37, 200, 192, 119, 3, 210, 90, 172, - 200, 192, 119, 3, 210, 90, 193, 187, 200, 192, 1, 221, 190, 200, 192, 1, - 200, 122, 200, 192, 17, 191, 77, 200, 192, 17, 108, 200, 192, 17, 109, - 200, 192, 17, 139, 200, 192, 17, 137, 200, 192, 17, 153, 200, 192, 17, - 173, 200, 192, 17, 181, 200, 192, 17, 176, 200, 192, 17, 184, 200, 192, - 250, 95, 200, 192, 1, 207, 16, 200, 192, 1, 219, 148, 200, 192, 1, 248, - 153, 200, 192, 1, 52, 222, 125, 200, 192, 1, 52, 218, 147, 249, 13, 1, - 65, 249, 13, 1, 202, 177, 65, 249, 13, 1, 144, 249, 13, 1, 202, 177, 144, - 249, 13, 1, 217, 65, 144, 249, 13, 1, 249, 103, 249, 13, 1, 222, 35, 249, - 103, 249, 13, 1, 168, 249, 13, 1, 202, 177, 168, 249, 13, 1, 180, 249, - 13, 1, 217, 65, 180, 249, 13, 1, 193, 187, 249, 13, 1, 202, 177, 193, - 187, 249, 13, 1, 210, 183, 193, 187, 249, 13, 1, 231, 203, 249, 13, 1, - 202, 177, 231, 203, 249, 13, 1, 223, 4, 249, 13, 1, 237, 241, 249, 13, 1, - 166, 249, 13, 1, 202, 177, 166, 249, 13, 1, 172, 249, 13, 1, 202, 177, - 172, 249, 13, 1, 201, 251, 199, 247, 249, 13, 1, 213, 3, 199, 247, 249, - 13, 1, 189, 249, 13, 1, 202, 177, 189, 249, 13, 1, 217, 65, 189, 249, 13, - 1, 169, 249, 13, 1, 202, 177, 169, 249, 13, 1, 214, 54, 249, 13, 1, 171, - 249, 13, 1, 202, 177, 171, 249, 13, 1, 212, 88, 249, 13, 1, 247, 112, - 249, 13, 1, 214, 148, 249, 13, 1, 216, 248, 249, 13, 1, 70, 249, 13, 1, - 69, 249, 13, 3, 198, 77, 249, 13, 18, 3, 73, 249, 13, 18, 3, 210, 183, - 73, 249, 13, 18, 3, 234, 145, 249, 13, 18, 3, 70, 249, 13, 18, 3, 222, - 35, 70, 249, 13, 18, 3, 74, 249, 13, 18, 3, 222, 35, 74, 249, 13, 18, 3, - 69, 249, 13, 18, 3, 126, 39, 202, 177, 189, 249, 13, 119, 3, 214, 56, - 249, 13, 119, 3, 230, 83, 249, 13, 210, 144, 249, 13, 210, 140, 249, 13, - 16, 248, 117, 214, 249, 216, 144, 249, 13, 16, 248, 117, 209, 129, 249, - 13, 16, 248, 117, 222, 152, 249, 13, 16, 248, 117, 210, 144, 219, 159, 1, - 157, 219, 159, 1, 221, 70, 219, 159, 1, 221, 190, 219, 159, 1, 231, 203, - 219, 159, 1, 230, 239, 219, 159, 1, 214, 54, 219, 159, 1, 247, 112, 219, - 159, 1, 246, 209, 219, 159, 1, 223, 4, 219, 159, 1, 212, 88, 219, 159, 1, - 199, 247, 219, 159, 1, 199, 44, 219, 159, 1, 237, 241, 219, 159, 1, 180, - 219, 159, 1, 168, 219, 159, 1, 209, 102, 219, 159, 1, 209, 219, 219, 159, - 1, 233, 68, 219, 159, 1, 232, 179, 219, 159, 1, 249, 103, 219, 159, 1, - 248, 92, 219, 159, 1, 172, 219, 159, 1, 216, 2, 219, 159, 1, 197, 164, - 219, 159, 1, 197, 153, 219, 159, 1, 234, 247, 219, 159, 1, 169, 219, 159, - 1, 166, 219, 159, 1, 171, 219, 159, 1, 144, 219, 159, 1, 229, 79, 219, - 159, 1, 195, 185, 219, 159, 1, 189, 219, 159, 1, 203, 160, 219, 159, 1, - 193, 187, 219, 159, 1, 65, 219, 159, 200, 234, 1, 169, 219, 159, 200, - 234, 1, 166, 219, 159, 18, 3, 252, 154, 219, 159, 18, 3, 70, 219, 159, - 18, 3, 74, 219, 159, 18, 3, 211, 76, 219, 159, 18, 3, 69, 219, 159, 18, - 3, 196, 26, 219, 159, 18, 3, 73, 219, 159, 119, 3, 222, 125, 219, 159, - 119, 3, 218, 147, 219, 159, 119, 3, 170, 219, 159, 119, 3, 215, 47, 219, - 159, 119, 3, 210, 226, 219, 159, 119, 3, 148, 219, 159, 119, 3, 200, 39, - 219, 159, 119, 3, 212, 60, 219, 159, 119, 3, 222, 57, 219, 159, 3, 207, - 134, 219, 159, 3, 212, 128, 219, 159, 208, 145, 199, 242, 219, 159, 208, - 145, 212, 72, 198, 191, 199, 242, 219, 159, 208, 145, 246, 218, 219, 159, - 208, 145, 197, 145, 246, 218, 219, 159, 208, 145, 197, 144, 219, 159, 17, - 191, 77, 219, 159, 17, 108, 219, 159, 17, 109, 219, 159, 17, 139, 219, - 159, 17, 137, 219, 159, 17, 153, 219, 159, 17, 173, 219, 159, 17, 181, - 219, 159, 17, 176, 219, 159, 17, 184, 219, 159, 1, 197, 128, 219, 159, 1, - 197, 116, 219, 159, 1, 237, 146, 211, 110, 243, 40, 17, 191, 77, 211, - 110, 243, 40, 17, 108, 211, 110, 243, 40, 17, 109, 211, 110, 243, 40, 17, - 139, 211, 110, 243, 40, 17, 137, 211, 110, 243, 40, 17, 153, 211, 110, - 243, 40, 17, 173, 211, 110, 243, 40, 17, 181, 211, 110, 243, 40, 17, 176, - 211, 110, 243, 40, 17, 184, 211, 110, 243, 40, 1, 171, 211, 110, 243, 40, - 1, 250, 132, 211, 110, 243, 40, 1, 251, 201, 211, 110, 243, 40, 1, 251, - 71, 211, 110, 243, 40, 1, 251, 156, 211, 110, 243, 40, 1, 220, 101, 211, - 110, 243, 40, 1, 252, 116, 211, 110, 243, 40, 1, 252, 117, 211, 110, 243, - 40, 1, 252, 115, 211, 110, 243, 40, 1, 252, 109, 211, 110, 243, 40, 1, - 219, 122, 211, 110, 243, 40, 1, 223, 40, 211, 110, 243, 40, 1, 223, 171, - 211, 110, 243, 40, 1, 223, 62, 211, 110, 243, 40, 1, 223, 49, 211, 110, - 243, 40, 1, 218, 203, 211, 110, 243, 40, 1, 196, 156, 211, 110, 243, 40, - 1, 196, 154, 211, 110, 243, 40, 1, 196, 79, 211, 110, 243, 40, 1, 196, - 17, 211, 110, 243, 40, 1, 219, 214, 211, 110, 243, 40, 1, 234, 14, 211, - 110, 243, 40, 1, 234, 148, 211, 110, 243, 40, 1, 234, 61, 211, 110, 243, - 40, 1, 233, 240, 211, 110, 243, 40, 1, 219, 19, 211, 110, 243, 40, 1, - 211, 14, 211, 110, 243, 40, 1, 211, 165, 211, 110, 243, 40, 1, 210, 255, - 211, 110, 243, 40, 1, 211, 124, 211, 110, 243, 40, 215, 140, 197, 93, - 211, 110, 243, 40, 231, 198, 197, 94, 211, 110, 243, 40, 215, 134, 197, - 94, 211, 110, 243, 40, 207, 61, 211, 110, 243, 40, 209, 217, 211, 110, - 243, 40, 251, 192, 211, 110, 243, 40, 208, 145, 215, 130, 211, 110, 243, - 40, 208, 145, 54, 215, 130, 42, 2, 1, 206, 108, 195, 150, 42, 2, 1, 218, - 244, 237, 101, 42, 2, 1, 214, 201, 74, 42, 2, 1, 193, 76, 233, 236, 42, - 2, 1, 199, 195, 199, 140, 42, 2, 1, 198, 216, 199, 140, 42, 2, 1, 199, - 195, 229, 240, 57, 42, 2, 1, 199, 195, 192, 95, 42, 2, 1, 196, 104, 196, - 124, 100, 215, 141, 6, 1, 251, 81, 100, 215, 141, 6, 1, 249, 51, 100, - 215, 141, 6, 1, 231, 173, 100, 215, 141, 6, 1, 236, 105, 100, 215, 141, - 6, 1, 234, 61, 100, 215, 141, 6, 1, 195, 46, 100, 215, 141, 6, 1, 191, - 80, 100, 215, 141, 6, 1, 199, 188, 100, 215, 141, 6, 1, 223, 134, 100, - 215, 141, 6, 1, 222, 61, 100, 215, 141, 6, 1, 219, 239, 100, 215, 141, 6, - 1, 217, 70, 100, 215, 141, 6, 1, 214, 202, 100, 215, 141, 6, 1, 211, 93, - 100, 215, 141, 6, 1, 210, 121, 100, 215, 141, 6, 1, 191, 67, 100, 215, - 141, 6, 1, 207, 158, 100, 215, 141, 6, 1, 205, 137, 100, 215, 141, 6, 1, - 199, 174, 100, 215, 141, 6, 1, 196, 109, 100, 215, 141, 6, 1, 209, 211, - 100, 215, 141, 6, 1, 221, 176, 100, 215, 141, 6, 1, 231, 45, 100, 215, - 141, 6, 1, 208, 74, 100, 215, 141, 6, 1, 203, 64, 100, 215, 141, 6, 1, - 243, 33, 100, 215, 141, 6, 1, 247, 80, 100, 215, 141, 6, 1, 222, 207, - 100, 215, 141, 6, 1, 242, 226, 100, 215, 141, 6, 1, 246, 193, 100, 215, - 141, 6, 1, 192, 218, 100, 215, 141, 6, 1, 222, 222, 100, 215, 141, 6, 1, - 230, 54, 100, 215, 141, 6, 1, 229, 213, 100, 215, 141, 6, 1, 229, 113, - 100, 215, 141, 6, 1, 193, 123, 100, 215, 141, 6, 1, 229, 242, 100, 215, - 141, 6, 1, 228, 235, 100, 215, 141, 6, 1, 232, 238, 100, 215, 141, 6, 1, - 192, 14, 100, 215, 141, 6, 1, 234, 80, 100, 215, 141, 6, 1, 152, 231, - 173, 100, 215, 141, 6, 1, 251, 178, 100, 215, 141, 6, 1, 251, 218, 100, - 215, 141, 6, 1, 229, 240, 57, 100, 215, 141, 6, 1, 220, 92, 57, 200, 192, - 208, 145, 248, 117, 200, 161, 200, 192, 208, 145, 248, 117, 210, 145, - 200, 192, 208, 145, 248, 117, 208, 132, 200, 192, 208, 145, 248, 117, - 247, 97, 200, 192, 208, 145, 248, 117, 219, 149, 205, 116, 200, 192, 208, - 145, 248, 117, 222, 115, 205, 116, 200, 192, 208, 145, 248, 117, 237, - 242, 205, 116, 200, 192, 208, 145, 248, 117, 249, 104, 205, 116, 195, - 147, 163, 222, 31, 195, 147, 163, 203, 125, 195, 147, 163, 208, 218, 195, - 147, 3, 213, 173, 195, 147, 3, 192, 117, 216, 64, 200, 152, 195, 147, - 163, 192, 117, 251, 197, 223, 121, 200, 152, 195, 147, 163, 192, 117, - 223, 121, 200, 152, 195, 147, 163, 192, 117, 222, 19, 223, 121, 200, 152, - 195, 147, 163, 247, 74, 60, 195, 147, 163, 192, 117, 222, 19, 223, 121, - 200, 153, 205, 83, 195, 147, 163, 54, 200, 152, 195, 147, 163, 197, 221, - 200, 152, 195, 147, 163, 222, 19, 251, 22, 195, 147, 163, 75, 60, 195, - 147, 163, 103, 183, 60, 195, 147, 163, 115, 183, 60, 195, 147, 163, 206, - 191, 222, 30, 223, 121, 200, 152, 195, 147, 163, 250, 129, 223, 121, 200, - 152, 195, 147, 3, 195, 33, 200, 152, 195, 147, 3, 195, 33, 196, 150, 195, - 147, 3, 207, 13, 195, 33, 196, 150, 195, 147, 3, 195, 33, 251, 22, 195, - 147, 3, 207, 13, 195, 33, 251, 22, 195, 147, 3, 195, 33, 196, 151, 4, - 199, 210, 195, 147, 3, 195, 33, 251, 23, 4, 199, 210, 195, 147, 3, 251, - 21, 251, 37, 195, 147, 3, 251, 21, 249, 70, 195, 147, 3, 251, 21, 195, - 175, 195, 147, 3, 251, 21, 195, 176, 4, 199, 210, 195, 147, 3, 198, 121, - 195, 147, 3, 229, 148, 177, 251, 20, 195, 147, 3, 177, 251, 20, 195, 147, - 3, 206, 65, 177, 251, 20, 195, 147, 3, 251, 21, 196, 158, 215, 121, 195, - 147, 3, 250, 216, 195, 147, 3, 206, 117, 250, 216, 195, 147, 163, 247, - 74, 56, 195, 147, 3, 222, 210, 195, 147, 3, 196, 71, 195, 147, 3, 250, - 127, 195, 147, 163, 206, 184, 56, 195, 147, 163, 54, 206, 184, 56, 195, - 147, 3, 54, 251, 21, 251, 37, 8, 1, 2, 6, 65, 8, 1, 2, 6, 251, 229, 8, 2, - 1, 152, 251, 229, 8, 1, 2, 6, 249, 32, 250, 70, 8, 1, 2, 6, 247, 145, 8, - 1, 2, 6, 238, 80, 8, 1, 2, 6, 233, 206, 8, 1, 2, 6, 73, 8, 2, 1, 152, - 211, 66, 73, 8, 2, 1, 152, 70, 8, 1, 2, 6, 223, 7, 8, 1, 2, 6, 222, 125, - 8, 1, 2, 6, 220, 119, 4, 105, 8, 1, 2, 6, 218, 147, 8, 1, 2, 6, 207, 13, - 215, 47, 8, 1, 2, 6, 74, 8, 1, 2, 6, 211, 66, 74, 8, 2, 1, 202, 201, 74, - 8, 2, 1, 202, 201, 211, 66, 74, 8, 2, 1, 202, 201, 186, 4, 105, 8, 2, 1, - 152, 211, 139, 8, 1, 2, 6, 211, 9, 8, 2, 1, 198, 49, 134, 74, 8, 2, 1, - 248, 29, 134, 74, 8, 1, 2, 6, 210, 226, 8, 1, 2, 6, 207, 13, 148, 8, 1, - 2, 6, 152, 148, 8, 1, 2, 6, 200, 39, 8, 1, 2, 6, 69, 8, 2, 1, 202, 201, - 69, 8, 2, 1, 202, 201, 236, 251, 69, 8, 2, 1, 202, 201, 152, 218, 147, 8, - 1, 2, 6, 196, 8, 8, 1, 2, 6, 193, 221, 8, 1, 2, 6, 191, 166, 8, 1, 2, 6, - 233, 137, 8, 1, 195, 17, 219, 240, 201, 211, 8, 1, 251, 178, 35, 1, 2, 6, - 231, 174, 35, 1, 2, 6, 220, 7, 35, 1, 2, 6, 209, 176, 35, 1, 2, 6, 206, - 254, 35, 1, 2, 6, 208, 169, 42, 1, 2, 6, 234, 97, 59, 1, 6, 65, 59, 1, 6, - 251, 229, 59, 1, 6, 250, 70, 59, 1, 6, 249, 32, 250, 70, 59, 1, 6, 238, - 80, 59, 1, 6, 73, 59, 1, 6, 207, 13, 73, 59, 1, 6, 232, 14, 59, 1, 6, - 230, 83, 59, 1, 6, 70, 59, 1, 6, 223, 7, 59, 1, 6, 222, 125, 59, 1, 6, - 170, 59, 1, 6, 218, 147, 59, 1, 6, 215, 47, 59, 1, 6, 207, 13, 215, 47, - 59, 1, 6, 74, 59, 1, 6, 211, 9, 59, 1, 6, 210, 226, 59, 1, 6, 148, 59, 1, - 6, 200, 39, 59, 1, 6, 69, 59, 1, 6, 193, 221, 59, 1, 2, 65, 59, 1, 2, - 152, 65, 59, 1, 2, 251, 109, 59, 1, 2, 152, 251, 229, 59, 1, 2, 250, 70, - 59, 1, 2, 238, 80, 59, 1, 2, 73, 59, 1, 2, 205, 81, 59, 1, 2, 211, 66, - 73, 59, 1, 2, 152, 211, 66, 73, 59, 1, 2, 232, 14, 59, 1, 2, 152, 70, 59, - 1, 2, 222, 125, 59, 1, 2, 218, 147, 59, 1, 2, 234, 46, 59, 1, 2, 74, 59, - 1, 2, 211, 66, 74, 59, 1, 2, 198, 49, 134, 74, 59, 1, 2, 248, 29, 134, - 74, 59, 1, 2, 210, 226, 59, 1, 2, 200, 39, 59, 1, 2, 69, 59, 1, 2, 202, - 201, 69, 59, 1, 2, 152, 218, 147, 59, 1, 2, 196, 8, 59, 1, 2, 251, 178, - 59, 1, 2, 248, 162, 59, 1, 2, 35, 231, 174, 59, 1, 2, 237, 61, 59, 1, 2, - 35, 209, 202, 59, 1, 2, 243, 47, 8, 200, 225, 2, 1, 70, 8, 200, 225, 2, - 1, 148, 8, 200, 225, 2, 1, 69, 8, 200, 225, 2, 1, 196, 8, 35, 200, 225, - 2, 1, 248, 162, 35, 200, 225, 2, 1, 231, 174, 35, 200, 225, 2, 1, 206, - 254, 35, 200, 225, 2, 1, 209, 202, 35, 200, 225, 2, 1, 243, 47, 8, 2, 1, - 196, 148, 8, 2, 1, 78, 4, 82, 198, 147, 8, 2, 1, 238, 81, 4, 82, 198, - 147, 8, 2, 1, 233, 135, 4, 82, 198, 147, 8, 2, 1, 218, 148, 4, 82, 198, - 147, 8, 2, 1, 215, 48, 4, 82, 198, 147, 8, 2, 1, 210, 227, 4, 82, 198, - 147, 8, 2, 1, 207, 217, 4, 82, 198, 147, 8, 2, 1, 207, 217, 4, 232, 193, - 24, 82, 198, 147, 8, 2, 1, 206, 4, 4, 82, 198, 147, 8, 2, 1, 200, 40, 4, - 82, 198, 147, 8, 2, 1, 191, 167, 4, 82, 198, 147, 8, 2, 1, 152, 232, 14, - 59, 1, 42, 234, 61, 8, 2, 1, 223, 87, 232, 14, 8, 2, 1, 199, 47, 4, 201, - 27, 8, 2, 6, 1, 228, 44, 4, 105, 8, 2, 1, 223, 56, 4, 105, 8, 2, 1, 210, - 227, 4, 105, 8, 2, 6, 1, 126, 4, 105, 8, 2, 1, 196, 67, 4, 105, 8, 2, 1, - 78, 4, 210, 182, 106, 8, 2, 1, 238, 81, 4, 210, 182, 106, 8, 2, 1, 233, - 135, 4, 210, 182, 106, 8, 2, 1, 232, 15, 4, 210, 182, 106, 8, 2, 1, 222, - 126, 4, 210, 182, 106, 8, 2, 1, 220, 119, 4, 210, 182, 106, 8, 2, 1, 218, - 148, 4, 210, 182, 106, 8, 2, 1, 215, 48, 4, 210, 182, 106, 8, 2, 1, 210, - 227, 4, 210, 182, 106, 8, 2, 1, 207, 217, 4, 210, 182, 106, 8, 2, 1, 206, - 4, 4, 210, 182, 106, 8, 2, 1, 233, 227, 4, 210, 182, 106, 8, 2, 1, 196, - 9, 4, 210, 182, 106, 8, 2, 1, 192, 236, 4, 210, 182, 106, 8, 2, 1, 191, - 167, 4, 210, 182, 106, 8, 2, 1, 41, 4, 207, 19, 106, 8, 2, 1, 251, 110, - 4, 207, 19, 106, 8, 2, 1, 238, 81, 4, 228, 219, 24, 199, 210, 8, 2, 1, - 234, 227, 4, 207, 19, 106, 8, 2, 1, 211, 66, 234, 227, 4, 207, 19, 106, - 8, 2, 1, 207, 13, 211, 66, 234, 227, 4, 207, 19, 106, 8, 2, 1, 205, 82, - 4, 207, 19, 106, 8, 2, 1, 228, 44, 4, 207, 19, 106, 8, 2, 1, 211, 66, - 186, 4, 207, 19, 106, 8, 2, 1, 233, 227, 4, 207, 19, 106, 8, 2, 1, 126, - 4, 207, 19, 106, 8, 2, 1, 233, 138, 4, 207, 19, 106, 59, 1, 2, 152, 251, - 109, 59, 1, 2, 247, 145, 59, 1, 2, 247, 146, 4, 238, 128, 59, 1, 2, 233, - 206, 59, 1, 2, 207, 13, 211, 66, 73, 59, 1, 2, 233, 134, 59, 1, 2, 236, - 95, 223, 8, 4, 105, 59, 1, 2, 27, 232, 14, 59, 1, 2, 152, 230, 83, 59, 1, - 2, 228, 44, 4, 105, 59, 1, 2, 223, 55, 59, 1, 2, 6, 70, 59, 1, 2, 6, 228, - 44, 4, 105, 59, 1, 2, 223, 8, 4, 238, 165, 59, 1, 2, 220, 119, 4, 207, - 19, 106, 59, 1, 2, 220, 119, 4, 210, 182, 106, 59, 1, 2, 6, 170, 59, 1, - 2, 218, 148, 4, 106, 59, 1, 2, 152, 218, 148, 4, 177, 219, 188, 59, 1, 2, - 215, 48, 4, 45, 106, 59, 1, 2, 215, 48, 4, 207, 19, 106, 59, 1, 2, 6, - 215, 47, 59, 1, 2, 249, 32, 74, 59, 1, 2, 209, 202, 59, 1, 2, 206, 4, 4, - 106, 59, 1, 2, 233, 226, 59, 1, 2, 200, 40, 4, 210, 182, 106, 59, 1, 2, - 126, 164, 59, 1, 2, 196, 66, 59, 1, 2, 6, 69, 59, 1, 2, 196, 9, 4, 106, - 59, 1, 2, 152, 196, 8, 59, 1, 2, 191, 166, 59, 1, 2, 191, 167, 4, 207, - 19, 106, 59, 1, 2, 191, 167, 4, 238, 128, 59, 1, 2, 233, 137, 59, 1, 2, - 199, 10, 33, 235, 94, 230, 177, 252, 8, 33, 235, 94, 251, 251, 252, 8, - 33, 202, 54, 60, 33, 200, 159, 77, 33, 217, 124, 33, 230, 174, 33, 217, - 122, 33, 251, 248, 33, 230, 175, 33, 251, 249, 33, 8, 2, 1, 207, 217, 60, - 33, 247, 243, 33, 217, 123, 33, 54, 242, 210, 56, 33, 211, 127, 56, 33, - 191, 21, 60, 33, 223, 41, 60, 33, 196, 59, 56, 33, 196, 42, 56, 33, 8, 2, - 1, 232, 163, 211, 66, 41, 56, 33, 8, 2, 1, 251, 229, 33, 8, 2, 1, 251, - 18, 33, 8, 2, 1, 250, 96, 33, 8, 2, 1, 247, 146, 246, 243, 33, 8, 2, 1, - 223, 87, 238, 80, 33, 8, 2, 1, 233, 206, 33, 8, 2, 1, 232, 14, 33, 8, 1, - 2, 6, 232, 14, 33, 8, 2, 1, 222, 125, 33, 8, 2, 1, 170, 33, 8, 1, 2, 6, - 170, 33, 8, 1, 2, 6, 218, 147, 33, 8, 2, 1, 215, 47, 33, 8, 1, 2, 6, 215, - 47, 33, 8, 1, 2, 6, 148, 33, 8, 2, 1, 207, 217, 206, 111, 33, 8, 2, 1, - 206, 3, 33, 8, 2, 1, 177, 206, 3, 33, 8, 2, 1, 191, 166, 33, 8, 2, 1, - 251, 109, 33, 8, 2, 1, 250, 70, 33, 8, 2, 1, 248, 162, 33, 8, 2, 1, 205, - 81, 33, 8, 2, 1, 233, 134, 33, 8, 2, 1, 220, 119, 4, 54, 82, 198, 147, - 33, 8, 2, 1, 186, 4, 155, 246, 231, 105, 33, 8, 2, 1, 210, 226, 33, 8, 2, - 1, 233, 226, 33, 8, 2, 1, 126, 4, 155, 246, 231, 105, 33, 8, 2, 1, 193, - 221, 33, 8, 2, 1, 41, 4, 236, 253, 33, 8, 2, 1, 186, 4, 236, 253, 33, 8, - 2, 1, 126, 4, 236, 253, 33, 132, 199, 224, 56, 33, 222, 10, 95, 187, 33, - 222, 10, 95, 219, 200, 33, 75, 95, 219, 200, 33, 193, 76, 223, 65, 247, - 237, 60, 33, 75, 248, 183, 219, 200, 33, 237, 70, 77, 33, 54, 223, 65, - 247, 245, 60, 33, 251, 114, 234, 3, 118, 60, 33, 45, 250, 186, 56, 33, - 50, 250, 186, 24, 143, 250, 186, 60, 8, 6, 1, 41, 4, 206, 184, 60, 8, 2, - 1, 41, 4, 206, 184, 60, 8, 6, 1, 78, 4, 75, 56, 8, 2, 1, 78, 4, 75, 56, - 8, 6, 1, 78, 4, 75, 60, 8, 2, 1, 78, 4, 75, 60, 8, 6, 1, 78, 4, 219, 89, - 60, 8, 2, 1, 78, 4, 219, 89, 60, 8, 6, 1, 247, 146, 4, 246, 244, 24, 251, - 250, 8, 2, 1, 247, 146, 4, 246, 244, 24, 251, 250, 8, 6, 1, 238, 81, 4, - 75, 56, 8, 2, 1, 238, 81, 4, 75, 56, 8, 6, 1, 238, 81, 4, 75, 60, 8, 2, - 1, 238, 81, 4, 75, 60, 8, 6, 1, 238, 81, 4, 219, 89, 60, 8, 2, 1, 238, - 81, 4, 219, 89, 60, 8, 6, 1, 238, 81, 4, 246, 243, 8, 2, 1, 238, 81, 4, - 246, 243, 8, 6, 1, 238, 81, 4, 242, 210, 60, 8, 2, 1, 238, 81, 4, 242, - 210, 60, 8, 6, 1, 234, 227, 4, 217, 126, 24, 230, 176, 8, 2, 1, 234, 227, - 4, 217, 126, 24, 230, 176, 8, 6, 1, 234, 227, 4, 217, 126, 24, 251, 250, - 8, 2, 1, 234, 227, 4, 217, 126, 24, 251, 250, 8, 6, 1, 234, 227, 4, 242, - 210, 60, 8, 2, 1, 234, 227, 4, 242, 210, 60, 8, 6, 1, 234, 227, 4, 198, - 148, 60, 8, 2, 1, 234, 227, 4, 198, 148, 60, 8, 6, 1, 234, 227, 4, 246, - 244, 24, 247, 244, 8, 2, 1, 234, 227, 4, 246, 244, 24, 247, 244, 8, 6, 1, - 233, 135, 4, 75, 56, 8, 2, 1, 233, 135, 4, 75, 56, 8, 6, 1, 232, 15, 4, - 217, 125, 8, 2, 1, 232, 15, 4, 217, 125, 8, 6, 1, 230, 84, 4, 75, 56, 8, - 2, 1, 230, 84, 4, 75, 56, 8, 6, 1, 230, 84, 4, 75, 60, 8, 2, 1, 230, 84, - 4, 75, 60, 8, 6, 1, 230, 84, 4, 236, 253, 8, 2, 1, 230, 84, 4, 236, 253, - 8, 6, 1, 230, 84, 4, 246, 243, 8, 2, 1, 230, 84, 4, 246, 243, 8, 6, 1, - 230, 84, 4, 247, 245, 60, 8, 2, 1, 230, 84, 4, 247, 245, 60, 8, 6, 1, - 228, 44, 4, 198, 148, 60, 8, 2, 1, 228, 44, 4, 198, 148, 60, 8, 6, 1, - 228, 44, 4, 236, 254, 24, 251, 250, 8, 2, 1, 228, 44, 4, 236, 254, 24, - 251, 250, 8, 6, 1, 222, 126, 4, 251, 250, 8, 2, 1, 222, 126, 4, 251, 250, - 8, 6, 1, 222, 126, 4, 75, 60, 8, 2, 1, 222, 126, 4, 75, 60, 8, 6, 1, 222, - 126, 4, 219, 89, 60, 8, 2, 1, 222, 126, 4, 219, 89, 60, 8, 6, 1, 220, - 119, 4, 75, 60, 8, 2, 1, 220, 119, 4, 75, 60, 8, 6, 1, 220, 119, 4, 75, - 248, 183, 24, 217, 125, 8, 2, 1, 220, 119, 4, 75, 248, 183, 24, 217, 125, - 8, 6, 1, 220, 119, 4, 219, 89, 60, 8, 2, 1, 220, 119, 4, 219, 89, 60, 8, - 6, 1, 220, 119, 4, 242, 210, 60, 8, 2, 1, 220, 119, 4, 242, 210, 60, 8, - 6, 1, 218, 148, 4, 251, 250, 8, 2, 1, 218, 148, 4, 251, 250, 8, 6, 1, - 218, 148, 4, 75, 56, 8, 2, 1, 218, 148, 4, 75, 56, 8, 6, 1, 218, 148, 4, - 75, 60, 8, 2, 1, 218, 148, 4, 75, 60, 8, 6, 1, 215, 48, 4, 75, 56, 8, 2, - 1, 215, 48, 4, 75, 56, 8, 6, 1, 215, 48, 4, 75, 60, 8, 2, 1, 215, 48, 4, - 75, 60, 8, 6, 1, 215, 48, 4, 219, 89, 60, 8, 2, 1, 215, 48, 4, 219, 89, - 60, 8, 6, 1, 215, 48, 4, 242, 210, 60, 8, 2, 1, 215, 48, 4, 242, 210, 60, - 8, 6, 1, 186, 4, 198, 148, 24, 251, 250, 8, 2, 1, 186, 4, 198, 148, 24, - 251, 250, 8, 6, 1, 186, 4, 198, 148, 24, 236, 253, 8, 2, 1, 186, 4, 198, - 148, 24, 236, 253, 8, 6, 1, 186, 4, 217, 126, 24, 230, 176, 8, 2, 1, 186, - 4, 217, 126, 24, 230, 176, 8, 6, 1, 186, 4, 217, 126, 24, 251, 250, 8, 2, - 1, 186, 4, 217, 126, 24, 251, 250, 8, 6, 1, 210, 227, 4, 251, 250, 8, 2, - 1, 210, 227, 4, 251, 250, 8, 6, 1, 210, 227, 4, 75, 56, 8, 2, 1, 210, - 227, 4, 75, 56, 8, 6, 1, 207, 217, 4, 75, 56, 8, 2, 1, 207, 217, 4, 75, - 56, 8, 6, 1, 207, 217, 4, 75, 60, 8, 2, 1, 207, 217, 4, 75, 60, 8, 6, 1, - 207, 217, 4, 75, 248, 183, 24, 217, 125, 8, 2, 1, 207, 217, 4, 75, 248, - 183, 24, 217, 125, 8, 6, 1, 207, 217, 4, 219, 89, 60, 8, 2, 1, 207, 217, - 4, 219, 89, 60, 8, 6, 1, 206, 4, 4, 75, 56, 8, 2, 1, 206, 4, 4, 75, 56, - 8, 6, 1, 206, 4, 4, 75, 60, 8, 2, 1, 206, 4, 4, 75, 60, 8, 6, 1, 206, 4, - 4, 251, 251, 24, 75, 56, 8, 2, 1, 206, 4, 4, 251, 251, 24, 75, 56, 8, 6, - 1, 206, 4, 4, 247, 45, 24, 75, 56, 8, 2, 1, 206, 4, 4, 247, 45, 24, 75, - 56, 8, 6, 1, 206, 4, 4, 75, 248, 183, 24, 75, 56, 8, 2, 1, 206, 4, 4, 75, - 248, 183, 24, 75, 56, 8, 6, 1, 200, 40, 4, 75, 56, 8, 2, 1, 200, 40, 4, - 75, 56, 8, 6, 1, 200, 40, 4, 75, 60, 8, 2, 1, 200, 40, 4, 75, 60, 8, 6, - 1, 200, 40, 4, 219, 89, 60, 8, 2, 1, 200, 40, 4, 219, 89, 60, 8, 6, 1, - 200, 40, 4, 242, 210, 60, 8, 2, 1, 200, 40, 4, 242, 210, 60, 8, 6, 1, - 126, 4, 236, 254, 60, 8, 2, 1, 126, 4, 236, 254, 60, 8, 6, 1, 126, 4, - 198, 148, 60, 8, 2, 1, 126, 4, 198, 148, 60, 8, 6, 1, 126, 4, 242, 210, - 60, 8, 2, 1, 126, 4, 242, 210, 60, 8, 6, 1, 126, 4, 198, 148, 24, 251, - 250, 8, 2, 1, 126, 4, 198, 148, 24, 251, 250, 8, 6, 1, 126, 4, 217, 126, - 24, 236, 253, 8, 2, 1, 126, 4, 217, 126, 24, 236, 253, 8, 6, 1, 196, 9, - 4, 198, 147, 8, 2, 1, 196, 9, 4, 198, 147, 8, 6, 1, 196, 9, 4, 75, 60, 8, - 2, 1, 196, 9, 4, 75, 60, 8, 6, 1, 193, 222, 4, 230, 176, 8, 2, 1, 193, - 222, 4, 230, 176, 8, 6, 1, 193, 222, 4, 251, 250, 8, 2, 1, 193, 222, 4, - 251, 250, 8, 6, 1, 193, 222, 4, 236, 253, 8, 2, 1, 193, 222, 4, 236, 253, - 8, 6, 1, 193, 222, 4, 75, 56, 8, 2, 1, 193, 222, 4, 75, 56, 8, 6, 1, 193, - 222, 4, 75, 60, 8, 2, 1, 193, 222, 4, 75, 60, 8, 6, 1, 192, 236, 4, 75, - 56, 8, 2, 1, 192, 236, 4, 75, 56, 8, 6, 1, 192, 236, 4, 236, 253, 8, 2, - 1, 192, 236, 4, 236, 253, 8, 6, 1, 192, 160, 4, 75, 56, 8, 2, 1, 192, - 160, 4, 75, 56, 8, 6, 1, 191, 167, 4, 242, 209, 8, 2, 1, 191, 167, 4, - 242, 209, 8, 6, 1, 191, 167, 4, 75, 60, 8, 2, 1, 191, 167, 4, 75, 60, 8, - 6, 1, 191, 167, 4, 219, 89, 60, 8, 2, 1, 191, 167, 4, 219, 89, 60, 8, 2, - 1, 230, 84, 4, 219, 89, 60, 8, 2, 1, 200, 40, 4, 236, 253, 8, 2, 1, 193, - 222, 4, 206, 184, 56, 8, 2, 1, 192, 160, 4, 206, 184, 56, 8, 2, 1, 41, 4, - 50, 134, 206, 183, 8, 2, 1, 177, 206, 4, 4, 75, 56, 8, 2, 1, 177, 206, 4, - 4, 236, 250, 105, 8, 2, 1, 177, 206, 4, 4, 136, 105, 8, 6, 1, 203, 122, - 206, 3, 8, 2, 1, 237, 61, 8, 6, 1, 41, 4, 75, 60, 8, 2, 1, 41, 4, 75, 60, - 8, 6, 1, 41, 4, 228, 219, 56, 8, 2, 1, 41, 4, 228, 219, 56, 8, 6, 1, 41, - 4, 242, 210, 24, 251, 250, 8, 2, 1, 41, 4, 242, 210, 24, 251, 250, 8, 6, - 1, 41, 4, 242, 210, 24, 230, 176, 8, 2, 1, 41, 4, 242, 210, 24, 230, 176, - 8, 6, 1, 41, 4, 242, 210, 24, 228, 219, 56, 8, 2, 1, 41, 4, 242, 210, 24, - 228, 219, 56, 8, 6, 1, 41, 4, 242, 210, 24, 198, 147, 8, 2, 1, 41, 4, - 242, 210, 24, 198, 147, 8, 6, 1, 41, 4, 242, 210, 24, 75, 60, 8, 2, 1, - 41, 4, 242, 210, 24, 75, 60, 8, 6, 1, 41, 4, 247, 245, 24, 251, 250, 8, - 2, 1, 41, 4, 247, 245, 24, 251, 250, 8, 6, 1, 41, 4, 247, 245, 24, 230, - 176, 8, 2, 1, 41, 4, 247, 245, 24, 230, 176, 8, 6, 1, 41, 4, 247, 245, - 24, 228, 219, 56, 8, 2, 1, 41, 4, 247, 245, 24, 228, 219, 56, 8, 6, 1, - 41, 4, 247, 245, 24, 198, 147, 8, 2, 1, 41, 4, 247, 245, 24, 198, 147, 8, - 6, 1, 41, 4, 247, 245, 24, 75, 60, 8, 2, 1, 41, 4, 247, 245, 24, 75, 60, - 8, 6, 1, 234, 227, 4, 75, 60, 8, 2, 1, 234, 227, 4, 75, 60, 8, 6, 1, 234, - 227, 4, 228, 219, 56, 8, 2, 1, 234, 227, 4, 228, 219, 56, 8, 6, 1, 234, - 227, 4, 198, 147, 8, 2, 1, 234, 227, 4, 198, 147, 8, 6, 1, 234, 227, 4, - 242, 210, 24, 251, 250, 8, 2, 1, 234, 227, 4, 242, 210, 24, 251, 250, 8, - 6, 1, 234, 227, 4, 242, 210, 24, 230, 176, 8, 2, 1, 234, 227, 4, 242, - 210, 24, 230, 176, 8, 6, 1, 234, 227, 4, 242, 210, 24, 228, 219, 56, 8, - 2, 1, 234, 227, 4, 242, 210, 24, 228, 219, 56, 8, 6, 1, 234, 227, 4, 242, - 210, 24, 198, 147, 8, 2, 1, 234, 227, 4, 242, 210, 24, 198, 147, 8, 6, 1, - 234, 227, 4, 242, 210, 24, 75, 60, 8, 2, 1, 234, 227, 4, 242, 210, 24, - 75, 60, 8, 6, 1, 228, 44, 4, 228, 219, 56, 8, 2, 1, 228, 44, 4, 228, 219, - 56, 8, 6, 1, 228, 44, 4, 75, 60, 8, 2, 1, 228, 44, 4, 75, 60, 8, 6, 1, - 186, 4, 75, 60, 8, 2, 1, 186, 4, 75, 60, 8, 6, 1, 186, 4, 228, 219, 56, - 8, 2, 1, 186, 4, 228, 219, 56, 8, 6, 1, 186, 4, 242, 210, 24, 251, 250, - 8, 2, 1, 186, 4, 242, 210, 24, 251, 250, 8, 6, 1, 186, 4, 242, 210, 24, - 230, 176, 8, 2, 1, 186, 4, 242, 210, 24, 230, 176, 8, 6, 1, 186, 4, 242, - 210, 24, 228, 219, 56, 8, 2, 1, 186, 4, 242, 210, 24, 228, 219, 56, 8, 6, - 1, 186, 4, 242, 210, 24, 198, 147, 8, 2, 1, 186, 4, 242, 210, 24, 198, - 147, 8, 6, 1, 186, 4, 242, 210, 24, 75, 60, 8, 2, 1, 186, 4, 242, 210, - 24, 75, 60, 8, 6, 1, 186, 4, 228, 157, 24, 251, 250, 8, 2, 1, 186, 4, - 228, 157, 24, 251, 250, 8, 6, 1, 186, 4, 228, 157, 24, 230, 176, 8, 2, 1, - 186, 4, 228, 157, 24, 230, 176, 8, 6, 1, 186, 4, 228, 157, 24, 228, 219, - 56, 8, 2, 1, 186, 4, 228, 157, 24, 228, 219, 56, 8, 6, 1, 186, 4, 228, - 157, 24, 198, 147, 8, 2, 1, 186, 4, 228, 157, 24, 198, 147, 8, 6, 1, 186, - 4, 228, 157, 24, 75, 60, 8, 2, 1, 186, 4, 228, 157, 24, 75, 60, 8, 6, 1, - 126, 4, 75, 60, 8, 2, 1, 126, 4, 75, 60, 8, 6, 1, 126, 4, 228, 219, 56, - 8, 2, 1, 126, 4, 228, 219, 56, 8, 6, 1, 126, 4, 228, 157, 24, 251, 250, - 8, 2, 1, 126, 4, 228, 157, 24, 251, 250, 8, 6, 1, 126, 4, 228, 157, 24, - 230, 176, 8, 2, 1, 126, 4, 228, 157, 24, 230, 176, 8, 6, 1, 126, 4, 228, - 157, 24, 228, 219, 56, 8, 2, 1, 126, 4, 228, 157, 24, 228, 219, 56, 8, 6, - 1, 126, 4, 228, 157, 24, 198, 147, 8, 2, 1, 126, 4, 228, 157, 24, 198, - 147, 8, 6, 1, 126, 4, 228, 157, 24, 75, 60, 8, 2, 1, 126, 4, 228, 157, - 24, 75, 60, 8, 6, 1, 192, 160, 4, 230, 176, 8, 2, 1, 192, 160, 4, 230, - 176, 8, 6, 1, 192, 160, 4, 75, 60, 8, 2, 1, 192, 160, 4, 75, 60, 8, 6, 1, - 192, 160, 4, 228, 219, 56, 8, 2, 1, 192, 160, 4, 228, 219, 56, 8, 6, 1, - 192, 160, 4, 198, 147, 8, 2, 1, 192, 160, 4, 198, 147, 8, 6, 1, 216, 65, - 219, 50, 8, 2, 1, 216, 65, 219, 50, 8, 6, 1, 216, 65, 196, 8, 8, 2, 1, - 216, 65, 196, 8, 8, 6, 1, 192, 160, 4, 218, 236, 8, 2, 1, 192, 160, 4, - 218, 236, 35, 2, 1, 251, 110, 4, 208, 162, 35, 2, 1, 251, 110, 4, 237, - 167, 35, 2, 1, 251, 110, 4, 208, 163, 24, 195, 166, 35, 2, 1, 251, 110, - 4, 237, 168, 24, 195, 166, 35, 2, 1, 251, 110, 4, 208, 163, 24, 210, 233, - 35, 2, 1, 251, 110, 4, 237, 168, 24, 210, 233, 35, 2, 1, 251, 110, 4, - 208, 163, 24, 209, 251, 35, 2, 1, 251, 110, 4, 237, 168, 24, 209, 251, - 35, 6, 1, 251, 110, 4, 208, 162, 35, 6, 1, 251, 110, 4, 237, 167, 35, 6, - 1, 251, 110, 4, 208, 163, 24, 195, 166, 35, 6, 1, 251, 110, 4, 237, 168, - 24, 195, 166, 35, 6, 1, 251, 110, 4, 208, 163, 24, 210, 233, 35, 6, 1, - 251, 110, 4, 237, 168, 24, 210, 233, 35, 6, 1, 251, 110, 4, 208, 163, 24, - 209, 251, 35, 6, 1, 251, 110, 4, 237, 168, 24, 209, 251, 35, 2, 1, 234, - 6, 4, 208, 162, 35, 2, 1, 234, 6, 4, 237, 167, 35, 2, 1, 234, 6, 4, 208, - 163, 24, 195, 166, 35, 2, 1, 234, 6, 4, 237, 168, 24, 195, 166, 35, 2, 1, - 234, 6, 4, 208, 163, 24, 210, 233, 35, 2, 1, 234, 6, 4, 237, 168, 24, - 210, 233, 35, 6, 1, 234, 6, 4, 208, 162, 35, 6, 1, 234, 6, 4, 237, 167, - 35, 6, 1, 234, 6, 4, 208, 163, 24, 195, 166, 35, 6, 1, 234, 6, 4, 237, - 168, 24, 195, 166, 35, 6, 1, 234, 6, 4, 208, 163, 24, 210, 233, 35, 6, 1, - 234, 6, 4, 237, 168, 24, 210, 233, 35, 2, 1, 233, 212, 4, 208, 162, 35, - 2, 1, 233, 212, 4, 237, 167, 35, 2, 1, 233, 212, 4, 208, 163, 24, 195, - 166, 35, 2, 1, 233, 212, 4, 237, 168, 24, 195, 166, 35, 2, 1, 233, 212, - 4, 208, 163, 24, 210, 233, 35, 2, 1, 233, 212, 4, 237, 168, 24, 210, 233, - 35, 2, 1, 233, 212, 4, 208, 163, 24, 209, 251, 35, 2, 1, 233, 212, 4, - 237, 168, 24, 209, 251, 35, 6, 1, 233, 212, 4, 208, 162, 35, 6, 1, 233, - 212, 4, 237, 167, 35, 6, 1, 233, 212, 4, 208, 163, 24, 195, 166, 35, 6, - 1, 233, 212, 4, 237, 168, 24, 195, 166, 35, 6, 1, 233, 212, 4, 208, 163, - 24, 210, 233, 35, 6, 1, 233, 212, 4, 237, 168, 24, 210, 233, 35, 6, 1, - 233, 212, 4, 208, 163, 24, 209, 251, 35, 6, 1, 233, 212, 4, 237, 168, 24, - 209, 251, 35, 2, 1, 223, 56, 4, 208, 162, 35, 2, 1, 223, 56, 4, 237, 167, - 35, 2, 1, 223, 56, 4, 208, 163, 24, 195, 166, 35, 2, 1, 223, 56, 4, 237, - 168, 24, 195, 166, 35, 2, 1, 223, 56, 4, 208, 163, 24, 210, 233, 35, 2, - 1, 223, 56, 4, 237, 168, 24, 210, 233, 35, 2, 1, 223, 56, 4, 208, 163, - 24, 209, 251, 35, 2, 1, 223, 56, 4, 237, 168, 24, 209, 251, 35, 6, 1, - 223, 56, 4, 208, 162, 35, 6, 1, 223, 56, 4, 237, 167, 35, 6, 1, 223, 56, - 4, 208, 163, 24, 195, 166, 35, 6, 1, 223, 56, 4, 237, 168, 24, 195, 166, - 35, 6, 1, 223, 56, 4, 208, 163, 24, 210, 233, 35, 6, 1, 223, 56, 4, 237, - 168, 24, 210, 233, 35, 6, 1, 223, 56, 4, 208, 163, 24, 209, 251, 35, 6, - 1, 223, 56, 4, 237, 168, 24, 209, 251, 35, 2, 1, 211, 97, 4, 208, 162, - 35, 2, 1, 211, 97, 4, 237, 167, 35, 2, 1, 211, 97, 4, 208, 163, 24, 195, - 166, 35, 2, 1, 211, 97, 4, 237, 168, 24, 195, 166, 35, 2, 1, 211, 97, 4, - 208, 163, 24, 210, 233, 35, 2, 1, 211, 97, 4, 237, 168, 24, 210, 233, 35, - 6, 1, 211, 97, 4, 208, 162, 35, 6, 1, 211, 97, 4, 237, 167, 35, 6, 1, - 211, 97, 4, 208, 163, 24, 195, 166, 35, 6, 1, 211, 97, 4, 237, 168, 24, - 195, 166, 35, 6, 1, 211, 97, 4, 208, 163, 24, 210, 233, 35, 6, 1, 211, - 97, 4, 237, 168, 24, 210, 233, 35, 2, 1, 196, 67, 4, 208, 162, 35, 2, 1, - 196, 67, 4, 237, 167, 35, 2, 1, 196, 67, 4, 208, 163, 24, 195, 166, 35, - 2, 1, 196, 67, 4, 237, 168, 24, 195, 166, 35, 2, 1, 196, 67, 4, 208, 163, - 24, 210, 233, 35, 2, 1, 196, 67, 4, 237, 168, 24, 210, 233, 35, 2, 1, - 196, 67, 4, 208, 163, 24, 209, 251, 35, 2, 1, 196, 67, 4, 237, 168, 24, - 209, 251, 35, 6, 1, 196, 67, 4, 237, 167, 35, 6, 1, 196, 67, 4, 237, 168, - 24, 195, 166, 35, 6, 1, 196, 67, 4, 237, 168, 24, 210, 233, 35, 6, 1, - 196, 67, 4, 237, 168, 24, 209, 251, 35, 2, 1, 211, 100, 4, 208, 162, 35, - 2, 1, 211, 100, 4, 237, 167, 35, 2, 1, 211, 100, 4, 208, 163, 24, 195, - 166, 35, 2, 1, 211, 100, 4, 237, 168, 24, 195, 166, 35, 2, 1, 211, 100, - 4, 208, 163, 24, 210, 233, 35, 2, 1, 211, 100, 4, 237, 168, 24, 210, 233, - 35, 2, 1, 211, 100, 4, 208, 163, 24, 209, 251, 35, 2, 1, 211, 100, 4, - 237, 168, 24, 209, 251, 35, 6, 1, 211, 100, 4, 208, 162, 35, 6, 1, 211, - 100, 4, 237, 167, 35, 6, 1, 211, 100, 4, 208, 163, 24, 195, 166, 35, 6, - 1, 211, 100, 4, 237, 168, 24, 195, 166, 35, 6, 1, 211, 100, 4, 208, 163, - 24, 210, 233, 35, 6, 1, 211, 100, 4, 237, 168, 24, 210, 233, 35, 6, 1, - 211, 100, 4, 208, 163, 24, 209, 251, 35, 6, 1, 211, 100, 4, 237, 168, 24, - 209, 251, 35, 2, 1, 251, 110, 4, 195, 166, 35, 2, 1, 251, 110, 4, 210, - 233, 35, 2, 1, 234, 6, 4, 195, 166, 35, 2, 1, 234, 6, 4, 210, 233, 35, 2, - 1, 233, 212, 4, 195, 166, 35, 2, 1, 233, 212, 4, 210, 233, 35, 2, 1, 223, - 56, 4, 195, 166, 35, 2, 1, 223, 56, 4, 210, 233, 35, 2, 1, 211, 97, 4, - 195, 166, 35, 2, 1, 211, 97, 4, 210, 233, 35, 2, 1, 196, 67, 4, 195, 166, - 35, 2, 1, 196, 67, 4, 210, 233, 35, 2, 1, 211, 100, 4, 195, 166, 35, 2, - 1, 211, 100, 4, 210, 233, 35, 2, 1, 251, 110, 4, 208, 163, 24, 191, 233, - 35, 2, 1, 251, 110, 4, 237, 168, 24, 191, 233, 35, 2, 1, 251, 110, 4, - 208, 163, 24, 195, 167, 24, 191, 233, 35, 2, 1, 251, 110, 4, 237, 168, - 24, 195, 167, 24, 191, 233, 35, 2, 1, 251, 110, 4, 208, 163, 24, 210, - 234, 24, 191, 233, 35, 2, 1, 251, 110, 4, 237, 168, 24, 210, 234, 24, - 191, 233, 35, 2, 1, 251, 110, 4, 208, 163, 24, 209, 252, 24, 191, 233, - 35, 2, 1, 251, 110, 4, 237, 168, 24, 209, 252, 24, 191, 233, 35, 6, 1, - 251, 110, 4, 208, 163, 24, 208, 177, 35, 6, 1, 251, 110, 4, 237, 168, 24, - 208, 177, 35, 6, 1, 251, 110, 4, 208, 163, 24, 195, 167, 24, 208, 177, - 35, 6, 1, 251, 110, 4, 237, 168, 24, 195, 167, 24, 208, 177, 35, 6, 1, - 251, 110, 4, 208, 163, 24, 210, 234, 24, 208, 177, 35, 6, 1, 251, 110, 4, - 237, 168, 24, 210, 234, 24, 208, 177, 35, 6, 1, 251, 110, 4, 208, 163, - 24, 209, 252, 24, 208, 177, 35, 6, 1, 251, 110, 4, 237, 168, 24, 209, - 252, 24, 208, 177, 35, 2, 1, 233, 212, 4, 208, 163, 24, 191, 233, 35, 2, - 1, 233, 212, 4, 237, 168, 24, 191, 233, 35, 2, 1, 233, 212, 4, 208, 163, - 24, 195, 167, 24, 191, 233, 35, 2, 1, 233, 212, 4, 237, 168, 24, 195, - 167, 24, 191, 233, 35, 2, 1, 233, 212, 4, 208, 163, 24, 210, 234, 24, - 191, 233, 35, 2, 1, 233, 212, 4, 237, 168, 24, 210, 234, 24, 191, 233, - 35, 2, 1, 233, 212, 4, 208, 163, 24, 209, 252, 24, 191, 233, 35, 2, 1, - 233, 212, 4, 237, 168, 24, 209, 252, 24, 191, 233, 35, 6, 1, 233, 212, 4, - 208, 163, 24, 208, 177, 35, 6, 1, 233, 212, 4, 237, 168, 24, 208, 177, - 35, 6, 1, 233, 212, 4, 208, 163, 24, 195, 167, 24, 208, 177, 35, 6, 1, - 233, 212, 4, 237, 168, 24, 195, 167, 24, 208, 177, 35, 6, 1, 233, 212, 4, - 208, 163, 24, 210, 234, 24, 208, 177, 35, 6, 1, 233, 212, 4, 237, 168, - 24, 210, 234, 24, 208, 177, 35, 6, 1, 233, 212, 4, 208, 163, 24, 209, - 252, 24, 208, 177, 35, 6, 1, 233, 212, 4, 237, 168, 24, 209, 252, 24, - 208, 177, 35, 2, 1, 211, 100, 4, 208, 163, 24, 191, 233, 35, 2, 1, 211, - 100, 4, 237, 168, 24, 191, 233, 35, 2, 1, 211, 100, 4, 208, 163, 24, 195, - 167, 24, 191, 233, 35, 2, 1, 211, 100, 4, 237, 168, 24, 195, 167, 24, - 191, 233, 35, 2, 1, 211, 100, 4, 208, 163, 24, 210, 234, 24, 191, 233, - 35, 2, 1, 211, 100, 4, 237, 168, 24, 210, 234, 24, 191, 233, 35, 2, 1, - 211, 100, 4, 208, 163, 24, 209, 252, 24, 191, 233, 35, 2, 1, 211, 100, 4, - 237, 168, 24, 209, 252, 24, 191, 233, 35, 6, 1, 211, 100, 4, 208, 163, - 24, 208, 177, 35, 6, 1, 211, 100, 4, 237, 168, 24, 208, 177, 35, 6, 1, - 211, 100, 4, 208, 163, 24, 195, 167, 24, 208, 177, 35, 6, 1, 211, 100, 4, - 237, 168, 24, 195, 167, 24, 208, 177, 35, 6, 1, 211, 100, 4, 208, 163, - 24, 210, 234, 24, 208, 177, 35, 6, 1, 211, 100, 4, 237, 168, 24, 210, - 234, 24, 208, 177, 35, 6, 1, 211, 100, 4, 208, 163, 24, 209, 252, 24, - 208, 177, 35, 6, 1, 211, 100, 4, 237, 168, 24, 209, 252, 24, 208, 177, - 35, 2, 1, 251, 110, 4, 194, 251, 35, 2, 1, 251, 110, 4, 217, 125, 35, 2, - 1, 251, 110, 4, 195, 167, 24, 191, 233, 35, 2, 1, 251, 110, 4, 191, 233, - 35, 2, 1, 251, 110, 4, 210, 234, 24, 191, 233, 35, 2, 1, 251, 110, 4, - 209, 251, 35, 2, 1, 251, 110, 4, 209, 252, 24, 191, 233, 35, 6, 1, 251, - 110, 4, 194, 251, 35, 6, 1, 251, 110, 4, 217, 125, 35, 6, 1, 251, 110, 4, - 195, 166, 35, 6, 1, 251, 110, 4, 210, 233, 35, 6, 1, 251, 110, 4, 208, - 177, 35, 221, 6, 35, 208, 177, 35, 208, 162, 35, 209, 251, 35, 236, 247, - 24, 209, 251, 35, 2, 1, 233, 212, 4, 195, 167, 24, 191, 233, 35, 2, 1, - 233, 212, 4, 191, 233, 35, 2, 1, 233, 212, 4, 210, 234, 24, 191, 233, 35, - 2, 1, 233, 212, 4, 209, 251, 35, 2, 1, 233, 212, 4, 209, 252, 24, 191, - 233, 35, 6, 1, 234, 6, 4, 195, 166, 35, 6, 1, 234, 6, 4, 210, 233, 35, 6, - 1, 233, 212, 4, 195, 166, 35, 6, 1, 233, 212, 4, 210, 233, 35, 6, 1, 233, - 212, 4, 208, 177, 35, 208, 163, 24, 195, 166, 35, 208, 163, 24, 210, 233, - 35, 208, 163, 24, 209, 251, 35, 2, 1, 223, 56, 4, 194, 251, 35, 2, 1, - 223, 56, 4, 217, 125, 35, 2, 1, 223, 56, 4, 236, 247, 24, 195, 166, 35, - 2, 1, 223, 56, 4, 236, 247, 24, 210, 233, 35, 2, 1, 223, 56, 4, 209, 251, - 35, 2, 1, 223, 56, 4, 236, 247, 24, 209, 251, 35, 6, 1, 223, 56, 4, 194, - 251, 35, 6, 1, 223, 56, 4, 217, 125, 35, 6, 1, 223, 56, 4, 195, 166, 35, - 6, 1, 223, 56, 4, 210, 233, 35, 237, 168, 24, 195, 166, 35, 237, 168, 24, - 210, 233, 35, 237, 168, 24, 209, 251, 35, 2, 1, 196, 67, 4, 194, 251, 35, - 2, 1, 196, 67, 4, 217, 125, 35, 2, 1, 196, 67, 4, 236, 247, 24, 195, 166, - 35, 2, 1, 196, 67, 4, 236, 247, 24, 210, 233, 35, 2, 1, 206, 255, 4, 208, - 162, 35, 2, 1, 206, 255, 4, 237, 167, 35, 2, 1, 196, 67, 4, 209, 251, 35, - 2, 1, 196, 67, 4, 236, 247, 24, 209, 251, 35, 6, 1, 196, 67, 4, 194, 251, - 35, 6, 1, 196, 67, 4, 217, 125, 35, 6, 1, 196, 67, 4, 195, 166, 35, 6, 1, - 196, 67, 4, 210, 233, 35, 6, 1, 206, 255, 4, 237, 167, 35, 236, 247, 24, - 195, 166, 35, 236, 247, 24, 210, 233, 35, 195, 166, 35, 2, 1, 211, 100, - 4, 195, 167, 24, 191, 233, 35, 2, 1, 211, 100, 4, 191, 233, 35, 2, 1, - 211, 100, 4, 210, 234, 24, 191, 233, 35, 2, 1, 211, 100, 4, 209, 251, 35, - 2, 1, 211, 100, 4, 209, 252, 24, 191, 233, 35, 6, 1, 211, 97, 4, 195, - 166, 35, 6, 1, 211, 97, 4, 210, 233, 35, 6, 1, 211, 100, 4, 195, 166, 35, - 6, 1, 211, 100, 4, 210, 233, 35, 6, 1, 211, 100, 4, 208, 177, 35, 210, - 233, 35, 237, 167, 234, 62, 208, 24, 234, 73, 208, 24, 234, 62, 201, 242, - 234, 73, 201, 242, 198, 214, 201, 242, 232, 88, 201, 242, 202, 129, 201, - 242, 232, 228, 201, 242, 208, 145, 201, 242, 198, 255, 201, 242, 230, 46, - 201, 242, 191, 78, 193, 73, 201, 242, 191, 78, 193, 73, 213, 16, 191, 78, - 193, 73, 222, 169, 219, 191, 77, 206, 194, 77, 228, 58, 213, 17, 228, 58, - 232, 228, 237, 170, 234, 62, 237, 170, 234, 73, 237, 170, 228, 209, 164, - 54, 81, 219, 88, 54, 131, 219, 88, 45, 202, 165, 207, 247, 77, 50, 202, - 165, 207, 247, 77, 202, 165, 218, 218, 207, 247, 77, 202, 165, 229, 100, - 207, 247, 77, 45, 54, 207, 247, 77, 50, 54, 207, 247, 77, 54, 218, 218, - 207, 247, 77, 54, 229, 100, 207, 247, 77, 237, 223, 54, 237, 223, 247, - 200, 197, 234, 247, 200, 91, 75, 219, 212, 103, 75, 219, 212, 228, 209, - 234, 78, 228, 56, 209, 54, 219, 89, 204, 5, 210, 118, 204, 5, 219, 191, - 234, 71, 206, 194, 234, 71, 209, 27, 236, 187, 232, 105, 219, 191, 210, - 242, 206, 194, 210, 242, 214, 201, 213, 24, 201, 242, 210, 5, 216, 32, - 57, 210, 5, 199, 91, 198, 225, 57, 208, 208, 54, 208, 208, 197, 221, 208, - 208, 207, 13, 208, 208, 207, 13, 54, 208, 208, 207, 13, 197, 221, 208, - 208, 247, 48, 202, 165, 219, 195, 251, 65, 207, 247, 77, 202, 165, 206, - 198, 251, 65, 207, 247, 77, 207, 78, 77, 54, 233, 175, 77, 223, 74, 210, - 244, 196, 96, 246, 192, 198, 173, 247, 49, 223, 91, 209, 54, 250, 141, - 228, 59, 247, 200, 232, 80, 202, 92, 45, 51, 248, 6, 4, 208, 2, 50, 51, - 248, 6, 4, 208, 2, 54, 208, 8, 77, 208, 8, 233, 175, 77, 233, 175, 208, - 8, 77, 198, 123, 3, 233, 213, 207, 13, 209, 133, 57, 62, 117, 247, 200, - 62, 96, 247, 200, 131, 250, 143, 207, 13, 204, 20, 242, 172, 196, 73, - 103, 250, 142, 251, 127, 195, 81, 242, 24, 216, 18, 57, 200, 125, 237, - 170, 223, 65, 196, 96, 232, 147, 208, 145, 77, 115, 75, 208, 144, 208, - 20, 208, 208, 232, 90, 75, 208, 144, 232, 185, 75, 208, 144, 103, 75, - 208, 144, 232, 90, 75, 77, 235, 94, 238, 170, 197, 233, 81, 232, 90, 236, - 94, 216, 194, 13, 201, 242, 193, 23, 222, 169, 232, 40, 250, 250, 223, - 63, 198, 139, 223, 63, 204, 5, 223, 63, 209, 73, 219, 191, 223, 31, 206, - 194, 223, 31, 232, 197, 201, 9, 223, 31, 209, 27, 236, 187, 223, 31, 223, - 104, 200, 71, 200, 143, 251, 253, 200, 71, 200, 143, 223, 104, 9, 232, - 107, 203, 128, 251, 253, 9, 232, 107, 203, 128, 214, 194, 17, 203, 129, - 213, 20, 17, 203, 129, 200, 177, 191, 77, 200, 177, 8, 2, 1, 70, 200, - 177, 137, 200, 177, 153, 200, 177, 173, 200, 177, 181, 200, 177, 176, - 200, 177, 184, 200, 177, 107, 57, 200, 177, 216, 17, 200, 177, 234, 1, - 57, 200, 177, 45, 210, 103, 200, 177, 50, 210, 103, 200, 177, 8, 2, 1, - 215, 47, 200, 225, 191, 77, 200, 225, 108, 200, 225, 109, 200, 225, 139, - 200, 225, 137, 200, 225, 153, 200, 225, 173, 200, 225, 181, 200, 225, - 176, 200, 225, 184, 200, 225, 107, 57, 200, 225, 216, 17, 200, 225, 234, - 1, 57, 200, 225, 45, 210, 103, 200, 225, 50, 210, 103, 8, 200, 225, 2, 1, - 65, 8, 200, 225, 2, 1, 73, 8, 200, 225, 2, 1, 74, 8, 200, 225, 2, 1, 192, - 235, 8, 200, 225, 2, 1, 205, 81, 8, 200, 225, 2, 1, 230, 83, 8, 200, 225, - 2, 1, 222, 125, 8, 200, 225, 2, 1, 170, 8, 200, 225, 2, 1, 218, 147, 8, - 200, 225, 2, 1, 215, 47, 8, 200, 225, 2, 1, 210, 226, 8, 200, 225, 2, 1, - 206, 3, 8, 200, 225, 2, 1, 200, 39, 233, 192, 57, 242, 36, 57, 238, 153, - 57, 232, 68, 232, 73, 57, 219, 67, 57, 216, 33, 57, 214, 220, 57, 209, - 236, 57, 206, 31, 57, 193, 31, 57, 214, 66, 203, 94, 57, 236, 104, 57, - 233, 193, 57, 221, 111, 57, 197, 77, 57, 235, 72, 57, 231, 101, 210, 18, - 57, 209, 233, 57, 230, 141, 57, 250, 103, 57, 228, 135, 57, 246, 245, 57, - 219, 57, 198, 28, 57, 201, 221, 57, 199, 88, 57, 223, 119, 206, 31, 57, - 197, 56, 219, 67, 57, 213, 6, 87, 57, 217, 68, 57, 206, 54, 57, 219, 241, - 57, 248, 99, 57, 202, 17, 57, 33, 45, 229, 236, 56, 33, 50, 229, 236, 56, - 33, 177, 81, 219, 89, 210, 245, 33, 203, 35, 81, 219, 89, 210, 245, 33, - 251, 34, 63, 56, 33, 242, 173, 63, 56, 33, 45, 63, 56, 33, 50, 63, 56, - 33, 206, 184, 210, 245, 33, 242, 173, 206, 184, 210, 245, 33, 251, 34, - 206, 184, 210, 245, 33, 115, 183, 56, 33, 232, 90, 183, 56, 33, 234, 57, - 242, 218, 33, 234, 57, 201, 185, 33, 234, 57, 236, 243, 33, 234, 57, 242, - 219, 249, 91, 33, 45, 50, 63, 56, 33, 234, 57, 205, 71, 33, 234, 57, 221, - 193, 33, 234, 57, 196, 64, 209, 51, 197, 237, 33, 207, 14, 202, 19, 210, - 245, 33, 54, 81, 201, 23, 210, 245, 33, 251, 44, 113, 33, 197, 221, 196, - 98, 33, 193, 76, 247, 237, 56, 33, 117, 63, 210, 245, 33, 177, 54, 202, - 19, 210, 245, 33, 96, 229, 236, 4, 178, 235, 74, 33, 117, 229, 236, 4, - 178, 235, 74, 33, 45, 63, 60, 33, 50, 63, 60, 33, 250, 144, 56, 252, 3, - 211, 134, 251, 242, 118, 199, 29, 200, 235, 235, 85, 6, 247, 145, 237, - 80, 246, 235, 246, 230, 219, 89, 113, 247, 50, 211, 134, 247, 104, 196, - 108, 233, 194, 238, 247, 205, 67, 237, 80, 233, 50, 27, 2, 232, 14, 27, - 6, 230, 83, 248, 89, 6, 230, 83, 235, 85, 6, 230, 83, 209, 95, 238, 247, - 209, 95, 238, 248, 138, 103, 209, 176, 27, 6, 70, 248, 89, 6, 70, 27, 6, - 170, 27, 2, 170, 220, 119, 78, 249, 38, 113, 235, 85, 6, 215, 47, 212, - 119, 57, 202, 0, 207, 90, 238, 214, 27, 6, 210, 226, 235, 85, 6, 210, - 226, 235, 85, 6, 208, 97, 27, 6, 148, 248, 89, 6, 148, 235, 85, 6, 148, - 208, 216, 199, 203, 207, 26, 203, 252, 77, 199, 102, 57, 198, 18, 87, 57, - 195, 133, 235, 85, 6, 191, 166, 211, 8, 57, 211, 123, 57, 223, 65, 211, - 123, 57, 248, 89, 6, 191, 166, 152, 35, 2, 1, 223, 55, 221, 234, 57, 251, - 59, 57, 27, 6, 250, 70, 248, 89, 6, 247, 145, 233, 218, 113, 27, 2, 73, - 27, 6, 73, 27, 6, 233, 134, 152, 6, 233, 134, 27, 6, 218, 147, 27, 2, 74, - 130, 113, 248, 165, 113, 231, 2, 113, 237, 207, 113, 223, 109, 201, 254, - 206, 117, 6, 208, 97, 233, 53, 57, 235, 85, 2, 209, 176, 235, 85, 2, 231, - 174, 235, 85, 6, 231, 174, 235, 85, 6, 209, 176, 235, 85, 215, 46, 200, - 196, 152, 49, 6, 232, 14, 152, 49, 6, 170, 207, 13, 49, 6, 170, 152, 49, - 6, 192, 159, 235, 85, 43, 6, 238, 80, 235, 85, 43, 2, 238, 80, 235, 85, - 43, 2, 73, 235, 85, 43, 2, 70, 235, 85, 43, 2, 223, 7, 208, 181, 219, 88, - 152, 251, 86, 210, 5, 57, 251, 159, 152, 2, 233, 134, 16, 39, 205, 146, - 201, 254, 193, 243, 232, 80, 91, 203, 238, 193, 243, 232, 80, 91, 213, - 154, 193, 243, 232, 80, 91, 199, 81, 193, 243, 232, 80, 91, 198, 251, - 193, 243, 232, 80, 103, 198, 248, 193, 243, 232, 80, 91, 232, 233, 193, - 243, 232, 80, 103, 232, 232, 193, 243, 232, 80, 115, 232, 232, 193, 243, - 232, 80, 232, 90, 232, 232, 193, 243, 232, 80, 91, 202, 119, 193, 243, - 232, 80, 232, 185, 202, 117, 193, 243, 232, 80, 91, 234, 116, 193, 243, - 232, 80, 115, 234, 114, 193, 243, 232, 80, 232, 185, 234, 114, 193, 243, - 232, 80, 203, 242, 234, 114, 232, 80, 212, 120, 108, 206, 131, 212, 121, - 108, 206, 131, 212, 121, 109, 206, 131, 212, 121, 139, 206, 131, 212, - 121, 137, 206, 131, 212, 121, 153, 206, 131, 212, 121, 173, 206, 131, - 212, 121, 181, 206, 131, 212, 121, 176, 206, 131, 212, 121, 184, 206, - 131, 212, 121, 199, 90, 206, 131, 212, 121, 234, 84, 206, 131, 212, 121, - 197, 33, 206, 131, 212, 121, 232, 230, 206, 131, 212, 121, 91, 228, 109, - 206, 131, 212, 121, 232, 185, 228, 109, 206, 131, 212, 121, 91, 188, 2, - 206, 131, 212, 121, 108, 2, 206, 131, 212, 121, 109, 2, 206, 131, 212, - 121, 139, 2, 206, 131, 212, 121, 137, 2, 206, 131, 212, 121, 153, 2, 206, - 131, 212, 121, 173, 2, 206, 131, 212, 121, 181, 2, 206, 131, 212, 121, - 176, 2, 206, 131, 212, 121, 184, 2, 206, 131, 212, 121, 199, 90, 2, 206, - 131, 212, 121, 234, 84, 2, 206, 131, 212, 121, 197, 33, 2, 206, 131, 212, - 121, 232, 230, 2, 206, 131, 212, 121, 91, 228, 109, 2, 206, 131, 212, - 121, 232, 185, 228, 109, 2, 206, 131, 212, 121, 91, 188, 206, 131, 212, - 121, 91, 198, 225, 247, 146, 238, 80, 206, 131, 212, 121, 232, 185, 188, - 206, 131, 212, 121, 199, 91, 188, 206, 131, 212, 121, 207, 13, 91, 228, - 109, 8, 2, 1, 207, 13, 247, 145, 206, 131, 212, 121, 202, 131, 219, 236, - 20, 206, 131, 212, 121, 232, 231, 234, 166, 20, 206, 131, 212, 121, 232, - 231, 188, 206, 131, 212, 121, 91, 228, 110, 188, 193, 243, 232, 80, 191, - 78, 198, 248, 152, 17, 109, 152, 17, 139, 117, 55, 196, 62, 55, 96, 55, - 235, 75, 55, 45, 50, 55, 132, 143, 55, 185, 193, 103, 55, 185, 234, 160, - 55, 201, 253, 234, 160, 55, 201, 253, 193, 103, 55, 117, 63, 4, 105, 96, - 63, 4, 105, 117, 193, 137, 55, 96, 193, 137, 55, 117, 103, 229, 201, 55, - 196, 62, 103, 229, 201, 55, 96, 103, 229, 201, 55, 235, 75, 103, 229, - 201, 55, 117, 63, 4, 199, 210, 96, 63, 4, 199, 210, 117, 63, 232, 60, - 164, 196, 62, 63, 232, 60, 164, 96, 63, 232, 60, 164, 235, 75, 63, 232, - 60, 164, 132, 143, 63, 4, 249, 24, 117, 63, 4, 106, 96, 63, 4, 106, 117, - 63, 4, 218, 236, 96, 63, 4, 218, 236, 45, 50, 193, 137, 55, 45, 50, 63, - 4, 105, 235, 75, 191, 21, 55, 196, 62, 63, 4, 198, 131, 219, 190, 196, - 62, 63, 4, 198, 131, 206, 192, 235, 75, 63, 4, 198, 131, 219, 190, 235, - 75, 63, 4, 198, 131, 206, 192, 96, 63, 4, 238, 211, 235, 74, 235, 75, 63, - 4, 238, 211, 219, 190, 251, 34, 198, 49, 204, 23, 55, 242, 173, 198, 49, - 204, 23, 55, 185, 193, 103, 63, 118, 177, 164, 117, 63, 118, 249, 38, - 138, 96, 63, 118, 164, 251, 34, 211, 66, 242, 219, 55, 242, 173, 211, 66, - 242, 219, 55, 117, 229, 236, 4, 178, 196, 61, 117, 229, 236, 4, 178, 235, - 74, 196, 62, 229, 236, 4, 178, 206, 192, 196, 62, 229, 236, 4, 178, 219, - 190, 96, 229, 236, 4, 178, 196, 61, 96, 229, 236, 4, 178, 235, 74, 235, - 75, 229, 236, 4, 178, 206, 192, 235, 75, 229, 236, 4, 178, 219, 190, 96, - 63, 138, 117, 55, 196, 62, 63, 117, 80, 235, 75, 55, 117, 63, 138, 96, - 55, 117, 210, 186, 250, 181, 196, 62, 210, 186, 250, 181, 96, 210, 186, - 250, 181, 235, 75, 210, 186, 250, 181, 117, 229, 236, 138, 96, 229, 235, - 96, 229, 236, 138, 117, 229, 235, 117, 54, 63, 4, 105, 45, 50, 54, 63, 4, - 105, 96, 54, 63, 4, 105, 117, 54, 55, 196, 62, 54, 55, 96, 54, 55, 235, - 75, 54, 55, 45, 50, 54, 55, 132, 143, 54, 55, 185, 193, 103, 54, 55, 185, - 234, 160, 54, 55, 201, 253, 234, 160, 54, 55, 201, 253, 193, 103, 54, 55, - 117, 197, 221, 55, 96, 197, 221, 55, 117, 201, 178, 55, 96, 201, 178, 55, - 196, 62, 63, 4, 54, 105, 235, 75, 63, 4, 54, 105, 117, 237, 169, 55, 196, - 62, 237, 169, 55, 96, 237, 169, 55, 235, 75, 237, 169, 55, 117, 63, 118, - 164, 96, 63, 118, 164, 117, 64, 55, 196, 62, 64, 55, 96, 64, 55, 235, 75, - 64, 55, 196, 62, 64, 63, 232, 60, 164, 196, 62, 64, 63, 211, 94, 210, 43, - 196, 62, 64, 63, 211, 94, 210, 44, 4, 228, 209, 164, 196, 62, 64, 63, - 211, 94, 210, 44, 4, 81, 164, 196, 62, 64, 54, 55, 196, 62, 64, 54, 63, - 211, 94, 210, 43, 96, 64, 63, 232, 60, 193, 164, 185, 193, 103, 63, 118, - 238, 210, 201, 253, 234, 160, 63, 118, 238, 210, 132, 143, 64, 55, 50, - 63, 4, 2, 242, 218, 235, 75, 63, 117, 80, 196, 62, 55, 115, 96, 250, 181, - 117, 63, 4, 81, 105, 96, 63, 4, 81, 105, 45, 50, 63, 4, 81, 105, 117, 63, - 4, 54, 81, 105, 96, 63, 4, 54, 81, 105, 45, 50, 63, 4, 54, 81, 105, 117, - 211, 63, 55, 96, 211, 63, 55, 45, 50, 211, 63, 55, 39, 251, 123, 242, 20, - 210, 95, 236, 227, 199, 19, 233, 170, 199, 19, 236, 119, 212, 255, 233, - 171, 234, 63, 203, 247, 223, 123, 214, 231, 234, 89, 211, 134, 212, 255, - 251, 82, 234, 89, 211, 134, 2, 234, 89, 211, 134, 238, 241, 250, 170, - 216, 171, 236, 119, 212, 255, 238, 243, 250, 170, 216, 171, 2, 238, 241, - 250, 170, 216, 171, 234, 53, 80, 208, 183, 215, 46, 208, 193, 215, 46, - 238, 218, 215, 46, 200, 196, 216, 18, 57, 216, 16, 57, 75, 209, 73, 236, - 155, 202, 92, 203, 248, 216, 17, 250, 144, 211, 55, 206, 184, 211, 55, - 247, 201, 211, 55, 51, 206, 123, 238, 144, 206, 123, 232, 83, 206, 123, - 208, 179, 159, 223, 111, 50, 251, 64, 251, 64, 216, 207, 251, 64, 201, - 220, 251, 64, 236, 158, 236, 119, 212, 255, 236, 162, 210, 109, 159, 212, - 255, 210, 109, 159, 219, 5, 251, 74, 219, 5, 211, 45, 223, 71, 196, 88, - 223, 85, 54, 223, 85, 197, 221, 223, 85, 238, 235, 223, 85, 200, 166, - 223, 85, 195, 8, 223, 85, 242, 173, 223, 85, 242, 173, 238, 235, 223, 85, - 251, 34, 238, 235, 223, 85, 199, 18, 248, 209, 207, 121, 208, 180, 75, - 216, 17, 233, 178, 231, 107, 208, 180, 228, 224, 198, 148, 211, 55, 207, - 13, 198, 147, 223, 65, 219, 221, 206, 3, 202, 167, 193, 136, 193, 10, - 208, 193, 212, 255, 198, 147, 216, 18, 198, 147, 250, 136, 234, 3, 159, - 212, 255, 250, 136, 234, 3, 159, 250, 246, 234, 3, 159, 250, 246, 247, - 170, 212, 255, 251, 252, 234, 3, 159, 214, 91, 250, 246, 213, 8, 251, - 252, 234, 3, 159, 251, 114, 234, 3, 159, 212, 255, 251, 114, 234, 3, 159, - 251, 114, 234, 3, 211, 46, 234, 3, 159, 197, 221, 198, 147, 251, 124, - 234, 3, 159, 233, 250, 159, 231, 106, 233, 250, 159, 236, 228, 248, 159, - 250, 248, 199, 29, 219, 96, 231, 106, 234, 3, 159, 250, 246, 234, 3, 118, - 211, 46, 199, 29, 223, 150, 211, 134, 223, 150, 80, 211, 46, 250, 246, - 234, 3, 159, 242, 36, 234, 0, 234, 1, 242, 35, 206, 184, 223, 135, 234, - 3, 159, 206, 184, 234, 3, 159, 238, 203, 159, 233, 217, 233, 255, 159, - 201, 98, 234, 0, 237, 62, 234, 3, 159, 234, 3, 118, 247, 157, 237, 81, - 216, 207, 247, 156, 208, 6, 234, 3, 159, 212, 255, 234, 3, 159, 227, 244, - 159, 212, 255, 227, 244, 159, 201, 30, 233, 250, 159, 219, 156, 211, 46, - 234, 3, 159, 230, 170, 211, 46, 234, 3, 159, 219, 156, 138, 234, 3, 159, - 230, 170, 138, 234, 3, 159, 219, 156, 247, 170, 212, 255, 234, 3, 159, - 230, 170, 247, 170, 212, 255, 234, 3, 159, 215, 129, 219, 155, 215, 129, - 230, 169, 248, 159, 212, 255, 233, 250, 159, 212, 255, 219, 155, 212, - 255, 230, 169, 214, 91, 219, 156, 213, 8, 234, 3, 159, 214, 91, 230, 170, - 213, 8, 234, 3, 159, 219, 156, 211, 46, 233, 250, 159, 230, 170, 211, 46, - 233, 250, 159, 214, 91, 219, 156, 213, 8, 233, 250, 159, 214, 91, 230, - 170, 213, 8, 233, 250, 159, 219, 156, 211, 46, 230, 169, 230, 170, 211, - 46, 219, 155, 214, 91, 219, 156, 213, 8, 230, 169, 214, 91, 230, 170, - 213, 8, 219, 155, 208, 224, 200, 215, 208, 225, 211, 46, 234, 3, 159, - 200, 216, 211, 46, 234, 3, 159, 208, 225, 211, 46, 233, 250, 159, 200, - 216, 211, 46, 233, 250, 159, 236, 119, 212, 255, 208, 227, 236, 119, 212, - 255, 200, 217, 200, 224, 211, 134, 200, 176, 211, 134, 212, 255, 41, 200, - 224, 211, 134, 212, 255, 41, 200, 176, 211, 134, 200, 224, 80, 211, 46, - 234, 3, 159, 200, 176, 80, 211, 46, 234, 3, 159, 214, 91, 41, 200, 224, - 80, 213, 8, 234, 3, 159, 214, 91, 41, 200, 176, 80, 213, 8, 234, 3, 159, - 200, 224, 80, 4, 212, 255, 234, 3, 159, 200, 176, 80, 4, 212, 255, 234, - 3, 159, 215, 109, 215, 110, 215, 111, 215, 110, 196, 88, 51, 223, 150, - 211, 134, 51, 211, 36, 211, 134, 51, 223, 150, 80, 211, 46, 234, 3, 159, - 51, 211, 36, 80, 211, 46, 234, 3, 159, 51, 247, 63, 51, 238, 134, 47, - 209, 73, 47, 216, 17, 47, 198, 139, 47, 236, 155, 202, 92, 47, 75, 211, - 55, 47, 206, 184, 211, 55, 47, 250, 144, 211, 55, 47, 234, 0, 47, 237, - 170, 112, 209, 73, 112, 216, 17, 112, 198, 139, 112, 75, 211, 55, 50, - 199, 223, 45, 199, 223, 143, 199, 223, 132, 199, 223, 250, 147, 215, 240, - 197, 197, 232, 113, 197, 221, 81, 249, 38, 50, 197, 53, 54, 81, 249, 38, - 54, 50, 197, 53, 236, 119, 212, 255, 208, 172, 212, 255, 197, 197, 236, - 119, 212, 255, 232, 114, 214, 94, 54, 81, 249, 38, 54, 50, 197, 53, 208, - 225, 196, 101, 207, 60, 200, 216, 196, 101, 207, 60, 213, 5, 200, 239, - 211, 134, 238, 241, 250, 170, 213, 5, 200, 238, 213, 5, 200, 239, 80, - 211, 46, 234, 3, 159, 238, 241, 250, 170, 213, 5, 200, 239, 211, 46, 234, - 3, 159, 211, 36, 211, 134, 223, 150, 211, 134, 215, 116, 229, 157, 238, - 252, 217, 8, 223, 82, 192, 192, 214, 210, 213, 7, 50, 251, 65, 4, 250, - 222, 50, 197, 237, 215, 46, 219, 5, 251, 74, 215, 46, 219, 5, 211, 45, - 215, 46, 223, 71, 215, 46, 196, 88, 236, 244, 211, 55, 75, 211, 55, 201, - 98, 211, 55, 236, 155, 198, 139, 248, 15, 45, 213, 5, 233, 52, 204, 19, - 208, 193, 50, 213, 5, 233, 52, 204, 19, 208, 193, 45, 204, 19, 208, 193, - 50, 204, 19, 208, 193, 207, 13, 198, 148, 234, 0, 238, 124, 219, 5, 211, - 45, 238, 124, 219, 5, 251, 74, 54, 200, 223, 54, 200, 175, 54, 223, 71, - 54, 196, 88, 209, 107, 234, 3, 24, 210, 109, 159, 219, 156, 4, 236, 96, - 230, 170, 4, 236, 96, 195, 80, 215, 129, 219, 155, 195, 80, 215, 129, - 230, 169, 219, 156, 234, 3, 118, 211, 46, 230, 169, 230, 170, 234, 3, - 118, 211, 46, 219, 155, 234, 3, 118, 211, 46, 219, 155, 234, 3, 118, 211, - 46, 230, 169, 234, 3, 118, 211, 46, 208, 224, 234, 3, 118, 211, 46, 200, - 215, 236, 119, 212, 255, 208, 228, 211, 46, 234, 2, 236, 119, 212, 255, - 200, 218, 211, 46, 234, 2, 212, 255, 51, 223, 150, 80, 211, 46, 234, 3, - 159, 212, 255, 51, 211, 36, 80, 211, 46, 234, 3, 159, 51, 223, 150, 80, - 211, 46, 212, 255, 234, 3, 159, 51, 211, 36, 80, 211, 46, 212, 255, 234, - 3, 159, 219, 156, 247, 170, 212, 255, 233, 250, 159, 230, 170, 247, 170, - 212, 255, 233, 250, 159, 208, 225, 247, 170, 212, 255, 233, 250, 159, - 200, 216, 247, 170, 212, 255, 233, 250, 159, 212, 255, 213, 5, 200, 239, - 211, 134, 236, 119, 212, 255, 238, 243, 250, 170, 213, 5, 200, 238, 212, - 255, 213, 5, 200, 239, 80, 211, 46, 234, 3, 159, 236, 119, 212, 255, 238, - 243, 250, 170, 213, 5, 200, 239, 211, 46, 234, 2, 81, 234, 78, 216, 64, - 228, 209, 234, 78, 132, 50, 236, 250, 234, 78, 143, 50, 236, 250, 234, - 78, 234, 89, 80, 4, 177, 228, 209, 105, 234, 89, 80, 4, 81, 249, 38, 250, - 133, 234, 53, 80, 228, 209, 105, 2, 234, 89, 80, 4, 81, 249, 38, 250, - 133, 234, 53, 80, 228, 209, 105, 234, 89, 80, 4, 75, 56, 234, 89, 80, 4, - 210, 252, 2, 234, 89, 80, 4, 210, 252, 234, 89, 80, 4, 196, 99, 234, 89, - 80, 4, 103, 228, 209, 201, 10, 238, 241, 4, 177, 228, 209, 105, 238, 241, - 4, 81, 249, 38, 250, 133, 234, 53, 80, 228, 209, 105, 2, 238, 241, 4, 81, - 249, 38, 250, 133, 234, 53, 80, 228, 209, 105, 238, 241, 4, 210, 252, 2, - 238, 241, 4, 210, 252, 191, 167, 212, 253, 249, 81, 216, 170, 236, 245, - 57, 234, 92, 55, 228, 141, 132, 250, 185, 143, 250, 185, 208, 187, 209, - 239, 193, 133, 219, 88, 45, 246, 238, 50, 246, 238, 45, 232, 153, 50, - 232, 153, 248, 29, 50, 238, 172, 248, 29, 45, 238, 172, 198, 49, 50, 238, - 172, 198, 49, 45, 238, 172, 207, 13, 212, 255, 57, 51, 218, 210, 250, - 222, 205, 38, 205, 47, 199, 102, 207, 91, 209, 18, 223, 116, 195, 53, - 201, 185, 209, 100, 80, 223, 81, 57, 152, 212, 255, 57, 193, 143, 228, - 143, 198, 49, 45, 238, 210, 198, 49, 50, 238, 210, 248, 29, 45, 238, 210, - 248, 29, 50, 238, 210, 198, 49, 134, 223, 85, 248, 29, 134, 223, 85, 232, - 55, 202, 60, 132, 250, 186, 248, 160, 103, 228, 209, 249, 26, 211, 48, - 221, 197, 233, 246, 118, 199, 29, 187, 192, 236, 223, 135, 41, 207, 88, - 248, 14, 221, 195, 219, 195, 251, 65, 248, 5, 206, 198, 251, 65, 248, 5, - 233, 246, 118, 199, 29, 219, 200, 248, 171, 206, 183, 238, 91, 251, 124, - 250, 194, 200, 70, 198, 34, 206, 36, 236, 207, 211, 37, 239, 0, 199, 176, - 202, 76, 238, 199, 238, 198, 251, 9, 232, 38, 16, 228, 37, 251, 9, 232, - 38, 16, 201, 176, 208, 24, 251, 9, 232, 38, 16, 208, 25, 234, 2, 251, 9, - 232, 38, 16, 208, 25, 236, 162, 251, 9, 232, 38, 16, 208, 25, 236, 243, - 251, 9, 232, 38, 16, 208, 25, 222, 161, 251, 9, 232, 38, 16, 208, 25, - 242, 218, 251, 9, 232, 38, 16, 242, 219, 201, 66, 251, 9, 232, 38, 16, - 242, 219, 222, 161, 251, 9, 232, 38, 16, 202, 93, 164, 251, 9, 232, 38, - 16, 249, 92, 164, 251, 9, 232, 38, 16, 208, 25, 202, 92, 251, 9, 232, 38, - 16, 208, 25, 249, 91, 251, 9, 232, 38, 16, 208, 25, 219, 155, 251, 9, - 232, 38, 16, 208, 25, 230, 169, 251, 9, 232, 38, 16, 117, 195, 173, 251, - 9, 232, 38, 16, 96, 195, 173, 251, 9, 232, 38, 16, 208, 25, 117, 55, 251, - 9, 232, 38, 16, 208, 25, 96, 55, 251, 9, 232, 38, 16, 242, 219, 249, 91, - 251, 9, 232, 38, 16, 143, 199, 224, 196, 99, 251, 9, 232, 38, 16, 237, - 62, 201, 66, 251, 9, 232, 38, 16, 208, 25, 143, 247, 48, 251, 9, 232, 38, - 16, 208, 25, 237, 61, 251, 9, 232, 38, 16, 143, 199, 224, 222, 161, 251, - 9, 232, 38, 16, 196, 62, 195, 173, 251, 9, 232, 38, 16, 208, 25, 196, 62, - 55, 251, 9, 232, 38, 16, 132, 199, 224, 210, 252, 251, 9, 232, 38, 16, - 237, 74, 201, 66, 251, 9, 232, 38, 16, 208, 25, 132, 247, 48, 251, 9, - 232, 38, 16, 208, 25, 237, 73, 251, 9, 232, 38, 16, 132, 199, 224, 222, - 161, 251, 9, 232, 38, 16, 235, 75, 195, 173, 251, 9, 232, 38, 16, 208, - 25, 235, 75, 55, 251, 9, 232, 38, 16, 207, 246, 196, 99, 251, 9, 232, 38, - 16, 237, 62, 196, 99, 251, 9, 232, 38, 16, 236, 244, 196, 99, 251, 9, - 232, 38, 16, 222, 162, 196, 99, 251, 9, 232, 38, 16, 242, 219, 196, 99, - 251, 9, 232, 38, 16, 132, 203, 48, 222, 161, 251, 9, 232, 38, 16, 207, - 246, 208, 24, 251, 9, 232, 38, 16, 242, 219, 201, 97, 251, 9, 232, 38, - 16, 208, 25, 242, 35, 251, 9, 232, 38, 16, 132, 199, 224, 236, 253, 251, - 9, 232, 38, 16, 237, 74, 236, 253, 251, 9, 232, 38, 16, 201, 98, 236, - 253, 251, 9, 232, 38, 16, 222, 162, 236, 253, 251, 9, 232, 38, 16, 242, - 219, 236, 253, 251, 9, 232, 38, 16, 143, 203, 48, 201, 66, 251, 9, 232, - 38, 16, 45, 203, 48, 201, 66, 251, 9, 232, 38, 16, 198, 148, 236, 253, - 251, 9, 232, 38, 16, 230, 170, 236, 253, 251, 9, 232, 38, 16, 242, 27, - 164, 251, 9, 232, 38, 16, 237, 74, 198, 147, 251, 9, 232, 38, 16, 191, - 20, 251, 9, 232, 38, 16, 201, 67, 198, 147, 251, 9, 232, 38, 16, 204, 21, - 196, 99, 251, 9, 232, 38, 16, 208, 25, 212, 255, 234, 2, 251, 9, 232, 38, - 16, 208, 25, 208, 7, 251, 9, 232, 38, 16, 143, 247, 49, 198, 147, 251, 9, - 232, 38, 16, 132, 247, 49, 198, 147, 251, 9, 232, 38, 16, 223, 55, 251, - 9, 232, 38, 16, 206, 254, 251, 9, 232, 38, 16, 211, 99, 251, 9, 232, 38, - 16, 251, 110, 196, 99, 251, 9, 232, 38, 16, 234, 6, 196, 99, 251, 9, 232, - 38, 16, 223, 56, 196, 99, 251, 9, 232, 38, 16, 211, 100, 196, 99, 251, 9, - 232, 38, 16, 251, 109, 212, 255, 243, 78, 77, 50, 251, 65, 4, 235, 75, - 191, 21, 55, 203, 16, 211, 66, 248, 14, 248, 186, 113, 81, 219, 89, 4, - 82, 236, 96, 223, 91, 113, 238, 236, 196, 97, 113, 236, 180, 196, 97, - 113, 234, 65, 113, 239, 15, 113, 64, 51, 4, 246, 230, 81, 219, 88, 234, - 36, 113, 251, 101, 221, 198, 113, 229, 170, 113, 47, 228, 209, 249, 38, - 4, 212, 252, 47, 197, 238, 235, 79, 247, 230, 242, 219, 4, 213, 2, 55, - 196, 95, 113, 215, 199, 113, 228, 54, 113, 211, 64, 230, 82, 113, 211, - 64, 220, 117, 113, 210, 83, 113, 210, 82, 113, 236, 189, 238, 122, 16, - 232, 107, 109, 202, 24, 113, 251, 9, 232, 38, 16, 208, 24, 237, 93, 204, - 6, 221, 198, 113, 208, 210, 210, 194, 214, 59, 210, 194, 208, 205, 205, - 72, 113, 242, 190, 205, 72, 113, 45, 210, 104, 116, 106, 45, 210, 104, - 233, 162, 45, 210, 104, 110, 106, 50, 210, 104, 116, 106, 50, 210, 104, - 233, 162, 50, 210, 104, 110, 106, 45, 51, 248, 6, 116, 238, 210, 45, 51, - 248, 6, 233, 162, 45, 51, 248, 6, 110, 238, 210, 50, 51, 248, 6, 116, - 238, 210, 50, 51, 248, 6, 233, 162, 50, 51, 248, 6, 110, 238, 210, 45, - 238, 124, 248, 6, 116, 106, 45, 238, 124, 248, 6, 82, 209, 166, 45, 238, - 124, 248, 6, 110, 106, 238, 124, 248, 6, 233, 162, 50, 238, 124, 248, 6, - 116, 106, 50, 238, 124, 248, 6, 82, 209, 166, 50, 238, 124, 248, 6, 110, - 106, 223, 86, 233, 162, 228, 209, 219, 89, 233, 162, 116, 45, 211, 46, - 110, 50, 238, 124, 248, 6, 205, 48, 116, 50, 211, 46, 110, 45, 238, 124, - 248, 6, 205, 48, 200, 197, 198, 48, 200, 197, 248, 28, 198, 49, 51, 248, - 5, 248, 29, 51, 248, 5, 248, 29, 51, 248, 6, 138, 198, 49, 51, 248, 5, - 48, 16, 248, 28, 45, 81, 111, 219, 88, 50, 81, 111, 219, 88, 228, 209, - 205, 92, 219, 87, 228, 209, 205, 92, 219, 86, 228, 209, 205, 92, 219, 85, - 228, 209, 205, 92, 219, 84, 237, 52, 16, 155, 81, 24, 198, 49, 187, 237, - 52, 16, 155, 81, 24, 248, 29, 187, 237, 52, 16, 155, 81, 4, 242, 218, - 237, 52, 16, 155, 143, 24, 228, 209, 4, 242, 218, 237, 52, 16, 155, 132, - 24, 228, 209, 4, 242, 218, 237, 52, 16, 155, 81, 4, 197, 237, 237, 52, - 16, 155, 143, 24, 228, 209, 4, 197, 237, 237, 52, 16, 155, 132, 24, 228, - 209, 4, 197, 237, 237, 52, 16, 155, 81, 24, 193, 136, 237, 52, 16, 155, - 143, 24, 228, 209, 4, 193, 136, 237, 52, 16, 155, 132, 24, 228, 209, 4, - 193, 136, 237, 52, 16, 155, 143, 24, 228, 208, 237, 52, 16, 155, 132, 24, - 228, 208, 237, 52, 16, 155, 81, 24, 198, 49, 219, 200, 237, 52, 16, 155, - 81, 24, 248, 29, 219, 200, 51, 232, 120, 207, 18, 113, 234, 106, 113, 81, - 219, 89, 233, 162, 216, 140, 247, 244, 216, 140, 177, 138, 203, 34, 216, - 140, 203, 35, 138, 218, 251, 216, 140, 177, 138, 103, 203, 20, 216, 140, - 103, 203, 21, 138, 218, 251, 216, 140, 103, 203, 21, 222, 170, 216, 140, - 197, 217, 216, 140, 199, 60, 216, 140, 210, 13, 234, 164, 230, 155, 232, - 32, 198, 49, 210, 103, 248, 29, 210, 103, 198, 49, 238, 124, 248, 5, 248, - 29, 238, 124, 248, 5, 198, 49, 198, 37, 203, 98, 248, 5, 248, 29, 198, - 37, 203, 98, 248, 5, 64, 198, 1, 248, 171, 206, 184, 4, 242, 218, 201, - 46, 232, 164, 252, 12, 238, 121, 234, 91, 223, 71, 237, 93, 233, 166, - 113, 62, 206, 198, 54, 197, 237, 62, 219, 195, 54, 197, 237, 62, 196, 72, - 54, 197, 237, 62, 235, 78, 54, 197, 237, 62, 206, 198, 54, 197, 238, 4, - 81, 164, 62, 219, 195, 54, 197, 238, 4, 81, 164, 62, 206, 198, 197, 238, - 4, 54, 81, 164, 251, 150, 242, 174, 201, 53, 198, 140, 242, 174, 228, - 144, 4, 232, 144, 205, 135, 62, 216, 194, 219, 195, 197, 237, 62, 216, - 194, 206, 198, 197, 237, 62, 216, 194, 196, 72, 197, 237, 62, 216, 194, - 235, 78, 197, 237, 54, 81, 164, 62, 51, 39, 201, 58, 62, 242, 219, 39, - 207, 92, 208, 248, 113, 208, 248, 211, 92, 113, 208, 248, 211, 94, 113, - 208, 248, 202, 88, 113, 211, 155, 233, 153, 113, 16, 39, 212, 125, 16, - 39, 201, 93, 80, 229, 200, 16, 39, 201, 93, 80, 199, 48, 16, 39, 234, 53, - 80, 199, 48, 16, 39, 234, 53, 80, 198, 7, 16, 39, 234, 39, 16, 39, 251, - 255, 16, 39, 248, 185, 16, 39, 249, 90, 16, 39, 228, 209, 199, 225, 16, - 39, 219, 89, 233, 9, 16, 39, 81, 199, 225, 16, 39, 232, 107, 233, 9, 16, - 39, 247, 40, 207, 17, 16, 39, 203, 72, 211, 4, 16, 39, 203, 72, 223, 134, - 16, 39, 237, 165, 219, 79, 233, 228, 16, 39, 237, 30, 238, 231, 108, 16, - 39, 237, 30, 238, 231, 109, 16, 39, 237, 30, 238, 231, 139, 16, 39, 237, - 30, 238, 231, 137, 16, 39, 214, 92, 251, 255, 16, 39, 200, 65, 223, 199, - 16, 39, 234, 53, 80, 198, 8, 248, 81, 16, 39, 247, 78, 16, 39, 234, 53, - 80, 216, 193, 16, 39, 200, 221, 16, 39, 233, 228, 16, 39, 232, 222, 204, - 5, 16, 39, 230, 154, 204, 5, 16, 39, 207, 93, 204, 5, 16, 39, 196, 87, - 204, 5, 16, 39, 201, 242, 16, 39, 237, 71, 248, 85, 113, 211, 66, 248, - 14, 16, 39, 214, 62, 16, 39, 237, 72, 232, 107, 109, 16, 39, 200, 222, - 232, 107, 109, 211, 149, 106, 211, 149, 246, 204, 211, 149, 232, 110, - 211, 149, 223, 65, 232, 110, 211, 149, 248, 182, 247, 213, 211, 149, 248, - 22, 198, 173, 211, 149, 248, 0, 249, 43, 227, 242, 211, 149, 251, 88, 80, - 243, 77, 211, 149, 237, 170, 211, 149, 238, 110, 252, 3, 212, 123, 211, - 149, 54, 249, 91, 47, 17, 108, 47, 17, 109, 47, 17, 139, 47, 17, 137, 47, - 17, 153, 47, 17, 173, 47, 17, 181, 47, 17, 176, 47, 17, 184, 47, 31, 199, - 90, 47, 31, 234, 84, 47, 31, 197, 33, 47, 31, 198, 246, 47, 31, 232, 84, - 47, 31, 232, 234, 47, 31, 202, 125, 47, 31, 203, 239, 47, 31, 234, 118, - 47, 31, 213, 158, 47, 31, 197, 28, 127, 17, 108, 127, 17, 109, 127, 17, - 139, 127, 17, 137, 127, 17, 153, 127, 17, 173, 127, 17, 181, 127, 17, - 176, 127, 17, 184, 127, 31, 199, 90, 127, 31, 234, 84, 127, 31, 197, 33, - 127, 31, 198, 246, 127, 31, 232, 84, 127, 31, 232, 234, 127, 31, 202, - 125, 127, 31, 203, 239, 127, 31, 234, 118, 127, 31, 213, 158, 127, 31, - 197, 28, 17, 91, 232, 42, 201, 58, 17, 103, 232, 42, 201, 58, 17, 115, - 232, 42, 201, 58, 17, 232, 90, 232, 42, 201, 58, 17, 232, 185, 232, 42, - 201, 58, 17, 202, 131, 232, 42, 201, 58, 17, 203, 242, 232, 42, 201, 58, - 17, 234, 121, 232, 42, 201, 58, 17, 213, 161, 232, 42, 201, 58, 31, 199, - 91, 232, 42, 201, 58, 31, 234, 85, 232, 42, 201, 58, 31, 197, 34, 232, - 42, 201, 58, 31, 198, 247, 232, 42, 201, 58, 31, 232, 85, 232, 42, 201, - 58, 31, 232, 235, 232, 42, 201, 58, 31, 202, 126, 232, 42, 201, 58, 31, - 203, 240, 232, 42, 201, 58, 31, 234, 119, 232, 42, 201, 58, 31, 213, 159, - 232, 42, 201, 58, 31, 197, 29, 232, 42, 201, 58, 127, 8, 2, 1, 65, 127, - 8, 2, 1, 250, 70, 127, 8, 2, 1, 247, 145, 127, 8, 2, 1, 238, 80, 127, 8, - 2, 1, 73, 127, 8, 2, 1, 233, 134, 127, 8, 2, 1, 232, 14, 127, 8, 2, 1, - 230, 83, 127, 8, 2, 1, 70, 127, 8, 2, 1, 223, 7, 127, 8, 2, 1, 222, 125, - 127, 8, 2, 1, 170, 127, 8, 2, 1, 218, 147, 127, 8, 2, 1, 215, 47, 127, 8, - 2, 1, 74, 127, 8, 2, 1, 210, 226, 127, 8, 2, 1, 208, 97, 127, 8, 2, 1, - 148, 127, 8, 2, 1, 206, 3, 127, 8, 2, 1, 200, 39, 127, 8, 2, 1, 69, 127, - 8, 2, 1, 196, 8, 127, 8, 2, 1, 193, 221, 127, 8, 2, 1, 192, 235, 127, 8, - 2, 1, 192, 159, 127, 8, 2, 1, 191, 166, 47, 8, 6, 1, 65, 47, 8, 6, 1, - 250, 70, 47, 8, 6, 1, 247, 145, 47, 8, 6, 1, 238, 80, 47, 8, 6, 1, 73, - 47, 8, 6, 1, 233, 134, 47, 8, 6, 1, 232, 14, 47, 8, 6, 1, 230, 83, 47, 8, - 6, 1, 70, 47, 8, 6, 1, 223, 7, 47, 8, 6, 1, 222, 125, 47, 8, 6, 1, 170, - 47, 8, 6, 1, 218, 147, 47, 8, 6, 1, 215, 47, 47, 8, 6, 1, 74, 47, 8, 6, - 1, 210, 226, 47, 8, 6, 1, 208, 97, 47, 8, 6, 1, 148, 47, 8, 6, 1, 206, 3, - 47, 8, 6, 1, 200, 39, 47, 8, 6, 1, 69, 47, 8, 6, 1, 196, 8, 47, 8, 6, 1, - 193, 221, 47, 8, 6, 1, 192, 235, 47, 8, 6, 1, 192, 159, 47, 8, 6, 1, 191, - 166, 47, 8, 2, 1, 65, 47, 8, 2, 1, 250, 70, 47, 8, 2, 1, 247, 145, 47, 8, - 2, 1, 238, 80, 47, 8, 2, 1, 73, 47, 8, 2, 1, 233, 134, 47, 8, 2, 1, 232, - 14, 47, 8, 2, 1, 230, 83, 47, 8, 2, 1, 70, 47, 8, 2, 1, 223, 7, 47, 8, 2, - 1, 222, 125, 47, 8, 2, 1, 170, 47, 8, 2, 1, 218, 147, 47, 8, 2, 1, 215, - 47, 47, 8, 2, 1, 74, 47, 8, 2, 1, 210, 226, 47, 8, 2, 1, 208, 97, 47, 8, - 2, 1, 148, 47, 8, 2, 1, 206, 3, 47, 8, 2, 1, 200, 39, 47, 8, 2, 1, 69, - 47, 8, 2, 1, 196, 8, 47, 8, 2, 1, 193, 221, 47, 8, 2, 1, 192, 235, 47, 8, - 2, 1, 192, 159, 47, 8, 2, 1, 191, 166, 47, 17, 191, 77, 214, 92, 47, 31, - 234, 84, 214, 92, 47, 31, 197, 33, 214, 92, 47, 31, 198, 246, 214, 92, - 47, 31, 232, 84, 214, 92, 47, 31, 232, 234, 214, 92, 47, 31, 202, 125, - 214, 92, 47, 31, 203, 239, 214, 92, 47, 31, 234, 118, 214, 92, 47, 31, - 213, 158, 214, 92, 47, 31, 197, 28, 54, 47, 17, 108, 54, 47, 17, 109, 54, - 47, 17, 139, 54, 47, 17, 137, 54, 47, 17, 153, 54, 47, 17, 173, 54, 47, - 17, 181, 54, 47, 17, 176, 54, 47, 17, 184, 54, 47, 31, 199, 90, 214, 92, - 47, 17, 191, 77, 111, 122, 155, 228, 208, 111, 122, 88, 228, 208, 111, - 122, 155, 195, 132, 111, 122, 88, 195, 132, 111, 122, 155, 197, 221, 237, - 171, 228, 208, 111, 122, 88, 197, 221, 237, 171, 228, 208, 111, 122, 155, - 197, 221, 237, 171, 195, 132, 111, 122, 88, 197, 221, 237, 171, 195, 132, - 111, 122, 155, 208, 20, 237, 171, 228, 208, 111, 122, 88, 208, 20, 237, - 171, 228, 208, 111, 122, 155, 208, 20, 237, 171, 195, 132, 111, 122, 88, - 208, 20, 237, 171, 195, 132, 111, 122, 155, 143, 24, 187, 111, 122, 143, - 155, 24, 50, 229, 185, 111, 122, 143, 88, 24, 50, 219, 108, 111, 122, 88, - 143, 24, 187, 111, 122, 155, 143, 24, 219, 200, 111, 122, 143, 155, 24, - 45, 229, 185, 111, 122, 143, 88, 24, 45, 219, 108, 111, 122, 88, 143, 24, - 219, 200, 111, 122, 155, 132, 24, 187, 111, 122, 132, 155, 24, 50, 229, - 185, 111, 122, 132, 88, 24, 50, 219, 108, 111, 122, 88, 132, 24, 187, - 111, 122, 155, 132, 24, 219, 200, 111, 122, 132, 155, 24, 45, 229, 185, - 111, 122, 132, 88, 24, 45, 219, 108, 111, 122, 88, 132, 24, 219, 200, - 111, 122, 155, 81, 24, 187, 111, 122, 81, 155, 24, 50, 229, 185, 111, - 122, 132, 88, 24, 50, 143, 219, 108, 111, 122, 143, 88, 24, 50, 132, 219, - 108, 111, 122, 81, 88, 24, 50, 219, 108, 111, 122, 143, 155, 24, 50, 132, - 229, 185, 111, 122, 132, 155, 24, 50, 143, 229, 185, 111, 122, 88, 81, - 24, 187, 111, 122, 155, 81, 24, 219, 200, 111, 122, 81, 155, 24, 45, 229, - 185, 111, 122, 132, 88, 24, 45, 143, 219, 108, 111, 122, 143, 88, 24, 45, - 132, 219, 108, 111, 122, 81, 88, 24, 45, 219, 108, 111, 122, 143, 155, - 24, 45, 132, 229, 185, 111, 122, 132, 155, 24, 45, 143, 229, 185, 111, - 122, 88, 81, 24, 219, 200, 111, 122, 155, 143, 24, 228, 208, 111, 122, - 45, 88, 24, 50, 143, 219, 108, 111, 122, 50, 88, 24, 45, 143, 219, 108, - 111, 122, 143, 155, 24, 228, 209, 229, 185, 111, 122, 143, 88, 24, 228, - 209, 219, 108, 111, 122, 50, 155, 24, 45, 143, 229, 185, 111, 122, 45, - 155, 24, 50, 143, 229, 185, 111, 122, 88, 143, 24, 228, 208, 111, 122, - 155, 132, 24, 228, 208, 111, 122, 45, 88, 24, 50, 132, 219, 108, 111, - 122, 50, 88, 24, 45, 132, 219, 108, 111, 122, 132, 155, 24, 228, 209, - 229, 185, 111, 122, 132, 88, 24, 228, 209, 219, 108, 111, 122, 50, 155, - 24, 45, 132, 229, 185, 111, 122, 45, 155, 24, 50, 132, 229, 185, 111, - 122, 88, 132, 24, 228, 208, 111, 122, 155, 81, 24, 228, 208, 111, 122, - 45, 88, 24, 50, 81, 219, 108, 111, 122, 50, 88, 24, 45, 81, 219, 108, - 111, 122, 81, 155, 24, 228, 209, 229, 185, 111, 122, 132, 88, 24, 143, - 228, 209, 219, 108, 111, 122, 143, 88, 24, 132, 228, 209, 219, 108, 111, - 122, 81, 88, 24, 228, 209, 219, 108, 111, 122, 45, 132, 88, 24, 50, 143, - 219, 108, 111, 122, 50, 132, 88, 24, 45, 143, 219, 108, 111, 122, 45, - 143, 88, 24, 50, 132, 219, 108, 111, 122, 50, 143, 88, 24, 45, 132, 219, - 108, 111, 122, 143, 155, 24, 132, 228, 209, 229, 185, 111, 122, 132, 155, - 24, 143, 228, 209, 229, 185, 111, 122, 50, 155, 24, 45, 81, 229, 185, - 111, 122, 45, 155, 24, 50, 81, 229, 185, 111, 122, 88, 81, 24, 228, 208, - 111, 122, 155, 54, 237, 171, 228, 208, 111, 122, 88, 54, 237, 171, 228, - 208, 111, 122, 155, 54, 237, 171, 195, 132, 111, 122, 88, 54, 237, 171, - 195, 132, 111, 122, 54, 228, 208, 111, 122, 54, 195, 132, 111, 122, 143, - 202, 165, 24, 50, 235, 89, 111, 122, 143, 54, 24, 50, 202, 164, 111, 122, - 54, 143, 24, 187, 111, 122, 143, 202, 165, 24, 45, 235, 89, 111, 122, - 143, 54, 24, 45, 202, 164, 111, 122, 54, 143, 24, 219, 200, 111, 122, - 132, 202, 165, 24, 50, 235, 89, 111, 122, 132, 54, 24, 50, 202, 164, 111, - 122, 54, 132, 24, 187, 111, 122, 132, 202, 165, 24, 45, 235, 89, 111, - 122, 132, 54, 24, 45, 202, 164, 111, 122, 54, 132, 24, 219, 200, 111, - 122, 81, 202, 165, 24, 50, 235, 89, 111, 122, 81, 54, 24, 50, 202, 164, - 111, 122, 54, 81, 24, 187, 111, 122, 81, 202, 165, 24, 45, 235, 89, 111, - 122, 81, 54, 24, 45, 202, 164, 111, 122, 54, 81, 24, 219, 200, 111, 122, - 143, 202, 165, 24, 228, 209, 235, 89, 111, 122, 143, 54, 24, 228, 209, - 202, 164, 111, 122, 54, 143, 24, 228, 208, 111, 122, 132, 202, 165, 24, - 228, 209, 235, 89, 111, 122, 132, 54, 24, 228, 209, 202, 164, 111, 122, - 54, 132, 24, 228, 208, 111, 122, 81, 202, 165, 24, 228, 209, 235, 89, - 111, 122, 81, 54, 24, 228, 209, 202, 164, 111, 122, 54, 81, 24, 228, 208, - 111, 122, 155, 250, 223, 143, 24, 187, 111, 122, 155, 250, 223, 143, 24, - 219, 200, 111, 122, 155, 250, 223, 132, 24, 219, 200, 111, 122, 155, 250, - 223, 132, 24, 187, 111, 122, 155, 236, 250, 116, 50, 118, 110, 219, 200, - 111, 122, 155, 236, 250, 116, 45, 118, 110, 187, 111, 122, 155, 236, 250, - 238, 170, 111, 122, 155, 219, 200, 111, 122, 155, 196, 73, 111, 122, 155, - 187, 111, 122, 155, 235, 79, 111, 122, 88, 219, 200, 111, 122, 88, 196, - 73, 111, 122, 88, 187, 111, 122, 88, 235, 79, 111, 122, 155, 45, 24, 88, - 187, 111, 122, 155, 132, 24, 88, 235, 79, 111, 122, 88, 45, 24, 155, 187, - 111, 122, 88, 132, 24, 155, 235, 79, 116, 134, 248, 81, 110, 91, 234, - 117, 248, 81, 110, 91, 208, 18, 248, 81, 110, 115, 234, 115, 248, 81, - 110, 134, 248, 81, 110, 232, 185, 234, 115, 248, 81, 110, 115, 208, 16, - 248, 81, 110, 203, 242, 234, 115, 248, 81, 232, 42, 248, 81, 45, 203, - 242, 234, 115, 248, 81, 45, 115, 208, 16, 248, 81, 45, 232, 185, 234, - 115, 248, 81, 45, 134, 248, 81, 45, 115, 234, 115, 248, 81, 45, 91, 208, - 18, 248, 81, 45, 91, 234, 117, 248, 81, 50, 134, 248, 81, 155, 203, 148, - 216, 194, 203, 148, 237, 176, 203, 148, 116, 91, 234, 117, 248, 81, 50, - 91, 234, 117, 248, 81, 208, 22, 110, 219, 200, 208, 22, 110, 187, 208, - 22, 116, 219, 200, 208, 22, 116, 45, 24, 110, 45, 24, 110, 187, 208, 22, - 116, 45, 24, 110, 187, 208, 22, 116, 45, 24, 116, 50, 24, 110, 219, 200, - 208, 22, 116, 45, 24, 116, 50, 24, 110, 187, 208, 22, 116, 187, 208, 22, - 116, 50, 24, 110, 219, 200, 208, 22, 116, 50, 24, 110, 45, 24, 110, 187, - 62, 201, 185, 64, 201, 185, 64, 51, 4, 206, 108, 238, 209, 64, 51, 238, - 242, 62, 2, 201, 185, 51, 4, 228, 209, 232, 220, 51, 4, 81, 232, 220, 51, - 4, 211, 28, 238, 164, 232, 220, 51, 4, 116, 45, 118, 110, 50, 232, 220, - 51, 4, 116, 50, 118, 110, 45, 232, 220, 51, 4, 236, 250, 238, 164, 232, - 220, 62, 2, 201, 185, 64, 2, 201, 185, 62, 207, 87, 64, 207, 87, 62, 81, - 207, 87, 64, 81, 207, 87, 62, 210, 107, 64, 210, 107, 62, 196, 72, 197, - 237, 64, 196, 72, 197, 237, 62, 196, 72, 2, 197, 237, 64, 196, 72, 2, - 197, 237, 62, 206, 198, 197, 237, 64, 206, 198, 197, 237, 62, 206, 198, - 2, 197, 237, 64, 206, 198, 2, 197, 237, 62, 206, 198, 209, 52, 64, 206, - 198, 209, 52, 62, 235, 78, 197, 237, 64, 235, 78, 197, 237, 62, 235, 78, - 2, 197, 237, 64, 235, 78, 2, 197, 237, 62, 219, 195, 197, 237, 64, 219, - 195, 197, 237, 62, 219, 195, 2, 197, 237, 64, 219, 195, 2, 197, 237, 62, - 219, 195, 209, 52, 64, 219, 195, 209, 52, 62, 236, 243, 64, 236, 243, 64, - 236, 244, 238, 242, 62, 2, 236, 243, 232, 194, 218, 210, 64, 242, 218, - 235, 94, 242, 218, 242, 219, 4, 81, 232, 220, 247, 196, 62, 242, 218, - 242, 219, 4, 45, 134, 248, 91, 242, 219, 4, 50, 134, 248, 91, 242, 219, - 4, 110, 134, 248, 91, 242, 219, 4, 116, 134, 248, 91, 242, 219, 4, 116, - 50, 208, 22, 248, 91, 242, 219, 4, 251, 124, 247, 170, 116, 45, 208, 22, - 248, 91, 45, 134, 62, 242, 218, 50, 134, 62, 242, 218, 223, 67, 247, 200, - 223, 67, 64, 242, 218, 116, 134, 223, 67, 64, 242, 218, 110, 134, 223, - 67, 64, 242, 218, 116, 45, 208, 22, 242, 212, 250, 222, 116, 50, 208, 22, - 242, 212, 250, 222, 110, 50, 208, 22, 242, 212, 250, 222, 110, 45, 208, - 22, 242, 212, 250, 222, 116, 134, 242, 218, 110, 134, 242, 218, 62, 110, - 50, 197, 237, 62, 110, 45, 197, 237, 62, 116, 45, 197, 237, 62, 116, 50, - 197, 237, 64, 247, 200, 51, 4, 45, 134, 248, 91, 51, 4, 50, 134, 248, 91, - 51, 4, 116, 45, 236, 250, 134, 248, 91, 51, 4, 110, 50, 236, 250, 134, - 248, 91, 64, 51, 4, 81, 248, 106, 219, 88, 64, 196, 72, 197, 238, 4, 236, - 96, 196, 72, 197, 238, 4, 45, 134, 248, 91, 196, 72, 197, 238, 4, 50, - 134, 248, 91, 219, 245, 242, 218, 64, 51, 4, 116, 45, 208, 21, 64, 51, 4, - 110, 45, 208, 21, 64, 51, 4, 110, 50, 208, 21, 64, 51, 4, 116, 50, 208, - 21, 64, 242, 219, 4, 116, 45, 208, 21, 64, 242, 219, 4, 110, 45, 208, 21, - 64, 242, 219, 4, 110, 50, 208, 21, 64, 242, 219, 4, 116, 50, 208, 21, - 116, 45, 197, 237, 116, 50, 197, 237, 110, 45, 197, 237, 64, 216, 194, - 201, 185, 62, 216, 194, 201, 185, 64, 216, 194, 2, 201, 185, 62, 216, - 194, 2, 201, 185, 110, 50, 197, 237, 62, 200, 194, 4, 207, 114, 242, 162, - 196, 113, 202, 43, 242, 29, 62, 201, 97, 64, 201, 97, 219, 105, 198, 203, - 200, 193, 250, 163, 213, 22, 237, 41, 213, 22, 238, 251, 211, 51, 62, - 199, 101, 64, 199, 101, 249, 57, 248, 14, 249, 57, 111, 4, 243, 77, 249, - 57, 111, 4, 192, 235, 205, 149, 196, 114, 4, 207, 145, 235, 52, 228, 150, - 248, 157, 64, 203, 44, 209, 166, 62, 203, 44, 209, 166, 203, 135, 207, - 13, 206, 117, 232, 150, 229, 192, 247, 200, 62, 45, 209, 51, 223, 120, - 62, 50, 209, 51, 223, 120, 64, 45, 209, 51, 223, 120, 64, 132, 209, 51, - 223, 120, 64, 50, 209, 51, 223, 120, 64, 143, 209, 51, 223, 120, 202, 99, - 24, 238, 168, 247, 23, 57, 207, 159, 57, 248, 114, 57, 247, 103, 251, 48, - 211, 29, 238, 170, 243, 48, 206, 254, 238, 171, 80, 218, 231, 238, 171, - 80, 222, 227, 201, 98, 24, 238, 180, 233, 33, 113, 251, 238, 203, 138, - 230, 29, 24, 202, 208, 210, 52, 113, 192, 22, 192, 106, 197, 227, 39, - 229, 187, 197, 227, 39, 220, 19, 197, 227, 39, 232, 202, 197, 227, 39, - 198, 204, 197, 227, 39, 193, 64, 197, 227, 39, 193, 141, 197, 227, 39, - 215, 168, 197, 227, 39, 234, 163, 193, 92, 80, 237, 15, 64, 232, 54, 233, - 62, 64, 202, 59, 233, 62, 62, 202, 59, 233, 62, 64, 200, 194, 4, 207, - 114, 232, 197, 208, 18, 215, 188, 219, 238, 208, 18, 215, 188, 216, 161, - 233, 1, 57, 234, 163, 217, 77, 57, 222, 140, 205, 110, 196, 53, 214, 80, - 209, 69, 250, 208, 199, 159, 231, 115, 247, 76, 219, 162, 195, 35, 219, - 119, 205, 75, 205, 178, 247, 58, 250, 240, 209, 112, 64, 243, 57, 221, - 114, 64, 243, 57, 208, 9, 64, 243, 57, 206, 126, 64, 243, 57, 248, 104, - 64, 243, 57, 221, 52, 64, 243, 57, 210, 64, 62, 243, 57, 221, 114, 62, - 243, 57, 208, 9, 62, 243, 57, 206, 126, 62, 243, 57, 248, 104, 62, 243, - 57, 221, 52, 62, 243, 57, 210, 64, 62, 201, 240, 200, 206, 64, 229, 192, - 200, 206, 64, 236, 244, 200, 206, 62, 242, 159, 200, 206, 64, 201, 240, - 200, 206, 62, 229, 192, 200, 206, 62, 236, 244, 200, 206, 64, 242, 159, - 200, 206, 228, 150, 201, 190, 208, 18, 212, 249, 234, 117, 212, 249, 248, - 219, 234, 117, 212, 244, 248, 219, 202, 124, 212, 244, 215, 83, 232, 167, - 57, 215, 83, 214, 192, 57, 215, 83, 203, 122, 57, 193, 103, 200, 59, 238, - 170, 234, 160, 200, 59, 238, 170, 196, 83, 207, 83, 113, 207, 83, 16, 39, - 196, 250, 209, 90, 207, 83, 16, 39, 196, 248, 209, 90, 207, 83, 16, 39, - 196, 247, 209, 90, 207, 83, 16, 39, 196, 245, 209, 90, 207, 83, 16, 39, - 196, 243, 209, 90, 207, 83, 16, 39, 196, 241, 209, 90, 207, 83, 16, 39, - 196, 239, 209, 90, 207, 83, 16, 39, 231, 112, 217, 9, 62, 196, 83, 207, - 83, 113, 207, 84, 210, 126, 113, 210, 94, 210, 126, 113, 209, 250, 210, - 126, 57, 193, 90, 113, 236, 236, 233, 61, 236, 236, 233, 60, 236, 236, - 233, 59, 236, 236, 233, 58, 236, 236, 233, 57, 236, 236, 233, 56, 64, - 242, 219, 4, 75, 187, 64, 242, 219, 4, 103, 236, 94, 62, 242, 219, 4, 64, - 75, 187, 62, 242, 219, 4, 103, 64, 236, 94, 215, 204, 39, 192, 106, 215, - 204, 39, 192, 21, 236, 217, 39, 230, 171, 192, 106, 236, 217, 39, 219, - 154, 192, 21, 236, 217, 39, 219, 154, 192, 106, 236, 217, 39, 230, 171, - 192, 21, 64, 232, 177, 62, 232, 177, 230, 29, 24, 209, 171, 251, 76, 238, - 167, 200, 126, 201, 107, 80, 251, 212, 205, 93, 251, 140, 232, 146, 231, - 125, 201, 107, 80, 229, 159, 250, 122, 113, 232, 162, 211, 0, 64, 201, - 97, 115, 219, 83, 238, 228, 187, 115, 219, 83, 238, 228, 219, 200, 193, - 153, 57, 136, 195, 9, 57, 235, 84, 233, 1, 57, 235, 84, 217, 77, 57, 223, - 77, 233, 1, 24, 217, 77, 57, 217, 77, 24, 233, 1, 57, 217, 77, 4, 201, - 23, 57, 217, 77, 4, 201, 23, 24, 217, 77, 24, 233, 1, 57, 81, 217, 77, 4, - 201, 23, 57, 228, 209, 217, 77, 4, 201, 23, 57, 216, 194, 64, 242, 218, - 216, 194, 62, 242, 218, 216, 194, 2, 64, 242, 218, 217, 29, 113, 236, - 153, 113, 196, 80, 210, 93, 113, 242, 41, 232, 37, 196, 49, 214, 69, 246, - 215, 210, 175, 222, 146, 195, 77, 243, 27, 62, 215, 189, 219, 102, 203, - 171, 204, 17, 207, 255, 203, 250, 202, 31, 249, 61, 249, 23, 112, 221, - 197, 64, 235, 64, 217, 70, 64, 235, 64, 221, 114, 62, 235, 64, 217, 70, - 62, 235, 64, 221, 114, 202, 44, 193, 51, 202, 47, 200, 194, 248, 192, - 242, 162, 207, 144, 62, 202, 43, 198, 205, 242, 163, 24, 207, 144, 152, - 64, 203, 44, 209, 166, 152, 62, 203, 44, 209, 166, 64, 236, 244, 223, - 135, 201, 185, 238, 163, 219, 253, 236, 184, 247, 54, 211, 54, 209, 171, - 247, 55, 202, 80, 229, 169, 4, 64, 238, 170, 47, 238, 163, 219, 253, 246, - 205, 213, 31, 234, 30, 251, 106, 211, 85, 45, 193, 127, 198, 15, 62, 197, - 6, 45, 193, 127, 198, 15, 64, 197, 6, 45, 193, 127, 198, 15, 62, 45, 219, - 254, 216, 160, 64, 45, 219, 254, 216, 160, 235, 59, 202, 71, 57, 88, 64, - 235, 78, 197, 237, 45, 242, 171, 234, 30, 112, 205, 149, 233, 42, 236, - 250, 223, 135, 64, 242, 219, 223, 135, 62, 201, 185, 62, 197, 199, 207, - 24, 45, 234, 29, 207, 24, 45, 234, 28, 250, 137, 16, 39, 196, 53, 88, - 242, 219, 4, 201, 23, 24, 103, 183, 56, 210, 14, 206, 200, 223, 79, 210, - 14, 219, 197, 223, 79, 210, 14, 223, 65, 210, 14, 62, 238, 171, 211, 94, - 203, 73, 203, 61, 203, 7, 242, 248, 247, 32, 229, 86, 202, 132, 231, 126, - 193, 51, 228, 122, 231, 126, 4, 229, 253, 217, 52, 16, 39, 219, 107, 215, - 168, 196, 114, 211, 94, 230, 155, 232, 91, 232, 178, 223, 135, 228, 229, - 232, 247, 205, 173, 51, 232, 90, 238, 209, 202, 103, 227, 253, 202, 107, - 209, 242, 4, 249, 61, 199, 82, 222, 247, 249, 43, 113, 229, 197, 230, - 173, 113, 232, 45, 208, 146, 238, 135, 211, 94, 62, 201, 185, 64, 232, - 178, 4, 228, 209, 82, 62, 201, 24, 62, 205, 183, 205, 79, 116, 248, 86, - 205, 79, 62, 205, 79, 110, 248, 86, 205, 79, 64, 205, 79, 64, 88, 243, - 78, 77, 199, 102, 219, 16, 57, 199, 177, 235, 58, 251, 171, 234, 25, 207, - 142, 232, 190, 207, 142, 230, 20, 195, 64, 230, 20, 193, 3, 230, 20, 110, - 50, 210, 24, 210, 24, 116, 50, 210, 24, 64, 213, 194, 62, 213, 194, 243, - 78, 77, 88, 243, 78, 77, 215, 112, 192, 235, 88, 215, 112, 192, 235, 249, - 57, 192, 235, 88, 249, 57, 192, 235, 211, 0, 35, 238, 170, 88, 35, 238, - 170, 211, 66, 246, 230, 238, 170, 88, 211, 66, 246, 230, 238, 170, 8, - 238, 170, 203, 146, 64, 8, 238, 170, 211, 0, 8, 238, 170, 217, 73, 238, - 170, 201, 98, 80, 237, 163, 232, 90, 199, 122, 250, 143, 232, 90, 249, - 58, 250, 143, 88, 232, 90, 249, 58, 250, 143, 232, 90, 242, 157, 250, - 143, 62, 232, 90, 209, 53, 201, 97, 64, 232, 90, 209, 53, 201, 97, 201, - 235, 201, 33, 211, 0, 64, 201, 97, 47, 64, 201, 97, 211, 66, 246, 230, - 62, 201, 97, 62, 246, 230, 64, 201, 97, 211, 0, 62, 201, 97, 88, 211, 0, - 62, 201, 97, 209, 122, 201, 97, 203, 146, 64, 201, 97, 88, 250, 143, 211, - 66, 246, 230, 250, 143, 234, 121, 201, 201, 250, 143, 234, 121, 209, 53, - 62, 201, 97, 234, 121, 209, 53, 209, 122, 201, 97, 202, 131, 209, 53, 62, - 201, 97, 234, 121, 209, 53, 207, 85, 62, 201, 97, 88, 234, 121, 209, 53, - 207, 85, 62, 201, 97, 197, 34, 209, 53, 62, 201, 97, 202, 126, 209, 53, - 250, 143, 199, 122, 250, 143, 211, 66, 246, 230, 199, 122, 250, 143, 88, - 199, 122, 250, 143, 202, 131, 209, 230, 62, 24, 64, 232, 149, 62, 232, - 149, 64, 232, 149, 234, 121, 209, 230, 211, 0, 62, 232, 149, 47, 211, 66, - 246, 230, 234, 121, 209, 53, 201, 97, 88, 199, 122, 209, 122, 250, 143, - 202, 45, 198, 167, 197, 230, 202, 45, 88, 243, 53, 202, 45, 201, 237, 88, - 201, 237, 249, 58, 250, 143, 234, 121, 199, 122, 208, 182, 250, 143, 88, - 234, 121, 199, 122, 208, 182, 250, 143, 238, 171, 77, 203, 146, 64, 242, - 218, 214, 92, 112, 238, 171, 77, 110, 50, 235, 54, 64, 201, 185, 116, 50, - 235, 54, 64, 201, 185, 110, 50, 203, 146, 64, 201, 185, 116, 50, 203, - 146, 64, 201, 185, 62, 208, 8, 87, 211, 32, 64, 208, 8, 87, 211, 32, 64, - 233, 175, 87, 211, 32, 62, 236, 244, 216, 18, 64, 192, 235, 88, 233, 175, - 87, 113, 155, 81, 164, 216, 194, 81, 164, 88, 81, 164, 88, 202, 165, 152, - 242, 27, 207, 247, 87, 211, 32, 88, 202, 165, 242, 27, 207, 247, 87, 211, - 32, 88, 54, 152, 242, 27, 207, 247, 87, 211, 32, 88, 54, 242, 27, 207, - 247, 87, 211, 32, 88, 131, 202, 165, 242, 27, 207, 247, 87, 211, 32, 88, - 131, 54, 242, 27, 207, 247, 87, 211, 32, 238, 116, 201, 76, 210, 118, 3, - 211, 32, 88, 233, 175, 87, 211, 32, 88, 229, 192, 233, 175, 87, 211, 32, - 88, 62, 229, 191, 206, 117, 88, 62, 229, 192, 247, 200, 232, 150, 229, - 191, 206, 117, 232, 150, 229, 192, 247, 200, 216, 194, 45, 210, 104, 211, - 32, 216, 194, 50, 210, 104, 211, 32, 216, 194, 232, 163, 45, 210, 104, - 211, 32, 216, 194, 232, 163, 50, 210, 104, 211, 32, 216, 194, 219, 195, - 251, 65, 248, 6, 211, 32, 216, 194, 206, 198, 251, 65, 248, 6, 211, 32, - 88, 219, 195, 251, 65, 207, 247, 87, 211, 32, 88, 206, 198, 251, 65, 207, - 247, 87, 211, 32, 88, 219, 195, 251, 65, 248, 6, 211, 32, 88, 206, 198, - 251, 65, 248, 6, 211, 32, 155, 45, 198, 37, 203, 98, 248, 6, 211, 32, - 155, 50, 198, 37, 203, 98, 248, 6, 211, 32, 216, 194, 45, 238, 124, 248, - 6, 211, 32, 216, 194, 50, 238, 124, 248, 6, 211, 32, 236, 196, 214, 92, - 47, 17, 108, 236, 196, 214, 92, 47, 17, 109, 236, 196, 214, 92, 47, 17, - 139, 236, 196, 214, 92, 47, 17, 137, 236, 196, 214, 92, 47, 17, 153, 236, - 196, 214, 92, 47, 17, 173, 236, 196, 214, 92, 47, 17, 181, 236, 196, 214, - 92, 47, 17, 176, 236, 196, 214, 92, 47, 17, 184, 236, 196, 214, 92, 47, - 31, 199, 90, 236, 196, 47, 49, 17, 108, 236, 196, 47, 49, 17, 109, 236, - 196, 47, 49, 17, 139, 236, 196, 47, 49, 17, 137, 236, 196, 47, 49, 17, - 153, 236, 196, 47, 49, 17, 173, 236, 196, 47, 49, 17, 181, 236, 196, 47, - 49, 17, 176, 236, 196, 47, 49, 17, 184, 236, 196, 47, 49, 31, 199, 90, - 236, 196, 214, 92, 47, 49, 17, 108, 236, 196, 214, 92, 47, 49, 17, 109, - 236, 196, 214, 92, 47, 49, 17, 139, 236, 196, 214, 92, 47, 49, 17, 137, - 236, 196, 214, 92, 47, 49, 17, 153, 236, 196, 214, 92, 47, 49, 17, 173, - 236, 196, 214, 92, 47, 49, 17, 181, 236, 196, 214, 92, 47, 49, 17, 176, - 236, 196, 214, 92, 47, 49, 17, 184, 236, 196, 214, 92, 47, 49, 31, 199, - 90, 88, 193, 75, 96, 55, 88, 107, 57, 88, 216, 18, 57, 88, 236, 155, 57, - 88, 201, 253, 234, 160, 55, 88, 96, 55, 88, 185, 234, 160, 55, 235, 69, - 209, 55, 96, 55, 88, 206, 109, 96, 55, 197, 236, 96, 55, 88, 197, 236, - 96, 55, 237, 169, 197, 236, 96, 55, 88, 237, 169, 197, 236, 96, 55, 62, - 96, 55, 198, 220, 198, 47, 96, 250, 185, 198, 220, 248, 27, 96, 250, 185, - 62, 96, 250, 185, 88, 62, 238, 116, 235, 75, 24, 96, 55, 88, 62, 238, - 116, 196, 62, 24, 96, 55, 201, 182, 62, 96, 55, 88, 239, 8, 62, 96, 55, - 206, 197, 64, 96, 55, 219, 194, 64, 96, 55, 249, 95, 203, 146, 64, 96, - 55, 232, 57, 203, 146, 64, 96, 55, 88, 110, 206, 196, 64, 96, 55, 88, - 116, 206, 196, 64, 96, 55, 212, 251, 110, 206, 196, 64, 96, 55, 238, 124, - 218, 236, 212, 251, 116, 206, 196, 64, 96, 55, 47, 88, 64, 96, 55, 193, - 86, 96, 55, 248, 90, 201, 253, 234, 160, 55, 248, 90, 96, 55, 248, 90, - 185, 234, 160, 55, 88, 248, 90, 201, 253, 234, 160, 55, 88, 248, 90, 96, - 55, 88, 248, 90, 185, 234, 160, 55, 199, 124, 96, 55, 88, 199, 123, 96, - 55, 193, 113, 96, 55, 88, 193, 113, 96, 55, 211, 60, 96, 55, 54, 238, - 124, 218, 236, 115, 236, 206, 251, 64, 64, 197, 238, 238, 242, 2, 64, - 197, 237, 209, 245, 211, 66, 200, 223, 211, 66, 200, 175, 45, 206, 2, - 249, 81, 237, 67, 50, 206, 2, 249, 81, 237, 67, 211, 46, 4, 75, 223, 89, - 207, 14, 202, 19, 208, 223, 200, 223, 200, 176, 208, 223, 202, 18, 81, - 249, 38, 4, 228, 209, 105, 13, 206, 175, 236, 249, 177, 236, 154, 13, - 233, 42, 236, 249, 112, 219, 5, 251, 74, 112, 219, 5, 211, 45, 64, 236, - 244, 4, 246, 228, 236, 96, 24, 4, 236, 96, 234, 89, 80, 211, 58, 196, 61, - 110, 50, 238, 211, 4, 236, 96, 116, 45, 238, 211, 4, 236, 96, 45, 211, 2, - 222, 172, 50, 211, 2, 222, 172, 232, 42, 211, 2, 222, 172, 219, 245, 132, - 199, 223, 219, 245, 143, 199, 223, 45, 24, 50, 54, 197, 53, 45, 24, 50, - 199, 223, 45, 215, 116, 177, 50, 199, 223, 177, 45, 199, 223, 132, 199, - 224, 4, 242, 219, 56, 218, 211, 236, 161, 247, 157, 228, 209, 206, 47, - 64, 239, 7, 236, 243, 64, 239, 7, 236, 244, 4, 117, 198, 177, 64, 239, 7, - 236, 244, 4, 96, 198, 177, 64, 51, 4, 117, 198, 177, 64, 51, 4, 96, 198, - 177, 13, 45, 64, 51, 248, 5, 13, 50, 64, 51, 248, 5, 13, 45, 251, 65, - 248, 5, 13, 50, 251, 65, 248, 5, 13, 45, 54, 251, 65, 248, 5, 13, 50, 54, - 251, 65, 248, 5, 13, 45, 64, 198, 37, 203, 98, 248, 5, 13, 50, 64, 198, - 37, 203, 98, 248, 5, 13, 45, 232, 163, 210, 103, 13, 50, 232, 163, 210, - 103, 196, 62, 208, 20, 55, 235, 75, 208, 20, 55, 251, 34, 231, 165, 242, - 219, 55, 242, 173, 231, 165, 242, 219, 55, 50, 63, 4, 47, 209, 73, 177, - 117, 55, 177, 96, 55, 177, 45, 50, 55, 177, 117, 54, 55, 177, 96, 54, 55, - 177, 45, 50, 54, 55, 177, 117, 63, 232, 60, 164, 177, 96, 63, 232, 60, - 164, 177, 117, 54, 63, 232, 60, 164, 177, 96, 54, 63, 232, 60, 164, 177, - 96, 201, 178, 55, 67, 68, 248, 84, 67, 68, 236, 93, 67, 68, 235, 221, 67, - 68, 236, 92, 67, 68, 235, 157, 67, 68, 236, 28, 67, 68, 235, 220, 67, 68, - 236, 91, 67, 68, 235, 125, 67, 68, 235, 252, 67, 68, 235, 188, 67, 68, - 236, 59, 67, 68, 235, 156, 67, 68, 236, 27, 67, 68, 235, 219, 67, 68, - 236, 90, 67, 68, 235, 109, 67, 68, 235, 236, 67, 68, 235, 172, 67, 68, - 236, 43, 67, 68, 235, 140, 67, 68, 236, 11, 67, 68, 235, 203, 67, 68, - 236, 74, 67, 68, 235, 124, 67, 68, 235, 251, 67, 68, 235, 187, 67, 68, - 236, 58, 67, 68, 235, 155, 67, 68, 236, 26, 67, 68, 235, 218, 67, 68, - 236, 89, 67, 68, 235, 101, 67, 68, 235, 228, 67, 68, 235, 164, 67, 68, - 236, 35, 67, 68, 235, 132, 67, 68, 236, 3, 67, 68, 235, 195, 67, 68, 236, - 66, 67, 68, 235, 116, 67, 68, 235, 243, 67, 68, 235, 179, 67, 68, 236, - 50, 67, 68, 235, 147, 67, 68, 236, 18, 67, 68, 235, 210, 67, 68, 236, 81, - 67, 68, 235, 108, 67, 68, 235, 235, 67, 68, 235, 171, 67, 68, 236, 42, - 67, 68, 235, 139, 67, 68, 236, 10, 67, 68, 235, 202, 67, 68, 236, 73, 67, - 68, 235, 123, 67, 68, 235, 250, 67, 68, 235, 186, 67, 68, 236, 57, 67, - 68, 235, 154, 67, 68, 236, 25, 67, 68, 235, 217, 67, 68, 236, 88, 67, 68, - 235, 97, 67, 68, 235, 224, 67, 68, 235, 160, 67, 68, 236, 31, 67, 68, - 235, 128, 67, 68, 235, 255, 67, 68, 235, 191, 67, 68, 236, 62, 67, 68, - 235, 112, 67, 68, 235, 239, 67, 68, 235, 175, 67, 68, 236, 46, 67, 68, - 235, 143, 67, 68, 236, 14, 67, 68, 235, 206, 67, 68, 236, 77, 67, 68, - 235, 104, 67, 68, 235, 231, 67, 68, 235, 167, 67, 68, 236, 38, 67, 68, - 235, 135, 67, 68, 236, 6, 67, 68, 235, 198, 67, 68, 236, 69, 67, 68, 235, - 119, 67, 68, 235, 246, 67, 68, 235, 182, 67, 68, 236, 53, 67, 68, 235, - 150, 67, 68, 236, 21, 67, 68, 235, 213, 67, 68, 236, 84, 67, 68, 235, - 100, 67, 68, 235, 227, 67, 68, 235, 163, 67, 68, 236, 34, 67, 68, 235, - 131, 67, 68, 236, 2, 67, 68, 235, 194, 67, 68, 236, 65, 67, 68, 235, 115, - 67, 68, 235, 242, 67, 68, 235, 178, 67, 68, 236, 49, 67, 68, 235, 146, - 67, 68, 236, 17, 67, 68, 235, 209, 67, 68, 236, 80, 67, 68, 235, 107, 67, - 68, 235, 234, 67, 68, 235, 170, 67, 68, 236, 41, 67, 68, 235, 138, 67, - 68, 236, 9, 67, 68, 235, 201, 67, 68, 236, 72, 67, 68, 235, 122, 67, 68, - 235, 249, 67, 68, 235, 185, 67, 68, 236, 56, 67, 68, 235, 153, 67, 68, - 236, 24, 67, 68, 235, 216, 67, 68, 236, 87, 67, 68, 235, 95, 67, 68, 235, - 222, 67, 68, 235, 158, 67, 68, 236, 29, 67, 68, 235, 126, 67, 68, 235, - 253, 67, 68, 235, 189, 67, 68, 236, 60, 67, 68, 235, 110, 67, 68, 235, - 237, 67, 68, 235, 173, 67, 68, 236, 44, 67, 68, 235, 141, 67, 68, 236, - 12, 67, 68, 235, 204, 67, 68, 236, 75, 67, 68, 235, 102, 67, 68, 235, - 229, 67, 68, 235, 165, 67, 68, 236, 36, 67, 68, 235, 133, 67, 68, 236, 4, - 67, 68, 235, 196, 67, 68, 236, 67, 67, 68, 235, 117, 67, 68, 235, 244, - 67, 68, 235, 180, 67, 68, 236, 51, 67, 68, 235, 148, 67, 68, 236, 19, 67, - 68, 235, 211, 67, 68, 236, 82, 67, 68, 235, 98, 67, 68, 235, 225, 67, 68, - 235, 161, 67, 68, 236, 32, 67, 68, 235, 129, 67, 68, 236, 0, 67, 68, 235, - 192, 67, 68, 236, 63, 67, 68, 235, 113, 67, 68, 235, 240, 67, 68, 235, - 176, 67, 68, 236, 47, 67, 68, 235, 144, 67, 68, 236, 15, 67, 68, 235, - 207, 67, 68, 236, 78, 67, 68, 235, 105, 67, 68, 235, 232, 67, 68, 235, - 168, 67, 68, 236, 39, 67, 68, 235, 136, 67, 68, 236, 7, 67, 68, 235, 199, - 67, 68, 236, 70, 67, 68, 235, 120, 67, 68, 235, 247, 67, 68, 235, 183, - 67, 68, 236, 54, 67, 68, 235, 151, 67, 68, 236, 22, 67, 68, 235, 214, 67, - 68, 236, 85, 67, 68, 235, 96, 67, 68, 235, 223, 67, 68, 235, 159, 67, 68, - 236, 30, 67, 68, 235, 127, 67, 68, 235, 254, 67, 68, 235, 190, 67, 68, - 236, 61, 67, 68, 235, 111, 67, 68, 235, 238, 67, 68, 235, 174, 67, 68, - 236, 45, 67, 68, 235, 142, 67, 68, 236, 13, 67, 68, 235, 205, 67, 68, - 236, 76, 67, 68, 235, 103, 67, 68, 235, 230, 67, 68, 235, 166, 67, 68, - 236, 37, 67, 68, 235, 134, 67, 68, 236, 5, 67, 68, 235, 197, 67, 68, 236, - 68, 67, 68, 235, 118, 67, 68, 235, 245, 67, 68, 235, 181, 67, 68, 236, - 52, 67, 68, 235, 149, 67, 68, 236, 20, 67, 68, 235, 212, 67, 68, 236, 83, - 67, 68, 235, 99, 67, 68, 235, 226, 67, 68, 235, 162, 67, 68, 236, 33, 67, - 68, 235, 130, 67, 68, 236, 1, 67, 68, 235, 193, 67, 68, 236, 64, 67, 68, - 235, 114, 67, 68, 235, 241, 67, 68, 235, 177, 67, 68, 236, 48, 67, 68, - 235, 145, 67, 68, 236, 16, 67, 68, 235, 208, 67, 68, 236, 79, 67, 68, - 235, 106, 67, 68, 235, 233, 67, 68, 235, 169, 67, 68, 236, 40, 67, 68, - 235, 137, 67, 68, 236, 8, 67, 68, 235, 200, 67, 68, 236, 71, 67, 68, 235, - 121, 67, 68, 235, 248, 67, 68, 235, 184, 67, 68, 236, 55, 67, 68, 235, - 152, 67, 68, 236, 23, 67, 68, 235, 215, 67, 68, 236, 86, 96, 197, 9, 63, - 4, 81, 105, 96, 197, 9, 63, 4, 54, 81, 105, 117, 54, 63, 4, 81, 105, 96, - 54, 63, 4, 81, 105, 45, 50, 54, 63, 4, 81, 105, 96, 197, 9, 63, 232, 60, - 164, 117, 54, 63, 232, 60, 164, 96, 54, 63, 232, 60, 164, 235, 75, 63, 4, - 228, 209, 105, 196, 62, 63, 4, 228, 209, 105, 196, 62, 197, 221, 55, 235, - 75, 197, 221, 55, 117, 54, 237, 171, 55, 96, 54, 237, 171, 55, 117, 197, - 221, 237, 171, 55, 96, 197, 221, 237, 171, 55, 96, 197, 9, 197, 221, 237, - 171, 55, 96, 63, 4, 235, 94, 201, 75, 196, 62, 63, 118, 164, 235, 75, 63, - 118, 164, 96, 63, 4, 199, 211, 4, 81, 105, 96, 63, 4, 199, 211, 4, 54, - 81, 105, 96, 197, 9, 63, 4, 199, 210, 96, 197, 9, 63, 4, 199, 211, 4, 81, - 105, 96, 197, 9, 63, 4, 199, 211, 4, 54, 81, 105, 117, 250, 187, 96, 250, - 187, 117, 54, 250, 187, 96, 54, 250, 187, 117, 63, 118, 62, 236, 243, 96, - 63, 118, 62, 236, 243, 117, 63, 232, 60, 249, 38, 118, 62, 236, 243, 96, - 63, 232, 60, 249, 38, 118, 62, 236, 243, 185, 193, 103, 24, 201, 253, - 234, 160, 55, 185, 234, 160, 24, 201, 253, 193, 103, 55, 185, 193, 103, - 63, 4, 106, 185, 234, 160, 63, 4, 106, 201, 253, 234, 160, 63, 4, 106, - 201, 253, 193, 103, 63, 4, 106, 185, 193, 103, 63, 24, 185, 234, 160, 55, - 185, 234, 160, 63, 24, 201, 253, 234, 160, 55, 201, 253, 234, 160, 63, - 24, 201, 253, 193, 103, 55, 201, 253, 193, 103, 63, 24, 185, 193, 103, - 55, 206, 175, 236, 250, 238, 163, 233, 42, 236, 249, 233, 42, 236, 250, - 238, 163, 206, 175, 236, 249, 201, 253, 234, 160, 63, 238, 163, 185, 234, - 160, 55, 185, 234, 160, 63, 238, 163, 201, 253, 234, 160, 55, 233, 42, - 236, 250, 238, 163, 185, 234, 160, 55, 206, 175, 236, 250, 238, 163, 201, - 253, 234, 160, 55, 185, 234, 160, 63, 238, 163, 185, 193, 103, 55, 185, - 193, 103, 63, 238, 163, 185, 234, 160, 55, 193, 137, 63, 209, 51, 236, - 186, 187, 63, 209, 51, 96, 199, 20, 238, 114, 196, 61, 63, 209, 51, 96, - 199, 20, 238, 114, 235, 74, 63, 209, 51, 235, 75, 199, 20, 238, 114, 219, - 190, 63, 209, 51, 235, 75, 199, 20, 238, 114, 206, 192, 206, 195, 250, - 223, 242, 173, 55, 219, 193, 250, 223, 251, 34, 55, 198, 49, 250, 223, - 251, 34, 55, 248, 29, 250, 223, 251, 34, 55, 198, 49, 250, 223, 242, 173, - 63, 4, 216, 17, 198, 49, 250, 223, 251, 34, 63, 4, 209, 73, 110, 50, 204, - 22, 242, 173, 55, 110, 45, 204, 22, 251, 34, 55, 251, 34, 242, 171, 242, - 219, 55, 242, 173, 242, 171, 242, 219, 55, 96, 63, 95, 203, 35, 117, 55, - 117, 63, 95, 203, 35, 96, 55, 203, 35, 96, 63, 95, 117, 55, 96, 63, 4, - 107, 60, 117, 63, 4, 107, 60, 96, 63, 198, 211, 192, 235, 45, 50, 63, - 198, 211, 2, 242, 218, 196, 62, 197, 9, 63, 232, 60, 2, 242, 218, 45, - 178, 132, 50, 178, 143, 229, 235, 45, 178, 143, 50, 178, 132, 229, 235, - 132, 178, 50, 143, 178, 45, 229, 235, 132, 178, 45, 143, 178, 50, 229, - 235, 45, 178, 132, 50, 178, 132, 229, 235, 132, 178, 50, 143, 178, 50, - 229, 235, 45, 178, 143, 50, 178, 143, 229, 235, 132, 178, 45, 143, 178, - 45, 229, 235, 117, 229, 236, 4, 178, 132, 118, 164, 96, 229, 236, 4, 178, - 132, 118, 164, 196, 62, 229, 236, 4, 178, 50, 118, 164, 235, 75, 229, - 236, 4, 178, 50, 118, 164, 117, 229, 236, 4, 178, 143, 118, 164, 96, 229, - 236, 4, 178, 143, 118, 164, 196, 62, 229, 236, 4, 178, 45, 118, 164, 235, - 75, 229, 236, 4, 178, 45, 118, 164, 117, 229, 236, 4, 178, 132, 232, 60, - 164, 96, 229, 236, 4, 178, 132, 232, 60, 164, 196, 62, 229, 236, 4, 178, - 50, 232, 60, 164, 235, 75, 229, 236, 4, 178, 50, 232, 60, 164, 117, 229, - 236, 4, 178, 143, 232, 60, 164, 96, 229, 236, 4, 178, 143, 232, 60, 164, - 196, 62, 229, 236, 4, 178, 45, 232, 60, 164, 235, 75, 229, 236, 4, 178, - 45, 232, 60, 164, 117, 229, 236, 4, 178, 132, 95, 117, 229, 236, 4, 178, - 235, 79, 196, 62, 229, 236, 4, 178, 45, 248, 166, 196, 62, 229, 236, 4, - 178, 187, 96, 229, 236, 4, 178, 132, 95, 96, 229, 236, 4, 178, 235, 79, - 235, 75, 229, 236, 4, 178, 45, 248, 166, 235, 75, 229, 236, 4, 178, 187, - 117, 229, 236, 4, 178, 132, 95, 96, 229, 236, 4, 178, 196, 73, 117, 229, - 236, 4, 178, 143, 95, 96, 229, 236, 4, 178, 235, 79, 96, 229, 236, 4, - 178, 132, 95, 117, 229, 236, 4, 178, 196, 73, 96, 229, 236, 4, 178, 143, - 95, 117, 229, 236, 4, 178, 235, 79, 117, 229, 236, 4, 178, 132, 95, 177, - 237, 170, 117, 229, 236, 4, 178, 143, 248, 183, 177, 237, 170, 96, 229, - 236, 4, 178, 132, 95, 177, 237, 170, 96, 229, 236, 4, 178, 143, 248, 183, - 177, 237, 170, 196, 62, 229, 236, 4, 178, 45, 248, 166, 235, 75, 229, - 236, 4, 178, 187, 235, 75, 229, 236, 4, 178, 45, 248, 166, 196, 62, 229, - 236, 4, 178, 187, 50, 54, 63, 4, 206, 108, 229, 203, 234, 1, 3, 95, 96, - 55, 198, 148, 211, 56, 95, 96, 55, 117, 63, 95, 198, 148, 211, 55, 96, - 63, 95, 198, 148, 211, 55, 96, 63, 95, 251, 114, 234, 3, 159, 219, 156, - 95, 117, 55, 117, 63, 198, 211, 219, 155, 230, 170, 95, 96, 55, 200, 224, - 95, 96, 55, 117, 63, 198, 211, 200, 223, 200, 176, 95, 117, 55, 45, 232, - 196, 199, 210, 50, 232, 196, 199, 210, 132, 232, 196, 199, 210, 143, 232, - 196, 199, 210, 197, 221, 81, 249, 38, 237, 67, 191, 167, 212, 253, 201, - 196, 191, 167, 212, 253, 196, 251, 242, 35, 45, 64, 238, 124, 248, 5, 50, - 64, 238, 124, 248, 5, 45, 64, 210, 103, 50, 64, 210, 103, 191, 167, 212, - 253, 45, 223, 150, 248, 5, 191, 167, 212, 253, 50, 223, 150, 248, 5, 191, - 167, 212, 253, 45, 248, 118, 248, 5, 191, 167, 212, 253, 50, 248, 118, - 248, 5, 45, 51, 248, 6, 4, 196, 99, 50, 51, 248, 6, 4, 196, 99, 45, 51, - 248, 6, 4, 198, 178, 223, 135, 198, 49, 238, 210, 50, 51, 248, 6, 4, 198, - 178, 223, 135, 248, 29, 238, 210, 45, 51, 248, 6, 4, 198, 178, 223, 135, - 248, 29, 238, 210, 50, 51, 248, 6, 4, 198, 178, 223, 135, 198, 49, 238, - 210, 45, 251, 65, 248, 6, 4, 236, 96, 50, 251, 65, 248, 6, 4, 236, 96, - 45, 250, 223, 219, 156, 248, 5, 50, 250, 223, 230, 170, 248, 5, 54, 45, - 250, 223, 230, 170, 248, 5, 54, 50, 250, 223, 219, 156, 248, 5, 45, 62, - 198, 37, 203, 98, 248, 5, 50, 62, 198, 37, 203, 98, 248, 5, 235, 94, 232, - 254, 81, 191, 21, 219, 88, 216, 207, 251, 65, 211, 58, 219, 200, 50, 251, - 65, 195, 165, 4, 201, 185, 216, 207, 50, 251, 65, 4, 236, 96, 251, 65, 4, - 206, 4, 223, 89, 251, 251, 251, 64, 201, 220, 251, 65, 211, 58, 219, 200, - 201, 220, 251, 65, 211, 58, 196, 73, 152, 251, 64, 207, 13, 251, 64, 251, - 65, 4, 196, 99, 207, 13, 251, 65, 4, 196, 99, 211, 159, 251, 65, 211, 58, - 196, 73, 211, 159, 251, 65, 211, 58, 235, 79, 216, 207, 251, 65, 4, 211, - 66, 250, 201, 234, 49, 223, 135, 63, 209, 51, 132, 24, 187, 216, 207, - 251, 65, 4, 211, 66, 250, 201, 234, 49, 223, 135, 63, 209, 51, 132, 24, - 219, 200, 216, 207, 251, 65, 4, 211, 66, 250, 201, 234, 49, 223, 135, 63, - 209, 51, 143, 24, 187, 216, 207, 251, 65, 4, 211, 66, 250, 201, 234, 49, - 223, 135, 63, 209, 51, 143, 24, 219, 200, 216, 207, 251, 65, 4, 211, 66, - 250, 201, 234, 49, 223, 135, 63, 209, 51, 50, 24, 196, 73, 216, 207, 251, - 65, 4, 211, 66, 250, 201, 234, 49, 223, 135, 63, 209, 51, 45, 24, 196, - 73, 216, 207, 251, 65, 4, 211, 66, 250, 201, 234, 49, 223, 135, 63, 209, - 51, 50, 24, 235, 79, 216, 207, 251, 65, 4, 211, 66, 250, 201, 234, 49, - 223, 135, 63, 209, 51, 45, 24, 235, 79, 207, 13, 234, 63, 203, 247, 234, - 63, 203, 248, 4, 210, 252, 234, 63, 203, 248, 4, 2, 242, 219, 56, 234, - 63, 203, 248, 4, 50, 63, 56, 234, 63, 203, 248, 4, 45, 63, 56, 242, 219, - 4, 228, 209, 164, 47, 81, 164, 47, 210, 108, 47, 207, 14, 202, 18, 47, - 209, 245, 242, 219, 236, 161, 247, 157, 228, 209, 249, 38, 24, 198, 49, - 134, 236, 161, 247, 157, 81, 164, 242, 219, 4, 200, 178, 192, 235, 47, - 251, 32, 236, 155, 57, 132, 63, 198, 211, 242, 218, 47, 64, 247, 200, 47, - 247, 200, 47, 219, 155, 47, 230, 169, 242, 219, 4, 2, 242, 219, 118, 199, - 29, 187, 242, 219, 4, 103, 228, 209, 201, 11, 118, 199, 29, 187, 112, - 206, 175, 236, 250, 202, 92, 112, 233, 42, 236, 250, 202, 92, 112, 250, - 143, 112, 2, 242, 218, 112, 201, 185, 103, 222, 171, 201, 183, 197, 238, - 4, 75, 56, 197, 238, 4, 196, 99, 206, 4, 223, 135, 197, 237, 197, 238, 4, - 203, 255, 250, 133, 248, 28, 50, 197, 238, 95, 45, 197, 237, 45, 197, - 238, 248, 166, 81, 164, 81, 249, 38, 248, 166, 50, 197, 237, 248, 16, 4, - 45, 134, 248, 91, 248, 16, 4, 50, 134, 248, 91, 62, 248, 15, 25, 4, 45, - 134, 248, 91, 25, 4, 50, 134, 248, 91, 64, 228, 143, 62, 228, 143, 45, - 193, 70, 232, 254, 50, 193, 70, 232, 254, 45, 54, 193, 70, 232, 254, 50, - 54, 193, 70, 232, 254, 223, 127, 223, 111, 198, 174, 138, 223, 111, 223, - 112, 214, 94, 4, 81, 164, 235, 88, 215, 116, 51, 4, 238, 234, 211, 1, - 223, 124, 250, 169, 202, 249, 208, 193, 234, 1, 3, 24, 202, 94, 210, 108, - 234, 1, 3, 24, 202, 94, 210, 109, 4, 198, 148, 56, 227, 244, 118, 24, - 202, 94, 210, 108, 230, 234, 201, 96, 199, 17, 235, 78, 197, 238, 4, 45, - 134, 248, 91, 235, 78, 197, 238, 4, 50, 134, 248, 91, 62, 236, 244, 4, - 143, 55, 62, 218, 210, 64, 242, 219, 4, 143, 55, 62, 242, 219, 4, 143, - 55, 233, 239, 64, 201, 185, 233, 239, 62, 201, 185, 233, 239, 64, 236, - 243, 233, 239, 62, 236, 243, 233, 239, 64, 242, 218, 233, 239, 62, 242, - 218, 206, 46, 207, 14, 202, 19, 211, 55, 202, 19, 4, 210, 252, 207, 14, - 202, 19, 4, 228, 209, 105, 248, 127, 202, 18, 248, 127, 207, 14, 202, 18, - 54, 209, 73, 197, 221, 209, 73, 219, 195, 238, 116, 251, 65, 248, 5, 206, - 198, 238, 116, 251, 65, 248, 5, 198, 132, 216, 15, 215, 46, 47, 75, 211, - 55, 215, 46, 47, 107, 211, 55, 215, 46, 47, 25, 211, 55, 215, 46, 196, - 89, 211, 56, 4, 236, 96, 215, 46, 196, 89, 211, 56, 4, 209, 73, 215, 46, - 51, 223, 72, 211, 55, 215, 46, 51, 196, 89, 211, 55, 103, 219, 5, 24, - 211, 55, 103, 219, 5, 211, 46, 211, 55, 215, 46, 25, 211, 55, 215, 219, - 103, 200, 199, 200, 197, 4, 223, 85, 208, 20, 223, 86, 211, 55, 232, 205, - 210, 97, 223, 85, 223, 86, 4, 54, 105, 223, 86, 250, 93, 4, 202, 92, 242, - 211, 232, 39, 251, 34, 223, 83, 219, 89, 223, 84, 4, 207, 86, 210, 76, - 250, 195, 209, 45, 219, 89, 223, 84, 4, 204, 22, 210, 76, 250, 195, 209, - 45, 219, 89, 223, 84, 212, 255, 223, 129, 199, 29, 209, 45, 223, 86, 250, - 195, 41, 209, 55, 211, 55, 208, 14, 223, 86, 211, 55, 223, 86, 4, 117, - 63, 4, 106, 223, 86, 4, 25, 57, 223, 86, 4, 223, 71, 223, 86, 4, 196, 88, - 223, 86, 4, 210, 252, 223, 86, 4, 196, 99, 222, 172, 219, 245, 45, 197, - 238, 211, 55, 191, 167, 212, 253, 205, 87, 239, 14, 191, 167, 212, 253, - 205, 87, 209, 118, 191, 167, 212, 253, 205, 87, 208, 188, 107, 3, 4, 2, - 242, 219, 56, 107, 3, 4, 242, 210, 252, 9, 56, 107, 3, 4, 198, 148, 56, - 107, 3, 4, 75, 60, 107, 3, 4, 198, 148, 60, 107, 3, 4, 200, 225, 109, - 107, 3, 4, 62, 197, 237, 216, 18, 3, 4, 242, 27, 56, 216, 18, 3, 4, 75, - 60, 216, 18, 3, 4, 233, 42, 236, 94, 216, 18, 3, 4, 206, 175, 236, 94, - 107, 3, 223, 135, 45, 134, 242, 218, 107, 3, 223, 135, 50, 134, 242, 218, - 195, 149, 211, 46, 238, 171, 208, 193, 215, 112, 3, 4, 75, 56, 215, 112, - 3, 4, 196, 99, 204, 19, 208, 194, 4, 248, 29, 242, 170, 202, 63, 208, - 193, 215, 112, 3, 223, 135, 45, 134, 242, 218, 215, 112, 3, 223, 135, 50, - 134, 242, 218, 47, 215, 112, 3, 4, 242, 210, 252, 8, 215, 112, 3, 223, - 135, 54, 242, 218, 47, 236, 155, 57, 107, 3, 223, 135, 197, 237, 216, 18, - 3, 223, 135, 197, 237, 215, 112, 3, 223, 135, 197, 237, 223, 80, 208, - 193, 206, 193, 223, 80, 208, 193, 191, 167, 212, 253, 207, 59, 239, 14, - 251, 96, 211, 46, 238, 218, 223, 72, 4, 236, 96, 196, 89, 4, 216, 18, 57, - 196, 89, 4, 210, 252, 223, 72, 4, 210, 252, 223, 72, 4, 219, 5, 251, 74, - 196, 89, 4, 219, 5, 211, 45, 196, 89, 95, 223, 71, 223, 72, 95, 196, 88, - 196, 89, 95, 249, 38, 95, 223, 71, 223, 72, 95, 249, 38, 95, 196, 88, - 196, 89, 248, 166, 24, 222, 171, 4, 196, 88, 223, 72, 248, 166, 24, 222, - 171, 4, 223, 71, 242, 171, 196, 89, 4, 203, 254, 242, 171, 223, 72, 4, - 203, 254, 54, 51, 223, 71, 54, 51, 196, 88, 242, 171, 196, 89, 4, 203, - 255, 24, 202, 63, 208, 193, 219, 5, 24, 4, 75, 56, 219, 5, 211, 46, 4, - 75, 56, 54, 219, 5, 251, 74, 54, 219, 5, 211, 45, 103, 223, 73, 219, 5, - 251, 74, 103, 223, 73, 219, 5, 211, 45, 202, 75, 219, 245, 211, 45, 202, - 75, 219, 245, 251, 74, 219, 5, 211, 46, 210, 247, 219, 5, 251, 74, 219, - 5, 24, 4, 82, 201, 75, 219, 5, 211, 46, 4, 82, 201, 75, 219, 5, 24, 4, - 228, 209, 237, 170, 219, 5, 211, 46, 4, 228, 209, 237, 170, 219, 5, 24, - 4, 54, 210, 252, 219, 5, 24, 4, 196, 99, 219, 5, 24, 4, 54, 196, 99, 2, - 195, 146, 4, 196, 99, 219, 5, 211, 46, 4, 54, 210, 252, 219, 5, 211, 46, - 4, 54, 196, 99, 191, 167, 212, 253, 236, 107, 251, 24, 191, 167, 212, - 253, 207, 132, 251, 24, 234, 1, 3, 4, 75, 60, 227, 244, 4, 75, 56, 197, - 221, 228, 209, 249, 38, 4, 54, 81, 105, 197, 221, 228, 209, 249, 38, 4, - 197, 221, 81, 105, 198, 148, 211, 56, 4, 75, 56, 198, 148, 211, 56, 4, - 206, 175, 236, 94, 202, 175, 216, 18, 202, 174, 239, 1, 4, 75, 56, 234, - 1, 4, 250, 143, 251, 114, 234, 3, 118, 4, 242, 210, 252, 8, 250, 246, - 234, 3, 211, 46, 234, 3, 159, 234, 1, 3, 95, 107, 57, 107, 3, 95, 234, 1, - 57, 234, 1, 3, 95, 198, 148, 211, 55, 54, 242, 36, 234, 2, 103, 238, 250, - 234, 1, 202, 189, 115, 238, 250, 234, 1, 202, 189, 234, 1, 3, 4, 103, - 183, 95, 24, 103, 183, 60, 233, 250, 4, 232, 90, 183, 56, 219, 156, 4, - 242, 219, 223, 89, 230, 170, 4, 242, 219, 223, 89, 219, 156, 4, 208, 8, - 87, 56, 230, 170, 4, 208, 8, 87, 56, 219, 156, 211, 46, 202, 94, 234, 3, - 159, 230, 170, 211, 46, 202, 94, 234, 3, 159, 219, 156, 211, 46, 202, 94, - 234, 3, 118, 4, 75, 223, 89, 230, 170, 211, 46, 202, 94, 234, 3, 118, 4, - 75, 223, 89, 219, 156, 211, 46, 202, 94, 234, 3, 118, 4, 75, 56, 230, - 170, 211, 46, 202, 94, 234, 3, 118, 4, 75, 56, 219, 156, 211, 46, 202, - 94, 234, 3, 118, 4, 75, 95, 187, 230, 170, 211, 46, 202, 94, 234, 3, 118, - 4, 75, 95, 219, 200, 219, 156, 211, 46, 250, 247, 230, 170, 211, 46, 250, - 247, 219, 156, 24, 202, 163, 212, 255, 234, 3, 159, 230, 170, 24, 202, - 163, 212, 255, 234, 3, 159, 219, 156, 24, 212, 255, 250, 247, 230, 170, - 24, 212, 255, 250, 247, 219, 156, 95, 235, 87, 234, 3, 95, 230, 169, 230, - 170, 95, 235, 87, 234, 3, 95, 219, 155, 219, 156, 95, 202, 175, 211, 46, - 234, 2, 230, 170, 95, 202, 175, 211, 46, 234, 2, 219, 156, 95, 202, 175, - 95, 230, 169, 230, 170, 95, 202, 175, 95, 219, 155, 219, 156, 95, 230, - 170, 95, 235, 87, 234, 2, 230, 170, 95, 219, 156, 95, 235, 87, 234, 2, - 219, 156, 95, 202, 94, 234, 3, 95, 230, 170, 95, 202, 94, 234, 2, 230, - 170, 95, 202, 94, 234, 3, 95, 219, 156, 95, 202, 94, 234, 2, 202, 94, - 234, 3, 118, 211, 46, 219, 155, 202, 94, 234, 3, 118, 211, 46, 230, 169, - 202, 94, 234, 3, 118, 211, 46, 219, 156, 4, 75, 223, 89, 202, 94, 234, 3, - 118, 211, 46, 230, 170, 4, 75, 223, 89, 235, 87, 234, 3, 118, 211, 46, - 219, 155, 235, 87, 234, 3, 118, 211, 46, 230, 169, 235, 87, 202, 94, 234, - 3, 118, 211, 46, 219, 155, 235, 87, 202, 94, 234, 3, 118, 211, 46, 230, - 169, 202, 175, 211, 46, 219, 155, 202, 175, 211, 46, 230, 169, 202, 175, - 95, 219, 156, 95, 234, 1, 57, 202, 175, 95, 230, 170, 95, 234, 1, 57, 54, - 214, 74, 219, 155, 54, 214, 74, 230, 169, 54, 214, 74, 219, 156, 4, 196, - 99, 230, 170, 210, 247, 219, 155, 230, 170, 248, 166, 219, 155, 219, 156, - 242, 171, 247, 157, 238, 117, 230, 170, 242, 171, 247, 157, 238, 117, - 219, 156, 242, 171, 247, 157, 238, 118, 95, 202, 94, 234, 2, 230, 170, - 242, 171, 247, 157, 238, 118, 95, 202, 94, 234, 2, 202, 64, 199, 33, 219, - 243, 199, 33, 202, 64, 199, 34, 211, 46, 234, 3, 159, 219, 243, 199, 34, - 211, 46, 234, 3, 159, 234, 1, 3, 4, 247, 193, 56, 208, 225, 95, 202, 163, - 234, 1, 57, 200, 216, 95, 202, 163, 234, 1, 57, 208, 225, 95, 202, 163, - 212, 255, 234, 3, 159, 200, 216, 95, 202, 163, 212, 255, 234, 3, 159, - 208, 225, 95, 234, 1, 57, 200, 216, 95, 234, 1, 57, 208, 225, 95, 212, - 255, 234, 3, 159, 200, 216, 95, 212, 255, 234, 3, 159, 208, 225, 95, 251, - 114, 234, 3, 159, 200, 216, 95, 251, 114, 234, 3, 159, 208, 225, 95, 212, - 255, 251, 114, 234, 3, 159, 200, 216, 95, 212, 255, 251, 114, 234, 3, - 159, 54, 208, 224, 54, 200, 215, 200, 224, 4, 236, 96, 200, 176, 4, 236, - 96, 200, 224, 4, 107, 3, 60, 200, 176, 4, 107, 3, 60, 200, 224, 4, 215, - 112, 3, 60, 200, 176, 4, 215, 112, 3, 60, 200, 224, 80, 211, 46, 234, 3, - 118, 4, 75, 56, 200, 176, 80, 211, 46, 234, 3, 118, 4, 75, 56, 200, 224, - 80, 95, 234, 1, 57, 200, 176, 80, 95, 234, 1, 57, 200, 224, 80, 95, 198, - 148, 211, 55, 200, 176, 80, 95, 198, 148, 211, 55, 200, 224, 80, 95, 251, - 114, 234, 3, 159, 200, 176, 80, 95, 251, 114, 234, 3, 159, 200, 224, 80, - 95, 212, 255, 234, 3, 159, 200, 176, 80, 95, 212, 255, 234, 3, 159, 51, - 45, 211, 66, 111, 211, 55, 51, 50, 211, 66, 111, 211, 55, 242, 171, 200, - 223, 242, 171, 200, 175, 242, 171, 200, 224, 211, 46, 234, 3, 159, 242, - 171, 200, 176, 211, 46, 234, 3, 159, 200, 224, 95, 200, 175, 200, 176, - 95, 200, 223, 200, 224, 95, 200, 223, 200, 176, 95, 200, 175, 200, 176, - 248, 166, 200, 223, 200, 176, 248, 166, 24, 222, 171, 247, 157, 237, 171, - 4, 200, 223, 234, 89, 80, 211, 58, 235, 74, 209, 108, 4, 199, 117, 198, - 48, 198, 3, 223, 71, 232, 108, 213, 14, 203, 35, 45, 199, 223, 203, 35, - 143, 199, 223, 203, 35, 132, 199, 223, 209, 246, 4, 206, 3, 81, 249, 38, - 197, 221, 50, 197, 53, 54, 81, 249, 38, 45, 197, 53, 81, 249, 38, 54, 45, - 197, 53, 54, 81, 249, 38, 54, 45, 197, 53, 177, 237, 171, 232, 60, 45, - 216, 172, 80, 54, 195, 132, 203, 35, 143, 199, 224, 4, 210, 252, 203, 35, - 132, 199, 224, 4, 196, 99, 203, 35, 132, 199, 224, 95, 203, 35, 143, 199, - 223, 54, 143, 199, 223, 54, 132, 199, 223, 54, 201, 23, 212, 255, 57, - 207, 13, 54, 201, 23, 212, 255, 57, 236, 119, 212, 255, 236, 163, 4, 207, - 13, 214, 93, 202, 92, 81, 219, 89, 4, 242, 219, 56, 81, 219, 89, 4, 242, - 219, 60, 143, 199, 224, 4, 242, 219, 60, 210, 109, 4, 228, 209, 105, 210, - 109, 4, 198, 148, 211, 55, 197, 221, 81, 249, 38, 248, 120, 207, 60, 197, - 221, 81, 249, 38, 4, 228, 209, 105, 197, 221, 242, 36, 211, 55, 197, 221, - 214, 74, 219, 155, 197, 221, 214, 74, 230, 169, 235, 87, 202, 94, 219, - 156, 211, 46, 234, 3, 159, 235, 87, 202, 94, 230, 170, 211, 46, 234, 3, - 159, 197, 221, 202, 19, 248, 120, 207, 60, 219, 245, 197, 221, 81, 249, - 38, 211, 55, 54, 202, 19, 211, 55, 64, 81, 164, 215, 46, 64, 81, 164, - 185, 234, 160, 64, 55, 185, 193, 103, 64, 55, 201, 253, 234, 160, 64, 55, - 201, 253, 193, 103, 64, 55, 45, 50, 64, 55, 117, 62, 55, 196, 62, 62, 55, - 235, 75, 62, 55, 185, 234, 160, 62, 55, 185, 193, 103, 62, 55, 201, 253, - 234, 160, 62, 55, 201, 253, 193, 103, 62, 55, 45, 50, 62, 55, 132, 143, - 62, 55, 96, 63, 4, 198, 131, 235, 74, 96, 63, 4, 198, 131, 196, 61, 117, - 63, 4, 198, 131, 235, 74, 117, 63, 4, 198, 131, 196, 61, 51, 4, 198, 49, - 134, 248, 91, 51, 4, 248, 29, 134, 248, 91, 51, 4, 116, 50, 236, 250, - 134, 248, 91, 51, 4, 110, 45, 236, 250, 134, 248, 91, 236, 244, 4, 45, - 134, 248, 91, 236, 244, 4, 50, 134, 248, 91, 236, 244, 4, 198, 49, 134, - 248, 91, 236, 244, 4, 248, 29, 134, 248, 91, 235, 94, 201, 185, 62, 219, - 245, 201, 185, 64, 219, 245, 201, 185, 62, 195, 80, 2, 201, 185, 64, 195, - 80, 2, 201, 185, 62, 210, 15, 64, 210, 15, 64, 229, 150, 62, 229, 150, - 228, 209, 62, 229, 150, 62, 219, 245, 242, 218, 62, 216, 194, 236, 243, - 64, 216, 194, 236, 243, 62, 216, 194, 218, 210, 64, 216, 194, 218, 210, - 62, 2, 236, 243, 62, 2, 218, 210, 64, 2, 218, 210, 62, 228, 209, 234, 79, - 64, 228, 209, 234, 79, 62, 81, 234, 79, 64, 81, 234, 79, 45, 63, 4, 2, - 242, 218, 115, 117, 250, 181, 45, 63, 4, 47, 209, 73, 177, 117, 201, 178, - 55, 117, 197, 9, 63, 4, 81, 105, 117, 197, 9, 63, 4, 54, 81, 105, 117, - 197, 9, 63, 232, 60, 164, 117, 197, 9, 197, 221, 237, 171, 55, 117, 63, - 4, 235, 94, 201, 75, 117, 63, 4, 199, 211, 4, 81, 105, 117, 63, 4, 199, - 211, 4, 54, 81, 105, 117, 197, 9, 63, 4, 199, 210, 117, 197, 9, 63, 4, - 199, 211, 4, 81, 105, 117, 197, 9, 63, 4, 199, 211, 4, 54, 81, 105, 117, - 63, 198, 211, 192, 235, 193, 137, 63, 209, 51, 236, 186, 219, 200, 234, - 1, 3, 95, 117, 55, 207, 14, 198, 148, 211, 56, 95, 117, 55, 117, 63, 95, - 207, 14, 251, 114, 234, 3, 159, 96, 63, 198, 211, 230, 169, 96, 63, 198, - 211, 200, 175, 117, 208, 20, 55, 96, 208, 20, 55, 207, 14, 198, 148, 211, - 56, 95, 96, 55, 96, 63, 95, 207, 14, 251, 114, 234, 3, 159, 198, 148, - 211, 56, 95, 117, 55, 117, 63, 95, 251, 114, 234, 3, 159, 117, 63, 95, - 207, 14, 198, 148, 211, 55, 96, 63, 95, 207, 14, 198, 148, 211, 55, 235, - 75, 197, 236, 191, 21, 55, 203, 35, 202, 94, 185, 55, 203, 35, 249, 93, - 201, 253, 55, 64, 216, 194, 201, 97, 62, 2, 201, 97, 64, 2, 201, 97, 62, - 206, 198, 210, 15, 64, 206, 198, 210, 15, 88, 219, 245, 242, 218, 88, - 210, 254, 4, 210, 254, 223, 89, 88, 242, 219, 4, 242, 219, 223, 89, 88, - 242, 218, 88, 47, 205, 149, 202, 94, 185, 63, 4, 228, 218, 229, 203, 249, - 93, 201, 253, 63, 4, 228, 218, 199, 210, 202, 94, 185, 63, 4, 228, 209, - 199, 210, 249, 93, 201, 253, 63, 4, 228, 209, 199, 210, 248, 174, 63, - 209, 51, 235, 75, 199, 20, 185, 234, 159, 203, 35, 248, 174, 63, 209, 51, - 235, 75, 199, 20, 185, 234, 159, 117, 197, 236, 55, 196, 62, 197, 236, - 55, 96, 197, 236, 55, 235, 75, 197, 236, 55, 45, 50, 197, 236, 55, 132, - 143, 197, 236, 55, 185, 193, 103, 197, 236, 55, 185, 234, 160, 197, 236, - 55, 201, 253, 234, 160, 197, 236, 55, 201, 253, 193, 103, 197, 236, 55, - 117, 197, 236, 237, 169, 55, 196, 62, 197, 236, 237, 169, 55, 96, 197, - 236, 237, 169, 55, 235, 75, 197, 236, 237, 169, 55, 242, 173, 197, 236, - 211, 66, 242, 219, 55, 251, 34, 197, 236, 211, 66, 242, 219, 55, 117, - 197, 236, 63, 118, 164, 196, 62, 197, 236, 63, 118, 164, 96, 197, 236, - 63, 118, 164, 235, 75, 197, 236, 63, 118, 164, 185, 193, 103, 197, 236, - 63, 118, 164, 185, 234, 160, 197, 236, 63, 118, 164, 201, 253, 234, 160, - 197, 236, 63, 118, 164, 201, 253, 193, 103, 197, 236, 63, 118, 164, 117, - 197, 236, 63, 4, 54, 228, 209, 105, 196, 62, 197, 236, 63, 4, 54, 228, - 209, 105, 96, 197, 236, 63, 4, 54, 228, 209, 105, 235, 75, 197, 236, 63, - 4, 54, 228, 209, 105, 228, 209, 199, 232, 221, 197, 81, 199, 232, 221, - 197, 117, 197, 236, 63, 138, 96, 197, 236, 55, 196, 62, 197, 236, 63, - 117, 80, 235, 75, 197, 236, 55, 96, 197, 236, 63, 138, 117, 197, 236, 55, - 235, 75, 197, 236, 63, 117, 80, 196, 62, 197, 236, 55, 117, 197, 236, - 210, 186, 250, 181, 196, 62, 197, 236, 210, 186, 250, 181, 96, 197, 236, - 210, 186, 250, 181, 235, 75, 197, 236, 210, 186, 250, 181, 117, 62, 47, - 64, 55, 196, 62, 62, 47, 64, 55, 96, 62, 47, 64, 55, 235, 75, 62, 47, 64, - 55, 251, 34, 197, 236, 50, 196, 217, 55, 251, 34, 197, 236, 248, 29, 196, - 217, 55, 251, 34, 197, 236, 45, 196, 217, 55, 251, 34, 197, 236, 198, 49, - 196, 217, 55, 207, 18, 219, 200, 207, 18, 187, 214, 63, 219, 200, 214, - 63, 187, 232, 90, 238, 211, 250, 182, 242, 214, 251, 33, 96, 62, 55, 16, - 39, 196, 251, 41, 234, 90, 198, 220, 198, 47, 117, 233, 251, 250, 185, - 198, 220, 206, 199, 196, 62, 233, 251, 250, 185, 198, 220, 198, 47, 96, - 233, 251, 250, 185, 198, 220, 219, 196, 235, 75, 233, 251, 250, 185, 62, - 117, 233, 251, 250, 185, 62, 196, 62, 233, 251, 250, 185, 62, 96, 233, - 251, 250, 185, 62, 235, 75, 233, 251, 250, 185, 235, 75, 197, 236, 63, 4, - 177, 198, 131, 219, 190, 235, 75, 197, 236, 63, 4, 177, 198, 131, 206, - 192, 196, 62, 197, 236, 63, 4, 177, 198, 131, 219, 190, 196, 62, 197, - 236, 63, 4, 177, 198, 131, 206, 192, 117, 197, 236, 63, 4, 177, 198, 131, - 196, 61, 96, 197, 236, 63, 4, 177, 198, 131, 196, 61, 117, 197, 236, 63, - 4, 177, 198, 131, 235, 74, 96, 197, 236, 63, 4, 177, 198, 131, 235, 74, - 62, 238, 116, 235, 75, 24, 117, 55, 62, 238, 116, 235, 75, 24, 96, 55, - 62, 238, 116, 196, 62, 24, 117, 55, 62, 238, 116, 196, 62, 24, 96, 55, - 62, 238, 116, 117, 24, 196, 62, 55, 62, 238, 116, 96, 24, 196, 62, 55, - 62, 238, 116, 117, 24, 235, 75, 55, 62, 238, 116, 96, 24, 235, 75, 55, - 206, 243, 63, 143, 219, 200, 206, 243, 63, 143, 187, 206, 243, 63, 132, - 219, 200, 206, 243, 63, 132, 187, 206, 243, 63, 45, 196, 73, 206, 243, - 63, 50, 196, 73, 206, 243, 63, 45, 235, 79, 206, 243, 63, 50, 235, 79, - 196, 62, 64, 63, 232, 60, 249, 38, 4, 228, 209, 164, 132, 250, 186, 223, - 135, 41, 207, 88, 248, 14, 210, 247, 64, 201, 183, 210, 247, 64, 24, 62, - 201, 183, 210, 247, 62, 201, 183, 249, 57, 111, 4, 155, 192, 235, 47, - 192, 235, 47, 28, 192, 235, 62, 51, 246, 227, 62, 236, 244, 246, 227, - 152, 62, 210, 15, 228, 209, 62, 211, 148, 62, 211, 148, 62, 216, 194, - 196, 72, 197, 238, 246, 227, 62, 216, 194, 235, 78, 197, 238, 246, 227, - 62, 216, 194, 219, 195, 197, 238, 246, 227, 62, 216, 194, 206, 198, 197, - 238, 246, 227, 214, 81, 232, 107, 109, 198, 49, 134, 62, 242, 218, 248, - 29, 134, 62, 242, 218, 155, 232, 90, 209, 53, 62, 238, 112, 206, 117, - 155, 232, 90, 209, 53, 62, 238, 112, 64, 232, 90, 209, 53, 238, 112, 206, - 117, 64, 232, 90, 209, 53, 238, 112, 51, 209, 18, 223, 116, 196, 103, 57, - 230, 154, 77, 209, 70, 232, 107, 109, 209, 70, 232, 107, 139, 209, 70, - 232, 107, 137, 209, 70, 232, 107, 153, 198, 5, 208, 178, 250, 139, 228, - 61, 209, 187, 214, 77, 64, 215, 189, 204, 28, 62, 236, 244, 211, 94, 238, - 170, 197, 198, 155, 215, 189, 250, 177, 238, 132, 230, 55, 191, 75, 220, - 234, 251, 3, 251, 236, 193, 244, 209, 19, 45, 134, 62, 201, 97, 50, 134, - 62, 201, 97, 201, 98, 4, 45, 134, 248, 91, 201, 98, 4, 50, 134, 248, 91, - 117, 197, 9, 63, 4, 197, 238, 250, 183, 196, 62, 197, 9, 63, 4, 197, 238, - 250, 183, 96, 197, 9, 63, 4, 197, 238, 250, 183, 235, 75, 197, 9, 63, 4, - 197, 238, 250, 183, 233, 241, 232, 107, 108, 233, 241, 232, 107, 109, - 205, 46, 206, 26, 250, 138, 16, 195, 49, 206, 26, 250, 138, 16, 212, 241, - 206, 26, 250, 138, 16, 207, 252, 206, 26, 250, 138, 16, 248, 115, 206, - 26, 250, 138, 16, 204, 11, 206, 26, 250, 138, 16, 197, 252, 234, 1, 3, 4, - 223, 112, 60, 196, 85, 113, 204, 7, 113, 235, 84, 113, 210, 86, 113, 207, - 13, 50, 251, 64, 229, 171, 210, 68, 113, 133, 6, 1, 250, 72, 133, 6, 1, - 247, 204, 133, 6, 1, 195, 148, 133, 6, 1, 230, 238, 133, 6, 1, 236, 124, - 133, 6, 1, 192, 49, 133, 6, 1, 191, 55, 133, 6, 1, 234, 242, 133, 6, 1, - 191, 82, 133, 6, 1, 223, 11, 133, 6, 1, 89, 223, 11, 133, 6, 1, 70, 133, - 6, 1, 236, 145, 133, 6, 1, 222, 67, 133, 6, 1, 219, 51, 133, 6, 1, 215, - 52, 133, 6, 1, 214, 196, 133, 6, 1, 211, 78, 133, 6, 1, 209, 48, 133, 6, - 1, 206, 174, 133, 6, 1, 202, 72, 133, 6, 1, 197, 40, 133, 6, 1, 196, 120, - 133, 6, 1, 232, 63, 133, 6, 1, 229, 156, 133, 6, 1, 211, 10, 133, 6, 1, - 210, 53, 133, 6, 1, 203, 3, 133, 6, 1, 197, 142, 133, 6, 1, 243, 6, 133, - 6, 1, 203, 160, 133, 6, 1, 192, 58, 133, 6, 1, 192, 60, 133, 6, 1, 192, - 93, 133, 6, 1, 201, 215, 144, 133, 6, 1, 191, 225, 133, 6, 1, 2, 191, - 190, 133, 6, 1, 2, 191, 191, 4, 199, 210, 133, 6, 1, 192, 12, 133, 6, 1, - 223, 54, 2, 191, 190, 133, 6, 1, 248, 127, 191, 190, 133, 6, 1, 223, 54, - 248, 127, 191, 190, 133, 6, 1, 232, 187, 133, 6, 1, 223, 9, 133, 6, 1, - 203, 2, 133, 6, 1, 197, 211, 65, 133, 6, 1, 219, 233, 215, 52, 133, 6, 1, - 247, 25, 243, 6, 133, 2, 1, 250, 72, 133, 2, 1, 247, 204, 133, 2, 1, 195, - 148, 133, 2, 1, 230, 238, 133, 2, 1, 236, 124, 133, 2, 1, 192, 49, 133, - 2, 1, 191, 55, 133, 2, 1, 234, 242, 133, 2, 1, 191, 82, 133, 2, 1, 223, - 11, 133, 2, 1, 89, 223, 11, 133, 2, 1, 70, 133, 2, 1, 236, 145, 133, 2, - 1, 222, 67, 133, 2, 1, 219, 51, 133, 2, 1, 215, 52, 133, 2, 1, 214, 196, - 133, 2, 1, 211, 78, 133, 2, 1, 209, 48, 133, 2, 1, 206, 174, 133, 2, 1, - 202, 72, 133, 2, 1, 197, 40, 133, 2, 1, 196, 120, 133, 2, 1, 232, 63, - 133, 2, 1, 229, 156, 133, 2, 1, 211, 10, 133, 2, 1, 210, 53, 133, 2, 1, - 203, 3, 133, 2, 1, 197, 142, 133, 2, 1, 243, 6, 133, 2, 1, 203, 160, 133, - 2, 1, 192, 58, 133, 2, 1, 192, 60, 133, 2, 1, 192, 93, 133, 2, 1, 201, - 215, 144, 133, 2, 1, 191, 225, 133, 2, 1, 2, 191, 190, 133, 2, 1, 2, 191, - 191, 4, 199, 210, 133, 2, 1, 192, 12, 133, 2, 1, 223, 54, 2, 191, 190, - 133, 2, 1, 248, 127, 191, 190, 133, 2, 1, 223, 54, 248, 127, 191, 190, - 133, 2, 1, 232, 187, 133, 2, 1, 223, 9, 133, 2, 1, 203, 2, 133, 2, 1, - 197, 211, 65, 133, 2, 1, 219, 233, 215, 52, 133, 2, 1, 247, 25, 243, 6, - 8, 6, 1, 220, 119, 4, 54, 164, 8, 2, 1, 220, 119, 4, 54, 164, 8, 6, 1, - 220, 119, 4, 82, 198, 147, 8, 6, 1, 210, 227, 4, 105, 8, 6, 1, 207, 217, - 4, 199, 210, 8, 2, 1, 41, 4, 105, 8, 2, 1, 200, 40, 4, 236, 250, 105, 8, - 6, 1, 230, 84, 4, 237, 42, 8, 2, 1, 230, 84, 4, 237, 42, 8, 6, 1, 222, - 126, 4, 237, 42, 8, 2, 1, 222, 126, 4, 237, 42, 8, 6, 1, 191, 167, 4, - 237, 42, 8, 2, 1, 191, 167, 4, 237, 42, 8, 6, 1, 251, 109, 8, 6, 1, 218, - 148, 4, 106, 8, 6, 1, 152, 65, 8, 6, 1, 152, 251, 109, 8, 2, 1, 196, 9, - 4, 50, 106, 8, 6, 1, 193, 222, 4, 106, 8, 2, 1, 193, 222, 4, 106, 8, 2, - 1, 196, 9, 4, 238, 128, 8, 6, 1, 134, 230, 83, 8, 2, 1, 134, 230, 83, 8, - 2, 1, 199, 208, 209, 202, 8, 2, 1, 234, 227, 4, 212, 252, 8, 2, 1, 152, - 207, 217, 4, 199, 210, 8, 2, 1, 186, 4, 131, 206, 184, 223, 89, 8, 1, 2, - 6, 152, 73, 8, 200, 225, 2, 1, 223, 7, 59, 1, 6, 196, 8, 8, 6, 1, 206, 4, - 4, 200, 142, 199, 210, 8, 6, 1, 191, 167, 4, 200, 142, 199, 210, 93, 6, - 1, 251, 135, 93, 2, 1, 251, 135, 93, 6, 1, 195, 63, 93, 2, 1, 195, 63, - 93, 6, 1, 231, 174, 93, 2, 1, 231, 174, 93, 6, 1, 237, 208, 93, 2, 1, - 237, 208, 93, 6, 1, 234, 122, 93, 2, 1, 234, 122, 93, 6, 1, 202, 2, 93, - 2, 1, 202, 2, 93, 6, 1, 191, 95, 93, 2, 1, 191, 95, 93, 6, 1, 229, 229, - 93, 2, 1, 229, 229, 93, 6, 1, 199, 8, 93, 2, 1, 199, 8, 93, 6, 1, 228, 2, - 93, 2, 1, 228, 2, 93, 6, 1, 222, 51, 93, 2, 1, 222, 51, 93, 6, 1, 219, - 228, 93, 2, 1, 219, 228, 93, 6, 1, 216, 81, 93, 2, 1, 216, 81, 93, 6, 1, - 213, 205, 93, 2, 1, 213, 205, 93, 6, 1, 220, 224, 93, 2, 1, 220, 224, 93, - 6, 1, 74, 93, 2, 1, 74, 93, 6, 1, 209, 176, 93, 2, 1, 209, 176, 93, 6, 1, - 206, 157, 93, 2, 1, 206, 157, 93, 6, 1, 202, 178, 93, 2, 1, 202, 178, 93, - 6, 1, 199, 161, 93, 2, 1, 199, 161, 93, 6, 1, 196, 164, 93, 2, 1, 196, - 164, 93, 6, 1, 232, 238, 93, 2, 1, 232, 238, 93, 6, 1, 221, 166, 93, 2, - 1, 221, 166, 93, 6, 1, 208, 169, 93, 2, 1, 208, 169, 93, 6, 1, 211, 70, - 93, 2, 1, 211, 70, 93, 6, 1, 236, 248, 251, 141, 93, 2, 1, 236, 248, 251, - 141, 93, 6, 1, 38, 93, 251, 178, 93, 2, 1, 38, 93, 251, 178, 93, 6, 1, - 238, 151, 234, 122, 93, 2, 1, 238, 151, 234, 122, 93, 6, 1, 236, 248, - 222, 51, 93, 2, 1, 236, 248, 222, 51, 93, 6, 1, 236, 248, 213, 205, 93, - 2, 1, 236, 248, 213, 205, 93, 6, 1, 238, 151, 213, 205, 93, 2, 1, 238, - 151, 213, 205, 93, 6, 1, 38, 93, 211, 70, 93, 2, 1, 38, 93, 211, 70, 93, - 6, 1, 205, 140, 93, 2, 1, 205, 140, 93, 6, 1, 238, 167, 203, 100, 93, 2, - 1, 238, 167, 203, 100, 93, 6, 1, 38, 93, 203, 100, 93, 2, 1, 38, 93, 203, - 100, 93, 6, 1, 38, 93, 233, 226, 93, 2, 1, 38, 93, 233, 226, 93, 6, 1, - 251, 161, 221, 171, 93, 2, 1, 251, 161, 221, 171, 93, 6, 1, 236, 248, - 228, 210, 93, 2, 1, 236, 248, 228, 210, 93, 6, 1, 38, 93, 228, 210, 93, - 2, 1, 38, 93, 228, 210, 93, 6, 1, 38, 93, 144, 93, 2, 1, 38, 93, 144, 93, - 6, 1, 220, 118, 144, 93, 2, 1, 220, 118, 144, 93, 6, 1, 38, 93, 229, 177, - 93, 2, 1, 38, 93, 229, 177, 93, 6, 1, 38, 93, 229, 232, 93, 2, 1, 38, 93, - 229, 232, 93, 6, 1, 38, 93, 231, 169, 93, 2, 1, 38, 93, 231, 169, 93, 6, - 1, 38, 93, 236, 148, 93, 2, 1, 38, 93, 236, 148, 93, 6, 1, 38, 93, 203, - 66, 93, 2, 1, 38, 93, 203, 66, 93, 6, 1, 38, 212, 132, 203, 66, 93, 2, 1, - 38, 212, 132, 203, 66, 93, 6, 1, 38, 212, 132, 214, 2, 93, 2, 1, 38, 212, - 132, 214, 2, 93, 6, 1, 38, 212, 132, 212, 68, 93, 2, 1, 38, 212, 132, - 212, 68, 93, 6, 1, 38, 212, 132, 193, 138, 93, 2, 1, 38, 212, 132, 193, - 138, 93, 16, 222, 75, 93, 16, 216, 82, 206, 157, 93, 16, 209, 177, 206, - 157, 93, 16, 201, 84, 93, 16, 199, 162, 206, 157, 93, 16, 221, 167, 206, - 157, 93, 16, 203, 67, 202, 178, 93, 6, 1, 238, 151, 203, 100, 93, 2, 1, - 238, 151, 203, 100, 93, 6, 1, 238, 151, 231, 169, 93, 2, 1, 238, 151, - 231, 169, 93, 33, 213, 206, 56, 93, 33, 201, 208, 250, 151, 93, 33, 201, - 208, 219, 164, 93, 6, 1, 248, 55, 221, 171, 93, 2, 1, 248, 55, 221, 171, - 93, 38, 212, 132, 232, 42, 201, 58, 93, 38, 212, 132, 236, 189, 208, 8, - 77, 93, 38, 212, 132, 223, 114, 208, 8, 77, 93, 38, 212, 132, 195, 134, - 236, 160, 93, 232, 80, 91, 230, 37, 93, 232, 42, 201, 58, 93, 215, 184, - 236, 160, 100, 2, 1, 251, 81, 100, 2, 1, 249, 51, 100, 2, 1, 231, 173, - 100, 2, 1, 236, 105, 100, 2, 1, 234, 61, 100, 2, 1, 195, 46, 100, 2, 1, - 191, 80, 100, 2, 1, 199, 188, 100, 2, 1, 223, 134, 100, 2, 1, 222, 61, - 100, 2, 1, 219, 239, 100, 2, 1, 217, 70, 100, 2, 1, 214, 202, 100, 2, 1, - 211, 93, 100, 2, 1, 210, 121, 100, 2, 1, 191, 67, 100, 2, 1, 207, 158, - 100, 2, 1, 205, 137, 100, 2, 1, 199, 174, 100, 2, 1, 196, 109, 100, 2, 1, - 209, 211, 100, 2, 1, 221, 176, 100, 2, 1, 231, 45, 100, 2, 1, 208, 74, - 100, 2, 1, 203, 64, 100, 2, 1, 243, 33, 100, 2, 1, 247, 80, 100, 2, 1, - 222, 207, 100, 2, 1, 242, 226, 100, 2, 1, 246, 193, 100, 2, 1, 192, 218, - 100, 2, 1, 222, 222, 100, 2, 1, 230, 54, 100, 2, 1, 229, 213, 100, 2, 1, - 229, 113, 100, 2, 1, 193, 123, 100, 2, 1, 229, 242, 100, 2, 1, 228, 235, - 100, 2, 1, 192, 14, 100, 2, 1, 251, 218, 198, 170, 1, 169, 198, 170, 1, - 192, 136, 198, 170, 1, 192, 135, 198, 170, 1, 192, 125, 198, 170, 1, 192, - 123, 198, 170, 1, 248, 168, 252, 10, 192, 118, 198, 170, 1, 192, 118, - 198, 170, 1, 192, 133, 198, 170, 1, 192, 130, 198, 170, 1, 192, 132, 198, - 170, 1, 192, 131, 198, 170, 1, 192, 40, 198, 170, 1, 192, 127, 198, 170, - 1, 192, 116, 198, 170, 1, 197, 82, 192, 116, 198, 170, 1, 192, 113, 198, - 170, 1, 192, 121, 198, 170, 1, 248, 168, 252, 10, 192, 121, 198, 170, 1, - 197, 82, 192, 121, 198, 170, 1, 192, 120, 198, 170, 1, 192, 140, 198, - 170, 1, 192, 114, 198, 170, 1, 197, 82, 192, 114, 198, 170, 1, 192, 103, - 198, 170, 1, 197, 82, 192, 103, 198, 170, 1, 192, 33, 198, 170, 1, 192, - 82, 198, 170, 1, 251, 191, 192, 82, 198, 170, 1, 197, 82, 192, 82, 198, - 170, 1, 192, 112, 198, 170, 1, 192, 111, 198, 170, 1, 192, 108, 198, 170, - 1, 197, 82, 192, 122, 198, 170, 1, 197, 82, 192, 106, 198, 170, 1, 192, - 104, 198, 170, 1, 191, 225, 198, 170, 1, 192, 101, 198, 170, 1, 192, 99, - 198, 170, 1, 192, 124, 198, 170, 1, 197, 82, 192, 124, 198, 170, 1, 250, - 77, 192, 124, 198, 170, 1, 192, 98, 198, 170, 1, 192, 96, 198, 170, 1, - 192, 97, 198, 170, 1, 192, 95, 198, 170, 1, 192, 94, 198, 170, 1, 192, - 134, 198, 170, 1, 192, 92, 198, 170, 1, 192, 90, 198, 170, 1, 192, 89, - 198, 170, 1, 192, 86, 198, 170, 1, 192, 83, 198, 170, 1, 199, 152, 192, - 83, 198, 170, 1, 192, 81, 198, 170, 1, 192, 80, 198, 170, 1, 192, 12, - 198, 170, 59, 1, 220, 91, 77, 198, 170, 204, 6, 77, 198, 170, 119, 222, - 169, 36, 5, 219, 18, 36, 5, 215, 244, 36, 5, 206, 149, 36, 5, 202, 33, - 36, 5, 203, 50, 36, 5, 248, 62, 36, 5, 198, 86, 36, 5, 242, 50, 36, 5, - 213, 23, 36, 5, 212, 51, 36, 5, 230, 231, 211, 169, 36, 5, 191, 6, 36, 5, - 236, 127, 36, 5, 237, 115, 36, 5, 222, 173, 36, 5, 198, 235, 36, 5, 243, - 19, 36, 5, 209, 189, 36, 5, 209, 64, 36, 5, 231, 60, 36, 5, 231, 56, 36, - 5, 231, 57, 36, 5, 231, 58, 36, 5, 201, 170, 36, 5, 201, 124, 36, 5, 201, - 137, 36, 5, 201, 169, 36, 5, 201, 142, 36, 5, 201, 143, 36, 5, 201, 129, - 36, 5, 247, 17, 36, 5, 246, 252, 36, 5, 246, 254, 36, 5, 247, 16, 36, 5, - 247, 14, 36, 5, 247, 15, 36, 5, 246, 253, 36, 5, 190, 224, 36, 5, 190, - 202, 36, 5, 190, 215, 36, 5, 190, 223, 36, 5, 190, 218, 36, 5, 190, 219, - 36, 5, 190, 207, 36, 5, 247, 12, 36, 5, 246, 255, 36, 5, 247, 1, 36, 5, - 247, 11, 36, 5, 247, 9, 36, 5, 247, 10, 36, 5, 247, 0, 36, 5, 207, 229, - 36, 5, 207, 219, 36, 5, 207, 225, 36, 5, 207, 228, 36, 5, 207, 226, 36, - 5, 207, 227, 36, 5, 207, 224, 36, 5, 220, 129, 36, 5, 220, 121, 36, 5, - 220, 124, 36, 5, 220, 128, 36, 5, 220, 125, 36, 5, 220, 126, 36, 5, 220, - 122, 36, 5, 192, 175, 36, 5, 192, 162, 36, 5, 192, 170, 36, 5, 192, 174, - 36, 5, 192, 172, 36, 5, 192, 173, 36, 5, 192, 169, 36, 5, 230, 95, 36, 5, - 230, 85, 36, 5, 230, 88, 36, 5, 230, 94, 36, 5, 230, 90, 36, 5, 230, 91, - 36, 5, 230, 87, 33, 42, 1, 248, 223, 33, 42, 1, 195, 150, 33, 42, 1, 231, - 40, 33, 42, 1, 237, 101, 33, 42, 1, 191, 62, 33, 42, 1, 191, 87, 33, 42, - 1, 157, 33, 42, 1, 234, 97, 33, 42, 1, 234, 72, 33, 42, 1, 234, 61, 33, - 42, 1, 74, 33, 42, 1, 210, 53, 33, 42, 1, 233, 248, 33, 42, 1, 233, 236, - 33, 42, 1, 199, 140, 33, 42, 1, 144, 33, 42, 1, 197, 157, 33, 42, 1, 243, - 79, 33, 42, 1, 203, 160, 33, 42, 1, 203, 111, 33, 42, 1, 232, 187, 33, - 42, 1, 233, 232, 33, 42, 1, 65, 33, 42, 1, 223, 197, 33, 42, 1, 236, 146, - 33, 42, 1, 215, 202, 196, 124, 33, 42, 1, 192, 95, 33, 42, 1, 191, 225, - 33, 42, 1, 223, 53, 65, 33, 42, 1, 219, 59, 191, 190, 33, 42, 1, 248, - 127, 191, 190, 33, 42, 1, 223, 53, 248, 127, 191, 190, 50, 251, 65, 200, - 220, 217, 32, 50, 251, 65, 235, 94, 200, 220, 217, 32, 45, 200, 220, 248, - 5, 50, 200, 220, 248, 5, 45, 235, 94, 200, 220, 248, 5, 50, 235, 94, 200, - 220, 248, 5, 207, 142, 223, 76, 217, 32, 207, 142, 235, 94, 223, 76, 217, - 32, 235, 94, 198, 4, 217, 32, 45, 198, 4, 248, 5, 50, 198, 4, 248, 5, - 207, 142, 201, 185, 45, 207, 142, 211, 95, 248, 5, 50, 207, 142, 211, 95, - 248, 5, 234, 146, 238, 207, 210, 116, 232, 109, 210, 116, 207, 13, 232, - 109, 210, 116, 228, 55, 235, 94, 211, 164, 235, 75, 251, 75, 196, 62, - 251, 75, 235, 94, 206, 198, 251, 64, 54, 211, 159, 228, 58, 223, 65, 223, - 74, 210, 173, 247, 255, 228, 59, 4, 236, 253, 198, 148, 4, 206, 184, 56, - 45, 131, 210, 106, 248, 5, 50, 131, 210, 106, 248, 5, 198, 148, 4, 75, - 56, 198, 148, 4, 75, 60, 45, 81, 249, 38, 4, 208, 2, 50, 81, 249, 38, 4, - 208, 2, 198, 49, 45, 134, 248, 5, 198, 49, 50, 134, 248, 5, 248, 29, 45, - 134, 248, 5, 248, 29, 50, 134, 248, 5, 45, 202, 201, 126, 248, 5, 50, - 202, 201, 126, 248, 5, 45, 54, 210, 103, 50, 54, 210, 103, 103, 183, 138, - 91, 75, 208, 144, 91, 75, 138, 103, 183, 208, 144, 112, 232, 90, 75, 208, - 144, 232, 185, 75, 77, 207, 13, 208, 8, 77, 81, 198, 147, 206, 184, 209, - 54, 193, 23, 204, 6, 82, 236, 96, 152, 242, 26, 207, 142, 236, 96, 207, - 142, 242, 26, 152, 204, 20, 237, 224, 4, 45, 230, 140, 237, 224, 4, 50, - 230, 140, 152, 237, 223, 198, 49, 134, 205, 49, 57, 197, 10, 237, 170, - 198, 218, 237, 170, 201, 74, 232, 42, 201, 58, 81, 202, 131, 236, 94, - 193, 70, 81, 219, 88, 247, 61, 54, 228, 58, 207, 13, 242, 26, 54, 218, - 215, 207, 247, 77, 237, 171, 4, 45, 196, 65, 54, 200, 159, 77, 223, 65, - 131, 222, 9, 223, 65, 131, 222, 10, 4, 222, 10, 56, 131, 222, 9, 131, - 222, 10, 4, 236, 96, 54, 201, 109, 242, 26, 235, 94, 202, 18, 197, 221, - 237, 223, 216, 195, 242, 26, 210, 115, 77, 208, 143, 234, 86, 77, 238, - 208, 195, 134, 236, 160, 238, 171, 210, 72, 4, 50, 238, 169, 238, 171, - 210, 72, 4, 45, 238, 169, 198, 123, 3, 6, 233, 213, 216, 195, 233, 175, - 77, 216, 195, 208, 8, 77, 45, 51, 248, 6, 4, 105, 50, 51, 248, 6, 4, 105, - 45, 51, 248, 6, 4, 54, 105, 50, 51, 248, 6, 4, 54, 105, 198, 49, 134, 45, - 210, 103, 198, 49, 134, 50, 210, 103, 248, 29, 134, 45, 210, 103, 248, - 29, 134, 50, 210, 103, 211, 159, 228, 58, 12, 48, 207, 43, 12, 48, 242, - 182, 12, 48, 205, 52, 108, 12, 48, 205, 52, 109, 12, 48, 205, 52, 139, - 12, 48, 209, 241, 12, 48, 248, 14, 12, 48, 199, 228, 12, 48, 221, 55, - 108, 12, 48, 221, 55, 109, 12, 48, 236, 157, 12, 48, 205, 56, 12, 48, 2, - 108, 12, 48, 2, 109, 12, 48, 220, 6, 108, 12, 48, 220, 6, 109, 12, 48, - 220, 6, 139, 12, 48, 220, 6, 137, 12, 48, 202, 53, 12, 48, 198, 222, 12, - 48, 202, 50, 108, 12, 48, 202, 50, 109, 12, 48, 229, 192, 108, 12, 48, - 229, 192, 109, 12, 48, 230, 20, 12, 48, 207, 131, 12, 48, 243, 16, 12, - 48, 200, 193, 12, 48, 215, 188, 12, 48, 237, 98, 12, 48, 215, 177, 12, - 48, 242, 201, 12, 48, 193, 142, 108, 12, 48, 193, 142, 109, 12, 48, 232, - 202, 12, 48, 210, 66, 108, 12, 48, 210, 66, 109, 12, 48, 202, 173, 134, - 197, 251, 197, 173, 12, 48, 238, 192, 12, 48, 236, 117, 12, 48, 222, 255, - 12, 48, 248, 54, 80, 242, 165, 12, 48, 233, 152, 12, 48, 201, 210, 108, - 12, 48, 201, 210, 109, 12, 48, 249, 53, 12, 48, 202, 180, 12, 48, 247, - 142, 202, 180, 12, 48, 214, 72, 108, 12, 48, 214, 72, 109, 12, 48, 214, - 72, 139, 12, 48, 214, 72, 137, 12, 48, 216, 153, 12, 48, 203, 102, 12, - 48, 207, 137, 12, 48, 233, 182, 12, 48, 211, 108, 12, 48, 247, 226, 108, - 12, 48, 247, 226, 109, 12, 48, 216, 205, 12, 48, 215, 183, 12, 48, 230, - 180, 108, 12, 48, 230, 180, 109, 12, 48, 230, 180, 139, 12, 48, 198, 168, - 12, 48, 242, 164, 12, 48, 193, 103, 108, 12, 48, 193, 103, 109, 12, 48, - 247, 142, 205, 45, 12, 48, 202, 173, 228, 156, 12, 48, 228, 156, 12, 48, - 247, 142, 201, 224, 12, 48, 247, 142, 203, 97, 12, 48, 232, 120, 12, 48, - 247, 142, 247, 37, 12, 48, 202, 173, 193, 166, 12, 48, 193, 167, 108, 12, - 48, 193, 167, 109, 12, 48, 242, 204, 12, 48, 247, 142, 230, 214, 12, 48, - 177, 108, 12, 48, 177, 109, 12, 48, 247, 142, 218, 251, 12, 48, 247, 142, - 231, 154, 12, 48, 215, 172, 108, 12, 48, 215, 172, 109, 12, 48, 207, 144, - 12, 48, 248, 66, 12, 48, 247, 142, 199, 180, 219, 206, 12, 48, 247, 142, - 219, 209, 12, 48, 247, 142, 193, 64, 12, 48, 247, 142, 232, 139, 12, 48, - 234, 157, 108, 12, 48, 234, 157, 109, 12, 48, 234, 157, 139, 12, 48, 247, - 142, 234, 156, 12, 48, 229, 203, 12, 48, 247, 142, 228, 152, 12, 48, 248, - 50, 12, 48, 231, 24, 12, 48, 247, 142, 232, 195, 12, 48, 247, 142, 248, - 112, 12, 48, 247, 142, 205, 153, 12, 48, 202, 173, 193, 93, 12, 48, 202, - 173, 192, 72, 12, 48, 247, 142, 232, 61, 12, 48, 223, 6, 233, 187, 12, - 48, 247, 142, 233, 187, 12, 48, 223, 6, 198, 51, 12, 48, 247, 142, 198, - 51, 12, 48, 223, 6, 235, 67, 12, 48, 247, 142, 235, 67, 12, 48, 197, 51, - 12, 48, 223, 6, 197, 51, 12, 48, 247, 142, 197, 51, 83, 48, 108, 83, 48, - 219, 88, 83, 48, 236, 96, 83, 48, 202, 92, 83, 48, 205, 51, 83, 48, 106, - 83, 48, 109, 83, 48, 219, 117, 83, 48, 217, 70, 83, 48, 219, 185, 83, 48, - 234, 35, 83, 48, 176, 83, 48, 143, 248, 14, 83, 48, 238, 195, 83, 48, - 227, 252, 83, 48, 199, 228, 83, 48, 211, 66, 248, 14, 83, 48, 221, 54, - 83, 48, 208, 247, 83, 48, 193, 12, 83, 48, 201, 198, 83, 48, 50, 211, 66, - 248, 14, 83, 48, 229, 114, 234, 56, 83, 48, 199, 90, 83, 48, 236, 157, - 83, 48, 205, 56, 83, 48, 242, 182, 83, 48, 208, 197, 83, 48, 251, 200, - 83, 48, 215, 163, 83, 48, 234, 56, 83, 48, 234, 163, 83, 48, 205, 86, 83, - 48, 230, 223, 83, 48, 230, 224, 202, 69, 83, 48, 233, 186, 83, 48, 248, - 126, 83, 48, 193, 35, 83, 48, 243, 38, 83, 48, 206, 128, 83, 48, 223, - 130, 83, 48, 202, 65, 83, 48, 220, 5, 83, 48, 238, 205, 83, 48, 201, 189, - 83, 48, 215, 168, 83, 48, 206, 171, 83, 48, 193, 20, 83, 48, 211, 84, 83, - 48, 197, 59, 83, 48, 235, 47, 83, 48, 203, 35, 198, 222, 83, 48, 235, 94, - 242, 182, 83, 48, 177, 201, 29, 83, 48, 103, 229, 251, 83, 48, 203, 41, - 83, 48, 248, 21, 83, 48, 202, 49, 83, 48, 247, 233, 83, 48, 201, 73, 83, - 48, 229, 191, 83, 48, 230, 38, 83, 48, 236, 100, 83, 48, 230, 20, 83, 48, - 247, 255, 83, 48, 207, 131, 83, 48, 205, 69, 83, 48, 236, 191, 83, 48, - 250, 82, 83, 48, 201, 185, 83, 48, 212, 254, 83, 48, 200, 193, 83, 48, - 205, 98, 83, 48, 215, 188, 83, 48, 197, 250, 83, 48, 220, 87, 83, 48, - 201, 58, 83, 48, 237, 98, 83, 48, 193, 118, 83, 48, 236, 130, 212, 254, - 83, 48, 242, 22, 83, 48, 232, 35, 83, 48, 242, 195, 83, 48, 201, 79, 83, - 48, 193, 141, 83, 48, 232, 202, 83, 48, 242, 191, 83, 48, 233, 25, 83, - 48, 54, 192, 235, 83, 48, 134, 197, 251, 197, 173, 83, 48, 202, 83, 83, - 48, 233, 37, 83, 48, 238, 192, 83, 48, 236, 117, 83, 48, 208, 192, 83, - 48, 222, 255, 83, 48, 216, 177, 83, 48, 198, 146, 83, 48, 200, 137, 83, - 48, 219, 111, 83, 48, 196, 39, 83, 48, 232, 236, 83, 48, 248, 54, 80, - 242, 165, 83, 48, 202, 207, 83, 48, 235, 94, 199, 82, 83, 48, 193, 87, - 83, 48, 202, 102, 83, 48, 236, 177, 83, 48, 233, 152, 83, 48, 201, 227, - 83, 48, 55, 83, 48, 201, 60, 83, 48, 201, 209, 83, 48, 198, 21, 83, 48, - 230, 189, 83, 48, 247, 22, 83, 48, 201, 102, 83, 48, 249, 53, 83, 48, - 206, 240, 83, 48, 202, 180, 83, 48, 222, 246, 83, 48, 214, 71, 83, 48, - 203, 102, 83, 48, 233, 13, 83, 48, 211, 108, 83, 48, 251, 74, 83, 48, - 209, 81, 83, 48, 234, 167, 83, 48, 247, 225, 83, 48, 216, 205, 83, 48, - 216, 20, 83, 48, 204, 27, 83, 48, 250, 189, 83, 48, 215, 183, 83, 48, - 198, 56, 83, 48, 211, 53, 83, 48, 248, 58, 83, 48, 201, 54, 83, 48, 242, - 34, 83, 48, 230, 179, 83, 48, 198, 168, 83, 48, 223, 93, 83, 48, 248, 72, - 83, 48, 193, 167, 234, 56, 83, 48, 242, 164, 83, 48, 193, 102, 83, 48, - 205, 45, 83, 48, 228, 156, 83, 48, 201, 224, 83, 48, 195, 177, 83, 48, - 248, 218, 83, 48, 209, 138, 83, 48, 249, 83, 83, 48, 203, 97, 83, 48, - 207, 81, 83, 48, 206, 40, 83, 48, 232, 120, 83, 48, 248, 56, 83, 48, 247, - 37, 83, 48, 248, 96, 83, 48, 215, 185, 83, 48, 193, 166, 83, 48, 242, - 204, 83, 48, 193, 60, 83, 48, 236, 169, 83, 48, 195, 47, 83, 48, 230, - 214, 83, 48, 218, 251, 83, 48, 231, 154, 83, 48, 215, 171, 83, 48, 202, - 91, 83, 48, 203, 35, 199, 209, 248, 112, 83, 48, 207, 144, 83, 48, 248, - 66, 83, 48, 193, 2, 83, 48, 233, 62, 83, 48, 219, 206, 83, 48, 199, 180, - 219, 206, 83, 48, 219, 202, 83, 48, 201, 255, 83, 48, 219, 209, 83, 48, - 193, 64, 83, 48, 232, 139, 83, 48, 234, 156, 83, 48, 229, 203, 83, 48, - 232, 78, 83, 48, 228, 152, 83, 48, 248, 50, 83, 48, 199, 194, 83, 48, - 230, 45, 83, 48, 232, 229, 83, 48, 205, 189, 193, 60, 83, 48, 247, 24, - 83, 48, 231, 24, 83, 48, 232, 195, 83, 48, 248, 112, 83, 48, 205, 153, - 83, 48, 237, 83, 83, 48, 193, 93, 83, 48, 229, 167, 83, 48, 192, 72, 83, - 48, 216, 31, 83, 48, 248, 91, 83, 48, 234, 68, 83, 48, 232, 61, 83, 48, - 197, 218, 83, 48, 235, 50, 83, 48, 207, 125, 83, 48, 213, 0, 83, 48, 233, - 187, 83, 48, 198, 51, 83, 48, 235, 67, 83, 48, 197, 51, 83, 48, 232, 142, - 154, 237, 40, 246, 192, 45, 118, 187, 154, 237, 40, 246, 192, 95, 118, - 60, 154, 237, 40, 246, 192, 45, 118, 82, 24, 187, 154, 237, 40, 246, 192, - 95, 118, 82, 24, 60, 154, 237, 40, 246, 192, 232, 42, 200, 163, 154, 237, - 40, 246, 192, 200, 164, 232, 60, 56, 154, 237, 40, 246, 192, 200, 164, - 232, 60, 60, 154, 237, 40, 246, 192, 200, 164, 232, 60, 219, 200, 154, - 237, 40, 246, 192, 200, 164, 232, 60, 116, 219, 200, 154, 237, 40, 246, - 192, 200, 164, 232, 60, 116, 187, 154, 237, 40, 246, 192, 200, 164, 232, - 60, 110, 219, 200, 154, 237, 40, 246, 192, 210, 249, 154, 201, 242, 154, - 242, 26, 154, 232, 42, 201, 58, 236, 166, 77, 222, 247, 223, 113, 201, - 101, 113, 154, 223, 23, 77, 154, 242, 167, 77, 154, 31, 191, 77, 45, 251, - 65, 248, 5, 50, 251, 65, 248, 5, 45, 54, 251, 65, 248, 5, 50, 54, 251, - 65, 248, 5, 45, 238, 211, 248, 5, 50, 238, 211, 248, 5, 45, 64, 238, 211, - 248, 5, 50, 64, 238, 211, 248, 5, 45, 62, 219, 163, 248, 5, 50, 62, 219, - 163, 248, 5, 209, 11, 77, 231, 93, 77, 45, 198, 37, 203, 98, 248, 5, 50, - 198, 37, 203, 98, 248, 5, 45, 64, 219, 163, 248, 5, 50, 64, 219, 163, - 248, 5, 45, 64, 198, 37, 203, 98, 248, 5, 50, 64, 198, 37, 203, 98, 248, - 5, 45, 64, 51, 248, 5, 50, 64, 51, 248, 5, 193, 137, 237, 170, 207, 13, - 54, 208, 209, 207, 247, 77, 54, 208, 209, 207, 247, 77, 131, 54, 208, - 209, 207, 247, 77, 209, 11, 87, 233, 62, 229, 248, 212, 121, 108, 229, - 248, 212, 121, 109, 229, 248, 212, 121, 139, 229, 248, 212, 121, 137, - 229, 248, 212, 121, 153, 229, 248, 212, 121, 173, 229, 248, 212, 121, - 181, 229, 248, 212, 121, 176, 229, 248, 212, 121, 184, 154, 219, 144, - 163, 77, 154, 206, 175, 163, 77, 154, 237, 50, 163, 77, 154, 234, 34, - 163, 77, 30, 202, 165, 75, 163, 77, 30, 54, 75, 163, 77, 193, 133, 237, - 170, 81, 222, 60, 207, 44, 77, 81, 222, 60, 207, 44, 4, 195, 17, 202, 0, - 77, 81, 222, 60, 207, 44, 87, 116, 230, 37, 81, 222, 60, 207, 44, 4, 195, - 17, 202, 0, 87, 116, 230, 37, 81, 222, 60, 207, 44, 87, 110, 230, 37, 47, - 209, 11, 77, 154, 199, 104, 219, 89, 233, 10, 204, 6, 113, 229, 248, 212, - 121, 199, 90, 229, 248, 212, 121, 197, 28, 229, 248, 212, 121, 198, 244, - 81, 154, 223, 23, 77, 217, 12, 77, 210, 97, 251, 102, 77, 154, 66, 223, - 116, 154, 134, 232, 221, 201, 242, 229, 88, 1, 2, 65, 229, 88, 1, 65, - 229, 88, 1, 2, 70, 229, 88, 1, 70, 229, 88, 1, 2, 69, 229, 88, 1, 69, - 229, 88, 1, 2, 73, 229, 88, 1, 73, 229, 88, 1, 2, 74, 229, 88, 1, 74, - 229, 88, 1, 157, 229, 88, 1, 231, 203, 229, 88, 1, 221, 142, 229, 88, 1, - 231, 16, 229, 88, 1, 220, 208, 229, 88, 1, 230, 146, 229, 88, 1, 221, - 253, 229, 88, 1, 231, 128, 229, 88, 1, 221, 43, 229, 88, 1, 230, 223, - 229, 88, 1, 189, 229, 88, 1, 191, 123, 229, 88, 1, 202, 217, 229, 88, 1, - 191, 30, 229, 88, 1, 200, 255, 229, 88, 1, 190, 251, 229, 88, 1, 205, 63, - 229, 88, 1, 191, 87, 229, 88, 1, 202, 41, 229, 88, 1, 191, 7, 229, 88, 1, - 199, 247, 229, 88, 1, 237, 241, 229, 88, 1, 198, 188, 229, 88, 1, 236, - 255, 229, 88, 1, 2, 197, 90, 229, 88, 1, 197, 90, 229, 88, 1, 235, 45, - 229, 88, 1, 199, 140, 229, 88, 1, 237, 101, 229, 88, 1, 159, 229, 88, 1, - 236, 129, 229, 88, 1, 180, 229, 88, 1, 213, 205, 229, 88, 1, 212, 165, - 229, 88, 1, 214, 107, 229, 88, 1, 213, 30, 229, 88, 1, 144, 229, 88, 1, - 249, 103, 229, 88, 1, 168, 229, 88, 1, 229, 126, 229, 88, 1, 248, 140, - 229, 88, 1, 209, 176, 229, 88, 1, 228, 128, 229, 88, 1, 247, 218, 229, - 88, 1, 208, 158, 229, 88, 1, 229, 213, 229, 88, 1, 248, 223, 229, 88, 1, - 210, 53, 229, 88, 1, 228, 247, 229, 88, 1, 248, 63, 229, 88, 1, 209, 65, - 229, 88, 1, 172, 229, 88, 1, 216, 81, 229, 88, 1, 215, 139, 229, 88, 1, - 216, 213, 229, 88, 1, 215, 251, 229, 88, 1, 2, 169, 229, 88, 1, 169, 229, - 88, 1, 2, 191, 225, 229, 88, 1, 191, 225, 229, 88, 1, 2, 192, 12, 229, - 88, 1, 192, 12, 229, 88, 1, 166, 229, 88, 1, 206, 252, 229, 88, 1, 206, - 63, 229, 88, 1, 207, 108, 229, 88, 1, 206, 157, 229, 88, 1, 2, 193, 187, - 229, 88, 1, 193, 187, 229, 88, 1, 193, 84, 229, 88, 1, 193, 123, 229, 88, - 1, 193, 48, 229, 88, 1, 215, 47, 229, 88, 1, 193, 246, 229, 88, 1, 2, - 157, 229, 88, 1, 2, 221, 253, 33, 222, 22, 195, 17, 202, 0, 77, 33, 222, - 22, 204, 25, 202, 0, 77, 222, 22, 195, 17, 202, 0, 77, 222, 22, 204, 25, - 202, 0, 77, 229, 88, 223, 23, 77, 229, 88, 195, 17, 223, 23, 77, 229, 88, - 236, 214, 191, 242, 222, 22, 54, 228, 58, 71, 1, 2, 65, 71, 1, 65, 71, 1, - 2, 70, 71, 1, 70, 71, 1, 2, 69, 71, 1, 69, 71, 1, 2, 73, 71, 1, 73, 71, - 1, 2, 74, 71, 1, 74, 71, 1, 157, 71, 1, 231, 203, 71, 1, 221, 142, 71, 1, - 231, 16, 71, 1, 220, 208, 71, 1, 230, 146, 71, 1, 221, 253, 71, 1, 231, - 128, 71, 1, 221, 43, 71, 1, 230, 223, 71, 1, 189, 71, 1, 191, 123, 71, 1, - 202, 217, 71, 1, 191, 30, 71, 1, 200, 255, 71, 1, 190, 251, 71, 1, 205, - 63, 71, 1, 191, 87, 71, 1, 202, 41, 71, 1, 191, 7, 71, 1, 199, 247, 71, - 1, 237, 241, 71, 1, 198, 188, 71, 1, 236, 255, 71, 1, 2, 197, 90, 71, 1, - 197, 90, 71, 1, 235, 45, 71, 1, 199, 140, 71, 1, 237, 101, 71, 1, 159, - 71, 1, 236, 129, 71, 1, 180, 71, 1, 213, 205, 71, 1, 212, 165, 71, 1, - 214, 107, 71, 1, 213, 30, 71, 1, 144, 71, 1, 249, 103, 71, 1, 168, 71, 1, - 229, 126, 71, 1, 248, 140, 71, 1, 209, 176, 71, 1, 228, 128, 71, 1, 247, - 218, 71, 1, 208, 158, 71, 1, 229, 213, 71, 1, 248, 223, 71, 1, 210, 53, - 71, 1, 228, 247, 71, 1, 248, 63, 71, 1, 209, 65, 71, 1, 172, 71, 1, 216, - 81, 71, 1, 215, 139, 71, 1, 216, 213, 71, 1, 215, 251, 71, 1, 2, 169, 71, - 1, 169, 71, 1, 2, 191, 225, 71, 1, 191, 225, 71, 1, 2, 192, 12, 71, 1, - 192, 12, 71, 1, 166, 71, 1, 206, 252, 71, 1, 206, 63, 71, 1, 207, 108, - 71, 1, 206, 157, 71, 1, 2, 193, 187, 71, 1, 193, 187, 71, 1, 193, 84, 71, - 1, 193, 123, 71, 1, 193, 48, 71, 1, 215, 47, 71, 1, 193, 246, 71, 1, 2, - 157, 71, 1, 2, 221, 253, 71, 1, 195, 185, 71, 1, 195, 66, 71, 1, 195, - 150, 71, 1, 195, 21, 71, 82, 236, 96, 222, 22, 208, 184, 202, 0, 77, 71, - 223, 23, 77, 71, 195, 17, 223, 23, 77, 71, 236, 214, 221, 3, 248, 40, 1, - 250, 70, 248, 40, 1, 210, 226, 248, 40, 1, 218, 147, 248, 40, 1, 233, - 134, 248, 40, 1, 238, 80, 248, 40, 1, 200, 39, 248, 40, 1, 215, 47, 248, - 40, 1, 170, 248, 40, 1, 232, 14, 248, 40, 1, 222, 125, 248, 40, 1, 230, - 83, 248, 40, 1, 223, 7, 248, 40, 1, 208, 97, 248, 40, 1, 192, 235, 248, - 40, 1, 191, 72, 248, 40, 1, 246, 211, 248, 40, 1, 203, 162, 248, 40, 1, - 148, 248, 40, 1, 191, 166, 248, 40, 1, 247, 145, 248, 40, 1, 206, 3, 248, - 40, 1, 65, 248, 40, 1, 74, 248, 40, 1, 73, 248, 40, 1, 234, 130, 248, 40, - 1, 251, 184, 248, 40, 1, 234, 123, 248, 40, 1, 250, 113, 248, 40, 1, 211, - 9, 248, 40, 1, 251, 81, 248, 40, 1, 234, 61, 248, 40, 1, 251, 71, 248, - 40, 1, 234, 46, 248, 40, 1, 233, 248, 248, 40, 1, 70, 248, 40, 1, 69, - 248, 40, 1, 223, 21, 248, 40, 1, 196, 8, 248, 40, 1, 214, 56, 248, 40, 1, - 230, 227, 248, 40, 1, 223, 171, 248, 40, 1, 186, 4, 75, 56, 248, 40, 1, - 213, 67, 30, 1, 221, 89, 30, 1, 201, 162, 30, 1, 221, 82, 30, 1, 213, - 190, 30, 1, 213, 188, 30, 1, 213, 187, 30, 1, 198, 163, 30, 1, 201, 151, - 30, 1, 206, 234, 30, 1, 206, 229, 30, 1, 206, 226, 30, 1, 206, 219, 30, - 1, 206, 214, 30, 1, 206, 209, 30, 1, 206, 220, 30, 1, 206, 232, 30, 1, - 216, 59, 30, 1, 209, 160, 30, 1, 201, 159, 30, 1, 209, 149, 30, 1, 202, - 155, 30, 1, 201, 156, 30, 1, 223, 193, 30, 1, 242, 232, 30, 1, 201, 166, - 30, 1, 243, 43, 30, 1, 221, 164, 30, 1, 199, 2, 30, 1, 209, 200, 30, 1, - 229, 110, 30, 1, 65, 30, 1, 251, 229, 30, 1, 169, 30, 1, 192, 129, 30, 1, - 234, 23, 30, 1, 73, 30, 1, 192, 67, 30, 1, 192, 80, 30, 1, 74, 30, 1, - 193, 187, 30, 1, 193, 173, 30, 1, 211, 139, 30, 1, 192, 12, 30, 1, 69, - 30, 1, 193, 105, 30, 1, 193, 123, 30, 1, 193, 84, 30, 1, 191, 225, 30, 1, - 233, 201, 30, 1, 192, 33, 30, 1, 70, 30, 232, 218, 30, 1, 201, 160, 30, - 1, 213, 180, 30, 1, 213, 182, 30, 1, 213, 185, 30, 1, 206, 227, 30, 1, - 206, 208, 30, 1, 206, 216, 30, 1, 206, 221, 30, 1, 206, 206, 30, 1, 216, - 52, 30, 1, 216, 49, 30, 1, 216, 53, 30, 1, 222, 45, 30, 1, 209, 155, 30, - 1, 209, 141, 30, 1, 209, 147, 30, 1, 209, 144, 30, 1, 209, 158, 30, 1, - 209, 142, 30, 1, 222, 43, 30, 1, 222, 41, 30, 1, 202, 148, 30, 1, 202, - 146, 30, 1, 202, 138, 30, 1, 202, 143, 30, 1, 202, 153, 30, 1, 210, 139, - 30, 1, 201, 163, 30, 1, 192, 57, 30, 1, 192, 51, 30, 1, 192, 52, 30, 1, - 222, 44, 30, 1, 201, 164, 30, 1, 192, 63, 30, 1, 192, 0, 30, 1, 191, 255, - 30, 1, 192, 2, 30, 1, 191, 212, 30, 1, 191, 213, 30, 1, 191, 216, 30, 1, - 250, 231, 30, 1, 250, 225, 154, 251, 45, 219, 77, 77, 154, 251, 45, 207, - 14, 77, 154, 251, 45, 91, 77, 154, 251, 45, 103, 77, 154, 251, 45, 115, - 77, 154, 251, 45, 232, 90, 77, 154, 251, 45, 198, 49, 77, 154, 251, 45, - 82, 77, 154, 251, 45, 248, 29, 77, 154, 251, 45, 232, 197, 77, 154, 251, - 45, 205, 52, 77, 154, 251, 45, 198, 252, 77, 154, 251, 45, 232, 83, 77, - 154, 251, 45, 229, 188, 77, 154, 251, 45, 234, 164, 77, 154, 251, 45, - 217, 71, 77, 248, 40, 1, 247, 218, 248, 40, 1, 191, 30, 248, 40, 1, 222, - 217, 248, 40, 1, 230, 146, 248, 40, 1, 234, 145, 248, 40, 1, 234, 43, - 248, 40, 1, 211, 76, 248, 40, 1, 211, 80, 248, 40, 1, 223, 49, 248, 40, - 1, 251, 47, 248, 40, 1, 223, 100, 248, 40, 1, 196, 79, 248, 40, 1, 223, - 152, 248, 40, 1, 214, 34, 248, 40, 1, 251, 177, 248, 40, 1, 250, 108, - 248, 40, 1, 251, 98, 248, 40, 1, 211, 102, 248, 40, 1, 211, 83, 248, 40, - 1, 223, 97, 248, 40, 52, 1, 210, 226, 248, 40, 52, 1, 200, 39, 248, 40, - 52, 1, 222, 125, 248, 40, 52, 1, 230, 83, 248, 40, 1, 231, 55, 248, 40, - 1, 219, 136, 248, 40, 1, 190, 231, 248, 40, 52, 1, 232, 14, 248, 40, 1, - 230, 103, 248, 40, 1, 220, 156, 248, 40, 1, 211, 139, 248, 40, 1, 251, - 193, 12, 201, 23, 200, 39, 12, 201, 23, 193, 96, 12, 201, 23, 192, 209, - 12, 201, 23, 247, 158, 12, 201, 23, 200, 147, 12, 201, 23, 228, 48, 12, - 201, 23, 228, 52, 12, 201, 23, 228, 138, 12, 201, 23, 228, 49, 12, 201, - 23, 200, 42, 12, 201, 23, 228, 51, 12, 201, 23, 228, 47, 12, 201, 23, - 228, 136, 12, 201, 23, 228, 50, 12, 201, 23, 228, 46, 12, 201, 23, 215, - 47, 12, 201, 23, 230, 83, 12, 201, 23, 206, 3, 12, 201, 23, 210, 226, 12, - 201, 23, 201, 245, 12, 201, 23, 238, 80, 12, 201, 23, 228, 53, 12, 201, - 23, 229, 146, 12, 201, 23, 200, 51, 12, 201, 23, 200, 124, 12, 201, 23, - 201, 113, 12, 201, 23, 203, 168, 12, 201, 23, 210, 57, 12, 201, 23, 208, - 99, 12, 201, 23, 198, 94, 12, 201, 23, 200, 41, 12, 201, 23, 200, 136, - 12, 201, 23, 228, 63, 12, 201, 23, 228, 45, 12, 201, 23, 209, 221, 12, - 201, 23, 208, 97, 71, 1, 2, 220, 208, 71, 1, 2, 202, 217, 71, 1, 2, 200, - 255, 71, 1, 2, 159, 71, 1, 2, 212, 165, 71, 1, 2, 144, 71, 1, 2, 229, - 126, 71, 1, 2, 228, 128, 71, 1, 2, 229, 213, 71, 1, 2, 228, 247, 71, 1, - 2, 215, 139, 71, 1, 2, 166, 71, 1, 2, 206, 252, 71, 1, 2, 206, 63, 71, 1, - 2, 207, 108, 71, 1, 2, 206, 157, 127, 30, 221, 89, 127, 30, 213, 190, - 127, 30, 198, 163, 127, 30, 206, 234, 127, 30, 216, 59, 127, 30, 209, - 160, 127, 30, 202, 155, 127, 30, 223, 193, 127, 30, 242, 232, 127, 30, - 243, 43, 127, 30, 221, 164, 127, 30, 199, 2, 127, 30, 209, 200, 127, 30, - 229, 110, 127, 30, 221, 90, 65, 127, 30, 213, 191, 65, 127, 30, 198, 164, - 65, 127, 30, 206, 235, 65, 127, 30, 216, 60, 65, 127, 30, 209, 161, 65, - 127, 30, 202, 156, 65, 127, 30, 223, 194, 65, 127, 30, 242, 233, 65, 127, - 30, 243, 44, 65, 127, 30, 221, 165, 65, 127, 30, 199, 3, 65, 127, 30, - 209, 201, 65, 127, 30, 229, 111, 65, 127, 30, 242, 233, 69, 127, 221, 8, - 246, 192, 211, 117, 127, 221, 8, 246, 192, 186, 228, 128, 127, 227, 241, - 108, 127, 227, 241, 109, 127, 227, 241, 139, 127, 227, 241, 137, 127, - 227, 241, 153, 127, 227, 241, 173, 127, 227, 241, 181, 127, 227, 241, - 176, 127, 227, 241, 184, 127, 227, 241, 199, 90, 127, 227, 241, 215, 188, - 127, 227, 241, 232, 202, 127, 227, 241, 193, 141, 127, 227, 241, 193, 28, - 127, 227, 241, 216, 146, 127, 227, 241, 234, 163, 127, 227, 241, 200, - 193, 127, 227, 241, 201, 61, 127, 227, 241, 229, 223, 127, 227, 241, 202, - 30, 127, 227, 241, 214, 213, 127, 227, 241, 201, 226, 127, 227, 241, 232, - 213, 127, 227, 241, 239, 2, 127, 227, 241, 220, 90, 127, 227, 241, 207, - 37, 127, 227, 241, 247, 90, 127, 227, 241, 201, 5, 127, 227, 241, 200, - 173, 127, 227, 241, 234, 33, 127, 227, 241, 207, 27, 127, 227, 241, 251, - 117, 127, 227, 241, 232, 246, 127, 227, 241, 207, 25, 127, 227, 241, 204, - 27, 127, 227, 241, 207, 103, 47, 227, 241, 208, 7, 47, 227, 241, 221, - 116, 47, 227, 241, 205, 84, 47, 227, 241, 221, 3, 47, 31, 199, 91, 211, - 94, 62, 201, 185, 47, 31, 197, 29, 211, 94, 62, 201, 185, 47, 31, 198, - 245, 211, 94, 62, 201, 185, 47, 31, 232, 98, 211, 94, 62, 201, 185, 47, - 31, 232, 231, 211, 94, 62, 201, 185, 47, 31, 202, 116, 211, 94, 62, 201, - 185, 47, 31, 203, 237, 211, 94, 62, 201, 185, 47, 31, 234, 111, 211, 94, - 62, 201, 185, 210, 93, 57, 47, 31, 197, 29, 108, 47, 31, 197, 29, 109, - 47, 31, 197, 29, 139, 47, 31, 197, 29, 137, 47, 31, 197, 29, 153, 47, 31, - 197, 29, 173, 47, 31, 197, 29, 181, 47, 31, 197, 29, 176, 47, 31, 197, - 29, 184, 47, 31, 198, 244, 47, 31, 198, 245, 108, 47, 31, 198, 245, 109, - 47, 31, 198, 245, 139, 47, 31, 198, 245, 137, 47, 31, 198, 245, 153, 47, - 30, 221, 89, 47, 30, 213, 190, 47, 30, 198, 163, 47, 30, 206, 234, 47, - 30, 216, 59, 47, 30, 209, 160, 47, 30, 202, 155, 47, 30, 223, 193, 47, - 30, 242, 232, 47, 30, 243, 43, 47, 30, 221, 164, 47, 30, 199, 2, 47, 30, - 209, 200, 47, 30, 229, 110, 47, 30, 221, 90, 65, 47, 30, 213, 191, 65, - 47, 30, 198, 164, 65, 47, 30, 206, 235, 65, 47, 30, 216, 60, 65, 47, 30, - 209, 161, 65, 47, 30, 202, 156, 65, 47, 30, 223, 194, 65, 47, 30, 242, - 233, 65, 47, 30, 243, 44, 65, 47, 30, 221, 165, 65, 47, 30, 199, 3, 65, - 47, 30, 209, 201, 65, 47, 30, 229, 111, 65, 47, 221, 8, 246, 192, 246, - 199, 47, 221, 8, 246, 192, 222, 151, 47, 30, 223, 194, 69, 221, 8, 201, - 101, 113, 47, 227, 241, 108, 47, 227, 241, 109, 47, 227, 241, 139, 47, - 227, 241, 137, 47, 227, 241, 153, 47, 227, 241, 173, 47, 227, 241, 181, - 47, 227, 241, 176, 47, 227, 241, 184, 47, 227, 241, 199, 90, 47, 227, - 241, 215, 188, 47, 227, 241, 232, 202, 47, 227, 241, 193, 141, 47, 227, - 241, 193, 28, 47, 227, 241, 216, 146, 47, 227, 241, 234, 163, 47, 227, - 241, 200, 193, 47, 227, 241, 201, 61, 47, 227, 241, 229, 223, 47, 227, - 241, 202, 30, 47, 227, 241, 214, 213, 47, 227, 241, 201, 226, 47, 227, - 241, 232, 213, 47, 227, 241, 239, 2, 47, 227, 241, 220, 90, 47, 227, 241, - 205, 50, 47, 227, 241, 217, 76, 47, 227, 241, 233, 0, 47, 227, 241, 200, - 205, 47, 227, 241, 233, 179, 47, 227, 241, 208, 204, 47, 227, 241, 250, - 117, 47, 227, 241, 223, 24, 47, 227, 241, 207, 25, 47, 227, 241, 238, - 217, 47, 227, 241, 238, 204, 47, 227, 241, 229, 103, 47, 227, 241, 246, - 229, 47, 227, 241, 218, 219, 47, 227, 241, 219, 200, 47, 227, 241, 187, - 47, 227, 241, 216, 196, 47, 227, 241, 207, 55, 47, 227, 241, 201, 5, 47, - 227, 241, 200, 173, 47, 227, 241, 234, 33, 47, 227, 241, 207, 27, 47, - 227, 241, 251, 117, 47, 227, 241, 213, 176, 47, 31, 198, 245, 173, 47, - 31, 198, 245, 181, 47, 31, 198, 245, 176, 47, 31, 198, 245, 184, 47, 31, - 232, 97, 47, 31, 232, 98, 108, 47, 31, 232, 98, 109, 47, 31, 232, 98, - 139, 47, 31, 232, 98, 137, 47, 31, 232, 98, 153, 47, 31, 232, 98, 173, - 47, 31, 232, 98, 181, 47, 31, 232, 98, 176, 47, 31, 232, 98, 184, 47, 31, - 232, 230, 154, 199, 104, 16, 39, 222, 249, 154, 199, 104, 16, 39, 233, - 12, 154, 199, 104, 16, 39, 217, 39, 154, 199, 104, 16, 39, 250, 245, 154, - 199, 104, 16, 39, 217, 2, 154, 199, 104, 16, 39, 222, 148, 154, 199, 104, - 16, 39, 222, 149, 154, 199, 104, 16, 39, 250, 109, 154, 199, 104, 16, 39, - 204, 4, 154, 199, 104, 16, 39, 211, 145, 154, 199, 104, 16, 39, 212, 242, - 154, 199, 104, 16, 39, 237, 95, 51, 229, 146, 51, 233, 244, 51, 233, 189, - 219, 94, 219, 121, 57, 47, 71, 65, 47, 71, 70, 47, 71, 69, 47, 71, 73, - 47, 71, 74, 47, 71, 157, 47, 71, 221, 142, 47, 71, 220, 208, 47, 71, 221, - 253, 47, 71, 221, 43, 47, 71, 189, 47, 71, 202, 217, 47, 71, 200, 255, - 47, 71, 205, 63, 47, 71, 202, 41, 47, 71, 199, 247, 47, 71, 198, 188, 47, - 71, 197, 90, 47, 71, 199, 140, 47, 71, 159, 47, 71, 180, 47, 71, 213, - 205, 47, 71, 212, 165, 47, 71, 214, 107, 47, 71, 213, 30, 47, 71, 144, - 47, 71, 229, 126, 47, 71, 228, 128, 47, 71, 229, 213, 47, 71, 228, 247, - 47, 71, 172, 47, 71, 216, 81, 47, 71, 215, 139, 47, 71, 216, 213, 47, 71, - 215, 251, 47, 71, 169, 47, 71, 191, 225, 47, 71, 192, 12, 47, 71, 166, - 47, 71, 206, 252, 47, 71, 206, 63, 47, 71, 207, 108, 47, 71, 206, 157, - 47, 71, 193, 187, 47, 71, 193, 84, 47, 71, 193, 123, 47, 71, 193, 48, 51, - 233, 247, 214, 214, 207, 63, 51, 251, 14, 51, 250, 171, 51, 251, 41, 51, - 252, 111, 51, 223, 102, 51, 223, 69, 51, 196, 76, 51, 233, 216, 51, 234, - 142, 51, 211, 79, 51, 211, 72, 51, 222, 73, 51, 222, 37, 51, 222, 32, 51, - 231, 158, 51, 231, 168, 51, 231, 4, 51, 230, 255, 51, 220, 120, 51, 230, - 246, 51, 221, 107, 51, 221, 106, 51, 221, 105, 51, 221, 104, 51, 230, - 113, 51, 230, 112, 51, 220, 169, 51, 220, 172, 51, 221, 240, 51, 221, 5, - 51, 221, 14, 51, 205, 175, 51, 205, 128, 51, 202, 136, 51, 204, 10, 51, - 204, 9, 51, 237, 237, 51, 237, 36, 51, 236, 97, 51, 198, 76, 51, 214, - 207, 51, 212, 243, 51, 230, 42, 51, 210, 204, 51, 210, 203, 51, 249, 100, - 51, 209, 172, 51, 209, 134, 51, 209, 135, 51, 248, 108, 51, 228, 123, 51, - 228, 117, 51, 247, 173, 51, 228, 101, 51, 229, 174, 51, 209, 232, 51, - 210, 20, 51, 229, 155, 51, 210, 16, 51, 210, 34, 51, 248, 202, 51, 209, - 50, 51, 248, 36, 51, 228, 223, 51, 209, 31, 51, 228, 214, 51, 228, 216, - 51, 217, 89, 51, 217, 85, 51, 217, 94, 51, 217, 25, 51, 217, 56, 51, 216, - 38, 51, 216, 12, 51, 216, 11, 51, 216, 184, 51, 216, 181, 51, 216, 185, - 51, 192, 139, 51, 192, 137, 51, 191, 210, 51, 206, 173, 51, 206, 177, 51, - 206, 30, 51, 206, 23, 51, 207, 52, 51, 207, 49, 51, 193, 139, 154, 199, - 104, 16, 39, 228, 146, 191, 77, 154, 199, 104, 16, 39, 228, 146, 108, - 154, 199, 104, 16, 39, 228, 146, 109, 154, 199, 104, 16, 39, 228, 146, - 139, 154, 199, 104, 16, 39, 228, 146, 137, 154, 199, 104, 16, 39, 228, - 146, 153, 154, 199, 104, 16, 39, 228, 146, 173, 154, 199, 104, 16, 39, - 228, 146, 181, 154, 199, 104, 16, 39, 228, 146, 176, 154, 199, 104, 16, - 39, 228, 146, 184, 154, 199, 104, 16, 39, 228, 146, 199, 90, 154, 199, - 104, 16, 39, 228, 146, 234, 84, 154, 199, 104, 16, 39, 228, 146, 197, 33, - 154, 199, 104, 16, 39, 228, 146, 198, 246, 154, 199, 104, 16, 39, 228, - 146, 232, 84, 154, 199, 104, 16, 39, 228, 146, 232, 234, 154, 199, 104, - 16, 39, 228, 146, 202, 125, 154, 199, 104, 16, 39, 228, 146, 203, 239, - 154, 199, 104, 16, 39, 228, 146, 234, 118, 154, 199, 104, 16, 39, 228, - 146, 213, 158, 154, 199, 104, 16, 39, 228, 146, 197, 28, 154, 199, 104, - 16, 39, 228, 146, 197, 21, 154, 199, 104, 16, 39, 228, 146, 197, 16, 154, - 199, 104, 16, 39, 228, 146, 197, 18, 154, 199, 104, 16, 39, 228, 146, - 197, 23, 51, 228, 137, 51, 237, 241, 51, 250, 113, 51, 164, 51, 210, 255, - 51, 210, 58, 51, 236, 132, 51, 236, 133, 201, 184, 51, 236, 133, 238, - 142, 51, 223, 21, 51, 233, 247, 214, 214, 229, 175, 51, 233, 247, 214, - 214, 200, 62, 51, 233, 247, 214, 214, 199, 207, 51, 233, 247, 214, 214, - 216, 180, 51, 238, 206, 51, 210, 211, 251, 84, 51, 180, 51, 215, 140, 65, - 51, 172, 51, 157, 51, 222, 0, 51, 216, 253, 51, 231, 146, 51, 247, 96, - 51, 221, 255, 51, 209, 222, 51, 214, 58, 51, 215, 140, 233, 134, 51, 215, - 140, 232, 14, 51, 216, 122, 51, 221, 192, 51, 228, 53, 51, 221, 144, 51, - 216, 83, 51, 231, 18, 51, 198, 190, 51, 215, 140, 170, 51, 216, 3, 51, - 236, 142, 51, 221, 71, 51, 232, 137, 51, 213, 68, 51, 215, 140, 218, 147, - 51, 216, 0, 51, 242, 151, 51, 221, 57, 51, 216, 1, 201, 184, 51, 242, - 152, 201, 184, 51, 218, 148, 201, 184, 51, 221, 58, 201, 184, 51, 216, 1, - 238, 142, 51, 242, 152, 238, 142, 51, 218, 148, 238, 142, 51, 221, 58, - 238, 142, 51, 218, 148, 138, 206, 3, 51, 218, 148, 138, 206, 4, 201, 184, - 51, 168, 51, 220, 253, 51, 215, 150, 51, 230, 195, 51, 207, 163, 51, 207, - 164, 138, 206, 3, 51, 207, 164, 138, 206, 4, 201, 184, 51, 208, 171, 51, - 212, 206, 51, 215, 140, 206, 3, 51, 215, 142, 51, 208, 117, 51, 212, 99, - 51, 215, 140, 196, 8, 51, 215, 73, 51, 220, 158, 51, 215, 74, 216, 184, - 51, 208, 116, 51, 212, 98, 51, 215, 140, 193, 221, 51, 215, 67, 51, 220, - 156, 51, 215, 68, 216, 184, 51, 222, 126, 211, 122, 51, 218, 148, 211, - 122, 51, 251, 98, 51, 248, 9, 51, 247, 18, 51, 246, 251, 51, 247, 146, - 138, 221, 192, 51, 242, 51, 51, 237, 155, 51, 230, 96, 51, 144, 51, 228, - 138, 51, 223, 134, 51, 221, 78, 51, 221, 58, 247, 62, 51, 220, 210, 51, - 219, 22, 51, 219, 21, 51, 219, 6, 51, 218, 163, 51, 216, 254, 202, 65, - 51, 216, 37, 51, 215, 216, 51, 209, 220, 51, 209, 68, 51, 208, 242, 51, - 208, 240, 51, 201, 175, 51, 200, 154, 51, 193, 125, 51, 196, 9, 138, 218, - 147, 51, 41, 138, 218, 147, 154, 199, 104, 16, 39, 237, 159, 108, 154, - 199, 104, 16, 39, 237, 159, 109, 154, 199, 104, 16, 39, 237, 159, 139, - 154, 199, 104, 16, 39, 237, 159, 137, 154, 199, 104, 16, 39, 237, 159, - 153, 154, 199, 104, 16, 39, 237, 159, 173, 154, 199, 104, 16, 39, 237, - 159, 181, 154, 199, 104, 16, 39, 237, 159, 176, 154, 199, 104, 16, 39, - 237, 159, 184, 154, 199, 104, 16, 39, 237, 159, 199, 90, 154, 199, 104, - 16, 39, 237, 159, 234, 84, 154, 199, 104, 16, 39, 237, 159, 197, 33, 154, - 199, 104, 16, 39, 237, 159, 198, 246, 154, 199, 104, 16, 39, 237, 159, - 232, 84, 154, 199, 104, 16, 39, 237, 159, 232, 234, 154, 199, 104, 16, - 39, 237, 159, 202, 125, 154, 199, 104, 16, 39, 237, 159, 203, 239, 154, - 199, 104, 16, 39, 237, 159, 234, 118, 154, 199, 104, 16, 39, 237, 159, - 213, 158, 154, 199, 104, 16, 39, 237, 159, 197, 28, 154, 199, 104, 16, - 39, 237, 159, 197, 21, 154, 199, 104, 16, 39, 237, 159, 197, 16, 154, - 199, 104, 16, 39, 237, 159, 197, 18, 154, 199, 104, 16, 39, 237, 159, - 197, 23, 154, 199, 104, 16, 39, 237, 159, 197, 24, 154, 199, 104, 16, 39, - 237, 159, 197, 19, 154, 199, 104, 16, 39, 237, 159, 197, 20, 154, 199, - 104, 16, 39, 237, 159, 197, 27, 154, 199, 104, 16, 39, 237, 159, 197, 22, - 154, 199, 104, 16, 39, 237, 159, 198, 244, 154, 199, 104, 16, 39, 237, - 159, 198, 242, 51, 231, 185, 229, 149, 39, 199, 29, 238, 184, 229, 187, - 229, 149, 39, 199, 29, 207, 95, 234, 163, 229, 149, 39, 236, 225, 250, - 133, 199, 29, 248, 197, 229, 149, 39, 191, 238, 232, 129, 229, 149, 39, - 193, 168, 229, 149, 39, 239, 5, 229, 149, 39, 199, 29, 250, 196, 229, - 149, 39, 228, 230, 198, 82, 229, 149, 39, 2, 199, 189, 229, 149, 39, 197, - 253, 229, 149, 39, 210, 51, 229, 149, 39, 201, 99, 229, 149, 39, 233, 2, - 229, 149, 39, 230, 172, 209, 14, 229, 149, 39, 215, 237, 229, 149, 39, - 234, 32, 229, 149, 39, 232, 130, 229, 149, 39, 193, 21, 211, 94, 199, 29, - 237, 96, 229, 149, 39, 250, 249, 229, 149, 39, 238, 240, 229, 149, 39, - 248, 97, 198, 210, 229, 149, 39, 230, 193, 229, 149, 39, 201, 203, 251, - 13, 229, 149, 39, 207, 17, 229, 149, 39, 223, 96, 229, 149, 39, 230, 172, - 199, 189, 229, 149, 39, 215, 164, 238, 209, 229, 149, 39, 230, 172, 208, - 217, 229, 149, 39, 199, 29, 252, 13, 193, 141, 229, 149, 39, 199, 29, - 242, 179, 232, 202, 229, 149, 39, 223, 110, 229, 149, 39, 235, 20, 229, - 149, 39, 207, 20, 229, 149, 39, 230, 172, 208, 247, 229, 149, 39, 208, - 190, 229, 149, 39, 237, 175, 80, 199, 29, 219, 108, 229, 149, 39, 199, - 29, 233, 40, 229, 149, 39, 211, 51, 229, 149, 39, 211, 154, 229, 149, 39, - 237, 66, 229, 149, 39, 237, 88, 229, 149, 39, 223, 125, 229, 149, 39, - 247, 249, 229, 149, 39, 242, 28, 118, 216, 187, 229, 149, 39, 231, 153, - 198, 82, 229, 149, 39, 208, 128, 196, 63, 229, 149, 39, 211, 50, 229, - 149, 39, 199, 29, 193, 107, 229, 149, 39, 207, 8, 229, 149, 39, 199, 29, - 247, 24, 229, 149, 39, 199, 29, 250, 192, 198, 204, 229, 149, 39, 199, - 29, 221, 241, 201, 65, 215, 168, 229, 149, 39, 237, 31, 229, 149, 39, - 199, 29, 217, 28, 217, 90, 229, 149, 39, 252, 14, 229, 149, 39, 199, 29, - 193, 159, 229, 149, 39, 199, 29, 231, 108, 193, 64, 229, 149, 39, 199, - 29, 222, 157, 220, 19, 229, 149, 39, 236, 174, 229, 149, 39, 219, 95, - 229, 149, 39, 223, 99, 197, 172, 229, 149, 39, 2, 208, 217, 229, 149, 39, - 251, 202, 242, 18, 229, 149, 39, 248, 200, 242, 18, 11, 5, 223, 25, 11, - 5, 223, 17, 11, 5, 70, 11, 5, 223, 52, 11, 5, 223, 195, 11, 5, 223, 178, - 11, 5, 223, 197, 11, 5, 223, 196, 11, 5, 250, 132, 11, 5, 250, 83, 11, 5, - 65, 11, 5, 251, 15, 11, 5, 196, 74, 11, 5, 196, 78, 11, 5, 196, 75, 11, - 5, 211, 20, 11, 5, 210, 237, 11, 5, 74, 11, 5, 211, 67, 11, 5, 233, 180, - 11, 5, 73, 11, 5, 193, 0, 11, 5, 248, 100, 11, 5, 248, 95, 11, 5, 248, - 140, 11, 5, 248, 113, 11, 5, 248, 129, 11, 5, 248, 128, 11, 5, 248, 131, - 11, 5, 248, 130, 11, 5, 249, 14, 11, 5, 249, 6, 11, 5, 249, 103, 11, 5, - 249, 39, 11, 5, 247, 186, 11, 5, 247, 190, 11, 5, 247, 187, 11, 5, 248, - 33, 11, 5, 248, 14, 11, 5, 248, 63, 11, 5, 248, 41, 11, 5, 248, 156, 11, - 5, 248, 223, 11, 5, 248, 169, 11, 5, 247, 169, 11, 5, 247, 163, 11, 5, - 247, 218, 11, 5, 247, 184, 11, 5, 247, 177, 11, 5, 247, 182, 11, 5, 247, - 151, 11, 5, 247, 149, 11, 5, 247, 156, 11, 5, 247, 154, 11, 5, 247, 152, - 11, 5, 247, 153, 11, 5, 209, 109, 11, 5, 209, 105, 11, 5, 209, 176, 11, - 5, 209, 121, 11, 5, 209, 140, 11, 5, 209, 167, 11, 5, 209, 163, 11, 5, - 210, 79, 11, 5, 210, 63, 11, 5, 168, 11, 5, 210, 127, 11, 5, 208, 138, - 11, 5, 208, 140, 11, 5, 208, 139, 11, 5, 209, 7, 11, 5, 208, 245, 11, 5, - 209, 65, 11, 5, 209, 26, 11, 5, 208, 124, 11, 5, 208, 119, 11, 5, 208, - 158, 11, 5, 208, 137, 11, 5, 208, 129, 11, 5, 208, 135, 11, 5, 208, 101, - 11, 5, 208, 100, 11, 5, 208, 105, 11, 5, 208, 104, 11, 5, 208, 102, 11, - 5, 208, 103, 11, 5, 248, 244, 11, 5, 248, 243, 11, 5, 248, 250, 11, 5, - 248, 245, 11, 5, 248, 247, 11, 5, 248, 246, 11, 5, 248, 249, 11, 5, 248, - 248, 11, 5, 249, 0, 11, 5, 248, 255, 11, 5, 249, 3, 11, 5, 249, 1, 11, 5, - 248, 235, 11, 5, 248, 237, 11, 5, 248, 236, 11, 5, 248, 240, 11, 5, 248, - 239, 11, 5, 248, 242, 11, 5, 248, 241, 11, 5, 248, 251, 11, 5, 248, 254, - 11, 5, 248, 252, 11, 5, 248, 231, 11, 5, 248, 230, 11, 5, 248, 238, 11, - 5, 248, 234, 11, 5, 248, 232, 11, 5, 248, 233, 11, 5, 248, 227, 11, 5, - 248, 226, 11, 5, 248, 229, 11, 5, 248, 228, 11, 5, 214, 171, 11, 5, 214, - 170, 11, 5, 214, 176, 11, 5, 214, 172, 11, 5, 214, 173, 11, 5, 214, 175, - 11, 5, 214, 174, 11, 5, 214, 179, 11, 5, 214, 178, 11, 5, 214, 181, 11, - 5, 214, 180, 11, 5, 214, 167, 11, 5, 214, 166, 11, 5, 214, 169, 11, 5, - 214, 168, 11, 5, 214, 160, 11, 5, 214, 159, 11, 5, 214, 164, 11, 5, 214, - 163, 11, 5, 214, 161, 11, 5, 214, 162, 11, 5, 214, 154, 11, 5, 214, 153, - 11, 5, 214, 158, 11, 5, 214, 157, 11, 5, 214, 155, 11, 5, 214, 156, 11, - 5, 229, 35, 11, 5, 229, 34, 11, 5, 229, 40, 11, 5, 229, 36, 11, 5, 229, - 37, 11, 5, 229, 39, 11, 5, 229, 38, 11, 5, 229, 43, 11, 5, 229, 42, 11, - 5, 229, 45, 11, 5, 229, 44, 11, 5, 229, 26, 11, 5, 229, 28, 11, 5, 229, - 27, 11, 5, 229, 31, 11, 5, 229, 30, 11, 5, 229, 33, 11, 5, 229, 32, 11, - 5, 229, 22, 11, 5, 229, 21, 11, 5, 229, 29, 11, 5, 229, 25, 11, 5, 229, - 23, 11, 5, 229, 24, 11, 5, 229, 16, 11, 5, 229, 20, 11, 5, 229, 19, 11, - 5, 229, 17, 11, 5, 229, 18, 11, 5, 216, 6, 11, 5, 216, 5, 11, 5, 216, 81, - 11, 5, 216, 14, 11, 5, 216, 45, 11, 5, 216, 63, 11, 5, 216, 61, 11, 5, - 217, 11, 11, 5, 217, 5, 11, 5, 172, 11, 5, 217, 51, 11, 5, 215, 101, 11, - 5, 215, 100, 11, 5, 215, 104, 11, 5, 215, 102, 11, 5, 215, 179, 11, 5, - 215, 152, 11, 5, 215, 251, 11, 5, 215, 186, 11, 5, 216, 133, 11, 5, 216, - 213, 11, 5, 215, 81, 11, 5, 215, 75, 11, 5, 215, 139, 11, 5, 215, 97, 11, - 5, 215, 90, 11, 5, 215, 95, 11, 5, 215, 51, 11, 5, 215, 50, 11, 5, 215, - 56, 11, 5, 215, 53, 11, 5, 232, 188, 11, 5, 232, 182, 11, 5, 232, 238, - 11, 5, 232, 204, 11, 5, 233, 31, 11, 5, 233, 22, 11, 5, 233, 68, 11, 5, - 233, 36, 11, 5, 232, 81, 11, 5, 232, 135, 11, 5, 232, 115, 11, 5, 232, - 31, 11, 5, 232, 30, 11, 5, 232, 48, 11, 5, 232, 36, 11, 5, 232, 34, 11, - 5, 232, 35, 11, 5, 232, 17, 11, 5, 232, 16, 11, 5, 232, 20, 11, 5, 232, - 18, 11, 5, 195, 29, 11, 5, 195, 23, 11, 5, 195, 66, 11, 5, 195, 38, 11, - 5, 195, 55, 11, 5, 195, 50, 11, 5, 195, 58, 11, 5, 195, 57, 11, 5, 195, - 159, 11, 5, 195, 154, 11, 5, 195, 185, 11, 5, 195, 172, 11, 5, 195, 1, - 11, 5, 194, 253, 11, 5, 195, 21, 11, 5, 195, 3, 11, 5, 195, 70, 11, 5, - 195, 138, 11, 5, 193, 239, 11, 5, 193, 237, 11, 5, 193, 246, 11, 5, 193, - 242, 11, 5, 193, 240, 11, 5, 193, 241, 11, 5, 193, 226, 11, 5, 193, 225, - 11, 5, 193, 232, 11, 5, 193, 231, 11, 5, 193, 229, 11, 5, 193, 230, 11, - 5, 236, 167, 11, 5, 236, 152, 11, 5, 236, 255, 11, 5, 236, 195, 11, 5, - 236, 230, 11, 5, 236, 235, 11, 5, 236, 234, 11, 5, 237, 166, 11, 5, 237, - 160, 11, 5, 237, 241, 11, 5, 237, 186, 11, 5, 235, 25, 11, 5, 235, 26, - 11, 5, 236, 96, 11, 5, 235, 73, 11, 5, 236, 129, 11, 5, 236, 99, 11, 5, - 237, 29, 11, 5, 237, 101, 11, 5, 237, 51, 11, 5, 235, 16, 11, 5, 235, 14, - 11, 5, 235, 45, 11, 5, 235, 24, 11, 5, 235, 19, 11, 5, 235, 22, 11, 5, - 198, 120, 11, 5, 198, 112, 11, 5, 198, 188, 11, 5, 198, 130, 11, 5, 198, - 171, 11, 5, 198, 173, 11, 5, 198, 172, 11, 5, 199, 166, 11, 5, 199, 151, - 11, 5, 199, 247, 11, 5, 199, 178, 11, 5, 197, 65, 11, 5, 197, 64, 11, 5, - 197, 67, 11, 5, 197, 66, 11, 5, 198, 35, 11, 5, 198, 24, 11, 5, 159, 11, - 5, 198, 48, 11, 5, 199, 50, 11, 5, 199, 140, 11, 5, 199, 77, 11, 5, 197, - 48, 11, 5, 197, 43, 11, 5, 197, 90, 11, 5, 197, 63, 11, 5, 197, 49, 11, - 5, 197, 60, 11, 5, 237, 118, 11, 5, 237, 117, 11, 5, 237, 123, 11, 5, - 237, 119, 11, 5, 237, 120, 11, 5, 237, 122, 11, 5, 237, 121, 11, 5, 237, - 139, 11, 5, 237, 138, 11, 5, 237, 146, 11, 5, 237, 140, 11, 5, 237, 108, - 11, 5, 237, 110, 11, 5, 237, 109, 11, 5, 237, 113, 11, 5, 237, 112, 11, - 5, 237, 116, 11, 5, 237, 114, 11, 5, 237, 131, 11, 5, 237, 134, 11, 5, - 237, 132, 11, 5, 237, 104, 11, 5, 237, 103, 11, 5, 237, 111, 11, 5, 237, - 107, 11, 5, 237, 105, 11, 5, 237, 106, 11, 5, 214, 126, 11, 5, 214, 125, - 11, 5, 214, 133, 11, 5, 214, 128, 11, 5, 214, 129, 11, 5, 214, 130, 11, - 5, 214, 142, 11, 5, 214, 141, 11, 5, 214, 148, 11, 5, 214, 143, 11, 5, - 214, 118, 11, 5, 214, 117, 11, 5, 214, 124, 11, 5, 214, 119, 11, 5, 214, - 134, 11, 5, 214, 140, 11, 5, 214, 138, 11, 5, 214, 110, 11, 5, 214, 109, - 11, 5, 214, 115, 11, 5, 214, 113, 11, 5, 214, 111, 11, 5, 214, 112, 11, - 5, 229, 1, 11, 5, 229, 0, 11, 5, 229, 7, 11, 5, 229, 2, 11, 5, 229, 4, - 11, 5, 229, 3, 11, 5, 229, 6, 11, 5, 229, 5, 11, 5, 229, 13, 11, 5, 229, - 11, 11, 5, 229, 15, 11, 5, 229, 14, 11, 5, 228, 250, 11, 5, 228, 251, 11, - 5, 228, 254, 11, 5, 228, 253, 11, 5, 228, 255, 11, 5, 229, 8, 11, 5, 229, - 10, 11, 5, 229, 9, 11, 5, 228, 249, 11, 5, 213, 149, 11, 5, 213, 147, 11, - 5, 213, 205, 11, 5, 213, 152, 11, 5, 213, 179, 11, 5, 213, 193, 11, 5, - 213, 192, 11, 5, 214, 186, 11, 5, 180, 11, 5, 214, 204, 11, 5, 212, 109, - 11, 5, 212, 111, 11, 5, 212, 110, 11, 5, 212, 254, 11, 5, 212, 238, 11, - 5, 213, 30, 11, 5, 213, 9, 11, 5, 214, 60, 11, 5, 214, 107, 11, 5, 214, - 83, 11, 5, 212, 104, 11, 5, 212, 100, 11, 5, 212, 165, 11, 5, 212, 108, - 11, 5, 212, 106, 11, 5, 212, 107, 11, 5, 229, 66, 11, 5, 229, 65, 11, 5, - 229, 71, 11, 5, 229, 67, 11, 5, 229, 68, 11, 5, 229, 70, 11, 5, 229, 69, - 11, 5, 229, 77, 11, 5, 229, 75, 11, 5, 229, 79, 11, 5, 229, 78, 11, 5, - 229, 58, 11, 5, 229, 60, 11, 5, 229, 59, 11, 5, 229, 62, 11, 5, 229, 64, - 11, 5, 229, 63, 11, 5, 229, 72, 11, 5, 229, 74, 11, 5, 229, 73, 11, 5, - 229, 54, 11, 5, 229, 53, 11, 5, 229, 61, 11, 5, 229, 57, 11, 5, 229, 55, - 11, 5, 229, 56, 11, 5, 229, 48, 11, 5, 229, 47, 11, 5, 229, 52, 11, 5, - 229, 51, 11, 5, 229, 49, 11, 5, 229, 50, 11, 5, 219, 63, 11, 5, 219, 55, - 11, 5, 219, 122, 11, 5, 219, 74, 11, 5, 219, 113, 11, 5, 219, 112, 11, 5, - 219, 116, 11, 5, 219, 114, 11, 5, 219, 237, 11, 5, 219, 225, 11, 5, 171, - 11, 5, 219, 248, 11, 5, 218, 180, 11, 5, 218, 179, 11, 5, 218, 182, 11, - 5, 218, 181, 11, 5, 218, 227, 11, 5, 218, 212, 11, 5, 219, 19, 11, 5, - 218, 233, 11, 5, 219, 140, 11, 5, 219, 214, 11, 5, 219, 160, 11, 5, 218, - 174, 11, 5, 218, 172, 11, 5, 218, 203, 11, 5, 218, 178, 11, 5, 218, 176, - 11, 5, 218, 177, 11, 5, 218, 152, 11, 5, 218, 151, 11, 5, 218, 162, 11, - 5, 218, 155, 11, 5, 218, 153, 11, 5, 218, 154, 11, 5, 230, 242, 11, 5, - 230, 241, 11, 5, 231, 16, 11, 5, 230, 254, 11, 5, 231, 8, 11, 5, 231, 7, - 11, 5, 231, 10, 11, 5, 231, 9, 11, 5, 231, 155, 11, 5, 231, 150, 11, 5, - 231, 203, 11, 5, 231, 166, 11, 5, 230, 119, 11, 5, 230, 118, 11, 5, 230, - 121, 11, 5, 230, 120, 11, 5, 230, 198, 11, 5, 230, 196, 11, 5, 230, 223, - 11, 5, 230, 208, 11, 5, 231, 94, 11, 5, 231, 92, 11, 5, 231, 128, 11, 5, - 231, 105, 11, 5, 230, 107, 11, 5, 230, 106, 11, 5, 230, 146, 11, 5, 230, - 117, 11, 5, 230, 108, 11, 5, 230, 116, 11, 5, 221, 96, 11, 5, 221, 91, - 11, 5, 221, 142, 11, 5, 221, 110, 11, 5, 221, 123, 11, 5, 221, 127, 11, - 5, 221, 125, 11, 5, 222, 23, 11, 5, 222, 5, 11, 5, 157, 11, 5, 222, 52, - 11, 5, 220, 178, 11, 5, 220, 183, 11, 5, 220, 180, 11, 5, 221, 4, 11, 5, - 220, 255, 11, 5, 221, 43, 11, 5, 221, 12, 11, 5, 221, 216, 11, 5, 221, - 199, 11, 5, 221, 253, 11, 5, 221, 220, 11, 5, 220, 164, 11, 5, 220, 160, - 11, 5, 220, 208, 11, 5, 220, 177, 11, 5, 220, 168, 11, 5, 220, 173, 11, - 5, 231, 76, 11, 5, 231, 75, 11, 5, 231, 80, 11, 5, 231, 77, 11, 5, 231, - 79, 11, 5, 231, 78, 11, 5, 231, 87, 11, 5, 231, 86, 11, 5, 231, 90, 11, - 5, 231, 88, 11, 5, 231, 67, 11, 5, 231, 66, 11, 5, 231, 69, 11, 5, 231, - 68, 11, 5, 231, 72, 11, 5, 231, 71, 11, 5, 231, 74, 11, 5, 231, 73, 11, - 5, 231, 82, 11, 5, 231, 81, 11, 5, 231, 85, 11, 5, 231, 83, 11, 5, 231, - 62, 11, 5, 231, 61, 11, 5, 231, 70, 11, 5, 231, 65, 11, 5, 231, 63, 11, - 5, 231, 64, 11, 5, 216, 100, 11, 5, 216, 101, 11, 5, 216, 119, 11, 5, - 216, 118, 11, 5, 216, 121, 11, 5, 216, 120, 11, 5, 216, 91, 11, 5, 216, - 93, 11, 5, 216, 92, 11, 5, 216, 96, 11, 5, 216, 95, 11, 5, 216, 98, 11, - 5, 216, 97, 11, 5, 216, 102, 11, 5, 216, 104, 11, 5, 216, 103, 11, 5, - 216, 87, 11, 5, 216, 86, 11, 5, 216, 94, 11, 5, 216, 90, 11, 5, 216, 88, - 11, 5, 216, 89, 11, 5, 228, 73, 11, 5, 228, 72, 11, 5, 228, 79, 11, 5, - 228, 74, 11, 5, 228, 76, 11, 5, 228, 75, 11, 5, 228, 78, 11, 5, 228, 77, - 11, 5, 228, 84, 11, 5, 228, 83, 11, 5, 228, 86, 11, 5, 228, 85, 11, 5, - 228, 65, 11, 5, 228, 64, 11, 5, 228, 67, 11, 5, 228, 66, 11, 5, 228, 69, - 11, 5, 228, 68, 11, 5, 228, 71, 11, 5, 228, 70, 11, 5, 228, 80, 11, 5, - 228, 82, 11, 5, 228, 81, 11, 5, 213, 255, 11, 5, 214, 1, 11, 5, 214, 0, - 11, 5, 214, 44, 11, 5, 214, 42, 11, 5, 214, 54, 11, 5, 214, 47, 11, 5, - 213, 216, 11, 5, 213, 215, 11, 5, 213, 217, 11, 5, 213, 227, 11, 5, 213, - 224, 11, 5, 213, 235, 11, 5, 213, 229, 11, 5, 214, 35, 11, 5, 214, 41, - 11, 5, 214, 37, 11, 5, 229, 85, 11, 5, 229, 104, 11, 5, 229, 113, 11, 5, - 229, 232, 11, 5, 229, 221, 11, 5, 144, 11, 5, 229, 244, 11, 5, 228, 103, - 11, 5, 228, 102, 11, 5, 228, 105, 11, 5, 228, 104, 11, 5, 228, 149, 11, - 5, 228, 140, 11, 5, 228, 247, 11, 5, 228, 212, 11, 5, 229, 151, 11, 5, - 229, 213, 11, 5, 229, 163, 11, 5, 193, 144, 11, 5, 193, 129, 11, 5, 193, - 187, 11, 5, 193, 156, 11, 5, 192, 245, 11, 5, 192, 247, 11, 5, 192, 246, - 11, 5, 193, 13, 11, 5, 193, 48, 11, 5, 193, 24, 11, 5, 193, 97, 11, 5, - 193, 123, 11, 5, 193, 104, 11, 5, 191, 15, 11, 5, 191, 14, 11, 5, 191, - 30, 11, 5, 191, 18, 11, 5, 191, 23, 11, 5, 191, 25, 11, 5, 191, 24, 11, - 5, 191, 96, 11, 5, 191, 93, 11, 5, 191, 123, 11, 5, 191, 104, 11, 5, 190, - 244, 11, 5, 190, 246, 11, 5, 190, 245, 11, 5, 191, 2, 11, 5, 191, 1, 11, - 5, 191, 7, 11, 5, 191, 3, 11, 5, 191, 73, 11, 5, 191, 87, 11, 5, 191, 79, - 11, 5, 190, 240, 11, 5, 190, 239, 11, 5, 190, 251, 11, 5, 190, 243, 11, - 5, 190, 241, 11, 5, 190, 242, 11, 5, 190, 226, 11, 5, 190, 225, 11, 5, - 190, 231, 11, 5, 190, 229, 11, 5, 190, 227, 11, 5, 190, 228, 11, 5, 242, - 207, 11, 5, 242, 200, 11, 5, 242, 237, 11, 5, 242, 220, 11, 5, 242, 234, - 11, 5, 242, 228, 11, 5, 242, 236, 11, 5, 242, 235, 11, 5, 247, 30, 11, 5, - 247, 21, 11, 5, 247, 112, 11, 5, 247, 63, 11, 5, 238, 136, 11, 5, 238, - 138, 11, 5, 238, 137, 11, 5, 238, 202, 11, 5, 238, 190, 11, 5, 242, 51, - 11, 5, 238, 222, 11, 5, 246, 213, 11, 5, 246, 250, 11, 5, 246, 219, 11, - 5, 238, 107, 11, 5, 238, 105, 11, 5, 238, 148, 11, 5, 238, 134, 11, 5, - 238, 113, 11, 5, 238, 129, 11, 5, 238, 83, 11, 5, 238, 82, 11, 5, 238, - 96, 11, 5, 238, 90, 11, 5, 238, 84, 11, 5, 238, 86, 11, 5, 190, 209, 11, - 5, 190, 208, 11, 5, 190, 215, 11, 5, 190, 210, 11, 5, 190, 212, 11, 5, - 190, 211, 11, 5, 190, 214, 11, 5, 190, 213, 11, 5, 190, 221, 11, 5, 190, - 220, 11, 5, 190, 224, 11, 5, 190, 222, 11, 5, 190, 205, 11, 5, 190, 207, - 11, 5, 190, 206, 11, 5, 190, 216, 11, 5, 190, 219, 11, 5, 190, 217, 11, - 5, 190, 198, 11, 5, 190, 202, 11, 5, 190, 201, 11, 5, 190, 199, 11, 5, - 190, 200, 11, 5, 190, 192, 11, 5, 190, 191, 11, 5, 190, 197, 11, 5, 190, - 195, 11, 5, 190, 193, 11, 5, 190, 194, 11, 5, 212, 20, 11, 5, 212, 19, - 11, 5, 212, 25, 11, 5, 212, 21, 11, 5, 212, 22, 11, 5, 212, 24, 11, 5, - 212, 23, 11, 5, 212, 30, 11, 5, 212, 29, 11, 5, 212, 33, 11, 5, 212, 32, - 11, 5, 212, 13, 11, 5, 212, 14, 11, 5, 212, 17, 11, 5, 212, 18, 11, 5, - 212, 26, 11, 5, 212, 28, 11, 5, 212, 8, 11, 5, 212, 16, 11, 5, 212, 12, - 11, 5, 212, 9, 11, 5, 212, 10, 11, 5, 212, 3, 11, 5, 212, 2, 11, 5, 212, - 7, 11, 5, 212, 6, 11, 5, 212, 4, 11, 5, 212, 5, 11, 5, 202, 133, 11, 5, - 173, 11, 5, 202, 217, 11, 5, 202, 137, 11, 5, 202, 197, 11, 5, 202, 200, - 11, 5, 202, 198, 11, 5, 205, 117, 11, 5, 205, 101, 11, 5, 189, 11, 5, - 205, 125, 11, 5, 200, 183, 11, 5, 200, 185, 11, 5, 200, 184, 11, 5, 202, - 3, 11, 5, 201, 248, 11, 5, 202, 41, 11, 5, 202, 9, 11, 5, 203, 233, 11, - 5, 205, 63, 11, 5, 204, 8, 11, 5, 200, 158, 11, 5, 200, 155, 11, 5, 200, - 255, 11, 5, 200, 182, 11, 5, 200, 162, 11, 5, 200, 170, 11, 5, 200, 53, - 11, 5, 200, 52, 11, 5, 200, 123, 11, 5, 200, 61, 11, 5, 200, 55, 11, 5, - 200, 60, 11, 5, 201, 131, 11, 5, 201, 130, 11, 5, 201, 137, 11, 5, 201, - 132, 11, 5, 201, 134, 11, 5, 201, 136, 11, 5, 201, 135, 11, 5, 201, 146, - 11, 5, 201, 144, 11, 5, 201, 170, 11, 5, 201, 147, 11, 5, 201, 126, 11, - 5, 201, 125, 11, 5, 201, 129, 11, 5, 201, 127, 11, 5, 201, 140, 11, 5, - 201, 143, 11, 5, 201, 141, 11, 5, 201, 122, 11, 5, 201, 120, 11, 5, 201, - 124, 11, 5, 201, 123, 11, 5, 201, 115, 11, 5, 201, 114, 11, 5, 201, 119, - 11, 5, 201, 118, 11, 5, 201, 116, 11, 5, 201, 117, 11, 5, 191, 66, 11, 5, - 191, 65, 11, 5, 191, 71, 11, 5, 191, 68, 11, 5, 191, 45, 11, 5, 191, 47, - 11, 5, 191, 46, 11, 5, 191, 50, 11, 5, 191, 49, 11, 5, 191, 54, 11, 5, - 191, 51, 11, 5, 191, 59, 11, 5, 191, 58, 11, 5, 191, 62, 11, 5, 191, 60, - 11, 5, 191, 41, 11, 5, 191, 40, 11, 5, 191, 48, 11, 5, 191, 44, 11, 5, - 191, 42, 11, 5, 191, 43, 11, 5, 191, 33, 11, 5, 191, 32, 11, 5, 191, 37, - 11, 5, 191, 36, 11, 5, 191, 34, 11, 5, 191, 35, 11, 5, 243, 85, 11, 5, - 243, 81, 11, 5, 246, 209, 11, 5, 246, 195, 11, 5, 242, 252, 11, 5, 242, - 251, 11, 5, 242, 254, 11, 5, 242, 253, 11, 5, 243, 11, 11, 5, 243, 10, - 11, 5, 243, 20, 11, 5, 243, 15, 11, 5, 243, 54, 11, 5, 243, 51, 11, 5, - 243, 79, 11, 5, 243, 62, 11, 5, 242, 246, 11, 5, 243, 0, 11, 5, 242, 250, - 11, 5, 242, 247, 11, 5, 242, 249, 11, 5, 242, 239, 11, 5, 242, 238, 11, - 5, 242, 243, 11, 5, 242, 242, 11, 5, 242, 240, 11, 5, 242, 241, 11, 5, - 206, 100, 11, 5, 206, 104, 11, 5, 206, 82, 11, 5, 206, 83, 11, 5, 206, - 87, 11, 5, 206, 86, 11, 5, 206, 90, 11, 5, 206, 88, 11, 5, 206, 94, 11, - 5, 206, 93, 11, 5, 206, 99, 11, 5, 206, 95, 11, 5, 206, 78, 11, 5, 206, - 76, 11, 5, 206, 84, 11, 5, 206, 81, 11, 5, 206, 79, 11, 5, 206, 80, 11, - 5, 206, 71, 11, 5, 206, 70, 11, 5, 206, 75, 11, 5, 206, 74, 11, 5, 206, - 72, 11, 5, 206, 73, 11, 5, 212, 229, 11, 5, 212, 228, 11, 5, 212, 231, - 11, 5, 212, 230, 11, 5, 212, 220, 11, 5, 212, 222, 11, 5, 212, 221, 11, - 5, 212, 224, 11, 5, 212, 223, 11, 5, 212, 227, 11, 5, 212, 226, 11, 5, - 212, 214, 11, 5, 212, 213, 11, 5, 212, 219, 11, 5, 212, 217, 11, 5, 212, - 215, 11, 5, 212, 216, 11, 5, 212, 208, 11, 5, 212, 207, 11, 5, 212, 212, - 11, 5, 212, 211, 11, 5, 212, 209, 11, 5, 212, 210, 11, 5, 203, 118, 11, - 5, 203, 113, 11, 5, 203, 160, 11, 5, 203, 131, 11, 5, 202, 244, 11, 5, - 202, 246, 11, 5, 202, 245, 11, 5, 203, 19, 11, 5, 203, 14, 11, 5, 203, - 51, 11, 5, 203, 39, 11, 5, 203, 86, 11, 5, 203, 79, 11, 5, 203, 108, 11, - 5, 203, 95, 11, 5, 202, 240, 11, 5, 202, 237, 11, 5, 203, 0, 11, 5, 202, - 243, 11, 5, 202, 241, 11, 5, 202, 242, 11, 5, 202, 220, 11, 5, 202, 219, - 11, 5, 202, 226, 11, 5, 202, 223, 11, 5, 202, 221, 11, 5, 202, 222, 11, - 5, 207, 125, 11, 5, 207, 118, 11, 5, 166, 11, 5, 207, 131, 11, 5, 206, - 33, 11, 5, 206, 35, 11, 5, 206, 34, 11, 5, 206, 118, 11, 5, 206, 106, 11, - 5, 206, 157, 11, 5, 206, 122, 11, 5, 207, 6, 11, 5, 207, 108, 11, 5, 207, - 48, 11, 5, 206, 25, 11, 5, 206, 22, 11, 5, 206, 63, 11, 5, 206, 32, 11, - 5, 206, 28, 11, 5, 206, 29, 11, 5, 206, 7, 11, 5, 206, 6, 11, 5, 206, 12, - 11, 5, 206, 10, 11, 5, 206, 8, 11, 5, 206, 9, 11, 5, 222, 205, 11, 5, - 222, 204, 11, 5, 222, 217, 11, 5, 222, 206, 11, 5, 222, 213, 11, 5, 222, - 212, 11, 5, 222, 215, 11, 5, 222, 214, 11, 5, 222, 143, 11, 5, 222, 142, - 11, 5, 222, 145, 11, 5, 222, 144, 11, 5, 222, 161, 11, 5, 222, 159, 11, - 5, 222, 174, 11, 5, 222, 163, 11, 5, 222, 136, 11, 5, 222, 134, 11, 5, - 222, 155, 11, 5, 222, 141, 11, 5, 222, 138, 11, 5, 222, 139, 11, 5, 222, - 128, 11, 5, 222, 127, 11, 5, 222, 132, 11, 5, 222, 131, 11, 5, 222, 129, - 11, 5, 222, 130, 11, 5, 208, 43, 11, 5, 208, 41, 11, 5, 208, 51, 11, 5, - 208, 44, 11, 5, 208, 48, 11, 5, 208, 47, 11, 5, 208, 50, 11, 5, 208, 49, - 11, 5, 207, 248, 11, 5, 207, 245, 11, 5, 207, 250, 11, 5, 207, 249, 11, - 5, 208, 30, 11, 5, 208, 29, 11, 5, 208, 39, 11, 5, 208, 33, 11, 5, 207, - 240, 11, 5, 207, 236, 11, 5, 208, 27, 11, 5, 207, 244, 11, 5, 207, 242, - 11, 5, 207, 243, 11, 5, 207, 220, 11, 5, 207, 218, 11, 5, 207, 230, 11, - 5, 207, 223, 11, 5, 207, 221, 11, 5, 207, 222, 11, 5, 222, 194, 11, 5, - 222, 193, 11, 5, 222, 200, 11, 5, 222, 195, 11, 5, 222, 197, 11, 5, 222, - 196, 11, 5, 222, 199, 11, 5, 222, 198, 11, 5, 222, 185, 11, 5, 222, 187, - 11, 5, 222, 186, 11, 5, 222, 190, 11, 5, 222, 189, 11, 5, 222, 192, 11, - 5, 222, 191, 11, 5, 222, 181, 11, 5, 222, 180, 11, 5, 222, 188, 11, 5, - 222, 184, 11, 5, 222, 182, 11, 5, 222, 183, 11, 5, 222, 177, 11, 5, 222, - 176, 11, 5, 222, 179, 11, 5, 222, 178, 11, 5, 213, 121, 11, 5, 213, 120, - 11, 5, 213, 128, 11, 5, 213, 122, 11, 5, 213, 124, 11, 5, 213, 123, 11, - 5, 213, 127, 11, 5, 213, 125, 11, 5, 213, 110, 11, 5, 213, 111, 11, 5, - 213, 116, 11, 5, 213, 115, 11, 5, 213, 119, 11, 5, 213, 117, 11, 5, 213, - 105, 11, 5, 213, 114, 11, 5, 213, 109, 11, 5, 213, 106, 11, 5, 213, 107, - 11, 5, 213, 100, 11, 5, 213, 99, 11, 5, 213, 104, 11, 5, 213, 103, 11, 5, - 213, 101, 11, 5, 213, 102, 11, 5, 212, 55, 11, 5, 212, 54, 11, 5, 212, - 68, 11, 5, 212, 59, 11, 5, 212, 64, 11, 5, 212, 63, 11, 5, 212, 66, 11, - 5, 212, 65, 11, 5, 212, 40, 11, 5, 212, 42, 11, 5, 212, 41, 11, 5, 212, - 47, 11, 5, 212, 46, 11, 5, 212, 52, 11, 5, 212, 48, 11, 5, 212, 38, 11, - 5, 212, 36, 11, 5, 212, 45, 11, 5, 212, 39, 11, 5, 192, 198, 11, 5, 192, - 197, 11, 5, 192, 207, 11, 5, 192, 200, 11, 5, 192, 202, 11, 5, 192, 201, - 11, 5, 192, 204, 11, 5, 192, 203, 11, 5, 192, 186, 11, 5, 192, 187, 11, - 5, 192, 191, 11, 5, 192, 190, 11, 5, 192, 196, 11, 5, 192, 194, 11, 5, - 192, 163, 11, 5, 192, 161, 11, 5, 192, 176, 11, 5, 192, 166, 11, 5, 192, - 164, 11, 5, 192, 165, 11, 5, 192, 18, 11, 5, 192, 16, 11, 5, 192, 33, 11, - 5, 192, 19, 11, 5, 192, 27, 11, 5, 192, 26, 11, 5, 192, 30, 11, 5, 192, - 28, 11, 5, 191, 198, 11, 5, 191, 197, 11, 5, 191, 201, 11, 5, 191, 199, - 11, 5, 191, 240, 11, 5, 191, 235, 11, 5, 192, 12, 11, 5, 191, 245, 11, 5, - 191, 189, 11, 5, 191, 185, 11, 5, 191, 225, 11, 5, 191, 196, 11, 5, 191, - 192, 11, 5, 191, 193, 11, 5, 191, 169, 11, 5, 191, 168, 11, 5, 191, 176, - 11, 5, 191, 172, 11, 5, 191, 170, 11, 5, 191, 171, 11, 48, 208, 30, 11, - 48, 219, 122, 11, 48, 221, 96, 11, 48, 212, 59, 11, 48, 238, 90, 11, 48, - 201, 137, 11, 48, 231, 73, 11, 48, 231, 105, 11, 48, 216, 81, 11, 48, - 228, 73, 11, 48, 218, 154, 11, 48, 248, 231, 11, 48, 215, 186, 11, 48, - 192, 12, 11, 48, 208, 124, 11, 48, 228, 67, 11, 48, 199, 166, 11, 48, - 231, 203, 11, 48, 190, 243, 11, 48, 238, 83, 11, 48, 237, 106, 11, 48, - 247, 182, 11, 48, 231, 69, 11, 48, 212, 48, 11, 48, 197, 90, 11, 48, 211, - 67, 11, 48, 222, 181, 11, 48, 191, 2, 11, 48, 208, 101, 11, 48, 229, 33, - 11, 48, 192, 18, 11, 48, 193, 241, 11, 48, 202, 226, 11, 48, 195, 138, - 11, 48, 191, 123, 11, 48, 222, 174, 11, 48, 212, 12, 11, 48, 222, 179, - 11, 48, 230, 198, 11, 48, 222, 199, 11, 48, 193, 48, 11, 48, 235, 45, 11, - 48, 202, 242, 11, 48, 219, 116, 11, 48, 238, 96, 11, 48, 238, 137, 11, - 48, 242, 220, 11, 48, 228, 70, 11, 48, 203, 118, 11, 48, 190, 242, 11, - 48, 203, 39, 11, 48, 243, 79, 11, 48, 190, 212, 11, 48, 214, 175, 11, 48, - 221, 253, 219, 64, 1, 249, 103, 219, 64, 1, 168, 219, 64, 1, 209, 219, - 219, 64, 1, 237, 241, 219, 64, 1, 199, 247, 219, 64, 1, 199, 44, 219, 64, - 1, 231, 203, 219, 64, 1, 157, 219, 64, 1, 221, 190, 219, 64, 1, 223, 4, - 219, 64, 1, 247, 112, 219, 64, 1, 246, 209, 219, 64, 1, 234, 247, 219, - 64, 1, 197, 164, 219, 64, 1, 197, 153, 219, 64, 1, 172, 219, 64, 1, 180, - 219, 64, 1, 171, 219, 64, 1, 189, 219, 64, 1, 191, 71, 219, 64, 1, 191, - 123, 219, 64, 1, 214, 54, 219, 64, 1, 144, 219, 64, 1, 192, 220, 219, 64, - 1, 229, 145, 219, 64, 1, 233, 68, 219, 64, 1, 193, 187, 219, 64, 1, 203, - 160, 219, 64, 1, 169, 219, 64, 1, 231, 54, 219, 64, 1, 65, 219, 64, 1, - 251, 229, 219, 64, 1, 73, 219, 64, 1, 233, 201, 219, 64, 1, 70, 219, 64, - 1, 74, 219, 64, 1, 69, 219, 64, 1, 196, 148, 219, 64, 1, 196, 137, 219, - 64, 1, 211, 139, 219, 64, 1, 163, 215, 55, 198, 188, 219, 64, 1, 163, - 214, 249, 209, 65, 219, 64, 1, 163, 215, 55, 238, 95, 219, 64, 1, 163, - 215, 55, 248, 63, 219, 64, 1, 163, 215, 55, 180, 219, 64, 1, 163, 215, - 55, 222, 226, 219, 64, 208, 145, 242, 26, 219, 64, 208, 145, 232, 42, - 201, 58, 58, 5, 234, 145, 58, 5, 234, 141, 58, 5, 229, 183, 58, 5, 193, - 112, 58, 5, 193, 111, 58, 5, 210, 40, 58, 5, 248, 147, 58, 5, 248, 207, - 58, 5, 216, 240, 58, 5, 220, 248, 58, 5, 216, 113, 58, 5, 231, 141, 58, - 5, 233, 11, 58, 5, 195, 145, 58, 5, 199, 116, 58, 5, 199, 26, 58, 5, 237, - 13, 58, 5, 237, 10, 58, 5, 219, 204, 58, 5, 207, 79, 58, 5, 237, 86, 58, - 5, 214, 139, 58, 5, 205, 45, 58, 5, 203, 106, 58, 5, 191, 84, 58, 5, 191, - 61, 58, 5, 246, 242, 58, 5, 222, 236, 58, 5, 213, 135, 58, 5, 192, 77, - 58, 5, 221, 244, 58, 5, 214, 27, 58, 5, 231, 120, 58, 5, 216, 192, 58, 5, - 214, 96, 58, 5, 212, 76, 58, 5, 70, 58, 5, 223, 134, 58, 5, 229, 126, 58, - 5, 229, 96, 58, 5, 193, 84, 58, 5, 193, 66, 58, 5, 209, 176, 58, 5, 248, - 145, 58, 5, 248, 140, 58, 5, 216, 233, 58, 5, 220, 245, 58, 5, 216, 110, - 58, 5, 231, 137, 58, 5, 232, 238, 58, 5, 195, 66, 58, 5, 198, 188, 58, 5, - 199, 6, 58, 5, 237, 5, 58, 5, 237, 9, 58, 5, 219, 122, 58, 5, 206, 252, - 58, 5, 236, 255, 58, 5, 214, 133, 58, 5, 202, 217, 58, 5, 203, 76, 58, 5, - 191, 30, 58, 5, 191, 57, 58, 5, 242, 237, 58, 5, 222, 217, 58, 5, 213, - 128, 58, 5, 192, 33, 58, 5, 221, 142, 58, 5, 214, 19, 58, 5, 231, 16, 58, - 5, 216, 81, 58, 5, 213, 205, 58, 5, 212, 68, 58, 5, 65, 58, 5, 251, 81, - 58, 5, 214, 49, 58, 5, 144, 58, 5, 230, 23, 58, 5, 193, 187, 58, 5, 193, - 162, 58, 5, 168, 58, 5, 248, 153, 58, 5, 249, 103, 58, 5, 216, 248, 58, - 5, 220, 253, 58, 5, 220, 251, 58, 5, 216, 117, 58, 5, 231, 145, 58, 5, - 233, 68, 58, 5, 195, 185, 58, 5, 199, 247, 58, 5, 199, 44, 58, 5, 237, - 23, 58, 5, 237, 12, 58, 5, 171, 58, 5, 166, 58, 5, 237, 241, 58, 5, 214, - 148, 58, 5, 189, 58, 5, 203, 160, 58, 5, 191, 123, 58, 5, 191, 71, 58, 5, - 247, 112, 58, 5, 223, 4, 58, 5, 213, 144, 58, 5, 169, 58, 5, 157, 58, 5, - 222, 61, 58, 5, 214, 33, 58, 5, 231, 203, 58, 5, 172, 58, 5, 180, 58, 5, - 212, 88, 58, 5, 211, 76, 58, 5, 211, 71, 58, 5, 228, 220, 58, 5, 193, 29, - 58, 5, 193, 25, 58, 5, 209, 30, 58, 5, 248, 143, 58, 5, 248, 49, 58, 5, - 216, 228, 58, 5, 220, 243, 58, 5, 216, 106, 58, 5, 231, 133, 58, 5, 232, - 123, 58, 5, 195, 5, 58, 5, 198, 54, 58, 5, 198, 230, 58, 5, 237, 2, 58, - 5, 237, 7, 58, 5, 218, 240, 58, 5, 206, 129, 58, 5, 236, 102, 58, 5, 214, - 120, 58, 5, 202, 11, 58, 5, 203, 43, 58, 5, 191, 4, 58, 5, 191, 52, 58, - 5, 238, 227, 58, 5, 222, 164, 58, 5, 213, 118, 58, 5, 191, 246, 58, 5, - 221, 17, 58, 5, 214, 17, 58, 5, 230, 210, 58, 5, 215, 194, 58, 5, 213, - 13, 58, 5, 212, 49, 58, 5, 69, 58, 5, 196, 109, 58, 5, 228, 128, 58, 5, - 228, 111, 58, 5, 193, 0, 58, 5, 192, 249, 58, 5, 208, 158, 58, 5, 248, - 142, 58, 5, 247, 218, 58, 5, 216, 227, 58, 5, 220, 241, 58, 5, 216, 105, - 58, 5, 231, 132, 58, 5, 232, 48, 58, 5, 193, 246, 58, 5, 197, 90, 58, 5, - 198, 208, 58, 5, 237, 0, 58, 5, 237, 6, 58, 5, 218, 203, 58, 5, 206, 63, - 58, 5, 235, 45, 58, 5, 214, 115, 58, 5, 200, 255, 58, 5, 203, 0, 58, 5, - 190, 251, 58, 5, 191, 48, 58, 5, 238, 148, 58, 5, 222, 155, 58, 5, 213, - 114, 58, 5, 191, 225, 58, 5, 220, 208, 58, 5, 214, 16, 58, 5, 230, 146, - 58, 5, 215, 139, 58, 5, 212, 165, 58, 5, 212, 45, 58, 5, 74, 58, 5, 211, - 93, 58, 5, 213, 231, 58, 5, 228, 247, 58, 5, 228, 223, 58, 5, 193, 48, - 58, 5, 193, 30, 58, 5, 209, 65, 58, 5, 248, 144, 58, 5, 248, 63, 58, 5, - 216, 229, 58, 5, 220, 244, 58, 5, 216, 108, 58, 5, 231, 135, 58, 5, 231, - 134, 58, 5, 232, 135, 58, 5, 195, 21, 58, 5, 159, 58, 5, 198, 236, 58, 5, - 237, 3, 58, 5, 237, 8, 58, 5, 219, 19, 58, 5, 206, 157, 58, 5, 236, 129, - 58, 5, 214, 124, 58, 5, 202, 41, 58, 5, 203, 51, 58, 5, 191, 7, 58, 5, - 191, 54, 58, 5, 242, 51, 58, 5, 222, 174, 58, 5, 213, 119, 58, 5, 192, - 12, 58, 5, 221, 43, 58, 5, 214, 18, 58, 5, 230, 223, 58, 5, 215, 251, 58, - 5, 213, 30, 58, 5, 212, 52, 58, 5, 73, 58, 5, 234, 61, 58, 5, 214, 38, - 58, 5, 229, 213, 58, 5, 229, 166, 58, 5, 193, 123, 58, 5, 193, 106, 58, - 5, 210, 53, 58, 5, 248, 148, 58, 5, 248, 223, 58, 5, 216, 241, 58, 5, - 220, 249, 58, 5, 220, 247, 58, 5, 216, 114, 58, 5, 231, 142, 58, 5, 231, - 140, 58, 5, 233, 18, 58, 5, 195, 150, 58, 5, 199, 140, 58, 5, 199, 28, - 58, 5, 237, 14, 58, 5, 237, 11, 58, 5, 219, 214, 58, 5, 207, 108, 58, 5, - 237, 101, 58, 5, 214, 140, 58, 5, 205, 63, 58, 5, 203, 108, 58, 5, 191, - 87, 58, 5, 191, 62, 58, 5, 246, 250, 58, 5, 222, 238, 58, 5, 213, 137, - 58, 5, 192, 80, 58, 5, 221, 253, 58, 5, 214, 28, 58, 5, 214, 24, 58, 5, - 231, 128, 58, 5, 231, 114, 58, 5, 216, 213, 58, 5, 214, 107, 58, 5, 212, - 77, 58, 5, 214, 56, 58, 5, 219, 166, 58, 242, 26, 58, 232, 42, 201, 58, - 58, 208, 8, 77, 58, 5, 214, 123, 233, 68, 58, 5, 214, 123, 157, 58, 5, - 214, 123, 202, 11, 58, 16, 233, 7, 58, 16, 221, 242, 58, 16, 198, 135, - 58, 16, 213, 172, 58, 16, 249, 45, 58, 16, 233, 67, 58, 16, 199, 240, 58, - 16, 237, 191, 58, 16, 236, 101, 58, 16, 220, 184, 58, 16, 198, 58, 58, - 16, 236, 128, 58, 16, 222, 165, 58, 17, 191, 77, 58, 17, 108, 58, 17, - 109, 58, 17, 139, 58, 17, 137, 58, 17, 153, 58, 17, 173, 58, 17, 181, 58, - 17, 176, 58, 17, 184, 58, 5, 214, 123, 172, 58, 5, 214, 123, 236, 129, - 42, 6, 1, 191, 81, 42, 2, 1, 191, 81, 42, 6, 1, 234, 242, 42, 2, 1, 234, - 242, 42, 6, 1, 207, 13, 234, 244, 42, 2, 1, 207, 13, 234, 244, 42, 6, 1, - 223, 55, 42, 2, 1, 223, 55, 42, 6, 1, 236, 146, 42, 2, 1, 236, 146, 42, - 6, 1, 215, 202, 196, 124, 42, 2, 1, 215, 202, 196, 124, 42, 6, 1, 247, - 232, 211, 99, 42, 2, 1, 247, 232, 211, 99, 42, 6, 1, 214, 68, 192, 62, - 42, 2, 1, 214, 68, 192, 62, 42, 6, 1, 192, 59, 4, 249, 97, 192, 62, 42, - 2, 1, 192, 59, 4, 249, 97, 192, 62, 42, 6, 1, 223, 53, 192, 95, 42, 2, 1, - 223, 53, 192, 95, 42, 6, 1, 207, 13, 191, 225, 42, 2, 1, 207, 13, 191, - 225, 42, 6, 1, 223, 53, 65, 42, 2, 1, 223, 53, 65, 42, 6, 1, 242, 171, - 219, 59, 191, 190, 42, 2, 1, 242, 171, 219, 59, 191, 190, 42, 6, 1, 248, - 83, 191, 190, 42, 2, 1, 248, 83, 191, 190, 42, 6, 1, 223, 53, 242, 171, - 219, 59, 191, 190, 42, 2, 1, 223, 53, 242, 171, 219, 59, 191, 190, 42, 6, - 1, 192, 14, 42, 2, 1, 192, 14, 42, 6, 1, 207, 13, 197, 157, 42, 2, 1, - 207, 13, 197, 157, 42, 6, 1, 202, 27, 237, 101, 42, 2, 1, 202, 27, 237, - 101, 42, 6, 1, 202, 27, 234, 97, 42, 2, 1, 202, 27, 234, 97, 42, 6, 1, - 202, 27, 234, 72, 42, 2, 1, 202, 27, 234, 72, 42, 6, 1, 215, 206, 74, 42, - 2, 1, 215, 206, 74, 42, 6, 1, 248, 116, 74, 42, 2, 1, 248, 116, 74, 42, - 6, 1, 54, 215, 206, 74, 42, 2, 1, 54, 215, 206, 74, 42, 1, 215, 115, 74, - 33, 42, 193, 223, 33, 42, 199, 91, 216, 30, 57, 33, 42, 228, 110, 216, - 30, 57, 33, 42, 198, 225, 216, 30, 57, 202, 90, 250, 143, 33, 42, 1, 196, - 121, 223, 197, 33, 42, 1, 70, 33, 42, 1, 192, 33, 33, 42, 1, 69, 33, 42, - 1, 229, 240, 57, 33, 42, 1, 192, 58, 33, 42, 1, 202, 27, 57, 33, 42, 1, - 211, 99, 33, 42, 222, 9, 33, 42, 210, 60, 42, 222, 9, 42, 210, 60, 42, 6, - 1, 235, 1, 42, 2, 1, 235, 1, 42, 6, 1, 234, 233, 42, 2, 1, 234, 233, 42, - 6, 1, 191, 38, 42, 2, 1, 191, 38, 42, 6, 1, 247, 10, 42, 2, 1, 247, 10, - 42, 6, 1, 234, 229, 42, 2, 1, 234, 229, 42, 6, 1, 199, 141, 4, 82, 106, - 42, 2, 1, 199, 141, 4, 82, 106, 42, 6, 1, 197, 37, 42, 2, 1, 197, 37, 42, - 6, 1, 197, 132, 42, 2, 1, 197, 132, 42, 6, 1, 197, 137, 42, 2, 1, 197, - 137, 42, 6, 1, 199, 146, 42, 2, 1, 199, 146, 42, 6, 1, 228, 91, 42, 2, 1, - 228, 91, 42, 6, 1, 202, 232, 42, 2, 1, 202, 232, 42, 6, 1, 54, 74, 42, 2, - 1, 54, 74, 42, 6, 1, 238, 167, 74, 42, 2, 1, 238, 167, 74, 59, 1, 42, - 229, 240, 57, 59, 1, 42, 202, 27, 57, 33, 42, 1, 234, 138, 33, 42, 1, - 223, 53, 73, 26, 1, 65, 26, 1, 157, 26, 1, 69, 26, 1, 220, 208, 26, 1, - 234, 145, 26, 1, 207, 79, 26, 1, 199, 221, 26, 1, 74, 26, 1, 212, 68, 26, - 1, 70, 26, 1, 171, 26, 1, 168, 26, 1, 206, 190, 26, 1, 206, 237, 26, 1, - 219, 203, 26, 1, 216, 191, 26, 1, 199, 240, 26, 1, 214, 146, 26, 1, 213, - 142, 26, 1, 218, 147, 26, 1, 200, 156, 26, 1, 215, 139, 26, 1, 203, 71, - 26, 1, 202, 217, 26, 1, 203, 81, 26, 1, 203, 243, 26, 1, 220, 125, 26, 1, - 221, 216, 26, 1, 212, 133, 26, 1, 212, 165, 26, 1, 213, 113, 26, 1, 191, - 243, 26, 1, 203, 0, 26, 1, 191, 194, 26, 1, 169, 26, 1, 212, 202, 26, 1, - 221, 202, 26, 1, 209, 223, 26, 1, 213, 135, 26, 1, 212, 182, 26, 1, 208, - 149, 26, 1, 192, 253, 26, 1, 210, 40, 26, 1, 233, 11, 26, 1, 206, 63, 26, - 1, 218, 203, 26, 1, 216, 81, 26, 1, 213, 205, 26, 1, 207, 15, 26, 1, 207, - 158, 26, 1, 221, 226, 26, 1, 213, 238, 26, 1, 214, 33, 26, 1, 214, 54, - 26, 1, 203, 51, 26, 1, 208, 154, 26, 1, 232, 48, 26, 1, 232, 128, 26, 1, - 193, 187, 26, 1, 180, 26, 1, 219, 122, 26, 1, 209, 176, 26, 1, 218, 232, - 26, 1, 221, 43, 26, 1, 216, 238, 26, 1, 207, 50, 26, 1, 216, 167, 26, 1, - 172, 26, 1, 198, 188, 26, 1, 221, 142, 26, 1, 215, 251, 26, 1, 216, 246, - 26, 1, 199, 68, 26, 1, 220, 253, 26, 1, 199, 90, 26, 1, 212, 168, 26, 1, - 205, 145, 26, 1, 233, 64, 26, 1, 221, 0, 26, 1, 221, 33, 26, 33, 87, 221, - 10, 26, 33, 87, 197, 75, 26, 213, 141, 26, 232, 42, 201, 58, 26, 242, 35, - 26, 242, 26, 26, 204, 20, 26, 208, 8, 77, 59, 1, 243, 32, 163, 192, 22, - 209, 123, 59, 1, 243, 32, 163, 192, 107, 209, 123, 59, 1, 243, 32, 163, - 192, 22, 203, 132, 59, 1, 243, 32, 163, 192, 107, 203, 132, 59, 1, 243, - 32, 163, 192, 22, 208, 27, 59, 1, 243, 32, 163, 192, 107, 208, 27, 59, 1, - 243, 32, 163, 192, 22, 206, 63, 59, 1, 243, 32, 163, 192, 107, 206, 63, - 59, 1, 233, 159, 235, 94, 163, 164, 59, 1, 136, 235, 94, 163, 164, 59, 1, - 216, 68, 235, 94, 163, 164, 59, 1, 131, 235, 94, 163, 164, 59, 1, 233, - 158, 235, 94, 163, 164, 59, 1, 233, 159, 235, 94, 219, 192, 163, 164, 59, - 1, 136, 235, 94, 219, 192, 163, 164, 59, 1, 216, 68, 235, 94, 219, 192, - 163, 164, 59, 1, 131, 235, 94, 219, 192, 163, 164, 59, 1, 233, 158, 235, - 94, 219, 192, 163, 164, 59, 1, 233, 159, 219, 192, 163, 164, 59, 1, 136, - 219, 192, 163, 164, 59, 1, 216, 68, 219, 192, 163, 164, 59, 1, 131, 219, - 192, 163, 164, 59, 1, 233, 158, 219, 192, 163, 164, 59, 1, 75, 81, 164, - 59, 1, 75, 202, 92, 59, 1, 75, 228, 209, 164, 59, 1, 110, 50, 238, 211, - 251, 64, 59, 1, 207, 142, 132, 55, 59, 1, 207, 142, 143, 55, 59, 1, 207, - 142, 233, 175, 77, 59, 1, 207, 142, 223, 65, 233, 175, 77, 59, 1, 131, - 223, 65, 233, 175, 77, 59, 1, 201, 33, 24, 136, 198, 74, 59, 1, 201, 33, - 24, 131, 198, 74, 8, 6, 1, 234, 132, 251, 141, 8, 2, 1, 234, 132, 251, - 141, 8, 6, 1, 234, 132, 251, 178, 8, 2, 1, 234, 132, 251, 178, 8, 6, 1, - 229, 164, 8, 2, 1, 229, 164, 8, 6, 1, 196, 237, 8, 2, 1, 196, 237, 8, 6, - 1, 197, 244, 8, 2, 1, 197, 244, 8, 6, 1, 238, 145, 8, 2, 1, 238, 145, 8, - 6, 1, 238, 146, 4, 242, 26, 8, 2, 1, 238, 146, 4, 242, 26, 8, 1, 2, 6, - 233, 134, 8, 1, 2, 6, 206, 3, 8, 6, 1, 252, 154, 8, 2, 1, 252, 154, 8, 6, - 1, 251, 18, 8, 2, 1, 251, 18, 8, 6, 1, 250, 113, 8, 2, 1, 250, 113, 8, 6, - 1, 250, 96, 8, 2, 1, 250, 96, 8, 6, 1, 250, 97, 4, 228, 209, 164, 8, 2, - 1, 250, 97, 4, 228, 209, 164, 8, 6, 1, 250, 81, 8, 2, 1, 250, 81, 8, 6, - 1, 207, 13, 247, 146, 4, 236, 96, 8, 2, 1, 207, 13, 247, 146, 4, 236, 96, - 8, 6, 1, 222, 126, 4, 105, 8, 2, 1, 222, 126, 4, 105, 8, 6, 1, 222, 126, - 4, 236, 250, 105, 8, 2, 1, 222, 126, 4, 236, 250, 105, 8, 6, 1, 222, 126, - 4, 201, 23, 24, 236, 250, 105, 8, 2, 1, 222, 126, 4, 201, 23, 24, 236, - 250, 105, 8, 6, 1, 247, 230, 170, 8, 2, 1, 247, 230, 170, 8, 6, 1, 220, - 119, 4, 136, 105, 8, 2, 1, 220, 119, 4, 136, 105, 8, 6, 1, 186, 4, 177, - 201, 23, 210, 245, 8, 2, 1, 186, 4, 177, 201, 23, 210, 245, 8, 6, 1, 186, - 4, 218, 236, 8, 2, 1, 186, 4, 218, 236, 8, 6, 1, 211, 76, 8, 2, 1, 211, - 76, 8, 6, 1, 210, 227, 4, 201, 23, 198, 211, 237, 42, 8, 2, 1, 210, 227, - 4, 201, 23, 198, 211, 237, 42, 8, 6, 1, 210, 227, 4, 232, 148, 8, 2, 1, - 210, 227, 4, 232, 148, 8, 6, 1, 210, 227, 4, 201, 177, 199, 210, 8, 2, 1, - 210, 227, 4, 201, 177, 199, 210, 8, 6, 1, 208, 98, 4, 201, 23, 198, 211, - 237, 42, 8, 2, 1, 208, 98, 4, 201, 23, 198, 211, 237, 42, 8, 6, 1, 208, - 98, 4, 236, 250, 105, 8, 2, 1, 208, 98, 4, 236, 250, 105, 8, 6, 1, 207, - 217, 206, 111, 8, 2, 1, 207, 217, 206, 111, 8, 6, 1, 206, 44, 206, 111, - 8, 2, 1, 206, 44, 206, 111, 8, 6, 1, 196, 9, 4, 236, 250, 105, 8, 2, 1, - 196, 9, 4, 236, 250, 105, 8, 6, 1, 193, 232, 8, 2, 1, 193, 232, 8, 6, 1, - 195, 30, 191, 166, 8, 2, 1, 195, 30, 191, 166, 8, 6, 1, 198, 229, 4, 105, - 8, 2, 1, 198, 229, 4, 105, 8, 6, 1, 198, 229, 4, 201, 23, 198, 211, 237, - 42, 8, 2, 1, 198, 229, 4, 201, 23, 198, 211, 237, 42, 8, 6, 1, 195, 139, - 8, 2, 1, 195, 139, 8, 6, 1, 233, 213, 8, 2, 1, 233, 213, 8, 6, 1, 223, - 40, 8, 2, 1, 223, 40, 8, 6, 1, 239, 9, 8, 2, 1, 239, 9, 59, 1, 196, 41, - 8, 2, 1, 235, 33, 8, 2, 1, 218, 186, 8, 2, 1, 215, 108, 8, 2, 1, 212, - 124, 8, 2, 1, 206, 43, 8, 1, 2, 6, 206, 43, 8, 2, 1, 197, 72, 8, 2, 1, - 196, 116, 8, 6, 1, 223, 87, 238, 80, 8, 2, 1, 223, 87, 238, 80, 8, 6, 1, - 223, 87, 233, 134, 8, 2, 1, 223, 87, 233, 134, 8, 6, 1, 223, 87, 232, 14, - 8, 6, 1, 152, 223, 87, 232, 14, 8, 2, 1, 152, 223, 87, 232, 14, 8, 6, 1, - 152, 170, 8, 2, 1, 152, 170, 8, 6, 1, 223, 87, 148, 8, 2, 1, 223, 87, - 148, 8, 6, 1, 223, 87, 206, 3, 8, 2, 1, 223, 87, 206, 3, 8, 6, 1, 223, - 87, 200, 39, 8, 2, 1, 223, 87, 200, 39, 59, 1, 131, 242, 210, 252, 8, 59, - 1, 242, 35, 59, 1, 203, 35, 234, 1, 57, 8, 6, 1, 205, 151, 8, 2, 1, 205, - 151, 8, 6, 1, 152, 230, 83, 8, 2, 1, 220, 119, 4, 207, 19, 228, 219, 24, - 248, 181, 8, 1, 202, 158, 236, 96, 8, 6, 1, 215, 48, 4, 237, 42, 8, 2, 1, - 215, 48, 4, 237, 42, 8, 6, 1, 247, 146, 4, 164, 8, 2, 1, 247, 146, 4, - 164, 8, 2, 1, 247, 146, 4, 210, 182, 106, 8, 2, 1, 230, 84, 4, 210, 182, - 106, 8, 6, 1, 78, 4, 232, 148, 8, 2, 1, 78, 4, 232, 148, 8, 6, 1, 233, - 135, 4, 105, 8, 2, 1, 233, 135, 4, 105, 8, 6, 1, 195, 12, 251, 229, 8, 2, - 1, 195, 12, 251, 229, 8, 6, 1, 195, 12, 211, 139, 8, 2, 1, 195, 12, 211, - 139, 8, 6, 1, 195, 12, 196, 148, 8, 2, 1, 195, 12, 196, 148, 8, 6, 1, - 232, 15, 4, 211, 159, 105, 8, 2, 1, 232, 15, 4, 211, 159, 105, 8, 6, 1, - 222, 126, 4, 211, 159, 105, 8, 2, 1, 222, 126, 4, 211, 159, 105, 8, 6, 1, - 215, 48, 4, 211, 159, 105, 8, 2, 1, 215, 48, 4, 211, 159, 105, 8, 6, 1, - 207, 217, 4, 211, 159, 105, 8, 2, 1, 207, 217, 4, 211, 159, 105, 8, 6, 1, - 206, 4, 4, 211, 159, 105, 8, 2, 1, 206, 4, 4, 211, 159, 105, 8, 6, 1, - 230, 84, 4, 106, 8, 6, 1, 207, 13, 211, 66, 73, 8, 6, 1, 27, 232, 14, 8, - 6, 1, 220, 119, 4, 248, 181, 8, 6, 1, 2, 6, 70, 8, 1, 2, 6, 208, 97, 8, - 6, 1, 152, 222, 125, 8, 6, 1, 152, 200, 39, 8, 6, 1, 223, 8, 4, 238, 165, - 8, 6, 1, 243, 47, 8, 6, 1, 248, 162, 8, 2, 1, 248, 162, 8, 6, 1, 211, 99, - 8, 2, 1, 211, 99, 8, 6, 1, 126, 4, 105, 8, 2, 1, 126, 4, 105, 8, 6, 1, - 230, 231, 65, 8, 2, 1, 230, 231, 65, 8, 6, 1, 230, 231, 70, 8, 2, 1, 230, - 231, 70, 8, 6, 1, 230, 231, 69, 8, 2, 1, 230, 231, 69, 8, 6, 1, 38, 209, - 42, 74, 8, 2, 1, 38, 209, 42, 74, 8, 6, 1, 251, 61, 193, 221, 8, 2, 1, - 251, 61, 193, 221, 8, 6, 1, 247, 146, 4, 210, 182, 106, 8, 6, 1, 206, 4, - 4, 106, 8, 6, 1, 191, 167, 4, 210, 182, 106, 8, 6, 1, 238, 81, 4, 203, - 35, 201, 23, 210, 245, 8, 2, 1, 238, 81, 4, 203, 35, 201, 23, 210, 245, - 8, 6, 1, 206, 4, 4, 203, 35, 201, 23, 210, 245, 8, 2, 1, 206, 4, 4, 203, - 35, 201, 23, 210, 245, 8, 6, 1, 242, 171, 223, 87, 232, 14, 8, 2, 1, 242, - 171, 223, 87, 232, 14, 8, 2, 1, 54, 198, 228, 8, 2, 1, 54, 192, 238, 8, - 6, 1, 82, 205, 74, 206, 3, 8, 2, 1, 82, 205, 74, 206, 3, 8, 6, 1, 202, - 190, 206, 3, 8, 2, 1, 202, 190, 206, 3, 59, 1, 6, 247, 145, 59, 1, 6, - 233, 134, 59, 1, 6, 208, 97, 8, 6, 1, 207, 13, 134, 230, 83, 8, 2, 1, - 207, 13, 134, 230, 83, 8, 234, 8, 1, 202, 201, 70, 59, 1, 6, 230, 84, 4, - 105, 59, 1, 2, 34, 211, 139, 8, 1, 2, 6, 152, 218, 147, 8, 234, 8, 1, - 207, 13, 233, 134, 8, 234, 8, 1, 207, 13, 210, 226, 8, 234, 8, 1, 223, - 65, 218, 147, 8, 234, 8, 1, 228, 44, 218, 242, 8, 234, 8, 1, 250, 220, - 218, 147, 200, 120, 214, 224, 1, 65, 200, 120, 214, 224, 1, 70, 200, 120, - 214, 224, 3, 235, 10, 200, 120, 214, 224, 1, 69, 200, 120, 214, 224, 1, - 73, 200, 120, 214, 224, 1, 74, 200, 120, 214, 224, 3, 229, 234, 200, 120, - 214, 224, 1, 221, 43, 200, 120, 214, 224, 1, 221, 159, 200, 120, 214, - 224, 1, 230, 223, 200, 120, 214, 224, 1, 231, 26, 200, 120, 214, 224, 3, - 251, 20, 200, 120, 214, 224, 1, 242, 51, 200, 120, 214, 224, 1, 243, 20, - 200, 120, 214, 224, 1, 222, 174, 200, 120, 214, 224, 1, 222, 219, 200, - 120, 214, 224, 1, 197, 105, 200, 120, 214, 224, 1, 197, 111, 200, 120, - 214, 224, 1, 237, 116, 200, 120, 214, 224, 1, 237, 125, 200, 120, 214, - 224, 1, 159, 200, 120, 214, 224, 1, 198, 236, 200, 120, 214, 224, 1, 236, - 129, 200, 120, 214, 224, 1, 237, 3, 200, 120, 214, 224, 1, 213, 30, 200, - 120, 214, 224, 1, 209, 65, 200, 120, 214, 224, 1, 209, 190, 200, 120, - 214, 224, 1, 248, 63, 200, 120, 214, 224, 1, 248, 144, 200, 120, 214, - 224, 1, 215, 251, 200, 120, 214, 224, 1, 206, 157, 200, 120, 214, 224, 1, - 219, 19, 200, 120, 214, 224, 1, 206, 90, 200, 120, 214, 224, 1, 202, 41, - 200, 120, 214, 224, 1, 228, 247, 200, 120, 214, 224, 18, 3, 65, 200, 120, - 214, 224, 18, 3, 70, 200, 120, 214, 224, 18, 3, 69, 200, 120, 214, 224, - 18, 3, 73, 200, 120, 214, 224, 18, 3, 211, 76, 200, 120, 214, 224, 209, - 56, 217, 36, 200, 120, 214, 224, 209, 56, 217, 35, 200, 120, 214, 224, - 209, 56, 217, 34, 200, 120, 214, 224, 209, 56, 217, 33, 200, 120, 214, - 224, 3, 251, 106, 229, 234, 185, 223, 118, 232, 80, 91, 208, 17, 185, - 223, 118, 232, 80, 91, 230, 37, 185, 223, 118, 232, 80, 115, 208, 15, - 185, 223, 118, 232, 80, 91, 202, 123, 185, 223, 118, 232, 80, 91, 234, - 116, 185, 223, 118, 232, 80, 115, 202, 120, 185, 223, 118, 208, 18, 77, - 185, 223, 118, 209, 99, 77, 185, 223, 118, 206, 31, 77, 185, 223, 118, - 208, 19, 77, 209, 215, 1, 157, 209, 215, 1, 221, 190, 209, 215, 1, 231, - 203, 209, 215, 1, 214, 54, 209, 215, 1, 247, 112, 209, 215, 1, 246, 209, - 209, 215, 1, 223, 4, 209, 215, 1, 212, 88, 209, 215, 1, 199, 247, 209, - 215, 1, 199, 44, 209, 215, 1, 237, 241, 209, 215, 1, 180, 209, 215, 1, - 168, 209, 215, 1, 209, 219, 209, 215, 1, 249, 103, 209, 215, 1, 172, 209, - 215, 1, 197, 164, 209, 215, 1, 197, 153, 209, 215, 1, 234, 247, 209, 215, - 1, 193, 187, 209, 215, 1, 191, 71, 209, 215, 1, 191, 123, 209, 215, 1, 2, - 65, 209, 215, 1, 169, 209, 215, 1, 166, 209, 215, 1, 171, 209, 215, 1, - 203, 160, 209, 215, 1, 189, 209, 215, 1, 144, 209, 215, 1, 65, 209, 215, - 1, 70, 209, 215, 1, 69, 209, 215, 1, 73, 209, 215, 1, 74, 209, 215, 1, - 208, 89, 209, 215, 1, 192, 220, 209, 215, 1, 233, 68, 209, 215, 1, 231, - 90, 209, 215, 1, 234, 145, 209, 215, 200, 234, 1, 193, 187, 209, 215, - 200, 234, 1, 169, 209, 215, 1, 197, 128, 209, 215, 1, 197, 116, 209, 215, - 1, 237, 146, 209, 215, 1, 213, 66, 209, 215, 1, 251, 106, 169, 209, 215, - 1, 195, 16, 203, 160, 209, 215, 1, 195, 17, 144, 209, 215, 1, 250, 150, - 233, 68, 209, 215, 200, 234, 1, 166, 209, 215, 200, 180, 1, 166, 209, - 215, 1, 247, 71, 209, 215, 202, 165, 229, 204, 77, 209, 215, 54, 229, - 204, 77, 209, 215, 87, 203, 152, 209, 215, 87, 54, 203, 152, 205, 106, 3, - 251, 20, 205, 106, 3, 195, 32, 205, 106, 1, 65, 205, 106, 1, 252, 154, - 205, 106, 1, 70, 205, 106, 1, 223, 170, 205, 106, 1, 69, 205, 106, 1, - 196, 26, 205, 106, 1, 121, 148, 205, 106, 1, 121, 206, 105, 205, 106, 1, - 121, 170, 205, 106, 1, 121, 219, 50, 205, 106, 1, 73, 205, 106, 1, 234, - 145, 205, 106, 1, 251, 184, 205, 106, 1, 74, 205, 106, 1, 211, 76, 205, - 106, 1, 250, 113, 205, 106, 1, 157, 205, 106, 1, 221, 190, 205, 106, 1, - 231, 203, 205, 106, 1, 231, 54, 205, 106, 1, 214, 54, 205, 106, 1, 247, - 112, 205, 106, 1, 246, 209, 205, 106, 1, 223, 4, 205, 106, 1, 222, 225, - 205, 106, 1, 212, 88, 205, 106, 1, 197, 128, 205, 106, 1, 197, 116, 205, - 106, 1, 237, 146, 205, 106, 1, 237, 130, 205, 106, 1, 213, 66, 205, 106, - 1, 199, 247, 205, 106, 1, 199, 44, 205, 106, 1, 237, 241, 205, 106, 1, - 237, 23, 205, 106, 1, 180, 205, 106, 1, 168, 205, 106, 1, 209, 219, 205, - 106, 1, 249, 103, 205, 106, 1, 248, 153, 205, 106, 1, 172, 205, 106, 1, - 169, 205, 106, 1, 166, 205, 106, 1, 171, 205, 106, 1, 195, 185, 205, 106, - 1, 203, 160, 205, 106, 1, 201, 170, 205, 106, 1, 189, 205, 106, 1, 144, - 205, 106, 1, 219, 49, 205, 106, 119, 3, 230, 56, 205, 106, 18, 3, 252, - 154, 205, 106, 18, 3, 70, 205, 106, 18, 3, 223, 170, 205, 106, 18, 3, 69, - 205, 106, 18, 3, 196, 26, 205, 106, 18, 3, 121, 148, 205, 106, 18, 3, - 121, 206, 105, 205, 106, 18, 3, 121, 170, 205, 106, 18, 3, 121, 219, 50, - 205, 106, 18, 3, 73, 205, 106, 18, 3, 234, 145, 205, 106, 18, 3, 251, - 184, 205, 106, 18, 3, 74, 205, 106, 18, 3, 211, 76, 205, 106, 18, 3, 250, - 113, 205, 106, 3, 195, 37, 205, 106, 3, 247, 71, 205, 106, 237, 193, 205, - 106, 54, 237, 193, 205, 106, 17, 191, 77, 205, 106, 17, 108, 205, 106, - 17, 109, 205, 106, 17, 139, 205, 106, 17, 137, 205, 106, 17, 153, 205, - 106, 17, 173, 205, 106, 17, 181, 205, 106, 17, 176, 205, 106, 17, 184, - 33, 104, 17, 191, 77, 33, 104, 17, 108, 33, 104, 17, 109, 33, 104, 17, - 139, 33, 104, 17, 137, 33, 104, 17, 153, 33, 104, 17, 173, 33, 104, 17, - 181, 33, 104, 17, 176, 33, 104, 17, 184, 33, 104, 1, 65, 33, 104, 1, 69, - 33, 104, 1, 157, 33, 104, 1, 180, 33, 104, 1, 168, 33, 104, 1, 166, 33, - 104, 1, 195, 66, 33, 104, 3, 250, 95, 104, 3, 201, 241, 247, 71, 104, 3, - 247, 72, 195, 37, 104, 3, 54, 247, 72, 195, 37, 104, 3, 247, 72, 109, - 104, 3, 247, 72, 139, 104, 3, 247, 72, 250, 95, 104, 3, 208, 127, 104, - 231, 167, 232, 218, 104, 247, 48, 104, 229, 195, 104, 3, 202, 205, 104, - 222, 252, 211, 102, 104, 1, 250, 81, 104, 18, 3, 250, 81, 222, 3, 219, - 123, 17, 191, 77, 222, 3, 219, 123, 17, 108, 222, 3, 219, 123, 17, 109, - 222, 3, 219, 123, 17, 139, 222, 3, 219, 123, 17, 137, 222, 3, 219, 123, - 17, 153, 222, 3, 219, 123, 17, 173, 222, 3, 219, 123, 17, 181, 222, 3, - 219, 123, 17, 176, 222, 3, 219, 123, 17, 184, 222, 3, 219, 123, 1, 157, - 222, 3, 219, 123, 1, 221, 190, 222, 3, 219, 123, 1, 231, 203, 222, 3, - 219, 123, 1, 214, 54, 222, 3, 219, 123, 1, 189, 222, 3, 219, 123, 1, 203, - 160, 222, 3, 219, 123, 1, 191, 123, 222, 3, 219, 123, 1, 212, 88, 222, 3, - 219, 123, 1, 199, 247, 222, 3, 219, 123, 1, 228, 133, 222, 3, 219, 123, - 1, 180, 222, 3, 219, 123, 1, 168, 222, 3, 219, 123, 1, 209, 219, 222, 3, - 219, 123, 1, 172, 222, 3, 219, 123, 1, 237, 241, 222, 3, 219, 123, 1, - 249, 103, 222, 3, 219, 123, 1, 166, 222, 3, 219, 123, 1, 169, 222, 3, - 219, 123, 1, 171, 222, 3, 219, 123, 1, 193, 187, 222, 3, 219, 123, 1, - 199, 44, 222, 3, 219, 123, 1, 144, 222, 3, 219, 123, 1, 195, 185, 222, 3, - 219, 123, 1, 247, 112, 222, 3, 219, 123, 1, 65, 222, 3, 219, 123, 1, 211, - 139, 222, 3, 219, 123, 1, 70, 222, 3, 219, 123, 1, 211, 76, 222, 3, 219, - 123, 18, 196, 148, 222, 3, 219, 123, 18, 73, 222, 3, 219, 123, 18, 69, - 222, 3, 219, 123, 18, 234, 145, 222, 3, 219, 123, 18, 74, 222, 3, 219, - 123, 163, 209, 82, 222, 3, 219, 123, 163, 247, 87, 222, 3, 219, 123, 163, - 247, 88, 209, 82, 222, 3, 219, 123, 3, 238, 100, 222, 3, 219, 123, 3, - 202, 225, 207, 62, 1, 157, 207, 62, 1, 231, 203, 207, 62, 1, 214, 54, - 207, 62, 1, 199, 247, 207, 62, 1, 237, 241, 207, 62, 1, 180, 207, 62, 1, - 168, 207, 62, 1, 249, 103, 207, 62, 1, 172, 207, 62, 1, 247, 112, 207, - 62, 1, 223, 4, 207, 62, 1, 212, 88, 207, 62, 1, 189, 207, 62, 1, 166, - 207, 62, 1, 171, 207, 62, 1, 169, 207, 62, 1, 193, 187, 207, 62, 1, 144, - 207, 62, 1, 216, 248, 207, 62, 1, 214, 33, 207, 62, 1, 214, 148, 207, 62, - 1, 212, 53, 207, 62, 1, 65, 207, 62, 18, 3, 70, 207, 62, 18, 3, 69, 207, - 62, 18, 3, 73, 207, 62, 18, 3, 251, 184, 207, 62, 18, 3, 74, 207, 62, 18, - 3, 250, 113, 207, 62, 18, 3, 233, 201, 207, 62, 18, 3, 234, 173, 207, 62, - 119, 3, 214, 56, 207, 62, 119, 3, 215, 47, 207, 62, 119, 3, 148, 207, 62, - 119, 3, 230, 83, 207, 62, 195, 37, 207, 62, 205, 49, 77, 30, 146, 198, - 159, 30, 146, 198, 158, 30, 146, 198, 156, 30, 146, 198, 161, 30, 146, - 206, 229, 30, 146, 206, 213, 30, 146, 206, 208, 30, 146, 206, 210, 30, - 146, 206, 226, 30, 146, 206, 219, 30, 146, 206, 212, 30, 146, 206, 231, - 30, 146, 206, 214, 30, 146, 206, 233, 30, 146, 206, 230, 30, 146, 216, - 55, 30, 146, 216, 46, 30, 146, 216, 49, 30, 146, 209, 145, 30, 146, 209, - 156, 30, 146, 209, 157, 30, 146, 201, 154, 30, 146, 223, 183, 30, 146, - 223, 190, 30, 146, 201, 165, 30, 146, 201, 152, 30, 146, 209, 199, 30, - 146, 229, 105, 30, 146, 201, 149, 222, 244, 3, 210, 133, 222, 244, 3, - 246, 247, 222, 244, 3, 219, 222, 222, 244, 3, 193, 69, 222, 244, 1, 65, - 222, 244, 1, 228, 44, 222, 7, 222, 244, 1, 70, 222, 244, 1, 223, 170, - 222, 244, 1, 69, 222, 244, 1, 210, 211, 246, 217, 222, 244, 1, 214, 55, - 219, 179, 222, 244, 1, 214, 55, 219, 180, 207, 126, 222, 244, 1, 73, 222, - 244, 1, 251, 184, 222, 244, 1, 74, 222, 244, 1, 157, 222, 244, 1, 222, - 115, 205, 119, 222, 244, 1, 222, 115, 215, 93, 222, 244, 1, 231, 203, - 222, 244, 1, 231, 204, 215, 93, 222, 244, 1, 214, 54, 222, 244, 1, 247, - 112, 222, 244, 1, 247, 113, 215, 93, 222, 244, 1, 223, 4, 222, 244, 1, - 212, 89, 215, 93, 222, 244, 1, 223, 5, 217, 95, 222, 244, 1, 212, 88, - 222, 244, 1, 197, 128, 222, 244, 1, 197, 129, 217, 95, 222, 244, 1, 237, - 146, 222, 244, 1, 237, 147, 217, 95, 222, 244, 1, 214, 249, 215, 93, 222, - 244, 1, 199, 247, 222, 244, 1, 199, 248, 215, 93, 222, 244, 1, 237, 241, - 222, 244, 1, 237, 242, 217, 95, 222, 244, 1, 180, 222, 244, 1, 168, 222, - 244, 1, 210, 211, 215, 93, 222, 244, 1, 249, 103, 222, 244, 1, 249, 104, - 215, 93, 222, 244, 1, 172, 222, 244, 1, 169, 222, 244, 1, 166, 222, 244, - 1, 207, 181, 251, 194, 222, 244, 1, 171, 222, 244, 1, 193, 187, 222, 244, - 1, 205, 202, 215, 93, 222, 244, 1, 205, 202, 217, 95, 222, 244, 1, 189, - 222, 244, 1, 144, 222, 244, 3, 246, 248, 199, 95, 222, 244, 18, 3, 199, - 170, 222, 244, 18, 3, 198, 79, 222, 244, 18, 3, 192, 250, 222, 244, 18, - 3, 192, 251, 216, 179, 222, 244, 18, 3, 200, 203, 222, 244, 18, 3, 200, - 204, 216, 166, 222, 244, 18, 3, 199, 196, 222, 244, 18, 3, 236, 185, 215, - 92, 222, 244, 18, 3, 210, 7, 222, 244, 119, 3, 221, 219, 222, 244, 119, - 3, 210, 22, 222, 244, 119, 3, 247, 97, 222, 244, 210, 147, 222, 244, 45, - 207, 35, 222, 244, 50, 207, 35, 222, 244, 210, 199, 251, 73, 222, 244, - 210, 199, 217, 116, 222, 244, 210, 199, 218, 190, 222, 244, 210, 199, - 193, 62, 222, 244, 210, 199, 210, 148, 222, 244, 210, 199, 219, 80, 222, - 244, 210, 199, 218, 183, 222, 244, 210, 199, 251, 240, 222, 244, 210, - 199, 251, 241, 251, 240, 222, 244, 210, 199, 209, 111, 222, 244, 152, - 210, 199, 209, 111, 222, 244, 210, 143, 222, 244, 17, 191, 77, 222, 244, - 17, 108, 222, 244, 17, 109, 222, 244, 17, 139, 222, 244, 17, 137, 222, - 244, 17, 153, 222, 244, 17, 173, 222, 244, 17, 181, 222, 244, 17, 176, - 222, 244, 17, 184, 222, 244, 210, 199, 198, 122, 197, 69, 222, 244, 210, - 199, 223, 36, 79, 1, 203, 134, 231, 54, 79, 1, 203, 134, 246, 209, 79, 1, - 203, 134, 222, 225, 79, 1, 203, 134, 213, 66, 79, 1, 203, 134, 248, 153, - 79, 3, 203, 134, 205, 103, 79, 59, 1, 203, 134, 207, 80, 79, 1, 53, 220, - 71, 212, 88, 79, 1, 53, 220, 71, 233, 68, 79, 1, 53, 220, 71, 231, 203, - 79, 1, 53, 220, 71, 231, 54, 79, 1, 53, 220, 71, 223, 4, 79, 1, 53, 220, - 71, 222, 225, 79, 1, 53, 220, 71, 237, 146, 79, 1, 53, 220, 71, 237, 130, - 79, 1, 53, 220, 71, 213, 66, 79, 53, 220, 71, 17, 191, 77, 79, 53, 220, - 71, 17, 108, 79, 53, 220, 71, 17, 109, 79, 53, 220, 71, 17, 139, 79, 53, - 220, 71, 17, 137, 79, 53, 220, 71, 17, 153, 79, 53, 220, 71, 17, 173, 79, - 53, 220, 71, 17, 181, 79, 53, 220, 71, 17, 176, 79, 53, 220, 71, 17, 184, - 79, 1, 53, 220, 71, 219, 49, 79, 1, 53, 220, 71, 237, 241, 79, 1, 53, - 220, 71, 237, 23, 79, 1, 53, 220, 71, 249, 103, 79, 1, 53, 220, 71, 248, - 153, 246, 202, 1, 65, 246, 202, 1, 70, 246, 202, 1, 69, 246, 202, 1, 73, - 246, 202, 1, 251, 184, 246, 202, 1, 74, 246, 202, 1, 157, 246, 202, 1, - 221, 190, 246, 202, 1, 231, 203, 246, 202, 1, 231, 54, 246, 202, 1, 213, - 219, 246, 202, 1, 214, 54, 246, 202, 1, 246, 209, 246, 202, 1, 243, 50, - 246, 202, 1, 223, 4, 246, 202, 1, 222, 225, 246, 202, 1, 213, 207, 246, - 202, 1, 213, 210, 246, 202, 1, 213, 208, 246, 202, 1, 199, 247, 246, 202, - 1, 199, 44, 246, 202, 1, 237, 241, 246, 202, 1, 237, 23, 246, 202, 1, - 212, 131, 246, 202, 1, 180, 246, 202, 1, 237, 146, 246, 202, 1, 168, 246, - 202, 1, 208, 243, 246, 202, 1, 209, 219, 246, 202, 1, 249, 103, 246, 202, - 1, 248, 153, 246, 202, 1, 215, 127, 246, 202, 1, 172, 246, 202, 1, 249, - 3, 246, 202, 1, 169, 246, 202, 1, 166, 246, 202, 1, 171, 246, 202, 1, - 195, 185, 246, 202, 1, 201, 170, 246, 202, 1, 189, 246, 202, 1, 144, 246, - 202, 18, 3, 252, 154, 246, 202, 18, 3, 70, 246, 202, 18, 3, 223, 170, - 246, 202, 18, 3, 234, 123, 246, 202, 18, 3, 69, 246, 202, 18, 3, 211, - 139, 246, 202, 18, 3, 74, 246, 202, 18, 3, 251, 184, 246, 202, 18, 3, - 250, 113, 246, 202, 18, 3, 196, 148, 246, 202, 119, 3, 169, 246, 202, - 119, 3, 166, 246, 202, 119, 3, 171, 246, 202, 119, 3, 193, 187, 246, 202, - 1, 52, 222, 125, 246, 202, 1, 52, 232, 14, 246, 202, 1, 52, 214, 56, 246, - 202, 119, 3, 52, 214, 56, 246, 202, 1, 52, 246, 211, 246, 202, 1, 52, - 200, 39, 246, 202, 1, 52, 215, 47, 246, 202, 1, 52, 210, 226, 246, 202, - 1, 52, 192, 159, 246, 202, 1, 52, 148, 246, 202, 1, 52, 170, 246, 202, 1, - 52, 201, 173, 246, 202, 119, 3, 52, 218, 147, 246, 202, 119, 3, 52, 230, - 83, 246, 202, 17, 191, 77, 246, 202, 17, 108, 246, 202, 17, 109, 246, - 202, 17, 139, 246, 202, 17, 137, 246, 202, 17, 153, 246, 202, 17, 173, - 246, 202, 17, 181, 246, 202, 17, 176, 246, 202, 17, 184, 246, 202, 208, - 145, 201, 212, 246, 202, 208, 145, 237, 193, 246, 202, 208, 145, 54, 237, - 193, 246, 202, 208, 145, 197, 221, 237, 193, 79, 1, 221, 181, 231, 203, - 79, 1, 221, 181, 247, 112, 79, 1, 221, 181, 246, 209, 79, 1, 221, 181, - 223, 4, 79, 1, 221, 181, 222, 225, 79, 1, 221, 181, 212, 88, 79, 1, 221, - 181, 197, 128, 79, 1, 221, 181, 197, 116, 79, 1, 221, 181, 237, 146, 79, - 1, 221, 181, 237, 130, 79, 1, 221, 181, 237, 23, 79, 1, 221, 181, 180, - 79, 1, 221, 181, 189, 79, 1, 221, 181, 144, 79, 1, 221, 181, 229, 145, - 79, 1, 221, 181, 233, 68, 79, 59, 1, 221, 181, 207, 80, 79, 1, 221, 181, - 192, 220, 79, 1, 221, 181, 191, 123, 79, 1, 221, 181, 166, 79, 219, 4, - 221, 181, 211, 166, 79, 219, 4, 221, 181, 208, 40, 79, 219, 4, 221, 181, - 229, 46, 79, 16, 251, 170, 233, 174, 79, 16, 251, 170, 108, 79, 16, 251, - 170, 109, 79, 1, 251, 170, 166, 79, 3, 210, 129, 222, 36, 198, 74, 79, 3, - 53, 220, 71, 198, 72, 79, 3, 53, 220, 71, 198, 69, 79, 1, 202, 233, 210, - 179, 246, 209, 79, 1, 202, 233, 210, 179, 203, 160, 53, 195, 56, 1, 131, - 221, 43, 53, 195, 56, 1, 136, 221, 43, 53, 195, 56, 1, 131, 221, 159, 53, - 195, 56, 1, 136, 221, 159, 53, 195, 56, 1, 131, 221, 168, 53, 195, 56, 1, - 136, 221, 168, 53, 195, 56, 1, 131, 230, 223, 53, 195, 56, 1, 136, 230, - 223, 53, 195, 56, 1, 131, 213, 235, 53, 195, 56, 1, 136, 213, 235, 53, - 195, 56, 1, 131, 242, 51, 53, 195, 56, 1, 136, 242, 51, 53, 195, 56, 1, - 131, 243, 20, 53, 195, 56, 1, 136, 243, 20, 53, 195, 56, 1, 131, 202, 41, - 53, 195, 56, 1, 136, 202, 41, 53, 195, 56, 1, 131, 212, 52, 53, 195, 56, - 1, 136, 212, 52, 53, 195, 56, 1, 131, 236, 129, 53, 195, 56, 1, 136, 236, - 129, 53, 195, 56, 1, 131, 159, 53, 195, 56, 1, 136, 159, 53, 195, 56, 1, - 131, 198, 236, 53, 195, 56, 1, 136, 198, 236, 53, 195, 56, 1, 131, 213, - 30, 53, 195, 56, 1, 136, 213, 30, 53, 195, 56, 1, 131, 248, 63, 53, 195, - 56, 1, 136, 248, 63, 53, 195, 56, 1, 131, 209, 65, 53, 195, 56, 1, 136, - 209, 65, 53, 195, 56, 1, 131, 209, 190, 53, 195, 56, 1, 136, 209, 190, - 53, 195, 56, 1, 131, 232, 135, 53, 195, 56, 1, 136, 232, 135, 53, 195, - 56, 1, 131, 215, 251, 53, 195, 56, 1, 136, 215, 251, 53, 195, 56, 1, 131, - 192, 12, 53, 195, 56, 1, 136, 192, 12, 53, 195, 56, 1, 131, 206, 157, 53, - 195, 56, 1, 136, 206, 157, 53, 195, 56, 1, 131, 219, 19, 53, 195, 56, 1, - 136, 219, 19, 53, 195, 56, 1, 131, 195, 21, 53, 195, 56, 1, 136, 195, 21, - 53, 195, 56, 1, 131, 228, 247, 53, 195, 56, 1, 136, 228, 247, 53, 195, - 56, 1, 131, 74, 53, 195, 56, 1, 136, 74, 53, 195, 56, 217, 92, 222, 57, - 53, 195, 56, 18, 252, 154, 53, 195, 56, 18, 70, 53, 195, 56, 18, 196, - 148, 53, 195, 56, 18, 69, 53, 195, 56, 18, 73, 53, 195, 56, 18, 74, 53, - 195, 56, 217, 92, 221, 162, 53, 195, 56, 18, 228, 5, 53, 195, 56, 18, - 196, 147, 53, 195, 56, 18, 196, 164, 53, 195, 56, 18, 250, 111, 53, 195, - 56, 18, 250, 81, 53, 195, 56, 18, 251, 81, 53, 195, 56, 18, 251, 98, 53, - 195, 56, 163, 217, 92, 234, 104, 53, 195, 56, 163, 217, 92, 212, 130, 53, - 195, 56, 163, 217, 92, 198, 236, 53, 195, 56, 163, 217, 92, 202, 13, 53, - 195, 56, 16, 221, 20, 53, 195, 56, 16, 212, 130, 53, 195, 56, 16, 205, - 147, 53, 195, 56, 16, 228, 248, 228, 234, 53, 195, 56, 16, 221, 31, 221, - 30, 216, 186, 216, 255, 1, 73, 216, 186, 216, 255, 1, 74, 216, 186, 216, - 255, 1, 246, 209, 216, 186, 216, 255, 1, 212, 88, 216, 186, 216, 255, 1, - 197, 128, 216, 186, 216, 255, 1, 197, 116, 216, 186, 216, 255, 1, 237, - 146, 216, 186, 216, 255, 1, 237, 130, 216, 186, 216, 255, 1, 213, 66, - 216, 186, 216, 255, 1, 203, 160, 216, 186, 216, 255, 1, 201, 170, 216, - 186, 216, 255, 18, 3, 223, 170, 216, 186, 216, 255, 18, 3, 196, 26, 216, - 186, 216, 255, 18, 3, 252, 118, 216, 186, 216, 255, 18, 3, 250, 113, 216, - 186, 216, 255, 18, 3, 252, 110, 216, 186, 216, 255, 243, 68, 216, 186, - 216, 255, 251, 190, 221, 149, 216, 186, 216, 255, 251, 49, 216, 186, 216, - 255, 5, 207, 41, 77, 216, 186, 216, 255, 193, 23, 207, 41, 77, 216, 186, - 216, 255, 18, 3, 195, 32, 216, 186, 216, 255, 195, 37, 36, 5, 197, 109, - 36, 5, 197, 112, 36, 5, 197, 115, 36, 5, 197, 113, 36, 5, 197, 114, 36, - 5, 197, 111, 36, 5, 237, 124, 36, 5, 237, 126, 36, 5, 237, 129, 36, 5, - 237, 127, 36, 5, 237, 128, 36, 5, 237, 125, 36, 5, 234, 234, 36, 5, 234, - 238, 36, 5, 234, 246, 36, 5, 234, 243, 36, 5, 234, 244, 36, 5, 234, 235, - 36, 5, 247, 8, 36, 5, 247, 2, 36, 5, 247, 4, 36, 5, 247, 7, 36, 5, 247, - 5, 36, 5, 247, 6, 36, 5, 247, 3, 36, 5, 249, 3, 36, 5, 248, 238, 36, 5, - 248, 250, 36, 5, 249, 2, 36, 5, 248, 253, 36, 5, 248, 254, 36, 5, 248, - 242, 8, 2, 1, 249, 32, 251, 109, 8, 2, 1, 41, 207, 11, 8, 2, 1, 248, 87, - 73, 8, 2, 1, 249, 32, 73, 8, 2, 1, 234, 227, 4, 232, 148, 8, 2, 1, 219, - 165, 233, 134, 8, 2, 1, 27, 232, 15, 4, 238, 165, 8, 2, 1, 220, 119, 4, - 223, 65, 219, 221, 206, 3, 8, 2, 1, 220, 119, 4, 54, 82, 198, 147, 8, 2, - 1, 220, 119, 4, 82, 206, 183, 8, 2, 1, 218, 148, 4, 238, 165, 8, 2, 1, - 215, 48, 4, 238, 165, 8, 2, 1, 234, 47, 4, 238, 165, 8, 2, 1, 248, 87, - 74, 8, 2, 1, 248, 87, 186, 4, 105, 8, 2, 1, 211, 66, 186, 4, 105, 8, 2, - 1, 223, 65, 211, 139, 8, 2, 1, 152, 211, 140, 4, 105, 8, 2, 1, 152, 211, - 140, 4, 228, 209, 105, 8, 2, 1, 152, 186, 211, 61, 8, 2, 1, 152, 186, - 211, 62, 4, 105, 8, 2, 1, 201, 63, 148, 8, 1, 2, 6, 207, 217, 4, 50, 219, - 188, 8, 2, 1, 207, 217, 193, 51, 229, 254, 8, 2, 1, 54, 148, 8, 2, 1, - 207, 217, 4, 238, 165, 8, 2, 1, 54, 207, 217, 4, 238, 165, 8, 2, 1, 27, - 148, 8, 2, 1, 27, 207, 217, 4, 206, 183, 8, 2, 1, 249, 22, 233, 226, 8, - 2, 1, 126, 4, 203, 35, 50, 219, 188, 8, 2, 1, 126, 249, 38, 4, 203, 35, - 50, 219, 188, 8, 2, 1, 196, 135, 8, 2, 1, 152, 196, 135, 8, 2, 1, 126, 4, - 45, 106, 8, 2, 1, 243, 47, 8, 2, 1, 243, 48, 4, 131, 50, 206, 183, 8, 2, - 1, 243, 48, 4, 131, 45, 204, 0, 8, 2, 1, 192, 236, 4, 131, 50, 206, 183, - 8, 2, 1, 192, 236, 4, 177, 45, 219, 188, 8, 2, 1, 192, 236, 4, 177, 45, - 219, 189, 24, 131, 50, 206, 183, 8, 2, 1, 192, 236, 4, 177, 45, 219, 189, - 4, 204, 0, 8, 2, 1, 192, 160, 4, 203, 35, 50, 219, 188, 59, 247, 245, 4, - 223, 65, 247, 244, 59, 1, 2, 229, 164, 59, 1, 2, 220, 119, 4, 223, 65, - 219, 221, 206, 3, 59, 1, 2, 220, 119, 4, 82, 198, 147, 59, 1, 2, 126, 4, - 45, 106, 8, 2, 1, 205, 169, 192, 95, 8, 2, 1, 223, 53, 73, 8, 2, 1, 211, - 66, 211, 139, 8, 2, 1, 196, 78, 8, 2, 1, 223, 65, 251, 109, 35, 1, 2, 6, - 211, 99, 8, 2, 1, 234, 249, 236, 214, 4, 207, 19, 106, 8, 2, 1, 197, 166, - 236, 214, 4, 207, 19, 106, 8, 2, 1, 152, 207, 217, 4, 82, 198, 147, 59, - 1, 2, 152, 193, 221, 59, 1, 45, 199, 223, 59, 1, 50, 199, 223, 101, 2, 1, - 65, 101, 2, 1, 73, 101, 2, 1, 70, 101, 2, 1, 74, 101, 2, 1, 69, 101, 2, - 1, 196, 8, 101, 2, 1, 231, 203, 101, 2, 1, 157, 101, 2, 1, 231, 128, 101, - 2, 1, 231, 16, 101, 2, 1, 230, 223, 101, 2, 1, 230, 146, 101, 2, 1, 230, - 105, 101, 2, 1, 144, 101, 2, 1, 229, 213, 101, 2, 1, 229, 126, 101, 2, 1, - 228, 247, 101, 2, 1, 228, 128, 101, 2, 1, 228, 95, 101, 2, 1, 171, 101, - 2, 1, 219, 214, 101, 2, 1, 219, 122, 101, 2, 1, 219, 19, 101, 2, 1, 218, - 203, 101, 2, 1, 218, 171, 101, 2, 1, 172, 101, 2, 1, 216, 213, 101, 2, 1, - 216, 81, 101, 2, 1, 215, 251, 101, 2, 1, 215, 139, 101, 2, 1, 180, 101, - 2, 1, 229, 15, 101, 2, 1, 214, 223, 101, 2, 1, 214, 107, 101, 2, 1, 213, - 205, 101, 2, 1, 213, 30, 101, 2, 1, 212, 165, 101, 2, 1, 212, 99, 101, 2, - 1, 208, 26, 101, 2, 1, 208, 11, 101, 2, 1, 208, 4, 101, 2, 1, 207, 250, - 101, 2, 1, 207, 239, 101, 2, 1, 207, 237, 101, 2, 1, 189, 101, 2, 1, 206, - 3, 101, 2, 1, 205, 63, 101, 2, 1, 202, 217, 101, 2, 1, 202, 41, 101, 2, - 1, 200, 255, 101, 2, 1, 200, 154, 101, 2, 1, 237, 241, 101, 2, 1, 199, - 247, 101, 2, 1, 237, 101, 101, 2, 1, 199, 140, 101, 2, 1, 236, 255, 101, - 2, 1, 198, 188, 101, 2, 1, 236, 129, 101, 2, 1, 235, 45, 101, 2, 1, 235, - 13, 101, 2, 1, 236, 141, 101, 2, 1, 198, 110, 101, 2, 1, 198, 109, 101, - 2, 1, 198, 98, 101, 2, 1, 198, 97, 101, 2, 1, 198, 96, 101, 2, 1, 198, - 95, 101, 2, 1, 197, 164, 101, 2, 1, 197, 157, 101, 2, 1, 197, 142, 101, - 2, 1, 197, 140, 101, 2, 1, 197, 136, 101, 2, 1, 197, 135, 101, 2, 1, 193, - 187, 101, 2, 1, 193, 123, 101, 2, 1, 193, 84, 101, 2, 1, 193, 48, 101, 2, - 1, 193, 0, 101, 2, 1, 192, 243, 101, 2, 1, 169, 216, 186, 216, 255, 1, - 221, 27, 216, 186, 216, 255, 1, 205, 147, 216, 186, 216, 255, 1, 220, 72, - 216, 186, 216, 255, 1, 216, 6, 216, 186, 216, 255, 1, 168, 216, 186, 216, - 255, 1, 180, 216, 186, 216, 255, 1, 243, 39, 216, 186, 216, 255, 1, 198, - 149, 216, 186, 216, 255, 1, 221, 152, 216, 186, 216, 255, 1, 213, 225, - 216, 186, 216, 255, 1, 198, 227, 216, 186, 216, 255, 1, 193, 170, 216, - 186, 216, 255, 1, 192, 106, 216, 186, 216, 255, 1, 228, 116, 216, 186, - 216, 255, 1, 196, 109, 216, 186, 216, 255, 1, 70, 216, 186, 216, 255, 1, - 209, 213, 216, 186, 216, 255, 1, 250, 125, 216, 186, 216, 255, 1, 230, - 215, 216, 186, 216, 255, 1, 222, 223, 216, 186, 216, 255, 1, 207, 151, - 216, 186, 216, 255, 1, 249, 103, 216, 186, 216, 255, 1, 222, 207, 216, - 186, 216, 255, 1, 236, 212, 216, 186, 216, 255, 1, 231, 23, 216, 186, - 216, 255, 1, 237, 1, 216, 186, 216, 255, 1, 248, 150, 216, 186, 216, 255, - 1, 221, 28, 218, 241, 216, 186, 216, 255, 1, 220, 73, 218, 241, 216, 186, - 216, 255, 1, 216, 7, 218, 241, 216, 186, 216, 255, 1, 210, 211, 218, 241, - 216, 186, 216, 255, 1, 214, 249, 218, 241, 216, 186, 216, 255, 1, 198, - 150, 218, 241, 216, 186, 216, 255, 1, 213, 226, 218, 241, 216, 186, 216, - 255, 1, 228, 44, 218, 241, 216, 186, 216, 255, 18, 3, 211, 91, 216, 186, - 216, 255, 18, 3, 223, 132, 216, 186, 216, 255, 18, 3, 251, 79, 216, 186, - 216, 255, 18, 3, 192, 69, 216, 186, 216, 255, 18, 3, 202, 1, 216, 186, - 216, 255, 18, 3, 196, 106, 216, 186, 216, 255, 18, 3, 243, 66, 216, 186, - 216, 255, 18, 3, 212, 114, 216, 186, 216, 255, 243, 67, 216, 186, 216, - 255, 218, 187, 223, 14, 216, 186, 216, 255, 250, 244, 223, 14, 216, 186, - 216, 255, 17, 191, 77, 216, 186, 216, 255, 17, 108, 216, 186, 216, 255, - 17, 109, 216, 186, 216, 255, 17, 139, 216, 186, 216, 255, 17, 137, 216, - 186, 216, 255, 17, 153, 216, 186, 216, 255, 17, 173, 216, 186, 216, 255, - 17, 181, 216, 186, 216, 255, 17, 176, 216, 186, 216, 255, 17, 184, 30, - 222, 147, 211, 246, 30, 222, 147, 211, 251, 30, 222, 147, 192, 5, 30, - 222, 147, 192, 4, 30, 222, 147, 192, 3, 30, 222, 147, 196, 214, 30, 222, - 147, 196, 218, 30, 222, 147, 191, 219, 30, 222, 147, 191, 215, 30, 222, - 147, 233, 200, 30, 222, 147, 233, 198, 30, 222, 147, 233, 199, 30, 222, - 147, 233, 196, 30, 222, 147, 228, 30, 30, 222, 147, 228, 29, 30, 222, - 147, 228, 27, 30, 222, 147, 228, 28, 30, 222, 147, 228, 33, 30, 222, 147, - 228, 26, 30, 222, 147, 228, 25, 30, 222, 147, 228, 35, 30, 222, 147, 250, - 230, 30, 222, 147, 250, 229, 30, 125, 213, 183, 30, 125, 213, 189, 30, - 125, 201, 151, 30, 125, 201, 150, 30, 125, 198, 158, 30, 125, 198, 156, - 30, 125, 198, 155, 30, 125, 198, 161, 30, 125, 198, 162, 30, 125, 198, - 154, 30, 125, 206, 213, 30, 125, 206, 228, 30, 125, 201, 157, 30, 125, - 206, 225, 30, 125, 206, 215, 30, 125, 206, 217, 30, 125, 206, 204, 30, - 125, 206, 205, 30, 125, 222, 42, 30, 125, 216, 54, 30, 125, 216, 48, 30, - 125, 201, 161, 30, 125, 216, 51, 30, 125, 216, 57, 30, 125, 209, 141, 30, - 125, 209, 150, 30, 125, 209, 154, 30, 125, 201, 159, 30, 125, 209, 144, - 30, 125, 209, 158, 30, 125, 209, 159, 30, 125, 202, 147, 30, 125, 202, - 150, 30, 125, 201, 155, 30, 125, 201, 153, 30, 125, 202, 145, 30, 125, - 202, 153, 30, 125, 202, 154, 30, 125, 202, 139, 30, 125, 202, 152, 30, - 125, 210, 137, 30, 125, 210, 138, 30, 125, 192, 53, 30, 125, 192, 56, 30, - 125, 242, 230, 30, 125, 242, 229, 30, 125, 201, 166, 30, 125, 209, 197, - 30, 125, 209, 196, 12, 15, 225, 161, 12, 15, 225, 160, 12, 15, 225, 159, - 12, 15, 225, 158, 12, 15, 225, 157, 12, 15, 225, 156, 12, 15, 225, 155, - 12, 15, 225, 154, 12, 15, 225, 153, 12, 15, 225, 152, 12, 15, 225, 151, - 12, 15, 225, 150, 12, 15, 225, 149, 12, 15, 225, 148, 12, 15, 225, 147, - 12, 15, 225, 146, 12, 15, 225, 145, 12, 15, 225, 144, 12, 15, 225, 143, - 12, 15, 225, 142, 12, 15, 225, 141, 12, 15, 225, 140, 12, 15, 225, 139, - 12, 15, 225, 138, 12, 15, 225, 137, 12, 15, 225, 136, 12, 15, 225, 135, - 12, 15, 225, 134, 12, 15, 225, 133, 12, 15, 225, 132, 12, 15, 225, 131, - 12, 15, 225, 130, 12, 15, 225, 129, 12, 15, 225, 128, 12, 15, 225, 127, - 12, 15, 225, 126, 12, 15, 225, 125, 12, 15, 225, 124, 12, 15, 225, 123, - 12, 15, 225, 122, 12, 15, 225, 121, 12, 15, 225, 120, 12, 15, 225, 119, - 12, 15, 225, 118, 12, 15, 225, 117, 12, 15, 225, 116, 12, 15, 225, 115, - 12, 15, 225, 114, 12, 15, 225, 113, 12, 15, 225, 112, 12, 15, 225, 111, - 12, 15, 225, 110, 12, 15, 225, 109, 12, 15, 225, 108, 12, 15, 225, 107, - 12, 15, 225, 106, 12, 15, 225, 105, 12, 15, 225, 104, 12, 15, 225, 103, - 12, 15, 225, 102, 12, 15, 225, 101, 12, 15, 225, 100, 12, 15, 225, 99, - 12, 15, 225, 98, 12, 15, 225, 97, 12, 15, 225, 96, 12, 15, 225, 95, 12, - 15, 225, 94, 12, 15, 225, 93, 12, 15, 225, 92, 12, 15, 225, 91, 12, 15, - 225, 90, 12, 15, 225, 89, 12, 15, 225, 88, 12, 15, 225, 87, 12, 15, 225, - 86, 12, 15, 225, 85, 12, 15, 225, 84, 12, 15, 225, 83, 12, 15, 225, 82, - 12, 15, 225, 81, 12, 15, 225, 80, 12, 15, 225, 79, 12, 15, 225, 78, 12, - 15, 225, 77, 12, 15, 225, 76, 12, 15, 225, 75, 12, 15, 225, 74, 12, 15, - 225, 73, 12, 15, 225, 72, 12, 15, 225, 71, 12, 15, 225, 70, 12, 15, 225, - 69, 12, 15, 225, 68, 12, 15, 225, 67, 12, 15, 225, 66, 12, 15, 225, 65, - 12, 15, 225, 64, 12, 15, 225, 63, 12, 15, 225, 62, 12, 15, 225, 61, 12, - 15, 225, 60, 12, 15, 225, 59, 12, 15, 225, 58, 12, 15, 225, 57, 12, 15, - 225, 56, 12, 15, 225, 55, 12, 15, 225, 54, 12, 15, 225, 53, 12, 15, 225, - 52, 12, 15, 225, 51, 12, 15, 225, 50, 12, 15, 225, 49, 12, 15, 225, 48, - 12, 15, 225, 47, 12, 15, 225, 46, 12, 15, 225, 45, 12, 15, 225, 44, 12, - 15, 225, 43, 12, 15, 225, 42, 12, 15, 225, 41, 12, 15, 225, 40, 12, 15, - 225, 39, 12, 15, 225, 38, 12, 15, 225, 37, 12, 15, 225, 36, 12, 15, 225, - 35, 12, 15, 225, 34, 12, 15, 225, 33, 12, 15, 225, 32, 12, 15, 225, 31, - 12, 15, 225, 30, 12, 15, 225, 29, 12, 15, 225, 28, 12, 15, 225, 27, 12, - 15, 225, 26, 12, 15, 225, 25, 12, 15, 225, 24, 12, 15, 225, 23, 12, 15, - 225, 22, 12, 15, 225, 21, 12, 15, 225, 20, 12, 15, 225, 19, 12, 15, 225, - 18, 12, 15, 225, 17, 12, 15, 225, 16, 12, 15, 225, 15, 12, 15, 225, 14, - 12, 15, 225, 13, 12, 15, 225, 12, 12, 15, 225, 11, 12, 15, 225, 10, 12, - 15, 225, 9, 12, 15, 225, 8, 12, 15, 225, 7, 12, 15, 225, 6, 12, 15, 225, - 5, 12, 15, 225, 4, 12, 15, 225, 3, 12, 15, 225, 2, 12, 15, 225, 1, 12, - 15, 225, 0, 12, 15, 224, 255, 12, 15, 224, 254, 12, 15, 224, 253, 12, 15, - 224, 252, 12, 15, 224, 251, 12, 15, 224, 250, 12, 15, 224, 249, 12, 15, - 224, 248, 12, 15, 224, 247, 12, 15, 224, 246, 12, 15, 224, 245, 12, 15, - 224, 244, 12, 15, 224, 243, 12, 15, 224, 242, 12, 15, 224, 241, 12, 15, - 224, 240, 12, 15, 224, 239, 12, 15, 224, 238, 12, 15, 224, 237, 12, 15, - 224, 236, 12, 15, 224, 235, 12, 15, 224, 234, 12, 15, 224, 233, 12, 15, - 224, 232, 12, 15, 224, 231, 12, 15, 224, 230, 12, 15, 224, 229, 12, 15, - 224, 228, 12, 15, 224, 227, 12, 15, 224, 226, 12, 15, 224, 225, 12, 15, - 224, 224, 12, 15, 224, 223, 12, 15, 224, 222, 12, 15, 224, 221, 12, 15, - 224, 220, 12, 15, 224, 219, 12, 15, 224, 218, 12, 15, 224, 217, 12, 15, - 224, 216, 12, 15, 224, 215, 12, 15, 224, 214, 12, 15, 224, 213, 12, 15, - 224, 212, 12, 15, 224, 211, 12, 15, 224, 210, 12, 15, 224, 209, 12, 15, - 224, 208, 12, 15, 224, 207, 12, 15, 224, 206, 12, 15, 224, 205, 12, 15, - 224, 204, 12, 15, 224, 203, 12, 15, 224, 202, 12, 15, 224, 201, 12, 15, - 224, 200, 12, 15, 224, 199, 12, 15, 224, 198, 12, 15, 224, 197, 12, 15, - 224, 196, 12, 15, 224, 195, 12, 15, 224, 194, 12, 15, 224, 193, 12, 15, - 224, 192, 12, 15, 224, 191, 12, 15, 224, 190, 12, 15, 224, 189, 12, 15, - 224, 188, 12, 15, 224, 187, 12, 15, 224, 186, 12, 15, 224, 185, 12, 15, - 224, 184, 12, 15, 224, 183, 12, 15, 224, 182, 12, 15, 224, 181, 12, 15, - 224, 180, 12, 15, 224, 179, 12, 15, 224, 178, 12, 15, 224, 177, 12, 15, - 224, 176, 12, 15, 224, 175, 12, 15, 224, 174, 12, 15, 224, 173, 12, 15, - 224, 172, 12, 15, 224, 171, 12, 15, 224, 170, 12, 15, 224, 169, 12, 15, - 224, 168, 12, 15, 224, 167, 12, 15, 224, 166, 12, 15, 224, 165, 12, 15, - 224, 164, 12, 15, 224, 163, 12, 15, 224, 162, 12, 15, 224, 161, 12, 15, - 224, 160, 12, 15, 224, 159, 12, 15, 224, 158, 12, 15, 224, 157, 12, 15, - 224, 156, 12, 15, 224, 155, 12, 15, 224, 154, 12, 15, 224, 153, 12, 15, - 224, 152, 12, 15, 224, 151, 12, 15, 224, 150, 12, 15, 224, 149, 12, 15, - 224, 148, 12, 15, 224, 147, 12, 15, 224, 146, 12, 15, 224, 145, 12, 15, - 224, 144, 12, 15, 224, 143, 12, 15, 224, 142, 12, 15, 224, 141, 12, 15, - 224, 140, 12, 15, 224, 139, 12, 15, 224, 138, 12, 15, 224, 137, 12, 15, - 224, 136, 12, 15, 224, 135, 12, 15, 224, 134, 12, 15, 224, 133, 12, 15, - 224, 132, 12, 15, 224, 131, 12, 15, 224, 130, 12, 15, 224, 129, 12, 15, - 224, 128, 12, 15, 224, 127, 12, 15, 224, 126, 12, 15, 224, 125, 12, 15, - 224, 124, 12, 15, 224, 123, 12, 15, 224, 122, 12, 15, 224, 121, 12, 15, - 224, 120, 12, 15, 224, 119, 12, 15, 224, 118, 12, 15, 224, 117, 12, 15, - 224, 116, 12, 15, 224, 115, 12, 15, 224, 114, 12, 15, 224, 113, 12, 15, - 224, 112, 12, 15, 224, 111, 12, 15, 224, 110, 12, 15, 224, 109, 12, 15, - 224, 108, 12, 15, 224, 107, 12, 15, 224, 106, 12, 15, 224, 105, 12, 15, - 224, 104, 12, 15, 224, 103, 12, 15, 224, 102, 12, 15, 224, 101, 12, 15, - 224, 100, 12, 15, 224, 99, 12, 15, 224, 98, 12, 15, 224, 97, 12, 15, 224, - 96, 12, 15, 224, 95, 12, 15, 224, 94, 12, 15, 224, 93, 12, 15, 224, 92, - 12, 15, 224, 91, 12, 15, 224, 90, 12, 15, 224, 89, 12, 15, 224, 88, 12, - 15, 224, 87, 12, 15, 224, 86, 12, 15, 224, 85, 12, 15, 224, 84, 12, 15, - 224, 83, 12, 15, 224, 82, 12, 15, 224, 81, 12, 15, 224, 80, 12, 15, 224, - 79, 12, 15, 224, 78, 12, 15, 224, 77, 12, 15, 224, 76, 12, 15, 224, 75, - 12, 15, 224, 74, 12, 15, 224, 73, 12, 15, 224, 72, 12, 15, 224, 71, 12, - 15, 224, 70, 12, 15, 224, 69, 12, 15, 224, 68, 12, 15, 224, 67, 12, 15, - 224, 66, 12, 15, 224, 65, 12, 15, 224, 64, 12, 15, 224, 63, 12, 15, 224, - 62, 12, 15, 224, 61, 12, 15, 224, 60, 12, 15, 224, 59, 12, 15, 224, 58, - 12, 15, 224, 57, 12, 15, 224, 56, 12, 15, 224, 55, 12, 15, 224, 54, 12, - 15, 224, 53, 12, 15, 224, 52, 12, 15, 224, 51, 12, 15, 224, 50, 12, 15, - 224, 49, 12, 15, 224, 48, 12, 15, 224, 47, 12, 15, 224, 46, 12, 15, 224, - 45, 12, 15, 224, 44, 12, 15, 224, 43, 12, 15, 224, 42, 12, 15, 224, 41, - 12, 15, 224, 40, 12, 15, 224, 39, 12, 15, 224, 38, 12, 15, 224, 37, 12, - 15, 224, 36, 12, 15, 224, 35, 12, 15, 224, 34, 12, 15, 224, 33, 12, 15, - 224, 32, 12, 15, 224, 31, 12, 15, 224, 30, 12, 15, 224, 29, 12, 15, 224, - 28, 12, 15, 224, 27, 12, 15, 224, 26, 12, 15, 224, 25, 12, 15, 224, 24, - 12, 15, 224, 23, 12, 15, 224, 22, 12, 15, 224, 21, 12, 15, 224, 20, 12, - 15, 224, 19, 12, 15, 224, 18, 12, 15, 224, 17, 12, 15, 224, 16, 12, 15, - 224, 15, 12, 15, 224, 14, 12, 15, 224, 13, 12, 15, 224, 12, 12, 15, 224, - 11, 12, 15, 224, 10, 12, 15, 224, 9, 12, 15, 224, 8, 12, 15, 224, 7, 12, - 15, 224, 6, 12, 15, 224, 5, 12, 15, 224, 4, 12, 15, 224, 3, 12, 15, 224, - 2, 12, 15, 224, 1, 12, 15, 224, 0, 12, 15, 223, 255, 12, 15, 223, 254, - 12, 15, 223, 253, 12, 15, 223, 252, 12, 15, 223, 251, 12, 15, 223, 250, - 12, 15, 223, 249, 12, 15, 223, 248, 12, 15, 223, 247, 12, 15, 223, 246, - 12, 15, 223, 245, 12, 15, 223, 244, 12, 15, 223, 243, 12, 15, 223, 242, - 12, 15, 223, 241, 12, 15, 223, 240, 12, 15, 223, 239, 12, 15, 223, 238, - 12, 15, 223, 237, 12, 15, 223, 236, 12, 15, 223, 235, 12, 15, 223, 234, - 12, 15, 223, 233, 12, 15, 223, 232, 12, 15, 223, 231, 12, 15, 223, 230, - 12, 15, 223, 229, 12, 15, 223, 228, 12, 15, 223, 227, 12, 15, 223, 226, - 12, 15, 223, 225, 12, 15, 223, 224, 12, 15, 223, 223, 12, 15, 223, 222, - 12, 15, 223, 221, 12, 15, 223, 220, 12, 15, 223, 219, 12, 15, 223, 218, - 12, 15, 223, 217, 12, 15, 223, 216, 12, 15, 223, 215, 12, 15, 223, 214, - 12, 15, 223, 213, 12, 15, 223, 212, 12, 15, 223, 211, 12, 15, 223, 210, - 12, 15, 223, 209, 12, 15, 223, 208, 12, 15, 223, 207, 12, 15, 223, 206, - 12, 15, 223, 205, 12, 15, 223, 204, 12, 15, 223, 203, 12, 15, 223, 202, - 8, 2, 34, 232, 242, 8, 2, 34, 232, 238, 8, 2, 34, 232, 180, 8, 2, 34, - 232, 241, 8, 2, 34, 232, 240, 8, 2, 34, 177, 206, 4, 200, 39, 8, 2, 34, - 201, 113, 250, 199, 2, 34, 216, 168, 212, 240, 250, 199, 2, 34, 216, 168, - 234, 151, 250, 199, 2, 34, 216, 168, 223, 103, 250, 199, 2, 34, 195, 72, - 212, 240, 250, 199, 2, 34, 216, 168, 192, 212, 135, 1, 191, 251, 4, 229, - 87, 135, 209, 55, 222, 154, 195, 163, 135, 34, 192, 31, 191, 251, 191, - 251, 210, 78, 135, 1, 251, 101, 250, 76, 135, 1, 193, 76, 251, 141, 135, - 1, 193, 76, 237, 206, 135, 1, 193, 76, 229, 213, 135, 1, 193, 76, 222, - 79, 135, 1, 193, 76, 220, 3, 135, 1, 193, 76, 52, 216, 174, 135, 1, 193, - 76, 207, 33, 135, 1, 193, 76, 199, 157, 135, 1, 251, 101, 107, 57, 135, - 1, 203, 65, 4, 203, 65, 236, 96, 135, 1, 203, 65, 4, 202, 170, 236, 96, - 135, 1, 203, 65, 4, 237, 226, 24, 203, 65, 236, 96, 135, 1, 203, 65, 4, - 237, 226, 24, 202, 170, 236, 96, 135, 1, 130, 4, 210, 78, 135, 1, 130, 4, - 208, 77, 135, 1, 130, 4, 217, 50, 135, 1, 248, 165, 4, 237, 225, 135, 1, - 231, 2, 4, 237, 225, 135, 1, 237, 207, 4, 237, 225, 135, 1, 229, 214, 4, - 217, 50, 135, 1, 195, 156, 4, 237, 225, 135, 1, 191, 92, 4, 237, 225, - 135, 1, 199, 69, 4, 237, 225, 135, 1, 191, 251, 4, 237, 225, 135, 1, 52, - 222, 80, 4, 237, 225, 135, 1, 222, 80, 4, 237, 225, 135, 1, 220, 4, 4, - 237, 225, 135, 1, 216, 175, 4, 237, 225, 135, 1, 212, 118, 4, 237, 225, - 135, 1, 205, 144, 4, 237, 225, 135, 1, 52, 210, 54, 4, 237, 225, 135, 1, - 210, 54, 4, 237, 225, 135, 1, 197, 160, 4, 237, 225, 135, 1, 208, 37, 4, - 237, 225, 135, 1, 207, 34, 4, 237, 225, 135, 1, 203, 65, 4, 237, 225, - 135, 1, 199, 158, 4, 237, 225, 135, 1, 195, 156, 4, 228, 231, 135, 1, - 248, 165, 4, 207, 156, 135, 1, 222, 80, 4, 207, 156, 135, 1, 210, 54, 4, - 207, 156, 135, 34, 130, 220, 3, 9, 1, 130, 193, 149, 76, 20, 9, 1, 130, - 193, 149, 52, 20, 9, 1, 248, 206, 76, 20, 9, 1, 248, 206, 52, 20, 9, 1, - 248, 206, 89, 20, 9, 1, 248, 206, 216, 198, 20, 9, 1, 210, 33, 76, 20, 9, - 1, 210, 33, 52, 20, 9, 1, 210, 33, 89, 20, 9, 1, 210, 33, 216, 198, 20, - 9, 1, 248, 194, 76, 20, 9, 1, 248, 194, 52, 20, 9, 1, 248, 194, 89, 20, - 9, 1, 248, 194, 216, 198, 20, 9, 1, 197, 119, 76, 20, 9, 1, 197, 119, 52, - 20, 9, 1, 197, 119, 89, 20, 9, 1, 197, 119, 216, 198, 20, 9, 1, 199, 108, - 76, 20, 9, 1, 199, 108, 52, 20, 9, 1, 199, 108, 89, 20, 9, 1, 199, 108, - 216, 198, 20, 9, 1, 197, 121, 76, 20, 9, 1, 197, 121, 52, 20, 9, 1, 197, - 121, 89, 20, 9, 1, 197, 121, 216, 198, 20, 9, 1, 195, 144, 76, 20, 9, 1, - 195, 144, 52, 20, 9, 1, 195, 144, 89, 20, 9, 1, 195, 144, 216, 198, 20, - 9, 1, 210, 31, 76, 20, 9, 1, 210, 31, 52, 20, 9, 1, 210, 31, 89, 20, 9, - 1, 210, 31, 216, 198, 20, 9, 1, 234, 254, 76, 20, 9, 1, 234, 254, 52, 20, - 9, 1, 234, 254, 89, 20, 9, 1, 234, 254, 216, 198, 20, 9, 1, 212, 75, 76, - 20, 9, 1, 212, 75, 52, 20, 9, 1, 212, 75, 89, 20, 9, 1, 212, 75, 216, - 198, 20, 9, 1, 199, 145, 76, 20, 9, 1, 199, 145, 52, 20, 9, 1, 199, 145, - 89, 20, 9, 1, 199, 145, 216, 198, 20, 9, 1, 199, 143, 76, 20, 9, 1, 199, - 143, 52, 20, 9, 1, 199, 143, 89, 20, 9, 1, 199, 143, 216, 198, 20, 9, 1, - 237, 144, 76, 20, 9, 1, 237, 144, 52, 20, 9, 1, 237, 220, 76, 20, 9, 1, - 237, 220, 52, 20, 9, 1, 235, 35, 76, 20, 9, 1, 235, 35, 52, 20, 9, 1, - 237, 142, 76, 20, 9, 1, 237, 142, 52, 20, 9, 1, 222, 232, 76, 20, 9, 1, - 222, 232, 52, 20, 9, 1, 206, 97, 76, 20, 9, 1, 206, 97, 52, 20, 9, 1, - 221, 236, 76, 20, 9, 1, 221, 236, 52, 20, 9, 1, 221, 236, 89, 20, 9, 1, - 221, 236, 216, 198, 20, 9, 1, 231, 191, 76, 20, 9, 1, 231, 191, 52, 20, - 9, 1, 231, 191, 89, 20, 9, 1, 231, 191, 216, 198, 20, 9, 1, 230, 134, 76, - 20, 9, 1, 230, 134, 52, 20, 9, 1, 230, 134, 89, 20, 9, 1, 230, 134, 216, - 198, 20, 9, 1, 213, 234, 76, 20, 9, 1, 213, 234, 52, 20, 9, 1, 213, 234, - 89, 20, 9, 1, 213, 234, 216, 198, 20, 9, 1, 213, 12, 231, 21, 76, 20, 9, - 1, 213, 12, 231, 21, 52, 20, 9, 1, 206, 161, 76, 20, 9, 1, 206, 161, 52, - 20, 9, 1, 206, 161, 89, 20, 9, 1, 206, 161, 216, 198, 20, 9, 1, 229, 179, - 4, 99, 95, 76, 20, 9, 1, 229, 179, 4, 99, 95, 52, 20, 9, 1, 229, 179, - 230, 221, 76, 20, 9, 1, 229, 179, 230, 221, 52, 20, 9, 1, 229, 179, 230, - 221, 89, 20, 9, 1, 229, 179, 230, 221, 216, 198, 20, 9, 1, 229, 179, 236, - 126, 76, 20, 9, 1, 229, 179, 236, 126, 52, 20, 9, 1, 229, 179, 236, 126, - 89, 20, 9, 1, 229, 179, 236, 126, 216, 198, 20, 9, 1, 99, 249, 31, 76, - 20, 9, 1, 99, 249, 31, 52, 20, 9, 1, 99, 249, 31, 4, 230, 25, 95, 76, 20, - 9, 1, 99, 249, 31, 4, 230, 25, 95, 52, 20, 9, 16, 75, 56, 9, 16, 75, 60, - 9, 16, 103, 183, 56, 9, 16, 103, 183, 60, 9, 16, 115, 183, 56, 9, 16, - 115, 183, 60, 9, 16, 115, 183, 209, 51, 235, 75, 56, 9, 16, 115, 183, - 209, 51, 235, 75, 60, 9, 16, 232, 90, 183, 56, 9, 16, 232, 90, 183, 60, - 9, 16, 54, 81, 249, 38, 60, 9, 16, 103, 183, 195, 82, 56, 9, 16, 103, - 183, 195, 82, 60, 9, 16, 206, 183, 9, 16, 2, 199, 215, 56, 9, 16, 2, 199, - 215, 60, 9, 16, 193, 149, 56, 9, 1, 214, 57, 76, 20, 9, 1, 214, 57, 52, - 20, 9, 1, 214, 57, 89, 20, 9, 1, 214, 57, 216, 198, 20, 9, 1, 126, 76, - 20, 9, 1, 126, 52, 20, 9, 1, 211, 140, 76, 20, 9, 1, 211, 140, 52, 20, 9, - 1, 191, 226, 76, 20, 9, 1, 191, 226, 52, 20, 9, 1, 126, 4, 230, 25, 95, - 76, 20, 9, 1, 195, 151, 76, 20, 9, 1, 195, 151, 52, 20, 9, 1, 221, 108, - 211, 140, 76, 20, 9, 1, 221, 108, 211, 140, 52, 20, 9, 1, 221, 108, 191, - 226, 76, 20, 9, 1, 221, 108, 191, 226, 52, 20, 9, 1, 234, 227, 76, 20, 9, - 1, 234, 227, 52, 20, 9, 1, 234, 227, 89, 20, 9, 1, 234, 227, 216, 198, - 20, 9, 1, 196, 133, 222, 1, 221, 108, 130, 217, 80, 89, 20, 9, 1, 196, - 133, 222, 1, 221, 108, 130, 217, 80, 216, 198, 20, 9, 34, 99, 4, 230, 25, - 95, 4, 130, 76, 20, 9, 34, 99, 4, 230, 25, 95, 4, 130, 52, 20, 9, 34, 99, - 4, 230, 25, 95, 4, 251, 230, 76, 20, 9, 34, 99, 4, 230, 25, 95, 4, 251, - 230, 52, 20, 9, 34, 99, 4, 230, 25, 95, 4, 193, 132, 76, 20, 9, 34, 99, - 4, 230, 25, 95, 4, 193, 132, 52, 20, 9, 34, 99, 4, 230, 25, 95, 4, 126, - 76, 20, 9, 34, 99, 4, 230, 25, 95, 4, 126, 52, 20, 9, 34, 99, 4, 230, 25, - 95, 4, 211, 140, 76, 20, 9, 34, 99, 4, 230, 25, 95, 4, 211, 140, 52, 20, - 9, 34, 99, 4, 230, 25, 95, 4, 191, 226, 76, 20, 9, 34, 99, 4, 230, 25, - 95, 4, 191, 226, 52, 20, 9, 34, 99, 4, 230, 25, 95, 4, 234, 227, 76, 20, - 9, 34, 99, 4, 230, 25, 95, 4, 234, 227, 52, 20, 9, 34, 99, 4, 230, 25, - 95, 4, 234, 227, 89, 20, 9, 34, 196, 133, 221, 108, 99, 4, 230, 25, 95, - 4, 130, 217, 80, 76, 20, 9, 34, 196, 133, 221, 108, 99, 4, 230, 25, 95, - 4, 130, 217, 80, 52, 20, 9, 34, 196, 133, 221, 108, 99, 4, 230, 25, 95, - 4, 130, 217, 80, 89, 20, 9, 1, 233, 33, 99, 76, 20, 9, 1, 233, 33, 99, - 52, 20, 9, 1, 233, 33, 99, 89, 20, 9, 1, 233, 33, 99, 216, 198, 20, 9, - 34, 99, 4, 230, 25, 95, 4, 222, 235, 76, 20, 9, 34, 99, 4, 230, 25, 95, - 4, 179, 76, 20, 9, 34, 99, 4, 230, 25, 95, 4, 92, 76, 20, 9, 34, 99, 4, - 230, 25, 95, 4, 130, 217, 80, 76, 20, 9, 34, 99, 4, 230, 25, 95, 4, 99, - 76, 20, 9, 34, 248, 196, 4, 222, 235, 76, 20, 9, 34, 248, 196, 4, 179, - 76, 20, 9, 34, 248, 196, 4, 221, 186, 76, 20, 9, 34, 248, 196, 4, 92, 76, - 20, 9, 34, 248, 196, 4, 130, 217, 80, 76, 20, 9, 34, 248, 196, 4, 99, 76, - 20, 9, 34, 199, 110, 4, 222, 235, 76, 20, 9, 34, 199, 110, 4, 179, 76, - 20, 9, 34, 199, 110, 4, 221, 186, 76, 20, 9, 34, 199, 110, 4, 92, 76, 20, - 9, 34, 199, 110, 4, 130, 217, 80, 76, 20, 9, 34, 199, 110, 4, 99, 76, 20, - 9, 34, 199, 25, 4, 222, 235, 76, 20, 9, 34, 199, 25, 4, 92, 76, 20, 9, - 34, 199, 25, 4, 130, 217, 80, 76, 20, 9, 34, 199, 25, 4, 99, 76, 20, 9, - 34, 222, 235, 4, 179, 76, 20, 9, 34, 222, 235, 4, 92, 76, 20, 9, 34, 179, - 4, 222, 235, 76, 20, 9, 34, 179, 4, 92, 76, 20, 9, 34, 221, 186, 4, 222, - 235, 76, 20, 9, 34, 221, 186, 4, 179, 76, 20, 9, 34, 221, 186, 4, 92, 76, - 20, 9, 34, 205, 42, 4, 222, 235, 76, 20, 9, 34, 205, 42, 4, 179, 76, 20, - 9, 34, 205, 42, 4, 221, 186, 76, 20, 9, 34, 205, 42, 4, 92, 76, 20, 9, - 34, 205, 188, 4, 179, 76, 20, 9, 34, 205, 188, 4, 92, 76, 20, 9, 34, 237, - 236, 4, 222, 235, 76, 20, 9, 34, 237, 236, 4, 179, 76, 20, 9, 34, 237, - 236, 4, 221, 186, 76, 20, 9, 34, 237, 236, 4, 92, 76, 20, 9, 34, 199, - 215, 4, 179, 76, 20, 9, 34, 199, 215, 4, 92, 76, 20, 9, 34, 191, 117, 4, - 92, 76, 20, 9, 34, 251, 179, 4, 222, 235, 76, 20, 9, 34, 251, 179, 4, 92, - 76, 20, 9, 34, 231, 50, 4, 222, 235, 76, 20, 9, 34, 231, 50, 4, 92, 76, - 20, 9, 34, 233, 6, 4, 222, 235, 76, 20, 9, 34, 233, 6, 4, 179, 76, 20, 9, - 34, 233, 6, 4, 221, 186, 76, 20, 9, 34, 233, 6, 4, 92, 76, 20, 9, 34, - 233, 6, 4, 130, 217, 80, 76, 20, 9, 34, 233, 6, 4, 99, 76, 20, 9, 34, - 208, 83, 4, 179, 76, 20, 9, 34, 208, 83, 4, 92, 76, 20, 9, 34, 208, 83, - 4, 130, 217, 80, 76, 20, 9, 34, 208, 83, 4, 99, 76, 20, 9, 34, 222, 80, - 4, 130, 76, 20, 9, 34, 222, 80, 4, 222, 235, 76, 20, 9, 34, 222, 80, 4, - 179, 76, 20, 9, 34, 222, 80, 4, 221, 186, 76, 20, 9, 34, 222, 80, 4, 220, - 12, 76, 20, 9, 34, 222, 80, 4, 92, 76, 20, 9, 34, 222, 80, 4, 130, 217, - 80, 76, 20, 9, 34, 222, 80, 4, 99, 76, 20, 9, 34, 220, 12, 4, 222, 235, - 76, 20, 9, 34, 220, 12, 4, 179, 76, 20, 9, 34, 220, 12, 4, 221, 186, 76, - 20, 9, 34, 220, 12, 4, 92, 76, 20, 9, 34, 220, 12, 4, 130, 217, 80, 76, - 20, 9, 34, 220, 12, 4, 99, 76, 20, 9, 34, 92, 4, 222, 235, 76, 20, 9, 34, - 92, 4, 179, 76, 20, 9, 34, 92, 4, 221, 186, 76, 20, 9, 34, 92, 4, 92, 76, - 20, 9, 34, 92, 4, 130, 217, 80, 76, 20, 9, 34, 92, 4, 99, 76, 20, 9, 34, - 213, 12, 4, 222, 235, 76, 20, 9, 34, 213, 12, 4, 179, 76, 20, 9, 34, 213, - 12, 4, 221, 186, 76, 20, 9, 34, 213, 12, 4, 92, 76, 20, 9, 34, 213, 12, - 4, 130, 217, 80, 76, 20, 9, 34, 213, 12, 4, 99, 76, 20, 9, 34, 229, 179, - 4, 222, 235, 76, 20, 9, 34, 229, 179, 4, 92, 76, 20, 9, 34, 229, 179, 4, - 130, 217, 80, 76, 20, 9, 34, 229, 179, 4, 99, 76, 20, 9, 34, 99, 4, 222, - 235, 76, 20, 9, 34, 99, 4, 179, 76, 20, 9, 34, 99, 4, 221, 186, 76, 20, - 9, 34, 99, 4, 92, 76, 20, 9, 34, 99, 4, 130, 217, 80, 76, 20, 9, 34, 99, - 4, 99, 76, 20, 9, 34, 199, 37, 4, 200, 177, 130, 76, 20, 9, 34, 207, 67, - 4, 200, 177, 130, 76, 20, 9, 34, 130, 217, 80, 4, 200, 177, 130, 76, 20, - 9, 34, 203, 151, 4, 237, 199, 76, 20, 9, 34, 203, 151, 4, 222, 25, 76, - 20, 9, 34, 203, 151, 4, 233, 30, 76, 20, 9, 34, 203, 151, 4, 237, 201, - 76, 20, 9, 34, 203, 151, 4, 222, 27, 76, 20, 9, 34, 203, 151, 4, 200, - 177, 130, 76, 20, 9, 34, 99, 4, 230, 25, 95, 4, 207, 67, 52, 20, 9, 34, - 99, 4, 230, 25, 95, 4, 191, 114, 52, 20, 9, 34, 99, 4, 230, 25, 95, 4, - 92, 52, 20, 9, 34, 99, 4, 230, 25, 95, 4, 213, 12, 52, 20, 9, 34, 99, 4, - 230, 25, 95, 4, 130, 217, 80, 52, 20, 9, 34, 99, 4, 230, 25, 95, 4, 99, - 52, 20, 9, 34, 248, 196, 4, 207, 67, 52, 20, 9, 34, 248, 196, 4, 191, - 114, 52, 20, 9, 34, 248, 196, 4, 92, 52, 20, 9, 34, 248, 196, 4, 213, 12, - 52, 20, 9, 34, 248, 196, 4, 130, 217, 80, 52, 20, 9, 34, 248, 196, 4, 99, - 52, 20, 9, 34, 199, 110, 4, 207, 67, 52, 20, 9, 34, 199, 110, 4, 191, - 114, 52, 20, 9, 34, 199, 110, 4, 92, 52, 20, 9, 34, 199, 110, 4, 213, 12, - 52, 20, 9, 34, 199, 110, 4, 130, 217, 80, 52, 20, 9, 34, 199, 110, 4, 99, - 52, 20, 9, 34, 199, 25, 4, 207, 67, 52, 20, 9, 34, 199, 25, 4, 191, 114, - 52, 20, 9, 34, 199, 25, 4, 92, 52, 20, 9, 34, 199, 25, 4, 213, 12, 52, - 20, 9, 34, 199, 25, 4, 130, 217, 80, 52, 20, 9, 34, 199, 25, 4, 99, 52, - 20, 9, 34, 233, 6, 4, 130, 217, 80, 52, 20, 9, 34, 233, 6, 4, 99, 52, 20, - 9, 34, 208, 83, 4, 130, 217, 80, 52, 20, 9, 34, 208, 83, 4, 99, 52, 20, - 9, 34, 222, 80, 4, 130, 52, 20, 9, 34, 222, 80, 4, 220, 12, 52, 20, 9, - 34, 222, 80, 4, 92, 52, 20, 9, 34, 222, 80, 4, 130, 217, 80, 52, 20, 9, - 34, 222, 80, 4, 99, 52, 20, 9, 34, 220, 12, 4, 92, 52, 20, 9, 34, 220, - 12, 4, 130, 217, 80, 52, 20, 9, 34, 220, 12, 4, 99, 52, 20, 9, 34, 92, 4, - 130, 52, 20, 9, 34, 92, 4, 92, 52, 20, 9, 34, 213, 12, 4, 207, 67, 52, - 20, 9, 34, 213, 12, 4, 191, 114, 52, 20, 9, 34, 213, 12, 4, 92, 52, 20, - 9, 34, 213, 12, 4, 213, 12, 52, 20, 9, 34, 213, 12, 4, 130, 217, 80, 52, - 20, 9, 34, 213, 12, 4, 99, 52, 20, 9, 34, 130, 217, 80, 4, 200, 177, 130, - 52, 20, 9, 34, 99, 4, 207, 67, 52, 20, 9, 34, 99, 4, 191, 114, 52, 20, 9, - 34, 99, 4, 92, 52, 20, 9, 34, 99, 4, 213, 12, 52, 20, 9, 34, 99, 4, 130, - 217, 80, 52, 20, 9, 34, 99, 4, 99, 52, 20, 9, 34, 99, 4, 230, 25, 95, 4, - 222, 235, 89, 20, 9, 34, 99, 4, 230, 25, 95, 4, 179, 89, 20, 9, 34, 99, - 4, 230, 25, 95, 4, 221, 186, 89, 20, 9, 34, 99, 4, 230, 25, 95, 4, 92, - 89, 20, 9, 34, 99, 4, 230, 25, 95, 4, 229, 179, 89, 20, 9, 34, 248, 196, - 4, 222, 235, 89, 20, 9, 34, 248, 196, 4, 179, 89, 20, 9, 34, 248, 196, 4, - 221, 186, 89, 20, 9, 34, 248, 196, 4, 92, 89, 20, 9, 34, 248, 196, 4, - 229, 179, 89, 20, 9, 34, 199, 110, 4, 222, 235, 89, 20, 9, 34, 199, 110, - 4, 179, 89, 20, 9, 34, 199, 110, 4, 221, 186, 89, 20, 9, 34, 199, 110, 4, - 92, 89, 20, 9, 34, 199, 110, 4, 229, 179, 89, 20, 9, 34, 199, 25, 4, 92, - 89, 20, 9, 34, 222, 235, 4, 179, 89, 20, 9, 34, 222, 235, 4, 92, 89, 20, - 9, 34, 179, 4, 222, 235, 89, 20, 9, 34, 179, 4, 92, 89, 20, 9, 34, 221, - 186, 4, 222, 235, 89, 20, 9, 34, 221, 186, 4, 92, 89, 20, 9, 34, 205, 42, - 4, 222, 235, 89, 20, 9, 34, 205, 42, 4, 179, 89, 20, 9, 34, 205, 42, 4, - 221, 186, 89, 20, 9, 34, 205, 42, 4, 92, 89, 20, 9, 34, 205, 188, 4, 179, - 89, 20, 9, 34, 205, 188, 4, 221, 186, 89, 20, 9, 34, 205, 188, 4, 92, 89, - 20, 9, 34, 237, 236, 4, 222, 235, 89, 20, 9, 34, 237, 236, 4, 179, 89, - 20, 9, 34, 237, 236, 4, 221, 186, 89, 20, 9, 34, 237, 236, 4, 92, 89, 20, - 9, 34, 199, 215, 4, 179, 89, 20, 9, 34, 191, 117, 4, 92, 89, 20, 9, 34, - 251, 179, 4, 222, 235, 89, 20, 9, 34, 251, 179, 4, 92, 89, 20, 9, 34, - 231, 50, 4, 222, 235, 89, 20, 9, 34, 231, 50, 4, 92, 89, 20, 9, 34, 233, - 6, 4, 222, 235, 89, 20, 9, 34, 233, 6, 4, 179, 89, 20, 9, 34, 233, 6, 4, - 221, 186, 89, 20, 9, 34, 233, 6, 4, 92, 89, 20, 9, 34, 208, 83, 4, 179, - 89, 20, 9, 34, 208, 83, 4, 92, 89, 20, 9, 34, 222, 80, 4, 222, 235, 89, - 20, 9, 34, 222, 80, 4, 179, 89, 20, 9, 34, 222, 80, 4, 221, 186, 89, 20, - 9, 34, 222, 80, 4, 220, 12, 89, 20, 9, 34, 222, 80, 4, 92, 89, 20, 9, 34, - 220, 12, 4, 222, 235, 89, 20, 9, 34, 220, 12, 4, 179, 89, 20, 9, 34, 220, - 12, 4, 221, 186, 89, 20, 9, 34, 220, 12, 4, 92, 89, 20, 9, 34, 220, 12, - 4, 229, 179, 89, 20, 9, 34, 92, 4, 222, 235, 89, 20, 9, 34, 92, 4, 179, - 89, 20, 9, 34, 92, 4, 221, 186, 89, 20, 9, 34, 92, 4, 92, 89, 20, 9, 34, - 213, 12, 4, 222, 235, 89, 20, 9, 34, 213, 12, 4, 179, 89, 20, 9, 34, 213, - 12, 4, 221, 186, 89, 20, 9, 34, 213, 12, 4, 92, 89, 20, 9, 34, 213, 12, - 4, 229, 179, 89, 20, 9, 34, 229, 179, 4, 222, 235, 89, 20, 9, 34, 229, - 179, 4, 92, 89, 20, 9, 34, 229, 179, 4, 200, 177, 130, 89, 20, 9, 34, 99, - 4, 222, 235, 89, 20, 9, 34, 99, 4, 179, 89, 20, 9, 34, 99, 4, 221, 186, - 89, 20, 9, 34, 99, 4, 92, 89, 20, 9, 34, 99, 4, 229, 179, 89, 20, 9, 34, - 99, 4, 230, 25, 95, 4, 92, 216, 198, 20, 9, 34, 99, 4, 230, 25, 95, 4, - 229, 179, 216, 198, 20, 9, 34, 248, 196, 4, 92, 216, 198, 20, 9, 34, 248, - 196, 4, 229, 179, 216, 198, 20, 9, 34, 199, 110, 4, 92, 216, 198, 20, 9, - 34, 199, 110, 4, 229, 179, 216, 198, 20, 9, 34, 199, 25, 4, 92, 216, 198, - 20, 9, 34, 199, 25, 4, 229, 179, 216, 198, 20, 9, 34, 205, 42, 4, 92, - 216, 198, 20, 9, 34, 205, 42, 4, 229, 179, 216, 198, 20, 9, 34, 203, 105, - 4, 92, 216, 198, 20, 9, 34, 203, 105, 4, 229, 179, 216, 198, 20, 9, 34, - 222, 80, 4, 220, 12, 216, 198, 20, 9, 34, 222, 80, 4, 92, 216, 198, 20, - 9, 34, 220, 12, 4, 92, 216, 198, 20, 9, 34, 213, 12, 4, 92, 216, 198, 20, - 9, 34, 213, 12, 4, 229, 179, 216, 198, 20, 9, 34, 99, 4, 92, 216, 198, - 20, 9, 34, 99, 4, 229, 179, 216, 198, 20, 9, 34, 203, 151, 4, 233, 30, - 216, 198, 20, 9, 34, 203, 151, 4, 237, 201, 216, 198, 20, 9, 34, 203, - 151, 4, 222, 27, 216, 198, 20, 9, 34, 199, 215, 4, 130, 217, 80, 76, 20, - 9, 34, 199, 215, 4, 99, 76, 20, 9, 34, 251, 179, 4, 130, 217, 80, 76, 20, - 9, 34, 251, 179, 4, 99, 76, 20, 9, 34, 231, 50, 4, 130, 217, 80, 76, 20, - 9, 34, 231, 50, 4, 99, 76, 20, 9, 34, 205, 42, 4, 130, 217, 80, 76, 20, - 9, 34, 205, 42, 4, 99, 76, 20, 9, 34, 203, 105, 4, 130, 217, 80, 76, 20, - 9, 34, 203, 105, 4, 99, 76, 20, 9, 34, 179, 4, 130, 217, 80, 76, 20, 9, - 34, 179, 4, 99, 76, 20, 9, 34, 222, 235, 4, 130, 217, 80, 76, 20, 9, 34, - 222, 235, 4, 99, 76, 20, 9, 34, 221, 186, 4, 130, 217, 80, 76, 20, 9, 34, - 221, 186, 4, 99, 76, 20, 9, 34, 205, 188, 4, 130, 217, 80, 76, 20, 9, 34, - 205, 188, 4, 99, 76, 20, 9, 34, 237, 236, 4, 130, 217, 80, 76, 20, 9, 34, - 237, 236, 4, 99, 76, 20, 9, 34, 203, 105, 4, 222, 235, 76, 20, 9, 34, - 203, 105, 4, 179, 76, 20, 9, 34, 203, 105, 4, 221, 186, 76, 20, 9, 34, - 203, 105, 4, 92, 76, 20, 9, 34, 203, 105, 4, 207, 67, 76, 20, 9, 34, 205, - 42, 4, 207, 67, 76, 20, 9, 34, 205, 188, 4, 207, 67, 76, 20, 9, 34, 237, - 236, 4, 207, 67, 76, 20, 9, 34, 199, 215, 4, 130, 217, 80, 52, 20, 9, 34, - 199, 215, 4, 99, 52, 20, 9, 34, 251, 179, 4, 130, 217, 80, 52, 20, 9, 34, - 251, 179, 4, 99, 52, 20, 9, 34, 231, 50, 4, 130, 217, 80, 52, 20, 9, 34, - 231, 50, 4, 99, 52, 20, 9, 34, 205, 42, 4, 130, 217, 80, 52, 20, 9, 34, - 205, 42, 4, 99, 52, 20, 9, 34, 203, 105, 4, 130, 217, 80, 52, 20, 9, 34, - 203, 105, 4, 99, 52, 20, 9, 34, 179, 4, 130, 217, 80, 52, 20, 9, 34, 179, - 4, 99, 52, 20, 9, 34, 222, 235, 4, 130, 217, 80, 52, 20, 9, 34, 222, 235, - 4, 99, 52, 20, 9, 34, 221, 186, 4, 130, 217, 80, 52, 20, 9, 34, 221, 186, - 4, 99, 52, 20, 9, 34, 205, 188, 4, 130, 217, 80, 52, 20, 9, 34, 205, 188, - 4, 99, 52, 20, 9, 34, 237, 236, 4, 130, 217, 80, 52, 20, 9, 34, 237, 236, - 4, 99, 52, 20, 9, 34, 203, 105, 4, 222, 235, 52, 20, 9, 34, 203, 105, 4, - 179, 52, 20, 9, 34, 203, 105, 4, 221, 186, 52, 20, 9, 34, 203, 105, 4, - 92, 52, 20, 9, 34, 203, 105, 4, 207, 67, 52, 20, 9, 34, 205, 42, 4, 207, - 67, 52, 20, 9, 34, 205, 188, 4, 207, 67, 52, 20, 9, 34, 237, 236, 4, 207, - 67, 52, 20, 9, 34, 203, 105, 4, 222, 235, 89, 20, 9, 34, 203, 105, 4, - 179, 89, 20, 9, 34, 203, 105, 4, 221, 186, 89, 20, 9, 34, 203, 105, 4, - 92, 89, 20, 9, 34, 205, 42, 4, 229, 179, 89, 20, 9, 34, 203, 105, 4, 229, - 179, 89, 20, 9, 34, 199, 215, 4, 92, 89, 20, 9, 34, 205, 42, 4, 222, 235, - 216, 198, 20, 9, 34, 205, 42, 4, 179, 216, 198, 20, 9, 34, 205, 42, 4, - 221, 186, 216, 198, 20, 9, 34, 203, 105, 4, 222, 235, 216, 198, 20, 9, - 34, 203, 105, 4, 179, 216, 198, 20, 9, 34, 203, 105, 4, 221, 186, 216, - 198, 20, 9, 34, 199, 215, 4, 92, 216, 198, 20, 9, 34, 191, 117, 4, 92, - 216, 198, 20, 9, 34, 130, 4, 233, 28, 52, 20, 9, 34, 130, 4, 233, 28, 76, - 20, 211, 30, 45, 210, 103, 211, 30, 50, 210, 103, 9, 34, 207, 154, 251, - 122, 9, 34, 207, 162, 251, 121, 251, 56, 9, 34, 207, 162, 251, 121, 251, - 55, 9, 34, 207, 162, 251, 121, 251, 53, 9, 34, 207, 162, 251, 121, 251, - 52, 9, 34, 207, 162, 251, 121, 251, 51, 9, 34, 205, 157, 251, 146, 193, - 181, 9, 34, 251, 146, 250, 167, 9, 34, 251, 145, 250, 167, 9, 34, 251, - 144, 250, 167, 9, 34, 251, 146, 250, 166, 193, 152, 9, 34, 208, 12, 202, - 135, 9, 34, 205, 155, 251, 146, 193, 177, 193, 180, 9, 34, 251, 149, 250, - 167, 9, 34, 199, 230, 193, 179, 9, 34, 207, 153, 251, 122, 9, 34, 199, - 110, 4, 222, 235, 4, 92, 89, 20, 9, 34, 199, 110, 4, 179, 4, 222, 235, - 52, 20, 9, 34, 199, 110, 4, 179, 4, 222, 235, 89, 20, 9, 34, 199, 110, 4, - 179, 4, 92, 89, 20, 9, 34, 199, 110, 4, 221, 186, 4, 92, 89, 20, 9, 34, - 199, 110, 4, 92, 4, 222, 235, 89, 20, 9, 34, 199, 110, 4, 92, 4, 179, 89, - 20, 9, 34, 199, 110, 4, 92, 4, 221, 186, 89, 20, 9, 34, 222, 235, 4, 92, - 4, 179, 52, 20, 9, 34, 222, 235, 4, 92, 4, 179, 89, 20, 9, 34, 179, 4, - 92, 4, 99, 52, 20, 9, 34, 179, 4, 92, 4, 130, 217, 80, 52, 20, 9, 34, - 205, 42, 4, 179, 4, 222, 235, 89, 20, 9, 34, 205, 42, 4, 222, 235, 4, - 179, 89, 20, 9, 34, 205, 42, 4, 222, 235, 4, 130, 217, 80, 52, 20, 9, 34, - 205, 42, 4, 92, 4, 179, 52, 20, 9, 34, 205, 42, 4, 92, 4, 179, 89, 20, 9, - 34, 205, 42, 4, 92, 4, 222, 235, 89, 20, 9, 34, 205, 42, 4, 92, 4, 92, - 52, 20, 9, 34, 205, 42, 4, 92, 4, 92, 89, 20, 9, 34, 205, 188, 4, 179, 4, - 179, 52, 20, 9, 34, 205, 188, 4, 179, 4, 179, 89, 20, 9, 34, 205, 188, 4, - 92, 4, 92, 52, 20, 9, 34, 203, 105, 4, 179, 4, 92, 52, 20, 9, 34, 203, - 105, 4, 179, 4, 92, 89, 20, 9, 34, 203, 105, 4, 222, 235, 4, 99, 52, 20, - 9, 34, 203, 105, 4, 92, 4, 221, 186, 52, 20, 9, 34, 203, 105, 4, 92, 4, - 221, 186, 89, 20, 9, 34, 203, 105, 4, 92, 4, 92, 52, 20, 9, 34, 203, 105, - 4, 92, 4, 92, 89, 20, 9, 34, 237, 236, 4, 179, 4, 130, 217, 80, 52, 20, - 9, 34, 237, 236, 4, 221, 186, 4, 92, 52, 20, 9, 34, 237, 236, 4, 221, - 186, 4, 92, 89, 20, 9, 34, 199, 215, 4, 92, 4, 179, 52, 20, 9, 34, 199, - 215, 4, 92, 4, 179, 89, 20, 9, 34, 199, 215, 4, 92, 4, 92, 89, 20, 9, 34, - 199, 215, 4, 92, 4, 99, 52, 20, 9, 34, 251, 179, 4, 222, 235, 4, 92, 52, - 20, 9, 34, 251, 179, 4, 92, 4, 92, 52, 20, 9, 34, 251, 179, 4, 92, 4, 92, - 89, 20, 9, 34, 251, 179, 4, 92, 4, 130, 217, 80, 52, 20, 9, 34, 231, 50, - 4, 92, 4, 92, 52, 20, 9, 34, 231, 50, 4, 92, 4, 99, 52, 20, 9, 34, 231, - 50, 4, 92, 4, 130, 217, 80, 52, 20, 9, 34, 233, 6, 4, 221, 186, 4, 92, - 52, 20, 9, 34, 233, 6, 4, 221, 186, 4, 92, 89, 20, 9, 34, 208, 83, 4, 92, - 4, 179, 52, 20, 9, 34, 208, 83, 4, 92, 4, 92, 52, 20, 9, 34, 220, 12, 4, - 179, 4, 92, 52, 20, 9, 34, 220, 12, 4, 179, 4, 99, 52, 20, 9, 34, 220, - 12, 4, 179, 4, 130, 217, 80, 52, 20, 9, 34, 220, 12, 4, 222, 235, 4, 222, - 235, 89, 20, 9, 34, 220, 12, 4, 222, 235, 4, 222, 235, 52, 20, 9, 34, - 220, 12, 4, 221, 186, 4, 92, 52, 20, 9, 34, 220, 12, 4, 221, 186, 4, 92, - 89, 20, 9, 34, 220, 12, 4, 92, 4, 179, 52, 20, 9, 34, 220, 12, 4, 92, 4, - 179, 89, 20, 9, 34, 92, 4, 179, 4, 222, 235, 89, 20, 9, 34, 92, 4, 179, - 4, 92, 89, 20, 9, 34, 92, 4, 179, 4, 99, 52, 20, 9, 34, 92, 4, 222, 235, - 4, 179, 89, 20, 9, 34, 92, 4, 222, 235, 4, 92, 89, 20, 9, 34, 92, 4, 221, - 186, 4, 222, 235, 89, 20, 9, 34, 92, 4, 221, 186, 4, 92, 89, 20, 9, 34, - 92, 4, 222, 235, 4, 221, 186, 89, 20, 9, 34, 229, 179, 4, 92, 4, 222, - 235, 89, 20, 9, 34, 229, 179, 4, 92, 4, 92, 89, 20, 9, 34, 213, 12, 4, - 179, 4, 92, 89, 20, 9, 34, 213, 12, 4, 179, 4, 130, 217, 80, 52, 20, 9, - 34, 213, 12, 4, 222, 235, 4, 92, 52, 20, 9, 34, 213, 12, 4, 222, 235, 4, - 92, 89, 20, 9, 34, 213, 12, 4, 222, 235, 4, 130, 217, 80, 52, 20, 9, 34, - 213, 12, 4, 92, 4, 99, 52, 20, 9, 34, 213, 12, 4, 92, 4, 130, 217, 80, - 52, 20, 9, 34, 99, 4, 92, 4, 92, 52, 20, 9, 34, 99, 4, 92, 4, 92, 89, 20, - 9, 34, 248, 196, 4, 221, 186, 4, 99, 52, 20, 9, 34, 199, 110, 4, 222, - 235, 4, 99, 52, 20, 9, 34, 199, 110, 4, 222, 235, 4, 130, 217, 80, 52, - 20, 9, 34, 199, 110, 4, 221, 186, 4, 99, 52, 20, 9, 34, 199, 110, 4, 221, - 186, 4, 130, 217, 80, 52, 20, 9, 34, 199, 110, 4, 92, 4, 99, 52, 20, 9, - 34, 199, 110, 4, 92, 4, 130, 217, 80, 52, 20, 9, 34, 222, 235, 4, 92, 4, - 99, 52, 20, 9, 34, 222, 235, 4, 179, 4, 130, 217, 80, 52, 20, 9, 34, 222, - 235, 4, 92, 4, 130, 217, 80, 52, 20, 9, 34, 205, 42, 4, 221, 186, 4, 130, - 217, 80, 52, 20, 9, 34, 205, 188, 4, 179, 4, 99, 52, 20, 9, 34, 203, 105, - 4, 179, 4, 99, 52, 20, 9, 34, 237, 236, 4, 179, 4, 99, 52, 20, 9, 34, - 220, 12, 4, 222, 235, 4, 99, 52, 20, 9, 34, 220, 12, 4, 92, 4, 99, 52, - 20, 9, 34, 99, 4, 179, 4, 99, 52, 20, 9, 34, 99, 4, 222, 235, 4, 99, 52, - 20, 9, 34, 99, 4, 92, 4, 99, 52, 20, 9, 34, 92, 4, 92, 4, 99, 52, 20, 9, - 34, 208, 83, 4, 92, 4, 99, 52, 20, 9, 34, 213, 12, 4, 179, 4, 99, 52, 20, - 9, 34, 208, 83, 4, 92, 4, 179, 89, 20, 9, 34, 220, 12, 4, 179, 4, 92, 89, - 20, 9, 34, 251, 179, 4, 92, 4, 99, 52, 20, 9, 34, 222, 80, 4, 92, 4, 99, - 52, 20, 9, 34, 213, 12, 4, 222, 235, 4, 179, 89, 20, 9, 34, 92, 4, 221, - 186, 4, 99, 52, 20, 9, 34, 220, 12, 4, 222, 235, 4, 92, 89, 20, 9, 34, - 222, 80, 4, 92, 4, 92, 52, 20, 9, 34, 220, 12, 4, 222, 235, 4, 92, 52, - 20, 9, 34, 213, 12, 4, 222, 235, 4, 179, 52, 20, 9, 34, 222, 235, 4, 179, - 4, 99, 52, 20, 9, 34, 179, 4, 222, 235, 4, 99, 52, 20, 9, 34, 92, 4, 222, - 235, 4, 99, 52, 20, 9, 34, 233, 6, 4, 92, 4, 99, 52, 20, 9, 34, 248, 196, - 4, 179, 4, 99, 52, 20, 9, 34, 222, 80, 4, 92, 4, 92, 89, 20, 9, 34, 251, - 179, 4, 222, 235, 4, 92, 89, 20, 9, 34, 205, 188, 4, 92, 4, 92, 89, 20, - 9, 34, 205, 42, 4, 221, 186, 4, 99, 52, 20, 9, 34, 213, 12, 4, 222, 235, - 4, 99, 52, 20, 9, 34, 205, 161, 251, 143, 9, 34, 205, 158, 196, 36, 250, - 170, 221, 9, 201, 59, 3, 76, 20, 9, 34, 208, 79, 196, 36, 250, 170, 221, - 9, 201, 59, 3, 76, 20, 9, 34, 251, 120, 76, 20, 9, 34, 251, 162, 76, 20, - 9, 34, 215, 218, 76, 20, 9, 34, 205, 159, 76, 20, 9, 34, 207, 127, 76, - 20, 9, 34, 251, 148, 76, 20, 9, 34, 193, 151, 76, 20, 9, 34, 205, 158, - 76, 20, 9, 34, 205, 156, 251, 148, 193, 150, 9, 34, 222, 250, 206, 244, - 57, 9, 34, 248, 103, 250, 237, 250, 238, 9, 34, 200, 237, 193, 188, 199, - 239, 9, 34, 250, 71, 193, 188, 222, 251, 66, 205, 28, 66, 204, 173, 66, - 204, 105, 66, 204, 94, 66, 204, 83, 66, 204, 72, 66, 204, 61, 66, 204, - 50, 66, 204, 39, 66, 205, 27, 66, 205, 16, 66, 205, 5, 66, 204, 250, 66, - 204, 239, 66, 204, 228, 66, 204, 217, 208, 214, 232, 107, 39, 81, 242, - 26, 208, 214, 232, 107, 39, 81, 154, 242, 26, 208, 214, 232, 107, 39, 81, - 154, 232, 42, 201, 58, 208, 214, 232, 107, 39, 81, 242, 35, 208, 214, - 232, 107, 39, 81, 204, 20, 208, 214, 232, 107, 39, 81, 233, 175, 77, 208, - 214, 232, 107, 39, 81, 208, 8, 77, 208, 214, 232, 107, 39, 81, 45, 64, - 219, 163, 248, 5, 208, 214, 232, 107, 39, 81, 50, 64, 219, 163, 248, 1, - 208, 214, 232, 107, 39, 81, 228, 209, 234, 78, 33, 34, 45, 230, 37, 33, - 34, 50, 230, 37, 33, 54, 198, 148, 45, 230, 37, 33, 54, 198, 148, 50, - 230, 37, 33, 217, 126, 45, 230, 37, 33, 217, 126, 50, 230, 37, 33, 238, - 253, 217, 125, 33, 34, 45, 134, 60, 33, 34, 50, 134, 60, 33, 198, 148, - 45, 134, 60, 33, 198, 148, 50, 134, 60, 33, 217, 126, 45, 134, 60, 33, - 217, 126, 50, 134, 60, 33, 238, 253, 217, 126, 60, 33, 42, 198, 118, 45, - 230, 37, 33, 42, 198, 118, 50, 230, 37, 208, 214, 232, 107, 39, 81, 103, - 75, 219, 212, 208, 214, 232, 107, 39, 81, 234, 73, 237, 170, 208, 214, - 232, 107, 39, 81, 234, 62, 237, 170, 208, 214, 232, 107, 39, 81, 131, - 219, 88, 208, 214, 232, 107, 39, 81, 193, 133, 131, 219, 88, 208, 214, - 232, 107, 39, 81, 45, 210, 103, 208, 214, 232, 107, 39, 81, 50, 210, 103, - 208, 214, 232, 107, 39, 81, 45, 238, 124, 248, 5, 208, 214, 232, 107, 39, - 81, 50, 238, 124, 248, 5, 208, 214, 232, 107, 39, 81, 45, 198, 37, 203, - 98, 248, 5, 208, 214, 232, 107, 39, 81, 50, 198, 37, 203, 98, 248, 5, - 208, 214, 232, 107, 39, 81, 45, 62, 219, 163, 248, 5, 208, 214, 232, 107, - 39, 81, 50, 62, 219, 163, 248, 5, 208, 214, 232, 107, 39, 81, 45, 54, - 251, 65, 248, 5, 208, 214, 232, 107, 39, 81, 50, 54, 251, 65, 248, 5, - 208, 214, 232, 107, 39, 81, 45, 251, 65, 248, 5, 208, 214, 232, 107, 39, - 81, 50, 251, 65, 248, 5, 208, 214, 232, 107, 39, 81, 45, 238, 211, 248, - 5, 208, 214, 232, 107, 39, 81, 50, 238, 211, 248, 5, 208, 214, 232, 107, - 39, 81, 45, 64, 238, 211, 248, 5, 208, 214, 232, 107, 39, 81, 50, 64, - 238, 211, 248, 5, 203, 251, 236, 96, 64, 203, 251, 236, 96, 208, 214, - 232, 107, 39, 81, 45, 51, 248, 5, 208, 214, 232, 107, 39, 81, 50, 51, - 248, 5, 237, 169, 210, 244, 246, 226, 210, 244, 193, 133, 210, 244, 54, - 193, 133, 210, 244, 237, 169, 131, 219, 88, 246, 226, 131, 219, 88, 193, - 133, 131, 219, 88, 2, 242, 26, 2, 154, 242, 26, 2, 232, 42, 201, 58, 2, - 204, 20, 2, 242, 35, 2, 208, 8, 77, 2, 233, 175, 77, 2, 234, 73, 237, - 170, 2, 45, 210, 103, 2, 50, 210, 103, 2, 45, 238, 124, 248, 5, 2, 50, - 238, 124, 248, 5, 2, 45, 198, 37, 203, 98, 248, 5, 2, 50, 198, 37, 203, - 98, 248, 5, 2, 31, 57, 2, 251, 86, 2, 250, 143, 2, 107, 57, 2, 228, 57, - 2, 219, 156, 57, 2, 230, 170, 57, 2, 234, 1, 57, 2, 207, 14, 202, 18, 2, - 236, 110, 57, 2, 210, 4, 57, 2, 242, 24, 250, 132, 9, 233, 28, 76, 20, 9, - 199, 164, 4, 233, 28, 56, 9, 237, 199, 76, 20, 9, 199, 211, 232, 79, 9, - 222, 25, 76, 20, 9, 233, 30, 76, 20, 9, 233, 30, 216, 198, 20, 9, 237, - 201, 76, 20, 9, 237, 201, 216, 198, 20, 9, 222, 27, 76, 20, 9, 222, 27, - 216, 198, 20, 9, 203, 151, 76, 20, 9, 203, 151, 216, 198, 20, 9, 200, - 202, 76, 20, 9, 200, 202, 216, 198, 20, 9, 1, 230, 25, 76, 20, 9, 1, 130, - 4, 217, 121, 95, 76, 20, 9, 1, 130, 4, 217, 121, 95, 52, 20, 9, 1, 130, - 4, 230, 25, 95, 76, 20, 9, 1, 130, 4, 230, 25, 95, 52, 20, 9, 1, 193, - 132, 4, 230, 25, 95, 76, 20, 9, 1, 193, 132, 4, 230, 25, 95, 52, 20, 9, - 1, 130, 4, 230, 25, 248, 183, 76, 20, 9, 1, 130, 4, 230, 25, 248, 183, - 52, 20, 9, 1, 99, 4, 230, 25, 95, 76, 20, 9, 1, 99, 4, 230, 25, 95, 52, - 20, 9, 1, 99, 4, 230, 25, 95, 89, 20, 9, 1, 99, 4, 230, 25, 95, 216, 198, - 20, 9, 1, 130, 76, 20, 9, 1, 130, 52, 20, 9, 1, 248, 196, 76, 20, 9, 1, - 248, 196, 52, 20, 9, 1, 248, 196, 89, 20, 9, 1, 248, 196, 216, 198, 20, - 9, 1, 199, 110, 217, 44, 76, 20, 9, 1, 199, 110, 217, 44, 52, 20, 9, 1, - 199, 110, 76, 20, 9, 1, 199, 110, 52, 20, 9, 1, 199, 110, 89, 20, 9, 1, - 199, 110, 216, 198, 20, 9, 1, 199, 25, 76, 20, 9, 1, 199, 25, 52, 20, 9, - 1, 199, 25, 89, 20, 9, 1, 199, 25, 216, 198, 20, 9, 1, 222, 235, 76, 20, - 9, 1, 222, 235, 52, 20, 9, 1, 222, 235, 89, 20, 9, 1, 222, 235, 216, 198, - 20, 9, 1, 179, 76, 20, 9, 1, 179, 52, 20, 9, 1, 179, 89, 20, 9, 1, 179, - 216, 198, 20, 9, 1, 221, 186, 76, 20, 9, 1, 221, 186, 52, 20, 9, 1, 221, - 186, 89, 20, 9, 1, 221, 186, 216, 198, 20, 9, 1, 237, 213, 76, 20, 9, 1, - 237, 213, 52, 20, 9, 1, 199, 37, 76, 20, 9, 1, 199, 37, 52, 20, 9, 1, - 207, 67, 76, 20, 9, 1, 207, 67, 52, 20, 9, 1, 191, 114, 76, 20, 9, 1, - 191, 114, 52, 20, 9, 1, 205, 42, 76, 20, 9, 1, 205, 42, 52, 20, 9, 1, - 205, 42, 89, 20, 9, 1, 205, 42, 216, 198, 20, 9, 1, 203, 105, 76, 20, 9, - 1, 203, 105, 52, 20, 9, 1, 203, 105, 89, 20, 9, 1, 203, 105, 216, 198, - 20, 9, 1, 205, 188, 76, 20, 9, 1, 205, 188, 52, 20, 9, 1, 205, 188, 89, - 20, 9, 1, 205, 188, 216, 198, 20, 9, 1, 237, 236, 76, 20, 9, 1, 237, 236, - 52, 20, 9, 1, 237, 236, 89, 20, 9, 1, 237, 236, 216, 198, 20, 9, 1, 199, - 215, 76, 20, 9, 1, 199, 215, 52, 20, 9, 1, 199, 215, 89, 20, 9, 1, 199, - 215, 216, 198, 20, 9, 1, 191, 117, 76, 20, 9, 1, 191, 117, 52, 20, 9, 1, - 191, 117, 89, 20, 9, 1, 191, 117, 216, 198, 20, 9, 1, 251, 179, 76, 20, - 9, 1, 251, 179, 52, 20, 9, 1, 251, 179, 89, 20, 9, 1, 251, 179, 216, 198, - 20, 9, 1, 231, 50, 76, 20, 9, 1, 231, 50, 52, 20, 9, 1, 231, 50, 89, 20, - 9, 1, 231, 50, 216, 198, 20, 9, 1, 233, 6, 76, 20, 9, 1, 233, 6, 52, 20, - 9, 1, 233, 6, 89, 20, 9, 1, 233, 6, 216, 198, 20, 9, 1, 208, 83, 76, 20, - 9, 1, 208, 83, 52, 20, 9, 1, 208, 83, 89, 20, 9, 1, 208, 83, 216, 198, - 20, 9, 1, 222, 80, 76, 20, 9, 1, 222, 80, 52, 20, 9, 1, 222, 80, 89, 20, - 9, 1, 222, 80, 216, 198, 20, 9, 1, 220, 12, 76, 20, 9, 1, 220, 12, 52, - 20, 9, 1, 220, 12, 89, 20, 9, 1, 220, 12, 216, 198, 20, 9, 1, 92, 76, 20, - 9, 1, 92, 52, 20, 9, 1, 92, 89, 20, 9, 1, 92, 216, 198, 20, 9, 1, 213, - 12, 76, 20, 9, 1, 213, 12, 52, 20, 9, 1, 213, 12, 89, 20, 9, 1, 213, 12, - 216, 198, 20, 9, 1, 229, 179, 76, 20, 9, 1, 229, 179, 52, 20, 9, 1, 229, - 179, 89, 20, 9, 1, 229, 179, 216, 198, 20, 9, 1, 193, 132, 76, 20, 9, 1, - 193, 132, 52, 20, 9, 1, 130, 217, 80, 76, 20, 9, 1, 130, 217, 80, 52, 20, - 9, 1, 99, 76, 20, 9, 1, 99, 52, 20, 9, 1, 99, 89, 20, 9, 1, 99, 216, 198, - 20, 9, 34, 220, 12, 4, 130, 4, 217, 121, 95, 76, 20, 9, 34, 220, 12, 4, - 130, 4, 217, 121, 95, 52, 20, 9, 34, 220, 12, 4, 130, 4, 230, 25, 95, 76, - 20, 9, 34, 220, 12, 4, 130, 4, 230, 25, 95, 52, 20, 9, 34, 220, 12, 4, - 130, 4, 230, 25, 248, 183, 76, 20, 9, 34, 220, 12, 4, 130, 4, 230, 25, - 248, 183, 52, 20, 9, 34, 220, 12, 4, 130, 76, 20, 9, 34, 220, 12, 4, 130, - 52, 20, 191, 78, 193, 73, 213, 24, 201, 242, 190, 190, 233, 175, 77, 190, - 190, 207, 247, 77, 190, 190, 31, 57, 190, 190, 236, 110, 57, 190, 190, - 210, 4, 57, 190, 190, 251, 86, 190, 190, 250, 255, 190, 190, 45, 210, - 103, 190, 190, 50, 210, 103, 190, 190, 250, 143, 190, 190, 107, 57, 190, - 190, 242, 26, 190, 190, 228, 57, 190, 190, 232, 42, 201, 58, 190, 190, - 202, 18, 190, 190, 17, 191, 77, 190, 190, 17, 108, 190, 190, 17, 109, - 190, 190, 17, 139, 190, 190, 17, 137, 190, 190, 17, 153, 190, 190, 17, - 173, 190, 190, 17, 181, 190, 190, 17, 176, 190, 190, 17, 184, 190, 190, - 242, 35, 190, 190, 204, 20, 190, 190, 219, 156, 57, 190, 190, 234, 1, 57, - 190, 190, 230, 170, 57, 190, 190, 208, 8, 77, 190, 190, 242, 24, 250, - 132, 190, 190, 8, 6, 1, 65, 190, 190, 8, 6, 1, 250, 70, 190, 190, 8, 6, - 1, 247, 145, 190, 190, 8, 6, 1, 238, 80, 190, 190, 8, 6, 1, 73, 190, 190, - 8, 6, 1, 233, 134, 190, 190, 8, 6, 1, 232, 14, 190, 190, 8, 6, 1, 230, - 83, 190, 190, 8, 6, 1, 70, 190, 190, 8, 6, 1, 223, 7, 190, 190, 8, 6, 1, - 222, 125, 190, 190, 8, 6, 1, 170, 190, 190, 8, 6, 1, 218, 147, 190, 190, - 8, 6, 1, 215, 47, 190, 190, 8, 6, 1, 74, 190, 190, 8, 6, 1, 210, 226, - 190, 190, 8, 6, 1, 208, 97, 190, 190, 8, 6, 1, 148, 190, 190, 8, 6, 1, - 206, 3, 190, 190, 8, 6, 1, 200, 39, 190, 190, 8, 6, 1, 69, 190, 190, 8, - 6, 1, 196, 8, 190, 190, 8, 6, 1, 193, 221, 190, 190, 8, 6, 1, 192, 235, - 190, 190, 8, 6, 1, 192, 159, 190, 190, 8, 6, 1, 191, 166, 190, 190, 45, - 51, 248, 5, 190, 190, 207, 14, 202, 18, 190, 190, 50, 51, 248, 5, 190, - 190, 242, 210, 252, 8, 190, 190, 131, 219, 88, 190, 190, 230, 177, 252, - 8, 190, 190, 8, 2, 1, 65, 190, 190, 8, 2, 1, 250, 70, 190, 190, 8, 2, 1, - 247, 145, 190, 190, 8, 2, 1, 238, 80, 190, 190, 8, 2, 1, 73, 190, 190, 8, - 2, 1, 233, 134, 190, 190, 8, 2, 1, 232, 14, 190, 190, 8, 2, 1, 230, 83, - 190, 190, 8, 2, 1, 70, 190, 190, 8, 2, 1, 223, 7, 190, 190, 8, 2, 1, 222, - 125, 190, 190, 8, 2, 1, 170, 190, 190, 8, 2, 1, 218, 147, 190, 190, 8, 2, - 1, 215, 47, 190, 190, 8, 2, 1, 74, 190, 190, 8, 2, 1, 210, 226, 190, 190, - 8, 2, 1, 208, 97, 190, 190, 8, 2, 1, 148, 190, 190, 8, 2, 1, 206, 3, 190, - 190, 8, 2, 1, 200, 39, 190, 190, 8, 2, 1, 69, 190, 190, 8, 2, 1, 196, 8, - 190, 190, 8, 2, 1, 193, 221, 190, 190, 8, 2, 1, 192, 235, 190, 190, 8, 2, - 1, 192, 159, 190, 190, 8, 2, 1, 191, 166, 190, 190, 45, 238, 124, 248, 5, - 190, 190, 81, 219, 88, 190, 190, 50, 238, 124, 248, 5, 190, 190, 198, - 147, 190, 190, 45, 64, 210, 103, 190, 190, 50, 64, 210, 103, 149, 154, - 232, 42, 201, 58, 149, 45, 238, 211, 248, 5, 149, 50, 238, 211, 248, 5, - 149, 154, 242, 26, 149, 71, 82, 236, 96, 149, 71, 1, 193, 48, 149, 71, 1, - 2, 65, 149, 71, 1, 2, 70, 149, 71, 1, 2, 69, 149, 71, 1, 2, 73, 149, 71, - 1, 2, 74, 149, 71, 1, 2, 169, 149, 71, 1, 2, 191, 225, 149, 71, 1, 2, - 192, 12, 149, 71, 1, 2, 197, 90, 149, 222, 22, 208, 184, 202, 0, 77, 149, - 71, 1, 65, 149, 71, 1, 70, 149, 71, 1, 69, 149, 71, 1, 73, 149, 71, 1, - 74, 149, 71, 1, 157, 149, 71, 1, 221, 142, 149, 71, 1, 220, 208, 149, 71, - 1, 221, 253, 149, 71, 1, 221, 43, 149, 71, 1, 189, 149, 71, 1, 202, 217, - 149, 71, 1, 200, 255, 149, 71, 1, 205, 63, 149, 71, 1, 202, 41, 149, 71, - 1, 199, 247, 149, 71, 1, 198, 188, 149, 71, 1, 197, 90, 149, 71, 1, 199, - 140, 149, 71, 1, 159, 149, 71, 1, 180, 149, 71, 1, 213, 205, 149, 71, 1, - 212, 165, 149, 71, 1, 214, 107, 149, 71, 1, 213, 30, 149, 71, 1, 144, - 149, 71, 1, 229, 126, 149, 71, 1, 228, 128, 149, 71, 1, 229, 213, 149, - 71, 1, 228, 247, 149, 71, 1, 172, 149, 71, 1, 216, 81, 149, 71, 1, 215, - 139, 149, 71, 1, 216, 213, 149, 71, 1, 215, 251, 149, 71, 1, 169, 149, - 71, 1, 191, 225, 149, 71, 1, 192, 12, 149, 71, 1, 166, 149, 71, 1, 206, - 252, 149, 71, 1, 206, 63, 149, 71, 1, 207, 108, 149, 71, 1, 206, 157, - 149, 71, 1, 193, 187, 149, 71, 1, 215, 47, 149, 71, 195, 17, 202, 0, 77, - 149, 71, 204, 25, 202, 0, 77, 149, 30, 232, 218, 149, 30, 1, 221, 89, - 149, 30, 1, 201, 162, 149, 30, 1, 221, 82, 149, 30, 1, 213, 190, 149, 30, - 1, 213, 188, 149, 30, 1, 213, 187, 149, 30, 1, 198, 163, 149, 30, 1, 201, - 151, 149, 30, 1, 206, 234, 149, 30, 1, 206, 229, 149, 30, 1, 206, 226, - 149, 30, 1, 206, 219, 149, 30, 1, 206, 214, 149, 30, 1, 206, 209, 149, - 30, 1, 206, 220, 149, 30, 1, 206, 232, 149, 30, 1, 216, 59, 149, 30, 1, - 209, 160, 149, 30, 1, 201, 159, 149, 30, 1, 209, 149, 149, 30, 1, 202, - 155, 149, 30, 1, 201, 156, 149, 30, 1, 223, 193, 149, 30, 1, 242, 232, - 149, 30, 1, 201, 166, 149, 30, 1, 243, 43, 149, 30, 1, 221, 164, 149, 30, - 1, 199, 2, 149, 30, 1, 209, 200, 149, 30, 1, 229, 110, 149, 30, 1, 65, - 149, 30, 1, 251, 229, 149, 30, 1, 169, 149, 30, 1, 192, 129, 149, 30, 1, - 234, 23, 149, 30, 1, 73, 149, 30, 1, 192, 67, 149, 30, 1, 192, 80, 149, - 30, 1, 74, 149, 30, 1, 193, 187, 149, 30, 1, 193, 173, 149, 30, 1, 211, - 139, 149, 30, 1, 192, 12, 149, 30, 1, 69, 149, 30, 1, 193, 105, 149, 30, - 1, 193, 123, 149, 30, 1, 193, 84, 149, 30, 1, 191, 225, 149, 30, 1, 233, - 201, 149, 30, 1, 192, 33, 149, 30, 1, 70, 190, 190, 246, 232, 57, 190, - 190, 209, 1, 57, 190, 190, 212, 255, 57, 190, 190, 217, 125, 190, 190, - 247, 230, 164, 190, 190, 192, 71, 57, 190, 190, 193, 31, 57, 149, 232, - 102, 155, 195, 132, 149, 117, 55, 149, 196, 62, 55, 149, 96, 55, 149, - 235, 75, 55, 149, 62, 201, 185, 149, 64, 242, 218, 223, 78, 251, 45, 251, - 76, 223, 78, 251, 45, 204, 5, 223, 78, 251, 45, 199, 75, 211, 162, 207, - 38, 246, 191, 207, 38, 246, 191, 32, 78, 5, 250, 54, 65, 32, 78, 5, 250, - 23, 73, 32, 78, 5, 250, 32, 70, 32, 78, 5, 250, 0, 74, 32, 78, 5, 250, - 50, 69, 32, 78, 5, 250, 69, 237, 241, 32, 78, 5, 250, 16, 237, 101, 32, - 78, 5, 250, 56, 236, 255, 32, 78, 5, 250, 46, 236, 129, 32, 78, 5, 250, - 10, 235, 45, 32, 78, 5, 250, 4, 223, 4, 32, 78, 5, 250, 15, 222, 238, 32, - 78, 5, 250, 25, 222, 174, 32, 78, 5, 249, 252, 222, 155, 32, 78, 5, 249, - 240, 157, 32, 78, 5, 250, 17, 221, 253, 32, 78, 5, 249, 250, 221, 142, - 32, 78, 5, 249, 247, 221, 43, 32, 78, 5, 249, 236, 220, 208, 32, 78, 5, - 249, 237, 172, 32, 78, 5, 250, 47, 216, 213, 32, 78, 5, 249, 244, 216, - 81, 32, 78, 5, 250, 45, 215, 251, 32, 78, 5, 250, 37, 215, 139, 32, 78, - 5, 250, 58, 180, 32, 78, 5, 250, 36, 214, 107, 32, 78, 5, 250, 30, 213, - 205, 32, 78, 5, 250, 9, 213, 30, 32, 78, 5, 250, 6, 212, 165, 32, 78, 5, - 250, 65, 168, 32, 78, 5, 249, 245, 210, 53, 32, 78, 5, 250, 22, 209, 176, - 32, 78, 5, 250, 49, 209, 65, 32, 78, 5, 250, 11, 208, 158, 32, 78, 5, - 250, 44, 208, 89, 32, 78, 5, 249, 239, 208, 69, 32, 78, 5, 250, 39, 208, - 51, 32, 78, 5, 250, 28, 208, 39, 32, 78, 5, 250, 1, 166, 32, 78, 5, 250, - 33, 207, 108, 32, 78, 5, 250, 8, 206, 252, 32, 78, 5, 250, 67, 206, 157, - 32, 78, 5, 250, 34, 206, 63, 32, 78, 5, 250, 29, 189, 32, 78, 5, 250, 52, - 205, 63, 32, 78, 5, 250, 20, 202, 217, 32, 78, 5, 250, 48, 202, 41, 32, - 78, 5, 250, 3, 200, 255, 32, 78, 5, 250, 2, 199, 247, 32, 78, 5, 250, 63, - 199, 140, 32, 78, 5, 250, 24, 198, 188, 32, 78, 5, 250, 61, 159, 32, 78, - 5, 249, 248, 197, 90, 32, 78, 5, 250, 7, 193, 187, 32, 78, 5, 249, 242, - 193, 123, 32, 78, 5, 250, 21, 193, 84, 32, 78, 5, 250, 19, 193, 48, 32, - 78, 5, 250, 43, 191, 123, 32, 78, 5, 249, 243, 191, 87, 32, 78, 5, 250, - 40, 191, 7, 32, 78, 5, 250, 35, 254, 163, 32, 78, 5, 250, 18, 254, 51, - 32, 78, 5, 249, 233, 250, 113, 32, 78, 5, 249, 246, 235, 1, 32, 78, 5, - 249, 229, 235, 0, 32, 78, 5, 250, 13, 212, 97, 32, 78, 5, 250, 31, 208, - 156, 32, 78, 5, 249, 255, 208, 160, 32, 78, 5, 249, 241, 207, 175, 32, - 78, 5, 250, 27, 207, 174, 32, 78, 5, 249, 249, 206, 150, 32, 78, 5, 249, - 251, 199, 241, 32, 78, 5, 249, 231, 197, 37, 32, 78, 5, 249, 228, 109, - 32, 78, 16, 250, 42, 32, 78, 16, 250, 41, 32, 78, 16, 250, 38, 32, 78, - 16, 250, 26, 32, 78, 16, 250, 14, 32, 78, 16, 250, 12, 32, 78, 16, 250, - 5, 32, 78, 16, 249, 254, 32, 78, 16, 249, 253, 32, 78, 16, 249, 238, 32, - 78, 16, 249, 235, 32, 78, 16, 249, 234, 32, 78, 16, 249, 232, 32, 78, 16, - 249, 230, 32, 78, 156, 249, 227, 217, 70, 32, 78, 156, 249, 226, 193, 35, - 32, 78, 156, 249, 225, 237, 83, 32, 78, 156, 249, 224, 233, 254, 32, 78, - 156, 249, 223, 217, 37, 32, 78, 156, 249, 222, 201, 105, 32, 78, 156, - 249, 221, 233, 182, 32, 78, 156, 249, 220, 207, 137, 32, 78, 156, 249, - 219, 203, 107, 32, 78, 156, 249, 218, 229, 205, 32, 78, 156, 249, 217, - 201, 250, 32, 78, 156, 249, 216, 248, 61, 32, 78, 156, 249, 215, 238, - 192, 32, 78, 156, 249, 214, 247, 202, 32, 78, 156, 249, 213, 193, 93, 32, - 78, 156, 249, 212, 249, 34, 32, 78, 156, 249, 211, 211, 104, 32, 78, 156, - 249, 210, 201, 218, 32, 78, 156, 249, 209, 238, 89, 32, 78, 215, 204, - 249, 208, 222, 48, 32, 78, 215, 204, 249, 207, 222, 59, 32, 78, 156, 249, - 206, 211, 119, 32, 78, 156, 249, 205, 193, 60, 32, 78, 156, 249, 204, 32, - 78, 215, 204, 249, 203, 250, 213, 32, 78, 215, 204, 249, 202, 216, 159, - 32, 78, 156, 249, 201, 247, 229, 32, 78, 156, 249, 200, 230, 214, 32, 78, - 156, 249, 199, 32, 78, 156, 249, 198, 193, 26, 32, 78, 156, 249, 197, 32, - 78, 156, 249, 196, 32, 78, 156, 249, 195, 228, 156, 32, 78, 156, 249, - 194, 32, 78, 156, 249, 193, 32, 78, 156, 249, 192, 32, 78, 215, 204, 249, - 190, 197, 52, 32, 78, 156, 249, 189, 32, 78, 156, 249, 188, 32, 78, 156, - 249, 187, 242, 165, 32, 78, 156, 249, 186, 32, 78, 156, 249, 185, 32, 78, - 156, 249, 184, 231, 159, 32, 78, 156, 249, 183, 250, 198, 32, 78, 156, - 249, 182, 32, 78, 156, 249, 181, 32, 78, 156, 249, 180, 32, 78, 156, 249, - 179, 32, 78, 156, 249, 178, 32, 78, 156, 249, 177, 32, 78, 156, 249, 176, - 32, 78, 156, 249, 175, 32, 78, 156, 249, 174, 32, 78, 156, 249, 173, 215, - 196, 32, 78, 156, 249, 172, 32, 78, 156, 249, 171, 197, 250, 32, 78, 156, - 249, 170, 32, 78, 156, 249, 169, 32, 78, 156, 249, 168, 32, 78, 156, 249, - 167, 32, 78, 156, 249, 166, 32, 78, 156, 249, 165, 32, 78, 156, 249, 164, - 32, 78, 156, 249, 163, 32, 78, 156, 249, 162, 32, 78, 156, 249, 161, 32, - 78, 156, 249, 160, 32, 78, 156, 249, 159, 229, 168, 32, 78, 156, 249, - 138, 232, 116, 32, 78, 156, 249, 135, 249, 9, 32, 78, 156, 249, 130, 201, - 227, 32, 78, 156, 249, 129, 55, 32, 78, 156, 249, 128, 32, 78, 156, 249, - 127, 200, 127, 32, 78, 156, 249, 126, 32, 78, 156, 249, 125, 32, 78, 156, - 249, 124, 193, 88, 243, 90, 32, 78, 156, 249, 123, 243, 90, 32, 78, 156, - 249, 122, 243, 91, 232, 75, 32, 78, 156, 249, 121, 193, 91, 32, 78, 156, - 249, 120, 32, 78, 156, 249, 119, 32, 78, 215, 204, 249, 118, 236, 190, - 32, 78, 156, 249, 117, 32, 78, 156, 249, 116, 32, 78, 156, 249, 114, 32, - 78, 156, 249, 113, 32, 78, 156, 249, 112, 32, 78, 156, 249, 111, 237, - 173, 32, 78, 156, 249, 110, 32, 78, 156, 249, 109, 32, 78, 156, 249, 108, - 32, 78, 156, 249, 107, 32, 78, 156, 249, 106, 32, 78, 156, 195, 79, 249, - 191, 32, 78, 156, 195, 79, 249, 158, 32, 78, 156, 195, 79, 249, 157, 32, - 78, 156, 195, 79, 249, 156, 32, 78, 156, 195, 79, 249, 155, 32, 78, 156, - 195, 79, 249, 154, 32, 78, 156, 195, 79, 249, 153, 32, 78, 156, 195, 79, - 249, 152, 32, 78, 156, 195, 79, 249, 151, 32, 78, 156, 195, 79, 249, 150, - 32, 78, 156, 195, 79, 249, 149, 32, 78, 156, 195, 79, 249, 148, 32, 78, - 156, 195, 79, 249, 147, 32, 78, 156, 195, 79, 249, 146, 32, 78, 156, 195, - 79, 249, 145, 32, 78, 156, 195, 79, 249, 144, 32, 78, 156, 195, 79, 249, - 143, 32, 78, 156, 195, 79, 249, 142, 32, 78, 156, 195, 79, 249, 141, 32, - 78, 156, 195, 79, 249, 140, 32, 78, 156, 195, 79, 249, 139, 32, 78, 156, - 195, 79, 249, 137, 32, 78, 156, 195, 79, 249, 136, 32, 78, 156, 195, 79, - 249, 134, 32, 78, 156, 195, 79, 249, 133, 32, 78, 156, 195, 79, 249, 132, - 32, 78, 156, 195, 79, 249, 131, 32, 78, 156, 195, 79, 249, 115, 32, 78, - 156, 195, 79, 249, 105, 251, 222, 193, 23, 204, 6, 219, 88, 251, 222, - 193, 23, 204, 6, 236, 96, 251, 222, 243, 78, 77, 251, 222, 31, 108, 251, - 222, 31, 109, 251, 222, 31, 139, 251, 222, 31, 137, 251, 222, 31, 153, - 251, 222, 31, 173, 251, 222, 31, 181, 251, 222, 31, 176, 251, 222, 31, - 184, 251, 222, 31, 199, 90, 251, 222, 31, 197, 28, 251, 222, 31, 198, - 244, 251, 222, 31, 232, 97, 251, 222, 31, 232, 230, 251, 222, 31, 202, - 115, 251, 222, 31, 203, 236, 251, 222, 31, 234, 110, 251, 222, 31, 213, - 156, 251, 222, 31, 91, 228, 109, 251, 222, 31, 103, 228, 109, 251, 222, - 31, 115, 228, 109, 251, 222, 31, 232, 90, 228, 109, 251, 222, 31, 232, - 185, 228, 109, 251, 222, 31, 202, 131, 228, 109, 251, 222, 31, 203, 242, - 228, 109, 251, 222, 31, 234, 121, 228, 109, 251, 222, 31, 213, 161, 228, - 109, 251, 222, 31, 91, 188, 251, 222, 31, 103, 188, 251, 222, 31, 115, - 188, 251, 222, 31, 232, 90, 188, 251, 222, 31, 232, 185, 188, 251, 222, - 31, 202, 131, 188, 251, 222, 31, 203, 242, 188, 251, 222, 31, 234, 121, - 188, 251, 222, 31, 213, 161, 188, 251, 222, 31, 199, 91, 188, 251, 222, - 31, 197, 29, 188, 251, 222, 31, 198, 245, 188, 251, 222, 31, 232, 98, - 188, 251, 222, 31, 232, 231, 188, 251, 222, 31, 202, 116, 188, 251, 222, - 31, 203, 237, 188, 251, 222, 31, 234, 111, 188, 251, 222, 31, 213, 157, - 188, 251, 222, 193, 108, 249, 25, 196, 86, 251, 222, 193, 108, 232, 197, - 200, 219, 251, 222, 193, 108, 205, 52, 200, 219, 251, 222, 193, 108, 198, - 252, 200, 219, 251, 222, 193, 108, 232, 83, 200, 219, 251, 222, 235, 48, - 216, 209, 232, 197, 200, 219, 251, 222, 219, 69, 216, 209, 232, 197, 200, - 219, 251, 222, 216, 209, 205, 52, 200, 219, 251, 222, 216, 209, 198, 252, - 200, 219, 35, 251, 254, 250, 115, 91, 208, 17, 35, 251, 254, 250, 115, - 91, 230, 37, 35, 251, 254, 250, 115, 91, 235, 71, 35, 251, 254, 250, 115, - 153, 35, 251, 254, 250, 115, 232, 230, 35, 251, 254, 250, 115, 232, 185, - 228, 109, 35, 251, 254, 250, 115, 232, 185, 188, 35, 251, 254, 250, 115, - 232, 231, 188, 35, 251, 254, 250, 115, 232, 185, 199, 198, 35, 251, 254, - 250, 115, 199, 91, 199, 198, 35, 251, 254, 250, 115, 232, 231, 199, 198, - 35, 251, 254, 250, 115, 91, 228, 110, 199, 198, 35, 251, 254, 250, 115, - 232, 185, 228, 110, 199, 198, 35, 251, 254, 250, 115, 91, 198, 225, 199, - 198, 35, 251, 254, 250, 115, 232, 185, 198, 225, 199, 198, 35, 251, 254, - 250, 115, 232, 185, 201, 89, 35, 251, 254, 250, 115, 199, 91, 201, 89, - 35, 251, 254, 250, 115, 232, 231, 201, 89, 35, 251, 254, 250, 115, 91, - 228, 110, 201, 89, 35, 251, 254, 250, 115, 232, 185, 228, 110, 201, 89, - 35, 251, 254, 250, 115, 91, 198, 225, 201, 89, 35, 251, 254, 250, 115, - 199, 91, 198, 225, 201, 89, 35, 251, 254, 250, 115, 232, 231, 198, 225, - 201, 89, 35, 251, 254, 250, 115, 199, 91, 215, 254, 35, 251, 254, 229, - 162, 91, 209, 84, 35, 251, 254, 199, 12, 108, 35, 251, 254, 229, 158, - 108, 35, 251, 254, 234, 9, 109, 35, 251, 254, 199, 12, 109, 35, 251, 254, - 238, 85, 103, 235, 70, 35, 251, 254, 234, 9, 103, 235, 70, 35, 251, 254, - 197, 212, 153, 35, 251, 254, 197, 212, 199, 90, 35, 251, 254, 197, 212, - 199, 91, 251, 106, 20, 35, 251, 254, 229, 158, 199, 90, 35, 251, 254, - 216, 148, 199, 90, 35, 251, 254, 199, 12, 199, 90, 35, 251, 254, 199, 12, - 198, 244, 35, 251, 254, 197, 212, 232, 230, 35, 251, 254, 197, 212, 232, - 231, 251, 106, 20, 35, 251, 254, 229, 158, 232, 230, 35, 251, 254, 199, - 12, 232, 230, 35, 251, 254, 199, 12, 91, 228, 109, 35, 251, 254, 199, 12, - 115, 228, 109, 35, 251, 254, 234, 9, 232, 185, 228, 109, 35, 251, 254, - 197, 212, 232, 185, 228, 109, 35, 251, 254, 199, 12, 232, 185, 228, 109, - 35, 251, 254, 247, 34, 232, 185, 228, 109, 35, 251, 254, 214, 185, 232, - 185, 228, 109, 35, 251, 254, 199, 12, 91, 188, 35, 251, 254, 199, 12, - 232, 185, 188, 35, 251, 254, 237, 64, 232, 185, 215, 254, 35, 251, 254, - 201, 42, 232, 231, 215, 254, 35, 91, 134, 57, 35, 91, 134, 3, 251, 106, - 20, 35, 103, 198, 249, 57, 35, 115, 208, 16, 57, 35, 192, 78, 57, 35, - 199, 199, 57, 35, 235, 72, 57, 35, 211, 157, 57, 35, 103, 211, 156, 57, - 35, 115, 211, 156, 57, 35, 232, 90, 211, 156, 57, 35, 232, 185, 211, 156, - 57, 35, 216, 142, 57, 35, 220, 127, 249, 25, 57, 35, 219, 61, 57, 35, - 211, 6, 57, 35, 192, 211, 57, 35, 250, 176, 57, 35, 250, 193, 57, 35, - 230, 186, 57, 35, 197, 167, 249, 25, 57, 35, 191, 78, 57, 35, 91, 208, - 18, 57, 35, 202, 157, 57, 35, 223, 115, 57, 213, 19, 57, 206, 131, 203, - 232, 57, 206, 131, 196, 102, 57, 206, 131, 204, 12, 57, 206, 131, 203, - 170, 57, 206, 131, 236, 205, 203, 170, 57, 206, 131, 202, 181, 57, 206, - 131, 237, 59, 57, 206, 131, 208, 0, 57, 206, 131, 203, 249, 57, 206, 131, - 235, 23, 57, 206, 131, 250, 170, 57, 206, 131, 246, 225, 57, 250, 161, - 113, 35, 16, 199, 162, 206, 254, 209, 214, 236, 182, 3, 210, 42, 209, - 214, 236, 182, 3, 209, 76, 229, 203, 209, 214, 236, 182, 3, 199, 165, - 229, 203, 209, 214, 236, 182, 3, 247, 57, 209, 214, 236, 182, 3, 243, 38, - 209, 214, 236, 182, 3, 193, 35, 209, 214, 236, 182, 3, 229, 168, 209, - 214, 236, 182, 3, 231, 151, 209, 214, 236, 182, 3, 198, 179, 209, 214, - 236, 182, 3, 55, 209, 214, 236, 182, 3, 248, 21, 209, 214, 236, 182, 3, - 203, 73, 209, 214, 236, 182, 3, 242, 158, 209, 214, 236, 182, 3, 217, 69, - 209, 214, 236, 182, 3, 217, 7, 209, 214, 236, 182, 3, 205, 103, 209, 214, - 236, 182, 3, 219, 117, 209, 214, 236, 182, 3, 248, 44, 209, 214, 236, - 182, 3, 247, 41, 209, 93, 209, 214, 236, 182, 3, 236, 111, 209, 214, 236, - 182, 3, 242, 32, 209, 214, 236, 182, 3, 202, 78, 209, 214, 236, 182, 3, - 242, 33, 209, 214, 236, 182, 3, 248, 204, 209, 214, 236, 182, 3, 203, 60, - 209, 214, 236, 182, 3, 228, 156, 209, 214, 236, 182, 3, 229, 116, 209, - 214, 236, 182, 3, 247, 197, 219, 188, 209, 214, 236, 182, 3, 247, 30, - 209, 214, 236, 182, 3, 207, 137, 209, 214, 236, 182, 3, 234, 170, 209, - 214, 236, 182, 3, 235, 80, 209, 214, 236, 182, 3, 197, 68, 209, 214, 236, - 182, 3, 248, 207, 209, 214, 236, 182, 3, 209, 94, 197, 250, 209, 214, - 236, 182, 3, 195, 44, 209, 214, 236, 182, 3, 210, 122, 209, 214, 236, - 182, 3, 206, 120, 209, 214, 236, 182, 3, 219, 101, 209, 214, 236, 182, 3, - 210, 238, 249, 96, 209, 214, 236, 182, 3, 232, 142, 209, 214, 236, 182, - 3, 230, 178, 209, 214, 236, 182, 3, 201, 45, 209, 214, 236, 182, 3, 2, - 250, 82, 209, 214, 236, 182, 3, 193, 133, 249, 47, 209, 214, 236, 182, 3, - 33, 211, 159, 105, 218, 160, 1, 65, 218, 160, 1, 73, 218, 160, 1, 250, - 70, 218, 160, 1, 248, 154, 218, 160, 1, 232, 14, 218, 160, 1, 238, 80, - 218, 160, 1, 70, 218, 160, 1, 193, 221, 218, 160, 1, 191, 166, 218, 160, - 1, 199, 46, 218, 160, 1, 223, 7, 218, 160, 1, 222, 125, 218, 160, 1, 208, - 97, 218, 160, 1, 170, 218, 160, 1, 218, 147, 218, 160, 1, 215, 47, 218, - 160, 1, 216, 0, 218, 160, 1, 213, 67, 218, 160, 1, 69, 218, 160, 1, 210, - 226, 218, 160, 1, 221, 78, 218, 160, 1, 148, 218, 160, 1, 206, 3, 218, - 160, 1, 200, 39, 218, 160, 1, 197, 131, 218, 160, 1, 251, 81, 218, 160, - 1, 234, 61, 218, 160, 1, 230, 83, 218, 160, 1, 192, 235, 247, 47, 1, 65, - 247, 47, 1, 210, 212, 247, 47, 1, 238, 80, 247, 47, 1, 170, 247, 47, 1, - 196, 24, 247, 47, 1, 148, 247, 47, 1, 219, 218, 247, 47, 1, 254, 163, - 247, 47, 1, 208, 97, 247, 47, 1, 250, 70, 247, 47, 1, 218, 147, 247, 47, - 1, 74, 247, 47, 1, 237, 243, 247, 47, 1, 200, 39, 247, 47, 1, 203, 162, - 247, 47, 1, 203, 161, 247, 47, 1, 206, 3, 247, 47, 1, 247, 144, 247, 47, - 1, 69, 247, 47, 1, 213, 67, 247, 47, 1, 192, 235, 247, 47, 1, 215, 47, - 247, 47, 1, 197, 130, 247, 47, 1, 210, 226, 247, 47, 1, 201, 173, 247, - 47, 1, 70, 247, 47, 1, 73, 247, 47, 1, 196, 21, 247, 47, 1, 222, 125, - 247, 47, 1, 222, 116, 247, 47, 1, 214, 150, 247, 47, 1, 196, 26, 247, 47, - 1, 232, 14, 247, 47, 1, 231, 205, 247, 47, 1, 201, 113, 247, 47, 1, 201, - 112, 247, 47, 1, 214, 56, 247, 47, 1, 223, 170, 247, 47, 1, 247, 143, - 247, 47, 1, 197, 131, 247, 47, 1, 196, 23, 247, 47, 1, 206, 105, 247, 47, - 1, 216, 253, 247, 47, 1, 216, 252, 247, 47, 1, 216, 251, 247, 47, 1, 216, - 250, 247, 47, 1, 219, 217, 247, 47, 1, 234, 174, 247, 47, 1, 196, 22, 93, - 234, 12, 198, 224, 77, 93, 234, 12, 17, 108, 93, 234, 12, 17, 109, 93, - 234, 12, 17, 139, 93, 234, 12, 17, 137, 93, 234, 12, 17, 153, 93, 234, - 12, 17, 173, 93, 234, 12, 17, 181, 93, 234, 12, 17, 176, 93, 234, 12, 17, - 184, 93, 234, 12, 31, 199, 90, 93, 234, 12, 31, 197, 28, 93, 234, 12, 31, - 198, 244, 93, 234, 12, 31, 232, 97, 93, 234, 12, 31, 232, 230, 93, 234, - 12, 31, 202, 115, 93, 234, 12, 31, 203, 236, 93, 234, 12, 31, 234, 110, - 93, 234, 12, 31, 213, 156, 93, 234, 12, 31, 91, 228, 109, 93, 234, 12, - 31, 103, 228, 109, 93, 234, 12, 31, 115, 228, 109, 93, 234, 12, 31, 232, - 90, 228, 109, 93, 234, 12, 31, 232, 185, 228, 109, 93, 234, 12, 31, 202, - 131, 228, 109, 93, 234, 12, 31, 203, 242, 228, 109, 93, 234, 12, 31, 234, - 121, 228, 109, 93, 234, 12, 31, 213, 161, 228, 109, 38, 43, 1, 65, 38, - 43, 1, 248, 223, 38, 43, 1, 221, 253, 38, 43, 1, 237, 101, 38, 43, 1, 73, - 38, 43, 1, 195, 150, 38, 43, 1, 191, 87, 38, 43, 1, 229, 213, 38, 43, 1, - 199, 28, 38, 43, 1, 70, 38, 43, 1, 157, 38, 43, 1, 234, 97, 38, 43, 1, - 234, 72, 38, 43, 1, 234, 61, 38, 43, 1, 233, 226, 38, 43, 1, 74, 38, 43, - 1, 210, 53, 38, 43, 1, 203, 108, 38, 43, 1, 220, 208, 38, 43, 1, 233, - 248, 38, 43, 1, 233, 236, 38, 43, 1, 199, 140, 38, 43, 1, 69, 38, 43, 1, - 234, 100, 38, 43, 1, 209, 205, 38, 43, 1, 221, 173, 38, 43, 1, 234, 138, - 38, 43, 1, 233, 238, 38, 43, 1, 243, 79, 38, 43, 1, 223, 170, 38, 43, 1, - 196, 26, 38, 43, 1, 233, 219, 38, 43, 212, 121, 108, 38, 43, 212, 121, - 153, 38, 43, 212, 121, 199, 90, 38, 43, 212, 121, 232, 230, 38, 43, 1, - 192, 80, 38, 43, 1, 213, 3, 197, 157, 38, 43, 1, 201, 251, 197, 157, 230, - 197, 1, 251, 187, 230, 197, 1, 249, 67, 230, 197, 1, 231, 13, 230, 197, - 1, 237, 222, 230, 197, 1, 251, 182, 230, 197, 1, 208, 80, 230, 197, 1, - 223, 20, 230, 197, 1, 230, 50, 230, 197, 1, 198, 238, 230, 197, 1, 234, - 108, 230, 197, 1, 220, 165, 230, 197, 1, 220, 76, 230, 197, 1, 217, 60, - 230, 197, 1, 214, 187, 230, 197, 1, 222, 230, 230, 197, 1, 196, 44, 230, - 197, 1, 210, 185, 230, 197, 1, 213, 156, 230, 197, 1, 207, 150, 230, 197, - 1, 205, 107, 230, 197, 1, 199, 106, 230, 197, 1, 193, 58, 230, 197, 1, - 233, 48, 230, 197, 1, 223, 174, 230, 197, 1, 228, 92, 230, 197, 1, 211, - 19, 230, 197, 1, 213, 161, 228, 109, 38, 209, 249, 1, 251, 81, 38, 209, - 249, 1, 247, 182, 38, 209, 249, 1, 231, 187, 38, 209, 249, 1, 236, 115, - 38, 209, 249, 1, 73, 38, 209, 249, 1, 191, 53, 38, 209, 249, 1, 234, 239, - 38, 209, 249, 1, 191, 95, 38, 209, 249, 1, 234, 237, 38, 209, 249, 1, 70, - 38, 209, 249, 1, 221, 26, 38, 209, 249, 1, 219, 184, 38, 209, 249, 1, - 216, 165, 38, 209, 249, 1, 214, 86, 38, 209, 249, 1, 195, 4, 38, 209, - 249, 1, 210, 39, 38, 209, 249, 1, 207, 65, 38, 209, 249, 1, 202, 188, 38, - 209, 249, 1, 199, 212, 38, 209, 249, 1, 69, 38, 209, 249, 1, 243, 58, 38, - 209, 249, 1, 203, 42, 38, 209, 249, 1, 203, 110, 38, 209, 249, 1, 191, - 227, 38, 209, 249, 1, 192, 58, 38, 209, 249, 1, 74, 38, 209, 249, 1, 211, - 76, 38, 209, 249, 1, 234, 138, 38, 209, 249, 1, 144, 38, 209, 249, 1, - 197, 141, 38, 209, 249, 1, 195, 137, 38, 209, 249, 1, 192, 62, 38, 209, - 249, 1, 192, 60, 38, 209, 249, 1, 192, 95, 38, 209, 249, 1, 223, 197, 38, - 209, 249, 1, 191, 225, 38, 209, 249, 1, 169, 38, 209, 249, 1, 228, 5, 33, - 38, 209, 249, 1, 251, 81, 33, 38, 209, 249, 1, 236, 115, 33, 38, 209, - 249, 1, 191, 95, 33, 38, 209, 249, 1, 214, 86, 33, 38, 209, 249, 1, 202, - 188, 196, 138, 1, 251, 113, 196, 138, 1, 248, 162, 196, 138, 1, 231, 175, - 196, 138, 1, 221, 190, 196, 138, 1, 237, 61, 196, 138, 1, 228, 247, 196, - 138, 1, 193, 48, 196, 138, 1, 191, 76, 196, 138, 1, 228, 148, 196, 138, - 1, 199, 68, 196, 138, 1, 191, 250, 196, 138, 1, 222, 79, 196, 138, 1, - 203, 64, 196, 138, 1, 220, 7, 196, 138, 1, 216, 174, 196, 138, 1, 237, - 19, 196, 138, 1, 212, 117, 196, 138, 1, 190, 251, 196, 138, 1, 205, 142, - 196, 138, 1, 251, 178, 196, 138, 1, 208, 158, 196, 138, 1, 205, 186, 196, - 138, 1, 208, 32, 196, 138, 1, 207, 128, 196, 138, 1, 199, 32, 196, 138, - 1, 231, 49, 196, 138, 1, 159, 196, 138, 1, 70, 196, 138, 1, 69, 196, 138, - 1, 201, 124, 196, 138, 193, 23, 236, 160, 38, 209, 243, 3, 65, 38, 209, - 243, 3, 70, 38, 209, 243, 3, 69, 38, 209, 243, 3, 157, 38, 209, 243, 3, - 220, 208, 38, 209, 243, 3, 231, 203, 38, 209, 243, 3, 230, 146, 38, 209, - 243, 3, 192, 220, 38, 209, 243, 3, 247, 112, 38, 209, 243, 3, 223, 4, 38, - 209, 243, 3, 222, 217, 38, 209, 243, 3, 199, 247, 38, 209, 243, 3, 197, - 90, 38, 209, 243, 3, 237, 241, 38, 209, 243, 3, 236, 255, 38, 209, 243, - 3, 235, 45, 38, 209, 243, 3, 199, 44, 38, 209, 243, 3, 168, 38, 209, 243, - 3, 249, 103, 38, 209, 243, 3, 233, 68, 38, 209, 243, 3, 180, 38, 209, - 243, 3, 212, 165, 38, 209, 243, 3, 172, 38, 209, 243, 3, 216, 81, 38, - 209, 243, 3, 215, 139, 38, 209, 243, 3, 169, 38, 209, 243, 3, 195, 185, - 38, 209, 243, 3, 195, 66, 38, 209, 243, 3, 166, 38, 209, 243, 3, 206, 63, - 38, 209, 243, 3, 171, 38, 209, 243, 3, 189, 38, 209, 243, 3, 191, 123, - 38, 209, 243, 3, 203, 160, 38, 209, 243, 3, 201, 170, 38, 209, 243, 3, - 144, 38, 209, 243, 3, 250, 107, 38, 209, 243, 3, 250, 106, 38, 209, 243, - 3, 250, 105, 38, 209, 243, 3, 192, 189, 38, 209, 243, 3, 237, 218, 38, - 209, 243, 3, 237, 217, 38, 209, 243, 3, 249, 78, 38, 209, 243, 3, 247, - 164, 38, 209, 243, 193, 23, 236, 160, 38, 209, 243, 31, 108, 38, 209, - 243, 31, 109, 38, 209, 243, 31, 199, 90, 38, 209, 243, 31, 197, 28, 38, - 209, 243, 31, 228, 109, 237, 39, 6, 1, 177, 70, 237, 39, 6, 1, 177, 73, - 237, 39, 6, 1, 177, 65, 237, 39, 6, 1, 177, 251, 193, 237, 39, 6, 1, 177, - 74, 237, 39, 6, 1, 177, 211, 76, 237, 39, 6, 1, 203, 35, 70, 237, 39, 6, - 1, 203, 35, 73, 237, 39, 6, 1, 203, 35, 65, 237, 39, 6, 1, 203, 35, 251, - 193, 237, 39, 6, 1, 203, 35, 74, 237, 39, 6, 1, 203, 35, 211, 76, 237, - 39, 6, 1, 250, 81, 237, 39, 6, 1, 210, 240, 237, 39, 6, 1, 193, 0, 237, - 39, 6, 1, 192, 77, 237, 39, 6, 1, 230, 83, 237, 39, 6, 1, 210, 40, 237, - 39, 6, 1, 248, 207, 237, 39, 6, 1, 199, 116, 237, 39, 6, 1, 237, 86, 237, - 39, 6, 1, 243, 75, 237, 39, 6, 1, 222, 236, 237, 39, 6, 1, 222, 4, 237, - 39, 6, 1, 231, 149, 237, 39, 6, 1, 234, 138, 237, 39, 6, 1, 195, 145, - 237, 39, 6, 1, 233, 206, 237, 39, 6, 1, 199, 26, 237, 39, 6, 1, 233, 236, - 237, 39, 6, 1, 191, 84, 237, 39, 6, 1, 233, 226, 237, 39, 6, 1, 191, 61, - 237, 39, 6, 1, 233, 248, 237, 39, 6, 1, 234, 97, 237, 39, 6, 1, 234, 72, - 237, 39, 6, 1, 234, 61, 237, 39, 6, 1, 234, 46, 237, 39, 6, 1, 211, 121, - 237, 39, 6, 1, 233, 183, 237, 39, 2, 1, 177, 70, 237, 39, 2, 1, 177, 73, - 237, 39, 2, 1, 177, 65, 237, 39, 2, 1, 177, 251, 193, 237, 39, 2, 1, 177, - 74, 237, 39, 2, 1, 177, 211, 76, 237, 39, 2, 1, 203, 35, 70, 237, 39, 2, - 1, 203, 35, 73, 237, 39, 2, 1, 203, 35, 65, 237, 39, 2, 1, 203, 35, 251, - 193, 237, 39, 2, 1, 203, 35, 74, 237, 39, 2, 1, 203, 35, 211, 76, 237, - 39, 2, 1, 250, 81, 237, 39, 2, 1, 210, 240, 237, 39, 2, 1, 193, 0, 237, - 39, 2, 1, 192, 77, 237, 39, 2, 1, 230, 83, 237, 39, 2, 1, 210, 40, 237, - 39, 2, 1, 248, 207, 237, 39, 2, 1, 199, 116, 237, 39, 2, 1, 237, 86, 237, - 39, 2, 1, 243, 75, 237, 39, 2, 1, 222, 236, 237, 39, 2, 1, 222, 4, 237, - 39, 2, 1, 231, 149, 237, 39, 2, 1, 234, 138, 237, 39, 2, 1, 195, 145, - 237, 39, 2, 1, 233, 206, 237, 39, 2, 1, 199, 26, 237, 39, 2, 1, 233, 236, - 237, 39, 2, 1, 191, 84, 237, 39, 2, 1, 233, 226, 237, 39, 2, 1, 191, 61, - 237, 39, 2, 1, 233, 248, 237, 39, 2, 1, 234, 97, 237, 39, 2, 1, 234, 72, - 237, 39, 2, 1, 234, 61, 237, 39, 2, 1, 234, 46, 237, 39, 2, 1, 211, 121, - 237, 39, 2, 1, 233, 183, 203, 115, 1, 210, 36, 203, 115, 1, 198, 35, 203, - 115, 1, 221, 130, 203, 115, 1, 233, 11, 203, 115, 1, 199, 1, 203, 115, 1, - 202, 41, 203, 115, 1, 200, 167, 203, 115, 1, 242, 248, 203, 115, 1, 192, - 79, 203, 115, 1, 228, 106, 203, 115, 1, 248, 139, 203, 115, 1, 237, 100, - 203, 115, 1, 231, 189, 203, 115, 1, 194, 255, 203, 115, 1, 199, 7, 203, - 115, 1, 191, 4, 203, 115, 1, 216, 208, 203, 115, 1, 222, 153, 203, 115, - 1, 193, 39, 203, 115, 1, 230, 60, 203, 115, 1, 219, 1, 203, 115, 1, 216, - 27, 203, 115, 1, 223, 177, 203, 115, 1, 234, 136, 203, 115, 1, 250, 159, - 203, 115, 1, 251, 234, 203, 115, 1, 211, 93, 203, 115, 1, 193, 26, 203, - 115, 1, 211, 4, 203, 115, 1, 251, 193, 203, 115, 1, 206, 148, 203, 115, - 1, 212, 117, 203, 115, 1, 234, 156, 203, 115, 1, 251, 198, 203, 115, 1, - 227, 252, 203, 115, 1, 196, 73, 203, 115, 1, 211, 167, 203, 115, 1, 211, - 68, 203, 115, 1, 211, 119, 203, 115, 1, 250, 87, 203, 115, 1, 250, 215, - 203, 115, 1, 211, 45, 203, 115, 1, 251, 173, 203, 115, 1, 233, 240, 203, - 115, 1, 250, 190, 203, 115, 1, 234, 167, 203, 115, 1, 228, 4, 203, 115, - 1, 192, 41, 211, 23, 1, 251, 141, 211, 23, 1, 249, 103, 211, 23, 1, 199, - 247, 211, 23, 1, 223, 4, 211, 23, 1, 192, 220, 211, 23, 1, 221, 190, 211, - 23, 1, 237, 85, 211, 23, 1, 166, 211, 23, 1, 189, 211, 23, 1, 203, 70, - 211, 23, 1, 237, 23, 211, 23, 1, 247, 19, 211, 23, 1, 231, 203, 211, 23, - 1, 233, 68, 211, 23, 1, 208, 87, 211, 23, 1, 222, 96, 211, 23, 1, 220, - 97, 211, 23, 1, 216, 41, 211, 23, 1, 212, 101, 211, 23, 1, 193, 131, 211, - 23, 1, 144, 211, 23, 1, 169, 211, 23, 1, 65, 211, 23, 1, 73, 211, 23, 1, - 70, 211, 23, 1, 74, 211, 23, 1, 69, 211, 23, 1, 252, 154, 211, 23, 1, - 234, 145, 211, 23, 1, 211, 76, 211, 23, 17, 191, 77, 211, 23, 17, 108, - 211, 23, 17, 109, 211, 23, 17, 139, 211, 23, 17, 137, 211, 23, 17, 153, - 211, 23, 17, 173, 211, 23, 17, 181, 211, 23, 17, 176, 211, 23, 17, 184, - 211, 25, 6, 1, 65, 211, 25, 6, 1, 251, 184, 211, 25, 6, 1, 251, 178, 211, - 25, 6, 1, 251, 193, 211, 25, 6, 1, 248, 8, 211, 25, 6, 1, 246, 209, 211, - 25, 6, 1, 234, 129, 211, 25, 6, 1, 73, 211, 25, 6, 1, 234, 109, 211, 25, - 6, 1, 144, 211, 25, 6, 1, 228, 62, 211, 25, 6, 1, 70, 211, 25, 6, 1, 157, - 211, 25, 6, 1, 234, 128, 211, 25, 6, 1, 220, 129, 211, 25, 6, 1, 171, - 211, 25, 6, 1, 172, 211, 25, 6, 1, 180, 211, 25, 6, 1, 74, 211, 25, 6, 1, - 211, 118, 211, 25, 6, 1, 168, 211, 25, 6, 1, 234, 127, 211, 25, 6, 1, - 189, 211, 25, 6, 1, 203, 160, 211, 25, 6, 1, 199, 247, 211, 25, 6, 1, - 234, 126, 211, 25, 6, 1, 197, 164, 211, 25, 6, 1, 234, 125, 211, 25, 6, - 1, 197, 153, 211, 25, 6, 1, 237, 23, 211, 25, 6, 1, 69, 211, 25, 6, 1, - 193, 187, 211, 25, 6, 1, 221, 190, 211, 25, 6, 1, 231, 54, 211, 25, 6, 1, - 191, 123, 211, 25, 6, 1, 191, 71, 211, 25, 2, 1, 65, 211, 25, 2, 1, 251, - 184, 211, 25, 2, 1, 251, 178, 211, 25, 2, 1, 251, 193, 211, 25, 2, 1, - 248, 8, 211, 25, 2, 1, 246, 209, 211, 25, 2, 1, 234, 129, 211, 25, 2, 1, - 73, 211, 25, 2, 1, 234, 109, 211, 25, 2, 1, 144, 211, 25, 2, 1, 228, 62, - 211, 25, 2, 1, 70, 211, 25, 2, 1, 157, 211, 25, 2, 1, 234, 128, 211, 25, - 2, 1, 220, 129, 211, 25, 2, 1, 171, 211, 25, 2, 1, 172, 211, 25, 2, 1, - 180, 211, 25, 2, 1, 74, 211, 25, 2, 1, 211, 118, 211, 25, 2, 1, 168, 211, - 25, 2, 1, 234, 127, 211, 25, 2, 1, 189, 211, 25, 2, 1, 203, 160, 211, 25, - 2, 1, 199, 247, 211, 25, 2, 1, 234, 126, 211, 25, 2, 1, 197, 164, 211, - 25, 2, 1, 234, 125, 211, 25, 2, 1, 197, 153, 211, 25, 2, 1, 237, 23, 211, - 25, 2, 1, 69, 211, 25, 2, 1, 193, 187, 211, 25, 2, 1, 221, 190, 211, 25, - 2, 1, 231, 54, 211, 25, 2, 1, 191, 123, 211, 25, 2, 1, 191, 71, 234, 93, - 1, 65, 234, 93, 1, 248, 223, 234, 93, 1, 246, 250, 234, 93, 1, 243, 79, - 234, 93, 1, 237, 101, 234, 93, 1, 214, 140, 234, 93, 1, 237, 14, 234, 93, - 1, 234, 123, 234, 93, 1, 73, 234, 93, 1, 233, 18, 234, 93, 1, 231, 128, - 234, 93, 1, 230, 240, 234, 93, 1, 229, 213, 234, 93, 1, 70, 234, 93, 1, - 222, 238, 234, 93, 1, 221, 253, 234, 93, 1, 219, 214, 234, 93, 1, 219, - 44, 234, 93, 1, 216, 213, 234, 93, 1, 214, 107, 234, 93, 1, 180, 234, 93, - 1, 213, 137, 234, 93, 1, 74, 234, 93, 1, 210, 53, 234, 93, 1, 208, 69, - 234, 93, 1, 207, 108, 234, 93, 1, 206, 99, 234, 93, 1, 205, 63, 234, 93, - 1, 203, 108, 234, 93, 1, 199, 140, 234, 93, 1, 199, 28, 234, 93, 1, 69, - 234, 93, 1, 195, 150, 234, 93, 1, 192, 214, 234, 93, 1, 192, 159, 234, - 93, 1, 191, 87, 234, 93, 1, 191, 62, 234, 93, 1, 231, 40, 234, 93, 1, - 231, 46, 234, 93, 1, 221, 173, 247, 27, 251, 142, 1, 251, 108, 247, 27, - 251, 142, 1, 248, 164, 247, 27, 251, 142, 1, 231, 3, 247, 27, 251, 142, - 1, 237, 166, 247, 27, 251, 142, 1, 234, 155, 247, 27, 251, 142, 1, 191, - 98, 247, 27, 251, 142, 1, 233, 143, 247, 27, 251, 142, 1, 191, 56, 247, - 27, 251, 142, 1, 199, 169, 247, 27, 251, 142, 1, 246, 209, 247, 27, 251, - 142, 1, 191, 236, 247, 27, 251, 142, 1, 191, 71, 247, 27, 251, 142, 1, - 223, 48, 247, 27, 251, 142, 1, 203, 160, 247, 27, 251, 142, 1, 220, 0, - 247, 27, 251, 142, 1, 223, 61, 247, 27, 251, 142, 1, 192, 210, 247, 27, - 251, 142, 1, 234, 255, 247, 27, 251, 142, 1, 247, 54, 247, 27, 251, 142, - 1, 222, 218, 247, 27, 251, 142, 1, 222, 39, 247, 27, 251, 142, 1, 218, - 156, 247, 27, 251, 142, 1, 229, 147, 247, 27, 251, 142, 1, 208, 70, 247, - 27, 251, 142, 1, 251, 17, 247, 27, 251, 142, 1, 243, 9, 247, 27, 251, - 142, 1, 243, 47, 247, 27, 251, 142, 1, 238, 93, 247, 27, 251, 142, 1, - 217, 48, 247, 27, 251, 142, 1, 208, 74, 247, 27, 251, 142, 1, 212, 239, - 247, 27, 251, 142, 1, 234, 232, 247, 27, 251, 142, 1, 203, 142, 247, 27, - 251, 142, 1, 222, 239, 247, 27, 251, 142, 1, 211, 93, 247, 27, 251, 142, - 1, 196, 255, 247, 27, 251, 142, 1, 233, 41, 247, 27, 251, 142, 1, 234, - 245, 247, 27, 251, 142, 1, 243, 85, 247, 27, 251, 142, 1, 210, 25, 247, - 27, 251, 142, 1, 231, 30, 247, 27, 251, 142, 1, 207, 125, 247, 27, 251, - 142, 1, 203, 169, 247, 27, 251, 142, 1, 195, 69, 247, 27, 251, 142, 1, - 198, 113, 247, 27, 251, 142, 1, 203, 13, 247, 27, 251, 142, 1, 223, 18, - 247, 27, 251, 142, 1, 238, 94, 247, 27, 251, 142, 1, 247, 19, 247, 27, - 251, 142, 1, 192, 84, 247, 27, 251, 142, 1, 209, 106, 247, 27, 251, 142, - 1, 221, 93, 247, 27, 251, 142, 242, 206, 77, 195, 26, 6, 1, 65, 195, 26, - 6, 1, 248, 254, 195, 26, 6, 1, 248, 223, 195, 26, 6, 1, 246, 250, 195, - 26, 6, 1, 243, 79, 195, 26, 6, 1, 237, 101, 195, 26, 6, 1, 237, 14, 195, - 26, 6, 1, 234, 123, 195, 26, 6, 1, 73, 195, 26, 6, 1, 233, 18, 195, 26, - 6, 1, 231, 203, 195, 26, 6, 1, 144, 195, 26, 6, 1, 229, 145, 195, 26, 6, - 1, 70, 195, 26, 6, 1, 223, 167, 195, 26, 6, 1, 222, 238, 195, 26, 6, 1, - 157, 195, 26, 6, 1, 171, 195, 26, 6, 1, 219, 49, 195, 26, 6, 1, 216, 213, - 195, 26, 6, 1, 214, 107, 195, 26, 6, 1, 213, 137, 195, 26, 6, 1, 74, 195, - 26, 6, 1, 210, 53, 195, 26, 6, 1, 208, 89, 195, 26, 6, 1, 207, 108, 195, - 26, 6, 1, 205, 63, 195, 26, 6, 1, 203, 108, 195, 26, 6, 1, 199, 140, 195, - 26, 6, 1, 199, 28, 195, 26, 6, 1, 69, 195, 26, 6, 1, 195, 150, 195, 26, - 6, 1, 192, 214, 195, 26, 6, 1, 192, 159, 195, 26, 6, 1, 191, 87, 195, 26, - 2, 1, 65, 195, 26, 2, 1, 248, 254, 195, 26, 2, 1, 248, 223, 195, 26, 2, - 1, 246, 250, 195, 26, 2, 1, 243, 79, 195, 26, 2, 1, 237, 101, 195, 26, 2, - 1, 237, 14, 195, 26, 2, 1, 234, 123, 195, 26, 2, 1, 73, 195, 26, 2, 1, - 233, 18, 195, 26, 2, 1, 231, 203, 195, 26, 2, 1, 144, 195, 26, 2, 1, 229, - 145, 195, 26, 2, 1, 70, 195, 26, 2, 1, 223, 167, 195, 26, 2, 1, 222, 238, - 195, 26, 2, 1, 157, 195, 26, 2, 1, 171, 195, 26, 2, 1, 219, 49, 195, 26, - 2, 1, 216, 213, 195, 26, 2, 1, 214, 107, 195, 26, 2, 1, 213, 137, 195, - 26, 2, 1, 74, 195, 26, 2, 1, 210, 53, 195, 26, 2, 1, 208, 89, 195, 26, 2, - 1, 207, 108, 195, 26, 2, 1, 205, 63, 195, 26, 2, 1, 203, 108, 195, 26, 2, - 1, 199, 140, 195, 26, 2, 1, 199, 28, 195, 26, 2, 1, 69, 195, 26, 2, 1, - 195, 150, 195, 26, 2, 1, 192, 214, 195, 26, 2, 1, 192, 159, 195, 26, 2, - 1, 191, 87, 32, 41, 3, 252, 102, 32, 41, 3, 252, 101, 32, 41, 3, 252, - 100, 32, 41, 3, 252, 99, 32, 41, 3, 252, 98, 32, 41, 3, 252, 97, 32, 41, - 3, 252, 96, 32, 41, 3, 252, 95, 32, 41, 3, 252, 94, 32, 41, 3, 252, 93, - 32, 41, 3, 252, 92, 32, 41, 3, 252, 91, 32, 41, 3, 252, 90, 32, 41, 3, - 252, 89, 32, 41, 3, 252, 88, 32, 41, 3, 252, 87, 32, 41, 3, 252, 86, 32, - 41, 3, 252, 85, 32, 41, 3, 252, 84, 32, 41, 3, 252, 83, 32, 41, 3, 252, - 82, 32, 41, 3, 252, 81, 32, 41, 3, 252, 80, 32, 41, 3, 252, 79, 32, 41, - 3, 252, 78, 32, 41, 3, 252, 77, 32, 41, 3, 252, 76, 32, 41, 3, 255, 112, - 32, 41, 3, 252, 75, 32, 41, 3, 252, 74, 32, 41, 3, 252, 73, 32, 41, 3, - 252, 72, 32, 41, 3, 252, 71, 32, 41, 3, 252, 70, 32, 41, 3, 252, 69, 32, - 41, 3, 252, 68, 32, 41, 3, 252, 67, 32, 41, 3, 252, 66, 32, 41, 3, 252, - 65, 32, 41, 3, 252, 64, 32, 41, 3, 252, 63, 32, 41, 3, 252, 62, 32, 41, - 3, 252, 61, 32, 41, 3, 252, 60, 32, 41, 3, 252, 59, 32, 41, 3, 252, 58, - 32, 41, 3, 252, 57, 32, 41, 3, 252, 56, 32, 41, 3, 252, 55, 32, 41, 3, - 252, 54, 32, 41, 3, 252, 53, 32, 41, 3, 252, 52, 32, 41, 3, 252, 51, 32, - 41, 3, 252, 50, 32, 41, 3, 252, 49, 32, 41, 3, 252, 48, 32, 41, 3, 252, - 47, 32, 41, 3, 252, 46, 32, 41, 3, 252, 45, 32, 41, 3, 252, 44, 32, 41, - 3, 252, 43, 32, 41, 3, 252, 42, 32, 41, 3, 252, 41, 32, 41, 3, 252, 40, - 32, 41, 3, 252, 39, 32, 41, 3, 252, 38, 32, 41, 3, 252, 37, 32, 41, 3, - 252, 36, 32, 41, 3, 252, 35, 32, 41, 3, 252, 34, 32, 41, 3, 252, 33, 32, - 41, 3, 255, 25, 32, 41, 3, 252, 32, 32, 41, 3, 252, 31, 32, 41, 3, 254, - 246, 32, 41, 3, 252, 30, 32, 41, 3, 252, 29, 32, 41, 3, 252, 28, 32, 41, - 3, 252, 27, 32, 41, 3, 254, 233, 32, 41, 3, 252, 26, 32, 41, 3, 252, 25, - 32, 41, 3, 252, 24, 32, 41, 3, 252, 23, 32, 41, 3, 252, 22, 32, 41, 3, - 254, 49, 32, 41, 3, 254, 48, 32, 41, 3, 254, 47, 32, 41, 3, 254, 46, 32, - 41, 3, 254, 45, 32, 41, 3, 254, 44, 32, 41, 3, 254, 43, 32, 41, 3, 254, - 42, 32, 41, 3, 254, 40, 32, 41, 3, 254, 39, 32, 41, 3, 254, 38, 32, 41, - 3, 254, 37, 32, 41, 3, 254, 36, 32, 41, 3, 254, 35, 32, 41, 3, 254, 33, - 32, 41, 3, 254, 32, 32, 41, 3, 254, 31, 32, 41, 3, 254, 30, 32, 41, 3, - 254, 29, 32, 41, 3, 254, 28, 32, 41, 3, 254, 27, 32, 41, 3, 254, 26, 32, - 41, 3, 254, 25, 32, 41, 3, 254, 24, 32, 41, 3, 254, 23, 32, 41, 3, 254, - 22, 32, 41, 3, 254, 21, 32, 41, 3, 254, 20, 32, 41, 3, 254, 19, 32, 41, - 3, 254, 18, 32, 41, 3, 254, 17, 32, 41, 3, 254, 16, 32, 41, 3, 254, 15, - 32, 41, 3, 254, 13, 32, 41, 3, 254, 12, 32, 41, 3, 254, 11, 32, 41, 3, - 254, 7, 32, 41, 3, 254, 6, 32, 41, 3, 254, 5, 32, 41, 3, 254, 4, 32, 41, - 3, 254, 0, 32, 41, 3, 253, 255, 32, 41, 3, 253, 254, 32, 41, 3, 253, 253, - 32, 41, 3, 253, 252, 32, 41, 3, 253, 251, 32, 41, 3, 253, 250, 32, 41, 3, - 253, 249, 32, 41, 3, 253, 248, 32, 41, 3, 253, 247, 32, 41, 3, 253, 246, - 32, 41, 3, 253, 245, 32, 41, 3, 253, 244, 32, 41, 3, 253, 243, 32, 41, 3, - 253, 242, 32, 41, 3, 253, 241, 32, 41, 3, 253, 240, 32, 41, 3, 253, 239, - 32, 41, 3, 253, 238, 32, 41, 3, 253, 237, 32, 41, 3, 253, 236, 32, 41, 3, - 253, 235, 32, 41, 3, 253, 234, 32, 41, 3, 253, 232, 32, 41, 3, 253, 231, - 32, 41, 3, 253, 230, 32, 41, 3, 253, 229, 32, 41, 3, 253, 228, 32, 41, 3, - 253, 226, 32, 41, 3, 253, 225, 32, 41, 3, 253, 224, 32, 41, 3, 253, 223, - 32, 41, 3, 253, 221, 32, 41, 3, 253, 220, 32, 41, 3, 253, 219, 32, 41, 3, - 253, 185, 32, 41, 3, 253, 183, 32, 41, 3, 253, 181, 32, 41, 3, 253, 179, - 32, 41, 3, 253, 177, 32, 41, 3, 253, 175, 32, 41, 3, 253, 173, 32, 41, 3, - 253, 171, 32, 41, 3, 253, 169, 32, 41, 3, 253, 167, 32, 41, 3, 253, 165, - 32, 41, 3, 253, 162, 32, 41, 3, 253, 160, 32, 41, 3, 253, 158, 32, 41, 3, - 253, 156, 32, 41, 3, 253, 154, 32, 41, 3, 253, 152, 32, 41, 3, 253, 150, - 32, 41, 3, 253, 148, 32, 41, 3, 253, 66, 32, 41, 3, 253, 65, 32, 41, 3, - 253, 64, 32, 41, 3, 253, 63, 32, 41, 3, 253, 62, 32, 41, 3, 253, 61, 32, - 41, 3, 253, 59, 32, 41, 3, 253, 58, 32, 41, 3, 253, 57, 32, 41, 3, 253, - 56, 32, 41, 3, 253, 55, 32, 41, 3, 253, 54, 32, 41, 3, 253, 52, 32, 41, - 3, 253, 51, 32, 41, 3, 253, 47, 32, 41, 3, 253, 46, 32, 41, 3, 253, 44, - 32, 41, 3, 253, 43, 32, 41, 3, 253, 42, 32, 41, 3, 253, 41, 32, 41, 3, - 253, 40, 32, 41, 3, 253, 39, 32, 41, 3, 253, 38, 32, 41, 3, 253, 37, 32, - 41, 3, 253, 36, 32, 41, 3, 253, 35, 32, 41, 3, 253, 34, 32, 41, 3, 253, - 33, 32, 41, 3, 253, 32, 32, 41, 3, 253, 31, 32, 41, 3, 253, 30, 32, 41, - 3, 253, 29, 32, 41, 3, 253, 28, 32, 41, 3, 253, 27, 32, 41, 3, 253, 26, - 32, 41, 3, 253, 25, 32, 41, 3, 253, 24, 32, 41, 3, 253, 23, 32, 41, 3, - 253, 22, 32, 41, 3, 253, 21, 32, 41, 3, 253, 20, 32, 41, 3, 253, 19, 32, - 41, 3, 253, 18, 32, 41, 3, 253, 17, 32, 41, 3, 253, 16, 32, 41, 3, 253, - 15, 32, 41, 3, 253, 14, 32, 41, 3, 253, 13, 32, 41, 3, 253, 12, 32, 41, - 3, 253, 11, 32, 41, 3, 253, 10, 32, 41, 3, 253, 9, 32, 41, 3, 253, 8, 32, - 41, 3, 253, 7, 32, 41, 3, 253, 6, 32, 41, 3, 253, 5, 32, 41, 3, 253, 4, - 32, 41, 3, 253, 3, 32, 41, 3, 253, 2, 32, 41, 3, 253, 1, 32, 41, 3, 253, - 0, 32, 41, 3, 252, 255, 32, 41, 3, 252, 254, 32, 41, 3, 252, 253, 32, 41, - 3, 252, 252, 32, 41, 3, 252, 251, 32, 41, 3, 252, 250, 32, 41, 3, 252, - 249, 32, 41, 3, 252, 248, 32, 41, 3, 252, 247, 32, 41, 3, 252, 246, 32, - 41, 3, 252, 245, 32, 41, 3, 252, 244, 32, 41, 3, 252, 243, 32, 41, 3, - 252, 242, 32, 41, 3, 252, 241, 32, 41, 3, 252, 240, 32, 41, 3, 252, 239, - 32, 41, 3, 252, 238, 32, 41, 3, 252, 237, 32, 41, 3, 252, 236, 32, 41, 3, - 252, 235, 32, 41, 3, 252, 234, 32, 41, 3, 252, 233, 32, 41, 3, 252, 232, - 32, 41, 3, 252, 231, 32, 41, 3, 252, 230, 32, 41, 3, 252, 229, 32, 41, 3, - 252, 228, 32, 41, 3, 252, 227, 32, 41, 3, 252, 226, 32, 41, 3, 252, 225, - 32, 41, 3, 252, 224, 32, 41, 3, 252, 223, 32, 41, 3, 252, 222, 32, 41, 3, - 252, 221, 32, 41, 3, 252, 220, 32, 41, 3, 252, 219, 32, 41, 3, 252, 218, - 32, 41, 3, 252, 217, 32, 41, 3, 252, 216, 32, 41, 3, 252, 215, 32, 41, 3, - 252, 214, 32, 41, 3, 252, 213, 32, 41, 3, 252, 212, 32, 41, 3, 252, 211, - 32, 41, 3, 252, 210, 32, 41, 3, 252, 209, 32, 41, 3, 252, 208, 32, 41, 3, - 252, 207, 32, 41, 3, 252, 206, 32, 41, 3, 252, 205, 32, 41, 3, 252, 204, - 32, 41, 3, 252, 203, 32, 41, 3, 252, 202, 32, 41, 3, 252, 201, 32, 41, 3, - 252, 200, 32, 41, 3, 252, 199, 32, 41, 3, 252, 198, 32, 41, 3, 252, 197, - 32, 41, 3, 252, 196, 32, 41, 3, 252, 195, 32, 41, 3, 252, 194, 32, 41, 3, - 252, 193, 32, 41, 3, 252, 192, 32, 41, 3, 252, 191, 32, 41, 3, 252, 190, - 32, 41, 3, 252, 189, 32, 41, 3, 252, 188, 32, 41, 3, 252, 187, 32, 41, 3, - 252, 186, 32, 41, 3, 252, 185, 32, 41, 3, 252, 184, 65, 32, 41, 3, 252, - 183, 250, 70, 32, 41, 3, 252, 182, 238, 80, 32, 41, 3, 252, 181, 73, 32, - 41, 3, 252, 180, 233, 134, 32, 41, 3, 252, 179, 230, 83, 32, 41, 3, 252, - 178, 223, 7, 32, 41, 3, 252, 177, 222, 125, 32, 41, 3, 252, 176, 170, 32, - 41, 3, 252, 175, 220, 106, 32, 41, 3, 252, 174, 220, 105, 32, 41, 3, 252, - 173, 220, 104, 32, 41, 3, 252, 172, 220, 103, 32, 41, 3, 252, 171, 193, - 221, 32, 41, 3, 252, 170, 192, 235, 32, 41, 3, 252, 169, 192, 159, 32, - 41, 3, 252, 168, 211, 99, 32, 41, 3, 252, 167, 252, 17, 32, 41, 3, 252, - 166, 249, 4, 32, 41, 3, 252, 165, 237, 148, 32, 41, 3, 252, 164, 233, - 142, 32, 41, 3, 252, 163, 222, 238, 32, 41, 3, 252, 162, 32, 41, 3, 252, - 161, 32, 41, 3, 252, 160, 32, 41, 3, 252, 159, 32, 41, 3, 252, 158, 32, - 41, 3, 252, 157, 32, 41, 3, 252, 156, 32, 41, 3, 252, 155, 59, 1, 2, 6, - 252, 154, 59, 1, 200, 177, 197, 234, 242, 35, 59, 1, 200, 177, 134, 197, - 234, 242, 35, 59, 1, 2, 251, 229, 59, 1, 2, 6, 250, 70, 59, 1, 2, 78, 4, - 106, 59, 1, 2, 234, 249, 236, 213, 59, 1, 2, 234, 249, 236, 214, 4, 207, - 19, 106, 59, 1, 2, 234, 249, 236, 214, 4, 238, 128, 59, 1, 2, 237, 25, - 236, 213, 59, 1, 2, 238, 81, 4, 199, 210, 59, 1, 2, 238, 81, 4, 106, 59, - 1, 2, 238, 81, 4, 228, 219, 24, 199, 210, 59, 1, 2, 207, 13, 73, 59, 1, - 2, 242, 171, 207, 13, 211, 66, 73, 59, 1, 2, 232, 252, 236, 213, 59, 1, - 2, 207, 135, 228, 156, 59, 1, 2, 6, 232, 14, 59, 1, 2, 232, 15, 4, 106, - 59, 1, 2, 6, 232, 15, 4, 106, 59, 1, 2, 230, 84, 4, 105, 59, 1, 2, 6, - 230, 83, 59, 1, 2, 229, 165, 4, 106, 59, 1, 2, 236, 95, 223, 8, 4, 201, - 23, 24, 106, 59, 1, 2, 218, 205, 236, 213, 59, 1, 2, 218, 149, 236, 213, - 59, 1, 2, 220, 119, 4, 248, 181, 59, 1, 2, 6, 220, 119, 4, 248, 181, 59, - 1, 2, 220, 119, 4, 207, 19, 228, 219, 24, 248, 181, 59, 1, 2, 219, 138, - 59, 1, 2, 219, 139, 4, 207, 19, 106, 59, 1, 2, 152, 192, 159, 59, 1, 2, - 152, 192, 160, 4, 248, 181, 59, 1, 2, 186, 4, 105, 59, 1, 2, 6, 211, 139, - 59, 1, 2, 242, 171, 211, 99, 59, 1, 2, 208, 97, 59, 1, 2, 152, 207, 217, - 4, 177, 219, 188, 59, 1, 2, 152, 207, 217, 4, 177, 219, 189, 24, 207, 19, - 106, 59, 1, 2, 207, 217, 4, 199, 210, 59, 1, 2, 207, 217, 4, 232, 192, - 59, 1, 2, 6, 148, 59, 1, 2, 199, 147, 236, 214, 4, 238, 128, 59, 1, 2, - 197, 166, 236, 213, 59, 1, 2, 197, 166, 236, 214, 4, 207, 19, 106, 59, 1, - 2, 199, 74, 236, 213, 59, 1, 2, 200, 40, 4, 207, 19, 106, 59, 1, 2, 196, - 9, 4, 50, 106, 59, 1, 2, 6, 192, 159, 59, 1, 230, 231, 201, 59, 4, 105, - 59, 1, 207, 13, 230, 231, 201, 59, 4, 105, 59, 1, 248, 124, 242, 183, 59, - 1, 237, 53, 242, 183, 59, 1, 219, 235, 242, 183, 59, 1, 251, 99, 242, - 183, 59, 1, 207, 19, 242, 184, 4, 207, 19, 106, 59, 1, 2, 206, 4, 4, 238, - 128, 238, 88, 5, 65, 238, 88, 5, 73, 238, 88, 5, 70, 238, 88, 5, 74, 238, - 88, 5, 69, 238, 88, 5, 223, 4, 238, 88, 5, 222, 174, 238, 88, 5, 157, - 238, 88, 5, 221, 253, 238, 88, 5, 221, 142, 238, 88, 5, 221, 43, 238, 88, - 5, 220, 208, 238, 88, 5, 171, 238, 88, 5, 219, 214, 238, 88, 5, 219, 122, - 238, 88, 5, 219, 19, 238, 88, 5, 218, 203, 238, 88, 5, 172, 238, 88, 5, - 216, 213, 238, 88, 5, 216, 81, 238, 88, 5, 215, 251, 238, 88, 5, 215, - 139, 238, 88, 5, 180, 238, 88, 5, 214, 107, 238, 88, 5, 213, 205, 238, - 88, 5, 213, 30, 238, 88, 5, 212, 165, 238, 88, 5, 168, 238, 88, 5, 210, - 53, 238, 88, 5, 209, 176, 238, 88, 5, 209, 65, 238, 88, 5, 208, 158, 238, - 88, 5, 166, 238, 88, 5, 207, 108, 238, 88, 5, 206, 252, 238, 88, 5, 206, - 157, 238, 88, 5, 206, 63, 238, 88, 5, 189, 238, 88, 5, 205, 63, 238, 88, - 5, 202, 217, 238, 88, 5, 202, 41, 238, 88, 5, 200, 255, 238, 88, 5, 199, - 247, 238, 88, 5, 199, 140, 238, 88, 5, 198, 188, 238, 88, 5, 159, 238, - 88, 5, 197, 90, 238, 88, 5, 193, 187, 238, 88, 5, 193, 123, 238, 88, 5, - 193, 84, 238, 88, 5, 193, 48, 238, 88, 5, 192, 220, 238, 88, 5, 192, 214, - 238, 88, 5, 191, 123, 238, 88, 5, 191, 7, 223, 136, 250, 224, 1, 251, - 139, 223, 136, 250, 224, 1, 248, 161, 223, 136, 250, 224, 1, 231, 1, 223, - 136, 250, 224, 1, 237, 205, 223, 136, 250, 224, 1, 229, 213, 223, 136, - 250, 224, 1, 193, 131, 223, 136, 250, 224, 1, 191, 91, 223, 136, 250, - 224, 1, 229, 152, 223, 136, 250, 224, 1, 199, 64, 223, 136, 250, 224, 1, - 191, 249, 223, 136, 250, 224, 1, 222, 49, 223, 136, 250, 224, 1, 220, 2, - 223, 136, 250, 224, 1, 216, 174, 223, 136, 250, 224, 1, 212, 117, 223, - 136, 250, 224, 1, 205, 143, 223, 136, 250, 224, 1, 250, 76, 223, 136, - 250, 224, 1, 210, 53, 223, 136, 250, 224, 1, 205, 184, 223, 136, 250, - 224, 1, 208, 31, 223, 136, 250, 224, 1, 207, 33, 223, 136, 250, 224, 1, - 203, 64, 223, 136, 250, 224, 1, 199, 154, 223, 136, 250, 224, 205, 49, - 57, 223, 136, 250, 224, 31, 108, 223, 136, 250, 224, 31, 109, 223, 136, - 250, 224, 31, 139, 223, 136, 250, 224, 31, 199, 90, 223, 136, 250, 224, - 31, 197, 28, 223, 136, 250, 224, 31, 91, 228, 109, 223, 136, 250, 224, - 31, 91, 188, 223, 136, 250, 224, 31, 199, 91, 188, 210, 170, 1, 251, 139, - 210, 170, 1, 248, 161, 210, 170, 1, 231, 1, 210, 170, 1, 237, 205, 210, - 170, 1, 229, 213, 210, 170, 1, 193, 131, 210, 170, 1, 191, 91, 210, 170, - 1, 229, 152, 210, 170, 1, 199, 64, 210, 170, 1, 191, 249, 210, 170, 1, - 222, 49, 210, 170, 1, 220, 2, 210, 170, 1, 216, 174, 210, 170, 1, 52, - 212, 117, 210, 170, 1, 212, 117, 210, 170, 1, 205, 143, 210, 170, 1, 250, - 76, 210, 170, 1, 210, 53, 210, 170, 1, 205, 184, 210, 170, 1, 208, 31, - 210, 170, 1, 207, 33, 210, 170, 1, 203, 64, 210, 170, 1, 199, 154, 210, - 170, 219, 195, 232, 161, 210, 170, 206, 198, 232, 161, 210, 170, 31, 108, - 210, 170, 31, 109, 210, 170, 31, 139, 210, 170, 31, 137, 210, 170, 31, - 153, 210, 170, 31, 199, 90, 210, 170, 31, 197, 28, 214, 232, 1, 52, 251, - 139, 214, 232, 1, 251, 139, 214, 232, 1, 52, 248, 161, 214, 232, 1, 248, - 161, 214, 232, 1, 231, 1, 214, 232, 1, 237, 205, 214, 232, 1, 52, 229, - 213, 214, 232, 1, 229, 213, 214, 232, 1, 193, 131, 214, 232, 1, 191, 91, - 214, 232, 1, 229, 152, 214, 232, 1, 199, 64, 214, 232, 1, 52, 191, 249, - 214, 232, 1, 191, 249, 214, 232, 1, 52, 222, 49, 214, 232, 1, 222, 49, - 214, 232, 1, 52, 220, 2, 214, 232, 1, 220, 2, 214, 232, 1, 52, 216, 174, - 214, 232, 1, 216, 174, 214, 232, 1, 52, 212, 117, 214, 232, 1, 212, 117, - 214, 232, 1, 205, 143, 214, 232, 1, 250, 76, 214, 232, 1, 210, 53, 214, - 232, 1, 205, 184, 214, 232, 1, 208, 31, 214, 232, 1, 207, 33, 214, 232, - 1, 52, 203, 64, 214, 232, 1, 203, 64, 214, 232, 1, 199, 154, 214, 232, - 31, 108, 214, 232, 31, 109, 214, 232, 31, 139, 214, 232, 31, 137, 214, - 232, 238, 155, 31, 137, 214, 232, 31, 153, 214, 232, 31, 199, 90, 214, - 232, 31, 197, 28, 214, 232, 31, 91, 228, 109, 229, 227, 1, 251, 139, 229, - 227, 1, 248, 161, 229, 227, 1, 231, 1, 229, 227, 1, 237, 204, 229, 227, - 1, 229, 213, 229, 227, 1, 193, 131, 229, 227, 1, 191, 89, 229, 227, 1, - 229, 152, 229, 227, 1, 199, 64, 229, 227, 1, 191, 249, 229, 227, 1, 222, - 49, 229, 227, 1, 220, 2, 229, 227, 1, 216, 174, 229, 227, 1, 212, 117, - 229, 227, 1, 205, 143, 229, 227, 1, 250, 74, 229, 227, 1, 210, 53, 229, - 227, 1, 205, 184, 229, 227, 1, 208, 31, 229, 227, 1, 203, 64, 229, 227, - 1, 199, 154, 229, 227, 31, 108, 229, 227, 31, 153, 229, 227, 31, 199, 90, - 229, 227, 31, 197, 28, 229, 227, 31, 91, 228, 109, 209, 188, 1, 251, 136, - 209, 188, 1, 248, 164, 209, 188, 1, 231, 176, 209, 188, 1, 237, 63, 209, - 188, 1, 229, 213, 209, 188, 1, 193, 138, 209, 188, 1, 191, 115, 209, 188, - 1, 229, 154, 209, 188, 1, 199, 68, 209, 188, 1, 191, 250, 209, 188, 1, - 222, 79, 209, 188, 1, 220, 8, 209, 188, 1, 216, 174, 209, 188, 1, 212, - 117, 209, 188, 1, 204, 14, 209, 188, 1, 251, 178, 209, 188, 1, 210, 53, - 209, 188, 1, 205, 186, 209, 188, 1, 208, 36, 209, 188, 1, 206, 119, 209, - 188, 1, 203, 64, 209, 188, 1, 199, 161, 209, 188, 31, 108, 209, 188, 31, - 199, 90, 209, 188, 31, 197, 28, 209, 188, 31, 91, 228, 109, 209, 188, 31, - 109, 209, 188, 31, 139, 209, 188, 193, 23, 204, 5, 218, 159, 1, 65, 218, - 159, 1, 250, 70, 218, 159, 1, 232, 14, 218, 159, 1, 238, 80, 218, 159, 1, - 73, 218, 159, 1, 196, 8, 218, 159, 1, 70, 218, 159, 1, 192, 159, 218, - 159, 1, 222, 125, 218, 159, 1, 170, 218, 159, 1, 218, 147, 218, 159, 1, - 215, 47, 218, 159, 1, 74, 218, 159, 1, 148, 218, 159, 1, 201, 173, 218, - 159, 1, 200, 39, 218, 159, 1, 69, 218, 159, 1, 233, 134, 218, 159, 1, - 208, 97, 218, 159, 1, 206, 3, 218, 159, 1, 197, 131, 218, 159, 1, 251, - 81, 218, 159, 1, 234, 61, 218, 159, 1, 218, 162, 218, 159, 1, 213, 67, - 218, 159, 1, 247, 145, 218, 159, 197, 234, 77, 151, 229, 112, 1, 65, 151, - 229, 112, 1, 73, 151, 229, 112, 1, 70, 151, 229, 112, 1, 74, 151, 229, - 112, 1, 169, 151, 229, 112, 1, 193, 187, 151, 229, 112, 1, 249, 103, 151, - 229, 112, 1, 249, 102, 151, 229, 112, 1, 168, 151, 229, 112, 1, 172, 151, - 229, 112, 1, 180, 151, 229, 112, 1, 214, 247, 151, 229, 112, 1, 214, 107, - 151, 229, 112, 1, 214, 105, 151, 229, 112, 1, 166, 151, 229, 112, 1, 207, - 179, 151, 229, 112, 1, 171, 151, 229, 112, 1, 221, 190, 151, 229, 112, 1, - 229, 145, 151, 229, 112, 1, 189, 151, 229, 112, 1, 205, 200, 151, 229, - 112, 1, 205, 63, 151, 229, 112, 1, 157, 151, 229, 112, 1, 208, 89, 151, - 229, 112, 1, 199, 247, 151, 229, 112, 1, 199, 245, 151, 229, 112, 1, 199, - 140, 151, 229, 112, 1, 199, 138, 151, 229, 112, 1, 159, 151, 229, 112, 1, - 237, 241, 151, 229, 112, 16, 195, 60, 151, 229, 112, 16, 195, 59, 151, - 238, 119, 1, 65, 151, 238, 119, 1, 73, 151, 238, 119, 1, 70, 151, 238, - 119, 1, 74, 151, 238, 119, 1, 169, 151, 238, 119, 1, 193, 187, 151, 238, - 119, 1, 249, 103, 151, 238, 119, 1, 168, 151, 238, 119, 1, 172, 151, 238, - 119, 1, 180, 151, 238, 119, 1, 214, 107, 151, 238, 119, 1, 166, 151, 238, - 119, 1, 171, 151, 238, 119, 1, 221, 190, 151, 238, 119, 1, 229, 145, 151, - 238, 119, 1, 189, 151, 238, 119, 1, 250, 220, 189, 151, 238, 119, 1, 205, - 63, 151, 238, 119, 1, 157, 151, 238, 119, 1, 208, 89, 151, 238, 119, 1, - 199, 247, 151, 238, 119, 1, 199, 140, 151, 238, 119, 1, 159, 151, 238, - 119, 1, 237, 241, 151, 238, 119, 232, 80, 234, 85, 197, 35, 151, 238, - 119, 232, 80, 91, 230, 37, 151, 238, 119, 219, 4, 206, 163, 151, 238, - 119, 219, 4, 223, 141, 151, 238, 119, 31, 108, 151, 238, 119, 31, 109, - 151, 238, 119, 31, 139, 151, 238, 119, 31, 137, 151, 238, 119, 31, 153, - 151, 238, 119, 31, 173, 151, 238, 119, 31, 181, 151, 238, 119, 31, 176, - 151, 238, 119, 31, 184, 151, 238, 119, 31, 199, 90, 151, 238, 119, 31, - 197, 28, 151, 238, 119, 31, 198, 244, 151, 238, 119, 31, 232, 97, 151, - 238, 119, 31, 232, 230, 151, 238, 119, 31, 202, 115, 151, 238, 119, 31, - 203, 236, 151, 238, 119, 31, 91, 228, 109, 151, 238, 119, 31, 103, 228, - 109, 151, 238, 119, 31, 115, 228, 109, 151, 238, 119, 31, 232, 90, 228, - 109, 151, 238, 119, 31, 232, 185, 228, 109, 151, 238, 119, 31, 202, 131, - 228, 109, 151, 238, 119, 31, 203, 242, 228, 109, 151, 238, 119, 31, 234, - 121, 228, 109, 151, 238, 119, 31, 213, 161, 228, 109, 151, 238, 119, 31, - 91, 188, 151, 238, 119, 31, 103, 188, 151, 238, 119, 31, 115, 188, 151, - 238, 119, 31, 232, 90, 188, 151, 238, 119, 31, 232, 185, 188, 151, 238, - 119, 31, 202, 131, 188, 151, 238, 119, 31, 203, 242, 188, 151, 238, 119, - 31, 234, 121, 188, 151, 238, 119, 31, 213, 161, 188, 151, 238, 119, 31, - 199, 91, 188, 151, 238, 119, 31, 197, 29, 188, 151, 238, 119, 31, 198, - 245, 188, 151, 238, 119, 31, 232, 98, 188, 151, 238, 119, 31, 232, 231, - 188, 151, 238, 119, 31, 202, 116, 188, 151, 238, 119, 31, 203, 237, 188, - 151, 238, 119, 31, 234, 111, 188, 151, 238, 119, 31, 213, 157, 188, 151, - 238, 119, 31, 91, 228, 110, 188, 151, 238, 119, 31, 103, 228, 110, 188, - 151, 238, 119, 31, 115, 228, 110, 188, 151, 238, 119, 31, 232, 90, 228, - 110, 188, 151, 238, 119, 31, 232, 185, 228, 110, 188, 151, 238, 119, 31, - 202, 131, 228, 110, 188, 151, 238, 119, 31, 203, 242, 228, 110, 188, 151, - 238, 119, 31, 234, 121, 228, 110, 188, 151, 238, 119, 31, 213, 161, 228, - 110, 188, 151, 238, 119, 232, 80, 91, 197, 36, 151, 238, 119, 232, 80, - 103, 197, 35, 151, 238, 119, 232, 80, 115, 197, 35, 151, 238, 119, 232, - 80, 232, 90, 197, 35, 151, 238, 119, 232, 80, 232, 185, 197, 35, 151, - 238, 119, 232, 80, 202, 131, 197, 35, 151, 238, 119, 232, 80, 203, 242, - 197, 35, 151, 238, 119, 232, 80, 234, 121, 197, 35, 151, 238, 119, 232, - 80, 213, 161, 197, 35, 151, 238, 119, 232, 80, 199, 91, 197, 35, 221, - 175, 1, 65, 221, 175, 18, 3, 70, 221, 175, 18, 3, 69, 221, 175, 18, 3, - 121, 148, 221, 175, 18, 3, 73, 221, 175, 18, 3, 74, 221, 175, 18, 219, - 174, 77, 221, 175, 3, 54, 206, 184, 60, 221, 175, 3, 251, 20, 221, 175, - 3, 195, 32, 221, 175, 1, 157, 221, 175, 1, 221, 190, 221, 175, 1, 231, - 203, 221, 175, 1, 231, 54, 221, 175, 1, 247, 112, 221, 175, 1, 246, 209, - 221, 175, 1, 223, 4, 221, 175, 1, 212, 88, 221, 175, 1, 197, 128, 221, - 175, 1, 197, 116, 221, 175, 1, 237, 146, 221, 175, 1, 237, 130, 221, 175, - 1, 213, 66, 221, 175, 1, 199, 247, 221, 175, 1, 199, 44, 221, 175, 1, - 237, 241, 221, 175, 1, 237, 23, 221, 175, 1, 180, 221, 175, 1, 168, 221, - 175, 1, 209, 219, 221, 175, 1, 249, 103, 221, 175, 1, 248, 153, 221, 175, - 1, 172, 221, 175, 1, 169, 221, 175, 1, 166, 221, 175, 1, 171, 221, 175, - 1, 195, 185, 221, 175, 1, 203, 160, 221, 175, 1, 201, 170, 221, 175, 1, - 189, 221, 175, 1, 191, 123, 221, 175, 1, 144, 221, 175, 1, 221, 77, 221, - 175, 1, 197, 96, 221, 175, 1, 197, 97, 221, 175, 1, 195, 67, 221, 175, 3, - 249, 38, 56, 221, 175, 3, 247, 26, 221, 175, 3, 75, 60, 221, 175, 195, - 37, 221, 175, 17, 108, 221, 175, 17, 109, 221, 175, 17, 139, 221, 175, - 17, 137, 221, 175, 31, 199, 90, 221, 175, 31, 197, 28, 221, 175, 31, 91, - 228, 109, 221, 175, 31, 91, 188, 221, 175, 232, 80, 91, 230, 37, 221, - 175, 208, 145, 236, 96, 221, 175, 208, 145, 2, 242, 218, 221, 175, 208, - 145, 242, 218, 221, 175, 208, 145, 238, 181, 164, 221, 175, 208, 145, - 217, 63, 221, 175, 208, 145, 218, 224, 221, 175, 208, 145, 237, 193, 221, - 175, 208, 145, 54, 237, 193, 221, 175, 208, 145, 219, 82, 38, 201, 253, - 250, 235, 1, 229, 213, 38, 201, 253, 250, 235, 1, 220, 2, 38, 201, 253, - 250, 235, 1, 229, 152, 38, 201, 253, 250, 235, 1, 216, 174, 38, 201, 253, - 250, 235, 1, 208, 31, 38, 201, 253, 250, 235, 1, 193, 131, 38, 201, 253, - 250, 235, 1, 203, 64, 38, 201, 253, 250, 235, 1, 207, 33, 38, 201, 253, - 250, 235, 1, 248, 161, 38, 201, 253, 250, 235, 1, 199, 154, 38, 201, 253, - 250, 235, 1, 205, 117, 38, 201, 253, 250, 235, 1, 222, 49, 38, 201, 253, - 250, 235, 1, 212, 117, 38, 201, 253, 250, 235, 1, 221, 170, 38, 201, 253, - 250, 235, 1, 205, 184, 38, 201, 253, 250, 235, 1, 205, 143, 38, 201, 253, - 250, 235, 1, 233, 18, 38, 201, 253, 250, 235, 1, 251, 141, 38, 201, 253, - 250, 235, 1, 250, 74, 38, 201, 253, 250, 235, 1, 237, 20, 38, 201, 253, - 250, 235, 1, 231, 1, 38, 201, 253, 250, 235, 1, 237, 205, 38, 201, 253, - 250, 235, 1, 231, 42, 38, 201, 253, 250, 235, 1, 199, 64, 38, 201, 253, - 250, 235, 1, 191, 89, 38, 201, 253, 250, 235, 1, 237, 17, 38, 201, 253, - 250, 235, 1, 191, 249, 38, 201, 253, 250, 235, 1, 199, 30, 38, 201, 253, - 250, 235, 1, 199, 9, 38, 201, 253, 250, 235, 31, 108, 38, 201, 253, 250, - 235, 31, 232, 230, 38, 201, 253, 250, 235, 167, 223, 116, 38, 185, 250, - 235, 1, 229, 178, 38, 185, 250, 235, 1, 220, 11, 38, 185, 250, 235, 1, - 230, 48, 38, 185, 250, 235, 1, 216, 189, 38, 185, 250, 235, 1, 208, 82, - 38, 185, 250, 235, 1, 193, 131, 38, 185, 250, 235, 1, 233, 234, 38, 185, - 250, 235, 1, 207, 66, 38, 185, 250, 235, 1, 248, 195, 38, 185, 250, 235, - 1, 199, 109, 38, 185, 250, 235, 1, 233, 235, 38, 185, 250, 235, 1, 222, - 79, 38, 185, 250, 235, 1, 213, 11, 38, 185, 250, 235, 1, 221, 185, 38, - 185, 250, 235, 1, 205, 187, 38, 185, 250, 235, 1, 233, 233, 38, 185, 250, - 235, 1, 233, 5, 38, 185, 250, 235, 1, 251, 141, 38, 185, 250, 235, 1, - 251, 178, 38, 185, 250, 235, 1, 237, 235, 38, 185, 250, 235, 1, 231, 119, - 38, 185, 250, 235, 1, 237, 212, 38, 185, 250, 235, 1, 231, 49, 38, 185, - 250, 235, 1, 199, 214, 38, 185, 250, 235, 1, 191, 113, 38, 185, 250, 235, - 1, 199, 36, 38, 185, 250, 235, 1, 192, 75, 38, 185, 250, 235, 1, 199, 24, - 38, 185, 250, 235, 1, 191, 116, 38, 185, 250, 235, 31, 108, 38, 185, 250, - 235, 31, 199, 90, 38, 185, 250, 235, 31, 197, 28, 217, 61, 1, 251, 139, - 217, 61, 1, 248, 161, 217, 61, 1, 248, 146, 217, 61, 1, 231, 1, 217, 61, - 1, 231, 27, 217, 61, 1, 237, 205, 217, 61, 1, 229, 213, 217, 61, 1, 193, - 131, 217, 61, 3, 196, 154, 217, 61, 1, 191, 91, 217, 61, 1, 191, 64, 217, - 61, 1, 222, 240, 217, 61, 1, 222, 221, 217, 61, 1, 229, 152, 217, 61, 1, - 199, 64, 217, 61, 1, 191, 249, 217, 61, 1, 222, 49, 217, 61, 1, 192, 217, - 217, 61, 1, 221, 177, 217, 61, 1, 220, 2, 217, 61, 1, 237, 16, 217, 61, - 1, 199, 35, 217, 61, 1, 216, 174, 217, 61, 1, 212, 117, 217, 61, 1, 205, - 143, 217, 61, 1, 250, 76, 217, 61, 1, 252, 106, 217, 61, 1, 210, 53, 217, - 61, 1, 233, 18, 217, 61, 1, 205, 184, 217, 61, 1, 208, 31, 217, 61, 1, - 192, 193, 217, 61, 1, 208, 58, 217, 61, 1, 207, 33, 217, 61, 1, 203, 64, - 217, 61, 1, 201, 138, 217, 61, 1, 199, 154, 217, 61, 252, 16, 87, 56, - 217, 61, 252, 16, 87, 60, 217, 61, 31, 108, 217, 61, 31, 153, 217, 61, - 31, 199, 90, 217, 61, 31, 197, 28, 217, 61, 31, 91, 228, 109, 217, 61, - 208, 145, 201, 97, 217, 61, 208, 145, 232, 161, 217, 61, 208, 145, 54, - 75, 193, 53, 236, 96, 217, 61, 208, 145, 75, 193, 53, 236, 96, 217, 61, - 208, 145, 236, 96, 217, 61, 208, 145, 103, 236, 94, 217, 61, 208, 145, - 219, 89, 232, 218, 250, 92, 1, 65, 250, 92, 1, 252, 154, 250, 92, 1, 251, - 18, 250, 92, 1, 252, 112, 250, 92, 1, 251, 81, 250, 92, 1, 252, 114, 250, - 92, 1, 251, 229, 250, 92, 1, 251, 225, 250, 92, 1, 73, 250, 92, 1, 234, - 145, 250, 92, 1, 74, 250, 92, 1, 211, 76, 250, 92, 1, 70, 250, 92, 1, - 223, 170, 250, 92, 1, 69, 250, 92, 1, 196, 26, 250, 92, 1, 221, 253, 250, - 92, 1, 192, 214, 250, 92, 1, 192, 173, 250, 92, 1, 192, 184, 250, 92, 1, - 231, 128, 250, 92, 1, 231, 85, 250, 92, 1, 231, 40, 250, 92, 1, 246, 250, - 250, 92, 1, 222, 238, 250, 92, 1, 199, 140, 250, 92, 1, 199, 28, 250, 92, - 1, 237, 101, 250, 92, 1, 237, 14, 250, 92, 1, 197, 123, 250, 92, 1, 210, - 53, 250, 92, 1, 233, 18, 250, 92, 1, 248, 223, 250, 92, 1, 248, 148, 250, - 92, 1, 214, 41, 250, 92, 1, 213, 212, 250, 92, 1, 213, 213, 250, 92, 1, - 214, 107, 250, 92, 1, 212, 77, 250, 92, 1, 213, 61, 250, 92, 1, 216, 213, - 250, 92, 1, 229, 41, 250, 92, 1, 191, 173, 250, 92, 1, 192, 80, 250, 92, - 1, 195, 150, 250, 92, 1, 207, 108, 250, 92, 1, 219, 214, 250, 92, 1, 205, - 63, 250, 92, 1, 191, 87, 250, 92, 1, 203, 108, 250, 92, 1, 191, 62, 250, - 92, 1, 202, 224, 250, 92, 1, 201, 139, 250, 92, 1, 229, 213, 250, 92, - 252, 16, 77, 198, 133, 103, 183, 138, 91, 75, 208, 144, 2, 103, 183, 138, - 91, 75, 208, 144, 219, 245, 103, 183, 138, 91, 75, 208, 144, 219, 245, - 91, 75, 138, 103, 183, 208, 144, 219, 245, 103, 206, 180, 138, 91, 206, - 184, 208, 144, 219, 245, 91, 206, 184, 138, 103, 206, 180, 208, 144, 223, - 94, 210, 96, 1, 251, 139, 223, 94, 210, 96, 1, 248, 161, 223, 94, 210, - 96, 1, 231, 1, 223, 94, 210, 96, 1, 237, 205, 223, 94, 210, 96, 1, 229, - 213, 223, 94, 210, 96, 1, 193, 131, 223, 94, 210, 96, 1, 191, 91, 223, - 94, 210, 96, 1, 229, 152, 223, 94, 210, 96, 1, 199, 64, 223, 94, 210, 96, - 1, 191, 249, 223, 94, 210, 96, 1, 222, 49, 223, 94, 210, 96, 1, 220, 2, - 223, 94, 210, 96, 1, 216, 174, 223, 94, 210, 96, 1, 212, 117, 223, 94, - 210, 96, 1, 205, 143, 223, 94, 210, 96, 1, 250, 76, 223, 94, 210, 96, 1, - 210, 53, 223, 94, 210, 96, 1, 205, 184, 223, 94, 210, 96, 1, 208, 31, - 223, 94, 210, 96, 1, 207, 33, 223, 94, 210, 96, 1, 203, 64, 223, 94, 210, - 96, 1, 199, 154, 223, 94, 210, 96, 31, 108, 223, 94, 210, 96, 31, 109, - 223, 94, 210, 96, 31, 139, 223, 94, 210, 96, 31, 137, 223, 94, 210, 96, - 31, 199, 90, 223, 94, 210, 96, 31, 197, 28, 223, 94, 210, 96, 31, 91, - 228, 109, 223, 94, 210, 96, 31, 91, 188, 223, 94, 210, 189, 1, 251, 139, - 223, 94, 210, 189, 1, 248, 161, 223, 94, 210, 189, 1, 231, 1, 223, 94, - 210, 189, 1, 237, 205, 223, 94, 210, 189, 1, 229, 213, 223, 94, 210, 189, - 1, 193, 130, 223, 94, 210, 189, 1, 191, 91, 223, 94, 210, 189, 1, 229, - 152, 223, 94, 210, 189, 1, 199, 64, 223, 94, 210, 189, 1, 191, 249, 223, - 94, 210, 189, 1, 222, 49, 223, 94, 210, 189, 1, 220, 2, 223, 94, 210, - 189, 1, 216, 173, 223, 94, 210, 189, 1, 212, 117, 223, 94, 210, 189, 1, - 205, 143, 223, 94, 210, 189, 1, 210, 53, 223, 94, 210, 189, 1, 205, 184, - 223, 94, 210, 189, 1, 203, 64, 223, 94, 210, 189, 1, 199, 154, 223, 94, - 210, 189, 31, 108, 223, 94, 210, 189, 31, 109, 223, 94, 210, 189, 31, - 139, 223, 94, 210, 189, 31, 137, 223, 94, 210, 189, 31, 199, 90, 223, 94, - 210, 189, 31, 197, 28, 223, 94, 210, 189, 31, 91, 228, 109, 223, 94, 210, - 189, 31, 91, 188, 208, 170, 210, 189, 1, 251, 139, 208, 170, 210, 189, 1, - 248, 161, 208, 170, 210, 189, 1, 231, 1, 208, 170, 210, 189, 1, 237, 205, - 208, 170, 210, 189, 1, 229, 213, 208, 170, 210, 189, 1, 193, 130, 208, - 170, 210, 189, 1, 191, 91, 208, 170, 210, 189, 1, 229, 152, 208, 170, - 210, 189, 1, 191, 249, 208, 170, 210, 189, 1, 222, 49, 208, 170, 210, - 189, 1, 220, 2, 208, 170, 210, 189, 1, 216, 173, 208, 170, 210, 189, 1, - 212, 117, 208, 170, 210, 189, 1, 205, 143, 208, 170, 210, 189, 1, 210, - 53, 208, 170, 210, 189, 1, 205, 184, 208, 170, 210, 189, 1, 203, 64, 208, - 170, 210, 189, 1, 199, 154, 208, 170, 210, 189, 205, 49, 77, 208, 170, - 210, 189, 152, 205, 49, 77, 208, 170, 210, 189, 232, 90, 183, 4, 238, - 170, 208, 170, 210, 189, 232, 90, 183, 4, 236, 96, 208, 170, 210, 189, - 31, 108, 208, 170, 210, 189, 31, 109, 208, 170, 210, 189, 31, 139, 208, - 170, 210, 189, 31, 137, 208, 170, 210, 189, 31, 199, 90, 208, 170, 210, - 189, 31, 197, 28, 208, 170, 210, 189, 31, 91, 228, 109, 38, 197, 57, 1, - 211, 34, 65, 38, 197, 57, 1, 192, 68, 65, 38, 197, 57, 1, 192, 68, 251, - 229, 38, 197, 57, 1, 211, 34, 70, 38, 197, 57, 1, 192, 68, 70, 38, 197, - 57, 1, 192, 68, 73, 38, 197, 57, 1, 211, 34, 74, 38, 197, 57, 1, 211, 34, - 211, 139, 38, 197, 57, 1, 192, 68, 211, 139, 38, 197, 57, 1, 211, 34, - 252, 103, 38, 197, 57, 1, 192, 68, 252, 103, 38, 197, 57, 1, 211, 34, - 251, 228, 38, 197, 57, 1, 192, 68, 251, 228, 38, 197, 57, 1, 211, 34, - 251, 201, 38, 197, 57, 1, 192, 68, 251, 201, 38, 197, 57, 1, 211, 34, - 251, 223, 38, 197, 57, 1, 192, 68, 251, 223, 38, 197, 57, 1, 211, 34, - 251, 246, 38, 197, 57, 1, 192, 68, 251, 246, 38, 197, 57, 1, 211, 34, - 251, 227, 38, 197, 57, 1, 211, 34, 233, 141, 38, 197, 57, 1, 192, 68, - 233, 141, 38, 197, 57, 1, 211, 34, 250, 81, 38, 197, 57, 1, 192, 68, 250, - 81, 38, 197, 57, 1, 211, 34, 251, 210, 38, 197, 57, 1, 192, 68, 251, 210, - 38, 197, 57, 1, 211, 34, 251, 221, 38, 197, 57, 1, 192, 68, 251, 221, 38, - 197, 57, 1, 211, 34, 211, 137, 38, 197, 57, 1, 192, 68, 211, 137, 38, - 197, 57, 1, 211, 34, 251, 156, 38, 197, 57, 1, 192, 68, 251, 156, 38, - 197, 57, 1, 211, 34, 251, 220, 38, 197, 57, 1, 211, 34, 234, 76, 38, 197, - 57, 1, 211, 34, 234, 72, 38, 197, 57, 1, 211, 34, 251, 81, 38, 197, 57, - 1, 211, 34, 251, 218, 38, 197, 57, 1, 192, 68, 251, 218, 38, 197, 57, 1, - 211, 34, 234, 38, 38, 197, 57, 1, 192, 68, 234, 38, 38, 197, 57, 1, 211, - 34, 234, 58, 38, 197, 57, 1, 192, 68, 234, 58, 38, 197, 57, 1, 211, 34, - 234, 24, 38, 197, 57, 1, 192, 68, 234, 24, 38, 197, 57, 1, 192, 68, 251, - 71, 38, 197, 57, 1, 211, 34, 234, 46, 38, 197, 57, 1, 192, 68, 251, 217, - 38, 197, 57, 1, 211, 34, 234, 14, 38, 197, 57, 1, 211, 34, 211, 67, 38, - 197, 57, 1, 211, 34, 227, 254, 38, 197, 57, 1, 211, 34, 234, 153, 38, - 197, 57, 1, 192, 68, 234, 153, 38, 197, 57, 1, 211, 34, 250, 243, 38, - 197, 57, 1, 192, 68, 250, 243, 38, 197, 57, 1, 211, 34, 223, 51, 38, 197, - 57, 1, 192, 68, 223, 51, 38, 197, 57, 1, 211, 34, 211, 47, 38, 197, 57, - 1, 192, 68, 211, 47, 38, 197, 57, 1, 211, 34, 250, 239, 38, 197, 57, 1, - 192, 68, 250, 239, 38, 197, 57, 1, 211, 34, 251, 216, 38, 197, 57, 1, - 211, 34, 250, 169, 38, 197, 57, 1, 211, 34, 251, 214, 38, 197, 57, 1, - 211, 34, 250, 159, 38, 197, 57, 1, 192, 68, 250, 159, 38, 197, 57, 1, - 211, 34, 233, 226, 38, 197, 57, 1, 192, 68, 233, 226, 38, 197, 57, 1, - 211, 34, 250, 132, 38, 197, 57, 1, 192, 68, 250, 132, 38, 197, 57, 1, - 211, 34, 251, 211, 38, 197, 57, 1, 192, 68, 251, 211, 38, 197, 57, 1, - 211, 34, 211, 20, 38, 197, 57, 1, 211, 34, 249, 21, 38, 175, 6, 1, 65, - 38, 175, 6, 1, 252, 154, 38, 175, 6, 1, 234, 155, 38, 175, 6, 1, 251, 93, - 38, 175, 6, 1, 234, 153, 38, 175, 6, 1, 234, 58, 38, 175, 6, 1, 234, 150, - 38, 175, 6, 1, 234, 149, 38, 175, 6, 1, 251, 74, 38, 175, 6, 1, 73, 38, - 175, 6, 1, 242, 172, 73, 38, 175, 6, 1, 234, 145, 38, 175, 6, 1, 234, - 138, 38, 175, 6, 1, 234, 137, 38, 175, 6, 1, 234, 133, 38, 175, 6, 1, - 234, 130, 38, 175, 6, 1, 70, 38, 175, 6, 1, 223, 170, 38, 175, 6, 1, 234, - 107, 38, 175, 6, 1, 234, 104, 38, 175, 6, 1, 251, 165, 38, 175, 6, 1, - 196, 82, 38, 175, 6, 1, 234, 97, 38, 175, 6, 1, 234, 75, 38, 175, 6, 1, - 234, 72, 38, 175, 6, 1, 234, 61, 38, 175, 6, 1, 234, 24, 38, 175, 6, 1, - 74, 38, 175, 6, 1, 211, 76, 38, 175, 6, 1, 213, 168, 211, 139, 38, 175, - 6, 1, 206, 53, 211, 139, 38, 175, 6, 1, 211, 138, 38, 175, 6, 1, 234, 14, - 38, 175, 6, 1, 234, 66, 38, 175, 6, 1, 233, 248, 38, 175, 6, 1, 203, 35, - 233, 248, 38, 175, 6, 1, 233, 236, 38, 175, 6, 1, 233, 215, 38, 175, 6, - 1, 233, 213, 38, 175, 6, 1, 234, 38, 38, 175, 6, 1, 233, 202, 38, 175, 6, - 1, 234, 151, 38, 175, 6, 1, 69, 38, 175, 6, 1, 196, 26, 38, 175, 6, 1, - 213, 168, 196, 148, 38, 175, 6, 1, 206, 53, 196, 148, 38, 175, 6, 1, 233, - 189, 38, 175, 6, 1, 233, 141, 38, 175, 6, 1, 233, 136, 38, 175, 6, 1, - 234, 37, 57, 38, 175, 6, 1, 196, 41, 38, 175, 2, 1, 65, 38, 175, 2, 1, - 252, 154, 38, 175, 2, 1, 234, 155, 38, 175, 2, 1, 251, 93, 38, 175, 2, 1, - 234, 153, 38, 175, 2, 1, 234, 58, 38, 175, 2, 1, 234, 150, 38, 175, 2, 1, - 234, 149, 38, 175, 2, 1, 251, 74, 38, 175, 2, 1, 73, 38, 175, 2, 1, 242, - 172, 73, 38, 175, 2, 1, 234, 145, 38, 175, 2, 1, 234, 138, 38, 175, 2, 1, - 234, 137, 38, 175, 2, 1, 234, 133, 38, 175, 2, 1, 234, 130, 38, 175, 2, - 1, 70, 38, 175, 2, 1, 223, 170, 38, 175, 2, 1, 234, 107, 38, 175, 2, 1, - 234, 104, 38, 175, 2, 1, 251, 165, 38, 175, 2, 1, 196, 82, 38, 175, 2, 1, - 234, 97, 38, 175, 2, 1, 234, 75, 38, 175, 2, 1, 234, 72, 38, 175, 2, 1, - 234, 61, 38, 175, 2, 1, 234, 24, 38, 175, 2, 1, 74, 38, 175, 2, 1, 211, - 76, 38, 175, 2, 1, 213, 168, 211, 139, 38, 175, 2, 1, 206, 53, 211, 139, - 38, 175, 2, 1, 211, 138, 38, 175, 2, 1, 234, 14, 38, 175, 2, 1, 234, 66, - 38, 175, 2, 1, 233, 248, 38, 175, 2, 1, 203, 35, 233, 248, 38, 175, 2, 1, - 233, 236, 38, 175, 2, 1, 233, 215, 38, 175, 2, 1, 233, 213, 38, 175, 2, - 1, 234, 38, 38, 175, 2, 1, 233, 202, 38, 175, 2, 1, 234, 151, 38, 175, 2, - 1, 69, 38, 175, 2, 1, 196, 26, 38, 175, 2, 1, 213, 168, 196, 148, 38, - 175, 2, 1, 206, 53, 196, 148, 38, 175, 2, 1, 233, 189, 38, 175, 2, 1, - 233, 141, 38, 175, 2, 1, 233, 136, 38, 175, 2, 1, 234, 37, 57, 38, 175, - 2, 1, 196, 41, 38, 175, 31, 108, 38, 175, 31, 153, 38, 175, 31, 199, 90, - 38, 175, 31, 232, 230, 38, 175, 31, 91, 228, 109, 38, 175, 31, 91, 188, - 229, 247, 206, 137, 1, 65, 229, 247, 206, 137, 1, 249, 103, 229, 247, - 206, 137, 1, 168, 229, 247, 206, 137, 1, 199, 247, 229, 247, 206, 137, 1, - 197, 128, 229, 247, 206, 137, 1, 223, 4, 229, 247, 206, 137, 1, 247, 112, - 229, 247, 206, 137, 1, 144, 229, 247, 206, 137, 1, 221, 190, 229, 247, - 206, 137, 1, 233, 68, 229, 247, 206, 137, 1, 237, 241, 229, 247, 206, - 137, 1, 237, 146, 229, 247, 206, 137, 1, 166, 229, 247, 206, 137, 1, 206, - 104, 229, 247, 206, 137, 1, 191, 123, 229, 247, 206, 137, 1, 189, 229, - 247, 206, 137, 1, 203, 160, 229, 247, 206, 137, 1, 157, 229, 247, 206, - 137, 1, 231, 203, 229, 247, 206, 137, 1, 171, 229, 247, 206, 137, 1, 172, - 229, 247, 206, 137, 1, 180, 229, 247, 206, 137, 1, 193, 187, 229, 247, - 206, 137, 1, 221, 113, 193, 187, 229, 247, 206, 137, 1, 169, 229, 247, - 206, 137, 1, 221, 113, 169, 229, 247, 206, 137, 1, 214, 54, 229, 247, - 206, 137, 1, 212, 88, 229, 247, 206, 137, 1, 195, 185, 229, 247, 206, - 137, 18, 65, 229, 247, 206, 137, 18, 70, 229, 247, 206, 137, 18, 69, 229, - 247, 206, 137, 18, 73, 229, 247, 206, 137, 18, 74, 229, 247, 206, 137, - 87, 205, 168, 229, 247, 206, 137, 87, 214, 249, 221, 154, 229, 247, 206, - 137, 3, 229, 241, 229, 247, 206, 137, 3, 199, 213, 229, 247, 206, 137, 3, - 199, 187, 229, 247, 206, 137, 3, 199, 167, 229, 247, 206, 137, 17, 191, - 77, 229, 247, 206, 137, 17, 108, 229, 247, 206, 137, 17, 109, 229, 247, - 206, 137, 17, 139, 229, 247, 206, 137, 17, 137, 229, 247, 206, 137, 17, - 153, 229, 247, 206, 137, 17, 173, 229, 247, 206, 137, 17, 181, 229, 247, - 206, 137, 17, 176, 229, 247, 206, 137, 17, 184, 206, 41, 17, 108, 206, - 41, 17, 109, 206, 41, 17, 139, 206, 41, 17, 137, 206, 41, 17, 153, 206, - 41, 17, 173, 206, 41, 17, 181, 206, 41, 17, 176, 206, 41, 17, 184, 206, - 41, 31, 199, 90, 206, 41, 31, 197, 28, 206, 41, 31, 198, 244, 206, 41, - 31, 232, 97, 206, 41, 31, 232, 230, 206, 41, 31, 202, 115, 206, 41, 31, - 203, 236, 206, 41, 31, 234, 110, 206, 41, 31, 213, 156, 206, 41, 31, 91, - 228, 109, 206, 41, 31, 103, 228, 109, 206, 41, 31, 115, 228, 109, 206, - 41, 31, 232, 90, 228, 109, 206, 41, 31, 232, 185, 228, 109, 206, 41, 31, - 202, 131, 228, 109, 206, 41, 31, 203, 242, 228, 109, 206, 41, 31, 234, - 121, 228, 109, 206, 41, 31, 213, 161, 228, 109, 206, 41, 232, 80, 91, - 230, 37, 206, 41, 232, 80, 91, 208, 17, 206, 41, 232, 80, 91, 198, 251, - 206, 41, 232, 80, 103, 198, 248, 192, 39, 1, 234, 81, 192, 39, 1, 248, - 223, 192, 39, 1, 210, 53, 192, 39, 1, 209, 205, 192, 39, 1, 199, 28, 192, - 39, 1, 205, 63, 192, 39, 1, 242, 224, 192, 39, 1, 243, 35, 192, 39, 1, - 243, 49, 192, 39, 1, 229, 145, 192, 39, 1, 192, 220, 192, 39, 1, 237, - 212, 192, 39, 1, 191, 108, 192, 39, 1, 166, 192, 39, 1, 207, 1, 192, 39, - 1, 191, 123, 192, 39, 1, 223, 4, 192, 39, 1, 202, 169, 192, 39, 1, 203, - 64, 192, 39, 1, 205, 187, 192, 39, 1, 237, 235, 192, 39, 1, 199, 247, - 192, 39, 1, 191, 87, 192, 39, 1, 233, 143, 192, 39, 1, 192, 208, 192, 39, - 1, 233, 68, 192, 39, 1, 195, 185, 192, 39, 1, 195, 186, 251, 106, 20, - 192, 39, 1, 208, 82, 192, 39, 1, 222, 79, 192, 39, 1, 221, 187, 192, 39, - 1, 231, 190, 192, 39, 1, 220, 11, 192, 39, 1, 216, 28, 192, 39, 1, 212, - 117, 192, 39, 1, 196, 116, 192, 39, 1, 193, 131, 192, 39, 1, 210, 240, - 192, 39, 1, 233, 183, 192, 39, 1, 229, 220, 192, 39, 1, 191, 240, 192, - 39, 1, 233, 213, 192, 39, 33, 230, 25, 77, 192, 39, 33, 217, 121, 77, - 192, 39, 228, 56, 77, 192, 39, 1, 220, 12, 4, 75, 56, 192, 39, 1, 191, - 241, 4, 242, 210, 56, 38, 202, 23, 1, 251, 139, 38, 202, 23, 1, 52, 251, - 139, 38, 202, 23, 1, 248, 161, 38, 202, 23, 1, 52, 248, 161, 38, 202, 23, - 1, 231, 1, 38, 202, 23, 1, 229, 213, 38, 202, 23, 1, 52, 229, 213, 38, - 202, 23, 1, 193, 131, 38, 202, 23, 1, 191, 91, 38, 202, 23, 1, 229, 152, - 38, 202, 23, 1, 191, 249, 38, 202, 23, 1, 222, 49, 38, 202, 23, 1, 220, - 2, 38, 202, 23, 1, 216, 174, 38, 202, 23, 1, 212, 117, 38, 202, 23, 1, - 52, 212, 117, 38, 202, 23, 1, 52, 212, 118, 4, 81, 199, 210, 38, 202, 23, - 1, 205, 143, 38, 202, 23, 1, 250, 76, 38, 202, 23, 1, 251, 106, 250, 76, - 38, 202, 23, 1, 210, 53, 38, 202, 23, 1, 205, 184, 38, 202, 23, 1, 52, - 205, 184, 38, 202, 23, 1, 52, 205, 185, 4, 81, 199, 210, 38, 202, 23, 1, - 207, 31, 38, 202, 23, 1, 203, 64, 38, 202, 23, 1, 199, 154, 38, 202, 23, - 1, 52, 199, 154, 38, 202, 23, 1, 52, 199, 155, 4, 81, 199, 210, 38, 202, - 23, 31, 108, 38, 202, 23, 31, 109, 38, 202, 23, 31, 139, 38, 202, 23, 31, - 137, 38, 202, 23, 31, 153, 38, 202, 23, 31, 199, 90, 38, 202, 23, 31, - 197, 28, 38, 202, 23, 31, 198, 244, 38, 202, 23, 31, 91, 228, 109, 38, - 202, 23, 232, 80, 91, 230, 37, 38, 202, 23, 34, 250, 75, 202, 23, 1, 251, - 139, 202, 23, 1, 248, 161, 202, 23, 1, 231, 1, 202, 23, 1, 229, 213, 202, - 23, 1, 193, 131, 202, 23, 1, 191, 91, 202, 23, 1, 229, 152, 202, 23, 1, - 191, 249, 202, 23, 1, 222, 49, 202, 23, 1, 220, 2, 202, 23, 1, 216, 174, - 202, 23, 1, 212, 117, 202, 23, 1, 205, 143, 202, 23, 1, 250, 76, 202, 23, - 1, 210, 53, 202, 23, 1, 205, 184, 202, 23, 1, 207, 32, 202, 23, 1, 203, - 64, 202, 23, 1, 199, 154, 202, 23, 1, 232, 245, 202, 23, 1, 219, 158, - 202, 23, 223, 121, 203, 64, 202, 23, 33, 75, 60, 202, 23, 33, 103, 183, - 60, 202, 23, 33, 75, 56, 202, 23, 33, 103, 183, 56, 202, 23, 33, 238, - 118, 56, 202, 23, 33, 238, 118, 60, 202, 23, 33, 228, 219, 56, 202, 23, - 33, 228, 219, 60, 202, 23, 33, 177, 228, 219, 60, 202, 23, 33, 207, 34, - 60, 202, 23, 33, 201, 23, 60, 202, 23, 31, 108, 202, 23, 31, 199, 90, - 202, 23, 31, 197, 28, 202, 23, 31, 91, 228, 109, 202, 23, 208, 145, 103, - 81, 249, 26, 202, 23, 208, 145, 103, 81, 249, 27, 4, 236, 94, 202, 23, - 208, 145, 242, 219, 4, 236, 96, 202, 23, 208, 145, 103, 242, 216, 4, 236, - 94, 202, 23, 208, 145, 134, 242, 219, 4, 236, 96, 38, 196, 15, 1, 251, - 139, 38, 196, 15, 1, 248, 161, 38, 196, 15, 1, 231, 0, 38, 196, 15, 1, - 193, 131, 38, 196, 15, 1, 191, 91, 38, 196, 15, 1, 52, 229, 152, 38, 196, - 15, 1, 191, 249, 38, 196, 15, 1, 222, 49, 38, 196, 15, 1, 220, 2, 38, - 196, 15, 1, 216, 174, 38, 196, 15, 1, 212, 117, 38, 196, 15, 1, 205, 143, - 38, 196, 15, 1, 210, 53, 38, 196, 15, 1, 205, 184, 38, 196, 15, 1, 207, - 33, 38, 196, 15, 1, 203, 64, 38, 196, 15, 1, 199, 154, 38, 196, 15, 1, - 219, 158, 38, 196, 15, 33, 75, 56, 38, 196, 15, 33, 75, 60, 38, 196, 15, - 33, 103, 183, 56, 38, 196, 15, 33, 103, 183, 60, 38, 196, 15, 208, 145, - 164, 38, 196, 15, 208, 145, 103, 249, 26, 38, 196, 15, 208, 145, 103, - 236, 94, 38, 196, 15, 208, 145, 232, 90, 236, 94, 243, 13, 1, 251, 139, - 243, 13, 1, 2, 251, 139, 243, 13, 1, 248, 161, 243, 13, 1, 231, 1, 243, - 13, 1, 237, 205, 243, 13, 1, 229, 213, 243, 13, 1, 193, 131, 243, 13, 1, - 238, 127, 193, 131, 243, 13, 1, 191, 91, 243, 13, 1, 229, 152, 243, 13, - 1, 191, 249, 243, 13, 1, 222, 49, 243, 13, 1, 220, 2, 243, 13, 1, 216, - 174, 243, 13, 1, 212, 117, 243, 13, 1, 205, 143, 243, 13, 1, 250, 76, - 243, 13, 1, 210, 53, 243, 13, 1, 207, 33, 243, 13, 1, 203, 64, 243, 13, - 1, 199, 154, 243, 13, 31, 108, 243, 13, 31, 109, 243, 13, 31, 139, 243, - 13, 31, 137, 243, 13, 31, 199, 90, 243, 13, 31, 197, 28, 243, 13, 31, 91, - 228, 109, 234, 74, 1, 251, 139, 234, 74, 1, 248, 161, 234, 74, 1, 231, 1, - 234, 74, 1, 237, 205, 234, 74, 1, 229, 213, 234, 74, 1, 193, 131, 234, - 74, 1, 191, 91, 234, 74, 1, 229, 152, 234, 74, 1, 199, 64, 234, 74, 1, - 191, 249, 234, 74, 1, 222, 49, 234, 74, 1, 220, 2, 234, 74, 1, 216, 174, - 234, 74, 1, 212, 117, 234, 74, 1, 205, 143, 234, 74, 1, 250, 76, 234, 74, - 1, 210, 53, 234, 74, 1, 205, 184, 234, 74, 1, 208, 31, 234, 74, 1, 207, - 33, 234, 74, 1, 203, 64, 234, 74, 1, 199, 154, 234, 74, 34, 191, 90, 162, - 3, 247, 71, 162, 3, 251, 20, 162, 3, 195, 32, 162, 3, 222, 210, 162, 3, - 196, 71, 162, 1, 65, 162, 1, 252, 154, 162, 1, 70, 162, 1, 223, 170, 162, - 1, 69, 162, 1, 196, 26, 162, 1, 121, 148, 162, 1, 121, 206, 105, 162, 1, - 121, 170, 162, 1, 121, 219, 50, 162, 1, 73, 162, 1, 251, 184, 162, 1, 74, - 162, 1, 250, 113, 162, 1, 157, 162, 1, 221, 190, 162, 1, 231, 203, 162, - 1, 231, 54, 162, 1, 214, 54, 162, 1, 247, 112, 162, 1, 246, 209, 162, 1, - 223, 4, 162, 1, 222, 225, 162, 1, 212, 88, 162, 1, 197, 128, 162, 1, 197, - 116, 162, 1, 237, 146, 162, 1, 237, 130, 162, 1, 213, 66, 162, 1, 199, - 247, 162, 1, 199, 44, 162, 1, 237, 241, 162, 1, 237, 23, 162, 1, 180, - 162, 1, 168, 162, 1, 209, 219, 162, 1, 249, 103, 162, 1, 248, 153, 162, - 1, 172, 162, 1, 169, 162, 1, 166, 162, 1, 171, 162, 1, 195, 185, 162, 1, - 203, 160, 162, 1, 201, 170, 162, 1, 189, 162, 1, 144, 162, 1, 219, 49, - 162, 1, 38, 44, 219, 38, 162, 1, 38, 44, 206, 104, 162, 1, 38, 44, 213, - 48, 162, 18, 3, 252, 154, 162, 18, 3, 248, 149, 252, 154, 162, 18, 3, 70, - 162, 18, 3, 223, 170, 162, 18, 3, 69, 162, 18, 3, 196, 26, 162, 18, 3, - 121, 148, 162, 18, 3, 121, 206, 105, 162, 18, 3, 121, 170, 162, 18, 3, - 121, 219, 50, 162, 18, 3, 73, 162, 18, 3, 251, 184, 162, 18, 3, 74, 162, - 18, 3, 250, 113, 162, 195, 37, 162, 237, 193, 162, 54, 237, 193, 162, - 208, 145, 236, 96, 162, 208, 145, 54, 236, 96, 162, 208, 145, 219, 88, - 162, 208, 145, 238, 181, 164, 162, 208, 145, 218, 224, 162, 31, 108, 162, - 31, 109, 162, 31, 139, 162, 31, 137, 162, 31, 153, 162, 31, 173, 162, 31, - 181, 162, 31, 176, 162, 31, 184, 162, 31, 199, 90, 162, 31, 197, 28, 162, - 31, 198, 244, 162, 31, 232, 97, 162, 31, 232, 230, 162, 31, 202, 115, - 162, 31, 203, 236, 162, 31, 234, 110, 162, 31, 213, 156, 162, 31, 91, - 228, 109, 162, 31, 91, 188, 162, 17, 191, 77, 162, 17, 108, 162, 17, 109, - 162, 17, 139, 162, 17, 137, 162, 17, 153, 162, 17, 173, 162, 17, 181, - 162, 17, 176, 162, 17, 184, 162, 3, 38, 44, 195, 37, 162, 1, 38, 44, 203, - 35, 73, 162, 1, 38, 44, 203, 35, 74, 162, 18, 3, 38, 44, 203, 35, 73, - 162, 18, 3, 38, 44, 203, 35, 74, 162, 1, 38, 44, 219, 49, 162, 31, 222, - 169, 222, 72, 3, 247, 71, 222, 72, 3, 251, 20, 222, 72, 3, 195, 32, 222, - 72, 1, 65, 222, 72, 1, 252, 154, 222, 72, 1, 70, 222, 72, 1, 223, 170, - 222, 72, 1, 69, 222, 72, 1, 196, 26, 222, 72, 1, 73, 222, 72, 1, 251, - 184, 222, 72, 1, 74, 222, 72, 1, 250, 113, 222, 72, 1, 157, 222, 72, 1, - 221, 190, 222, 72, 1, 231, 203, 222, 72, 1, 231, 54, 222, 72, 1, 214, 54, - 222, 72, 1, 247, 112, 222, 72, 1, 246, 209, 222, 72, 1, 223, 4, 222, 72, - 1, 222, 225, 222, 72, 1, 212, 88, 222, 72, 1, 197, 128, 222, 72, 1, 197, - 116, 222, 72, 1, 237, 146, 222, 72, 1, 237, 135, 222, 72, 1, 237, 130, - 222, 72, 1, 207, 1, 222, 72, 1, 213, 66, 222, 72, 1, 199, 247, 222, 72, - 1, 199, 44, 222, 72, 1, 237, 241, 222, 72, 1, 237, 23, 222, 72, 1, 180, - 222, 72, 1, 168, 222, 72, 1, 209, 219, 222, 72, 1, 249, 103, 222, 72, 1, - 248, 153, 222, 72, 1, 172, 222, 72, 1, 169, 222, 72, 1, 166, 222, 72, 1, - 171, 222, 72, 1, 195, 185, 222, 72, 1, 203, 160, 222, 72, 1, 201, 170, - 222, 72, 1, 189, 222, 72, 1, 144, 222, 72, 18, 3, 252, 154, 222, 72, 18, - 3, 70, 222, 72, 18, 3, 223, 170, 222, 72, 18, 3, 69, 222, 72, 18, 3, 196, - 26, 222, 72, 18, 3, 73, 222, 72, 18, 3, 251, 184, 222, 72, 18, 3, 74, - 222, 72, 18, 3, 250, 113, 222, 72, 3, 195, 37, 222, 72, 3, 212, 128, 222, - 72, 252, 16, 57, 222, 72, 234, 27, 57, 222, 72, 31, 57, 222, 72, 205, 49, - 77, 222, 72, 54, 205, 49, 77, 222, 72, 237, 193, 222, 72, 54, 237, 193, - 222, 72, 18, 3, 121, 148, 222, 72, 31, 3, 56, 202, 7, 202, 15, 1, 205, - 177, 202, 7, 202, 15, 1, 199, 214, 202, 7, 202, 15, 1, 249, 73, 202, 7, - 202, 15, 1, 247, 101, 202, 7, 202, 15, 1, 237, 221, 202, 7, 202, 15, 1, - 231, 188, 202, 7, 202, 15, 1, 217, 99, 202, 7, 202, 15, 1, 214, 51, 202, - 7, 202, 15, 1, 220, 75, 202, 7, 202, 15, 1, 214, 223, 202, 7, 202, 15, 1, - 195, 181, 202, 7, 202, 15, 1, 210, 190, 202, 7, 202, 15, 1, 192, 121, - 202, 7, 202, 15, 1, 207, 155, 202, 7, 202, 15, 1, 230, 48, 202, 7, 202, - 15, 1, 222, 77, 202, 7, 202, 15, 1, 222, 254, 202, 7, 202, 15, 1, 212, - 85, 202, 7, 202, 15, 1, 251, 193, 202, 7, 202, 15, 1, 234, 143, 202, 7, - 202, 15, 1, 223, 171, 202, 7, 202, 15, 1, 196, 137, 202, 7, 202, 15, 1, - 211, 124, 202, 7, 202, 15, 1, 234, 130, 202, 7, 202, 15, 1, 217, 115, - 202, 7, 202, 15, 17, 191, 77, 202, 7, 202, 15, 17, 108, 202, 7, 202, 15, - 17, 109, 202, 7, 202, 15, 17, 139, 202, 7, 202, 15, 17, 137, 202, 7, 202, - 15, 17, 153, 202, 7, 202, 15, 17, 173, 202, 7, 202, 15, 17, 181, 202, 7, - 202, 15, 17, 176, 202, 7, 202, 15, 17, 184, 246, 203, 3, 247, 71, 246, - 203, 3, 251, 20, 246, 203, 3, 195, 32, 246, 203, 1, 252, 154, 246, 203, - 1, 70, 246, 203, 1, 69, 246, 203, 1, 73, 246, 203, 1, 222, 100, 246, 203, - 1, 221, 189, 246, 203, 1, 231, 200, 246, 203, 1, 231, 53, 246, 203, 1, - 214, 53, 246, 203, 1, 247, 111, 246, 203, 1, 246, 208, 246, 203, 1, 223, - 3, 246, 203, 1, 222, 224, 246, 203, 1, 212, 87, 246, 203, 1, 197, 127, - 246, 203, 1, 197, 115, 246, 203, 1, 237, 145, 246, 203, 1, 237, 129, 246, - 203, 1, 213, 65, 246, 203, 1, 199, 240, 246, 203, 1, 199, 43, 246, 203, - 1, 237, 240, 246, 203, 1, 237, 22, 246, 203, 1, 214, 236, 246, 203, 1, - 210, 210, 246, 203, 1, 209, 218, 246, 203, 1, 249, 101, 246, 203, 1, 248, - 152, 246, 203, 1, 217, 130, 246, 203, 1, 191, 174, 246, 203, 1, 192, 140, - 246, 203, 1, 207, 173, 246, 203, 1, 220, 101, 246, 203, 1, 193, 178, 246, - 203, 1, 205, 192, 246, 203, 1, 230, 58, 246, 203, 18, 3, 65, 246, 203, - 18, 3, 70, 246, 203, 18, 3, 223, 170, 246, 203, 18, 3, 69, 246, 203, 18, - 3, 196, 26, 246, 203, 18, 3, 73, 246, 203, 18, 3, 251, 184, 246, 203, 18, - 3, 74, 246, 203, 18, 3, 250, 113, 246, 203, 18, 3, 211, 121, 246, 203, - 186, 77, 246, 203, 250, 114, 77, 246, 203, 195, 37, 246, 203, 217, 128, - 246, 203, 17, 191, 77, 246, 203, 17, 108, 246, 203, 17, 109, 246, 203, - 17, 139, 246, 203, 17, 137, 246, 203, 17, 153, 246, 203, 17, 173, 246, - 203, 17, 181, 246, 203, 17, 176, 246, 203, 17, 184, 246, 203, 205, 49, - 77, 246, 203, 237, 193, 246, 203, 54, 237, 193, 246, 203, 208, 8, 77, - 246, 203, 1, 219, 134, 246, 203, 18, 3, 252, 154, 246, 203, 18, 3, 234, - 123, 246, 203, 1, 195, 184, 217, 97, 1, 65, 217, 97, 1, 70, 217, 97, 1, - 69, 217, 97, 1, 73, 217, 97, 1, 74, 217, 97, 1, 157, 217, 97, 1, 221, - 190, 217, 97, 1, 231, 203, 217, 97, 1, 231, 54, 217, 97, 1, 247, 112, - 217, 97, 1, 246, 209, 217, 97, 1, 223, 4, 217, 97, 1, 222, 225, 217, 97, - 1, 212, 88, 217, 97, 1, 197, 128, 217, 97, 1, 197, 116, 217, 97, 1, 237, - 146, 217, 97, 1, 237, 130, 217, 97, 1, 213, 66, 217, 97, 1, 199, 247, - 217, 97, 1, 199, 44, 217, 97, 1, 237, 241, 217, 97, 1, 237, 23, 217, 97, - 1, 180, 217, 97, 1, 168, 217, 97, 1, 209, 219, 217, 97, 1, 249, 103, 217, - 97, 1, 248, 153, 217, 97, 1, 172, 217, 97, 1, 166, 217, 97, 1, 171, 217, - 97, 1, 195, 185, 217, 97, 1, 189, 217, 97, 1, 144, 217, 97, 1, 206, 104, - 217, 97, 3, 212, 128, 217, 97, 252, 16, 57, 217, 97, 205, 49, 77, 217, - 97, 34, 203, 10, 203, 124, 3, 247, 71, 203, 124, 3, 251, 20, 203, 124, 3, - 195, 32, 203, 124, 1, 65, 203, 124, 1, 252, 154, 203, 124, 1, 70, 203, - 124, 1, 223, 170, 203, 124, 1, 69, 203, 124, 1, 196, 26, 203, 124, 1, - 121, 148, 203, 124, 1, 121, 206, 105, 203, 124, 1, 121, 170, 203, 124, 1, - 121, 219, 50, 203, 124, 1, 73, 203, 124, 1, 251, 184, 203, 124, 1, 74, - 203, 124, 1, 250, 113, 203, 124, 1, 157, 203, 124, 1, 221, 190, 203, 124, - 1, 231, 203, 203, 124, 1, 231, 54, 203, 124, 1, 214, 54, 203, 124, 1, - 247, 112, 203, 124, 1, 246, 209, 203, 124, 1, 223, 4, 203, 124, 1, 222, - 225, 203, 124, 1, 212, 88, 203, 124, 1, 197, 128, 203, 124, 1, 197, 116, - 203, 124, 1, 237, 146, 203, 124, 1, 237, 130, 203, 124, 1, 213, 66, 203, - 124, 1, 199, 247, 203, 124, 1, 199, 44, 203, 124, 1, 237, 241, 203, 124, - 1, 237, 23, 203, 124, 1, 180, 203, 124, 1, 168, 203, 124, 1, 209, 219, - 203, 124, 1, 249, 103, 203, 124, 1, 248, 153, 203, 124, 1, 172, 203, 124, - 1, 169, 203, 124, 1, 166, 203, 124, 1, 171, 203, 124, 1, 219, 49, 203, - 124, 1, 195, 185, 203, 124, 1, 203, 160, 203, 124, 1, 201, 170, 203, 124, - 1, 189, 203, 124, 1, 144, 203, 124, 18, 3, 252, 154, 203, 124, 18, 3, 70, - 203, 124, 18, 3, 223, 170, 203, 124, 18, 3, 69, 203, 124, 18, 3, 196, 26, - 203, 124, 18, 3, 121, 148, 203, 124, 18, 3, 121, 206, 105, 203, 124, 18, - 3, 121, 170, 203, 124, 18, 3, 121, 219, 50, 203, 124, 18, 3, 73, 203, - 124, 18, 3, 251, 184, 203, 124, 18, 3, 74, 203, 124, 18, 3, 250, 113, - 203, 124, 3, 195, 37, 203, 124, 3, 250, 95, 203, 124, 3, 222, 210, 203, - 124, 3, 196, 71, 203, 124, 211, 102, 203, 124, 237, 193, 203, 124, 54, - 237, 193, 203, 124, 252, 16, 57, 203, 124, 204, 5, 203, 124, 205, 133, - 77, 203, 124, 3, 212, 128, 203, 124, 18, 59, 77, 203, 124, 233, 160, 203, - 35, 18, 77, 203, 124, 200, 157, 77, 203, 124, 18, 3, 208, 200, 73, 203, - 124, 3, 223, 65, 247, 71, 203, 124, 17, 191, 77, 203, 124, 17, 108, 203, - 124, 17, 109, 203, 124, 17, 139, 203, 124, 17, 137, 203, 124, 17, 153, - 203, 124, 17, 173, 203, 124, 17, 181, 203, 124, 17, 176, 203, 124, 17, - 184, 203, 124, 234, 103, 203, 124, 3, 202, 205, 203, 124, 229, 195, 203, - 124, 238, 238, 57, 203, 124, 205, 49, 217, 36, 203, 124, 205, 49, 217, - 35, 165, 250, 220, 17, 108, 165, 250, 220, 17, 109, 165, 250, 220, 17, - 139, 165, 250, 220, 17, 137, 165, 250, 220, 17, 153, 165, 250, 220, 17, - 173, 165, 250, 220, 17, 181, 165, 250, 220, 17, 176, 165, 250, 220, 17, - 184, 165, 250, 220, 31, 199, 90, 165, 250, 220, 31, 197, 28, 165, 250, - 220, 31, 198, 244, 165, 250, 220, 31, 232, 97, 165, 250, 220, 31, 232, - 230, 165, 250, 220, 31, 202, 115, 165, 250, 220, 31, 203, 236, 165, 250, - 220, 31, 234, 110, 165, 250, 220, 31, 213, 156, 165, 250, 220, 31, 91, - 228, 109, 165, 250, 220, 31, 91, 188, 221, 158, 1, 65, 221, 158, 1, 252, - 154, 221, 158, 1, 70, 221, 158, 1, 69, 221, 158, 1, 73, 221, 158, 1, 251, - 184, 221, 158, 1, 74, 221, 158, 1, 250, 113, 221, 158, 1, 157, 221, 158, - 1, 221, 190, 221, 158, 1, 231, 203, 221, 158, 1, 231, 90, 221, 158, 1, - 231, 54, 221, 158, 1, 214, 54, 221, 158, 1, 247, 112, 221, 158, 1, 246, - 209, 221, 158, 1, 223, 4, 221, 158, 1, 222, 203, 221, 158, 1, 212, 88, - 221, 158, 1, 197, 128, 221, 158, 1, 197, 116, 221, 158, 1, 237, 146, 221, - 158, 1, 237, 130, 221, 158, 1, 213, 66, 221, 158, 1, 199, 247, 221, 158, - 1, 199, 44, 221, 158, 1, 237, 241, 221, 158, 1, 237, 136, 221, 158, 1, - 237, 23, 221, 158, 1, 180, 221, 158, 1, 168, 221, 158, 1, 209, 219, 221, - 158, 1, 249, 103, 221, 158, 1, 249, 3, 221, 158, 1, 248, 153, 221, 158, - 1, 172, 221, 158, 1, 169, 221, 158, 1, 166, 221, 158, 1, 171, 221, 158, - 1, 195, 185, 221, 158, 1, 189, 221, 158, 1, 144, 221, 158, 1, 219, 49, - 221, 158, 18, 3, 252, 154, 221, 158, 18, 3, 70, 221, 158, 18, 3, 223, - 170, 221, 158, 18, 3, 69, 221, 158, 18, 3, 73, 221, 158, 18, 3, 251, 184, - 221, 158, 18, 3, 74, 221, 158, 18, 3, 250, 113, 221, 158, 3, 251, 20, - 221, 158, 3, 195, 37, 221, 158, 3, 212, 128, 221, 158, 3, 203, 150, 221, - 158, 237, 193, 221, 158, 54, 237, 193, 221, 158, 193, 23, 204, 5, 221, - 158, 205, 49, 77, 221, 158, 54, 205, 49, 77, 221, 158, 252, 16, 57, 221, - 158, 3, 200, 201, 215, 118, 1, 65, 215, 118, 1, 70, 215, 118, 1, 69, 215, - 118, 1, 73, 215, 118, 1, 157, 215, 118, 1, 221, 190, 215, 118, 1, 231, - 203, 215, 118, 1, 231, 54, 215, 118, 1, 247, 112, 215, 118, 1, 246, 209, - 215, 118, 1, 223, 4, 215, 118, 1, 222, 203, 215, 118, 1, 212, 88, 215, - 118, 1, 197, 128, 215, 118, 1, 197, 116, 215, 118, 1, 237, 146, 215, 118, - 1, 237, 136, 215, 118, 1, 237, 130, 215, 118, 1, 213, 66, 215, 118, 1, - 199, 247, 215, 118, 1, 199, 44, 215, 118, 1, 237, 241, 215, 118, 1, 237, - 23, 215, 118, 1, 180, 215, 118, 1, 168, 215, 118, 1, 209, 219, 215, 118, - 1, 249, 103, 215, 118, 1, 248, 153, 215, 118, 1, 172, 215, 118, 1, 169, - 215, 118, 1, 166, 215, 118, 1, 171, 215, 118, 1, 195, 185, 215, 118, 1, - 189, 215, 118, 1, 144, 215, 118, 1, 206, 104, 215, 118, 1, 207, 1, 215, - 118, 205, 49, 77, 221, 148, 1, 65, 221, 148, 1, 252, 154, 221, 148, 1, - 70, 221, 148, 1, 223, 170, 221, 148, 1, 69, 221, 148, 1, 196, 26, 221, - 148, 1, 73, 221, 148, 1, 251, 184, 221, 148, 1, 74, 221, 148, 1, 250, - 113, 221, 148, 1, 157, 221, 148, 1, 221, 190, 221, 148, 1, 231, 203, 221, - 148, 1, 231, 90, 221, 148, 1, 231, 54, 221, 148, 1, 214, 54, 221, 148, 1, - 247, 112, 221, 148, 1, 246, 209, 221, 148, 1, 223, 4, 221, 148, 1, 222, - 203, 221, 148, 1, 222, 225, 221, 148, 1, 212, 88, 221, 148, 1, 197, 128, - 221, 148, 1, 197, 116, 221, 148, 1, 237, 146, 221, 148, 1, 237, 136, 221, - 148, 1, 206, 104, 221, 148, 1, 237, 130, 221, 148, 1, 213, 66, 221, 148, - 1, 199, 247, 221, 148, 1, 199, 44, 221, 148, 1, 237, 241, 221, 148, 1, - 237, 23, 221, 148, 1, 180, 221, 148, 1, 168, 221, 148, 1, 209, 219, 221, - 148, 1, 249, 103, 221, 148, 1, 249, 3, 221, 148, 1, 248, 153, 221, 148, - 1, 172, 221, 148, 1, 169, 221, 148, 1, 166, 221, 148, 1, 171, 221, 148, - 1, 195, 185, 221, 148, 1, 203, 160, 221, 148, 1, 189, 221, 148, 1, 144, - 221, 148, 3, 251, 20, 221, 148, 18, 3, 252, 154, 221, 148, 18, 3, 70, - 221, 148, 18, 3, 223, 170, 221, 148, 18, 3, 69, 221, 148, 18, 3, 196, 26, - 221, 148, 18, 3, 73, 221, 148, 18, 3, 251, 184, 221, 148, 18, 3, 74, 221, - 148, 18, 3, 250, 113, 221, 148, 3, 212, 128, 221, 148, 3, 195, 37, 221, - 148, 17, 191, 77, 221, 148, 17, 108, 221, 148, 17, 109, 221, 148, 17, - 139, 221, 148, 17, 137, 221, 148, 17, 153, 221, 148, 17, 173, 221, 148, - 17, 181, 221, 148, 17, 176, 221, 148, 17, 184, 230, 185, 3, 33, 251, 21, - 56, 230, 185, 3, 247, 71, 230, 185, 3, 251, 20, 230, 185, 3, 195, 32, - 230, 185, 1, 65, 230, 185, 1, 252, 154, 230, 185, 1, 70, 230, 185, 1, - 223, 170, 230, 185, 1, 69, 230, 185, 1, 196, 26, 230, 185, 1, 121, 148, - 230, 185, 1, 121, 170, 230, 185, 1, 234, 145, 230, 185, 1, 251, 184, 230, - 185, 1, 211, 76, 230, 185, 1, 250, 113, 230, 185, 1, 157, 230, 185, 1, - 221, 190, 230, 185, 1, 231, 203, 230, 185, 1, 231, 54, 230, 185, 1, 214, - 54, 230, 185, 1, 247, 112, 230, 185, 1, 246, 209, 230, 185, 1, 223, 4, - 230, 185, 1, 222, 225, 230, 185, 1, 212, 88, 230, 185, 1, 197, 128, 230, - 185, 1, 197, 116, 230, 185, 1, 237, 146, 230, 185, 1, 237, 130, 230, 185, - 1, 213, 66, 230, 185, 1, 199, 247, 230, 185, 1, 199, 44, 230, 185, 1, - 237, 241, 230, 185, 1, 237, 23, 230, 185, 1, 180, 230, 185, 1, 168, 230, - 185, 1, 209, 219, 230, 185, 1, 249, 103, 230, 185, 1, 248, 153, 230, 185, - 1, 172, 230, 185, 1, 169, 230, 185, 1, 166, 230, 185, 1, 171, 230, 185, - 1, 219, 49, 230, 185, 1, 195, 185, 230, 185, 1, 203, 160, 230, 185, 1, - 201, 170, 230, 185, 1, 189, 230, 185, 1, 144, 33, 248, 117, 60, 230, 185, - 3, 212, 128, 230, 185, 3, 250, 95, 230, 185, 18, 3, 252, 154, 230, 185, - 18, 3, 70, 230, 185, 18, 3, 223, 170, 230, 185, 18, 3, 69, 230, 185, 18, - 3, 196, 26, 230, 185, 18, 3, 121, 148, 230, 185, 18, 3, 121, 206, 105, - 230, 185, 18, 3, 234, 145, 230, 185, 18, 3, 251, 184, 230, 185, 18, 3, - 211, 76, 230, 185, 18, 3, 250, 113, 230, 185, 3, 195, 37, 230, 185, 211, - 102, 230, 185, 250, 114, 219, 174, 77, 230, 185, 3, 209, 71, 230, 185, 1, - 195, 147, 251, 20, 230, 185, 1, 195, 147, 54, 251, 20, 230, 185, 1, 121, - 206, 105, 230, 185, 1, 121, 219, 50, 230, 185, 18, 3, 121, 170, 230, 185, - 18, 3, 121, 219, 50, 33, 230, 185, 17, 191, 77, 33, 230, 185, 17, 108, - 33, 230, 185, 17, 109, 33, 230, 185, 17, 139, 33, 230, 185, 17, 137, 33, - 230, 185, 17, 153, 33, 230, 185, 17, 173, 33, 230, 185, 1, 65, 33, 230, - 185, 1, 157, 33, 230, 185, 1, 180, 33, 230, 185, 1, 195, 66, 33, 230, - 185, 1, 168, 214, 64, 1, 65, 214, 64, 1, 252, 154, 214, 64, 1, 70, 214, - 64, 1, 223, 170, 214, 64, 1, 69, 214, 64, 1, 196, 26, 214, 64, 1, 121, - 148, 214, 64, 1, 121, 206, 105, 214, 64, 1, 121, 170, 214, 64, 1, 121, - 219, 50, 214, 64, 1, 73, 214, 64, 1, 251, 184, 214, 64, 1, 74, 214, 64, - 1, 250, 113, 214, 64, 1, 157, 214, 64, 1, 221, 190, 214, 64, 1, 231, 203, - 214, 64, 1, 231, 54, 214, 64, 1, 214, 54, 214, 64, 1, 214, 3, 214, 64, 1, - 247, 112, 214, 64, 1, 246, 209, 214, 64, 1, 223, 4, 214, 64, 1, 222, 225, - 214, 64, 1, 212, 88, 214, 64, 1, 212, 70, 214, 64, 1, 197, 128, 214, 64, - 1, 197, 116, 214, 64, 1, 237, 146, 214, 64, 1, 237, 130, 214, 64, 1, 213, - 66, 214, 64, 1, 199, 247, 214, 64, 1, 199, 44, 214, 64, 1, 237, 241, 214, - 64, 1, 237, 23, 214, 64, 1, 180, 214, 64, 1, 213, 210, 214, 64, 1, 168, - 214, 64, 1, 209, 219, 214, 64, 1, 249, 103, 214, 64, 1, 248, 153, 214, - 64, 1, 172, 214, 64, 1, 216, 84, 214, 64, 1, 169, 214, 64, 1, 166, 214, - 64, 1, 207, 1, 214, 64, 1, 171, 214, 64, 1, 219, 135, 214, 64, 1, 193, - 187, 214, 64, 1, 203, 160, 214, 64, 1, 201, 170, 214, 64, 1, 189, 214, - 64, 1, 144, 214, 64, 18, 3, 252, 154, 214, 64, 18, 3, 70, 214, 64, 18, 3, - 223, 170, 214, 64, 18, 3, 69, 214, 64, 18, 3, 196, 26, 214, 64, 18, 3, - 121, 148, 214, 64, 18, 3, 121, 206, 105, 214, 64, 18, 3, 121, 170, 214, - 64, 18, 3, 121, 219, 50, 214, 64, 18, 3, 73, 214, 64, 18, 3, 251, 184, - 214, 64, 18, 3, 74, 214, 64, 18, 3, 250, 113, 214, 64, 3, 195, 37, 214, - 64, 3, 247, 71, 214, 64, 3, 251, 20, 214, 64, 3, 195, 32, 214, 64, 3, - 212, 128, 214, 64, 3, 250, 95, 214, 64, 3, 52, 251, 20, 214, 64, 211, - 102, 214, 64, 202, 204, 214, 64, 237, 193, 214, 64, 54, 237, 193, 214, - 64, 242, 26, 214, 64, 231, 167, 232, 218, 214, 64, 252, 16, 57, 214, 64, - 17, 191, 77, 214, 64, 17, 108, 214, 64, 17, 109, 214, 64, 17, 139, 214, - 64, 17, 137, 214, 64, 17, 153, 214, 64, 17, 173, 214, 64, 17, 181, 214, - 64, 17, 176, 214, 64, 17, 184, 214, 64, 54, 242, 26, 214, 64, 209, 99, - 77, 214, 64, 223, 91, 57, 214, 64, 205, 133, 77, 214, 64, 1, 195, 147, - 251, 20, 214, 64, 3, 222, 210, 214, 64, 3, 196, 71, 198, 124, 251, 49, - 198, 124, 1, 65, 198, 124, 1, 252, 154, 198, 124, 1, 70, 198, 124, 1, - 223, 170, 198, 124, 1, 69, 198, 124, 1, 196, 26, 198, 124, 1, 121, 148, - 198, 124, 1, 121, 206, 105, 198, 124, 1, 121, 170, 198, 124, 1, 121, 219, - 50, 198, 124, 1, 73, 198, 124, 1, 251, 184, 198, 124, 1, 74, 198, 124, 1, - 250, 113, 198, 124, 1, 157, 198, 124, 1, 221, 190, 198, 124, 1, 231, 203, - 198, 124, 1, 231, 54, 198, 124, 1, 214, 54, 198, 124, 1, 247, 112, 198, - 124, 1, 246, 209, 198, 124, 1, 223, 4, 198, 124, 1, 222, 225, 198, 124, - 1, 212, 88, 198, 124, 1, 197, 128, 198, 124, 1, 197, 116, 198, 124, 1, - 237, 146, 198, 124, 1, 237, 130, 198, 124, 1, 213, 66, 198, 124, 1, 199, - 247, 198, 124, 1, 199, 44, 198, 124, 1, 237, 241, 198, 124, 1, 237, 23, - 198, 124, 1, 180, 198, 124, 1, 168, 198, 124, 1, 209, 219, 198, 124, 1, - 249, 103, 198, 124, 1, 248, 153, 198, 124, 1, 172, 198, 124, 1, 169, 198, - 124, 1, 166, 198, 124, 1, 171, 198, 124, 1, 195, 185, 198, 124, 1, 203, - 160, 198, 124, 1, 201, 170, 198, 124, 1, 189, 198, 124, 1, 144, 198, 124, - 18, 3, 252, 154, 198, 124, 18, 3, 70, 198, 124, 18, 3, 223, 170, 198, - 124, 18, 3, 69, 198, 124, 18, 3, 196, 26, 198, 124, 18, 3, 121, 148, 198, - 124, 18, 3, 121, 206, 105, 198, 124, 18, 3, 121, 170, 198, 124, 18, 3, - 121, 219, 50, 198, 124, 18, 3, 73, 198, 124, 18, 3, 203, 35, 73, 198, - 124, 18, 3, 251, 184, 198, 124, 18, 3, 74, 198, 124, 18, 3, 203, 35, 74, - 198, 124, 18, 3, 250, 113, 198, 124, 3, 247, 71, 198, 124, 3, 251, 20, - 198, 124, 3, 195, 32, 198, 124, 3, 195, 37, 198, 124, 3, 212, 128, 198, - 124, 3, 250, 95, 198, 124, 230, 104, 198, 124, 252, 16, 57, 198, 124, - 211, 102, 198, 124, 17, 191, 77, 198, 124, 17, 108, 198, 124, 17, 109, - 198, 124, 17, 139, 198, 124, 17, 137, 198, 124, 17, 153, 198, 124, 17, - 173, 198, 124, 17, 181, 198, 124, 17, 176, 198, 124, 17, 184, 202, 206, - 1, 65, 202, 206, 1, 252, 154, 202, 206, 1, 70, 202, 206, 1, 223, 170, - 202, 206, 1, 69, 202, 206, 1, 196, 26, 202, 206, 1, 121, 148, 202, 206, - 1, 121, 206, 105, 202, 206, 1, 121, 170, 202, 206, 1, 121, 219, 50, 202, - 206, 1, 73, 202, 206, 1, 251, 184, 202, 206, 1, 74, 202, 206, 1, 250, - 113, 202, 206, 1, 157, 202, 206, 1, 221, 190, 202, 206, 1, 231, 203, 202, - 206, 1, 231, 54, 202, 206, 1, 214, 54, 202, 206, 1, 247, 112, 202, 206, - 1, 246, 209, 202, 206, 1, 223, 4, 202, 206, 1, 222, 225, 202, 206, 1, - 212, 88, 202, 206, 1, 197, 128, 202, 206, 1, 197, 116, 202, 206, 1, 237, - 146, 202, 206, 1, 237, 130, 202, 206, 1, 213, 66, 202, 206, 1, 199, 247, - 202, 206, 1, 199, 44, 202, 206, 1, 237, 241, 202, 206, 1, 237, 23, 202, - 206, 1, 180, 202, 206, 1, 168, 202, 206, 1, 209, 219, 202, 206, 1, 249, - 103, 202, 206, 1, 248, 153, 202, 206, 1, 172, 202, 206, 1, 169, 202, 206, - 1, 166, 202, 206, 1, 171, 202, 206, 1, 195, 185, 202, 206, 1, 203, 160, - 202, 206, 1, 201, 170, 202, 206, 1, 189, 202, 206, 1, 144, 202, 206, 18, - 3, 252, 154, 202, 206, 18, 3, 70, 202, 206, 18, 3, 223, 170, 202, 206, - 18, 3, 69, 202, 206, 18, 3, 196, 26, 202, 206, 18, 3, 121, 148, 202, 206, - 18, 3, 121, 206, 105, 202, 206, 18, 3, 73, 202, 206, 18, 3, 251, 184, - 202, 206, 18, 3, 74, 202, 206, 18, 3, 250, 113, 202, 206, 3, 247, 71, - 202, 206, 3, 251, 20, 202, 206, 3, 195, 32, 202, 206, 3, 195, 37, 202, - 206, 3, 212, 128, 202, 206, 3, 202, 205, 202, 206, 237, 193, 202, 206, - 54, 237, 193, 202, 206, 204, 6, 236, 96, 202, 206, 204, 6, 164, 202, 206, - 207, 41, 217, 36, 202, 206, 207, 41, 217, 35, 202, 206, 207, 41, 217, 34, - 202, 206, 234, 53, 80, 199, 49, 77, 202, 206, 205, 49, 87, 4, 197, 232, - 24, 196, 217, 211, 31, 202, 206, 205, 49, 87, 4, 197, 232, 24, 235, 94, - 238, 179, 202, 206, 205, 49, 87, 4, 207, 115, 24, 235, 94, 238, 179, 202, - 206, 205, 49, 87, 4, 207, 115, 24, 235, 94, 54, 238, 179, 202, 206, 205, - 49, 87, 4, 207, 115, 24, 235, 94, 197, 221, 238, 179, 202, 206, 205, 49, - 87, 54, 206, 183, 202, 206, 205, 49, 87, 54, 206, 184, 4, 207, 114, 202, - 206, 205, 49, 87, 4, 54, 238, 179, 202, 206, 205, 49, 87, 4, 197, 221, - 238, 179, 202, 206, 205, 49, 87, 4, 208, 20, 238, 179, 202, 206, 205, 49, - 87, 4, 204, 3, 238, 179, 202, 206, 205, 49, 87, 4, 242, 216, 24, 207, - 114, 202, 206, 205, 49, 87, 4, 242, 216, 24, 103, 234, 55, 202, 206, 205, - 49, 87, 4, 242, 216, 24, 232, 90, 234, 55, 202, 206, 1, 198, 221, 251, - 106, 70, 202, 206, 1, 197, 11, 251, 106, 70, 202, 206, 1, 197, 11, 251, - 106, 223, 170, 202, 206, 1, 251, 106, 69, 202, 206, 18, 3, 251, 106, 69, - 202, 206, 18, 3, 251, 106, 196, 26, 215, 236, 1, 65, 215, 236, 1, 252, - 154, 215, 236, 1, 70, 215, 236, 1, 223, 170, 215, 236, 1, 69, 215, 236, - 1, 196, 26, 215, 236, 1, 121, 148, 215, 236, 1, 121, 206, 105, 215, 236, - 1, 121, 170, 215, 236, 1, 121, 219, 50, 215, 236, 1, 73, 215, 236, 1, - 251, 184, 215, 236, 1, 74, 215, 236, 1, 250, 113, 215, 236, 1, 157, 215, - 236, 1, 221, 190, 215, 236, 1, 231, 203, 215, 236, 1, 231, 54, 215, 236, - 1, 214, 54, 215, 236, 1, 247, 112, 215, 236, 1, 246, 209, 215, 236, 1, - 223, 4, 215, 236, 1, 222, 225, 215, 236, 1, 212, 88, 215, 236, 1, 197, - 128, 215, 236, 1, 197, 116, 215, 236, 1, 237, 146, 215, 236, 1, 237, 130, - 215, 236, 1, 213, 66, 215, 236, 1, 199, 247, 215, 236, 1, 199, 44, 215, - 236, 1, 237, 241, 215, 236, 1, 237, 23, 215, 236, 1, 180, 215, 236, 1, - 168, 215, 236, 1, 209, 219, 215, 236, 1, 249, 103, 215, 236, 1, 248, 153, - 215, 236, 1, 172, 215, 236, 1, 169, 215, 236, 1, 166, 215, 236, 1, 171, - 215, 236, 1, 195, 185, 215, 236, 1, 203, 160, 215, 236, 1, 201, 170, 215, - 236, 1, 189, 215, 236, 1, 144, 215, 236, 1, 219, 49, 215, 236, 18, 3, - 252, 154, 215, 236, 18, 3, 70, 215, 236, 18, 3, 223, 170, 215, 236, 18, - 3, 69, 215, 236, 18, 3, 196, 26, 215, 236, 18, 3, 121, 148, 215, 236, 18, - 3, 121, 206, 105, 215, 236, 18, 3, 121, 170, 215, 236, 18, 3, 121, 219, - 50, 215, 236, 18, 3, 73, 215, 236, 18, 3, 251, 184, 215, 236, 18, 3, 74, - 215, 236, 18, 3, 250, 113, 215, 236, 3, 251, 20, 215, 236, 3, 195, 32, - 215, 236, 3, 195, 37, 215, 236, 3, 250, 217, 215, 236, 237, 193, 215, - 236, 54, 237, 193, 215, 236, 252, 16, 57, 215, 236, 3, 228, 96, 215, 236, - 17, 191, 77, 215, 236, 17, 108, 215, 236, 17, 109, 215, 236, 17, 139, - 215, 236, 17, 137, 215, 236, 17, 153, 215, 236, 17, 173, 215, 236, 17, - 181, 215, 236, 17, 176, 215, 236, 17, 184, 102, 248, 111, 4, 211, 32, - 102, 206, 117, 248, 110, 102, 54, 248, 111, 4, 211, 32, 102, 197, 221, - 248, 111, 4, 211, 32, 102, 248, 111, 4, 54, 211, 32, 102, 206, 117, 248, - 111, 4, 211, 32, 102, 206, 117, 248, 111, 4, 54, 211, 32, 102, 223, 65, - 248, 110, 102, 223, 65, 248, 111, 4, 54, 211, 32, 102, 200, 130, 248, - 110, 102, 200, 130, 248, 111, 4, 211, 32, 102, 200, 130, 248, 111, 4, 54, - 211, 32, 102, 152, 200, 130, 248, 111, 4, 54, 211, 32, 199, 200, 1, 65, - 199, 200, 1, 252, 154, 199, 200, 1, 70, 199, 200, 1, 223, 170, 199, 200, - 1, 69, 199, 200, 1, 196, 26, 199, 200, 1, 73, 199, 200, 1, 251, 184, 199, - 200, 1, 74, 199, 200, 1, 250, 113, 199, 200, 1, 157, 199, 200, 1, 221, - 190, 199, 200, 1, 231, 203, 199, 200, 1, 231, 54, 199, 200, 1, 214, 54, - 199, 200, 1, 247, 112, 199, 200, 1, 246, 209, 199, 200, 1, 223, 4, 199, - 200, 1, 222, 225, 199, 200, 1, 212, 88, 199, 200, 1, 197, 128, 199, 200, - 1, 197, 116, 199, 200, 1, 237, 146, 199, 200, 1, 237, 130, 199, 200, 1, - 213, 66, 199, 200, 1, 199, 247, 199, 200, 1, 199, 44, 199, 200, 1, 237, - 241, 199, 200, 1, 237, 23, 199, 200, 1, 180, 199, 200, 1, 168, 199, 200, - 1, 209, 219, 199, 200, 1, 249, 103, 199, 200, 1, 248, 153, 199, 200, 1, - 172, 199, 200, 1, 169, 199, 200, 1, 166, 199, 200, 1, 171, 199, 200, 1, - 195, 185, 199, 200, 1, 203, 160, 199, 200, 1, 189, 199, 200, 1, 144, 199, - 200, 1, 206, 104, 199, 200, 3, 251, 20, 199, 200, 3, 195, 32, 199, 200, - 18, 3, 252, 154, 199, 200, 18, 3, 70, 199, 200, 18, 3, 223, 170, 199, - 200, 18, 3, 69, 199, 200, 18, 3, 196, 26, 199, 200, 18, 3, 73, 199, 200, - 18, 3, 251, 184, 199, 200, 18, 3, 74, 199, 200, 18, 3, 250, 113, 199, - 200, 3, 195, 37, 199, 200, 3, 212, 128, 199, 200, 1, 250, 220, 221, 190, - 199, 200, 252, 16, 57, 199, 200, 17, 191, 77, 199, 200, 17, 108, 199, - 200, 17, 109, 199, 200, 17, 139, 199, 200, 17, 137, 199, 200, 17, 153, - 199, 200, 17, 173, 199, 200, 17, 181, 199, 200, 17, 176, 199, 200, 17, - 184, 251, 188, 1, 157, 251, 188, 1, 221, 190, 251, 188, 1, 214, 54, 251, - 188, 1, 180, 251, 188, 1, 199, 247, 251, 188, 1, 251, 106, 199, 247, 251, - 188, 1, 168, 251, 188, 1, 209, 219, 251, 188, 1, 249, 103, 251, 188, 1, - 172, 251, 188, 1, 223, 4, 251, 188, 1, 246, 209, 251, 188, 1, 199, 44, - 251, 188, 1, 166, 251, 188, 1, 171, 251, 188, 1, 189, 251, 188, 1, 212, - 88, 251, 188, 1, 144, 251, 188, 1, 65, 251, 188, 1, 237, 241, 251, 188, - 1, 237, 23, 251, 188, 1, 231, 203, 251, 188, 1, 251, 106, 231, 203, 251, - 188, 1, 231, 54, 251, 188, 1, 248, 153, 251, 188, 1, 222, 225, 251, 188, - 1, 251, 106, 249, 103, 251, 188, 119, 3, 216, 198, 171, 251, 188, 119, 3, - 216, 198, 166, 251, 188, 119, 3, 216, 198, 219, 109, 166, 251, 188, 18, - 3, 65, 251, 188, 18, 3, 252, 154, 251, 188, 18, 3, 70, 251, 188, 18, 3, - 223, 170, 251, 188, 18, 3, 69, 251, 188, 18, 3, 196, 26, 251, 188, 18, 3, - 73, 251, 188, 18, 3, 250, 90, 251, 188, 18, 3, 74, 251, 188, 18, 3, 251, - 184, 251, 188, 18, 3, 251, 98, 251, 188, 3, 221, 119, 251, 188, 17, 191, - 77, 251, 188, 17, 108, 251, 188, 17, 109, 251, 188, 17, 139, 251, 188, - 17, 137, 251, 188, 17, 153, 251, 188, 17, 173, 251, 188, 17, 181, 251, - 188, 17, 176, 251, 188, 17, 184, 251, 188, 31, 199, 90, 251, 188, 31, - 197, 28, 251, 188, 3, 2, 205, 48, 251, 188, 3, 205, 48, 251, 188, 3, 206, - 48, 251, 188, 16, 195, 66, 251, 188, 1, 247, 112, 251, 188, 1, 197, 128, - 251, 188, 1, 197, 116, 251, 188, 1, 237, 146, 251, 188, 1, 237, 130, 251, - 188, 1, 213, 66, 251, 188, 1, 219, 49, 236, 116, 1, 65, 236, 116, 1, 252, - 154, 236, 116, 1, 70, 236, 116, 1, 223, 170, 236, 116, 1, 69, 236, 116, - 1, 196, 26, 236, 116, 1, 73, 236, 116, 1, 251, 184, 236, 116, 1, 74, 236, - 116, 1, 250, 113, 236, 116, 1, 157, 236, 116, 1, 221, 190, 236, 116, 1, - 231, 203, 236, 116, 1, 231, 54, 236, 116, 1, 214, 54, 236, 116, 1, 247, - 112, 236, 116, 1, 246, 209, 236, 116, 1, 223, 4, 236, 116, 1, 222, 225, - 236, 116, 1, 212, 88, 236, 116, 1, 197, 128, 236, 116, 1, 197, 116, 236, - 116, 1, 237, 146, 236, 116, 1, 237, 130, 236, 116, 1, 213, 66, 236, 116, - 1, 199, 247, 236, 116, 1, 199, 44, 236, 116, 1, 237, 241, 236, 116, 1, - 237, 23, 236, 116, 1, 180, 236, 116, 1, 168, 236, 116, 1, 209, 219, 236, - 116, 1, 249, 103, 236, 116, 1, 248, 153, 236, 116, 1, 172, 236, 116, 1, - 169, 236, 116, 1, 166, 236, 116, 1, 171, 236, 116, 1, 195, 185, 236, 116, - 1, 203, 160, 236, 116, 1, 201, 170, 236, 116, 1, 189, 236, 116, 1, 144, - 236, 116, 1, 206, 104, 236, 116, 18, 3, 252, 154, 236, 116, 18, 3, 70, - 236, 116, 18, 3, 223, 170, 236, 116, 18, 3, 69, 236, 116, 18, 3, 196, 26, - 236, 116, 18, 3, 121, 148, 236, 116, 18, 3, 121, 206, 105, 236, 116, 18, - 3, 73, 236, 116, 18, 3, 251, 184, 236, 116, 18, 3, 74, 236, 116, 18, 3, - 250, 113, 236, 116, 3, 251, 20, 236, 116, 3, 195, 32, 236, 116, 3, 195, - 37, 236, 116, 3, 212, 128, 236, 116, 252, 16, 57, 193, 154, 242, 205, 6, - 1, 214, 53, 193, 154, 242, 205, 6, 1, 65, 193, 154, 242, 205, 6, 1, 193, - 84, 193, 154, 242, 205, 6, 1, 191, 225, 193, 154, 242, 205, 6, 1, 169, - 193, 154, 242, 205, 6, 1, 192, 12, 193, 154, 242, 205, 6, 1, 223, 170, - 193, 154, 242, 205, 6, 1, 196, 26, 193, 154, 242, 205, 6, 1, 73, 193, - 154, 242, 205, 6, 1, 74, 193, 154, 242, 205, 6, 1, 251, 71, 193, 154, - 242, 205, 6, 1, 231, 203, 193, 154, 242, 205, 6, 1, 221, 43, 193, 154, - 242, 205, 6, 1, 234, 24, 193, 154, 242, 205, 6, 1, 191, 204, 193, 154, - 242, 205, 6, 1, 196, 156, 193, 154, 242, 205, 6, 1, 234, 43, 193, 154, - 242, 205, 6, 1, 211, 142, 193, 154, 242, 205, 6, 1, 197, 123, 193, 154, - 242, 205, 6, 1, 212, 114, 193, 154, 242, 205, 6, 1, 237, 241, 193, 154, - 242, 205, 6, 1, 250, 132, 193, 154, 242, 205, 6, 1, 251, 98, 193, 154, - 242, 205, 6, 1, 247, 218, 193, 154, 242, 205, 6, 1, 208, 158, 193, 154, - 242, 205, 6, 1, 229, 83, 193, 154, 242, 205, 6, 1, 228, 227, 193, 154, - 242, 205, 6, 1, 228, 154, 193, 154, 242, 205, 6, 1, 229, 242, 193, 154, - 242, 205, 6, 1, 201, 121, 193, 154, 242, 205, 6, 1, 202, 188, 193, 154, - 242, 205, 6, 1, 195, 22, 193, 154, 242, 205, 2, 1, 214, 53, 193, 154, - 242, 205, 2, 1, 65, 193, 154, 242, 205, 2, 1, 193, 84, 193, 154, 242, - 205, 2, 1, 191, 225, 193, 154, 242, 205, 2, 1, 169, 193, 154, 242, 205, - 2, 1, 192, 12, 193, 154, 242, 205, 2, 1, 223, 170, 193, 154, 242, 205, 2, - 1, 196, 26, 193, 154, 242, 205, 2, 1, 73, 193, 154, 242, 205, 2, 1, 74, - 193, 154, 242, 205, 2, 1, 251, 71, 193, 154, 242, 205, 2, 1, 231, 203, - 193, 154, 242, 205, 2, 1, 221, 43, 193, 154, 242, 205, 2, 1, 234, 24, - 193, 154, 242, 205, 2, 1, 191, 204, 193, 154, 242, 205, 2, 1, 196, 156, - 193, 154, 242, 205, 2, 1, 234, 43, 193, 154, 242, 205, 2, 1, 211, 142, - 193, 154, 242, 205, 2, 1, 197, 123, 193, 154, 242, 205, 2, 1, 212, 114, - 193, 154, 242, 205, 2, 1, 237, 241, 193, 154, 242, 205, 2, 1, 250, 132, - 193, 154, 242, 205, 2, 1, 251, 98, 193, 154, 242, 205, 2, 1, 247, 218, - 193, 154, 242, 205, 2, 1, 208, 158, 193, 154, 242, 205, 2, 1, 229, 83, - 193, 154, 242, 205, 2, 1, 228, 227, 193, 154, 242, 205, 2, 1, 228, 154, - 193, 154, 242, 205, 2, 1, 229, 242, 193, 154, 242, 205, 2, 1, 201, 121, - 193, 154, 242, 205, 2, 1, 202, 188, 193, 154, 242, 205, 2, 1, 195, 22, - 193, 154, 242, 205, 17, 191, 77, 193, 154, 242, 205, 17, 108, 193, 154, - 242, 205, 17, 109, 193, 154, 242, 205, 17, 139, 193, 154, 242, 205, 17, - 137, 193, 154, 242, 205, 17, 153, 193, 154, 242, 205, 17, 173, 193, 154, - 242, 205, 17, 181, 193, 154, 242, 205, 17, 176, 193, 154, 242, 205, 17, - 184, 193, 154, 242, 205, 31, 199, 90, 193, 154, 242, 205, 31, 197, 28, - 193, 154, 242, 205, 31, 198, 244, 193, 154, 242, 205, 31, 232, 97, 193, - 154, 242, 205, 31, 232, 230, 193, 154, 242, 205, 31, 202, 115, 193, 154, - 242, 205, 31, 203, 236, 193, 154, 242, 205, 31, 234, 110, 193, 154, 242, - 205, 31, 213, 156, 193, 154, 242, 205, 211, 102, 236, 164, 251, 158, 1, - 65, 236, 164, 251, 158, 1, 252, 154, 236, 164, 251, 158, 1, 70, 236, 164, - 251, 158, 1, 223, 170, 236, 164, 251, 158, 1, 69, 236, 164, 251, 158, 1, - 196, 26, 236, 164, 251, 158, 1, 73, 236, 164, 251, 158, 1, 74, 236, 164, - 251, 158, 1, 157, 236, 164, 251, 158, 1, 221, 190, 236, 164, 251, 158, 1, - 231, 203, 236, 164, 251, 158, 1, 231, 54, 236, 164, 251, 158, 1, 214, 54, - 236, 164, 251, 158, 1, 247, 112, 236, 164, 251, 158, 1, 246, 209, 236, - 164, 251, 158, 1, 223, 4, 236, 164, 251, 158, 1, 212, 88, 236, 164, 251, - 158, 1, 197, 128, 236, 164, 251, 158, 1, 237, 146, 236, 164, 251, 158, 1, - 237, 130, 236, 164, 251, 158, 1, 213, 66, 236, 164, 251, 158, 1, 199, - 247, 236, 164, 251, 158, 1, 199, 44, 236, 164, 251, 158, 1, 237, 241, - 236, 164, 251, 158, 1, 237, 23, 236, 164, 251, 158, 1, 180, 236, 164, - 251, 158, 1, 168, 236, 164, 251, 158, 1, 209, 219, 236, 164, 251, 158, 1, - 249, 103, 236, 164, 251, 158, 1, 248, 153, 236, 164, 251, 158, 1, 172, - 236, 164, 251, 158, 1, 169, 236, 164, 251, 158, 1, 191, 175, 236, 164, - 251, 158, 1, 166, 236, 164, 251, 158, 1, 171, 236, 164, 251, 158, 1, 195, - 185, 236, 164, 251, 158, 1, 203, 160, 236, 164, 251, 158, 1, 201, 170, - 236, 164, 251, 158, 1, 189, 236, 164, 251, 158, 1, 144, 236, 164, 251, - 158, 1, 219, 49, 236, 164, 251, 158, 1, 191, 123, 236, 164, 251, 158, 18, - 3, 252, 154, 236, 164, 251, 158, 18, 3, 70, 236, 164, 251, 158, 18, 3, - 223, 170, 236, 164, 251, 158, 18, 3, 69, 236, 164, 251, 158, 18, 3, 196, - 26, 236, 164, 251, 158, 18, 3, 73, 236, 164, 251, 158, 18, 3, 251, 184, - 236, 164, 251, 158, 18, 3, 74, 236, 164, 251, 158, 3, 251, 20, 236, 164, - 251, 158, 3, 247, 71, 236, 164, 251, 158, 3, 230, 39, 236, 164, 251, 158, - 195, 37, 236, 164, 251, 158, 208, 220, 214, 200, 57, 236, 164, 251, 158, - 216, 198, 169, 236, 164, 251, 158, 89, 166, 236, 164, 251, 158, 216, 198, - 166, 236, 164, 251, 158, 3, 212, 128, 236, 164, 251, 158, 54, 237, 193, - 236, 164, 251, 158, 231, 167, 232, 218, 236, 164, 251, 158, 234, 53, 80, - 199, 49, 77, 236, 164, 251, 158, 17, 191, 77, 236, 164, 251, 158, 17, - 108, 236, 164, 251, 158, 17, 109, 236, 164, 251, 158, 17, 139, 236, 164, - 251, 158, 17, 137, 236, 164, 251, 158, 17, 153, 236, 164, 251, 158, 17, - 173, 236, 164, 251, 158, 17, 181, 236, 164, 251, 158, 17, 176, 236, 164, - 251, 158, 17, 184, 214, 209, 1, 65, 214, 209, 1, 252, 154, 214, 209, 1, - 70, 214, 209, 1, 223, 170, 214, 209, 1, 69, 214, 209, 1, 196, 26, 214, - 209, 1, 121, 148, 214, 209, 1, 121, 206, 105, 214, 209, 1, 73, 214, 209, - 1, 251, 184, 214, 209, 1, 74, 214, 209, 1, 250, 113, 214, 209, 1, 157, - 214, 209, 1, 221, 190, 214, 209, 1, 231, 203, 214, 209, 1, 231, 54, 214, - 209, 1, 214, 54, 214, 209, 1, 247, 112, 214, 209, 1, 246, 209, 214, 209, - 1, 223, 4, 214, 209, 1, 222, 225, 214, 209, 1, 212, 88, 214, 209, 1, 197, - 128, 214, 209, 1, 197, 116, 214, 209, 1, 237, 146, 214, 209, 1, 237, 130, - 214, 209, 1, 213, 66, 214, 209, 1, 199, 247, 214, 209, 1, 199, 44, 214, - 209, 1, 237, 241, 214, 209, 1, 237, 23, 214, 209, 1, 180, 214, 209, 1, - 168, 214, 209, 1, 209, 219, 214, 209, 1, 249, 103, 214, 209, 1, 248, 153, - 214, 209, 1, 172, 214, 209, 1, 169, 214, 209, 1, 166, 214, 209, 1, 171, - 214, 209, 1, 195, 185, 214, 209, 1, 203, 160, 214, 209, 1, 201, 170, 214, - 209, 1, 189, 214, 209, 1, 144, 214, 209, 1, 219, 49, 214, 209, 1, 206, - 104, 214, 209, 18, 3, 252, 154, 214, 209, 18, 3, 70, 214, 209, 18, 3, - 223, 170, 214, 209, 18, 3, 69, 214, 209, 18, 3, 196, 26, 214, 209, 18, 3, - 121, 148, 214, 209, 18, 3, 121, 206, 105, 214, 209, 18, 3, 73, 214, 209, - 18, 3, 251, 184, 214, 209, 18, 3, 74, 214, 209, 18, 3, 250, 113, 214, - 209, 3, 251, 20, 214, 209, 3, 195, 32, 214, 209, 3, 195, 37, 214, 209, 3, - 250, 95, 214, 209, 3, 202, 205, 214, 209, 229, 195, 214, 209, 18, 3, 208, - 200, 73, 191, 106, 51, 1, 65, 191, 106, 51, 18, 3, 70, 191, 106, 51, 18, - 3, 196, 148, 191, 106, 51, 18, 3, 69, 191, 106, 51, 18, 3, 73, 191, 106, - 51, 18, 3, 211, 139, 191, 106, 51, 18, 3, 74, 191, 106, 51, 18, 3, 251, - 184, 191, 106, 51, 18, 3, 250, 113, 191, 106, 51, 18, 3, 207, 13, 70, - 191, 106, 51, 18, 219, 174, 77, 191, 106, 51, 1, 157, 191, 106, 51, 1, - 221, 190, 191, 106, 51, 1, 231, 203, 191, 106, 51, 1, 231, 54, 191, 106, - 51, 1, 214, 54, 191, 106, 51, 1, 247, 112, 191, 106, 51, 1, 246, 209, - 191, 106, 51, 1, 223, 4, 191, 106, 51, 1, 212, 88, 191, 106, 51, 1, 197, - 128, 191, 106, 51, 1, 197, 116, 191, 106, 51, 1, 237, 146, 191, 106, 51, - 1, 237, 130, 191, 106, 51, 1, 213, 66, 191, 106, 51, 1, 199, 247, 191, - 106, 51, 1, 199, 44, 191, 106, 51, 1, 237, 241, 191, 106, 51, 1, 237, 23, - 191, 106, 51, 1, 180, 191, 106, 51, 1, 168, 191, 106, 51, 1, 209, 219, - 191, 106, 51, 1, 249, 103, 191, 106, 51, 1, 248, 153, 191, 106, 51, 1, - 172, 191, 106, 51, 1, 197, 164, 191, 106, 51, 1, 197, 153, 191, 106, 51, - 1, 234, 247, 191, 106, 51, 1, 234, 241, 191, 106, 51, 1, 191, 71, 191, - 106, 51, 1, 191, 123, 191, 106, 51, 1, 255, 162, 191, 106, 51, 1, 169, - 191, 106, 51, 1, 166, 191, 106, 51, 1, 171, 191, 106, 51, 1, 195, 185, - 191, 106, 51, 1, 203, 160, 191, 106, 51, 1, 201, 170, 191, 106, 51, 1, - 189, 191, 106, 51, 1, 144, 191, 106, 51, 1, 220, 222, 191, 106, 51, 52, - 119, 77, 191, 106, 51, 3, 195, 37, 191, 106, 51, 3, 247, 71, 191, 106, - 51, 3, 247, 72, 4, 211, 32, 191, 106, 51, 3, 247, 74, 4, 211, 32, 191, - 106, 51, 3, 251, 20, 191, 106, 51, 3, 195, 32, 191, 106, 51, 242, 153, 1, - 166, 191, 106, 51, 242, 154, 1, 169, 191, 106, 51, 242, 154, 1, 166, 191, - 106, 51, 242, 154, 1, 171, 191, 106, 51, 242, 154, 1, 195, 185, 191, 106, - 51, 89, 229, 204, 77, 191, 106, 51, 242, 167, 229, 204, 77, 191, 106, 51, - 87, 197, 148, 191, 106, 51, 87, 203, 152, 191, 106, 51, 87, 54, 203, 152, - 191, 106, 51, 87, 177, 197, 148, 191, 106, 51, 89, 235, 86, 229, 204, 77, - 191, 106, 51, 242, 167, 235, 86, 229, 204, 77, 191, 106, 51, 200, 233, - 201, 246, 1, 65, 201, 246, 18, 3, 70, 201, 246, 18, 3, 196, 148, 201, - 246, 18, 3, 69, 201, 246, 18, 3, 73, 201, 246, 18, 3, 74, 201, 246, 18, - 3, 211, 139, 201, 246, 18, 3, 251, 184, 201, 246, 18, 3, 250, 113, 201, - 246, 18, 3, 121, 148, 201, 246, 18, 3, 121, 170, 201, 246, 18, 219, 174, - 77, 201, 246, 1, 157, 201, 246, 1, 221, 190, 201, 246, 1, 231, 203, 201, - 246, 1, 231, 54, 201, 246, 1, 214, 54, 201, 246, 1, 247, 112, 201, 246, - 1, 246, 209, 201, 246, 1, 223, 4, 201, 246, 1, 222, 225, 201, 246, 1, - 212, 88, 201, 246, 1, 197, 128, 201, 246, 1, 197, 116, 201, 246, 1, 237, - 146, 201, 246, 1, 237, 130, 201, 246, 1, 213, 66, 201, 246, 1, 199, 247, - 201, 246, 1, 199, 44, 201, 246, 1, 237, 241, 201, 246, 1, 237, 23, 201, - 246, 1, 180, 201, 246, 1, 168, 201, 246, 1, 209, 219, 201, 246, 1, 249, - 103, 201, 246, 1, 248, 153, 201, 246, 1, 172, 201, 246, 1, 197, 164, 201, - 246, 1, 197, 153, 201, 246, 1, 234, 247, 201, 246, 1, 191, 71, 201, 246, - 1, 191, 123, 201, 246, 1, 255, 162, 201, 246, 1, 169, 201, 246, 1, 166, - 201, 246, 1, 171, 201, 246, 1, 195, 185, 201, 246, 1, 203, 160, 201, 246, - 1, 201, 170, 201, 246, 1, 189, 201, 246, 1, 144, 201, 246, 1, 220, 222, - 201, 246, 3, 222, 210, 201, 246, 3, 196, 71, 201, 246, 242, 153, 1, 166, - 201, 246, 242, 153, 1, 171, 201, 246, 242, 153, 1, 203, 160, 201, 246, - 242, 153, 1, 189, 201, 246, 52, 119, 3, 232, 14, 201, 246, 52, 119, 3, - 222, 125, 201, 246, 52, 119, 3, 214, 56, 201, 246, 52, 119, 3, 238, 80, - 201, 246, 52, 119, 3, 215, 47, 201, 246, 52, 119, 3, 250, 70, 201, 246, - 52, 119, 3, 218, 147, 201, 246, 52, 119, 3, 148, 201, 246, 52, 119, 3, - 170, 201, 246, 52, 119, 3, 203, 162, 201, 246, 52, 119, 3, 206, 3, 201, - 246, 52, 119, 3, 255, 162, 201, 246, 3, 251, 20, 201, 246, 3, 195, 32, - 201, 246, 231, 116, 77, 201, 246, 200, 233, 201, 246, 87, 197, 148, 201, - 246, 87, 203, 152, 201, 246, 87, 54, 203, 152, 201, 246, 87, 209, 71, - 201, 246, 229, 204, 87, 4, 215, 189, 24, 200, 194, 24, 197, 221, 232, - 170, 201, 246, 229, 204, 87, 4, 215, 189, 24, 200, 194, 24, 232, 170, - 201, 246, 229, 204, 87, 4, 215, 189, 24, 200, 193, 201, 246, 199, 76, - 217, 36, 201, 246, 199, 76, 217, 35, 21, 22, 214, 193, 229, 126, 21, 22, - 214, 193, 229, 98, 21, 22, 214, 193, 228, 247, 21, 22, 214, 193, 228, - 220, 21, 22, 214, 193, 144, 21, 22, 214, 193, 230, 58, 21, 22, 214, 193, - 203, 10, 21, 22, 214, 193, 203, 9, 21, 22, 214, 193, 203, 6, 21, 22, 214, - 193, 203, 5, 21, 22, 214, 193, 203, 12, 21, 22, 214, 193, 203, 11, 21, - 22, 201, 232, 21, 22, 201, 219, 21, 22, 201, 202, 21, 22, 201, 244, 210, - 71, 242, 223, 229, 226, 1, 168, 210, 71, 242, 223, 229, 226, 1, 157, 210, - 71, 242, 223, 229, 226, 1, 171, 210, 71, 242, 223, 229, 226, 1, 172, 210, - 71, 242, 223, 229, 226, 1, 237, 241, 210, 71, 242, 223, 229, 226, 1, 191, - 123, 210, 71, 242, 223, 229, 226, 1, 195, 185, 210, 71, 242, 223, 229, - 226, 1, 214, 54, 210, 71, 242, 223, 229, 226, 1, 144, 210, 71, 242, 223, - 229, 226, 1, 231, 203, 210, 71, 242, 223, 229, 226, 1, 221, 190, 210, 71, - 242, 223, 229, 226, 1, 189, 210, 71, 242, 223, 229, 226, 1, 249, 103, - 210, 71, 242, 223, 229, 226, 1, 247, 112, 210, 71, 242, 223, 229, 226, 1, - 199, 247, 210, 71, 242, 223, 229, 226, 1, 199, 44, 210, 71, 242, 223, - 229, 226, 1, 180, 210, 71, 242, 223, 229, 226, 1, 209, 219, 210, 71, 242, - 223, 229, 226, 1, 166, 210, 71, 242, 223, 229, 226, 1, 233, 68, 210, 71, - 242, 223, 229, 226, 1, 246, 209, 210, 71, 242, 223, 229, 226, 1, 65, 210, - 71, 242, 223, 229, 226, 1, 73, 210, 71, 242, 223, 229, 226, 1, 70, 210, - 71, 242, 223, 229, 226, 1, 74, 210, 71, 242, 223, 229, 226, 1, 69, 210, - 71, 242, 223, 229, 226, 1, 196, 164, 210, 71, 242, 223, 229, 226, 1, 228, - 5, 210, 71, 242, 223, 229, 226, 1, 52, 210, 226, 210, 71, 242, 223, 229, - 226, 1, 52, 222, 125, 210, 71, 242, 223, 229, 226, 1, 52, 200, 39, 210, - 71, 242, 223, 229, 226, 1, 52, 218, 147, 210, 71, 242, 223, 229, 226, 1, - 52, 215, 47, 210, 71, 242, 223, 229, 226, 1, 52, 170, 210, 71, 242, 223, - 229, 226, 1, 52, 193, 221, 210, 71, 242, 223, 229, 226, 1, 52, 214, 56, - 210, 71, 242, 223, 229, 226, 1, 52, 192, 159, 210, 71, 242, 223, 229, - 226, 206, 175, 163, 218, 251, 210, 71, 242, 223, 229, 226, 206, 175, 198, - 74, 210, 71, 242, 223, 229, 226, 205, 133, 230, 231, 201, 58, 210, 71, - 242, 223, 229, 226, 206, 175, 163, 177, 232, 214, 210, 71, 242, 223, 229, - 226, 206, 175, 163, 232, 214, 210, 71, 242, 223, 229, 226, 205, 133, 230, - 231, 201, 59, 232, 214, 210, 71, 242, 223, 229, 226, 205, 133, 163, 218, - 251, 210, 71, 242, 223, 229, 226, 205, 133, 198, 74, 210, 71, 242, 223, - 229, 226, 205, 133, 163, 177, 232, 214, 210, 71, 242, 223, 229, 226, 205, - 133, 163, 232, 214, 210, 71, 242, 223, 229, 226, 216, 67, 198, 74, 210, - 71, 242, 223, 229, 226, 230, 231, 201, 59, 195, 164, 210, 71, 242, 223, - 229, 226, 216, 67, 163, 177, 232, 214, 210, 71, 242, 223, 229, 226, 216, - 67, 163, 232, 214, 210, 71, 242, 223, 229, 226, 218, 217, 163, 218, 251, - 210, 71, 242, 223, 229, 226, 218, 217, 198, 74, 210, 71, 242, 223, 229, - 226, 230, 231, 201, 58, 210, 71, 242, 223, 229, 226, 218, 217, 163, 177, - 232, 214, 210, 71, 242, 223, 229, 226, 218, 217, 163, 232, 214, 210, 71, - 242, 223, 229, 226, 230, 231, 201, 59, 232, 214, 248, 151, 1, 65, 248, - 151, 1, 252, 154, 248, 151, 1, 70, 248, 151, 1, 223, 170, 248, 151, 1, - 69, 248, 151, 1, 196, 26, 248, 151, 1, 121, 148, 248, 151, 1, 121, 206, - 105, 248, 151, 1, 121, 170, 248, 151, 1, 73, 248, 151, 1, 251, 184, 248, - 151, 1, 74, 248, 151, 1, 250, 113, 248, 151, 1, 157, 248, 151, 1, 221, - 190, 248, 151, 1, 231, 203, 248, 151, 1, 231, 54, 248, 151, 1, 214, 54, - 248, 151, 1, 247, 112, 248, 151, 1, 246, 209, 248, 151, 1, 223, 4, 248, - 151, 1, 222, 225, 248, 151, 1, 212, 88, 248, 151, 1, 197, 128, 248, 151, - 1, 197, 116, 248, 151, 1, 237, 146, 248, 151, 1, 237, 130, 248, 151, 1, - 213, 66, 248, 151, 1, 199, 247, 248, 151, 1, 199, 44, 248, 151, 1, 237, - 241, 248, 151, 1, 237, 23, 248, 151, 1, 180, 248, 151, 1, 168, 248, 151, - 1, 209, 219, 248, 151, 1, 249, 103, 248, 151, 1, 248, 153, 248, 151, 1, - 172, 248, 151, 1, 169, 248, 151, 1, 166, 248, 151, 1, 171, 248, 151, 1, - 195, 185, 248, 151, 1, 203, 160, 248, 151, 1, 201, 170, 248, 151, 1, 189, - 248, 151, 1, 144, 248, 151, 18, 3, 252, 154, 248, 151, 18, 3, 70, 248, - 151, 18, 3, 223, 170, 248, 151, 18, 3, 69, 248, 151, 18, 3, 196, 26, 248, - 151, 18, 3, 121, 148, 248, 151, 18, 3, 121, 206, 105, 248, 151, 18, 3, - 121, 170, 248, 151, 18, 3, 73, 248, 151, 18, 3, 251, 184, 248, 151, 18, - 3, 74, 248, 151, 18, 3, 250, 113, 248, 151, 3, 247, 71, 248, 151, 3, 251, - 20, 248, 151, 3, 195, 32, 248, 151, 3, 195, 37, 248, 151, 3, 250, 95, - 248, 151, 237, 193, 248, 151, 54, 237, 193, 248, 151, 193, 23, 204, 5, - 248, 151, 231, 167, 232, 217, 248, 151, 231, 167, 232, 216, 248, 151, 17, - 191, 77, 248, 151, 17, 108, 248, 151, 17, 109, 248, 151, 17, 139, 248, - 151, 17, 137, 248, 151, 17, 153, 248, 151, 17, 173, 248, 151, 17, 181, - 248, 151, 17, 176, 248, 151, 17, 184, 248, 151, 31, 108, 248, 151, 31, - 109, 248, 151, 31, 139, 248, 151, 31, 137, 248, 151, 31, 153, 248, 151, - 31, 173, 248, 151, 31, 181, 248, 151, 31, 176, 248, 151, 31, 184, 248, - 151, 31, 199, 90, 248, 151, 31, 197, 28, 248, 151, 31, 198, 244, 248, - 151, 31, 232, 97, 248, 151, 31, 232, 230, 248, 151, 31, 202, 115, 248, - 151, 31, 203, 236, 248, 151, 31, 234, 110, 248, 151, 31, 213, 156, 248, - 151, 228, 108, 196, 87, 77, 217, 38, 229, 204, 77, 217, 38, 87, 203, 152, - 217, 38, 1, 157, 217, 38, 1, 221, 190, 217, 38, 1, 231, 203, 217, 38, 1, - 214, 54, 217, 38, 1, 247, 112, 217, 38, 1, 246, 209, 217, 38, 1, 223, 4, - 217, 38, 1, 212, 88, 217, 38, 1, 199, 247, 217, 38, 1, 199, 44, 217, 38, - 1, 237, 241, 217, 38, 1, 180, 217, 38, 1, 168, 217, 38, 1, 209, 219, 217, - 38, 1, 249, 103, 217, 38, 1, 172, 217, 38, 1, 197, 164, 217, 38, 1, 197, - 153, 217, 38, 1, 234, 247, 217, 38, 1, 193, 187, 217, 38, 1, 191, 71, - 217, 38, 1, 191, 123, 217, 38, 1, 255, 162, 217, 38, 1, 169, 217, 38, 1, - 166, 217, 38, 1, 171, 217, 38, 1, 203, 160, 217, 38, 1, 189, 217, 38, 1, - 144, 217, 38, 1, 65, 217, 38, 200, 234, 1, 157, 217, 38, 200, 234, 1, - 221, 190, 217, 38, 200, 234, 1, 231, 203, 217, 38, 200, 234, 1, 214, 54, - 217, 38, 200, 234, 1, 247, 112, 217, 38, 200, 234, 1, 246, 209, 217, 38, - 200, 234, 1, 223, 4, 217, 38, 200, 234, 1, 212, 88, 217, 38, 200, 234, 1, - 199, 247, 217, 38, 200, 234, 1, 199, 44, 217, 38, 200, 234, 1, 237, 241, - 217, 38, 200, 234, 1, 180, 217, 38, 200, 234, 1, 168, 217, 38, 200, 234, - 1, 209, 219, 217, 38, 200, 234, 1, 249, 103, 217, 38, 200, 234, 1, 172, - 217, 38, 200, 234, 1, 197, 164, 217, 38, 200, 234, 1, 197, 153, 217, 38, - 200, 234, 1, 234, 247, 217, 38, 200, 234, 1, 193, 187, 217, 38, 200, 234, - 1, 191, 71, 217, 38, 200, 234, 1, 191, 123, 217, 38, 200, 234, 1, 169, - 217, 38, 200, 234, 1, 166, 217, 38, 200, 234, 1, 171, 217, 38, 200, 234, - 1, 203, 160, 217, 38, 200, 234, 1, 189, 217, 38, 200, 234, 1, 144, 217, - 38, 200, 234, 1, 65, 217, 38, 18, 3, 252, 154, 217, 38, 18, 3, 70, 217, - 38, 18, 3, 69, 217, 38, 18, 3, 73, 217, 38, 18, 3, 74, 217, 38, 3, 251, - 20, 217, 38, 3, 247, 71, 217, 22, 129, 1, 65, 217, 22, 129, 1, 252, 154, - 217, 22, 129, 1, 70, 217, 22, 129, 1, 223, 170, 217, 22, 129, 1, 69, 217, - 22, 129, 1, 196, 26, 217, 22, 129, 1, 73, 217, 22, 129, 1, 251, 184, 217, - 22, 129, 1, 74, 217, 22, 129, 1, 250, 113, 217, 22, 129, 1, 157, 217, 22, - 129, 1, 221, 190, 217, 22, 129, 1, 231, 203, 217, 22, 129, 1, 231, 54, - 217, 22, 129, 1, 214, 54, 217, 22, 129, 1, 247, 112, 217, 22, 129, 1, - 246, 209, 217, 22, 129, 1, 223, 4, 217, 22, 129, 1, 222, 225, 217, 22, - 129, 1, 212, 88, 217, 22, 129, 1, 197, 128, 217, 22, 129, 1, 197, 116, - 217, 22, 129, 1, 237, 146, 217, 22, 129, 1, 237, 130, 217, 22, 129, 1, - 213, 66, 217, 22, 129, 1, 199, 247, 217, 22, 129, 1, 199, 44, 217, 22, - 129, 1, 237, 241, 217, 22, 129, 1, 237, 23, 217, 22, 129, 1, 180, 217, - 22, 129, 1, 168, 217, 22, 129, 1, 209, 219, 217, 22, 129, 1, 249, 103, - 217, 22, 129, 1, 248, 153, 217, 22, 129, 1, 172, 217, 22, 129, 1, 169, - 217, 22, 129, 1, 166, 217, 22, 129, 1, 171, 217, 22, 129, 1, 195, 185, - 217, 22, 129, 1, 203, 160, 217, 22, 129, 1, 201, 170, 217, 22, 129, 1, - 189, 217, 22, 129, 1, 144, 217, 22, 129, 1, 219, 49, 217, 22, 129, 1, - 220, 222, 217, 22, 129, 1, 222, 175, 217, 22, 129, 1, 198, 22, 217, 22, - 129, 18, 3, 252, 154, 217, 22, 129, 18, 3, 70, 217, 22, 129, 18, 3, 223, - 170, 217, 22, 129, 18, 3, 69, 217, 22, 129, 18, 3, 196, 26, 217, 22, 129, - 18, 3, 121, 148, 217, 22, 129, 18, 3, 73, 217, 22, 129, 18, 3, 251, 184, - 217, 22, 129, 18, 3, 74, 217, 22, 129, 18, 3, 250, 113, 217, 22, 129, 3, - 251, 20, 217, 22, 129, 3, 195, 32, 217, 22, 129, 3, 212, 128, 217, 22, - 129, 3, 247, 73, 217, 22, 129, 3, 230, 39, 217, 22, 129, 195, 37, 217, - 22, 129, 207, 39, 217, 22, 129, 207, 176, 217, 22, 129, 17, 191, 77, 217, - 22, 129, 17, 108, 217, 22, 129, 17, 109, 217, 22, 129, 17, 139, 217, 22, - 129, 17, 137, 217, 22, 129, 17, 153, 217, 22, 129, 17, 173, 217, 22, 129, - 17, 181, 217, 22, 129, 17, 176, 217, 22, 129, 17, 184, 230, 124, 129, 1, - 65, 230, 124, 129, 1, 252, 154, 230, 124, 129, 1, 70, 230, 124, 129, 1, - 223, 170, 230, 124, 129, 1, 69, 230, 124, 129, 1, 196, 26, 230, 124, 129, - 1, 234, 145, 230, 124, 129, 1, 251, 184, 230, 124, 129, 1, 211, 76, 230, - 124, 129, 1, 250, 113, 230, 124, 129, 1, 169, 230, 124, 129, 1, 195, 185, - 230, 124, 129, 1, 249, 103, 230, 124, 129, 1, 248, 153, 230, 124, 129, 1, - 172, 230, 124, 129, 1, 157, 230, 124, 129, 1, 221, 190, 230, 124, 129, 1, - 199, 247, 230, 124, 129, 1, 199, 44, 230, 124, 129, 1, 171, 230, 124, - 129, 1, 231, 203, 230, 124, 129, 1, 231, 54, 230, 124, 129, 1, 237, 241, - 230, 124, 129, 1, 237, 23, 230, 124, 129, 1, 180, 230, 124, 129, 1, 247, - 112, 230, 124, 129, 1, 246, 209, 230, 124, 129, 1, 197, 128, 230, 124, - 129, 1, 197, 116, 230, 124, 129, 1, 219, 49, 230, 124, 129, 1, 223, 4, - 230, 124, 129, 1, 222, 225, 230, 124, 129, 1, 237, 146, 230, 124, 129, 1, - 237, 130, 230, 124, 129, 1, 214, 54, 230, 124, 129, 1, 168, 230, 124, - 129, 1, 209, 219, 230, 124, 129, 1, 144, 230, 124, 129, 1, 166, 230, 124, - 129, 1, 189, 230, 124, 129, 18, 3, 252, 154, 230, 124, 129, 18, 3, 70, - 230, 124, 129, 18, 3, 223, 170, 230, 124, 129, 18, 3, 69, 230, 124, 129, - 18, 3, 196, 26, 230, 124, 129, 18, 3, 234, 145, 230, 124, 129, 18, 3, - 251, 184, 230, 124, 129, 18, 3, 211, 76, 230, 124, 129, 18, 3, 250, 113, - 230, 124, 129, 3, 251, 20, 230, 124, 129, 3, 195, 32, 230, 124, 129, 195, - 37, 230, 124, 129, 211, 102, 230, 124, 129, 17, 191, 77, 230, 124, 129, - 17, 108, 230, 124, 129, 17, 109, 230, 124, 129, 17, 139, 230, 124, 129, - 17, 137, 230, 124, 129, 17, 153, 230, 124, 129, 17, 173, 230, 124, 129, - 17, 181, 230, 124, 129, 17, 176, 230, 124, 129, 17, 184, 217, 81, 1, 157, - 217, 81, 1, 231, 203, 217, 81, 1, 214, 54, 217, 81, 1, 168, 217, 81, 1, - 249, 103, 217, 81, 1, 172, 217, 81, 1, 199, 247, 217, 81, 1, 237, 241, - 217, 81, 1, 180, 217, 81, 1, 247, 112, 217, 81, 1, 223, 4, 217, 81, 1, - 212, 88, 217, 81, 1, 169, 217, 81, 1, 166, 217, 81, 1, 171, 217, 81, 1, - 195, 185, 217, 81, 1, 189, 217, 81, 1, 65, 217, 81, 251, 67, 217, 81, 18, - 3, 70, 217, 81, 18, 3, 69, 217, 81, 18, 3, 73, 217, 81, 18, 3, 74, 217, - 81, 210, 84, 217, 81, 234, 53, 80, 205, 48, 219, 64, 1, 192, 35, 44, 232, - 80, 91, 198, 217, 44, 232, 80, 91, 211, 89, 44, 232, 80, 91, 234, 113, - 44, 232, 80, 91, 202, 113, 44, 232, 80, 91, 232, 100, 44, 232, 80, 91, - 198, 240, 44, 232, 80, 115, 234, 112, 44, 232, 80, 115, 202, 112, 44, - 232, 80, 91, 197, 31, 44, 232, 80, 91, 202, 122, 44, 232, 80, 91, 202, - 121, 44, 232, 80, 91, 199, 81, 44, 232, 80, 91, 234, 116, 44, 232, 80, - 115, 197, 30, 44, 232, 80, 115, 202, 120, 44, 232, 80, 91, 232, 233, 44, - 232, 80, 91, 208, 17, 44, 232, 80, 91, 230, 36, 44, 232, 80, 91, 230, 35, - 44, 232, 80, 115, 208, 15, 44, 232, 80, 235, 77, 233, 52, 221, 120, 44, - 3, 214, 90, 44, 3, 246, 214, 44, 3, 252, 105, 44, 3, 196, 11, 44, 3, 215, - 76, 44, 3, 220, 170, 44, 3, 210, 75, 44, 3, 215, 120, 44, 3, 222, 97, 44, - 3, 210, 154, 44, 3, 209, 32, 44, 3, 195, 170, 44, 3, 210, 205, 44, 3, - 220, 159, 44, 3, 195, 140, 44, 193, 99, 238, 140, 57, 44, 235, 48, 238, - 140, 57, 44, 219, 255, 57, 44, 205, 154, 210, 157, 57, 44, 198, 17, 238, - 183, 57, 44, 198, 17, 31, 57, 44, 238, 122, 57, 44, 24, 211, 143, 57, 44, - 201, 222, 57, 44, 198, 34, 57, 44, 223, 135, 209, 15, 57, 44, 201, 91, - 232, 60, 57, 44, 3, 215, 80, 44, 3, 195, 178, 44, 208, 145, 234, 53, 80, - 199, 48, 10, 3, 65, 10, 3, 41, 25, 65, 10, 3, 41, 25, 249, 85, 10, 3, 41, - 25, 231, 172, 199, 79, 10, 3, 41, 25, 144, 10, 3, 41, 25, 223, 172, 10, - 3, 41, 25, 220, 79, 230, 122, 10, 3, 41, 25, 215, 87, 10, 3, 41, 25, 205, - 180, 10, 3, 254, 163, 10, 3, 252, 103, 10, 3, 252, 104, 25, 250, 157, 10, - 3, 252, 104, 25, 235, 30, 230, 122, 10, 3, 252, 104, 25, 231, 185, 10, 3, - 252, 104, 25, 231, 172, 199, 79, 10, 3, 252, 104, 25, 144, 10, 3, 252, - 104, 25, 223, 173, 230, 122, 10, 3, 252, 104, 25, 223, 144, 10, 3, 252, - 104, 25, 220, 80, 10, 3, 252, 104, 25, 203, 92, 10, 3, 252, 104, 25, 126, - 107, 126, 107, 69, 10, 3, 252, 104, 230, 122, 10, 3, 252, 20, 10, 3, 252, - 21, 25, 249, 64, 10, 3, 252, 21, 25, 231, 172, 199, 79, 10, 3, 252, 21, - 25, 216, 214, 107, 234, 61, 10, 3, 252, 21, 25, 203, 158, 10, 3, 252, 21, - 25, 199, 204, 10, 3, 251, 246, 10, 3, 251, 165, 10, 3, 251, 166, 25, 233, - 242, 10, 3, 251, 166, 25, 203, 54, 107, 230, 243, 10, 3, 251, 156, 10, 3, - 251, 157, 25, 251, 156, 10, 3, 251, 157, 25, 236, 208, 10, 3, 251, 157, - 25, 230, 243, 10, 3, 251, 157, 25, 144, 10, 3, 251, 157, 25, 222, 84, 10, - 3, 251, 157, 25, 221, 142, 10, 3, 251, 157, 25, 203, 108, 10, 3, 251, - 157, 25, 196, 34, 10, 3, 251, 152, 10, 3, 251, 139, 10, 3, 251, 94, 10, - 3, 251, 95, 25, 203, 108, 10, 3, 251, 81, 10, 3, 251, 82, 138, 251, 81, - 10, 3, 251, 82, 115, 198, 139, 10, 3, 251, 82, 107, 214, 227, 211, 52, - 251, 82, 107, 214, 226, 10, 3, 251, 82, 107, 214, 227, 201, 184, 10, 3, - 251, 40, 10, 3, 251, 10, 10, 3, 250, 232, 10, 3, 250, 233, 25, 220, 173, - 10, 3, 250, 204, 10, 3, 250, 165, 10, 3, 250, 159, 10, 3, 250, 160, 191, - 26, 199, 79, 10, 3, 250, 160, 222, 89, 199, 79, 10, 3, 250, 160, 138, - 250, 160, 197, 79, 138, 197, 79, 197, 79, 138, 197, 79, 210, 127, 10, 3, - 250, 160, 138, 250, 160, 138, 250, 159, 10, 3, 250, 160, 138, 250, 160, - 138, 250, 160, 238, 163, 250, 160, 138, 250, 160, 138, 250, 159, 10, 3, - 250, 157, 10, 3, 250, 153, 10, 3, 249, 103, 10, 3, 249, 85, 10, 3, 249, - 79, 10, 3, 249, 71, 10, 3, 249, 65, 10, 3, 249, 66, 138, 249, 65, 10, 3, - 249, 64, 10, 3, 164, 10, 3, 249, 37, 10, 3, 248, 140, 10, 3, 248, 141, - 25, 65, 10, 3, 248, 141, 25, 231, 163, 10, 3, 248, 141, 25, 223, 173, - 230, 122, 10, 3, 247, 218, 10, 3, 247, 219, 138, 247, 219, 252, 103, 10, - 3, 247, 219, 138, 247, 219, 196, 109, 10, 3, 247, 219, 238, 163, 247, - 218, 10, 3, 247, 194, 10, 3, 247, 195, 138, 247, 194, 10, 3, 247, 182, - 10, 3, 247, 181, 10, 3, 237, 241, 10, 3, 237, 231, 10, 3, 237, 232, 221, - 101, 25, 41, 107, 217, 20, 10, 3, 237, 232, 221, 101, 25, 251, 94, 10, 3, - 237, 232, 221, 101, 25, 249, 64, 10, 3, 237, 232, 221, 101, 25, 248, 140, - 10, 3, 237, 232, 221, 101, 25, 231, 203, 10, 3, 237, 232, 221, 101, 25, - 231, 204, 107, 217, 20, 10, 3, 237, 232, 221, 101, 25, 231, 16, 10, 3, - 237, 232, 221, 101, 25, 230, 252, 10, 3, 237, 232, 221, 101, 25, 230, - 135, 10, 3, 237, 232, 221, 101, 25, 144, 10, 3, 237, 232, 221, 101, 25, - 223, 49, 10, 3, 237, 232, 221, 101, 25, 223, 50, 107, 218, 203, 10, 3, - 237, 232, 221, 101, 25, 222, 69, 10, 3, 237, 232, 221, 101, 25, 171, 10, - 3, 237, 232, 221, 101, 25, 218, 203, 10, 3, 237, 232, 221, 101, 25, 218, - 204, 107, 217, 19, 10, 3, 237, 232, 221, 101, 25, 218, 186, 10, 3, 237, - 232, 221, 101, 25, 214, 107, 10, 3, 237, 232, 221, 101, 25, 210, 128, - 107, 210, 127, 10, 3, 237, 232, 221, 101, 25, 202, 217, 10, 3, 237, 232, - 221, 101, 25, 199, 204, 10, 3, 237, 232, 221, 101, 25, 196, 166, 107, - 230, 252, 10, 3, 237, 232, 221, 101, 25, 196, 34, 10, 3, 237, 203, 10, 3, - 237, 180, 10, 3, 237, 179, 10, 3, 237, 178, 10, 3, 236, 255, 10, 3, 236, - 237, 10, 3, 236, 210, 10, 3, 236, 211, 25, 203, 108, 10, 3, 236, 208, 10, - 3, 236, 198, 10, 3, 236, 199, 222, 29, 126, 230, 123, 236, 177, 10, 3, - 236, 177, 10, 3, 235, 45, 10, 3, 235, 46, 138, 235, 45, 10, 3, 235, 46, - 230, 122, 10, 3, 235, 46, 203, 89, 10, 3, 235, 43, 10, 3, 235, 44, 25, - 233, 223, 10, 3, 235, 42, 10, 3, 235, 38, 10, 3, 235, 37, 10, 3, 235, 36, - 10, 3, 235, 31, 10, 3, 235, 29, 10, 3, 235, 30, 230, 122, 10, 3, 235, 30, - 230, 123, 230, 122, 10, 3, 235, 28, 10, 3, 235, 21, 10, 3, 73, 10, 3, - 234, 227, 25, 210, 127, 10, 3, 234, 227, 138, 234, 227, 212, 118, 138, - 212, 117, 10, 3, 234, 174, 10, 3, 234, 175, 25, 41, 107, 230, 72, 107, - 237, 241, 10, 3, 234, 175, 25, 231, 163, 10, 3, 234, 175, 25, 216, 81, - 10, 3, 234, 175, 25, 205, 164, 10, 3, 234, 175, 25, 203, 108, 10, 3, 234, - 175, 25, 69, 10, 3, 234, 147, 10, 3, 234, 134, 10, 3, 234, 97, 10, 3, - 234, 61, 10, 3, 234, 62, 25, 231, 171, 10, 3, 234, 62, 25, 231, 172, 199, - 79, 10, 3, 234, 62, 25, 216, 213, 10, 3, 234, 62, 238, 163, 234, 61, 10, - 3, 234, 62, 211, 52, 234, 61, 10, 3, 234, 62, 201, 184, 10, 3, 233, 245, - 10, 3, 233, 242, 10, 3, 233, 223, 10, 3, 233, 139, 10, 3, 233, 140, 25, - 65, 10, 3, 233, 140, 25, 41, 107, 220, 13, 10, 3, 233, 140, 25, 41, 107, - 220, 14, 25, 220, 13, 10, 3, 233, 140, 25, 251, 81, 10, 3, 233, 140, 25, - 249, 85, 10, 3, 233, 140, 25, 235, 30, 230, 122, 10, 3, 233, 140, 25, - 235, 30, 230, 123, 230, 122, 10, 3, 233, 140, 25, 144, 10, 3, 233, 140, - 25, 230, 72, 230, 122, 10, 3, 233, 140, 25, 223, 173, 230, 122, 10, 3, - 233, 140, 25, 222, 28, 10, 3, 233, 140, 25, 222, 29, 201, 184, 10, 3, - 233, 140, 25, 220, 199, 10, 3, 233, 140, 25, 171, 10, 3, 233, 140, 25, - 220, 14, 25, 220, 13, 10, 3, 233, 140, 25, 219, 122, 10, 3, 233, 140, 25, - 218, 203, 10, 3, 233, 140, 25, 196, 165, 10, 3, 233, 140, 25, 196, 154, - 10, 3, 231, 203, 10, 3, 231, 204, 230, 122, 10, 3, 231, 201, 10, 3, 231, - 202, 25, 41, 107, 237, 242, 107, 144, 10, 3, 231, 202, 25, 41, 107, 144, - 10, 3, 231, 202, 25, 41, 107, 223, 172, 10, 3, 231, 202, 25, 252, 21, - 199, 80, 107, 199, 231, 10, 3, 231, 202, 25, 251, 81, 10, 3, 231, 202, - 25, 250, 159, 10, 3, 231, 202, 25, 250, 158, 107, 231, 185, 10, 3, 231, - 202, 25, 249, 85, 10, 3, 231, 202, 25, 249, 38, 107, 166, 10, 3, 231, - 202, 25, 247, 182, 10, 3, 231, 202, 25, 247, 183, 107, 166, 10, 3, 231, - 202, 25, 237, 241, 10, 3, 231, 202, 25, 236, 255, 10, 3, 231, 202, 25, - 236, 211, 25, 203, 108, 10, 3, 231, 202, 25, 235, 43, 10, 3, 231, 202, - 25, 234, 97, 10, 3, 231, 202, 25, 234, 98, 107, 171, 10, 3, 231, 202, 25, - 234, 61, 10, 3, 231, 202, 25, 234, 62, 25, 231, 172, 199, 79, 10, 3, 231, - 202, 25, 231, 172, 199, 79, 10, 3, 231, 202, 25, 231, 163, 10, 3, 231, - 202, 25, 231, 16, 10, 3, 231, 202, 25, 231, 14, 10, 3, 231, 202, 25, 231, - 15, 107, 65, 10, 3, 231, 202, 25, 230, 253, 107, 200, 255, 10, 3, 231, - 202, 25, 230, 72, 107, 218, 204, 107, 233, 223, 10, 3, 231, 202, 25, 230, - 40, 10, 3, 231, 202, 25, 230, 41, 107, 171, 10, 3, 231, 202, 25, 229, - 127, 107, 219, 122, 10, 3, 231, 202, 25, 228, 120, 10, 3, 231, 202, 25, - 223, 173, 230, 122, 10, 3, 231, 202, 25, 223, 35, 107, 228, 129, 107, - 250, 159, 10, 3, 231, 202, 25, 222, 69, 10, 3, 231, 202, 25, 222, 28, 10, - 3, 231, 202, 25, 221, 128, 10, 3, 231, 202, 25, 221, 129, 107, 220, 13, - 10, 3, 231, 202, 25, 220, 200, 107, 251, 81, 10, 3, 231, 202, 25, 171, - 10, 3, 231, 202, 25, 216, 214, 107, 234, 61, 10, 3, 231, 202, 25, 216, - 81, 10, 3, 231, 202, 25, 212, 117, 10, 3, 231, 202, 25, 212, 118, 138, - 212, 117, 10, 3, 231, 202, 25, 168, 10, 3, 231, 202, 25, 205, 164, 10, 3, - 231, 202, 25, 205, 122, 10, 3, 231, 202, 25, 203, 108, 10, 3, 231, 202, - 25, 203, 109, 107, 197, 60, 10, 3, 231, 202, 25, 203, 74, 10, 3, 231, - 202, 25, 200, 199, 10, 3, 231, 202, 25, 199, 204, 10, 3, 231, 202, 25, - 69, 10, 3, 231, 202, 25, 196, 154, 10, 3, 231, 202, 25, 196, 155, 107, - 235, 45, 10, 3, 231, 202, 138, 231, 201, 10, 3, 231, 196, 10, 3, 231, - 197, 238, 163, 231, 196, 10, 3, 231, 194, 10, 3, 231, 195, 138, 231, 195, - 231, 164, 138, 231, 163, 10, 3, 231, 185, 10, 3, 231, 186, 231, 195, 138, - 231, 195, 231, 164, 138, 231, 163, 10, 3, 231, 184, 10, 3, 231, 182, 10, - 3, 231, 173, 10, 3, 231, 171, 10, 3, 231, 172, 199, 79, 10, 3, 231, 172, - 138, 231, 171, 10, 3, 231, 172, 238, 163, 231, 171, 10, 3, 231, 163, 10, - 3, 231, 162, 10, 3, 231, 156, 10, 3, 231, 97, 10, 3, 231, 98, 25, 220, - 173, 10, 3, 231, 16, 10, 3, 231, 17, 25, 73, 10, 3, 231, 17, 25, 69, 10, - 3, 231, 17, 238, 163, 231, 16, 10, 3, 231, 14, 10, 3, 231, 15, 138, 231, - 14, 10, 3, 231, 15, 238, 163, 231, 14, 10, 3, 231, 11, 10, 3, 230, 252, - 10, 3, 230, 253, 230, 122, 10, 3, 230, 250, 10, 3, 230, 251, 25, 41, 107, - 223, 172, 10, 3, 230, 251, 25, 231, 172, 199, 79, 10, 3, 230, 251, 25, - 223, 172, 10, 3, 230, 251, 25, 218, 204, 107, 223, 172, 10, 3, 230, 251, - 25, 168, 10, 3, 230, 245, 10, 3, 230, 243, 10, 3, 230, 244, 238, 163, - 230, 243, 10, 3, 230, 244, 25, 249, 85, 10, 3, 230, 244, 25, 199, 204, - 10, 3, 230, 244, 199, 79, 10, 3, 230, 146, 10, 3, 230, 147, 238, 163, - 230, 146, 10, 3, 230, 144, 10, 3, 230, 145, 25, 222, 69, 10, 3, 230, 145, - 25, 222, 70, 25, 223, 173, 230, 122, 10, 3, 230, 145, 25, 212, 117, 10, - 3, 230, 145, 25, 205, 165, 107, 197, 78, 10, 3, 230, 145, 230, 122, 10, - 3, 230, 135, 10, 3, 230, 136, 25, 41, 107, 220, 173, 10, 3, 230, 136, 25, - 220, 173, 10, 3, 230, 136, 138, 230, 136, 218, 194, 10, 3, 230, 127, 10, - 3, 230, 125, 10, 3, 230, 126, 25, 203, 108, 10, 3, 230, 116, 10, 3, 230, - 115, 10, 3, 230, 110, 10, 3, 230, 109, 10, 3, 144, 10, 3, 230, 72, 199, - 79, 10, 3, 230, 72, 230, 122, 10, 3, 230, 40, 10, 3, 229, 126, 10, 3, - 229, 127, 25, 250, 159, 10, 3, 229, 127, 25, 250, 157, 10, 3, 229, 127, - 25, 249, 85, 10, 3, 229, 127, 25, 236, 177, 10, 3, 229, 127, 25, 231, - 194, 10, 3, 229, 127, 25, 221, 117, 10, 3, 229, 127, 25, 212, 117, 10, 3, - 229, 127, 25, 203, 108, 10, 3, 229, 127, 25, 69, 10, 3, 228, 128, 10, 3, - 228, 120, 10, 3, 228, 121, 25, 251, 81, 10, 3, 228, 121, 25, 230, 40, 10, - 3, 228, 121, 25, 222, 28, 10, 3, 228, 121, 25, 219, 65, 10, 3, 228, 121, - 25, 196, 154, 10, 3, 228, 115, 10, 3, 70, 10, 3, 228, 44, 65, 10, 3, 228, - 0, 10, 3, 223, 200, 10, 3, 223, 201, 138, 223, 201, 247, 182, 10, 3, 223, - 201, 138, 223, 201, 201, 184, 10, 3, 223, 175, 10, 3, 223, 172, 10, 3, - 223, 173, 236, 237, 10, 3, 223, 173, 206, 252, 10, 3, 223, 173, 138, 223, - 173, 203, 58, 138, 203, 58, 196, 155, 138, 196, 154, 10, 3, 223, 173, - 230, 122, 10, 3, 223, 163, 10, 3, 223, 164, 25, 231, 172, 199, 79, 10, 3, - 223, 162, 10, 3, 223, 152, 10, 3, 223, 153, 25, 199, 204, 10, 3, 223, - 153, 238, 163, 223, 152, 10, 3, 223, 153, 211, 52, 223, 152, 10, 3, 223, - 153, 201, 184, 10, 3, 223, 144, 10, 3, 223, 134, 10, 3, 223, 49, 10, 3, - 223, 34, 10, 3, 157, 10, 3, 222, 115, 25, 65, 10, 3, 222, 115, 25, 251, - 246, 10, 3, 222, 115, 25, 251, 247, 107, 220, 199, 10, 3, 222, 115, 25, - 250, 157, 10, 3, 222, 115, 25, 249, 85, 10, 3, 222, 115, 25, 249, 64, 10, - 3, 222, 115, 25, 164, 10, 3, 222, 115, 25, 248, 140, 10, 3, 222, 115, 25, - 233, 242, 10, 3, 222, 115, 25, 233, 223, 10, 3, 222, 115, 25, 231, 203, - 10, 3, 222, 115, 25, 231, 185, 10, 3, 222, 115, 25, 231, 172, 199, 79, - 10, 3, 222, 115, 25, 231, 163, 10, 3, 222, 115, 25, 231, 164, 107, 203, - 159, 107, 65, 10, 3, 222, 115, 25, 231, 16, 10, 3, 222, 115, 25, 230, - 252, 10, 3, 222, 115, 25, 230, 244, 107, 205, 122, 10, 3, 222, 115, 25, - 230, 244, 238, 163, 230, 243, 10, 3, 222, 115, 25, 230, 146, 10, 3, 222, - 115, 25, 230, 115, 10, 3, 222, 115, 25, 223, 172, 10, 3, 222, 115, 25, - 223, 152, 10, 3, 222, 115, 25, 222, 69, 10, 3, 222, 115, 25, 221, 142, - 10, 3, 222, 115, 25, 221, 128, 10, 3, 222, 115, 25, 219, 122, 10, 3, 222, - 115, 25, 218, 203, 10, 3, 222, 115, 25, 216, 213, 10, 3, 222, 115, 25, - 216, 214, 107, 235, 45, 10, 3, 222, 115, 25, 216, 214, 107, 231, 16, 10, - 3, 222, 115, 25, 216, 214, 107, 199, 140, 10, 3, 222, 115, 25, 216, 81, - 10, 3, 222, 115, 25, 216, 82, 107, 212, 112, 10, 3, 222, 115, 25, 214, - 107, 10, 3, 222, 115, 25, 212, 117, 10, 3, 222, 115, 25, 209, 176, 10, 3, - 222, 115, 25, 206, 63, 10, 3, 222, 115, 25, 189, 10, 3, 222, 115, 25, - 205, 122, 10, 3, 222, 115, 25, 203, 160, 10, 3, 222, 115, 25, 203, 108, - 10, 3, 222, 115, 25, 203, 74, 10, 3, 222, 115, 25, 203, 0, 10, 3, 222, - 115, 25, 202, 196, 10, 3, 222, 115, 25, 200, 208, 10, 3, 222, 115, 25, - 199, 174, 10, 3, 222, 115, 25, 69, 10, 3, 222, 115, 25, 196, 165, 10, 3, - 222, 115, 25, 196, 154, 10, 3, 222, 115, 25, 196, 112, 25, 168, 10, 3, - 222, 115, 25, 196, 34, 10, 3, 222, 115, 25, 191, 30, 10, 3, 222, 101, 10, - 3, 222, 102, 238, 163, 222, 101, 10, 3, 222, 90, 10, 3, 222, 86, 10, 3, - 222, 84, 10, 3, 222, 83, 10, 3, 222, 81, 10, 3, 222, 82, 138, 222, 81, - 10, 3, 222, 69, 10, 3, 222, 70, 25, 223, 173, 230, 122, 10, 3, 222, 65, - 10, 3, 222, 66, 25, 249, 85, 10, 3, 222, 66, 238, 163, 222, 65, 10, 3, - 222, 63, 10, 3, 222, 62, 10, 3, 222, 28, 10, 3, 222, 29, 220, 81, 25, - 126, 138, 220, 81, 25, 69, 10, 3, 222, 29, 138, 222, 29, 220, 81, 25, - 126, 138, 220, 81, 25, 69, 10, 3, 221, 217, 10, 3, 221, 142, 10, 3, 221, - 143, 25, 249, 85, 10, 3, 221, 143, 25, 69, 10, 3, 221, 143, 25, 196, 154, - 10, 3, 221, 128, 10, 3, 221, 117, 10, 3, 221, 103, 10, 3, 221, 102, 10, - 3, 221, 100, 10, 3, 221, 101, 138, 221, 100, 10, 3, 220, 208, 10, 3, 220, - 209, 138, 229, 127, 25, 250, 158, 220, 209, 138, 229, 127, 25, 250, 157, - 10, 3, 220, 199, 10, 3, 220, 197, 10, 3, 220, 198, 195, 165, 20, 10, 3, - 220, 196, 10, 3, 220, 187, 10, 3, 220, 188, 230, 122, 10, 3, 220, 186, - 10, 3, 220, 173, 10, 3, 220, 174, 211, 52, 220, 173, 10, 3, 220, 166, 10, - 3, 220, 143, 10, 3, 171, 10, 3, 220, 80, 10, 3, 220, 81, 25, 65, 10, 3, - 220, 81, 25, 41, 107, 237, 242, 107, 144, 10, 3, 220, 81, 25, 41, 107, - 231, 163, 10, 3, 220, 81, 25, 41, 107, 220, 13, 10, 3, 220, 81, 25, 251, - 156, 10, 3, 220, 81, 25, 251, 81, 10, 3, 220, 81, 25, 250, 160, 191, 26, - 199, 79, 10, 3, 220, 81, 25, 249, 85, 10, 3, 220, 81, 25, 248, 140, 10, - 3, 220, 81, 25, 237, 180, 10, 3, 220, 81, 25, 234, 61, 10, 3, 220, 81, - 25, 231, 203, 10, 3, 220, 81, 25, 231, 163, 10, 3, 220, 81, 25, 230, 135, - 10, 3, 220, 81, 25, 230, 136, 107, 230, 135, 10, 3, 220, 81, 25, 144, 10, - 3, 220, 81, 25, 230, 40, 10, 3, 220, 81, 25, 229, 127, 25, 212, 117, 10, - 3, 220, 81, 25, 223, 173, 230, 122, 10, 3, 220, 81, 25, 223, 152, 10, 3, - 220, 81, 25, 223, 153, 107, 144, 10, 3, 220, 81, 25, 223, 153, 107, 218, - 203, 10, 3, 220, 81, 25, 221, 142, 10, 3, 220, 81, 25, 221, 117, 10, 3, - 220, 81, 25, 220, 199, 10, 3, 220, 81, 25, 220, 187, 10, 3, 220, 81, 25, - 220, 188, 107, 229, 127, 107, 65, 10, 3, 220, 81, 25, 220, 80, 10, 3, - 220, 81, 25, 219, 65, 10, 3, 220, 81, 25, 218, 203, 10, 3, 220, 81, 25, - 218, 188, 10, 3, 220, 81, 25, 216, 213, 10, 3, 220, 81, 25, 216, 214, - 107, 234, 61, 10, 3, 220, 81, 25, 215, 87, 10, 3, 220, 81, 25, 214, 107, - 10, 3, 220, 81, 25, 203, 109, 107, 200, 199, 10, 3, 220, 81, 25, 203, 54, - 107, 230, 244, 107, 233, 242, 10, 3, 220, 81, 25, 203, 54, 107, 230, 244, - 199, 79, 10, 3, 220, 81, 25, 202, 254, 10, 3, 220, 81, 25, 202, 255, 107, - 202, 254, 10, 3, 220, 81, 25, 200, 199, 10, 3, 220, 81, 25, 199, 218, 10, - 3, 220, 81, 25, 199, 204, 10, 3, 220, 81, 25, 199, 141, 107, 41, 107, - 201, 0, 107, 180, 10, 3, 220, 81, 25, 69, 10, 3, 220, 81, 25, 126, 107, - 65, 10, 3, 220, 81, 25, 126, 107, 126, 107, 69, 10, 3, 220, 81, 25, 196, - 166, 107, 250, 159, 10, 3, 220, 81, 25, 196, 154, 10, 3, 220, 81, 25, - 196, 34, 10, 3, 220, 81, 201, 184, 10, 3, 220, 78, 10, 3, 220, 79, 25, - 203, 108, 10, 3, 220, 79, 25, 203, 109, 107, 200, 199, 10, 3, 220, 79, - 230, 122, 10, 3, 220, 79, 230, 123, 138, 220, 79, 230, 123, 203, 108, 10, - 3, 220, 74, 10, 3, 220, 13, 10, 3, 220, 14, 25, 220, 13, 10, 3, 220, 11, - 10, 3, 220, 12, 25, 220, 173, 10, 3, 220, 12, 25, 220, 174, 107, 206, 63, - 10, 3, 219, 122, 10, 3, 219, 103, 10, 3, 219, 91, 10, 3, 219, 65, 10, 3, - 218, 203, 10, 3, 218, 204, 25, 249, 85, 10, 3, 218, 201, 10, 3, 218, 202, - 25, 251, 156, 10, 3, 218, 202, 25, 249, 85, 10, 3, 218, 202, 25, 233, - 223, 10, 3, 218, 202, 25, 233, 224, 199, 79, 10, 3, 218, 202, 25, 231, - 172, 199, 79, 10, 3, 218, 202, 25, 229, 127, 25, 249, 85, 10, 3, 218, - 202, 25, 223, 152, 10, 3, 218, 202, 25, 222, 86, 10, 3, 218, 202, 25, - 222, 84, 10, 3, 218, 202, 25, 222, 85, 107, 250, 159, 10, 3, 218, 202, - 25, 221, 142, 10, 3, 218, 202, 25, 220, 102, 107, 250, 159, 10, 3, 218, - 202, 25, 220, 80, 10, 3, 218, 202, 25, 216, 214, 107, 234, 61, 10, 3, - 218, 202, 25, 214, 107, 10, 3, 218, 202, 25, 212, 165, 10, 3, 218, 202, - 25, 202, 218, 107, 250, 159, 10, 3, 218, 202, 25, 202, 187, 107, 247, - 218, 10, 3, 218, 202, 25, 197, 78, 10, 3, 218, 202, 199, 79, 10, 3, 218, - 202, 238, 163, 218, 201, 10, 3, 218, 202, 211, 52, 218, 201, 10, 3, 218, - 202, 201, 184, 10, 3, 218, 202, 203, 89, 10, 3, 218, 200, 10, 3, 218, - 194, 10, 3, 218, 195, 138, 218, 194, 10, 3, 218, 195, 211, 52, 218, 194, - 10, 3, 218, 195, 203, 89, 10, 3, 218, 191, 10, 3, 218, 188, 10, 3, 218, - 186, 10, 3, 218, 187, 138, 218, 186, 10, 3, 218, 187, 138, 218, 187, 231, - 164, 138, 231, 163, 10, 3, 172, 10, 3, 217, 139, 25, 199, 204, 10, 3, - 217, 139, 230, 122, 10, 3, 217, 131, 10, 3, 217, 99, 10, 3, 217, 45, 10, - 3, 217, 20, 10, 3, 217, 19, 10, 3, 216, 213, 10, 3, 216, 154, 10, 3, 216, - 81, 10, 3, 216, 26, 10, 3, 215, 139, 10, 3, 215, 140, 138, 215, 139, 10, - 3, 215, 124, 10, 3, 215, 125, 230, 122, 10, 3, 215, 105, 10, 3, 215, 91, - 10, 3, 215, 87, 10, 3, 215, 88, 25, 65, 10, 3, 215, 88, 25, 220, 173, 10, - 3, 215, 88, 25, 191, 123, 10, 3, 215, 88, 138, 215, 87, 10, 3, 215, 88, - 138, 215, 88, 25, 41, 107, 180, 10, 3, 215, 88, 238, 163, 215, 87, 10, 3, - 215, 85, 10, 3, 215, 86, 25, 65, 10, 3, 215, 86, 25, 41, 107, 236, 255, - 10, 3, 215, 86, 25, 236, 255, 10, 3, 215, 86, 230, 122, 10, 3, 180, 10, - 3, 214, 239, 10, 3, 214, 226, 10, 3, 214, 227, 223, 64, 10, 3, 214, 227, - 25, 203, 1, 199, 79, 10, 3, 214, 227, 211, 52, 214, 226, 10, 3, 214, 225, - 10, 3, 214, 217, 212, 103, 10, 3, 214, 216, 10, 3, 214, 215, 10, 3, 214, - 107, 10, 3, 214, 108, 25, 65, 10, 3, 214, 108, 25, 196, 154, 10, 3, 214, - 108, 203, 89, 10, 3, 213, 205, 10, 3, 213, 206, 25, 73, 10, 3, 213, 196, - 10, 3, 213, 166, 10, 3, 213, 167, 25, 231, 172, 199, 79, 10, 3, 213, 167, - 25, 231, 164, 107, 231, 172, 199, 79, 10, 3, 213, 162, 10, 3, 213, 163, - 25, 251, 81, 10, 3, 213, 163, 25, 250, 159, 10, 3, 213, 163, 25, 250, - 160, 107, 250, 159, 10, 3, 213, 163, 25, 230, 135, 10, 3, 213, 163, 25, - 216, 214, 107, 231, 172, 199, 79, 10, 3, 213, 163, 25, 214, 107, 10, 3, - 213, 163, 25, 212, 117, 10, 3, 213, 163, 25, 203, 108, 10, 3, 213, 163, - 25, 203, 109, 107, 41, 251, 81, 10, 3, 213, 163, 25, 203, 109, 107, 250, - 159, 10, 3, 213, 163, 25, 203, 109, 107, 250, 160, 107, 250, 159, 10, 3, - 213, 163, 25, 196, 166, 107, 250, 159, 10, 3, 213, 163, 25, 196, 34, 10, - 3, 213, 150, 10, 3, 212, 165, 10, 3, 212, 134, 10, 3, 212, 117, 10, 3, - 212, 118, 220, 79, 25, 231, 163, 10, 3, 212, 118, 220, 79, 25, 217, 20, - 10, 3, 212, 118, 220, 79, 25, 205, 164, 10, 3, 212, 118, 220, 79, 25, - 205, 165, 138, 212, 118, 220, 79, 25, 205, 164, 10, 3, 212, 118, 220, 79, - 25, 196, 34, 10, 3, 212, 118, 199, 79, 10, 3, 212, 118, 138, 212, 117, - 10, 3, 212, 118, 238, 163, 212, 117, 10, 3, 212, 118, 238, 163, 212, 118, - 220, 79, 138, 220, 78, 10, 3, 212, 112, 10, 3, 212, 113, 252, 21, 25, - 250, 153, 10, 3, 212, 113, 252, 21, 25, 248, 140, 10, 3, 212, 113, 252, - 21, 25, 235, 38, 10, 3, 212, 113, 252, 21, 25, 230, 135, 10, 3, 212, 113, - 252, 21, 25, 223, 173, 230, 122, 10, 3, 212, 113, 252, 21, 25, 222, 84, - 10, 3, 212, 113, 252, 21, 25, 171, 10, 3, 212, 113, 252, 21, 25, 214, - 107, 10, 3, 212, 113, 252, 21, 25, 202, 184, 10, 3, 212, 113, 252, 21, - 25, 196, 165, 10, 3, 212, 113, 221, 101, 25, 248, 140, 10, 3, 212, 113, - 221, 101, 25, 248, 141, 69, 10, 3, 168, 10, 3, 210, 200, 10, 3, 210, 156, - 10, 3, 210, 127, 10, 3, 209, 234, 10, 3, 209, 176, 10, 3, 209, 177, 25, - 65, 10, 3, 209, 177, 25, 252, 103, 10, 3, 209, 177, 25, 248, 140, 10, 3, - 209, 177, 25, 247, 218, 10, 3, 209, 177, 25, 73, 10, 3, 209, 177, 25, 70, - 10, 3, 209, 177, 25, 228, 0, 10, 3, 209, 177, 25, 69, 10, 3, 209, 177, - 25, 196, 165, 10, 3, 209, 177, 238, 163, 209, 176, 10, 3, 209, 113, 10, - 3, 209, 114, 25, 222, 65, 10, 3, 209, 114, 25, 196, 154, 10, 3, 209, 114, - 25, 191, 123, 10, 3, 209, 114, 211, 52, 209, 113, 10, 3, 166, 10, 3, 207, - 171, 10, 3, 206, 252, 10, 3, 206, 63, 10, 3, 189, 10, 3, 205, 181, 212, - 103, 10, 3, 205, 180, 10, 3, 205, 181, 25, 65, 10, 3, 205, 181, 25, 235, - 45, 10, 3, 205, 181, 25, 235, 43, 10, 3, 205, 181, 25, 144, 10, 3, 205, - 181, 25, 222, 69, 10, 3, 205, 181, 25, 220, 173, 10, 3, 205, 181, 25, - 218, 186, 10, 3, 205, 181, 25, 216, 81, 10, 3, 205, 181, 25, 212, 117, - 10, 3, 205, 181, 25, 205, 164, 10, 3, 205, 181, 25, 203, 74, 10, 3, 205, - 181, 25, 199, 231, 10, 3, 205, 181, 25, 196, 165, 10, 3, 205, 181, 25, - 196, 160, 10, 3, 205, 181, 25, 196, 116, 10, 3, 205, 181, 25, 196, 58, - 10, 3, 205, 181, 25, 196, 34, 10, 3, 205, 181, 138, 205, 180, 10, 3, 205, - 181, 230, 122, 10, 3, 205, 164, 10, 3, 205, 165, 220, 81, 25, 250, 157, - 10, 3, 205, 131, 10, 3, 205, 122, 10, 3, 203, 160, 10, 3, 203, 158, 10, - 3, 203, 159, 25, 65, 10, 3, 203, 159, 25, 249, 85, 10, 3, 203, 159, 25, - 230, 243, 10, 3, 203, 159, 25, 214, 107, 10, 3, 203, 159, 25, 202, 254, - 10, 3, 203, 159, 25, 197, 60, 10, 3, 203, 159, 25, 69, 10, 3, 203, 159, - 25, 126, 107, 65, 10, 3, 203, 156, 10, 3, 203, 154, 10, 3, 203, 126, 10, - 3, 203, 108, 10, 3, 203, 109, 228, 128, 10, 3, 203, 109, 138, 203, 109, - 231, 195, 138, 231, 195, 231, 164, 138, 231, 163, 10, 3, 203, 109, 138, - 203, 109, 199, 232, 138, 199, 232, 231, 164, 138, 231, 163, 10, 3, 203, - 101, 10, 3, 203, 96, 10, 3, 203, 92, 10, 3, 203, 91, 10, 3, 203, 88, 10, - 3, 203, 74, 10, 3, 203, 75, 25, 65, 10, 3, 203, 75, 25, 223, 152, 10, 3, - 203, 68, 10, 3, 203, 69, 25, 65, 10, 3, 203, 69, 25, 249, 65, 10, 3, 203, - 69, 25, 247, 194, 10, 3, 203, 69, 25, 236, 198, 10, 3, 203, 69, 25, 231, - 163, 10, 3, 203, 69, 25, 223, 172, 10, 3, 203, 69, 25, 223, 173, 230, - 122, 10, 3, 203, 69, 25, 220, 166, 10, 3, 203, 69, 25, 218, 188, 10, 3, - 203, 69, 25, 215, 124, 10, 3, 203, 69, 25, 205, 164, 10, 3, 203, 62, 10, - 3, 203, 57, 10, 3, 203, 58, 199, 79, 10, 3, 203, 58, 138, 203, 58, 247, - 183, 138, 247, 182, 10, 3, 203, 53, 10, 3, 203, 0, 10, 3, 203, 1, 138, - 223, 65, 203, 0, 10, 3, 202, 254, 10, 3, 202, 252, 10, 3, 202, 217, 10, - 3, 202, 218, 230, 122, 10, 3, 202, 196, 10, 3, 202, 194, 10, 3, 202, 195, - 138, 202, 195, 202, 254, 10, 3, 202, 186, 10, 3, 202, 184, 10, 3, 200, - 255, 10, 3, 201, 0, 138, 200, 255, 10, 3, 200, 211, 10, 3, 200, 210, 10, - 3, 200, 208, 10, 3, 200, 199, 10, 3, 200, 198, 10, 3, 200, 170, 10, 3, - 200, 169, 10, 3, 199, 247, 10, 3, 199, 248, 250, 143, 10, 3, 199, 248, - 25, 229, 126, 10, 3, 199, 248, 25, 216, 81, 10, 3, 199, 248, 230, 122, - 10, 3, 199, 231, 10, 3, 199, 232, 138, 199, 232, 213, 206, 138, 213, 206, - 236, 178, 138, 236, 177, 10, 3, 199, 232, 201, 184, 10, 3, 199, 218, 10, - 3, 199, 219, 25, 248, 140, 10, 3, 199, 219, 25, 230, 135, 10, 3, 199, - 219, 25, 203, 108, 10, 3, 199, 219, 25, 203, 0, 10, 3, 199, 219, 25, 197, - 78, 10, 3, 199, 219, 25, 196, 154, 10, 3, 199, 204, 10, 3, 199, 174, 10, - 3, 199, 140, 10, 3, 199, 141, 230, 122, 10, 3, 198, 188, 10, 3, 198, 189, - 199, 79, 10, 3, 198, 149, 10, 3, 198, 126, 10, 3, 198, 127, 25, 199, 204, - 10, 3, 198, 127, 138, 198, 126, 10, 3, 198, 127, 138, 198, 127, 231, 195, - 138, 231, 195, 231, 164, 138, 231, 163, 10, 3, 197, 90, 10, 3, 197, 78, - 10, 3, 197, 76, 10, 3, 197, 72, 10, 3, 197, 60, 10, 3, 197, 61, 138, 197, - 61, 191, 124, 138, 191, 123, 10, 3, 69, 10, 3, 126, 230, 135, 10, 3, 126, - 126, 69, 10, 3, 126, 138, 126, 210, 211, 138, 210, 211, 231, 164, 138, - 231, 163, 10, 3, 126, 138, 126, 200, 171, 138, 200, 170, 10, 3, 126, 138, - 126, 126, 207, 13, 138, 126, 207, 12, 10, 3, 196, 165, 10, 3, 196, 160, - 10, 3, 196, 154, 10, 3, 196, 155, 220, 166, 10, 3, 196, 155, 25, 249, 85, - 10, 3, 196, 155, 25, 216, 81, 10, 3, 196, 155, 25, 126, 107, 126, 107, - 69, 10, 3, 196, 155, 25, 126, 107, 126, 107, 126, 230, 122, 10, 3, 196, - 155, 230, 122, 10, 3, 196, 155, 203, 89, 10, 3, 196, 155, 203, 90, 25, - 249, 85, 10, 3, 196, 149, 10, 3, 196, 116, 10, 3, 196, 117, 25, 220, 80, - 10, 3, 196, 117, 25, 216, 214, 107, 237, 241, 10, 3, 196, 117, 25, 203, - 158, 10, 3, 196, 117, 25, 69, 10, 3, 196, 115, 10, 3, 196, 111, 10, 3, - 196, 112, 25, 222, 28, 10, 3, 196, 112, 25, 168, 10, 3, 196, 109, 10, 3, - 196, 110, 230, 122, 10, 3, 196, 58, 10, 3, 196, 59, 238, 163, 196, 58, - 10, 3, 196, 59, 203, 89, 10, 3, 196, 56, 10, 3, 196, 57, 25, 41, 107, - 144, 10, 3, 196, 57, 25, 41, 107, 180, 10, 3, 196, 57, 25, 251, 156, 10, - 3, 196, 57, 25, 144, 10, 3, 196, 57, 25, 212, 117, 10, 3, 196, 57, 25, - 196, 165, 10, 3, 196, 57, 25, 196, 166, 107, 250, 159, 10, 3, 196, 57, - 25, 196, 166, 107, 248, 140, 10, 3, 196, 55, 10, 3, 196, 52, 10, 3, 196, - 51, 10, 3, 196, 47, 10, 3, 196, 48, 25, 65, 10, 3, 196, 48, 25, 250, 153, - 10, 3, 196, 48, 25, 164, 10, 3, 196, 48, 25, 235, 31, 10, 3, 196, 48, 25, - 231, 203, 10, 3, 196, 48, 25, 231, 185, 10, 3, 196, 48, 25, 231, 172, - 199, 79, 10, 3, 196, 48, 25, 231, 163, 10, 3, 196, 48, 25, 230, 146, 10, - 3, 196, 48, 25, 144, 10, 3, 196, 48, 25, 223, 172, 10, 3, 196, 48, 25, - 223, 152, 10, 3, 196, 48, 25, 223, 34, 10, 3, 196, 48, 25, 221, 142, 10, - 3, 196, 48, 25, 218, 186, 10, 3, 196, 48, 25, 216, 26, 10, 3, 196, 48, - 25, 168, 10, 3, 196, 48, 25, 203, 108, 10, 3, 196, 48, 25, 202, 194, 10, - 3, 196, 48, 25, 197, 90, 10, 3, 196, 48, 25, 126, 107, 230, 135, 10, 3, - 196, 48, 25, 196, 154, 10, 3, 196, 48, 25, 196, 45, 10, 3, 196, 45, 10, - 3, 196, 46, 25, 69, 10, 3, 196, 34, 10, 3, 196, 35, 25, 65, 10, 3, 196, - 35, 25, 220, 208, 10, 3, 196, 35, 25, 220, 173, 10, 3, 196, 35, 25, 199, - 204, 10, 3, 196, 30, 10, 3, 196, 33, 10, 3, 196, 31, 10, 3, 196, 27, 10, - 3, 196, 12, 10, 3, 196, 13, 25, 222, 28, 10, 3, 196, 10, 10, 3, 191, 123, - 10, 3, 191, 124, 199, 79, 10, 3, 191, 124, 112, 25, 220, 173, 10, 3, 191, - 118, 10, 3, 191, 107, 10, 3, 191, 86, 10, 3, 191, 30, 10, 3, 191, 31, - 138, 191, 30, 10, 3, 191, 29, 10, 3, 191, 27, 10, 3, 191, 28, 222, 89, - 199, 79, 10, 3, 191, 22, 10, 3, 191, 13, 10, 3, 190, 251, 10, 3, 190, - 249, 10, 3, 190, 250, 25, 65, 10, 3, 190, 248, 10, 3, 190, 247, 10, 3, - 222, 53, 234, 94, 10, 3, 252, 104, 25, 212, 117, 10, 3, 252, 21, 25, 65, - 10, 3, 251, 95, 25, 220, 189, 10, 3, 237, 232, 221, 101, 25, 196, 166, - 107, 217, 20, 10, 3, 237, 230, 10, 3, 236, 178, 107, 203, 0, 10, 3, 235, - 44, 25, 203, 108, 10, 3, 233, 140, 25, 230, 135, 10, 3, 233, 140, 25, - 203, 108, 10, 3, 231, 202, 25, 251, 82, 107, 222, 70, 107, 65, 10, 3, - 231, 202, 25, 250, 157, 10, 3, 231, 127, 10, 3, 231, 5, 10, 3, 228, 100, - 10, 3, 222, 115, 25, 251, 40, 10, 3, 222, 115, 25, 250, 156, 10, 3, 222, - 115, 25, 230, 243, 10, 3, 222, 115, 25, 230, 135, 10, 3, 222, 115, 25, - 229, 127, 25, 250, 157, 10, 3, 222, 115, 25, 218, 186, 10, 3, 222, 115, - 25, 168, 10, 3, 222, 115, 25, 202, 248, 10, 3, 222, 115, 25, 197, 90, 10, - 3, 222, 115, 25, 196, 56, 10, 3, 220, 81, 25, 231, 16, 10, 3, 218, 202, - 203, 90, 25, 249, 85, 10, 3, 218, 202, 25, 233, 224, 107, 220, 13, 10, 3, - 218, 202, 25, 203, 0, 10, 3, 216, 153, 10, 3, 215, 86, 25, 191, 123, 10, - 3, 214, 238, 10, 3, 213, 165, 10, 3, 213, 164, 10, 3, 213, 163, 25, 249, - 65, 10, 3, 213, 163, 25, 231, 16, 10, 3, 212, 135, 206, 117, 213, 157, - 237, 79, 10, 3, 209, 235, 250, 143, 10, 3, 209, 117, 10, 3, 205, 181, 25, - 223, 173, 230, 122, 10, 3, 198, 180, 10, 3, 196, 117, 25, 216, 213, 10, - 3, 126, 69, 10, 167, 3, 103, 250, 159, 10, 167, 3, 115, 250, 159, 10, - 167, 3, 232, 90, 250, 159, 10, 167, 3, 232, 185, 250, 159, 10, 167, 3, - 202, 131, 250, 159, 10, 167, 3, 203, 242, 250, 159, 10, 167, 3, 234, 121, - 250, 159, 10, 167, 3, 213, 161, 250, 159, 10, 167, 3, 115, 236, 177, 10, - 167, 3, 232, 90, 236, 177, 10, 167, 3, 232, 185, 236, 177, 10, 167, 3, - 202, 131, 236, 177, 10, 167, 3, 203, 242, 236, 177, 10, 167, 3, 234, 121, - 236, 177, 10, 167, 3, 213, 161, 236, 177, 10, 167, 3, 232, 90, 69, 10, - 167, 3, 232, 185, 69, 10, 167, 3, 202, 131, 69, 10, 167, 3, 203, 242, 69, - 10, 167, 3, 234, 121, 69, 10, 167, 3, 213, 161, 69, 10, 167, 3, 91, 231, - 99, 10, 167, 3, 103, 231, 99, 10, 167, 3, 115, 231, 99, 10, 167, 3, 232, - 90, 231, 99, 10, 167, 3, 232, 185, 231, 99, 10, 167, 3, 202, 131, 231, - 99, 10, 167, 3, 203, 242, 231, 99, 10, 167, 3, 234, 121, 231, 99, 10, - 167, 3, 213, 161, 231, 99, 10, 167, 3, 91, 231, 96, 10, 167, 3, 103, 231, - 96, 10, 167, 3, 115, 231, 96, 10, 167, 3, 232, 90, 231, 96, 10, 167, 3, - 232, 185, 231, 96, 10, 167, 3, 103, 203, 126, 10, 167, 3, 115, 203, 126, - 10, 167, 3, 115, 203, 127, 195, 165, 20, 10, 167, 3, 232, 90, 203, 126, - 10, 167, 3, 232, 185, 203, 126, 10, 167, 3, 202, 131, 203, 126, 10, 167, - 3, 203, 242, 203, 126, 10, 167, 3, 234, 121, 203, 126, 10, 167, 3, 213, - 161, 203, 126, 10, 167, 3, 91, 203, 119, 10, 167, 3, 103, 203, 119, 10, - 167, 3, 115, 203, 119, 10, 167, 3, 115, 203, 120, 195, 165, 20, 10, 167, - 3, 232, 90, 203, 119, 10, 167, 3, 232, 185, 203, 119, 10, 167, 3, 203, - 127, 25, 231, 186, 107, 236, 177, 10, 167, 3, 203, 127, 25, 231, 186, - 107, 216, 26, 10, 167, 3, 91, 247, 178, 10, 167, 3, 103, 247, 178, 10, - 167, 3, 115, 247, 178, 10, 167, 3, 115, 247, 179, 195, 165, 20, 10, 167, - 3, 232, 90, 247, 178, 10, 167, 3, 232, 185, 247, 178, 10, 167, 3, 115, - 195, 165, 232, 107, 233, 225, 10, 167, 3, 115, 195, 165, 232, 107, 233, - 222, 10, 167, 3, 232, 90, 195, 165, 232, 107, 219, 92, 10, 167, 3, 232, - 90, 195, 165, 232, 107, 219, 90, 10, 167, 3, 232, 90, 195, 165, 232, 107, - 219, 93, 65, 10, 167, 3, 232, 90, 195, 165, 232, 107, 219, 93, 250, 70, - 10, 167, 3, 202, 131, 195, 165, 232, 107, 250, 155, 10, 167, 3, 203, 242, - 195, 165, 232, 107, 223, 143, 10, 167, 3, 203, 242, 195, 165, 232, 107, - 223, 145, 65, 10, 167, 3, 203, 242, 195, 165, 232, 107, 223, 145, 250, - 70, 10, 167, 3, 234, 121, 195, 165, 232, 107, 196, 29, 10, 167, 3, 234, - 121, 195, 165, 232, 107, 196, 28, 10, 167, 3, 213, 161, 195, 165, 232, - 107, 223, 160, 10, 167, 3, 213, 161, 195, 165, 232, 107, 223, 159, 10, - 167, 3, 213, 161, 195, 165, 232, 107, 223, 158, 10, 167, 3, 213, 161, - 195, 165, 232, 107, 223, 161, 65, 10, 167, 3, 103, 250, 160, 199, 79, 10, - 167, 3, 115, 250, 160, 199, 79, 10, 167, 3, 232, 90, 250, 160, 199, 79, - 10, 167, 3, 232, 185, 250, 160, 199, 79, 10, 167, 3, 202, 131, 250, 160, - 199, 79, 10, 167, 3, 91, 249, 49, 10, 167, 3, 103, 249, 49, 10, 167, 3, - 115, 249, 49, 10, 167, 3, 232, 90, 249, 49, 10, 167, 3, 232, 90, 249, 50, - 195, 165, 20, 10, 167, 3, 232, 185, 249, 49, 10, 167, 3, 232, 185, 249, - 50, 195, 165, 20, 10, 167, 3, 213, 174, 10, 167, 3, 213, 175, 10, 167, 3, - 91, 233, 221, 10, 167, 3, 103, 233, 221, 10, 167, 3, 91, 198, 252, 236, - 177, 10, 167, 3, 103, 198, 249, 236, 177, 10, 167, 3, 232, 185, 202, 118, - 236, 177, 10, 167, 3, 91, 198, 252, 195, 165, 232, 107, 65, 10, 167, 3, - 103, 198, 249, 195, 165, 232, 107, 65, 10, 167, 3, 91, 234, 117, 250, - 159, 10, 167, 3, 91, 208, 18, 250, 159, 10, 167, 3, 38, 250, 146, 91, - 202, 119, 10, 167, 3, 38, 250, 146, 91, 208, 17, 10, 167, 3, 91, 208, 18, - 230, 116, 10, 167, 3, 91, 134, 230, 116, 10, 167, 3, 234, 95, 91, 198, - 251, 10, 167, 3, 234, 95, 103, 198, 248, 10, 167, 3, 234, 95, 232, 97, - 10, 167, 3, 234, 95, 232, 230, 10, 167, 3, 232, 90, 126, 195, 165, 20, - 10, 167, 3, 232, 185, 126, 195, 165, 20, 10, 167, 3, 202, 131, 126, 195, - 165, 20, 10, 167, 3, 203, 242, 126, 195, 165, 20, 10, 167, 3, 234, 121, - 126, 195, 165, 20, 10, 167, 3, 213, 161, 126, 195, 165, 20, 10, 208, 145, - 3, 38, 250, 146, 193, 23, 236, 160, 10, 208, 145, 3, 81, 242, 35, 10, - 208, 145, 3, 236, 250, 242, 35, 10, 208, 145, 3, 236, 250, 197, 233, 10, - 208, 145, 3, 236, 250, 208, 23, 10, 3, 252, 104, 25, 212, 118, 199, 79, - 10, 3, 252, 104, 25, 202, 254, 10, 3, 251, 247, 25, 233, 223, 10, 3, 249, - 86, 25, 236, 178, 199, 79, 10, 3, 249, 72, 25, 252, 20, 10, 3, 249, 72, - 25, 213, 205, 10, 3, 249, 72, 25, 191, 123, 10, 3, 247, 219, 138, 247, - 219, 25, 214, 239, 10, 3, 237, 242, 25, 199, 204, 10, 3, 237, 232, 25, - 220, 173, 10, 3, 236, 211, 25, 223, 172, 10, 3, 236, 211, 25, 126, 126, - 69, 10, 3, 236, 209, 25, 196, 154, 10, 3, 235, 39, 25, 251, 40, 10, 3, - 235, 39, 25, 250, 159, 10, 3, 235, 39, 25, 250, 160, 250, 133, 219, 200, - 10, 3, 235, 39, 25, 236, 198, 10, 3, 235, 39, 25, 235, 31, 10, 3, 235, - 39, 25, 233, 242, 10, 3, 235, 39, 25, 231, 203, 10, 3, 235, 39, 25, 231, - 16, 10, 3, 235, 39, 25, 230, 253, 230, 122, 10, 3, 235, 39, 25, 230, 243, - 10, 3, 235, 39, 25, 144, 10, 3, 235, 39, 25, 229, 126, 10, 3, 235, 39, - 25, 223, 173, 230, 122, 10, 3, 235, 39, 25, 222, 28, 10, 3, 235, 39, 25, - 220, 173, 10, 3, 235, 39, 25, 220, 166, 10, 3, 235, 39, 25, 220, 167, - 107, 222, 28, 10, 3, 235, 39, 25, 220, 68, 10, 3, 235, 39, 25, 220, 11, - 10, 3, 235, 39, 25, 220, 12, 25, 220, 173, 10, 3, 235, 39, 25, 218, 192, - 107, 230, 243, 10, 3, 235, 39, 25, 217, 20, 10, 3, 235, 39, 25, 216, 154, - 10, 3, 235, 39, 25, 216, 81, 10, 3, 235, 39, 25, 213, 205, 10, 3, 235, - 39, 25, 209, 176, 10, 3, 235, 39, 25, 203, 108, 10, 3, 235, 39, 25, 202, - 218, 230, 122, 10, 3, 234, 175, 25, 220, 173, 10, 3, 234, 175, 25, 210, - 127, 10, 3, 233, 243, 192, 235, 10, 3, 233, 224, 238, 163, 233, 223, 10, - 3, 233, 140, 203, 90, 25, 250, 159, 10, 3, 233, 140, 203, 90, 25, 229, - 126, 10, 3, 233, 140, 203, 90, 25, 223, 173, 230, 122, 10, 3, 233, 140, - 203, 90, 25, 171, 10, 3, 233, 140, 203, 90, 25, 220, 13, 10, 3, 233, 140, - 203, 90, 25, 216, 213, 10, 3, 233, 140, 203, 90, 25, 216, 154, 10, 3, - 233, 140, 203, 90, 25, 200, 255, 10, 3, 233, 140, 25, 200, 255, 10, 3, - 231, 202, 25, 249, 71, 10, 3, 231, 202, 25, 236, 211, 230, 122, 10, 3, - 231, 202, 25, 235, 39, 25, 223, 173, 230, 122, 10, 3, 231, 202, 25, 235, - 39, 25, 222, 28, 10, 3, 231, 202, 25, 233, 245, 10, 3, 231, 202, 25, 231, - 203, 10, 3, 231, 202, 25, 231, 164, 107, 236, 255, 10, 3, 231, 202, 25, - 231, 164, 107, 214, 107, 10, 3, 231, 202, 25, 230, 72, 107, 65, 10, 3, - 231, 202, 25, 220, 167, 107, 222, 28, 10, 3, 231, 202, 25, 220, 11, 10, - 3, 231, 202, 25, 220, 12, 25, 220, 173, 10, 3, 231, 202, 25, 218, 191, - 10, 3, 231, 202, 25, 215, 87, 10, 3, 231, 202, 25, 214, 107, 10, 3, 231, - 202, 25, 214, 108, 107, 234, 174, 10, 3, 231, 202, 25, 214, 108, 107, - 231, 16, 10, 3, 231, 202, 25, 203, 68, 10, 3, 231, 202, 25, 191, 13, 10, - 3, 231, 197, 206, 117, 213, 157, 237, 79, 10, 3, 231, 98, 25, 69, 10, 3, - 230, 244, 25, 230, 244, 238, 163, 230, 243, 10, 3, 230, 145, 25, 223, - 173, 230, 122, 10, 3, 230, 136, 107, 230, 244, 25, 199, 204, 10, 3, 230, - 72, 199, 80, 230, 122, 10, 3, 229, 127, 25, 250, 160, 138, 229, 127, 25, - 250, 159, 10, 3, 222, 115, 25, 247, 218, 10, 3, 222, 115, 25, 157, 10, 3, - 222, 115, 25, 126, 126, 69, 10, 3, 222, 115, 25, 196, 58, 10, 3, 220, 81, - 25, 190, 252, 138, 190, 251, 10, 3, 220, 69, 10, 3, 220, 67, 10, 3, 220, - 66, 10, 3, 220, 65, 10, 3, 220, 64, 10, 3, 220, 63, 10, 3, 220, 62, 10, - 3, 220, 61, 138, 220, 61, 230, 122, 10, 3, 220, 60, 10, 3, 220, 59, 138, + 0, 201, 247, 233, 216, 77, 207, 252, 77, 31, 56, 236, 155, 56, 210, 13, + 56, 251, 137, 251, 49, 45, 210, 113, 50, 210, 113, 250, 193, 108, 56, + 242, 74, 228, 87, 232, 80, 201, 63, 202, 23, 17, 191, 77, 17, 107, 17, + 109, 17, 138, 17, 134, 17, 149, 17, 169, 17, 175, 17, 171, 17, 178, 242, + 83, 204, 25, 219, 180, 56, 234, 43, 56, 230, 204, 56, 208, 13, 77, 242, + 72, 250, 182, 8, 6, 1, 65, 8, 6, 1, 250, 120, 8, 6, 1, 247, 193, 8, 6, 1, + 238, 127, 8, 6, 1, 71, 8, 6, 1, 233, 175, 8, 6, 1, 232, 51, 8, 6, 1, 230, + 116, 8, 6, 1, 68, 8, 6, 1, 223, 35, 8, 6, 1, 222, 152, 8, 6, 1, 172, 8, + 6, 1, 218, 168, 8, 6, 1, 215, 61, 8, 6, 1, 74, 8, 6, 1, 210, 236, 8, 6, + 1, 208, 104, 8, 6, 1, 146, 8, 6, 1, 206, 8, 8, 6, 1, 200, 43, 8, 6, 1, + 66, 8, 6, 1, 196, 12, 8, 6, 1, 193, 224, 8, 6, 1, 192, 235, 8, 6, 1, 192, + 159, 8, 6, 1, 191, 166, 45, 51, 248, 53, 207, 19, 202, 23, 50, 51, 248, + 53, 243, 2, 252, 60, 130, 219, 112, 230, 211, 252, 60, 8, 2, 1, 65, 8, 2, + 1, 250, 120, 8, 2, 1, 247, 193, 8, 2, 1, 238, 127, 8, 2, 1, 71, 8, 2, 1, + 233, 175, 8, 2, 1, 232, 51, 8, 2, 1, 230, 116, 8, 2, 1, 68, 8, 2, 1, 223, + 35, 8, 2, 1, 222, 152, 8, 2, 1, 172, 8, 2, 1, 218, 168, 8, 2, 1, 215, 61, + 8, 2, 1, 74, 8, 2, 1, 210, 236, 8, 2, 1, 208, 104, 8, 2, 1, 146, 8, 2, 1, + 206, 8, 8, 2, 1, 200, 43, 8, 2, 1, 66, 8, 2, 1, 196, 12, 8, 2, 1, 193, + 224, 8, 2, 1, 192, 235, 8, 2, 1, 192, 159, 8, 2, 1, 191, 166, 45, 238, + 171, 248, 53, 81, 219, 112, 50, 238, 171, 248, 53, 198, 152, 213, 37, + 201, 247, 223, 93, 233, 216, 77, 247, 24, 56, 209, 8, 56, 238, 170, 56, + 192, 71, 56, 248, 22, 164, 205, 54, 56, 237, 42, 239, 6, 56, 233, 40, + 211, 50, 223, 144, 219, 219, 55, 251, 116, 207, 252, 77, 213, 12, 56, + 202, 32, 228, 88, 207, 78, 56, 217, 146, 237, 125, 56, 209, 80, 56, 200, + 182, 109, 200, 182, 138, 252, 47, 252, 60, 216, 91, 56, 209, 142, 56, 82, + 236, 140, 247, 35, 200, 182, 107, 217, 40, 211, 50, 223, 144, 206, 203, + 55, 251, 116, 207, 252, 77, 193, 246, 232, 118, 91, 208, 22, 193, 246, + 232, 118, 91, 230, 70, 193, 246, 232, 118, 115, 208, 20, 223, 93, 208, + 13, 77, 8, 6, 1, 42, 4, 230, 210, 8, 6, 1, 42, 4, 252, 46, 8, 6, 1, 42, + 4, 243, 1, 8, 6, 1, 42, 4, 198, 152, 8, 6, 1, 42, 4, 237, 42, 8, 6, 1, + 42, 4, 206, 189, 58, 8, 6, 1, 252, 25, 8, 6, 1, 247, 194, 4, 247, 35, 8, + 6, 1, 235, 15, 4, 230, 210, 8, 6, 1, 235, 15, 4, 252, 46, 8, 6, 1, 235, + 15, 4, 243, 1, 8, 6, 1, 235, 15, 4, 237, 42, 8, 6, 1, 228, 74, 4, 230, + 210, 8, 6, 1, 228, 74, 4, 252, 46, 8, 6, 1, 228, 74, 4, 243, 1, 8, 6, 1, + 228, 74, 4, 237, 42, 8, 6, 1, 233, 248, 8, 6, 1, 215, 62, 4, 198, 152, 8, + 6, 1, 187, 4, 230, 210, 8, 6, 1, 187, 4, 252, 46, 8, 6, 1, 187, 4, 243, + 1, 8, 6, 1, 187, 4, 198, 152, 8, 6, 1, 187, 4, 237, 42, 215, 127, 56, 8, + 6, 1, 187, 4, 106, 8, 6, 1, 126, 4, 230, 210, 8, 6, 1, 126, 4, 252, 46, + 8, 6, 1, 126, 4, 243, 1, 8, 6, 1, 126, 4, 237, 42, 8, 6, 1, 192, 160, 4, + 252, 46, 8, 6, 1, 198, 233, 8, 2, 1, 203, 127, 206, 8, 8, 2, 1, 42, 4, + 230, 210, 8, 2, 1, 42, 4, 252, 46, 8, 2, 1, 42, 4, 243, 1, 8, 2, 1, 42, + 4, 198, 152, 8, 2, 1, 42, 4, 237, 42, 8, 2, 1, 42, 4, 206, 189, 58, 8, 2, + 1, 252, 25, 8, 2, 1, 247, 194, 4, 247, 35, 8, 2, 1, 235, 15, 4, 230, 210, + 8, 2, 1, 235, 15, 4, 252, 46, 8, 2, 1, 235, 15, 4, 243, 1, 8, 2, 1, 235, + 15, 4, 237, 42, 8, 2, 1, 228, 74, 4, 230, 210, 8, 2, 1, 228, 74, 4, 252, + 46, 8, 2, 1, 228, 74, 4, 243, 1, 8, 2, 1, 228, 74, 4, 237, 42, 8, 2, 1, + 233, 248, 8, 2, 1, 215, 62, 4, 198, 152, 8, 2, 1, 187, 4, 230, 210, 8, 2, + 1, 187, 4, 252, 46, 8, 2, 1, 187, 4, 243, 1, 8, 2, 1, 187, 4, 198, 152, + 8, 2, 1, 187, 4, 237, 42, 236, 200, 56, 8, 2, 1, 187, 4, 106, 8, 2, 1, + 126, 4, 230, 210, 8, 2, 1, 126, 4, 252, 46, 8, 2, 1, 126, 4, 243, 1, 8, + 2, 1, 126, 4, 237, 42, 8, 2, 1, 192, 160, 4, 252, 46, 8, 2, 1, 198, 233, + 8, 2, 1, 192, 160, 4, 237, 42, 8, 6, 1, 42, 4, 217, 146, 8, 2, 1, 42, 4, + 217, 146, 8, 6, 1, 42, 4, 248, 36, 8, 2, 1, 42, 4, 248, 36, 8, 6, 1, 42, + 4, 211, 138, 8, 2, 1, 42, 4, 211, 138, 8, 6, 1, 247, 194, 4, 252, 46, 8, + 2, 1, 247, 194, 4, 252, 46, 8, 6, 1, 247, 194, 4, 243, 1, 8, 2, 1, 247, + 194, 4, 243, 1, 8, 6, 1, 247, 194, 4, 75, 58, 8, 2, 1, 247, 194, 4, 75, + 58, 8, 6, 1, 247, 194, 4, 247, 92, 8, 2, 1, 247, 194, 4, 247, 92, 8, 6, + 1, 238, 128, 4, 247, 92, 8, 2, 1, 238, 128, 4, 247, 92, 8, 6, 1, 238, + 128, 4, 106, 8, 2, 1, 238, 128, 4, 106, 8, 6, 1, 235, 15, 4, 217, 146, 8, + 2, 1, 235, 15, 4, 217, 146, 8, 6, 1, 235, 15, 4, 248, 36, 8, 2, 1, 235, + 15, 4, 248, 36, 8, 6, 1, 235, 15, 4, 75, 58, 8, 2, 1, 235, 15, 4, 75, 58, + 8, 6, 1, 235, 15, 4, 211, 138, 8, 2, 1, 235, 15, 4, 211, 138, 8, 6, 1, + 235, 15, 4, 247, 92, 8, 2, 1, 235, 15, 4, 247, 92, 8, 6, 1, 232, 52, 4, + 243, 1, 8, 2, 1, 232, 52, 4, 243, 1, 8, 6, 1, 232, 52, 4, 248, 36, 8, 2, + 1, 232, 52, 4, 248, 36, 8, 6, 1, 232, 52, 4, 75, 58, 8, 2, 1, 232, 52, 4, + 75, 58, 8, 6, 1, 232, 52, 4, 247, 35, 8, 2, 1, 232, 52, 4, 247, 35, 8, 6, + 1, 230, 117, 4, 243, 1, 8, 2, 1, 230, 117, 4, 243, 1, 8, 6, 1, 230, 117, + 4, 106, 8, 2, 1, 230, 117, 4, 106, 8, 6, 1, 228, 74, 4, 198, 152, 8, 2, + 1, 228, 74, 4, 198, 152, 8, 6, 1, 228, 74, 4, 217, 146, 8, 2, 1, 228, 74, + 4, 217, 146, 8, 6, 1, 228, 74, 4, 248, 36, 8, 2, 1, 228, 74, 4, 248, 36, + 8, 6, 1, 228, 74, 4, 211, 138, 8, 2, 1, 228, 74, 4, 211, 138, 8, 6, 1, + 228, 74, 4, 75, 58, 8, 2, 1, 236, 139, 68, 8, 6, 34, 223, 197, 8, 2, 34, + 223, 197, 8, 6, 1, 223, 36, 4, 243, 1, 8, 2, 1, 223, 36, 4, 243, 1, 8, 6, + 1, 222, 153, 4, 247, 35, 8, 2, 1, 222, 153, 4, 247, 35, 8, 2, 1, 221, 8, + 8, 6, 1, 220, 143, 4, 252, 46, 8, 2, 1, 220, 143, 4, 252, 46, 8, 6, 1, + 220, 143, 4, 247, 35, 8, 2, 1, 220, 143, 4, 247, 35, 8, 6, 1, 220, 143, + 4, 247, 92, 8, 2, 1, 220, 143, 4, 247, 92, 8, 6, 1, 220, 143, 4, 82, 236, + 140, 8, 2, 1, 220, 143, 4, 82, 236, 140, 8, 6, 1, 220, 143, 4, 106, 8, 2, + 1, 220, 143, 4, 106, 8, 6, 1, 215, 62, 4, 252, 46, 8, 2, 1, 215, 62, 4, + 252, 46, 8, 6, 1, 215, 62, 4, 247, 35, 8, 2, 1, 215, 62, 4, 247, 35, 8, + 6, 1, 215, 62, 4, 247, 92, 8, 2, 1, 215, 62, 4, 247, 92, 8, 2, 1, 215, + 62, 208, 233, 247, 205, 251, 49, 8, 6, 1, 234, 88, 8, 2, 1, 234, 88, 8, + 6, 1, 187, 4, 217, 146, 8, 2, 1, 187, 4, 217, 146, 8, 6, 1, 187, 4, 248, + 36, 8, 2, 1, 187, 4, 248, 36, 8, 6, 1, 187, 4, 55, 252, 46, 8, 2, 1, 187, + 4, 55, 252, 46, 8, 6, 34, 211, 151, 8, 2, 34, 211, 151, 8, 6, 1, 207, + 222, 4, 252, 46, 8, 2, 1, 207, 222, 4, 252, 46, 8, 6, 1, 207, 222, 4, + 247, 35, 8, 2, 1, 207, 222, 4, 247, 35, 8, 6, 1, 207, 222, 4, 247, 92, 8, + 2, 1, 207, 222, 4, 247, 92, 8, 6, 1, 206, 9, 4, 252, 46, 8, 2, 1, 206, 9, + 4, 252, 46, 8, 6, 1, 206, 9, 4, 243, 1, 8, 2, 1, 206, 9, 4, 243, 1, 8, 6, + 1, 206, 9, 4, 247, 35, 8, 2, 1, 206, 9, 4, 247, 35, 8, 6, 1, 206, 9, 4, + 247, 92, 8, 2, 1, 206, 9, 4, 247, 92, 8, 6, 1, 200, 44, 4, 247, 35, 8, 2, + 1, 200, 44, 4, 247, 35, 8, 6, 1, 200, 44, 4, 247, 92, 8, 2, 1, 200, 44, + 4, 247, 92, 8, 6, 1, 200, 44, 4, 106, 8, 2, 1, 200, 44, 4, 106, 8, 6, 1, + 126, 4, 198, 152, 8, 2, 1, 126, 4, 198, 152, 8, 6, 1, 126, 4, 217, 146, + 8, 2, 1, 126, 4, 217, 146, 8, 6, 1, 126, 4, 248, 36, 8, 2, 1, 126, 4, + 248, 36, 8, 6, 1, 126, 4, 206, 189, 58, 8, 2, 1, 126, 4, 206, 189, 58, 8, + 6, 1, 126, 4, 55, 252, 46, 8, 2, 1, 126, 4, 55, 252, 46, 8, 6, 1, 126, 4, + 211, 138, 8, 2, 1, 126, 4, 211, 138, 8, 6, 1, 193, 225, 4, 243, 1, 8, 2, + 1, 193, 225, 4, 243, 1, 8, 6, 1, 192, 160, 4, 243, 1, 8, 2, 1, 192, 160, + 4, 243, 1, 8, 6, 1, 192, 160, 4, 237, 42, 8, 6, 1, 191, 167, 4, 252, 46, + 8, 2, 1, 191, 167, 4, 252, 46, 8, 6, 1, 191, 167, 4, 75, 58, 8, 2, 1, + 191, 167, 4, 75, 58, 8, 6, 1, 191, 167, 4, 247, 92, 8, 2, 1, 191, 167, 4, + 247, 92, 8, 2, 1, 179, 206, 8, 8, 2, 1, 78, 4, 106, 8, 6, 1, 78, 4, 102, + 8, 6, 1, 78, 4, 198, 51, 8, 2, 1, 78, 4, 198, 51, 8, 6, 1, 163, 169, 8, + 2, 1, 163, 169, 8, 6, 1, 211, 77, 74, 8, 6, 1, 247, 194, 4, 102, 8, 2, 1, + 247, 194, 4, 102, 8, 6, 1, 252, 0, 238, 127, 8, 6, 1, 238, 128, 4, 102, + 8, 6, 1, 238, 128, 4, 198, 51, 8, 2, 1, 238, 128, 4, 198, 51, 8, 2, 1, + 153, 237, 106, 8, 6, 1, 207, 18, 71, 8, 6, 1, 205, 86, 8, 6, 1, 211, 77, + 71, 8, 6, 1, 233, 176, 4, 102, 8, 2, 1, 233, 176, 4, 102, 8, 6, 1, 232, + 52, 4, 102, 8, 6, 1, 231, 211, 8, 2, 1, 228, 126, 8, 6, 1, 223, 83, 8, 6, + 1, 228, 74, 4, 106, 8, 6, 1, 222, 153, 4, 102, 8, 2, 1, 222, 153, 4, 102, + 8, 2, 1, 220, 143, 4, 164, 8, 2, 1, 220, 33, 4, 106, 8, 6, 1, 153, 218, + 168, 8, 6, 1, 215, 62, 4, 45, 102, 8, 2, 1, 215, 62, 4, 179, 50, 219, + 212, 8, 6, 1, 187, 4, 82, 198, 152, 8, 6, 1, 187, 4, 228, 187, 8, 2, 1, + 187, 4, 228, 187, 8, 6, 1, 211, 133, 8, 2, 1, 211, 133, 8, 6, 1, 210, + 237, 4, 102, 8, 2, 1, 210, 237, 4, 102, 8, 1, 191, 228, 8, 6, 1, 163, + 109, 8, 2, 1, 163, 109, 8, 6, 1, 234, 12, 8, 1, 207, 18, 234, 13, 219, 4, + 8, 2, 1, 200, 44, 4, 210, 192, 102, 8, 6, 1, 200, 44, 4, 102, 8, 2, 1, + 200, 44, 4, 102, 8, 6, 1, 200, 44, 4, 207, 24, 102, 8, 6, 1, 126, 4, 228, + 187, 8, 2, 1, 126, 4, 228, 187, 8, 6, 1, 196, 70, 8, 6, 1, 196, 13, 4, + 102, 8, 6, 1, 192, 160, 4, 102, 8, 2, 1, 192, 160, 4, 102, 8, 6, 1, 191, + 167, 4, 106, 8, 2, 1, 191, 167, 4, 106, 8, 6, 1, 233, 178, 8, 6, 1, 233, + 179, 207, 17, 8, 2, 1, 233, 179, 207, 17, 8, 2, 1, 233, 179, 4, 199, 215, + 8, 1, 105, 4, 106, 8, 6, 1, 163, 149, 8, 2, 1, 163, 149, 8, 1, 223, 93, + 231, 11, 201, 64, 4, 106, 8, 1, 192, 238, 8, 1, 237, 98, 242, 231, 8, 1, + 220, 3, 242, 231, 8, 1, 251, 150, 242, 231, 8, 1, 207, 24, 242, 231, 8, + 6, 1, 235, 37, 4, 247, 92, 8, 6, 1, 238, 128, 4, 2, 1, 191, 167, 4, 247, + 92, 8, 2, 1, 235, 37, 4, 247, 92, 8, 6, 1, 219, 77, 8, 6, 1, 220, 143, 4, + 2, 1, 223, 35, 8, 2, 1, 219, 77, 8, 6, 1, 213, 158, 8, 6, 1, 215, 62, 4, + 2, 1, 223, 35, 8, 2, 1, 213, 158, 8, 6, 1, 42, 4, 247, 92, 8, 2, 1, 42, + 4, 247, 92, 8, 6, 1, 228, 74, 4, 247, 92, 8, 2, 1, 228, 74, 4, 247, 92, + 8, 6, 1, 187, 4, 247, 92, 8, 2, 1, 187, 4, 247, 92, 8, 6, 1, 126, 4, 247, + 92, 8, 2, 1, 126, 4, 247, 92, 8, 6, 1, 126, 4, 237, 43, 23, 217, 146, 8, + 2, 1, 126, 4, 237, 43, 23, 217, 146, 8, 6, 1, 126, 4, 237, 43, 23, 252, + 46, 8, 2, 1, 126, 4, 237, 43, 23, 252, 46, 8, 6, 1, 126, 4, 237, 43, 23, + 247, 92, 8, 2, 1, 126, 4, 237, 43, 23, 247, 92, 8, 6, 1, 126, 4, 237, 43, + 23, 230, 210, 8, 2, 1, 126, 4, 237, 43, 23, 230, 210, 8, 2, 1, 153, 71, + 8, 6, 1, 42, 4, 237, 43, 23, 217, 146, 8, 2, 1, 42, 4, 237, 43, 23, 217, + 146, 8, 6, 1, 42, 4, 75, 93, 23, 217, 146, 8, 2, 1, 42, 4, 75, 93, 23, + 217, 146, 8, 6, 1, 252, 26, 4, 217, 146, 8, 2, 1, 252, 26, 4, 217, 146, + 8, 6, 1, 232, 52, 4, 106, 8, 2, 1, 232, 52, 4, 106, 8, 6, 1, 232, 52, 4, + 247, 92, 8, 2, 1, 232, 52, 4, 247, 92, 8, 6, 1, 222, 153, 4, 247, 92, 8, + 2, 1, 222, 153, 4, 247, 92, 8, 6, 1, 187, 4, 211, 138, 8, 2, 1, 187, 4, + 211, 138, 8, 6, 1, 187, 4, 211, 139, 23, 217, 146, 8, 2, 1, 187, 4, 211, + 139, 23, 217, 146, 8, 6, 1, 233, 179, 4, 247, 92, 8, 2, 1, 233, 179, 4, + 247, 92, 8, 2, 1, 223, 36, 4, 247, 92, 8, 6, 1, 235, 36, 8, 6, 1, 238, + 128, 4, 2, 1, 191, 166, 8, 2, 1, 235, 36, 8, 6, 1, 232, 52, 4, 252, 46, + 8, 2, 1, 232, 52, 4, 252, 46, 8, 6, 1, 228, 123, 8, 6, 1, 192, 238, 8, 6, + 1, 215, 62, 4, 230, 210, 8, 2, 1, 215, 62, 4, 230, 210, 8, 6, 1, 42, 4, + 206, 189, 93, 23, 252, 46, 8, 2, 1, 42, 4, 206, 189, 93, 23, 252, 46, 8, + 6, 1, 252, 26, 4, 252, 46, 8, 2, 1, 252, 26, 4, 252, 46, 8, 6, 1, 187, 4, + 201, 28, 23, 252, 46, 8, 2, 1, 187, 4, 201, 28, 23, 252, 46, 8, 6, 1, 42, + 4, 55, 230, 210, 8, 2, 1, 42, 4, 55, 230, 210, 8, 6, 1, 42, 4, 223, 93, + 248, 36, 8, 2, 1, 42, 4, 223, 93, 248, 36, 8, 6, 1, 235, 15, 4, 55, 230, + 210, 8, 2, 1, 235, 15, 4, 55, 230, 210, 8, 6, 1, 235, 15, 4, 223, 93, + 248, 36, 8, 2, 1, 235, 15, 4, 223, 93, 248, 36, 8, 6, 1, 228, 74, 4, 55, + 230, 210, 8, 2, 1, 228, 74, 4, 55, 230, 210, 8, 6, 1, 228, 74, 4, 223, + 93, 248, 36, 8, 2, 1, 228, 74, 4, 223, 93, 248, 36, 8, 6, 1, 187, 4, 55, + 230, 210, 8, 2, 1, 187, 4, 55, 230, 210, 8, 6, 1, 187, 4, 223, 93, 248, + 36, 8, 2, 1, 187, 4, 223, 93, 248, 36, 8, 6, 1, 207, 222, 4, 55, 230, + 210, 8, 2, 1, 207, 222, 4, 55, 230, 210, 8, 6, 1, 207, 222, 4, 223, 93, + 248, 36, 8, 2, 1, 207, 222, 4, 223, 93, 248, 36, 8, 6, 1, 126, 4, 55, + 230, 210, 8, 2, 1, 126, 4, 55, 230, 210, 8, 6, 1, 126, 4, 223, 93, 248, + 36, 8, 2, 1, 126, 4, 223, 93, 248, 36, 8, 6, 1, 206, 9, 4, 242, 75, 60, + 8, 2, 1, 206, 9, 4, 242, 75, 60, 8, 6, 1, 200, 44, 4, 242, 75, 60, 8, 2, + 1, 200, 44, 4, 242, 75, 60, 8, 6, 1, 191, 248, 8, 2, 1, 191, 248, 8, 6, + 1, 230, 117, 4, 247, 92, 8, 2, 1, 230, 117, 4, 247, 92, 8, 6, 1, 215, 62, + 4, 179, 50, 219, 212, 8, 2, 1, 238, 128, 4, 238, 175, 8, 6, 1, 211, 19, + 8, 2, 1, 211, 19, 8, 6, 1, 191, 167, 4, 102, 8, 2, 1, 191, 167, 4, 102, + 8, 6, 1, 42, 4, 75, 58, 8, 2, 1, 42, 4, 75, 58, 8, 6, 1, 235, 15, 4, 247, + 35, 8, 2, 1, 235, 15, 4, 247, 35, 8, 6, 1, 187, 4, 237, 43, 23, 217, 146, + 8, 2, 1, 187, 4, 237, 43, 23, 217, 146, 8, 6, 1, 187, 4, 198, 153, 23, + 217, 146, 8, 2, 1, 187, 4, 198, 153, 23, 217, 146, 8, 6, 1, 187, 4, 75, + 58, 8, 2, 1, 187, 4, 75, 58, 8, 6, 1, 187, 4, 75, 93, 23, 217, 146, 8, 2, + 1, 187, 4, 75, 93, 23, 217, 146, 8, 6, 1, 192, 160, 4, 217, 146, 8, 2, 1, + 192, 160, 4, 217, 146, 8, 2, 1, 220, 143, 4, 238, 175, 8, 2, 1, 215, 62, + 4, 238, 175, 8, 2, 1, 200, 44, 4, 238, 175, 8, 2, 1, 236, 139, 223, 35, + 8, 2, 1, 237, 201, 237, 2, 8, 2, 1, 208, 34, 237, 2, 8, 6, 1, 42, 4, 106, + 8, 6, 1, 247, 194, 4, 106, 8, 2, 1, 247, 194, 4, 106, 8, 6, 1, 220, 143, + 4, 164, 8, 6, 1, 200, 44, 4, 237, 39, 106, 8, 2, 1, 206, 9, 4, 200, 146, + 199, 215, 8, 2, 1, 191, 167, 4, 200, 146, 199, 215, 8, 6, 1, 231, 11, + 201, 63, 8, 2, 1, 231, 11, 201, 63, 8, 6, 1, 78, 4, 106, 8, 6, 1, 126, + 164, 8, 6, 1, 153, 196, 12, 8, 6, 1, 235, 15, 4, 106, 8, 2, 1, 235, 15, + 4, 106, 8, 6, 1, 223, 36, 4, 106, 8, 2, 1, 223, 36, 4, 106, 8, 6, 1, 2, + 208, 105, 4, 228, 251, 199, 215, 8, 2, 1, 208, 105, 4, 228, 251, 199, + 215, 8, 6, 1, 207, 222, 4, 106, 8, 2, 1, 207, 222, 4, 106, 8, 6, 1, 192, + 160, 4, 106, 8, 2, 1, 192, 160, 4, 106, 8, 2, 1, 153, 65, 8, 2, 1, 251, + 160, 8, 2, 1, 153, 251, 160, 8, 2, 1, 78, 4, 102, 8, 2, 1, 211, 77, 74, + 8, 2, 1, 247, 194, 4, 238, 175, 8, 2, 1, 238, 128, 4, 199, 215, 8, 2, 1, + 238, 128, 4, 102, 8, 2, 1, 207, 18, 71, 8, 2, 1, 205, 86, 8, 2, 1, 205, + 87, 4, 102, 8, 2, 1, 211, 77, 71, 8, 2, 1, 207, 18, 211, 77, 71, 8, 2, 1, + 207, 18, 211, 77, 235, 15, 4, 102, 8, 2, 1, 242, 219, 207, 18, 211, 77, + 71, 8, 2, 1, 236, 139, 223, 36, 4, 106, 8, 2, 1, 232, 52, 4, 102, 8, 2, + 1, 27, 232, 51, 8, 1, 2, 6, 232, 51, 8, 2, 1, 231, 211, 8, 2, 1, 207, + 140, 228, 187, 8, 2, 1, 153, 230, 116, 8, 2, 1, 230, 117, 4, 102, 8, 2, + 1, 229, 197, 4, 102, 8, 2, 1, 228, 74, 4, 106, 8, 2, 1, 223, 83, 8, 1, 2, + 6, 68, 8, 2, 1, 220, 143, 4, 82, 198, 152, 8, 2, 1, 220, 143, 4, 248, + 231, 8, 2, 1, 220, 143, 4, 207, 24, 102, 8, 2, 1, 219, 162, 8, 2, 1, 153, + 218, 168, 8, 2, 1, 153, 218, 169, 4, 179, 219, 212, 8, 2, 1, 218, 169, 4, + 102, 8, 2, 1, 215, 62, 4, 45, 102, 8, 2, 1, 215, 62, 4, 207, 24, 102, 8, + 1, 2, 6, 215, 61, 8, 2, 1, 249, 82, 74, 8, 1, 2, 6, 211, 151, 8, 2, 1, + 242, 219, 211, 110, 8, 2, 1, 209, 211, 8, 2, 1, 153, 146, 8, 2, 1, 153, + 207, 222, 4, 179, 219, 212, 8, 2, 1, 153, 207, 222, 4, 102, 8, 2, 1, 207, + 222, 4, 179, 219, 212, 8, 2, 1, 207, 222, 4, 199, 215, 8, 2, 1, 207, 222, + 4, 232, 233, 8, 2, 1, 207, 18, 207, 222, 4, 232, 233, 8, 1, 2, 6, 146, 8, + 1, 2, 6, 223, 93, 146, 8, 2, 1, 206, 9, 4, 102, 8, 2, 1, 234, 12, 8, 2, + 1, 236, 139, 223, 36, 4, 201, 28, 23, 102, 8, 2, 1, 201, 187, 207, 18, + 234, 12, 8, 2, 1, 234, 13, 4, 238, 175, 8, 2, 1, 153, 200, 43, 8, 2, 1, + 200, 44, 4, 207, 24, 102, 8, 2, 1, 126, 164, 8, 2, 1, 196, 70, 8, 2, 1, + 196, 13, 4, 102, 8, 2, 1, 153, 196, 12, 8, 2, 1, 153, 193, 224, 8, 2, 1, + 153, 192, 159, 8, 1, 2, 6, 192, 159, 8, 2, 1, 191, 167, 4, 207, 24, 102, + 8, 2, 1, 191, 167, 4, 238, 175, 8, 2, 1, 233, 178, 8, 2, 1, 233, 179, 4, + 238, 175, 8, 1, 231, 11, 201, 63, 8, 1, 209, 219, 195, 20, 232, 104, 8, + 1, 223, 93, 231, 11, 201, 63, 8, 1, 201, 36, 247, 193, 8, 1, 248, 172, + 242, 231, 8, 1, 2, 6, 250, 120, 8, 2, 1, 242, 219, 211, 77, 71, 8, 1, 2, + 6, 232, 52, 4, 102, 8, 1, 2, 6, 230, 116, 8, 2, 1, 223, 36, 4, 238, 212, + 8, 2, 1, 153, 222, 152, 8, 1, 2, 6, 172, 8, 2, 1, 208, 105, 4, 102, 8, 1, + 231, 11, 201, 64, 4, 106, 8, 1, 207, 18, 231, 11, 201, 64, 4, 106, 8, 2, + 1, 235, 37, 237, 2, 8, 2, 1, 237, 70, 237, 2, 8, 2, 1, 235, 37, 237, 3, + 4, 238, 175, 8, 2, 1, 197, 170, 237, 2, 8, 2, 1, 199, 79, 237, 2, 8, 2, + 1, 199, 152, 237, 3, 4, 238, 175, 8, 2, 1, 233, 37, 237, 2, 8, 2, 1, 218, + 227, 237, 2, 8, 2, 1, 218, 170, 237, 2, 8, 1, 248, 172, 210, 12, 8, 1, + 248, 180, 210, 12, 8, 2, 1, 153, 230, 117, 4, 232, 233, 8, 2, 1, 153, + 230, 117, 4, 232, 234, 23, 199, 215, 52, 1, 2, 230, 116, 52, 1, 2, 230, + 117, 4, 102, 52, 1, 2, 223, 35, 52, 1, 2, 146, 52, 1, 2, 153, 146, 52, 1, + 2, 153, 207, 222, 4, 102, 52, 1, 2, 6, 223, 93, 146, 52, 1, 2, 193, 224, + 52, 1, 2, 192, 159, 52, 1, 208, 215, 52, 1, 55, 208, 215, 52, 1, 153, + 242, 74, 52, 1, 251, 49, 52, 1, 207, 18, 242, 74, 52, 1, 50, 132, 206, + 188, 52, 1, 45, 132, 206, 188, 52, 1, 231, 11, 201, 63, 52, 1, 207, 18, + 231, 11, 201, 63, 52, 1, 45, 250, 235, 52, 1, 50, 250, 235, 52, 1, 133, + 250, 235, 52, 1, 144, 250, 235, 52, 1, 243, 2, 252, 60, 247, 92, 52, 1, + 81, 219, 112, 52, 1, 217, 146, 52, 1, 252, 47, 252, 60, 52, 1, 230, 211, + 252, 60, 52, 1, 130, 81, 219, 112, 52, 1, 130, 217, 146, 52, 1, 130, 230, + 211, 252, 60, 52, 1, 130, 252, 47, 252, 60, 52, 1, 197, 238, 242, 83, 52, + 1, 132, 197, 238, 242, 83, 52, 1, 247, 20, 50, 132, 206, 188, 52, 1, 247, + 20, 45, 132, 206, 188, 52, 1, 133, 199, 228, 52, 1, 144, 199, 228, 52, 1, + 108, 56, 52, 1, 216, 35, 56, 248, 36, 75, 58, 206, 189, 58, 211, 138, 2, + 198, 152, 55, 252, 47, 252, 60, 52, 1, 207, 2, 102, 52, 1, 238, 218, 252, + 60, 52, 1, 2, 231, 211, 52, 1, 2, 172, 52, 1, 2, 206, 8, 52, 1, 2, 192, + 235, 52, 1, 2, 207, 18, 231, 11, 201, 63, 52, 1, 233, 200, 163, 164, 52, + 1, 137, 163, 164, 52, 1, 216, 87, 163, 164, 52, 1, 130, 163, 164, 52, 1, + 233, 199, 163, 164, 52, 1, 192, 22, 237, 95, 163, 77, 52, 1, 192, 107, + 237, 95, 163, 77, 52, 1, 195, 18, 52, 1, 196, 109, 52, 1, 55, 251, 49, + 52, 1, 130, 144, 250, 235, 52, 1, 130, 133, 250, 235, 52, 1, 130, 45, + 250, 235, 52, 1, 130, 50, 250, 235, 52, 1, 130, 206, 188, 52, 1, 82, 230, + 211, 252, 60, 52, 1, 82, 55, 230, 211, 252, 60, 52, 1, 82, 55, 252, 47, + 252, 60, 52, 1, 130, 198, 152, 52, 1, 207, 147, 242, 83, 52, 1, 248, 249, + 137, 198, 79, 52, 1, 234, 95, 137, 198, 79, 52, 1, 248, 249, 130, 198, + 79, 52, 1, 234, 95, 130, 198, 79, 52, 1, 203, 104, 52, 1, 211, 77, 203, + 104, 52, 1, 130, 45, 57, 33, 230, 211, 252, 60, 33, 252, 47, 252, 60, 33, + 243, 2, 252, 60, 33, 198, 152, 33, 217, 146, 33, 210, 254, 33, 248, 36, + 33, 75, 58, 33, 237, 42, 33, 228, 251, 58, 33, 206, 189, 58, 33, 55, 252, + 47, 252, 60, 33, 247, 92, 33, 81, 219, 113, 58, 33, 55, 81, 219, 113, 58, + 33, 55, 230, 211, 252, 60, 33, 247, 119, 33, 223, 93, 248, 36, 33, 153, + 242, 75, 58, 33, 242, 75, 58, 33, 207, 18, 242, 75, 58, 33, 242, 75, 93, + 183, 33, 230, 211, 252, 61, 60, 33, 252, 47, 252, 61, 60, 33, 45, 199, + 229, 60, 33, 50, 199, 229, 60, 33, 45, 251, 116, 58, 33, 228, 187, 33, + 45, 132, 206, 189, 60, 33, 133, 199, 229, 60, 33, 144, 199, 229, 60, 33, + 108, 3, 60, 33, 216, 35, 3, 60, 33, 210, 190, 228, 251, 60, 33, 207, 24, + 228, 251, 60, 33, 75, 60, 33, 237, 43, 60, 33, 206, 189, 60, 33, 242, 75, + 60, 33, 247, 35, 33, 211, 138, 33, 81, 219, 113, 60, 33, 248, 29, 60, 33, + 223, 93, 55, 251, 15, 60, 33, 247, 93, 60, 33, 243, 2, 252, 61, 60, 33, + 248, 37, 60, 33, 223, 93, 248, 37, 60, 33, 198, 153, 60, 33, 217, 147, + 60, 33, 130, 219, 112, 33, 55, 130, 219, 112, 33, 198, 153, 210, 255, 33, + 203, 40, 201, 28, 210, 255, 33, 179, 201, 28, 210, 255, 33, 203, 40, 202, + 24, 210, 255, 33, 179, 202, 24, 210, 255, 33, 50, 132, 206, 189, 60, 33, + 223, 93, 248, 29, 60, 33, 51, 60, 33, 205, 62, 60, 33, 192, 236, 58, 33, + 81, 198, 152, 33, 55, 210, 254, 33, 230, 211, 163, 77, 33, 252, 47, 163, + 77, 33, 35, 210, 4, 33, 35, 221, 30, 33, 35, 237, 36, 198, 60, 33, 35, + 191, 233, 33, 248, 29, 58, 33, 234, 43, 3, 60, 33, 55, 81, 219, 113, 60, + 33, 45, 251, 116, 60, 33, 213, 12, 198, 153, 58, 33, 229, 1, 58, 33, 251, + 165, 234, 45, 119, 58, 33, 45, 50, 64, 60, 33, 196, 66, 64, 60, 33, 230, + 217, 222, 196, 33, 50, 250, 236, 58, 33, 45, 132, 206, 189, 58, 33, 233, + 34, 33, 192, 236, 60, 33, 45, 250, 236, 60, 33, 50, 250, 236, 60, 33, 50, + 250, 236, 23, 133, 250, 236, 60, 33, 50, 132, 206, 189, 58, 33, 75, 93, + 183, 33, 250, 194, 60, 33, 55, 206, 189, 60, 33, 191, 21, 58, 33, 55, + 248, 37, 60, 33, 55, 248, 36, 33, 55, 217, 146, 33, 55, 217, 147, 60, 33, + 55, 198, 152, 33, 55, 223, 93, 248, 36, 33, 55, 96, 64, 60, 33, 8, 2, 1, + 65, 33, 8, 2, 1, 71, 33, 8, 2, 1, 68, 33, 8, 2, 1, 74, 33, 8, 2, 1, 66, + 33, 8, 2, 1, 247, 193, 33, 8, 2, 1, 238, 127, 33, 8, 2, 1, 230, 116, 33, + 8, 2, 1, 218, 168, 33, 8, 2, 1, 146, 33, 8, 2, 1, 200, 43, 33, 8, 2, 1, + 196, 12, 33, 8, 2, 1, 192, 235, 35, 6, 1, 229, 185, 35, 2, 1, 229, 185, + 35, 6, 1, 251, 14, 205, 145, 35, 2, 1, 251, 14, 205, 145, 35, 212, 134, + 56, 35, 110, 212, 134, 56, 35, 6, 1, 210, 171, 237, 10, 35, 2, 1, 210, + 171, 237, 10, 35, 191, 233, 35, 2, 207, 18, 218, 206, 202, 197, 113, 35, + 2, 235, 138, 218, 206, 202, 197, 113, 35, 2, 207, 18, 235, 138, 218, 206, + 202, 197, 113, 35, 208, 13, 77, 35, 6, 1, 191, 240, 35, 198, 60, 35, 237, + 36, 198, 60, 35, 6, 1, 251, 161, 4, 198, 60, 35, 251, 94, 199, 108, 35, + 6, 1, 234, 48, 4, 198, 60, 35, 6, 1, 233, 254, 4, 198, 60, 35, 6, 1, 223, + 84, 4, 198, 60, 35, 6, 1, 211, 108, 4, 198, 60, 35, 6, 1, 196, 71, 4, + 198, 60, 35, 6, 1, 211, 111, 4, 198, 60, 35, 2, 1, 223, 84, 4, 237, 36, + 23, 198, 60, 35, 6, 1, 251, 160, 35, 6, 1, 248, 212, 35, 6, 1, 231, 211, + 35, 6, 1, 237, 106, 35, 6, 1, 234, 47, 35, 6, 1, 191, 76, 35, 6, 1, 233, + 253, 35, 6, 1, 199, 15, 35, 6, 1, 223, 83, 35, 6, 1, 222, 72, 35, 6, 1, + 220, 31, 35, 6, 1, 215, 155, 35, 6, 1, 212, 178, 35, 6, 1, 192, 207, 35, + 6, 1, 211, 107, 35, 6, 1, 209, 185, 35, 6, 1, 207, 3, 35, 6, 1, 202, 196, + 35, 6, 1, 199, 166, 35, 6, 1, 196, 70, 35, 6, 1, 209, 211, 35, 6, 1, 243, + 95, 35, 6, 1, 208, 176, 35, 6, 1, 211, 110, 35, 6, 1, 223, 84, 4, 237, + 35, 35, 6, 1, 196, 71, 4, 237, 35, 35, 2, 1, 251, 161, 4, 198, 60, 35, 2, + 1, 234, 48, 4, 198, 60, 35, 2, 1, 233, 254, 4, 198, 60, 35, 2, 1, 223, + 84, 4, 198, 60, 35, 2, 1, 196, 71, 4, 237, 36, 23, 198, 60, 35, 2, 1, + 251, 160, 35, 2, 1, 248, 212, 35, 2, 1, 231, 211, 35, 2, 1, 237, 106, 35, + 2, 1, 234, 47, 35, 2, 1, 191, 76, 35, 2, 1, 233, 253, 35, 2, 1, 199, 15, + 35, 2, 1, 223, 83, 35, 2, 1, 222, 72, 35, 2, 1, 220, 31, 35, 2, 1, 215, + 155, 35, 2, 1, 212, 178, 35, 2, 1, 192, 207, 35, 2, 1, 211, 107, 35, 2, + 1, 209, 185, 35, 2, 1, 207, 3, 35, 2, 1, 53, 202, 196, 35, 2, 1, 202, + 196, 35, 2, 1, 199, 166, 35, 2, 1, 196, 70, 35, 2, 1, 209, 211, 35, 2, 1, + 243, 95, 35, 2, 1, 208, 176, 35, 2, 1, 211, 110, 35, 2, 1, 223, 84, 4, + 237, 35, 35, 2, 1, 196, 71, 4, 237, 35, 35, 2, 1, 211, 108, 4, 198, 60, + 35, 2, 1, 196, 71, 4, 198, 60, 35, 2, 1, 211, 111, 4, 198, 60, 35, 6, + 222, 103, 113, 35, 248, 213, 113, 35, 199, 16, 113, 35, 196, 71, 4, 228, + 251, 113, 35, 196, 71, 4, 252, 47, 23, 228, 251, 113, 35, 196, 71, 4, + 237, 43, 23, 228, 251, 113, 35, 209, 212, 113, 35, 209, 186, 113, 35, + 222, 103, 113, 35, 1, 251, 14, 221, 35, 35, 2, 1, 251, 14, 221, 35, 35, + 1, 201, 73, 35, 2, 1, 201, 73, 35, 1, 237, 10, 35, 2, 1, 237, 10, 35, 1, + 221, 35, 35, 2, 1, 221, 35, 35, 1, 205, 145, 35, 2, 1, 205, 145, 94, 6, + 1, 203, 105, 94, 2, 1, 203, 105, 94, 6, 1, 233, 44, 94, 2, 1, 233, 44, + 94, 6, 1, 221, 195, 94, 2, 1, 221, 195, 94, 6, 1, 228, 242, 94, 2, 1, + 228, 242, 94, 6, 1, 231, 206, 94, 2, 1, 231, 206, 94, 6, 1, 203, 71, 94, + 2, 1, 203, 71, 94, 6, 1, 237, 122, 94, 2, 1, 237, 122, 35, 222, 73, 113, + 35, 207, 4, 113, 35, 218, 206, 202, 197, 113, 35, 1, 191, 240, 35, 6, + 199, 16, 113, 35, 218, 206, 234, 48, 113, 35, 207, 18, 218, 206, 234, 48, + 113, 35, 6, 1, 203, 56, 35, 2, 1, 203, 56, 35, 6, 218, 206, 202, 197, + 113, 35, 6, 1, 205, 142, 35, 2, 1, 205, 142, 35, 207, 4, 4, 201, 28, 113, + 35, 6, 207, 18, 218, 206, 202, 197, 113, 35, 6, 235, 138, 218, 206, 202, + 197, 113, 35, 6, 207, 18, 235, 138, 218, 206, 202, 197, 113, 38, 6, 1, + 223, 227, 4, 230, 210, 38, 6, 1, 223, 88, 38, 6, 1, 236, 192, 38, 6, 1, + 231, 20, 38, 6, 1, 196, 125, 223, 226, 38, 6, 1, 235, 32, 38, 6, 1, 247, + 203, 68, 38, 6, 1, 192, 33, 38, 6, 1, 223, 10, 38, 6, 1, 219, 76, 38, 6, + 1, 213, 150, 38, 6, 1, 197, 155, 38, 6, 1, 221, 103, 38, 6, 1, 228, 74, + 4, 230, 210, 38, 6, 1, 203, 40, 66, 38, 6, 1, 235, 28, 38, 6, 1, 65, 38, + 6, 1, 249, 17, 38, 6, 1, 195, 153, 38, 6, 1, 231, 77, 38, 6, 1, 237, 146, + 38, 6, 1, 223, 226, 38, 6, 1, 191, 62, 38, 6, 1, 191, 87, 38, 6, 1, 68, + 38, 6, 1, 203, 40, 68, 38, 6, 1, 155, 38, 6, 1, 234, 140, 38, 6, 1, 234, + 114, 38, 6, 1, 234, 103, 38, 6, 1, 74, 38, 6, 1, 210, 63, 38, 6, 1, 234, + 34, 38, 6, 1, 234, 22, 38, 6, 1, 199, 145, 38, 6, 1, 66, 38, 6, 1, 234, + 181, 38, 6, 1, 140, 38, 6, 1, 197, 161, 38, 6, 1, 243, 127, 38, 6, 1, + 203, 165, 38, 6, 1, 203, 116, 38, 6, 1, 230, 17, 56, 38, 6, 1, 192, 58, + 38, 6, 1, 202, 32, 56, 38, 6, 1, 71, 38, 6, 1, 191, 225, 38, 6, 1, 170, + 38, 2, 1, 65, 38, 2, 1, 249, 17, 38, 2, 1, 195, 153, 38, 2, 1, 231, 77, + 38, 2, 1, 237, 146, 38, 2, 1, 223, 226, 38, 2, 1, 191, 62, 38, 2, 1, 191, + 87, 38, 2, 1, 68, 38, 2, 1, 203, 40, 68, 38, 2, 1, 155, 38, 2, 1, 234, + 140, 38, 2, 1, 234, 114, 38, 2, 1, 234, 103, 38, 2, 1, 74, 38, 2, 1, 210, + 63, 38, 2, 1, 234, 34, 38, 2, 1, 234, 22, 38, 2, 1, 199, 145, 38, 2, 1, + 66, 38, 2, 1, 234, 181, 38, 2, 1, 140, 38, 2, 1, 197, 161, 38, 2, 1, 243, + 127, 38, 2, 1, 203, 165, 38, 2, 1, 203, 116, 38, 2, 1, 230, 17, 56, 38, + 2, 1, 192, 58, 38, 2, 1, 202, 32, 56, 38, 2, 1, 71, 38, 2, 1, 191, 225, + 38, 2, 1, 170, 38, 2, 1, 223, 227, 4, 230, 210, 38, 2, 1, 223, 88, 38, 2, + 1, 236, 192, 38, 2, 1, 231, 20, 38, 2, 1, 196, 125, 223, 226, 38, 2, 1, + 235, 32, 38, 2, 1, 247, 203, 68, 38, 2, 1, 192, 33, 38, 2, 1, 223, 10, + 38, 2, 1, 219, 76, 38, 2, 1, 213, 150, 38, 2, 1, 197, 155, 38, 2, 1, 221, + 103, 38, 2, 1, 228, 74, 4, 230, 210, 38, 2, 1, 203, 40, 66, 38, 2, 1, + 235, 28, 38, 6, 1, 211, 110, 38, 2, 1, 211, 110, 38, 6, 1, 192, 95, 38, + 2, 1, 192, 95, 38, 6, 1, 223, 81, 71, 38, 2, 1, 223, 81, 71, 38, 6, 1, + 219, 83, 191, 190, 38, 2, 1, 219, 83, 191, 190, 38, 6, 1, 223, 81, 219, + 83, 191, 190, 38, 2, 1, 223, 81, 219, 83, 191, 190, 38, 6, 1, 248, 175, + 191, 190, 38, 2, 1, 248, 175, 191, 190, 38, 6, 1, 223, 81, 248, 175, 191, + 190, 38, 2, 1, 223, 81, 248, 175, 191, 190, 38, 6, 1, 220, 248, 38, 2, 1, + 220, 248, 38, 6, 1, 208, 176, 38, 2, 1, 208, 176, 38, 6, 1, 232, 228, 38, + 2, 1, 232, 228, 38, 6, 1, 223, 37, 38, 2, 1, 223, 37, 38, 6, 1, 223, 38, + 4, 55, 230, 211, 252, 60, 38, 2, 1, 223, 38, 4, 55, 230, 211, 252, 60, + 38, 6, 1, 196, 128, 38, 2, 1, 196, 128, 38, 6, 1, 206, 115, 211, 110, 38, + 2, 1, 206, 115, 211, 110, 38, 6, 1, 211, 111, 4, 198, 122, 38, 2, 1, 211, + 111, 4, 198, 122, 38, 6, 1, 211, 30, 38, 2, 1, 211, 30, 38, 6, 1, 221, + 35, 38, 2, 1, 221, 35, 38, 198, 229, 56, 33, 38, 198, 122, 33, 38, 210, + 191, 33, 38, 237, 213, 209, 75, 33, 38, 208, 170, 209, 75, 33, 38, 209, + 54, 33, 38, 228, 141, 198, 229, 56, 33, 38, 216, 48, 56, 38, 6, 1, 203, + 40, 228, 74, 4, 199, 215, 38, 2, 1, 203, 40, 228, 74, 4, 199, 215, 38, 6, + 1, 204, 21, 56, 38, 2, 1, 204, 21, 56, 38, 6, 1, 234, 35, 4, 198, 182, + 38, 2, 1, 234, 35, 4, 198, 182, 38, 6, 1, 231, 78, 4, 196, 69, 38, 2, 1, + 231, 78, 4, 196, 69, 38, 6, 1, 231, 78, 4, 106, 38, 2, 1, 231, 78, 4, + 106, 38, 6, 1, 231, 78, 4, 82, 102, 38, 2, 1, 231, 78, 4, 82, 102, 38, 6, + 1, 191, 63, 4, 237, 87, 38, 2, 1, 191, 63, 4, 237, 87, 38, 6, 1, 191, 88, + 4, 237, 87, 38, 2, 1, 191, 88, 4, 237, 87, 38, 6, 1, 222, 142, 4, 237, + 87, 38, 2, 1, 222, 142, 4, 237, 87, 38, 6, 1, 222, 142, 4, 81, 106, 38, + 2, 1, 222, 142, 4, 81, 106, 38, 6, 1, 222, 142, 4, 106, 38, 2, 1, 222, + 142, 4, 106, 38, 6, 1, 249, 70, 155, 38, 2, 1, 249, 70, 155, 38, 6, 1, + 234, 104, 4, 237, 87, 38, 2, 1, 234, 104, 4, 237, 87, 38, 6, 34, 234, + 104, 231, 77, 38, 2, 34, 234, 104, 231, 77, 38, 6, 1, 210, 64, 4, 82, + 102, 38, 2, 1, 210, 64, 4, 82, 102, 38, 6, 1, 252, 67, 140, 38, 2, 1, + 252, 67, 140, 38, 6, 1, 234, 23, 4, 237, 87, 38, 2, 1, 234, 23, 4, 237, + 87, 38, 6, 1, 199, 146, 4, 237, 87, 38, 2, 1, 199, 146, 4, 237, 87, 38, + 6, 1, 201, 53, 66, 38, 2, 1, 201, 53, 66, 38, 6, 1, 201, 53, 126, 4, 106, + 38, 2, 1, 201, 53, 126, 4, 106, 38, 6, 1, 230, 105, 4, 237, 87, 38, 2, 1, + 230, 105, 4, 237, 87, 38, 6, 34, 199, 146, 197, 161, 38, 2, 34, 199, 146, + 197, 161, 38, 6, 1, 243, 128, 4, 237, 87, 38, 2, 1, 243, 128, 4, 237, 87, + 38, 6, 1, 243, 128, 4, 81, 106, 38, 2, 1, 243, 128, 4, 81, 106, 38, 6, 1, + 203, 82, 38, 2, 1, 203, 82, 38, 6, 1, 252, 67, 243, 127, 38, 2, 1, 252, + 67, 243, 127, 38, 6, 1, 252, 67, 243, 128, 4, 237, 87, 38, 2, 1, 252, 67, + 243, 128, 4, 237, 87, 38, 1, 210, 179, 38, 6, 1, 191, 63, 4, 248, 36, 38, + 2, 1, 191, 63, 4, 248, 36, 38, 6, 1, 222, 142, 4, 102, 38, 2, 1, 222, + 142, 4, 102, 38, 6, 1, 234, 141, 4, 199, 215, 38, 2, 1, 234, 141, 4, 199, + 215, 38, 6, 1, 234, 104, 4, 102, 38, 2, 1, 234, 104, 4, 102, 38, 6, 1, + 234, 104, 4, 199, 215, 38, 2, 1, 234, 104, 4, 199, 215, 38, 6, 1, 221, + 208, 243, 127, 38, 2, 1, 221, 208, 243, 127, 38, 6, 1, 234, 115, 4, 199, + 215, 38, 2, 1, 234, 115, 4, 199, 215, 38, 2, 1, 210, 179, 38, 6, 1, 42, + 4, 248, 36, 38, 2, 1, 42, 4, 248, 36, 38, 6, 1, 42, 4, 237, 42, 38, 2, 1, + 42, 4, 237, 42, 38, 6, 34, 42, 223, 226, 38, 2, 34, 42, 223, 226, 38, 6, + 1, 223, 227, 4, 248, 36, 38, 2, 1, 223, 227, 4, 248, 36, 38, 6, 1, 205, + 86, 38, 2, 1, 205, 86, 38, 6, 1, 205, 87, 4, 237, 42, 38, 2, 1, 205, 87, + 4, 237, 42, 38, 6, 1, 191, 63, 4, 237, 42, 38, 2, 1, 191, 63, 4, 237, 42, + 38, 6, 1, 191, 88, 4, 237, 42, 38, 2, 1, 191, 88, 4, 237, 42, 38, 6, 1, + 252, 67, 235, 32, 38, 2, 1, 252, 67, 235, 32, 38, 6, 1, 228, 74, 4, 217, + 146, 38, 2, 1, 228, 74, 4, 217, 146, 38, 6, 1, 228, 74, 4, 237, 42, 38, + 2, 1, 228, 74, 4, 237, 42, 38, 6, 1, 187, 4, 237, 42, 38, 2, 1, 187, 4, + 237, 42, 38, 6, 1, 249, 82, 74, 38, 2, 1, 249, 82, 74, 38, 6, 1, 249, 82, + 187, 4, 237, 42, 38, 2, 1, 249, 82, 187, 4, 237, 42, 38, 6, 1, 235, 15, + 4, 237, 42, 38, 2, 1, 235, 15, 4, 237, 42, 38, 6, 1, 126, 4, 217, 146, + 38, 2, 1, 126, 4, 217, 146, 38, 6, 1, 126, 4, 237, 42, 38, 2, 1, 126, 4, + 237, 42, 38, 6, 1, 126, 4, 55, 252, 46, 38, 2, 1, 126, 4, 55, 252, 46, + 38, 6, 1, 243, 128, 4, 237, 42, 38, 2, 1, 243, 128, 4, 237, 42, 38, 6, 1, + 231, 78, 4, 237, 87, 38, 2, 1, 231, 78, 4, 237, 87, 38, 6, 1, 192, 59, 4, + 237, 42, 38, 2, 1, 192, 59, 4, 237, 42, 38, 6, 1, 231, 78, 4, 201, 28, + 23, 102, 38, 2, 1, 231, 78, 4, 201, 28, 23, 102, 38, 6, 1, 230, 105, 4, + 102, 38, 2, 1, 230, 105, 4, 102, 38, 6, 1, 230, 105, 4, 106, 38, 2, 1, + 230, 105, 4, 106, 38, 6, 1, 221, 45, 237, 146, 38, 2, 1, 221, 45, 237, + 146, 38, 6, 1, 221, 45, 236, 192, 38, 2, 1, 221, 45, 236, 192, 38, 6, 1, + 221, 45, 191, 12, 38, 2, 1, 221, 45, 191, 12, 38, 6, 1, 221, 45, 235, 24, + 38, 2, 1, 221, 45, 235, 24, 38, 6, 1, 221, 45, 219, 76, 38, 2, 1, 221, + 45, 219, 76, 38, 6, 1, 221, 45, 213, 150, 38, 2, 1, 221, 45, 213, 150, + 38, 6, 1, 221, 45, 202, 115, 38, 2, 1, 221, 45, 202, 115, 38, 6, 1, 221, + 45, 198, 116, 38, 2, 1, 221, 45, 198, 116, 38, 6, 1, 207, 18, 191, 87, + 38, 2, 1, 207, 18, 191, 87, 38, 6, 1, 234, 141, 4, 102, 38, 2, 1, 234, + 141, 4, 102, 38, 6, 1, 219, 159, 38, 2, 1, 219, 159, 38, 6, 1, 207, 6, + 38, 2, 1, 207, 6, 38, 6, 1, 192, 129, 38, 2, 1, 192, 129, 38, 6, 1, 208, + 96, 38, 2, 1, 208, 96, 38, 6, 1, 193, 125, 38, 2, 1, 193, 125, 38, 6, 1, + 251, 188, 155, 38, 2, 1, 251, 188, 155, 38, 6, 1, 234, 141, 4, 82, 102, + 38, 2, 1, 234, 141, 4, 82, 102, 38, 6, 1, 234, 104, 4, 82, 102, 38, 2, 1, + 234, 104, 4, 82, 102, 38, 6, 1, 210, 64, 4, 237, 87, 38, 2, 1, 210, 64, + 4, 237, 87, 38, 6, 1, 203, 83, 4, 237, 87, 38, 2, 1, 203, 83, 4, 237, 87, + 38, 6, 1, 234, 104, 4, 45, 102, 38, 2, 1, 234, 104, 4, 45, 102, 38, 6, 1, + 235, 16, 38, 2, 1, 235, 16, 38, 6, 1, 237, 195, 38, 2, 1, 237, 195, 38, + 6, 1, 234, 141, 4, 237, 87, 38, 2, 1, 234, 141, 4, 237, 87, 250, 249, 6, + 1, 250, 128, 250, 249, 6, 1, 248, 229, 250, 249, 6, 1, 231, 40, 250, 249, + 6, 1, 238, 32, 250, 249, 6, 1, 234, 195, 250, 249, 6, 1, 191, 123, 250, + 249, 6, 1, 234, 173, 250, 249, 6, 1, 233, 255, 250, 249, 6, 1, 159, 250, + 249, 6, 1, 191, 62, 250, 249, 6, 1, 223, 131, 250, 249, 6, 1, 219, 80, + 250, 249, 6, 1, 192, 212, 250, 249, 6, 1, 247, 160, 250, 249, 6, 1, 221, + 251, 250, 249, 6, 1, 229, 23, 250, 249, 6, 1, 223, 32, 250, 249, 6, 1, + 231, 88, 250, 249, 6, 1, 243, 117, 250, 249, 6, 1, 216, 186, 250, 249, 6, + 1, 192, 33, 250, 249, 6, 1, 212, 253, 250, 249, 6, 1, 203, 165, 250, 249, + 6, 1, 195, 24, 250, 249, 6, 1, 247, 1, 250, 249, 6, 1, 210, 41, 250, 249, + 6, 1, 222, 247, 250, 249, 6, 1, 165, 250, 249, 6, 1, 205, 39, 250, 249, + 6, 1, 195, 74, 250, 249, 6, 1, 198, 119, 250, 249, 6, 1, 207, 71, 250, + 249, 6, 1, 242, 99, 250, 249, 6, 1, 192, 17, 250, 249, 6, 1, 209, 114, + 250, 249, 6, 1, 222, 6, 250, 249, 6, 1, 211, 136, 250, 249, 6, 1, 233, + 46, 250, 249, 52, 1, 45, 132, 206, 188, 250, 249, 251, 49, 250, 249, 234, + 107, 77, 250, 249, 233, 216, 77, 250, 249, 242, 74, 250, 249, 208, 13, + 77, 250, 249, 252, 68, 77, 250, 249, 2, 1, 153, 250, 128, 250, 249, 2, 1, + 250, 128, 250, 249, 2, 1, 248, 229, 250, 249, 2, 1, 231, 40, 250, 249, 2, + 1, 238, 32, 250, 249, 2, 1, 234, 195, 250, 249, 2, 1, 191, 123, 250, 249, + 2, 1, 234, 173, 250, 249, 2, 1, 233, 255, 250, 249, 2, 1, 159, 250, 249, + 2, 1, 191, 62, 250, 249, 2, 1, 223, 131, 250, 249, 2, 1, 219, 80, 250, + 249, 2, 1, 192, 212, 250, 249, 2, 1, 247, 160, 250, 249, 2, 1, 221, 251, + 250, 249, 2, 1, 229, 23, 250, 249, 2, 1, 223, 32, 250, 249, 2, 1, 231, + 88, 250, 249, 2, 1, 243, 117, 250, 249, 2, 1, 216, 186, 250, 249, 2, 1, + 192, 33, 250, 249, 2, 1, 212, 253, 250, 249, 2, 1, 203, 165, 250, 249, 2, + 1, 195, 24, 250, 249, 2, 1, 247, 1, 250, 249, 2, 1, 210, 41, 250, 249, 2, + 1, 222, 247, 250, 249, 2, 1, 165, 250, 249, 2, 1, 205, 39, 250, 249, 2, + 1, 195, 74, 250, 249, 2, 1, 198, 119, 250, 249, 2, 1, 207, 71, 250, 249, + 2, 1, 242, 99, 250, 249, 2, 1, 192, 17, 250, 249, 2, 1, 209, 114, 250, + 249, 2, 1, 222, 6, 250, 249, 2, 1, 211, 136, 250, 249, 2, 1, 233, 46, + 250, 249, 2, 34, 234, 196, 192, 17, 250, 249, 2, 1, 11, 4, 106, 250, 249, + 232, 80, 201, 63, 250, 249, 228, 88, 206, 207, 250, 249, 233, 251, 56, + 219, 223, 250, 249, 233, 251, 56, 250, 249, 235, 110, 56, 136, 252, 61, + 233, 246, 136, 252, 61, 205, 40, 136, 252, 61, 203, 141, 136, 252, 61, + 191, 99, 208, 78, 136, 252, 61, 191, 99, 231, 230, 136, 252, 61, 198, + 134, 136, 252, 61, 207, 15, 136, 252, 61, 191, 97, 136, 252, 61, 210, 97, + 136, 252, 61, 192, 48, 136, 252, 61, 199, 56, 136, 252, 61, 231, 139, + 136, 252, 61, 231, 140, 215, 110, 136, 252, 61, 231, 137, 136, 252, 61, + 208, 80, 210, 130, 136, 252, 61, 199, 103, 231, 158, 136, 252, 61, 210, + 69, 136, 252, 61, 250, 173, 230, 85, 136, 252, 61, 215, 121, 136, 252, + 61, 217, 117, 136, 252, 61, 216, 175, 136, 252, 61, 216, 176, 222, 7, + 136, 252, 61, 237, 222, 136, 252, 61, 208, 91, 136, 252, 61, 199, 103, + 208, 73, 136, 252, 61, 192, 61, 248, 230, 191, 247, 136, 252, 61, 211, + 117, 136, 252, 61, 223, 183, 136, 252, 61, 237, 123, 136, 252, 61, 191, + 19, 136, 87, 217, 34, 243, 10, 136, 209, 62, 203, 85, 136, 209, 62, 230, + 8, 205, 40, 136, 209, 62, 230, 8, 210, 88, 136, 209, 62, 230, 8, 208, 84, + 136, 209, 62, 229, 119, 136, 209, 62, 197, 158, 136, 209, 62, 205, 40, + 136, 209, 62, 210, 88, 136, 209, 62, 208, 84, 136, 209, 62, 229, 7, 136, + 209, 62, 229, 8, 230, 10, 40, 195, 158, 136, 209, 62, 208, 18, 136, 209, + 62, 238, 17, 211, 57, 217, 70, 136, 209, 62, 216, 164, 136, 208, 152, + 217, 67, 136, 209, 62, 207, 161, 136, 208, 152, 210, 99, 136, 209, 62, + 203, 70, 236, 140, 136, 209, 62, 202, 175, 236, 140, 136, 208, 152, 202, + 33, 210, 90, 136, 87, 116, 236, 140, 136, 87, 110, 236, 140, 136, 208, + 152, 212, 131, 230, 84, 136, 209, 62, 208, 85, 208, 78, 136, 1, 251, 192, + 136, 1, 248, 214, 136, 1, 231, 38, 136, 1, 237, 253, 136, 1, 229, 245, + 136, 1, 195, 158, 136, 1, 191, 91, 136, 1, 229, 186, 136, 1, 199, 73, + 136, 1, 191, 250, 136, 1, 53, 222, 106, 136, 1, 222, 106, 136, 1, 220, + 27, 136, 1, 53, 216, 193, 136, 1, 216, 193, 136, 1, 53, 212, 130, 136, 1, + 212, 130, 136, 1, 205, 148, 136, 1, 250, 126, 136, 1, 53, 210, 63, 136, + 1, 210, 63, 136, 1, 53, 197, 163, 136, 1, 197, 163, 136, 1, 208, 42, 136, + 1, 207, 38, 136, 1, 203, 69, 136, 1, 199, 162, 136, 191, 251, 197, 241, + 136, 34, 192, 31, 55, 195, 158, 136, 34, 192, 31, 195, 159, 191, 250, + 136, 34, 192, 31, 55, 191, 250, 136, 208, 152, 231, 139, 136, 208, 152, + 231, 137, 9, 31, 56, 9, 3, 205, 141, 9, 232, 157, 217, 51, 9, 3, 205, + 187, 9, 3, 205, 144, 9, 31, 87, 58, 251, 28, 238, 191, 206, 128, 251, 28, + 232, 121, 206, 128, 9, 207, 122, 251, 28, 210, 14, 216, 50, 56, 251, 28, + 210, 14, 199, 96, 198, 230, 56, 252, 2, 56, 9, 242, 74, 9, 237, 209, 204, + 10, 9, 209, 64, 195, 137, 56, 9, 3, 216, 25, 9, 3, 205, 161, 251, 199, + 193, 149, 9, 3, 251, 199, 250, 198, 9, 3, 207, 157, 251, 198, 9, 3, 207, + 167, 251, 170, 251, 105, 9, 3, 199, 206, 9, 2, 137, 199, 219, 9, 2, 137, + 34, 131, 4, 220, 36, 4, 192, 75, 9, 2, 137, 191, 113, 9, 2, 233, 70, 9, + 2, 237, 245, 9, 2, 222, 52, 9, 204, 25, 9, 1, 77, 9, 234, 95, 79, 199, + 54, 77, 9, 197, 225, 75, 208, 152, 77, 9, 208, 13, 77, 9, 1, 222, 56, + 192, 75, 9, 1, 230, 57, 9, 1, 131, 4, 217, 142, 58, 9, 1, 131, 4, 230, + 58, 58, 9, 1, 193, 134, 4, 230, 58, 58, 9, 1, 131, 4, 230, 58, 60, 9, 1, + 99, 4, 230, 58, 58, 9, 1, 251, 192, 9, 1, 248, 245, 9, 1, 199, 115, 217, + 62, 9, 1, 199, 114, 9, 1, 199, 29, 9, 1, 223, 6, 9, 1, 230, 81, 9, 1, + 221, 210, 9, 1, 238, 3, 9, 1, 199, 41, 9, 1, 207, 71, 9, 1, 191, 113, 9, + 1, 205, 46, 9, 1, 203, 109, 9, 1, 205, 192, 9, 1, 238, 26, 9, 1, 199, + 219, 9, 1, 191, 116, 9, 1, 251, 230, 9, 1, 231, 86, 9, 1, 222, 5, 4, 105, + 185, 58, 9, 1, 222, 5, 4, 115, 185, 60, 9, 1, 233, 74, 99, 4, 223, 93, + 196, 12, 9, 1, 233, 74, 99, 4, 105, 185, 58, 9, 1, 233, 74, 99, 4, 115, + 185, 58, 9, 199, 168, 9, 1, 233, 46, 9, 1, 208, 89, 9, 1, 222, 106, 9, 1, + 220, 35, 9, 1, 216, 208, 9, 1, 213, 24, 9, 1, 229, 210, 9, 1, 193, 133, + 9, 1, 131, 217, 99, 9, 1, 192, 75, 9, 233, 68, 9, 237, 243, 9, 222, 50, + 9, 233, 70, 9, 237, 245, 9, 222, 52, 9, 203, 155, 9, 200, 206, 9, 217, + 140, 58, 9, 230, 58, 58, 9, 230, 58, 60, 9, 200, 230, 251, 192, 9, 223, + 93, 237, 245, 9, 87, 213, 25, 231, 57, 9, 190, 237, 9, 18, 3, 2, 196, 13, + 58, 9, 18, 3, 223, 93, 2, 196, 13, 58, 9, 18, 3, 75, 60, 9, 207, 18, 237, + 245, 9, 233, 71, 4, 105, 236, 138, 9, 193, 135, 230, 58, 60, 251, 28, 17, + 191, 77, 251, 28, 17, 107, 251, 28, 17, 109, 251, 28, 17, 138, 251, 28, + 17, 134, 251, 28, 17, 149, 251, 28, 17, 169, 251, 28, 17, 175, 251, 28, + 17, 171, 251, 28, 17, 178, 9, 210, 13, 56, 9, 237, 138, 204, 10, 9, 198, + 229, 204, 10, 9, 232, 226, 209, 60, 201, 102, 9, 1, 236, 139, 248, 245, + 9, 1, 236, 139, 208, 89, 9, 1, 200, 182, 251, 192, 9, 1, 131, 193, 150, + 9, 1, 131, 4, 193, 135, 230, 58, 58, 9, 1, 131, 4, 193, 135, 230, 58, 60, + 9, 1, 137, 230, 57, 9, 1, 137, 230, 58, 251, 192, 9, 1, 137, 230, 58, + 193, 133, 9, 1, 126, 4, 230, 58, 58, 9, 1, 137, 230, 58, 192, 75, 9, 1, + 197, 124, 9, 1, 197, 122, 9, 1, 248, 255, 9, 1, 199, 115, 4, 206, 188, 9, + 1, 199, 115, 4, 115, 185, 93, 235, 118, 9, 1, 210, 41, 9, 1, 199, 112, 9, + 1, 248, 243, 9, 1, 182, 4, 230, 58, 58, 9, 1, 182, 4, 105, 185, 81, 58, + 9, 1, 212, 87, 9, 1, 235, 41, 9, 1, 182, 4, 115, 185, 58, 9, 1, 199, 149, + 9, 1, 199, 147, 9, 1, 237, 186, 9, 1, 238, 4, 4, 206, 188, 9, 1, 238, 4, + 4, 75, 60, 9, 1, 238, 4, 4, 75, 248, 233, 23, 2, 199, 219, 9, 1, 238, 10, + 9, 1, 237, 188, 9, 1, 235, 78, 9, 1, 238, 4, 4, 115, 185, 93, 235, 118, + 9, 1, 238, 4, 4, 232, 128, 185, 58, 9, 1, 206, 101, 9, 1, 207, 72, 4, 2, + 196, 12, 9, 1, 207, 72, 4, 206, 188, 9, 1, 207, 72, 4, 75, 60, 9, 1, 207, + 72, 4, 2, 196, 13, 60, 9, 1, 207, 72, 4, 75, 248, 233, 23, 75, 58, 9, 1, + 207, 72, 4, 105, 185, 58, 9, 1, 223, 3, 9, 1, 207, 72, 4, 232, 128, 185, + 58, 9, 1, 205, 47, 4, 75, 248, 233, 23, 75, 58, 9, 1, 205, 47, 4, 115, + 185, 60, 9, 1, 205, 47, 4, 115, 185, 248, 233, 23, 115, 185, 58, 9, 1, + 205, 193, 4, 105, 185, 60, 9, 1, 205, 193, 4, 115, 185, 58, 9, 1, 199, + 220, 4, 115, 185, 58, 9, 1, 251, 231, 4, 115, 185, 58, 9, 1, 236, 139, + 233, 46, 9, 1, 233, 47, 4, 75, 215, 177, 60, 9, 1, 233, 47, 4, 75, 60, 9, + 1, 195, 146, 9, 1, 233, 47, 4, 115, 185, 60, 9, 1, 210, 39, 9, 1, 208, + 90, 4, 75, 58, 9, 1, 208, 90, 4, 115, 185, 58, 9, 1, 222, 4, 9, 1, 200, + 146, 222, 106, 9, 1, 222, 107, 4, 206, 188, 9, 1, 222, 107, 4, 75, 58, 9, + 1, 214, 70, 9, 1, 222, 107, 4, 115, 185, 60, 9, 1, 231, 227, 9, 1, 231, + 228, 4, 206, 188, 9, 1, 213, 247, 9, 1, 231, 228, 4, 105, 185, 60, 9, 1, + 230, 166, 9, 1, 231, 228, 4, 115, 185, 58, 9, 1, 220, 36, 4, 2, 196, 12, + 9, 1, 220, 36, 4, 75, 58, 9, 1, 220, 36, 4, 115, 185, 58, 9, 1, 220, 36, + 4, 115, 185, 60, 9, 1, 213, 25, 4, 75, 60, 9, 1, 213, 25, 231, 57, 9, 1, + 206, 165, 9, 1, 213, 25, 4, 206, 188, 9, 1, 213, 25, 4, 115, 185, 58, 9, + 1, 229, 211, 236, 170, 9, 1, 199, 150, 4, 75, 58, 9, 1, 229, 211, 4, 99, + 58, 9, 1, 229, 211, 231, 0, 9, 1, 229, 211, 231, 1, 4, 230, 58, 58, 9, 1, + 199, 115, 217, 63, 231, 0, 9, 1, 193, 134, 4, 206, 188, 9, 1, 221, 132, + 211, 151, 9, 1, 211, 151, 9, 1, 66, 9, 1, 191, 225, 9, 1, 221, 132, 191, + 225, 9, 1, 193, 134, 4, 105, 185, 58, 9, 1, 195, 153, 9, 1, 233, 74, 192, + 75, 9, 1, 99, 4, 199, 215, 9, 1, 99, 4, 2, 196, 12, 9, 1, 193, 134, 4, + 75, 58, 9, 1, 71, 9, 1, 99, 4, 115, 185, 60, 9, 1, 99, 249, 80, 9, 1, 99, + 249, 81, 4, 230, 58, 58, 9, 232, 80, 201, 63, 9, 1, 252, 25, 9, 2, 137, + 34, 205, 193, 4, 220, 36, 4, 131, 217, 99, 9, 2, 137, 34, 208, 90, 4, + 220, 36, 4, 131, 217, 99, 9, 2, 137, 92, 89, 20, 9, 2, 137, 220, 36, 251, + 192, 9, 2, 137, 223, 6, 9, 2, 137, 115, 236, 138, 9, 2, 137, 205, 46, 9, + 234, 95, 79, 250, 130, 9, 201, 98, 79, 206, 60, 234, 141, 229, 114, 9, 2, + 137, 206, 113, 191, 77, 9, 2, 137, 196, 73, 207, 91, 191, 77, 9, 2, 137, + 236, 139, 229, 236, 79, 221, 210, 9, 2, 137, 92, 76, 20, 9, 2, 130, 205, + 46, 9, 2, 137, 217, 141, 9, 2, 193, 133, 9, 2, 192, 75, 9, 2, 137, 192, + 75, 9, 2, 137, 213, 24, 9, 209, 108, 79, 205, 177, 9, 234, 105, 247, 22, + 130, 201, 63, 9, 234, 105, 247, 22, 137, 201, 63, 9, 206, 113, 137, 201, + 64, 4, 233, 4, 247, 21, 9, 2, 130, 216, 208, 9, 1, 238, 4, 4, 223, 93, + 196, 12, 9, 1, 207, 72, 4, 223, 93, 196, 12, 233, 205, 251, 28, 17, 191, + 77, 233, 205, 251, 28, 17, 107, 233, 205, 251, 28, 17, 109, 233, 205, + 251, 28, 17, 138, 233, 205, 251, 28, 17, 134, 233, 205, 251, 28, 17, 149, + 233, 205, 251, 28, 17, 169, 233, 205, 251, 28, 17, 175, 233, 205, 251, + 28, 17, 171, 233, 205, 251, 28, 17, 178, 9, 1, 203, 110, 4, 75, 60, 9, 1, + 238, 27, 4, 75, 60, 9, 1, 231, 87, 4, 75, 60, 9, 3, 202, 173, 251, 137, + 9, 3, 202, 173, 209, 16, 216, 186, 9, 1, 229, 211, 4, 223, 93, 196, 12, + 200, 63, 234, 95, 79, 210, 127, 200, 63, 200, 177, 232, 80, 201, 63, 200, + 63, 200, 232, 232, 80, 201, 63, 200, 63, 200, 177, 242, 83, 200, 63, 200, + 232, 242, 83, 200, 63, 228, 241, 242, 83, 200, 63, 242, 84, 202, 110, + 219, 224, 200, 63, 242, 84, 202, 110, 183, 200, 63, 200, 177, 242, 84, + 202, 110, 219, 224, 200, 63, 200, 232, 242, 84, 202, 110, 183, 200, 63, + 239, 24, 200, 63, 230, 15, 211, 176, 200, 63, 230, 15, 216, 162, 200, 63, + 230, 15, 250, 195, 200, 63, 252, 68, 77, 200, 63, 1, 251, 202, 200, 63, + 1, 200, 182, 251, 202, 200, 63, 1, 248, 211, 200, 63, 1, 231, 217, 200, + 63, 1, 231, 218, 231, 194, 200, 63, 1, 238, 0, 200, 63, 1, 236, 139, 238, + 1, 206, 181, 200, 63, 1, 229, 245, 200, 63, 1, 193, 133, 200, 63, 1, 191, + 113, 200, 63, 1, 229, 184, 200, 63, 1, 199, 69, 200, 63, 1, 199, 70, 231, + 194, 200, 63, 1, 191, 208, 200, 63, 1, 191, 209, 229, 245, 200, 63, 1, + 222, 75, 200, 63, 1, 220, 34, 200, 63, 1, 216, 46, 200, 63, 1, 212, 130, + 200, 63, 1, 204, 18, 200, 63, 1, 53, 204, 18, 200, 63, 1, 71, 200, 63, 1, + 210, 63, 200, 63, 1, 207, 18, 210, 63, 200, 63, 1, 205, 189, 200, 63, 1, + 208, 83, 200, 63, 1, 206, 181, 200, 63, 1, 203, 69, 200, 63, 1, 199, 159, + 200, 63, 1, 209, 252, 248, 194, 200, 63, 1, 209, 252, 231, 84, 200, 63, + 1, 209, 252, 237, 63, 200, 63, 208, 166, 58, 200, 63, 208, 166, 60, 200, + 63, 208, 166, 235, 137, 200, 63, 191, 0, 58, 200, 63, 191, 0, 60, 200, + 63, 191, 0, 235, 137, 200, 63, 207, 116, 58, 200, 63, 207, 116, 60, 200, + 63, 235, 138, 191, 9, 228, 240, 200, 63, 235, 138, 191, 9, 251, 108, 200, + 63, 229, 250, 58, 200, 63, 229, 250, 60, 200, 63, 229, 249, 235, 137, + 200, 63, 234, 16, 58, 200, 63, 234, 16, 60, 200, 63, 206, 24, 200, 63, + 233, 40, 236, 140, 200, 63, 207, 246, 200, 63, 206, 54, 200, 63, 105, 81, + 185, 58, 200, 63, 105, 81, 185, 60, 200, 63, 115, 185, 58, 200, 63, 115, + 185, 60, 200, 63, 211, 172, 219, 113, 58, 200, 63, 211, 172, 219, 113, + 60, 200, 63, 215, 96, 200, 63, 249, 79, 200, 63, 1, 202, 28, 191, 69, + 200, 63, 1, 202, 28, 221, 201, 200, 63, 1, 202, 28, 233, 59, 9, 1, 248, + 246, 4, 115, 185, 228, 190, 60, 9, 1, 248, 246, 4, 75, 248, 233, 23, 115, + 185, 58, 9, 1, 248, 246, 4, 115, 185, 209, 58, 196, 66, 60, 9, 1, 248, + 246, 4, 115, 185, 209, 58, 196, 66, 248, 233, 23, 105, 185, 58, 9, 1, + 248, 246, 4, 105, 185, 248, 233, 23, 75, 58, 9, 1, 248, 246, 4, 223, 93, + 2, 196, 13, 60, 9, 1, 248, 246, 4, 2, 196, 12, 9, 1, 182, 4, 105, 185, + 58, 9, 1, 182, 4, 115, 185, 209, 58, 196, 66, 60, 9, 1, 238, 4, 4, 105, + 185, 195, 85, 248, 233, 23, 2, 199, 219, 9, 1, 238, 4, 4, 223, 93, 2, + 196, 13, 60, 9, 1, 207, 72, 4, 106, 9, 1, 205, 47, 4, 232, 128, 185, 58, + 9, 1, 251, 231, 4, 105, 185, 58, 9, 1, 251, 231, 4, 115, 185, 209, 58, + 235, 119, 58, 9, 1, 251, 231, 4, 105, 185, 195, 85, 58, 9, 1, 233, 47, 4, + 105, 185, 60, 9, 1, 233, 47, 4, 115, 185, 209, 58, 196, 66, 60, 9, 1, + 222, 5, 4, 75, 58, 9, 1, 222, 5, 4, 115, 185, 58, 9, 1, 222, 5, 4, 115, + 185, 209, 58, 196, 66, 60, 9, 1, 92, 4, 75, 58, 9, 1, 92, 4, 75, 60, 9, + 1, 213, 25, 4, 105, 185, 60, 9, 1, 213, 25, 4, 2, 199, 219, 9, 1, 213, + 25, 4, 2, 196, 12, 9, 1, 220, 36, 4, 164, 9, 1, 207, 72, 4, 105, 185, + 195, 85, 58, 9, 1, 207, 72, 4, 230, 58, 58, 9, 1, 205, 47, 4, 105, 185, + 195, 85, 58, 9, 1, 182, 4, 2, 9, 1, 199, 220, 60, 9, 1, 182, 4, 2, 9, 1, + 199, 220, 23, 105, 236, 138, 9, 1, 205, 47, 4, 2, 9, 1, 199, 220, 23, + 105, 236, 138, 9, 1, 207, 72, 4, 2, 9, 1, 199, 220, 23, 105, 236, 138, 9, + 1, 182, 4, 2, 9, 1, 199, 220, 58, 9, 1, 131, 4, 233, 205, 251, 28, 17, + 105, 58, 9, 1, 131, 4, 233, 205, 251, 28, 17, 115, 58, 9, 1, 233, 74, 99, + 4, 233, 205, 251, 28, 17, 105, 58, 9, 1, 233, 74, 99, 4, 233, 205, 251, + 28, 17, 115, 58, 9, 1, 233, 74, 99, 4, 233, 205, 251, 28, 17, 232, 128, + 60, 9, 1, 193, 134, 4, 233, 205, 251, 28, 17, 105, 58, 9, 1, 193, 134, 4, + 233, 205, 251, 28, 17, 115, 58, 9, 1, 99, 249, 81, 4, 233, 205, 251, 28, + 17, 105, 58, 9, 1, 99, 249, 81, 4, 233, 205, 251, 28, 17, 115, 58, 9, 1, + 182, 4, 233, 205, 251, 28, 17, 232, 128, 60, 9, 1, 205, 47, 4, 233, 205, + 251, 28, 17, 232, 128, 58, 9, 1, 205, 47, 4, 223, 93, 196, 12, 9, 1, 222, + 107, 4, 105, 185, 58, 199, 46, 1, 230, 91, 199, 46, 1, 203, 119, 199, 46, + 1, 213, 23, 199, 46, 1, 207, 178, 199, 46, 1, 249, 151, 199, 46, 1, 219, + 156, 199, 46, 1, 222, 122, 199, 46, 1, 251, 179, 199, 46, 1, 195, 186, + 199, 46, 1, 216, 207, 199, 46, 1, 233, 107, 199, 46, 1, 237, 66, 199, 46, + 1, 199, 48, 199, 46, 1, 220, 122, 199, 46, 1, 231, 236, 199, 46, 1, 231, + 6, 199, 46, 1, 205, 45, 199, 46, 1, 237, 207, 199, 46, 1, 191, 94, 199, + 46, 1, 199, 161, 199, 46, 1, 192, 140, 199, 46, 1, 210, 77, 199, 46, 1, + 223, 15, 199, 46, 1, 243, 130, 199, 46, 1, 197, 131, 199, 46, 1, 229, + 176, 199, 46, 1, 221, 214, 199, 46, 1, 199, 47, 199, 46, 1, 191, 121, + 199, 46, 1, 203, 108, 199, 46, 1, 205, 196, 199, 46, 1, 238, 30, 199, 46, + 1, 159, 199, 46, 1, 191, 7, 199, 46, 1, 251, 227, 199, 46, 1, 231, 85, + 199, 46, 1, 208, 93, 199, 46, 1, 193, 178, 199, 46, 252, 70, 199, 46, + 252, 171, 199, 46, 228, 29, 199, 46, 234, 187, 199, 46, 196, 161, 199, + 46, 211, 86, 199, 46, 234, 198, 199, 46, 233, 195, 199, 46, 211, 171, + 199, 46, 211, 181, 199, 46, 200, 206, 199, 46, 1, 214, 250, 213, 107, 17, + 191, 77, 213, 107, 17, 107, 213, 107, 17, 109, 213, 107, 17, 138, 213, + 107, 17, 134, 213, 107, 17, 149, 213, 107, 17, 169, 213, 107, 17, 175, + 213, 107, 17, 171, 213, 107, 17, 178, 213, 107, 1, 65, 213, 107, 1, 234, + 188, 213, 107, 1, 68, 213, 107, 1, 71, 213, 107, 1, 66, 213, 107, 1, 211, + 87, 213, 107, 1, 74, 213, 107, 1, 238, 18, 213, 107, 1, 215, 61, 213, + 107, 1, 249, 153, 213, 107, 1, 168, 213, 107, 1, 190, 190, 213, 107, 1, + 223, 32, 213, 107, 1, 247, 1, 213, 107, 1, 238, 32, 213, 107, 1, 165, + 213, 107, 1, 206, 109, 213, 107, 1, 188, 213, 107, 1, 231, 182, 213, 107, + 1, 233, 109, 213, 107, 1, 155, 213, 107, 1, 173, 213, 107, 1, 215, 7, + 193, 37, 213, 107, 1, 174, 213, 107, 1, 212, 101, 213, 107, 1, 180, 213, + 107, 1, 140, 213, 107, 1, 193, 190, 213, 107, 1, 170, 213, 107, 1, 212, + 102, 193, 37, 213, 107, 1, 222, 193, 223, 32, 213, 107, 1, 222, 193, 247, + 1, 213, 107, 1, 222, 193, 165, 213, 107, 33, 203, 40, 137, 198, 79, 213, + 107, 33, 203, 40, 130, 198, 79, 213, 107, 33, 203, 40, 206, 180, 198, 79, + 213, 107, 33, 179, 237, 86, 198, 79, 213, 107, 33, 179, 137, 198, 79, + 213, 107, 33, 179, 130, 198, 79, 213, 107, 33, 179, 206, 180, 198, 79, + 213, 107, 33, 214, 213, 77, 213, 107, 33, 55, 75, 58, 213, 107, 137, 163, + 251, 49, 213, 107, 130, 163, 251, 49, 213, 107, 16, 211, 88, 237, 101, + 213, 107, 16, 231, 181, 213, 107, 242, 74, 213, 107, 233, 216, 77, 213, + 107, 220, 94, 213, 107, 237, 233, 213, 107, 236, 142, 56, 213, 107, 199, + 195, 56, 205, 151, 1, 251, 204, 205, 151, 1, 248, 148, 205, 151, 1, 231, + 216, 205, 151, 1, 238, 2, 205, 151, 1, 223, 44, 205, 151, 1, 249, 151, + 205, 151, 1, 191, 80, 205, 151, 1, 223, 53, 205, 151, 1, 198, 125, 205, + 151, 1, 191, 189, 205, 151, 1, 222, 123, 205, 151, 1, 220, 118, 205, 151, + 1, 216, 46, 205, 151, 1, 212, 130, 205, 151, 1, 202, 171, 205, 151, 1, + 223, 162, 205, 151, 1, 233, 23, 205, 151, 1, 197, 166, 205, 151, 1, 208, + 10, 205, 151, 1, 206, 181, 205, 151, 1, 203, 138, 205, 151, 1, 199, 243, + 205, 151, 87, 223, 162, 205, 151, 87, 223, 161, 205, 151, 87, 211, 165, + 205, 151, 87, 238, 16, 205, 151, 52, 1, 234, 52, 191, 189, 205, 151, 87, + 234, 52, 191, 189, 205, 151, 18, 3, 179, 71, 205, 151, 18, 3, 71, 205, + 151, 18, 3, 210, 253, 252, 206, 205, 151, 18, 3, 179, 252, 206, 205, 151, + 18, 3, 252, 206, 205, 151, 18, 3, 210, 253, 65, 205, 151, 18, 3, 179, 65, + 205, 151, 18, 3, 65, 205, 151, 52, 1, 203, 40, 65, 205, 151, 18, 3, 203, + 40, 65, 205, 151, 18, 3, 179, 66, 205, 151, 18, 3, 66, 205, 151, 52, 1, + 68, 205, 151, 18, 3, 179, 68, 205, 151, 18, 3, 68, 205, 151, 18, 3, 74, + 205, 151, 18, 3, 200, 206, 205, 151, 87, 214, 93, 205, 151, 208, 152, + 214, 93, 205, 151, 208, 152, 251, 255, 205, 151, 208, 152, 251, 121, 205, + 151, 208, 152, 249, 57, 205, 151, 208, 152, 250, 174, 205, 151, 208, 152, + 203, 57, 205, 151, 252, 68, 77, 205, 151, 208, 152, 216, 197, 208, 48, + 205, 151, 208, 152, 191, 16, 205, 151, 208, 152, 208, 48, 205, 151, 208, + 152, 191, 119, 205, 151, 208, 152, 197, 54, 205, 151, 208, 152, 250, 255, + 205, 151, 208, 152, 202, 33, 217, 37, 205, 151, 208, 152, 251, 97, 217, + 86, 1, 230, 65, 217, 86, 1, 252, 155, 217, 86, 1, 251, 253, 217, 86, 1, + 252, 42, 217, 86, 1, 251, 245, 217, 86, 1, 196, 36, 217, 86, 1, 250, 123, + 217, 86, 1, 223, 53, 217, 86, 1, 250, 171, 217, 86, 1, 251, 211, 217, 86, + 1, 251, 216, 217, 86, 1, 251, 207, 217, 86, 1, 251, 149, 217, 86, 1, 251, + 132, 217, 86, 1, 250, 219, 217, 86, 1, 223, 162, 217, 86, 1, 251, 65, + 217, 86, 1, 250, 184, 217, 86, 1, 251, 37, 217, 86, 1, 251, 33, 217, 86, + 1, 250, 209, 217, 86, 1, 250, 182, 217, 86, 1, 235, 62, 217, 86, 1, 222, + 114, 217, 86, 1, 251, 230, 217, 86, 252, 3, 77, 217, 86, 195, 22, 77, + 217, 86, 231, 153, 77, 217, 86, 208, 151, 200, 63, 1, 142, 214, 68, 200, + 63, 1, 142, 223, 32, 200, 63, 1, 142, 212, 101, 200, 63, 1, 142, 197, + 132, 200, 63, 1, 142, 213, 79, 200, 63, 1, 142, 213, 61, 200, 63, 1, 142, + 248, 203, 200, 63, 1, 142, 165, 200, 63, 1, 142, 219, 73, 200, 63, 1, + 142, 219, 62, 200, 63, 1, 142, 201, 175, 9, 1, 131, 4, 250, 170, 233, 70, + 9, 1, 131, 4, 250, 170, 198, 54, 50, 233, 70, 9, 1, 131, 4, 50, 82, 106, + 9, 1, 131, 4, 45, 82, 106, 9, 1, 131, 4, 250, 170, 222, 52, 9, 1, 131, 4, + 250, 170, 248, 77, 50, 222, 52, 9, 1, 131, 4, 250, 170, 206, 115, 75, 58, + 9, 1, 131, 4, 250, 170, 50, 206, 115, 236, 140, 9, 1, 131, 4, 250, 170, + 45, 206, 115, 236, 140, 9, 1, 131, 4, 250, 170, 206, 115, 75, 60, 9, 1, + 131, 4, 75, 58, 9, 1, 131, 4, 250, 170, 198, 54, 50, 233, 71, 23, 75, 58, + 9, 1, 131, 4, 50, 82, 201, 28, 23, 75, 58, 9, 1, 131, 4, 250, 170, 248, + 77, 50, 222, 53, 23, 75, 58, 9, 1, 131, 4, 250, 170, 198, 54, 50, 233, + 71, 23, 45, 206, 188, 9, 1, 131, 4, 50, 82, 201, 28, 23, 45, 206, 188, 9, + 1, 131, 4, 250, 170, 248, 77, 50, 222, 53, 23, 45, 206, 188, 9, 1, 131, + 4, 250, 170, 50, 230, 57, 9, 1, 131, 4, 250, 170, 45, 230, 57, 9, 199, + 169, 4, 210, 251, 230, 57, 9, 199, 169, 4, 210, 251, 193, 133, 9, 199, + 169, 4, 105, 185, 60, 9, 1, 199, 4, 192, 75, 9, 249, 72, 206, 115, 236, + 140, 9, 207, 147, 206, 115, 236, 140, 9, 1, 213, 25, 4, 223, 93, 2, 196, + 12, 9, 1, 182, 4, 223, 93, 2, 196, 13, 60, 9, 1, 199, 220, 4, 75, 60, 9, + 1, 199, 220, 4, 115, 185, 60, 9, 1, 222, 5, 4, 105, 185, 195, 85, 60, 9, + 81, 199, 215, 9, 209, 8, 87, 58, 9, 209, 182, 87, 58, 9, 2, 137, 193, 23, + 251, 206, 9, 2, 130, 193, 23, 223, 61, 9, 2, 130, 193, 23, 223, 179, 9, + 2, 130, 193, 23, 199, 173, 9, 217, 142, 193, 179, 9, 200, 182, 131, 215, + 234, 9, 235, 128, 217, 141, 9, 132, 217, 142, 139, 217, 141, 9, 1, 248, + 246, 4, 2, 196, 13, 60, 9, 1, 248, 246, 4, 230, 58, 58, 9, 1, 223, 7, 4, + 105, 185, 58, 9, 1, 199, 220, 4, 105, 185, 58, 9, 1, 233, 47, 4, 75, 248, + 233, 23, 115, 185, 58, 9, 1, 208, 90, 4, 75, 60, 9, 1, 220, 36, 4, 55, + 164, 9, 1, 92, 4, 115, 185, 58, 9, 1, 99, 4, 105, 185, 248, 233, 23, 230, + 58, 58, 9, 1, 99, 4, 105, 185, 248, 233, 23, 75, 58, 9, 1, 207, 72, 4, + 219, 4, 9, 1, 193, 134, 4, 75, 193, 52, 9, 1, 206, 142, 192, 75, 9, 1, + 130, 251, 192, 9, 1, 238, 4, 4, 115, 185, 60, 9, 1, 205, 193, 4, 115, + 185, 60, 9, 1, 231, 228, 4, 223, 93, 106, 9, 1, 201, 53, 193, 133, 9, 1, + 191, 114, 4, 223, 93, 196, 13, 58, 9, 1, 251, 231, 4, 115, 185, 60, 9, 1, + 222, 107, 4, 75, 60, 9, 1, 208, 90, 4, 75, 248, 233, 23, 213, 44, 185, + 58, 9, 1, 248, 246, 4, 2, 92, 58, 9, 1, 210, 42, 4, 2, 92, 58, 9, 1, 199, + 115, 4, 2, 199, 115, 58, 9, 1, 207, 72, 4, 2, 213, 25, 58, 9, 1, 99, 4, + 105, 185, 248, 233, 23, 2, 213, 25, 58, 9, 1, 252, 0, 233, 46, 9, 1, 252, + 0, 208, 89, 9, 1, 252, 0, 213, 24, 9, 1, 210, 42, 4, 2, 196, 12, 9, 1, + 199, 115, 4, 2, 196, 12, 9, 1, 197, 125, 4, 2, 196, 12, 9, 1, 199, 150, + 4, 2, 196, 12, 9, 1, 222, 5, 4, 2, 196, 12, 9, 1, 231, 87, 4, 115, 185, + 58, 9, 1, 252, 0, 208, 90, 4, 115, 185, 58, 9, 1, 223, 7, 4, 115, 185, + 58, 9, 1, 223, 7, 4, 115, 185, 60, 9, 1, 220, 36, 4, 2, 9, 1, 199, 220, + 58, 9, 1, 230, 224, 9, 2, 233, 74, 192, 75, 9, 2, 137, 233, 74, 192, 75, + 9, 2, 137, 99, 249, 81, 4, 105, 185, 60, 9, 2, 137, 193, 23, 205, 182, 9, + 2, 137, 191, 116, 9, 220, 13, 206, 115, 75, 58, 9, 220, 13, 206, 115, 75, + 60, 9, 200, 207, 60, 9, 220, 13, 243, 11, 60, 9, 220, 13, 206, 115, 75, + 223, 118, 243, 11, 60, 9, 2, 130, 193, 133, 9, 2, 137, 193, 23, 251, 30, + 9, 2, 137, 205, 192, 9, 2, 137, 251, 230, 9, 2, 137, 208, 89, 9, 2, 137, + 213, 25, 4, 222, 52, 9, 2, 130, 213, 25, 4, 222, 52, 9, 2, 137, 193, 23, + 250, 181, 9, 2, 137, 193, 23, 250, 218, 9, 2, 137, 193, 23, 251, 131, 9, + 2, 137, 193, 23, 205, 171, 9, 2, 137, 193, 23, 208, 52, 9, 2, 137, 193, + 23, 193, 157, 9, 2, 137, 232, 157, 217, 51, 9, 2, 137, 3, 205, 187, 9, + 236, 218, 234, 95, 79, 250, 130, 9, 153, 237, 246, 60, 9, 238, 171, 233, + 70, 9, 238, 171, 237, 245, 9, 238, 171, 222, 52, 9, 238, 171, 233, 68, 9, + 238, 171, 237, 243, 9, 238, 171, 222, 50, 9, 163, 91, 75, 58, 9, 163, + 105, 185, 58, 9, 163, 219, 5, 58, 9, 163, 91, 75, 60, 9, 163, 105, 185, + 60, 9, 163, 219, 5, 60, 9, 211, 77, 233, 68, 9, 211, 77, 237, 243, 9, + 211, 77, 222, 50, 9, 2, 137, 193, 133, 9, 233, 71, 4, 206, 188, 9, 233, + 71, 4, 75, 58, 9, 222, 53, 4, 75, 60, 9, 45, 250, 236, 58, 9, 50, 250, + 236, 58, 9, 45, 250, 236, 60, 9, 50, 250, 236, 60, 9, 55, 50, 250, 236, + 58, 9, 55, 50, 250, 236, 93, 4, 236, 140, 9, 50, 250, 236, 93, 4, 236, + 140, 9, 237, 246, 4, 236, 140, 9, 87, 202, 206, 213, 25, 231, 57, 100, 3, + 223, 93, 247, 119, 100, 3, 247, 119, 100, 3, 251, 71, 100, 3, 195, 35, + 100, 1, 203, 40, 65, 100, 1, 65, 100, 1, 252, 206, 100, 1, 68, 100, 1, + 223, 199, 100, 1, 66, 100, 1, 196, 30, 100, 1, 117, 146, 100, 1, 117, + 172, 100, 1, 247, 122, 71, 100, 1, 203, 40, 71, 100, 1, 71, 100, 1, 251, + 236, 100, 1, 247, 122, 74, 100, 1, 203, 40, 74, 100, 1, 74, 100, 1, 250, + 163, 100, 1, 155, 100, 1, 221, 215, 100, 1, 231, 240, 100, 1, 231, 91, + 100, 1, 214, 68, 100, 1, 247, 160, 100, 1, 247, 1, 100, 1, 223, 32, 100, + 1, 222, 252, 100, 1, 212, 101, 100, 1, 197, 132, 100, 1, 197, 120, 100, + 1, 237, 191, 100, 1, 237, 175, 100, 1, 213, 79, 100, 1, 190, 190, 100, 1, + 199, 49, 100, 1, 238, 32, 100, 1, 237, 68, 100, 1, 180, 100, 1, 213, 61, + 100, 1, 168, 100, 1, 209, 228, 100, 1, 249, 153, 100, 1, 248, 203, 100, + 1, 174, 100, 1, 170, 100, 1, 165, 100, 1, 206, 109, 100, 1, 173, 100, 1, + 219, 73, 100, 1, 219, 62, 100, 1, 195, 188, 100, 1, 203, 165, 100, 1, + 201, 175, 100, 1, 188, 100, 1, 140, 100, 18, 3, 211, 151, 100, 18, 3, + 211, 85, 100, 3, 212, 141, 100, 3, 250, 145, 100, 18, 3, 252, 206, 100, + 18, 3, 68, 100, 18, 3, 223, 199, 100, 18, 3, 66, 100, 18, 3, 196, 30, + 100, 18, 3, 117, 146, 100, 18, 3, 117, 206, 110, 100, 18, 3, 247, 122, + 71, 100, 18, 3, 203, 40, 71, 100, 18, 3, 71, 100, 18, 3, 251, 236, 100, + 18, 3, 247, 122, 74, 100, 18, 3, 203, 40, 74, 100, 18, 3, 74, 100, 18, 3, + 250, 163, 100, 3, 195, 40, 100, 18, 3, 208, 207, 71, 100, 18, 3, 250, + 140, 100, 211, 113, 100, 201, 38, 3, 196, 154, 100, 201, 38, 3, 251, 73, + 100, 230, 211, 252, 60, 100, 252, 47, 252, 60, 100, 18, 3, 247, 122, 179, + 71, 100, 18, 3, 196, 152, 100, 18, 3, 196, 29, 100, 1, 208, 96, 100, 1, + 221, 193, 100, 1, 231, 66, 100, 1, 191, 123, 100, 1, 237, 180, 100, 1, + 207, 6, 100, 1, 233, 109, 100, 1, 191, 175, 100, 1, 117, 206, 110, 100, + 1, 117, 219, 74, 100, 18, 3, 117, 172, 100, 18, 3, 117, 219, 74, 100, + 237, 238, 100, 55, 237, 238, 100, 17, 191, 77, 100, 17, 107, 100, 17, + 109, 100, 17, 138, 100, 17, 134, 100, 17, 149, 100, 17, 169, 100, 17, + 175, 100, 17, 171, 100, 17, 178, 100, 252, 68, 56, 100, 3, 137, 201, 246, + 236, 140, 100, 1, 247, 122, 65, 100, 1, 211, 151, 100, 1, 211, 85, 100, + 1, 250, 140, 100, 1, 196, 152, 100, 1, 196, 29, 100, 1, 217, 43, 237, + 191, 100, 1, 191, 71, 100, 1, 88, 170, 100, 1, 231, 127, 100, 1, 222, + 230, 100, 1, 231, 11, 201, 63, 100, 1, 237, 181, 100, 1, 249, 53, 248, + 225, 251, 100, 248, 225, 3, 247, 119, 248, 225, 3, 251, 71, 248, 225, 3, + 195, 35, 248, 225, 1, 65, 248, 225, 1, 252, 206, 248, 225, 1, 68, 248, + 225, 1, 223, 199, 248, 225, 1, 66, 248, 225, 1, 196, 30, 248, 225, 1, + 117, 146, 248, 225, 1, 117, 172, 248, 225, 1, 71, 248, 225, 1, 251, 236, + 248, 225, 1, 74, 248, 225, 1, 250, 163, 248, 225, 1, 155, 248, 225, 1, + 221, 215, 248, 225, 1, 231, 240, 248, 225, 1, 231, 91, 248, 225, 1, 214, + 68, 248, 225, 1, 247, 160, 248, 225, 1, 247, 1, 248, 225, 1, 223, 32, + 248, 225, 1, 222, 252, 248, 225, 1, 212, 101, 248, 225, 1, 197, 132, 248, + 225, 1, 197, 120, 248, 225, 1, 237, 191, 248, 225, 1, 237, 175, 248, 225, + 1, 213, 79, 248, 225, 1, 190, 190, 248, 225, 1, 199, 49, 248, 225, 1, + 238, 32, 248, 225, 1, 237, 68, 248, 225, 1, 180, 248, 225, 1, 168, 248, + 225, 1, 209, 228, 248, 225, 1, 249, 153, 248, 225, 1, 248, 203, 248, 225, + 1, 174, 248, 225, 1, 170, 248, 225, 1, 165, 248, 225, 1, 173, 248, 225, + 1, 203, 165, 248, 225, 1, 201, 175, 248, 225, 1, 188, 248, 225, 1, 140, + 248, 225, 3, 212, 141, 248, 225, 3, 250, 145, 248, 225, 18, 3, 252, 206, + 248, 225, 18, 3, 68, 248, 225, 18, 3, 223, 199, 248, 225, 18, 3, 66, 248, + 225, 18, 3, 196, 30, 248, 225, 18, 3, 117, 146, 248, 225, 18, 3, 117, + 206, 110, 248, 225, 18, 3, 71, 248, 225, 18, 3, 251, 236, 248, 225, 18, + 3, 74, 248, 225, 18, 3, 250, 163, 248, 225, 3, 195, 40, 248, 225, 1, 221, + 204, 190, 190, 248, 225, 250, 164, 219, 198, 77, 248, 225, 1, 206, 109, + 248, 225, 1, 207, 6, 248, 225, 1, 191, 175, 248, 225, 1, 117, 206, 110, + 248, 225, 1, 117, 219, 74, 248, 225, 18, 3, 117, 172, 248, 225, 18, 3, + 117, 219, 74, 248, 225, 17, 191, 77, 248, 225, 17, 107, 248, 225, 17, + 109, 248, 225, 17, 138, 248, 225, 17, 134, 248, 225, 17, 149, 248, 225, + 17, 169, 248, 225, 17, 175, 248, 225, 17, 171, 248, 225, 17, 178, 248, + 225, 1, 207, 186, 4, 82, 237, 38, 248, 225, 1, 207, 186, 4, 110, 237, 38, + 248, 225, 206, 36, 77, 248, 225, 206, 36, 56, 248, 225, 238, 170, 212, + 133, 107, 248, 225, 238, 170, 212, 133, 109, 248, 225, 238, 170, 212, + 133, 138, 248, 225, 238, 170, 212, 133, 134, 248, 225, 238, 170, 212, + 133, 91, 219, 181, 199, 39, 199, 34, 237, 99, 248, 225, 238, 170, 237, + 100, 202, 130, 248, 225, 223, 54, 248, 225, 231, 207, 77, 248, 225, 1, + 195, 150, 251, 71, 248, 225, 252, 68, 56, 248, 225, 205, 138, 77, 230, + 144, 3, 252, 41, 248, 167, 230, 144, 3, 248, 167, 230, 144, 3, 195, 35, + 230, 144, 1, 65, 230, 144, 1, 252, 206, 230, 144, 1, 68, 230, 144, 1, + 223, 199, 230, 144, 1, 66, 230, 144, 1, 196, 30, 230, 144, 1, 234, 188, + 230, 144, 1, 251, 236, 230, 144, 1, 211, 87, 230, 144, 1, 250, 163, 230, + 144, 1, 155, 230, 144, 1, 221, 215, 230, 144, 1, 231, 240, 230, 144, 1, + 231, 91, 230, 144, 1, 214, 68, 230, 144, 1, 247, 160, 230, 144, 1, 247, + 1, 230, 144, 1, 223, 32, 230, 144, 1, 222, 252, 230, 144, 1, 212, 101, + 230, 144, 1, 197, 132, 230, 144, 1, 197, 120, 230, 144, 1, 237, 191, 230, + 144, 1, 237, 175, 230, 144, 1, 213, 79, 230, 144, 1, 190, 190, 230, 144, + 1, 199, 49, 230, 144, 1, 238, 32, 230, 144, 1, 237, 68, 230, 144, 1, 180, + 230, 144, 1, 168, 230, 144, 1, 209, 228, 230, 144, 1, 249, 153, 230, 144, + 1, 248, 203, 230, 144, 1, 174, 230, 144, 1, 170, 230, 144, 1, 165, 230, + 144, 1, 173, 230, 144, 1, 219, 73, 230, 144, 1, 195, 188, 230, 144, 1, + 203, 165, 230, 144, 1, 188, 230, 144, 1, 140, 230, 144, 3, 212, 141, 230, + 144, 18, 3, 252, 206, 230, 144, 18, 3, 68, 230, 144, 18, 3, 223, 199, + 230, 144, 18, 3, 66, 230, 144, 18, 3, 196, 30, 230, 144, 18, 3, 234, 188, + 230, 144, 18, 3, 251, 236, 230, 144, 18, 3, 211, 87, 230, 144, 18, 3, + 250, 163, 230, 144, 3, 195, 40, 230, 144, 3, 196, 157, 230, 144, 1, 221, + 193, 230, 144, 1, 231, 66, 230, 144, 1, 191, 123, 230, 144, 1, 206, 109, + 230, 144, 1, 233, 109, 230, 144, 17, 191, 77, 230, 144, 17, 107, 230, + 144, 17, 109, 230, 144, 17, 138, 230, 144, 17, 134, 230, 144, 17, 149, + 230, 144, 17, 169, 230, 144, 17, 175, 230, 144, 17, 171, 230, 144, 17, + 178, 230, 144, 198, 133, 230, 144, 252, 40, 230, 144, 223, 75, 230, 144, + 196, 58, 230, 144, 234, 148, 211, 92, 230, 144, 3, 192, 115, 230, 144, + 252, 68, 56, 230, 161, 3, 247, 119, 230, 161, 3, 251, 71, 230, 161, 3, + 195, 35, 230, 161, 1, 65, 230, 161, 1, 252, 206, 230, 161, 1, 68, 230, + 161, 1, 223, 199, 230, 161, 1, 66, 230, 161, 1, 196, 30, 230, 161, 1, + 117, 146, 230, 161, 1, 117, 172, 230, 161, 18, 247, 122, 71, 230, 161, 1, + 71, 230, 161, 1, 251, 236, 230, 161, 18, 247, 122, 74, 230, 161, 1, 74, + 230, 161, 1, 250, 163, 230, 161, 1, 155, 230, 161, 1, 221, 215, 230, 161, + 1, 231, 240, 230, 161, 1, 231, 91, 230, 161, 1, 214, 68, 230, 161, 1, + 247, 160, 230, 161, 1, 247, 1, 230, 161, 1, 223, 32, 230, 161, 1, 222, + 252, 230, 161, 1, 212, 101, 230, 161, 1, 197, 132, 230, 161, 1, 197, 120, + 230, 161, 1, 237, 191, 230, 161, 1, 237, 175, 230, 161, 1, 213, 79, 230, + 161, 1, 190, 190, 230, 161, 1, 199, 49, 230, 161, 1, 238, 32, 230, 161, + 1, 237, 68, 230, 161, 1, 180, 230, 161, 1, 168, 230, 161, 1, 209, 228, + 230, 161, 1, 249, 153, 230, 161, 1, 248, 203, 230, 161, 1, 174, 230, 161, + 1, 170, 230, 161, 1, 165, 230, 161, 1, 173, 230, 161, 1, 219, 73, 230, + 161, 1, 195, 188, 230, 161, 1, 203, 165, 230, 161, 1, 201, 175, 230, 161, + 1, 188, 230, 161, 1, 140, 230, 161, 3, 212, 141, 230, 161, 3, 250, 145, + 230, 161, 18, 3, 252, 206, 230, 161, 18, 3, 68, 230, 161, 18, 3, 223, + 199, 230, 161, 18, 3, 66, 230, 161, 18, 3, 196, 30, 230, 161, 18, 3, 117, + 146, 230, 161, 18, 3, 117, 206, 110, 230, 161, 18, 3, 247, 122, 71, 230, + 161, 18, 3, 71, 230, 161, 18, 3, 251, 236, 230, 161, 18, 3, 247, 122, 74, + 230, 161, 18, 3, 74, 230, 161, 18, 3, 250, 163, 230, 161, 3, 195, 40, + 230, 161, 211, 113, 230, 161, 1, 117, 206, 110, 230, 161, 1, 117, 219, + 74, 230, 161, 18, 3, 117, 172, 230, 161, 18, 3, 117, 219, 74, 230, 161, + 17, 191, 77, 230, 161, 17, 107, 230, 161, 17, 109, 230, 161, 17, 138, + 230, 161, 17, 134, 230, 161, 17, 149, 230, 161, 17, 169, 230, 161, 17, + 175, 230, 161, 17, 171, 230, 161, 17, 178, 230, 161, 252, 68, 56, 230, + 161, 206, 36, 56, 230, 161, 1, 191, 71, 230, 161, 3, 200, 206, 230, 161, + 3, 203, 155, 230, 161, 3, 217, 139, 230, 161, 3, 198, 224, 212, 142, 58, + 230, 161, 3, 243, 11, 212, 142, 58, 230, 161, 3, 197, 15, 212, 142, 58, + 211, 45, 3, 247, 119, 211, 45, 3, 251, 71, 211, 45, 3, 195, 35, 211, 45, + 1, 65, 211, 45, 1, 252, 206, 211, 45, 1, 68, 211, 45, 1, 223, 199, 211, + 45, 1, 66, 211, 45, 1, 196, 30, 211, 45, 1, 117, 146, 211, 45, 1, 117, + 172, 211, 45, 1, 71, 211, 45, 1, 251, 236, 211, 45, 1, 74, 211, 45, 1, + 250, 163, 211, 45, 1, 155, 211, 45, 1, 221, 215, 211, 45, 1, 231, 240, + 211, 45, 1, 231, 91, 211, 45, 1, 214, 68, 211, 45, 1, 247, 160, 211, 45, + 1, 247, 1, 211, 45, 1, 223, 32, 211, 45, 1, 222, 252, 211, 45, 1, 212, + 101, 211, 45, 1, 197, 132, 211, 45, 1, 197, 120, 211, 45, 1, 237, 191, + 211, 45, 1, 237, 175, 211, 45, 1, 213, 79, 211, 45, 1, 190, 190, 211, 45, + 1, 199, 49, 211, 45, 1, 238, 32, 211, 45, 1, 237, 68, 211, 45, 1, 180, + 211, 45, 1, 168, 211, 45, 1, 209, 228, 211, 45, 1, 249, 153, 211, 45, 1, + 248, 203, 211, 45, 1, 174, 211, 45, 1, 170, 211, 45, 1, 165, 211, 45, 1, + 173, 211, 45, 1, 219, 73, 211, 45, 1, 195, 188, 211, 45, 1, 203, 165, + 211, 45, 1, 201, 175, 211, 45, 1, 188, 211, 45, 1, 140, 211, 45, 3, 212, + 141, 211, 45, 3, 250, 145, 211, 45, 18, 3, 252, 206, 211, 45, 18, 3, 68, + 211, 45, 18, 3, 223, 199, 211, 45, 18, 3, 66, 211, 45, 18, 3, 196, 30, + 211, 45, 18, 3, 117, 146, 211, 45, 18, 3, 117, 206, 110, 211, 45, 18, 3, + 71, 211, 45, 18, 3, 251, 236, 211, 45, 18, 3, 74, 211, 45, 18, 3, 250, + 163, 211, 45, 3, 195, 40, 211, 45, 3, 210, 254, 211, 45, 251, 237, 219, + 198, 77, 211, 45, 250, 164, 219, 198, 77, 211, 45, 1, 206, 109, 211, 45, + 1, 207, 6, 211, 45, 1, 191, 175, 211, 45, 1, 117, 206, 110, 211, 45, 1, + 117, 219, 74, 211, 45, 18, 3, 117, 172, 211, 45, 18, 3, 117, 219, 74, + 211, 45, 17, 191, 77, 211, 45, 17, 107, 211, 45, 17, 109, 211, 45, 17, + 138, 211, 45, 17, 134, 211, 45, 17, 149, 211, 45, 17, 169, 211, 45, 17, + 175, 211, 45, 17, 171, 211, 45, 17, 178, 211, 45, 223, 54, 211, 45, 1, + 193, 190, 211, 45, 232, 118, 91, 208, 22, 211, 45, 232, 118, 91, 230, 70, + 211, 45, 232, 118, 115, 208, 20, 211, 45, 232, 118, 91, 202, 128, 211, + 45, 232, 118, 91, 234, 159, 211, 45, 232, 118, 115, 202, 125, 44, 3, 251, + 71, 44, 3, 195, 35, 44, 1, 65, 44, 1, 252, 206, 44, 1, 68, 44, 1, 223, + 199, 44, 1, 66, 44, 1, 196, 30, 44, 1, 71, 44, 1, 234, 188, 44, 1, 251, + 236, 44, 1, 74, 44, 1, 211, 87, 44, 1, 250, 163, 44, 1, 155, 44, 1, 214, + 68, 44, 1, 247, 160, 44, 1, 223, 32, 44, 1, 212, 101, 44, 1, 197, 132, + 44, 1, 213, 79, 44, 1, 190, 190, 44, 1, 180, 44, 1, 213, 61, 44, 1, 168, + 44, 1, 174, 44, 1, 170, 44, 1, 165, 44, 1, 206, 109, 44, 1, 173, 44, 1, + 219, 73, 44, 1, 219, 62, 44, 1, 195, 188, 44, 1, 203, 165, 44, 1, 201, + 175, 44, 1, 188, 44, 1, 140, 44, 18, 3, 252, 206, 44, 18, 3, 68, 44, 18, + 3, 223, 199, 44, 18, 3, 66, 44, 18, 3, 196, 30, 44, 18, 3, 71, 44, 18, 3, + 234, 188, 44, 18, 3, 251, 236, 44, 18, 3, 74, 44, 18, 3, 211, 87, 44, 18, + 3, 250, 163, 44, 3, 195, 40, 44, 211, 113, 44, 250, 164, 219, 198, 77, + 44, 17, 191, 77, 44, 17, 107, 44, 17, 109, 44, 17, 138, 44, 17, 134, 44, + 17, 149, 44, 17, 169, 44, 17, 175, 44, 17, 171, 44, 17, 178, 44, 31, 199, + 95, 44, 31, 91, 228, 140, 44, 31, 91, 189, 44, 237, 204, 56, 44, 215, + 214, 56, 44, 192, 78, 56, 44, 237, 142, 56, 44, 238, 230, 56, 44, 250, + 220, 93, 56, 44, 206, 36, 56, 44, 31, 56, 199, 99, 3, 33, 247, 120, 58, + 199, 99, 3, 247, 119, 199, 99, 3, 251, 71, 199, 99, 3, 195, 35, 199, 99, + 3, 33, 251, 72, 58, 199, 99, 1, 65, 199, 99, 1, 252, 206, 199, 99, 1, 68, + 199, 99, 1, 223, 199, 199, 99, 1, 66, 199, 99, 1, 196, 30, 199, 99, 1, + 117, 146, 199, 99, 1, 117, 172, 199, 99, 1, 71, 199, 99, 1, 234, 188, + 199, 99, 1, 251, 236, 199, 99, 1, 74, 199, 99, 1, 211, 87, 199, 99, 1, + 250, 163, 199, 99, 1, 155, 199, 99, 1, 221, 215, 199, 99, 1, 231, 240, + 199, 99, 1, 231, 91, 199, 99, 1, 214, 68, 199, 99, 1, 247, 160, 199, 99, + 1, 247, 1, 199, 99, 1, 223, 32, 199, 99, 1, 222, 252, 199, 99, 1, 212, + 101, 199, 99, 1, 197, 132, 199, 99, 1, 197, 120, 199, 99, 1, 237, 191, + 199, 99, 1, 237, 175, 199, 99, 1, 213, 79, 199, 99, 1, 190, 190, 199, 99, + 1, 199, 49, 199, 99, 1, 238, 32, 199, 99, 1, 237, 68, 199, 99, 1, 180, + 199, 99, 1, 168, 199, 99, 1, 209, 228, 199, 99, 1, 249, 153, 199, 99, 1, + 248, 203, 199, 99, 1, 174, 199, 99, 1, 170, 199, 99, 1, 165, 199, 99, 1, + 206, 109, 199, 99, 1, 173, 199, 99, 1, 219, 73, 199, 99, 1, 219, 62, 199, + 99, 1, 195, 188, 199, 99, 1, 203, 165, 199, 99, 1, 201, 175, 199, 99, 1, + 188, 199, 99, 1, 140, 199, 99, 3, 212, 141, 199, 99, 3, 250, 145, 199, + 99, 18, 3, 252, 206, 199, 99, 18, 3, 68, 199, 99, 18, 3, 223, 199, 199, + 99, 18, 3, 66, 199, 99, 18, 3, 196, 30, 199, 99, 18, 3, 117, 146, 199, + 99, 18, 3, 117, 206, 110, 199, 99, 18, 3, 71, 199, 99, 18, 3, 234, 188, + 199, 99, 18, 3, 251, 236, 199, 99, 18, 3, 74, 199, 99, 18, 3, 211, 87, + 199, 99, 18, 3, 250, 163, 199, 99, 3, 195, 40, 199, 99, 219, 198, 77, + 199, 99, 251, 237, 219, 198, 77, 199, 99, 1, 197, 168, 199, 99, 1, 235, + 35, 199, 99, 1, 206, 90, 199, 99, 1, 214, 232, 209, 46, 199, 99, 1, 117, + 206, 110, 199, 99, 1, 117, 219, 74, 199, 99, 18, 3, 117, 172, 199, 99, + 18, 3, 117, 219, 74, 199, 99, 17, 191, 77, 199, 99, 17, 107, 199, 99, 17, + 109, 199, 99, 17, 138, 199, 99, 17, 134, 199, 99, 17, 149, 199, 99, 17, + 169, 199, 99, 17, 175, 199, 99, 17, 171, 199, 99, 17, 178, 199, 99, 3, + 202, 210, 199, 99, 232, 118, 17, 191, 78, 40, 211, 155, 208, 253, 79, + 134, 199, 99, 232, 118, 17, 91, 40, 211, 155, 208, 253, 79, 134, 199, 99, + 232, 118, 17, 105, 40, 211, 155, 208, 253, 79, 134, 199, 99, 232, 118, + 17, 115, 40, 211, 155, 208, 253, 79, 134, 199, 99, 232, 118, 17, 91, 40, + 233, 229, 208, 253, 79, 134, 199, 99, 232, 118, 17, 105, 40, 233, 229, + 208, 253, 79, 134, 199, 99, 232, 118, 17, 115, 40, 233, 229, 208, 253, + 79, 134, 199, 99, 3, 197, 48, 222, 81, 3, 201, 246, 247, 119, 222, 81, 3, + 247, 119, 222, 81, 3, 251, 71, 222, 81, 3, 195, 35, 222, 81, 3, 202, 210, + 222, 81, 1, 65, 222, 81, 1, 252, 206, 222, 81, 1, 68, 222, 81, 1, 223, + 199, 222, 81, 1, 66, 222, 81, 1, 196, 30, 222, 81, 1, 117, 146, 222, 81, + 1, 117, 172, 222, 81, 1, 71, 222, 81, 1, 234, 188, 222, 81, 1, 251, 236, + 222, 81, 1, 74, 222, 81, 1, 211, 87, 222, 81, 1, 250, 163, 222, 81, 1, + 155, 222, 81, 1, 221, 215, 222, 81, 1, 231, 240, 222, 81, 1, 231, 91, + 222, 81, 1, 214, 68, 222, 81, 1, 247, 160, 222, 81, 1, 247, 1, 222, 81, + 1, 223, 32, 222, 81, 1, 222, 252, 222, 81, 1, 212, 101, 222, 81, 1, 197, + 132, 222, 81, 1, 197, 120, 222, 81, 1, 237, 191, 222, 81, 1, 237, 175, + 222, 81, 1, 213, 79, 222, 81, 1, 190, 190, 222, 81, 1, 199, 49, 222, 81, + 1, 238, 32, 222, 81, 1, 237, 68, 222, 81, 1, 180, 222, 81, 1, 168, 222, + 81, 1, 209, 228, 222, 81, 1, 249, 153, 222, 81, 1, 248, 203, 222, 81, 1, + 174, 222, 81, 1, 170, 222, 81, 1, 165, 222, 81, 1, 206, 109, 222, 81, 1, + 173, 222, 81, 1, 219, 73, 222, 81, 1, 195, 188, 222, 81, 1, 203, 165, + 222, 81, 1, 201, 175, 222, 81, 1, 188, 222, 81, 1, 140, 222, 81, 3, 212, + 141, 222, 81, 3, 250, 145, 222, 81, 18, 3, 252, 206, 222, 81, 18, 3, 68, + 222, 81, 18, 3, 223, 199, 222, 81, 18, 3, 66, 222, 81, 18, 3, 196, 30, + 222, 81, 18, 3, 117, 146, 222, 81, 18, 3, 117, 206, 110, 222, 81, 18, 3, + 71, 222, 81, 18, 3, 234, 188, 222, 81, 18, 3, 251, 236, 222, 81, 18, 3, + 74, 222, 81, 18, 3, 211, 87, 222, 81, 18, 3, 250, 163, 222, 81, 3, 195, + 40, 222, 81, 219, 198, 77, 222, 81, 251, 237, 219, 198, 77, 222, 81, 1, + 214, 232, 209, 46, 222, 81, 1, 233, 109, 222, 81, 1, 117, 206, 110, 222, + 81, 1, 117, 219, 74, 222, 81, 18, 3, 117, 172, 222, 81, 18, 3, 117, 219, + 74, 222, 81, 17, 191, 77, 222, 81, 17, 107, 222, 81, 17, 109, 222, 81, + 17, 138, 222, 81, 17, 134, 222, 81, 17, 149, 222, 81, 17, 169, 222, 81, + 17, 175, 222, 81, 17, 171, 222, 81, 17, 178, 222, 81, 3, 222, 237, 222, + 81, 3, 196, 75, 222, 81, 3, 33, 251, 72, 93, 183, 142, 3, 33, 251, 72, + 58, 142, 3, 247, 119, 142, 3, 251, 71, 142, 3, 195, 35, 142, 1, 195, 150, + 251, 71, 142, 1, 65, 142, 1, 252, 206, 142, 1, 68, 142, 1, 223, 199, 142, + 1, 66, 142, 1, 196, 30, 142, 1, 117, 146, 142, 1, 117, 172, 142, 1, 71, + 142, 1, 234, 188, 142, 1, 251, 236, 142, 1, 74, 142, 1, 211, 87, 142, 1, + 250, 163, 142, 1, 155, 142, 1, 221, 215, 142, 1, 231, 240, 142, 1, 231, + 91, 142, 1, 214, 68, 142, 1, 247, 160, 142, 1, 247, 1, 142, 1, 223, 32, + 142, 1, 222, 252, 142, 1, 212, 101, 142, 1, 197, 132, 142, 1, 197, 120, + 142, 1, 237, 191, 142, 1, 237, 175, 142, 1, 213, 79, 142, 1, 190, 190, + 142, 1, 199, 49, 142, 1, 238, 32, 142, 1, 237, 68, 142, 1, 180, 142, 1, + 213, 61, 142, 1, 168, 142, 1, 209, 228, 142, 1, 249, 153, 142, 1, 248, + 203, 142, 1, 174, 142, 1, 170, 142, 1, 165, 142, 1, 206, 109, 142, 1, + 173, 142, 1, 219, 73, 142, 1, 219, 62, 142, 1, 195, 188, 142, 1, 203, + 165, 142, 1, 201, 175, 142, 1, 188, 142, 1, 140, 142, 1, 197, 101, 142, + 3, 81, 249, 88, 195, 40, 142, 3, 243, 4, 195, 40, 142, 3, 250, 145, 142, + 18, 3, 252, 206, 142, 18, 3, 68, 142, 18, 3, 223, 199, 142, 18, 3, 66, + 142, 18, 3, 196, 30, 142, 18, 3, 117, 146, 142, 18, 3, 117, 206, 110, + 142, 18, 3, 71, 142, 18, 3, 234, 188, 142, 18, 3, 251, 236, 142, 18, 3, + 74, 142, 18, 3, 211, 87, 142, 18, 3, 250, 163, 142, 3, 195, 40, 142, 1, + 75, 207, 45, 142, 3, 210, 130, 142, 1, 243, 84, 218, 168, 142, 1, 243, + 84, 192, 159, 142, 1, 243, 84, 219, 63, 142, 250, 164, 219, 198, 77, 142, + 232, 118, 91, 211, 100, 142, 232, 118, 91, 232, 139, 142, 232, 118, 115, + 234, 155, 142, 232, 118, 91, 197, 35, 142, 232, 118, 91, 199, 86, 142, + 232, 118, 115, 197, 34, 142, 232, 118, 91, 233, 18, 142, 1, 251, 14, 223, + 199, 142, 1, 117, 206, 110, 142, 1, 117, 219, 74, 142, 18, 3, 117, 172, + 142, 18, 3, 117, 219, 74, 142, 17, 191, 77, 142, 17, 107, 142, 17, 109, + 142, 17, 138, 142, 17, 134, 142, 17, 149, 142, 17, 169, 142, 17, 175, + 142, 17, 171, 142, 17, 178, 142, 31, 199, 95, 142, 31, 91, 228, 140, 142, + 31, 91, 189, 142, 232, 118, 91, 208, 22, 142, 232, 118, 91, 230, 70, 142, + 232, 118, 115, 208, 20, 142, 232, 118, 91, 202, 128, 142, 232, 118, 91, + 234, 159, 142, 232, 118, 115, 202, 125, 142, 237, 209, 77, 142, 1, 243, + 84, 213, 80, 142, 1, 243, 84, 215, 61, 142, 1, 243, 84, 206, 110, 142, 1, + 243, 84, 172, 142, 1, 243, 84, 219, 74, 142, 1, 243, 84, 222, 152, 166, + 3, 247, 119, 166, 3, 251, 70, 166, 3, 195, 34, 166, 1, 250, 129, 166, 1, + 252, 159, 166, 1, 252, 5, 166, 1, 252, 20, 166, 1, 223, 43, 166, 1, 223, + 198, 166, 1, 196, 20, 166, 1, 196, 24, 166, 1, 223, 70, 166, 1, 223, 71, + 166, 1, 223, 182, 166, 1, 223, 184, 166, 1, 233, 196, 166, 1, 234, 183, + 166, 1, 251, 219, 166, 1, 210, 241, 166, 1, 211, 80, 166, 1, 250, 148, + 166, 1, 251, 163, 222, 27, 166, 1, 217, 119, 222, 27, 166, 1, 251, 163, + 231, 185, 166, 1, 217, 119, 231, 185, 166, 1, 222, 80, 214, 247, 166, 1, + 205, 132, 231, 185, 166, 1, 251, 163, 247, 68, 166, 1, 217, 119, 247, 68, + 166, 1, 251, 163, 223, 13, 166, 1, 217, 119, 223, 13, 166, 1, 199, 241, + 214, 247, 166, 1, 199, 241, 205, 131, 214, 248, 166, 1, 205, 132, 223, + 13, 166, 1, 251, 163, 197, 128, 166, 1, 217, 119, 197, 128, 166, 1, 251, + 163, 237, 182, 166, 1, 217, 119, 237, 182, 166, 1, 215, 92, 214, 197, + 166, 1, 205, 132, 237, 182, 166, 1, 251, 163, 199, 153, 166, 1, 217, 119, + 199, 153, 166, 1, 251, 163, 237, 202, 166, 1, 217, 119, 237, 202, 166, 1, + 237, 234, 214, 197, 166, 1, 205, 132, 237, 202, 166, 1, 251, 163, 210, + 71, 166, 1, 217, 119, 210, 71, 166, 1, 251, 163, 249, 55, 166, 1, 217, + 119, 249, 55, 166, 1, 217, 19, 166, 1, 251, 143, 249, 55, 166, 1, 192, + 85, 166, 1, 207, 121, 166, 1, 237, 234, 219, 247, 166, 1, 195, 156, 166, + 1, 199, 241, 205, 102, 166, 1, 215, 92, 205, 102, 166, 1, 237, 234, 205, + 102, 166, 1, 229, 251, 166, 1, 215, 92, 219, 247, 166, 1, 233, 61, 166, + 3, 251, 205, 166, 18, 3, 252, 15, 166, 18, 3, 221, 240, 252, 22, 166, 18, + 3, 237, 11, 252, 22, 166, 18, 3, 221, 240, 223, 67, 166, 18, 3, 237, 11, + 223, 67, 166, 18, 3, 221, 240, 210, 219, 166, 18, 3, 237, 11, 210, 219, + 166, 18, 3, 231, 229, 166, 18, 3, 221, 46, 166, 18, 3, 237, 11, 221, 46, + 166, 18, 3, 221, 48, 237, 120, 166, 18, 3, 221, 47, 230, 92, 252, 15, + 166, 18, 3, 221, 47, 230, 92, 237, 11, 252, 15, 166, 18, 3, 221, 47, 230, + 92, 231, 184, 166, 18, 3, 231, 184, 166, 219, 86, 17, 191, 77, 166, 219, + 86, 17, 107, 166, 219, 86, 17, 109, 166, 219, 86, 17, 138, 166, 219, 86, + 17, 134, 166, 219, 86, 17, 149, 166, 219, 86, 17, 169, 166, 219, 86, 17, + 175, 166, 219, 86, 17, 171, 166, 219, 86, 17, 178, 166, 18, 3, 237, 11, + 231, 229, 166, 18, 3, 237, 11, 231, 184, 166, 208, 152, 220, 209, 199, + 44, 246, 240, 221, 68, 222, 102, 199, 44, 246, 240, 221, 184, 221, 209, + 199, 44, 246, 240, 221, 184, 221, 174, 199, 44, 246, 240, 221, 184, 221, + 169, 199, 44, 246, 240, 221, 184, 221, 179, 199, 44, 246, 240, 221, 184, + 207, 143, 199, 44, 246, 240, 213, 250, 213, 237, 199, 44, 246, 240, 243, + 69, 246, 246, 199, 44, 246, 240, 243, 69, 243, 79, 199, 44, 246, 240, + 243, 69, 246, 245, 199, 44, 246, 240, 202, 47, 202, 46, 199, 44, 246, + 240, 243, 69, 243, 65, 199, 44, 246, 240, 192, 13, 192, 20, 199, 44, 246, + 240, 236, 175, 246, 254, 199, 44, 246, 240, 119, 210, 87, 199, 44, 246, + 240, 198, 242, 199, 38, 199, 44, 246, 240, 198, 242, 214, 222, 199, 44, + 246, 240, 198, 242, 209, 188, 199, 44, 246, 240, 213, 44, 214, 102, 199, + 44, 246, 240, 236, 175, 237, 121, 199, 44, 246, 240, 119, 199, 184, 199, + 44, 246, 240, 198, 242, 198, 207, 199, 44, 246, 240, 198, 242, 199, 45, + 199, 44, 246, 240, 198, 242, 198, 236, 199, 44, 246, 240, 213, 44, 212, + 178, 199, 44, 246, 240, 248, 112, 249, 118, 199, 44, 246, 240, 209, 74, + 209, 110, 199, 44, 246, 240, 209, 200, 209, 190, 199, 44, 246, 240, 232, + 176, 233, 109, 199, 44, 246, 240, 209, 200, 209, 221, 199, 44, 246, 240, + 232, 176, 233, 80, 199, 44, 246, 240, 209, 200, 205, 146, 199, 44, 246, + 240, 216, 13, 174, 199, 44, 246, 240, 192, 13, 192, 116, 199, 44, 246, + 240, 206, 163, 206, 61, 199, 44, 246, 240, 206, 68, 199, 44, 246, 240, + 219, 44, 219, 105, 199, 44, 246, 240, 218, 225, 199, 44, 246, 240, 193, + 49, 193, 175, 199, 44, 246, 240, 202, 47, 205, 167, 199, 44, 246, 240, + 202, 47, 206, 32, 199, 44, 246, 240, 202, 47, 200, 251, 199, 44, 246, + 240, 229, 24, 229, 122, 199, 44, 246, 240, 219, 44, 243, 47, 199, 44, + 246, 240, 187, 251, 122, 199, 44, 246, 240, 229, 24, 213, 34, 199, 44, + 246, 240, 210, 194, 199, 44, 246, 240, 205, 126, 65, 199, 44, 246, 240, + 217, 113, 230, 55, 199, 44, 246, 240, 205, 126, 252, 206, 199, 44, 246, + 240, 205, 126, 251, 149, 199, 44, 246, 240, 205, 126, 68, 199, 44, 246, + 240, 205, 126, 223, 199, 199, 44, 246, 240, 205, 126, 196, 152, 199, 44, + 246, 240, 205, 126, 196, 149, 199, 44, 246, 240, 205, 126, 66, 199, 44, + 246, 240, 205, 126, 196, 30, 199, 44, 246, 240, 209, 202, 199, 44, 238, + 170, 16, 249, 119, 199, 44, 246, 240, 205, 126, 71, 199, 44, 246, 240, + 205, 126, 252, 25, 199, 44, 246, 240, 205, 126, 74, 199, 44, 246, 240, + 205, 126, 251, 237, 217, 107, 199, 44, 246, 240, 205, 126, 251, 237, 217, + 108, 199, 44, 246, 240, 220, 39, 199, 44, 246, 240, 217, 104, 199, 44, + 246, 240, 217, 105, 199, 44, 246, 240, 217, 113, 234, 147, 199, 44, 246, + 240, 217, 113, 198, 241, 199, 44, 246, 240, 217, 113, 197, 244, 199, 44, + 246, 240, 217, 113, 243, 132, 199, 44, 246, 240, 199, 36, 199, 44, 246, + 240, 213, 183, 199, 44, 246, 240, 192, 110, 199, 44, 246, 240, 232, 164, + 199, 44, 17, 191, 77, 199, 44, 17, 107, 199, 44, 17, 109, 199, 44, 17, + 138, 199, 44, 17, 134, 199, 44, 17, 149, 199, 44, 17, 169, 199, 44, 17, + 175, 199, 44, 17, 171, 199, 44, 17, 178, 199, 44, 246, 240, 251, 117, + 199, 44, 246, 240, 221, 180, 220, 17, 1, 221, 67, 220, 17, 1, 221, 184, + 200, 195, 220, 17, 1, 221, 184, 199, 197, 220, 17, 1, 210, 187, 231, 91, + 220, 17, 1, 213, 249, 220, 17, 1, 242, 99, 220, 17, 1, 210, 187, 247, 1, + 220, 17, 1, 202, 47, 199, 197, 220, 17, 1, 210, 187, 222, 252, 220, 17, + 1, 212, 65, 220, 17, 1, 210, 187, 212, 101, 220, 17, 1, 210, 187, 197, + 132, 220, 17, 1, 210, 187, 197, 120, 220, 17, 1, 210, 187, 237, 191, 220, + 17, 1, 210, 187, 237, 175, 220, 17, 1, 210, 187, 213, 79, 220, 17, 1, + 236, 174, 220, 17, 1, 159, 220, 17, 1, 198, 242, 200, 195, 220, 17, 1, + 198, 242, 199, 197, 220, 17, 1, 210, 187, 237, 68, 220, 17, 1, 213, 43, + 220, 17, 1, 248, 111, 220, 17, 1, 209, 73, 220, 17, 1, 209, 200, 200, + 195, 220, 17, 1, 232, 176, 199, 197, 220, 17, 1, 209, 200, 199, 197, 220, + 17, 1, 232, 176, 200, 195, 220, 17, 1, 210, 187, 248, 203, 220, 17, 1, + 216, 12, 220, 17, 1, 192, 12, 220, 17, 1, 219, 44, 219, 105, 220, 17, 1, + 219, 44, 219, 2, 220, 17, 1, 193, 48, 220, 17, 1, 205, 134, 203, 165, + 220, 17, 1, 205, 134, 201, 175, 220, 17, 1, 202, 47, 200, 195, 220, 17, + 1, 229, 24, 200, 195, 220, 17, 1, 210, 187, 219, 73, 220, 17, 1, 74, 220, + 17, 1, 229, 24, 199, 197, 220, 17, 234, 120, 220, 17, 18, 3, 65, 220, 17, + 18, 3, 217, 113, 222, 87, 220, 17, 18, 3, 252, 206, 220, 17, 18, 3, 251, + 149, 220, 17, 18, 3, 68, 220, 17, 18, 3, 223, 199, 220, 17, 18, 3, 192, + 159, 220, 17, 18, 3, 191, 176, 220, 17, 18, 3, 66, 220, 17, 18, 3, 196, + 30, 220, 17, 3, 210, 187, 195, 40, 220, 17, 18, 3, 217, 113, 221, 44, + 220, 17, 204, 20, 3, 219, 43, 220, 17, 204, 20, 3, 212, 65, 220, 17, 18, + 3, 71, 220, 17, 18, 3, 234, 166, 220, 17, 18, 3, 74, 220, 17, 18, 3, 250, + 131, 220, 17, 18, 3, 251, 236, 220, 17, 221, 68, 173, 220, 17, 163, 217, + 113, 234, 147, 220, 17, 163, 217, 113, 198, 241, 220, 17, 163, 217, 113, + 198, 193, 220, 17, 163, 217, 113, 247, 77, 220, 17, 247, 125, 77, 220, + 17, 213, 192, 220, 17, 192, 110, 220, 17, 17, 191, 77, 220, 17, 17, 107, + 220, 17, 17, 109, 220, 17, 17, 138, 220, 17, 17, 134, 220, 17, 17, 149, + 220, 17, 17, 169, 220, 17, 17, 175, 220, 17, 17, 171, 220, 17, 17, 178, + 220, 17, 229, 24, 213, 43, 220, 17, 229, 24, 216, 12, 220, 17, 1, 221, + 185, 231, 3, 220, 17, 1, 221, 185, 212, 65, 86, 5, 211, 113, 86, 87, 230, + 181, 192, 25, 216, 118, 197, 178, 65, 86, 87, 230, 181, 192, 25, 216, + 118, 255, 207, 206, 167, 249, 19, 174, 86, 87, 230, 181, 192, 25, 216, + 118, 255, 207, 230, 181, 197, 153, 174, 86, 87, 89, 192, 25, 216, 118, + 216, 234, 174, 86, 87, 242, 215, 192, 25, 216, 118, 203, 172, 174, 86, + 87, 247, 97, 192, 25, 216, 118, 209, 189, 203, 158, 174, 86, 87, 192, 25, + 216, 118, 197, 153, 203, 158, 174, 86, 87, 205, 100, 203, 157, 86, 87, + 248, 13, 192, 25, 216, 117, 86, 87, 248, 141, 203, 50, 192, 25, 216, 117, + 86, 87, 223, 98, 197, 152, 86, 87, 237, 113, 197, 153, 248, 12, 86, 87, + 203, 157, 86, 87, 212, 70, 203, 157, 86, 87, 197, 153, 203, 157, 86, 87, + 212, 70, 197, 153, 203, 157, 86, 87, 206, 191, 243, 111, 201, 193, 203, + 157, 86, 87, 207, 10, 230, 222, 203, 157, 86, 87, 247, 97, 255, 211, 206, + 73, 216, 233, 179, 247, 128, 86, 87, 230, 181, 197, 152, 86, 219, 27, 3, + 246, 255, 206, 72, 86, 219, 27, 3, 219, 157, 206, 72, 86, 250, 188, 3, + 203, 168, 231, 168, 255, 212, 206, 72, 86, 250, 188, 3, 255, 209, 168, + 86, 250, 188, 3, 205, 69, 197, 147, 86, 3, 207, 115, 236, 189, 231, 167, + 86, 3, 207, 115, 236, 189, 231, 5, 86, 3, 207, 115, 236, 189, 230, 182, + 86, 3, 207, 115, 214, 243, 231, 167, 86, 3, 207, 115, 214, 243, 231, 5, + 86, 3, 207, 115, 236, 189, 207, 115, 214, 242, 86, 17, 191, 77, 86, 17, + 107, 86, 17, 109, 86, 17, 138, 86, 17, 134, 86, 17, 149, 86, 17, 169, 86, + 17, 175, 86, 17, 171, 86, 17, 178, 86, 17, 132, 107, 86, 17, 132, 109, + 86, 17, 132, 138, 86, 17, 132, 134, 86, 17, 132, 149, 86, 17, 132, 169, + 86, 17, 132, 175, 86, 17, 132, 171, 86, 17, 132, 178, 86, 17, 132, 191, + 77, 86, 87, 248, 15, 206, 72, 86, 87, 214, 59, 247, 195, 212, 82, 191, + 10, 86, 87, 247, 97, 255, 211, 206, 73, 247, 196, 216, 62, 247, 128, 86, + 87, 214, 59, 247, 195, 203, 169, 206, 72, 86, 87, 243, 128, 216, 117, 86, + 87, 197, 169, 255, 208, 86, 87, 230, 164, 206, 73, 230, 119, 86, 87, 230, + 164, 206, 73, 230, 125, 86, 87, 251, 123, 221, 202, 230, 119, 86, 87, + 251, 123, 221, 202, 230, 125, 86, 3, 192, 102, 197, 151, 86, 3, 217, 66, + 197, 151, 86, 1, 155, 86, 1, 221, 215, 86, 1, 231, 240, 86, 1, 231, 91, + 86, 1, 214, 68, 86, 1, 247, 160, 86, 1, 247, 1, 86, 1, 223, 32, 86, 1, + 212, 101, 86, 1, 197, 132, 86, 1, 197, 120, 86, 1, 237, 191, 86, 1, 237, + 175, 86, 1, 213, 79, 86, 1, 190, 190, 86, 1, 199, 49, 86, 1, 238, 32, 86, + 1, 237, 68, 86, 1, 180, 86, 1, 168, 86, 1, 209, 228, 86, 1, 249, 153, 86, + 1, 248, 203, 86, 1, 174, 86, 1, 197, 168, 86, 1, 197, 157, 86, 1, 235, + 35, 86, 1, 235, 29, 86, 1, 193, 190, 86, 1, 191, 71, 86, 1, 191, 123, 86, + 1, 255, 214, 86, 1, 170, 86, 1, 165, 86, 1, 173, 86, 1, 203, 165, 86, 1, + 201, 175, 86, 1, 188, 86, 1, 140, 86, 1, 65, 86, 1, 220, 246, 86, 1, 232, + 221, 165, 86, 1, 221, 101, 86, 1, 206, 109, 86, 18, 3, 252, 206, 86, 18, + 3, 68, 86, 18, 3, 223, 199, 86, 18, 3, 66, 86, 18, 3, 196, 30, 86, 18, 3, + 117, 146, 86, 18, 3, 117, 206, 110, 86, 18, 3, 117, 172, 86, 18, 3, 117, + 219, 74, 86, 18, 3, 71, 86, 18, 3, 234, 188, 86, 18, 3, 74, 86, 18, 3, + 211, 87, 86, 3, 206, 173, 201, 5, 214, 69, 206, 162, 86, 3, 206, 167, + 249, 18, 86, 18, 3, 207, 18, 68, 86, 18, 3, 207, 18, 223, 199, 86, 3, + 212, 82, 191, 11, 214, 251, 238, 32, 86, 3, 202, 61, 219, 240, 86, 87, + 230, 72, 86, 87, 210, 178, 86, 3, 219, 243, 206, 72, 86, 3, 192, 107, + 206, 72, 86, 3, 219, 244, 197, 169, 247, 128, 86, 3, 216, 236, 247, 128, + 86, 3, 230, 185, 247, 129, 207, 8, 86, 3, 230, 185, 216, 220, 207, 8, 86, + 3, 223, 93, 216, 236, 247, 128, 86, 200, 239, 3, 219, 244, 197, 169, 247, + 128, 86, 200, 239, 3, 216, 236, 247, 128, 86, 200, 239, 3, 223, 93, 216, + 236, 247, 128, 86, 200, 239, 1, 155, 86, 200, 239, 1, 221, 215, 86, 200, + 239, 1, 231, 240, 86, 200, 239, 1, 231, 91, 86, 200, 239, 1, 214, 68, 86, + 200, 239, 1, 247, 160, 86, 200, 239, 1, 247, 1, 86, 200, 239, 1, 223, 32, + 86, 200, 239, 1, 212, 101, 86, 200, 239, 1, 197, 132, 86, 200, 239, 1, + 197, 120, 86, 200, 239, 1, 237, 191, 86, 200, 239, 1, 237, 175, 86, 200, + 239, 1, 213, 79, 86, 200, 239, 1, 190, 190, 86, 200, 239, 1, 199, 49, 86, + 200, 239, 1, 238, 32, 86, 200, 239, 1, 237, 68, 86, 200, 239, 1, 180, 86, + 200, 239, 1, 168, 86, 200, 239, 1, 209, 228, 86, 200, 239, 1, 249, 153, + 86, 200, 239, 1, 248, 203, 86, 200, 239, 1, 174, 86, 200, 239, 1, 197, + 168, 86, 200, 239, 1, 197, 157, 86, 200, 239, 1, 235, 35, 86, 200, 239, + 1, 235, 29, 86, 200, 239, 1, 193, 190, 86, 200, 239, 1, 191, 71, 86, 200, + 239, 1, 191, 123, 86, 200, 239, 1, 255, 214, 86, 200, 239, 1, 170, 86, + 200, 239, 1, 165, 86, 200, 239, 1, 173, 86, 200, 239, 1, 203, 165, 86, + 200, 239, 1, 201, 175, 86, 200, 239, 1, 188, 86, 200, 239, 1, 140, 86, + 200, 239, 1, 65, 86, 200, 239, 1, 220, 246, 86, 200, 239, 1, 232, 221, + 193, 190, 86, 200, 239, 1, 232, 221, 170, 86, 200, 239, 1, 232, 221, 165, + 86, 220, 233, 206, 69, 221, 215, 86, 220, 233, 206, 69, 221, 216, 247, + 196, 216, 62, 247, 128, 86, 247, 112, 3, 88, 249, 7, 86, 247, 112, 3, + 156, 249, 7, 86, 247, 112, 3, 247, 116, 199, 135, 86, 247, 112, 3, 205, + 99, 255, 213, 86, 16, 235, 105, 248, 10, 86, 16, 207, 114, 206, 174, 86, + 16, 210, 206, 231, 166, 86, 16, 207, 114, 206, 175, 207, 10, 230, 221, + 86, 16, 209, 189, 168, 86, 16, 213, 21, 248, 10, 86, 16, 213, 21, 248, + 11, 212, 70, 255, 210, 86, 16, 213, 21, 248, 11, 230, 183, 255, 210, 86, + 16, 213, 21, 248, 11, 247, 196, 255, 210, 86, 3, 207, 115, 214, 243, 207, + 115, 236, 188, 86, 3, 207, 115, 214, 243, 230, 182, 86, 87, 248, 14, 203, + 50, 231, 54, 216, 118, 207, 9, 86, 87, 216, 14, 192, 25, 231, 54, 216, + 118, 207, 9, 86, 87, 212, 70, 197, 152, 86, 87, 89, 248, 44, 206, 164, + 192, 25, 216, 118, 216, 234, 174, 86, 87, 242, 215, 248, 44, 206, 164, + 192, 25, 216, 118, 203, 172, 174, 206, 207, 200, 155, 56, 219, 223, 200, + 155, 56, 206, 207, 200, 155, 3, 4, 236, 138, 219, 223, 200, 155, 3, 4, + 236, 138, 86, 87, 219, 235, 216, 237, 206, 72, 86, 87, 198, 18, 216, 237, + 206, 72, 80, 1, 155, 80, 1, 221, 215, 80, 1, 231, 240, 80, 1, 231, 91, + 80, 1, 214, 68, 80, 1, 247, 160, 80, 1, 247, 1, 80, 1, 223, 32, 80, 1, + 222, 252, 80, 1, 212, 101, 80, 1, 213, 45, 80, 1, 197, 132, 80, 1, 197, + 120, 80, 1, 237, 191, 80, 1, 237, 175, 80, 1, 213, 79, 80, 1, 190, 190, + 80, 1, 199, 49, 80, 1, 238, 32, 80, 1, 237, 68, 80, 1, 180, 80, 1, 168, + 80, 1, 209, 228, 80, 1, 249, 153, 80, 1, 248, 203, 80, 1, 174, 80, 1, + 170, 80, 1, 165, 80, 1, 173, 80, 1, 193, 190, 80, 1, 188, 80, 1, 140, 80, + 1, 219, 73, 80, 1, 65, 80, 1, 203, 139, 65, 80, 1, 68, 80, 1, 223, 199, + 80, 1, 66, 80, 1, 196, 30, 80, 1, 71, 80, 1, 215, 232, 71, 80, 1, 74, 80, + 1, 250, 163, 80, 18, 3, 199, 200, 252, 206, 80, 18, 3, 252, 206, 80, 18, + 3, 68, 80, 18, 3, 223, 199, 80, 18, 3, 66, 80, 18, 3, 196, 30, 80, 18, 3, + 71, 80, 18, 3, 251, 236, 80, 18, 3, 215, 232, 223, 199, 80, 18, 3, 215, + 232, 74, 80, 18, 3, 235, 15, 58, 80, 3, 251, 71, 80, 3, 75, 60, 80, 3, + 195, 35, 80, 3, 195, 40, 80, 3, 250, 214, 80, 120, 3, 216, 217, 170, 80, + 120, 3, 216, 217, 165, 80, 120, 3, 216, 217, 193, 190, 80, 120, 3, 216, + 217, 140, 80, 1, 230, 206, 188, 80, 17, 191, 77, 80, 17, 107, 80, 17, + 109, 80, 17, 138, 80, 17, 134, 80, 17, 149, 80, 17, 169, 80, 17, 175, 80, + 17, 171, 80, 17, 178, 80, 3, 219, 83, 205, 53, 80, 3, 205, 53, 80, 16, + 219, 36, 80, 16, 242, 67, 80, 16, 252, 1, 80, 16, 231, 146, 80, 1, 203, + 165, 80, 1, 201, 175, 80, 1, 117, 146, 80, 1, 117, 206, 110, 80, 1, 117, + 172, 80, 1, 117, 219, 74, 80, 18, 3, 117, 146, 80, 18, 3, 117, 206, 110, + 80, 18, 3, 117, 172, 80, 18, 3, 117, 219, 74, 80, 1, 215, 232, 214, 68, + 80, 1, 215, 232, 222, 252, 80, 1, 215, 232, 249, 53, 80, 1, 215, 232, + 249, 48, 80, 120, 3, 215, 232, 216, 217, 180, 80, 120, 3, 215, 232, 216, + 217, 174, 80, 120, 3, 215, 232, 216, 217, 173, 80, 1, 203, 171, 222, 62, + 203, 165, 80, 18, 3, 203, 171, 222, 62, 233, 242, 80, 163, 87, 203, 171, + 222, 62, 230, 5, 80, 163, 87, 203, 171, 222, 62, 222, 23, 209, 199, 80, + 1, 193, 102, 208, 116, 222, 62, 199, 49, 80, 1, 193, 102, 208, 116, 222, + 62, 208, 122, 80, 18, 3, 193, 102, 208, 116, 222, 62, 233, 242, 80, 18, + 3, 193, 102, 208, 116, 222, 62, 196, 152, 80, 3, 193, 102, 208, 116, 222, + 62, 198, 78, 80, 3, 193, 102, 208, 116, 222, 62, 198, 77, 80, 3, 193, + 102, 208, 116, 222, 62, 198, 76, 80, 3, 193, 102, 208, 116, 222, 62, 198, + 75, 80, 3, 193, 102, 208, 116, 222, 62, 198, 74, 80, 1, 234, 202, 208, + 116, 222, 62, 213, 79, 80, 1, 234, 202, 208, 116, 222, 62, 191, 183, 80, + 1, 234, 202, 208, 116, 222, 62, 231, 56, 80, 18, 3, 231, 161, 222, 62, + 68, 80, 18, 3, 222, 28, 211, 151, 80, 18, 3, 222, 28, 66, 80, 18, 3, 222, + 28, 234, 188, 80, 1, 203, 139, 155, 80, 1, 203, 139, 221, 215, 80, 1, + 203, 139, 231, 240, 80, 1, 203, 139, 247, 160, 80, 1, 203, 139, 191, 123, + 80, 1, 203, 139, 212, 101, 80, 1, 203, 139, 238, 32, 80, 1, 203, 139, + 180, 80, 1, 203, 139, 209, 228, 80, 1, 203, 139, 233, 109, 80, 1, 203, + 139, 249, 153, 80, 1, 203, 139, 199, 49, 80, 1, 203, 139, 140, 80, 120, + 3, 203, 139, 216, 217, 193, 190, 80, 18, 3, 203, 139, 252, 206, 80, 18, + 3, 203, 139, 71, 80, 18, 3, 203, 139, 235, 15, 58, 80, 18, 3, 203, 139, + 53, 192, 159, 80, 3, 203, 139, 198, 77, 80, 3, 203, 139, 198, 76, 80, 3, + 203, 139, 198, 74, 80, 3, 203, 139, 198, 73, 80, 3, 203, 139, 238, 247, + 198, 77, 80, 3, 203, 139, 238, 247, 198, 76, 80, 3, 203, 139, 238, 247, + 234, 106, 198, 79, 80, 1, 206, 47, 210, 189, 233, 109, 80, 3, 206, 47, + 210, 189, 198, 74, 80, 203, 139, 17, 191, 77, 80, 203, 139, 17, 107, 80, + 203, 139, 17, 109, 80, 203, 139, 17, 138, 80, 203, 139, 17, 134, 80, 203, + 139, 17, 149, 80, 203, 139, 17, 169, 80, 203, 139, 17, 175, 80, 203, 139, + 17, 171, 80, 203, 139, 17, 178, 80, 3, 221, 206, 198, 78, 80, 3, 221, + 206, 198, 76, 80, 18, 3, 251, 222, 65, 80, 18, 3, 251, 222, 251, 236, 80, + 16, 203, 139, 107, 80, 16, 203, 139, 233, 215, 101, 6, 1, 251, 132, 101, + 6, 1, 249, 101, 101, 6, 1, 231, 210, 101, 6, 1, 236, 150, 101, 6, 1, 234, + 103, 101, 6, 1, 195, 49, 101, 6, 1, 191, 80, 101, 6, 1, 199, 193, 101, 6, + 1, 223, 162, 101, 6, 1, 222, 87, 101, 6, 1, 220, 7, 101, 6, 1, 217, 90, + 101, 6, 1, 214, 216, 101, 6, 1, 211, 104, 101, 6, 1, 210, 131, 101, 6, 1, + 191, 67, 101, 6, 1, 207, 163, 101, 6, 1, 205, 142, 101, 6, 1, 199, 179, + 101, 6, 1, 196, 113, 101, 6, 1, 209, 220, 101, 6, 1, 221, 200, 101, 6, 1, + 231, 82, 101, 6, 1, 208, 81, 101, 6, 1, 203, 69, 101, 6, 1, 243, 81, 101, + 6, 1, 247, 128, 101, 6, 1, 222, 234, 101, 6, 1, 243, 18, 101, 6, 1, 246, + 241, 101, 6, 1, 192, 218, 101, 6, 1, 222, 249, 101, 6, 1, 230, 87, 101, + 6, 1, 229, 245, 101, 6, 1, 229, 145, 101, 6, 1, 193, 125, 101, 6, 1, 230, + 19, 101, 6, 1, 229, 11, 101, 6, 1, 192, 14, 101, 6, 1, 252, 14, 101, 1, + 251, 132, 101, 1, 249, 101, 101, 1, 231, 210, 101, 1, 236, 150, 101, 1, + 234, 103, 101, 1, 195, 49, 101, 1, 191, 80, 101, 1, 199, 193, 101, 1, + 223, 162, 101, 1, 222, 87, 101, 1, 220, 7, 101, 1, 217, 90, 101, 1, 214, + 216, 101, 1, 211, 104, 101, 1, 210, 131, 101, 1, 191, 67, 101, 1, 207, + 163, 101, 1, 205, 142, 101, 1, 199, 179, 101, 1, 196, 113, 101, 1, 209, + 220, 101, 1, 221, 200, 101, 1, 231, 82, 101, 1, 208, 81, 101, 1, 203, 69, + 101, 1, 243, 81, 101, 1, 247, 128, 101, 1, 222, 234, 101, 1, 243, 18, + 101, 1, 246, 241, 101, 1, 192, 218, 101, 1, 222, 249, 101, 1, 230, 87, + 101, 1, 229, 245, 101, 1, 229, 145, 101, 1, 193, 125, 101, 1, 230, 19, + 101, 1, 229, 11, 101, 1, 233, 23, 101, 1, 192, 14, 101, 1, 234, 123, 101, + 1, 153, 231, 210, 101, 1, 251, 230, 101, 210, 128, 204, 10, 52, 1, 101, + 214, 216, 101, 1, 252, 14, 101, 1, 230, 17, 56, 101, 1, 220, 116, 56, 30, + 147, 221, 113, 30, 147, 201, 167, 30, 147, 213, 204, 30, 147, 198, 168, + 30, 147, 201, 156, 30, 147, 206, 239, 30, 147, 216, 77, 30, 147, 209, + 169, 30, 147, 201, 164, 30, 147, 202, 160, 30, 147, 201, 161, 30, 147, + 223, 222, 30, 147, 243, 24, 30, 147, 201, 171, 30, 147, 243, 91, 30, 147, + 221, 188, 30, 147, 199, 7, 30, 147, 209, 209, 30, 147, 229, 142, 30, 147, + 213, 200, 30, 147, 201, 165, 30, 147, 213, 194, 30, 147, 213, 198, 30, + 147, 198, 165, 30, 147, 206, 227, 30, 147, 201, 163, 30, 147, 206, 237, + 30, 147, 222, 68, 30, 147, 216, 70, 30, 147, 222, 71, 30, 147, 209, 164, + 30, 147, 209, 162, 30, 147, 209, 150, 30, 147, 209, 158, 30, 147, 209, + 156, 30, 147, 209, 153, 30, 147, 209, 155, 30, 147, 209, 152, 30, 147, + 209, 157, 30, 147, 209, 167, 30, 147, 209, 168, 30, 147, 209, 151, 30, + 147, 209, 161, 30, 147, 222, 69, 30, 147, 222, 67, 30, 147, 202, 153, 30, + 147, 202, 151, 30, 147, 202, 143, 30, 147, 202, 146, 30, 147, 202, 152, + 30, 147, 202, 148, 30, 147, 202, 147, 30, 147, 202, 145, 30, 147, 202, + 156, 30, 147, 202, 158, 30, 147, 202, 159, 30, 147, 202, 154, 30, 147, + 202, 144, 30, 147, 202, 149, 30, 147, 202, 157, 30, 147, 243, 72, 30, + 147, 243, 70, 30, 147, 247, 14, 30, 147, 247, 12, 30, 147, 210, 149, 30, + 147, 223, 217, 30, 147, 223, 208, 30, 147, 223, 216, 30, 147, 223, 213, + 30, 147, 223, 211, 30, 147, 223, 215, 30, 147, 201, 168, 30, 147, 223, + 220, 30, 147, 223, 221, 30, 147, 223, 209, 30, 147, 223, 214, 30, 147, + 192, 57, 30, 147, 243, 23, 30, 147, 243, 73, 30, 147, 243, 71, 30, 147, + 247, 15, 30, 147, 247, 13, 30, 147, 243, 89, 30, 147, 243, 90, 30, 147, + 243, 74, 30, 147, 247, 16, 30, 147, 209, 207, 30, 147, 222, 70, 30, 147, + 201, 169, 30, 147, 192, 63, 30, 147, 221, 104, 30, 147, 213, 196, 30, + 147, 213, 202, 30, 147, 213, 201, 30, 147, 198, 162, 30, 147, 233, 3, 30, + 222, 174, 233, 3, 30, 222, 174, 65, 30, 222, 174, 252, 25, 30, 222, 174, + 170, 30, 222, 174, 192, 129, 30, 222, 174, 234, 65, 30, 222, 174, 71, 30, + 222, 174, 192, 67, 30, 222, 174, 192, 80, 30, 222, 174, 74, 30, 222, 174, + 193, 190, 30, 222, 174, 193, 176, 30, 222, 174, 211, 151, 30, 222, 174, + 192, 12, 30, 222, 174, 66, 30, 222, 174, 193, 107, 30, 222, 174, 193, + 125, 30, 222, 174, 193, 86, 30, 222, 174, 191, 225, 30, 222, 174, 233, + 242, 30, 222, 174, 192, 33, 30, 222, 174, 68, 30, 222, 174, 255, 202, 30, + 222, 174, 255, 201, 30, 222, 174, 192, 143, 30, 222, 174, 192, 141, 30, + 222, 174, 234, 63, 30, 222, 174, 234, 62, 30, 222, 174, 234, 64, 30, 222, + 174, 192, 66, 30, 222, 174, 192, 65, 30, 222, 174, 212, 10, 30, 222, 174, + 212, 11, 30, 222, 174, 212, 4, 30, 222, 174, 212, 9, 30, 222, 174, 212, + 7, 30, 222, 174, 192, 0, 30, 222, 174, 191, 255, 30, 222, 174, 191, 254, + 30, 222, 174, 192, 1, 30, 222, 174, 192, 2, 30, 222, 174, 196, 226, 30, + 222, 174, 196, 225, 30, 222, 174, 196, 223, 30, 222, 174, 196, 219, 30, + 222, 174, 196, 220, 30, 222, 174, 191, 220, 30, 222, 174, 191, 217, 30, + 222, 174, 191, 218, 30, 222, 174, 191, 212, 30, 222, 174, 191, 213, 30, + 222, 174, 191, 214, 30, 222, 174, 191, 216, 30, 222, 174, 233, 236, 30, + 222, 174, 233, 238, 30, 222, 174, 192, 32, 30, 222, 174, 228, 69, 30, + 222, 174, 228, 61, 30, 222, 174, 228, 64, 30, 222, 174, 228, 62, 30, 222, + 174, 228, 66, 30, 222, 174, 228, 68, 30, 222, 174, 251, 25, 30, 222, 174, + 251, 22, 30, 222, 174, 251, 20, 30, 222, 174, 251, 21, 30, 222, 174, 201, + 172, 30, 222, 174, 255, 203, 30, 222, 174, 192, 142, 30, 222, 174, 192, + 64, 30, 222, 174, 212, 6, 30, 222, 174, 212, 5, 30, 125, 221, 113, 30, + 125, 201, 167, 30, 125, 221, 106, 30, 125, 213, 204, 30, 125, 213, 202, + 30, 125, 213, 201, 30, 125, 198, 168, 30, 125, 206, 239, 30, 125, 206, + 234, 30, 125, 206, 231, 30, 125, 206, 224, 30, 125, 206, 219, 30, 125, + 206, 214, 30, 125, 206, 225, 30, 125, 206, 237, 30, 125, 216, 77, 30, + 125, 209, 169, 30, 125, 209, 158, 30, 125, 202, 160, 30, 125, 201, 161, + 30, 125, 223, 222, 30, 125, 243, 24, 30, 125, 243, 91, 30, 125, 221, 188, + 30, 125, 199, 7, 30, 125, 209, 209, 30, 125, 229, 142, 30, 125, 221, 107, + 30, 125, 221, 105, 30, 125, 213, 200, 30, 125, 213, 194, 30, 125, 213, + 196, 30, 125, 213, 199, 30, 125, 213, 195, 30, 125, 198, 165, 30, 125, + 198, 162, 30, 125, 206, 232, 30, 125, 206, 227, 30, 125, 206, 213, 30, + 125, 206, 212, 30, 125, 201, 163, 30, 125, 206, 229, 30, 125, 206, 228, + 30, 125, 206, 221, 30, 125, 206, 223, 30, 125, 206, 236, 30, 125, 206, + 216, 30, 125, 206, 226, 30, 125, 206, 235, 30, 125, 206, 211, 30, 125, + 216, 73, 30, 125, 216, 68, 30, 125, 216, 70, 30, 125, 216, 67, 30, 125, + 216, 65, 30, 125, 216, 71, 30, 125, 216, 76, 30, 125, 216, 74, 30, 125, + 222, 71, 30, 125, 209, 160, 30, 125, 209, 161, 30, 125, 209, 166, 30, + 125, 222, 69, 30, 125, 202, 153, 30, 125, 202, 143, 30, 125, 202, 146, + 30, 125, 202, 148, 30, 125, 210, 149, 30, 125, 223, 217, 30, 125, 223, + 210, 30, 125, 201, 168, 30, 125, 223, 218, 30, 125, 192, 57, 30, 125, + 192, 51, 30, 125, 192, 52, 30, 125, 209, 207, 30, 125, 222, 70, 30, 125, + 229, 140, 30, 125, 229, 138, 30, 125, 229, 141, 30, 125, 229, 139, 30, + 125, 192, 63, 30, 125, 221, 109, 30, 125, 221, 108, 30, 125, 221, 112, + 30, 125, 221, 110, 30, 125, 221, 111, 30, 125, 201, 165, 36, 5, 140, 36, + 5, 228, 159, 36, 5, 229, 158, 36, 5, 230, 91, 36, 5, 229, 215, 36, 5, + 229, 245, 36, 5, 229, 23, 36, 5, 229, 14, 36, 5, 173, 36, 5, 218, 225, + 36, 5, 219, 146, 36, 5, 220, 125, 36, 5, 219, 228, 36, 5, 219, 238, 36, + 5, 219, 43, 36, 5, 218, 191, 36, 5, 229, 177, 36, 5, 229, 171, 36, 5, + 229, 173, 36, 5, 229, 176, 36, 5, 229, 174, 36, 5, 229, 175, 36, 5, 229, + 172, 36, 5, 229, 170, 36, 5, 174, 36, 5, 215, 155, 36, 5, 216, 100, 36, + 5, 217, 151, 36, 5, 216, 211, 36, 5, 216, 232, 36, 5, 216, 12, 36, 5, + 215, 80, 36, 5, 200, 54, 36, 5, 200, 48, 36, 5, 200, 50, 36, 5, 200, 53, + 36, 5, 200, 51, 36, 5, 200, 52, 36, 5, 200, 49, 36, 5, 200, 47, 36, 5, + 165, 36, 5, 206, 68, 36, 5, 207, 1, 36, 5, 207, 178, 36, 5, 207, 84, 36, + 5, 207, 113, 36, 5, 206, 162, 36, 5, 206, 26, 36, 5, 188, 36, 5, 201, 4, + 36, 5, 202, 222, 36, 5, 205, 197, 36, 5, 205, 50, 36, 5, 205, 68, 36, 5, + 202, 46, 36, 5, 200, 150, 36, 5, 203, 165, 36, 5, 203, 5, 36, 5, 203, 81, + 36, 5, 203, 160, 36, 5, 203, 111, 36, 5, 203, 113, 36, 5, 203, 56, 36, 5, + 202, 240, 36, 5, 208, 96, 36, 5, 208, 33, 36, 5, 208, 57, 36, 5, 208, 95, + 36, 5, 208, 74, 36, 5, 208, 75, 36, 5, 208, 45, 36, 5, 208, 44, 36, 5, + 207, 240, 36, 5, 207, 236, 36, 5, 207, 239, 36, 5, 207, 237, 36, 5, 207, + 238, 36, 5, 208, 71, 36, 5, 208, 63, 36, 5, 208, 66, 36, 5, 208, 70, 36, + 5, 208, 67, 36, 5, 208, 68, 36, 5, 208, 65, 36, 5, 208, 62, 36, 5, 208, + 58, 36, 5, 208, 61, 36, 5, 208, 59, 36, 5, 208, 60, 36, 5, 249, 153, 36, + 5, 248, 10, 36, 5, 248, 188, 36, 5, 249, 151, 36, 5, 249, 1, 36, 5, 249, + 17, 36, 5, 248, 111, 36, 5, 247, 210, 36, 5, 195, 188, 36, 5, 193, 249, + 36, 5, 195, 69, 36, 5, 195, 187, 36, 5, 195, 148, 36, 5, 195, 153, 36, 5, + 195, 24, 36, 5, 193, 238, 36, 5, 190, 190, 36, 5, 197, 94, 36, 5, 198, + 193, 36, 5, 199, 245, 36, 5, 199, 121, 36, 5, 199, 145, 36, 5, 159, 36, + 5, 197, 43, 36, 5, 247, 160, 36, 5, 238, 195, 36, 5, 243, 29, 36, 5, 247, + 159, 36, 5, 247, 34, 36, 5, 247, 42, 36, 5, 242, 99, 36, 5, 238, 151, 36, + 5, 192, 220, 36, 5, 192, 188, 36, 5, 192, 207, 36, 5, 192, 219, 36, 5, + 192, 213, 36, 5, 192, 214, 36, 5, 192, 196, 36, 5, 192, 195, 36, 5, 192, + 181, 36, 5, 192, 177, 36, 5, 192, 180, 36, 5, 192, 178, 36, 5, 192, 179, + 36, 5, 180, 36, 5, 212, 178, 36, 5, 213, 219, 36, 5, 214, 250, 36, 5, + 214, 110, 36, 5, 214, 121, 36, 5, 213, 43, 36, 5, 212, 110, 36, 5, 212, + 101, 36, 5, 212, 58, 36, 5, 212, 81, 36, 5, 212, 100, 36, 5, 212, 89, 36, + 5, 212, 90, 36, 5, 212, 65, 36, 5, 212, 48, 36, 5, 231, 11, 65, 36, 5, + 231, 11, 66, 36, 5, 231, 11, 68, 36, 5, 231, 11, 252, 206, 36, 5, 231, + 11, 234, 188, 36, 5, 231, 11, 71, 36, 5, 231, 11, 74, 36, 5, 231, 11, + 193, 190, 36, 5, 155, 36, 5, 220, 232, 36, 5, 221, 166, 36, 5, 222, 127, + 36, 5, 222, 13, 36, 5, 222, 22, 36, 5, 221, 67, 36, 5, 221, 62, 36, 5, + 220, 179, 36, 5, 220, 172, 36, 5, 220, 178, 36, 5, 220, 173, 36, 5, 220, + 174, 36, 5, 220, 165, 36, 5, 220, 159, 36, 5, 220, 161, 36, 5, 220, 164, + 36, 5, 220, 162, 36, 5, 220, 163, 36, 5, 220, 160, 36, 5, 220, 158, 36, + 5, 220, 154, 36, 5, 220, 157, 36, 5, 220, 155, 36, 5, 220, 156, 36, 5, + 193, 190, 36, 5, 193, 0, 36, 5, 193, 86, 36, 5, 193, 181, 36, 5, 193, + 114, 36, 5, 193, 125, 36, 5, 193, 48, 36, 5, 193, 40, 36, 5, 209, 219, + 65, 36, 5, 209, 219, 66, 36, 5, 209, 219, 68, 36, 5, 209, 219, 252, 206, + 36, 5, 209, 219, 234, 188, 36, 5, 209, 219, 71, 36, 5, 209, 219, 74, 36, + 5, 191, 123, 36, 5, 190, 251, 36, 5, 191, 30, 36, 5, 191, 121, 36, 5, + 191, 84, 36, 5, 191, 87, 36, 5, 191, 7, 36, 5, 190, 238, 36, 5, 191, 71, + 36, 5, 191, 48, 36, 5, 191, 57, 36, 5, 191, 70, 36, 5, 191, 61, 36, 5, + 191, 62, 36, 5, 191, 54, 36, 5, 191, 39, 36, 5, 170, 36, 5, 191, 225, 36, + 5, 192, 33, 36, 5, 192, 140, 36, 5, 192, 77, 36, 5, 192, 80, 36, 5, 192, + 12, 36, 5, 191, 252, 36, 5, 238, 32, 36, 5, 235, 89, 36, 5, 237, 44, 36, + 5, 238, 31, 36, 5, 237, 131, 36, 5, 237, 146, 36, 5, 236, 174, 36, 5, + 235, 46, 36, 5, 237, 191, 36, 5, 237, 156, 36, 5, 237, 168, 36, 5, 237, + 190, 36, 5, 237, 178, 36, 5, 237, 179, 36, 5, 237, 161, 36, 5, 237, 147, + 36, 5, 223, 32, 36, 5, 222, 182, 36, 5, 222, 244, 36, 5, 223, 31, 36, 5, + 223, 8, 36, 5, 223, 10, 36, 5, 222, 201, 36, 5, 222, 160, 36, 5, 231, + 240, 36, 5, 230, 179, 36, 5, 231, 53, 36, 5, 231, 237, 36, 5, 231, 157, + 36, 5, 231, 165, 36, 5, 231, 3, 36, 5, 231, 2, 36, 5, 230, 135, 36, 5, + 230, 131, 36, 5, 230, 134, 36, 5, 230, 132, 36, 5, 230, 133, 36, 5, 231, + 127, 36, 5, 231, 107, 36, 5, 231, 117, 36, 5, 231, 126, 36, 5, 231, 121, + 36, 5, 231, 122, 36, 5, 231, 111, 36, 5, 231, 96, 36, 5, 199, 49, 36, 5, + 198, 213, 36, 5, 199, 11, 36, 5, 199, 48, 36, 5, 199, 31, 36, 5, 199, 33, + 36, 5, 198, 241, 36, 5, 198, 204, 36, 5, 247, 1, 36, 5, 243, 48, 36, 5, + 243, 95, 36, 5, 247, 0, 36, 5, 243, 123, 36, 5, 243, 127, 36, 5, 243, 68, + 36, 5, 243, 37, 36, 5, 209, 228, 36, 5, 209, 191, 36, 5, 209, 211, 36, 5, + 209, 227, 36, 5, 209, 213, 36, 5, 209, 214, 36, 5, 209, 199, 36, 5, 209, + 187, 36, 5, 197, 168, 36, 5, 197, 140, 36, 5, 197, 146, 36, 5, 197, 167, + 36, 5, 197, 160, 36, 5, 197, 161, 36, 5, 197, 144, 36, 5, 197, 138, 36, + 5, 196, 240, 36, 5, 196, 232, 36, 5, 196, 236, 36, 5, 196, 239, 36, 5, + 196, 237, 36, 5, 196, 238, 36, 5, 196, 234, 36, 5, 196, 233, 36, 5, 233, + 109, 36, 5, 232, 86, 36, 5, 233, 23, 36, 5, 233, 108, 36, 5, 233, 52, 36, + 5, 233, 59, 36, 5, 232, 175, 36, 5, 232, 62, 36, 5, 168, 36, 5, 208, 165, + 36, 5, 209, 185, 36, 5, 210, 220, 36, 5, 210, 49, 36, 5, 210, 63, 36, 5, + 209, 73, 36, 5, 208, 122, 36, 5, 206, 16, 36, 5, 215, 68, 36, 5, 232, 56, + 36, 33, 231, 153, 23, 18, 219, 198, 77, 36, 33, 18, 219, 198, 77, 36, 33, + 231, 153, 77, 36, 205, 54, 77, 36, 193, 22, 36, 232, 80, 201, 63, 36, + 242, 74, 36, 204, 25, 36, 242, 83, 36, 208, 228, 242, 83, 36, 208, 13, + 77, 36, 210, 128, 204, 10, 36, 17, 107, 36, 17, 109, 36, 17, 138, 36, 17, + 134, 36, 17, 149, 36, 17, 169, 36, 17, 175, 36, 17, 171, 36, 17, 178, 36, + 31, 199, 95, 36, 31, 197, 32, 36, 31, 198, 249, 36, 31, 232, 135, 36, 31, + 233, 15, 36, 31, 202, 120, 36, 31, 203, 241, 36, 31, 234, 153, 36, 31, + 213, 169, 36, 31, 228, 140, 36, 31, 199, 96, 189, 36, 5, 205, 59, 215, + 80, 36, 5, 215, 76, 36, 5, 215, 77, 36, 5, 215, 78, 36, 5, 205, 59, 247, + 210, 36, 5, 247, 207, 36, 5, 247, 208, 36, 5, 247, 209, 36, 5, 205, 59, + 232, 62, 36, 5, 232, 58, 36, 5, 232, 59, 36, 5, 232, 60, 36, 5, 205, 59, + 208, 122, 36, 5, 208, 118, 36, 5, 208, 119, 36, 5, 208, 120, 36, 198, 80, + 87, 192, 15, 36, 198, 80, 87, 237, 89, 36, 198, 80, 87, 206, 194, 36, + 198, 80, 87, 203, 40, 206, 194, 36, 198, 80, 87, 237, 18, 36, 198, 80, + 87, 221, 250, 36, 198, 80, 87, 243, 76, 36, 198, 80, 87, 229, 147, 36, + 198, 80, 87, 237, 88, 36, 198, 80, 87, 220, 195, 103, 1, 65, 103, 1, 71, + 103, 1, 68, 103, 1, 74, 103, 1, 66, 103, 1, 196, 12, 103, 1, 231, 240, + 103, 1, 155, 103, 1, 231, 165, 103, 1, 231, 53, 103, 1, 231, 3, 103, 1, + 230, 179, 103, 1, 230, 138, 103, 1, 140, 103, 1, 229, 245, 103, 1, 229, + 158, 103, 1, 229, 23, 103, 1, 228, 159, 103, 1, 228, 126, 103, 1, 173, + 103, 1, 219, 238, 103, 1, 219, 146, 103, 1, 219, 43, 103, 1, 218, 225, + 103, 1, 218, 192, 103, 1, 174, 103, 1, 216, 232, 103, 1, 216, 100, 103, + 1, 216, 12, 103, 1, 215, 155, 103, 1, 180, 103, 1, 229, 47, 103, 1, 214, + 237, 103, 1, 214, 121, 103, 1, 213, 219, 103, 1, 213, 43, 103, 1, 212, + 178, 103, 1, 212, 112, 103, 1, 208, 32, 103, 1, 208, 16, 103, 1, 208, 9, + 103, 1, 207, 255, 103, 1, 207, 244, 103, 1, 207, 242, 103, 1, 188, 103, + 1, 206, 8, 103, 1, 205, 68, 103, 1, 202, 222, 103, 1, 202, 46, 103, 1, + 201, 4, 103, 1, 200, 158, 103, 1, 238, 32, 103, 1, 190, 190, 103, 1, 237, + 146, 103, 1, 199, 145, 103, 1, 237, 44, 103, 1, 198, 193, 103, 1, 236, + 174, 103, 1, 235, 89, 103, 1, 235, 57, 103, 1, 236, 186, 103, 1, 198, + 115, 103, 1, 198, 114, 103, 1, 198, 103, 103, 1, 198, 102, 103, 1, 198, + 101, 103, 1, 198, 100, 103, 1, 197, 168, 103, 1, 197, 161, 103, 1, 197, + 146, 103, 1, 197, 144, 103, 1, 197, 140, 103, 1, 197, 139, 103, 1, 193, + 190, 103, 1, 193, 125, 103, 1, 193, 86, 103, 1, 193, 48, 103, 1, 193, 0, + 103, 1, 192, 243, 103, 1, 170, 103, 1, 192, 80, 103, 1, 192, 33, 103, 1, + 192, 12, 103, 1, 191, 225, 103, 1, 191, 184, 103, 1, 215, 87, 103, 2, 1, + 192, 80, 103, 2, 1, 192, 33, 103, 2, 1, 192, 12, 103, 2, 1, 191, 225, + 103, 2, 1, 191, 184, 103, 2, 1, 215, 87, 21, 22, 228, 88, 21, 22, 71, 21, + 22, 252, 170, 21, 22, 68, 21, 22, 223, 199, 21, 22, 74, 21, 22, 211, 87, + 21, 22, 192, 158, 211, 87, 21, 22, 98, 234, 188, 21, 22, 98, 68, 21, 22, + 65, 21, 22, 252, 206, 21, 22, 193, 125, 21, 22, 193, 103, 193, 125, 21, + 22, 193, 86, 21, 22, 193, 103, 193, 86, 21, 22, 193, 70, 21, 22, 193, + 103, 193, 70, 21, 22, 193, 48, 21, 22, 193, 103, 193, 48, 21, 22, 193, + 29, 21, 22, 193, 103, 193, 29, 21, 22, 214, 209, 193, 29, 21, 22, 193, + 190, 21, 22, 193, 103, 193, 190, 21, 22, 193, 181, 21, 22, 193, 103, 193, + 181, 21, 22, 214, 209, 193, 181, 21, 22, 251, 236, 21, 22, 192, 158, 193, + 224, 21, 22, 231, 11, 201, 63, 21, 22, 53, 252, 46, 21, 22, 53, 230, 210, + 21, 22, 53, 248, 77, 132, 206, 188, 21, 22, 53, 198, 54, 132, 206, 188, + 21, 22, 53, 50, 132, 206, 188, 21, 22, 53, 206, 188, 21, 22, 53, 55, 252, + 46, 21, 22, 53, 55, 203, 40, 81, 201, 15, 21, 22, 53, 82, 236, 140, 21, + 22, 53, 203, 40, 228, 241, 106, 21, 22, 53, 209, 81, 21, 22, 53, 144, + 199, 228, 21, 22, 234, 103, 21, 22, 223, 162, 21, 22, 211, 104, 21, 22, + 251, 132, 21, 22, 210, 63, 21, 22, 210, 218, 21, 22, 209, 185, 21, 22, + 209, 145, 21, 22, 209, 73, 21, 22, 209, 37, 21, 22, 192, 158, 209, 37, + 21, 22, 98, 229, 215, 21, 22, 98, 229, 158, 21, 22, 168, 21, 22, 210, + 220, 21, 22, 208, 120, 21, 22, 193, 103, 208, 120, 21, 22, 208, 118, 21, + 22, 193, 103, 208, 118, 21, 22, 208, 117, 21, 22, 193, 103, 208, 117, 21, + 22, 208, 115, 21, 22, 193, 103, 208, 115, 21, 22, 208, 114, 21, 22, 193, + 103, 208, 114, 21, 22, 208, 122, 21, 22, 193, 103, 208, 122, 21, 22, 208, + 121, 21, 22, 193, 103, 208, 121, 21, 22, 192, 158, 208, 121, 21, 22, 210, + 236, 21, 22, 193, 103, 210, 236, 21, 22, 98, 230, 116, 21, 22, 199, 145, + 21, 22, 199, 242, 21, 22, 198, 193, 21, 22, 198, 170, 21, 22, 159, 21, + 22, 198, 59, 21, 22, 192, 158, 198, 59, 21, 22, 98, 237, 131, 21, 22, 98, + 237, 44, 21, 22, 190, 190, 21, 22, 199, 245, 21, 22, 197, 41, 21, 22, + 193, 103, 197, 41, 21, 22, 197, 19, 21, 22, 193, 103, 197, 19, 21, 22, + 197, 18, 21, 22, 193, 103, 197, 18, 21, 22, 109, 21, 22, 193, 103, 109, + 21, 22, 197, 9, 21, 22, 193, 103, 197, 9, 21, 22, 197, 43, 21, 22, 193, + 103, 197, 43, 21, 22, 197, 42, 21, 22, 193, 103, 197, 42, 21, 22, 214, + 209, 197, 42, 21, 22, 200, 43, 21, 22, 197, 127, 21, 22, 197, 111, 21, + 22, 197, 109, 21, 22, 197, 132, 21, 22, 222, 22, 21, 22, 222, 121, 21, + 22, 221, 166, 21, 22, 221, 145, 21, 22, 221, 67, 21, 22, 221, 41, 21, 22, + 192, 158, 221, 41, 21, 22, 155, 21, 22, 222, 127, 21, 22, 220, 174, 21, + 22, 193, 103, 220, 174, 21, 22, 220, 172, 21, 22, 193, 103, 220, 172, 21, + 22, 220, 171, 21, 22, 193, 103, 220, 171, 21, 22, 220, 169, 21, 22, 193, + 103, 220, 169, 21, 22, 220, 168, 21, 22, 193, 103, 220, 168, 21, 22, 220, + 179, 21, 22, 193, 103, 220, 179, 21, 22, 220, 178, 21, 22, 193, 103, 220, + 178, 21, 22, 214, 209, 220, 178, 21, 22, 222, 152, 21, 22, 220, 180, 21, + 22, 202, 1, 222, 6, 21, 22, 202, 1, 221, 146, 21, 22, 202, 1, 221, 56, + 21, 22, 202, 1, 222, 104, 21, 22, 247, 42, 21, 22, 247, 158, 21, 22, 243, + 29, 21, 22, 243, 19, 21, 22, 242, 99, 21, 22, 239, 18, 21, 22, 192, 158, + 239, 18, 21, 22, 247, 160, 21, 22, 247, 159, 21, 22, 238, 149, 21, 22, + 193, 103, 238, 149, 21, 22, 238, 147, 21, 22, 193, 103, 238, 147, 21, 22, + 238, 146, 21, 22, 193, 103, 238, 146, 21, 22, 238, 145, 21, 22, 193, 103, + 238, 145, 21, 22, 238, 144, 21, 22, 193, 103, 238, 144, 21, 22, 238, 151, + 21, 22, 193, 103, 238, 151, 21, 22, 238, 150, 21, 22, 193, 103, 238, 150, + 21, 22, 214, 209, 238, 150, 21, 22, 247, 193, 21, 22, 205, 101, 199, 51, + 21, 22, 216, 232, 21, 22, 217, 150, 21, 22, 216, 100, 21, 22, 216, 61, + 21, 22, 216, 12, 21, 22, 215, 211, 21, 22, 192, 158, 215, 211, 21, 22, + 174, 21, 22, 217, 151, 21, 22, 215, 78, 21, 22, 193, 103, 215, 78, 21, + 22, 215, 76, 21, 22, 193, 103, 215, 76, 21, 22, 215, 75, 21, 22, 193, + 103, 215, 75, 21, 22, 215, 74, 21, 22, 193, 103, 215, 74, 21, 22, 215, + 73, 21, 22, 193, 103, 215, 73, 21, 22, 215, 80, 21, 22, 193, 103, 215, + 80, 21, 22, 215, 79, 21, 22, 193, 103, 215, 79, 21, 22, 214, 209, 215, + 79, 21, 22, 218, 168, 21, 22, 193, 103, 218, 168, 21, 22, 216, 104, 21, + 22, 250, 180, 218, 168, 21, 22, 205, 101, 218, 168, 21, 22, 214, 121, 21, + 22, 214, 249, 21, 22, 213, 219, 21, 22, 213, 186, 21, 22, 213, 43, 21, + 22, 213, 26, 21, 22, 192, 158, 213, 26, 21, 22, 180, 21, 22, 214, 250, + 21, 22, 212, 108, 21, 22, 193, 103, 212, 108, 21, 22, 212, 110, 21, 22, + 193, 103, 212, 110, 21, 22, 212, 109, 21, 22, 193, 103, 212, 109, 21, 22, + 214, 209, 212, 109, 21, 22, 215, 61, 21, 22, 98, 214, 70, 21, 22, 213, + 225, 21, 22, 219, 238, 21, 22, 220, 124, 21, 22, 219, 146, 21, 22, 219, + 128, 21, 22, 219, 43, 21, 22, 219, 8, 21, 22, 192, 158, 219, 8, 21, 22, + 173, 21, 22, 220, 125, 21, 22, 218, 189, 21, 22, 193, 103, 218, 189, 21, + 22, 218, 188, 21, 22, 193, 103, 218, 188, 21, 22, 218, 187, 21, 22, 193, + 103, 218, 187, 21, 22, 218, 186, 21, 22, 193, 103, 218, 186, 21, 22, 218, + 185, 21, 22, 193, 103, 218, 185, 21, 22, 218, 191, 21, 22, 193, 103, 218, + 191, 21, 22, 218, 190, 21, 22, 193, 103, 218, 190, 21, 22, 172, 21, 22, + 193, 103, 172, 21, 22, 216, 217, 172, 21, 22, 205, 68, 21, 22, 205, 195, + 21, 22, 202, 222, 21, 22, 202, 193, 21, 22, 202, 46, 21, 22, 202, 16, 21, + 22, 192, 158, 202, 16, 21, 22, 188, 21, 22, 205, 197, 21, 22, 200, 145, + 21, 22, 193, 103, 200, 145, 21, 22, 200, 139, 21, 22, 193, 103, 200, 139, + 21, 22, 200, 138, 21, 22, 193, 103, 200, 138, 21, 22, 200, 133, 21, 22, + 193, 103, 200, 133, 21, 22, 200, 132, 21, 22, 193, 103, 200, 132, 21, 22, + 200, 150, 21, 22, 193, 103, 200, 150, 21, 22, 200, 149, 21, 22, 193, 103, + 200, 149, 21, 22, 214, 209, 200, 149, 21, 22, 206, 8, 21, 22, 250, 180, + 206, 8, 21, 22, 200, 151, 21, 22, 248, 136, 206, 8, 21, 22, 215, 203, + 202, 114, 21, 22, 214, 209, 202, 101, 21, 22, 214, 209, 206, 6, 21, 22, + 214, 209, 201, 192, 21, 22, 214, 209, 201, 7, 21, 22, 214, 209, 202, 100, + 21, 22, 214, 209, 205, 71, 21, 22, 203, 113, 21, 22, 203, 81, 21, 22, + 203, 76, 21, 22, 203, 56, 21, 22, 203, 48, 21, 22, 203, 165, 21, 22, 203, + 160, 21, 22, 202, 237, 21, 22, 193, 103, 202, 237, 21, 22, 202, 236, 21, + 22, 193, 103, 202, 236, 21, 22, 202, 235, 21, 22, 193, 103, 202, 235, 21, + 22, 202, 234, 21, 22, 193, 103, 202, 234, 21, 22, 202, 233, 21, 22, 193, + 103, 202, 233, 21, 22, 202, 240, 21, 22, 193, 103, 202, 240, 21, 22, 202, + 239, 21, 22, 193, 103, 202, 239, 21, 22, 203, 167, 21, 22, 192, 80, 21, + 22, 192, 138, 21, 22, 192, 33, 21, 22, 192, 23, 21, 22, 192, 12, 21, 22, + 191, 246, 21, 22, 192, 158, 191, 246, 21, 22, 170, 21, 22, 192, 140, 21, + 22, 191, 181, 21, 22, 193, 103, 191, 181, 21, 22, 191, 180, 21, 22, 193, + 103, 191, 180, 21, 22, 191, 179, 21, 22, 193, 103, 191, 179, 21, 22, 191, + 178, 21, 22, 193, 103, 191, 178, 21, 22, 191, 177, 21, 22, 193, 103, 191, + 177, 21, 22, 191, 183, 21, 22, 193, 103, 191, 183, 21, 22, 191, 182, 21, + 22, 193, 103, 191, 182, 21, 22, 214, 209, 191, 182, 21, 22, 192, 159, 21, + 22, 248, 186, 192, 159, 21, 22, 193, 103, 192, 159, 21, 22, 205, 101, + 192, 33, 21, 22, 207, 113, 21, 22, 207, 221, 207, 113, 21, 22, 193, 103, + 219, 238, 21, 22, 207, 177, 21, 22, 207, 1, 21, 22, 206, 195, 21, 22, + 206, 162, 21, 22, 206, 134, 21, 22, 193, 103, 219, 43, 21, 22, 165, 21, + 22, 207, 178, 21, 22, 193, 103, 173, 21, 22, 206, 25, 21, 22, 193, 103, + 206, 25, 21, 22, 146, 21, 22, 193, 103, 146, 21, 22, 216, 217, 146, 21, + 22, 233, 59, 21, 22, 233, 106, 21, 22, 233, 23, 21, 22, 233, 8, 21, 22, + 232, 175, 21, 22, 232, 162, 21, 22, 233, 109, 21, 22, 233, 108, 21, 22, + 232, 61, 21, 22, 193, 103, 232, 61, 21, 22, 233, 175, 21, 22, 199, 33, + 21, 22, 215, 59, 199, 33, 21, 22, 199, 11, 21, 22, 215, 59, 199, 11, 21, + 22, 199, 5, 21, 22, 215, 59, 199, 5, 21, 22, 198, 241, 21, 22, 198, 235, + 21, 22, 199, 49, 21, 22, 199, 48, 21, 22, 198, 203, 21, 22, 193, 103, + 198, 203, 21, 22, 199, 51, 21, 22, 197, 118, 21, 22, 197, 116, 21, 22, + 197, 115, 21, 22, 197, 120, 21, 22, 197, 121, 21, 22, 197, 2, 21, 22, + 197, 1, 21, 22, 197, 0, 21, 22, 197, 4, 21, 22, 212, 129, 229, 245, 21, + 22, 212, 129, 229, 158, 21, 22, 212, 129, 229, 130, 21, 22, 212, 129, + 229, 23, 21, 22, 212, 129, 228, 252, 21, 22, 212, 129, 140, 21, 22, 212, + 129, 230, 91, 21, 22, 212, 129, 230, 116, 21, 22, 212, 128, 230, 116, 21, + 22, 229, 113, 21, 22, 208, 92, 21, 22, 208, 57, 21, 22, 208, 51, 21, 22, + 208, 45, 21, 22, 208, 40, 21, 22, 208, 96, 21, 22, 208, 95, 21, 22, 208, + 104, 21, 22, 198, 111, 21, 22, 198, 109, 21, 22, 198, 108, 21, 22, 198, + 112, 21, 22, 193, 103, 207, 113, 21, 22, 193, 103, 207, 1, 21, 22, 193, + 103, 206, 162, 21, 22, 193, 103, 165, 21, 22, 214, 66, 21, 22, 214, 16, + 21, 22, 214, 12, 21, 22, 213, 249, 21, 22, 213, 244, 21, 22, 214, 68, 21, + 22, 214, 67, 21, 22, 214, 70, 21, 22, 213, 72, 21, 22, 205, 101, 203, + 113, 21, 22, 205, 101, 203, 81, 21, 22, 205, 101, 203, 56, 21, 22, 205, + 101, 203, 165, 21, 22, 193, 27, 199, 33, 21, 22, 193, 27, 199, 11, 21, + 22, 193, 27, 198, 241, 21, 22, 193, 27, 199, 49, 21, 22, 193, 27, 199, + 51, 21, 22, 219, 153, 21, 22, 219, 152, 21, 22, 219, 151, 21, 22, 219, + 150, 21, 22, 219, 159, 21, 22, 219, 158, 21, 22, 219, 160, 21, 22, 199, + 50, 199, 33, 21, 22, 199, 50, 199, 11, 21, 22, 199, 50, 199, 5, 21, 22, + 199, 50, 198, 241, 21, 22, 199, 50, 198, 235, 21, 22, 199, 50, 199, 49, + 21, 22, 199, 50, 199, 48, 21, 22, 199, 50, 199, 51, 21, 22, 251, 220, + 250, 120, 21, 22, 248, 136, 71, 21, 22, 248, 136, 68, 21, 22, 248, 136, + 74, 21, 22, 248, 136, 65, 21, 22, 248, 136, 193, 125, 21, 22, 248, 136, + 193, 86, 21, 22, 248, 136, 193, 48, 21, 22, 248, 136, 193, 190, 21, 22, + 248, 136, 214, 121, 21, 22, 248, 136, 213, 219, 21, 22, 248, 136, 213, + 43, 21, 22, 248, 136, 180, 21, 22, 248, 136, 222, 22, 21, 22, 248, 136, + 221, 166, 21, 22, 248, 136, 221, 67, 21, 22, 248, 136, 155, 21, 22, 205, + 101, 229, 245, 21, 22, 205, 101, 229, 158, 21, 22, 205, 101, 229, 23, 21, + 22, 205, 101, 140, 21, 22, 98, 231, 59, 21, 22, 98, 231, 63, 21, 22, 98, + 231, 77, 21, 22, 98, 231, 76, 21, 22, 98, 231, 65, 21, 22, 98, 231, 91, + 21, 22, 98, 206, 68, 21, 22, 98, 206, 162, 21, 22, 98, 207, 113, 21, 22, + 98, 207, 84, 21, 22, 98, 207, 1, 21, 22, 98, 165, 21, 22, 98, 193, 0, 21, + 22, 98, 193, 48, 21, 22, 98, 193, 125, 21, 22, 98, 193, 114, 21, 22, 98, + 193, 86, 21, 22, 98, 193, 190, 21, 22, 98, 228, 118, 21, 22, 98, 228, + 119, 21, 22, 98, 228, 122, 21, 22, 98, 228, 121, 21, 22, 98, 228, 120, + 21, 22, 98, 228, 125, 21, 22, 98, 198, 213, 21, 22, 98, 198, 241, 21, 22, + 98, 199, 33, 21, 22, 98, 199, 31, 21, 22, 98, 199, 11, 21, 22, 98, 199, + 49, 21, 22, 98, 197, 99, 21, 22, 98, 197, 109, 21, 22, 98, 197, 127, 21, + 22, 98, 197, 126, 21, 22, 98, 197, 111, 21, 22, 98, 197, 132, 21, 22, 98, + 208, 165, 21, 22, 98, 209, 73, 21, 22, 98, 210, 63, 21, 22, 98, 210, 49, + 21, 22, 98, 209, 185, 21, 22, 98, 168, 21, 22, 98, 210, 236, 21, 22, 98, + 230, 179, 21, 22, 98, 231, 3, 21, 22, 98, 231, 165, 21, 22, 98, 231, 157, + 21, 22, 98, 231, 53, 21, 22, 98, 231, 240, 21, 22, 98, 221, 175, 21, 22, + 98, 221, 183, 21, 22, 98, 221, 197, 21, 22, 98, 221, 196, 21, 22, 98, + 221, 190, 21, 22, 98, 221, 215, 21, 22, 98, 221, 96, 21, 22, 98, 221, 97, + 21, 22, 98, 221, 100, 21, 22, 98, 221, 99, 21, 22, 98, 221, 98, 21, 22, + 98, 221, 101, 21, 22, 98, 221, 102, 21, 22, 98, 212, 178, 21, 22, 98, + 213, 43, 21, 22, 98, 214, 121, 21, 22, 98, 214, 110, 21, 22, 98, 213, + 219, 21, 22, 98, 180, 21, 22, 98, 215, 155, 21, 22, 98, 216, 12, 21, 22, + 98, 216, 232, 21, 22, 98, 216, 211, 21, 22, 98, 216, 100, 21, 22, 98, + 174, 21, 22, 98, 191, 225, 21, 22, 98, 192, 12, 21, 22, 98, 192, 80, 21, + 22, 98, 192, 77, 21, 22, 98, 192, 33, 21, 22, 98, 170, 21, 22, 98, 222, + 182, 21, 22, 205, 101, 222, 182, 21, 22, 98, 222, 201, 21, 22, 98, 223, + 10, 21, 22, 98, 223, 8, 21, 22, 98, 222, 244, 21, 22, 205, 101, 222, 244, + 21, 22, 98, 223, 32, 21, 22, 98, 222, 215, 21, 22, 98, 222, 219, 21, 22, + 98, 222, 229, 21, 22, 98, 222, 228, 21, 22, 98, 222, 227, 21, 22, 98, + 222, 230, 21, 22, 98, 218, 225, 21, 22, 98, 219, 43, 21, 22, 98, 219, + 238, 21, 22, 98, 219, 228, 21, 22, 98, 219, 146, 21, 22, 98, 173, 21, 22, + 98, 236, 179, 21, 22, 98, 236, 180, 21, 22, 98, 236, 185, 21, 22, 98, + 236, 184, 21, 22, 98, 236, 181, 21, 22, 98, 236, 186, 21, 22, 98, 219, + 149, 21, 22, 98, 219, 151, 21, 22, 98, 219, 155, 21, 22, 98, 219, 154, + 21, 22, 98, 219, 153, 21, 22, 98, 219, 159, 21, 22, 98, 198, 106, 21, 22, + 98, 198, 108, 21, 22, 98, 198, 111, 21, 22, 98, 198, 110, 21, 22, 98, + 198, 109, 21, 22, 98, 198, 112, 21, 22, 98, 198, 101, 21, 22, 98, 198, + 102, 21, 22, 98, 198, 114, 21, 22, 98, 198, 113, 21, 22, 98, 198, 103, + 21, 22, 98, 198, 115, 21, 22, 98, 190, 251, 21, 22, 98, 191, 7, 21, 22, + 98, 191, 87, 21, 22, 98, 191, 84, 21, 22, 98, 191, 30, 21, 22, 98, 191, + 123, 21, 22, 98, 191, 166, 21, 22, 98, 89, 191, 166, 21, 22, 98, 235, 22, + 21, 22, 98, 235, 23, 21, 22, 98, 235, 32, 21, 22, 98, 235, 31, 21, 22, + 98, 235, 26, 21, 22, 98, 235, 35, 21, 22, 98, 201, 4, 21, 22, 98, 202, + 46, 21, 22, 98, 205, 68, 21, 22, 98, 205, 50, 21, 22, 98, 202, 222, 21, + 22, 98, 188, 21, 22, 98, 203, 5, 21, 22, 98, 203, 56, 21, 22, 98, 203, + 113, 21, 22, 98, 203, 111, 21, 22, 98, 203, 81, 21, 22, 98, 203, 165, 21, + 22, 98, 203, 167, 21, 22, 98, 197, 140, 21, 22, 98, 197, 144, 21, 22, 98, + 197, 161, 21, 22, 98, 197, 160, 21, 22, 98, 197, 146, 21, 22, 98, 197, + 168, 21, 22, 98, 243, 48, 21, 22, 98, 243, 68, 21, 22, 98, 243, 127, 21, + 22, 98, 243, 123, 21, 22, 98, 243, 95, 21, 22, 98, 247, 1, 21, 22, 98, + 197, 102, 21, 22, 98, 197, 103, 21, 22, 98, 197, 106, 21, 22, 98, 197, + 105, 21, 22, 98, 197, 104, 21, 22, 98, 197, 107, 21, 22, 243, 96, 56, 21, + 22, 232, 80, 201, 63, 21, 22, 208, 88, 21, 22, 214, 64, 21, 22, 213, 69, + 21, 22, 213, 68, 21, 22, 213, 67, 21, 22, 213, 66, 21, 22, 213, 71, 21, + 22, 213, 70, 21, 22, 193, 27, 198, 201, 21, 22, 193, 27, 198, 200, 21, + 22, 193, 27, 198, 199, 21, 22, 193, 27, 198, 198, 21, 22, 193, 27, 198, + 197, 21, 22, 193, 27, 198, 204, 21, 22, 193, 27, 198, 203, 21, 22, 193, + 27, 53, 199, 51, 21, 22, 248, 136, 193, 224, 211, 140, 201, 248, 77, 211, + 140, 1, 248, 239, 211, 140, 1, 218, 211, 211, 140, 1, 233, 56, 211, 140, + 1, 205, 179, 211, 140, 1, 213, 166, 211, 140, 1, 196, 165, 211, 140, 1, + 238, 5, 211, 140, 1, 198, 139, 211, 140, 1, 242, 86, 211, 140, 1, 247, + 29, 211, 140, 1, 215, 137, 211, 140, 1, 230, 234, 211, 140, 1, 214, 54, + 211, 140, 1, 201, 54, 211, 140, 1, 206, 55, 211, 140, 1, 251, 232, 211, + 140, 1, 211, 91, 211, 140, 1, 196, 62, 211, 140, 1, 234, 215, 211, 140, + 1, 223, 87, 211, 140, 1, 234, 216, 211, 140, 1, 211, 56, 211, 140, 1, + 196, 136, 211, 140, 1, 223, 205, 211, 140, 1, 234, 213, 211, 140, 1, 210, + 38, 211, 140, 233, 55, 77, 211, 140, 207, 18, 233, 55, 77, 206, 44, 1, + 233, 45, 233, 36, 233, 60, 233, 175, 206, 44, 1, 196, 12, 206, 44, 1, + 196, 47, 196, 63, 66, 206, 44, 1, 191, 228, 206, 44, 1, 192, 159, 206, + 44, 1, 193, 224, 206, 44, 1, 198, 206, 198, 205, 198, 233, 206, 44, 1, + 233, 248, 206, 44, 1, 251, 90, 65, 206, 44, 1, 211, 37, 74, 206, 44, 1, + 252, 64, 65, 206, 44, 1, 252, 9, 206, 44, 1, 219, 15, 74, 206, 44, 1, + 203, 33, 74, 206, 44, 1, 74, 206, 44, 1, 211, 151, 206, 44, 1, 211, 104, + 206, 44, 1, 207, 154, 207, 169, 207, 69, 146, 206, 44, 1, 222, 39, 206, + 44, 1, 247, 25, 206, 44, 1, 222, 40, 222, 152, 206, 44, 1, 232, 51, 206, + 44, 1, 234, 88, 206, 44, 1, 231, 160, 230, 122, 232, 51, 206, 44, 1, 231, + 200, 206, 44, 1, 192, 248, 192, 239, 193, 224, 206, 44, 1, 230, 82, 230, + 116, 206, 44, 1, 230, 86, 230, 116, 206, 44, 1, 219, 17, 230, 116, 206, + 44, 1, 203, 36, 230, 116, 206, 44, 1, 214, 203, 212, 91, 214, 204, 215, + 61, 206, 44, 1, 203, 34, 215, 61, 206, 44, 1, 235, 135, 206, 44, 1, 223, + 65, 223, 69, 223, 55, 68, 206, 44, 1, 71, 206, 44, 1, 222, 255, 223, 35, + 206, 44, 1, 231, 141, 206, 44, 1, 219, 18, 252, 25, 206, 44, 1, 203, 38, + 65, 206, 44, 1, 223, 47, 234, 61, 206, 44, 1, 209, 247, 210, 18, 210, + 236, 206, 44, 1, 251, 185, 234, 59, 206, 44, 1, 201, 254, 206, 8, 206, + 44, 1, 202, 198, 219, 14, 206, 8, 206, 44, 1, 203, 32, 206, 8, 206, 44, + 1, 247, 193, 206, 44, 1, 191, 166, 206, 44, 1, 198, 120, 198, 132, 196, + 242, 200, 43, 206, 44, 1, 203, 31, 200, 43, 206, 44, 1, 238, 127, 206, + 44, 1, 248, 217, 248, 220, 248, 142, 250, 120, 206, 44, 1, 203, 37, 250, + 120, 206, 44, 1, 235, 134, 206, 44, 1, 211, 70, 206, 44, 1, 234, 167, + 234, 174, 71, 206, 44, 1, 217, 79, 217, 91, 218, 168, 206, 44, 1, 219, + 16, 218, 168, 206, 44, 1, 203, 35, 218, 168, 206, 44, 1, 219, 253, 220, + 101, 219, 26, 172, 206, 44, 1, 235, 136, 206, 44, 1, 223, 135, 206, 44, + 1, 223, 136, 206, 44, 1, 238, 19, 238, 25, 238, 127, 206, 44, 1, 211, 28, + 233, 247, 74, 206, 44, 1, 234, 211, 206, 44, 1, 223, 85, 206, 44, 1, 238, + 148, 206, 44, 1, 247, 143, 206, 44, 1, 247, 41, 206, 44, 1, 201, 108, + 206, 44, 1, 219, 13, 206, 44, 1, 203, 30, 206, 44, 1, 228, 25, 206, 44, + 1, 208, 104, 206, 44, 1, 192, 235, 206, 44, 202, 170, 208, 151, 206, 44, + 215, 129, 208, 151, 206, 44, 238, 218, 208, 151, 206, 44, 250, 252, 113, + 206, 44, 197, 45, 113, 206, 44, 248, 237, 113, 206, 44, 1, 222, 152, 206, + 44, 1, 203, 167, 206, 44, 1, 211, 87, 206, 44, 1, 232, 110, 247, 81, 211, + 36, 206, 44, 1, 232, 110, 247, 81, 223, 68, 206, 44, 1, 232, 110, 247, + 81, 234, 173, 206, 44, 1, 232, 110, 247, 81, 252, 63, 206, 44, 1, 232, + 110, 247, 81, 252, 9, 199, 222, 1, 65, 199, 222, 1, 68, 199, 222, 1, 66, + 199, 222, 1, 155, 199, 222, 1, 231, 240, 199, 222, 1, 214, 68, 199, 222, + 1, 190, 190, 199, 222, 1, 238, 32, 199, 222, 1, 180, 199, 222, 1, 168, + 199, 222, 1, 249, 153, 199, 222, 1, 174, 199, 222, 1, 170, 199, 222, 1, + 165, 199, 222, 1, 173, 199, 222, 1, 193, 190, 199, 222, 1, 188, 199, 222, + 1, 140, 199, 222, 18, 3, 68, 199, 222, 18, 3, 66, 199, 222, 3, 195, 40, + 199, 222, 3, 210, 169, 199, 222, 1, 251, 14, 165, 230, 23, 1, 65, 230, + 23, 1, 68, 230, 23, 1, 66, 230, 23, 1, 155, 230, 23, 1, 231, 240, 230, + 23, 1, 214, 68, 230, 23, 1, 190, 190, 230, 23, 1, 238, 32, 230, 23, 1, + 180, 230, 23, 1, 168, 230, 23, 1, 249, 153, 230, 23, 1, 174, 230, 23, 1, + 170, 230, 23, 1, 165, 230, 23, 1, 173, 230, 23, 1, 193, 190, 230, 23, 1, + 188, 230, 23, 1, 140, 230, 23, 18, 3, 68, 230, 23, 18, 3, 66, 230, 23, 3, + 210, 169, 209, 204, 202, 170, 208, 151, 209, 204, 55, 208, 151, 248, 0, + 1, 65, 248, 0, 1, 68, 248, 0, 1, 66, 248, 0, 1, 155, 248, 0, 1, 231, 240, + 248, 0, 1, 214, 68, 248, 0, 1, 190, 190, 248, 0, 1, 238, 32, 248, 0, 1, + 180, 248, 0, 1, 168, 248, 0, 1, 249, 153, 248, 0, 1, 174, 248, 0, 1, 170, + 248, 0, 1, 165, 248, 0, 1, 173, 248, 0, 1, 193, 190, 248, 0, 1, 188, 248, + 0, 1, 140, 248, 0, 18, 3, 68, 248, 0, 18, 3, 66, 199, 221, 1, 65, 199, + 221, 1, 68, 199, 221, 1, 66, 199, 221, 1, 155, 199, 221, 1, 231, 240, + 199, 221, 1, 214, 68, 199, 221, 1, 190, 190, 199, 221, 1, 238, 32, 199, + 221, 1, 180, 199, 221, 1, 168, 199, 221, 1, 249, 153, 199, 221, 1, 174, + 199, 221, 1, 170, 199, 221, 1, 173, 199, 221, 1, 193, 190, 199, 221, 1, + 188, 199, 221, 18, 3, 68, 199, 221, 18, 3, 66, 95, 1, 155, 95, 1, 221, + 215, 95, 1, 221, 67, 95, 1, 221, 183, 95, 1, 213, 249, 95, 1, 247, 160, + 95, 1, 247, 1, 95, 1, 242, 99, 95, 1, 243, 68, 95, 1, 212, 65, 95, 1, + 238, 32, 95, 1, 197, 120, 95, 1, 236, 174, 95, 1, 197, 115, 95, 1, 213, + 49, 95, 1, 190, 190, 95, 1, 199, 49, 95, 1, 159, 95, 1, 198, 241, 95, 1, + 213, 43, 95, 1, 249, 153, 95, 1, 209, 228, 95, 1, 209, 73, 95, 1, 209, + 199, 95, 1, 216, 12, 95, 1, 192, 12, 95, 1, 206, 162, 95, 1, 219, 43, 95, + 1, 195, 24, 95, 1, 203, 165, 95, 1, 201, 134, 95, 1, 188, 95, 1, 140, 95, + 1, 173, 95, 1, 208, 96, 95, 223, 149, 18, 208, 82, 95, 223, 149, 18, 208, + 95, 95, 223, 149, 18, 208, 57, 95, 223, 149, 18, 208, 51, 95, 223, 149, + 18, 208, 33, 95, 223, 149, 18, 208, 0, 95, 223, 149, 18, 207, 244, 95, + 223, 149, 18, 207, 243, 95, 223, 149, 18, 206, 17, 95, 223, 149, 18, 206, + 10, 95, 223, 149, 18, 218, 183, 95, 223, 149, 18, 218, 171, 95, 223, 149, + 18, 208, 75, 95, 223, 149, 18, 208, 88, 95, 223, 149, 18, 208, 41, 196, + 255, 107, 95, 223, 149, 18, 208, 41, 196, 255, 109, 95, 223, 149, 18, + 208, 77, 95, 18, 223, 133, 251, 37, 95, 18, 223, 133, 252, 206, 95, 18, + 3, 252, 206, 95, 18, 3, 68, 95, 18, 3, 223, 199, 95, 18, 3, 192, 159, 95, + 18, 3, 191, 176, 95, 18, 3, 66, 95, 18, 3, 196, 30, 95, 18, 3, 196, 168, + 95, 18, 3, 211, 151, 95, 18, 3, 170, 95, 18, 3, 223, 226, 95, 18, 3, 71, + 95, 18, 3, 252, 25, 95, 18, 3, 251, 236, 95, 18, 3, 211, 87, 95, 18, 3, + 250, 163, 95, 3, 213, 184, 95, 3, 207, 106, 95, 3, 191, 187, 95, 3, 215, + 91, 95, 3, 197, 229, 95, 3, 249, 90, 95, 3, 206, 151, 95, 3, 198, 90, 95, + 3, 222, 95, 95, 3, 251, 238, 95, 3, 205, 143, 205, 135, 95, 3, 195, 37, + 95, 3, 242, 90, 95, 3, 249, 60, 95, 3, 221, 205, 95, 3, 249, 85, 95, 3, + 247, 131, 209, 146, 220, 186, 95, 3, 219, 205, 198, 59, 95, 3, 248, 205, + 95, 3, 209, 201, 215, 148, 95, 3, 221, 39, 95, 238, 170, 16, 206, 241, + 95, 3, 250, 144, 95, 3, 250, 166, 95, 17, 191, 77, 95, 17, 107, 95, 17, + 109, 95, 17, 138, 95, 17, 134, 95, 17, 149, 95, 17, 169, 95, 17, 175, 95, + 17, 171, 95, 17, 178, 95, 16, 219, 205, 250, 168, 202, 19, 95, 16, 219, + 205, 250, 168, 215, 112, 95, 16, 219, 205, 250, 168, 209, 145, 95, 16, + 219, 205, 250, 168, 248, 240, 95, 16, 219, 205, 250, 168, 247, 236, 95, + 16, 219, 205, 250, 168, 208, 245, 95, 16, 219, 205, 250, 168, 208, 239, + 95, 16, 219, 205, 250, 168, 208, 237, 95, 16, 219, 205, 250, 168, 208, + 243, 95, 16, 219, 205, 250, 168, 208, 241, 104, 248, 158, 104, 234, 120, + 104, 242, 74, 104, 232, 80, 201, 63, 104, 242, 83, 104, 232, 128, 236, + 138, 104, 198, 88, 202, 32, 228, 88, 104, 202, 214, 5, 248, 73, 217, 51, + 104, 217, 87, 242, 74, 104, 217, 87, 232, 80, 201, 63, 104, 213, 164, + 104, 232, 109, 67, 205, 35, 107, 104, 232, 109, 67, 205, 35, 109, 104, + 232, 109, 67, 205, 35, 138, 104, 18, 204, 10, 104, 232, 109, 67, 205, 35, + 134, 104, 17, 191, 77, 104, 17, 107, 104, 17, 109, 104, 17, 138, 104, 17, + 134, 104, 17, 149, 104, 17, 169, 104, 17, 175, 104, 17, 171, 104, 17, + 178, 104, 1, 65, 104, 1, 71, 104, 1, 68, 104, 1, 74, 104, 1, 66, 104, 1, + 211, 151, 104, 1, 196, 152, 104, 1, 234, 188, 104, 1, 180, 104, 1, 251, + 122, 104, 1, 249, 153, 104, 1, 168, 104, 1, 208, 96, 104, 1, 231, 240, + 104, 1, 174, 104, 1, 173, 104, 1, 188, 104, 1, 203, 165, 104, 1, 190, + 190, 104, 1, 238, 32, 104, 1, 247, 1, 104, 1, 223, 32, 104, 1, 170, 104, + 1, 165, 104, 1, 193, 190, 104, 1, 233, 109, 104, 1, 155, 104, 1, 221, + 215, 104, 1, 197, 168, 104, 1, 191, 123, 104, 1, 230, 91, 104, 1, 190, + 255, 104, 1, 219, 159, 104, 1, 191, 57, 104, 1, 243, 95, 104, 1, 198, 88, + 179, 18, 56, 104, 1, 198, 88, 71, 104, 1, 198, 88, 68, 104, 1, 198, 88, + 74, 104, 1, 198, 88, 66, 104, 1, 198, 88, 211, 151, 104, 1, 198, 88, 196, + 152, 104, 1, 198, 88, 251, 122, 104, 1, 198, 88, 249, 153, 104, 1, 198, + 88, 168, 104, 1, 198, 88, 208, 96, 104, 1, 198, 88, 231, 240, 104, 1, + 198, 88, 174, 104, 1, 198, 88, 190, 190, 104, 1, 198, 88, 238, 32, 104, + 1, 198, 88, 247, 1, 104, 1, 198, 88, 223, 32, 104, 1, 198, 88, 197, 168, + 104, 1, 198, 88, 170, 104, 1, 198, 88, 193, 190, 104, 1, 198, 88, 155, + 104, 1, 198, 88, 231, 237, 104, 1, 198, 88, 230, 91, 104, 1, 198, 88, + 222, 243, 104, 1, 198, 88, 213, 209, 104, 1, 198, 88, 235, 35, 104, 1, + 202, 214, 71, 104, 1, 202, 214, 68, 104, 1, 202, 214, 223, 44, 104, 1, + 202, 214, 196, 152, 104, 1, 202, 214, 66, 104, 1, 202, 214, 251, 122, + 104, 1, 202, 214, 155, 104, 1, 202, 214, 231, 240, 104, 1, 202, 214, 140, + 104, 1, 202, 214, 168, 104, 1, 202, 214, 203, 165, 104, 1, 202, 214, 190, + 190, 104, 1, 202, 214, 238, 32, 104, 1, 202, 214, 223, 32, 104, 1, 202, + 214, 233, 109, 104, 1, 202, 214, 231, 237, 104, 1, 202, 214, 230, 91, + 104, 1, 202, 214, 197, 168, 104, 1, 202, 214, 191, 123, 104, 1, 202, 214, + 207, 178, 104, 1, 202, 214, 247, 1, 104, 1, 202, 214, 191, 71, 104, 1, + 217, 87, 68, 104, 1, 217, 87, 155, 104, 1, 217, 87, 165, 104, 1, 217, 87, + 233, 109, 104, 1, 217, 87, 191, 71, 104, 1, 247, 2, 4, 105, 236, 138, + 104, 1, 251, 184, 231, 220, 251, 72, 107, 104, 1, 251, 184, 231, 220, + 195, 36, 107, 104, 1, 251, 184, 231, 220, 237, 247, 104, 1, 251, 184, + 231, 220, 196, 163, 104, 1, 251, 184, 231, 220, 223, 93, 196, 163, 104, + 1, 251, 184, 231, 220, 249, 104, 104, 1, 251, 184, 231, 220, 115, 249, + 104, 104, 1, 251, 184, 231, 220, 65, 104, 1, 251, 184, 231, 220, 68, 104, + 1, 251, 184, 231, 220, 155, 104, 1, 251, 184, 231, 220, 214, 68, 104, 1, + 251, 184, 231, 220, 247, 160, 104, 1, 251, 184, 231, 220, 197, 132, 104, + 1, 251, 184, 231, 220, 197, 120, 104, 1, 251, 184, 231, 220, 237, 191, + 104, 1, 251, 184, 231, 220, 213, 79, 104, 1, 251, 184, 231, 220, 190, + 190, 104, 1, 251, 184, 231, 220, 238, 32, 104, 1, 251, 184, 231, 220, + 168, 104, 1, 251, 184, 231, 220, 209, 228, 104, 1, 251, 184, 231, 220, + 201, 175, 104, 1, 251, 184, 231, 220, 191, 71, 104, 1, 251, 184, 231, + 220, 191, 123, 104, 1, 251, 184, 231, 220, 251, 245, 104, 1, 198, 88, + 251, 184, 231, 220, 190, 190, 104, 1, 198, 88, 251, 184, 231, 220, 191, + 71, 104, 1, 217, 87, 251, 184, 231, 220, 231, 91, 104, 1, 217, 87, 251, + 184, 231, 220, 214, 68, 104, 1, 217, 87, 251, 184, 231, 220, 247, 160, + 104, 1, 217, 87, 251, 184, 231, 220, 222, 252, 104, 1, 217, 87, 251, 184, + 231, 220, 197, 132, 104, 1, 217, 87, 251, 184, 231, 220, 237, 175, 104, + 1, 217, 87, 251, 184, 231, 220, 190, 190, 104, 1, 217, 87, 251, 184, 231, + 220, 237, 68, 104, 1, 217, 87, 251, 184, 231, 220, 201, 175, 104, 1, 217, + 87, 251, 184, 231, 220, 238, 142, 104, 1, 217, 87, 251, 184, 231, 220, + 191, 71, 104, 1, 217, 87, 251, 184, 231, 220, 191, 123, 104, 1, 251, 184, + 231, 220, 132, 66, 104, 1, 251, 184, 231, 220, 132, 170, 104, 1, 217, 87, + 251, 184, 231, 220, 248, 203, 104, 1, 251, 184, 231, 220, 238, 20, 104, + 1, 217, 87, 251, 184, 231, 220, 219, 159, 21, 22, 210, 242, 21, 22, 250, + 131, 21, 22, 252, 160, 21, 22, 193, 128, 21, 22, 208, 251, 21, 22, 210, + 72, 21, 22, 208, 113, 21, 22, 199, 154, 21, 22, 222, 29, 21, 22, 220, + 176, 21, 22, 217, 21, 21, 22, 212, 250, 21, 22, 214, 198, 21, 22, 219, + 248, 21, 22, 201, 252, 21, 22, 205, 103, 21, 22, 203, 18, 21, 22, 203, + 117, 21, 22, 202, 232, 21, 22, 191, 234, 21, 22, 192, 86, 21, 22, 207, + 122, 21, 22, 212, 107, 21, 22, 211, 128, 212, 107, 21, 22, 212, 106, 21, + 22, 211, 128, 212, 106, 21, 22, 212, 105, 21, 22, 211, 128, 212, 105, 21, + 22, 212, 104, 21, 22, 211, 128, 212, 104, 21, 22, 206, 22, 21, 22, 206, + 21, 21, 22, 206, 20, 21, 22, 206, 19, 21, 22, 206, 18, 21, 22, 206, 26, + 21, 22, 211, 128, 210, 236, 21, 22, 211, 128, 200, 43, 21, 22, 211, 128, + 222, 152, 21, 22, 211, 128, 247, 193, 21, 22, 211, 128, 218, 168, 21, 22, + 211, 128, 215, 61, 21, 22, 211, 128, 206, 8, 21, 22, 211, 128, 203, 167, + 21, 22, 234, 202, 193, 224, 21, 22, 193, 102, 193, 224, 21, 22, 53, 2, + 206, 188, 21, 22, 53, 207, 147, 236, 140, 21, 22, 207, 221, 206, 23, 21, + 22, 193, 103, 219, 8, 21, 22, 193, 103, 220, 125, 21, 22, 198, 202, 21, + 22, 198, 204, 21, 22, 197, 112, 21, 22, 197, 114, 21, 22, 197, 119, 21, + 22, 198, 105, 21, 22, 198, 107, 21, 22, 205, 101, 202, 237, 21, 22, 205, + 101, 203, 48, 21, 22, 205, 101, 228, 252, 21, 22, 98, 230, 130, 21, 22, + 98, 237, 103, 231, 157, 21, 22, 98, 231, 237, 21, 22, 98, 230, 135, 21, + 22, 205, 101, 222, 162, 21, 22, 98, 222, 160, 21, 22, 249, 5, 237, 103, + 172, 21, 22, 249, 5, 237, 103, 146, 21, 22, 98, 237, 98, 206, 8, 219, + 122, 195, 1, 219, 175, 219, 122, 1, 155, 219, 122, 1, 221, 215, 219, 122, + 1, 231, 240, 219, 122, 1, 231, 91, 219, 122, 1, 214, 68, 219, 122, 1, + 247, 160, 219, 122, 1, 247, 1, 219, 122, 1, 223, 32, 219, 122, 1, 222, + 252, 219, 122, 1, 192, 108, 219, 122, 1, 190, 190, 219, 122, 1, 199, 49, + 219, 122, 1, 238, 32, 219, 122, 1, 237, 68, 219, 122, 1, 180, 219, 122, + 1, 168, 219, 122, 1, 209, 228, 219, 122, 1, 249, 153, 219, 122, 1, 248, + 203, 219, 122, 1, 174, 219, 122, 1, 170, 219, 122, 1, 165, 219, 122, 1, + 173, 219, 122, 1, 193, 190, 219, 122, 1, 203, 165, 219, 122, 1, 201, 175, + 219, 122, 1, 188, 219, 122, 1, 140, 219, 122, 1, 230, 126, 219, 122, 1, + 198, 26, 219, 122, 18, 3, 65, 219, 122, 18, 3, 68, 219, 122, 18, 3, 66, + 219, 122, 18, 3, 234, 188, 219, 122, 18, 3, 251, 236, 219, 122, 18, 3, + 211, 87, 219, 122, 18, 3, 250, 163, 219, 122, 18, 3, 71, 219, 122, 18, 3, + 74, 219, 122, 200, 239, 1, 170, 219, 122, 200, 239, 1, 165, 219, 122, + 200, 239, 1, 193, 190, 219, 122, 2, 1, 155, 219, 122, 2, 1, 214, 68, 219, + 122, 2, 1, 251, 71, 219, 122, 2, 1, 190, 190, 219, 122, 2, 1, 180, 219, + 122, 2, 1, 168, 219, 122, 2, 1, 174, 219, 122, 2, 1, 165, 219, 122, 2, 1, + 173, 219, 122, 3, 215, 134, 219, 122, 3, 222, 1, 219, 122, 3, 205, 198, + 219, 122, 3, 219, 8, 219, 122, 233, 216, 77, 219, 122, 208, 13, 77, 219, + 122, 17, 191, 77, 219, 122, 17, 107, 219, 122, 17, 109, 219, 122, 17, + 138, 219, 122, 17, 134, 219, 122, 17, 149, 219, 122, 17, 169, 219, 122, + 17, 175, 219, 122, 17, 171, 219, 122, 17, 178, 54, 219, 239, 1, 155, 54, + 219, 239, 1, 192, 220, 54, 219, 239, 1, 214, 68, 54, 219, 239, 1, 197, + 168, 54, 219, 239, 1, 188, 54, 219, 239, 1, 170, 54, 219, 239, 1, 190, + 190, 54, 219, 239, 1, 199, 49, 54, 219, 239, 1, 173, 54, 219, 239, 1, + 168, 54, 219, 239, 1, 209, 228, 54, 219, 239, 1, 174, 54, 219, 239, 1, + 233, 109, 54, 219, 239, 1, 195, 188, 54, 219, 239, 1, 140, 54, 219, 239, + 1, 208, 96, 54, 219, 239, 1, 221, 215, 54, 219, 239, 1, 197, 157, 54, + 219, 239, 1, 180, 54, 219, 239, 1, 65, 54, 219, 239, 1, 68, 54, 219, 239, + 1, 234, 188, 54, 219, 239, 1, 234, 173, 54, 219, 239, 1, 66, 54, 219, + 239, 1, 211, 87, 54, 219, 239, 1, 74, 54, 219, 239, 1, 196, 152, 54, 219, + 239, 1, 71, 54, 219, 239, 1, 250, 161, 54, 219, 239, 1, 251, 236, 54, + 219, 239, 1, 198, 77, 54, 219, 239, 1, 198, 76, 54, 219, 239, 1, 198, 75, + 54, 219, 239, 1, 198, 74, 54, 219, 239, 1, 198, 73, 214, 80, 54, 218, + 219, 1, 137, 208, 96, 214, 80, 54, 218, 219, 1, 130, 208, 96, 214, 80, + 54, 218, 219, 1, 137, 155, 214, 80, 54, 218, 219, 1, 137, 192, 220, 214, + 80, 54, 218, 219, 1, 137, 214, 68, 214, 80, 54, 218, 219, 1, 130, 155, + 214, 80, 54, 218, 219, 1, 130, 192, 220, 214, 80, 54, 218, 219, 1, 130, + 214, 68, 214, 80, 54, 218, 219, 1, 137, 197, 168, 214, 80, 54, 218, 219, + 1, 137, 188, 214, 80, 54, 218, 219, 1, 137, 170, 214, 80, 54, 218, 219, + 1, 130, 197, 168, 214, 80, 54, 218, 219, 1, 130, 188, 214, 80, 54, 218, + 219, 1, 130, 170, 214, 80, 54, 218, 219, 1, 137, 190, 190, 214, 80, 54, + 218, 219, 1, 137, 199, 49, 214, 80, 54, 218, 219, 1, 137, 180, 214, 80, + 54, 218, 219, 1, 130, 190, 190, 214, 80, 54, 218, 219, 1, 130, 199, 49, + 214, 80, 54, 218, 219, 1, 130, 180, 214, 80, 54, 218, 219, 1, 137, 168, + 214, 80, 54, 218, 219, 1, 137, 209, 228, 214, 80, 54, 218, 219, 1, 137, + 174, 214, 80, 54, 218, 219, 1, 130, 168, 214, 80, 54, 218, 219, 1, 130, + 209, 228, 214, 80, 54, 218, 219, 1, 130, 174, 214, 80, 54, 218, 219, 1, + 137, 233, 109, 214, 80, 54, 218, 219, 1, 137, 195, 188, 214, 80, 54, 218, + 219, 1, 137, 173, 214, 80, 54, 218, 219, 1, 130, 233, 109, 214, 80, 54, + 218, 219, 1, 130, 195, 188, 214, 80, 54, 218, 219, 1, 130, 173, 214, 80, + 54, 218, 219, 1, 137, 140, 214, 80, 54, 218, 219, 1, 137, 238, 32, 214, + 80, 54, 218, 219, 1, 137, 249, 153, 214, 80, 54, 218, 219, 1, 130, 140, + 214, 80, 54, 218, 219, 1, 130, 238, 32, 214, 80, 54, 218, 219, 1, 130, + 249, 153, 214, 80, 54, 218, 219, 1, 137, 220, 181, 214, 80, 54, 218, 219, + 1, 137, 192, 185, 214, 80, 54, 218, 219, 1, 130, 220, 181, 214, 80, 54, + 218, 219, 1, 130, 192, 185, 214, 80, 54, 218, 219, 1, 137, 200, 251, 214, + 80, 54, 218, 219, 1, 130, 200, 251, 214, 80, 54, 218, 219, 18, 3, 18, + 203, 28, 214, 80, 54, 218, 219, 18, 3, 252, 206, 214, 80, 54, 218, 219, + 18, 3, 223, 199, 214, 80, 54, 218, 219, 18, 3, 66, 214, 80, 54, 218, 219, + 18, 3, 196, 30, 214, 80, 54, 218, 219, 18, 3, 71, 214, 80, 54, 218, 219, + 18, 3, 252, 25, 214, 80, 54, 218, 219, 18, 3, 74, 214, 80, 54, 218, 219, + 18, 3, 211, 182, 214, 80, 54, 218, 219, 18, 3, 196, 152, 214, 80, 54, + 218, 219, 18, 3, 250, 131, 214, 80, 54, 218, 219, 18, 3, 252, 160, 214, + 80, 54, 218, 219, 18, 3, 196, 21, 214, 80, 54, 218, 219, 18, 3, 210, 242, + 214, 80, 54, 218, 219, 18, 3, 211, 179, 214, 80, 54, 218, 219, 18, 3, + 196, 144, 214, 80, 54, 218, 219, 18, 3, 223, 44, 214, 80, 54, 218, 219, + 1, 53, 196, 12, 214, 80, 54, 218, 219, 1, 53, 214, 70, 214, 80, 54, 218, + 219, 1, 53, 215, 61, 214, 80, 54, 218, 219, 1, 53, 218, 168, 214, 80, 54, + 218, 219, 1, 53, 222, 152, 214, 80, 54, 218, 219, 1, 53, 238, 127, 214, + 80, 54, 218, 219, 1, 53, 250, 120, 214, 80, 54, 218, 219, 163, 217, 55, + 214, 80, 54, 218, 219, 163, 217, 54, 214, 80, 54, 218, 219, 17, 191, 77, + 214, 80, 54, 218, 219, 17, 107, 214, 80, 54, 218, 219, 17, 109, 214, 80, + 54, 218, 219, 17, 138, 214, 80, 54, 218, 219, 17, 134, 214, 80, 54, 218, + 219, 17, 149, 214, 80, 54, 218, 219, 17, 169, 214, 80, 54, 218, 219, 17, + 175, 214, 80, 54, 218, 219, 17, 171, 214, 80, 54, 218, 219, 17, 178, 214, + 80, 54, 218, 219, 128, 17, 107, 214, 80, 54, 218, 219, 3, 220, 107, 214, + 80, 54, 218, 219, 3, 220, 106, 95, 16, 210, 84, 95, 16, 215, 113, 221, + 58, 95, 16, 209, 146, 221, 58, 95, 16, 248, 241, 221, 58, 95, 16, 247, + 237, 221, 58, 95, 16, 208, 246, 221, 58, 95, 16, 208, 240, 221, 58, 95, + 16, 208, 238, 221, 58, 95, 16, 208, 244, 221, 58, 95, 16, 208, 242, 221, + 58, 95, 16, 237, 232, 221, 58, 95, 16, 237, 228, 221, 58, 95, 16, 237, + 227, 221, 58, 95, 16, 237, 230, 221, 58, 95, 16, 237, 229, 221, 58, 95, + 16, 237, 226, 221, 58, 95, 16, 197, 51, 95, 16, 215, 113, 206, 149, 95, + 16, 209, 146, 206, 149, 95, 16, 248, 241, 206, 149, 95, 16, 247, 237, + 206, 149, 95, 16, 208, 246, 206, 149, 95, 16, 208, 240, 206, 149, 95, 16, + 208, 238, 206, 149, 95, 16, 208, 244, 206, 149, 95, 16, 208, 242, 206, + 149, 95, 16, 237, 232, 206, 149, 95, 16, 237, 228, 206, 149, 95, 16, 237, + 227, 206, 149, 95, 16, 237, 230, 206, 149, 95, 16, 237, 229, 206, 149, + 95, 16, 237, 226, 206, 149, 248, 1, 1, 155, 248, 1, 1, 231, 240, 248, 1, + 1, 214, 68, 248, 1, 1, 214, 11, 248, 1, 1, 168, 248, 1, 1, 249, 153, 248, + 1, 1, 174, 248, 1, 1, 215, 166, 248, 1, 1, 190, 190, 248, 1, 1, 238, 32, + 248, 1, 1, 180, 248, 1, 1, 212, 244, 248, 1, 1, 247, 160, 248, 1, 1, 223, + 32, 248, 1, 1, 212, 101, 248, 1, 1, 212, 92, 248, 1, 1, 170, 248, 1, 1, + 165, 248, 1, 1, 173, 248, 1, 1, 195, 188, 248, 1, 1, 188, 248, 1, 1, 65, + 248, 1, 1, 140, 248, 1, 18, 3, 68, 248, 1, 18, 3, 66, 248, 1, 18, 3, 71, + 248, 1, 18, 3, 74, 248, 1, 18, 3, 252, 25, 248, 1, 210, 184, 248, 1, 234, + 95, 79, 205, 53, 54, 128, 1, 137, 155, 54, 128, 1, 137, 221, 215, 54, + 128, 1, 137, 220, 165, 54, 128, 1, 130, 155, 54, 128, 1, 130, 220, 165, + 54, 128, 1, 130, 221, 215, 54, 128, 1, 214, 68, 54, 128, 1, 137, 247, + 160, 54, 128, 1, 137, 247, 1, 54, 128, 1, 130, 247, 160, 54, 128, 1, 130, + 188, 54, 128, 1, 130, 247, 1, 54, 128, 1, 212, 101, 54, 128, 1, 207, 129, + 54, 128, 1, 137, 207, 127, 54, 128, 1, 238, 32, 54, 128, 1, 130, 207, + 127, 54, 128, 1, 207, 138, 54, 128, 1, 137, 190, 190, 54, 128, 1, 137, + 199, 49, 54, 128, 1, 130, 190, 190, 54, 128, 1, 130, 199, 49, 54, 128, 1, + 180, 54, 128, 1, 249, 153, 54, 128, 1, 137, 168, 54, 128, 1, 137, 209, + 228, 54, 128, 1, 137, 233, 109, 54, 128, 1, 130, 168, 54, 128, 1, 130, + 233, 109, 54, 128, 1, 130, 209, 228, 54, 128, 1, 174, 54, 128, 1, 130, + 170, 54, 128, 1, 137, 170, 54, 128, 1, 165, 54, 128, 1, 206, 57, 54, 128, + 1, 173, 54, 128, 1, 218, 218, 54, 128, 1, 193, 190, 54, 128, 1, 137, 203, + 165, 54, 128, 1, 137, 201, 175, 54, 128, 1, 137, 188, 54, 128, 1, 137, + 140, 54, 128, 1, 219, 73, 54, 128, 1, 65, 54, 128, 1, 130, 140, 54, 128, + 1, 68, 54, 128, 1, 223, 199, 54, 128, 1, 66, 54, 128, 1, 196, 30, 54, + 128, 1, 234, 188, 54, 128, 1, 211, 87, 54, 128, 1, 220, 107, 54, 128, 1, + 230, 206, 188, 54, 128, 120, 3, 216, 217, 165, 54, 128, 120, 3, 216, 217, + 173, 54, 128, 120, 3, 220, 126, 199, 190, 220, 96, 54, 128, 3, 217, 113, + 222, 84, 220, 96, 54, 128, 120, 3, 53, 214, 68, 54, 128, 120, 3, 130, + 168, 54, 128, 120, 3, 137, 207, 128, 211, 57, 130, 168, 54, 128, 120, 3, + 174, 54, 128, 120, 3, 249, 153, 54, 128, 120, 3, 188, 54, 128, 3, 205, + 172, 54, 128, 18, 3, 65, 54, 128, 18, 3, 217, 113, 205, 122, 54, 128, 18, + 3, 252, 206, 54, 128, 18, 3, 199, 200, 252, 206, 54, 128, 18, 3, 68, 54, + 128, 18, 3, 223, 199, 54, 128, 18, 3, 196, 152, 54, 128, 18, 3, 196, 29, + 54, 128, 18, 3, 66, 54, 128, 18, 3, 196, 30, 54, 128, 18, 3, 74, 54, 128, + 18, 3, 211, 183, 60, 54, 128, 18, 3, 210, 242, 54, 128, 18, 3, 71, 54, + 128, 18, 3, 252, 25, 54, 128, 18, 3, 211, 87, 54, 128, 18, 3, 251, 236, + 54, 128, 18, 3, 128, 251, 236, 54, 128, 18, 3, 211, 183, 58, 54, 128, 3, + 217, 113, 222, 83, 54, 128, 3, 198, 78, 54, 128, 3, 198, 77, 54, 128, 3, + 221, 171, 198, 76, 54, 128, 3, 221, 171, 198, 75, 54, 128, 3, 221, 171, + 198, 74, 54, 128, 3, 207, 186, 230, 90, 54, 128, 3, 217, 113, 205, 152, + 54, 128, 3, 221, 170, 222, 64, 54, 128, 33, 238, 198, 236, 140, 54, 128, + 228, 243, 17, 191, 77, 54, 128, 228, 243, 17, 107, 54, 128, 228, 243, 17, + 109, 54, 128, 228, 243, 17, 138, 54, 128, 228, 243, 17, 134, 54, 128, + 228, 243, 17, 149, 54, 128, 228, 243, 17, 169, 54, 128, 228, 243, 17, + 175, 54, 128, 228, 243, 17, 171, 54, 128, 228, 243, 17, 178, 54, 128, + 128, 17, 191, 77, 54, 128, 128, 17, 107, 54, 128, 128, 17, 109, 54, 128, + 128, 17, 138, 54, 128, 128, 17, 134, 54, 128, 128, 17, 149, 54, 128, 128, + 17, 169, 54, 128, 128, 17, 175, 54, 128, 128, 17, 171, 54, 128, 128, 17, + 178, 54, 128, 3, 193, 80, 54, 128, 3, 193, 79, 54, 128, 3, 205, 107, 54, + 128, 3, 221, 246, 54, 128, 3, 228, 170, 54, 128, 3, 236, 157, 54, 128, 3, + 207, 18, 206, 122, 207, 138, 54, 128, 3, 217, 113, 192, 109, 54, 128, 3, + 222, 120, 54, 128, 3, 222, 119, 54, 128, 3, 205, 117, 54, 128, 3, 205, + 116, 54, 128, 3, 230, 26, 54, 128, 3, 247, 157, 33, 235, 128, 243, 2, + 252, 60, 33, 237, 41, 33, 223, 139, 33, 235, 119, 57, 33, 197, 225, 236, + 140, 33, 192, 233, 60, 33, 193, 72, 219, 113, 60, 33, 211, 77, 87, 60, + 33, 55, 211, 77, 87, 60, 33, 156, 247, 23, 201, 28, 60, 33, 201, 14, 247, + 23, 201, 28, 60, 33, 210, 115, 58, 33, 55, 210, 115, 58, 33, 210, 115, + 60, 33, 210, 115, 210, 255, 33, 8, 2, 1, 193, 225, 60, 33, 8, 2, 1, 153, + 193, 225, 60, 33, 45, 210, 114, 93, 219, 224, 33, 50, 210, 114, 93, 183, + 33, 45, 210, 114, 248, 233, 219, 224, 33, 50, 210, 114, 248, 233, 183, + 33, 51, 248, 51, 58, 33, 31, 3, 58, 33, 223, 93, 55, 251, 15, 58, 33, + 108, 3, 58, 33, 55, 108, 3, 58, 33, 55, 108, 3, 60, 33, 197, 225, 252, + 47, 252, 60, 33, 8, 2, 1, 223, 115, 232, 51, 33, 8, 2, 1, 223, 115, 146, + 33, 8, 2, 1, 223, 115, 200, 43, 148, 3, 196, 123, 206, 244, 148, 3, 196, + 123, 247, 121, 148, 3, 247, 38, 148, 3, 200, 173, 148, 3, 248, 155, 148, + 1, 251, 214, 148, 1, 251, 215, 199, 123, 148, 1, 223, 194, 148, 1, 223, + 195, 199, 123, 148, 1, 196, 126, 148, 1, 196, 127, 199, 123, 148, 1, 207, + 186, 207, 51, 148, 1, 207, 186, 207, 52, 199, 123, 148, 1, 220, 126, 219, + 199, 148, 1, 220, 126, 219, 200, 199, 123, 148, 1, 234, 145, 148, 1, 251, + 233, 148, 1, 211, 123, 148, 1, 211, 124, 199, 123, 148, 1, 155, 148, 1, + 222, 142, 217, 116, 148, 1, 231, 240, 148, 1, 231, 241, 230, 241, 148, 1, + 214, 68, 148, 1, 247, 160, 148, 1, 247, 161, 220, 112, 148, 1, 223, 32, + 148, 1, 223, 33, 223, 0, 148, 1, 212, 101, 148, 1, 199, 252, 220, 2, 148, + 1, 199, 252, 215, 108, 217, 116, 148, 1, 238, 33, 215, 108, 251, 162, + 148, 1, 238, 33, 215, 108, 217, 116, 148, 1, 215, 7, 207, 141, 148, 1, + 190, 190, 148, 1, 199, 252, 199, 158, 148, 1, 238, 32, 148, 1, 238, 33, + 217, 138, 148, 1, 180, 148, 1, 168, 148, 1, 210, 221, 222, 76, 148, 1, + 249, 153, 148, 1, 249, 154, 222, 2, 148, 1, 174, 148, 1, 170, 148, 1, + 165, 148, 1, 173, 148, 1, 193, 190, 148, 1, 205, 207, 205, 184, 148, 1, + 205, 207, 205, 129, 148, 1, 188, 148, 1, 140, 148, 3, 207, 41, 148, 18, + 3, 199, 123, 148, 18, 3, 196, 122, 148, 18, 3, 196, 123, 205, 125, 148, + 18, 3, 200, 208, 148, 18, 3, 200, 209, 223, 185, 148, 18, 3, 207, 186, + 207, 51, 148, 18, 3, 207, 186, 207, 52, 199, 123, 148, 18, 3, 220, 126, + 219, 199, 148, 18, 3, 220, 126, 219, 200, 199, 123, 148, 18, 3, 199, 201, + 148, 18, 3, 199, 202, 207, 51, 148, 18, 3, 199, 202, 199, 123, 148, 18, + 3, 199, 202, 207, 52, 199, 123, 148, 18, 3, 210, 16, 148, 18, 3, 210, 17, + 199, 123, 148, 252, 37, 252, 36, 148, 1, 222, 107, 205, 124, 148, 1, 221, + 177, 205, 124, 148, 1, 196, 235, 205, 124, 148, 1, 234, 182, 205, 124, + 148, 1, 195, 154, 205, 124, 148, 1, 191, 109, 205, 124, 148, 1, 250, 185, + 205, 124, 148, 1, 251, 14, 222, 202, 148, 17, 191, 77, 148, 17, 107, 148, + 17, 109, 148, 17, 138, 148, 17, 134, 148, 17, 149, 148, 17, 169, 148, 17, + 175, 148, 17, 171, 148, 17, 178, 148, 210, 145, 148, 210, 175, 148, 193, + 64, 148, 247, 94, 210, 168, 148, 247, 94, 202, 190, 148, 247, 94, 210, + 112, 148, 210, 174, 148, 37, 16, 236, 148, 148, 37, 16, 237, 102, 148, + 37, 16, 235, 71, 148, 37, 16, 237, 236, 148, 37, 16, 237, 237, 200, 173, + 148, 37, 16, 236, 242, 148, 37, 16, 238, 24, 148, 37, 16, 237, 77, 148, + 37, 16, 238, 6, 148, 37, 16, 237, 237, 231, 159, 148, 37, 16, 33, 199, + 116, 148, 37, 16, 33, 234, 92, 148, 37, 16, 33, 221, 253, 148, 37, 16, + 33, 221, 255, 148, 37, 16, 33, 223, 5, 148, 37, 16, 33, 221, 254, 4, 223, + 5, 148, 37, 16, 33, 222, 0, 4, 223, 5, 148, 37, 16, 33, 248, 226, 148, + 37, 16, 33, 230, 247, 148, 37, 16, 206, 206, 211, 77, 235, 82, 148, 37, + 16, 206, 206, 211, 77, 238, 22, 148, 37, 16, 206, 206, 242, 219, 197, 80, + 148, 37, 16, 206, 206, 242, 219, 199, 211, 148, 37, 16, 219, 222, 211, + 77, 210, 160, 148, 37, 16, 219, 222, 211, 77, 208, 149, 148, 37, 16, 219, + 222, 242, 219, 209, 104, 148, 37, 16, 219, 222, 242, 219, 209, 86, 148, + 37, 16, 219, 222, 211, 77, 209, 132, 148, 210, 146, 220, 19, 148, 210, + 176, 220, 19, 200, 197, 3, 210, 142, 200, 197, 3, 210, 156, 200, 197, 3, + 210, 152, 200, 197, 1, 65, 200, 197, 1, 68, 200, 197, 1, 66, 200, 197, 1, + 252, 25, 200, 197, 1, 74, 200, 197, 1, 71, 200, 197, 1, 233, 242, 200, + 197, 1, 155, 200, 197, 1, 208, 96, 200, 197, 1, 231, 240, 200, 197, 1, + 214, 68, 200, 197, 1, 247, 160, 200, 197, 1, 223, 32, 200, 197, 1, 191, + 123, 200, 197, 1, 212, 101, 200, 197, 1, 190, 190, 200, 197, 1, 238, 32, + 200, 197, 1, 180, 200, 197, 1, 168, 200, 197, 1, 233, 109, 200, 197, 1, + 195, 188, 200, 197, 1, 249, 153, 200, 197, 1, 174, 200, 197, 1, 170, 200, + 197, 1, 165, 200, 197, 1, 173, 200, 197, 1, 193, 190, 200, 197, 1, 188, + 200, 197, 1, 192, 220, 200, 197, 1, 140, 200, 197, 120, 3, 210, 172, 200, + 197, 120, 3, 210, 144, 200, 197, 120, 3, 210, 141, 200, 197, 18, 3, 210, + 159, 200, 197, 18, 3, 210, 140, 200, 197, 18, 3, 210, 165, 200, 197, 18, + 3, 210, 151, 200, 197, 18, 3, 210, 173, 200, 197, 18, 3, 210, 161, 200, + 197, 3, 210, 177, 200, 197, 3, 195, 40, 200, 197, 120, 3, 210, 100, 174, + 200, 197, 120, 3, 210, 100, 193, 190, 200, 197, 1, 221, 215, 200, 197, 1, + 200, 126, 200, 197, 17, 191, 77, 200, 197, 17, 107, 200, 197, 17, 109, + 200, 197, 17, 138, 200, 197, 17, 134, 200, 197, 17, 149, 200, 197, 17, + 169, 200, 197, 17, 175, 200, 197, 17, 171, 200, 197, 17, 178, 200, 197, + 250, 145, 200, 197, 1, 207, 21, 200, 197, 1, 219, 172, 200, 197, 1, 248, + 203, 200, 197, 1, 53, 222, 152, 200, 197, 1, 53, 218, 168, 249, 63, 1, + 65, 249, 63, 1, 202, 182, 65, 249, 63, 1, 140, 249, 63, 1, 202, 182, 140, + 249, 63, 1, 217, 85, 140, 249, 63, 1, 249, 153, 249, 63, 1, 222, 61, 249, + 153, 249, 63, 1, 168, 249, 63, 1, 202, 182, 168, 249, 63, 1, 180, 249, + 63, 1, 217, 85, 180, 249, 63, 1, 193, 190, 249, 63, 1, 202, 182, 193, + 190, 249, 63, 1, 210, 193, 193, 190, 249, 63, 1, 231, 240, 249, 63, 1, + 202, 182, 231, 240, 249, 63, 1, 223, 32, 249, 63, 1, 238, 32, 249, 63, 1, + 165, 249, 63, 1, 202, 182, 165, 249, 63, 1, 174, 249, 63, 1, 202, 182, + 174, 249, 63, 1, 202, 0, 190, 190, 249, 63, 1, 213, 16, 190, 190, 249, + 63, 1, 188, 249, 63, 1, 202, 182, 188, 249, 63, 1, 217, 85, 188, 249, 63, + 1, 170, 249, 63, 1, 202, 182, 170, 249, 63, 1, 214, 68, 249, 63, 1, 173, + 249, 63, 1, 202, 182, 173, 249, 63, 1, 212, 101, 249, 63, 1, 247, 160, + 249, 63, 1, 214, 162, 249, 63, 1, 217, 11, 249, 63, 1, 68, 249, 63, 1, + 66, 249, 63, 3, 198, 82, 249, 63, 18, 3, 71, 249, 63, 18, 3, 210, 193, + 71, 249, 63, 18, 3, 234, 188, 249, 63, 18, 3, 68, 249, 63, 18, 3, 222, + 61, 68, 249, 63, 18, 3, 74, 249, 63, 18, 3, 222, 61, 74, 249, 63, 18, 3, + 66, 249, 63, 18, 3, 126, 40, 202, 182, 188, 249, 63, 120, 3, 214, 70, + 249, 63, 120, 3, 230, 116, 249, 63, 210, 154, 249, 63, 210, 150, 249, 63, + 16, 248, 165, 215, 7, 216, 163, 249, 63, 16, 248, 165, 209, 138, 249, 63, + 16, 248, 165, 222, 179, 249, 63, 16, 248, 165, 210, 154, 219, 183, 1, + 155, 219, 183, 1, 221, 94, 219, 183, 1, 221, 215, 219, 183, 1, 231, 240, + 219, 183, 1, 231, 19, 219, 183, 1, 214, 68, 219, 183, 1, 247, 160, 219, + 183, 1, 247, 1, 219, 183, 1, 223, 32, 219, 183, 1, 212, 101, 219, 183, 1, + 190, 190, 219, 183, 1, 199, 49, 219, 183, 1, 238, 32, 219, 183, 1, 180, + 219, 183, 1, 168, 219, 183, 1, 209, 110, 219, 183, 1, 209, 228, 219, 183, + 1, 233, 109, 219, 183, 1, 232, 219, 219, 183, 1, 249, 153, 219, 183, 1, + 248, 140, 219, 183, 1, 174, 219, 183, 1, 216, 19, 219, 183, 1, 197, 168, + 219, 183, 1, 197, 157, 219, 183, 1, 235, 35, 219, 183, 1, 170, 219, 183, + 1, 165, 219, 183, 1, 173, 219, 183, 1, 140, 219, 183, 1, 229, 111, 219, + 183, 1, 195, 188, 219, 183, 1, 188, 219, 183, 1, 203, 165, 219, 183, 1, + 193, 190, 219, 183, 1, 65, 219, 183, 200, 239, 1, 170, 219, 183, 200, + 239, 1, 165, 219, 183, 18, 3, 252, 206, 219, 183, 18, 3, 68, 219, 183, + 18, 3, 74, 219, 183, 18, 3, 211, 87, 219, 183, 18, 3, 66, 219, 183, 18, + 3, 196, 30, 219, 183, 18, 3, 71, 219, 183, 120, 3, 222, 152, 219, 183, + 120, 3, 218, 168, 219, 183, 120, 3, 172, 219, 183, 120, 3, 215, 61, 219, + 183, 120, 3, 210, 236, 219, 183, 120, 3, 146, 219, 183, 120, 3, 200, 43, + 219, 183, 120, 3, 212, 73, 219, 183, 120, 3, 222, 83, 219, 183, 3, 207, + 139, 219, 183, 3, 212, 141, 219, 183, 208, 152, 199, 247, 219, 183, 208, + 152, 212, 85, 198, 196, 199, 247, 219, 183, 208, 152, 247, 10, 219, 183, + 208, 152, 197, 149, 247, 10, 219, 183, 208, 152, 197, 148, 219, 183, 17, + 191, 77, 219, 183, 17, 107, 219, 183, 17, 109, 219, 183, 17, 138, 219, + 183, 17, 134, 219, 183, 17, 149, 219, 183, 17, 169, 219, 183, 17, 175, + 219, 183, 17, 171, 219, 183, 17, 178, 219, 183, 1, 197, 132, 219, 183, 1, + 197, 120, 219, 183, 1, 237, 191, 211, 121, 243, 88, 17, 191, 77, 211, + 121, 243, 88, 17, 107, 211, 121, 243, 88, 17, 109, 211, 121, 243, 88, 17, + 138, 211, 121, 243, 88, 17, 134, 211, 121, 243, 88, 17, 149, 211, 121, + 243, 88, 17, 169, 211, 121, 243, 88, 17, 175, 211, 121, 243, 88, 17, 171, + 211, 121, 243, 88, 17, 178, 211, 121, 243, 88, 1, 173, 211, 121, 243, 88, + 1, 250, 182, 211, 121, 243, 88, 1, 251, 253, 211, 121, 243, 88, 1, 251, + 122, 211, 121, 243, 88, 1, 251, 207, 211, 121, 243, 88, 1, 220, 125, 211, + 121, 243, 88, 1, 252, 168, 211, 121, 243, 88, 1, 252, 169, 211, 121, 243, + 88, 1, 252, 167, 211, 121, 243, 88, 1, 252, 161, 211, 121, 243, 88, 1, + 219, 146, 211, 121, 243, 88, 1, 223, 68, 211, 121, 243, 88, 1, 223, 200, + 211, 121, 243, 88, 1, 223, 90, 211, 121, 243, 88, 1, 223, 77, 211, 121, + 243, 88, 1, 218, 225, 211, 121, 243, 88, 1, 196, 160, 211, 121, 243, 88, + 1, 196, 158, 211, 121, 243, 88, 1, 196, 83, 211, 121, 243, 88, 1, 196, + 21, 211, 121, 243, 88, 1, 219, 238, 211, 121, 243, 88, 1, 234, 56, 211, + 121, 243, 88, 1, 234, 191, 211, 121, 243, 88, 1, 234, 103, 211, 121, 243, + 88, 1, 234, 26, 211, 121, 243, 88, 1, 219, 43, 211, 121, 243, 88, 1, 211, + 24, 211, 121, 243, 88, 1, 211, 178, 211, 121, 243, 88, 1, 211, 9, 211, + 121, 243, 88, 1, 211, 136, 211, 121, 243, 88, 215, 156, 197, 97, 211, + 121, 243, 88, 231, 235, 197, 98, 211, 121, 243, 88, 215, 150, 197, 98, + 211, 121, 243, 88, 207, 66, 211, 121, 243, 88, 209, 226, 211, 121, 243, + 88, 251, 244, 211, 121, 243, 88, 208, 152, 215, 146, 211, 121, 243, 88, + 208, 152, 55, 215, 146, 38, 2, 1, 206, 113, 195, 153, 38, 2, 1, 219, 12, + 237, 146, 38, 2, 1, 214, 215, 74, 38, 2, 1, 193, 78, 234, 22, 38, 2, 1, + 199, 200, 199, 145, 38, 2, 1, 198, 221, 199, 145, 38, 2, 1, 199, 200, + 230, 17, 56, 38, 2, 1, 199, 200, 192, 95, 38, 2, 1, 196, 108, 196, 128, + 101, 215, 157, 6, 1, 251, 132, 101, 215, 157, 6, 1, 249, 101, 101, 215, + 157, 6, 1, 231, 210, 101, 215, 157, 6, 1, 236, 150, 101, 215, 157, 6, 1, + 234, 103, 101, 215, 157, 6, 1, 195, 49, 101, 215, 157, 6, 1, 191, 80, + 101, 215, 157, 6, 1, 199, 193, 101, 215, 157, 6, 1, 223, 162, 101, 215, + 157, 6, 1, 222, 87, 101, 215, 157, 6, 1, 220, 7, 101, 215, 157, 6, 1, + 217, 90, 101, 215, 157, 6, 1, 214, 216, 101, 215, 157, 6, 1, 211, 104, + 101, 215, 157, 6, 1, 210, 131, 101, 215, 157, 6, 1, 191, 67, 101, 215, + 157, 6, 1, 207, 163, 101, 215, 157, 6, 1, 205, 142, 101, 215, 157, 6, 1, + 199, 179, 101, 215, 157, 6, 1, 196, 113, 101, 215, 157, 6, 1, 209, 220, + 101, 215, 157, 6, 1, 221, 200, 101, 215, 157, 6, 1, 231, 82, 101, 215, + 157, 6, 1, 208, 81, 101, 215, 157, 6, 1, 203, 69, 101, 215, 157, 6, 1, + 243, 81, 101, 215, 157, 6, 1, 247, 128, 101, 215, 157, 6, 1, 222, 234, + 101, 215, 157, 6, 1, 243, 18, 101, 215, 157, 6, 1, 246, 241, 101, 215, + 157, 6, 1, 192, 218, 101, 215, 157, 6, 1, 222, 249, 101, 215, 157, 6, 1, + 230, 87, 101, 215, 157, 6, 1, 229, 245, 101, 215, 157, 6, 1, 229, 145, + 101, 215, 157, 6, 1, 193, 125, 101, 215, 157, 6, 1, 230, 19, 101, 215, + 157, 6, 1, 229, 11, 101, 215, 157, 6, 1, 233, 23, 101, 215, 157, 6, 1, + 192, 14, 101, 215, 157, 6, 1, 234, 123, 101, 215, 157, 6, 1, 153, 231, + 210, 101, 215, 157, 6, 1, 251, 230, 101, 215, 157, 6, 1, 252, 14, 101, + 215, 157, 6, 1, 230, 17, 56, 101, 215, 157, 6, 1, 220, 116, 56, 200, 197, + 208, 152, 248, 165, 200, 166, 200, 197, 208, 152, 248, 165, 210, 155, + 200, 197, 208, 152, 248, 165, 208, 139, 200, 197, 208, 152, 248, 165, + 247, 145, 200, 197, 208, 152, 248, 165, 219, 173, 205, 121, 200, 197, + 208, 152, 248, 165, 222, 142, 205, 121, 200, 197, 208, 152, 248, 165, + 238, 33, 205, 121, 200, 197, 208, 152, 248, 165, 249, 154, 205, 121, 195, + 150, 163, 222, 57, 195, 150, 163, 203, 130, 195, 150, 163, 208, 225, 195, + 150, 3, 213, 187, 195, 150, 3, 192, 117, 216, 82, 200, 156, 195, 150, + 163, 192, 117, 251, 249, 223, 149, 200, 156, 195, 150, 163, 192, 117, + 223, 149, 200, 156, 195, 150, 163, 192, 117, 222, 45, 223, 149, 200, 156, + 195, 150, 163, 247, 122, 60, 195, 150, 163, 192, 117, 222, 45, 223, 149, + 200, 157, 205, 88, 195, 150, 163, 55, 200, 156, 195, 150, 163, 197, 225, + 200, 156, 195, 150, 163, 222, 45, 251, 73, 195, 150, 163, 75, 60, 195, + 150, 163, 105, 185, 60, 195, 150, 163, 115, 185, 60, 195, 150, 163, 206, + 196, 222, 56, 223, 149, 200, 156, 195, 150, 163, 250, 179, 223, 149, 200, + 156, 195, 150, 3, 195, 36, 200, 156, 195, 150, 3, 195, 36, 196, 154, 195, + 150, 3, 207, 18, 195, 36, 196, 154, 195, 150, 3, 195, 36, 251, 73, 195, + 150, 3, 207, 18, 195, 36, 251, 73, 195, 150, 3, 195, 36, 196, 155, 4, + 199, 215, 195, 150, 3, 195, 36, 251, 74, 4, 199, 215, 195, 150, 3, 251, + 72, 251, 88, 195, 150, 3, 251, 72, 249, 120, 195, 150, 3, 251, 72, 195, + 178, 195, 150, 3, 251, 72, 195, 179, 4, 199, 215, 195, 150, 3, 198, 126, + 195, 150, 3, 229, 180, 179, 251, 71, 195, 150, 3, 179, 251, 71, 195, 150, + 3, 206, 70, 179, 251, 71, 195, 150, 3, 251, 72, 196, 162, 215, 136, 195, + 150, 3, 251, 10, 195, 150, 3, 206, 122, 251, 10, 195, 150, 163, 247, 122, + 58, 195, 150, 3, 222, 237, 195, 150, 3, 196, 75, 195, 150, 3, 250, 177, + 195, 150, 163, 206, 189, 58, 195, 150, 163, 55, 206, 189, 58, 195, 150, + 3, 55, 251, 72, 251, 88, 8, 1, 2, 6, 65, 8, 1, 2, 6, 252, 25, 8, 2, 1, + 153, 252, 25, 8, 1, 2, 6, 249, 82, 250, 120, 8, 1, 2, 6, 247, 193, 8, 1, + 2, 6, 238, 127, 8, 1, 2, 6, 233, 248, 8, 1, 2, 6, 71, 8, 2, 1, 153, 211, + 77, 71, 8, 2, 1, 153, 68, 8, 1, 2, 6, 223, 35, 8, 1, 2, 6, 222, 152, 8, + 1, 2, 6, 220, 143, 4, 106, 8, 1, 2, 6, 218, 168, 8, 1, 2, 6, 207, 18, + 215, 61, 8, 1, 2, 6, 74, 8, 1, 2, 6, 211, 77, 74, 8, 2, 1, 202, 206, 74, + 8, 2, 1, 202, 206, 211, 77, 74, 8, 2, 1, 202, 206, 187, 4, 106, 8, 2, 1, + 153, 211, 151, 8, 1, 2, 6, 211, 19, 8, 2, 1, 198, 54, 132, 74, 8, 2, 1, + 248, 77, 132, 74, 8, 1, 2, 6, 210, 236, 8, 1, 2, 6, 207, 18, 146, 8, 1, + 2, 6, 153, 146, 8, 1, 2, 6, 200, 43, 8, 1, 2, 6, 66, 8, 2, 1, 202, 206, + 66, 8, 2, 1, 202, 206, 237, 40, 66, 8, 2, 1, 202, 206, 153, 218, 168, 8, + 1, 2, 6, 196, 12, 8, 1, 2, 6, 193, 224, 8, 1, 2, 6, 191, 166, 8, 1, 2, 6, + 233, 178, 8, 1, 195, 20, 220, 8, 201, 216, 8, 1, 251, 230, 35, 1, 2, 6, + 231, 211, 35, 1, 2, 6, 220, 31, 35, 1, 2, 6, 209, 185, 35, 1, 2, 6, 207, + 3, 35, 1, 2, 6, 208, 176, 38, 1, 2, 6, 234, 140, 52, 1, 6, 65, 52, 1, 6, + 252, 25, 52, 1, 6, 250, 120, 52, 1, 6, 249, 82, 250, 120, 52, 1, 6, 238, + 127, 52, 1, 6, 71, 52, 1, 6, 207, 18, 71, 52, 1, 6, 232, 51, 52, 1, 6, + 230, 116, 52, 1, 6, 68, 52, 1, 6, 223, 35, 52, 1, 6, 222, 152, 52, 1, 6, + 172, 52, 1, 6, 218, 168, 52, 1, 6, 215, 61, 52, 1, 6, 207, 18, 215, 61, + 52, 1, 6, 74, 52, 1, 6, 211, 19, 52, 1, 6, 210, 236, 52, 1, 6, 146, 52, + 1, 6, 200, 43, 52, 1, 6, 66, 52, 1, 6, 193, 224, 52, 1, 2, 65, 52, 1, 2, + 153, 65, 52, 1, 2, 251, 160, 52, 1, 2, 153, 252, 25, 52, 1, 2, 250, 120, + 52, 1, 2, 238, 127, 52, 1, 2, 71, 52, 1, 2, 205, 86, 52, 1, 2, 211, 77, + 71, 52, 1, 2, 153, 211, 77, 71, 52, 1, 2, 232, 51, 52, 1, 2, 153, 68, 52, + 1, 2, 222, 152, 52, 1, 2, 218, 168, 52, 1, 2, 234, 88, 52, 1, 2, 74, 52, + 1, 2, 211, 77, 74, 52, 1, 2, 198, 54, 132, 74, 52, 1, 2, 248, 77, 132, + 74, 52, 1, 2, 210, 236, 52, 1, 2, 200, 43, 52, 1, 2, 66, 52, 1, 2, 202, + 206, 66, 52, 1, 2, 153, 218, 168, 52, 1, 2, 196, 12, 52, 1, 2, 251, 230, + 52, 1, 2, 248, 212, 52, 1, 2, 35, 231, 211, 52, 1, 2, 237, 106, 52, 1, 2, + 35, 209, 211, 52, 1, 2, 243, 95, 8, 200, 230, 2, 1, 68, 8, 200, 230, 2, + 1, 146, 8, 200, 230, 2, 1, 66, 8, 200, 230, 2, 1, 196, 12, 35, 200, 230, + 2, 1, 248, 212, 35, 200, 230, 2, 1, 231, 211, 35, 200, 230, 2, 1, 207, 3, + 35, 200, 230, 2, 1, 209, 211, 35, 200, 230, 2, 1, 243, 95, 8, 2, 1, 196, + 152, 8, 2, 1, 78, 4, 82, 198, 152, 8, 2, 1, 238, 128, 4, 82, 198, 152, 8, + 2, 1, 233, 176, 4, 82, 198, 152, 8, 2, 1, 218, 169, 4, 82, 198, 152, 8, + 2, 1, 215, 62, 4, 82, 198, 152, 8, 2, 1, 210, 237, 4, 82, 198, 152, 8, 2, + 1, 207, 222, 4, 82, 198, 152, 8, 2, 1, 207, 222, 4, 232, 234, 23, 82, + 198, 152, 8, 2, 1, 206, 9, 4, 82, 198, 152, 8, 2, 1, 200, 44, 4, 82, 198, + 152, 8, 2, 1, 191, 167, 4, 82, 198, 152, 8, 2, 1, 153, 232, 51, 52, 1, + 38, 234, 103, 8, 2, 1, 223, 115, 232, 51, 8, 2, 1, 199, 52, 4, 201, 32, + 8, 2, 6, 1, 228, 74, 4, 106, 8, 2, 1, 223, 84, 4, 106, 8, 2, 1, 210, 237, + 4, 106, 8, 2, 6, 1, 126, 4, 106, 8, 2, 1, 196, 71, 4, 106, 8, 2, 1, 78, + 4, 210, 192, 102, 8, 2, 1, 238, 128, 4, 210, 192, 102, 8, 2, 1, 233, 176, + 4, 210, 192, 102, 8, 2, 1, 232, 52, 4, 210, 192, 102, 8, 2, 1, 222, 153, + 4, 210, 192, 102, 8, 2, 1, 220, 143, 4, 210, 192, 102, 8, 2, 1, 218, 169, + 4, 210, 192, 102, 8, 2, 1, 215, 62, 4, 210, 192, 102, 8, 2, 1, 210, 237, + 4, 210, 192, 102, 8, 2, 1, 207, 222, 4, 210, 192, 102, 8, 2, 1, 206, 9, + 4, 210, 192, 102, 8, 2, 1, 234, 13, 4, 210, 192, 102, 8, 2, 1, 196, 13, + 4, 210, 192, 102, 8, 2, 1, 192, 236, 4, 210, 192, 102, 8, 2, 1, 191, 167, + 4, 210, 192, 102, 8, 2, 1, 42, 4, 207, 24, 102, 8, 2, 1, 251, 161, 4, + 207, 24, 102, 8, 2, 1, 238, 128, 4, 228, 251, 23, 199, 215, 8, 2, 1, 235, + 15, 4, 207, 24, 102, 8, 2, 1, 211, 77, 235, 15, 4, 207, 24, 102, 8, 2, 1, + 207, 18, 211, 77, 235, 15, 4, 207, 24, 102, 8, 2, 1, 205, 87, 4, 207, 24, + 102, 8, 2, 1, 228, 74, 4, 207, 24, 102, 8, 2, 1, 211, 77, 187, 4, 207, + 24, 102, 8, 2, 1, 234, 13, 4, 207, 24, 102, 8, 2, 1, 126, 4, 207, 24, + 102, 8, 2, 1, 233, 179, 4, 207, 24, 102, 52, 1, 2, 153, 251, 160, 52, 1, + 2, 247, 193, 52, 1, 2, 247, 194, 4, 238, 175, 52, 1, 2, 233, 248, 52, 1, + 2, 207, 18, 211, 77, 71, 52, 1, 2, 233, 175, 52, 1, 2, 236, 139, 223, 36, + 4, 106, 52, 1, 2, 27, 232, 51, 52, 1, 2, 153, 230, 116, 52, 1, 2, 228, + 74, 4, 106, 52, 1, 2, 223, 83, 52, 1, 2, 6, 68, 52, 1, 2, 6, 228, 74, 4, + 106, 52, 1, 2, 223, 36, 4, 238, 212, 52, 1, 2, 220, 143, 4, 207, 24, 102, + 52, 1, 2, 220, 143, 4, 210, 192, 102, 52, 1, 2, 6, 172, 52, 1, 2, 218, + 169, 4, 102, 52, 1, 2, 153, 218, 169, 4, 179, 219, 212, 52, 1, 2, 215, + 62, 4, 45, 102, 52, 1, 2, 215, 62, 4, 207, 24, 102, 52, 1, 2, 6, 215, 61, + 52, 1, 2, 249, 82, 74, 52, 1, 2, 209, 211, 52, 1, 2, 206, 9, 4, 102, 52, + 1, 2, 234, 12, 52, 1, 2, 200, 44, 4, 210, 192, 102, 52, 1, 2, 126, 164, + 52, 1, 2, 196, 70, 52, 1, 2, 6, 66, 52, 1, 2, 196, 13, 4, 102, 52, 1, 2, + 153, 196, 12, 52, 1, 2, 191, 166, 52, 1, 2, 191, 167, 4, 207, 24, 102, + 52, 1, 2, 191, 167, 4, 238, 175, 52, 1, 2, 233, 178, 52, 1, 2, 199, 15, + 33, 235, 138, 230, 211, 252, 60, 33, 235, 138, 252, 47, 252, 60, 33, 202, + 59, 60, 33, 200, 164, 77, 33, 217, 145, 33, 230, 208, 33, 217, 143, 33, + 252, 44, 33, 230, 209, 33, 252, 45, 33, 8, 2, 1, 207, 222, 60, 33, 248, + 35, 33, 217, 144, 33, 55, 243, 2, 58, 33, 211, 139, 58, 33, 191, 21, 60, + 33, 223, 69, 60, 33, 196, 63, 58, 33, 196, 46, 58, 33, 8, 2, 1, 232, 203, + 211, 77, 42, 58, 33, 8, 2, 1, 252, 25, 33, 8, 2, 1, 251, 68, 33, 8, 2, 1, + 250, 146, 33, 8, 2, 1, 247, 194, 247, 35, 33, 8, 2, 1, 223, 115, 238, + 127, 33, 8, 2, 1, 233, 248, 33, 8, 2, 1, 232, 51, 33, 8, 1, 2, 6, 232, + 51, 33, 8, 2, 1, 222, 152, 33, 8, 2, 1, 172, 33, 8, 1, 2, 6, 172, 33, 8, + 1, 2, 6, 218, 168, 33, 8, 2, 1, 215, 61, 33, 8, 1, 2, 6, 215, 61, 33, 8, + 1, 2, 6, 146, 33, 8, 2, 1, 207, 222, 206, 116, 33, 8, 2, 1, 206, 8, 33, + 8, 2, 1, 179, 206, 8, 33, 8, 2, 1, 191, 166, 33, 8, 2, 1, 251, 160, 33, + 8, 2, 1, 250, 120, 33, 8, 2, 1, 248, 212, 33, 8, 2, 1, 205, 86, 33, 8, 2, + 1, 233, 175, 33, 8, 2, 1, 220, 143, 4, 55, 82, 198, 152, 33, 8, 2, 1, + 187, 4, 156, 247, 23, 106, 33, 8, 2, 1, 210, 236, 33, 8, 2, 1, 234, 12, + 33, 8, 2, 1, 126, 4, 156, 247, 23, 106, 33, 8, 2, 1, 193, 224, 33, 8, 2, + 1, 42, 4, 237, 42, 33, 8, 2, 1, 187, 4, 237, 42, 33, 8, 2, 1, 126, 4, + 237, 42, 33, 133, 199, 229, 58, 33, 222, 36, 93, 183, 33, 222, 36, 93, + 219, 224, 33, 75, 93, 219, 224, 33, 193, 78, 223, 93, 248, 29, 60, 33, + 75, 248, 233, 219, 224, 33, 237, 115, 77, 33, 55, 223, 93, 248, 37, 60, + 33, 251, 165, 234, 45, 119, 60, 33, 45, 250, 236, 58, 33, 50, 250, 236, + 23, 144, 250, 236, 60, 8, 6, 1, 42, 4, 206, 189, 60, 8, 2, 1, 42, 4, 206, + 189, 60, 8, 6, 1, 78, 4, 75, 58, 8, 2, 1, 78, 4, 75, 58, 8, 6, 1, 78, 4, + 75, 60, 8, 2, 1, 78, 4, 75, 60, 8, 6, 1, 78, 4, 219, 113, 60, 8, 2, 1, + 78, 4, 219, 113, 60, 8, 6, 1, 247, 194, 4, 247, 36, 23, 252, 46, 8, 2, 1, + 247, 194, 4, 247, 36, 23, 252, 46, 8, 6, 1, 238, 128, 4, 75, 58, 8, 2, 1, + 238, 128, 4, 75, 58, 8, 6, 1, 238, 128, 4, 75, 60, 8, 2, 1, 238, 128, 4, + 75, 60, 8, 6, 1, 238, 128, 4, 219, 113, 60, 8, 2, 1, 238, 128, 4, 219, + 113, 60, 8, 6, 1, 238, 128, 4, 247, 35, 8, 2, 1, 238, 128, 4, 247, 35, 8, + 6, 1, 238, 128, 4, 243, 2, 60, 8, 2, 1, 238, 128, 4, 243, 2, 60, 8, 6, 1, + 235, 15, 4, 217, 147, 23, 230, 210, 8, 2, 1, 235, 15, 4, 217, 147, 23, + 230, 210, 8, 6, 1, 235, 15, 4, 217, 147, 23, 252, 46, 8, 2, 1, 235, 15, + 4, 217, 147, 23, 252, 46, 8, 6, 1, 235, 15, 4, 243, 2, 60, 8, 2, 1, 235, + 15, 4, 243, 2, 60, 8, 6, 1, 235, 15, 4, 198, 153, 60, 8, 2, 1, 235, 15, + 4, 198, 153, 60, 8, 6, 1, 235, 15, 4, 247, 36, 23, 248, 36, 8, 2, 1, 235, + 15, 4, 247, 36, 23, 248, 36, 8, 6, 1, 233, 176, 4, 75, 58, 8, 2, 1, 233, + 176, 4, 75, 58, 8, 6, 1, 232, 52, 4, 217, 146, 8, 2, 1, 232, 52, 4, 217, + 146, 8, 6, 1, 230, 117, 4, 75, 58, 8, 2, 1, 230, 117, 4, 75, 58, 8, 6, 1, + 230, 117, 4, 75, 60, 8, 2, 1, 230, 117, 4, 75, 60, 8, 6, 1, 230, 117, 4, + 237, 42, 8, 2, 1, 230, 117, 4, 237, 42, 8, 6, 1, 230, 117, 4, 247, 35, 8, + 2, 1, 230, 117, 4, 247, 35, 8, 6, 1, 230, 117, 4, 248, 37, 60, 8, 2, 1, + 230, 117, 4, 248, 37, 60, 8, 6, 1, 228, 74, 4, 198, 153, 60, 8, 2, 1, + 228, 74, 4, 198, 153, 60, 8, 6, 1, 228, 74, 4, 237, 43, 23, 252, 46, 8, + 2, 1, 228, 74, 4, 237, 43, 23, 252, 46, 8, 6, 1, 222, 153, 4, 252, 46, 8, + 2, 1, 222, 153, 4, 252, 46, 8, 6, 1, 222, 153, 4, 75, 60, 8, 2, 1, 222, + 153, 4, 75, 60, 8, 6, 1, 222, 153, 4, 219, 113, 60, 8, 2, 1, 222, 153, 4, + 219, 113, 60, 8, 6, 1, 220, 143, 4, 75, 60, 8, 2, 1, 220, 143, 4, 75, 60, + 8, 6, 1, 220, 143, 4, 75, 248, 233, 23, 217, 146, 8, 2, 1, 220, 143, 4, + 75, 248, 233, 23, 217, 146, 8, 6, 1, 220, 143, 4, 219, 113, 60, 8, 2, 1, + 220, 143, 4, 219, 113, 60, 8, 6, 1, 220, 143, 4, 243, 2, 60, 8, 2, 1, + 220, 143, 4, 243, 2, 60, 8, 6, 1, 218, 169, 4, 252, 46, 8, 2, 1, 218, + 169, 4, 252, 46, 8, 6, 1, 218, 169, 4, 75, 58, 8, 2, 1, 218, 169, 4, 75, + 58, 8, 6, 1, 218, 169, 4, 75, 60, 8, 2, 1, 218, 169, 4, 75, 60, 8, 6, 1, + 215, 62, 4, 75, 58, 8, 2, 1, 215, 62, 4, 75, 58, 8, 6, 1, 215, 62, 4, 75, + 60, 8, 2, 1, 215, 62, 4, 75, 60, 8, 6, 1, 215, 62, 4, 219, 113, 60, 8, 2, + 1, 215, 62, 4, 219, 113, 60, 8, 6, 1, 215, 62, 4, 243, 2, 60, 8, 2, 1, + 215, 62, 4, 243, 2, 60, 8, 6, 1, 187, 4, 198, 153, 23, 252, 46, 8, 2, 1, + 187, 4, 198, 153, 23, 252, 46, 8, 6, 1, 187, 4, 198, 153, 23, 237, 42, 8, + 2, 1, 187, 4, 198, 153, 23, 237, 42, 8, 6, 1, 187, 4, 217, 147, 23, 230, + 210, 8, 2, 1, 187, 4, 217, 147, 23, 230, 210, 8, 6, 1, 187, 4, 217, 147, + 23, 252, 46, 8, 2, 1, 187, 4, 217, 147, 23, 252, 46, 8, 6, 1, 210, 237, + 4, 252, 46, 8, 2, 1, 210, 237, 4, 252, 46, 8, 6, 1, 210, 237, 4, 75, 58, + 8, 2, 1, 210, 237, 4, 75, 58, 8, 6, 1, 207, 222, 4, 75, 58, 8, 2, 1, 207, + 222, 4, 75, 58, 8, 6, 1, 207, 222, 4, 75, 60, 8, 2, 1, 207, 222, 4, 75, + 60, 8, 6, 1, 207, 222, 4, 75, 248, 233, 23, 217, 146, 8, 2, 1, 207, 222, + 4, 75, 248, 233, 23, 217, 146, 8, 6, 1, 207, 222, 4, 219, 113, 60, 8, 2, + 1, 207, 222, 4, 219, 113, 60, 8, 6, 1, 206, 9, 4, 75, 58, 8, 2, 1, 206, + 9, 4, 75, 58, 8, 6, 1, 206, 9, 4, 75, 60, 8, 2, 1, 206, 9, 4, 75, 60, 8, + 6, 1, 206, 9, 4, 252, 47, 23, 75, 58, 8, 2, 1, 206, 9, 4, 252, 47, 23, + 75, 58, 8, 6, 1, 206, 9, 4, 247, 93, 23, 75, 58, 8, 2, 1, 206, 9, 4, 247, + 93, 23, 75, 58, 8, 6, 1, 206, 9, 4, 75, 248, 233, 23, 75, 58, 8, 2, 1, + 206, 9, 4, 75, 248, 233, 23, 75, 58, 8, 6, 1, 200, 44, 4, 75, 58, 8, 2, + 1, 200, 44, 4, 75, 58, 8, 6, 1, 200, 44, 4, 75, 60, 8, 2, 1, 200, 44, 4, + 75, 60, 8, 6, 1, 200, 44, 4, 219, 113, 60, 8, 2, 1, 200, 44, 4, 219, 113, + 60, 8, 6, 1, 200, 44, 4, 243, 2, 60, 8, 2, 1, 200, 44, 4, 243, 2, 60, 8, + 6, 1, 126, 4, 237, 43, 60, 8, 2, 1, 126, 4, 237, 43, 60, 8, 6, 1, 126, 4, + 198, 153, 60, 8, 2, 1, 126, 4, 198, 153, 60, 8, 6, 1, 126, 4, 243, 2, 60, + 8, 2, 1, 126, 4, 243, 2, 60, 8, 6, 1, 126, 4, 198, 153, 23, 252, 46, 8, + 2, 1, 126, 4, 198, 153, 23, 252, 46, 8, 6, 1, 126, 4, 217, 147, 23, 237, + 42, 8, 2, 1, 126, 4, 217, 147, 23, 237, 42, 8, 6, 1, 196, 13, 4, 198, + 152, 8, 2, 1, 196, 13, 4, 198, 152, 8, 6, 1, 196, 13, 4, 75, 60, 8, 2, 1, + 196, 13, 4, 75, 60, 8, 6, 1, 193, 225, 4, 230, 210, 8, 2, 1, 193, 225, 4, + 230, 210, 8, 6, 1, 193, 225, 4, 252, 46, 8, 2, 1, 193, 225, 4, 252, 46, + 8, 6, 1, 193, 225, 4, 237, 42, 8, 2, 1, 193, 225, 4, 237, 42, 8, 6, 1, + 193, 225, 4, 75, 58, 8, 2, 1, 193, 225, 4, 75, 58, 8, 6, 1, 193, 225, 4, + 75, 60, 8, 2, 1, 193, 225, 4, 75, 60, 8, 6, 1, 192, 236, 4, 75, 58, 8, 2, + 1, 192, 236, 4, 75, 58, 8, 6, 1, 192, 236, 4, 237, 42, 8, 2, 1, 192, 236, + 4, 237, 42, 8, 6, 1, 192, 160, 4, 75, 58, 8, 2, 1, 192, 160, 4, 75, 58, + 8, 6, 1, 191, 167, 4, 243, 1, 8, 2, 1, 191, 167, 4, 243, 1, 8, 6, 1, 191, + 167, 4, 75, 60, 8, 2, 1, 191, 167, 4, 75, 60, 8, 6, 1, 191, 167, 4, 219, + 113, 60, 8, 2, 1, 191, 167, 4, 219, 113, 60, 8, 2, 1, 230, 117, 4, 219, + 113, 60, 8, 2, 1, 200, 44, 4, 237, 42, 8, 2, 1, 193, 225, 4, 206, 189, + 58, 8, 2, 1, 192, 160, 4, 206, 189, 58, 8, 2, 1, 42, 4, 50, 132, 206, + 188, 8, 2, 1, 179, 206, 9, 4, 75, 58, 8, 2, 1, 179, 206, 9, 4, 237, 39, + 106, 8, 2, 1, 179, 206, 9, 4, 137, 106, 8, 6, 1, 203, 127, 206, 8, 8, 2, + 1, 237, 106, 8, 6, 1, 42, 4, 75, 60, 8, 2, 1, 42, 4, 75, 60, 8, 6, 1, 42, + 4, 228, 251, 58, 8, 2, 1, 42, 4, 228, 251, 58, 8, 6, 1, 42, 4, 243, 2, + 23, 252, 46, 8, 2, 1, 42, 4, 243, 2, 23, 252, 46, 8, 6, 1, 42, 4, 243, 2, + 23, 230, 210, 8, 2, 1, 42, 4, 243, 2, 23, 230, 210, 8, 6, 1, 42, 4, 243, + 2, 23, 228, 251, 58, 8, 2, 1, 42, 4, 243, 2, 23, 228, 251, 58, 8, 6, 1, + 42, 4, 243, 2, 23, 198, 152, 8, 2, 1, 42, 4, 243, 2, 23, 198, 152, 8, 6, + 1, 42, 4, 243, 2, 23, 75, 60, 8, 2, 1, 42, 4, 243, 2, 23, 75, 60, 8, 6, + 1, 42, 4, 248, 37, 23, 252, 46, 8, 2, 1, 42, 4, 248, 37, 23, 252, 46, 8, + 6, 1, 42, 4, 248, 37, 23, 230, 210, 8, 2, 1, 42, 4, 248, 37, 23, 230, + 210, 8, 6, 1, 42, 4, 248, 37, 23, 228, 251, 58, 8, 2, 1, 42, 4, 248, 37, + 23, 228, 251, 58, 8, 6, 1, 42, 4, 248, 37, 23, 198, 152, 8, 2, 1, 42, 4, + 248, 37, 23, 198, 152, 8, 6, 1, 42, 4, 248, 37, 23, 75, 60, 8, 2, 1, 42, + 4, 248, 37, 23, 75, 60, 8, 6, 1, 235, 15, 4, 75, 60, 8, 2, 1, 235, 15, 4, + 75, 60, 8, 6, 1, 235, 15, 4, 228, 251, 58, 8, 2, 1, 235, 15, 4, 228, 251, + 58, 8, 6, 1, 235, 15, 4, 198, 152, 8, 2, 1, 235, 15, 4, 198, 152, 8, 6, + 1, 235, 15, 4, 243, 2, 23, 252, 46, 8, 2, 1, 235, 15, 4, 243, 2, 23, 252, + 46, 8, 6, 1, 235, 15, 4, 243, 2, 23, 230, 210, 8, 2, 1, 235, 15, 4, 243, + 2, 23, 230, 210, 8, 6, 1, 235, 15, 4, 243, 2, 23, 228, 251, 58, 8, 2, 1, + 235, 15, 4, 243, 2, 23, 228, 251, 58, 8, 6, 1, 235, 15, 4, 243, 2, 23, + 198, 152, 8, 2, 1, 235, 15, 4, 243, 2, 23, 198, 152, 8, 6, 1, 235, 15, 4, + 243, 2, 23, 75, 60, 8, 2, 1, 235, 15, 4, 243, 2, 23, 75, 60, 8, 6, 1, + 228, 74, 4, 228, 251, 58, 8, 2, 1, 228, 74, 4, 228, 251, 58, 8, 6, 1, + 228, 74, 4, 75, 60, 8, 2, 1, 228, 74, 4, 75, 60, 8, 6, 1, 187, 4, 75, 60, + 8, 2, 1, 187, 4, 75, 60, 8, 6, 1, 187, 4, 228, 251, 58, 8, 2, 1, 187, 4, + 228, 251, 58, 8, 6, 1, 187, 4, 243, 2, 23, 252, 46, 8, 2, 1, 187, 4, 243, + 2, 23, 252, 46, 8, 6, 1, 187, 4, 243, 2, 23, 230, 210, 8, 2, 1, 187, 4, + 243, 2, 23, 230, 210, 8, 6, 1, 187, 4, 243, 2, 23, 228, 251, 58, 8, 2, 1, + 187, 4, 243, 2, 23, 228, 251, 58, 8, 6, 1, 187, 4, 243, 2, 23, 198, 152, + 8, 2, 1, 187, 4, 243, 2, 23, 198, 152, 8, 6, 1, 187, 4, 243, 2, 23, 75, + 60, 8, 2, 1, 187, 4, 243, 2, 23, 75, 60, 8, 6, 1, 187, 4, 228, 188, 23, + 252, 46, 8, 2, 1, 187, 4, 228, 188, 23, 252, 46, 8, 6, 1, 187, 4, 228, + 188, 23, 230, 210, 8, 2, 1, 187, 4, 228, 188, 23, 230, 210, 8, 6, 1, 187, + 4, 228, 188, 23, 228, 251, 58, 8, 2, 1, 187, 4, 228, 188, 23, 228, 251, + 58, 8, 6, 1, 187, 4, 228, 188, 23, 198, 152, 8, 2, 1, 187, 4, 228, 188, + 23, 198, 152, 8, 6, 1, 187, 4, 228, 188, 23, 75, 60, 8, 2, 1, 187, 4, + 228, 188, 23, 75, 60, 8, 6, 1, 126, 4, 75, 60, 8, 2, 1, 126, 4, 75, 60, + 8, 6, 1, 126, 4, 228, 251, 58, 8, 2, 1, 126, 4, 228, 251, 58, 8, 6, 1, + 126, 4, 228, 188, 23, 252, 46, 8, 2, 1, 126, 4, 228, 188, 23, 252, 46, 8, + 6, 1, 126, 4, 228, 188, 23, 230, 210, 8, 2, 1, 126, 4, 228, 188, 23, 230, + 210, 8, 6, 1, 126, 4, 228, 188, 23, 228, 251, 58, 8, 2, 1, 126, 4, 228, + 188, 23, 228, 251, 58, 8, 6, 1, 126, 4, 228, 188, 23, 198, 152, 8, 2, 1, + 126, 4, 228, 188, 23, 198, 152, 8, 6, 1, 126, 4, 228, 188, 23, 75, 60, 8, + 2, 1, 126, 4, 228, 188, 23, 75, 60, 8, 6, 1, 192, 160, 4, 230, 210, 8, 2, + 1, 192, 160, 4, 230, 210, 8, 6, 1, 192, 160, 4, 75, 60, 8, 2, 1, 192, + 160, 4, 75, 60, 8, 6, 1, 192, 160, 4, 228, 251, 58, 8, 2, 1, 192, 160, 4, + 228, 251, 58, 8, 6, 1, 192, 160, 4, 198, 152, 8, 2, 1, 192, 160, 4, 198, + 152, 8, 6, 1, 216, 83, 219, 74, 8, 2, 1, 216, 83, 219, 74, 8, 6, 1, 216, + 83, 196, 12, 8, 2, 1, 216, 83, 196, 12, 8, 6, 1, 192, 160, 4, 219, 4, 8, + 2, 1, 192, 160, 4, 219, 4, 35, 2, 1, 251, 161, 4, 208, 169, 35, 2, 1, + 251, 161, 4, 237, 212, 35, 2, 1, 251, 161, 4, 208, 170, 23, 195, 169, 35, + 2, 1, 251, 161, 4, 237, 213, 23, 195, 169, 35, 2, 1, 251, 161, 4, 208, + 170, 23, 210, 243, 35, 2, 1, 251, 161, 4, 237, 213, 23, 210, 243, 35, 2, + 1, 251, 161, 4, 208, 170, 23, 210, 4, 35, 2, 1, 251, 161, 4, 237, 213, + 23, 210, 4, 35, 6, 1, 251, 161, 4, 208, 169, 35, 6, 1, 251, 161, 4, 237, + 212, 35, 6, 1, 251, 161, 4, 208, 170, 23, 195, 169, 35, 6, 1, 251, 161, + 4, 237, 213, 23, 195, 169, 35, 6, 1, 251, 161, 4, 208, 170, 23, 210, 243, + 35, 6, 1, 251, 161, 4, 237, 213, 23, 210, 243, 35, 6, 1, 251, 161, 4, + 208, 170, 23, 210, 4, 35, 6, 1, 251, 161, 4, 237, 213, 23, 210, 4, 35, 2, + 1, 234, 48, 4, 208, 169, 35, 2, 1, 234, 48, 4, 237, 212, 35, 2, 1, 234, + 48, 4, 208, 170, 23, 195, 169, 35, 2, 1, 234, 48, 4, 237, 213, 23, 195, + 169, 35, 2, 1, 234, 48, 4, 208, 170, 23, 210, 243, 35, 2, 1, 234, 48, 4, + 237, 213, 23, 210, 243, 35, 6, 1, 234, 48, 4, 208, 169, 35, 6, 1, 234, + 48, 4, 237, 212, 35, 6, 1, 234, 48, 4, 208, 170, 23, 195, 169, 35, 6, 1, + 234, 48, 4, 237, 213, 23, 195, 169, 35, 6, 1, 234, 48, 4, 208, 170, 23, + 210, 243, 35, 6, 1, 234, 48, 4, 237, 213, 23, 210, 243, 35, 2, 1, 233, + 254, 4, 208, 169, 35, 2, 1, 233, 254, 4, 237, 212, 35, 2, 1, 233, 254, 4, + 208, 170, 23, 195, 169, 35, 2, 1, 233, 254, 4, 237, 213, 23, 195, 169, + 35, 2, 1, 233, 254, 4, 208, 170, 23, 210, 243, 35, 2, 1, 233, 254, 4, + 237, 213, 23, 210, 243, 35, 2, 1, 233, 254, 4, 208, 170, 23, 210, 4, 35, + 2, 1, 233, 254, 4, 237, 213, 23, 210, 4, 35, 6, 1, 233, 254, 4, 208, 169, + 35, 6, 1, 233, 254, 4, 237, 212, 35, 6, 1, 233, 254, 4, 208, 170, 23, + 195, 169, 35, 6, 1, 233, 254, 4, 237, 213, 23, 195, 169, 35, 6, 1, 233, + 254, 4, 208, 170, 23, 210, 243, 35, 6, 1, 233, 254, 4, 237, 213, 23, 210, + 243, 35, 6, 1, 233, 254, 4, 208, 170, 23, 210, 4, 35, 6, 1, 233, 254, 4, + 237, 213, 23, 210, 4, 35, 2, 1, 223, 84, 4, 208, 169, 35, 2, 1, 223, 84, + 4, 237, 212, 35, 2, 1, 223, 84, 4, 208, 170, 23, 195, 169, 35, 2, 1, 223, + 84, 4, 237, 213, 23, 195, 169, 35, 2, 1, 223, 84, 4, 208, 170, 23, 210, + 243, 35, 2, 1, 223, 84, 4, 237, 213, 23, 210, 243, 35, 2, 1, 223, 84, 4, + 208, 170, 23, 210, 4, 35, 2, 1, 223, 84, 4, 237, 213, 23, 210, 4, 35, 6, + 1, 223, 84, 4, 208, 169, 35, 6, 1, 223, 84, 4, 237, 212, 35, 6, 1, 223, + 84, 4, 208, 170, 23, 195, 169, 35, 6, 1, 223, 84, 4, 237, 213, 23, 195, + 169, 35, 6, 1, 223, 84, 4, 208, 170, 23, 210, 243, 35, 6, 1, 223, 84, 4, + 237, 213, 23, 210, 243, 35, 6, 1, 223, 84, 4, 208, 170, 23, 210, 4, 35, + 6, 1, 223, 84, 4, 237, 213, 23, 210, 4, 35, 2, 1, 211, 108, 4, 208, 169, + 35, 2, 1, 211, 108, 4, 237, 212, 35, 2, 1, 211, 108, 4, 208, 170, 23, + 195, 169, 35, 2, 1, 211, 108, 4, 237, 213, 23, 195, 169, 35, 2, 1, 211, + 108, 4, 208, 170, 23, 210, 243, 35, 2, 1, 211, 108, 4, 237, 213, 23, 210, + 243, 35, 6, 1, 211, 108, 4, 208, 169, 35, 6, 1, 211, 108, 4, 237, 212, + 35, 6, 1, 211, 108, 4, 208, 170, 23, 195, 169, 35, 6, 1, 211, 108, 4, + 237, 213, 23, 195, 169, 35, 6, 1, 211, 108, 4, 208, 170, 23, 210, 243, + 35, 6, 1, 211, 108, 4, 237, 213, 23, 210, 243, 35, 2, 1, 196, 71, 4, 208, + 169, 35, 2, 1, 196, 71, 4, 237, 212, 35, 2, 1, 196, 71, 4, 208, 170, 23, + 195, 169, 35, 2, 1, 196, 71, 4, 237, 213, 23, 195, 169, 35, 2, 1, 196, + 71, 4, 208, 170, 23, 210, 243, 35, 2, 1, 196, 71, 4, 237, 213, 23, 210, + 243, 35, 2, 1, 196, 71, 4, 208, 170, 23, 210, 4, 35, 2, 1, 196, 71, 4, + 237, 213, 23, 210, 4, 35, 6, 1, 196, 71, 4, 237, 212, 35, 6, 1, 196, 71, + 4, 237, 213, 23, 195, 169, 35, 6, 1, 196, 71, 4, 237, 213, 23, 210, 243, + 35, 6, 1, 196, 71, 4, 237, 213, 23, 210, 4, 35, 2, 1, 211, 111, 4, 208, + 169, 35, 2, 1, 211, 111, 4, 237, 212, 35, 2, 1, 211, 111, 4, 208, 170, + 23, 195, 169, 35, 2, 1, 211, 111, 4, 237, 213, 23, 195, 169, 35, 2, 1, + 211, 111, 4, 208, 170, 23, 210, 243, 35, 2, 1, 211, 111, 4, 237, 213, 23, + 210, 243, 35, 2, 1, 211, 111, 4, 208, 170, 23, 210, 4, 35, 2, 1, 211, + 111, 4, 237, 213, 23, 210, 4, 35, 6, 1, 211, 111, 4, 208, 169, 35, 6, 1, + 211, 111, 4, 237, 212, 35, 6, 1, 211, 111, 4, 208, 170, 23, 195, 169, 35, + 6, 1, 211, 111, 4, 237, 213, 23, 195, 169, 35, 6, 1, 211, 111, 4, 208, + 170, 23, 210, 243, 35, 6, 1, 211, 111, 4, 237, 213, 23, 210, 243, 35, 6, + 1, 211, 111, 4, 208, 170, 23, 210, 4, 35, 6, 1, 211, 111, 4, 237, 213, + 23, 210, 4, 35, 2, 1, 251, 161, 4, 195, 169, 35, 2, 1, 251, 161, 4, 210, + 243, 35, 2, 1, 234, 48, 4, 195, 169, 35, 2, 1, 234, 48, 4, 210, 243, 35, + 2, 1, 233, 254, 4, 195, 169, 35, 2, 1, 233, 254, 4, 210, 243, 35, 2, 1, + 223, 84, 4, 195, 169, 35, 2, 1, 223, 84, 4, 210, 243, 35, 2, 1, 211, 108, + 4, 195, 169, 35, 2, 1, 211, 108, 4, 210, 243, 35, 2, 1, 196, 71, 4, 195, + 169, 35, 2, 1, 196, 71, 4, 210, 243, 35, 2, 1, 211, 111, 4, 195, 169, 35, + 2, 1, 211, 111, 4, 210, 243, 35, 2, 1, 251, 161, 4, 208, 170, 23, 191, + 233, 35, 2, 1, 251, 161, 4, 237, 213, 23, 191, 233, 35, 2, 1, 251, 161, + 4, 208, 170, 23, 195, 170, 23, 191, 233, 35, 2, 1, 251, 161, 4, 237, 213, + 23, 195, 170, 23, 191, 233, 35, 2, 1, 251, 161, 4, 208, 170, 23, 210, + 244, 23, 191, 233, 35, 2, 1, 251, 161, 4, 237, 213, 23, 210, 244, 23, + 191, 233, 35, 2, 1, 251, 161, 4, 208, 170, 23, 210, 5, 23, 191, 233, 35, + 2, 1, 251, 161, 4, 237, 213, 23, 210, 5, 23, 191, 233, 35, 6, 1, 251, + 161, 4, 208, 170, 23, 208, 184, 35, 6, 1, 251, 161, 4, 237, 213, 23, 208, + 184, 35, 6, 1, 251, 161, 4, 208, 170, 23, 195, 170, 23, 208, 184, 35, 6, + 1, 251, 161, 4, 237, 213, 23, 195, 170, 23, 208, 184, 35, 6, 1, 251, 161, + 4, 208, 170, 23, 210, 244, 23, 208, 184, 35, 6, 1, 251, 161, 4, 237, 213, + 23, 210, 244, 23, 208, 184, 35, 6, 1, 251, 161, 4, 208, 170, 23, 210, 5, + 23, 208, 184, 35, 6, 1, 251, 161, 4, 237, 213, 23, 210, 5, 23, 208, 184, + 35, 2, 1, 233, 254, 4, 208, 170, 23, 191, 233, 35, 2, 1, 233, 254, 4, + 237, 213, 23, 191, 233, 35, 2, 1, 233, 254, 4, 208, 170, 23, 195, 170, + 23, 191, 233, 35, 2, 1, 233, 254, 4, 237, 213, 23, 195, 170, 23, 191, + 233, 35, 2, 1, 233, 254, 4, 208, 170, 23, 210, 244, 23, 191, 233, 35, 2, + 1, 233, 254, 4, 237, 213, 23, 210, 244, 23, 191, 233, 35, 2, 1, 233, 254, + 4, 208, 170, 23, 210, 5, 23, 191, 233, 35, 2, 1, 233, 254, 4, 237, 213, + 23, 210, 5, 23, 191, 233, 35, 6, 1, 233, 254, 4, 208, 170, 23, 208, 184, + 35, 6, 1, 233, 254, 4, 237, 213, 23, 208, 184, 35, 6, 1, 233, 254, 4, + 208, 170, 23, 195, 170, 23, 208, 184, 35, 6, 1, 233, 254, 4, 237, 213, + 23, 195, 170, 23, 208, 184, 35, 6, 1, 233, 254, 4, 208, 170, 23, 210, + 244, 23, 208, 184, 35, 6, 1, 233, 254, 4, 237, 213, 23, 210, 244, 23, + 208, 184, 35, 6, 1, 233, 254, 4, 208, 170, 23, 210, 5, 23, 208, 184, 35, + 6, 1, 233, 254, 4, 237, 213, 23, 210, 5, 23, 208, 184, 35, 2, 1, 211, + 111, 4, 208, 170, 23, 191, 233, 35, 2, 1, 211, 111, 4, 237, 213, 23, 191, + 233, 35, 2, 1, 211, 111, 4, 208, 170, 23, 195, 170, 23, 191, 233, 35, 2, + 1, 211, 111, 4, 237, 213, 23, 195, 170, 23, 191, 233, 35, 2, 1, 211, 111, + 4, 208, 170, 23, 210, 244, 23, 191, 233, 35, 2, 1, 211, 111, 4, 237, 213, + 23, 210, 244, 23, 191, 233, 35, 2, 1, 211, 111, 4, 208, 170, 23, 210, 5, + 23, 191, 233, 35, 2, 1, 211, 111, 4, 237, 213, 23, 210, 5, 23, 191, 233, + 35, 6, 1, 211, 111, 4, 208, 170, 23, 208, 184, 35, 6, 1, 211, 111, 4, + 237, 213, 23, 208, 184, 35, 6, 1, 211, 111, 4, 208, 170, 23, 195, 170, + 23, 208, 184, 35, 6, 1, 211, 111, 4, 237, 213, 23, 195, 170, 23, 208, + 184, 35, 6, 1, 211, 111, 4, 208, 170, 23, 210, 244, 23, 208, 184, 35, 6, + 1, 211, 111, 4, 237, 213, 23, 210, 244, 23, 208, 184, 35, 6, 1, 211, 111, + 4, 208, 170, 23, 210, 5, 23, 208, 184, 35, 6, 1, 211, 111, 4, 237, 213, + 23, 210, 5, 23, 208, 184, 35, 2, 1, 251, 161, 4, 194, 254, 35, 2, 1, 251, + 161, 4, 217, 146, 35, 2, 1, 251, 161, 4, 195, 170, 23, 191, 233, 35, 2, + 1, 251, 161, 4, 191, 233, 35, 2, 1, 251, 161, 4, 210, 244, 23, 191, 233, + 35, 2, 1, 251, 161, 4, 210, 4, 35, 2, 1, 251, 161, 4, 210, 5, 23, 191, + 233, 35, 6, 1, 251, 161, 4, 194, 254, 35, 6, 1, 251, 161, 4, 217, 146, + 35, 6, 1, 251, 161, 4, 195, 169, 35, 6, 1, 251, 161, 4, 210, 243, 35, 6, + 1, 251, 161, 4, 208, 184, 35, 221, 30, 35, 208, 184, 35, 208, 169, 35, + 210, 4, 35, 237, 36, 23, 210, 4, 35, 2, 1, 233, 254, 4, 195, 170, 23, + 191, 233, 35, 2, 1, 233, 254, 4, 191, 233, 35, 2, 1, 233, 254, 4, 210, + 244, 23, 191, 233, 35, 2, 1, 233, 254, 4, 210, 4, 35, 2, 1, 233, 254, 4, + 210, 5, 23, 191, 233, 35, 6, 1, 234, 48, 4, 195, 169, 35, 6, 1, 234, 48, + 4, 210, 243, 35, 6, 1, 233, 254, 4, 195, 169, 35, 6, 1, 233, 254, 4, 210, + 243, 35, 6, 1, 233, 254, 4, 208, 184, 35, 208, 170, 23, 195, 169, 35, + 208, 170, 23, 210, 243, 35, 208, 170, 23, 210, 4, 35, 2, 1, 223, 84, 4, + 194, 254, 35, 2, 1, 223, 84, 4, 217, 146, 35, 2, 1, 223, 84, 4, 237, 36, + 23, 195, 169, 35, 2, 1, 223, 84, 4, 237, 36, 23, 210, 243, 35, 2, 1, 223, + 84, 4, 210, 4, 35, 2, 1, 223, 84, 4, 237, 36, 23, 210, 4, 35, 6, 1, 223, + 84, 4, 194, 254, 35, 6, 1, 223, 84, 4, 217, 146, 35, 6, 1, 223, 84, 4, + 195, 169, 35, 6, 1, 223, 84, 4, 210, 243, 35, 237, 213, 23, 195, 169, 35, + 237, 213, 23, 210, 243, 35, 237, 213, 23, 210, 4, 35, 2, 1, 196, 71, 4, + 194, 254, 35, 2, 1, 196, 71, 4, 217, 146, 35, 2, 1, 196, 71, 4, 237, 36, + 23, 195, 169, 35, 2, 1, 196, 71, 4, 237, 36, 23, 210, 243, 35, 2, 1, 207, + 4, 4, 208, 169, 35, 2, 1, 207, 4, 4, 237, 212, 35, 2, 1, 196, 71, 4, 210, + 4, 35, 2, 1, 196, 71, 4, 237, 36, 23, 210, 4, 35, 6, 1, 196, 71, 4, 194, + 254, 35, 6, 1, 196, 71, 4, 217, 146, 35, 6, 1, 196, 71, 4, 195, 169, 35, + 6, 1, 196, 71, 4, 210, 243, 35, 6, 1, 207, 4, 4, 237, 212, 35, 237, 36, + 23, 195, 169, 35, 237, 36, 23, 210, 243, 35, 195, 169, 35, 2, 1, 211, + 111, 4, 195, 170, 23, 191, 233, 35, 2, 1, 211, 111, 4, 191, 233, 35, 2, + 1, 211, 111, 4, 210, 244, 23, 191, 233, 35, 2, 1, 211, 111, 4, 210, 4, + 35, 2, 1, 211, 111, 4, 210, 5, 23, 191, 233, 35, 6, 1, 211, 108, 4, 195, + 169, 35, 6, 1, 211, 108, 4, 210, 243, 35, 6, 1, 211, 111, 4, 195, 169, + 35, 6, 1, 211, 111, 4, 210, 243, 35, 6, 1, 211, 111, 4, 208, 184, 35, + 210, 243, 35, 237, 212, 234, 104, 208, 30, 234, 115, 208, 30, 234, 104, + 201, 247, 234, 115, 201, 247, 198, 219, 201, 247, 232, 126, 201, 247, + 202, 134, 201, 247, 233, 13, 201, 247, 208, 152, 201, 247, 199, 4, 201, + 247, 230, 79, 201, 247, 191, 78, 193, 75, 201, 247, 191, 78, 193, 75, + 213, 29, 191, 78, 193, 75, 222, 196, 219, 215, 77, 206, 199, 77, 228, 88, + 213, 30, 228, 88, 233, 13, 237, 215, 234, 104, 237, 215, 234, 115, 237, + 215, 228, 241, 164, 55, 81, 219, 112, 55, 130, 219, 112, 45, 202, 170, + 207, 252, 77, 50, 202, 170, 207, 252, 77, 202, 170, 218, 240, 207, 252, + 77, 202, 170, 229, 132, 207, 252, 77, 45, 55, 207, 252, 77, 50, 55, 207, + 252, 77, 55, 218, 240, 207, 252, 77, 55, 229, 132, 207, 252, 77, 238, 14, + 55, 238, 14, 247, 248, 197, 238, 247, 248, 91, 75, 219, 236, 105, 75, + 219, 236, 228, 241, 234, 120, 228, 86, 209, 61, 219, 113, 204, 10, 210, + 128, 204, 10, 219, 215, 234, 113, 206, 199, 234, 113, 209, 34, 236, 232, + 232, 144, 219, 215, 210, 252, 206, 199, 210, 252, 214, 215, 213, 37, 201, + 247, 210, 14, 216, 50, 56, 210, 14, 199, 96, 198, 230, 56, 208, 215, 55, + 208, 215, 197, 225, 208, 215, 207, 18, 208, 215, 207, 18, 55, 208, 215, + 207, 18, 197, 225, 208, 215, 247, 96, 202, 170, 219, 219, 251, 116, 207, + 252, 77, 202, 170, 206, 203, 251, 116, 207, 252, 77, 207, 83, 77, 55, + 233, 216, 77, 223, 102, 210, 254, 196, 100, 246, 240, 198, 178, 247, 97, + 223, 119, 209, 61, 250, 191, 228, 89, 247, 248, 232, 118, 202, 97, 45, + 51, 248, 54, 4, 208, 7, 50, 51, 248, 54, 4, 208, 7, 55, 208, 13, 77, 208, + 13, 233, 216, 77, 233, 216, 208, 13, 77, 198, 128, 3, 233, 255, 207, 18, + 209, 142, 56, 62, 118, 247, 248, 62, 96, 247, 248, 130, 250, 193, 207, + 18, 204, 25, 242, 220, 196, 77, 105, 250, 192, 251, 178, 195, 84, 242, + 72, 216, 35, 56, 200, 129, 237, 215, 223, 93, 196, 100, 232, 187, 208, + 152, 77, 115, 75, 208, 151, 208, 26, 208, 215, 232, 128, 75, 208, 151, + 232, 226, 75, 208, 151, 105, 75, 208, 151, 232, 128, 75, 77, 235, 138, + 238, 217, 197, 237, 81, 232, 128, 236, 138, 216, 213, 13, 201, 247, 193, + 23, 222, 196, 232, 77, 251, 44, 223, 91, 198, 144, 223, 91, 204, 10, 223, + 91, 209, 81, 219, 215, 223, 59, 206, 199, 223, 59, 232, 238, 201, 14, + 223, 59, 209, 34, 236, 232, 223, 59, 223, 132, 200, 75, 200, 147, 252, + 49, 200, 75, 200, 147, 223, 132, 9, 232, 146, 203, 133, 252, 49, 9, 232, + 146, 203, 133, 214, 208, 17, 203, 134, 213, 33, 17, 203, 134, 200, 182, + 191, 77, 200, 182, 8, 2, 1, 68, 200, 182, 134, 200, 182, 149, 200, 182, + 169, 200, 182, 175, 200, 182, 171, 200, 182, 178, 200, 182, 108, 56, 200, + 182, 216, 34, 200, 182, 234, 43, 56, 200, 182, 45, 210, 113, 200, 182, + 50, 210, 113, 200, 182, 8, 2, 1, 215, 61, 200, 230, 191, 77, 200, 230, + 107, 200, 230, 109, 200, 230, 138, 200, 230, 134, 200, 230, 149, 200, + 230, 169, 200, 230, 175, 200, 230, 171, 200, 230, 178, 200, 230, 108, 56, + 200, 230, 216, 34, 200, 230, 234, 43, 56, 200, 230, 45, 210, 113, 200, + 230, 50, 210, 113, 8, 200, 230, 2, 1, 65, 8, 200, 230, 2, 1, 71, 8, 200, + 230, 2, 1, 74, 8, 200, 230, 2, 1, 192, 235, 8, 200, 230, 2, 1, 205, 86, + 8, 200, 230, 2, 1, 230, 116, 8, 200, 230, 2, 1, 222, 152, 8, 200, 230, 2, + 1, 172, 8, 200, 230, 2, 1, 218, 168, 8, 200, 230, 2, 1, 215, 61, 8, 200, + 230, 2, 1, 210, 236, 8, 200, 230, 2, 1, 206, 8, 8, 200, 230, 2, 1, 200, + 43, 233, 233, 56, 242, 84, 56, 238, 200, 56, 232, 106, 232, 111, 56, 219, + 91, 56, 216, 51, 56, 214, 234, 56, 209, 245, 56, 206, 36, 56, 193, 31, + 56, 214, 80, 203, 99, 56, 236, 149, 56, 233, 234, 56, 221, 135, 56, 197, + 81, 56, 235, 116, 56, 231, 138, 210, 27, 56, 209, 242, 56, 230, 174, 56, + 250, 153, 56, 228, 166, 56, 247, 37, 56, 219, 81, 198, 33, 56, 201, 226, + 56, 199, 93, 56, 223, 147, 206, 36, 56, 197, 60, 219, 91, 56, 213, 19, + 87, 56, 217, 88, 56, 206, 59, 56, 220, 9, 56, 248, 147, 56, 202, 22, 56, + 33, 45, 230, 13, 58, 33, 50, 230, 13, 58, 33, 179, 81, 219, 113, 210, + 255, 33, 203, 40, 81, 219, 113, 210, 255, 33, 251, 85, 64, 58, 33, 242, + 221, 64, 58, 33, 45, 64, 58, 33, 50, 64, 58, 33, 206, 189, 210, 255, 33, + 242, 221, 206, 189, 210, 255, 33, 251, 85, 206, 189, 210, 255, 33, 115, + 185, 58, 33, 232, 128, 185, 58, 33, 234, 99, 243, 10, 33, 234, 99, 201, + 190, 33, 234, 99, 237, 32, 33, 234, 99, 243, 11, 249, 141, 33, 45, 50, + 64, 58, 33, 234, 99, 205, 76, 33, 234, 99, 221, 218, 33, 234, 99, 196, + 68, 209, 58, 197, 241, 33, 207, 19, 202, 24, 210, 255, 33, 55, 81, 201, + 28, 210, 255, 33, 251, 95, 113, 33, 197, 225, 196, 102, 33, 193, 78, 248, + 29, 58, 33, 118, 64, 210, 255, 33, 179, 55, 202, 24, 210, 255, 33, 96, + 230, 13, 4, 181, 235, 118, 33, 118, 230, 13, 4, 181, 235, 118, 33, 45, + 64, 60, 33, 50, 64, 60, 33, 250, 194, 58, 252, 55, 211, 146, 252, 38, + 119, 199, 34, 200, 240, 235, 129, 6, 247, 193, 237, 125, 247, 27, 247, + 22, 219, 113, 113, 247, 98, 211, 146, 247, 152, 196, 112, 233, 235, 239, + 38, 205, 72, 237, 125, 233, 91, 27, 2, 232, 51, 27, 6, 230, 116, 248, + 137, 6, 230, 116, 235, 129, 6, 230, 116, 209, 103, 239, 38, 209, 103, + 239, 39, 139, 105, 209, 185, 27, 6, 68, 248, 137, 6, 68, 27, 6, 172, 27, + 2, 172, 220, 143, 78, 249, 88, 113, 235, 129, 6, 215, 61, 212, 132, 56, + 202, 5, 207, 95, 239, 5, 27, 6, 210, 236, 235, 129, 6, 210, 236, 235, + 129, 6, 208, 104, 27, 6, 146, 248, 137, 6, 146, 235, 129, 6, 146, 208, + 223, 199, 208, 207, 31, 204, 1, 77, 199, 107, 56, 198, 22, 87, 56, 195, + 136, 235, 129, 6, 191, 166, 211, 18, 56, 211, 135, 56, 223, 93, 211, 135, + 56, 248, 137, 6, 191, 166, 153, 35, 2, 1, 223, 83, 222, 3, 56, 251, 110, + 56, 27, 6, 250, 120, 248, 137, 6, 247, 193, 234, 4, 113, 27, 2, 71, 27, + 6, 71, 27, 6, 233, 175, 153, 6, 233, 175, 27, 6, 218, 168, 27, 2, 74, + 131, 113, 248, 215, 113, 231, 39, 113, 237, 254, 113, 223, 137, 202, 3, + 206, 122, 6, 208, 104, 233, 94, 56, 235, 129, 2, 209, 185, 235, 129, 2, + 231, 211, 235, 129, 6, 231, 211, 235, 129, 6, 209, 185, 235, 129, 215, + 60, 200, 201, 153, 49, 6, 232, 51, 153, 49, 6, 172, 207, 18, 49, 6, 172, + 153, 49, 6, 192, 159, 235, 129, 43, 6, 238, 127, 235, 129, 43, 2, 238, + 127, 235, 129, 43, 2, 71, 235, 129, 43, 2, 68, 235, 129, 43, 2, 223, 35, + 208, 188, 219, 112, 153, 251, 137, 210, 14, 56, 251, 210, 153, 2, 233, + 175, 16, 40, 205, 151, 202, 3, 193, 246, 232, 118, 91, 203, 243, 193, + 246, 232, 118, 91, 213, 167, 193, 246, 232, 118, 91, 199, 86, 193, 246, + 232, 118, 91, 199, 0, 193, 246, 232, 118, 105, 198, 253, 193, 246, 232, + 118, 91, 233, 18, 193, 246, 232, 118, 105, 233, 17, 193, 246, 232, 118, + 115, 233, 17, 193, 246, 232, 118, 232, 128, 233, 17, 193, 246, 232, 118, + 91, 202, 124, 193, 246, 232, 118, 232, 226, 202, 122, 193, 246, 232, 118, + 91, 234, 159, 193, 246, 232, 118, 115, 234, 157, 193, 246, 232, 118, 232, + 226, 234, 157, 193, 246, 232, 118, 203, 247, 234, 157, 232, 118, 212, + 133, 107, 206, 136, 212, 134, 107, 206, 136, 212, 134, 109, 206, 136, + 212, 134, 138, 206, 136, 212, 134, 134, 206, 136, 212, 134, 149, 206, + 136, 212, 134, 169, 206, 136, 212, 134, 175, 206, 136, 212, 134, 171, + 206, 136, 212, 134, 178, 206, 136, 212, 134, 199, 95, 206, 136, 212, 134, + 234, 127, 206, 136, 212, 134, 197, 37, 206, 136, 212, 134, 233, 15, 206, + 136, 212, 134, 91, 228, 140, 206, 136, 212, 134, 232, 226, 228, 140, 206, + 136, 212, 134, 91, 189, 2, 206, 136, 212, 134, 107, 2, 206, 136, 212, + 134, 109, 2, 206, 136, 212, 134, 138, 2, 206, 136, 212, 134, 134, 2, 206, + 136, 212, 134, 149, 2, 206, 136, 212, 134, 169, 2, 206, 136, 212, 134, + 175, 2, 206, 136, 212, 134, 171, 2, 206, 136, 212, 134, 178, 2, 206, 136, + 212, 134, 199, 95, 2, 206, 136, 212, 134, 234, 127, 2, 206, 136, 212, + 134, 197, 37, 2, 206, 136, 212, 134, 233, 15, 2, 206, 136, 212, 134, 91, + 228, 140, 2, 206, 136, 212, 134, 232, 226, 228, 140, 2, 206, 136, 212, + 134, 91, 189, 206, 136, 212, 134, 91, 198, 230, 247, 194, 238, 127, 206, + 136, 212, 134, 232, 226, 189, 206, 136, 212, 134, 199, 96, 189, 206, 136, + 212, 134, 207, 18, 91, 228, 140, 8, 2, 1, 207, 18, 247, 193, 206, 136, + 212, 134, 202, 136, 220, 4, 20, 206, 136, 212, 134, 233, 16, 234, 210, + 20, 206, 136, 212, 134, 233, 16, 189, 206, 136, 212, 134, 91, 228, 141, + 189, 193, 246, 232, 118, 191, 78, 198, 253, 153, 17, 109, 153, 17, 138, + 118, 57, 196, 66, 57, 96, 57, 235, 119, 57, 45, 50, 57, 133, 144, 57, + 186, 193, 105, 57, 186, 234, 204, 57, 202, 2, 234, 204, 57, 202, 2, 193, + 105, 57, 118, 64, 4, 106, 96, 64, 4, 106, 118, 193, 139, 57, 96, 193, + 139, 57, 118, 105, 229, 233, 57, 196, 66, 105, 229, 233, 57, 96, 105, + 229, 233, 57, 235, 119, 105, 229, 233, 57, 118, 64, 4, 199, 215, 96, 64, + 4, 199, 215, 118, 64, 232, 98, 164, 196, 66, 64, 232, 98, 164, 96, 64, + 232, 98, 164, 235, 119, 64, 232, 98, 164, 133, 144, 64, 4, 249, 74, 118, + 64, 4, 102, 96, 64, 4, 102, 118, 64, 4, 219, 4, 96, 64, 4, 219, 4, 45, + 50, 193, 139, 57, 45, 50, 64, 4, 106, 235, 119, 191, 21, 57, 196, 66, 64, + 4, 198, 136, 219, 214, 196, 66, 64, 4, 198, 136, 206, 197, 235, 119, 64, + 4, 198, 136, 219, 214, 235, 119, 64, 4, 198, 136, 206, 197, 96, 64, 4, + 239, 2, 235, 118, 235, 119, 64, 4, 239, 2, 219, 214, 251, 85, 198, 54, + 204, 28, 57, 242, 221, 198, 54, 204, 28, 57, 186, 193, 105, 64, 119, 179, + 164, 118, 64, 119, 249, 88, 139, 96, 64, 119, 164, 251, 85, 211, 77, 243, + 11, 57, 242, 221, 211, 77, 243, 11, 57, 118, 230, 13, 4, 181, 196, 65, + 118, 230, 13, 4, 181, 235, 118, 196, 66, 230, 13, 4, 181, 206, 197, 196, + 66, 230, 13, 4, 181, 219, 214, 96, 230, 13, 4, 181, 196, 65, 96, 230, 13, + 4, 181, 235, 118, 235, 119, 230, 13, 4, 181, 206, 197, 235, 119, 230, 13, + 4, 181, 219, 214, 96, 64, 139, 118, 57, 196, 66, 64, 118, 79, 235, 119, + 57, 118, 64, 139, 96, 57, 118, 210, 196, 250, 231, 196, 66, 210, 196, + 250, 231, 96, 210, 196, 250, 231, 235, 119, 210, 196, 250, 231, 118, 230, + 13, 139, 96, 230, 12, 96, 230, 13, 139, 118, 230, 12, 118, 55, 64, 4, + 106, 45, 50, 55, 64, 4, 106, 96, 55, 64, 4, 106, 118, 55, 57, 196, 66, + 55, 57, 96, 55, 57, 235, 119, 55, 57, 45, 50, 55, 57, 133, 144, 55, 57, + 186, 193, 105, 55, 57, 186, 234, 204, 55, 57, 202, 2, 234, 204, 55, 57, + 202, 2, 193, 105, 55, 57, 118, 197, 225, 57, 96, 197, 225, 57, 118, 201, + 183, 57, 96, 201, 183, 57, 196, 66, 64, 4, 55, 106, 235, 119, 64, 4, 55, + 106, 118, 237, 214, 57, 196, 66, 237, 214, 57, 96, 237, 214, 57, 235, + 119, 237, 214, 57, 118, 64, 119, 164, 96, 64, 119, 164, 118, 63, 57, 196, + 66, 63, 57, 96, 63, 57, 235, 119, 63, 57, 196, 66, 63, 64, 232, 98, 164, + 196, 66, 63, 64, 211, 105, 210, 52, 196, 66, 63, 64, 211, 105, 210, 53, + 4, 228, 241, 164, 196, 66, 63, 64, 211, 105, 210, 53, 4, 81, 164, 196, + 66, 63, 55, 57, 196, 66, 63, 55, 64, 211, 105, 210, 52, 96, 63, 64, 232, + 98, 193, 167, 186, 193, 105, 64, 119, 239, 1, 202, 2, 234, 204, 64, 119, + 239, 1, 133, 144, 63, 57, 50, 64, 4, 2, 243, 10, 235, 119, 64, 118, 79, + 196, 66, 57, 115, 96, 250, 231, 118, 64, 4, 81, 106, 96, 64, 4, 81, 106, + 45, 50, 64, 4, 81, 106, 118, 64, 4, 55, 81, 106, 96, 64, 4, 55, 81, 106, + 45, 50, 64, 4, 55, 81, 106, 118, 211, 74, 57, 96, 211, 74, 57, 45, 50, + 211, 74, 57, 40, 251, 174, 242, 68, 210, 105, 237, 16, 199, 24, 233, 211, + 199, 24, 236, 164, 213, 12, 233, 212, 234, 105, 203, 252, 223, 151, 214, + 245, 234, 132, 211, 146, 213, 12, 251, 133, 234, 132, 211, 146, 2, 234, + 132, 211, 146, 239, 32, 250, 220, 216, 190, 236, 164, 213, 12, 239, 34, + 250, 220, 216, 190, 2, 239, 32, 250, 220, 216, 190, 234, 95, 79, 208, + 190, 215, 60, 208, 200, 215, 60, 239, 9, 215, 60, 200, 201, 216, 35, 56, + 216, 33, 56, 75, 209, 81, 236, 200, 202, 97, 203, 253, 216, 34, 250, 194, + 211, 66, 206, 189, 211, 66, 247, 249, 211, 66, 51, 206, 128, 238, 191, + 206, 128, 232, 121, 206, 128, 208, 186, 159, 223, 139, 50, 251, 115, 251, + 115, 216, 226, 251, 115, 201, 225, 251, 115, 236, 203, 236, 164, 213, 12, + 236, 207, 210, 119, 159, 213, 12, 210, 119, 159, 219, 29, 251, 125, 219, + 29, 211, 56, 223, 99, 196, 92, 223, 113, 55, 223, 113, 197, 225, 223, + 113, 239, 26, 223, 113, 200, 171, 223, 113, 195, 11, 223, 113, 242, 221, + 223, 113, 242, 221, 239, 26, 223, 113, 251, 85, 239, 26, 223, 113, 199, + 23, 249, 3, 207, 126, 208, 187, 75, 216, 34, 233, 219, 231, 144, 208, + 187, 229, 0, 198, 153, 211, 66, 207, 18, 198, 152, 223, 93, 219, 245, + 206, 8, 202, 172, 193, 138, 193, 10, 208, 200, 213, 12, 198, 152, 216, + 35, 198, 152, 250, 186, 234, 45, 159, 213, 12, 250, 186, 234, 45, 159, + 251, 40, 234, 45, 159, 251, 40, 247, 218, 213, 12, 252, 48, 234, 45, 159, + 214, 105, 251, 40, 213, 21, 252, 48, 234, 45, 159, 251, 165, 234, 45, + 159, 213, 12, 251, 165, 234, 45, 159, 251, 165, 234, 45, 211, 57, 234, + 45, 159, 197, 225, 198, 152, 251, 175, 234, 45, 159, 234, 36, 159, 231, + 143, 234, 36, 159, 237, 17, 248, 209, 251, 42, 199, 34, 219, 120, 231, + 143, 234, 45, 159, 251, 40, 234, 45, 119, 211, 57, 199, 34, 223, 178, + 211, 146, 223, 178, 79, 211, 57, 251, 40, 234, 45, 159, 242, 84, 234, 42, + 234, 43, 242, 83, 206, 189, 223, 163, 234, 45, 159, 206, 189, 234, 45, + 159, 238, 250, 159, 234, 3, 234, 41, 159, 201, 103, 234, 42, 237, 107, + 234, 45, 159, 234, 45, 119, 247, 205, 237, 126, 216, 226, 247, 204, 208, + 11, 234, 45, 159, 213, 12, 234, 45, 159, 228, 17, 159, 213, 12, 228, 17, + 159, 201, 35, 234, 36, 159, 219, 180, 211, 57, 234, 45, 159, 230, 204, + 211, 57, 234, 45, 159, 219, 180, 139, 234, 45, 159, 230, 204, 139, 234, + 45, 159, 219, 180, 247, 218, 213, 12, 234, 45, 159, 230, 204, 247, 218, + 213, 12, 234, 45, 159, 215, 145, 219, 179, 215, 145, 230, 203, 248, 209, + 213, 12, 234, 36, 159, 213, 12, 219, 179, 213, 12, 230, 203, 214, 105, + 219, 180, 213, 21, 234, 45, 159, 214, 105, 230, 204, 213, 21, 234, 45, + 159, 219, 180, 211, 57, 234, 36, 159, 230, 204, 211, 57, 234, 36, 159, + 214, 105, 219, 180, 213, 21, 234, 36, 159, 214, 105, 230, 204, 213, 21, + 234, 36, 159, 219, 180, 211, 57, 230, 203, 230, 204, 211, 57, 219, 179, + 214, 105, 219, 180, 213, 21, 230, 203, 214, 105, 230, 204, 213, 21, 219, + 179, 208, 231, 200, 220, 208, 232, 211, 57, 234, 45, 159, 200, 221, 211, + 57, 234, 45, 159, 208, 232, 211, 57, 234, 36, 159, 200, 221, 211, 57, + 234, 36, 159, 236, 164, 213, 12, 208, 234, 236, 164, 213, 12, 200, 222, + 200, 229, 211, 146, 200, 181, 211, 146, 213, 12, 42, 200, 229, 211, 146, + 213, 12, 42, 200, 181, 211, 146, 200, 229, 79, 211, 57, 234, 45, 159, + 200, 181, 79, 211, 57, 234, 45, 159, 214, 105, 42, 200, 229, 79, 213, 21, + 234, 45, 159, 214, 105, 42, 200, 181, 79, 213, 21, 234, 45, 159, 200, + 229, 79, 4, 213, 12, 234, 45, 159, 200, 181, 79, 4, 213, 12, 234, 45, + 159, 215, 124, 215, 125, 215, 126, 215, 125, 196, 92, 51, 223, 178, 211, + 146, 51, 211, 46, 211, 146, 51, 223, 178, 79, 211, 57, 234, 45, 159, 51, + 211, 46, 79, 211, 57, 234, 45, 159, 51, 247, 111, 51, 238, 181, 47, 209, + 81, 47, 216, 34, 47, 198, 144, 47, 236, 200, 202, 97, 47, 75, 211, 66, + 47, 206, 189, 211, 66, 47, 250, 194, 211, 66, 47, 234, 42, 47, 237, 215, + 112, 209, 81, 112, 216, 34, 112, 198, 144, 112, 75, 211, 66, 50, 199, + 228, 45, 199, 228, 144, 199, 228, 133, 199, 228, 250, 197, 216, 1, 197, + 201, 232, 152, 197, 225, 81, 249, 88, 50, 197, 57, 55, 81, 249, 88, 55, + 50, 197, 57, 236, 164, 213, 12, 208, 179, 213, 12, 197, 201, 236, 164, + 213, 12, 232, 153, 214, 108, 55, 81, 249, 88, 55, 50, 197, 57, 208, 232, + 196, 105, 207, 65, 200, 221, 196, 105, 207, 65, 213, 18, 200, 244, 211, + 146, 239, 32, 250, 220, 213, 18, 200, 243, 213, 18, 200, 244, 79, 211, + 57, 234, 45, 159, 239, 32, 250, 220, 213, 18, 200, 244, 211, 57, 234, 45, + 159, 211, 46, 211, 146, 223, 178, 211, 146, 215, 131, 229, 189, 239, 43, + 217, 27, 223, 110, 192, 192, 214, 224, 213, 20, 50, 251, 116, 4, 251, 16, + 50, 197, 241, 215, 60, 219, 29, 251, 125, 215, 60, 219, 29, 211, 56, 215, + 60, 223, 99, 215, 60, 196, 92, 237, 33, 211, 66, 75, 211, 66, 201, 103, + 211, 66, 236, 200, 198, 144, 248, 63, 45, 213, 18, 233, 93, 204, 24, 208, + 200, 50, 213, 18, 233, 93, 204, 24, 208, 200, 45, 204, 24, 208, 200, 50, + 204, 24, 208, 200, 207, 18, 198, 153, 234, 42, 238, 171, 219, 29, 211, + 56, 238, 171, 219, 29, 251, 125, 55, 200, 228, 55, 200, 180, 55, 223, 99, + 55, 196, 92, 209, 115, 234, 45, 23, 210, 119, 159, 219, 180, 4, 236, 140, + 230, 204, 4, 236, 140, 195, 83, 215, 145, 219, 179, 195, 83, 215, 145, + 230, 203, 219, 180, 234, 45, 119, 211, 57, 230, 203, 230, 204, 234, 45, + 119, 211, 57, 219, 179, 234, 45, 119, 211, 57, 219, 179, 234, 45, 119, + 211, 57, 230, 203, 234, 45, 119, 211, 57, 208, 231, 234, 45, 119, 211, + 57, 200, 220, 236, 164, 213, 12, 208, 235, 211, 57, 234, 44, 236, 164, + 213, 12, 200, 223, 211, 57, 234, 44, 213, 12, 51, 223, 178, 79, 211, 57, + 234, 45, 159, 213, 12, 51, 211, 46, 79, 211, 57, 234, 45, 159, 51, 223, + 178, 79, 211, 57, 213, 12, 234, 45, 159, 51, 211, 46, 79, 211, 57, 213, + 12, 234, 45, 159, 219, 180, 247, 218, 213, 12, 234, 36, 159, 230, 204, + 247, 218, 213, 12, 234, 36, 159, 208, 232, 247, 218, 213, 12, 234, 36, + 159, 200, 221, 247, 218, 213, 12, 234, 36, 159, 213, 12, 213, 18, 200, + 244, 211, 146, 236, 164, 213, 12, 239, 34, 250, 220, 213, 18, 200, 243, + 213, 12, 213, 18, 200, 244, 79, 211, 57, 234, 45, 159, 236, 164, 213, 12, + 239, 34, 250, 220, 213, 18, 200, 244, 211, 57, 234, 44, 81, 234, 120, + 216, 82, 228, 241, 234, 120, 133, 50, 237, 39, 234, 120, 144, 50, 237, + 39, 234, 120, 234, 132, 79, 4, 179, 228, 241, 106, 234, 132, 79, 4, 81, + 249, 88, 250, 183, 234, 95, 79, 228, 241, 106, 2, 234, 132, 79, 4, 81, + 249, 88, 250, 183, 234, 95, 79, 228, 241, 106, 234, 132, 79, 4, 75, 58, + 234, 132, 79, 4, 211, 6, 2, 234, 132, 79, 4, 211, 6, 234, 132, 79, 4, + 196, 103, 234, 132, 79, 4, 105, 228, 241, 201, 15, 239, 32, 4, 179, 228, + 241, 106, 239, 32, 4, 81, 249, 88, 250, 183, 234, 95, 79, 228, 241, 106, + 2, 239, 32, 4, 81, 249, 88, 250, 183, 234, 95, 79, 228, 241, 106, 239, + 32, 4, 211, 6, 2, 239, 32, 4, 211, 6, 191, 167, 213, 10, 249, 131, 216, + 189, 237, 34, 56, 234, 135, 57, 228, 172, 133, 250, 235, 144, 250, 235, + 208, 194, 209, 248, 193, 135, 219, 112, 45, 247, 30, 50, 247, 30, 45, + 232, 193, 50, 232, 193, 248, 77, 50, 238, 219, 248, 77, 45, 238, 219, + 198, 54, 50, 238, 219, 198, 54, 45, 238, 219, 207, 18, 213, 12, 56, 51, + 218, 232, 251, 16, 205, 43, 205, 52, 199, 107, 207, 96, 209, 25, 223, + 144, 195, 56, 201, 190, 209, 108, 79, 223, 109, 56, 153, 213, 12, 56, + 193, 145, 228, 174, 198, 54, 45, 239, 1, 198, 54, 50, 239, 1, 248, 77, + 45, 239, 1, 248, 77, 50, 239, 1, 198, 54, 132, 223, 113, 248, 77, 132, + 223, 113, 232, 93, 202, 65, 133, 250, 236, 248, 210, 105, 228, 241, 249, + 76, 211, 59, 221, 222, 234, 32, 119, 199, 34, 183, 192, 236, 223, 163, + 42, 207, 93, 248, 62, 221, 220, 219, 219, 251, 116, 248, 53, 206, 203, + 251, 116, 248, 53, 234, 32, 119, 199, 34, 219, 224, 248, 221, 206, 188, + 238, 138, 251, 175, 250, 244, 200, 74, 198, 39, 206, 41, 236, 252, 211, + 47, 239, 48, 199, 181, 202, 81, 238, 246, 238, 245, 251, 59, 232, 75, 16, + 228, 67, 251, 59, 232, 75, 16, 201, 181, 208, 30, 251, 59, 232, 75, 16, + 208, 31, 234, 44, 251, 59, 232, 75, 16, 208, 31, 236, 207, 251, 59, 232, + 75, 16, 208, 31, 237, 32, 251, 59, 232, 75, 16, 208, 31, 222, 188, 251, + 59, 232, 75, 16, 208, 31, 243, 10, 251, 59, 232, 75, 16, 243, 11, 201, + 71, 251, 59, 232, 75, 16, 243, 11, 222, 188, 251, 59, 232, 75, 16, 202, + 98, 164, 251, 59, 232, 75, 16, 249, 142, 164, 251, 59, 232, 75, 16, 208, + 31, 202, 97, 251, 59, 232, 75, 16, 208, 31, 249, 141, 251, 59, 232, 75, + 16, 208, 31, 219, 179, 251, 59, 232, 75, 16, 208, 31, 230, 203, 251, 59, + 232, 75, 16, 118, 195, 176, 251, 59, 232, 75, 16, 96, 195, 176, 251, 59, + 232, 75, 16, 208, 31, 118, 57, 251, 59, 232, 75, 16, 208, 31, 96, 57, + 251, 59, 232, 75, 16, 243, 11, 249, 141, 251, 59, 232, 75, 16, 144, 199, + 229, 196, 103, 251, 59, 232, 75, 16, 237, 107, 201, 71, 251, 59, 232, 75, + 16, 208, 31, 144, 247, 96, 251, 59, 232, 75, 16, 208, 31, 237, 106, 251, + 59, 232, 75, 16, 144, 199, 229, 222, 188, 251, 59, 232, 75, 16, 196, 66, + 195, 176, 251, 59, 232, 75, 16, 208, 31, 196, 66, 57, 251, 59, 232, 75, + 16, 133, 199, 229, 211, 6, 251, 59, 232, 75, 16, 237, 119, 201, 71, 251, + 59, 232, 75, 16, 208, 31, 133, 247, 96, 251, 59, 232, 75, 16, 208, 31, + 237, 118, 251, 59, 232, 75, 16, 133, 199, 229, 222, 188, 251, 59, 232, + 75, 16, 235, 119, 195, 176, 251, 59, 232, 75, 16, 208, 31, 235, 119, 57, + 251, 59, 232, 75, 16, 207, 251, 196, 103, 251, 59, 232, 75, 16, 237, 107, + 196, 103, 251, 59, 232, 75, 16, 237, 33, 196, 103, 251, 59, 232, 75, 16, + 222, 189, 196, 103, 251, 59, 232, 75, 16, 243, 11, 196, 103, 251, 59, + 232, 75, 16, 133, 203, 53, 222, 188, 251, 59, 232, 75, 16, 207, 251, 208, + 30, 251, 59, 232, 75, 16, 243, 11, 201, 102, 251, 59, 232, 75, 16, 208, + 31, 242, 83, 251, 59, 232, 75, 16, 133, 199, 229, 237, 42, 251, 59, 232, + 75, 16, 237, 119, 237, 42, 251, 59, 232, 75, 16, 201, 103, 237, 42, 251, + 59, 232, 75, 16, 222, 189, 237, 42, 251, 59, 232, 75, 16, 243, 11, 237, + 42, 251, 59, 232, 75, 16, 144, 203, 53, 201, 71, 251, 59, 232, 75, 16, + 45, 203, 53, 201, 71, 251, 59, 232, 75, 16, 198, 153, 237, 42, 251, 59, + 232, 75, 16, 230, 204, 237, 42, 251, 59, 232, 75, 16, 242, 75, 164, 251, + 59, 232, 75, 16, 237, 119, 198, 152, 251, 59, 232, 75, 16, 191, 20, 251, + 59, 232, 75, 16, 201, 72, 198, 152, 251, 59, 232, 75, 16, 204, 26, 196, + 103, 251, 59, 232, 75, 16, 208, 31, 213, 12, 234, 44, 251, 59, 232, 75, + 16, 208, 31, 208, 12, 251, 59, 232, 75, 16, 144, 247, 97, 198, 152, 251, + 59, 232, 75, 16, 133, 247, 97, 198, 152, 251, 59, 232, 75, 16, 223, 83, + 251, 59, 232, 75, 16, 207, 3, 251, 59, 232, 75, 16, 211, 110, 251, 59, + 232, 75, 16, 251, 161, 196, 103, 251, 59, 232, 75, 16, 234, 48, 196, 103, + 251, 59, 232, 75, 16, 223, 84, 196, 103, 251, 59, 232, 75, 16, 211, 111, + 196, 103, 251, 59, 232, 75, 16, 251, 160, 213, 12, 243, 126, 77, 50, 251, + 116, 4, 235, 119, 191, 21, 57, 203, 21, 211, 77, 248, 62, 248, 236, 113, + 81, 219, 113, 4, 82, 236, 140, 223, 119, 113, 239, 27, 196, 101, 113, + 236, 225, 196, 101, 113, 234, 107, 113, 239, 63, 113, 63, 51, 4, 247, 22, + 81, 219, 112, 234, 78, 113, 251, 152, 221, 223, 113, 229, 202, 113, 47, + 228, 241, 249, 88, 4, 213, 9, 47, 197, 242, 235, 123, 248, 22, 243, 11, + 4, 213, 15, 57, 196, 99, 113, 215, 216, 113, 228, 84, 113, 211, 75, 230, + 115, 113, 211, 75, 220, 141, 113, 210, 93, 113, 210, 92, 113, 236, 234, + 238, 169, 16, 232, 146, 109, 202, 29, 113, 251, 59, 232, 75, 16, 208, 30, + 237, 138, 204, 11, 221, 223, 113, 208, 217, 210, 204, 214, 73, 210, 204, + 208, 212, 205, 77, 113, 242, 238, 205, 77, 113, 45, 210, 114, 116, 102, + 45, 210, 114, 233, 203, 45, 210, 114, 110, 102, 50, 210, 114, 116, 102, + 50, 210, 114, 233, 203, 50, 210, 114, 110, 102, 45, 51, 248, 54, 116, + 239, 1, 45, 51, 248, 54, 233, 203, 45, 51, 248, 54, 110, 239, 1, 50, 51, + 248, 54, 116, 239, 1, 50, 51, 248, 54, 233, 203, 50, 51, 248, 54, 110, + 239, 1, 45, 238, 171, 248, 54, 116, 102, 45, 238, 171, 248, 54, 82, 209, + 175, 45, 238, 171, 248, 54, 110, 102, 238, 171, 248, 54, 233, 203, 50, + 238, 171, 248, 54, 116, 102, 50, 238, 171, 248, 54, 82, 209, 175, 50, + 238, 171, 248, 54, 110, 102, 223, 114, 233, 203, 228, 241, 219, 113, 233, + 203, 116, 45, 211, 57, 110, 50, 238, 171, 248, 54, 205, 53, 116, 50, 211, + 57, 110, 45, 238, 171, 248, 54, 205, 53, 200, 202, 198, 53, 200, 202, + 248, 76, 198, 54, 51, 248, 53, 248, 77, 51, 248, 53, 248, 77, 51, 248, + 54, 139, 198, 54, 51, 248, 53, 48, 16, 248, 76, 45, 81, 111, 219, 112, + 50, 81, 111, 219, 112, 228, 241, 205, 97, 219, 111, 228, 241, 205, 97, + 219, 110, 228, 241, 205, 97, 219, 109, 228, 241, 205, 97, 219, 108, 237, + 97, 16, 156, 81, 23, 198, 54, 183, 237, 97, 16, 156, 81, 23, 248, 77, + 183, 237, 97, 16, 156, 81, 4, 243, 10, 237, 97, 16, 156, 144, 23, 228, + 241, 4, 243, 10, 237, 97, 16, 156, 133, 23, 228, 241, 4, 243, 10, 237, + 97, 16, 156, 81, 4, 197, 241, 237, 97, 16, 156, 144, 23, 228, 241, 4, + 197, 241, 237, 97, 16, 156, 133, 23, 228, 241, 4, 197, 241, 237, 97, 16, + 156, 81, 23, 193, 138, 237, 97, 16, 156, 144, 23, 228, 241, 4, 193, 138, + 237, 97, 16, 156, 133, 23, 228, 241, 4, 193, 138, 237, 97, 16, 156, 144, + 23, 228, 240, 237, 97, 16, 156, 133, 23, 228, 240, 237, 97, 16, 156, 81, + 23, 198, 54, 219, 224, 237, 97, 16, 156, 81, 23, 248, 77, 219, 224, 51, + 232, 159, 207, 23, 113, 234, 149, 113, 81, 219, 113, 233, 203, 216, 159, + 248, 36, 216, 159, 179, 139, 203, 39, 216, 159, 203, 40, 139, 219, 19, + 216, 159, 179, 139, 105, 203, 25, 216, 159, 105, 203, 26, 139, 219, 19, + 216, 159, 105, 203, 26, 222, 197, 216, 159, 197, 221, 216, 159, 199, 65, + 216, 159, 210, 22, 234, 208, 230, 188, 232, 69, 198, 54, 210, 113, 248, + 77, 210, 113, 198, 54, 238, 171, 248, 53, 248, 77, 238, 171, 248, 53, + 198, 54, 198, 42, 203, 103, 248, 53, 248, 77, 198, 42, 203, 103, 248, 53, + 63, 198, 5, 248, 221, 206, 189, 4, 243, 10, 201, 51, 232, 204, 252, 64, + 238, 168, 234, 134, 223, 99, 237, 138, 233, 207, 113, 62, 206, 203, 55, + 197, 241, 62, 219, 219, 55, 197, 241, 62, 196, 76, 55, 197, 241, 62, 235, + 122, 55, 197, 241, 62, 206, 203, 55, 197, 242, 4, 81, 164, 62, 219, 219, + 55, 197, 242, 4, 81, 164, 62, 206, 203, 197, 242, 4, 55, 81, 164, 251, + 201, 242, 222, 201, 58, 198, 145, 242, 222, 228, 175, 4, 232, 184, 205, + 140, 62, 216, 213, 219, 219, 197, 241, 62, 216, 213, 206, 203, 197, 241, + 62, 216, 213, 196, 76, 197, 241, 62, 216, 213, 235, 122, 197, 241, 55, + 81, 164, 62, 51, 40, 201, 63, 62, 243, 11, 40, 207, 97, 208, 255, 113, + 208, 255, 211, 103, 113, 208, 255, 211, 105, 113, 208, 255, 202, 93, 113, + 211, 168, 233, 194, 113, 16, 40, 212, 138, 16, 40, 201, 98, 79, 229, 232, + 16, 40, 201, 98, 79, 199, 53, 16, 40, 234, 95, 79, 199, 53, 16, 40, 234, + 95, 79, 198, 11, 16, 40, 234, 81, 16, 40, 252, 51, 16, 40, 248, 235, 16, + 40, 249, 140, 16, 40, 228, 241, 199, 230, 16, 40, 219, 113, 233, 50, 16, + 40, 81, 199, 230, 16, 40, 232, 146, 233, 50, 16, 40, 247, 88, 207, 22, + 16, 40, 203, 77, 211, 14, 16, 40, 203, 77, 223, 162, 16, 40, 237, 210, + 219, 103, 234, 14, 16, 40, 237, 75, 239, 22, 107, 16, 40, 237, 75, 239, + 22, 109, 16, 40, 237, 75, 239, 22, 138, 16, 40, 237, 75, 239, 22, 134, + 16, 40, 214, 106, 252, 51, 16, 40, 200, 69, 223, 228, 16, 40, 234, 95, + 79, 198, 12, 248, 129, 16, 40, 247, 126, 16, 40, 234, 95, 79, 216, 212, + 16, 40, 200, 226, 16, 40, 234, 14, 16, 40, 233, 7, 204, 10, 16, 40, 230, + 187, 204, 10, 16, 40, 207, 98, 204, 10, 16, 40, 196, 91, 204, 10, 16, 40, + 201, 247, 16, 40, 237, 116, 248, 133, 113, 211, 77, 248, 62, 16, 40, 214, + 76, 16, 40, 237, 117, 232, 146, 109, 16, 40, 200, 227, 232, 146, 109, + 211, 161, 102, 211, 161, 246, 252, 211, 161, 232, 149, 211, 161, 223, 93, + 232, 149, 211, 161, 248, 232, 248, 5, 211, 161, 248, 70, 198, 178, 211, + 161, 248, 48, 249, 93, 228, 15, 211, 161, 251, 139, 79, 243, 125, 211, + 161, 237, 215, 211, 161, 238, 157, 252, 55, 212, 136, 211, 161, 55, 249, + 141, 47, 17, 107, 47, 17, 109, 47, 17, 138, 47, 17, 134, 47, 17, 149, 47, + 17, 169, 47, 17, 175, 47, 17, 171, 47, 17, 178, 47, 31, 199, 95, 47, 31, + 234, 127, 47, 31, 197, 37, 47, 31, 198, 251, 47, 31, 232, 122, 47, 31, + 233, 19, 47, 31, 202, 130, 47, 31, 203, 244, 47, 31, 234, 161, 47, 31, + 213, 171, 47, 31, 197, 32, 127, 17, 107, 127, 17, 109, 127, 17, 138, 127, + 17, 134, 127, 17, 149, 127, 17, 169, 127, 17, 175, 127, 17, 171, 127, 17, + 178, 127, 31, 199, 95, 127, 31, 234, 127, 127, 31, 197, 37, 127, 31, 198, + 251, 127, 31, 232, 122, 127, 31, 233, 19, 127, 31, 202, 130, 127, 31, + 203, 244, 127, 31, 234, 161, 127, 31, 213, 171, 127, 31, 197, 32, 17, 91, + 232, 80, 201, 63, 17, 105, 232, 80, 201, 63, 17, 115, 232, 80, 201, 63, + 17, 232, 128, 232, 80, 201, 63, 17, 232, 226, 232, 80, 201, 63, 17, 202, + 136, 232, 80, 201, 63, 17, 203, 247, 232, 80, 201, 63, 17, 234, 164, 232, + 80, 201, 63, 17, 213, 175, 232, 80, 201, 63, 31, 199, 96, 232, 80, 201, + 63, 31, 234, 128, 232, 80, 201, 63, 31, 197, 38, 232, 80, 201, 63, 31, + 198, 252, 232, 80, 201, 63, 31, 232, 123, 232, 80, 201, 63, 31, 233, 20, + 232, 80, 201, 63, 31, 202, 131, 232, 80, 201, 63, 31, 203, 245, 232, 80, + 201, 63, 31, 234, 162, 232, 80, 201, 63, 31, 213, 172, 232, 80, 201, 63, + 31, 197, 33, 232, 80, 201, 63, 127, 8, 2, 1, 65, 127, 8, 2, 1, 250, 120, + 127, 8, 2, 1, 247, 193, 127, 8, 2, 1, 238, 127, 127, 8, 2, 1, 71, 127, 8, + 2, 1, 233, 175, 127, 8, 2, 1, 232, 51, 127, 8, 2, 1, 230, 116, 127, 8, 2, + 1, 68, 127, 8, 2, 1, 223, 35, 127, 8, 2, 1, 222, 152, 127, 8, 2, 1, 172, + 127, 8, 2, 1, 218, 168, 127, 8, 2, 1, 215, 61, 127, 8, 2, 1, 74, 127, 8, + 2, 1, 210, 236, 127, 8, 2, 1, 208, 104, 127, 8, 2, 1, 146, 127, 8, 2, 1, + 206, 8, 127, 8, 2, 1, 200, 43, 127, 8, 2, 1, 66, 127, 8, 2, 1, 196, 12, + 127, 8, 2, 1, 193, 224, 127, 8, 2, 1, 192, 235, 127, 8, 2, 1, 192, 159, + 127, 8, 2, 1, 191, 166, 47, 8, 6, 1, 65, 47, 8, 6, 1, 250, 120, 47, 8, 6, + 1, 247, 193, 47, 8, 6, 1, 238, 127, 47, 8, 6, 1, 71, 47, 8, 6, 1, 233, + 175, 47, 8, 6, 1, 232, 51, 47, 8, 6, 1, 230, 116, 47, 8, 6, 1, 68, 47, 8, + 6, 1, 223, 35, 47, 8, 6, 1, 222, 152, 47, 8, 6, 1, 172, 47, 8, 6, 1, 218, + 168, 47, 8, 6, 1, 215, 61, 47, 8, 6, 1, 74, 47, 8, 6, 1, 210, 236, 47, 8, + 6, 1, 208, 104, 47, 8, 6, 1, 146, 47, 8, 6, 1, 206, 8, 47, 8, 6, 1, 200, + 43, 47, 8, 6, 1, 66, 47, 8, 6, 1, 196, 12, 47, 8, 6, 1, 193, 224, 47, 8, + 6, 1, 192, 235, 47, 8, 6, 1, 192, 159, 47, 8, 6, 1, 191, 166, 47, 8, 2, + 1, 65, 47, 8, 2, 1, 250, 120, 47, 8, 2, 1, 247, 193, 47, 8, 2, 1, 238, + 127, 47, 8, 2, 1, 71, 47, 8, 2, 1, 233, 175, 47, 8, 2, 1, 232, 51, 47, 8, + 2, 1, 230, 116, 47, 8, 2, 1, 68, 47, 8, 2, 1, 223, 35, 47, 8, 2, 1, 222, + 152, 47, 8, 2, 1, 172, 47, 8, 2, 1, 218, 168, 47, 8, 2, 1, 215, 61, 47, + 8, 2, 1, 74, 47, 8, 2, 1, 210, 236, 47, 8, 2, 1, 208, 104, 47, 8, 2, 1, + 146, 47, 8, 2, 1, 206, 8, 47, 8, 2, 1, 200, 43, 47, 8, 2, 1, 66, 47, 8, + 2, 1, 196, 12, 47, 8, 2, 1, 193, 224, 47, 8, 2, 1, 192, 235, 47, 8, 2, 1, + 192, 159, 47, 8, 2, 1, 191, 166, 47, 17, 191, 77, 214, 106, 47, 31, 234, + 127, 214, 106, 47, 31, 197, 37, 214, 106, 47, 31, 198, 251, 214, 106, 47, + 31, 232, 122, 214, 106, 47, 31, 233, 19, 214, 106, 47, 31, 202, 130, 214, + 106, 47, 31, 203, 244, 214, 106, 47, 31, 234, 161, 214, 106, 47, 31, 213, + 171, 214, 106, 47, 31, 197, 32, 55, 47, 17, 107, 55, 47, 17, 109, 55, 47, + 17, 138, 55, 47, 17, 134, 55, 47, 17, 149, 55, 47, 17, 169, 55, 47, 17, + 175, 55, 47, 17, 171, 55, 47, 17, 178, 55, 47, 31, 199, 95, 214, 106, 47, + 17, 191, 77, 111, 122, 156, 228, 240, 111, 122, 88, 228, 240, 111, 122, + 156, 195, 135, 111, 122, 88, 195, 135, 111, 122, 156, 197, 225, 237, 216, + 228, 240, 111, 122, 88, 197, 225, 237, 216, 228, 240, 111, 122, 156, 197, + 225, 237, 216, 195, 135, 111, 122, 88, 197, 225, 237, 216, 195, 135, 111, + 122, 156, 208, 26, 237, 216, 228, 240, 111, 122, 88, 208, 26, 237, 216, + 228, 240, 111, 122, 156, 208, 26, 237, 216, 195, 135, 111, 122, 88, 208, + 26, 237, 216, 195, 135, 111, 122, 156, 144, 23, 183, 111, 122, 144, 156, + 23, 50, 229, 217, 111, 122, 144, 88, 23, 50, 219, 132, 111, 122, 88, 144, + 23, 183, 111, 122, 156, 144, 23, 219, 224, 111, 122, 144, 156, 23, 45, + 229, 217, 111, 122, 144, 88, 23, 45, 219, 132, 111, 122, 88, 144, 23, + 219, 224, 111, 122, 156, 133, 23, 183, 111, 122, 133, 156, 23, 50, 229, + 217, 111, 122, 133, 88, 23, 50, 219, 132, 111, 122, 88, 133, 23, 183, + 111, 122, 156, 133, 23, 219, 224, 111, 122, 133, 156, 23, 45, 229, 217, + 111, 122, 133, 88, 23, 45, 219, 132, 111, 122, 88, 133, 23, 219, 224, + 111, 122, 156, 81, 23, 183, 111, 122, 81, 156, 23, 50, 229, 217, 111, + 122, 133, 88, 23, 50, 144, 219, 132, 111, 122, 144, 88, 23, 50, 133, 219, + 132, 111, 122, 81, 88, 23, 50, 219, 132, 111, 122, 144, 156, 23, 50, 133, + 229, 217, 111, 122, 133, 156, 23, 50, 144, 229, 217, 111, 122, 88, 81, + 23, 183, 111, 122, 156, 81, 23, 219, 224, 111, 122, 81, 156, 23, 45, 229, + 217, 111, 122, 133, 88, 23, 45, 144, 219, 132, 111, 122, 144, 88, 23, 45, + 133, 219, 132, 111, 122, 81, 88, 23, 45, 219, 132, 111, 122, 144, 156, + 23, 45, 133, 229, 217, 111, 122, 133, 156, 23, 45, 144, 229, 217, 111, + 122, 88, 81, 23, 219, 224, 111, 122, 156, 144, 23, 228, 240, 111, 122, + 45, 88, 23, 50, 144, 219, 132, 111, 122, 50, 88, 23, 45, 144, 219, 132, + 111, 122, 144, 156, 23, 228, 241, 229, 217, 111, 122, 144, 88, 23, 228, + 241, 219, 132, 111, 122, 50, 156, 23, 45, 144, 229, 217, 111, 122, 45, + 156, 23, 50, 144, 229, 217, 111, 122, 88, 144, 23, 228, 240, 111, 122, + 156, 133, 23, 228, 240, 111, 122, 45, 88, 23, 50, 133, 219, 132, 111, + 122, 50, 88, 23, 45, 133, 219, 132, 111, 122, 133, 156, 23, 228, 241, + 229, 217, 111, 122, 133, 88, 23, 228, 241, 219, 132, 111, 122, 50, 156, + 23, 45, 133, 229, 217, 111, 122, 45, 156, 23, 50, 133, 229, 217, 111, + 122, 88, 133, 23, 228, 240, 111, 122, 156, 81, 23, 228, 240, 111, 122, + 45, 88, 23, 50, 81, 219, 132, 111, 122, 50, 88, 23, 45, 81, 219, 132, + 111, 122, 81, 156, 23, 228, 241, 229, 217, 111, 122, 133, 88, 23, 144, + 228, 241, 219, 132, 111, 122, 144, 88, 23, 133, 228, 241, 219, 132, 111, + 122, 81, 88, 23, 228, 241, 219, 132, 111, 122, 45, 133, 88, 23, 50, 144, + 219, 132, 111, 122, 50, 133, 88, 23, 45, 144, 219, 132, 111, 122, 45, + 144, 88, 23, 50, 133, 219, 132, 111, 122, 50, 144, 88, 23, 45, 133, 219, + 132, 111, 122, 144, 156, 23, 133, 228, 241, 229, 217, 111, 122, 133, 156, + 23, 144, 228, 241, 229, 217, 111, 122, 50, 156, 23, 45, 81, 229, 217, + 111, 122, 45, 156, 23, 50, 81, 229, 217, 111, 122, 88, 81, 23, 228, 240, + 111, 122, 156, 55, 237, 216, 228, 240, 111, 122, 88, 55, 237, 216, 228, + 240, 111, 122, 156, 55, 237, 216, 195, 135, 111, 122, 88, 55, 237, 216, + 195, 135, 111, 122, 55, 228, 240, 111, 122, 55, 195, 135, 111, 122, 144, + 202, 170, 23, 50, 235, 133, 111, 122, 144, 55, 23, 50, 202, 169, 111, + 122, 55, 144, 23, 183, 111, 122, 144, 202, 170, 23, 45, 235, 133, 111, + 122, 144, 55, 23, 45, 202, 169, 111, 122, 55, 144, 23, 219, 224, 111, + 122, 133, 202, 170, 23, 50, 235, 133, 111, 122, 133, 55, 23, 50, 202, + 169, 111, 122, 55, 133, 23, 183, 111, 122, 133, 202, 170, 23, 45, 235, + 133, 111, 122, 133, 55, 23, 45, 202, 169, 111, 122, 55, 133, 23, 219, + 224, 111, 122, 81, 202, 170, 23, 50, 235, 133, 111, 122, 81, 55, 23, 50, + 202, 169, 111, 122, 55, 81, 23, 183, 111, 122, 81, 202, 170, 23, 45, 235, + 133, 111, 122, 81, 55, 23, 45, 202, 169, 111, 122, 55, 81, 23, 219, 224, + 111, 122, 144, 202, 170, 23, 228, 241, 235, 133, 111, 122, 144, 55, 23, + 228, 241, 202, 169, 111, 122, 55, 144, 23, 228, 240, 111, 122, 133, 202, + 170, 23, 228, 241, 235, 133, 111, 122, 133, 55, 23, 228, 241, 202, 169, + 111, 122, 55, 133, 23, 228, 240, 111, 122, 81, 202, 170, 23, 228, 241, + 235, 133, 111, 122, 81, 55, 23, 228, 241, 202, 169, 111, 122, 55, 81, 23, + 228, 240, 111, 122, 156, 251, 17, 144, 23, 183, 111, 122, 156, 251, 17, + 144, 23, 219, 224, 111, 122, 156, 251, 17, 133, 23, 219, 224, 111, 122, + 156, 251, 17, 133, 23, 183, 111, 122, 156, 237, 39, 116, 50, 119, 110, + 219, 224, 111, 122, 156, 237, 39, 116, 45, 119, 110, 183, 111, 122, 156, + 237, 39, 238, 217, 111, 122, 156, 219, 224, 111, 122, 156, 196, 77, 111, + 122, 156, 183, 111, 122, 156, 235, 123, 111, 122, 88, 219, 224, 111, 122, + 88, 196, 77, 111, 122, 88, 183, 111, 122, 88, 235, 123, 111, 122, 156, + 45, 23, 88, 183, 111, 122, 156, 133, 23, 88, 235, 123, 111, 122, 88, 45, + 23, 156, 183, 111, 122, 88, 133, 23, 156, 235, 123, 116, 132, 248, 129, + 110, 91, 234, 160, 248, 129, 110, 91, 208, 23, 248, 129, 110, 115, 234, + 158, 248, 129, 110, 132, 248, 129, 110, 232, 226, 234, 158, 248, 129, + 110, 115, 208, 21, 248, 129, 110, 203, 247, 234, 158, 248, 129, 232, 80, + 248, 129, 45, 203, 247, 234, 158, 248, 129, 45, 115, 208, 21, 248, 129, + 45, 232, 226, 234, 158, 248, 129, 45, 132, 248, 129, 45, 115, 234, 158, + 248, 129, 45, 91, 208, 23, 248, 129, 45, 91, 234, 160, 248, 129, 50, 132, + 248, 129, 156, 203, 153, 216, 213, 203, 153, 237, 221, 203, 153, 116, 91, + 234, 160, 248, 129, 50, 91, 234, 160, 248, 129, 208, 28, 110, 219, 224, + 208, 28, 110, 183, 208, 28, 116, 219, 224, 208, 28, 116, 45, 23, 110, 45, + 23, 110, 183, 208, 28, 116, 45, 23, 110, 183, 208, 28, 116, 45, 23, 116, + 50, 23, 110, 219, 224, 208, 28, 116, 45, 23, 116, 50, 23, 110, 183, 208, + 28, 116, 183, 208, 28, 116, 50, 23, 110, 219, 224, 208, 28, 116, 50, 23, + 110, 45, 23, 110, 183, 62, 201, 190, 63, 201, 190, 63, 51, 4, 206, 113, + 239, 0, 63, 51, 239, 33, 62, 2, 201, 190, 51, 4, 228, 241, 233, 5, 51, 4, + 81, 233, 5, 51, 4, 211, 38, 238, 211, 233, 5, 51, 4, 116, 45, 119, 110, + 50, 233, 5, 51, 4, 116, 50, 119, 110, 45, 233, 5, 51, 4, 237, 39, 238, + 211, 233, 5, 62, 2, 201, 190, 63, 2, 201, 190, 62, 207, 92, 63, 207, 92, + 62, 81, 207, 92, 63, 81, 207, 92, 62, 210, 117, 63, 210, 117, 62, 196, + 76, 197, 241, 63, 196, 76, 197, 241, 62, 196, 76, 2, 197, 241, 63, 196, + 76, 2, 197, 241, 62, 206, 203, 197, 241, 63, 206, 203, 197, 241, 62, 206, + 203, 2, 197, 241, 63, 206, 203, 2, 197, 241, 62, 206, 203, 209, 59, 63, + 206, 203, 209, 59, 62, 235, 122, 197, 241, 63, 235, 122, 197, 241, 62, + 235, 122, 2, 197, 241, 63, 235, 122, 2, 197, 241, 62, 219, 219, 197, 241, + 63, 219, 219, 197, 241, 62, 219, 219, 2, 197, 241, 63, 219, 219, 2, 197, + 241, 62, 219, 219, 209, 59, 63, 219, 219, 209, 59, 62, 237, 32, 63, 237, + 32, 63, 237, 33, 239, 33, 62, 2, 237, 32, 232, 235, 218, 232, 63, 243, + 10, 235, 138, 243, 10, 243, 11, 4, 81, 233, 5, 247, 244, 62, 243, 10, + 243, 11, 4, 45, 132, 248, 139, 243, 11, 4, 50, 132, 248, 139, 243, 11, 4, + 110, 132, 248, 139, 243, 11, 4, 116, 132, 248, 139, 243, 11, 4, 116, 50, + 208, 28, 248, 139, 243, 11, 4, 251, 175, 247, 218, 116, 45, 208, 28, 248, + 139, 45, 132, 62, 243, 10, 50, 132, 62, 243, 10, 223, 95, 247, 248, 223, + 95, 63, 243, 10, 116, 132, 223, 95, 63, 243, 10, 110, 132, 223, 95, 63, + 243, 10, 116, 45, 208, 28, 243, 4, 251, 16, 116, 50, 208, 28, 243, 4, + 251, 16, 110, 50, 208, 28, 243, 4, 251, 16, 110, 45, 208, 28, 243, 4, + 251, 16, 116, 132, 243, 10, 110, 132, 243, 10, 62, 110, 50, 197, 241, 62, + 110, 45, 197, 241, 62, 116, 45, 197, 241, 62, 116, 50, 197, 241, 63, 247, + 248, 51, 4, 45, 132, 248, 139, 51, 4, 50, 132, 248, 139, 51, 4, 116, 45, + 237, 39, 132, 248, 139, 51, 4, 110, 50, 237, 39, 132, 248, 139, 63, 51, + 4, 81, 248, 154, 219, 112, 63, 196, 76, 197, 242, 4, 236, 140, 196, 76, + 197, 242, 4, 45, 132, 248, 139, 196, 76, 197, 242, 4, 50, 132, 248, 139, + 220, 13, 243, 10, 63, 51, 4, 116, 45, 208, 27, 63, 51, 4, 110, 45, 208, + 27, 63, 51, 4, 110, 50, 208, 27, 63, 51, 4, 116, 50, 208, 27, 63, 243, + 11, 4, 116, 45, 208, 27, 63, 243, 11, 4, 110, 45, 208, 27, 63, 243, 11, + 4, 110, 50, 208, 27, 63, 243, 11, 4, 116, 50, 208, 27, 116, 45, 197, 241, + 116, 50, 197, 241, 110, 45, 197, 241, 63, 216, 213, 201, 190, 62, 216, + 213, 201, 190, 63, 216, 213, 2, 201, 190, 62, 216, 213, 2, 201, 190, 110, + 50, 197, 241, 62, 200, 199, 4, 207, 119, 242, 210, 196, 117, 202, 48, + 242, 77, 62, 201, 102, 63, 201, 102, 219, 129, 198, 208, 200, 198, 250, + 213, 213, 35, 237, 86, 213, 35, 239, 42, 211, 62, 62, 199, 106, 63, 199, + 106, 249, 107, 248, 62, 249, 107, 111, 4, 243, 125, 249, 107, 111, 4, + 192, 235, 205, 154, 196, 118, 4, 207, 150, 235, 96, 228, 181, 248, 207, + 63, 203, 49, 209, 175, 62, 203, 49, 209, 175, 203, 140, 207, 18, 206, + 122, 232, 190, 229, 224, 247, 248, 62, 45, 209, 58, 223, 148, 62, 50, + 209, 58, 223, 148, 63, 45, 209, 58, 223, 148, 63, 133, 209, 58, 223, 148, + 63, 50, 209, 58, 223, 148, 63, 144, 209, 58, 223, 148, 202, 104, 23, 238, + 215, 247, 71, 56, 207, 164, 56, 248, 162, 56, 247, 151, 251, 99, 211, 39, + 238, 217, 243, 96, 207, 3, 238, 218, 79, 218, 255, 238, 218, 79, 222, + 254, 201, 103, 23, 238, 227, 233, 74, 113, 252, 34, 203, 143, 230, 62, + 23, 202, 213, 210, 61, 113, 192, 22, 192, 106, 197, 231, 40, 229, 219, + 197, 231, 40, 220, 43, 197, 231, 40, 232, 243, 197, 231, 40, 198, 209, + 197, 231, 40, 193, 66, 197, 231, 40, 193, 143, 197, 231, 40, 215, 184, + 197, 231, 40, 234, 207, 193, 94, 79, 237, 60, 63, 232, 92, 233, 103, 63, + 202, 64, 233, 103, 62, 202, 64, 233, 103, 63, 200, 199, 4, 207, 119, 232, + 238, 208, 23, 215, 205, 220, 6, 208, 23, 215, 205, 216, 180, 233, 42, 56, + 234, 207, 217, 97, 56, 222, 167, 205, 115, 196, 57, 214, 94, 209, 77, + 251, 2, 199, 164, 231, 152, 247, 124, 219, 186, 195, 38, 219, 143, 205, + 80, 205, 183, 247, 106, 251, 34, 209, 120, 63, 243, 105, 221, 138, 63, + 243, 105, 208, 14, 63, 243, 105, 206, 131, 63, 243, 105, 248, 152, 63, + 243, 105, 221, 76, 63, 243, 105, 210, 74, 62, 243, 105, 221, 138, 62, + 243, 105, 208, 14, 62, 243, 105, 206, 131, 62, 243, 105, 248, 152, 62, + 243, 105, 221, 76, 62, 243, 105, 210, 74, 62, 201, 245, 200, 211, 63, + 229, 224, 200, 211, 63, 237, 33, 200, 211, 62, 242, 207, 200, 211, 63, + 201, 245, 200, 211, 62, 229, 224, 200, 211, 62, 237, 33, 200, 211, 63, + 242, 207, 200, 211, 228, 181, 201, 195, 208, 23, 213, 6, 234, 160, 213, + 6, 249, 13, 234, 160, 213, 1, 249, 13, 202, 129, 213, 1, 215, 97, 232, + 207, 56, 215, 97, 214, 206, 56, 215, 97, 203, 127, 56, 193, 105, 200, 63, + 238, 217, 234, 204, 200, 63, 238, 217, 196, 87, 207, 88, 113, 207, 88, + 16, 40, 196, 254, 209, 98, 207, 88, 16, 40, 196, 252, 209, 98, 207, 88, + 16, 40, 196, 251, 209, 98, 207, 88, 16, 40, 196, 249, 209, 98, 207, 88, + 16, 40, 196, 247, 209, 98, 207, 88, 16, 40, 196, 245, 209, 98, 207, 88, + 16, 40, 196, 243, 209, 98, 207, 88, 16, 40, 231, 149, 217, 28, 62, 196, + 87, 207, 88, 113, 207, 89, 210, 136, 113, 210, 104, 210, 136, 113, 210, + 3, 210, 136, 56, 193, 92, 113, 237, 25, 233, 102, 237, 25, 233, 101, 237, + 25, 233, 100, 237, 25, 233, 99, 237, 25, 233, 98, 237, 25, 233, 97, 63, + 243, 11, 4, 75, 183, 63, 243, 11, 4, 105, 236, 138, 62, 243, 11, 4, 63, + 75, 183, 62, 243, 11, 4, 105, 63, 236, 138, 215, 221, 40, 192, 106, 215, + 221, 40, 192, 21, 237, 6, 40, 230, 205, 192, 106, 237, 6, 40, 219, 178, + 192, 21, 237, 6, 40, 219, 178, 192, 106, 237, 6, 40, 230, 205, 192, 21, + 63, 232, 217, 62, 232, 217, 230, 62, 23, 209, 180, 251, 127, 238, 214, + 200, 130, 201, 112, 79, 252, 8, 205, 98, 251, 191, 232, 186, 231, 162, + 201, 112, 79, 229, 191, 250, 172, 113, 232, 202, 211, 10, 63, 201, 102, + 115, 219, 107, 239, 19, 183, 115, 219, 107, 239, 19, 219, 224, 193, 155, + 56, 137, 195, 12, 56, 235, 128, 233, 42, 56, 235, 128, 217, 97, 56, 223, + 105, 233, 42, 23, 217, 97, 56, 217, 97, 23, 233, 42, 56, 217, 97, 4, 201, + 28, 56, 217, 97, 4, 201, 28, 23, 217, 97, 23, 233, 42, 56, 81, 217, 97, + 4, 201, 28, 56, 228, 241, 217, 97, 4, 201, 28, 56, 216, 213, 63, 243, 10, + 216, 213, 62, 243, 10, 216, 213, 2, 63, 243, 10, 217, 48, 113, 236, 198, + 113, 196, 84, 210, 103, 113, 242, 89, 232, 74, 196, 53, 214, 83, 247, 7, + 210, 185, 222, 173, 195, 80, 243, 75, 62, 215, 206, 219, 126, 203, 176, + 204, 22, 208, 4, 203, 255, 202, 36, 249, 111, 249, 73, 112, 221, 222, 63, + 235, 108, 217, 90, 63, 235, 108, 221, 138, 62, 235, 108, 217, 90, 62, + 235, 108, 221, 138, 202, 49, 193, 51, 202, 52, 200, 199, 248, 242, 242, + 210, 207, 149, 62, 202, 48, 198, 210, 242, 211, 23, 207, 149, 153, 63, + 203, 49, 209, 175, 153, 62, 203, 49, 209, 175, 63, 237, 33, 223, 163, + 201, 190, 238, 210, 220, 21, 236, 229, 247, 102, 211, 65, 209, 180, 247, + 103, 202, 85, 229, 201, 4, 63, 238, 217, 47, 238, 210, 220, 21, 246, 253, + 213, 44, 234, 72, 251, 157, 211, 96, 45, 193, 129, 198, 19, 62, 197, 10, + 45, 193, 129, 198, 19, 63, 197, 10, 45, 193, 129, 198, 19, 62, 45, 220, + 22, 216, 179, 63, 45, 220, 22, 216, 179, 235, 103, 202, 76, 56, 88, 63, + 235, 122, 197, 241, 45, 242, 219, 234, 72, 112, 205, 154, 233, 83, 237, + 39, 223, 163, 63, 243, 11, 223, 163, 62, 201, 190, 62, 197, 203, 207, 29, + 45, 234, 71, 207, 29, 45, 234, 70, 250, 187, 16, 40, 196, 57, 88, 243, + 11, 4, 201, 28, 23, 105, 185, 58, 210, 23, 206, 205, 223, 107, 210, 23, + 219, 221, 223, 107, 210, 23, 223, 93, 210, 23, 62, 238, 218, 211, 105, + 203, 78, 203, 66, 203, 12, 243, 40, 247, 80, 229, 118, 202, 137, 231, + 163, 193, 51, 228, 153, 231, 163, 4, 230, 30, 217, 72, 16, 40, 219, 131, + 215, 184, 196, 118, 211, 105, 230, 188, 232, 129, 232, 218, 223, 163, + 229, 5, 233, 32, 205, 178, 51, 232, 128, 239, 0, 202, 108, 228, 27, 202, + 112, 209, 251, 4, 249, 111, 199, 87, 223, 19, 249, 93, 113, 229, 229, + 230, 207, 113, 232, 83, 208, 153, 238, 182, 211, 105, 62, 201, 190, 63, + 232, 218, 4, 228, 241, 82, 62, 201, 29, 62, 205, 188, 205, 84, 116, 248, + 134, 205, 84, 62, 205, 84, 110, 248, 134, 205, 84, 63, 205, 84, 63, 88, + 243, 126, 77, 199, 107, 219, 40, 56, 199, 182, 235, 102, 251, 223, 234, + 67, 207, 147, 232, 231, 207, 147, 230, 53, 195, 67, 230, 53, 193, 3, 230, + 53, 110, 50, 210, 33, 210, 33, 116, 50, 210, 33, 63, 213, 208, 62, 213, + 208, 243, 126, 77, 88, 243, 126, 77, 215, 127, 192, 235, 88, 215, 127, + 192, 235, 249, 107, 192, 235, 88, 249, 107, 192, 235, 211, 10, 35, 238, + 217, 88, 35, 238, 217, 211, 77, 247, 22, 238, 217, 88, 211, 77, 247, 22, + 238, 217, 8, 238, 217, 203, 151, 63, 8, 238, 217, 211, 10, 8, 238, 217, + 217, 93, 238, 217, 201, 103, 79, 237, 208, 232, 128, 199, 127, 250, 193, + 232, 128, 249, 108, 250, 193, 88, 232, 128, 249, 108, 250, 193, 232, 128, + 242, 205, 250, 193, 62, 232, 128, 209, 60, 201, 102, 63, 232, 128, 209, + 60, 201, 102, 201, 240, 201, 38, 211, 10, 63, 201, 102, 47, 63, 201, 102, + 211, 77, 247, 22, 62, 201, 102, 62, 247, 22, 63, 201, 102, 211, 10, 62, + 201, 102, 88, 211, 10, 62, 201, 102, 209, 130, 201, 102, 203, 151, 63, + 201, 102, 88, 250, 193, 211, 77, 247, 22, 250, 193, 234, 164, 201, 206, + 250, 193, 234, 164, 209, 60, 62, 201, 102, 234, 164, 209, 60, 209, 130, + 201, 102, 202, 136, 209, 60, 62, 201, 102, 234, 164, 209, 60, 207, 90, + 62, 201, 102, 88, 234, 164, 209, 60, 207, 90, 62, 201, 102, 197, 38, 209, + 60, 62, 201, 102, 202, 131, 209, 60, 250, 193, 199, 127, 250, 193, 211, + 77, 247, 22, 199, 127, 250, 193, 88, 199, 127, 250, 193, 202, 136, 209, + 239, 62, 23, 63, 232, 189, 62, 232, 189, 63, 232, 189, 234, 164, 209, + 239, 211, 10, 62, 232, 189, 47, 211, 77, 247, 22, 234, 164, 209, 60, 201, + 102, 88, 199, 127, 209, 130, 250, 193, 202, 50, 198, 172, 197, 234, 202, + 50, 88, 243, 101, 202, 50, 201, 242, 88, 201, 242, 249, 108, 250, 193, + 234, 164, 199, 127, 208, 189, 250, 193, 88, 234, 164, 199, 127, 208, 189, + 250, 193, 238, 218, 77, 203, 151, 63, 243, 10, 214, 106, 112, 238, 218, + 77, 110, 50, 235, 98, 63, 201, 190, 116, 50, 235, 98, 63, 201, 190, 110, + 50, 203, 151, 63, 201, 190, 116, 50, 203, 151, 63, 201, 190, 62, 208, 13, + 87, 211, 42, 63, 208, 13, 87, 211, 42, 63, 233, 216, 87, 211, 42, 62, + 237, 33, 216, 35, 63, 192, 235, 88, 233, 216, 87, 113, 156, 81, 164, 216, + 213, 81, 164, 88, 81, 164, 88, 202, 170, 153, 242, 75, 207, 252, 87, 211, + 42, 88, 202, 170, 242, 75, 207, 252, 87, 211, 42, 88, 55, 153, 242, 75, + 207, 252, 87, 211, 42, 88, 55, 242, 75, 207, 252, 87, 211, 42, 88, 130, + 202, 170, 242, 75, 207, 252, 87, 211, 42, 88, 130, 55, 242, 75, 207, 252, + 87, 211, 42, 238, 163, 201, 81, 210, 128, 3, 211, 42, 88, 233, 216, 87, + 211, 42, 88, 229, 224, 233, 216, 87, 211, 42, 88, 62, 229, 223, 206, 122, + 88, 62, 229, 224, 247, 248, 232, 190, 229, 223, 206, 122, 232, 190, 229, + 224, 247, 248, 216, 213, 45, 210, 114, 211, 42, 216, 213, 50, 210, 114, + 211, 42, 216, 213, 232, 203, 45, 210, 114, 211, 42, 216, 213, 232, 203, + 50, 210, 114, 211, 42, 216, 213, 219, 219, 251, 116, 248, 54, 211, 42, + 216, 213, 206, 203, 251, 116, 248, 54, 211, 42, 88, 219, 219, 251, 116, + 207, 252, 87, 211, 42, 88, 206, 203, 251, 116, 207, 252, 87, 211, 42, 88, + 219, 219, 251, 116, 248, 54, 211, 42, 88, 206, 203, 251, 116, 248, 54, + 211, 42, 156, 45, 198, 42, 203, 103, 248, 54, 211, 42, 156, 50, 198, 42, + 203, 103, 248, 54, 211, 42, 216, 213, 45, 238, 171, 248, 54, 211, 42, + 216, 213, 50, 238, 171, 248, 54, 211, 42, 236, 241, 214, 106, 47, 17, + 107, 236, 241, 214, 106, 47, 17, 109, 236, 241, 214, 106, 47, 17, 138, + 236, 241, 214, 106, 47, 17, 134, 236, 241, 214, 106, 47, 17, 149, 236, + 241, 214, 106, 47, 17, 169, 236, 241, 214, 106, 47, 17, 175, 236, 241, + 214, 106, 47, 17, 171, 236, 241, 214, 106, 47, 17, 178, 236, 241, 214, + 106, 47, 31, 199, 95, 236, 241, 47, 49, 17, 107, 236, 241, 47, 49, 17, + 109, 236, 241, 47, 49, 17, 138, 236, 241, 47, 49, 17, 134, 236, 241, 47, + 49, 17, 149, 236, 241, 47, 49, 17, 169, 236, 241, 47, 49, 17, 175, 236, + 241, 47, 49, 17, 171, 236, 241, 47, 49, 17, 178, 236, 241, 47, 49, 31, + 199, 95, 236, 241, 214, 106, 47, 49, 17, 107, 236, 241, 214, 106, 47, 49, + 17, 109, 236, 241, 214, 106, 47, 49, 17, 138, 236, 241, 214, 106, 47, 49, + 17, 134, 236, 241, 214, 106, 47, 49, 17, 149, 236, 241, 214, 106, 47, 49, + 17, 169, 236, 241, 214, 106, 47, 49, 17, 175, 236, 241, 214, 106, 47, 49, + 17, 171, 236, 241, 214, 106, 47, 49, 17, 178, 236, 241, 214, 106, 47, 49, + 31, 199, 95, 88, 193, 77, 96, 57, 88, 108, 56, 88, 216, 35, 56, 88, 236, + 200, 56, 88, 202, 2, 234, 204, 57, 88, 96, 57, 88, 186, 234, 204, 57, + 235, 113, 209, 62, 96, 57, 88, 206, 114, 96, 57, 197, 240, 96, 57, 88, + 197, 240, 96, 57, 237, 214, 197, 240, 96, 57, 88, 237, 214, 197, 240, 96, + 57, 62, 96, 57, 198, 225, 198, 52, 96, 250, 235, 198, 225, 248, 75, 96, + 250, 235, 62, 96, 250, 235, 88, 62, 238, 163, 235, 119, 23, 96, 57, 88, + 62, 238, 163, 196, 66, 23, 96, 57, 201, 187, 62, 96, 57, 88, 239, 56, 62, + 96, 57, 206, 202, 63, 96, 57, 219, 218, 63, 96, 57, 249, 145, 203, 151, + 63, 96, 57, 232, 95, 203, 151, 63, 96, 57, 88, 110, 206, 201, 63, 96, 57, + 88, 116, 206, 201, 63, 96, 57, 213, 8, 110, 206, 201, 63, 96, 57, 238, + 171, 219, 4, 213, 8, 116, 206, 201, 63, 96, 57, 47, 88, 63, 96, 57, 193, + 88, 96, 57, 248, 138, 202, 2, 234, 204, 57, 248, 138, 96, 57, 248, 138, + 186, 234, 204, 57, 88, 248, 138, 202, 2, 234, 204, 57, 88, 248, 138, 96, + 57, 88, 248, 138, 186, 234, 204, 57, 199, 129, 96, 57, 88, 199, 128, 96, + 57, 193, 115, 96, 57, 88, 193, 115, 96, 57, 211, 71, 96, 57, 55, 238, + 171, 219, 4, 115, 236, 251, 251, 115, 63, 197, 242, 239, 33, 2, 63, 197, + 241, 209, 254, 211, 77, 200, 228, 211, 77, 200, 180, 45, 206, 7, 249, + 131, 237, 112, 50, 206, 7, 249, 131, 237, 112, 211, 57, 4, 75, 223, 117, + 207, 19, 202, 24, 208, 230, 200, 228, 200, 181, 208, 230, 202, 23, 81, + 249, 88, 4, 228, 241, 106, 13, 206, 180, 237, 38, 179, 236, 199, 13, 233, + 83, 237, 38, 112, 219, 29, 251, 125, 112, 219, 29, 211, 56, 63, 237, 33, + 4, 247, 20, 236, 140, 23, 4, 236, 140, 234, 132, 79, 211, 69, 196, 65, + 110, 50, 239, 2, 4, 236, 140, 116, 45, 239, 2, 4, 236, 140, 45, 211, 12, + 222, 199, 50, 211, 12, 222, 199, 232, 80, 211, 12, 222, 199, 220, 13, + 133, 199, 228, 220, 13, 144, 199, 228, 45, 23, 50, 55, 197, 57, 45, 23, + 50, 199, 228, 45, 215, 131, 179, 50, 199, 228, 179, 45, 199, 228, 133, + 199, 229, 4, 243, 11, 58, 218, 233, 236, 206, 247, 205, 228, 241, 206, + 52, 63, 239, 55, 237, 32, 63, 239, 55, 237, 33, 4, 118, 198, 182, 63, + 239, 55, 237, 33, 4, 96, 198, 182, 63, 51, 4, 118, 198, 182, 63, 51, 4, + 96, 198, 182, 13, 45, 63, 51, 248, 53, 13, 50, 63, 51, 248, 53, 13, 45, + 251, 116, 248, 53, 13, 50, 251, 116, 248, 53, 13, 45, 55, 251, 116, 248, + 53, 13, 50, 55, 251, 116, 248, 53, 13, 45, 63, 198, 42, 203, 103, 248, + 53, 13, 50, 63, 198, 42, 203, 103, 248, 53, 13, 45, 232, 203, 210, 113, + 13, 50, 232, 203, 210, 113, 196, 66, 208, 26, 57, 235, 119, 208, 26, 57, + 251, 85, 231, 202, 243, 11, 57, 242, 221, 231, 202, 243, 11, 57, 50, 64, + 4, 47, 209, 81, 179, 118, 57, 179, 96, 57, 179, 45, 50, 57, 179, 118, 55, + 57, 179, 96, 55, 57, 179, 45, 50, 55, 57, 179, 118, 64, 232, 98, 164, + 179, 96, 64, 232, 98, 164, 179, 118, 55, 64, 232, 98, 164, 179, 96, 55, + 64, 232, 98, 164, 179, 96, 201, 183, 57, 69, 70, 248, 132, 69, 70, 236, + 137, 69, 70, 236, 9, 69, 70, 236, 136, 69, 70, 235, 201, 69, 70, 236, 72, + 69, 70, 236, 8, 69, 70, 236, 135, 69, 70, 235, 169, 69, 70, 236, 40, 69, + 70, 235, 232, 69, 70, 236, 103, 69, 70, 235, 200, 69, 70, 236, 71, 69, + 70, 236, 7, 69, 70, 236, 134, 69, 70, 235, 153, 69, 70, 236, 24, 69, 70, + 235, 216, 69, 70, 236, 87, 69, 70, 235, 184, 69, 70, 236, 55, 69, 70, + 235, 247, 69, 70, 236, 118, 69, 70, 235, 168, 69, 70, 236, 39, 69, 70, + 235, 231, 69, 70, 236, 102, 69, 70, 235, 199, 69, 70, 236, 70, 69, 70, + 236, 6, 69, 70, 236, 133, 69, 70, 235, 145, 69, 70, 236, 16, 69, 70, 235, + 208, 69, 70, 236, 79, 69, 70, 235, 176, 69, 70, 236, 47, 69, 70, 235, + 239, 69, 70, 236, 110, 69, 70, 235, 160, 69, 70, 236, 31, 69, 70, 235, + 223, 69, 70, 236, 94, 69, 70, 235, 191, 69, 70, 236, 62, 69, 70, 235, + 254, 69, 70, 236, 125, 69, 70, 235, 152, 69, 70, 236, 23, 69, 70, 235, + 215, 69, 70, 236, 86, 69, 70, 235, 183, 69, 70, 236, 54, 69, 70, 235, + 246, 69, 70, 236, 117, 69, 70, 235, 167, 69, 70, 236, 38, 69, 70, 235, + 230, 69, 70, 236, 101, 69, 70, 235, 198, 69, 70, 236, 69, 69, 70, 236, 5, + 69, 70, 236, 132, 69, 70, 235, 141, 69, 70, 236, 12, 69, 70, 235, 204, + 69, 70, 236, 75, 69, 70, 235, 172, 69, 70, 236, 43, 69, 70, 235, 235, 69, + 70, 236, 106, 69, 70, 235, 156, 69, 70, 236, 27, 69, 70, 235, 219, 69, + 70, 236, 90, 69, 70, 235, 187, 69, 70, 236, 58, 69, 70, 235, 250, 69, 70, + 236, 121, 69, 70, 235, 148, 69, 70, 236, 19, 69, 70, 235, 211, 69, 70, + 236, 82, 69, 70, 235, 179, 69, 70, 236, 50, 69, 70, 235, 242, 69, 70, + 236, 113, 69, 70, 235, 163, 69, 70, 236, 34, 69, 70, 235, 226, 69, 70, + 236, 97, 69, 70, 235, 194, 69, 70, 236, 65, 69, 70, 236, 1, 69, 70, 236, + 128, 69, 70, 235, 144, 69, 70, 236, 15, 69, 70, 235, 207, 69, 70, 236, + 78, 69, 70, 235, 175, 69, 70, 236, 46, 69, 70, 235, 238, 69, 70, 236, + 109, 69, 70, 235, 159, 69, 70, 236, 30, 69, 70, 235, 222, 69, 70, 236, + 93, 69, 70, 235, 190, 69, 70, 236, 61, 69, 70, 235, 253, 69, 70, 236, + 124, 69, 70, 235, 151, 69, 70, 236, 22, 69, 70, 235, 214, 69, 70, 236, + 85, 69, 70, 235, 182, 69, 70, 236, 53, 69, 70, 235, 245, 69, 70, 236, + 116, 69, 70, 235, 166, 69, 70, 236, 37, 69, 70, 235, 229, 69, 70, 236, + 100, 69, 70, 235, 197, 69, 70, 236, 68, 69, 70, 236, 4, 69, 70, 236, 131, + 69, 70, 235, 139, 69, 70, 236, 10, 69, 70, 235, 202, 69, 70, 236, 73, 69, + 70, 235, 170, 69, 70, 236, 41, 69, 70, 235, 233, 69, 70, 236, 104, 69, + 70, 235, 154, 69, 70, 236, 25, 69, 70, 235, 217, 69, 70, 236, 88, 69, 70, + 235, 185, 69, 70, 236, 56, 69, 70, 235, 248, 69, 70, 236, 119, 69, 70, + 235, 146, 69, 70, 236, 17, 69, 70, 235, 209, 69, 70, 236, 80, 69, 70, + 235, 177, 69, 70, 236, 48, 69, 70, 235, 240, 69, 70, 236, 111, 69, 70, + 235, 161, 69, 70, 236, 32, 69, 70, 235, 224, 69, 70, 236, 95, 69, 70, + 235, 192, 69, 70, 236, 63, 69, 70, 235, 255, 69, 70, 236, 126, 69, 70, + 235, 142, 69, 70, 236, 13, 69, 70, 235, 205, 69, 70, 236, 76, 69, 70, + 235, 173, 69, 70, 236, 44, 69, 70, 235, 236, 69, 70, 236, 107, 69, 70, + 235, 157, 69, 70, 236, 28, 69, 70, 235, 220, 69, 70, 236, 91, 69, 70, + 235, 188, 69, 70, 236, 59, 69, 70, 235, 251, 69, 70, 236, 122, 69, 70, + 235, 149, 69, 70, 236, 20, 69, 70, 235, 212, 69, 70, 236, 83, 69, 70, + 235, 180, 69, 70, 236, 51, 69, 70, 235, 243, 69, 70, 236, 114, 69, 70, + 235, 164, 69, 70, 236, 35, 69, 70, 235, 227, 69, 70, 236, 98, 69, 70, + 235, 195, 69, 70, 236, 66, 69, 70, 236, 2, 69, 70, 236, 129, 69, 70, 235, + 140, 69, 70, 236, 11, 69, 70, 235, 203, 69, 70, 236, 74, 69, 70, 235, + 171, 69, 70, 236, 42, 69, 70, 235, 234, 69, 70, 236, 105, 69, 70, 235, + 155, 69, 70, 236, 26, 69, 70, 235, 218, 69, 70, 236, 89, 69, 70, 235, + 186, 69, 70, 236, 57, 69, 70, 235, 249, 69, 70, 236, 120, 69, 70, 235, + 147, 69, 70, 236, 18, 69, 70, 235, 210, 69, 70, 236, 81, 69, 70, 235, + 178, 69, 70, 236, 49, 69, 70, 235, 241, 69, 70, 236, 112, 69, 70, 235, + 162, 69, 70, 236, 33, 69, 70, 235, 225, 69, 70, 236, 96, 69, 70, 235, + 193, 69, 70, 236, 64, 69, 70, 236, 0, 69, 70, 236, 127, 69, 70, 235, 143, + 69, 70, 236, 14, 69, 70, 235, 206, 69, 70, 236, 77, 69, 70, 235, 174, 69, + 70, 236, 45, 69, 70, 235, 237, 69, 70, 236, 108, 69, 70, 235, 158, 69, + 70, 236, 29, 69, 70, 235, 221, 69, 70, 236, 92, 69, 70, 235, 189, 69, 70, + 236, 60, 69, 70, 235, 252, 69, 70, 236, 123, 69, 70, 235, 150, 69, 70, + 236, 21, 69, 70, 235, 213, 69, 70, 236, 84, 69, 70, 235, 181, 69, 70, + 236, 52, 69, 70, 235, 244, 69, 70, 236, 115, 69, 70, 235, 165, 69, 70, + 236, 36, 69, 70, 235, 228, 69, 70, 236, 99, 69, 70, 235, 196, 69, 70, + 236, 67, 69, 70, 236, 3, 69, 70, 236, 130, 96, 197, 13, 64, 4, 81, 106, + 96, 197, 13, 64, 4, 55, 81, 106, 118, 55, 64, 4, 81, 106, 96, 55, 64, 4, + 81, 106, 45, 50, 55, 64, 4, 81, 106, 96, 197, 13, 64, 232, 98, 164, 118, + 55, 64, 232, 98, 164, 96, 55, 64, 232, 98, 164, 235, 119, 64, 4, 228, + 241, 106, 196, 66, 64, 4, 228, 241, 106, 196, 66, 197, 225, 57, 235, 119, + 197, 225, 57, 118, 55, 237, 216, 57, 96, 55, 237, 216, 57, 118, 197, 225, + 237, 216, 57, 96, 197, 225, 237, 216, 57, 96, 197, 13, 197, 225, 237, + 216, 57, 96, 64, 4, 235, 138, 201, 80, 196, 66, 64, 119, 164, 235, 119, + 64, 119, 164, 96, 64, 4, 199, 216, 4, 81, 106, 96, 64, 4, 199, 216, 4, + 55, 81, 106, 96, 197, 13, 64, 4, 199, 215, 96, 197, 13, 64, 4, 199, 216, + 4, 81, 106, 96, 197, 13, 64, 4, 199, 216, 4, 55, 81, 106, 118, 250, 237, + 96, 250, 237, 118, 55, 250, 237, 96, 55, 250, 237, 118, 64, 119, 62, 237, + 32, 96, 64, 119, 62, 237, 32, 118, 64, 232, 98, 249, 88, 119, 62, 237, + 32, 96, 64, 232, 98, 249, 88, 119, 62, 237, 32, 186, 193, 105, 23, 202, + 2, 234, 204, 57, 186, 234, 204, 23, 202, 2, 193, 105, 57, 186, 193, 105, + 64, 4, 102, 186, 234, 204, 64, 4, 102, 202, 2, 234, 204, 64, 4, 102, 202, + 2, 193, 105, 64, 4, 102, 186, 193, 105, 64, 23, 186, 234, 204, 57, 186, + 234, 204, 64, 23, 202, 2, 234, 204, 57, 202, 2, 234, 204, 64, 23, 202, 2, + 193, 105, 57, 202, 2, 193, 105, 64, 23, 186, 193, 105, 57, 206, 180, 237, + 39, 238, 210, 233, 83, 237, 38, 233, 83, 237, 39, 238, 210, 206, 180, + 237, 38, 202, 2, 234, 204, 64, 238, 210, 186, 234, 204, 57, 186, 234, + 204, 64, 238, 210, 202, 2, 234, 204, 57, 233, 83, 237, 39, 238, 210, 186, + 234, 204, 57, 206, 180, 237, 39, 238, 210, 202, 2, 234, 204, 57, 186, + 234, 204, 64, 238, 210, 186, 193, 105, 57, 186, 193, 105, 64, 238, 210, + 186, 234, 204, 57, 193, 139, 64, 209, 58, 236, 231, 183, 64, 209, 58, 96, + 199, 25, 238, 161, 196, 65, 64, 209, 58, 96, 199, 25, 238, 161, 235, 118, + 64, 209, 58, 235, 119, 199, 25, 238, 161, 219, 214, 64, 209, 58, 235, + 119, 199, 25, 238, 161, 206, 197, 206, 200, 251, 17, 242, 221, 57, 219, + 217, 251, 17, 251, 85, 57, 198, 54, 251, 17, 251, 85, 57, 248, 77, 251, + 17, 251, 85, 57, 198, 54, 251, 17, 242, 221, 64, 4, 216, 34, 198, 54, + 251, 17, 251, 85, 64, 4, 209, 81, 110, 50, 204, 27, 242, 221, 57, 110, + 45, 204, 27, 251, 85, 57, 251, 85, 242, 219, 243, 11, 57, 242, 221, 242, + 219, 243, 11, 57, 96, 64, 93, 203, 40, 118, 57, 118, 64, 93, 203, 40, 96, + 57, 203, 40, 96, 64, 93, 118, 57, 96, 64, 4, 108, 60, 118, 64, 4, 108, + 60, 96, 64, 198, 216, 192, 235, 45, 50, 64, 198, 216, 2, 243, 10, 196, + 66, 197, 13, 64, 232, 98, 2, 243, 10, 45, 181, 133, 50, 181, 144, 230, + 12, 45, 181, 144, 50, 181, 133, 230, 12, 133, 181, 50, 144, 181, 45, 230, + 12, 133, 181, 45, 144, 181, 50, 230, 12, 45, 181, 133, 50, 181, 133, 230, + 12, 133, 181, 50, 144, 181, 50, 230, 12, 45, 181, 144, 50, 181, 144, 230, + 12, 133, 181, 45, 144, 181, 45, 230, 12, 118, 230, 13, 4, 181, 133, 119, + 164, 96, 230, 13, 4, 181, 133, 119, 164, 196, 66, 230, 13, 4, 181, 50, + 119, 164, 235, 119, 230, 13, 4, 181, 50, 119, 164, 118, 230, 13, 4, 181, + 144, 119, 164, 96, 230, 13, 4, 181, 144, 119, 164, 196, 66, 230, 13, 4, + 181, 45, 119, 164, 235, 119, 230, 13, 4, 181, 45, 119, 164, 118, 230, 13, + 4, 181, 133, 232, 98, 164, 96, 230, 13, 4, 181, 133, 232, 98, 164, 196, + 66, 230, 13, 4, 181, 50, 232, 98, 164, 235, 119, 230, 13, 4, 181, 50, + 232, 98, 164, 118, 230, 13, 4, 181, 144, 232, 98, 164, 96, 230, 13, 4, + 181, 144, 232, 98, 164, 196, 66, 230, 13, 4, 181, 45, 232, 98, 164, 235, + 119, 230, 13, 4, 181, 45, 232, 98, 164, 118, 230, 13, 4, 181, 133, 93, + 118, 230, 13, 4, 181, 235, 123, 196, 66, 230, 13, 4, 181, 45, 248, 216, + 196, 66, 230, 13, 4, 181, 183, 96, 230, 13, 4, 181, 133, 93, 96, 230, 13, + 4, 181, 235, 123, 235, 119, 230, 13, 4, 181, 45, 248, 216, 235, 119, 230, + 13, 4, 181, 183, 118, 230, 13, 4, 181, 133, 93, 96, 230, 13, 4, 181, 196, + 77, 118, 230, 13, 4, 181, 144, 93, 96, 230, 13, 4, 181, 235, 123, 96, + 230, 13, 4, 181, 133, 93, 118, 230, 13, 4, 181, 196, 77, 96, 230, 13, 4, + 181, 144, 93, 118, 230, 13, 4, 181, 235, 123, 118, 230, 13, 4, 181, 133, + 93, 179, 237, 215, 118, 230, 13, 4, 181, 144, 248, 233, 179, 237, 215, + 96, 230, 13, 4, 181, 133, 93, 179, 237, 215, 96, 230, 13, 4, 181, 144, + 248, 233, 179, 237, 215, 196, 66, 230, 13, 4, 181, 45, 248, 216, 235, + 119, 230, 13, 4, 181, 183, 235, 119, 230, 13, 4, 181, 45, 248, 216, 196, + 66, 230, 13, 4, 181, 183, 50, 55, 64, 4, 206, 113, 229, 235, 234, 43, 3, + 93, 96, 57, 198, 153, 211, 67, 93, 96, 57, 118, 64, 93, 198, 153, 211, + 66, 96, 64, 93, 198, 153, 211, 66, 96, 64, 93, 251, 165, 234, 45, 159, + 219, 180, 93, 118, 57, 118, 64, 198, 216, 219, 179, 230, 204, 93, 96, 57, + 200, 229, 93, 96, 57, 118, 64, 198, 216, 200, 228, 200, 181, 93, 118, 57, + 45, 232, 237, 199, 215, 50, 232, 237, 199, 215, 133, 232, 237, 199, 215, + 144, 232, 237, 199, 215, 197, 225, 81, 249, 88, 237, 112, 191, 167, 213, + 10, 201, 201, 191, 167, 213, 10, 196, 255, 242, 83, 45, 63, 238, 171, + 248, 53, 50, 63, 238, 171, 248, 53, 45, 63, 210, 113, 50, 63, 210, 113, + 191, 167, 213, 10, 45, 223, 178, 248, 53, 191, 167, 213, 10, 50, 223, + 178, 248, 53, 191, 167, 213, 10, 45, 248, 166, 248, 53, 191, 167, 213, + 10, 50, 248, 166, 248, 53, 45, 51, 248, 54, 4, 196, 103, 50, 51, 248, 54, + 4, 196, 103, 45, 51, 248, 54, 4, 198, 183, 223, 163, 198, 54, 239, 1, 50, + 51, 248, 54, 4, 198, 183, 223, 163, 248, 77, 239, 1, 45, 51, 248, 54, 4, + 198, 183, 223, 163, 248, 77, 239, 1, 50, 51, 248, 54, 4, 198, 183, 223, + 163, 198, 54, 239, 1, 45, 251, 116, 248, 54, 4, 236, 140, 50, 251, 116, + 248, 54, 4, 236, 140, 45, 251, 17, 219, 180, 248, 53, 50, 251, 17, 230, + 204, 248, 53, 55, 45, 251, 17, 230, 204, 248, 53, 55, 50, 251, 17, 219, + 180, 248, 53, 45, 62, 198, 42, 203, 103, 248, 53, 50, 62, 198, 42, 203, + 103, 248, 53, 235, 138, 233, 39, 81, 191, 21, 219, 112, 216, 226, 251, + 116, 211, 69, 219, 224, 50, 251, 116, 195, 168, 4, 201, 190, 216, 226, + 50, 251, 116, 4, 236, 140, 251, 116, 4, 206, 9, 223, 117, 252, 47, 251, + 115, 201, 225, 251, 116, 211, 69, 219, 224, 201, 225, 251, 116, 211, 69, + 196, 77, 153, 251, 115, 207, 18, 251, 115, 251, 116, 4, 196, 103, 207, + 18, 251, 116, 4, 196, 103, 211, 172, 251, 116, 211, 69, 196, 77, 211, + 172, 251, 116, 211, 69, 235, 123, 216, 226, 251, 116, 4, 211, 77, 250, + 251, 234, 91, 223, 163, 64, 209, 58, 133, 23, 183, 216, 226, 251, 116, 4, + 211, 77, 250, 251, 234, 91, 223, 163, 64, 209, 58, 133, 23, 219, 224, + 216, 226, 251, 116, 4, 211, 77, 250, 251, 234, 91, 223, 163, 64, 209, 58, + 144, 23, 183, 216, 226, 251, 116, 4, 211, 77, 250, 251, 234, 91, 223, + 163, 64, 209, 58, 144, 23, 219, 224, 216, 226, 251, 116, 4, 211, 77, 250, + 251, 234, 91, 223, 163, 64, 209, 58, 50, 23, 196, 77, 216, 226, 251, 116, + 4, 211, 77, 250, 251, 234, 91, 223, 163, 64, 209, 58, 45, 23, 196, 77, + 216, 226, 251, 116, 4, 211, 77, 250, 251, 234, 91, 223, 163, 64, 209, 58, + 50, 23, 235, 123, 216, 226, 251, 116, 4, 211, 77, 250, 251, 234, 91, 223, + 163, 64, 209, 58, 45, 23, 235, 123, 207, 18, 234, 105, 203, 252, 234, + 105, 203, 253, 4, 211, 6, 234, 105, 203, 253, 4, 2, 243, 11, 58, 234, + 105, 203, 253, 4, 50, 64, 58, 234, 105, 203, 253, 4, 45, 64, 58, 243, 11, + 4, 228, 241, 164, 47, 81, 164, 47, 210, 118, 47, 207, 19, 202, 23, 47, + 209, 254, 243, 11, 236, 206, 247, 205, 228, 241, 249, 88, 23, 198, 54, + 132, 236, 206, 247, 205, 81, 164, 243, 11, 4, 200, 183, 192, 235, 47, + 251, 83, 236, 200, 56, 133, 64, 198, 216, 243, 10, 47, 63, 247, 248, 47, + 247, 248, 47, 219, 179, 47, 230, 203, 243, 11, 4, 2, 243, 11, 119, 199, + 34, 183, 243, 11, 4, 105, 228, 241, 201, 16, 119, 199, 34, 183, 112, 206, + 180, 237, 39, 202, 97, 112, 233, 83, 237, 39, 202, 97, 112, 250, 193, + 112, 2, 243, 10, 112, 201, 190, 105, 222, 198, 201, 188, 197, 242, 4, 75, + 58, 197, 242, 4, 196, 103, 206, 9, 223, 163, 197, 241, 197, 242, 4, 204, + 4, 250, 183, 248, 76, 50, 197, 242, 93, 45, 197, 241, 45, 197, 242, 248, + 216, 81, 164, 81, 249, 88, 248, 216, 50, 197, 241, 248, 64, 4, 45, 132, + 248, 139, 248, 64, 4, 50, 132, 248, 139, 62, 248, 63, 25, 4, 45, 132, + 248, 139, 25, 4, 50, 132, 248, 139, 63, 228, 174, 62, 228, 174, 45, 193, + 72, 233, 39, 50, 193, 72, 233, 39, 45, 55, 193, 72, 233, 39, 50, 55, 193, + 72, 233, 39, 223, 155, 223, 139, 198, 179, 139, 223, 139, 223, 140, 214, + 108, 4, 81, 164, 235, 132, 215, 131, 51, 4, 239, 25, 211, 11, 223, 152, + 250, 219, 202, 254, 208, 200, 234, 43, 3, 23, 202, 99, 210, 118, 234, 43, + 3, 23, 202, 99, 210, 119, 4, 198, 153, 58, 228, 17, 119, 23, 202, 99, + 210, 118, 231, 14, 201, 101, 199, 22, 235, 122, 197, 242, 4, 45, 132, + 248, 139, 235, 122, 197, 242, 4, 50, 132, 248, 139, 62, 237, 33, 4, 144, + 57, 62, 218, 232, 63, 243, 11, 4, 144, 57, 62, 243, 11, 4, 144, 57, 234, + 25, 63, 201, 190, 234, 25, 62, 201, 190, 234, 25, 63, 237, 32, 234, 25, + 62, 237, 32, 234, 25, 63, 243, 10, 234, 25, 62, 243, 10, 206, 51, 207, + 19, 202, 24, 211, 66, 202, 24, 4, 211, 6, 207, 19, 202, 24, 4, 228, 241, + 106, 248, 175, 202, 23, 248, 175, 207, 19, 202, 23, 55, 209, 81, 197, + 225, 209, 81, 219, 219, 238, 163, 251, 116, 248, 53, 206, 203, 238, 163, + 251, 116, 248, 53, 198, 137, 216, 32, 215, 60, 47, 75, 211, 66, 215, 60, + 47, 108, 211, 66, 215, 60, 47, 25, 211, 66, 215, 60, 196, 93, 211, 67, 4, + 236, 140, 215, 60, 196, 93, 211, 67, 4, 209, 81, 215, 60, 51, 223, 100, + 211, 66, 215, 60, 51, 196, 93, 211, 66, 105, 219, 29, 23, 211, 66, 105, + 219, 29, 211, 57, 211, 66, 215, 60, 25, 211, 66, 215, 236, 105, 200, 204, + 200, 202, 4, 223, 113, 208, 26, 223, 114, 211, 66, 232, 246, 210, 107, + 223, 113, 223, 114, 4, 55, 106, 223, 114, 250, 143, 4, 202, 97, 243, 3, + 232, 76, 251, 85, 223, 111, 219, 113, 223, 112, 4, 207, 91, 210, 86, 250, + 245, 209, 52, 219, 113, 223, 112, 4, 204, 27, 210, 86, 250, 245, 209, 52, + 219, 113, 223, 112, 213, 12, 223, 157, 199, 34, 209, 52, 223, 114, 250, + 245, 42, 209, 62, 211, 66, 208, 19, 223, 114, 211, 66, 223, 114, 4, 118, + 64, 4, 102, 223, 114, 4, 25, 56, 223, 114, 4, 223, 99, 223, 114, 4, 196, + 92, 223, 114, 4, 211, 6, 223, 114, 4, 196, 103, 222, 199, 220, 13, 45, + 197, 242, 211, 66, 191, 167, 213, 10, 205, 92, 239, 62, 191, 167, 213, + 10, 205, 92, 209, 126, 191, 167, 213, 10, 205, 92, 208, 195, 108, 3, 4, + 2, 243, 11, 58, 108, 3, 4, 243, 2, 252, 61, 58, 108, 3, 4, 198, 153, 58, + 108, 3, 4, 75, 60, 108, 3, 4, 198, 153, 60, 108, 3, 4, 200, 230, 109, + 108, 3, 4, 62, 197, 241, 216, 35, 3, 4, 242, 75, 58, 216, 35, 3, 4, 75, + 60, 216, 35, 3, 4, 233, 83, 236, 138, 216, 35, 3, 4, 206, 180, 236, 138, + 108, 3, 223, 163, 45, 132, 243, 10, 108, 3, 223, 163, 50, 132, 243, 10, + 195, 152, 211, 57, 238, 218, 208, 200, 215, 127, 3, 4, 75, 58, 215, 127, + 3, 4, 196, 103, 204, 24, 208, 201, 4, 248, 77, 242, 218, 202, 68, 208, + 200, 215, 127, 3, 223, 163, 45, 132, 243, 10, 215, 127, 3, 223, 163, 50, + 132, 243, 10, 47, 215, 127, 3, 4, 243, 2, 252, 60, 215, 127, 3, 223, 163, + 55, 243, 10, 47, 236, 200, 56, 108, 3, 223, 163, 197, 241, 216, 35, 3, + 223, 163, 197, 241, 215, 127, 3, 223, 163, 197, 241, 223, 108, 208, 200, + 206, 198, 223, 108, 208, 200, 191, 167, 213, 10, 207, 64, 239, 62, 251, + 147, 211, 57, 239, 9, 223, 100, 4, 236, 140, 196, 93, 4, 216, 35, 56, + 196, 93, 4, 211, 6, 223, 100, 4, 211, 6, 223, 100, 4, 219, 29, 251, 125, + 196, 93, 4, 219, 29, 211, 56, 196, 93, 93, 223, 99, 223, 100, 93, 196, + 92, 196, 93, 93, 249, 88, 93, 223, 99, 223, 100, 93, 249, 88, 93, 196, + 92, 196, 93, 248, 216, 23, 222, 198, 4, 196, 92, 223, 100, 248, 216, 23, + 222, 198, 4, 223, 99, 242, 219, 196, 93, 4, 204, 3, 242, 219, 223, 100, + 4, 204, 3, 55, 51, 223, 99, 55, 51, 196, 92, 242, 219, 196, 93, 4, 204, + 4, 23, 202, 68, 208, 200, 219, 29, 23, 4, 75, 58, 219, 29, 211, 57, 4, + 75, 58, 55, 219, 29, 251, 125, 55, 219, 29, 211, 56, 105, 223, 101, 219, + 29, 251, 125, 105, 223, 101, 219, 29, 211, 56, 202, 80, 220, 13, 211, 56, + 202, 80, 220, 13, 251, 125, 219, 29, 211, 57, 211, 1, 219, 29, 251, 125, + 219, 29, 23, 4, 82, 201, 80, 219, 29, 211, 57, 4, 82, 201, 80, 219, 29, + 23, 4, 228, 241, 237, 215, 219, 29, 211, 57, 4, 228, 241, 237, 215, 219, + 29, 23, 4, 55, 211, 6, 219, 29, 23, 4, 196, 103, 219, 29, 23, 4, 55, 196, + 103, 2, 195, 149, 4, 196, 103, 219, 29, 211, 57, 4, 55, 211, 6, 219, 29, + 211, 57, 4, 55, 196, 103, 191, 167, 213, 10, 236, 152, 251, 75, 191, 167, + 213, 10, 207, 137, 251, 75, 234, 43, 3, 4, 75, 60, 228, 17, 4, 75, 58, + 197, 225, 228, 241, 249, 88, 4, 55, 81, 106, 197, 225, 228, 241, 249, 88, + 4, 197, 225, 81, 106, 198, 153, 211, 67, 4, 75, 58, 198, 153, 211, 67, 4, + 206, 180, 236, 138, 202, 180, 216, 35, 202, 179, 239, 49, 4, 75, 58, 234, + 43, 4, 250, 193, 251, 165, 234, 45, 119, 4, 243, 2, 252, 60, 251, 40, + 234, 45, 211, 57, 234, 45, 159, 234, 43, 3, 93, 108, 56, 108, 3, 93, 234, + 43, 56, 234, 43, 3, 93, 198, 153, 211, 66, 55, 242, 84, 234, 44, 105, + 239, 41, 234, 43, 202, 194, 115, 239, 41, 234, 43, 202, 194, 234, 43, 3, + 4, 105, 185, 93, 23, 105, 185, 60, 234, 36, 4, 232, 128, 185, 58, 219, + 180, 4, 243, 11, 223, 117, 230, 204, 4, 243, 11, 223, 117, 219, 180, 4, + 208, 13, 87, 58, 230, 204, 4, 208, 13, 87, 58, 219, 180, 211, 57, 202, + 99, 234, 45, 159, 230, 204, 211, 57, 202, 99, 234, 45, 159, 219, 180, + 211, 57, 202, 99, 234, 45, 119, 4, 75, 223, 117, 230, 204, 211, 57, 202, + 99, 234, 45, 119, 4, 75, 223, 117, 219, 180, 211, 57, 202, 99, 234, 45, + 119, 4, 75, 58, 230, 204, 211, 57, 202, 99, 234, 45, 119, 4, 75, 58, 219, + 180, 211, 57, 202, 99, 234, 45, 119, 4, 75, 93, 183, 230, 204, 211, 57, + 202, 99, 234, 45, 119, 4, 75, 93, 219, 224, 219, 180, 211, 57, 251, 41, + 230, 204, 211, 57, 251, 41, 219, 180, 23, 202, 168, 213, 12, 234, 45, + 159, 230, 204, 23, 202, 168, 213, 12, 234, 45, 159, 219, 180, 23, 213, + 12, 251, 41, 230, 204, 23, 213, 12, 251, 41, 219, 180, 93, 235, 131, 234, + 45, 93, 230, 203, 230, 204, 93, 235, 131, 234, 45, 93, 219, 179, 219, + 180, 93, 202, 180, 211, 57, 234, 44, 230, 204, 93, 202, 180, 211, 57, + 234, 44, 219, 180, 93, 202, 180, 93, 230, 203, 230, 204, 93, 202, 180, + 93, 219, 179, 219, 180, 93, 230, 204, 93, 235, 131, 234, 44, 230, 204, + 93, 219, 180, 93, 235, 131, 234, 44, 219, 180, 93, 202, 99, 234, 45, 93, + 230, 204, 93, 202, 99, 234, 44, 230, 204, 93, 202, 99, 234, 45, 93, 219, + 180, 93, 202, 99, 234, 44, 202, 99, 234, 45, 119, 211, 57, 219, 179, 202, + 99, 234, 45, 119, 211, 57, 230, 203, 202, 99, 234, 45, 119, 211, 57, 219, + 180, 4, 75, 223, 117, 202, 99, 234, 45, 119, 211, 57, 230, 204, 4, 75, + 223, 117, 235, 131, 234, 45, 119, 211, 57, 219, 179, 235, 131, 234, 45, + 119, 211, 57, 230, 203, 235, 131, 202, 99, 234, 45, 119, 211, 57, 219, + 179, 235, 131, 202, 99, 234, 45, 119, 211, 57, 230, 203, 202, 180, 211, + 57, 219, 179, 202, 180, 211, 57, 230, 203, 202, 180, 93, 219, 180, 93, + 234, 43, 56, 202, 180, 93, 230, 204, 93, 234, 43, 56, 55, 214, 88, 219, + 179, 55, 214, 88, 230, 203, 55, 214, 88, 219, 180, 4, 196, 103, 230, 204, + 211, 1, 219, 179, 230, 204, 248, 216, 219, 179, 219, 180, 242, 219, 247, + 205, 238, 164, 230, 204, 242, 219, 247, 205, 238, 164, 219, 180, 242, + 219, 247, 205, 238, 165, 93, 202, 99, 234, 44, 230, 204, 242, 219, 247, + 205, 238, 165, 93, 202, 99, 234, 44, 202, 69, 199, 38, 220, 11, 199, 38, + 202, 69, 199, 39, 211, 57, 234, 45, 159, 220, 11, 199, 39, 211, 57, 234, + 45, 159, 234, 43, 3, 4, 247, 241, 58, 208, 232, 93, 202, 168, 234, 43, + 56, 200, 221, 93, 202, 168, 234, 43, 56, 208, 232, 93, 202, 168, 213, 12, + 234, 45, 159, 200, 221, 93, 202, 168, 213, 12, 234, 45, 159, 208, 232, + 93, 234, 43, 56, 200, 221, 93, 234, 43, 56, 208, 232, 93, 213, 12, 234, + 45, 159, 200, 221, 93, 213, 12, 234, 45, 159, 208, 232, 93, 251, 165, + 234, 45, 159, 200, 221, 93, 251, 165, 234, 45, 159, 208, 232, 93, 213, + 12, 251, 165, 234, 45, 159, 200, 221, 93, 213, 12, 251, 165, 234, 45, + 159, 55, 208, 231, 55, 200, 220, 200, 229, 4, 236, 140, 200, 181, 4, 236, + 140, 200, 229, 4, 108, 3, 60, 200, 181, 4, 108, 3, 60, 200, 229, 4, 215, + 127, 3, 60, 200, 181, 4, 215, 127, 3, 60, 200, 229, 79, 211, 57, 234, 45, + 119, 4, 75, 58, 200, 181, 79, 211, 57, 234, 45, 119, 4, 75, 58, 200, 229, + 79, 93, 234, 43, 56, 200, 181, 79, 93, 234, 43, 56, 200, 229, 79, 93, + 198, 153, 211, 66, 200, 181, 79, 93, 198, 153, 211, 66, 200, 229, 79, 93, + 251, 165, 234, 45, 159, 200, 181, 79, 93, 251, 165, 234, 45, 159, 200, + 229, 79, 93, 213, 12, 234, 45, 159, 200, 181, 79, 93, 213, 12, 234, 45, + 159, 51, 45, 211, 77, 111, 211, 66, 51, 50, 211, 77, 111, 211, 66, 242, + 219, 200, 228, 242, 219, 200, 180, 242, 219, 200, 229, 211, 57, 234, 45, + 159, 242, 219, 200, 181, 211, 57, 234, 45, 159, 200, 229, 93, 200, 180, + 200, 181, 93, 200, 228, 200, 229, 93, 200, 228, 200, 181, 93, 200, 180, + 200, 181, 248, 216, 200, 228, 200, 181, 248, 216, 23, 222, 198, 247, 205, + 237, 216, 4, 200, 228, 234, 132, 79, 211, 69, 235, 118, 209, 116, 4, 199, + 122, 198, 53, 198, 7, 223, 99, 232, 147, 213, 27, 203, 40, 45, 199, 228, + 203, 40, 144, 199, 228, 203, 40, 133, 199, 228, 209, 255, 4, 206, 8, 81, + 249, 88, 197, 225, 50, 197, 57, 55, 81, 249, 88, 45, 197, 57, 81, 249, + 88, 55, 45, 197, 57, 55, 81, 249, 88, 55, 45, 197, 57, 179, 237, 216, + 232, 98, 45, 216, 191, 79, 55, 195, 135, 203, 40, 144, 199, 229, 4, 211, + 6, 203, 40, 133, 199, 229, 4, 196, 103, 203, 40, 133, 199, 229, 93, 203, + 40, 144, 199, 228, 55, 144, 199, 228, 55, 133, 199, 228, 55, 201, 28, + 213, 12, 56, 207, 18, 55, 201, 28, 213, 12, 56, 236, 164, 213, 12, 236, + 208, 4, 207, 18, 214, 107, 202, 97, 81, 219, 113, 4, 243, 11, 58, 81, + 219, 113, 4, 243, 11, 60, 144, 199, 229, 4, 243, 11, 60, 210, 119, 4, + 228, 241, 106, 210, 119, 4, 198, 153, 211, 66, 197, 225, 81, 249, 88, + 248, 168, 207, 65, 197, 225, 81, 249, 88, 4, 228, 241, 106, 197, 225, + 242, 84, 211, 66, 197, 225, 214, 88, 219, 179, 197, 225, 214, 88, 230, + 203, 235, 131, 202, 99, 219, 180, 211, 57, 234, 45, 159, 235, 131, 202, + 99, 230, 204, 211, 57, 234, 45, 159, 197, 225, 202, 24, 248, 168, 207, + 65, 220, 13, 197, 225, 81, 249, 88, 211, 66, 55, 202, 24, 211, 66, 63, + 81, 164, 215, 60, 63, 81, 164, 186, 234, 204, 63, 57, 186, 193, 105, 63, + 57, 202, 2, 234, 204, 63, 57, 202, 2, 193, 105, 63, 57, 45, 50, 63, 57, + 118, 62, 57, 196, 66, 62, 57, 235, 119, 62, 57, 186, 234, 204, 62, 57, + 186, 193, 105, 62, 57, 202, 2, 234, 204, 62, 57, 202, 2, 193, 105, 62, + 57, 45, 50, 62, 57, 133, 144, 62, 57, 96, 64, 4, 198, 136, 235, 118, 96, + 64, 4, 198, 136, 196, 65, 118, 64, 4, 198, 136, 235, 118, 118, 64, 4, + 198, 136, 196, 65, 51, 4, 198, 54, 132, 248, 139, 51, 4, 248, 77, 132, + 248, 139, 51, 4, 116, 50, 237, 39, 132, 248, 139, 51, 4, 110, 45, 237, + 39, 132, 248, 139, 237, 33, 4, 45, 132, 248, 139, 237, 33, 4, 50, 132, + 248, 139, 237, 33, 4, 198, 54, 132, 248, 139, 237, 33, 4, 248, 77, 132, + 248, 139, 235, 138, 201, 190, 62, 220, 13, 201, 190, 63, 220, 13, 201, + 190, 62, 195, 83, 2, 201, 190, 63, 195, 83, 2, 201, 190, 62, 210, 24, 63, + 210, 24, 63, 229, 182, 62, 229, 182, 228, 241, 62, 229, 182, 62, 220, 13, + 243, 10, 62, 216, 213, 237, 32, 63, 216, 213, 237, 32, 62, 216, 213, 218, + 232, 63, 216, 213, 218, 232, 62, 2, 237, 32, 62, 2, 218, 232, 63, 2, 218, + 232, 62, 228, 241, 234, 121, 63, 228, 241, 234, 121, 62, 81, 234, 121, + 63, 81, 234, 121, 45, 64, 4, 2, 243, 10, 115, 118, 250, 231, 45, 64, 4, + 47, 209, 81, 179, 118, 201, 183, 57, 118, 197, 13, 64, 4, 81, 106, 118, + 197, 13, 64, 4, 55, 81, 106, 118, 197, 13, 64, 232, 98, 164, 118, 197, + 13, 197, 225, 237, 216, 57, 118, 64, 4, 235, 138, 201, 80, 118, 64, 4, + 199, 216, 4, 81, 106, 118, 64, 4, 199, 216, 4, 55, 81, 106, 118, 197, 13, + 64, 4, 199, 215, 118, 197, 13, 64, 4, 199, 216, 4, 81, 106, 118, 197, 13, + 64, 4, 199, 216, 4, 55, 81, 106, 118, 64, 198, 216, 192, 235, 193, 139, + 64, 209, 58, 236, 231, 219, 224, 234, 43, 3, 93, 118, 57, 207, 19, 198, + 153, 211, 67, 93, 118, 57, 118, 64, 93, 207, 19, 251, 165, 234, 45, 159, + 96, 64, 198, 216, 230, 203, 96, 64, 198, 216, 200, 180, 118, 208, 26, 57, + 96, 208, 26, 57, 207, 19, 198, 153, 211, 67, 93, 96, 57, 96, 64, 93, 207, + 19, 251, 165, 234, 45, 159, 198, 153, 211, 67, 93, 118, 57, 118, 64, 93, + 251, 165, 234, 45, 159, 118, 64, 93, 207, 19, 198, 153, 211, 66, 96, 64, + 93, 207, 19, 198, 153, 211, 66, 235, 119, 197, 240, 191, 21, 57, 203, 40, + 202, 99, 186, 57, 203, 40, 249, 143, 202, 2, 57, 63, 216, 213, 201, 102, + 62, 2, 201, 102, 63, 2, 201, 102, 62, 206, 203, 210, 24, 63, 206, 203, + 210, 24, 88, 220, 13, 243, 10, 88, 211, 8, 4, 211, 8, 223, 117, 88, 243, + 11, 4, 243, 11, 223, 117, 88, 243, 10, 88, 47, 205, 154, 202, 99, 186, + 64, 4, 228, 250, 229, 235, 249, 143, 202, 2, 64, 4, 228, 250, 199, 215, + 202, 99, 186, 64, 4, 228, 241, 199, 215, 249, 143, 202, 2, 64, 4, 228, + 241, 199, 215, 248, 224, 64, 209, 58, 235, 119, 199, 25, 186, 234, 203, + 203, 40, 248, 224, 64, 209, 58, 235, 119, 199, 25, 186, 234, 203, 118, + 197, 240, 57, 196, 66, 197, 240, 57, 96, 197, 240, 57, 235, 119, 197, + 240, 57, 45, 50, 197, 240, 57, 133, 144, 197, 240, 57, 186, 193, 105, + 197, 240, 57, 186, 234, 204, 197, 240, 57, 202, 2, 234, 204, 197, 240, + 57, 202, 2, 193, 105, 197, 240, 57, 118, 197, 240, 237, 214, 57, 196, 66, + 197, 240, 237, 214, 57, 96, 197, 240, 237, 214, 57, 235, 119, 197, 240, + 237, 214, 57, 242, 221, 197, 240, 211, 77, 243, 11, 57, 251, 85, 197, + 240, 211, 77, 243, 11, 57, 118, 197, 240, 64, 119, 164, 196, 66, 197, + 240, 64, 119, 164, 96, 197, 240, 64, 119, 164, 235, 119, 197, 240, 64, + 119, 164, 186, 193, 105, 197, 240, 64, 119, 164, 186, 234, 204, 197, 240, + 64, 119, 164, 202, 2, 234, 204, 197, 240, 64, 119, 164, 202, 2, 193, 105, + 197, 240, 64, 119, 164, 118, 197, 240, 64, 4, 55, 228, 241, 106, 196, 66, + 197, 240, 64, 4, 55, 228, 241, 106, 96, 197, 240, 64, 4, 55, 228, 241, + 106, 235, 119, 197, 240, 64, 4, 55, 228, 241, 106, 228, 241, 199, 237, + 221, 222, 81, 199, 237, 221, 222, 118, 197, 240, 64, 139, 96, 197, 240, + 57, 196, 66, 197, 240, 64, 118, 79, 235, 119, 197, 240, 57, 96, 197, 240, + 64, 139, 118, 197, 240, 57, 235, 119, 197, 240, 64, 118, 79, 196, 66, + 197, 240, 57, 118, 197, 240, 210, 196, 250, 231, 196, 66, 197, 240, 210, + 196, 250, 231, 96, 197, 240, 210, 196, 250, 231, 235, 119, 197, 240, 210, + 196, 250, 231, 118, 62, 47, 63, 57, 196, 66, 62, 47, 63, 57, 96, 62, 47, + 63, 57, 235, 119, 62, 47, 63, 57, 251, 85, 197, 240, 50, 196, 221, 57, + 251, 85, 197, 240, 248, 77, 196, 221, 57, 251, 85, 197, 240, 45, 196, + 221, 57, 251, 85, 197, 240, 198, 54, 196, 221, 57, 207, 23, 219, 224, + 207, 23, 183, 214, 77, 219, 224, 214, 77, 183, 232, 128, 239, 2, 250, + 232, 243, 6, 251, 84, 96, 62, 57, 16, 40, 196, 255, 42, 234, 133, 198, + 225, 198, 52, 118, 234, 37, 250, 235, 198, 225, 206, 204, 196, 66, 234, + 37, 250, 235, 198, 225, 198, 52, 96, 234, 37, 250, 235, 198, 225, 219, + 220, 235, 119, 234, 37, 250, 235, 62, 118, 234, 37, 250, 235, 62, 196, + 66, 234, 37, 250, 235, 62, 96, 234, 37, 250, 235, 62, 235, 119, 234, 37, + 250, 235, 235, 119, 197, 240, 64, 4, 179, 198, 136, 219, 214, 235, 119, + 197, 240, 64, 4, 179, 198, 136, 206, 197, 196, 66, 197, 240, 64, 4, 179, + 198, 136, 219, 214, 196, 66, 197, 240, 64, 4, 179, 198, 136, 206, 197, + 118, 197, 240, 64, 4, 179, 198, 136, 196, 65, 96, 197, 240, 64, 4, 179, + 198, 136, 196, 65, 118, 197, 240, 64, 4, 179, 198, 136, 235, 118, 96, + 197, 240, 64, 4, 179, 198, 136, 235, 118, 62, 238, 163, 235, 119, 23, + 118, 57, 62, 238, 163, 235, 119, 23, 96, 57, 62, 238, 163, 196, 66, 23, + 118, 57, 62, 238, 163, 196, 66, 23, 96, 57, 62, 238, 163, 118, 23, 196, + 66, 57, 62, 238, 163, 96, 23, 196, 66, 57, 62, 238, 163, 118, 23, 235, + 119, 57, 62, 238, 163, 96, 23, 235, 119, 57, 206, 248, 64, 144, 219, 224, + 206, 248, 64, 144, 183, 206, 248, 64, 133, 219, 224, 206, 248, 64, 133, + 183, 206, 248, 64, 45, 196, 77, 206, 248, 64, 50, 196, 77, 206, 248, 64, + 45, 235, 123, 206, 248, 64, 50, 235, 123, 196, 66, 63, 64, 232, 98, 249, + 88, 4, 228, 241, 164, 133, 250, 236, 223, 163, 42, 207, 93, 248, 62, 211, + 1, 63, 201, 188, 211, 1, 63, 23, 62, 201, 188, 211, 1, 62, 201, 188, 249, + 107, 111, 4, 156, 192, 235, 47, 192, 235, 47, 28, 192, 235, 62, 51, 247, + 19, 62, 237, 33, 247, 19, 153, 62, 210, 24, 228, 241, 62, 211, 160, 62, + 211, 160, 62, 216, 213, 196, 76, 197, 242, 247, 19, 62, 216, 213, 235, + 122, 197, 242, 247, 19, 62, 216, 213, 219, 219, 197, 242, 247, 19, 62, + 216, 213, 206, 203, 197, 242, 247, 19, 214, 95, 232, 146, 109, 198, 54, + 132, 62, 243, 10, 248, 77, 132, 62, 243, 10, 156, 232, 128, 209, 60, 62, + 238, 159, 206, 122, 156, 232, 128, 209, 60, 62, 238, 159, 63, 232, 128, + 209, 60, 238, 159, 206, 122, 63, 232, 128, 209, 60, 238, 159, 51, 209, + 25, 223, 144, 196, 107, 56, 230, 187, 77, 209, 78, 232, 146, 109, 209, + 78, 232, 146, 138, 209, 78, 232, 146, 134, 209, 78, 232, 146, 149, 198, + 9, 208, 185, 250, 189, 228, 91, 209, 196, 214, 91, 63, 215, 206, 204, 33, + 62, 237, 33, 211, 105, 238, 217, 197, 202, 156, 215, 206, 250, 227, 238, + 179, 230, 88, 191, 75, 221, 2, 251, 53, 252, 32, 193, 247, 209, 26, 45, + 132, 62, 201, 102, 50, 132, 62, 201, 102, 201, 103, 4, 45, 132, 248, 139, + 201, 103, 4, 50, 132, 248, 139, 118, 197, 13, 64, 4, 197, 242, 250, 233, + 196, 66, 197, 13, 64, 4, 197, 242, 250, 233, 96, 197, 13, 64, 4, 197, + 242, 250, 233, 235, 119, 197, 13, 64, 4, 197, 242, 250, 233, 234, 27, + 232, 146, 107, 234, 27, 232, 146, 109, 205, 51, 206, 31, 250, 188, 16, + 195, 52, 206, 31, 250, 188, 16, 212, 254, 206, 31, 250, 188, 16, 208, 1, + 206, 31, 250, 188, 16, 248, 163, 206, 31, 250, 188, 16, 204, 16, 206, 31, + 250, 188, 16, 198, 0, 234, 43, 3, 4, 223, 140, 60, 196, 89, 113, 204, 12, + 113, 235, 128, 113, 210, 96, 113, 207, 18, 50, 251, 115, 229, 203, 210, + 78, 113, 135, 6, 1, 250, 122, 135, 6, 1, 247, 252, 135, 6, 1, 195, 151, + 135, 6, 1, 231, 18, 135, 6, 1, 236, 169, 135, 6, 1, 192, 49, 135, 6, 1, + 191, 55, 135, 6, 1, 235, 30, 135, 6, 1, 191, 82, 135, 6, 1, 223, 39, 135, + 6, 1, 89, 223, 39, 135, 6, 1, 68, 135, 6, 1, 236, 190, 135, 6, 1, 222, + 94, 135, 6, 1, 219, 75, 135, 6, 1, 215, 66, 135, 6, 1, 214, 210, 135, 6, + 1, 211, 89, 135, 6, 1, 209, 55, 135, 6, 1, 206, 179, 135, 6, 1, 202, 77, + 135, 6, 1, 197, 44, 135, 6, 1, 196, 124, 135, 6, 1, 232, 101, 135, 6, 1, + 229, 188, 135, 6, 1, 211, 20, 135, 6, 1, 210, 63, 135, 6, 1, 203, 8, 135, + 6, 1, 197, 146, 135, 6, 1, 243, 54, 135, 6, 1, 203, 165, 135, 6, 1, 192, + 58, 135, 6, 1, 192, 60, 135, 6, 1, 192, 93, 135, 6, 1, 201, 220, 140, + 135, 6, 1, 191, 225, 135, 6, 1, 2, 191, 190, 135, 6, 1, 2, 191, 191, 4, + 199, 215, 135, 6, 1, 192, 12, 135, 6, 1, 223, 82, 2, 191, 190, 135, 6, 1, + 248, 175, 191, 190, 135, 6, 1, 223, 82, 248, 175, 191, 190, 135, 6, 1, + 232, 228, 135, 6, 1, 223, 37, 135, 6, 1, 203, 7, 135, 6, 1, 197, 215, 65, + 135, 6, 1, 220, 1, 215, 66, 135, 6, 1, 247, 73, 243, 54, 135, 2, 1, 250, + 122, 135, 2, 1, 247, 252, 135, 2, 1, 195, 151, 135, 2, 1, 231, 18, 135, + 2, 1, 236, 169, 135, 2, 1, 192, 49, 135, 2, 1, 191, 55, 135, 2, 1, 235, + 30, 135, 2, 1, 191, 82, 135, 2, 1, 223, 39, 135, 2, 1, 89, 223, 39, 135, + 2, 1, 68, 135, 2, 1, 236, 190, 135, 2, 1, 222, 94, 135, 2, 1, 219, 75, + 135, 2, 1, 215, 66, 135, 2, 1, 214, 210, 135, 2, 1, 211, 89, 135, 2, 1, + 209, 55, 135, 2, 1, 206, 179, 135, 2, 1, 202, 77, 135, 2, 1, 197, 44, + 135, 2, 1, 196, 124, 135, 2, 1, 232, 101, 135, 2, 1, 229, 188, 135, 2, 1, + 211, 20, 135, 2, 1, 210, 63, 135, 2, 1, 203, 8, 135, 2, 1, 197, 146, 135, + 2, 1, 243, 54, 135, 2, 1, 203, 165, 135, 2, 1, 192, 58, 135, 2, 1, 192, + 60, 135, 2, 1, 192, 93, 135, 2, 1, 201, 220, 140, 135, 2, 1, 191, 225, + 135, 2, 1, 2, 191, 190, 135, 2, 1, 2, 191, 191, 4, 199, 215, 135, 2, 1, + 192, 12, 135, 2, 1, 223, 82, 2, 191, 190, 135, 2, 1, 248, 175, 191, 190, + 135, 2, 1, 223, 82, 248, 175, 191, 190, 135, 2, 1, 232, 228, 135, 2, 1, + 223, 37, 135, 2, 1, 203, 7, 135, 2, 1, 197, 215, 65, 135, 2, 1, 220, 1, + 215, 66, 135, 2, 1, 247, 73, 243, 54, 8, 6, 1, 220, 143, 4, 55, 164, 8, + 2, 1, 220, 143, 4, 55, 164, 8, 6, 1, 220, 143, 4, 82, 198, 152, 8, 6, 1, + 210, 237, 4, 106, 8, 6, 1, 207, 222, 4, 199, 215, 8, 2, 1, 42, 4, 106, 8, + 2, 1, 200, 44, 4, 237, 39, 106, 8, 6, 1, 230, 117, 4, 237, 87, 8, 2, 1, + 230, 117, 4, 237, 87, 8, 6, 1, 222, 153, 4, 237, 87, 8, 2, 1, 222, 153, + 4, 237, 87, 8, 6, 1, 191, 167, 4, 237, 87, 8, 2, 1, 191, 167, 4, 237, 87, + 8, 6, 1, 251, 160, 8, 6, 1, 218, 169, 4, 102, 8, 6, 1, 153, 65, 8, 6, 1, + 153, 251, 160, 8, 2, 1, 196, 13, 4, 50, 102, 8, 6, 1, 193, 225, 4, 102, + 8, 2, 1, 193, 225, 4, 102, 8, 2, 1, 196, 13, 4, 238, 175, 8, 6, 1, 132, + 230, 116, 8, 2, 1, 132, 230, 116, 8, 2, 1, 199, 213, 209, 211, 8, 2, 1, + 235, 15, 4, 213, 9, 8, 2, 1, 153, 207, 222, 4, 199, 215, 8, 2, 1, 187, 4, + 130, 206, 189, 223, 117, 8, 1, 2, 6, 153, 71, 8, 200, 230, 2, 1, 223, 35, + 52, 1, 6, 196, 12, 8, 6, 1, 206, 9, 4, 200, 146, 199, 215, 8, 6, 1, 191, + 167, 4, 200, 146, 199, 215, 94, 6, 1, 251, 186, 94, 2, 1, 251, 186, 94, + 6, 1, 195, 66, 94, 2, 1, 195, 66, 94, 6, 1, 231, 211, 94, 2, 1, 231, 211, + 94, 6, 1, 237, 255, 94, 2, 1, 237, 255, 94, 6, 1, 234, 165, 94, 2, 1, + 234, 165, 94, 6, 1, 202, 7, 94, 2, 1, 202, 7, 94, 6, 1, 191, 95, 94, 2, + 1, 191, 95, 94, 6, 1, 230, 6, 94, 2, 1, 230, 6, 94, 6, 1, 199, 13, 94, 2, + 1, 199, 13, 94, 6, 1, 228, 32, 94, 2, 1, 228, 32, 94, 6, 1, 222, 77, 94, + 2, 1, 222, 77, 94, 6, 1, 219, 252, 94, 2, 1, 219, 252, 94, 6, 1, 216, + 100, 94, 2, 1, 216, 100, 94, 6, 1, 213, 219, 94, 2, 1, 213, 219, 94, 6, + 1, 220, 248, 94, 2, 1, 220, 248, 94, 6, 1, 74, 94, 2, 1, 74, 94, 6, 1, + 209, 185, 94, 2, 1, 209, 185, 94, 6, 1, 206, 162, 94, 2, 1, 206, 162, 94, + 6, 1, 202, 183, 94, 2, 1, 202, 183, 94, 6, 1, 199, 166, 94, 2, 1, 199, + 166, 94, 6, 1, 196, 168, 94, 2, 1, 196, 168, 94, 6, 1, 233, 23, 94, 2, 1, + 233, 23, 94, 6, 1, 221, 190, 94, 2, 1, 221, 190, 94, 6, 1, 208, 176, 94, + 2, 1, 208, 176, 94, 6, 1, 211, 81, 94, 2, 1, 211, 81, 94, 6, 1, 237, 37, + 251, 192, 94, 2, 1, 237, 37, 251, 192, 94, 6, 1, 39, 94, 251, 230, 94, 2, + 1, 39, 94, 251, 230, 94, 6, 1, 238, 198, 234, 165, 94, 2, 1, 238, 198, + 234, 165, 94, 6, 1, 237, 37, 222, 77, 94, 2, 1, 237, 37, 222, 77, 94, 6, + 1, 237, 37, 213, 219, 94, 2, 1, 237, 37, 213, 219, 94, 6, 1, 238, 198, + 213, 219, 94, 2, 1, 238, 198, 213, 219, 94, 6, 1, 39, 94, 211, 81, 94, 2, + 1, 39, 94, 211, 81, 94, 6, 1, 205, 145, 94, 2, 1, 205, 145, 94, 6, 1, + 238, 214, 203, 105, 94, 2, 1, 238, 214, 203, 105, 94, 6, 1, 39, 94, 203, + 105, 94, 2, 1, 39, 94, 203, 105, 94, 6, 1, 39, 94, 234, 12, 94, 2, 1, 39, + 94, 234, 12, 94, 6, 1, 251, 212, 221, 195, 94, 2, 1, 251, 212, 221, 195, + 94, 6, 1, 237, 37, 228, 242, 94, 2, 1, 237, 37, 228, 242, 94, 6, 1, 39, + 94, 228, 242, 94, 2, 1, 39, 94, 228, 242, 94, 6, 1, 39, 94, 140, 94, 2, + 1, 39, 94, 140, 94, 6, 1, 220, 142, 140, 94, 2, 1, 220, 142, 140, 94, 6, + 1, 39, 94, 229, 209, 94, 2, 1, 39, 94, 229, 209, 94, 6, 1, 39, 94, 230, + 9, 94, 2, 1, 39, 94, 230, 9, 94, 6, 1, 39, 94, 231, 206, 94, 2, 1, 39, + 94, 231, 206, 94, 6, 1, 39, 94, 236, 193, 94, 2, 1, 39, 94, 236, 193, 94, + 6, 1, 39, 94, 203, 71, 94, 2, 1, 39, 94, 203, 71, 94, 6, 1, 39, 212, 145, + 203, 71, 94, 2, 1, 39, 212, 145, 203, 71, 94, 6, 1, 39, 212, 145, 214, + 16, 94, 2, 1, 39, 212, 145, 214, 16, 94, 6, 1, 39, 212, 145, 212, 81, 94, + 2, 1, 39, 212, 145, 212, 81, 94, 6, 1, 39, 212, 145, 193, 140, 94, 2, 1, + 39, 212, 145, 193, 140, 94, 16, 222, 102, 94, 16, 216, 101, 206, 162, 94, + 16, 209, 186, 206, 162, 94, 16, 201, 89, 94, 16, 199, 167, 206, 162, 94, + 16, 221, 191, 206, 162, 94, 16, 203, 72, 202, 183, 94, 6, 1, 238, 198, + 203, 105, 94, 2, 1, 238, 198, 203, 105, 94, 6, 1, 238, 198, 231, 206, 94, + 2, 1, 238, 198, 231, 206, 94, 33, 213, 220, 58, 94, 33, 201, 213, 250, + 201, 94, 33, 201, 213, 219, 188, 94, 6, 1, 248, 103, 221, 195, 94, 2, 1, + 248, 103, 221, 195, 94, 39, 212, 145, 232, 80, 201, 63, 94, 39, 212, 145, + 236, 234, 208, 13, 77, 94, 39, 212, 145, 223, 142, 208, 13, 77, 94, 39, + 212, 145, 195, 137, 236, 205, 94, 232, 118, 91, 230, 70, 94, 232, 80, + 201, 63, 94, 215, 200, 236, 205, 101, 2, 1, 251, 132, 101, 2, 1, 249, + 101, 101, 2, 1, 231, 210, 101, 2, 1, 236, 150, 101, 2, 1, 234, 103, 101, + 2, 1, 195, 49, 101, 2, 1, 191, 80, 101, 2, 1, 199, 193, 101, 2, 1, 223, + 162, 101, 2, 1, 222, 87, 101, 2, 1, 220, 7, 101, 2, 1, 217, 90, 101, 2, + 1, 214, 216, 101, 2, 1, 211, 104, 101, 2, 1, 210, 131, 101, 2, 1, 191, + 67, 101, 2, 1, 207, 163, 101, 2, 1, 205, 142, 101, 2, 1, 199, 179, 101, + 2, 1, 196, 113, 101, 2, 1, 209, 220, 101, 2, 1, 221, 200, 101, 2, 1, 231, + 82, 101, 2, 1, 208, 81, 101, 2, 1, 203, 69, 101, 2, 1, 243, 81, 101, 2, + 1, 247, 128, 101, 2, 1, 222, 234, 101, 2, 1, 243, 18, 101, 2, 1, 246, + 241, 101, 2, 1, 192, 218, 101, 2, 1, 222, 249, 101, 2, 1, 230, 87, 101, + 2, 1, 229, 245, 101, 2, 1, 229, 145, 101, 2, 1, 193, 125, 101, 2, 1, 230, + 19, 101, 2, 1, 229, 11, 101, 2, 1, 192, 14, 101, 2, 1, 252, 14, 198, 175, + 1, 170, 198, 175, 1, 192, 136, 198, 175, 1, 192, 135, 198, 175, 1, 192, + 125, 198, 175, 1, 192, 123, 198, 175, 1, 248, 218, 252, 62, 192, 118, + 198, 175, 1, 192, 118, 198, 175, 1, 192, 133, 198, 175, 1, 192, 130, 198, + 175, 1, 192, 132, 198, 175, 1, 192, 131, 198, 175, 1, 192, 40, 198, 175, + 1, 192, 127, 198, 175, 1, 192, 116, 198, 175, 1, 197, 86, 192, 116, 198, + 175, 1, 192, 113, 198, 175, 1, 192, 121, 198, 175, 1, 248, 218, 252, 62, + 192, 121, 198, 175, 1, 197, 86, 192, 121, 198, 175, 1, 192, 120, 198, + 175, 1, 192, 140, 198, 175, 1, 192, 114, 198, 175, 1, 197, 86, 192, 114, + 198, 175, 1, 192, 103, 198, 175, 1, 197, 86, 192, 103, 198, 175, 1, 192, + 33, 198, 175, 1, 192, 82, 198, 175, 1, 251, 243, 192, 82, 198, 175, 1, + 197, 86, 192, 82, 198, 175, 1, 192, 112, 198, 175, 1, 192, 111, 198, 175, + 1, 192, 108, 198, 175, 1, 197, 86, 192, 122, 198, 175, 1, 197, 86, 192, + 106, 198, 175, 1, 192, 104, 198, 175, 1, 191, 225, 198, 175, 1, 192, 101, + 198, 175, 1, 192, 99, 198, 175, 1, 192, 124, 198, 175, 1, 197, 86, 192, + 124, 198, 175, 1, 250, 127, 192, 124, 198, 175, 1, 192, 98, 198, 175, 1, + 192, 96, 198, 175, 1, 192, 97, 198, 175, 1, 192, 95, 198, 175, 1, 192, + 94, 198, 175, 1, 192, 134, 198, 175, 1, 192, 92, 198, 175, 1, 192, 90, + 198, 175, 1, 192, 89, 198, 175, 1, 192, 86, 198, 175, 1, 192, 83, 198, + 175, 1, 199, 157, 192, 83, 198, 175, 1, 192, 81, 198, 175, 1, 192, 80, + 198, 175, 1, 192, 12, 198, 175, 52, 1, 220, 115, 77, 198, 175, 204, 11, + 77, 198, 175, 120, 222, 196, 36, 5, 219, 42, 36, 5, 216, 5, 36, 5, 206, + 154, 36, 5, 202, 38, 36, 5, 203, 55, 36, 5, 248, 110, 36, 5, 198, 91, 36, + 5, 242, 98, 36, 5, 213, 36, 36, 5, 212, 64, 36, 5, 231, 11, 211, 182, 36, + 5, 191, 6, 36, 5, 236, 172, 36, 5, 237, 160, 36, 5, 222, 200, 36, 5, 198, + 240, 36, 5, 243, 67, 36, 5, 209, 198, 36, 5, 209, 72, 36, 5, 231, 97, 36, + 5, 231, 93, 36, 5, 231, 94, 36, 5, 231, 95, 36, 5, 201, 175, 36, 5, 201, + 129, 36, 5, 201, 142, 36, 5, 201, 174, 36, 5, 201, 147, 36, 5, 201, 148, + 36, 5, 201, 134, 36, 5, 247, 65, 36, 5, 247, 44, 36, 5, 247, 46, 36, 5, + 247, 64, 36, 5, 247, 62, 36, 5, 247, 63, 36, 5, 247, 45, 36, 5, 190, 224, + 36, 5, 190, 202, 36, 5, 190, 215, 36, 5, 190, 223, 36, 5, 190, 218, 36, + 5, 190, 219, 36, 5, 190, 207, 36, 5, 247, 60, 36, 5, 247, 47, 36, 5, 247, + 49, 36, 5, 247, 59, 36, 5, 247, 57, 36, 5, 247, 58, 36, 5, 247, 48, 36, + 5, 207, 234, 36, 5, 207, 224, 36, 5, 207, 230, 36, 5, 207, 233, 36, 5, + 207, 231, 36, 5, 207, 232, 36, 5, 207, 229, 36, 5, 220, 153, 36, 5, 220, + 145, 36, 5, 220, 148, 36, 5, 220, 152, 36, 5, 220, 149, 36, 5, 220, 150, + 36, 5, 220, 146, 36, 5, 192, 175, 36, 5, 192, 162, 36, 5, 192, 170, 36, + 5, 192, 174, 36, 5, 192, 172, 36, 5, 192, 173, 36, 5, 192, 169, 36, 5, + 230, 128, 36, 5, 230, 118, 36, 5, 230, 121, 36, 5, 230, 127, 36, 5, 230, + 123, 36, 5, 230, 124, 36, 5, 230, 120, 33, 38, 1, 249, 17, 33, 38, 1, + 195, 153, 33, 38, 1, 231, 77, 33, 38, 1, 237, 146, 33, 38, 1, 191, 62, + 33, 38, 1, 191, 87, 33, 38, 1, 155, 33, 38, 1, 234, 140, 33, 38, 1, 234, + 114, 33, 38, 1, 234, 103, 33, 38, 1, 74, 33, 38, 1, 210, 63, 33, 38, 1, + 234, 34, 33, 38, 1, 234, 22, 33, 38, 1, 199, 145, 33, 38, 1, 140, 33, 38, + 1, 197, 161, 33, 38, 1, 243, 127, 33, 38, 1, 203, 165, 33, 38, 1, 203, + 116, 33, 38, 1, 232, 228, 33, 38, 1, 234, 18, 33, 38, 1, 65, 33, 38, 1, + 223, 226, 33, 38, 1, 236, 191, 33, 38, 1, 215, 219, 196, 128, 33, 38, 1, + 192, 95, 33, 38, 1, 191, 225, 33, 38, 1, 223, 81, 65, 33, 38, 1, 219, 83, + 191, 190, 33, 38, 1, 248, 175, 191, 190, 33, 38, 1, 223, 81, 248, 175, + 191, 190, 50, 251, 116, 200, 225, 217, 51, 50, 251, 116, 235, 138, 200, + 225, 217, 51, 45, 200, 225, 248, 53, 50, 200, 225, 248, 53, 45, 235, 138, + 200, 225, 248, 53, 50, 235, 138, 200, 225, 248, 53, 207, 147, 223, 104, + 217, 51, 207, 147, 235, 138, 223, 104, 217, 51, 235, 138, 198, 8, 217, + 51, 45, 198, 8, 248, 53, 50, 198, 8, 248, 53, 207, 147, 201, 190, 45, + 207, 147, 211, 106, 248, 53, 50, 207, 147, 211, 106, 248, 53, 234, 189, + 238, 254, 210, 126, 232, 148, 210, 126, 207, 18, 232, 148, 210, 126, 228, + 85, 235, 138, 211, 177, 235, 119, 251, 126, 196, 66, 251, 126, 235, 138, + 206, 203, 251, 115, 55, 211, 172, 228, 88, 223, 93, 223, 102, 210, 183, + 248, 47, 228, 89, 4, 237, 42, 198, 153, 4, 206, 189, 58, 45, 130, 210, + 116, 248, 53, 50, 130, 210, 116, 248, 53, 198, 153, 4, 75, 58, 198, 153, + 4, 75, 60, 45, 81, 249, 88, 4, 208, 7, 50, 81, 249, 88, 4, 208, 7, 198, + 54, 45, 132, 248, 53, 198, 54, 50, 132, 248, 53, 248, 77, 45, 132, 248, + 53, 248, 77, 50, 132, 248, 53, 45, 202, 206, 126, 248, 53, 50, 202, 206, + 126, 248, 53, 45, 55, 210, 113, 50, 55, 210, 113, 105, 185, 139, 91, 75, + 208, 151, 91, 75, 139, 105, 185, 208, 151, 112, 232, 128, 75, 208, 151, + 232, 226, 75, 77, 207, 18, 208, 13, 77, 81, 198, 152, 206, 189, 209, 61, + 193, 23, 204, 11, 82, 236, 140, 153, 242, 74, 207, 147, 236, 140, 207, + 147, 242, 74, 153, 204, 25, 238, 15, 4, 45, 230, 173, 238, 15, 4, 50, + 230, 173, 153, 238, 14, 198, 54, 132, 205, 54, 56, 197, 14, 237, 215, + 198, 223, 237, 215, 201, 79, 232, 80, 201, 63, 81, 202, 136, 236, 138, + 193, 72, 81, 219, 112, 247, 109, 55, 228, 88, 207, 18, 242, 74, 55, 218, + 237, 207, 252, 77, 237, 216, 4, 45, 196, 69, 55, 200, 164, 77, 223, 93, + 130, 222, 35, 223, 93, 130, 222, 36, 4, 222, 36, 58, 130, 222, 35, 130, + 222, 36, 4, 236, 140, 55, 201, 114, 242, 74, 235, 138, 202, 23, 197, 225, + 238, 14, 216, 214, 242, 74, 210, 125, 77, 208, 150, 234, 129, 77, 238, + 255, 195, 137, 236, 205, 238, 218, 210, 82, 4, 50, 238, 216, 238, 218, + 210, 82, 4, 45, 238, 216, 198, 128, 3, 6, 233, 255, 216, 214, 233, 216, + 77, 216, 214, 208, 13, 77, 45, 51, 248, 54, 4, 106, 50, 51, 248, 54, 4, + 106, 45, 51, 248, 54, 4, 55, 106, 50, 51, 248, 54, 4, 55, 106, 198, 54, + 132, 45, 210, 113, 198, 54, 132, 50, 210, 113, 248, 77, 132, 45, 210, + 113, 248, 77, 132, 50, 210, 113, 211, 172, 228, 88, 12, 48, 207, 48, 12, + 48, 242, 230, 12, 48, 205, 57, 107, 12, 48, 205, 57, 109, 12, 48, 205, + 57, 138, 12, 48, 209, 250, 12, 48, 248, 62, 12, 48, 199, 233, 12, 48, + 221, 79, 107, 12, 48, 221, 79, 109, 12, 48, 236, 202, 12, 48, 205, 61, + 12, 48, 2, 107, 12, 48, 2, 109, 12, 48, 220, 30, 107, 12, 48, 220, 30, + 109, 12, 48, 220, 30, 138, 12, 48, 220, 30, 134, 12, 48, 202, 58, 12, 48, + 198, 227, 12, 48, 202, 55, 107, 12, 48, 202, 55, 109, 12, 48, 229, 224, + 107, 12, 48, 229, 224, 109, 12, 48, 230, 53, 12, 48, 207, 136, 12, 48, + 243, 64, 12, 48, 200, 198, 12, 48, 215, 205, 12, 48, 237, 143, 12, 48, + 215, 193, 12, 48, 242, 249, 12, 48, 193, 144, 107, 12, 48, 193, 144, 109, + 12, 48, 232, 243, 12, 48, 210, 76, 107, 12, 48, 210, 76, 109, 12, 48, + 202, 178, 132, 197, 255, 197, 177, 12, 48, 238, 239, 12, 48, 236, 162, + 12, 48, 223, 27, 12, 48, 248, 102, 79, 242, 213, 12, 48, 233, 193, 12, + 48, 201, 215, 107, 12, 48, 201, 215, 109, 12, 48, 249, 103, 12, 48, 202, + 185, 12, 48, 247, 190, 202, 185, 12, 48, 214, 86, 107, 12, 48, 214, 86, + 109, 12, 48, 214, 86, 138, 12, 48, 214, 86, 134, 12, 48, 216, 172, 12, + 48, 203, 107, 12, 48, 207, 142, 12, 48, 233, 223, 12, 48, 211, 119, 12, + 48, 248, 18, 107, 12, 48, 248, 18, 109, 12, 48, 216, 224, 12, 48, 215, + 199, 12, 48, 230, 214, 107, 12, 48, 230, 214, 109, 12, 48, 230, 214, 138, + 12, 48, 198, 173, 12, 48, 242, 212, 12, 48, 193, 105, 107, 12, 48, 193, + 105, 109, 12, 48, 247, 190, 205, 50, 12, 48, 202, 178, 228, 187, 12, 48, + 228, 187, 12, 48, 247, 190, 201, 229, 12, 48, 247, 190, 203, 102, 12, 48, + 232, 159, 12, 48, 247, 190, 247, 85, 12, 48, 202, 178, 193, 169, 12, 48, + 193, 170, 107, 12, 48, 193, 170, 109, 12, 48, 242, 252, 12, 48, 247, 190, + 230, 250, 12, 48, 179, 107, 12, 48, 179, 109, 12, 48, 247, 190, 219, 19, + 12, 48, 247, 190, 231, 191, 12, 48, 215, 188, 107, 12, 48, 215, 188, 109, + 12, 48, 207, 149, 12, 48, 248, 114, 12, 48, 247, 190, 199, 185, 219, 230, + 12, 48, 247, 190, 219, 233, 12, 48, 247, 190, 193, 66, 12, 48, 247, 190, + 232, 179, 12, 48, 234, 201, 107, 12, 48, 234, 201, 109, 12, 48, 234, 201, + 138, 12, 48, 247, 190, 234, 200, 12, 48, 229, 235, 12, 48, 247, 190, 228, + 183, 12, 48, 248, 98, 12, 48, 231, 61, 12, 48, 247, 190, 232, 236, 12, + 48, 247, 190, 248, 160, 12, 48, 247, 190, 205, 158, 12, 48, 202, 178, + 193, 95, 12, 48, 202, 178, 192, 72, 12, 48, 247, 190, 232, 99, 12, 48, + 223, 34, 233, 228, 12, 48, 247, 190, 233, 228, 12, 48, 223, 34, 198, 56, + 12, 48, 247, 190, 198, 56, 12, 48, 223, 34, 235, 111, 12, 48, 247, 190, + 235, 111, 12, 48, 197, 55, 12, 48, 223, 34, 197, 55, 12, 48, 247, 190, + 197, 55, 83, 48, 107, 83, 48, 219, 112, 83, 48, 236, 140, 83, 48, 202, + 97, 83, 48, 205, 56, 83, 48, 102, 83, 48, 109, 83, 48, 219, 141, 83, 48, + 217, 90, 83, 48, 219, 209, 83, 48, 234, 77, 83, 48, 171, 83, 48, 144, + 248, 62, 83, 48, 238, 242, 83, 48, 228, 26, 83, 48, 199, 233, 83, 48, + 211, 77, 248, 62, 83, 48, 221, 78, 83, 48, 208, 254, 83, 48, 193, 12, 83, + 48, 201, 203, 83, 48, 50, 211, 77, 248, 62, 83, 48, 229, 146, 234, 98, + 83, 48, 199, 95, 83, 48, 236, 202, 83, 48, 205, 61, 83, 48, 242, 230, 83, + 48, 208, 204, 83, 48, 251, 252, 83, 48, 215, 179, 83, 48, 234, 98, 83, + 48, 234, 207, 83, 48, 205, 91, 83, 48, 231, 3, 83, 48, 231, 4, 202, 74, + 83, 48, 233, 227, 83, 48, 248, 174, 83, 48, 193, 35, 83, 48, 243, 86, 83, + 48, 206, 133, 83, 48, 223, 158, 83, 48, 202, 70, 83, 48, 220, 29, 83, 48, + 238, 252, 83, 48, 201, 194, 83, 48, 215, 184, 83, 48, 206, 176, 83, 48, + 193, 20, 83, 48, 211, 95, 83, 48, 197, 63, 83, 48, 235, 91, 83, 48, 203, + 40, 198, 227, 83, 48, 235, 138, 242, 230, 83, 48, 179, 201, 34, 83, 48, + 105, 230, 28, 83, 48, 203, 46, 83, 48, 248, 69, 83, 48, 202, 54, 83, 48, + 248, 25, 83, 48, 201, 78, 83, 48, 229, 223, 83, 48, 230, 71, 83, 48, 236, + 144, 83, 48, 230, 53, 83, 48, 248, 47, 83, 48, 207, 136, 83, 48, 205, 74, + 83, 48, 236, 236, 83, 48, 250, 132, 83, 48, 201, 190, 83, 48, 213, 11, + 83, 48, 200, 198, 83, 48, 205, 103, 83, 48, 215, 205, 83, 48, 197, 254, + 83, 48, 220, 111, 83, 48, 201, 63, 83, 48, 237, 143, 83, 48, 193, 120, + 83, 48, 236, 175, 213, 11, 83, 48, 242, 70, 83, 48, 232, 72, 83, 48, 242, + 243, 83, 48, 201, 84, 83, 48, 193, 143, 83, 48, 232, 243, 83, 48, 242, + 239, 83, 48, 233, 66, 83, 48, 55, 192, 235, 83, 48, 132, 197, 255, 197, + 177, 83, 48, 202, 88, 83, 48, 233, 78, 83, 48, 238, 239, 83, 48, 236, + 162, 83, 48, 208, 199, 83, 48, 223, 27, 83, 48, 216, 196, 83, 48, 198, + 151, 83, 48, 200, 141, 83, 48, 219, 135, 83, 48, 196, 43, 83, 48, 233, + 21, 83, 48, 248, 102, 79, 242, 213, 83, 48, 202, 212, 83, 48, 235, 138, + 199, 87, 83, 48, 193, 89, 83, 48, 202, 107, 83, 48, 236, 222, 83, 48, + 233, 193, 83, 48, 201, 232, 83, 48, 57, 83, 48, 201, 65, 83, 48, 201, + 214, 83, 48, 198, 25, 83, 48, 230, 223, 83, 48, 247, 70, 83, 48, 201, + 107, 83, 48, 249, 103, 83, 48, 206, 245, 83, 48, 202, 185, 83, 48, 223, + 18, 83, 48, 214, 85, 83, 48, 203, 107, 83, 48, 233, 54, 83, 48, 211, 119, + 83, 48, 251, 125, 83, 48, 209, 89, 83, 48, 234, 211, 83, 48, 248, 17, 83, + 48, 216, 224, 83, 48, 216, 37, 83, 48, 204, 32, 83, 48, 250, 239, 83, 48, + 215, 199, 83, 48, 198, 61, 83, 48, 211, 64, 83, 48, 248, 106, 83, 48, + 201, 59, 83, 48, 242, 82, 83, 48, 230, 213, 83, 48, 198, 173, 83, 48, + 223, 121, 83, 48, 248, 120, 83, 48, 193, 170, 234, 98, 83, 48, 242, 212, + 83, 48, 193, 104, 83, 48, 205, 50, 83, 48, 228, 187, 83, 48, 201, 229, + 83, 48, 195, 180, 83, 48, 249, 12, 83, 48, 209, 147, 83, 48, 249, 133, + 83, 48, 203, 102, 83, 48, 207, 86, 83, 48, 206, 45, 83, 48, 232, 159, 83, + 48, 248, 104, 83, 48, 247, 85, 83, 48, 248, 144, 83, 48, 215, 201, 83, + 48, 193, 169, 83, 48, 242, 252, 83, 48, 193, 62, 83, 48, 236, 214, 83, + 48, 195, 50, 83, 48, 230, 250, 83, 48, 219, 19, 83, 48, 231, 191, 83, 48, + 215, 187, 83, 48, 202, 96, 83, 48, 203, 40, 199, 214, 248, 160, 83, 48, + 207, 149, 83, 48, 248, 114, 83, 48, 193, 2, 83, 48, 233, 103, 83, 48, + 219, 230, 83, 48, 199, 185, 219, 230, 83, 48, 219, 226, 83, 48, 202, 4, + 83, 48, 219, 233, 83, 48, 193, 66, 83, 48, 232, 179, 83, 48, 234, 200, + 83, 48, 229, 235, 83, 48, 232, 116, 83, 48, 228, 183, 83, 48, 248, 98, + 83, 48, 199, 199, 83, 48, 230, 78, 83, 48, 233, 14, 83, 48, 205, 194, + 193, 62, 83, 48, 247, 72, 83, 48, 231, 61, 83, 48, 232, 236, 83, 48, 248, + 160, 83, 48, 205, 158, 83, 48, 237, 128, 83, 48, 193, 95, 83, 48, 229, + 199, 83, 48, 192, 72, 83, 48, 216, 49, 83, 48, 248, 139, 83, 48, 234, + 110, 83, 48, 232, 99, 83, 48, 197, 222, 83, 48, 235, 94, 83, 48, 207, + 130, 83, 48, 213, 13, 83, 48, 233, 228, 83, 48, 198, 56, 83, 48, 235, + 111, 83, 48, 197, 55, 83, 48, 232, 182, 154, 237, 85, 246, 240, 45, 119, + 183, 154, 237, 85, 246, 240, 93, 119, 60, 154, 237, 85, 246, 240, 45, + 119, 82, 23, 183, 154, 237, 85, 246, 240, 93, 119, 82, 23, 60, 154, 237, + 85, 246, 240, 232, 80, 200, 168, 154, 237, 85, 246, 240, 200, 169, 232, + 98, 58, 154, 237, 85, 246, 240, 200, 169, 232, 98, 60, 154, 237, 85, 246, + 240, 200, 169, 232, 98, 219, 224, 154, 237, 85, 246, 240, 200, 169, 232, + 98, 116, 219, 224, 154, 237, 85, 246, 240, 200, 169, 232, 98, 116, 183, + 154, 237, 85, 246, 240, 200, 169, 232, 98, 110, 219, 224, 154, 237, 85, + 246, 240, 211, 3, 154, 201, 247, 154, 242, 74, 154, 232, 80, 201, 63, + 236, 211, 77, 223, 19, 223, 141, 201, 106, 113, 154, 223, 51, 77, 154, + 242, 215, 77, 154, 31, 191, 77, 45, 251, 116, 248, 53, 50, 251, 116, 248, + 53, 45, 55, 251, 116, 248, 53, 50, 55, 251, 116, 248, 53, 45, 239, 2, + 248, 53, 50, 239, 2, 248, 53, 45, 63, 239, 2, 248, 53, 50, 63, 239, 2, + 248, 53, 45, 62, 219, 187, 248, 53, 50, 62, 219, 187, 248, 53, 209, 18, + 77, 231, 130, 77, 45, 198, 42, 203, 103, 248, 53, 50, 198, 42, 203, 103, + 248, 53, 45, 63, 219, 187, 248, 53, 50, 63, 219, 187, 248, 53, 45, 63, + 198, 42, 203, 103, 248, 53, 50, 63, 198, 42, 203, 103, 248, 53, 45, 63, + 51, 248, 53, 50, 63, 51, 248, 53, 193, 139, 237, 215, 207, 18, 55, 208, + 216, 207, 252, 77, 55, 208, 216, 207, 252, 77, 130, 55, 208, 216, 207, + 252, 77, 209, 18, 87, 233, 103, 230, 25, 212, 134, 107, 230, 25, 212, + 134, 109, 230, 25, 212, 134, 138, 230, 25, 212, 134, 134, 230, 25, 212, + 134, 149, 230, 25, 212, 134, 169, 230, 25, 212, 134, 175, 230, 25, 212, + 134, 171, 230, 25, 212, 134, 178, 154, 219, 168, 163, 77, 154, 206, 180, + 163, 77, 154, 237, 95, 163, 77, 154, 234, 76, 163, 77, 30, 202, 170, 75, + 163, 77, 30, 55, 75, 163, 77, 193, 135, 237, 215, 81, 222, 86, 207, 49, + 77, 81, 222, 86, 207, 49, 4, 195, 20, 202, 5, 77, 81, 222, 86, 207, 49, + 87, 116, 230, 70, 81, 222, 86, 207, 49, 4, 195, 20, 202, 5, 87, 116, 230, + 70, 81, 222, 86, 207, 49, 87, 110, 230, 70, 47, 209, 18, 77, 154, 199, + 109, 219, 113, 233, 51, 204, 11, 113, 230, 25, 212, 134, 199, 95, 230, + 25, 212, 134, 197, 32, 230, 25, 212, 134, 198, 249, 81, 154, 223, 51, 77, + 217, 31, 77, 210, 107, 251, 153, 77, 154, 67, 223, 144, 154, 132, 233, 6, + 201, 247, 229, 120, 1, 2, 65, 229, 120, 1, 65, 229, 120, 1, 2, 68, 229, + 120, 1, 68, 229, 120, 1, 2, 66, 229, 120, 1, 66, 229, 120, 1, 2, 71, 229, + 120, 1, 71, 229, 120, 1, 2, 74, 229, 120, 1, 74, 229, 120, 1, 155, 229, + 120, 1, 231, 240, 229, 120, 1, 221, 166, 229, 120, 1, 231, 53, 229, 120, + 1, 220, 232, 229, 120, 1, 230, 179, 229, 120, 1, 222, 22, 229, 120, 1, + 231, 165, 229, 120, 1, 221, 67, 229, 120, 1, 231, 3, 229, 120, 1, 188, + 229, 120, 1, 191, 123, 229, 120, 1, 202, 222, 229, 120, 1, 191, 30, 229, + 120, 1, 201, 4, 229, 120, 1, 190, 251, 229, 120, 1, 205, 68, 229, 120, 1, + 191, 87, 229, 120, 1, 202, 46, 229, 120, 1, 191, 7, 229, 120, 1, 190, + 190, 229, 120, 1, 238, 32, 229, 120, 1, 198, 193, 229, 120, 1, 237, 44, + 229, 120, 1, 2, 197, 94, 229, 120, 1, 197, 94, 229, 120, 1, 235, 89, 229, + 120, 1, 199, 145, 229, 120, 1, 237, 146, 229, 120, 1, 159, 229, 120, 1, + 236, 174, 229, 120, 1, 180, 229, 120, 1, 213, 219, 229, 120, 1, 212, 178, + 229, 120, 1, 214, 121, 229, 120, 1, 213, 43, 229, 120, 1, 140, 229, 120, + 1, 249, 153, 229, 120, 1, 168, 229, 120, 1, 229, 158, 229, 120, 1, 248, + 188, 229, 120, 1, 209, 185, 229, 120, 1, 228, 159, 229, 120, 1, 248, 10, + 229, 120, 1, 208, 165, 229, 120, 1, 229, 245, 229, 120, 1, 249, 17, 229, + 120, 1, 210, 63, 229, 120, 1, 229, 23, 229, 120, 1, 248, 111, 229, 120, + 1, 209, 73, 229, 120, 1, 174, 229, 120, 1, 216, 100, 229, 120, 1, 215, + 155, 229, 120, 1, 216, 232, 229, 120, 1, 216, 12, 229, 120, 1, 2, 170, + 229, 120, 1, 170, 229, 120, 1, 2, 191, 225, 229, 120, 1, 191, 225, 229, + 120, 1, 2, 192, 12, 229, 120, 1, 192, 12, 229, 120, 1, 165, 229, 120, 1, + 207, 1, 229, 120, 1, 206, 68, 229, 120, 1, 207, 113, 229, 120, 1, 206, + 162, 229, 120, 1, 2, 193, 190, 229, 120, 1, 193, 190, 229, 120, 1, 193, + 86, 229, 120, 1, 193, 125, 229, 120, 1, 193, 48, 229, 120, 1, 215, 61, + 229, 120, 1, 193, 249, 229, 120, 1, 2, 155, 229, 120, 1, 2, 222, 22, 33, + 222, 48, 195, 20, 202, 5, 77, 33, 222, 48, 204, 30, 202, 5, 77, 222, 48, + 195, 20, 202, 5, 77, 222, 48, 204, 30, 202, 5, 77, 229, 120, 223, 51, 77, + 229, 120, 195, 20, 223, 51, 77, 229, 120, 237, 3, 191, 242, 222, 48, 55, + 228, 88, 72, 1, 2, 65, 72, 1, 65, 72, 1, 2, 68, 72, 1, 68, 72, 1, 2, 66, + 72, 1, 66, 72, 1, 2, 71, 72, 1, 71, 72, 1, 2, 74, 72, 1, 74, 72, 1, 155, + 72, 1, 231, 240, 72, 1, 221, 166, 72, 1, 231, 53, 72, 1, 220, 232, 72, 1, + 230, 179, 72, 1, 222, 22, 72, 1, 231, 165, 72, 1, 221, 67, 72, 1, 231, 3, + 72, 1, 188, 72, 1, 191, 123, 72, 1, 202, 222, 72, 1, 191, 30, 72, 1, 201, + 4, 72, 1, 190, 251, 72, 1, 205, 68, 72, 1, 191, 87, 72, 1, 202, 46, 72, + 1, 191, 7, 72, 1, 190, 190, 72, 1, 238, 32, 72, 1, 198, 193, 72, 1, 237, + 44, 72, 1, 2, 197, 94, 72, 1, 197, 94, 72, 1, 235, 89, 72, 1, 199, 145, + 72, 1, 237, 146, 72, 1, 159, 72, 1, 236, 174, 72, 1, 180, 72, 1, 213, + 219, 72, 1, 212, 178, 72, 1, 214, 121, 72, 1, 213, 43, 72, 1, 140, 72, 1, + 249, 153, 72, 1, 168, 72, 1, 229, 158, 72, 1, 248, 188, 72, 1, 209, 185, + 72, 1, 228, 159, 72, 1, 248, 10, 72, 1, 208, 165, 72, 1, 229, 245, 72, 1, + 249, 17, 72, 1, 210, 63, 72, 1, 229, 23, 72, 1, 248, 111, 72, 1, 209, 73, + 72, 1, 174, 72, 1, 216, 100, 72, 1, 215, 155, 72, 1, 216, 232, 72, 1, + 216, 12, 72, 1, 2, 170, 72, 1, 170, 72, 1, 2, 191, 225, 72, 1, 191, 225, + 72, 1, 2, 192, 12, 72, 1, 192, 12, 72, 1, 165, 72, 1, 207, 1, 72, 1, 206, + 68, 72, 1, 207, 113, 72, 1, 206, 162, 72, 1, 2, 193, 190, 72, 1, 193, + 190, 72, 1, 193, 86, 72, 1, 193, 125, 72, 1, 193, 48, 72, 1, 215, 61, 72, + 1, 193, 249, 72, 1, 2, 155, 72, 1, 2, 222, 22, 72, 1, 195, 188, 72, 1, + 195, 69, 72, 1, 195, 153, 72, 1, 195, 24, 72, 82, 236, 140, 222, 48, 208, + 191, 202, 5, 77, 72, 223, 51, 77, 72, 195, 20, 223, 51, 77, 72, 237, 3, + 221, 27, 248, 88, 1, 250, 120, 248, 88, 1, 210, 236, 248, 88, 1, 218, + 168, 248, 88, 1, 233, 175, 248, 88, 1, 238, 127, 248, 88, 1, 200, 43, + 248, 88, 1, 215, 61, 248, 88, 1, 172, 248, 88, 1, 232, 51, 248, 88, 1, + 222, 152, 248, 88, 1, 230, 116, 248, 88, 1, 223, 35, 248, 88, 1, 208, + 104, 248, 88, 1, 192, 235, 248, 88, 1, 191, 72, 248, 88, 1, 247, 3, 248, + 88, 1, 203, 167, 248, 88, 1, 146, 248, 88, 1, 191, 166, 248, 88, 1, 247, + 193, 248, 88, 1, 206, 8, 248, 88, 1, 65, 248, 88, 1, 74, 248, 88, 1, 71, + 248, 88, 1, 234, 173, 248, 88, 1, 251, 236, 248, 88, 1, 234, 166, 248, + 88, 1, 250, 163, 248, 88, 1, 211, 19, 248, 88, 1, 251, 132, 248, 88, 1, + 234, 103, 248, 88, 1, 251, 122, 248, 88, 1, 234, 88, 248, 88, 1, 234, 34, + 248, 88, 1, 68, 248, 88, 1, 66, 248, 88, 1, 223, 49, 248, 88, 1, 196, 12, + 248, 88, 1, 214, 70, 248, 88, 1, 231, 7, 248, 88, 1, 223, 200, 248, 88, + 1, 187, 4, 75, 58, 248, 88, 1, 213, 80, 30, 1, 221, 113, 30, 1, 201, 167, + 30, 1, 221, 106, 30, 1, 213, 204, 30, 1, 213, 202, 30, 1, 213, 201, 30, + 1, 198, 168, 30, 1, 201, 156, 30, 1, 206, 239, 30, 1, 206, 234, 30, 1, + 206, 231, 30, 1, 206, 224, 30, 1, 206, 219, 30, 1, 206, 214, 30, 1, 206, + 225, 30, 1, 206, 237, 30, 1, 216, 77, 30, 1, 209, 169, 30, 1, 201, 164, + 30, 1, 209, 158, 30, 1, 202, 160, 30, 1, 201, 161, 30, 1, 223, 222, 30, + 1, 243, 24, 30, 1, 201, 171, 30, 1, 243, 91, 30, 1, 221, 188, 30, 1, 199, + 7, 30, 1, 209, 209, 30, 1, 229, 142, 30, 1, 65, 30, 1, 252, 25, 30, 1, + 170, 30, 1, 192, 129, 30, 1, 234, 65, 30, 1, 71, 30, 1, 192, 67, 30, 1, + 192, 80, 30, 1, 74, 30, 1, 193, 190, 30, 1, 193, 176, 30, 1, 211, 151, + 30, 1, 192, 12, 30, 1, 66, 30, 1, 193, 107, 30, 1, 193, 125, 30, 1, 193, + 86, 30, 1, 191, 225, 30, 1, 233, 242, 30, 1, 192, 33, 30, 1, 68, 30, 233, + 3, 30, 1, 201, 165, 30, 1, 213, 194, 30, 1, 213, 196, 30, 1, 213, 199, + 30, 1, 206, 232, 30, 1, 206, 213, 30, 1, 206, 221, 30, 1, 206, 226, 30, + 1, 206, 211, 30, 1, 216, 70, 30, 1, 216, 67, 30, 1, 216, 71, 30, 1, 222, + 71, 30, 1, 209, 164, 30, 1, 209, 150, 30, 1, 209, 156, 30, 1, 209, 153, + 30, 1, 209, 167, 30, 1, 209, 151, 30, 1, 222, 69, 30, 1, 222, 67, 30, 1, + 202, 153, 30, 1, 202, 151, 30, 1, 202, 143, 30, 1, 202, 148, 30, 1, 202, + 158, 30, 1, 210, 149, 30, 1, 201, 168, 30, 1, 192, 57, 30, 1, 192, 51, + 30, 1, 192, 52, 30, 1, 222, 70, 30, 1, 201, 169, 30, 1, 192, 63, 30, 1, + 192, 0, 30, 1, 191, 255, 30, 1, 192, 2, 30, 1, 191, 212, 30, 1, 191, 213, + 30, 1, 191, 216, 30, 1, 251, 25, 30, 1, 251, 19, 154, 251, 96, 219, 101, + 77, 154, 251, 96, 207, 19, 77, 154, 251, 96, 91, 77, 154, 251, 96, 105, + 77, 154, 251, 96, 115, 77, 154, 251, 96, 232, 128, 77, 154, 251, 96, 198, + 54, 77, 154, 251, 96, 82, 77, 154, 251, 96, 248, 77, 77, 154, 251, 96, + 232, 238, 77, 154, 251, 96, 205, 57, 77, 154, 251, 96, 199, 1, 77, 154, + 251, 96, 232, 121, 77, 154, 251, 96, 229, 220, 77, 154, 251, 96, 234, + 208, 77, 154, 251, 96, 217, 91, 77, 248, 88, 1, 248, 10, 248, 88, 1, 191, + 30, 248, 88, 1, 222, 244, 248, 88, 1, 230, 179, 248, 88, 1, 234, 188, + 248, 88, 1, 234, 85, 248, 88, 1, 211, 87, 248, 88, 1, 211, 91, 248, 88, + 1, 223, 77, 248, 88, 1, 251, 98, 248, 88, 1, 223, 128, 248, 88, 1, 196, + 83, 248, 88, 1, 223, 180, 248, 88, 1, 214, 48, 248, 88, 1, 251, 229, 248, + 88, 1, 250, 158, 248, 88, 1, 251, 149, 248, 88, 1, 211, 113, 248, 88, 1, + 211, 94, 248, 88, 1, 223, 125, 248, 88, 53, 1, 210, 236, 248, 88, 53, 1, + 200, 43, 248, 88, 53, 1, 222, 152, 248, 88, 53, 1, 230, 116, 248, 88, 1, + 231, 92, 248, 88, 1, 219, 160, 248, 88, 1, 190, 231, 248, 88, 53, 1, 232, + 51, 248, 88, 1, 230, 136, 248, 88, 1, 220, 180, 248, 88, 1, 211, 151, + 248, 88, 1, 251, 245, 12, 201, 28, 200, 43, 12, 201, 28, 193, 98, 12, + 201, 28, 192, 209, 12, 201, 28, 247, 206, 12, 201, 28, 200, 151, 12, 201, + 28, 228, 78, 12, 201, 28, 228, 82, 12, 201, 28, 228, 169, 12, 201, 28, + 228, 79, 12, 201, 28, 200, 46, 12, 201, 28, 228, 81, 12, 201, 28, 228, + 77, 12, 201, 28, 228, 167, 12, 201, 28, 228, 80, 12, 201, 28, 228, 76, + 12, 201, 28, 215, 61, 12, 201, 28, 230, 116, 12, 201, 28, 206, 8, 12, + 201, 28, 210, 236, 12, 201, 28, 201, 250, 12, 201, 28, 238, 127, 12, 201, + 28, 228, 83, 12, 201, 28, 229, 178, 12, 201, 28, 200, 55, 12, 201, 28, + 200, 128, 12, 201, 28, 201, 118, 12, 201, 28, 203, 173, 12, 201, 28, 210, + 67, 12, 201, 28, 208, 106, 12, 201, 28, 198, 99, 12, 201, 28, 200, 45, + 12, 201, 28, 200, 140, 12, 201, 28, 228, 94, 12, 201, 28, 228, 75, 12, + 201, 28, 209, 230, 12, 201, 28, 208, 104, 72, 1, 2, 220, 232, 72, 1, 2, + 202, 222, 72, 1, 2, 201, 4, 72, 1, 2, 159, 72, 1, 2, 212, 178, 72, 1, 2, + 140, 72, 1, 2, 229, 158, 72, 1, 2, 228, 159, 72, 1, 2, 229, 245, 72, 1, + 2, 229, 23, 72, 1, 2, 215, 155, 72, 1, 2, 165, 72, 1, 2, 207, 1, 72, 1, + 2, 206, 68, 72, 1, 2, 207, 113, 72, 1, 2, 206, 162, 127, 30, 221, 113, + 127, 30, 213, 204, 127, 30, 198, 168, 127, 30, 206, 239, 127, 30, 216, + 77, 127, 30, 209, 169, 127, 30, 202, 160, 127, 30, 223, 222, 127, 30, + 243, 24, 127, 30, 243, 91, 127, 30, 221, 188, 127, 30, 199, 7, 127, 30, + 209, 209, 127, 30, 229, 142, 127, 30, 221, 114, 65, 127, 30, 213, 205, + 65, 127, 30, 198, 169, 65, 127, 30, 206, 240, 65, 127, 30, 216, 78, 65, + 127, 30, 209, 170, 65, 127, 30, 202, 161, 65, 127, 30, 223, 223, 65, 127, + 30, 243, 25, 65, 127, 30, 243, 92, 65, 127, 30, 221, 189, 65, 127, 30, + 199, 8, 65, 127, 30, 209, 210, 65, 127, 30, 229, 143, 65, 127, 30, 243, + 25, 66, 127, 221, 32, 246, 240, 211, 129, 127, 221, 32, 246, 240, 187, + 228, 159, 127, 228, 14, 107, 127, 228, 14, 109, 127, 228, 14, 138, 127, + 228, 14, 134, 127, 228, 14, 149, 127, 228, 14, 169, 127, 228, 14, 175, + 127, 228, 14, 171, 127, 228, 14, 178, 127, 228, 14, 199, 95, 127, 228, + 14, 215, 205, 127, 228, 14, 232, 243, 127, 228, 14, 193, 143, 127, 228, + 14, 193, 28, 127, 228, 14, 216, 165, 127, 228, 14, 234, 207, 127, 228, + 14, 200, 198, 127, 228, 14, 201, 66, 127, 228, 14, 229, 255, 127, 228, + 14, 202, 35, 127, 228, 14, 214, 227, 127, 228, 14, 201, 231, 127, 228, + 14, 232, 254, 127, 228, 14, 239, 50, 127, 228, 14, 220, 114, 127, 228, + 14, 207, 42, 127, 228, 14, 247, 138, 127, 228, 14, 201, 10, 127, 228, 14, + 200, 178, 127, 228, 14, 234, 75, 127, 228, 14, 207, 32, 127, 228, 14, + 251, 168, 127, 228, 14, 233, 31, 127, 228, 14, 207, 30, 127, 228, 14, + 204, 32, 127, 228, 14, 207, 108, 47, 228, 14, 208, 12, 47, 228, 14, 221, + 140, 47, 228, 14, 205, 89, 47, 228, 14, 221, 27, 47, 31, 199, 96, 211, + 105, 62, 201, 190, 47, 31, 197, 33, 211, 105, 62, 201, 190, 47, 31, 198, + 250, 211, 105, 62, 201, 190, 47, 31, 232, 136, 211, 105, 62, 201, 190, + 47, 31, 233, 16, 211, 105, 62, 201, 190, 47, 31, 202, 121, 211, 105, 62, + 201, 190, 47, 31, 203, 242, 211, 105, 62, 201, 190, 47, 31, 234, 154, + 211, 105, 62, 201, 190, 210, 103, 56, 47, 31, 197, 33, 107, 47, 31, 197, + 33, 109, 47, 31, 197, 33, 138, 47, 31, 197, 33, 134, 47, 31, 197, 33, + 149, 47, 31, 197, 33, 169, 47, 31, 197, 33, 175, 47, 31, 197, 33, 171, + 47, 31, 197, 33, 178, 47, 31, 198, 249, 47, 31, 198, 250, 107, 47, 31, + 198, 250, 109, 47, 31, 198, 250, 138, 47, 31, 198, 250, 134, 47, 31, 198, + 250, 149, 47, 30, 221, 113, 47, 30, 213, 204, 47, 30, 198, 168, 47, 30, + 206, 239, 47, 30, 216, 77, 47, 30, 209, 169, 47, 30, 202, 160, 47, 30, + 223, 222, 47, 30, 243, 24, 47, 30, 243, 91, 47, 30, 221, 188, 47, 30, + 199, 7, 47, 30, 209, 209, 47, 30, 229, 142, 47, 30, 221, 114, 65, 47, 30, + 213, 205, 65, 47, 30, 198, 169, 65, 47, 30, 206, 240, 65, 47, 30, 216, + 78, 65, 47, 30, 209, 170, 65, 47, 30, 202, 161, 65, 47, 30, 223, 223, 65, + 47, 30, 243, 25, 65, 47, 30, 243, 92, 65, 47, 30, 221, 189, 65, 47, 30, + 199, 8, 65, 47, 30, 209, 210, 65, 47, 30, 229, 143, 65, 47, 221, 32, 246, + 240, 246, 247, 47, 221, 32, 246, 240, 222, 178, 47, 30, 223, 223, 66, + 221, 32, 201, 106, 113, 47, 228, 14, 107, 47, 228, 14, 109, 47, 228, 14, + 138, 47, 228, 14, 134, 47, 228, 14, 149, 47, 228, 14, 169, 47, 228, 14, + 175, 47, 228, 14, 171, 47, 228, 14, 178, 47, 228, 14, 199, 95, 47, 228, + 14, 215, 205, 47, 228, 14, 232, 243, 47, 228, 14, 193, 143, 47, 228, 14, + 193, 28, 47, 228, 14, 216, 165, 47, 228, 14, 234, 207, 47, 228, 14, 200, + 198, 47, 228, 14, 201, 66, 47, 228, 14, 229, 255, 47, 228, 14, 202, 35, + 47, 228, 14, 214, 227, 47, 228, 14, 201, 231, 47, 228, 14, 232, 254, 47, + 228, 14, 239, 50, 47, 228, 14, 220, 114, 47, 228, 14, 205, 55, 47, 228, + 14, 217, 96, 47, 228, 14, 233, 41, 47, 228, 14, 200, 210, 47, 228, 14, + 233, 220, 47, 228, 14, 208, 211, 47, 228, 14, 250, 167, 47, 228, 14, 223, + 52, 47, 228, 14, 207, 30, 47, 228, 14, 239, 8, 47, 228, 14, 238, 251, 47, + 228, 14, 229, 135, 47, 228, 14, 247, 21, 47, 228, 14, 218, 241, 47, 228, + 14, 219, 224, 47, 228, 14, 183, 47, 228, 14, 216, 215, 47, 228, 14, 207, + 60, 47, 228, 14, 201, 10, 47, 228, 14, 200, 178, 47, 228, 14, 234, 75, + 47, 228, 14, 207, 32, 47, 228, 14, 251, 168, 47, 228, 14, 213, 190, 47, + 31, 198, 250, 169, 47, 31, 198, 250, 175, 47, 31, 198, 250, 171, 47, 31, + 198, 250, 178, 47, 31, 232, 135, 47, 31, 232, 136, 107, 47, 31, 232, 136, + 109, 47, 31, 232, 136, 138, 47, 31, 232, 136, 134, 47, 31, 232, 136, 149, + 47, 31, 232, 136, 169, 47, 31, 232, 136, 175, 47, 31, 232, 136, 171, 47, + 31, 232, 136, 178, 47, 31, 233, 15, 154, 199, 109, 16, 40, 223, 21, 154, + 199, 109, 16, 40, 233, 53, 154, 199, 109, 16, 40, 217, 58, 154, 199, 109, + 16, 40, 251, 39, 154, 199, 109, 16, 40, 217, 21, 154, 199, 109, 16, 40, + 222, 175, 154, 199, 109, 16, 40, 222, 176, 154, 199, 109, 16, 40, 250, + 159, 154, 199, 109, 16, 40, 204, 9, 154, 199, 109, 16, 40, 211, 157, 154, + 199, 109, 16, 40, 212, 255, 154, 199, 109, 16, 40, 237, 140, 51, 229, + 178, 51, 234, 30, 51, 233, 230, 219, 118, 219, 145, 56, 47, 72, 65, 47, + 72, 68, 47, 72, 66, 47, 72, 71, 47, 72, 74, 47, 72, 155, 47, 72, 221, + 166, 47, 72, 220, 232, 47, 72, 222, 22, 47, 72, 221, 67, 47, 72, 188, 47, + 72, 202, 222, 47, 72, 201, 4, 47, 72, 205, 68, 47, 72, 202, 46, 47, 72, + 190, 190, 47, 72, 198, 193, 47, 72, 197, 94, 47, 72, 199, 145, 47, 72, + 159, 47, 72, 180, 47, 72, 213, 219, 47, 72, 212, 178, 47, 72, 214, 121, + 47, 72, 213, 43, 47, 72, 140, 47, 72, 229, 158, 47, 72, 228, 159, 47, 72, + 229, 245, 47, 72, 229, 23, 47, 72, 174, 47, 72, 216, 100, 47, 72, 215, + 155, 47, 72, 216, 232, 47, 72, 216, 12, 47, 72, 170, 47, 72, 191, 225, + 47, 72, 192, 12, 47, 72, 165, 47, 72, 207, 1, 47, 72, 206, 68, 47, 72, + 207, 113, 47, 72, 206, 162, 47, 72, 193, 190, 47, 72, 193, 86, 47, 72, + 193, 125, 47, 72, 193, 48, 51, 234, 33, 214, 228, 207, 68, 51, 251, 64, + 51, 250, 221, 51, 251, 92, 51, 252, 163, 51, 223, 130, 51, 223, 97, 51, + 196, 80, 51, 234, 2, 51, 234, 185, 51, 211, 90, 51, 211, 83, 51, 222, + 100, 51, 222, 63, 51, 222, 58, 51, 231, 195, 51, 231, 205, 51, 231, 41, + 51, 231, 35, 51, 220, 144, 51, 231, 26, 51, 221, 131, 51, 221, 130, 51, + 221, 129, 51, 221, 128, 51, 230, 146, 51, 230, 145, 51, 220, 193, 51, + 220, 196, 51, 222, 9, 51, 221, 29, 51, 221, 38, 51, 205, 180, 51, 205, + 133, 51, 202, 141, 51, 204, 15, 51, 204, 14, 51, 238, 28, 51, 237, 81, + 51, 236, 141, 51, 198, 81, 51, 214, 221, 51, 213, 0, 51, 230, 75, 51, + 210, 214, 51, 210, 213, 51, 249, 150, 51, 209, 181, 51, 209, 143, 51, + 209, 144, 51, 248, 156, 51, 228, 154, 51, 228, 148, 51, 247, 221, 51, + 228, 132, 51, 229, 206, 51, 209, 241, 51, 210, 29, 51, 229, 187, 51, 210, + 25, 51, 210, 43, 51, 248, 252, 51, 209, 57, 51, 248, 84, 51, 228, 255, + 51, 209, 38, 51, 228, 246, 51, 228, 248, 51, 217, 110, 51, 217, 106, 51, + 217, 115, 51, 217, 44, 51, 217, 76, 51, 216, 56, 51, 216, 29, 51, 216, + 28, 51, 216, 203, 51, 216, 200, 51, 216, 204, 51, 192, 139, 51, 192, 137, + 51, 191, 210, 51, 206, 178, 51, 206, 182, 51, 206, 35, 51, 206, 28, 51, + 207, 57, 51, 207, 54, 51, 193, 141, 154, 199, 109, 16, 40, 228, 177, 191, + 77, 154, 199, 109, 16, 40, 228, 177, 107, 154, 199, 109, 16, 40, 228, + 177, 109, 154, 199, 109, 16, 40, 228, 177, 138, 154, 199, 109, 16, 40, + 228, 177, 134, 154, 199, 109, 16, 40, 228, 177, 149, 154, 199, 109, 16, + 40, 228, 177, 169, 154, 199, 109, 16, 40, 228, 177, 175, 154, 199, 109, + 16, 40, 228, 177, 171, 154, 199, 109, 16, 40, 228, 177, 178, 154, 199, + 109, 16, 40, 228, 177, 199, 95, 154, 199, 109, 16, 40, 228, 177, 234, + 127, 154, 199, 109, 16, 40, 228, 177, 197, 37, 154, 199, 109, 16, 40, + 228, 177, 198, 251, 154, 199, 109, 16, 40, 228, 177, 232, 122, 154, 199, + 109, 16, 40, 228, 177, 233, 19, 154, 199, 109, 16, 40, 228, 177, 202, + 130, 154, 199, 109, 16, 40, 228, 177, 203, 244, 154, 199, 109, 16, 40, + 228, 177, 234, 161, 154, 199, 109, 16, 40, 228, 177, 213, 171, 154, 199, + 109, 16, 40, 228, 177, 197, 32, 154, 199, 109, 16, 40, 228, 177, 197, 25, + 154, 199, 109, 16, 40, 228, 177, 197, 20, 154, 199, 109, 16, 40, 228, + 177, 197, 22, 154, 199, 109, 16, 40, 228, 177, 197, 27, 51, 228, 168, 51, + 238, 32, 51, 250, 163, 51, 164, 51, 211, 9, 51, 210, 68, 51, 236, 177, + 51, 236, 178, 201, 189, 51, 236, 178, 238, 189, 51, 223, 49, 51, 234, 33, + 214, 228, 229, 207, 51, 234, 33, 214, 228, 200, 66, 51, 234, 33, 214, + 228, 199, 212, 51, 234, 33, 214, 228, 216, 199, 51, 238, 253, 51, 210, + 221, 251, 135, 51, 180, 51, 215, 156, 65, 51, 174, 51, 155, 51, 222, 25, + 51, 217, 16, 51, 231, 183, 51, 247, 144, 51, 222, 24, 51, 209, 231, 51, + 214, 72, 51, 215, 156, 233, 175, 51, 215, 156, 232, 51, 51, 216, 141, 51, + 221, 217, 51, 228, 83, 51, 221, 168, 51, 216, 102, 51, 231, 55, 51, 198, + 195, 51, 215, 156, 172, 51, 216, 20, 51, 236, 187, 51, 221, 95, 51, 232, + 177, 51, 213, 81, 51, 215, 156, 218, 168, 51, 216, 17, 51, 242, 199, 51, + 221, 81, 51, 216, 18, 201, 189, 51, 242, 200, 201, 189, 51, 218, 169, + 201, 189, 51, 221, 82, 201, 189, 51, 216, 18, 238, 189, 51, 242, 200, + 238, 189, 51, 218, 169, 238, 189, 51, 221, 82, 238, 189, 51, 218, 169, + 139, 206, 8, 51, 218, 169, 139, 206, 9, 201, 189, 51, 168, 51, 221, 21, + 51, 215, 166, 51, 230, 229, 51, 207, 168, 51, 207, 169, 139, 206, 8, 51, + 207, 169, 139, 206, 9, 201, 189, 51, 208, 178, 51, 212, 219, 51, 215, + 156, 206, 8, 51, 215, 158, 51, 208, 124, 51, 212, 112, 51, 215, 156, 196, + 12, 51, 215, 87, 51, 220, 182, 51, 215, 88, 216, 203, 51, 208, 123, 51, + 212, 111, 51, 215, 156, 193, 224, 51, 215, 81, 51, 220, 180, 51, 215, 82, + 216, 203, 51, 222, 153, 211, 134, 51, 218, 169, 211, 134, 51, 251, 149, + 51, 248, 57, 51, 247, 66, 51, 247, 43, 51, 247, 194, 139, 221, 217, 51, + 242, 99, 51, 237, 200, 51, 230, 129, 51, 140, 51, 228, 169, 51, 223, 162, + 51, 221, 102, 51, 221, 82, 247, 110, 51, 220, 234, 51, 219, 46, 51, 219, + 45, 51, 219, 30, 51, 218, 184, 51, 217, 17, 202, 70, 51, 216, 55, 51, + 215, 233, 51, 209, 229, 51, 209, 76, 51, 208, 249, 51, 208, 247, 51, 201, + 180, 51, 200, 158, 51, 193, 127, 51, 196, 13, 139, 218, 168, 51, 42, 139, + 218, 168, 154, 199, 109, 16, 40, 237, 204, 107, 154, 199, 109, 16, 40, + 237, 204, 109, 154, 199, 109, 16, 40, 237, 204, 138, 154, 199, 109, 16, + 40, 237, 204, 134, 154, 199, 109, 16, 40, 237, 204, 149, 154, 199, 109, + 16, 40, 237, 204, 169, 154, 199, 109, 16, 40, 237, 204, 175, 154, 199, + 109, 16, 40, 237, 204, 171, 154, 199, 109, 16, 40, 237, 204, 178, 154, + 199, 109, 16, 40, 237, 204, 199, 95, 154, 199, 109, 16, 40, 237, 204, + 234, 127, 154, 199, 109, 16, 40, 237, 204, 197, 37, 154, 199, 109, 16, + 40, 237, 204, 198, 251, 154, 199, 109, 16, 40, 237, 204, 232, 122, 154, + 199, 109, 16, 40, 237, 204, 233, 19, 154, 199, 109, 16, 40, 237, 204, + 202, 130, 154, 199, 109, 16, 40, 237, 204, 203, 244, 154, 199, 109, 16, + 40, 237, 204, 234, 161, 154, 199, 109, 16, 40, 237, 204, 213, 171, 154, + 199, 109, 16, 40, 237, 204, 197, 32, 154, 199, 109, 16, 40, 237, 204, + 197, 25, 154, 199, 109, 16, 40, 237, 204, 197, 20, 154, 199, 109, 16, 40, + 237, 204, 197, 22, 154, 199, 109, 16, 40, 237, 204, 197, 27, 154, 199, + 109, 16, 40, 237, 204, 197, 28, 154, 199, 109, 16, 40, 237, 204, 197, 23, + 154, 199, 109, 16, 40, 237, 204, 197, 24, 154, 199, 109, 16, 40, 237, + 204, 197, 31, 154, 199, 109, 16, 40, 237, 204, 197, 26, 154, 199, 109, + 16, 40, 237, 204, 198, 249, 154, 199, 109, 16, 40, 237, 204, 198, 247, + 51, 231, 222, 229, 181, 40, 199, 34, 238, 231, 229, 219, 229, 181, 40, + 199, 34, 207, 100, 234, 207, 229, 181, 40, 237, 14, 250, 183, 199, 34, + 248, 247, 229, 181, 40, 191, 238, 232, 168, 229, 181, 40, 193, 171, 229, + 181, 40, 239, 53, 229, 181, 40, 199, 34, 250, 246, 229, 181, 40, 229, 6, + 198, 87, 229, 181, 40, 2, 199, 194, 229, 181, 40, 198, 1, 229, 181, 40, + 210, 60, 229, 181, 40, 201, 104, 229, 181, 40, 233, 43, 229, 181, 40, + 230, 206, 209, 21, 229, 181, 40, 215, 254, 229, 181, 40, 234, 74, 229, + 181, 40, 232, 169, 229, 181, 40, 193, 21, 211, 105, 199, 34, 237, 141, + 229, 181, 40, 251, 43, 229, 181, 40, 239, 31, 229, 181, 40, 248, 145, + 198, 215, 229, 181, 40, 230, 227, 229, 181, 40, 201, 208, 251, 63, 229, + 181, 40, 207, 22, 229, 181, 40, 223, 124, 229, 181, 40, 230, 206, 199, + 194, 229, 181, 40, 215, 180, 239, 0, 229, 181, 40, 230, 206, 208, 224, + 229, 181, 40, 199, 34, 252, 65, 193, 143, 229, 181, 40, 199, 34, 242, + 227, 232, 243, 229, 181, 40, 223, 138, 229, 181, 40, 235, 64, 229, 181, + 40, 207, 25, 229, 181, 40, 230, 206, 208, 254, 229, 181, 40, 208, 197, + 229, 181, 40, 237, 220, 79, 199, 34, 219, 132, 229, 181, 40, 199, 34, + 233, 81, 229, 181, 40, 211, 62, 229, 181, 40, 211, 167, 229, 181, 40, + 237, 111, 229, 181, 40, 237, 133, 229, 181, 40, 223, 153, 229, 181, 40, + 248, 41, 229, 181, 40, 242, 76, 119, 216, 206, 229, 181, 40, 231, 190, + 198, 87, 229, 181, 40, 208, 135, 196, 67, 229, 181, 40, 211, 61, 229, + 181, 40, 199, 34, 193, 109, 229, 181, 40, 207, 13, 229, 181, 40, 199, 34, + 247, 72, 229, 181, 40, 199, 34, 250, 242, 198, 209, 229, 181, 40, 199, + 34, 222, 10, 201, 70, 215, 184, 229, 181, 40, 237, 76, 229, 181, 40, 199, + 34, 217, 47, 217, 111, 229, 181, 40, 252, 66, 229, 181, 40, 199, 34, 193, + 161, 229, 181, 40, 199, 34, 231, 145, 193, 66, 229, 181, 40, 199, 34, + 222, 184, 220, 43, 229, 181, 40, 236, 219, 229, 181, 40, 219, 119, 229, + 181, 40, 223, 127, 197, 176, 229, 181, 40, 2, 208, 224, 229, 181, 40, + 251, 254, 242, 66, 229, 181, 40, 248, 250, 242, 66, 11, 5, 223, 53, 11, + 5, 223, 45, 11, 5, 68, 11, 5, 223, 80, 11, 5, 223, 224, 11, 5, 223, 207, + 11, 5, 223, 226, 11, 5, 223, 225, 11, 5, 250, 182, 11, 5, 250, 133, 11, + 5, 65, 11, 5, 251, 65, 11, 5, 196, 78, 11, 5, 196, 82, 11, 5, 196, 79, + 11, 5, 211, 30, 11, 5, 210, 247, 11, 5, 74, 11, 5, 211, 78, 11, 5, 233, + 221, 11, 5, 71, 11, 5, 193, 0, 11, 5, 248, 148, 11, 5, 248, 143, 11, 5, + 248, 188, 11, 5, 248, 161, 11, 5, 248, 177, 11, 5, 248, 176, 11, 5, 248, + 179, 11, 5, 248, 178, 11, 5, 249, 64, 11, 5, 249, 56, 11, 5, 249, 153, + 11, 5, 249, 89, 11, 5, 247, 234, 11, 5, 247, 238, 11, 5, 247, 235, 11, 5, + 248, 81, 11, 5, 248, 62, 11, 5, 248, 111, 11, 5, 248, 89, 11, 5, 248, + 206, 11, 5, 249, 17, 11, 5, 248, 219, 11, 5, 247, 217, 11, 5, 247, 211, + 11, 5, 248, 10, 11, 5, 247, 232, 11, 5, 247, 225, 11, 5, 247, 230, 11, 5, + 247, 199, 11, 5, 247, 197, 11, 5, 247, 204, 11, 5, 247, 202, 11, 5, 247, + 200, 11, 5, 247, 201, 11, 5, 209, 117, 11, 5, 209, 113, 11, 5, 209, 185, + 11, 5, 209, 129, 11, 5, 209, 149, 11, 5, 209, 176, 11, 5, 209, 172, 11, + 5, 210, 89, 11, 5, 210, 73, 11, 5, 168, 11, 5, 210, 137, 11, 5, 208, 145, + 11, 5, 208, 147, 11, 5, 208, 146, 11, 5, 209, 14, 11, 5, 208, 252, 11, 5, + 209, 73, 11, 5, 209, 33, 11, 5, 208, 131, 11, 5, 208, 126, 11, 5, 208, + 165, 11, 5, 208, 144, 11, 5, 208, 136, 11, 5, 208, 142, 11, 5, 208, 108, + 11, 5, 208, 107, 11, 5, 208, 112, 11, 5, 208, 111, 11, 5, 208, 109, 11, + 5, 208, 110, 11, 5, 249, 38, 11, 5, 249, 37, 11, 5, 249, 44, 11, 5, 249, + 39, 11, 5, 249, 41, 11, 5, 249, 40, 11, 5, 249, 43, 11, 5, 249, 42, 11, + 5, 249, 50, 11, 5, 249, 49, 11, 5, 249, 53, 11, 5, 249, 51, 11, 5, 249, + 29, 11, 5, 249, 31, 11, 5, 249, 30, 11, 5, 249, 34, 11, 5, 249, 33, 11, + 5, 249, 36, 11, 5, 249, 35, 11, 5, 249, 45, 11, 5, 249, 48, 11, 5, 249, + 46, 11, 5, 249, 25, 11, 5, 249, 24, 11, 5, 249, 32, 11, 5, 249, 28, 11, + 5, 249, 26, 11, 5, 249, 27, 11, 5, 249, 21, 11, 5, 249, 20, 11, 5, 249, + 23, 11, 5, 249, 22, 11, 5, 214, 185, 11, 5, 214, 184, 11, 5, 214, 190, + 11, 5, 214, 186, 11, 5, 214, 187, 11, 5, 214, 189, 11, 5, 214, 188, 11, + 5, 214, 193, 11, 5, 214, 192, 11, 5, 214, 195, 11, 5, 214, 194, 11, 5, + 214, 181, 11, 5, 214, 180, 11, 5, 214, 183, 11, 5, 214, 182, 11, 5, 214, + 174, 11, 5, 214, 173, 11, 5, 214, 178, 11, 5, 214, 177, 11, 5, 214, 175, + 11, 5, 214, 176, 11, 5, 214, 168, 11, 5, 214, 167, 11, 5, 214, 172, 11, + 5, 214, 171, 11, 5, 214, 169, 11, 5, 214, 170, 11, 5, 229, 67, 11, 5, + 229, 66, 11, 5, 229, 72, 11, 5, 229, 68, 11, 5, 229, 69, 11, 5, 229, 71, + 11, 5, 229, 70, 11, 5, 229, 75, 11, 5, 229, 74, 11, 5, 229, 77, 11, 5, + 229, 76, 11, 5, 229, 58, 11, 5, 229, 60, 11, 5, 229, 59, 11, 5, 229, 63, + 11, 5, 229, 62, 11, 5, 229, 65, 11, 5, 229, 64, 11, 5, 229, 54, 11, 5, + 229, 53, 11, 5, 229, 61, 11, 5, 229, 57, 11, 5, 229, 55, 11, 5, 229, 56, + 11, 5, 229, 48, 11, 5, 229, 52, 11, 5, 229, 51, 11, 5, 229, 49, 11, 5, + 229, 50, 11, 5, 216, 23, 11, 5, 216, 22, 11, 5, 216, 100, 11, 5, 216, 31, + 11, 5, 216, 63, 11, 5, 216, 81, 11, 5, 216, 79, 11, 5, 217, 30, 11, 5, + 217, 24, 11, 5, 174, 11, 5, 217, 71, 11, 5, 215, 115, 11, 5, 215, 114, + 11, 5, 215, 118, 11, 5, 215, 116, 11, 5, 215, 195, 11, 5, 215, 168, 11, + 5, 216, 12, 11, 5, 215, 202, 11, 5, 216, 152, 11, 5, 216, 232, 11, 5, + 215, 95, 11, 5, 215, 89, 11, 5, 215, 155, 11, 5, 215, 111, 11, 5, 215, + 104, 11, 5, 215, 109, 11, 5, 215, 65, 11, 5, 215, 64, 11, 5, 215, 70, 11, + 5, 215, 67, 11, 5, 232, 229, 11, 5, 232, 222, 11, 5, 233, 23, 11, 5, 232, + 245, 11, 5, 233, 72, 11, 5, 233, 63, 11, 5, 233, 109, 11, 5, 233, 77, 11, + 5, 232, 119, 11, 5, 232, 175, 11, 5, 232, 154, 11, 5, 232, 68, 11, 5, + 232, 67, 11, 5, 232, 86, 11, 5, 232, 73, 11, 5, 232, 71, 11, 5, 232, 72, + 11, 5, 232, 54, 11, 5, 232, 53, 11, 5, 232, 57, 11, 5, 232, 55, 11, 5, + 195, 32, 11, 5, 195, 26, 11, 5, 195, 69, 11, 5, 195, 41, 11, 5, 195, 58, + 11, 5, 195, 53, 11, 5, 195, 61, 11, 5, 195, 60, 11, 5, 195, 162, 11, 5, + 195, 157, 11, 5, 195, 188, 11, 5, 195, 175, 11, 5, 195, 4, 11, 5, 195, 0, + 11, 5, 195, 24, 11, 5, 195, 6, 11, 5, 195, 73, 11, 5, 195, 141, 11, 5, + 193, 242, 11, 5, 193, 240, 11, 5, 193, 249, 11, 5, 193, 245, 11, 5, 193, + 243, 11, 5, 193, 244, 11, 5, 193, 229, 11, 5, 193, 228, 11, 5, 193, 235, + 11, 5, 193, 234, 11, 5, 193, 232, 11, 5, 193, 233, 11, 5, 236, 212, 11, + 5, 236, 197, 11, 5, 237, 44, 11, 5, 236, 240, 11, 5, 237, 19, 11, 5, 237, + 24, 11, 5, 237, 23, 11, 5, 237, 211, 11, 5, 237, 205, 11, 5, 238, 32, 11, + 5, 237, 231, 11, 5, 235, 69, 11, 5, 235, 70, 11, 5, 236, 140, 11, 5, 235, + 117, 11, 5, 236, 174, 11, 5, 236, 143, 11, 5, 237, 74, 11, 5, 237, 146, + 11, 5, 237, 96, 11, 5, 235, 60, 11, 5, 235, 58, 11, 5, 235, 89, 11, 5, + 235, 68, 11, 5, 235, 63, 11, 5, 235, 66, 11, 5, 198, 125, 11, 5, 198, + 117, 11, 5, 198, 193, 11, 5, 198, 135, 11, 5, 198, 176, 11, 5, 198, 178, + 11, 5, 198, 177, 11, 5, 199, 171, 11, 5, 199, 156, 11, 5, 190, 190, 11, + 5, 199, 183, 11, 5, 197, 69, 11, 5, 197, 68, 11, 5, 197, 71, 11, 5, 197, + 70, 11, 5, 198, 40, 11, 5, 198, 29, 11, 5, 159, 11, 5, 198, 53, 11, 5, + 199, 55, 11, 5, 199, 145, 11, 5, 199, 82, 11, 5, 197, 52, 11, 5, 197, 47, + 11, 5, 197, 94, 11, 5, 197, 67, 11, 5, 197, 53, 11, 5, 197, 64, 11, 5, + 237, 163, 11, 5, 237, 162, 11, 5, 237, 168, 11, 5, 237, 164, 11, 5, 237, + 165, 11, 5, 237, 167, 11, 5, 237, 166, 11, 5, 237, 184, 11, 5, 237, 183, + 11, 5, 237, 191, 11, 5, 237, 185, 11, 5, 237, 153, 11, 5, 237, 155, 11, + 5, 237, 154, 11, 5, 237, 158, 11, 5, 237, 157, 11, 5, 237, 161, 11, 5, + 237, 159, 11, 5, 237, 176, 11, 5, 237, 179, 11, 5, 237, 177, 11, 5, 237, + 149, 11, 5, 237, 148, 11, 5, 237, 156, 11, 5, 237, 152, 11, 5, 237, 150, + 11, 5, 237, 151, 11, 5, 214, 140, 11, 5, 214, 139, 11, 5, 214, 147, 11, + 5, 214, 142, 11, 5, 214, 143, 11, 5, 214, 144, 11, 5, 214, 156, 11, 5, + 214, 155, 11, 5, 214, 162, 11, 5, 214, 157, 11, 5, 214, 132, 11, 5, 214, + 131, 11, 5, 214, 138, 11, 5, 214, 133, 11, 5, 214, 148, 11, 5, 214, 154, + 11, 5, 214, 152, 11, 5, 214, 124, 11, 5, 214, 123, 11, 5, 214, 129, 11, + 5, 214, 127, 11, 5, 214, 125, 11, 5, 214, 126, 11, 5, 229, 33, 11, 5, + 229, 32, 11, 5, 229, 39, 11, 5, 229, 34, 11, 5, 229, 36, 11, 5, 229, 35, + 11, 5, 229, 38, 11, 5, 229, 37, 11, 5, 229, 45, 11, 5, 229, 43, 11, 5, + 229, 47, 11, 5, 229, 46, 11, 5, 229, 26, 11, 5, 229, 27, 11, 5, 229, 30, + 11, 5, 229, 29, 11, 5, 229, 31, 11, 5, 229, 40, 11, 5, 229, 42, 11, 5, + 229, 41, 11, 5, 229, 25, 11, 5, 213, 162, 11, 5, 213, 160, 11, 5, 213, + 219, 11, 5, 213, 165, 11, 5, 213, 193, 11, 5, 213, 207, 11, 5, 213, 206, + 11, 5, 214, 200, 11, 5, 180, 11, 5, 214, 218, 11, 5, 212, 122, 11, 5, + 212, 124, 11, 5, 212, 123, 11, 5, 213, 11, 11, 5, 212, 251, 11, 5, 213, + 43, 11, 5, 213, 22, 11, 5, 214, 74, 11, 5, 214, 121, 11, 5, 214, 97, 11, + 5, 212, 117, 11, 5, 212, 113, 11, 5, 212, 178, 11, 5, 212, 121, 11, 5, + 212, 119, 11, 5, 212, 120, 11, 5, 229, 98, 11, 5, 229, 97, 11, 5, 229, + 103, 11, 5, 229, 99, 11, 5, 229, 100, 11, 5, 229, 102, 11, 5, 229, 101, + 11, 5, 229, 109, 11, 5, 229, 107, 11, 5, 229, 111, 11, 5, 229, 110, 11, + 5, 229, 90, 11, 5, 229, 92, 11, 5, 229, 91, 11, 5, 229, 94, 11, 5, 229, + 96, 11, 5, 229, 95, 11, 5, 229, 104, 11, 5, 229, 106, 11, 5, 229, 105, + 11, 5, 229, 86, 11, 5, 229, 85, 11, 5, 229, 93, 11, 5, 229, 89, 11, 5, + 229, 87, 11, 5, 229, 88, 11, 5, 229, 80, 11, 5, 229, 79, 11, 5, 229, 84, + 11, 5, 229, 83, 11, 5, 229, 81, 11, 5, 229, 82, 11, 5, 219, 87, 11, 5, + 219, 79, 11, 5, 219, 146, 11, 5, 219, 98, 11, 5, 219, 137, 11, 5, 219, + 136, 11, 5, 219, 140, 11, 5, 219, 138, 11, 5, 220, 5, 11, 5, 219, 249, + 11, 5, 173, 11, 5, 220, 16, 11, 5, 218, 201, 11, 5, 218, 200, 11, 5, 218, + 203, 11, 5, 218, 202, 11, 5, 218, 249, 11, 5, 218, 234, 11, 5, 219, 43, + 11, 5, 219, 1, 11, 5, 219, 164, 11, 5, 219, 238, 11, 5, 219, 184, 11, 5, + 218, 195, 11, 5, 218, 193, 11, 5, 218, 225, 11, 5, 218, 199, 11, 5, 218, + 197, 11, 5, 218, 198, 11, 5, 218, 173, 11, 5, 218, 172, 11, 5, 218, 183, + 11, 5, 218, 176, 11, 5, 218, 174, 11, 5, 218, 175, 11, 5, 231, 22, 11, 5, + 231, 21, 11, 5, 231, 53, 11, 5, 231, 34, 11, 5, 231, 45, 11, 5, 231, 44, + 11, 5, 231, 47, 11, 5, 231, 46, 11, 5, 231, 192, 11, 5, 231, 187, 11, 5, + 231, 240, 11, 5, 231, 203, 11, 5, 230, 152, 11, 5, 230, 151, 11, 5, 230, + 154, 11, 5, 230, 153, 11, 5, 230, 232, 11, 5, 230, 230, 11, 5, 231, 3, + 11, 5, 230, 242, 11, 5, 231, 131, 11, 5, 231, 129, 11, 5, 231, 165, 11, + 5, 231, 142, 11, 5, 230, 140, 11, 5, 230, 139, 11, 5, 230, 179, 11, 5, + 230, 150, 11, 5, 230, 141, 11, 5, 230, 149, 11, 5, 221, 120, 11, 5, 221, + 115, 11, 5, 221, 166, 11, 5, 221, 134, 11, 5, 221, 147, 11, 5, 221, 151, + 11, 5, 221, 149, 11, 5, 222, 49, 11, 5, 222, 30, 11, 5, 155, 11, 5, 222, + 78, 11, 5, 220, 202, 11, 5, 220, 207, 11, 5, 220, 204, 11, 5, 221, 28, + 11, 5, 221, 23, 11, 5, 221, 67, 11, 5, 221, 36, 11, 5, 221, 241, 11, 5, + 221, 224, 11, 5, 222, 22, 11, 5, 221, 245, 11, 5, 220, 188, 11, 5, 220, + 184, 11, 5, 220, 232, 11, 5, 220, 201, 11, 5, 220, 192, 11, 5, 220, 197, + 11, 5, 231, 113, 11, 5, 231, 112, 11, 5, 231, 117, 11, 5, 231, 114, 11, + 5, 231, 116, 11, 5, 231, 115, 11, 5, 231, 124, 11, 5, 231, 123, 11, 5, + 231, 127, 11, 5, 231, 125, 11, 5, 231, 104, 11, 5, 231, 103, 11, 5, 231, + 106, 11, 5, 231, 105, 11, 5, 231, 109, 11, 5, 231, 108, 11, 5, 231, 111, + 11, 5, 231, 110, 11, 5, 231, 119, 11, 5, 231, 118, 11, 5, 231, 122, 11, + 5, 231, 120, 11, 5, 231, 99, 11, 5, 231, 98, 11, 5, 231, 107, 11, 5, 231, + 102, 11, 5, 231, 100, 11, 5, 231, 101, 11, 5, 216, 119, 11, 5, 216, 120, + 11, 5, 216, 138, 11, 5, 216, 137, 11, 5, 216, 140, 11, 5, 216, 139, 11, + 5, 216, 110, 11, 5, 216, 112, 11, 5, 216, 111, 11, 5, 216, 115, 11, 5, + 216, 114, 11, 5, 216, 117, 11, 5, 216, 116, 11, 5, 216, 121, 11, 5, 216, + 123, 11, 5, 216, 122, 11, 5, 216, 106, 11, 5, 216, 105, 11, 5, 216, 113, + 11, 5, 216, 109, 11, 5, 216, 107, 11, 5, 216, 108, 11, 5, 228, 104, 11, + 5, 228, 103, 11, 5, 228, 110, 11, 5, 228, 105, 11, 5, 228, 107, 11, 5, + 228, 106, 11, 5, 228, 109, 11, 5, 228, 108, 11, 5, 228, 115, 11, 5, 228, + 114, 11, 5, 228, 117, 11, 5, 228, 116, 11, 5, 228, 96, 11, 5, 228, 95, + 11, 5, 228, 98, 11, 5, 228, 97, 11, 5, 228, 100, 11, 5, 228, 99, 11, 5, + 228, 102, 11, 5, 228, 101, 11, 5, 228, 111, 11, 5, 228, 113, 11, 5, 228, + 112, 11, 5, 214, 13, 11, 5, 214, 15, 11, 5, 214, 14, 11, 5, 214, 58, 11, + 5, 214, 56, 11, 5, 214, 68, 11, 5, 214, 61, 11, 5, 213, 230, 11, 5, 213, + 229, 11, 5, 213, 231, 11, 5, 213, 241, 11, 5, 213, 238, 11, 5, 213, 249, + 11, 5, 213, 243, 11, 5, 214, 49, 11, 5, 214, 55, 11, 5, 214, 51, 11, 5, + 229, 117, 11, 5, 229, 136, 11, 5, 229, 145, 11, 5, 230, 9, 11, 5, 229, + 253, 11, 5, 140, 11, 5, 230, 21, 11, 5, 228, 134, 11, 5, 228, 133, 11, 5, + 228, 136, 11, 5, 228, 135, 11, 5, 228, 180, 11, 5, 228, 171, 11, 5, 229, + 23, 11, 5, 228, 244, 11, 5, 229, 183, 11, 5, 229, 245, 11, 5, 229, 195, + 11, 5, 193, 146, 11, 5, 193, 131, 11, 5, 193, 190, 11, 5, 193, 158, 11, + 5, 192, 245, 11, 5, 192, 247, 11, 5, 192, 246, 11, 5, 193, 13, 11, 5, + 193, 48, 11, 5, 193, 24, 11, 5, 193, 99, 11, 5, 193, 125, 11, 5, 193, + 106, 11, 5, 191, 15, 11, 5, 191, 14, 11, 5, 191, 30, 11, 5, 191, 18, 11, + 5, 191, 23, 11, 5, 191, 25, 11, 5, 191, 24, 11, 5, 191, 96, 11, 5, 191, + 93, 11, 5, 191, 123, 11, 5, 191, 104, 11, 5, 190, 244, 11, 5, 190, 246, + 11, 5, 190, 245, 11, 5, 191, 2, 11, 5, 191, 1, 11, 5, 191, 7, 11, 5, 191, + 3, 11, 5, 191, 73, 11, 5, 191, 87, 11, 5, 191, 79, 11, 5, 190, 240, 11, + 5, 190, 239, 11, 5, 190, 251, 11, 5, 190, 243, 11, 5, 190, 241, 11, 5, + 190, 242, 11, 5, 190, 226, 11, 5, 190, 225, 11, 5, 190, 231, 11, 5, 190, + 229, 11, 5, 190, 227, 11, 5, 190, 228, 11, 5, 242, 255, 11, 5, 242, 248, + 11, 5, 243, 29, 11, 5, 243, 12, 11, 5, 243, 26, 11, 5, 243, 20, 11, 5, + 243, 28, 11, 5, 243, 27, 11, 5, 247, 78, 11, 5, 247, 69, 11, 5, 247, 160, + 11, 5, 247, 111, 11, 5, 238, 183, 11, 5, 238, 185, 11, 5, 238, 184, 11, + 5, 238, 249, 11, 5, 238, 237, 11, 5, 242, 99, 11, 5, 239, 13, 11, 5, 247, + 5, 11, 5, 247, 42, 11, 5, 247, 11, 11, 5, 238, 154, 11, 5, 238, 152, 11, + 5, 238, 195, 11, 5, 238, 181, 11, 5, 238, 160, 11, 5, 238, 176, 11, 5, + 238, 130, 11, 5, 238, 129, 11, 5, 238, 143, 11, 5, 238, 137, 11, 5, 238, + 131, 11, 5, 238, 133, 11, 5, 190, 209, 11, 5, 190, 208, 11, 5, 190, 215, + 11, 5, 190, 210, 11, 5, 190, 212, 11, 5, 190, 211, 11, 5, 190, 214, 11, + 5, 190, 213, 11, 5, 190, 221, 11, 5, 190, 220, 11, 5, 190, 224, 11, 5, + 190, 222, 11, 5, 190, 205, 11, 5, 190, 207, 11, 5, 190, 206, 11, 5, 190, + 216, 11, 5, 190, 219, 11, 5, 190, 217, 11, 5, 190, 198, 11, 5, 190, 202, + 11, 5, 190, 201, 11, 5, 190, 199, 11, 5, 190, 200, 11, 5, 190, 192, 11, + 5, 190, 191, 11, 5, 190, 197, 11, 5, 190, 195, 11, 5, 190, 193, 11, 5, + 190, 194, 11, 5, 212, 33, 11, 5, 212, 32, 11, 5, 212, 38, 11, 5, 212, 34, + 11, 5, 212, 35, 11, 5, 212, 37, 11, 5, 212, 36, 11, 5, 212, 43, 11, 5, + 212, 42, 11, 5, 212, 46, 11, 5, 212, 45, 11, 5, 212, 26, 11, 5, 212, 27, + 11, 5, 212, 30, 11, 5, 212, 31, 11, 5, 212, 39, 11, 5, 212, 41, 11, 5, + 212, 21, 11, 5, 212, 29, 11, 5, 212, 25, 11, 5, 212, 22, 11, 5, 212, 23, + 11, 5, 212, 16, 11, 5, 212, 15, 11, 5, 212, 20, 11, 5, 212, 19, 11, 5, + 212, 17, 11, 5, 212, 18, 11, 5, 202, 138, 11, 5, 169, 11, 5, 202, 222, + 11, 5, 202, 142, 11, 5, 202, 202, 11, 5, 202, 205, 11, 5, 202, 203, 11, + 5, 205, 122, 11, 5, 205, 106, 11, 5, 188, 11, 5, 205, 130, 11, 5, 200, + 188, 11, 5, 200, 190, 11, 5, 200, 189, 11, 5, 202, 8, 11, 5, 201, 253, + 11, 5, 202, 46, 11, 5, 202, 14, 11, 5, 203, 238, 11, 5, 205, 68, 11, 5, + 204, 13, 11, 5, 200, 163, 11, 5, 200, 159, 11, 5, 201, 4, 11, 5, 200, + 187, 11, 5, 200, 167, 11, 5, 200, 175, 11, 5, 200, 57, 11, 5, 200, 56, + 11, 5, 200, 127, 11, 5, 200, 65, 11, 5, 200, 59, 11, 5, 200, 64, 11, 5, + 201, 136, 11, 5, 201, 135, 11, 5, 201, 142, 11, 5, 201, 137, 11, 5, 201, + 139, 11, 5, 201, 141, 11, 5, 201, 140, 11, 5, 201, 151, 11, 5, 201, 149, + 11, 5, 201, 175, 11, 5, 201, 152, 11, 5, 201, 131, 11, 5, 201, 130, 11, + 5, 201, 134, 11, 5, 201, 132, 11, 5, 201, 145, 11, 5, 201, 148, 11, 5, + 201, 146, 11, 5, 201, 127, 11, 5, 201, 125, 11, 5, 201, 129, 11, 5, 201, + 128, 11, 5, 201, 120, 11, 5, 201, 119, 11, 5, 201, 124, 11, 5, 201, 123, + 11, 5, 201, 121, 11, 5, 201, 122, 11, 5, 191, 66, 11, 5, 191, 65, 11, 5, + 191, 71, 11, 5, 191, 68, 11, 5, 191, 45, 11, 5, 191, 47, 11, 5, 191, 46, + 11, 5, 191, 50, 11, 5, 191, 49, 11, 5, 191, 54, 11, 5, 191, 51, 11, 5, + 191, 59, 11, 5, 191, 58, 11, 5, 191, 62, 11, 5, 191, 60, 11, 5, 191, 41, + 11, 5, 191, 40, 11, 5, 191, 48, 11, 5, 191, 44, 11, 5, 191, 42, 11, 5, + 191, 43, 11, 5, 191, 33, 11, 5, 191, 32, 11, 5, 191, 37, 11, 5, 191, 36, + 11, 5, 191, 34, 11, 5, 191, 35, 11, 5, 243, 133, 11, 5, 243, 129, 11, 5, + 247, 1, 11, 5, 246, 243, 11, 5, 243, 44, 11, 5, 243, 43, 11, 5, 243, 46, + 11, 5, 243, 45, 11, 5, 243, 59, 11, 5, 243, 58, 11, 5, 243, 68, 11, 5, + 243, 63, 11, 5, 243, 102, 11, 5, 243, 99, 11, 5, 243, 127, 11, 5, 243, + 110, 11, 5, 243, 38, 11, 5, 243, 48, 11, 5, 243, 42, 11, 5, 243, 39, 11, + 5, 243, 41, 11, 5, 243, 31, 11, 5, 243, 30, 11, 5, 243, 35, 11, 5, 243, + 34, 11, 5, 243, 32, 11, 5, 243, 33, 11, 5, 206, 105, 11, 5, 206, 109, 11, + 5, 206, 87, 11, 5, 206, 88, 11, 5, 206, 92, 11, 5, 206, 91, 11, 5, 206, + 95, 11, 5, 206, 93, 11, 5, 206, 99, 11, 5, 206, 98, 11, 5, 206, 104, 11, + 5, 206, 100, 11, 5, 206, 83, 11, 5, 206, 81, 11, 5, 206, 89, 11, 5, 206, + 86, 11, 5, 206, 84, 11, 5, 206, 85, 11, 5, 206, 76, 11, 5, 206, 75, 11, + 5, 206, 80, 11, 5, 206, 79, 11, 5, 206, 77, 11, 5, 206, 78, 11, 5, 212, + 242, 11, 5, 212, 241, 11, 5, 212, 244, 11, 5, 212, 243, 11, 5, 212, 233, + 11, 5, 212, 235, 11, 5, 212, 234, 11, 5, 212, 237, 11, 5, 212, 236, 11, + 5, 212, 240, 11, 5, 212, 239, 11, 5, 212, 227, 11, 5, 212, 226, 11, 5, + 212, 232, 11, 5, 212, 230, 11, 5, 212, 228, 11, 5, 212, 229, 11, 5, 212, + 221, 11, 5, 212, 220, 11, 5, 212, 225, 11, 5, 212, 224, 11, 5, 212, 222, + 11, 5, 212, 223, 11, 5, 203, 123, 11, 5, 203, 118, 11, 5, 203, 165, 11, + 5, 203, 136, 11, 5, 202, 249, 11, 5, 202, 251, 11, 5, 202, 250, 11, 5, + 203, 24, 11, 5, 203, 19, 11, 5, 203, 56, 11, 5, 203, 44, 11, 5, 203, 91, + 11, 5, 203, 84, 11, 5, 203, 113, 11, 5, 203, 100, 11, 5, 202, 245, 11, 5, + 202, 242, 11, 5, 203, 5, 11, 5, 202, 248, 11, 5, 202, 246, 11, 5, 202, + 247, 11, 5, 202, 225, 11, 5, 202, 224, 11, 5, 202, 231, 11, 5, 202, 228, + 11, 5, 202, 226, 11, 5, 202, 227, 11, 5, 207, 130, 11, 5, 207, 123, 11, + 5, 165, 11, 5, 207, 136, 11, 5, 206, 38, 11, 5, 206, 40, 11, 5, 206, 39, + 11, 5, 206, 123, 11, 5, 206, 111, 11, 5, 206, 162, 11, 5, 206, 127, 11, + 5, 207, 11, 11, 5, 207, 113, 11, 5, 207, 53, 11, 5, 206, 30, 11, 5, 206, + 27, 11, 5, 206, 68, 11, 5, 206, 37, 11, 5, 206, 33, 11, 5, 206, 34, 11, + 5, 206, 12, 11, 5, 206, 11, 11, 5, 206, 17, 11, 5, 206, 15, 11, 5, 206, + 13, 11, 5, 206, 14, 11, 5, 222, 232, 11, 5, 222, 231, 11, 5, 222, 244, + 11, 5, 222, 233, 11, 5, 222, 240, 11, 5, 222, 239, 11, 5, 222, 242, 11, + 5, 222, 241, 11, 5, 222, 170, 11, 5, 222, 169, 11, 5, 222, 172, 11, 5, + 222, 171, 11, 5, 222, 188, 11, 5, 222, 186, 11, 5, 222, 201, 11, 5, 222, + 190, 11, 5, 222, 163, 11, 5, 222, 161, 11, 5, 222, 182, 11, 5, 222, 168, + 11, 5, 222, 165, 11, 5, 222, 166, 11, 5, 222, 155, 11, 5, 222, 154, 11, + 5, 222, 159, 11, 5, 222, 158, 11, 5, 222, 156, 11, 5, 222, 157, 11, 5, + 208, 49, 11, 5, 208, 47, 11, 5, 208, 57, 11, 5, 208, 50, 11, 5, 208, 54, + 11, 5, 208, 53, 11, 5, 208, 56, 11, 5, 208, 55, 11, 5, 207, 253, 11, 5, + 207, 250, 11, 5, 207, 255, 11, 5, 207, 254, 11, 5, 208, 36, 11, 5, 208, + 35, 11, 5, 208, 45, 11, 5, 208, 39, 11, 5, 207, 245, 11, 5, 207, 241, 11, + 5, 208, 33, 11, 5, 207, 249, 11, 5, 207, 247, 11, 5, 207, 248, 11, 5, + 207, 225, 11, 5, 207, 223, 11, 5, 207, 235, 11, 5, 207, 228, 11, 5, 207, + 226, 11, 5, 207, 227, 11, 5, 222, 221, 11, 5, 222, 220, 11, 5, 222, 227, + 11, 5, 222, 222, 11, 5, 222, 224, 11, 5, 222, 223, 11, 5, 222, 226, 11, + 5, 222, 225, 11, 5, 222, 212, 11, 5, 222, 214, 11, 5, 222, 213, 11, 5, + 222, 217, 11, 5, 222, 216, 11, 5, 222, 219, 11, 5, 222, 218, 11, 5, 222, + 208, 11, 5, 222, 207, 11, 5, 222, 215, 11, 5, 222, 211, 11, 5, 222, 209, + 11, 5, 222, 210, 11, 5, 222, 204, 11, 5, 222, 203, 11, 5, 222, 206, 11, + 5, 222, 205, 11, 5, 213, 134, 11, 5, 213, 133, 11, 5, 213, 141, 11, 5, + 213, 135, 11, 5, 213, 137, 11, 5, 213, 136, 11, 5, 213, 140, 11, 5, 213, + 138, 11, 5, 213, 123, 11, 5, 213, 124, 11, 5, 213, 129, 11, 5, 213, 128, + 11, 5, 213, 132, 11, 5, 213, 130, 11, 5, 213, 118, 11, 5, 213, 127, 11, + 5, 213, 122, 11, 5, 213, 119, 11, 5, 213, 120, 11, 5, 213, 113, 11, 5, + 213, 112, 11, 5, 213, 117, 11, 5, 213, 116, 11, 5, 213, 114, 11, 5, 213, + 115, 11, 5, 212, 68, 11, 5, 212, 67, 11, 5, 212, 81, 11, 5, 212, 72, 11, + 5, 212, 77, 11, 5, 212, 76, 11, 5, 212, 79, 11, 5, 212, 78, 11, 5, 212, + 53, 11, 5, 212, 55, 11, 5, 212, 54, 11, 5, 212, 60, 11, 5, 212, 59, 11, + 5, 212, 65, 11, 5, 212, 61, 11, 5, 212, 51, 11, 5, 212, 49, 11, 5, 212, + 58, 11, 5, 212, 52, 11, 5, 192, 198, 11, 5, 192, 197, 11, 5, 192, 207, + 11, 5, 192, 200, 11, 5, 192, 202, 11, 5, 192, 201, 11, 5, 192, 204, 11, + 5, 192, 203, 11, 5, 192, 186, 11, 5, 192, 187, 11, 5, 192, 191, 11, 5, + 192, 190, 11, 5, 192, 196, 11, 5, 192, 194, 11, 5, 192, 163, 11, 5, 192, + 161, 11, 5, 192, 176, 11, 5, 192, 166, 11, 5, 192, 164, 11, 5, 192, 165, + 11, 5, 192, 18, 11, 5, 192, 16, 11, 5, 192, 33, 11, 5, 192, 19, 11, 5, + 192, 27, 11, 5, 192, 26, 11, 5, 192, 30, 11, 5, 192, 28, 11, 5, 191, 198, + 11, 5, 191, 197, 11, 5, 191, 201, 11, 5, 191, 199, 11, 5, 191, 240, 11, + 5, 191, 235, 11, 5, 192, 12, 11, 5, 191, 245, 11, 5, 191, 189, 11, 5, + 191, 185, 11, 5, 191, 225, 11, 5, 191, 196, 11, 5, 191, 192, 11, 5, 191, + 193, 11, 5, 191, 169, 11, 5, 191, 168, 11, 5, 191, 176, 11, 5, 191, 172, + 11, 5, 191, 170, 11, 5, 191, 171, 11, 48, 208, 36, 11, 48, 219, 146, 11, + 48, 221, 120, 11, 48, 212, 72, 11, 48, 238, 137, 11, 48, 201, 142, 11, + 48, 231, 110, 11, 48, 231, 142, 11, 48, 216, 100, 11, 48, 228, 104, 11, + 48, 218, 175, 11, 48, 249, 25, 11, 48, 215, 202, 11, 48, 192, 12, 11, 48, + 208, 131, 11, 48, 228, 98, 11, 48, 199, 171, 11, 48, 231, 240, 11, 48, + 190, 243, 11, 48, 238, 130, 11, 48, 237, 151, 11, 48, 247, 230, 11, 48, + 231, 106, 11, 48, 212, 61, 11, 48, 197, 94, 11, 48, 211, 78, 11, 48, 222, + 208, 11, 48, 191, 2, 11, 48, 208, 108, 11, 48, 229, 65, 11, 48, 192, 18, + 11, 48, 193, 244, 11, 48, 202, 231, 11, 48, 195, 141, 11, 48, 191, 123, + 11, 48, 222, 201, 11, 48, 212, 25, 11, 48, 222, 206, 11, 48, 230, 232, + 11, 48, 222, 226, 11, 48, 193, 48, 11, 48, 235, 89, 11, 48, 202, 247, 11, + 48, 219, 140, 11, 48, 238, 143, 11, 48, 238, 184, 11, 48, 243, 12, 11, + 48, 228, 101, 11, 48, 203, 123, 11, 48, 190, 242, 11, 48, 203, 44, 11, + 48, 243, 127, 11, 48, 190, 212, 11, 48, 214, 189, 11, 48, 222, 22, 219, + 88, 1, 249, 153, 219, 88, 1, 168, 219, 88, 1, 209, 228, 219, 88, 1, 238, + 32, 219, 88, 1, 190, 190, 219, 88, 1, 199, 49, 219, 88, 1, 231, 240, 219, + 88, 1, 155, 219, 88, 1, 221, 215, 219, 88, 1, 223, 32, 219, 88, 1, 247, + 160, 219, 88, 1, 247, 1, 219, 88, 1, 235, 35, 219, 88, 1, 197, 168, 219, + 88, 1, 197, 157, 219, 88, 1, 174, 219, 88, 1, 180, 219, 88, 1, 173, 219, + 88, 1, 188, 219, 88, 1, 191, 71, 219, 88, 1, 191, 123, 219, 88, 1, 214, + 68, 219, 88, 1, 140, 219, 88, 1, 192, 220, 219, 88, 1, 229, 177, 219, 88, + 1, 233, 109, 219, 88, 1, 193, 190, 219, 88, 1, 203, 165, 219, 88, 1, 170, + 219, 88, 1, 231, 91, 219, 88, 1, 65, 219, 88, 1, 252, 25, 219, 88, 1, 71, + 219, 88, 1, 233, 242, 219, 88, 1, 68, 219, 88, 1, 74, 219, 88, 1, 66, + 219, 88, 1, 196, 152, 219, 88, 1, 196, 141, 219, 88, 1, 211, 151, 219, + 88, 1, 163, 215, 69, 198, 193, 219, 88, 1, 163, 215, 7, 209, 73, 219, 88, + 1, 163, 215, 69, 238, 142, 219, 88, 1, 163, 215, 69, 248, 111, 219, 88, + 1, 163, 215, 69, 180, 219, 88, 1, 163, 215, 69, 222, 253, 219, 88, 208, + 152, 242, 74, 219, 88, 208, 152, 232, 80, 201, 63, 59, 5, 234, 188, 59, + 5, 234, 184, 59, 5, 229, 215, 59, 5, 193, 114, 59, 5, 193, 113, 59, 5, + 210, 49, 59, 5, 248, 195, 59, 5, 249, 1, 59, 5, 217, 3, 59, 5, 221, 16, + 59, 5, 216, 132, 59, 5, 231, 178, 59, 5, 233, 52, 59, 5, 195, 148, 59, 5, + 199, 121, 59, 5, 199, 31, 59, 5, 237, 58, 59, 5, 237, 55, 59, 5, 219, + 228, 59, 5, 207, 84, 59, 5, 237, 131, 59, 5, 214, 153, 59, 5, 205, 50, + 59, 5, 203, 111, 59, 5, 191, 84, 59, 5, 191, 61, 59, 5, 247, 34, 59, 5, + 223, 8, 59, 5, 213, 148, 59, 5, 192, 77, 59, 5, 222, 13, 59, 5, 214, 41, + 59, 5, 231, 157, 59, 5, 216, 211, 59, 5, 214, 110, 59, 5, 212, 89, 59, 5, + 68, 59, 5, 223, 162, 59, 5, 229, 158, 59, 5, 229, 128, 59, 5, 193, 86, + 59, 5, 193, 68, 59, 5, 209, 185, 59, 5, 248, 193, 59, 5, 248, 188, 59, 5, + 216, 252, 59, 5, 221, 13, 59, 5, 216, 129, 59, 5, 231, 174, 59, 5, 233, + 23, 59, 5, 195, 69, 59, 5, 198, 193, 59, 5, 199, 11, 59, 5, 237, 50, 59, + 5, 237, 54, 59, 5, 219, 146, 59, 5, 207, 1, 59, 5, 237, 44, 59, 5, 214, + 147, 59, 5, 202, 222, 59, 5, 203, 81, 59, 5, 191, 30, 59, 5, 191, 57, 59, + 5, 243, 29, 59, 5, 222, 244, 59, 5, 213, 141, 59, 5, 192, 33, 59, 5, 221, + 166, 59, 5, 214, 33, 59, 5, 231, 53, 59, 5, 216, 100, 59, 5, 213, 219, + 59, 5, 212, 81, 59, 5, 65, 59, 5, 251, 132, 59, 5, 214, 63, 59, 5, 140, + 59, 5, 230, 56, 59, 5, 193, 190, 59, 5, 193, 164, 59, 5, 168, 59, 5, 248, + 203, 59, 5, 249, 153, 59, 5, 217, 11, 59, 5, 221, 21, 59, 5, 221, 19, 59, + 5, 216, 136, 59, 5, 231, 182, 59, 5, 233, 109, 59, 5, 195, 188, 59, 5, + 190, 190, 59, 5, 199, 49, 59, 5, 237, 68, 59, 5, 237, 57, 59, 5, 173, 59, + 5, 165, 59, 5, 238, 32, 59, 5, 214, 162, 59, 5, 188, 59, 5, 203, 165, 59, + 5, 191, 123, 59, 5, 191, 71, 59, 5, 247, 160, 59, 5, 223, 32, 59, 5, 213, + 157, 59, 5, 170, 59, 5, 155, 59, 5, 222, 87, 59, 5, 214, 47, 59, 5, 231, + 240, 59, 5, 174, 59, 5, 180, 59, 5, 212, 101, 59, 5, 211, 87, 59, 5, 211, + 82, 59, 5, 228, 252, 59, 5, 193, 29, 59, 5, 193, 25, 59, 5, 209, 37, 59, + 5, 248, 191, 59, 5, 248, 97, 59, 5, 216, 247, 59, 5, 221, 11, 59, 5, 216, + 125, 59, 5, 231, 170, 59, 5, 232, 162, 59, 5, 195, 8, 59, 5, 198, 59, 59, + 5, 198, 235, 59, 5, 237, 47, 59, 5, 237, 52, 59, 5, 219, 8, 59, 5, 206, + 134, 59, 5, 236, 146, 59, 5, 214, 134, 59, 5, 202, 16, 59, 5, 203, 48, + 59, 5, 191, 4, 59, 5, 191, 52, 59, 5, 239, 18, 59, 5, 222, 191, 59, 5, + 213, 131, 59, 5, 191, 246, 59, 5, 221, 41, 59, 5, 214, 31, 59, 5, 230, + 245, 59, 5, 215, 211, 59, 5, 213, 26, 59, 5, 212, 62, 59, 5, 66, 59, 5, + 196, 113, 59, 5, 228, 159, 59, 5, 228, 142, 59, 5, 193, 0, 59, 5, 192, + 249, 59, 5, 208, 165, 59, 5, 248, 190, 59, 5, 248, 10, 59, 5, 216, 246, + 59, 5, 221, 9, 59, 5, 216, 124, 59, 5, 231, 169, 59, 5, 232, 86, 59, 5, + 193, 249, 59, 5, 197, 94, 59, 5, 198, 213, 59, 5, 237, 45, 59, 5, 237, + 51, 59, 5, 218, 225, 59, 5, 206, 68, 59, 5, 235, 89, 59, 5, 214, 129, 59, + 5, 201, 4, 59, 5, 203, 5, 59, 5, 190, 251, 59, 5, 191, 48, 59, 5, 238, + 195, 59, 5, 222, 182, 59, 5, 213, 127, 59, 5, 191, 225, 59, 5, 220, 232, + 59, 5, 214, 30, 59, 5, 230, 179, 59, 5, 215, 155, 59, 5, 212, 178, 59, 5, + 212, 58, 59, 5, 74, 59, 5, 211, 104, 59, 5, 213, 245, 59, 5, 229, 23, 59, + 5, 228, 255, 59, 5, 193, 48, 59, 5, 193, 30, 59, 5, 209, 73, 59, 5, 248, + 192, 59, 5, 248, 111, 59, 5, 216, 248, 59, 5, 221, 12, 59, 5, 216, 127, + 59, 5, 231, 172, 59, 5, 231, 171, 59, 5, 232, 175, 59, 5, 195, 24, 59, 5, + 159, 59, 5, 198, 241, 59, 5, 237, 48, 59, 5, 237, 53, 59, 5, 219, 43, 59, + 5, 206, 162, 59, 5, 236, 174, 59, 5, 214, 138, 59, 5, 202, 46, 59, 5, + 203, 56, 59, 5, 191, 7, 59, 5, 191, 54, 59, 5, 242, 99, 59, 5, 222, 201, + 59, 5, 213, 132, 59, 5, 192, 12, 59, 5, 221, 67, 59, 5, 214, 32, 59, 5, + 231, 3, 59, 5, 216, 12, 59, 5, 213, 43, 59, 5, 212, 65, 59, 5, 71, 59, 5, + 234, 103, 59, 5, 214, 52, 59, 5, 229, 245, 59, 5, 229, 198, 59, 5, 193, + 125, 59, 5, 193, 108, 59, 5, 210, 63, 59, 5, 248, 196, 59, 5, 249, 17, + 59, 5, 217, 4, 59, 5, 221, 17, 59, 5, 221, 15, 59, 5, 216, 133, 59, 5, + 231, 179, 59, 5, 231, 177, 59, 5, 233, 59, 59, 5, 195, 153, 59, 5, 199, + 145, 59, 5, 199, 33, 59, 5, 237, 59, 59, 5, 237, 56, 59, 5, 219, 238, 59, + 5, 207, 113, 59, 5, 237, 146, 59, 5, 214, 154, 59, 5, 205, 68, 59, 5, + 203, 113, 59, 5, 191, 87, 59, 5, 191, 62, 59, 5, 247, 42, 59, 5, 223, 10, + 59, 5, 213, 150, 59, 5, 192, 80, 59, 5, 222, 22, 59, 5, 214, 42, 59, 5, + 214, 38, 59, 5, 231, 165, 59, 5, 231, 151, 59, 5, 216, 232, 59, 5, 214, + 121, 59, 5, 212, 90, 59, 5, 214, 70, 59, 5, 219, 190, 59, 242, 74, 59, + 232, 80, 201, 63, 59, 208, 13, 77, 59, 5, 214, 137, 233, 109, 59, 5, 214, + 137, 155, 59, 5, 214, 137, 202, 16, 59, 16, 233, 48, 59, 16, 222, 11, 59, + 16, 198, 140, 59, 16, 213, 186, 59, 16, 249, 95, 59, 16, 233, 108, 59, + 16, 199, 245, 59, 16, 237, 236, 59, 16, 236, 145, 59, 16, 220, 208, 59, + 16, 198, 63, 59, 16, 236, 173, 59, 16, 222, 192, 59, 17, 191, 77, 59, 17, + 107, 59, 17, 109, 59, 17, 138, 59, 17, 134, 59, 17, 149, 59, 17, 169, 59, + 17, 175, 59, 17, 171, 59, 17, 178, 59, 5, 214, 137, 174, 59, 5, 214, 137, + 236, 174, 38, 6, 1, 191, 81, 38, 2, 1, 191, 81, 38, 6, 1, 235, 30, 38, 2, + 1, 235, 30, 38, 6, 1, 207, 18, 235, 32, 38, 2, 1, 207, 18, 235, 32, 38, + 6, 1, 223, 83, 38, 2, 1, 223, 83, 38, 6, 1, 236, 191, 38, 2, 1, 236, 191, + 38, 6, 1, 215, 219, 196, 128, 38, 2, 1, 215, 219, 196, 128, 38, 6, 1, + 248, 24, 211, 110, 38, 2, 1, 248, 24, 211, 110, 38, 6, 1, 214, 82, 192, + 62, 38, 2, 1, 214, 82, 192, 62, 38, 6, 1, 192, 59, 4, 249, 147, 192, 62, + 38, 2, 1, 192, 59, 4, 249, 147, 192, 62, 38, 6, 1, 223, 81, 192, 95, 38, + 2, 1, 223, 81, 192, 95, 38, 6, 1, 207, 18, 191, 225, 38, 2, 1, 207, 18, + 191, 225, 38, 6, 1, 223, 81, 65, 38, 2, 1, 223, 81, 65, 38, 6, 1, 242, + 219, 219, 83, 191, 190, 38, 2, 1, 242, 219, 219, 83, 191, 190, 38, 6, 1, + 248, 131, 191, 190, 38, 2, 1, 248, 131, 191, 190, 38, 6, 1, 223, 81, 242, + 219, 219, 83, 191, 190, 38, 2, 1, 223, 81, 242, 219, 219, 83, 191, 190, + 38, 6, 1, 192, 14, 38, 2, 1, 192, 14, 38, 6, 1, 207, 18, 197, 161, 38, 2, + 1, 207, 18, 197, 161, 38, 6, 1, 202, 32, 237, 146, 38, 2, 1, 202, 32, + 237, 146, 38, 6, 1, 202, 32, 234, 140, 38, 2, 1, 202, 32, 234, 140, 38, + 6, 1, 202, 32, 234, 114, 38, 2, 1, 202, 32, 234, 114, 38, 6, 1, 215, 223, + 74, 38, 2, 1, 215, 223, 74, 38, 6, 1, 248, 164, 74, 38, 2, 1, 248, 164, + 74, 38, 6, 1, 55, 215, 223, 74, 38, 2, 1, 55, 215, 223, 74, 38, 1, 215, + 130, 74, 33, 38, 193, 226, 33, 38, 199, 96, 216, 48, 56, 33, 38, 228, + 141, 216, 48, 56, 33, 38, 198, 230, 216, 48, 56, 202, 95, 250, 193, 33, + 38, 1, 196, 125, 223, 226, 33, 38, 1, 68, 33, 38, 1, 192, 33, 33, 38, 1, + 66, 33, 38, 1, 230, 17, 56, 33, 38, 1, 192, 58, 33, 38, 1, 202, 32, 56, + 33, 38, 1, 211, 110, 33, 38, 222, 35, 33, 38, 210, 70, 38, 222, 35, 38, + 210, 70, 38, 6, 1, 235, 45, 38, 2, 1, 235, 45, 38, 6, 1, 235, 21, 38, 2, + 1, 235, 21, 38, 6, 1, 191, 38, 38, 2, 1, 191, 38, 38, 6, 1, 247, 58, 38, + 2, 1, 247, 58, 38, 6, 1, 235, 17, 38, 2, 1, 235, 17, 38, 6, 1, 199, 146, + 4, 82, 102, 38, 2, 1, 199, 146, 4, 82, 102, 38, 6, 1, 197, 41, 38, 2, 1, + 197, 41, 38, 6, 1, 197, 136, 38, 2, 1, 197, 136, 38, 6, 1, 197, 141, 38, + 2, 1, 197, 141, 38, 6, 1, 199, 151, 38, 2, 1, 199, 151, 38, 6, 1, 228, + 122, 38, 2, 1, 228, 122, 38, 6, 1, 202, 237, 38, 2, 1, 202, 237, 38, 6, + 1, 55, 74, 38, 2, 1, 55, 74, 38, 6, 1, 238, 214, 74, 38, 2, 1, 238, 214, + 74, 52, 1, 38, 230, 17, 56, 52, 1, 38, 202, 32, 56, 33, 38, 1, 234, 181, + 33, 38, 1, 223, 81, 71, 26, 1, 65, 26, 1, 155, 26, 1, 66, 26, 1, 220, + 232, 26, 1, 234, 188, 26, 1, 207, 84, 26, 1, 199, 226, 26, 1, 74, 26, 1, + 212, 81, 26, 1, 68, 26, 1, 173, 26, 1, 168, 26, 1, 206, 195, 26, 1, 206, + 242, 26, 1, 219, 227, 26, 1, 216, 210, 26, 1, 199, 245, 26, 1, 214, 160, + 26, 1, 213, 155, 26, 1, 218, 168, 26, 1, 200, 160, 26, 1, 215, 155, 26, + 1, 203, 76, 26, 1, 202, 222, 26, 1, 203, 86, 26, 1, 203, 248, 26, 1, 220, + 149, 26, 1, 221, 241, 26, 1, 212, 146, 26, 1, 212, 178, 26, 1, 213, 126, + 26, 1, 191, 243, 26, 1, 203, 5, 26, 1, 191, 194, 26, 1, 170, 26, 1, 212, + 215, 26, 1, 221, 227, 26, 1, 209, 232, 26, 1, 213, 148, 26, 1, 212, 195, + 26, 1, 208, 156, 26, 1, 192, 253, 26, 1, 210, 49, 26, 1, 233, 52, 26, 1, + 206, 68, 26, 1, 218, 225, 26, 1, 216, 100, 26, 1, 213, 219, 26, 1, 207, + 20, 26, 1, 207, 163, 26, 1, 221, 251, 26, 1, 213, 252, 26, 1, 214, 47, + 26, 1, 214, 68, 26, 1, 203, 56, 26, 1, 208, 161, 26, 1, 232, 86, 26, 1, + 232, 167, 26, 1, 193, 190, 26, 1, 180, 26, 1, 219, 146, 26, 1, 209, 185, + 26, 1, 219, 0, 26, 1, 221, 67, 26, 1, 217, 1, 26, 1, 207, 55, 26, 1, 216, + 186, 26, 1, 174, 26, 1, 198, 193, 26, 1, 221, 166, 26, 1, 216, 12, 26, 1, + 217, 9, 26, 1, 199, 73, 26, 1, 221, 21, 26, 1, 199, 95, 26, 1, 212, 181, + 26, 1, 205, 150, 26, 1, 233, 105, 26, 1, 221, 24, 26, 1, 221, 57, 26, 33, + 87, 221, 34, 26, 33, 87, 197, 79, 26, 213, 154, 26, 232, 80, 201, 63, 26, + 242, 83, 26, 242, 74, 26, 204, 25, 26, 208, 13, 77, 52, 1, 243, 80, 163, + 192, 22, 209, 132, 52, 1, 243, 80, 163, 192, 107, 209, 132, 52, 1, 243, + 80, 163, 192, 22, 203, 137, 52, 1, 243, 80, 163, 192, 107, 203, 137, 52, + 1, 243, 80, 163, 192, 22, 208, 33, 52, 1, 243, 80, 163, 192, 107, 208, + 33, 52, 1, 243, 80, 163, 192, 22, 206, 68, 52, 1, 243, 80, 163, 192, 107, + 206, 68, 52, 1, 233, 200, 235, 138, 163, 164, 52, 1, 137, 235, 138, 163, + 164, 52, 1, 216, 87, 235, 138, 163, 164, 52, 1, 130, 235, 138, 163, 164, + 52, 1, 233, 199, 235, 138, 163, 164, 52, 1, 233, 200, 235, 138, 219, 216, + 163, 164, 52, 1, 137, 235, 138, 219, 216, 163, 164, 52, 1, 216, 87, 235, + 138, 219, 216, 163, 164, 52, 1, 130, 235, 138, 219, 216, 163, 164, 52, 1, + 233, 199, 235, 138, 219, 216, 163, 164, 52, 1, 233, 200, 219, 216, 163, + 164, 52, 1, 137, 219, 216, 163, 164, 52, 1, 216, 87, 219, 216, 163, 164, + 52, 1, 130, 219, 216, 163, 164, 52, 1, 233, 199, 219, 216, 163, 164, 52, + 1, 75, 81, 164, 52, 1, 75, 202, 97, 52, 1, 75, 228, 241, 164, 52, 1, 110, + 50, 239, 2, 251, 115, 52, 1, 207, 147, 133, 57, 52, 1, 207, 147, 144, 57, + 52, 1, 207, 147, 233, 216, 77, 52, 1, 207, 147, 223, 93, 233, 216, 77, + 52, 1, 130, 223, 93, 233, 216, 77, 52, 1, 201, 38, 23, 137, 198, 79, 52, + 1, 201, 38, 23, 130, 198, 79, 8, 6, 1, 234, 175, 251, 192, 8, 2, 1, 234, + 175, 251, 192, 8, 6, 1, 234, 175, 251, 230, 8, 2, 1, 234, 175, 251, 230, + 8, 6, 1, 229, 196, 8, 2, 1, 229, 196, 8, 6, 1, 196, 241, 8, 2, 1, 196, + 241, 8, 6, 1, 197, 248, 8, 2, 1, 197, 248, 8, 6, 1, 238, 192, 8, 2, 1, + 238, 192, 8, 6, 1, 238, 193, 4, 242, 74, 8, 2, 1, 238, 193, 4, 242, 74, + 8, 1, 2, 6, 233, 175, 8, 1, 2, 6, 206, 8, 8, 6, 1, 252, 206, 8, 2, 1, + 252, 206, 8, 6, 1, 251, 68, 8, 2, 1, 251, 68, 8, 6, 1, 250, 163, 8, 2, 1, + 250, 163, 8, 6, 1, 250, 146, 8, 2, 1, 250, 146, 8, 6, 1, 250, 147, 4, + 228, 241, 164, 8, 2, 1, 250, 147, 4, 228, 241, 164, 8, 6, 1, 250, 131, 8, + 2, 1, 250, 131, 8, 6, 1, 207, 18, 247, 194, 4, 236, 140, 8, 2, 1, 207, + 18, 247, 194, 4, 236, 140, 8, 6, 1, 222, 153, 4, 106, 8, 2, 1, 222, 153, + 4, 106, 8, 6, 1, 222, 153, 4, 237, 39, 106, 8, 2, 1, 222, 153, 4, 237, + 39, 106, 8, 6, 1, 222, 153, 4, 201, 28, 23, 237, 39, 106, 8, 2, 1, 222, + 153, 4, 201, 28, 23, 237, 39, 106, 8, 6, 1, 248, 22, 172, 8, 2, 1, 248, + 22, 172, 8, 6, 1, 220, 143, 4, 137, 106, 8, 2, 1, 220, 143, 4, 137, 106, + 8, 6, 1, 187, 4, 179, 201, 28, 210, 255, 8, 2, 1, 187, 4, 179, 201, 28, + 210, 255, 8, 6, 1, 187, 4, 219, 4, 8, 2, 1, 187, 4, 219, 4, 8, 6, 1, 211, + 87, 8, 2, 1, 211, 87, 8, 6, 1, 210, 237, 4, 201, 28, 198, 216, 237, 87, + 8, 2, 1, 210, 237, 4, 201, 28, 198, 216, 237, 87, 8, 6, 1, 210, 237, 4, + 232, 188, 8, 2, 1, 210, 237, 4, 232, 188, 8, 6, 1, 210, 237, 4, 201, 182, + 199, 215, 8, 2, 1, 210, 237, 4, 201, 182, 199, 215, 8, 6, 1, 208, 105, 4, + 201, 28, 198, 216, 237, 87, 8, 2, 1, 208, 105, 4, 201, 28, 198, 216, 237, + 87, 8, 6, 1, 208, 105, 4, 237, 39, 106, 8, 2, 1, 208, 105, 4, 237, 39, + 106, 8, 6, 1, 207, 222, 206, 116, 8, 2, 1, 207, 222, 206, 116, 8, 6, 1, + 206, 49, 206, 116, 8, 2, 1, 206, 49, 206, 116, 8, 6, 1, 196, 13, 4, 237, + 39, 106, 8, 2, 1, 196, 13, 4, 237, 39, 106, 8, 6, 1, 193, 235, 8, 2, 1, + 193, 235, 8, 6, 1, 195, 33, 191, 166, 8, 2, 1, 195, 33, 191, 166, 8, 6, + 1, 198, 234, 4, 106, 8, 2, 1, 198, 234, 4, 106, 8, 6, 1, 198, 234, 4, + 201, 28, 198, 216, 237, 87, 8, 2, 1, 198, 234, 4, 201, 28, 198, 216, 237, + 87, 8, 6, 1, 195, 142, 8, 2, 1, 195, 142, 8, 6, 1, 233, 255, 8, 2, 1, + 233, 255, 8, 6, 1, 223, 68, 8, 2, 1, 223, 68, 8, 6, 1, 239, 57, 8, 2, 1, + 239, 57, 52, 1, 196, 45, 8, 2, 1, 235, 77, 8, 2, 1, 218, 208, 8, 2, 1, + 215, 123, 8, 2, 1, 212, 137, 8, 2, 1, 206, 48, 8, 1, 2, 6, 206, 48, 8, 2, + 1, 197, 76, 8, 2, 1, 196, 120, 8, 6, 1, 223, 115, 238, 127, 8, 2, 1, 223, + 115, 238, 127, 8, 6, 1, 223, 115, 233, 175, 8, 2, 1, 223, 115, 233, 175, + 8, 6, 1, 223, 115, 232, 51, 8, 6, 1, 153, 223, 115, 232, 51, 8, 2, 1, + 153, 223, 115, 232, 51, 8, 6, 1, 153, 172, 8, 2, 1, 153, 172, 8, 6, 1, + 223, 115, 146, 8, 2, 1, 223, 115, 146, 8, 6, 1, 223, 115, 206, 8, 8, 2, + 1, 223, 115, 206, 8, 8, 6, 1, 223, 115, 200, 43, 8, 2, 1, 223, 115, 200, + 43, 52, 1, 130, 243, 2, 252, 60, 52, 1, 242, 83, 52, 1, 203, 40, 234, 43, + 56, 8, 6, 1, 205, 156, 8, 2, 1, 205, 156, 8, 6, 1, 153, 230, 116, 8, 2, + 1, 220, 143, 4, 207, 24, 228, 251, 23, 248, 231, 8, 1, 202, 163, 236, + 140, 8, 6, 1, 215, 62, 4, 237, 87, 8, 2, 1, 215, 62, 4, 237, 87, 8, 6, 1, + 247, 194, 4, 164, 8, 2, 1, 247, 194, 4, 164, 8, 2, 1, 247, 194, 4, 210, + 192, 102, 8, 2, 1, 230, 117, 4, 210, 192, 102, 8, 6, 1, 78, 4, 232, 188, + 8, 2, 1, 78, 4, 232, 188, 8, 6, 1, 233, 176, 4, 106, 8, 2, 1, 233, 176, + 4, 106, 8, 6, 1, 195, 15, 252, 25, 8, 2, 1, 195, 15, 252, 25, 8, 6, 1, + 195, 15, 211, 151, 8, 2, 1, 195, 15, 211, 151, 8, 6, 1, 195, 15, 196, + 152, 8, 2, 1, 195, 15, 196, 152, 8, 6, 1, 232, 52, 4, 211, 172, 106, 8, + 2, 1, 232, 52, 4, 211, 172, 106, 8, 6, 1, 222, 153, 4, 211, 172, 106, 8, + 2, 1, 222, 153, 4, 211, 172, 106, 8, 6, 1, 215, 62, 4, 211, 172, 106, 8, + 2, 1, 215, 62, 4, 211, 172, 106, 8, 6, 1, 207, 222, 4, 211, 172, 106, 8, + 2, 1, 207, 222, 4, 211, 172, 106, 8, 6, 1, 206, 9, 4, 211, 172, 106, 8, + 2, 1, 206, 9, 4, 211, 172, 106, 8, 6, 1, 230, 117, 4, 102, 8, 6, 1, 207, + 18, 211, 77, 71, 8, 6, 1, 27, 232, 51, 8, 6, 1, 220, 143, 4, 248, 231, 8, + 6, 1, 2, 6, 68, 8, 1, 2, 6, 208, 104, 8, 6, 1, 153, 222, 152, 8, 6, 1, + 153, 200, 43, 8, 6, 1, 223, 36, 4, 238, 212, 8, 6, 1, 243, 95, 8, 6, 1, + 248, 212, 8, 2, 1, 248, 212, 8, 6, 1, 211, 110, 8, 2, 1, 211, 110, 8, 6, + 1, 126, 4, 106, 8, 2, 1, 126, 4, 106, 8, 6, 1, 231, 11, 65, 8, 2, 1, 231, + 11, 65, 8, 6, 1, 231, 11, 68, 8, 2, 1, 231, 11, 68, 8, 6, 1, 231, 11, 66, + 8, 2, 1, 231, 11, 66, 8, 6, 1, 39, 209, 49, 74, 8, 2, 1, 39, 209, 49, 74, + 8, 6, 1, 251, 112, 193, 224, 8, 2, 1, 251, 112, 193, 224, 8, 6, 1, 247, + 194, 4, 210, 192, 102, 8, 6, 1, 206, 9, 4, 102, 8, 6, 1, 191, 167, 4, + 210, 192, 102, 8, 6, 1, 238, 128, 4, 203, 40, 201, 28, 210, 255, 8, 2, 1, + 238, 128, 4, 203, 40, 201, 28, 210, 255, 8, 6, 1, 206, 9, 4, 203, 40, + 201, 28, 210, 255, 8, 2, 1, 206, 9, 4, 203, 40, 201, 28, 210, 255, 8, 6, + 1, 242, 219, 223, 115, 232, 51, 8, 2, 1, 242, 219, 223, 115, 232, 51, 8, + 2, 1, 55, 198, 233, 8, 2, 1, 55, 192, 238, 8, 6, 1, 82, 205, 79, 206, 8, + 8, 2, 1, 82, 205, 79, 206, 8, 8, 6, 1, 202, 195, 206, 8, 8, 2, 1, 202, + 195, 206, 8, 52, 1, 6, 247, 193, 52, 1, 6, 233, 175, 52, 1, 6, 208, 104, + 8, 6, 1, 207, 18, 132, 230, 116, 8, 2, 1, 207, 18, 132, 230, 116, 8, 234, + 50, 1, 202, 206, 68, 52, 1, 6, 230, 117, 4, 106, 52, 1, 2, 34, 211, 151, + 8, 1, 2, 6, 153, 218, 168, 8, 234, 50, 1, 207, 18, 233, 175, 8, 234, 50, + 1, 207, 18, 210, 236, 8, 234, 50, 1, 223, 93, 218, 168, 8, 234, 50, 1, + 228, 74, 219, 10, 8, 234, 50, 1, 251, 14, 218, 168, 200, 124, 214, 238, + 1, 65, 200, 124, 214, 238, 1, 68, 200, 124, 214, 238, 3, 235, 54, 200, + 124, 214, 238, 1, 66, 200, 124, 214, 238, 1, 71, 200, 124, 214, 238, 1, + 74, 200, 124, 214, 238, 3, 230, 11, 200, 124, 214, 238, 1, 221, 67, 200, + 124, 214, 238, 1, 221, 183, 200, 124, 214, 238, 1, 231, 3, 200, 124, 214, + 238, 1, 231, 63, 200, 124, 214, 238, 3, 251, 71, 200, 124, 214, 238, 1, + 242, 99, 200, 124, 214, 238, 1, 243, 68, 200, 124, 214, 238, 1, 222, 201, + 200, 124, 214, 238, 1, 222, 246, 200, 124, 214, 238, 1, 197, 109, 200, + 124, 214, 238, 1, 197, 115, 200, 124, 214, 238, 1, 237, 161, 200, 124, + 214, 238, 1, 237, 170, 200, 124, 214, 238, 1, 159, 200, 124, 214, 238, 1, + 198, 241, 200, 124, 214, 238, 1, 236, 174, 200, 124, 214, 238, 1, 237, + 48, 200, 124, 214, 238, 1, 213, 43, 200, 124, 214, 238, 1, 209, 73, 200, + 124, 214, 238, 1, 209, 199, 200, 124, 214, 238, 1, 248, 111, 200, 124, + 214, 238, 1, 248, 192, 200, 124, 214, 238, 1, 216, 12, 200, 124, 214, + 238, 1, 206, 162, 200, 124, 214, 238, 1, 219, 43, 200, 124, 214, 238, 1, + 206, 95, 200, 124, 214, 238, 1, 202, 46, 200, 124, 214, 238, 1, 229, 23, + 200, 124, 214, 238, 18, 3, 65, 200, 124, 214, 238, 18, 3, 68, 200, 124, + 214, 238, 18, 3, 66, 200, 124, 214, 238, 18, 3, 71, 200, 124, 214, 238, + 18, 3, 211, 87, 200, 124, 214, 238, 209, 63, 217, 55, 200, 124, 214, 238, + 209, 63, 217, 54, 200, 124, 214, 238, 209, 63, 217, 53, 200, 124, 214, + 238, 209, 63, 217, 52, 200, 124, 214, 238, 3, 251, 157, 230, 11, 186, + 223, 146, 232, 118, 91, 208, 22, 186, 223, 146, 232, 118, 91, 230, 70, + 186, 223, 146, 232, 118, 115, 208, 20, 186, 223, 146, 232, 118, 91, 202, + 128, 186, 223, 146, 232, 118, 91, 234, 159, 186, 223, 146, 232, 118, 115, + 202, 125, 186, 223, 146, 208, 23, 77, 186, 223, 146, 209, 107, 77, 186, + 223, 146, 206, 36, 77, 186, 223, 146, 208, 25, 77, 209, 224, 1, 155, 209, + 224, 1, 221, 215, 209, 224, 1, 231, 240, 209, 224, 1, 214, 68, 209, 224, + 1, 247, 160, 209, 224, 1, 247, 1, 209, 224, 1, 223, 32, 209, 224, 1, 212, + 101, 209, 224, 1, 190, 190, 209, 224, 1, 199, 49, 209, 224, 1, 238, 32, + 209, 224, 1, 180, 209, 224, 1, 168, 209, 224, 1, 209, 228, 209, 224, 1, + 249, 153, 209, 224, 1, 174, 209, 224, 1, 197, 168, 209, 224, 1, 197, 157, + 209, 224, 1, 235, 35, 209, 224, 1, 193, 190, 209, 224, 1, 191, 71, 209, + 224, 1, 191, 123, 209, 224, 1, 2, 65, 209, 224, 1, 170, 209, 224, 1, 165, + 209, 224, 1, 173, 209, 224, 1, 203, 165, 209, 224, 1, 188, 209, 224, 1, + 140, 209, 224, 1, 65, 209, 224, 1, 68, 209, 224, 1, 66, 209, 224, 1, 71, + 209, 224, 1, 74, 209, 224, 1, 208, 96, 209, 224, 1, 192, 220, 209, 224, + 1, 233, 109, 209, 224, 1, 231, 127, 209, 224, 1, 234, 188, 209, 224, 200, + 239, 1, 193, 190, 209, 224, 200, 239, 1, 170, 209, 224, 1, 197, 132, 209, + 224, 1, 197, 120, 209, 224, 1, 237, 191, 209, 224, 1, 213, 79, 209, 224, + 1, 251, 157, 170, 209, 224, 1, 195, 19, 203, 165, 209, 224, 1, 195, 20, + 140, 209, 224, 1, 250, 200, 233, 109, 209, 224, 200, 239, 1, 165, 209, + 224, 200, 185, 1, 165, 209, 224, 1, 247, 119, 209, 224, 202, 170, 229, + 236, 77, 209, 224, 55, 229, 236, 77, 209, 224, 87, 203, 157, 209, 224, + 87, 55, 203, 157, 205, 111, 3, 251, 71, 205, 111, 3, 195, 35, 205, 111, + 1, 65, 205, 111, 1, 252, 206, 205, 111, 1, 68, 205, 111, 1, 223, 199, + 205, 111, 1, 66, 205, 111, 1, 196, 30, 205, 111, 1, 117, 146, 205, 111, + 1, 117, 206, 110, 205, 111, 1, 117, 172, 205, 111, 1, 117, 219, 74, 205, + 111, 1, 71, 205, 111, 1, 234, 188, 205, 111, 1, 251, 236, 205, 111, 1, + 74, 205, 111, 1, 211, 87, 205, 111, 1, 250, 163, 205, 111, 1, 155, 205, + 111, 1, 221, 215, 205, 111, 1, 231, 240, 205, 111, 1, 231, 91, 205, 111, + 1, 214, 68, 205, 111, 1, 247, 160, 205, 111, 1, 247, 1, 205, 111, 1, 223, + 32, 205, 111, 1, 222, 252, 205, 111, 1, 212, 101, 205, 111, 1, 197, 132, + 205, 111, 1, 197, 120, 205, 111, 1, 237, 191, 205, 111, 1, 237, 175, 205, + 111, 1, 213, 79, 205, 111, 1, 190, 190, 205, 111, 1, 199, 49, 205, 111, + 1, 238, 32, 205, 111, 1, 237, 68, 205, 111, 1, 180, 205, 111, 1, 168, + 205, 111, 1, 209, 228, 205, 111, 1, 249, 153, 205, 111, 1, 248, 203, 205, + 111, 1, 174, 205, 111, 1, 170, 205, 111, 1, 165, 205, 111, 1, 173, 205, + 111, 1, 195, 188, 205, 111, 1, 203, 165, 205, 111, 1, 201, 175, 205, 111, + 1, 188, 205, 111, 1, 140, 205, 111, 1, 219, 73, 205, 111, 120, 3, 230, + 89, 205, 111, 18, 3, 252, 206, 205, 111, 18, 3, 68, 205, 111, 18, 3, 223, + 199, 205, 111, 18, 3, 66, 205, 111, 18, 3, 196, 30, 205, 111, 18, 3, 117, + 146, 205, 111, 18, 3, 117, 206, 110, 205, 111, 18, 3, 117, 172, 205, 111, + 18, 3, 117, 219, 74, 205, 111, 18, 3, 71, 205, 111, 18, 3, 234, 188, 205, + 111, 18, 3, 251, 236, 205, 111, 18, 3, 74, 205, 111, 18, 3, 211, 87, 205, + 111, 18, 3, 250, 163, 205, 111, 3, 195, 40, 205, 111, 3, 247, 119, 205, + 111, 237, 238, 205, 111, 55, 237, 238, 205, 111, 17, 191, 77, 205, 111, + 17, 107, 205, 111, 17, 109, 205, 111, 17, 138, 205, 111, 17, 134, 205, + 111, 17, 149, 205, 111, 17, 169, 205, 111, 17, 175, 205, 111, 17, 171, + 205, 111, 17, 178, 33, 100, 17, 191, 77, 33, 100, 17, 107, 33, 100, 17, + 109, 33, 100, 17, 138, 33, 100, 17, 134, 33, 100, 17, 149, 33, 100, 17, + 169, 33, 100, 17, 175, 33, 100, 17, 171, 33, 100, 17, 178, 33, 100, 1, + 65, 33, 100, 1, 66, 33, 100, 1, 155, 33, 100, 1, 180, 33, 100, 1, 168, + 33, 100, 1, 165, 33, 100, 1, 195, 69, 33, 100, 3, 250, 145, 100, 3, 201, + 246, 247, 119, 100, 3, 247, 120, 195, 40, 100, 3, 55, 247, 120, 195, 40, + 100, 3, 247, 120, 109, 100, 3, 247, 120, 138, 100, 3, 247, 120, 250, 145, + 100, 3, 208, 134, 100, 231, 204, 233, 3, 100, 247, 96, 100, 229, 227, + 100, 3, 202, 210, 100, 223, 24, 211, 113, 100, 1, 250, 131, 100, 18, 3, + 250, 131, 222, 28, 219, 147, 17, 191, 77, 222, 28, 219, 147, 17, 107, + 222, 28, 219, 147, 17, 109, 222, 28, 219, 147, 17, 138, 222, 28, 219, + 147, 17, 134, 222, 28, 219, 147, 17, 149, 222, 28, 219, 147, 17, 169, + 222, 28, 219, 147, 17, 175, 222, 28, 219, 147, 17, 171, 222, 28, 219, + 147, 17, 178, 222, 28, 219, 147, 1, 155, 222, 28, 219, 147, 1, 221, 215, + 222, 28, 219, 147, 1, 231, 240, 222, 28, 219, 147, 1, 214, 68, 222, 28, + 219, 147, 1, 188, 222, 28, 219, 147, 1, 203, 165, 222, 28, 219, 147, 1, + 191, 123, 222, 28, 219, 147, 1, 212, 101, 222, 28, 219, 147, 1, 190, 190, + 222, 28, 219, 147, 1, 228, 164, 222, 28, 219, 147, 1, 180, 222, 28, 219, + 147, 1, 168, 222, 28, 219, 147, 1, 209, 228, 222, 28, 219, 147, 1, 174, + 222, 28, 219, 147, 1, 238, 32, 222, 28, 219, 147, 1, 249, 153, 222, 28, + 219, 147, 1, 165, 222, 28, 219, 147, 1, 170, 222, 28, 219, 147, 1, 173, + 222, 28, 219, 147, 1, 193, 190, 222, 28, 219, 147, 1, 199, 49, 222, 28, + 219, 147, 1, 140, 222, 28, 219, 147, 1, 195, 188, 222, 28, 219, 147, 1, + 247, 160, 222, 28, 219, 147, 1, 65, 222, 28, 219, 147, 1, 211, 151, 222, + 28, 219, 147, 1, 68, 222, 28, 219, 147, 1, 211, 87, 222, 28, 219, 147, + 18, 196, 152, 222, 28, 219, 147, 18, 71, 222, 28, 219, 147, 18, 66, 222, + 28, 219, 147, 18, 234, 188, 222, 28, 219, 147, 18, 74, 222, 28, 219, 147, + 163, 209, 90, 222, 28, 219, 147, 163, 247, 135, 222, 28, 219, 147, 163, + 247, 136, 209, 90, 222, 28, 219, 147, 3, 238, 147, 222, 28, 219, 147, 3, + 202, 230, 207, 67, 1, 155, 207, 67, 1, 231, 240, 207, 67, 1, 214, 68, + 207, 67, 1, 190, 190, 207, 67, 1, 238, 32, 207, 67, 1, 180, 207, 67, 1, + 168, 207, 67, 1, 249, 153, 207, 67, 1, 174, 207, 67, 1, 247, 160, 207, + 67, 1, 223, 32, 207, 67, 1, 212, 101, 207, 67, 1, 188, 207, 67, 1, 165, + 207, 67, 1, 173, 207, 67, 1, 170, 207, 67, 1, 193, 190, 207, 67, 1, 140, + 207, 67, 1, 217, 11, 207, 67, 1, 214, 47, 207, 67, 1, 214, 162, 207, 67, + 1, 212, 66, 207, 67, 1, 65, 207, 67, 18, 3, 68, 207, 67, 18, 3, 66, 207, + 67, 18, 3, 71, 207, 67, 18, 3, 251, 236, 207, 67, 18, 3, 74, 207, 67, 18, + 3, 250, 163, 207, 67, 18, 3, 233, 242, 207, 67, 18, 3, 234, 217, 207, 67, + 120, 3, 214, 70, 207, 67, 120, 3, 215, 61, 207, 67, 120, 3, 146, 207, 67, + 120, 3, 230, 116, 207, 67, 195, 40, 207, 67, 205, 54, 77, 30, 147, 198, + 164, 30, 147, 198, 163, 30, 147, 198, 161, 30, 147, 198, 166, 30, 147, + 206, 234, 30, 147, 206, 218, 30, 147, 206, 213, 30, 147, 206, 215, 30, + 147, 206, 231, 30, 147, 206, 224, 30, 147, 206, 217, 30, 147, 206, 236, + 30, 147, 206, 219, 30, 147, 206, 238, 30, 147, 206, 235, 30, 147, 216, + 73, 30, 147, 216, 64, 30, 147, 216, 67, 30, 147, 209, 154, 30, 147, 209, + 165, 30, 147, 209, 166, 30, 147, 201, 159, 30, 147, 223, 212, 30, 147, + 223, 219, 30, 147, 201, 170, 30, 147, 201, 157, 30, 147, 209, 208, 30, + 147, 229, 137, 30, 147, 201, 154, 223, 16, 3, 210, 143, 223, 16, 3, 247, + 39, 223, 16, 3, 219, 246, 223, 16, 3, 193, 71, 223, 16, 1, 65, 223, 16, + 1, 228, 74, 222, 32, 223, 16, 1, 68, 223, 16, 1, 223, 199, 223, 16, 1, + 66, 223, 16, 1, 210, 221, 247, 9, 223, 16, 1, 214, 69, 219, 203, 223, 16, + 1, 214, 69, 219, 204, 207, 131, 223, 16, 1, 71, 223, 16, 1, 251, 236, + 223, 16, 1, 74, 223, 16, 1, 155, 223, 16, 1, 222, 142, 205, 124, 223, 16, + 1, 222, 142, 215, 107, 223, 16, 1, 231, 240, 223, 16, 1, 231, 241, 215, + 107, 223, 16, 1, 214, 68, 223, 16, 1, 247, 160, 223, 16, 1, 247, 161, + 215, 107, 223, 16, 1, 223, 32, 223, 16, 1, 212, 102, 215, 107, 223, 16, + 1, 223, 33, 217, 116, 223, 16, 1, 212, 101, 223, 16, 1, 197, 132, 223, + 16, 1, 197, 133, 217, 116, 223, 16, 1, 237, 191, 223, 16, 1, 237, 192, + 217, 116, 223, 16, 1, 215, 7, 215, 107, 223, 16, 1, 190, 190, 223, 16, 1, + 199, 252, 215, 107, 223, 16, 1, 238, 32, 223, 16, 1, 238, 33, 217, 116, + 223, 16, 1, 180, 223, 16, 1, 168, 223, 16, 1, 210, 221, 215, 107, 223, + 16, 1, 249, 153, 223, 16, 1, 249, 154, 215, 107, 223, 16, 1, 174, 223, + 16, 1, 170, 223, 16, 1, 165, 223, 16, 1, 207, 186, 251, 246, 223, 16, 1, + 173, 223, 16, 1, 193, 190, 223, 16, 1, 205, 207, 215, 107, 223, 16, 1, + 205, 207, 217, 116, 223, 16, 1, 188, 223, 16, 1, 140, 223, 16, 3, 247, + 40, 199, 100, 223, 16, 18, 3, 199, 175, 223, 16, 18, 3, 198, 84, 223, 16, + 18, 3, 192, 250, 223, 16, 18, 3, 192, 251, 216, 198, 223, 16, 18, 3, 200, + 208, 223, 16, 18, 3, 200, 209, 216, 185, 223, 16, 18, 3, 199, 201, 223, + 16, 18, 3, 236, 230, 215, 106, 223, 16, 18, 3, 210, 16, 223, 16, 120, 3, + 221, 244, 223, 16, 120, 3, 210, 31, 223, 16, 120, 3, 247, 145, 223, 16, + 210, 157, 223, 16, 45, 207, 40, 223, 16, 50, 207, 40, 223, 16, 210, 209, + 251, 124, 223, 16, 210, 209, 217, 137, 223, 16, 210, 209, 218, 212, 223, + 16, 210, 209, 193, 64, 223, 16, 210, 209, 210, 158, 223, 16, 210, 209, + 219, 104, 223, 16, 210, 209, 218, 204, 223, 16, 210, 209, 252, 36, 223, + 16, 210, 209, 252, 37, 252, 36, 223, 16, 210, 209, 209, 119, 223, 16, + 153, 210, 209, 209, 119, 223, 16, 210, 153, 223, 16, 17, 191, 77, 223, + 16, 17, 107, 223, 16, 17, 109, 223, 16, 17, 138, 223, 16, 17, 134, 223, + 16, 17, 149, 223, 16, 17, 169, 223, 16, 17, 175, 223, 16, 17, 171, 223, + 16, 17, 178, 223, 16, 210, 209, 198, 127, 197, 73, 223, 16, 210, 209, + 223, 64, 80, 1, 203, 139, 231, 91, 80, 1, 203, 139, 247, 1, 80, 1, 203, + 139, 222, 252, 80, 1, 203, 139, 213, 79, 80, 1, 203, 139, 248, 203, 80, + 3, 203, 139, 205, 108, 80, 52, 1, 203, 139, 207, 85, 80, 1, 54, 220, 95, + 212, 101, 80, 1, 54, 220, 95, 233, 109, 80, 1, 54, 220, 95, 231, 240, 80, + 1, 54, 220, 95, 231, 91, 80, 1, 54, 220, 95, 223, 32, 80, 1, 54, 220, 95, + 222, 252, 80, 1, 54, 220, 95, 237, 191, 80, 1, 54, 220, 95, 237, 175, 80, + 1, 54, 220, 95, 213, 79, 80, 54, 220, 95, 17, 191, 77, 80, 54, 220, 95, + 17, 107, 80, 54, 220, 95, 17, 109, 80, 54, 220, 95, 17, 138, 80, 54, 220, + 95, 17, 134, 80, 54, 220, 95, 17, 149, 80, 54, 220, 95, 17, 169, 80, 54, + 220, 95, 17, 175, 80, 54, 220, 95, 17, 171, 80, 54, 220, 95, 17, 178, 80, + 1, 54, 220, 95, 219, 73, 80, 1, 54, 220, 95, 238, 32, 80, 1, 54, 220, 95, + 237, 68, 80, 1, 54, 220, 95, 249, 153, 80, 1, 54, 220, 95, 248, 203, 246, + 250, 1, 65, 246, 250, 1, 68, 246, 250, 1, 66, 246, 250, 1, 71, 246, 250, + 1, 251, 236, 246, 250, 1, 74, 246, 250, 1, 155, 246, 250, 1, 221, 215, + 246, 250, 1, 231, 240, 246, 250, 1, 231, 91, 246, 250, 1, 213, 233, 246, + 250, 1, 214, 68, 246, 250, 1, 247, 1, 246, 250, 1, 243, 98, 246, 250, 1, + 223, 32, 246, 250, 1, 222, 252, 246, 250, 1, 213, 221, 246, 250, 1, 213, + 224, 246, 250, 1, 213, 222, 246, 250, 1, 190, 190, 246, 250, 1, 199, 49, + 246, 250, 1, 238, 32, 246, 250, 1, 237, 68, 246, 250, 1, 212, 144, 246, + 250, 1, 180, 246, 250, 1, 237, 191, 246, 250, 1, 168, 246, 250, 1, 208, + 250, 246, 250, 1, 209, 228, 246, 250, 1, 249, 153, 246, 250, 1, 248, 203, + 246, 250, 1, 215, 143, 246, 250, 1, 174, 246, 250, 1, 249, 53, 246, 250, + 1, 170, 246, 250, 1, 165, 246, 250, 1, 173, 246, 250, 1, 195, 188, 246, + 250, 1, 201, 175, 246, 250, 1, 188, 246, 250, 1, 140, 246, 250, 18, 3, + 252, 206, 246, 250, 18, 3, 68, 246, 250, 18, 3, 223, 199, 246, 250, 18, + 3, 234, 166, 246, 250, 18, 3, 66, 246, 250, 18, 3, 211, 151, 246, 250, + 18, 3, 74, 246, 250, 18, 3, 251, 236, 246, 250, 18, 3, 250, 163, 246, + 250, 18, 3, 196, 152, 246, 250, 120, 3, 170, 246, 250, 120, 3, 165, 246, + 250, 120, 3, 173, 246, 250, 120, 3, 193, 190, 246, 250, 1, 53, 222, 152, + 246, 250, 1, 53, 232, 51, 246, 250, 1, 53, 214, 70, 246, 250, 120, 3, 53, + 214, 70, 246, 250, 1, 53, 247, 3, 246, 250, 1, 53, 200, 43, 246, 250, 1, + 53, 215, 61, 246, 250, 1, 53, 210, 236, 246, 250, 1, 53, 192, 159, 246, + 250, 1, 53, 146, 246, 250, 1, 53, 172, 246, 250, 1, 53, 201, 178, 246, + 250, 120, 3, 53, 218, 168, 246, 250, 120, 3, 53, 230, 116, 246, 250, 17, + 191, 77, 246, 250, 17, 107, 246, 250, 17, 109, 246, 250, 17, 138, 246, + 250, 17, 134, 246, 250, 17, 149, 246, 250, 17, 169, 246, 250, 17, 175, + 246, 250, 17, 171, 246, 250, 17, 178, 246, 250, 208, 152, 201, 217, 246, + 250, 208, 152, 237, 238, 246, 250, 208, 152, 55, 237, 238, 246, 250, 208, + 152, 197, 225, 237, 238, 80, 1, 221, 206, 231, 240, 80, 1, 221, 206, 247, + 160, 80, 1, 221, 206, 247, 1, 80, 1, 221, 206, 223, 32, 80, 1, 221, 206, + 222, 252, 80, 1, 221, 206, 212, 101, 80, 1, 221, 206, 197, 132, 80, 1, + 221, 206, 197, 120, 80, 1, 221, 206, 237, 191, 80, 1, 221, 206, 237, 175, + 80, 1, 221, 206, 237, 68, 80, 1, 221, 206, 180, 80, 1, 221, 206, 188, 80, + 1, 221, 206, 140, 80, 1, 221, 206, 229, 177, 80, 1, 221, 206, 233, 109, + 80, 52, 1, 221, 206, 207, 85, 80, 1, 221, 206, 192, 220, 80, 1, 221, 206, + 191, 123, 80, 1, 221, 206, 165, 80, 219, 28, 221, 206, 211, 179, 80, 219, + 28, 221, 206, 208, 46, 80, 219, 28, 221, 206, 229, 78, 80, 16, 251, 222, + 233, 215, 80, 16, 251, 222, 107, 80, 16, 251, 222, 109, 80, 1, 251, 222, + 165, 80, 3, 210, 139, 222, 62, 198, 79, 80, 3, 54, 220, 95, 198, 77, 80, + 3, 54, 220, 95, 198, 74, 80, 1, 202, 238, 210, 189, 247, 1, 80, 1, 202, + 238, 210, 189, 203, 165, 54, 195, 59, 1, 130, 221, 67, 54, 195, 59, 1, + 137, 221, 67, 54, 195, 59, 1, 130, 221, 183, 54, 195, 59, 1, 137, 221, + 183, 54, 195, 59, 1, 130, 221, 192, 54, 195, 59, 1, 137, 221, 192, 54, + 195, 59, 1, 130, 231, 3, 54, 195, 59, 1, 137, 231, 3, 54, 195, 59, 1, + 130, 213, 249, 54, 195, 59, 1, 137, 213, 249, 54, 195, 59, 1, 130, 242, + 99, 54, 195, 59, 1, 137, 242, 99, 54, 195, 59, 1, 130, 243, 68, 54, 195, + 59, 1, 137, 243, 68, 54, 195, 59, 1, 130, 202, 46, 54, 195, 59, 1, 137, + 202, 46, 54, 195, 59, 1, 130, 212, 65, 54, 195, 59, 1, 137, 212, 65, 54, + 195, 59, 1, 130, 236, 174, 54, 195, 59, 1, 137, 236, 174, 54, 195, 59, 1, + 130, 159, 54, 195, 59, 1, 137, 159, 54, 195, 59, 1, 130, 198, 241, 54, + 195, 59, 1, 137, 198, 241, 54, 195, 59, 1, 130, 213, 43, 54, 195, 59, 1, + 137, 213, 43, 54, 195, 59, 1, 130, 248, 111, 54, 195, 59, 1, 137, 248, + 111, 54, 195, 59, 1, 130, 209, 73, 54, 195, 59, 1, 137, 209, 73, 54, 195, + 59, 1, 130, 209, 199, 54, 195, 59, 1, 137, 209, 199, 54, 195, 59, 1, 130, + 232, 175, 54, 195, 59, 1, 137, 232, 175, 54, 195, 59, 1, 130, 216, 12, + 54, 195, 59, 1, 137, 216, 12, 54, 195, 59, 1, 130, 192, 12, 54, 195, 59, + 1, 137, 192, 12, 54, 195, 59, 1, 130, 206, 162, 54, 195, 59, 1, 137, 206, + 162, 54, 195, 59, 1, 130, 219, 43, 54, 195, 59, 1, 137, 219, 43, 54, 195, + 59, 1, 130, 195, 24, 54, 195, 59, 1, 137, 195, 24, 54, 195, 59, 1, 130, + 229, 23, 54, 195, 59, 1, 137, 229, 23, 54, 195, 59, 1, 130, 74, 54, 195, + 59, 1, 137, 74, 54, 195, 59, 217, 113, 222, 83, 54, 195, 59, 18, 252, + 206, 54, 195, 59, 18, 68, 54, 195, 59, 18, 196, 152, 54, 195, 59, 18, 66, + 54, 195, 59, 18, 71, 54, 195, 59, 18, 74, 54, 195, 59, 217, 113, 221, + 186, 54, 195, 59, 18, 228, 35, 54, 195, 59, 18, 196, 151, 54, 195, 59, + 18, 196, 168, 54, 195, 59, 18, 250, 161, 54, 195, 59, 18, 250, 131, 54, + 195, 59, 18, 251, 132, 54, 195, 59, 18, 251, 149, 54, 195, 59, 163, 217, + 113, 234, 147, 54, 195, 59, 163, 217, 113, 212, 143, 54, 195, 59, 163, + 217, 113, 198, 241, 54, 195, 59, 163, 217, 113, 202, 18, 54, 195, 59, 16, + 221, 44, 54, 195, 59, 16, 212, 143, 54, 195, 59, 16, 205, 152, 54, 195, + 59, 16, 229, 24, 229, 10, 54, 195, 59, 16, 221, 55, 221, 54, 216, 205, + 217, 18, 1, 71, 216, 205, 217, 18, 1, 74, 216, 205, 217, 18, 1, 247, 1, + 216, 205, 217, 18, 1, 212, 101, 216, 205, 217, 18, 1, 197, 132, 216, 205, + 217, 18, 1, 197, 120, 216, 205, 217, 18, 1, 237, 191, 216, 205, 217, 18, + 1, 237, 175, 216, 205, 217, 18, 1, 213, 79, 216, 205, 217, 18, 1, 203, + 165, 216, 205, 217, 18, 1, 201, 175, 216, 205, 217, 18, 18, 3, 223, 199, + 216, 205, 217, 18, 18, 3, 196, 30, 216, 205, 217, 18, 18, 3, 252, 170, + 216, 205, 217, 18, 18, 3, 250, 163, 216, 205, 217, 18, 18, 3, 252, 162, + 216, 205, 217, 18, 243, 116, 216, 205, 217, 18, 251, 242, 221, 173, 216, + 205, 217, 18, 251, 100, 216, 205, 217, 18, 5, 207, 46, 77, 216, 205, 217, + 18, 193, 23, 207, 46, 77, 216, 205, 217, 18, 18, 3, 195, 35, 216, 205, + 217, 18, 195, 40, 36, 5, 197, 113, 36, 5, 197, 116, 36, 5, 197, 119, 36, + 5, 197, 117, 36, 5, 197, 118, 36, 5, 197, 115, 36, 5, 237, 169, 36, 5, + 237, 171, 36, 5, 237, 174, 36, 5, 237, 172, 36, 5, 237, 173, 36, 5, 237, + 170, 36, 5, 235, 22, 36, 5, 235, 26, 36, 5, 235, 34, 36, 5, 235, 31, 36, + 5, 235, 32, 36, 5, 235, 23, 36, 5, 247, 56, 36, 5, 247, 50, 36, 5, 247, + 52, 36, 5, 247, 55, 36, 5, 247, 53, 36, 5, 247, 54, 36, 5, 247, 51, 36, + 5, 249, 53, 36, 5, 249, 32, 36, 5, 249, 44, 36, 5, 249, 52, 36, 5, 249, + 47, 36, 5, 249, 48, 36, 5, 249, 36, 8, 2, 1, 249, 82, 251, 160, 8, 2, 1, + 42, 207, 16, 8, 2, 1, 248, 135, 71, 8, 2, 1, 249, 82, 71, 8, 2, 1, 235, + 15, 4, 232, 188, 8, 2, 1, 219, 189, 233, 175, 8, 2, 1, 27, 232, 52, 4, + 238, 212, 8, 2, 1, 220, 143, 4, 223, 93, 219, 245, 206, 8, 8, 2, 1, 220, + 143, 4, 55, 82, 198, 152, 8, 2, 1, 220, 143, 4, 82, 206, 188, 8, 2, 1, + 218, 169, 4, 238, 212, 8, 2, 1, 215, 62, 4, 238, 212, 8, 2, 1, 234, 89, + 4, 238, 212, 8, 2, 1, 248, 135, 74, 8, 2, 1, 248, 135, 187, 4, 106, 8, 2, + 1, 211, 77, 187, 4, 106, 8, 2, 1, 223, 93, 211, 151, 8, 2, 1, 153, 211, + 152, 4, 106, 8, 2, 1, 153, 211, 152, 4, 228, 241, 106, 8, 2, 1, 153, 187, + 211, 72, 8, 2, 1, 153, 187, 211, 73, 4, 106, 8, 2, 1, 201, 68, 146, 8, 1, + 2, 6, 207, 222, 4, 50, 219, 212, 8, 2, 1, 207, 222, 193, 51, 230, 31, 8, + 2, 1, 55, 146, 8, 2, 1, 207, 222, 4, 238, 212, 8, 2, 1, 55, 207, 222, 4, + 238, 212, 8, 2, 1, 27, 146, 8, 2, 1, 27, 207, 222, 4, 206, 188, 8, 2, 1, + 249, 72, 234, 12, 8, 2, 1, 126, 4, 203, 40, 50, 219, 212, 8, 2, 1, 126, + 249, 88, 4, 203, 40, 50, 219, 212, 8, 2, 1, 196, 139, 8, 2, 1, 153, 196, + 139, 8, 2, 1, 126, 4, 45, 102, 8, 2, 1, 243, 95, 8, 2, 1, 243, 96, 4, + 130, 50, 206, 188, 8, 2, 1, 243, 96, 4, 130, 45, 204, 5, 8, 2, 1, 192, + 236, 4, 130, 50, 206, 188, 8, 2, 1, 192, 236, 4, 179, 45, 219, 212, 8, 2, + 1, 192, 236, 4, 179, 45, 219, 213, 23, 130, 50, 206, 188, 8, 2, 1, 192, + 236, 4, 179, 45, 219, 213, 4, 204, 5, 8, 2, 1, 192, 160, 4, 203, 40, 50, + 219, 212, 52, 248, 37, 4, 223, 93, 248, 36, 52, 1, 2, 229, 196, 52, 1, 2, + 220, 143, 4, 223, 93, 219, 245, 206, 8, 52, 1, 2, 220, 143, 4, 82, 198, + 152, 52, 1, 2, 126, 4, 45, 102, 8, 2, 1, 205, 174, 192, 95, 8, 2, 1, 223, + 81, 71, 8, 2, 1, 211, 77, 211, 151, 8, 2, 1, 196, 82, 8, 2, 1, 223, 93, + 251, 160, 35, 1, 2, 6, 211, 110, 8, 2, 1, 235, 37, 237, 3, 4, 207, 24, + 102, 8, 2, 1, 197, 170, 237, 3, 4, 207, 24, 102, 8, 2, 1, 153, 207, 222, + 4, 82, 198, 152, 52, 1, 2, 153, 193, 224, 52, 1, 45, 199, 228, 52, 1, 50, + 199, 228, 103, 2, 1, 65, 103, 2, 1, 71, 103, 2, 1, 68, 103, 2, 1, 74, + 103, 2, 1, 66, 103, 2, 1, 196, 12, 103, 2, 1, 231, 240, 103, 2, 1, 155, + 103, 2, 1, 231, 165, 103, 2, 1, 231, 53, 103, 2, 1, 231, 3, 103, 2, 1, + 230, 179, 103, 2, 1, 230, 138, 103, 2, 1, 140, 103, 2, 1, 229, 245, 103, + 2, 1, 229, 158, 103, 2, 1, 229, 23, 103, 2, 1, 228, 159, 103, 2, 1, 228, + 126, 103, 2, 1, 173, 103, 2, 1, 219, 238, 103, 2, 1, 219, 146, 103, 2, 1, + 219, 43, 103, 2, 1, 218, 225, 103, 2, 1, 218, 192, 103, 2, 1, 174, 103, + 2, 1, 216, 232, 103, 2, 1, 216, 100, 103, 2, 1, 216, 12, 103, 2, 1, 215, + 155, 103, 2, 1, 180, 103, 2, 1, 229, 47, 103, 2, 1, 214, 237, 103, 2, 1, + 214, 121, 103, 2, 1, 213, 219, 103, 2, 1, 213, 43, 103, 2, 1, 212, 178, + 103, 2, 1, 212, 112, 103, 2, 1, 208, 32, 103, 2, 1, 208, 16, 103, 2, 1, + 208, 9, 103, 2, 1, 207, 255, 103, 2, 1, 207, 244, 103, 2, 1, 207, 242, + 103, 2, 1, 188, 103, 2, 1, 206, 8, 103, 2, 1, 205, 68, 103, 2, 1, 202, + 222, 103, 2, 1, 202, 46, 103, 2, 1, 201, 4, 103, 2, 1, 200, 158, 103, 2, + 1, 238, 32, 103, 2, 1, 190, 190, 103, 2, 1, 237, 146, 103, 2, 1, 199, + 145, 103, 2, 1, 237, 44, 103, 2, 1, 198, 193, 103, 2, 1, 236, 174, 103, + 2, 1, 235, 89, 103, 2, 1, 235, 57, 103, 2, 1, 236, 186, 103, 2, 1, 198, + 115, 103, 2, 1, 198, 114, 103, 2, 1, 198, 103, 103, 2, 1, 198, 102, 103, + 2, 1, 198, 101, 103, 2, 1, 198, 100, 103, 2, 1, 197, 168, 103, 2, 1, 197, + 161, 103, 2, 1, 197, 146, 103, 2, 1, 197, 144, 103, 2, 1, 197, 140, 103, + 2, 1, 197, 139, 103, 2, 1, 193, 190, 103, 2, 1, 193, 125, 103, 2, 1, 193, + 86, 103, 2, 1, 193, 48, 103, 2, 1, 193, 0, 103, 2, 1, 192, 243, 103, 2, + 1, 170, 216, 205, 217, 18, 1, 221, 51, 216, 205, 217, 18, 1, 205, 152, + 216, 205, 217, 18, 1, 220, 96, 216, 205, 217, 18, 1, 216, 23, 216, 205, + 217, 18, 1, 168, 216, 205, 217, 18, 1, 180, 216, 205, 217, 18, 1, 243, + 87, 216, 205, 217, 18, 1, 198, 154, 216, 205, 217, 18, 1, 221, 176, 216, + 205, 217, 18, 1, 213, 239, 216, 205, 217, 18, 1, 198, 232, 216, 205, 217, + 18, 1, 193, 173, 216, 205, 217, 18, 1, 192, 106, 216, 205, 217, 18, 1, + 228, 147, 216, 205, 217, 18, 1, 196, 113, 216, 205, 217, 18, 1, 68, 216, + 205, 217, 18, 1, 209, 222, 216, 205, 217, 18, 1, 250, 175, 216, 205, 217, + 18, 1, 230, 251, 216, 205, 217, 18, 1, 222, 250, 216, 205, 217, 18, 1, + 207, 156, 216, 205, 217, 18, 1, 249, 153, 216, 205, 217, 18, 1, 222, 234, + 216, 205, 217, 18, 1, 237, 1, 216, 205, 217, 18, 1, 231, 60, 216, 205, + 217, 18, 1, 237, 46, 216, 205, 217, 18, 1, 248, 198, 216, 205, 217, 18, + 1, 221, 52, 219, 9, 216, 205, 217, 18, 1, 220, 97, 219, 9, 216, 205, 217, + 18, 1, 216, 24, 219, 9, 216, 205, 217, 18, 1, 210, 221, 219, 9, 216, 205, + 217, 18, 1, 215, 7, 219, 9, 216, 205, 217, 18, 1, 198, 155, 219, 9, 216, + 205, 217, 18, 1, 213, 240, 219, 9, 216, 205, 217, 18, 1, 228, 74, 219, 9, + 216, 205, 217, 18, 18, 3, 211, 102, 216, 205, 217, 18, 18, 3, 223, 160, + 216, 205, 217, 18, 18, 3, 251, 130, 216, 205, 217, 18, 18, 3, 192, 69, + 216, 205, 217, 18, 18, 3, 202, 6, 216, 205, 217, 18, 18, 3, 196, 110, + 216, 205, 217, 18, 18, 3, 243, 114, 216, 205, 217, 18, 18, 3, 212, 127, + 216, 205, 217, 18, 243, 115, 216, 205, 217, 18, 218, 209, 223, 42, 216, + 205, 217, 18, 251, 38, 223, 42, 216, 205, 217, 18, 17, 191, 77, 216, 205, + 217, 18, 17, 107, 216, 205, 217, 18, 17, 109, 216, 205, 217, 18, 17, 138, + 216, 205, 217, 18, 17, 134, 216, 205, 217, 18, 17, 149, 216, 205, 217, + 18, 17, 169, 216, 205, 217, 18, 17, 175, 216, 205, 217, 18, 17, 171, 216, + 205, 217, 18, 17, 178, 30, 222, 174, 212, 3, 30, 222, 174, 212, 8, 30, + 222, 174, 192, 5, 30, 222, 174, 192, 4, 30, 222, 174, 192, 3, 30, 222, + 174, 196, 218, 30, 222, 174, 196, 222, 30, 222, 174, 191, 219, 30, 222, + 174, 191, 215, 30, 222, 174, 233, 241, 30, 222, 174, 233, 239, 30, 222, + 174, 233, 240, 30, 222, 174, 233, 237, 30, 222, 174, 228, 60, 30, 222, + 174, 228, 59, 30, 222, 174, 228, 57, 30, 222, 174, 228, 58, 30, 222, 174, + 228, 63, 30, 222, 174, 228, 56, 30, 222, 174, 228, 55, 30, 222, 174, 228, + 65, 30, 222, 174, 251, 24, 30, 222, 174, 251, 23, 30, 125, 213, 197, 30, + 125, 213, 203, 30, 125, 201, 156, 30, 125, 201, 155, 30, 125, 198, 163, + 30, 125, 198, 161, 30, 125, 198, 160, 30, 125, 198, 166, 30, 125, 198, + 167, 30, 125, 198, 159, 30, 125, 206, 218, 30, 125, 206, 233, 30, 125, + 201, 162, 30, 125, 206, 230, 30, 125, 206, 220, 30, 125, 206, 222, 30, + 125, 206, 209, 30, 125, 206, 210, 30, 125, 222, 68, 30, 125, 216, 72, 30, + 125, 216, 66, 30, 125, 201, 166, 30, 125, 216, 69, 30, 125, 216, 75, 30, + 125, 209, 150, 30, 125, 209, 159, 30, 125, 209, 163, 30, 125, 201, 164, + 30, 125, 209, 153, 30, 125, 209, 167, 30, 125, 209, 168, 30, 125, 202, + 152, 30, 125, 202, 155, 30, 125, 201, 160, 30, 125, 201, 158, 30, 125, + 202, 150, 30, 125, 202, 158, 30, 125, 202, 159, 30, 125, 202, 144, 30, + 125, 202, 157, 30, 125, 210, 147, 30, 125, 210, 148, 30, 125, 192, 53, + 30, 125, 192, 56, 30, 125, 243, 22, 30, 125, 243, 21, 30, 125, 201, 171, + 30, 125, 209, 206, 30, 125, 209, 205, 12, 15, 225, 190, 12, 15, 225, 189, + 12, 15, 225, 188, 12, 15, 225, 187, 12, 15, 225, 186, 12, 15, 225, 185, + 12, 15, 225, 184, 12, 15, 225, 183, 12, 15, 225, 182, 12, 15, 225, 181, + 12, 15, 225, 180, 12, 15, 225, 179, 12, 15, 225, 178, 12, 15, 225, 177, + 12, 15, 225, 176, 12, 15, 225, 175, 12, 15, 225, 174, 12, 15, 225, 173, + 12, 15, 225, 172, 12, 15, 225, 171, 12, 15, 225, 170, 12, 15, 225, 169, + 12, 15, 225, 168, 12, 15, 225, 167, 12, 15, 225, 166, 12, 15, 225, 165, + 12, 15, 225, 164, 12, 15, 225, 163, 12, 15, 225, 162, 12, 15, 225, 161, + 12, 15, 225, 160, 12, 15, 225, 159, 12, 15, 225, 158, 12, 15, 225, 157, + 12, 15, 225, 156, 12, 15, 225, 155, 12, 15, 225, 154, 12, 15, 225, 153, + 12, 15, 225, 152, 12, 15, 225, 151, 12, 15, 225, 150, 12, 15, 225, 149, + 12, 15, 225, 148, 12, 15, 225, 147, 12, 15, 225, 146, 12, 15, 225, 145, + 12, 15, 225, 144, 12, 15, 225, 143, 12, 15, 225, 142, 12, 15, 225, 141, + 12, 15, 225, 140, 12, 15, 225, 139, 12, 15, 225, 138, 12, 15, 225, 137, + 12, 15, 225, 136, 12, 15, 225, 135, 12, 15, 225, 134, 12, 15, 225, 133, + 12, 15, 225, 132, 12, 15, 225, 131, 12, 15, 225, 130, 12, 15, 225, 129, + 12, 15, 225, 128, 12, 15, 225, 127, 12, 15, 225, 126, 12, 15, 225, 125, + 12, 15, 225, 124, 12, 15, 225, 123, 12, 15, 225, 122, 12, 15, 225, 121, + 12, 15, 225, 120, 12, 15, 225, 119, 12, 15, 225, 118, 12, 15, 225, 117, + 12, 15, 225, 116, 12, 15, 225, 115, 12, 15, 225, 114, 12, 15, 225, 113, + 12, 15, 225, 112, 12, 15, 225, 111, 12, 15, 225, 110, 12, 15, 225, 109, + 12, 15, 225, 108, 12, 15, 225, 107, 12, 15, 225, 106, 12, 15, 225, 105, + 12, 15, 225, 104, 12, 15, 225, 103, 12, 15, 225, 102, 12, 15, 225, 101, + 12, 15, 225, 100, 12, 15, 225, 99, 12, 15, 225, 98, 12, 15, 225, 97, 12, + 15, 225, 96, 12, 15, 225, 95, 12, 15, 225, 94, 12, 15, 225, 93, 12, 15, + 225, 92, 12, 15, 225, 91, 12, 15, 225, 90, 12, 15, 225, 89, 12, 15, 225, + 88, 12, 15, 225, 87, 12, 15, 225, 86, 12, 15, 225, 85, 12, 15, 225, 84, + 12, 15, 225, 83, 12, 15, 225, 82, 12, 15, 225, 81, 12, 15, 225, 80, 12, + 15, 225, 79, 12, 15, 225, 78, 12, 15, 225, 77, 12, 15, 225, 76, 12, 15, + 225, 75, 12, 15, 225, 74, 12, 15, 225, 73, 12, 15, 225, 72, 12, 15, 225, + 71, 12, 15, 225, 70, 12, 15, 225, 69, 12, 15, 225, 68, 12, 15, 225, 67, + 12, 15, 225, 66, 12, 15, 225, 65, 12, 15, 225, 64, 12, 15, 225, 63, 12, + 15, 225, 62, 12, 15, 225, 61, 12, 15, 225, 60, 12, 15, 225, 59, 12, 15, + 225, 58, 12, 15, 225, 57, 12, 15, 225, 56, 12, 15, 225, 55, 12, 15, 225, + 54, 12, 15, 225, 53, 12, 15, 225, 52, 12, 15, 225, 51, 12, 15, 225, 50, + 12, 15, 225, 49, 12, 15, 225, 48, 12, 15, 225, 47, 12, 15, 225, 46, 12, + 15, 225, 45, 12, 15, 225, 44, 12, 15, 225, 43, 12, 15, 225, 42, 12, 15, + 225, 41, 12, 15, 225, 40, 12, 15, 225, 39, 12, 15, 225, 38, 12, 15, 225, + 37, 12, 15, 225, 36, 12, 15, 225, 35, 12, 15, 225, 34, 12, 15, 225, 33, + 12, 15, 225, 32, 12, 15, 225, 31, 12, 15, 225, 30, 12, 15, 225, 29, 12, + 15, 225, 28, 12, 15, 225, 27, 12, 15, 225, 26, 12, 15, 225, 25, 12, 15, + 225, 24, 12, 15, 225, 23, 12, 15, 225, 22, 12, 15, 225, 21, 12, 15, 225, + 20, 12, 15, 225, 19, 12, 15, 225, 18, 12, 15, 225, 17, 12, 15, 225, 16, + 12, 15, 225, 15, 12, 15, 225, 14, 12, 15, 225, 13, 12, 15, 225, 12, 12, + 15, 225, 11, 12, 15, 225, 10, 12, 15, 225, 9, 12, 15, 225, 8, 12, 15, + 225, 7, 12, 15, 225, 6, 12, 15, 225, 5, 12, 15, 225, 4, 12, 15, 225, 3, + 12, 15, 225, 2, 12, 15, 225, 1, 12, 15, 225, 0, 12, 15, 224, 255, 12, 15, + 224, 254, 12, 15, 224, 253, 12, 15, 224, 252, 12, 15, 224, 251, 12, 15, + 224, 250, 12, 15, 224, 249, 12, 15, 224, 248, 12, 15, 224, 247, 12, 15, + 224, 246, 12, 15, 224, 245, 12, 15, 224, 244, 12, 15, 224, 243, 12, 15, + 224, 242, 12, 15, 224, 241, 12, 15, 224, 240, 12, 15, 224, 239, 12, 15, + 224, 238, 12, 15, 224, 237, 12, 15, 224, 236, 12, 15, 224, 235, 12, 15, + 224, 234, 12, 15, 224, 233, 12, 15, 224, 232, 12, 15, 224, 231, 12, 15, + 224, 230, 12, 15, 224, 229, 12, 15, 224, 228, 12, 15, 224, 227, 12, 15, + 224, 226, 12, 15, 224, 225, 12, 15, 224, 224, 12, 15, 224, 223, 12, 15, + 224, 222, 12, 15, 224, 221, 12, 15, 224, 220, 12, 15, 224, 219, 12, 15, + 224, 218, 12, 15, 224, 217, 12, 15, 224, 216, 12, 15, 224, 215, 12, 15, + 224, 214, 12, 15, 224, 213, 12, 15, 224, 212, 12, 15, 224, 211, 12, 15, + 224, 210, 12, 15, 224, 209, 12, 15, 224, 208, 12, 15, 224, 207, 12, 15, + 224, 206, 12, 15, 224, 205, 12, 15, 224, 204, 12, 15, 224, 203, 12, 15, + 224, 202, 12, 15, 224, 201, 12, 15, 224, 200, 12, 15, 224, 199, 12, 15, + 224, 198, 12, 15, 224, 197, 12, 15, 224, 196, 12, 15, 224, 195, 12, 15, + 224, 194, 12, 15, 224, 193, 12, 15, 224, 192, 12, 15, 224, 191, 12, 15, + 224, 190, 12, 15, 224, 189, 12, 15, 224, 188, 12, 15, 224, 187, 12, 15, + 224, 186, 12, 15, 224, 185, 12, 15, 224, 184, 12, 15, 224, 183, 12, 15, + 224, 182, 12, 15, 224, 181, 12, 15, 224, 180, 12, 15, 224, 179, 12, 15, + 224, 178, 12, 15, 224, 177, 12, 15, 224, 176, 12, 15, 224, 175, 12, 15, + 224, 174, 12, 15, 224, 173, 12, 15, 224, 172, 12, 15, 224, 171, 12, 15, + 224, 170, 12, 15, 224, 169, 12, 15, 224, 168, 12, 15, 224, 167, 12, 15, + 224, 166, 12, 15, 224, 165, 12, 15, 224, 164, 12, 15, 224, 163, 12, 15, + 224, 162, 12, 15, 224, 161, 12, 15, 224, 160, 12, 15, 224, 159, 12, 15, + 224, 158, 12, 15, 224, 157, 12, 15, 224, 156, 12, 15, 224, 155, 12, 15, + 224, 154, 12, 15, 224, 153, 12, 15, 224, 152, 12, 15, 224, 151, 12, 15, + 224, 150, 12, 15, 224, 149, 12, 15, 224, 148, 12, 15, 224, 147, 12, 15, + 224, 146, 12, 15, 224, 145, 12, 15, 224, 144, 12, 15, 224, 143, 12, 15, + 224, 142, 12, 15, 224, 141, 12, 15, 224, 140, 12, 15, 224, 139, 12, 15, + 224, 138, 12, 15, 224, 137, 12, 15, 224, 136, 12, 15, 224, 135, 12, 15, + 224, 134, 12, 15, 224, 133, 12, 15, 224, 132, 12, 15, 224, 131, 12, 15, + 224, 130, 12, 15, 224, 129, 12, 15, 224, 128, 12, 15, 224, 127, 12, 15, + 224, 126, 12, 15, 224, 125, 12, 15, 224, 124, 12, 15, 224, 123, 12, 15, + 224, 122, 12, 15, 224, 121, 12, 15, 224, 120, 12, 15, 224, 119, 12, 15, + 224, 118, 12, 15, 224, 117, 12, 15, 224, 116, 12, 15, 224, 115, 12, 15, + 224, 114, 12, 15, 224, 113, 12, 15, 224, 112, 12, 15, 224, 111, 12, 15, + 224, 110, 12, 15, 224, 109, 12, 15, 224, 108, 12, 15, 224, 107, 12, 15, + 224, 106, 12, 15, 224, 105, 12, 15, 224, 104, 12, 15, 224, 103, 12, 15, + 224, 102, 12, 15, 224, 101, 12, 15, 224, 100, 12, 15, 224, 99, 12, 15, + 224, 98, 12, 15, 224, 97, 12, 15, 224, 96, 12, 15, 224, 95, 12, 15, 224, + 94, 12, 15, 224, 93, 12, 15, 224, 92, 12, 15, 224, 91, 12, 15, 224, 90, + 12, 15, 224, 89, 12, 15, 224, 88, 12, 15, 224, 87, 12, 15, 224, 86, 12, + 15, 224, 85, 12, 15, 224, 84, 12, 15, 224, 83, 12, 15, 224, 82, 12, 15, + 224, 81, 12, 15, 224, 80, 12, 15, 224, 79, 12, 15, 224, 78, 12, 15, 224, + 77, 12, 15, 224, 76, 12, 15, 224, 75, 12, 15, 224, 74, 12, 15, 224, 73, + 12, 15, 224, 72, 12, 15, 224, 71, 12, 15, 224, 70, 12, 15, 224, 69, 12, + 15, 224, 68, 12, 15, 224, 67, 12, 15, 224, 66, 12, 15, 224, 65, 12, 15, + 224, 64, 12, 15, 224, 63, 12, 15, 224, 62, 12, 15, 224, 61, 12, 15, 224, + 60, 12, 15, 224, 59, 12, 15, 224, 58, 12, 15, 224, 57, 12, 15, 224, 56, + 12, 15, 224, 55, 12, 15, 224, 54, 12, 15, 224, 53, 12, 15, 224, 52, 12, + 15, 224, 51, 12, 15, 224, 50, 12, 15, 224, 49, 12, 15, 224, 48, 12, 15, + 224, 47, 12, 15, 224, 46, 12, 15, 224, 45, 12, 15, 224, 44, 12, 15, 224, + 43, 12, 15, 224, 42, 12, 15, 224, 41, 12, 15, 224, 40, 12, 15, 224, 39, + 12, 15, 224, 38, 12, 15, 224, 37, 12, 15, 224, 36, 12, 15, 224, 35, 12, + 15, 224, 34, 12, 15, 224, 33, 12, 15, 224, 32, 12, 15, 224, 31, 12, 15, + 224, 30, 12, 15, 224, 29, 12, 15, 224, 28, 12, 15, 224, 27, 12, 15, 224, + 26, 12, 15, 224, 25, 12, 15, 224, 24, 12, 15, 224, 23, 12, 15, 224, 22, + 12, 15, 224, 21, 12, 15, 224, 20, 12, 15, 224, 19, 12, 15, 224, 18, 12, + 15, 224, 17, 12, 15, 224, 16, 12, 15, 224, 15, 12, 15, 224, 14, 12, 15, + 224, 13, 12, 15, 224, 12, 12, 15, 224, 11, 12, 15, 224, 10, 12, 15, 224, + 9, 12, 15, 224, 8, 12, 15, 224, 7, 12, 15, 224, 6, 12, 15, 224, 5, 12, + 15, 224, 4, 12, 15, 224, 3, 12, 15, 224, 2, 12, 15, 224, 1, 12, 15, 224, + 0, 12, 15, 223, 255, 12, 15, 223, 254, 12, 15, 223, 253, 12, 15, 223, + 252, 12, 15, 223, 251, 12, 15, 223, 250, 12, 15, 223, 249, 12, 15, 223, + 248, 12, 15, 223, 247, 12, 15, 223, 246, 12, 15, 223, 245, 12, 15, 223, + 244, 12, 15, 223, 243, 12, 15, 223, 242, 12, 15, 223, 241, 12, 15, 223, + 240, 12, 15, 223, 239, 12, 15, 223, 238, 12, 15, 223, 237, 12, 15, 223, + 236, 12, 15, 223, 235, 12, 15, 223, 234, 12, 15, 223, 233, 12, 15, 223, + 232, 12, 15, 223, 231, 8, 2, 34, 233, 27, 8, 2, 34, 233, 23, 8, 2, 34, + 232, 220, 8, 2, 34, 233, 26, 8, 2, 34, 233, 25, 8, 2, 34, 179, 206, 9, + 200, 43, 8, 2, 34, 201, 118, 250, 249, 2, 34, 216, 187, 212, 253, 250, + 249, 2, 34, 216, 187, 234, 195, 250, 249, 2, 34, 216, 187, 223, 131, 250, + 249, 2, 34, 195, 75, 212, 253, 250, 249, 2, 34, 216, 187, 192, 212, 136, + 1, 191, 251, 4, 229, 119, 136, 209, 62, 222, 181, 195, 166, 136, 34, 192, + 31, 191, 251, 191, 251, 210, 88, 136, 1, 251, 152, 250, 126, 136, 1, 193, + 78, 251, 192, 136, 1, 193, 78, 237, 253, 136, 1, 193, 78, 229, 245, 136, + 1, 193, 78, 222, 106, 136, 1, 193, 78, 220, 27, 136, 1, 193, 78, 53, 216, + 193, 136, 1, 193, 78, 207, 38, 136, 1, 193, 78, 199, 162, 136, 1, 251, + 152, 108, 56, 136, 1, 203, 70, 4, 203, 70, 236, 140, 136, 1, 203, 70, 4, + 202, 175, 236, 140, 136, 1, 203, 70, 4, 238, 17, 23, 203, 70, 236, 140, + 136, 1, 203, 70, 4, 238, 17, 23, 202, 175, 236, 140, 136, 1, 131, 4, 210, + 88, 136, 1, 131, 4, 208, 84, 136, 1, 131, 4, 217, 70, 136, 1, 248, 215, + 4, 238, 16, 136, 1, 231, 39, 4, 238, 16, 136, 1, 237, 254, 4, 238, 16, + 136, 1, 229, 246, 4, 217, 70, 136, 1, 195, 159, 4, 238, 16, 136, 1, 191, + 92, 4, 238, 16, 136, 1, 199, 74, 4, 238, 16, 136, 1, 191, 251, 4, 238, + 16, 136, 1, 53, 222, 107, 4, 238, 16, 136, 1, 222, 107, 4, 238, 16, 136, + 1, 220, 28, 4, 238, 16, 136, 1, 216, 194, 4, 238, 16, 136, 1, 212, 131, + 4, 238, 16, 136, 1, 205, 149, 4, 238, 16, 136, 1, 53, 210, 64, 4, 238, + 16, 136, 1, 210, 64, 4, 238, 16, 136, 1, 197, 164, 4, 238, 16, 136, 1, + 208, 43, 4, 238, 16, 136, 1, 207, 39, 4, 238, 16, 136, 1, 203, 70, 4, + 238, 16, 136, 1, 199, 163, 4, 238, 16, 136, 1, 195, 159, 4, 229, 7, 136, + 1, 248, 215, 4, 207, 161, 136, 1, 222, 107, 4, 207, 161, 136, 1, 210, 64, + 4, 207, 161, 136, 34, 131, 220, 27, 9, 1, 131, 193, 151, 76, 20, 9, 1, + 131, 193, 151, 53, 20, 9, 1, 249, 0, 76, 20, 9, 1, 249, 0, 53, 20, 9, 1, + 249, 0, 89, 20, 9, 1, 249, 0, 216, 217, 20, 9, 1, 210, 42, 76, 20, 9, 1, + 210, 42, 53, 20, 9, 1, 210, 42, 89, 20, 9, 1, 210, 42, 216, 217, 20, 9, + 1, 248, 244, 76, 20, 9, 1, 248, 244, 53, 20, 9, 1, 248, 244, 89, 20, 9, + 1, 248, 244, 216, 217, 20, 9, 1, 197, 123, 76, 20, 9, 1, 197, 123, 53, + 20, 9, 1, 197, 123, 89, 20, 9, 1, 197, 123, 216, 217, 20, 9, 1, 199, 113, + 76, 20, 9, 1, 199, 113, 53, 20, 9, 1, 199, 113, 89, 20, 9, 1, 199, 113, + 216, 217, 20, 9, 1, 197, 125, 76, 20, 9, 1, 197, 125, 53, 20, 9, 1, 197, + 125, 89, 20, 9, 1, 197, 125, 216, 217, 20, 9, 1, 195, 147, 76, 20, 9, 1, + 195, 147, 53, 20, 9, 1, 195, 147, 89, 20, 9, 1, 195, 147, 216, 217, 20, + 9, 1, 210, 40, 76, 20, 9, 1, 210, 40, 53, 20, 9, 1, 210, 40, 89, 20, 9, + 1, 210, 40, 216, 217, 20, 9, 1, 235, 42, 76, 20, 9, 1, 235, 42, 53, 20, + 9, 1, 235, 42, 89, 20, 9, 1, 235, 42, 216, 217, 20, 9, 1, 212, 88, 76, + 20, 9, 1, 212, 88, 53, 20, 9, 1, 212, 88, 89, 20, 9, 1, 212, 88, 216, + 217, 20, 9, 1, 199, 150, 76, 20, 9, 1, 199, 150, 53, 20, 9, 1, 199, 150, + 89, 20, 9, 1, 199, 150, 216, 217, 20, 9, 1, 199, 148, 76, 20, 9, 1, 199, + 148, 53, 20, 9, 1, 199, 148, 89, 20, 9, 1, 199, 148, 216, 217, 20, 9, 1, + 237, 189, 76, 20, 9, 1, 237, 189, 53, 20, 9, 1, 238, 11, 76, 20, 9, 1, + 238, 11, 53, 20, 9, 1, 235, 79, 76, 20, 9, 1, 235, 79, 53, 20, 9, 1, 237, + 187, 76, 20, 9, 1, 237, 187, 53, 20, 9, 1, 223, 4, 76, 20, 9, 1, 223, 4, + 53, 20, 9, 1, 206, 102, 76, 20, 9, 1, 206, 102, 53, 20, 9, 1, 222, 5, 76, + 20, 9, 1, 222, 5, 53, 20, 9, 1, 222, 5, 89, 20, 9, 1, 222, 5, 216, 217, + 20, 9, 1, 231, 228, 76, 20, 9, 1, 231, 228, 53, 20, 9, 1, 231, 228, 89, + 20, 9, 1, 231, 228, 216, 217, 20, 9, 1, 230, 167, 76, 20, 9, 1, 230, 167, + 53, 20, 9, 1, 230, 167, 89, 20, 9, 1, 230, 167, 216, 217, 20, 9, 1, 213, + 248, 76, 20, 9, 1, 213, 248, 53, 20, 9, 1, 213, 248, 89, 20, 9, 1, 213, + 248, 216, 217, 20, 9, 1, 213, 25, 231, 58, 76, 20, 9, 1, 213, 25, 231, + 58, 53, 20, 9, 1, 206, 166, 76, 20, 9, 1, 206, 166, 53, 20, 9, 1, 206, + 166, 89, 20, 9, 1, 206, 166, 216, 217, 20, 9, 1, 229, 211, 4, 99, 93, 76, + 20, 9, 1, 229, 211, 4, 99, 93, 53, 20, 9, 1, 229, 211, 231, 1, 76, 20, 9, + 1, 229, 211, 231, 1, 53, 20, 9, 1, 229, 211, 231, 1, 89, 20, 9, 1, 229, + 211, 231, 1, 216, 217, 20, 9, 1, 229, 211, 236, 171, 76, 20, 9, 1, 229, + 211, 236, 171, 53, 20, 9, 1, 229, 211, 236, 171, 89, 20, 9, 1, 229, 211, + 236, 171, 216, 217, 20, 9, 1, 99, 249, 81, 76, 20, 9, 1, 99, 249, 81, 53, + 20, 9, 1, 99, 249, 81, 4, 230, 58, 93, 76, 20, 9, 1, 99, 249, 81, 4, 230, + 58, 93, 53, 20, 9, 16, 75, 58, 9, 16, 75, 60, 9, 16, 105, 185, 58, 9, 16, + 105, 185, 60, 9, 16, 115, 185, 58, 9, 16, 115, 185, 60, 9, 16, 115, 185, + 209, 58, 235, 119, 58, 9, 16, 115, 185, 209, 58, 235, 119, 60, 9, 16, + 232, 128, 185, 58, 9, 16, 232, 128, 185, 60, 9, 16, 55, 81, 249, 88, 60, + 9, 16, 105, 185, 195, 85, 58, 9, 16, 105, 185, 195, 85, 60, 9, 16, 206, + 188, 9, 16, 2, 199, 220, 58, 9, 16, 2, 199, 220, 60, 9, 16, 193, 151, 58, + 9, 1, 214, 71, 76, 20, 9, 1, 214, 71, 53, 20, 9, 1, 214, 71, 89, 20, 9, + 1, 214, 71, 216, 217, 20, 9, 1, 126, 76, 20, 9, 1, 126, 53, 20, 9, 1, + 211, 152, 76, 20, 9, 1, 211, 152, 53, 20, 9, 1, 191, 226, 76, 20, 9, 1, + 191, 226, 53, 20, 9, 1, 126, 4, 230, 58, 93, 76, 20, 9, 1, 195, 154, 76, + 20, 9, 1, 195, 154, 53, 20, 9, 1, 221, 132, 211, 152, 76, 20, 9, 1, 221, + 132, 211, 152, 53, 20, 9, 1, 221, 132, 191, 226, 76, 20, 9, 1, 221, 132, + 191, 226, 53, 20, 9, 1, 235, 15, 76, 20, 9, 1, 235, 15, 53, 20, 9, 1, + 235, 15, 89, 20, 9, 1, 235, 15, 216, 217, 20, 9, 1, 196, 137, 222, 26, + 221, 132, 131, 217, 100, 89, 20, 9, 1, 196, 137, 222, 26, 221, 132, 131, + 217, 100, 216, 217, 20, 9, 34, 99, 4, 230, 58, 93, 4, 131, 76, 20, 9, 34, + 99, 4, 230, 58, 93, 4, 131, 53, 20, 9, 34, 99, 4, 230, 58, 93, 4, 252, + 26, 76, 20, 9, 34, 99, 4, 230, 58, 93, 4, 252, 26, 53, 20, 9, 34, 99, 4, + 230, 58, 93, 4, 193, 134, 76, 20, 9, 34, 99, 4, 230, 58, 93, 4, 193, 134, + 53, 20, 9, 34, 99, 4, 230, 58, 93, 4, 126, 76, 20, 9, 34, 99, 4, 230, 58, + 93, 4, 126, 53, 20, 9, 34, 99, 4, 230, 58, 93, 4, 211, 152, 76, 20, 9, + 34, 99, 4, 230, 58, 93, 4, 211, 152, 53, 20, 9, 34, 99, 4, 230, 58, 93, + 4, 191, 226, 76, 20, 9, 34, 99, 4, 230, 58, 93, 4, 191, 226, 53, 20, 9, + 34, 99, 4, 230, 58, 93, 4, 235, 15, 76, 20, 9, 34, 99, 4, 230, 58, 93, 4, + 235, 15, 53, 20, 9, 34, 99, 4, 230, 58, 93, 4, 235, 15, 89, 20, 9, 34, + 196, 137, 221, 132, 99, 4, 230, 58, 93, 4, 131, 217, 100, 76, 20, 9, 34, + 196, 137, 221, 132, 99, 4, 230, 58, 93, 4, 131, 217, 100, 53, 20, 9, 34, + 196, 137, 221, 132, 99, 4, 230, 58, 93, 4, 131, 217, 100, 89, 20, 9, 1, + 233, 74, 99, 76, 20, 9, 1, 233, 74, 99, 53, 20, 9, 1, 233, 74, 99, 89, + 20, 9, 1, 233, 74, 99, 216, 217, 20, 9, 34, 99, 4, 230, 58, 93, 4, 223, + 7, 76, 20, 9, 34, 99, 4, 230, 58, 93, 4, 182, 76, 20, 9, 34, 99, 4, 230, + 58, 93, 4, 92, 76, 20, 9, 34, 99, 4, 230, 58, 93, 4, 131, 217, 100, 76, + 20, 9, 34, 99, 4, 230, 58, 93, 4, 99, 76, 20, 9, 34, 248, 246, 4, 223, 7, + 76, 20, 9, 34, 248, 246, 4, 182, 76, 20, 9, 34, 248, 246, 4, 221, 211, + 76, 20, 9, 34, 248, 246, 4, 92, 76, 20, 9, 34, 248, 246, 4, 131, 217, + 100, 76, 20, 9, 34, 248, 246, 4, 99, 76, 20, 9, 34, 199, 115, 4, 223, 7, + 76, 20, 9, 34, 199, 115, 4, 182, 76, 20, 9, 34, 199, 115, 4, 221, 211, + 76, 20, 9, 34, 199, 115, 4, 92, 76, 20, 9, 34, 199, 115, 4, 131, 217, + 100, 76, 20, 9, 34, 199, 115, 4, 99, 76, 20, 9, 34, 199, 30, 4, 223, 7, + 76, 20, 9, 34, 199, 30, 4, 92, 76, 20, 9, 34, 199, 30, 4, 131, 217, 100, + 76, 20, 9, 34, 199, 30, 4, 99, 76, 20, 9, 34, 223, 7, 4, 182, 76, 20, 9, + 34, 223, 7, 4, 92, 76, 20, 9, 34, 182, 4, 223, 7, 76, 20, 9, 34, 182, 4, + 92, 76, 20, 9, 34, 221, 211, 4, 223, 7, 76, 20, 9, 34, 221, 211, 4, 182, + 76, 20, 9, 34, 221, 211, 4, 92, 76, 20, 9, 34, 205, 47, 4, 223, 7, 76, + 20, 9, 34, 205, 47, 4, 182, 76, 20, 9, 34, 205, 47, 4, 221, 211, 76, 20, + 9, 34, 205, 47, 4, 92, 76, 20, 9, 34, 205, 193, 4, 182, 76, 20, 9, 34, + 205, 193, 4, 92, 76, 20, 9, 34, 238, 27, 4, 223, 7, 76, 20, 9, 34, 238, + 27, 4, 182, 76, 20, 9, 34, 238, 27, 4, 221, 211, 76, 20, 9, 34, 238, 27, + 4, 92, 76, 20, 9, 34, 199, 220, 4, 182, 76, 20, 9, 34, 199, 220, 4, 92, + 76, 20, 9, 34, 191, 117, 4, 92, 76, 20, 9, 34, 251, 231, 4, 223, 7, 76, + 20, 9, 34, 251, 231, 4, 92, 76, 20, 9, 34, 231, 87, 4, 223, 7, 76, 20, 9, + 34, 231, 87, 4, 92, 76, 20, 9, 34, 233, 47, 4, 223, 7, 76, 20, 9, 34, + 233, 47, 4, 182, 76, 20, 9, 34, 233, 47, 4, 221, 211, 76, 20, 9, 34, 233, + 47, 4, 92, 76, 20, 9, 34, 233, 47, 4, 131, 217, 100, 76, 20, 9, 34, 233, + 47, 4, 99, 76, 20, 9, 34, 208, 90, 4, 182, 76, 20, 9, 34, 208, 90, 4, 92, + 76, 20, 9, 34, 208, 90, 4, 131, 217, 100, 76, 20, 9, 34, 208, 90, 4, 99, + 76, 20, 9, 34, 222, 107, 4, 131, 76, 20, 9, 34, 222, 107, 4, 223, 7, 76, + 20, 9, 34, 222, 107, 4, 182, 76, 20, 9, 34, 222, 107, 4, 221, 211, 76, + 20, 9, 34, 222, 107, 4, 220, 36, 76, 20, 9, 34, 222, 107, 4, 92, 76, 20, + 9, 34, 222, 107, 4, 131, 217, 100, 76, 20, 9, 34, 222, 107, 4, 99, 76, + 20, 9, 34, 220, 36, 4, 223, 7, 76, 20, 9, 34, 220, 36, 4, 182, 76, 20, 9, + 34, 220, 36, 4, 221, 211, 76, 20, 9, 34, 220, 36, 4, 92, 76, 20, 9, 34, + 220, 36, 4, 131, 217, 100, 76, 20, 9, 34, 220, 36, 4, 99, 76, 20, 9, 34, + 92, 4, 223, 7, 76, 20, 9, 34, 92, 4, 182, 76, 20, 9, 34, 92, 4, 221, 211, + 76, 20, 9, 34, 92, 4, 92, 76, 20, 9, 34, 92, 4, 131, 217, 100, 76, 20, 9, + 34, 92, 4, 99, 76, 20, 9, 34, 213, 25, 4, 223, 7, 76, 20, 9, 34, 213, 25, + 4, 182, 76, 20, 9, 34, 213, 25, 4, 221, 211, 76, 20, 9, 34, 213, 25, 4, + 92, 76, 20, 9, 34, 213, 25, 4, 131, 217, 100, 76, 20, 9, 34, 213, 25, 4, + 99, 76, 20, 9, 34, 229, 211, 4, 223, 7, 76, 20, 9, 34, 229, 211, 4, 92, + 76, 20, 9, 34, 229, 211, 4, 131, 217, 100, 76, 20, 9, 34, 229, 211, 4, + 99, 76, 20, 9, 34, 99, 4, 223, 7, 76, 20, 9, 34, 99, 4, 182, 76, 20, 9, + 34, 99, 4, 221, 211, 76, 20, 9, 34, 99, 4, 92, 76, 20, 9, 34, 99, 4, 131, + 217, 100, 76, 20, 9, 34, 99, 4, 99, 76, 20, 9, 34, 199, 42, 4, 200, 182, + 131, 76, 20, 9, 34, 207, 72, 4, 200, 182, 131, 76, 20, 9, 34, 131, 217, + 100, 4, 200, 182, 131, 76, 20, 9, 34, 203, 156, 4, 237, 244, 76, 20, 9, + 34, 203, 156, 4, 222, 51, 76, 20, 9, 34, 203, 156, 4, 233, 71, 76, 20, 9, + 34, 203, 156, 4, 237, 246, 76, 20, 9, 34, 203, 156, 4, 222, 53, 76, 20, + 9, 34, 203, 156, 4, 200, 182, 131, 76, 20, 9, 34, 99, 4, 230, 58, 93, 4, + 207, 72, 53, 20, 9, 34, 99, 4, 230, 58, 93, 4, 191, 114, 53, 20, 9, 34, + 99, 4, 230, 58, 93, 4, 92, 53, 20, 9, 34, 99, 4, 230, 58, 93, 4, 213, 25, + 53, 20, 9, 34, 99, 4, 230, 58, 93, 4, 131, 217, 100, 53, 20, 9, 34, 99, + 4, 230, 58, 93, 4, 99, 53, 20, 9, 34, 248, 246, 4, 207, 72, 53, 20, 9, + 34, 248, 246, 4, 191, 114, 53, 20, 9, 34, 248, 246, 4, 92, 53, 20, 9, 34, + 248, 246, 4, 213, 25, 53, 20, 9, 34, 248, 246, 4, 131, 217, 100, 53, 20, + 9, 34, 248, 246, 4, 99, 53, 20, 9, 34, 199, 115, 4, 207, 72, 53, 20, 9, + 34, 199, 115, 4, 191, 114, 53, 20, 9, 34, 199, 115, 4, 92, 53, 20, 9, 34, + 199, 115, 4, 213, 25, 53, 20, 9, 34, 199, 115, 4, 131, 217, 100, 53, 20, + 9, 34, 199, 115, 4, 99, 53, 20, 9, 34, 199, 30, 4, 207, 72, 53, 20, 9, + 34, 199, 30, 4, 191, 114, 53, 20, 9, 34, 199, 30, 4, 92, 53, 20, 9, 34, + 199, 30, 4, 213, 25, 53, 20, 9, 34, 199, 30, 4, 131, 217, 100, 53, 20, 9, + 34, 199, 30, 4, 99, 53, 20, 9, 34, 233, 47, 4, 131, 217, 100, 53, 20, 9, + 34, 233, 47, 4, 99, 53, 20, 9, 34, 208, 90, 4, 131, 217, 100, 53, 20, 9, + 34, 208, 90, 4, 99, 53, 20, 9, 34, 222, 107, 4, 131, 53, 20, 9, 34, 222, + 107, 4, 220, 36, 53, 20, 9, 34, 222, 107, 4, 92, 53, 20, 9, 34, 222, 107, + 4, 131, 217, 100, 53, 20, 9, 34, 222, 107, 4, 99, 53, 20, 9, 34, 220, 36, + 4, 92, 53, 20, 9, 34, 220, 36, 4, 131, 217, 100, 53, 20, 9, 34, 220, 36, + 4, 99, 53, 20, 9, 34, 92, 4, 131, 53, 20, 9, 34, 92, 4, 92, 53, 20, 9, + 34, 213, 25, 4, 207, 72, 53, 20, 9, 34, 213, 25, 4, 191, 114, 53, 20, 9, + 34, 213, 25, 4, 92, 53, 20, 9, 34, 213, 25, 4, 213, 25, 53, 20, 9, 34, + 213, 25, 4, 131, 217, 100, 53, 20, 9, 34, 213, 25, 4, 99, 53, 20, 9, 34, + 131, 217, 100, 4, 200, 182, 131, 53, 20, 9, 34, 99, 4, 207, 72, 53, 20, + 9, 34, 99, 4, 191, 114, 53, 20, 9, 34, 99, 4, 92, 53, 20, 9, 34, 99, 4, + 213, 25, 53, 20, 9, 34, 99, 4, 131, 217, 100, 53, 20, 9, 34, 99, 4, 99, + 53, 20, 9, 34, 99, 4, 230, 58, 93, 4, 223, 7, 89, 20, 9, 34, 99, 4, 230, + 58, 93, 4, 182, 89, 20, 9, 34, 99, 4, 230, 58, 93, 4, 221, 211, 89, 20, + 9, 34, 99, 4, 230, 58, 93, 4, 92, 89, 20, 9, 34, 99, 4, 230, 58, 93, 4, + 229, 211, 89, 20, 9, 34, 248, 246, 4, 223, 7, 89, 20, 9, 34, 248, 246, 4, + 182, 89, 20, 9, 34, 248, 246, 4, 221, 211, 89, 20, 9, 34, 248, 246, 4, + 92, 89, 20, 9, 34, 248, 246, 4, 229, 211, 89, 20, 9, 34, 199, 115, 4, + 223, 7, 89, 20, 9, 34, 199, 115, 4, 182, 89, 20, 9, 34, 199, 115, 4, 221, + 211, 89, 20, 9, 34, 199, 115, 4, 92, 89, 20, 9, 34, 199, 115, 4, 229, + 211, 89, 20, 9, 34, 199, 30, 4, 92, 89, 20, 9, 34, 223, 7, 4, 182, 89, + 20, 9, 34, 223, 7, 4, 92, 89, 20, 9, 34, 182, 4, 223, 7, 89, 20, 9, 34, + 182, 4, 92, 89, 20, 9, 34, 221, 211, 4, 223, 7, 89, 20, 9, 34, 221, 211, + 4, 92, 89, 20, 9, 34, 205, 47, 4, 223, 7, 89, 20, 9, 34, 205, 47, 4, 182, + 89, 20, 9, 34, 205, 47, 4, 221, 211, 89, 20, 9, 34, 205, 47, 4, 92, 89, + 20, 9, 34, 205, 193, 4, 182, 89, 20, 9, 34, 205, 193, 4, 221, 211, 89, + 20, 9, 34, 205, 193, 4, 92, 89, 20, 9, 34, 238, 27, 4, 223, 7, 89, 20, 9, + 34, 238, 27, 4, 182, 89, 20, 9, 34, 238, 27, 4, 221, 211, 89, 20, 9, 34, + 238, 27, 4, 92, 89, 20, 9, 34, 199, 220, 4, 182, 89, 20, 9, 34, 191, 117, + 4, 92, 89, 20, 9, 34, 251, 231, 4, 223, 7, 89, 20, 9, 34, 251, 231, 4, + 92, 89, 20, 9, 34, 231, 87, 4, 223, 7, 89, 20, 9, 34, 231, 87, 4, 92, 89, + 20, 9, 34, 233, 47, 4, 223, 7, 89, 20, 9, 34, 233, 47, 4, 182, 89, 20, 9, + 34, 233, 47, 4, 221, 211, 89, 20, 9, 34, 233, 47, 4, 92, 89, 20, 9, 34, + 208, 90, 4, 182, 89, 20, 9, 34, 208, 90, 4, 92, 89, 20, 9, 34, 222, 107, + 4, 223, 7, 89, 20, 9, 34, 222, 107, 4, 182, 89, 20, 9, 34, 222, 107, 4, + 221, 211, 89, 20, 9, 34, 222, 107, 4, 220, 36, 89, 20, 9, 34, 222, 107, + 4, 92, 89, 20, 9, 34, 220, 36, 4, 223, 7, 89, 20, 9, 34, 220, 36, 4, 182, + 89, 20, 9, 34, 220, 36, 4, 221, 211, 89, 20, 9, 34, 220, 36, 4, 92, 89, + 20, 9, 34, 220, 36, 4, 229, 211, 89, 20, 9, 34, 92, 4, 223, 7, 89, 20, 9, + 34, 92, 4, 182, 89, 20, 9, 34, 92, 4, 221, 211, 89, 20, 9, 34, 92, 4, 92, + 89, 20, 9, 34, 213, 25, 4, 223, 7, 89, 20, 9, 34, 213, 25, 4, 182, 89, + 20, 9, 34, 213, 25, 4, 221, 211, 89, 20, 9, 34, 213, 25, 4, 92, 89, 20, + 9, 34, 213, 25, 4, 229, 211, 89, 20, 9, 34, 229, 211, 4, 223, 7, 89, 20, + 9, 34, 229, 211, 4, 92, 89, 20, 9, 34, 229, 211, 4, 200, 182, 131, 89, + 20, 9, 34, 99, 4, 223, 7, 89, 20, 9, 34, 99, 4, 182, 89, 20, 9, 34, 99, + 4, 221, 211, 89, 20, 9, 34, 99, 4, 92, 89, 20, 9, 34, 99, 4, 229, 211, + 89, 20, 9, 34, 99, 4, 230, 58, 93, 4, 92, 216, 217, 20, 9, 34, 99, 4, + 230, 58, 93, 4, 229, 211, 216, 217, 20, 9, 34, 248, 246, 4, 92, 216, 217, + 20, 9, 34, 248, 246, 4, 229, 211, 216, 217, 20, 9, 34, 199, 115, 4, 92, + 216, 217, 20, 9, 34, 199, 115, 4, 229, 211, 216, 217, 20, 9, 34, 199, 30, + 4, 92, 216, 217, 20, 9, 34, 199, 30, 4, 229, 211, 216, 217, 20, 9, 34, + 205, 47, 4, 92, 216, 217, 20, 9, 34, 205, 47, 4, 229, 211, 216, 217, 20, + 9, 34, 203, 110, 4, 92, 216, 217, 20, 9, 34, 203, 110, 4, 229, 211, 216, + 217, 20, 9, 34, 222, 107, 4, 220, 36, 216, 217, 20, 9, 34, 222, 107, 4, + 92, 216, 217, 20, 9, 34, 220, 36, 4, 92, 216, 217, 20, 9, 34, 213, 25, 4, + 92, 216, 217, 20, 9, 34, 213, 25, 4, 229, 211, 216, 217, 20, 9, 34, 99, + 4, 92, 216, 217, 20, 9, 34, 99, 4, 229, 211, 216, 217, 20, 9, 34, 203, + 156, 4, 233, 71, 216, 217, 20, 9, 34, 203, 156, 4, 237, 246, 216, 217, + 20, 9, 34, 203, 156, 4, 222, 53, 216, 217, 20, 9, 34, 199, 220, 4, 131, + 217, 100, 76, 20, 9, 34, 199, 220, 4, 99, 76, 20, 9, 34, 251, 231, 4, + 131, 217, 100, 76, 20, 9, 34, 251, 231, 4, 99, 76, 20, 9, 34, 231, 87, 4, + 131, 217, 100, 76, 20, 9, 34, 231, 87, 4, 99, 76, 20, 9, 34, 205, 47, 4, + 131, 217, 100, 76, 20, 9, 34, 205, 47, 4, 99, 76, 20, 9, 34, 203, 110, 4, + 131, 217, 100, 76, 20, 9, 34, 203, 110, 4, 99, 76, 20, 9, 34, 182, 4, + 131, 217, 100, 76, 20, 9, 34, 182, 4, 99, 76, 20, 9, 34, 223, 7, 4, 131, + 217, 100, 76, 20, 9, 34, 223, 7, 4, 99, 76, 20, 9, 34, 221, 211, 4, 131, + 217, 100, 76, 20, 9, 34, 221, 211, 4, 99, 76, 20, 9, 34, 205, 193, 4, + 131, 217, 100, 76, 20, 9, 34, 205, 193, 4, 99, 76, 20, 9, 34, 238, 27, 4, + 131, 217, 100, 76, 20, 9, 34, 238, 27, 4, 99, 76, 20, 9, 34, 203, 110, 4, + 223, 7, 76, 20, 9, 34, 203, 110, 4, 182, 76, 20, 9, 34, 203, 110, 4, 221, + 211, 76, 20, 9, 34, 203, 110, 4, 92, 76, 20, 9, 34, 203, 110, 4, 207, 72, + 76, 20, 9, 34, 205, 47, 4, 207, 72, 76, 20, 9, 34, 205, 193, 4, 207, 72, + 76, 20, 9, 34, 238, 27, 4, 207, 72, 76, 20, 9, 34, 199, 220, 4, 131, 217, + 100, 53, 20, 9, 34, 199, 220, 4, 99, 53, 20, 9, 34, 251, 231, 4, 131, + 217, 100, 53, 20, 9, 34, 251, 231, 4, 99, 53, 20, 9, 34, 231, 87, 4, 131, + 217, 100, 53, 20, 9, 34, 231, 87, 4, 99, 53, 20, 9, 34, 205, 47, 4, 131, + 217, 100, 53, 20, 9, 34, 205, 47, 4, 99, 53, 20, 9, 34, 203, 110, 4, 131, + 217, 100, 53, 20, 9, 34, 203, 110, 4, 99, 53, 20, 9, 34, 182, 4, 131, + 217, 100, 53, 20, 9, 34, 182, 4, 99, 53, 20, 9, 34, 223, 7, 4, 131, 217, + 100, 53, 20, 9, 34, 223, 7, 4, 99, 53, 20, 9, 34, 221, 211, 4, 131, 217, + 100, 53, 20, 9, 34, 221, 211, 4, 99, 53, 20, 9, 34, 205, 193, 4, 131, + 217, 100, 53, 20, 9, 34, 205, 193, 4, 99, 53, 20, 9, 34, 238, 27, 4, 131, + 217, 100, 53, 20, 9, 34, 238, 27, 4, 99, 53, 20, 9, 34, 203, 110, 4, 223, + 7, 53, 20, 9, 34, 203, 110, 4, 182, 53, 20, 9, 34, 203, 110, 4, 221, 211, + 53, 20, 9, 34, 203, 110, 4, 92, 53, 20, 9, 34, 203, 110, 4, 207, 72, 53, + 20, 9, 34, 205, 47, 4, 207, 72, 53, 20, 9, 34, 205, 193, 4, 207, 72, 53, + 20, 9, 34, 238, 27, 4, 207, 72, 53, 20, 9, 34, 203, 110, 4, 223, 7, 89, + 20, 9, 34, 203, 110, 4, 182, 89, 20, 9, 34, 203, 110, 4, 221, 211, 89, + 20, 9, 34, 203, 110, 4, 92, 89, 20, 9, 34, 205, 47, 4, 229, 211, 89, 20, + 9, 34, 203, 110, 4, 229, 211, 89, 20, 9, 34, 199, 220, 4, 92, 89, 20, 9, + 34, 205, 47, 4, 223, 7, 216, 217, 20, 9, 34, 205, 47, 4, 182, 216, 217, + 20, 9, 34, 205, 47, 4, 221, 211, 216, 217, 20, 9, 34, 203, 110, 4, 223, + 7, 216, 217, 20, 9, 34, 203, 110, 4, 182, 216, 217, 20, 9, 34, 203, 110, + 4, 221, 211, 216, 217, 20, 9, 34, 199, 220, 4, 92, 216, 217, 20, 9, 34, + 191, 117, 4, 92, 216, 217, 20, 9, 34, 131, 4, 233, 69, 53, 20, 9, 34, + 131, 4, 233, 69, 76, 20, 211, 40, 45, 210, 113, 211, 40, 50, 210, 113, 9, + 34, 207, 159, 251, 173, 9, 34, 207, 167, 251, 172, 251, 107, 9, 34, 207, + 167, 251, 172, 251, 106, 9, 34, 207, 167, 251, 172, 251, 104, 9, 34, 207, + 167, 251, 172, 251, 103, 9, 34, 207, 167, 251, 172, 251, 102, 9, 34, 205, + 162, 251, 197, 193, 184, 9, 34, 251, 197, 250, 217, 9, 34, 251, 196, 250, + 217, 9, 34, 251, 195, 250, 217, 9, 34, 251, 197, 250, 216, 193, 154, 9, + 34, 208, 17, 202, 140, 9, 34, 205, 160, 251, 197, 193, 180, 193, 183, 9, + 34, 251, 200, 250, 217, 9, 34, 199, 235, 193, 182, 9, 34, 207, 158, 251, + 173, 9, 34, 199, 115, 4, 223, 7, 4, 92, 89, 20, 9, 34, 199, 115, 4, 182, + 4, 223, 7, 53, 20, 9, 34, 199, 115, 4, 182, 4, 223, 7, 89, 20, 9, 34, + 199, 115, 4, 182, 4, 92, 89, 20, 9, 34, 199, 115, 4, 221, 211, 4, 92, 89, + 20, 9, 34, 199, 115, 4, 92, 4, 223, 7, 89, 20, 9, 34, 199, 115, 4, 92, 4, + 182, 89, 20, 9, 34, 199, 115, 4, 92, 4, 221, 211, 89, 20, 9, 34, 223, 7, + 4, 92, 4, 182, 53, 20, 9, 34, 223, 7, 4, 92, 4, 182, 89, 20, 9, 34, 182, + 4, 92, 4, 99, 53, 20, 9, 34, 182, 4, 92, 4, 131, 217, 100, 53, 20, 9, 34, + 205, 47, 4, 182, 4, 223, 7, 89, 20, 9, 34, 205, 47, 4, 223, 7, 4, 182, + 89, 20, 9, 34, 205, 47, 4, 223, 7, 4, 131, 217, 100, 53, 20, 9, 34, 205, + 47, 4, 92, 4, 182, 53, 20, 9, 34, 205, 47, 4, 92, 4, 182, 89, 20, 9, 34, + 205, 47, 4, 92, 4, 223, 7, 89, 20, 9, 34, 205, 47, 4, 92, 4, 92, 53, 20, + 9, 34, 205, 47, 4, 92, 4, 92, 89, 20, 9, 34, 205, 193, 4, 182, 4, 182, + 53, 20, 9, 34, 205, 193, 4, 182, 4, 182, 89, 20, 9, 34, 205, 193, 4, 92, + 4, 92, 53, 20, 9, 34, 203, 110, 4, 182, 4, 92, 53, 20, 9, 34, 203, 110, + 4, 182, 4, 92, 89, 20, 9, 34, 203, 110, 4, 223, 7, 4, 99, 53, 20, 9, 34, + 203, 110, 4, 92, 4, 221, 211, 53, 20, 9, 34, 203, 110, 4, 92, 4, 221, + 211, 89, 20, 9, 34, 203, 110, 4, 92, 4, 92, 53, 20, 9, 34, 203, 110, 4, + 92, 4, 92, 89, 20, 9, 34, 238, 27, 4, 182, 4, 131, 217, 100, 53, 20, 9, + 34, 238, 27, 4, 221, 211, 4, 92, 53, 20, 9, 34, 238, 27, 4, 221, 211, 4, + 92, 89, 20, 9, 34, 199, 220, 4, 92, 4, 182, 53, 20, 9, 34, 199, 220, 4, + 92, 4, 182, 89, 20, 9, 34, 199, 220, 4, 92, 4, 92, 89, 20, 9, 34, 199, + 220, 4, 92, 4, 99, 53, 20, 9, 34, 251, 231, 4, 223, 7, 4, 92, 53, 20, 9, + 34, 251, 231, 4, 92, 4, 92, 53, 20, 9, 34, 251, 231, 4, 92, 4, 92, 89, + 20, 9, 34, 251, 231, 4, 92, 4, 131, 217, 100, 53, 20, 9, 34, 231, 87, 4, + 92, 4, 92, 53, 20, 9, 34, 231, 87, 4, 92, 4, 99, 53, 20, 9, 34, 231, 87, + 4, 92, 4, 131, 217, 100, 53, 20, 9, 34, 233, 47, 4, 221, 211, 4, 92, 53, + 20, 9, 34, 233, 47, 4, 221, 211, 4, 92, 89, 20, 9, 34, 208, 90, 4, 92, 4, + 182, 53, 20, 9, 34, 208, 90, 4, 92, 4, 92, 53, 20, 9, 34, 220, 36, 4, + 182, 4, 92, 53, 20, 9, 34, 220, 36, 4, 182, 4, 99, 53, 20, 9, 34, 220, + 36, 4, 182, 4, 131, 217, 100, 53, 20, 9, 34, 220, 36, 4, 223, 7, 4, 223, + 7, 89, 20, 9, 34, 220, 36, 4, 223, 7, 4, 223, 7, 53, 20, 9, 34, 220, 36, + 4, 221, 211, 4, 92, 53, 20, 9, 34, 220, 36, 4, 221, 211, 4, 92, 89, 20, + 9, 34, 220, 36, 4, 92, 4, 182, 53, 20, 9, 34, 220, 36, 4, 92, 4, 182, 89, + 20, 9, 34, 92, 4, 182, 4, 223, 7, 89, 20, 9, 34, 92, 4, 182, 4, 92, 89, + 20, 9, 34, 92, 4, 182, 4, 99, 53, 20, 9, 34, 92, 4, 223, 7, 4, 182, 89, + 20, 9, 34, 92, 4, 223, 7, 4, 92, 89, 20, 9, 34, 92, 4, 221, 211, 4, 223, + 7, 89, 20, 9, 34, 92, 4, 221, 211, 4, 92, 89, 20, 9, 34, 92, 4, 223, 7, + 4, 221, 211, 89, 20, 9, 34, 229, 211, 4, 92, 4, 223, 7, 89, 20, 9, 34, + 229, 211, 4, 92, 4, 92, 89, 20, 9, 34, 213, 25, 4, 182, 4, 92, 89, 20, 9, + 34, 213, 25, 4, 182, 4, 131, 217, 100, 53, 20, 9, 34, 213, 25, 4, 223, 7, + 4, 92, 53, 20, 9, 34, 213, 25, 4, 223, 7, 4, 92, 89, 20, 9, 34, 213, 25, + 4, 223, 7, 4, 131, 217, 100, 53, 20, 9, 34, 213, 25, 4, 92, 4, 99, 53, + 20, 9, 34, 213, 25, 4, 92, 4, 131, 217, 100, 53, 20, 9, 34, 99, 4, 92, 4, + 92, 53, 20, 9, 34, 99, 4, 92, 4, 92, 89, 20, 9, 34, 248, 246, 4, 221, + 211, 4, 99, 53, 20, 9, 34, 199, 115, 4, 223, 7, 4, 99, 53, 20, 9, 34, + 199, 115, 4, 223, 7, 4, 131, 217, 100, 53, 20, 9, 34, 199, 115, 4, 221, + 211, 4, 99, 53, 20, 9, 34, 199, 115, 4, 221, 211, 4, 131, 217, 100, 53, + 20, 9, 34, 199, 115, 4, 92, 4, 99, 53, 20, 9, 34, 199, 115, 4, 92, 4, + 131, 217, 100, 53, 20, 9, 34, 223, 7, 4, 92, 4, 99, 53, 20, 9, 34, 223, + 7, 4, 182, 4, 131, 217, 100, 53, 20, 9, 34, 223, 7, 4, 92, 4, 131, 217, + 100, 53, 20, 9, 34, 205, 47, 4, 221, 211, 4, 131, 217, 100, 53, 20, 9, + 34, 205, 193, 4, 182, 4, 99, 53, 20, 9, 34, 203, 110, 4, 182, 4, 99, 53, + 20, 9, 34, 238, 27, 4, 182, 4, 99, 53, 20, 9, 34, 220, 36, 4, 223, 7, 4, + 99, 53, 20, 9, 34, 220, 36, 4, 92, 4, 99, 53, 20, 9, 34, 99, 4, 182, 4, + 99, 53, 20, 9, 34, 99, 4, 223, 7, 4, 99, 53, 20, 9, 34, 99, 4, 92, 4, 99, + 53, 20, 9, 34, 92, 4, 92, 4, 99, 53, 20, 9, 34, 208, 90, 4, 92, 4, 99, + 53, 20, 9, 34, 213, 25, 4, 182, 4, 99, 53, 20, 9, 34, 208, 90, 4, 92, 4, + 182, 89, 20, 9, 34, 220, 36, 4, 182, 4, 92, 89, 20, 9, 34, 251, 231, 4, + 92, 4, 99, 53, 20, 9, 34, 222, 107, 4, 92, 4, 99, 53, 20, 9, 34, 213, 25, + 4, 223, 7, 4, 182, 89, 20, 9, 34, 92, 4, 221, 211, 4, 99, 53, 20, 9, 34, + 220, 36, 4, 223, 7, 4, 92, 89, 20, 9, 34, 222, 107, 4, 92, 4, 92, 53, 20, + 9, 34, 220, 36, 4, 223, 7, 4, 92, 53, 20, 9, 34, 213, 25, 4, 223, 7, 4, + 182, 53, 20, 9, 34, 223, 7, 4, 182, 4, 99, 53, 20, 9, 34, 182, 4, 223, 7, + 4, 99, 53, 20, 9, 34, 92, 4, 223, 7, 4, 99, 53, 20, 9, 34, 233, 47, 4, + 92, 4, 99, 53, 20, 9, 34, 248, 246, 4, 182, 4, 99, 53, 20, 9, 34, 222, + 107, 4, 92, 4, 92, 89, 20, 9, 34, 251, 231, 4, 223, 7, 4, 92, 89, 20, 9, + 34, 205, 193, 4, 92, 4, 92, 89, 20, 9, 34, 205, 47, 4, 221, 211, 4, 99, + 53, 20, 9, 34, 213, 25, 4, 223, 7, 4, 99, 53, 20, 9, 34, 205, 166, 251, + 194, 9, 34, 205, 163, 196, 40, 250, 220, 221, 33, 201, 64, 3, 76, 20, 9, + 34, 208, 86, 196, 40, 250, 220, 221, 33, 201, 64, 3, 76, 20, 9, 34, 251, + 171, 76, 20, 9, 34, 251, 213, 76, 20, 9, 34, 215, 235, 76, 20, 9, 34, + 205, 164, 76, 20, 9, 34, 207, 132, 76, 20, 9, 34, 251, 199, 76, 20, 9, + 34, 193, 153, 76, 20, 9, 34, 205, 163, 76, 20, 9, 34, 205, 161, 251, 199, + 193, 152, 9, 34, 223, 22, 206, 249, 56, 9, 34, 248, 151, 251, 31, 251, + 32, 9, 34, 200, 242, 193, 191, 199, 244, 9, 34, 250, 121, 193, 191, 223, + 23, 67, 205, 33, 67, 204, 178, 67, 204, 110, 67, 204, 99, 67, 204, 88, + 67, 204, 77, 67, 204, 66, 67, 204, 55, 67, 204, 44, 67, 205, 32, 67, 205, + 21, 67, 205, 10, 67, 204, 255, 67, 204, 244, 67, 204, 233, 67, 204, 222, + 208, 221, 232, 146, 40, 81, 242, 74, 208, 221, 232, 146, 40, 81, 154, + 242, 74, 208, 221, 232, 146, 40, 81, 154, 232, 80, 201, 63, 208, 221, + 232, 146, 40, 81, 242, 83, 208, 221, 232, 146, 40, 81, 204, 25, 208, 221, + 232, 146, 40, 81, 233, 216, 77, 208, 221, 232, 146, 40, 81, 208, 13, 77, + 208, 221, 232, 146, 40, 81, 45, 63, 219, 187, 248, 53, 208, 221, 232, + 146, 40, 81, 50, 63, 219, 187, 248, 49, 208, 221, 232, 146, 40, 81, 228, + 241, 234, 120, 33, 34, 45, 230, 70, 33, 34, 50, 230, 70, 33, 55, 198, + 153, 45, 230, 70, 33, 55, 198, 153, 50, 230, 70, 33, 217, 147, 45, 230, + 70, 33, 217, 147, 50, 230, 70, 33, 239, 44, 217, 146, 33, 34, 45, 132, + 60, 33, 34, 50, 132, 60, 33, 198, 153, 45, 132, 60, 33, 198, 153, 50, + 132, 60, 33, 217, 147, 45, 132, 60, 33, 217, 147, 50, 132, 60, 33, 239, + 44, 217, 147, 60, 33, 38, 198, 123, 45, 230, 70, 33, 38, 198, 123, 50, + 230, 70, 208, 221, 232, 146, 40, 81, 105, 75, 219, 236, 208, 221, 232, + 146, 40, 81, 234, 115, 237, 215, 208, 221, 232, 146, 40, 81, 234, 104, + 237, 215, 208, 221, 232, 146, 40, 81, 130, 219, 112, 208, 221, 232, 146, + 40, 81, 193, 135, 130, 219, 112, 208, 221, 232, 146, 40, 81, 45, 210, + 113, 208, 221, 232, 146, 40, 81, 50, 210, 113, 208, 221, 232, 146, 40, + 81, 45, 238, 171, 248, 53, 208, 221, 232, 146, 40, 81, 50, 238, 171, 248, + 53, 208, 221, 232, 146, 40, 81, 45, 198, 42, 203, 103, 248, 53, 208, 221, + 232, 146, 40, 81, 50, 198, 42, 203, 103, 248, 53, 208, 221, 232, 146, 40, + 81, 45, 62, 219, 187, 248, 53, 208, 221, 232, 146, 40, 81, 50, 62, 219, + 187, 248, 53, 208, 221, 232, 146, 40, 81, 45, 55, 251, 116, 248, 53, 208, + 221, 232, 146, 40, 81, 50, 55, 251, 116, 248, 53, 208, 221, 232, 146, 40, + 81, 45, 251, 116, 248, 53, 208, 221, 232, 146, 40, 81, 50, 251, 116, 248, + 53, 208, 221, 232, 146, 40, 81, 45, 239, 2, 248, 53, 208, 221, 232, 146, + 40, 81, 50, 239, 2, 248, 53, 208, 221, 232, 146, 40, 81, 45, 63, 239, 2, + 248, 53, 208, 221, 232, 146, 40, 81, 50, 63, 239, 2, 248, 53, 204, 0, + 236, 140, 63, 204, 0, 236, 140, 208, 221, 232, 146, 40, 81, 45, 51, 248, + 53, 208, 221, 232, 146, 40, 81, 50, 51, 248, 53, 237, 214, 210, 254, 247, + 18, 210, 254, 193, 135, 210, 254, 55, 193, 135, 210, 254, 237, 214, 130, + 219, 112, 247, 18, 130, 219, 112, 193, 135, 130, 219, 112, 2, 242, 74, 2, + 154, 242, 74, 2, 232, 80, 201, 63, 2, 204, 25, 2, 242, 83, 2, 208, 13, + 77, 2, 233, 216, 77, 2, 234, 115, 237, 215, 2, 45, 210, 113, 2, 50, 210, + 113, 2, 45, 238, 171, 248, 53, 2, 50, 238, 171, 248, 53, 2, 45, 198, 42, + 203, 103, 248, 53, 2, 50, 198, 42, 203, 103, 248, 53, 2, 31, 56, 2, 251, + 137, 2, 250, 193, 2, 108, 56, 2, 228, 87, 2, 219, 180, 56, 2, 230, 204, + 56, 2, 234, 43, 56, 2, 207, 19, 202, 23, 2, 236, 155, 56, 2, 210, 13, 56, + 2, 242, 72, 250, 182, 9, 233, 69, 76, 20, 9, 199, 169, 4, 233, 69, 58, 9, + 237, 244, 76, 20, 9, 199, 216, 232, 117, 9, 222, 51, 76, 20, 9, 233, 71, + 76, 20, 9, 233, 71, 216, 217, 20, 9, 237, 246, 76, 20, 9, 237, 246, 216, + 217, 20, 9, 222, 53, 76, 20, 9, 222, 53, 216, 217, 20, 9, 203, 156, 76, + 20, 9, 203, 156, 216, 217, 20, 9, 200, 207, 76, 20, 9, 200, 207, 216, + 217, 20, 9, 1, 230, 58, 76, 20, 9, 1, 131, 4, 217, 142, 93, 76, 20, 9, 1, + 131, 4, 217, 142, 93, 53, 20, 9, 1, 131, 4, 230, 58, 93, 76, 20, 9, 1, + 131, 4, 230, 58, 93, 53, 20, 9, 1, 193, 134, 4, 230, 58, 93, 76, 20, 9, + 1, 193, 134, 4, 230, 58, 93, 53, 20, 9, 1, 131, 4, 230, 58, 248, 233, 76, + 20, 9, 1, 131, 4, 230, 58, 248, 233, 53, 20, 9, 1, 99, 4, 230, 58, 93, + 76, 20, 9, 1, 99, 4, 230, 58, 93, 53, 20, 9, 1, 99, 4, 230, 58, 93, 89, + 20, 9, 1, 99, 4, 230, 58, 93, 216, 217, 20, 9, 1, 131, 76, 20, 9, 1, 131, + 53, 20, 9, 1, 248, 246, 76, 20, 9, 1, 248, 246, 53, 20, 9, 1, 248, 246, + 89, 20, 9, 1, 248, 246, 216, 217, 20, 9, 1, 199, 115, 217, 63, 76, 20, 9, + 1, 199, 115, 217, 63, 53, 20, 9, 1, 199, 115, 76, 20, 9, 1, 199, 115, 53, + 20, 9, 1, 199, 115, 89, 20, 9, 1, 199, 115, 216, 217, 20, 9, 1, 199, 30, + 76, 20, 9, 1, 199, 30, 53, 20, 9, 1, 199, 30, 89, 20, 9, 1, 199, 30, 216, + 217, 20, 9, 1, 223, 7, 76, 20, 9, 1, 223, 7, 53, 20, 9, 1, 223, 7, 89, + 20, 9, 1, 223, 7, 216, 217, 20, 9, 1, 182, 76, 20, 9, 1, 182, 53, 20, 9, + 1, 182, 89, 20, 9, 1, 182, 216, 217, 20, 9, 1, 221, 211, 76, 20, 9, 1, + 221, 211, 53, 20, 9, 1, 221, 211, 89, 20, 9, 1, 221, 211, 216, 217, 20, + 9, 1, 238, 4, 76, 20, 9, 1, 238, 4, 53, 20, 9, 1, 199, 42, 76, 20, 9, 1, + 199, 42, 53, 20, 9, 1, 207, 72, 76, 20, 9, 1, 207, 72, 53, 20, 9, 1, 191, + 114, 76, 20, 9, 1, 191, 114, 53, 20, 9, 1, 205, 47, 76, 20, 9, 1, 205, + 47, 53, 20, 9, 1, 205, 47, 89, 20, 9, 1, 205, 47, 216, 217, 20, 9, 1, + 203, 110, 76, 20, 9, 1, 203, 110, 53, 20, 9, 1, 203, 110, 89, 20, 9, 1, + 203, 110, 216, 217, 20, 9, 1, 205, 193, 76, 20, 9, 1, 205, 193, 53, 20, + 9, 1, 205, 193, 89, 20, 9, 1, 205, 193, 216, 217, 20, 9, 1, 238, 27, 76, + 20, 9, 1, 238, 27, 53, 20, 9, 1, 238, 27, 89, 20, 9, 1, 238, 27, 216, + 217, 20, 9, 1, 199, 220, 76, 20, 9, 1, 199, 220, 53, 20, 9, 1, 199, 220, + 89, 20, 9, 1, 199, 220, 216, 217, 20, 9, 1, 191, 117, 76, 20, 9, 1, 191, + 117, 53, 20, 9, 1, 191, 117, 89, 20, 9, 1, 191, 117, 216, 217, 20, 9, 1, + 251, 231, 76, 20, 9, 1, 251, 231, 53, 20, 9, 1, 251, 231, 89, 20, 9, 1, + 251, 231, 216, 217, 20, 9, 1, 231, 87, 76, 20, 9, 1, 231, 87, 53, 20, 9, + 1, 231, 87, 89, 20, 9, 1, 231, 87, 216, 217, 20, 9, 1, 233, 47, 76, 20, + 9, 1, 233, 47, 53, 20, 9, 1, 233, 47, 89, 20, 9, 1, 233, 47, 216, 217, + 20, 9, 1, 208, 90, 76, 20, 9, 1, 208, 90, 53, 20, 9, 1, 208, 90, 89, 20, + 9, 1, 208, 90, 216, 217, 20, 9, 1, 222, 107, 76, 20, 9, 1, 222, 107, 53, + 20, 9, 1, 222, 107, 89, 20, 9, 1, 222, 107, 216, 217, 20, 9, 1, 220, 36, + 76, 20, 9, 1, 220, 36, 53, 20, 9, 1, 220, 36, 89, 20, 9, 1, 220, 36, 216, + 217, 20, 9, 1, 92, 76, 20, 9, 1, 92, 53, 20, 9, 1, 92, 89, 20, 9, 1, 92, + 216, 217, 20, 9, 1, 213, 25, 76, 20, 9, 1, 213, 25, 53, 20, 9, 1, 213, + 25, 89, 20, 9, 1, 213, 25, 216, 217, 20, 9, 1, 229, 211, 76, 20, 9, 1, + 229, 211, 53, 20, 9, 1, 229, 211, 89, 20, 9, 1, 229, 211, 216, 217, 20, + 9, 1, 193, 134, 76, 20, 9, 1, 193, 134, 53, 20, 9, 1, 131, 217, 100, 76, + 20, 9, 1, 131, 217, 100, 53, 20, 9, 1, 99, 76, 20, 9, 1, 99, 53, 20, 9, + 1, 99, 89, 20, 9, 1, 99, 216, 217, 20, 9, 34, 220, 36, 4, 131, 4, 217, + 142, 93, 76, 20, 9, 34, 220, 36, 4, 131, 4, 217, 142, 93, 53, 20, 9, 34, + 220, 36, 4, 131, 4, 230, 58, 93, 76, 20, 9, 34, 220, 36, 4, 131, 4, 230, + 58, 93, 53, 20, 9, 34, 220, 36, 4, 131, 4, 230, 58, 248, 233, 76, 20, 9, + 34, 220, 36, 4, 131, 4, 230, 58, 248, 233, 53, 20, 9, 34, 220, 36, 4, + 131, 76, 20, 9, 34, 220, 36, 4, 131, 53, 20, 191, 78, 193, 75, 213, 37, + 201, 247, 232, 78, 233, 216, 77, 232, 78, 207, 252, 77, 232, 78, 31, 56, + 232, 78, 236, 155, 56, 232, 78, 210, 13, 56, 232, 78, 251, 137, 232, 78, + 251, 49, 232, 78, 45, 210, 113, 232, 78, 50, 210, 113, 232, 78, 250, 193, + 232, 78, 108, 56, 232, 78, 242, 74, 232, 78, 228, 87, 232, 78, 232, 80, + 201, 63, 232, 78, 202, 23, 232, 78, 17, 191, 77, 232, 78, 17, 107, 232, + 78, 17, 109, 232, 78, 17, 138, 232, 78, 17, 134, 232, 78, 17, 149, 232, + 78, 17, 169, 232, 78, 17, 175, 232, 78, 17, 171, 232, 78, 17, 178, 232, + 78, 242, 83, 232, 78, 204, 25, 232, 78, 219, 180, 56, 232, 78, 234, 43, + 56, 232, 78, 230, 204, 56, 232, 78, 208, 13, 77, 232, 78, 242, 72, 250, + 182, 232, 78, 8, 6, 1, 65, 232, 78, 8, 6, 1, 250, 120, 232, 78, 8, 6, 1, + 247, 193, 232, 78, 8, 6, 1, 238, 127, 232, 78, 8, 6, 1, 71, 232, 78, 8, + 6, 1, 233, 175, 232, 78, 8, 6, 1, 232, 51, 232, 78, 8, 6, 1, 230, 116, + 232, 78, 8, 6, 1, 68, 232, 78, 8, 6, 1, 223, 35, 232, 78, 8, 6, 1, 222, + 152, 232, 78, 8, 6, 1, 172, 232, 78, 8, 6, 1, 218, 168, 232, 78, 8, 6, 1, + 215, 61, 232, 78, 8, 6, 1, 74, 232, 78, 8, 6, 1, 210, 236, 232, 78, 8, 6, + 1, 208, 104, 232, 78, 8, 6, 1, 146, 232, 78, 8, 6, 1, 206, 8, 232, 78, 8, + 6, 1, 200, 43, 232, 78, 8, 6, 1, 66, 232, 78, 8, 6, 1, 196, 12, 232, 78, + 8, 6, 1, 193, 224, 232, 78, 8, 6, 1, 192, 235, 232, 78, 8, 6, 1, 192, + 159, 232, 78, 8, 6, 1, 191, 166, 232, 78, 45, 51, 248, 53, 232, 78, 207, + 19, 202, 23, 232, 78, 50, 51, 248, 53, 232, 78, 243, 2, 252, 60, 232, 78, + 130, 219, 112, 232, 78, 230, 211, 252, 60, 232, 78, 8, 2, 1, 65, 232, 78, + 8, 2, 1, 250, 120, 232, 78, 8, 2, 1, 247, 193, 232, 78, 8, 2, 1, 238, + 127, 232, 78, 8, 2, 1, 71, 232, 78, 8, 2, 1, 233, 175, 232, 78, 8, 2, 1, + 232, 51, 232, 78, 8, 2, 1, 230, 116, 232, 78, 8, 2, 1, 68, 232, 78, 8, 2, + 1, 223, 35, 232, 78, 8, 2, 1, 222, 152, 232, 78, 8, 2, 1, 172, 232, 78, + 8, 2, 1, 218, 168, 232, 78, 8, 2, 1, 215, 61, 232, 78, 8, 2, 1, 74, 232, + 78, 8, 2, 1, 210, 236, 232, 78, 8, 2, 1, 208, 104, 232, 78, 8, 2, 1, 146, + 232, 78, 8, 2, 1, 206, 8, 232, 78, 8, 2, 1, 200, 43, 232, 78, 8, 2, 1, + 66, 232, 78, 8, 2, 1, 196, 12, 232, 78, 8, 2, 1, 193, 224, 232, 78, 8, 2, + 1, 192, 235, 232, 78, 8, 2, 1, 192, 159, 232, 78, 8, 2, 1, 191, 166, 232, + 78, 45, 238, 171, 248, 53, 232, 78, 81, 219, 112, 232, 78, 50, 238, 171, + 248, 53, 232, 78, 198, 152, 232, 78, 45, 63, 210, 113, 232, 78, 50, 63, + 210, 113, 150, 154, 232, 80, 201, 63, 150, 45, 239, 2, 248, 53, 150, 50, + 239, 2, 248, 53, 150, 154, 242, 74, 150, 72, 82, 236, 140, 150, 72, 1, + 193, 48, 150, 72, 1, 2, 65, 150, 72, 1, 2, 68, 150, 72, 1, 2, 66, 150, + 72, 1, 2, 71, 150, 72, 1, 2, 74, 150, 72, 1, 2, 170, 150, 72, 1, 2, 191, + 225, 150, 72, 1, 2, 192, 12, 150, 72, 1, 2, 197, 94, 150, 222, 48, 208, + 191, 202, 5, 77, 150, 72, 1, 65, 150, 72, 1, 68, 150, 72, 1, 66, 150, 72, + 1, 71, 150, 72, 1, 74, 150, 72, 1, 155, 150, 72, 1, 221, 166, 150, 72, 1, + 220, 232, 150, 72, 1, 222, 22, 150, 72, 1, 221, 67, 150, 72, 1, 188, 150, + 72, 1, 202, 222, 150, 72, 1, 201, 4, 150, 72, 1, 205, 68, 150, 72, 1, + 202, 46, 150, 72, 1, 190, 190, 150, 72, 1, 198, 193, 150, 72, 1, 197, 94, + 150, 72, 1, 199, 145, 150, 72, 1, 159, 150, 72, 1, 180, 150, 72, 1, 213, + 219, 150, 72, 1, 212, 178, 150, 72, 1, 214, 121, 150, 72, 1, 213, 43, + 150, 72, 1, 140, 150, 72, 1, 229, 158, 150, 72, 1, 228, 159, 150, 72, 1, + 229, 245, 150, 72, 1, 229, 23, 150, 72, 1, 174, 150, 72, 1, 216, 100, + 150, 72, 1, 215, 155, 150, 72, 1, 216, 232, 150, 72, 1, 216, 12, 150, 72, + 1, 170, 150, 72, 1, 191, 225, 150, 72, 1, 192, 12, 150, 72, 1, 165, 150, + 72, 1, 207, 1, 150, 72, 1, 206, 68, 150, 72, 1, 207, 113, 150, 72, 1, + 206, 162, 150, 72, 1, 193, 190, 150, 72, 1, 215, 61, 150, 72, 195, 20, + 202, 5, 77, 150, 72, 204, 30, 202, 5, 77, 150, 30, 233, 3, 150, 30, 1, + 221, 113, 150, 30, 1, 201, 167, 150, 30, 1, 221, 106, 150, 30, 1, 213, + 204, 150, 30, 1, 213, 202, 150, 30, 1, 213, 201, 150, 30, 1, 198, 168, + 150, 30, 1, 201, 156, 150, 30, 1, 206, 239, 150, 30, 1, 206, 234, 150, + 30, 1, 206, 231, 150, 30, 1, 206, 224, 150, 30, 1, 206, 219, 150, 30, 1, + 206, 214, 150, 30, 1, 206, 225, 150, 30, 1, 206, 237, 150, 30, 1, 216, + 77, 150, 30, 1, 209, 169, 150, 30, 1, 201, 164, 150, 30, 1, 209, 158, + 150, 30, 1, 202, 160, 150, 30, 1, 201, 161, 150, 30, 1, 223, 222, 150, + 30, 1, 243, 24, 150, 30, 1, 201, 171, 150, 30, 1, 243, 91, 150, 30, 1, + 221, 188, 150, 30, 1, 199, 7, 150, 30, 1, 209, 209, 150, 30, 1, 229, 142, + 150, 30, 1, 65, 150, 30, 1, 252, 25, 150, 30, 1, 170, 150, 30, 1, 192, + 129, 150, 30, 1, 234, 65, 150, 30, 1, 71, 150, 30, 1, 192, 67, 150, 30, + 1, 192, 80, 150, 30, 1, 74, 150, 30, 1, 193, 190, 150, 30, 1, 193, 176, + 150, 30, 1, 211, 151, 150, 30, 1, 192, 12, 150, 30, 1, 66, 150, 30, 1, + 193, 107, 150, 30, 1, 193, 125, 150, 30, 1, 193, 86, 150, 30, 1, 191, + 225, 150, 30, 1, 233, 242, 150, 30, 1, 192, 33, 150, 30, 1, 68, 232, 78, + 247, 24, 56, 232, 78, 209, 8, 56, 232, 78, 213, 12, 56, 232, 78, 217, + 146, 232, 78, 248, 22, 164, 232, 78, 192, 71, 56, 232, 78, 193, 31, 56, + 150, 232, 141, 156, 195, 135, 150, 118, 57, 150, 196, 66, 57, 150, 96, + 57, 150, 235, 119, 57, 150, 62, 201, 190, 150, 63, 243, 10, 223, 106, + 251, 96, 251, 127, 223, 106, 251, 96, 204, 10, 223, 106, 251, 96, 199, + 80, 211, 175, 207, 43, 246, 239, 207, 43, 246, 239, 32, 78, 5, 250, 104, + 65, 32, 78, 5, 250, 73, 71, 32, 78, 5, 250, 82, 68, 32, 78, 5, 250, 50, + 74, 32, 78, 5, 250, 100, 66, 32, 78, 5, 250, 119, 238, 32, 32, 78, 5, + 250, 66, 237, 146, 32, 78, 5, 250, 106, 237, 44, 32, 78, 5, 250, 96, 236, + 174, 32, 78, 5, 250, 60, 235, 89, 32, 78, 5, 250, 54, 223, 32, 32, 78, 5, + 250, 65, 223, 10, 32, 78, 5, 250, 75, 222, 201, 32, 78, 5, 250, 46, 222, + 182, 32, 78, 5, 250, 34, 155, 32, 78, 5, 250, 67, 222, 22, 32, 78, 5, + 250, 44, 221, 166, 32, 78, 5, 250, 41, 221, 67, 32, 78, 5, 250, 30, 220, + 232, 32, 78, 5, 250, 31, 174, 32, 78, 5, 250, 97, 216, 232, 32, 78, 5, + 250, 38, 216, 100, 32, 78, 5, 250, 95, 216, 12, 32, 78, 5, 250, 87, 215, + 155, 32, 78, 5, 250, 108, 180, 32, 78, 5, 250, 86, 214, 121, 32, 78, 5, + 250, 80, 213, 219, 32, 78, 5, 250, 59, 213, 43, 32, 78, 5, 250, 56, 212, + 178, 32, 78, 5, 250, 115, 168, 32, 78, 5, 250, 39, 210, 63, 32, 78, 5, + 250, 72, 209, 185, 32, 78, 5, 250, 99, 209, 73, 32, 78, 5, 250, 61, 208, + 165, 32, 78, 5, 250, 94, 208, 96, 32, 78, 5, 250, 33, 208, 75, 32, 78, 5, + 250, 89, 208, 57, 32, 78, 5, 250, 78, 208, 45, 32, 78, 5, 250, 51, 165, + 32, 78, 5, 250, 83, 207, 113, 32, 78, 5, 250, 58, 207, 1, 32, 78, 5, 250, + 117, 206, 162, 32, 78, 5, 250, 84, 206, 68, 32, 78, 5, 250, 79, 188, 32, + 78, 5, 250, 102, 205, 68, 32, 78, 5, 250, 70, 202, 222, 32, 78, 5, 250, + 98, 202, 46, 32, 78, 5, 250, 53, 201, 4, 32, 78, 5, 250, 52, 190, 190, + 32, 78, 5, 250, 113, 199, 145, 32, 78, 5, 250, 74, 198, 193, 32, 78, 5, + 250, 111, 159, 32, 78, 5, 250, 42, 197, 94, 32, 78, 5, 250, 57, 193, 190, + 32, 78, 5, 250, 36, 193, 125, 32, 78, 5, 250, 71, 193, 86, 32, 78, 5, + 250, 69, 193, 48, 32, 78, 5, 250, 93, 191, 123, 32, 78, 5, 250, 37, 191, + 87, 32, 78, 5, 250, 90, 191, 7, 32, 78, 5, 250, 85, 254, 215, 32, 78, 5, + 250, 68, 254, 103, 32, 78, 5, 250, 27, 250, 163, 32, 78, 5, 250, 40, 235, + 45, 32, 78, 5, 250, 23, 235, 44, 32, 78, 5, 250, 63, 212, 110, 32, 78, 5, + 250, 81, 208, 163, 32, 78, 5, 250, 49, 208, 167, 32, 78, 5, 250, 35, 207, + 180, 32, 78, 5, 250, 77, 207, 179, 32, 78, 5, 250, 43, 206, 155, 32, 78, + 5, 250, 45, 199, 246, 32, 78, 5, 250, 25, 197, 41, 32, 78, 5, 250, 22, + 109, 32, 78, 16, 250, 92, 32, 78, 16, 250, 91, 32, 78, 16, 250, 88, 32, + 78, 16, 250, 76, 32, 78, 16, 250, 64, 32, 78, 16, 250, 62, 32, 78, 16, + 250, 55, 32, 78, 16, 250, 48, 32, 78, 16, 250, 47, 32, 78, 16, 250, 32, + 32, 78, 16, 250, 29, 32, 78, 16, 250, 28, 32, 78, 16, 250, 26, 32, 78, + 16, 250, 24, 32, 78, 157, 250, 21, 217, 90, 32, 78, 157, 250, 20, 193, + 35, 32, 78, 157, 250, 19, 237, 128, 32, 78, 157, 250, 18, 234, 40, 32, + 78, 157, 250, 17, 217, 56, 32, 78, 157, 250, 16, 201, 110, 32, 78, 157, + 250, 15, 233, 223, 32, 78, 157, 250, 14, 207, 142, 32, 78, 157, 250, 13, + 203, 112, 32, 78, 157, 250, 12, 229, 237, 32, 78, 157, 250, 11, 201, 255, + 32, 78, 157, 250, 10, 248, 109, 32, 78, 157, 250, 9, 238, 239, 32, 78, + 157, 250, 8, 247, 250, 32, 78, 157, 250, 7, 193, 95, 32, 78, 157, 250, 6, + 249, 84, 32, 78, 157, 250, 5, 211, 115, 32, 78, 157, 250, 4, 201, 223, + 32, 78, 157, 250, 3, 238, 136, 32, 78, 215, 221, 250, 2, 222, 74, 32, 78, + 215, 221, 250, 1, 222, 85, 32, 78, 157, 250, 0, 211, 131, 32, 78, 157, + 249, 255, 193, 62, 32, 78, 157, 249, 254, 32, 78, 215, 221, 249, 253, + 251, 7, 32, 78, 215, 221, 249, 252, 216, 178, 32, 78, 157, 249, 251, 248, + 21, 32, 78, 157, 249, 250, 230, 250, 32, 78, 157, 249, 249, 32, 78, 157, + 249, 248, 193, 26, 32, 78, 157, 249, 247, 32, 78, 157, 249, 246, 32, 78, + 157, 249, 245, 228, 187, 32, 78, 157, 249, 244, 32, 78, 157, 249, 243, + 32, 78, 157, 249, 242, 32, 78, 215, 221, 249, 240, 197, 56, 32, 78, 157, + 249, 239, 32, 78, 157, 249, 238, 32, 78, 157, 249, 237, 242, 213, 32, 78, + 157, 249, 236, 32, 78, 157, 249, 235, 32, 78, 157, 249, 234, 231, 196, + 32, 78, 157, 249, 233, 250, 248, 32, 78, 157, 249, 232, 32, 78, 157, 249, + 231, 32, 78, 157, 249, 230, 32, 78, 157, 249, 229, 32, 78, 157, 249, 228, + 32, 78, 157, 249, 227, 32, 78, 157, 249, 226, 32, 78, 157, 249, 225, 32, + 78, 157, 249, 224, 32, 78, 157, 249, 223, 215, 213, 32, 78, 157, 249, + 222, 32, 78, 157, 249, 221, 197, 254, 32, 78, 157, 249, 220, 32, 78, 157, + 249, 219, 32, 78, 157, 249, 218, 32, 78, 157, 249, 217, 32, 78, 157, 249, + 216, 32, 78, 157, 249, 215, 32, 78, 157, 249, 214, 32, 78, 157, 249, 213, + 32, 78, 157, 249, 212, 32, 78, 157, 249, 211, 32, 78, 157, 249, 210, 32, + 78, 157, 249, 209, 229, 200, 32, 78, 157, 249, 188, 232, 155, 32, 78, + 157, 249, 185, 249, 59, 32, 78, 157, 249, 180, 201, 232, 32, 78, 157, + 249, 179, 57, 32, 78, 157, 249, 178, 32, 78, 157, 249, 177, 200, 131, 32, + 78, 157, 249, 176, 32, 78, 157, 249, 175, 32, 78, 157, 249, 174, 193, 90, + 243, 138, 32, 78, 157, 249, 173, 243, 138, 32, 78, 157, 249, 172, 243, + 139, 232, 113, 32, 78, 157, 249, 171, 193, 93, 32, 78, 157, 249, 170, 32, + 78, 157, 249, 169, 32, 78, 215, 221, 249, 168, 236, 235, 32, 78, 157, + 249, 167, 32, 78, 157, 249, 166, 32, 78, 157, 249, 164, 32, 78, 157, 249, + 163, 32, 78, 157, 249, 162, 32, 78, 157, 249, 161, 237, 218, 32, 78, 157, + 249, 160, 32, 78, 157, 249, 159, 32, 78, 157, 249, 158, 32, 78, 157, 249, + 157, 32, 78, 157, 249, 156, 32, 78, 157, 195, 82, 249, 241, 32, 78, 157, + 195, 82, 249, 208, 32, 78, 157, 195, 82, 249, 207, 32, 78, 157, 195, 82, + 249, 206, 32, 78, 157, 195, 82, 249, 205, 32, 78, 157, 195, 82, 249, 204, + 32, 78, 157, 195, 82, 249, 203, 32, 78, 157, 195, 82, 249, 202, 32, 78, + 157, 195, 82, 249, 201, 32, 78, 157, 195, 82, 249, 200, 32, 78, 157, 195, + 82, 249, 199, 32, 78, 157, 195, 82, 249, 198, 32, 78, 157, 195, 82, 249, + 197, 32, 78, 157, 195, 82, 249, 196, 32, 78, 157, 195, 82, 249, 195, 32, + 78, 157, 195, 82, 249, 194, 32, 78, 157, 195, 82, 249, 193, 32, 78, 157, + 195, 82, 249, 192, 32, 78, 157, 195, 82, 249, 191, 32, 78, 157, 195, 82, + 249, 190, 32, 78, 157, 195, 82, 249, 189, 32, 78, 157, 195, 82, 249, 187, + 32, 78, 157, 195, 82, 249, 186, 32, 78, 157, 195, 82, 249, 184, 32, 78, + 157, 195, 82, 249, 183, 32, 78, 157, 195, 82, 249, 182, 32, 78, 157, 195, + 82, 249, 181, 32, 78, 157, 195, 82, 249, 165, 32, 78, 157, 195, 82, 249, + 155, 252, 18, 193, 23, 204, 11, 219, 112, 252, 18, 193, 23, 204, 11, 236, + 140, 252, 18, 243, 126, 77, 252, 18, 31, 107, 252, 18, 31, 109, 252, 18, + 31, 138, 252, 18, 31, 134, 252, 18, 31, 149, 252, 18, 31, 169, 252, 18, + 31, 175, 252, 18, 31, 171, 252, 18, 31, 178, 252, 18, 31, 199, 95, 252, + 18, 31, 197, 32, 252, 18, 31, 198, 249, 252, 18, 31, 232, 135, 252, 18, + 31, 233, 15, 252, 18, 31, 202, 120, 252, 18, 31, 203, 241, 252, 18, 31, + 234, 153, 252, 18, 31, 213, 169, 252, 18, 31, 91, 228, 140, 252, 18, 31, + 105, 228, 140, 252, 18, 31, 115, 228, 140, 252, 18, 31, 232, 128, 228, + 140, 252, 18, 31, 232, 226, 228, 140, 252, 18, 31, 202, 136, 228, 140, + 252, 18, 31, 203, 247, 228, 140, 252, 18, 31, 234, 164, 228, 140, 252, + 18, 31, 213, 175, 228, 140, 252, 18, 31, 91, 189, 252, 18, 31, 105, 189, + 252, 18, 31, 115, 189, 252, 18, 31, 232, 128, 189, 252, 18, 31, 232, 226, + 189, 252, 18, 31, 202, 136, 189, 252, 18, 31, 203, 247, 189, 252, 18, 31, + 234, 164, 189, 252, 18, 31, 213, 175, 189, 252, 18, 31, 199, 96, 189, + 252, 18, 31, 197, 33, 189, 252, 18, 31, 198, 250, 189, 252, 18, 31, 232, + 136, 189, 252, 18, 31, 233, 16, 189, 252, 18, 31, 202, 121, 189, 252, 18, + 31, 203, 242, 189, 252, 18, 31, 234, 154, 189, 252, 18, 31, 213, 170, + 189, 252, 18, 193, 110, 249, 75, 196, 90, 252, 18, 193, 110, 232, 238, + 200, 224, 252, 18, 193, 110, 205, 57, 200, 224, 252, 18, 193, 110, 199, + 1, 200, 224, 252, 18, 193, 110, 232, 121, 200, 224, 252, 18, 235, 92, + 216, 228, 232, 238, 200, 224, 252, 18, 219, 93, 216, 228, 232, 238, 200, + 224, 252, 18, 216, 228, 205, 57, 200, 224, 252, 18, 216, 228, 199, 1, + 200, 224, 35, 252, 50, 250, 165, 91, 208, 22, 35, 252, 50, 250, 165, 91, + 230, 70, 35, 252, 50, 250, 165, 91, 235, 115, 35, 252, 50, 250, 165, 149, + 35, 252, 50, 250, 165, 233, 15, 35, 252, 50, 250, 165, 232, 226, 228, + 140, 35, 252, 50, 250, 165, 232, 226, 189, 35, 252, 50, 250, 165, 233, + 16, 189, 35, 252, 50, 250, 165, 232, 226, 199, 203, 35, 252, 50, 250, + 165, 199, 96, 199, 203, 35, 252, 50, 250, 165, 233, 16, 199, 203, 35, + 252, 50, 250, 165, 91, 228, 141, 199, 203, 35, 252, 50, 250, 165, 232, + 226, 228, 141, 199, 203, 35, 252, 50, 250, 165, 91, 198, 230, 199, 203, + 35, 252, 50, 250, 165, 232, 226, 198, 230, 199, 203, 35, 252, 50, 250, + 165, 232, 226, 201, 94, 35, 252, 50, 250, 165, 199, 96, 201, 94, 35, 252, + 50, 250, 165, 233, 16, 201, 94, 35, 252, 50, 250, 165, 91, 228, 141, 201, + 94, 35, 252, 50, 250, 165, 232, 226, 228, 141, 201, 94, 35, 252, 50, 250, + 165, 91, 198, 230, 201, 94, 35, 252, 50, 250, 165, 199, 96, 198, 230, + 201, 94, 35, 252, 50, 250, 165, 233, 16, 198, 230, 201, 94, 35, 252, 50, + 250, 165, 199, 96, 216, 15, 35, 252, 50, 229, 194, 91, 209, 92, 35, 252, + 50, 199, 17, 107, 35, 252, 50, 229, 190, 107, 35, 252, 50, 234, 51, 109, + 35, 252, 50, 199, 17, 109, 35, 252, 50, 238, 132, 105, 235, 114, 35, 252, + 50, 234, 51, 105, 235, 114, 35, 252, 50, 197, 216, 149, 35, 252, 50, 197, + 216, 199, 95, 35, 252, 50, 197, 216, 199, 96, 251, 157, 20, 35, 252, 50, + 229, 190, 199, 95, 35, 252, 50, 216, 167, 199, 95, 35, 252, 50, 199, 17, + 199, 95, 35, 252, 50, 199, 17, 198, 249, 35, 252, 50, 197, 216, 233, 15, + 35, 252, 50, 197, 216, 233, 16, 251, 157, 20, 35, 252, 50, 229, 190, 233, + 15, 35, 252, 50, 199, 17, 233, 15, 35, 252, 50, 199, 17, 91, 228, 140, + 35, 252, 50, 199, 17, 115, 228, 140, 35, 252, 50, 234, 51, 232, 226, 228, + 140, 35, 252, 50, 197, 216, 232, 226, 228, 140, 35, 252, 50, 199, 17, + 232, 226, 228, 140, 35, 252, 50, 247, 82, 232, 226, 228, 140, 35, 252, + 50, 214, 199, 232, 226, 228, 140, 35, 252, 50, 199, 17, 91, 189, 35, 252, + 50, 199, 17, 232, 226, 189, 35, 252, 50, 237, 109, 232, 226, 216, 15, 35, + 252, 50, 201, 47, 233, 16, 216, 15, 35, 91, 132, 56, 35, 91, 132, 3, 251, + 157, 20, 35, 105, 198, 254, 56, 35, 115, 208, 21, 56, 35, 192, 78, 56, + 35, 199, 204, 56, 35, 235, 116, 56, 35, 211, 170, 56, 35, 105, 211, 169, + 56, 35, 115, 211, 169, 56, 35, 232, 128, 211, 169, 56, 35, 232, 226, 211, + 169, 56, 35, 216, 161, 56, 35, 220, 151, 249, 75, 56, 35, 219, 85, 56, + 35, 211, 16, 56, 35, 192, 211, 56, 35, 250, 226, 56, 35, 250, 243, 56, + 35, 230, 220, 56, 35, 197, 171, 249, 75, 56, 35, 191, 78, 56, 35, 91, + 208, 23, 56, 35, 202, 162, 56, 35, 223, 143, 56, 213, 32, 56, 206, 136, + 203, 237, 56, 206, 136, 196, 106, 56, 206, 136, 204, 17, 56, 206, 136, + 203, 175, 56, 206, 136, 236, 250, 203, 175, 56, 206, 136, 202, 186, 56, + 206, 136, 237, 104, 56, 206, 136, 208, 5, 56, 206, 136, 203, 254, 56, + 206, 136, 235, 67, 56, 206, 136, 250, 220, 56, 206, 136, 247, 17, 56, + 250, 211, 113, 35, 16, 199, 167, 207, 3, 209, 223, 236, 227, 3, 210, 51, + 209, 223, 236, 227, 3, 209, 84, 229, 235, 209, 223, 236, 227, 3, 199, + 170, 229, 235, 209, 223, 236, 227, 3, 247, 105, 209, 223, 236, 227, 3, + 243, 86, 209, 223, 236, 227, 3, 193, 35, 209, 223, 236, 227, 3, 229, 200, + 209, 223, 236, 227, 3, 231, 188, 209, 223, 236, 227, 3, 198, 184, 209, + 223, 236, 227, 3, 57, 209, 223, 236, 227, 3, 248, 69, 209, 223, 236, 227, + 3, 203, 78, 209, 223, 236, 227, 3, 242, 206, 209, 223, 236, 227, 3, 217, + 89, 209, 223, 236, 227, 3, 217, 26, 209, 223, 236, 227, 3, 205, 108, 209, + 223, 236, 227, 3, 219, 141, 209, 223, 236, 227, 3, 248, 92, 209, 223, + 236, 227, 3, 247, 89, 209, 101, 209, 223, 236, 227, 3, 236, 156, 209, + 223, 236, 227, 3, 242, 80, 209, 223, 236, 227, 3, 202, 83, 209, 223, 236, + 227, 3, 242, 81, 209, 223, 236, 227, 3, 248, 254, 209, 223, 236, 227, 3, + 203, 65, 209, 223, 236, 227, 3, 228, 187, 209, 223, 236, 227, 3, 229, + 148, 209, 223, 236, 227, 3, 247, 245, 219, 212, 209, 223, 236, 227, 3, + 247, 78, 209, 223, 236, 227, 3, 207, 142, 209, 223, 236, 227, 3, 234, + 214, 209, 223, 236, 227, 3, 235, 124, 209, 223, 236, 227, 3, 197, 72, + 209, 223, 236, 227, 3, 249, 1, 209, 223, 236, 227, 3, 209, 102, 197, 254, + 209, 223, 236, 227, 3, 195, 47, 209, 223, 236, 227, 3, 210, 132, 209, + 223, 236, 227, 3, 206, 125, 209, 223, 236, 227, 3, 219, 125, 209, 223, + 236, 227, 3, 210, 248, 249, 146, 209, 223, 236, 227, 3, 232, 182, 209, + 223, 236, 227, 3, 230, 212, 209, 223, 236, 227, 3, 201, 50, 209, 223, + 236, 227, 3, 2, 250, 132, 209, 223, 236, 227, 3, 193, 135, 249, 97, 209, + 223, 236, 227, 3, 33, 211, 172, 106, 218, 181, 1, 65, 218, 181, 1, 71, + 218, 181, 1, 250, 120, 218, 181, 1, 248, 204, 218, 181, 1, 232, 51, 218, + 181, 1, 238, 127, 218, 181, 1, 68, 218, 181, 1, 193, 224, 218, 181, 1, + 191, 166, 218, 181, 1, 199, 51, 218, 181, 1, 223, 35, 218, 181, 1, 222, + 152, 218, 181, 1, 208, 104, 218, 181, 1, 172, 218, 181, 1, 218, 168, 218, + 181, 1, 215, 61, 218, 181, 1, 216, 17, 218, 181, 1, 213, 80, 218, 181, 1, + 66, 218, 181, 1, 210, 236, 218, 181, 1, 221, 102, 218, 181, 1, 146, 218, + 181, 1, 206, 8, 218, 181, 1, 200, 43, 218, 181, 1, 197, 135, 218, 181, 1, + 251, 132, 218, 181, 1, 234, 103, 218, 181, 1, 230, 116, 218, 181, 1, 192, + 235, 247, 95, 1, 65, 247, 95, 1, 210, 222, 247, 95, 1, 238, 127, 247, 95, + 1, 172, 247, 95, 1, 196, 28, 247, 95, 1, 146, 247, 95, 1, 219, 242, 247, + 95, 1, 254, 215, 247, 95, 1, 208, 104, 247, 95, 1, 250, 120, 247, 95, 1, + 218, 168, 247, 95, 1, 74, 247, 95, 1, 238, 34, 247, 95, 1, 200, 43, 247, + 95, 1, 203, 167, 247, 95, 1, 203, 166, 247, 95, 1, 206, 8, 247, 95, 1, + 247, 192, 247, 95, 1, 66, 247, 95, 1, 213, 80, 247, 95, 1, 192, 235, 247, + 95, 1, 215, 61, 247, 95, 1, 197, 134, 247, 95, 1, 210, 236, 247, 95, 1, + 201, 178, 247, 95, 1, 68, 247, 95, 1, 71, 247, 95, 1, 196, 25, 247, 95, + 1, 222, 152, 247, 95, 1, 222, 143, 247, 95, 1, 214, 164, 247, 95, 1, 196, + 30, 247, 95, 1, 232, 51, 247, 95, 1, 231, 242, 247, 95, 1, 201, 118, 247, + 95, 1, 201, 117, 247, 95, 1, 214, 70, 247, 95, 1, 223, 199, 247, 95, 1, + 247, 191, 247, 95, 1, 197, 135, 247, 95, 1, 196, 27, 247, 95, 1, 206, + 110, 247, 95, 1, 217, 16, 247, 95, 1, 217, 15, 247, 95, 1, 217, 14, 247, + 95, 1, 217, 13, 247, 95, 1, 219, 241, 247, 95, 1, 234, 218, 247, 95, 1, + 196, 26, 94, 234, 54, 198, 229, 77, 94, 234, 54, 17, 107, 94, 234, 54, + 17, 109, 94, 234, 54, 17, 138, 94, 234, 54, 17, 134, 94, 234, 54, 17, + 149, 94, 234, 54, 17, 169, 94, 234, 54, 17, 175, 94, 234, 54, 17, 171, + 94, 234, 54, 17, 178, 94, 234, 54, 31, 199, 95, 94, 234, 54, 31, 197, 32, + 94, 234, 54, 31, 198, 249, 94, 234, 54, 31, 232, 135, 94, 234, 54, 31, + 233, 15, 94, 234, 54, 31, 202, 120, 94, 234, 54, 31, 203, 241, 94, 234, + 54, 31, 234, 153, 94, 234, 54, 31, 213, 169, 94, 234, 54, 31, 91, 228, + 140, 94, 234, 54, 31, 105, 228, 140, 94, 234, 54, 31, 115, 228, 140, 94, + 234, 54, 31, 232, 128, 228, 140, 94, 234, 54, 31, 232, 226, 228, 140, 94, + 234, 54, 31, 202, 136, 228, 140, 94, 234, 54, 31, 203, 247, 228, 140, 94, + 234, 54, 31, 234, 164, 228, 140, 94, 234, 54, 31, 213, 175, 228, 140, 39, + 43, 1, 65, 39, 43, 1, 249, 17, 39, 43, 1, 222, 22, 39, 43, 1, 237, 146, + 39, 43, 1, 71, 39, 43, 1, 195, 153, 39, 43, 1, 191, 87, 39, 43, 1, 229, + 245, 39, 43, 1, 199, 33, 39, 43, 1, 68, 39, 43, 1, 155, 39, 43, 1, 234, + 140, 39, 43, 1, 234, 114, 39, 43, 1, 234, 103, 39, 43, 1, 234, 12, 39, + 43, 1, 74, 39, 43, 1, 210, 63, 39, 43, 1, 203, 113, 39, 43, 1, 220, 232, + 39, 43, 1, 234, 34, 39, 43, 1, 234, 22, 39, 43, 1, 199, 145, 39, 43, 1, + 66, 39, 43, 1, 234, 143, 39, 43, 1, 209, 214, 39, 43, 1, 221, 197, 39, + 43, 1, 234, 181, 39, 43, 1, 234, 24, 39, 43, 1, 243, 127, 39, 43, 1, 223, + 199, 39, 43, 1, 196, 30, 39, 43, 1, 234, 5, 39, 43, 212, 134, 107, 39, + 43, 212, 134, 149, 39, 43, 212, 134, 199, 95, 39, 43, 212, 134, 233, 15, + 39, 43, 1, 192, 80, 39, 43, 1, 213, 16, 197, 161, 39, 43, 1, 202, 0, 197, + 161, 230, 231, 1, 251, 239, 230, 231, 1, 249, 117, 230, 231, 1, 231, 50, + 230, 231, 1, 238, 13, 230, 231, 1, 251, 234, 230, 231, 1, 208, 87, 230, + 231, 1, 223, 48, 230, 231, 1, 230, 83, 230, 231, 1, 198, 243, 230, 231, + 1, 234, 151, 230, 231, 1, 220, 189, 230, 231, 1, 220, 100, 230, 231, 1, + 217, 80, 230, 231, 1, 214, 201, 230, 231, 1, 223, 1, 230, 231, 1, 196, + 48, 230, 231, 1, 210, 195, 230, 231, 1, 213, 169, 230, 231, 1, 207, 155, + 230, 231, 1, 205, 112, 230, 231, 1, 199, 111, 230, 231, 1, 193, 59, 230, + 231, 1, 233, 89, 230, 231, 1, 223, 203, 230, 231, 1, 228, 123, 230, 231, + 1, 211, 29, 230, 231, 1, 213, 175, 228, 140, 39, 210, 2, 1, 251, 132, 39, + 210, 2, 1, 247, 230, 39, 210, 2, 1, 231, 224, 39, 210, 2, 1, 236, 160, + 39, 210, 2, 1, 71, 39, 210, 2, 1, 191, 53, 39, 210, 2, 1, 235, 27, 39, + 210, 2, 1, 191, 95, 39, 210, 2, 1, 235, 25, 39, 210, 2, 1, 68, 39, 210, + 2, 1, 221, 50, 39, 210, 2, 1, 219, 208, 39, 210, 2, 1, 216, 184, 39, 210, + 2, 1, 214, 100, 39, 210, 2, 1, 195, 7, 39, 210, 2, 1, 210, 48, 39, 210, + 2, 1, 207, 70, 39, 210, 2, 1, 202, 193, 39, 210, 2, 1, 199, 217, 39, 210, + 2, 1, 66, 39, 210, 2, 1, 243, 106, 39, 210, 2, 1, 203, 47, 39, 210, 2, 1, + 203, 115, 39, 210, 2, 1, 191, 227, 39, 210, 2, 1, 192, 58, 39, 210, 2, 1, + 74, 39, 210, 2, 1, 211, 87, 39, 210, 2, 1, 234, 181, 39, 210, 2, 1, 140, + 39, 210, 2, 1, 197, 145, 39, 210, 2, 1, 195, 140, 39, 210, 2, 1, 192, 62, + 39, 210, 2, 1, 192, 60, 39, 210, 2, 1, 192, 95, 39, 210, 2, 1, 223, 226, + 39, 210, 2, 1, 191, 225, 39, 210, 2, 1, 170, 39, 210, 2, 1, 228, 35, 33, + 39, 210, 2, 1, 251, 132, 33, 39, 210, 2, 1, 236, 160, 33, 39, 210, 2, 1, + 191, 95, 33, 39, 210, 2, 1, 214, 100, 33, 39, 210, 2, 1, 202, 193, 196, + 142, 1, 251, 164, 196, 142, 1, 248, 212, 196, 142, 1, 231, 212, 196, 142, + 1, 221, 215, 196, 142, 1, 237, 106, 196, 142, 1, 229, 23, 196, 142, 1, + 193, 48, 196, 142, 1, 191, 76, 196, 142, 1, 228, 179, 196, 142, 1, 199, + 73, 196, 142, 1, 191, 250, 196, 142, 1, 222, 106, 196, 142, 1, 203, 69, + 196, 142, 1, 220, 31, 196, 142, 1, 216, 193, 196, 142, 1, 237, 64, 196, + 142, 1, 212, 130, 196, 142, 1, 190, 251, 196, 142, 1, 205, 147, 196, 142, + 1, 251, 230, 196, 142, 1, 208, 165, 196, 142, 1, 205, 191, 196, 142, 1, + 208, 38, 196, 142, 1, 207, 133, 196, 142, 1, 199, 37, 196, 142, 1, 231, + 86, 196, 142, 1, 159, 196, 142, 1, 68, 196, 142, 1, 66, 196, 142, 1, 201, + 129, 196, 142, 193, 23, 236, 205, 39, 209, 252, 3, 65, 39, 209, 252, 3, + 68, 39, 209, 252, 3, 66, 39, 209, 252, 3, 155, 39, 209, 252, 3, 220, 232, + 39, 209, 252, 3, 231, 240, 39, 209, 252, 3, 230, 179, 39, 209, 252, 3, + 192, 220, 39, 209, 252, 3, 247, 160, 39, 209, 252, 3, 223, 32, 39, 209, + 252, 3, 222, 244, 39, 209, 252, 3, 190, 190, 39, 209, 252, 3, 197, 94, + 39, 209, 252, 3, 238, 32, 39, 209, 252, 3, 237, 44, 39, 209, 252, 3, 235, + 89, 39, 209, 252, 3, 199, 49, 39, 209, 252, 3, 168, 39, 209, 252, 3, 249, + 153, 39, 209, 252, 3, 233, 109, 39, 209, 252, 3, 180, 39, 209, 252, 3, + 212, 178, 39, 209, 252, 3, 174, 39, 209, 252, 3, 216, 100, 39, 209, 252, + 3, 215, 155, 39, 209, 252, 3, 170, 39, 209, 252, 3, 195, 188, 39, 209, + 252, 3, 195, 69, 39, 209, 252, 3, 165, 39, 209, 252, 3, 206, 68, 39, 209, + 252, 3, 173, 39, 209, 252, 3, 188, 39, 209, 252, 3, 191, 123, 39, 209, + 252, 3, 203, 165, 39, 209, 252, 3, 201, 175, 39, 209, 252, 3, 140, 39, + 209, 252, 3, 250, 157, 39, 209, 252, 3, 250, 156, 39, 209, 252, 3, 250, + 155, 39, 209, 252, 3, 192, 189, 39, 209, 252, 3, 238, 9, 39, 209, 252, 3, + 238, 8, 39, 209, 252, 3, 249, 128, 39, 209, 252, 3, 247, 212, 39, 209, + 252, 193, 23, 236, 205, 39, 209, 252, 31, 107, 39, 209, 252, 31, 109, 39, + 209, 252, 31, 199, 95, 39, 209, 252, 31, 197, 32, 39, 209, 252, 31, 228, + 140, 237, 84, 6, 1, 179, 68, 237, 84, 6, 1, 179, 71, 237, 84, 6, 1, 179, + 65, 237, 84, 6, 1, 179, 251, 245, 237, 84, 6, 1, 179, 74, 237, 84, 6, 1, + 179, 211, 87, 237, 84, 6, 1, 203, 40, 68, 237, 84, 6, 1, 203, 40, 71, + 237, 84, 6, 1, 203, 40, 65, 237, 84, 6, 1, 203, 40, 251, 245, 237, 84, 6, + 1, 203, 40, 74, 237, 84, 6, 1, 203, 40, 211, 87, 237, 84, 6, 1, 250, 131, + 237, 84, 6, 1, 210, 250, 237, 84, 6, 1, 193, 0, 237, 84, 6, 1, 192, 77, + 237, 84, 6, 1, 230, 116, 237, 84, 6, 1, 210, 49, 237, 84, 6, 1, 249, 1, + 237, 84, 6, 1, 199, 121, 237, 84, 6, 1, 237, 131, 237, 84, 6, 1, 243, + 123, 237, 84, 6, 1, 223, 8, 237, 84, 6, 1, 222, 29, 237, 84, 6, 1, 231, + 186, 237, 84, 6, 1, 234, 181, 237, 84, 6, 1, 195, 148, 237, 84, 6, 1, + 233, 248, 237, 84, 6, 1, 199, 31, 237, 84, 6, 1, 234, 22, 237, 84, 6, 1, + 191, 84, 237, 84, 6, 1, 234, 12, 237, 84, 6, 1, 191, 61, 237, 84, 6, 1, + 234, 34, 237, 84, 6, 1, 234, 140, 237, 84, 6, 1, 234, 114, 237, 84, 6, 1, + 234, 103, 237, 84, 6, 1, 234, 88, 237, 84, 6, 1, 211, 133, 237, 84, 6, 1, + 233, 224, 237, 84, 2, 1, 179, 68, 237, 84, 2, 1, 179, 71, 237, 84, 2, 1, + 179, 65, 237, 84, 2, 1, 179, 251, 245, 237, 84, 2, 1, 179, 74, 237, 84, + 2, 1, 179, 211, 87, 237, 84, 2, 1, 203, 40, 68, 237, 84, 2, 1, 203, 40, + 71, 237, 84, 2, 1, 203, 40, 65, 237, 84, 2, 1, 203, 40, 251, 245, 237, + 84, 2, 1, 203, 40, 74, 237, 84, 2, 1, 203, 40, 211, 87, 237, 84, 2, 1, + 250, 131, 237, 84, 2, 1, 210, 250, 237, 84, 2, 1, 193, 0, 237, 84, 2, 1, + 192, 77, 237, 84, 2, 1, 230, 116, 237, 84, 2, 1, 210, 49, 237, 84, 2, 1, + 249, 1, 237, 84, 2, 1, 199, 121, 237, 84, 2, 1, 237, 131, 237, 84, 2, 1, + 243, 123, 237, 84, 2, 1, 223, 8, 237, 84, 2, 1, 222, 29, 237, 84, 2, 1, + 231, 186, 237, 84, 2, 1, 234, 181, 237, 84, 2, 1, 195, 148, 237, 84, 2, + 1, 233, 248, 237, 84, 2, 1, 199, 31, 237, 84, 2, 1, 234, 22, 237, 84, 2, + 1, 191, 84, 237, 84, 2, 1, 234, 12, 237, 84, 2, 1, 191, 61, 237, 84, 2, + 1, 234, 34, 237, 84, 2, 1, 234, 140, 237, 84, 2, 1, 234, 114, 237, 84, 2, + 1, 234, 103, 237, 84, 2, 1, 234, 88, 237, 84, 2, 1, 211, 133, 237, 84, 2, + 1, 233, 224, 203, 120, 1, 210, 45, 203, 120, 1, 198, 40, 203, 120, 1, + 221, 154, 203, 120, 1, 233, 52, 203, 120, 1, 199, 6, 203, 120, 1, 202, + 46, 203, 120, 1, 200, 172, 203, 120, 1, 243, 40, 203, 120, 1, 192, 79, + 203, 120, 1, 228, 137, 203, 120, 1, 248, 187, 203, 120, 1, 237, 145, 203, + 120, 1, 231, 226, 203, 120, 1, 195, 2, 203, 120, 1, 199, 12, 203, 120, 1, + 191, 4, 203, 120, 1, 216, 227, 203, 120, 1, 222, 180, 203, 120, 1, 193, + 39, 203, 120, 1, 230, 93, 203, 120, 1, 219, 25, 203, 120, 1, 216, 45, + 203, 120, 1, 223, 206, 203, 120, 1, 234, 179, 203, 120, 1, 250, 209, 203, + 120, 1, 252, 30, 203, 120, 1, 211, 104, 203, 120, 1, 193, 26, 203, 120, + 1, 211, 14, 203, 120, 1, 251, 245, 203, 120, 1, 206, 153, 203, 120, 1, + 212, 130, 203, 120, 1, 234, 200, 203, 120, 1, 251, 250, 203, 120, 1, 228, + 26, 203, 120, 1, 196, 77, 203, 120, 1, 211, 180, 203, 120, 1, 211, 79, + 203, 120, 1, 211, 131, 203, 120, 1, 250, 137, 203, 120, 1, 251, 9, 203, + 120, 1, 211, 56, 203, 120, 1, 251, 225, 203, 120, 1, 234, 26, 203, 120, + 1, 250, 240, 203, 120, 1, 234, 211, 203, 120, 1, 228, 34, 203, 120, 1, + 192, 41, 211, 33, 1, 251, 192, 211, 33, 1, 249, 153, 211, 33, 1, 190, + 190, 211, 33, 1, 223, 32, 211, 33, 1, 192, 220, 211, 33, 1, 221, 215, + 211, 33, 1, 237, 130, 211, 33, 1, 165, 211, 33, 1, 188, 211, 33, 1, 203, + 75, 211, 33, 1, 237, 68, 211, 33, 1, 247, 67, 211, 33, 1, 231, 240, 211, + 33, 1, 233, 109, 211, 33, 1, 208, 94, 211, 33, 1, 222, 123, 211, 33, 1, + 220, 121, 211, 33, 1, 216, 59, 211, 33, 1, 212, 114, 211, 33, 1, 193, + 133, 211, 33, 1, 140, 211, 33, 1, 170, 211, 33, 1, 65, 211, 33, 1, 71, + 211, 33, 1, 68, 211, 33, 1, 74, 211, 33, 1, 66, 211, 33, 1, 252, 206, + 211, 33, 1, 234, 188, 211, 33, 1, 211, 87, 211, 33, 17, 191, 77, 211, 33, + 17, 107, 211, 33, 17, 109, 211, 33, 17, 138, 211, 33, 17, 134, 211, 33, + 17, 149, 211, 33, 17, 169, 211, 33, 17, 175, 211, 33, 17, 171, 211, 33, + 17, 178, 211, 35, 6, 1, 65, 211, 35, 6, 1, 251, 236, 211, 35, 6, 1, 251, + 230, 211, 35, 6, 1, 251, 245, 211, 35, 6, 1, 248, 56, 211, 35, 6, 1, 247, + 1, 211, 35, 6, 1, 234, 172, 211, 35, 6, 1, 71, 211, 35, 6, 1, 234, 152, + 211, 35, 6, 1, 140, 211, 35, 6, 1, 228, 93, 211, 35, 6, 1, 68, 211, 35, + 6, 1, 155, 211, 35, 6, 1, 234, 171, 211, 35, 6, 1, 220, 153, 211, 35, 6, + 1, 173, 211, 35, 6, 1, 174, 211, 35, 6, 1, 180, 211, 35, 6, 1, 74, 211, + 35, 6, 1, 211, 130, 211, 35, 6, 1, 168, 211, 35, 6, 1, 234, 170, 211, 35, + 6, 1, 188, 211, 35, 6, 1, 203, 165, 211, 35, 6, 1, 190, 190, 211, 35, 6, + 1, 234, 169, 211, 35, 6, 1, 197, 168, 211, 35, 6, 1, 234, 168, 211, 35, + 6, 1, 197, 157, 211, 35, 6, 1, 237, 68, 211, 35, 6, 1, 66, 211, 35, 6, 1, + 193, 190, 211, 35, 6, 1, 221, 215, 211, 35, 6, 1, 231, 91, 211, 35, 6, 1, + 191, 123, 211, 35, 6, 1, 191, 71, 211, 35, 2, 1, 65, 211, 35, 2, 1, 251, + 236, 211, 35, 2, 1, 251, 230, 211, 35, 2, 1, 251, 245, 211, 35, 2, 1, + 248, 56, 211, 35, 2, 1, 247, 1, 211, 35, 2, 1, 234, 172, 211, 35, 2, 1, + 71, 211, 35, 2, 1, 234, 152, 211, 35, 2, 1, 140, 211, 35, 2, 1, 228, 93, + 211, 35, 2, 1, 68, 211, 35, 2, 1, 155, 211, 35, 2, 1, 234, 171, 211, 35, + 2, 1, 220, 153, 211, 35, 2, 1, 173, 211, 35, 2, 1, 174, 211, 35, 2, 1, + 180, 211, 35, 2, 1, 74, 211, 35, 2, 1, 211, 130, 211, 35, 2, 1, 168, 211, + 35, 2, 1, 234, 170, 211, 35, 2, 1, 188, 211, 35, 2, 1, 203, 165, 211, 35, + 2, 1, 190, 190, 211, 35, 2, 1, 234, 169, 211, 35, 2, 1, 197, 168, 211, + 35, 2, 1, 234, 168, 211, 35, 2, 1, 197, 157, 211, 35, 2, 1, 237, 68, 211, + 35, 2, 1, 66, 211, 35, 2, 1, 193, 190, 211, 35, 2, 1, 221, 215, 211, 35, + 2, 1, 231, 91, 211, 35, 2, 1, 191, 123, 211, 35, 2, 1, 191, 71, 234, 136, + 1, 65, 234, 136, 1, 249, 17, 234, 136, 1, 247, 42, 234, 136, 1, 243, 127, + 234, 136, 1, 237, 146, 234, 136, 1, 214, 154, 234, 136, 1, 237, 59, 234, + 136, 1, 234, 166, 234, 136, 1, 71, 234, 136, 1, 233, 59, 234, 136, 1, + 231, 165, 234, 136, 1, 231, 20, 234, 136, 1, 229, 245, 234, 136, 1, 68, + 234, 136, 1, 223, 10, 234, 136, 1, 222, 22, 234, 136, 1, 219, 238, 234, + 136, 1, 219, 68, 234, 136, 1, 216, 232, 234, 136, 1, 214, 121, 234, 136, + 1, 180, 234, 136, 1, 213, 150, 234, 136, 1, 74, 234, 136, 1, 210, 63, + 234, 136, 1, 208, 75, 234, 136, 1, 207, 113, 234, 136, 1, 206, 104, 234, + 136, 1, 205, 68, 234, 136, 1, 203, 113, 234, 136, 1, 199, 145, 234, 136, + 1, 199, 33, 234, 136, 1, 66, 234, 136, 1, 195, 153, 234, 136, 1, 192, + 214, 234, 136, 1, 192, 159, 234, 136, 1, 191, 87, 234, 136, 1, 191, 62, + 234, 136, 1, 231, 77, 234, 136, 1, 231, 83, 234, 136, 1, 221, 197, 247, + 75, 251, 193, 1, 251, 159, 247, 75, 251, 193, 1, 248, 214, 247, 75, 251, + 193, 1, 231, 40, 247, 75, 251, 193, 1, 237, 211, 247, 75, 251, 193, 1, + 234, 199, 247, 75, 251, 193, 1, 191, 98, 247, 75, 251, 193, 1, 233, 184, + 247, 75, 251, 193, 1, 191, 56, 247, 75, 251, 193, 1, 199, 174, 247, 75, + 251, 193, 1, 247, 1, 247, 75, 251, 193, 1, 191, 236, 247, 75, 251, 193, + 1, 191, 71, 247, 75, 251, 193, 1, 223, 76, 247, 75, 251, 193, 1, 203, + 165, 247, 75, 251, 193, 1, 220, 24, 247, 75, 251, 193, 1, 223, 89, 247, + 75, 251, 193, 1, 192, 210, 247, 75, 251, 193, 1, 235, 43, 247, 75, 251, + 193, 1, 247, 102, 247, 75, 251, 193, 1, 222, 245, 247, 75, 251, 193, 1, + 222, 65, 247, 75, 251, 193, 1, 218, 177, 247, 75, 251, 193, 1, 229, 179, + 247, 75, 251, 193, 1, 208, 76, 247, 75, 251, 193, 1, 251, 67, 247, 75, + 251, 193, 1, 243, 57, 247, 75, 251, 193, 1, 243, 95, 247, 75, 251, 193, + 1, 238, 140, 247, 75, 251, 193, 1, 217, 68, 247, 75, 251, 193, 1, 208, + 81, 247, 75, 251, 193, 1, 212, 252, 247, 75, 251, 193, 1, 235, 20, 247, + 75, 251, 193, 1, 203, 147, 247, 75, 251, 193, 1, 223, 11, 247, 75, 251, + 193, 1, 211, 104, 247, 75, 251, 193, 1, 197, 3, 247, 75, 251, 193, 1, + 233, 82, 247, 75, 251, 193, 1, 235, 33, 247, 75, 251, 193, 1, 243, 133, + 247, 75, 251, 193, 1, 210, 34, 247, 75, 251, 193, 1, 231, 67, 247, 75, + 251, 193, 1, 207, 130, 247, 75, 251, 193, 1, 203, 174, 247, 75, 251, 193, + 1, 195, 72, 247, 75, 251, 193, 1, 198, 118, 247, 75, 251, 193, 1, 203, + 18, 247, 75, 251, 193, 1, 223, 46, 247, 75, 251, 193, 1, 238, 141, 247, + 75, 251, 193, 1, 247, 67, 247, 75, 251, 193, 1, 192, 84, 247, 75, 251, + 193, 1, 209, 114, 247, 75, 251, 193, 1, 221, 117, 247, 75, 251, 193, 242, + 254, 77, 195, 29, 6, 1, 65, 195, 29, 6, 1, 249, 48, 195, 29, 6, 1, 249, + 17, 195, 29, 6, 1, 247, 42, 195, 29, 6, 1, 243, 127, 195, 29, 6, 1, 237, + 146, 195, 29, 6, 1, 237, 59, 195, 29, 6, 1, 234, 166, 195, 29, 6, 1, 71, + 195, 29, 6, 1, 233, 59, 195, 29, 6, 1, 231, 240, 195, 29, 6, 1, 140, 195, + 29, 6, 1, 229, 177, 195, 29, 6, 1, 68, 195, 29, 6, 1, 223, 196, 195, 29, + 6, 1, 223, 10, 195, 29, 6, 1, 155, 195, 29, 6, 1, 173, 195, 29, 6, 1, + 219, 73, 195, 29, 6, 1, 216, 232, 195, 29, 6, 1, 214, 121, 195, 29, 6, 1, + 213, 150, 195, 29, 6, 1, 74, 195, 29, 6, 1, 210, 63, 195, 29, 6, 1, 208, + 96, 195, 29, 6, 1, 207, 113, 195, 29, 6, 1, 205, 68, 195, 29, 6, 1, 203, + 113, 195, 29, 6, 1, 199, 145, 195, 29, 6, 1, 199, 33, 195, 29, 6, 1, 66, + 195, 29, 6, 1, 195, 153, 195, 29, 6, 1, 192, 214, 195, 29, 6, 1, 192, + 159, 195, 29, 6, 1, 191, 87, 195, 29, 2, 1, 65, 195, 29, 2, 1, 249, 48, + 195, 29, 2, 1, 249, 17, 195, 29, 2, 1, 247, 42, 195, 29, 2, 1, 243, 127, + 195, 29, 2, 1, 237, 146, 195, 29, 2, 1, 237, 59, 195, 29, 2, 1, 234, 166, + 195, 29, 2, 1, 71, 195, 29, 2, 1, 233, 59, 195, 29, 2, 1, 231, 240, 195, + 29, 2, 1, 140, 195, 29, 2, 1, 229, 177, 195, 29, 2, 1, 68, 195, 29, 2, 1, + 223, 196, 195, 29, 2, 1, 223, 10, 195, 29, 2, 1, 155, 195, 29, 2, 1, 173, + 195, 29, 2, 1, 219, 73, 195, 29, 2, 1, 216, 232, 195, 29, 2, 1, 214, 121, + 195, 29, 2, 1, 213, 150, 195, 29, 2, 1, 74, 195, 29, 2, 1, 210, 63, 195, + 29, 2, 1, 208, 96, 195, 29, 2, 1, 207, 113, 195, 29, 2, 1, 205, 68, 195, + 29, 2, 1, 203, 113, 195, 29, 2, 1, 199, 145, 195, 29, 2, 1, 199, 33, 195, + 29, 2, 1, 66, 195, 29, 2, 1, 195, 153, 195, 29, 2, 1, 192, 214, 195, 29, + 2, 1, 192, 159, 195, 29, 2, 1, 191, 87, 32, 42, 3, 252, 154, 32, 42, 3, + 252, 153, 32, 42, 3, 252, 152, 32, 42, 3, 252, 151, 32, 42, 3, 252, 150, + 32, 42, 3, 252, 149, 32, 42, 3, 252, 148, 32, 42, 3, 252, 147, 32, 42, 3, + 252, 146, 32, 42, 3, 252, 145, 32, 42, 3, 252, 144, 32, 42, 3, 252, 143, + 32, 42, 3, 252, 142, 32, 42, 3, 252, 141, 32, 42, 3, 252, 140, 32, 42, 3, + 252, 139, 32, 42, 3, 252, 138, 32, 42, 3, 252, 137, 32, 42, 3, 252, 136, + 32, 42, 3, 252, 135, 32, 42, 3, 252, 134, 32, 42, 3, 252, 133, 32, 42, 3, + 252, 132, 32, 42, 3, 252, 131, 32, 42, 3, 252, 130, 32, 42, 3, 252, 129, + 32, 42, 3, 252, 128, 32, 42, 3, 255, 164, 32, 42, 3, 252, 127, 32, 42, 3, + 252, 126, 32, 42, 3, 252, 125, 32, 42, 3, 252, 124, 32, 42, 3, 252, 123, + 32, 42, 3, 252, 122, 32, 42, 3, 252, 121, 32, 42, 3, 252, 120, 32, 42, 3, + 252, 119, 32, 42, 3, 252, 118, 32, 42, 3, 252, 117, 32, 42, 3, 252, 116, + 32, 42, 3, 252, 115, 32, 42, 3, 252, 114, 32, 42, 3, 252, 113, 32, 42, 3, + 252, 112, 32, 42, 3, 252, 111, 32, 42, 3, 252, 110, 32, 42, 3, 252, 109, + 32, 42, 3, 252, 108, 32, 42, 3, 252, 107, 32, 42, 3, 252, 106, 32, 42, 3, + 252, 105, 32, 42, 3, 252, 104, 32, 42, 3, 252, 103, 32, 42, 3, 252, 102, + 32, 42, 3, 252, 101, 32, 42, 3, 252, 100, 32, 42, 3, 252, 99, 32, 42, 3, + 252, 98, 32, 42, 3, 252, 97, 32, 42, 3, 252, 96, 32, 42, 3, 252, 95, 32, + 42, 3, 252, 94, 32, 42, 3, 252, 93, 32, 42, 3, 252, 92, 32, 42, 3, 252, + 91, 32, 42, 3, 252, 90, 32, 42, 3, 252, 89, 32, 42, 3, 252, 88, 32, 42, + 3, 252, 87, 32, 42, 3, 252, 86, 32, 42, 3, 252, 85, 32, 42, 3, 255, 77, + 32, 42, 3, 252, 84, 32, 42, 3, 252, 83, 32, 42, 3, 255, 42, 32, 42, 3, + 252, 82, 32, 42, 3, 252, 81, 32, 42, 3, 252, 80, 32, 42, 3, 252, 79, 32, + 42, 3, 255, 29, 32, 42, 3, 252, 78, 32, 42, 3, 252, 77, 32, 42, 3, 252, + 76, 32, 42, 3, 252, 75, 32, 42, 3, 252, 74, 32, 42, 3, 254, 101, 32, 42, + 3, 254, 100, 32, 42, 3, 254, 99, 32, 42, 3, 254, 98, 32, 42, 3, 254, 97, + 32, 42, 3, 254, 96, 32, 42, 3, 254, 95, 32, 42, 3, 254, 94, 32, 42, 3, + 254, 92, 32, 42, 3, 254, 91, 32, 42, 3, 254, 90, 32, 42, 3, 254, 89, 32, + 42, 3, 254, 88, 32, 42, 3, 254, 87, 32, 42, 3, 254, 85, 32, 42, 3, 254, + 84, 32, 42, 3, 254, 83, 32, 42, 3, 254, 82, 32, 42, 3, 254, 81, 32, 42, + 3, 254, 80, 32, 42, 3, 254, 79, 32, 42, 3, 254, 78, 32, 42, 3, 254, 77, + 32, 42, 3, 254, 76, 32, 42, 3, 254, 75, 32, 42, 3, 254, 74, 32, 42, 3, + 254, 73, 32, 42, 3, 254, 72, 32, 42, 3, 254, 71, 32, 42, 3, 254, 70, 32, + 42, 3, 254, 69, 32, 42, 3, 254, 68, 32, 42, 3, 254, 67, 32, 42, 3, 254, + 65, 32, 42, 3, 254, 64, 32, 42, 3, 254, 63, 32, 42, 3, 254, 59, 32, 42, + 3, 254, 58, 32, 42, 3, 254, 57, 32, 42, 3, 254, 56, 32, 42, 3, 254, 52, + 32, 42, 3, 254, 51, 32, 42, 3, 254, 50, 32, 42, 3, 254, 49, 32, 42, 3, + 254, 48, 32, 42, 3, 254, 47, 32, 42, 3, 254, 46, 32, 42, 3, 254, 45, 32, + 42, 3, 254, 44, 32, 42, 3, 254, 43, 32, 42, 3, 254, 42, 32, 42, 3, 254, + 41, 32, 42, 3, 254, 40, 32, 42, 3, 254, 39, 32, 42, 3, 254, 38, 32, 42, + 3, 254, 37, 32, 42, 3, 254, 36, 32, 42, 3, 254, 35, 32, 42, 3, 254, 34, + 32, 42, 3, 254, 33, 32, 42, 3, 254, 32, 32, 42, 3, 254, 31, 32, 42, 3, + 254, 30, 32, 42, 3, 254, 28, 32, 42, 3, 254, 27, 32, 42, 3, 254, 26, 32, + 42, 3, 254, 25, 32, 42, 3, 254, 24, 32, 42, 3, 254, 22, 32, 42, 3, 254, + 21, 32, 42, 3, 254, 20, 32, 42, 3, 254, 19, 32, 42, 3, 254, 17, 32, 42, + 3, 254, 16, 32, 42, 3, 254, 15, 32, 42, 3, 253, 237, 32, 42, 3, 253, 235, + 32, 42, 3, 253, 233, 32, 42, 3, 253, 231, 32, 42, 3, 253, 229, 32, 42, 3, + 253, 227, 32, 42, 3, 253, 225, 32, 42, 3, 253, 223, 32, 42, 3, 253, 221, + 32, 42, 3, 253, 219, 32, 42, 3, 253, 217, 32, 42, 3, 253, 214, 32, 42, 3, + 253, 212, 32, 42, 3, 253, 210, 32, 42, 3, 253, 208, 32, 42, 3, 253, 206, + 32, 42, 3, 253, 204, 32, 42, 3, 253, 202, 32, 42, 3, 253, 200, 32, 42, 3, + 253, 118, 32, 42, 3, 253, 117, 32, 42, 3, 253, 116, 32, 42, 3, 253, 115, + 32, 42, 3, 253, 114, 32, 42, 3, 253, 113, 32, 42, 3, 253, 111, 32, 42, 3, + 253, 110, 32, 42, 3, 253, 109, 32, 42, 3, 253, 108, 32, 42, 3, 253, 107, + 32, 42, 3, 253, 106, 32, 42, 3, 253, 104, 32, 42, 3, 253, 103, 32, 42, 3, + 253, 99, 32, 42, 3, 253, 98, 32, 42, 3, 253, 96, 32, 42, 3, 253, 95, 32, + 42, 3, 253, 94, 32, 42, 3, 253, 93, 32, 42, 3, 253, 92, 32, 42, 3, 253, + 91, 32, 42, 3, 253, 90, 32, 42, 3, 253, 89, 32, 42, 3, 253, 88, 32, 42, + 3, 253, 87, 32, 42, 3, 253, 86, 32, 42, 3, 253, 85, 32, 42, 3, 253, 84, + 32, 42, 3, 253, 83, 32, 42, 3, 253, 82, 32, 42, 3, 253, 81, 32, 42, 3, + 253, 80, 32, 42, 3, 253, 79, 32, 42, 3, 253, 78, 32, 42, 3, 253, 77, 32, + 42, 3, 253, 76, 32, 42, 3, 253, 75, 32, 42, 3, 253, 74, 32, 42, 3, 253, + 73, 32, 42, 3, 253, 72, 32, 42, 3, 253, 71, 32, 42, 3, 253, 70, 32, 42, + 3, 253, 69, 32, 42, 3, 253, 68, 32, 42, 3, 253, 67, 32, 42, 3, 253, 66, + 32, 42, 3, 253, 65, 32, 42, 3, 253, 64, 32, 42, 3, 253, 63, 32, 42, 3, + 253, 62, 32, 42, 3, 253, 61, 32, 42, 3, 253, 60, 32, 42, 3, 253, 59, 32, + 42, 3, 253, 58, 32, 42, 3, 253, 57, 32, 42, 3, 253, 56, 32, 42, 3, 253, + 55, 32, 42, 3, 253, 54, 32, 42, 3, 253, 53, 32, 42, 3, 253, 52, 32, 42, + 3, 253, 51, 32, 42, 3, 253, 50, 32, 42, 3, 253, 49, 32, 42, 3, 253, 48, + 32, 42, 3, 253, 47, 32, 42, 3, 253, 46, 32, 42, 3, 253, 45, 32, 42, 3, + 253, 44, 32, 42, 3, 253, 43, 32, 42, 3, 253, 42, 32, 42, 3, 253, 41, 32, + 42, 3, 253, 40, 32, 42, 3, 253, 39, 32, 42, 3, 253, 38, 32, 42, 3, 253, + 37, 32, 42, 3, 253, 36, 32, 42, 3, 253, 35, 32, 42, 3, 253, 34, 32, 42, + 3, 253, 33, 32, 42, 3, 253, 32, 32, 42, 3, 253, 31, 32, 42, 3, 253, 30, + 32, 42, 3, 253, 29, 32, 42, 3, 253, 28, 32, 42, 3, 253, 27, 32, 42, 3, + 253, 26, 32, 42, 3, 253, 25, 32, 42, 3, 253, 24, 32, 42, 3, 253, 23, 32, + 42, 3, 253, 22, 32, 42, 3, 253, 21, 32, 42, 3, 253, 20, 32, 42, 3, 253, + 19, 32, 42, 3, 253, 18, 32, 42, 3, 253, 17, 32, 42, 3, 253, 16, 32, 42, + 3, 253, 15, 32, 42, 3, 253, 14, 32, 42, 3, 253, 13, 32, 42, 3, 253, 12, + 32, 42, 3, 253, 11, 32, 42, 3, 253, 10, 32, 42, 3, 253, 9, 32, 42, 3, + 253, 8, 32, 42, 3, 253, 7, 32, 42, 3, 253, 6, 32, 42, 3, 253, 5, 32, 42, + 3, 253, 4, 32, 42, 3, 253, 3, 32, 42, 3, 253, 2, 32, 42, 3, 253, 1, 32, + 42, 3, 253, 0, 32, 42, 3, 252, 255, 32, 42, 3, 252, 254, 32, 42, 3, 252, + 253, 32, 42, 3, 252, 252, 32, 42, 3, 252, 251, 32, 42, 3, 252, 250, 32, + 42, 3, 252, 249, 32, 42, 3, 252, 248, 32, 42, 3, 252, 247, 32, 42, 3, + 252, 246, 32, 42, 3, 252, 245, 32, 42, 3, 252, 244, 32, 42, 3, 252, 243, + 32, 42, 3, 252, 242, 32, 42, 3, 252, 241, 32, 42, 3, 252, 240, 32, 42, 3, + 252, 239, 32, 42, 3, 252, 238, 32, 42, 3, 252, 237, 32, 42, 3, 252, 236, + 65, 32, 42, 3, 252, 235, 250, 120, 32, 42, 3, 252, 234, 238, 127, 32, 42, + 3, 252, 233, 71, 32, 42, 3, 252, 232, 233, 175, 32, 42, 3, 252, 231, 230, + 116, 32, 42, 3, 252, 230, 223, 35, 32, 42, 3, 252, 229, 222, 152, 32, 42, + 3, 252, 228, 172, 32, 42, 3, 252, 227, 220, 130, 32, 42, 3, 252, 226, + 220, 129, 32, 42, 3, 252, 225, 220, 128, 32, 42, 3, 252, 224, 220, 127, + 32, 42, 3, 252, 223, 193, 224, 32, 42, 3, 252, 222, 192, 235, 32, 42, 3, + 252, 221, 192, 159, 32, 42, 3, 252, 220, 211, 110, 32, 42, 3, 252, 219, + 252, 69, 32, 42, 3, 252, 218, 249, 54, 32, 42, 3, 252, 217, 237, 193, 32, + 42, 3, 252, 216, 233, 183, 32, 42, 3, 252, 215, 223, 10, 32, 42, 3, 252, + 214, 32, 42, 3, 252, 213, 32, 42, 3, 252, 212, 32, 42, 3, 252, 211, 32, + 42, 3, 252, 210, 32, 42, 3, 252, 209, 32, 42, 3, 252, 208, 32, 42, 3, + 252, 207, 52, 1, 2, 6, 252, 206, 52, 1, 200, 182, 197, 238, 242, 83, 52, + 1, 200, 182, 132, 197, 238, 242, 83, 52, 1, 2, 252, 25, 52, 1, 2, 6, 250, + 120, 52, 1, 2, 78, 4, 102, 52, 1, 2, 235, 37, 237, 2, 52, 1, 2, 235, 37, + 237, 3, 4, 207, 24, 102, 52, 1, 2, 235, 37, 237, 3, 4, 238, 175, 52, 1, + 2, 237, 70, 237, 2, 52, 1, 2, 238, 128, 4, 199, 215, 52, 1, 2, 238, 128, + 4, 102, 52, 1, 2, 238, 128, 4, 228, 251, 23, 199, 215, 52, 1, 2, 207, 18, + 71, 52, 1, 2, 242, 219, 207, 18, 211, 77, 71, 52, 1, 2, 233, 37, 237, 2, + 52, 1, 2, 207, 140, 228, 187, 52, 1, 2, 6, 232, 51, 52, 1, 2, 232, 52, 4, + 102, 52, 1, 2, 6, 232, 52, 4, 102, 52, 1, 2, 230, 117, 4, 106, 52, 1, 2, + 6, 230, 116, 52, 1, 2, 229, 197, 4, 102, 52, 1, 2, 236, 139, 223, 36, 4, + 201, 28, 23, 102, 52, 1, 2, 218, 227, 237, 2, 52, 1, 2, 218, 170, 237, 2, + 52, 1, 2, 220, 143, 4, 248, 231, 52, 1, 2, 6, 220, 143, 4, 248, 231, 52, + 1, 2, 220, 143, 4, 207, 24, 228, 251, 23, 248, 231, 52, 1, 2, 219, 162, + 52, 1, 2, 219, 163, 4, 207, 24, 102, 52, 1, 2, 153, 192, 159, 52, 1, 2, + 153, 192, 160, 4, 248, 231, 52, 1, 2, 187, 4, 106, 52, 1, 2, 6, 211, 151, + 52, 1, 2, 242, 219, 211, 110, 52, 1, 2, 208, 104, 52, 1, 2, 153, 207, + 222, 4, 179, 219, 212, 52, 1, 2, 153, 207, 222, 4, 179, 219, 213, 23, + 207, 24, 102, 52, 1, 2, 207, 222, 4, 199, 215, 52, 1, 2, 207, 222, 4, + 232, 233, 52, 1, 2, 6, 146, 52, 1, 2, 199, 152, 237, 3, 4, 238, 175, 52, + 1, 2, 197, 170, 237, 2, 52, 1, 2, 197, 170, 237, 3, 4, 207, 24, 102, 52, + 1, 2, 199, 79, 237, 2, 52, 1, 2, 200, 44, 4, 207, 24, 102, 52, 1, 2, 196, + 13, 4, 50, 102, 52, 1, 2, 6, 192, 159, 52, 1, 231, 11, 201, 64, 4, 106, + 52, 1, 207, 18, 231, 11, 201, 64, 4, 106, 52, 1, 248, 172, 242, 231, 52, + 1, 237, 98, 242, 231, 52, 1, 220, 3, 242, 231, 52, 1, 251, 150, 242, 231, + 52, 1, 207, 24, 242, 232, 4, 207, 24, 102, 52, 1, 2, 206, 9, 4, 238, 175, + 238, 135, 5, 65, 238, 135, 5, 71, 238, 135, 5, 68, 238, 135, 5, 74, 238, + 135, 5, 66, 238, 135, 5, 223, 32, 238, 135, 5, 222, 201, 238, 135, 5, + 155, 238, 135, 5, 222, 22, 238, 135, 5, 221, 166, 238, 135, 5, 221, 67, + 238, 135, 5, 220, 232, 238, 135, 5, 173, 238, 135, 5, 219, 238, 238, 135, + 5, 219, 146, 238, 135, 5, 219, 43, 238, 135, 5, 218, 225, 238, 135, 5, + 174, 238, 135, 5, 216, 232, 238, 135, 5, 216, 100, 238, 135, 5, 216, 12, + 238, 135, 5, 215, 155, 238, 135, 5, 180, 238, 135, 5, 214, 121, 238, 135, + 5, 213, 219, 238, 135, 5, 213, 43, 238, 135, 5, 212, 178, 238, 135, 5, + 168, 238, 135, 5, 210, 63, 238, 135, 5, 209, 185, 238, 135, 5, 209, 73, + 238, 135, 5, 208, 165, 238, 135, 5, 165, 238, 135, 5, 207, 113, 238, 135, + 5, 207, 1, 238, 135, 5, 206, 162, 238, 135, 5, 206, 68, 238, 135, 5, 188, + 238, 135, 5, 205, 68, 238, 135, 5, 202, 222, 238, 135, 5, 202, 46, 238, + 135, 5, 201, 4, 238, 135, 5, 190, 190, 238, 135, 5, 199, 145, 238, 135, + 5, 198, 193, 238, 135, 5, 159, 238, 135, 5, 197, 94, 238, 135, 5, 193, + 190, 238, 135, 5, 193, 125, 238, 135, 5, 193, 86, 238, 135, 5, 193, 48, + 238, 135, 5, 192, 220, 238, 135, 5, 192, 214, 238, 135, 5, 191, 123, 238, + 135, 5, 191, 7, 223, 164, 251, 18, 1, 251, 190, 223, 164, 251, 18, 1, + 248, 211, 223, 164, 251, 18, 1, 231, 38, 223, 164, 251, 18, 1, 237, 252, + 223, 164, 251, 18, 1, 229, 245, 223, 164, 251, 18, 1, 193, 133, 223, 164, + 251, 18, 1, 191, 91, 223, 164, 251, 18, 1, 229, 184, 223, 164, 251, 18, + 1, 199, 69, 223, 164, 251, 18, 1, 191, 249, 223, 164, 251, 18, 1, 222, + 75, 223, 164, 251, 18, 1, 220, 26, 223, 164, 251, 18, 1, 216, 193, 223, + 164, 251, 18, 1, 212, 130, 223, 164, 251, 18, 1, 205, 148, 223, 164, 251, + 18, 1, 250, 126, 223, 164, 251, 18, 1, 210, 63, 223, 164, 251, 18, 1, + 205, 189, 223, 164, 251, 18, 1, 208, 37, 223, 164, 251, 18, 1, 207, 38, + 223, 164, 251, 18, 1, 203, 69, 223, 164, 251, 18, 1, 199, 159, 223, 164, + 251, 18, 205, 54, 56, 223, 164, 251, 18, 31, 107, 223, 164, 251, 18, 31, + 109, 223, 164, 251, 18, 31, 138, 223, 164, 251, 18, 31, 199, 95, 223, + 164, 251, 18, 31, 197, 32, 223, 164, 251, 18, 31, 91, 228, 140, 223, 164, + 251, 18, 31, 91, 189, 223, 164, 251, 18, 31, 199, 96, 189, 210, 180, 1, + 251, 190, 210, 180, 1, 248, 211, 210, 180, 1, 231, 38, 210, 180, 1, 237, + 252, 210, 180, 1, 229, 245, 210, 180, 1, 193, 133, 210, 180, 1, 191, 91, + 210, 180, 1, 229, 184, 210, 180, 1, 199, 69, 210, 180, 1, 191, 249, 210, + 180, 1, 222, 75, 210, 180, 1, 220, 26, 210, 180, 1, 216, 193, 210, 180, + 1, 53, 212, 130, 210, 180, 1, 212, 130, 210, 180, 1, 205, 148, 210, 180, + 1, 250, 126, 210, 180, 1, 210, 63, 210, 180, 1, 205, 189, 210, 180, 1, + 208, 37, 210, 180, 1, 207, 38, 210, 180, 1, 203, 69, 210, 180, 1, 199, + 159, 210, 180, 219, 219, 232, 201, 210, 180, 206, 203, 232, 201, 210, + 180, 31, 107, 210, 180, 31, 109, 210, 180, 31, 138, 210, 180, 31, 134, + 210, 180, 31, 149, 210, 180, 31, 199, 95, 210, 180, 31, 197, 32, 214, + 246, 1, 53, 251, 190, 214, 246, 1, 251, 190, 214, 246, 1, 53, 248, 211, + 214, 246, 1, 248, 211, 214, 246, 1, 231, 38, 214, 246, 1, 237, 252, 214, + 246, 1, 53, 229, 245, 214, 246, 1, 229, 245, 214, 246, 1, 193, 133, 214, + 246, 1, 191, 91, 214, 246, 1, 229, 184, 214, 246, 1, 199, 69, 214, 246, + 1, 53, 191, 249, 214, 246, 1, 191, 249, 214, 246, 1, 53, 222, 75, 214, + 246, 1, 222, 75, 214, 246, 1, 53, 220, 26, 214, 246, 1, 220, 26, 214, + 246, 1, 53, 216, 193, 214, 246, 1, 216, 193, 214, 246, 1, 53, 212, 130, + 214, 246, 1, 212, 130, 214, 246, 1, 205, 148, 214, 246, 1, 250, 126, 214, + 246, 1, 210, 63, 214, 246, 1, 205, 189, 214, 246, 1, 208, 37, 214, 246, + 1, 207, 38, 214, 246, 1, 53, 203, 69, 214, 246, 1, 203, 69, 214, 246, 1, + 199, 159, 214, 246, 31, 107, 214, 246, 31, 109, 214, 246, 31, 138, 214, + 246, 31, 134, 214, 246, 238, 202, 31, 134, 214, 246, 31, 149, 214, 246, + 31, 199, 95, 214, 246, 31, 197, 32, 214, 246, 31, 91, 228, 140, 230, 4, + 1, 251, 190, 230, 4, 1, 248, 211, 230, 4, 1, 231, 38, 230, 4, 1, 237, + 251, 230, 4, 1, 229, 245, 230, 4, 1, 193, 133, 230, 4, 1, 191, 89, 230, + 4, 1, 229, 184, 230, 4, 1, 199, 69, 230, 4, 1, 191, 249, 230, 4, 1, 222, + 75, 230, 4, 1, 220, 26, 230, 4, 1, 216, 193, 230, 4, 1, 212, 130, 230, 4, + 1, 205, 148, 230, 4, 1, 250, 124, 230, 4, 1, 210, 63, 230, 4, 1, 205, + 189, 230, 4, 1, 208, 37, 230, 4, 1, 203, 69, 230, 4, 1, 199, 159, 230, 4, + 31, 107, 230, 4, 31, 149, 230, 4, 31, 199, 95, 230, 4, 31, 197, 32, 230, + 4, 31, 91, 228, 140, 209, 197, 1, 251, 187, 209, 197, 1, 248, 214, 209, + 197, 1, 231, 213, 209, 197, 1, 237, 108, 209, 197, 1, 229, 245, 209, 197, + 1, 193, 140, 209, 197, 1, 191, 115, 209, 197, 1, 229, 186, 209, 197, 1, + 199, 73, 209, 197, 1, 191, 250, 209, 197, 1, 222, 106, 209, 197, 1, 220, + 32, 209, 197, 1, 216, 193, 209, 197, 1, 212, 130, 209, 197, 1, 204, 19, + 209, 197, 1, 251, 230, 209, 197, 1, 210, 63, 209, 197, 1, 205, 191, 209, + 197, 1, 208, 42, 209, 197, 1, 206, 124, 209, 197, 1, 203, 69, 209, 197, + 1, 199, 166, 209, 197, 31, 107, 209, 197, 31, 199, 95, 209, 197, 31, 197, + 32, 209, 197, 31, 91, 228, 140, 209, 197, 31, 109, 209, 197, 31, 138, + 209, 197, 193, 23, 204, 10, 218, 180, 1, 65, 218, 180, 1, 250, 120, 218, + 180, 1, 232, 51, 218, 180, 1, 238, 127, 218, 180, 1, 71, 218, 180, 1, + 196, 12, 218, 180, 1, 68, 218, 180, 1, 192, 159, 218, 180, 1, 222, 152, + 218, 180, 1, 172, 218, 180, 1, 218, 168, 218, 180, 1, 215, 61, 218, 180, + 1, 74, 218, 180, 1, 146, 218, 180, 1, 201, 178, 218, 180, 1, 200, 43, + 218, 180, 1, 66, 218, 180, 1, 233, 175, 218, 180, 1, 208, 104, 218, 180, + 1, 206, 8, 218, 180, 1, 197, 135, 218, 180, 1, 251, 132, 218, 180, 1, + 234, 103, 218, 180, 1, 218, 183, 218, 180, 1, 213, 80, 218, 180, 1, 247, + 193, 218, 180, 197, 238, 77, 152, 229, 144, 1, 65, 152, 229, 144, 1, 71, + 152, 229, 144, 1, 68, 152, 229, 144, 1, 74, 152, 229, 144, 1, 170, 152, + 229, 144, 1, 193, 190, 152, 229, 144, 1, 249, 153, 152, 229, 144, 1, 249, + 152, 152, 229, 144, 1, 168, 152, 229, 144, 1, 174, 152, 229, 144, 1, 180, + 152, 229, 144, 1, 215, 5, 152, 229, 144, 1, 214, 121, 152, 229, 144, 1, + 214, 119, 152, 229, 144, 1, 165, 152, 229, 144, 1, 207, 184, 152, 229, + 144, 1, 173, 152, 229, 144, 1, 221, 215, 152, 229, 144, 1, 229, 177, 152, + 229, 144, 1, 188, 152, 229, 144, 1, 205, 205, 152, 229, 144, 1, 205, 68, + 152, 229, 144, 1, 155, 152, 229, 144, 1, 208, 96, 152, 229, 144, 1, 190, + 190, 152, 229, 144, 1, 199, 250, 152, 229, 144, 1, 199, 145, 152, 229, + 144, 1, 199, 143, 152, 229, 144, 1, 159, 152, 229, 144, 1, 238, 32, 152, + 229, 144, 16, 195, 63, 152, 229, 144, 16, 195, 62, 152, 238, 166, 1, 65, + 152, 238, 166, 1, 71, 152, 238, 166, 1, 68, 152, 238, 166, 1, 74, 152, + 238, 166, 1, 170, 152, 238, 166, 1, 193, 190, 152, 238, 166, 1, 249, 153, + 152, 238, 166, 1, 168, 152, 238, 166, 1, 174, 152, 238, 166, 1, 180, 152, + 238, 166, 1, 214, 121, 152, 238, 166, 1, 165, 152, 238, 166, 1, 173, 152, + 238, 166, 1, 221, 215, 152, 238, 166, 1, 229, 177, 152, 238, 166, 1, 188, + 152, 238, 166, 1, 251, 14, 188, 152, 238, 166, 1, 205, 68, 152, 238, 166, + 1, 155, 152, 238, 166, 1, 208, 96, 152, 238, 166, 1, 190, 190, 152, 238, + 166, 1, 199, 145, 152, 238, 166, 1, 159, 152, 238, 166, 1, 238, 32, 152, + 238, 166, 232, 118, 234, 128, 197, 39, 152, 238, 166, 232, 118, 91, 230, + 70, 152, 238, 166, 219, 28, 206, 168, 152, 238, 166, 219, 28, 223, 169, + 152, 238, 166, 31, 107, 152, 238, 166, 31, 109, 152, 238, 166, 31, 138, + 152, 238, 166, 31, 134, 152, 238, 166, 31, 149, 152, 238, 166, 31, 169, + 152, 238, 166, 31, 175, 152, 238, 166, 31, 171, 152, 238, 166, 31, 178, + 152, 238, 166, 31, 199, 95, 152, 238, 166, 31, 197, 32, 152, 238, 166, + 31, 198, 249, 152, 238, 166, 31, 232, 135, 152, 238, 166, 31, 233, 15, + 152, 238, 166, 31, 202, 120, 152, 238, 166, 31, 203, 241, 152, 238, 166, + 31, 91, 228, 140, 152, 238, 166, 31, 105, 228, 140, 152, 238, 166, 31, + 115, 228, 140, 152, 238, 166, 31, 232, 128, 228, 140, 152, 238, 166, 31, + 232, 226, 228, 140, 152, 238, 166, 31, 202, 136, 228, 140, 152, 238, 166, + 31, 203, 247, 228, 140, 152, 238, 166, 31, 234, 164, 228, 140, 152, 238, + 166, 31, 213, 175, 228, 140, 152, 238, 166, 31, 91, 189, 152, 238, 166, + 31, 105, 189, 152, 238, 166, 31, 115, 189, 152, 238, 166, 31, 232, 128, + 189, 152, 238, 166, 31, 232, 226, 189, 152, 238, 166, 31, 202, 136, 189, + 152, 238, 166, 31, 203, 247, 189, 152, 238, 166, 31, 234, 164, 189, 152, + 238, 166, 31, 213, 175, 189, 152, 238, 166, 31, 199, 96, 189, 152, 238, + 166, 31, 197, 33, 189, 152, 238, 166, 31, 198, 250, 189, 152, 238, 166, + 31, 232, 136, 189, 152, 238, 166, 31, 233, 16, 189, 152, 238, 166, 31, + 202, 121, 189, 152, 238, 166, 31, 203, 242, 189, 152, 238, 166, 31, 234, + 154, 189, 152, 238, 166, 31, 213, 170, 189, 152, 238, 166, 31, 91, 228, + 141, 189, 152, 238, 166, 31, 105, 228, 141, 189, 152, 238, 166, 31, 115, + 228, 141, 189, 152, 238, 166, 31, 232, 128, 228, 141, 189, 152, 238, 166, + 31, 232, 226, 228, 141, 189, 152, 238, 166, 31, 202, 136, 228, 141, 189, + 152, 238, 166, 31, 203, 247, 228, 141, 189, 152, 238, 166, 31, 234, 164, + 228, 141, 189, 152, 238, 166, 31, 213, 175, 228, 141, 189, 152, 238, 166, + 232, 118, 91, 197, 40, 152, 238, 166, 232, 118, 105, 197, 39, 152, 238, + 166, 232, 118, 115, 197, 39, 152, 238, 166, 232, 118, 232, 128, 197, 39, + 152, 238, 166, 232, 118, 232, 226, 197, 39, 152, 238, 166, 232, 118, 202, + 136, 197, 39, 152, 238, 166, 232, 118, 203, 247, 197, 39, 152, 238, 166, + 232, 118, 234, 164, 197, 39, 152, 238, 166, 232, 118, 213, 175, 197, 39, + 152, 238, 166, 232, 118, 199, 96, 197, 39, 221, 199, 1, 65, 221, 199, 18, + 3, 68, 221, 199, 18, 3, 66, 221, 199, 18, 3, 117, 146, 221, 199, 18, 3, + 71, 221, 199, 18, 3, 74, 221, 199, 18, 219, 198, 77, 221, 199, 3, 55, + 206, 189, 60, 221, 199, 3, 251, 71, 221, 199, 3, 195, 35, 221, 199, 1, + 155, 221, 199, 1, 221, 215, 221, 199, 1, 231, 240, 221, 199, 1, 231, 91, + 221, 199, 1, 247, 160, 221, 199, 1, 247, 1, 221, 199, 1, 223, 32, 221, + 199, 1, 212, 101, 221, 199, 1, 197, 132, 221, 199, 1, 197, 120, 221, 199, + 1, 237, 191, 221, 199, 1, 237, 175, 221, 199, 1, 213, 79, 221, 199, 1, + 190, 190, 221, 199, 1, 199, 49, 221, 199, 1, 238, 32, 221, 199, 1, 237, + 68, 221, 199, 1, 180, 221, 199, 1, 168, 221, 199, 1, 209, 228, 221, 199, + 1, 249, 153, 221, 199, 1, 248, 203, 221, 199, 1, 174, 221, 199, 1, 170, + 221, 199, 1, 165, 221, 199, 1, 173, 221, 199, 1, 195, 188, 221, 199, 1, + 203, 165, 221, 199, 1, 201, 175, 221, 199, 1, 188, 221, 199, 1, 191, 123, + 221, 199, 1, 140, 221, 199, 1, 221, 101, 221, 199, 1, 197, 100, 221, 199, + 1, 197, 101, 221, 199, 1, 195, 70, 221, 199, 3, 249, 88, 58, 221, 199, 3, + 247, 74, 221, 199, 3, 75, 60, 221, 199, 195, 40, 221, 199, 17, 107, 221, + 199, 17, 109, 221, 199, 17, 138, 221, 199, 17, 134, 221, 199, 31, 199, + 95, 221, 199, 31, 197, 32, 221, 199, 31, 91, 228, 140, 221, 199, 31, 91, + 189, 221, 199, 232, 118, 91, 230, 70, 221, 199, 208, 152, 236, 140, 221, + 199, 208, 152, 2, 243, 10, 221, 199, 208, 152, 243, 10, 221, 199, 208, + 152, 238, 228, 164, 221, 199, 208, 152, 217, 83, 221, 199, 208, 152, 218, + 246, 221, 199, 208, 152, 237, 238, 221, 199, 208, 152, 55, 237, 238, 221, + 199, 208, 152, 219, 106, 39, 202, 2, 251, 29, 1, 229, 245, 39, 202, 2, + 251, 29, 1, 220, 26, 39, 202, 2, 251, 29, 1, 229, 184, 39, 202, 2, 251, + 29, 1, 216, 193, 39, 202, 2, 251, 29, 1, 208, 37, 39, 202, 2, 251, 29, 1, + 193, 133, 39, 202, 2, 251, 29, 1, 203, 69, 39, 202, 2, 251, 29, 1, 207, + 38, 39, 202, 2, 251, 29, 1, 248, 211, 39, 202, 2, 251, 29, 1, 199, 159, + 39, 202, 2, 251, 29, 1, 205, 122, 39, 202, 2, 251, 29, 1, 222, 75, 39, + 202, 2, 251, 29, 1, 212, 130, 39, 202, 2, 251, 29, 1, 221, 194, 39, 202, + 2, 251, 29, 1, 205, 189, 39, 202, 2, 251, 29, 1, 205, 148, 39, 202, 2, + 251, 29, 1, 233, 59, 39, 202, 2, 251, 29, 1, 251, 192, 39, 202, 2, 251, + 29, 1, 250, 124, 39, 202, 2, 251, 29, 1, 237, 65, 39, 202, 2, 251, 29, 1, + 231, 38, 39, 202, 2, 251, 29, 1, 237, 252, 39, 202, 2, 251, 29, 1, 231, + 79, 39, 202, 2, 251, 29, 1, 199, 69, 39, 202, 2, 251, 29, 1, 191, 89, 39, + 202, 2, 251, 29, 1, 237, 62, 39, 202, 2, 251, 29, 1, 191, 249, 39, 202, + 2, 251, 29, 1, 199, 35, 39, 202, 2, 251, 29, 1, 199, 14, 39, 202, 2, 251, + 29, 31, 107, 39, 202, 2, 251, 29, 31, 233, 15, 39, 202, 2, 251, 29, 167, + 223, 144, 39, 186, 251, 29, 1, 229, 210, 39, 186, 251, 29, 1, 220, 35, + 39, 186, 251, 29, 1, 230, 81, 39, 186, 251, 29, 1, 216, 208, 39, 186, + 251, 29, 1, 208, 89, 39, 186, 251, 29, 1, 193, 133, 39, 186, 251, 29, 1, + 234, 20, 39, 186, 251, 29, 1, 207, 71, 39, 186, 251, 29, 1, 248, 245, 39, + 186, 251, 29, 1, 199, 114, 39, 186, 251, 29, 1, 234, 21, 39, 186, 251, + 29, 1, 222, 106, 39, 186, 251, 29, 1, 213, 24, 39, 186, 251, 29, 1, 221, + 210, 39, 186, 251, 29, 1, 205, 192, 39, 186, 251, 29, 1, 234, 19, 39, + 186, 251, 29, 1, 233, 46, 39, 186, 251, 29, 1, 251, 192, 39, 186, 251, + 29, 1, 251, 230, 39, 186, 251, 29, 1, 238, 26, 39, 186, 251, 29, 1, 231, + 156, 39, 186, 251, 29, 1, 238, 3, 39, 186, 251, 29, 1, 231, 86, 39, 186, + 251, 29, 1, 199, 219, 39, 186, 251, 29, 1, 191, 113, 39, 186, 251, 29, 1, + 199, 41, 39, 186, 251, 29, 1, 192, 75, 39, 186, 251, 29, 1, 199, 29, 39, + 186, 251, 29, 1, 191, 116, 39, 186, 251, 29, 31, 107, 39, 186, 251, 29, + 31, 199, 95, 39, 186, 251, 29, 31, 197, 32, 217, 81, 1, 251, 190, 217, + 81, 1, 248, 211, 217, 81, 1, 248, 194, 217, 81, 1, 231, 38, 217, 81, 1, + 231, 64, 217, 81, 1, 237, 252, 217, 81, 1, 229, 245, 217, 81, 1, 193, + 133, 217, 81, 3, 196, 158, 217, 81, 1, 191, 91, 217, 81, 1, 191, 64, 217, + 81, 1, 223, 12, 217, 81, 1, 222, 248, 217, 81, 1, 229, 184, 217, 81, 1, + 199, 69, 217, 81, 1, 191, 249, 217, 81, 1, 222, 75, 217, 81, 1, 192, 217, + 217, 81, 1, 221, 201, 217, 81, 1, 220, 26, 217, 81, 1, 237, 61, 217, 81, + 1, 199, 40, 217, 81, 1, 216, 193, 217, 81, 1, 212, 130, 217, 81, 1, 205, + 148, 217, 81, 1, 250, 126, 217, 81, 1, 252, 158, 217, 81, 1, 210, 63, + 217, 81, 1, 233, 59, 217, 81, 1, 205, 189, 217, 81, 1, 208, 37, 217, 81, + 1, 192, 193, 217, 81, 1, 208, 64, 217, 81, 1, 207, 38, 217, 81, 1, 203, + 69, 217, 81, 1, 201, 143, 217, 81, 1, 199, 159, 217, 81, 252, 68, 87, 58, + 217, 81, 252, 68, 87, 60, 217, 81, 31, 107, 217, 81, 31, 149, 217, 81, + 31, 199, 95, 217, 81, 31, 197, 32, 217, 81, 31, 91, 228, 140, 217, 81, + 208, 152, 201, 102, 217, 81, 208, 152, 232, 201, 217, 81, 208, 152, 55, + 75, 193, 53, 236, 140, 217, 81, 208, 152, 75, 193, 53, 236, 140, 217, 81, + 208, 152, 236, 140, 217, 81, 208, 152, 105, 236, 138, 217, 81, 208, 152, + 219, 113, 233, 3, 250, 142, 1, 65, 250, 142, 1, 252, 206, 250, 142, 1, + 251, 68, 250, 142, 1, 252, 164, 250, 142, 1, 251, 132, 250, 142, 1, 252, + 166, 250, 142, 1, 252, 25, 250, 142, 1, 252, 21, 250, 142, 1, 71, 250, + 142, 1, 234, 188, 250, 142, 1, 74, 250, 142, 1, 211, 87, 250, 142, 1, 68, + 250, 142, 1, 223, 199, 250, 142, 1, 66, 250, 142, 1, 196, 30, 250, 142, + 1, 222, 22, 250, 142, 1, 192, 214, 250, 142, 1, 192, 173, 250, 142, 1, + 192, 184, 250, 142, 1, 231, 165, 250, 142, 1, 231, 122, 250, 142, 1, 231, + 77, 250, 142, 1, 247, 42, 250, 142, 1, 223, 10, 250, 142, 1, 199, 145, + 250, 142, 1, 199, 33, 250, 142, 1, 237, 146, 250, 142, 1, 237, 59, 250, + 142, 1, 197, 127, 250, 142, 1, 210, 63, 250, 142, 1, 233, 59, 250, 142, + 1, 249, 17, 250, 142, 1, 248, 196, 250, 142, 1, 214, 55, 250, 142, 1, + 213, 226, 250, 142, 1, 213, 227, 250, 142, 1, 214, 121, 250, 142, 1, 212, + 90, 250, 142, 1, 213, 74, 250, 142, 1, 216, 232, 250, 142, 1, 229, 73, + 250, 142, 1, 191, 173, 250, 142, 1, 192, 80, 250, 142, 1, 195, 153, 250, + 142, 1, 207, 113, 250, 142, 1, 219, 238, 250, 142, 1, 205, 68, 250, 142, + 1, 191, 87, 250, 142, 1, 203, 113, 250, 142, 1, 191, 62, 250, 142, 1, + 202, 229, 250, 142, 1, 201, 144, 250, 142, 1, 229, 245, 250, 142, 252, + 68, 77, 198, 138, 105, 185, 139, 91, 75, 208, 151, 2, 105, 185, 139, 91, + 75, 208, 151, 220, 13, 105, 185, 139, 91, 75, 208, 151, 220, 13, 91, 75, + 139, 105, 185, 208, 151, 220, 13, 105, 206, 185, 139, 91, 206, 189, 208, + 151, 220, 13, 91, 206, 189, 139, 105, 206, 185, 208, 151, 223, 122, 210, + 106, 1, 251, 190, 223, 122, 210, 106, 1, 248, 211, 223, 122, 210, 106, 1, + 231, 38, 223, 122, 210, 106, 1, 237, 252, 223, 122, 210, 106, 1, 229, + 245, 223, 122, 210, 106, 1, 193, 133, 223, 122, 210, 106, 1, 191, 91, + 223, 122, 210, 106, 1, 229, 184, 223, 122, 210, 106, 1, 199, 69, 223, + 122, 210, 106, 1, 191, 249, 223, 122, 210, 106, 1, 222, 75, 223, 122, + 210, 106, 1, 220, 26, 223, 122, 210, 106, 1, 216, 193, 223, 122, 210, + 106, 1, 212, 130, 223, 122, 210, 106, 1, 205, 148, 223, 122, 210, 106, 1, + 250, 126, 223, 122, 210, 106, 1, 210, 63, 223, 122, 210, 106, 1, 205, + 189, 223, 122, 210, 106, 1, 208, 37, 223, 122, 210, 106, 1, 207, 38, 223, + 122, 210, 106, 1, 203, 69, 223, 122, 210, 106, 1, 199, 159, 223, 122, + 210, 106, 31, 107, 223, 122, 210, 106, 31, 109, 223, 122, 210, 106, 31, + 138, 223, 122, 210, 106, 31, 134, 223, 122, 210, 106, 31, 199, 95, 223, + 122, 210, 106, 31, 197, 32, 223, 122, 210, 106, 31, 91, 228, 140, 223, + 122, 210, 106, 31, 91, 189, 223, 122, 210, 199, 1, 251, 190, 223, 122, + 210, 199, 1, 248, 211, 223, 122, 210, 199, 1, 231, 38, 223, 122, 210, + 199, 1, 237, 252, 223, 122, 210, 199, 1, 229, 245, 223, 122, 210, 199, 1, + 193, 132, 223, 122, 210, 199, 1, 191, 91, 223, 122, 210, 199, 1, 229, + 184, 223, 122, 210, 199, 1, 199, 69, 223, 122, 210, 199, 1, 191, 249, + 223, 122, 210, 199, 1, 222, 75, 223, 122, 210, 199, 1, 220, 26, 223, 122, + 210, 199, 1, 216, 192, 223, 122, 210, 199, 1, 212, 130, 223, 122, 210, + 199, 1, 205, 148, 223, 122, 210, 199, 1, 210, 63, 223, 122, 210, 199, 1, + 205, 189, 223, 122, 210, 199, 1, 203, 69, 223, 122, 210, 199, 1, 199, + 159, 223, 122, 210, 199, 31, 107, 223, 122, 210, 199, 31, 109, 223, 122, + 210, 199, 31, 138, 223, 122, 210, 199, 31, 134, 223, 122, 210, 199, 31, + 199, 95, 223, 122, 210, 199, 31, 197, 32, 223, 122, 210, 199, 31, 91, + 228, 140, 223, 122, 210, 199, 31, 91, 189, 208, 177, 210, 199, 1, 251, + 190, 208, 177, 210, 199, 1, 248, 211, 208, 177, 210, 199, 1, 231, 38, + 208, 177, 210, 199, 1, 237, 252, 208, 177, 210, 199, 1, 229, 245, 208, + 177, 210, 199, 1, 193, 132, 208, 177, 210, 199, 1, 191, 91, 208, 177, + 210, 199, 1, 229, 184, 208, 177, 210, 199, 1, 191, 249, 208, 177, 210, + 199, 1, 222, 75, 208, 177, 210, 199, 1, 220, 26, 208, 177, 210, 199, 1, + 216, 192, 208, 177, 210, 199, 1, 212, 130, 208, 177, 210, 199, 1, 205, + 148, 208, 177, 210, 199, 1, 210, 63, 208, 177, 210, 199, 1, 205, 189, + 208, 177, 210, 199, 1, 203, 69, 208, 177, 210, 199, 1, 199, 159, 208, + 177, 210, 199, 205, 54, 77, 208, 177, 210, 199, 153, 205, 54, 77, 208, + 177, 210, 199, 232, 128, 185, 4, 238, 217, 208, 177, 210, 199, 232, 128, + 185, 4, 236, 140, 208, 177, 210, 199, 31, 107, 208, 177, 210, 199, 31, + 109, 208, 177, 210, 199, 31, 138, 208, 177, 210, 199, 31, 134, 208, 177, + 210, 199, 31, 199, 95, 208, 177, 210, 199, 31, 197, 32, 208, 177, 210, + 199, 31, 91, 228, 140, 39, 197, 61, 1, 211, 44, 65, 39, 197, 61, 1, 192, + 68, 65, 39, 197, 61, 1, 192, 68, 252, 25, 39, 197, 61, 1, 211, 44, 68, + 39, 197, 61, 1, 192, 68, 68, 39, 197, 61, 1, 192, 68, 71, 39, 197, 61, 1, + 211, 44, 74, 39, 197, 61, 1, 211, 44, 211, 151, 39, 197, 61, 1, 192, 68, + 211, 151, 39, 197, 61, 1, 211, 44, 252, 155, 39, 197, 61, 1, 192, 68, + 252, 155, 39, 197, 61, 1, 211, 44, 252, 24, 39, 197, 61, 1, 192, 68, 252, + 24, 39, 197, 61, 1, 211, 44, 251, 253, 39, 197, 61, 1, 192, 68, 251, 253, + 39, 197, 61, 1, 211, 44, 252, 19, 39, 197, 61, 1, 192, 68, 252, 19, 39, + 197, 61, 1, 211, 44, 252, 42, 39, 197, 61, 1, 192, 68, 252, 42, 39, 197, + 61, 1, 211, 44, 252, 23, 39, 197, 61, 1, 211, 44, 233, 182, 39, 197, 61, + 1, 192, 68, 233, 182, 39, 197, 61, 1, 211, 44, 250, 131, 39, 197, 61, 1, + 192, 68, 250, 131, 39, 197, 61, 1, 211, 44, 252, 6, 39, 197, 61, 1, 192, + 68, 252, 6, 39, 197, 61, 1, 211, 44, 252, 17, 39, 197, 61, 1, 192, 68, + 252, 17, 39, 197, 61, 1, 211, 44, 211, 149, 39, 197, 61, 1, 192, 68, 211, + 149, 39, 197, 61, 1, 211, 44, 251, 207, 39, 197, 61, 1, 192, 68, 251, + 207, 39, 197, 61, 1, 211, 44, 252, 16, 39, 197, 61, 1, 211, 44, 234, 118, + 39, 197, 61, 1, 211, 44, 234, 114, 39, 197, 61, 1, 211, 44, 251, 132, 39, + 197, 61, 1, 211, 44, 252, 14, 39, 197, 61, 1, 192, 68, 252, 14, 39, 197, + 61, 1, 211, 44, 234, 80, 39, 197, 61, 1, 192, 68, 234, 80, 39, 197, 61, + 1, 211, 44, 234, 100, 39, 197, 61, 1, 192, 68, 234, 100, 39, 197, 61, 1, + 211, 44, 234, 66, 39, 197, 61, 1, 192, 68, 234, 66, 39, 197, 61, 1, 192, + 68, 251, 122, 39, 197, 61, 1, 211, 44, 234, 88, 39, 197, 61, 1, 192, 68, + 252, 13, 39, 197, 61, 1, 211, 44, 234, 56, 39, 197, 61, 1, 211, 44, 211, + 78, 39, 197, 61, 1, 211, 44, 228, 28, 39, 197, 61, 1, 211, 44, 234, 197, + 39, 197, 61, 1, 192, 68, 234, 197, 39, 197, 61, 1, 211, 44, 251, 37, 39, + 197, 61, 1, 192, 68, 251, 37, 39, 197, 61, 1, 211, 44, 223, 79, 39, 197, + 61, 1, 192, 68, 223, 79, 39, 197, 61, 1, 211, 44, 211, 58, 39, 197, 61, + 1, 192, 68, 211, 58, 39, 197, 61, 1, 211, 44, 251, 33, 39, 197, 61, 1, + 192, 68, 251, 33, 39, 197, 61, 1, 211, 44, 252, 12, 39, 197, 61, 1, 211, + 44, 250, 219, 39, 197, 61, 1, 211, 44, 252, 10, 39, 197, 61, 1, 211, 44, + 250, 209, 39, 197, 61, 1, 192, 68, 250, 209, 39, 197, 61, 1, 211, 44, + 234, 12, 39, 197, 61, 1, 192, 68, 234, 12, 39, 197, 61, 1, 211, 44, 250, + 182, 39, 197, 61, 1, 192, 68, 250, 182, 39, 197, 61, 1, 211, 44, 252, 7, + 39, 197, 61, 1, 192, 68, 252, 7, 39, 197, 61, 1, 211, 44, 211, 30, 39, + 197, 61, 1, 211, 44, 249, 71, 39, 177, 6, 1, 65, 39, 177, 6, 1, 252, 206, + 39, 177, 6, 1, 234, 199, 39, 177, 6, 1, 251, 144, 39, 177, 6, 1, 234, + 197, 39, 177, 6, 1, 234, 100, 39, 177, 6, 1, 234, 193, 39, 177, 6, 1, + 234, 192, 39, 177, 6, 1, 251, 125, 39, 177, 6, 1, 71, 39, 177, 6, 1, 242, + 220, 71, 39, 177, 6, 1, 234, 188, 39, 177, 6, 1, 234, 181, 39, 177, 6, 1, + 234, 180, 39, 177, 6, 1, 234, 176, 39, 177, 6, 1, 234, 173, 39, 177, 6, + 1, 68, 39, 177, 6, 1, 223, 199, 39, 177, 6, 1, 234, 150, 39, 177, 6, 1, + 234, 147, 39, 177, 6, 1, 251, 216, 39, 177, 6, 1, 196, 86, 39, 177, 6, 1, + 234, 140, 39, 177, 6, 1, 234, 117, 39, 177, 6, 1, 234, 114, 39, 177, 6, + 1, 234, 103, 39, 177, 6, 1, 234, 66, 39, 177, 6, 1, 74, 39, 177, 6, 1, + 211, 87, 39, 177, 6, 1, 213, 182, 211, 151, 39, 177, 6, 1, 206, 58, 211, + 151, 39, 177, 6, 1, 211, 150, 39, 177, 6, 1, 234, 56, 39, 177, 6, 1, 234, + 108, 39, 177, 6, 1, 234, 34, 39, 177, 6, 1, 203, 40, 234, 34, 39, 177, 6, + 1, 234, 22, 39, 177, 6, 1, 234, 1, 39, 177, 6, 1, 233, 255, 39, 177, 6, + 1, 234, 80, 39, 177, 6, 1, 233, 243, 39, 177, 6, 1, 234, 195, 39, 177, 6, + 1, 66, 39, 177, 6, 1, 196, 30, 39, 177, 6, 1, 213, 182, 196, 152, 39, + 177, 6, 1, 206, 58, 196, 152, 39, 177, 6, 1, 233, 230, 39, 177, 6, 1, + 233, 182, 39, 177, 6, 1, 233, 177, 39, 177, 6, 1, 234, 79, 56, 39, 177, + 6, 1, 196, 45, 39, 177, 2, 1, 65, 39, 177, 2, 1, 252, 206, 39, 177, 2, 1, + 234, 199, 39, 177, 2, 1, 251, 144, 39, 177, 2, 1, 234, 197, 39, 177, 2, + 1, 234, 100, 39, 177, 2, 1, 234, 193, 39, 177, 2, 1, 234, 192, 39, 177, + 2, 1, 251, 125, 39, 177, 2, 1, 71, 39, 177, 2, 1, 242, 220, 71, 39, 177, + 2, 1, 234, 188, 39, 177, 2, 1, 234, 181, 39, 177, 2, 1, 234, 180, 39, + 177, 2, 1, 234, 176, 39, 177, 2, 1, 234, 173, 39, 177, 2, 1, 68, 39, 177, + 2, 1, 223, 199, 39, 177, 2, 1, 234, 150, 39, 177, 2, 1, 234, 147, 39, + 177, 2, 1, 251, 216, 39, 177, 2, 1, 196, 86, 39, 177, 2, 1, 234, 140, 39, + 177, 2, 1, 234, 117, 39, 177, 2, 1, 234, 114, 39, 177, 2, 1, 234, 103, + 39, 177, 2, 1, 234, 66, 39, 177, 2, 1, 74, 39, 177, 2, 1, 211, 87, 39, + 177, 2, 1, 213, 182, 211, 151, 39, 177, 2, 1, 206, 58, 211, 151, 39, 177, + 2, 1, 211, 150, 39, 177, 2, 1, 234, 56, 39, 177, 2, 1, 234, 108, 39, 177, + 2, 1, 234, 34, 39, 177, 2, 1, 203, 40, 234, 34, 39, 177, 2, 1, 234, 22, + 39, 177, 2, 1, 234, 1, 39, 177, 2, 1, 233, 255, 39, 177, 2, 1, 234, 80, + 39, 177, 2, 1, 233, 243, 39, 177, 2, 1, 234, 195, 39, 177, 2, 1, 66, 39, + 177, 2, 1, 196, 30, 39, 177, 2, 1, 213, 182, 196, 152, 39, 177, 2, 1, + 206, 58, 196, 152, 39, 177, 2, 1, 233, 230, 39, 177, 2, 1, 233, 182, 39, + 177, 2, 1, 233, 177, 39, 177, 2, 1, 234, 79, 56, 39, 177, 2, 1, 196, 45, + 39, 177, 31, 107, 39, 177, 31, 149, 39, 177, 31, 199, 95, 39, 177, 31, + 233, 15, 39, 177, 31, 91, 228, 140, 39, 177, 31, 91, 189, 230, 24, 206, + 142, 1, 65, 230, 24, 206, 142, 1, 249, 153, 230, 24, 206, 142, 1, 168, + 230, 24, 206, 142, 1, 190, 190, 230, 24, 206, 142, 1, 197, 132, 230, 24, + 206, 142, 1, 223, 32, 230, 24, 206, 142, 1, 247, 160, 230, 24, 206, 142, + 1, 140, 230, 24, 206, 142, 1, 221, 215, 230, 24, 206, 142, 1, 233, 109, + 230, 24, 206, 142, 1, 238, 32, 230, 24, 206, 142, 1, 237, 191, 230, 24, + 206, 142, 1, 165, 230, 24, 206, 142, 1, 206, 109, 230, 24, 206, 142, 1, + 191, 123, 230, 24, 206, 142, 1, 188, 230, 24, 206, 142, 1, 203, 165, 230, + 24, 206, 142, 1, 155, 230, 24, 206, 142, 1, 231, 240, 230, 24, 206, 142, + 1, 173, 230, 24, 206, 142, 1, 174, 230, 24, 206, 142, 1, 180, 230, 24, + 206, 142, 1, 193, 190, 230, 24, 206, 142, 1, 221, 137, 193, 190, 230, 24, + 206, 142, 1, 170, 230, 24, 206, 142, 1, 221, 137, 170, 230, 24, 206, 142, + 1, 214, 68, 230, 24, 206, 142, 1, 212, 101, 230, 24, 206, 142, 1, 195, + 188, 230, 24, 206, 142, 18, 65, 230, 24, 206, 142, 18, 68, 230, 24, 206, + 142, 18, 66, 230, 24, 206, 142, 18, 71, 230, 24, 206, 142, 18, 74, 230, + 24, 206, 142, 87, 205, 173, 230, 24, 206, 142, 87, 215, 7, 221, 178, 230, + 24, 206, 142, 3, 230, 18, 230, 24, 206, 142, 3, 199, 218, 230, 24, 206, + 142, 3, 199, 192, 230, 24, 206, 142, 3, 199, 172, 230, 24, 206, 142, 17, + 191, 77, 230, 24, 206, 142, 17, 107, 230, 24, 206, 142, 17, 109, 230, 24, + 206, 142, 17, 138, 230, 24, 206, 142, 17, 134, 230, 24, 206, 142, 17, + 149, 230, 24, 206, 142, 17, 169, 230, 24, 206, 142, 17, 175, 230, 24, + 206, 142, 17, 171, 230, 24, 206, 142, 17, 178, 206, 46, 17, 107, 206, 46, + 17, 109, 206, 46, 17, 138, 206, 46, 17, 134, 206, 46, 17, 149, 206, 46, + 17, 169, 206, 46, 17, 175, 206, 46, 17, 171, 206, 46, 17, 178, 206, 46, + 31, 199, 95, 206, 46, 31, 197, 32, 206, 46, 31, 198, 249, 206, 46, 31, + 232, 135, 206, 46, 31, 233, 15, 206, 46, 31, 202, 120, 206, 46, 31, 203, + 241, 206, 46, 31, 234, 153, 206, 46, 31, 213, 169, 206, 46, 31, 91, 228, + 140, 206, 46, 31, 105, 228, 140, 206, 46, 31, 115, 228, 140, 206, 46, 31, + 232, 128, 228, 140, 206, 46, 31, 232, 226, 228, 140, 206, 46, 31, 202, + 136, 228, 140, 206, 46, 31, 203, 247, 228, 140, 206, 46, 31, 234, 164, + 228, 140, 206, 46, 31, 213, 175, 228, 140, 206, 46, 232, 118, 91, 230, + 70, 206, 46, 232, 118, 91, 208, 22, 206, 46, 232, 118, 91, 199, 0, 206, + 46, 232, 118, 105, 198, 253, 192, 39, 1, 234, 124, 192, 39, 1, 249, 17, + 192, 39, 1, 210, 63, 192, 39, 1, 209, 214, 192, 39, 1, 199, 33, 192, 39, + 1, 205, 68, 192, 39, 1, 243, 16, 192, 39, 1, 243, 83, 192, 39, 1, 243, + 97, 192, 39, 1, 229, 177, 192, 39, 1, 192, 220, 192, 39, 1, 238, 3, 192, + 39, 1, 191, 108, 192, 39, 1, 165, 192, 39, 1, 207, 6, 192, 39, 1, 191, + 123, 192, 39, 1, 223, 32, 192, 39, 1, 202, 174, 192, 39, 1, 203, 69, 192, + 39, 1, 205, 192, 192, 39, 1, 238, 26, 192, 39, 1, 190, 190, 192, 39, 1, + 191, 87, 192, 39, 1, 233, 184, 192, 39, 1, 192, 208, 192, 39, 1, 233, + 109, 192, 39, 1, 195, 188, 192, 39, 1, 195, 189, 251, 157, 20, 192, 39, + 1, 208, 89, 192, 39, 1, 222, 106, 192, 39, 1, 221, 212, 192, 39, 1, 231, + 227, 192, 39, 1, 220, 35, 192, 39, 1, 216, 46, 192, 39, 1, 212, 130, 192, + 39, 1, 196, 120, 192, 39, 1, 193, 133, 192, 39, 1, 210, 250, 192, 39, 1, + 233, 224, 192, 39, 1, 229, 252, 192, 39, 1, 191, 240, 192, 39, 1, 233, + 255, 192, 39, 33, 230, 58, 77, 192, 39, 33, 217, 142, 77, 192, 39, 228, + 86, 77, 192, 39, 1, 220, 36, 4, 75, 58, 192, 39, 1, 191, 241, 4, 243, 2, + 58, 9, 2, 130, 193, 23, 205, 171, 9, 2, 130, 193, 23, 208, 79, 9, 2, 130, + 193, 23, 217, 141, 39, 202, 28, 1, 251, 190, 39, 202, 28, 1, 53, 251, + 190, 39, 202, 28, 1, 248, 211, 39, 202, 28, 1, 53, 248, 211, 39, 202, 28, + 1, 231, 38, 39, 202, 28, 1, 229, 245, 39, 202, 28, 1, 53, 229, 245, 39, + 202, 28, 1, 193, 133, 39, 202, 28, 1, 191, 91, 39, 202, 28, 1, 229, 184, + 39, 202, 28, 1, 191, 249, 39, 202, 28, 1, 222, 75, 39, 202, 28, 1, 220, + 26, 39, 202, 28, 1, 216, 193, 39, 202, 28, 1, 212, 130, 39, 202, 28, 1, + 53, 212, 130, 39, 202, 28, 1, 53, 212, 131, 4, 81, 199, 215, 39, 202, 28, + 1, 205, 148, 39, 202, 28, 1, 250, 126, 39, 202, 28, 1, 251, 157, 250, + 126, 39, 202, 28, 1, 210, 63, 39, 202, 28, 1, 205, 189, 39, 202, 28, 1, + 53, 205, 189, 39, 202, 28, 1, 53, 205, 190, 4, 81, 199, 215, 39, 202, 28, + 1, 207, 36, 39, 202, 28, 1, 203, 69, 39, 202, 28, 1, 199, 159, 39, 202, + 28, 1, 53, 199, 159, 39, 202, 28, 1, 53, 199, 160, 4, 81, 199, 215, 39, + 202, 28, 31, 107, 39, 202, 28, 31, 109, 39, 202, 28, 31, 138, 39, 202, + 28, 31, 134, 39, 202, 28, 31, 149, 39, 202, 28, 31, 199, 95, 39, 202, 28, + 31, 197, 32, 39, 202, 28, 31, 198, 249, 39, 202, 28, 31, 91, 228, 140, + 39, 202, 28, 232, 118, 91, 230, 70, 39, 202, 28, 34, 250, 125, 202, 28, + 1, 251, 190, 202, 28, 1, 248, 211, 202, 28, 1, 231, 38, 202, 28, 1, 229, + 245, 202, 28, 1, 193, 133, 202, 28, 1, 191, 91, 202, 28, 1, 229, 184, + 202, 28, 1, 191, 249, 202, 28, 1, 222, 75, 202, 28, 1, 220, 26, 202, 28, + 1, 216, 193, 202, 28, 1, 212, 130, 202, 28, 1, 205, 148, 202, 28, 1, 250, + 126, 202, 28, 1, 210, 63, 202, 28, 1, 205, 189, 202, 28, 1, 207, 37, 202, + 28, 1, 203, 69, 202, 28, 1, 199, 159, 202, 28, 1, 233, 30, 202, 28, 1, + 219, 182, 202, 28, 223, 149, 203, 69, 202, 28, 33, 75, 60, 202, 28, 33, + 105, 185, 60, 202, 28, 33, 75, 58, 202, 28, 33, 105, 185, 58, 202, 28, + 33, 238, 165, 58, 202, 28, 33, 238, 165, 60, 202, 28, 33, 228, 251, 58, + 202, 28, 33, 228, 251, 60, 202, 28, 33, 179, 228, 251, 60, 202, 28, 33, + 207, 39, 60, 202, 28, 33, 201, 28, 60, 202, 28, 31, 107, 202, 28, 31, + 199, 95, 202, 28, 31, 197, 32, 202, 28, 31, 91, 228, 140, 202, 28, 208, + 152, 105, 81, 249, 76, 202, 28, 208, 152, 105, 81, 249, 77, 4, 236, 138, + 202, 28, 208, 152, 243, 11, 4, 236, 140, 202, 28, 208, 152, 105, 243, 8, + 4, 236, 138, 202, 28, 208, 152, 132, 243, 11, 4, 236, 140, 39, 196, 19, + 1, 251, 190, 39, 196, 19, 1, 248, 211, 39, 196, 19, 1, 231, 37, 39, 196, + 19, 1, 193, 133, 39, 196, 19, 1, 191, 91, 39, 196, 19, 1, 53, 229, 184, + 39, 196, 19, 1, 191, 249, 39, 196, 19, 1, 222, 75, 39, 196, 19, 1, 220, + 26, 39, 196, 19, 1, 216, 193, 39, 196, 19, 1, 212, 130, 39, 196, 19, 1, + 205, 148, 39, 196, 19, 1, 210, 63, 39, 196, 19, 1, 205, 189, 39, 196, 19, + 1, 207, 38, 39, 196, 19, 1, 203, 69, 39, 196, 19, 1, 199, 159, 39, 196, + 19, 1, 219, 182, 39, 196, 19, 33, 75, 58, 39, 196, 19, 33, 75, 60, 39, + 196, 19, 33, 105, 185, 58, 39, 196, 19, 33, 105, 185, 60, 39, 196, 19, + 208, 152, 164, 39, 196, 19, 208, 152, 105, 249, 76, 39, 196, 19, 208, + 152, 105, 236, 138, 39, 196, 19, 208, 152, 232, 128, 236, 138, 243, 61, + 1, 251, 190, 243, 61, 1, 2, 251, 190, 243, 61, 1, 248, 211, 243, 61, 1, + 231, 38, 243, 61, 1, 237, 252, 243, 61, 1, 229, 245, 243, 61, 1, 193, + 133, 243, 61, 1, 238, 174, 193, 133, 243, 61, 1, 191, 91, 243, 61, 1, + 229, 184, 243, 61, 1, 191, 249, 243, 61, 1, 222, 75, 243, 61, 1, 220, 26, + 243, 61, 1, 216, 193, 243, 61, 1, 212, 130, 243, 61, 1, 205, 148, 243, + 61, 1, 250, 126, 243, 61, 1, 210, 63, 243, 61, 1, 207, 38, 243, 61, 1, + 203, 69, 243, 61, 1, 199, 159, 243, 61, 31, 107, 243, 61, 31, 109, 243, + 61, 31, 138, 243, 61, 31, 134, 243, 61, 31, 199, 95, 243, 61, 31, 197, + 32, 243, 61, 31, 91, 228, 140, 234, 116, 1, 251, 190, 234, 116, 1, 248, + 211, 234, 116, 1, 231, 38, 234, 116, 1, 237, 252, 234, 116, 1, 229, 245, + 234, 116, 1, 193, 133, 234, 116, 1, 191, 91, 234, 116, 1, 229, 184, 234, + 116, 1, 199, 69, 234, 116, 1, 191, 249, 234, 116, 1, 222, 75, 234, 116, + 1, 220, 26, 234, 116, 1, 216, 193, 234, 116, 1, 212, 130, 234, 116, 1, + 205, 148, 234, 116, 1, 250, 126, 234, 116, 1, 210, 63, 234, 116, 1, 205, + 189, 234, 116, 1, 208, 37, 234, 116, 1, 207, 38, 234, 116, 1, 203, 69, + 234, 116, 1, 199, 159, 234, 116, 34, 191, 90, 162, 3, 247, 119, 162, 3, + 251, 71, 162, 3, 195, 35, 162, 3, 222, 237, 162, 3, 196, 75, 162, 1, 65, + 162, 1, 252, 206, 162, 1, 68, 162, 1, 223, 199, 162, 1, 66, 162, 1, 196, + 30, 162, 1, 117, 146, 162, 1, 117, 206, 110, 162, 1, 117, 172, 162, 1, + 117, 219, 74, 162, 1, 71, 162, 1, 251, 236, 162, 1, 74, 162, 1, 250, 163, + 162, 1, 155, 162, 1, 221, 215, 162, 1, 231, 240, 162, 1, 231, 91, 162, 1, + 214, 68, 162, 1, 247, 160, 162, 1, 247, 1, 162, 1, 223, 32, 162, 1, 222, + 252, 162, 1, 212, 101, 162, 1, 197, 132, 162, 1, 197, 120, 162, 1, 237, + 191, 162, 1, 237, 175, 162, 1, 213, 79, 162, 1, 190, 190, 162, 1, 199, + 49, 162, 1, 238, 32, 162, 1, 237, 68, 162, 1, 180, 162, 1, 168, 162, 1, + 209, 228, 162, 1, 249, 153, 162, 1, 248, 203, 162, 1, 174, 162, 1, 170, + 162, 1, 165, 162, 1, 173, 162, 1, 195, 188, 162, 1, 203, 165, 162, 1, + 201, 175, 162, 1, 188, 162, 1, 140, 162, 1, 219, 73, 162, 1, 39, 44, 219, + 62, 162, 1, 39, 44, 206, 109, 162, 1, 39, 44, 213, 61, 162, 18, 3, 252, + 206, 162, 18, 3, 248, 197, 252, 206, 162, 18, 3, 68, 162, 18, 3, 223, + 199, 162, 18, 3, 66, 162, 18, 3, 196, 30, 162, 18, 3, 117, 146, 162, 18, + 3, 117, 206, 110, 162, 18, 3, 117, 172, 162, 18, 3, 117, 219, 74, 162, + 18, 3, 71, 162, 18, 3, 251, 236, 162, 18, 3, 74, 162, 18, 3, 250, 163, + 162, 195, 40, 162, 237, 238, 162, 55, 237, 238, 162, 208, 152, 236, 140, + 162, 208, 152, 55, 236, 140, 162, 208, 152, 219, 112, 162, 208, 152, 238, + 228, 164, 162, 208, 152, 218, 246, 162, 31, 107, 162, 31, 109, 162, 31, + 138, 162, 31, 134, 162, 31, 149, 162, 31, 169, 162, 31, 175, 162, 31, + 171, 162, 31, 178, 162, 31, 199, 95, 162, 31, 197, 32, 162, 31, 198, 249, + 162, 31, 232, 135, 162, 31, 233, 15, 162, 31, 202, 120, 162, 31, 203, + 241, 162, 31, 234, 153, 162, 31, 213, 169, 162, 31, 91, 228, 140, 162, + 31, 91, 189, 162, 17, 191, 77, 162, 17, 107, 162, 17, 109, 162, 17, 138, + 162, 17, 134, 162, 17, 149, 162, 17, 169, 162, 17, 175, 162, 17, 171, + 162, 17, 178, 162, 3, 39, 44, 195, 40, 162, 1, 39, 44, 203, 40, 71, 162, + 1, 39, 44, 203, 40, 74, 162, 18, 3, 39, 44, 203, 40, 71, 162, 18, 3, 39, + 44, 203, 40, 74, 162, 1, 39, 44, 219, 73, 162, 31, 222, 196, 222, 99, 3, + 247, 119, 222, 99, 3, 251, 71, 222, 99, 3, 195, 35, 222, 99, 1, 65, 222, + 99, 1, 252, 206, 222, 99, 1, 68, 222, 99, 1, 223, 199, 222, 99, 1, 66, + 222, 99, 1, 196, 30, 222, 99, 1, 71, 222, 99, 1, 251, 236, 222, 99, 1, + 74, 222, 99, 1, 250, 163, 222, 99, 1, 155, 222, 99, 1, 221, 215, 222, 99, + 1, 231, 240, 222, 99, 1, 231, 91, 222, 99, 1, 214, 68, 222, 99, 1, 247, + 160, 222, 99, 1, 247, 1, 222, 99, 1, 223, 32, 222, 99, 1, 222, 252, 222, + 99, 1, 212, 101, 222, 99, 1, 197, 132, 222, 99, 1, 197, 120, 222, 99, 1, + 237, 191, 222, 99, 1, 237, 180, 222, 99, 1, 237, 175, 222, 99, 1, 207, 6, + 222, 99, 1, 213, 79, 222, 99, 1, 190, 190, 222, 99, 1, 199, 49, 222, 99, + 1, 238, 32, 222, 99, 1, 237, 68, 222, 99, 1, 180, 222, 99, 1, 168, 222, + 99, 1, 209, 228, 222, 99, 1, 249, 153, 222, 99, 1, 248, 203, 222, 99, 1, + 174, 222, 99, 1, 170, 222, 99, 1, 165, 222, 99, 1, 173, 222, 99, 1, 195, + 188, 222, 99, 1, 203, 165, 222, 99, 1, 201, 175, 222, 99, 1, 188, 222, + 99, 1, 140, 222, 99, 18, 3, 252, 206, 222, 99, 18, 3, 68, 222, 99, 18, 3, + 223, 199, 222, 99, 18, 3, 66, 222, 99, 18, 3, 196, 30, 222, 99, 18, 3, + 71, 222, 99, 18, 3, 251, 236, 222, 99, 18, 3, 74, 222, 99, 18, 3, 250, + 163, 222, 99, 3, 195, 40, 222, 99, 3, 212, 141, 222, 99, 252, 68, 56, + 222, 99, 234, 69, 56, 222, 99, 31, 56, 222, 99, 205, 54, 77, 222, 99, 55, + 205, 54, 77, 222, 99, 237, 238, 222, 99, 55, 237, 238, 222, 99, 18, 3, + 117, 146, 222, 99, 31, 3, 58, 202, 12, 202, 20, 1, 205, 182, 202, 12, + 202, 20, 1, 199, 219, 202, 12, 202, 20, 1, 249, 123, 202, 12, 202, 20, 1, + 247, 149, 202, 12, 202, 20, 1, 238, 12, 202, 12, 202, 20, 1, 231, 225, + 202, 12, 202, 20, 1, 217, 120, 202, 12, 202, 20, 1, 214, 65, 202, 12, + 202, 20, 1, 220, 99, 202, 12, 202, 20, 1, 214, 237, 202, 12, 202, 20, 1, + 195, 184, 202, 12, 202, 20, 1, 210, 200, 202, 12, 202, 20, 1, 192, 121, + 202, 12, 202, 20, 1, 207, 160, 202, 12, 202, 20, 1, 230, 81, 202, 12, + 202, 20, 1, 222, 104, 202, 12, 202, 20, 1, 223, 26, 202, 12, 202, 20, 1, + 212, 98, 202, 12, 202, 20, 1, 251, 245, 202, 12, 202, 20, 1, 234, 186, + 202, 12, 202, 20, 1, 223, 200, 202, 12, 202, 20, 1, 196, 141, 202, 12, + 202, 20, 1, 211, 136, 202, 12, 202, 20, 1, 234, 173, 202, 12, 202, 20, 1, + 217, 136, 202, 12, 202, 20, 17, 191, 77, 202, 12, 202, 20, 17, 107, 202, + 12, 202, 20, 17, 109, 202, 12, 202, 20, 17, 138, 202, 12, 202, 20, 17, + 134, 202, 12, 202, 20, 17, 149, 202, 12, 202, 20, 17, 169, 202, 12, 202, + 20, 17, 175, 202, 12, 202, 20, 17, 171, 202, 12, 202, 20, 17, 178, 246, + 251, 3, 247, 119, 246, 251, 3, 251, 71, 246, 251, 3, 195, 35, 246, 251, + 1, 252, 206, 246, 251, 1, 68, 246, 251, 1, 66, 246, 251, 1, 71, 246, 251, + 1, 222, 127, 246, 251, 1, 221, 214, 246, 251, 1, 231, 237, 246, 251, 1, + 231, 90, 246, 251, 1, 214, 67, 246, 251, 1, 247, 159, 246, 251, 1, 247, + 0, 246, 251, 1, 223, 31, 246, 251, 1, 222, 251, 246, 251, 1, 212, 100, + 246, 251, 1, 197, 131, 246, 251, 1, 197, 119, 246, 251, 1, 237, 190, 246, + 251, 1, 237, 174, 246, 251, 1, 213, 78, 246, 251, 1, 199, 245, 246, 251, + 1, 199, 48, 246, 251, 1, 238, 31, 246, 251, 1, 237, 67, 246, 251, 1, 214, + 250, 246, 251, 1, 210, 220, 246, 251, 1, 209, 227, 246, 251, 1, 249, 151, + 246, 251, 1, 248, 202, 246, 251, 1, 217, 151, 246, 251, 1, 191, 174, 246, + 251, 1, 192, 140, 246, 251, 1, 207, 178, 246, 251, 1, 220, 125, 246, 251, + 1, 193, 181, 246, 251, 1, 205, 197, 246, 251, 1, 230, 91, 246, 251, 18, + 3, 65, 246, 251, 18, 3, 68, 246, 251, 18, 3, 223, 199, 246, 251, 18, 3, + 66, 246, 251, 18, 3, 196, 30, 246, 251, 18, 3, 71, 246, 251, 18, 3, 251, + 236, 246, 251, 18, 3, 74, 246, 251, 18, 3, 250, 163, 246, 251, 18, 3, + 211, 133, 246, 251, 187, 77, 246, 251, 250, 164, 77, 246, 251, 195, 40, + 246, 251, 217, 149, 246, 251, 17, 191, 77, 246, 251, 17, 107, 246, 251, + 17, 109, 246, 251, 17, 138, 246, 251, 17, 134, 246, 251, 17, 149, 246, + 251, 17, 169, 246, 251, 17, 175, 246, 251, 17, 171, 246, 251, 17, 178, + 246, 251, 205, 54, 77, 246, 251, 237, 238, 246, 251, 55, 237, 238, 246, + 251, 208, 13, 77, 246, 251, 1, 219, 158, 246, 251, 18, 3, 252, 206, 246, + 251, 18, 3, 234, 166, 246, 251, 1, 195, 187, 217, 118, 1, 65, 217, 118, + 1, 68, 217, 118, 1, 66, 217, 118, 1, 71, 217, 118, 1, 74, 217, 118, 1, + 155, 217, 118, 1, 221, 215, 217, 118, 1, 231, 240, 217, 118, 1, 231, 91, + 217, 118, 1, 247, 160, 217, 118, 1, 247, 1, 217, 118, 1, 223, 32, 217, + 118, 1, 222, 252, 217, 118, 1, 212, 101, 217, 118, 1, 197, 132, 217, 118, + 1, 197, 120, 217, 118, 1, 237, 191, 217, 118, 1, 237, 175, 217, 118, 1, + 213, 79, 217, 118, 1, 190, 190, 217, 118, 1, 199, 49, 217, 118, 1, 238, + 32, 217, 118, 1, 237, 68, 217, 118, 1, 180, 217, 118, 1, 168, 217, 118, + 1, 209, 228, 217, 118, 1, 249, 153, 217, 118, 1, 248, 203, 217, 118, 1, + 174, 217, 118, 1, 165, 217, 118, 1, 173, 217, 118, 1, 195, 188, 217, 118, + 1, 188, 217, 118, 1, 140, 217, 118, 1, 206, 109, 217, 118, 3, 212, 141, + 217, 118, 252, 68, 56, 217, 118, 205, 54, 77, 217, 118, 34, 203, 15, 203, + 129, 3, 247, 119, 203, 129, 3, 251, 71, 203, 129, 3, 195, 35, 203, 129, + 1, 65, 203, 129, 1, 252, 206, 203, 129, 1, 68, 203, 129, 1, 223, 199, + 203, 129, 1, 66, 203, 129, 1, 196, 30, 203, 129, 1, 117, 146, 203, 129, + 1, 117, 206, 110, 203, 129, 1, 117, 172, 203, 129, 1, 117, 219, 74, 203, + 129, 1, 71, 203, 129, 1, 251, 236, 203, 129, 1, 74, 203, 129, 1, 250, + 163, 203, 129, 1, 155, 203, 129, 1, 221, 215, 203, 129, 1, 231, 240, 203, + 129, 1, 231, 91, 203, 129, 1, 214, 68, 203, 129, 1, 247, 160, 203, 129, + 1, 247, 1, 203, 129, 1, 223, 32, 203, 129, 1, 222, 252, 203, 129, 1, 212, + 101, 203, 129, 1, 197, 132, 203, 129, 1, 197, 120, 203, 129, 1, 237, 191, + 203, 129, 1, 237, 175, 203, 129, 1, 213, 79, 203, 129, 1, 190, 190, 203, + 129, 1, 199, 49, 203, 129, 1, 238, 32, 203, 129, 1, 237, 68, 203, 129, 1, + 180, 203, 129, 1, 168, 203, 129, 1, 209, 228, 203, 129, 1, 249, 153, 203, + 129, 1, 248, 203, 203, 129, 1, 174, 203, 129, 1, 170, 203, 129, 1, 165, + 203, 129, 1, 173, 203, 129, 1, 219, 73, 203, 129, 1, 195, 188, 203, 129, + 1, 203, 165, 203, 129, 1, 201, 175, 203, 129, 1, 188, 203, 129, 1, 140, + 203, 129, 18, 3, 252, 206, 203, 129, 18, 3, 68, 203, 129, 18, 3, 223, + 199, 203, 129, 18, 3, 66, 203, 129, 18, 3, 196, 30, 203, 129, 18, 3, 117, + 146, 203, 129, 18, 3, 117, 206, 110, 203, 129, 18, 3, 117, 172, 203, 129, + 18, 3, 117, 219, 74, 203, 129, 18, 3, 71, 203, 129, 18, 3, 251, 236, 203, + 129, 18, 3, 74, 203, 129, 18, 3, 250, 163, 203, 129, 3, 195, 40, 203, + 129, 3, 250, 145, 203, 129, 3, 222, 237, 203, 129, 3, 196, 75, 203, 129, + 211, 113, 203, 129, 237, 238, 203, 129, 55, 237, 238, 203, 129, 252, 68, + 56, 203, 129, 204, 10, 203, 129, 205, 138, 77, 203, 129, 3, 212, 141, + 203, 129, 18, 52, 77, 203, 129, 233, 201, 203, 40, 18, 77, 203, 129, 200, + 162, 77, 203, 129, 18, 3, 208, 207, 71, 203, 129, 3, 223, 93, 247, 119, + 203, 129, 17, 191, 77, 203, 129, 17, 107, 203, 129, 17, 109, 203, 129, + 17, 138, 203, 129, 17, 134, 203, 129, 17, 149, 203, 129, 17, 169, 203, + 129, 17, 175, 203, 129, 17, 171, 203, 129, 17, 178, 203, 129, 234, 146, + 203, 129, 3, 202, 210, 203, 129, 229, 227, 203, 129, 239, 29, 56, 203, + 129, 205, 54, 217, 55, 203, 129, 205, 54, 217, 54, 166, 251, 14, 17, 107, + 166, 251, 14, 17, 109, 166, 251, 14, 17, 138, 166, 251, 14, 17, 134, 166, + 251, 14, 17, 149, 166, 251, 14, 17, 169, 166, 251, 14, 17, 175, 166, 251, + 14, 17, 171, 166, 251, 14, 17, 178, 166, 251, 14, 31, 199, 95, 166, 251, + 14, 31, 197, 32, 166, 251, 14, 31, 198, 249, 166, 251, 14, 31, 232, 135, + 166, 251, 14, 31, 233, 15, 166, 251, 14, 31, 202, 120, 166, 251, 14, 31, + 203, 241, 166, 251, 14, 31, 234, 153, 166, 251, 14, 31, 213, 169, 166, + 251, 14, 31, 91, 228, 140, 166, 251, 14, 31, 91, 189, 221, 182, 1, 65, + 221, 182, 1, 252, 206, 221, 182, 1, 68, 221, 182, 1, 66, 221, 182, 1, 71, + 221, 182, 1, 251, 236, 221, 182, 1, 74, 221, 182, 1, 250, 163, 221, 182, + 1, 155, 221, 182, 1, 221, 215, 221, 182, 1, 231, 240, 221, 182, 1, 231, + 127, 221, 182, 1, 231, 91, 221, 182, 1, 214, 68, 221, 182, 1, 247, 160, + 221, 182, 1, 247, 1, 221, 182, 1, 223, 32, 221, 182, 1, 222, 230, 221, + 182, 1, 212, 101, 221, 182, 1, 197, 132, 221, 182, 1, 197, 120, 221, 182, + 1, 237, 191, 221, 182, 1, 237, 175, 221, 182, 1, 213, 79, 221, 182, 1, + 190, 190, 221, 182, 1, 199, 49, 221, 182, 1, 238, 32, 221, 182, 1, 237, + 181, 221, 182, 1, 237, 68, 221, 182, 1, 180, 221, 182, 1, 168, 221, 182, + 1, 209, 228, 221, 182, 1, 249, 153, 221, 182, 1, 249, 53, 221, 182, 1, + 248, 203, 221, 182, 1, 174, 221, 182, 1, 170, 221, 182, 1, 165, 221, 182, + 1, 173, 221, 182, 1, 195, 188, 221, 182, 1, 188, 221, 182, 1, 140, 221, + 182, 1, 219, 73, 221, 182, 18, 3, 252, 206, 221, 182, 18, 3, 68, 221, + 182, 18, 3, 223, 199, 221, 182, 18, 3, 66, 221, 182, 18, 3, 71, 221, 182, + 18, 3, 251, 236, 221, 182, 18, 3, 74, 221, 182, 18, 3, 250, 163, 221, + 182, 3, 251, 71, 221, 182, 3, 195, 40, 221, 182, 3, 212, 141, 221, 182, + 3, 203, 155, 221, 182, 237, 238, 221, 182, 55, 237, 238, 221, 182, 193, + 23, 204, 10, 221, 182, 205, 54, 77, 221, 182, 55, 205, 54, 77, 221, 182, + 252, 68, 56, 221, 182, 3, 200, 206, 221, 182, 1, 208, 96, 221, 182, 1, + 203, 40, 68, 221, 182, 18, 3, 117, 146, 215, 133, 1, 65, 215, 133, 1, 68, + 215, 133, 1, 66, 215, 133, 1, 71, 215, 133, 1, 155, 215, 133, 1, 221, + 215, 215, 133, 1, 231, 240, 215, 133, 1, 231, 91, 215, 133, 1, 247, 160, + 215, 133, 1, 247, 1, 215, 133, 1, 223, 32, 215, 133, 1, 222, 230, 215, + 133, 1, 212, 101, 215, 133, 1, 197, 132, 215, 133, 1, 197, 120, 215, 133, + 1, 237, 191, 215, 133, 1, 237, 181, 215, 133, 1, 237, 175, 215, 133, 1, + 213, 79, 215, 133, 1, 190, 190, 215, 133, 1, 199, 49, 215, 133, 1, 238, + 32, 215, 133, 1, 237, 68, 215, 133, 1, 180, 215, 133, 1, 168, 215, 133, + 1, 209, 228, 215, 133, 1, 249, 153, 215, 133, 1, 248, 203, 215, 133, 1, + 174, 215, 133, 1, 170, 215, 133, 1, 165, 215, 133, 1, 173, 215, 133, 1, + 195, 188, 215, 133, 1, 188, 215, 133, 1, 140, 215, 133, 1, 206, 109, 215, + 133, 1, 207, 6, 215, 133, 205, 54, 77, 221, 172, 1, 65, 221, 172, 1, 252, + 206, 221, 172, 1, 68, 221, 172, 1, 223, 199, 221, 172, 1, 66, 221, 172, + 1, 196, 30, 221, 172, 1, 71, 221, 172, 1, 251, 236, 221, 172, 1, 74, 221, + 172, 1, 250, 163, 221, 172, 1, 155, 221, 172, 1, 221, 215, 221, 172, 1, + 231, 240, 221, 172, 1, 231, 127, 221, 172, 1, 231, 91, 221, 172, 1, 214, + 68, 221, 172, 1, 247, 160, 221, 172, 1, 247, 1, 221, 172, 1, 223, 32, + 221, 172, 1, 222, 230, 221, 172, 1, 222, 252, 221, 172, 1, 212, 101, 221, + 172, 1, 197, 132, 221, 172, 1, 197, 120, 221, 172, 1, 237, 191, 221, 172, + 1, 237, 181, 221, 172, 1, 206, 109, 221, 172, 1, 237, 175, 221, 172, 1, + 213, 79, 221, 172, 1, 190, 190, 221, 172, 1, 199, 49, 221, 172, 1, 238, + 32, 221, 172, 1, 237, 68, 221, 172, 1, 180, 221, 172, 1, 168, 221, 172, + 1, 209, 228, 221, 172, 1, 249, 153, 221, 172, 1, 249, 53, 221, 172, 1, + 248, 203, 221, 172, 1, 174, 221, 172, 1, 170, 221, 172, 1, 165, 221, 172, + 1, 173, 221, 172, 1, 195, 188, 221, 172, 1, 203, 165, 221, 172, 1, 188, + 221, 172, 1, 140, 221, 172, 3, 251, 71, 221, 172, 18, 3, 252, 206, 221, + 172, 18, 3, 68, 221, 172, 18, 3, 223, 199, 221, 172, 18, 3, 66, 221, 172, + 18, 3, 196, 30, 221, 172, 18, 3, 71, 221, 172, 18, 3, 251, 236, 221, 172, + 18, 3, 74, 221, 172, 18, 3, 250, 163, 221, 172, 3, 212, 141, 221, 172, 3, + 195, 40, 221, 172, 17, 191, 77, 221, 172, 17, 107, 221, 172, 17, 109, + 221, 172, 17, 138, 221, 172, 17, 134, 221, 172, 17, 149, 221, 172, 17, + 169, 221, 172, 17, 175, 221, 172, 17, 171, 221, 172, 17, 178, 230, 219, + 3, 33, 251, 72, 58, 230, 219, 3, 247, 119, 230, 219, 3, 251, 71, 230, + 219, 3, 195, 35, 230, 219, 1, 65, 230, 219, 1, 252, 206, 230, 219, 1, 68, + 230, 219, 1, 223, 199, 230, 219, 1, 66, 230, 219, 1, 196, 30, 230, 219, + 1, 117, 146, 230, 219, 1, 117, 172, 230, 219, 1, 234, 188, 230, 219, 1, + 251, 236, 230, 219, 1, 211, 87, 230, 219, 1, 250, 163, 230, 219, 1, 155, + 230, 219, 1, 221, 215, 230, 219, 1, 231, 240, 230, 219, 1, 231, 91, 230, + 219, 1, 214, 68, 230, 219, 1, 247, 160, 230, 219, 1, 247, 1, 230, 219, 1, + 223, 32, 230, 219, 1, 222, 252, 230, 219, 1, 212, 101, 230, 219, 1, 197, + 132, 230, 219, 1, 197, 120, 230, 219, 1, 237, 191, 230, 219, 1, 237, 175, + 230, 219, 1, 213, 79, 230, 219, 1, 190, 190, 230, 219, 1, 199, 49, 230, + 219, 1, 238, 32, 230, 219, 1, 237, 68, 230, 219, 1, 180, 230, 219, 1, + 168, 230, 219, 1, 209, 228, 230, 219, 1, 249, 153, 230, 219, 1, 248, 203, + 230, 219, 1, 174, 230, 219, 1, 170, 230, 219, 1, 165, 230, 219, 1, 173, + 230, 219, 1, 219, 73, 230, 219, 1, 195, 188, 230, 219, 1, 203, 165, 230, + 219, 1, 201, 175, 230, 219, 1, 188, 230, 219, 1, 140, 33, 248, 165, 60, + 230, 219, 3, 212, 141, 230, 219, 3, 250, 145, 230, 219, 18, 3, 252, 206, + 230, 219, 18, 3, 68, 230, 219, 18, 3, 223, 199, 230, 219, 18, 3, 66, 230, + 219, 18, 3, 196, 30, 230, 219, 18, 3, 117, 146, 230, 219, 18, 3, 117, + 206, 110, 230, 219, 18, 3, 234, 188, 230, 219, 18, 3, 251, 236, 230, 219, + 18, 3, 211, 87, 230, 219, 18, 3, 250, 163, 230, 219, 3, 195, 40, 230, + 219, 211, 113, 230, 219, 250, 164, 219, 198, 77, 230, 219, 3, 209, 79, + 230, 219, 1, 195, 150, 251, 71, 230, 219, 1, 195, 150, 55, 251, 71, 230, + 219, 1, 117, 206, 110, 230, 219, 1, 117, 219, 74, 230, 219, 18, 3, 117, + 172, 230, 219, 18, 3, 117, 219, 74, 33, 230, 219, 17, 191, 77, 33, 230, + 219, 17, 107, 33, 230, 219, 17, 109, 33, 230, 219, 17, 138, 33, 230, 219, + 17, 134, 33, 230, 219, 17, 149, 33, 230, 219, 17, 169, 33, 230, 219, 1, + 65, 33, 230, 219, 1, 155, 33, 230, 219, 1, 180, 33, 230, 219, 1, 195, 69, + 33, 230, 219, 1, 168, 214, 78, 1, 65, 214, 78, 1, 252, 206, 214, 78, 1, + 68, 214, 78, 1, 223, 199, 214, 78, 1, 66, 214, 78, 1, 196, 30, 214, 78, + 1, 117, 146, 214, 78, 1, 117, 206, 110, 214, 78, 1, 117, 172, 214, 78, 1, + 117, 219, 74, 214, 78, 1, 71, 214, 78, 1, 251, 236, 214, 78, 1, 74, 214, + 78, 1, 250, 163, 214, 78, 1, 155, 214, 78, 1, 221, 215, 214, 78, 1, 231, + 240, 214, 78, 1, 231, 91, 214, 78, 1, 214, 68, 214, 78, 1, 214, 17, 214, + 78, 1, 247, 160, 214, 78, 1, 247, 1, 214, 78, 1, 223, 32, 214, 78, 1, + 222, 252, 214, 78, 1, 212, 101, 214, 78, 1, 212, 83, 214, 78, 1, 197, + 132, 214, 78, 1, 197, 120, 214, 78, 1, 237, 191, 214, 78, 1, 237, 175, + 214, 78, 1, 213, 79, 214, 78, 1, 190, 190, 214, 78, 1, 199, 49, 214, 78, + 1, 238, 32, 214, 78, 1, 237, 68, 214, 78, 1, 180, 214, 78, 1, 213, 224, + 214, 78, 1, 168, 214, 78, 1, 209, 228, 214, 78, 1, 249, 153, 214, 78, 1, + 248, 203, 214, 78, 1, 174, 214, 78, 1, 216, 103, 214, 78, 1, 170, 214, + 78, 1, 165, 214, 78, 1, 207, 6, 214, 78, 1, 173, 214, 78, 1, 219, 159, + 214, 78, 1, 193, 190, 214, 78, 1, 203, 165, 214, 78, 1, 201, 175, 214, + 78, 1, 188, 214, 78, 1, 140, 214, 78, 18, 3, 252, 206, 214, 78, 18, 3, + 68, 214, 78, 18, 3, 223, 199, 214, 78, 18, 3, 66, 214, 78, 18, 3, 196, + 30, 214, 78, 18, 3, 117, 146, 214, 78, 18, 3, 117, 206, 110, 214, 78, 18, + 3, 117, 172, 214, 78, 18, 3, 117, 219, 74, 214, 78, 18, 3, 71, 214, 78, + 18, 3, 251, 236, 214, 78, 18, 3, 74, 214, 78, 18, 3, 250, 163, 214, 78, + 3, 195, 40, 214, 78, 3, 247, 119, 214, 78, 3, 251, 71, 214, 78, 3, 195, + 35, 214, 78, 3, 212, 141, 214, 78, 3, 250, 145, 214, 78, 3, 53, 251, 71, + 214, 78, 211, 113, 214, 78, 202, 209, 214, 78, 237, 238, 214, 78, 55, + 237, 238, 214, 78, 242, 74, 214, 78, 231, 204, 233, 3, 214, 78, 252, 68, + 56, 214, 78, 17, 191, 77, 214, 78, 17, 107, 214, 78, 17, 109, 214, 78, + 17, 138, 214, 78, 17, 134, 214, 78, 17, 149, 214, 78, 17, 169, 214, 78, + 17, 175, 214, 78, 17, 171, 214, 78, 17, 178, 214, 78, 55, 242, 74, 214, + 78, 209, 107, 77, 214, 78, 223, 119, 56, 214, 78, 205, 138, 77, 214, 78, + 1, 195, 150, 251, 71, 214, 78, 3, 222, 237, 214, 78, 3, 196, 75, 198, + 129, 251, 100, 198, 129, 1, 65, 198, 129, 1, 252, 206, 198, 129, 1, 68, + 198, 129, 1, 223, 199, 198, 129, 1, 66, 198, 129, 1, 196, 30, 198, 129, + 1, 117, 146, 198, 129, 1, 117, 206, 110, 198, 129, 1, 117, 172, 198, 129, + 1, 117, 219, 74, 198, 129, 1, 71, 198, 129, 1, 251, 236, 198, 129, 1, 74, + 198, 129, 1, 250, 163, 198, 129, 1, 155, 198, 129, 1, 221, 215, 198, 129, + 1, 231, 240, 198, 129, 1, 231, 91, 198, 129, 1, 214, 68, 198, 129, 1, + 247, 160, 198, 129, 1, 247, 1, 198, 129, 1, 223, 32, 198, 129, 1, 222, + 252, 198, 129, 1, 212, 101, 198, 129, 1, 197, 132, 198, 129, 1, 197, 120, + 198, 129, 1, 237, 191, 198, 129, 1, 237, 175, 198, 129, 1, 213, 79, 198, + 129, 1, 190, 190, 198, 129, 1, 199, 49, 198, 129, 1, 238, 32, 198, 129, + 1, 237, 68, 198, 129, 1, 180, 198, 129, 1, 168, 198, 129, 1, 209, 228, + 198, 129, 1, 249, 153, 198, 129, 1, 248, 203, 198, 129, 1, 174, 198, 129, + 1, 170, 198, 129, 1, 165, 198, 129, 1, 173, 198, 129, 1, 195, 188, 198, + 129, 1, 203, 165, 198, 129, 1, 201, 175, 198, 129, 1, 188, 198, 129, 1, + 140, 198, 129, 18, 3, 252, 206, 198, 129, 18, 3, 68, 198, 129, 18, 3, + 223, 199, 198, 129, 18, 3, 66, 198, 129, 18, 3, 196, 30, 198, 129, 18, 3, + 117, 146, 198, 129, 18, 3, 117, 206, 110, 198, 129, 18, 3, 117, 172, 198, + 129, 18, 3, 117, 219, 74, 198, 129, 18, 3, 71, 198, 129, 18, 3, 203, 40, + 71, 198, 129, 18, 3, 251, 236, 198, 129, 18, 3, 74, 198, 129, 18, 3, 203, + 40, 74, 198, 129, 18, 3, 250, 163, 198, 129, 3, 247, 119, 198, 129, 3, + 251, 71, 198, 129, 3, 195, 35, 198, 129, 3, 195, 40, 198, 129, 3, 212, + 141, 198, 129, 3, 250, 145, 198, 129, 230, 137, 198, 129, 252, 68, 56, + 198, 129, 211, 113, 198, 129, 17, 191, 77, 198, 129, 17, 107, 198, 129, + 17, 109, 198, 129, 17, 138, 198, 129, 17, 134, 198, 129, 17, 149, 198, + 129, 17, 169, 198, 129, 17, 175, 198, 129, 17, 171, 198, 129, 17, 178, + 202, 211, 1, 65, 202, 211, 1, 252, 206, 202, 211, 1, 68, 202, 211, 1, + 223, 199, 202, 211, 1, 66, 202, 211, 1, 196, 30, 202, 211, 1, 117, 146, + 202, 211, 1, 117, 206, 110, 202, 211, 1, 117, 172, 202, 211, 1, 117, 219, + 74, 202, 211, 1, 71, 202, 211, 1, 251, 236, 202, 211, 1, 74, 202, 211, 1, + 250, 163, 202, 211, 1, 155, 202, 211, 1, 221, 215, 202, 211, 1, 231, 240, + 202, 211, 1, 231, 91, 202, 211, 1, 214, 68, 202, 211, 1, 247, 160, 202, + 211, 1, 247, 1, 202, 211, 1, 223, 32, 202, 211, 1, 222, 252, 202, 211, 1, + 212, 101, 202, 211, 1, 197, 132, 202, 211, 1, 197, 120, 202, 211, 1, 237, + 191, 202, 211, 1, 237, 175, 202, 211, 1, 213, 79, 202, 211, 1, 190, 190, + 202, 211, 1, 199, 49, 202, 211, 1, 238, 32, 202, 211, 1, 237, 68, 202, + 211, 1, 180, 202, 211, 1, 168, 202, 211, 1, 209, 228, 202, 211, 1, 249, + 153, 202, 211, 1, 248, 203, 202, 211, 1, 174, 202, 211, 1, 170, 202, 211, + 1, 165, 202, 211, 1, 173, 202, 211, 1, 195, 188, 202, 211, 1, 203, 165, + 202, 211, 1, 201, 175, 202, 211, 1, 188, 202, 211, 1, 140, 202, 211, 18, + 3, 252, 206, 202, 211, 18, 3, 68, 202, 211, 18, 3, 223, 199, 202, 211, + 18, 3, 66, 202, 211, 18, 3, 196, 30, 202, 211, 18, 3, 117, 146, 202, 211, + 18, 3, 117, 206, 110, 202, 211, 18, 3, 71, 202, 211, 18, 3, 251, 236, + 202, 211, 18, 3, 74, 202, 211, 18, 3, 250, 163, 202, 211, 3, 247, 119, + 202, 211, 3, 251, 71, 202, 211, 3, 195, 35, 202, 211, 3, 195, 40, 202, + 211, 3, 212, 141, 202, 211, 3, 202, 210, 202, 211, 237, 238, 202, 211, + 55, 237, 238, 202, 211, 204, 11, 236, 140, 202, 211, 204, 11, 164, 202, + 211, 207, 46, 217, 55, 202, 211, 207, 46, 217, 54, 202, 211, 207, 46, + 217, 53, 202, 211, 234, 95, 79, 199, 54, 77, 202, 211, 205, 54, 87, 4, + 197, 236, 23, 196, 221, 211, 41, 202, 211, 205, 54, 87, 4, 197, 236, 23, + 235, 138, 238, 226, 202, 211, 205, 54, 87, 4, 207, 120, 23, 235, 138, + 238, 226, 202, 211, 205, 54, 87, 4, 207, 120, 23, 235, 138, 55, 238, 226, + 202, 211, 205, 54, 87, 4, 207, 120, 23, 235, 138, 197, 225, 238, 226, + 202, 211, 205, 54, 87, 55, 206, 188, 202, 211, 205, 54, 87, 55, 206, 189, + 4, 207, 119, 202, 211, 205, 54, 87, 4, 55, 238, 226, 202, 211, 205, 54, + 87, 4, 197, 225, 238, 226, 202, 211, 205, 54, 87, 4, 208, 26, 238, 226, + 202, 211, 205, 54, 87, 4, 204, 8, 238, 226, 202, 211, 205, 54, 87, 4, + 243, 8, 23, 207, 119, 202, 211, 205, 54, 87, 4, 243, 8, 23, 105, 234, 97, + 202, 211, 205, 54, 87, 4, 243, 8, 23, 232, 128, 234, 97, 202, 211, 1, + 198, 226, 251, 157, 68, 202, 211, 1, 197, 15, 251, 157, 68, 202, 211, 1, + 197, 15, 251, 157, 223, 199, 202, 211, 1, 251, 157, 66, 202, 211, 18, 3, + 251, 157, 66, 202, 211, 18, 3, 251, 157, 196, 30, 215, 253, 1, 65, 215, + 253, 1, 252, 206, 215, 253, 1, 68, 215, 253, 1, 223, 199, 215, 253, 1, + 66, 215, 253, 1, 196, 30, 215, 253, 1, 117, 146, 215, 253, 1, 117, 206, + 110, 215, 253, 1, 117, 172, 215, 253, 1, 117, 219, 74, 215, 253, 1, 71, + 215, 253, 1, 251, 236, 215, 253, 1, 74, 215, 253, 1, 250, 163, 215, 253, + 1, 155, 215, 253, 1, 221, 215, 215, 253, 1, 231, 240, 215, 253, 1, 231, + 91, 215, 253, 1, 214, 68, 215, 253, 1, 247, 160, 215, 253, 1, 247, 1, + 215, 253, 1, 223, 32, 215, 253, 1, 222, 252, 215, 253, 1, 212, 101, 215, + 253, 1, 197, 132, 215, 253, 1, 197, 120, 215, 253, 1, 237, 191, 215, 253, + 1, 237, 175, 215, 253, 1, 213, 79, 215, 253, 1, 190, 190, 215, 253, 1, + 199, 49, 215, 253, 1, 238, 32, 215, 253, 1, 237, 68, 215, 253, 1, 180, + 215, 253, 1, 168, 215, 253, 1, 209, 228, 215, 253, 1, 249, 153, 215, 253, + 1, 248, 203, 215, 253, 1, 174, 215, 253, 1, 170, 215, 253, 1, 165, 215, + 253, 1, 173, 215, 253, 1, 195, 188, 215, 253, 1, 203, 165, 215, 253, 1, + 201, 175, 215, 253, 1, 188, 215, 253, 1, 140, 215, 253, 1, 219, 73, 215, + 253, 18, 3, 252, 206, 215, 253, 18, 3, 68, 215, 253, 18, 3, 223, 199, + 215, 253, 18, 3, 66, 215, 253, 18, 3, 196, 30, 215, 253, 18, 3, 117, 146, + 215, 253, 18, 3, 117, 206, 110, 215, 253, 18, 3, 117, 172, 215, 253, 18, + 3, 117, 219, 74, 215, 253, 18, 3, 71, 215, 253, 18, 3, 251, 236, 215, + 253, 18, 3, 74, 215, 253, 18, 3, 250, 163, 215, 253, 3, 251, 71, 215, + 253, 3, 195, 35, 215, 253, 3, 195, 40, 215, 253, 3, 251, 11, 215, 253, + 237, 238, 215, 253, 55, 237, 238, 215, 253, 252, 68, 56, 215, 253, 3, + 228, 127, 215, 253, 17, 191, 77, 215, 253, 17, 107, 215, 253, 17, 109, + 215, 253, 17, 138, 215, 253, 17, 134, 215, 253, 17, 149, 215, 253, 17, + 169, 215, 253, 17, 175, 215, 253, 17, 171, 215, 253, 17, 178, 104, 248, + 159, 4, 211, 42, 104, 206, 122, 248, 158, 104, 55, 248, 159, 4, 211, 42, + 104, 197, 225, 248, 159, 4, 211, 42, 104, 248, 159, 4, 55, 211, 42, 104, + 206, 122, 248, 159, 4, 211, 42, 104, 206, 122, 248, 159, 4, 55, 211, 42, + 104, 223, 93, 248, 158, 104, 223, 93, 248, 159, 4, 55, 211, 42, 104, 200, + 134, 248, 158, 104, 200, 134, 248, 159, 4, 211, 42, 104, 200, 134, 248, + 159, 4, 55, 211, 42, 104, 153, 200, 134, 248, 159, 4, 55, 211, 42, 199, + 205, 1, 65, 199, 205, 1, 252, 206, 199, 205, 1, 68, 199, 205, 1, 223, + 199, 199, 205, 1, 66, 199, 205, 1, 196, 30, 199, 205, 1, 71, 199, 205, 1, + 251, 236, 199, 205, 1, 74, 199, 205, 1, 250, 163, 199, 205, 1, 155, 199, + 205, 1, 221, 215, 199, 205, 1, 231, 240, 199, 205, 1, 231, 91, 199, 205, + 1, 214, 68, 199, 205, 1, 247, 160, 199, 205, 1, 247, 1, 199, 205, 1, 223, + 32, 199, 205, 1, 222, 252, 199, 205, 1, 212, 101, 199, 205, 1, 197, 132, + 199, 205, 1, 197, 120, 199, 205, 1, 237, 191, 199, 205, 1, 237, 175, 199, + 205, 1, 213, 79, 199, 205, 1, 190, 190, 199, 205, 1, 199, 49, 199, 205, + 1, 238, 32, 199, 205, 1, 237, 68, 199, 205, 1, 180, 199, 205, 1, 168, + 199, 205, 1, 209, 228, 199, 205, 1, 249, 153, 199, 205, 1, 248, 203, 199, + 205, 1, 174, 199, 205, 1, 170, 199, 205, 1, 165, 199, 205, 1, 173, 199, + 205, 1, 195, 188, 199, 205, 1, 203, 165, 199, 205, 1, 188, 199, 205, 1, + 140, 199, 205, 1, 206, 109, 199, 205, 3, 251, 71, 199, 205, 3, 195, 35, + 199, 205, 18, 3, 252, 206, 199, 205, 18, 3, 68, 199, 205, 18, 3, 223, + 199, 199, 205, 18, 3, 66, 199, 205, 18, 3, 196, 30, 199, 205, 18, 3, 71, + 199, 205, 18, 3, 251, 236, 199, 205, 18, 3, 74, 199, 205, 18, 3, 250, + 163, 199, 205, 3, 195, 40, 199, 205, 3, 212, 141, 199, 205, 1, 251, 14, + 221, 215, 199, 205, 252, 68, 56, 199, 205, 17, 191, 77, 199, 205, 17, + 107, 199, 205, 17, 109, 199, 205, 17, 138, 199, 205, 17, 134, 199, 205, + 17, 149, 199, 205, 17, 169, 199, 205, 17, 175, 199, 205, 17, 171, 199, + 205, 17, 178, 251, 240, 1, 155, 251, 240, 1, 221, 215, 251, 240, 1, 214, + 68, 251, 240, 1, 180, 251, 240, 1, 190, 190, 251, 240, 1, 251, 157, 190, + 190, 251, 240, 1, 168, 251, 240, 1, 209, 228, 251, 240, 1, 249, 153, 251, + 240, 1, 174, 251, 240, 1, 223, 32, 251, 240, 1, 247, 1, 251, 240, 1, 199, + 49, 251, 240, 1, 165, 251, 240, 1, 173, 251, 240, 1, 188, 251, 240, 1, + 212, 101, 251, 240, 1, 140, 251, 240, 1, 65, 251, 240, 1, 238, 32, 251, + 240, 1, 237, 68, 251, 240, 1, 231, 240, 251, 240, 1, 251, 157, 231, 240, + 251, 240, 1, 231, 91, 251, 240, 1, 248, 203, 251, 240, 1, 222, 252, 251, + 240, 1, 251, 157, 249, 153, 251, 240, 120, 3, 216, 217, 173, 251, 240, + 120, 3, 216, 217, 165, 251, 240, 120, 3, 216, 217, 219, 133, 165, 251, + 240, 18, 3, 65, 251, 240, 18, 3, 252, 206, 251, 240, 18, 3, 68, 251, 240, + 18, 3, 223, 199, 251, 240, 18, 3, 66, 251, 240, 18, 3, 196, 30, 251, 240, + 18, 3, 71, 251, 240, 18, 3, 250, 140, 251, 240, 18, 3, 74, 251, 240, 18, + 3, 251, 236, 251, 240, 18, 3, 251, 149, 251, 240, 3, 221, 143, 251, 240, + 17, 191, 77, 251, 240, 17, 107, 251, 240, 17, 109, 251, 240, 17, 138, + 251, 240, 17, 134, 251, 240, 17, 149, 251, 240, 17, 169, 251, 240, 17, + 175, 251, 240, 17, 171, 251, 240, 17, 178, 251, 240, 31, 199, 95, 251, + 240, 31, 197, 32, 251, 240, 3, 2, 205, 53, 251, 240, 3, 205, 53, 251, + 240, 3, 206, 53, 251, 240, 16, 195, 69, 251, 240, 1, 247, 160, 251, 240, + 1, 197, 132, 251, 240, 1, 197, 120, 251, 240, 1, 237, 191, 251, 240, 1, + 237, 175, 251, 240, 1, 213, 79, 251, 240, 1, 219, 73, 236, 161, 1, 65, + 236, 161, 1, 252, 206, 236, 161, 1, 68, 236, 161, 1, 223, 199, 236, 161, + 1, 66, 236, 161, 1, 196, 30, 236, 161, 1, 71, 236, 161, 1, 251, 236, 236, + 161, 1, 74, 236, 161, 1, 250, 163, 236, 161, 1, 155, 236, 161, 1, 221, + 215, 236, 161, 1, 231, 240, 236, 161, 1, 231, 91, 236, 161, 1, 214, 68, + 236, 161, 1, 247, 160, 236, 161, 1, 247, 1, 236, 161, 1, 223, 32, 236, + 161, 1, 222, 252, 236, 161, 1, 212, 101, 236, 161, 1, 197, 132, 236, 161, + 1, 197, 120, 236, 161, 1, 237, 191, 236, 161, 1, 237, 175, 236, 161, 1, + 213, 79, 236, 161, 1, 190, 190, 236, 161, 1, 199, 49, 236, 161, 1, 238, + 32, 236, 161, 1, 237, 68, 236, 161, 1, 180, 236, 161, 1, 168, 236, 161, + 1, 209, 228, 236, 161, 1, 249, 153, 236, 161, 1, 248, 203, 236, 161, 1, + 174, 236, 161, 1, 170, 236, 161, 1, 165, 236, 161, 1, 173, 236, 161, 1, + 195, 188, 236, 161, 1, 203, 165, 236, 161, 1, 201, 175, 236, 161, 1, 188, + 236, 161, 1, 140, 236, 161, 1, 206, 109, 236, 161, 18, 3, 252, 206, 236, + 161, 18, 3, 68, 236, 161, 18, 3, 223, 199, 236, 161, 18, 3, 66, 236, 161, + 18, 3, 196, 30, 236, 161, 18, 3, 117, 146, 236, 161, 18, 3, 117, 206, + 110, 236, 161, 18, 3, 71, 236, 161, 18, 3, 251, 236, 236, 161, 18, 3, 74, + 236, 161, 18, 3, 250, 163, 236, 161, 3, 251, 71, 236, 161, 3, 195, 35, + 236, 161, 3, 195, 40, 236, 161, 3, 212, 141, 236, 161, 252, 68, 56, 193, + 156, 242, 253, 6, 1, 214, 67, 193, 156, 242, 253, 6, 1, 65, 193, 156, + 242, 253, 6, 1, 193, 86, 193, 156, 242, 253, 6, 1, 191, 225, 193, 156, + 242, 253, 6, 1, 170, 193, 156, 242, 253, 6, 1, 192, 12, 193, 156, 242, + 253, 6, 1, 223, 199, 193, 156, 242, 253, 6, 1, 196, 30, 193, 156, 242, + 253, 6, 1, 71, 193, 156, 242, 253, 6, 1, 74, 193, 156, 242, 253, 6, 1, + 251, 122, 193, 156, 242, 253, 6, 1, 231, 240, 193, 156, 242, 253, 6, 1, + 221, 67, 193, 156, 242, 253, 6, 1, 234, 66, 193, 156, 242, 253, 6, 1, + 191, 204, 193, 156, 242, 253, 6, 1, 196, 160, 193, 156, 242, 253, 6, 1, + 234, 85, 193, 156, 242, 253, 6, 1, 211, 154, 193, 156, 242, 253, 6, 1, + 197, 127, 193, 156, 242, 253, 6, 1, 212, 127, 193, 156, 242, 253, 6, 1, + 238, 32, 193, 156, 242, 253, 6, 1, 250, 182, 193, 156, 242, 253, 6, 1, + 251, 149, 193, 156, 242, 253, 6, 1, 248, 10, 193, 156, 242, 253, 6, 1, + 208, 165, 193, 156, 242, 253, 6, 1, 229, 115, 193, 156, 242, 253, 6, 1, + 229, 3, 193, 156, 242, 253, 6, 1, 228, 185, 193, 156, 242, 253, 6, 1, + 230, 19, 193, 156, 242, 253, 6, 1, 201, 126, 193, 156, 242, 253, 6, 1, + 202, 193, 193, 156, 242, 253, 6, 1, 195, 25, 193, 156, 242, 253, 2, 1, + 214, 67, 193, 156, 242, 253, 2, 1, 65, 193, 156, 242, 253, 2, 1, 193, 86, + 193, 156, 242, 253, 2, 1, 191, 225, 193, 156, 242, 253, 2, 1, 170, 193, + 156, 242, 253, 2, 1, 192, 12, 193, 156, 242, 253, 2, 1, 223, 199, 193, + 156, 242, 253, 2, 1, 196, 30, 193, 156, 242, 253, 2, 1, 71, 193, 156, + 242, 253, 2, 1, 74, 193, 156, 242, 253, 2, 1, 251, 122, 193, 156, 242, + 253, 2, 1, 231, 240, 193, 156, 242, 253, 2, 1, 221, 67, 193, 156, 242, + 253, 2, 1, 234, 66, 193, 156, 242, 253, 2, 1, 191, 204, 193, 156, 242, + 253, 2, 1, 196, 160, 193, 156, 242, 253, 2, 1, 234, 85, 193, 156, 242, + 253, 2, 1, 211, 154, 193, 156, 242, 253, 2, 1, 197, 127, 193, 156, 242, + 253, 2, 1, 212, 127, 193, 156, 242, 253, 2, 1, 238, 32, 193, 156, 242, + 253, 2, 1, 250, 182, 193, 156, 242, 253, 2, 1, 251, 149, 193, 156, 242, + 253, 2, 1, 248, 10, 193, 156, 242, 253, 2, 1, 208, 165, 193, 156, 242, + 253, 2, 1, 229, 115, 193, 156, 242, 253, 2, 1, 229, 3, 193, 156, 242, + 253, 2, 1, 228, 185, 193, 156, 242, 253, 2, 1, 230, 19, 193, 156, 242, + 253, 2, 1, 201, 126, 193, 156, 242, 253, 2, 1, 202, 193, 193, 156, 242, + 253, 2, 1, 195, 25, 193, 156, 242, 253, 17, 191, 77, 193, 156, 242, 253, + 17, 107, 193, 156, 242, 253, 17, 109, 193, 156, 242, 253, 17, 138, 193, + 156, 242, 253, 17, 134, 193, 156, 242, 253, 17, 149, 193, 156, 242, 253, + 17, 169, 193, 156, 242, 253, 17, 175, 193, 156, 242, 253, 17, 171, 193, + 156, 242, 253, 17, 178, 193, 156, 242, 253, 31, 199, 95, 193, 156, 242, + 253, 31, 197, 32, 193, 156, 242, 253, 31, 198, 249, 193, 156, 242, 253, + 31, 232, 135, 193, 156, 242, 253, 31, 233, 15, 193, 156, 242, 253, 31, + 202, 120, 193, 156, 242, 253, 31, 203, 241, 193, 156, 242, 253, 31, 234, + 153, 193, 156, 242, 253, 31, 213, 169, 193, 156, 242, 253, 211, 113, 236, + 209, 251, 209, 1, 65, 236, 209, 251, 209, 1, 252, 206, 236, 209, 251, + 209, 1, 68, 236, 209, 251, 209, 1, 223, 199, 236, 209, 251, 209, 1, 66, + 236, 209, 251, 209, 1, 196, 30, 236, 209, 251, 209, 1, 71, 236, 209, 251, + 209, 1, 74, 236, 209, 251, 209, 1, 155, 236, 209, 251, 209, 1, 221, 215, + 236, 209, 251, 209, 1, 231, 240, 236, 209, 251, 209, 1, 231, 91, 236, + 209, 251, 209, 1, 214, 68, 236, 209, 251, 209, 1, 247, 160, 236, 209, + 251, 209, 1, 247, 1, 236, 209, 251, 209, 1, 223, 32, 236, 209, 251, 209, + 1, 212, 101, 236, 209, 251, 209, 1, 197, 132, 236, 209, 251, 209, 1, 237, + 191, 236, 209, 251, 209, 1, 237, 175, 236, 209, 251, 209, 1, 213, 79, + 236, 209, 251, 209, 1, 190, 190, 236, 209, 251, 209, 1, 199, 49, 236, + 209, 251, 209, 1, 238, 32, 236, 209, 251, 209, 1, 237, 68, 236, 209, 251, + 209, 1, 180, 236, 209, 251, 209, 1, 168, 236, 209, 251, 209, 1, 209, 228, + 236, 209, 251, 209, 1, 249, 153, 236, 209, 251, 209, 1, 248, 203, 236, + 209, 251, 209, 1, 174, 236, 209, 251, 209, 1, 170, 236, 209, 251, 209, 1, + 191, 175, 236, 209, 251, 209, 1, 165, 236, 209, 251, 209, 1, 173, 236, + 209, 251, 209, 1, 195, 188, 236, 209, 251, 209, 1, 203, 165, 236, 209, + 251, 209, 1, 201, 175, 236, 209, 251, 209, 1, 188, 236, 209, 251, 209, 1, + 140, 236, 209, 251, 209, 1, 219, 73, 236, 209, 251, 209, 1, 191, 123, + 236, 209, 251, 209, 18, 3, 252, 206, 236, 209, 251, 209, 18, 3, 68, 236, + 209, 251, 209, 18, 3, 223, 199, 236, 209, 251, 209, 18, 3, 66, 236, 209, + 251, 209, 18, 3, 196, 30, 236, 209, 251, 209, 18, 3, 71, 236, 209, 251, + 209, 18, 3, 251, 236, 236, 209, 251, 209, 18, 3, 74, 236, 209, 251, 209, + 3, 251, 71, 236, 209, 251, 209, 3, 247, 119, 236, 209, 251, 209, 3, 230, + 72, 236, 209, 251, 209, 195, 40, 236, 209, 251, 209, 208, 227, 214, 214, + 56, 236, 209, 251, 209, 216, 217, 170, 236, 209, 251, 209, 89, 165, 236, + 209, 251, 209, 216, 217, 165, 236, 209, 251, 209, 3, 212, 141, 236, 209, + 251, 209, 55, 237, 238, 236, 209, 251, 209, 231, 204, 233, 3, 236, 209, + 251, 209, 234, 95, 79, 199, 54, 77, 236, 209, 251, 209, 17, 191, 77, 236, + 209, 251, 209, 17, 107, 236, 209, 251, 209, 17, 109, 236, 209, 251, 209, + 17, 138, 236, 209, 251, 209, 17, 134, 236, 209, 251, 209, 17, 149, 236, + 209, 251, 209, 17, 169, 236, 209, 251, 209, 17, 175, 236, 209, 251, 209, + 17, 171, 236, 209, 251, 209, 17, 178, 214, 223, 1, 65, 214, 223, 1, 252, + 206, 214, 223, 1, 68, 214, 223, 1, 223, 199, 214, 223, 1, 66, 214, 223, + 1, 196, 30, 214, 223, 1, 117, 146, 214, 223, 1, 117, 206, 110, 214, 223, + 1, 71, 214, 223, 1, 251, 236, 214, 223, 1, 74, 214, 223, 1, 250, 163, + 214, 223, 1, 155, 214, 223, 1, 221, 215, 214, 223, 1, 231, 240, 214, 223, + 1, 231, 91, 214, 223, 1, 214, 68, 214, 223, 1, 247, 160, 214, 223, 1, + 247, 1, 214, 223, 1, 223, 32, 214, 223, 1, 222, 252, 214, 223, 1, 212, + 101, 214, 223, 1, 197, 132, 214, 223, 1, 197, 120, 214, 223, 1, 237, 191, + 214, 223, 1, 237, 175, 214, 223, 1, 213, 79, 214, 223, 1, 190, 190, 214, + 223, 1, 199, 49, 214, 223, 1, 238, 32, 214, 223, 1, 237, 68, 214, 223, 1, + 180, 214, 223, 1, 168, 214, 223, 1, 209, 228, 214, 223, 1, 249, 153, 214, + 223, 1, 248, 203, 214, 223, 1, 174, 214, 223, 1, 170, 214, 223, 1, 165, + 214, 223, 1, 173, 214, 223, 1, 195, 188, 214, 223, 1, 203, 165, 214, 223, + 1, 201, 175, 214, 223, 1, 188, 214, 223, 1, 140, 214, 223, 1, 219, 73, + 214, 223, 1, 206, 109, 214, 223, 18, 3, 252, 206, 214, 223, 18, 3, 68, + 214, 223, 18, 3, 223, 199, 214, 223, 18, 3, 66, 214, 223, 18, 3, 196, 30, + 214, 223, 18, 3, 117, 146, 214, 223, 18, 3, 117, 206, 110, 214, 223, 18, + 3, 71, 214, 223, 18, 3, 251, 236, 214, 223, 18, 3, 74, 214, 223, 18, 3, + 250, 163, 214, 223, 3, 251, 71, 214, 223, 3, 195, 35, 214, 223, 3, 195, + 40, 214, 223, 3, 250, 145, 214, 223, 3, 202, 210, 214, 223, 229, 227, + 214, 223, 18, 3, 208, 207, 71, 191, 106, 51, 1, 65, 191, 106, 51, 18, 3, + 68, 191, 106, 51, 18, 3, 196, 152, 191, 106, 51, 18, 3, 66, 191, 106, 51, + 18, 3, 71, 191, 106, 51, 18, 3, 211, 151, 191, 106, 51, 18, 3, 74, 191, + 106, 51, 18, 3, 251, 236, 191, 106, 51, 18, 3, 250, 163, 191, 106, 51, + 18, 3, 207, 18, 68, 191, 106, 51, 18, 219, 198, 77, 191, 106, 51, 1, 155, + 191, 106, 51, 1, 221, 215, 191, 106, 51, 1, 231, 240, 191, 106, 51, 1, + 231, 91, 191, 106, 51, 1, 214, 68, 191, 106, 51, 1, 247, 160, 191, 106, + 51, 1, 247, 1, 191, 106, 51, 1, 223, 32, 191, 106, 51, 1, 212, 101, 191, + 106, 51, 1, 197, 132, 191, 106, 51, 1, 197, 120, 191, 106, 51, 1, 237, + 191, 191, 106, 51, 1, 237, 175, 191, 106, 51, 1, 213, 79, 191, 106, 51, + 1, 190, 190, 191, 106, 51, 1, 199, 49, 191, 106, 51, 1, 238, 32, 191, + 106, 51, 1, 237, 68, 191, 106, 51, 1, 180, 191, 106, 51, 1, 168, 191, + 106, 51, 1, 209, 228, 191, 106, 51, 1, 249, 153, 191, 106, 51, 1, 248, + 203, 191, 106, 51, 1, 174, 191, 106, 51, 1, 197, 168, 191, 106, 51, 1, + 197, 157, 191, 106, 51, 1, 235, 35, 191, 106, 51, 1, 235, 29, 191, 106, + 51, 1, 191, 71, 191, 106, 51, 1, 191, 123, 191, 106, 51, 1, 255, 214, + 191, 106, 51, 1, 170, 191, 106, 51, 1, 165, 191, 106, 51, 1, 173, 191, + 106, 51, 1, 195, 188, 191, 106, 51, 1, 203, 165, 191, 106, 51, 1, 201, + 175, 191, 106, 51, 1, 188, 191, 106, 51, 1, 140, 191, 106, 51, 1, 220, + 246, 191, 106, 51, 53, 120, 77, 191, 106, 51, 3, 195, 40, 191, 106, 51, + 3, 247, 119, 191, 106, 51, 3, 247, 120, 4, 211, 42, 191, 106, 51, 3, 247, + 122, 4, 211, 42, 191, 106, 51, 3, 251, 71, 191, 106, 51, 3, 195, 35, 191, + 106, 51, 242, 201, 1, 165, 191, 106, 51, 242, 202, 1, 170, 191, 106, 51, + 242, 202, 1, 165, 191, 106, 51, 242, 202, 1, 173, 191, 106, 51, 242, 202, + 1, 195, 188, 191, 106, 51, 89, 229, 236, 77, 191, 106, 51, 242, 215, 229, + 236, 77, 191, 106, 51, 87, 197, 152, 191, 106, 51, 87, 203, 157, 191, + 106, 51, 87, 55, 203, 157, 191, 106, 51, 87, 179, 197, 152, 191, 106, 51, + 89, 235, 130, 229, 236, 77, 191, 106, 51, 242, 215, 235, 130, 229, 236, + 77, 191, 106, 51, 200, 238, 201, 251, 1, 65, 201, 251, 18, 3, 68, 201, + 251, 18, 3, 196, 152, 201, 251, 18, 3, 66, 201, 251, 18, 3, 71, 201, 251, + 18, 3, 74, 201, 251, 18, 3, 211, 151, 201, 251, 18, 3, 251, 236, 201, + 251, 18, 3, 250, 163, 201, 251, 18, 3, 117, 146, 201, 251, 18, 3, 117, + 172, 201, 251, 18, 219, 198, 77, 201, 251, 1, 155, 201, 251, 1, 221, 215, + 201, 251, 1, 231, 240, 201, 251, 1, 231, 91, 201, 251, 1, 214, 68, 201, + 251, 1, 247, 160, 201, 251, 1, 247, 1, 201, 251, 1, 223, 32, 201, 251, 1, + 222, 252, 201, 251, 1, 212, 101, 201, 251, 1, 197, 132, 201, 251, 1, 197, + 120, 201, 251, 1, 237, 191, 201, 251, 1, 237, 175, 201, 251, 1, 213, 79, + 201, 251, 1, 190, 190, 201, 251, 1, 199, 49, 201, 251, 1, 238, 32, 201, + 251, 1, 237, 68, 201, 251, 1, 180, 201, 251, 1, 168, 201, 251, 1, 209, + 228, 201, 251, 1, 249, 153, 201, 251, 1, 248, 203, 201, 251, 1, 174, 201, + 251, 1, 197, 168, 201, 251, 1, 197, 157, 201, 251, 1, 235, 35, 201, 251, + 1, 191, 71, 201, 251, 1, 191, 123, 201, 251, 1, 255, 214, 201, 251, 1, + 170, 201, 251, 1, 165, 201, 251, 1, 173, 201, 251, 1, 195, 188, 201, 251, + 1, 203, 165, 201, 251, 1, 201, 175, 201, 251, 1, 188, 201, 251, 1, 140, + 201, 251, 1, 220, 246, 201, 251, 3, 222, 237, 201, 251, 3, 196, 75, 201, + 251, 242, 201, 1, 165, 201, 251, 242, 201, 1, 173, 201, 251, 242, 201, 1, + 203, 165, 201, 251, 242, 201, 1, 188, 201, 251, 53, 120, 3, 232, 51, 201, + 251, 53, 120, 3, 222, 152, 201, 251, 53, 120, 3, 214, 70, 201, 251, 53, + 120, 3, 238, 127, 201, 251, 53, 120, 3, 215, 61, 201, 251, 53, 120, 3, + 250, 120, 201, 251, 53, 120, 3, 218, 168, 201, 251, 53, 120, 3, 146, 201, + 251, 53, 120, 3, 172, 201, 251, 53, 120, 3, 203, 167, 201, 251, 53, 120, + 3, 206, 8, 201, 251, 53, 120, 3, 255, 214, 201, 251, 3, 251, 71, 201, + 251, 3, 195, 35, 201, 251, 231, 153, 77, 201, 251, 200, 238, 201, 251, + 87, 197, 152, 201, 251, 87, 203, 157, 201, 251, 87, 55, 203, 157, 201, + 251, 87, 209, 79, 201, 251, 229, 236, 87, 4, 215, 206, 23, 200, 199, 23, + 197, 225, 232, 210, 201, 251, 229, 236, 87, 4, 215, 206, 23, 200, 199, + 23, 232, 210, 201, 251, 229, 236, 87, 4, 215, 206, 23, 200, 198, 201, + 251, 199, 81, 217, 55, 201, 251, 199, 81, 217, 54, 21, 22, 214, 207, 229, + 158, 21, 22, 214, 207, 229, 130, 21, 22, 214, 207, 229, 23, 21, 22, 214, + 207, 228, 252, 21, 22, 214, 207, 140, 21, 22, 214, 207, 230, 91, 21, 22, + 214, 207, 203, 15, 21, 22, 214, 207, 203, 14, 21, 22, 214, 207, 203, 11, + 21, 22, 214, 207, 203, 10, 21, 22, 214, 207, 203, 17, 21, 22, 214, 207, + 203, 16, 21, 22, 201, 237, 21, 22, 201, 224, 21, 22, 201, 207, 21, 22, + 201, 249, 210, 81, 243, 15, 230, 3, 1, 168, 210, 81, 243, 15, 230, 3, 1, + 155, 210, 81, 243, 15, 230, 3, 1, 173, 210, 81, 243, 15, 230, 3, 1, 174, + 210, 81, 243, 15, 230, 3, 1, 238, 32, 210, 81, 243, 15, 230, 3, 1, 191, + 123, 210, 81, 243, 15, 230, 3, 1, 195, 188, 210, 81, 243, 15, 230, 3, 1, + 214, 68, 210, 81, 243, 15, 230, 3, 1, 140, 210, 81, 243, 15, 230, 3, 1, + 231, 240, 210, 81, 243, 15, 230, 3, 1, 221, 215, 210, 81, 243, 15, 230, + 3, 1, 188, 210, 81, 243, 15, 230, 3, 1, 249, 153, 210, 81, 243, 15, 230, + 3, 1, 247, 160, 210, 81, 243, 15, 230, 3, 1, 190, 190, 210, 81, 243, 15, + 230, 3, 1, 199, 49, 210, 81, 243, 15, 230, 3, 1, 180, 210, 81, 243, 15, + 230, 3, 1, 209, 228, 210, 81, 243, 15, 230, 3, 1, 165, 210, 81, 243, 15, + 230, 3, 1, 233, 109, 210, 81, 243, 15, 230, 3, 1, 247, 1, 210, 81, 243, + 15, 230, 3, 1, 65, 210, 81, 243, 15, 230, 3, 1, 71, 210, 81, 243, 15, + 230, 3, 1, 68, 210, 81, 243, 15, 230, 3, 1, 74, 210, 81, 243, 15, 230, 3, + 1, 66, 210, 81, 243, 15, 230, 3, 1, 196, 168, 210, 81, 243, 15, 230, 3, + 1, 228, 35, 210, 81, 243, 15, 230, 3, 1, 53, 210, 236, 210, 81, 243, 15, + 230, 3, 1, 53, 222, 152, 210, 81, 243, 15, 230, 3, 1, 53, 200, 43, 210, + 81, 243, 15, 230, 3, 1, 53, 218, 168, 210, 81, 243, 15, 230, 3, 1, 53, + 215, 61, 210, 81, 243, 15, 230, 3, 1, 53, 172, 210, 81, 243, 15, 230, 3, + 1, 53, 193, 224, 210, 81, 243, 15, 230, 3, 1, 53, 214, 70, 210, 81, 243, + 15, 230, 3, 1, 53, 192, 159, 210, 81, 243, 15, 230, 3, 206, 180, 163, + 219, 19, 210, 81, 243, 15, 230, 3, 206, 180, 198, 79, 210, 81, 243, 15, + 230, 3, 205, 138, 231, 11, 201, 63, 210, 81, 243, 15, 230, 3, 206, 180, + 163, 179, 232, 255, 210, 81, 243, 15, 230, 3, 206, 180, 163, 232, 255, + 210, 81, 243, 15, 230, 3, 205, 138, 231, 11, 201, 64, 232, 255, 210, 81, + 243, 15, 230, 3, 205, 138, 163, 219, 19, 210, 81, 243, 15, 230, 3, 205, + 138, 198, 79, 210, 81, 243, 15, 230, 3, 205, 138, 163, 179, 232, 255, + 210, 81, 243, 15, 230, 3, 205, 138, 163, 232, 255, 210, 81, 243, 15, 230, + 3, 216, 85, 198, 79, 210, 81, 243, 15, 230, 3, 231, 11, 201, 64, 195, + 167, 210, 81, 243, 15, 230, 3, 216, 85, 163, 179, 232, 255, 210, 81, 243, + 15, 230, 3, 216, 85, 163, 232, 255, 210, 81, 243, 15, 230, 3, 218, 239, + 163, 219, 19, 210, 81, 243, 15, 230, 3, 218, 239, 198, 79, 210, 81, 243, + 15, 230, 3, 231, 11, 201, 63, 210, 81, 243, 15, 230, 3, 218, 239, 163, + 179, 232, 255, 210, 81, 243, 15, 230, 3, 218, 239, 163, 232, 255, 210, + 81, 243, 15, 230, 3, 231, 11, 201, 64, 232, 255, 100, 229, 236, 77, 100, + 229, 236, 87, 4, 229, 227, 100, 3, 248, 199, 100, 3, 248, 200, 4, 102, + 100, 3, 233, 205, 248, 199, 100, 3, 233, 205, 248, 200, 4, 102, 100, 3, + 193, 102, 232, 225, 248, 199, 100, 3, 193, 102, 213, 174, 248, 199, 100, + 3, 207, 18, 213, 174, 248, 199, 100, 3, 216, 43, 248, 201, 1, 65, 248, + 201, 1, 252, 206, 248, 201, 1, 68, 248, 201, 1, 223, 199, 248, 201, 1, + 66, 248, 201, 1, 196, 30, 248, 201, 1, 117, 146, 248, 201, 1, 117, 206, + 110, 248, 201, 1, 117, 172, 248, 201, 1, 71, 248, 201, 1, 251, 236, 248, + 201, 1, 74, 248, 201, 1, 250, 163, 248, 201, 1, 155, 248, 201, 1, 221, + 215, 248, 201, 1, 231, 240, 248, 201, 1, 231, 91, 248, 201, 1, 214, 68, + 248, 201, 1, 247, 160, 248, 201, 1, 247, 1, 248, 201, 1, 223, 32, 248, + 201, 1, 222, 252, 248, 201, 1, 212, 101, 248, 201, 1, 197, 132, 248, 201, + 1, 197, 120, 248, 201, 1, 237, 191, 248, 201, 1, 237, 175, 248, 201, 1, + 213, 79, 248, 201, 1, 190, 190, 248, 201, 1, 199, 49, 248, 201, 1, 238, + 32, 248, 201, 1, 237, 68, 248, 201, 1, 180, 248, 201, 1, 168, 248, 201, + 1, 209, 228, 248, 201, 1, 249, 153, 248, 201, 1, 248, 203, 248, 201, 1, + 174, 248, 201, 1, 170, 248, 201, 1, 165, 248, 201, 1, 173, 248, 201, 1, + 195, 188, 248, 201, 1, 203, 165, 248, 201, 1, 201, 175, 248, 201, 1, 188, + 248, 201, 1, 140, 248, 201, 18, 3, 252, 206, 248, 201, 18, 3, 68, 248, + 201, 18, 3, 223, 199, 248, 201, 18, 3, 66, 248, 201, 18, 3, 196, 30, 248, + 201, 18, 3, 117, 146, 248, 201, 18, 3, 117, 206, 110, 248, 201, 18, 3, + 117, 172, 248, 201, 18, 3, 71, 248, 201, 18, 3, 251, 236, 248, 201, 18, + 3, 74, 248, 201, 18, 3, 250, 163, 248, 201, 3, 247, 119, 248, 201, 3, + 251, 71, 248, 201, 3, 195, 35, 248, 201, 3, 195, 40, 248, 201, 3, 250, + 145, 248, 201, 237, 238, 248, 201, 55, 237, 238, 248, 201, 193, 23, 204, + 10, 248, 201, 231, 204, 233, 2, 248, 201, 231, 204, 233, 1, 248, 201, 17, + 191, 77, 248, 201, 17, 107, 248, 201, 17, 109, 248, 201, 17, 138, 248, + 201, 17, 134, 248, 201, 17, 149, 248, 201, 17, 169, 248, 201, 17, 175, + 248, 201, 17, 171, 248, 201, 17, 178, 248, 201, 31, 107, 248, 201, 31, + 109, 248, 201, 31, 138, 248, 201, 31, 134, 248, 201, 31, 149, 248, 201, + 31, 169, 248, 201, 31, 175, 248, 201, 31, 171, 248, 201, 31, 178, 248, + 201, 31, 199, 95, 248, 201, 31, 197, 32, 248, 201, 31, 198, 249, 248, + 201, 31, 232, 135, 248, 201, 31, 233, 15, 248, 201, 31, 202, 120, 248, + 201, 31, 203, 241, 248, 201, 31, 234, 153, 248, 201, 31, 213, 169, 248, + 201, 228, 139, 196, 91, 77, 217, 57, 229, 236, 77, 217, 57, 87, 203, 157, + 217, 57, 1, 155, 217, 57, 1, 221, 215, 217, 57, 1, 231, 240, 217, 57, 1, + 214, 68, 217, 57, 1, 247, 160, 217, 57, 1, 247, 1, 217, 57, 1, 223, 32, + 217, 57, 1, 212, 101, 217, 57, 1, 190, 190, 217, 57, 1, 199, 49, 217, 57, + 1, 238, 32, 217, 57, 1, 180, 217, 57, 1, 168, 217, 57, 1, 209, 228, 217, + 57, 1, 249, 153, 217, 57, 1, 174, 217, 57, 1, 197, 168, 217, 57, 1, 197, + 157, 217, 57, 1, 235, 35, 217, 57, 1, 193, 190, 217, 57, 1, 191, 71, 217, + 57, 1, 191, 123, 217, 57, 1, 255, 214, 217, 57, 1, 170, 217, 57, 1, 165, + 217, 57, 1, 173, 217, 57, 1, 203, 165, 217, 57, 1, 188, 217, 57, 1, 140, + 217, 57, 1, 65, 217, 57, 200, 239, 1, 155, 217, 57, 200, 239, 1, 221, + 215, 217, 57, 200, 239, 1, 231, 240, 217, 57, 200, 239, 1, 214, 68, 217, + 57, 200, 239, 1, 247, 160, 217, 57, 200, 239, 1, 247, 1, 217, 57, 200, + 239, 1, 223, 32, 217, 57, 200, 239, 1, 212, 101, 217, 57, 200, 239, 1, + 190, 190, 217, 57, 200, 239, 1, 199, 49, 217, 57, 200, 239, 1, 238, 32, + 217, 57, 200, 239, 1, 180, 217, 57, 200, 239, 1, 168, 217, 57, 200, 239, + 1, 209, 228, 217, 57, 200, 239, 1, 249, 153, 217, 57, 200, 239, 1, 174, + 217, 57, 200, 239, 1, 197, 168, 217, 57, 200, 239, 1, 197, 157, 217, 57, + 200, 239, 1, 235, 35, 217, 57, 200, 239, 1, 193, 190, 217, 57, 200, 239, + 1, 191, 71, 217, 57, 200, 239, 1, 191, 123, 217, 57, 200, 239, 1, 170, + 217, 57, 200, 239, 1, 165, 217, 57, 200, 239, 1, 173, 217, 57, 200, 239, + 1, 203, 165, 217, 57, 200, 239, 1, 188, 217, 57, 200, 239, 1, 140, 217, + 57, 200, 239, 1, 65, 217, 57, 18, 3, 252, 206, 217, 57, 18, 3, 68, 217, + 57, 18, 3, 66, 217, 57, 18, 3, 71, 217, 57, 18, 3, 74, 217, 57, 3, 251, + 71, 217, 57, 3, 247, 119, 217, 41, 129, 1, 65, 217, 41, 129, 1, 252, 206, + 217, 41, 129, 1, 68, 217, 41, 129, 1, 223, 199, 217, 41, 129, 1, 66, 217, + 41, 129, 1, 196, 30, 217, 41, 129, 1, 71, 217, 41, 129, 1, 251, 236, 217, + 41, 129, 1, 74, 217, 41, 129, 1, 250, 163, 217, 41, 129, 1, 155, 217, 41, + 129, 1, 221, 215, 217, 41, 129, 1, 231, 240, 217, 41, 129, 1, 231, 91, + 217, 41, 129, 1, 214, 68, 217, 41, 129, 1, 247, 160, 217, 41, 129, 1, + 247, 1, 217, 41, 129, 1, 223, 32, 217, 41, 129, 1, 222, 252, 217, 41, + 129, 1, 212, 101, 217, 41, 129, 1, 197, 132, 217, 41, 129, 1, 197, 120, + 217, 41, 129, 1, 237, 191, 217, 41, 129, 1, 237, 175, 217, 41, 129, 1, + 213, 79, 217, 41, 129, 1, 190, 190, 217, 41, 129, 1, 199, 49, 217, 41, + 129, 1, 238, 32, 217, 41, 129, 1, 237, 68, 217, 41, 129, 1, 180, 217, 41, + 129, 1, 168, 217, 41, 129, 1, 209, 228, 217, 41, 129, 1, 249, 153, 217, + 41, 129, 1, 248, 203, 217, 41, 129, 1, 174, 217, 41, 129, 1, 170, 217, + 41, 129, 1, 165, 217, 41, 129, 1, 173, 217, 41, 129, 1, 195, 188, 217, + 41, 129, 1, 203, 165, 217, 41, 129, 1, 201, 175, 217, 41, 129, 1, 188, + 217, 41, 129, 1, 140, 217, 41, 129, 1, 219, 73, 217, 41, 129, 1, 220, + 246, 217, 41, 129, 1, 222, 202, 217, 41, 129, 1, 198, 26, 217, 41, 129, + 18, 3, 252, 206, 217, 41, 129, 18, 3, 68, 217, 41, 129, 18, 3, 223, 199, + 217, 41, 129, 18, 3, 66, 217, 41, 129, 18, 3, 196, 30, 217, 41, 129, 18, + 3, 117, 146, 217, 41, 129, 18, 3, 71, 217, 41, 129, 18, 3, 251, 236, 217, + 41, 129, 18, 3, 74, 217, 41, 129, 18, 3, 250, 163, 217, 41, 129, 3, 251, + 71, 217, 41, 129, 3, 195, 35, 217, 41, 129, 3, 212, 141, 217, 41, 129, 3, + 247, 121, 217, 41, 129, 3, 230, 72, 217, 41, 129, 195, 40, 217, 41, 129, + 207, 44, 217, 41, 129, 207, 181, 217, 41, 129, 17, 191, 77, 217, 41, 129, + 17, 107, 217, 41, 129, 17, 109, 217, 41, 129, 17, 138, 217, 41, 129, 17, + 134, 217, 41, 129, 17, 149, 217, 41, 129, 17, 169, 217, 41, 129, 17, 175, + 217, 41, 129, 17, 171, 217, 41, 129, 17, 178, 230, 157, 129, 1, 65, 230, + 157, 129, 1, 252, 206, 230, 157, 129, 1, 68, 230, 157, 129, 1, 223, 199, + 230, 157, 129, 1, 66, 230, 157, 129, 1, 196, 30, 230, 157, 129, 1, 234, + 188, 230, 157, 129, 1, 251, 236, 230, 157, 129, 1, 211, 87, 230, 157, + 129, 1, 250, 163, 230, 157, 129, 1, 170, 230, 157, 129, 1, 195, 188, 230, + 157, 129, 1, 249, 153, 230, 157, 129, 1, 248, 203, 230, 157, 129, 1, 174, + 230, 157, 129, 1, 155, 230, 157, 129, 1, 221, 215, 230, 157, 129, 1, 190, + 190, 230, 157, 129, 1, 199, 49, 230, 157, 129, 1, 173, 230, 157, 129, 1, + 231, 240, 230, 157, 129, 1, 231, 91, 230, 157, 129, 1, 238, 32, 230, 157, + 129, 1, 237, 68, 230, 157, 129, 1, 180, 230, 157, 129, 1, 247, 160, 230, + 157, 129, 1, 247, 1, 230, 157, 129, 1, 197, 132, 230, 157, 129, 1, 197, + 120, 230, 157, 129, 1, 219, 73, 230, 157, 129, 1, 223, 32, 230, 157, 129, + 1, 222, 252, 230, 157, 129, 1, 237, 191, 230, 157, 129, 1, 237, 175, 230, + 157, 129, 1, 214, 68, 230, 157, 129, 1, 168, 230, 157, 129, 1, 209, 228, + 230, 157, 129, 1, 140, 230, 157, 129, 1, 165, 230, 157, 129, 1, 188, 230, + 157, 129, 18, 3, 252, 206, 230, 157, 129, 18, 3, 68, 230, 157, 129, 18, + 3, 223, 199, 230, 157, 129, 18, 3, 66, 230, 157, 129, 18, 3, 196, 30, + 230, 157, 129, 18, 3, 234, 188, 230, 157, 129, 18, 3, 251, 236, 230, 157, + 129, 18, 3, 211, 87, 230, 157, 129, 18, 3, 250, 163, 230, 157, 129, 3, + 251, 71, 230, 157, 129, 3, 195, 35, 230, 157, 129, 195, 40, 230, 157, + 129, 211, 113, 230, 157, 129, 17, 191, 77, 230, 157, 129, 17, 107, 230, + 157, 129, 17, 109, 230, 157, 129, 17, 138, 230, 157, 129, 17, 134, 230, + 157, 129, 17, 149, 230, 157, 129, 17, 169, 230, 157, 129, 17, 175, 230, + 157, 129, 17, 171, 230, 157, 129, 17, 178, 217, 102, 1, 155, 217, 102, 1, + 231, 240, 217, 102, 1, 214, 68, 217, 102, 1, 168, 217, 102, 1, 249, 153, + 217, 102, 1, 174, 217, 102, 1, 190, 190, 217, 102, 1, 238, 32, 217, 102, + 1, 180, 217, 102, 1, 247, 160, 217, 102, 1, 223, 32, 217, 102, 1, 212, + 101, 217, 102, 1, 170, 217, 102, 1, 165, 217, 102, 1, 173, 217, 102, 1, + 195, 188, 217, 102, 1, 188, 217, 102, 1, 65, 217, 102, 251, 118, 217, + 102, 18, 3, 68, 217, 102, 18, 3, 66, 217, 102, 18, 3, 71, 217, 102, 18, + 3, 74, 217, 102, 210, 94, 217, 102, 234, 95, 79, 205, 53, 222, 33, 3, + 247, 119, 222, 33, 3, 251, 71, 222, 33, 3, 207, 44, 222, 33, 3, 195, 35, + 222, 33, 1, 65, 222, 33, 1, 252, 206, 222, 33, 1, 68, 222, 33, 1, 223, + 199, 222, 33, 1, 66, 222, 33, 1, 196, 30, 222, 33, 1, 117, 146, 222, 33, + 1, 117, 206, 110, 222, 33, 1, 117, 172, 222, 33, 1, 117, 219, 74, 222, + 33, 1, 71, 222, 33, 1, 251, 236, 222, 33, 1, 74, 222, 33, 1, 155, 222, + 33, 1, 221, 215, 222, 33, 1, 231, 240, 222, 33, 1, 231, 91, 222, 33, 1, + 214, 68, 222, 33, 1, 247, 160, 222, 33, 1, 247, 1, 222, 33, 1, 223, 32, + 222, 33, 1, 222, 252, 222, 33, 1, 212, 101, 222, 33, 1, 197, 132, 222, + 33, 1, 197, 120, 222, 33, 1, 237, 191, 222, 33, 1, 237, 175, 222, 33, 1, + 213, 79, 222, 33, 1, 190, 190, 222, 33, 1, 199, 49, 222, 33, 1, 238, 32, + 222, 33, 1, 237, 68, 222, 33, 1, 180, 222, 33, 1, 168, 222, 33, 1, 209, + 228, 222, 33, 1, 249, 153, 222, 33, 1, 248, 203, 222, 33, 1, 174, 222, + 33, 1, 170, 222, 33, 1, 165, 222, 33, 1, 173, 222, 33, 1, 193, 190, 222, + 33, 1, 203, 165, 222, 33, 1, 201, 175, 222, 33, 1, 188, 222, 33, 1, 140, + 222, 33, 1, 222, 202, 222, 33, 18, 3, 252, 206, 222, 33, 18, 3, 251, 157, + 252, 206, 222, 33, 18, 3, 68, 222, 33, 18, 3, 223, 199, 222, 33, 18, 3, + 66, 222, 33, 18, 3, 196, 30, 222, 33, 18, 3, 117, 146, 222, 33, 18, 3, + 71, 222, 33, 18, 3, 251, 236, 222, 33, 18, 3, 233, 242, 222, 33, 3, 221, + 143, 222, 33, 239, 45, 222, 33, 237, 238, 222, 33, 55, 237, 238, 222, 33, + 208, 152, 205, 54, 217, 51, 222, 33, 208, 152, 251, 157, 205, 54, 217, + 51, 222, 33, 208, 152, 232, 186, 222, 33, 208, 152, 201, 248, 233, 3, + 222, 33, 208, 152, 236, 140, 222, 33, 208, 152, 55, 236, 140, 222, 33, + 208, 152, 197, 225, 236, 140, 222, 33, 208, 152, 243, 10, 222, 33, 208, + 152, 233, 4, 243, 10, 222, 33, 208, 152, 201, 217, 222, 33, 208, 152, + 242, 215, 201, 217, 222, 33, 17, 191, 77, 222, 33, 17, 107, 222, 33, 17, + 109, 222, 33, 17, 138, 222, 33, 17, 134, 222, 33, 17, 149, 222, 33, 17, + 169, 222, 33, 17, 175, 222, 33, 17, 171, 222, 33, 17, 178, 219, 88, 1, + 192, 35, 44, 232, 118, 91, 198, 222, 44, 232, 118, 91, 211, 100, 44, 232, + 118, 91, 234, 156, 44, 232, 118, 91, 202, 118, 44, 232, 118, 91, 232, + 139, 44, 232, 118, 91, 198, 245, 44, 232, 118, 115, 234, 155, 44, 232, + 118, 115, 202, 117, 44, 232, 118, 91, 197, 35, 44, 232, 118, 91, 202, + 127, 44, 232, 118, 91, 202, 126, 44, 232, 118, 91, 199, 86, 44, 232, 118, + 91, 234, 159, 44, 232, 118, 115, 197, 34, 44, 232, 118, 115, 202, 125, + 44, 232, 118, 91, 233, 18, 44, 232, 118, 91, 208, 22, 44, 232, 118, 91, + 230, 69, 44, 232, 118, 91, 230, 68, 44, 232, 118, 115, 208, 20, 44, 232, + 118, 235, 121, 233, 93, 221, 144, 44, 3, 214, 104, 44, 3, 247, 6, 44, 3, + 252, 157, 44, 3, 196, 15, 44, 3, 215, 90, 44, 3, 220, 194, 44, 3, 210, + 85, 44, 3, 215, 135, 44, 3, 222, 124, 44, 3, 210, 164, 44, 3, 209, 39, + 44, 3, 195, 173, 44, 3, 210, 215, 44, 3, 220, 183, 44, 3, 195, 143, 44, + 193, 101, 238, 187, 56, 44, 235, 92, 238, 187, 56, 44, 220, 23, 56, 44, + 205, 159, 210, 167, 56, 44, 198, 21, 238, 230, 56, 44, 198, 21, 31, 56, + 44, 238, 169, 56, 44, 23, 211, 155, 56, 44, 201, 227, 56, 44, 198, 39, + 56, 44, 223, 163, 209, 22, 56, 44, 201, 96, 232, 98, 56, 44, 3, 215, 94, + 44, 3, 195, 181, 44, 208, 152, 234, 95, 79, 199, 53, 10, 3, 65, 10, 3, + 42, 25, 65, 10, 3, 42, 25, 249, 135, 10, 3, 42, 25, 231, 209, 199, 84, + 10, 3, 42, 25, 140, 10, 3, 42, 25, 223, 201, 10, 3, 42, 25, 220, 103, + 230, 155, 10, 3, 42, 25, 215, 101, 10, 3, 42, 25, 205, 185, 10, 3, 254, + 215, 10, 3, 252, 155, 10, 3, 252, 156, 25, 250, 207, 10, 3, 252, 156, 25, + 235, 74, 230, 155, 10, 3, 252, 156, 25, 231, 222, 10, 3, 252, 156, 25, + 231, 209, 199, 84, 10, 3, 252, 156, 25, 140, 10, 3, 252, 156, 25, 223, + 202, 230, 155, 10, 3, 252, 156, 25, 223, 172, 10, 3, 252, 156, 25, 220, + 104, 10, 3, 252, 156, 25, 203, 97, 10, 3, 252, 156, 25, 126, 108, 126, + 108, 66, 10, 3, 252, 156, 230, 155, 10, 3, 252, 72, 10, 3, 252, 73, 25, + 249, 114, 10, 3, 252, 73, 25, 231, 209, 199, 84, 10, 3, 252, 73, 25, 216, + 233, 108, 234, 103, 10, 3, 252, 73, 25, 203, 163, 10, 3, 252, 73, 25, + 199, 209, 10, 3, 252, 42, 10, 3, 251, 216, 10, 3, 251, 217, 25, 234, 28, + 10, 3, 251, 217, 25, 203, 59, 108, 231, 23, 10, 3, 251, 207, 10, 3, 251, + 208, 25, 251, 207, 10, 3, 251, 208, 25, 236, 253, 10, 3, 251, 208, 25, + 231, 23, 10, 3, 251, 208, 25, 140, 10, 3, 251, 208, 25, 222, 111, 10, 3, + 251, 208, 25, 221, 166, 10, 3, 251, 208, 25, 203, 113, 10, 3, 251, 208, + 25, 196, 38, 10, 3, 251, 203, 10, 3, 251, 190, 10, 3, 251, 145, 10, 3, + 251, 146, 25, 203, 113, 10, 3, 251, 132, 10, 3, 251, 133, 139, 251, 132, + 10, 3, 251, 133, 115, 198, 144, 10, 3, 251, 133, 108, 214, 241, 211, 63, + 251, 133, 108, 214, 240, 10, 3, 251, 133, 108, 214, 241, 201, 189, 10, 3, + 251, 91, 10, 3, 251, 60, 10, 3, 251, 26, 10, 3, 251, 27, 25, 220, 197, + 10, 3, 250, 254, 10, 3, 250, 215, 10, 3, 250, 209, 10, 3, 250, 210, 191, + 26, 199, 84, 10, 3, 250, 210, 222, 116, 199, 84, 10, 3, 250, 210, 139, + 250, 210, 197, 83, 139, 197, 83, 197, 83, 139, 197, 83, 210, 137, 10, 3, + 250, 210, 139, 250, 210, 139, 250, 209, 10, 3, 250, 210, 139, 250, 210, + 139, 250, 210, 238, 210, 250, 210, 139, 250, 210, 139, 250, 209, 10, 3, + 250, 207, 10, 3, 250, 203, 10, 3, 249, 153, 10, 3, 249, 135, 10, 3, 249, + 129, 10, 3, 249, 121, 10, 3, 249, 115, 10, 3, 249, 116, 139, 249, 115, + 10, 3, 249, 114, 10, 3, 164, 10, 3, 249, 87, 10, 3, 248, 188, 10, 3, 248, + 189, 25, 65, 10, 3, 248, 189, 25, 231, 200, 10, 3, 248, 189, 25, 223, + 202, 230, 155, 10, 3, 248, 10, 10, 3, 248, 11, 139, 248, 11, 252, 155, + 10, 3, 248, 11, 139, 248, 11, 196, 113, 10, 3, 248, 11, 238, 210, 248, + 10, 10, 3, 247, 242, 10, 3, 247, 243, 139, 247, 242, 10, 3, 247, 230, 10, + 3, 247, 229, 10, 3, 238, 32, 10, 3, 238, 22, 10, 3, 238, 23, 221, 125, + 25, 42, 108, 217, 39, 10, 3, 238, 23, 221, 125, 25, 251, 145, 10, 3, 238, + 23, 221, 125, 25, 249, 114, 10, 3, 238, 23, 221, 125, 25, 248, 188, 10, + 3, 238, 23, 221, 125, 25, 231, 240, 10, 3, 238, 23, 221, 125, 25, 231, + 241, 108, 217, 39, 10, 3, 238, 23, 221, 125, 25, 231, 53, 10, 3, 238, 23, + 221, 125, 25, 231, 32, 10, 3, 238, 23, 221, 125, 25, 230, 168, 10, 3, + 238, 23, 221, 125, 25, 140, 10, 3, 238, 23, 221, 125, 25, 223, 77, 10, 3, + 238, 23, 221, 125, 25, 223, 78, 108, 218, 225, 10, 3, 238, 23, 221, 125, + 25, 222, 96, 10, 3, 238, 23, 221, 125, 25, 173, 10, 3, 238, 23, 221, 125, + 25, 218, 225, 10, 3, 238, 23, 221, 125, 25, 218, 226, 108, 217, 38, 10, + 3, 238, 23, 221, 125, 25, 218, 208, 10, 3, 238, 23, 221, 125, 25, 214, + 121, 10, 3, 238, 23, 221, 125, 25, 210, 138, 108, 210, 137, 10, 3, 238, + 23, 221, 125, 25, 202, 222, 10, 3, 238, 23, 221, 125, 25, 199, 209, 10, + 3, 238, 23, 221, 125, 25, 196, 170, 108, 231, 32, 10, 3, 238, 23, 221, + 125, 25, 196, 38, 10, 3, 237, 250, 10, 3, 237, 225, 10, 3, 237, 224, 10, + 3, 237, 223, 10, 3, 237, 44, 10, 3, 237, 26, 10, 3, 236, 255, 10, 3, 237, + 0, 25, 203, 113, 10, 3, 236, 253, 10, 3, 236, 243, 10, 3, 236, 244, 222, + 55, 126, 230, 156, 236, 222, 10, 3, 236, 222, 10, 3, 235, 89, 10, 3, 235, + 90, 139, 235, 89, 10, 3, 235, 90, 230, 155, 10, 3, 235, 90, 203, 94, 10, + 3, 235, 87, 10, 3, 235, 88, 25, 234, 9, 10, 3, 235, 86, 10, 3, 235, 82, + 10, 3, 235, 81, 10, 3, 235, 80, 10, 3, 235, 75, 10, 3, 235, 73, 10, 3, + 235, 74, 230, 155, 10, 3, 235, 74, 230, 156, 230, 155, 10, 3, 235, 72, + 10, 3, 235, 65, 10, 3, 71, 10, 3, 235, 15, 25, 210, 137, 10, 3, 235, 15, + 139, 235, 15, 212, 131, 139, 212, 130, 10, 3, 234, 218, 10, 3, 234, 219, + 25, 42, 108, 230, 105, 108, 238, 32, 10, 3, 234, 219, 25, 231, 200, 10, + 3, 234, 219, 25, 216, 100, 10, 3, 234, 219, 25, 205, 169, 10, 3, 234, + 219, 25, 203, 113, 10, 3, 234, 219, 25, 66, 10, 3, 234, 190, 10, 3, 234, + 177, 10, 3, 234, 140, 10, 3, 234, 103, 10, 3, 234, 104, 25, 231, 208, 10, + 3, 234, 104, 25, 231, 209, 199, 84, 10, 3, 234, 104, 25, 216, 232, 10, 3, + 234, 104, 238, 210, 234, 103, 10, 3, 234, 104, 211, 63, 234, 103, 10, 3, + 234, 104, 201, 189, 10, 3, 234, 31, 10, 3, 234, 28, 10, 3, 234, 9, 10, 3, + 233, 180, 10, 3, 233, 181, 25, 65, 10, 3, 233, 181, 25, 42, 108, 220, 37, + 10, 3, 233, 181, 25, 42, 108, 220, 38, 25, 220, 37, 10, 3, 233, 181, 25, + 251, 132, 10, 3, 233, 181, 25, 249, 135, 10, 3, 233, 181, 25, 235, 74, + 230, 155, 10, 3, 233, 181, 25, 235, 74, 230, 156, 230, 155, 10, 3, 233, + 181, 25, 140, 10, 3, 233, 181, 25, 230, 105, 230, 155, 10, 3, 233, 181, + 25, 223, 202, 230, 155, 10, 3, 233, 181, 25, 222, 54, 10, 3, 233, 181, + 25, 222, 55, 201, 189, 10, 3, 233, 181, 25, 220, 223, 10, 3, 233, 181, + 25, 173, 10, 3, 233, 181, 25, 220, 38, 25, 220, 37, 10, 3, 233, 181, 25, + 219, 146, 10, 3, 233, 181, 25, 218, 225, 10, 3, 233, 181, 25, 196, 169, + 10, 3, 233, 181, 25, 196, 158, 10, 3, 231, 240, 10, 3, 231, 241, 230, + 155, 10, 3, 231, 238, 10, 3, 231, 239, 25, 42, 108, 238, 33, 108, 140, + 10, 3, 231, 239, 25, 42, 108, 140, 10, 3, 231, 239, 25, 42, 108, 223, + 201, 10, 3, 231, 239, 25, 252, 73, 199, 85, 108, 199, 236, 10, 3, 231, + 239, 25, 251, 132, 10, 3, 231, 239, 25, 250, 209, 10, 3, 231, 239, 25, + 250, 208, 108, 231, 222, 10, 3, 231, 239, 25, 249, 135, 10, 3, 231, 239, + 25, 249, 88, 108, 165, 10, 3, 231, 239, 25, 247, 230, 10, 3, 231, 239, + 25, 247, 231, 108, 165, 10, 3, 231, 239, 25, 238, 32, 10, 3, 231, 239, + 25, 237, 44, 10, 3, 231, 239, 25, 237, 0, 25, 203, 113, 10, 3, 231, 239, + 25, 235, 87, 10, 3, 231, 239, 25, 234, 140, 10, 3, 231, 239, 25, 234, + 141, 108, 173, 10, 3, 231, 239, 25, 234, 103, 10, 3, 231, 239, 25, 234, + 104, 25, 231, 209, 199, 84, 10, 3, 231, 239, 25, 231, 209, 199, 84, 10, + 3, 231, 239, 25, 231, 200, 10, 3, 231, 239, 25, 231, 53, 10, 3, 231, 239, + 25, 231, 51, 10, 3, 231, 239, 25, 231, 52, 108, 65, 10, 3, 231, 239, 25, + 231, 33, 108, 201, 4, 10, 3, 231, 239, 25, 230, 105, 108, 218, 226, 108, + 234, 9, 10, 3, 231, 239, 25, 230, 73, 10, 3, 231, 239, 25, 230, 74, 108, + 173, 10, 3, 231, 239, 25, 229, 159, 108, 219, 146, 10, 3, 231, 239, 25, + 228, 151, 10, 3, 231, 239, 25, 223, 202, 230, 155, 10, 3, 231, 239, 25, + 223, 63, 108, 228, 160, 108, 250, 209, 10, 3, 231, 239, 25, 222, 96, 10, + 3, 231, 239, 25, 222, 54, 10, 3, 231, 239, 25, 221, 152, 10, 3, 231, 239, + 25, 221, 153, 108, 220, 37, 10, 3, 231, 239, 25, 220, 224, 108, 251, 132, + 10, 3, 231, 239, 25, 173, 10, 3, 231, 239, 25, 216, 233, 108, 234, 103, + 10, 3, 231, 239, 25, 216, 100, 10, 3, 231, 239, 25, 212, 130, 10, 3, 231, + 239, 25, 212, 131, 139, 212, 130, 10, 3, 231, 239, 25, 168, 10, 3, 231, + 239, 25, 205, 169, 10, 3, 231, 239, 25, 205, 127, 10, 3, 231, 239, 25, + 203, 113, 10, 3, 231, 239, 25, 203, 114, 108, 197, 64, 10, 3, 231, 239, + 25, 203, 79, 10, 3, 231, 239, 25, 200, 204, 10, 3, 231, 239, 25, 199, + 209, 10, 3, 231, 239, 25, 66, 10, 3, 231, 239, 25, 196, 158, 10, 3, 231, + 239, 25, 196, 159, 108, 235, 89, 10, 3, 231, 239, 139, 231, 238, 10, 3, + 231, 233, 10, 3, 231, 234, 238, 210, 231, 233, 10, 3, 231, 231, 10, 3, + 231, 232, 139, 231, 232, 231, 201, 139, 231, 200, 10, 3, 231, 222, 10, 3, + 231, 223, 231, 232, 139, 231, 232, 231, 201, 139, 231, 200, 10, 3, 231, + 221, 10, 3, 231, 219, 10, 3, 231, 210, 10, 3, 231, 208, 10, 3, 231, 209, + 199, 84, 10, 3, 231, 209, 139, 231, 208, 10, 3, 231, 209, 238, 210, 231, + 208, 10, 3, 231, 200, 10, 3, 231, 199, 10, 3, 231, 193, 10, 3, 231, 134, + 10, 3, 231, 135, 25, 220, 197, 10, 3, 231, 53, 10, 3, 231, 54, 25, 71, + 10, 3, 231, 54, 25, 66, 10, 3, 231, 54, 238, 210, 231, 53, 10, 3, 231, + 51, 10, 3, 231, 52, 139, 231, 51, 10, 3, 231, 52, 238, 210, 231, 51, 10, + 3, 231, 48, 10, 3, 231, 32, 10, 3, 231, 33, 230, 155, 10, 3, 231, 30, 10, + 3, 231, 31, 25, 42, 108, 223, 201, 10, 3, 231, 31, 25, 231, 209, 199, 84, + 10, 3, 231, 31, 25, 223, 201, 10, 3, 231, 31, 25, 218, 226, 108, 223, + 201, 10, 3, 231, 31, 25, 168, 10, 3, 231, 25, 10, 3, 231, 23, 10, 3, 231, + 24, 238, 210, 231, 23, 10, 3, 231, 24, 25, 249, 135, 10, 3, 231, 24, 25, + 199, 209, 10, 3, 231, 24, 199, 84, 10, 3, 230, 179, 10, 3, 230, 180, 238, + 210, 230, 179, 10, 3, 230, 177, 10, 3, 230, 178, 25, 222, 96, 10, 3, 230, + 178, 25, 222, 97, 25, 223, 202, 230, 155, 10, 3, 230, 178, 25, 212, 130, + 10, 3, 230, 178, 25, 205, 170, 108, 197, 82, 10, 3, 230, 178, 230, 155, + 10, 3, 230, 168, 10, 3, 230, 169, 25, 42, 108, 220, 197, 10, 3, 230, 169, + 25, 220, 197, 10, 3, 230, 169, 139, 230, 169, 218, 216, 10, 3, 230, 160, + 10, 3, 230, 158, 10, 3, 230, 159, 25, 203, 113, 10, 3, 230, 149, 10, 3, + 230, 148, 10, 3, 230, 143, 10, 3, 230, 142, 10, 3, 140, 10, 3, 230, 105, + 199, 84, 10, 3, 230, 105, 230, 155, 10, 3, 230, 73, 10, 3, 229, 158, 10, + 3, 229, 159, 25, 250, 209, 10, 3, 229, 159, 25, 250, 207, 10, 3, 229, + 159, 25, 249, 135, 10, 3, 229, 159, 25, 236, 222, 10, 3, 229, 159, 25, + 231, 231, 10, 3, 229, 159, 25, 221, 141, 10, 3, 229, 159, 25, 212, 130, + 10, 3, 229, 159, 25, 203, 113, 10, 3, 229, 159, 25, 66, 10, 3, 228, 159, + 10, 3, 228, 151, 10, 3, 228, 152, 25, 251, 132, 10, 3, 228, 152, 25, 230, + 73, 10, 3, 228, 152, 25, 222, 54, 10, 3, 228, 152, 25, 219, 89, 10, 3, + 228, 152, 25, 196, 158, 10, 3, 228, 146, 10, 3, 68, 10, 3, 228, 74, 65, + 10, 3, 228, 30, 10, 3, 223, 229, 10, 3, 223, 230, 139, 223, 230, 247, + 230, 10, 3, 223, 230, 139, 223, 230, 201, 189, 10, 3, 223, 204, 10, 3, + 223, 201, 10, 3, 223, 202, 237, 26, 10, 3, 223, 202, 207, 1, 10, 3, 223, + 202, 139, 223, 202, 203, 63, 139, 203, 63, 196, 159, 139, 196, 158, 10, + 3, 223, 202, 230, 155, 10, 3, 223, 191, 10, 3, 223, 192, 25, 231, 209, + 199, 84, 10, 3, 223, 190, 10, 3, 223, 180, 10, 3, 223, 181, 25, 199, 209, + 10, 3, 223, 181, 238, 210, 223, 180, 10, 3, 223, 181, 211, 63, 223, 180, + 10, 3, 223, 181, 201, 189, 10, 3, 223, 172, 10, 3, 223, 162, 10, 3, 223, + 77, 10, 3, 223, 62, 10, 3, 155, 10, 3, 222, 142, 25, 65, 10, 3, 222, 142, + 25, 252, 42, 10, 3, 222, 142, 25, 252, 43, 108, 220, 223, 10, 3, 222, + 142, 25, 250, 207, 10, 3, 222, 142, 25, 249, 135, 10, 3, 222, 142, 25, + 249, 114, 10, 3, 222, 142, 25, 164, 10, 3, 222, 142, 25, 248, 188, 10, 3, + 222, 142, 25, 234, 28, 10, 3, 222, 142, 25, 234, 9, 10, 3, 222, 142, 25, + 231, 240, 10, 3, 222, 142, 25, 231, 222, 10, 3, 222, 142, 25, 231, 209, + 199, 84, 10, 3, 222, 142, 25, 231, 200, 10, 3, 222, 142, 25, 231, 201, + 108, 203, 164, 108, 65, 10, 3, 222, 142, 25, 231, 53, 10, 3, 222, 142, + 25, 231, 32, 10, 3, 222, 142, 25, 231, 24, 108, 205, 127, 10, 3, 222, + 142, 25, 231, 24, 238, 210, 231, 23, 10, 3, 222, 142, 25, 230, 179, 10, + 3, 222, 142, 25, 230, 148, 10, 3, 222, 142, 25, 223, 201, 10, 3, 222, + 142, 25, 223, 180, 10, 3, 222, 142, 25, 222, 96, 10, 3, 222, 142, 25, + 221, 166, 10, 3, 222, 142, 25, 221, 152, 10, 3, 222, 142, 25, 219, 146, + 10, 3, 222, 142, 25, 218, 225, 10, 3, 222, 142, 25, 216, 232, 10, 3, 222, + 142, 25, 216, 233, 108, 235, 89, 10, 3, 222, 142, 25, 216, 233, 108, 231, + 53, 10, 3, 222, 142, 25, 216, 233, 108, 199, 145, 10, 3, 222, 142, 25, + 216, 100, 10, 3, 222, 142, 25, 216, 101, 108, 212, 125, 10, 3, 222, 142, + 25, 214, 121, 10, 3, 222, 142, 25, 212, 130, 10, 3, 222, 142, 25, 209, + 185, 10, 3, 222, 142, 25, 206, 68, 10, 3, 222, 142, 25, 188, 10, 3, 222, + 142, 25, 205, 127, 10, 3, 222, 142, 25, 203, 165, 10, 3, 222, 142, 25, + 203, 113, 10, 3, 222, 142, 25, 203, 79, 10, 3, 222, 142, 25, 203, 5, 10, + 3, 222, 142, 25, 202, 201, 10, 3, 222, 142, 25, 200, 213, 10, 3, 222, + 142, 25, 199, 179, 10, 3, 222, 142, 25, 66, 10, 3, 222, 142, 25, 196, + 169, 10, 3, 222, 142, 25, 196, 158, 10, 3, 222, 142, 25, 196, 116, 25, + 168, 10, 3, 222, 142, 25, 196, 38, 10, 3, 222, 142, 25, 191, 30, 10, 3, + 222, 128, 10, 3, 222, 129, 238, 210, 222, 128, 10, 3, 222, 117, 10, 3, + 222, 113, 10, 3, 222, 111, 10, 3, 222, 110, 10, 3, 222, 108, 10, 3, 222, + 109, 139, 222, 108, 10, 3, 222, 96, 10, 3, 222, 97, 25, 223, 202, 230, + 155, 10, 3, 222, 91, 10, 3, 222, 92, 25, 249, 135, 10, 3, 222, 92, 238, + 210, 222, 91, 10, 3, 222, 89, 10, 3, 222, 88, 10, 3, 222, 54, 10, 3, 222, + 55, 220, 105, 25, 126, 139, 220, 105, 25, 66, 10, 3, 222, 55, 139, 222, + 55, 220, 105, 25, 126, 139, 220, 105, 25, 66, 10, 3, 221, 242, 10, 3, + 221, 166, 10, 3, 221, 167, 25, 249, 135, 10, 3, 221, 167, 25, 66, 10, 3, + 221, 167, 25, 196, 158, 10, 3, 221, 152, 10, 3, 221, 141, 10, 3, 221, + 127, 10, 3, 221, 126, 10, 3, 221, 124, 10, 3, 221, 125, 139, 221, 124, + 10, 3, 220, 232, 10, 3, 220, 233, 139, 229, 159, 25, 250, 208, 220, 233, + 139, 229, 159, 25, 250, 207, 10, 3, 220, 223, 10, 3, 220, 221, 10, 3, + 220, 222, 195, 168, 20, 10, 3, 220, 220, 10, 3, 220, 211, 10, 3, 220, + 212, 230, 155, 10, 3, 220, 210, 10, 3, 220, 197, 10, 3, 220, 198, 211, + 63, 220, 197, 10, 3, 220, 190, 10, 3, 220, 167, 10, 3, 173, 10, 3, 220, + 104, 10, 3, 220, 105, 25, 65, 10, 3, 220, 105, 25, 42, 108, 238, 33, 108, + 140, 10, 3, 220, 105, 25, 42, 108, 231, 200, 10, 3, 220, 105, 25, 42, + 108, 220, 37, 10, 3, 220, 105, 25, 251, 207, 10, 3, 220, 105, 25, 251, + 132, 10, 3, 220, 105, 25, 250, 210, 191, 26, 199, 84, 10, 3, 220, 105, + 25, 249, 135, 10, 3, 220, 105, 25, 248, 188, 10, 3, 220, 105, 25, 237, + 225, 10, 3, 220, 105, 25, 234, 103, 10, 3, 220, 105, 25, 231, 240, 10, 3, + 220, 105, 25, 231, 200, 10, 3, 220, 105, 25, 230, 168, 10, 3, 220, 105, + 25, 230, 169, 108, 230, 168, 10, 3, 220, 105, 25, 140, 10, 3, 220, 105, + 25, 230, 73, 10, 3, 220, 105, 25, 229, 159, 25, 212, 130, 10, 3, 220, + 105, 25, 223, 202, 230, 155, 10, 3, 220, 105, 25, 223, 180, 10, 3, 220, + 105, 25, 223, 181, 108, 140, 10, 3, 220, 105, 25, 223, 181, 108, 218, + 225, 10, 3, 220, 105, 25, 221, 166, 10, 3, 220, 105, 25, 221, 141, 10, 3, + 220, 105, 25, 220, 223, 10, 3, 220, 105, 25, 220, 211, 10, 3, 220, 105, + 25, 220, 212, 108, 229, 159, 108, 65, 10, 3, 220, 105, 25, 220, 104, 10, + 3, 220, 105, 25, 219, 89, 10, 3, 220, 105, 25, 218, 225, 10, 3, 220, 105, + 25, 218, 210, 10, 3, 220, 105, 25, 216, 232, 10, 3, 220, 105, 25, 216, + 233, 108, 234, 103, 10, 3, 220, 105, 25, 215, 101, 10, 3, 220, 105, 25, + 214, 121, 10, 3, 220, 105, 25, 203, 114, 108, 200, 204, 10, 3, 220, 105, + 25, 203, 59, 108, 231, 24, 108, 234, 28, 10, 3, 220, 105, 25, 203, 59, + 108, 231, 24, 199, 84, 10, 3, 220, 105, 25, 203, 3, 10, 3, 220, 105, 25, + 203, 4, 108, 203, 3, 10, 3, 220, 105, 25, 200, 204, 10, 3, 220, 105, 25, + 199, 223, 10, 3, 220, 105, 25, 199, 209, 10, 3, 220, 105, 25, 199, 146, + 108, 42, 108, 201, 5, 108, 180, 10, 3, 220, 105, 25, 66, 10, 3, 220, 105, + 25, 126, 108, 65, 10, 3, 220, 105, 25, 126, 108, 126, 108, 66, 10, 3, + 220, 105, 25, 196, 170, 108, 250, 209, 10, 3, 220, 105, 25, 196, 158, 10, + 3, 220, 105, 25, 196, 38, 10, 3, 220, 105, 201, 189, 10, 3, 220, 102, 10, + 3, 220, 103, 25, 203, 113, 10, 3, 220, 103, 25, 203, 114, 108, 200, 204, + 10, 3, 220, 103, 230, 155, 10, 3, 220, 103, 230, 156, 139, 220, 103, 230, + 156, 203, 113, 10, 3, 220, 98, 10, 3, 220, 37, 10, 3, 220, 38, 25, 220, + 37, 10, 3, 220, 35, 10, 3, 220, 36, 25, 220, 197, 10, 3, 220, 36, 25, + 220, 198, 108, 206, 68, 10, 3, 219, 146, 10, 3, 219, 127, 10, 3, 219, + 115, 10, 3, 219, 89, 10, 3, 218, 225, 10, 3, 218, 226, 25, 249, 135, 10, + 3, 218, 223, 10, 3, 218, 224, 25, 251, 207, 10, 3, 218, 224, 25, 249, + 135, 10, 3, 218, 224, 25, 234, 9, 10, 3, 218, 224, 25, 234, 10, 199, 84, + 10, 3, 218, 224, 25, 231, 209, 199, 84, 10, 3, 218, 224, 25, 229, 159, + 25, 249, 135, 10, 3, 218, 224, 25, 223, 180, 10, 3, 218, 224, 25, 222, + 113, 10, 3, 218, 224, 25, 222, 111, 10, 3, 218, 224, 25, 222, 112, 108, + 250, 209, 10, 3, 218, 224, 25, 221, 166, 10, 3, 218, 224, 25, 220, 126, + 108, 250, 209, 10, 3, 218, 224, 25, 220, 104, 10, 3, 218, 224, 25, 216, + 233, 108, 234, 103, 10, 3, 218, 224, 25, 214, 121, 10, 3, 218, 224, 25, + 212, 178, 10, 3, 218, 224, 25, 202, 223, 108, 250, 209, 10, 3, 218, 224, + 25, 202, 192, 108, 248, 10, 10, 3, 218, 224, 25, 197, 82, 10, 3, 218, + 224, 199, 84, 10, 3, 218, 224, 238, 210, 218, 223, 10, 3, 218, 224, 211, + 63, 218, 223, 10, 3, 218, 224, 201, 189, 10, 3, 218, 224, 203, 94, 10, 3, + 218, 222, 10, 3, 218, 216, 10, 3, 218, 217, 139, 218, 216, 10, 3, 218, + 217, 211, 63, 218, 216, 10, 3, 218, 217, 203, 94, 10, 3, 218, 213, 10, 3, + 218, 210, 10, 3, 218, 208, 10, 3, 218, 209, 139, 218, 208, 10, 3, 218, + 209, 139, 218, 209, 231, 201, 139, 231, 200, 10, 3, 174, 10, 3, 217, 160, + 25, 199, 209, 10, 3, 217, 160, 230, 155, 10, 3, 217, 152, 10, 3, 217, + 120, 10, 3, 217, 65, 10, 3, 217, 39, 10, 3, 217, 38, 10, 3, 216, 232, 10, + 3, 216, 173, 10, 3, 216, 100, 10, 3, 216, 44, 10, 3, 215, 155, 10, 3, + 215, 156, 139, 215, 155, 10, 3, 215, 140, 10, 3, 215, 141, 230, 155, 10, + 3, 215, 119, 10, 3, 215, 105, 10, 3, 215, 101, 10, 3, 215, 102, 25, 65, + 10, 3, 215, 102, 25, 220, 197, 10, 3, 215, 102, 25, 191, 123, 10, 3, 215, + 102, 139, 215, 101, 10, 3, 215, 102, 139, 215, 102, 25, 42, 108, 180, 10, + 3, 215, 102, 238, 210, 215, 101, 10, 3, 215, 99, 10, 3, 215, 100, 25, 65, + 10, 3, 215, 100, 25, 42, 108, 237, 44, 10, 3, 215, 100, 25, 237, 44, 10, + 3, 215, 100, 230, 155, 10, 3, 180, 10, 3, 214, 253, 10, 3, 214, 240, 10, + 3, 214, 241, 223, 92, 10, 3, 214, 241, 25, 203, 6, 199, 84, 10, 3, 214, + 241, 211, 63, 214, 240, 10, 3, 214, 239, 10, 3, 214, 231, 212, 116, 10, + 3, 214, 230, 10, 3, 214, 229, 10, 3, 214, 121, 10, 3, 214, 122, 25, 65, + 10, 3, 214, 122, 25, 196, 158, 10, 3, 214, 122, 203, 94, 10, 3, 213, 219, + 10, 3, 213, 220, 25, 71, 10, 3, 213, 210, 10, 3, 213, 180, 10, 3, 213, + 181, 25, 231, 209, 199, 84, 10, 3, 213, 181, 25, 231, 201, 108, 231, 209, + 199, 84, 10, 3, 213, 176, 10, 3, 213, 177, 25, 251, 132, 10, 3, 213, 177, + 25, 250, 209, 10, 3, 213, 177, 25, 250, 210, 108, 250, 209, 10, 3, 213, + 177, 25, 230, 168, 10, 3, 213, 177, 25, 216, 233, 108, 231, 209, 199, 84, + 10, 3, 213, 177, 25, 214, 121, 10, 3, 213, 177, 25, 212, 130, 10, 3, 213, + 177, 25, 203, 113, 10, 3, 213, 177, 25, 203, 114, 108, 42, 251, 132, 10, + 3, 213, 177, 25, 203, 114, 108, 250, 209, 10, 3, 213, 177, 25, 203, 114, + 108, 250, 210, 108, 250, 209, 10, 3, 213, 177, 25, 196, 170, 108, 250, + 209, 10, 3, 213, 177, 25, 196, 38, 10, 3, 213, 163, 10, 3, 212, 178, 10, + 3, 212, 147, 10, 3, 212, 130, 10, 3, 212, 131, 220, 103, 25, 231, 200, + 10, 3, 212, 131, 220, 103, 25, 217, 39, 10, 3, 212, 131, 220, 103, 25, + 205, 169, 10, 3, 212, 131, 220, 103, 25, 205, 170, 139, 212, 131, 220, + 103, 25, 205, 169, 10, 3, 212, 131, 220, 103, 25, 196, 38, 10, 3, 212, + 131, 199, 84, 10, 3, 212, 131, 139, 212, 130, 10, 3, 212, 131, 238, 210, + 212, 130, 10, 3, 212, 131, 238, 210, 212, 131, 220, 103, 139, 220, 102, + 10, 3, 212, 125, 10, 3, 212, 126, 252, 73, 25, 250, 203, 10, 3, 212, 126, + 252, 73, 25, 248, 188, 10, 3, 212, 126, 252, 73, 25, 235, 82, 10, 3, 212, + 126, 252, 73, 25, 230, 168, 10, 3, 212, 126, 252, 73, 25, 223, 202, 230, + 155, 10, 3, 212, 126, 252, 73, 25, 222, 111, 10, 3, 212, 126, 252, 73, + 25, 173, 10, 3, 212, 126, 252, 73, 25, 214, 121, 10, 3, 212, 126, 252, + 73, 25, 202, 189, 10, 3, 212, 126, 252, 73, 25, 196, 169, 10, 3, 212, + 126, 221, 125, 25, 248, 188, 10, 3, 212, 126, 221, 125, 25, 248, 189, 66, + 10, 3, 168, 10, 3, 210, 210, 10, 3, 210, 166, 10, 3, 210, 137, 10, 3, + 209, 243, 10, 3, 209, 185, 10, 3, 209, 186, 25, 65, 10, 3, 209, 186, 25, + 252, 155, 10, 3, 209, 186, 25, 248, 188, 10, 3, 209, 186, 25, 248, 10, + 10, 3, 209, 186, 25, 71, 10, 3, 209, 186, 25, 68, 10, 3, 209, 186, 25, + 228, 30, 10, 3, 209, 186, 25, 66, 10, 3, 209, 186, 25, 196, 169, 10, 3, + 209, 186, 238, 210, 209, 185, 10, 3, 209, 121, 10, 3, 209, 122, 25, 222, + 91, 10, 3, 209, 122, 25, 196, 158, 10, 3, 209, 122, 25, 191, 123, 10, 3, + 209, 122, 211, 63, 209, 121, 10, 3, 165, 10, 3, 207, 176, 10, 3, 207, 1, + 10, 3, 206, 68, 10, 3, 188, 10, 3, 205, 186, 212, 116, 10, 3, 205, 185, + 10, 3, 205, 186, 25, 65, 10, 3, 205, 186, 25, 235, 89, 10, 3, 205, 186, + 25, 235, 87, 10, 3, 205, 186, 25, 140, 10, 3, 205, 186, 25, 222, 96, 10, + 3, 205, 186, 25, 220, 197, 10, 3, 205, 186, 25, 218, 208, 10, 3, 205, + 186, 25, 216, 100, 10, 3, 205, 186, 25, 212, 130, 10, 3, 205, 186, 25, + 205, 169, 10, 3, 205, 186, 25, 203, 79, 10, 3, 205, 186, 25, 199, 236, + 10, 3, 205, 186, 25, 196, 169, 10, 3, 205, 186, 25, 196, 164, 10, 3, 205, + 186, 25, 196, 120, 10, 3, 205, 186, 25, 196, 62, 10, 3, 205, 186, 25, + 196, 38, 10, 3, 205, 186, 139, 205, 185, 10, 3, 205, 186, 230, 155, 10, + 3, 205, 169, 10, 3, 205, 170, 220, 105, 25, 250, 207, 10, 3, 205, 136, + 10, 3, 205, 127, 10, 3, 203, 165, 10, 3, 203, 163, 10, 3, 203, 164, 25, + 65, 10, 3, 203, 164, 25, 249, 135, 10, 3, 203, 164, 25, 231, 23, 10, 3, + 203, 164, 25, 214, 121, 10, 3, 203, 164, 25, 203, 3, 10, 3, 203, 164, 25, + 197, 64, 10, 3, 203, 164, 25, 66, 10, 3, 203, 164, 25, 126, 108, 65, 10, + 3, 203, 161, 10, 3, 203, 159, 10, 3, 203, 131, 10, 3, 203, 113, 10, 3, + 203, 114, 228, 159, 10, 3, 203, 114, 139, 203, 114, 231, 232, 139, 231, + 232, 231, 201, 139, 231, 200, 10, 3, 203, 114, 139, 203, 114, 199, 237, + 139, 199, 237, 231, 201, 139, 231, 200, 10, 3, 203, 106, 10, 3, 203, 101, + 10, 3, 203, 97, 10, 3, 203, 96, 10, 3, 203, 93, 10, 3, 203, 79, 10, 3, + 203, 80, 25, 65, 10, 3, 203, 80, 25, 223, 180, 10, 3, 203, 73, 10, 3, + 203, 74, 25, 65, 10, 3, 203, 74, 25, 249, 115, 10, 3, 203, 74, 25, 247, + 242, 10, 3, 203, 74, 25, 236, 243, 10, 3, 203, 74, 25, 231, 200, 10, 3, + 203, 74, 25, 223, 201, 10, 3, 203, 74, 25, 223, 202, 230, 155, 10, 3, + 203, 74, 25, 220, 190, 10, 3, 203, 74, 25, 218, 210, 10, 3, 203, 74, 25, + 215, 140, 10, 3, 203, 74, 25, 205, 169, 10, 3, 203, 67, 10, 3, 203, 62, + 10, 3, 203, 63, 199, 84, 10, 3, 203, 63, 139, 203, 63, 247, 231, 139, + 247, 230, 10, 3, 203, 58, 10, 3, 203, 5, 10, 3, 203, 6, 139, 223, 93, + 203, 5, 10, 3, 203, 3, 10, 3, 203, 1, 10, 3, 202, 222, 10, 3, 202, 223, + 230, 155, 10, 3, 202, 201, 10, 3, 202, 199, 10, 3, 202, 200, 139, 202, + 200, 203, 3, 10, 3, 202, 191, 10, 3, 202, 189, 10, 3, 201, 4, 10, 3, 201, + 5, 139, 201, 4, 10, 3, 200, 216, 10, 3, 200, 215, 10, 3, 200, 213, 10, 3, + 200, 204, 10, 3, 200, 203, 10, 3, 200, 175, 10, 3, 200, 174, 10, 3, 190, + 190, 10, 3, 199, 252, 250, 193, 10, 3, 199, 252, 25, 229, 158, 10, 3, + 199, 252, 25, 216, 100, 10, 3, 199, 252, 230, 155, 10, 3, 199, 236, 10, + 3, 199, 237, 139, 199, 237, 213, 220, 139, 213, 220, 236, 223, 139, 236, + 222, 10, 3, 199, 237, 201, 189, 10, 3, 199, 223, 10, 3, 199, 224, 25, + 248, 188, 10, 3, 199, 224, 25, 230, 168, 10, 3, 199, 224, 25, 203, 113, + 10, 3, 199, 224, 25, 203, 5, 10, 3, 199, 224, 25, 197, 82, 10, 3, 199, + 224, 25, 196, 158, 10, 3, 199, 209, 10, 3, 199, 179, 10, 3, 199, 145, 10, + 3, 199, 146, 230, 155, 10, 3, 198, 193, 10, 3, 198, 194, 199, 84, 10, 3, + 198, 154, 10, 3, 198, 131, 10, 3, 198, 132, 25, 199, 209, 10, 3, 198, + 132, 139, 198, 131, 10, 3, 198, 132, 139, 198, 132, 231, 232, 139, 231, + 232, 231, 201, 139, 231, 200, 10, 3, 197, 94, 10, 3, 197, 82, 10, 3, 197, + 80, 10, 3, 197, 76, 10, 3, 197, 64, 10, 3, 197, 65, 139, 197, 65, 191, + 124, 139, 191, 123, 10, 3, 66, 10, 3, 126, 230, 168, 10, 3, 126, 126, 66, + 10, 3, 126, 139, 126, 210, 221, 139, 210, 221, 231, 201, 139, 231, 200, + 10, 3, 126, 139, 126, 200, 176, 139, 200, 175, 10, 3, 126, 139, 126, 126, + 207, 18, 139, 126, 207, 17, 10, 3, 196, 169, 10, 3, 196, 164, 10, 3, 196, + 158, 10, 3, 196, 159, 220, 190, 10, 3, 196, 159, 25, 249, 135, 10, 3, + 196, 159, 25, 216, 100, 10, 3, 196, 159, 25, 126, 108, 126, 108, 66, 10, + 3, 196, 159, 25, 126, 108, 126, 108, 126, 230, 155, 10, 3, 196, 159, 230, + 155, 10, 3, 196, 159, 203, 94, 10, 3, 196, 159, 203, 95, 25, 249, 135, + 10, 3, 196, 153, 10, 3, 196, 120, 10, 3, 196, 121, 25, 220, 104, 10, 3, + 196, 121, 25, 216, 233, 108, 238, 32, 10, 3, 196, 121, 25, 203, 163, 10, + 3, 196, 121, 25, 66, 10, 3, 196, 119, 10, 3, 196, 115, 10, 3, 196, 116, + 25, 222, 54, 10, 3, 196, 116, 25, 168, 10, 3, 196, 113, 10, 3, 196, 114, + 230, 155, 10, 3, 196, 62, 10, 3, 196, 63, 238, 210, 196, 62, 10, 3, 196, + 63, 203, 94, 10, 3, 196, 60, 10, 3, 196, 61, 25, 42, 108, 140, 10, 3, + 196, 61, 25, 42, 108, 180, 10, 3, 196, 61, 25, 251, 207, 10, 3, 196, 61, + 25, 140, 10, 3, 196, 61, 25, 212, 130, 10, 3, 196, 61, 25, 196, 169, 10, + 3, 196, 61, 25, 196, 170, 108, 250, 209, 10, 3, 196, 61, 25, 196, 170, + 108, 248, 188, 10, 3, 196, 59, 10, 3, 196, 56, 10, 3, 196, 55, 10, 3, + 196, 51, 10, 3, 196, 52, 25, 65, 10, 3, 196, 52, 25, 250, 203, 10, 3, + 196, 52, 25, 164, 10, 3, 196, 52, 25, 235, 75, 10, 3, 196, 52, 25, 231, + 240, 10, 3, 196, 52, 25, 231, 222, 10, 3, 196, 52, 25, 231, 209, 199, 84, + 10, 3, 196, 52, 25, 231, 200, 10, 3, 196, 52, 25, 230, 179, 10, 3, 196, + 52, 25, 140, 10, 3, 196, 52, 25, 223, 201, 10, 3, 196, 52, 25, 223, 180, + 10, 3, 196, 52, 25, 223, 62, 10, 3, 196, 52, 25, 221, 166, 10, 3, 196, + 52, 25, 218, 208, 10, 3, 196, 52, 25, 216, 44, 10, 3, 196, 52, 25, 168, + 10, 3, 196, 52, 25, 203, 113, 10, 3, 196, 52, 25, 202, 199, 10, 3, 196, + 52, 25, 197, 94, 10, 3, 196, 52, 25, 126, 108, 230, 168, 10, 3, 196, 52, + 25, 196, 158, 10, 3, 196, 52, 25, 196, 49, 10, 3, 196, 49, 10, 3, 196, + 50, 25, 66, 10, 3, 196, 38, 10, 3, 196, 39, 25, 65, 10, 3, 196, 39, 25, + 220, 232, 10, 3, 196, 39, 25, 220, 197, 10, 3, 196, 39, 25, 199, 209, 10, + 3, 196, 34, 10, 3, 196, 37, 10, 3, 196, 35, 10, 3, 196, 31, 10, 3, 196, + 16, 10, 3, 196, 17, 25, 222, 54, 10, 3, 196, 14, 10, 3, 191, 123, 10, 3, + 191, 124, 199, 84, 10, 3, 191, 124, 112, 25, 220, 197, 10, 3, 191, 118, + 10, 3, 191, 107, 10, 3, 191, 86, 10, 3, 191, 30, 10, 3, 191, 31, 139, + 191, 30, 10, 3, 191, 29, 10, 3, 191, 27, 10, 3, 191, 28, 222, 116, 199, + 84, 10, 3, 191, 22, 10, 3, 191, 13, 10, 3, 190, 251, 10, 3, 190, 249, 10, + 3, 190, 250, 25, 65, 10, 3, 190, 248, 10, 3, 190, 247, 10, 3, 222, 79, + 234, 137, 10, 3, 252, 156, 25, 212, 130, 10, 3, 252, 73, 25, 65, 10, 3, + 251, 146, 25, 220, 213, 10, 3, 238, 23, 221, 125, 25, 196, 170, 108, 217, + 39, 10, 3, 238, 21, 10, 3, 236, 223, 108, 203, 5, 10, 3, 235, 88, 25, + 203, 113, 10, 3, 233, 181, 25, 230, 168, 10, 3, 233, 181, 25, 203, 113, + 10, 3, 231, 239, 25, 251, 133, 108, 222, 97, 108, 65, 10, 3, 231, 239, + 25, 250, 207, 10, 3, 231, 164, 10, 3, 231, 42, 10, 3, 228, 131, 10, 3, + 222, 142, 25, 251, 91, 10, 3, 222, 142, 25, 250, 206, 10, 3, 222, 142, + 25, 231, 23, 10, 3, 222, 142, 25, 230, 168, 10, 3, 222, 142, 25, 229, + 159, 25, 250, 207, 10, 3, 222, 142, 25, 218, 208, 10, 3, 222, 142, 25, + 168, 10, 3, 222, 142, 25, 202, 253, 10, 3, 222, 142, 25, 197, 94, 10, 3, + 222, 142, 25, 196, 60, 10, 3, 220, 105, 25, 231, 53, 10, 3, 218, 224, + 203, 95, 25, 249, 135, 10, 3, 218, 224, 25, 234, 10, 108, 220, 37, 10, 3, + 218, 224, 25, 203, 5, 10, 3, 216, 172, 10, 3, 215, 100, 25, 191, 123, 10, + 3, 214, 252, 10, 3, 213, 179, 10, 3, 213, 178, 10, 3, 213, 177, 25, 249, + 115, 10, 3, 213, 177, 25, 231, 53, 10, 3, 212, 148, 206, 122, 213, 170, + 237, 124, 10, 3, 209, 244, 250, 193, 10, 3, 209, 125, 10, 3, 205, 186, + 25, 223, 202, 230, 155, 10, 3, 198, 185, 10, 3, 196, 121, 25, 216, 232, + 10, 3, 126, 66, 10, 167, 3, 105, 250, 209, 10, 167, 3, 115, 250, 209, 10, + 167, 3, 232, 128, 250, 209, 10, 167, 3, 232, 226, 250, 209, 10, 167, 3, + 202, 136, 250, 209, 10, 167, 3, 203, 247, 250, 209, 10, 167, 3, 234, 164, + 250, 209, 10, 167, 3, 213, 175, 250, 209, 10, 167, 3, 115, 236, 222, 10, + 167, 3, 232, 128, 236, 222, 10, 167, 3, 232, 226, 236, 222, 10, 167, 3, + 202, 136, 236, 222, 10, 167, 3, 203, 247, 236, 222, 10, 167, 3, 234, 164, + 236, 222, 10, 167, 3, 213, 175, 236, 222, 10, 167, 3, 232, 128, 66, 10, + 167, 3, 232, 226, 66, 10, 167, 3, 202, 136, 66, 10, 167, 3, 203, 247, 66, + 10, 167, 3, 234, 164, 66, 10, 167, 3, 213, 175, 66, 10, 167, 3, 91, 231, + 136, 10, 167, 3, 105, 231, 136, 10, 167, 3, 115, 231, 136, 10, 167, 3, + 232, 128, 231, 136, 10, 167, 3, 232, 226, 231, 136, 10, 167, 3, 202, 136, + 231, 136, 10, 167, 3, 203, 247, 231, 136, 10, 167, 3, 234, 164, 231, 136, + 10, 167, 3, 213, 175, 231, 136, 10, 167, 3, 91, 231, 133, 10, 167, 3, + 105, 231, 133, 10, 167, 3, 115, 231, 133, 10, 167, 3, 232, 128, 231, 133, + 10, 167, 3, 232, 226, 231, 133, 10, 167, 3, 105, 203, 131, 10, 167, 3, + 115, 203, 131, 10, 167, 3, 115, 203, 132, 195, 168, 20, 10, 167, 3, 232, + 128, 203, 131, 10, 167, 3, 232, 226, 203, 131, 10, 167, 3, 202, 136, 203, + 131, 10, 167, 3, 203, 247, 203, 131, 10, 167, 3, 234, 164, 203, 131, 10, + 167, 3, 213, 175, 203, 131, 10, 167, 3, 91, 203, 124, 10, 167, 3, 105, + 203, 124, 10, 167, 3, 115, 203, 124, 10, 167, 3, 115, 203, 125, 195, 168, + 20, 10, 167, 3, 232, 128, 203, 124, 10, 167, 3, 232, 226, 203, 124, 10, + 167, 3, 203, 132, 25, 231, 223, 108, 236, 222, 10, 167, 3, 203, 132, 25, + 231, 223, 108, 216, 44, 10, 167, 3, 91, 247, 226, 10, 167, 3, 105, 247, + 226, 10, 167, 3, 115, 247, 226, 10, 167, 3, 115, 247, 227, 195, 168, 20, + 10, 167, 3, 232, 128, 247, 226, 10, 167, 3, 232, 226, 247, 226, 10, 167, + 3, 115, 195, 168, 232, 146, 234, 11, 10, 167, 3, 115, 195, 168, 232, 146, + 234, 8, 10, 167, 3, 232, 128, 195, 168, 232, 146, 219, 116, 10, 167, 3, + 232, 128, 195, 168, 232, 146, 219, 114, 10, 167, 3, 232, 128, 195, 168, + 232, 146, 219, 117, 65, 10, 167, 3, 232, 128, 195, 168, 232, 146, 219, + 117, 250, 120, 10, 167, 3, 202, 136, 195, 168, 232, 146, 250, 205, 10, + 167, 3, 203, 247, 195, 168, 232, 146, 223, 171, 10, 167, 3, 203, 247, + 195, 168, 232, 146, 223, 173, 65, 10, 167, 3, 203, 247, 195, 168, 232, + 146, 223, 173, 250, 120, 10, 167, 3, 234, 164, 195, 168, 232, 146, 196, + 33, 10, 167, 3, 234, 164, 195, 168, 232, 146, 196, 32, 10, 167, 3, 213, + 175, 195, 168, 232, 146, 223, 188, 10, 167, 3, 213, 175, 195, 168, 232, + 146, 223, 187, 10, 167, 3, 213, 175, 195, 168, 232, 146, 223, 186, 10, + 167, 3, 213, 175, 195, 168, 232, 146, 223, 189, 65, 10, 167, 3, 105, 250, + 210, 199, 84, 10, 167, 3, 115, 250, 210, 199, 84, 10, 167, 3, 232, 128, + 250, 210, 199, 84, 10, 167, 3, 232, 226, 250, 210, 199, 84, 10, 167, 3, + 202, 136, 250, 210, 199, 84, 10, 167, 3, 91, 249, 99, 10, 167, 3, 105, + 249, 99, 10, 167, 3, 115, 249, 99, 10, 167, 3, 232, 128, 249, 99, 10, + 167, 3, 232, 128, 249, 100, 195, 168, 20, 10, 167, 3, 232, 226, 249, 99, + 10, 167, 3, 232, 226, 249, 100, 195, 168, 20, 10, 167, 3, 213, 188, 10, + 167, 3, 213, 189, 10, 167, 3, 91, 234, 7, 10, 167, 3, 105, 234, 7, 10, + 167, 3, 91, 199, 1, 236, 222, 10, 167, 3, 105, 198, 254, 236, 222, 10, + 167, 3, 232, 226, 202, 123, 236, 222, 10, 167, 3, 91, 199, 1, 195, 168, + 232, 146, 65, 10, 167, 3, 105, 198, 254, 195, 168, 232, 146, 65, 10, 167, + 3, 91, 234, 160, 250, 209, 10, 167, 3, 91, 208, 23, 250, 209, 10, 167, 3, + 39, 250, 196, 91, 202, 124, 10, 167, 3, 39, 250, 196, 91, 208, 22, 10, + 167, 3, 91, 208, 23, 230, 149, 10, 167, 3, 91, 132, 230, 149, 10, 167, 3, + 234, 138, 91, 199, 0, 10, 167, 3, 234, 138, 105, 198, 253, 10, 167, 3, + 234, 138, 232, 135, 10, 167, 3, 234, 138, 233, 15, 10, 167, 3, 232, 128, + 126, 195, 168, 20, 10, 167, 3, 232, 226, 126, 195, 168, 20, 10, 167, 3, + 202, 136, 126, 195, 168, 20, 10, 167, 3, 203, 247, 126, 195, 168, 20, 10, + 167, 3, 234, 164, 126, 195, 168, 20, 10, 167, 3, 213, 175, 126, 195, 168, + 20, 10, 208, 152, 3, 39, 250, 196, 193, 23, 236, 205, 10, 208, 152, 3, + 81, 242, 83, 10, 208, 152, 3, 237, 39, 242, 83, 10, 208, 152, 3, 237, 39, + 197, 237, 10, 208, 152, 3, 237, 39, 208, 29, 10, 3, 252, 156, 25, 212, + 131, 199, 84, 10, 3, 252, 156, 25, 203, 3, 10, 3, 252, 43, 25, 234, 9, + 10, 3, 249, 136, 25, 236, 223, 199, 84, 10, 3, 249, 122, 25, 252, 72, 10, + 3, 249, 122, 25, 213, 219, 10, 3, 249, 122, 25, 191, 123, 10, 3, 248, 11, + 139, 248, 11, 25, 214, 253, 10, 3, 238, 33, 25, 199, 209, 10, 3, 238, 23, + 25, 220, 197, 10, 3, 237, 0, 25, 223, 201, 10, 3, 237, 0, 25, 126, 126, + 66, 10, 3, 236, 254, 25, 196, 158, 10, 3, 235, 83, 25, 251, 91, 10, 3, + 235, 83, 25, 250, 209, 10, 3, 235, 83, 25, 250, 210, 250, 183, 219, 224, + 10, 3, 235, 83, 25, 236, 243, 10, 3, 235, 83, 25, 235, 75, 10, 3, 235, + 83, 25, 234, 28, 10, 3, 235, 83, 25, 231, 240, 10, 3, 235, 83, 25, 231, + 53, 10, 3, 235, 83, 25, 231, 33, 230, 155, 10, 3, 235, 83, 25, 231, 23, + 10, 3, 235, 83, 25, 140, 10, 3, 235, 83, 25, 229, 158, 10, 3, 235, 83, + 25, 223, 202, 230, 155, 10, 3, 235, 83, 25, 222, 54, 10, 3, 235, 83, 25, + 220, 197, 10, 3, 235, 83, 25, 220, 190, 10, 3, 235, 83, 25, 220, 191, + 108, 222, 54, 10, 3, 235, 83, 25, 220, 92, 10, 3, 235, 83, 25, 220, 35, + 10, 3, 235, 83, 25, 220, 36, 25, 220, 197, 10, 3, 235, 83, 25, 218, 214, + 108, 231, 23, 10, 3, 235, 83, 25, 217, 39, 10, 3, 235, 83, 25, 216, 173, + 10, 3, 235, 83, 25, 216, 100, 10, 3, 235, 83, 25, 213, 219, 10, 3, 235, + 83, 25, 209, 185, 10, 3, 235, 83, 25, 203, 113, 10, 3, 235, 83, 25, 202, + 223, 230, 155, 10, 3, 234, 219, 25, 220, 197, 10, 3, 234, 219, 25, 210, + 137, 10, 3, 234, 29, 192, 235, 10, 3, 234, 10, 238, 210, 234, 9, 10, 3, + 233, 181, 203, 95, 25, 250, 209, 10, 3, 233, 181, 203, 95, 25, 229, 158, + 10, 3, 233, 181, 203, 95, 25, 223, 202, 230, 155, 10, 3, 233, 181, 203, + 95, 25, 173, 10, 3, 233, 181, 203, 95, 25, 220, 37, 10, 3, 233, 181, 203, + 95, 25, 216, 232, 10, 3, 233, 181, 203, 95, 25, 216, 173, 10, 3, 233, + 181, 203, 95, 25, 201, 4, 10, 3, 233, 181, 25, 201, 4, 10, 3, 231, 239, + 25, 249, 121, 10, 3, 231, 239, 25, 237, 0, 230, 155, 10, 3, 231, 239, 25, + 235, 83, 25, 223, 202, 230, 155, 10, 3, 231, 239, 25, 235, 83, 25, 222, + 54, 10, 3, 231, 239, 25, 234, 31, 10, 3, 231, 239, 25, 231, 240, 10, 3, + 231, 239, 25, 231, 201, 108, 237, 44, 10, 3, 231, 239, 25, 231, 201, 108, + 214, 121, 10, 3, 231, 239, 25, 230, 105, 108, 65, 10, 3, 231, 239, 25, + 220, 191, 108, 222, 54, 10, 3, 231, 239, 25, 220, 35, 10, 3, 231, 239, + 25, 220, 36, 25, 220, 197, 10, 3, 231, 239, 25, 218, 213, 10, 3, 231, + 239, 25, 215, 101, 10, 3, 231, 239, 25, 214, 121, 10, 3, 231, 239, 25, + 214, 122, 108, 234, 218, 10, 3, 231, 239, 25, 214, 122, 108, 231, 53, 10, + 3, 231, 239, 25, 203, 73, 10, 3, 231, 239, 25, 191, 13, 10, 3, 231, 234, + 206, 122, 213, 170, 237, 124, 10, 3, 231, 135, 25, 66, 10, 3, 231, 24, + 25, 231, 24, 238, 210, 231, 23, 10, 3, 230, 178, 25, 223, 202, 230, 155, + 10, 3, 230, 169, 108, 231, 24, 25, 199, 209, 10, 3, 230, 105, 199, 85, + 230, 155, 10, 3, 229, 159, 25, 250, 210, 139, 229, 159, 25, 250, 209, 10, + 3, 222, 142, 25, 248, 10, 10, 3, 222, 142, 25, 155, 10, 3, 222, 142, 25, + 126, 126, 66, 10, 3, 222, 142, 25, 196, 62, 10, 3, 220, 105, 25, 190, + 252, 139, 190, 251, 10, 3, 220, 93, 10, 3, 220, 91, 10, 3, 220, 90, 10, + 3, 220, 89, 10, 3, 220, 88, 10, 3, 220, 87, 10, 3, 220, 86, 10, 3, 220, + 85, 139, 220, 85, 230, 155, 10, 3, 220, 84, 10, 3, 220, 83, 139, 220, 82, + 10, 3, 220, 81, 10, 3, 220, 80, 10, 3, 220, 79, 10, 3, 220, 78, 10, 3, + 220, 77, 10, 3, 220, 76, 10, 3, 220, 75, 10, 3, 220, 74, 10, 3, 220, 73, + 10, 3, 220, 72, 10, 3, 220, 71, 10, 3, 220, 70, 10, 3, 220, 69, 10, 3, + 220, 68, 10, 3, 220, 67, 10, 3, 220, 66, 10, 3, 220, 65, 10, 3, 220, 64, + 10, 3, 220, 62, 10, 3, 220, 63, 25, 230, 179, 10, 3, 220, 63, 25, 223, + 201, 10, 3, 220, 63, 25, 210, 138, 108, 218, 222, 10, 3, 220, 63, 25, + 210, 138, 108, 210, 138, 108, 218, 222, 10, 3, 220, 63, 25, 196, 170, + 108, 249, 153, 10, 3, 220, 61, 10, 3, 220, 60, 10, 3, 220, 59, 10, 3, 220, 58, 10, 3, 220, 57, 10, 3, 220, 56, 10, 3, 220, 55, 10, 3, 220, 54, - 10, 3, 220, 53, 10, 3, 220, 52, 10, 3, 220, 51, 10, 3, 220, 50, 10, 3, - 220, 49, 10, 3, 220, 48, 10, 3, 220, 47, 10, 3, 220, 46, 10, 3, 220, 45, - 10, 3, 220, 44, 10, 3, 220, 43, 10, 3, 220, 42, 10, 3, 220, 41, 10, 3, - 220, 40, 10, 3, 220, 38, 10, 3, 220, 39, 25, 230, 146, 10, 3, 220, 39, - 25, 223, 172, 10, 3, 220, 39, 25, 210, 128, 107, 218, 200, 10, 3, 220, - 39, 25, 210, 128, 107, 210, 128, 107, 218, 200, 10, 3, 220, 39, 25, 196, - 166, 107, 249, 103, 10, 3, 220, 37, 10, 3, 220, 36, 10, 3, 220, 35, 10, - 3, 220, 34, 10, 3, 220, 33, 10, 3, 220, 32, 10, 3, 220, 31, 10, 3, 220, - 30, 10, 3, 220, 29, 10, 3, 220, 28, 10, 3, 220, 26, 10, 3, 220, 27, 25, - 250, 159, 10, 3, 220, 27, 25, 249, 85, 10, 3, 220, 27, 25, 235, 30, 230, - 123, 230, 122, 10, 3, 220, 27, 25, 220, 199, 10, 3, 220, 27, 25, 171, 10, - 3, 220, 27, 25, 199, 174, 10, 3, 220, 27, 25, 199, 140, 10, 3, 220, 27, - 25, 196, 165, 10, 3, 220, 27, 25, 196, 154, 10, 3, 220, 27, 25, 196, 45, - 10, 3, 220, 25, 10, 3, 220, 23, 10, 3, 220, 24, 25, 235, 43, 10, 3, 220, - 24, 25, 231, 203, 10, 3, 220, 24, 25, 223, 172, 10, 3, 220, 24, 25, 223, - 173, 230, 122, 10, 3, 220, 24, 25, 213, 205, 10, 3, 220, 24, 25, 210, - 128, 107, 210, 128, 107, 218, 200, 10, 3, 220, 24, 25, 203, 93, 107, 221, - 142, 10, 3, 220, 24, 25, 196, 154, 10, 3, 220, 24, 25, 196, 45, 10, 3, - 220, 21, 10, 3, 220, 20, 10, 3, 218, 202, 230, 123, 25, 250, 159, 10, 3, - 218, 202, 25, 236, 177, 10, 3, 218, 202, 25, 230, 40, 10, 3, 218, 202, - 25, 210, 127, 10, 3, 218, 202, 25, 210, 128, 107, 210, 128, 107, 218, - 200, 10, 3, 218, 202, 25, 199, 204, 10, 3, 216, 82, 107, 191, 122, 10, 3, - 215, 88, 138, 215, 88, 25, 231, 203, 10, 3, 215, 88, 138, 215, 88, 25, - 222, 69, 10, 3, 213, 163, 25, 236, 211, 230, 122, 10, 3, 213, 163, 25, - 230, 243, 10, 3, 213, 163, 25, 230, 127, 10, 3, 213, 163, 25, 229, 126, - 10, 3, 213, 163, 25, 221, 217, 10, 3, 213, 163, 25, 220, 64, 10, 3, 213, - 163, 25, 217, 20, 10, 3, 213, 163, 25, 210, 128, 107, 210, 127, 10, 3, - 213, 163, 25, 69, 10, 3, 213, 163, 25, 126, 107, 69, 10, 3, 213, 163, 25, - 196, 45, 10, 3, 205, 181, 230, 123, 25, 144, 10, 3, 205, 181, 25, 234, - 61, 10, 3, 205, 181, 25, 203, 109, 250, 133, 219, 200, 10, 3, 205, 181, - 25, 199, 204, 10, 3, 203, 157, 199, 79, 10, 3, 203, 109, 138, 203, 108, - 10, 3, 203, 109, 107, 228, 120, 10, 3, 203, 109, 107, 214, 215, 10, 3, - 203, 109, 107, 205, 122, 10, 3, 202, 255, 107, 235, 39, 25, 213, 205, 10, - 3, 202, 255, 107, 234, 175, 25, 251, 81, 10, 3, 202, 218, 25, 199, 204, - 10, 3, 199, 205, 107, 205, 180, 10, 3, 197, 73, 25, 231, 172, 199, 79, - 10, 3, 197, 73, 25, 115, 236, 177, 10, 3, 196, 57, 223, 64, 10, 3, 196, - 57, 25, 196, 154, 10, 3, 196, 48, 25, 237, 179, 10, 3, 196, 48, 25, 220, - 22, 10, 3, 196, 48, 25, 218, 200, 10, 3, 191, 122, 10, 3, 190, 252, 138, - 190, 252, 107, 205, 122, 10, 3, 190, 250, 25, 115, 236, 178, 199, 79, - 238, 87, 3, 242, 150, 238, 87, 3, 242, 149, 238, 87, 3, 242, 148, 238, - 87, 3, 242, 147, 238, 87, 3, 242, 146, 238, 87, 3, 242, 145, 238, 87, 3, - 242, 144, 238, 87, 3, 242, 143, 238, 87, 3, 242, 142, 238, 87, 3, 242, - 141, 238, 87, 3, 242, 140, 238, 87, 3, 242, 139, 238, 87, 3, 242, 138, - 238, 87, 3, 242, 137, 238, 87, 3, 242, 136, 238, 87, 3, 242, 135, 238, - 87, 3, 242, 134, 238, 87, 3, 242, 133, 238, 87, 3, 242, 132, 238, 87, 3, - 242, 131, 238, 87, 3, 242, 130, 238, 87, 3, 242, 129, 238, 87, 3, 242, - 128, 238, 87, 3, 242, 127, 238, 87, 3, 242, 126, 238, 87, 3, 242, 125, - 238, 87, 3, 242, 124, 238, 87, 3, 242, 123, 238, 87, 3, 242, 122, 238, - 87, 3, 242, 121, 238, 87, 3, 242, 120, 238, 87, 3, 242, 119, 238, 87, 3, - 242, 118, 238, 87, 3, 242, 117, 238, 87, 3, 242, 116, 238, 87, 3, 242, - 115, 238, 87, 3, 242, 114, 238, 87, 3, 242, 113, 238, 87, 3, 242, 112, - 238, 87, 3, 242, 111, 238, 87, 3, 242, 110, 238, 87, 3, 242, 109, 238, - 87, 3, 242, 108, 238, 87, 3, 242, 107, 238, 87, 3, 242, 106, 238, 87, 3, - 242, 105, 238, 87, 3, 242, 104, 238, 87, 3, 242, 103, 238, 87, 3, 242, - 102, 238, 87, 3, 242, 101, 238, 87, 3, 242, 100, 238, 87, 3, 242, 99, - 238, 87, 3, 242, 98, 238, 87, 3, 242, 97, 238, 87, 3, 242, 96, 238, 87, - 3, 242, 95, 238, 87, 3, 242, 94, 238, 87, 3, 242, 93, 238, 87, 3, 242, - 92, 238, 87, 3, 242, 91, 238, 87, 3, 242, 90, 238, 87, 3, 242, 89, 238, - 87, 3, 242, 88, 238, 87, 3, 242, 87, 238, 87, 3, 242, 86, 238, 87, 3, - 242, 85, 238, 87, 3, 242, 84, 238, 87, 3, 242, 83, 238, 87, 3, 242, 82, - 238, 87, 3, 242, 81, 238, 87, 3, 242, 80, 238, 87, 3, 242, 79, 238, 87, - 3, 242, 78, 238, 87, 3, 242, 77, 238, 87, 3, 242, 76, 238, 87, 3, 242, - 75, 238, 87, 3, 242, 74, 238, 87, 3, 242, 73, 238, 87, 3, 242, 72, 238, - 87, 3, 242, 71, 238, 87, 3, 242, 70, 238, 87, 3, 242, 69, 238, 87, 3, - 242, 68, 238, 87, 3, 242, 67, 238, 87, 3, 242, 66, 238, 87, 3, 242, 65, - 238, 87, 3, 242, 64, 238, 87, 3, 242, 63, 238, 87, 3, 242, 62, 238, 87, - 3, 242, 61, 238, 87, 3, 242, 60, 238, 87, 3, 242, 59, 238, 87, 3, 242, - 58, 238, 87, 3, 242, 57, 238, 87, 3, 242, 56, 238, 87, 3, 242, 55, 238, - 87, 3, 242, 54, 238, 87, 3, 242, 53, 238, 87, 3, 242, 52, 14, 7, 255, - 147, 14, 7, 255, 146, 14, 7, 255, 145, 14, 7, 255, 144, 14, 7, 255, 143, - 14, 7, 255, 142, 14, 7, 255, 141, 14, 7, 255, 140, 14, 7, 255, 139, 14, - 7, 255, 138, 14, 7, 255, 137, 14, 7, 255, 136, 14, 7, 255, 135, 14, 7, - 255, 133, 14, 7, 255, 132, 14, 7, 255, 131, 14, 7, 255, 130, 14, 7, 255, - 129, 14, 7, 255, 128, 14, 7, 255, 127, 14, 7, 255, 126, 14, 7, 255, 125, - 14, 7, 255, 124, 14, 7, 255, 123, 14, 7, 255, 122, 14, 7, 255, 121, 14, - 7, 255, 120, 14, 7, 255, 119, 14, 7, 255, 118, 14, 7, 255, 117, 14, 7, - 255, 116, 14, 7, 255, 114, 14, 7, 255, 113, 14, 7, 255, 111, 14, 7, 255, - 110, 14, 7, 255, 109, 14, 7, 255, 108, 14, 7, 255, 107, 14, 7, 255, 106, - 14, 7, 255, 105, 14, 7, 255, 104, 14, 7, 255, 103, 14, 7, 255, 102, 14, - 7, 255, 101, 14, 7, 255, 100, 14, 7, 255, 98, 14, 7, 255, 97, 14, 7, 255, - 96, 14, 7, 255, 94, 14, 7, 255, 93, 14, 7, 255, 92, 14, 7, 255, 91, 14, - 7, 255, 90, 14, 7, 255, 89, 14, 7, 255, 88, 14, 7, 255, 87, 14, 7, 255, - 84, 14, 7, 255, 83, 14, 7, 255, 82, 14, 7, 255, 81, 14, 7, 255, 80, 14, - 7, 255, 79, 14, 7, 255, 78, 14, 7, 255, 77, 14, 7, 255, 76, 14, 7, 255, - 75, 14, 7, 255, 74, 14, 7, 255, 73, 14, 7, 255, 72, 14, 7, 255, 71, 14, - 7, 255, 70, 14, 7, 255, 69, 14, 7, 255, 68, 14, 7, 255, 67, 14, 7, 255, - 66, 14, 7, 255, 65, 14, 7, 255, 61, 14, 7, 255, 60, 14, 7, 255, 59, 14, - 7, 255, 58, 14, 7, 250, 68, 14, 7, 250, 66, 14, 7, 250, 64, 14, 7, 250, - 62, 14, 7, 250, 60, 14, 7, 250, 59, 14, 7, 250, 57, 14, 7, 250, 55, 14, - 7, 250, 53, 14, 7, 250, 51, 14, 7, 247, 141, 14, 7, 247, 140, 14, 7, 247, - 139, 14, 7, 247, 138, 14, 7, 247, 137, 14, 7, 247, 136, 14, 7, 247, 135, - 14, 7, 247, 134, 14, 7, 247, 133, 14, 7, 247, 132, 14, 7, 247, 131, 14, - 7, 247, 130, 14, 7, 247, 129, 14, 7, 247, 128, 14, 7, 247, 127, 14, 7, - 247, 126, 14, 7, 247, 125, 14, 7, 247, 124, 14, 7, 247, 123, 14, 7, 247, - 122, 14, 7, 247, 121, 14, 7, 247, 120, 14, 7, 247, 119, 14, 7, 247, 118, - 14, 7, 247, 117, 14, 7, 247, 116, 14, 7, 247, 115, 14, 7, 247, 114, 14, - 7, 238, 79, 14, 7, 238, 78, 14, 7, 238, 77, 14, 7, 238, 76, 14, 7, 238, - 75, 14, 7, 238, 74, 14, 7, 238, 73, 14, 7, 238, 72, 14, 7, 238, 71, 14, - 7, 238, 70, 14, 7, 238, 69, 14, 7, 238, 68, 14, 7, 238, 67, 14, 7, 238, - 66, 14, 7, 238, 65, 14, 7, 238, 64, 14, 7, 238, 63, 14, 7, 238, 62, 14, - 7, 238, 61, 14, 7, 238, 60, 14, 7, 238, 59, 14, 7, 238, 58, 14, 7, 238, - 57, 14, 7, 238, 56, 14, 7, 238, 55, 14, 7, 238, 54, 14, 7, 238, 53, 14, - 7, 238, 52, 14, 7, 238, 51, 14, 7, 238, 50, 14, 7, 238, 49, 14, 7, 238, - 48, 14, 7, 238, 47, 14, 7, 238, 46, 14, 7, 238, 45, 14, 7, 238, 44, 14, - 7, 238, 43, 14, 7, 238, 42, 14, 7, 238, 41, 14, 7, 238, 40, 14, 7, 238, - 39, 14, 7, 238, 38, 14, 7, 238, 37, 14, 7, 238, 36, 14, 7, 238, 35, 14, - 7, 238, 34, 14, 7, 238, 33, 14, 7, 238, 32, 14, 7, 238, 31, 14, 7, 238, - 30, 14, 7, 238, 29, 14, 7, 238, 28, 14, 7, 238, 27, 14, 7, 238, 26, 14, - 7, 238, 25, 14, 7, 238, 24, 14, 7, 238, 23, 14, 7, 238, 22, 14, 7, 238, - 21, 14, 7, 238, 20, 14, 7, 238, 19, 14, 7, 238, 18, 14, 7, 238, 17, 14, - 7, 238, 16, 14, 7, 238, 15, 14, 7, 238, 14, 14, 7, 238, 13, 14, 7, 238, - 12, 14, 7, 238, 11, 14, 7, 238, 10, 14, 7, 238, 9, 14, 7, 238, 8, 14, 7, - 238, 7, 14, 7, 238, 6, 14, 7, 238, 5, 14, 7, 238, 4, 14, 7, 238, 3, 14, - 7, 238, 2, 14, 7, 238, 1, 14, 7, 238, 0, 14, 7, 237, 255, 14, 7, 237, - 254, 14, 7, 237, 253, 14, 7, 237, 252, 14, 7, 237, 251, 14, 7, 237, 250, - 14, 7, 237, 249, 14, 7, 237, 248, 14, 7, 237, 247, 14, 7, 237, 246, 14, - 7, 237, 245, 14, 7, 237, 244, 14, 7, 234, 219, 14, 7, 234, 218, 14, 7, - 234, 217, 14, 7, 234, 216, 14, 7, 234, 215, 14, 7, 234, 214, 14, 7, 234, - 213, 14, 7, 234, 212, 14, 7, 234, 211, 14, 7, 234, 210, 14, 7, 234, 209, - 14, 7, 234, 208, 14, 7, 234, 207, 14, 7, 234, 206, 14, 7, 234, 205, 14, - 7, 234, 204, 14, 7, 234, 203, 14, 7, 234, 202, 14, 7, 234, 201, 14, 7, - 234, 200, 14, 7, 234, 199, 14, 7, 234, 198, 14, 7, 234, 197, 14, 7, 234, - 196, 14, 7, 234, 195, 14, 7, 234, 194, 14, 7, 234, 193, 14, 7, 234, 192, - 14, 7, 234, 191, 14, 7, 234, 190, 14, 7, 234, 189, 14, 7, 234, 188, 14, - 7, 234, 187, 14, 7, 234, 186, 14, 7, 234, 185, 14, 7, 234, 184, 14, 7, - 234, 183, 14, 7, 234, 182, 14, 7, 234, 181, 14, 7, 234, 180, 14, 7, 234, - 179, 14, 7, 234, 178, 14, 7, 234, 177, 14, 7, 234, 176, 14, 7, 233, 133, - 14, 7, 233, 132, 14, 7, 233, 131, 14, 7, 233, 130, 14, 7, 233, 129, 14, - 7, 233, 128, 14, 7, 233, 127, 14, 7, 233, 126, 14, 7, 233, 125, 14, 7, - 233, 124, 14, 7, 233, 123, 14, 7, 233, 122, 14, 7, 233, 121, 14, 7, 233, - 120, 14, 7, 233, 119, 14, 7, 233, 118, 14, 7, 233, 117, 14, 7, 233, 116, - 14, 7, 233, 115, 14, 7, 233, 114, 14, 7, 233, 113, 14, 7, 233, 112, 14, - 7, 233, 111, 14, 7, 233, 110, 14, 7, 233, 109, 14, 7, 233, 108, 14, 7, - 233, 107, 14, 7, 233, 106, 14, 7, 233, 105, 14, 7, 233, 104, 14, 7, 233, - 103, 14, 7, 233, 102, 14, 7, 233, 101, 14, 7, 233, 100, 14, 7, 233, 99, - 14, 7, 233, 98, 14, 7, 233, 97, 14, 7, 233, 96, 14, 7, 233, 95, 14, 7, - 233, 94, 14, 7, 233, 93, 14, 7, 233, 92, 14, 7, 233, 91, 14, 7, 233, 90, - 14, 7, 233, 89, 14, 7, 233, 88, 14, 7, 233, 87, 14, 7, 233, 86, 14, 7, - 233, 85, 14, 7, 233, 84, 14, 7, 233, 83, 14, 7, 233, 82, 14, 7, 233, 81, - 14, 7, 233, 80, 14, 7, 233, 79, 14, 7, 233, 78, 14, 7, 233, 77, 14, 7, - 233, 76, 14, 7, 233, 75, 14, 7, 233, 74, 14, 7, 233, 73, 14, 7, 233, 72, - 14, 7, 233, 71, 14, 7, 233, 70, 14, 7, 233, 69, 14, 7, 232, 13, 14, 7, - 232, 12, 14, 7, 232, 11, 14, 7, 232, 10, 14, 7, 232, 9, 14, 7, 232, 8, - 14, 7, 232, 7, 14, 7, 232, 6, 14, 7, 232, 5, 14, 7, 232, 4, 14, 7, 232, - 3, 14, 7, 232, 2, 14, 7, 232, 1, 14, 7, 232, 0, 14, 7, 231, 255, 14, 7, - 231, 254, 14, 7, 231, 253, 14, 7, 231, 252, 14, 7, 231, 251, 14, 7, 231, - 250, 14, 7, 231, 249, 14, 7, 231, 248, 14, 7, 231, 247, 14, 7, 231, 246, - 14, 7, 231, 245, 14, 7, 231, 244, 14, 7, 231, 243, 14, 7, 231, 242, 14, - 7, 231, 241, 14, 7, 231, 240, 14, 7, 231, 239, 14, 7, 231, 238, 14, 7, - 231, 237, 14, 7, 231, 236, 14, 7, 231, 235, 14, 7, 231, 234, 14, 7, 231, - 233, 14, 7, 231, 232, 14, 7, 231, 231, 14, 7, 231, 230, 14, 7, 231, 229, - 14, 7, 231, 228, 14, 7, 231, 227, 14, 7, 231, 226, 14, 7, 231, 225, 14, - 7, 231, 224, 14, 7, 231, 223, 14, 7, 231, 222, 14, 7, 231, 221, 14, 7, - 231, 220, 14, 7, 231, 219, 14, 7, 231, 218, 14, 7, 231, 217, 14, 7, 231, - 216, 14, 7, 231, 215, 14, 7, 231, 214, 14, 7, 231, 213, 14, 7, 231, 212, - 14, 7, 231, 211, 14, 7, 231, 210, 14, 7, 231, 209, 14, 7, 231, 208, 14, - 7, 231, 207, 14, 7, 231, 206, 14, 7, 230, 81, 14, 7, 230, 80, 14, 7, 230, - 79, 14, 7, 230, 78, 14, 7, 230, 77, 14, 7, 230, 76, 14, 7, 230, 75, 14, - 7, 230, 74, 14, 7, 230, 73, 14, 7, 228, 24, 14, 7, 228, 23, 14, 7, 228, - 22, 14, 7, 228, 21, 14, 7, 228, 20, 14, 7, 228, 19, 14, 7, 228, 18, 14, - 7, 228, 17, 14, 7, 228, 16, 14, 7, 228, 15, 14, 7, 228, 14, 14, 7, 228, - 13, 14, 7, 228, 12, 14, 7, 228, 11, 14, 7, 228, 10, 14, 7, 228, 9, 14, 7, - 228, 8, 14, 7, 228, 7, 14, 7, 228, 6, 14, 7, 222, 124, 14, 7, 222, 123, - 14, 7, 222, 122, 14, 7, 222, 121, 14, 7, 222, 120, 14, 7, 222, 119, 14, - 7, 222, 118, 14, 7, 222, 117, 14, 7, 220, 116, 14, 7, 220, 115, 14, 7, - 220, 114, 14, 7, 220, 113, 14, 7, 220, 112, 14, 7, 220, 111, 14, 7, 220, - 110, 14, 7, 220, 109, 14, 7, 220, 108, 14, 7, 220, 107, 14, 7, 218, 145, - 14, 7, 218, 144, 14, 7, 218, 143, 14, 7, 218, 141, 14, 7, 218, 139, 14, - 7, 218, 138, 14, 7, 218, 136, 14, 7, 218, 134, 14, 7, 218, 132, 14, 7, - 218, 130, 14, 7, 218, 128, 14, 7, 218, 126, 14, 7, 218, 124, 14, 7, 218, - 123, 14, 7, 218, 121, 14, 7, 218, 119, 14, 7, 218, 118, 14, 7, 218, 117, - 14, 7, 218, 116, 14, 7, 218, 115, 14, 7, 218, 114, 14, 7, 218, 113, 14, - 7, 218, 112, 14, 7, 218, 111, 14, 7, 218, 109, 14, 7, 218, 107, 14, 7, - 218, 105, 14, 7, 218, 104, 14, 7, 218, 102, 14, 7, 218, 101, 14, 7, 218, - 99, 14, 7, 218, 98, 14, 7, 218, 96, 14, 7, 218, 94, 14, 7, 218, 92, 14, - 7, 218, 90, 14, 7, 218, 88, 14, 7, 218, 87, 14, 7, 218, 85, 14, 7, 218, - 83, 14, 7, 218, 82, 14, 7, 218, 80, 14, 7, 218, 78, 14, 7, 218, 76, 14, - 7, 218, 74, 14, 7, 218, 73, 14, 7, 218, 71, 14, 7, 218, 69, 14, 7, 218, - 67, 14, 7, 218, 66, 14, 7, 218, 64, 14, 7, 218, 62, 14, 7, 218, 61, 14, - 7, 218, 60, 14, 7, 218, 58, 14, 7, 218, 56, 14, 7, 218, 54, 14, 7, 218, - 52, 14, 7, 218, 50, 14, 7, 218, 48, 14, 7, 218, 46, 14, 7, 218, 45, 14, - 7, 218, 43, 14, 7, 218, 41, 14, 7, 218, 39, 14, 7, 218, 37, 14, 7, 215, - 42, 14, 7, 215, 41, 14, 7, 215, 40, 14, 7, 215, 39, 14, 7, 215, 38, 14, - 7, 215, 37, 14, 7, 215, 36, 14, 7, 215, 35, 14, 7, 215, 34, 14, 7, 215, - 33, 14, 7, 215, 32, 14, 7, 215, 31, 14, 7, 215, 30, 14, 7, 215, 29, 14, - 7, 215, 28, 14, 7, 215, 27, 14, 7, 215, 26, 14, 7, 215, 25, 14, 7, 215, - 24, 14, 7, 215, 23, 14, 7, 215, 22, 14, 7, 215, 21, 14, 7, 215, 20, 14, - 7, 215, 19, 14, 7, 215, 18, 14, 7, 215, 17, 14, 7, 215, 16, 14, 7, 215, - 15, 14, 7, 215, 14, 14, 7, 215, 13, 14, 7, 215, 12, 14, 7, 215, 11, 14, - 7, 215, 10, 14, 7, 215, 9, 14, 7, 215, 8, 14, 7, 215, 7, 14, 7, 215, 6, - 14, 7, 215, 5, 14, 7, 215, 4, 14, 7, 215, 3, 14, 7, 215, 2, 14, 7, 215, - 1, 14, 7, 215, 0, 14, 7, 214, 255, 14, 7, 214, 254, 14, 7, 214, 253, 14, - 7, 214, 252, 14, 7, 214, 251, 14, 7, 214, 250, 14, 7, 213, 91, 14, 7, - 213, 90, 14, 7, 213, 89, 14, 7, 213, 88, 14, 7, 213, 87, 14, 7, 213, 86, - 14, 7, 213, 85, 14, 7, 213, 84, 14, 7, 213, 83, 14, 7, 213, 82, 14, 7, - 213, 81, 14, 7, 213, 80, 14, 7, 213, 79, 14, 7, 213, 78, 14, 7, 213, 77, - 14, 7, 213, 76, 14, 7, 213, 75, 14, 7, 213, 74, 14, 7, 213, 73, 14, 7, - 213, 72, 14, 7, 213, 71, 14, 7, 213, 70, 14, 7, 212, 161, 14, 7, 212, - 160, 14, 7, 212, 159, 14, 7, 212, 158, 14, 7, 212, 157, 14, 7, 212, 156, - 14, 7, 212, 155, 14, 7, 212, 154, 14, 7, 212, 153, 14, 7, 212, 152, 14, - 7, 212, 151, 14, 7, 212, 150, 14, 7, 212, 149, 14, 7, 212, 148, 14, 7, - 212, 147, 14, 7, 212, 146, 14, 7, 212, 145, 14, 7, 212, 144, 14, 7, 212, - 143, 14, 7, 212, 142, 14, 7, 212, 141, 14, 7, 212, 140, 14, 7, 212, 139, - 14, 7, 212, 138, 14, 7, 212, 137, 14, 7, 212, 136, 14, 7, 211, 245, 14, - 7, 211, 244, 14, 7, 211, 243, 14, 7, 211, 242, 14, 7, 211, 241, 14, 7, - 211, 240, 14, 7, 211, 239, 14, 7, 211, 238, 14, 7, 211, 237, 14, 7, 211, - 236, 14, 7, 211, 235, 14, 7, 211, 234, 14, 7, 211, 233, 14, 7, 211, 232, - 14, 7, 211, 231, 14, 7, 211, 230, 14, 7, 211, 229, 14, 7, 211, 228, 14, - 7, 211, 227, 14, 7, 211, 226, 14, 7, 211, 225, 14, 7, 211, 224, 14, 7, - 211, 223, 14, 7, 211, 222, 14, 7, 211, 221, 14, 7, 211, 220, 14, 7, 211, - 219, 14, 7, 211, 218, 14, 7, 211, 217, 14, 7, 211, 216, 14, 7, 211, 215, - 14, 7, 211, 214, 14, 7, 211, 213, 14, 7, 211, 212, 14, 7, 211, 211, 14, - 7, 211, 210, 14, 7, 211, 209, 14, 7, 211, 208, 14, 7, 211, 207, 14, 7, - 211, 206, 14, 7, 211, 205, 14, 7, 211, 204, 14, 7, 211, 203, 14, 7, 211, - 202, 14, 7, 211, 201, 14, 7, 211, 200, 14, 7, 211, 199, 14, 7, 211, 198, - 14, 7, 211, 197, 14, 7, 211, 196, 14, 7, 211, 195, 14, 7, 211, 194, 14, - 7, 211, 193, 14, 7, 211, 192, 14, 7, 211, 191, 14, 7, 211, 190, 14, 7, - 211, 189, 14, 7, 211, 188, 14, 7, 211, 187, 14, 7, 211, 186, 14, 7, 211, - 185, 14, 7, 211, 184, 14, 7, 211, 183, 14, 7, 211, 182, 14, 7, 211, 181, - 14, 7, 211, 180, 14, 7, 211, 179, 14, 7, 211, 178, 14, 7, 211, 177, 14, - 7, 211, 176, 14, 7, 211, 175, 14, 7, 211, 174, 14, 7, 211, 173, 14, 7, - 211, 172, 14, 7, 211, 171, 14, 7, 210, 225, 14, 7, 210, 224, 14, 7, 210, - 223, 14, 7, 210, 222, 14, 7, 210, 221, 14, 7, 210, 220, 14, 7, 210, 219, - 14, 7, 210, 218, 14, 7, 210, 217, 14, 7, 210, 216, 14, 7, 210, 215, 14, - 7, 210, 214, 14, 7, 210, 213, 14, 7, 208, 96, 14, 7, 208, 95, 14, 7, 208, - 94, 14, 7, 208, 93, 14, 7, 208, 92, 14, 7, 208, 91, 14, 7, 208, 90, 14, - 7, 207, 215, 14, 7, 207, 214, 14, 7, 207, 213, 14, 7, 207, 212, 14, 7, - 207, 211, 14, 7, 207, 210, 14, 7, 207, 209, 14, 7, 207, 208, 14, 7, 207, - 207, 14, 7, 207, 206, 14, 7, 207, 205, 14, 7, 207, 204, 14, 7, 207, 203, - 14, 7, 207, 202, 14, 7, 207, 201, 14, 7, 207, 200, 14, 7, 207, 199, 14, - 7, 207, 198, 14, 7, 207, 197, 14, 7, 207, 196, 14, 7, 207, 195, 14, 7, - 207, 194, 14, 7, 207, 193, 14, 7, 207, 192, 14, 7, 207, 191, 14, 7, 207, - 190, 14, 7, 207, 189, 14, 7, 207, 188, 14, 7, 207, 187, 14, 7, 207, 186, - 14, 7, 207, 185, 14, 7, 207, 184, 14, 7, 207, 183, 14, 7, 207, 182, 14, - 7, 206, 0, 14, 7, 205, 255, 14, 7, 205, 254, 14, 7, 205, 253, 14, 7, 205, - 252, 14, 7, 205, 251, 14, 7, 205, 250, 14, 7, 205, 249, 14, 7, 205, 248, - 14, 7, 205, 247, 14, 7, 205, 246, 14, 7, 205, 245, 14, 7, 205, 244, 14, - 7, 205, 243, 14, 7, 205, 242, 14, 7, 205, 241, 14, 7, 205, 240, 14, 7, - 205, 239, 14, 7, 205, 238, 14, 7, 205, 237, 14, 7, 205, 236, 14, 7, 205, - 235, 14, 7, 205, 234, 14, 7, 205, 233, 14, 7, 205, 232, 14, 7, 205, 231, - 14, 7, 205, 230, 14, 7, 205, 229, 14, 7, 205, 228, 14, 7, 205, 227, 14, - 7, 205, 226, 14, 7, 205, 225, 14, 7, 205, 224, 14, 7, 205, 223, 14, 7, - 205, 222, 14, 7, 205, 221, 14, 7, 205, 220, 14, 7, 205, 219, 14, 7, 205, - 218, 14, 7, 205, 217, 14, 7, 205, 216, 14, 7, 205, 215, 14, 7, 205, 214, - 14, 7, 205, 213, 14, 7, 205, 212, 14, 7, 205, 211, 14, 7, 205, 210, 14, - 7, 205, 209, 14, 7, 205, 208, 14, 7, 205, 207, 14, 7, 205, 206, 14, 7, - 205, 205, 14, 7, 205, 204, 14, 7, 205, 203, 14, 7, 200, 36, 14, 7, 200, - 35, 14, 7, 200, 34, 14, 7, 200, 33, 14, 7, 200, 32, 14, 7, 200, 31, 14, - 7, 200, 30, 14, 7, 200, 29, 14, 7, 200, 28, 14, 7, 200, 27, 14, 7, 200, - 26, 14, 7, 200, 25, 14, 7, 200, 24, 14, 7, 200, 23, 14, 7, 200, 22, 14, - 7, 200, 21, 14, 7, 200, 20, 14, 7, 200, 19, 14, 7, 200, 18, 14, 7, 200, - 17, 14, 7, 200, 16, 14, 7, 200, 15, 14, 7, 200, 14, 14, 7, 200, 13, 14, - 7, 200, 12, 14, 7, 200, 11, 14, 7, 200, 10, 14, 7, 200, 9, 14, 7, 200, 8, + 10, 3, 220, 53, 10, 3, 220, 52, 10, 3, 220, 50, 10, 3, 220, 51, 25, 250, + 209, 10, 3, 220, 51, 25, 249, 135, 10, 3, 220, 51, 25, 235, 74, 230, 156, + 230, 155, 10, 3, 220, 51, 25, 220, 223, 10, 3, 220, 51, 25, 173, 10, 3, + 220, 51, 25, 199, 179, 10, 3, 220, 51, 25, 199, 145, 10, 3, 220, 51, 25, + 196, 169, 10, 3, 220, 51, 25, 196, 158, 10, 3, 220, 51, 25, 196, 49, 10, + 3, 220, 49, 10, 3, 220, 47, 10, 3, 220, 48, 25, 235, 87, 10, 3, 220, 48, + 25, 231, 240, 10, 3, 220, 48, 25, 223, 201, 10, 3, 220, 48, 25, 223, 202, + 230, 155, 10, 3, 220, 48, 25, 213, 219, 10, 3, 220, 48, 25, 210, 138, + 108, 210, 138, 108, 218, 222, 10, 3, 220, 48, 25, 203, 98, 108, 221, 166, + 10, 3, 220, 48, 25, 196, 158, 10, 3, 220, 48, 25, 196, 49, 10, 3, 220, + 45, 10, 3, 220, 44, 10, 3, 218, 224, 230, 156, 25, 250, 209, 10, 3, 218, + 224, 25, 236, 222, 10, 3, 218, 224, 25, 230, 73, 10, 3, 218, 224, 25, + 210, 137, 10, 3, 218, 224, 25, 210, 138, 108, 210, 138, 108, 218, 222, + 10, 3, 218, 224, 25, 199, 209, 10, 3, 216, 101, 108, 191, 122, 10, 3, + 215, 102, 139, 215, 102, 25, 231, 240, 10, 3, 215, 102, 139, 215, 102, + 25, 222, 96, 10, 3, 213, 177, 25, 237, 0, 230, 155, 10, 3, 213, 177, 25, + 231, 23, 10, 3, 213, 177, 25, 230, 160, 10, 3, 213, 177, 25, 229, 158, + 10, 3, 213, 177, 25, 221, 242, 10, 3, 213, 177, 25, 220, 88, 10, 3, 213, + 177, 25, 217, 39, 10, 3, 213, 177, 25, 210, 138, 108, 210, 137, 10, 3, + 213, 177, 25, 66, 10, 3, 213, 177, 25, 126, 108, 66, 10, 3, 213, 177, 25, + 196, 49, 10, 3, 205, 186, 230, 156, 25, 140, 10, 3, 205, 186, 25, 234, + 103, 10, 3, 205, 186, 25, 203, 114, 250, 183, 219, 224, 10, 3, 205, 186, + 25, 199, 209, 10, 3, 203, 162, 199, 84, 10, 3, 203, 114, 139, 203, 113, + 10, 3, 203, 114, 108, 228, 151, 10, 3, 203, 114, 108, 214, 229, 10, 3, + 203, 114, 108, 205, 127, 10, 3, 203, 4, 108, 235, 83, 25, 213, 219, 10, + 3, 203, 4, 108, 234, 219, 25, 251, 132, 10, 3, 202, 223, 25, 199, 209, + 10, 3, 199, 210, 108, 205, 185, 10, 3, 197, 77, 25, 231, 209, 199, 84, + 10, 3, 197, 77, 25, 115, 236, 222, 10, 3, 196, 61, 223, 92, 10, 3, 196, + 61, 25, 196, 158, 10, 3, 196, 52, 25, 237, 224, 10, 3, 196, 52, 25, 220, + 46, 10, 3, 196, 52, 25, 218, 222, 10, 3, 191, 122, 10, 3, 190, 252, 139, + 190, 252, 108, 205, 127, 10, 3, 190, 250, 25, 115, 236, 223, 199, 84, + 238, 134, 3, 242, 198, 238, 134, 3, 242, 197, 238, 134, 3, 242, 196, 238, + 134, 3, 242, 195, 238, 134, 3, 242, 194, 238, 134, 3, 242, 193, 238, 134, + 3, 242, 192, 238, 134, 3, 242, 191, 238, 134, 3, 242, 190, 238, 134, 3, + 242, 189, 238, 134, 3, 242, 188, 238, 134, 3, 242, 187, 238, 134, 3, 242, + 186, 238, 134, 3, 242, 185, 238, 134, 3, 242, 184, 238, 134, 3, 242, 183, + 238, 134, 3, 242, 182, 238, 134, 3, 242, 181, 238, 134, 3, 242, 180, 238, + 134, 3, 242, 179, 238, 134, 3, 242, 178, 238, 134, 3, 242, 177, 238, 134, + 3, 242, 176, 238, 134, 3, 242, 175, 238, 134, 3, 242, 174, 238, 134, 3, + 242, 173, 238, 134, 3, 242, 172, 238, 134, 3, 242, 171, 238, 134, 3, 242, + 170, 238, 134, 3, 242, 169, 238, 134, 3, 242, 168, 238, 134, 3, 242, 167, + 238, 134, 3, 242, 166, 238, 134, 3, 242, 165, 238, 134, 3, 242, 164, 238, + 134, 3, 242, 163, 238, 134, 3, 242, 162, 238, 134, 3, 242, 161, 238, 134, + 3, 242, 160, 238, 134, 3, 242, 159, 238, 134, 3, 242, 158, 238, 134, 3, + 242, 157, 238, 134, 3, 242, 156, 238, 134, 3, 242, 155, 238, 134, 3, 242, + 154, 238, 134, 3, 242, 153, 238, 134, 3, 242, 152, 238, 134, 3, 242, 151, + 238, 134, 3, 242, 150, 238, 134, 3, 242, 149, 238, 134, 3, 242, 148, 238, + 134, 3, 242, 147, 238, 134, 3, 242, 146, 238, 134, 3, 242, 145, 238, 134, + 3, 242, 144, 238, 134, 3, 242, 143, 238, 134, 3, 242, 142, 238, 134, 3, + 242, 141, 238, 134, 3, 242, 140, 238, 134, 3, 242, 139, 238, 134, 3, 242, + 138, 238, 134, 3, 242, 137, 238, 134, 3, 242, 136, 238, 134, 3, 242, 135, + 238, 134, 3, 242, 134, 238, 134, 3, 242, 133, 238, 134, 3, 242, 132, 238, + 134, 3, 242, 131, 238, 134, 3, 242, 130, 238, 134, 3, 242, 129, 238, 134, + 3, 242, 128, 238, 134, 3, 242, 127, 238, 134, 3, 242, 126, 238, 134, 3, + 242, 125, 238, 134, 3, 242, 124, 238, 134, 3, 242, 123, 238, 134, 3, 242, + 122, 238, 134, 3, 242, 121, 238, 134, 3, 242, 120, 238, 134, 3, 242, 119, + 238, 134, 3, 242, 118, 238, 134, 3, 242, 117, 238, 134, 3, 242, 116, 238, + 134, 3, 242, 115, 238, 134, 3, 242, 114, 238, 134, 3, 242, 113, 238, 134, + 3, 242, 112, 238, 134, 3, 242, 111, 238, 134, 3, 242, 110, 238, 134, 3, + 242, 109, 238, 134, 3, 242, 108, 238, 134, 3, 242, 107, 238, 134, 3, 242, + 106, 238, 134, 3, 242, 105, 238, 134, 3, 242, 104, 238, 134, 3, 242, 103, + 238, 134, 3, 242, 102, 238, 134, 3, 242, 101, 238, 134, 3, 242, 100, 14, + 7, 255, 199, 14, 7, 255, 198, 14, 7, 255, 197, 14, 7, 255, 196, 14, 7, + 255, 195, 14, 7, 255, 194, 14, 7, 255, 193, 14, 7, 255, 192, 14, 7, 255, + 191, 14, 7, 255, 190, 14, 7, 255, 189, 14, 7, 255, 188, 14, 7, 255, 187, + 14, 7, 255, 185, 14, 7, 255, 184, 14, 7, 255, 183, 14, 7, 255, 182, 14, + 7, 255, 181, 14, 7, 255, 180, 14, 7, 255, 179, 14, 7, 255, 178, 14, 7, + 255, 177, 14, 7, 255, 176, 14, 7, 255, 175, 14, 7, 255, 174, 14, 7, 255, + 173, 14, 7, 255, 172, 14, 7, 255, 171, 14, 7, 255, 170, 14, 7, 255, 169, + 14, 7, 255, 168, 14, 7, 255, 166, 14, 7, 255, 165, 14, 7, 255, 163, 14, + 7, 255, 162, 14, 7, 255, 161, 14, 7, 255, 160, 14, 7, 255, 159, 14, 7, + 255, 158, 14, 7, 255, 157, 14, 7, 255, 156, 14, 7, 255, 155, 14, 7, 255, + 154, 14, 7, 255, 153, 14, 7, 255, 152, 14, 7, 255, 150, 14, 7, 255, 149, + 14, 7, 255, 148, 14, 7, 255, 146, 14, 7, 255, 145, 14, 7, 255, 144, 14, + 7, 255, 143, 14, 7, 255, 142, 14, 7, 255, 141, 14, 7, 255, 140, 14, 7, + 255, 139, 14, 7, 255, 136, 14, 7, 255, 135, 14, 7, 255, 134, 14, 7, 255, + 133, 14, 7, 255, 132, 14, 7, 255, 131, 14, 7, 255, 130, 14, 7, 255, 129, + 14, 7, 255, 128, 14, 7, 255, 127, 14, 7, 255, 126, 14, 7, 255, 125, 14, + 7, 255, 124, 14, 7, 255, 123, 14, 7, 255, 122, 14, 7, 255, 121, 14, 7, + 255, 120, 14, 7, 255, 119, 14, 7, 255, 118, 14, 7, 255, 117, 14, 7, 255, + 113, 14, 7, 255, 112, 14, 7, 255, 111, 14, 7, 255, 110, 14, 7, 250, 118, + 14, 7, 250, 116, 14, 7, 250, 114, 14, 7, 250, 112, 14, 7, 250, 110, 14, + 7, 250, 109, 14, 7, 250, 107, 14, 7, 250, 105, 14, 7, 250, 103, 14, 7, + 250, 101, 14, 7, 247, 189, 14, 7, 247, 188, 14, 7, 247, 187, 14, 7, 247, + 186, 14, 7, 247, 185, 14, 7, 247, 184, 14, 7, 247, 183, 14, 7, 247, 182, + 14, 7, 247, 181, 14, 7, 247, 180, 14, 7, 247, 179, 14, 7, 247, 178, 14, + 7, 247, 177, 14, 7, 247, 176, 14, 7, 247, 175, 14, 7, 247, 174, 14, 7, + 247, 173, 14, 7, 247, 172, 14, 7, 247, 171, 14, 7, 247, 170, 14, 7, 247, + 169, 14, 7, 247, 168, 14, 7, 247, 167, 14, 7, 247, 166, 14, 7, 247, 165, + 14, 7, 247, 164, 14, 7, 247, 163, 14, 7, 247, 162, 14, 7, 238, 126, 14, + 7, 238, 125, 14, 7, 238, 124, 14, 7, 238, 123, 14, 7, 238, 122, 14, 7, + 238, 121, 14, 7, 238, 120, 14, 7, 238, 119, 14, 7, 238, 118, 14, 7, 238, + 117, 14, 7, 238, 116, 14, 7, 238, 115, 14, 7, 238, 114, 14, 7, 238, 113, + 14, 7, 238, 112, 14, 7, 238, 111, 14, 7, 238, 110, 14, 7, 238, 109, 14, + 7, 238, 108, 14, 7, 238, 107, 14, 7, 238, 106, 14, 7, 238, 105, 14, 7, + 238, 104, 14, 7, 238, 103, 14, 7, 238, 102, 14, 7, 238, 101, 14, 7, 238, + 100, 14, 7, 238, 99, 14, 7, 238, 98, 14, 7, 238, 97, 14, 7, 238, 96, 14, + 7, 238, 95, 14, 7, 238, 94, 14, 7, 238, 93, 14, 7, 238, 92, 14, 7, 238, + 91, 14, 7, 238, 90, 14, 7, 238, 89, 14, 7, 238, 88, 14, 7, 238, 87, 14, + 7, 238, 86, 14, 7, 238, 85, 14, 7, 238, 84, 14, 7, 238, 83, 14, 7, 238, + 82, 14, 7, 238, 81, 14, 7, 238, 80, 14, 7, 238, 79, 14, 7, 238, 78, 14, + 7, 238, 77, 14, 7, 238, 76, 14, 7, 238, 75, 14, 7, 238, 74, 14, 7, 238, + 73, 14, 7, 238, 72, 14, 7, 238, 71, 14, 7, 238, 70, 14, 7, 238, 69, 14, + 7, 238, 68, 14, 7, 238, 67, 14, 7, 238, 66, 14, 7, 238, 65, 14, 7, 238, + 64, 14, 7, 238, 63, 14, 7, 238, 62, 14, 7, 238, 61, 14, 7, 238, 60, 14, + 7, 238, 59, 14, 7, 238, 58, 14, 7, 238, 57, 14, 7, 238, 56, 14, 7, 238, + 55, 14, 7, 238, 54, 14, 7, 238, 53, 14, 7, 238, 52, 14, 7, 238, 51, 14, + 7, 238, 50, 14, 7, 238, 49, 14, 7, 238, 48, 14, 7, 238, 47, 14, 7, 238, + 46, 14, 7, 238, 45, 14, 7, 238, 44, 14, 7, 238, 43, 14, 7, 238, 42, 14, + 7, 238, 41, 14, 7, 238, 40, 14, 7, 238, 39, 14, 7, 238, 38, 14, 7, 238, + 37, 14, 7, 238, 36, 14, 7, 238, 35, 14, 7, 235, 7, 14, 7, 235, 6, 14, 7, + 235, 5, 14, 7, 235, 4, 14, 7, 235, 3, 14, 7, 235, 2, 14, 7, 235, 1, 14, + 7, 235, 0, 14, 7, 234, 255, 14, 7, 234, 254, 14, 7, 234, 253, 14, 7, 234, + 252, 14, 7, 234, 251, 14, 7, 234, 250, 14, 7, 234, 249, 14, 7, 234, 248, + 14, 7, 234, 247, 14, 7, 234, 246, 14, 7, 234, 245, 14, 7, 234, 244, 14, + 7, 234, 243, 14, 7, 234, 242, 14, 7, 234, 241, 14, 7, 234, 240, 14, 7, + 234, 239, 14, 7, 234, 238, 14, 7, 234, 237, 14, 7, 234, 236, 14, 7, 234, + 235, 14, 7, 234, 234, 14, 7, 234, 233, 14, 7, 234, 232, 14, 7, 234, 231, + 14, 7, 234, 230, 14, 7, 234, 229, 14, 7, 234, 228, 14, 7, 234, 227, 14, + 7, 234, 226, 14, 7, 234, 225, 14, 7, 234, 224, 14, 7, 234, 223, 14, 7, + 234, 222, 14, 7, 234, 221, 14, 7, 234, 220, 14, 7, 233, 174, 14, 7, 233, + 173, 14, 7, 233, 172, 14, 7, 233, 171, 14, 7, 233, 170, 14, 7, 233, 169, + 14, 7, 233, 168, 14, 7, 233, 167, 14, 7, 233, 166, 14, 7, 233, 165, 14, + 7, 233, 164, 14, 7, 233, 163, 14, 7, 233, 162, 14, 7, 233, 161, 14, 7, + 233, 160, 14, 7, 233, 159, 14, 7, 233, 158, 14, 7, 233, 157, 14, 7, 233, + 156, 14, 7, 233, 155, 14, 7, 233, 154, 14, 7, 233, 153, 14, 7, 233, 152, + 14, 7, 233, 151, 14, 7, 233, 150, 14, 7, 233, 149, 14, 7, 233, 148, 14, + 7, 233, 147, 14, 7, 233, 146, 14, 7, 233, 145, 14, 7, 233, 144, 14, 7, + 233, 143, 14, 7, 233, 142, 14, 7, 233, 141, 14, 7, 233, 140, 14, 7, 233, + 139, 14, 7, 233, 138, 14, 7, 233, 137, 14, 7, 233, 136, 14, 7, 233, 135, + 14, 7, 233, 134, 14, 7, 233, 133, 14, 7, 233, 132, 14, 7, 233, 131, 14, + 7, 233, 130, 14, 7, 233, 129, 14, 7, 233, 128, 14, 7, 233, 127, 14, 7, + 233, 126, 14, 7, 233, 125, 14, 7, 233, 124, 14, 7, 233, 123, 14, 7, 233, + 122, 14, 7, 233, 121, 14, 7, 233, 120, 14, 7, 233, 119, 14, 7, 233, 118, + 14, 7, 233, 117, 14, 7, 233, 116, 14, 7, 233, 115, 14, 7, 233, 114, 14, + 7, 233, 113, 14, 7, 233, 112, 14, 7, 233, 111, 14, 7, 233, 110, 14, 7, + 232, 50, 14, 7, 232, 49, 14, 7, 232, 48, 14, 7, 232, 47, 14, 7, 232, 46, + 14, 7, 232, 45, 14, 7, 232, 44, 14, 7, 232, 43, 14, 7, 232, 42, 14, 7, + 232, 41, 14, 7, 232, 40, 14, 7, 232, 39, 14, 7, 232, 38, 14, 7, 232, 37, + 14, 7, 232, 36, 14, 7, 232, 35, 14, 7, 232, 34, 14, 7, 232, 33, 14, 7, + 232, 32, 14, 7, 232, 31, 14, 7, 232, 30, 14, 7, 232, 29, 14, 7, 232, 28, + 14, 7, 232, 27, 14, 7, 232, 26, 14, 7, 232, 25, 14, 7, 232, 24, 14, 7, + 232, 23, 14, 7, 232, 22, 14, 7, 232, 21, 14, 7, 232, 20, 14, 7, 232, 19, + 14, 7, 232, 18, 14, 7, 232, 17, 14, 7, 232, 16, 14, 7, 232, 15, 14, 7, + 232, 14, 14, 7, 232, 13, 14, 7, 232, 12, 14, 7, 232, 11, 14, 7, 232, 10, + 14, 7, 232, 9, 14, 7, 232, 8, 14, 7, 232, 7, 14, 7, 232, 6, 14, 7, 232, + 5, 14, 7, 232, 4, 14, 7, 232, 3, 14, 7, 232, 2, 14, 7, 232, 1, 14, 7, + 232, 0, 14, 7, 231, 255, 14, 7, 231, 254, 14, 7, 231, 253, 14, 7, 231, + 252, 14, 7, 231, 251, 14, 7, 231, 250, 14, 7, 231, 249, 14, 7, 231, 248, + 14, 7, 231, 247, 14, 7, 231, 246, 14, 7, 231, 245, 14, 7, 231, 244, 14, + 7, 231, 243, 14, 7, 230, 114, 14, 7, 230, 113, 14, 7, 230, 112, 14, 7, + 230, 111, 14, 7, 230, 110, 14, 7, 230, 109, 14, 7, 230, 108, 14, 7, 230, + 107, 14, 7, 230, 106, 14, 7, 228, 54, 14, 7, 228, 53, 14, 7, 228, 52, 14, + 7, 228, 51, 14, 7, 228, 50, 14, 7, 228, 49, 14, 7, 228, 48, 14, 7, 228, + 47, 14, 7, 228, 46, 14, 7, 228, 45, 14, 7, 228, 44, 14, 7, 228, 43, 14, + 7, 228, 42, 14, 7, 228, 41, 14, 7, 228, 40, 14, 7, 228, 39, 14, 7, 228, + 38, 14, 7, 228, 37, 14, 7, 228, 36, 14, 7, 222, 151, 14, 7, 222, 150, 14, + 7, 222, 149, 14, 7, 222, 148, 14, 7, 222, 147, 14, 7, 222, 146, 14, 7, + 222, 145, 14, 7, 222, 144, 14, 7, 220, 140, 14, 7, 220, 139, 14, 7, 220, + 138, 14, 7, 220, 137, 14, 7, 220, 136, 14, 7, 220, 135, 14, 7, 220, 134, + 14, 7, 220, 133, 14, 7, 220, 132, 14, 7, 220, 131, 14, 7, 218, 166, 14, + 7, 218, 165, 14, 7, 218, 164, 14, 7, 218, 162, 14, 7, 218, 160, 14, 7, + 218, 159, 14, 7, 218, 157, 14, 7, 218, 155, 14, 7, 218, 153, 14, 7, 218, + 151, 14, 7, 218, 149, 14, 7, 218, 147, 14, 7, 218, 145, 14, 7, 218, 144, + 14, 7, 218, 142, 14, 7, 218, 140, 14, 7, 218, 139, 14, 7, 218, 138, 14, + 7, 218, 137, 14, 7, 218, 136, 14, 7, 218, 135, 14, 7, 218, 134, 14, 7, + 218, 133, 14, 7, 218, 132, 14, 7, 218, 130, 14, 7, 218, 128, 14, 7, 218, + 126, 14, 7, 218, 125, 14, 7, 218, 123, 14, 7, 218, 122, 14, 7, 218, 120, + 14, 7, 218, 119, 14, 7, 218, 117, 14, 7, 218, 115, 14, 7, 218, 113, 14, + 7, 218, 111, 14, 7, 218, 109, 14, 7, 218, 108, 14, 7, 218, 106, 14, 7, + 218, 104, 14, 7, 218, 103, 14, 7, 218, 101, 14, 7, 218, 99, 14, 7, 218, + 97, 14, 7, 218, 95, 14, 7, 218, 94, 14, 7, 218, 92, 14, 7, 218, 90, 14, + 7, 218, 88, 14, 7, 218, 87, 14, 7, 218, 85, 14, 7, 218, 83, 14, 7, 218, + 82, 14, 7, 218, 81, 14, 7, 218, 79, 14, 7, 218, 77, 14, 7, 218, 75, 14, + 7, 218, 73, 14, 7, 218, 71, 14, 7, 218, 69, 14, 7, 218, 67, 14, 7, 218, + 66, 14, 7, 218, 64, 14, 7, 218, 62, 14, 7, 218, 60, 14, 7, 218, 58, 14, + 7, 215, 56, 14, 7, 215, 55, 14, 7, 215, 54, 14, 7, 215, 53, 14, 7, 215, + 52, 14, 7, 215, 51, 14, 7, 215, 50, 14, 7, 215, 49, 14, 7, 215, 48, 14, + 7, 215, 47, 14, 7, 215, 46, 14, 7, 215, 45, 14, 7, 215, 44, 14, 7, 215, + 43, 14, 7, 215, 42, 14, 7, 215, 41, 14, 7, 215, 40, 14, 7, 215, 39, 14, + 7, 215, 38, 14, 7, 215, 37, 14, 7, 215, 36, 14, 7, 215, 35, 14, 7, 215, + 34, 14, 7, 215, 33, 14, 7, 215, 32, 14, 7, 215, 31, 14, 7, 215, 30, 14, + 7, 215, 29, 14, 7, 215, 28, 14, 7, 215, 27, 14, 7, 215, 26, 14, 7, 215, + 25, 14, 7, 215, 24, 14, 7, 215, 23, 14, 7, 215, 22, 14, 7, 215, 21, 14, + 7, 215, 20, 14, 7, 215, 19, 14, 7, 215, 18, 14, 7, 215, 17, 14, 7, 215, + 16, 14, 7, 215, 15, 14, 7, 215, 14, 14, 7, 215, 13, 14, 7, 215, 12, 14, + 7, 215, 11, 14, 7, 215, 10, 14, 7, 215, 9, 14, 7, 215, 8, 14, 7, 213, + 104, 14, 7, 213, 103, 14, 7, 213, 102, 14, 7, 213, 101, 14, 7, 213, 100, + 14, 7, 213, 99, 14, 7, 213, 98, 14, 7, 213, 97, 14, 7, 213, 96, 14, 7, + 213, 95, 14, 7, 213, 94, 14, 7, 213, 93, 14, 7, 213, 92, 14, 7, 213, 91, + 14, 7, 213, 90, 14, 7, 213, 89, 14, 7, 213, 88, 14, 7, 213, 87, 14, 7, + 213, 86, 14, 7, 213, 85, 14, 7, 213, 84, 14, 7, 213, 83, 14, 7, 212, 174, + 14, 7, 212, 173, 14, 7, 212, 172, 14, 7, 212, 171, 14, 7, 212, 170, 14, + 7, 212, 169, 14, 7, 212, 168, 14, 7, 212, 167, 14, 7, 212, 166, 14, 7, + 212, 165, 14, 7, 212, 164, 14, 7, 212, 163, 14, 7, 212, 162, 14, 7, 212, + 161, 14, 7, 212, 160, 14, 7, 212, 159, 14, 7, 212, 158, 14, 7, 212, 157, + 14, 7, 212, 156, 14, 7, 212, 155, 14, 7, 212, 154, 14, 7, 212, 153, 14, + 7, 212, 152, 14, 7, 212, 151, 14, 7, 212, 150, 14, 7, 212, 149, 14, 7, + 212, 2, 14, 7, 212, 1, 14, 7, 212, 0, 14, 7, 211, 255, 14, 7, 211, 254, + 14, 7, 211, 253, 14, 7, 211, 252, 14, 7, 211, 251, 14, 7, 211, 250, 14, + 7, 211, 249, 14, 7, 211, 248, 14, 7, 211, 247, 14, 7, 211, 246, 14, 7, + 211, 245, 14, 7, 211, 244, 14, 7, 211, 243, 14, 7, 211, 242, 14, 7, 211, + 241, 14, 7, 211, 240, 14, 7, 211, 239, 14, 7, 211, 238, 14, 7, 211, 237, + 14, 7, 211, 236, 14, 7, 211, 235, 14, 7, 211, 234, 14, 7, 211, 233, 14, + 7, 211, 232, 14, 7, 211, 231, 14, 7, 211, 230, 14, 7, 211, 229, 14, 7, + 211, 228, 14, 7, 211, 227, 14, 7, 211, 226, 14, 7, 211, 225, 14, 7, 211, + 224, 14, 7, 211, 223, 14, 7, 211, 222, 14, 7, 211, 221, 14, 7, 211, 220, + 14, 7, 211, 219, 14, 7, 211, 218, 14, 7, 211, 217, 14, 7, 211, 216, 14, + 7, 211, 215, 14, 7, 211, 214, 14, 7, 211, 213, 14, 7, 211, 212, 14, 7, + 211, 211, 14, 7, 211, 210, 14, 7, 211, 209, 14, 7, 211, 208, 14, 7, 211, + 207, 14, 7, 211, 206, 14, 7, 211, 205, 14, 7, 211, 204, 14, 7, 211, 203, + 14, 7, 211, 202, 14, 7, 211, 201, 14, 7, 211, 200, 14, 7, 211, 199, 14, + 7, 211, 198, 14, 7, 211, 197, 14, 7, 211, 196, 14, 7, 211, 195, 14, 7, + 211, 194, 14, 7, 211, 193, 14, 7, 211, 192, 14, 7, 211, 191, 14, 7, 211, + 190, 14, 7, 211, 189, 14, 7, 211, 188, 14, 7, 211, 187, 14, 7, 211, 186, + 14, 7, 211, 185, 14, 7, 211, 184, 14, 7, 210, 235, 14, 7, 210, 234, 14, + 7, 210, 233, 14, 7, 210, 232, 14, 7, 210, 231, 14, 7, 210, 230, 14, 7, + 210, 229, 14, 7, 210, 228, 14, 7, 210, 227, 14, 7, 210, 226, 14, 7, 210, + 225, 14, 7, 210, 224, 14, 7, 210, 223, 14, 7, 208, 103, 14, 7, 208, 102, + 14, 7, 208, 101, 14, 7, 208, 100, 14, 7, 208, 99, 14, 7, 208, 98, 14, 7, + 208, 97, 14, 7, 207, 220, 14, 7, 207, 219, 14, 7, 207, 218, 14, 7, 207, + 217, 14, 7, 207, 216, 14, 7, 207, 215, 14, 7, 207, 214, 14, 7, 207, 213, + 14, 7, 207, 212, 14, 7, 207, 211, 14, 7, 207, 210, 14, 7, 207, 209, 14, + 7, 207, 208, 14, 7, 207, 207, 14, 7, 207, 206, 14, 7, 207, 205, 14, 7, + 207, 204, 14, 7, 207, 203, 14, 7, 207, 202, 14, 7, 207, 201, 14, 7, 207, + 200, 14, 7, 207, 199, 14, 7, 207, 198, 14, 7, 207, 197, 14, 7, 207, 196, + 14, 7, 207, 195, 14, 7, 207, 194, 14, 7, 207, 193, 14, 7, 207, 192, 14, + 7, 207, 191, 14, 7, 207, 190, 14, 7, 207, 189, 14, 7, 207, 188, 14, 7, + 207, 187, 14, 7, 206, 5, 14, 7, 206, 4, 14, 7, 206, 3, 14, 7, 206, 2, 14, + 7, 206, 1, 14, 7, 206, 0, 14, 7, 205, 255, 14, 7, 205, 254, 14, 7, 205, + 253, 14, 7, 205, 252, 14, 7, 205, 251, 14, 7, 205, 250, 14, 7, 205, 249, + 14, 7, 205, 248, 14, 7, 205, 247, 14, 7, 205, 246, 14, 7, 205, 245, 14, + 7, 205, 244, 14, 7, 205, 243, 14, 7, 205, 242, 14, 7, 205, 241, 14, 7, + 205, 240, 14, 7, 205, 239, 14, 7, 205, 238, 14, 7, 205, 237, 14, 7, 205, + 236, 14, 7, 205, 235, 14, 7, 205, 234, 14, 7, 205, 233, 14, 7, 205, 232, + 14, 7, 205, 231, 14, 7, 205, 230, 14, 7, 205, 229, 14, 7, 205, 228, 14, + 7, 205, 227, 14, 7, 205, 226, 14, 7, 205, 225, 14, 7, 205, 224, 14, 7, + 205, 223, 14, 7, 205, 222, 14, 7, 205, 221, 14, 7, 205, 220, 14, 7, 205, + 219, 14, 7, 205, 218, 14, 7, 205, 217, 14, 7, 205, 216, 14, 7, 205, 215, + 14, 7, 205, 214, 14, 7, 205, 213, 14, 7, 205, 212, 14, 7, 205, 211, 14, + 7, 205, 210, 14, 7, 205, 209, 14, 7, 205, 208, 14, 7, 200, 40, 14, 7, + 200, 39, 14, 7, 200, 38, 14, 7, 200, 37, 14, 7, 200, 36, 14, 7, 200, 35, + 14, 7, 200, 34, 14, 7, 200, 33, 14, 7, 200, 32, 14, 7, 200, 31, 14, 7, + 200, 30, 14, 7, 200, 29, 14, 7, 200, 28, 14, 7, 200, 27, 14, 7, 200, 26, + 14, 7, 200, 25, 14, 7, 200, 24, 14, 7, 200, 23, 14, 7, 200, 22, 14, 7, + 200, 21, 14, 7, 200, 20, 14, 7, 200, 19, 14, 7, 200, 18, 14, 7, 200, 17, + 14, 7, 200, 16, 14, 7, 200, 15, 14, 7, 200, 14, 14, 7, 200, 13, 14, 7, + 200, 12, 14, 7, 200, 11, 14, 7, 200, 10, 14, 7, 200, 9, 14, 7, 200, 8, 14, 7, 200, 7, 14, 7, 200, 6, 14, 7, 200, 5, 14, 7, 200, 4, 14, 7, 200, 3, 14, 7, 200, 2, 14, 7, 200, 1, 14, 7, 200, 0, 14, 7, 199, 255, 14, 7, - 199, 254, 14, 7, 199, 253, 14, 7, 199, 252, 14, 7, 199, 251, 14, 7, 199, - 250, 14, 7, 199, 249, 14, 7, 196, 213, 14, 7, 196, 212, 14, 7, 196, 211, + 199, 254, 14, 7, 199, 253, 14, 7, 196, 217, 14, 7, 196, 216, 14, 7, 196, + 215, 14, 7, 196, 214, 14, 7, 196, 213, 14, 7, 196, 212, 14, 7, 196, 211, 14, 7, 196, 210, 14, 7, 196, 209, 14, 7, 196, 208, 14, 7, 196, 207, 14, 7, 196, 206, 14, 7, 196, 205, 14, 7, 196, 204, 14, 7, 196, 203, 14, 7, 196, 202, 14, 7, 196, 201, 14, 7, 196, 200, 14, 7, 196, 199, 14, 7, 196, @@ -16815,74 +16874,101 @@ static const unsigned char phrasebook[] = { 196, 185, 14, 7, 196, 184, 14, 7, 196, 183, 14, 7, 196, 182, 14, 7, 196, 181, 14, 7, 196, 180, 14, 7, 196, 179, 14, 7, 196, 178, 14, 7, 196, 177, 14, 7, 196, 176, 14, 7, 196, 175, 14, 7, 196, 174, 14, 7, 196, 173, 14, - 7, 196, 172, 14, 7, 196, 171, 14, 7, 196, 170, 14, 7, 196, 169, 14, 7, - 196, 168, 14, 7, 196, 167, 14, 7, 196, 7, 14, 7, 196, 6, 14, 7, 196, 5, - 14, 7, 196, 4, 14, 7, 196, 3, 14, 7, 196, 2, 14, 7, 196, 1, 14, 7, 196, - 0, 14, 7, 195, 255, 14, 7, 195, 254, 14, 7, 195, 253, 14, 7, 195, 252, - 14, 7, 195, 251, 14, 7, 195, 250, 14, 7, 195, 249, 14, 7, 195, 248, 14, - 7, 195, 247, 14, 7, 195, 246, 14, 7, 195, 245, 14, 7, 195, 244, 14, 7, - 195, 243, 14, 7, 195, 242, 14, 7, 195, 241, 14, 7, 195, 240, 14, 7, 195, - 239, 14, 7, 195, 238, 14, 7, 195, 237, 14, 7, 195, 236, 14, 7, 195, 235, - 14, 7, 195, 234, 14, 7, 195, 233, 14, 7, 195, 232, 14, 7, 195, 231, 14, - 7, 195, 230, 14, 7, 195, 229, 14, 7, 195, 228, 14, 7, 195, 227, 14, 7, - 195, 226, 14, 7, 195, 225, 14, 7, 195, 224, 14, 7, 195, 223, 14, 7, 195, - 222, 14, 7, 195, 221, 14, 7, 195, 220, 14, 7, 195, 219, 14, 7, 195, 218, - 14, 7, 195, 217, 14, 7, 195, 216, 14, 7, 195, 215, 14, 7, 195, 214, 14, - 7, 195, 213, 14, 7, 195, 212, 14, 7, 195, 211, 14, 7, 195, 210, 14, 7, - 195, 209, 14, 7, 195, 208, 14, 7, 195, 207, 14, 7, 195, 206, 14, 7, 195, - 205, 14, 7, 195, 204, 14, 7, 195, 203, 14, 7, 195, 202, 14, 7, 195, 201, - 14, 7, 195, 200, 14, 7, 195, 199, 14, 7, 195, 198, 14, 7, 195, 197, 14, - 7, 195, 196, 14, 7, 195, 195, 14, 7, 195, 194, 14, 7, 195, 193, 14, 7, - 195, 192, 14, 7, 195, 191, 14, 7, 195, 190, 14, 7, 195, 189, 14, 7, 195, - 188, 14, 7, 195, 187, 14, 7, 193, 220, 14, 7, 193, 219, 14, 7, 193, 218, - 14, 7, 193, 217, 14, 7, 193, 216, 14, 7, 193, 215, 14, 7, 193, 214, 14, - 7, 193, 213, 14, 7, 193, 212, 14, 7, 193, 211, 14, 7, 193, 210, 14, 7, - 193, 209, 14, 7, 193, 208, 14, 7, 193, 207, 14, 7, 193, 206, 14, 7, 193, - 205, 14, 7, 193, 204, 14, 7, 193, 203, 14, 7, 193, 202, 14, 7, 193, 201, - 14, 7, 193, 200, 14, 7, 193, 199, 14, 7, 193, 198, 14, 7, 193, 197, 14, - 7, 193, 196, 14, 7, 193, 195, 14, 7, 193, 194, 14, 7, 193, 193, 14, 7, - 193, 192, 14, 7, 193, 191, 14, 7, 193, 190, 14, 7, 193, 189, 14, 7, 192, - 232, 14, 7, 192, 231, 14, 7, 192, 230, 14, 7, 192, 229, 14, 7, 192, 228, - 14, 7, 192, 227, 14, 7, 192, 226, 14, 7, 192, 225, 14, 7, 192, 224, 14, - 7, 192, 223, 14, 7, 192, 222, 14, 7, 192, 221, 14, 7, 192, 157, 14, 7, - 192, 156, 14, 7, 192, 155, 14, 7, 192, 154, 14, 7, 192, 153, 14, 7, 192, - 152, 14, 7, 192, 151, 14, 7, 192, 150, 14, 7, 192, 149, 14, 7, 191, 165, - 14, 7, 191, 164, 14, 7, 191, 163, 14, 7, 191, 162, 14, 7, 191, 161, 14, - 7, 191, 160, 14, 7, 191, 159, 14, 7, 191, 158, 14, 7, 191, 157, 14, 7, - 191, 156, 14, 7, 191, 155, 14, 7, 191, 154, 14, 7, 191, 153, 14, 7, 191, - 152, 14, 7, 191, 151, 14, 7, 191, 150, 14, 7, 191, 149, 14, 7, 191, 148, - 14, 7, 191, 147, 14, 7, 191, 146, 14, 7, 191, 145, 14, 7, 191, 144, 14, - 7, 191, 143, 14, 7, 191, 142, 14, 7, 191, 141, 14, 7, 191, 140, 14, 7, - 191, 139, 14, 7, 191, 138, 14, 7, 191, 137, 14, 7, 191, 136, 14, 7, 191, - 135, 14, 7, 191, 134, 14, 7, 191, 133, 14, 7, 191, 132, 14, 7, 191, 131, - 14, 7, 191, 130, 14, 7, 191, 129, 14, 7, 191, 128, 14, 7, 191, 127, 14, - 7, 191, 126, 14, 7, 191, 125, 14, 7, 252, 153, 14, 7, 252, 152, 14, 7, - 252, 151, 14, 7, 252, 150, 14, 7, 252, 149, 14, 7, 252, 148, 14, 7, 252, - 147, 14, 7, 252, 146, 14, 7, 252, 145, 14, 7, 252, 144, 14, 7, 252, 143, - 14, 7, 252, 142, 14, 7, 252, 141, 14, 7, 252, 140, 14, 7, 252, 139, 14, - 7, 252, 138, 14, 7, 252, 137, 14, 7, 252, 136, 14, 7, 252, 135, 14, 7, - 252, 134, 14, 7, 252, 133, 14, 7, 252, 132, 14, 7, 252, 131, 14, 7, 252, - 130, 14, 7, 252, 129, 14, 7, 252, 128, 14, 7, 252, 127, 14, 7, 252, 126, - 14, 7, 252, 125, 14, 7, 252, 124, 14, 7, 252, 123, 14, 7, 252, 122, 14, - 7, 252, 121, 14, 7, 252, 120, 14, 7, 81, 222, 169, 14, 7, 228, 209, 222, - 169, 14, 7, 223, 92, 250, 133, 198, 49, 201, 92, 14, 7, 223, 92, 250, - 133, 248, 29, 201, 92, 14, 7, 223, 92, 250, 133, 198, 49, 234, 52, 14, 7, - 223, 92, 250, 133, 248, 29, 234, 52, 14, 7, 210, 246, 216, 66, 14, 7, - 248, 199, 205, 38, 14, 7, 234, 53, 205, 38, 29, 7, 255, 147, 29, 7, 255, - 146, 29, 7, 255, 145, 29, 7, 255, 144, 29, 7, 255, 143, 29, 7, 255, 141, - 29, 7, 255, 138, 29, 7, 255, 137, 29, 7, 255, 136, 29, 7, 255, 135, 29, - 7, 255, 134, 29, 7, 255, 133, 29, 7, 255, 132, 29, 7, 255, 131, 29, 7, - 255, 130, 29, 7, 255, 128, 29, 7, 255, 127, 29, 7, 255, 126, 29, 7, 255, - 124, 29, 7, 255, 123, 29, 7, 255, 122, 29, 7, 255, 121, 29, 7, 255, 120, - 29, 7, 255, 119, 29, 7, 255, 118, 29, 7, 255, 117, 29, 7, 255, 116, 29, - 7, 255, 115, 29, 7, 255, 114, 29, 7, 255, 113, 29, 7, 255, 111, 29, 7, - 255, 110, 29, 7, 255, 109, 29, 7, 255, 108, 29, 7, 255, 106, 29, 7, 255, - 105, 29, 7, 255, 104, 29, 7, 255, 103, 29, 7, 255, 102, 29, 7, 255, 101, - 29, 7, 255, 100, 29, 7, 255, 99, 29, 7, 255, 98, 29, 7, 255, 96, 29, 7, - 255, 95, 29, 7, 255, 94, 29, 7, 255, 92, 29, 7, 255, 90, 29, 7, 255, 89, - 29, 7, 255, 88, 29, 7, 255, 87, 29, 7, 255, 86, 29, 7, 255, 85, 29, 7, - 255, 84, 29, 7, 255, 83, 29, 7, 255, 82, 29, 7, 255, 81, 29, 7, 255, 80, - 29, 7, 255, 79, 29, 7, 255, 78, 29, 7, 255, 77, 29, 7, 255, 76, 29, 7, + 7, 196, 172, 14, 7, 196, 171, 14, 7, 196, 11, 14, 7, 196, 10, 14, 7, 196, + 9, 14, 7, 196, 8, 14, 7, 196, 7, 14, 7, 196, 6, 14, 7, 196, 5, 14, 7, + 196, 4, 14, 7, 196, 3, 14, 7, 196, 2, 14, 7, 196, 1, 14, 7, 196, 0, 14, + 7, 195, 255, 14, 7, 195, 254, 14, 7, 195, 253, 14, 7, 195, 252, 14, 7, + 195, 251, 14, 7, 195, 250, 14, 7, 195, 249, 14, 7, 195, 248, 14, 7, 195, + 247, 14, 7, 195, 246, 14, 7, 195, 245, 14, 7, 195, 244, 14, 7, 195, 243, + 14, 7, 195, 242, 14, 7, 195, 240, 14, 7, 195, 239, 14, 7, 195, 238, 14, + 7, 195, 237, 14, 7, 195, 236, 14, 7, 195, 235, 14, 7, 195, 234, 14, 7, + 195, 233, 14, 7, 195, 232, 14, 7, 195, 231, 14, 7, 195, 230, 14, 7, 195, + 229, 14, 7, 195, 228, 14, 7, 195, 227, 14, 7, 195, 226, 14, 7, 195, 225, + 14, 7, 195, 224, 14, 7, 195, 223, 14, 7, 195, 222, 14, 7, 195, 221, 14, + 7, 195, 220, 14, 7, 195, 219, 14, 7, 195, 218, 14, 7, 195, 217, 14, 7, + 195, 216, 14, 7, 195, 215, 14, 7, 195, 214, 14, 7, 195, 213, 14, 7, 195, + 212, 14, 7, 195, 211, 14, 7, 195, 210, 14, 7, 195, 209, 14, 7, 195, 208, + 14, 7, 195, 207, 14, 7, 195, 206, 14, 7, 195, 205, 14, 7, 195, 204, 14, + 7, 195, 203, 14, 7, 195, 202, 14, 7, 195, 201, 14, 7, 195, 200, 14, 7, + 195, 199, 14, 7, 195, 198, 14, 7, 195, 197, 14, 7, 195, 196, 14, 7, 195, + 195, 14, 7, 195, 194, 14, 7, 195, 193, 14, 7, 195, 192, 14, 7, 195, 191, + 14, 7, 195, 190, 14, 7, 193, 223, 14, 7, 193, 222, 14, 7, 193, 221, 14, + 7, 193, 220, 14, 7, 193, 219, 14, 7, 193, 218, 14, 7, 193, 217, 14, 7, + 193, 216, 14, 7, 193, 215, 14, 7, 193, 214, 14, 7, 193, 213, 14, 7, 193, + 212, 14, 7, 193, 211, 14, 7, 193, 210, 14, 7, 193, 209, 14, 7, 193, 208, + 14, 7, 193, 207, 14, 7, 193, 206, 14, 7, 193, 205, 14, 7, 193, 204, 14, + 7, 193, 203, 14, 7, 193, 202, 14, 7, 193, 201, 14, 7, 193, 200, 14, 7, + 193, 199, 14, 7, 193, 198, 14, 7, 193, 197, 14, 7, 193, 196, 14, 7, 193, + 195, 14, 7, 193, 194, 14, 7, 193, 193, 14, 7, 193, 192, 14, 7, 192, 232, + 14, 7, 192, 231, 14, 7, 192, 230, 14, 7, 192, 229, 14, 7, 192, 228, 14, + 7, 192, 227, 14, 7, 192, 226, 14, 7, 192, 225, 14, 7, 192, 224, 14, 7, + 192, 223, 14, 7, 192, 222, 14, 7, 192, 221, 14, 7, 192, 157, 14, 7, 192, + 156, 14, 7, 192, 155, 14, 7, 192, 154, 14, 7, 192, 153, 14, 7, 192, 152, + 14, 7, 192, 151, 14, 7, 192, 150, 14, 7, 192, 149, 14, 7, 191, 165, 14, + 7, 191, 164, 14, 7, 191, 163, 14, 7, 191, 162, 14, 7, 191, 161, 14, 7, + 191, 160, 14, 7, 191, 159, 14, 7, 191, 158, 14, 7, 191, 157, 14, 7, 191, + 156, 14, 7, 191, 155, 14, 7, 191, 154, 14, 7, 191, 153, 14, 7, 191, 152, + 14, 7, 191, 151, 14, 7, 191, 150, 14, 7, 191, 149, 14, 7, 191, 148, 14, + 7, 191, 147, 14, 7, 191, 146, 14, 7, 191, 145, 14, 7, 191, 144, 14, 7, + 191, 143, 14, 7, 191, 142, 14, 7, 191, 141, 14, 7, 191, 140, 14, 7, 191, + 139, 14, 7, 191, 138, 14, 7, 191, 137, 14, 7, 191, 136, 14, 7, 191, 135, + 14, 7, 191, 134, 14, 7, 191, 133, 14, 7, 191, 132, 14, 7, 191, 131, 14, + 7, 191, 130, 14, 7, 191, 129, 14, 7, 191, 128, 14, 7, 191, 127, 14, 7, + 191, 126, 14, 7, 191, 125, 14, 7, 252, 205, 14, 7, 252, 204, 14, 7, 252, + 203, 14, 7, 252, 202, 14, 7, 252, 201, 14, 7, 252, 200, 14, 7, 252, 199, + 14, 7, 252, 198, 14, 7, 252, 197, 14, 7, 252, 196, 14, 7, 252, 195, 14, + 7, 252, 194, 14, 7, 252, 193, 14, 7, 252, 192, 14, 7, 252, 191, 14, 7, + 252, 190, 14, 7, 252, 189, 14, 7, 252, 188, 14, 7, 252, 187, 14, 7, 252, + 186, 14, 7, 252, 185, 14, 7, 252, 184, 14, 7, 252, 183, 14, 7, 252, 182, + 14, 7, 252, 181, 14, 7, 252, 180, 14, 7, 252, 179, 14, 7, 252, 178, 14, + 7, 252, 177, 14, 7, 252, 176, 14, 7, 252, 175, 14, 7, 252, 174, 14, 7, + 252, 173, 14, 7, 252, 172, 14, 7, 195, 241, 14, 7, 81, 222, 196, 14, 7, + 228, 241, 222, 196, 14, 7, 223, 120, 250, 183, 198, 54, 201, 97, 14, 7, + 223, 120, 250, 183, 248, 77, 201, 97, 14, 7, 223, 120, 250, 183, 198, 54, + 234, 94, 14, 7, 223, 120, 250, 183, 248, 77, 234, 94, 14, 7, 211, 0, 216, + 84, 14, 7, 248, 249, 205, 43, 14, 7, 234, 95, 205, 43, 14, 7, 223, 120, + 250, 183, 216, 84, 14, 7, 223, 120, 250, 183, 198, 53, 14, 7, 223, 120, + 250, 183, 248, 76, 14, 7, 248, 249, 234, 98, 14, 7, 234, 95, 234, 98, 14, + 7, 248, 249, 193, 166, 234, 98, 14, 7, 234, 95, 193, 166, 234, 98, 14, 7, + 216, 27, 228, 189, 14, 7, 232, 80, 248, 132, 14, 7, 132, 248, 132, 14, 7, + 218, 251, 56, 14, 7, 132, 218, 251, 56, 14, 7, 199, 200, 218, 251, 56, + 14, 7, 193, 78, 218, 251, 56, 14, 7, 52, 237, 249, 250, 183, 198, 54, + 201, 97, 14, 7, 52, 237, 249, 250, 183, 248, 77, 201, 97, 14, 7, 52, 237, + 249, 250, 183, 201, 97, 14, 7, 52, 237, 249, 250, 183, 198, 54, 234, 94, + 14, 7, 52, 237, 249, 250, 183, 198, 53, 14, 7, 52, 237, 249, 250, 183, + 248, 77, 201, 98, 23, 198, 54, 234, 94, 14, 7, 52, 237, 249, 250, 183, + 201, 98, 23, 198, 53, 14, 7, 52, 237, 249, 250, 183, 248, 77, 234, 94, + 14, 7, 52, 237, 249, 250, 183, 198, 54, 201, 98, 23, 248, 77, 234, 94, + 14, 7, 52, 237, 249, 250, 183, 248, 76, 14, 7, 52, 237, 249, 250, 183, + 201, 98, 23, 248, 76, 14, 7, 52, 237, 249, 250, 183, 234, 94, 14, 7, 52, + 237, 249, 250, 183, 198, 54, 23, 234, 94, 14, 7, 52, 237, 249, 250, 183, + 248, 77, 23, 234, 94, 14, 7, 52, 237, 248, 29, 7, 255, 199, 29, 7, 255, + 198, 29, 7, 255, 197, 29, 7, 255, 196, 29, 7, 255, 195, 29, 7, 255, 193, + 29, 7, 255, 190, 29, 7, 255, 189, 29, 7, 255, 188, 29, 7, 255, 187, 29, + 7, 255, 186, 29, 7, 255, 185, 29, 7, 255, 184, 29, 7, 255, 183, 29, 7, + 255, 182, 29, 7, 255, 180, 29, 7, 255, 179, 29, 7, 255, 178, 29, 7, 255, + 176, 29, 7, 255, 175, 29, 7, 255, 174, 29, 7, 255, 173, 29, 7, 255, 172, + 29, 7, 255, 171, 29, 7, 255, 170, 29, 7, 255, 169, 29, 7, 255, 168, 29, + 7, 255, 167, 29, 7, 255, 166, 29, 7, 255, 165, 29, 7, 255, 163, 29, 7, + 255, 162, 29, 7, 255, 161, 29, 7, 255, 160, 29, 7, 255, 158, 29, 7, 255, + 157, 29, 7, 255, 156, 29, 7, 255, 155, 29, 7, 255, 154, 29, 7, 255, 153, + 29, 7, 255, 152, 29, 7, 255, 151, 29, 7, 255, 150, 29, 7, 255, 148, 29, + 7, 255, 147, 29, 7, 255, 146, 29, 7, 255, 144, 29, 7, 255, 142, 29, 7, + 255, 141, 29, 7, 255, 140, 29, 7, 255, 139, 29, 7, 255, 138, 29, 7, 255, + 137, 29, 7, 255, 136, 29, 7, 255, 135, 29, 7, 255, 134, 29, 7, 255, 133, + 29, 7, 255, 132, 29, 7, 255, 131, 29, 7, 255, 130, 29, 7, 255, 129, 29, + 7, 255, 128, 29, 7, 255, 127, 29, 7, 255, 126, 29, 7, 255, 125, 29, 7, + 255, 124, 29, 7, 255, 123, 29, 7, 255, 122, 29, 7, 255, 121, 29, 7, 255, + 120, 29, 7, 255, 119, 29, 7, 255, 118, 29, 7, 255, 117, 29, 7, 255, 116, + 29, 7, 255, 115, 29, 7, 255, 114, 29, 7, 255, 113, 29, 7, 255, 112, 29, + 7, 255, 111, 29, 7, 255, 110, 29, 7, 255, 109, 29, 7, 255, 108, 29, 7, + 255, 107, 29, 7, 255, 106, 29, 7, 255, 105, 29, 7, 255, 104, 29, 7, 255, + 103, 29, 7, 255, 102, 29, 7, 255, 101, 29, 7, 255, 100, 29, 7, 255, 99, + 29, 7, 255, 98, 29, 7, 255, 97, 29, 7, 255, 96, 29, 7, 255, 95, 29, 7, + 255, 94, 29, 7, 255, 93, 29, 7, 255, 92, 29, 7, 255, 91, 29, 7, 255, 90, + 29, 7, 255, 89, 29, 7, 255, 88, 29, 7, 255, 87, 29, 7, 255, 86, 29, 7, + 255, 85, 29, 7, 255, 84, 29, 7, 255, 83, 29, 7, 255, 82, 29, 7, 255, 81, + 29, 7, 255, 80, 29, 7, 255, 79, 29, 7, 255, 78, 29, 7, 255, 76, 29, 7, 255, 75, 29, 7, 255, 74, 29, 7, 255, 73, 29, 7, 255, 72, 29, 7, 255, 71, 29, 7, 255, 70, 29, 7, 255, 69, 29, 7, 255, 68, 29, 7, 255, 67, 29, 7, 255, 66, 29, 7, 255, 65, 29, 7, 255, 64, 29, 7, 255, 63, 29, 7, 255, 62, @@ -16890,25 +16976,25 @@ static const unsigned char phrasebook[] = { 255, 57, 29, 7, 255, 56, 29, 7, 255, 55, 29, 7, 255, 54, 29, 7, 255, 53, 29, 7, 255, 52, 29, 7, 255, 51, 29, 7, 255, 50, 29, 7, 255, 49, 29, 7, 255, 48, 29, 7, 255, 47, 29, 7, 255, 46, 29, 7, 255, 45, 29, 7, 255, 44, - 29, 7, 255, 43, 29, 7, 255, 42, 29, 7, 255, 41, 29, 7, 255, 40, 29, 7, - 255, 39, 29, 7, 255, 38, 29, 7, 255, 37, 29, 7, 255, 36, 29, 7, 255, 35, - 29, 7, 255, 34, 29, 7, 255, 33, 29, 7, 255, 32, 29, 7, 255, 31, 29, 7, - 255, 30, 29, 7, 255, 29, 29, 7, 255, 28, 29, 7, 255, 27, 29, 7, 255, 26, - 29, 7, 255, 24, 29, 7, 255, 23, 29, 7, 255, 22, 29, 7, 255, 21, 29, 7, - 255, 20, 29, 7, 255, 19, 29, 7, 255, 18, 29, 7, 255, 17, 29, 7, 255, 16, - 29, 7, 255, 15, 29, 7, 255, 14, 29, 7, 255, 13, 29, 7, 255, 12, 29, 7, - 255, 11, 29, 7, 255, 10, 29, 7, 255, 9, 29, 7, 255, 8, 29, 7, 255, 7, 29, - 7, 255, 6, 29, 7, 255, 5, 29, 7, 255, 4, 29, 7, 255, 3, 29, 7, 255, 2, - 29, 7, 255, 1, 29, 7, 255, 0, 29, 7, 254, 255, 29, 7, 254, 254, 29, 7, - 254, 253, 29, 7, 254, 252, 29, 7, 254, 251, 29, 7, 254, 250, 29, 7, 254, - 249, 29, 7, 254, 248, 29, 7, 254, 247, 29, 7, 254, 245, 29, 7, 254, 244, + 29, 7, 255, 43, 29, 7, 255, 41, 29, 7, 255, 40, 29, 7, 255, 39, 29, 7, + 255, 38, 29, 7, 255, 37, 29, 7, 255, 36, 29, 7, 255, 35, 29, 7, 255, 34, + 29, 7, 255, 33, 29, 7, 255, 32, 29, 7, 255, 31, 29, 7, 255, 30, 29, 7, + 255, 28, 29, 7, 255, 27, 29, 7, 255, 26, 29, 7, 255, 25, 29, 7, 255, 24, + 29, 7, 255, 23, 29, 7, 255, 22, 29, 7, 255, 21, 29, 7, 255, 20, 29, 7, + 255, 19, 29, 7, 255, 18, 29, 7, 255, 17, 29, 7, 255, 16, 29, 7, 255, 15, + 29, 7, 255, 14, 29, 7, 255, 13, 29, 7, 255, 12, 29, 7, 255, 11, 29, 7, + 255, 10, 29, 7, 255, 9, 29, 7, 255, 8, 29, 7, 255, 7, 29, 7, 255, 6, 29, + 7, 255, 5, 29, 7, 255, 4, 29, 7, 255, 3, 29, 7, 255, 2, 29, 7, 255, 1, + 29, 7, 255, 0, 29, 7, 254, 255, 29, 7, 254, 254, 29, 7, 254, 253, 29, 7, + 254, 252, 29, 7, 254, 251, 29, 7, 254, 250, 29, 7, 254, 249, 29, 7, 254, + 248, 29, 7, 254, 247, 29, 7, 254, 246, 29, 7, 254, 245, 29, 7, 254, 244, 29, 7, 254, 243, 29, 7, 254, 242, 29, 7, 254, 241, 29, 7, 254, 240, 29, 7, 254, 239, 29, 7, 254, 238, 29, 7, 254, 237, 29, 7, 254, 236, 29, 7, - 254, 235, 29, 7, 254, 234, 29, 7, 254, 232, 29, 7, 254, 231, 29, 7, 254, - 230, 29, 7, 254, 229, 29, 7, 254, 228, 29, 7, 254, 227, 29, 7, 254, 226, - 29, 7, 254, 225, 29, 7, 254, 224, 29, 7, 254, 223, 29, 7, 254, 222, 29, - 7, 254, 221, 29, 7, 254, 220, 29, 7, 254, 219, 29, 7, 254, 218, 29, 7, - 254, 217, 29, 7, 254, 216, 29, 7, 254, 215, 29, 7, 254, 214, 29, 7, 254, + 254, 235, 29, 7, 254, 234, 29, 7, 254, 233, 29, 7, 254, 232, 29, 7, 254, + 231, 29, 7, 254, 230, 29, 7, 254, 229, 29, 7, 254, 228, 29, 7, 254, 227, + 29, 7, 254, 226, 29, 7, 254, 225, 29, 7, 254, 224, 29, 7, 254, 223, 29, + 7, 254, 222, 29, 7, 254, 221, 29, 7, 254, 220, 29, 7, 254, 219, 29, 7, + 254, 218, 29, 7, 254, 217, 29, 7, 254, 216, 29, 7, 254, 214, 29, 7, 254, 213, 29, 7, 254, 212, 29, 7, 254, 211, 29, 7, 254, 210, 29, 7, 254, 209, 29, 7, 254, 208, 29, 7, 254, 207, 29, 7, 254, 206, 29, 7, 254, 205, 29, 7, 254, 204, 29, 7, 254, 203, 29, 7, 254, 202, 29, 7, 254, 201, 29, 7, @@ -16920,472 +17006,469 @@ static const unsigned char phrasebook[] = { 179, 29, 7, 254, 178, 29, 7, 254, 177, 29, 7, 254, 176, 29, 7, 254, 175, 29, 7, 254, 174, 29, 7, 254, 173, 29, 7, 254, 172, 29, 7, 254, 171, 29, 7, 254, 170, 29, 7, 254, 169, 29, 7, 254, 168, 29, 7, 254, 167, 29, 7, - 254, 166, 29, 7, 254, 165, 29, 7, 254, 164, 29, 7, 254, 162, 29, 7, 254, - 161, 29, 7, 254, 160, 29, 7, 254, 159, 29, 7, 254, 158, 29, 7, 254, 157, - 29, 7, 254, 156, 29, 7, 254, 155, 29, 7, 254, 154, 29, 7, 254, 153, 29, - 7, 254, 152, 29, 7, 254, 151, 29, 7, 254, 150, 29, 7, 254, 149, 29, 7, - 254, 148, 29, 7, 254, 147, 29, 7, 254, 146, 29, 7, 254, 145, 29, 7, 254, - 144, 29, 7, 254, 143, 29, 7, 254, 142, 29, 7, 254, 141, 29, 7, 254, 140, - 29, 7, 254, 139, 29, 7, 254, 138, 29, 7, 254, 137, 29, 7, 254, 136, 29, - 7, 254, 135, 29, 7, 254, 134, 29, 7, 254, 133, 29, 7, 254, 132, 29, 7, - 254, 131, 29, 7, 254, 130, 29, 7, 254, 129, 29, 7, 254, 128, 29, 7, 254, - 127, 29, 7, 254, 126, 29, 7, 254, 125, 29, 7, 254, 124, 29, 7, 254, 123, - 29, 7, 254, 122, 29, 7, 254, 121, 29, 7, 254, 120, 29, 7, 254, 119, 29, - 7, 254, 118, 29, 7, 254, 117, 29, 7, 254, 116, 29, 7, 254, 115, 29, 7, - 254, 114, 29, 7, 254, 113, 29, 7, 254, 112, 29, 7, 254, 111, 29, 7, 254, - 110, 29, 7, 254, 109, 29, 7, 254, 108, 29, 7, 254, 107, 29, 7, 254, 106, - 29, 7, 254, 105, 29, 7, 254, 104, 29, 7, 254, 103, 29, 7, 254, 102, 29, + 254, 166, 29, 7, 254, 165, 29, 7, 254, 164, 29, 7, 254, 163, 29, 7, 254, + 162, 29, 7, 254, 161, 29, 7, 254, 160, 29, 7, 254, 159, 29, 7, 254, 158, + 29, 7, 254, 157, 29, 7, 254, 156, 29, 7, 254, 155, 29, 7, 254, 154, 29, + 7, 254, 153, 29, 7, 254, 152, 29, 7, 254, 151, 29, 7, 254, 150, 29, 7, + 254, 149, 29, 7, 254, 148, 29, 7, 254, 147, 29, 7, 254, 146, 29, 7, 254, + 145, 29, 7, 254, 144, 29, 7, 254, 143, 29, 7, 254, 142, 29, 7, 254, 141, + 29, 7, 254, 140, 29, 7, 254, 139, 29, 7, 254, 138, 29, 7, 254, 137, 29, + 7, 254, 136, 29, 7, 254, 135, 29, 7, 254, 134, 29, 7, 254, 133, 29, 7, + 254, 132, 29, 7, 254, 131, 29, 7, 254, 130, 29, 7, 254, 129, 29, 7, 254, + 128, 29, 7, 254, 127, 29, 7, 254, 126, 29, 7, 254, 125, 29, 7, 254, 124, + 29, 7, 254, 123, 29, 7, 254, 122, 29, 7, 254, 121, 29, 7, 254, 120, 29, + 7, 254, 119, 29, 7, 254, 118, 29, 7, 254, 117, 29, 7, 254, 116, 29, 7, + 254, 115, 29, 7, 254, 114, 29, 7, 254, 113, 29, 7, 254, 112, 29, 7, 254, + 111, 29, 7, 254, 110, 29, 7, 254, 109, 29, 7, 254, 108, 29, 7, 254, 107, + 29, 7, 254, 106, 29, 7, 254, 105, 29, 7, 254, 104, 29, 7, 254, 102, 29, 7, 254, 101, 29, 7, 254, 100, 29, 7, 254, 99, 29, 7, 254, 98, 29, 7, 254, 97, 29, 7, 254, 96, 29, 7, 254, 95, 29, 7, 254, 94, 29, 7, 254, 93, 29, - 7, 254, 92, 29, 7, 254, 91, 29, 7, 254, 90, 29, 7, 254, 89, 29, 7, 254, - 88, 29, 7, 254, 87, 29, 7, 254, 86, 29, 7, 254, 85, 29, 7, 254, 84, 29, - 7, 254, 83, 29, 7, 254, 82, 29, 7, 254, 81, 29, 7, 254, 80, 29, 7, 254, - 79, 29, 7, 254, 78, 29, 7, 254, 77, 29, 7, 254, 76, 29, 7, 254, 75, 29, - 7, 254, 74, 29, 7, 254, 73, 29, 7, 254, 72, 29, 7, 254, 71, 29, 7, 254, - 70, 29, 7, 254, 69, 29, 7, 254, 68, 29, 7, 254, 67, 29, 7, 254, 66, 29, - 7, 254, 65, 29, 7, 254, 64, 29, 7, 254, 63, 29, 7, 254, 62, 29, 7, 254, - 61, 29, 7, 254, 60, 29, 7, 254, 59, 29, 7, 254, 58, 29, 7, 254, 57, 29, - 7, 254, 56, 29, 7, 254, 55, 29, 7, 254, 54, 29, 7, 254, 53, 29, 7, 254, - 52, 29, 7, 254, 50, 29, 7, 254, 49, 29, 7, 254, 48, 29, 7, 254, 47, 29, - 7, 254, 46, 29, 7, 254, 45, 29, 7, 254, 44, 29, 7, 254, 43, 29, 7, 254, - 42, 29, 7, 254, 41, 29, 7, 254, 40, 29, 7, 254, 37, 29, 7, 254, 36, 29, - 7, 254, 35, 29, 7, 254, 34, 29, 7, 254, 30, 29, 7, 254, 29, 29, 7, 254, + 7, 254, 92, 29, 7, 254, 89, 29, 7, 254, 88, 29, 7, 254, 87, 29, 7, 254, + 86, 29, 7, 254, 82, 29, 7, 254, 81, 29, 7, 254, 80, 29, 7, 254, 79, 29, + 7, 254, 78, 29, 7, 254, 77, 29, 7, 254, 76, 29, 7, 254, 75, 29, 7, 254, + 74, 29, 7, 254, 73, 29, 7, 254, 72, 29, 7, 254, 71, 29, 7, 254, 70, 29, + 7, 254, 69, 29, 7, 254, 68, 29, 7, 254, 67, 29, 7, 254, 66, 29, 7, 254, + 65, 29, 7, 254, 64, 29, 7, 254, 62, 29, 7, 254, 61, 29, 7, 254, 60, 29, + 7, 254, 59, 29, 7, 254, 58, 29, 7, 254, 57, 29, 7, 254, 56, 29, 7, 254, + 55, 29, 7, 254, 54, 29, 7, 254, 53, 29, 7, 254, 52, 29, 7, 254, 51, 29, + 7, 254, 50, 29, 7, 254, 49, 29, 7, 254, 48, 29, 7, 254, 47, 29, 7, 254, + 46, 29, 7, 254, 45, 29, 7, 254, 44, 29, 7, 254, 43, 29, 7, 254, 42, 29, + 7, 254, 41, 29, 7, 254, 40, 29, 7, 254, 39, 29, 7, 254, 38, 29, 7, 254, + 37, 29, 7, 254, 36, 29, 7, 254, 35, 29, 7, 254, 34, 29, 7, 254, 33, 29, + 7, 254, 32, 29, 7, 254, 31, 29, 7, 254, 30, 29, 7, 254, 29, 29, 7, 254, 28, 29, 7, 254, 27, 29, 7, 254, 26, 29, 7, 254, 25, 29, 7, 254, 24, 29, 7, 254, 23, 29, 7, 254, 22, 29, 7, 254, 21, 29, 7, 254, 20, 29, 7, 254, 19, 29, 7, 254, 18, 29, 7, 254, 17, 29, 7, 254, 16, 29, 7, 254, 15, 29, - 7, 254, 14, 29, 7, 254, 13, 29, 7, 254, 12, 29, 7, 254, 10, 29, 7, 254, - 9, 29, 7, 254, 8, 29, 7, 254, 7, 29, 7, 254, 6, 29, 7, 254, 5, 29, 7, - 254, 4, 29, 7, 254, 3, 29, 7, 254, 2, 29, 7, 254, 1, 29, 7, 254, 0, 29, - 7, 253, 255, 29, 7, 253, 254, 29, 7, 253, 253, 29, 7, 253, 252, 29, 7, - 253, 251, 29, 7, 253, 250, 29, 7, 253, 249, 29, 7, 253, 248, 29, 7, 253, - 247, 29, 7, 253, 246, 29, 7, 253, 245, 29, 7, 253, 244, 29, 7, 253, 243, - 29, 7, 253, 242, 29, 7, 253, 241, 29, 7, 253, 240, 29, 7, 253, 239, 29, - 7, 253, 238, 29, 7, 253, 237, 29, 7, 253, 236, 29, 7, 253, 235, 29, 7, - 253, 234, 29, 7, 253, 233, 29, 7, 253, 232, 29, 7, 253, 231, 29, 7, 253, - 230, 29, 7, 253, 229, 29, 7, 253, 228, 29, 7, 253, 227, 29, 7, 253, 226, - 29, 7, 253, 225, 29, 7, 253, 224, 29, 7, 253, 223, 29, 7, 253, 222, 29, - 7, 253, 221, 29, 7, 253, 220, 29, 7, 253, 219, 29, 7, 253, 218, 29, 7, - 253, 217, 29, 7, 253, 216, 29, 7, 253, 215, 29, 7, 253, 214, 29, 7, 253, - 213, 29, 7, 253, 212, 29, 7, 253, 211, 29, 7, 253, 210, 29, 7, 253, 209, - 29, 7, 253, 208, 29, 7, 253, 207, 29, 7, 253, 206, 29, 7, 253, 205, 207, - 181, 211, 46, 206, 252, 29, 7, 253, 204, 29, 7, 253, 203, 29, 7, 253, - 202, 29, 7, 253, 201, 29, 7, 253, 200, 29, 7, 253, 199, 29, 7, 253, 198, - 29, 7, 253, 197, 29, 7, 253, 196, 29, 7, 253, 195, 29, 7, 253, 194, 29, - 7, 253, 193, 176, 29, 7, 253, 192, 29, 7, 253, 191, 29, 7, 253, 190, 29, - 7, 253, 189, 29, 7, 253, 188, 29, 7, 253, 187, 29, 7, 253, 186, 29, 7, - 253, 184, 29, 7, 253, 182, 29, 7, 253, 180, 29, 7, 253, 178, 29, 7, 253, - 176, 29, 7, 253, 174, 29, 7, 253, 172, 29, 7, 253, 170, 29, 7, 253, 168, - 29, 7, 253, 166, 248, 199, 219, 4, 77, 29, 7, 253, 164, 234, 53, 219, 4, - 77, 29, 7, 253, 163, 29, 7, 253, 161, 29, 7, 253, 159, 29, 7, 253, 157, - 29, 7, 253, 155, 29, 7, 253, 153, 29, 7, 253, 151, 29, 7, 253, 149, 29, - 7, 253, 147, 29, 7, 253, 146, 29, 7, 253, 145, 29, 7, 253, 144, 29, 7, - 253, 143, 29, 7, 253, 142, 29, 7, 253, 141, 29, 7, 253, 140, 29, 7, 253, - 139, 29, 7, 253, 138, 29, 7, 253, 137, 29, 7, 253, 136, 29, 7, 253, 135, - 29, 7, 253, 134, 29, 7, 253, 133, 29, 7, 253, 132, 29, 7, 253, 131, 29, - 7, 253, 130, 29, 7, 253, 129, 29, 7, 253, 128, 29, 7, 253, 127, 29, 7, - 253, 126, 29, 7, 253, 125, 29, 7, 253, 124, 29, 7, 253, 123, 29, 7, 253, - 122, 29, 7, 253, 121, 29, 7, 253, 120, 29, 7, 253, 119, 29, 7, 253, 118, - 29, 7, 253, 117, 29, 7, 253, 116, 29, 7, 253, 115, 29, 7, 253, 114, 29, - 7, 253, 113, 29, 7, 253, 112, 29, 7, 253, 111, 29, 7, 253, 110, 29, 7, - 253, 109, 29, 7, 253, 108, 29, 7, 253, 107, 29, 7, 253, 106, 29, 7, 253, - 105, 29, 7, 253, 104, 29, 7, 253, 103, 29, 7, 253, 102, 29, 7, 253, 101, - 29, 7, 253, 100, 29, 7, 253, 99, 29, 7, 253, 98, 29, 7, 253, 97, 29, 7, - 253, 96, 29, 7, 253, 95, 29, 7, 253, 94, 29, 7, 253, 93, 29, 7, 253, 92, - 29, 7, 253, 91, 29, 7, 253, 90, 29, 7, 253, 89, 29, 7, 253, 88, 29, 7, - 253, 87, 29, 7, 253, 86, 29, 7, 253, 85, 29, 7, 253, 84, 29, 7, 253, 83, - 29, 7, 253, 82, 29, 7, 253, 81, 29, 7, 253, 80, 29, 7, 253, 79, 29, 7, - 253, 78, 29, 7, 253, 77, 29, 7, 253, 76, 29, 7, 253, 75, 29, 7, 253, 74, - 29, 7, 253, 73, 29, 7, 253, 72, 29, 7, 253, 71, 29, 7, 253, 70, 29, 7, - 253, 69, 29, 7, 253, 68, 29, 7, 253, 67, 29, 7, 253, 66, 29, 7, 253, 65, - 29, 7, 253, 64, 29, 7, 253, 63, 29, 7, 253, 62, 29, 7, 253, 61, 29, 7, - 253, 60, 29, 7, 253, 59, 29, 7, 253, 58, 29, 7, 253, 57, 29, 7, 253, 56, - 29, 7, 253, 55, 29, 7, 253, 54, 29, 7, 253, 53, 29, 7, 253, 52, 29, 7, - 253, 51, 29, 7, 253, 50, 29, 7, 253, 49, 29, 7, 253, 48, 29, 7, 253, 47, - 29, 7, 253, 46, 29, 7, 253, 45, 29, 7, 253, 44, 29, 7, 253, 43, 29, 7, - 253, 42, 29, 7, 253, 41, 29, 7, 253, 40, 29, 7, 253, 39, 29, 7, 253, 38, - 29, 7, 253, 37, 26, 1, 209, 209, 213, 243, 216, 123, 26, 1, 209, 209, - 231, 136, 232, 127, 26, 1, 209, 209, 209, 33, 216, 124, 209, 119, 26, 1, - 209, 209, 209, 33, 216, 124, 209, 120, 26, 1, 209, 209, 214, 237, 216, - 123, 26, 1, 209, 209, 202, 251, 26, 1, 209, 209, 198, 119, 216, 123, 26, - 1, 209, 209, 212, 34, 216, 123, 26, 1, 209, 209, 203, 63, 210, 211, 213, - 128, 26, 1, 209, 209, 209, 33, 210, 211, 213, 129, 209, 119, 26, 1, 209, - 209, 209, 33, 210, 211, 213, 129, 209, 120, 26, 1, 209, 209, 217, 110, - 26, 1, 209, 209, 197, 91, 217, 111, 26, 1, 209, 209, 214, 48, 26, 1, 209, - 209, 217, 107, 26, 1, 209, 209, 217, 57, 26, 1, 209, 209, 215, 72, 26, 1, - 209, 209, 203, 244, 26, 1, 209, 209, 212, 174, 26, 1, 209, 209, 221, 209, - 26, 1, 209, 209, 213, 95, 26, 1, 209, 209, 200, 156, 26, 1, 209, 209, - 213, 242, 26, 1, 209, 209, 219, 247, 26, 1, 209, 209, 219, 153, 220, 164, - 26, 1, 209, 209, 212, 184, 216, 131, 26, 1, 209, 209, 217, 114, 26, 1, - 209, 209, 210, 88, 26, 1, 209, 209, 231, 35, 26, 1, 209, 209, 210, 160, - 26, 1, 209, 209, 215, 215, 214, 21, 26, 1, 209, 209, 212, 15, 216, 134, - 26, 1, 209, 209, 126, 191, 195, 214, 230, 26, 1, 209, 209, 231, 36, 26, - 1, 209, 209, 212, 184, 212, 185, 26, 1, 209, 209, 202, 134, 26, 1, 209, - 209, 216, 116, 26, 1, 209, 209, 216, 137, 26, 1, 209, 209, 215, 190, 26, - 1, 209, 209, 222, 78, 26, 1, 209, 209, 210, 211, 219, 201, 26, 1, 209, - 209, 214, 149, 219, 201, 26, 1, 209, 209, 209, 231, 26, 1, 209, 209, 217, - 108, 26, 1, 209, 209, 213, 171, 26, 1, 209, 209, 208, 137, 26, 1, 209, - 209, 197, 83, 26, 1, 209, 209, 218, 199, 26, 1, 209, 209, 202, 12, 26, 1, - 209, 209, 199, 53, 26, 1, 209, 209, 217, 105, 26, 1, 209, 209, 221, 216, - 26, 1, 209, 209, 214, 145, 26, 1, 209, 209, 220, 179, 26, 1, 209, 209, - 215, 191, 26, 1, 209, 209, 202, 247, 26, 1, 209, 209, 218, 252, 26, 1, - 209, 209, 232, 198, 26, 1, 209, 209, 206, 132, 26, 1, 209, 209, 220, 242, - 26, 1, 209, 209, 202, 8, 26, 1, 209, 209, 217, 52, 209, 164, 26, 1, 209, - 209, 203, 56, 26, 1, 209, 209, 212, 183, 26, 1, 209, 209, 203, 37, 212, - 195, 191, 203, 26, 1, 209, 209, 212, 56, 215, 211, 26, 1, 209, 209, 210, - 206, 26, 1, 209, 209, 213, 97, 26, 1, 209, 209, 196, 81, 26, 1, 209, 209, - 214, 24, 26, 1, 209, 209, 217, 104, 26, 1, 209, 209, 213, 140, 26, 1, - 209, 209, 216, 243, 26, 1, 209, 209, 212, 71, 26, 1, 209, 209, 199, 57, - 26, 1, 209, 209, 202, 3, 26, 1, 209, 209, 210, 207, 26, 1, 209, 209, 212, - 199, 26, 1, 209, 209, 217, 112, 26, 1, 209, 209, 212, 68, 26, 1, 209, - 209, 222, 40, 26, 1, 209, 209, 212, 202, 26, 1, 209, 209, 195, 145, 26, - 1, 209, 209, 218, 203, 26, 1, 209, 209, 214, 88, 26, 1, 209, 209, 214, - 203, 26, 1, 209, 209, 216, 242, 26, 1, 209, 208, 212, 197, 26, 1, 209, - 208, 197, 91, 217, 109, 26, 1, 209, 208, 202, 199, 26, 1, 209, 208, 203, - 248, 197, 90, 26, 1, 209, 208, 218, 255, 212, 180, 26, 1, 209, 208, 216, - 249, 217, 113, 26, 1, 209, 208, 221, 126, 26, 1, 209, 208, 192, 43, 26, - 1, 209, 208, 216, 244, 26, 1, 209, 208, 222, 64, 26, 1, 209, 208, 210, - 35, 26, 1, 209, 208, 192, 126, 219, 201, 26, 1, 209, 208, 220, 12, 212, - 195, 212, 82, 26, 1, 209, 208, 212, 177, 203, 82, 26, 1, 209, 208, 214, - 116, 213, 143, 26, 1, 209, 208, 231, 33, 26, 1, 209, 208, 209, 109, 26, - 1, 209, 208, 197, 91, 212, 193, 26, 1, 209, 208, 203, 87, 213, 138, 26, - 1, 209, 208, 203, 83, 26, 1, 209, 208, 216, 124, 199, 56, 26, 1, 209, - 208, 216, 231, 216, 245, 26, 1, 209, 208, 212, 69, 212, 180, 26, 1, 209, - 208, 221, 205, 26, 1, 209, 208, 231, 34, 26, 1, 209, 208, 221, 201, 26, - 1, 209, 208, 220, 96, 26, 1, 209, 208, 210, 91, 26, 1, 209, 208, 195, 74, - 26, 1, 209, 208, 213, 244, 215, 70, 26, 1, 209, 208, 214, 23, 216, 227, - 26, 1, 209, 208, 192, 254, 26, 1, 209, 208, 205, 170, 26, 1, 209, 208, - 199, 235, 26, 1, 209, 208, 216, 136, 26, 1, 209, 208, 214, 7, 26, 1, 209, - 208, 214, 8, 219, 244, 26, 1, 209, 208, 216, 126, 26, 1, 209, 208, 200, - 209, 26, 1, 209, 208, 216, 235, 26, 1, 209, 208, 215, 195, 26, 1, 209, - 208, 212, 86, 26, 1, 209, 208, 208, 141, 26, 1, 209, 208, 216, 135, 214, - 25, 26, 1, 209, 208, 232, 243, 26, 1, 209, 208, 216, 222, 26, 1, 209, - 208, 233, 11, 26, 1, 209, 208, 221, 213, 26, 1, 209, 208, 217, 139, 213, - 132, 26, 1, 209, 208, 217, 139, 213, 108, 26, 1, 209, 208, 219, 152, 26, - 1, 209, 208, 214, 31, 26, 1, 209, 208, 212, 204, 26, 1, 209, 208, 172, - 26, 1, 209, 208, 221, 109, 26, 1, 209, 208, 213, 232, 26, 1, 209, 207, - 213, 243, 217, 111, 26, 1, 209, 207, 212, 33, 26, 1, 209, 207, 191, 203, - 26, 1, 209, 207, 193, 158, 26, 1, 209, 207, 214, 24, 26, 1, 209, 207, - 214, 137, 26, 1, 209, 207, 213, 250, 26, 1, 209, 207, 231, 43, 26, 1, - 209, 207, 216, 239, 26, 1, 209, 207, 231, 143, 26, 1, 209, 207, 212, 58, - 216, 4, 216, 138, 26, 1, 209, 207, 212, 171, 216, 230, 26, 1, 209, 207, - 216, 236, 26, 1, 209, 207, 209, 115, 26, 1, 209, 207, 214, 122, 26, 1, - 209, 207, 216, 247, 247, 108, 26, 1, 209, 207, 221, 203, 26, 1, 209, 207, - 231, 44, 26, 1, 209, 207, 221, 210, 26, 1, 209, 207, 191, 226, 215, 103, - 26, 1, 209, 207, 212, 27, 26, 1, 209, 207, 216, 224, 26, 1, 209, 207, - 212, 203, 26, 1, 209, 207, 216, 230, 26, 1, 209, 207, 192, 44, 26, 1, - 209, 207, 220, 250, 26, 1, 209, 207, 222, 100, 26, 1, 209, 207, 203, 243, - 26, 1, 209, 207, 214, 131, 26, 1, 209, 207, 199, 233, 26, 1, 209, 207, - 213, 112, 26, 1, 209, 207, 198, 119, 191, 207, 26, 1, 209, 207, 200, 242, - 26, 1, 209, 207, 214, 14, 212, 82, 26, 1, 209, 207, 195, 73, 26, 1, 209, - 207, 214, 206, 26, 1, 209, 207, 217, 139, 221, 212, 26, 1, 209, 207, 212, - 185, 26, 1, 209, 207, 214, 9, 26, 1, 209, 207, 219, 248, 26, 1, 209, 207, - 216, 232, 26, 1, 209, 207, 216, 115, 26, 1, 209, 207, 212, 179, 26, 1, - 209, 207, 199, 52, 26, 1, 209, 207, 214, 11, 26, 1, 209, 207, 232, 46, - 26, 1, 209, 207, 214, 136, 26, 1, 209, 207, 212, 205, 26, 1, 209, 207, - 212, 201, 26, 1, 209, 207, 247, 192, 26, 1, 209, 207, 195, 75, 26, 1, - 209, 207, 216, 237, 26, 1, 209, 207, 206, 63, 26, 1, 209, 207, 213, 142, - 26, 1, 209, 207, 220, 11, 26, 1, 209, 207, 198, 116, 26, 1, 209, 207, - 212, 187, 213, 232, 26, 1, 209, 207, 213, 134, 26, 1, 209, 207, 221, 216, - 26, 1, 209, 207, 214, 16, 26, 1, 209, 207, 217, 104, 26, 1, 209, 207, - 216, 225, 26, 1, 209, 207, 218, 203, 26, 1, 209, 207, 220, 164, 26, 1, - 209, 207, 213, 140, 26, 1, 209, 207, 213, 232, 26, 1, 209, 207, 192, 244, - 26, 1, 209, 207, 214, 12, 26, 1, 209, 207, 212, 190, 26, 1, 209, 207, - 212, 181, 26, 1, 209, 207, 220, 181, 213, 97, 26, 1, 209, 207, 212, 188, - 26, 1, 209, 207, 214, 144, 26, 1, 209, 207, 217, 139, 212, 193, 26, 1, - 209, 207, 192, 140, 26, 1, 209, 207, 214, 143, 26, 1, 209, 207, 202, 250, - 26, 1, 209, 207, 203, 246, 26, 1, 209, 207, 216, 233, 26, 1, 209, 207, - 217, 111, 26, 1, 209, 207, 216, 243, 26, 1, 209, 207, 221, 204, 26, 1, - 209, 207, 216, 234, 26, 1, 209, 207, 221, 208, 26, 1, 209, 207, 216, 247, - 209, 170, 26, 1, 209, 207, 191, 186, 26, 1, 209, 207, 213, 130, 26, 1, - 209, 207, 216, 62, 26, 1, 209, 207, 215, 133, 26, 1, 209, 207, 203, 59, - 26, 1, 209, 207, 221, 227, 219, 226, 26, 1, 209, 207, 221, 227, 233, 24, - 26, 1, 209, 207, 214, 46, 26, 1, 209, 207, 214, 203, 26, 1, 209, 207, - 219, 70, 26, 1, 209, 207, 209, 130, 26, 1, 209, 207, 210, 25, 26, 1, 209, - 207, 199, 68, 26, 1, 158, 216, 223, 26, 1, 158, 193, 156, 26, 1, 158, - 213, 128, 26, 1, 158, 216, 123, 26, 1, 158, 213, 126, 26, 1, 158, 219, - 115, 26, 1, 158, 213, 131, 26, 1, 158, 212, 200, 26, 1, 158, 214, 30, 26, - 1, 158, 212, 82, 26, 1, 158, 192, 255, 26, 1, 158, 213, 240, 26, 1, 158, - 203, 106, 26, 1, 158, 213, 251, 26, 1, 158, 221, 211, 26, 1, 158, 199, - 54, 26, 1, 158, 203, 85, 26, 1, 158, 213, 139, 26, 1, 158, 200, 209, 26, - 1, 158, 221, 216, 26, 1, 158, 192, 128, 26, 1, 158, 220, 182, 26, 1, 158, - 205, 125, 26, 1, 158, 216, 128, 26, 1, 158, 214, 135, 26, 1, 158, 217, - 75, 26, 1, 158, 216, 134, 26, 1, 158, 203, 245, 26, 1, 158, 192, 70, 26, - 1, 158, 213, 133, 26, 1, 158, 221, 207, 216, 226, 26, 1, 158, 213, 247, - 26, 1, 158, 197, 90, 26, 1, 158, 231, 53, 26, 1, 158, 213, 237, 26, 1, - 158, 232, 244, 26, 1, 158, 214, 139, 26, 1, 158, 216, 107, 26, 1, 158, - 219, 146, 26, 1, 158, 214, 121, 26, 1, 158, 215, 210, 26, 1, 158, 216, - 111, 26, 1, 158, 208, 120, 26, 1, 158, 216, 109, 26, 1, 158, 216, 125, - 26, 1, 158, 218, 186, 26, 1, 158, 212, 192, 26, 1, 158, 216, 246, 26, 1, - 158, 220, 153, 26, 1, 158, 212, 71, 26, 1, 158, 199, 57, 26, 1, 158, 202, - 3, 26, 1, 158, 191, 186, 26, 1, 158, 221, 208, 26, 1, 158, 207, 157, 26, - 1, 158, 199, 115, 26, 1, 158, 213, 248, 26, 1, 158, 216, 130, 26, 1, 158, - 212, 191, 26, 1, 158, 221, 206, 26, 1, 158, 209, 121, 26, 1, 158, 209, - 224, 26, 1, 158, 212, 44, 26, 1, 158, 219, 152, 26, 1, 158, 214, 31, 26, - 1, 158, 216, 127, 26, 1, 158, 214, 4, 26, 1, 158, 191, 200, 26, 1, 158, - 210, 127, 26, 1, 158, 191, 199, 26, 1, 158, 214, 144, 26, 1, 158, 212, - 180, 26, 1, 158, 200, 244, 26, 1, 158, 220, 186, 26, 1, 158, 214, 20, 26, - 1, 158, 213, 245, 26, 1, 158, 197, 65, 26, 1, 158, 216, 138, 26, 1, 158, - 220, 175, 26, 1, 158, 212, 189, 26, 1, 158, 199, 55, 26, 1, 158, 217, - 106, 26, 1, 158, 214, 29, 26, 1, 158, 219, 145, 26, 1, 158, 214, 10, 26, - 1, 158, 212, 194, 26, 1, 158, 213, 112, 26, 1, 158, 231, 37, 26, 1, 158, - 220, 208, 26, 1, 158, 207, 51, 211, 108, 26, 1, 158, 199, 221, 26, 1, - 158, 198, 45, 26, 1, 158, 212, 68, 26, 1, 158, 206, 190, 26, 1, 158, 219, - 203, 26, 1, 158, 216, 191, 26, 1, 158, 218, 147, 26, 1, 158, 200, 156, - 26, 1, 158, 215, 139, 26, 1, 158, 203, 71, 26, 1, 158, 203, 81, 26, 1, - 158, 220, 125, 26, 1, 158, 212, 165, 26, 1, 158, 203, 0, 26, 1, 158, 212, - 182, 26, 1, 158, 210, 40, 26, 1, 158, 213, 205, 26, 1, 158, 203, 36, 26, - 1, 158, 208, 136, 26, 1, 158, 215, 70, 26, 1, 158, 218, 232, 26, 1, 158, - 207, 51, 215, 128, 26, 1, 158, 198, 188, 26, 1, 158, 212, 168, 26, 1, - 158, 216, 247, 181, 26, 1, 158, 205, 123, 26, 1, 158, 233, 67, 26, 1, - 114, 214, 143, 26, 1, 114, 198, 52, 26, 1, 114, 216, 236, 26, 1, 114, - 219, 248, 26, 1, 114, 195, 7, 26, 1, 114, 218, 238, 26, 1, 114, 210, 210, - 26, 1, 114, 202, 16, 26, 1, 114, 207, 129, 26, 1, 114, 212, 196, 26, 1, - 114, 214, 114, 26, 1, 114, 208, 154, 26, 1, 114, 199, 192, 26, 1, 114, - 213, 253, 26, 1, 114, 220, 246, 26, 1, 114, 192, 247, 26, 1, 114, 205, - 45, 26, 1, 114, 214, 21, 26, 1, 114, 210, 207, 26, 1, 114, 198, 54, 26, - 1, 114, 220, 180, 26, 1, 114, 218, 254, 26, 1, 114, 212, 199, 26, 1, 114, - 213, 229, 26, 1, 114, 217, 112, 26, 1, 114, 213, 246, 26, 1, 114, 213, - 228, 26, 1, 114, 212, 198, 26, 1, 114, 206, 187, 26, 1, 114, 213, 130, - 26, 1, 114, 210, 37, 26, 1, 114, 205, 192, 26, 1, 114, 214, 5, 26, 1, - 114, 216, 117, 26, 1, 114, 231, 31, 26, 1, 114, 213, 249, 26, 1, 114, - 213, 141, 26, 1, 114, 217, 51, 26, 1, 114, 218, 234, 26, 1, 114, 214, 26, - 26, 1, 114, 214, 127, 26, 1, 114, 199, 220, 212, 180, 26, 1, 114, 203, - 247, 26, 1, 114, 208, 147, 26, 1, 114, 214, 147, 202, 25, 26, 1, 114, - 214, 13, 212, 82, 26, 1, 114, 192, 29, 26, 1, 114, 231, 32, 26, 1, 114, - 197, 84, 26, 1, 114, 192, 47, 26, 1, 114, 209, 65, 26, 1, 114, 197, 71, - 26, 1, 114, 221, 214, 26, 1, 114, 200, 243, 26, 1, 114, 199, 56, 26, 1, - 114, 195, 76, 26, 1, 114, 193, 98, 26, 1, 114, 220, 99, 26, 1, 114, 208, - 158, 26, 1, 114, 199, 234, 26, 1, 114, 231, 52, 26, 1, 114, 214, 36, 26, - 1, 114, 203, 84, 26, 1, 114, 216, 112, 26, 1, 114, 216, 240, 26, 1, 114, - 212, 31, 26, 1, 114, 213, 93, 26, 1, 114, 231, 139, 26, 1, 114, 197, 72, - 26, 1, 114, 220, 191, 26, 1, 114, 192, 104, 26, 1, 114, 212, 69, 242, - 189, 26, 1, 114, 192, 18, 26, 1, 114, 216, 129, 26, 1, 114, 214, 132, 26, - 1, 114, 209, 165, 26, 1, 114, 191, 206, 26, 1, 114, 219, 147, 26, 1, 114, - 232, 46, 26, 1, 114, 231, 138, 26, 1, 114, 213, 239, 26, 1, 114, 221, - 216, 26, 1, 114, 217, 115, 26, 1, 114, 213, 252, 26, 1, 114, 231, 38, 26, - 1, 114, 233, 68, 26, 1, 114, 212, 169, 26, 1, 114, 209, 225, 26, 1, 114, - 192, 45, 26, 1, 114, 214, 22, 26, 1, 114, 212, 69, 248, 159, 26, 1, 114, - 212, 11, 26, 1, 114, 209, 28, 26, 1, 114, 216, 62, 26, 1, 114, 232, 44, - 26, 1, 114, 214, 230, 26, 1, 114, 215, 133, 26, 1, 114, 231, 37, 26, 1, - 114, 232, 49, 70, 26, 1, 114, 215, 71, 26, 1, 114, 208, 153, 26, 1, 114, - 213, 241, 26, 1, 114, 220, 164, 26, 1, 114, 209, 162, 26, 1, 114, 212, - 183, 26, 1, 114, 192, 46, 26, 1, 114, 214, 6, 26, 1, 114, 210, 211, 210, - 10, 26, 1, 114, 232, 49, 247, 90, 26, 1, 114, 232, 128, 26, 1, 114, 213, - 135, 26, 1, 114, 65, 26, 1, 114, 198, 45, 26, 1, 114, 74, 26, 1, 114, 70, - 26, 1, 114, 219, 246, 26, 1, 114, 210, 211, 209, 74, 26, 1, 114, 199, - 240, 26, 1, 114, 199, 175, 26, 1, 114, 214, 147, 215, 57, 228, 141, 26, - 1, 114, 203, 59, 26, 1, 114, 192, 42, 26, 1, 114, 213, 222, 26, 1, 114, - 191, 211, 26, 1, 114, 191, 244, 200, 132, 26, 1, 114, 191, 244, 238, 195, - 26, 1, 114, 191, 194, 26, 1, 114, 191, 202, 26, 1, 114, 221, 202, 26, 1, - 114, 209, 223, 26, 1, 114, 213, 136, 234, 7, 26, 1, 114, 208, 149, 26, 1, - 114, 192, 253, 26, 1, 114, 233, 11, 26, 1, 114, 195, 145, 26, 1, 114, - 218, 203, 26, 1, 114, 216, 81, 26, 1, 114, 207, 15, 26, 1, 114, 207, 158, - 26, 1, 114, 213, 221, 26, 1, 114, 214, 54, 26, 1, 114, 203, 51, 26, 1, - 114, 203, 36, 26, 1, 114, 232, 49, 207, 54, 26, 1, 114, 180, 26, 1, 114, - 209, 176, 26, 1, 114, 218, 232, 26, 1, 114, 221, 43, 26, 1, 114, 216, - 167, 26, 1, 114, 172, 26, 1, 114, 217, 48, 26, 1, 114, 199, 58, 26, 1, - 114, 221, 142, 26, 1, 114, 215, 214, 26, 1, 114, 199, 90, 26, 1, 114, - 233, 35, 26, 1, 114, 231, 25, 26, 1, 209, 206, 157, 26, 1, 209, 206, 69, - 26, 1, 209, 206, 220, 208, 26, 1, 209, 206, 234, 145, 26, 1, 209, 206, - 207, 79, 26, 1, 209, 206, 199, 221, 26, 1, 209, 206, 212, 68, 26, 1, 209, - 206, 171, 26, 1, 209, 206, 206, 190, 26, 1, 209, 206, 206, 237, 26, 1, - 209, 206, 216, 191, 26, 1, 209, 206, 199, 240, 26, 1, 209, 206, 214, 146, - 26, 1, 209, 206, 213, 142, 26, 1, 209, 206, 218, 147, 26, 1, 209, 206, - 200, 156, 26, 1, 209, 206, 203, 71, 26, 1, 209, 206, 202, 217, 26, 1, - 209, 206, 203, 243, 26, 1, 209, 206, 220, 125, 26, 1, 209, 206, 221, 216, - 26, 1, 209, 206, 212, 133, 26, 1, 209, 206, 212, 165, 26, 1, 209, 206, - 213, 113, 26, 1, 209, 206, 191, 243, 26, 1, 209, 206, 203, 0, 26, 1, 209, - 206, 169, 26, 1, 209, 206, 212, 202, 26, 1, 209, 206, 209, 223, 26, 1, - 209, 206, 212, 182, 26, 1, 209, 206, 192, 253, 26, 1, 209, 206, 210, 40, - 26, 1, 209, 206, 206, 63, 26, 1, 209, 206, 213, 205, 26, 1, 209, 206, - 207, 15, 26, 1, 209, 206, 221, 226, 26, 1, 209, 206, 213, 238, 26, 1, - 209, 206, 214, 33, 26, 1, 209, 206, 203, 51, 26, 1, 209, 206, 208, 154, - 26, 1, 209, 206, 232, 128, 26, 1, 209, 206, 193, 187, 26, 1, 209, 206, - 219, 122, 26, 1, 209, 206, 218, 232, 26, 1, 209, 206, 221, 43, 26, 1, - 209, 206, 216, 238, 26, 1, 209, 206, 207, 50, 26, 1, 209, 206, 172, 26, - 1, 209, 206, 215, 251, 26, 1, 209, 206, 216, 246, 26, 1, 209, 206, 199, - 68, 26, 1, 209, 206, 220, 253, 26, 1, 209, 206, 205, 145, 26, 1, 209, - 206, 193, 245, 215, 143, 1, 199, 247, 215, 143, 1, 214, 2, 215, 143, 1, - 192, 12, 215, 143, 1, 216, 28, 215, 143, 1, 249, 103, 215, 143, 1, 237, - 241, 215, 143, 1, 65, 215, 143, 1, 209, 202, 215, 143, 1, 221, 184, 215, - 143, 1, 229, 245, 215, 143, 1, 237, 216, 215, 143, 1, 243, 0, 215, 143, - 1, 221, 246, 215, 143, 1, 211, 109, 215, 143, 1, 217, 112, 215, 143, 1, - 213, 165, 215, 143, 1, 168, 215, 143, 1, 211, 76, 215, 143, 1, 74, 215, - 143, 1, 206, 157, 215, 143, 1, 203, 76, 215, 143, 1, 199, 27, 215, 143, - 1, 234, 173, 215, 143, 1, 193, 187, 215, 143, 1, 73, 215, 143, 1, 221, - 43, 215, 143, 1, 220, 0, 215, 143, 1, 171, 215, 143, 1, 230, 47, 215, - 143, 1, 206, 252, 215, 143, 1, 199, 105, 215, 143, 17, 191, 77, 215, 143, - 17, 108, 215, 143, 17, 109, 215, 143, 17, 139, 215, 143, 17, 137, 215, - 143, 17, 153, 215, 143, 17, 173, 215, 143, 17, 181, 215, 143, 17, 176, - 215, 143, 17, 184, 215, 143, 237, 193, 215, 143, 54, 237, 193, 199, 181, - 1, 210, 228, 199, 181, 1, 211, 153, 199, 181, 1, 211, 47, 199, 181, 1, - 210, 237, 199, 181, 1, 250, 73, 199, 181, 1, 252, 11, 199, 181, 1, 250, - 243, 199, 181, 1, 250, 83, 199, 181, 1, 193, 224, 199, 181, 1, 195, 152, - 199, 181, 1, 194, 252, 199, 181, 1, 193, 233, 199, 181, 1, 233, 141, 199, - 181, 1, 234, 153, 199, 181, 1, 234, 4, 199, 181, 1, 233, 180, 199, 181, - 1, 223, 13, 199, 181, 1, 227, 254, 199, 181, 1, 223, 51, 199, 181, 1, - 223, 17, 199, 181, 1, 196, 14, 199, 181, 1, 196, 156, 199, 181, 1, 196, - 60, 199, 181, 1, 196, 18, 199, 181, 1, 250, 84, 199, 181, 1, 250, 88, - 199, 181, 1, 250, 86, 199, 181, 1, 250, 85, 199, 181, 1, 196, 125, 199, - 181, 1, 196, 134, 199, 181, 1, 196, 131, 199, 181, 1, 196, 126, 199, 181, - 1, 52, 214, 56, 199, 181, 1, 177, 196, 141, 199, 181, 1, 203, 35, 196, - 139, 199, 181, 1, 203, 35, 250, 85, 199, 181, 1, 196, 146, 199, 181, 1, - 196, 139, 199, 181, 1, 196, 142, 199, 181, 1, 196, 141, 199, 181, 1, 196, - 127, 199, 181, 1, 196, 130, 199, 181, 1, 196, 129, 199, 181, 1, 196, 128, - 199, 181, 1, 215, 49, 199, 181, 1, 216, 219, 199, 181, 1, 215, 149, 199, - 181, 1, 215, 58, 199, 181, 1, 157, 199, 181, 1, 221, 190, 199, 181, 1, - 231, 203, 199, 181, 1, 214, 54, 199, 181, 1, 189, 199, 181, 1, 169, 199, - 181, 1, 193, 187, 199, 181, 1, 168, 199, 181, 1, 212, 88, 199, 181, 1, - 209, 219, 199, 181, 1, 249, 103, 199, 181, 1, 172, 199, 181, 1, 180, 199, - 181, 1, 144, 199, 181, 1, 171, 199, 181, 1, 228, 133, 199, 181, 1, 199, - 247, 199, 181, 1, 237, 241, 199, 181, 1, 166, 199, 181, 1, 213, 210, 199, - 181, 1, 203, 160, 199, 181, 1, 247, 112, 199, 181, 1, 197, 164, 199, 181, - 1, 231, 54, 199, 181, 1, 228, 130, 199, 181, 1, 199, 44, 199, 181, 1, - 192, 220, 199, 181, 1, 233, 68, 199, 181, 1, 237, 23, 199, 181, 1, 246, - 209, 199, 181, 1, 191, 123, 199, 181, 17, 191, 77, 199, 181, 17, 108, - 199, 181, 17, 109, 199, 181, 17, 139, 199, 181, 17, 137, 199, 181, 17, - 153, 199, 181, 17, 173, 199, 181, 17, 181, 199, 181, 17, 176, 199, 181, - 17, 184, 249, 17, 195, 182, 1, 234, 42, 249, 17, 195, 182, 1, 157, 249, - 17, 195, 182, 1, 205, 63, 249, 17, 195, 182, 1, 233, 68, 249, 17, 195, - 182, 1, 216, 241, 249, 17, 195, 182, 1, 192, 30, 249, 17, 195, 182, 1, - 231, 188, 249, 17, 195, 182, 1, 237, 4, 249, 17, 195, 182, 1, 220, 252, - 249, 17, 195, 182, 1, 222, 174, 249, 17, 195, 182, 1, 228, 93, 249, 17, - 195, 182, 1, 193, 187, 249, 17, 195, 182, 1, 191, 7, 249, 17, 195, 182, - 1, 231, 132, 249, 17, 195, 182, 1, 236, 129, 249, 17, 195, 182, 1, 246, - 250, 249, 17, 195, 182, 1, 196, 19, 249, 17, 195, 182, 1, 159, 249, 17, - 195, 182, 1, 249, 103, 249, 17, 195, 182, 1, 193, 246, 249, 17, 195, 182, - 1, 192, 74, 249, 17, 195, 182, 1, 168, 249, 17, 195, 182, 1, 193, 174, - 249, 17, 195, 182, 1, 65, 249, 17, 195, 182, 1, 74, 249, 17, 195, 182, 1, - 211, 76, 249, 17, 195, 182, 1, 69, 249, 17, 195, 182, 1, 234, 145, 249, - 17, 195, 182, 1, 73, 249, 17, 195, 182, 1, 70, 249, 17, 195, 182, 33, - 136, 198, 74, 249, 17, 195, 182, 33, 131, 198, 74, 249, 17, 195, 182, 33, - 216, 68, 198, 74, 249, 17, 195, 182, 33, 218, 216, 198, 74, 249, 17, 195, - 182, 33, 229, 101, 198, 74, 249, 17, 195, 182, 232, 42, 201, 58, 145, 90, - 18, 221, 243, 145, 90, 18, 221, 239, 145, 90, 18, 221, 131, 145, 90, 18, - 221, 94, 145, 90, 18, 222, 15, 145, 90, 18, 222, 12, 145, 90, 18, 220, - 192, 145, 90, 18, 220, 161, 145, 90, 18, 221, 245, 145, 90, 18, 221, 200, - 145, 90, 18, 222, 74, 145, 90, 18, 222, 71, 145, 90, 18, 221, 16, 145, - 90, 18, 221, 13, 145, 90, 18, 222, 8, 145, 90, 18, 222, 6, 145, 90, 18, - 220, 194, 145, 90, 18, 220, 193, 145, 90, 18, 221, 36, 145, 90, 18, 221, - 1, 145, 90, 18, 221, 133, 145, 90, 18, 221, 132, 145, 90, 18, 222, 90, - 145, 90, 18, 222, 11, 145, 90, 18, 220, 151, 145, 90, 18, 220, 142, 145, - 90, 18, 222, 99, 145, 90, 18, 222, 91, 145, 90, 119, 195, 157, 145, 90, - 119, 212, 172, 145, 90, 119, 219, 232, 145, 90, 119, 229, 225, 145, 90, - 119, 213, 69, 145, 90, 119, 207, 120, 145, 90, 119, 213, 96, 145, 90, - 119, 208, 63, 145, 90, 119, 192, 91, 145, 90, 119, 229, 76, 145, 90, 119, - 217, 6, 145, 90, 119, 243, 83, 145, 90, 119, 214, 151, 145, 90, 119, 229, - 12, 145, 90, 119, 209, 83, 145, 90, 119, 212, 178, 145, 90, 119, 214, - 191, 145, 90, 119, 250, 113, 145, 90, 119, 192, 216, 145, 90, 119, 247, - 28, 145, 90, 87, 242, 225, 197, 81, 145, 90, 87, 242, 225, 202, 41, 145, - 90, 87, 242, 225, 221, 218, 145, 90, 87, 242, 225, 221, 174, 145, 90, 87, - 242, 225, 200, 241, 145, 90, 87, 242, 225, 228, 226, 145, 90, 87, 242, - 225, 199, 160, 145, 90, 3, 195, 2, 198, 233, 145, 90, 3, 195, 2, 197, - 152, 246, 241, 145, 90, 3, 242, 225, 243, 72, 145, 90, 3, 195, 2, 199, 5, - 145, 90, 3, 195, 2, 233, 8, 145, 90, 3, 192, 171, 212, 166, 145, 90, 3, - 192, 171, 206, 254, 145, 90, 3, 192, 171, 198, 27, 145, 90, 3, 192, 171, - 233, 49, 145, 90, 3, 195, 2, 205, 39, 145, 90, 3, 216, 190, 200, 245, - 145, 90, 3, 195, 2, 212, 218, 145, 90, 3, 228, 1, 192, 111, 145, 90, 3, - 192, 215, 145, 90, 3, 242, 225, 197, 139, 206, 139, 145, 90, 17, 191, 77, - 145, 90, 17, 108, 145, 90, 17, 109, 145, 90, 17, 139, 145, 90, 17, 137, - 145, 90, 17, 153, 145, 90, 17, 173, 145, 90, 17, 181, 145, 90, 17, 176, - 145, 90, 17, 184, 145, 90, 31, 199, 85, 145, 90, 31, 228, 107, 145, 90, - 31, 199, 91, 198, 223, 145, 90, 31, 216, 29, 145, 90, 31, 228, 110, 216, - 29, 145, 90, 31, 199, 91, 248, 121, 145, 90, 31, 197, 223, 145, 90, 3, - 195, 2, 218, 198, 145, 90, 3, 192, 168, 145, 90, 3, 229, 71, 145, 90, 3, - 198, 250, 229, 71, 145, 90, 3, 190, 236, 199, 38, 145, 90, 3, 228, 252, - 145, 90, 3, 212, 232, 145, 90, 3, 192, 206, 145, 90, 3, 212, 170, 145, - 90, 3, 250, 96, 145, 90, 3, 197, 3, 246, 240, 145, 90, 3, 216, 190, 197, - 155, 145, 90, 3, 199, 161, 145, 90, 3, 218, 229, 145, 90, 3, 215, 89, - 145, 90, 3, 242, 225, 230, 43, 218, 175, 212, 176, 212, 175, 145, 90, 3, - 242, 225, 238, 147, 197, 146, 145, 90, 3, 242, 225, 197, 1, 145, 90, 3, - 242, 225, 197, 2, 242, 244, 145, 90, 3, 242, 225, 208, 152, 237, 161, - 145, 90, 3, 242, 225, 212, 225, 198, 36, 145, 90, 242, 196, 3, 197, 150, - 145, 90, 242, 196, 3, 192, 76, 145, 90, 242, 196, 3, 219, 66, 145, 90, - 242, 196, 3, 219, 230, 145, 90, 242, 196, 3, 192, 167, 145, 90, 242, 196, - 3, 221, 17, 145, 90, 242, 196, 3, 229, 222, 145, 90, 242, 196, 3, 215, - 131, 145, 90, 242, 196, 3, 198, 234, 145, 90, 242, 196, 3, 197, 161, 145, - 90, 242, 196, 3, 209, 216, 145, 90, 242, 196, 3, 221, 188, 145, 90, 242, - 196, 3, 230, 31, 145, 90, 242, 196, 3, 195, 179, 145, 90, 242, 196, 3, - 233, 45, 145, 90, 242, 196, 3, 192, 118, 145, 90, 242, 196, 3, 197, 133, - 145, 90, 242, 196, 3, 220, 146, 145, 90, 242, 196, 3, 193, 234, 216, 199, - 6, 1, 218, 147, 216, 199, 6, 1, 206, 3, 216, 199, 6, 1, 196, 8, 216, 199, - 6, 1, 193, 221, 216, 199, 6, 1, 250, 126, 216, 199, 6, 1, 191, 166, 216, - 199, 6, 1, 220, 254, 216, 199, 6, 1, 210, 226, 216, 199, 6, 1, 200, 39, - 216, 199, 6, 1, 232, 14, 216, 199, 6, 1, 233, 134, 216, 199, 6, 1, 70, - 216, 199, 6, 1, 222, 125, 216, 199, 6, 1, 65, 216, 199, 6, 1, 223, 7, - 216, 199, 6, 1, 73, 216, 199, 6, 1, 250, 70, 216, 199, 6, 1, 247, 145, - 216, 199, 6, 1, 69, 216, 199, 6, 1, 191, 225, 216, 199, 6, 1, 170, 216, - 199, 6, 1, 208, 97, 216, 199, 6, 1, 228, 138, 216, 199, 6, 1, 212, 90, - 216, 199, 6, 1, 192, 235, 216, 199, 6, 1, 238, 80, 216, 199, 6, 1, 211, - 139, 216, 199, 6, 1, 215, 47, 216, 199, 6, 1, 148, 216, 199, 6, 1, 74, - 216, 199, 6, 1, 251, 184, 216, 199, 6, 1, 192, 159, 216, 199, 2, 1, 218, - 147, 216, 199, 2, 1, 206, 3, 216, 199, 2, 1, 196, 8, 216, 199, 2, 1, 193, - 221, 216, 199, 2, 1, 250, 126, 216, 199, 2, 1, 191, 166, 216, 199, 2, 1, - 220, 254, 216, 199, 2, 1, 210, 226, 216, 199, 2, 1, 200, 39, 216, 199, 2, - 1, 232, 14, 216, 199, 2, 1, 233, 134, 216, 199, 2, 1, 70, 216, 199, 2, 1, - 222, 125, 216, 199, 2, 1, 65, 216, 199, 2, 1, 223, 7, 216, 199, 2, 1, 73, - 216, 199, 2, 1, 250, 70, 216, 199, 2, 1, 247, 145, 216, 199, 2, 1, 69, - 216, 199, 2, 1, 191, 225, 216, 199, 2, 1, 170, 216, 199, 2, 1, 208, 97, - 216, 199, 2, 1, 228, 138, 216, 199, 2, 1, 212, 90, 216, 199, 2, 1, 192, - 235, 216, 199, 2, 1, 238, 80, 216, 199, 2, 1, 211, 139, 216, 199, 2, 1, - 215, 47, 216, 199, 2, 1, 148, 216, 199, 2, 1, 74, 216, 199, 2, 1, 251, - 184, 216, 199, 2, 1, 192, 159, 216, 199, 17, 191, 77, 216, 199, 17, 108, - 216, 199, 17, 109, 216, 199, 17, 139, 216, 199, 17, 137, 216, 199, 17, - 153, 216, 199, 17, 173, 216, 199, 17, 181, 216, 199, 17, 176, 216, 199, - 17, 184, 216, 199, 31, 199, 90, 216, 199, 31, 234, 84, 216, 199, 31, 197, - 33, 216, 199, 31, 198, 246, 216, 199, 31, 232, 84, 216, 199, 31, 232, - 234, 216, 199, 31, 202, 125, 216, 199, 31, 203, 239, 216, 199, 31, 234, - 118, 216, 199, 31, 213, 158, 216, 199, 17, 91, 251, 106, 20, 216, 199, - 17, 103, 251, 106, 20, 216, 199, 17, 115, 251, 106, 20, 216, 199, 242, - 26, 216, 199, 232, 42, 201, 58, 216, 199, 16, 251, 169, 216, 199, 233, - 175, 211, 124, 120, 1, 168, 120, 1, 249, 103, 120, 1, 11, 168, 120, 1, - 209, 102, 120, 1, 172, 120, 1, 216, 84, 120, 1, 250, 220, 172, 120, 1, - 233, 68, 120, 1, 195, 185, 120, 1, 195, 68, 120, 1, 199, 247, 120, 1, - 237, 241, 120, 1, 11, 197, 128, 120, 1, 11, 199, 247, 120, 1, 197, 128, - 120, 1, 237, 146, 120, 1, 180, 120, 1, 213, 210, 120, 1, 11, 213, 66, - 120, 1, 250, 220, 180, 120, 1, 213, 66, 120, 1, 213, 52, 120, 1, 171, - 120, 1, 218, 161, 120, 1, 219, 135, 120, 1, 219, 124, 120, 1, 198, 107, - 120, 1, 236, 138, 120, 1, 198, 99, 120, 1, 236, 137, 120, 1, 157, 120, 1, - 231, 203, 120, 1, 11, 157, 120, 1, 208, 89, 120, 1, 208, 66, 120, 1, 214, - 54, 120, 1, 214, 3, 120, 1, 250, 220, 214, 54, 120, 1, 144, 120, 1, 192, - 220, 120, 1, 231, 54, 120, 1, 231, 29, 120, 1, 197, 138, 120, 1, 234, - 230, 120, 1, 212, 88, 120, 1, 212, 70, 120, 1, 197, 153, 120, 1, 234, - 241, 120, 1, 11, 197, 153, 120, 1, 11, 234, 241, 120, 1, 207, 77, 197, - 153, 120, 1, 203, 160, 120, 1, 201, 170, 120, 1, 191, 71, 120, 1, 190, - 253, 120, 1, 197, 164, 120, 1, 234, 247, 120, 1, 11, 197, 164, 120, 1, - 189, 120, 1, 191, 123, 120, 1, 190, 254, 120, 1, 190, 224, 120, 1, 190, - 204, 120, 1, 250, 220, 190, 224, 120, 1, 190, 196, 120, 1, 190, 203, 120, - 1, 193, 187, 120, 1, 251, 193, 120, 1, 229, 145, 120, 1, 247, 240, 120, - 1, 200, 121, 120, 1, 234, 231, 120, 1, 199, 140, 120, 1, 197, 157, 120, - 1, 206, 66, 120, 3, 119, 59, 164, 120, 1, 214, 198, 120, 3, 250, 149, - 120, 3, 207, 77, 195, 15, 120, 3, 207, 77, 250, 149, 120, 18, 3, 65, 120, - 18, 3, 252, 154, 120, 18, 3, 251, 189, 120, 18, 3, 251, 81, 120, 18, 3, - 251, 71, 120, 18, 3, 74, 120, 18, 3, 211, 76, 120, 18, 3, 193, 48, 120, - 18, 3, 193, 221, 120, 18, 3, 73, 120, 18, 3, 234, 61, 120, 18, 3, 234, - 46, 120, 18, 3, 211, 135, 120, 18, 3, 70, 120, 18, 3, 228, 5, 120, 18, 3, - 228, 4, 120, 18, 3, 228, 3, 120, 18, 3, 223, 60, 120, 18, 3, 223, 197, - 120, 18, 3, 223, 170, 120, 18, 3, 223, 21, 120, 18, 3, 223, 108, 120, 18, - 3, 69, 120, 18, 3, 196, 164, 120, 18, 3, 196, 163, 120, 18, 3, 196, 162, - 120, 18, 3, 196, 26, 120, 18, 3, 196, 144, 120, 18, 3, 196, 93, 120, 18, - 3, 192, 159, 120, 18, 3, 192, 33, 120, 18, 3, 251, 229, 120, 18, 3, 251, - 225, 120, 18, 3, 233, 240, 120, 18, 3, 206, 108, 233, 240, 120, 18, 3, - 233, 248, 120, 18, 3, 206, 108, 233, 248, 120, 18, 3, 251, 184, 120, 18, - 3, 234, 123, 120, 18, 3, 250, 113, 120, 18, 3, 211, 9, 120, 18, 3, 215, - 47, 120, 18, 3, 214, 56, 120, 18, 3, 196, 77, 120, 18, 3, 191, 205, 120, - 18, 3, 211, 129, 120, 18, 3, 211, 136, 120, 18, 3, 193, 236, 120, 18, 3, - 223, 175, 120, 18, 3, 234, 173, 120, 18, 3, 223, 58, 120, 18, 3, 196, - 135, 120, 163, 187, 120, 163, 198, 49, 187, 120, 163, 56, 120, 163, 60, - 120, 1, 198, 72, 120, 1, 198, 71, 120, 1, 198, 70, 120, 1, 198, 69, 120, - 1, 198, 68, 120, 1, 198, 67, 120, 1, 198, 66, 120, 1, 207, 77, 198, 73, - 120, 1, 207, 77, 198, 72, 120, 1, 207, 77, 198, 70, 120, 1, 207, 77, 198, - 69, 120, 1, 207, 77, 198, 68, 120, 1, 207, 77, 198, 66, 19, 223, 23, 77, - 46, 223, 23, 77, 38, 243, 32, 228, 219, 77, 38, 243, 32, 223, 23, 77, 40, - 2, 27, 232, 218, 195, 54, 251, 106, 207, 102, 87, 247, 112, 195, 54, 251, - 106, 207, 102, 87, 213, 209, 19, 242, 15, 19, 242, 14, 19, 242, 13, 19, - 242, 12, 19, 242, 11, 19, 242, 10, 19, 242, 9, 19, 242, 8, 19, 242, 7, - 19, 242, 6, 19, 242, 5, 19, 242, 4, 19, 242, 3, 19, 242, 2, 19, 242, 1, - 19, 242, 0, 19, 241, 255, 19, 241, 254, 19, 241, 253, 19, 241, 252, 19, - 241, 251, 19, 241, 250, 19, 241, 249, 19, 241, 248, 19, 241, 247, 19, + 7, 254, 14, 29, 7, 254, 13, 29, 7, 254, 12, 29, 7, 254, 11, 29, 7, 254, + 10, 29, 7, 254, 9, 29, 7, 254, 8, 29, 7, 254, 7, 29, 7, 254, 6, 29, 7, + 254, 5, 29, 7, 254, 4, 29, 7, 254, 3, 29, 7, 254, 2, 29, 7, 254, 1, 207, + 186, 211, 57, 207, 1, 29, 7, 254, 0, 29, 7, 253, 255, 29, 7, 253, 254, + 29, 7, 253, 253, 29, 7, 253, 252, 29, 7, 253, 251, 29, 7, 253, 250, 29, + 7, 253, 249, 29, 7, 253, 248, 29, 7, 253, 247, 29, 7, 253, 246, 29, 7, + 253, 245, 171, 29, 7, 253, 244, 29, 7, 253, 243, 29, 7, 253, 242, 29, 7, + 253, 241, 29, 7, 253, 240, 29, 7, 253, 239, 29, 7, 253, 238, 29, 7, 253, + 236, 29, 7, 253, 234, 29, 7, 253, 232, 29, 7, 253, 230, 29, 7, 253, 228, + 29, 7, 253, 226, 29, 7, 253, 224, 29, 7, 253, 222, 29, 7, 253, 220, 29, + 7, 253, 218, 248, 249, 219, 28, 77, 29, 7, 253, 216, 234, 95, 219, 28, + 77, 29, 7, 253, 215, 29, 7, 253, 213, 29, 7, 253, 211, 29, 7, 253, 209, + 29, 7, 253, 207, 29, 7, 253, 205, 29, 7, 253, 203, 29, 7, 253, 201, 29, + 7, 253, 199, 29, 7, 253, 198, 29, 7, 253, 197, 29, 7, 253, 196, 29, 7, + 253, 195, 29, 7, 253, 194, 29, 7, 253, 193, 29, 7, 253, 192, 29, 7, 253, + 191, 29, 7, 253, 190, 29, 7, 253, 189, 29, 7, 253, 188, 29, 7, 253, 187, + 29, 7, 253, 186, 29, 7, 253, 185, 29, 7, 253, 184, 29, 7, 253, 183, 29, + 7, 253, 182, 29, 7, 253, 181, 29, 7, 253, 180, 29, 7, 253, 179, 29, 7, + 253, 178, 29, 7, 253, 177, 29, 7, 253, 176, 29, 7, 253, 175, 29, 7, 253, + 174, 29, 7, 253, 173, 29, 7, 253, 172, 29, 7, 253, 171, 29, 7, 253, 170, + 29, 7, 253, 169, 29, 7, 253, 168, 29, 7, 253, 167, 29, 7, 253, 166, 29, + 7, 253, 165, 29, 7, 253, 164, 29, 7, 253, 163, 29, 7, 253, 162, 29, 7, + 253, 161, 29, 7, 253, 160, 29, 7, 253, 159, 29, 7, 253, 158, 29, 7, 253, + 157, 29, 7, 253, 156, 29, 7, 253, 155, 29, 7, 253, 154, 29, 7, 253, 153, + 29, 7, 253, 152, 29, 7, 253, 151, 29, 7, 253, 150, 29, 7, 253, 149, 29, + 7, 253, 148, 29, 7, 253, 147, 29, 7, 253, 146, 29, 7, 253, 145, 29, 7, + 253, 144, 29, 7, 253, 143, 29, 7, 253, 142, 29, 7, 253, 141, 29, 7, 253, + 140, 29, 7, 253, 139, 29, 7, 253, 138, 29, 7, 253, 137, 29, 7, 253, 136, + 29, 7, 253, 135, 29, 7, 253, 134, 29, 7, 253, 133, 29, 7, 253, 132, 29, + 7, 253, 131, 29, 7, 253, 130, 29, 7, 253, 129, 29, 7, 253, 128, 29, 7, + 253, 127, 29, 7, 253, 126, 29, 7, 253, 125, 29, 7, 253, 124, 29, 7, 253, + 123, 29, 7, 253, 122, 29, 7, 253, 121, 29, 7, 253, 120, 29, 7, 253, 119, + 29, 7, 253, 118, 29, 7, 253, 117, 29, 7, 253, 116, 29, 7, 253, 115, 29, + 7, 253, 114, 29, 7, 253, 113, 29, 7, 253, 112, 29, 7, 253, 111, 29, 7, + 253, 110, 29, 7, 253, 109, 29, 7, 253, 108, 29, 7, 253, 107, 29, 7, 253, + 106, 29, 7, 253, 105, 29, 7, 253, 104, 29, 7, 253, 103, 29, 7, 253, 102, + 29, 7, 253, 101, 29, 7, 253, 100, 29, 7, 253, 99, 29, 7, 253, 98, 29, 7, + 253, 97, 29, 7, 253, 96, 29, 7, 253, 95, 29, 7, 253, 94, 29, 7, 253, 93, + 29, 7, 253, 92, 29, 7, 253, 91, 29, 7, 253, 90, 29, 7, 253, 89, 26, 1, + 209, 218, 214, 1, 216, 142, 26, 1, 209, 218, 231, 173, 232, 166, 26, 1, + 209, 218, 209, 40, 216, 143, 209, 127, 26, 1, 209, 218, 209, 40, 216, + 143, 209, 128, 26, 1, 209, 218, 214, 251, 216, 142, 26, 1, 209, 218, 203, + 0, 26, 1, 209, 218, 198, 124, 216, 142, 26, 1, 209, 218, 212, 47, 216, + 142, 26, 1, 209, 218, 203, 68, 210, 221, 213, 141, 26, 1, 209, 218, 209, + 40, 210, 221, 213, 142, 209, 127, 26, 1, 209, 218, 209, 40, 210, 221, + 213, 142, 209, 128, 26, 1, 209, 218, 217, 131, 26, 1, 209, 218, 197, 95, + 217, 132, 26, 1, 209, 218, 214, 62, 26, 1, 209, 218, 217, 128, 26, 1, + 209, 218, 217, 77, 26, 1, 209, 218, 215, 86, 26, 1, 209, 218, 203, 249, + 26, 1, 209, 218, 212, 187, 26, 1, 209, 218, 221, 234, 26, 1, 209, 218, + 213, 108, 26, 1, 209, 218, 200, 160, 26, 1, 209, 218, 214, 0, 26, 1, 209, + 218, 220, 15, 26, 1, 209, 218, 219, 177, 220, 188, 26, 1, 209, 218, 212, + 197, 216, 150, 26, 1, 209, 218, 217, 135, 26, 1, 209, 218, 210, 98, 26, + 1, 209, 218, 231, 72, 26, 1, 209, 218, 210, 170, 26, 1, 209, 218, 215, + 232, 214, 35, 26, 1, 209, 218, 212, 28, 216, 153, 26, 1, 209, 218, 126, + 191, 195, 214, 244, 26, 1, 209, 218, 231, 73, 26, 1, 209, 218, 212, 197, + 212, 198, 26, 1, 209, 218, 202, 139, 26, 1, 209, 218, 216, 135, 26, 1, + 209, 218, 216, 156, 26, 1, 209, 218, 215, 207, 26, 1, 209, 218, 222, 105, + 26, 1, 209, 218, 210, 221, 219, 225, 26, 1, 209, 218, 214, 163, 219, 225, + 26, 1, 209, 218, 209, 240, 26, 1, 209, 218, 217, 129, 26, 1, 209, 218, + 213, 185, 26, 1, 209, 218, 208, 144, 26, 1, 209, 218, 197, 87, 26, 1, + 209, 218, 218, 221, 26, 1, 209, 218, 202, 17, 26, 1, 209, 218, 199, 58, + 26, 1, 209, 218, 217, 126, 26, 1, 209, 218, 221, 241, 26, 1, 209, 218, + 214, 159, 26, 1, 209, 218, 220, 203, 26, 1, 209, 218, 215, 208, 26, 1, + 209, 218, 202, 252, 26, 1, 209, 218, 219, 20, 26, 1, 209, 218, 232, 239, + 26, 1, 209, 218, 206, 137, 26, 1, 209, 218, 221, 10, 26, 1, 209, 218, + 202, 13, 26, 1, 209, 218, 217, 72, 209, 173, 26, 1, 209, 218, 203, 61, + 26, 1, 209, 218, 212, 196, 26, 1, 209, 218, 203, 42, 212, 208, 191, 203, + 26, 1, 209, 218, 212, 69, 215, 228, 26, 1, 209, 218, 210, 216, 26, 1, + 209, 218, 213, 110, 26, 1, 209, 218, 196, 85, 26, 1, 209, 218, 214, 38, + 26, 1, 209, 218, 217, 125, 26, 1, 209, 218, 213, 153, 26, 1, 209, 218, + 217, 6, 26, 1, 209, 218, 212, 84, 26, 1, 209, 218, 199, 62, 26, 1, 209, + 218, 202, 8, 26, 1, 209, 218, 210, 217, 26, 1, 209, 218, 212, 212, 26, 1, + 209, 218, 217, 133, 26, 1, 209, 218, 212, 81, 26, 1, 209, 218, 222, 66, + 26, 1, 209, 218, 212, 215, 26, 1, 209, 218, 195, 148, 26, 1, 209, 218, + 218, 225, 26, 1, 209, 218, 214, 102, 26, 1, 209, 218, 214, 217, 26, 1, + 209, 218, 217, 5, 26, 1, 209, 217, 212, 210, 26, 1, 209, 217, 197, 95, + 217, 130, 26, 1, 209, 217, 202, 204, 26, 1, 209, 217, 203, 253, 197, 94, + 26, 1, 209, 217, 219, 23, 212, 193, 26, 1, 209, 217, 217, 12, 217, 134, + 26, 1, 209, 217, 221, 150, 26, 1, 209, 217, 192, 43, 26, 1, 209, 217, + 217, 7, 26, 1, 209, 217, 222, 90, 26, 1, 209, 217, 210, 44, 26, 1, 209, + 217, 192, 126, 219, 225, 26, 1, 209, 217, 220, 36, 212, 208, 212, 95, 26, + 1, 209, 217, 212, 190, 203, 87, 26, 1, 209, 217, 214, 130, 213, 156, 26, + 1, 209, 217, 231, 70, 26, 1, 209, 217, 209, 117, 26, 1, 209, 217, 197, + 95, 212, 206, 26, 1, 209, 217, 203, 92, 213, 151, 26, 1, 209, 217, 203, + 88, 26, 1, 209, 217, 216, 143, 199, 61, 26, 1, 209, 217, 216, 250, 217, + 8, 26, 1, 209, 217, 212, 82, 212, 193, 26, 1, 209, 217, 221, 230, 26, 1, + 209, 217, 231, 71, 26, 1, 209, 217, 221, 226, 26, 1, 209, 217, 220, 120, + 26, 1, 209, 217, 210, 101, 26, 1, 209, 217, 195, 77, 26, 1, 209, 217, + 214, 2, 215, 84, 26, 1, 209, 217, 214, 37, 216, 246, 26, 1, 209, 217, + 192, 254, 26, 1, 209, 217, 205, 175, 26, 1, 209, 217, 199, 240, 26, 1, + 209, 217, 216, 155, 26, 1, 209, 217, 214, 21, 26, 1, 209, 217, 214, 22, + 220, 12, 26, 1, 209, 217, 216, 145, 26, 1, 209, 217, 200, 214, 26, 1, + 209, 217, 216, 254, 26, 1, 209, 217, 215, 212, 26, 1, 209, 217, 212, 99, + 26, 1, 209, 217, 208, 148, 26, 1, 209, 217, 216, 154, 214, 39, 26, 1, + 209, 217, 233, 28, 26, 1, 209, 217, 216, 241, 26, 1, 209, 217, 233, 52, + 26, 1, 209, 217, 221, 238, 26, 1, 209, 217, 217, 160, 213, 145, 26, 1, + 209, 217, 217, 160, 213, 121, 26, 1, 209, 217, 219, 176, 26, 1, 209, 217, + 214, 45, 26, 1, 209, 217, 212, 217, 26, 1, 209, 217, 174, 26, 1, 209, + 217, 221, 133, 26, 1, 209, 217, 213, 246, 26, 1, 209, 216, 214, 1, 217, + 132, 26, 1, 209, 216, 212, 46, 26, 1, 209, 216, 191, 203, 26, 1, 209, + 216, 193, 160, 26, 1, 209, 216, 214, 38, 26, 1, 209, 216, 214, 151, 26, + 1, 209, 216, 214, 8, 26, 1, 209, 216, 231, 80, 26, 1, 209, 216, 217, 2, + 26, 1, 209, 216, 231, 180, 26, 1, 209, 216, 212, 71, 216, 21, 216, 157, + 26, 1, 209, 216, 212, 184, 216, 249, 26, 1, 209, 216, 216, 255, 26, 1, + 209, 216, 209, 123, 26, 1, 209, 216, 214, 136, 26, 1, 209, 216, 217, 10, + 247, 156, 26, 1, 209, 216, 221, 228, 26, 1, 209, 216, 231, 81, 26, 1, + 209, 216, 221, 235, 26, 1, 209, 216, 191, 226, 215, 117, 26, 1, 209, 216, + 212, 40, 26, 1, 209, 216, 216, 243, 26, 1, 209, 216, 212, 216, 26, 1, + 209, 216, 216, 249, 26, 1, 209, 216, 192, 44, 26, 1, 209, 216, 221, 18, + 26, 1, 209, 216, 222, 127, 26, 1, 209, 216, 203, 248, 26, 1, 209, 216, + 214, 145, 26, 1, 209, 216, 199, 238, 26, 1, 209, 216, 213, 125, 26, 1, + 209, 216, 198, 124, 191, 207, 26, 1, 209, 216, 200, 247, 26, 1, 209, 216, + 214, 28, 212, 95, 26, 1, 209, 216, 195, 76, 26, 1, 209, 216, 214, 220, + 26, 1, 209, 216, 217, 160, 221, 237, 26, 1, 209, 216, 212, 198, 26, 1, + 209, 216, 214, 23, 26, 1, 209, 216, 220, 16, 26, 1, 209, 216, 216, 251, + 26, 1, 209, 216, 216, 134, 26, 1, 209, 216, 212, 192, 26, 1, 209, 216, + 199, 57, 26, 1, 209, 216, 214, 25, 26, 1, 209, 216, 232, 84, 26, 1, 209, + 216, 214, 150, 26, 1, 209, 216, 212, 218, 26, 1, 209, 216, 212, 214, 26, + 1, 209, 216, 247, 240, 26, 1, 209, 216, 195, 78, 26, 1, 209, 216, 217, 0, + 26, 1, 209, 216, 206, 68, 26, 1, 209, 216, 213, 155, 26, 1, 209, 216, + 220, 35, 26, 1, 209, 216, 198, 121, 26, 1, 209, 216, 212, 200, 213, 246, + 26, 1, 209, 216, 213, 147, 26, 1, 209, 216, 221, 241, 26, 1, 209, 216, + 214, 30, 26, 1, 209, 216, 217, 125, 26, 1, 209, 216, 216, 244, 26, 1, + 209, 216, 218, 225, 26, 1, 209, 216, 220, 188, 26, 1, 209, 216, 213, 153, + 26, 1, 209, 216, 213, 246, 26, 1, 209, 216, 192, 244, 26, 1, 209, 216, + 214, 26, 26, 1, 209, 216, 212, 203, 26, 1, 209, 216, 212, 194, 26, 1, + 209, 216, 220, 205, 213, 110, 26, 1, 209, 216, 212, 201, 26, 1, 209, 216, + 214, 158, 26, 1, 209, 216, 217, 160, 212, 206, 26, 1, 209, 216, 192, 140, + 26, 1, 209, 216, 214, 157, 26, 1, 209, 216, 202, 255, 26, 1, 209, 216, + 203, 251, 26, 1, 209, 216, 216, 252, 26, 1, 209, 216, 217, 132, 26, 1, + 209, 216, 217, 6, 26, 1, 209, 216, 221, 229, 26, 1, 209, 216, 216, 253, + 26, 1, 209, 216, 221, 233, 26, 1, 209, 216, 217, 10, 209, 179, 26, 1, + 209, 216, 191, 186, 26, 1, 209, 216, 213, 143, 26, 1, 209, 216, 216, 80, + 26, 1, 209, 216, 215, 149, 26, 1, 209, 216, 203, 64, 26, 1, 209, 216, + 221, 252, 219, 250, 26, 1, 209, 216, 221, 252, 233, 65, 26, 1, 209, 216, + 214, 60, 26, 1, 209, 216, 214, 217, 26, 1, 209, 216, 219, 94, 26, 1, 209, + 216, 209, 139, 26, 1, 209, 216, 210, 34, 26, 1, 209, 216, 199, 73, 26, 1, + 158, 216, 242, 26, 1, 158, 193, 158, 26, 1, 158, 213, 141, 26, 1, 158, + 216, 142, 26, 1, 158, 213, 139, 26, 1, 158, 219, 139, 26, 1, 158, 213, + 144, 26, 1, 158, 212, 213, 26, 1, 158, 214, 44, 26, 1, 158, 212, 95, 26, + 1, 158, 192, 255, 26, 1, 158, 213, 254, 26, 1, 158, 203, 111, 26, 1, 158, + 214, 9, 26, 1, 158, 221, 236, 26, 1, 158, 199, 59, 26, 1, 158, 203, 90, + 26, 1, 158, 213, 152, 26, 1, 158, 200, 214, 26, 1, 158, 221, 241, 26, 1, + 158, 192, 128, 26, 1, 158, 220, 206, 26, 1, 158, 205, 130, 26, 1, 158, + 216, 147, 26, 1, 158, 214, 149, 26, 1, 158, 217, 95, 26, 1, 158, 216, + 153, 26, 1, 158, 203, 250, 26, 1, 158, 192, 70, 26, 1, 158, 213, 146, 26, + 1, 158, 221, 232, 216, 245, 26, 1, 158, 214, 5, 26, 1, 158, 197, 94, 26, + 1, 158, 231, 90, 26, 1, 158, 213, 251, 26, 1, 158, 233, 29, 26, 1, 158, + 214, 153, 26, 1, 158, 216, 126, 26, 1, 158, 219, 170, 26, 1, 158, 214, + 135, 26, 1, 158, 215, 227, 26, 1, 158, 216, 130, 26, 1, 158, 208, 127, + 26, 1, 158, 216, 128, 26, 1, 158, 216, 144, 26, 1, 158, 218, 208, 26, 1, + 158, 212, 205, 26, 1, 158, 217, 9, 26, 1, 158, 220, 177, 26, 1, 158, 212, + 84, 26, 1, 158, 199, 62, 26, 1, 158, 202, 8, 26, 1, 158, 191, 186, 26, 1, + 158, 221, 233, 26, 1, 158, 207, 162, 26, 1, 158, 199, 120, 26, 1, 158, + 214, 6, 26, 1, 158, 216, 149, 26, 1, 158, 212, 204, 26, 1, 158, 221, 231, + 26, 1, 158, 209, 129, 26, 1, 158, 209, 233, 26, 1, 158, 212, 57, 26, 1, + 158, 219, 176, 26, 1, 158, 214, 45, 26, 1, 158, 216, 146, 26, 1, 158, + 214, 18, 26, 1, 158, 191, 200, 26, 1, 158, 210, 137, 26, 1, 158, 191, + 199, 26, 1, 158, 214, 158, 26, 1, 158, 212, 193, 26, 1, 158, 200, 249, + 26, 1, 158, 220, 210, 26, 1, 158, 214, 34, 26, 1, 158, 214, 3, 26, 1, + 158, 197, 69, 26, 1, 158, 216, 157, 26, 1, 158, 220, 199, 26, 1, 158, + 212, 202, 26, 1, 158, 199, 60, 26, 1, 158, 217, 127, 26, 1, 158, 214, 43, + 26, 1, 158, 219, 169, 26, 1, 158, 214, 24, 26, 1, 158, 212, 207, 26, 1, + 158, 213, 125, 26, 1, 158, 231, 74, 26, 1, 158, 220, 232, 26, 1, 158, + 207, 56, 211, 119, 26, 1, 158, 199, 226, 26, 1, 158, 198, 50, 26, 1, 158, + 212, 81, 26, 1, 158, 206, 195, 26, 1, 158, 219, 227, 26, 1, 158, 216, + 210, 26, 1, 158, 218, 168, 26, 1, 158, 200, 160, 26, 1, 158, 215, 155, + 26, 1, 158, 203, 76, 26, 1, 158, 203, 86, 26, 1, 158, 220, 149, 26, 1, + 158, 212, 178, 26, 1, 158, 203, 5, 26, 1, 158, 212, 195, 26, 1, 158, 210, + 49, 26, 1, 158, 213, 219, 26, 1, 158, 203, 41, 26, 1, 158, 208, 143, 26, + 1, 158, 215, 84, 26, 1, 158, 219, 0, 26, 1, 158, 207, 56, 215, 144, 26, + 1, 158, 198, 193, 26, 1, 158, 212, 181, 26, 1, 158, 217, 10, 175, 26, 1, + 158, 205, 128, 26, 1, 158, 233, 108, 26, 1, 114, 214, 157, 26, 1, 114, + 198, 57, 26, 1, 114, 216, 255, 26, 1, 114, 220, 16, 26, 1, 114, 195, 10, + 26, 1, 114, 219, 6, 26, 1, 114, 210, 220, 26, 1, 114, 202, 21, 26, 1, + 114, 207, 134, 26, 1, 114, 212, 209, 26, 1, 114, 214, 128, 26, 1, 114, + 208, 161, 26, 1, 114, 199, 197, 26, 1, 114, 214, 11, 26, 1, 114, 221, 14, + 26, 1, 114, 192, 247, 26, 1, 114, 205, 50, 26, 1, 114, 214, 35, 26, 1, + 114, 210, 217, 26, 1, 114, 198, 59, 26, 1, 114, 220, 204, 26, 1, 114, + 219, 22, 26, 1, 114, 212, 212, 26, 1, 114, 213, 243, 26, 1, 114, 217, + 133, 26, 1, 114, 214, 4, 26, 1, 114, 213, 242, 26, 1, 114, 212, 211, 26, + 1, 114, 206, 192, 26, 1, 114, 213, 143, 26, 1, 114, 210, 46, 26, 1, 114, + 205, 197, 26, 1, 114, 214, 19, 26, 1, 114, 216, 136, 26, 1, 114, 231, 68, + 26, 1, 114, 214, 7, 26, 1, 114, 213, 154, 26, 1, 114, 217, 71, 26, 1, + 114, 219, 2, 26, 1, 114, 214, 40, 26, 1, 114, 214, 141, 26, 1, 114, 199, + 225, 212, 193, 26, 1, 114, 203, 252, 26, 1, 114, 208, 154, 26, 1, 114, + 214, 161, 202, 30, 26, 1, 114, 214, 27, 212, 95, 26, 1, 114, 192, 29, 26, + 1, 114, 231, 69, 26, 1, 114, 197, 88, 26, 1, 114, 192, 47, 26, 1, 114, + 209, 73, 26, 1, 114, 197, 75, 26, 1, 114, 221, 239, 26, 1, 114, 200, 248, + 26, 1, 114, 199, 61, 26, 1, 114, 195, 79, 26, 1, 114, 193, 100, 26, 1, + 114, 220, 123, 26, 1, 114, 208, 165, 26, 1, 114, 199, 239, 26, 1, 114, + 231, 89, 26, 1, 114, 214, 50, 26, 1, 114, 203, 89, 26, 1, 114, 216, 131, + 26, 1, 114, 217, 3, 26, 1, 114, 212, 44, 26, 1, 114, 213, 106, 26, 1, + 114, 231, 176, 26, 1, 114, 197, 76, 26, 1, 114, 220, 215, 26, 1, 114, + 192, 104, 26, 1, 114, 212, 82, 242, 237, 26, 1, 114, 192, 18, 26, 1, 114, + 216, 148, 26, 1, 114, 214, 146, 26, 1, 114, 209, 174, 26, 1, 114, 191, + 206, 26, 1, 114, 219, 171, 26, 1, 114, 232, 84, 26, 1, 114, 231, 175, 26, + 1, 114, 213, 253, 26, 1, 114, 221, 241, 26, 1, 114, 217, 136, 26, 1, 114, + 214, 10, 26, 1, 114, 231, 75, 26, 1, 114, 233, 109, 26, 1, 114, 212, 182, + 26, 1, 114, 209, 234, 26, 1, 114, 192, 45, 26, 1, 114, 214, 36, 26, 1, + 114, 212, 82, 248, 209, 26, 1, 114, 212, 24, 26, 1, 114, 209, 35, 26, 1, + 114, 216, 80, 26, 1, 114, 232, 82, 26, 1, 114, 214, 244, 26, 1, 114, 215, + 149, 26, 1, 114, 231, 74, 26, 1, 114, 232, 87, 68, 26, 1, 114, 215, 85, + 26, 1, 114, 208, 160, 26, 1, 114, 213, 255, 26, 1, 114, 220, 188, 26, 1, + 114, 209, 171, 26, 1, 114, 212, 196, 26, 1, 114, 192, 46, 26, 1, 114, + 214, 20, 26, 1, 114, 210, 221, 210, 19, 26, 1, 114, 232, 87, 247, 138, + 26, 1, 114, 232, 167, 26, 1, 114, 213, 148, 26, 1, 114, 65, 26, 1, 114, + 198, 50, 26, 1, 114, 74, 26, 1, 114, 68, 26, 1, 114, 220, 14, 26, 1, 114, + 210, 221, 209, 82, 26, 1, 114, 199, 245, 26, 1, 114, 199, 180, 26, 1, + 114, 214, 161, 215, 71, 228, 172, 26, 1, 114, 203, 64, 26, 1, 114, 192, + 42, 26, 1, 114, 213, 236, 26, 1, 114, 191, 211, 26, 1, 114, 191, 244, + 200, 136, 26, 1, 114, 191, 244, 238, 242, 26, 1, 114, 191, 194, 26, 1, + 114, 191, 202, 26, 1, 114, 221, 227, 26, 1, 114, 209, 232, 26, 1, 114, + 213, 149, 234, 49, 26, 1, 114, 208, 156, 26, 1, 114, 192, 253, 26, 1, + 114, 233, 52, 26, 1, 114, 195, 148, 26, 1, 114, 218, 225, 26, 1, 114, + 216, 100, 26, 1, 114, 207, 20, 26, 1, 114, 207, 163, 26, 1, 114, 213, + 235, 26, 1, 114, 214, 68, 26, 1, 114, 203, 56, 26, 1, 114, 203, 41, 26, + 1, 114, 232, 87, 207, 59, 26, 1, 114, 180, 26, 1, 114, 209, 185, 26, 1, + 114, 219, 0, 26, 1, 114, 221, 67, 26, 1, 114, 216, 186, 26, 1, 114, 174, + 26, 1, 114, 217, 68, 26, 1, 114, 199, 63, 26, 1, 114, 221, 166, 26, 1, + 114, 215, 231, 26, 1, 114, 199, 95, 26, 1, 114, 233, 76, 26, 1, 114, 231, + 62, 26, 1, 209, 215, 155, 26, 1, 209, 215, 66, 26, 1, 209, 215, 220, 232, + 26, 1, 209, 215, 234, 188, 26, 1, 209, 215, 207, 84, 26, 1, 209, 215, + 199, 226, 26, 1, 209, 215, 212, 81, 26, 1, 209, 215, 173, 26, 1, 209, + 215, 206, 195, 26, 1, 209, 215, 206, 242, 26, 1, 209, 215, 216, 210, 26, + 1, 209, 215, 199, 245, 26, 1, 209, 215, 214, 160, 26, 1, 209, 215, 213, + 155, 26, 1, 209, 215, 218, 168, 26, 1, 209, 215, 200, 160, 26, 1, 209, + 215, 203, 76, 26, 1, 209, 215, 202, 222, 26, 1, 209, 215, 203, 248, 26, + 1, 209, 215, 220, 149, 26, 1, 209, 215, 221, 241, 26, 1, 209, 215, 212, + 146, 26, 1, 209, 215, 212, 178, 26, 1, 209, 215, 213, 126, 26, 1, 209, + 215, 191, 243, 26, 1, 209, 215, 203, 5, 26, 1, 209, 215, 170, 26, 1, 209, + 215, 212, 215, 26, 1, 209, 215, 209, 232, 26, 1, 209, 215, 212, 195, 26, + 1, 209, 215, 192, 253, 26, 1, 209, 215, 210, 49, 26, 1, 209, 215, 206, + 68, 26, 1, 209, 215, 213, 219, 26, 1, 209, 215, 207, 20, 26, 1, 209, 215, + 221, 251, 26, 1, 209, 215, 213, 252, 26, 1, 209, 215, 214, 47, 26, 1, + 209, 215, 203, 56, 26, 1, 209, 215, 208, 161, 26, 1, 209, 215, 232, 167, + 26, 1, 209, 215, 193, 190, 26, 1, 209, 215, 219, 146, 26, 1, 209, 215, + 219, 0, 26, 1, 209, 215, 221, 67, 26, 1, 209, 215, 217, 1, 26, 1, 209, + 215, 207, 55, 26, 1, 209, 215, 174, 26, 1, 209, 215, 216, 12, 26, 1, 209, + 215, 217, 9, 26, 1, 209, 215, 199, 73, 26, 1, 209, 215, 221, 21, 26, 1, + 209, 215, 205, 150, 26, 1, 209, 215, 193, 248, 215, 159, 1, 190, 190, + 215, 159, 1, 214, 16, 215, 159, 1, 192, 12, 215, 159, 1, 216, 46, 215, + 159, 1, 249, 153, 215, 159, 1, 238, 32, 215, 159, 1, 65, 215, 159, 1, + 209, 211, 215, 159, 1, 221, 209, 215, 159, 1, 230, 22, 215, 159, 1, 238, + 7, 215, 159, 1, 243, 48, 215, 159, 1, 222, 15, 215, 159, 1, 211, 120, + 215, 159, 1, 217, 133, 215, 159, 1, 213, 179, 215, 159, 1, 168, 215, 159, + 1, 211, 87, 215, 159, 1, 74, 215, 159, 1, 206, 162, 215, 159, 1, 203, 81, + 215, 159, 1, 199, 32, 215, 159, 1, 234, 217, 215, 159, 1, 193, 190, 215, + 159, 1, 71, 215, 159, 1, 221, 67, 215, 159, 1, 220, 24, 215, 159, 1, 173, + 215, 159, 1, 230, 80, 215, 159, 1, 207, 1, 215, 159, 1, 199, 110, 215, + 159, 17, 191, 77, 215, 159, 17, 107, 215, 159, 17, 109, 215, 159, 17, + 138, 215, 159, 17, 134, 215, 159, 17, 149, 215, 159, 17, 169, 215, 159, + 17, 175, 215, 159, 17, 171, 215, 159, 17, 178, 215, 159, 237, 238, 215, + 159, 55, 237, 238, 199, 186, 1, 210, 238, 199, 186, 1, 211, 166, 199, + 186, 1, 211, 58, 199, 186, 1, 210, 247, 199, 186, 1, 250, 123, 199, 186, + 1, 252, 63, 199, 186, 1, 251, 37, 199, 186, 1, 250, 133, 199, 186, 1, + 193, 227, 199, 186, 1, 195, 155, 199, 186, 1, 194, 255, 199, 186, 1, 193, + 236, 199, 186, 1, 233, 182, 199, 186, 1, 234, 197, 199, 186, 1, 234, 46, + 199, 186, 1, 233, 221, 199, 186, 1, 223, 41, 199, 186, 1, 228, 28, 199, + 186, 1, 223, 79, 199, 186, 1, 223, 45, 199, 186, 1, 196, 18, 199, 186, 1, + 196, 160, 199, 186, 1, 196, 64, 199, 186, 1, 196, 22, 199, 186, 1, 250, + 134, 199, 186, 1, 250, 138, 199, 186, 1, 250, 136, 199, 186, 1, 250, 135, + 199, 186, 1, 196, 129, 199, 186, 1, 196, 138, 199, 186, 1, 196, 135, 199, + 186, 1, 196, 130, 199, 186, 1, 53, 214, 70, 199, 186, 1, 179, 196, 145, + 199, 186, 1, 203, 40, 196, 143, 199, 186, 1, 203, 40, 250, 135, 199, 186, + 1, 196, 150, 199, 186, 1, 196, 143, 199, 186, 1, 196, 146, 199, 186, 1, + 196, 145, 199, 186, 1, 196, 131, 199, 186, 1, 196, 134, 199, 186, 1, 196, + 133, 199, 186, 1, 196, 132, 199, 186, 1, 215, 63, 199, 186, 1, 216, 238, + 199, 186, 1, 215, 165, 199, 186, 1, 215, 72, 199, 186, 1, 155, 199, 186, + 1, 221, 215, 199, 186, 1, 231, 240, 199, 186, 1, 214, 68, 199, 186, 1, + 188, 199, 186, 1, 170, 199, 186, 1, 193, 190, 199, 186, 1, 168, 199, 186, + 1, 212, 101, 199, 186, 1, 209, 228, 199, 186, 1, 249, 153, 199, 186, 1, + 174, 199, 186, 1, 180, 199, 186, 1, 140, 199, 186, 1, 173, 199, 186, 1, + 228, 164, 199, 186, 1, 190, 190, 199, 186, 1, 238, 32, 199, 186, 1, 165, + 199, 186, 1, 213, 224, 199, 186, 1, 203, 165, 199, 186, 1, 247, 160, 199, + 186, 1, 197, 168, 199, 186, 1, 231, 91, 199, 186, 1, 228, 161, 199, 186, + 1, 199, 49, 199, 186, 1, 192, 220, 199, 186, 1, 233, 109, 199, 186, 1, + 237, 68, 199, 186, 1, 247, 1, 199, 186, 1, 191, 123, 199, 186, 17, 191, + 77, 199, 186, 17, 107, 199, 186, 17, 109, 199, 186, 17, 138, 199, 186, + 17, 134, 199, 186, 17, 149, 199, 186, 17, 169, 199, 186, 17, 175, 199, + 186, 17, 171, 199, 186, 17, 178, 249, 67, 195, 185, 1, 234, 84, 249, 67, + 195, 185, 1, 155, 249, 67, 195, 185, 1, 205, 68, 249, 67, 195, 185, 1, + 233, 109, 249, 67, 195, 185, 1, 217, 4, 249, 67, 195, 185, 1, 192, 30, + 249, 67, 195, 185, 1, 231, 225, 249, 67, 195, 185, 1, 237, 49, 249, 67, + 195, 185, 1, 221, 20, 249, 67, 195, 185, 1, 222, 201, 249, 67, 195, 185, + 1, 228, 124, 249, 67, 195, 185, 1, 193, 190, 249, 67, 195, 185, 1, 191, + 7, 249, 67, 195, 185, 1, 231, 169, 249, 67, 195, 185, 1, 236, 174, 249, + 67, 195, 185, 1, 247, 42, 249, 67, 195, 185, 1, 196, 23, 249, 67, 195, + 185, 1, 159, 249, 67, 195, 185, 1, 249, 153, 249, 67, 195, 185, 1, 193, + 249, 249, 67, 195, 185, 1, 192, 74, 249, 67, 195, 185, 1, 168, 249, 67, + 195, 185, 1, 193, 177, 249, 67, 195, 185, 1, 65, 249, 67, 195, 185, 1, + 74, 249, 67, 195, 185, 1, 211, 87, 249, 67, 195, 185, 1, 66, 249, 67, + 195, 185, 1, 234, 188, 249, 67, 195, 185, 1, 71, 249, 67, 195, 185, 1, + 68, 249, 67, 195, 185, 33, 137, 198, 79, 249, 67, 195, 185, 33, 130, 198, + 79, 249, 67, 195, 185, 33, 216, 87, 198, 79, 249, 67, 195, 185, 33, 218, + 238, 198, 79, 249, 67, 195, 185, 33, 229, 133, 198, 79, 249, 67, 195, + 185, 232, 80, 201, 63, 145, 90, 18, 222, 12, 145, 90, 18, 222, 8, 145, + 90, 18, 221, 155, 145, 90, 18, 221, 118, 145, 90, 18, 222, 41, 145, 90, + 18, 222, 38, 145, 90, 18, 220, 216, 145, 90, 18, 220, 185, 145, 90, 18, + 222, 14, 145, 90, 18, 221, 225, 145, 90, 18, 222, 101, 145, 90, 18, 222, + 98, 145, 90, 18, 221, 40, 145, 90, 18, 221, 37, 145, 90, 18, 222, 34, + 145, 90, 18, 222, 31, 145, 90, 18, 220, 218, 145, 90, 18, 220, 217, 145, + 90, 18, 221, 60, 145, 90, 18, 221, 25, 145, 90, 18, 221, 157, 145, 90, + 18, 221, 156, 145, 90, 18, 222, 117, 145, 90, 18, 222, 37, 145, 90, 18, + 220, 175, 145, 90, 18, 220, 166, 145, 90, 18, 222, 126, 145, 90, 18, 222, + 118, 145, 90, 120, 195, 160, 145, 90, 120, 212, 185, 145, 90, 120, 220, + 0, 145, 90, 120, 230, 2, 145, 90, 120, 213, 82, 145, 90, 120, 207, 125, + 145, 90, 120, 213, 109, 145, 90, 120, 208, 69, 145, 90, 120, 192, 91, + 145, 90, 120, 229, 108, 145, 90, 120, 217, 25, 145, 90, 120, 243, 131, + 145, 90, 120, 214, 165, 145, 90, 120, 229, 44, 145, 90, 120, 209, 91, + 145, 90, 120, 212, 191, 145, 90, 120, 214, 205, 145, 90, 120, 250, 163, + 145, 90, 120, 192, 216, 145, 90, 120, 247, 76, 145, 90, 87, 243, 17, 197, + 85, 145, 90, 87, 243, 17, 202, 46, 145, 90, 87, 243, 17, 221, 243, 145, + 90, 87, 243, 17, 221, 198, 145, 90, 87, 243, 17, 200, 246, 145, 90, 87, + 243, 17, 229, 2, 145, 90, 87, 243, 17, 199, 165, 145, 90, 3, 195, 5, 198, + 238, 145, 90, 3, 195, 5, 197, 156, 247, 33, 145, 90, 3, 243, 17, 243, + 120, 145, 90, 3, 195, 5, 199, 10, 145, 90, 3, 195, 5, 233, 49, 145, 90, + 3, 192, 171, 212, 179, 145, 90, 3, 192, 171, 207, 3, 145, 90, 3, 192, + 171, 198, 32, 145, 90, 3, 192, 171, 233, 90, 145, 90, 3, 195, 5, 205, 44, + 145, 90, 3, 216, 209, 200, 250, 145, 90, 3, 195, 5, 212, 231, 145, 90, 3, + 228, 31, 192, 111, 145, 90, 3, 192, 215, 145, 90, 3, 243, 17, 197, 143, + 206, 144, 145, 90, 17, 191, 77, 145, 90, 17, 107, 145, 90, 17, 109, 145, + 90, 17, 138, 145, 90, 17, 134, 145, 90, 17, 149, 145, 90, 17, 169, 145, + 90, 17, 175, 145, 90, 17, 171, 145, 90, 17, 178, 145, 90, 31, 199, 90, + 145, 90, 31, 228, 138, 145, 90, 31, 199, 96, 198, 228, 145, 90, 31, 216, + 47, 145, 90, 31, 228, 141, 216, 47, 145, 90, 31, 199, 96, 248, 169, 145, + 90, 31, 197, 227, 145, 90, 3, 195, 5, 218, 220, 145, 90, 3, 192, 168, + 145, 90, 3, 229, 103, 145, 90, 3, 198, 255, 229, 103, 145, 90, 3, 190, + 236, 199, 43, 145, 90, 3, 229, 28, 145, 90, 3, 212, 245, 145, 90, 3, 192, + 206, 145, 90, 3, 212, 183, 145, 90, 3, 250, 146, 145, 90, 3, 197, 7, 247, + 32, 145, 90, 3, 216, 209, 197, 159, 145, 90, 3, 199, 166, 145, 90, 3, + 218, 253, 145, 90, 3, 215, 103, 145, 90, 3, 243, 17, 230, 76, 218, 196, + 212, 189, 212, 188, 145, 90, 3, 243, 17, 238, 194, 197, 150, 145, 90, 3, + 243, 17, 197, 5, 145, 90, 3, 243, 17, 197, 6, 243, 36, 145, 90, 3, 243, + 17, 208, 159, 237, 206, 145, 90, 3, 243, 17, 212, 238, 198, 41, 145, 90, + 242, 244, 3, 197, 154, 145, 90, 242, 244, 3, 192, 76, 145, 90, 242, 244, + 3, 219, 90, 145, 90, 242, 244, 3, 219, 254, 145, 90, 242, 244, 3, 192, + 167, 145, 90, 242, 244, 3, 221, 41, 145, 90, 242, 244, 3, 229, 254, 145, + 90, 242, 244, 3, 215, 147, 145, 90, 242, 244, 3, 198, 239, 145, 90, 242, + 244, 3, 197, 165, 145, 90, 242, 244, 3, 209, 225, 145, 90, 242, 244, 3, + 221, 213, 145, 90, 242, 244, 3, 230, 64, 145, 90, 242, 244, 3, 195, 182, + 145, 90, 242, 244, 3, 233, 86, 145, 90, 242, 244, 3, 192, 118, 145, 90, + 242, 244, 3, 197, 137, 145, 90, 242, 244, 3, 220, 170, 145, 90, 242, 244, + 3, 193, 237, 216, 218, 6, 1, 218, 168, 216, 218, 6, 1, 206, 8, 216, 218, + 6, 1, 196, 12, 216, 218, 6, 1, 193, 224, 216, 218, 6, 1, 250, 176, 216, + 218, 6, 1, 191, 166, 216, 218, 6, 1, 221, 22, 216, 218, 6, 1, 210, 236, + 216, 218, 6, 1, 200, 43, 216, 218, 6, 1, 232, 51, 216, 218, 6, 1, 233, + 175, 216, 218, 6, 1, 68, 216, 218, 6, 1, 222, 152, 216, 218, 6, 1, 65, + 216, 218, 6, 1, 223, 35, 216, 218, 6, 1, 71, 216, 218, 6, 1, 250, 120, + 216, 218, 6, 1, 247, 193, 216, 218, 6, 1, 66, 216, 218, 6, 1, 191, 225, + 216, 218, 6, 1, 172, 216, 218, 6, 1, 208, 104, 216, 218, 6, 1, 228, 169, + 216, 218, 6, 1, 212, 103, 216, 218, 6, 1, 192, 235, 216, 218, 6, 1, 238, + 127, 216, 218, 6, 1, 211, 151, 216, 218, 6, 1, 215, 61, 216, 218, 6, 1, + 146, 216, 218, 6, 1, 74, 216, 218, 6, 1, 251, 236, 216, 218, 6, 1, 192, + 159, 216, 218, 2, 1, 218, 168, 216, 218, 2, 1, 206, 8, 216, 218, 2, 1, + 196, 12, 216, 218, 2, 1, 193, 224, 216, 218, 2, 1, 250, 176, 216, 218, 2, + 1, 191, 166, 216, 218, 2, 1, 221, 22, 216, 218, 2, 1, 210, 236, 216, 218, + 2, 1, 200, 43, 216, 218, 2, 1, 232, 51, 216, 218, 2, 1, 233, 175, 216, + 218, 2, 1, 68, 216, 218, 2, 1, 222, 152, 216, 218, 2, 1, 65, 216, 218, 2, + 1, 223, 35, 216, 218, 2, 1, 71, 216, 218, 2, 1, 250, 120, 216, 218, 2, 1, + 247, 193, 216, 218, 2, 1, 66, 216, 218, 2, 1, 191, 225, 216, 218, 2, 1, + 172, 216, 218, 2, 1, 208, 104, 216, 218, 2, 1, 228, 169, 216, 218, 2, 1, + 212, 103, 216, 218, 2, 1, 192, 235, 216, 218, 2, 1, 238, 127, 216, 218, + 2, 1, 211, 151, 216, 218, 2, 1, 215, 61, 216, 218, 2, 1, 146, 216, 218, + 2, 1, 74, 216, 218, 2, 1, 251, 236, 216, 218, 2, 1, 192, 159, 216, 218, + 17, 191, 77, 216, 218, 17, 107, 216, 218, 17, 109, 216, 218, 17, 138, + 216, 218, 17, 134, 216, 218, 17, 149, 216, 218, 17, 169, 216, 218, 17, + 175, 216, 218, 17, 171, 216, 218, 17, 178, 216, 218, 31, 199, 95, 216, + 218, 31, 234, 127, 216, 218, 31, 197, 37, 216, 218, 31, 198, 251, 216, + 218, 31, 232, 122, 216, 218, 31, 233, 19, 216, 218, 31, 202, 130, 216, + 218, 31, 203, 244, 216, 218, 31, 234, 161, 216, 218, 31, 213, 171, 216, + 218, 17, 91, 251, 157, 20, 216, 218, 17, 105, 251, 157, 20, 216, 218, 17, + 115, 251, 157, 20, 216, 218, 242, 74, 216, 218, 232, 80, 201, 63, 216, + 218, 16, 251, 221, 216, 218, 233, 216, 211, 136, 121, 1, 168, 121, 1, + 249, 153, 121, 1, 11, 168, 121, 1, 209, 110, 121, 1, 174, 121, 1, 216, + 103, 121, 1, 251, 14, 174, 121, 1, 233, 109, 121, 1, 195, 188, 121, 1, + 195, 71, 121, 1, 190, 190, 121, 1, 238, 32, 121, 1, 11, 197, 132, 121, 1, + 11, 190, 190, 121, 1, 197, 132, 121, 1, 237, 191, 121, 1, 180, 121, 1, + 213, 224, 121, 1, 11, 213, 79, 121, 1, 251, 14, 180, 121, 1, 213, 79, + 121, 1, 213, 65, 121, 1, 173, 121, 1, 218, 182, 121, 1, 219, 159, 121, 1, + 219, 148, 121, 1, 198, 112, 121, 1, 236, 183, 121, 1, 198, 104, 121, 1, + 236, 182, 121, 1, 155, 121, 1, 231, 240, 121, 1, 11, 155, 121, 1, 208, + 96, 121, 1, 208, 72, 121, 1, 214, 68, 121, 1, 214, 17, 121, 1, 251, 14, + 214, 68, 121, 1, 140, 121, 1, 192, 220, 121, 1, 231, 91, 121, 1, 231, 66, + 121, 1, 197, 142, 121, 1, 235, 18, 121, 1, 212, 101, 121, 1, 212, 83, + 121, 1, 197, 157, 121, 1, 235, 29, 121, 1, 11, 197, 157, 121, 1, 11, 235, + 29, 121, 1, 207, 82, 197, 157, 121, 1, 203, 165, 121, 1, 201, 175, 121, + 1, 191, 71, 121, 1, 190, 253, 121, 1, 197, 168, 121, 1, 235, 35, 121, 1, + 11, 197, 168, 121, 1, 188, 121, 1, 191, 123, 121, 1, 190, 254, 121, 1, + 190, 224, 121, 1, 190, 204, 121, 1, 251, 14, 190, 224, 121, 1, 190, 196, + 121, 1, 190, 203, 121, 1, 193, 190, 121, 1, 251, 245, 121, 1, 229, 177, + 121, 1, 248, 32, 121, 1, 200, 125, 121, 1, 235, 19, 121, 1, 199, 145, + 121, 1, 197, 161, 121, 1, 206, 71, 121, 3, 120, 52, 164, 121, 1, 214, + 212, 121, 3, 250, 199, 121, 3, 207, 82, 195, 18, 121, 3, 207, 82, 250, + 199, 121, 18, 3, 65, 121, 18, 3, 252, 206, 121, 18, 3, 251, 241, 121, 18, + 3, 251, 132, 121, 18, 3, 251, 122, 121, 18, 3, 74, 121, 18, 3, 211, 87, + 121, 18, 3, 193, 48, 121, 18, 3, 193, 224, 121, 18, 3, 71, 121, 18, 3, + 234, 103, 121, 18, 3, 234, 88, 121, 18, 3, 211, 147, 121, 18, 3, 68, 121, + 18, 3, 228, 35, 121, 18, 3, 228, 34, 121, 18, 3, 228, 33, 121, 18, 3, + 223, 88, 121, 18, 3, 223, 226, 121, 18, 3, 223, 199, 121, 18, 3, 223, 49, + 121, 18, 3, 223, 136, 121, 18, 3, 66, 121, 18, 3, 196, 168, 121, 18, 3, + 196, 167, 121, 18, 3, 196, 166, 121, 18, 3, 196, 30, 121, 18, 3, 196, + 148, 121, 18, 3, 196, 97, 121, 18, 3, 192, 159, 121, 18, 3, 192, 33, 121, + 18, 3, 252, 25, 121, 18, 3, 252, 21, 121, 18, 3, 234, 26, 121, 18, 3, + 206, 113, 234, 26, 121, 18, 3, 234, 34, 121, 18, 3, 206, 113, 234, 34, + 121, 18, 3, 251, 236, 121, 18, 3, 234, 166, 121, 18, 3, 250, 163, 121, + 18, 3, 211, 19, 121, 18, 3, 215, 61, 121, 18, 3, 214, 70, 121, 18, 3, + 196, 81, 121, 18, 3, 191, 205, 121, 18, 3, 211, 141, 121, 18, 3, 211, + 148, 121, 18, 3, 193, 239, 121, 18, 3, 223, 204, 121, 18, 3, 234, 217, + 121, 18, 3, 223, 86, 121, 18, 3, 196, 139, 121, 163, 183, 121, 163, 198, + 54, 183, 121, 163, 58, 121, 163, 60, 121, 1, 198, 77, 121, 1, 198, 76, + 121, 1, 198, 75, 121, 1, 198, 74, 121, 1, 198, 73, 121, 1, 198, 72, 121, + 1, 198, 71, 121, 1, 207, 82, 198, 78, 121, 1, 207, 82, 198, 77, 121, 1, + 207, 82, 198, 75, 121, 1, 207, 82, 198, 74, 121, 1, 207, 82, 198, 73, + 121, 1, 207, 82, 198, 71, 19, 223, 51, 77, 46, 223, 51, 77, 39, 243, 80, + 228, 251, 77, 39, 243, 80, 223, 51, 77, 41, 2, 27, 233, 3, 195, 57, 251, + 157, 207, 107, 87, 247, 160, 195, 57, 251, 157, 207, 107, 87, 213, 223, + 19, 242, 63, 19, 242, 62, 19, 242, 61, 19, 242, 60, 19, 242, 59, 19, 242, + 58, 19, 242, 57, 19, 242, 56, 19, 242, 55, 19, 242, 54, 19, 242, 53, 19, + 242, 52, 19, 242, 51, 19, 242, 50, 19, 242, 49, 19, 242, 48, 19, 242, 47, + 19, 242, 46, 19, 242, 45, 19, 242, 44, 19, 242, 43, 19, 242, 42, 19, 242, + 41, 19, 242, 40, 19, 242, 39, 19, 242, 38, 19, 242, 37, 19, 242, 36, 19, + 242, 35, 19, 242, 34, 19, 242, 33, 19, 242, 32, 19, 242, 31, 19, 242, 30, + 19, 242, 29, 19, 242, 28, 19, 242, 27, 19, 242, 26, 19, 242, 25, 19, 242, + 24, 19, 242, 23, 19, 242, 22, 19, 242, 21, 19, 242, 20, 19, 242, 19, 19, + 242, 18, 19, 242, 17, 19, 242, 16, 19, 242, 15, 19, 242, 14, 19, 242, 13, + 19, 242, 12, 19, 242, 11, 19, 242, 10, 19, 242, 9, 19, 242, 8, 19, 242, + 7, 19, 242, 6, 19, 242, 5, 19, 242, 4, 19, 242, 3, 19, 242, 2, 19, 242, + 1, 19, 242, 0, 19, 241, 255, 19, 241, 254, 19, 241, 253, 19, 241, 252, + 19, 241, 251, 19, 241, 250, 19, 241, 249, 19, 241, 248, 19, 241, 247, 19, 241, 246, 19, 241, 245, 19, 241, 244, 19, 241, 243, 19, 241, 242, 19, 241, 241, 19, 241, 240, 19, 241, 239, 19, 241, 238, 19, 241, 237, 19, 241, 236, 19, 241, 235, 19, 241, 234, 19, 241, 233, 19, 241, 232, 19, @@ -17519,3030 +17602,3084 @@ static const unsigned char phrasebook[] = { 81, 19, 239, 80, 19, 239, 79, 19, 239, 78, 19, 239, 77, 19, 239, 76, 19, 239, 75, 19, 239, 74, 19, 239, 73, 19, 239, 72, 19, 239, 71, 19, 239, 70, 19, 239, 69, 19, 239, 68, 19, 239, 67, 19, 239, 66, 19, 239, 65, 19, 239, - 64, 19, 239, 63, 19, 239, 62, 19, 239, 61, 19, 239, 60, 19, 239, 59, 19, - 239, 58, 19, 239, 57, 19, 239, 56, 19, 239, 55, 19, 239, 54, 19, 239, 53, - 19, 239, 52, 19, 239, 51, 19, 239, 50, 19, 239, 49, 19, 239, 48, 19, 239, - 47, 19, 239, 46, 19, 239, 45, 19, 239, 44, 19, 239, 43, 19, 239, 42, 19, - 239, 41, 19, 239, 40, 19, 239, 39, 19, 239, 38, 19, 239, 37, 19, 239, 36, - 19, 239, 35, 19, 239, 34, 19, 239, 33, 19, 239, 32, 19, 239, 31, 19, 239, - 30, 19, 239, 29, 19, 239, 28, 19, 239, 27, 19, 239, 26, 19, 239, 25, 19, - 239, 24, 19, 239, 23, 19, 239, 22, 19, 239, 21, 19, 239, 20, 19, 239, 19, - 19, 239, 18, 19, 239, 17, 19, 239, 16, 40, 2, 27, 246, 190, 40, 2, 27, - 246, 189, 40, 2, 27, 246, 188, 40, 2, 27, 246, 187, 40, 2, 27, 246, 186, - 40, 2, 27, 246, 185, 40, 2, 27, 246, 184, 40, 2, 27, 246, 183, 40, 2, 27, - 246, 182, 40, 2, 27, 246, 181, 40, 2, 27, 246, 180, 40, 2, 27, 246, 179, - 40, 2, 27, 246, 178, 40, 2, 27, 246, 177, 40, 2, 27, 246, 176, 40, 2, 27, - 246, 175, 40, 2, 27, 246, 174, 40, 2, 27, 246, 173, 40, 2, 27, 246, 172, - 40, 2, 27, 246, 171, 40, 2, 27, 246, 170, 40, 2, 27, 246, 169, 40, 2, 27, - 246, 168, 40, 2, 27, 246, 167, 40, 2, 27, 246, 166, 40, 2, 27, 246, 165, - 40, 2, 27, 246, 164, 40, 2, 27, 246, 163, 40, 2, 27, 246, 162, 40, 2, 27, - 246, 161, 40, 2, 27, 246, 160, 40, 2, 27, 246, 159, 40, 2, 27, 246, 158, - 40, 2, 27, 246, 157, 40, 2, 27, 246, 156, 40, 2, 27, 246, 155, 40, 2, 27, - 246, 154, 40, 2, 27, 246, 153, 40, 2, 27, 246, 152, 40, 2, 27, 246, 151, - 40, 2, 27, 246, 150, 40, 2, 27, 246, 149, 40, 2, 27, 246, 148, 40, 2, 27, - 246, 147, 40, 2, 27, 246, 146, 40, 2, 27, 246, 145, 40, 2, 27, 246, 144, - 40, 2, 27, 246, 143, 40, 2, 27, 246, 142, 40, 2, 27, 246, 141, 40, 2, 27, - 246, 140, 40, 2, 27, 246, 139, 40, 2, 27, 246, 138, 40, 2, 27, 246, 137, - 40, 2, 27, 246, 136, 40, 2, 27, 246, 135, 40, 2, 27, 246, 134, 40, 2, 27, - 246, 133, 40, 2, 27, 246, 132, 40, 2, 27, 246, 131, 40, 2, 27, 246, 130, - 40, 2, 27, 246, 129, 40, 2, 27, 246, 128, 40, 2, 27, 246, 127, 40, 2, 27, - 246, 126, 40, 2, 27, 246, 125, 40, 2, 27, 246, 124, 40, 2, 27, 246, 123, - 40, 2, 27, 246, 122, 40, 2, 27, 246, 121, 40, 2, 27, 246, 120, 40, 2, 27, - 246, 119, 40, 2, 27, 246, 118, 40, 2, 27, 246, 117, 40, 2, 27, 246, 116, - 40, 2, 27, 246, 115, 40, 2, 27, 246, 114, 40, 2, 27, 246, 113, 40, 2, 27, - 246, 112, 40, 2, 27, 246, 111, 40, 2, 27, 246, 110, 40, 2, 27, 246, 109, - 40, 2, 27, 246, 108, 40, 2, 27, 246, 107, 40, 2, 27, 246, 106, 40, 2, 27, - 246, 105, 40, 2, 27, 246, 104, 40, 2, 27, 246, 103, 40, 2, 27, 246, 102, - 40, 2, 27, 246, 101, 40, 2, 27, 246, 100, 40, 2, 27, 246, 99, 40, 2, 27, - 246, 98, 40, 2, 27, 246, 97, 40, 2, 27, 246, 96, 40, 2, 27, 246, 95, 40, - 2, 27, 246, 94, 40, 2, 27, 246, 93, 40, 2, 27, 246, 92, 40, 2, 27, 246, - 91, 40, 2, 27, 246, 90, 40, 2, 27, 246, 89, 40, 2, 27, 246, 88, 40, 2, - 27, 246, 87, 40, 2, 27, 246, 86, 40, 2, 27, 246, 85, 40, 2, 27, 246, 84, - 40, 2, 27, 246, 83, 40, 2, 27, 246, 82, 40, 2, 27, 246, 81, 40, 2, 27, - 246, 80, 40, 2, 27, 246, 79, 40, 2, 27, 246, 78, 40, 2, 27, 246, 77, 40, - 2, 27, 246, 76, 40, 2, 27, 246, 75, 40, 2, 27, 246, 74, 40, 2, 27, 246, - 73, 40, 2, 27, 246, 72, 40, 2, 27, 246, 71, 40, 2, 27, 246, 70, 40, 2, - 27, 246, 69, 40, 2, 27, 246, 68, 40, 2, 27, 246, 67, 40, 2, 27, 246, 66, - 40, 2, 27, 246, 65, 40, 2, 27, 246, 64, 40, 2, 27, 246, 63, 40, 2, 27, - 246, 62, 40, 2, 27, 246, 61, 40, 2, 27, 246, 60, 40, 2, 27, 246, 59, 40, - 2, 27, 246, 58, 40, 2, 27, 246, 57, 40, 2, 27, 246, 56, 40, 2, 27, 246, - 55, 40, 2, 27, 246, 54, 40, 2, 27, 246, 53, 40, 2, 27, 246, 52, 40, 2, - 27, 246, 51, 40, 2, 27, 246, 50, 40, 2, 27, 246, 49, 40, 2, 27, 246, 48, - 40, 2, 27, 246, 47, 40, 2, 27, 246, 46, 40, 2, 27, 246, 45, 40, 2, 27, - 246, 44, 40, 2, 27, 246, 43, 40, 2, 27, 246, 42, 40, 2, 27, 246, 41, 40, - 2, 27, 246, 40, 40, 2, 27, 246, 39, 40, 2, 27, 246, 38, 40, 2, 27, 246, - 37, 40, 2, 27, 246, 36, 40, 2, 27, 246, 35, 40, 2, 27, 246, 34, 40, 2, - 27, 246, 33, 40, 2, 27, 246, 32, 40, 2, 27, 246, 31, 40, 2, 27, 246, 30, - 40, 2, 27, 246, 29, 40, 2, 27, 246, 28, 40, 2, 27, 246, 27, 40, 2, 27, - 246, 26, 40, 2, 27, 246, 25, 40, 2, 27, 246, 24, 40, 2, 27, 246, 23, 40, - 2, 27, 246, 22, 40, 2, 27, 246, 21, 40, 2, 27, 246, 20, 40, 2, 27, 246, - 19, 40, 2, 27, 246, 18, 40, 2, 27, 246, 17, 40, 2, 27, 246, 16, 40, 2, - 27, 246, 15, 40, 2, 27, 246, 14, 40, 2, 27, 246, 13, 40, 2, 27, 246, 12, - 40, 2, 27, 246, 11, 40, 2, 27, 246, 10, 40, 2, 27, 246, 9, 40, 2, 27, - 246, 8, 40, 2, 27, 246, 7, 40, 2, 27, 246, 6, 40, 2, 27, 246, 5, 40, 2, - 27, 246, 4, 40, 2, 27, 246, 3, 40, 2, 27, 246, 2, 40, 2, 27, 246, 1, 40, - 2, 27, 246, 0, 40, 2, 27, 245, 255, 40, 2, 27, 245, 254, 40, 2, 27, 245, - 253, 40, 2, 27, 245, 252, 40, 2, 27, 245, 251, 40, 2, 27, 245, 250, 40, - 2, 27, 245, 249, 40, 2, 27, 245, 248, 40, 2, 27, 245, 247, 40, 2, 27, - 245, 246, 40, 2, 27, 245, 245, 40, 2, 27, 245, 244, 40, 2, 27, 245, 243, - 40, 2, 27, 245, 242, 40, 2, 27, 245, 241, 40, 2, 27, 245, 240, 40, 2, 27, - 245, 239, 40, 2, 27, 245, 238, 40, 2, 27, 245, 237, 40, 2, 27, 245, 236, - 40, 2, 27, 245, 235, 40, 2, 27, 245, 234, 40, 2, 27, 245, 233, 40, 2, 27, - 245, 232, 40, 2, 27, 245, 231, 40, 2, 27, 245, 230, 40, 2, 27, 245, 229, - 40, 2, 27, 245, 228, 40, 2, 27, 245, 227, 40, 2, 27, 245, 226, 40, 2, 27, - 245, 225, 40, 2, 27, 245, 224, 40, 2, 27, 245, 223, 40, 2, 27, 245, 222, - 40, 2, 27, 245, 221, 40, 2, 27, 245, 220, 40, 2, 27, 245, 219, 40, 2, 27, - 245, 218, 40, 2, 27, 245, 217, 40, 2, 27, 245, 216, 40, 2, 27, 245, 215, - 40, 2, 27, 245, 214, 40, 2, 27, 245, 213, 40, 2, 27, 245, 212, 40, 2, 27, - 245, 211, 40, 2, 27, 245, 210, 40, 2, 27, 245, 209, 40, 2, 27, 245, 208, - 40, 2, 27, 245, 207, 40, 2, 27, 245, 206, 40, 2, 27, 245, 205, 40, 2, 27, - 245, 204, 40, 2, 27, 245, 203, 40, 2, 27, 245, 202, 40, 2, 27, 245, 201, - 40, 2, 27, 245, 200, 40, 2, 27, 245, 199, 40, 2, 27, 245, 198, 40, 2, 27, - 245, 197, 40, 2, 27, 245, 196, 40, 2, 27, 245, 195, 40, 2, 27, 245, 194, - 40, 2, 27, 245, 193, 40, 2, 27, 245, 192, 40, 2, 27, 245, 191, 40, 2, 27, - 245, 190, 40, 2, 27, 245, 189, 40, 2, 27, 245, 188, 40, 2, 27, 245, 187, - 40, 2, 27, 245, 186, 40, 2, 27, 245, 185, 40, 2, 27, 245, 184, 40, 2, 27, - 245, 183, 40, 2, 27, 245, 182, 40, 2, 27, 245, 181, 40, 2, 27, 245, 180, - 40, 2, 27, 245, 179, 40, 2, 27, 245, 178, 40, 2, 27, 245, 177, 40, 2, 27, - 245, 176, 40, 2, 27, 245, 175, 40, 2, 27, 245, 174, 40, 2, 27, 245, 173, - 40, 2, 27, 245, 172, 40, 2, 27, 245, 171, 40, 2, 27, 245, 170, 40, 2, 27, - 245, 169, 40, 2, 27, 245, 168, 40, 2, 27, 245, 167, 40, 2, 27, 245, 166, - 40, 2, 27, 245, 165, 40, 2, 27, 245, 164, 40, 2, 27, 245, 163, 40, 2, 27, - 245, 162, 40, 2, 27, 245, 161, 40, 2, 27, 245, 160, 40, 2, 27, 245, 159, - 40, 2, 27, 245, 158, 40, 2, 27, 245, 157, 40, 2, 27, 245, 156, 40, 2, 27, - 245, 155, 40, 2, 27, 245, 154, 40, 2, 27, 245, 153, 40, 2, 27, 245, 152, - 40, 2, 27, 245, 151, 40, 2, 27, 245, 150, 40, 2, 27, 245, 149, 40, 2, 27, - 245, 148, 40, 2, 27, 245, 147, 40, 2, 27, 245, 146, 40, 2, 27, 245, 145, - 40, 2, 27, 245, 144, 40, 2, 27, 245, 143, 40, 2, 27, 245, 142, 40, 2, 27, - 245, 141, 40, 2, 27, 245, 140, 40, 2, 27, 245, 139, 40, 2, 27, 245, 138, - 40, 2, 27, 245, 137, 40, 2, 27, 245, 136, 40, 2, 27, 245, 135, 40, 2, 27, - 245, 134, 40, 2, 27, 245, 133, 40, 2, 27, 245, 132, 40, 2, 27, 245, 131, - 40, 2, 27, 245, 130, 40, 2, 27, 245, 129, 40, 2, 27, 245, 128, 40, 2, 27, - 245, 127, 40, 2, 27, 245, 126, 40, 2, 27, 245, 125, 40, 2, 27, 245, 124, - 40, 2, 27, 245, 123, 40, 2, 27, 245, 122, 40, 2, 27, 245, 121, 40, 2, 27, - 245, 120, 40, 2, 27, 245, 119, 40, 2, 27, 245, 118, 40, 2, 27, 245, 117, - 40, 2, 27, 245, 116, 40, 2, 27, 245, 115, 40, 2, 27, 245, 114, 40, 2, 27, - 245, 113, 40, 2, 27, 245, 112, 40, 2, 27, 245, 111, 40, 2, 27, 245, 110, - 40, 2, 27, 245, 109, 40, 2, 27, 245, 108, 40, 2, 27, 245, 107, 40, 2, 27, - 245, 106, 40, 2, 27, 245, 105, 40, 2, 27, 245, 104, 40, 2, 27, 245, 103, - 40, 2, 27, 245, 102, 40, 2, 27, 245, 101, 40, 2, 27, 245, 100, 40, 2, 27, - 245, 99, 40, 2, 27, 245, 98, 40, 2, 27, 245, 97, 40, 2, 27, 245, 96, 40, - 2, 27, 245, 95, 40, 2, 27, 245, 94, 40, 2, 27, 245, 93, 40, 2, 27, 245, - 92, 40, 2, 27, 245, 91, 40, 2, 27, 245, 90, 40, 2, 27, 245, 89, 40, 2, - 27, 245, 88, 40, 2, 27, 245, 87, 40, 2, 27, 245, 86, 40, 2, 27, 245, 85, - 40, 2, 27, 245, 84, 40, 2, 27, 245, 83, 40, 2, 27, 245, 82, 40, 2, 27, - 245, 81, 40, 2, 27, 245, 80, 40, 2, 27, 245, 79, 40, 2, 27, 245, 78, 40, - 2, 27, 245, 77, 40, 2, 27, 245, 76, 40, 2, 27, 245, 75, 40, 2, 27, 245, - 74, 40, 2, 27, 245, 73, 40, 2, 27, 245, 72, 40, 2, 27, 245, 71, 40, 2, - 27, 245, 70, 40, 2, 27, 245, 69, 40, 2, 27, 245, 68, 40, 2, 27, 245, 67, - 40, 2, 27, 245, 66, 40, 2, 27, 245, 65, 40, 2, 27, 245, 64, 40, 2, 27, - 245, 63, 40, 2, 27, 245, 62, 40, 2, 27, 245, 61, 40, 2, 27, 245, 60, 40, - 2, 27, 245, 59, 40, 2, 27, 245, 58, 40, 2, 27, 245, 57, 40, 2, 27, 245, - 56, 40, 2, 27, 245, 55, 40, 2, 27, 245, 54, 40, 2, 27, 245, 53, 40, 2, - 27, 245, 52, 40, 2, 27, 245, 51, 40, 2, 27, 245, 50, 40, 2, 27, 245, 49, - 40, 2, 27, 245, 48, 40, 2, 27, 245, 47, 40, 2, 27, 245, 46, 40, 2, 27, - 245, 45, 40, 2, 27, 245, 44, 40, 2, 27, 245, 43, 40, 2, 27, 245, 42, 40, - 2, 27, 245, 41, 40, 2, 27, 245, 40, 40, 2, 27, 245, 39, 40, 2, 27, 245, - 38, 40, 2, 27, 245, 37, 40, 2, 27, 245, 36, 40, 2, 27, 245, 35, 40, 2, - 27, 245, 34, 40, 2, 27, 245, 33, 40, 2, 27, 245, 32, 40, 2, 27, 245, 31, - 40, 2, 27, 245, 30, 40, 2, 27, 245, 29, 40, 2, 27, 245, 28, 40, 2, 27, - 245, 27, 40, 2, 27, 245, 26, 40, 2, 27, 245, 25, 40, 2, 27, 245, 24, 40, - 2, 27, 245, 23, 40, 2, 27, 245, 22, 40, 2, 27, 245, 21, 40, 2, 27, 245, - 20, 40, 2, 27, 245, 19, 40, 2, 27, 245, 18, 40, 2, 27, 245, 17, 40, 2, - 27, 245, 16, 40, 2, 27, 245, 15, 40, 2, 27, 245, 14, 40, 2, 27, 245, 13, - 40, 2, 27, 245, 12, 40, 2, 27, 245, 11, 40, 2, 27, 245, 10, 40, 2, 27, - 245, 9, 40, 2, 27, 245, 8, 40, 2, 27, 245, 7, 40, 2, 27, 245, 6, 40, 2, - 27, 245, 5, 40, 2, 27, 245, 4, 40, 2, 27, 245, 3, 40, 2, 27, 245, 2, 40, - 2, 27, 245, 1, 40, 2, 27, 245, 0, 40, 2, 27, 244, 255, 40, 2, 27, 244, - 254, 40, 2, 27, 244, 253, 40, 2, 27, 244, 252, 40, 2, 27, 244, 251, 40, - 2, 27, 244, 250, 40, 2, 27, 244, 249, 40, 2, 27, 244, 248, 40, 2, 27, - 244, 247, 40, 2, 27, 244, 246, 40, 2, 27, 244, 245, 40, 2, 27, 244, 244, - 40, 2, 27, 244, 243, 40, 2, 27, 244, 242, 40, 2, 27, 244, 241, 40, 2, 27, - 244, 240, 40, 2, 27, 244, 239, 40, 2, 27, 244, 238, 40, 2, 27, 244, 237, - 40, 2, 27, 244, 236, 40, 2, 27, 244, 235, 40, 2, 27, 244, 234, 40, 2, 27, - 244, 233, 71, 1, 216, 19, 198, 72, 71, 1, 216, 19, 198, 71, 71, 1, 216, - 19, 198, 70, 71, 1, 216, 19, 198, 69, 71, 1, 216, 19, 198, 67, 71, 1, - 216, 19, 198, 66, 71, 1, 216, 19, 214, 197, 198, 73, 71, 1, 216, 19, 214, - 197, 198, 72, 71, 1, 216, 19, 214, 197, 198, 71, 71, 1, 216, 19, 214, - 197, 198, 70, 71, 1, 216, 19, 214, 197, 198, 69, 71, 1, 216, 19, 214, - 197, 198, 67, 71, 1, 216, 19, 214, 197, 198, 66, 71, 1, 250, 220, 73, - 229, 88, 1, 250, 220, 192, 80, 61, 1, 255, 154, 61, 1, 255, 153, 61, 1, - 255, 152, 61, 1, 255, 148, 61, 1, 228, 43, 61, 1, 228, 42, 61, 1, 228, - 41, 61, 1, 228, 40, 61, 1, 196, 227, 61, 1, 196, 226, 61, 1, 196, 225, - 61, 1, 196, 224, 61, 1, 196, 223, 61, 1, 234, 225, 61, 1, 234, 224, 61, - 1, 234, 223, 61, 1, 234, 222, 61, 1, 234, 221, 61, 1, 212, 1, 61, 1, 212, - 0, 61, 1, 211, 255, 61, 1, 222, 114, 61, 1, 222, 111, 61, 1, 222, 110, - 61, 1, 222, 109, 61, 1, 222, 108, 61, 1, 222, 107, 61, 1, 222, 106, 61, - 1, 222, 105, 61, 1, 222, 104, 61, 1, 222, 113, 61, 1, 222, 112, 61, 1, - 222, 103, 61, 1, 221, 141, 61, 1, 221, 140, 61, 1, 221, 139, 61, 1, 221, - 138, 61, 1, 221, 137, 61, 1, 221, 136, 61, 1, 221, 135, 61, 1, 221, 134, - 61, 1, 220, 207, 61, 1, 220, 206, 61, 1, 220, 205, 61, 1, 220, 204, 61, - 1, 220, 203, 61, 1, 220, 202, 61, 1, 220, 201, 61, 1, 221, 252, 61, 1, - 221, 251, 61, 1, 221, 250, 61, 1, 221, 249, 61, 1, 221, 248, 61, 1, 221, - 247, 61, 1, 221, 42, 61, 1, 221, 41, 61, 1, 221, 40, 61, 1, 221, 39, 61, - 1, 205, 201, 61, 1, 205, 200, 61, 1, 205, 199, 61, 1, 205, 198, 61, 1, - 205, 197, 61, 1, 205, 196, 61, 1, 205, 195, 61, 1, 205, 194, 61, 1, 202, - 216, 61, 1, 202, 215, 61, 1, 202, 214, 61, 1, 202, 213, 61, 1, 202, 212, - 61, 1, 202, 211, 61, 1, 200, 254, 61, 1, 200, 253, 61, 1, 200, 252, 61, - 1, 200, 251, 61, 1, 200, 250, 61, 1, 200, 249, 61, 1, 200, 248, 61, 1, - 200, 247, 61, 1, 205, 62, 61, 1, 205, 61, 61, 1, 205, 60, 61, 1, 205, 59, - 61, 1, 205, 58, 61, 1, 202, 40, 61, 1, 202, 39, 61, 1, 202, 38, 61, 1, - 202, 37, 61, 1, 202, 36, 61, 1, 202, 35, 61, 1, 202, 34, 61, 1, 199, 246, - 61, 1, 199, 245, 61, 1, 199, 244, 61, 1, 199, 243, 61, 1, 198, 187, 61, - 1, 198, 186, 61, 1, 198, 185, 61, 1, 198, 184, 61, 1, 198, 183, 61, 1, - 198, 182, 61, 1, 198, 181, 61, 1, 197, 89, 61, 1, 197, 88, 61, 1, 197, - 87, 61, 1, 197, 86, 61, 1, 197, 85, 61, 1, 199, 139, 61, 1, 199, 138, 61, - 1, 199, 137, 61, 1, 199, 136, 61, 1, 199, 135, 61, 1, 199, 134, 61, 1, - 199, 133, 61, 1, 199, 132, 61, 1, 199, 131, 61, 1, 198, 93, 61, 1, 198, - 92, 61, 1, 198, 91, 61, 1, 198, 90, 61, 1, 198, 89, 61, 1, 198, 88, 61, - 1, 198, 87, 61, 1, 214, 248, 61, 1, 214, 247, 61, 1, 214, 246, 61, 1, - 214, 245, 61, 1, 214, 244, 61, 1, 214, 243, 61, 1, 214, 242, 61, 1, 214, - 241, 61, 1, 214, 240, 61, 1, 213, 204, 61, 1, 213, 203, 61, 1, 213, 202, - 61, 1, 213, 201, 61, 1, 213, 200, 61, 1, 213, 199, 61, 1, 213, 198, 61, - 1, 213, 197, 61, 1, 212, 164, 61, 1, 212, 163, 61, 1, 212, 162, 61, 1, - 214, 106, 61, 1, 214, 105, 61, 1, 214, 104, 61, 1, 214, 103, 61, 1, 214, - 102, 61, 1, 214, 101, 61, 1, 214, 100, 61, 1, 213, 29, 61, 1, 213, 28, - 61, 1, 213, 27, 61, 1, 213, 26, 61, 1, 213, 25, 61, 1, 230, 71, 61, 1, - 230, 68, 61, 1, 230, 67, 61, 1, 230, 66, 61, 1, 230, 65, 61, 1, 230, 64, - 61, 1, 230, 63, 61, 1, 230, 62, 61, 1, 230, 61, 61, 1, 230, 70, 61, 1, - 230, 69, 61, 1, 229, 125, 61, 1, 229, 124, 61, 1, 229, 123, 61, 1, 229, - 122, 61, 1, 229, 121, 61, 1, 229, 120, 61, 1, 229, 119, 61, 1, 228, 127, - 61, 1, 228, 126, 61, 1, 228, 125, 61, 1, 229, 212, 61, 1, 229, 211, 61, - 1, 229, 210, 61, 1, 229, 209, 61, 1, 229, 208, 61, 1, 229, 207, 61, 1, - 229, 206, 61, 1, 228, 246, 61, 1, 228, 245, 61, 1, 228, 244, 61, 1, 228, - 243, 61, 1, 228, 242, 61, 1, 228, 241, 61, 1, 228, 240, 61, 1, 228, 239, - 61, 1, 217, 138, 61, 1, 217, 137, 61, 1, 217, 136, 61, 1, 217, 135, 61, - 1, 217, 134, 61, 1, 217, 133, 61, 1, 217, 132, 61, 1, 216, 80, 61, 1, - 216, 79, 61, 1, 216, 78, 61, 1, 216, 77, 61, 1, 216, 76, 61, 1, 216, 75, - 61, 1, 216, 74, 61, 1, 215, 138, 61, 1, 215, 137, 61, 1, 215, 136, 61, 1, - 215, 135, 61, 1, 216, 212, 61, 1, 216, 211, 61, 1, 216, 210, 61, 1, 215, - 250, 61, 1, 215, 249, 61, 1, 215, 248, 61, 1, 215, 247, 61, 1, 215, 246, - 61, 1, 215, 245, 61, 1, 192, 148, 61, 1, 192, 147, 61, 1, 192, 146, 61, - 1, 192, 145, 61, 1, 192, 144, 61, 1, 192, 141, 61, 1, 191, 224, 61, 1, - 191, 223, 61, 1, 191, 222, 61, 1, 191, 221, 61, 1, 192, 11, 61, 1, 192, - 10, 61, 1, 192, 9, 61, 1, 192, 8, 61, 1, 192, 7, 61, 1, 192, 6, 61, 1, - 207, 180, 61, 1, 207, 179, 61, 1, 207, 178, 61, 1, 207, 177, 61, 1, 206, - 251, 61, 1, 206, 250, 61, 1, 206, 249, 61, 1, 206, 248, 61, 1, 206, 247, - 61, 1, 206, 246, 61, 1, 206, 245, 61, 1, 206, 62, 61, 1, 206, 61, 61, 1, - 206, 60, 61, 1, 206, 59, 61, 1, 206, 58, 61, 1, 206, 57, 61, 1, 207, 107, - 61, 1, 207, 106, 61, 1, 207, 105, 61, 1, 207, 104, 61, 1, 206, 156, 61, - 1, 206, 155, 61, 1, 206, 154, 61, 1, 206, 153, 61, 1, 206, 152, 61, 1, - 206, 151, 61, 1, 193, 186, 61, 1, 193, 185, 61, 1, 193, 184, 61, 1, 193, - 183, 61, 1, 193, 182, 61, 1, 193, 83, 61, 1, 193, 82, 61, 1, 193, 81, 61, - 1, 193, 80, 61, 1, 193, 79, 61, 1, 193, 122, 61, 1, 193, 121, 61, 1, 193, - 120, 61, 1, 193, 119, 61, 1, 193, 47, 61, 1, 193, 46, 61, 1, 193, 45, 61, - 1, 193, 44, 61, 1, 193, 43, 61, 1, 193, 42, 61, 1, 193, 41, 61, 1, 215, - 44, 61, 1, 215, 43, 229, 88, 1, 250, 220, 193, 0, 71, 1, 250, 220, 192, - 33, 71, 1, 250, 220, 192, 80, 71, 1, 250, 220, 193, 0, 229, 88, 1, 2, - 193, 84, 229, 88, 1, 2, 193, 123, 229, 88, 1, 2, 193, 48, 71, 1, 2, 193, - 84, 71, 1, 2, 193, 123, 71, 1, 2, 193, 48, 71, 1, 2, 215, 47, 46, 244, - 232, 46, 244, 231, 46, 244, 230, 46, 244, 229, 46, 244, 228, 46, 244, - 227, 46, 244, 226, 46, 244, 225, 46, 244, 224, 46, 244, 223, 46, 244, - 222, 46, 244, 221, 46, 244, 220, 46, 244, 219, 46, 244, 218, 46, 244, - 217, 46, 244, 216, 46, 244, 215, 46, 244, 214, 46, 244, 213, 46, 244, - 212, 46, 244, 211, 46, 244, 210, 46, 244, 209, 46, 244, 208, 46, 244, - 207, 46, 244, 206, 46, 244, 205, 46, 244, 204, 46, 244, 203, 46, 244, - 202, 46, 244, 201, 46, 244, 200, 46, 244, 199, 46, 244, 198, 46, 244, - 197, 46, 244, 196, 46, 244, 195, 46, 244, 194, 46, 244, 193, 46, 244, - 192, 46, 244, 191, 46, 244, 190, 46, 244, 189, 46, 244, 188, 46, 244, - 187, 46, 244, 186, 46, 244, 185, 46, 244, 184, 46, 244, 183, 46, 244, - 182, 46, 244, 181, 46, 244, 180, 46, 244, 179, 46, 244, 178, 46, 244, - 177, 46, 244, 176, 46, 244, 175, 46, 244, 174, 46, 244, 173, 46, 244, - 172, 46, 244, 171, 46, 244, 170, 46, 244, 169, 46, 244, 168, 46, 244, - 167, 46, 244, 166, 46, 244, 165, 46, 244, 164, 46, 244, 163, 46, 244, - 162, 46, 244, 161, 46, 244, 160, 46, 244, 159, 46, 244, 158, 46, 244, - 157, 46, 244, 156, 46, 244, 155, 46, 244, 154, 46, 244, 153, 46, 244, - 152, 46, 244, 151, 46, 244, 150, 46, 244, 149, 46, 244, 148, 46, 244, - 147, 46, 244, 146, 46, 244, 145, 46, 244, 144, 46, 244, 143, 46, 244, - 142, 46, 244, 141, 46, 244, 140, 46, 244, 139, 46, 244, 138, 46, 244, - 137, 46, 244, 136, 46, 244, 135, 46, 244, 134, 46, 244, 133, 46, 244, - 132, 46, 244, 131, 46, 244, 130, 46, 244, 129, 46, 244, 128, 46, 244, - 127, 46, 244, 126, 46, 244, 125, 46, 244, 124, 46, 244, 123, 46, 244, - 122, 46, 244, 121, 46, 244, 120, 46, 244, 119, 46, 244, 118, 46, 244, - 117, 46, 244, 116, 46, 244, 115, 46, 244, 114, 46, 244, 113, 46, 244, - 112, 46, 244, 111, 46, 244, 110, 46, 244, 109, 46, 244, 108, 46, 244, - 107, 46, 244, 106, 46, 244, 105, 46, 244, 104, 46, 244, 103, 46, 244, - 102, 46, 244, 101, 46, 244, 100, 46, 244, 99, 46, 244, 98, 46, 244, 97, - 46, 244, 96, 46, 244, 95, 46, 244, 94, 46, 244, 93, 46, 244, 92, 46, 244, - 91, 46, 244, 90, 46, 244, 89, 46, 244, 88, 46, 244, 87, 46, 244, 86, 46, - 244, 85, 46, 244, 84, 46, 244, 83, 46, 244, 82, 46, 244, 81, 46, 244, 80, - 46, 244, 79, 46, 244, 78, 46, 244, 77, 46, 244, 76, 46, 244, 75, 46, 244, - 74, 46, 244, 73, 46, 244, 72, 46, 244, 71, 46, 244, 70, 46, 244, 69, 46, - 244, 68, 46, 244, 67, 46, 244, 66, 46, 244, 65, 46, 244, 64, 46, 244, 63, - 46, 244, 62, 46, 244, 61, 46, 244, 60, 46, 244, 59, 46, 244, 58, 46, 244, - 57, 46, 244, 56, 46, 244, 55, 46, 244, 54, 46, 244, 53, 46, 244, 52, 46, - 244, 51, 46, 244, 50, 46, 244, 49, 46, 244, 48, 46, 244, 47, 46, 244, 46, - 46, 244, 45, 46, 244, 44, 46, 244, 43, 46, 244, 42, 46, 244, 41, 46, 244, - 40, 46, 244, 39, 46, 244, 38, 46, 244, 37, 46, 244, 36, 46, 244, 35, 46, - 244, 34, 46, 244, 33, 46, 244, 32, 46, 244, 31, 46, 244, 30, 46, 244, 29, - 46, 244, 28, 46, 244, 27, 46, 244, 26, 46, 244, 25, 46, 244, 24, 46, 244, - 23, 46, 244, 22, 46, 244, 21, 46, 244, 20, 46, 244, 19, 46, 244, 18, 46, - 244, 17, 46, 244, 16, 46, 244, 15, 46, 244, 14, 46, 244, 13, 46, 244, 12, - 46, 244, 11, 46, 244, 10, 46, 244, 9, 46, 244, 8, 46, 244, 7, 46, 244, 6, - 46, 244, 5, 46, 244, 4, 46, 244, 3, 46, 244, 2, 46, 244, 1, 46, 244, 0, - 46, 243, 255, 46, 243, 254, 46, 243, 253, 46, 243, 252, 46, 243, 251, 46, - 243, 250, 46, 243, 249, 46, 243, 248, 46, 243, 247, 46, 243, 246, 46, - 243, 245, 46, 243, 244, 46, 243, 243, 46, 243, 242, 46, 243, 241, 46, - 243, 240, 46, 243, 239, 46, 243, 238, 46, 243, 237, 46, 243, 236, 46, - 243, 235, 46, 243, 234, 46, 243, 233, 46, 243, 232, 46, 243, 231, 46, - 243, 230, 46, 243, 229, 46, 243, 228, 46, 243, 227, 46, 243, 226, 46, - 243, 225, 46, 243, 224, 46, 243, 223, 46, 243, 222, 46, 243, 221, 46, - 243, 220, 46, 243, 219, 46, 243, 218, 46, 243, 217, 46, 243, 216, 46, - 243, 215, 46, 243, 214, 46, 243, 213, 46, 243, 212, 46, 243, 211, 46, - 243, 210, 46, 243, 209, 46, 243, 208, 46, 243, 207, 46, 243, 206, 46, - 243, 205, 46, 243, 204, 46, 243, 203, 46, 243, 202, 46, 243, 201, 46, - 243, 200, 46, 243, 199, 46, 243, 198, 46, 243, 197, 46, 243, 196, 46, - 243, 195, 46, 243, 194, 46, 243, 193, 46, 243, 192, 46, 243, 191, 46, - 243, 190, 46, 243, 189, 46, 243, 188, 46, 243, 187, 46, 243, 186, 46, - 243, 185, 46, 243, 184, 46, 243, 183, 46, 243, 182, 46, 243, 181, 46, - 243, 180, 46, 243, 179, 46, 243, 178, 46, 243, 177, 46, 243, 176, 46, - 243, 175, 46, 243, 174, 46, 243, 173, 46, 243, 172, 46, 243, 171, 46, - 243, 170, 46, 243, 169, 46, 243, 168, 46, 243, 167, 46, 243, 166, 46, - 243, 165, 46, 243, 164, 46, 243, 163, 46, 243, 162, 46, 243, 161, 46, - 243, 160, 46, 243, 159, 46, 243, 158, 46, 243, 157, 46, 243, 156, 46, - 243, 155, 46, 243, 154, 46, 243, 153, 46, 243, 152, 46, 243, 151, 46, - 243, 150, 46, 243, 149, 46, 243, 148, 46, 243, 147, 46, 243, 146, 46, - 243, 145, 46, 243, 144, 46, 243, 143, 46, 243, 142, 46, 243, 141, 46, - 243, 140, 46, 243, 139, 46, 243, 138, 46, 243, 137, 46, 243, 136, 46, - 243, 135, 46, 243, 134, 46, 243, 133, 46, 243, 132, 46, 243, 131, 46, - 243, 130, 46, 243, 129, 46, 243, 128, 46, 243, 127, 46, 243, 126, 46, - 243, 125, 46, 243, 124, 46, 243, 123, 46, 243, 122, 46, 243, 121, 46, - 243, 120, 46, 243, 119, 46, 243, 118, 46, 243, 117, 46, 243, 116, 46, - 243, 115, 46, 243, 114, 46, 243, 113, 46, 243, 112, 46, 243, 111, 46, - 243, 110, 46, 243, 109, 46, 243, 108, 46, 243, 107, 46, 243, 106, 46, - 243, 105, 46, 243, 104, 46, 243, 103, 46, 243, 102, 46, 243, 101, 46, - 243, 100, 46, 243, 99, 46, 243, 98, 46, 243, 97, 46, 243, 96, 46, 243, - 95, 46, 243, 94, 46, 243, 93, 124, 1, 230, 83, 124, 1, 192, 235, 124, 1, - 210, 226, 124, 1, 200, 39, 124, 1, 233, 134, 124, 1, 222, 125, 124, 1, - 170, 124, 1, 250, 70, 124, 1, 238, 80, 124, 1, 196, 8, 124, 1, 232, 14, - 124, 1, 148, 124, 1, 210, 227, 215, 47, 124, 1, 238, 81, 206, 3, 124, 1, - 233, 135, 215, 47, 124, 1, 222, 126, 218, 147, 124, 1, 207, 217, 206, 3, - 124, 1, 199, 46, 124, 1, 202, 77, 237, 24, 124, 1, 237, 24, 124, 1, 221, - 78, 124, 1, 202, 77, 223, 7, 124, 1, 229, 80, 124, 1, 219, 136, 124, 1, - 207, 2, 124, 1, 218, 147, 124, 1, 215, 47, 124, 1, 223, 7, 124, 1, 206, - 3, 124, 1, 218, 148, 215, 47, 124, 1, 215, 48, 218, 147, 124, 1, 223, 8, - 218, 147, 124, 1, 206, 4, 223, 7, 124, 1, 218, 148, 4, 236, 96, 124, 1, - 215, 48, 4, 236, 96, 124, 1, 223, 8, 4, 236, 96, 124, 1, 223, 8, 4, 183, - 223, 90, 24, 56, 124, 1, 206, 4, 4, 236, 96, 124, 1, 206, 4, 4, 75, 60, - 124, 1, 218, 148, 206, 3, 124, 1, 215, 48, 206, 3, 124, 1, 223, 8, 206, - 3, 124, 1, 206, 4, 206, 3, 124, 1, 218, 148, 215, 48, 206, 3, 124, 1, - 215, 48, 218, 148, 206, 3, 124, 1, 223, 8, 218, 148, 206, 3, 124, 1, 206, - 4, 223, 8, 206, 3, 124, 1, 223, 8, 206, 4, 4, 236, 96, 124, 1, 223, 8, - 215, 47, 124, 1, 223, 8, 215, 48, 206, 3, 124, 1, 206, 4, 200, 39, 124, - 1, 206, 4, 200, 40, 148, 124, 1, 206, 4, 210, 226, 124, 1, 206, 4, 210, - 227, 148, 124, 1, 200, 40, 206, 3, 124, 1, 200, 40, 207, 217, 206, 3, - 124, 1, 193, 221, 124, 1, 193, 95, 124, 1, 193, 222, 148, 124, 1, 206, 4, - 215, 47, 124, 1, 206, 4, 218, 147, 124, 1, 222, 126, 207, 217, 206, 3, - 124, 1, 232, 15, 207, 217, 206, 3, 124, 1, 206, 4, 222, 125, 124, 1, 206, - 4, 222, 126, 148, 124, 1, 65, 124, 1, 202, 77, 210, 240, 124, 1, 211, - 169, 124, 1, 74, 124, 1, 251, 16, 124, 1, 70, 124, 1, 73, 124, 1, 223, - 197, 124, 1, 203, 35, 70, 124, 1, 196, 135, 124, 1, 234, 145, 124, 1, - 202, 77, 234, 130, 124, 1, 206, 130, 70, 124, 1, 202, 77, 234, 145, 124, - 1, 177, 70, 124, 1, 192, 80, 124, 1, 69, 124, 1, 233, 201, 124, 1, 192, - 182, 124, 1, 126, 215, 47, 124, 1, 177, 69, 124, 1, 206, 130, 69, 124, 1, - 196, 137, 124, 1, 202, 77, 69, 124, 1, 211, 73, 124, 1, 210, 240, 124, 1, - 211, 9, 124, 1, 193, 187, 124, 1, 193, 48, 124, 1, 193, 84, 124, 1, 193, - 110, 124, 1, 193, 14, 124, 1, 214, 200, 69, 124, 1, 214, 200, 74, 124, 1, - 214, 200, 70, 124, 1, 214, 200, 65, 124, 1, 209, 247, 251, 81, 124, 1, - 209, 247, 251, 98, 124, 1, 202, 77, 234, 61, 124, 1, 202, 77, 251, 81, - 124, 1, 202, 77, 211, 93, 124, 1, 121, 218, 147, 124, 251, 208, 45, 228, - 209, 205, 53, 124, 251, 208, 216, 68, 228, 209, 205, 53, 124, 251, 208, - 50, 228, 209, 205, 53, 124, 251, 208, 131, 81, 205, 53, 124, 251, 208, - 216, 68, 81, 205, 53, 124, 251, 208, 136, 81, 205, 53, 124, 251, 208, - 250, 120, 205, 53, 124, 251, 208, 250, 120, 219, 191, 205, 53, 124, 251, - 208, 250, 120, 199, 183, 124, 251, 208, 250, 120, 199, 210, 124, 251, - 208, 250, 120, 234, 227, 106, 124, 251, 208, 250, 120, 228, 44, 106, 124, - 251, 208, 250, 120, 199, 184, 106, 124, 251, 208, 136, 251, 250, 124, - 251, 208, 136, 198, 167, 251, 250, 124, 251, 208, 136, 230, 176, 124, - 251, 208, 136, 177, 230, 176, 124, 251, 208, 136, 236, 96, 124, 251, 208, - 136, 242, 218, 124, 251, 208, 136, 219, 88, 124, 251, 208, 136, 193, 136, - 124, 251, 208, 136, 195, 132, 124, 251, 208, 131, 251, 250, 124, 251, - 208, 131, 198, 167, 251, 250, 124, 251, 208, 131, 230, 176, 124, 251, - 208, 131, 177, 230, 176, 124, 251, 208, 131, 236, 96, 124, 251, 208, 131, - 242, 218, 124, 251, 208, 131, 219, 88, 124, 251, 208, 131, 193, 136, 124, - 251, 208, 131, 195, 132, 124, 251, 208, 131, 55, 124, 3, 186, 4, 238, - 170, 124, 199, 4, 1, 205, 29, 124, 54, 77, 124, 208, 145, 243, 30, 232, - 42, 201, 58, 203, 22, 232, 106, 1, 210, 248, 203, 22, 232, 106, 238, 237, - 210, 248, 203, 22, 232, 106, 143, 201, 73, 203, 22, 232, 106, 132, 201, - 73, 97, 33, 87, 230, 206, 213, 146, 206, 4, 220, 227, 211, 94, 219, 200, - 97, 33, 87, 213, 146, 206, 4, 220, 227, 211, 94, 219, 200, 97, 33, 87, - 197, 158, 211, 94, 219, 200, 97, 33, 87, 230, 206, 213, 146, 211, 94, - 219, 200, 97, 33, 87, 213, 146, 211, 94, 219, 200, 97, 33, 87, 201, 174, - 211, 94, 219, 200, 97, 33, 87, 217, 74, 208, 252, 211, 94, 219, 200, 97, - 33, 87, 208, 252, 211, 94, 219, 200, 97, 33, 87, 193, 228, 211, 94, 219, - 200, 97, 33, 87, 217, 74, 208, 252, 206, 4, 221, 157, 211, 94, 219, 200, - 97, 33, 87, 208, 252, 206, 4, 221, 157, 211, 94, 219, 200, 97, 33, 87, - 193, 228, 206, 4, 221, 157, 211, 94, 219, 200, 97, 33, 87, 230, 206, 213, - 146, 206, 4, 220, 227, 211, 94, 187, 97, 33, 87, 213, 146, 206, 4, 220, - 227, 211, 94, 187, 97, 33, 87, 197, 158, 211, 94, 187, 97, 33, 87, 230, - 206, 213, 146, 211, 94, 187, 97, 33, 87, 213, 146, 211, 94, 187, 97, 33, - 87, 201, 174, 211, 94, 187, 97, 33, 87, 217, 74, 208, 252, 211, 94, 187, - 97, 33, 87, 208, 252, 211, 94, 187, 97, 33, 87, 193, 228, 211, 94, 187, - 97, 33, 87, 217, 74, 208, 252, 206, 4, 221, 157, 211, 94, 187, 97, 33, - 87, 208, 252, 206, 4, 221, 157, 211, 94, 187, 97, 33, 87, 193, 228, 206, - 4, 221, 157, 211, 94, 187, 97, 33, 87, 197, 158, 206, 4, 220, 226, 97, - 33, 87, 217, 74, 208, 252, 206, 4, 220, 226, 97, 33, 87, 201, 44, 217, - 74, 208, 251, 97, 33, 87, 208, 252, 206, 4, 220, 226, 97, 33, 87, 208, - 252, 201, 43, 97, 33, 87, 193, 228, 206, 4, 220, 226, 97, 33, 87, 217, - 74, 208, 252, 201, 43, 97, 33, 87, 230, 206, 193, 227, 97, 33, 87, 191, - 83, 97, 33, 87, 211, 93, 97, 33, 87, 207, 119, 97, 33, 87, 198, 152, 97, - 33, 87, 248, 35, 97, 33, 87, 196, 152, 97, 33, 87, 209, 58, 97, 33, 87, - 218, 253, 97, 33, 87, 220, 176, 97, 33, 87, 222, 88, 97, 33, 87, 191, 74, - 97, 33, 87, 202, 100, 97, 33, 87, 207, 112, 97, 33, 87, 220, 229, 211, - 94, 219, 200, 97, 33, 198, 75, 207, 132, 87, 215, 146, 97, 33, 198, 75, - 207, 132, 87, 200, 149, 97, 33, 198, 75, 207, 132, 87, 197, 242, 97, 33, - 87, 191, 120, 97, 33, 87, 237, 60, 191, 120, 97, 33, 87, 211, 15, 97, 33, - 87, 209, 60, 97, 33, 87, 209, 61, 4, 81, 105, 97, 33, 87, 243, 86, 97, - 33, 87, 243, 87, 209, 38, 97, 33, 87, 211, 161, 97, 33, 87, 202, 5, 212, - 236, 97, 33, 87, 198, 84, 97, 33, 87, 235, 4, 97, 33, 250, 119, 81, 211, - 98, 97, 33, 87, 238, 116, 211, 98, 97, 33, 87, 220, 228, 97, 33, 110, - 198, 75, 207, 132, 223, 116, 97, 208, 196, 59, 219, 143, 97, 208, 196, - 59, 219, 142, 97, 208, 196, 59, 236, 188, 232, 155, 97, 208, 196, 59, - 220, 228, 97, 208, 196, 59, 206, 139, 97, 161, 220, 232, 97, 161, 220, - 233, 198, 151, 97, 161, 210, 112, 97, 161, 235, 12, 196, 9, 243, 65, 97, - 161, 221, 66, 97, 161, 191, 105, 97, 161, 201, 56, 97, 161, 201, 57, 206, - 4, 211, 151, 97, 161, 210, 1, 97, 161, 210, 2, 214, 82, 97, 161, 201, 57, - 4, 202, 5, 212, 236, 97, 161, 243, 64, 97, 161, 210, 176, 97, 161, 191, - 103, 97, 161, 230, 212, 248, 34, 97, 161, 230, 212, 198, 151, 97, 161, - 230, 212, 215, 144, 97, 161, 230, 212, 200, 148, 97, 161, 230, 212, 197, - 241, 97, 161, 194, 250, 208, 176, 97, 161, 194, 250, 215, 147, 97, 161, - 194, 250, 200, 150, 97, 161, 194, 250, 197, 243, 97, 161, 194, 250, 221, - 61, 208, 176, 97, 161, 194, 250, 221, 61, 215, 147, 97, 161, 194, 250, - 221, 61, 200, 150, 97, 161, 194, 250, 221, 61, 197, 243, 97, 161, 54, - 191, 103, 97, 161, 207, 13, 243, 64, 97, 161, 237, 46, 97, 161, 221, 182, - 97, 161, 243, 86, 97, 161, 209, 60, 97, 161, 202, 108, 215, 147, 97, 161, - 202, 108, 200, 150, 97, 161, 202, 108, 197, 243, 97, 161, 202, 108, 198, - 152, 97, 161, 237, 60, 221, 66, 97, 161, 202, 108, 221, 61, 200, 150, 97, - 161, 202, 108, 221, 65, 97, 161, 202, 108, 221, 61, 198, 152, 97, 161, - 202, 108, 235, 9, 208, 176, 97, 161, 202, 108, 235, 9, 200, 150, 97, 161, - 202, 108, 235, 9, 214, 82, 97, 161, 202, 108, 235, 9, 221, 60, 97, 161, - 202, 67, 97, 161, 202, 68, 206, 4, 191, 101, 97, 161, 202, 68, 191, 110, - 97, 161, 202, 68, 206, 4, 220, 226, 97, 161, 220, 228, 97, 161, 206, 139, - 97, 161, 232, 187, 97, 161, 221, 35, 97, 161, 191, 8, 97, 161, 201, 85, - 97, 161, 201, 86, 206, 4, 191, 101, 97, 161, 201, 86, 206, 4, 220, 226, - 97, 161, 201, 86, 206, 4, 191, 102, 228, 44, 220, 226, 97, 161, 201, 86, - 206, 4, 220, 227, 228, 44, 191, 101, 97, 161, 201, 86, 191, 111, 97, 161, - 201, 86, 191, 112, 206, 4, 191, 101, 97, 161, 201, 86, 206, 4, 206, 138, - 97, 161, 201, 86, 206, 4, 235, 3, 191, 100, 97, 161, 201, 86, 206, 4, - 191, 102, 228, 44, 209, 59, 97, 161, 209, 40, 97, 161, 201, 86, 214, 82, - 97, 161, 201, 35, 208, 176, 97, 161, 201, 35, 215, 145, 97, 161, 201, 35, - 220, 225, 97, 161, 201, 35, 209, 36, 97, 161, 201, 35, 208, 254, 97, 161, - 201, 35, 214, 82, 97, 161, 201, 35, 221, 63, 97, 161, 201, 35, 221, 65, - 97, 161, 201, 35, 198, 153, 208, 123, 97, 161, 201, 35, 235, 8, 97, 161, - 201, 35, 235, 7, 97, 161, 201, 35, 235, 5, 97, 161, 201, 35, 235, 9, 221, - 60, 97, 161, 201, 35, 235, 6, 221, 60, 97, 161, 201, 35, 230, 162, 4, - 202, 165, 191, 103, 97, 161, 201, 35, 230, 158, 4, 202, 165, 191, 103, - 97, 161, 201, 35, 230, 161, 97, 161, 201, 35, 230, 157, 97, 161, 201, 35, - 230, 158, 4, 54, 191, 103, 97, 161, 201, 35, 230, 159, 97, 161, 201, 35, - 230, 160, 208, 254, 97, 161, 216, 202, 97, 161, 216, 203, 208, 253, 97, - 161, 216, 203, 221, 59, 97, 161, 216, 203, 221, 62, 97, 161, 216, 203, - 221, 64, 97, 161, 201, 35, 197, 170, 97, 161, 201, 35, 197, 169, 97, 161, - 201, 35, 197, 168, 97, 161, 211, 21, 97, 161, 211, 22, 200, 150, 97, 161, - 211, 22, 197, 243, 97, 161, 211, 22, 220, 231, 200, 150, 97, 161, 211, - 22, 221, 61, 200, 150, 97, 161, 211, 22, 221, 61, 214, 82, 97, 161, 201, - 35, 220, 230, 97, 161, 201, 35, 220, 231, 208, 254, 97, 161, 201, 35, - 220, 231, 230, 162, 4, 202, 165, 191, 103, 97, 161, 201, 35, 220, 231, - 230, 158, 4, 202, 165, 191, 103, 97, 161, 201, 35, 220, 231, 230, 161, - 97, 161, 201, 35, 220, 231, 230, 157, 97, 161, 201, 35, 220, 231, 230, - 158, 4, 54, 191, 103, 97, 161, 201, 35, 220, 231, 230, 159, 97, 161, 201, - 35, 220, 231, 230, 160, 208, 254, 97, 161, 201, 35, 220, 231, 197, 171, - 97, 161, 220, 190, 97, 161, 211, 160, 97, 161, 235, 40, 97, 161, 214, 89, - 97, 161, 210, 69, 72, 37, 16, 208, 162, 72, 37, 16, 237, 172, 72, 37, 16, - 209, 251, 72, 37, 16, 210, 236, 234, 101, 72, 37, 16, 210, 236, 236, 193, - 72, 37, 16, 195, 169, 234, 101, 72, 37, 16, 195, 169, 236, 193, 72, 37, - 16, 222, 18, 72, 37, 16, 200, 56, 72, 37, 16, 210, 110, 72, 37, 16, 191, - 231, 72, 37, 16, 191, 232, 236, 193, 72, 37, 16, 220, 235, 72, 37, 16, - 251, 11, 234, 101, 72, 37, 16, 233, 169, 234, 101, 72, 37, 16, 199, 103, - 72, 37, 16, 221, 222, 72, 37, 16, 251, 0, 72, 37, 16, 251, 1, 236, 193, - 72, 37, 16, 200, 63, 72, 37, 16, 198, 239, 72, 37, 16, 211, 105, 250, - 218, 72, 37, 16, 230, 204, 250, 218, 72, 37, 16, 208, 161, 72, 37, 16, - 246, 200, 72, 37, 16, 195, 158, 72, 37, 16, 223, 30, 250, 218, 72, 37, - 16, 221, 224, 250, 218, 72, 37, 16, 221, 223, 250, 218, 72, 37, 16, 205, - 100, 72, 37, 16, 210, 100, 72, 37, 16, 201, 83, 251, 4, 72, 37, 16, 210, - 235, 250, 218, 72, 37, 16, 195, 168, 250, 218, 72, 37, 16, 251, 5, 250, - 218, 72, 37, 16, 250, 254, 72, 37, 16, 221, 68, 72, 37, 16, 207, 9, 72, - 37, 16, 209, 174, 250, 218, 72, 37, 16, 198, 137, 72, 37, 16, 251, 77, - 72, 37, 16, 205, 32, 72, 37, 16, 200, 67, 250, 218, 72, 37, 16, 200, 67, - 216, 147, 201, 81, 72, 37, 16, 210, 230, 250, 218, 72, 37, 16, 199, 22, - 72, 37, 16, 219, 178, 72, 37, 16, 234, 250, 72, 37, 16, 197, 239, 72, 37, - 16, 199, 71, 72, 37, 16, 220, 238, 72, 37, 16, 251, 11, 233, 169, 214, - 84, 72, 37, 16, 232, 50, 250, 218, 72, 37, 16, 223, 147, 72, 37, 16, 197, - 206, 250, 218, 72, 37, 16, 222, 21, 197, 205, 72, 37, 16, 210, 27, 72, - 37, 16, 208, 166, 72, 37, 16, 221, 18, 72, 37, 16, 243, 12, 250, 218, 72, - 37, 16, 207, 130, 72, 37, 16, 210, 114, 250, 218, 72, 37, 16, 210, 111, - 250, 218, 72, 37, 16, 227, 250, 72, 37, 16, 214, 211, 72, 37, 16, 209, - 229, 72, 37, 16, 221, 19, 251, 116, 72, 37, 16, 197, 206, 251, 116, 72, - 37, 16, 201, 50, 72, 37, 16, 230, 156, 72, 37, 16, 223, 30, 214, 84, 72, - 37, 16, 211, 105, 214, 84, 72, 37, 16, 210, 236, 214, 84, 72, 37, 16, - 209, 228, 72, 37, 16, 221, 2, 72, 37, 16, 209, 227, 72, 37, 16, 220, 237, - 72, 37, 16, 210, 28, 214, 84, 72, 37, 16, 221, 223, 214, 85, 251, 42, 72, - 37, 16, 221, 224, 214, 85, 251, 42, 72, 37, 16, 191, 229, 72, 37, 16, - 251, 1, 214, 84, 72, 37, 16, 251, 2, 200, 64, 214, 84, 72, 37, 16, 191, - 230, 72, 37, 16, 220, 236, 72, 37, 16, 234, 96, 72, 37, 16, 246, 201, 72, - 37, 16, 216, 39, 223, 29, 72, 37, 16, 195, 169, 214, 84, 72, 37, 16, 209, - 174, 214, 84, 72, 37, 16, 208, 167, 214, 84, 72, 37, 16, 211, 101, 72, - 37, 16, 251, 29, 72, 37, 16, 218, 158, 72, 37, 16, 210, 111, 214, 84, 72, - 37, 16, 210, 114, 214, 84, 72, 37, 16, 233, 207, 210, 113, 72, 37, 16, - 220, 123, 72, 37, 16, 251, 30, 72, 37, 16, 197, 206, 214, 84, 72, 37, 16, - 234, 99, 72, 37, 16, 200, 67, 214, 84, 72, 37, 16, 200, 57, 72, 37, 16, - 243, 12, 214, 84, 72, 37, 16, 234, 11, 72, 37, 16, 205, 33, 214, 84, 72, - 37, 16, 192, 199, 221, 68, 72, 37, 16, 197, 203, 72, 37, 16, 208, 168, - 72, 37, 16, 197, 207, 72, 37, 16, 197, 204, 72, 37, 16, 208, 165, 72, 37, - 16, 197, 202, 72, 37, 16, 208, 164, 72, 37, 16, 230, 203, 72, 37, 16, - 250, 210, 72, 37, 16, 233, 207, 250, 210, 72, 37, 16, 210, 230, 214, 84, - 72, 37, 16, 199, 21, 233, 220, 72, 37, 16, 199, 21, 233, 168, 72, 37, 16, - 199, 23, 251, 6, 72, 37, 16, 199, 15, 222, 76, 250, 253, 72, 37, 16, 222, - 20, 72, 37, 16, 234, 48, 72, 37, 16, 192, 38, 222, 17, 72, 37, 16, 192, - 38, 251, 42, 72, 37, 16, 201, 82, 72, 37, 16, 221, 69, 251, 42, 72, 37, - 16, 236, 194, 250, 218, 72, 37, 16, 220, 239, 250, 218, 72, 37, 16, 220, - 239, 251, 116, 72, 37, 16, 220, 239, 214, 84, 72, 37, 16, 251, 5, 214, - 84, 72, 37, 16, 251, 7, 72, 37, 16, 236, 193, 72, 37, 16, 197, 219, 72, - 37, 16, 199, 61, 72, 37, 16, 221, 6, 72, 37, 16, 219, 183, 234, 41, 243, - 2, 72, 37, 16, 219, 183, 234, 251, 243, 3, 72, 37, 16, 219, 183, 197, - 222, 243, 3, 72, 37, 16, 219, 183, 199, 73, 243, 3, 72, 37, 16, 219, 183, - 223, 142, 243, 2, 72, 37, 16, 230, 204, 214, 85, 251, 42, 72, 37, 16, - 230, 204, 210, 101, 250, 206, 72, 37, 16, 230, 204, 210, 101, 237, 28, - 72, 37, 16, 236, 218, 72, 37, 16, 236, 219, 210, 101, 250, 207, 222, 17, - 72, 37, 16, 236, 219, 210, 101, 250, 207, 251, 42, 72, 37, 16, 236, 219, - 210, 101, 237, 28, 72, 37, 16, 197, 228, 72, 37, 16, 250, 211, 72, 37, - 16, 223, 149, 72, 37, 16, 236, 241, 72, 37, 16, 251, 195, 209, 44, 250, - 212, 72, 37, 16, 251, 195, 250, 209, 72, 37, 16, 251, 195, 250, 212, 72, - 37, 16, 251, 195, 216, 141, 72, 37, 16, 251, 195, 216, 152, 72, 37, 16, - 251, 195, 230, 205, 72, 37, 16, 251, 195, 230, 202, 72, 37, 16, 251, 195, - 209, 44, 230, 205, 72, 37, 16, 217, 26, 208, 174, 227, 248, 72, 37, 16, - 217, 26, 251, 118, 208, 174, 227, 248, 72, 37, 16, 217, 26, 237, 27, 227, - 248, 72, 37, 16, 217, 26, 251, 118, 237, 27, 227, 248, 72, 37, 16, 217, - 26, 197, 214, 227, 248, 72, 37, 16, 217, 26, 197, 229, 72, 37, 16, 217, - 26, 199, 66, 227, 248, 72, 37, 16, 217, 26, 199, 66, 219, 187, 227, 248, - 72, 37, 16, 217, 26, 219, 187, 227, 248, 72, 37, 16, 217, 26, 209, 97, - 227, 248, 72, 37, 16, 223, 38, 199, 96, 227, 249, 72, 37, 16, 251, 2, - 199, 96, 227, 249, 72, 37, 16, 233, 38, 199, 63, 72, 37, 16, 233, 38, - 215, 205, 72, 37, 16, 233, 38, 236, 224, 72, 37, 16, 217, 26, 195, 162, - 227, 248, 72, 37, 16, 217, 26, 208, 173, 227, 248, 72, 37, 16, 217, 26, - 209, 97, 199, 66, 227, 248, 72, 37, 16, 230, 199, 215, 48, 251, 6, 72, - 37, 16, 230, 199, 215, 48, 236, 192, 72, 37, 16, 234, 59, 222, 76, 232, - 50, 195, 0, 72, 37, 16, 223, 148, 72, 37, 16, 223, 146, 72, 37, 16, 232, - 50, 250, 219, 237, 26, 227, 247, 72, 37, 16, 232, 50, 236, 239, 168, 72, - 37, 16, 232, 50, 236, 239, 214, 211, 72, 37, 16, 232, 50, 214, 205, 227, - 248, 72, 37, 16, 232, 50, 236, 239, 236, 255, 72, 37, 16, 232, 50, 202, - 101, 236, 238, 236, 255, 72, 37, 16, 232, 50, 236, 239, 221, 253, 72, 37, - 16, 232, 50, 236, 239, 191, 7, 72, 37, 16, 232, 50, 236, 239, 213, 206, - 222, 17, 72, 37, 16, 232, 50, 236, 239, 213, 206, 251, 42, 72, 37, 16, - 232, 50, 217, 78, 243, 4, 236, 224, 72, 37, 16, 232, 50, 217, 78, 243, 4, - 215, 205, 72, 37, 16, 232, 239, 202, 101, 243, 4, 195, 161, 72, 37, 16, - 232, 50, 202, 101, 243, 4, 200, 68, 72, 37, 16, 232, 50, 214, 87, 72, 37, - 16, 243, 5, 190, 230, 72, 37, 16, 243, 5, 221, 67, 72, 37, 16, 243, 5, - 201, 233, 72, 37, 16, 232, 50, 228, 44, 192, 37, 199, 67, 72, 37, 16, - 232, 50, 234, 60, 251, 31, 72, 37, 16, 192, 37, 197, 215, 72, 37, 16, - 236, 232, 197, 215, 72, 37, 16, 236, 232, 199, 67, 72, 37, 16, 236, 232, - 251, 8, 234, 251, 236, 121, 72, 37, 16, 236, 232, 215, 203, 199, 72, 236, - 121, 72, 37, 16, 236, 232, 236, 215, 233, 181, 236, 121, 72, 37, 16, 236, - 232, 197, 226, 211, 111, 236, 121, 72, 37, 16, 192, 37, 251, 8, 234, 251, - 236, 121, 72, 37, 16, 192, 37, 215, 203, 199, 72, 236, 121, 72, 37, 16, - 192, 37, 236, 215, 233, 181, 236, 121, 72, 37, 16, 192, 37, 197, 226, - 211, 111, 236, 121, 72, 37, 16, 231, 110, 236, 231, 72, 37, 16, 231, 110, - 192, 36, 72, 37, 16, 236, 240, 251, 8, 216, 40, 72, 37, 16, 236, 240, - 251, 8, 216, 183, 72, 37, 16, 236, 240, 236, 193, 72, 37, 16, 236, 240, - 199, 13, 72, 37, 16, 202, 176, 199, 13, 72, 37, 16, 202, 176, 199, 14, - 236, 176, 72, 37, 16, 202, 176, 199, 14, 197, 216, 72, 37, 16, 202, 176, - 199, 14, 199, 59, 72, 37, 16, 202, 176, 250, 178, 72, 37, 16, 202, 176, - 250, 179, 236, 176, 72, 37, 16, 202, 176, 250, 179, 197, 216, 72, 37, 16, - 202, 176, 250, 179, 199, 59, 72, 37, 16, 236, 216, 231, 91, 72, 37, 16, - 236, 223, 211, 9, 72, 37, 16, 201, 68, 72, 37, 16, 250, 203, 168, 72, 37, - 16, 250, 203, 195, 0, 72, 37, 16, 250, 203, 231, 203, 72, 37, 16, 250, - 203, 236, 255, 72, 37, 16, 250, 203, 221, 253, 72, 37, 16, 250, 203, 191, - 7, 72, 37, 16, 250, 203, 213, 205, 72, 37, 16, 221, 223, 214, 85, 216, - 151, 72, 37, 16, 221, 224, 214, 85, 216, 151, 72, 37, 16, 221, 223, 214, - 85, 222, 17, 72, 37, 16, 221, 224, 214, 85, 222, 17, 72, 37, 16, 221, 69, - 222, 17, 72, 37, 16, 230, 204, 214, 85, 222, 17, 37, 16, 202, 165, 249, - 33, 37, 16, 54, 249, 33, 37, 16, 52, 249, 33, 37, 16, 207, 14, 52, 249, - 33, 37, 16, 237, 169, 249, 33, 37, 16, 203, 35, 249, 33, 37, 16, 45, 207, - 44, 57, 37, 16, 50, 207, 44, 57, 37, 16, 207, 44, 236, 94, 37, 16, 237, - 213, 205, 36, 37, 16, 237, 242, 247, 60, 37, 16, 205, 36, 37, 16, 242, - 44, 37, 16, 207, 42, 232, 226, 37, 16, 207, 42, 232, 225, 37, 16, 207, - 42, 232, 224, 37, 16, 232, 249, 37, 16, 232, 250, 60, 37, 16, 247, 247, - 77, 37, 16, 247, 102, 37, 16, 248, 7, 37, 16, 248, 5, 37, 16, 211, 88, - 201, 106, 37, 16, 197, 8, 201, 106, 37, 16, 198, 215, 201, 106, 37, 16, - 232, 89, 201, 106, 37, 16, 232, 184, 201, 106, 37, 16, 202, 130, 201, - 106, 37, 16, 202, 128, 232, 67, 37, 16, 232, 87, 232, 67, 37, 16, 232, - 15, 242, 187, 37, 16, 232, 15, 242, 188, 211, 13, 251, 107, 37, 16, 232, - 15, 242, 188, 211, 13, 249, 16, 37, 16, 247, 146, 242, 187, 37, 16, 233, - 135, 242, 187, 37, 16, 233, 135, 242, 188, 211, 13, 251, 107, 37, 16, - 233, 135, 242, 188, 211, 13, 249, 16, 37, 16, 235, 51, 242, 186, 37, 16, - 235, 51, 242, 185, 37, 16, 215, 114, 216, 209, 207, 25, 37, 16, 54, 203, - 121, 37, 16, 54, 232, 166, 37, 16, 232, 167, 196, 73, 37, 16, 232, 167, - 235, 79, 37, 16, 214, 192, 196, 73, 37, 16, 214, 192, 235, 79, 37, 16, - 203, 122, 196, 73, 37, 16, 203, 122, 235, 79, 37, 16, 208, 18, 163, 203, - 121, 37, 16, 208, 18, 163, 232, 166, 37, 16, 242, 23, 198, 141, 37, 16, - 238, 108, 198, 141, 37, 16, 211, 13, 251, 107, 37, 16, 211, 13, 249, 16, - 37, 16, 207, 254, 251, 107, 37, 16, 207, 254, 249, 16, 37, 16, 215, 117, - 207, 25, 37, 16, 193, 85, 207, 25, 37, 16, 134, 207, 25, 37, 16, 208, 18, - 207, 25, 37, 16, 234, 117, 207, 25, 37, 16, 202, 124, 207, 25, 37, 16, - 198, 241, 207, 25, 37, 16, 202, 114, 207, 25, 37, 16, 91, 228, 110, 197, - 26, 207, 25, 37, 16, 192, 236, 212, 245, 37, 16, 107, 212, 245, 37, 16, - 242, 219, 192, 236, 212, 245, 37, 16, 51, 212, 246, 193, 87, 37, 16, 51, - 212, 246, 248, 91, 37, 16, 197, 238, 212, 246, 132, 193, 87, 37, 16, 197, - 238, 212, 246, 132, 248, 91, 37, 16, 197, 238, 212, 246, 45, 193, 87, 37, - 16, 197, 238, 212, 246, 45, 248, 91, 37, 16, 197, 238, 212, 246, 50, 193, - 87, 37, 16, 197, 238, 212, 246, 50, 248, 91, 37, 16, 197, 238, 212, 246, - 143, 193, 87, 37, 16, 197, 238, 212, 246, 143, 248, 91, 37, 16, 197, 238, - 212, 246, 132, 50, 193, 87, 37, 16, 197, 238, 212, 246, 132, 50, 248, 91, - 37, 16, 215, 189, 212, 246, 193, 87, 37, 16, 215, 189, 212, 246, 248, 91, - 37, 16, 197, 235, 212, 246, 143, 193, 87, 37, 16, 197, 235, 212, 246, - 143, 248, 91, 37, 16, 210, 104, 212, 245, 37, 16, 195, 14, 212, 245, 37, - 16, 212, 246, 248, 91, 37, 16, 212, 126, 212, 245, 37, 16, 242, 155, 212, - 246, 193, 87, 37, 16, 242, 155, 212, 246, 248, 91, 37, 16, 247, 244, 37, - 16, 193, 85, 212, 249, 37, 16, 134, 212, 249, 37, 16, 208, 18, 212, 249, - 37, 16, 234, 117, 212, 249, 37, 16, 202, 124, 212, 249, 37, 16, 198, 241, - 212, 249, 37, 16, 202, 114, 212, 249, 37, 16, 91, 228, 110, 197, 26, 212, - 249, 37, 16, 33, 201, 75, 37, 16, 33, 201, 192, 201, 75, 37, 16, 33, 197, - 249, 37, 16, 33, 197, 248, 37, 16, 33, 197, 247, 37, 16, 232, 209, 197, - 249, 37, 16, 232, 209, 197, 248, 37, 16, 232, 209, 197, 247, 37, 16, 33, - 250, 110, 236, 96, 37, 16, 33, 232, 176, 37, 16, 33, 232, 175, 37, 16, - 33, 232, 174, 37, 16, 33, 232, 173, 37, 16, 33, 232, 172, 37, 16, 248, - 199, 248, 220, 37, 16, 234, 53, 248, 220, 37, 16, 248, 199, 198, 173, 37, - 16, 234, 53, 198, 173, 37, 16, 248, 199, 202, 66, 37, 16, 234, 53, 202, - 66, 37, 16, 248, 199, 209, 183, 37, 16, 234, 53, 209, 183, 37, 16, 33, - 252, 8, 37, 16, 33, 201, 110, 37, 16, 33, 199, 78, 37, 16, 33, 201, 111, - 37, 16, 33, 217, 41, 37, 16, 33, 217, 40, 37, 16, 33, 252, 7, 37, 16, 33, - 218, 221, 37, 16, 250, 191, 196, 73, 37, 16, 250, 191, 235, 79, 37, 16, - 33, 236, 113, 37, 16, 33, 206, 179, 37, 16, 33, 232, 155, 37, 16, 33, - 202, 62, 37, 16, 33, 248, 177, 37, 16, 33, 54, 198, 56, 37, 16, 33, 197, - 221, 198, 56, 37, 16, 206, 185, 37, 16, 200, 236, 37, 16, 191, 166, 37, - 16, 209, 175, 37, 16, 216, 132, 37, 16, 232, 101, 37, 16, 238, 182, 37, - 16, 237, 87, 37, 16, 230, 194, 212, 250, 202, 92, 37, 16, 230, 194, 212, - 250, 213, 31, 202, 92, 37, 16, 198, 23, 37, 16, 197, 54, 37, 16, 223, 65, - 197, 54, 37, 16, 197, 55, 202, 92, 37, 16, 197, 55, 196, 73, 37, 16, 211, - 33, 201, 22, 37, 16, 211, 33, 201, 19, 37, 16, 211, 33, 201, 18, 37, 16, - 211, 33, 201, 17, 37, 16, 211, 33, 201, 16, 37, 16, 211, 33, 201, 15, 37, - 16, 211, 33, 201, 14, 37, 16, 211, 33, 201, 13, 37, 16, 211, 33, 201, 12, - 37, 16, 211, 33, 201, 21, 37, 16, 211, 33, 201, 20, 37, 16, 229, 224, 37, - 16, 214, 99, 37, 16, 234, 53, 80, 201, 64, 37, 16, 237, 80, 202, 92, 37, - 16, 33, 143, 248, 21, 37, 16, 33, 132, 248, 21, 37, 16, 33, 229, 237, 37, - 16, 33, 202, 52, 209, 103, 37, 16, 210, 45, 77, 37, 16, 210, 45, 132, 77, - 37, 16, 134, 210, 45, 77, 37, 16, 230, 233, 196, 73, 37, 16, 230, 233, - 235, 79, 37, 16, 4, 232, 208, 37, 16, 237, 196, 37, 16, 237, 197, 251, - 123, 37, 16, 217, 4, 37, 16, 218, 242, 37, 16, 247, 241, 37, 16, 204, 24, - 193, 87, 37, 16, 204, 24, 248, 91, 37, 16, 216, 22, 37, 16, 216, 23, 248, - 91, 37, 16, 204, 18, 193, 87, 37, 16, 204, 18, 248, 91, 37, 16, 232, 33, - 193, 87, 37, 16, 232, 33, 248, 91, 37, 16, 218, 243, 210, 0, 207, 25, 37, - 16, 218, 243, 223, 139, 207, 25, 37, 16, 247, 242, 207, 25, 37, 16, 204, - 24, 207, 25, 37, 16, 216, 23, 207, 25, 37, 16, 204, 18, 207, 25, 37, 16, - 199, 92, 209, 254, 238, 139, 208, 185, 209, 255, 37, 16, 199, 92, 209, - 254, 238, 139, 208, 185, 223, 138, 37, 16, 199, 92, 209, 254, 238, 139, - 208, 185, 210, 0, 236, 203, 37, 16, 199, 92, 223, 137, 238, 139, 208, - 185, 209, 255, 37, 16, 199, 92, 223, 137, 238, 139, 208, 185, 223, 138, - 37, 16, 199, 92, 223, 137, 238, 139, 208, 185, 223, 139, 236, 203, 37, - 16, 199, 92, 223, 137, 238, 139, 208, 185, 223, 139, 236, 202, 37, 16, - 199, 92, 223, 137, 238, 139, 208, 185, 223, 139, 236, 201, 37, 16, 238, - 173, 37, 16, 230, 165, 247, 146, 242, 187, 37, 16, 230, 165, 233, 135, - 242, 187, 37, 16, 51, 250, 70, 37, 16, 195, 36, 37, 16, 209, 62, 37, 16, - 242, 176, 37, 16, 205, 90, 37, 16, 242, 181, 37, 16, 198, 42, 37, 16, - 209, 21, 37, 16, 209, 22, 232, 158, 37, 16, 205, 91, 232, 158, 37, 16, - 198, 43, 207, 22, 37, 16, 209, 237, 200, 226, 37, 16, 221, 124, 247, 146, - 242, 187, 37, 16, 221, 124, 234, 53, 80, 209, 166, 37, 16, 221, 124, 52, - 212, 249, 37, 16, 221, 124, 207, 94, 77, 37, 16, 221, 124, 193, 85, 212, - 249, 37, 16, 221, 124, 134, 212, 249, 37, 16, 221, 124, 208, 18, 212, - 250, 201, 76, 235, 79, 37, 16, 221, 124, 208, 18, 212, 250, 201, 76, 196, - 73, 37, 16, 221, 124, 234, 117, 212, 250, 201, 76, 235, 79, 37, 16, 221, - 124, 234, 117, 212, 250, 201, 76, 196, 73, 37, 16, 221, 124, 232, 167, - 57, 37, 16, 202, 6, 37, 16, 221, 7, 35, 195, 20, 212, 253, 200, 119, 35, - 195, 20, 212, 253, 200, 108, 35, 195, 20, 212, 253, 200, 98, 35, 195, 20, - 212, 253, 200, 91, 35, 195, 20, 212, 253, 200, 83, 35, 195, 20, 212, 253, - 200, 77, 35, 195, 20, 212, 253, 200, 76, 35, 195, 20, 212, 253, 200, 75, - 35, 195, 20, 212, 253, 200, 74, 35, 195, 20, 212, 253, 200, 118, 35, 195, - 20, 212, 253, 200, 117, 35, 195, 20, 212, 253, 200, 116, 35, 195, 20, - 212, 253, 200, 115, 35, 195, 20, 212, 253, 200, 114, 35, 195, 20, 212, - 253, 200, 113, 35, 195, 20, 212, 253, 200, 112, 35, 195, 20, 212, 253, - 200, 111, 35, 195, 20, 212, 253, 200, 110, 35, 195, 20, 212, 253, 200, - 109, 35, 195, 20, 212, 253, 200, 107, 35, 195, 20, 212, 253, 200, 106, - 35, 195, 20, 212, 253, 200, 105, 35, 195, 20, 212, 253, 200, 104, 35, - 195, 20, 212, 253, 200, 103, 35, 195, 20, 212, 253, 200, 82, 35, 195, 20, - 212, 253, 200, 81, 35, 195, 20, 212, 253, 200, 80, 35, 195, 20, 212, 253, - 200, 79, 35, 195, 20, 212, 253, 200, 78, 35, 223, 88, 212, 253, 200, 119, - 35, 223, 88, 212, 253, 200, 108, 35, 223, 88, 212, 253, 200, 91, 35, 223, - 88, 212, 253, 200, 83, 35, 223, 88, 212, 253, 200, 76, 35, 223, 88, 212, - 253, 200, 75, 35, 223, 88, 212, 253, 200, 117, 35, 223, 88, 212, 253, - 200, 116, 35, 223, 88, 212, 253, 200, 115, 35, 223, 88, 212, 253, 200, - 114, 35, 223, 88, 212, 253, 200, 111, 35, 223, 88, 212, 253, 200, 110, - 35, 223, 88, 212, 253, 200, 109, 35, 223, 88, 212, 253, 200, 104, 35, - 223, 88, 212, 253, 200, 103, 35, 223, 88, 212, 253, 200, 102, 35, 223, - 88, 212, 253, 200, 101, 35, 223, 88, 212, 253, 200, 100, 35, 223, 88, - 212, 253, 200, 99, 35, 223, 88, 212, 253, 200, 97, 35, 223, 88, 212, 253, - 200, 96, 35, 223, 88, 212, 253, 200, 95, 35, 223, 88, 212, 253, 200, 94, - 35, 223, 88, 212, 253, 200, 93, 35, 223, 88, 212, 253, 200, 92, 35, 223, - 88, 212, 253, 200, 90, 35, 223, 88, 212, 253, 200, 89, 35, 223, 88, 212, - 253, 200, 88, 35, 223, 88, 212, 253, 200, 87, 35, 223, 88, 212, 253, 200, - 86, 35, 223, 88, 212, 253, 200, 85, 35, 223, 88, 212, 253, 200, 84, 35, - 223, 88, 212, 253, 200, 82, 35, 223, 88, 212, 253, 200, 81, 35, 223, 88, - 212, 253, 200, 80, 35, 223, 88, 212, 253, 200, 79, 35, 223, 88, 212, 253, - 200, 78, 33, 35, 37, 197, 217, 33, 35, 37, 199, 60, 33, 35, 37, 210, 13, - 35, 37, 219, 182, 217, 1, 212, 121, 191, 77, 217, 1, 212, 121, 108, 217, - 1, 212, 121, 109, 217, 1, 212, 121, 139, 217, 1, 212, 121, 137, 217, 1, - 212, 121, 153, 217, 1, 212, 121, 173, 217, 1, 212, 121, 181, 217, 1, 212, - 121, 176, 217, 1, 212, 121, 184, 217, 1, 212, 121, 199, 90, 217, 1, 212, - 121, 234, 84, 217, 1, 212, 121, 197, 33, 217, 1, 212, 121, 198, 246, 217, - 1, 212, 121, 232, 84, 217, 1, 212, 121, 232, 234, 217, 1, 212, 121, 202, - 125, 217, 1, 212, 121, 203, 239, 217, 1, 212, 121, 234, 118, 217, 1, 212, - 121, 213, 158, 215, 204, 39, 234, 163, 236, 217, 39, 229, 186, 234, 163, - 236, 217, 39, 228, 114, 234, 163, 236, 217, 39, 234, 162, 229, 187, 236, - 217, 39, 234, 162, 228, 113, 236, 217, 39, 234, 163, 199, 62, 39, 246, - 229, 199, 62, 39, 232, 42, 242, 218, 199, 62, 39, 216, 13, 199, 62, 39, - 249, 28, 199, 62, 39, 221, 241, 202, 65, 199, 62, 39, 238, 232, 199, 62, - 39, 250, 162, 199, 62, 39, 211, 51, 199, 62, 39, 247, 253, 211, 4, 199, - 62, 39, 237, 82, 211, 46, 236, 168, 199, 62, 39, 236, 165, 199, 62, 39, - 191, 237, 199, 62, 39, 223, 125, 199, 62, 39, 210, 23, 199, 62, 39, 207, - 103, 199, 62, 39, 238, 244, 199, 62, 39, 228, 230, 249, 96, 199, 62, 39, - 193, 168, 199, 62, 39, 232, 130, 199, 62, 39, 251, 232, 199, 62, 39, 207, - 57, 199, 62, 39, 207, 29, 199, 62, 39, 234, 161, 199, 62, 39, 222, 158, - 199, 62, 39, 238, 239, 199, 62, 39, 234, 51, 199, 62, 39, 235, 15, 199, - 62, 39, 246, 196, 199, 62, 39, 237, 92, 199, 62, 39, 28, 207, 28, 199, - 62, 39, 210, 201, 199, 62, 39, 219, 186, 199, 62, 39, 242, 169, 199, 62, - 39, 221, 112, 199, 62, 39, 231, 152, 199, 62, 39, 201, 34, 199, 62, 39, - 208, 133, 199, 62, 39, 232, 41, 199, 62, 39, 207, 30, 199, 62, 39, 219, - 227, 211, 46, 215, 241, 199, 62, 39, 207, 26, 199, 62, 39, 230, 216, 118, - 216, 187, 199, 62, 39, 234, 54, 199, 62, 39, 201, 51, 199, 62, 39, 230, - 168, 199, 62, 39, 234, 44, 199, 62, 39, 210, 73, 199, 62, 39, 206, 172, - 199, 62, 39, 232, 156, 199, 62, 39, 195, 160, 211, 46, 193, 145, 199, 62, - 39, 238, 249, 199, 62, 39, 216, 208, 199, 62, 39, 233, 208, 199, 62, 39, - 196, 84, 199, 62, 39, 236, 204, 199, 62, 39, 242, 171, 215, 163, 199, 62, - 39, 230, 138, 199, 62, 39, 231, 153, 223, 134, 199, 62, 39, 217, 13, 199, - 62, 39, 252, 2, 199, 62, 39, 234, 70, 199, 62, 39, 235, 83, 199, 62, 39, - 193, 143, 199, 62, 39, 202, 160, 199, 62, 39, 223, 98, 199, 62, 39, 237, - 48, 199, 62, 39, 237, 174, 199, 62, 39, 236, 200, 199, 62, 39, 233, 172, - 199, 62, 39, 203, 235, 199, 62, 39, 201, 55, 199, 62, 39, 229, 239, 199, - 62, 39, 242, 18, 199, 62, 39, 242, 166, 199, 62, 39, 233, 47, 199, 62, - 39, 251, 196, 199, 62, 39, 242, 17, 199, 62, 39, 211, 94, 199, 29, 195, - 135, 199, 62, 39, 236, 226, 199, 62, 39, 220, 89, 199, 62, 39, 232, 93, - 238, 197, 206, 140, 196, 87, 17, 108, 238, 197, 206, 140, 196, 87, 17, - 109, 238, 197, 206, 140, 196, 87, 17, 139, 238, 197, 206, 140, 196, 87, - 17, 137, 238, 197, 206, 140, 196, 87, 17, 153, 238, 197, 206, 140, 196, - 87, 17, 173, 238, 197, 206, 140, 196, 87, 17, 181, 238, 197, 206, 140, - 196, 87, 17, 176, 238, 197, 206, 140, 196, 87, 17, 184, 238, 197, 206, - 140, 199, 86, 17, 108, 238, 197, 206, 140, 199, 86, 17, 109, 238, 197, - 206, 140, 199, 86, 17, 139, 238, 197, 206, 140, 199, 86, 17, 137, 238, - 197, 206, 140, 199, 86, 17, 153, 238, 197, 206, 140, 199, 86, 17, 173, - 238, 197, 206, 140, 199, 86, 17, 181, 238, 197, 206, 140, 199, 86, 17, - 176, 238, 197, 206, 140, 199, 86, 17, 184, 154, 199, 193, 87, 108, 154, - 199, 193, 87, 109, 154, 199, 193, 87, 139, 154, 199, 193, 87, 137, 154, - 199, 193, 87, 153, 199, 193, 87, 108, 199, 193, 87, 153, 13, 28, 6, 65, - 13, 28, 6, 250, 70, 13, 28, 6, 247, 145, 13, 28, 6, 238, 80, 13, 28, 6, - 73, 13, 28, 6, 233, 134, 13, 28, 6, 232, 14, 13, 28, 6, 230, 83, 13, 28, - 6, 70, 13, 28, 6, 223, 7, 13, 28, 6, 222, 125, 13, 28, 6, 170, 13, 28, 6, - 218, 147, 13, 28, 6, 215, 47, 13, 28, 6, 74, 13, 28, 6, 210, 226, 13, 28, - 6, 208, 97, 13, 28, 6, 148, 13, 28, 6, 206, 3, 13, 28, 6, 200, 39, 13, - 28, 6, 69, 13, 28, 6, 196, 8, 13, 28, 6, 193, 221, 13, 28, 6, 192, 235, - 13, 28, 6, 192, 159, 13, 28, 6, 191, 166, 13, 28, 2, 65, 13, 28, 2, 250, - 70, 13, 28, 2, 247, 145, 13, 28, 2, 238, 80, 13, 28, 2, 73, 13, 28, 2, - 233, 134, 13, 28, 2, 232, 14, 13, 28, 2, 230, 83, 13, 28, 2, 70, 13, 28, - 2, 223, 7, 13, 28, 2, 222, 125, 13, 28, 2, 170, 13, 28, 2, 218, 147, 13, - 28, 2, 215, 47, 13, 28, 2, 74, 13, 28, 2, 210, 226, 13, 28, 2, 208, 97, - 13, 28, 2, 148, 13, 28, 2, 206, 3, 13, 28, 2, 200, 39, 13, 28, 2, 69, 13, - 28, 2, 196, 8, 13, 28, 2, 193, 221, 13, 28, 2, 192, 235, 13, 28, 2, 192, - 159, 13, 28, 2, 191, 166, 13, 43, 6, 65, 13, 43, 6, 250, 70, 13, 43, 6, - 247, 145, 13, 43, 6, 238, 80, 13, 43, 6, 73, 13, 43, 6, 233, 134, 13, 43, - 6, 232, 14, 13, 43, 6, 230, 83, 13, 43, 6, 70, 13, 43, 6, 223, 7, 13, 43, - 6, 222, 125, 13, 43, 6, 170, 13, 43, 6, 218, 147, 13, 43, 6, 215, 47, 13, - 43, 6, 74, 13, 43, 6, 210, 226, 13, 43, 6, 208, 97, 13, 43, 6, 148, 13, - 43, 6, 206, 3, 13, 43, 6, 200, 39, 13, 43, 6, 69, 13, 43, 6, 196, 8, 13, - 43, 6, 193, 221, 13, 43, 6, 192, 235, 13, 43, 6, 192, 159, 13, 43, 6, - 191, 166, 13, 43, 2, 65, 13, 43, 2, 250, 70, 13, 43, 2, 247, 145, 13, 43, - 2, 238, 80, 13, 43, 2, 73, 13, 43, 2, 233, 134, 13, 43, 2, 232, 14, 13, - 43, 2, 70, 13, 43, 2, 223, 7, 13, 43, 2, 222, 125, 13, 43, 2, 170, 13, - 43, 2, 218, 147, 13, 43, 2, 215, 47, 13, 43, 2, 74, 13, 43, 2, 210, 226, - 13, 43, 2, 208, 97, 13, 43, 2, 148, 13, 43, 2, 206, 3, 13, 43, 2, 200, - 39, 13, 43, 2, 69, 13, 43, 2, 196, 8, 13, 43, 2, 193, 221, 13, 43, 2, - 192, 235, 13, 43, 2, 192, 159, 13, 43, 2, 191, 166, 13, 28, 43, 6, 65, - 13, 28, 43, 6, 250, 70, 13, 28, 43, 6, 247, 145, 13, 28, 43, 6, 238, 80, - 13, 28, 43, 6, 73, 13, 28, 43, 6, 233, 134, 13, 28, 43, 6, 232, 14, 13, - 28, 43, 6, 230, 83, 13, 28, 43, 6, 70, 13, 28, 43, 6, 223, 7, 13, 28, 43, - 6, 222, 125, 13, 28, 43, 6, 170, 13, 28, 43, 6, 218, 147, 13, 28, 43, 6, - 215, 47, 13, 28, 43, 6, 74, 13, 28, 43, 6, 210, 226, 13, 28, 43, 6, 208, - 97, 13, 28, 43, 6, 148, 13, 28, 43, 6, 206, 3, 13, 28, 43, 6, 200, 39, - 13, 28, 43, 6, 69, 13, 28, 43, 6, 196, 8, 13, 28, 43, 6, 193, 221, 13, + 64, 41, 2, 27, 246, 238, 41, 2, 27, 246, 237, 41, 2, 27, 246, 236, 41, 2, + 27, 246, 235, 41, 2, 27, 246, 234, 41, 2, 27, 246, 233, 41, 2, 27, 246, + 232, 41, 2, 27, 246, 231, 41, 2, 27, 246, 230, 41, 2, 27, 246, 229, 41, + 2, 27, 246, 228, 41, 2, 27, 246, 227, 41, 2, 27, 246, 226, 41, 2, 27, + 246, 225, 41, 2, 27, 246, 224, 41, 2, 27, 246, 223, 41, 2, 27, 246, 222, + 41, 2, 27, 246, 221, 41, 2, 27, 246, 220, 41, 2, 27, 246, 219, 41, 2, 27, + 246, 218, 41, 2, 27, 246, 217, 41, 2, 27, 246, 216, 41, 2, 27, 246, 215, + 41, 2, 27, 246, 214, 41, 2, 27, 246, 213, 41, 2, 27, 246, 212, 41, 2, 27, + 246, 211, 41, 2, 27, 246, 210, 41, 2, 27, 246, 209, 41, 2, 27, 246, 208, + 41, 2, 27, 246, 207, 41, 2, 27, 246, 206, 41, 2, 27, 246, 205, 41, 2, 27, + 246, 204, 41, 2, 27, 246, 203, 41, 2, 27, 246, 202, 41, 2, 27, 246, 201, + 41, 2, 27, 246, 200, 41, 2, 27, 246, 199, 41, 2, 27, 246, 198, 41, 2, 27, + 246, 197, 41, 2, 27, 246, 196, 41, 2, 27, 246, 195, 41, 2, 27, 246, 194, + 41, 2, 27, 246, 193, 41, 2, 27, 246, 192, 41, 2, 27, 246, 191, 41, 2, 27, + 246, 190, 41, 2, 27, 246, 189, 41, 2, 27, 246, 188, 41, 2, 27, 246, 187, + 41, 2, 27, 246, 186, 41, 2, 27, 246, 185, 41, 2, 27, 246, 184, 41, 2, 27, + 246, 183, 41, 2, 27, 246, 182, 41, 2, 27, 246, 181, 41, 2, 27, 246, 180, + 41, 2, 27, 246, 179, 41, 2, 27, 246, 178, 41, 2, 27, 246, 177, 41, 2, 27, + 246, 176, 41, 2, 27, 246, 175, 41, 2, 27, 246, 174, 41, 2, 27, 246, 173, + 41, 2, 27, 246, 172, 41, 2, 27, 246, 171, 41, 2, 27, 246, 170, 41, 2, 27, + 246, 169, 41, 2, 27, 246, 168, 41, 2, 27, 246, 167, 41, 2, 27, 246, 166, + 41, 2, 27, 246, 165, 41, 2, 27, 246, 164, 41, 2, 27, 246, 163, 41, 2, 27, + 246, 162, 41, 2, 27, 246, 161, 41, 2, 27, 246, 160, 41, 2, 27, 246, 159, + 41, 2, 27, 246, 158, 41, 2, 27, 246, 157, 41, 2, 27, 246, 156, 41, 2, 27, + 246, 155, 41, 2, 27, 246, 154, 41, 2, 27, 246, 153, 41, 2, 27, 246, 152, + 41, 2, 27, 246, 151, 41, 2, 27, 246, 150, 41, 2, 27, 246, 149, 41, 2, 27, + 246, 148, 41, 2, 27, 246, 147, 41, 2, 27, 246, 146, 41, 2, 27, 246, 145, + 41, 2, 27, 246, 144, 41, 2, 27, 246, 143, 41, 2, 27, 246, 142, 41, 2, 27, + 246, 141, 41, 2, 27, 246, 140, 41, 2, 27, 246, 139, 41, 2, 27, 246, 138, + 41, 2, 27, 246, 137, 41, 2, 27, 246, 136, 41, 2, 27, 246, 135, 41, 2, 27, + 246, 134, 41, 2, 27, 246, 133, 41, 2, 27, 246, 132, 41, 2, 27, 246, 131, + 41, 2, 27, 246, 130, 41, 2, 27, 246, 129, 41, 2, 27, 246, 128, 41, 2, 27, + 246, 127, 41, 2, 27, 246, 126, 41, 2, 27, 246, 125, 41, 2, 27, 246, 124, + 41, 2, 27, 246, 123, 41, 2, 27, 246, 122, 41, 2, 27, 246, 121, 41, 2, 27, + 246, 120, 41, 2, 27, 246, 119, 41, 2, 27, 246, 118, 41, 2, 27, 246, 117, + 41, 2, 27, 246, 116, 41, 2, 27, 246, 115, 41, 2, 27, 246, 114, 41, 2, 27, + 246, 113, 41, 2, 27, 246, 112, 41, 2, 27, 246, 111, 41, 2, 27, 246, 110, + 41, 2, 27, 246, 109, 41, 2, 27, 246, 108, 41, 2, 27, 246, 107, 41, 2, 27, + 246, 106, 41, 2, 27, 246, 105, 41, 2, 27, 246, 104, 41, 2, 27, 246, 103, + 41, 2, 27, 246, 102, 41, 2, 27, 246, 101, 41, 2, 27, 246, 100, 41, 2, 27, + 246, 99, 41, 2, 27, 246, 98, 41, 2, 27, 246, 97, 41, 2, 27, 246, 96, 41, + 2, 27, 246, 95, 41, 2, 27, 246, 94, 41, 2, 27, 246, 93, 41, 2, 27, 246, + 92, 41, 2, 27, 246, 91, 41, 2, 27, 246, 90, 41, 2, 27, 246, 89, 41, 2, + 27, 246, 88, 41, 2, 27, 246, 87, 41, 2, 27, 246, 86, 41, 2, 27, 246, 85, + 41, 2, 27, 246, 84, 41, 2, 27, 246, 83, 41, 2, 27, 246, 82, 41, 2, 27, + 246, 81, 41, 2, 27, 246, 80, 41, 2, 27, 246, 79, 41, 2, 27, 246, 78, 41, + 2, 27, 246, 77, 41, 2, 27, 246, 76, 41, 2, 27, 246, 75, 41, 2, 27, 246, + 74, 41, 2, 27, 246, 73, 41, 2, 27, 246, 72, 41, 2, 27, 246, 71, 41, 2, + 27, 246, 70, 41, 2, 27, 246, 69, 41, 2, 27, 246, 68, 41, 2, 27, 246, 67, + 41, 2, 27, 246, 66, 41, 2, 27, 246, 65, 41, 2, 27, 246, 64, 41, 2, 27, + 246, 63, 41, 2, 27, 246, 62, 41, 2, 27, 246, 61, 41, 2, 27, 246, 60, 41, + 2, 27, 246, 59, 41, 2, 27, 246, 58, 41, 2, 27, 246, 57, 41, 2, 27, 246, + 56, 41, 2, 27, 246, 55, 41, 2, 27, 246, 54, 41, 2, 27, 246, 53, 41, 2, + 27, 246, 52, 41, 2, 27, 246, 51, 41, 2, 27, 246, 50, 41, 2, 27, 246, 49, + 41, 2, 27, 246, 48, 41, 2, 27, 246, 47, 41, 2, 27, 246, 46, 41, 2, 27, + 246, 45, 41, 2, 27, 246, 44, 41, 2, 27, 246, 43, 41, 2, 27, 246, 42, 41, + 2, 27, 246, 41, 41, 2, 27, 246, 40, 41, 2, 27, 246, 39, 41, 2, 27, 246, + 38, 41, 2, 27, 246, 37, 41, 2, 27, 246, 36, 41, 2, 27, 246, 35, 41, 2, + 27, 246, 34, 41, 2, 27, 246, 33, 41, 2, 27, 246, 32, 41, 2, 27, 246, 31, + 41, 2, 27, 246, 30, 41, 2, 27, 246, 29, 41, 2, 27, 246, 28, 41, 2, 27, + 246, 27, 41, 2, 27, 246, 26, 41, 2, 27, 246, 25, 41, 2, 27, 246, 24, 41, + 2, 27, 246, 23, 41, 2, 27, 246, 22, 41, 2, 27, 246, 21, 41, 2, 27, 246, + 20, 41, 2, 27, 246, 19, 41, 2, 27, 246, 18, 41, 2, 27, 246, 17, 41, 2, + 27, 246, 16, 41, 2, 27, 246, 15, 41, 2, 27, 246, 14, 41, 2, 27, 246, 13, + 41, 2, 27, 246, 12, 41, 2, 27, 246, 11, 41, 2, 27, 246, 10, 41, 2, 27, + 246, 9, 41, 2, 27, 246, 8, 41, 2, 27, 246, 7, 41, 2, 27, 246, 6, 41, 2, + 27, 246, 5, 41, 2, 27, 246, 4, 41, 2, 27, 246, 3, 41, 2, 27, 246, 2, 41, + 2, 27, 246, 1, 41, 2, 27, 246, 0, 41, 2, 27, 245, 255, 41, 2, 27, 245, + 254, 41, 2, 27, 245, 253, 41, 2, 27, 245, 252, 41, 2, 27, 245, 251, 41, + 2, 27, 245, 250, 41, 2, 27, 245, 249, 41, 2, 27, 245, 248, 41, 2, 27, + 245, 247, 41, 2, 27, 245, 246, 41, 2, 27, 245, 245, 41, 2, 27, 245, 244, + 41, 2, 27, 245, 243, 41, 2, 27, 245, 242, 41, 2, 27, 245, 241, 41, 2, 27, + 245, 240, 41, 2, 27, 245, 239, 41, 2, 27, 245, 238, 41, 2, 27, 245, 237, + 41, 2, 27, 245, 236, 41, 2, 27, 245, 235, 41, 2, 27, 245, 234, 41, 2, 27, + 245, 233, 41, 2, 27, 245, 232, 41, 2, 27, 245, 231, 41, 2, 27, 245, 230, + 41, 2, 27, 245, 229, 41, 2, 27, 245, 228, 41, 2, 27, 245, 227, 41, 2, 27, + 245, 226, 41, 2, 27, 245, 225, 41, 2, 27, 245, 224, 41, 2, 27, 245, 223, + 41, 2, 27, 245, 222, 41, 2, 27, 245, 221, 41, 2, 27, 245, 220, 41, 2, 27, + 245, 219, 41, 2, 27, 245, 218, 41, 2, 27, 245, 217, 41, 2, 27, 245, 216, + 41, 2, 27, 245, 215, 41, 2, 27, 245, 214, 41, 2, 27, 245, 213, 41, 2, 27, + 245, 212, 41, 2, 27, 245, 211, 41, 2, 27, 245, 210, 41, 2, 27, 245, 209, + 41, 2, 27, 245, 208, 41, 2, 27, 245, 207, 41, 2, 27, 245, 206, 41, 2, 27, + 245, 205, 41, 2, 27, 245, 204, 41, 2, 27, 245, 203, 41, 2, 27, 245, 202, + 41, 2, 27, 245, 201, 41, 2, 27, 245, 200, 41, 2, 27, 245, 199, 41, 2, 27, + 245, 198, 41, 2, 27, 245, 197, 41, 2, 27, 245, 196, 41, 2, 27, 245, 195, + 41, 2, 27, 245, 194, 41, 2, 27, 245, 193, 41, 2, 27, 245, 192, 41, 2, 27, + 245, 191, 41, 2, 27, 245, 190, 41, 2, 27, 245, 189, 41, 2, 27, 245, 188, + 41, 2, 27, 245, 187, 41, 2, 27, 245, 186, 41, 2, 27, 245, 185, 41, 2, 27, + 245, 184, 41, 2, 27, 245, 183, 41, 2, 27, 245, 182, 41, 2, 27, 245, 181, + 41, 2, 27, 245, 180, 41, 2, 27, 245, 179, 41, 2, 27, 245, 178, 41, 2, 27, + 245, 177, 41, 2, 27, 245, 176, 41, 2, 27, 245, 175, 41, 2, 27, 245, 174, + 41, 2, 27, 245, 173, 41, 2, 27, 245, 172, 41, 2, 27, 245, 171, 41, 2, 27, + 245, 170, 41, 2, 27, 245, 169, 41, 2, 27, 245, 168, 41, 2, 27, 245, 167, + 41, 2, 27, 245, 166, 41, 2, 27, 245, 165, 41, 2, 27, 245, 164, 41, 2, 27, + 245, 163, 41, 2, 27, 245, 162, 41, 2, 27, 245, 161, 41, 2, 27, 245, 160, + 41, 2, 27, 245, 159, 41, 2, 27, 245, 158, 41, 2, 27, 245, 157, 41, 2, 27, + 245, 156, 41, 2, 27, 245, 155, 41, 2, 27, 245, 154, 41, 2, 27, 245, 153, + 41, 2, 27, 245, 152, 41, 2, 27, 245, 151, 41, 2, 27, 245, 150, 41, 2, 27, + 245, 149, 41, 2, 27, 245, 148, 41, 2, 27, 245, 147, 41, 2, 27, 245, 146, + 41, 2, 27, 245, 145, 41, 2, 27, 245, 144, 41, 2, 27, 245, 143, 41, 2, 27, + 245, 142, 41, 2, 27, 245, 141, 41, 2, 27, 245, 140, 41, 2, 27, 245, 139, + 41, 2, 27, 245, 138, 41, 2, 27, 245, 137, 41, 2, 27, 245, 136, 41, 2, 27, + 245, 135, 41, 2, 27, 245, 134, 41, 2, 27, 245, 133, 41, 2, 27, 245, 132, + 41, 2, 27, 245, 131, 41, 2, 27, 245, 130, 41, 2, 27, 245, 129, 41, 2, 27, + 245, 128, 41, 2, 27, 245, 127, 41, 2, 27, 245, 126, 41, 2, 27, 245, 125, + 41, 2, 27, 245, 124, 41, 2, 27, 245, 123, 41, 2, 27, 245, 122, 41, 2, 27, + 245, 121, 41, 2, 27, 245, 120, 41, 2, 27, 245, 119, 41, 2, 27, 245, 118, + 41, 2, 27, 245, 117, 41, 2, 27, 245, 116, 41, 2, 27, 245, 115, 41, 2, 27, + 245, 114, 41, 2, 27, 245, 113, 41, 2, 27, 245, 112, 41, 2, 27, 245, 111, + 41, 2, 27, 245, 110, 41, 2, 27, 245, 109, 41, 2, 27, 245, 108, 41, 2, 27, + 245, 107, 41, 2, 27, 245, 106, 41, 2, 27, 245, 105, 41, 2, 27, 245, 104, + 41, 2, 27, 245, 103, 41, 2, 27, 245, 102, 41, 2, 27, 245, 101, 41, 2, 27, + 245, 100, 41, 2, 27, 245, 99, 41, 2, 27, 245, 98, 41, 2, 27, 245, 97, 41, + 2, 27, 245, 96, 41, 2, 27, 245, 95, 41, 2, 27, 245, 94, 41, 2, 27, 245, + 93, 41, 2, 27, 245, 92, 41, 2, 27, 245, 91, 41, 2, 27, 245, 90, 41, 2, + 27, 245, 89, 41, 2, 27, 245, 88, 41, 2, 27, 245, 87, 41, 2, 27, 245, 86, + 41, 2, 27, 245, 85, 41, 2, 27, 245, 84, 41, 2, 27, 245, 83, 41, 2, 27, + 245, 82, 41, 2, 27, 245, 81, 41, 2, 27, 245, 80, 41, 2, 27, 245, 79, 41, + 2, 27, 245, 78, 41, 2, 27, 245, 77, 41, 2, 27, 245, 76, 41, 2, 27, 245, + 75, 41, 2, 27, 245, 74, 41, 2, 27, 245, 73, 41, 2, 27, 245, 72, 41, 2, + 27, 245, 71, 41, 2, 27, 245, 70, 41, 2, 27, 245, 69, 41, 2, 27, 245, 68, + 41, 2, 27, 245, 67, 41, 2, 27, 245, 66, 41, 2, 27, 245, 65, 41, 2, 27, + 245, 64, 41, 2, 27, 245, 63, 41, 2, 27, 245, 62, 41, 2, 27, 245, 61, 41, + 2, 27, 245, 60, 41, 2, 27, 245, 59, 41, 2, 27, 245, 58, 41, 2, 27, 245, + 57, 41, 2, 27, 245, 56, 41, 2, 27, 245, 55, 41, 2, 27, 245, 54, 41, 2, + 27, 245, 53, 41, 2, 27, 245, 52, 41, 2, 27, 245, 51, 41, 2, 27, 245, 50, + 41, 2, 27, 245, 49, 41, 2, 27, 245, 48, 41, 2, 27, 245, 47, 41, 2, 27, + 245, 46, 41, 2, 27, 245, 45, 41, 2, 27, 245, 44, 41, 2, 27, 245, 43, 41, + 2, 27, 245, 42, 41, 2, 27, 245, 41, 41, 2, 27, 245, 40, 41, 2, 27, 245, + 39, 41, 2, 27, 245, 38, 41, 2, 27, 245, 37, 41, 2, 27, 245, 36, 41, 2, + 27, 245, 35, 41, 2, 27, 245, 34, 41, 2, 27, 245, 33, 41, 2, 27, 245, 32, + 41, 2, 27, 245, 31, 41, 2, 27, 245, 30, 41, 2, 27, 245, 29, 41, 2, 27, + 245, 28, 41, 2, 27, 245, 27, 41, 2, 27, 245, 26, 41, 2, 27, 245, 25, 72, + 1, 216, 36, 198, 77, 72, 1, 216, 36, 198, 76, 72, 1, 216, 36, 198, 75, + 72, 1, 216, 36, 198, 74, 72, 1, 216, 36, 198, 72, 72, 1, 216, 36, 198, + 71, 72, 1, 216, 36, 214, 211, 198, 78, 72, 1, 216, 36, 214, 211, 198, 77, + 72, 1, 216, 36, 214, 211, 198, 76, 72, 1, 216, 36, 214, 211, 198, 75, 72, + 1, 216, 36, 214, 211, 198, 74, 72, 1, 216, 36, 214, 211, 198, 72, 72, 1, + 216, 36, 214, 211, 198, 71, 72, 1, 251, 14, 71, 229, 120, 1, 251, 14, + 192, 80, 61, 1, 255, 206, 61, 1, 255, 205, 61, 1, 255, 204, 61, 1, 255, + 200, 61, 1, 228, 73, 61, 1, 228, 72, 61, 1, 228, 71, 61, 1, 228, 70, 61, + 1, 196, 231, 61, 1, 196, 230, 61, 1, 196, 229, 61, 1, 196, 228, 61, 1, + 196, 227, 61, 1, 235, 13, 61, 1, 235, 12, 61, 1, 235, 11, 61, 1, 235, 10, + 61, 1, 235, 9, 61, 1, 212, 14, 61, 1, 212, 13, 61, 1, 212, 12, 61, 1, + 222, 141, 61, 1, 222, 138, 61, 1, 222, 137, 61, 1, 222, 136, 61, 1, 222, + 135, 61, 1, 222, 134, 61, 1, 222, 133, 61, 1, 222, 132, 61, 1, 222, 131, + 61, 1, 222, 140, 61, 1, 222, 139, 61, 1, 222, 130, 61, 1, 221, 165, 61, + 1, 221, 164, 61, 1, 221, 163, 61, 1, 221, 162, 61, 1, 221, 161, 61, 1, + 221, 160, 61, 1, 221, 159, 61, 1, 221, 158, 61, 1, 220, 231, 61, 1, 220, + 230, 61, 1, 220, 229, 61, 1, 220, 228, 61, 1, 220, 227, 61, 1, 220, 226, + 61, 1, 220, 225, 61, 1, 222, 21, 61, 1, 222, 20, 61, 1, 222, 19, 61, 1, + 222, 18, 61, 1, 222, 17, 61, 1, 222, 16, 61, 1, 221, 66, 61, 1, 221, 65, + 61, 1, 221, 64, 61, 1, 221, 63, 61, 1, 205, 206, 61, 1, 205, 205, 61, 1, + 205, 204, 61, 1, 205, 203, 61, 1, 205, 202, 61, 1, 205, 201, 61, 1, 205, + 200, 61, 1, 205, 199, 61, 1, 202, 221, 61, 1, 202, 220, 61, 1, 202, 219, + 61, 1, 202, 218, 61, 1, 202, 217, 61, 1, 202, 216, 61, 1, 201, 3, 61, 1, + 201, 2, 61, 1, 201, 1, 61, 1, 201, 0, 61, 1, 200, 255, 61, 1, 200, 254, + 61, 1, 200, 253, 61, 1, 200, 252, 61, 1, 205, 67, 61, 1, 205, 66, 61, 1, + 205, 65, 61, 1, 205, 64, 61, 1, 205, 63, 61, 1, 202, 45, 61, 1, 202, 44, + 61, 1, 202, 43, 61, 1, 202, 42, 61, 1, 202, 41, 61, 1, 202, 40, 61, 1, + 202, 39, 61, 1, 199, 251, 61, 1, 199, 250, 61, 1, 199, 249, 61, 1, 199, + 248, 61, 1, 198, 192, 61, 1, 198, 191, 61, 1, 198, 190, 61, 1, 198, 189, + 61, 1, 198, 188, 61, 1, 198, 187, 61, 1, 198, 186, 61, 1, 197, 93, 61, 1, + 197, 92, 61, 1, 197, 91, 61, 1, 197, 90, 61, 1, 197, 89, 61, 1, 199, 144, + 61, 1, 199, 143, 61, 1, 199, 142, 61, 1, 199, 141, 61, 1, 199, 140, 61, + 1, 199, 139, 61, 1, 199, 138, 61, 1, 199, 137, 61, 1, 199, 136, 61, 1, + 198, 98, 61, 1, 198, 97, 61, 1, 198, 96, 61, 1, 198, 95, 61, 1, 198, 94, + 61, 1, 198, 93, 61, 1, 198, 92, 61, 1, 215, 6, 61, 1, 215, 5, 61, 1, 215, + 4, 61, 1, 215, 3, 61, 1, 215, 2, 61, 1, 215, 1, 61, 1, 215, 0, 61, 1, + 214, 255, 61, 1, 214, 254, 61, 1, 213, 218, 61, 1, 213, 217, 61, 1, 213, + 216, 61, 1, 213, 215, 61, 1, 213, 214, 61, 1, 213, 213, 61, 1, 213, 212, + 61, 1, 213, 211, 61, 1, 212, 177, 61, 1, 212, 176, 61, 1, 212, 175, 61, + 1, 214, 120, 61, 1, 214, 119, 61, 1, 214, 118, 61, 1, 214, 117, 61, 1, + 214, 116, 61, 1, 214, 115, 61, 1, 214, 114, 61, 1, 213, 42, 61, 1, 213, + 41, 61, 1, 213, 40, 61, 1, 213, 39, 61, 1, 213, 38, 61, 1, 230, 104, 61, + 1, 230, 101, 61, 1, 230, 100, 61, 1, 230, 99, 61, 1, 230, 98, 61, 1, 230, + 97, 61, 1, 230, 96, 61, 1, 230, 95, 61, 1, 230, 94, 61, 1, 230, 103, 61, + 1, 230, 102, 61, 1, 229, 157, 61, 1, 229, 156, 61, 1, 229, 155, 61, 1, + 229, 154, 61, 1, 229, 153, 61, 1, 229, 152, 61, 1, 229, 151, 61, 1, 228, + 158, 61, 1, 228, 157, 61, 1, 228, 156, 61, 1, 229, 244, 61, 1, 229, 243, + 61, 1, 229, 242, 61, 1, 229, 241, 61, 1, 229, 240, 61, 1, 229, 239, 61, + 1, 229, 238, 61, 1, 229, 22, 61, 1, 229, 21, 61, 1, 229, 20, 61, 1, 229, + 19, 61, 1, 229, 18, 61, 1, 229, 17, 61, 1, 229, 16, 61, 1, 229, 15, 61, + 1, 217, 159, 61, 1, 217, 158, 61, 1, 217, 157, 61, 1, 217, 156, 61, 1, + 217, 155, 61, 1, 217, 154, 61, 1, 217, 153, 61, 1, 216, 99, 61, 1, 216, + 98, 61, 1, 216, 97, 61, 1, 216, 96, 61, 1, 216, 95, 61, 1, 216, 94, 61, + 1, 216, 93, 61, 1, 215, 154, 61, 1, 215, 153, 61, 1, 215, 152, 61, 1, + 215, 151, 61, 1, 216, 231, 61, 1, 216, 230, 61, 1, 216, 229, 61, 1, 216, + 11, 61, 1, 216, 10, 61, 1, 216, 9, 61, 1, 216, 8, 61, 1, 216, 7, 61, 1, + 216, 6, 61, 1, 192, 148, 61, 1, 192, 147, 61, 1, 192, 146, 61, 1, 192, + 145, 61, 1, 192, 144, 61, 1, 192, 141, 61, 1, 191, 224, 61, 1, 191, 223, + 61, 1, 191, 222, 61, 1, 191, 221, 61, 1, 192, 11, 61, 1, 192, 10, 61, 1, + 192, 9, 61, 1, 192, 8, 61, 1, 192, 7, 61, 1, 192, 6, 61, 1, 207, 185, 61, + 1, 207, 184, 61, 1, 207, 183, 61, 1, 207, 182, 61, 1, 207, 0, 61, 1, 206, + 255, 61, 1, 206, 254, 61, 1, 206, 253, 61, 1, 206, 252, 61, 1, 206, 251, + 61, 1, 206, 250, 61, 1, 206, 67, 61, 1, 206, 66, 61, 1, 206, 65, 61, 1, + 206, 64, 61, 1, 206, 63, 61, 1, 206, 62, 61, 1, 207, 112, 61, 1, 207, + 111, 61, 1, 207, 110, 61, 1, 207, 109, 61, 1, 206, 161, 61, 1, 206, 160, + 61, 1, 206, 159, 61, 1, 206, 158, 61, 1, 206, 157, 61, 1, 206, 156, 61, + 1, 193, 189, 61, 1, 193, 188, 61, 1, 193, 187, 61, 1, 193, 186, 61, 1, + 193, 185, 61, 1, 193, 85, 61, 1, 193, 84, 61, 1, 193, 83, 61, 1, 193, 82, + 61, 1, 193, 81, 61, 1, 193, 124, 61, 1, 193, 123, 61, 1, 193, 122, 61, 1, + 193, 121, 61, 1, 193, 47, 61, 1, 193, 46, 61, 1, 193, 45, 61, 1, 193, 44, + 61, 1, 193, 43, 61, 1, 193, 42, 61, 1, 193, 41, 61, 1, 215, 58, 61, 1, + 215, 57, 229, 120, 1, 251, 14, 193, 0, 72, 1, 251, 14, 192, 33, 72, 1, + 251, 14, 192, 80, 72, 1, 251, 14, 193, 0, 229, 120, 1, 2, 221, 67, 229, + 120, 1, 2, 193, 86, 229, 120, 1, 2, 193, 125, 229, 120, 1, 2, 193, 48, + 72, 1, 2, 221, 67, 72, 1, 2, 193, 86, 72, 1, 2, 193, 125, 72, 1, 2, 193, + 48, 72, 1, 2, 215, 61, 46, 245, 24, 46, 245, 23, 46, 245, 22, 46, 245, + 21, 46, 245, 20, 46, 245, 19, 46, 245, 18, 46, 245, 17, 46, 245, 16, 46, + 245, 15, 46, 245, 14, 46, 245, 13, 46, 245, 12, 46, 245, 11, 46, 245, 10, + 46, 245, 9, 46, 245, 8, 46, 245, 7, 46, 245, 6, 46, 245, 5, 46, 245, 4, + 46, 245, 3, 46, 245, 2, 46, 245, 1, 46, 245, 0, 46, 244, 255, 46, 244, + 254, 46, 244, 253, 46, 244, 252, 46, 244, 251, 46, 244, 250, 46, 244, + 249, 46, 244, 248, 46, 244, 247, 46, 244, 246, 46, 244, 245, 46, 244, + 244, 46, 244, 243, 46, 244, 242, 46, 244, 241, 46, 244, 240, 46, 244, + 239, 46, 244, 238, 46, 244, 237, 46, 244, 236, 46, 244, 235, 46, 244, + 234, 46, 244, 233, 46, 244, 232, 46, 244, 231, 46, 244, 230, 46, 244, + 229, 46, 244, 228, 46, 244, 227, 46, 244, 226, 46, 244, 225, 46, 244, + 224, 46, 244, 223, 46, 244, 222, 46, 244, 221, 46, 244, 220, 46, 244, + 219, 46, 244, 218, 46, 244, 217, 46, 244, 216, 46, 244, 215, 46, 244, + 214, 46, 244, 213, 46, 244, 212, 46, 244, 211, 46, 244, 210, 46, 244, + 209, 46, 244, 208, 46, 244, 207, 46, 244, 206, 46, 244, 205, 46, 244, + 204, 46, 244, 203, 46, 244, 202, 46, 244, 201, 46, 244, 200, 46, 244, + 199, 46, 244, 198, 46, 244, 197, 46, 244, 196, 46, 244, 195, 46, 244, + 194, 46, 244, 193, 46, 244, 192, 46, 244, 191, 46, 244, 190, 46, 244, + 189, 46, 244, 188, 46, 244, 187, 46, 244, 186, 46, 244, 185, 46, 244, + 184, 46, 244, 183, 46, 244, 182, 46, 244, 181, 46, 244, 180, 46, 244, + 179, 46, 244, 178, 46, 244, 177, 46, 244, 176, 46, 244, 175, 46, 244, + 174, 46, 244, 173, 46, 244, 172, 46, 244, 171, 46, 244, 170, 46, 244, + 169, 46, 244, 168, 46, 244, 167, 46, 244, 166, 46, 244, 165, 46, 244, + 164, 46, 244, 163, 46, 244, 162, 46, 244, 161, 46, 244, 160, 46, 244, + 159, 46, 244, 158, 46, 244, 157, 46, 244, 156, 46, 244, 155, 46, 244, + 154, 46, 244, 153, 46, 244, 152, 46, 244, 151, 46, 244, 150, 46, 244, + 149, 46, 244, 148, 46, 244, 147, 46, 244, 146, 46, 244, 145, 46, 244, + 144, 46, 244, 143, 46, 244, 142, 46, 244, 141, 46, 244, 140, 46, 244, + 139, 46, 244, 138, 46, 244, 137, 46, 244, 136, 46, 244, 135, 46, 244, + 134, 46, 244, 133, 46, 244, 132, 46, 244, 131, 46, 244, 130, 46, 244, + 129, 46, 244, 128, 46, 244, 127, 46, 244, 126, 46, 244, 125, 46, 244, + 124, 46, 244, 123, 46, 244, 122, 46, 244, 121, 46, 244, 120, 46, 244, + 119, 46, 244, 118, 46, 244, 117, 46, 244, 116, 46, 244, 115, 46, 244, + 114, 46, 244, 113, 46, 244, 112, 46, 244, 111, 46, 244, 110, 46, 244, + 109, 46, 244, 108, 46, 244, 107, 46, 244, 106, 46, 244, 105, 46, 244, + 104, 46, 244, 103, 46, 244, 102, 46, 244, 101, 46, 244, 100, 46, 244, 99, + 46, 244, 98, 46, 244, 97, 46, 244, 96, 46, 244, 95, 46, 244, 94, 46, 244, + 93, 46, 244, 92, 46, 244, 91, 46, 244, 90, 46, 244, 89, 46, 244, 88, 46, + 244, 87, 46, 244, 86, 46, 244, 85, 46, 244, 84, 46, 244, 83, 46, 244, 82, + 46, 244, 81, 46, 244, 80, 46, 244, 79, 46, 244, 78, 46, 244, 77, 46, 244, + 76, 46, 244, 75, 46, 244, 74, 46, 244, 73, 46, 244, 72, 46, 244, 71, 46, + 244, 70, 46, 244, 69, 46, 244, 68, 46, 244, 67, 46, 244, 66, 46, 244, 65, + 46, 244, 64, 46, 244, 63, 46, 244, 62, 46, 244, 61, 46, 244, 60, 46, 244, + 59, 46, 244, 58, 46, 244, 57, 46, 244, 56, 46, 244, 55, 46, 244, 54, 46, + 244, 53, 46, 244, 52, 46, 244, 51, 46, 244, 50, 46, 244, 49, 46, 244, 48, + 46, 244, 47, 46, 244, 46, 46, 244, 45, 46, 244, 44, 46, 244, 43, 46, 244, + 42, 46, 244, 41, 46, 244, 40, 46, 244, 39, 46, 244, 38, 46, 244, 37, 46, + 244, 36, 46, 244, 35, 46, 244, 34, 46, 244, 33, 46, 244, 32, 46, 244, 31, + 46, 244, 30, 46, 244, 29, 46, 244, 28, 46, 244, 27, 46, 244, 26, 46, 244, + 25, 46, 244, 24, 46, 244, 23, 46, 244, 22, 46, 244, 21, 46, 244, 20, 46, + 244, 19, 46, 244, 18, 46, 244, 17, 46, 244, 16, 46, 244, 15, 46, 244, 14, + 46, 244, 13, 46, 244, 12, 46, 244, 11, 46, 244, 10, 46, 244, 9, 46, 244, + 8, 46, 244, 7, 46, 244, 6, 46, 244, 5, 46, 244, 4, 46, 244, 3, 46, 244, + 2, 46, 244, 1, 46, 244, 0, 46, 243, 255, 46, 243, 254, 46, 243, 253, 46, + 243, 252, 46, 243, 251, 46, 243, 250, 46, 243, 249, 46, 243, 248, 46, + 243, 247, 46, 243, 246, 46, 243, 245, 46, 243, 244, 46, 243, 243, 46, + 243, 242, 46, 243, 241, 46, 243, 240, 46, 243, 239, 46, 243, 238, 46, + 243, 237, 46, 243, 236, 46, 243, 235, 46, 243, 234, 46, 243, 233, 46, + 243, 232, 46, 243, 231, 46, 243, 230, 46, 243, 229, 46, 243, 228, 46, + 243, 227, 46, 243, 226, 46, 243, 225, 46, 243, 224, 46, 243, 223, 46, + 243, 222, 46, 243, 221, 46, 243, 220, 46, 243, 219, 46, 243, 218, 46, + 243, 217, 46, 243, 216, 46, 243, 215, 46, 243, 214, 46, 243, 213, 46, + 243, 212, 46, 243, 211, 46, 243, 210, 46, 243, 209, 46, 243, 208, 46, + 243, 207, 46, 243, 206, 46, 243, 205, 46, 243, 204, 46, 243, 203, 46, + 243, 202, 46, 243, 201, 46, 243, 200, 46, 243, 199, 46, 243, 198, 46, + 243, 197, 46, 243, 196, 46, 243, 195, 46, 243, 194, 46, 243, 193, 46, + 243, 192, 46, 243, 191, 46, 243, 190, 46, 243, 189, 46, 243, 188, 46, + 243, 187, 46, 243, 186, 46, 243, 185, 46, 243, 184, 46, 243, 183, 46, + 243, 182, 46, 243, 181, 46, 243, 180, 46, 243, 179, 46, 243, 178, 46, + 243, 177, 46, 243, 176, 46, 243, 175, 46, 243, 174, 46, 243, 173, 46, + 243, 172, 46, 243, 171, 46, 243, 170, 46, 243, 169, 46, 243, 168, 46, + 243, 167, 46, 243, 166, 46, 243, 165, 46, 243, 164, 46, 243, 163, 46, + 243, 162, 46, 243, 161, 46, 243, 160, 46, 243, 159, 46, 243, 158, 46, + 243, 157, 46, 243, 156, 46, 243, 155, 46, 243, 154, 46, 243, 153, 46, + 243, 152, 46, 243, 151, 46, 243, 150, 46, 243, 149, 46, 243, 148, 46, + 243, 147, 46, 243, 146, 46, 243, 145, 46, 243, 144, 46, 243, 143, 46, + 243, 142, 46, 243, 141, 124, 1, 230, 116, 124, 1, 192, 235, 124, 1, 210, + 236, 124, 1, 200, 43, 124, 1, 233, 175, 124, 1, 222, 152, 124, 1, 172, + 124, 1, 250, 120, 124, 1, 238, 127, 124, 1, 196, 12, 124, 1, 232, 51, + 124, 1, 146, 124, 1, 210, 237, 215, 61, 124, 1, 238, 128, 206, 8, 124, 1, + 233, 176, 215, 61, 124, 1, 222, 153, 218, 168, 124, 1, 207, 222, 206, 8, + 124, 1, 199, 51, 124, 1, 202, 82, 237, 69, 124, 1, 237, 69, 124, 1, 221, + 102, 124, 1, 202, 82, 223, 35, 124, 1, 229, 112, 124, 1, 219, 160, 124, + 1, 207, 7, 124, 1, 218, 168, 124, 1, 215, 61, 124, 1, 223, 35, 124, 1, + 206, 8, 124, 1, 218, 169, 215, 61, 124, 1, 215, 62, 218, 168, 124, 1, + 223, 36, 218, 168, 124, 1, 206, 9, 223, 35, 124, 1, 218, 169, 4, 236, + 140, 124, 1, 215, 62, 4, 236, 140, 124, 1, 223, 36, 4, 236, 140, 124, 1, + 223, 36, 4, 185, 223, 118, 23, 58, 124, 1, 206, 9, 4, 236, 140, 124, 1, + 206, 9, 4, 75, 60, 124, 1, 218, 169, 206, 8, 124, 1, 215, 62, 206, 8, + 124, 1, 223, 36, 206, 8, 124, 1, 206, 9, 206, 8, 124, 1, 218, 169, 215, + 62, 206, 8, 124, 1, 215, 62, 218, 169, 206, 8, 124, 1, 223, 36, 218, 169, + 206, 8, 124, 1, 206, 9, 223, 36, 206, 8, 124, 1, 223, 36, 206, 9, 4, 236, + 140, 124, 1, 223, 36, 215, 61, 124, 1, 223, 36, 215, 62, 206, 8, 124, 1, + 206, 9, 200, 43, 124, 1, 206, 9, 200, 44, 146, 124, 1, 206, 9, 210, 236, + 124, 1, 206, 9, 210, 237, 146, 124, 1, 200, 44, 206, 8, 124, 1, 200, 44, + 207, 222, 206, 8, 124, 1, 193, 224, 124, 1, 193, 97, 124, 1, 193, 225, + 146, 124, 1, 206, 9, 215, 61, 124, 1, 206, 9, 218, 168, 124, 1, 222, 153, + 207, 222, 206, 8, 124, 1, 232, 52, 207, 222, 206, 8, 124, 1, 206, 9, 222, + 152, 124, 1, 206, 9, 222, 153, 146, 124, 1, 65, 124, 1, 202, 82, 210, + 250, 124, 1, 211, 182, 124, 1, 74, 124, 1, 251, 66, 124, 1, 68, 124, 1, + 71, 124, 1, 223, 226, 124, 1, 203, 40, 68, 124, 1, 196, 139, 124, 1, 234, + 188, 124, 1, 202, 82, 234, 173, 124, 1, 206, 135, 68, 124, 1, 202, 82, + 234, 188, 124, 1, 179, 68, 124, 1, 192, 80, 124, 1, 66, 124, 1, 233, 242, + 124, 1, 192, 182, 124, 1, 126, 215, 61, 124, 1, 179, 66, 124, 1, 206, + 135, 66, 124, 1, 196, 141, 124, 1, 202, 82, 66, 124, 1, 211, 84, 124, 1, + 210, 250, 124, 1, 211, 19, 124, 1, 193, 190, 124, 1, 193, 48, 124, 1, + 193, 86, 124, 1, 193, 112, 124, 1, 193, 14, 124, 1, 214, 214, 66, 124, 1, + 214, 214, 74, 124, 1, 214, 214, 68, 124, 1, 214, 214, 65, 124, 1, 210, 0, + 251, 132, 124, 1, 210, 0, 251, 149, 124, 1, 202, 82, 234, 103, 124, 1, + 202, 82, 251, 132, 124, 1, 202, 82, 211, 104, 124, 1, 117, 218, 168, 124, + 252, 4, 45, 228, 241, 205, 58, 124, 252, 4, 216, 87, 228, 241, 205, 58, + 124, 252, 4, 50, 228, 241, 205, 58, 124, 252, 4, 130, 81, 205, 58, 124, + 252, 4, 216, 87, 81, 205, 58, 124, 252, 4, 137, 81, 205, 58, 124, 252, 4, + 250, 170, 205, 58, 124, 252, 4, 250, 170, 219, 215, 205, 58, 124, 252, 4, + 250, 170, 199, 188, 124, 252, 4, 250, 170, 199, 215, 124, 252, 4, 250, + 170, 235, 15, 102, 124, 252, 4, 250, 170, 228, 74, 102, 124, 252, 4, 250, + 170, 199, 189, 102, 124, 252, 4, 137, 252, 46, 124, 252, 4, 137, 198, + 172, 252, 46, 124, 252, 4, 137, 230, 210, 124, 252, 4, 137, 179, 230, + 210, 124, 252, 4, 137, 236, 140, 124, 252, 4, 137, 243, 10, 124, 252, 4, + 137, 219, 112, 124, 252, 4, 137, 193, 138, 124, 252, 4, 137, 195, 135, + 124, 252, 4, 130, 252, 46, 124, 252, 4, 130, 198, 172, 252, 46, 124, 252, + 4, 130, 230, 210, 124, 252, 4, 130, 179, 230, 210, 124, 252, 4, 130, 236, + 140, 124, 252, 4, 130, 243, 10, 124, 252, 4, 130, 219, 112, 124, 252, 4, + 130, 193, 138, 124, 252, 4, 130, 195, 135, 124, 252, 4, 130, 57, 124, 3, + 187, 4, 238, 217, 124, 199, 9, 1, 205, 34, 124, 55, 77, 124, 208, 152, + 243, 78, 232, 80, 201, 63, 203, 27, 232, 145, 1, 211, 2, 203, 27, 232, + 145, 239, 28, 211, 2, 203, 27, 232, 145, 144, 201, 78, 203, 27, 232, 145, + 133, 201, 78, 97, 33, 87, 230, 240, 213, 159, 206, 9, 220, 251, 211, 105, + 219, 224, 97, 33, 87, 213, 159, 206, 9, 220, 251, 211, 105, 219, 224, 97, + 33, 87, 197, 162, 211, 105, 219, 224, 97, 33, 87, 230, 240, 213, 159, + 211, 105, 219, 224, 97, 33, 87, 213, 159, 211, 105, 219, 224, 97, 33, 87, + 201, 179, 211, 105, 219, 224, 97, 33, 87, 217, 94, 209, 3, 211, 105, 219, + 224, 97, 33, 87, 209, 3, 211, 105, 219, 224, 97, 33, 87, 193, 231, 211, + 105, 219, 224, 97, 33, 87, 217, 94, 209, 3, 206, 9, 221, 181, 211, 105, + 219, 224, 97, 33, 87, 209, 3, 206, 9, 221, 181, 211, 105, 219, 224, 97, + 33, 87, 193, 231, 206, 9, 221, 181, 211, 105, 219, 224, 97, 33, 87, 230, + 240, 213, 159, 206, 9, 220, 251, 211, 105, 183, 97, 33, 87, 213, 159, + 206, 9, 220, 251, 211, 105, 183, 97, 33, 87, 197, 162, 211, 105, 183, 97, + 33, 87, 230, 240, 213, 159, 211, 105, 183, 97, 33, 87, 213, 159, 211, + 105, 183, 97, 33, 87, 201, 179, 211, 105, 183, 97, 33, 87, 217, 94, 209, + 3, 211, 105, 183, 97, 33, 87, 209, 3, 211, 105, 183, 97, 33, 87, 193, + 231, 211, 105, 183, 97, 33, 87, 217, 94, 209, 3, 206, 9, 221, 181, 211, + 105, 183, 97, 33, 87, 209, 3, 206, 9, 221, 181, 211, 105, 183, 97, 33, + 87, 193, 231, 206, 9, 221, 181, 211, 105, 183, 97, 33, 87, 197, 162, 206, + 9, 220, 250, 97, 33, 87, 217, 94, 209, 3, 206, 9, 220, 250, 97, 33, 87, + 201, 49, 217, 94, 209, 2, 97, 33, 87, 209, 3, 206, 9, 220, 250, 97, 33, + 87, 209, 3, 201, 48, 97, 33, 87, 193, 231, 206, 9, 220, 250, 97, 33, 87, + 217, 94, 209, 3, 201, 48, 97, 33, 87, 230, 240, 193, 230, 97, 33, 87, + 191, 83, 97, 33, 87, 211, 104, 97, 33, 87, 207, 124, 97, 33, 87, 198, + 157, 97, 33, 87, 248, 83, 97, 33, 87, 196, 156, 97, 33, 87, 209, 65, 97, + 33, 87, 219, 21, 97, 33, 87, 220, 200, 97, 33, 87, 222, 115, 97, 33, 87, + 191, 74, 97, 33, 87, 202, 105, 97, 33, 87, 207, 117, 97, 33, 87, 220, + 253, 211, 105, 219, 224, 97, 33, 198, 80, 207, 137, 87, 215, 162, 97, 33, + 198, 80, 207, 137, 87, 200, 153, 97, 33, 198, 80, 207, 137, 87, 197, 246, + 97, 33, 87, 191, 120, 97, 33, 87, 237, 105, 191, 120, 97, 33, 87, 211, + 25, 97, 33, 87, 209, 67, 97, 33, 87, 209, 68, 4, 81, 106, 97, 33, 87, + 243, 134, 97, 33, 87, 243, 135, 209, 45, 97, 33, 87, 211, 174, 97, 33, + 87, 202, 10, 212, 249, 97, 33, 87, 198, 89, 97, 33, 87, 235, 48, 97, 33, + 250, 169, 81, 211, 109, 97, 33, 87, 238, 163, 211, 109, 97, 33, 87, 220, + 252, 97, 33, 110, 198, 80, 207, 137, 223, 144, 97, 208, 203, 52, 219, + 167, 97, 208, 203, 52, 219, 166, 97, 208, 203, 52, 236, 233, 232, 195, + 97, 208, 203, 52, 220, 252, 97, 208, 203, 52, 206, 144, 97, 161, 221, 0, + 97, 161, 221, 1, 198, 156, 97, 161, 210, 122, 97, 161, 235, 56, 196, 13, + 243, 113, 97, 161, 221, 90, 97, 161, 191, 105, 97, 161, 201, 61, 97, 161, + 201, 62, 206, 9, 211, 163, 97, 161, 210, 10, 97, 161, 210, 11, 214, 96, + 97, 161, 201, 62, 4, 202, 10, 212, 249, 97, 161, 243, 112, 97, 161, 210, + 186, 97, 161, 191, 103, 97, 161, 230, 248, 248, 82, 97, 161, 230, 248, + 198, 156, 97, 161, 230, 248, 215, 160, 97, 161, 230, 248, 200, 152, 97, + 161, 230, 248, 197, 245, 97, 161, 194, 253, 208, 183, 97, 161, 194, 253, + 215, 163, 97, 161, 194, 253, 200, 154, 97, 161, 194, 253, 197, 247, 97, + 161, 194, 253, 221, 85, 208, 183, 97, 161, 194, 253, 221, 85, 215, 163, + 97, 161, 194, 253, 221, 85, 200, 154, 97, 161, 194, 253, 221, 85, 197, + 247, 97, 161, 55, 191, 103, 97, 161, 207, 18, 243, 112, 97, 161, 237, 91, + 97, 161, 221, 207, 97, 161, 243, 134, 97, 161, 209, 67, 97, 161, 202, + 113, 215, 163, 97, 161, 202, 113, 200, 154, 97, 161, 202, 113, 197, 247, + 97, 161, 202, 113, 198, 157, 97, 161, 237, 105, 221, 90, 97, 161, 202, + 113, 221, 85, 200, 154, 97, 161, 202, 113, 221, 89, 97, 161, 202, 113, + 221, 85, 198, 157, 97, 161, 202, 113, 235, 53, 208, 183, 97, 161, 202, + 113, 235, 53, 200, 154, 97, 161, 202, 113, 235, 53, 214, 96, 97, 161, + 202, 113, 235, 53, 221, 84, 97, 161, 202, 72, 97, 161, 202, 73, 206, 9, + 191, 101, 97, 161, 202, 73, 191, 110, 97, 161, 202, 73, 206, 9, 220, 250, + 97, 161, 220, 252, 97, 161, 206, 144, 97, 161, 232, 228, 97, 161, 221, + 59, 97, 161, 191, 8, 97, 161, 201, 90, 97, 161, 201, 91, 206, 9, 191, + 101, 97, 161, 201, 91, 206, 9, 220, 250, 97, 161, 201, 91, 206, 9, 191, + 102, 228, 74, 220, 250, 97, 161, 201, 91, 206, 9, 220, 251, 228, 74, 191, + 101, 97, 161, 201, 91, 191, 111, 97, 161, 201, 91, 191, 112, 206, 9, 191, + 101, 97, 161, 201, 91, 206, 9, 206, 143, 97, 161, 201, 91, 206, 9, 235, + 47, 191, 100, 97, 161, 201, 91, 206, 9, 191, 102, 228, 74, 209, 66, 97, + 161, 209, 47, 97, 161, 201, 91, 214, 96, 97, 161, 201, 40, 208, 183, 97, + 161, 201, 40, 215, 161, 97, 161, 201, 40, 220, 249, 97, 161, 201, 40, + 209, 43, 97, 161, 201, 40, 209, 5, 97, 161, 201, 40, 214, 96, 97, 161, + 201, 40, 221, 87, 97, 161, 201, 40, 221, 89, 97, 161, 201, 40, 198, 158, + 208, 130, 97, 161, 201, 40, 235, 52, 97, 161, 201, 40, 235, 51, 97, 161, + 201, 40, 235, 49, 97, 161, 201, 40, 235, 53, 221, 84, 97, 161, 201, 40, + 235, 50, 221, 84, 97, 161, 201, 40, 230, 195, 4, 202, 170, 191, 103, 97, + 161, 201, 40, 230, 191, 4, 202, 170, 191, 103, 97, 161, 201, 40, 230, + 194, 97, 161, 201, 40, 230, 190, 97, 161, 201, 40, 230, 191, 4, 55, 191, + 103, 97, 161, 201, 40, 230, 192, 97, 161, 201, 40, 230, 193, 209, 5, 97, + 161, 216, 221, 97, 161, 216, 222, 209, 4, 97, 161, 216, 222, 221, 83, 97, + 161, 216, 222, 221, 86, 97, 161, 216, 222, 221, 88, 97, 161, 201, 40, + 197, 174, 97, 161, 201, 40, 197, 173, 97, 161, 201, 40, 197, 172, 97, + 161, 211, 31, 97, 161, 211, 32, 200, 154, 97, 161, 211, 32, 197, 247, 97, + 161, 211, 32, 220, 255, 200, 154, 97, 161, 211, 32, 221, 85, 200, 154, + 97, 161, 211, 32, 221, 85, 214, 96, 97, 161, 201, 40, 220, 254, 97, 161, + 201, 40, 220, 255, 209, 5, 97, 161, 201, 40, 220, 255, 230, 195, 4, 202, + 170, 191, 103, 97, 161, 201, 40, 220, 255, 230, 191, 4, 202, 170, 191, + 103, 97, 161, 201, 40, 220, 255, 230, 194, 97, 161, 201, 40, 220, 255, + 230, 190, 97, 161, 201, 40, 220, 255, 230, 191, 4, 55, 191, 103, 97, 161, + 201, 40, 220, 255, 230, 192, 97, 161, 201, 40, 220, 255, 230, 193, 209, + 5, 97, 161, 201, 40, 220, 255, 197, 175, 97, 161, 220, 214, 97, 161, 211, + 173, 97, 161, 235, 84, 97, 161, 214, 103, 97, 161, 210, 79, 73, 37, 16, + 208, 169, 73, 37, 16, 237, 217, 73, 37, 16, 210, 4, 73, 37, 16, 210, 246, + 234, 144, 73, 37, 16, 210, 246, 236, 238, 73, 37, 16, 195, 172, 234, 144, + 73, 37, 16, 195, 172, 236, 238, 73, 37, 16, 222, 44, 73, 37, 16, 200, 60, + 73, 37, 16, 210, 120, 73, 37, 16, 191, 231, 73, 37, 16, 191, 232, 236, + 238, 73, 37, 16, 221, 3, 73, 37, 16, 251, 61, 234, 144, 73, 37, 16, 233, + 210, 234, 144, 73, 37, 16, 199, 108, 73, 37, 16, 221, 247, 73, 37, 16, + 251, 50, 73, 37, 16, 251, 51, 236, 238, 73, 37, 16, 200, 67, 73, 37, 16, + 198, 244, 73, 37, 16, 211, 116, 251, 12, 73, 37, 16, 230, 238, 251, 12, + 73, 37, 16, 208, 168, 73, 37, 16, 246, 248, 73, 37, 16, 195, 161, 73, 37, + 16, 223, 58, 251, 12, 73, 37, 16, 221, 249, 251, 12, 73, 37, 16, 221, + 248, 251, 12, 73, 37, 16, 205, 105, 73, 37, 16, 210, 110, 73, 37, 16, + 201, 88, 251, 54, 73, 37, 16, 210, 245, 251, 12, 73, 37, 16, 195, 171, + 251, 12, 73, 37, 16, 251, 55, 251, 12, 73, 37, 16, 251, 48, 73, 37, 16, + 221, 92, 73, 37, 16, 207, 14, 73, 37, 16, 209, 183, 251, 12, 73, 37, 16, + 198, 142, 73, 37, 16, 251, 128, 73, 37, 16, 205, 37, 73, 37, 16, 200, 71, + 251, 12, 73, 37, 16, 200, 71, 216, 166, 201, 86, 73, 37, 16, 210, 240, + 251, 12, 73, 37, 16, 199, 27, 73, 37, 16, 219, 202, 73, 37, 16, 235, 38, + 73, 37, 16, 197, 243, 73, 37, 16, 199, 76, 73, 37, 16, 221, 6, 73, 37, + 16, 251, 61, 233, 210, 214, 98, 73, 37, 16, 232, 88, 251, 12, 73, 37, 16, + 223, 175, 73, 37, 16, 197, 210, 251, 12, 73, 37, 16, 222, 47, 197, 209, + 73, 37, 16, 210, 36, 73, 37, 16, 208, 173, 73, 37, 16, 221, 42, 73, 37, + 16, 243, 60, 251, 12, 73, 37, 16, 207, 135, 73, 37, 16, 210, 124, 251, + 12, 73, 37, 16, 210, 121, 251, 12, 73, 37, 16, 228, 24, 73, 37, 16, 214, + 225, 73, 37, 16, 209, 238, 73, 37, 16, 221, 43, 251, 167, 73, 37, 16, + 197, 210, 251, 167, 73, 37, 16, 201, 55, 73, 37, 16, 230, 189, 73, 37, + 16, 223, 58, 214, 98, 73, 37, 16, 211, 116, 214, 98, 73, 37, 16, 210, + 246, 214, 98, 73, 37, 16, 209, 237, 73, 37, 16, 221, 26, 73, 37, 16, 209, + 236, 73, 37, 16, 221, 5, 73, 37, 16, 210, 37, 214, 98, 73, 37, 16, 221, + 248, 214, 99, 251, 93, 73, 37, 16, 221, 249, 214, 99, 251, 93, 73, 37, + 16, 191, 229, 73, 37, 16, 251, 51, 214, 98, 73, 37, 16, 251, 52, 200, 68, + 214, 98, 73, 37, 16, 191, 230, 73, 37, 16, 221, 4, 73, 37, 16, 234, 139, + 73, 37, 16, 246, 249, 73, 37, 16, 216, 57, 223, 57, 73, 37, 16, 195, 172, + 214, 98, 73, 37, 16, 209, 183, 214, 98, 73, 37, 16, 208, 174, 214, 98, + 73, 37, 16, 211, 112, 73, 37, 16, 251, 80, 73, 37, 16, 218, 179, 73, 37, + 16, 210, 121, 214, 98, 73, 37, 16, 210, 124, 214, 98, 73, 37, 16, 233, + 249, 210, 123, 73, 37, 16, 220, 147, 73, 37, 16, 251, 81, 73, 37, 16, + 197, 210, 214, 98, 73, 37, 16, 234, 142, 73, 37, 16, 200, 71, 214, 98, + 73, 37, 16, 200, 61, 73, 37, 16, 243, 60, 214, 98, 73, 37, 16, 234, 53, + 73, 37, 16, 205, 38, 214, 98, 73, 37, 16, 192, 199, 221, 92, 73, 37, 16, + 197, 207, 73, 37, 16, 208, 175, 73, 37, 16, 197, 211, 73, 37, 16, 197, + 208, 73, 37, 16, 208, 172, 73, 37, 16, 197, 206, 73, 37, 16, 208, 171, + 73, 37, 16, 230, 237, 73, 37, 16, 251, 4, 73, 37, 16, 233, 249, 251, 4, + 73, 37, 16, 210, 240, 214, 98, 73, 37, 16, 199, 26, 234, 6, 73, 37, 16, + 199, 26, 233, 209, 73, 37, 16, 199, 28, 251, 56, 73, 37, 16, 199, 20, + 222, 103, 251, 47, 73, 37, 16, 222, 46, 73, 37, 16, 234, 90, 73, 37, 16, + 192, 38, 222, 43, 73, 37, 16, 192, 38, 251, 93, 73, 37, 16, 201, 87, 73, + 37, 16, 221, 93, 251, 93, 73, 37, 16, 236, 239, 251, 12, 73, 37, 16, 221, + 7, 251, 12, 73, 37, 16, 221, 7, 251, 167, 73, 37, 16, 221, 7, 214, 98, + 73, 37, 16, 251, 55, 214, 98, 73, 37, 16, 251, 57, 73, 37, 16, 236, 238, + 73, 37, 16, 197, 223, 73, 37, 16, 199, 66, 73, 37, 16, 221, 30, 73, 37, + 16, 219, 207, 234, 83, 243, 50, 73, 37, 16, 219, 207, 235, 39, 243, 51, + 73, 37, 16, 219, 207, 197, 226, 243, 51, 73, 37, 16, 219, 207, 199, 78, + 243, 51, 73, 37, 16, 219, 207, 223, 170, 243, 50, 73, 37, 16, 230, 238, + 214, 99, 251, 93, 73, 37, 16, 230, 238, 210, 111, 251, 0, 73, 37, 16, + 230, 238, 210, 111, 237, 73, 73, 37, 16, 237, 7, 73, 37, 16, 237, 8, 210, + 111, 251, 1, 222, 43, 73, 37, 16, 237, 8, 210, 111, 251, 1, 251, 93, 73, + 37, 16, 237, 8, 210, 111, 237, 73, 73, 37, 16, 197, 232, 73, 37, 16, 251, + 5, 73, 37, 16, 223, 177, 73, 37, 16, 237, 30, 73, 37, 16, 251, 247, 209, + 51, 251, 6, 73, 37, 16, 251, 247, 251, 3, 73, 37, 16, 251, 247, 251, 6, + 73, 37, 16, 251, 247, 216, 160, 73, 37, 16, 251, 247, 216, 171, 73, 37, + 16, 251, 247, 230, 239, 73, 37, 16, 251, 247, 230, 236, 73, 37, 16, 251, + 247, 209, 51, 230, 239, 73, 37, 16, 217, 45, 208, 181, 228, 22, 73, 37, + 16, 217, 45, 251, 169, 208, 181, 228, 22, 73, 37, 16, 217, 45, 237, 72, + 228, 22, 73, 37, 16, 217, 45, 251, 169, 237, 72, 228, 22, 73, 37, 16, + 217, 45, 197, 218, 228, 22, 73, 37, 16, 217, 45, 197, 233, 73, 37, 16, + 217, 45, 199, 71, 228, 22, 73, 37, 16, 217, 45, 199, 71, 219, 211, 228, + 22, 73, 37, 16, 217, 45, 219, 211, 228, 22, 73, 37, 16, 217, 45, 209, + 105, 228, 22, 73, 37, 16, 223, 66, 199, 101, 228, 23, 73, 37, 16, 251, + 52, 199, 101, 228, 23, 73, 37, 16, 233, 79, 199, 68, 73, 37, 16, 233, 79, + 215, 222, 73, 37, 16, 233, 79, 237, 13, 73, 37, 16, 217, 45, 195, 165, + 228, 22, 73, 37, 16, 217, 45, 208, 180, 228, 22, 73, 37, 16, 217, 45, + 209, 105, 199, 71, 228, 22, 73, 37, 16, 230, 233, 215, 62, 251, 56, 73, + 37, 16, 230, 233, 215, 62, 236, 237, 73, 37, 16, 234, 101, 222, 103, 232, + 88, 195, 3, 73, 37, 16, 223, 176, 73, 37, 16, 223, 174, 73, 37, 16, 232, + 88, 251, 13, 237, 71, 228, 21, 73, 37, 16, 232, 88, 237, 28, 168, 73, 37, + 16, 232, 88, 237, 28, 214, 225, 73, 37, 16, 232, 88, 214, 219, 228, 22, + 73, 37, 16, 232, 88, 237, 28, 237, 44, 73, 37, 16, 232, 88, 202, 106, + 237, 27, 237, 44, 73, 37, 16, 232, 88, 237, 28, 222, 22, 73, 37, 16, 232, + 88, 237, 28, 191, 7, 73, 37, 16, 232, 88, 237, 28, 213, 220, 222, 43, 73, + 37, 16, 232, 88, 237, 28, 213, 220, 251, 93, 73, 37, 16, 232, 88, 217, + 98, 243, 52, 237, 13, 73, 37, 16, 232, 88, 217, 98, 243, 52, 215, 222, + 73, 37, 16, 233, 24, 202, 106, 243, 52, 195, 164, 73, 37, 16, 232, 88, + 202, 106, 243, 52, 200, 72, 73, 37, 16, 232, 88, 214, 101, 73, 37, 16, + 243, 53, 190, 230, 73, 37, 16, 243, 53, 221, 91, 73, 37, 16, 243, 53, + 201, 238, 73, 37, 16, 232, 88, 228, 74, 192, 37, 199, 72, 73, 37, 16, + 232, 88, 234, 102, 251, 82, 73, 37, 16, 192, 37, 197, 219, 73, 37, 16, + 237, 21, 197, 219, 73, 37, 16, 237, 21, 199, 72, 73, 37, 16, 237, 21, + 251, 58, 235, 39, 236, 166, 73, 37, 16, 237, 21, 215, 220, 199, 77, 236, + 166, 73, 37, 16, 237, 21, 237, 4, 233, 222, 236, 166, 73, 37, 16, 237, + 21, 197, 230, 211, 122, 236, 166, 73, 37, 16, 192, 37, 251, 58, 235, 39, + 236, 166, 73, 37, 16, 192, 37, 215, 220, 199, 77, 236, 166, 73, 37, 16, + 192, 37, 237, 4, 233, 222, 236, 166, 73, 37, 16, 192, 37, 197, 230, 211, + 122, 236, 166, 73, 37, 16, 231, 147, 237, 20, 73, 37, 16, 231, 147, 192, + 36, 73, 37, 16, 237, 29, 251, 58, 216, 58, 73, 37, 16, 237, 29, 251, 58, + 216, 202, 73, 37, 16, 237, 29, 236, 238, 73, 37, 16, 237, 29, 199, 18, + 73, 37, 16, 202, 181, 199, 18, 73, 37, 16, 202, 181, 199, 19, 236, 221, + 73, 37, 16, 202, 181, 199, 19, 197, 220, 73, 37, 16, 202, 181, 199, 19, + 199, 64, 73, 37, 16, 202, 181, 250, 228, 73, 37, 16, 202, 181, 250, 229, + 236, 221, 73, 37, 16, 202, 181, 250, 229, 197, 220, 73, 37, 16, 202, 181, + 250, 229, 199, 64, 73, 37, 16, 237, 5, 231, 128, 73, 37, 16, 237, 12, + 211, 19, 73, 37, 16, 201, 73, 73, 37, 16, 250, 253, 168, 73, 37, 16, 250, + 253, 195, 3, 73, 37, 16, 250, 253, 231, 240, 73, 37, 16, 250, 253, 237, + 44, 73, 37, 16, 250, 253, 222, 22, 73, 37, 16, 250, 253, 191, 7, 73, 37, + 16, 250, 253, 213, 219, 73, 37, 16, 221, 248, 214, 99, 216, 170, 73, 37, + 16, 221, 249, 214, 99, 216, 170, 73, 37, 16, 221, 248, 214, 99, 222, 43, + 73, 37, 16, 221, 249, 214, 99, 222, 43, 73, 37, 16, 221, 93, 222, 43, 73, + 37, 16, 230, 238, 214, 99, 222, 43, 37, 16, 202, 170, 249, 83, 37, 16, + 55, 249, 83, 37, 16, 53, 249, 83, 37, 16, 207, 19, 53, 249, 83, 37, 16, + 237, 214, 249, 83, 37, 16, 203, 40, 249, 83, 37, 16, 45, 207, 49, 56, 37, + 16, 50, 207, 49, 56, 37, 16, 207, 49, 236, 138, 37, 16, 238, 4, 205, 41, + 37, 16, 238, 33, 247, 108, 37, 16, 205, 41, 37, 16, 242, 92, 37, 16, 207, + 47, 233, 11, 37, 16, 207, 47, 233, 10, 37, 16, 207, 47, 233, 9, 37, 16, + 233, 34, 37, 16, 233, 35, 60, 37, 16, 248, 39, 77, 37, 16, 247, 150, 37, + 16, 248, 55, 37, 16, 248, 53, 37, 16, 211, 99, 201, 111, 37, 16, 197, 12, + 201, 111, 37, 16, 198, 220, 201, 111, 37, 16, 232, 127, 201, 111, 37, 16, + 232, 224, 201, 111, 37, 16, 202, 135, 201, 111, 37, 16, 202, 133, 232, + 105, 37, 16, 232, 125, 232, 105, 37, 16, 232, 52, 242, 235, 37, 16, 232, + 52, 242, 236, 211, 23, 251, 158, 37, 16, 232, 52, 242, 236, 211, 23, 249, + 66, 37, 16, 247, 194, 242, 235, 37, 16, 233, 176, 242, 235, 37, 16, 233, + 176, 242, 236, 211, 23, 251, 158, 37, 16, 233, 176, 242, 236, 211, 23, + 249, 66, 37, 16, 235, 95, 242, 234, 37, 16, 235, 95, 242, 233, 37, 16, + 215, 129, 216, 228, 207, 30, 37, 16, 55, 203, 126, 37, 16, 55, 232, 206, + 37, 16, 232, 207, 196, 77, 37, 16, 232, 207, 235, 123, 37, 16, 214, 206, + 196, 77, 37, 16, 214, 206, 235, 123, 37, 16, 203, 127, 196, 77, 37, 16, + 203, 127, 235, 123, 37, 16, 208, 23, 163, 203, 126, 37, 16, 208, 23, 163, + 232, 206, 37, 16, 242, 71, 198, 146, 37, 16, 238, 155, 198, 146, 37, 16, + 211, 23, 251, 158, 37, 16, 211, 23, 249, 66, 37, 16, 208, 3, 251, 158, + 37, 16, 208, 3, 249, 66, 37, 16, 215, 132, 207, 30, 37, 16, 193, 87, 207, + 30, 37, 16, 132, 207, 30, 37, 16, 208, 23, 207, 30, 37, 16, 234, 160, + 207, 30, 37, 16, 202, 129, 207, 30, 37, 16, 198, 246, 207, 30, 37, 16, + 202, 119, 207, 30, 37, 16, 91, 228, 141, 197, 30, 207, 30, 37, 16, 192, + 236, 213, 2, 37, 16, 108, 213, 2, 37, 16, 243, 11, 192, 236, 213, 2, 37, + 16, 51, 213, 3, 193, 89, 37, 16, 51, 213, 3, 248, 139, 37, 16, 197, 242, + 213, 3, 133, 193, 89, 37, 16, 197, 242, 213, 3, 133, 248, 139, 37, 16, + 197, 242, 213, 3, 45, 193, 89, 37, 16, 197, 242, 213, 3, 45, 248, 139, + 37, 16, 197, 242, 213, 3, 50, 193, 89, 37, 16, 197, 242, 213, 3, 50, 248, + 139, 37, 16, 197, 242, 213, 3, 144, 193, 89, 37, 16, 197, 242, 213, 3, + 144, 248, 139, 37, 16, 197, 242, 213, 3, 133, 50, 193, 89, 37, 16, 197, + 242, 213, 3, 133, 50, 248, 139, 37, 16, 215, 206, 213, 3, 193, 89, 37, + 16, 215, 206, 213, 3, 248, 139, 37, 16, 197, 239, 213, 3, 144, 193, 89, + 37, 16, 197, 239, 213, 3, 144, 248, 139, 37, 16, 210, 114, 213, 2, 37, + 16, 195, 17, 213, 2, 37, 16, 213, 3, 248, 139, 37, 16, 212, 139, 213, 2, + 37, 16, 242, 203, 213, 3, 193, 89, 37, 16, 242, 203, 213, 3, 248, 139, + 37, 16, 248, 36, 37, 16, 193, 87, 213, 6, 37, 16, 132, 213, 6, 37, 16, + 208, 23, 213, 6, 37, 16, 234, 160, 213, 6, 37, 16, 202, 129, 213, 6, 37, + 16, 198, 246, 213, 6, 37, 16, 202, 119, 213, 6, 37, 16, 91, 228, 141, + 197, 30, 213, 6, 37, 16, 33, 201, 80, 37, 16, 33, 201, 197, 201, 80, 37, + 16, 33, 197, 253, 37, 16, 33, 197, 252, 37, 16, 33, 197, 251, 37, 16, + 232, 250, 197, 253, 37, 16, 232, 250, 197, 252, 37, 16, 232, 250, 197, + 251, 37, 16, 33, 250, 160, 236, 140, 37, 16, 33, 232, 216, 37, 16, 33, + 232, 215, 37, 16, 33, 232, 214, 37, 16, 33, 232, 213, 37, 16, 33, 232, + 212, 37, 16, 248, 249, 249, 14, 37, 16, 234, 95, 249, 14, 37, 16, 248, + 249, 198, 178, 37, 16, 234, 95, 198, 178, 37, 16, 248, 249, 202, 71, 37, + 16, 234, 95, 202, 71, 37, 16, 248, 249, 209, 192, 37, 16, 234, 95, 209, + 192, 37, 16, 33, 252, 60, 37, 16, 33, 201, 115, 37, 16, 33, 199, 83, 37, + 16, 33, 201, 116, 37, 16, 33, 217, 60, 37, 16, 33, 217, 59, 37, 16, 33, + 252, 59, 37, 16, 33, 218, 243, 37, 16, 250, 241, 196, 77, 37, 16, 250, + 241, 235, 123, 37, 16, 33, 236, 158, 37, 16, 33, 206, 184, 37, 16, 33, + 232, 195, 37, 16, 33, 202, 67, 37, 16, 33, 248, 227, 37, 16, 33, 55, 198, + 61, 37, 16, 33, 197, 225, 198, 61, 37, 16, 206, 190, 37, 16, 200, 241, + 37, 16, 191, 166, 37, 16, 209, 184, 37, 16, 216, 151, 37, 16, 232, 140, + 37, 16, 238, 229, 37, 16, 237, 132, 37, 16, 230, 228, 213, 7, 202, 97, + 37, 16, 230, 228, 213, 7, 213, 44, 202, 97, 37, 16, 198, 27, 37, 16, 197, + 58, 37, 16, 223, 93, 197, 58, 37, 16, 197, 59, 202, 97, 37, 16, 197, 59, + 196, 77, 37, 16, 211, 43, 201, 27, 37, 16, 211, 43, 201, 24, 37, 16, 211, + 43, 201, 23, 37, 16, 211, 43, 201, 22, 37, 16, 211, 43, 201, 21, 37, 16, + 211, 43, 201, 20, 37, 16, 211, 43, 201, 19, 37, 16, 211, 43, 201, 18, 37, + 16, 211, 43, 201, 17, 37, 16, 211, 43, 201, 26, 37, 16, 211, 43, 201, 25, + 37, 16, 230, 0, 37, 16, 214, 113, 37, 16, 234, 95, 79, 201, 69, 37, 16, + 237, 125, 202, 97, 37, 16, 33, 144, 248, 69, 37, 16, 33, 133, 248, 69, + 37, 16, 33, 230, 14, 37, 16, 33, 202, 57, 209, 111, 37, 16, 210, 54, 77, + 37, 16, 210, 54, 133, 77, 37, 16, 132, 210, 54, 77, 37, 16, 231, 13, 196, + 77, 37, 16, 231, 13, 235, 123, 37, 16, 4, 232, 249, 37, 16, 237, 241, 37, + 16, 237, 242, 251, 174, 37, 16, 217, 23, 37, 16, 219, 10, 37, 16, 248, + 33, 37, 16, 204, 29, 193, 89, 37, 16, 204, 29, 248, 139, 37, 16, 216, 39, + 37, 16, 216, 40, 248, 139, 37, 16, 204, 23, 193, 89, 37, 16, 204, 23, + 248, 139, 37, 16, 232, 70, 193, 89, 37, 16, 232, 70, 248, 139, 37, 16, + 219, 11, 210, 9, 207, 30, 37, 16, 219, 11, 223, 167, 207, 30, 37, 16, + 248, 34, 207, 30, 37, 16, 204, 29, 207, 30, 37, 16, 216, 40, 207, 30, 37, + 16, 204, 23, 207, 30, 37, 16, 199, 97, 210, 7, 238, 186, 208, 192, 210, + 8, 37, 16, 199, 97, 210, 7, 238, 186, 208, 192, 223, 166, 37, 16, 199, + 97, 210, 7, 238, 186, 208, 192, 210, 9, 236, 248, 37, 16, 199, 97, 223, + 165, 238, 186, 208, 192, 210, 8, 37, 16, 199, 97, 223, 165, 238, 186, + 208, 192, 223, 166, 37, 16, 199, 97, 223, 165, 238, 186, 208, 192, 223, + 167, 236, 248, 37, 16, 199, 97, 223, 165, 238, 186, 208, 192, 223, 167, + 236, 247, 37, 16, 199, 97, 223, 165, 238, 186, 208, 192, 223, 167, 236, + 246, 37, 16, 238, 220, 37, 16, 230, 199, 247, 194, 242, 235, 37, 16, 230, + 199, 233, 176, 242, 235, 37, 16, 51, 250, 120, 37, 16, 195, 39, 37, 16, + 209, 69, 37, 16, 242, 224, 37, 16, 205, 95, 37, 16, 242, 229, 37, 16, + 198, 47, 37, 16, 209, 28, 37, 16, 209, 29, 232, 198, 37, 16, 205, 96, + 232, 198, 37, 16, 198, 48, 207, 27, 37, 16, 209, 246, 200, 231, 37, 16, + 221, 148, 247, 194, 242, 235, 37, 16, 221, 148, 234, 95, 79, 209, 175, + 37, 16, 221, 148, 53, 213, 6, 37, 16, 221, 148, 207, 99, 77, 37, 16, 221, + 148, 193, 87, 213, 6, 37, 16, 221, 148, 132, 213, 6, 37, 16, 221, 148, + 208, 23, 213, 7, 201, 81, 235, 123, 37, 16, 221, 148, 208, 23, 213, 7, + 201, 81, 196, 77, 37, 16, 221, 148, 234, 160, 213, 7, 201, 81, 235, 123, + 37, 16, 221, 148, 234, 160, 213, 7, 201, 81, 196, 77, 37, 16, 221, 148, + 232, 207, 56, 37, 16, 202, 11, 37, 16, 221, 31, 35, 195, 23, 213, 10, + 200, 123, 35, 195, 23, 213, 10, 200, 112, 35, 195, 23, 213, 10, 200, 102, + 35, 195, 23, 213, 10, 200, 95, 35, 195, 23, 213, 10, 200, 87, 35, 195, + 23, 213, 10, 200, 81, 35, 195, 23, 213, 10, 200, 80, 35, 195, 23, 213, + 10, 200, 79, 35, 195, 23, 213, 10, 200, 78, 35, 195, 23, 213, 10, 200, + 122, 35, 195, 23, 213, 10, 200, 121, 35, 195, 23, 213, 10, 200, 120, 35, + 195, 23, 213, 10, 200, 119, 35, 195, 23, 213, 10, 200, 118, 35, 195, 23, + 213, 10, 200, 117, 35, 195, 23, 213, 10, 200, 116, 35, 195, 23, 213, 10, + 200, 115, 35, 195, 23, 213, 10, 200, 114, 35, 195, 23, 213, 10, 200, 113, + 35, 195, 23, 213, 10, 200, 111, 35, 195, 23, 213, 10, 200, 110, 35, 195, + 23, 213, 10, 200, 109, 35, 195, 23, 213, 10, 200, 108, 35, 195, 23, 213, + 10, 200, 107, 35, 195, 23, 213, 10, 200, 86, 35, 195, 23, 213, 10, 200, + 85, 35, 195, 23, 213, 10, 200, 84, 35, 195, 23, 213, 10, 200, 83, 35, + 195, 23, 213, 10, 200, 82, 35, 223, 116, 213, 10, 200, 123, 35, 223, 116, + 213, 10, 200, 112, 35, 223, 116, 213, 10, 200, 95, 35, 223, 116, 213, 10, + 200, 87, 35, 223, 116, 213, 10, 200, 80, 35, 223, 116, 213, 10, 200, 79, + 35, 223, 116, 213, 10, 200, 121, 35, 223, 116, 213, 10, 200, 120, 35, + 223, 116, 213, 10, 200, 119, 35, 223, 116, 213, 10, 200, 118, 35, 223, + 116, 213, 10, 200, 115, 35, 223, 116, 213, 10, 200, 114, 35, 223, 116, + 213, 10, 200, 113, 35, 223, 116, 213, 10, 200, 108, 35, 223, 116, 213, + 10, 200, 107, 35, 223, 116, 213, 10, 200, 106, 35, 223, 116, 213, 10, + 200, 105, 35, 223, 116, 213, 10, 200, 104, 35, 223, 116, 213, 10, 200, + 103, 35, 223, 116, 213, 10, 200, 101, 35, 223, 116, 213, 10, 200, 100, + 35, 223, 116, 213, 10, 200, 99, 35, 223, 116, 213, 10, 200, 98, 35, 223, + 116, 213, 10, 200, 97, 35, 223, 116, 213, 10, 200, 96, 35, 223, 116, 213, + 10, 200, 94, 35, 223, 116, 213, 10, 200, 93, 35, 223, 116, 213, 10, 200, + 92, 35, 223, 116, 213, 10, 200, 91, 35, 223, 116, 213, 10, 200, 90, 35, + 223, 116, 213, 10, 200, 89, 35, 223, 116, 213, 10, 200, 88, 35, 223, 116, + 213, 10, 200, 86, 35, 223, 116, 213, 10, 200, 85, 35, 223, 116, 213, 10, + 200, 84, 35, 223, 116, 213, 10, 200, 83, 35, 223, 116, 213, 10, 200, 82, + 33, 35, 37, 197, 221, 33, 35, 37, 199, 65, 33, 35, 37, 210, 22, 35, 37, + 219, 206, 222, 93, 212, 134, 191, 77, 222, 93, 212, 134, 107, 222, 93, + 212, 134, 109, 222, 93, 212, 134, 138, 222, 93, 212, 134, 134, 222, 93, + 212, 134, 149, 222, 93, 212, 134, 169, 222, 93, 212, 134, 175, 222, 93, + 212, 134, 171, 222, 93, 212, 134, 178, 222, 93, 212, 134, 199, 95, 222, + 93, 212, 134, 234, 127, 222, 93, 212, 134, 197, 37, 222, 93, 212, 134, + 198, 251, 222, 93, 212, 134, 232, 122, 222, 93, 212, 134, 233, 19, 222, + 93, 212, 134, 202, 130, 222, 93, 212, 134, 203, 244, 222, 93, 212, 134, + 234, 161, 222, 93, 212, 134, 213, 171, 217, 20, 212, 134, 191, 77, 217, + 20, 212, 134, 107, 217, 20, 212, 134, 109, 217, 20, 212, 134, 138, 217, + 20, 212, 134, 134, 217, 20, 212, 134, 149, 217, 20, 212, 134, 169, 217, + 20, 212, 134, 175, 217, 20, 212, 134, 171, 217, 20, 212, 134, 178, 217, + 20, 212, 134, 199, 95, 217, 20, 212, 134, 234, 127, 217, 20, 212, 134, + 197, 37, 217, 20, 212, 134, 198, 251, 217, 20, 212, 134, 232, 122, 217, + 20, 212, 134, 233, 19, 217, 20, 212, 134, 202, 130, 217, 20, 212, 134, + 203, 244, 217, 20, 212, 134, 234, 161, 217, 20, 212, 134, 213, 171, 215, + 221, 40, 234, 207, 237, 6, 40, 229, 218, 234, 207, 237, 6, 40, 228, 145, + 234, 207, 237, 6, 40, 234, 206, 229, 219, 237, 6, 40, 234, 206, 228, 144, + 237, 6, 40, 234, 207, 199, 67, 40, 247, 21, 199, 67, 40, 232, 80, 243, + 10, 199, 67, 40, 216, 30, 199, 67, 40, 249, 78, 199, 67, 40, 222, 10, + 202, 70, 199, 67, 40, 239, 23, 199, 67, 40, 250, 212, 199, 67, 40, 211, + 62, 199, 67, 40, 248, 45, 211, 14, 199, 67, 40, 237, 127, 211, 57, 236, + 213, 199, 67, 40, 236, 210, 199, 67, 40, 191, 237, 199, 67, 40, 223, 153, + 199, 67, 40, 210, 32, 199, 67, 40, 207, 108, 199, 67, 40, 239, 35, 199, + 67, 40, 229, 6, 249, 146, 199, 67, 40, 193, 171, 199, 67, 40, 232, 169, + 199, 67, 40, 252, 28, 199, 67, 40, 207, 62, 199, 67, 40, 207, 34, 199, + 67, 40, 234, 205, 199, 67, 40, 222, 185, 199, 67, 40, 239, 30, 199, 67, + 40, 234, 93, 199, 67, 40, 235, 59, 199, 67, 40, 246, 244, 199, 67, 40, + 237, 137, 199, 67, 40, 28, 207, 33, 199, 67, 40, 210, 211, 199, 67, 40, + 219, 210, 199, 67, 40, 242, 217, 199, 67, 40, 221, 136, 199, 67, 40, 231, + 189, 199, 67, 40, 201, 39, 199, 67, 40, 208, 140, 199, 67, 40, 232, 79, + 199, 67, 40, 207, 35, 199, 67, 40, 219, 251, 211, 57, 216, 2, 199, 67, + 40, 207, 31, 199, 67, 40, 230, 252, 119, 216, 206, 199, 67, 40, 234, 96, + 199, 67, 40, 201, 56, 199, 67, 40, 230, 202, 199, 67, 40, 234, 86, 199, + 67, 40, 210, 83, 199, 67, 40, 206, 177, 199, 67, 40, 232, 196, 199, 67, + 40, 195, 163, 211, 57, 193, 147, 199, 67, 40, 239, 40, 199, 67, 40, 216, + 227, 199, 67, 40, 233, 250, 199, 67, 40, 196, 88, 199, 67, 40, 236, 249, + 199, 67, 40, 242, 219, 215, 179, 199, 67, 40, 230, 171, 199, 67, 40, 231, + 190, 223, 162, 199, 67, 40, 217, 32, 199, 67, 40, 252, 54, 199, 67, 40, + 234, 112, 199, 67, 40, 235, 127, 199, 67, 40, 193, 145, 199, 67, 40, 202, + 165, 199, 67, 40, 223, 126, 199, 67, 40, 237, 93, 199, 67, 40, 237, 219, + 199, 67, 40, 236, 245, 199, 67, 40, 233, 213, 199, 67, 40, 203, 240, 199, + 67, 40, 201, 60, 199, 67, 40, 230, 16, 199, 67, 40, 242, 66, 199, 67, 40, + 242, 214, 199, 67, 40, 233, 88, 199, 67, 40, 251, 248, 199, 67, 40, 242, + 65, 199, 67, 40, 211, 105, 199, 34, 195, 138, 199, 67, 40, 237, 15, 199, + 67, 40, 220, 113, 199, 67, 40, 232, 131, 238, 244, 206, 145, 196, 91, 17, + 107, 238, 244, 206, 145, 196, 91, 17, 109, 238, 244, 206, 145, 196, 91, + 17, 138, 238, 244, 206, 145, 196, 91, 17, 134, 238, 244, 206, 145, 196, + 91, 17, 149, 238, 244, 206, 145, 196, 91, 17, 169, 238, 244, 206, 145, + 196, 91, 17, 175, 238, 244, 206, 145, 196, 91, 17, 171, 238, 244, 206, + 145, 196, 91, 17, 178, 238, 244, 206, 145, 199, 91, 17, 107, 238, 244, + 206, 145, 199, 91, 17, 109, 238, 244, 206, 145, 199, 91, 17, 138, 238, + 244, 206, 145, 199, 91, 17, 134, 238, 244, 206, 145, 199, 91, 17, 149, + 238, 244, 206, 145, 199, 91, 17, 169, 238, 244, 206, 145, 199, 91, 17, + 175, 238, 244, 206, 145, 199, 91, 17, 171, 238, 244, 206, 145, 199, 91, + 17, 178, 154, 199, 198, 87, 107, 154, 199, 198, 87, 109, 154, 199, 198, + 87, 138, 154, 199, 198, 87, 134, 154, 199, 198, 87, 149, 199, 198, 87, + 107, 199, 198, 87, 149, 13, 28, 6, 65, 13, 28, 6, 250, 120, 13, 28, 6, + 247, 193, 13, 28, 6, 238, 127, 13, 28, 6, 71, 13, 28, 6, 233, 175, 13, + 28, 6, 232, 51, 13, 28, 6, 230, 116, 13, 28, 6, 68, 13, 28, 6, 223, 35, + 13, 28, 6, 222, 152, 13, 28, 6, 172, 13, 28, 6, 218, 168, 13, 28, 6, 215, + 61, 13, 28, 6, 74, 13, 28, 6, 210, 236, 13, 28, 6, 208, 104, 13, 28, 6, + 146, 13, 28, 6, 206, 8, 13, 28, 6, 200, 43, 13, 28, 6, 66, 13, 28, 6, + 196, 12, 13, 28, 6, 193, 224, 13, 28, 6, 192, 235, 13, 28, 6, 192, 159, + 13, 28, 6, 191, 166, 13, 28, 2, 65, 13, 28, 2, 250, 120, 13, 28, 2, 247, + 193, 13, 28, 2, 238, 127, 13, 28, 2, 71, 13, 28, 2, 233, 175, 13, 28, 2, + 232, 51, 13, 28, 2, 230, 116, 13, 28, 2, 68, 13, 28, 2, 223, 35, 13, 28, + 2, 222, 152, 13, 28, 2, 172, 13, 28, 2, 218, 168, 13, 28, 2, 215, 61, 13, + 28, 2, 74, 13, 28, 2, 210, 236, 13, 28, 2, 208, 104, 13, 28, 2, 146, 13, + 28, 2, 206, 8, 13, 28, 2, 200, 43, 13, 28, 2, 66, 13, 28, 2, 196, 12, 13, + 28, 2, 193, 224, 13, 28, 2, 192, 235, 13, 28, 2, 192, 159, 13, 28, 2, + 191, 166, 13, 43, 6, 65, 13, 43, 6, 250, 120, 13, 43, 6, 247, 193, 13, + 43, 6, 238, 127, 13, 43, 6, 71, 13, 43, 6, 233, 175, 13, 43, 6, 232, 51, + 13, 43, 6, 230, 116, 13, 43, 6, 68, 13, 43, 6, 223, 35, 13, 43, 6, 222, + 152, 13, 43, 6, 172, 13, 43, 6, 218, 168, 13, 43, 6, 215, 61, 13, 43, 6, + 74, 13, 43, 6, 210, 236, 13, 43, 6, 208, 104, 13, 43, 6, 146, 13, 43, 6, + 206, 8, 13, 43, 6, 200, 43, 13, 43, 6, 66, 13, 43, 6, 196, 12, 13, 43, 6, + 193, 224, 13, 43, 6, 192, 235, 13, 43, 6, 192, 159, 13, 43, 6, 191, 166, + 13, 43, 2, 65, 13, 43, 2, 250, 120, 13, 43, 2, 247, 193, 13, 43, 2, 238, + 127, 13, 43, 2, 71, 13, 43, 2, 233, 175, 13, 43, 2, 232, 51, 13, 43, 2, + 68, 13, 43, 2, 223, 35, 13, 43, 2, 222, 152, 13, 43, 2, 172, 13, 43, 2, + 218, 168, 13, 43, 2, 215, 61, 13, 43, 2, 74, 13, 43, 2, 210, 236, 13, 43, + 2, 208, 104, 13, 43, 2, 146, 13, 43, 2, 206, 8, 13, 43, 2, 200, 43, 13, + 43, 2, 66, 13, 43, 2, 196, 12, 13, 43, 2, 193, 224, 13, 43, 2, 192, 235, + 13, 43, 2, 192, 159, 13, 43, 2, 191, 166, 13, 28, 43, 6, 65, 13, 28, 43, + 6, 250, 120, 13, 28, 43, 6, 247, 193, 13, 28, 43, 6, 238, 127, 13, 28, + 43, 6, 71, 13, 28, 43, 6, 233, 175, 13, 28, 43, 6, 232, 51, 13, 28, 43, + 6, 230, 116, 13, 28, 43, 6, 68, 13, 28, 43, 6, 223, 35, 13, 28, 43, 6, + 222, 152, 13, 28, 43, 6, 172, 13, 28, 43, 6, 218, 168, 13, 28, 43, 6, + 215, 61, 13, 28, 43, 6, 74, 13, 28, 43, 6, 210, 236, 13, 28, 43, 6, 208, + 104, 13, 28, 43, 6, 146, 13, 28, 43, 6, 206, 8, 13, 28, 43, 6, 200, 43, + 13, 28, 43, 6, 66, 13, 28, 43, 6, 196, 12, 13, 28, 43, 6, 193, 224, 13, 28, 43, 6, 192, 235, 13, 28, 43, 6, 192, 159, 13, 28, 43, 6, 191, 166, - 13, 28, 43, 2, 65, 13, 28, 43, 2, 250, 70, 13, 28, 43, 2, 247, 145, 13, - 28, 43, 2, 238, 80, 13, 28, 43, 2, 73, 13, 28, 43, 2, 233, 134, 13, 28, - 43, 2, 232, 14, 13, 28, 43, 2, 230, 83, 13, 28, 43, 2, 70, 13, 28, 43, 2, - 223, 7, 13, 28, 43, 2, 222, 125, 13, 28, 43, 2, 170, 13, 28, 43, 2, 218, - 147, 13, 28, 43, 2, 215, 47, 13, 28, 43, 2, 74, 13, 28, 43, 2, 210, 226, - 13, 28, 43, 2, 208, 97, 13, 28, 43, 2, 148, 13, 28, 43, 2, 206, 3, 13, - 28, 43, 2, 200, 39, 13, 28, 43, 2, 69, 13, 28, 43, 2, 196, 8, 13, 28, 43, - 2, 193, 221, 13, 28, 43, 2, 192, 235, 13, 28, 43, 2, 192, 159, 13, 28, - 43, 2, 191, 166, 13, 27, 6, 65, 13, 27, 6, 247, 145, 13, 27, 6, 238, 80, - 13, 27, 6, 232, 14, 13, 27, 6, 223, 7, 13, 27, 6, 222, 125, 13, 27, 6, - 215, 47, 13, 27, 6, 74, 13, 27, 6, 210, 226, 13, 27, 6, 208, 97, 13, 27, - 6, 206, 3, 13, 27, 6, 200, 39, 13, 27, 6, 69, 13, 27, 6, 196, 8, 13, 27, - 6, 193, 221, 13, 27, 6, 192, 235, 13, 27, 6, 192, 159, 13, 27, 6, 191, - 166, 13, 27, 2, 65, 13, 27, 2, 250, 70, 13, 27, 2, 247, 145, 13, 27, 2, - 238, 80, 13, 27, 2, 233, 134, 13, 27, 2, 230, 83, 13, 27, 2, 70, 13, 27, - 2, 223, 7, 13, 27, 2, 222, 125, 13, 27, 2, 170, 13, 27, 2, 218, 147, 13, - 27, 2, 215, 47, 13, 27, 2, 210, 226, 13, 27, 2, 208, 97, 13, 27, 2, 148, - 13, 27, 2, 206, 3, 13, 27, 2, 200, 39, 13, 27, 2, 69, 13, 27, 2, 196, 8, - 13, 27, 2, 193, 221, 13, 27, 2, 192, 235, 13, 27, 2, 192, 159, 13, 27, 2, - 191, 166, 13, 28, 27, 6, 65, 13, 28, 27, 6, 250, 70, 13, 28, 27, 6, 247, - 145, 13, 28, 27, 6, 238, 80, 13, 28, 27, 6, 73, 13, 28, 27, 6, 233, 134, - 13, 28, 27, 6, 232, 14, 13, 28, 27, 6, 230, 83, 13, 28, 27, 6, 70, 13, - 28, 27, 6, 223, 7, 13, 28, 27, 6, 222, 125, 13, 28, 27, 6, 170, 13, 28, - 27, 6, 218, 147, 13, 28, 27, 6, 215, 47, 13, 28, 27, 6, 74, 13, 28, 27, - 6, 210, 226, 13, 28, 27, 6, 208, 97, 13, 28, 27, 6, 148, 13, 28, 27, 6, - 206, 3, 13, 28, 27, 6, 200, 39, 13, 28, 27, 6, 69, 13, 28, 27, 6, 196, 8, - 13, 28, 27, 6, 193, 221, 13, 28, 27, 6, 192, 235, 13, 28, 27, 6, 192, - 159, 13, 28, 27, 6, 191, 166, 13, 28, 27, 2, 65, 13, 28, 27, 2, 250, 70, - 13, 28, 27, 2, 247, 145, 13, 28, 27, 2, 238, 80, 13, 28, 27, 2, 73, 13, - 28, 27, 2, 233, 134, 13, 28, 27, 2, 232, 14, 13, 28, 27, 2, 230, 83, 13, - 28, 27, 2, 70, 13, 28, 27, 2, 223, 7, 13, 28, 27, 2, 222, 125, 13, 28, - 27, 2, 170, 13, 28, 27, 2, 218, 147, 13, 28, 27, 2, 215, 47, 13, 28, 27, - 2, 74, 13, 28, 27, 2, 210, 226, 13, 28, 27, 2, 208, 97, 13, 28, 27, 2, - 148, 13, 28, 27, 2, 206, 3, 13, 28, 27, 2, 200, 39, 13, 28, 27, 2, 69, - 13, 28, 27, 2, 196, 8, 13, 28, 27, 2, 193, 221, 13, 28, 27, 2, 192, 235, - 13, 28, 27, 2, 192, 159, 13, 28, 27, 2, 191, 166, 13, 232, 77, 6, 65, 13, - 232, 77, 6, 250, 70, 13, 232, 77, 6, 238, 80, 13, 232, 77, 6, 73, 13, - 232, 77, 6, 233, 134, 13, 232, 77, 6, 232, 14, 13, 232, 77, 6, 223, 7, - 13, 232, 77, 6, 222, 125, 13, 232, 77, 6, 170, 13, 232, 77, 6, 218, 147, - 13, 232, 77, 6, 215, 47, 13, 232, 77, 6, 74, 13, 232, 77, 6, 210, 226, - 13, 232, 77, 6, 208, 97, 13, 232, 77, 6, 206, 3, 13, 232, 77, 6, 200, 39, - 13, 232, 77, 6, 69, 13, 232, 77, 6, 196, 8, 13, 232, 77, 6, 193, 221, 13, - 232, 77, 6, 192, 235, 13, 232, 77, 6, 192, 159, 13, 232, 77, 2, 65, 13, - 232, 77, 2, 250, 70, 13, 232, 77, 2, 247, 145, 13, 232, 77, 2, 238, 80, - 13, 232, 77, 2, 73, 13, 232, 77, 2, 233, 134, 13, 232, 77, 2, 232, 14, - 13, 232, 77, 2, 230, 83, 13, 232, 77, 2, 70, 13, 232, 77, 2, 223, 7, 13, - 232, 77, 2, 222, 125, 13, 232, 77, 2, 170, 13, 232, 77, 2, 218, 147, 13, - 232, 77, 2, 215, 47, 13, 232, 77, 2, 74, 13, 232, 77, 2, 210, 226, 13, - 232, 77, 2, 208, 97, 13, 232, 77, 2, 148, 13, 232, 77, 2, 206, 3, 13, - 232, 77, 2, 200, 39, 13, 232, 77, 2, 69, 13, 232, 77, 2, 196, 8, 13, 232, - 77, 2, 193, 221, 13, 232, 77, 2, 192, 235, 13, 232, 77, 2, 192, 159, 13, - 232, 77, 2, 191, 166, 13, 235, 85, 6, 65, 13, 235, 85, 6, 250, 70, 13, - 235, 85, 6, 238, 80, 13, 235, 85, 6, 73, 13, 235, 85, 6, 233, 134, 13, - 235, 85, 6, 232, 14, 13, 235, 85, 6, 70, 13, 235, 85, 6, 223, 7, 13, 235, - 85, 6, 222, 125, 13, 235, 85, 6, 170, 13, 235, 85, 6, 218, 147, 13, 235, - 85, 6, 74, 13, 235, 85, 6, 206, 3, 13, 235, 85, 6, 200, 39, 13, 235, 85, - 6, 69, 13, 235, 85, 6, 196, 8, 13, 235, 85, 6, 193, 221, 13, 235, 85, 6, - 192, 235, 13, 235, 85, 6, 192, 159, 13, 235, 85, 2, 65, 13, 235, 85, 2, - 250, 70, 13, 235, 85, 2, 247, 145, 13, 235, 85, 2, 238, 80, 13, 235, 85, - 2, 73, 13, 235, 85, 2, 233, 134, 13, 235, 85, 2, 232, 14, 13, 235, 85, 2, - 230, 83, 13, 235, 85, 2, 70, 13, 235, 85, 2, 223, 7, 13, 235, 85, 2, 222, - 125, 13, 235, 85, 2, 170, 13, 235, 85, 2, 218, 147, 13, 235, 85, 2, 215, - 47, 13, 235, 85, 2, 74, 13, 235, 85, 2, 210, 226, 13, 235, 85, 2, 208, - 97, 13, 235, 85, 2, 148, 13, 235, 85, 2, 206, 3, 13, 235, 85, 2, 200, 39, - 13, 235, 85, 2, 69, 13, 235, 85, 2, 196, 8, 13, 235, 85, 2, 193, 221, 13, - 235, 85, 2, 192, 235, 13, 235, 85, 2, 192, 159, 13, 235, 85, 2, 191, 166, - 13, 28, 232, 77, 6, 65, 13, 28, 232, 77, 6, 250, 70, 13, 28, 232, 77, 6, - 247, 145, 13, 28, 232, 77, 6, 238, 80, 13, 28, 232, 77, 6, 73, 13, 28, - 232, 77, 6, 233, 134, 13, 28, 232, 77, 6, 232, 14, 13, 28, 232, 77, 6, - 230, 83, 13, 28, 232, 77, 6, 70, 13, 28, 232, 77, 6, 223, 7, 13, 28, 232, - 77, 6, 222, 125, 13, 28, 232, 77, 6, 170, 13, 28, 232, 77, 6, 218, 147, - 13, 28, 232, 77, 6, 215, 47, 13, 28, 232, 77, 6, 74, 13, 28, 232, 77, 6, - 210, 226, 13, 28, 232, 77, 6, 208, 97, 13, 28, 232, 77, 6, 148, 13, 28, - 232, 77, 6, 206, 3, 13, 28, 232, 77, 6, 200, 39, 13, 28, 232, 77, 6, 69, - 13, 28, 232, 77, 6, 196, 8, 13, 28, 232, 77, 6, 193, 221, 13, 28, 232, - 77, 6, 192, 235, 13, 28, 232, 77, 6, 192, 159, 13, 28, 232, 77, 6, 191, - 166, 13, 28, 232, 77, 2, 65, 13, 28, 232, 77, 2, 250, 70, 13, 28, 232, - 77, 2, 247, 145, 13, 28, 232, 77, 2, 238, 80, 13, 28, 232, 77, 2, 73, 13, - 28, 232, 77, 2, 233, 134, 13, 28, 232, 77, 2, 232, 14, 13, 28, 232, 77, - 2, 230, 83, 13, 28, 232, 77, 2, 70, 13, 28, 232, 77, 2, 223, 7, 13, 28, - 232, 77, 2, 222, 125, 13, 28, 232, 77, 2, 170, 13, 28, 232, 77, 2, 218, - 147, 13, 28, 232, 77, 2, 215, 47, 13, 28, 232, 77, 2, 74, 13, 28, 232, - 77, 2, 210, 226, 13, 28, 232, 77, 2, 208, 97, 13, 28, 232, 77, 2, 148, - 13, 28, 232, 77, 2, 206, 3, 13, 28, 232, 77, 2, 200, 39, 13, 28, 232, 77, - 2, 69, 13, 28, 232, 77, 2, 196, 8, 13, 28, 232, 77, 2, 193, 221, 13, 28, - 232, 77, 2, 192, 235, 13, 28, 232, 77, 2, 192, 159, 13, 28, 232, 77, 2, - 191, 166, 13, 49, 6, 65, 13, 49, 6, 250, 70, 13, 49, 6, 247, 145, 13, 49, - 6, 238, 80, 13, 49, 6, 73, 13, 49, 6, 233, 134, 13, 49, 6, 232, 14, 13, - 49, 6, 230, 83, 13, 49, 6, 70, 13, 49, 6, 223, 7, 13, 49, 6, 222, 125, - 13, 49, 6, 170, 13, 49, 6, 218, 147, 13, 49, 6, 215, 47, 13, 49, 6, 74, - 13, 49, 6, 210, 226, 13, 49, 6, 208, 97, 13, 49, 6, 148, 13, 49, 6, 206, - 3, 13, 49, 6, 200, 39, 13, 49, 6, 69, 13, 49, 6, 196, 8, 13, 49, 6, 193, - 221, 13, 49, 6, 192, 235, 13, 49, 6, 192, 159, 13, 49, 6, 191, 166, 13, - 49, 2, 65, 13, 49, 2, 250, 70, 13, 49, 2, 247, 145, 13, 49, 2, 238, 80, - 13, 49, 2, 73, 13, 49, 2, 233, 134, 13, 49, 2, 232, 14, 13, 49, 2, 230, - 83, 13, 49, 2, 70, 13, 49, 2, 223, 7, 13, 49, 2, 222, 125, 13, 49, 2, - 170, 13, 49, 2, 218, 147, 13, 49, 2, 215, 47, 13, 49, 2, 74, 13, 49, 2, - 210, 226, 13, 49, 2, 208, 97, 13, 49, 2, 148, 13, 49, 2, 206, 3, 13, 49, - 2, 200, 39, 13, 49, 2, 69, 13, 49, 2, 196, 8, 13, 49, 2, 193, 221, 13, - 49, 2, 192, 235, 13, 49, 2, 192, 159, 13, 49, 2, 191, 166, 13, 49, 28, 6, - 65, 13, 49, 28, 6, 250, 70, 13, 49, 28, 6, 247, 145, 13, 49, 28, 6, 238, - 80, 13, 49, 28, 6, 73, 13, 49, 28, 6, 233, 134, 13, 49, 28, 6, 232, 14, - 13, 49, 28, 6, 230, 83, 13, 49, 28, 6, 70, 13, 49, 28, 6, 223, 7, 13, 49, - 28, 6, 222, 125, 13, 49, 28, 6, 170, 13, 49, 28, 6, 218, 147, 13, 49, 28, - 6, 215, 47, 13, 49, 28, 6, 74, 13, 49, 28, 6, 210, 226, 13, 49, 28, 6, - 208, 97, 13, 49, 28, 6, 148, 13, 49, 28, 6, 206, 3, 13, 49, 28, 6, 200, - 39, 13, 49, 28, 6, 69, 13, 49, 28, 6, 196, 8, 13, 49, 28, 6, 193, 221, - 13, 49, 28, 6, 192, 235, 13, 49, 28, 6, 192, 159, 13, 49, 28, 6, 191, - 166, 13, 49, 28, 2, 65, 13, 49, 28, 2, 250, 70, 13, 49, 28, 2, 247, 145, - 13, 49, 28, 2, 238, 80, 13, 49, 28, 2, 73, 13, 49, 28, 2, 233, 134, 13, - 49, 28, 2, 232, 14, 13, 49, 28, 2, 230, 83, 13, 49, 28, 2, 70, 13, 49, - 28, 2, 223, 7, 13, 49, 28, 2, 222, 125, 13, 49, 28, 2, 170, 13, 49, 28, - 2, 218, 147, 13, 49, 28, 2, 215, 47, 13, 49, 28, 2, 74, 13, 49, 28, 2, - 210, 226, 13, 49, 28, 2, 208, 97, 13, 49, 28, 2, 148, 13, 49, 28, 2, 206, - 3, 13, 49, 28, 2, 200, 39, 13, 49, 28, 2, 69, 13, 49, 28, 2, 196, 8, 13, - 49, 28, 2, 193, 221, 13, 49, 28, 2, 192, 235, 13, 49, 28, 2, 192, 159, - 13, 49, 28, 2, 191, 166, 13, 49, 43, 6, 65, 13, 49, 43, 6, 250, 70, 13, - 49, 43, 6, 247, 145, 13, 49, 43, 6, 238, 80, 13, 49, 43, 6, 73, 13, 49, - 43, 6, 233, 134, 13, 49, 43, 6, 232, 14, 13, 49, 43, 6, 230, 83, 13, 49, - 43, 6, 70, 13, 49, 43, 6, 223, 7, 13, 49, 43, 6, 222, 125, 13, 49, 43, 6, - 170, 13, 49, 43, 6, 218, 147, 13, 49, 43, 6, 215, 47, 13, 49, 43, 6, 74, - 13, 49, 43, 6, 210, 226, 13, 49, 43, 6, 208, 97, 13, 49, 43, 6, 148, 13, - 49, 43, 6, 206, 3, 13, 49, 43, 6, 200, 39, 13, 49, 43, 6, 69, 13, 49, 43, - 6, 196, 8, 13, 49, 43, 6, 193, 221, 13, 49, 43, 6, 192, 235, 13, 49, 43, - 6, 192, 159, 13, 49, 43, 6, 191, 166, 13, 49, 43, 2, 65, 13, 49, 43, 2, - 250, 70, 13, 49, 43, 2, 247, 145, 13, 49, 43, 2, 238, 80, 13, 49, 43, 2, - 73, 13, 49, 43, 2, 233, 134, 13, 49, 43, 2, 232, 14, 13, 49, 43, 2, 230, - 83, 13, 49, 43, 2, 70, 13, 49, 43, 2, 223, 7, 13, 49, 43, 2, 222, 125, - 13, 49, 43, 2, 170, 13, 49, 43, 2, 218, 147, 13, 49, 43, 2, 215, 47, 13, - 49, 43, 2, 74, 13, 49, 43, 2, 210, 226, 13, 49, 43, 2, 208, 97, 13, 49, - 43, 2, 148, 13, 49, 43, 2, 206, 3, 13, 49, 43, 2, 200, 39, 13, 49, 43, 2, - 69, 13, 49, 43, 2, 196, 8, 13, 49, 43, 2, 193, 221, 13, 49, 43, 2, 192, - 235, 13, 49, 43, 2, 192, 159, 13, 49, 43, 2, 191, 166, 13, 49, 28, 43, 6, - 65, 13, 49, 28, 43, 6, 250, 70, 13, 49, 28, 43, 6, 247, 145, 13, 49, 28, - 43, 6, 238, 80, 13, 49, 28, 43, 6, 73, 13, 49, 28, 43, 6, 233, 134, 13, - 49, 28, 43, 6, 232, 14, 13, 49, 28, 43, 6, 230, 83, 13, 49, 28, 43, 6, - 70, 13, 49, 28, 43, 6, 223, 7, 13, 49, 28, 43, 6, 222, 125, 13, 49, 28, - 43, 6, 170, 13, 49, 28, 43, 6, 218, 147, 13, 49, 28, 43, 6, 215, 47, 13, - 49, 28, 43, 6, 74, 13, 49, 28, 43, 6, 210, 226, 13, 49, 28, 43, 6, 208, - 97, 13, 49, 28, 43, 6, 148, 13, 49, 28, 43, 6, 206, 3, 13, 49, 28, 43, 6, - 200, 39, 13, 49, 28, 43, 6, 69, 13, 49, 28, 43, 6, 196, 8, 13, 49, 28, - 43, 6, 193, 221, 13, 49, 28, 43, 6, 192, 235, 13, 49, 28, 43, 6, 192, - 159, 13, 49, 28, 43, 6, 191, 166, 13, 49, 28, 43, 2, 65, 13, 49, 28, 43, - 2, 250, 70, 13, 49, 28, 43, 2, 247, 145, 13, 49, 28, 43, 2, 238, 80, 13, - 49, 28, 43, 2, 73, 13, 49, 28, 43, 2, 233, 134, 13, 49, 28, 43, 2, 232, - 14, 13, 49, 28, 43, 2, 230, 83, 13, 49, 28, 43, 2, 70, 13, 49, 28, 43, 2, - 223, 7, 13, 49, 28, 43, 2, 222, 125, 13, 49, 28, 43, 2, 170, 13, 49, 28, - 43, 2, 218, 147, 13, 49, 28, 43, 2, 215, 47, 13, 49, 28, 43, 2, 74, 13, - 49, 28, 43, 2, 210, 226, 13, 49, 28, 43, 2, 208, 97, 13, 49, 28, 43, 2, - 148, 13, 49, 28, 43, 2, 206, 3, 13, 49, 28, 43, 2, 200, 39, 13, 49, 28, - 43, 2, 69, 13, 49, 28, 43, 2, 196, 8, 13, 49, 28, 43, 2, 193, 221, 13, - 49, 28, 43, 2, 192, 235, 13, 49, 28, 43, 2, 192, 159, 13, 49, 28, 43, 2, - 191, 166, 13, 215, 200, 6, 65, 13, 215, 200, 6, 250, 70, 13, 215, 200, 6, - 247, 145, 13, 215, 200, 6, 238, 80, 13, 215, 200, 6, 73, 13, 215, 200, 6, - 233, 134, 13, 215, 200, 6, 232, 14, 13, 215, 200, 6, 230, 83, 13, 215, - 200, 6, 70, 13, 215, 200, 6, 223, 7, 13, 215, 200, 6, 222, 125, 13, 215, - 200, 6, 170, 13, 215, 200, 6, 218, 147, 13, 215, 200, 6, 215, 47, 13, - 215, 200, 6, 74, 13, 215, 200, 6, 210, 226, 13, 215, 200, 6, 208, 97, 13, - 215, 200, 6, 148, 13, 215, 200, 6, 206, 3, 13, 215, 200, 6, 200, 39, 13, - 215, 200, 6, 69, 13, 215, 200, 6, 196, 8, 13, 215, 200, 6, 193, 221, 13, - 215, 200, 6, 192, 235, 13, 215, 200, 6, 192, 159, 13, 215, 200, 6, 191, - 166, 13, 215, 200, 2, 65, 13, 215, 200, 2, 250, 70, 13, 215, 200, 2, 247, - 145, 13, 215, 200, 2, 238, 80, 13, 215, 200, 2, 73, 13, 215, 200, 2, 233, - 134, 13, 215, 200, 2, 232, 14, 13, 215, 200, 2, 230, 83, 13, 215, 200, 2, - 70, 13, 215, 200, 2, 223, 7, 13, 215, 200, 2, 222, 125, 13, 215, 200, 2, - 170, 13, 215, 200, 2, 218, 147, 13, 215, 200, 2, 215, 47, 13, 215, 200, - 2, 74, 13, 215, 200, 2, 210, 226, 13, 215, 200, 2, 208, 97, 13, 215, 200, - 2, 148, 13, 215, 200, 2, 206, 3, 13, 215, 200, 2, 200, 39, 13, 215, 200, - 2, 69, 13, 215, 200, 2, 196, 8, 13, 215, 200, 2, 193, 221, 13, 215, 200, - 2, 192, 235, 13, 215, 200, 2, 192, 159, 13, 215, 200, 2, 191, 166, 13, - 43, 2, 236, 95, 70, 13, 43, 2, 236, 95, 223, 7, 13, 28, 6, 251, 109, 13, - 28, 6, 248, 162, 13, 28, 6, 231, 174, 13, 28, 6, 237, 61, 13, 28, 6, 234, - 5, 13, 28, 6, 191, 76, 13, 28, 6, 233, 211, 13, 28, 6, 199, 10, 13, 28, - 6, 223, 55, 13, 28, 6, 222, 46, 13, 28, 6, 220, 7, 13, 28, 6, 215, 139, - 13, 28, 6, 212, 165, 13, 28, 6, 192, 207, 13, 28, 6, 211, 96, 13, 28, 6, - 209, 176, 13, 28, 6, 206, 254, 13, 28, 6, 199, 11, 113, 13, 28, 6, 202, - 191, 13, 28, 6, 199, 161, 13, 28, 6, 196, 66, 13, 28, 6, 209, 202, 13, - 28, 6, 243, 47, 13, 28, 6, 208, 169, 13, 28, 6, 211, 99, 13, 28, 214, - 231, 13, 28, 2, 251, 109, 13, 28, 2, 248, 162, 13, 28, 2, 231, 174, 13, - 28, 2, 237, 61, 13, 28, 2, 234, 5, 13, 28, 2, 191, 76, 13, 28, 2, 233, - 211, 13, 28, 2, 199, 10, 13, 28, 2, 223, 55, 13, 28, 2, 222, 46, 13, 28, - 2, 220, 7, 13, 28, 2, 215, 139, 13, 28, 2, 212, 165, 13, 28, 2, 192, 207, - 13, 28, 2, 211, 96, 13, 28, 2, 209, 176, 13, 28, 2, 206, 254, 13, 28, 2, - 52, 202, 191, 13, 28, 2, 202, 191, 13, 28, 2, 199, 161, 13, 28, 2, 196, - 66, 13, 28, 2, 209, 202, 13, 28, 2, 243, 47, 13, 28, 2, 208, 169, 13, 28, - 2, 211, 99, 13, 28, 210, 95, 236, 227, 13, 28, 234, 6, 113, 13, 28, 199, - 11, 113, 13, 28, 222, 47, 113, 13, 28, 209, 203, 113, 13, 28, 206, 255, - 113, 13, 28, 209, 177, 113, 13, 43, 6, 251, 109, 13, 43, 6, 248, 162, 13, - 43, 6, 231, 174, 13, 43, 6, 237, 61, 13, 43, 6, 234, 5, 13, 43, 6, 191, - 76, 13, 43, 6, 233, 211, 13, 43, 6, 199, 10, 13, 43, 6, 223, 55, 13, 43, - 6, 222, 46, 13, 43, 6, 220, 7, 13, 43, 6, 215, 139, 13, 43, 6, 212, 165, - 13, 43, 6, 192, 207, 13, 43, 6, 211, 96, 13, 43, 6, 209, 176, 13, 43, 6, - 206, 254, 13, 43, 6, 199, 11, 113, 13, 43, 6, 202, 191, 13, 43, 6, 199, - 161, 13, 43, 6, 196, 66, 13, 43, 6, 209, 202, 13, 43, 6, 243, 47, 13, 43, - 6, 208, 169, 13, 43, 6, 211, 99, 13, 43, 214, 231, 13, 43, 2, 251, 109, - 13, 43, 2, 248, 162, 13, 43, 2, 231, 174, 13, 43, 2, 237, 61, 13, 43, 2, - 234, 5, 13, 43, 2, 191, 76, 13, 43, 2, 233, 211, 13, 43, 2, 199, 10, 13, - 43, 2, 223, 55, 13, 43, 2, 222, 46, 13, 43, 2, 220, 7, 13, 43, 2, 215, - 139, 13, 43, 2, 212, 165, 13, 43, 2, 192, 207, 13, 43, 2, 211, 96, 13, - 43, 2, 209, 176, 13, 43, 2, 206, 254, 13, 43, 2, 52, 202, 191, 13, 43, 2, - 202, 191, 13, 43, 2, 199, 161, 13, 43, 2, 196, 66, 13, 43, 2, 209, 202, - 13, 43, 2, 243, 47, 13, 43, 2, 208, 169, 13, 43, 2, 211, 99, 13, 43, 210, - 95, 236, 227, 13, 43, 234, 6, 113, 13, 43, 199, 11, 113, 13, 43, 222, 47, - 113, 13, 43, 209, 203, 113, 13, 43, 206, 255, 113, 13, 43, 209, 177, 113, - 13, 28, 43, 6, 251, 109, 13, 28, 43, 6, 248, 162, 13, 28, 43, 6, 231, - 174, 13, 28, 43, 6, 237, 61, 13, 28, 43, 6, 234, 5, 13, 28, 43, 6, 191, - 76, 13, 28, 43, 6, 233, 211, 13, 28, 43, 6, 199, 10, 13, 28, 43, 6, 223, - 55, 13, 28, 43, 6, 222, 46, 13, 28, 43, 6, 220, 7, 13, 28, 43, 6, 215, - 139, 13, 28, 43, 6, 212, 165, 13, 28, 43, 6, 192, 207, 13, 28, 43, 6, - 211, 96, 13, 28, 43, 6, 209, 176, 13, 28, 43, 6, 206, 254, 13, 28, 43, 6, - 199, 11, 113, 13, 28, 43, 6, 202, 191, 13, 28, 43, 6, 199, 161, 13, 28, - 43, 6, 196, 66, 13, 28, 43, 6, 209, 202, 13, 28, 43, 6, 243, 47, 13, 28, - 43, 6, 208, 169, 13, 28, 43, 6, 211, 99, 13, 28, 43, 214, 231, 13, 28, - 43, 2, 251, 109, 13, 28, 43, 2, 248, 162, 13, 28, 43, 2, 231, 174, 13, - 28, 43, 2, 237, 61, 13, 28, 43, 2, 234, 5, 13, 28, 43, 2, 191, 76, 13, - 28, 43, 2, 233, 211, 13, 28, 43, 2, 199, 10, 13, 28, 43, 2, 223, 55, 13, - 28, 43, 2, 222, 46, 13, 28, 43, 2, 220, 7, 13, 28, 43, 2, 215, 139, 13, - 28, 43, 2, 212, 165, 13, 28, 43, 2, 192, 207, 13, 28, 43, 2, 211, 96, 13, - 28, 43, 2, 209, 176, 13, 28, 43, 2, 206, 254, 13, 28, 43, 2, 52, 202, - 191, 13, 28, 43, 2, 202, 191, 13, 28, 43, 2, 199, 161, 13, 28, 43, 2, - 196, 66, 13, 28, 43, 2, 209, 202, 13, 28, 43, 2, 243, 47, 13, 28, 43, 2, - 208, 169, 13, 28, 43, 2, 211, 99, 13, 28, 43, 210, 95, 236, 227, 13, 28, - 43, 234, 6, 113, 13, 28, 43, 199, 11, 113, 13, 28, 43, 222, 47, 113, 13, - 28, 43, 209, 203, 113, 13, 28, 43, 206, 255, 113, 13, 28, 43, 209, 177, - 113, 13, 49, 28, 6, 251, 109, 13, 49, 28, 6, 248, 162, 13, 49, 28, 6, - 231, 174, 13, 49, 28, 6, 237, 61, 13, 49, 28, 6, 234, 5, 13, 49, 28, 6, - 191, 76, 13, 49, 28, 6, 233, 211, 13, 49, 28, 6, 199, 10, 13, 49, 28, 6, - 223, 55, 13, 49, 28, 6, 222, 46, 13, 49, 28, 6, 220, 7, 13, 49, 28, 6, - 215, 139, 13, 49, 28, 6, 212, 165, 13, 49, 28, 6, 192, 207, 13, 49, 28, - 6, 211, 96, 13, 49, 28, 6, 209, 176, 13, 49, 28, 6, 206, 254, 13, 49, 28, - 6, 199, 11, 113, 13, 49, 28, 6, 202, 191, 13, 49, 28, 6, 199, 161, 13, - 49, 28, 6, 196, 66, 13, 49, 28, 6, 209, 202, 13, 49, 28, 6, 243, 47, 13, - 49, 28, 6, 208, 169, 13, 49, 28, 6, 211, 99, 13, 49, 28, 214, 231, 13, - 49, 28, 2, 251, 109, 13, 49, 28, 2, 248, 162, 13, 49, 28, 2, 231, 174, - 13, 49, 28, 2, 237, 61, 13, 49, 28, 2, 234, 5, 13, 49, 28, 2, 191, 76, - 13, 49, 28, 2, 233, 211, 13, 49, 28, 2, 199, 10, 13, 49, 28, 2, 223, 55, - 13, 49, 28, 2, 222, 46, 13, 49, 28, 2, 220, 7, 13, 49, 28, 2, 215, 139, - 13, 49, 28, 2, 212, 165, 13, 49, 28, 2, 192, 207, 13, 49, 28, 2, 211, 96, - 13, 49, 28, 2, 209, 176, 13, 49, 28, 2, 206, 254, 13, 49, 28, 2, 52, 202, - 191, 13, 49, 28, 2, 202, 191, 13, 49, 28, 2, 199, 161, 13, 49, 28, 2, - 196, 66, 13, 49, 28, 2, 209, 202, 13, 49, 28, 2, 243, 47, 13, 49, 28, 2, - 208, 169, 13, 49, 28, 2, 211, 99, 13, 49, 28, 210, 95, 236, 227, 13, 49, - 28, 234, 6, 113, 13, 49, 28, 199, 11, 113, 13, 49, 28, 222, 47, 113, 13, - 49, 28, 209, 203, 113, 13, 49, 28, 206, 255, 113, 13, 49, 28, 209, 177, - 113, 13, 49, 28, 43, 6, 251, 109, 13, 49, 28, 43, 6, 248, 162, 13, 49, - 28, 43, 6, 231, 174, 13, 49, 28, 43, 6, 237, 61, 13, 49, 28, 43, 6, 234, - 5, 13, 49, 28, 43, 6, 191, 76, 13, 49, 28, 43, 6, 233, 211, 13, 49, 28, - 43, 6, 199, 10, 13, 49, 28, 43, 6, 223, 55, 13, 49, 28, 43, 6, 222, 46, - 13, 49, 28, 43, 6, 220, 7, 13, 49, 28, 43, 6, 215, 139, 13, 49, 28, 43, - 6, 212, 165, 13, 49, 28, 43, 6, 192, 207, 13, 49, 28, 43, 6, 211, 96, 13, - 49, 28, 43, 6, 209, 176, 13, 49, 28, 43, 6, 206, 254, 13, 49, 28, 43, 6, - 199, 11, 113, 13, 49, 28, 43, 6, 202, 191, 13, 49, 28, 43, 6, 199, 161, - 13, 49, 28, 43, 6, 196, 66, 13, 49, 28, 43, 6, 209, 202, 13, 49, 28, 43, - 6, 243, 47, 13, 49, 28, 43, 6, 208, 169, 13, 49, 28, 43, 6, 211, 99, 13, - 49, 28, 43, 214, 231, 13, 49, 28, 43, 2, 251, 109, 13, 49, 28, 43, 2, - 248, 162, 13, 49, 28, 43, 2, 231, 174, 13, 49, 28, 43, 2, 237, 61, 13, - 49, 28, 43, 2, 234, 5, 13, 49, 28, 43, 2, 191, 76, 13, 49, 28, 43, 2, - 233, 211, 13, 49, 28, 43, 2, 199, 10, 13, 49, 28, 43, 2, 223, 55, 13, 49, - 28, 43, 2, 222, 46, 13, 49, 28, 43, 2, 220, 7, 13, 49, 28, 43, 2, 215, - 139, 13, 49, 28, 43, 2, 212, 165, 13, 49, 28, 43, 2, 192, 207, 13, 49, - 28, 43, 2, 211, 96, 13, 49, 28, 43, 2, 209, 176, 13, 49, 28, 43, 2, 206, - 254, 13, 49, 28, 43, 2, 52, 202, 191, 13, 49, 28, 43, 2, 202, 191, 13, - 49, 28, 43, 2, 199, 161, 13, 49, 28, 43, 2, 196, 66, 13, 49, 28, 43, 2, - 209, 202, 13, 49, 28, 43, 2, 243, 47, 13, 49, 28, 43, 2, 208, 169, 13, - 49, 28, 43, 2, 211, 99, 13, 49, 28, 43, 210, 95, 236, 227, 13, 49, 28, - 43, 234, 6, 113, 13, 49, 28, 43, 199, 11, 113, 13, 49, 28, 43, 222, 47, - 113, 13, 49, 28, 43, 209, 203, 113, 13, 49, 28, 43, 206, 255, 113, 13, - 49, 28, 43, 209, 177, 113, 13, 28, 6, 236, 221, 13, 28, 2, 236, 221, 13, - 28, 17, 191, 77, 13, 28, 17, 108, 13, 28, 17, 109, 13, 28, 17, 139, 13, - 28, 17, 137, 13, 28, 17, 153, 13, 28, 17, 173, 13, 28, 17, 181, 13, 28, - 17, 176, 13, 28, 17, 184, 13, 235, 85, 17, 191, 77, 13, 235, 85, 17, 108, - 13, 235, 85, 17, 109, 13, 235, 85, 17, 139, 13, 235, 85, 17, 137, 13, - 235, 85, 17, 153, 13, 235, 85, 17, 173, 13, 235, 85, 17, 181, 13, 235, - 85, 17, 176, 13, 235, 85, 17, 184, 13, 49, 17, 191, 77, 13, 49, 17, 108, - 13, 49, 17, 109, 13, 49, 17, 139, 13, 49, 17, 137, 13, 49, 17, 153, 13, - 49, 17, 173, 13, 49, 17, 181, 13, 49, 17, 176, 13, 49, 17, 184, 13, 49, - 28, 17, 191, 77, 13, 49, 28, 17, 108, 13, 49, 28, 17, 109, 13, 49, 28, - 17, 139, 13, 49, 28, 17, 137, 13, 49, 28, 17, 153, 13, 49, 28, 17, 173, - 13, 49, 28, 17, 181, 13, 49, 28, 17, 176, 13, 49, 28, 17, 184, 13, 215, - 200, 17, 191, 77, 13, 215, 200, 17, 108, 13, 215, 200, 17, 109, 13, 215, - 200, 17, 139, 13, 215, 200, 17, 137, 13, 215, 200, 17, 153, 13, 215, 200, - 17, 173, 13, 215, 200, 17, 181, 13, 215, 200, 17, 176, 13, 215, 200, 17, - 184, 23, 150, 223, 120, 23, 230, 17, 223, 120, 23, 230, 13, 223, 120, 23, - 230, 2, 223, 120, 23, 230, 6, 223, 120, 23, 230, 19, 223, 120, 23, 150, - 140, 248, 173, 23, 230, 17, 140, 248, 173, 23, 150, 174, 196, 101, 140, - 248, 173, 23, 150, 140, 207, 142, 221, 46, 23, 150, 140, 238, 130, 23, - 150, 140, 229, 92, 23, 150, 140, 229, 93, 218, 219, 23, 230, 17, 140, - 229, 94, 23, 150, 140, 216, 66, 23, 230, 17, 140, 216, 66, 23, 150, 140, - 82, 248, 173, 23, 150, 140, 82, 207, 142, 221, 45, 23, 150, 140, 82, 229, - 92, 23, 150, 140, 132, 82, 229, 92, 23, 150, 140, 229, 93, 82, 196, 73, - 23, 150, 140, 82, 238, 254, 23, 150, 140, 82, 238, 255, 140, 248, 173, - 23, 150, 140, 82, 238, 255, 82, 248, 173, 23, 150, 140, 82, 238, 255, - 238, 130, 23, 150, 140, 82, 238, 255, 229, 92, 23, 150, 140, 82, 238, - 166, 23, 230, 17, 140, 82, 238, 166, 23, 150, 82, 248, 174, 138, 223, - 120, 23, 150, 140, 248, 174, 138, 216, 66, 23, 150, 140, 82, 198, 207, - 23, 230, 17, 140, 82, 198, 207, 23, 150, 140, 82, 201, 48, 174, 248, 173, - 23, 150, 140, 82, 248, 174, 174, 201, 47, 23, 150, 140, 82, 174, 248, - 173, 23, 150, 140, 82, 229, 93, 201, 194, 174, 202, 202, 23, 150, 140, - 132, 82, 229, 93, 174, 202, 202, 23, 150, 140, 132, 82, 229, 93, 174, - 238, 254, 23, 150, 140, 229, 93, 82, 132, 174, 202, 202, 23, 150, 140, - 82, 132, 201, 194, 174, 232, 94, 23, 150, 140, 82, 174, 238, 130, 23, - 150, 140, 82, 174, 242, 217, 23, 150, 140, 82, 174, 228, 217, 23, 150, - 140, 82, 174, 229, 92, 23, 150, 174, 248, 160, 140, 82, 201, 47, 23, 150, - 140, 82, 238, 255, 174, 202, 202, 23, 150, 140, 82, 238, 255, 174, 202, - 203, 238, 254, 23, 150, 140, 82, 238, 255, 174, 202, 203, 248, 173, 23, - 150, 82, 174, 228, 218, 140, 196, 73, 23, 150, 140, 174, 228, 218, 82, - 196, 73, 23, 150, 140, 82, 238, 255, 229, 93, 174, 202, 202, 23, 150, - 140, 82, 238, 167, 174, 202, 202, 23, 150, 140, 82, 238, 255, 174, 232, - 94, 23, 150, 140, 82, 238, 255, 238, 131, 174, 232, 94, 23, 150, 82, 174, - 238, 131, 140, 196, 73, 23, 150, 140, 174, 238, 131, 82, 196, 73, 23, - 150, 82, 174, 47, 140, 196, 73, 23, 150, 82, 174, 47, 140, 229, 92, 23, - 150, 140, 174, 251, 63, 211, 5, 82, 196, 73, 23, 150, 140, 174, 251, 63, - 223, 135, 82, 196, 73, 23, 150, 140, 174, 47, 82, 196, 73, 23, 150, 140, - 82, 174, 238, 255, 229, 92, 23, 150, 140, 82, 174, 251, 63, 211, 4, 23, - 150, 140, 82, 174, 251, 62, 23, 150, 82, 174, 251, 63, 211, 5, 140, 196, - 73, 23, 150, 82, 174, 251, 63, 211, 5, 140, 238, 166, 23, 150, 82, 174, - 251, 63, 140, 196, 73, 23, 150, 140, 174, 228, 218, 82, 229, 92, 23, 230, - 8, 232, 90, 232, 206, 23, 230, 8, 232, 90, 232, 207, 248, 173, 23, 230, - 8, 232, 90, 232, 207, 229, 92, 23, 230, 8, 232, 90, 232, 207, 238, 254, - 23, 230, 8, 232, 90, 232, 207, 238, 255, 201, 204, 23, 230, 15, 232, 90, - 232, 207, 238, 254, 23, 150, 232, 90, 232, 207, 238, 255, 248, 173, 23, - 230, 6, 232, 90, 232, 207, 238, 254, 23, 230, 8, 232, 185, 232, 207, 201, - 193, 23, 230, 8, 229, 181, 232, 185, 232, 207, 201, 193, 23, 230, 8, 232, - 185, 232, 207, 201, 194, 232, 90, 248, 173, 23, 230, 8, 229, 181, 232, - 185, 232, 207, 201, 194, 232, 90, 248, 173, 23, 230, 8, 232, 185, 232, - 207, 201, 194, 248, 173, 23, 230, 8, 229, 181, 232, 185, 232, 207, 201, - 194, 248, 173, 23, 230, 8, 232, 185, 232, 207, 201, 194, 174, 232, 94, - 23, 230, 13, 232, 185, 232, 207, 201, 193, 23, 230, 13, 232, 185, 232, - 207, 201, 194, 211, 65, 23, 230, 6, 232, 185, 232, 207, 201, 194, 211, - 65, 23, 230, 2, 232, 185, 232, 207, 201, 193, 23, 230, 8, 232, 185, 232, - 207, 201, 194, 229, 92, 23, 230, 8, 232, 185, 232, 207, 201, 194, 229, - 93, 174, 202, 202, 23, 230, 8, 232, 185, 232, 207, 201, 194, 229, 93, - 213, 31, 198, 207, 23, 230, 7, 23, 230, 8, 248, 160, 210, 173, 233, 54, - 23, 230, 8, 229, 180, 23, 230, 8, 174, 202, 202, 23, 230, 8, 229, 181, - 174, 202, 202, 23, 230, 8, 174, 248, 173, 23, 230, 8, 174, 232, 94, 23, - 230, 8, 201, 205, 140, 174, 202, 202, 23, 230, 8, 201, 205, 246, 229, 23, - 230, 8, 201, 205, 246, 230, 174, 202, 202, 23, 230, 8, 201, 205, 246, - 230, 174, 202, 203, 248, 173, 23, 230, 8, 201, 205, 219, 58, 23, 230, 14, - 23, 230, 15, 174, 202, 202, 23, 230, 15, 213, 31, 198, 207, 23, 230, 15, - 174, 232, 94, 23, 230, 4, 238, 126, 23, 230, 3, 23, 230, 13, 211, 65, 23, - 230, 12, 23, 230, 13, 211, 66, 174, 202, 202, 23, 230, 13, 174, 202, 202, - 23, 230, 13, 211, 66, 213, 31, 198, 207, 23, 230, 13, 213, 31, 198, 207, - 23, 230, 13, 211, 66, 174, 232, 94, 23, 230, 13, 174, 232, 94, 23, 230, - 11, 211, 65, 23, 230, 10, 23, 230, 16, 23, 230, 1, 23, 230, 2, 174, 202, - 202, 23, 230, 2, 213, 31, 198, 207, 23, 230, 2, 174, 232, 94, 23, 230, 6, - 211, 65, 23, 230, 6, 211, 66, 174, 232, 94, 23, 230, 5, 23, 230, 6, 202, - 65, 23, 230, 6, 211, 66, 174, 202, 202, 23, 230, 6, 174, 202, 202, 23, - 230, 6, 211, 66, 213, 31, 198, 207, 23, 230, 6, 213, 31, 198, 207, 23, - 230, 6, 174, 202, 203, 198, 30, 223, 120, 23, 230, 6, 174, 248, 160, 82, - 206, 183, 23, 230, 18, 23, 150, 140, 82, 206, 183, 23, 230, 17, 140, 82, - 206, 183, 23, 230, 6, 140, 82, 206, 183, 23, 230, 19, 140, 82, 206, 183, - 23, 230, 6, 219, 58, 23, 150, 140, 82, 206, 184, 248, 173, 23, 150, 140, - 82, 206, 184, 238, 254, 23, 230, 6, 140, 82, 206, 184, 238, 254, 23, 150, - 219, 59, 235, 79, 23, 150, 219, 59, 143, 206, 178, 201, 47, 23, 150, 219, - 59, 143, 206, 178, 238, 115, 23, 150, 219, 59, 143, 211, 16, 242, 217, - 23, 150, 219, 59, 196, 73, 23, 150, 174, 196, 101, 219, 59, 196, 73, 23, - 230, 17, 219, 59, 196, 73, 23, 230, 2, 219, 59, 196, 73, 23, 230, 19, - 219, 59, 196, 73, 23, 150, 219, 59, 207, 142, 221, 46, 23, 150, 219, 59, - 248, 173, 23, 150, 219, 59, 198, 31, 198, 207, 23, 150, 219, 59, 198, - 207, 23, 230, 6, 219, 59, 198, 207, 23, 150, 219, 59, 140, 198, 207, 23, - 230, 6, 219, 59, 140, 198, 207, 23, 230, 19, 219, 59, 140, 174, 140, 174, - 211, 4, 23, 230, 19, 219, 59, 140, 174, 140, 198, 207, 23, 150, 219, 59, - 223, 120, 23, 230, 17, 219, 59, 223, 120, 23, 230, 6, 219, 59, 223, 120, - 23, 230, 19, 219, 59, 223, 120, 23, 150, 140, 82, 219, 58, 23, 230, 17, - 140, 82, 219, 58, 23, 230, 6, 140, 82, 219, 58, 23, 230, 6, 206, 183, 23, - 230, 19, 140, 82, 219, 58, 23, 150, 140, 82, 238, 171, 219, 58, 23, 230, - 17, 140, 82, 238, 171, 219, 58, 23, 150, 206, 184, 235, 79, 23, 230, 6, - 206, 184, 143, 140, 174, 228, 219, 216, 66, 23, 230, 19, 206, 184, 143, - 82, 174, 140, 238, 170, 23, 150, 206, 184, 196, 73, 23, 150, 206, 184, - 207, 142, 221, 46, 23, 150, 206, 184, 219, 58, 23, 230, 17, 206, 184, - 219, 58, 23, 230, 2, 206, 184, 219, 58, 23, 230, 19, 206, 184, 219, 58, - 23, 150, 206, 184, 216, 66, 23, 150, 206, 184, 82, 238, 254, 23, 150, - 206, 184, 82, 207, 142, 221, 45, 23, 150, 206, 184, 223, 120, 23, 150, - 206, 184, 198, 207, 23, 230, 4, 206, 184, 198, 207, 23, 150, 140, 206, - 184, 219, 58, 23, 230, 17, 140, 206, 184, 219, 58, 23, 230, 11, 140, 206, - 184, 219, 59, 211, 93, 23, 230, 4, 140, 206, 184, 219, 59, 211, 4, 23, - 230, 4, 140, 206, 184, 219, 59, 223, 134, 23, 230, 4, 140, 206, 184, 219, - 59, 196, 100, 23, 230, 13, 140, 206, 184, 219, 58, 23, 230, 6, 140, 206, - 184, 219, 58, 23, 230, 19, 140, 206, 184, 219, 59, 211, 4, 23, 230, 19, - 140, 206, 184, 219, 58, 23, 150, 82, 235, 79, 23, 230, 6, 216, 66, 23, - 150, 82, 196, 73, 23, 230, 17, 82, 196, 73, 23, 150, 82, 207, 142, 221, - 46, 23, 150, 82, 132, 174, 202, 202, 23, 230, 4, 82, 198, 207, 23, 150, - 82, 174, 219, 58, 23, 150, 82, 219, 58, 23, 150, 82, 206, 184, 219, 58, - 23, 230, 17, 82, 206, 184, 219, 58, 23, 230, 11, 82, 206, 184, 219, 59, - 211, 93, 23, 230, 13, 82, 206, 184, 219, 58, 23, 230, 6, 82, 206, 184, - 219, 58, 23, 230, 19, 82, 206, 184, 219, 59, 211, 4, 23, 230, 19, 82, - 206, 184, 219, 59, 223, 134, 23, 230, 19, 82, 206, 184, 219, 58, 23, 230, - 17, 82, 206, 184, 219, 59, 248, 173, 23, 230, 15, 82, 206, 184, 219, 59, - 238, 254, 23, 230, 15, 82, 206, 184, 219, 59, 238, 255, 202, 202, 23, - 230, 4, 82, 206, 184, 219, 59, 238, 255, 211, 4, 23, 230, 4, 82, 206, - 184, 219, 59, 238, 255, 223, 134, 23, 230, 4, 82, 206, 184, 219, 59, 238, - 254, 23, 230, 6, 140, 229, 92, 23, 150, 140, 174, 202, 202, 23, 230, 6, - 140, 174, 202, 202, 23, 150, 140, 174, 202, 203, 174, 236, 249, 23, 150, - 140, 174, 202, 203, 174, 238, 254, 23, 150, 140, 174, 202, 203, 174, 248, - 173, 23, 150, 140, 174, 202, 203, 140, 248, 173, 23, 150, 140, 174, 202, - 203, 248, 32, 248, 173, 23, 150, 140, 174, 202, 203, 140, 229, 94, 23, - 150, 140, 174, 232, 95, 140, 201, 47, 23, 150, 140, 174, 232, 95, 140, - 248, 173, 23, 150, 140, 174, 106, 23, 150, 140, 174, 238, 126, 23, 150, - 140, 174, 238, 118, 174, 223, 89, 23, 230, 15, 140, 174, 238, 118, 174, - 223, 89, 23, 150, 140, 174, 238, 118, 174, 196, 100, 23, 150, 140, 174, - 242, 218, 23, 230, 13, 140, 198, 207, 23, 230, 13, 140, 174, 211, 65, 23, - 230, 6, 140, 174, 211, 65, 23, 230, 6, 140, 174, 219, 244, 23, 230, 6, - 140, 198, 207, 23, 230, 6, 140, 174, 202, 65, 23, 230, 19, 140, 174, 211, - 4, 23, 230, 19, 140, 174, 223, 134, 23, 230, 19, 140, 198, 207, 23, 150, - 198, 207, 23, 150, 174, 229, 180, 23, 150, 174, 202, 203, 236, 249, 23, - 150, 174, 202, 203, 238, 254, 23, 150, 174, 202, 203, 248, 173, 23, 150, - 174, 232, 94, 23, 150, 174, 248, 160, 140, 216, 66, 23, 150, 174, 248, - 160, 82, 206, 183, 23, 150, 174, 248, 160, 206, 184, 219, 58, 23, 150, - 174, 196, 101, 103, 232, 206, 23, 150, 174, 138, 103, 232, 206, 23, 150, - 174, 196, 101, 115, 232, 206, 23, 150, 174, 196, 101, 232, 90, 232, 206, - 23, 150, 174, 138, 232, 90, 207, 142, 221, 45, 23, 230, 9, 23, 150, 229, - 180, 23, 198, 32, 202, 164, 23, 198, 32, 215, 113, 23, 198, 32, 248, 159, - 23, 230, 181, 202, 164, 23, 230, 181, 215, 113, 23, 230, 181, 248, 159, - 23, 201, 28, 202, 164, 23, 201, 28, 215, 113, 23, 201, 28, 248, 159, 23, - 247, 226, 202, 164, 23, 247, 226, 215, 113, 23, 247, 226, 248, 159, 23, - 206, 55, 202, 164, 23, 206, 55, 215, 113, 23, 206, 55, 248, 159, 23, 200, - 166, 200, 72, 23, 200, 166, 248, 159, 23, 201, 181, 219, 245, 202, 164, - 23, 201, 181, 2, 202, 164, 23, 201, 181, 219, 245, 215, 113, 23, 201, - 181, 2, 215, 113, 23, 201, 181, 204, 1, 23, 232, 157, 219, 245, 202, 164, - 23, 232, 157, 2, 202, 164, 23, 232, 157, 219, 245, 215, 113, 23, 232, - 157, 2, 215, 113, 23, 232, 157, 204, 1, 23, 201, 181, 232, 157, 251, 103, - 23, 215, 156, 132, 143, 219, 244, 23, 215, 156, 132, 143, 202, 65, 23, - 215, 156, 132, 204, 1, 23, 215, 156, 143, 204, 1, 23, 215, 156, 132, 143, - 251, 104, 219, 244, 23, 215, 156, 132, 143, 251, 104, 202, 65, 23, 215, - 156, 202, 203, 118, 202, 203, 205, 79, 23, 215, 155, 232, 212, 238, 244, - 23, 215, 157, 232, 212, 238, 244, 23, 215, 155, 202, 165, 201, 48, 202, - 65, 23, 215, 155, 202, 165, 201, 48, 216, 193, 23, 215, 155, 202, 165, - 201, 48, 219, 244, 23, 215, 155, 202, 165, 201, 48, 219, 242, 23, 215, - 155, 202, 165, 193, 4, 232, 160, 23, 215, 155, 54, 201, 47, 23, 215, 155, - 54, 193, 4, 232, 160, 23, 215, 155, 54, 251, 103, 23, 215, 155, 54, 251, - 104, 193, 4, 232, 160, 23, 215, 155, 238, 170, 23, 215, 155, 197, 221, - 201, 48, 215, 159, 23, 215, 155, 197, 221, 193, 4, 232, 160, 23, 215, - 155, 197, 221, 251, 103, 23, 215, 155, 197, 221, 251, 104, 193, 4, 232, - 160, 23, 215, 155, 248, 178, 202, 65, 23, 215, 155, 248, 178, 216, 193, - 23, 215, 155, 248, 178, 219, 244, 23, 215, 155, 238, 211, 202, 65, 23, - 215, 155, 238, 211, 216, 193, 23, 215, 155, 238, 211, 219, 244, 23, 215, - 155, 238, 211, 206, 115, 23, 215, 155, 243, 78, 202, 65, 23, 215, 155, - 243, 78, 216, 193, 23, 215, 155, 243, 78, 219, 244, 23, 215, 155, 111, - 202, 65, 23, 215, 155, 111, 216, 193, 23, 215, 155, 111, 219, 244, 23, - 215, 155, 191, 21, 202, 65, 23, 215, 155, 191, 21, 216, 193, 23, 215, - 155, 191, 21, 219, 244, 23, 215, 155, 210, 48, 202, 65, 23, 215, 155, - 210, 48, 216, 193, 23, 215, 155, 210, 48, 219, 244, 23, 197, 255, 206, - 113, 202, 164, 23, 197, 255, 206, 113, 235, 89, 23, 197, 255, 206, 113, - 251, 103, 23, 197, 255, 206, 114, 202, 164, 23, 197, 255, 206, 114, 235, - 89, 23, 197, 255, 206, 114, 251, 103, 23, 197, 255, 203, 139, 23, 197, - 255, 250, 201, 201, 213, 202, 164, 23, 197, 255, 250, 201, 201, 213, 235, - 89, 23, 197, 255, 250, 201, 201, 213, 197, 220, 23, 215, 158, 250, 89, - 202, 65, 23, 215, 158, 250, 89, 216, 193, 23, 215, 158, 250, 89, 219, - 244, 23, 215, 158, 250, 89, 219, 242, 23, 215, 158, 198, 26, 202, 65, 23, - 215, 158, 198, 26, 216, 193, 23, 215, 158, 198, 26, 219, 244, 23, 215, - 158, 198, 26, 219, 242, 23, 215, 158, 248, 160, 250, 89, 202, 65, 23, - 215, 158, 248, 160, 250, 89, 216, 193, 23, 215, 158, 248, 160, 250, 89, - 219, 244, 23, 215, 158, 248, 160, 250, 89, 219, 242, 23, 215, 158, 248, - 160, 198, 26, 202, 65, 23, 215, 158, 248, 160, 198, 26, 216, 193, 23, - 215, 158, 248, 160, 198, 26, 219, 244, 23, 215, 158, 248, 160, 198, 26, - 219, 242, 23, 215, 157, 202, 165, 201, 48, 202, 65, 23, 215, 157, 202, - 165, 201, 48, 216, 193, 23, 215, 157, 202, 165, 201, 48, 219, 244, 23, - 215, 157, 202, 165, 201, 48, 219, 242, 23, 215, 157, 202, 165, 193, 4, - 232, 160, 23, 215, 157, 54, 201, 47, 23, 215, 157, 54, 193, 4, 232, 160, - 23, 215, 157, 54, 251, 103, 23, 215, 157, 54, 251, 104, 193, 4, 232, 160, - 23, 215, 157, 238, 170, 23, 215, 157, 197, 221, 201, 48, 215, 159, 23, - 215, 157, 197, 221, 193, 4, 232, 160, 23, 215, 157, 197, 221, 251, 104, - 215, 159, 23, 215, 157, 197, 221, 251, 104, 193, 4, 232, 160, 23, 215, - 157, 248, 177, 23, 215, 157, 238, 211, 202, 65, 23, 215, 157, 238, 211, - 216, 193, 23, 215, 157, 238, 211, 219, 244, 23, 215, 157, 243, 77, 23, - 215, 157, 111, 202, 65, 23, 215, 157, 111, 216, 193, 23, 215, 157, 111, - 219, 244, 23, 215, 157, 191, 21, 202, 65, 23, 215, 157, 191, 21, 216, - 193, 23, 215, 157, 191, 21, 219, 244, 23, 215, 157, 210, 48, 202, 65, 23, - 215, 157, 210, 48, 216, 193, 23, 215, 157, 210, 48, 219, 244, 23, 198, 0, - 206, 114, 202, 164, 23, 198, 0, 206, 114, 235, 89, 23, 198, 0, 206, 114, - 251, 103, 23, 198, 0, 206, 113, 202, 164, 23, 198, 0, 206, 113, 235, 89, - 23, 198, 0, 206, 113, 251, 103, 23, 198, 0, 203, 139, 23, 215, 155, 238, - 118, 208, 18, 202, 65, 23, 215, 155, 238, 118, 208, 18, 216, 193, 23, - 215, 155, 238, 118, 208, 18, 219, 244, 23, 215, 155, 238, 118, 208, 18, - 219, 242, 23, 215, 155, 238, 118, 230, 34, 202, 65, 23, 215, 155, 238, - 118, 230, 34, 216, 193, 23, 215, 155, 238, 118, 230, 34, 219, 244, 23, - 215, 155, 238, 118, 230, 34, 219, 242, 23, 215, 155, 238, 118, 198, 213, - 242, 219, 202, 65, 23, 215, 155, 238, 118, 198, 213, 242, 219, 216, 193, - 23, 215, 155, 228, 112, 202, 65, 23, 215, 155, 228, 112, 216, 193, 23, - 215, 155, 228, 112, 219, 244, 23, 215, 155, 218, 237, 202, 65, 23, 215, - 155, 218, 237, 216, 193, 23, 215, 155, 218, 237, 219, 244, 23, 215, 155, - 218, 237, 2, 235, 89, 23, 215, 155, 193, 137, 238, 118, 54, 202, 65, 23, - 215, 155, 193, 137, 238, 118, 54, 216, 193, 23, 215, 155, 193, 137, 238, - 118, 54, 219, 244, 23, 215, 155, 193, 137, 238, 118, 197, 221, 202, 65, - 23, 215, 155, 193, 137, 238, 118, 197, 221, 216, 193, 23, 215, 155, 193, - 137, 238, 118, 197, 221, 219, 244, 23, 215, 155, 238, 118, 199, 20, 201, - 47, 23, 215, 155, 238, 116, 238, 171, 202, 65, 23, 215, 155, 238, 116, - 238, 171, 216, 193, 23, 206, 113, 202, 164, 23, 206, 113, 235, 89, 23, - 206, 113, 251, 105, 23, 215, 155, 203, 139, 23, 215, 155, 238, 118, 229, - 84, 232, 59, 193, 164, 23, 215, 155, 228, 112, 229, 84, 232, 59, 193, - 164, 23, 215, 155, 218, 237, 229, 84, 232, 59, 193, 164, 23, 215, 155, - 193, 137, 229, 84, 232, 59, 193, 164, 23, 206, 113, 202, 165, 229, 84, - 232, 59, 193, 164, 23, 206, 113, 54, 229, 84, 232, 59, 193, 164, 23, 206, - 113, 251, 104, 229, 84, 232, 59, 193, 164, 23, 215, 155, 238, 118, 229, - 84, 243, 56, 23, 215, 155, 228, 112, 229, 84, 243, 56, 23, 215, 155, 218, - 237, 229, 84, 243, 56, 23, 215, 155, 193, 137, 229, 84, 243, 56, 23, 206, - 113, 202, 165, 229, 84, 243, 56, 23, 206, 113, 54, 229, 84, 243, 56, 23, - 206, 113, 251, 104, 229, 84, 243, 56, 23, 215, 155, 193, 137, 236, 250, - 210, 76, 202, 65, 23, 215, 155, 193, 137, 236, 250, 210, 76, 216, 193, - 23, 215, 155, 193, 137, 236, 250, 210, 76, 219, 244, 23, 215, 157, 238, - 118, 229, 84, 246, 239, 202, 65, 23, 215, 157, 238, 118, 229, 84, 246, - 239, 219, 244, 23, 215, 157, 228, 112, 229, 84, 246, 239, 2, 235, 89, 23, - 215, 157, 228, 112, 229, 84, 246, 239, 219, 245, 235, 89, 23, 215, 157, - 228, 112, 229, 84, 246, 239, 2, 197, 220, 23, 215, 157, 228, 112, 229, - 84, 246, 239, 219, 245, 197, 220, 23, 215, 157, 218, 237, 229, 84, 246, - 239, 2, 202, 164, 23, 215, 157, 218, 237, 229, 84, 246, 239, 219, 245, - 202, 164, 23, 215, 157, 218, 237, 229, 84, 246, 239, 2, 235, 89, 23, 215, - 157, 218, 237, 229, 84, 246, 239, 219, 245, 235, 89, 23, 215, 157, 193, - 137, 229, 84, 246, 239, 202, 65, 23, 215, 157, 193, 137, 229, 84, 246, - 239, 219, 244, 23, 206, 114, 202, 165, 229, 84, 246, 238, 23, 206, 114, - 54, 229, 84, 246, 238, 23, 206, 114, 251, 104, 229, 84, 246, 238, 23, - 215, 157, 238, 118, 229, 84, 232, 154, 202, 65, 23, 215, 157, 238, 118, - 229, 84, 232, 154, 219, 244, 23, 215, 157, 228, 112, 229, 84, 232, 154, - 2, 235, 89, 23, 215, 157, 228, 112, 229, 84, 232, 154, 219, 245, 235, 89, - 23, 215, 157, 228, 112, 229, 84, 232, 154, 197, 221, 2, 197, 220, 23, - 215, 157, 228, 112, 229, 84, 232, 154, 197, 221, 219, 245, 197, 220, 23, - 215, 157, 218, 237, 229, 84, 232, 154, 2, 202, 164, 23, 215, 157, 218, - 237, 229, 84, 232, 154, 219, 245, 202, 164, 23, 215, 157, 218, 237, 229, - 84, 232, 154, 2, 235, 89, 23, 215, 157, 218, 237, 229, 84, 232, 154, 219, - 245, 235, 89, 23, 215, 157, 193, 137, 229, 84, 232, 154, 202, 65, 23, - 215, 157, 193, 137, 229, 84, 232, 154, 219, 244, 23, 206, 114, 202, 165, - 229, 84, 232, 153, 23, 206, 114, 54, 229, 84, 232, 153, 23, 206, 114, - 251, 104, 229, 84, 232, 153, 23, 215, 157, 238, 118, 202, 65, 23, 215, - 157, 238, 118, 216, 193, 23, 215, 157, 238, 118, 219, 244, 23, 215, 157, - 238, 118, 219, 242, 23, 215, 157, 238, 118, 242, 30, 23, 215, 157, 228, - 112, 202, 65, 23, 215, 157, 218, 237, 202, 65, 23, 215, 157, 193, 137, - 202, 53, 23, 215, 157, 193, 137, 202, 65, 23, 215, 157, 193, 137, 219, - 244, 23, 206, 114, 202, 164, 23, 206, 114, 235, 89, 23, 206, 114, 251, - 103, 23, 215, 157, 203, 140, 210, 108, 23, 215, 155, 250, 201, 242, 219, - 2, 202, 164, 23, 215, 155, 250, 201, 242, 219, 216, 194, 202, 164, 23, - 215, 155, 250, 201, 242, 219, 2, 235, 89, 23, 215, 155, 250, 201, 242, - 219, 216, 194, 235, 89, 23, 215, 157, 250, 201, 242, 219, 229, 84, 193, - 165, 2, 202, 164, 23, 215, 157, 250, 201, 242, 219, 229, 84, 193, 165, - 216, 194, 202, 164, 23, 215, 157, 250, 201, 242, 219, 229, 84, 193, 165, - 219, 245, 202, 164, 23, 215, 157, 250, 201, 242, 219, 229, 84, 193, 165, - 2, 235, 89, 23, 215, 157, 250, 201, 242, 219, 229, 84, 193, 165, 216, - 194, 235, 89, 23, 215, 157, 250, 201, 242, 219, 229, 84, 193, 165, 219, - 245, 235, 89, 23, 215, 155, 193, 4, 242, 219, 232, 59, 202, 164, 23, 215, - 155, 193, 4, 242, 219, 232, 59, 235, 89, 23, 215, 157, 193, 4, 242, 219, - 229, 84, 193, 165, 202, 164, 23, 215, 157, 193, 4, 242, 219, 229, 84, - 193, 165, 235, 89, 23, 215, 155, 232, 212, 242, 216, 202, 164, 23, 215, - 155, 232, 212, 242, 216, 235, 89, 23, 215, 157, 232, 212, 242, 216, 229, - 84, 193, 165, 202, 164, 23, 215, 157, 232, 212, 242, 216, 229, 84, 193, - 165, 235, 89, 23, 234, 252, 250, 186, 202, 65, 23, 234, 252, 250, 186, - 219, 244, 23, 234, 252, 233, 32, 23, 234, 252, 202, 70, 23, 234, 252, - 199, 83, 23, 234, 252, 207, 58, 23, 234, 252, 202, 171, 23, 234, 252, - 202, 172, 251, 103, 23, 234, 252, 233, 184, 211, 17, 198, 141, 23, 234, - 252, 230, 192, 23, 229, 203, 23, 229, 204, 206, 188, 23, 229, 204, 215, - 155, 201, 47, 23, 229, 204, 215, 155, 198, 144, 23, 229, 204, 215, 157, - 201, 47, 23, 229, 204, 215, 155, 238, 117, 23, 229, 204, 215, 157, 238, - 117, 23, 229, 204, 215, 160, 242, 218, 23, 233, 63, 236, 188, 209, 18, - 213, 1, 232, 95, 198, 142, 23, 233, 63, 236, 188, 209, 18, 213, 1, 132, - 211, 46, 235, 79, 23, 233, 63, 236, 188, 209, 18, 213, 1, 132, 211, 46, - 143, 198, 142, 23, 233, 150, 201, 48, 196, 73, 23, 233, 150, 201, 48, - 214, 67, 23, 233, 150, 201, 48, 235, 79, 23, 235, 63, 233, 150, 214, 68, - 235, 79, 23, 235, 63, 233, 150, 143, 214, 67, 23, 235, 63, 233, 150, 132, - 214, 67, 23, 235, 63, 233, 150, 214, 68, 196, 73, 23, 232, 112, 214, 67, - 23, 232, 112, 238, 244, 23, 232, 112, 193, 7, 23, 233, 145, 211, 65, 23, - 233, 145, 201, 180, 23, 233, 145, 242, 170, 23, 233, 153, 248, 82, 202, - 164, 23, 233, 153, 248, 82, 215, 113, 23, 233, 145, 134, 211, 65, 23, - 233, 145, 193, 76, 211, 65, 23, 233, 145, 134, 242, 170, 23, 233, 145, - 193, 74, 215, 159, 23, 233, 153, 193, 57, 23, 233, 146, 196, 73, 23, 233, - 146, 235, 79, 23, 233, 146, 232, 140, 23, 233, 148, 201, 47, 23, 233, - 148, 201, 48, 235, 89, 23, 233, 148, 201, 48, 251, 103, 23, 233, 149, - 201, 47, 23, 233, 149, 201, 48, 235, 89, 23, 233, 149, 201, 48, 251, 103, - 23, 233, 148, 238, 115, 23, 233, 149, 238, 115, 23, 233, 148, 242, 213, - 23, 243, 73, 208, 148, 23, 243, 73, 214, 67, 23, 243, 73, 200, 213, 23, - 199, 84, 243, 73, 229, 103, 23, 199, 84, 243, 73, 216, 66, 23, 199, 84, - 243, 73, 218, 219, 23, 234, 165, 23, 213, 1, 214, 67, 23, 213, 1, 238, - 244, 23, 213, 1, 193, 5, 23, 213, 1, 193, 71, 23, 251, 174, 248, 68, 211, - 4, 23, 251, 174, 200, 212, 223, 134, 23, 251, 174, 248, 70, 2, 206, 112, - 23, 251, 174, 200, 214, 2, 206, 112, 23, 247, 247, 223, 106, 23, 247, - 247, 233, 173, 23, 215, 164, 242, 171, 214, 67, 23, 215, 164, 242, 171, - 232, 94, 23, 215, 164, 242, 171, 238, 244, 23, 215, 164, 202, 60, 23, - 215, 164, 202, 61, 193, 7, 23, 215, 164, 202, 61, 211, 65, 23, 215, 164, - 232, 55, 23, 215, 164, 232, 56, 193, 7, 23, 215, 164, 232, 56, 211, 65, - 23, 215, 164, 211, 66, 242, 218, 23, 215, 164, 211, 66, 232, 94, 23, 215, - 164, 211, 66, 193, 7, 23, 215, 164, 211, 66, 210, 253, 23, 215, 164, 211, - 66, 210, 254, 193, 7, 23, 215, 164, 211, 66, 210, 254, 192, 88, 23, 215, - 164, 211, 66, 207, 87, 23, 215, 164, 211, 66, 207, 88, 193, 7, 23, 215, - 164, 211, 66, 207, 88, 192, 88, 23, 215, 164, 221, 98, 23, 215, 164, 221, - 99, 232, 94, 23, 215, 164, 221, 99, 193, 7, 23, 215, 164, 199, 83, 23, - 215, 164, 199, 84, 232, 94, 23, 215, 164, 199, 84, 200, 213, 23, 219, 73, - 208, 212, 198, 82, 23, 219, 75, 110, 138, 196, 70, 23, 219, 75, 116, 138, - 218, 214, 23, 215, 164, 238, 209, 23, 215, 164, 193, 6, 202, 164, 23, - 215, 164, 193, 6, 235, 89, 23, 198, 57, 201, 69, 211, 5, 233, 34, 23, - 198, 57, 219, 118, 219, 72, 23, 198, 57, 198, 131, 248, 160, 219, 72, 23, - 198, 57, 198, 131, 198, 30, 223, 90, 215, 163, 23, 198, 57, 223, 90, 215, - 164, 207, 58, 23, 198, 57, 215, 154, 251, 199, 243, 74, 23, 198, 57, 246, - 230, 201, 69, 211, 4, 23, 198, 57, 246, 230, 223, 90, 215, 163, 23, 199, - 112, 23, 199, 113, 215, 159, 23, 199, 113, 211, 94, 198, 56, 23, 199, - 113, 211, 94, 198, 57, 215, 159, 23, 199, 113, 211, 94, 219, 72, 23, 199, - 113, 211, 94, 219, 73, 215, 159, 23, 199, 113, 248, 98, 219, 72, 23, 215, - 155, 222, 242, 23, 215, 157, 222, 242, 23, 214, 98, 23, 230, 45, 23, 233, - 176, 23, 203, 17, 229, 91, 201, 214, 23, 203, 17, 229, 91, 209, 16, 23, - 193, 163, 203, 17, 229, 91, 215, 162, 23, 232, 152, 203, 17, 229, 91, - 215, 162, 23, 203, 17, 198, 143, 232, 60, 193, 169, 23, 198, 38, 201, 48, - 201, 32, 23, 198, 38, 238, 116, 248, 177, 23, 198, 39, 197, 12, 23, 116, - 248, 57, 198, 143, 232, 60, 229, 91, 222, 168, 23, 219, 100, 242, 31, 23, - 219, 100, 219, 173, 23, 219, 100, 219, 172, 23, 219, 100, 219, 171, 23, - 219, 100, 219, 170, 23, 219, 100, 219, 169, 23, 219, 100, 219, 168, 23, - 219, 100, 219, 167, 23, 232, 211, 23, 219, 13, 201, 242, 23, 219, 14, - 201, 242, 23, 219, 16, 229, 176, 23, 219, 16, 193, 72, 23, 219, 16, 237, - 47, 23, 219, 16, 229, 204, 214, 98, 23, 219, 16, 198, 40, 23, 219, 16, - 219, 99, 236, 220, 23, 242, 26, 23, 232, 42, 201, 58, 23, 204, 20, 23, - 242, 35, 23, 210, 103, 23, 232, 221, 215, 227, 23, 232, 221, 215, 226, - 23, 232, 221, 215, 225, 23, 232, 221, 215, 224, 23, 232, 221, 215, 223, - 23, 206, 116, 215, 227, 23, 206, 116, 215, 226, 23, 206, 116, 215, 225, - 23, 206, 116, 215, 224, 23, 206, 116, 215, 223, 23, 206, 116, 215, 222, - 23, 206, 116, 215, 221, 23, 206, 116, 215, 220, 23, 206, 116, 215, 234, - 23, 206, 116, 215, 233, 23, 206, 116, 215, 232, 23, 206, 116, 215, 231, - 23, 206, 116, 215, 230, 23, 206, 116, 215, 229, 23, 206, 116, 215, 228, - 8, 2, 1, 232, 252, 236, 214, 4, 197, 224, 8, 2, 1, 207, 13, 27, 232, 14, - 8, 1, 2, 6, 152, 232, 14, 8, 2, 1, 207, 13, 222, 125, 8, 1, 2, 6, 220, - 119, 4, 248, 181, 8, 2, 1, 219, 139, 4, 207, 19, 106, 8, 2, 1, 152, 192, - 160, 4, 248, 181, 8, 2, 1, 207, 13, 234, 46, 8, 2, 1, 152, 207, 217, 4, - 177, 219, 189, 24, 207, 19, 106, 8, 2, 1, 200, 40, 4, 228, 219, 24, 207, - 19, 106, 8, 1, 207, 19, 242, 184, 4, 207, 19, 106, 8, 2, 1, 233, 227, 4, - 54, 164, 8, 2, 1, 233, 227, 4, 54, 249, 38, 24, 238, 128, 8, 2, 1, 152, - 200, 40, 4, 238, 128, 8, 1, 223, 65, 230, 231, 201, 59, 4, 238, 128, 8, - 1, 201, 31, 247, 146, 4, 238, 128, 8, 1, 2, 6, 152, 222, 125, 8, 2, 1, - 220, 119, 4, 232, 192, 8, 2, 1, 237, 25, 236, 214, 4, 210, 182, 106, 8, - 2, 1, 220, 119, 4, 248, 182, 24, 210, 182, 106, 8, 2, 1, 234, 47, 4, 210, - 182, 106, 8, 2, 1, 152, 207, 217, 4, 210, 182, 106, 8, 2, 1, 207, 217, 4, - 232, 193, 24, 210, 182, 106, 8, 2, 1, 199, 74, 236, 214, 4, 210, 182, - 106, 8, 2, 1, 233, 138, 4, 210, 182, 106, 8, 2, 1, 237, 25, 236, 214, 4, - 207, 19, 106, 8, 2, 1, 228, 44, 4, 201, 23, 24, 207, 19, 106, 8, 2, 1, - 186, 4, 207, 19, 106, 8, 2, 1, 199, 74, 236, 214, 4, 207, 19, 106, 8, 2, - 1, 247, 146, 4, 207, 19, 106, 8, 2, 1, 206, 4, 4, 238, 128, 33, 133, 1, - 250, 72, 33, 133, 1, 247, 204, 33, 133, 1, 195, 148, 33, 133, 1, 230, - 238, 33, 133, 1, 236, 124, 33, 133, 1, 192, 49, 33, 133, 1, 191, 55, 33, - 133, 1, 191, 82, 33, 133, 1, 223, 11, 33, 133, 1, 89, 223, 11, 33, 133, - 1, 70, 33, 133, 1, 236, 145, 33, 133, 1, 222, 67, 33, 133, 1, 219, 51, - 33, 133, 1, 215, 52, 33, 133, 1, 214, 196, 33, 133, 1, 211, 78, 33, 133, - 1, 209, 48, 33, 133, 1, 206, 174, 33, 133, 1, 202, 72, 33, 133, 1, 197, - 40, 33, 133, 1, 196, 120, 33, 133, 1, 232, 63, 33, 133, 1, 229, 156, 33, - 133, 1, 203, 3, 33, 133, 1, 197, 142, 33, 133, 1, 243, 6, 33, 133, 1, - 203, 160, 33, 133, 1, 192, 58, 33, 133, 1, 192, 60, 33, 133, 1, 192, 93, - 33, 133, 1, 191, 225, 33, 133, 1, 2, 191, 190, 33, 133, 1, 192, 12, 33, - 133, 1, 223, 54, 2, 191, 190, 33, 133, 1, 248, 127, 191, 190, 33, 133, 1, - 223, 54, 248, 127, 191, 190, 33, 133, 1, 232, 187, 212, 67, 208, 155, 90, - 1, 172, 212, 67, 208, 155, 90, 1, 197, 164, 212, 67, 208, 155, 90, 1, - 212, 186, 212, 67, 208, 155, 90, 1, 199, 247, 212, 67, 208, 155, 90, 1, - 144, 212, 67, 208, 155, 90, 1, 180, 212, 67, 208, 155, 90, 1, 192, 220, - 212, 67, 208, 155, 90, 1, 213, 98, 212, 67, 208, 155, 90, 1, 247, 112, - 212, 67, 208, 155, 90, 1, 171, 212, 67, 208, 155, 90, 1, 189, 212, 67, - 208, 155, 90, 1, 191, 123, 212, 67, 208, 155, 90, 1, 214, 152, 212, 67, - 208, 155, 90, 1, 212, 173, 212, 67, 208, 155, 90, 1, 157, 212, 67, 208, - 155, 90, 1, 237, 241, 212, 67, 208, 155, 90, 1, 212, 88, 212, 67, 208, - 155, 90, 1, 212, 231, 212, 67, 208, 155, 90, 1, 195, 185, 212, 67, 208, - 155, 90, 1, 212, 167, 212, 67, 208, 155, 90, 1, 197, 4, 212, 67, 208, - 155, 90, 1, 233, 68, 212, 67, 208, 155, 90, 1, 166, 212, 67, 208, 155, - 90, 1, 208, 89, 212, 67, 208, 155, 90, 1, 169, 212, 67, 208, 155, 90, 1, - 212, 233, 212, 67, 208, 155, 90, 1, 168, 212, 67, 208, 155, 90, 1, 192, - 175, 212, 67, 208, 155, 90, 1, 212, 235, 212, 67, 208, 155, 90, 1, 236, - 141, 212, 67, 208, 155, 90, 1, 212, 234, 212, 67, 208, 155, 90, 1, 230, - 48, 212, 67, 208, 155, 90, 1, 216, 2, 212, 67, 208, 155, 90, 1, 209, 102, - 212, 67, 208, 155, 90, 1, 231, 203, 212, 67, 208, 155, 90, 1, 206, 104, - 212, 67, 208, 155, 90, 1, 65, 212, 67, 208, 155, 90, 1, 252, 154, 212, - 67, 208, 155, 90, 1, 70, 212, 67, 208, 155, 90, 1, 69, 212, 67, 208, 155, - 90, 1, 74, 212, 67, 208, 155, 90, 1, 211, 76, 212, 67, 208, 155, 90, 1, - 73, 212, 67, 208, 155, 90, 1, 234, 145, 212, 67, 208, 155, 90, 1, 193, - 221, 212, 67, 208, 155, 90, 198, 65, 212, 67, 208, 155, 90, 198, 61, 212, - 67, 208, 155, 90, 198, 62, 212, 67, 208, 155, 90, 198, 59, 212, 67, 208, - 155, 90, 198, 60, 212, 67, 208, 155, 90, 198, 63, 212, 67, 208, 155, 90, - 198, 64, 212, 67, 208, 155, 90, 3, 39, 209, 241, 212, 67, 208, 155, 90, - 3, 39, 198, 254, 212, 67, 208, 155, 90, 3, 39, 219, 15, 212, 67, 208, - 155, 90, 3, 39, 251, 50, 212, 67, 208, 155, 90, 3, 39, 223, 66, 212, 67, - 208, 155, 90, 3, 192, 183, 192, 182, 212, 67, 208, 155, 90, 5, 219, 166, - 212, 67, 208, 155, 90, 17, 191, 77, 212, 67, 208, 155, 90, 17, 108, 212, - 67, 208, 155, 90, 17, 109, 212, 67, 208, 155, 90, 17, 139, 212, 67, 208, - 155, 90, 17, 137, 212, 67, 208, 155, 90, 17, 153, 212, 67, 208, 155, 90, - 17, 173, 212, 67, 208, 155, 90, 17, 181, 212, 67, 208, 155, 90, 17, 176, - 212, 67, 208, 155, 90, 17, 184, 212, 67, 208, 155, 90, 219, 4, 212, 83, - 212, 67, 208, 155, 90, 47, 247, 112, 198, 33, 1, 168, 198, 33, 1, 249, - 103, 198, 33, 1, 199, 247, 198, 33, 1, 237, 241, 198, 33, 1, 157, 198, - 33, 1, 231, 203, 198, 33, 1, 172, 198, 33, 1, 180, 198, 33, 1, 214, 54, - 198, 33, 1, 189, 198, 33, 1, 246, 209, 198, 33, 1, 169, 198, 33, 1, 193, - 187, 198, 33, 1, 223, 4, 198, 33, 1, 144, 198, 33, 1, 166, 198, 33, 1, - 171, 198, 33, 1, 70, 198, 33, 1, 247, 246, 70, 198, 33, 1, 223, 21, 198, - 33, 1, 247, 246, 223, 21, 198, 33, 1, 69, 198, 33, 1, 73, 198, 33, 1, - 247, 246, 73, 198, 33, 1, 234, 23, 198, 33, 1, 247, 246, 234, 23, 198, - 33, 1, 74, 198, 33, 1, 251, 229, 198, 33, 1, 247, 246, 251, 229, 198, 33, - 1, 65, 198, 33, 3, 206, 175, 198, 74, 193, 161, 1, 252, 154, 193, 161, 1, - 65, 193, 161, 1, 249, 103, 193, 161, 1, 247, 112, 193, 161, 1, 237, 241, - 193, 161, 1, 231, 203, 193, 161, 1, 169, 193, 161, 1, 209, 219, 193, 161, - 1, 171, 193, 161, 1, 180, 193, 161, 1, 168, 193, 161, 1, 199, 247, 193, - 161, 1, 199, 44, 193, 161, 1, 233, 68, 193, 161, 1, 189, 193, 161, 1, - 203, 160, 193, 161, 1, 223, 4, 193, 161, 1, 191, 123, 193, 161, 1, 193, - 187, 193, 161, 1, 195, 185, 193, 161, 1, 157, 193, 161, 1, 74, 193, 161, - 1, 250, 113, 193, 161, 1, 166, 193, 161, 1, 172, 193, 161, 1, 221, 190, - 193, 161, 1, 144, 193, 161, 1, 73, 193, 161, 1, 70, 193, 161, 1, 214, 54, - 193, 161, 1, 69, 193, 161, 1, 219, 42, 193, 161, 1, 197, 164, 193, 161, - 1, 198, 22, 193, 161, 1, 211, 83, 193, 161, 1, 252, 113, 193, 161, 1, - 251, 71, 193, 161, 1, 223, 108, 193, 161, 1, 211, 93, 193, 161, 1, 234, - 61, 193, 161, 1, 252, 114, 193, 161, 1, 212, 88, 193, 161, 1, 196, 143, - 193, 161, 1, 192, 24, 193, 161, 163, 197, 63, 193, 161, 163, 197, 62, - 193, 161, 163, 221, 30, 193, 161, 163, 221, 29, 193, 161, 17, 191, 77, - 193, 161, 17, 108, 193, 161, 17, 109, 193, 161, 17, 139, 193, 161, 17, - 137, 193, 161, 17, 153, 193, 161, 17, 173, 193, 161, 17, 181, 193, 161, - 17, 176, 193, 161, 17, 184, 193, 161, 213, 218, 57, 36, 5, 229, 134, 36, - 5, 229, 128, 36, 5, 229, 130, 36, 5, 229, 133, 36, 5, 229, 131, 36, 5, - 229, 132, 36, 5, 229, 129, 36, 5, 230, 114, 229, 138, 36, 5, 229, 135, - 36, 5, 229, 136, 36, 5, 229, 137, 36, 5, 230, 114, 215, 62, 36, 5, 230, - 114, 215, 63, 36, 5, 230, 114, 207, 231, 36, 5, 230, 114, 207, 232, 36, - 5, 230, 114, 207, 233, 36, 5, 230, 114, 247, 159, 36, 5, 230, 114, 247, - 160, 36, 5, 230, 114, 220, 148, 36, 5, 230, 114, 220, 149, 36, 5, 230, - 114, 220, 150, 36, 5, 230, 114, 230, 98, 36, 5, 230, 114, 230, 99, 36, 5, - 230, 114, 230, 100, 36, 5, 230, 114, 232, 21, 36, 5, 230, 114, 232, 22, - 36, 5, 230, 114, 208, 111, 36, 5, 230, 114, 208, 112, 85, 84, 5, 218, - 146, 221, 142, 85, 84, 5, 218, 142, 157, 85, 84, 5, 218, 140, 220, 208, - 85, 84, 5, 218, 16, 221, 244, 85, 84, 5, 217, 242, 221, 253, 85, 84, 5, - 218, 5, 221, 17, 85, 84, 5, 218, 33, 221, 43, 85, 84, 5, 217, 158, 220, - 195, 85, 84, 5, 218, 137, 193, 84, 85, 84, 5, 218, 135, 193, 187, 85, 84, - 5, 218, 133, 193, 0, 85, 84, 5, 217, 211, 193, 112, 85, 84, 5, 217, 219, - 193, 123, 85, 84, 5, 217, 223, 193, 29, 85, 84, 5, 218, 36, 193, 48, 85, - 84, 5, 217, 143, 192, 252, 85, 84, 5, 217, 194, 193, 110, 85, 84, 5, 218, - 20, 192, 240, 85, 84, 5, 218, 32, 192, 242, 85, 84, 5, 217, 198, 192, - 241, 85, 84, 5, 218, 131, 216, 26, 85, 84, 5, 218, 129, 217, 70, 85, 84, - 5, 218, 127, 215, 107, 85, 84, 5, 218, 22, 216, 167, 85, 84, 5, 217, 243, - 215, 214, 85, 84, 5, 217, 183, 215, 132, 85, 84, 5, 217, 148, 215, 126, - 85, 84, 5, 218, 125, 248, 140, 85, 84, 5, 218, 122, 249, 103, 85, 84, 5, - 218, 120, 247, 218, 85, 84, 5, 217, 187, 248, 207, 85, 84, 5, 217, 240, - 248, 223, 85, 84, 5, 217, 234, 248, 49, 85, 84, 5, 217, 199, 248, 63, 85, - 84, 5, 218, 110, 70, 85, 84, 5, 218, 108, 65, 85, 84, 5, 218, 106, 69, - 85, 84, 5, 217, 174, 234, 145, 85, 84, 5, 217, 237, 73, 85, 84, 5, 217, - 172, 211, 76, 85, 84, 5, 217, 190, 74, 85, 84, 5, 217, 200, 234, 123, 85, - 84, 5, 217, 206, 223, 134, 85, 84, 5, 217, 202, 223, 134, 85, 84, 5, 217, - 142, 251, 81, 85, 84, 5, 217, 159, 234, 61, 85, 84, 5, 218, 95, 202, 217, - 85, 84, 5, 218, 93, 189, 85, 84, 5, 218, 91, 200, 255, 85, 84, 5, 217, - 175, 205, 45, 85, 84, 5, 217, 221, 205, 63, 85, 84, 5, 217, 201, 202, 11, - 85, 84, 5, 218, 2, 202, 41, 85, 84, 5, 217, 141, 202, 210, 85, 84, 5, - 218, 81, 219, 122, 85, 84, 5, 218, 79, 171, 85, 84, 5, 218, 77, 218, 203, - 85, 84, 5, 217, 253, 219, 204, 85, 84, 5, 218, 8, 219, 214, 85, 84, 5, - 218, 27, 218, 240, 85, 84, 5, 217, 184, 219, 19, 85, 84, 5, 217, 227, - 177, 219, 214, 85, 84, 5, 218, 103, 236, 255, 85, 84, 5, 218, 100, 237, - 241, 85, 84, 5, 218, 97, 235, 45, 85, 84, 5, 217, 248, 237, 86, 85, 84, - 5, 217, 157, 236, 102, 85, 84, 5, 217, 156, 236, 129, 85, 84, 5, 218, 89, - 198, 188, 85, 84, 5, 218, 86, 199, 247, 85, 84, 5, 218, 84, 197, 90, 85, - 84, 5, 217, 246, 199, 116, 85, 84, 5, 218, 26, 199, 140, 85, 84, 5, 217, - 233, 198, 54, 85, 84, 5, 218, 12, 159, 85, 84, 5, 218, 75, 222, 217, 85, - 84, 5, 218, 72, 223, 4, 85, 84, 5, 218, 70, 222, 155, 85, 84, 5, 217, - 180, 222, 236, 85, 84, 5, 217, 224, 222, 238, 85, 84, 5, 217, 177, 222, - 164, 85, 84, 5, 218, 18, 222, 174, 85, 84, 5, 217, 162, 177, 222, 174, - 85, 84, 5, 218, 68, 192, 33, 85, 84, 5, 218, 65, 169, 85, 84, 5, 218, 63, - 191, 225, 85, 84, 5, 217, 228, 192, 77, 85, 84, 5, 218, 1, 192, 80, 85, - 84, 5, 217, 196, 191, 246, 85, 84, 5, 217, 216, 192, 12, 85, 84, 5, 218, - 59, 232, 238, 85, 84, 5, 218, 57, 233, 68, 85, 84, 5, 218, 55, 232, 48, - 85, 84, 5, 218, 3, 233, 11, 85, 84, 5, 218, 6, 233, 18, 85, 84, 5, 217, - 204, 232, 123, 85, 84, 5, 217, 249, 232, 135, 85, 84, 5, 217, 140, 232, - 47, 85, 84, 5, 217, 236, 233, 39, 85, 84, 5, 218, 53, 213, 165, 85, 84, - 5, 218, 51, 214, 212, 85, 84, 5, 218, 49, 212, 117, 85, 84, 5, 217, 220, - 214, 88, 85, 84, 5, 217, 168, 213, 18, 85, 84, 5, 217, 161, 229, 126, 85, - 84, 5, 218, 44, 144, 85, 84, 5, 217, 151, 228, 128, 85, 84, 5, 218, 47, - 229, 183, 85, 84, 5, 217, 241, 229, 213, 85, 84, 5, 218, 42, 228, 220, - 85, 84, 5, 217, 197, 228, 247, 85, 84, 5, 217, 254, 229, 182, 85, 84, 5, - 217, 209, 228, 213, 85, 84, 5, 218, 28, 229, 96, 85, 84, 5, 217, 207, - 230, 23, 85, 84, 5, 217, 250, 228, 111, 85, 84, 5, 218, 29, 229, 166, 85, - 84, 5, 217, 144, 228, 223, 85, 84, 5, 218, 35, 228, 124, 85, 84, 5, 217, - 247, 214, 19, 85, 84, 5, 218, 40, 214, 33, 85, 84, 5, 217, 255, 214, 16, - 85, 84, 5, 217, 222, 214, 27, 85, 84, 5, 217, 191, 214, 28, 85, 84, 5, - 217, 181, 214, 17, 85, 84, 5, 217, 217, 214, 18, 85, 84, 5, 217, 178, - 214, 32, 85, 84, 5, 217, 210, 214, 15, 85, 84, 5, 217, 251, 177, 214, 28, - 85, 84, 5, 217, 231, 177, 214, 17, 85, 84, 5, 217, 154, 177, 214, 18, 85, - 84, 5, 217, 182, 231, 16, 85, 84, 5, 217, 226, 231, 203, 85, 84, 5, 217, - 169, 230, 146, 85, 84, 5, 217, 147, 231, 120, 85, 84, 5, 217, 171, 230, - 132, 85, 84, 5, 217, 170, 230, 142, 85, 84, 5, 217, 153, 214, 38, 85, 84, - 5, 218, 24, 213, 231, 85, 84, 5, 217, 160, 213, 220, 85, 84, 5, 218, 13, - 209, 176, 85, 84, 5, 217, 238, 168, 85, 84, 5, 218, 31, 208, 158, 85, 84, - 5, 218, 0, 210, 40, 85, 84, 5, 218, 30, 210, 53, 85, 84, 5, 217, 235, - 209, 30, 85, 84, 5, 218, 15, 209, 65, 85, 84, 5, 217, 192, 216, 233, 85, - 84, 5, 218, 19, 216, 248, 85, 84, 5, 217, 215, 216, 227, 85, 84, 5, 218, - 34, 216, 240, 85, 84, 5, 217, 149, 216, 240, 85, 84, 5, 218, 9, 216, 241, - 85, 84, 5, 217, 165, 216, 228, 85, 84, 5, 217, 163, 216, 229, 85, 84, 5, - 217, 150, 216, 221, 85, 84, 5, 217, 176, 177, 216, 241, 85, 84, 5, 217, - 232, 177, 216, 228, 85, 84, 5, 217, 195, 177, 216, 229, 85, 84, 5, 217, - 205, 220, 245, 85, 84, 5, 217, 245, 220, 253, 85, 84, 5, 218, 7, 220, - 241, 85, 84, 5, 218, 38, 220, 248, 85, 84, 5, 217, 229, 220, 249, 85, 84, - 5, 217, 225, 220, 243, 85, 84, 5, 217, 179, 220, 244, 85, 84, 5, 217, - 213, 231, 137, 85, 84, 5, 218, 25, 231, 145, 85, 84, 5, 217, 189, 231, - 132, 85, 84, 5, 217, 244, 231, 141, 85, 84, 5, 217, 230, 231, 142, 85, - 84, 5, 218, 10, 231, 133, 85, 84, 5, 218, 11, 231, 135, 85, 84, 5, 217, - 166, 166, 85, 84, 5, 217, 214, 214, 133, 85, 84, 5, 217, 208, 214, 148, - 85, 84, 5, 217, 212, 214, 115, 85, 84, 5, 217, 146, 214, 139, 85, 84, 5, - 217, 218, 214, 140, 85, 84, 5, 218, 14, 214, 120, 85, 84, 5, 218, 17, - 214, 124, 85, 84, 5, 217, 185, 213, 144, 85, 84, 5, 217, 145, 213, 114, - 85, 84, 5, 217, 188, 213, 135, 85, 84, 5, 217, 203, 213, 118, 85, 84, 5, - 217, 155, 195, 66, 85, 84, 5, 217, 152, 195, 185, 85, 84, 5, 217, 186, - 193, 246, 85, 84, 5, 217, 164, 195, 145, 85, 84, 5, 217, 252, 195, 150, - 85, 84, 5, 217, 193, 195, 5, 85, 84, 5, 218, 4, 195, 21, 85, 84, 5, 217, - 173, 212, 61, 85, 84, 5, 218, 23, 212, 81, 85, 84, 5, 217, 167, 212, 43, - 85, 84, 5, 217, 239, 212, 73, 85, 84, 5, 218, 21, 212, 50, 85, 84, 17, - 108, 85, 84, 17, 109, 85, 84, 17, 139, 85, 84, 17, 137, 85, 84, 17, 153, - 85, 84, 17, 173, 85, 84, 17, 181, 85, 84, 17, 176, 85, 84, 17, 184, 85, - 84, 33, 31, 199, 114, 85, 84, 33, 31, 199, 85, 85, 84, 33, 31, 228, 107, - 85, 84, 33, 31, 198, 223, 85, 84, 33, 31, 199, 91, 198, 223, 85, 84, 33, - 31, 228, 110, 198, 223, 85, 84, 33, 31, 216, 29, 251, 237, 6, 1, 251, - 129, 251, 237, 6, 1, 237, 238, 251, 237, 6, 1, 220, 99, 251, 237, 6, 1, - 216, 42, 251, 237, 6, 1, 249, 103, 251, 237, 6, 1, 202, 159, 251, 237, 6, - 1, 210, 53, 251, 237, 6, 1, 248, 148, 251, 237, 6, 1, 166, 251, 237, 6, - 1, 73, 251, 237, 6, 1, 233, 68, 251, 237, 6, 1, 70, 251, 237, 6, 1, 74, - 251, 237, 6, 1, 237, 23, 251, 237, 6, 1, 192, 34, 251, 237, 6, 1, 193, - 131, 251, 237, 6, 1, 212, 117, 251, 237, 6, 1, 222, 79, 251, 237, 6, 1, - 169, 251, 237, 6, 1, 69, 251, 237, 6, 1, 222, 208, 251, 237, 6, 1, 243, - 47, 251, 237, 6, 1, 144, 251, 237, 6, 1, 208, 87, 251, 237, 6, 1, 231, - 203, 251, 237, 6, 1, 212, 88, 251, 237, 6, 1, 197, 90, 251, 237, 6, 1, - 213, 210, 251, 237, 6, 1, 195, 185, 251, 237, 6, 1, 221, 190, 251, 237, - 6, 1, 231, 142, 251, 237, 6, 1, 191, 108, 251, 237, 6, 1, 220, 244, 251, - 237, 6, 1, 203, 160, 251, 237, 2, 1, 251, 129, 251, 237, 2, 1, 237, 238, - 251, 237, 2, 1, 220, 99, 251, 237, 2, 1, 216, 42, 251, 237, 2, 1, 249, - 103, 251, 237, 2, 1, 202, 159, 251, 237, 2, 1, 210, 53, 251, 237, 2, 1, - 248, 148, 251, 237, 2, 1, 166, 251, 237, 2, 1, 73, 251, 237, 2, 1, 233, - 68, 251, 237, 2, 1, 70, 251, 237, 2, 1, 74, 251, 237, 2, 1, 237, 23, 251, - 237, 2, 1, 192, 34, 251, 237, 2, 1, 193, 131, 251, 237, 2, 1, 212, 117, - 251, 237, 2, 1, 222, 79, 251, 237, 2, 1, 169, 251, 237, 2, 1, 69, 251, - 237, 2, 1, 222, 208, 251, 237, 2, 1, 243, 47, 251, 237, 2, 1, 144, 251, - 237, 2, 1, 208, 87, 251, 237, 2, 1, 231, 203, 251, 237, 2, 1, 212, 88, - 251, 237, 2, 1, 197, 90, 251, 237, 2, 1, 213, 210, 251, 237, 2, 1, 195, - 185, 251, 237, 2, 1, 221, 190, 251, 237, 2, 1, 231, 142, 251, 237, 2, 1, - 191, 108, 251, 237, 2, 1, 220, 244, 251, 237, 2, 1, 203, 160, 251, 237, - 251, 130, 219, 166, 251, 237, 18, 219, 166, 251, 237, 231, 116, 77, 251, - 237, 230, 24, 251, 237, 119, 215, 235, 251, 237, 231, 117, 119, 215, 235, - 251, 237, 212, 128, 251, 237, 214, 199, 77, 251, 237, 17, 191, 77, 251, - 237, 17, 108, 251, 237, 17, 109, 251, 237, 17, 139, 251, 237, 17, 137, - 251, 237, 17, 153, 251, 237, 17, 173, 251, 237, 17, 181, 251, 237, 17, - 176, 251, 237, 17, 184, 251, 237, 89, 233, 175, 77, 251, 237, 89, 208, 8, - 77, 223, 118, 142, 31, 108, 223, 118, 142, 31, 109, 223, 118, 142, 31, - 139, 223, 118, 142, 31, 137, 223, 118, 142, 31, 153, 223, 118, 142, 31, - 173, 223, 118, 142, 31, 181, 223, 118, 142, 31, 176, 223, 118, 142, 31, - 184, 223, 118, 142, 31, 199, 90, 223, 118, 142, 31, 197, 28, 223, 118, - 142, 31, 198, 244, 223, 118, 142, 31, 232, 97, 223, 118, 142, 31, 232, - 230, 223, 118, 142, 31, 202, 115, 223, 118, 142, 31, 203, 236, 223, 118, - 142, 31, 234, 110, 223, 118, 142, 31, 213, 156, 223, 118, 142, 31, 91, - 228, 109, 223, 118, 142, 31, 103, 228, 109, 223, 118, 142, 31, 115, 228, - 109, 223, 118, 142, 31, 232, 90, 228, 109, 223, 118, 142, 31, 232, 185, - 228, 109, 223, 118, 142, 31, 202, 131, 228, 109, 223, 118, 142, 31, 203, - 242, 228, 109, 223, 118, 142, 31, 234, 121, 228, 109, 223, 118, 142, 31, - 213, 161, 228, 109, 223, 118, 142, 31, 91, 188, 223, 118, 142, 31, 103, - 188, 223, 118, 142, 31, 115, 188, 223, 118, 142, 31, 232, 90, 188, 223, - 118, 142, 31, 232, 185, 188, 223, 118, 142, 31, 202, 131, 188, 223, 118, - 142, 31, 203, 242, 188, 223, 118, 142, 31, 234, 121, 188, 223, 118, 142, - 31, 213, 161, 188, 223, 118, 142, 31, 199, 91, 188, 223, 118, 142, 31, - 197, 29, 188, 223, 118, 142, 31, 198, 245, 188, 223, 118, 142, 31, 232, - 98, 188, 223, 118, 142, 31, 232, 231, 188, 223, 118, 142, 31, 202, 116, - 188, 223, 118, 142, 31, 203, 237, 188, 223, 118, 142, 31, 234, 111, 188, - 223, 118, 142, 31, 213, 157, 188, 223, 118, 142, 31, 220, 17, 223, 118, - 142, 31, 220, 16, 223, 118, 142, 220, 18, 77, 223, 118, 142, 31, 222, 34, - 223, 118, 142, 31, 222, 33, 223, 118, 142, 31, 208, 220, 108, 223, 118, - 142, 31, 208, 220, 109, 223, 118, 142, 31, 208, 220, 139, 223, 118, 142, - 31, 208, 220, 137, 223, 118, 142, 31, 208, 220, 153, 223, 118, 142, 31, - 208, 220, 173, 223, 118, 142, 31, 208, 220, 181, 223, 118, 142, 31, 208, - 220, 176, 223, 118, 142, 31, 208, 220, 184, 223, 118, 142, 209, 98, 223, - 118, 142, 232, 80, 91, 208, 17, 223, 118, 142, 232, 80, 91, 230, 37, 223, - 118, 142, 232, 80, 115, 208, 15, 223, 118, 142, 206, 31, 77, 223, 118, - 142, 31, 251, 106, 108, 223, 118, 142, 31, 251, 106, 109, 223, 118, 142, - 31, 251, 106, 199, 91, 188, 223, 118, 142, 251, 106, 220, 18, 77, 211, - 11, 142, 31, 108, 211, 11, 142, 31, 109, 211, 11, 142, 31, 139, 211, 11, - 142, 31, 137, 211, 11, 142, 31, 153, 211, 11, 142, 31, 173, 211, 11, 142, - 31, 181, 211, 11, 142, 31, 176, 211, 11, 142, 31, 184, 211, 11, 142, 31, - 199, 90, 211, 11, 142, 31, 197, 28, 211, 11, 142, 31, 198, 244, 211, 11, - 142, 31, 232, 97, 211, 11, 142, 31, 232, 230, 211, 11, 142, 31, 202, 115, - 211, 11, 142, 31, 203, 236, 211, 11, 142, 31, 234, 110, 211, 11, 142, 31, - 213, 156, 211, 11, 142, 31, 91, 228, 109, 211, 11, 142, 31, 103, 228, - 109, 211, 11, 142, 31, 115, 228, 109, 211, 11, 142, 31, 232, 90, 228, - 109, 211, 11, 142, 31, 232, 185, 228, 109, 211, 11, 142, 31, 202, 131, - 228, 109, 211, 11, 142, 31, 203, 242, 228, 109, 211, 11, 142, 31, 234, - 121, 228, 109, 211, 11, 142, 31, 213, 161, 228, 109, 211, 11, 142, 31, - 91, 188, 211, 11, 142, 31, 103, 188, 211, 11, 142, 31, 115, 188, 211, 11, - 142, 31, 232, 90, 188, 211, 11, 142, 31, 232, 185, 188, 211, 11, 142, 31, - 202, 131, 188, 211, 11, 142, 31, 203, 242, 188, 211, 11, 142, 31, 234, - 121, 188, 211, 11, 142, 31, 213, 161, 188, 211, 11, 142, 31, 199, 91, - 188, 211, 11, 142, 31, 197, 29, 188, 211, 11, 142, 31, 198, 245, 188, - 211, 11, 142, 31, 232, 98, 188, 211, 11, 142, 31, 232, 231, 188, 211, 11, - 142, 31, 202, 116, 188, 211, 11, 142, 31, 203, 237, 188, 211, 11, 142, - 31, 234, 111, 188, 211, 11, 142, 31, 213, 157, 188, 211, 11, 142, 217, - 30, 211, 11, 142, 251, 106, 31, 109, 211, 11, 142, 251, 106, 31, 139, - 211, 11, 142, 251, 106, 31, 137, 211, 11, 142, 251, 106, 31, 153, 211, - 11, 142, 251, 106, 31, 173, 211, 11, 142, 251, 106, 31, 181, 211, 11, - 142, 251, 106, 31, 176, 211, 11, 142, 251, 106, 31, 184, 211, 11, 142, - 251, 106, 31, 199, 90, 211, 11, 142, 251, 106, 31, 232, 90, 228, 109, - 211, 11, 142, 251, 106, 31, 202, 131, 228, 109, 211, 11, 142, 251, 106, - 31, 103, 188, 211, 11, 142, 251, 106, 31, 199, 91, 188, 211, 11, 142, - 232, 80, 91, 230, 37, 211, 11, 142, 232, 80, 91, 202, 119, 9, 13, 251, - 141, 9, 13, 248, 195, 9, 13, 222, 234, 9, 13, 237, 212, 9, 13, 193, 131, - 9, 13, 191, 113, 9, 13, 230, 48, 9, 13, 199, 214, 9, 13, 192, 75, 9, 13, - 222, 79, 9, 13, 220, 11, 9, 13, 216, 189, 9, 13, 213, 11, 9, 13, 205, 41, - 9, 13, 251, 178, 9, 13, 233, 5, 9, 13, 205, 187, 9, 13, 208, 82, 9, 13, - 207, 66, 9, 13, 203, 104, 9, 13, 199, 109, 9, 13, 199, 24, 9, 13, 221, - 185, 9, 13, 199, 36, 9, 13, 237, 235, 9, 13, 191, 116, 9, 13, 231, 49, 9, - 13, 236, 95, 248, 195, 9, 13, 236, 95, 213, 11, 9, 13, 236, 95, 233, 5, - 9, 13, 236, 95, 208, 82, 9, 13, 89, 248, 195, 9, 13, 89, 222, 234, 9, 13, - 89, 229, 178, 9, 13, 89, 230, 48, 9, 13, 89, 192, 75, 9, 13, 89, 222, 79, - 9, 13, 89, 220, 11, 9, 13, 89, 216, 189, 9, 13, 89, 213, 11, 9, 13, 89, - 205, 41, 9, 13, 89, 251, 178, 9, 13, 89, 233, 5, 9, 13, 89, 205, 187, 9, - 13, 89, 208, 82, 9, 13, 89, 203, 104, 9, 13, 89, 199, 109, 9, 13, 89, - 199, 24, 9, 13, 89, 221, 185, 9, 13, 89, 237, 235, 9, 13, 89, 231, 49, 9, - 13, 199, 209, 222, 234, 9, 13, 199, 209, 230, 48, 9, 13, 199, 209, 192, - 75, 9, 13, 199, 209, 220, 11, 9, 13, 199, 209, 213, 11, 9, 13, 199, 209, - 205, 41, 9, 13, 199, 209, 251, 178, 9, 13, 199, 209, 205, 187, 9, 13, - 199, 209, 208, 82, 9, 13, 199, 209, 203, 104, 9, 13, 199, 209, 221, 185, - 9, 13, 199, 209, 237, 235, 9, 13, 199, 209, 231, 49, 9, 13, 199, 209, - 236, 95, 213, 11, 9, 13, 199, 209, 236, 95, 208, 82, 9, 13, 201, 31, 248, - 195, 9, 13, 201, 31, 222, 234, 9, 13, 201, 31, 229, 178, 9, 13, 201, 31, - 230, 48, 9, 13, 201, 31, 199, 214, 9, 13, 201, 31, 192, 75, 9, 13, 201, - 31, 222, 79, 9, 13, 201, 31, 216, 189, 9, 13, 201, 31, 213, 11, 9, 13, - 201, 31, 205, 41, 9, 13, 201, 31, 251, 178, 9, 13, 201, 31, 233, 5, 9, - 13, 201, 31, 205, 187, 9, 13, 201, 31, 208, 82, 9, 13, 201, 31, 203, 104, - 9, 13, 201, 31, 199, 109, 9, 13, 201, 31, 199, 24, 9, 13, 201, 31, 221, - 185, 9, 13, 201, 31, 237, 235, 9, 13, 201, 31, 191, 116, 9, 13, 201, 31, - 231, 49, 9, 13, 201, 31, 236, 95, 248, 195, 9, 13, 201, 31, 236, 95, 233, - 5, 9, 13, 218, 235, 251, 141, 9, 13, 218, 235, 248, 195, 9, 13, 218, 235, - 222, 234, 9, 13, 218, 235, 237, 212, 9, 13, 218, 235, 229, 178, 9, 13, - 218, 235, 193, 131, 9, 13, 218, 235, 191, 113, 9, 13, 218, 235, 230, 48, - 9, 13, 218, 235, 199, 214, 9, 13, 218, 235, 192, 75, 9, 13, 218, 235, - 220, 11, 9, 13, 218, 235, 216, 189, 9, 13, 218, 235, 213, 11, 9, 13, 218, - 235, 205, 41, 9, 13, 218, 235, 251, 178, 9, 13, 218, 235, 233, 5, 9, 13, - 218, 235, 205, 187, 9, 13, 218, 235, 208, 82, 9, 13, 218, 235, 207, 66, - 9, 13, 218, 235, 203, 104, 9, 13, 218, 235, 199, 109, 9, 13, 218, 235, - 199, 24, 9, 13, 218, 235, 221, 185, 9, 13, 218, 235, 199, 36, 9, 13, 218, - 235, 237, 235, 9, 13, 218, 235, 191, 116, 9, 13, 218, 235, 231, 49, 9, - 13, 235, 85, 248, 195, 9, 13, 235, 85, 222, 234, 9, 13, 235, 85, 237, - 212, 9, 13, 235, 85, 193, 131, 9, 13, 235, 85, 191, 113, 9, 13, 235, 85, - 230, 48, 9, 13, 235, 85, 199, 214, 9, 13, 235, 85, 192, 75, 9, 13, 235, - 85, 220, 11, 9, 13, 235, 85, 216, 189, 9, 13, 235, 85, 213, 11, 9, 13, - 235, 85, 205, 41, 9, 13, 235, 85, 251, 178, 9, 13, 235, 85, 233, 5, 9, - 13, 235, 85, 205, 187, 9, 13, 235, 85, 208, 82, 9, 13, 235, 85, 207, 66, - 9, 13, 235, 85, 203, 104, 9, 13, 235, 85, 199, 109, 9, 13, 235, 85, 199, - 24, 9, 13, 235, 85, 221, 185, 9, 13, 235, 85, 199, 36, 9, 13, 235, 85, - 237, 235, 9, 13, 235, 85, 191, 116, 9, 13, 235, 85, 231, 49, 9, 13, 211, - 56, 92, 4, 179, 4, 199, 163, 9, 13, 211, 56, 179, 4, 237, 212, 217, 93, - 123, 234, 160, 193, 64, 217, 93, 123, 201, 253, 193, 64, 217, 93, 123, - 193, 103, 193, 64, 217, 93, 123, 185, 193, 64, 217, 93, 123, 207, 82, - 235, 67, 217, 93, 123, 230, 167, 235, 67, 217, 93, 123, 64, 235, 67, 217, - 93, 123, 91, 80, 243, 92, 217, 93, 123, 103, 80, 243, 92, 217, 93, 123, - 115, 80, 243, 92, 217, 93, 123, 232, 90, 80, 243, 92, 217, 93, 123, 232, - 185, 80, 243, 92, 217, 93, 123, 202, 131, 80, 243, 92, 217, 93, 123, 203, - 242, 80, 243, 92, 217, 93, 123, 234, 121, 80, 243, 92, 217, 93, 123, 213, - 161, 80, 243, 92, 217, 93, 123, 91, 80, 249, 52, 217, 93, 123, 103, 80, - 249, 52, 217, 93, 123, 115, 80, 249, 52, 217, 93, 123, 232, 90, 80, 249, - 52, 217, 93, 123, 232, 185, 80, 249, 52, 217, 93, 123, 202, 131, 80, 249, - 52, 217, 93, 123, 203, 242, 80, 249, 52, 217, 93, 123, 234, 121, 80, 249, - 52, 217, 93, 123, 213, 161, 80, 249, 52, 217, 93, 123, 91, 80, 242, 215, - 217, 93, 123, 103, 80, 242, 215, 217, 93, 123, 115, 80, 242, 215, 217, - 93, 123, 232, 90, 80, 242, 215, 217, 93, 123, 232, 185, 80, 242, 215, - 217, 93, 123, 202, 131, 80, 242, 215, 217, 93, 123, 203, 242, 80, 242, - 215, 217, 93, 123, 234, 121, 80, 242, 215, 217, 93, 123, 213, 161, 80, - 242, 215, 217, 93, 123, 209, 77, 217, 93, 123, 211, 42, 217, 93, 123, - 249, 53, 217, 93, 123, 243, 1, 217, 93, 123, 201, 191, 217, 93, 123, 200, - 195, 217, 93, 123, 250, 99, 217, 93, 123, 193, 55, 217, 93, 123, 222, - 167, 217, 93, 123, 249, 96, 236, 106, 123, 228, 209, 249, 96, 236, 106, - 123, 228, 207, 236, 106, 123, 228, 206, 236, 106, 123, 228, 205, 236, - 106, 123, 228, 204, 236, 106, 123, 228, 203, 236, 106, 123, 228, 202, - 236, 106, 123, 228, 201, 236, 106, 123, 228, 200, 236, 106, 123, 228, - 199, 236, 106, 123, 228, 198, 236, 106, 123, 228, 197, 236, 106, 123, - 228, 196, 236, 106, 123, 228, 195, 236, 106, 123, 228, 194, 236, 106, - 123, 228, 193, 236, 106, 123, 228, 192, 236, 106, 123, 228, 191, 236, - 106, 123, 228, 190, 236, 106, 123, 228, 189, 236, 106, 123, 228, 188, - 236, 106, 123, 228, 187, 236, 106, 123, 228, 186, 236, 106, 123, 228, - 185, 236, 106, 123, 228, 184, 236, 106, 123, 228, 183, 236, 106, 123, - 228, 182, 236, 106, 123, 228, 181, 236, 106, 123, 228, 180, 236, 106, - 123, 228, 179, 236, 106, 123, 228, 178, 236, 106, 123, 228, 177, 236, - 106, 123, 228, 176, 236, 106, 123, 228, 175, 236, 106, 123, 228, 174, - 236, 106, 123, 228, 173, 236, 106, 123, 228, 172, 236, 106, 123, 228, - 171, 236, 106, 123, 228, 170, 236, 106, 123, 228, 169, 236, 106, 123, - 228, 168, 236, 106, 123, 228, 167, 236, 106, 123, 228, 166, 236, 106, - 123, 228, 165, 236, 106, 123, 228, 164, 236, 106, 123, 228, 163, 236, - 106, 123, 228, 162, 236, 106, 123, 228, 161, 236, 106, 123, 228, 160, - 236, 106, 123, 228, 159, 236, 106, 123, 81, 249, 96, 236, 106, 123, 195, - 131, 236, 106, 123, 195, 130, 236, 106, 123, 195, 129, 236, 106, 123, - 195, 128, 236, 106, 123, 195, 127, 236, 106, 123, 195, 126, 236, 106, - 123, 195, 125, 236, 106, 123, 195, 124, 236, 106, 123, 195, 123, 236, - 106, 123, 195, 122, 236, 106, 123, 195, 121, 236, 106, 123, 195, 120, - 236, 106, 123, 195, 119, 236, 106, 123, 195, 118, 236, 106, 123, 195, - 117, 236, 106, 123, 195, 116, 236, 106, 123, 195, 115, 236, 106, 123, - 195, 114, 236, 106, 123, 195, 113, 236, 106, 123, 195, 112, 236, 106, - 123, 195, 111, 236, 106, 123, 195, 110, 236, 106, 123, 195, 109, 236, - 106, 123, 195, 108, 236, 106, 123, 195, 107, 236, 106, 123, 195, 106, - 236, 106, 123, 195, 105, 236, 106, 123, 195, 104, 236, 106, 123, 195, - 103, 236, 106, 123, 195, 102, 236, 106, 123, 195, 101, 236, 106, 123, - 195, 100, 236, 106, 123, 195, 99, 236, 106, 123, 195, 98, 236, 106, 123, - 195, 97, 236, 106, 123, 195, 96, 236, 106, 123, 195, 95, 236, 106, 123, - 195, 94, 236, 106, 123, 195, 93, 236, 106, 123, 195, 92, 236, 106, 123, - 195, 91, 236, 106, 123, 195, 90, 236, 106, 123, 195, 89, 236, 106, 123, - 195, 88, 236, 106, 123, 195, 87, 236, 106, 123, 195, 86, 236, 106, 123, - 195, 85, 236, 106, 123, 195, 84, 236, 106, 123, 195, 83, 209, 87, 247, - 53, 249, 96, 209, 87, 247, 53, 252, 1, 80, 201, 239, 209, 87, 247, 53, - 103, 80, 201, 239, 209, 87, 247, 53, 115, 80, 201, 239, 209, 87, 247, 53, - 232, 90, 80, 201, 239, 209, 87, 247, 53, 232, 185, 80, 201, 239, 209, 87, - 247, 53, 202, 131, 80, 201, 239, 209, 87, 247, 53, 203, 242, 80, 201, - 239, 209, 87, 247, 53, 234, 121, 80, 201, 239, 209, 87, 247, 53, 213, - 161, 80, 201, 239, 209, 87, 247, 53, 199, 91, 80, 201, 239, 209, 87, 247, - 53, 223, 2, 80, 201, 239, 209, 87, 247, 53, 221, 53, 80, 201, 239, 209, - 87, 247, 53, 208, 10, 80, 201, 239, 209, 87, 247, 53, 221, 115, 80, 201, - 239, 209, 87, 247, 53, 252, 1, 80, 229, 189, 209, 87, 247, 53, 103, 80, - 229, 189, 209, 87, 247, 53, 115, 80, 229, 189, 209, 87, 247, 53, 232, 90, - 80, 229, 189, 209, 87, 247, 53, 232, 185, 80, 229, 189, 209, 87, 247, 53, - 202, 131, 80, 229, 189, 209, 87, 247, 53, 203, 242, 80, 229, 189, 209, - 87, 247, 53, 234, 121, 80, 229, 189, 209, 87, 247, 53, 213, 161, 80, 229, - 189, 209, 87, 247, 53, 199, 91, 80, 229, 189, 209, 87, 247, 53, 223, 2, - 80, 229, 189, 209, 87, 247, 53, 221, 53, 80, 229, 189, 209, 87, 247, 53, - 208, 10, 80, 229, 189, 209, 87, 247, 53, 221, 115, 80, 229, 189, 209, 87, - 247, 53, 207, 82, 222, 167, 209, 87, 247, 53, 252, 1, 80, 236, 242, 209, - 87, 247, 53, 103, 80, 236, 242, 209, 87, 247, 53, 115, 80, 236, 242, 209, - 87, 247, 53, 232, 90, 80, 236, 242, 209, 87, 247, 53, 232, 185, 80, 236, - 242, 209, 87, 247, 53, 202, 131, 80, 236, 242, 209, 87, 247, 53, 203, - 242, 80, 236, 242, 209, 87, 247, 53, 234, 121, 80, 236, 242, 209, 87, - 247, 53, 213, 161, 80, 236, 242, 209, 87, 247, 53, 199, 91, 80, 236, 242, - 209, 87, 247, 53, 223, 2, 80, 236, 242, 209, 87, 247, 53, 221, 53, 80, - 236, 242, 209, 87, 247, 53, 208, 10, 80, 236, 242, 209, 87, 247, 53, 221, - 115, 80, 236, 242, 209, 87, 247, 53, 62, 222, 167, 209, 87, 247, 53, 252, - 1, 80, 242, 156, 209, 87, 247, 53, 103, 80, 242, 156, 209, 87, 247, 53, - 115, 80, 242, 156, 209, 87, 247, 53, 232, 90, 80, 242, 156, 209, 87, 247, - 53, 232, 185, 80, 242, 156, 209, 87, 247, 53, 202, 131, 80, 242, 156, - 209, 87, 247, 53, 203, 242, 80, 242, 156, 209, 87, 247, 53, 234, 121, 80, - 242, 156, 209, 87, 247, 53, 213, 161, 80, 242, 156, 209, 87, 247, 53, - 199, 91, 80, 242, 156, 209, 87, 247, 53, 223, 2, 80, 242, 156, 209, 87, - 247, 53, 221, 53, 80, 242, 156, 209, 87, 247, 53, 208, 10, 80, 242, 156, - 209, 87, 247, 53, 221, 115, 80, 242, 156, 209, 87, 247, 53, 64, 222, 167, - 209, 87, 247, 53, 232, 121, 209, 87, 247, 53, 197, 196, 209, 87, 247, 53, - 197, 185, 209, 87, 247, 53, 197, 182, 209, 87, 247, 53, 197, 181, 209, - 87, 247, 53, 197, 180, 209, 87, 247, 53, 197, 179, 209, 87, 247, 53, 197, - 178, 209, 87, 247, 53, 197, 177, 209, 87, 247, 53, 197, 176, 209, 87, - 247, 53, 197, 195, 209, 87, 247, 53, 197, 194, 209, 87, 247, 53, 197, - 193, 209, 87, 247, 53, 197, 192, 209, 87, 247, 53, 197, 191, 209, 87, - 247, 53, 197, 190, 209, 87, 247, 53, 197, 189, 209, 87, 247, 53, 197, - 188, 209, 87, 247, 53, 197, 187, 209, 87, 247, 53, 197, 186, 209, 87, - 247, 53, 197, 184, 209, 87, 247, 53, 197, 183, 17, 191, 78, 232, 42, 201, - 58, 17, 191, 78, 242, 26, 17, 91, 242, 26, 17, 103, 242, 26, 17, 115, - 242, 26, 17, 232, 90, 242, 26, 17, 232, 185, 242, 26, 17, 202, 131, 242, - 26, 17, 203, 242, 242, 26, 17, 234, 121, 242, 26, 17, 213, 161, 242, 26, - 236, 196, 47, 49, 17, 191, 77, 236, 196, 214, 92, 47, 49, 17, 191, 77, - 47, 191, 78, 4, 202, 92, 47, 251, 34, 55, 47, 236, 110, 3, 4, 210, 250, - 249, 91, 127, 8, 6, 1, 65, 127, 8, 6, 1, 250, 70, 127, 8, 6, 1, 247, 145, - 127, 8, 6, 1, 238, 80, 127, 8, 6, 1, 73, 127, 8, 6, 1, 233, 134, 127, 8, - 6, 1, 232, 14, 127, 8, 6, 1, 230, 83, 127, 8, 6, 1, 70, 127, 8, 6, 1, - 223, 7, 127, 8, 6, 1, 222, 125, 127, 8, 6, 1, 170, 127, 8, 6, 1, 218, - 147, 127, 8, 6, 1, 215, 47, 127, 8, 6, 1, 74, 127, 8, 6, 1, 210, 226, - 127, 8, 6, 1, 208, 97, 127, 8, 6, 1, 148, 127, 8, 6, 1, 206, 3, 127, 8, - 6, 1, 200, 39, 127, 8, 6, 1, 69, 127, 8, 6, 1, 196, 8, 127, 8, 6, 1, 193, - 221, 127, 8, 6, 1, 192, 235, 127, 8, 6, 1, 192, 159, 127, 8, 6, 1, 191, - 166, 198, 37, 203, 98, 248, 4, 8, 6, 1, 206, 3, 47, 43, 8, 6, 1, 247, - 145, 47, 43, 8, 6, 1, 148, 47, 246, 251, 47, 192, 237, 238, 216, 113, - 112, 8, 6, 1, 65, 112, 8, 6, 1, 250, 70, 112, 8, 6, 1, 247, 145, 112, 8, - 6, 1, 238, 80, 112, 8, 6, 1, 73, 112, 8, 6, 1, 233, 134, 112, 8, 6, 1, - 232, 14, 112, 8, 6, 1, 230, 83, 112, 8, 6, 1, 70, 112, 8, 6, 1, 223, 7, - 112, 8, 6, 1, 222, 125, 112, 8, 6, 1, 170, 112, 8, 6, 1, 218, 147, 112, - 8, 6, 1, 215, 47, 112, 8, 6, 1, 74, 112, 8, 6, 1, 210, 226, 112, 8, 6, 1, - 208, 97, 112, 8, 6, 1, 148, 112, 8, 6, 1, 206, 3, 112, 8, 6, 1, 200, 39, - 112, 8, 6, 1, 69, 112, 8, 6, 1, 196, 8, 112, 8, 6, 1, 193, 221, 112, 8, - 6, 1, 192, 235, 112, 8, 6, 1, 192, 159, 112, 8, 6, 1, 191, 166, 112, 228, - 95, 112, 215, 73, 112, 205, 65, 112, 201, 173, 112, 208, 241, 112, 193, - 124, 214, 92, 47, 8, 6, 1, 65, 214, 92, 47, 8, 6, 1, 250, 70, 214, 92, - 47, 8, 6, 1, 247, 145, 214, 92, 47, 8, 6, 1, 238, 80, 214, 92, 47, 8, 6, - 1, 73, 214, 92, 47, 8, 6, 1, 233, 134, 214, 92, 47, 8, 6, 1, 232, 14, - 214, 92, 47, 8, 6, 1, 230, 83, 214, 92, 47, 8, 6, 1, 70, 214, 92, 47, 8, - 6, 1, 223, 7, 214, 92, 47, 8, 6, 1, 222, 125, 214, 92, 47, 8, 6, 1, 170, - 214, 92, 47, 8, 6, 1, 218, 147, 214, 92, 47, 8, 6, 1, 215, 47, 214, 92, - 47, 8, 6, 1, 74, 214, 92, 47, 8, 6, 1, 210, 226, 214, 92, 47, 8, 6, 1, - 208, 97, 214, 92, 47, 8, 6, 1, 148, 214, 92, 47, 8, 6, 1, 206, 3, 214, - 92, 47, 8, 6, 1, 200, 39, 214, 92, 47, 8, 6, 1, 69, 214, 92, 47, 8, 6, 1, - 196, 8, 214, 92, 47, 8, 6, 1, 193, 221, 214, 92, 47, 8, 6, 1, 192, 235, - 214, 92, 47, 8, 6, 1, 192, 159, 214, 92, 47, 8, 6, 1, 191, 166, 207, 142, - 216, 220, 57, 207, 142, 216, 216, 57, 207, 142, 215, 148, 57, 47, 247, - 18, 47, 247, 146, 4, 210, 250, 249, 91, 47, 228, 114, 232, 227, 214, 92, - 112, 8, 6, 1, 65, 214, 92, 112, 8, 6, 1, 250, 70, 214, 92, 112, 8, 6, 1, - 247, 145, 214, 92, 112, 8, 6, 1, 238, 80, 214, 92, 112, 8, 6, 1, 73, 214, - 92, 112, 8, 6, 1, 233, 134, 214, 92, 112, 8, 6, 1, 232, 14, 214, 92, 112, - 8, 6, 1, 230, 83, 214, 92, 112, 8, 6, 1, 70, 214, 92, 112, 8, 6, 1, 223, - 7, 214, 92, 112, 8, 6, 1, 222, 125, 214, 92, 112, 8, 6, 1, 170, 214, 92, - 112, 8, 6, 1, 218, 147, 214, 92, 112, 8, 6, 1, 215, 47, 214, 92, 112, 8, - 6, 1, 74, 214, 92, 112, 8, 6, 1, 210, 226, 214, 92, 112, 8, 6, 1, 208, - 97, 214, 92, 112, 8, 6, 1, 148, 214, 92, 112, 8, 6, 1, 206, 3, 214, 92, - 112, 8, 6, 1, 200, 39, 214, 92, 112, 8, 6, 1, 69, 214, 92, 112, 8, 6, 1, - 196, 8, 214, 92, 112, 8, 6, 1, 193, 221, 214, 92, 112, 8, 6, 1, 192, 235, - 214, 92, 112, 8, 6, 1, 192, 159, 214, 92, 112, 8, 6, 1, 191, 166, 238, - 167, 214, 92, 112, 8, 6, 1, 210, 226, 214, 92, 112, 227, 254, 214, 92, - 112, 168, 214, 92, 112, 189, 214, 92, 112, 252, 103, 214, 92, 112, 193, - 124, 51, 236, 149, 112, 242, 199, 112, 238, 223, 112, 232, 70, 112, 227, - 245, 112, 214, 65, 112, 214, 56, 112, 211, 114, 112, 202, 4, 112, 132, 4, - 233, 175, 77, 112, 194, 249, 112, 115, 238, 80, 112, 205, 52, 205, 71, - 112, 103, 222, 125, 112, 232, 90, 222, 125, 112, 234, 121, 222, 125, 112, - 232, 185, 209, 55, 108, 112, 203, 242, 209, 55, 108, 112, 197, 17, 209, - 55, 109, 112, 202, 116, 210, 226, 112, 91, 228, 110, 197, 29, 210, 226, - 112, 8, 2, 1, 238, 80, 112, 229, 216, 112, 229, 215, 112, 229, 118, 112, - 218, 228, 112, 202, 236, 112, 196, 136, 112, 195, 18, 217, 17, 193, 21, - 113, 207, 74, 223, 117, 16, 1, 65, 207, 74, 223, 117, 16, 1, 250, 70, - 207, 74, 223, 117, 16, 1, 247, 145, 207, 74, 223, 117, 16, 1, 238, 80, - 207, 74, 223, 117, 16, 1, 73, 207, 74, 223, 117, 16, 1, 233, 134, 207, - 74, 223, 117, 16, 1, 232, 14, 207, 74, 223, 117, 16, 1, 230, 83, 207, 74, - 223, 117, 16, 1, 70, 207, 74, 223, 117, 16, 1, 223, 7, 207, 74, 223, 117, - 16, 1, 222, 125, 207, 74, 223, 117, 16, 1, 170, 207, 74, 223, 117, 16, 1, - 218, 147, 207, 74, 223, 117, 16, 1, 215, 47, 207, 74, 223, 117, 16, 1, - 74, 207, 74, 223, 117, 16, 1, 210, 226, 207, 74, 223, 117, 16, 1, 208, - 97, 207, 74, 223, 117, 16, 1, 148, 207, 74, 223, 117, 16, 1, 206, 3, 207, - 74, 223, 117, 16, 1, 200, 39, 207, 74, 223, 117, 16, 1, 69, 207, 74, 223, - 117, 16, 1, 196, 8, 207, 74, 223, 117, 16, 1, 193, 221, 207, 74, 223, - 117, 16, 1, 192, 235, 207, 74, 223, 117, 16, 1, 192, 159, 207, 74, 223, - 117, 16, 1, 191, 166, 51, 229, 88, 228, 233, 112, 71, 221, 25, 112, 71, - 189, 112, 12, 196, 91, 225, 188, 112, 12, 196, 91, 225, 192, 112, 12, - 196, 91, 225, 200, 112, 71, 237, 101, 112, 12, 196, 91, 225, 207, 112, - 12, 196, 91, 225, 194, 112, 12, 196, 91, 225, 166, 112, 12, 196, 91, 225, - 193, 112, 12, 196, 91, 225, 206, 112, 12, 196, 91, 225, 180, 112, 12, - 196, 91, 225, 173, 112, 12, 196, 91, 225, 182, 112, 12, 196, 91, 225, - 203, 112, 12, 196, 91, 225, 189, 112, 12, 196, 91, 225, 205, 112, 12, - 196, 91, 225, 181, 112, 12, 196, 91, 225, 204, 112, 12, 196, 91, 225, - 167, 112, 12, 196, 91, 225, 172, 112, 12, 196, 91, 225, 165, 112, 12, - 196, 91, 225, 195, 112, 12, 196, 91, 225, 197, 112, 12, 196, 91, 225, - 175, 112, 12, 196, 91, 225, 186, 112, 12, 196, 91, 225, 184, 112, 12, - 196, 91, 225, 210, 112, 12, 196, 91, 225, 209, 112, 12, 196, 91, 225, - 163, 112, 12, 196, 91, 225, 190, 112, 12, 196, 91, 225, 208, 112, 12, - 196, 91, 225, 199, 112, 12, 196, 91, 225, 185, 112, 12, 196, 91, 225, - 164, 112, 12, 196, 91, 225, 187, 112, 12, 196, 91, 225, 169, 112, 12, - 196, 91, 225, 168, 112, 12, 196, 91, 225, 198, 112, 12, 196, 91, 225, - 176, 112, 12, 196, 91, 225, 178, 112, 12, 196, 91, 225, 179, 112, 12, - 196, 91, 225, 171, 112, 12, 196, 91, 225, 202, 112, 12, 196, 91, 225, - 196, 112, 12, 196, 91, 225, 162, 198, 37, 203, 98, 248, 4, 12, 196, 91, - 225, 177, 198, 37, 203, 98, 248, 4, 12, 196, 91, 225, 209, 198, 37, 203, - 98, 248, 4, 12, 196, 91, 225, 207, 198, 37, 203, 98, 248, 4, 12, 196, 91, - 225, 191, 198, 37, 203, 98, 248, 4, 12, 196, 91, 225, 174, 198, 37, 203, - 98, 248, 4, 12, 196, 91, 225, 187, 198, 37, 203, 98, 248, 4, 12, 196, 91, - 225, 170, 198, 37, 203, 98, 248, 4, 12, 196, 91, 225, 201, 198, 37, 203, - 98, 248, 4, 12, 196, 91, 225, 183, 47, 227, 241, 251, 231, 47, 227, 241, - 252, 6, 206, 108, 16, 39, 232, 48, 206, 108, 16, 39, 218, 203, 206, 108, - 16, 39, 203, 18, 206, 108, 16, 39, 192, 207, 206, 108, 16, 39, 202, 253, - 206, 108, 16, 39, 247, 100, 238, 92, 232, 133, 242, 171, 196, 113, 213, - 177, 4, 201, 94, 200, 188, 138, 215, 167, 200, 187, 242, 203, 250, 133, - 235, 17, 200, 186, 138, 247, 205, 207, 143, 247, 237, 250, 133, 213, 176, - 193, 142, 193, 136, 195, 11, 216, 34, 193, 126, 234, 164, 230, 232, 233, - 191, 234, 164, 230, 232, 251, 89, 234, 164, 230, 232, 250, 152, 230, 232, - 4, 216, 158, 214, 66, 215, 189, 113, 193, 128, 238, 181, 215, 189, 113, - 232, 197, 208, 18, 215, 189, 113, 193, 128, 231, 12, 215, 189, 113, 232, - 42, 215, 189, 113, 193, 157, 231, 12, 215, 189, 113, 219, 238, 208, 18, - 215, 189, 113, 193, 157, 238, 181, 215, 189, 113, 238, 181, 215, 188, - 214, 66, 215, 189, 4, 233, 62, 232, 197, 208, 18, 215, 189, 4, 233, 62, - 219, 238, 208, 18, 215, 189, 4, 233, 62, 232, 42, 215, 189, 4, 233, 62, - 200, 194, 4, 233, 62, 230, 228, 201, 97, 203, 40, 201, 97, 199, 16, 62, - 235, 53, 64, 200, 193, 64, 200, 194, 4, 2, 242, 162, 64, 200, 194, 248, - 192, 242, 162, 64, 200, 194, 248, 192, 242, 163, 4, 207, 144, 242, 163, - 4, 207, 144, 242, 163, 4, 202, 47, 242, 163, 4, 219, 105, 242, 163, 4, - 198, 41, 232, 134, 193, 65, 248, 68, 233, 62, 228, 150, 236, 117, 199, - 222, 247, 180, 243, 55, 205, 43, 233, 185, 197, 250, 237, 94, 197, 250, - 210, 173, 197, 250, 247, 105, 228, 150, 210, 6, 197, 74, 243, 59, 248, - 71, 206, 121, 229, 117, 200, 191, 248, 71, 234, 168, 80, 217, 82, 234, - 168, 80, 206, 240, 229, 161, 232, 90, 219, 210, 242, 161, 217, 49, 219, - 209, 233, 43, 219, 209, 219, 210, 232, 141, 223, 135, 193, 64, 215, 84, - 198, 78, 250, 112, 230, 184, 216, 177, 193, 140, 199, 182, 219, 177, 249, - 48, 209, 124, 207, 82, 250, 252, 230, 167, 250, 252, 210, 46, 210, 50, - 243, 60, 201, 37, 230, 30, 202, 84, 80, 209, 104, 216, 206, 211, 94, 248, - 50, 209, 2, 219, 188, 206, 241, 238, 187, 206, 241, 249, 61, 238, 226, - 206, 240, 238, 120, 24, 206, 240, 201, 78, 248, 18, 201, 238, 247, 251, - 232, 68, 232, 64, 206, 147, 200, 138, 209, 5, 237, 190, 211, 141, 200, - 160, 232, 65, 203, 8, 232, 196, 247, 99, 4, 200, 130, 237, 35, 202, 27, - 227, 253, 238, 185, 203, 116, 227, 252, 227, 253, 238, 185, 235, 82, 238, - 225, 243, 18, 164, 247, 70, 219, 0, 238, 111, 228, 222, 209, 7, 203, 24, - 248, 172, 248, 14, 209, 8, 80, 232, 122, 238, 224, 232, 111, 24, 221, 54, - 199, 128, 193, 51, 229, 254, 205, 171, 248, 31, 24, 238, 134, 193, 61, - 230, 236, 242, 46, 230, 236, 197, 200, 235, 60, 248, 203, 215, 124, 242, - 178, 248, 203, 215, 123, 249, 99, 248, 30, 232, 111, 24, 221, 55, 4, 209, - 89, 248, 31, 4, 209, 23, 238, 212, 209, 25, 206, 242, 193, 11, 208, 215, - 248, 109, 247, 98, 223, 1, 243, 8, 197, 250, 233, 26, 243, 7, 232, 199, - 232, 200, 201, 236, 249, 59, 210, 92, 209, 24, 239, 6, 249, 61, 199, 186, - 197, 250, 238, 167, 232, 171, 209, 125, 237, 91, 222, 247, 236, 109, 247, - 42, 201, 36, 193, 65, 243, 34, 215, 189, 195, 51, 246, 216, 205, 85, 205, - 115, 230, 191, 247, 63, 229, 192, 4, 198, 131, 211, 94, 199, 29, 219, - 200, 248, 24, 80, 232, 145, 216, 36, 216, 200, 207, 53, 206, 242, 37, - 221, 196, 4, 223, 0, 201, 6, 216, 70, 219, 144, 202, 81, 238, 231, 221, - 48, 248, 219, 250, 163, 37, 212, 244, 248, 219, 237, 41, 37, 212, 244, - 232, 215, 232, 74, 251, 235, 198, 175, 247, 43, 228, 152, 232, 248, 193, - 91, 206, 134, 242, 49, 232, 191, 209, 46, 24, 232, 195, 216, 70, 215, - 153, 247, 84, 242, 222, 229, 199, 250, 174, 210, 178, 198, 49, 229, 232, - 242, 208, 199, 82, 198, 176, 242, 194, 248, 59, 209, 253, 250, 172, 195, - 62, 231, 177, 236, 189, 229, 85, 202, 74, 217, 127, 248, 122, 231, 178, - 236, 235, 248, 17, 232, 147, 209, 87, 247, 51, 37, 212, 249, 215, 114, - 37, 212, 244, 205, 99, 230, 129, 37, 221, 195, 197, 175, 195, 39, 37, - 205, 77, 206, 37, 203, 55, 4, 205, 118, 199, 87, 207, 165, 24, 249, 61, - 202, 104, 24, 202, 104, 248, 43, 249, 18, 24, 228, 215, 243, 61, 232, - 177, 202, 46, 206, 38, 200, 165, 201, 197, 216, 200, 197, 201, 228, 153, - 207, 166, 251, 90, 232, 119, 206, 51, 232, 119, 200, 133, 193, 108, 219, - 110, 230, 213, 207, 167, 215, 175, 207, 167, 247, 54, 238, 178, 249, 15, - 24, 249, 61, 195, 10, 232, 237, 228, 236, 201, 70, 24, 249, 61, 227, 253, - 228, 236, 201, 70, 24, 208, 150, 199, 229, 199, 87, 210, 197, 24, 249, - 61, 202, 48, 247, 59, 215, 168, 247, 82, 248, 222, 4, 196, 113, 247, 207, - 238, 245, 228, 142, 247, 205, 242, 202, 237, 45, 228, 142, 247, 206, 242, - 192, 247, 206, 237, 37, 237, 38, 223, 32, 214, 194, 210, 99, 201, 108, - 228, 142, 247, 206, 228, 142, 4, 231, 161, 211, 132, 247, 206, 222, 247, - 209, 13, 211, 131, 233, 190, 209, 13, 211, 131, 228, 151, 249, 42, 250, - 101, 199, 97, 217, 127, 228, 147, 218, 220, 228, 147, 238, 229, 201, 52, - 205, 84, 237, 49, 201, 52, 233, 51, 223, 12, 219, 250, 222, 247, 247, 32, - 233, 190, 247, 32, 64, 210, 19, 62, 210, 19, 193, 134, 64, 232, 177, 193, - 134, 62, 232, 177, 206, 120, 62, 206, 120, 220, 93, 249, 82, 207, 165, - 24, 202, 239, 248, 22, 24, 55, 251, 85, 234, 67, 59, 232, 186, 196, 249, - 234, 67, 59, 232, 186, 196, 246, 234, 67, 59, 232, 186, 196, 244, 234, - 67, 59, 232, 186, 196, 242, 234, 67, 59, 232, 186, 196, 240, 207, 125, - 215, 165, 210, 237, 193, 142, 247, 211, 238, 192, 198, 168, 219, 161, - 207, 169, 247, 30, 235, 67, 238, 176, 193, 94, 202, 55, 202, 53, 228, - 152, 207, 137, 230, 219, 203, 102, 215, 208, 206, 124, 243, 45, 236, 117, - 209, 138, 248, 61, 234, 88, 211, 144, 201, 213, 203, 97, 247, 210, 251, - 38, 228, 221, 220, 84, 248, 201, 232, 195, 197, 200, 232, 195, 248, 69, - 197, 51, 229, 230, 243, 46, 249, 99, 243, 46, 232, 58, 249, 99, 243, 46, - 248, 112, 210, 21, 221, 37, 209, 29, 235, 57, 247, 86, 249, 87, 247, 86, - 236, 108, 215, 166, 233, 62, 238, 193, 233, 62, 198, 169, 233, 62, 207, - 170, 233, 62, 247, 31, 233, 62, 235, 68, 233, 62, 201, 195, 193, 94, 228, - 153, 233, 62, 215, 209, 233, 62, 236, 118, 233, 62, 209, 139, 233, 62, - 232, 62, 233, 62, 230, 26, 233, 62, 193, 38, 233, 62, 248, 216, 233, 62, - 210, 152, 233, 62, 209, 139, 213, 0, 210, 66, 208, 201, 243, 29, 233, - 144, 233, 152, 234, 167, 213, 0, 215, 163, 198, 56, 64, 132, 209, 51, - 249, 94, 223, 120, 64, 143, 209, 51, 249, 94, 223, 120, 64, 45, 209, 51, - 249, 94, 223, 120, 64, 50, 209, 51, 249, 94, 223, 120, 232, 189, 230, 21, - 57, 193, 134, 230, 21, 57, 211, 115, 230, 21, 57, 198, 206, 132, 57, 198, - 206, 143, 57, 242, 193, 229, 252, 57, 211, 66, 229, 252, 57, 238, 161, - 193, 34, 229, 232, 233, 147, 214, 97, 200, 37, 222, 237, 235, 62, 221, - 118, 248, 125, 193, 34, 242, 164, 208, 130, 230, 0, 209, 3, 217, 58, 203, - 47, 250, 128, 203, 47, 229, 102, 203, 47, 193, 34, 205, 134, 193, 34, - 248, 42, 232, 117, 247, 172, 223, 135, 202, 182, 247, 171, 223, 135, 202, - 182, 248, 12, 230, 248, 217, 70, 193, 35, 233, 40, 217, 71, 24, 193, 36, - 228, 230, 229, 251, 103, 216, 168, 228, 230, 229, 251, 103, 193, 33, 228, - 230, 229, 251, 209, 43, 211, 130, 193, 36, 4, 247, 191, 234, 165, 247, - 238, 4, 195, 141, 209, 242, 4, 248, 73, 230, 45, 217, 71, 4, 230, 143, - 209, 177, 217, 53, 217, 71, 4, 197, 59, 211, 107, 217, 70, 211, 107, 193, - 35, 249, 98, 238, 246, 193, 19, 208, 206, 222, 247, 211, 125, 222, 247, - 230, 218, 231, 24, 249, 99, 251, 69, 233, 157, 251, 131, 251, 132, 215, - 198, 223, 140, 202, 98, 223, 109, 237, 34, 209, 241, 230, 137, 237, 195, - 219, 71, 214, 221, 209, 41, 233, 63, 217, 14, 230, 44, 249, 36, 209, 45, - 200, 58, 209, 131, 221, 99, 77, 218, 220, 219, 151, 206, 183, 231, 118, - 201, 60, 221, 98, 248, 23, 238, 196, 4, 229, 191, 193, 115, 248, 212, - 229, 191, 247, 230, 229, 191, 103, 229, 189, 201, 234, 229, 191, 230, - 153, 229, 191, 229, 192, 4, 55, 248, 67, 229, 191, 230, 167, 229, 191, - 192, 73, 229, 191, 208, 131, 229, 191, 229, 192, 4, 206, 242, 207, 7, - 229, 189, 229, 192, 237, 91, 236, 244, 203, 130, 4, 41, 75, 223, 89, 234, - 92, 155, 247, 203, 251, 68, 113, 248, 51, 202, 87, 113, 242, 37, 113, - 201, 207, 200, 140, 113, 235, 53, 237, 171, 113, 209, 132, 80, 209, 30, - 232, 159, 248, 137, 236, 150, 113, 201, 225, 249, 59, 198, 226, 249, 59, - 64, 232, 146, 228, 110, 209, 49, 113, 215, 213, 249, 80, 238, 123, 233, - 177, 88, 236, 110, 57, 238, 183, 247, 52, 249, 41, 4, 192, 71, 57, 249, - 41, 4, 236, 110, 57, 249, 41, 4, 233, 193, 57, 249, 41, 4, 209, 1, 57, - 215, 213, 4, 193, 59, 243, 89, 4, 196, 62, 197, 246, 24, 192, 71, 57, - 205, 55, 209, 240, 239, 11, 247, 236, 216, 24, 232, 151, 236, 175, 211, - 49, 236, 181, 235, 11, 232, 222, 232, 131, 211, 66, 232, 222, 232, 131, - 210, 195, 4, 238, 128, 210, 195, 233, 55, 196, 73, 247, 92, 199, 125, - 247, 92, 247, 53, 223, 120, 243, 89, 4, 196, 62, 197, 245, 243, 89, 4, - 235, 75, 197, 245, 249, 38, 243, 88, 242, 177, 208, 126, 206, 110, 208, - 126, 210, 124, 201, 48, 206, 45, 197, 234, 206, 45, 248, 47, 199, 227, - 219, 205, 212, 247, 212, 248, 4, 237, 90, 238, 195, 242, 171, 248, 48, - 211, 66, 248, 48, 230, 167, 248, 48, 248, 67, 248, 48, 211, 44, 248, 48, - 248, 45, 214, 214, 249, 84, 205, 68, 216, 169, 199, 102, 207, 96, 210, - 193, 233, 23, 217, 127, 205, 114, 251, 35, 208, 151, 251, 243, 218, 222, - 243, 71, 216, 182, 211, 3, 197, 254, 223, 131, 197, 254, 210, 202, 234, - 220, 113, 223, 128, 234, 25, 234, 26, 4, 235, 75, 63, 56, 242, 171, 217, - 88, 4, 218, 213, 232, 177, 242, 171, 217, 88, 4, 207, 142, 232, 177, 211, - 66, 217, 88, 4, 207, 142, 232, 177, 211, 66, 217, 88, 4, 218, 213, 232, - 177, 209, 10, 209, 11, 228, 156, 214, 61, 215, 243, 209, 185, 215, 243, - 209, 186, 4, 96, 63, 250, 133, 219, 200, 195, 65, 215, 242, 215, 243, - 209, 186, 211, 133, 213, 31, 215, 243, 209, 184, 251, 36, 4, 249, 26, - 247, 84, 247, 85, 4, 232, 168, 195, 62, 247, 84, 199, 99, 207, 160, 195, - 61, 232, 215, 208, 186, 209, 20, 201, 72, 208, 229, 248, 221, 197, 13, - 96, 250, 181, 242, 173, 96, 24, 117, 211, 66, 242, 219, 250, 181, 242, - 173, 96, 24, 117, 211, 66, 242, 219, 250, 182, 4, 47, 91, 210, 245, 242, - 173, 235, 75, 24, 196, 62, 211, 66, 242, 219, 250, 181, 251, 34, 235, 75, - 24, 196, 62, 211, 66, 242, 219, 250, 181, 131, 247, 234, 113, 136, 247, - 234, 113, 201, 230, 4, 247, 77, 105, 201, 229, 201, 230, 4, 91, 202, 0, - 193, 136, 201, 230, 4, 115, 202, 0, 193, 135, 249, 8, 234, 92, 209, 79, - 219, 195, 217, 100, 230, 236, 206, 198, 217, 100, 230, 236, 219, 11, 4, - 223, 101, 210, 25, 242, 171, 219, 11, 4, 221, 197, 221, 197, 219, 10, - 211, 66, 219, 10, 248, 185, 248, 186, 4, 247, 77, 105, 248, 46, 219, 79, - 113, 207, 161, 247, 165, 249, 97, 4, 117, 63, 56, 234, 53, 4, 117, 63, - 56, 211, 94, 4, 233, 175, 87, 4, 45, 50, 63, 56, 202, 10, 4, 96, 63, 56, - 198, 49, 4, 196, 62, 63, 56, 213, 31, 91, 196, 101, 234, 119, 113, 221, - 194, 199, 90, 223, 95, 16, 39, 8, 6, 219, 150, 223, 95, 16, 39, 8, 2, - 219, 150, 223, 95, 16, 39, 212, 122, 223, 95, 16, 39, 200, 72, 223, 95, - 16, 39, 8, 219, 150, 232, 202, 234, 92, 198, 44, 193, 9, 230, 28, 212, - 105, 24, 248, 53, 228, 237, 209, 110, 216, 69, 199, 100, 238, 150, 249, - 61, 202, 131, 209, 53, 201, 98, 4, 82, 236, 96, 222, 247, 16, 39, 248, - 198, 197, 232, 234, 69, 62, 51, 247, 165, 64, 51, 247, 165, 219, 245, - 207, 82, 242, 218, 219, 245, 248, 67, 242, 218, 219, 245, 211, 44, 236, - 243, 219, 245, 248, 67, 236, 243, 2, 211, 44, 236, 243, 2, 248, 67, 236, - 243, 196, 72, 207, 82, 197, 237, 235, 78, 207, 82, 197, 237, 196, 72, 2, - 207, 82, 197, 237, 235, 78, 2, 207, 82, 197, 237, 110, 50, 203, 146, 64, - 242, 218, 116, 50, 203, 146, 64, 242, 218, 47, 238, 171, 209, 34, 238, - 171, 209, 35, 4, 230, 34, 60, 238, 171, 209, 34, 212, 251, 45, 204, 23, - 4, 115, 236, 94, 212, 251, 50, 204, 23, 4, 115, 236, 94, 16, 39, 217, 31, - 246, 194, 64, 8, 238, 170, 88, 8, 238, 170, 246, 234, 238, 170, 211, 103, - 113, 235, 81, 80, 210, 51, 222, 98, 215, 181, 200, 66, 216, 164, 4, 213, - 161, 247, 254, 248, 19, 80, 228, 60, 242, 175, 233, 63, 91, 211, 150, - 242, 175, 233, 63, 103, 211, 150, 242, 175, 233, 63, 115, 211, 150, 242, - 175, 233, 63, 232, 90, 211, 150, 242, 175, 233, 63, 232, 185, 211, 150, - 242, 175, 233, 63, 202, 131, 211, 150, 242, 175, 233, 63, 203, 242, 211, - 150, 242, 175, 233, 63, 234, 121, 211, 150, 242, 175, 233, 63, 213, 161, - 211, 150, 242, 175, 233, 63, 199, 91, 211, 150, 242, 175, 233, 63, 234, - 85, 211, 150, 242, 175, 233, 63, 197, 34, 211, 150, 242, 175, 233, 63, - 211, 86, 242, 175, 233, 63, 197, 7, 242, 175, 233, 63, 198, 212, 242, - 175, 233, 63, 232, 86, 242, 175, 233, 63, 232, 183, 242, 175, 233, 63, - 202, 127, 242, 175, 233, 63, 203, 241, 242, 175, 233, 63, 234, 120, 242, - 175, 233, 63, 213, 160, 242, 175, 233, 63, 199, 89, 242, 175, 233, 63, - 234, 83, 242, 175, 233, 63, 197, 32, 50, 201, 229, 50, 201, 230, 4, 91, - 202, 0, 193, 136, 50, 201, 230, 4, 115, 202, 0, 193, 135, 247, 198, 247, - 199, 4, 202, 0, 193, 135, 206, 181, 248, 185, 248, 48, 247, 75, 217, 55, - 242, 174, 62, 202, 99, 24, 238, 168, 213, 31, 209, 116, 228, 229, 217, - 71, 223, 135, 247, 174, 200, 207, 219, 141, 202, 85, 211, 46, 201, 186, - 237, 176, 200, 189, 201, 216, 201, 217, 193, 116, 222, 156, 217, 71, 237, - 194, 45, 230, 21, 199, 102, 207, 96, 199, 102, 207, 97, 4, 210, 194, 50, - 230, 21, 199, 102, 207, 96, 64, 198, 29, 199, 101, 62, 198, 29, 199, 101, - 199, 102, 211, 94, 198, 49, 80, 215, 239, 242, 197, 215, 243, 209, 185, - 249, 97, 80, 234, 25, 201, 104, 234, 25, 234, 26, 4, 219, 105, 232, 138, - 234, 25, 210, 26, 138, 201, 104, 234, 25, 219, 78, 210, 123, 62, 208, - 126, 110, 45, 210, 24, 110, 45, 249, 55, 210, 25, 110, 45, 232, 92, 210, - 25, 110, 45, 210, 187, 110, 45, 238, 186, 45, 193, 3, 230, 20, 152, 211, - 115, 230, 21, 57, 207, 142, 230, 21, 4, 232, 207, 201, 206, 207, 13, 207, - 142, 230, 21, 4, 232, 207, 201, 206, 207, 13, 198, 206, 132, 57, 207, 13, - 198, 206, 143, 57, 207, 13, 195, 64, 230, 20, 207, 13, 230, 21, 4, 82, - 232, 212, 233, 163, 207, 142, 230, 21, 4, 210, 97, 248, 160, 82, 24, 206, - 184, 232, 206, 64, 143, 209, 51, 45, 230, 21, 223, 120, 202, 201, 64, 45, - 209, 51, 223, 120, 202, 201, 64, 50, 209, 51, 223, 120, 202, 201, 62, 45, - 209, 51, 223, 120, 202, 201, 62, 50, 209, 51, 223, 120, 62, 45, 209, 51, - 249, 94, 223, 120, 62, 50, 209, 51, 249, 94, 223, 120, 202, 201, 64, 132, - 209, 51, 223, 120, 202, 201, 64, 143, 209, 51, 223, 120, 202, 201, 62, - 132, 209, 51, 223, 120, 202, 201, 62, 143, 209, 51, 223, 120, 62, 132, - 209, 51, 249, 94, 223, 120, 62, 143, 209, 51, 249, 94, 223, 120, 62, 229, - 191, 237, 33, 239, 11, 221, 196, 24, 215, 165, 115, 214, 70, 239, 10, - 208, 202, 209, 63, 247, 94, 62, 229, 240, 203, 98, 232, 151, 236, 175, - 64, 229, 240, 203, 98, 232, 151, 236, 175, 202, 27, 203, 98, 232, 151, - 236, 175, 199, 177, 247, 36, 193, 54, 221, 195, 91, 247, 166, 215, 165, - 103, 247, 166, 215, 165, 115, 247, 166, 215, 165, 198, 20, 38, 209, 240, - 239, 11, 229, 240, 236, 175, 205, 71, 208, 203, 227, 246, 233, 23, 227, - 246, 211, 49, 236, 182, 227, 246, 236, 123, 4, 199, 48, 236, 123, 4, 199, - 49, 24, 209, 168, 236, 123, 4, 209, 168, 232, 76, 4, 209, 168, 232, 76, - 4, 198, 145, 232, 76, 4, 251, 82, 192, 235, 62, 232, 131, 232, 131, 211, - 66, 232, 131, 247, 53, 140, 236, 159, 247, 53, 232, 222, 248, 14, 232, - 222, 247, 107, 234, 63, 212, 249, 234, 63, 212, 250, 210, 194, 234, 63, - 212, 250, 210, 200, 212, 249, 212, 250, 210, 194, 212, 250, 210, 200, - 234, 63, 236, 122, 234, 63, 210, 194, 234, 63, 210, 192, 236, 122, 210, - 194, 210, 192, 193, 146, 201, 213, 212, 250, 210, 200, 201, 213, 247, 93, - 210, 200, 237, 33, 193, 63, 216, 21, 217, 3, 210, 248, 242, 173, 50, 24, - 45, 204, 23, 250, 181, 247, 77, 192, 235, 223, 126, 232, 124, 202, 111, - 113, 237, 89, 232, 124, 202, 111, 113, 239, 12, 38, 221, 197, 206, 135, - 214, 61, 210, 195, 4, 47, 199, 48, 201, 62, 243, 88, 237, 224, 221, 54, - 219, 72, 201, 228, 229, 204, 223, 135, 202, 182, 115, 207, 115, 56, 115, - 207, 115, 60, 115, 207, 115, 219, 200, 115, 207, 115, 187, 45, 201, 225, - 247, 216, 50, 201, 225, 247, 216, 103, 201, 225, 247, 215, 115, 201, 225, - 247, 215, 45, 198, 226, 247, 216, 50, 198, 226, 247, 216, 45, 251, 68, - 247, 216, 50, 251, 68, 247, 216, 215, 193, 247, 216, 219, 106, 215, 193, - 247, 216, 219, 106, 215, 192, 249, 57, 111, 4, 249, 56, 249, 57, 27, 192, - 235, 249, 57, 111, 4, 27, 192, 235, 249, 57, 28, 27, 192, 235, 249, 57, - 111, 4, 28, 27, 192, 235, 155, 243, 78, 77, 249, 57, 111, 4, 28, 243, 77, - 193, 18, 217, 51, 215, 170, 232, 43, 198, 80, 198, 25, 201, 87, 80, 219, - 120, 202, 183, 80, 222, 248, 215, 151, 230, 163, 233, 62, 230, 163, 233, - 63, 4, 202, 59, 233, 144, 233, 63, 4, 199, 121, 80, 222, 158, 202, 59, - 233, 63, 4, 211, 66, 215, 163, 202, 59, 233, 63, 4, 211, 66, 215, 164, - 24, 202, 59, 233, 144, 202, 59, 233, 63, 4, 211, 66, 215, 164, 24, 242, - 39, 200, 139, 202, 59, 233, 63, 4, 211, 66, 215, 164, 24, 198, 166, 233, - 144, 202, 59, 233, 63, 4, 230, 33, 202, 59, 233, 63, 4, 228, 155, 193, - 56, 233, 62, 202, 59, 233, 63, 4, 202, 59, 233, 144, 233, 63, 205, 104, - 237, 69, 232, 122, 207, 56, 233, 62, 202, 59, 233, 63, 4, 229, 190, 233, - 144, 202, 59, 233, 63, 4, 200, 189, 202, 58, 233, 62, 214, 68, 233, 62, - 233, 165, 233, 62, 196, 107, 233, 62, 233, 63, 4, 242, 39, 200, 139, 210, - 17, 233, 62, 239, 3, 233, 62, 239, 4, 233, 62, 221, 97, 233, 62, 233, 63, - 198, 209, 41, 221, 98, 221, 97, 233, 63, 4, 202, 59, 233, 144, 221, 97, - 233, 63, 4, 242, 171, 233, 144, 233, 63, 4, 201, 7, 198, 56, 233, 63, 4, - 201, 7, 198, 57, 24, 193, 56, 233, 152, 233, 63, 4, 201, 7, 198, 57, 24, - 198, 166, 233, 144, 236, 183, 233, 62, 193, 16, 233, 62, 251, 60, 233, - 62, 208, 255, 233, 62, 238, 152, 233, 62, 209, 244, 233, 62, 233, 63, 4, - 218, 239, 80, 197, 213, 236, 183, 247, 170, 207, 56, 233, 62, 232, 54, - 233, 63, 4, 211, 66, 215, 163, 251, 58, 233, 62, 233, 16, 233, 62, 193, - 117, 233, 62, 202, 86, 233, 62, 198, 125, 233, 62, 230, 164, 233, 62, - 218, 223, 238, 152, 233, 62, 233, 63, 4, 211, 66, 215, 163, 228, 99, 233, - 62, 233, 63, 4, 211, 66, 215, 164, 24, 242, 39, 200, 139, 233, 63, 205, - 73, 223, 135, 233, 17, 250, 140, 233, 62, 232, 143, 233, 62, 202, 87, - 233, 62, 236, 150, 233, 62, 233, 63, 193, 51, 215, 163, 233, 63, 4, 216, - 197, 217, 16, 230, 163, 247, 31, 233, 63, 4, 202, 59, 233, 144, 247, 31, - 233, 63, 4, 199, 121, 80, 222, 158, 202, 59, 247, 31, 233, 63, 4, 211, - 66, 215, 163, 202, 59, 247, 31, 233, 63, 4, 229, 190, 233, 144, 247, 31, - 233, 63, 4, 193, 1, 202, 60, 221, 97, 247, 31, 233, 63, 4, 242, 171, 233, - 144, 208, 255, 247, 31, 233, 62, 238, 152, 247, 31, 233, 62, 193, 117, - 247, 31, 233, 62, 202, 79, 232, 54, 233, 62, 202, 79, 202, 59, 233, 62, - 196, 68, 233, 62, 233, 63, 4, 206, 133, 233, 144, 233, 63, 4, 213, 31, - 230, 209, 231, 95, 233, 63, 4, 211, 115, 231, 95, 209, 242, 248, 20, 237, - 84, 205, 44, 215, 208, 229, 194, 215, 208, 201, 231, 215, 208, 229, 243, - 209, 242, 207, 140, 91, 230, 20, 209, 242, 207, 140, 248, 32, 229, 252, - 223, 135, 246, 236, 209, 242, 232, 53, 209, 242, 4, 208, 255, 233, 62, - 209, 242, 4, 232, 132, 229, 251, 185, 193, 103, 209, 51, 219, 209, 201, - 253, 193, 103, 209, 51, 219, 209, 185, 234, 160, 209, 51, 219, 209, 201, - 253, 234, 160, 209, 51, 219, 209, 152, 185, 193, 103, 209, 51, 219, 209, - 152, 201, 253, 193, 103, 209, 51, 219, 209, 152, 185, 234, 160, 209, 51, - 219, 209, 152, 201, 253, 234, 160, 209, 51, 219, 209, 185, 193, 103, 209, - 51, 195, 45, 219, 209, 201, 253, 193, 103, 209, 51, 195, 45, 219, 209, - 185, 234, 160, 209, 51, 195, 45, 219, 209, 201, 253, 234, 160, 209, 51, - 195, 45, 219, 209, 88, 185, 193, 103, 209, 51, 195, 45, 219, 209, 88, - 201, 253, 193, 103, 209, 51, 195, 45, 219, 209, 88, 185, 234, 160, 209, - 51, 195, 45, 219, 209, 88, 201, 253, 234, 160, 209, 51, 195, 45, 219, - 209, 185, 193, 103, 209, 51, 247, 212, 201, 253, 193, 103, 209, 51, 247, - 212, 185, 234, 160, 209, 51, 247, 212, 201, 253, 234, 160, 209, 51, 247, - 212, 88, 185, 193, 103, 209, 51, 247, 212, 88, 201, 253, 193, 103, 209, - 51, 247, 212, 88, 185, 234, 160, 209, 51, 247, 212, 88, 201, 253, 234, - 160, 209, 51, 247, 212, 228, 228, 208, 1, 51, 211, 32, 228, 228, 208, 1, - 51, 211, 33, 223, 135, 62, 201, 185, 202, 20, 208, 1, 51, 211, 32, 202, - 20, 208, 1, 51, 211, 33, 223, 135, 62, 201, 185, 117, 206, 141, 196, 62, - 206, 141, 96, 206, 141, 235, 75, 206, 141, 27, 34, 233, 214, 211, 32, 88, - 27, 34, 233, 214, 211, 32, 34, 211, 66, 233, 214, 211, 32, 88, 34, 211, - 66, 233, 214, 211, 32, 88, 251, 87, 211, 32, 200, 142, 251, 87, 211, 32, - 49, 88, 54, 152, 242, 27, 207, 247, 87, 211, 32, 49, 88, 54, 242, 27, - 207, 247, 87, 211, 32, 49, 88, 131, 54, 242, 27, 207, 247, 87, 211, 32, - 88, 223, 75, 211, 32, 49, 223, 75, 211, 32, 88, 49, 223, 75, 211, 32, - 195, 80, 88, 202, 18, 195, 80, 88, 207, 14, 202, 18, 243, 76, 248, 59, - 207, 14, 243, 76, 248, 59, 206, 141, 229, 173, 201, 80, 219, 8, 207, 147, - 247, 54, 229, 99, 198, 12, 229, 99, 198, 13, 4, 247, 201, 213, 0, 198, - 12, 216, 139, 155, 207, 148, 201, 88, 198, 10, 198, 11, 247, 54, 247, - 175, 211, 90, 247, 175, 197, 208, 247, 176, 201, 58, 216, 25, 251, 91, - 232, 203, 234, 45, 209, 43, 247, 54, 211, 90, 209, 43, 247, 54, 199, 150, - 211, 90, 199, 150, 250, 100, 211, 90, 250, 100, 207, 89, 195, 142, 237, - 65, 197, 199, 250, 175, 218, 230, 198, 19, 215, 201, 215, 169, 207, 146, - 200, 159, 207, 146, 215, 169, 247, 106, 251, 215, 198, 9, 203, 60, 206, - 107, 201, 223, 228, 209, 198, 16, 219, 108, 81, 198, 16, 219, 108, 238, - 246, 57, 209, 43, 247, 38, 207, 7, 219, 108, 197, 234, 232, 178, 211, 94, - 209, 12, 236, 100, 213, 31, 234, 31, 57, 202, 57, 113, 213, 31, 202, 57, - 113, 208, 125, 219, 60, 223, 135, 223, 22, 209, 100, 113, 236, 130, 212, - 255, 219, 60, 113, 209, 6, 193, 142, 113, 213, 15, 193, 142, 113, 248, - 136, 213, 31, 248, 135, 248, 134, 215, 169, 248, 134, 210, 42, 213, 31, - 210, 41, 243, 37, 238, 162, 216, 163, 113, 193, 32, 113, 207, 23, 249, - 99, 113, 198, 81, 193, 142, 242, 168, 203, 15, 249, 11, 249, 9, 210, 81, - 238, 230, 238, 109, 249, 76, 242, 198, 45, 218, 193, 197, 238, 4, 206, - 108, 238, 209, 208, 189, 57, 47, 223, 109, 201, 254, 248, 11, 113, 230, - 247, 113, 238, 201, 24, 220, 1, 202, 87, 252, 5, 203, 38, 249, 75, 248, - 184, 248, 185, 248, 208, 209, 100, 80, 193, 15, 211, 147, 57, 203, 38, - 197, 209, 201, 3, 210, 191, 229, 95, 199, 93, 228, 98, 234, 87, 209, 88, - 202, 82, 193, 91, 206, 184, 247, 185, 230, 29, 24, 193, 9, 203, 73, 211, - 120, 235, 50, 215, 173, 207, 147, 198, 21, 215, 176, 248, 58, 196, 72, - 216, 36, 251, 171, 196, 72, 251, 171, 196, 72, 2, 251, 171, 2, 251, 171, - 213, 4, 251, 171, 251, 172, 237, 48, 251, 172, 250, 188, 205, 113, 211, - 90, 232, 203, 234, 45, 236, 233, 219, 8, 210, 85, 203, 60, 205, 78, 215, - 176, 205, 78, 247, 65, 202, 89, 232, 138, 205, 108, 202, 106, 250, 102, - 206, 238, 209, 169, 197, 199, 206, 134, 202, 107, 160, 16, 39, 207, 253, - 160, 16, 39, 251, 173, 160, 16, 39, 232, 202, 160, 16, 39, 234, 163, 160, - 16, 39, 193, 141, 160, 16, 39, 250, 241, 160, 16, 39, 250, 242, 207, 76, - 160, 16, 39, 250, 242, 207, 75, 160, 16, 39, 250, 242, 195, 28, 160, 16, - 39, 250, 242, 195, 27, 160, 16, 39, 195, 42, 160, 16, 39, 195, 41, 160, - 16, 39, 195, 40, 160, 16, 39, 200, 200, 160, 16, 39, 209, 194, 200, 200, - 160, 16, 39, 62, 200, 200, 160, 16, 39, 216, 162, 200, 231, 160, 16, 39, - 216, 162, 200, 230, 160, 16, 39, 216, 162, 200, 229, 160, 16, 39, 242, - 221, 160, 16, 39, 205, 153, 160, 16, 39, 213, 148, 160, 16, 39, 195, 25, - 160, 16, 39, 195, 24, 160, 16, 39, 206, 143, 205, 153, 160, 16, 39, 206, - 143, 205, 152, 160, 16, 39, 230, 214, 160, 16, 39, 202, 179, 160, 16, 39, - 223, 46, 211, 39, 160, 16, 39, 223, 46, 211, 38, 160, 16, 39, 238, 175, - 80, 223, 45, 160, 16, 39, 207, 72, 80, 223, 45, 160, 16, 39, 238, 221, - 211, 39, 160, 16, 39, 223, 44, 211, 39, 160, 16, 39, 200, 232, 80, 238, - 220, 160, 16, 39, 238, 175, 80, 238, 220, 160, 16, 39, 238, 175, 80, 238, - 219, 160, 16, 39, 238, 221, 251, 28, 160, 16, 39, 205, 154, 80, 238, 221, - 251, 28, 160, 16, 39, 200, 232, 80, 205, 154, 80, 238, 220, 160, 16, 39, - 195, 136, 160, 16, 39, 198, 138, 211, 39, 160, 16, 39, 219, 213, 211, 39, - 160, 16, 39, 251, 27, 211, 39, 160, 16, 39, 200, 232, 80, 251, 26, 160, - 16, 39, 205, 154, 80, 251, 26, 160, 16, 39, 200, 232, 80, 205, 154, 80, - 251, 26, 160, 16, 39, 195, 43, 80, 251, 26, 160, 16, 39, 207, 72, 80, - 251, 26, 160, 16, 39, 207, 72, 80, 251, 25, 160, 16, 39, 207, 71, 160, - 16, 39, 207, 70, 160, 16, 39, 207, 69, 160, 16, 39, 207, 68, 160, 16, 39, - 251, 126, 160, 16, 39, 251, 125, 160, 16, 39, 217, 42, 160, 16, 39, 205, - 163, 160, 16, 39, 250, 180, 160, 16, 39, 207, 100, 160, 16, 39, 207, 99, - 160, 16, 39, 250, 104, 160, 16, 39, 248, 102, 211, 39, 160, 16, 39, 199, - 172, 160, 16, 39, 199, 171, 160, 16, 39, 208, 3, 219, 97, 160, 16, 39, - 248, 39, 160, 16, 39, 248, 38, 160, 16, 39, 248, 37, 160, 16, 39, 251, - 100, 160, 16, 39, 211, 119, 160, 16, 39, 201, 209, 160, 16, 39, 198, 136, - 160, 16, 39, 230, 125, 160, 16, 39, 193, 129, 160, 16, 39, 208, 250, 160, - 16, 39, 247, 89, 160, 16, 39, 197, 46, 160, 16, 39, 247, 56, 215, 182, - 160, 16, 39, 205, 88, 80, 222, 160, 160, 16, 39, 247, 103, 160, 16, 39, - 197, 231, 160, 16, 39, 201, 95, 197, 231, 160, 16, 39, 219, 7, 160, 16, - 39, 202, 32, 160, 16, 39, 196, 50, 160, 16, 39, 228, 153, 235, 27, 160, - 16, 39, 250, 154, 160, 16, 39, 209, 8, 250, 154, 160, 16, 39, 247, 239, - 160, 16, 39, 208, 249, 247, 239, 160, 16, 39, 251, 97, 160, 16, 39, 201, - 41, 200, 181, 201, 40, 160, 16, 39, 201, 41, 200, 181, 201, 39, 160, 16, - 39, 200, 228, 160, 16, 39, 208, 222, 160, 16, 39, 236, 170, 160, 16, 39, - 236, 172, 160, 16, 39, 236, 171, 160, 16, 39, 208, 134, 160, 16, 39, 208, - 122, 160, 16, 39, 238, 160, 160, 16, 39, 238, 159, 160, 16, 39, 238, 158, - 160, 16, 39, 238, 157, 160, 16, 39, 238, 156, 160, 16, 39, 251, 140, 160, - 16, 39, 249, 12, 80, 217, 23, 160, 16, 39, 249, 12, 80, 195, 171, 160, - 16, 39, 207, 21, 160, 16, 39, 228, 145, 160, 16, 39, 213, 176, 160, 16, - 39, 237, 158, 160, 16, 39, 215, 196, 160, 16, 39, 134, 235, 65, 160, 16, - 39, 134, 211, 7, 62, 219, 195, 223, 28, 50, 197, 237, 62, 196, 72, 223, - 28, 50, 197, 237, 62, 206, 198, 223, 28, 50, 197, 237, 62, 235, 78, 223, - 28, 50, 197, 237, 62, 202, 79, 2, 242, 218, 216, 194, 28, 64, 242, 218, - 28, 64, 242, 218, 88, 64, 242, 218, 195, 80, 88, 64, 242, 218, 233, 156, - 88, 64, 242, 218, 64, 242, 219, 238, 242, 62, 2, 242, 218, 206, 110, 199, - 173, 62, 198, 133, 201, 185, 62, 202, 79, 2, 201, 185, 155, 64, 201, 185, - 216, 194, 64, 201, 185, 28, 64, 201, 185, 88, 64, 201, 185, 195, 80, 88, - 64, 201, 185, 233, 156, 88, 64, 201, 185, 64, 51, 238, 242, 62, 195, 80, - 2, 201, 185, 64, 51, 238, 242, 62, 216, 194, 201, 185, 51, 199, 173, 62, - 198, 133, 236, 243, 62, 195, 80, 2, 236, 243, 62, 216, 194, 2, 236, 243, - 64, 236, 244, 238, 242, 62, 195, 80, 2, 236, 243, 64, 236, 244, 238, 242, - 62, 216, 194, 236, 243, 236, 244, 199, 173, 62, 198, 133, 218, 210, 62, - 195, 80, 2, 218, 210, 62, 216, 194, 2, 218, 210, 64, 218, 211, 238, 242, - 62, 2, 218, 210, 198, 255, 35, 238, 170, 155, 35, 238, 170, 216, 194, 35, - 238, 170, 28, 35, 238, 170, 195, 80, 28, 35, 238, 170, 195, 80, 88, 35, - 238, 170, 233, 156, 88, 35, 238, 170, 198, 255, 205, 149, 155, 205, 149, - 216, 194, 205, 149, 28, 205, 149, 88, 205, 149, 195, 80, 88, 205, 149, - 233, 156, 88, 205, 149, 155, 232, 185, 201, 201, 250, 143, 216, 194, 232, - 185, 201, 201, 250, 143, 28, 232, 185, 201, 201, 250, 143, 88, 232, 185, - 201, 201, 250, 143, 195, 80, 88, 232, 185, 201, 201, 250, 143, 233, 156, - 88, 232, 185, 201, 201, 250, 143, 155, 202, 131, 201, 201, 250, 143, 216, - 194, 202, 131, 201, 201, 250, 143, 28, 202, 131, 201, 201, 250, 143, 88, - 202, 131, 201, 201, 250, 143, 195, 80, 88, 202, 131, 201, 201, 250, 143, - 233, 156, 88, 202, 131, 201, 201, 250, 143, 155, 234, 121, 201, 201, 250, - 143, 216, 194, 234, 121, 201, 201, 250, 143, 28, 234, 121, 201, 201, 250, - 143, 88, 234, 121, 201, 201, 250, 143, 195, 80, 88, 234, 121, 201, 201, - 250, 143, 155, 115, 209, 53, 62, 201, 97, 216, 194, 115, 209, 53, 62, - 201, 97, 115, 209, 53, 62, 201, 97, 216, 194, 115, 209, 53, 209, 122, - 201, 97, 155, 232, 90, 209, 53, 62, 201, 97, 216, 194, 232, 90, 209, 53, - 62, 201, 97, 232, 90, 209, 53, 62, 201, 97, 216, 194, 232, 90, 209, 53, - 209, 122, 201, 97, 207, 14, 155, 232, 90, 209, 53, 209, 122, 201, 97, - 155, 232, 185, 209, 53, 62, 201, 97, 88, 232, 185, 209, 53, 62, 201, 97, - 216, 194, 202, 131, 209, 53, 62, 201, 97, 88, 202, 131, 209, 53, 62, 201, - 97, 202, 131, 209, 53, 209, 122, 201, 97, 216, 194, 234, 121, 209, 53, - 62, 201, 97, 88, 234, 121, 209, 53, 62, 201, 97, 195, 80, 88, 234, 121, - 209, 53, 62, 201, 97, 88, 234, 121, 209, 53, 209, 122, 201, 97, 155, 197, - 34, 209, 53, 62, 201, 97, 88, 197, 34, 209, 53, 62, 201, 97, 88, 197, 34, - 209, 53, 209, 122, 201, 97, 47, 197, 237, 214, 92, 47, 197, 237, 47, 201, - 185, 214, 92, 47, 201, 185, 219, 245, 211, 44, 242, 218, 219, 245, 192, - 73, 242, 218, 219, 245, 230, 167, 242, 218, 219, 245, 208, 131, 242, 218, - 219, 245, 247, 227, 242, 218, 219, 245, 207, 82, 201, 185, 219, 245, 248, - 67, 201, 185, 219, 245, 211, 44, 201, 185, 219, 245, 192, 73, 201, 185, - 219, 245, 230, 167, 201, 185, 219, 245, 208, 131, 201, 185, 219, 245, - 247, 227, 201, 185, 88, 234, 1, 57, 117, 63, 4, 2, 197, 238, 250, 185, - 196, 62, 63, 4, 2, 197, 238, 250, 185, 96, 63, 4, 2, 197, 238, 250, 185, - 235, 75, 63, 4, 2, 197, 238, 250, 185, 117, 63, 4, 216, 194, 197, 238, - 250, 185, 196, 62, 63, 4, 216, 194, 197, 238, 250, 185, 96, 63, 4, 216, - 194, 197, 238, 250, 185, 235, 75, 63, 4, 216, 194, 197, 238, 250, 185, - 117, 63, 4, 219, 245, 197, 238, 250, 185, 196, 62, 63, 4, 219, 245, 197, - 238, 250, 185, 96, 63, 4, 219, 245, 197, 238, 250, 185, 235, 75, 63, 4, - 219, 245, 197, 238, 250, 185, 117, 63, 4, 2, 233, 251, 250, 185, 196, 62, - 63, 4, 2, 233, 251, 250, 185, 96, 63, 4, 2, 233, 251, 250, 185, 235, 75, - 63, 4, 2, 233, 251, 250, 185, 117, 63, 4, 233, 251, 250, 185, 196, 62, - 63, 4, 233, 251, 250, 185, 96, 63, 4, 233, 251, 250, 185, 235, 75, 63, 4, - 233, 251, 250, 185, 88, 117, 63, 4, 233, 251, 250, 185, 88, 196, 62, 63, - 4, 233, 251, 250, 185, 88, 96, 63, 4, 233, 251, 250, 185, 88, 235, 75, - 63, 4, 233, 251, 250, 185, 88, 117, 63, 4, 219, 245, 233, 251, 250, 185, - 88, 196, 62, 63, 4, 219, 245, 233, 251, 250, 185, 88, 96, 63, 4, 219, - 245, 233, 251, 250, 185, 88, 235, 75, 63, 4, 219, 245, 233, 251, 250, - 185, 117, 197, 236, 63, 4, 214, 201, 203, 144, 196, 62, 197, 236, 63, 4, - 214, 201, 203, 144, 96, 197, 236, 63, 4, 214, 201, 203, 144, 235, 75, - 197, 236, 63, 4, 214, 201, 203, 144, 117, 197, 236, 63, 4, 216, 194, 203, - 144, 196, 62, 197, 236, 63, 4, 216, 194, 203, 144, 96, 197, 236, 63, 4, - 216, 194, 203, 144, 235, 75, 197, 236, 63, 4, 216, 194, 203, 144, 117, - 197, 236, 63, 4, 28, 203, 144, 196, 62, 197, 236, 63, 4, 28, 203, 144, - 96, 197, 236, 63, 4, 28, 203, 144, 235, 75, 197, 236, 63, 4, 28, 203, - 144, 117, 197, 236, 63, 4, 88, 203, 144, 196, 62, 197, 236, 63, 4, 88, - 203, 144, 96, 197, 236, 63, 4, 88, 203, 144, 235, 75, 197, 236, 63, 4, - 88, 203, 144, 117, 197, 236, 63, 4, 195, 80, 88, 203, 144, 196, 62, 197, - 236, 63, 4, 195, 80, 88, 203, 144, 96, 197, 236, 63, 4, 195, 80, 88, 203, - 144, 235, 75, 197, 236, 63, 4, 195, 80, 88, 203, 144, 117, 232, 210, 55, - 196, 62, 232, 210, 55, 96, 232, 210, 55, 235, 75, 232, 210, 55, 117, 112, - 55, 196, 62, 112, 55, 96, 112, 55, 235, 75, 112, 55, 117, 239, 13, 55, - 196, 62, 239, 13, 55, 96, 239, 13, 55, 235, 75, 239, 13, 55, 117, 88, - 239, 13, 55, 196, 62, 88, 239, 13, 55, 96, 88, 239, 13, 55, 235, 75, 88, - 239, 13, 55, 117, 88, 55, 196, 62, 88, 55, 96, 88, 55, 235, 75, 88, 55, - 117, 49, 55, 196, 62, 49, 55, 96, 49, 55, 235, 75, 49, 55, 185, 193, 103, - 49, 55, 185, 234, 160, 49, 55, 201, 253, 234, 160, 49, 55, 201, 253, 193, - 103, 49, 55, 45, 50, 49, 55, 132, 143, 49, 55, 193, 75, 117, 155, 178, - 55, 193, 75, 196, 62, 155, 178, 55, 193, 75, 96, 155, 178, 55, 193, 75, - 235, 75, 155, 178, 55, 193, 75, 185, 193, 103, 155, 178, 55, 193, 75, - 185, 234, 160, 155, 178, 55, 193, 75, 201, 253, 234, 160, 155, 178, 55, - 193, 75, 201, 253, 193, 103, 155, 178, 55, 193, 75, 117, 178, 55, 193, - 75, 196, 62, 178, 55, 193, 75, 96, 178, 55, 193, 75, 235, 75, 178, 55, - 193, 75, 185, 193, 103, 178, 55, 193, 75, 185, 234, 160, 178, 55, 193, - 75, 201, 253, 234, 160, 178, 55, 193, 75, 201, 253, 193, 103, 178, 55, - 193, 75, 117, 216, 194, 178, 55, 193, 75, 196, 62, 216, 194, 178, 55, - 193, 75, 96, 216, 194, 178, 55, 193, 75, 235, 75, 216, 194, 178, 55, 193, - 75, 185, 193, 103, 216, 194, 178, 55, 193, 75, 185, 234, 160, 216, 194, - 178, 55, 193, 75, 201, 253, 234, 160, 216, 194, 178, 55, 193, 75, 201, - 253, 193, 103, 216, 194, 178, 55, 193, 75, 117, 88, 178, 55, 193, 75, - 196, 62, 88, 178, 55, 193, 75, 96, 88, 178, 55, 193, 75, 235, 75, 88, - 178, 55, 193, 75, 185, 193, 103, 88, 178, 55, 193, 75, 185, 234, 160, 88, - 178, 55, 193, 75, 201, 253, 234, 160, 88, 178, 55, 193, 75, 201, 253, - 193, 103, 88, 178, 55, 193, 75, 117, 195, 80, 88, 178, 55, 193, 75, 196, - 62, 195, 80, 88, 178, 55, 193, 75, 96, 195, 80, 88, 178, 55, 193, 75, - 235, 75, 195, 80, 88, 178, 55, 193, 75, 185, 193, 103, 195, 80, 88, 178, - 55, 193, 75, 185, 234, 160, 195, 80, 88, 178, 55, 193, 75, 201, 253, 234, - 160, 195, 80, 88, 178, 55, 193, 75, 201, 253, 193, 103, 195, 80, 88, 178, - 55, 117, 197, 238, 250, 185, 196, 62, 197, 238, 250, 185, 96, 197, 238, - 250, 185, 235, 75, 197, 238, 250, 185, 117, 64, 63, 193, 53, 197, 238, - 250, 185, 196, 62, 64, 63, 193, 53, 197, 238, 250, 185, 96, 64, 63, 193, - 53, 197, 238, 250, 185, 235, 75, 64, 63, 193, 53, 197, 238, 250, 185, - 117, 63, 4, 212, 251, 199, 210, 196, 62, 63, 4, 212, 251, 199, 210, 96, - 63, 4, 212, 251, 199, 210, 235, 75, 63, 4, 212, 251, 199, 210, 88, 63, - 203, 145, 193, 73, 108, 88, 63, 203, 145, 193, 73, 103, 198, 248, 88, 63, - 203, 145, 193, 73, 91, 230, 37, 88, 63, 203, 145, 193, 73, 91, 198, 251, - 117, 248, 26, 64, 55, 96, 248, 29, 203, 147, 64, 55, 117, 198, 49, 203, - 147, 64, 55, 96, 198, 49, 203, 147, 64, 55, 117, 219, 194, 64, 55, 96, - 206, 197, 64, 55, 117, 206, 197, 64, 55, 96, 219, 194, 64, 55, 117, 249, - 95, 203, 146, 64, 55, 96, 249, 95, 203, 146, 64, 55, 117, 232, 57, 203, - 146, 64, 55, 96, 232, 57, 203, 146, 64, 55, 64, 63, 203, 145, 193, 73, - 108, 64, 63, 203, 145, 193, 73, 103, 198, 248, 63, 209, 51, 196, 62, 199, - 20, 185, 193, 102, 63, 209, 51, 96, 199, 20, 238, 114, 201, 253, 193, - 102, 47, 238, 171, 232, 104, 4, 232, 90, 236, 94, 47, 238, 171, 232, 104, - 4, 103, 236, 94, 47, 238, 171, 232, 103, 45, 134, 242, 219, 4, 232, 90, - 236, 94, 45, 134, 242, 219, 4, 115, 236, 94, 45, 134, 242, 219, 4, 103, - 236, 94, 45, 134, 242, 219, 4, 236, 96, 45, 134, 242, 218, 235, 76, 233, - 55, 106, 235, 76, 233, 55, 212, 251, 106, 235, 76, 233, 55, 228, 219, 4, - 236, 96, 235, 76, 233, 55, 212, 251, 228, 219, 4, 236, 96, 209, 127, 232, - 206, 64, 229, 191, 247, 227, 229, 191, 209, 126, 230, 20, 191, 17, 233, - 62, 215, 212, 233, 62, 233, 63, 4, 199, 16, 214, 78, 233, 62, 198, 253, - 233, 62, 233, 63, 4, 229, 202, 206, 145, 233, 62, 228, 119, 233, 62, 3, - 80, 199, 29, 228, 155, 247, 91, 216, 214, 230, 20, 207, 142, 249, 97, 80, - 230, 20, 219, 199, 232, 190, 206, 202, 232, 190, 229, 250, 230, 21, 4, - 140, 24, 82, 232, 207, 238, 166, 228, 44, 218, 220, 191, 239, 230, 21, - 57, 233, 63, 4, 238, 191, 229, 232, 242, 160, 233, 62, 214, 188, 233, 62, - 206, 133, 211, 94, 199, 29, 232, 154, 219, 231, 235, 56, 233, 62, 218, - 157, 233, 62, 233, 63, 210, 172, 202, 51, 233, 62, 233, 63, 4, 91, 233, - 151, 207, 141, 230, 163, 233, 63, 4, 201, 98, 233, 144, 230, 163, 233, - 63, 4, 91, 219, 245, 24, 91, 2, 233, 152, 233, 63, 4, 232, 212, 238, 194, - 242, 171, 219, 72, 203, 253, 233, 63, 4, 200, 73, 238, 194, 215, 163, - 202, 59, 233, 63, 4, 202, 59, 233, 145, 24, 230, 21, 238, 194, 215, 163, - 233, 63, 4, 211, 66, 215, 164, 195, 6, 203, 49, 233, 63, 4, 233, 167, - 229, 203, 208, 219, 193, 35, 247, 248, 210, 171, 132, 198, 82, 204, 26, - 208, 207, 217, 71, 223, 135, 197, 42, 215, 178, 243, 7, 203, 4, 209, 242, - 236, 114, 247, 35, 222, 150, 232, 253, 215, 238, 210, 12, 193, 8, 193, - 142, 209, 37, 229, 255, 236, 156, 217, 16, 193, 67, 232, 146, 235, 51, 4, - 235, 49, 242, 178, 230, 235, 197, 70, 230, 236, 201, 198, 230, 221, 214, - 71, 206, 203, 232, 197, 209, 100, 216, 200, 205, 52, 209, 100, 216, 200, - 198, 252, 209, 100, 216, 200, 248, 13, 230, 230, 217, 27, 250, 173, 196, - 90, 238, 125, 201, 60, 220, 86, 201, 70, 24, 249, 61, 202, 26, 232, 138, - 236, 181, 238, 174, 250, 91, 238, 141, 249, 88, 209, 5, 247, 39, 249, 74, - 247, 251, 230, 167, 205, 160, 203, 137, 210, 157, 80, 232, 122, 201, 4, - 232, 165, 234, 136, 230, 237, 80, 216, 35, 210, 47, 221, 92, 210, 153, - 235, 32, 232, 99, 238, 225, 199, 202, 248, 14, 243, 14, 248, 19, 4, 201, - 198, 238, 135, 4, 201, 38, 242, 45, 247, 231, 209, 167, 208, 211, 238, - 108, 80, 216, 205, 205, 132, 247, 67, 232, 122, 219, 208, 230, 166, 217, - 62, 215, 189, 247, 98, 249, 77, 202, 59, 233, 63, 4, 202, 59, 233, 145, - 24, 115, 229, 189, 192, 87, 233, 62, 202, 59, 233, 63, 4, 199, 126, 233, - 63, 4, 210, 92, 228, 157, 24, 210, 92, 229, 232, 233, 63, 4, 196, 94, - 233, 145, 24, 193, 133, 215, 163, 210, 251, 233, 62, 232, 69, 233, 62, - 213, 155, 236, 179, 233, 62, 233, 63, 228, 230, 249, 97, 199, 120, 233, - 63, 4, 209, 85, 233, 144, 205, 120, 220, 95, 242, 48, 230, 217, 229, 97, - 248, 43, 232, 167, 203, 47, 238, 188, 219, 76, 233, 62, 205, 76, 197, 58, - 196, 92, 233, 62, 234, 170, 235, 41, 249, 14, 203, 123, 210, 239, 232, - 82, 233, 62, 247, 167, 237, 83, 230, 201, 219, 54, 207, 0, 203, 8, 201, - 179, 230, 249, 233, 62, 191, 85, 233, 62, 229, 184, 205, 105, 200, 38, - 238, 177, 222, 56, 219, 46, 210, 49, 229, 89, 210, 98, 207, 168, 219, 17, - 215, 180, 216, 71, 249, 83, 200, 144, 217, 72, 236, 120, 202, 73, 211, - 12, 211, 43, 202, 97, 232, 169, 210, 229, 248, 210, 248, 101, 205, 56, - 230, 130, 236, 117, 208, 195, 247, 69, 234, 67, 242, 16, 207, 82, 230, - 45, 234, 67, 242, 16, 238, 124, 230, 45, 234, 67, 242, 16, 249, 63, 234, - 67, 242, 16, 64, 230, 45, 248, 50, 219, 188, 232, 120, 198, 51, 200, 179, - 200, 174, 205, 183, 195, 78, 234, 168, 4, 229, 193, 251, 183, 215, 174, - 193, 89, 217, 54, 193, 89, 216, 204, 250, 200, 216, 204, 219, 188, 243, - 70, 193, 114, 238, 133, 205, 154, 203, 141, 248, 158, 248, 14, 231, 160, - 211, 82, 233, 44, 193, 171, 247, 168, 217, 10, 235, 60, 227, 253, 238, - 143, 247, 217, 199, 129, 197, 210, 201, 100, 209, 241, 221, 56, 209, 241, - 237, 99, 209, 241, 233, 63, 4, 215, 207, 251, 233, 243, 38, 211, 107, - 251, 233, 248, 214, 209, 241, 209, 242, 4, 229, 198, 209, 242, 223, 135, - 201, 77, 206, 125, 209, 242, 242, 180, 209, 242, 223, 135, 218, 225, 209, - 17, 217, 103, 233, 46, 195, 174, 216, 155, 234, 82, 231, 111, 191, 5, - 248, 2, 211, 44, 229, 191, 248, 123, 247, 63, 205, 89, 230, 229, 242, 48, - 202, 29, 207, 82, 231, 6, 234, 25, 232, 201, 222, 211, 208, 118, 209, - 166, 199, 70, 197, 80, 209, 226, 236, 177, 236, 131, 54, 229, 172, 242, - 21, 252, 19, 232, 203, 233, 161, 198, 53, 247, 239, 217, 101, 218, 193, - 218, 226, 248, 30, 201, 199, 80, 198, 222, 249, 62, 80, 192, 100, 205, - 183, 209, 130, 199, 119, 248, 215, 247, 228, 249, 19, 206, 136, 80, 210, - 125, 249, 38, 80, 202, 32, 201, 200, 207, 98, 214, 182, 251, 83, 214, 68, - 243, 57, 221, 114, 214, 68, 243, 57, 208, 9, 214, 68, 243, 57, 206, 126, - 214, 68, 243, 57, 248, 104, 214, 68, 243, 57, 221, 52, 214, 68, 243, 57, - 210, 64, 64, 243, 57, 221, 53, 206, 117, 232, 96, 237, 79, 62, 243, 57, - 221, 53, 206, 117, 232, 96, 237, 79, 214, 68, 243, 57, 221, 53, 206, 117, - 232, 96, 237, 79, 64, 243, 57, 221, 115, 206, 117, 213, 157, 237, 79, 64, - 243, 57, 208, 10, 206, 117, 213, 157, 237, 79, 64, 243, 57, 206, 127, - 206, 117, 213, 157, 237, 79, 64, 243, 57, 248, 105, 206, 117, 213, 157, - 237, 79, 64, 243, 57, 221, 53, 206, 117, 213, 157, 237, 79, 64, 243, 57, - 210, 65, 206, 117, 213, 157, 237, 79, 62, 243, 57, 221, 115, 206, 117, - 213, 157, 237, 79, 62, 243, 57, 208, 10, 206, 117, 213, 157, 237, 79, 62, - 243, 57, 206, 127, 206, 117, 213, 157, 237, 79, 62, 243, 57, 248, 105, - 206, 117, 213, 157, 237, 79, 62, 243, 57, 221, 53, 206, 117, 213, 157, - 237, 79, 62, 243, 57, 210, 65, 206, 117, 213, 157, 237, 79, 214, 68, 243, - 57, 221, 115, 206, 117, 213, 157, 237, 79, 214, 68, 243, 57, 208, 10, - 206, 117, 213, 157, 237, 79, 214, 68, 243, 57, 206, 127, 206, 117, 213, - 157, 237, 79, 214, 68, 243, 57, 248, 105, 206, 117, 213, 157, 237, 79, - 214, 68, 243, 57, 221, 53, 206, 117, 213, 157, 237, 79, 214, 68, 243, 57, - 210, 65, 206, 117, 213, 157, 237, 79, 64, 243, 57, 221, 53, 206, 117, 91, - 228, 110, 198, 243, 237, 79, 62, 243, 57, 221, 53, 206, 117, 91, 228, - 110, 198, 243, 237, 79, 214, 68, 243, 57, 221, 53, 206, 117, 91, 228, - 110, 198, 243, 237, 79, 64, 243, 57, 152, 221, 114, 64, 243, 57, 152, - 208, 9, 64, 243, 57, 152, 206, 126, 64, 243, 57, 152, 248, 104, 64, 243, - 57, 152, 221, 52, 64, 243, 57, 152, 210, 64, 62, 243, 57, 152, 221, 114, - 62, 243, 57, 152, 208, 9, 62, 243, 57, 152, 206, 126, 62, 243, 57, 152, - 248, 104, 62, 243, 57, 152, 221, 52, 62, 243, 57, 152, 210, 64, 214, 68, - 243, 57, 152, 221, 114, 214, 68, 243, 57, 152, 208, 9, 214, 68, 243, 57, - 152, 206, 126, 214, 68, 243, 57, 152, 248, 104, 214, 68, 243, 57, 152, - 221, 52, 214, 68, 243, 57, 152, 210, 64, 64, 243, 57, 221, 53, 206, 117, - 103, 228, 110, 197, 25, 237, 79, 62, 243, 57, 221, 53, 206, 117, 103, - 228, 110, 197, 25, 237, 79, 214, 68, 243, 57, 221, 53, 206, 117, 103, - 228, 110, 197, 25, 237, 79, 64, 243, 57, 221, 115, 206, 117, 103, 228, - 110, 203, 237, 237, 79, 64, 243, 57, 208, 10, 206, 117, 103, 228, 110, - 203, 237, 237, 79, 64, 243, 57, 206, 127, 206, 117, 103, 228, 110, 203, - 237, 237, 79, 64, 243, 57, 248, 105, 206, 117, 103, 228, 110, 203, 237, - 237, 79, 64, 243, 57, 221, 53, 206, 117, 103, 228, 110, 203, 237, 237, - 79, 64, 243, 57, 210, 65, 206, 117, 103, 228, 110, 203, 237, 237, 79, 62, - 243, 57, 221, 115, 206, 117, 103, 228, 110, 203, 237, 237, 79, 62, 243, - 57, 208, 10, 206, 117, 103, 228, 110, 203, 237, 237, 79, 62, 243, 57, - 206, 127, 206, 117, 103, 228, 110, 203, 237, 237, 79, 62, 243, 57, 248, - 105, 206, 117, 103, 228, 110, 203, 237, 237, 79, 62, 243, 57, 221, 53, - 206, 117, 103, 228, 110, 203, 237, 237, 79, 62, 243, 57, 210, 65, 206, - 117, 103, 228, 110, 203, 237, 237, 79, 214, 68, 243, 57, 221, 115, 206, - 117, 103, 228, 110, 203, 237, 237, 79, 214, 68, 243, 57, 208, 10, 206, - 117, 103, 228, 110, 203, 237, 237, 79, 214, 68, 243, 57, 206, 127, 206, - 117, 103, 228, 110, 203, 237, 237, 79, 214, 68, 243, 57, 248, 105, 206, - 117, 103, 228, 110, 203, 237, 237, 79, 214, 68, 243, 57, 221, 53, 206, - 117, 103, 228, 110, 203, 237, 237, 79, 214, 68, 243, 57, 210, 65, 206, - 117, 103, 228, 110, 203, 237, 237, 79, 64, 243, 57, 221, 53, 206, 117, - 115, 228, 110, 232, 235, 237, 79, 62, 243, 57, 221, 53, 206, 117, 115, - 228, 110, 232, 235, 237, 79, 214, 68, 243, 57, 221, 53, 206, 117, 115, - 228, 110, 232, 235, 237, 79, 64, 243, 57, 233, 252, 62, 243, 57, 233, - 252, 214, 68, 243, 57, 233, 252, 64, 243, 57, 233, 253, 206, 117, 213, - 157, 237, 79, 62, 243, 57, 233, 253, 206, 117, 213, 157, 237, 79, 214, - 68, 243, 57, 233, 253, 206, 117, 213, 157, 237, 79, 64, 243, 57, 221, 50, - 64, 243, 57, 221, 49, 64, 243, 57, 221, 51, 62, 243, 57, 221, 50, 62, - 243, 57, 221, 49, 62, 243, 57, 221, 51, 192, 205, 207, 82, 231, 113, 192, - 205, 207, 82, 217, 64, 192, 205, 207, 82, 234, 88, 192, 205, 207, 82, - 228, 152, 192, 205, 207, 82, 243, 90, 192, 205, 207, 82, 247, 66, 192, - 205, 207, 82, 202, 21, 192, 205, 62, 231, 113, 192, 205, 62, 217, 64, - 192, 205, 62, 234, 88, 192, 205, 62, 228, 152, 192, 205, 62, 243, 90, - 192, 205, 62, 247, 66, 192, 205, 62, 202, 21, 249, 60, 203, 46, 211, 87, - 200, 131, 247, 235, 203, 20, 198, 232, 205, 134, 235, 55, 80, 248, 72, - 251, 239, 249, 46, 201, 71, 192, 234, 238, 154, 191, 253, 221, 95, 210, - 119, 248, 44, 217, 102, 193, 160, 209, 128, 214, 73, 236, 109, 206, 182, - 209, 92, 246, 204, 207, 113, 250, 82, 236, 151, 220, 1, 249, 44, 216, 36, - 229, 168, 252, 4, 177, 235, 50, 242, 40, 247, 41, 205, 103, 205, 70, 220, - 85, 106, 216, 9, 193, 63, 209, 75, 203, 234, 214, 95, 221, 47, 247, 214, - 215, 166, 198, 2, 198, 50, 229, 196, 209, 101, 206, 142, 216, 10, 249, - 61, 227, 243, 247, 52, 131, 249, 8, 230, 27, 232, 139, 193, 17, 248, 201, - 242, 47, 209, 4, 209, 91, 193, 28, 233, 13, 218, 224, 238, 213, 234, 63, - 214, 75, 214, 76, 4, 234, 135, 251, 78, 229, 191, 218, 184, 210, 11, 228, - 118, 208, 219, 217, 70, 208, 219, 209, 241, 209, 242, 4, 238, 161, 248, - 65, 248, 186, 210, 6, 211, 104, 232, 165, 199, 191, 232, 126, 199, 127, - 209, 0, 219, 68, 248, 217, 222, 246, 216, 176, 233, 62, 205, 148, 233, - 62, 233, 63, 4, 211, 66, 233, 145, 24, 230, 21, 138, 215, 163, 233, 63, - 4, 210, 38, 233, 152, 233, 63, 4, 236, 250, 215, 163, 235, 94, 219, 89, - 233, 62, 248, 97, 219, 74, 247, 215, 230, 21, 4, 140, 232, 212, 24, 174, - 238, 166, 96, 230, 20, 117, 230, 20, 210, 173, 143, 230, 20, 210, 173, - 132, 230, 20, 140, 209, 51, 250, 133, 199, 29, 195, 52, 229, 192, 229, - 251, 182, 203, 231, 182, 203, 201, 182, 203, 230, 182, 203, 186, 182, - 203, 215, 182, 203, 200, 182, 203, 229, 182, 203, 178, 182, 203, 208, - 182, 203, 192, 182, 203, 222, 182, 203, 185, 182, 203, 214, 182, 203, - 199, 182, 203, 228, 182, 203, 174, 182, 203, 204, 182, 203, 189, 182, - 203, 218, 182, 203, 181, 182, 203, 195, 182, 203, 225, 182, 203, 177, - 182, 203, 207, 182, 203, 191, 182, 203, 221, 182, 203, 184, 182, 203, - 213, 182, 203, 198, 182, 203, 227, 182, 203, 172, 182, 203, 202, 182, - 203, 187, 182, 203, 216, 182, 203, 179, 182, 203, 209, 182, 203, 193, - 182, 203, 223, 182, 203, 175, 182, 203, 205, 182, 203, 219, 182, 203, - 182, 182, 203, 211, 182, 203, 196, 182, 203, 226, 182, 203, 173, 182, - 203, 203, 182, 203, 188, 182, 203, 217, 182, 203, 180, 182, 203, 210, - 182, 203, 194, 182, 203, 224, 182, 203, 176, 182, 203, 206, 182, 203, - 190, 182, 203, 220, 182, 203, 183, 182, 203, 212, 182, 203, 197, 110, 45, - 182, 236, 250, 110, 82, 45, 118, 110, 246, 229, 110, 45, 182, 236, 250, - 110, 82, 45, 118, 110, 187, 110, 45, 182, 236, 250, 116, 82, 45, 118, - 110, 246, 229, 110, 45, 182, 236, 250, 116, 82, 45, 118, 110, 187, 110, - 45, 182, 236, 250, 116, 45, 118, 110, 246, 229, 110, 50, 182, 236, 250, - 116, 82, 45, 118, 116, 246, 229, 110, 50, 182, 236, 250, 116, 82, 45, - 118, 116, 187, 110, 50, 182, 236, 250, 110, 82, 45, 118, 116, 246, 229, - 110, 50, 182, 236, 250, 110, 82, 45, 118, 116, 187, 110, 50, 182, 236, - 250, 110, 45, 118, 116, 246, 229, 110, 50, 182, 236, 250, 110, 82, 45, - 118, 116, 82, 187, 110, 50, 182, 236, 250, 110, 246, 230, 118, 110, 82, - 187, 110, 50, 182, 236, 250, 110, 45, 118, 110, 82, 187, 110, 50, 182, - 236, 250, 110, 246, 230, 118, 116, 82, 187, 110, 50, 182, 236, 250, 110, - 45, 118, 116, 82, 187, 110, 50, 182, 236, 250, 110, 246, 230, 118, 116, - 187, 110, 45, 182, 236, 250, 116, 246, 230, 118, 116, 82, 187, 110, 45, - 182, 236, 250, 116, 45, 118, 116, 82, 187, 110, 45, 182, 236, 250, 116, - 246, 230, 118, 110, 82, 187, 110, 45, 182, 236, 250, 116, 45, 118, 110, - 82, 187, 110, 45, 182, 236, 250, 116, 246, 230, 118, 110, 187, 110, 45, - 182, 236, 250, 116, 82, 45, 118, 110, 82, 187, 116, 50, 182, 236, 250, - 110, 82, 45, 118, 110, 246, 229, 116, 50, 182, 236, 250, 110, 82, 45, - 118, 110, 187, 116, 50, 182, 236, 250, 116, 82, 45, 118, 110, 246, 229, - 116, 50, 182, 236, 250, 116, 82, 45, 118, 110, 187, 116, 50, 182, 236, - 250, 116, 45, 118, 110, 246, 229, 116, 45, 182, 236, 250, 116, 82, 45, - 118, 116, 246, 229, 116, 45, 182, 236, 250, 116, 82, 45, 118, 116, 187, - 116, 45, 182, 236, 250, 110, 82, 45, 118, 116, 246, 229, 116, 45, 182, - 236, 250, 110, 82, 45, 118, 116, 187, 116, 45, 182, 236, 250, 110, 45, - 118, 116, 246, 229, 116, 45, 182, 236, 250, 110, 82, 45, 118, 116, 82, - 187, 116, 45, 182, 236, 250, 110, 246, 230, 118, 110, 82, 187, 116, 45, - 182, 236, 250, 110, 45, 118, 110, 82, 187, 116, 45, 182, 236, 250, 110, - 246, 230, 118, 116, 82, 187, 116, 45, 182, 236, 250, 110, 45, 118, 116, - 82, 187, 116, 45, 182, 236, 250, 110, 246, 230, 118, 116, 187, 116, 50, - 182, 236, 250, 116, 246, 230, 118, 116, 82, 187, 116, 50, 182, 236, 250, - 116, 45, 118, 116, 82, 187, 116, 50, 182, 236, 250, 116, 246, 230, 118, - 110, 82, 187, 116, 50, 182, 236, 250, 116, 45, 118, 110, 82, 187, 116, - 50, 182, 236, 250, 116, 246, 230, 118, 110, 187, 116, 50, 182, 236, 250, - 116, 82, 45, 118, 110, 82, 187, 116, 24, 50, 24, 110, 197, 234, 115, 208, - 16, 248, 81, 45, 24, 110, 24, 50, 197, 234, 115, 208, 16, 248, 81, 116, - 24, 45, 24, 110, 197, 234, 115, 208, 16, 248, 81, 45, 24, 116, 24, 50, - 197, 234, 115, 208, 16, 248, 81, 45, 197, 234, 91, 208, 18, 248, 81, 116, - 197, 234, 91, 208, 18, 248, 81, 50, 197, 234, 91, 208, 18, 248, 81, 110, - 197, 234, 91, 208, 18, 248, 81, 81, 91, 234, 117, 248, 79, 81, 91, 234, - 117, 248, 78, 81, 91, 234, 117, 248, 77, 81, 91, 234, 117, 248, 76, 81, - 91, 234, 117, 248, 75, 81, 91, 234, 117, 248, 74, 228, 209, 91, 234, 117, - 248, 79, 228, 209, 91, 234, 117, 248, 78, 228, 209, 91, 234, 117, 248, - 77, 228, 209, 91, 234, 117, 248, 76, 228, 209, 91, 234, 117, 248, 75, - 228, 209, 91, 234, 117, 248, 74, 45, 24, 110, 91, 234, 117, 248, 81, 45, - 24, 116, 91, 234, 117, 248, 81, 50, 24, 116, 91, 234, 117, 248, 81, 50, - 24, 110, 91, 234, 117, 248, 81, 116, 24, 110, 91, 234, 117, 248, 81, 228, - 209, 91, 234, 117, 248, 80, 116, 91, 208, 18, 248, 81, 116, 115, 234, - 115, 248, 81, 116, 232, 185, 234, 115, 248, 81, 116, 115, 208, 16, 248, - 81, 116, 203, 242, 234, 115, 248, 81, 50, 91, 208, 18, 248, 81, 50, 115, - 234, 115, 248, 81, 50, 232, 185, 234, 115, 248, 81, 50, 115, 208, 16, - 248, 81, 50, 203, 242, 234, 115, 248, 81, 45, 134, 216, 194, 203, 148, - 50, 134, 216, 194, 203, 148, 116, 134, 216, 194, 203, 148, 110, 134, 216, - 194, 203, 148, 223, 67, 216, 194, 203, 148, 116, 134, 182, 24, 110, 134, - 223, 67, 216, 194, 203, 148, 116, 134, 223, 67, 216, 194, 203, 149, 24, - 110, 134, 248, 81, 45, 134, 223, 67, 216, 194, 203, 149, 24, 50, 134, - 248, 81, 243, 76, 248, 60, 232, 220, 223, 67, 243, 76, 248, 60, 232, 220, - 88, 228, 209, 232, 220, 116, 45, 118, 110, 50, 232, 220, 116, 50, 118, - 110, 45, 232, 220, 116, 24, 110, 197, 234, 134, 248, 81, 45, 24, 50, 197, - 234, 134, 248, 81, 116, 45, 197, 234, 216, 194, 203, 148, 116, 50, 197, - 234, 216, 194, 203, 148, 110, 50, 197, 234, 216, 194, 203, 148, 110, 45, - 197, 234, 216, 194, 203, 148, 111, 122, 155, 236, 250, 116, 246, 230, - 118, 82, 219, 200, 111, 122, 155, 236, 250, 116, 246, 230, 118, 82, 187, - 111, 122, 155, 236, 250, 82, 45, 118, 110, 246, 229, 111, 122, 155, 236, - 250, 82, 50, 118, 110, 246, 229, 111, 122, 155, 236, 250, 116, 246, 230, - 118, 82, 45, 118, 110, 246, 229, 111, 122, 155, 236, 250, 116, 246, 230, - 118, 82, 50, 118, 110, 246, 229, 111, 122, 155, 236, 250, 82, 45, 118, - 110, 246, 230, 118, 82, 187, 111, 122, 155, 236, 250, 82, 45, 118, 116, - 246, 230, 118, 82, 187, 111, 122, 155, 236, 250, 116, 246, 230, 118, 82, - 45, 24, 82, 50, 118, 110, 246, 229, 111, 122, 155, 236, 250, 116, 246, - 230, 118, 82, 50, 24, 82, 45, 118, 110, 246, 229, 111, 122, 155, 236, - 250, 116, 246, 230, 118, 82, 50, 118, 110, 246, 230, 118, 82, 219, 200, - 111, 122, 155, 236, 250, 116, 246, 230, 118, 82, 45, 118, 110, 246, 230, - 118, 82, 187, 111, 122, 155, 236, 250, 82, 45, 118, 116, 246, 230, 118, - 82, 50, 118, 110, 246, 229, 111, 122, 155, 236, 250, 82, 50, 118, 116, - 246, 230, 118, 82, 45, 118, 110, 246, 229, 111, 122, 155, 236, 250, 236, - 243, 111, 122, 155, 228, 209, 4, 81, 105, 250, 184, 209, 52, 223, 67, - 243, 78, 77, 45, 134, 206, 37, 217, 70, 50, 134, 206, 37, 217, 70, 223, - 67, 235, 75, 63, 4, 198, 131, 219, 190, 117, 63, 24, 116, 24, 110, 91, - 234, 117, 248, 81, 96, 63, 24, 116, 24, 110, 91, 234, 117, 248, 81, 235, - 75, 63, 24, 50, 91, 234, 117, 248, 81, 196, 62, 63, 24, 50, 91, 234, 117, - 248, 81, 45, 134, 232, 131, 50, 134, 232, 131, 195, 13, 35, 238, 170, 50, - 211, 66, 112, 236, 96, 214, 92, 236, 250, 238, 170, 214, 92, 236, 250, - 82, 50, 118, 110, 246, 229, 214, 92, 236, 250, 236, 243, 64, 88, 205, - 150, 4, 206, 108, 238, 209, 45, 198, 252, 64, 50, 209, 51, 223, 120, 82, - 198, 252, 64, 50, 209, 51, 223, 120, 50, 198, 252, 64, 50, 209, 51, 223, - 120, 214, 92, 112, 208, 8, 77, 201, 70, 232, 227, 201, 70, 232, 228, 4, - 250, 197, 207, 141, 201, 70, 232, 228, 219, 207, 219, 200, 201, 70, 232, - 228, 219, 207, 187, 201, 70, 232, 228, 4, 235, 62, 64, 196, 72, 243, 52, - 205, 37, 17, 191, 77, 205, 37, 17, 108, 205, 37, 17, 109, 205, 37, 17, - 139, 205, 37, 17, 137, 205, 37, 17, 153, 205, 37, 17, 173, 205, 37, 17, - 181, 205, 37, 17, 176, 205, 37, 17, 184, 12, 15, 227, 240, 12, 15, 227, - 239, 12, 15, 227, 238, 12, 15, 227, 237, 12, 15, 227, 236, 12, 15, 227, - 235, 12, 15, 227, 234, 12, 15, 227, 233, 12, 15, 227, 232, 12, 15, 227, - 231, 12, 15, 227, 230, 12, 15, 227, 229, 12, 15, 227, 228, 12, 15, 227, - 227, 12, 15, 227, 226, 12, 15, 227, 225, 12, 15, 227, 224, 12, 15, 227, - 223, 12, 15, 227, 222, 12, 15, 227, 221, 12, 15, 227, 220, 12, 15, 227, - 219, 12, 15, 227, 218, 12, 15, 227, 217, 12, 15, 227, 216, 12, 15, 227, - 215, 12, 15, 227, 214, 12, 15, 227, 213, 12, 15, 227, 212, 12, 15, 227, - 211, 12, 15, 227, 210, 12, 15, 227, 209, 12, 15, 227, 208, 12, 15, 227, - 207, 12, 15, 227, 206, 12, 15, 227, 205, 12, 15, 227, 204, 12, 15, 227, - 203, 12, 15, 227, 202, 12, 15, 227, 201, 12, 15, 227, 200, 12, 15, 227, - 199, 12, 15, 227, 198, 12, 15, 227, 197, 12, 15, 227, 196, 12, 15, 227, - 195, 12, 15, 227, 194, 12, 15, 227, 193, 12, 15, 227, 192, 12, 15, 227, - 191, 12, 15, 227, 190, 12, 15, 227, 189, 12, 15, 227, 188, 12, 15, 227, - 187, 12, 15, 227, 186, 12, 15, 227, 185, 12, 15, 227, 184, 12, 15, 227, - 183, 12, 15, 227, 182, 12, 15, 227, 181, 12, 15, 227, 180, 12, 15, 227, - 179, 12, 15, 227, 178, 12, 15, 227, 177, 12, 15, 227, 176, 12, 15, 227, - 175, 12, 15, 227, 174, 12, 15, 227, 173, 12, 15, 227, 172, 12, 15, 227, - 171, 12, 15, 227, 170, 12, 15, 227, 169, 12, 15, 227, 168, 12, 15, 227, - 167, 12, 15, 227, 166, 12, 15, 227, 165, 12, 15, 227, 164, 12, 15, 227, - 163, 12, 15, 227, 162, 12, 15, 227, 161, 12, 15, 227, 160, 12, 15, 227, - 159, 12, 15, 227, 158, 12, 15, 227, 157, 12, 15, 227, 156, 12, 15, 227, - 155, 12, 15, 227, 154, 12, 15, 227, 153, 12, 15, 227, 152, 12, 15, 227, - 151, 12, 15, 227, 150, 12, 15, 227, 149, 12, 15, 227, 148, 12, 15, 227, - 147, 12, 15, 227, 146, 12, 15, 227, 145, 12, 15, 227, 144, 12, 15, 227, - 143, 12, 15, 227, 142, 12, 15, 227, 141, 12, 15, 227, 140, 12, 15, 227, - 139, 12, 15, 227, 138, 12, 15, 227, 137, 12, 15, 227, 136, 12, 15, 227, - 135, 12, 15, 227, 134, 12, 15, 227, 133, 12, 15, 227, 132, 12, 15, 227, - 131, 12, 15, 227, 130, 12, 15, 227, 129, 12, 15, 227, 128, 12, 15, 227, - 127, 12, 15, 227, 126, 12, 15, 227, 125, 12, 15, 227, 124, 12, 15, 227, - 123, 12, 15, 227, 122, 12, 15, 227, 121, 12, 15, 227, 120, 12, 15, 227, - 119, 12, 15, 227, 118, 12, 15, 227, 117, 12, 15, 227, 116, 12, 15, 227, - 115, 12, 15, 227, 114, 12, 15, 227, 113, 12, 15, 227, 112, 12, 15, 227, - 111, 12, 15, 227, 110, 12, 15, 227, 109, 12, 15, 227, 108, 12, 15, 227, - 107, 12, 15, 227, 106, 12, 15, 227, 105, 12, 15, 227, 104, 12, 15, 227, - 103, 12, 15, 227, 102, 12, 15, 227, 101, 12, 15, 227, 100, 12, 15, 227, - 99, 12, 15, 227, 98, 12, 15, 227, 97, 12, 15, 227, 96, 12, 15, 227, 95, - 12, 15, 227, 94, 12, 15, 227, 93, 12, 15, 227, 92, 12, 15, 227, 91, 12, - 15, 227, 90, 12, 15, 227, 89, 12, 15, 227, 88, 12, 15, 227, 87, 12, 15, - 227, 86, 12, 15, 227, 85, 12, 15, 227, 84, 12, 15, 227, 83, 12, 15, 227, - 82, 12, 15, 227, 81, 12, 15, 227, 80, 12, 15, 227, 79, 12, 15, 227, 78, - 12, 15, 227, 77, 12, 15, 227, 76, 12, 15, 227, 75, 12, 15, 227, 74, 12, - 15, 227, 73, 12, 15, 227, 72, 12, 15, 227, 71, 12, 15, 227, 70, 12, 15, - 227, 69, 12, 15, 227, 68, 12, 15, 227, 67, 12, 15, 227, 66, 12, 15, 227, - 65, 12, 15, 227, 64, 12, 15, 227, 63, 12, 15, 227, 62, 12, 15, 227, 61, - 12, 15, 227, 60, 12, 15, 227, 59, 12, 15, 227, 58, 12, 15, 227, 57, 12, - 15, 227, 56, 12, 15, 227, 55, 12, 15, 227, 54, 12, 15, 227, 53, 12, 15, - 227, 52, 12, 15, 227, 51, 12, 15, 227, 50, 12, 15, 227, 49, 12, 15, 227, - 48, 12, 15, 227, 47, 12, 15, 227, 46, 12, 15, 227, 45, 12, 15, 227, 44, - 12, 15, 227, 43, 12, 15, 227, 42, 12, 15, 227, 41, 12, 15, 227, 40, 12, - 15, 227, 39, 12, 15, 227, 38, 12, 15, 227, 37, 12, 15, 227, 36, 12, 15, - 227, 35, 12, 15, 227, 34, 12, 15, 227, 33, 12, 15, 227, 32, 12, 15, 227, - 31, 12, 15, 227, 30, 12, 15, 227, 29, 12, 15, 227, 28, 12, 15, 227, 27, - 12, 15, 227, 26, 12, 15, 227, 25, 12, 15, 227, 24, 12, 15, 227, 23, 12, - 15, 227, 22, 12, 15, 227, 21, 12, 15, 227, 20, 12, 15, 227, 19, 12, 15, - 227, 18, 12, 15, 227, 17, 12, 15, 227, 16, 12, 15, 227, 15, 12, 15, 227, - 14, 12, 15, 227, 13, 12, 15, 227, 12, 12, 15, 227, 11, 12, 15, 227, 10, - 12, 15, 227, 9, 12, 15, 227, 8, 12, 15, 227, 7, 12, 15, 227, 6, 12, 15, - 227, 5, 12, 15, 227, 4, 12, 15, 227, 3, 12, 15, 227, 2, 12, 15, 227, 1, - 12, 15, 227, 0, 12, 15, 226, 255, 12, 15, 226, 254, 12, 15, 226, 253, 12, - 15, 226, 252, 12, 15, 226, 251, 12, 15, 226, 250, 12, 15, 226, 249, 12, - 15, 226, 248, 12, 15, 226, 247, 12, 15, 226, 246, 12, 15, 226, 245, 12, - 15, 226, 244, 12, 15, 226, 243, 12, 15, 226, 242, 12, 15, 226, 241, 12, - 15, 226, 240, 12, 15, 226, 239, 12, 15, 226, 238, 12, 15, 226, 237, 12, - 15, 226, 236, 12, 15, 226, 235, 12, 15, 226, 234, 12, 15, 226, 233, 12, - 15, 226, 232, 12, 15, 226, 231, 12, 15, 226, 230, 12, 15, 226, 229, 12, - 15, 226, 228, 12, 15, 226, 227, 12, 15, 226, 226, 12, 15, 226, 225, 12, - 15, 226, 224, 12, 15, 226, 223, 12, 15, 226, 222, 12, 15, 226, 221, 12, - 15, 226, 220, 12, 15, 226, 219, 12, 15, 226, 218, 12, 15, 226, 217, 12, - 15, 226, 216, 12, 15, 226, 215, 12, 15, 226, 214, 12, 15, 226, 213, 12, - 15, 226, 212, 12, 15, 226, 211, 12, 15, 226, 210, 12, 15, 226, 209, 12, - 15, 226, 208, 12, 15, 226, 207, 12, 15, 226, 206, 12, 15, 226, 205, 12, - 15, 226, 204, 12, 15, 226, 203, 12, 15, 226, 202, 12, 15, 226, 201, 12, - 15, 226, 200, 12, 15, 226, 199, 12, 15, 226, 198, 12, 15, 226, 197, 12, - 15, 226, 196, 12, 15, 226, 195, 12, 15, 226, 194, 12, 15, 226, 193, 12, - 15, 226, 192, 12, 15, 226, 191, 12, 15, 226, 190, 12, 15, 226, 189, 12, - 15, 226, 188, 12, 15, 226, 187, 12, 15, 226, 186, 12, 15, 226, 185, 12, - 15, 226, 184, 12, 15, 226, 183, 12, 15, 226, 182, 12, 15, 226, 181, 12, - 15, 226, 180, 12, 15, 226, 179, 12, 15, 226, 178, 12, 15, 226, 177, 12, - 15, 226, 176, 12, 15, 226, 175, 12, 15, 226, 174, 12, 15, 226, 173, 12, - 15, 226, 172, 12, 15, 226, 171, 12, 15, 226, 170, 12, 15, 226, 169, 12, - 15, 226, 168, 12, 15, 226, 167, 12, 15, 226, 166, 12, 15, 226, 165, 12, - 15, 226, 164, 12, 15, 226, 163, 12, 15, 226, 162, 12, 15, 226, 161, 12, - 15, 226, 160, 12, 15, 226, 159, 12, 15, 226, 158, 12, 15, 226, 157, 12, - 15, 226, 156, 12, 15, 226, 155, 12, 15, 226, 154, 12, 15, 226, 153, 12, - 15, 226, 152, 12, 15, 226, 151, 12, 15, 226, 150, 12, 15, 226, 149, 12, - 15, 226, 148, 12, 15, 226, 147, 12, 15, 226, 146, 12, 15, 226, 145, 12, - 15, 226, 144, 12, 15, 226, 143, 12, 15, 226, 142, 12, 15, 226, 141, 12, - 15, 226, 140, 12, 15, 226, 139, 12, 15, 226, 138, 12, 15, 226, 137, 12, - 15, 226, 136, 12, 15, 226, 135, 12, 15, 226, 134, 12, 15, 226, 133, 12, - 15, 226, 132, 12, 15, 226, 131, 12, 15, 226, 130, 12, 15, 226, 129, 12, - 15, 226, 128, 12, 15, 226, 127, 12, 15, 226, 126, 12, 15, 226, 125, 12, - 15, 226, 124, 12, 15, 226, 123, 12, 15, 226, 122, 12, 15, 226, 121, 12, - 15, 226, 120, 12, 15, 226, 119, 12, 15, 226, 118, 12, 15, 226, 117, 12, - 15, 226, 116, 12, 15, 226, 115, 12, 15, 226, 114, 12, 15, 226, 113, 12, - 15, 226, 112, 12, 15, 226, 111, 12, 15, 226, 110, 12, 15, 226, 109, 12, - 15, 226, 108, 12, 15, 226, 107, 12, 15, 226, 106, 12, 15, 226, 105, 12, - 15, 226, 104, 12, 15, 226, 103, 12, 15, 226, 102, 12, 15, 226, 101, 12, - 15, 226, 100, 12, 15, 226, 99, 12, 15, 226, 98, 12, 15, 226, 97, 12, 15, - 226, 96, 12, 15, 226, 95, 12, 15, 226, 94, 12, 15, 226, 93, 12, 15, 226, - 92, 12, 15, 226, 91, 12, 15, 226, 90, 12, 15, 226, 89, 12, 15, 226, 88, - 12, 15, 226, 87, 12, 15, 226, 86, 12, 15, 226, 85, 12, 15, 226, 84, 12, - 15, 226, 83, 12, 15, 226, 82, 12, 15, 226, 81, 12, 15, 226, 80, 12, 15, - 226, 79, 12, 15, 226, 78, 12, 15, 226, 77, 12, 15, 226, 76, 12, 15, 226, - 75, 12, 15, 226, 74, 12, 15, 226, 73, 12, 15, 226, 72, 12, 15, 226, 71, - 12, 15, 226, 70, 12, 15, 226, 69, 12, 15, 226, 68, 12, 15, 226, 67, 12, - 15, 226, 66, 12, 15, 226, 65, 12, 15, 226, 64, 12, 15, 226, 63, 12, 15, - 226, 62, 12, 15, 226, 61, 12, 15, 226, 60, 12, 15, 226, 59, 12, 15, 226, - 58, 12, 15, 226, 57, 12, 15, 226, 56, 12, 15, 226, 55, 12, 15, 226, 54, - 12, 15, 226, 53, 12, 15, 226, 52, 12, 15, 226, 51, 12, 15, 226, 50, 12, - 15, 226, 49, 12, 15, 226, 48, 12, 15, 226, 47, 12, 15, 226, 46, 12, 15, - 226, 45, 12, 15, 226, 44, 12, 15, 226, 43, 12, 15, 226, 42, 12, 15, 226, - 41, 12, 15, 226, 40, 12, 15, 226, 39, 12, 15, 226, 38, 12, 15, 226, 37, - 12, 15, 226, 36, 12, 15, 226, 35, 12, 15, 226, 34, 12, 15, 226, 33, 12, - 15, 226, 32, 12, 15, 226, 31, 12, 15, 226, 30, 12, 15, 226, 29, 12, 15, - 226, 28, 12, 15, 226, 27, 12, 15, 226, 26, 12, 15, 226, 25, 12, 15, 226, - 24, 12, 15, 226, 23, 12, 15, 226, 22, 12, 15, 226, 21, 12, 15, 226, 20, - 12, 15, 226, 19, 12, 15, 226, 18, 12, 15, 226, 17, 12, 15, 226, 16, 12, - 15, 226, 15, 12, 15, 226, 14, 12, 15, 226, 13, 12, 15, 226, 12, 12, 15, - 226, 11, 12, 15, 226, 10, 12, 15, 226, 9, 12, 15, 226, 8, 12, 15, 226, 7, - 12, 15, 226, 6, 12, 15, 226, 5, 12, 15, 226, 4, 12, 15, 226, 3, 12, 15, - 226, 2, 12, 15, 226, 1, 12, 15, 226, 0, 12, 15, 225, 255, 12, 15, 225, - 254, 12, 15, 225, 253, 12, 15, 225, 252, 12, 15, 225, 251, 12, 15, 225, - 250, 12, 15, 225, 249, 12, 15, 225, 248, 12, 15, 225, 247, 12, 15, 225, - 246, 12, 15, 225, 245, 12, 15, 225, 244, 12, 15, 225, 243, 12, 15, 225, - 242, 12, 15, 225, 241, 12, 15, 225, 240, 12, 15, 225, 239, 12, 15, 225, - 238, 12, 15, 225, 237, 12, 15, 225, 236, 12, 15, 225, 235, 12, 15, 225, - 234, 12, 15, 225, 233, 12, 15, 225, 232, 12, 15, 225, 231, 12, 15, 225, - 230, 12, 15, 225, 229, 12, 15, 225, 228, 12, 15, 225, 227, 12, 15, 225, - 226, 12, 15, 225, 225, 12, 15, 225, 224, 12, 15, 225, 223, 12, 15, 225, - 222, 12, 15, 225, 221, 12, 15, 225, 220, 12, 15, 225, 219, 12, 15, 225, - 218, 12, 15, 225, 217, 12, 15, 225, 216, 12, 15, 225, 215, 12, 15, 225, - 214, 12, 15, 225, 213, 12, 15, 225, 212, 12, 15, 225, 211, 219, 252, 199, - 218, 199, 219, 201, 242, 199, 219, 233, 175, 77, 199, 219, 207, 247, 77, - 199, 219, 31, 57, 199, 219, 236, 110, 57, 199, 219, 210, 4, 57, 199, 219, - 251, 86, 199, 219, 250, 255, 199, 219, 45, 210, 103, 199, 219, 50, 210, - 103, 199, 219, 250, 143, 199, 219, 107, 57, 199, 219, 242, 26, 199, 219, - 228, 57, 199, 219, 232, 42, 201, 58, 199, 219, 202, 18, 199, 219, 17, - 191, 77, 199, 219, 17, 108, 199, 219, 17, 109, 199, 219, 17, 139, 199, - 219, 17, 137, 199, 219, 17, 153, 199, 219, 17, 173, 199, 219, 17, 181, - 199, 219, 17, 176, 199, 219, 17, 184, 199, 219, 242, 35, 199, 219, 204, - 20, 199, 219, 219, 156, 57, 199, 219, 234, 1, 57, 199, 219, 230, 170, 57, - 199, 219, 208, 8, 77, 199, 219, 242, 24, 250, 132, 199, 219, 8, 6, 1, 65, - 199, 219, 8, 6, 1, 250, 70, 199, 219, 8, 6, 1, 247, 145, 199, 219, 8, 6, - 1, 238, 80, 199, 219, 8, 6, 1, 73, 199, 219, 8, 6, 1, 233, 134, 199, 219, - 8, 6, 1, 232, 14, 199, 219, 8, 6, 1, 230, 83, 199, 219, 8, 6, 1, 70, 199, - 219, 8, 6, 1, 223, 7, 199, 219, 8, 6, 1, 222, 125, 199, 219, 8, 6, 1, - 170, 199, 219, 8, 6, 1, 218, 147, 199, 219, 8, 6, 1, 215, 47, 199, 219, - 8, 6, 1, 74, 199, 219, 8, 6, 1, 210, 226, 199, 219, 8, 6, 1, 208, 97, - 199, 219, 8, 6, 1, 148, 199, 219, 8, 6, 1, 206, 3, 199, 219, 8, 6, 1, - 200, 39, 199, 219, 8, 6, 1, 69, 199, 219, 8, 6, 1, 196, 8, 199, 219, 8, - 6, 1, 193, 221, 199, 219, 8, 6, 1, 192, 235, 199, 219, 8, 6, 1, 192, 159, - 199, 219, 8, 6, 1, 191, 166, 199, 219, 45, 51, 248, 5, 199, 219, 207, 14, - 202, 18, 199, 219, 50, 51, 248, 5, 199, 219, 242, 210, 252, 8, 199, 219, - 131, 219, 88, 199, 219, 230, 177, 252, 8, 199, 219, 8, 2, 1, 65, 199, - 219, 8, 2, 1, 250, 70, 199, 219, 8, 2, 1, 247, 145, 199, 219, 8, 2, 1, - 238, 80, 199, 219, 8, 2, 1, 73, 199, 219, 8, 2, 1, 233, 134, 199, 219, 8, - 2, 1, 232, 14, 199, 219, 8, 2, 1, 230, 83, 199, 219, 8, 2, 1, 70, 199, - 219, 8, 2, 1, 223, 7, 199, 219, 8, 2, 1, 222, 125, 199, 219, 8, 2, 1, - 170, 199, 219, 8, 2, 1, 218, 147, 199, 219, 8, 2, 1, 215, 47, 199, 219, - 8, 2, 1, 74, 199, 219, 8, 2, 1, 210, 226, 199, 219, 8, 2, 1, 208, 97, - 199, 219, 8, 2, 1, 148, 199, 219, 8, 2, 1, 206, 3, 199, 219, 8, 2, 1, - 200, 39, 199, 219, 8, 2, 1, 69, 199, 219, 8, 2, 1, 196, 8, 199, 219, 8, - 2, 1, 193, 221, 199, 219, 8, 2, 1, 192, 235, 199, 219, 8, 2, 1, 192, 159, - 199, 219, 8, 2, 1, 191, 166, 199, 219, 45, 238, 124, 248, 5, 199, 219, - 81, 219, 88, 199, 219, 50, 238, 124, 248, 5, 199, 219, 198, 147, 247, 79, - 199, 218, 66, 204, 206, 66, 204, 195, 66, 204, 184, 66, 204, 172, 66, - 204, 161, 66, 204, 150, 66, 204, 139, 66, 204, 128, 66, 204, 117, 66, - 204, 109, 66, 204, 108, 66, 204, 107, 66, 204, 106, 66, 204, 104, 66, - 204, 103, 66, 204, 102, 66, 204, 101, 66, 204, 100, 66, 204, 99, 66, 204, - 98, 66, 204, 97, 66, 204, 96, 66, 204, 95, 66, 204, 93, 66, 204, 92, 66, - 204, 91, 66, 204, 90, 66, 204, 89, 66, 204, 88, 66, 204, 87, 66, 204, 86, - 66, 204, 85, 66, 204, 84, 66, 204, 82, 66, 204, 81, 66, 204, 80, 66, 204, - 79, 66, 204, 78, 66, 204, 77, 66, 204, 76, 66, 204, 75, 66, 204, 74, 66, - 204, 73, 66, 204, 71, 66, 204, 70, 66, 204, 69, 66, 204, 68, 66, 204, 67, - 66, 204, 66, 66, 204, 65, 66, 204, 64, 66, 204, 63, 66, 204, 62, 66, 204, - 60, 66, 204, 59, 66, 204, 58, 66, 204, 57, 66, 204, 56, 66, 204, 55, 66, - 204, 54, 66, 204, 53, 66, 204, 52, 66, 204, 51, 66, 204, 49, 66, 204, 48, - 66, 204, 47, 66, 204, 46, 66, 204, 45, 66, 204, 44, 66, 204, 43, 66, 204, - 42, 66, 204, 41, 66, 204, 40, 66, 204, 38, 66, 204, 37, 66, 204, 36, 66, - 204, 35, 66, 204, 34, 66, 204, 33, 66, 204, 32, 66, 204, 31, 66, 204, 30, - 66, 204, 29, 66, 205, 26, 66, 205, 25, 66, 205, 24, 66, 205, 23, 66, 205, - 22, 66, 205, 21, 66, 205, 20, 66, 205, 19, 66, 205, 18, 66, 205, 17, 66, - 205, 15, 66, 205, 14, 66, 205, 13, 66, 205, 12, 66, 205, 11, 66, 205, 10, - 66, 205, 9, 66, 205, 8, 66, 205, 7, 66, 205, 6, 66, 205, 4, 66, 205, 3, - 66, 205, 2, 66, 205, 1, 66, 205, 0, 66, 204, 255, 66, 204, 254, 66, 204, - 253, 66, 204, 252, 66, 204, 251, 66, 204, 249, 66, 204, 248, 66, 204, - 247, 66, 204, 246, 66, 204, 245, 66, 204, 244, 66, 204, 243, 66, 204, - 242, 66, 204, 241, 66, 204, 240, 66, 204, 238, 66, 204, 237, 66, 204, - 236, 66, 204, 235, 66, 204, 234, 66, 204, 233, 66, 204, 232, 66, 204, - 231, 66, 204, 230, 66, 204, 229, 66, 204, 227, 66, 204, 226, 66, 204, - 225, 66, 204, 224, 66, 204, 223, 66, 204, 222, 66, 204, 221, 66, 204, - 220, 66, 204, 219, 66, 204, 218, 66, 204, 216, 66, 204, 215, 66, 204, - 214, 66, 204, 213, 66, 204, 212, 66, 204, 211, 66, 204, 210, 66, 204, - 209, 66, 204, 208, 66, 204, 207, 66, 204, 205, 66, 204, 204, 66, 204, - 203, 66, 204, 202, 66, 204, 201, 66, 204, 200, 66, 204, 199, 66, 204, - 198, 66, 204, 197, 66, 204, 196, 66, 204, 194, 66, 204, 193, 66, 204, - 192, 66, 204, 191, 66, 204, 190, 66, 204, 189, 66, 204, 188, 66, 204, - 187, 66, 204, 186, 66, 204, 185, 66, 204, 183, 66, 204, 182, 66, 204, - 181, 66, 204, 180, 66, 204, 179, 66, 204, 178, 66, 204, 177, 66, 204, - 176, 66, 204, 175, 66, 204, 174, 66, 204, 171, 66, 204, 170, 66, 204, - 169, 66, 204, 168, 66, 204, 167, 66, 204, 166, 66, 204, 165, 66, 204, - 164, 66, 204, 163, 66, 204, 162, 66, 204, 160, 66, 204, 159, 66, 204, - 158, 66, 204, 157, 66, 204, 156, 66, 204, 155, 66, 204, 154, 66, 204, - 153, 66, 204, 152, 66, 204, 151, 66, 204, 149, 66, 204, 148, 66, 204, - 147, 66, 204, 146, 66, 204, 145, 66, 204, 144, 66, 204, 143, 66, 204, - 142, 66, 204, 141, 66, 204, 140, 66, 204, 138, 66, 204, 137, 66, 204, - 136, 66, 204, 135, 66, 204, 134, 66, 204, 133, 66, 204, 132, 66, 204, - 131, 66, 204, 130, 66, 204, 129, 66, 204, 127, 66, 204, 126, 66, 204, - 125, 66, 204, 124, 66, 204, 123, 66, 204, 122, 66, 204, 121, 66, 204, - 120, 66, 204, 119, 66, 204, 118, 66, 204, 116, 66, 204, 115, 66, 204, - 114, 66, 204, 113, 66, 204, 112, 66, 204, 111, 66, 204, 110, 212, 125, - 212, 127, 201, 93, 80, 229, 200, 202, 22, 201, 93, 80, 199, 48, 201, 1, - 234, 53, 80, 199, 48, 233, 203, 234, 53, 80, 198, 7, 234, 15, 234, 39, - 234, 40, 251, 255, 252, 0, 251, 138, 248, 188, 249, 90, 247, 224, 246, - 192, 199, 225, 228, 209, 199, 225, 228, 134, 199, 231, 219, 89, 233, 9, - 214, 66, 219, 88, 234, 53, 80, 219, 88, 219, 137, 213, 92, 234, 18, 219, - 89, 199, 225, 81, 199, 225, 193, 248, 232, 107, 233, 9, 232, 242, 247, - 40, 207, 17, 238, 189, 203, 72, 211, 4, 219, 9, 108, 202, 41, 203, 72, - 223, 134, 219, 9, 191, 77, 202, 217, 237, 165, 219, 79, 233, 228, 236, - 140, 237, 30, 238, 231, 108, 237, 154, 237, 30, 238, 231, 109, 237, 153, - 237, 30, 238, 231, 139, 237, 152, 237, 30, 238, 231, 137, 237, 151, 214, - 92, 251, 255, 214, 219, 200, 65, 223, 199, 200, 69, 234, 53, 80, 198, 8, - 248, 81, 233, 210, 247, 78, 247, 80, 234, 53, 80, 216, 193, 234, 16, 200, - 221, 200, 240, 233, 228, 233, 229, 223, 109, 204, 6, 137, 232, 222, 204, - 5, 232, 52, 223, 109, 204, 6, 139, 230, 154, 204, 5, 230, 151, 223, 109, - 204, 6, 109, 207, 93, 204, 5, 206, 69, 223, 109, 204, 6, 108, 196, 87, - 204, 5, 196, 41, 201, 245, 237, 71, 237, 73, 210, 198, 246, 191, 210, - 200, 136, 211, 146, 208, 213, 228, 212, 247, 250, 209, 248, 229, 160, - 248, 10, 213, 31, 247, 250, 229, 160, 214, 177, 223, 120, 223, 122, 214, - 59, 219, 88, 214, 90, 201, 93, 80, 205, 31, 250, 214, 201, 170, 234, 53, - 80, 205, 31, 250, 214, 233, 231, 246, 192, 199, 226, 203, 247, 228, 209, - 199, 226, 203, 247, 228, 131, 246, 192, 199, 226, 4, 222, 137, 228, 209, - 199, 226, 4, 222, 137, 228, 132, 219, 89, 199, 226, 203, 247, 81, 199, - 226, 203, 247, 193, 247, 210, 95, 219, 89, 232, 94, 210, 95, 219, 89, - 235, 79, 209, 86, 210, 95, 219, 89, 249, 89, 210, 95, 219, 89, 196, 73, - 209, 80, 207, 14, 219, 89, 233, 9, 207, 14, 223, 120, 206, 252, 202, 165, - 203, 72, 109, 202, 162, 201, 172, 202, 165, 203, 72, 139, 202, 161, 201, - 171, 237, 30, 238, 231, 201, 25, 237, 149, 208, 198, 196, 40, 108, 208, - 198, 196, 38, 208, 157, 208, 198, 196, 40, 109, 208, 198, 196, 37, 208, - 156, 203, 248, 198, 6, 201, 90, 201, 8, 247, 79, 246, 191, 247, 13, 216, - 150, 193, 168, 215, 67, 201, 93, 80, 230, 139, 250, 214, 201, 93, 80, - 208, 175, 250, 214, 201, 244, 234, 53, 80, 230, 139, 250, 214, 234, 53, - 80, 208, 175, 250, 214, 234, 13, 201, 93, 80, 201, 25, 202, 4, 202, 165, - 230, 182, 246, 192, 223, 68, 203, 165, 202, 165, 246, 192, 223, 68, 205, - 80, 238, 231, 204, 2, 223, 68, 238, 149, 201, 26, 199, 75, 201, 113, 211, - 57, 200, 54, 242, 25, 211, 24, 208, 199, 216, 149, 209, 68, 250, 251, - 208, 191, 242, 25, 251, 12, 214, 165, 202, 226, 8, 6, 1, 231, 54, 8, 2, - 1, 231, 54, 246, 212, 251, 115, 200, 59, 200, 227, 242, 36, 202, 105, - 219, 200, 222, 55, 1, 219, 38, 219, 249, 1, 232, 136, 232, 127, 219, 249, - 1, 232, 136, 233, 21, 219, 249, 1, 206, 157, 219, 249, 1, 219, 19, 86, - 87, 248, 93, 203, 45, 231, 17, 216, 99, 207, 4, 30, 125, 192, 54, 30, - 125, 192, 50, 30, 125, 201, 148, 30, 125, 192, 55, 232, 29, 232, 28, 232, - 27, 215, 69, 232, 26, 190, 232, 190, 233, 190, 235, 218, 207, 206, 165, - 218, 209, 206, 167, 210, 56, 218, 206, 206, 164, 213, 62, 215, 255, 193, - 50, 218, 208, 206, 166, 232, 51, 210, 55, 193, 109, 234, 77, 232, 39, - 216, 73, 211, 94, 196, 42, 113, 216, 73, 237, 171, 113, 117, 197, 236, - 63, 4, 54, 81, 105, 96, 197, 236, 63, 4, 54, 81, 105, 11, 5, 223, 23, 77, - 79, 1, 221, 181, 219, 49, 194, 248, 194, 137, 194, 69, 194, 58, 194, 47, - 194, 36, 194, 25, 194, 14, 194, 3, 194, 247, 194, 236, 194, 225, 194, - 214, 194, 203, 194, 192, 194, 181, 208, 214, 232, 107, 39, 81, 50, 64, - 219, 163, 248, 5, 247, 150, 211, 41, 77, 248, 52, 190, 234, 10, 3, 212, - 135, 199, 79, 10, 3, 212, 135, 138, 212, 135, 247, 183, 138, 247, 182, - 216, 199, 6, 1, 230, 83, 216, 199, 6, 1, 214, 56, 216, 199, 2, 1, 230, - 83, 216, 199, 2, 1, 214, 56, 61, 1, 234, 226, 72, 37, 16, 232, 50, 202, - 101, 243, 4, 195, 161, 194, 170, 194, 159, 194, 148, 194, 136, 194, 125, - 194, 114, 194, 103, 194, 92, 194, 81, 194, 73, 194, 72, 194, 71, 194, 70, - 194, 68, 194, 67, 194, 66, 194, 65, 194, 64, 194, 63, 194, 62, 194, 61, - 194, 60, 194, 59, 194, 57, 194, 56, 194, 55, 194, 54, 194, 53, 194, 52, - 194, 51, 194, 50, 194, 49, 194, 48, 194, 46, 194, 45, 194, 44, 194, 43, - 194, 42, 194, 41, 194, 40, 194, 39, 194, 38, 194, 37, 194, 35, 194, 34, - 194, 33, 194, 32, 194, 31, 194, 30, 194, 29, 194, 28, 194, 27, 194, 26, - 194, 24, 194, 23, 194, 22, 194, 21, 194, 20, 194, 19, 194, 18, 194, 17, - 194, 16, 194, 15, 194, 13, 194, 12, 194, 11, 194, 10, 194, 9, 194, 8, - 194, 7, 194, 6, 194, 5, 194, 4, 194, 2, 194, 1, 194, 0, 193, 255, 193, - 254, 193, 253, 193, 252, 193, 251, 193, 250, 193, 249, 194, 246, 194, - 245, 194, 244, 194, 243, 194, 242, 194, 241, 194, 240, 194, 239, 194, - 238, 194, 237, 194, 235, 194, 234, 194, 233, 194, 232, 194, 231, 194, - 230, 194, 229, 194, 228, 194, 227, 194, 226, 194, 224, 194, 223, 194, - 222, 194, 221, 194, 220, 194, 219, 194, 218, 194, 217, 194, 216, 194, - 215, 194, 213, 194, 212, 194, 211, 194, 210, 194, 209, 194, 208, 194, - 207, 194, 206, 194, 205, 194, 204, 194, 202, 194, 201, 194, 200, 194, - 199, 194, 198, 194, 197, 194, 196, 194, 195, 194, 194, 194, 193, 194, - 191, 194, 190, 194, 189, 194, 188, 194, 187, 194, 186, 194, 185, 194, - 184, 194, 183, 194, 182, 194, 180, 194, 179, 194, 178, 194, 177, 194, - 176, 194, 175, 194, 174, 194, 173, 194, 172, 194, 171, 194, 169, 194, - 168, 194, 167, 194, 166, 194, 165, 194, 164, 194, 163, 194, 162, 194, - 161, 194, 160, 194, 158, 194, 157, 194, 156, 194, 155, 194, 154, 194, - 153, 194, 152, 194, 151, 194, 150, 194, 149, 194, 147, 194, 146, 194, - 145, 194, 144, 194, 143, 194, 142, 194, 141, 194, 140, 194, 139, 194, - 138, 194, 135, 194, 134, 194, 133, 194, 132, 194, 131, 194, 130, 194, - 129, 194, 128, 194, 127, 194, 126, 194, 124, 194, 123, 194, 122, 194, - 121, 194, 120, 194, 119, 194, 118, 194, 117, 194, 116, 194, 115, 194, - 113, 194, 112, 194, 111, 194, 110, 194, 109, 194, 108, 194, 107, 194, - 106, 194, 105, 194, 104, 194, 102, 194, 101, 194, 100, 194, 99, 194, 98, - 194, 97, 194, 96, 194, 95, 194, 94, 194, 93, 194, 91, 194, 90, 194, 89, - 194, 88, 194, 87, 194, 86, 194, 85, 194, 84, 194, 83, 194, 82, 194, 80, - 194, 79, 194, 78, 194, 77, 194, 76, 194, 75, 194, 74, 221, 194, 31, 57, - 221, 194, 250, 143, 221, 194, 17, 191, 77, 221, 194, 17, 108, 221, 194, - 17, 109, 221, 194, 17, 139, 221, 194, 17, 137, 221, 194, 17, 153, 221, - 194, 17, 173, 221, 194, 17, 181, 221, 194, 17, 176, 221, 194, 17, 184, 8, - 6, 1, 41, 4, 217, 126, 24, 230, 176, 8, 2, 1, 41, 4, 217, 126, 24, 230, - 176, 8, 6, 1, 228, 44, 4, 217, 126, 24, 230, 176, 8, 2, 1, 228, 44, 4, - 217, 126, 24, 230, 176, 8, 6, 1, 126, 4, 217, 126, 24, 230, 176, 8, 2, 1, - 126, 4, 217, 126, 24, 230, 176, 8, 6, 1, 234, 227, 4, 81, 219, 89, 60, 8, - 2, 1, 234, 227, 4, 81, 219, 89, 60, 8, 6, 1, 234, 227, 4, 81, 219, 89, - 248, 183, 24, 230, 176, 8, 2, 1, 234, 227, 4, 81, 219, 89, 248, 183, 24, - 230, 176, 8, 6, 1, 234, 227, 4, 81, 219, 89, 248, 183, 24, 251, 250, 8, - 2, 1, 234, 227, 4, 81, 219, 89, 248, 183, 24, 251, 250, 8, 6, 1, 186, 4, - 81, 219, 89, 60, 8, 2, 1, 186, 4, 81, 219, 89, 60, 8, 6, 1, 186, 4, 81, - 219, 89, 248, 183, 24, 230, 176, 8, 2, 1, 186, 4, 81, 219, 89, 248, 183, - 24, 230, 176, 8, 6, 1, 186, 4, 81, 219, 89, 248, 183, 24, 251, 250, 8, 2, - 1, 186, 4, 81, 219, 89, 248, 183, 24, 251, 250, 8, 6, 1, 206, 4, 4, 81, - 219, 89, 60, 8, 2, 1, 206, 4, 4, 81, 219, 89, 60, 8, 6, 1, 234, 227, 4, - 242, 210, 24, 217, 125, 8, 2, 1, 234, 227, 4, 242, 210, 24, 217, 125, 8, - 6, 1, 234, 227, 4, 242, 210, 24, 247, 44, 8, 2, 1, 234, 227, 4, 242, 210, - 24, 247, 44, 8, 2, 1, 228, 44, 4, 75, 95, 24, 251, 250, 8, 2, 1, 214, 57, - 4, 198, 148, 56, 8, 6, 1, 41, 4, 211, 127, 24, 251, 250, 8, 2, 1, 41, 4, - 211, 127, 24, 251, 250, 8, 6, 1, 41, 4, 211, 127, 24, 198, 147, 8, 2, 1, - 41, 4, 211, 127, 24, 198, 147, 8, 6, 1, 234, 227, 4, 211, 127, 24, 251, - 250, 8, 2, 1, 234, 227, 4, 211, 127, 24, 251, 250, 8, 6, 1, 234, 227, 4, - 211, 127, 24, 198, 147, 8, 2, 1, 234, 227, 4, 211, 127, 24, 198, 147, 8, - 6, 1, 234, 227, 4, 75, 95, 24, 251, 250, 8, 2, 1, 234, 227, 4, 75, 95, - 24, 251, 250, 8, 6, 1, 234, 227, 4, 75, 95, 24, 198, 147, 8, 2, 1, 234, - 227, 4, 75, 95, 24, 198, 147, 8, 2, 1, 228, 44, 4, 75, 95, 24, 230, 176, - 8, 2, 1, 228, 44, 4, 75, 95, 24, 198, 147, 8, 6, 1, 228, 44, 4, 211, 127, - 24, 251, 250, 8, 2, 1, 228, 44, 4, 211, 127, 24, 75, 95, 24, 251, 250, 8, - 6, 1, 228, 44, 4, 211, 127, 24, 198, 147, 8, 2, 1, 228, 44, 4, 211, 127, - 24, 75, 95, 24, 198, 147, 8, 6, 1, 223, 8, 4, 198, 147, 8, 2, 1, 223, 8, - 4, 75, 95, 24, 198, 147, 8, 6, 1, 220, 119, 4, 198, 147, 8, 2, 1, 220, - 119, 4, 198, 147, 8, 6, 1, 218, 148, 4, 198, 147, 8, 2, 1, 218, 148, 4, - 198, 147, 8, 6, 1, 207, 217, 4, 198, 147, 8, 2, 1, 207, 217, 4, 198, 147, - 8, 6, 1, 126, 4, 211, 127, 24, 251, 250, 8, 2, 1, 126, 4, 211, 127, 24, - 251, 250, 8, 6, 1, 126, 4, 211, 127, 24, 198, 147, 8, 2, 1, 126, 4, 211, - 127, 24, 198, 147, 8, 6, 1, 126, 4, 217, 126, 24, 251, 250, 8, 2, 1, 126, - 4, 217, 126, 24, 251, 250, 8, 6, 1, 126, 4, 217, 126, 24, 198, 147, 8, 2, - 1, 126, 4, 217, 126, 24, 198, 147, 8, 2, 1, 251, 230, 4, 230, 176, 8, 2, - 1, 211, 66, 186, 4, 230, 176, 8, 2, 1, 211, 66, 186, 4, 251, 250, 8, 2, - 1, 152, 196, 9, 4, 230, 176, 8, 2, 1, 152, 196, 9, 4, 251, 250, 8, 2, 1, - 205, 82, 4, 230, 176, 8, 2, 1, 205, 82, 4, 251, 250, 8, 2, 1, 228, 218, - 205, 82, 4, 230, 176, 8, 2, 1, 228, 218, 205, 82, 4, 251, 250, 9, 204, 2, - 99, 4, 230, 25, 95, 4, 251, 141, 9, 204, 2, 99, 4, 230, 25, 95, 4, 193, - 131, 9, 204, 2, 99, 4, 230, 25, 95, 4, 130, 217, 79, 9, 204, 2, 99, 4, - 230, 25, 95, 4, 211, 139, 9, 204, 2, 99, 4, 230, 25, 95, 4, 69, 9, 204, - 2, 99, 4, 230, 25, 95, 4, 191, 225, 9, 204, 2, 99, 4, 230, 25, 95, 4, 73, - 9, 204, 2, 99, 4, 230, 25, 95, 4, 251, 229, 9, 204, 2, 213, 12, 4, 221, - 235, 104, 204, 2, 39, 1, 208, 89, 104, 204, 2, 39, 1, 221, 169, 104, 204, - 2, 39, 1, 231, 29, 104, 204, 2, 39, 1, 191, 123, 104, 204, 2, 39, 1, 237, - 135, 104, 204, 2, 39, 1, 207, 1, 104, 204, 2, 39, 1, 233, 68, 104, 204, - 2, 39, 1, 191, 175, 248, 175, 204, 2, 39, 1, 206, 104, 248, 175, 204, 2, - 39, 1, 207, 1, 248, 175, 204, 2, 39, 1, 191, 175, 230, 111, 204, 2, 39, - 1, 219, 49, 230, 111, 204, 2, 39, 1, 203, 160, 230, 111, 204, 2, 39, 1, - 221, 169, 230, 111, 204, 2, 39, 1, 231, 29, 230, 111, 204, 2, 39, 1, 191, - 123, 230, 111, 204, 2, 39, 1, 233, 68, 211, 35, 204, 2, 39, 1, 206, 104, - 211, 35, 204, 2, 39, 1, 207, 1, 248, 175, 1, 221, 163, 44, 119, 222, 125, - 44, 119, 214, 56, 44, 119, 247, 145, 44, 119, 212, 90, 44, 119, 197, 131, - 44, 119, 213, 67, 44, 119, 200, 39, 44, 119, 215, 47, 44, 119, 210, 226, - 44, 119, 218, 147, 44, 119, 192, 159, 44, 119, 148, 44, 119, 170, 44, - 119, 196, 8, 44, 119, 219, 39, 44, 119, 219, 50, 44, 119, 206, 105, 44, - 119, 213, 49, 44, 119, 223, 7, 44, 119, 203, 162, 44, 119, 201, 173, 44, - 119, 206, 3, 44, 119, 230, 83, 44, 119, 220, 223, 44, 5, 222, 100, 44, 5, - 221, 142, 44, 5, 221, 121, 44, 5, 220, 208, 44, 5, 220, 163, 44, 5, 221, - 253, 44, 5, 221, 244, 44, 5, 222, 75, 44, 5, 221, 43, 44, 5, 221, 17, 44, - 5, 222, 16, 44, 5, 214, 53, 44, 5, 214, 2, 44, 5, 213, 254, 44, 5, 213, - 223, 44, 5, 213, 214, 44, 5, 214, 41, 44, 5, 214, 39, 44, 5, 214, 50, 44, - 5, 213, 235, 44, 5, 213, 230, 44, 5, 214, 43, 44, 5, 247, 111, 44, 5, - 242, 237, 44, 5, 242, 227, 44, 5, 238, 148, 44, 5, 238, 106, 44, 5, 246, - 250, 44, 5, 246, 242, 44, 5, 247, 100, 44, 5, 242, 51, 44, 5, 238, 227, - 44, 5, 247, 28, 44, 5, 212, 87, 44, 5, 212, 68, 44, 5, 212, 62, 44, 5, - 212, 45, 44, 5, 212, 37, 44, 5, 212, 77, 44, 5, 212, 76, 44, 5, 212, 84, - 44, 5, 212, 52, 44, 5, 212, 49, 44, 5, 212, 80, 44, 5, 197, 127, 44, 5, - 197, 107, 44, 5, 197, 106, 44, 5, 197, 95, 44, 5, 197, 92, 44, 5, 197, - 123, 44, 5, 197, 122, 44, 5, 197, 126, 44, 5, 197, 105, 44, 5, 197, 104, - 44, 5, 197, 125, 44, 5, 213, 65, 44, 5, 213, 51, 44, 5, 213, 50, 44, 5, - 213, 34, 44, 5, 213, 33, 44, 5, 213, 61, 44, 5, 213, 60, 44, 5, 213, 64, - 44, 5, 213, 36, 44, 5, 213, 35, 44, 5, 213, 63, 44, 5, 199, 240, 44, 5, - 198, 188, 44, 5, 198, 165, 44, 5, 197, 90, 44, 5, 197, 45, 44, 5, 199, - 140, 44, 5, 199, 116, 44, 5, 199, 212, 44, 5, 159, 44, 5, 198, 54, 44, 5, - 199, 161, 44, 5, 214, 236, 44, 5, 213, 205, 44, 5, 213, 172, 44, 5, 212, - 165, 44, 5, 212, 102, 44, 5, 214, 107, 44, 5, 214, 96, 44, 5, 214, 222, - 44, 5, 213, 30, 44, 5, 213, 13, 44, 5, 214, 191, 44, 5, 210, 210, 44, 5, - 209, 176, 44, 5, 209, 136, 44, 5, 208, 158, 44, 5, 208, 121, 44, 5, 210, - 53, 44, 5, 210, 40, 44, 5, 210, 188, 44, 5, 209, 65, 44, 5, 209, 30, 44, - 5, 210, 70, 44, 5, 217, 130, 44, 5, 216, 81, 44, 5, 216, 43, 44, 5, 215, - 139, 44, 5, 215, 79, 44, 5, 216, 213, 44, 5, 216, 192, 44, 5, 217, 91, - 44, 5, 215, 251, 44, 5, 215, 194, 44, 5, 217, 6, 44, 5, 192, 140, 44, 5, - 192, 33, 44, 5, 192, 23, 44, 5, 191, 225, 44, 5, 191, 188, 44, 5, 192, - 80, 44, 5, 192, 77, 44, 5, 192, 119, 44, 5, 192, 12, 44, 5, 191, 246, 44, - 5, 192, 91, 44, 5, 207, 173, 44, 5, 206, 252, 44, 5, 206, 190, 44, 5, - 206, 63, 44, 5, 206, 24, 44, 5, 207, 108, 44, 5, 207, 79, 44, 5, 207, - 151, 44, 5, 206, 157, 44, 5, 206, 129, 44, 5, 207, 120, 44, 5, 220, 101, - 44, 5, 219, 122, 44, 5, 219, 104, 44, 5, 218, 203, 44, 5, 218, 173, 44, - 5, 219, 214, 44, 5, 219, 204, 44, 5, 220, 72, 44, 5, 219, 19, 44, 5, 218, - 240, 44, 5, 219, 232, 44, 5, 195, 184, 44, 5, 195, 66, 44, 5, 195, 48, - 44, 5, 193, 246, 44, 5, 193, 238, 44, 5, 195, 150, 44, 5, 195, 145, 44, - 5, 195, 180, 44, 5, 195, 21, 44, 5, 195, 5, 44, 5, 195, 157, 44, 5, 219, - 37, 44, 5, 219, 32, 44, 5, 219, 31, 44, 5, 219, 28, 44, 5, 219, 27, 44, - 5, 219, 34, 44, 5, 219, 33, 44, 5, 219, 36, 44, 5, 219, 30, 44, 5, 219, - 29, 44, 5, 219, 35, 44, 5, 219, 48, 44, 5, 219, 41, 44, 5, 219, 40, 44, - 5, 219, 24, 44, 5, 219, 23, 44, 5, 219, 44, 44, 5, 219, 43, 44, 5, 219, - 47, 44, 5, 219, 26, 44, 5, 219, 25, 44, 5, 219, 45, 44, 5, 206, 103, 44, - 5, 206, 92, 44, 5, 206, 91, 44, 5, 206, 84, 44, 5, 206, 77, 44, 5, 206, - 99, 44, 5, 206, 98, 44, 5, 206, 102, 44, 5, 206, 90, 44, 5, 206, 89, 44, - 5, 206, 101, 44, 5, 213, 47, 44, 5, 213, 42, 44, 5, 213, 41, 44, 5, 213, - 38, 44, 5, 213, 37, 44, 5, 213, 44, 44, 5, 213, 43, 44, 5, 213, 46, 44, - 5, 213, 40, 44, 5, 213, 39, 44, 5, 213, 45, 44, 5, 223, 3, 44, 5, 222, - 217, 44, 5, 222, 209, 44, 5, 222, 155, 44, 5, 222, 135, 44, 5, 222, 238, - 44, 5, 222, 236, 44, 5, 222, 253, 44, 5, 222, 174, 44, 5, 222, 164, 44, - 5, 222, 245, 44, 5, 203, 155, 44, 5, 203, 76, 44, 5, 203, 71, 44, 5, 203, - 0, 44, 5, 202, 238, 44, 5, 203, 108, 44, 5, 203, 106, 44, 5, 203, 143, - 44, 5, 203, 51, 44, 5, 203, 43, 44, 5, 203, 117, 44, 5, 201, 169, 44, 5, - 201, 137, 44, 5, 201, 133, 44, 5, 201, 124, 44, 5, 201, 121, 44, 5, 201, - 143, 44, 5, 201, 142, 44, 5, 201, 168, 44, 5, 201, 129, 44, 5, 201, 128, - 44, 5, 201, 145, 44, 5, 205, 192, 44, 5, 202, 217, 44, 5, 202, 188, 44, - 5, 200, 255, 44, 5, 200, 156, 44, 5, 205, 63, 44, 5, 205, 45, 44, 5, 205, - 176, 44, 5, 202, 41, 44, 5, 202, 11, 44, 5, 205, 109, 44, 5, 230, 58, 44, - 5, 229, 126, 44, 5, 229, 98, 44, 5, 228, 128, 44, 5, 228, 97, 44, 5, 229, - 213, 44, 5, 229, 183, 44, 5, 230, 47, 44, 5, 228, 247, 44, 5, 228, 220, - 44, 5, 229, 225, 44, 5, 220, 222, 44, 5, 220, 221, 44, 5, 220, 216, 44, - 5, 220, 215, 44, 5, 220, 212, 44, 5, 220, 211, 44, 5, 220, 218, 44, 5, - 220, 217, 44, 5, 220, 220, 44, 5, 220, 214, 44, 5, 220, 213, 44, 5, 220, - 219, 44, 5, 203, 9, 165, 119, 3, 192, 105, 165, 119, 3, 207, 139, 165, - 119, 3, 207, 45, 100, 1, 196, 220, 94, 119, 3, 242, 43, 157, 94, 119, 3, - 242, 43, 221, 190, 94, 119, 3, 242, 43, 221, 43, 94, 119, 3, 242, 43, - 221, 159, 94, 119, 3, 242, 43, 213, 235, 94, 119, 3, 242, 43, 247, 112, - 94, 119, 3, 242, 43, 246, 209, 94, 119, 3, 242, 43, 242, 51, 94, 119, 3, - 242, 43, 243, 20, 94, 119, 3, 242, 43, 212, 52, 94, 119, 3, 242, 43, 237, - 241, 94, 119, 3, 242, 43, 197, 116, 94, 119, 3, 242, 43, 236, 129, 94, - 119, 3, 242, 43, 197, 111, 94, 119, 3, 242, 43, 180, 94, 119, 3, 242, 43, - 199, 247, 94, 119, 3, 242, 43, 199, 44, 94, 119, 3, 242, 43, 159, 94, - 119, 3, 242, 43, 198, 236, 94, 119, 3, 242, 43, 213, 30, 94, 119, 3, 242, - 43, 249, 103, 94, 119, 3, 242, 43, 209, 219, 94, 119, 3, 242, 43, 209, - 65, 94, 119, 3, 242, 43, 209, 190, 94, 119, 3, 242, 43, 215, 251, 94, - 119, 3, 242, 43, 192, 12, 94, 119, 3, 242, 43, 206, 157, 94, 119, 3, 242, - 43, 219, 19, 94, 119, 3, 242, 43, 195, 21, 94, 119, 3, 242, 43, 203, 160, - 94, 119, 3, 242, 43, 201, 170, 94, 119, 3, 242, 43, 189, 94, 119, 3, 242, - 43, 144, 94, 119, 3, 242, 43, 171, 94, 18, 3, 242, 43, 208, 89, 94, 223, - 121, 18, 3, 242, 43, 208, 27, 94, 223, 121, 18, 3, 242, 43, 206, 12, 94, - 223, 121, 18, 3, 242, 43, 206, 5, 94, 223, 121, 18, 3, 242, 43, 208, 69, - 94, 18, 3, 211, 102, 94, 18, 3, 252, 115, 229, 88, 1, 248, 133, 214, 54, - 229, 88, 1, 248, 133, 214, 2, 229, 88, 1, 248, 133, 213, 223, 229, 88, 1, - 248, 133, 214, 41, 229, 88, 1, 248, 133, 213, 235, 71, 1, 248, 133, 214, - 54, 71, 1, 248, 133, 214, 2, 71, 1, 248, 133, 213, 223, 71, 1, 248, 133, - 214, 41, 71, 1, 248, 133, 213, 235, 71, 1, 251, 176, 246, 250, 71, 1, - 251, 176, 197, 90, 71, 1, 251, 176, 159, 71, 1, 251, 176, 210, 226, 59, - 1, 233, 159, 233, 158, 238, 235, 163, 164, 59, 1, 233, 158, 233, 159, - 238, 235, 163, 164, + 13, 28, 43, 2, 65, 13, 28, 43, 2, 250, 120, 13, 28, 43, 2, 247, 193, 13, + 28, 43, 2, 238, 127, 13, 28, 43, 2, 71, 13, 28, 43, 2, 233, 175, 13, 28, + 43, 2, 232, 51, 13, 28, 43, 2, 230, 116, 13, 28, 43, 2, 68, 13, 28, 43, + 2, 223, 35, 13, 28, 43, 2, 222, 152, 13, 28, 43, 2, 172, 13, 28, 43, 2, + 218, 168, 13, 28, 43, 2, 215, 61, 13, 28, 43, 2, 74, 13, 28, 43, 2, 210, + 236, 13, 28, 43, 2, 208, 104, 13, 28, 43, 2, 146, 13, 28, 43, 2, 206, 8, + 13, 28, 43, 2, 200, 43, 13, 28, 43, 2, 66, 13, 28, 43, 2, 196, 12, 13, + 28, 43, 2, 193, 224, 13, 28, 43, 2, 192, 235, 13, 28, 43, 2, 192, 159, + 13, 28, 43, 2, 191, 166, 13, 27, 6, 65, 13, 27, 6, 247, 193, 13, 27, 6, + 238, 127, 13, 27, 6, 232, 51, 13, 27, 6, 223, 35, 13, 27, 6, 222, 152, + 13, 27, 6, 215, 61, 13, 27, 6, 74, 13, 27, 6, 210, 236, 13, 27, 6, 208, + 104, 13, 27, 6, 206, 8, 13, 27, 6, 200, 43, 13, 27, 6, 66, 13, 27, 6, + 196, 12, 13, 27, 6, 193, 224, 13, 27, 6, 192, 235, 13, 27, 6, 192, 159, + 13, 27, 6, 191, 166, 13, 27, 2, 65, 13, 27, 2, 250, 120, 13, 27, 2, 247, + 193, 13, 27, 2, 238, 127, 13, 27, 2, 233, 175, 13, 27, 2, 230, 116, 13, + 27, 2, 68, 13, 27, 2, 223, 35, 13, 27, 2, 222, 152, 13, 27, 2, 172, 13, + 27, 2, 218, 168, 13, 27, 2, 215, 61, 13, 27, 2, 210, 236, 13, 27, 2, 208, + 104, 13, 27, 2, 146, 13, 27, 2, 206, 8, 13, 27, 2, 200, 43, 13, 27, 2, + 66, 13, 27, 2, 196, 12, 13, 27, 2, 193, 224, 13, 27, 2, 192, 235, 13, 27, + 2, 192, 159, 13, 27, 2, 191, 166, 13, 28, 27, 6, 65, 13, 28, 27, 6, 250, + 120, 13, 28, 27, 6, 247, 193, 13, 28, 27, 6, 238, 127, 13, 28, 27, 6, 71, + 13, 28, 27, 6, 233, 175, 13, 28, 27, 6, 232, 51, 13, 28, 27, 6, 230, 116, + 13, 28, 27, 6, 68, 13, 28, 27, 6, 223, 35, 13, 28, 27, 6, 222, 152, 13, + 28, 27, 6, 172, 13, 28, 27, 6, 218, 168, 13, 28, 27, 6, 215, 61, 13, 28, + 27, 6, 74, 13, 28, 27, 6, 210, 236, 13, 28, 27, 6, 208, 104, 13, 28, 27, + 6, 146, 13, 28, 27, 6, 206, 8, 13, 28, 27, 6, 200, 43, 13, 28, 27, 6, 66, + 13, 28, 27, 6, 196, 12, 13, 28, 27, 6, 193, 224, 13, 28, 27, 6, 192, 235, + 13, 28, 27, 6, 192, 159, 13, 28, 27, 6, 191, 166, 13, 28, 27, 2, 65, 13, + 28, 27, 2, 250, 120, 13, 28, 27, 2, 247, 193, 13, 28, 27, 2, 238, 127, + 13, 28, 27, 2, 71, 13, 28, 27, 2, 233, 175, 13, 28, 27, 2, 232, 51, 13, + 28, 27, 2, 230, 116, 13, 28, 27, 2, 68, 13, 28, 27, 2, 223, 35, 13, 28, + 27, 2, 222, 152, 13, 28, 27, 2, 172, 13, 28, 27, 2, 218, 168, 13, 28, 27, + 2, 215, 61, 13, 28, 27, 2, 74, 13, 28, 27, 2, 210, 236, 13, 28, 27, 2, + 208, 104, 13, 28, 27, 2, 146, 13, 28, 27, 2, 206, 8, 13, 28, 27, 2, 200, + 43, 13, 28, 27, 2, 66, 13, 28, 27, 2, 196, 12, 13, 28, 27, 2, 193, 224, + 13, 28, 27, 2, 192, 235, 13, 28, 27, 2, 192, 159, 13, 28, 27, 2, 191, + 166, 13, 232, 115, 6, 65, 13, 232, 115, 6, 250, 120, 13, 232, 115, 6, + 238, 127, 13, 232, 115, 6, 71, 13, 232, 115, 6, 233, 175, 13, 232, 115, + 6, 232, 51, 13, 232, 115, 6, 223, 35, 13, 232, 115, 6, 222, 152, 13, 232, + 115, 6, 172, 13, 232, 115, 6, 218, 168, 13, 232, 115, 6, 215, 61, 13, + 232, 115, 6, 74, 13, 232, 115, 6, 210, 236, 13, 232, 115, 6, 208, 104, + 13, 232, 115, 6, 206, 8, 13, 232, 115, 6, 200, 43, 13, 232, 115, 6, 66, + 13, 232, 115, 6, 196, 12, 13, 232, 115, 6, 193, 224, 13, 232, 115, 6, + 192, 235, 13, 232, 115, 6, 192, 159, 13, 232, 115, 2, 65, 13, 232, 115, + 2, 250, 120, 13, 232, 115, 2, 247, 193, 13, 232, 115, 2, 238, 127, 13, + 232, 115, 2, 71, 13, 232, 115, 2, 233, 175, 13, 232, 115, 2, 232, 51, 13, + 232, 115, 2, 230, 116, 13, 232, 115, 2, 68, 13, 232, 115, 2, 223, 35, 13, + 232, 115, 2, 222, 152, 13, 232, 115, 2, 172, 13, 232, 115, 2, 218, 168, + 13, 232, 115, 2, 215, 61, 13, 232, 115, 2, 74, 13, 232, 115, 2, 210, 236, + 13, 232, 115, 2, 208, 104, 13, 232, 115, 2, 146, 13, 232, 115, 2, 206, 8, + 13, 232, 115, 2, 200, 43, 13, 232, 115, 2, 66, 13, 232, 115, 2, 196, 12, + 13, 232, 115, 2, 193, 224, 13, 232, 115, 2, 192, 235, 13, 232, 115, 2, + 192, 159, 13, 232, 115, 2, 191, 166, 13, 235, 129, 6, 65, 13, 235, 129, + 6, 250, 120, 13, 235, 129, 6, 238, 127, 13, 235, 129, 6, 71, 13, 235, + 129, 6, 233, 175, 13, 235, 129, 6, 232, 51, 13, 235, 129, 6, 68, 13, 235, + 129, 6, 223, 35, 13, 235, 129, 6, 222, 152, 13, 235, 129, 6, 172, 13, + 235, 129, 6, 218, 168, 13, 235, 129, 6, 74, 13, 235, 129, 6, 206, 8, 13, + 235, 129, 6, 200, 43, 13, 235, 129, 6, 66, 13, 235, 129, 6, 196, 12, 13, + 235, 129, 6, 193, 224, 13, 235, 129, 6, 192, 235, 13, 235, 129, 6, 192, + 159, 13, 235, 129, 2, 65, 13, 235, 129, 2, 250, 120, 13, 235, 129, 2, + 247, 193, 13, 235, 129, 2, 238, 127, 13, 235, 129, 2, 71, 13, 235, 129, + 2, 233, 175, 13, 235, 129, 2, 232, 51, 13, 235, 129, 2, 230, 116, 13, + 235, 129, 2, 68, 13, 235, 129, 2, 223, 35, 13, 235, 129, 2, 222, 152, 13, + 235, 129, 2, 172, 13, 235, 129, 2, 218, 168, 13, 235, 129, 2, 215, 61, + 13, 235, 129, 2, 74, 13, 235, 129, 2, 210, 236, 13, 235, 129, 2, 208, + 104, 13, 235, 129, 2, 146, 13, 235, 129, 2, 206, 8, 13, 235, 129, 2, 200, + 43, 13, 235, 129, 2, 66, 13, 235, 129, 2, 196, 12, 13, 235, 129, 2, 193, + 224, 13, 235, 129, 2, 192, 235, 13, 235, 129, 2, 192, 159, 13, 235, 129, + 2, 191, 166, 13, 28, 232, 115, 6, 65, 13, 28, 232, 115, 6, 250, 120, 13, + 28, 232, 115, 6, 247, 193, 13, 28, 232, 115, 6, 238, 127, 13, 28, 232, + 115, 6, 71, 13, 28, 232, 115, 6, 233, 175, 13, 28, 232, 115, 6, 232, 51, + 13, 28, 232, 115, 6, 230, 116, 13, 28, 232, 115, 6, 68, 13, 28, 232, 115, + 6, 223, 35, 13, 28, 232, 115, 6, 222, 152, 13, 28, 232, 115, 6, 172, 13, + 28, 232, 115, 6, 218, 168, 13, 28, 232, 115, 6, 215, 61, 13, 28, 232, + 115, 6, 74, 13, 28, 232, 115, 6, 210, 236, 13, 28, 232, 115, 6, 208, 104, + 13, 28, 232, 115, 6, 146, 13, 28, 232, 115, 6, 206, 8, 13, 28, 232, 115, + 6, 200, 43, 13, 28, 232, 115, 6, 66, 13, 28, 232, 115, 6, 196, 12, 13, + 28, 232, 115, 6, 193, 224, 13, 28, 232, 115, 6, 192, 235, 13, 28, 232, + 115, 6, 192, 159, 13, 28, 232, 115, 6, 191, 166, 13, 28, 232, 115, 2, 65, + 13, 28, 232, 115, 2, 250, 120, 13, 28, 232, 115, 2, 247, 193, 13, 28, + 232, 115, 2, 238, 127, 13, 28, 232, 115, 2, 71, 13, 28, 232, 115, 2, 233, + 175, 13, 28, 232, 115, 2, 232, 51, 13, 28, 232, 115, 2, 230, 116, 13, 28, + 232, 115, 2, 68, 13, 28, 232, 115, 2, 223, 35, 13, 28, 232, 115, 2, 222, + 152, 13, 28, 232, 115, 2, 172, 13, 28, 232, 115, 2, 218, 168, 13, 28, + 232, 115, 2, 215, 61, 13, 28, 232, 115, 2, 74, 13, 28, 232, 115, 2, 210, + 236, 13, 28, 232, 115, 2, 208, 104, 13, 28, 232, 115, 2, 146, 13, 28, + 232, 115, 2, 206, 8, 13, 28, 232, 115, 2, 200, 43, 13, 28, 232, 115, 2, + 66, 13, 28, 232, 115, 2, 196, 12, 13, 28, 232, 115, 2, 193, 224, 13, 28, + 232, 115, 2, 192, 235, 13, 28, 232, 115, 2, 192, 159, 13, 28, 232, 115, + 2, 191, 166, 13, 49, 6, 65, 13, 49, 6, 250, 120, 13, 49, 6, 247, 193, 13, + 49, 6, 238, 127, 13, 49, 6, 71, 13, 49, 6, 233, 175, 13, 49, 6, 232, 51, + 13, 49, 6, 230, 116, 13, 49, 6, 68, 13, 49, 6, 223, 35, 13, 49, 6, 222, + 152, 13, 49, 6, 172, 13, 49, 6, 218, 168, 13, 49, 6, 215, 61, 13, 49, 6, + 74, 13, 49, 6, 210, 236, 13, 49, 6, 208, 104, 13, 49, 6, 146, 13, 49, 6, + 206, 8, 13, 49, 6, 200, 43, 13, 49, 6, 66, 13, 49, 6, 196, 12, 13, 49, 6, + 193, 224, 13, 49, 6, 192, 235, 13, 49, 6, 192, 159, 13, 49, 6, 191, 166, + 13, 49, 2, 65, 13, 49, 2, 250, 120, 13, 49, 2, 247, 193, 13, 49, 2, 238, + 127, 13, 49, 2, 71, 13, 49, 2, 233, 175, 13, 49, 2, 232, 51, 13, 49, 2, + 230, 116, 13, 49, 2, 68, 13, 49, 2, 223, 35, 13, 49, 2, 222, 152, 13, 49, + 2, 172, 13, 49, 2, 218, 168, 13, 49, 2, 215, 61, 13, 49, 2, 74, 13, 49, + 2, 210, 236, 13, 49, 2, 208, 104, 13, 49, 2, 146, 13, 49, 2, 206, 8, 13, + 49, 2, 200, 43, 13, 49, 2, 66, 13, 49, 2, 196, 12, 13, 49, 2, 193, 224, + 13, 49, 2, 192, 235, 13, 49, 2, 192, 159, 13, 49, 2, 191, 166, 13, 49, + 28, 6, 65, 13, 49, 28, 6, 250, 120, 13, 49, 28, 6, 247, 193, 13, 49, 28, + 6, 238, 127, 13, 49, 28, 6, 71, 13, 49, 28, 6, 233, 175, 13, 49, 28, 6, + 232, 51, 13, 49, 28, 6, 230, 116, 13, 49, 28, 6, 68, 13, 49, 28, 6, 223, + 35, 13, 49, 28, 6, 222, 152, 13, 49, 28, 6, 172, 13, 49, 28, 6, 218, 168, + 13, 49, 28, 6, 215, 61, 13, 49, 28, 6, 74, 13, 49, 28, 6, 210, 236, 13, + 49, 28, 6, 208, 104, 13, 49, 28, 6, 146, 13, 49, 28, 6, 206, 8, 13, 49, + 28, 6, 200, 43, 13, 49, 28, 6, 66, 13, 49, 28, 6, 196, 12, 13, 49, 28, 6, + 193, 224, 13, 49, 28, 6, 192, 235, 13, 49, 28, 6, 192, 159, 13, 49, 28, + 6, 191, 166, 13, 49, 28, 2, 65, 13, 49, 28, 2, 250, 120, 13, 49, 28, 2, + 247, 193, 13, 49, 28, 2, 238, 127, 13, 49, 28, 2, 71, 13, 49, 28, 2, 233, + 175, 13, 49, 28, 2, 232, 51, 13, 49, 28, 2, 230, 116, 13, 49, 28, 2, 68, + 13, 49, 28, 2, 223, 35, 13, 49, 28, 2, 222, 152, 13, 49, 28, 2, 172, 13, + 49, 28, 2, 218, 168, 13, 49, 28, 2, 215, 61, 13, 49, 28, 2, 74, 13, 49, + 28, 2, 210, 236, 13, 49, 28, 2, 208, 104, 13, 49, 28, 2, 146, 13, 49, 28, + 2, 206, 8, 13, 49, 28, 2, 200, 43, 13, 49, 28, 2, 66, 13, 49, 28, 2, 196, + 12, 13, 49, 28, 2, 193, 224, 13, 49, 28, 2, 192, 235, 13, 49, 28, 2, 192, + 159, 13, 49, 28, 2, 191, 166, 13, 49, 43, 6, 65, 13, 49, 43, 6, 250, 120, + 13, 49, 43, 6, 247, 193, 13, 49, 43, 6, 238, 127, 13, 49, 43, 6, 71, 13, + 49, 43, 6, 233, 175, 13, 49, 43, 6, 232, 51, 13, 49, 43, 6, 230, 116, 13, + 49, 43, 6, 68, 13, 49, 43, 6, 223, 35, 13, 49, 43, 6, 222, 152, 13, 49, + 43, 6, 172, 13, 49, 43, 6, 218, 168, 13, 49, 43, 6, 215, 61, 13, 49, 43, + 6, 74, 13, 49, 43, 6, 210, 236, 13, 49, 43, 6, 208, 104, 13, 49, 43, 6, + 146, 13, 49, 43, 6, 206, 8, 13, 49, 43, 6, 200, 43, 13, 49, 43, 6, 66, + 13, 49, 43, 6, 196, 12, 13, 49, 43, 6, 193, 224, 13, 49, 43, 6, 192, 235, + 13, 49, 43, 6, 192, 159, 13, 49, 43, 6, 191, 166, 13, 49, 43, 2, 65, 13, + 49, 43, 2, 250, 120, 13, 49, 43, 2, 247, 193, 13, 49, 43, 2, 238, 127, + 13, 49, 43, 2, 71, 13, 49, 43, 2, 233, 175, 13, 49, 43, 2, 232, 51, 13, + 49, 43, 2, 230, 116, 13, 49, 43, 2, 68, 13, 49, 43, 2, 223, 35, 13, 49, + 43, 2, 222, 152, 13, 49, 43, 2, 172, 13, 49, 43, 2, 218, 168, 13, 49, 43, + 2, 215, 61, 13, 49, 43, 2, 74, 13, 49, 43, 2, 210, 236, 13, 49, 43, 2, + 208, 104, 13, 49, 43, 2, 146, 13, 49, 43, 2, 206, 8, 13, 49, 43, 2, 200, + 43, 13, 49, 43, 2, 66, 13, 49, 43, 2, 196, 12, 13, 49, 43, 2, 193, 224, + 13, 49, 43, 2, 192, 235, 13, 49, 43, 2, 192, 159, 13, 49, 43, 2, 191, + 166, 13, 49, 28, 43, 6, 65, 13, 49, 28, 43, 6, 250, 120, 13, 49, 28, 43, + 6, 247, 193, 13, 49, 28, 43, 6, 238, 127, 13, 49, 28, 43, 6, 71, 13, 49, + 28, 43, 6, 233, 175, 13, 49, 28, 43, 6, 232, 51, 13, 49, 28, 43, 6, 230, + 116, 13, 49, 28, 43, 6, 68, 13, 49, 28, 43, 6, 223, 35, 13, 49, 28, 43, + 6, 222, 152, 13, 49, 28, 43, 6, 172, 13, 49, 28, 43, 6, 218, 168, 13, 49, + 28, 43, 6, 215, 61, 13, 49, 28, 43, 6, 74, 13, 49, 28, 43, 6, 210, 236, + 13, 49, 28, 43, 6, 208, 104, 13, 49, 28, 43, 6, 146, 13, 49, 28, 43, 6, + 206, 8, 13, 49, 28, 43, 6, 200, 43, 13, 49, 28, 43, 6, 66, 13, 49, 28, + 43, 6, 196, 12, 13, 49, 28, 43, 6, 193, 224, 13, 49, 28, 43, 6, 192, 235, + 13, 49, 28, 43, 6, 192, 159, 13, 49, 28, 43, 6, 191, 166, 13, 49, 28, 43, + 2, 65, 13, 49, 28, 43, 2, 250, 120, 13, 49, 28, 43, 2, 247, 193, 13, 49, + 28, 43, 2, 238, 127, 13, 49, 28, 43, 2, 71, 13, 49, 28, 43, 2, 233, 175, + 13, 49, 28, 43, 2, 232, 51, 13, 49, 28, 43, 2, 230, 116, 13, 49, 28, 43, + 2, 68, 13, 49, 28, 43, 2, 223, 35, 13, 49, 28, 43, 2, 222, 152, 13, 49, + 28, 43, 2, 172, 13, 49, 28, 43, 2, 218, 168, 13, 49, 28, 43, 2, 215, 61, + 13, 49, 28, 43, 2, 74, 13, 49, 28, 43, 2, 210, 236, 13, 49, 28, 43, 2, + 208, 104, 13, 49, 28, 43, 2, 146, 13, 49, 28, 43, 2, 206, 8, 13, 49, 28, + 43, 2, 200, 43, 13, 49, 28, 43, 2, 66, 13, 49, 28, 43, 2, 196, 12, 13, + 49, 28, 43, 2, 193, 224, 13, 49, 28, 43, 2, 192, 235, 13, 49, 28, 43, 2, + 192, 159, 13, 49, 28, 43, 2, 191, 166, 13, 215, 217, 6, 65, 13, 215, 217, + 6, 250, 120, 13, 215, 217, 6, 247, 193, 13, 215, 217, 6, 238, 127, 13, + 215, 217, 6, 71, 13, 215, 217, 6, 233, 175, 13, 215, 217, 6, 232, 51, 13, + 215, 217, 6, 230, 116, 13, 215, 217, 6, 68, 13, 215, 217, 6, 223, 35, 13, + 215, 217, 6, 222, 152, 13, 215, 217, 6, 172, 13, 215, 217, 6, 218, 168, + 13, 215, 217, 6, 215, 61, 13, 215, 217, 6, 74, 13, 215, 217, 6, 210, 236, + 13, 215, 217, 6, 208, 104, 13, 215, 217, 6, 146, 13, 215, 217, 6, 206, 8, + 13, 215, 217, 6, 200, 43, 13, 215, 217, 6, 66, 13, 215, 217, 6, 196, 12, + 13, 215, 217, 6, 193, 224, 13, 215, 217, 6, 192, 235, 13, 215, 217, 6, + 192, 159, 13, 215, 217, 6, 191, 166, 13, 215, 217, 2, 65, 13, 215, 217, + 2, 250, 120, 13, 215, 217, 2, 247, 193, 13, 215, 217, 2, 238, 127, 13, + 215, 217, 2, 71, 13, 215, 217, 2, 233, 175, 13, 215, 217, 2, 232, 51, 13, + 215, 217, 2, 230, 116, 13, 215, 217, 2, 68, 13, 215, 217, 2, 223, 35, 13, + 215, 217, 2, 222, 152, 13, 215, 217, 2, 172, 13, 215, 217, 2, 218, 168, + 13, 215, 217, 2, 215, 61, 13, 215, 217, 2, 74, 13, 215, 217, 2, 210, 236, + 13, 215, 217, 2, 208, 104, 13, 215, 217, 2, 146, 13, 215, 217, 2, 206, 8, + 13, 215, 217, 2, 200, 43, 13, 215, 217, 2, 66, 13, 215, 217, 2, 196, 12, + 13, 215, 217, 2, 193, 224, 13, 215, 217, 2, 192, 235, 13, 215, 217, 2, + 192, 159, 13, 215, 217, 2, 191, 166, 13, 43, 2, 236, 139, 68, 13, 43, 2, + 236, 139, 223, 35, 13, 28, 6, 251, 160, 13, 28, 6, 248, 212, 13, 28, 6, + 231, 211, 13, 28, 6, 237, 106, 13, 28, 6, 234, 47, 13, 28, 6, 191, 76, + 13, 28, 6, 233, 253, 13, 28, 6, 199, 15, 13, 28, 6, 223, 83, 13, 28, 6, + 222, 72, 13, 28, 6, 220, 31, 13, 28, 6, 215, 155, 13, 28, 6, 212, 178, + 13, 28, 6, 192, 207, 13, 28, 6, 211, 107, 13, 28, 6, 209, 185, 13, 28, 6, + 207, 3, 13, 28, 6, 199, 16, 113, 13, 28, 6, 202, 196, 13, 28, 6, 199, + 166, 13, 28, 6, 196, 70, 13, 28, 6, 209, 211, 13, 28, 6, 243, 95, 13, 28, + 6, 208, 176, 13, 28, 6, 211, 110, 13, 28, 214, 245, 13, 28, 2, 251, 160, + 13, 28, 2, 248, 212, 13, 28, 2, 231, 211, 13, 28, 2, 237, 106, 13, 28, 2, + 234, 47, 13, 28, 2, 191, 76, 13, 28, 2, 233, 253, 13, 28, 2, 199, 15, 13, + 28, 2, 223, 83, 13, 28, 2, 222, 72, 13, 28, 2, 220, 31, 13, 28, 2, 215, + 155, 13, 28, 2, 212, 178, 13, 28, 2, 192, 207, 13, 28, 2, 211, 107, 13, + 28, 2, 209, 185, 13, 28, 2, 207, 3, 13, 28, 2, 53, 202, 196, 13, 28, 2, + 202, 196, 13, 28, 2, 199, 166, 13, 28, 2, 196, 70, 13, 28, 2, 209, 211, + 13, 28, 2, 243, 95, 13, 28, 2, 208, 176, 13, 28, 2, 211, 110, 13, 28, + 210, 105, 237, 16, 13, 28, 234, 48, 113, 13, 28, 199, 16, 113, 13, 28, + 222, 73, 113, 13, 28, 209, 212, 113, 13, 28, 207, 4, 113, 13, 28, 209, + 186, 113, 13, 43, 6, 251, 160, 13, 43, 6, 248, 212, 13, 43, 6, 231, 211, + 13, 43, 6, 237, 106, 13, 43, 6, 234, 47, 13, 43, 6, 191, 76, 13, 43, 6, + 233, 253, 13, 43, 6, 199, 15, 13, 43, 6, 223, 83, 13, 43, 6, 222, 72, 13, + 43, 6, 220, 31, 13, 43, 6, 215, 155, 13, 43, 6, 212, 178, 13, 43, 6, 192, + 207, 13, 43, 6, 211, 107, 13, 43, 6, 209, 185, 13, 43, 6, 207, 3, 13, 43, + 6, 199, 16, 113, 13, 43, 6, 202, 196, 13, 43, 6, 199, 166, 13, 43, 6, + 196, 70, 13, 43, 6, 209, 211, 13, 43, 6, 243, 95, 13, 43, 6, 208, 176, + 13, 43, 6, 211, 110, 13, 43, 214, 245, 13, 43, 2, 251, 160, 13, 43, 2, + 248, 212, 13, 43, 2, 231, 211, 13, 43, 2, 237, 106, 13, 43, 2, 234, 47, + 13, 43, 2, 191, 76, 13, 43, 2, 233, 253, 13, 43, 2, 199, 15, 13, 43, 2, + 223, 83, 13, 43, 2, 222, 72, 13, 43, 2, 220, 31, 13, 43, 2, 215, 155, 13, + 43, 2, 212, 178, 13, 43, 2, 192, 207, 13, 43, 2, 211, 107, 13, 43, 2, + 209, 185, 13, 43, 2, 207, 3, 13, 43, 2, 53, 202, 196, 13, 43, 2, 202, + 196, 13, 43, 2, 199, 166, 13, 43, 2, 196, 70, 13, 43, 2, 209, 211, 13, + 43, 2, 243, 95, 13, 43, 2, 208, 176, 13, 43, 2, 211, 110, 13, 43, 210, + 105, 237, 16, 13, 43, 234, 48, 113, 13, 43, 199, 16, 113, 13, 43, 222, + 73, 113, 13, 43, 209, 212, 113, 13, 43, 207, 4, 113, 13, 43, 209, 186, + 113, 13, 28, 43, 6, 251, 160, 13, 28, 43, 6, 248, 212, 13, 28, 43, 6, + 231, 211, 13, 28, 43, 6, 237, 106, 13, 28, 43, 6, 234, 47, 13, 28, 43, 6, + 191, 76, 13, 28, 43, 6, 233, 253, 13, 28, 43, 6, 199, 15, 13, 28, 43, 6, + 223, 83, 13, 28, 43, 6, 222, 72, 13, 28, 43, 6, 220, 31, 13, 28, 43, 6, + 215, 155, 13, 28, 43, 6, 212, 178, 13, 28, 43, 6, 192, 207, 13, 28, 43, + 6, 211, 107, 13, 28, 43, 6, 209, 185, 13, 28, 43, 6, 207, 3, 13, 28, 43, + 6, 199, 16, 113, 13, 28, 43, 6, 202, 196, 13, 28, 43, 6, 199, 166, 13, + 28, 43, 6, 196, 70, 13, 28, 43, 6, 209, 211, 13, 28, 43, 6, 243, 95, 13, + 28, 43, 6, 208, 176, 13, 28, 43, 6, 211, 110, 13, 28, 43, 214, 245, 13, + 28, 43, 2, 251, 160, 13, 28, 43, 2, 248, 212, 13, 28, 43, 2, 231, 211, + 13, 28, 43, 2, 237, 106, 13, 28, 43, 2, 234, 47, 13, 28, 43, 2, 191, 76, + 13, 28, 43, 2, 233, 253, 13, 28, 43, 2, 199, 15, 13, 28, 43, 2, 223, 83, + 13, 28, 43, 2, 222, 72, 13, 28, 43, 2, 220, 31, 13, 28, 43, 2, 215, 155, + 13, 28, 43, 2, 212, 178, 13, 28, 43, 2, 192, 207, 13, 28, 43, 2, 211, + 107, 13, 28, 43, 2, 209, 185, 13, 28, 43, 2, 207, 3, 13, 28, 43, 2, 53, + 202, 196, 13, 28, 43, 2, 202, 196, 13, 28, 43, 2, 199, 166, 13, 28, 43, + 2, 196, 70, 13, 28, 43, 2, 209, 211, 13, 28, 43, 2, 243, 95, 13, 28, 43, + 2, 208, 176, 13, 28, 43, 2, 211, 110, 13, 28, 43, 210, 105, 237, 16, 13, + 28, 43, 234, 48, 113, 13, 28, 43, 199, 16, 113, 13, 28, 43, 222, 73, 113, + 13, 28, 43, 209, 212, 113, 13, 28, 43, 207, 4, 113, 13, 28, 43, 209, 186, + 113, 13, 49, 28, 6, 251, 160, 13, 49, 28, 6, 248, 212, 13, 49, 28, 6, + 231, 211, 13, 49, 28, 6, 237, 106, 13, 49, 28, 6, 234, 47, 13, 49, 28, 6, + 191, 76, 13, 49, 28, 6, 233, 253, 13, 49, 28, 6, 199, 15, 13, 49, 28, 6, + 223, 83, 13, 49, 28, 6, 222, 72, 13, 49, 28, 6, 220, 31, 13, 49, 28, 6, + 215, 155, 13, 49, 28, 6, 212, 178, 13, 49, 28, 6, 192, 207, 13, 49, 28, + 6, 211, 107, 13, 49, 28, 6, 209, 185, 13, 49, 28, 6, 207, 3, 13, 49, 28, + 6, 199, 16, 113, 13, 49, 28, 6, 202, 196, 13, 49, 28, 6, 199, 166, 13, + 49, 28, 6, 196, 70, 13, 49, 28, 6, 209, 211, 13, 49, 28, 6, 243, 95, 13, + 49, 28, 6, 208, 176, 13, 49, 28, 6, 211, 110, 13, 49, 28, 214, 245, 13, + 49, 28, 2, 251, 160, 13, 49, 28, 2, 248, 212, 13, 49, 28, 2, 231, 211, + 13, 49, 28, 2, 237, 106, 13, 49, 28, 2, 234, 47, 13, 49, 28, 2, 191, 76, + 13, 49, 28, 2, 233, 253, 13, 49, 28, 2, 199, 15, 13, 49, 28, 2, 223, 83, + 13, 49, 28, 2, 222, 72, 13, 49, 28, 2, 220, 31, 13, 49, 28, 2, 215, 155, + 13, 49, 28, 2, 212, 178, 13, 49, 28, 2, 192, 207, 13, 49, 28, 2, 211, + 107, 13, 49, 28, 2, 209, 185, 13, 49, 28, 2, 207, 3, 13, 49, 28, 2, 53, + 202, 196, 13, 49, 28, 2, 202, 196, 13, 49, 28, 2, 199, 166, 13, 49, 28, + 2, 196, 70, 13, 49, 28, 2, 209, 211, 13, 49, 28, 2, 243, 95, 13, 49, 28, + 2, 208, 176, 13, 49, 28, 2, 211, 110, 13, 49, 28, 210, 105, 237, 16, 13, + 49, 28, 234, 48, 113, 13, 49, 28, 199, 16, 113, 13, 49, 28, 222, 73, 113, + 13, 49, 28, 209, 212, 113, 13, 49, 28, 207, 4, 113, 13, 49, 28, 209, 186, + 113, 13, 49, 28, 43, 6, 251, 160, 13, 49, 28, 43, 6, 248, 212, 13, 49, + 28, 43, 6, 231, 211, 13, 49, 28, 43, 6, 237, 106, 13, 49, 28, 43, 6, 234, + 47, 13, 49, 28, 43, 6, 191, 76, 13, 49, 28, 43, 6, 233, 253, 13, 49, 28, + 43, 6, 199, 15, 13, 49, 28, 43, 6, 223, 83, 13, 49, 28, 43, 6, 222, 72, + 13, 49, 28, 43, 6, 220, 31, 13, 49, 28, 43, 6, 215, 155, 13, 49, 28, 43, + 6, 212, 178, 13, 49, 28, 43, 6, 192, 207, 13, 49, 28, 43, 6, 211, 107, + 13, 49, 28, 43, 6, 209, 185, 13, 49, 28, 43, 6, 207, 3, 13, 49, 28, 43, + 6, 199, 16, 113, 13, 49, 28, 43, 6, 202, 196, 13, 49, 28, 43, 6, 199, + 166, 13, 49, 28, 43, 6, 196, 70, 13, 49, 28, 43, 6, 209, 211, 13, 49, 28, + 43, 6, 243, 95, 13, 49, 28, 43, 6, 208, 176, 13, 49, 28, 43, 6, 211, 110, + 13, 49, 28, 43, 214, 245, 13, 49, 28, 43, 2, 251, 160, 13, 49, 28, 43, 2, + 248, 212, 13, 49, 28, 43, 2, 231, 211, 13, 49, 28, 43, 2, 237, 106, 13, + 49, 28, 43, 2, 234, 47, 13, 49, 28, 43, 2, 191, 76, 13, 49, 28, 43, 2, + 233, 253, 13, 49, 28, 43, 2, 199, 15, 13, 49, 28, 43, 2, 223, 83, 13, 49, + 28, 43, 2, 222, 72, 13, 49, 28, 43, 2, 220, 31, 13, 49, 28, 43, 2, 215, + 155, 13, 49, 28, 43, 2, 212, 178, 13, 49, 28, 43, 2, 192, 207, 13, 49, + 28, 43, 2, 211, 107, 13, 49, 28, 43, 2, 209, 185, 13, 49, 28, 43, 2, 207, + 3, 13, 49, 28, 43, 2, 53, 202, 196, 13, 49, 28, 43, 2, 202, 196, 13, 49, + 28, 43, 2, 199, 166, 13, 49, 28, 43, 2, 196, 70, 13, 49, 28, 43, 2, 209, + 211, 13, 49, 28, 43, 2, 243, 95, 13, 49, 28, 43, 2, 208, 176, 13, 49, 28, + 43, 2, 211, 110, 13, 49, 28, 43, 210, 105, 237, 16, 13, 49, 28, 43, 234, + 48, 113, 13, 49, 28, 43, 199, 16, 113, 13, 49, 28, 43, 222, 73, 113, 13, + 49, 28, 43, 209, 212, 113, 13, 49, 28, 43, 207, 4, 113, 13, 49, 28, 43, + 209, 186, 113, 13, 28, 6, 237, 10, 13, 28, 2, 237, 10, 13, 28, 17, 191, + 77, 13, 28, 17, 107, 13, 28, 17, 109, 13, 28, 17, 138, 13, 28, 17, 134, + 13, 28, 17, 149, 13, 28, 17, 169, 13, 28, 17, 175, 13, 28, 17, 171, 13, + 28, 17, 178, 13, 235, 129, 17, 191, 77, 13, 235, 129, 17, 107, 13, 235, + 129, 17, 109, 13, 235, 129, 17, 138, 13, 235, 129, 17, 134, 13, 235, 129, + 17, 149, 13, 235, 129, 17, 169, 13, 235, 129, 17, 175, 13, 235, 129, 17, + 171, 13, 235, 129, 17, 178, 13, 49, 17, 191, 77, 13, 49, 17, 107, 13, 49, + 17, 109, 13, 49, 17, 138, 13, 49, 17, 134, 13, 49, 17, 149, 13, 49, 17, + 169, 13, 49, 17, 175, 13, 49, 17, 171, 13, 49, 17, 178, 13, 49, 28, 17, + 191, 77, 13, 49, 28, 17, 107, 13, 49, 28, 17, 109, 13, 49, 28, 17, 138, + 13, 49, 28, 17, 134, 13, 49, 28, 17, 149, 13, 49, 28, 17, 169, 13, 49, + 28, 17, 175, 13, 49, 28, 17, 171, 13, 49, 28, 17, 178, 13, 215, 217, 17, + 191, 77, 13, 215, 217, 17, 107, 13, 215, 217, 17, 109, 13, 215, 217, 17, + 138, 13, 215, 217, 17, 134, 13, 215, 217, 17, 149, 13, 215, 217, 17, 169, + 13, 215, 217, 17, 175, 13, 215, 217, 17, 171, 13, 215, 217, 17, 178, 24, + 151, 223, 148, 24, 230, 50, 223, 148, 24, 230, 46, 223, 148, 24, 230, 35, + 223, 148, 24, 230, 39, 223, 148, 24, 230, 52, 223, 148, 24, 151, 141, + 248, 223, 24, 230, 50, 141, 248, 223, 24, 151, 176, 196, 105, 141, 248, + 223, 24, 151, 141, 207, 147, 221, 70, 24, 151, 141, 238, 177, 24, 151, + 141, 229, 124, 24, 151, 141, 229, 125, 218, 241, 24, 230, 50, 141, 229, + 126, 24, 151, 141, 216, 84, 24, 230, 50, 141, 216, 84, 24, 151, 141, 82, + 248, 223, 24, 151, 141, 82, 207, 147, 221, 69, 24, 151, 141, 82, 229, + 124, 24, 151, 141, 133, 82, 229, 124, 24, 151, 141, 229, 125, 82, 196, + 77, 24, 151, 141, 82, 239, 46, 24, 151, 141, 82, 239, 47, 141, 248, 223, + 24, 151, 141, 82, 239, 47, 82, 248, 223, 24, 151, 141, 82, 239, 47, 238, + 177, 24, 151, 141, 82, 239, 47, 229, 124, 24, 151, 141, 82, 238, 213, 24, + 230, 50, 141, 82, 238, 213, 24, 151, 82, 248, 224, 139, 223, 148, 24, + 151, 141, 248, 224, 139, 216, 84, 24, 151, 141, 82, 198, 212, 24, 230, + 50, 141, 82, 198, 212, 24, 151, 141, 82, 201, 53, 176, 248, 223, 24, 151, + 141, 82, 248, 224, 176, 201, 52, 24, 151, 141, 82, 176, 248, 223, 24, + 151, 141, 82, 229, 125, 201, 199, 176, 202, 207, 24, 151, 141, 133, 82, + 229, 125, 176, 202, 207, 24, 151, 141, 133, 82, 229, 125, 176, 239, 46, + 24, 151, 141, 229, 125, 82, 133, 176, 202, 207, 24, 151, 141, 82, 133, + 201, 199, 176, 232, 132, 24, 151, 141, 82, 176, 238, 177, 24, 151, 141, + 82, 176, 243, 9, 24, 151, 141, 82, 176, 228, 249, 24, 151, 141, 82, 176, + 229, 124, 24, 151, 176, 248, 210, 141, 82, 201, 52, 24, 151, 141, 82, + 239, 47, 176, 202, 207, 24, 151, 141, 82, 239, 47, 176, 202, 208, 239, + 46, 24, 151, 141, 82, 239, 47, 176, 202, 208, 248, 223, 24, 151, 82, 176, + 228, 250, 141, 196, 77, 24, 151, 141, 176, 228, 250, 82, 196, 77, 24, + 151, 141, 82, 239, 47, 229, 125, 176, 202, 207, 24, 151, 141, 82, 238, + 214, 176, 202, 207, 24, 151, 141, 82, 239, 47, 176, 232, 132, 24, 151, + 141, 82, 239, 47, 238, 178, 176, 232, 132, 24, 151, 82, 176, 238, 178, + 141, 196, 77, 24, 151, 141, 176, 238, 178, 82, 196, 77, 24, 151, 82, 176, + 47, 141, 196, 77, 24, 151, 82, 176, 47, 141, 229, 124, 24, 151, 141, 176, + 251, 114, 211, 15, 82, 196, 77, 24, 151, 141, 176, 251, 114, 223, 163, + 82, 196, 77, 24, 151, 141, 176, 47, 82, 196, 77, 24, 151, 141, 82, 176, + 239, 47, 229, 124, 24, 151, 141, 82, 176, 251, 114, 211, 14, 24, 151, + 141, 82, 176, 251, 113, 24, 151, 82, 176, 251, 114, 211, 15, 141, 196, + 77, 24, 151, 82, 176, 251, 114, 211, 15, 141, 238, 213, 24, 151, 82, 176, + 251, 114, 141, 196, 77, 24, 151, 141, 176, 228, 250, 82, 229, 124, 24, + 230, 41, 232, 128, 232, 247, 24, 230, 41, 232, 128, 232, 248, 248, 223, + 24, 230, 41, 232, 128, 232, 248, 229, 124, 24, 230, 41, 232, 128, 232, + 248, 239, 46, 24, 230, 41, 232, 128, 232, 248, 239, 47, 201, 209, 24, + 230, 48, 232, 128, 232, 248, 239, 46, 24, 151, 232, 128, 232, 248, 239, + 47, 248, 223, 24, 230, 39, 232, 128, 232, 248, 239, 46, 24, 230, 41, 232, + 226, 232, 248, 201, 198, 24, 230, 41, 229, 213, 232, 226, 232, 248, 201, + 198, 24, 230, 41, 232, 226, 232, 248, 201, 199, 232, 128, 248, 223, 24, + 230, 41, 229, 213, 232, 226, 232, 248, 201, 199, 232, 128, 248, 223, 24, + 230, 41, 232, 226, 232, 248, 201, 199, 248, 223, 24, 230, 41, 229, 213, + 232, 226, 232, 248, 201, 199, 248, 223, 24, 230, 41, 232, 226, 232, 248, + 201, 199, 176, 232, 132, 24, 230, 46, 232, 226, 232, 248, 201, 198, 24, + 230, 46, 232, 226, 232, 248, 201, 199, 211, 76, 24, 230, 39, 232, 226, + 232, 248, 201, 199, 211, 76, 24, 230, 35, 232, 226, 232, 248, 201, 198, + 24, 230, 41, 232, 226, 232, 248, 201, 199, 229, 124, 24, 230, 41, 232, + 226, 232, 248, 201, 199, 229, 125, 176, 202, 207, 24, 230, 41, 232, 226, + 232, 248, 201, 199, 229, 125, 213, 44, 198, 212, 24, 230, 40, 24, 230, + 41, 248, 210, 210, 183, 233, 95, 24, 230, 41, 229, 212, 24, 230, 41, 176, + 202, 207, 24, 230, 41, 229, 213, 176, 202, 207, 24, 230, 41, 176, 248, + 223, 24, 230, 41, 176, 232, 132, 24, 230, 41, 201, 210, 141, 176, 202, + 207, 24, 230, 41, 201, 210, 247, 21, 24, 230, 41, 201, 210, 247, 22, 176, + 202, 207, 24, 230, 41, 201, 210, 247, 22, 176, 202, 208, 248, 223, 24, + 230, 41, 201, 210, 219, 82, 24, 230, 47, 24, 230, 48, 176, 202, 207, 24, + 230, 48, 213, 44, 198, 212, 24, 230, 48, 176, 232, 132, 24, 230, 37, 238, + 173, 24, 230, 36, 24, 230, 46, 211, 76, 24, 230, 45, 24, 230, 46, 211, + 77, 176, 202, 207, 24, 230, 46, 176, 202, 207, 24, 230, 46, 211, 77, 213, + 44, 198, 212, 24, 230, 46, 213, 44, 198, 212, 24, 230, 46, 211, 77, 176, + 232, 132, 24, 230, 46, 176, 232, 132, 24, 230, 44, 211, 76, 24, 230, 43, + 24, 230, 49, 24, 230, 34, 24, 230, 35, 176, 202, 207, 24, 230, 35, 213, + 44, 198, 212, 24, 230, 35, 176, 232, 132, 24, 230, 39, 211, 76, 24, 230, + 39, 211, 77, 176, 232, 132, 24, 230, 38, 24, 230, 39, 202, 70, 24, 230, + 39, 211, 77, 176, 202, 207, 24, 230, 39, 176, 202, 207, 24, 230, 39, 211, + 77, 213, 44, 198, 212, 24, 230, 39, 213, 44, 198, 212, 24, 230, 39, 176, + 202, 208, 198, 35, 223, 148, 24, 230, 39, 176, 248, 210, 82, 206, 188, + 24, 230, 51, 24, 151, 141, 82, 206, 188, 24, 230, 50, 141, 82, 206, 188, + 24, 230, 39, 141, 82, 206, 188, 24, 230, 52, 141, 82, 206, 188, 24, 230, + 39, 219, 82, 24, 151, 141, 82, 206, 189, 248, 223, 24, 151, 141, 82, 206, + 189, 239, 46, 24, 230, 39, 141, 82, 206, 189, 239, 46, 24, 151, 219, 83, + 235, 123, 24, 151, 219, 83, 144, 206, 183, 201, 52, 24, 151, 219, 83, + 144, 206, 183, 238, 162, 24, 151, 219, 83, 144, 211, 26, 243, 9, 24, 151, + 219, 83, 196, 77, 24, 151, 176, 196, 105, 219, 83, 196, 77, 24, 230, 50, + 219, 83, 196, 77, 24, 230, 35, 219, 83, 196, 77, 24, 230, 52, 219, 83, + 196, 77, 24, 151, 219, 83, 207, 147, 221, 70, 24, 151, 219, 83, 248, 223, + 24, 151, 219, 83, 198, 36, 198, 212, 24, 151, 219, 83, 198, 212, 24, 230, + 39, 219, 83, 198, 212, 24, 151, 219, 83, 141, 198, 212, 24, 230, 39, 219, + 83, 141, 198, 212, 24, 230, 52, 219, 83, 141, 176, 141, 176, 211, 14, 24, + 230, 52, 219, 83, 141, 176, 141, 198, 212, 24, 151, 219, 83, 223, 148, + 24, 230, 50, 219, 83, 223, 148, 24, 230, 39, 219, 83, 223, 148, 24, 230, + 52, 219, 83, 223, 148, 24, 151, 141, 82, 219, 82, 24, 230, 50, 141, 82, + 219, 82, 24, 230, 39, 141, 82, 219, 82, 24, 230, 39, 206, 188, 24, 230, + 52, 141, 82, 219, 82, 24, 151, 141, 82, 238, 218, 219, 82, 24, 230, 50, + 141, 82, 238, 218, 219, 82, 24, 151, 206, 189, 235, 123, 24, 230, 39, + 206, 189, 144, 141, 176, 228, 251, 216, 84, 24, 230, 52, 206, 189, 144, + 82, 176, 141, 238, 217, 24, 151, 206, 189, 196, 77, 24, 151, 206, 189, + 207, 147, 221, 70, 24, 151, 206, 189, 219, 82, 24, 230, 50, 206, 189, + 219, 82, 24, 230, 35, 206, 189, 219, 82, 24, 230, 52, 206, 189, 219, 82, + 24, 151, 206, 189, 216, 84, 24, 151, 206, 189, 82, 239, 46, 24, 151, 206, + 189, 82, 207, 147, 221, 69, 24, 151, 206, 189, 223, 148, 24, 151, 206, + 189, 198, 212, 24, 230, 37, 206, 189, 198, 212, 24, 151, 141, 206, 189, + 219, 82, 24, 230, 50, 141, 206, 189, 219, 82, 24, 230, 44, 141, 206, 189, + 219, 83, 211, 104, 24, 230, 37, 141, 206, 189, 219, 83, 211, 14, 24, 230, + 37, 141, 206, 189, 219, 83, 223, 162, 24, 230, 37, 141, 206, 189, 219, + 83, 196, 104, 24, 230, 46, 141, 206, 189, 219, 82, 24, 230, 39, 141, 206, + 189, 219, 82, 24, 230, 52, 141, 206, 189, 219, 83, 211, 14, 24, 230, 52, + 141, 206, 189, 219, 82, 24, 151, 82, 235, 123, 24, 230, 39, 216, 84, 24, + 151, 82, 196, 77, 24, 230, 50, 82, 196, 77, 24, 151, 82, 207, 147, 221, + 70, 24, 151, 82, 133, 176, 202, 207, 24, 230, 37, 82, 198, 212, 24, 151, + 82, 176, 219, 82, 24, 151, 82, 219, 82, 24, 151, 82, 206, 189, 219, 82, + 24, 230, 50, 82, 206, 189, 219, 82, 24, 230, 44, 82, 206, 189, 219, 83, + 211, 104, 24, 230, 46, 82, 206, 189, 219, 82, 24, 230, 39, 82, 206, 189, + 219, 82, 24, 230, 52, 82, 206, 189, 219, 83, 211, 14, 24, 230, 52, 82, + 206, 189, 219, 83, 223, 162, 24, 230, 52, 82, 206, 189, 219, 82, 24, 230, + 50, 82, 206, 189, 219, 83, 248, 223, 24, 230, 48, 82, 206, 189, 219, 83, + 239, 46, 24, 230, 48, 82, 206, 189, 219, 83, 239, 47, 202, 207, 24, 230, + 37, 82, 206, 189, 219, 83, 239, 47, 211, 14, 24, 230, 37, 82, 206, 189, + 219, 83, 239, 47, 223, 162, 24, 230, 37, 82, 206, 189, 219, 83, 239, 46, + 24, 230, 39, 141, 229, 124, 24, 151, 141, 176, 202, 207, 24, 230, 39, + 141, 176, 202, 207, 24, 151, 141, 176, 202, 208, 176, 237, 38, 24, 151, + 141, 176, 202, 208, 176, 239, 46, 24, 151, 141, 176, 202, 208, 176, 248, + 223, 24, 151, 141, 176, 202, 208, 141, 248, 223, 24, 151, 141, 176, 202, + 208, 248, 80, 248, 223, 24, 151, 141, 176, 202, 208, 141, 229, 126, 24, + 151, 141, 176, 232, 133, 141, 201, 52, 24, 151, 141, 176, 232, 133, 141, + 248, 223, 24, 151, 141, 176, 102, 24, 151, 141, 176, 238, 173, 24, 151, + 141, 176, 238, 165, 176, 223, 117, 24, 230, 48, 141, 176, 238, 165, 176, + 223, 117, 24, 151, 141, 176, 238, 165, 176, 196, 104, 24, 151, 141, 176, + 243, 10, 24, 230, 46, 141, 198, 212, 24, 230, 46, 141, 176, 211, 76, 24, + 230, 39, 141, 176, 211, 76, 24, 230, 39, 141, 176, 220, 12, 24, 230, 39, + 141, 198, 212, 24, 230, 39, 141, 176, 202, 70, 24, 230, 52, 141, 176, + 211, 14, 24, 230, 52, 141, 176, 223, 162, 24, 230, 52, 141, 198, 212, 24, + 151, 198, 212, 24, 151, 176, 229, 212, 24, 151, 176, 202, 208, 237, 38, + 24, 151, 176, 202, 208, 239, 46, 24, 151, 176, 202, 208, 248, 223, 24, + 151, 176, 232, 132, 24, 151, 176, 248, 210, 141, 216, 84, 24, 151, 176, + 248, 210, 82, 206, 188, 24, 151, 176, 248, 210, 206, 189, 219, 82, 24, + 151, 176, 196, 105, 105, 232, 247, 24, 151, 176, 139, 105, 232, 247, 24, + 151, 176, 196, 105, 115, 232, 247, 24, 151, 176, 196, 105, 232, 128, 232, + 247, 24, 151, 176, 139, 232, 128, 207, 147, 221, 69, 24, 230, 42, 24, + 151, 229, 212, 24, 198, 37, 202, 169, 24, 198, 37, 215, 128, 24, 198, 37, + 248, 209, 24, 230, 215, 202, 169, 24, 230, 215, 215, 128, 24, 230, 215, + 248, 209, 24, 201, 33, 202, 169, 24, 201, 33, 215, 128, 24, 201, 33, 248, + 209, 24, 248, 18, 202, 169, 24, 248, 18, 215, 128, 24, 248, 18, 248, 209, + 24, 206, 60, 202, 169, 24, 206, 60, 215, 128, 24, 206, 60, 248, 209, 24, + 200, 171, 200, 76, 24, 200, 171, 248, 209, 24, 201, 186, 220, 13, 202, + 169, 24, 201, 186, 2, 202, 169, 24, 201, 186, 220, 13, 215, 128, 24, 201, + 186, 2, 215, 128, 24, 201, 186, 204, 6, 24, 232, 197, 220, 13, 202, 169, + 24, 232, 197, 2, 202, 169, 24, 232, 197, 220, 13, 215, 128, 24, 232, 197, + 2, 215, 128, 24, 232, 197, 204, 6, 24, 201, 186, 232, 197, 251, 154, 24, + 215, 172, 133, 144, 220, 12, 24, 215, 172, 133, 144, 202, 70, 24, 215, + 172, 133, 204, 6, 24, 215, 172, 144, 204, 6, 24, 215, 172, 133, 144, 251, + 155, 220, 12, 24, 215, 172, 133, 144, 251, 155, 202, 70, 24, 215, 172, + 202, 208, 119, 202, 208, 205, 84, 24, 215, 171, 232, 253, 239, 35, 24, + 215, 173, 232, 253, 239, 35, 24, 215, 171, 202, 170, 201, 53, 202, 70, + 24, 215, 171, 202, 170, 201, 53, 216, 212, 24, 215, 171, 202, 170, 201, + 53, 220, 12, 24, 215, 171, 202, 170, 201, 53, 220, 10, 24, 215, 171, 202, + 170, 193, 4, 232, 200, 24, 215, 171, 55, 201, 52, 24, 215, 171, 55, 193, + 4, 232, 200, 24, 215, 171, 55, 251, 154, 24, 215, 171, 55, 251, 155, 193, + 4, 232, 200, 24, 215, 171, 238, 217, 24, 215, 171, 197, 225, 201, 53, + 215, 175, 24, 215, 171, 197, 225, 193, 4, 232, 200, 24, 215, 171, 197, + 225, 251, 154, 24, 215, 171, 197, 225, 251, 155, 193, 4, 232, 200, 24, + 215, 171, 248, 228, 202, 70, 24, 215, 171, 248, 228, 216, 212, 24, 215, + 171, 248, 228, 220, 12, 24, 215, 171, 239, 2, 202, 70, 24, 215, 171, 239, + 2, 216, 212, 24, 215, 171, 239, 2, 220, 12, 24, 215, 171, 239, 2, 206, + 120, 24, 215, 171, 243, 126, 202, 70, 24, 215, 171, 243, 126, 216, 212, + 24, 215, 171, 243, 126, 220, 12, 24, 215, 171, 111, 202, 70, 24, 215, + 171, 111, 216, 212, 24, 215, 171, 111, 220, 12, 24, 215, 171, 191, 21, + 202, 70, 24, 215, 171, 191, 21, 216, 212, 24, 215, 171, 191, 21, 220, 12, + 24, 215, 171, 210, 57, 202, 70, 24, 215, 171, 210, 57, 216, 212, 24, 215, + 171, 210, 57, 220, 12, 24, 198, 3, 206, 118, 202, 169, 24, 198, 3, 206, + 118, 235, 133, 24, 198, 3, 206, 118, 251, 154, 24, 198, 3, 206, 119, 202, + 169, 24, 198, 3, 206, 119, 235, 133, 24, 198, 3, 206, 119, 251, 154, 24, + 198, 3, 203, 144, 24, 198, 3, 250, 251, 201, 218, 202, 169, 24, 198, 3, + 250, 251, 201, 218, 235, 133, 24, 198, 3, 250, 251, 201, 218, 197, 224, + 24, 215, 174, 250, 139, 202, 70, 24, 215, 174, 250, 139, 216, 212, 24, + 215, 174, 250, 139, 220, 12, 24, 215, 174, 250, 139, 220, 10, 24, 215, + 174, 198, 31, 202, 70, 24, 215, 174, 198, 31, 216, 212, 24, 215, 174, + 198, 31, 220, 12, 24, 215, 174, 198, 31, 220, 10, 24, 215, 174, 248, 210, + 250, 139, 202, 70, 24, 215, 174, 248, 210, 250, 139, 216, 212, 24, 215, + 174, 248, 210, 250, 139, 220, 12, 24, 215, 174, 248, 210, 250, 139, 220, + 10, 24, 215, 174, 248, 210, 198, 31, 202, 70, 24, 215, 174, 248, 210, + 198, 31, 216, 212, 24, 215, 174, 248, 210, 198, 31, 220, 12, 24, 215, + 174, 248, 210, 198, 31, 220, 10, 24, 215, 173, 202, 170, 201, 53, 202, + 70, 24, 215, 173, 202, 170, 201, 53, 216, 212, 24, 215, 173, 202, 170, + 201, 53, 220, 12, 24, 215, 173, 202, 170, 201, 53, 220, 10, 24, 215, 173, + 202, 170, 193, 4, 232, 200, 24, 215, 173, 55, 201, 52, 24, 215, 173, 55, + 193, 4, 232, 200, 24, 215, 173, 55, 251, 154, 24, 215, 173, 55, 251, 155, + 193, 4, 232, 200, 24, 215, 173, 238, 217, 24, 215, 173, 197, 225, 201, + 53, 215, 175, 24, 215, 173, 197, 225, 193, 4, 232, 200, 24, 215, 173, + 197, 225, 251, 155, 215, 175, 24, 215, 173, 197, 225, 251, 155, 193, 4, + 232, 200, 24, 215, 173, 248, 227, 24, 215, 173, 239, 2, 202, 70, 24, 215, + 173, 239, 2, 216, 212, 24, 215, 173, 239, 2, 220, 12, 24, 215, 173, 243, + 125, 24, 215, 173, 111, 202, 70, 24, 215, 173, 111, 216, 212, 24, 215, + 173, 111, 220, 12, 24, 215, 173, 191, 21, 202, 70, 24, 215, 173, 191, 21, + 216, 212, 24, 215, 173, 191, 21, 220, 12, 24, 215, 173, 210, 57, 202, 70, + 24, 215, 173, 210, 57, 216, 212, 24, 215, 173, 210, 57, 220, 12, 24, 198, + 4, 206, 119, 202, 169, 24, 198, 4, 206, 119, 235, 133, 24, 198, 4, 206, + 119, 251, 154, 24, 198, 4, 206, 118, 202, 169, 24, 198, 4, 206, 118, 235, + 133, 24, 198, 4, 206, 118, 251, 154, 24, 198, 4, 203, 144, 24, 215, 171, + 238, 165, 208, 23, 202, 70, 24, 215, 171, 238, 165, 208, 23, 216, 212, + 24, 215, 171, 238, 165, 208, 23, 220, 12, 24, 215, 171, 238, 165, 208, + 23, 220, 10, 24, 215, 171, 238, 165, 230, 67, 202, 70, 24, 215, 171, 238, + 165, 230, 67, 216, 212, 24, 215, 171, 238, 165, 230, 67, 220, 12, 24, + 215, 171, 238, 165, 230, 67, 220, 10, 24, 215, 171, 238, 165, 198, 218, + 243, 11, 202, 70, 24, 215, 171, 238, 165, 198, 218, 243, 11, 216, 212, + 24, 215, 171, 228, 143, 202, 70, 24, 215, 171, 228, 143, 216, 212, 24, + 215, 171, 228, 143, 220, 12, 24, 215, 171, 219, 5, 202, 70, 24, 215, 171, + 219, 5, 216, 212, 24, 215, 171, 219, 5, 220, 12, 24, 215, 171, 219, 5, 2, + 235, 133, 24, 215, 171, 193, 139, 238, 165, 55, 202, 70, 24, 215, 171, + 193, 139, 238, 165, 55, 216, 212, 24, 215, 171, 193, 139, 238, 165, 55, + 220, 12, 24, 215, 171, 193, 139, 238, 165, 197, 225, 202, 70, 24, 215, + 171, 193, 139, 238, 165, 197, 225, 216, 212, 24, 215, 171, 193, 139, 238, + 165, 197, 225, 220, 12, 24, 215, 171, 238, 165, 199, 25, 201, 52, 24, + 215, 171, 238, 163, 238, 218, 202, 70, 24, 215, 171, 238, 163, 238, 218, + 216, 212, 24, 206, 118, 202, 169, 24, 206, 118, 235, 133, 24, 206, 118, + 251, 156, 24, 215, 171, 203, 144, 24, 215, 171, 238, 165, 229, 116, 232, + 97, 193, 167, 24, 215, 171, 228, 143, 229, 116, 232, 97, 193, 167, 24, + 215, 171, 219, 5, 229, 116, 232, 97, 193, 167, 24, 215, 171, 193, 139, + 229, 116, 232, 97, 193, 167, 24, 206, 118, 202, 170, 229, 116, 232, 97, + 193, 167, 24, 206, 118, 55, 229, 116, 232, 97, 193, 167, 24, 206, 118, + 251, 155, 229, 116, 232, 97, 193, 167, 24, 215, 171, 238, 165, 229, 116, + 243, 104, 24, 215, 171, 228, 143, 229, 116, 243, 104, 24, 215, 171, 219, + 5, 229, 116, 243, 104, 24, 215, 171, 193, 139, 229, 116, 243, 104, 24, + 206, 118, 202, 170, 229, 116, 243, 104, 24, 206, 118, 55, 229, 116, 243, + 104, 24, 206, 118, 251, 155, 229, 116, 243, 104, 24, 215, 171, 193, 139, + 237, 39, 210, 86, 202, 70, 24, 215, 171, 193, 139, 237, 39, 210, 86, 216, + 212, 24, 215, 171, 193, 139, 237, 39, 210, 86, 220, 12, 24, 215, 173, + 238, 165, 229, 116, 247, 31, 202, 70, 24, 215, 173, 238, 165, 229, 116, + 247, 31, 220, 12, 24, 215, 173, 228, 143, 229, 116, 247, 31, 2, 235, 133, + 24, 215, 173, 228, 143, 229, 116, 247, 31, 220, 13, 235, 133, 24, 215, + 173, 228, 143, 229, 116, 247, 31, 2, 197, 224, 24, 215, 173, 228, 143, + 229, 116, 247, 31, 220, 13, 197, 224, 24, 215, 173, 219, 5, 229, 116, + 247, 31, 2, 202, 169, 24, 215, 173, 219, 5, 229, 116, 247, 31, 220, 13, + 202, 169, 24, 215, 173, 219, 5, 229, 116, 247, 31, 2, 235, 133, 24, 215, + 173, 219, 5, 229, 116, 247, 31, 220, 13, 235, 133, 24, 215, 173, 193, + 139, 229, 116, 247, 31, 202, 70, 24, 215, 173, 193, 139, 229, 116, 247, + 31, 220, 12, 24, 206, 119, 202, 170, 229, 116, 247, 30, 24, 206, 119, 55, + 229, 116, 247, 30, 24, 206, 119, 251, 155, 229, 116, 247, 30, 24, 215, + 173, 238, 165, 229, 116, 232, 194, 202, 70, 24, 215, 173, 238, 165, 229, + 116, 232, 194, 220, 12, 24, 215, 173, 228, 143, 229, 116, 232, 194, 2, + 235, 133, 24, 215, 173, 228, 143, 229, 116, 232, 194, 220, 13, 235, 133, + 24, 215, 173, 228, 143, 229, 116, 232, 194, 197, 225, 2, 197, 224, 24, + 215, 173, 228, 143, 229, 116, 232, 194, 197, 225, 220, 13, 197, 224, 24, + 215, 173, 219, 5, 229, 116, 232, 194, 2, 202, 169, 24, 215, 173, 219, 5, + 229, 116, 232, 194, 220, 13, 202, 169, 24, 215, 173, 219, 5, 229, 116, + 232, 194, 2, 235, 133, 24, 215, 173, 219, 5, 229, 116, 232, 194, 220, 13, + 235, 133, 24, 215, 173, 193, 139, 229, 116, 232, 194, 202, 70, 24, 215, + 173, 193, 139, 229, 116, 232, 194, 220, 12, 24, 206, 119, 202, 170, 229, + 116, 232, 193, 24, 206, 119, 55, 229, 116, 232, 193, 24, 206, 119, 251, + 155, 229, 116, 232, 193, 24, 215, 173, 238, 165, 202, 70, 24, 215, 173, + 238, 165, 216, 212, 24, 215, 173, 238, 165, 220, 12, 24, 215, 173, 238, + 165, 220, 10, 24, 215, 173, 238, 165, 242, 78, 24, 215, 173, 228, 143, + 202, 70, 24, 215, 173, 219, 5, 202, 70, 24, 215, 173, 193, 139, 202, 58, + 24, 215, 173, 193, 139, 202, 70, 24, 215, 173, 193, 139, 220, 12, 24, + 206, 119, 202, 169, 24, 206, 119, 235, 133, 24, 206, 119, 251, 154, 24, + 215, 173, 203, 145, 210, 118, 24, 215, 171, 250, 251, 243, 11, 2, 202, + 169, 24, 215, 171, 250, 251, 243, 11, 216, 213, 202, 169, 24, 215, 171, + 250, 251, 243, 11, 2, 235, 133, 24, 215, 171, 250, 251, 243, 11, 216, + 213, 235, 133, 24, 215, 173, 250, 251, 243, 11, 229, 116, 193, 168, 2, + 202, 169, 24, 215, 173, 250, 251, 243, 11, 229, 116, 193, 168, 216, 213, + 202, 169, 24, 215, 173, 250, 251, 243, 11, 229, 116, 193, 168, 220, 13, + 202, 169, 24, 215, 173, 250, 251, 243, 11, 229, 116, 193, 168, 2, 235, + 133, 24, 215, 173, 250, 251, 243, 11, 229, 116, 193, 168, 216, 213, 235, + 133, 24, 215, 173, 250, 251, 243, 11, 229, 116, 193, 168, 220, 13, 235, + 133, 24, 215, 171, 193, 4, 243, 11, 232, 97, 202, 169, 24, 215, 171, 193, + 4, 243, 11, 232, 97, 235, 133, 24, 215, 173, 193, 4, 243, 11, 229, 116, + 193, 168, 202, 169, 24, 215, 173, 193, 4, 243, 11, 229, 116, 193, 168, + 235, 133, 24, 215, 171, 232, 253, 243, 8, 202, 169, 24, 215, 171, 232, + 253, 243, 8, 235, 133, 24, 215, 173, 232, 253, 243, 8, 229, 116, 193, + 168, 202, 169, 24, 215, 173, 232, 253, 243, 8, 229, 116, 193, 168, 235, + 133, 24, 235, 40, 250, 236, 202, 70, 24, 235, 40, 250, 236, 220, 12, 24, + 235, 40, 233, 73, 24, 235, 40, 202, 75, 24, 235, 40, 199, 88, 24, 235, + 40, 207, 63, 24, 235, 40, 202, 176, 24, 235, 40, 202, 177, 251, 154, 24, + 235, 40, 233, 225, 211, 27, 198, 146, 24, 235, 40, 230, 226, 24, 229, + 235, 24, 229, 236, 206, 193, 24, 229, 236, 215, 171, 201, 52, 24, 229, + 236, 215, 171, 198, 149, 24, 229, 236, 215, 173, 201, 52, 24, 229, 236, + 215, 171, 238, 164, 24, 229, 236, 215, 173, 238, 164, 24, 229, 236, 215, + 176, 243, 10, 24, 233, 104, 236, 233, 209, 25, 213, 14, 232, 133, 198, + 147, 24, 233, 104, 236, 233, 209, 25, 213, 14, 133, 211, 57, 235, 123, + 24, 233, 104, 236, 233, 209, 25, 213, 14, 133, 211, 57, 144, 198, 147, + 24, 233, 191, 201, 53, 196, 77, 24, 233, 191, 201, 53, 214, 81, 24, 233, + 191, 201, 53, 235, 123, 24, 235, 107, 233, 191, 214, 82, 235, 123, 24, + 235, 107, 233, 191, 144, 214, 81, 24, 235, 107, 233, 191, 133, 214, 81, + 24, 235, 107, 233, 191, 214, 82, 196, 77, 24, 232, 151, 214, 81, 24, 232, + 151, 239, 35, 24, 232, 151, 193, 7, 24, 233, 186, 211, 76, 24, 233, 186, + 201, 185, 24, 233, 186, 242, 218, 24, 233, 194, 248, 130, 202, 169, 24, + 233, 194, 248, 130, 215, 128, 24, 233, 186, 132, 211, 76, 24, 233, 186, + 193, 78, 211, 76, 24, 233, 186, 132, 242, 218, 24, 233, 186, 193, 76, + 215, 175, 24, 233, 194, 193, 58, 24, 233, 187, 196, 77, 24, 233, 187, + 235, 123, 24, 233, 187, 232, 180, 24, 233, 189, 201, 52, 24, 233, 189, + 201, 53, 235, 133, 24, 233, 189, 201, 53, 251, 154, 24, 233, 190, 201, + 52, 24, 233, 190, 201, 53, 235, 133, 24, 233, 190, 201, 53, 251, 154, 24, + 233, 189, 238, 162, 24, 233, 190, 238, 162, 24, 233, 189, 243, 5, 24, + 243, 121, 208, 155, 24, 243, 121, 214, 81, 24, 243, 121, 200, 218, 24, + 199, 89, 243, 121, 229, 135, 24, 199, 89, 243, 121, 216, 84, 24, 199, 89, + 243, 121, 218, 241, 24, 234, 209, 24, 213, 14, 214, 81, 24, 213, 14, 239, + 35, 24, 213, 14, 193, 5, 24, 213, 14, 193, 73, 24, 251, 226, 248, 116, + 211, 14, 24, 251, 226, 200, 217, 223, 162, 24, 251, 226, 248, 118, 2, + 206, 117, 24, 251, 226, 200, 219, 2, 206, 117, 24, 248, 39, 223, 134, 24, + 248, 39, 233, 214, 24, 215, 180, 242, 219, 214, 81, 24, 215, 180, 242, + 219, 232, 132, 24, 215, 180, 242, 219, 239, 35, 24, 215, 180, 202, 65, + 24, 215, 180, 202, 66, 193, 7, 24, 215, 180, 202, 66, 211, 76, 24, 215, + 180, 232, 93, 24, 215, 180, 232, 94, 193, 7, 24, 215, 180, 232, 94, 211, + 76, 24, 215, 180, 211, 77, 243, 10, 24, 215, 180, 211, 77, 232, 132, 24, + 215, 180, 211, 77, 193, 7, 24, 215, 180, 211, 77, 211, 7, 24, 215, 180, + 211, 77, 211, 8, 193, 7, 24, 215, 180, 211, 77, 211, 8, 192, 88, 24, 215, + 180, 211, 77, 207, 92, 24, 215, 180, 211, 77, 207, 93, 193, 7, 24, 215, + 180, 211, 77, 207, 93, 192, 88, 24, 215, 180, 221, 122, 24, 215, 180, + 221, 123, 232, 132, 24, 215, 180, 221, 123, 193, 7, 24, 215, 180, 199, + 88, 24, 215, 180, 199, 89, 232, 132, 24, 215, 180, 199, 89, 200, 218, 24, + 219, 97, 208, 219, 198, 87, 24, 219, 99, 110, 139, 196, 74, 24, 219, 99, + 116, 139, 218, 236, 24, 215, 180, 239, 0, 24, 215, 180, 193, 6, 202, 169, + 24, 215, 180, 193, 6, 235, 133, 24, 198, 62, 201, 74, 211, 15, 233, 75, + 24, 198, 62, 219, 142, 219, 96, 24, 198, 62, 198, 136, 248, 210, 219, 96, + 24, 198, 62, 198, 136, 198, 35, 223, 118, 215, 179, 24, 198, 62, 223, + 118, 215, 180, 207, 63, 24, 198, 62, 215, 170, 251, 251, 243, 122, 24, + 198, 62, 247, 22, 201, 74, 211, 14, 24, 198, 62, 247, 22, 223, 118, 215, + 179, 24, 199, 117, 24, 199, 118, 215, 175, 24, 199, 118, 211, 105, 198, + 61, 24, 199, 118, 211, 105, 198, 62, 215, 175, 24, 199, 118, 211, 105, + 219, 96, 24, 199, 118, 211, 105, 219, 97, 215, 175, 24, 199, 118, 248, + 146, 219, 96, 24, 215, 171, 223, 14, 24, 215, 173, 223, 14, 24, 214, 112, + 24, 230, 78, 24, 233, 217, 24, 203, 22, 229, 123, 201, 219, 24, 203, 22, + 229, 123, 209, 23, 24, 193, 165, 203, 22, 229, 123, 215, 178, 24, 232, + 192, 203, 22, 229, 123, 215, 178, 24, 203, 22, 198, 148, 232, 98, 193, + 172, 24, 198, 43, 201, 53, 201, 37, 24, 198, 43, 238, 163, 248, 227, 24, + 198, 44, 197, 16, 24, 116, 248, 105, 198, 148, 232, 98, 229, 123, 222, + 195, 24, 219, 124, 242, 79, 24, 219, 124, 219, 197, 24, 219, 124, 219, + 196, 24, 219, 124, 219, 195, 24, 219, 124, 219, 194, 24, 219, 124, 219, + 193, 24, 219, 124, 219, 192, 24, 219, 124, 219, 191, 24, 232, 252, 24, + 219, 37, 201, 247, 24, 219, 38, 201, 247, 24, 219, 40, 229, 208, 24, 219, + 40, 193, 74, 24, 219, 40, 237, 92, 24, 219, 40, 229, 236, 214, 112, 24, + 219, 40, 198, 45, 24, 219, 40, 219, 123, 237, 9, 24, 242, 74, 24, 232, + 80, 201, 63, 24, 204, 25, 24, 242, 83, 24, 210, 113, 24, 233, 6, 215, + 244, 24, 233, 6, 215, 243, 24, 233, 6, 215, 242, 24, 233, 6, 215, 241, + 24, 233, 6, 215, 240, 24, 206, 121, 215, 244, 24, 206, 121, 215, 243, 24, + 206, 121, 215, 242, 24, 206, 121, 215, 241, 24, 206, 121, 215, 240, 24, + 206, 121, 215, 239, 24, 206, 121, 215, 238, 24, 206, 121, 215, 237, 24, + 206, 121, 215, 251, 24, 206, 121, 215, 250, 24, 206, 121, 215, 249, 24, + 206, 121, 215, 248, 24, 206, 121, 215, 247, 24, 206, 121, 215, 246, 24, + 206, 121, 215, 245, 8, 2, 1, 233, 37, 237, 3, 4, 197, 228, 8, 2, 1, 207, + 18, 27, 232, 51, 8, 1, 2, 6, 153, 232, 51, 8, 2, 1, 207, 18, 222, 152, 8, + 1, 2, 6, 220, 143, 4, 248, 231, 8, 2, 1, 219, 163, 4, 207, 24, 102, 8, 2, + 1, 153, 192, 160, 4, 248, 231, 8, 2, 1, 207, 18, 234, 88, 8, 2, 1, 153, + 207, 222, 4, 179, 219, 213, 23, 207, 24, 102, 8, 2, 1, 200, 44, 4, 228, + 251, 23, 207, 24, 102, 8, 1, 207, 24, 242, 232, 4, 207, 24, 102, 8, 2, 1, + 234, 13, 4, 55, 164, 8, 2, 1, 234, 13, 4, 55, 249, 88, 23, 238, 175, 8, + 2, 1, 153, 200, 44, 4, 238, 175, 8, 1, 223, 93, 231, 11, 201, 64, 4, 238, + 175, 8, 1, 201, 36, 247, 194, 4, 238, 175, 8, 1, 2, 6, 153, 222, 152, 8, + 2, 1, 220, 143, 4, 232, 233, 8, 2, 1, 237, 70, 237, 3, 4, 210, 192, 102, + 8, 2, 1, 220, 143, 4, 248, 232, 23, 210, 192, 102, 8, 2, 1, 234, 89, 4, + 210, 192, 102, 8, 2, 1, 153, 207, 222, 4, 210, 192, 102, 8, 2, 1, 207, + 222, 4, 232, 234, 23, 210, 192, 102, 8, 2, 1, 199, 79, 237, 3, 4, 210, + 192, 102, 8, 2, 1, 233, 179, 4, 210, 192, 102, 8, 2, 1, 237, 70, 237, 3, + 4, 207, 24, 102, 8, 2, 1, 228, 74, 4, 201, 28, 23, 207, 24, 102, 8, 2, 1, + 187, 4, 207, 24, 102, 8, 2, 1, 199, 79, 237, 3, 4, 207, 24, 102, 8, 2, 1, + 247, 194, 4, 207, 24, 102, 8, 2, 1, 206, 9, 4, 238, 175, 8, 2, 1, 238, + 128, 4, 216, 86, 45, 102, 8, 2, 1, 220, 143, 4, 216, 86, 45, 102, 8, 2, + 1, 215, 62, 4, 216, 86, 45, 102, 8, 2, 1, 207, 222, 4, 216, 86, 45, 102, + 8, 2, 1, 206, 9, 4, 216, 86, 45, 102, 8, 2, 1, 200, 44, 4, 216, 86, 45, + 102, 33, 135, 1, 250, 122, 33, 135, 1, 247, 252, 33, 135, 1, 195, 151, + 33, 135, 1, 231, 18, 33, 135, 1, 236, 169, 33, 135, 1, 192, 49, 33, 135, + 1, 191, 55, 33, 135, 1, 191, 82, 33, 135, 1, 223, 39, 33, 135, 1, 89, + 223, 39, 33, 135, 1, 68, 33, 135, 1, 236, 190, 33, 135, 1, 222, 94, 33, + 135, 1, 219, 75, 33, 135, 1, 215, 66, 33, 135, 1, 214, 210, 33, 135, 1, + 211, 89, 33, 135, 1, 209, 55, 33, 135, 1, 206, 179, 33, 135, 1, 202, 77, + 33, 135, 1, 197, 44, 33, 135, 1, 196, 124, 33, 135, 1, 232, 101, 33, 135, + 1, 229, 188, 33, 135, 1, 203, 8, 33, 135, 1, 197, 146, 33, 135, 1, 243, + 54, 33, 135, 1, 203, 165, 33, 135, 1, 192, 58, 33, 135, 1, 192, 60, 33, + 135, 1, 192, 93, 33, 135, 1, 191, 225, 33, 135, 1, 2, 191, 190, 33, 135, + 1, 192, 12, 33, 135, 1, 223, 82, 2, 191, 190, 33, 135, 1, 248, 175, 191, + 190, 33, 135, 1, 223, 82, 248, 175, 191, 190, 33, 135, 1, 232, 228, 52, + 1, 38, 2, 65, 52, 1, 38, 2, 249, 17, 52, 1, 38, 2, 195, 153, 52, 1, 38, + 2, 231, 77, 52, 1, 38, 2, 237, 146, 52, 1, 38, 2, 223, 226, 52, 1, 38, 2, + 191, 62, 52, 1, 38, 2, 191, 87, 52, 1, 38, 2, 68, 52, 1, 38, 2, 155, 52, + 1, 38, 2, 234, 140, 52, 1, 38, 2, 234, 114, 52, 1, 38, 2, 74, 52, 1, 38, + 2, 210, 63, 52, 1, 38, 2, 234, 34, 52, 1, 38, 2, 234, 22, 52, 1, 38, 2, + 199, 145, 52, 1, 38, 2, 66, 52, 1, 38, 2, 234, 181, 52, 1, 38, 2, 140, + 52, 1, 38, 2, 197, 161, 52, 1, 38, 2, 243, 127, 52, 1, 38, 2, 203, 165, + 52, 1, 38, 2, 192, 58, 52, 1, 38, 2, 71, 52, 1, 38, 2, 191, 225, 52, 1, + 38, 2, 235, 17, 52, 1, 38, 2, 205, 86, 52, 1, 38, 2, 247, 203, 68, 52, 1, + 38, 2, 223, 10, 52, 1, 38, 2, 249, 82, 74, 52, 1, 38, 2, 201, 53, 66, 52, + 1, 38, 2, 210, 179, 38, 200, 230, 2, 1, 65, 38, 200, 230, 2, 1, 249, 17, + 38, 200, 230, 2, 1, 195, 153, 38, 200, 230, 2, 1, 231, 77, 38, 200, 230, + 2, 1, 237, 146, 38, 200, 230, 2, 1, 223, 226, 38, 200, 230, 2, 1, 191, + 62, 38, 200, 230, 2, 1, 191, 87, 38, 200, 230, 2, 1, 68, 38, 200, 230, 2, + 1, 155, 38, 200, 230, 2, 1, 234, 140, 38, 200, 230, 2, 1, 74, 38, 200, + 230, 2, 1, 210, 63, 38, 200, 230, 2, 1, 234, 22, 38, 200, 230, 2, 1, 66, + 38, 200, 230, 2, 1, 234, 181, 38, 200, 230, 2, 1, 140, 38, 200, 230, 2, + 1, 197, 161, 38, 200, 230, 2, 1, 243, 127, 38, 200, 230, 2, 1, 203, 165, + 38, 200, 230, 2, 1, 230, 17, 56, 38, 200, 230, 2, 1, 192, 58, 38, 200, + 230, 2, 1, 231, 78, 4, 196, 69, 38, 200, 230, 2, 1, 247, 203, 68, 38, + 200, 230, 2, 1, 235, 32, 38, 200, 230, 2, 1, 235, 28, 52, 1, 38, 2, 234, + 23, 4, 237, 87, 52, 1, 38, 2, 192, 59, 4, 249, 147, 192, 62, 52, 1, 38, + 2, 201, 53, 126, 4, 106, 33, 38, 2, 1, 247, 203, 68, 212, 80, 208, 162, + 90, 1, 174, 212, 80, 208, 162, 90, 1, 197, 168, 212, 80, 208, 162, 90, 1, + 212, 199, 212, 80, 208, 162, 90, 1, 190, 190, 212, 80, 208, 162, 90, 1, + 140, 212, 80, 208, 162, 90, 1, 180, 212, 80, 208, 162, 90, 1, 192, 220, + 212, 80, 208, 162, 90, 1, 213, 111, 212, 80, 208, 162, 90, 1, 247, 160, + 212, 80, 208, 162, 90, 1, 173, 212, 80, 208, 162, 90, 1, 188, 212, 80, + 208, 162, 90, 1, 191, 123, 212, 80, 208, 162, 90, 1, 214, 166, 212, 80, + 208, 162, 90, 1, 212, 186, 212, 80, 208, 162, 90, 1, 155, 212, 80, 208, + 162, 90, 1, 238, 32, 212, 80, 208, 162, 90, 1, 212, 101, 212, 80, 208, + 162, 90, 1, 212, 244, 212, 80, 208, 162, 90, 1, 195, 188, 212, 80, 208, + 162, 90, 1, 212, 180, 212, 80, 208, 162, 90, 1, 197, 8, 212, 80, 208, + 162, 90, 1, 233, 109, 212, 80, 208, 162, 90, 1, 165, 212, 80, 208, 162, + 90, 1, 208, 96, 212, 80, 208, 162, 90, 1, 170, 212, 80, 208, 162, 90, 1, + 212, 246, 212, 80, 208, 162, 90, 1, 168, 212, 80, 208, 162, 90, 1, 192, + 175, 212, 80, 208, 162, 90, 1, 212, 248, 212, 80, 208, 162, 90, 1, 236, + 186, 212, 80, 208, 162, 90, 1, 212, 247, 212, 80, 208, 162, 90, 1, 230, + 81, 212, 80, 208, 162, 90, 1, 216, 19, 212, 80, 208, 162, 90, 1, 209, + 110, 212, 80, 208, 162, 90, 1, 231, 240, 212, 80, 208, 162, 90, 1, 206, + 109, 212, 80, 208, 162, 90, 1, 65, 212, 80, 208, 162, 90, 1, 252, 206, + 212, 80, 208, 162, 90, 1, 68, 212, 80, 208, 162, 90, 1, 66, 212, 80, 208, + 162, 90, 1, 74, 212, 80, 208, 162, 90, 1, 211, 87, 212, 80, 208, 162, 90, + 1, 71, 212, 80, 208, 162, 90, 1, 234, 188, 212, 80, 208, 162, 90, 1, 193, + 224, 212, 80, 208, 162, 90, 198, 70, 212, 80, 208, 162, 90, 198, 66, 212, + 80, 208, 162, 90, 198, 67, 212, 80, 208, 162, 90, 198, 64, 212, 80, 208, + 162, 90, 198, 65, 212, 80, 208, 162, 90, 198, 68, 212, 80, 208, 162, 90, + 198, 69, 212, 80, 208, 162, 90, 3, 40, 209, 250, 212, 80, 208, 162, 90, + 3, 40, 199, 3, 212, 80, 208, 162, 90, 3, 40, 219, 39, 212, 80, 208, 162, + 90, 3, 40, 251, 101, 212, 80, 208, 162, 90, 3, 40, 223, 94, 212, 80, 208, + 162, 90, 3, 192, 183, 192, 182, 212, 80, 208, 162, 90, 5, 219, 190, 212, + 80, 208, 162, 90, 17, 191, 77, 212, 80, 208, 162, 90, 17, 107, 212, 80, + 208, 162, 90, 17, 109, 212, 80, 208, 162, 90, 17, 138, 212, 80, 208, 162, + 90, 17, 134, 212, 80, 208, 162, 90, 17, 149, 212, 80, 208, 162, 90, 17, + 169, 212, 80, 208, 162, 90, 17, 175, 212, 80, 208, 162, 90, 17, 171, 212, + 80, 208, 162, 90, 17, 178, 212, 80, 208, 162, 90, 219, 28, 212, 96, 212, + 80, 208, 162, 90, 47, 247, 160, 198, 38, 1, 168, 198, 38, 1, 249, 153, + 198, 38, 1, 190, 190, 198, 38, 1, 238, 32, 198, 38, 1, 155, 198, 38, 1, + 231, 240, 198, 38, 1, 174, 198, 38, 1, 180, 198, 38, 1, 214, 68, 198, 38, + 1, 188, 198, 38, 1, 247, 1, 198, 38, 1, 170, 198, 38, 1, 193, 190, 198, + 38, 1, 223, 32, 198, 38, 1, 140, 198, 38, 1, 165, 198, 38, 1, 173, 198, + 38, 1, 68, 198, 38, 1, 248, 38, 68, 198, 38, 1, 223, 49, 198, 38, 1, 248, + 38, 223, 49, 198, 38, 1, 66, 198, 38, 1, 71, 198, 38, 1, 248, 38, 71, + 198, 38, 1, 234, 65, 198, 38, 1, 248, 38, 234, 65, 198, 38, 1, 74, 198, + 38, 1, 252, 25, 198, 38, 1, 248, 38, 252, 25, 198, 38, 1, 65, 198, 38, 3, + 206, 180, 198, 79, 193, 163, 1, 252, 206, 193, 163, 1, 65, 193, 163, 1, + 249, 153, 193, 163, 1, 247, 160, 193, 163, 1, 238, 32, 193, 163, 1, 231, + 240, 193, 163, 1, 170, 193, 163, 1, 209, 228, 193, 163, 1, 173, 193, 163, + 1, 180, 193, 163, 1, 168, 193, 163, 1, 190, 190, 193, 163, 1, 199, 49, + 193, 163, 1, 233, 109, 193, 163, 1, 188, 193, 163, 1, 203, 165, 193, 163, + 1, 223, 32, 193, 163, 1, 191, 123, 193, 163, 1, 193, 190, 193, 163, 1, + 195, 188, 193, 163, 1, 155, 193, 163, 1, 74, 193, 163, 1, 250, 163, 193, + 163, 1, 165, 193, 163, 1, 174, 193, 163, 1, 221, 215, 193, 163, 1, 140, + 193, 163, 1, 71, 193, 163, 1, 68, 193, 163, 1, 214, 68, 193, 163, 1, 66, + 193, 163, 1, 219, 66, 193, 163, 1, 197, 168, 193, 163, 1, 198, 26, 193, + 163, 1, 211, 94, 193, 163, 1, 252, 165, 193, 163, 1, 251, 122, 193, 163, + 1, 223, 136, 193, 163, 1, 211, 104, 193, 163, 1, 234, 103, 193, 163, 1, + 252, 166, 193, 163, 1, 212, 101, 193, 163, 1, 196, 147, 193, 163, 1, 192, + 24, 193, 163, 163, 197, 67, 193, 163, 163, 197, 66, 193, 163, 163, 221, + 54, 193, 163, 163, 221, 53, 193, 163, 17, 191, 77, 193, 163, 17, 107, + 193, 163, 17, 109, 193, 163, 17, 138, 193, 163, 17, 134, 193, 163, 17, + 149, 193, 163, 17, 169, 193, 163, 17, 175, 193, 163, 17, 171, 193, 163, + 17, 178, 193, 163, 213, 232, 56, 214, 243, 215, 120, 1, 74, 214, 243, + 215, 120, 1, 211, 78, 214, 243, 215, 120, 1, 211, 120, 214, 243, 215, + 120, 1, 210, 242, 214, 243, 215, 120, 1, 211, 94, 214, 243, 215, 120, 1, + 65, 214, 243, 215, 120, 1, 251, 218, 214, 243, 215, 120, 1, 252, 155, + 214, 243, 215, 120, 1, 251, 69, 214, 243, 215, 120, 1, 251, 245, 214, + 243, 215, 120, 1, 68, 214, 243, 215, 120, 1, 223, 68, 214, 243, 215, 120, + 1, 228, 18, 214, 243, 215, 120, 1, 223, 53, 214, 243, 215, 120, 1, 223, + 200, 214, 243, 215, 120, 1, 66, 214, 243, 215, 120, 1, 196, 160, 214, + 243, 215, 120, 1, 196, 158, 214, 243, 215, 120, 1, 196, 128, 214, 243, + 215, 120, 1, 196, 62, 214, 243, 215, 120, 1, 71, 214, 243, 215, 120, 1, + 234, 85, 214, 243, 215, 120, 1, 234, 180, 214, 243, 215, 120, 1, 234, + 114, 214, 243, 215, 120, 1, 234, 103, 214, 243, 215, 120, 1, 233, 245, + 214, 243, 215, 120, 1, 234, 122, 214, 243, 215, 120, 3, 211, 127, 214, + 243, 215, 120, 3, 215, 138, 214, 243, 215, 120, 3, 198, 28, 214, 243, + 215, 120, 3, 223, 193, 214, 243, 215, 120, 3, 200, 161, 214, 243, 215, + 120, 17, 191, 77, 214, 243, 215, 120, 17, 107, 214, 243, 215, 120, 17, + 109, 214, 243, 215, 120, 17, 138, 214, 243, 215, 120, 17, 134, 214, 243, + 215, 120, 17, 149, 214, 243, 215, 120, 17, 169, 214, 243, 215, 120, 17, + 175, 214, 243, 215, 120, 17, 171, 214, 243, 215, 120, 17, 178, 36, 5, + 229, 166, 36, 5, 229, 160, 36, 5, 229, 162, 36, 5, 229, 165, 36, 5, 229, + 163, 36, 5, 229, 164, 36, 5, 229, 161, 36, 5, 230, 147, 229, 170, 36, 5, + 229, 167, 36, 5, 229, 168, 36, 5, 229, 169, 36, 5, 230, 147, 215, 76, 36, + 5, 230, 147, 215, 77, 36, 5, 230, 147, 207, 236, 36, 5, 230, 147, 207, + 237, 36, 5, 230, 147, 207, 238, 36, 5, 230, 147, 247, 207, 36, 5, 230, + 147, 247, 208, 36, 5, 230, 147, 220, 172, 36, 5, 230, 147, 220, 173, 36, + 5, 230, 147, 220, 174, 36, 5, 230, 147, 230, 131, 36, 5, 230, 147, 230, + 132, 36, 5, 230, 147, 230, 133, 36, 5, 230, 147, 232, 58, 36, 5, 230, + 147, 232, 59, 36, 5, 230, 147, 208, 118, 36, 5, 230, 147, 208, 119, 85, + 84, 5, 218, 167, 221, 166, 85, 84, 5, 218, 163, 155, 85, 84, 5, 218, 161, + 220, 232, 85, 84, 5, 218, 37, 222, 13, 85, 84, 5, 218, 7, 222, 22, 85, + 84, 5, 218, 26, 221, 41, 85, 84, 5, 218, 54, 221, 67, 85, 84, 5, 217, + 179, 220, 219, 85, 84, 5, 218, 158, 193, 86, 85, 84, 5, 218, 156, 193, + 190, 85, 84, 5, 218, 154, 193, 0, 85, 84, 5, 217, 232, 193, 114, 85, 84, + 5, 217, 240, 193, 125, 85, 84, 5, 217, 244, 193, 29, 85, 84, 5, 218, 57, + 193, 48, 85, 84, 5, 217, 164, 192, 252, 85, 84, 5, 217, 215, 193, 112, + 85, 84, 5, 218, 41, 192, 240, 85, 84, 5, 218, 53, 192, 242, 85, 84, 5, + 217, 219, 192, 241, 85, 84, 5, 218, 152, 216, 44, 85, 84, 5, 218, 150, + 217, 90, 85, 84, 5, 218, 148, 215, 122, 85, 84, 5, 218, 43, 216, 186, 85, + 84, 5, 218, 8, 215, 231, 85, 84, 5, 217, 204, 215, 148, 85, 84, 5, 217, + 169, 215, 142, 85, 84, 5, 218, 146, 248, 188, 85, 84, 5, 218, 143, 249, + 153, 85, 84, 5, 218, 141, 248, 10, 85, 84, 5, 217, 208, 249, 1, 85, 84, + 5, 218, 5, 249, 17, 85, 84, 5, 217, 255, 248, 97, 85, 84, 5, 217, 220, + 248, 111, 85, 84, 5, 218, 131, 68, 85, 84, 5, 218, 129, 65, 85, 84, 5, + 218, 127, 66, 85, 84, 5, 217, 195, 234, 188, 85, 84, 5, 218, 2, 71, 85, + 84, 5, 217, 193, 211, 87, 85, 84, 5, 217, 211, 74, 85, 84, 5, 217, 221, + 234, 166, 85, 84, 5, 217, 227, 223, 162, 85, 84, 5, 217, 223, 223, 162, + 85, 84, 5, 217, 163, 251, 132, 85, 84, 5, 217, 180, 234, 103, 85, 84, 5, + 218, 116, 202, 222, 85, 84, 5, 218, 114, 188, 85, 84, 5, 218, 112, 201, + 4, 85, 84, 5, 217, 196, 205, 50, 85, 84, 5, 217, 242, 205, 68, 85, 84, 5, + 217, 222, 202, 16, 85, 84, 5, 218, 23, 202, 46, 85, 84, 5, 217, 162, 202, + 215, 85, 84, 5, 218, 102, 219, 146, 85, 84, 5, 218, 100, 173, 85, 84, 5, + 218, 98, 218, 225, 85, 84, 5, 218, 18, 219, 228, 85, 84, 5, 218, 29, 219, + 238, 85, 84, 5, 218, 48, 219, 8, 85, 84, 5, 217, 205, 219, 43, 85, 84, 5, + 217, 248, 179, 219, 238, 85, 84, 5, 218, 124, 237, 44, 85, 84, 5, 218, + 121, 238, 32, 85, 84, 5, 218, 118, 235, 89, 85, 84, 5, 218, 13, 237, 131, + 85, 84, 5, 217, 178, 236, 146, 85, 84, 5, 217, 177, 236, 174, 85, 84, 5, + 218, 110, 198, 193, 85, 84, 5, 218, 107, 190, 190, 85, 84, 5, 218, 105, + 197, 94, 85, 84, 5, 218, 11, 199, 121, 85, 84, 5, 218, 47, 199, 145, 85, + 84, 5, 217, 254, 198, 59, 85, 84, 5, 218, 33, 159, 85, 84, 5, 218, 96, + 222, 244, 85, 84, 5, 218, 93, 223, 32, 85, 84, 5, 218, 91, 222, 182, 85, + 84, 5, 217, 201, 223, 8, 85, 84, 5, 217, 245, 223, 10, 85, 84, 5, 217, + 198, 222, 191, 85, 84, 5, 218, 39, 222, 201, 85, 84, 5, 217, 183, 179, + 222, 201, 85, 84, 5, 218, 89, 192, 33, 85, 84, 5, 218, 86, 170, 85, 84, + 5, 218, 84, 191, 225, 85, 84, 5, 217, 249, 192, 77, 85, 84, 5, 218, 22, + 192, 80, 85, 84, 5, 217, 217, 191, 246, 85, 84, 5, 217, 237, 192, 12, 85, + 84, 5, 218, 80, 233, 23, 85, 84, 5, 218, 78, 233, 109, 85, 84, 5, 218, + 76, 232, 86, 85, 84, 5, 218, 24, 233, 52, 85, 84, 5, 218, 27, 233, 59, + 85, 84, 5, 217, 225, 232, 162, 85, 84, 5, 218, 14, 232, 175, 85, 84, 5, + 217, 161, 232, 85, 85, 84, 5, 218, 1, 233, 80, 85, 84, 5, 218, 74, 213, + 179, 85, 84, 5, 218, 72, 214, 226, 85, 84, 5, 218, 70, 212, 130, 85, 84, + 5, 217, 241, 214, 102, 85, 84, 5, 217, 189, 213, 31, 85, 84, 5, 217, 182, + 229, 158, 85, 84, 5, 218, 65, 140, 85, 84, 5, 217, 172, 228, 159, 85, 84, + 5, 218, 68, 229, 215, 85, 84, 5, 218, 6, 229, 245, 85, 84, 5, 218, 63, + 228, 252, 85, 84, 5, 217, 218, 229, 23, 85, 84, 5, 218, 19, 229, 214, 85, + 84, 5, 217, 230, 228, 245, 85, 84, 5, 218, 49, 229, 128, 85, 84, 5, 217, + 228, 230, 56, 85, 84, 5, 218, 15, 228, 142, 85, 84, 5, 218, 50, 229, 198, + 85, 84, 5, 217, 165, 228, 255, 85, 84, 5, 218, 56, 228, 155, 85, 84, 5, + 218, 12, 214, 33, 85, 84, 5, 218, 61, 214, 47, 85, 84, 5, 218, 20, 214, + 30, 85, 84, 5, 217, 243, 214, 41, 85, 84, 5, 217, 212, 214, 42, 85, 84, + 5, 217, 202, 214, 31, 85, 84, 5, 217, 238, 214, 32, 85, 84, 5, 217, 199, + 214, 46, 85, 84, 5, 217, 231, 214, 29, 85, 84, 5, 218, 16, 179, 214, 42, + 85, 84, 5, 217, 252, 179, 214, 31, 85, 84, 5, 217, 175, 179, 214, 32, 85, + 84, 5, 217, 203, 231, 53, 85, 84, 5, 217, 247, 231, 240, 85, 84, 5, 217, + 190, 230, 179, 85, 84, 5, 217, 168, 231, 157, 85, 84, 5, 217, 192, 230, + 165, 85, 84, 5, 217, 191, 230, 175, 85, 84, 5, 217, 174, 214, 52, 85, 84, + 5, 218, 45, 213, 245, 85, 84, 5, 217, 181, 213, 234, 85, 84, 5, 218, 34, + 209, 185, 85, 84, 5, 218, 3, 168, 85, 84, 5, 218, 52, 208, 165, 85, 84, + 5, 218, 21, 210, 49, 85, 84, 5, 218, 51, 210, 63, 85, 84, 5, 218, 0, 209, + 37, 85, 84, 5, 218, 36, 209, 73, 85, 84, 5, 217, 213, 216, 252, 85, 84, + 5, 218, 40, 217, 11, 85, 84, 5, 217, 236, 216, 246, 85, 84, 5, 218, 55, + 217, 3, 85, 84, 5, 217, 170, 217, 3, 85, 84, 5, 218, 30, 217, 4, 85, 84, + 5, 217, 186, 216, 247, 85, 84, 5, 217, 184, 216, 248, 85, 84, 5, 217, + 171, 216, 240, 85, 84, 5, 217, 197, 179, 217, 4, 85, 84, 5, 217, 253, + 179, 216, 247, 85, 84, 5, 217, 216, 179, 216, 248, 85, 84, 5, 217, 226, + 221, 13, 85, 84, 5, 218, 10, 221, 21, 85, 84, 5, 218, 28, 221, 9, 85, 84, + 5, 218, 59, 221, 16, 85, 84, 5, 217, 250, 221, 17, 85, 84, 5, 217, 246, + 221, 11, 85, 84, 5, 217, 200, 221, 12, 85, 84, 5, 217, 234, 231, 174, 85, + 84, 5, 218, 46, 231, 182, 85, 84, 5, 217, 210, 231, 169, 85, 84, 5, 218, + 9, 231, 178, 85, 84, 5, 217, 251, 231, 179, 85, 84, 5, 218, 31, 231, 170, + 85, 84, 5, 218, 32, 231, 172, 85, 84, 5, 217, 187, 165, 85, 84, 5, 217, + 235, 214, 147, 85, 84, 5, 217, 229, 214, 162, 85, 84, 5, 217, 233, 214, + 129, 85, 84, 5, 217, 167, 214, 153, 85, 84, 5, 217, 239, 214, 154, 85, + 84, 5, 218, 35, 214, 134, 85, 84, 5, 218, 38, 214, 138, 85, 84, 5, 217, + 206, 213, 157, 85, 84, 5, 217, 166, 213, 127, 85, 84, 5, 217, 209, 213, + 148, 85, 84, 5, 217, 224, 213, 131, 85, 84, 5, 217, 176, 195, 69, 85, 84, + 5, 217, 173, 195, 188, 85, 84, 5, 217, 207, 193, 249, 85, 84, 5, 217, + 185, 195, 148, 85, 84, 5, 218, 17, 195, 153, 85, 84, 5, 217, 214, 195, 8, + 85, 84, 5, 218, 25, 195, 24, 85, 84, 5, 217, 194, 212, 74, 85, 84, 5, + 218, 44, 212, 94, 85, 84, 5, 217, 188, 212, 56, 85, 84, 5, 218, 4, 212, + 86, 85, 84, 5, 218, 42, 212, 63, 85, 84, 17, 107, 85, 84, 17, 109, 85, + 84, 17, 138, 85, 84, 17, 134, 85, 84, 17, 149, 85, 84, 17, 169, 85, 84, + 17, 175, 85, 84, 17, 171, 85, 84, 17, 178, 85, 84, 33, 31, 199, 119, 85, + 84, 33, 31, 199, 90, 85, 84, 33, 31, 228, 138, 85, 84, 33, 31, 198, 228, + 85, 84, 33, 31, 199, 96, 198, 228, 85, 84, 33, 31, 228, 141, 198, 228, + 85, 84, 33, 31, 216, 47, 252, 33, 6, 1, 251, 180, 252, 33, 6, 1, 238, 29, + 252, 33, 6, 1, 220, 123, 252, 33, 6, 1, 216, 60, 252, 33, 6, 1, 249, 153, + 252, 33, 6, 1, 202, 164, 252, 33, 6, 1, 210, 63, 252, 33, 6, 1, 248, 196, + 252, 33, 6, 1, 165, 252, 33, 6, 1, 71, 252, 33, 6, 1, 233, 109, 252, 33, + 6, 1, 68, 252, 33, 6, 1, 74, 252, 33, 6, 1, 237, 68, 252, 33, 6, 1, 192, + 34, 252, 33, 6, 1, 193, 133, 252, 33, 6, 1, 212, 130, 252, 33, 6, 1, 222, + 106, 252, 33, 6, 1, 170, 252, 33, 6, 1, 66, 252, 33, 6, 1, 222, 235, 252, + 33, 6, 1, 243, 95, 252, 33, 6, 1, 140, 252, 33, 6, 1, 208, 94, 252, 33, + 6, 1, 231, 240, 252, 33, 6, 1, 212, 101, 252, 33, 6, 1, 197, 94, 252, 33, + 6, 1, 213, 224, 252, 33, 6, 1, 195, 188, 252, 33, 6, 1, 221, 215, 252, + 33, 6, 1, 231, 179, 252, 33, 6, 1, 191, 108, 252, 33, 6, 1, 221, 12, 252, + 33, 6, 1, 203, 165, 252, 33, 2, 1, 251, 180, 252, 33, 2, 1, 238, 29, 252, + 33, 2, 1, 220, 123, 252, 33, 2, 1, 216, 60, 252, 33, 2, 1, 249, 153, 252, + 33, 2, 1, 202, 164, 252, 33, 2, 1, 210, 63, 252, 33, 2, 1, 248, 196, 252, + 33, 2, 1, 165, 252, 33, 2, 1, 71, 252, 33, 2, 1, 233, 109, 252, 33, 2, 1, + 68, 252, 33, 2, 1, 74, 252, 33, 2, 1, 237, 68, 252, 33, 2, 1, 192, 34, + 252, 33, 2, 1, 193, 133, 252, 33, 2, 1, 212, 130, 252, 33, 2, 1, 222, + 106, 252, 33, 2, 1, 170, 252, 33, 2, 1, 66, 252, 33, 2, 1, 222, 235, 252, + 33, 2, 1, 243, 95, 252, 33, 2, 1, 140, 252, 33, 2, 1, 208, 94, 252, 33, + 2, 1, 231, 240, 252, 33, 2, 1, 212, 101, 252, 33, 2, 1, 197, 94, 252, 33, + 2, 1, 213, 224, 252, 33, 2, 1, 195, 188, 252, 33, 2, 1, 221, 215, 252, + 33, 2, 1, 231, 179, 252, 33, 2, 1, 191, 108, 252, 33, 2, 1, 221, 12, 252, + 33, 2, 1, 203, 165, 252, 33, 251, 181, 219, 190, 252, 33, 18, 219, 190, + 252, 33, 231, 153, 77, 252, 33, 230, 57, 252, 33, 120, 215, 252, 252, 33, + 231, 154, 120, 215, 252, 252, 33, 212, 141, 252, 33, 214, 213, 77, 252, + 33, 17, 191, 77, 252, 33, 17, 107, 252, 33, 17, 109, 252, 33, 17, 138, + 252, 33, 17, 134, 252, 33, 17, 149, 252, 33, 17, 169, 252, 33, 17, 175, + 252, 33, 17, 171, 252, 33, 17, 178, 252, 33, 89, 233, 216, 77, 252, 33, + 89, 208, 13, 77, 223, 146, 143, 31, 107, 223, 146, 143, 31, 109, 223, + 146, 143, 31, 138, 223, 146, 143, 31, 134, 223, 146, 143, 31, 149, 223, + 146, 143, 31, 169, 223, 146, 143, 31, 175, 223, 146, 143, 31, 171, 223, + 146, 143, 31, 178, 223, 146, 143, 31, 199, 95, 223, 146, 143, 31, 197, + 32, 223, 146, 143, 31, 198, 249, 223, 146, 143, 31, 232, 135, 223, 146, + 143, 31, 233, 15, 223, 146, 143, 31, 202, 120, 223, 146, 143, 31, 203, + 241, 223, 146, 143, 31, 234, 153, 223, 146, 143, 31, 213, 169, 223, 146, + 143, 31, 91, 228, 140, 223, 146, 143, 31, 105, 228, 140, 223, 146, 143, + 31, 115, 228, 140, 223, 146, 143, 31, 232, 128, 228, 140, 223, 146, 143, + 31, 232, 226, 228, 140, 223, 146, 143, 31, 202, 136, 228, 140, 223, 146, + 143, 31, 203, 247, 228, 140, 223, 146, 143, 31, 234, 164, 228, 140, 223, + 146, 143, 31, 213, 175, 228, 140, 223, 146, 143, 31, 91, 189, 223, 146, + 143, 31, 105, 189, 223, 146, 143, 31, 115, 189, 223, 146, 143, 31, 232, + 128, 189, 223, 146, 143, 31, 232, 226, 189, 223, 146, 143, 31, 202, 136, + 189, 223, 146, 143, 31, 203, 247, 189, 223, 146, 143, 31, 234, 164, 189, + 223, 146, 143, 31, 213, 175, 189, 223, 146, 143, 31, 199, 96, 189, 223, + 146, 143, 31, 197, 33, 189, 223, 146, 143, 31, 198, 250, 189, 223, 146, + 143, 31, 232, 136, 189, 223, 146, 143, 31, 233, 16, 189, 223, 146, 143, + 31, 202, 121, 189, 223, 146, 143, 31, 203, 242, 189, 223, 146, 143, 31, + 234, 154, 189, 223, 146, 143, 31, 213, 170, 189, 223, 146, 143, 31, 220, + 41, 223, 146, 143, 31, 220, 40, 223, 146, 143, 220, 42, 77, 223, 146, + 143, 31, 222, 60, 223, 146, 143, 31, 222, 59, 223, 146, 143, 31, 208, + 227, 107, 223, 146, 143, 31, 208, 227, 109, 223, 146, 143, 31, 208, 227, + 138, 223, 146, 143, 31, 208, 227, 134, 223, 146, 143, 31, 208, 227, 149, + 223, 146, 143, 31, 208, 227, 169, 223, 146, 143, 31, 208, 227, 175, 223, + 146, 143, 31, 208, 227, 171, 223, 146, 143, 31, 208, 227, 178, 223, 146, + 143, 209, 106, 223, 146, 143, 232, 118, 91, 208, 22, 223, 146, 143, 232, + 118, 91, 230, 70, 223, 146, 143, 232, 118, 115, 208, 20, 223, 146, 143, + 206, 36, 77, 223, 146, 143, 31, 251, 157, 107, 223, 146, 143, 31, 251, + 157, 109, 223, 146, 143, 31, 251, 157, 199, 96, 189, 223, 146, 143, 251, + 157, 220, 42, 77, 211, 21, 143, 31, 107, 211, 21, 143, 31, 109, 211, 21, + 143, 31, 138, 211, 21, 143, 31, 134, 211, 21, 143, 31, 149, 211, 21, 143, + 31, 169, 211, 21, 143, 31, 175, 211, 21, 143, 31, 171, 211, 21, 143, 31, + 178, 211, 21, 143, 31, 199, 95, 211, 21, 143, 31, 197, 32, 211, 21, 143, + 31, 198, 249, 211, 21, 143, 31, 232, 135, 211, 21, 143, 31, 233, 15, 211, + 21, 143, 31, 202, 120, 211, 21, 143, 31, 203, 241, 211, 21, 143, 31, 234, + 153, 211, 21, 143, 31, 213, 169, 211, 21, 143, 31, 91, 228, 140, 211, 21, + 143, 31, 105, 228, 140, 211, 21, 143, 31, 115, 228, 140, 211, 21, 143, + 31, 232, 128, 228, 140, 211, 21, 143, 31, 232, 226, 228, 140, 211, 21, + 143, 31, 202, 136, 228, 140, 211, 21, 143, 31, 203, 247, 228, 140, 211, + 21, 143, 31, 234, 164, 228, 140, 211, 21, 143, 31, 213, 175, 228, 140, + 211, 21, 143, 31, 91, 189, 211, 21, 143, 31, 105, 189, 211, 21, 143, 31, + 115, 189, 211, 21, 143, 31, 232, 128, 189, 211, 21, 143, 31, 232, 226, + 189, 211, 21, 143, 31, 202, 136, 189, 211, 21, 143, 31, 203, 247, 189, + 211, 21, 143, 31, 234, 164, 189, 211, 21, 143, 31, 213, 175, 189, 211, + 21, 143, 31, 199, 96, 189, 211, 21, 143, 31, 197, 33, 189, 211, 21, 143, + 31, 198, 250, 189, 211, 21, 143, 31, 232, 136, 189, 211, 21, 143, 31, + 233, 16, 189, 211, 21, 143, 31, 202, 121, 189, 211, 21, 143, 31, 203, + 242, 189, 211, 21, 143, 31, 234, 154, 189, 211, 21, 143, 31, 213, 170, + 189, 211, 21, 143, 217, 49, 211, 21, 143, 251, 157, 31, 109, 211, 21, + 143, 251, 157, 31, 138, 211, 21, 143, 251, 157, 31, 134, 211, 21, 143, + 251, 157, 31, 149, 211, 21, 143, 251, 157, 31, 169, 211, 21, 143, 251, + 157, 31, 175, 211, 21, 143, 251, 157, 31, 171, 211, 21, 143, 251, 157, + 31, 178, 211, 21, 143, 251, 157, 31, 199, 95, 211, 21, 143, 251, 157, 31, + 232, 128, 228, 140, 211, 21, 143, 251, 157, 31, 202, 136, 228, 140, 211, + 21, 143, 251, 157, 31, 105, 189, 211, 21, 143, 251, 157, 31, 199, 96, + 189, 211, 21, 143, 232, 118, 91, 230, 70, 211, 21, 143, 232, 118, 91, + 202, 124, 9, 13, 251, 192, 9, 13, 248, 245, 9, 13, 223, 6, 9, 13, 238, 3, + 9, 13, 193, 133, 9, 13, 191, 113, 9, 13, 230, 81, 9, 13, 199, 219, 9, 13, + 192, 75, 9, 13, 222, 106, 9, 13, 220, 35, 9, 13, 216, 208, 9, 13, 213, + 24, 9, 13, 205, 46, 9, 13, 251, 230, 9, 13, 233, 46, 9, 13, 205, 192, 9, + 13, 208, 89, 9, 13, 207, 71, 9, 13, 203, 109, 9, 13, 199, 114, 9, 13, + 199, 29, 9, 13, 221, 210, 9, 13, 199, 41, 9, 13, 238, 26, 9, 13, 191, + 116, 9, 13, 231, 86, 9, 13, 236, 139, 248, 245, 9, 13, 236, 139, 213, 24, + 9, 13, 236, 139, 233, 46, 9, 13, 236, 139, 208, 89, 9, 13, 89, 248, 245, + 9, 13, 89, 223, 6, 9, 13, 89, 229, 210, 9, 13, 89, 230, 81, 9, 13, 89, + 192, 75, 9, 13, 89, 222, 106, 9, 13, 89, 220, 35, 9, 13, 89, 216, 208, 9, + 13, 89, 213, 24, 9, 13, 89, 205, 46, 9, 13, 89, 251, 230, 9, 13, 89, 233, + 46, 9, 13, 89, 205, 192, 9, 13, 89, 208, 89, 9, 13, 89, 203, 109, 9, 13, + 89, 199, 114, 9, 13, 89, 199, 29, 9, 13, 89, 221, 210, 9, 13, 89, 238, + 26, 9, 13, 89, 231, 86, 9, 13, 199, 214, 223, 6, 9, 13, 199, 214, 230, + 81, 9, 13, 199, 214, 192, 75, 9, 13, 199, 214, 220, 35, 9, 13, 199, 214, + 213, 24, 9, 13, 199, 214, 205, 46, 9, 13, 199, 214, 251, 230, 9, 13, 199, + 214, 205, 192, 9, 13, 199, 214, 208, 89, 9, 13, 199, 214, 203, 109, 9, + 13, 199, 214, 221, 210, 9, 13, 199, 214, 238, 26, 9, 13, 199, 214, 231, + 86, 9, 13, 199, 214, 236, 139, 213, 24, 9, 13, 199, 214, 236, 139, 208, + 89, 9, 13, 201, 36, 248, 245, 9, 13, 201, 36, 223, 6, 9, 13, 201, 36, + 229, 210, 9, 13, 201, 36, 230, 81, 9, 13, 201, 36, 199, 219, 9, 13, 201, + 36, 192, 75, 9, 13, 201, 36, 222, 106, 9, 13, 201, 36, 216, 208, 9, 13, + 201, 36, 213, 24, 9, 13, 201, 36, 205, 46, 9, 13, 201, 36, 251, 230, 9, + 13, 201, 36, 233, 46, 9, 13, 201, 36, 205, 192, 9, 13, 201, 36, 208, 89, + 9, 13, 201, 36, 203, 109, 9, 13, 201, 36, 199, 114, 9, 13, 201, 36, 199, + 29, 9, 13, 201, 36, 221, 210, 9, 13, 201, 36, 238, 26, 9, 13, 201, 36, + 191, 116, 9, 13, 201, 36, 231, 86, 9, 13, 201, 36, 236, 139, 248, 245, 9, + 13, 201, 36, 236, 139, 233, 46, 9, 13, 219, 3, 251, 192, 9, 13, 219, 3, + 248, 245, 9, 13, 219, 3, 223, 6, 9, 13, 219, 3, 238, 3, 9, 13, 219, 3, + 229, 210, 9, 13, 219, 3, 193, 133, 9, 13, 219, 3, 191, 113, 9, 13, 219, + 3, 230, 81, 9, 13, 219, 3, 199, 219, 9, 13, 219, 3, 192, 75, 9, 13, 219, + 3, 220, 35, 9, 13, 219, 3, 216, 208, 9, 13, 219, 3, 213, 24, 9, 13, 219, + 3, 205, 46, 9, 13, 219, 3, 251, 230, 9, 13, 219, 3, 233, 46, 9, 13, 219, + 3, 205, 192, 9, 13, 219, 3, 208, 89, 9, 13, 219, 3, 207, 71, 9, 13, 219, + 3, 203, 109, 9, 13, 219, 3, 199, 114, 9, 13, 219, 3, 199, 29, 9, 13, 219, + 3, 221, 210, 9, 13, 219, 3, 199, 41, 9, 13, 219, 3, 238, 26, 9, 13, 219, + 3, 191, 116, 9, 13, 219, 3, 231, 86, 9, 13, 235, 129, 248, 245, 9, 13, + 235, 129, 223, 6, 9, 13, 235, 129, 238, 3, 9, 13, 235, 129, 193, 133, 9, + 13, 235, 129, 191, 113, 9, 13, 235, 129, 230, 81, 9, 13, 235, 129, 199, + 219, 9, 13, 235, 129, 192, 75, 9, 13, 235, 129, 220, 35, 9, 13, 235, 129, + 216, 208, 9, 13, 235, 129, 213, 24, 9, 13, 235, 129, 205, 46, 9, 13, 235, + 129, 251, 230, 9, 13, 235, 129, 233, 46, 9, 13, 235, 129, 205, 192, 9, + 13, 235, 129, 208, 89, 9, 13, 235, 129, 207, 71, 9, 13, 235, 129, 203, + 109, 9, 13, 235, 129, 199, 114, 9, 13, 235, 129, 199, 29, 9, 13, 235, + 129, 221, 210, 9, 13, 235, 129, 199, 41, 9, 13, 235, 129, 238, 26, 9, 13, + 235, 129, 191, 116, 9, 13, 235, 129, 231, 86, 9, 13, 211, 67, 92, 4, 182, + 4, 199, 168, 9, 13, 211, 67, 182, 4, 238, 3, 217, 114, 123, 234, 204, + 193, 66, 217, 114, 123, 202, 2, 193, 66, 217, 114, 123, 193, 105, 193, + 66, 217, 114, 123, 186, 193, 66, 217, 114, 123, 207, 87, 235, 111, 217, + 114, 123, 230, 201, 235, 111, 217, 114, 123, 63, 235, 111, 217, 114, 123, + 91, 79, 243, 140, 217, 114, 123, 105, 79, 243, 140, 217, 114, 123, 115, + 79, 243, 140, 217, 114, 123, 232, 128, 79, 243, 140, 217, 114, 123, 232, + 226, 79, 243, 140, 217, 114, 123, 202, 136, 79, 243, 140, 217, 114, 123, + 203, 247, 79, 243, 140, 217, 114, 123, 234, 164, 79, 243, 140, 217, 114, + 123, 213, 175, 79, 243, 140, 217, 114, 123, 91, 79, 249, 102, 217, 114, + 123, 105, 79, 249, 102, 217, 114, 123, 115, 79, 249, 102, 217, 114, 123, + 232, 128, 79, 249, 102, 217, 114, 123, 232, 226, 79, 249, 102, 217, 114, + 123, 202, 136, 79, 249, 102, 217, 114, 123, 203, 247, 79, 249, 102, 217, + 114, 123, 234, 164, 79, 249, 102, 217, 114, 123, 213, 175, 79, 249, 102, + 217, 114, 123, 91, 79, 243, 7, 217, 114, 123, 105, 79, 243, 7, 217, 114, + 123, 115, 79, 243, 7, 217, 114, 123, 232, 128, 79, 243, 7, 217, 114, 123, + 232, 226, 79, 243, 7, 217, 114, 123, 202, 136, 79, 243, 7, 217, 114, 123, + 203, 247, 79, 243, 7, 217, 114, 123, 234, 164, 79, 243, 7, 217, 114, 123, + 213, 175, 79, 243, 7, 217, 114, 123, 209, 85, 217, 114, 123, 211, 53, + 217, 114, 123, 249, 103, 217, 114, 123, 243, 49, 217, 114, 123, 201, 196, + 217, 114, 123, 200, 200, 217, 114, 123, 250, 149, 217, 114, 123, 193, 56, + 217, 114, 123, 222, 194, 217, 114, 123, 249, 146, 236, 151, 123, 228, + 241, 249, 146, 236, 151, 123, 228, 239, 236, 151, 123, 228, 238, 236, + 151, 123, 228, 237, 236, 151, 123, 228, 236, 236, 151, 123, 228, 235, + 236, 151, 123, 228, 234, 236, 151, 123, 228, 233, 236, 151, 123, 228, + 232, 236, 151, 123, 228, 231, 236, 151, 123, 228, 230, 236, 151, 123, + 228, 229, 236, 151, 123, 228, 228, 236, 151, 123, 228, 227, 236, 151, + 123, 228, 226, 236, 151, 123, 228, 225, 236, 151, 123, 228, 224, 236, + 151, 123, 228, 223, 236, 151, 123, 228, 222, 236, 151, 123, 228, 221, + 236, 151, 123, 228, 220, 236, 151, 123, 228, 219, 236, 151, 123, 228, + 218, 236, 151, 123, 228, 217, 236, 151, 123, 228, 216, 236, 151, 123, + 228, 215, 236, 151, 123, 228, 214, 236, 151, 123, 228, 213, 236, 151, + 123, 228, 212, 236, 151, 123, 228, 211, 236, 151, 123, 228, 210, 236, + 151, 123, 228, 209, 236, 151, 123, 228, 208, 236, 151, 123, 228, 207, + 236, 151, 123, 228, 206, 236, 151, 123, 228, 205, 236, 151, 123, 228, + 204, 236, 151, 123, 228, 203, 236, 151, 123, 228, 202, 236, 151, 123, + 228, 201, 236, 151, 123, 228, 200, 236, 151, 123, 228, 199, 236, 151, + 123, 228, 198, 236, 151, 123, 228, 197, 236, 151, 123, 228, 196, 236, + 151, 123, 228, 195, 236, 151, 123, 228, 194, 236, 151, 123, 228, 193, + 236, 151, 123, 228, 192, 236, 151, 123, 228, 191, 236, 151, 123, 81, 249, + 146, 236, 151, 123, 195, 134, 236, 151, 123, 195, 133, 236, 151, 123, + 195, 132, 236, 151, 123, 195, 131, 236, 151, 123, 195, 130, 236, 151, + 123, 195, 129, 236, 151, 123, 195, 128, 236, 151, 123, 195, 127, 236, + 151, 123, 195, 126, 236, 151, 123, 195, 125, 236, 151, 123, 195, 124, + 236, 151, 123, 195, 123, 236, 151, 123, 195, 122, 236, 151, 123, 195, + 121, 236, 151, 123, 195, 120, 236, 151, 123, 195, 119, 236, 151, 123, + 195, 118, 236, 151, 123, 195, 117, 236, 151, 123, 195, 116, 236, 151, + 123, 195, 115, 236, 151, 123, 195, 114, 236, 151, 123, 195, 113, 236, + 151, 123, 195, 112, 236, 151, 123, 195, 111, 236, 151, 123, 195, 110, + 236, 151, 123, 195, 109, 236, 151, 123, 195, 108, 236, 151, 123, 195, + 107, 236, 151, 123, 195, 106, 236, 151, 123, 195, 105, 236, 151, 123, + 195, 104, 236, 151, 123, 195, 103, 236, 151, 123, 195, 102, 236, 151, + 123, 195, 101, 236, 151, 123, 195, 100, 236, 151, 123, 195, 99, 236, 151, + 123, 195, 98, 236, 151, 123, 195, 97, 236, 151, 123, 195, 96, 236, 151, + 123, 195, 95, 236, 151, 123, 195, 94, 236, 151, 123, 195, 93, 236, 151, + 123, 195, 92, 236, 151, 123, 195, 91, 236, 151, 123, 195, 90, 236, 151, + 123, 195, 89, 236, 151, 123, 195, 88, 236, 151, 123, 195, 87, 236, 151, + 123, 195, 86, 209, 95, 247, 101, 249, 146, 209, 95, 247, 101, 252, 53, + 79, 201, 244, 209, 95, 247, 101, 105, 79, 201, 244, 209, 95, 247, 101, + 115, 79, 201, 244, 209, 95, 247, 101, 232, 128, 79, 201, 244, 209, 95, + 247, 101, 232, 226, 79, 201, 244, 209, 95, 247, 101, 202, 136, 79, 201, + 244, 209, 95, 247, 101, 203, 247, 79, 201, 244, 209, 95, 247, 101, 234, + 164, 79, 201, 244, 209, 95, 247, 101, 213, 175, 79, 201, 244, 209, 95, + 247, 101, 199, 96, 79, 201, 244, 209, 95, 247, 101, 223, 30, 79, 201, + 244, 209, 95, 247, 101, 221, 77, 79, 201, 244, 209, 95, 247, 101, 208, + 15, 79, 201, 244, 209, 95, 247, 101, 221, 139, 79, 201, 244, 209, 95, + 247, 101, 252, 53, 79, 229, 221, 209, 95, 247, 101, 105, 79, 229, 221, + 209, 95, 247, 101, 115, 79, 229, 221, 209, 95, 247, 101, 232, 128, 79, + 229, 221, 209, 95, 247, 101, 232, 226, 79, 229, 221, 209, 95, 247, 101, + 202, 136, 79, 229, 221, 209, 95, 247, 101, 203, 247, 79, 229, 221, 209, + 95, 247, 101, 234, 164, 79, 229, 221, 209, 95, 247, 101, 213, 175, 79, + 229, 221, 209, 95, 247, 101, 199, 96, 79, 229, 221, 209, 95, 247, 101, + 223, 30, 79, 229, 221, 209, 95, 247, 101, 221, 77, 79, 229, 221, 209, 95, + 247, 101, 208, 15, 79, 229, 221, 209, 95, 247, 101, 221, 139, 79, 229, + 221, 209, 95, 247, 101, 207, 87, 222, 194, 209, 95, 247, 101, 252, 53, + 79, 237, 31, 209, 95, 247, 101, 105, 79, 237, 31, 209, 95, 247, 101, 115, + 79, 237, 31, 209, 95, 247, 101, 232, 128, 79, 237, 31, 209, 95, 247, 101, + 232, 226, 79, 237, 31, 209, 95, 247, 101, 202, 136, 79, 237, 31, 209, 95, + 247, 101, 203, 247, 79, 237, 31, 209, 95, 247, 101, 234, 164, 79, 237, + 31, 209, 95, 247, 101, 213, 175, 79, 237, 31, 209, 95, 247, 101, 199, 96, + 79, 237, 31, 209, 95, 247, 101, 223, 30, 79, 237, 31, 209, 95, 247, 101, + 221, 77, 79, 237, 31, 209, 95, 247, 101, 208, 15, 79, 237, 31, 209, 95, + 247, 101, 221, 139, 79, 237, 31, 209, 95, 247, 101, 62, 222, 194, 209, + 95, 247, 101, 252, 53, 79, 242, 204, 209, 95, 247, 101, 105, 79, 242, + 204, 209, 95, 247, 101, 115, 79, 242, 204, 209, 95, 247, 101, 232, 128, + 79, 242, 204, 209, 95, 247, 101, 232, 226, 79, 242, 204, 209, 95, 247, + 101, 202, 136, 79, 242, 204, 209, 95, 247, 101, 203, 247, 79, 242, 204, + 209, 95, 247, 101, 234, 164, 79, 242, 204, 209, 95, 247, 101, 213, 175, + 79, 242, 204, 209, 95, 247, 101, 199, 96, 79, 242, 204, 209, 95, 247, + 101, 223, 30, 79, 242, 204, 209, 95, 247, 101, 221, 77, 79, 242, 204, + 209, 95, 247, 101, 208, 15, 79, 242, 204, 209, 95, 247, 101, 221, 139, + 79, 242, 204, 209, 95, 247, 101, 63, 222, 194, 209, 95, 247, 101, 232, + 160, 209, 95, 247, 101, 197, 200, 209, 95, 247, 101, 197, 189, 209, 95, + 247, 101, 197, 186, 209, 95, 247, 101, 197, 185, 209, 95, 247, 101, 197, + 184, 209, 95, 247, 101, 197, 183, 209, 95, 247, 101, 197, 182, 209, 95, + 247, 101, 197, 181, 209, 95, 247, 101, 197, 180, 209, 95, 247, 101, 197, + 199, 209, 95, 247, 101, 197, 198, 209, 95, 247, 101, 197, 197, 209, 95, + 247, 101, 197, 196, 209, 95, 247, 101, 197, 195, 209, 95, 247, 101, 197, + 194, 209, 95, 247, 101, 197, 193, 209, 95, 247, 101, 197, 192, 209, 95, + 247, 101, 197, 191, 209, 95, 247, 101, 197, 190, 209, 95, 247, 101, 197, + 188, 209, 95, 247, 101, 197, 187, 17, 191, 78, 232, 80, 201, 63, 17, 191, + 78, 242, 74, 17, 91, 242, 74, 17, 105, 242, 74, 17, 115, 242, 74, 17, + 232, 128, 242, 74, 17, 232, 226, 242, 74, 17, 202, 136, 242, 74, 17, 203, + 247, 242, 74, 17, 234, 164, 242, 74, 17, 213, 175, 242, 74, 236, 241, 47, + 49, 17, 191, 77, 236, 241, 214, 106, 47, 49, 17, 191, 77, 47, 191, 78, 4, + 202, 97, 47, 251, 85, 57, 47, 236, 155, 3, 4, 211, 4, 249, 141, 127, 8, + 6, 1, 65, 127, 8, 6, 1, 250, 120, 127, 8, 6, 1, 247, 193, 127, 8, 6, 1, + 238, 127, 127, 8, 6, 1, 71, 127, 8, 6, 1, 233, 175, 127, 8, 6, 1, 232, + 51, 127, 8, 6, 1, 230, 116, 127, 8, 6, 1, 68, 127, 8, 6, 1, 223, 35, 127, + 8, 6, 1, 222, 152, 127, 8, 6, 1, 172, 127, 8, 6, 1, 218, 168, 127, 8, 6, + 1, 215, 61, 127, 8, 6, 1, 74, 127, 8, 6, 1, 210, 236, 127, 8, 6, 1, 208, + 104, 127, 8, 6, 1, 146, 127, 8, 6, 1, 206, 8, 127, 8, 6, 1, 200, 43, 127, + 8, 6, 1, 66, 127, 8, 6, 1, 196, 12, 127, 8, 6, 1, 193, 224, 127, 8, 6, 1, + 192, 235, 127, 8, 6, 1, 192, 159, 127, 8, 6, 1, 191, 166, 198, 42, 203, + 103, 248, 52, 8, 6, 1, 206, 8, 47, 43, 8, 6, 1, 247, 193, 47, 43, 8, 6, + 1, 146, 47, 247, 43, 47, 192, 237, 239, 7, 113, 112, 8, 6, 1, 65, 112, 8, + 6, 1, 250, 120, 112, 8, 6, 1, 247, 193, 112, 8, 6, 1, 238, 127, 112, 8, + 6, 1, 71, 112, 8, 6, 1, 233, 175, 112, 8, 6, 1, 232, 51, 112, 8, 6, 1, + 230, 116, 112, 8, 6, 1, 68, 112, 8, 6, 1, 223, 35, 112, 8, 6, 1, 222, + 152, 112, 8, 6, 1, 172, 112, 8, 6, 1, 218, 168, 112, 8, 6, 1, 215, 61, + 112, 8, 6, 1, 74, 112, 8, 6, 1, 210, 236, 112, 8, 6, 1, 208, 104, 112, 8, + 6, 1, 146, 112, 8, 6, 1, 206, 8, 112, 8, 6, 1, 200, 43, 112, 8, 6, 1, 66, + 112, 8, 6, 1, 196, 12, 112, 8, 6, 1, 193, 224, 112, 8, 6, 1, 192, 235, + 112, 8, 6, 1, 192, 159, 112, 8, 6, 1, 191, 166, 112, 228, 126, 112, 215, + 87, 112, 205, 70, 112, 201, 178, 112, 208, 248, 112, 193, 126, 214, 106, + 47, 8, 6, 1, 65, 214, 106, 47, 8, 6, 1, 250, 120, 214, 106, 47, 8, 6, 1, + 247, 193, 214, 106, 47, 8, 6, 1, 238, 127, 214, 106, 47, 8, 6, 1, 71, + 214, 106, 47, 8, 6, 1, 233, 175, 214, 106, 47, 8, 6, 1, 232, 51, 214, + 106, 47, 8, 6, 1, 230, 116, 214, 106, 47, 8, 6, 1, 68, 214, 106, 47, 8, + 6, 1, 223, 35, 214, 106, 47, 8, 6, 1, 222, 152, 214, 106, 47, 8, 6, 1, + 172, 214, 106, 47, 8, 6, 1, 218, 168, 214, 106, 47, 8, 6, 1, 215, 61, + 214, 106, 47, 8, 6, 1, 74, 214, 106, 47, 8, 6, 1, 210, 236, 214, 106, 47, + 8, 6, 1, 208, 104, 214, 106, 47, 8, 6, 1, 146, 214, 106, 47, 8, 6, 1, + 206, 8, 214, 106, 47, 8, 6, 1, 200, 43, 214, 106, 47, 8, 6, 1, 66, 214, + 106, 47, 8, 6, 1, 196, 12, 214, 106, 47, 8, 6, 1, 193, 224, 214, 106, 47, + 8, 6, 1, 192, 235, 214, 106, 47, 8, 6, 1, 192, 159, 214, 106, 47, 8, 6, + 1, 191, 166, 207, 147, 216, 239, 56, 207, 147, 216, 235, 56, 207, 147, + 215, 164, 56, 47, 247, 66, 47, 247, 194, 4, 211, 4, 249, 141, 47, 228, + 145, 233, 12, 214, 106, 112, 8, 6, 1, 65, 214, 106, 112, 8, 6, 1, 250, + 120, 214, 106, 112, 8, 6, 1, 247, 193, 214, 106, 112, 8, 6, 1, 238, 127, + 214, 106, 112, 8, 6, 1, 71, 214, 106, 112, 8, 6, 1, 233, 175, 214, 106, + 112, 8, 6, 1, 232, 51, 214, 106, 112, 8, 6, 1, 230, 116, 214, 106, 112, + 8, 6, 1, 68, 214, 106, 112, 8, 6, 1, 223, 35, 214, 106, 112, 8, 6, 1, + 222, 152, 214, 106, 112, 8, 6, 1, 172, 214, 106, 112, 8, 6, 1, 218, 168, + 214, 106, 112, 8, 6, 1, 215, 61, 214, 106, 112, 8, 6, 1, 74, 214, 106, + 112, 8, 6, 1, 210, 236, 214, 106, 112, 8, 6, 1, 208, 104, 214, 106, 112, + 8, 6, 1, 146, 214, 106, 112, 8, 6, 1, 206, 8, 214, 106, 112, 8, 6, 1, + 200, 43, 214, 106, 112, 8, 6, 1, 66, 214, 106, 112, 8, 6, 1, 196, 12, + 214, 106, 112, 8, 6, 1, 193, 224, 214, 106, 112, 8, 6, 1, 192, 235, 214, + 106, 112, 8, 6, 1, 192, 159, 214, 106, 112, 8, 6, 1, 191, 166, 238, 214, + 214, 106, 112, 8, 6, 1, 210, 236, 214, 106, 112, 228, 28, 214, 106, 112, + 168, 214, 106, 112, 188, 214, 106, 112, 252, 155, 214, 106, 112, 193, + 126, 51, 236, 194, 112, 242, 247, 112, 239, 14, 112, 232, 108, 112, 228, + 19, 112, 214, 79, 112, 214, 70, 112, 211, 125, 112, 202, 9, 112, 133, 4, + 233, 216, 77, 112, 194, 252, 112, 115, 238, 127, 112, 205, 57, 205, 76, + 112, 105, 222, 152, 112, 232, 128, 222, 152, 112, 234, 164, 222, 152, + 112, 232, 226, 209, 62, 107, 112, 203, 247, 209, 62, 107, 112, 197, 21, + 209, 62, 109, 112, 202, 121, 210, 236, 112, 91, 228, 141, 197, 33, 210, + 236, 112, 8, 2, 1, 238, 127, 112, 229, 248, 112, 229, 247, 112, 229, 150, + 112, 218, 252, 112, 202, 241, 112, 196, 140, 112, 195, 21, 217, 36, 193, + 21, 113, 207, 79, 223, 145, 16, 1, 65, 207, 79, 223, 145, 16, 1, 250, + 120, 207, 79, 223, 145, 16, 1, 247, 193, 207, 79, 223, 145, 16, 1, 238, + 127, 207, 79, 223, 145, 16, 1, 71, 207, 79, 223, 145, 16, 1, 233, 175, + 207, 79, 223, 145, 16, 1, 232, 51, 207, 79, 223, 145, 16, 1, 230, 116, + 207, 79, 223, 145, 16, 1, 68, 207, 79, 223, 145, 16, 1, 223, 35, 207, 79, + 223, 145, 16, 1, 222, 152, 207, 79, 223, 145, 16, 1, 172, 207, 79, 223, + 145, 16, 1, 218, 168, 207, 79, 223, 145, 16, 1, 215, 61, 207, 79, 223, + 145, 16, 1, 74, 207, 79, 223, 145, 16, 1, 210, 236, 207, 79, 223, 145, + 16, 1, 208, 104, 207, 79, 223, 145, 16, 1, 146, 207, 79, 223, 145, 16, 1, + 206, 8, 207, 79, 223, 145, 16, 1, 200, 43, 207, 79, 223, 145, 16, 1, 66, + 207, 79, 223, 145, 16, 1, 196, 12, 207, 79, 223, 145, 16, 1, 193, 224, + 207, 79, 223, 145, 16, 1, 192, 235, 207, 79, 223, 145, 16, 1, 192, 159, + 207, 79, 223, 145, 16, 1, 191, 166, 51, 229, 120, 229, 9, 112, 72, 221, + 49, 112, 72, 188, 112, 12, 196, 95, 225, 217, 112, 12, 196, 95, 225, 221, + 112, 12, 196, 95, 225, 229, 112, 72, 237, 146, 112, 12, 196, 95, 225, + 236, 112, 12, 196, 95, 225, 223, 112, 12, 196, 95, 225, 195, 112, 12, + 196, 95, 225, 222, 112, 12, 196, 95, 225, 235, 112, 12, 196, 95, 225, + 209, 112, 12, 196, 95, 225, 202, 112, 12, 196, 95, 225, 211, 112, 12, + 196, 95, 225, 232, 112, 12, 196, 95, 225, 218, 112, 12, 196, 95, 225, + 234, 112, 12, 196, 95, 225, 210, 112, 12, 196, 95, 225, 233, 112, 12, + 196, 95, 225, 196, 112, 12, 196, 95, 225, 201, 112, 12, 196, 95, 225, + 194, 112, 12, 196, 95, 225, 224, 112, 12, 196, 95, 225, 226, 112, 12, + 196, 95, 225, 204, 112, 12, 196, 95, 225, 215, 112, 12, 196, 95, 225, + 213, 112, 12, 196, 95, 225, 239, 112, 12, 196, 95, 225, 238, 112, 12, + 196, 95, 225, 192, 112, 12, 196, 95, 225, 219, 112, 12, 196, 95, 225, + 237, 112, 12, 196, 95, 225, 228, 112, 12, 196, 95, 225, 214, 112, 12, + 196, 95, 225, 193, 112, 12, 196, 95, 225, 216, 112, 12, 196, 95, 225, + 198, 112, 12, 196, 95, 225, 197, 112, 12, 196, 95, 225, 227, 112, 12, + 196, 95, 225, 205, 112, 12, 196, 95, 225, 207, 112, 12, 196, 95, 225, + 208, 112, 12, 196, 95, 225, 200, 112, 12, 196, 95, 225, 231, 112, 12, + 196, 95, 225, 225, 112, 12, 196, 95, 225, 191, 198, 42, 203, 103, 248, + 52, 12, 196, 95, 225, 206, 198, 42, 203, 103, 248, 52, 12, 196, 95, 225, + 238, 198, 42, 203, 103, 248, 52, 12, 196, 95, 225, 236, 198, 42, 203, + 103, 248, 52, 12, 196, 95, 225, 220, 198, 42, 203, 103, 248, 52, 12, 196, + 95, 225, 203, 198, 42, 203, 103, 248, 52, 12, 196, 95, 225, 216, 198, 42, + 203, 103, 248, 52, 12, 196, 95, 225, 199, 198, 42, 203, 103, 248, 52, 12, + 196, 95, 225, 230, 198, 42, 203, 103, 248, 52, 12, 196, 95, 225, 212, 47, + 228, 14, 252, 27, 47, 228, 14, 252, 58, 206, 113, 16, 40, 232, 86, 206, + 113, 16, 40, 218, 225, 206, 113, 16, 40, 203, 23, 206, 113, 16, 40, 192, + 207, 206, 113, 16, 40, 203, 2, 206, 113, 16, 40, 247, 148, 238, 139, 232, + 173, 242, 219, 196, 117, 213, 191, 4, 201, 99, 200, 193, 139, 215, 183, + 200, 192, 242, 251, 250, 183, 235, 61, 200, 191, 139, 247, 253, 207, 148, + 248, 29, 250, 183, 213, 190, 193, 144, 193, 138, 195, 14, 216, 52, 193, + 128, 234, 208, 231, 12, 233, 232, 234, 208, 231, 12, 251, 140, 234, 208, + 231, 12, 250, 202, 231, 12, 4, 216, 177, 214, 80, 215, 206, 113, 193, + 130, 238, 228, 215, 206, 113, 232, 238, 208, 23, 215, 206, 113, 193, 130, + 231, 49, 215, 206, 113, 232, 80, 215, 206, 113, 193, 159, 231, 49, 215, + 206, 113, 220, 6, 208, 23, 215, 206, 113, 193, 159, 238, 228, 215, 206, + 113, 238, 228, 215, 205, 214, 80, 215, 206, 4, 233, 103, 232, 238, 208, + 23, 215, 206, 4, 233, 103, 220, 6, 208, 23, 215, 206, 4, 233, 103, 232, + 80, 215, 206, 4, 233, 103, 200, 199, 4, 233, 103, 231, 8, 201, 102, 203, + 45, 201, 102, 199, 21, 62, 235, 97, 63, 200, 198, 63, 200, 199, 4, 2, + 242, 210, 63, 200, 199, 248, 242, 242, 210, 63, 200, 199, 248, 242, 242, + 211, 4, 207, 149, 242, 211, 4, 207, 149, 242, 211, 4, 202, 52, 242, 211, + 4, 219, 129, 242, 211, 4, 198, 46, 232, 174, 193, 67, 248, 116, 233, 103, + 228, 181, 236, 162, 199, 227, 247, 228, 243, 103, 205, 48, 233, 226, 197, + 254, 237, 139, 197, 254, 210, 183, 197, 254, 247, 153, 228, 181, 210, 15, + 197, 78, 243, 107, 248, 119, 206, 126, 229, 149, 200, 196, 248, 119, 234, + 212, 79, 217, 103, 234, 212, 79, 206, 245, 229, 193, 232, 128, 219, 234, + 242, 209, 217, 69, 219, 233, 233, 84, 219, 233, 219, 234, 232, 181, 223, + 163, 193, 66, 215, 98, 198, 83, 250, 162, 230, 218, 216, 196, 193, 142, + 199, 187, 219, 201, 249, 98, 209, 133, 207, 87, 251, 46, 230, 201, 251, + 46, 210, 55, 210, 59, 243, 108, 201, 42, 230, 63, 202, 89, 79, 209, 112, + 216, 225, 211, 105, 248, 98, 209, 9, 219, 212, 206, 246, 238, 234, 206, + 246, 249, 111, 239, 17, 206, 245, 238, 167, 23, 206, 245, 201, 83, 248, + 66, 201, 243, 248, 43, 232, 106, 232, 102, 206, 152, 200, 142, 209, 12, + 237, 235, 211, 153, 200, 165, 232, 103, 203, 13, 232, 237, 247, 147, 4, + 200, 134, 237, 80, 202, 32, 228, 27, 238, 232, 203, 121, 228, 26, 228, + 27, 238, 232, 235, 126, 239, 16, 243, 66, 164, 247, 118, 219, 24, 238, + 158, 228, 254, 209, 14, 203, 29, 248, 222, 248, 62, 209, 15, 79, 232, + 161, 239, 15, 232, 150, 23, 221, 78, 199, 133, 193, 51, 230, 31, 205, + 176, 248, 79, 23, 238, 181, 193, 63, 231, 16, 242, 94, 231, 16, 197, 204, + 235, 104, 248, 253, 215, 140, 242, 226, 248, 253, 215, 139, 249, 149, + 248, 78, 232, 150, 23, 221, 79, 4, 209, 97, 248, 79, 4, 209, 30, 239, 3, + 209, 32, 206, 247, 193, 11, 208, 222, 248, 157, 247, 146, 223, 29, 243, + 56, 197, 254, 233, 67, 243, 55, 232, 240, 232, 241, 201, 241, 249, 109, + 210, 102, 209, 31, 239, 54, 249, 111, 199, 191, 197, 254, 238, 214, 232, + 211, 209, 134, 237, 136, 223, 19, 236, 154, 247, 90, 201, 41, 193, 67, + 243, 82, 215, 206, 195, 54, 247, 8, 205, 90, 205, 120, 230, 225, 247, + 111, 229, 224, 4, 198, 136, 211, 105, 199, 34, 219, 224, 248, 72, 79, + 232, 185, 216, 54, 216, 219, 207, 58, 206, 247, 37, 221, 221, 4, 223, 28, + 201, 11, 216, 89, 219, 168, 202, 86, 239, 22, 221, 72, 249, 13, 250, 213, + 37, 213, 1, 249, 13, 237, 86, 37, 213, 1, 233, 0, 232, 112, 252, 31, 198, + 180, 247, 91, 228, 183, 233, 33, 193, 93, 206, 139, 242, 97, 232, 232, + 209, 53, 23, 232, 236, 216, 89, 215, 169, 247, 132, 243, 14, 229, 231, + 250, 224, 210, 188, 198, 54, 230, 9, 243, 0, 199, 87, 198, 181, 242, 242, + 248, 107, 210, 6, 250, 222, 195, 65, 231, 214, 236, 234, 229, 117, 202, + 79, 217, 148, 248, 170, 231, 215, 237, 24, 248, 65, 232, 187, 209, 95, + 247, 99, 37, 213, 6, 215, 129, 37, 213, 1, 205, 104, 230, 162, 37, 221, + 220, 197, 179, 195, 42, 37, 205, 82, 206, 42, 203, 60, 4, 205, 123, 199, + 92, 207, 170, 23, 249, 111, 202, 109, 23, 202, 109, 248, 91, 249, 68, 23, + 228, 247, 243, 109, 232, 217, 202, 51, 206, 43, 200, 170, 201, 202, 216, + 219, 197, 205, 228, 184, 207, 171, 251, 141, 232, 158, 206, 56, 232, 158, + 200, 137, 193, 110, 219, 134, 230, 249, 207, 172, 215, 191, 207, 172, + 247, 102, 238, 225, 249, 65, 23, 249, 111, 195, 13, 233, 22, 229, 12, + 201, 75, 23, 249, 111, 228, 27, 229, 12, 201, 75, 23, 208, 157, 199, 234, + 199, 92, 210, 207, 23, 249, 111, 202, 53, 247, 107, 215, 184, 247, 130, + 249, 16, 4, 196, 117, 247, 255, 239, 36, 228, 173, 247, 253, 242, 250, + 237, 90, 228, 173, 247, 254, 242, 240, 247, 254, 237, 82, 237, 83, 223, + 60, 214, 208, 210, 109, 201, 113, 228, 173, 247, 254, 228, 173, 4, 231, + 198, 211, 144, 247, 254, 223, 19, 209, 20, 211, 143, 233, 231, 209, 20, + 211, 143, 228, 182, 249, 92, 250, 151, 199, 102, 217, 148, 228, 178, 218, + 242, 228, 178, 239, 20, 201, 57, 205, 89, 237, 94, 201, 57, 233, 92, 223, + 40, 220, 18, 223, 19, 247, 80, 233, 231, 247, 80, 63, 210, 28, 62, 210, + 28, 193, 136, 63, 232, 217, 193, 136, 62, 232, 217, 206, 125, 62, 206, + 125, 220, 117, 249, 132, 207, 170, 23, 202, 244, 248, 70, 23, 57, 251, + 136, 234, 109, 52, 232, 227, 196, 253, 234, 109, 52, 232, 227, 196, 250, + 234, 109, 52, 232, 227, 196, 248, 234, 109, 52, 232, 227, 196, 246, 234, + 109, 52, 232, 227, 196, 244, 207, 130, 215, 181, 210, 247, 193, 144, 248, + 3, 238, 239, 198, 173, 219, 185, 207, 174, 247, 78, 235, 111, 238, 223, + 193, 96, 202, 60, 202, 58, 228, 183, 207, 142, 230, 255, 203, 107, 215, + 225, 206, 129, 243, 93, 236, 162, 209, 147, 248, 109, 234, 131, 211, 156, + 201, 218, 203, 102, 248, 2, 251, 89, 228, 253, 220, 108, 248, 251, 232, + 236, 197, 204, 232, 236, 248, 117, 197, 55, 230, 7, 243, 94, 249, 149, + 243, 94, 232, 96, 249, 149, 243, 94, 248, 160, 210, 30, 221, 61, 209, 36, + 235, 101, 247, 134, 249, 137, 247, 134, 236, 153, 215, 182, 233, 103, + 238, 240, 233, 103, 198, 174, 233, 103, 207, 175, 233, 103, 247, 79, 233, + 103, 235, 112, 233, 103, 201, 200, 193, 96, 228, 184, 233, 103, 215, 226, + 233, 103, 236, 163, 233, 103, 209, 148, 233, 103, 232, 100, 233, 103, + 230, 59, 233, 103, 193, 38, 233, 103, 249, 10, 233, 103, 210, 162, 233, + 103, 209, 148, 213, 13, 210, 76, 208, 208, 243, 77, 233, 185, 233, 193, + 234, 211, 213, 13, 215, 179, 198, 61, 63, 133, 209, 58, 249, 144, 223, + 148, 63, 144, 209, 58, 249, 144, 223, 148, 63, 45, 209, 58, 249, 144, + 223, 148, 63, 50, 209, 58, 249, 144, 223, 148, 232, 230, 230, 54, 56, + 193, 136, 230, 54, 56, 211, 126, 230, 54, 56, 198, 211, 133, 56, 198, + 211, 144, 56, 242, 241, 230, 29, 56, 211, 77, 230, 29, 56, 238, 208, 193, + 34, 230, 9, 233, 188, 214, 111, 200, 41, 223, 9, 235, 106, 221, 142, 248, + 173, 193, 34, 242, 212, 208, 137, 230, 33, 209, 10, 217, 78, 203, 52, + 250, 178, 203, 52, 229, 134, 203, 52, 193, 34, 205, 139, 193, 34, 248, + 90, 232, 156, 247, 220, 223, 163, 202, 187, 247, 219, 223, 163, 202, 187, + 248, 60, 231, 28, 217, 90, 193, 35, 233, 81, 217, 91, 23, 193, 36, 229, + 6, 230, 28, 105, 216, 187, 229, 6, 230, 28, 105, 193, 33, 229, 6, 230, + 28, 209, 50, 211, 142, 193, 36, 4, 247, 239, 234, 209, 248, 30, 4, 195, + 144, 209, 251, 4, 248, 121, 230, 78, 217, 91, 4, 230, 176, 209, 186, 217, + 73, 217, 91, 4, 197, 63, 211, 118, 217, 90, 211, 118, 193, 35, 249, 148, + 239, 37, 193, 19, 208, 213, 223, 19, 211, 137, 223, 19, 230, 254, 231, + 61, 249, 149, 251, 120, 233, 198, 251, 182, 251, 183, 215, 215, 223, 168, + 202, 103, 223, 137, 237, 79, 209, 250, 230, 170, 237, 240, 219, 95, 214, + 235, 209, 48, 233, 104, 217, 33, 230, 77, 249, 86, 209, 52, 200, 62, 209, + 140, 221, 123, 77, 218, 242, 219, 175, 206, 188, 231, 155, 201, 65, 221, + 122, 248, 71, 238, 243, 4, 229, 223, 193, 117, 249, 6, 229, 223, 248, 22, + 229, 223, 105, 229, 221, 201, 239, 229, 223, 230, 186, 229, 223, 229, + 224, 4, 57, 248, 115, 229, 223, 230, 201, 229, 223, 192, 73, 229, 223, + 208, 138, 229, 223, 229, 224, 4, 206, 247, 207, 12, 229, 221, 229, 224, + 237, 136, 237, 33, 203, 135, 4, 42, 75, 223, 117, 234, 135, 156, 247, + 251, 251, 119, 113, 248, 99, 202, 92, 113, 242, 85, 113, 201, 212, 200, + 144, 113, 235, 97, 237, 216, 113, 209, 141, 79, 209, 37, 232, 199, 248, + 185, 236, 195, 113, 201, 230, 249, 109, 198, 231, 249, 109, 63, 232, 186, + 228, 141, 209, 56, 113, 215, 230, 249, 130, 238, 170, 233, 218, 88, 236, + 155, 56, 238, 230, 247, 100, 249, 91, 4, 192, 71, 56, 249, 91, 4, 236, + 155, 56, 249, 91, 4, 233, 234, 56, 249, 91, 4, 209, 8, 56, 215, 230, 4, + 193, 60, 243, 137, 4, 196, 66, 197, 250, 23, 192, 71, 56, 205, 60, 209, + 249, 239, 59, 248, 28, 216, 41, 232, 191, 236, 220, 211, 60, 236, 226, + 235, 55, 233, 7, 232, 171, 211, 77, 233, 7, 232, 171, 210, 205, 4, 238, + 175, 210, 205, 233, 96, 196, 77, 247, 140, 199, 130, 247, 140, 247, 101, + 223, 148, 243, 137, 4, 196, 66, 197, 249, 243, 137, 4, 235, 119, 197, + 249, 249, 88, 243, 136, 242, 225, 208, 133, 206, 115, 208, 133, 210, 134, + 201, 53, 206, 50, 197, 238, 206, 50, 248, 95, 199, 232, 219, 229, 213, 4, + 213, 5, 4, 237, 135, 238, 242, 242, 219, 248, 96, 211, 77, 248, 96, 230, + 201, 248, 96, 248, 115, 248, 96, 211, 55, 248, 96, 248, 93, 214, 228, + 249, 134, 205, 73, 216, 188, 199, 107, 207, 101, 210, 203, 233, 64, 217, + 148, 205, 119, 251, 86, 208, 158, 252, 39, 218, 244, 243, 119, 216, 201, + 211, 13, 198, 2, 223, 159, 198, 2, 210, 212, 235, 8, 113, 223, 156, 234, + 67, 234, 68, 4, 235, 119, 64, 58, 242, 219, 217, 109, 4, 218, 235, 232, + 217, 242, 219, 217, 109, 4, 207, 147, 232, 217, 211, 77, 217, 109, 4, + 207, 147, 232, 217, 211, 77, 217, 109, 4, 218, 235, 232, 217, 209, 17, + 209, 18, 228, 187, 214, 75, 216, 4, 209, 194, 216, 4, 209, 195, 4, 96, + 64, 250, 183, 219, 224, 195, 68, 216, 3, 216, 4, 209, 195, 211, 145, 213, + 44, 216, 4, 209, 193, 251, 87, 4, 249, 76, 247, 132, 247, 133, 4, 232, + 208, 195, 65, 247, 132, 199, 104, 207, 165, 195, 64, 233, 0, 208, 193, + 209, 27, 201, 77, 208, 236, 249, 15, 197, 17, 96, 250, 231, 242, 221, 96, + 23, 118, 211, 77, 243, 11, 250, 231, 242, 221, 96, 23, 118, 211, 77, 243, + 11, 250, 232, 4, 47, 91, 210, 255, 242, 221, 235, 119, 23, 196, 66, 211, + 77, 243, 11, 250, 231, 251, 85, 235, 119, 23, 196, 66, 211, 77, 243, 11, + 250, 231, 130, 248, 26, 113, 137, 248, 26, 113, 201, 235, 4, 247, 125, + 106, 201, 234, 201, 235, 4, 91, 202, 5, 193, 138, 201, 235, 4, 115, 202, + 5, 193, 137, 249, 58, 234, 135, 209, 87, 219, 219, 217, 121, 231, 16, + 206, 203, 217, 121, 231, 16, 219, 35, 4, 223, 129, 210, 34, 242, 219, + 219, 35, 4, 221, 222, 221, 222, 219, 34, 211, 77, 219, 34, 248, 235, 248, + 236, 4, 247, 125, 106, 248, 94, 219, 103, 113, 207, 166, 247, 213, 249, + 147, 4, 118, 64, 58, 234, 95, 4, 118, 64, 58, 211, 105, 4, 233, 216, 87, + 4, 45, 50, 64, 58, 202, 15, 4, 96, 64, 58, 198, 54, 4, 196, 66, 64, 58, + 213, 44, 91, 196, 105, 234, 162, 113, 221, 219, 199, 95, 223, 123, 16, + 40, 8, 6, 219, 174, 223, 123, 16, 40, 8, 2, 219, 174, 223, 123, 16, 40, + 212, 135, 223, 123, 16, 40, 200, 76, 223, 123, 16, 40, 8, 219, 174, 232, + 243, 234, 135, 198, 49, 193, 9, 230, 61, 212, 118, 23, 248, 101, 229, 13, + 209, 118, 216, 88, 199, 105, 238, 197, 249, 111, 202, 136, 209, 60, 201, + 103, 4, 82, 236, 140, 223, 19, 16, 40, 248, 248, 197, 236, 234, 111, 62, + 51, 247, 213, 63, 51, 247, 213, 220, 13, 207, 87, 243, 10, 220, 13, 248, + 115, 243, 10, 220, 13, 211, 55, 237, 32, 220, 13, 248, 115, 237, 32, 2, + 211, 55, 237, 32, 2, 248, 115, 237, 32, 196, 76, 207, 87, 197, 241, 235, + 122, 207, 87, 197, 241, 196, 76, 2, 207, 87, 197, 241, 235, 122, 2, 207, + 87, 197, 241, 110, 50, 203, 151, 63, 243, 10, 116, 50, 203, 151, 63, 243, + 10, 47, 238, 218, 209, 41, 238, 218, 209, 42, 4, 230, 67, 60, 238, 218, + 209, 41, 213, 8, 45, 204, 28, 4, 115, 236, 138, 213, 8, 50, 204, 28, 4, + 115, 236, 138, 16, 40, 217, 50, 246, 242, 63, 8, 238, 217, 88, 8, 238, + 217, 247, 26, 238, 217, 211, 114, 113, 235, 125, 79, 210, 60, 222, 125, + 215, 197, 200, 70, 216, 183, 4, 213, 175, 248, 46, 248, 67, 79, 228, 90, + 242, 223, 233, 104, 91, 211, 162, 242, 223, 233, 104, 105, 211, 162, 242, + 223, 233, 104, 115, 211, 162, 242, 223, 233, 104, 232, 128, 211, 162, + 242, 223, 233, 104, 232, 226, 211, 162, 242, 223, 233, 104, 202, 136, + 211, 162, 242, 223, 233, 104, 203, 247, 211, 162, 242, 223, 233, 104, + 234, 164, 211, 162, 242, 223, 233, 104, 213, 175, 211, 162, 242, 223, + 233, 104, 199, 96, 211, 162, 242, 223, 233, 104, 234, 128, 211, 162, 242, + 223, 233, 104, 197, 38, 211, 162, 242, 223, 233, 104, 211, 97, 242, 223, + 233, 104, 197, 11, 242, 223, 233, 104, 198, 217, 242, 223, 233, 104, 232, + 124, 242, 223, 233, 104, 232, 223, 242, 223, 233, 104, 202, 132, 242, + 223, 233, 104, 203, 246, 242, 223, 233, 104, 234, 163, 242, 223, 233, + 104, 213, 173, 242, 223, 233, 104, 199, 94, 242, 223, 233, 104, 234, 126, + 242, 223, 233, 104, 197, 36, 50, 201, 234, 50, 201, 235, 4, 91, 202, 5, + 193, 138, 50, 201, 235, 4, 115, 202, 5, 193, 137, 247, 246, 247, 247, 4, + 202, 5, 193, 137, 206, 186, 248, 235, 248, 96, 247, 123, 217, 75, 242, + 222, 62, 202, 104, 23, 238, 215, 213, 44, 209, 124, 229, 5, 217, 91, 223, + 163, 247, 222, 200, 212, 219, 165, 202, 90, 211, 57, 201, 191, 237, 221, + 200, 194, 201, 221, 201, 222, 193, 118, 222, 183, 217, 91, 237, 239, 45, + 230, 54, 199, 107, 207, 101, 199, 107, 207, 102, 4, 210, 204, 50, 230, + 54, 199, 107, 207, 101, 63, 198, 34, 199, 106, 62, 198, 34, 199, 106, + 199, 107, 211, 105, 198, 54, 79, 216, 0, 242, 245, 216, 4, 209, 194, 249, + 147, 79, 234, 67, 201, 109, 234, 67, 234, 68, 4, 219, 129, 232, 178, 234, + 67, 210, 35, 139, 201, 109, 234, 67, 219, 102, 210, 133, 62, 208, 133, + 110, 45, 210, 33, 110, 45, 249, 105, 210, 34, 110, 45, 232, 130, 210, 34, + 110, 45, 210, 197, 110, 45, 238, 233, 45, 193, 3, 230, 53, 153, 211, 126, + 230, 54, 56, 207, 147, 230, 54, 4, 232, 248, 201, 211, 207, 18, 207, 147, + 230, 54, 4, 232, 248, 201, 211, 207, 18, 198, 211, 133, 56, 207, 18, 198, + 211, 144, 56, 207, 18, 195, 67, 230, 53, 207, 18, 230, 54, 4, 82, 232, + 253, 233, 204, 207, 147, 230, 54, 4, 210, 107, 248, 210, 82, 23, 206, + 189, 232, 247, 63, 144, 209, 58, 45, 230, 54, 223, 148, 202, 206, 63, 45, + 209, 58, 223, 148, 202, 206, 63, 50, 209, 58, 223, 148, 202, 206, 62, 45, + 209, 58, 223, 148, 202, 206, 62, 50, 209, 58, 223, 148, 62, 45, 209, 58, + 249, 144, 223, 148, 62, 50, 209, 58, 249, 144, 223, 148, 202, 206, 63, + 133, 209, 58, 223, 148, 202, 206, 63, 144, 209, 58, 223, 148, 202, 206, + 62, 133, 209, 58, 223, 148, 202, 206, 62, 144, 209, 58, 223, 148, 62, + 133, 209, 58, 249, 144, 223, 148, 62, 144, 209, 58, 249, 144, 223, 148, + 62, 229, 223, 237, 78, 239, 59, 221, 221, 23, 215, 181, 115, 214, 84, + 239, 58, 208, 209, 209, 71, 247, 142, 62, 230, 17, 203, 103, 232, 191, + 236, 220, 63, 230, 17, 203, 103, 232, 191, 236, 220, 202, 32, 203, 103, + 232, 191, 236, 220, 199, 182, 247, 84, 193, 55, 221, 220, 91, 247, 214, + 215, 181, 105, 247, 214, 215, 181, 115, 247, 214, 215, 181, 198, 24, 39, + 209, 249, 239, 59, 230, 17, 236, 220, 205, 76, 208, 210, 228, 20, 233, + 64, 228, 20, 211, 60, 236, 227, 228, 20, 236, 168, 4, 199, 53, 236, 168, + 4, 199, 54, 23, 209, 177, 236, 168, 4, 209, 177, 232, 114, 4, 209, 177, + 232, 114, 4, 198, 150, 232, 114, 4, 251, 133, 192, 235, 62, 232, 171, + 232, 171, 211, 77, 232, 171, 247, 101, 141, 236, 204, 247, 101, 233, 7, + 248, 62, 233, 7, 247, 155, 234, 105, 213, 6, 234, 105, 213, 7, 210, 204, + 234, 105, 213, 7, 210, 210, 213, 6, 213, 7, 210, 204, 213, 7, 210, 210, + 234, 105, 236, 167, 234, 105, 210, 204, 234, 105, 210, 202, 236, 167, + 210, 204, 210, 202, 193, 148, 201, 218, 213, 7, 210, 210, 201, 218, 247, + 141, 210, 210, 237, 78, 193, 65, 216, 38, 217, 22, 211, 2, 242, 221, 50, + 23, 45, 204, 28, 250, 231, 247, 125, 192, 235, 223, 154, 232, 163, 202, + 116, 113, 237, 134, 232, 163, 202, 116, 113, 239, 60, 39, 221, 222, 206, + 140, 214, 75, 210, 205, 4, 47, 199, 53, 201, 67, 243, 136, 238, 15, 221, + 78, 219, 96, 201, 233, 229, 236, 223, 163, 202, 187, 115, 207, 120, 58, + 115, 207, 120, 60, 115, 207, 120, 219, 224, 115, 207, 120, 183, 45, 201, + 230, 248, 8, 50, 201, 230, 248, 8, 105, 201, 230, 248, 7, 115, 201, 230, + 248, 7, 45, 198, 231, 248, 8, 50, 198, 231, 248, 8, 45, 251, 119, 248, 8, + 50, 251, 119, 248, 8, 215, 210, 248, 8, 219, 130, 215, 210, 248, 8, 219, + 130, 215, 209, 249, 107, 111, 4, 249, 106, 249, 107, 27, 192, 235, 249, + 107, 111, 4, 27, 192, 235, 249, 107, 28, 27, 192, 235, 249, 107, 111, 4, + 28, 27, 192, 235, 156, 243, 126, 77, 249, 107, 111, 4, 28, 243, 125, 193, + 18, 217, 71, 215, 186, 232, 81, 198, 85, 198, 30, 201, 92, 79, 219, 144, + 202, 188, 79, 223, 20, 215, 167, 230, 196, 233, 103, 230, 196, 233, 104, + 4, 202, 64, 233, 185, 233, 104, 4, 199, 126, 79, 222, 185, 202, 64, 233, + 104, 4, 211, 77, 215, 179, 202, 64, 233, 104, 4, 211, 77, 215, 180, 23, + 202, 64, 233, 185, 202, 64, 233, 104, 4, 211, 77, 215, 180, 23, 242, 87, + 200, 143, 202, 64, 233, 104, 4, 211, 77, 215, 180, 23, 198, 171, 233, + 185, 202, 64, 233, 104, 4, 230, 66, 202, 64, 233, 104, 4, 228, 186, 193, + 57, 233, 103, 202, 64, 233, 104, 4, 202, 64, 233, 185, 233, 104, 205, + 109, 237, 114, 232, 161, 207, 61, 233, 103, 202, 64, 233, 104, 4, 229, + 222, 233, 185, 202, 64, 233, 104, 4, 200, 194, 202, 63, 233, 103, 214, + 82, 233, 103, 233, 206, 233, 103, 196, 111, 233, 103, 233, 104, 4, 242, + 87, 200, 143, 210, 26, 233, 103, 239, 51, 233, 103, 239, 52, 233, 103, + 221, 121, 233, 103, 233, 104, 198, 214, 42, 221, 122, 221, 121, 233, 104, + 4, 202, 64, 233, 185, 221, 121, 233, 104, 4, 242, 219, 233, 185, 233, + 104, 4, 201, 12, 198, 61, 233, 104, 4, 201, 12, 198, 62, 23, 193, 57, + 233, 193, 233, 104, 4, 201, 12, 198, 62, 23, 198, 171, 233, 185, 236, + 228, 233, 103, 193, 16, 233, 103, 251, 111, 233, 103, 209, 6, 233, 103, + 238, 199, 233, 103, 209, 253, 233, 103, 233, 104, 4, 219, 7, 79, 197, + 217, 236, 228, 247, 218, 207, 61, 233, 103, 232, 92, 233, 104, 4, 211, + 77, 215, 179, 251, 109, 233, 103, 233, 57, 233, 103, 193, 119, 233, 103, + 202, 91, 233, 103, 198, 130, 233, 103, 230, 197, 233, 103, 218, 245, 238, + 199, 233, 103, 233, 104, 4, 211, 77, 215, 179, 228, 130, 233, 103, 233, + 104, 4, 211, 77, 215, 180, 23, 242, 87, 200, 143, 233, 104, 205, 78, 223, + 163, 233, 58, 250, 190, 233, 103, 232, 183, 233, 103, 202, 92, 233, 103, + 236, 195, 233, 103, 233, 104, 193, 51, 215, 179, 233, 104, 4, 216, 216, + 217, 35, 230, 196, 247, 79, 233, 104, 4, 202, 64, 233, 185, 247, 79, 233, + 104, 4, 199, 126, 79, 222, 185, 202, 64, 247, 79, 233, 104, 4, 211, 77, + 215, 179, 202, 64, 247, 79, 233, 104, 4, 229, 222, 233, 185, 247, 79, + 233, 104, 4, 193, 1, 202, 65, 221, 121, 247, 79, 233, 104, 4, 242, 219, + 233, 185, 209, 6, 247, 79, 233, 103, 238, 199, 247, 79, 233, 103, 193, + 119, 247, 79, 233, 103, 202, 84, 232, 92, 233, 103, 202, 84, 202, 64, + 233, 103, 196, 72, 233, 103, 233, 104, 4, 206, 138, 233, 185, 233, 104, + 4, 213, 44, 230, 244, 231, 132, 233, 104, 4, 211, 126, 231, 132, 209, + 251, 248, 68, 237, 129, 205, 49, 215, 225, 229, 226, 215, 225, 201, 236, + 215, 225, 230, 20, 209, 251, 207, 145, 91, 230, 53, 209, 251, 207, 145, + 248, 80, 230, 29, 223, 163, 247, 28, 209, 251, 232, 91, 209, 251, 4, 209, + 6, 233, 103, 209, 251, 4, 232, 172, 230, 28, 186, 193, 105, 209, 58, 219, + 233, 202, 2, 193, 105, 209, 58, 219, 233, 186, 234, 204, 209, 58, 219, + 233, 202, 2, 234, 204, 209, 58, 219, 233, 153, 186, 193, 105, 209, 58, + 219, 233, 153, 202, 2, 193, 105, 209, 58, 219, 233, 153, 186, 234, 204, + 209, 58, 219, 233, 153, 202, 2, 234, 204, 209, 58, 219, 233, 186, 193, + 105, 209, 58, 195, 48, 219, 233, 202, 2, 193, 105, 209, 58, 195, 48, 219, + 233, 186, 234, 204, 209, 58, 195, 48, 219, 233, 202, 2, 234, 204, 209, + 58, 195, 48, 219, 233, 88, 186, 193, 105, 209, 58, 195, 48, 219, 233, 88, + 202, 2, 193, 105, 209, 58, 195, 48, 219, 233, 88, 186, 234, 204, 209, 58, + 195, 48, 219, 233, 88, 202, 2, 234, 204, 209, 58, 195, 48, 219, 233, 186, + 193, 105, 209, 58, 248, 4, 202, 2, 193, 105, 209, 58, 248, 4, 186, 234, + 204, 209, 58, 248, 4, 202, 2, 234, 204, 209, 58, 248, 4, 88, 186, 193, + 105, 209, 58, 248, 4, 88, 202, 2, 193, 105, 209, 58, 248, 4, 88, 186, + 234, 204, 209, 58, 248, 4, 88, 202, 2, 234, 204, 209, 58, 248, 4, 229, 4, + 208, 6, 51, 211, 42, 229, 4, 208, 6, 51, 211, 43, 223, 163, 62, 201, 190, + 202, 25, 208, 6, 51, 211, 42, 202, 25, 208, 6, 51, 211, 43, 223, 163, 62, + 201, 190, 118, 206, 146, 196, 66, 206, 146, 96, 206, 146, 235, 119, 206, + 146, 27, 34, 234, 0, 211, 42, 88, 27, 34, 234, 0, 211, 42, 34, 211, 77, + 234, 0, 211, 42, 88, 34, 211, 77, 234, 0, 211, 42, 88, 251, 138, 211, 42, + 200, 146, 251, 138, 211, 42, 49, 88, 55, 153, 242, 75, 207, 252, 87, 211, + 42, 49, 88, 55, 242, 75, 207, 252, 87, 211, 42, 49, 88, 130, 55, 242, 75, + 207, 252, 87, 211, 42, 88, 223, 103, 211, 42, 49, 223, 103, 211, 42, 88, + 49, 223, 103, 211, 42, 195, 83, 88, 202, 23, 195, 83, 88, 207, 19, 202, + 23, 243, 124, 248, 107, 207, 19, 243, 124, 248, 107, 206, 146, 229, 205, + 201, 85, 219, 32, 207, 152, 247, 102, 229, 131, 198, 16, 229, 131, 198, + 17, 4, 247, 249, 213, 13, 198, 16, 216, 158, 156, 207, 153, 201, 93, 198, + 14, 198, 15, 247, 102, 247, 223, 211, 101, 247, 223, 197, 212, 247, 224, + 201, 63, 216, 42, 251, 142, 232, 244, 234, 87, 209, 50, 247, 102, 211, + 101, 209, 50, 247, 102, 199, 155, 211, 101, 199, 155, 250, 150, 211, 101, + 250, 150, 207, 94, 195, 145, 237, 110, 197, 203, 250, 225, 218, 254, 198, + 23, 215, 218, 215, 185, 207, 151, 200, 164, 207, 151, 215, 185, 247, 154, + 252, 11, 198, 13, 203, 65, 206, 112, 201, 228, 228, 241, 198, 20, 219, + 132, 81, 198, 20, 219, 132, 239, 37, 56, 209, 50, 247, 86, 207, 12, 219, + 132, 197, 238, 232, 218, 211, 105, 209, 19, 236, 144, 213, 44, 234, 73, + 56, 202, 62, 113, 213, 44, 202, 62, 113, 208, 132, 219, 84, 223, 163, + 223, 50, 209, 108, 113, 236, 175, 213, 12, 219, 84, 113, 209, 13, 193, + 144, 113, 213, 28, 193, 144, 113, 248, 184, 213, 44, 248, 183, 248, 182, + 215, 185, 248, 182, 210, 51, 213, 44, 210, 50, 243, 85, 238, 209, 216, + 182, 113, 193, 32, 113, 207, 28, 249, 149, 113, 198, 86, 193, 144, 242, + 216, 203, 20, 249, 61, 249, 59, 210, 91, 239, 21, 238, 156, 249, 126, + 242, 246, 45, 218, 215, 197, 242, 4, 206, 113, 239, 0, 208, 196, 56, 47, + 223, 137, 202, 3, 248, 59, 113, 231, 27, 113, 238, 248, 23, 220, 25, 202, + 92, 252, 57, 203, 43, 249, 125, 248, 234, 248, 235, 249, 2, 209, 108, 79, + 193, 15, 211, 159, 56, 203, 43, 197, 213, 201, 8, 210, 201, 229, 127, + 199, 98, 228, 129, 234, 130, 193, 54, 209, 96, 202, 87, 193, 93, 206, + 189, 247, 233, 230, 62, 23, 193, 9, 203, 78, 211, 132, 235, 94, 215, 189, + 207, 152, 198, 25, 215, 192, 248, 106, 196, 76, 216, 54, 251, 223, 196, + 76, 251, 223, 196, 76, 2, 251, 223, 2, 251, 223, 213, 17, 251, 223, 251, + 224, 237, 93, 251, 224, 250, 238, 205, 118, 211, 101, 232, 244, 234, 87, + 237, 22, 219, 32, 210, 95, 203, 65, 205, 83, 215, 192, 205, 83, 247, 113, + 202, 94, 232, 178, 205, 113, 202, 111, 250, 152, 206, 243, 209, 178, 197, + 203, 206, 139, 202, 112, 160, 16, 40, 208, 2, 160, 16, 40, 251, 225, 160, + 16, 40, 232, 243, 160, 16, 40, 234, 207, 160, 16, 40, 193, 143, 160, 16, + 40, 251, 35, 160, 16, 40, 251, 36, 207, 81, 160, 16, 40, 251, 36, 207, + 80, 160, 16, 40, 251, 36, 195, 31, 160, 16, 40, 251, 36, 195, 30, 160, + 16, 40, 195, 45, 160, 16, 40, 195, 44, 160, 16, 40, 195, 43, 160, 16, 40, + 200, 205, 160, 16, 40, 209, 203, 200, 205, 160, 16, 40, 62, 200, 205, + 160, 16, 40, 216, 181, 200, 236, 160, 16, 40, 216, 181, 200, 235, 160, + 16, 40, 216, 181, 200, 234, 160, 16, 40, 243, 13, 160, 16, 40, 205, 158, + 160, 16, 40, 213, 161, 160, 16, 40, 195, 28, 160, 16, 40, 195, 27, 160, + 16, 40, 206, 148, 205, 158, 160, 16, 40, 206, 148, 205, 157, 160, 16, 40, + 230, 250, 160, 16, 40, 202, 184, 160, 16, 40, 223, 74, 211, 49, 160, 16, + 40, 223, 74, 211, 48, 160, 16, 40, 238, 222, 79, 223, 73, 160, 16, 40, + 207, 77, 79, 223, 73, 160, 16, 40, 239, 12, 211, 49, 160, 16, 40, 223, + 72, 211, 49, 160, 16, 40, 200, 237, 79, 239, 11, 160, 16, 40, 238, 222, + 79, 239, 11, 160, 16, 40, 238, 222, 79, 239, 10, 160, 16, 40, 239, 12, + 251, 79, 160, 16, 40, 205, 159, 79, 239, 12, 251, 79, 160, 16, 40, 200, + 237, 79, 205, 159, 79, 239, 11, 160, 16, 40, 195, 139, 160, 16, 40, 198, + 143, 211, 49, 160, 16, 40, 219, 237, 211, 49, 160, 16, 40, 251, 78, 211, + 49, 160, 16, 40, 200, 237, 79, 251, 77, 160, 16, 40, 205, 159, 79, 251, + 77, 160, 16, 40, 200, 237, 79, 205, 159, 79, 251, 77, 160, 16, 40, 195, + 46, 79, 251, 77, 160, 16, 40, 207, 77, 79, 251, 77, 160, 16, 40, 207, 77, + 79, 251, 76, 160, 16, 40, 207, 76, 160, 16, 40, 207, 75, 160, 16, 40, + 207, 74, 160, 16, 40, 207, 73, 160, 16, 40, 251, 177, 160, 16, 40, 251, + 176, 160, 16, 40, 217, 61, 160, 16, 40, 205, 168, 160, 16, 40, 250, 230, + 160, 16, 40, 207, 105, 160, 16, 40, 207, 104, 160, 16, 40, 250, 154, 160, + 16, 40, 248, 150, 211, 49, 160, 16, 40, 199, 177, 160, 16, 40, 199, 176, + 160, 16, 40, 208, 8, 219, 121, 160, 16, 40, 248, 87, 160, 16, 40, 248, + 86, 160, 16, 40, 248, 85, 160, 16, 40, 251, 151, 160, 16, 40, 211, 131, + 160, 16, 40, 201, 214, 160, 16, 40, 198, 141, 160, 16, 40, 230, 158, 160, + 16, 40, 193, 131, 160, 16, 40, 209, 1, 160, 16, 40, 247, 137, 160, 16, + 40, 197, 50, 160, 16, 40, 247, 104, 215, 198, 160, 16, 40, 205, 93, 79, + 222, 187, 160, 16, 40, 247, 151, 160, 16, 40, 197, 235, 160, 16, 40, 201, + 100, 197, 235, 160, 16, 40, 219, 31, 160, 16, 40, 202, 37, 160, 16, 40, + 196, 54, 160, 16, 40, 228, 184, 235, 71, 160, 16, 40, 250, 204, 160, 16, + 40, 209, 15, 250, 204, 160, 16, 40, 248, 31, 160, 16, 40, 209, 0, 248, + 31, 160, 16, 40, 251, 148, 160, 16, 40, 201, 46, 200, 186, 201, 45, 160, + 16, 40, 201, 46, 200, 186, 201, 44, 160, 16, 40, 200, 233, 160, 16, 40, + 208, 229, 160, 16, 40, 236, 215, 160, 16, 40, 236, 217, 160, 16, 40, 236, + 216, 160, 16, 40, 208, 141, 160, 16, 40, 208, 129, 160, 16, 40, 238, 207, + 160, 16, 40, 238, 206, 160, 16, 40, 238, 205, 160, 16, 40, 238, 204, 160, + 16, 40, 238, 203, 160, 16, 40, 251, 191, 160, 16, 40, 249, 62, 79, 217, + 42, 160, 16, 40, 249, 62, 79, 195, 174, 160, 16, 40, 207, 26, 160, 16, + 40, 228, 176, 160, 16, 40, 213, 190, 160, 16, 40, 237, 203, 160, 16, 40, + 215, 213, 160, 16, 40, 132, 235, 109, 160, 16, 40, 132, 211, 17, 218, + 250, 79, 232, 137, 211, 164, 218, 207, 234, 194, 230, 1, 217, 101, 230, + 246, 208, 24, 211, 52, 62, 219, 219, 223, 56, 50, 197, 241, 62, 196, 76, + 223, 56, 50, 197, 241, 62, 206, 203, 223, 56, 50, 197, 241, 62, 235, 122, + 223, 56, 50, 197, 241, 62, 202, 84, 2, 243, 10, 216, 213, 28, 63, 243, + 10, 28, 63, 243, 10, 88, 63, 243, 10, 195, 83, 88, 63, 243, 10, 233, 197, + 88, 63, 243, 10, 63, 243, 11, 239, 33, 62, 2, 243, 10, 206, 115, 199, + 178, 62, 198, 138, 201, 190, 62, 202, 84, 2, 201, 190, 156, 63, 201, 190, + 216, 213, 63, 201, 190, 28, 63, 201, 190, 88, 63, 201, 190, 195, 83, 88, + 63, 201, 190, 233, 197, 88, 63, 201, 190, 63, 51, 239, 33, 62, 195, 83, + 2, 201, 190, 63, 51, 239, 33, 62, 216, 213, 201, 190, 51, 199, 178, 62, + 198, 138, 237, 32, 62, 195, 83, 2, 237, 32, 62, 216, 213, 2, 237, 32, 63, + 237, 33, 239, 33, 62, 195, 83, 2, 237, 32, 63, 237, 33, 239, 33, 62, 216, + 213, 237, 32, 237, 33, 199, 178, 62, 198, 138, 218, 232, 62, 195, 83, 2, + 218, 232, 62, 216, 213, 2, 218, 232, 63, 218, 233, 239, 33, 62, 2, 218, + 232, 199, 4, 35, 238, 217, 156, 35, 238, 217, 216, 213, 35, 238, 217, 28, + 35, 238, 217, 195, 83, 28, 35, 238, 217, 195, 83, 88, 35, 238, 217, 233, + 197, 88, 35, 238, 217, 199, 4, 205, 154, 156, 205, 154, 216, 213, 205, + 154, 28, 205, 154, 88, 205, 154, 195, 83, 88, 205, 154, 233, 197, 88, + 205, 154, 156, 232, 226, 201, 206, 250, 193, 216, 213, 232, 226, 201, + 206, 250, 193, 28, 232, 226, 201, 206, 250, 193, 88, 232, 226, 201, 206, + 250, 193, 195, 83, 88, 232, 226, 201, 206, 250, 193, 233, 197, 88, 232, + 226, 201, 206, 250, 193, 156, 202, 136, 201, 206, 250, 193, 216, 213, + 202, 136, 201, 206, 250, 193, 28, 202, 136, 201, 206, 250, 193, 88, 202, + 136, 201, 206, 250, 193, 195, 83, 88, 202, 136, 201, 206, 250, 193, 233, + 197, 88, 202, 136, 201, 206, 250, 193, 156, 234, 164, 201, 206, 250, 193, + 216, 213, 234, 164, 201, 206, 250, 193, 28, 234, 164, 201, 206, 250, 193, + 88, 234, 164, 201, 206, 250, 193, 195, 83, 88, 234, 164, 201, 206, 250, + 193, 156, 115, 209, 60, 62, 201, 102, 216, 213, 115, 209, 60, 62, 201, + 102, 115, 209, 60, 62, 201, 102, 216, 213, 115, 209, 60, 209, 130, 201, + 102, 156, 232, 128, 209, 60, 62, 201, 102, 216, 213, 232, 128, 209, 60, + 62, 201, 102, 232, 128, 209, 60, 62, 201, 102, 216, 213, 232, 128, 209, + 60, 209, 130, 201, 102, 207, 19, 156, 232, 128, 209, 60, 209, 130, 201, + 102, 156, 232, 226, 209, 60, 62, 201, 102, 88, 232, 226, 209, 60, 62, + 201, 102, 216, 213, 202, 136, 209, 60, 62, 201, 102, 88, 202, 136, 209, + 60, 62, 201, 102, 202, 136, 209, 60, 209, 130, 201, 102, 216, 213, 234, + 164, 209, 60, 62, 201, 102, 88, 234, 164, 209, 60, 62, 201, 102, 195, 83, + 88, 234, 164, 209, 60, 62, 201, 102, 88, 234, 164, 209, 60, 209, 130, + 201, 102, 156, 197, 38, 209, 60, 62, 201, 102, 88, 197, 38, 209, 60, 62, + 201, 102, 88, 197, 38, 209, 60, 209, 130, 201, 102, 47, 197, 241, 214, + 106, 47, 197, 241, 47, 201, 190, 214, 106, 47, 201, 190, 213, 175, 209, + 60, 63, 201, 102, 220, 13, 211, 55, 243, 10, 220, 13, 192, 73, 243, 10, + 220, 13, 230, 201, 243, 10, 220, 13, 208, 138, 243, 10, 220, 13, 248, 19, + 243, 10, 220, 13, 207, 87, 201, 190, 220, 13, 248, 115, 201, 190, 220, + 13, 211, 55, 201, 190, 220, 13, 192, 73, 201, 190, 220, 13, 230, 201, + 201, 190, 220, 13, 208, 138, 201, 190, 220, 13, 248, 19, 201, 190, 88, + 234, 43, 56, 118, 64, 4, 2, 197, 242, 250, 235, 196, 66, 64, 4, 2, 197, + 242, 250, 235, 96, 64, 4, 2, 197, 242, 250, 235, 235, 119, 64, 4, 2, 197, + 242, 250, 235, 118, 64, 4, 216, 213, 197, 242, 250, 235, 196, 66, 64, 4, + 216, 213, 197, 242, 250, 235, 96, 64, 4, 216, 213, 197, 242, 250, 235, + 235, 119, 64, 4, 216, 213, 197, 242, 250, 235, 118, 64, 4, 220, 13, 197, + 242, 250, 235, 196, 66, 64, 4, 220, 13, 197, 242, 250, 235, 96, 64, 4, + 220, 13, 197, 242, 250, 235, 235, 119, 64, 4, 220, 13, 197, 242, 250, + 235, 118, 64, 4, 2, 234, 37, 250, 235, 196, 66, 64, 4, 2, 234, 37, 250, + 235, 96, 64, 4, 2, 234, 37, 250, 235, 235, 119, 64, 4, 2, 234, 37, 250, + 235, 118, 64, 4, 234, 37, 250, 235, 196, 66, 64, 4, 234, 37, 250, 235, + 96, 64, 4, 234, 37, 250, 235, 235, 119, 64, 4, 234, 37, 250, 235, 88, + 118, 64, 4, 234, 37, 250, 235, 88, 196, 66, 64, 4, 234, 37, 250, 235, 88, + 96, 64, 4, 234, 37, 250, 235, 88, 235, 119, 64, 4, 234, 37, 250, 235, 88, + 118, 64, 4, 220, 13, 234, 37, 250, 235, 88, 196, 66, 64, 4, 220, 13, 234, + 37, 250, 235, 88, 96, 64, 4, 220, 13, 234, 37, 250, 235, 88, 235, 119, + 64, 4, 220, 13, 234, 37, 250, 235, 118, 197, 240, 64, 4, 214, 215, 203, + 149, 196, 66, 197, 240, 64, 4, 214, 215, 203, 149, 96, 197, 240, 64, 4, + 214, 215, 203, 149, 235, 119, 197, 240, 64, 4, 214, 215, 203, 149, 118, + 197, 240, 64, 4, 216, 213, 203, 149, 196, 66, 197, 240, 64, 4, 216, 213, + 203, 149, 96, 197, 240, 64, 4, 216, 213, 203, 149, 235, 119, 197, 240, + 64, 4, 216, 213, 203, 149, 118, 197, 240, 64, 4, 28, 203, 149, 196, 66, + 197, 240, 64, 4, 28, 203, 149, 96, 197, 240, 64, 4, 28, 203, 149, 235, + 119, 197, 240, 64, 4, 28, 203, 149, 118, 197, 240, 64, 4, 88, 203, 149, + 196, 66, 197, 240, 64, 4, 88, 203, 149, 96, 197, 240, 64, 4, 88, 203, + 149, 235, 119, 197, 240, 64, 4, 88, 203, 149, 118, 197, 240, 64, 4, 195, + 83, 88, 203, 149, 196, 66, 197, 240, 64, 4, 195, 83, 88, 203, 149, 96, + 197, 240, 64, 4, 195, 83, 88, 203, 149, 235, 119, 197, 240, 64, 4, 195, + 83, 88, 203, 149, 118, 232, 251, 57, 196, 66, 232, 251, 57, 96, 232, 251, + 57, 235, 119, 232, 251, 57, 118, 112, 57, 196, 66, 112, 57, 96, 112, 57, + 235, 119, 112, 57, 118, 239, 61, 57, 196, 66, 239, 61, 57, 96, 239, 61, + 57, 235, 119, 239, 61, 57, 118, 88, 239, 61, 57, 196, 66, 88, 239, 61, + 57, 96, 88, 239, 61, 57, 235, 119, 88, 239, 61, 57, 118, 88, 57, 196, 66, + 88, 57, 96, 88, 57, 235, 119, 88, 57, 118, 49, 57, 196, 66, 49, 57, 96, + 49, 57, 235, 119, 49, 57, 186, 193, 105, 49, 57, 186, 234, 204, 49, 57, + 202, 2, 234, 204, 49, 57, 202, 2, 193, 105, 49, 57, 45, 50, 49, 57, 133, + 144, 49, 57, 193, 77, 118, 156, 181, 57, 193, 77, 196, 66, 156, 181, 57, + 193, 77, 96, 156, 181, 57, 193, 77, 235, 119, 156, 181, 57, 193, 77, 186, + 193, 105, 156, 181, 57, 193, 77, 186, 234, 204, 156, 181, 57, 193, 77, + 202, 2, 234, 204, 156, 181, 57, 193, 77, 202, 2, 193, 105, 156, 181, 57, + 193, 77, 118, 181, 57, 193, 77, 196, 66, 181, 57, 193, 77, 96, 181, 57, + 193, 77, 235, 119, 181, 57, 193, 77, 186, 193, 105, 181, 57, 193, 77, + 186, 234, 204, 181, 57, 193, 77, 202, 2, 234, 204, 181, 57, 193, 77, 202, + 2, 193, 105, 181, 57, 193, 77, 118, 216, 213, 181, 57, 193, 77, 196, 66, + 216, 213, 181, 57, 193, 77, 96, 216, 213, 181, 57, 193, 77, 235, 119, + 216, 213, 181, 57, 193, 77, 186, 193, 105, 216, 213, 181, 57, 193, 77, + 186, 234, 204, 216, 213, 181, 57, 193, 77, 202, 2, 234, 204, 216, 213, + 181, 57, 193, 77, 202, 2, 193, 105, 216, 213, 181, 57, 193, 77, 118, 88, + 181, 57, 193, 77, 196, 66, 88, 181, 57, 193, 77, 96, 88, 181, 57, 193, + 77, 235, 119, 88, 181, 57, 193, 77, 186, 193, 105, 88, 181, 57, 193, 77, + 186, 234, 204, 88, 181, 57, 193, 77, 202, 2, 234, 204, 88, 181, 57, 193, + 77, 202, 2, 193, 105, 88, 181, 57, 193, 77, 118, 195, 83, 88, 181, 57, + 193, 77, 196, 66, 195, 83, 88, 181, 57, 193, 77, 96, 195, 83, 88, 181, + 57, 193, 77, 235, 119, 195, 83, 88, 181, 57, 193, 77, 186, 193, 105, 195, + 83, 88, 181, 57, 193, 77, 186, 234, 204, 195, 83, 88, 181, 57, 193, 77, + 202, 2, 234, 204, 195, 83, 88, 181, 57, 193, 77, 202, 2, 193, 105, 195, + 83, 88, 181, 57, 118, 197, 242, 250, 235, 196, 66, 197, 242, 250, 235, + 96, 197, 242, 250, 235, 235, 119, 197, 242, 250, 235, 118, 63, 64, 193, + 53, 197, 242, 250, 235, 196, 66, 63, 64, 193, 53, 197, 242, 250, 235, 96, + 63, 64, 193, 53, 197, 242, 250, 235, 235, 119, 63, 64, 193, 53, 197, 242, + 250, 235, 118, 64, 4, 213, 8, 199, 215, 196, 66, 64, 4, 213, 8, 199, 215, + 96, 64, 4, 213, 8, 199, 215, 235, 119, 64, 4, 213, 8, 199, 215, 88, 64, + 203, 150, 193, 75, 107, 88, 64, 203, 150, 193, 75, 105, 198, 253, 88, 64, + 203, 150, 193, 75, 91, 230, 70, 88, 64, 203, 150, 193, 75, 91, 199, 0, + 118, 248, 74, 63, 57, 96, 248, 77, 203, 152, 63, 57, 118, 198, 54, 203, + 152, 63, 57, 96, 198, 54, 203, 152, 63, 57, 118, 219, 218, 63, 57, 96, + 206, 202, 63, 57, 118, 206, 202, 63, 57, 96, 219, 218, 63, 57, 118, 249, + 145, 203, 151, 63, 57, 96, 249, 145, 203, 151, 63, 57, 118, 232, 95, 203, + 151, 63, 57, 96, 232, 95, 203, 151, 63, 57, 63, 64, 203, 150, 193, 75, + 107, 63, 64, 203, 150, 193, 75, 105, 198, 253, 64, 209, 58, 196, 66, 199, + 25, 186, 193, 104, 64, 209, 58, 96, 199, 25, 238, 161, 202, 2, 193, 104, + 47, 238, 218, 232, 143, 4, 232, 128, 236, 138, 47, 238, 218, 232, 143, 4, + 105, 236, 138, 47, 238, 218, 232, 142, 45, 132, 243, 11, 4, 232, 128, + 236, 138, 45, 132, 243, 11, 4, 115, 236, 138, 45, 132, 243, 11, 4, 105, + 236, 138, 45, 132, 243, 11, 4, 236, 140, 45, 132, 243, 10, 235, 120, 233, + 96, 102, 235, 120, 233, 96, 213, 8, 102, 235, 120, 233, 96, 228, 251, 4, + 236, 140, 235, 120, 233, 96, 213, 8, 228, 251, 4, 236, 140, 209, 136, + 232, 247, 63, 229, 223, 248, 19, 229, 223, 209, 135, 230, 53, 191, 17, + 233, 103, 215, 229, 233, 103, 233, 104, 4, 199, 21, 214, 92, 233, 103, + 199, 2, 233, 103, 233, 104, 4, 229, 234, 206, 150, 233, 103, 228, 150, + 233, 103, 3, 79, 199, 34, 228, 186, 247, 139, 216, 233, 230, 53, 207, + 147, 249, 147, 79, 230, 53, 219, 223, 232, 231, 206, 207, 232, 231, 230, + 27, 230, 54, 4, 141, 23, 82, 232, 248, 238, 213, 228, 74, 218, 242, 191, + 239, 230, 54, 56, 233, 104, 4, 238, 238, 230, 9, 242, 208, 233, 103, 214, + 202, 233, 103, 206, 138, 211, 105, 199, 34, 232, 194, 219, 255, 235, 100, + 233, 103, 218, 178, 233, 103, 233, 104, 210, 182, 202, 56, 233, 103, 233, + 104, 4, 91, 233, 192, 207, 146, 230, 196, 233, 104, 4, 201, 103, 233, + 185, 230, 196, 233, 104, 4, 91, 220, 13, 23, 91, 2, 233, 193, 233, 104, + 4, 232, 253, 238, 241, 242, 219, 219, 96, 204, 2, 233, 104, 4, 200, 77, + 238, 241, 215, 179, 202, 64, 233, 104, 4, 202, 64, 233, 186, 23, 230, 54, + 238, 241, 215, 179, 233, 104, 4, 211, 77, 215, 180, 195, 9, 203, 54, 233, + 104, 4, 233, 208, 229, 235, 208, 226, 193, 35, 248, 40, 210, 181, 133, + 198, 87, 204, 31, 208, 214, 217, 91, 223, 163, 197, 46, 215, 194, 243, + 55, 203, 9, 209, 251, 236, 159, 247, 83, 222, 177, 233, 38, 215, 255, + 210, 21, 193, 8, 193, 144, 209, 44, 230, 32, 236, 201, 217, 35, 193, 69, + 232, 186, 235, 95, 4, 235, 93, 242, 226, 231, 15, 197, 74, 231, 16, 201, + 203, 231, 1, 214, 85, 206, 208, 232, 238, 209, 108, 216, 219, 205, 57, + 209, 108, 216, 219, 199, 1, 209, 108, 216, 219, 248, 61, 231, 10, 217, + 46, 250, 223, 196, 94, 238, 172, 201, 65, 220, 110, 201, 75, 23, 249, + 111, 202, 31, 232, 178, 236, 226, 238, 221, 250, 141, 238, 188, 249, 138, + 209, 12, 247, 87, 249, 124, 248, 43, 230, 201, 205, 165, 203, 142, 210, + 167, 79, 232, 161, 201, 9, 232, 205, 234, 179, 231, 17, 79, 216, 53, 210, + 56, 221, 116, 210, 163, 235, 76, 232, 138, 239, 16, 199, 207, 248, 62, + 243, 62, 248, 67, 4, 201, 203, 238, 182, 4, 201, 43, 242, 93, 248, 23, + 209, 176, 208, 218, 238, 155, 79, 216, 224, 205, 137, 247, 115, 232, 161, + 219, 232, 230, 200, 217, 82, 215, 206, 247, 146, 249, 127, 202, 64, 233, + 104, 4, 202, 64, 233, 186, 23, 115, 229, 221, 192, 87, 233, 103, 202, 64, + 233, 104, 4, 199, 131, 233, 104, 4, 210, 102, 228, 188, 23, 210, 102, + 230, 9, 233, 104, 4, 196, 98, 233, 186, 23, 193, 135, 215, 179, 211, 5, + 233, 103, 232, 107, 233, 103, 213, 168, 236, 224, 233, 103, 233, 104, + 229, 6, 249, 147, 199, 125, 233, 104, 4, 209, 93, 233, 185, 205, 125, + 220, 119, 242, 96, 230, 253, 229, 129, 248, 91, 232, 207, 203, 52, 238, + 235, 219, 100, 233, 103, 205, 81, 197, 62, 196, 96, 233, 103, 234, 214, + 235, 85, 249, 64, 203, 128, 210, 249, 232, 120, 233, 103, 247, 215, 237, + 128, 230, 235, 219, 78, 207, 5, 203, 13, 201, 184, 231, 29, 233, 103, + 191, 85, 233, 103, 229, 216, 205, 110, 200, 42, 238, 224, 222, 82, 219, + 70, 210, 58, 229, 121, 210, 108, 207, 173, 219, 41, 215, 196, 216, 90, + 249, 133, 200, 148, 217, 92, 236, 165, 202, 78, 211, 22, 211, 54, 202, + 102, 232, 209, 210, 239, 249, 4, 248, 149, 205, 61, 230, 163, 236, 162, + 208, 202, 247, 117, 234, 109, 242, 64, 207, 87, 230, 78, 234, 109, 242, + 64, 238, 171, 230, 78, 234, 109, 242, 64, 249, 113, 234, 109, 242, 64, + 63, 230, 78, 248, 98, 219, 212, 232, 159, 198, 56, 200, 184, 200, 179, + 205, 188, 195, 81, 234, 212, 4, 229, 225, 251, 235, 215, 190, 193, 91, + 217, 74, 193, 91, 216, 223, 250, 250, 216, 223, 219, 212, 243, 118, 193, + 116, 238, 180, 205, 159, 203, 146, 248, 208, 248, 62, 231, 197, 211, 93, + 233, 85, 193, 174, 247, 216, 217, 29, 235, 104, 228, 27, 238, 190, 248, + 9, 199, 134, 197, 214, 201, 105, 209, 250, 221, 80, 209, 250, 237, 144, + 209, 250, 233, 104, 4, 215, 224, 252, 29, 243, 86, 211, 118, 252, 29, + 249, 8, 209, 250, 209, 251, 4, 229, 230, 209, 251, 223, 163, 201, 82, + 206, 130, 209, 251, 242, 228, 209, 251, 223, 163, 218, 247, 209, 24, 217, + 124, 233, 87, 195, 177, 216, 174, 234, 125, 231, 148, 191, 5, 248, 50, + 211, 55, 229, 223, 248, 171, 247, 111, 205, 94, 231, 9, 242, 96, 202, 34, + 207, 87, 231, 43, 234, 67, 232, 242, 222, 238, 208, 125, 209, 175, 199, + 75, 197, 84, 209, 235, 236, 222, 236, 176, 55, 229, 204, 242, 69, 252, + 71, 232, 244, 233, 202, 198, 58, 248, 31, 217, 122, 218, 215, 218, 248, + 248, 78, 201, 204, 79, 198, 227, 249, 112, 79, 192, 100, 205, 188, 209, + 139, 199, 124, 249, 9, 248, 20, 249, 69, 206, 141, 79, 210, 135, 249, 88, + 79, 202, 37, 201, 205, 207, 103, 214, 196, 251, 134, 214, 82, 243, 105, + 221, 138, 214, 82, 243, 105, 208, 14, 214, 82, 243, 105, 206, 131, 214, + 82, 243, 105, 248, 152, 214, 82, 243, 105, 221, 76, 214, 82, 243, 105, + 210, 74, 63, 243, 105, 221, 77, 206, 122, 232, 134, 237, 124, 62, 243, + 105, 221, 77, 206, 122, 232, 134, 237, 124, 214, 82, 243, 105, 221, 77, + 206, 122, 232, 134, 237, 124, 63, 243, 105, 221, 139, 206, 122, 213, 170, + 237, 124, 63, 243, 105, 208, 15, 206, 122, 213, 170, 237, 124, 63, 243, + 105, 206, 132, 206, 122, 213, 170, 237, 124, 63, 243, 105, 248, 153, 206, + 122, 213, 170, 237, 124, 63, 243, 105, 221, 77, 206, 122, 213, 170, 237, + 124, 63, 243, 105, 210, 75, 206, 122, 213, 170, 237, 124, 62, 243, 105, + 221, 139, 206, 122, 213, 170, 237, 124, 62, 243, 105, 208, 15, 206, 122, + 213, 170, 237, 124, 62, 243, 105, 206, 132, 206, 122, 213, 170, 237, 124, + 62, 243, 105, 248, 153, 206, 122, 213, 170, 237, 124, 62, 243, 105, 221, + 77, 206, 122, 213, 170, 237, 124, 62, 243, 105, 210, 75, 206, 122, 213, + 170, 237, 124, 214, 82, 243, 105, 221, 139, 206, 122, 213, 170, 237, 124, + 214, 82, 243, 105, 208, 15, 206, 122, 213, 170, 237, 124, 214, 82, 243, + 105, 206, 132, 206, 122, 213, 170, 237, 124, 214, 82, 243, 105, 248, 153, + 206, 122, 213, 170, 237, 124, 214, 82, 243, 105, 221, 77, 206, 122, 213, + 170, 237, 124, 214, 82, 243, 105, 210, 75, 206, 122, 213, 170, 237, 124, + 63, 243, 105, 221, 77, 206, 122, 91, 228, 141, 198, 248, 237, 124, 62, + 243, 105, 221, 77, 206, 122, 91, 228, 141, 198, 248, 237, 124, 214, 82, + 243, 105, 221, 77, 206, 122, 91, 228, 141, 198, 248, 237, 124, 63, 243, + 105, 153, 221, 138, 63, 243, 105, 153, 208, 14, 63, 243, 105, 153, 206, + 131, 63, 243, 105, 153, 248, 152, 63, 243, 105, 153, 221, 76, 63, 243, + 105, 153, 210, 74, 62, 243, 105, 153, 221, 138, 62, 243, 105, 153, 208, + 14, 62, 243, 105, 153, 206, 131, 62, 243, 105, 153, 248, 152, 62, 243, + 105, 153, 221, 76, 62, 243, 105, 153, 210, 74, 214, 82, 243, 105, 153, + 221, 138, 214, 82, 243, 105, 153, 208, 14, 214, 82, 243, 105, 153, 206, + 131, 214, 82, 243, 105, 153, 248, 152, 214, 82, 243, 105, 153, 221, 76, + 214, 82, 243, 105, 153, 210, 74, 63, 243, 105, 221, 77, 206, 122, 105, + 228, 141, 197, 29, 237, 124, 62, 243, 105, 221, 77, 206, 122, 105, 228, + 141, 197, 29, 237, 124, 214, 82, 243, 105, 221, 77, 206, 122, 105, 228, + 141, 197, 29, 237, 124, 63, 243, 105, 221, 139, 206, 122, 105, 228, 141, + 203, 242, 237, 124, 63, 243, 105, 208, 15, 206, 122, 105, 228, 141, 203, + 242, 237, 124, 63, 243, 105, 206, 132, 206, 122, 105, 228, 141, 203, 242, + 237, 124, 63, 243, 105, 248, 153, 206, 122, 105, 228, 141, 203, 242, 237, + 124, 63, 243, 105, 221, 77, 206, 122, 105, 228, 141, 203, 242, 237, 124, + 63, 243, 105, 210, 75, 206, 122, 105, 228, 141, 203, 242, 237, 124, 62, + 243, 105, 221, 139, 206, 122, 105, 228, 141, 203, 242, 237, 124, 62, 243, + 105, 208, 15, 206, 122, 105, 228, 141, 203, 242, 237, 124, 62, 243, 105, + 206, 132, 206, 122, 105, 228, 141, 203, 242, 237, 124, 62, 243, 105, 248, + 153, 206, 122, 105, 228, 141, 203, 242, 237, 124, 62, 243, 105, 221, 77, + 206, 122, 105, 228, 141, 203, 242, 237, 124, 62, 243, 105, 210, 75, 206, + 122, 105, 228, 141, 203, 242, 237, 124, 214, 82, 243, 105, 221, 139, 206, + 122, 105, 228, 141, 203, 242, 237, 124, 214, 82, 243, 105, 208, 15, 206, + 122, 105, 228, 141, 203, 242, 237, 124, 214, 82, 243, 105, 206, 132, 206, + 122, 105, 228, 141, 203, 242, 237, 124, 214, 82, 243, 105, 248, 153, 206, + 122, 105, 228, 141, 203, 242, 237, 124, 214, 82, 243, 105, 221, 77, 206, + 122, 105, 228, 141, 203, 242, 237, 124, 214, 82, 243, 105, 210, 75, 206, + 122, 105, 228, 141, 203, 242, 237, 124, 63, 243, 105, 221, 77, 206, 122, + 115, 228, 141, 233, 20, 237, 124, 62, 243, 105, 221, 77, 206, 122, 115, + 228, 141, 233, 20, 237, 124, 214, 82, 243, 105, 221, 77, 206, 122, 115, + 228, 141, 233, 20, 237, 124, 63, 243, 105, 234, 38, 62, 243, 105, 234, + 38, 214, 82, 243, 105, 234, 38, 63, 243, 105, 234, 39, 206, 122, 213, + 170, 237, 124, 62, 243, 105, 234, 39, 206, 122, 213, 170, 237, 124, 214, + 82, 243, 105, 234, 39, 206, 122, 213, 170, 237, 124, 63, 243, 105, 221, + 74, 63, 243, 105, 221, 73, 63, 243, 105, 221, 75, 62, 243, 105, 221, 74, + 62, 243, 105, 221, 73, 62, 243, 105, 221, 75, 192, 205, 207, 87, 231, + 150, 192, 205, 207, 87, 217, 84, 192, 205, 207, 87, 234, 131, 192, 205, + 207, 87, 228, 183, 192, 205, 207, 87, 243, 138, 192, 205, 207, 87, 247, + 114, 192, 205, 207, 87, 202, 26, 192, 205, 62, 231, 150, 192, 205, 62, + 217, 84, 192, 205, 62, 234, 131, 192, 205, 62, 228, 183, 192, 205, 62, + 243, 138, 192, 205, 62, 247, 114, 192, 205, 62, 202, 26, 249, 110, 203, + 51, 211, 98, 200, 135, 248, 27, 203, 25, 198, 237, 205, 139, 156, 248, + 115, 229, 223, 230, 198, 229, 223, 209, 131, 229, 223, 235, 99, 79, 248, + 120, 252, 35, 249, 96, 201, 76, 192, 234, 238, 201, 191, 253, 221, 119, + 210, 129, 248, 92, 217, 123, 193, 162, 209, 137, 214, 87, 236, 154, 217, + 64, 232, 182, 206, 187, 209, 100, 246, 252, 207, 118, 250, 132, 236, 196, + 220, 25, 249, 94, 216, 54, 229, 200, 252, 56, 179, 235, 94, 242, 88, 247, + 89, 205, 108, 205, 75, 220, 109, 102, 216, 26, 193, 65, 209, 83, 203, + 239, 214, 109, 221, 71, 248, 6, 215, 182, 198, 6, 198, 55, 229, 228, 209, + 109, 206, 147, 216, 27, 249, 111, 228, 16, 247, 100, 130, 249, 58, 230, + 60, 232, 170, 230, 54, 233, 80, 230, 79, 209, 180, 221, 203, 232, 179, + 193, 17, 248, 251, 242, 95, 209, 11, 209, 99, 193, 28, 233, 54, 218, 246, + 239, 4, 234, 105, 214, 89, 214, 90, 4, 234, 178, 228, 92, 223, 2, 193, + 61, 230, 243, 251, 129, 229, 223, 218, 205, 210, 20, 228, 149, 208, 226, + 217, 90, 208, 226, 209, 250, 209, 251, 4, 238, 208, 215, 204, 236, 147, + 248, 113, 248, 236, 210, 15, 211, 115, 232, 205, 199, 196, 232, 165, 199, + 132, 209, 7, 219, 92, 249, 11, 223, 18, 231, 36, 206, 128, 210, 62, 209, + 70, 216, 195, 233, 103, 205, 153, 233, 103, 233, 104, 4, 211, 77, 233, + 186, 23, 230, 54, 139, 215, 179, 233, 104, 4, 210, 47, 233, 193, 233, + 104, 4, 237, 39, 215, 179, 235, 138, 219, 113, 233, 103, 248, 145, 219, + 98, 248, 7, 203, 145, 233, 103, 230, 54, 4, 141, 232, 253, 23, 176, 238, + 213, 96, 230, 53, 118, 230, 53, 210, 183, 144, 230, 53, 210, 183, 133, + 230, 53, 141, 209, 58, 250, 183, 199, 34, 195, 55, 229, 224, 230, 28, + 118, 208, 135, 230, 53, 96, 208, 135, 230, 53, 184, 203, 236, 184, 203, + 206, 184, 203, 235, 184, 203, 191, 184, 203, 220, 184, 203, 205, 184, + 203, 234, 184, 203, 183, 184, 203, 213, 184, 203, 197, 184, 203, 227, + 184, 203, 190, 184, 203, 219, 184, 203, 204, 184, 203, 233, 184, 203, + 179, 184, 203, 209, 184, 203, 194, 184, 203, 223, 184, 203, 186, 184, + 203, 200, 184, 203, 230, 184, 203, 182, 184, 203, 212, 184, 203, 196, + 184, 203, 226, 184, 203, 189, 184, 203, 218, 184, 203, 203, 184, 203, + 232, 184, 203, 177, 184, 203, 207, 184, 203, 192, 184, 203, 221, 184, + 203, 184, 184, 203, 214, 184, 203, 198, 184, 203, 228, 184, 203, 180, + 184, 203, 210, 184, 203, 224, 184, 203, 187, 184, 203, 216, 184, 203, + 201, 184, 203, 231, 184, 203, 178, 184, 203, 208, 184, 203, 193, 184, + 203, 222, 184, 203, 185, 184, 203, 215, 184, 203, 199, 184, 203, 229, + 184, 203, 181, 184, 203, 211, 184, 203, 195, 184, 203, 225, 184, 203, + 188, 184, 203, 217, 184, 203, 202, 110, 45, 184, 237, 39, 110, 82, 45, + 119, 110, 247, 21, 110, 45, 184, 237, 39, 110, 82, 45, 119, 110, 183, + 110, 45, 184, 237, 39, 116, 82, 45, 119, 110, 247, 21, 110, 45, 184, 237, + 39, 116, 82, 45, 119, 110, 183, 110, 45, 184, 237, 39, 116, 45, 119, 110, + 247, 21, 110, 50, 184, 237, 39, 116, 82, 45, 119, 116, 247, 21, 110, 50, + 184, 237, 39, 116, 82, 45, 119, 116, 183, 110, 50, 184, 237, 39, 110, 82, + 45, 119, 116, 247, 21, 110, 50, 184, 237, 39, 110, 82, 45, 119, 116, 183, + 110, 50, 184, 237, 39, 110, 45, 119, 116, 247, 21, 110, 50, 184, 237, 39, + 110, 82, 45, 119, 116, 82, 183, 110, 50, 184, 237, 39, 110, 247, 22, 119, + 110, 82, 183, 110, 50, 184, 237, 39, 110, 45, 119, 110, 82, 183, 110, 50, + 184, 237, 39, 110, 247, 22, 119, 116, 82, 183, 110, 50, 184, 237, 39, + 110, 45, 119, 116, 82, 183, 110, 50, 184, 237, 39, 110, 247, 22, 119, + 116, 183, 110, 45, 184, 237, 39, 116, 247, 22, 119, 116, 82, 183, 110, + 45, 184, 237, 39, 116, 45, 119, 116, 82, 183, 110, 45, 184, 237, 39, 116, + 247, 22, 119, 110, 82, 183, 110, 45, 184, 237, 39, 116, 45, 119, 110, 82, + 183, 110, 45, 184, 237, 39, 116, 247, 22, 119, 110, 183, 110, 45, 184, + 237, 39, 116, 82, 45, 119, 110, 82, 183, 116, 50, 184, 237, 39, 110, 82, + 45, 119, 110, 247, 21, 116, 50, 184, 237, 39, 110, 82, 45, 119, 110, 183, + 116, 50, 184, 237, 39, 116, 82, 45, 119, 110, 247, 21, 116, 50, 184, 237, + 39, 116, 82, 45, 119, 110, 183, 116, 50, 184, 237, 39, 116, 45, 119, 110, + 247, 21, 116, 45, 184, 237, 39, 116, 82, 45, 119, 116, 247, 21, 116, 45, + 184, 237, 39, 116, 82, 45, 119, 116, 183, 116, 45, 184, 237, 39, 110, 82, + 45, 119, 116, 247, 21, 116, 45, 184, 237, 39, 110, 82, 45, 119, 116, 183, + 116, 45, 184, 237, 39, 110, 45, 119, 116, 247, 21, 116, 45, 184, 237, 39, + 110, 82, 45, 119, 116, 82, 183, 116, 45, 184, 237, 39, 110, 247, 22, 119, + 110, 82, 183, 116, 45, 184, 237, 39, 110, 45, 119, 110, 82, 183, 116, 45, + 184, 237, 39, 110, 247, 22, 119, 116, 82, 183, 116, 45, 184, 237, 39, + 110, 45, 119, 116, 82, 183, 116, 45, 184, 237, 39, 110, 247, 22, 119, + 116, 183, 116, 50, 184, 237, 39, 116, 247, 22, 119, 116, 82, 183, 116, + 50, 184, 237, 39, 116, 45, 119, 116, 82, 183, 116, 50, 184, 237, 39, 116, + 247, 22, 119, 110, 82, 183, 116, 50, 184, 237, 39, 116, 45, 119, 110, 82, + 183, 116, 50, 184, 237, 39, 116, 247, 22, 119, 110, 183, 116, 50, 184, + 237, 39, 116, 82, 45, 119, 110, 82, 183, 116, 23, 50, 23, 110, 197, 238, + 115, 208, 21, 248, 129, 45, 23, 110, 23, 50, 197, 238, 115, 208, 21, 248, + 129, 116, 23, 45, 23, 110, 197, 238, 115, 208, 21, 248, 129, 45, 23, 116, + 23, 50, 197, 238, 115, 208, 21, 248, 129, 45, 197, 238, 91, 208, 23, 248, + 129, 116, 197, 238, 91, 208, 23, 248, 129, 50, 197, 238, 91, 208, 23, + 248, 129, 110, 197, 238, 91, 208, 23, 248, 129, 81, 91, 234, 160, 248, + 127, 81, 91, 234, 160, 248, 126, 81, 91, 234, 160, 248, 125, 81, 91, 234, + 160, 248, 124, 81, 91, 234, 160, 248, 123, 81, 91, 234, 160, 248, 122, + 228, 241, 91, 234, 160, 248, 127, 228, 241, 91, 234, 160, 248, 126, 228, + 241, 91, 234, 160, 248, 125, 228, 241, 91, 234, 160, 248, 124, 228, 241, + 91, 234, 160, 248, 123, 228, 241, 91, 234, 160, 248, 122, 45, 23, 110, + 91, 234, 160, 248, 129, 45, 23, 116, 91, 234, 160, 248, 129, 50, 23, 116, + 91, 234, 160, 248, 129, 50, 23, 110, 91, 234, 160, 248, 129, 116, 23, + 110, 91, 234, 160, 248, 129, 228, 241, 91, 234, 160, 248, 128, 116, 91, + 208, 23, 248, 129, 116, 115, 234, 158, 248, 129, 116, 232, 226, 234, 158, + 248, 129, 116, 115, 208, 21, 248, 129, 116, 203, 247, 234, 158, 248, 129, + 50, 91, 208, 23, 248, 129, 50, 115, 234, 158, 248, 129, 50, 232, 226, + 234, 158, 248, 129, 50, 115, 208, 21, 248, 129, 50, 203, 247, 234, 158, + 248, 129, 45, 132, 216, 213, 203, 153, 50, 132, 216, 213, 203, 153, 116, + 132, 216, 213, 203, 153, 110, 132, 216, 213, 203, 153, 223, 95, 216, 213, + 203, 153, 116, 132, 184, 23, 110, 132, 223, 95, 216, 213, 203, 153, 116, + 132, 223, 95, 216, 213, 203, 154, 23, 110, 132, 248, 129, 45, 132, 223, + 95, 216, 213, 203, 154, 23, 50, 132, 248, 129, 243, 124, 248, 108, 233, + 5, 223, 95, 243, 124, 248, 108, 233, 5, 88, 228, 241, 233, 5, 116, 45, + 119, 110, 50, 233, 5, 116, 50, 119, 110, 45, 233, 5, 116, 23, 110, 197, + 238, 132, 248, 129, 45, 23, 50, 197, 238, 132, 248, 129, 116, 45, 197, + 238, 216, 213, 203, 153, 116, 50, 197, 238, 216, 213, 203, 153, 110, 50, + 197, 238, 216, 213, 203, 153, 110, 45, 197, 238, 216, 213, 203, 153, 111, + 122, 156, 237, 39, 116, 247, 22, 119, 82, 219, 224, 111, 122, 156, 237, + 39, 116, 247, 22, 119, 82, 183, 111, 122, 156, 237, 39, 82, 45, 119, 110, + 247, 21, 111, 122, 156, 237, 39, 82, 50, 119, 110, 247, 21, 111, 122, + 156, 237, 39, 116, 247, 22, 119, 82, 45, 119, 110, 247, 21, 111, 122, + 156, 237, 39, 116, 247, 22, 119, 82, 50, 119, 110, 247, 21, 111, 122, + 156, 237, 39, 82, 45, 119, 110, 247, 22, 119, 82, 183, 111, 122, 156, + 237, 39, 82, 45, 119, 116, 247, 22, 119, 82, 183, 111, 122, 156, 237, 39, + 116, 247, 22, 119, 82, 45, 23, 82, 50, 119, 110, 247, 21, 111, 122, 156, + 237, 39, 116, 247, 22, 119, 82, 50, 23, 82, 45, 119, 110, 247, 21, 111, + 122, 156, 237, 39, 116, 247, 22, 119, 82, 50, 119, 110, 247, 22, 119, 82, + 219, 224, 111, 122, 156, 237, 39, 116, 247, 22, 119, 82, 45, 119, 110, + 247, 22, 119, 82, 183, 111, 122, 156, 237, 39, 82, 45, 119, 116, 247, 22, + 119, 82, 50, 119, 110, 247, 21, 111, 122, 156, 237, 39, 82, 50, 119, 116, + 247, 22, 119, 82, 45, 119, 110, 247, 21, 111, 122, 156, 237, 39, 237, 32, + 111, 122, 156, 228, 241, 4, 81, 106, 250, 234, 209, 59, 223, 95, 243, + 126, 77, 45, 132, 206, 42, 217, 90, 50, 132, 206, 42, 217, 90, 223, 95, + 235, 119, 64, 4, 198, 136, 219, 214, 118, 64, 23, 116, 23, 110, 91, 234, + 160, 248, 129, 96, 64, 23, 116, 23, 110, 91, 234, 160, 248, 129, 235, + 119, 64, 23, 50, 91, 234, 160, 248, 129, 196, 66, 64, 23, 50, 91, 234, + 160, 248, 129, 45, 132, 232, 171, 50, 132, 232, 171, 195, 16, 35, 238, + 217, 50, 211, 77, 112, 236, 140, 214, 106, 237, 39, 238, 217, 214, 106, + 237, 39, 82, 50, 119, 110, 247, 21, 214, 106, 237, 39, 237, 32, 63, 88, + 205, 155, 4, 206, 113, 239, 0, 45, 199, 1, 63, 50, 209, 58, 223, 148, 82, + 199, 1, 63, 50, 209, 58, 223, 148, 50, 199, 1, 63, 50, 209, 58, 223, 148, + 214, 106, 112, 208, 13, 77, 201, 75, 233, 12, 201, 75, 233, 13, 4, 250, + 247, 207, 146, 201, 75, 233, 13, 219, 231, 219, 224, 201, 75, 233, 13, + 219, 231, 183, 201, 75, 233, 13, 4, 235, 106, 63, 196, 76, 243, 100, 205, + 42, 17, 191, 77, 205, 42, 17, 107, 205, 42, 17, 109, 205, 42, 17, 138, + 205, 42, 17, 134, 205, 42, 17, 149, 205, 42, 17, 169, 205, 42, 17, 175, + 205, 42, 17, 171, 205, 42, 17, 178, 12, 15, 228, 13, 12, 15, 228, 12, 12, + 15, 228, 11, 12, 15, 228, 10, 12, 15, 228, 9, 12, 15, 228, 8, 12, 15, + 228, 7, 12, 15, 228, 6, 12, 15, 228, 5, 12, 15, 228, 4, 12, 15, 228, 3, + 12, 15, 228, 2, 12, 15, 228, 1, 12, 15, 228, 0, 12, 15, 227, 255, 12, 15, + 227, 254, 12, 15, 227, 253, 12, 15, 227, 252, 12, 15, 227, 251, 12, 15, + 227, 250, 12, 15, 227, 249, 12, 15, 227, 248, 12, 15, 227, 247, 12, 15, + 227, 246, 12, 15, 227, 245, 12, 15, 227, 244, 12, 15, 227, 243, 12, 15, + 227, 242, 12, 15, 227, 241, 12, 15, 227, 240, 12, 15, 227, 239, 12, 15, + 227, 238, 12, 15, 227, 237, 12, 15, 227, 236, 12, 15, 227, 235, 12, 15, + 227, 234, 12, 15, 227, 233, 12, 15, 227, 232, 12, 15, 227, 231, 12, 15, + 227, 230, 12, 15, 227, 229, 12, 15, 227, 228, 12, 15, 227, 227, 12, 15, + 227, 226, 12, 15, 227, 225, 12, 15, 227, 224, 12, 15, 227, 223, 12, 15, + 227, 222, 12, 15, 227, 221, 12, 15, 227, 220, 12, 15, 227, 219, 12, 15, + 227, 218, 12, 15, 227, 217, 12, 15, 227, 216, 12, 15, 227, 215, 12, 15, + 227, 214, 12, 15, 227, 213, 12, 15, 227, 212, 12, 15, 227, 211, 12, 15, + 227, 210, 12, 15, 227, 209, 12, 15, 227, 208, 12, 15, 227, 207, 12, 15, + 227, 206, 12, 15, 227, 205, 12, 15, 227, 204, 12, 15, 227, 203, 12, 15, + 227, 202, 12, 15, 227, 201, 12, 15, 227, 200, 12, 15, 227, 199, 12, 15, + 227, 198, 12, 15, 227, 197, 12, 15, 227, 196, 12, 15, 227, 195, 12, 15, + 227, 194, 12, 15, 227, 193, 12, 15, 227, 192, 12, 15, 227, 191, 12, 15, + 227, 190, 12, 15, 227, 189, 12, 15, 227, 188, 12, 15, 227, 187, 12, 15, + 227, 186, 12, 15, 227, 185, 12, 15, 227, 184, 12, 15, 227, 183, 12, 15, + 227, 182, 12, 15, 227, 181, 12, 15, 227, 180, 12, 15, 227, 179, 12, 15, + 227, 178, 12, 15, 227, 177, 12, 15, 227, 176, 12, 15, 227, 175, 12, 15, + 227, 174, 12, 15, 227, 173, 12, 15, 227, 172, 12, 15, 227, 171, 12, 15, + 227, 170, 12, 15, 227, 169, 12, 15, 227, 168, 12, 15, 227, 167, 12, 15, + 227, 166, 12, 15, 227, 165, 12, 15, 227, 164, 12, 15, 227, 163, 12, 15, + 227, 162, 12, 15, 227, 161, 12, 15, 227, 160, 12, 15, 227, 159, 12, 15, + 227, 158, 12, 15, 227, 157, 12, 15, 227, 156, 12, 15, 227, 155, 12, 15, + 227, 154, 12, 15, 227, 153, 12, 15, 227, 152, 12, 15, 227, 151, 12, 15, + 227, 150, 12, 15, 227, 149, 12, 15, 227, 148, 12, 15, 227, 147, 12, 15, + 227, 146, 12, 15, 227, 145, 12, 15, 227, 144, 12, 15, 227, 143, 12, 15, + 227, 142, 12, 15, 227, 141, 12, 15, 227, 140, 12, 15, 227, 139, 12, 15, + 227, 138, 12, 15, 227, 137, 12, 15, 227, 136, 12, 15, 227, 135, 12, 15, + 227, 134, 12, 15, 227, 133, 12, 15, 227, 132, 12, 15, 227, 131, 12, 15, + 227, 130, 12, 15, 227, 129, 12, 15, 227, 128, 12, 15, 227, 127, 12, 15, + 227, 126, 12, 15, 227, 125, 12, 15, 227, 124, 12, 15, 227, 123, 12, 15, + 227, 122, 12, 15, 227, 121, 12, 15, 227, 120, 12, 15, 227, 119, 12, 15, + 227, 118, 12, 15, 227, 117, 12, 15, 227, 116, 12, 15, 227, 115, 12, 15, + 227, 114, 12, 15, 227, 113, 12, 15, 227, 112, 12, 15, 227, 111, 12, 15, + 227, 110, 12, 15, 227, 109, 12, 15, 227, 108, 12, 15, 227, 107, 12, 15, + 227, 106, 12, 15, 227, 105, 12, 15, 227, 104, 12, 15, 227, 103, 12, 15, + 227, 102, 12, 15, 227, 101, 12, 15, 227, 100, 12, 15, 227, 99, 12, 15, + 227, 98, 12, 15, 227, 97, 12, 15, 227, 96, 12, 15, 227, 95, 12, 15, 227, + 94, 12, 15, 227, 93, 12, 15, 227, 92, 12, 15, 227, 91, 12, 15, 227, 90, + 12, 15, 227, 89, 12, 15, 227, 88, 12, 15, 227, 87, 12, 15, 227, 86, 12, + 15, 227, 85, 12, 15, 227, 84, 12, 15, 227, 83, 12, 15, 227, 82, 12, 15, + 227, 81, 12, 15, 227, 80, 12, 15, 227, 79, 12, 15, 227, 78, 12, 15, 227, + 77, 12, 15, 227, 76, 12, 15, 227, 75, 12, 15, 227, 74, 12, 15, 227, 73, + 12, 15, 227, 72, 12, 15, 227, 71, 12, 15, 227, 70, 12, 15, 227, 69, 12, + 15, 227, 68, 12, 15, 227, 67, 12, 15, 227, 66, 12, 15, 227, 65, 12, 15, + 227, 64, 12, 15, 227, 63, 12, 15, 227, 62, 12, 15, 227, 61, 12, 15, 227, + 60, 12, 15, 227, 59, 12, 15, 227, 58, 12, 15, 227, 57, 12, 15, 227, 56, + 12, 15, 227, 55, 12, 15, 227, 54, 12, 15, 227, 53, 12, 15, 227, 52, 12, + 15, 227, 51, 12, 15, 227, 50, 12, 15, 227, 49, 12, 15, 227, 48, 12, 15, + 227, 47, 12, 15, 227, 46, 12, 15, 227, 45, 12, 15, 227, 44, 12, 15, 227, + 43, 12, 15, 227, 42, 12, 15, 227, 41, 12, 15, 227, 40, 12, 15, 227, 39, + 12, 15, 227, 38, 12, 15, 227, 37, 12, 15, 227, 36, 12, 15, 227, 35, 12, + 15, 227, 34, 12, 15, 227, 33, 12, 15, 227, 32, 12, 15, 227, 31, 12, 15, + 227, 30, 12, 15, 227, 29, 12, 15, 227, 28, 12, 15, 227, 27, 12, 15, 227, + 26, 12, 15, 227, 25, 12, 15, 227, 24, 12, 15, 227, 23, 12, 15, 227, 22, + 12, 15, 227, 21, 12, 15, 227, 20, 12, 15, 227, 19, 12, 15, 227, 18, 12, + 15, 227, 17, 12, 15, 227, 16, 12, 15, 227, 15, 12, 15, 227, 14, 12, 15, + 227, 13, 12, 15, 227, 12, 12, 15, 227, 11, 12, 15, 227, 10, 12, 15, 227, + 9, 12, 15, 227, 8, 12, 15, 227, 7, 12, 15, 227, 6, 12, 15, 227, 5, 12, + 15, 227, 4, 12, 15, 227, 3, 12, 15, 227, 2, 12, 15, 227, 1, 12, 15, 227, + 0, 12, 15, 226, 255, 12, 15, 226, 254, 12, 15, 226, 253, 12, 15, 226, + 252, 12, 15, 226, 251, 12, 15, 226, 250, 12, 15, 226, 249, 12, 15, 226, + 248, 12, 15, 226, 247, 12, 15, 226, 246, 12, 15, 226, 245, 12, 15, 226, + 244, 12, 15, 226, 243, 12, 15, 226, 242, 12, 15, 226, 241, 12, 15, 226, + 240, 12, 15, 226, 239, 12, 15, 226, 238, 12, 15, 226, 237, 12, 15, 226, + 236, 12, 15, 226, 235, 12, 15, 226, 234, 12, 15, 226, 233, 12, 15, 226, + 232, 12, 15, 226, 231, 12, 15, 226, 230, 12, 15, 226, 229, 12, 15, 226, + 228, 12, 15, 226, 227, 12, 15, 226, 226, 12, 15, 226, 225, 12, 15, 226, + 224, 12, 15, 226, 223, 12, 15, 226, 222, 12, 15, 226, 221, 12, 15, 226, + 220, 12, 15, 226, 219, 12, 15, 226, 218, 12, 15, 226, 217, 12, 15, 226, + 216, 12, 15, 226, 215, 12, 15, 226, 214, 12, 15, 226, 213, 12, 15, 226, + 212, 12, 15, 226, 211, 12, 15, 226, 210, 12, 15, 226, 209, 12, 15, 226, + 208, 12, 15, 226, 207, 12, 15, 226, 206, 12, 15, 226, 205, 12, 15, 226, + 204, 12, 15, 226, 203, 12, 15, 226, 202, 12, 15, 226, 201, 12, 15, 226, + 200, 12, 15, 226, 199, 12, 15, 226, 198, 12, 15, 226, 197, 12, 15, 226, + 196, 12, 15, 226, 195, 12, 15, 226, 194, 12, 15, 226, 193, 12, 15, 226, + 192, 12, 15, 226, 191, 12, 15, 226, 190, 12, 15, 226, 189, 12, 15, 226, + 188, 12, 15, 226, 187, 12, 15, 226, 186, 12, 15, 226, 185, 12, 15, 226, + 184, 12, 15, 226, 183, 12, 15, 226, 182, 12, 15, 226, 181, 12, 15, 226, + 180, 12, 15, 226, 179, 12, 15, 226, 178, 12, 15, 226, 177, 12, 15, 226, + 176, 12, 15, 226, 175, 12, 15, 226, 174, 12, 15, 226, 173, 12, 15, 226, + 172, 12, 15, 226, 171, 12, 15, 226, 170, 12, 15, 226, 169, 12, 15, 226, + 168, 12, 15, 226, 167, 12, 15, 226, 166, 12, 15, 226, 165, 12, 15, 226, + 164, 12, 15, 226, 163, 12, 15, 226, 162, 12, 15, 226, 161, 12, 15, 226, + 160, 12, 15, 226, 159, 12, 15, 226, 158, 12, 15, 226, 157, 12, 15, 226, + 156, 12, 15, 226, 155, 12, 15, 226, 154, 12, 15, 226, 153, 12, 15, 226, + 152, 12, 15, 226, 151, 12, 15, 226, 150, 12, 15, 226, 149, 12, 15, 226, + 148, 12, 15, 226, 147, 12, 15, 226, 146, 12, 15, 226, 145, 12, 15, 226, + 144, 12, 15, 226, 143, 12, 15, 226, 142, 12, 15, 226, 141, 12, 15, 226, + 140, 12, 15, 226, 139, 12, 15, 226, 138, 12, 15, 226, 137, 12, 15, 226, + 136, 12, 15, 226, 135, 12, 15, 226, 134, 12, 15, 226, 133, 12, 15, 226, + 132, 12, 15, 226, 131, 12, 15, 226, 130, 12, 15, 226, 129, 12, 15, 226, + 128, 12, 15, 226, 127, 12, 15, 226, 126, 12, 15, 226, 125, 12, 15, 226, + 124, 12, 15, 226, 123, 12, 15, 226, 122, 12, 15, 226, 121, 12, 15, 226, + 120, 12, 15, 226, 119, 12, 15, 226, 118, 12, 15, 226, 117, 12, 15, 226, + 116, 12, 15, 226, 115, 12, 15, 226, 114, 12, 15, 226, 113, 12, 15, 226, + 112, 12, 15, 226, 111, 12, 15, 226, 110, 12, 15, 226, 109, 12, 15, 226, + 108, 12, 15, 226, 107, 12, 15, 226, 106, 12, 15, 226, 105, 12, 15, 226, + 104, 12, 15, 226, 103, 12, 15, 226, 102, 12, 15, 226, 101, 12, 15, 226, + 100, 12, 15, 226, 99, 12, 15, 226, 98, 12, 15, 226, 97, 12, 15, 226, 96, + 12, 15, 226, 95, 12, 15, 226, 94, 12, 15, 226, 93, 12, 15, 226, 92, 12, + 15, 226, 91, 12, 15, 226, 90, 12, 15, 226, 89, 12, 15, 226, 88, 12, 15, + 226, 87, 12, 15, 226, 86, 12, 15, 226, 85, 12, 15, 226, 84, 12, 15, 226, + 83, 12, 15, 226, 82, 12, 15, 226, 81, 12, 15, 226, 80, 12, 15, 226, 79, + 12, 15, 226, 78, 12, 15, 226, 77, 12, 15, 226, 76, 12, 15, 226, 75, 12, + 15, 226, 74, 12, 15, 226, 73, 12, 15, 226, 72, 12, 15, 226, 71, 12, 15, + 226, 70, 12, 15, 226, 69, 12, 15, 226, 68, 12, 15, 226, 67, 12, 15, 226, + 66, 12, 15, 226, 65, 12, 15, 226, 64, 12, 15, 226, 63, 12, 15, 226, 62, + 12, 15, 226, 61, 12, 15, 226, 60, 12, 15, 226, 59, 12, 15, 226, 58, 12, + 15, 226, 57, 12, 15, 226, 56, 12, 15, 226, 55, 12, 15, 226, 54, 12, 15, + 226, 53, 12, 15, 226, 52, 12, 15, 226, 51, 12, 15, 226, 50, 12, 15, 226, + 49, 12, 15, 226, 48, 12, 15, 226, 47, 12, 15, 226, 46, 12, 15, 226, 45, + 12, 15, 226, 44, 12, 15, 226, 43, 12, 15, 226, 42, 12, 15, 226, 41, 12, + 15, 226, 40, 12, 15, 226, 39, 12, 15, 226, 38, 12, 15, 226, 37, 12, 15, + 226, 36, 12, 15, 226, 35, 12, 15, 226, 34, 12, 15, 226, 33, 12, 15, 226, + 32, 12, 15, 226, 31, 12, 15, 226, 30, 12, 15, 226, 29, 12, 15, 226, 28, + 12, 15, 226, 27, 12, 15, 226, 26, 12, 15, 226, 25, 12, 15, 226, 24, 12, + 15, 226, 23, 12, 15, 226, 22, 12, 15, 226, 21, 12, 15, 226, 20, 12, 15, + 226, 19, 12, 15, 226, 18, 12, 15, 226, 17, 12, 15, 226, 16, 12, 15, 226, + 15, 12, 15, 226, 14, 12, 15, 226, 13, 12, 15, 226, 12, 12, 15, 226, 11, + 12, 15, 226, 10, 12, 15, 226, 9, 12, 15, 226, 8, 12, 15, 226, 7, 12, 15, + 226, 6, 12, 15, 226, 5, 12, 15, 226, 4, 12, 15, 226, 3, 12, 15, 226, 2, + 12, 15, 226, 1, 12, 15, 226, 0, 12, 15, 225, 255, 12, 15, 225, 254, 12, + 15, 225, 253, 12, 15, 225, 252, 12, 15, 225, 251, 12, 15, 225, 250, 12, + 15, 225, 249, 12, 15, 225, 248, 12, 15, 225, 247, 12, 15, 225, 246, 12, + 15, 225, 245, 12, 15, 225, 244, 12, 15, 225, 243, 12, 15, 225, 242, 12, + 15, 225, 241, 12, 15, 225, 240, 220, 20, 199, 223, 199, 224, 201, 247, + 199, 224, 233, 216, 77, 199, 224, 207, 252, 77, 199, 224, 31, 56, 199, + 224, 236, 155, 56, 199, 224, 210, 13, 56, 199, 224, 251, 137, 199, 224, + 251, 49, 199, 224, 45, 210, 113, 199, 224, 50, 210, 113, 199, 224, 250, + 193, 199, 224, 108, 56, 199, 224, 242, 74, 199, 224, 228, 87, 199, 224, + 232, 80, 201, 63, 199, 224, 202, 23, 199, 224, 17, 191, 77, 199, 224, 17, + 107, 199, 224, 17, 109, 199, 224, 17, 138, 199, 224, 17, 134, 199, 224, + 17, 149, 199, 224, 17, 169, 199, 224, 17, 175, 199, 224, 17, 171, 199, + 224, 17, 178, 199, 224, 242, 83, 199, 224, 204, 25, 199, 224, 219, 180, + 56, 199, 224, 234, 43, 56, 199, 224, 230, 204, 56, 199, 224, 208, 13, 77, + 199, 224, 242, 72, 250, 182, 199, 224, 8, 6, 1, 65, 199, 224, 8, 6, 1, + 250, 120, 199, 224, 8, 6, 1, 247, 193, 199, 224, 8, 6, 1, 238, 127, 199, + 224, 8, 6, 1, 71, 199, 224, 8, 6, 1, 233, 175, 199, 224, 8, 6, 1, 232, + 51, 199, 224, 8, 6, 1, 230, 116, 199, 224, 8, 6, 1, 68, 199, 224, 8, 6, + 1, 223, 35, 199, 224, 8, 6, 1, 222, 152, 199, 224, 8, 6, 1, 172, 199, + 224, 8, 6, 1, 218, 168, 199, 224, 8, 6, 1, 215, 61, 199, 224, 8, 6, 1, + 74, 199, 224, 8, 6, 1, 210, 236, 199, 224, 8, 6, 1, 208, 104, 199, 224, + 8, 6, 1, 146, 199, 224, 8, 6, 1, 206, 8, 199, 224, 8, 6, 1, 200, 43, 199, + 224, 8, 6, 1, 66, 199, 224, 8, 6, 1, 196, 12, 199, 224, 8, 6, 1, 193, + 224, 199, 224, 8, 6, 1, 192, 235, 199, 224, 8, 6, 1, 192, 159, 199, 224, + 8, 6, 1, 191, 166, 199, 224, 45, 51, 248, 53, 199, 224, 207, 19, 202, 23, + 199, 224, 50, 51, 248, 53, 199, 224, 243, 2, 252, 60, 199, 224, 130, 219, + 112, 199, 224, 230, 211, 252, 60, 199, 224, 8, 2, 1, 65, 199, 224, 8, 2, + 1, 250, 120, 199, 224, 8, 2, 1, 247, 193, 199, 224, 8, 2, 1, 238, 127, + 199, 224, 8, 2, 1, 71, 199, 224, 8, 2, 1, 233, 175, 199, 224, 8, 2, 1, + 232, 51, 199, 224, 8, 2, 1, 230, 116, 199, 224, 8, 2, 1, 68, 199, 224, 8, + 2, 1, 223, 35, 199, 224, 8, 2, 1, 222, 152, 199, 224, 8, 2, 1, 172, 199, + 224, 8, 2, 1, 218, 168, 199, 224, 8, 2, 1, 215, 61, 199, 224, 8, 2, 1, + 74, 199, 224, 8, 2, 1, 210, 236, 199, 224, 8, 2, 1, 208, 104, 199, 224, + 8, 2, 1, 146, 199, 224, 8, 2, 1, 206, 8, 199, 224, 8, 2, 1, 200, 43, 199, + 224, 8, 2, 1, 66, 199, 224, 8, 2, 1, 196, 12, 199, 224, 8, 2, 1, 193, + 224, 199, 224, 8, 2, 1, 192, 235, 199, 224, 8, 2, 1, 192, 159, 199, 224, + 8, 2, 1, 191, 166, 199, 224, 45, 238, 171, 248, 53, 199, 224, 81, 219, + 112, 199, 224, 50, 238, 171, 248, 53, 199, 224, 198, 152, 247, 127, 199, + 223, 67, 204, 211, 67, 204, 200, 67, 204, 189, 67, 204, 177, 67, 204, + 166, 67, 204, 155, 67, 204, 144, 67, 204, 133, 67, 204, 122, 67, 204, + 114, 67, 204, 113, 67, 204, 112, 67, 204, 111, 67, 204, 109, 67, 204, + 108, 67, 204, 107, 67, 204, 106, 67, 204, 105, 67, 204, 104, 67, 204, + 103, 67, 204, 102, 67, 204, 101, 67, 204, 100, 67, 204, 98, 67, 204, 97, + 67, 204, 96, 67, 204, 95, 67, 204, 94, 67, 204, 93, 67, 204, 92, 67, 204, + 91, 67, 204, 90, 67, 204, 89, 67, 204, 87, 67, 204, 86, 67, 204, 85, 67, + 204, 84, 67, 204, 83, 67, 204, 82, 67, 204, 81, 67, 204, 80, 67, 204, 79, + 67, 204, 78, 67, 204, 76, 67, 204, 75, 67, 204, 74, 67, 204, 73, 67, 204, + 72, 67, 204, 71, 67, 204, 70, 67, 204, 69, 67, 204, 68, 67, 204, 67, 67, + 204, 65, 67, 204, 64, 67, 204, 63, 67, 204, 62, 67, 204, 61, 67, 204, 60, + 67, 204, 59, 67, 204, 58, 67, 204, 57, 67, 204, 56, 67, 204, 54, 67, 204, + 53, 67, 204, 52, 67, 204, 51, 67, 204, 50, 67, 204, 49, 67, 204, 48, 67, + 204, 47, 67, 204, 46, 67, 204, 45, 67, 204, 43, 67, 204, 42, 67, 204, 41, + 67, 204, 40, 67, 204, 39, 67, 204, 38, 67, 204, 37, 67, 204, 36, 67, 204, + 35, 67, 204, 34, 67, 205, 31, 67, 205, 30, 67, 205, 29, 67, 205, 28, 67, + 205, 27, 67, 205, 26, 67, 205, 25, 67, 205, 24, 67, 205, 23, 67, 205, 22, + 67, 205, 20, 67, 205, 19, 67, 205, 18, 67, 205, 17, 67, 205, 16, 67, 205, + 15, 67, 205, 14, 67, 205, 13, 67, 205, 12, 67, 205, 11, 67, 205, 9, 67, + 205, 8, 67, 205, 7, 67, 205, 6, 67, 205, 5, 67, 205, 4, 67, 205, 3, 67, + 205, 2, 67, 205, 1, 67, 205, 0, 67, 204, 254, 67, 204, 253, 67, 204, 252, + 67, 204, 251, 67, 204, 250, 67, 204, 249, 67, 204, 248, 67, 204, 247, 67, + 204, 246, 67, 204, 245, 67, 204, 243, 67, 204, 242, 67, 204, 241, 67, + 204, 240, 67, 204, 239, 67, 204, 238, 67, 204, 237, 67, 204, 236, 67, + 204, 235, 67, 204, 234, 67, 204, 232, 67, 204, 231, 67, 204, 230, 67, + 204, 229, 67, 204, 228, 67, 204, 227, 67, 204, 226, 67, 204, 225, 67, + 204, 224, 67, 204, 223, 67, 204, 221, 67, 204, 220, 67, 204, 219, 67, + 204, 218, 67, 204, 217, 67, 204, 216, 67, 204, 215, 67, 204, 214, 67, + 204, 213, 67, 204, 212, 67, 204, 210, 67, 204, 209, 67, 204, 208, 67, + 204, 207, 67, 204, 206, 67, 204, 205, 67, 204, 204, 67, 204, 203, 67, + 204, 202, 67, 204, 201, 67, 204, 199, 67, 204, 198, 67, 204, 197, 67, + 204, 196, 67, 204, 195, 67, 204, 194, 67, 204, 193, 67, 204, 192, 67, + 204, 191, 67, 204, 190, 67, 204, 188, 67, 204, 187, 67, 204, 186, 67, + 204, 185, 67, 204, 184, 67, 204, 183, 67, 204, 182, 67, 204, 181, 67, + 204, 180, 67, 204, 179, 67, 204, 176, 67, 204, 175, 67, 204, 174, 67, + 204, 173, 67, 204, 172, 67, 204, 171, 67, 204, 170, 67, 204, 169, 67, + 204, 168, 67, 204, 167, 67, 204, 165, 67, 204, 164, 67, 204, 163, 67, + 204, 162, 67, 204, 161, 67, 204, 160, 67, 204, 159, 67, 204, 158, 67, + 204, 157, 67, 204, 156, 67, 204, 154, 67, 204, 153, 67, 204, 152, 67, + 204, 151, 67, 204, 150, 67, 204, 149, 67, 204, 148, 67, 204, 147, 67, + 204, 146, 67, 204, 145, 67, 204, 143, 67, 204, 142, 67, 204, 141, 67, + 204, 140, 67, 204, 139, 67, 204, 138, 67, 204, 137, 67, 204, 136, 67, + 204, 135, 67, 204, 134, 67, 204, 132, 67, 204, 131, 67, 204, 130, 67, + 204, 129, 67, 204, 128, 67, 204, 127, 67, 204, 126, 67, 204, 125, 67, + 204, 124, 67, 204, 123, 67, 204, 121, 67, 204, 120, 67, 204, 119, 67, + 204, 118, 67, 204, 117, 67, 204, 116, 67, 204, 115, 212, 138, 212, 140, + 201, 98, 79, 229, 232, 202, 27, 201, 98, 79, 199, 53, 201, 6, 234, 95, + 79, 199, 53, 233, 244, 234, 95, 79, 198, 11, 234, 57, 234, 81, 234, 82, + 252, 51, 252, 52, 251, 189, 248, 238, 249, 140, 248, 16, 246, 240, 199, + 230, 228, 241, 199, 230, 228, 165, 199, 236, 219, 113, 233, 50, 214, 80, + 219, 112, 234, 95, 79, 219, 112, 219, 161, 213, 105, 234, 60, 219, 113, + 199, 230, 81, 199, 230, 193, 251, 232, 146, 233, 50, 233, 27, 247, 88, + 207, 22, 238, 236, 203, 77, 211, 14, 219, 33, 107, 202, 46, 203, 77, 223, + 162, 219, 33, 191, 77, 202, 222, 237, 210, 219, 103, 234, 14, 236, 185, + 237, 75, 239, 22, 107, 237, 199, 237, 75, 239, 22, 109, 237, 198, 237, + 75, 239, 22, 138, 237, 197, 237, 75, 239, 22, 134, 237, 196, 214, 106, + 252, 51, 214, 233, 200, 69, 223, 228, 200, 73, 234, 95, 79, 198, 12, 248, + 129, 233, 252, 247, 126, 247, 128, 234, 95, 79, 216, 212, 234, 58, 234, + 114, 200, 226, 200, 245, 234, 14, 234, 15, 223, 137, 204, 11, 134, 233, + 7, 204, 10, 232, 90, 223, 137, 204, 11, 138, 230, 187, 204, 10, 230, 184, + 223, 137, 204, 11, 109, 207, 98, 204, 10, 206, 74, 223, 137, 204, 11, + 107, 196, 91, 204, 10, 196, 45, 201, 250, 237, 116, 237, 118, 210, 208, + 246, 239, 210, 210, 137, 211, 158, 208, 220, 228, 244, 248, 42, 210, 1, + 229, 192, 248, 58, 213, 44, 248, 42, 229, 192, 214, 191, 223, 148, 223, + 150, 214, 73, 219, 112, 214, 104, 201, 98, 79, 205, 36, 251, 8, 201, 175, + 234, 95, 79, 205, 36, 251, 8, 234, 17, 246, 240, 199, 231, 203, 252, 228, + 241, 199, 231, 203, 252, 228, 162, 246, 240, 199, 231, 4, 222, 164, 228, + 241, 199, 231, 4, 222, 164, 228, 163, 219, 113, 199, 231, 203, 252, 81, + 199, 231, 203, 252, 193, 250, 210, 105, 219, 113, 232, 132, 210, 105, + 219, 113, 235, 123, 209, 94, 210, 105, 219, 113, 249, 139, 210, 105, 219, + 113, 196, 77, 209, 88, 207, 19, 219, 113, 233, 50, 207, 19, 223, 148, + 207, 1, 202, 170, 203, 77, 109, 202, 167, 201, 177, 202, 170, 203, 77, + 138, 202, 166, 201, 176, 237, 75, 239, 22, 201, 30, 237, 194, 208, 205, + 196, 44, 107, 208, 205, 196, 42, 208, 164, 208, 205, 196, 44, 109, 208, + 205, 196, 41, 208, 163, 203, 253, 198, 10, 201, 95, 201, 13, 247, 127, + 246, 239, 247, 61, 216, 169, 193, 171, 215, 81, 201, 98, 79, 230, 172, + 251, 8, 201, 98, 79, 208, 182, 251, 8, 201, 249, 234, 95, 79, 230, 172, + 251, 8, 234, 95, 79, 208, 182, 251, 8, 234, 55, 201, 98, 79, 201, 30, + 202, 9, 202, 170, 230, 216, 246, 240, 223, 96, 203, 170, 202, 170, 246, + 240, 223, 96, 205, 85, 239, 22, 204, 7, 223, 96, 238, 196, 201, 31, 199, + 80, 201, 118, 211, 68, 200, 58, 242, 73, 211, 34, 208, 206, 216, 168, + 209, 76, 251, 45, 208, 198, 242, 73, 251, 62, 214, 179, 202, 231, 8, 6, + 1, 231, 91, 8, 2, 1, 231, 91, 247, 4, 9, 2, 137, 34, 131, 4, 99, 249, 80, + 251, 166, 200, 63, 200, 232, 242, 84, 202, 110, 219, 224, 222, 81, 1, + 219, 62, 220, 17, 1, 232, 176, 232, 166, 220, 17, 1, 232, 176, 233, 62, + 220, 17, 1, 206, 162, 220, 17, 1, 219, 43, 86, 87, 248, 141, 203, 50, + 231, 54, 216, 118, 207, 9, 30, 125, 192, 54, 30, 125, 192, 50, 30, 125, + 201, 153, 30, 125, 192, 55, 232, 66, 232, 65, 232, 64, 215, 83, 232, 63, + 200, 197, 1, 251, 14, 68, 190, 232, 190, 233, 190, 235, 218, 229, 206, + 170, 218, 231, 206, 172, 210, 66, 218, 228, 206, 169, 213, 75, 216, 16, + 193, 50, 218, 230, 206, 171, 232, 89, 210, 65, 193, 111, 234, 119, 232, + 76, 216, 92, 211, 105, 196, 46, 113, 216, 92, 237, 216, 113, 118, 197, + 240, 64, 4, 55, 81, 106, 96, 197, 240, 64, 4, 55, 81, 106, 11, 5, 223, + 51, 77, 80, 1, 221, 206, 219, 73, 194, 251, 194, 140, 194, 72, 194, 61, + 194, 50, 194, 39, 194, 28, 194, 17, 194, 6, 194, 250, 194, 239, 194, 228, + 194, 217, 194, 206, 194, 195, 194, 184, 208, 221, 232, 146, 40, 81, 50, + 63, 219, 187, 248, 53, 247, 198, 211, 51, 77, 248, 100, 190, 234, 10, 3, + 212, 148, 199, 84, 10, 3, 212, 148, 139, 212, 148, 247, 231, 139, 247, + 230, 216, 218, 6, 1, 230, 116, 216, 218, 6, 1, 214, 70, 216, 218, 2, 1, + 230, 116, 216, 218, 2, 1, 214, 70, 61, 1, 235, 14, 73, 37, 16, 232, 88, + 202, 106, 243, 52, 195, 164, 194, 173, 194, 162, 194, 151, 194, 139, 194, + 128, 194, 117, 194, 106, 194, 95, 194, 84, 194, 76, 194, 75, 194, 74, + 194, 73, 194, 71, 194, 70, 194, 69, 194, 68, 194, 67, 194, 66, 194, 65, + 194, 64, 194, 63, 194, 62, 194, 60, 194, 59, 194, 58, 194, 57, 194, 56, + 194, 55, 194, 54, 194, 53, 194, 52, 194, 51, 194, 49, 194, 48, 194, 47, + 194, 46, 194, 45, 194, 44, 194, 43, 194, 42, 194, 41, 194, 40, 194, 38, + 194, 37, 194, 36, 194, 35, 194, 34, 194, 33, 194, 32, 194, 31, 194, 30, + 194, 29, 194, 27, 194, 26, 194, 25, 194, 24, 194, 23, 194, 22, 194, 21, + 194, 20, 194, 19, 194, 18, 194, 16, 194, 15, 194, 14, 194, 13, 194, 12, + 194, 11, 194, 10, 194, 9, 194, 8, 194, 7, 194, 5, 194, 4, 194, 3, 194, 2, + 194, 1, 194, 0, 193, 255, 193, 254, 193, 253, 193, 252, 194, 249, 194, + 248, 194, 247, 194, 246, 194, 245, 194, 244, 194, 243, 194, 242, 194, + 241, 194, 240, 194, 238, 194, 237, 194, 236, 194, 235, 194, 234, 194, + 233, 194, 232, 194, 231, 194, 230, 194, 229, 194, 227, 194, 226, 194, + 225, 194, 224, 194, 223, 194, 222, 194, 221, 194, 220, 194, 219, 194, + 218, 194, 216, 194, 215, 194, 214, 194, 213, 194, 212, 194, 211, 194, + 210, 194, 209, 194, 208, 194, 207, 194, 205, 194, 204, 194, 203, 194, + 202, 194, 201, 194, 200, 194, 199, 194, 198, 194, 197, 194, 196, 194, + 194, 194, 193, 194, 192, 194, 191, 194, 190, 194, 189, 194, 188, 194, + 187, 194, 186, 194, 185, 194, 183, 194, 182, 194, 181, 194, 180, 194, + 179, 194, 178, 194, 177, 194, 176, 194, 175, 194, 174, 194, 172, 194, + 171, 194, 170, 194, 169, 194, 168, 194, 167, 194, 166, 194, 165, 194, + 164, 194, 163, 194, 161, 194, 160, 194, 159, 194, 158, 194, 157, 194, + 156, 194, 155, 194, 154, 194, 153, 194, 152, 194, 150, 194, 149, 194, + 148, 194, 147, 194, 146, 194, 145, 194, 144, 194, 143, 194, 142, 194, + 141, 194, 138, 194, 137, 194, 136, 194, 135, 194, 134, 194, 133, 194, + 132, 194, 131, 194, 130, 194, 129, 194, 127, 194, 126, 194, 125, 194, + 124, 194, 123, 194, 122, 194, 121, 194, 120, 194, 119, 194, 118, 194, + 116, 194, 115, 194, 114, 194, 113, 194, 112, 194, 111, 194, 110, 194, + 109, 194, 108, 194, 107, 194, 105, 194, 104, 194, 103, 194, 102, 194, + 101, 194, 100, 194, 99, 194, 98, 194, 97, 194, 96, 194, 94, 194, 93, 194, + 92, 194, 91, 194, 90, 194, 89, 194, 88, 194, 87, 194, 86, 194, 85, 194, + 83, 194, 82, 194, 81, 194, 80, 194, 79, 194, 78, 194, 77, 221, 219, 31, + 56, 221, 219, 250, 193, 221, 219, 17, 191, 77, 221, 219, 17, 107, 221, + 219, 17, 109, 221, 219, 17, 138, 221, 219, 17, 134, 221, 219, 17, 149, + 221, 219, 17, 169, 221, 219, 17, 175, 221, 219, 17, 171, 221, 219, 17, + 178, 8, 6, 1, 42, 4, 217, 147, 23, 230, 210, 8, 2, 1, 42, 4, 217, 147, + 23, 230, 210, 8, 6, 1, 228, 74, 4, 217, 147, 23, 230, 210, 8, 2, 1, 228, + 74, 4, 217, 147, 23, 230, 210, 8, 6, 1, 126, 4, 217, 147, 23, 230, 210, + 8, 2, 1, 126, 4, 217, 147, 23, 230, 210, 8, 6, 1, 235, 15, 4, 81, 219, + 113, 60, 8, 2, 1, 235, 15, 4, 81, 219, 113, 60, 8, 6, 1, 235, 15, 4, 81, + 219, 113, 248, 233, 23, 230, 210, 8, 2, 1, 235, 15, 4, 81, 219, 113, 248, + 233, 23, 230, 210, 8, 6, 1, 235, 15, 4, 81, 219, 113, 248, 233, 23, 252, + 46, 8, 2, 1, 235, 15, 4, 81, 219, 113, 248, 233, 23, 252, 46, 8, 6, 1, + 187, 4, 81, 219, 113, 60, 8, 2, 1, 187, 4, 81, 219, 113, 60, 8, 6, 1, + 187, 4, 81, 219, 113, 248, 233, 23, 230, 210, 8, 2, 1, 187, 4, 81, 219, + 113, 248, 233, 23, 230, 210, 8, 6, 1, 187, 4, 81, 219, 113, 248, 233, 23, + 252, 46, 8, 2, 1, 187, 4, 81, 219, 113, 248, 233, 23, 252, 46, 8, 6, 1, + 206, 9, 4, 81, 219, 113, 60, 8, 2, 1, 206, 9, 4, 81, 219, 113, 60, 8, 6, + 1, 235, 15, 4, 243, 2, 23, 217, 146, 8, 2, 1, 235, 15, 4, 243, 2, 23, + 217, 146, 8, 6, 1, 235, 15, 4, 243, 2, 23, 247, 92, 8, 2, 1, 235, 15, 4, + 243, 2, 23, 247, 92, 8, 2, 1, 228, 74, 4, 75, 93, 23, 252, 46, 8, 2, 1, + 214, 71, 4, 198, 153, 58, 8, 6, 1, 42, 4, 211, 139, 23, 252, 46, 8, 2, 1, + 42, 4, 211, 139, 23, 252, 46, 8, 6, 1, 42, 4, 211, 139, 23, 198, 152, 8, + 2, 1, 42, 4, 211, 139, 23, 198, 152, 8, 6, 1, 235, 15, 4, 211, 139, 23, + 252, 46, 8, 2, 1, 235, 15, 4, 211, 139, 23, 252, 46, 8, 6, 1, 235, 15, 4, + 211, 139, 23, 198, 152, 8, 2, 1, 235, 15, 4, 211, 139, 23, 198, 152, 8, + 6, 1, 235, 15, 4, 75, 93, 23, 252, 46, 8, 2, 1, 235, 15, 4, 75, 93, 23, + 252, 46, 8, 6, 1, 235, 15, 4, 75, 93, 23, 198, 152, 8, 2, 1, 235, 15, 4, + 75, 93, 23, 198, 152, 8, 2, 1, 228, 74, 4, 75, 93, 23, 230, 210, 8, 2, 1, + 228, 74, 4, 75, 93, 23, 198, 152, 8, 6, 1, 228, 74, 4, 211, 139, 23, 252, + 46, 8, 2, 1, 228, 74, 4, 211, 139, 23, 75, 93, 23, 252, 46, 8, 6, 1, 228, + 74, 4, 211, 139, 23, 198, 152, 8, 2, 1, 228, 74, 4, 211, 139, 23, 75, 93, + 23, 198, 152, 8, 6, 1, 223, 36, 4, 198, 152, 8, 2, 1, 223, 36, 4, 75, 93, + 23, 198, 152, 8, 6, 1, 220, 143, 4, 198, 152, 8, 2, 1, 220, 143, 4, 198, + 152, 8, 6, 1, 218, 169, 4, 198, 152, 8, 2, 1, 218, 169, 4, 198, 152, 8, + 6, 1, 207, 222, 4, 198, 152, 8, 2, 1, 207, 222, 4, 198, 152, 8, 6, 1, + 126, 4, 211, 139, 23, 252, 46, 8, 2, 1, 126, 4, 211, 139, 23, 252, 46, 8, + 6, 1, 126, 4, 211, 139, 23, 198, 152, 8, 2, 1, 126, 4, 211, 139, 23, 198, + 152, 8, 6, 1, 126, 4, 217, 147, 23, 252, 46, 8, 2, 1, 126, 4, 217, 147, + 23, 252, 46, 8, 6, 1, 126, 4, 217, 147, 23, 198, 152, 8, 2, 1, 126, 4, + 217, 147, 23, 198, 152, 8, 2, 1, 252, 26, 4, 230, 210, 8, 2, 1, 211, 77, + 187, 4, 230, 210, 8, 2, 1, 211, 77, 187, 4, 252, 46, 8, 2, 1, 153, 196, + 13, 4, 230, 210, 8, 2, 1, 153, 196, 13, 4, 252, 46, 8, 2, 1, 205, 87, 4, + 230, 210, 8, 2, 1, 205, 87, 4, 252, 46, 8, 2, 1, 228, 250, 205, 87, 4, + 230, 210, 8, 2, 1, 228, 250, 205, 87, 4, 252, 46, 9, 204, 7, 99, 4, 230, + 58, 93, 4, 251, 192, 9, 204, 7, 99, 4, 230, 58, 93, 4, 193, 133, 9, 204, + 7, 99, 4, 230, 58, 93, 4, 131, 217, 99, 9, 204, 7, 99, 4, 230, 58, 93, 4, + 211, 151, 9, 204, 7, 99, 4, 230, 58, 93, 4, 66, 9, 204, 7, 99, 4, 230, + 58, 93, 4, 191, 225, 9, 204, 7, 99, 4, 230, 58, 93, 4, 71, 9, 204, 7, 99, + 4, 230, 58, 93, 4, 252, 25, 9, 204, 7, 213, 25, 4, 222, 4, 100, 204, 7, + 40, 1, 208, 96, 100, 204, 7, 40, 1, 221, 193, 100, 204, 7, 40, 1, 231, + 66, 100, 204, 7, 40, 1, 191, 123, 100, 204, 7, 40, 1, 237, 180, 100, 204, + 7, 40, 1, 207, 6, 100, 204, 7, 40, 1, 233, 109, 100, 204, 7, 40, 1, 191, + 175, 248, 225, 204, 7, 40, 1, 206, 109, 248, 225, 204, 7, 40, 1, 207, 6, + 248, 225, 204, 7, 40, 1, 191, 175, 230, 144, 204, 7, 40, 1, 219, 73, 230, + 144, 204, 7, 40, 1, 203, 165, 230, 144, 204, 7, 40, 1, 221, 193, 230, + 144, 204, 7, 40, 1, 231, 66, 230, 144, 204, 7, 40, 1, 191, 123, 230, 144, + 204, 7, 40, 1, 233, 109, 211, 45, 204, 7, 40, 1, 206, 109, 211, 45, 204, + 7, 40, 1, 207, 6, 248, 225, 1, 221, 187, 44, 120, 222, 152, 44, 120, 214, + 70, 44, 120, 247, 193, 44, 120, 212, 103, 44, 120, 197, 135, 44, 120, + 213, 80, 44, 120, 200, 43, 44, 120, 215, 61, 44, 120, 210, 236, 44, 120, + 218, 168, 44, 120, 192, 159, 44, 120, 146, 44, 120, 172, 44, 120, 196, + 12, 44, 120, 219, 63, 44, 120, 219, 74, 44, 120, 206, 110, 44, 120, 213, + 62, 44, 120, 223, 35, 44, 120, 203, 167, 44, 120, 201, 178, 44, 120, 206, + 8, 44, 120, 230, 116, 44, 120, 220, 247, 44, 5, 222, 127, 44, 5, 221, + 166, 44, 5, 221, 145, 44, 5, 220, 232, 44, 5, 220, 187, 44, 5, 222, 22, + 44, 5, 222, 13, 44, 5, 222, 102, 44, 5, 221, 67, 44, 5, 221, 41, 44, 5, + 222, 42, 44, 5, 214, 67, 44, 5, 214, 16, 44, 5, 214, 12, 44, 5, 213, 237, + 44, 5, 213, 228, 44, 5, 214, 55, 44, 5, 214, 53, 44, 5, 214, 64, 44, 5, + 213, 249, 44, 5, 213, 244, 44, 5, 214, 57, 44, 5, 247, 159, 44, 5, 243, + 29, 44, 5, 243, 19, 44, 5, 238, 195, 44, 5, 238, 153, 44, 5, 247, 42, 44, + 5, 247, 34, 44, 5, 247, 148, 44, 5, 242, 99, 44, 5, 239, 18, 44, 5, 247, + 76, 44, 5, 212, 100, 44, 5, 212, 81, 44, 5, 212, 75, 44, 5, 212, 58, 44, + 5, 212, 50, 44, 5, 212, 90, 44, 5, 212, 89, 44, 5, 212, 97, 44, 5, 212, + 65, 44, 5, 212, 62, 44, 5, 212, 93, 44, 5, 197, 131, 44, 5, 197, 111, 44, + 5, 197, 110, 44, 5, 197, 99, 44, 5, 197, 96, 44, 5, 197, 127, 44, 5, 197, + 126, 44, 5, 197, 130, 44, 5, 197, 109, 44, 5, 197, 108, 44, 5, 197, 129, + 44, 5, 213, 78, 44, 5, 213, 64, 44, 5, 213, 63, 44, 5, 213, 47, 44, 5, + 213, 46, 44, 5, 213, 74, 44, 5, 213, 73, 44, 5, 213, 77, 44, 5, 213, 49, + 44, 5, 213, 48, 44, 5, 213, 76, 44, 5, 199, 245, 44, 5, 198, 193, 44, 5, + 198, 170, 44, 5, 197, 94, 44, 5, 197, 49, 44, 5, 199, 145, 44, 5, 199, + 121, 44, 5, 199, 217, 44, 5, 159, 44, 5, 198, 59, 44, 5, 199, 166, 44, 5, + 214, 250, 44, 5, 213, 219, 44, 5, 213, 186, 44, 5, 212, 178, 44, 5, 212, + 115, 44, 5, 214, 121, 44, 5, 214, 110, 44, 5, 214, 236, 44, 5, 213, 43, + 44, 5, 213, 26, 44, 5, 214, 205, 44, 5, 210, 220, 44, 5, 209, 185, 44, 5, + 209, 145, 44, 5, 208, 165, 44, 5, 208, 128, 44, 5, 210, 63, 44, 5, 210, + 49, 44, 5, 210, 198, 44, 5, 209, 73, 44, 5, 209, 37, 44, 5, 210, 80, 44, + 5, 217, 151, 44, 5, 216, 100, 44, 5, 216, 61, 44, 5, 215, 155, 44, 5, + 215, 93, 44, 5, 216, 232, 44, 5, 216, 211, 44, 5, 217, 112, 44, 5, 216, + 12, 44, 5, 215, 211, 44, 5, 217, 25, 44, 5, 192, 140, 44, 5, 192, 33, 44, + 5, 192, 23, 44, 5, 191, 225, 44, 5, 191, 188, 44, 5, 192, 80, 44, 5, 192, + 77, 44, 5, 192, 119, 44, 5, 192, 12, 44, 5, 191, 246, 44, 5, 192, 91, 44, + 5, 207, 178, 44, 5, 207, 1, 44, 5, 206, 195, 44, 5, 206, 68, 44, 5, 206, + 29, 44, 5, 207, 113, 44, 5, 207, 84, 44, 5, 207, 156, 44, 5, 206, 162, + 44, 5, 206, 134, 44, 5, 207, 125, 44, 5, 220, 125, 44, 5, 219, 146, 44, + 5, 219, 128, 44, 5, 218, 225, 44, 5, 218, 194, 44, 5, 219, 238, 44, 5, + 219, 228, 44, 5, 220, 96, 44, 5, 219, 43, 44, 5, 219, 8, 44, 5, 220, 0, + 44, 5, 195, 187, 44, 5, 195, 69, 44, 5, 195, 51, 44, 5, 193, 249, 44, 5, + 193, 241, 44, 5, 195, 153, 44, 5, 195, 148, 44, 5, 195, 183, 44, 5, 195, + 24, 44, 5, 195, 8, 44, 5, 195, 160, 44, 5, 219, 61, 44, 5, 219, 56, 44, + 5, 219, 55, 44, 5, 219, 52, 44, 5, 219, 51, 44, 5, 219, 58, 44, 5, 219, + 57, 44, 5, 219, 60, 44, 5, 219, 54, 44, 5, 219, 53, 44, 5, 219, 59, 44, + 5, 219, 72, 44, 5, 219, 65, 44, 5, 219, 64, 44, 5, 219, 48, 44, 5, 219, + 47, 44, 5, 219, 68, 44, 5, 219, 67, 44, 5, 219, 71, 44, 5, 219, 50, 44, + 5, 219, 49, 44, 5, 219, 69, 44, 5, 206, 108, 44, 5, 206, 97, 44, 5, 206, + 96, 44, 5, 206, 89, 44, 5, 206, 82, 44, 5, 206, 104, 44, 5, 206, 103, 44, + 5, 206, 107, 44, 5, 206, 95, 44, 5, 206, 94, 44, 5, 206, 106, 44, 5, 213, + 60, 44, 5, 213, 55, 44, 5, 213, 54, 44, 5, 213, 51, 44, 5, 213, 50, 44, + 5, 213, 57, 44, 5, 213, 56, 44, 5, 213, 59, 44, 5, 213, 53, 44, 5, 213, + 52, 44, 5, 213, 58, 44, 5, 223, 31, 44, 5, 222, 244, 44, 5, 222, 236, 44, + 5, 222, 182, 44, 5, 222, 162, 44, 5, 223, 10, 44, 5, 223, 8, 44, 5, 223, + 25, 44, 5, 222, 201, 44, 5, 222, 191, 44, 5, 223, 17, 44, 5, 203, 160, + 44, 5, 203, 81, 44, 5, 203, 76, 44, 5, 203, 5, 44, 5, 202, 243, 44, 5, + 203, 113, 44, 5, 203, 111, 44, 5, 203, 148, 44, 5, 203, 56, 44, 5, 203, + 48, 44, 5, 203, 122, 44, 5, 201, 174, 44, 5, 201, 142, 44, 5, 201, 138, + 44, 5, 201, 129, 44, 5, 201, 126, 44, 5, 201, 148, 44, 5, 201, 147, 44, + 5, 201, 173, 44, 5, 201, 134, 44, 5, 201, 133, 44, 5, 201, 150, 44, 5, + 205, 197, 44, 5, 202, 222, 44, 5, 202, 193, 44, 5, 201, 4, 44, 5, 200, + 160, 44, 5, 205, 68, 44, 5, 205, 50, 44, 5, 205, 181, 44, 5, 202, 46, 44, + 5, 202, 16, 44, 5, 205, 114, 44, 5, 230, 91, 44, 5, 229, 158, 44, 5, 229, + 130, 44, 5, 228, 159, 44, 5, 228, 128, 44, 5, 229, 245, 44, 5, 229, 215, + 44, 5, 230, 80, 44, 5, 229, 23, 44, 5, 228, 252, 44, 5, 230, 2, 44, 5, + 220, 246, 44, 5, 220, 245, 44, 5, 220, 240, 44, 5, 220, 239, 44, 5, 220, + 236, 44, 5, 220, 235, 44, 5, 220, 242, 44, 5, 220, 241, 44, 5, 220, 244, + 44, 5, 220, 238, 44, 5, 220, 237, 44, 5, 220, 243, 44, 5, 203, 14, 166, + 120, 3, 192, 105, 166, 120, 3, 207, 144, 166, 120, 3, 207, 50, 101, 1, + 196, 224, 95, 120, 3, 242, 91, 155, 95, 120, 3, 242, 91, 221, 215, 95, + 120, 3, 242, 91, 221, 67, 95, 120, 3, 242, 91, 221, 183, 95, 120, 3, 242, + 91, 213, 249, 95, 120, 3, 242, 91, 247, 160, 95, 120, 3, 242, 91, 247, 1, + 95, 120, 3, 242, 91, 242, 99, 95, 120, 3, 242, 91, 243, 68, 95, 120, 3, + 242, 91, 212, 65, 95, 120, 3, 242, 91, 238, 32, 95, 120, 3, 242, 91, 197, + 120, 95, 120, 3, 242, 91, 236, 174, 95, 120, 3, 242, 91, 197, 115, 95, + 120, 3, 242, 91, 180, 95, 120, 3, 242, 91, 190, 190, 95, 120, 3, 242, 91, + 199, 49, 95, 120, 3, 242, 91, 159, 95, 120, 3, 242, 91, 198, 241, 95, + 120, 3, 242, 91, 213, 43, 95, 120, 3, 242, 91, 249, 153, 95, 120, 3, 242, + 91, 209, 228, 95, 120, 3, 242, 91, 209, 73, 95, 120, 3, 242, 91, 209, + 199, 95, 120, 3, 242, 91, 216, 12, 95, 120, 3, 242, 91, 192, 12, 95, 120, + 3, 242, 91, 206, 162, 95, 120, 3, 242, 91, 219, 43, 95, 120, 3, 242, 91, + 195, 24, 95, 120, 3, 242, 91, 203, 165, 95, 120, 3, 242, 91, 201, 175, + 95, 120, 3, 242, 91, 188, 95, 120, 3, 242, 91, 140, 95, 120, 3, 242, 91, + 173, 95, 18, 3, 242, 91, 208, 96, 95, 223, 149, 18, 3, 242, 91, 208, 33, + 95, 223, 149, 18, 3, 242, 91, 206, 17, 95, 223, 149, 18, 3, 242, 91, 206, + 10, 95, 223, 149, 18, 3, 242, 91, 208, 75, 95, 18, 3, 211, 113, 95, 18, + 3, 252, 167, 229, 120, 1, 248, 181, 214, 68, 229, 120, 1, 248, 181, 214, + 16, 229, 120, 1, 248, 181, 213, 237, 229, 120, 1, 248, 181, 214, 55, 229, + 120, 1, 248, 181, 213, 249, 72, 1, 248, 181, 214, 68, 72, 1, 248, 181, + 214, 16, 72, 1, 248, 181, 213, 237, 72, 1, 248, 181, 214, 55, 72, 1, 248, + 181, 213, 249, 72, 1, 251, 228, 247, 42, 72, 1, 251, 228, 197, 94, 72, 1, + 251, 228, 159, 72, 1, 251, 228, 210, 236, 52, 1, 233, 200, 233, 199, 239, + 26, 163, 164, 52, 1, 233, 199, 233, 200, 239, 26, 163, 164, }; static const unsigned short phrasebook_offset1[] = { @@ -20584,39 +20721,39 @@ static const unsigned short phrasebook_offset1[] = { 148, 104, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 104, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 104, 182, 183, 104, 184, 185, - 186, 187, 104, 188, 189, 190, 191, 192, 193, 104, 104, 194, 195, 196, - 197, 104, 198, 104, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, - 104, 104, 104, 104, 104, 104, 104, 104, 211, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, + 186, 187, 104, 188, 189, 190, 191, 192, 193, 194, 104, 195, 196, 197, + 198, 104, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 104, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, - 104, 104, 104, 104, 104, 104, 104, 221, 222, 223, 224, 225, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 223, 224, 225, 226, 227, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, - 104, 104, 104, 104, 104, 104, 104, 104, 104, 226, 227, 228, 229, 230, - 231, 232, 233, 104, 104, 104, 104, 234, 235, 236, 237, 104, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 228, 229, 230, 231, 232, + 233, 234, 235, 104, 104, 104, 104, 236, 237, 238, 239, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, - 104, 104, 104, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 104, + 104, 104, 104, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, - 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 248, 249, - 250, 251, 252, 253, 254, 104, 104, 104, 104, 104, 104, 104, 104, 104, - 104, 104, 104, 104, 104, 104, 104, 104, 104, 255, 256, 104, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 250, 251, + 252, 253, 254, 255, 256, 104, 104, 104, 104, 104, 104, 104, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 257, 258, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, - 104, 104, 104, 104, 104, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 104, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 104, 104, 104, 104, 104, 104, 104, 104, 280, 104, 281, 104, 282, - 104, 104, 283, 104, 104, 104, 104, 104, 104, 104, 104, 104, 284, 285, - 286, 287, 104, 104, 104, 104, 104, 288, 289, 290, 104, 291, 292, 104, - 104, 293, 294, 295, 296, 297, 104, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 104, 104, 104, + 104, 104, 104, 104, 104, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 104, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 104, 104, 104, 104, 104, 104, 104, 104, 282, 104, 283, 284, 285, + 104, 104, 286, 104, 104, 104, 287, 104, 104, 104, 104, 104, 288, 289, + 290, 291, 104, 104, 104, 104, 104, 292, 293, 294, 104, 295, 296, 104, + 104, 297, 298, 299, 300, 301, 104, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, @@ -20652,8 +20789,8 @@ static const unsigned short phrasebook_offset1[] = { 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, - 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 316, 317, 318, - 319, 320, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 320, 321, 322, + 323, 324, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, @@ -21056,7 +21193,7 @@ static const unsigned short phrasebook_offset1[] = { 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, - 104, 104, 104, 321, 104, 322, 323, 104, 104, 104, 104, 104, 104, 104, + 104, 104, 104, 325, 104, 326, 327, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, @@ -21092,8 +21229,8 @@ static const unsigned short phrasebook_offset1[] = { 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, - 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 324, 325, 326, - 327, 328, 329, 330, 331, 104, 104, 104, 104, 104, 104, 104, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 328, 329, 330, + 331, 332, 333, 334, 335, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, @@ -21446,2045 +21583,2052 @@ static const unsigned int phrasebook_offset2[] = { 17007, 17013, 0, 17019, 17024, 17030, 17036, 0, 0, 0, 0, 0, 0, 0, 17041, 17046, 0, 0, 0, 0, 0, 0, 17053, 17060, 0, 17065, 17071, 17077, 17083, 0, 0, 17090, 17095, 17099, 17103, 17107, 17111, 17115, 17119, 17123, 17127, - 0, 17131, 17136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17141, 17147, - 17151, 17155, 17159, 17165, 17168, 17172, 17175, 17179, 17182, 17186, - 17190, 0, 17194, 17197, 17201, 0, 17205, 17208, 17212, 17216, 17219, - 17223, 17227, 17231, 17235, 17239, 17243, 17247, 17251, 17255, 17259, - 17263, 17267, 17271, 17275, 17279, 17283, 17287, 17291, 17294, 17298, - 17301, 17305, 17309, 17313, 17316, 17319, 17322, 17326, 17329, 17333, - 17337, 17341, 17345, 17349, 17352, 17355, 17359, 17366, 17372, 17376, - 17381, 17385, 17390, 17394, 17399, 17404, 0, 17410, 17414, 17419, 0, - 17424, 17428, 17433, 17438, 17442, 17447, 0, 0, 0, 0, 17451, 17457, - 17463, 17469, 17475, 17481, 17487, 17493, 17499, 17505, 17511, 17517, - 17523, 17528, 17533, 17538, 0, 0, 17544, 17548, 17551, 17554, 17557, - 17560, 17563, 17566, 17569, 17572, 17575, 17579, 17584, 17588, 17594, - 17600, 17606, 17612, 17618, 17624, 17628, 17634, 17640, 17646, 17651, - 17657, 0, 17663, 17667, 17671, 0, 17675, 17679, 17683, 17687, 17691, - 17695, 17699, 17703, 17707, 17711, 17715, 17719, 17723, 17727, 17731, - 17735, 17739, 17743, 0, 0, 0, 17747, 17753, 17759, 17765, 17771, 17777, - 17783, 17789, 17795, 17801, 17807, 17813, 17821, 17827, 17833, 17839, - 17845, 17851, 17857, 17863, 17869, 17875, 17881, 17887, 0, 17893, 17899, - 17905, 17911, 17917, 17923, 17927, 17933, 17937, 0, 17941, 0, 0, 17947, - 17951, 17957, 17963, 17969, 17973, 17979, 0, 0, 0, 17983, 0, 0, 0, 0, - 17987, 17992, 17999, 18006, 18013, 18020, 0, 18027, 0, 18034, 18039, - 18044, 18051, 18058, 18067, 18078, 18087, 0, 0, 0, 0, 0, 0, 18092, 18098, - 18103, 18108, 18113, 18118, 18123, 18128, 18133, 18138, 0, 0, 18143, - 18150, 18157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18162, 18170, 18178, - 18186, 18194, 18202, 18210, 18218, 18226, 18234, 18242, 18250, 18258, - 18266, 18274, 18281, 18289, 18297, 18305, 18313, 18321, 18328, 18336, - 18344, 18352, 18360, 18368, 18376, 18384, 18392, 18400, 18408, 18416, - 18423, 18431, 18439, 18445, 18453, 18459, 18467, 18475, 18483, 18491, - 18499, 18507, 18514, 18522, 18528, 18535, 18543, 18551, 18559, 18566, - 18574, 18582, 18590, 18597, 18605, 0, 0, 0, 0, 18611, 18618, 18625, - 18633, 18640, 18650, 18660, 18666, 18672, 18678, 18686, 18694, 18702, - 18710, 18716, 18722, 18728, 18734, 18739, 18743, 18747, 18751, 18755, - 18759, 18763, 18767, 18771, 18775, 18781, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 17131, 17136, 17141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17149, 17155, + 17159, 17163, 17167, 17173, 17176, 17180, 17183, 17187, 17190, 17194, + 17198, 0, 17202, 17205, 17209, 0, 17213, 17216, 17220, 17224, 17227, + 17231, 17235, 17239, 17243, 17247, 17251, 17255, 17259, 17263, 17267, + 17271, 17275, 17279, 17283, 17287, 17291, 17295, 17299, 17302, 17306, + 17309, 17313, 17317, 17321, 17324, 17327, 17330, 17334, 17337, 17341, + 17345, 17349, 17353, 17357, 17360, 17363, 17367, 17374, 17380, 17384, + 17389, 17393, 17398, 17402, 17407, 17412, 0, 17418, 17422, 17427, 0, + 17432, 17436, 17441, 17446, 17450, 17455, 0, 0, 0, 0, 17459, 17465, + 17471, 17477, 17483, 17489, 17495, 17501, 17507, 17513, 17519, 17525, + 17531, 17536, 17541, 17546, 0, 0, 17552, 17556, 17559, 17562, 17565, + 17568, 17571, 17574, 17577, 17580, 17583, 17587, 17592, 17596, 17602, + 17608, 17614, 17620, 17626, 17632, 17636, 17642, 17648, 17654, 17659, + 17665, 0, 17671, 17675, 17679, 0, 17683, 17687, 17691, 17695, 17699, + 17703, 17707, 17711, 17715, 17719, 17723, 17727, 17731, 17735, 17739, + 17743, 17747, 17751, 0, 0, 0, 17755, 17761, 17767, 17773, 17779, 17785, + 17791, 17797, 17803, 17809, 17815, 17821, 17829, 17835, 17841, 17847, + 17853, 17859, 17865, 17871, 17877, 17883, 17889, 17895, 0, 17901, 17907, + 17913, 17919, 17925, 17931, 17935, 17941, 17945, 0, 17949, 0, 0, 17955, + 17959, 17965, 17971, 17977, 17981, 17987, 0, 0, 0, 17991, 0, 0, 0, 0, + 17995, 18000, 18007, 18014, 18021, 18028, 0, 18035, 0, 18042, 18047, + 18052, 18059, 18066, 18075, 18086, 18095, 0, 0, 0, 0, 0, 0, 18100, 18106, + 18111, 18116, 18121, 18126, 18131, 18136, 18141, 18146, 0, 0, 18151, + 18158, 18165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18170, 18178, 18186, + 18194, 18202, 18210, 18218, 18226, 18234, 18242, 18250, 18258, 18266, + 18274, 18282, 18289, 18297, 18305, 18313, 18321, 18329, 18336, 18344, + 18352, 18360, 18368, 18376, 18384, 18392, 18400, 18408, 18416, 18424, + 18431, 18439, 18447, 18453, 18461, 18467, 18475, 18483, 18491, 18499, + 18507, 18515, 18522, 18530, 18536, 18543, 18551, 18559, 18567, 18574, + 18582, 18590, 18598, 18605, 18613, 0, 0, 0, 0, 18619, 18626, 18633, + 18641, 18648, 18658, 18668, 18674, 18680, 18686, 18694, 18702, 18710, + 18718, 18724, 18730, 18736, 18742, 18747, 18751, 18755, 18759, 18763, + 18767, 18771, 18775, 18779, 18783, 18789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 18795, 18800, 0, 18807, 0, 18814, 18821, 18826, 18831, 18838, 0, + 18845, 18852, 18857, 18864, 18871, 18878, 18885, 18892, 18899, 18904, + 18908, 18915, 18922, 18929, 18934, 18939, 18944, 18951, 18958, 18965, + 18972, 18979, 18984, 18989, 0, 18996, 0, 19003, 19008, 19015, 19022, + 19029, 19036, 19043, 19047, 19054, 19058, 19063, 19071, 19077, 19083, + 19088, 19094, 19100, 19106, 19111, 19117, 19124, 19132, 19139, 0, 0, + 19146, 19151, 19157, 19162, 19168, 0, 19174, 0, 19179, 19186, 19193, + 19200, 19207, 19212, 19216, 0, 19220, 19225, 19229, 19233, 19237, 19241, + 19245, 19249, 19253, 19257, 0, 0, 19261, 19267, 19273, 19280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 19287, 19291, 19302, 19317, 19332, 19342, 19353, 19366, + 19377, 19383, 19391, 19401, 19407, 19415, 19419, 19425, 19431, 19439, + 19449, 19457, 19470, 19476, 19484, 19492, 19504, 19511, 19519, 19527, + 19535, 19543, 19551, 19559, 19569, 19573, 19576, 19579, 19582, 19585, + 19588, 19591, 19594, 19597, 19600, 19604, 19608, 19612, 19616, 19620, + 19624, 19628, 19632, 19636, 19641, 19647, 19657, 19671, 19681, 19687, + 19693, 19701, 19709, 19717, 19725, 19731, 19737, 19740, 19744, 19748, + 19752, 19756, 19760, 19764, 0, 19768, 19772, 19776, 19780, 19784, 19788, + 19792, 19796, 19800, 19804, 19808, 19811, 19814, 19818, 19822, 19826, + 19829, 19833, 19837, 19841, 19845, 19849, 19853, 19857, 19861, 19864, + 19867, 19870, 19874, 19878, 19881, 19884, 19887, 19891, 19896, 19900, 0, + 0, 0, 0, 19904, 19909, 19913, 19918, 19922, 19927, 19932, 19938, 19943, + 19949, 19953, 19958, 19962, 19967, 19977, 19983, 19989, 19996, 20006, + 20012, 20016, 20020, 20026, 20032, 20040, 20046, 20054, 20062, 20070, + 20080, 20088, 20098, 20103, 20109, 20115, 20121, 20127, 20133, 20139, 0, + 20145, 20151, 20157, 20163, 20169, 20175, 20181, 20187, 20193, 20199, + 20205, 20210, 20215, 20221, 20227, 20233, 20238, 20244, 20250, 20256, + 20262, 20268, 20274, 20280, 20286, 20291, 20296, 20301, 20307, 20313, + 20318, 20323, 20328, 20334, 20342, 20349, 0, 20356, 20363, 20376, 20383, + 20390, 20398, 20406, 20412, 20418, 20424, 20434, 20439, 20445, 20455, + 20465, 0, 20475, 20485, 20493, 20505, 20517, 20523, 20537, 20552, 20557, + 20562, 20570, 20578, 20586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20594, + 20597, 20601, 20605, 20609, 20613, 20617, 20621, 20625, 20629, 20633, + 20637, 20641, 20645, 20649, 20653, 20657, 20661, 20665, 20669, 20673, + 20676, 20679, 20683, 20687, 20691, 20694, 20697, 20700, 20703, 20707, + 20710, 20713, 20717, 20720, 20725, 20728, 20732, 20735, 20739, 20742, + 20747, 20750, 20754, 20761, 20766, 20770, 20775, 20779, 20784, 20788, + 20793, 20800, 20806, 20812, 20816, 20820, 20824, 20828, 20832, 20838, + 20844, 20851, 20857, 20862, 20866, 20869, 20872, 20875, 20878, 20881, + 20884, 20887, 20890, 20893, 20899, 20903, 20907, 20911, 20915, 20919, + 20923, 20927, 20931, 20936, 20940, 20945, 20950, 20956, 20961, 20967, + 20973, 20979, 20985, 20991, 20999, 21007, 21015, 21023, 21032, 21041, + 21052, 21062, 21072, 21083, 21094, 21104, 21114, 21124, 21134, 21144, + 21154, 21164, 21174, 21182, 21189, 21195, 21202, 21207, 21213, 21219, + 21225, 21231, 21237, 21243, 21248, 21254, 21260, 21266, 21272, 21277, + 21286, 21293, 21299, 21307, 21315, 21321, 21327, 21333, 21339, 21347, + 21355, 21365, 21373, 21381, 21387, 21392, 21397, 21402, 21407, 21412, + 21417, 21422, 21427, 21432, 21438, 21444, 21450, 21457, 21462, 21468, + 21473, 21478, 21483, 21488, 21493, 21498, 21503, 21508, 21513, 21518, + 21523, 21528, 21533, 21538, 21543, 21548, 21553, 21558, 21563, 21568, + 21573, 21578, 21583, 21588, 21593, 21598, 21603, 21608, 21613, 21618, + 21623, 21628, 21633, 21638, 21643, 21648, 21653, 0, 21658, 0, 0, 0, 0, 0, + 21663, 0, 0, 21668, 21672, 21676, 21680, 21684, 21688, 21692, 21696, + 21700, 21704, 21708, 21712, 21716, 21720, 21724, 21728, 21732, 21736, + 21740, 21744, 21748, 21752, 21756, 21760, 21764, 21768, 21772, 21776, + 21780, 21784, 21788, 21792, 21796, 21800, 21804, 21808, 21812, 21816, + 21820, 21824, 21828, 21832, 21837, 21841, 21846, 21851, 21855, 21860, + 21865, 21869, 21873, 21877, 21881, 21885, 21889, 21893, 21897, 21901, + 21905, 21909, 21913, 21917, 21921, 21925, 21929, 21933, 21937, 21941, + 21945, 21949, 21953, 21957, 21961, 21965, 21969, 21973, 21977, 21981, + 21985, 21989, 21993, 21997, 22001, 22005, 22009, 22013, 22017, 22021, + 22025, 22029, 22033, 22037, 22041, 22045, 22049, 22053, 22057, 22061, + 22065, 22069, 22073, 22077, 22081, 22085, 22089, 22093, 22097, 22101, + 22105, 22109, 22113, 22117, 22121, 22125, 22129, 22133, 22137, 22141, + 22145, 22149, 22153, 22157, 22161, 22165, 22169, 22173, 22177, 22181, + 22185, 22189, 22193, 22197, 22201, 22205, 22209, 22213, 22217, 22221, + 22225, 22229, 22233, 22237, 22241, 22245, 22249, 22254, 22258, 22263, + 22267, 22272, 22277, 22281, 22286, 22291, 22295, 22300, 22305, 22310, + 22315, 22319, 22324, 22329, 22334, 22339, 22344, 22349, 22353, 22358, + 22363, 22368, 22373, 22378, 22383, 22388, 22393, 22398, 22403, 22408, + 22413, 22418, 22423, 22428, 22433, 22438, 22443, 22448, 22453, 22458, + 22463, 22468, 22473, 22478, 22483, 22488, 22493, 22498, 22503, 22508, + 22513, 22518, 22523, 22528, 22533, 22538, 22543, 22548, 22553, 22558, + 22563, 22568, 22573, 22578, 22583, 22588, 22593, 22598, 22603, 22607, + 22611, 22615, 22619, 22623, 22627, 22631, 22635, 22639, 22643, 22647, + 22651, 22655, 22659, 22663, 22667, 22671, 22675, 22679, 22683, 22687, + 22691, 22695, 22699, 22703, 22707, 22711, 22715, 22719, 22723, 22727, + 22731, 22735, 22739, 22743, 22747, 22751, 22755, 22759, 22763, 22767, + 22771, 22775, 22779, 22783, 22787, 22791, 22795, 22799, 22803, 22807, + 22811, 22815, 22819, 22823, 22827, 22831, 22835, 22839, 22843, 22847, + 22851, 22855, 22859, 22863, 22867, 22871, 22875, 22879, 22883, 22887, + 22891, 22895, 22899, 22903, 22907, 22911, 22915, 22919, 22923, 22927, + 22931, 22935, 22939, 22943, 22947, 22951, 22955, 22958, 22962, 22966, + 22970, 22974, 22978, 22982, 22986, 22989, 22993, 22997, 23001, 23005, + 23009, 23013, 23017, 23021, 23025, 23029, 23033, 23037, 23041, 23045, + 23049, 23052, 23056, 23060, 23064, 23068, 23072, 23076, 23080, 23084, + 23088, 23092, 23096, 23100, 23104, 23108, 23112, 23115, 23119, 23123, + 23127, 23131, 23135, 23139, 23143, 23146, 23150, 23154, 23158, 23162, + 23166, 23170, 23174, 23178, 23182, 23186, 23190, 23194, 23198, 23202, + 23206, 23210, 23214, 23218, 23222, 23226, 23230, 23234, 23238, 0, 23242, + 23246, 23250, 23254, 0, 0, 23258, 23262, 23266, 23270, 23274, 23278, + 23282, 0, 23286, 0, 23290, 23294, 23298, 23302, 0, 0, 23306, 23310, + 23314, 23318, 23322, 23326, 23330, 23334, 23338, 23342, 23346, 23350, + 23354, 23358, 23362, 23366, 23370, 23374, 23378, 23382, 23386, 23390, + 23394, 23397, 23401, 23405, 23409, 23413, 23417, 23421, 23425, 23429, + 23433, 23437, 23441, 23445, 23449, 23453, 23457, 23461, 23465, 0, 23469, + 23473, 23477, 23481, 0, 0, 23485, 23488, 23492, 23496, 23500, 23504, + 23508, 23512, 23516, 23520, 23524, 23528, 23532, 23536, 23540, 23544, + 23548, 23553, 23558, 23563, 23569, 23575, 23580, 23585, 23591, 23594, + 23598, 23602, 23606, 23610, 23614, 23618, 23622, 0, 23626, 23630, 23634, + 23638, 0, 0, 23642, 23646, 23650, 23654, 23658, 23662, 23666, 0, 23670, + 0, 23674, 23678, 23682, 23686, 0, 0, 23690, 23694, 23698, 23702, 23706, + 23710, 23714, 23718, 23722, 23727, 23732, 23737, 23743, 23749, 23754, 0, + 23759, 23763, 23767, 23771, 23775, 23779, 23783, 23787, 23791, 23795, + 23799, 23803, 23807, 23811, 23815, 23819, 23823, 23826, 23830, 23834, + 23838, 23842, 23846, 23850, 23854, 23858, 23862, 23866, 23870, 23874, + 23878, 23882, 23886, 23890, 23894, 23898, 23902, 23906, 23910, 23914, + 23918, 23922, 23926, 23930, 23934, 23938, 23942, 23946, 23950, 23954, + 23958, 23962, 23966, 23970, 23974, 23978, 23982, 0, 23986, 23990, 23994, + 23998, 0, 0, 24002, 24006, 24010, 24014, 24018, 24022, 24026, 24030, + 24034, 24038, 24042, 24046, 24050, 24054, 24058, 24062, 24066, 24070, + 24074, 24078, 24082, 24086, 24090, 24094, 24098, 24102, 24106, 24110, + 24114, 24118, 24122, 24126, 24130, 24134, 24138, 24142, 24146, 24150, + 24154, 24158, 24162, 24166, 24170, 24174, 24178, 24182, 24186, 24190, + 24194, 24198, 24202, 24206, 24210, 24214, 24218, 24222, 24226, 24229, + 24233, 24237, 24241, 24245, 24249, 24253, 24257, 24261, 24265, 0, 0, + 24269, 24278, 24284, 24289, 24293, 24296, 24301, 24304, 24307, 24310, + 24315, 24319, 24324, 24327, 24330, 24333, 24336, 24339, 24342, 24345, + 24348, 24351, 24355, 24359, 24363, 24367, 24371, 24375, 24379, 24383, + 24387, 24391, 0, 0, 0, 24396, 24402, 24406, 24410, 24414, 24420, 24424, + 24428, 24432, 24438, 24442, 24446, 24450, 24456, 24460, 24464, 24468, + 24474, 24480, 24486, 24494, 24500, 24506, 24512, 24518, 24524, 0, 0, 0, + 0, 0, 0, 24530, 24533, 24536, 24539, 24542, 24545, 24549, 24553, 24556, + 24560, 24564, 24568, 24572, 24576, 24579, 24583, 24587, 24591, 24595, + 24599, 24602, 24606, 24610, 24614, 24618, 24622, 24625, 24629, 24633, + 24637, 24641, 24644, 24648, 24652, 24656, 24660, 24664, 24668, 24672, + 24676, 24680, 24684, 24688, 24692, 24696, 24699, 24703, 24707, 24711, + 24715, 24719, 24723, 24727, 24731, 24735, 24739, 24743, 24747, 24751, + 24755, 24759, 24763, 24767, 24771, 24775, 24779, 24783, 24787, 24791, + 24795, 24799, 24803, 24807, 24811, 24815, 24819, 24823, 24827, 24831, + 24835, 24838, 24842, 24846, 24850, 24854, 24858, 0, 0, 24862, 24867, + 24872, 24877, 24882, 24887, 0, 0, 24892, 24896, 24899, 24903, 24906, + 24910, 24913, 24917, 24923, 24928, 24932, 24935, 24939, 24943, 24949, + 24953, 24959, 24963, 24969, 24973, 24979, 24983, 24989, 24995, 24999, + 25005, 25009, 25015, 25021, 25025, 25031, 25037, 25042, 25047, 25055, + 25063, 25070, 25075, 25081, 25090, 25096, 25104, 25109, 25115, 25119, + 25123, 25127, 25131, 25135, 25139, 25143, 25147, 25151, 25155, 25161, + 25166, 25171, 25174, 25178, 25182, 25188, 25192, 25198, 25202, 25208, + 25212, 25218, 25222, 25228, 25232, 25238, 25242, 25248, 25254, 25258, + 25264, 25269, 25273, 25277, 25281, 25285, 25288, 25292, 25298, 25303, + 25308, 25312, 25316, 25320, 25326, 25330, 25336, 25340, 25346, 25349, + 25354, 25358, 25364, 25368, 25374, 25378, 25384, 25390, 25394, 25398, + 25402, 25406, 25410, 25414, 25418, 25422, 25426, 25430, 25434, 25440, + 25443, 25447, 25451, 25457, 25461, 25467, 25471, 25477, 25481, 25487, + 25491, 25497, 25501, 25507, 25511, 25517, 25523, 25527, 25531, 25537, + 25543, 25549, 25555, 25559, 25563, 25567, 25571, 25575, 25579, 25585, + 25589, 25593, 25597, 25603, 25607, 25613, 25617, 25623, 25627, 25633, + 25637, 25643, 25647, 25653, 25657, 25663, 25669, 25673, 25679, 25683, + 25687, 25691, 25695, 25699, 25703, 25709, 25712, 25716, 25720, 25726, + 25730, 25736, 25740, 25746, 25750, 25756, 25760, 25766, 25770, 25776, + 25780, 25786, 25792, 25796, 25802, 25806, 25812, 25818, 25822, 25826, + 25830, 25834, 25838, 25842, 25848, 25851, 25855, 25859, 25865, 25869, + 25875, 25879, 25885, 25891, 25895, 25900, 25904, 25908, 25912, 25916, + 25920, 25924, 25928, 25934, 25937, 25941, 25945, 25951, 25955, 25961, + 25965, 25971, 25975, 25981, 25985, 25991, 25995, 26001, 26005, 26011, + 26014, 26019, 26024, 26028, 26032, 26036, 26040, 26044, 26048, 26054, + 26057, 26061, 26065, 26071, 26075, 26081, 26085, 26091, 26095, 26101, + 26105, 26111, 26115, 26121, 26125, 26131, 26137, 26141, 26147, 26151, + 26157, 26163, 26169, 26175, 26181, 26187, 26193, 26199, 26203, 26207, + 26211, 26215, 26219, 26223, 26227, 26231, 26237, 26241, 26247, 26251, + 26257, 26261, 26267, 26271, 26277, 26281, 26287, 26291, 26297, 26301, + 26305, 26309, 26313, 26317, 26321, 26325, 26331, 26334, 26338, 26342, + 26348, 26352, 26358, 26362, 26368, 26372, 26378, 26382, 26388, 26392, + 26398, 26402, 26408, 26414, 26418, 26424, 26430, 26436, 26440, 26446, + 26452, 26456, 26460, 26464, 26468, 26472, 26478, 26481, 26485, 26490, + 26494, 26500, 26503, 26508, 26513, 26517, 26521, 26525, 26529, 26533, + 26537, 26541, 26545, 26549, 26555, 26559, 26563, 26569, 26573, 26579, + 26583, 26589, 26593, 26597, 26601, 26605, 26609, 26615, 26619, 26623, + 26627, 26631, 26635, 26639, 26643, 26647, 26651, 26655, 26661, 26667, + 26673, 26679, 26685, 26690, 26696, 26702, 26708, 26712, 26716, 26720, + 26724, 26728, 26732, 26736, 26740, 26744, 26748, 26752, 26756, 26760, + 26766, 26772, 26778, 26783, 26787, 26791, 26795, 26799, 26803, 26807, + 26811, 26815, 26819, 26825, 26831, 26837, 26843, 26849, 26855, 26861, + 26867, 26873, 26877, 26881, 26885, 26889, 26893, 26897, 26901, 26907, + 26913, 26919, 26925, 26931, 26937, 26943, 26949, 26955, 26960, 26965, + 26970, 26975, 26981, 26987, 26993, 26999, 27005, 27011, 27017, 27022, + 27028, 27034, 27040, 27045, 27051, 27057, 27063, 27068, 27073, 27078, + 27083, 27088, 27093, 27098, 27103, 27108, 27113, 27118, 27123, 27127, + 27132, 27137, 27142, 27147, 27152, 27157, 27162, 27167, 27172, 27177, + 27182, 27187, 27192, 27197, 27202, 27207, 27212, 27217, 27222, 27227, + 27232, 27237, 27242, 27247, 27252, 27257, 27262, 27267, 27272, 27276, + 27281, 27286, 27291, 27296, 27301, 27306, 27311, 27316, 27321, 27326, + 27331, 27336, 27341, 27346, 27351, 27356, 27361, 27366, 27371, 27376, + 27381, 27386, 27391, 27396, 27401, 27405, 27410, 27415, 27420, 27425, + 27430, 27434, 27439, 27444, 27449, 27454, 27459, 27463, 27468, 27474, + 27479, 27484, 27489, 27494, 27500, 27505, 27510, 27515, 27520, 27525, + 27530, 27535, 27540, 27545, 27550, 27555, 27560, 27564, 27569, 27574, + 27579, 27584, 27589, 27594, 27599, 27604, 27609, 27614, 27619, 27624, + 27629, 27634, 27639, 27644, 27649, 27654, 27659, 27664, 27669, 27674, + 27679, 27684, 27689, 27694, 27699, 27704, 27709, 27714, 27719, 27725, + 27730, 27735, 27740, 27745, 27750, 27755, 27760, 27765, 27770, 27775, + 27780, 27784, 27789, 27794, 27799, 27804, 27809, 27814, 27819, 27824, + 27829, 27834, 27839, 27844, 27849, 27854, 27859, 27864, 27869, 27874, + 27879, 27884, 27889, 27894, 27899, 27904, 27909, 27914, 27920, 27924, + 27928, 27932, 27936, 27940, 27944, 27948, 27952, 27958, 27964, 27970, + 27976, 27982, 27988, 27994, 28001, 28007, 28012, 28017, 28022, 28027, + 28032, 28037, 28042, 28047, 28052, 28057, 28062, 28067, 28072, 28077, + 28082, 28087, 28092, 28097, 28102, 28107, 28112, 28117, 28122, 28127, + 28132, 28137, 28142, 28147, 0, 0, 0, 28154, 28165, 28170, 28178, 28183, + 28188, 28193, 28202, 28207, 28213, 28219, 28225, 28230, 28236, 28242, + 28246, 28251, 28256, 28266, 28271, 28276, 28283, 28288, 28293, 28302, + 28307, 28316, 28323, 28330, 28337, 28344, 28355, 28362, 28367, 28377, + 28381, 28388, 28393, 28400, 28406, 28413, 28422, 28429, 28436, 28445, + 28452, 28457, 28462, 28473, 28480, 28485, 28496, 28503, 28508, 28513, + 28521, 28530, 28537, 28544, 28554, 28559, 28564, 28569, 28578, 28586, + 28591, 28596, 28601, 28606, 28611, 28616, 28621, 28626, 28631, 28636, + 28641, 28647, 28653, 28659, 28664, 28669, 28674, 28679, 28684, 28689, + 28698, 28707, 28716, 28725, 0, 0, 0, 0, 0, 0, 0, 28734, 28738, 28742, + 28746, 28750, 28755, 28760, 28765, 28770, 28774, 28778, 28783, 28787, + 28791, 28795, 28799, 28804, 28808, 28812, 28817, 28822, 28827, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 28832, 28838, 28842, 28846, 28850, 28854, 28859, 28864, + 28869, 28874, 28878, 28882, 28887, 28891, 28895, 28899, 28903, 28908, + 28912, 28916, 28921, 28926, 28931, 28937, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 28942, 28946, 28950, 28954, 28958, 28963, 28968, 28973, 28978, 28982, + 28986, 28991, 28995, 28999, 29003, 29007, 29012, 29016, 29020, 29025, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29030, 29034, 29038, 29042, 29046, + 29051, 29056, 29061, 29066, 29070, 29074, 29079, 29083, 0, 29087, 29091, + 29096, 0, 29100, 29105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29110, 29113, + 29117, 29121, 29125, 29129, 29133, 29137, 29141, 29145, 29149, 29153, + 29157, 29161, 29165, 29169, 29173, 29177, 29180, 29184, 29188, 29192, + 29196, 29200, 29204, 29208, 29212, 29216, 29220, 29224, 29228, 29232, + 29235, 29238, 29241, 29245, 29251, 29257, 29263, 29269, 29275, 29281, + 29287, 29293, 29299, 29305, 29311, 29317, 29323, 29329, 29338, 29347, + 29353, 29359, 29365, 29370, 29374, 29379, 29384, 29389, 29393, 29398, + 29403, 29408, 29412, 29417, 29421, 29426, 29431, 29436, 29441, 29445, + 29449, 29453, 29457, 29461, 29465, 29469, 29473, 29477, 29481, 29487, + 29491, 29495, 29499, 29503, 29507, 29515, 29521, 29525, 29531, 29535, + 29541, 29545, 0, 0, 29549, 29553, 29556, 29559, 29562, 29565, 29568, + 29571, 29574, 29577, 0, 0, 0, 0, 0, 0, 29580, 29588, 29596, 29604, 29612, + 29620, 29628, 29636, 29644, 29652, 0, 0, 0, 0, 0, 0, 29660, 29663, 29666, + 29669, 29674, 29677, 29682, 29689, 29697, 29702, 29709, 29712, 29719, + 29726, 29733, 29737, 29744, 29748, 29751, 29754, 29757, 29760, 29763, + 29766, 29769, 29772, 0, 0, 0, 0, 0, 0, 29775, 29778, 29781, 29784, 29787, + 29790, 29794, 29798, 29802, 29805, 29809, 29813, 29816, 29820, 29824, + 29827, 29830, 29833, 29837, 29841, 29845, 29849, 29853, 29856, 29859, + 29863, 29867, 29870, 29874, 29878, 29882, 29886, 29890, 29894, 29898, + 29902, 29909, 29914, 29919, 29924, 29929, 29935, 29941, 29947, 29953, + 29958, 29964, 29970, 29975, 29981, 29987, 29993, 29999, 30005, 30010, + 30016, 30021, 30027, 30033, 30039, 30045, 30051, 30056, 30061, 30067, + 30073, 30078, 30084, 30089, 30095, 30100, 30105, 30111, 30117, 30123, + 30129, 30135, 30141, 30147, 30153, 30159, 30165, 30171, 30177, 30182, + 30187, 30192, 30198, 30204, 0, 0, 0, 0, 0, 0, 0, 30212, 30221, 30230, + 30238, 30246, 30256, 30264, 30273, 30280, 30287, 30294, 30302, 30310, + 30318, 30326, 30334, 30342, 30350, 30358, 30365, 30373, 30381, 30389, + 30397, 30405, 30415, 30425, 30435, 30445, 30455, 30465, 30475, 30485, + 30495, 30505, 30515, 30525, 30535, 30545, 30553, 30561, 30571, 30579, 0, + 0, 0, 0, 0, 30589, 30593, 30597, 30601, 30605, 30609, 30613, 30617, + 30621, 30625, 30629, 30633, 30637, 30641, 30645, 30649, 30653, 30657, + 30661, 30665, 30669, 30673, 30677, 30681, 30687, 30691, 30697, 30701, + 30707, 30711, 30717, 30721, 30725, 30729, 30733, 30737, 30741, 30747, + 30753, 30759, 30765, 30771, 30777, 30783, 30789, 30795, 30801, 30807, + 30814, 30820, 30826, 30832, 30836, 30840, 30844, 30848, 30852, 30856, + 30860, 30866, 30872, 30878, 30883, 30890, 30895, 30900, 30906, 30911, + 30918, 30925, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30932, 30938, 30942, 30947, + 30952, 30957, 30962, 30967, 30972, 30977, 30982, 30987, 30992, 30997, + 31002, 31007, 31011, 31015, 31020, 31025, 31030, 31034, 31038, 31042, + 31046, 31051, 31056, 31061, 31065, 31069, 31074, 0, 31079, 31084, 31089, + 31094, 31100, 31106, 31112, 31118, 31123, 31128, 31134, 31140, 0, 0, 0, + 0, 31147, 31152, 31158, 31164, 31170, 31175, 31180, 31185, 31190, 31195, + 31200, 31205, 0, 0, 0, 0, 31210, 0, 0, 0, 31215, 31220, 31225, 31230, + 31234, 31238, 31242, 31246, 31250, 31254, 31258, 31262, 31266, 31271, + 31277, 31283, 31289, 31294, 31299, 31305, 31311, 31316, 31321, 31327, + 31332, 31338, 31344, 31349, 31355, 31361, 31367, 31372, 31377, 31382, + 31388, 31394, 31399, 31405, 31410, 31416, 31421, 31427, 0, 0, 31433, + 31439, 31445, 31451, 31457, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31463, + 31472, 31481, 31489, 31498, 31507, 31515, 31524, 31533, 31542, 31550, + 31558, 31567, 31575, 31583, 31592, 31601, 31609, 31618, 31627, 31635, + 31643, 31652, 31660, 31668, 31677, 31685, 31694, 31703, 31711, 31720, + 31729, 31737, 31745, 31754, 31763, 31771, 31780, 31789, 31798, 31807, + 31816, 31825, 31834, 0, 0, 0, 0, 31843, 31853, 31862, 31871, 31879, + 31888, 31896, 31905, 31913, 31922, 31931, 31940, 31949, 31958, 31967, + 31976, 31985, 31994, 32003, 32012, 32021, 32030, 32039, 32048, 32057, + 32065, 0, 0, 0, 0, 0, 0, 32073, 32081, 32088, 32095, 32102, 32109, 32116, + 32123, 32130, 32137, 32144, 0, 0, 0, 32152, 32160, 32168, 32172, 32178, + 32184, 32190, 32196, 32202, 32208, 32214, 32220, 32226, 32232, 32238, + 32244, 32250, 32256, 32262, 32266, 32272, 32278, 32284, 32290, 32296, + 32302, 32308, 32314, 32320, 32326, 32332, 32338, 32344, 32350, 32356, + 32360, 32365, 32370, 32375, 32379, 32384, 32388, 32393, 32398, 32403, + 32407, 32412, 32417, 32422, 32427, 32432, 32436, 32440, 32444, 32449, + 32453, 32457, 32461, 32466, 32471, 32476, 32481, 0, 0, 32487, 32491, + 32498, 32503, 32509, 32515, 32520, 32526, 32532, 32537, 32543, 32549, + 32555, 32560, 32566, 32571, 32576, 32582, 32587, 32593, 32598, 32604, + 32610, 32616, 32622, 32626, 32631, 32636, 32642, 32648, 32653, 32659, + 32665, 32669, 32674, 32679, 32683, 32688, 32692, 32697, 32702, 32708, + 32714, 32719, 32724, 32729, 32733, 32738, 32742, 32747, 32751, 32756, + 32761, 32766, 32771, 32777, 32784, 32791, 32801, 32810, 32817, 32823, + 32834, 32839, 32845, 0, 32850, 32855, 32860, 32868, 32874, 32882, 32887, + 32893, 32899, 32905, 32910, 32916, 32921, 32928, 32934, 32939, 32945, + 32951, 32957, 32964, 32971, 32978, 32983, 32988, 32995, 33002, 33009, + 33016, 33023, 0, 0, 33030, 33037, 33044, 33050, 33056, 33062, 33068, + 33074, 33080, 33086, 33092, 0, 0, 0, 0, 0, 0, 33098, 33104, 33109, 33114, + 33119, 33124, 33129, 33134, 33139, 33144, 0, 0, 0, 0, 0, 0, 33149, 33154, + 33159, 33164, 33169, 33174, 33179, 33188, 33195, 33200, 33205, 33210, + 33215, 33220, 0, 0, 33225, 33232, 33235, 33238, 33242, 33247, 33251, + 33257, 33262, 33268, 33275, 33283, 33287, 33292, 33296, 33301, 33308, + 33316, 33323, 33329, 33337, 33344, 33349, 33353, 33360, 33364, 33369, + 33374, 33381, 33389, 33396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 18787, 18792, 0, 18799, 0, 18806, 18813, 18818, 18823, 18830, 0, - 18837, 18844, 18849, 18856, 18863, 18870, 18877, 18884, 18891, 18896, - 18900, 18907, 18914, 18921, 18926, 18931, 18936, 18943, 18950, 18957, - 18964, 18971, 18976, 18981, 0, 18988, 0, 18995, 19000, 19007, 19014, - 19021, 19028, 19035, 19039, 19046, 19050, 19055, 19063, 19069, 19075, - 19080, 19086, 19092, 19098, 19103, 19109, 19116, 19124, 19131, 0, 0, - 19138, 19143, 19149, 19154, 19160, 0, 19166, 0, 19171, 19178, 19185, - 19192, 19199, 19204, 0, 0, 19208, 19213, 19217, 19221, 19225, 19229, - 19233, 19237, 19241, 19245, 0, 0, 19249, 19255, 19261, 19268, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33404, 33410, 33416, 33420, 33424, 33428, + 33432, 33438, 33442, 33448, 33452, 33458, 33464, 33472, 33478, 33486, + 33490, 33494, 33498, 33504, 33507, 33513, 33517, 33523, 33527, 33531, + 33537, 33541, 33547, 33551, 33557, 33565, 33573, 33581, 33587, 33591, + 33597, 33601, 33607, 33610, 33613, 33619, 33623, 33629, 33632, 33635, + 33638, 33641, 33645, 33651, 33657, 33660, 33663, 33667, 33672, 33677, + 33684, 33689, 33696, 33703, 33712, 33719, 33728, 33733, 33740, 33747, + 33756, 33761, 33768, 33773, 33779, 33785, 33791, 33797, 33803, 33809, + 33815, 0, 0, 0, 33821, 33825, 33828, 33831, 33834, 33837, 33840, 33843, + 33846, 33849, 33852, 33855, 33858, 33861, 33866, 33871, 33876, 33879, + 33884, 33889, 33894, 33899, 33906, 33911, 33916, 33921, 33926, 33933, + 33939, 33945, 33951, 33957, 33963, 33972, 33981, 33987, 33993, 34002, + 34011, 34020, 34029, 34038, 34047, 34056, 34065, 34074, 34079, 0, 34084, + 34089, 34094, 34099, 34103, 34107, 34111, 34116, 34120, 34124, 34129, + 34133, 34138, 34143, 34148, 34153, 34158, 34163, 34168, 34173, 34178, + 34182, 34186, 34191, 34196, 34201, 34205, 34209, 34213, 34217, 34222, + 34226, 34231, 34235, 34241, 34247, 34253, 34259, 34265, 34271, 34277, + 34283, 34289, 34294, 34299, 34306, 34314, 34319, 34324, 34329, 34333, + 34337, 34341, 34345, 34349, 34353, 34357, 34361, 34365, 34369, 34374, + 34379, 34384, 34390, 34396, 34400, 34406, 34410, 34416, 34422, 34427, + 34434, 34438, 34444, 34448, 34454, 34459, 34466, 34473, 34478, 34485, + 34490, 34495, 34499, 34505, 34509, 34515, 34522, 34529, 34533, 34539, + 34545, 34549, 34555, 34560, 34564, 34570, 34575, 34580, 34585, 34590, + 34594, 34598, 34603, 34608, 34615, 34621, 34626, 34633, 34638, 34645, + 34650, 34659, 34665, 34671, 34675, 0, 0, 0, 0, 0, 0, 0, 0, 34679, 34688, + 34695, 34702, 34709, 34713, 34718, 34723, 34728, 34733, 34738, 34743, + 34748, 34753, 34758, 34763, 34768, 34773, 34777, 34781, 34786, 34791, + 34796, 34801, 34806, 34811, 34815, 34820, 34825, 34830, 34835, 34839, + 34843, 34847, 34851, 34856, 34861, 34865, 34870, 34875, 34879, 34885, + 34891, 34897, 34902, 34907, 34913, 34918, 34924, 34929, 34935, 34941, + 34946, 34952, 34958, 34963, 34969, 34975, 34981, 34986, 0, 0, 0, 34991, + 34997, 35007, 35013, 35021, 35027, 35032, 35036, 35040, 35044, 35048, + 35052, 35056, 35060, 35064, 0, 0, 0, 35068, 35073, 35078, 35083, 35090, + 35096, 35102, 35108, 35114, 35120, 35126, 35132, 35138, 35144, 35150, + 35157, 35164, 35171, 35178, 35185, 35192, 35199, 35206, 35213, 35220, + 35227, 35234, 35241, 35248, 35255, 35262, 35269, 35276, 35283, 35290, + 35297, 35304, 35311, 35318, 35325, 35332, 35339, 35346, 35353, 35361, + 35369, 35377, 35383, 35389, 35395, 35403, 35412, 35419, 35426, 35432, + 35439, 35446, 35453, 35461, 35468, 0, 0, 0, 0, 0, 0, 0, 35475, 35482, + 35489, 35496, 35503, 35510, 35517, 35524, 35531, 35538, 35545, 35552, + 35559, 35566, 35573, 35580, 35587, 35594, 35601, 35608, 35615, 35622, + 35629, 35636, 35643, 35650, 35657, 35664, 35671, 35678, 35685, 35692, + 35699, 35706, 35713, 35720, 35727, 35734, 35741, 35748, 35755, 35762, + 35770, 0, 0, 35777, 35784, 35792, 35800, 35808, 35816, 35824, 35832, + 35842, 35852, 35862, 0, 0, 0, 0, 0, 0, 0, 0, 35872, 35877, 35882, 35887, + 35892, 35901, 35912, 35921, 35932, 35938, 35951, 35957, 35964, 35971, + 35976, 35982, 35988, 35999, 36008, 36015, 36022, 36031, 36038, 36047, + 36057, 36067, 36074, 36081, 36088, 36098, 36103, 36111, 36117, 36125, + 36134, 36139, 36146, 36152, 36157, 36162, 36167, 36173, 36180, 0, 0, 0, + 0, 0, 36188, 36193, 36199, 36205, 36213, 36219, 36225, 36231, 36236, + 36243, 36248, 36254, 36260, 36268, 36274, 36282, 36287, 36294, 36300, + 36308, 36316, 36322, 36328, 36335, 36342, 36348, 36355, 36361, 36367, + 36372, 36378, 36386, 36394, 36400, 36406, 36412, 36418, 36426, 36430, + 36436, 36442, 36448, 36454, 36460, 36466, 36470, 36475, 36480, 36487, + 36492, 36496, 36502, 36507, 36512, 36516, 36521, 36526, 36530, 36535, + 36540, 36547, 36551, 36556, 36561, 36565, 36570, 36574, 36579, 36583, + 36588, 36593, 36599, 36604, 36609, 36613, 36618, 36624, 36631, 36636, + 36641, 36646, 36651, 36656, 36660, 36666, 36673, 36680, 36685, 36690, + 36694, 36700, 36706, 36711, 36716, 36721, 36727, 36732, 36738, 36743, + 36749, 36755, 36761, 36768, 36775, 36782, 36789, 36796, 36803, 36808, + 36816, 36825, 36834, 36843, 36852, 36861, 36870, 36882, 36891, 36900, + 36909, 36915, 36920, 36927, 36935, 36943, 36950, 36957, 36964, 36971, + 36979, 36988, 36997, 37006, 37015, 37024, 37033, 37042, 37051, 37060, + 37069, 37078, 37087, 37096, 37105, 37113, 37122, 37133, 37142, 37153, + 37166, 37175, 37184, 37194, 37203, 37211, 37220, 37226, 37231, 37239, + 37244, 37252, 37257, 37266, 37272, 37278, 37285, 37290, 37295, 37303, + 37311, 37320, 37329, 37334, 37341, 37351, 37359, 37368, 37374, 37380, + 37385, 37392, 37397, 37406, 37411, 37416, 37421, 37428, 37434, 37439, + 37448, 37456, 37461, 37466, 37473, 37480, 37484, 37488, 37491, 37494, + 37497, 37500, 37503, 37506, 37513, 37516, 37519, 37524, 37528, 37532, + 37536, 37540, 37544, 37554, 37560, 37566, 37572, 37580, 37588, 37594, + 37600, 37607, 37613, 37618, 37624, 37631, 37637, 37644, 37650, 37658, + 37664, 37671, 37677, 37683, 37689, 37695, 37701, 37707, 37718, 37728, + 37734, 37740, 37750, 37756, 37764, 37772, 37780, 37785, 37790, 37796, + 37801, 37809, 37815, 37819, 37826, 37833, 37838, 37847, 37855, 37863, + 37870, 37877, 37884, 37891, 37899, 37907, 37918, 37929, 37937, 37945, + 37953, 37961, 37970, 37979, 37987, 37995, 38004, 38013, 38024, 38035, + 38046, 38057, 38066, 38075, 38084, 38093, 38104, 38115, 38123, 38131, + 38139, 38147, 38155, 38163, 38171, 38179, 38187, 38195, 38203, 38211, + 38220, 38229, 38238, 38247, 38258, 38269, 38277, 38285, 38293, 38301, + 38310, 38319, 38327, 38335, 38347, 38359, 38368, 38377, 38386, 38395, + 38403, 38411, 38419, 38427, 38435, 38443, 38451, 38459, 38467, 38475, + 38484, 38493, 38502, 38511, 38521, 38531, 38541, 38551, 38561, 38571, + 38581, 38591, 38599, 38607, 38615, 38623, 38631, 38639, 38647, 38655, + 38667, 38679, 38688, 38697, 38705, 38713, 38721, 38729, 38740, 38751, + 38762, 38773, 38785, 38797, 38805, 38813, 38821, 38829, 38838, 38847, + 38856, 38865, 38873, 38881, 38889, 38897, 38905, 38913, 38923, 38933, + 38943, 38953, 38961, 38969, 38977, 38985, 38993, 39001, 39009, 39017, + 39025, 39033, 39041, 39049, 39057, 39065, 39073, 39081, 39089, 39097, + 39105, 39113, 39121, 39129, 39137, 39145, 39154, 39163, 39172, 39180, + 39189, 39198, 39207, 39216, 39226, 39235, 39242, 39247, 39254, 39261, + 39269, 39277, 39287, 39297, 39307, 39317, 39328, 39339, 39349, 39359, + 39369, 39379, 39389, 39399, 39409, 39419, 39430, 39441, 39451, 39461, + 39471, 39481, 39489, 39497, 39506, 39515, 39523, 39531, 39542, 39553, + 39564, 39575, 39587, 39599, 39610, 39621, 39632, 39643, 39652, 39661, + 39669, 39677, 39684, 39691, 39699, 39707, 39717, 39727, 39737, 39747, + 39758, 39769, 39779, 39789, 39799, 39809, 39819, 39829, 39839, 39849, + 39860, 39871, 39881, 39891, 39901, 39911, 39918, 39925, 39933, 39941, + 39951, 39961, 39971, 39981, 39992, 40003, 40013, 40023, 40033, 40043, + 40051, 40059, 40067, 40075, 40084, 40093, 40101, 40109, 40116, 40123, + 40130, 40137, 40145, 40153, 40161, 40169, 40180, 40191, 40202, 40213, + 40224, 40235, 40243, 40251, 40262, 40273, 40284, 40295, 40306, 40317, + 40325, 40333, 40344, 40355, 40366, 0, 0, 40377, 40385, 40393, 40404, + 40415, 40426, 0, 0, 40437, 40445, 40453, 40464, 40475, 40486, 40497, + 40508, 40519, 40527, 40535, 40546, 40557, 40568, 40579, 40590, 40601, + 40609, 40617, 40628, 40639, 40650, 40661, 40672, 40683, 40691, 40699, + 40710, 40721, 40732, 40743, 40754, 40765, 40773, 40781, 40792, 40803, + 40814, 0, 0, 40825, 40833, 40841, 40852, 40863, 40874, 0, 0, 40885, + 40893, 40901, 40912, 40923, 40934, 40945, 40956, 0, 40967, 0, 40975, 0, + 40986, 0, 40997, 41008, 41016, 41024, 41035, 41046, 41057, 41068, 41079, + 41090, 41098, 41106, 41117, 41128, 41139, 41150, 41161, 41172, 41180, + 41188, 41196, 41204, 41212, 41220, 41228, 41236, 41244, 41252, 41260, + 41268, 41276, 0, 0, 41284, 41295, 41306, 41320, 41334, 41348, 41362, + 41376, 41390, 41401, 41412, 41426, 41440, 41454, 41468, 41482, 41496, + 41507, 41518, 41532, 41546, 41560, 41574, 41588, 41602, 41613, 41624, + 41638, 41652, 41666, 41680, 41694, 41708, 41719, 41730, 41744, 41758, + 41772, 41786, 41800, 41814, 41825, 41836, 41850, 41864, 41878, 41892, + 41906, 41920, 41928, 41936, 41947, 41955, 0, 41966, 41974, 41985, 41993, + 42001, 42009, 42017, 42025, 42028, 42031, 42034, 42037, 42043, 42054, + 42062, 0, 42073, 42081, 42092, 42100, 42108, 42116, 42124, 42132, 42138, + 42144, 42150, 42158, 42166, 42177, 0, 0, 42188, 42196, 42207, 42215, + 42223, 42231, 0, 42239, 42245, 42251, 42257, 42265, 42273, 42284, 42295, + 42303, 42311, 42319, 42330, 42338, 42346, 42354, 42362, 42370, 42376, + 42382, 0, 0, 42385, 42396, 42404, 0, 42415, 42423, 42434, 42442, 42450, + 42458, 42466, 42474, 42477, 0, 42480, 42484, 42488, 42492, 42496, 42500, + 42504, 42508, 42512, 42516, 42520, 42524, 42530, 42536, 42542, 42545, + 42548, 42550, 42554, 42558, 42562, 42566, 42569, 42573, 42577, 42583, + 42589, 42596, 42603, 42608, 42613, 42619, 42625, 42627, 42630, 42632, + 42636, 42640, 42644, 42648, 42652, 42656, 42660, 42664, 42668, 42674, + 42678, 42682, 42688, 42693, 42700, 42702, 42705, 42709, 42713, 42718, + 42724, 42726, 42735, 42744, 42747, 42751, 42753, 42755, 42757, 42761, + 42767, 42769, 42773, 42777, 42784, 42791, 42795, 42800, 42805, 42810, + 42815, 42819, 42823, 42826, 42830, 42834, 42841, 42846, 42850, 42854, + 42859, 42863, 42867, 42872, 42877, 42881, 42885, 42889, 42891, 42896, + 42901, 42905, 42909, 42913, 42917, 0, 42921, 42925, 42929, 42935, 42941, + 42947, 42953, 42960, 42967, 42972, 42977, 42981, 0, 0, 42987, 42990, + 42993, 42996, 42999, 43002, 43005, 43009, 43013, 43018, 43023, 43028, + 43035, 43039, 43042, 43045, 43048, 43051, 43054, 43057, 43060, 43063, + 43066, 43070, 43074, 43079, 43084, 0, 43089, 43095, 43101, 43107, 43114, + 43121, 43128, 43135, 43141, 43148, 43155, 43162, 43169, 0, 0, 0, 43176, + 43179, 43182, 43185, 43190, 43193, 43196, 43199, 43202, 43205, 43208, + 43213, 43216, 43219, 43222, 43225, 43228, 43233, 43236, 43239, 43242, + 43245, 43248, 43253, 43256, 43259, 43264, 43269, 43273, 43276, 43279, + 43282, 43285, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43288, 43293, + 43298, 43305, 43313, 43318, 43323, 43327, 43331, 43336, 43343, 43350, + 43354, 43359, 43364, 43369, 43374, 43381, 43386, 43391, 43396, 43405, + 43412, 43419, 43423, 43428, 43434, 43439, 43446, 43454, 43462, 43466, + 43470, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43474, 43478, 43485, + 43490, 43494, 43499, 43503, 43507, 43511, 43513, 43517, 43521, 43525, + 43530, 43535, 43539, 43547, 43550, 43554, 43557, 43560, 43566, 43571, + 43574, 43580, 43584, 43589, 43594, 43597, 43601, 43605, 43609, 43611, + 43614, 43617, 43621, 43623, 43628, 43631, 43634, 43639, 43644, 43650, + 43653, 43656, 43660, 43665, 43668, 43671, 43674, 43678, 43682, 43686, + 43689, 43691, 43694, 43697, 43700, 43704, 43709, 43712, 43717, 43722, + 43727, 43732, 43738, 43743, 43747, 43752, 43757, 43763, 43769, 43774, + 43779, 43785, 43789, 43792, 43795, 43797, 43801, 43807, 43814, 43821, + 43828, 43835, 43842, 43849, 43856, 43863, 43871, 43878, 43886, 43893, + 43900, 43908, 43916, 43921, 43926, 43931, 43936, 43941, 43946, 43951, + 43956, 43961, 43966, 43972, 43978, 43984, 43990, 43997, 44005, 44011, + 44017, 44023, 44029, 44035, 44041, 44047, 44053, 44059, 44065, 44072, + 44079, 44086, 44093, 44101, 44110, 44117, 44128, 44135, 44142, 44151, + 44158, 44167, 44176, 44183, 44191, 44199, 44202, 0, 0, 0, 0, 44205, + 44207, 44210, 44212, 44215, 44218, 44221, 44225, 44229, 44234, 44239, + 44243, 44247, 44251, 44255, 44260, 44266, 44271, 44277, 44282, 44287, + 44292, 44298, 44303, 44309, 44315, 44319, 44323, 44328, 44333, 44338, + 44343, 44348, 44356, 44364, 44372, 44380, 44387, 44395, 44402, 44409, + 44416, 44426, 44433, 44440, 44447, 44454, 44462, 44470, 44477, 44484, + 44492, 44500, 44505, 44513, 44518, 44523, 44529, 44534, 44540, 44547, + 44554, 44559, 44565, 44570, 44573, 44577, 44580, 44584, 44588, 44592, + 44597, 44602, 44608, 44614, 44618, 44622, 44626, 44630, 44636, 44642, + 44646, 44651, 44655, 44660, 44664, 44668, 44671, 44675, 44678, 44682, + 44689, 44697, 44709, 44720, 44725, 44734, 44741, 44748, 44756, 44760, + 44766, 44774, 44778, 44783, 44788, 44794, 44800, 44806, 44813, 44817, + 44821, 44826, 44829, 44831, 44835, 44839, 44847, 44851, 44853, 44855, + 44859, 44867, 44872, 44878, 44888, 44895, 44900, 44904, 44908, 44912, + 44915, 44918, 44921, 44925, 44929, 44933, 44937, 44941, 44944, 44948, + 44952, 44955, 44957, 44960, 44962, 44966, 44970, 44972, 44978, 44981, + 44986, 44990, 44994, 44996, 44998, 45000, 45003, 45007, 45011, 45015, + 45019, 45023, 45029, 45035, 45037, 45039, 45041, 45043, 45046, 45048, + 45052, 45054, 45058, 45062, 45068, 45072, 45076, 45080, 45084, 45089, + 45096, 45101, 45112, 45123, 45128, 45135, 45144, 45148, 45153, 45156, + 45161, 45165, 45171, 45176, 45189, 45199, 45203, 45207, 45214, 45219, + 45222, 45224, 45227, 45231, 45236, 45243, 45247, 45252, 45257, 45260, + 45265, 45270, 45277, 45284, 45290, 45296, 45305, 45314, 45318, 45322, + 45324, 45329, 45333, 45337, 45346, 45355, 45362, 45369, 45378, 45387, + 45393, 45399, 45407, 45415, 45417, 45419, 45426, 45433, 45440, 45447, + 45453, 45459, 45463, 45467, 45474, 45481, 45489, 45497, 45508, 45519, + 45528, 45537, 45539, 45543, 45547, 45552, 45557, 45566, 45575, 45578, + 45581, 45584, 45587, 45590, 45595, 45599, 45604, 45609, 45612, 45615, + 45618, 45621, 45624, 45628, 45631, 45634, 45637, 45640, 45642, 45644, + 45646, 45648, 45656, 45664, 45670, 45674, 45680, 45690, 45696, 45702, + 45708, 45716, 45726, 45739, 45743, 45747, 45749, 45755, 45757, 45759, + 45761, 45763, 45769, 45772, 45778, 45784, 45788, 45792, 45796, 45799, + 45803, 45807, 45809, 45818, 45827, 45832, 45837, 45843, 45849, 45855, + 45858, 45861, 45864, 45867, 45869, 45875, 45880, 45885, 45891, 45897, + 45906, 45915, 45922, 45929, 45936, 45943, 45953, 45963, 45974, 45985, + 45996, 46007, 46016, 46025, 46034, 46043, 46051, 46063, 46075, 46091, + 46094, 46100, 46106, 46112, 46120, 46135, 46151, 46157, 46163, 46170, + 46176, 46185, 46192, 46206, 46221, 46226, 46232, 46240, 46243, 46246, + 46248, 46251, 46254, 46256, 46258, 46262, 46265, 46268, 46271, 46274, + 46279, 46284, 46289, 46294, 46299, 46302, 46304, 46306, 46308, 46312, + 46316, 46320, 46326, 46330, 46332, 46334, 46339, 46344, 46349, 46354, + 46359, 46364, 46366, 46368, 46378, 46382, 46388, 46397, 46399, 46405, + 46411, 46418, 46422, 46424, 46428, 46430, 46434, 46438, 46442, 46444, + 46446, 46448, 46455, 46464, 46473, 46482, 46491, 46500, 46509, 46518, + 46527, 46535, 46543, 46552, 46561, 46570, 46579, 46587, 46595, 46604, + 46613, 46622, 46632, 46641, 46651, 46660, 46670, 46679, 46689, 46699, + 46708, 46718, 46727, 46737, 46746, 46756, 46765, 46774, 46783, 46792, + 46801, 46811, 46820, 46829, 46838, 46848, 46857, 46866, 46875, 46884, + 46894, 46904, 46913, 46922, 46930, 46939, 46946, 46955, 46964, 46975, + 46984, 46994, 47004, 47011, 47018, 47025, 47034, 47043, 47052, 47061, + 47068, 47073, 47082, 47088, 47091, 47098, 47101, 47106, 47111, 47114, + 47117, 47125, 47128, 47133, 47136, 47144, 47149, 47157, 47160, 47163, + 47166, 47171, 47176, 47179, 47182, 47190, 47193, 47200, 47207, 47211, + 47215, 47220, 47225, 47230, 47235, 47240, 47245, 47250, 47255, 47262, + 47268, 47275, 47282, 47288, 47295, 47302, 47310, 47317, 47323, 47330, + 47338, 47345, 47349, 47355, 47367, 47379, 47383, 47387, 47392, 47397, + 47408, 47412, 47417, 47422, 47428, 47434, 47440, 47446, 47455, 47464, + 47472, 47483, 47494, 47502, 47513, 47524, 47532, 47543, 47554, 47562, + 47570, 47580, 47590, 47593, 47596, 47599, 47604, 47608, 47614, 47621, + 47628, 47636, 47643, 47647, 47651, 47655, 47659, 47661, 47665, 47669, + 47675, 47681, 47689, 47697, 47700, 47707, 47709, 47711, 47715, 47719, + 47724, 47730, 47736, 47742, 47748, 47757, 47766, 47775, 47779, 47781, + 47785, 47792, 47799, 47806, 47813, 47820, 47823, 47828, 47834, 47837, + 47842, 47847, 47852, 47857, 47861, 47868, 47875, 47882, 47889, 47893, + 47897, 47901, 47905, 47911, 47917, 47922, 47928, 47934, 47940, 47946, + 47954, 47961, 47968, 47975, 47982, 47988, 47994, 48003, 48007, 48014, + 48018, 48022, 48028, 48034, 48040, 48046, 48050, 48054, 48057, 48061, + 48065, 48072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 48079, 48082, 48086, 48090, 48096, 48102, 48108, 48116, + 48123, 48127, 48135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48140, 48143, 48146, 48149, 48152, 48155, 48158, 48161, + 48164, 48167, 48171, 48175, 48179, 48183, 48187, 48191, 48195, 48199, + 48203, 48207, 48211, 48214, 48217, 48220, 48223, 48226, 48229, 48232, + 48235, 48238, 48242, 48246, 48250, 48254, 48258, 48262, 48266, 48270, + 48274, 48278, 48282, 48288, 48294, 48300, 48307, 48314, 48321, 48328, + 48335, 48342, 48349, 48356, 48363, 48370, 48377, 48384, 48391, 48398, + 48405, 48412, 48419, 48424, 48430, 48436, 48442, 48447, 48453, 48459, + 48465, 48470, 48476, 48482, 48487, 48493, 48499, 48504, 48510, 48516, + 48521, 48527, 48533, 48538, 48544, 48550, 48556, 48562, 48568, 48573, + 48579, 48585, 48591, 48596, 48602, 48608, 48614, 48619, 48625, 48631, + 48636, 48642, 48648, 48653, 48659, 48665, 48670, 48676, 48682, 48687, + 48693, 48699, 48705, 48711, 48717, 48722, 48728, 48734, 48740, 48745, + 48751, 48757, 48763, 48768, 48774, 48780, 48785, 48791, 48797, 48802, + 48808, 48814, 48819, 48825, 48831, 48836, 48842, 48848, 48854, 48860, + 48866, 48870, 48876, 48882, 48888, 48894, 48900, 48906, 48912, 48918, + 48924, 48930, 48934, 48938, 48942, 48946, 48950, 48954, 48958, 48962, + 48966, 48971, 48977, 48982, 48987, 48992, 48997, 49006, 49015, 49024, + 49033, 49042, 49051, 49060, 49069, 49075, 49083, 49091, 49097, 49104, + 49112, 49120, 49127, 49133, 49141, 49149, 49155, 49162, 49170, 49178, + 49185, 49191, 49199, 49208, 49217, 49225, 49234, 49243, 49249, 49256, + 49264, 49273, 49282, 49290, 49299, 49308, 49315, 49322, 49331, 49340, + 49349, 49358, 49367, 49376, 49383, 49390, 49399, 49408, 49417, 49426, + 49435, 49444, 49451, 49458, 49467, 49476, 49485, 49495, 49505, 49514, + 49524, 49534, 49544, 49554, 49564, 49574, 49583, 49592, 49599, 49607, + 49615, 49623, 49631, 49636, 49641, 49650, 49658, 49664, 49673, 49681, + 49688, 49697, 49705, 49711, 49720, 49728, 49735, 49744, 49752, 49758, + 49767, 49775, 49782, 49792, 49801, 49808, 49818, 49827, 49834, 49844, + 49853, 49860, 49868, 49877, 49886, 49894, 49905, 49915, 49922, 49927, + 49932, 49936, 49941, 49946, 49951, 49955, 49960, 49967, 49975, 49982, + 49990, 49994, 50000, 50006, 50012, 50016, 50023, 50029, 50036, 50040, + 50047, 50053, 50060, 50064, 50070, 50076, 50082, 50086, 50089, 50093, + 50097, 50103, 50109, 50114, 50118, 50123, 50133, 50140, 50151, 50161, + 50165, 50173, 50183, 50186, 50189, 50196, 50204, 50210, 50215, 50223, + 50232, 50241, 50249, 50253, 50257, 50260, 50263, 50267, 50271, 50274, + 50277, 50282, 50287, 50293, 50299, 50304, 50309, 50315, 50321, 50326, + 50331, 50336, 50341, 50347, 50353, 50358, 50363, 50369, 50375, 50380, + 50385, 50388, 50391, 50400, 50402, 50404, 50407, 50411, 50417, 50419, + 50422, 50429, 50436, 50443, 50450, 50459, 50472, 50477, 50482, 50486, + 50491, 50498, 50505, 50513, 50521, 50529, 50537, 50541, 50545, 50550, + 50555, 50560, 50565, 50568, 50574, 50580, 50589, 50598, 50606, 50614, + 50623, 50632, 50636, 50643, 50650, 50657, 50664, 50672, 50680, 50688, + 50696, 50700, 50704, 50708, 50713, 50718, 50724, 50730, 50734, 50740, + 50742, 50744, 50746, 50748, 50751, 50754, 50756, 50758, 50760, 50764, + 50768, 50770, 50772, 50775, 50778, 50782, 50788, 50794, 50796, 50803, + 50807, 50812, 50817, 50819, 50829, 50835, 50841, 50847, 50853, 50859, + 50865, 50870, 50873, 50876, 50879, 50881, 50883, 50887, 50891, 50896, + 50901, 50906, 50909, 50913, 50918, 50921, 50925, 50930, 50935, 50940, + 50945, 50950, 50955, 50960, 50965, 50970, 50975, 50980, 50985, 50991, + 50997, 51003, 51005, 51008, 51010, 51013, 51015, 51017, 51019, 51021, + 51023, 51025, 51027, 51029, 51031, 51033, 51035, 51037, 51039, 51041, + 51043, 51045, 51047, 51052, 51057, 51062, 51067, 51072, 51077, 51082, + 51087, 51092, 51097, 51102, 51107, 51112, 51117, 51122, 51127, 51132, + 51137, 51142, 51147, 51151, 51155, 51159, 51165, 51171, 51176, 51181, + 51186, 51192, 51198, 51203, 51211, 51219, 51227, 51235, 51243, 51251, + 51259, 51267, 51273, 51278, 51283, 51288, 51291, 51295, 51299, 51303, + 51307, 51311, 51315, 51321, 51328, 51335, 51343, 51348, 51353, 51360, + 51367, 51374, 51381, 51384, 51387, 51392, 51394, 51398, 51403, 51405, + 51407, 51409, 51411, 51416, 51419, 51421, 51426, 51432, 51439, 51442, + 51446, 51451, 51456, 51464, 51470, 51476, 51488, 51495, 51503, 51508, + 51513, 51519, 51522, 51525, 51530, 51532, 51536, 51538, 51540, 51542, + 51544, 51546, 51548, 51553, 51555, 51557, 51559, 51561, 51565, 51567, + 51570, 51575, 51580, 51585, 51590, 51596, 51602, 51604, 51607, 51614, + 51620, 51626, 51633, 51637, 51641, 51643, 51645, 51649, 51655, 51660, + 51662, 51666, 51675, 51683, 51691, 51697, 51703, 51708, 51714, 51719, + 51722, 51736, 51739, 51744, 51749, 51755, 51765, 51767, 51773, 51779, + 51783, 51790, 51794, 51796, 51798, 51802, 51808, 51813, 51819, 51821, + 51827, 51829, 51835, 51837, 51839, 51844, 51846, 51850, 51855, 51857, + 51862, 51867, 51871, 51878, 51888, 51893, 51898, 51901, 51906, 51909, + 51914, 51919, 51923, 51925, 51927, 51931, 51935, 51939, 51943, 51947, + 51949, 51953, 51956, 51959, 51962, 51966, 51970, 51975, 51979, 51984, + 51989, 51993, 51999, 52006, 52009, 52015, 52020, 52024, 52029, 52035, + 52041, 52048, 52054, 52061, 52068, 52070, 52077, 52081, 52088, 52094, + 52099, 52105, 52109, 52114, 52117, 52123, 52129, 52136, 52144, 52151, + 52160, 52170, 52177, 52183, 52187, 52195, 52200, 52209, 52212, 52215, + 52224, 52235, 52242, 52244, 52250, 52255, 52257, 52260, 52264, 52272, + 52281, 52284, 52289, 52295, 52302, 52309, 52316, 52323, 52329, 52335, + 52341, 52349, 52354, 52357, 52361, 52364, 52375, 52385, 52395, 52404, + 52415, 52425, 52434, 52440, 52448, 52452, 52460, 52464, 52472, 52479, + 52486, 52495, 52504, 52514, 52524, 52534, 52544, 52553, 52562, 52572, + 52582, 52591, 52600, 52607, 52614, 52621, 52628, 52635, 52642, 52649, + 52656, 52663, 52671, 52677, 52683, 52689, 52695, 52701, 52707, 52713, + 52719, 52725, 52732, 52740, 52748, 52756, 52764, 52772, 52780, 52788, + 52796, 52804, 52813, 52818, 52821, 52825, 52829, 52835, 52838, 52843, + 52849, 52854, 52858, 52863, 52869, 52876, 52879, 52886, 52893, 52897, + 52906, 52915, 52920, 52926, 52931, 52936, 52943, 52950, 52957, 52964, + 52972, 52976, 52984, 52989, 52993, 53000, 53004, 53010, 53018, 53023, + 53030, 53034, 53039, 53043, 53048, 53052, 53057, 53062, 53071, 53073, + 53077, 53081, 53088, 53095, 53101, 53109, 53115, 53122, 53127, 53130, + 53135, 53140, 53145, 53153, 53157, 53164, 53171, 53178, 53183, 53188, + 53194, 53199, 53204, 53210, 53215, 53218, 53222, 53226, 53233, 53243, + 53248, 53257, 53266, 53272, 53278, 53284, 53290, 53296, 53302, 53309, + 53316, 53325, 53334, 53340, 53346, 53351, 53356, 53363, 53370, 53376, + 53379, 53382, 53386, 53390, 53394, 53399, 53405, 53411, 53418, 53425, + 53430, 53434, 53438, 53442, 53446, 53450, 53454, 53458, 53462, 53466, + 53470, 53474, 53478, 53482, 53486, 53490, 53494, 53498, 53502, 53506, + 53510, 53514, 53518, 53522, 53526, 53530, 53534, 53538, 53542, 53546, + 53550, 53554, 53558, 53562, 53566, 53570, 53574, 53578, 53582, 53586, + 53590, 53594, 53598, 53602, 53606, 53610, 53614, 53618, 53622, 53626, + 53630, 53634, 53638, 53642, 53646, 53650, 53654, 53658, 53662, 53666, + 53670, 53674, 53678, 53682, 53686, 53690, 53694, 53698, 53702, 53706, + 53710, 53714, 53718, 53722, 53726, 53730, 53734, 53738, 53742, 53746, + 53750, 53754, 53758, 53762, 53766, 53770, 53774, 53778, 53782, 53786, + 53790, 53794, 53798, 53802, 53806, 53810, 53814, 53818, 53822, 53826, + 53830, 53834, 53838, 53842, 53846, 53850, 53854, 53858, 53862, 53866, + 53870, 53874, 53878, 53882, 53886, 53890, 53894, 53898, 53902, 53906, + 53910, 53914, 53918, 53922, 53926, 53930, 53934, 53938, 53942, 53946, + 53950, 53954, 53958, 53962, 53966, 53970, 53974, 53978, 53982, 53986, + 53990, 53994, 53998, 54002, 54006, 54010, 54014, 54018, 54022, 54026, + 54030, 54034, 54038, 54042, 54046, 54050, 54054, 54058, 54062, 54066, + 54070, 54074, 54078, 54082, 54086, 54090, 54094, 54098, 54102, 54106, + 54110, 54114, 54118, 54122, 54126, 54130, 54134, 54138, 54142, 54146, + 54150, 54154, 54158, 54162, 54166, 54170, 54174, 54178, 54182, 54186, + 54190, 54194, 54198, 54202, 54206, 54210, 54214, 54218, 54222, 54226, + 54230, 54234, 54238, 54242, 54246, 54250, 54254, 54258, 54262, 54266, + 54270, 54274, 54278, 54282, 54286, 54290, 54294, 54298, 54302, 54306, + 54310, 54314, 54318, 54322, 54326, 54330, 54334, 54338, 54342, 54346, + 54350, 54354, 54358, 54362, 54366, 54370, 54374, 54378, 54382, 54386, + 54390, 54394, 54398, 54402, 54406, 54410, 54414, 54418, 54422, 54426, + 54430, 54434, 54438, 54442, 54446, 54450, 54454, 54461, 54469, 54475, + 54481, 54488, 54495, 54501, 54507, 54514, 54521, 54526, 54531, 54536, + 54541, 54547, 54553, 54561, 54568, 54573, 54578, 54586, 54595, 54602, + 54612, 54623, 54626, 54629, 54633, 54637, 54643, 54649, 54659, 54669, + 54678, 54687, 54693, 54699, 54706, 54713, 54722, 54732, 54743, 54753, + 54763, 54773, 54784, 54795, 54805, 54816, 54826, 54836, 54844, 54854, + 54864, 54875, 54886, 54893, 54900, 54907, 54914, 54924, 54934, 54941, + 54948, 54955, 54962, 54969, 54976, 54983, 54988, 54993, 54999, 55007, + 55017, 55025, 55033, 55041, 55049, 55057, 55065, 55073, 55081, 55089, + 55097, 55106, 55115, 55123, 55131, 55140, 55149, 55158, 55167, 55177, + 55187, 55196, 55205, 55215, 55225, 55239, 55255, 55269, 55285, 55299, + 55313, 55327, 55341, 55351, 55362, 55372, 55383, 55399, 55415, 55423, + 55429, 55436, 55443, 55450, 55458, 55463, 55469, 55474, 55479, 55485, + 55490, 55495, 55500, 55505, 55510, 55517, 55523, 55531, 55537, 55543, + 55547, 55551, 55560, 55569, 55578, 55587, 55594, 55601, 55614, 55627, + 55640, 55653, 55661, 55669, 55676, 55683, 55691, 55699, 55707, 55715, + 55719, 55724, 55732, 55740, 55748, 55755, 55759, 55767, 55775, 55778, + 55782, 55787, 55794, 55802, 55810, 55829, 55849, 55868, 55888, 55908, + 55928, 55948, 55968, 55974, 55981, 55990, 55998, 56006, 56012, 56015, + 56018, 56023, 56026, 56046, 56053, 56059, 56065, 56069, 56072, 56075, + 56078, 56088, 56100, 56107, 56114, 56117, 56121, 56124, 56129, 56134, + 56139, 56145, 56154, 56161, 56168, 56176, 56183, 56190, 56193, 56199, + 56205, 56208, 56211, 56216, 56221, 56227, 56233, 56237, 56242, 56249, + 56253, 56259, 56263, 56267, 56275, 56287, 56295, 56299, 56301, 56310, + 56319, 56325, 56328, 56334, 56340, 56345, 56350, 56355, 56360, 56365, + 56370, 56372, 56378, 56383, 56391, 56395, 56401, 56404, 56408, 56416, + 56424, 56426, 56428, 56434, 56440, 56446, 56455, 56464, 56471, 56478, + 56484, 56491, 56496, 56501, 56506, 56512, 56518, 56523, 56530, 56534, + 56538, 56551, 56564, 56576, 56585, 56591, 56598, 56603, 56608, 56613, + 56618, 56623, 56625, 56632, 56640, 56648, 56656, 56663, 56671, 56677, + 56682, 56688, 56694, 56700, 56707, 56713, 56721, 56729, 56737, 56745, + 56753, 56759, 56765, 56774, 56778, 56787, 56796, 56805, 56813, 56817, + 56823, 56830, 56837, 56841, 56847, 56855, 56861, 56866, 56872, 56877, + 56882, 56889, 56896, 56901, 56906, 56914, 56922, 56932, 56942, 56949, + 56956, 56960, 56964, 56976, 56982, 56989, 56994, 56999, 57006, 57013, + 57019, 57025, 57035, 57042, 57050, 57058, 57067, 57074, 57080, 57087, + 57093, 57101, 57109, 57117, 57125, 57131, 57136, 57146, 57157, 57164, + 57173, 57179, 57184, 57189, 57199, 57208, 57214, 57220, 57228, 57233, + 57240, 57247, 57258, 57265, 57272, 57279, 57286, 57293, 57302, 57311, + 57324, 57337, 57349, 57361, 57374, 57388, 57394, 57400, 57410, 57420, + 57427, 57434, 57444, 57454, 57463, 57472, 57480, 57488, 57498, 57508, + 57523, 57538, 57547, 57556, 57569, 57582, 57591, 57600, 57611, 57622, + 57628, 57634, 57643, 57652, 57657, 57662, 57670, 57676, 57682, 57690, + 57698, 57711, 57724, 57728, 57732, 57741, 57750, 57757, 57765, 57773, + 57783, 57793, 57799, 57805, 57813, 57821, 57829, 57837, 57847, 57857, + 57860, 57863, 57868, 57873, 57879, 57885, 57892, 57899, 57910, 57921, + 57928, 57935, 57943, 57951, 57960, 57969, 57978, 57987, 57994, 58001, + 58005, 58009, 58018, 58027, 58032, 58037, 58042, 58047, 58053, 58067, + 58074, 58081, 58085, 58087, 58089, 58094, 58099, 58104, 58109, 58117, + 58124, 58131, 58139, 58151, 58159, 58167, 58178, 58182, 58186, 58192, + 58200, 58213, 58220, 58227, 58234, 58240, 58247, 58256, 58265, 58271, + 58277, 58283, 58294, 58305, 58313, 58322, 58327, 58330, 58335, 58340, + 58345, 58351, 58357, 58361, 58364, 58368, 58372, 58377, 58382, 58388, + 58394, 58398, 58402, 58409, 58416, 58423, 58430, 58437, 58444, 58453, + 58462, 58469, 58476, 58484, 58492, 58496, 58501, 58506, 58512, 58518, + 58521, 58524, 58527, 58530, 58535, 58540, 58545, 58550, 58555, 58560, + 58564, 58568, 58572, 58577, 58582, 58586, 58590, 58596, 58600, 58606, + 58611, 58618, 58626, 58633, 58641, 58648, 58656, 58665, 58672, 58682, + 58693, 58699, 58708, 58714, 58723, 58733, 58739, 58745, 58749, 58753, + 58762, 58772, 58779, 58787, 58796, 58805, 58812, 58818, 58825, 58830, + 58834, 58838, 58843, 58848, 58853, 58861, 58869, 58872, 58876, 58885, + 58895, 58904, 58914, 58926, 58940, 58944, 58949, 58953, 58958, 58963, + 58968, 58974, 58980, 58987, 58994, 59000, 59007, 59013, 59020, 59029, + 59038, 59044, 59051, 59057, 0, 0, 59064, 59072, 59080, 59089, 59098, + 59107, 59117, 59126, 59136, 59142, 59147, 59156, 59168, 59177, 59189, + 59196, 59204, 59211, 59219, 59224, 59230, 59235, 59241, 59249, 59258, + 59266, 59275, 59279, 59282, 59286, 59289, 59299, 0, 59302, 59309, 59318, + 59328, 59337, 59347, 59353, 59360, 59366, 59373, 59384, 59395, 59406, + 59417, 59427, 59437, 59447, 59457, 59465, 59473, 59481, 59489, 59497, + 59505, 59513, 59521, 59527, 59532, 59538, 59543, 59549, 59555, 59561, + 59567, 59579, 59589, 59594, 59601, 59606, 59613, 59616, 59620, 59624, + 59629, 59633, 59638, 59641, 59650, 59659, 59668, 59677, 59682, 59688, + 59694, 59702, 59712, 59719, 59728, 59733, 59736, 59739, 59744, 59749, + 59754, 59759, 59761, 59763, 59765, 59767, 59769, 59771, 59776, 59783, + 59790, 59792, 59794, 59796, 59798, 59800, 59802, 59804, 59806, 59811, + 59816, 59823, 59830, 59839, 59849, 59858, 59868, 59873, 59878, 59880, + 59887, 59894, 59901, 59908, 59915, 59922, 59929, 59932, 59935, 59938, + 59941, 59946, 59951, 59956, 59961, 59966, 59971, 59976, 59981, 59986, + 59991, 59996, 60001, 60007, 60011, 60016, 60021, 60026, 60031, 60036, + 60041, 60046, 60051, 60056, 60061, 60066, 60071, 60076, 60081, 60086, + 60091, 60096, 60101, 60106, 60111, 60116, 60121, 60127, 60132, 60138, + 60147, 60152, 60160, 60167, 60176, 60181, 60186, 60191, 60197, 60204, + 60211, 60216, 60221, 60226, 60231, 60236, 60241, 60246, 60251, 60256, + 60261, 60267, 60271, 60276, 60281, 60286, 60291, 60296, 60301, 60306, + 60311, 60316, 60321, 60326, 60331, 60336, 60341, 60346, 60351, 60356, + 60361, 60366, 60371, 60376, 60381, 60387, 60392, 60398, 60407, 60412, + 60420, 60427, 60436, 60441, 60446, 60451, 60457, 60464, 60471, 60479, + 60487, 60496, 60503, 60511, 60517, 60526, 60534, 60542, 60550, 60558, + 60566, 60574, 60579, 60586, 60591, 60597, 60605, 60612, 60619, 60627, + 60633, 60639, 60646, 60654, 60663, 60673, 60679, 60686, 60691, 60701, + 60711, 60716, 60721, 60726, 60731, 60736, 60741, 60746, 60751, 60756, + 60761, 60766, 60771, 60776, 60781, 60786, 60791, 60796, 60801, 60806, + 60811, 60816, 60821, 60826, 60831, 60836, 60841, 60846, 60851, 60856, + 60861, 60865, 60869, 60874, 60879, 60884, 60889, 60894, 60899, 60904, + 60909, 60914, 60919, 60924, 60929, 60934, 60939, 60944, 60949, 60954, + 60959, 60966, 60973, 60980, 60987, 60994, 61001, 61008, 61015, 61022, + 61029, 61036, 61043, 61050, 61057, 61062, 61067, 61074, 61081, 61088, + 61095, 61102, 61109, 61116, 61123, 61130, 61137, 61144, 61151, 61157, + 61163, 61169, 61175, 61182, 61189, 61196, 61203, 61210, 61217, 61224, + 61231, 61238, 61245, 61253, 61261, 61269, 61277, 61285, 61293, 61301, + 61309, 61313, 61319, 61325, 61329, 61335, 61341, 61347, 61354, 61361, + 61368, 61375, 61380, 61386, 61392, 61399, 0, 0, 0, 0, 0, 61406, 61414, + 61423, 61432, 61440, 61446, 61451, 61456, 61461, 61466, 61471, 61476, + 61481, 61486, 61491, 61496, 61501, 61506, 61511, 61516, 61521, 61526, + 61531, 61536, 61541, 61546, 61551, 61556, 61561, 61566, 61571, 61576, + 61581, 61586, 61591, 61596, 61601, 61606, 61611, 61616, 61621, 61626, + 61631, 61636, 61641, 0, 61646, 0, 0, 0, 0, 0, 61651, 0, 0, 61656, 61660, + 61665, 61670, 61675, 61680, 61689, 61694, 61699, 61704, 61709, 61714, + 61719, 61724, 61729, 61736, 61741, 61746, 61755, 61762, 61767, 61772, + 61777, 61784, 61789, 61796, 61801, 61806, 61813, 61820, 61825, 61830, + 61835, 61842, 61849, 61854, 61859, 61864, 61869, 61874, 61881, 61888, + 61893, 61898, 61903, 61908, 61913, 61918, 61923, 61928, 61933, 61938, + 61943, 61950, 61955, 61960, 0, 0, 0, 0, 0, 0, 0, 61965, 61972, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61977, 61982, 61986, 61990, 61994, + 61998, 62002, 62006, 62010, 62014, 62018, 62022, 62028, 62032, 62036, + 62040, 62044, 62048, 62052, 62056, 62060, 62064, 62068, 62072, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 62076, 62080, 62084, 62088, 62092, 62096, 62100, 0, + 62104, 62108, 62112, 62116, 62120, 62124, 62128, 0, 62132, 62136, 62140, + 62144, 62148, 62152, 62156, 0, 62160, 62164, 62168, 62172, 62176, 62180, + 62184, 0, 62188, 62192, 62196, 62200, 62204, 62208, 62212, 0, 62216, + 62220, 62224, 62228, 62232, 62236, 62240, 0, 62244, 62248, 62252, 62256, + 62260, 62264, 62268, 0, 62272, 62276, 62280, 62284, 62288, 62292, 62296, + 0, 62300, 62305, 62310, 62315, 62320, 62325, 62330, 62334, 62339, 62344, + 62349, 62353, 62358, 62363, 62368, 62373, 62377, 62382, 62387, 62392, + 62397, 62402, 62407, 62411, 62416, 62421, 62428, 62433, 62438, 62444, + 62451, 62458, 62467, 62474, 62483, 62488, 62493, 62500, 62507, 62513, + 62521, 62527, 62532, 62537, 62541, 62548, 62555, 62559, 62561, 62565, + 62571, 62573, 62577, 62581, 62585, 62591, 62596, 62600, 62604, 62609, + 62615, 62621, 62627, 62632, 62637, 62644, 62651, 62657, 62663, 62669, + 62675, 62681, 62687, 62691, 62695, 62702, 62709, 62715, 62719, 62724, + 62727, 62731, 62738, 62741, 62745, 62749, 62752, 62758, 62764, 62767, + 62773, 62777, 62781, 62787, 62792, 62797, 62799, 62802, 62806, 62812, + 62818, 62822, 62827, 62836, 62839, 62845, 62850, 62854, 62858, 62862, + 62865, 62870, 62876, 62884, 62892, 62898, 62903, 62908, 62914, 62920, + 62927, 62934, 62940, 62946, 62952, 62958, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 19275, 19279, 19290, 19305, 19320, 19330, 19341, 19354, - 19365, 19371, 19379, 19389, 19395, 19403, 19407, 19413, 19419, 19427, - 19437, 19445, 19458, 19464, 19472, 19480, 19492, 19499, 19507, 19515, - 19523, 19531, 19539, 19547, 19557, 19561, 19564, 19567, 19570, 19573, - 19576, 19579, 19582, 19585, 19588, 19592, 19596, 19600, 19604, 19608, - 19612, 19616, 19620, 19624, 19629, 19635, 19645, 19659, 19669, 19675, - 19681, 19689, 19697, 19705, 19713, 19719, 19725, 19728, 19732, 19736, - 19740, 19744, 19748, 19752, 0, 19756, 19760, 19764, 19768, 19772, 19776, - 19780, 19784, 19788, 19792, 19796, 19799, 19802, 19806, 19810, 19814, - 19817, 19821, 19825, 19829, 19833, 19837, 19841, 19845, 19849, 19852, - 19855, 19858, 19862, 19866, 19869, 19872, 19875, 19879, 19884, 19888, 0, - 0, 0, 0, 19892, 19897, 19901, 19906, 19910, 19915, 19920, 19926, 19931, - 19937, 19941, 19946, 19950, 19955, 19965, 19971, 19977, 19984, 19994, - 20000, 20004, 20008, 20014, 20020, 20028, 20034, 20042, 20050, 20058, - 20068, 20076, 20086, 20091, 20097, 20103, 20109, 20115, 20121, 20127, 0, - 20133, 20139, 20145, 20151, 20157, 20163, 20169, 20175, 20181, 20187, - 20193, 20198, 20203, 20209, 20215, 20221, 20226, 20232, 20238, 20244, - 20250, 20256, 20262, 20268, 20274, 20279, 20284, 20289, 20295, 20301, - 20306, 20311, 20316, 20322, 20330, 20337, 0, 20344, 20351, 20364, 20371, - 20378, 20386, 20394, 20400, 20406, 20412, 20422, 20427, 20433, 20443, - 20453, 0, 20463, 20473, 20481, 20493, 20505, 20511, 20525, 20540, 20545, - 20550, 20558, 20566, 20574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20582, - 20585, 20589, 20593, 20597, 20601, 20605, 20609, 20613, 20617, 20621, - 20625, 20629, 20633, 20637, 20641, 20645, 20649, 20653, 20657, 20661, - 20664, 20667, 20671, 20675, 20679, 20682, 20685, 20688, 20691, 20695, - 20698, 20701, 20705, 20708, 20713, 20716, 20720, 20723, 20727, 20730, - 20735, 20738, 20742, 20749, 20754, 20758, 20763, 20767, 20772, 20776, - 20781, 20788, 20794, 20800, 20804, 20808, 20812, 20816, 20820, 20826, - 20832, 20839, 20845, 20850, 20854, 20857, 20860, 20863, 20866, 20869, - 20872, 20875, 20878, 20881, 20887, 20891, 20895, 20899, 20903, 20907, - 20911, 20915, 20919, 20924, 20928, 20933, 20938, 20944, 20949, 20955, - 20961, 20967, 20973, 20979, 20987, 20995, 21003, 21011, 21020, 21029, - 21040, 21050, 21060, 21071, 21082, 21092, 21102, 21112, 21122, 21132, - 21142, 21152, 21162, 21170, 21177, 21183, 21190, 21195, 21201, 21207, - 21213, 21219, 21225, 21231, 21236, 21242, 21248, 21254, 21260, 21265, - 21274, 21281, 21287, 21295, 21303, 21309, 21315, 21321, 21327, 21335, - 21343, 21353, 21361, 21369, 21375, 21380, 21385, 21390, 21395, 21400, - 21405, 21410, 21415, 21420, 21426, 21432, 21438, 21445, 21450, 21456, - 21461, 21466, 21471, 21476, 21481, 21486, 21491, 21496, 21501, 21506, - 21511, 21516, 21521, 21526, 21531, 21536, 21541, 21546, 21551, 21556, - 21561, 21566, 21571, 21576, 21581, 21586, 21591, 21596, 21601, 21606, - 21611, 21616, 21621, 21626, 21631, 21636, 21641, 0, 21646, 0, 0, 0, 0, 0, - 21651, 0, 0, 21656, 21660, 21664, 21668, 21672, 21676, 21680, 21684, - 21688, 21692, 21696, 21700, 21704, 21708, 21712, 21716, 21720, 21724, - 21728, 21732, 21736, 21740, 21744, 21748, 21752, 21756, 21760, 21764, - 21768, 21772, 21776, 21780, 21784, 21788, 21792, 21796, 21800, 21804, - 21808, 21812, 21816, 21820, 21825, 21829, 21834, 21839, 21843, 21848, - 21853, 21857, 21861, 21865, 21869, 21873, 21877, 21881, 21885, 21889, - 21893, 21897, 21901, 21905, 21909, 21913, 21917, 21921, 21925, 21929, - 21933, 21937, 21941, 21945, 21949, 21953, 21957, 21961, 21965, 21969, - 21973, 21977, 21981, 21985, 21989, 21993, 21997, 22001, 22005, 22009, - 22013, 22017, 22021, 22025, 22029, 22033, 22037, 22041, 22045, 22049, - 22053, 22057, 22061, 22065, 22069, 22073, 22077, 22081, 22085, 22089, - 22093, 22097, 22101, 22105, 22109, 22113, 22117, 22121, 22125, 22129, - 22133, 22137, 22141, 22145, 22149, 22153, 22157, 22161, 22165, 22169, - 22173, 22177, 22181, 22185, 22189, 22193, 22197, 22201, 22205, 22209, - 22213, 22217, 22221, 22225, 22229, 22233, 22237, 22242, 22246, 22251, - 22255, 22260, 22265, 22269, 22274, 22279, 22283, 22288, 22293, 22298, - 22303, 22307, 22312, 22317, 22322, 22327, 22332, 22337, 22341, 22346, - 22351, 22356, 22361, 22366, 22371, 22376, 22381, 22386, 22391, 22396, - 22401, 22406, 22411, 22416, 22421, 22426, 22431, 22436, 22441, 22446, - 22451, 22456, 22461, 22466, 22471, 22476, 22481, 22486, 22491, 22496, - 22501, 22506, 22511, 22516, 22521, 22526, 22531, 22536, 22541, 22546, - 22551, 22556, 22561, 22566, 22571, 22576, 22581, 22586, 22591, 22595, - 22599, 22603, 22607, 22611, 22615, 22619, 22623, 22627, 22631, 22635, - 22639, 22643, 22647, 22651, 22655, 22659, 22663, 22667, 22671, 22675, - 22679, 22683, 22687, 22691, 22695, 22699, 22703, 22707, 22711, 22715, - 22719, 22723, 22727, 22731, 22735, 22739, 22743, 22747, 22751, 22755, - 22759, 22763, 22767, 22771, 22775, 22779, 22783, 22787, 22791, 22795, - 22799, 22803, 22807, 22811, 22815, 22819, 22823, 22827, 22831, 22835, - 22839, 22843, 22847, 22851, 22855, 22859, 22863, 22867, 22871, 22875, - 22879, 22883, 22887, 22891, 22895, 22899, 22903, 22907, 22911, 22915, - 22919, 22923, 22927, 22931, 22935, 22939, 22943, 22946, 22950, 22954, - 22958, 22962, 22966, 22970, 22974, 22977, 22981, 22985, 22989, 22993, - 22997, 23001, 23005, 23009, 23013, 23017, 23021, 23025, 23029, 23033, - 23037, 23040, 23044, 23048, 23052, 23056, 23060, 23064, 23068, 23072, - 23076, 23080, 23084, 23088, 23092, 23096, 23100, 23103, 23107, 23111, - 23115, 23119, 23123, 23127, 23131, 23134, 23138, 23142, 23146, 23150, - 23154, 23158, 23162, 23166, 23170, 23174, 23178, 23182, 23186, 23190, - 23194, 23198, 23202, 23206, 23210, 23214, 23218, 23222, 23226, 0, 23230, - 23234, 23238, 23242, 0, 0, 23246, 23250, 23254, 23258, 23262, 23266, - 23270, 0, 23274, 0, 23278, 23282, 23286, 23290, 0, 0, 23294, 23298, - 23302, 23306, 23310, 23314, 23318, 23322, 23326, 23330, 23334, 23338, - 23342, 23346, 23350, 23354, 23358, 23362, 23366, 23370, 23374, 23378, - 23382, 23385, 23389, 23393, 23397, 23401, 23405, 23409, 23413, 23417, - 23421, 23425, 23429, 23433, 23437, 23441, 23445, 23449, 23453, 0, 23457, - 23461, 23465, 23469, 0, 0, 23473, 23476, 23480, 23484, 23488, 23492, - 23496, 23500, 23504, 23508, 23512, 23516, 23520, 23524, 23528, 23532, - 23536, 23541, 23546, 23551, 23557, 23563, 23568, 23573, 23579, 23582, - 23586, 23590, 23594, 23598, 23602, 23606, 23610, 0, 23614, 23618, 23622, - 23626, 0, 0, 23630, 23634, 23638, 23642, 23646, 23650, 23654, 0, 23658, - 0, 23662, 23666, 23670, 23674, 0, 0, 23678, 23682, 23686, 23690, 23694, - 23698, 23702, 23706, 23710, 23715, 23720, 23725, 23731, 23737, 23742, 0, - 23747, 23751, 23755, 23759, 23763, 23767, 23771, 23775, 23779, 23783, - 23787, 23791, 23795, 23799, 23803, 23807, 23811, 23814, 23818, 23822, - 23826, 23830, 23834, 23838, 23842, 23846, 23850, 23854, 23858, 23862, - 23866, 23870, 23874, 23878, 23882, 23886, 23890, 23894, 23898, 23902, - 23906, 23910, 23914, 23918, 23922, 23926, 23930, 23934, 23938, 23942, - 23946, 23950, 23954, 23958, 23962, 23966, 23970, 0, 23974, 23978, 23982, - 23986, 0, 0, 23990, 23994, 23998, 24002, 24006, 24010, 24014, 24018, - 24022, 24026, 24030, 24034, 24038, 24042, 24046, 24050, 24054, 24058, - 24062, 24066, 24070, 24074, 24078, 24082, 24086, 24090, 24094, 24098, - 24102, 24106, 24110, 24114, 24118, 24122, 24126, 24130, 24134, 24138, - 24142, 24146, 24150, 24154, 24158, 24162, 24166, 24170, 24174, 24178, - 24182, 24186, 24190, 24194, 24198, 24202, 24206, 24210, 24214, 24217, - 24221, 24225, 24229, 24233, 24237, 24241, 24245, 24249, 24253, 0, 0, - 24257, 24266, 24272, 24277, 24281, 24284, 24289, 24292, 24295, 24298, - 24303, 24307, 24312, 24315, 24318, 24321, 24324, 24327, 24330, 24333, - 24336, 24339, 24343, 24347, 24351, 24355, 24359, 24363, 24367, 24371, - 24375, 24379, 0, 0, 0, 24384, 24390, 24394, 24398, 24402, 24408, 24412, - 24416, 24420, 24426, 24430, 24434, 24438, 24444, 24448, 24452, 24456, - 24462, 24468, 24474, 24482, 24488, 24494, 24500, 24506, 24512, 0, 0, 0, - 0, 0, 0, 24518, 24521, 24524, 24527, 24530, 24533, 24537, 24541, 24544, - 24548, 24552, 24556, 24560, 24564, 24567, 24571, 24575, 24579, 24583, - 24587, 24590, 24594, 24598, 24602, 24606, 24610, 24613, 24617, 24621, - 24625, 24629, 24632, 24636, 24640, 24644, 24648, 24652, 24656, 24660, - 24664, 24668, 24672, 24676, 24680, 24684, 24687, 24691, 24695, 24699, - 24703, 24707, 24711, 24715, 24719, 24723, 24727, 24731, 24735, 24739, - 24743, 24747, 24751, 24755, 24759, 24763, 24767, 24771, 24775, 24779, - 24783, 24787, 24791, 24795, 24799, 24803, 24807, 24811, 24815, 24819, - 24823, 24826, 24830, 24834, 24838, 24842, 24846, 0, 0, 24850, 24855, - 24860, 24865, 24870, 24875, 0, 0, 24880, 24884, 24887, 24891, 24894, - 24898, 24901, 24905, 24911, 24916, 24920, 24923, 24927, 24931, 24937, - 24941, 24947, 24951, 24957, 24961, 24967, 24971, 24977, 24983, 24987, - 24993, 24997, 25003, 25009, 25013, 25019, 25025, 25030, 25035, 25043, - 25051, 25058, 25063, 25069, 25078, 25084, 25092, 25097, 25103, 25107, - 25111, 25115, 25119, 25123, 25127, 25131, 25135, 25139, 25143, 25149, - 25154, 25159, 25162, 25166, 25170, 25176, 25180, 25186, 25190, 25196, - 25200, 25206, 25210, 25216, 25220, 25226, 25230, 25236, 25242, 25246, - 25252, 25257, 25261, 25265, 25269, 25273, 25276, 25280, 25286, 25291, - 25296, 25300, 25304, 25308, 25314, 25318, 25324, 25328, 25334, 25337, - 25342, 25346, 25352, 25356, 25362, 25366, 25372, 25378, 25382, 25386, - 25390, 25394, 25398, 25402, 25406, 25410, 25414, 25418, 25422, 25428, - 25431, 25435, 25439, 25445, 25449, 25455, 25459, 25465, 25469, 25475, - 25479, 25485, 25489, 25495, 25499, 25505, 25511, 25515, 25519, 25525, - 25531, 25537, 25543, 25547, 25551, 25555, 25559, 25563, 25567, 25573, - 25577, 25581, 25585, 25591, 25595, 25601, 25605, 25611, 25615, 25621, - 25625, 25631, 25635, 25641, 25645, 25651, 25657, 25661, 25667, 25671, - 25675, 25679, 25683, 25687, 25691, 25697, 25700, 25704, 25708, 25714, - 25718, 25724, 25728, 25734, 25738, 25744, 25748, 25754, 25758, 25764, - 25768, 25774, 25780, 25784, 25790, 25794, 25800, 25806, 25810, 25814, - 25818, 25822, 25826, 25830, 25836, 25839, 25843, 25847, 25853, 25857, - 25863, 25867, 25873, 25879, 25883, 25888, 25892, 25896, 25900, 25904, - 25908, 25912, 25916, 25922, 25925, 25929, 25933, 25939, 25943, 25949, - 25953, 25959, 25963, 25969, 25973, 25979, 25983, 25989, 25993, 25999, - 26002, 26007, 26012, 26016, 26020, 26024, 26028, 26032, 26036, 26042, - 26045, 26049, 26053, 26059, 26063, 26069, 26073, 26079, 26083, 26089, - 26093, 26099, 26103, 26109, 26113, 26119, 26125, 26129, 26135, 26139, - 26145, 26151, 26157, 26163, 26169, 26175, 26181, 26187, 26191, 26195, - 26199, 26203, 26207, 26211, 26215, 26219, 26225, 26229, 26235, 26239, - 26245, 26249, 26255, 26259, 26265, 26269, 26275, 26279, 26285, 26289, - 26293, 26297, 26301, 26305, 26309, 26313, 26319, 26322, 26326, 26330, - 26336, 26340, 26346, 26350, 26356, 26360, 26366, 26370, 26376, 26380, - 26386, 26390, 26396, 26402, 26406, 26412, 26418, 26424, 26428, 26434, - 26440, 26444, 26448, 26452, 26456, 26460, 26466, 26469, 26473, 26478, - 26482, 26488, 26491, 26496, 26501, 26505, 26509, 26513, 26517, 26521, - 26525, 26529, 26533, 26537, 26543, 26547, 26551, 26557, 26561, 26567, - 26571, 26577, 26581, 26585, 26589, 26593, 26597, 26603, 26607, 26611, - 26615, 26619, 26623, 26627, 26631, 26635, 26639, 26643, 26649, 26655, - 26661, 26667, 26673, 26678, 26684, 26690, 26696, 26700, 26704, 26708, - 26712, 26716, 26720, 26724, 26728, 26732, 26736, 26740, 26744, 26748, - 26754, 26760, 26766, 26771, 26775, 26779, 26783, 26787, 26791, 26795, - 26799, 26803, 26807, 26813, 26819, 26825, 26831, 26837, 26843, 26849, - 26855, 26861, 26865, 26869, 26873, 26877, 26881, 26885, 26889, 26895, - 26901, 26907, 26913, 26919, 26925, 26931, 26937, 26943, 26948, 26953, - 26958, 26963, 26969, 26975, 26981, 26987, 26993, 26999, 27005, 27010, - 27016, 27022, 27028, 27033, 27039, 27045, 27051, 27056, 27061, 27066, - 27071, 27076, 27081, 27086, 27091, 27096, 27101, 27106, 27111, 27115, - 27120, 27125, 27130, 27135, 27140, 27145, 27150, 27155, 27160, 27165, - 27170, 27175, 27180, 27185, 27190, 27195, 27200, 27205, 27210, 27215, - 27220, 27225, 27230, 27235, 27240, 27245, 27250, 27255, 27260, 27264, - 27269, 27274, 27279, 27284, 27289, 27294, 27299, 27304, 27309, 27314, - 27319, 27324, 27329, 27334, 27339, 27344, 27349, 27354, 27359, 27364, - 27369, 27374, 27379, 27384, 27389, 27393, 27398, 27403, 27408, 27413, - 27418, 27422, 27427, 27432, 27437, 27442, 27447, 27451, 27456, 27462, - 27467, 27472, 27477, 27482, 27488, 27493, 27498, 27503, 27508, 27513, - 27518, 27523, 27528, 27533, 27538, 27543, 27548, 27552, 27557, 27562, - 27567, 27572, 27577, 27582, 27587, 27592, 27597, 27602, 27607, 27612, - 27617, 27622, 27627, 27632, 27637, 27642, 27647, 27652, 27657, 27662, - 27667, 27672, 27677, 27682, 27687, 27692, 27697, 27702, 27707, 27713, - 27718, 27723, 27728, 27733, 27738, 27743, 27748, 27753, 27758, 27763, - 27768, 27772, 27777, 27782, 27787, 27792, 27797, 27802, 27807, 27812, - 27817, 27822, 27827, 27832, 27837, 27842, 27847, 27852, 27857, 27862, - 27867, 27872, 27877, 27882, 27887, 27892, 27897, 27902, 27908, 27912, - 27916, 27920, 27924, 27928, 27932, 27936, 27940, 27946, 27952, 27958, - 27964, 27970, 27976, 27982, 27989, 27995, 28000, 28005, 28010, 28015, - 28020, 28025, 28030, 28035, 28040, 28045, 28050, 28055, 28060, 28065, - 28070, 28075, 28080, 28085, 28090, 28095, 28100, 28105, 28110, 28115, - 28120, 28125, 28130, 28135, 0, 0, 0, 28142, 28153, 28158, 28166, 28171, - 28176, 28181, 28190, 28195, 28201, 28207, 28213, 28218, 28224, 28230, - 28234, 28239, 28244, 28254, 28259, 28264, 28271, 28276, 28281, 28290, - 28295, 28304, 28311, 28318, 28325, 28332, 28343, 28350, 28355, 28365, - 28369, 28376, 28381, 28388, 28394, 28401, 28410, 28417, 28424, 28433, - 28440, 28445, 28450, 28461, 28468, 28473, 28484, 28491, 28496, 28501, - 28509, 28518, 28525, 28532, 28542, 28547, 28552, 28557, 28566, 28574, - 28579, 28584, 28589, 28594, 28599, 28604, 28609, 28614, 28619, 28624, - 28629, 28635, 28641, 28647, 28652, 28657, 28662, 28667, 28672, 28677, - 28686, 28695, 28704, 28713, 0, 0, 0, 0, 0, 0, 0, 28722, 28726, 28730, - 28734, 28738, 28743, 28748, 28753, 28758, 28762, 28766, 28771, 28775, - 28779, 28783, 28787, 28792, 28796, 28800, 28805, 28810, 28815, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 28820, 28826, 28830, 28834, 28838, 28842, 28847, 28852, - 28857, 28862, 28866, 28870, 28875, 28879, 28883, 28887, 28891, 28896, - 28900, 28904, 28909, 28914, 28919, 28925, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 28930, 28934, 28938, 28942, 28946, 28951, 28956, 28961, 28966, 28970, - 28974, 28979, 28983, 28987, 28991, 28995, 29000, 29004, 29008, 29013, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29018, 29022, 29026, 29030, 29034, - 29039, 29044, 29049, 29054, 29058, 29062, 29067, 29071, 0, 29075, 29079, - 29084, 0, 29088, 29093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29098, 29101, - 29105, 29109, 29113, 29117, 29121, 29125, 29129, 29133, 29137, 29141, - 29145, 29149, 29153, 29157, 29161, 29165, 29168, 29172, 29176, 29180, - 29184, 29188, 29192, 29196, 29200, 29204, 29208, 29212, 29216, 29220, - 29223, 29226, 29229, 29233, 29239, 29245, 29251, 29257, 29263, 29269, - 29275, 29281, 29287, 29293, 29299, 29305, 29311, 29317, 29326, 29335, - 29341, 29347, 29353, 29358, 29362, 29367, 29372, 29377, 29381, 29386, - 29391, 29396, 29400, 29405, 29409, 29414, 29419, 29424, 29429, 29433, - 29437, 29441, 29445, 29449, 29453, 29457, 29461, 29465, 29469, 29475, - 29479, 29483, 29487, 29491, 29495, 29503, 29509, 29513, 29519, 29523, - 29529, 29533, 0, 0, 29537, 29541, 29544, 29547, 29550, 29553, 29556, - 29559, 29562, 29565, 0, 0, 0, 0, 0, 0, 29568, 29576, 29584, 29592, 29600, - 29608, 29616, 29624, 29632, 29640, 0, 0, 0, 0, 0, 0, 29648, 29651, 29654, - 29657, 29662, 29665, 29670, 29677, 29685, 29690, 29697, 29700, 29707, - 29714, 29721, 29725, 29732, 29736, 29739, 29742, 29745, 29748, 29751, - 29754, 29757, 29760, 0, 0, 0, 0, 0, 0, 29763, 29766, 29769, 29772, 29775, - 29778, 29782, 29786, 29790, 29793, 29797, 29801, 29804, 29808, 29812, - 29815, 29818, 29821, 29825, 29829, 29833, 29837, 29841, 29844, 29847, - 29851, 29855, 29858, 29862, 29866, 29870, 29874, 29878, 29882, 29886, - 29890, 29897, 29902, 29907, 29912, 29917, 29923, 29929, 29935, 29941, - 29946, 29952, 29958, 29963, 29969, 29975, 29981, 29987, 29993, 29998, - 30004, 30009, 30015, 30021, 30027, 30033, 30039, 30044, 30049, 30055, - 30061, 30066, 30072, 30077, 30083, 30088, 30093, 30099, 30105, 30111, - 30117, 30123, 30129, 30135, 30141, 30147, 30153, 30159, 30165, 30170, - 30175, 30180, 30186, 30192, 0, 0, 0, 0, 0, 0, 0, 30200, 30209, 30218, - 30226, 30234, 30244, 30252, 30261, 30268, 30275, 30282, 30290, 30298, - 30306, 30314, 30322, 30330, 30338, 30346, 30353, 30361, 30369, 30377, - 30385, 30393, 30403, 30413, 30423, 30433, 30443, 30453, 30463, 30473, - 30483, 30493, 30503, 30513, 30523, 30533, 30541, 30549, 30559, 30567, 0, - 0, 0, 0, 0, 30577, 30581, 30585, 30589, 30593, 30597, 30601, 30605, - 30609, 30613, 30617, 30621, 30625, 30629, 30633, 30637, 30641, 30645, - 30649, 30653, 30657, 30661, 30665, 30669, 30675, 30679, 30685, 30689, - 30695, 30699, 30705, 30709, 30713, 30717, 30721, 30725, 30729, 30735, - 30741, 30747, 30753, 30759, 30765, 30771, 30777, 30783, 30789, 30795, - 30802, 30808, 30814, 30820, 30824, 30828, 30832, 30836, 30840, 30844, - 30848, 30854, 30860, 30866, 30871, 30878, 30883, 30888, 30894, 30899, - 30906, 30913, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30920, 30926, 30930, 30935, - 30940, 30945, 30950, 30955, 30960, 30965, 30970, 30975, 30980, 30985, - 30990, 30995, 30999, 31003, 31008, 31013, 31018, 31022, 31026, 31030, - 31034, 31039, 31044, 31049, 31053, 31057, 31062, 0, 31067, 31072, 31077, - 31082, 31088, 31094, 31100, 31106, 31111, 31116, 31122, 31128, 0, 0, 0, - 0, 31135, 31140, 31146, 31152, 31158, 31163, 31168, 31173, 31178, 31183, - 31188, 31193, 0, 0, 0, 0, 31198, 0, 0, 0, 31203, 31208, 31213, 31218, - 31222, 31226, 31230, 31234, 31238, 31242, 31246, 31250, 31254, 31259, - 31265, 31271, 31277, 31282, 31287, 31293, 31299, 31304, 31309, 31315, - 31320, 31326, 31332, 31337, 31343, 31349, 31355, 31360, 31365, 31370, - 31376, 31382, 31387, 31393, 31398, 31404, 31409, 31415, 0, 0, 31421, - 31427, 31433, 31439, 31445, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31451, - 31460, 31469, 31477, 31486, 31495, 31503, 31512, 31521, 31530, 31538, - 31546, 31555, 31563, 31571, 31580, 31589, 31597, 31606, 31615, 31623, - 31631, 31640, 31648, 31656, 31665, 31673, 31682, 31691, 31699, 31708, - 31717, 31725, 31733, 31742, 31751, 31759, 31768, 31777, 31786, 31795, - 31804, 31813, 31822, 0, 0, 0, 0, 31831, 31841, 31850, 31859, 31867, - 31876, 31884, 31893, 31901, 31910, 31919, 31928, 31937, 31946, 31955, - 31964, 31973, 31982, 31991, 32000, 32009, 32018, 32027, 32036, 32045, - 32053, 0, 0, 0, 0, 0, 0, 32061, 32069, 32076, 32083, 32090, 32097, 32104, - 32111, 32118, 32125, 32132, 0, 0, 0, 32140, 32148, 32156, 32160, 32166, - 32172, 32178, 32184, 32190, 32196, 32202, 32208, 32214, 32220, 32226, - 32232, 32238, 32244, 32250, 32254, 32260, 32266, 32272, 32278, 32284, - 32290, 32296, 32302, 32308, 32314, 32320, 32326, 32332, 32338, 32344, - 32348, 32353, 32358, 32363, 32367, 32372, 32376, 32381, 32386, 32391, - 32395, 32400, 32405, 32410, 32415, 32420, 32424, 32428, 32432, 32437, - 32441, 32445, 32449, 32454, 32459, 32464, 32469, 0, 0, 32475, 32479, - 32486, 32491, 32497, 32503, 32508, 32514, 32520, 32525, 32531, 32537, - 32543, 32548, 32554, 32559, 32564, 32570, 32575, 32581, 32586, 32592, - 32598, 32604, 32610, 32614, 32619, 32624, 32630, 32636, 32641, 32647, - 32653, 32657, 32662, 32667, 32671, 32676, 32680, 32685, 32690, 32696, - 32702, 32707, 32712, 32717, 32721, 32726, 32730, 32735, 32739, 32744, - 32749, 32754, 32759, 32765, 32772, 32779, 32789, 32798, 32805, 32811, - 32822, 32827, 32833, 0, 32838, 32843, 32848, 32856, 32862, 32870, 32875, - 32881, 32887, 32893, 32898, 32904, 32909, 32916, 32922, 32927, 32933, - 32939, 32945, 32952, 32959, 32966, 32971, 32976, 32983, 32990, 32997, - 33004, 33011, 0, 0, 33018, 33025, 33032, 33038, 33044, 33050, 33056, - 33062, 33068, 33074, 33080, 0, 0, 0, 0, 0, 0, 33086, 33092, 33097, 33102, - 33107, 33112, 33117, 33122, 33127, 33132, 0, 0, 0, 0, 0, 0, 33137, 33142, - 33147, 33152, 33157, 33162, 33167, 33176, 33183, 33188, 33193, 33198, - 33203, 33208, 0, 0, 33213, 33220, 33223, 33226, 33230, 33235, 33239, - 33245, 33250, 33256, 33263, 33271, 33275, 33280, 33284, 33289, 33296, - 33304, 33311, 33317, 33325, 33332, 33337, 33341, 33348, 33352, 33357, - 33362, 33369, 33377, 33384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 62962, 62966, 62970, 62975, 62980, 62985, 62989, 62993, 62997, 63002, + 63007, 63011, 63015, 63019, 63023, 63028, 63033, 63038, 63043, 63047, + 63051, 63056, 63061, 63066, 63071, 63075, 0, 63079, 63083, 63087, 63091, + 63095, 63099, 63103, 63108, 63113, 63117, 63122, 63127, 63136, 63140, + 63144, 63148, 63155, 63159, 63164, 63169, 63173, 63177, 63183, 63188, + 63193, 63198, 63203, 63207, 63211, 63215, 63219, 63223, 63228, 63233, + 63237, 63241, 63246, 63251, 63256, 63260, 63264, 63269, 63274, 63280, + 63286, 63290, 63296, 63302, 63306, 63312, 63318, 63323, 63328, 63332, + 63338, 63342, 63346, 63352, 63358, 63363, 63368, 63372, 63376, 63384, + 63390, 63396, 63402, 63407, 63412, 63417, 63423, 63427, 63433, 63437, + 63441, 63447, 63453, 63459, 63465, 63471, 63477, 63483, 63489, 63495, + 63501, 63507, 63513, 63517, 63523, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63529, 63532, 63536, 63540, 63544, 63548, 63551, 63554, 63558, 63562, + 63566, 63570, 63573, 63578, 63582, 63586, 63590, 63596, 63600, 63604, + 63608, 63612, 63619, 63625, 63629, 63633, 63637, 63641, 63645, 63649, + 63653, 63657, 63661, 63665, 63669, 63675, 63679, 63683, 63687, 63691, + 63695, 63699, 63703, 63707, 63711, 63715, 63719, 63723, 63727, 63731, + 63735, 63739, 63745, 63751, 63756, 63761, 63765, 63769, 63773, 63777, + 63781, 63785, 63789, 63793, 63797, 63801, 63805, 63809, 63813, 63817, + 63821, 63825, 63829, 63833, 63837, 63841, 63845, 63849, 63853, 63857, + 63863, 63867, 63871, 63875, 63879, 63883, 63887, 63891, 63895, 63900, + 63907, 63911, 63915, 63919, 63923, 63927, 63931, 63935, 63939, 63943, + 63947, 63951, 63955, 63962, 63966, 63972, 63976, 63980, 63984, 63988, + 63992, 63995, 63999, 64003, 64007, 64011, 64015, 64019, 64023, 64027, + 64031, 64035, 64039, 64043, 64047, 64051, 64055, 64059, 64063, 64067, + 64071, 64075, 64079, 64083, 64087, 64091, 64095, 64099, 64103, 64107, + 64111, 64115, 64119, 64123, 64129, 64133, 64137, 64141, 64145, 64149, + 64153, 64157, 64161, 64165, 64169, 64173, 64177, 64181, 64185, 64189, + 64193, 64197, 64201, 64205, 64209, 64213, 64217, 64221, 64225, 64229, + 64233, 64237, 64245, 64249, 64253, 64257, 64261, 64265, 64271, 64275, + 64279, 64283, 64287, 64291, 64295, 64299, 64303, 64307, 64311, 64315, + 64319, 64323, 64329, 64333, 64337, 64341, 64345, 64349, 64353, 64357, + 64361, 64365, 64369, 64373, 64377, 64381, 64385, 64389, 64393, 64397, + 64401, 64405, 64409, 64413, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64417, 64425, 64433, 64443, 64453, + 64462, 64472, 64482, 64493, 64505, 64516, 64528, 0, 0, 0, 0, 64535, + 64538, 64541, 64546, 64549, 64556, 64560, 64564, 64568, 64573, 64578, + 64584, 64590, 64595, 64600, 64606, 64612, 64618, 64624, 64627, 64630, + 64637, 64644, 64650, 64656, 64664, 64672, 64677, 64682, 64686, 64694, + 64700, 64707, 64712, 64717, 64722, 64727, 64732, 64737, 64742, 64747, + 64752, 64757, 64762, 64767, 64772, 64777, 64783, 64788, 64792, 64798, + 64809, 64818, 64832, 64841, 64845, 64855, 64861, 64867, 64873, 64878, + 64881, 64886, 64890, 0, 64896, 64901, 64905, 64910, 64914, 64919, 64923, + 64928, 64932, 64937, 64941, 64945, 64950, 64955, 64960, 64965, 64970, + 64975, 64980, 64985, 64990, 64994, 64999, 65004, 65009, 65014, 65019, + 65024, 65029, 65034, 65039, 65044, 65049, 65054, 65059, 65065, 65070, + 65075, 65080, 65085, 65089, 65094, 65098, 65103, 65108, 65113, 65118, + 65122, 65127, 65131, 65136, 65141, 65146, 65151, 65156, 65161, 65166, + 65171, 65176, 65181, 65186, 65191, 65195, 65200, 65205, 65210, 65215, + 65220, 65224, 65230, 65235, 65241, 65246, 65250, 65255, 65260, 65265, + 65270, 65276, 65281, 65286, 65291, 65296, 65301, 65306, 65311, 0, 0, + 65317, 65325, 65333, 65340, 65347, 65352, 65359, 65365, 65370, 65374, + 65377, 65381, 65384, 65388, 65391, 65395, 65398, 65402, 65405, 65408, + 65412, 65416, 65420, 65424, 65428, 65432, 65436, 65440, 65444, 65447, + 65451, 65455, 65459, 65463, 65467, 65471, 65475, 65479, 65483, 65487, + 65491, 65495, 65499, 65504, 65508, 65512, 65516, 65520, 65523, 65527, + 65530, 65534, 65538, 65542, 65546, 65549, 65553, 65556, 65560, 65564, + 65568, 65572, 65576, 65580, 65584, 65588, 65592, 65596, 65600, 65604, + 65607, 65611, 65615, 65619, 65623, 65627, 65630, 65635, 65639, 65644, + 65648, 65651, 65655, 65659, 65663, 65667, 65672, 65676, 65680, 65684, + 65688, 65692, 65696, 65700, 65705, 65709, 65713, 65717, 65721, 65725, + 65732, 65736, 65742, 0, 0, 0, 0, 0, 65747, 65752, 65757, 65762, 65767, + 65772, 65777, 65782, 65786, 65791, 65796, 65801, 65806, 65811, 65816, + 65821, 65826, 65831, 65835, 65840, 65845, 65850, 65854, 65858, 65862, + 65867, 65872, 65877, 65882, 65887, 65892, 65897, 65902, 65907, 65912, + 65916, 65920, 65925, 65930, 65935, 65940, 65945, 65952, 0, 65957, 65961, + 65965, 65969, 65973, 65977, 65981, 65985, 65989, 65993, 65997, 66001, + 66005, 66009, 66013, 66017, 66021, 66025, 66029, 66033, 66037, 66041, + 66045, 66049, 66053, 66057, 66061, 66065, 66069, 66073, 66077, 66080, + 66084, 66087, 66091, 66095, 66098, 66102, 66106, 66109, 66113, 66117, + 66121, 66125, 66128, 66132, 66136, 66140, 66144, 66148, 66152, 66155, + 66158, 66162, 66166, 66170, 66174, 66178, 66182, 66186, 66190, 66194, + 66198, 66202, 66206, 66210, 66214, 66218, 66222, 66226, 66230, 66234, + 66238, 66242, 66246, 66250, 66254, 66258, 66262, 66266, 66270, 66274, + 66278, 66282, 66286, 66290, 66294, 66298, 66302, 66306, 66310, 66314, + 66318, 66322, 0, 66326, 66332, 66338, 66343, 66348, 66353, 66359, 66365, + 66370, 66376, 66382, 66388, 66394, 66400, 66406, 66412, 66418, 66423, + 66428, 66433, 66438, 66443, 66448, 66453, 66458, 66463, 66468, 66473, + 66478, 66483, 66488, 66493, 66498, 66503, 66508, 66513, 66518, 66524, + 66530, 66536, 66542, 66547, 66552, 66557, 66563, 66568, 66573, 66578, + 66583, 66588, 66593, 66598, 66603, 66608, 66613, 66618, 66623, 66628, + 66633, 66638, 66643, 66648, 66653, 66658, 66663, 66668, 66673, 66678, + 66683, 66688, 66693, 66698, 66703, 66708, 66713, 66718, 66723, 66728, + 66733, 66738, 66743, 66748, 66753, 66758, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 66763, 66768, 66773, 66778, 66782, 66787, 66791, 66796, 66801, + 66806, 66811, 66816, 66820, 66825, 66830, 66835, 66840, 66844, 66848, + 66852, 66856, 66860, 66864, 66868, 66872, 66876, 66880, 66884, 66888, + 66892, 66896, 66901, 66906, 66911, 66916, 66921, 66926, 66931, 66936, + 66941, 66946, 66951, 66956, 66961, 66966, 66971, 66978, 0, 66986, 66990, + 66994, 66998, 67002, 67006, 67010, 67014, 67018, 67022, 67027, 67032, + 67037, 67042, 67047, 67052, 67057, 67062, 67067, 67072, 67077, 67082, + 67087, 67092, 67097, 67102, 67107, 67112, 67117, 67122, 67127, 67132, + 67137, 67142, 67147, 67152, 67157, 67162, 67167, 67172, 67177, 67186, + 67195, 67204, 67213, 67222, 67231, 67240, 67249, 67252, 67257, 67262, + 67267, 67272, 67277, 67282, 67287, 67292, 67297, 67301, 67306, 67311, + 67316, 67321, 67326, 67330, 67334, 67338, 67342, 67346, 67350, 67354, + 67358, 67362, 67366, 67370, 67374, 67378, 67382, 67387, 67392, 67397, + 67402, 67407, 67412, 67417, 67422, 67427, 67432, 67437, 67442, 67447, + 67452, 67459, 67466, 67471, 67476, 67480, 67484, 67488, 67492, 67496, + 67500, 67504, 67508, 67512, 67517, 67522, 67527, 67532, 67537, 67542, + 67547, 67552, 67557, 67562, 67567, 67572, 67577, 67582, 67587, 67592, + 67597, 67602, 67607, 67612, 67617, 67622, 67627, 67632, 67637, 67642, + 67647, 67652, 67657, 67662, 67667, 67671, 67676, 67681, 67686, 67691, + 67696, 67701, 67706, 67711, 67716, 67721, 67726, 67731, 67735, 67740, + 67745, 67750, 67755, 67760, 67765, 67770, 67775, 67780, 67784, 67791, + 67798, 67805, 67812, 67819, 67826, 67833, 67840, 67847, 67854, 67861, + 67868, 67871, 67874, 67877, 67882, 67885, 67888, 67891, 67894, 67897, + 67900, 67904, 67908, 67912, 67916, 67919, 67923, 67927, 67931, 67935, + 67939, 67943, 67947, 67951, 67954, 67957, 67961, 67965, 67969, 67973, + 67976, 67980, 67984, 67988, 67992, 67995, 67999, 68003, 68007, 68011, + 68014, 68018, 68022, 68025, 68029, 68033, 68037, 68041, 68045, 68049, + 68053, 68057, 68064, 68067, 68070, 68073, 68076, 68079, 68082, 68085, + 68088, 68091, 68094, 68097, 68100, 68103, 68106, 68109, 68112, 68115, + 68118, 68121, 68124, 68127, 68130, 68133, 68136, 68139, 68142, 68145, + 68148, 68151, 68154, 68157, 68160, 68163, 68166, 68169, 68172, 68175, + 68178, 68181, 68184, 68187, 68190, 68193, 68196, 68199, 68202, 68205, + 68208, 68211, 68214, 68217, 68220, 68223, 68226, 68229, 68232, 68235, + 68238, 68241, 68244, 68247, 68250, 68253, 68256, 68259, 68262, 68265, + 68268, 68271, 68274, 68277, 68280, 68283, 68286, 68289, 68292, 68295, + 68298, 68301, 68304, 68307, 68310, 68313, 68316, 68319, 68322, 68325, + 68328, 68337, 68345, 68353, 68361, 68369, 68377, 68385, 68393, 68401, + 68409, 68418, 68427, 68436, 68445, 68454, 68463, 68472, 68481, 68490, + 68499, 68508, 68517, 68526, 68535, 68544, 68547, 68550, 68553, 68555, + 68558, 68561, 68564, 68569, 68574, 68577, 68584, 68591, 68598, 68605, + 68608, 68613, 68615, 68619, 68621, 68623, 68626, 68629, 68632, 68635, + 68638, 68641, 68644, 68649, 68654, 68657, 68660, 68663, 68666, 68669, + 68672, 68675, 68679, 68682, 68685, 68688, 68691, 68694, 68699, 68702, + 68705, 68708, 68713, 68718, 68723, 68728, 68733, 68738, 68743, 68748, + 68754, 68762, 68764, 68767, 68770, 68773, 68776, 68782, 68790, 68793, + 68796, 68801, 68804, 68807, 68810, 68815, 68818, 68821, 68826, 68829, + 68832, 68837, 68840, 68843, 68848, 68853, 68858, 68861, 68864, 68867, + 68870, 68876, 68879, 68882, 68885, 68887, 68890, 68893, 68896, 68901, + 68904, 68907, 68910, 68913, 68916, 68921, 68924, 68927, 68930, 68933, + 68936, 68939, 68942, 68945, 68948, 68954, 68959, 68967, 68975, 68983, + 68991, 68999, 69007, 69015, 69023, 69031, 69040, 69049, 69058, 69067, + 69076, 69085, 69094, 69103, 69112, 69121, 69130, 69139, 69148, 69157, + 69166, 69175, 69184, 69193, 69202, 69211, 69220, 69229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33392, 33398, 33404, 33408, 33412, 33416, - 33420, 33426, 33430, 33436, 33440, 33446, 33452, 33460, 33466, 33474, - 33478, 33482, 33486, 33492, 33495, 33501, 33505, 33511, 33515, 33519, - 33525, 33529, 33535, 33539, 33545, 33553, 33561, 33569, 33575, 33579, - 33585, 33589, 33595, 33598, 33601, 33607, 33611, 33617, 33620, 33623, - 33626, 33629, 33633, 33639, 33645, 33648, 33651, 33655, 33660, 33665, - 33672, 33677, 33684, 33691, 33700, 33707, 33716, 33721, 33728, 33735, - 33744, 33749, 33756, 33761, 33767, 33773, 33779, 33785, 33791, 33797, - 33803, 0, 0, 0, 33809, 33813, 33816, 33819, 33822, 33825, 33828, 33831, - 33834, 33837, 33840, 33843, 33846, 33849, 33854, 33859, 33864, 33867, - 33872, 33877, 33882, 33887, 33894, 33899, 33904, 33909, 33914, 33921, - 33927, 33933, 33939, 33945, 33951, 33960, 33969, 33975, 33981, 33990, - 33999, 34008, 34017, 34026, 34035, 34044, 34053, 34062, 34067, 0, 34072, - 34077, 34082, 34087, 34091, 34095, 34099, 34104, 34108, 34112, 34117, - 34121, 34126, 34131, 34136, 34141, 34146, 34151, 34156, 34161, 34166, - 34170, 34174, 34179, 34184, 34189, 34193, 34197, 34201, 34205, 34210, - 34214, 34219, 34223, 34229, 34235, 34241, 34247, 34253, 34259, 34265, - 34271, 34277, 34282, 34287, 34294, 34302, 34307, 34312, 34317, 34321, - 34325, 34329, 34333, 34337, 34341, 34345, 34349, 34353, 34357, 34362, - 34367, 34372, 34378, 34384, 34388, 34394, 34398, 34404, 34410, 34415, - 34422, 34426, 34432, 34436, 34442, 34447, 34454, 34461, 34466, 34473, - 34478, 34483, 34487, 34493, 34497, 34503, 34510, 34517, 34521, 34527, - 34533, 34537, 34543, 34548, 34552, 34558, 34563, 34568, 34573, 34578, - 34582, 34586, 34591, 34596, 34603, 34609, 34614, 34621, 34626, 34633, - 34638, 34647, 34653, 34659, 34663, 0, 0, 0, 0, 0, 0, 0, 0, 34667, 34676, - 34683, 34690, 34697, 34701, 34706, 34711, 34716, 34721, 34726, 34731, - 34736, 34741, 34746, 34751, 34756, 34761, 34765, 34769, 34774, 34779, - 34784, 34789, 34794, 34799, 34803, 34808, 34813, 34818, 34823, 34827, - 34831, 34835, 34839, 34844, 34849, 34853, 34858, 34863, 34867, 34873, - 34879, 34885, 34890, 34895, 34901, 34906, 34912, 34917, 34923, 34929, - 34934, 34940, 34946, 34951, 34957, 34963, 34969, 34974, 0, 0, 0, 34979, - 34985, 34995, 35001, 35009, 35015, 35020, 35024, 35028, 35032, 35036, - 35040, 35044, 35048, 35052, 0, 0, 0, 35056, 35061, 35066, 35071, 35078, - 35084, 35090, 35096, 35102, 35108, 35114, 35120, 35126, 35132, 35138, - 35145, 35152, 35159, 35166, 35173, 35180, 35187, 35194, 35201, 35208, - 35215, 35222, 35229, 35236, 35243, 35250, 35257, 35264, 35271, 35278, - 35285, 35292, 35299, 35306, 35313, 35320, 35327, 35334, 35341, 35349, - 35357, 35365, 35371, 35377, 35383, 35391, 35400, 35407, 35414, 35420, - 35427, 35434, 35441, 35449, 35456, 0, 0, 0, 0, 0, 0, 0, 35463, 35470, - 35477, 35484, 35491, 35498, 35505, 35512, 35519, 35526, 35533, 35540, - 35547, 35554, 35561, 35568, 35575, 35582, 35589, 35596, 35603, 35610, - 35617, 35624, 35631, 35638, 35645, 35652, 35659, 35666, 35673, 35680, - 35687, 35694, 35701, 35708, 35715, 35722, 35729, 35736, 35743, 35750, - 35758, 0, 0, 35765, 35772, 35780, 35788, 35796, 35804, 35812, 35820, - 35830, 35840, 35850, 0, 0, 0, 0, 0, 0, 0, 0, 35860, 35865, 35870, 35875, - 35880, 35889, 35900, 35909, 35920, 35926, 35939, 35945, 35952, 35959, - 35964, 35970, 35976, 35987, 35996, 36003, 36010, 36019, 36026, 36035, - 36045, 36055, 36062, 36069, 36076, 36086, 36091, 36099, 36105, 36113, - 36122, 36127, 36134, 36140, 36145, 36150, 36155, 36161, 36168, 0, 0, 0, - 0, 0, 36176, 36181, 36187, 36193, 36201, 36207, 36213, 36219, 36224, - 36231, 36236, 36242, 36248, 36256, 36262, 36270, 36275, 36282, 36288, - 36296, 36304, 36310, 36316, 36323, 36330, 36336, 36343, 36349, 36355, - 36360, 36366, 36374, 36382, 36388, 36394, 36400, 36406, 36414, 36418, - 36424, 36430, 36436, 36442, 36448, 36454, 36458, 36463, 36468, 36475, - 36480, 36484, 36490, 36495, 36500, 36504, 36509, 36514, 36518, 36523, - 36528, 36535, 36539, 36544, 36549, 36553, 36558, 36562, 36567, 36571, - 36576, 36581, 36587, 36592, 36597, 36601, 36606, 36612, 36619, 36624, - 36629, 36634, 36639, 36644, 36648, 36654, 36661, 36668, 36673, 36678, - 36682, 36688, 36694, 36699, 36704, 36709, 36715, 36720, 36726, 36731, - 36737, 36743, 36749, 36756, 36763, 36770, 36777, 36784, 36791, 36796, - 36804, 36813, 36822, 36831, 36840, 36849, 36858, 36870, 36879, 36888, - 36897, 36903, 36908, 36915, 36923, 36931, 36938, 36945, 36952, 36959, - 36967, 36976, 36985, 36994, 37003, 37012, 37021, 37030, 37039, 37048, - 37057, 37066, 37075, 37084, 37093, 37101, 37110, 37121, 37130, 37141, - 37154, 37163, 37172, 37182, 37191, 37199, 37208, 37214, 37219, 37227, - 37232, 37240, 37245, 37254, 37260, 37266, 37273, 37278, 37283, 37291, - 37299, 37308, 37317, 37322, 37329, 37339, 37347, 37356, 37362, 37368, - 37373, 37380, 37385, 37394, 37399, 37404, 37409, 37416, 37422, 37427, - 37436, 37444, 37449, 37454, 37461, 37468, 37472, 37476, 37479, 37482, - 37485, 37488, 37491, 37494, 37501, 37504, 37507, 37512, 37516, 37520, - 37524, 37528, 37532, 37542, 37548, 37554, 37560, 37568, 37576, 37582, - 37588, 37595, 37601, 37606, 37612, 37619, 37625, 37632, 37638, 37646, - 37652, 37659, 37665, 37671, 37677, 37683, 37689, 37695, 37706, 37716, - 37722, 37728, 37738, 37744, 37752, 37760, 37768, 37773, 37778, 37784, - 37789, 37797, 37803, 37807, 37814, 37821, 37826, 37835, 37843, 37851, - 37858, 37865, 37872, 37879, 37887, 37895, 37906, 37917, 37925, 37933, - 37941, 37949, 37958, 37967, 37975, 37983, 37992, 38001, 38012, 38023, - 38034, 38045, 38054, 38063, 38072, 38081, 38092, 38103, 38111, 38119, - 38127, 38135, 38143, 38151, 38159, 38167, 38175, 38183, 38191, 38199, - 38208, 38217, 38226, 38235, 38246, 38257, 38265, 38273, 38281, 38289, - 38298, 38307, 38315, 38323, 38335, 38347, 38356, 38365, 38374, 38383, - 38391, 38399, 38407, 38415, 38423, 38431, 38439, 38447, 38455, 38463, - 38472, 38481, 38490, 38499, 38509, 38519, 38529, 38539, 38549, 38559, - 38569, 38579, 38587, 38595, 38603, 38611, 38619, 38627, 38635, 38643, - 38655, 38667, 38676, 38685, 38693, 38701, 38709, 38717, 38728, 38739, - 38750, 38761, 38773, 38785, 38793, 38801, 38809, 38817, 38826, 38835, - 38844, 38853, 38861, 38869, 38877, 38885, 38893, 38901, 38911, 38921, - 38931, 38941, 38949, 38957, 38965, 38973, 38981, 38989, 38997, 39005, - 39013, 39021, 39029, 39037, 39045, 39053, 39061, 39069, 39077, 39085, - 39093, 39101, 39109, 39117, 39125, 39133, 39142, 39151, 39160, 39168, - 39177, 39186, 39195, 39204, 39214, 39223, 39230, 39235, 39242, 39249, - 39257, 39265, 39275, 39285, 39295, 39305, 39316, 39327, 39337, 39347, - 39357, 39367, 39377, 39387, 39397, 39407, 39418, 39429, 39439, 39449, - 39459, 39469, 39477, 39485, 39494, 39503, 39511, 39519, 39530, 39541, - 39552, 39563, 39575, 39587, 39598, 39609, 39620, 39631, 39640, 39649, - 39657, 39665, 39672, 39679, 39687, 39695, 39705, 39715, 39725, 39735, - 39746, 39757, 39767, 39777, 39787, 39797, 39807, 39817, 39827, 39837, - 39848, 39859, 39869, 39879, 39889, 39899, 39906, 39913, 39921, 39929, - 39939, 39949, 39959, 39969, 39980, 39991, 40001, 40011, 40021, 40031, - 40039, 40047, 40055, 40063, 40072, 40081, 40089, 40097, 40104, 40111, - 40118, 40125, 40133, 40141, 40149, 40157, 40168, 40179, 40190, 40201, - 40212, 40223, 40231, 40239, 40250, 40261, 40272, 40283, 40294, 40305, - 40313, 40321, 40332, 40343, 40354, 0, 0, 40365, 40373, 40381, 40392, - 40403, 40414, 0, 0, 40425, 40433, 40441, 40452, 40463, 40474, 40485, - 40496, 40507, 40515, 40523, 40534, 40545, 40556, 40567, 40578, 40589, - 40597, 40605, 40616, 40627, 40638, 40649, 40660, 40671, 40679, 40687, - 40698, 40709, 40720, 40731, 40742, 40753, 40761, 40769, 40780, 40791, - 40802, 0, 0, 40813, 40821, 40829, 40840, 40851, 40862, 0, 0, 40873, - 40881, 40889, 40900, 40911, 40922, 40933, 40944, 0, 40955, 0, 40963, 0, - 40974, 0, 40985, 40996, 41004, 41012, 41023, 41034, 41045, 41056, 41067, - 41078, 41086, 41094, 41105, 41116, 41127, 41138, 41149, 41160, 41168, - 41176, 41184, 41192, 41200, 41208, 41216, 41224, 41232, 41240, 41248, - 41256, 41264, 0, 0, 41272, 41283, 41294, 41308, 41322, 41336, 41350, - 41364, 41378, 41389, 41400, 41414, 41428, 41442, 41456, 41470, 41484, - 41495, 41506, 41520, 41534, 41548, 41562, 41576, 41590, 41601, 41612, - 41626, 41640, 41654, 41668, 41682, 41696, 41707, 41718, 41732, 41746, - 41760, 41774, 41788, 41802, 41813, 41824, 41838, 41852, 41866, 41880, - 41894, 41908, 41916, 41924, 41935, 41943, 0, 41954, 41962, 41973, 41981, - 41989, 41997, 42005, 42013, 42016, 42019, 42022, 42025, 42031, 42042, - 42050, 0, 42061, 42069, 42080, 42088, 42096, 42104, 42112, 42120, 42126, - 42132, 42138, 42146, 42154, 42165, 0, 0, 42176, 42184, 42195, 42203, - 42211, 42219, 0, 42227, 42233, 42239, 42245, 42253, 42261, 42272, 42283, - 42291, 42299, 42307, 42318, 42326, 42334, 42342, 42350, 42358, 42364, - 42370, 0, 0, 42373, 42384, 42392, 0, 42403, 42411, 42422, 42430, 42438, - 42446, 42454, 42462, 42465, 0, 42468, 42472, 42476, 42480, 42484, 42488, - 42492, 42496, 42500, 42504, 42508, 42512, 42518, 42524, 42530, 42533, - 42536, 42538, 42542, 42546, 42550, 42554, 42557, 42561, 42565, 42571, - 42577, 42584, 42591, 42596, 42601, 42607, 42613, 42615, 42618, 42620, - 42624, 42628, 42632, 42636, 42640, 42644, 42648, 42652, 42656, 42662, - 42666, 42670, 42676, 42681, 42688, 42690, 42693, 42697, 42701, 42706, - 42712, 42714, 42723, 42732, 42735, 42739, 42741, 42743, 42745, 42749, - 42755, 42757, 42761, 42765, 42772, 42779, 42783, 42788, 42793, 42798, - 42803, 42807, 42811, 42814, 42818, 42822, 42829, 42834, 42838, 42842, - 42847, 42851, 42855, 42860, 42865, 42869, 42873, 42877, 42879, 42884, - 42889, 42893, 42897, 42901, 42905, 0, 42909, 42913, 42917, 42923, 42929, - 42935, 42941, 42948, 42955, 42960, 42965, 42969, 0, 0, 42975, 42978, - 42981, 42984, 42987, 42990, 42993, 42997, 43001, 43006, 43011, 43016, - 43023, 43027, 43030, 43033, 43036, 43039, 43042, 43045, 43048, 43051, - 43054, 43058, 43062, 43067, 43072, 0, 43077, 43083, 43089, 43095, 43102, - 43109, 43116, 43123, 43129, 43136, 43143, 43150, 43157, 0, 0, 0, 43164, - 43167, 43170, 43173, 43178, 43181, 43184, 43187, 43190, 43193, 43196, - 43201, 43204, 43207, 43210, 43213, 43216, 43221, 43224, 43227, 43230, - 43233, 43236, 43241, 43244, 43247, 43252, 43257, 43261, 43264, 43267, - 43270, 43273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43276, 43281, - 43286, 43293, 43301, 43306, 43311, 43315, 43319, 43324, 43331, 43338, - 43342, 43347, 43352, 43357, 43362, 43369, 43374, 43379, 43384, 43393, - 43400, 43407, 43411, 43416, 43422, 43427, 43434, 43442, 43450, 43454, - 43458, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43462, 43466, 43473, - 43478, 43482, 43487, 43491, 43495, 43499, 43501, 43505, 43509, 43513, - 43518, 43523, 43527, 43535, 43538, 43542, 43545, 43548, 43554, 43559, - 43562, 43568, 43572, 43577, 43582, 43585, 43589, 43593, 43597, 43599, - 43602, 43605, 43609, 43611, 43616, 43619, 43622, 43627, 43632, 43638, - 43641, 43644, 43648, 43653, 43656, 43659, 43662, 43666, 43670, 43674, - 43677, 43679, 43682, 43685, 43688, 43692, 43697, 43700, 43705, 43710, - 43715, 43720, 43726, 43731, 43735, 43740, 43745, 43751, 43757, 43762, - 43767, 43773, 43777, 43780, 43783, 43785, 43789, 43795, 43802, 43809, - 43816, 43823, 43830, 43837, 43844, 43851, 43859, 43866, 43874, 43881, - 43888, 43896, 43904, 43909, 43914, 43919, 43924, 43929, 43934, 43939, - 43944, 43949, 43954, 43960, 43966, 43972, 43978, 43985, 43993, 43999, - 44005, 44011, 44017, 44023, 44029, 44035, 44041, 44047, 44053, 44060, - 44067, 44074, 44081, 44089, 44098, 44105, 44116, 44123, 44130, 44139, - 44146, 44155, 44164, 44171, 44179, 44187, 44190, 0, 0, 0, 0, 44193, - 44195, 44198, 44200, 44203, 44206, 44209, 44213, 44217, 44222, 44227, - 44231, 44235, 44239, 44243, 44248, 44254, 44259, 44265, 44270, 44275, - 44280, 44286, 44291, 44297, 44303, 44307, 44311, 44316, 44321, 44326, - 44331, 44336, 44344, 44352, 44360, 44368, 44375, 44383, 44390, 44397, - 44404, 44414, 44421, 44428, 44435, 44442, 44450, 44458, 44465, 44472, - 44480, 44488, 44493, 44501, 44506, 44511, 44517, 44522, 44528, 44535, - 44542, 44547, 44553, 44558, 44561, 44565, 44568, 44572, 44576, 44580, - 44585, 44590, 44596, 44602, 44606, 44610, 44614, 44618, 44624, 44630, - 44634, 44639, 44643, 44648, 44652, 44656, 44659, 44663, 44666, 44670, - 44677, 44685, 44697, 44708, 44713, 44722, 44729, 44736, 44744, 44748, - 44754, 44762, 44766, 44771, 44776, 44782, 44788, 44794, 44801, 44805, - 44809, 44814, 44817, 44819, 44823, 44827, 44835, 44839, 44841, 44843, - 44847, 44855, 44860, 44866, 44876, 44883, 44888, 44892, 44896, 44900, - 44903, 44906, 44909, 44913, 44917, 44921, 44925, 44929, 44932, 44936, - 44940, 44943, 44945, 44948, 44950, 44954, 44958, 44960, 44966, 44969, - 44974, 44978, 44982, 44984, 44986, 44988, 44991, 44995, 44999, 45003, - 45007, 45011, 45017, 45023, 45025, 45027, 45029, 45031, 45034, 45036, - 45040, 45042, 45046, 45050, 45056, 45060, 45064, 45068, 45072, 45077, - 45084, 45089, 45100, 45111, 45116, 45123, 45132, 45136, 45141, 45144, - 45149, 45153, 45159, 45164, 45177, 45187, 45191, 45195, 45202, 45207, - 45210, 45212, 45215, 45219, 45224, 45231, 45235, 45240, 45245, 45248, - 45253, 45258, 45265, 45272, 45278, 45284, 45293, 45302, 45306, 45310, - 45312, 45317, 45321, 45325, 45334, 45343, 45350, 45357, 45366, 45375, - 45381, 45387, 45395, 45403, 45405, 45407, 45414, 45421, 45428, 45435, - 45441, 45447, 45451, 45455, 45462, 45469, 45477, 45485, 45496, 45507, - 45516, 45525, 45527, 45531, 45535, 45540, 45545, 45554, 45563, 45566, - 45569, 45572, 45575, 45578, 45583, 45587, 45592, 45597, 45600, 45603, - 45606, 45609, 45612, 45616, 45619, 45622, 45625, 45628, 45630, 45632, - 45634, 45636, 45644, 45652, 45658, 45662, 45668, 45678, 45684, 45690, - 45696, 45704, 45714, 45727, 45731, 45735, 45737, 45743, 45745, 45747, - 45749, 45751, 45757, 45760, 45766, 45772, 45776, 45780, 45784, 45787, - 45791, 45795, 45797, 45806, 45815, 45820, 45825, 45831, 45837, 45843, - 45846, 45849, 45852, 45855, 45857, 45863, 45868, 45873, 45879, 45885, - 45894, 45903, 45910, 45917, 45924, 45931, 45941, 45951, 45962, 45973, - 45984, 45995, 46004, 46013, 46022, 46031, 46039, 46051, 46063, 46079, - 46082, 46088, 46094, 46100, 46108, 46123, 46139, 46145, 46151, 46158, - 46164, 46173, 46180, 46194, 46209, 46214, 46220, 46228, 46231, 46234, - 46236, 46239, 46242, 46244, 46246, 46250, 46253, 46256, 46259, 46262, - 46267, 46272, 46277, 46282, 46287, 46290, 46292, 46294, 46296, 46300, - 46304, 46308, 46314, 46318, 46320, 46322, 46327, 46332, 46337, 46342, - 46347, 46352, 46354, 46356, 46366, 46370, 46376, 46385, 46387, 46393, - 46399, 46406, 46410, 46412, 46416, 46418, 46422, 46426, 46430, 46432, - 46434, 46436, 46443, 46452, 46461, 46470, 46479, 46488, 46497, 46506, - 46515, 46523, 46531, 46540, 46549, 46558, 46567, 46575, 46583, 46592, - 46601, 46610, 46620, 46629, 46639, 46648, 46658, 46667, 46677, 46687, - 46696, 46706, 46715, 46725, 46734, 46744, 46753, 46762, 46771, 46780, - 46789, 46799, 46808, 46817, 46826, 46836, 46845, 46854, 46863, 46872, - 46882, 46892, 46901, 46910, 46918, 46927, 46934, 46943, 46952, 46963, - 46972, 46982, 46992, 46999, 47006, 47013, 47022, 47031, 47040, 47049, - 47056, 47061, 47070, 47076, 47079, 47086, 47089, 47094, 47099, 47102, - 47105, 47113, 47116, 47121, 47124, 47132, 47137, 47145, 47148, 47151, - 47154, 47159, 47164, 47167, 47170, 47178, 47181, 47188, 47195, 47199, - 47203, 47208, 47213, 47218, 47223, 47228, 47233, 47238, 47243, 47250, - 47256, 47263, 47270, 47276, 47283, 47290, 47298, 47305, 47311, 47318, - 47326, 47333, 47337, 47343, 47355, 47367, 47371, 47375, 47380, 47385, - 47396, 47400, 47405, 47410, 47416, 47422, 47428, 47434, 47443, 47452, - 47460, 47471, 47482, 47490, 47501, 47512, 47520, 47531, 47542, 47550, - 47558, 47568, 47578, 47581, 47584, 47587, 47592, 47596, 47602, 47609, - 47616, 47624, 47631, 47635, 47639, 47643, 47647, 47649, 47653, 47657, - 47663, 47669, 47677, 47685, 47688, 47695, 47697, 47699, 47703, 47707, - 47712, 47718, 47724, 47730, 47736, 47745, 47754, 47763, 47767, 47769, - 47773, 47780, 47787, 47794, 47801, 47808, 47811, 47816, 47822, 47825, - 47830, 47835, 47840, 47845, 47849, 47856, 47863, 47870, 47877, 47881, - 47885, 47889, 47893, 47899, 47905, 47910, 47916, 47922, 47928, 47934, - 47942, 47949, 47956, 47963, 47970, 47976, 47982, 47991, 47995, 48002, - 48006, 48010, 48016, 48022, 48028, 48034, 48038, 48042, 48045, 48049, - 48053, 48060, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 48067, 48070, 48074, 48078, 48084, 48090, 48096, 48104, - 48111, 48115, 48123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48128, 48131, 48134, 48137, 48140, 48143, 48146, 48149, - 48152, 48155, 48159, 48163, 48167, 48171, 48175, 48179, 48183, 48187, - 48191, 48195, 48199, 48202, 48205, 48208, 48211, 48214, 48217, 48220, - 48223, 48226, 48230, 48234, 48238, 48242, 48246, 48250, 48254, 48258, - 48262, 48266, 48270, 48276, 48282, 48288, 48295, 48302, 48309, 48316, - 48323, 48330, 48337, 48344, 48351, 48358, 48365, 48372, 48379, 48386, - 48393, 48400, 48407, 48412, 48418, 48424, 48430, 48435, 48441, 48447, - 48453, 48458, 48464, 48470, 48475, 48481, 48487, 48492, 48498, 48504, - 48509, 48515, 48521, 48526, 48532, 48538, 48544, 48550, 48556, 48561, - 48567, 48573, 48579, 48584, 48590, 48596, 48602, 48607, 48613, 48619, - 48624, 48630, 48636, 48641, 48647, 48653, 48658, 48664, 48670, 48675, - 48681, 48687, 48693, 48699, 48705, 48710, 48716, 48722, 48728, 48733, - 48739, 48745, 48751, 48756, 48762, 48768, 48773, 48779, 48785, 48790, - 48796, 48802, 48807, 48813, 48819, 48824, 48830, 48836, 48842, 48848, - 48854, 48858, 48864, 48870, 48876, 48882, 48888, 48894, 48900, 48906, - 48912, 48918, 48922, 48926, 48930, 48934, 48938, 48942, 48946, 48950, - 48954, 48959, 48965, 48970, 48975, 48980, 48985, 48994, 49003, 49012, - 49021, 49030, 49039, 49048, 49057, 49063, 49071, 49079, 49085, 49092, - 49100, 49108, 49115, 49121, 49129, 49137, 49143, 49150, 49158, 49166, - 49173, 49179, 49187, 49196, 49205, 49213, 49222, 49231, 49237, 49244, - 49252, 49261, 49270, 49278, 49287, 49296, 49303, 49310, 49319, 49328, - 49337, 49346, 49355, 49364, 49371, 49378, 49387, 49396, 49405, 49414, - 49423, 49432, 49439, 49446, 49455, 49464, 49473, 49483, 49493, 49502, - 49512, 49522, 49532, 49542, 49552, 49562, 49571, 49580, 49587, 49595, - 49603, 49611, 49619, 49624, 49629, 49638, 49646, 49652, 49661, 49669, - 49676, 49685, 49693, 49699, 49708, 49716, 49723, 49732, 49740, 49746, - 49755, 49763, 49770, 49780, 49789, 49796, 49806, 49815, 49822, 49832, - 49841, 49848, 49856, 49865, 49874, 49882, 49893, 49903, 49910, 49915, - 49920, 49924, 49929, 49934, 49939, 49943, 49948, 49955, 49963, 49970, - 49978, 49982, 49988, 49994, 50000, 50004, 50011, 50017, 50024, 50028, - 50035, 50041, 50048, 50052, 50058, 50064, 50070, 50074, 50077, 50081, - 50085, 50091, 50097, 50102, 50106, 50111, 50121, 50128, 50139, 50149, - 50153, 50161, 50171, 50174, 50177, 50184, 50192, 50198, 50203, 50211, - 50220, 50229, 50237, 50241, 50245, 50248, 50251, 50255, 50259, 50262, - 50265, 50270, 50275, 50281, 50287, 50292, 50297, 50303, 50309, 50314, - 50319, 50324, 50329, 50335, 50341, 50346, 50351, 50357, 50363, 50368, - 50373, 50376, 50379, 50388, 50390, 50392, 50395, 50399, 50405, 50407, - 50410, 50417, 50424, 50431, 50438, 50447, 50460, 50465, 50470, 50474, - 50479, 50486, 50493, 50501, 50509, 50517, 50525, 50529, 50533, 50538, - 50543, 50548, 50553, 50556, 50562, 50568, 50577, 50586, 50594, 50602, - 50611, 50620, 50624, 50631, 50638, 50645, 50652, 50660, 50668, 50676, - 50684, 50688, 50692, 50696, 50701, 50706, 50712, 50718, 50722, 50728, - 50730, 50732, 50734, 50736, 50739, 50742, 50744, 50746, 50748, 50752, - 50756, 50758, 50760, 50763, 50766, 50770, 50776, 50782, 50784, 50791, - 50795, 50800, 50805, 50807, 50817, 50823, 50829, 50835, 50841, 50847, - 50853, 50858, 50861, 50864, 50867, 50869, 50871, 50875, 50879, 50884, - 50889, 50894, 50897, 50901, 50906, 50909, 50913, 50918, 50923, 50928, - 50933, 50938, 50943, 50948, 50953, 50958, 50963, 50968, 50973, 50979, - 50985, 50991, 50993, 50996, 50998, 51001, 51003, 51005, 51007, 51009, - 51011, 51013, 51015, 51017, 51019, 51021, 51023, 51025, 51027, 51029, - 51031, 51033, 51035, 51040, 51045, 51050, 51055, 51060, 51065, 51070, - 51075, 51080, 51085, 51090, 51095, 51100, 51105, 51110, 51115, 51120, - 51125, 51130, 51135, 51139, 51143, 51147, 51153, 51159, 51164, 51169, - 51174, 51180, 51186, 51191, 51199, 51207, 51215, 51223, 51231, 51239, - 51247, 51255, 51261, 51266, 51271, 51276, 51279, 51283, 51287, 51291, - 51295, 51299, 51303, 51309, 51316, 51323, 51331, 51336, 51341, 51348, - 51355, 51362, 51369, 51372, 51375, 51380, 51382, 51386, 51391, 51393, - 51395, 51397, 51399, 51404, 51407, 51409, 51414, 51420, 51427, 51430, - 51434, 51439, 51444, 51452, 51458, 51464, 51476, 51483, 51491, 51496, - 51501, 51507, 51510, 51513, 51518, 51520, 51524, 51526, 51528, 51530, - 51532, 51534, 51536, 51541, 51543, 51545, 51547, 51549, 51553, 51555, - 51558, 51563, 51568, 51573, 51578, 51584, 51590, 51592, 51595, 51602, - 51608, 51614, 51621, 51625, 51629, 51631, 51633, 51637, 51643, 51648, - 51650, 51654, 51663, 51671, 51679, 51685, 51691, 51696, 51702, 51707, - 51710, 51724, 51727, 51732, 51737, 51743, 51753, 51755, 51761, 51767, - 51771, 51778, 51782, 51784, 51786, 51790, 51796, 51801, 51807, 51809, - 51815, 51817, 51823, 51825, 51827, 51832, 51834, 51838, 51843, 51845, - 51850, 51855, 51859, 51866, 51876, 51881, 51886, 51889, 51894, 51897, - 51902, 51907, 51911, 51913, 51915, 51919, 51923, 51927, 51931, 51935, - 51937, 51941, 51944, 51947, 51950, 51954, 51958, 51963, 51967, 51972, - 51977, 51981, 51987, 51994, 51997, 52003, 52008, 52012, 52017, 52023, - 52029, 52036, 52042, 52049, 52056, 52058, 52065, 52069, 52076, 52082, - 52087, 52093, 52097, 52102, 52105, 52111, 52117, 52124, 52132, 52139, - 52148, 52158, 52165, 52171, 52175, 52183, 52188, 52197, 52200, 52203, - 52212, 52223, 52230, 52232, 52238, 52243, 52245, 52248, 52252, 52260, - 52269, 52272, 52277, 52283, 52290, 52297, 52304, 52311, 52317, 52323, - 52329, 52337, 52342, 52345, 52349, 52352, 52363, 52373, 52383, 52392, - 52403, 52413, 52422, 52428, 52436, 52440, 52448, 52452, 52460, 52467, - 52474, 52483, 52492, 52502, 52512, 52522, 52532, 52541, 52550, 52560, - 52570, 52579, 52588, 52595, 52602, 52609, 52616, 52623, 52630, 52637, - 52644, 52651, 52659, 52665, 52671, 52677, 52683, 52689, 52695, 52701, - 52707, 52713, 52720, 52728, 52736, 52744, 52752, 52760, 52768, 52776, - 52784, 52792, 52801, 52806, 52809, 52813, 52817, 52823, 52826, 52831, - 52837, 52842, 52846, 52851, 52857, 52864, 52867, 52874, 52881, 52885, - 52894, 52903, 52908, 52914, 52919, 52924, 52931, 52938, 52945, 52952, - 52960, 52964, 52972, 52977, 52981, 52988, 52992, 52998, 53006, 53011, - 53018, 53022, 53027, 53031, 53036, 53040, 53045, 53050, 53059, 53061, - 53065, 53069, 53076, 53083, 53089, 53097, 53103, 53110, 53115, 53118, - 53123, 53128, 53133, 53141, 53145, 53152, 53159, 53166, 53171, 53176, - 53182, 53187, 53192, 53198, 53203, 53206, 53210, 53214, 53221, 53231, - 53236, 53245, 53254, 53260, 53266, 53272, 53278, 53284, 53290, 53297, - 53304, 53313, 53322, 53328, 53334, 53339, 53344, 53351, 53358, 53364, - 53367, 53370, 53374, 53378, 53382, 53387, 53393, 53399, 53406, 53413, - 53418, 53422, 53426, 53430, 53434, 53438, 53442, 53446, 53450, 53454, - 53458, 53462, 53466, 53470, 53474, 53478, 53482, 53486, 53490, 53494, - 53498, 53502, 53506, 53510, 53514, 53518, 53522, 53526, 53530, 53534, - 53538, 53542, 53546, 53550, 53554, 53558, 53562, 53566, 53570, 53574, - 53578, 53582, 53586, 53590, 53594, 53598, 53602, 53606, 53610, 53614, - 53618, 53622, 53626, 53630, 53634, 53638, 53642, 53646, 53650, 53654, - 53658, 53662, 53666, 53670, 53674, 53678, 53682, 53686, 53690, 53694, - 53698, 53702, 53706, 53710, 53714, 53718, 53722, 53726, 53730, 53734, - 53738, 53742, 53746, 53750, 53754, 53758, 53762, 53766, 53770, 53774, - 53778, 53782, 53786, 53790, 53794, 53798, 53802, 53806, 53810, 53814, - 53818, 53822, 53826, 53830, 53834, 53838, 53842, 53846, 53850, 53854, - 53858, 53862, 53866, 53870, 53874, 53878, 53882, 53886, 53890, 53894, - 53898, 53902, 53906, 53910, 53914, 53918, 53922, 53926, 53930, 53934, - 53938, 53942, 53946, 53950, 53954, 53958, 53962, 53966, 53970, 53974, - 53978, 53982, 53986, 53990, 53994, 53998, 54002, 54006, 54010, 54014, - 54018, 54022, 54026, 54030, 54034, 54038, 54042, 54046, 54050, 54054, - 54058, 54062, 54066, 54070, 54074, 54078, 54082, 54086, 54090, 54094, - 54098, 54102, 54106, 54110, 54114, 54118, 54122, 54126, 54130, 54134, - 54138, 54142, 54146, 54150, 54154, 54158, 54162, 54166, 54170, 54174, - 54178, 54182, 54186, 54190, 54194, 54198, 54202, 54206, 54210, 54214, - 54218, 54222, 54226, 54230, 54234, 54238, 54242, 54246, 54250, 54254, - 54258, 54262, 54266, 54270, 54274, 54278, 54282, 54286, 54290, 54294, - 54298, 54302, 54306, 54310, 54314, 54318, 54322, 54326, 54330, 54334, - 54338, 54342, 54346, 54350, 54354, 54358, 54362, 54366, 54370, 54374, - 54378, 54382, 54386, 54390, 54394, 54398, 54402, 54406, 54410, 54414, - 54418, 54422, 54426, 54430, 54434, 54438, 54442, 54449, 54457, 54463, - 54469, 54476, 54483, 54489, 54495, 54502, 54509, 54514, 54519, 54524, - 54529, 54535, 54541, 54549, 54556, 54561, 54566, 54574, 54583, 54590, - 54600, 54611, 54614, 54617, 54621, 54625, 54631, 54637, 54647, 54657, - 54666, 54675, 54681, 54687, 54694, 54701, 54710, 54720, 54731, 54741, - 54751, 54761, 54772, 54783, 54793, 54804, 54814, 54824, 54832, 54842, - 54852, 54863, 54874, 54881, 54888, 54895, 54902, 54912, 54922, 54929, - 54936, 54943, 54950, 54957, 54964, 54971, 54976, 54981, 54987, 54995, - 55005, 55013, 55021, 55029, 55037, 55045, 55053, 55061, 55069, 55077, - 55085, 55094, 55103, 55111, 55119, 55128, 55137, 55146, 55155, 55165, - 55175, 55184, 55193, 55203, 55213, 55227, 55243, 55257, 55273, 55287, - 55301, 55315, 55329, 55339, 55350, 55360, 55371, 55387, 55403, 55411, - 55417, 55424, 55431, 55438, 55446, 55451, 55457, 55462, 55467, 55473, - 55478, 55483, 55488, 55493, 55498, 55505, 55511, 55519, 55525, 55531, - 55535, 55539, 55548, 55557, 55566, 55575, 55582, 55589, 55602, 55615, - 55628, 55641, 55649, 55657, 55664, 55671, 55679, 55687, 55695, 55703, - 55707, 55712, 55720, 55728, 55736, 55743, 55747, 55755, 55763, 55766, - 55770, 55775, 55782, 55790, 55798, 55817, 55837, 55856, 55876, 55896, - 55916, 55936, 55956, 55962, 55969, 55978, 55986, 55994, 56000, 56003, - 56006, 56011, 56014, 56034, 56041, 56047, 56053, 56057, 56060, 56063, - 56066, 56076, 56088, 56095, 56102, 56105, 56109, 56112, 56117, 56122, - 56127, 56133, 56142, 56149, 56156, 56164, 56171, 56178, 56181, 56187, - 56193, 56196, 56199, 56204, 56209, 56215, 56221, 56225, 56230, 56237, - 56241, 56247, 56251, 56255, 56263, 56275, 56283, 56287, 56289, 56298, - 56307, 56313, 56316, 56322, 56328, 56333, 56338, 56343, 56348, 56353, - 56358, 56360, 56366, 56371, 56379, 56383, 56389, 56392, 56396, 56404, - 56412, 56414, 56416, 56422, 56428, 56434, 56443, 56452, 56459, 56466, - 56472, 56479, 56484, 56489, 56494, 56500, 56506, 56511, 56518, 56522, - 56526, 56539, 56552, 56564, 56573, 56579, 56586, 56591, 56596, 56601, - 56606, 56611, 56613, 56620, 56628, 56636, 56644, 56651, 56659, 56665, - 56670, 56676, 56682, 56688, 56695, 56701, 56709, 56717, 56725, 56733, - 56741, 56747, 56753, 56762, 56766, 56775, 56784, 56793, 56801, 56805, - 56811, 56818, 56825, 56829, 56835, 56843, 56849, 56854, 56860, 56865, - 56870, 56877, 56884, 56889, 56894, 56902, 56910, 56920, 56930, 56937, - 56944, 56948, 56952, 56964, 56970, 56977, 56982, 56987, 56994, 57001, - 57007, 57013, 57023, 57030, 57038, 57046, 57055, 57062, 57068, 57075, - 57081, 57089, 57097, 57105, 57113, 57119, 57124, 57134, 57145, 57152, - 57161, 57167, 57172, 57177, 57187, 57196, 57202, 57208, 57216, 57221, - 57228, 57235, 57246, 57253, 57260, 57267, 57274, 57281, 57290, 57299, - 57312, 57325, 57337, 57349, 57362, 57376, 57382, 57388, 57398, 57408, - 57415, 57422, 57432, 57442, 57451, 57460, 57468, 57476, 57486, 57496, - 57511, 57526, 57535, 57544, 57557, 57570, 57579, 57588, 57599, 57610, - 57616, 57622, 57631, 57640, 57645, 57650, 57658, 57664, 57670, 57678, - 57686, 57699, 57712, 57716, 57720, 57729, 57738, 57745, 57753, 57761, - 57771, 57781, 57787, 57793, 57801, 57809, 57817, 57825, 57835, 57845, - 57848, 57851, 57856, 57861, 57867, 57873, 57880, 57887, 57898, 57909, - 57916, 57923, 57931, 57939, 57948, 57957, 57966, 57975, 57982, 57989, - 57993, 57997, 58006, 58015, 58020, 58025, 58030, 58035, 58041, 58055, - 58062, 58069, 58073, 58075, 58077, 58082, 58087, 58092, 58097, 58105, - 58112, 58119, 58127, 58139, 58147, 58155, 58166, 58170, 58174, 58180, - 58188, 58201, 58208, 58215, 58222, 58228, 58235, 58244, 58253, 58259, - 58265, 58271, 58282, 58293, 58301, 58310, 58315, 58318, 58323, 58328, - 58333, 58339, 58345, 58349, 58352, 58356, 58360, 58365, 58370, 58376, - 58382, 58386, 58390, 58397, 58404, 58411, 58418, 58425, 58432, 58441, - 58450, 58457, 58464, 58472, 58480, 58484, 58489, 58494, 58500, 58506, - 58509, 58512, 58515, 58518, 58523, 58528, 58533, 58538, 58543, 58548, - 58552, 58556, 58560, 58565, 58570, 58574, 58578, 58584, 58588, 58594, - 58599, 58606, 58614, 58621, 58629, 58636, 58644, 58653, 58660, 58670, - 58681, 58687, 58696, 58702, 58711, 58721, 58727, 58733, 58737, 58741, - 58750, 58760, 58767, 58775, 58784, 58793, 58800, 58806, 58813, 58818, - 58822, 58826, 58831, 58836, 58841, 58849, 58857, 58860, 58864, 58873, - 58883, 58892, 58902, 58914, 58928, 58932, 58937, 58941, 58946, 58951, - 58956, 58962, 58968, 58975, 58982, 58988, 58995, 59001, 59008, 59017, - 59026, 59032, 59039, 59045, 0, 0, 59052, 59060, 59068, 59077, 59086, - 59095, 59105, 59114, 59124, 59130, 59135, 59144, 59156, 59165, 59177, - 59184, 59192, 59199, 59207, 59212, 59218, 59223, 59229, 59237, 59246, - 59254, 59263, 59267, 59270, 59274, 59277, 59287, 0, 59290, 59297, 59306, - 59316, 59325, 59335, 59341, 59348, 59354, 59361, 59372, 59383, 59394, - 59405, 59415, 59425, 59435, 59445, 59453, 59461, 59469, 59477, 59485, - 59493, 59501, 59509, 59515, 59520, 59526, 59531, 59537, 59543, 59549, - 59555, 59567, 59577, 59582, 59589, 59594, 59601, 59604, 59608, 59612, - 59617, 59621, 59626, 59629, 59638, 59647, 59656, 59665, 59670, 59676, - 59682, 59690, 59700, 59707, 59716, 59721, 59724, 59727, 59732, 59737, - 59742, 59747, 59749, 59751, 59753, 59755, 59757, 59759, 59764, 59771, - 59778, 59780, 59782, 59784, 59786, 59788, 59790, 59792, 59794, 59799, - 59804, 59811, 59818, 59827, 59837, 59846, 59856, 59861, 59866, 59868, - 59875, 59882, 59889, 59896, 59903, 59910, 59917, 59920, 59923, 59926, - 59929, 59934, 59939, 59944, 59949, 59954, 59959, 59964, 59969, 59974, - 59979, 59984, 59989, 59995, 59999, 60004, 60009, 60014, 60019, 60024, - 60029, 60034, 60039, 60044, 60049, 60054, 60059, 60064, 60069, 60074, - 60079, 60084, 60089, 60094, 60099, 60104, 60109, 60115, 60120, 60126, - 60135, 60140, 60148, 60155, 60164, 60169, 60174, 60179, 60185, 60192, - 60199, 60204, 60209, 60214, 60219, 60224, 60229, 60234, 60239, 60244, - 60249, 60255, 60259, 60264, 60269, 60274, 60279, 60284, 60289, 60294, - 60299, 60304, 60309, 60314, 60319, 60324, 60329, 60334, 60339, 60344, - 60349, 60354, 60359, 60364, 60369, 60375, 60380, 60386, 60395, 60400, - 60408, 60415, 60424, 60429, 60434, 60439, 60445, 60452, 60459, 60467, - 60475, 60484, 60491, 60499, 60505, 60514, 60522, 60530, 60538, 60546, - 60554, 60562, 60567, 60574, 60579, 60585, 60593, 60600, 60607, 60615, - 60621, 60627, 60634, 60642, 60651, 60661, 60667, 60674, 60679, 60689, - 60699, 60704, 60709, 60714, 60719, 60724, 60729, 60734, 60739, 60744, - 60749, 60754, 60759, 60764, 60769, 60774, 60779, 60784, 60789, 60794, - 60799, 60804, 60809, 60814, 60819, 60824, 60829, 60834, 60839, 60844, - 60849, 60853, 60857, 60862, 60867, 60872, 60877, 60882, 60887, 60892, - 60897, 60902, 60907, 60912, 60917, 60922, 60927, 60932, 60937, 60942, - 60947, 60954, 60961, 60968, 60975, 60982, 60989, 60996, 61003, 61010, - 61017, 61024, 61031, 61038, 61045, 61050, 61055, 61062, 61069, 61076, - 61083, 61090, 61097, 61104, 61111, 61118, 61125, 61132, 61139, 61145, - 61151, 61157, 61163, 61170, 61177, 61184, 61191, 61198, 61205, 61212, - 61219, 61226, 61233, 61241, 61249, 61257, 61265, 61273, 61281, 61289, - 61297, 61301, 61307, 61313, 61317, 61323, 61329, 61335, 61342, 61349, - 61356, 61363, 61368, 61374, 61380, 61387, 0, 0, 0, 0, 0, 61394, 61402, - 61411, 61420, 61428, 61434, 61439, 61444, 61449, 61454, 61459, 61464, - 61469, 61474, 61479, 61484, 61489, 61494, 61499, 61504, 61509, 61514, - 61519, 61524, 61529, 61534, 61539, 61544, 61549, 61554, 61559, 61564, - 61569, 61574, 61579, 61584, 61589, 61594, 61599, 61604, 61609, 61614, - 61619, 61624, 61629, 0, 61634, 0, 0, 0, 0, 0, 61639, 0, 0, 61644, 61648, - 61653, 61658, 61663, 61668, 61677, 61682, 61687, 61692, 61697, 61702, - 61707, 61712, 61717, 61724, 61729, 61734, 61743, 61750, 61755, 61760, - 61765, 61772, 61777, 61784, 61789, 61794, 61801, 61808, 61813, 61818, - 61823, 61830, 61837, 61842, 61847, 61852, 61857, 61862, 61869, 61876, - 61881, 61886, 61891, 61896, 61901, 61906, 61911, 61916, 61921, 61926, - 61931, 61938, 61943, 61948, 0, 0, 0, 0, 0, 0, 0, 61953, 61960, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61965, 61970, 61974, 61978, 61982, - 61986, 61990, 61994, 61998, 62002, 62006, 62010, 62016, 62020, 62024, - 62028, 62032, 62036, 62040, 62044, 62048, 62052, 62056, 62060, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 62064, 62068, 62072, 62076, 62080, 62084, 62088, 0, - 62092, 62096, 62100, 62104, 62108, 62112, 62116, 0, 62120, 62124, 62128, - 62132, 62136, 62140, 62144, 0, 62148, 62152, 62156, 62160, 62164, 62168, - 62172, 0, 62176, 62180, 62184, 62188, 62192, 62196, 62200, 0, 62204, - 62208, 62212, 62216, 62220, 62224, 62228, 0, 62232, 62236, 62240, 62244, - 62248, 62252, 62256, 0, 62260, 62264, 62268, 62272, 62276, 62280, 62284, - 0, 62288, 62293, 62298, 62303, 62308, 62313, 62318, 62322, 62327, 62332, - 62337, 62341, 62346, 62351, 62356, 62361, 62365, 62370, 62375, 62380, - 62385, 62390, 62395, 62399, 62404, 62409, 62416, 62421, 62426, 62432, - 62439, 62446, 62455, 62462, 62471, 62476, 62481, 62488, 62495, 62501, - 62509, 62515, 62520, 62525, 62529, 62536, 62543, 62547, 62549, 62553, - 62559, 62561, 62565, 62569, 62573, 62579, 62584, 62588, 62592, 62597, - 62603, 62609, 62615, 62620, 62625, 62632, 62639, 62645, 62651, 62657, - 62663, 62669, 62675, 62679, 62683, 62690, 62697, 62703, 62707, 62712, - 62715, 62719, 62726, 62729, 62733, 62737, 62740, 62746, 62752, 62755, - 62761, 62765, 62769, 62775, 62780, 62785, 62787, 62790, 62794, 62800, - 62806, 62810, 62815, 62824, 62827, 62833, 62838, 62842, 62846, 62850, - 62853, 62858, 62864, 62872, 62880, 62886, 62891, 62896, 62902, 62908, - 62915, 62922, 62928, 62934, 62940, 62946, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 62950, 62954, 62958, 62963, 62968, 62973, 62977, 62981, 62985, 62990, - 62995, 62999, 63003, 63007, 63011, 63016, 63021, 63026, 63031, 63035, - 63039, 63044, 63049, 63054, 63059, 63063, 0, 63067, 63071, 63075, 63079, - 63083, 63087, 63091, 63096, 63101, 63105, 63110, 63115, 63124, 63128, - 63132, 63136, 63143, 63147, 63152, 63157, 63161, 63165, 63171, 63176, - 63181, 63186, 63191, 63195, 63199, 63203, 63207, 63211, 63216, 63221, - 63225, 63229, 63234, 63239, 63244, 63248, 63252, 63257, 63262, 63268, - 63274, 63278, 63284, 63290, 63294, 63300, 63306, 63311, 63316, 63320, - 63326, 63330, 63334, 63340, 63346, 63351, 63356, 63360, 63364, 63372, - 63378, 63384, 63390, 63395, 63400, 63405, 63411, 63415, 63421, 63425, - 63429, 63435, 63441, 63447, 63453, 63459, 63465, 63471, 63477, 63483, - 63489, 63495, 63501, 63505, 63511, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63517, 63520, 63524, 63528, 63532, 63536, 63539, 63542, 63546, 63550, - 63554, 63558, 63561, 63566, 63570, 63574, 63578, 63584, 63588, 63592, - 63596, 63600, 63607, 63613, 63617, 63621, 63625, 63629, 63633, 63637, - 63641, 63645, 63649, 63653, 63657, 63663, 63667, 63671, 63675, 63679, - 63683, 63687, 63691, 63695, 63699, 63703, 63707, 63711, 63715, 63719, - 63723, 63727, 63733, 63739, 63744, 63749, 63753, 63757, 63761, 63765, - 63769, 63773, 63777, 63781, 63785, 63789, 63793, 63797, 63801, 63805, - 63809, 63813, 63817, 63821, 63825, 63829, 63833, 63837, 63841, 63845, - 63851, 63855, 63859, 63863, 63867, 63871, 63875, 63879, 63883, 63888, - 63895, 63899, 63903, 63907, 63911, 63915, 63919, 63923, 63927, 63931, - 63935, 63939, 63943, 63950, 63954, 63960, 63964, 63968, 63972, 63976, - 63980, 63983, 63987, 63991, 63995, 63999, 64003, 64007, 64011, 64015, - 64019, 64023, 64027, 64031, 64035, 64039, 64043, 64047, 64051, 64055, - 64059, 64063, 64067, 64071, 64075, 64079, 64083, 64087, 64091, 64095, - 64099, 64103, 64107, 64111, 64117, 64121, 64125, 64129, 64133, 64137, - 64141, 64145, 64149, 64153, 64157, 64161, 64165, 64169, 64173, 64177, - 64181, 64185, 64189, 64193, 64197, 64201, 64205, 64209, 64213, 64217, - 64221, 64225, 64233, 64237, 64241, 64245, 64249, 64253, 64259, 64263, - 64267, 64271, 64275, 64279, 64283, 64287, 64291, 64295, 64299, 64303, - 64307, 64311, 64317, 64321, 64325, 64329, 64333, 64337, 64341, 64345, - 64349, 64353, 64357, 64361, 64365, 64369, 64373, 64377, 64381, 64385, - 64389, 64393, 64397, 64401, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64405, 64413, 64421, 64431, 64441, - 64450, 64460, 64470, 64481, 64493, 64504, 64516, 0, 0, 0, 0, 64523, - 64526, 64529, 64534, 64537, 64544, 64548, 64552, 64556, 64561, 64566, - 64572, 64578, 64583, 64588, 64594, 64600, 64606, 64612, 64615, 64618, - 64625, 64632, 64638, 64644, 64652, 64660, 64665, 64670, 64674, 64682, - 64688, 64695, 64700, 64705, 64710, 64715, 64720, 64725, 64730, 64735, - 64740, 64745, 64750, 64755, 64760, 64765, 64771, 64776, 64780, 64786, - 64797, 64806, 64820, 64829, 64833, 64843, 64849, 64855, 64861, 64866, - 64869, 64874, 64878, 0, 64884, 64889, 64893, 64898, 64902, 64907, 64911, - 64916, 64920, 64925, 64929, 64933, 64938, 64943, 64948, 64953, 64958, - 64963, 64968, 64973, 64978, 64982, 64987, 64992, 64997, 65002, 65007, - 65012, 65017, 65022, 65027, 65032, 65037, 65042, 65047, 65053, 65058, - 65063, 65068, 65073, 65077, 65082, 65086, 65091, 65096, 65101, 65106, - 65110, 65115, 65119, 65124, 65129, 65134, 65139, 65144, 65149, 65154, - 65159, 65164, 65169, 65174, 65179, 65183, 65188, 65193, 65198, 65203, - 65208, 65212, 65218, 65223, 65229, 65234, 65238, 65243, 65248, 65253, - 65258, 65264, 65269, 65274, 65279, 65284, 65289, 65294, 65299, 0, 0, - 65305, 65313, 65321, 65328, 65335, 65340, 65347, 65353, 65358, 65362, - 65365, 65369, 65372, 65376, 65379, 65383, 65386, 65390, 65393, 65396, - 65400, 65404, 65408, 65412, 65416, 65420, 65424, 65428, 65432, 65435, - 65439, 65443, 65447, 65451, 65455, 65459, 65463, 65467, 65471, 65475, - 65479, 65483, 65487, 65492, 65496, 65500, 65504, 65508, 65511, 65515, - 65518, 65522, 65526, 65530, 65534, 65537, 65541, 65544, 65548, 65552, - 65556, 65560, 65564, 65568, 65572, 65576, 65580, 65584, 65588, 65592, - 65595, 65599, 65603, 65607, 65611, 65615, 65618, 65623, 65627, 65632, - 65636, 65639, 65643, 65647, 65651, 65655, 65660, 65664, 65668, 65672, - 65676, 65680, 65684, 65688, 65693, 65697, 65701, 65705, 65709, 65713, - 65720, 65724, 65730, 0, 0, 0, 0, 0, 65735, 65740, 65745, 65750, 65755, - 65760, 65765, 65770, 65774, 65779, 65784, 65789, 65794, 65799, 65804, - 65809, 65814, 65819, 65823, 65828, 65833, 65838, 65842, 65846, 65850, - 65855, 65860, 65865, 65870, 65875, 65880, 65885, 65890, 65895, 65900, - 65904, 65908, 65913, 65918, 65923, 65928, 65933, 65940, 0, 65945, 65949, - 65953, 65957, 65961, 65965, 65969, 65973, 65977, 65981, 65985, 65989, - 65993, 65997, 66001, 66005, 66009, 66013, 66017, 66021, 66025, 66029, - 66033, 66037, 66041, 66045, 66049, 66053, 66057, 66061, 66065, 66068, - 66072, 66075, 66079, 66083, 66086, 66090, 66094, 66097, 66101, 66105, - 66109, 66113, 66116, 66120, 66124, 66128, 66132, 66136, 66140, 66143, - 66146, 66150, 66154, 66158, 66162, 66166, 66170, 66174, 66178, 66182, - 66186, 66190, 66194, 66198, 66202, 66206, 66210, 66214, 66218, 66222, - 66226, 66230, 66234, 66238, 66242, 66246, 66250, 66254, 66258, 66262, - 66266, 66270, 66274, 66278, 66282, 66286, 66290, 66294, 66298, 66302, - 66306, 66310, 0, 66314, 66320, 66326, 66331, 66336, 66341, 66347, 66353, - 66358, 66364, 66370, 66376, 66382, 66388, 66394, 66400, 66406, 66411, - 66416, 66421, 66426, 66431, 66436, 66441, 66446, 66451, 66456, 66461, - 66466, 66471, 66476, 66481, 66486, 66491, 66496, 66501, 66506, 66512, - 66518, 66524, 66530, 66535, 66540, 66545, 66551, 66556, 66561, 66566, - 66571, 66576, 66581, 66586, 66591, 66596, 66601, 66606, 66611, 66616, - 66621, 66626, 66631, 66636, 66641, 66646, 66651, 66656, 66661, 66666, - 66671, 66676, 66681, 66686, 66691, 66696, 66701, 66706, 66711, 66716, - 66721, 66726, 66731, 66736, 66741, 66746, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 66751, 66756, 66761, 66766, 66770, 66775, 66779, 66784, 66789, - 66794, 66799, 66804, 66808, 66813, 66818, 66823, 66828, 66832, 66836, - 66840, 66844, 66848, 66852, 66856, 66860, 66864, 66868, 66872, 66876, - 66880, 66884, 66889, 66894, 66899, 66904, 66909, 66914, 66919, 66924, - 66929, 66934, 66939, 66944, 66949, 66954, 66959, 66966, 0, 66974, 66978, - 66982, 66986, 66990, 66994, 66998, 67002, 67006, 67010, 67015, 67020, - 67025, 67030, 67035, 67040, 67045, 67050, 67055, 67060, 67065, 67070, - 67075, 67080, 67085, 67090, 67095, 67100, 67105, 67110, 67115, 67120, - 67125, 67130, 67135, 67140, 67145, 67150, 67155, 67160, 67165, 67174, - 67183, 67192, 67201, 67210, 67219, 67228, 67237, 67240, 67245, 67250, - 67255, 67260, 67265, 67270, 67275, 67280, 67285, 67289, 67294, 67299, - 67304, 67309, 67314, 67318, 67322, 67326, 67330, 67334, 67338, 67342, - 67346, 67350, 67354, 67358, 67362, 67366, 67370, 67375, 67380, 67385, - 67390, 67395, 67400, 67405, 67410, 67415, 67420, 67425, 67430, 67435, - 67440, 67447, 67454, 67459, 67464, 67468, 67472, 67476, 67480, 67484, - 67488, 67492, 67496, 67500, 67505, 67510, 67515, 67520, 67525, 67530, - 67535, 67540, 67545, 67550, 67555, 67560, 67565, 67570, 67575, 67580, - 67585, 67590, 67595, 67600, 67605, 67610, 67615, 67620, 67625, 67630, - 67635, 67640, 67645, 67650, 67655, 67659, 67664, 67669, 67674, 67679, - 67684, 67689, 67694, 67699, 67704, 67709, 67714, 67719, 67723, 67728, - 67733, 67738, 67743, 67748, 67753, 67758, 67763, 67768, 67772, 67779, - 67786, 67793, 67800, 67807, 67814, 67821, 67828, 67835, 67842, 67849, - 67856, 67859, 67862, 67865, 67870, 67873, 67876, 67879, 67882, 67885, - 67888, 67892, 67896, 67900, 67904, 67907, 67911, 67915, 67919, 67923, - 67927, 67931, 67935, 67939, 67942, 67945, 67949, 67953, 67957, 67961, - 67964, 67968, 67972, 67976, 67980, 67983, 67987, 67991, 67995, 67999, - 68002, 68006, 68010, 68013, 68017, 68021, 68025, 68029, 68033, 68037, - 68041, 68045, 68052, 68055, 68058, 68061, 68064, 68067, 68070, 68073, - 68076, 68079, 68082, 68085, 68088, 68091, 68094, 68097, 68100, 68103, - 68106, 68109, 68112, 68115, 68118, 68121, 68124, 68127, 68130, 68133, - 68136, 68139, 68142, 68145, 68148, 68151, 68154, 68157, 68160, 68163, - 68166, 68169, 68172, 68175, 68178, 68181, 68184, 68187, 68190, 68193, - 68196, 68199, 68202, 68205, 68208, 68211, 68214, 68217, 68220, 68223, - 68226, 68229, 68232, 68235, 68238, 68241, 68244, 68247, 68250, 68253, - 68256, 68259, 68262, 68265, 68268, 68271, 68274, 68277, 68280, 68283, - 68286, 68289, 68292, 68295, 68298, 68301, 68304, 68307, 68310, 68313, - 68316, 68325, 68333, 68341, 68349, 68357, 68365, 68373, 68381, 68389, - 68397, 68406, 68415, 68424, 68433, 68442, 68451, 68460, 68469, 68478, - 68487, 68496, 68505, 68514, 68523, 68532, 68535, 68538, 68541, 68543, - 68546, 68549, 68552, 68557, 68562, 68565, 68572, 68579, 68586, 68593, - 68596, 68601, 68603, 68607, 68609, 68611, 68614, 68617, 68620, 68623, - 68626, 68629, 68632, 68637, 68642, 68645, 68648, 68651, 68654, 68657, - 68660, 68663, 68667, 68670, 68673, 68676, 68679, 68682, 68687, 68690, - 68693, 68696, 68701, 68706, 68711, 68716, 68721, 68726, 68731, 68736, - 68742, 68750, 68752, 68755, 68758, 68761, 68764, 68770, 68778, 68781, - 68784, 68789, 68792, 68795, 68798, 68803, 68806, 68809, 68814, 68817, - 68820, 68825, 68828, 68831, 68836, 68841, 68846, 68849, 68852, 68855, - 68858, 68864, 68867, 68870, 68873, 68875, 68878, 68881, 68884, 68889, - 68892, 68895, 68898, 68901, 68904, 68909, 68912, 68915, 68918, 68921, - 68924, 68927, 68930, 68933, 68936, 68942, 68947, 68955, 68963, 68971, - 68979, 68987, 68995, 69003, 69011, 69019, 69028, 69037, 69046, 69055, - 69064, 69073, 69082, 69091, 69100, 69109, 69118, 69127, 69136, 69145, - 69154, 69163, 69172, 69181, 69190, 69199, 69208, 69217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69232, 69241, + 69250, 69261, 69268, 69273, 69278, 69285, 69292, 69298, 69303, 69308, + 69313, 69318, 69325, 69330, 69335, 69340, 69351, 69356, 69361, 69368, + 69373, 69380, 69385, 69390, 69397, 69404, 69411, 69420, 69429, 69434, + 69439, 69444, 69451, 69456, 69466, 69473, 69478, 69483, 69488, 69493, + 69498, 69503, 69511, 69518, 69525, 69530, 69537, 69542, 69549, 69558, + 69569, 69574, 69583, 69588, 69595, 69604, 69613, 69618, 69623, 69630, + 69636, 69643, 69650, 69654, 69658, 69661, 69665, 69669, 69673, 69677, + 69681, 69685, 69689, 69692, 69696, 69700, 69704, 69708, 69712, 69716, + 69719, 69723, 69727, 69730, 69734, 69738, 69742, 69746, 69750, 69754, + 69758, 69762, 69766, 69770, 69774, 69778, 69782, 69786, 69790, 69794, + 69798, 69802, 69806, 69810, 69814, 69818, 69822, 69826, 69830, 69834, + 69838, 69842, 69846, 69850, 69854, 69858, 69862, 69866, 69870, 69874, + 69878, 69882, 69886, 69890, 69894, 69898, 69902, 69906, 69909, 69913, + 69917, 69921, 69925, 69929, 69933, 69937, 69941, 69945, 69949, 69953, + 69957, 69961, 69965, 69969, 69973, 69977, 69981, 69985, 69989, 69993, + 69997, 70001, 70005, 70009, 70013, 70017, 70021, 70025, 70029, 70033, + 70037, 70041, 70045, 70049, 70053, 70057, 70061, 70065, 70069, 70073, + 70077, 70081, 70085, 70089, 70093, 70097, 70101, 70105, 70109, 70113, + 70117, 70121, 70125, 70129, 70133, 70137, 70141, 70145, 70149, 70153, + 70157, 70161, 70165, 70169, 70173, 70177, 70181, 70185, 70189, 70193, + 70197, 70201, 70205, 70209, 70213, 70217, 70221, 70225, 70229, 70233, + 70237, 70241, 70245, 70249, 70253, 70257, 70261, 70265, 70269, 70273, + 70277, 70281, 70285, 70289, 70293, 70297, 70301, 70305, 70309, 70313, + 70317, 70321, 70325, 70329, 70333, 70337, 70341, 70345, 70349, 70353, + 70357, 70361, 70365, 70369, 70373, 70377, 70380, 70384, 70388, 70392, + 70396, 70400, 70404, 70408, 70412, 70416, 70420, 70424, 70428, 70432, + 70436, 70440, 70444, 70448, 70452, 70456, 70460, 70464, 70468, 70472, + 70476, 70480, 70484, 70488, 70492, 70496, 70500, 70504, 70508, 70512, + 70516, 70520, 70524, 70528, 70532, 70536, 70540, 70544, 70548, 70552, + 70556, 70560, 70564, 70568, 70572, 70576, 70580, 70584, 70588, 70592, + 70596, 70600, 70604, 70608, 70612, 70616, 70620, 70624, 70628, 70632, + 70636, 70640, 70644, 70648, 70652, 70656, 70660, 70664, 70668, 70672, + 70676, 70680, 70684, 70688, 70692, 70696, 70700, 70704, 70708, 70712, + 70716, 70720, 70724, 70728, 70732, 70736, 70740, 70744, 70748, 70752, + 70756, 70760, 70764, 70768, 70772, 70776, 70780, 70784, 70788, 70792, + 70796, 70800, 70804, 70808, 70812, 70816, 70820, 70824, 70828, 70832, + 70836, 70840, 70843, 70847, 70851, 70855, 70859, 70863, 70867, 70871, + 70875, 70879, 70883, 70887, 70891, 70895, 70899, 70903, 70907, 70911, + 70915, 70919, 70923, 70927, 70931, 70935, 70939, 70943, 70947, 70951, + 70955, 70959, 70963, 70967, 70971, 70975, 70979, 70983, 70987, 70991, + 70995, 70999, 71003, 71007, 71011, 71015, 71019, 71023, 71027, 71031, + 71035, 71039, 71043, 71047, 71051, 71055, 71059, 71063, 71067, 71071, + 71075, 71079, 71083, 71087, 71091, 71095, 71099, 71103, 71107, 71111, + 71115, 71119, 71123, 71127, 71131, 71135, 71139, 71143, 71147, 71151, + 71155, 71159, 71163, 71167, 71171, 71175, 71179, 71183, 71187, 71191, + 71195, 71199, 71202, 71206, 71210, 71214, 71218, 71222, 71226, 71230, + 71234, 71238, 71242, 71246, 71250, 71254, 71258, 71262, 71266, 71270, + 71274, 71278, 71282, 71286, 71290, 71294, 71298, 71302, 71306, 71310, + 71314, 71318, 71322, 71326, 71330, 71334, 71338, 71342, 71346, 71350, + 71354, 71358, 71362, 71366, 71370, 71374, 71378, 71382, 71386, 71390, + 71394, 71398, 71402, 71406, 71410, 71414, 71418, 71422, 71426, 71430, + 71434, 71438, 71441, 71445, 71449, 71453, 71457, 71461, 71465, 71469, + 71473, 71477, 71481, 71485, 71489, 71493, 71497, 71501, 71505, 71509, + 71513, 71517, 71521, 71525, 71529, 71533, 71537, 71541, 71545, 71549, + 71553, 71557, 71561, 71565, 71569, 71573, 71577, 71581, 71585, 71589, + 71593, 71597, 71601, 71605, 71609, 71613, 71617, 71621, 71625, 71629, + 71633, 71637, 71641, 71645, 71649, 71653, 71657, 71661, 71665, 71669, + 71673, 71677, 71681, 71685, 71689, 71693, 71696, 71700, 71704, 71708, + 71712, 71716, 71720, 71724, 71728, 71732, 71736, 71740, 71744, 71748, + 71752, 71756, 71760, 71764, 71768, 71772, 71776, 71780, 71784, 71788, + 71792, 71796, 71800, 71804, 71808, 71812, 71816, 71820, 71824, 71828, + 71832, 71836, 71840, 71844, 71848, 71852, 71856, 71860, 71864, 71868, + 71872, 71876, 71880, 71884, 71888, 71892, 71896, 71900, 71904, 71908, + 71912, 71916, 71920, 71924, 71928, 71932, 71936, 71940, 71944, 71948, + 71952, 71956, 71960, 71964, 71968, 71972, 71976, 71980, 71984, 71988, + 71992, 71996, 72000, 72004, 72008, 72012, 72016, 72020, 72024, 72028, + 72032, 72036, 72040, 72044, 72048, 72052, 72056, 72060, 72064, 72068, + 72072, 72076, 72080, 72084, 72088, 72092, 72096, 72100, 72104, 72108, + 72112, 72116, 72120, 72124, 72128, 72132, 72136, 72140, 72144, 72148, + 72151, 72155, 72159, 72163, 72167, 72171, 72175, 72179, 72183, 72187, + 72191, 72195, 72199, 72203, 72207, 72211, 72215, 72219, 72223, 72227, + 72231, 72235, 72239, 72243, 72247, 72251, 72255, 72259, 72263, 72267, + 72271, 72275, 72279, 72283, 72287, 72291, 72295, 72299, 72303, 72307, + 72311, 72315, 72319, 72323, 72327, 72331, 72335, 72339, 72343, 72347, + 72351, 72355, 72359, 72363, 72367, 72371, 72375, 72379, 72383, 72387, + 72391, 72395, 72399, 72403, 72407, 72411, 72415, 72419, 72423, 72427, + 72431, 72435, 72439, 72443, 72447, 72451, 72455, 72459, 72463, 72467, + 72471, 72475, 72479, 72483, 72487, 72491, 72495, 72499, 72503, 72507, + 72511, 72515, 72519, 72523, 72527, 72531, 72535, 72539, 72543, 72547, + 72551, 72555, 72559, 72563, 72567, 72571, 72575, 72579, 72583, 72587, + 72591, 72595, 72599, 72603, 72607, 72611, 72615, 72619, 72623, 72627, + 72631, 72635, 72639, 72643, 72647, 72651, 72655, 72659, 72663, 72667, + 72671, 72675, 72679, 72683, 72687, 72691, 72695, 72699, 72703, 72707, + 72711, 72715, 72719, 72723, 72727, 72731, 72735, 72739, 72743, 72747, + 72751, 72754, 72758, 72762, 72766, 72770, 72774, 72778, 72782, 72785, + 72789, 72793, 72797, 72801, 72805, 72809, 72813, 72817, 72821, 72825, + 72829, 72833, 72837, 72841, 72845, 72849, 72853, 72857, 72861, 72865, + 72869, 72873, 72877, 72881, 72885, 72889, 72893, 72897, 72901, 72905, + 72909, 72913, 72917, 72921, 72925, 72929, 72933, 72937, 72941, 72945, + 72949, 72953, 72957, 72961, 72965, 72969, 72973, 72977, 72981, 72985, + 72989, 72993, 72997, 73001, 73005, 73009, 73013, 73017, 73021, 73025, + 73029, 73033, 73037, 73041, 73045, 73049, 73053, 73057, 73061, 73065, + 73069, 73073, 73077, 73081, 73085, 73089, 73093, 73097, 73101, 73105, + 73109, 73113, 73117, 73121, 73125, 73129, 73133, 73137, 73141, 73145, + 73149, 73153, 73157, 73161, 73165, 73169, 73173, 73177, 73181, 73185, + 73189, 73193, 73197, 73201, 73205, 73209, 73213, 73217, 73221, 73225, + 73229, 73233, 73237, 73241, 73245, 73249, 73253, 73257, 73261, 73265, + 73269, 73273, 73277, 73281, 73285, 73289, 73293, 73297, 73301, 73305, + 73309, 73313, 73317, 73321, 73325, 73329, 73333, 73337, 73341, 73345, + 73349, 73353, 73357, 73361, 73365, 73369, 73373, 73377, 73381, 73385, + 73389, 73393, 73397, 73401, 73405, 73409, 73413, 73417, 73421, 73425, + 73429, 73433, 73437, 73441, 73445, 73449, 73453, 73457, 73461, 73465, + 73469, 73473, 73477, 73481, 73485, 73489, 73493, 73497, 73501, 73505, + 73509, 73512, 73516, 73520, 73524, 73528, 73532, 73536, 73540, 73544, + 73548, 73552, 73556, 73560, 73564, 73568, 73572, 73576, 73580, 73584, + 73588, 73592, 73596, 73600, 73604, 73608, 73612, 73616, 73620, 73624, + 73628, 73632, 73636, 73640, 73644, 73648, 73652, 73656, 73660, 73664, + 73668, 73672, 73676, 73680, 73684, 73688, 73692, 73696, 73700, 73704, + 73708, 73712, 73716, 73720, 73724, 73728, 73732, 73736, 73740, 73744, + 73748, 73752, 73756, 73760, 73764, 73768, 73772, 73776, 73780, 73784, + 73788, 73792, 73796, 73800, 73804, 73808, 73812, 73816, 73820, 73824, + 73828, 73832, 73836, 73840, 73844, 73848, 73852, 73856, 73860, 73864, + 73868, 73872, 73876, 73880, 73884, 73888, 73892, 73896, 73900, 73904, + 73908, 73912, 73916, 73920, 73924, 73928, 73932, 73936, 73940, 73944, + 73948, 73952, 73956, 73960, 73964, 73968, 73972, 73976, 73980, 73984, + 73988, 73992, 73996, 74000, 74004, 74008, 74012, 74016, 74020, 74024, + 74028, 74032, 74036, 74040, 74044, 74048, 74052, 74056, 74060, 74064, + 74068, 74072, 74076, 74080, 74084, 74088, 74092, 74096, 74100, 74104, + 74108, 74112, 74116, 74120, 74124, 74128, 74132, 74136, 74140, 74144, + 74148, 74152, 74156, 74160, 74164, 74168, 74172, 74176, 74180, 74184, + 74188, 74192, 74196, 74200, 74204, 74208, 74212, 74216, 74220, 74224, + 74228, 74232, 74236, 74240, 74244, 74248, 74252, 74256, 74260, 74264, + 74268, 74272, 74276, 74280, 74284, 74288, 74292, 0, 0, 0, 74296, 74300, + 74304, 74308, 74312, 74316, 74320, 74324, 74328, 74332, 74336, 74340, + 74344, 74348, 74352, 74356, 74360, 74364, 74368, 74372, 74376, 74380, + 74384, 74388, 74392, 74396, 74400, 74404, 74408, 74412, 74416, 74420, + 74424, 74428, 74432, 74436, 74440, 74444, 74448, 74452, 74456, 74460, + 74464, 74468, 74472, 74476, 74480, 74484, 74488, 74492, 74496, 74500, + 74504, 74508, 74512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74516, 74521, 74525, + 74530, 74535, 74540, 74545, 74550, 74554, 74559, 74564, 74569, 74574, + 74579, 74584, 74589, 74593, 74597, 74601, 74605, 74610, 74615, 74620, + 74624, 74629, 74634, 74639, 74644, 74649, 74653, 74658, 74662, 74667, + 74671, 74676, 74680, 74684, 74688, 74693, 74698, 74703, 74711, 74719, + 74727, 74735, 74742, 74750, 74756, 74764, 74768, 74772, 74776, 74780, + 74784, 74788, 74792, 74796, 74800, 74804, 74808, 74812, 74816, 74820, + 74824, 74828, 74832, 74836, 74840, 74844, 74848, 74852, 74856, 74860, + 74864, 74868, 74872, 74876, 74880, 74884, 74888, 74892, 74896, 74900, + 74904, 74908, 74911, 74915, 74919, 74923, 74927, 74931, 74935, 74939, + 74943, 74947, 74951, 74955, 74959, 74963, 74967, 74971, 74975, 74979, + 74983, 74987, 74991, 74995, 74999, 75003, 75007, 75011, 75015, 75019, + 75023, 75027, 75031, 75035, 75039, 75043, 75047, 75051, 75055, 75058, + 75062, 75066, 75069, 75073, 75077, 75081, 75084, 75088, 75092, 75096, + 75100, 75104, 75108, 75112, 75116, 75120, 75124, 75128, 75132, 75136, + 75139, 75142, 75146, 75150, 75153, 75157, 75161, 75165, 75169, 75173, + 75177, 75180, 75183, 75187, 75191, 75195, 75198, 75201, 75205, 75209, + 75213, 75217, 75221, 75225, 75229, 75233, 75237, 75241, 75245, 75249, + 75253, 75257, 75261, 75265, 75269, 75273, 75277, 75281, 75285, 75289, + 75293, 75297, 75301, 75305, 75309, 75313, 75317, 75321, 75325, 75329, + 75333, 75337, 75341, 75345, 75349, 75352, 75356, 75360, 75364, 75368, + 75372, 75376, 75380, 75384, 75388, 75392, 75396, 75400, 75404, 75408, + 75412, 75416, 75420, 75424, 75428, 75432, 75436, 75440, 75444, 75448, + 75452, 75456, 75460, 75464, 75468, 75472, 75476, 75480, 75484, 75488, + 75492, 75496, 75499, 75503, 75507, 75511, 75515, 75519, 75523, 75527, + 75531, 75535, 75539, 75543, 75547, 75551, 75555, 75559, 75563, 75566, + 75570, 75574, 75578, 75582, 75586, 75590, 75594, 75598, 75602, 75606, + 75610, 75614, 75618, 75622, 75626, 75630, 75634, 75638, 75642, 75646, + 75650, 75653, 75657, 75661, 75665, 75669, 75673, 75677, 75681, 75685, + 75689, 75693, 75697, 75701, 75705, 75709, 75713, 75717, 75721, 75725, + 75729, 75733, 75737, 75741, 75745, 75749, 75753, 75757, 75761, 75765, + 75769, 75773, 75777, 75781, 75785, 75789, 75793, 75797, 75801, 75805, + 75809, 75813, 75817, 75821, 75825, 75828, 75833, 75837, 75843, 75848, + 75854, 75858, 75862, 75866, 75870, 75874, 75878, 75882, 75886, 75890, + 75894, 75898, 75902, 75906, 75910, 75913, 75916, 75919, 75922, 75925, + 75928, 75931, 75934, 75937, 75942, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 75948, 75953, 75958, 75963, 75968, 75975, 75982, + 75987, 75992, 75997, 76002, 76009, 76016, 76023, 76030, 76037, 76044, + 76054, 76064, 76071, 76078, 76085, 76092, 76098, 76104, 76113, 76122, + 76129, 76136, 76147, 76158, 76163, 76168, 76175, 76182, 76189, 76196, + 76203, 76210, 76217, 76224, 76230, 76236, 76242, 76248, 76255, 76262, + 76267, 76271, 76278, 76285, 76292, 76296, 76303, 76307, 76312, 76316, + 76322, 76327, 76333, 76338, 76342, 76346, 76349, 76352, 76357, 76362, + 76367, 76372, 76377, 76382, 76387, 76392, 76397, 76402, 76410, 76418, + 76423, 76428, 76433, 76438, 76443, 76448, 76453, 76458, 76463, 76468, + 76473, 76478, 76483, 76488, 76494, 76500, 76506, 76512, 76517, 76523, + 76526, 76529, 76532, 76536, 76540, 76544, 76548, 76551, 76555, 76558, + 76561, 76564, 76568, 76572, 76576, 76580, 76584, 76588, 76592, 76596, + 76600, 76604, 76608, 76612, 76616, 76620, 76624, 76628, 76632, 76636, + 76640, 76644, 76648, 76652, 76655, 76659, 76663, 76667, 76671, 76675, + 76679, 76683, 76687, 76691, 76695, 76699, 76703, 76707, 76711, 76715, + 76719, 76723, 76727, 76731, 76735, 76739, 76743, 76747, 76751, 76754, + 76758, 76762, 76766, 76770, 76774, 76778, 76782, 76785, 76789, 76793, + 76797, 76801, 76805, 76809, 76813, 76817, 76821, 76825, 76829, 76833, + 76838, 76843, 76846, 76851, 76854, 76857, 76860, 0, 0, 0, 0, 0, 0, 0, 0, + 76864, 76873, 76882, 76891, 76900, 76909, 76918, 76927, 76936, 76944, + 76951, 76959, 76966, 76974, 76984, 76993, 77003, 77012, 77022, 77030, + 77037, 77045, 77052, 77060, 77065, 77070, 77076, 77084, 77090, 77096, + 77103, 77112, 77120, 77128, 77136, 77143, 77150, 77157, 77164, 77169, + 77174, 77179, 77184, 77189, 77194, 77199, 77204, 77212, 77220, 77226, + 77232, 77237, 77242, 77247, 77252, 77257, 77262, 77267, 77272, 77281, + 77290, 77295, 77300, 77310, 77320, 77327, 77334, 77343, 77352, 77364, + 77376, 77382, 77388, 77396, 77404, 77414, 77424, 77431, 77438, 77443, + 77448, 77460, 77472, 77480, 77488, 77498, 77508, 77520, 77532, 77541, + 77550, 77557, 77564, 77571, 77578, 77587, 77596, 77601, 77606, 77613, + 77620, 77627, 77634, 77646, 77658, 77663, 77668, 77673, 77678, 77683, + 77688, 77693, 77698, 77702, 77707, 77712, 77717, 77722, 77727, 77733, + 77738, 77743, 77750, 77757, 77764, 77771, 77778, 77786, 77794, 77799, + 77804, 77810, 77816, 77823, 77830, 77837, 77844, 77851, 77855, 77862, + 77867, 77872, 77878, 77891, 77897, 77905, 77913, 77920, 77927, 77936, + 77945, 77952, 77959, 77966, 77973, 77980, 77987, 77994, 78001, 78008, + 78015, 78024, 78033, 78042, 78051, 78060, 78069, 78078, 78087, 78096, + 78105, 78112, 78120, 78126, 78134, 78140, 78146, 78152, 78158, 78166, + 78171, 78176, 78181, 78186, 78191, 78197, 78203, 78209, 78215, 78221, + 78227, 78233, 78239, 78246, 78253, 78260, 78267, 78276, 78283, 78292, + 78304, 78316, 78328, 0, 0, 0, 0, 0, 78340, 78349, 0, 78358, 0, 78364, + 78370, 78378, 78386, 78393, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 78400, 78405, 78410, 78415, 78423, 78431, + 78438, 78445, 78451, 78458, 78466, 78474, 78482, 78490, 78498, 78504, + 78510, 78517, 78523, 78529, 78535, 78542, 78549, 78556, 78563, 78570, + 78577, 78584, 78591, 78598, 78605, 78612, 78619, 78626, 78633, 78639, + 78646, 78653, 78660, 78667, 78674, 78681, 78688, 78695, 78702, 78709, + 78716, 78723, 78730, 78737, 78744, 78751, 78758, 78765, 78773, 78781, + 78789, 78797, 78805, 0, 0, 0, 78814, 78822, 78830, 78838, 78846, 78854, + 78862, 78868, 78874, 78880, 0, 0, 0, 0, 0, 0, 78886, 78890, 78895, 78900, + 78905, 78910, 78915, 78920, 78925, 78930, 78935, 78940, 78944, 78948, + 78953, 78958, 78962, 78967, 78972, 78977, 78982, 78987, 78992, 78997, + 79001, 79005, 79009, 79014, 79018, 79022, 79026, 79030, 79034, 79038, + 79042, 79047, 79052, 79057, 79062, 79067, 79074, 79080, 79085, 79090, + 79095, 79100, 79106, 79113, 79119, 79126, 79132, 79138, 79143, 79150, + 79156, 79161, 0, 0, 0, 0, 0, 0, 0, 0, 79167, 79172, 79177, 79181, 79186, + 79190, 79195, 79199, 79204, 79209, 79215, 79220, 79226, 79230, 79235, + 79240, 79244, 79249, 79254, 79258, 79263, 79268, 79273, 79278, 79283, + 79288, 79293, 79298, 79303, 79308, 79313, 79318, 79323, 79328, 79333, + 79338, 79343, 79348, 79352, 79356, 79361, 79366, 79371, 79375, 79379, + 79383, 79387, 79392, 79397, 79402, 79406, 79410, 79415, 79421, 79427, + 79432, 79438, 79443, 79449, 79455, 79462, 79468, 79475, 79480, 79486, + 79492, 79497, 79503, 79509, 79514, 0, 0, 0, 0, 0, 0, 0, 0, 79519, 79523, + 79528, 79533, 79537, 79541, 79545, 79549, 79553, 79557, 79561, 79565, 0, + 0, 0, 0, 0, 0, 79569, 79574, 79578, 79582, 79586, 79590, 79594, 79598, + 79602, 79606, 79610, 79614, 79618, 79622, 79626, 79630, 79634, 79639, + 79644, 79650, 79656, 79663, 79668, 79673, 79679, 79683, 79688, 79691, + 79694, 79698, 79703, 79707, 79712, 79719, 79725, 79731, 79737, 79743, + 79749, 79755, 79761, 79767, 79773, 79779, 79786, 79793, 79800, 79806, + 79813, 79820, 79827, 79834, 79841, 79847, 79853, 79860, 79866, 79873, + 79880, 79886, 79892, 79898, 79905, 79912, 79918, 79925, 79932, 79938, + 79945, 79951, 79958, 79965, 79971, 79977, 79984, 79990, 79997, 80004, + 80013, 80020, 80027, 80031, 80036, 80041, 80046, 80051, 80055, 80059, + 80064, 80068, 80073, 80078, 80083, 80087, 80091, 80095, 80099, 80104, + 80108, 80113, 80118, 80123, 80128, 80132, 80137, 80142, 80147, 80153, + 80158, 80164, 80170, 80176, 80182, 80188, 80193, 80199, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 80203, 80208, 80212, 80216, 80220, 80224, 80228, 80232, + 80236, 80240, 80244, 80248, 80252, 80256, 80260, 80264, 80268, 80272, + 80276, 80280, 80284, 80288, 80292, 80296, 80300, 80304, 80308, 80312, + 80316, 80320, 0, 0, 0, 80324, 80329, 80334, 80339, 80344, 80348, 80355, + 80359, 80364, 80368, 80375, 80382, 80391, 80395, 80400, 80404, 80408, + 80415, 80422, 80427, 80434, 80439, 80444, 80451, 80456, 80463, 80470, + 80475, 80480, 80487, 80492, 80499, 80506, 80511, 80518, 80523, 80530, + 80534, 80538, 80545, 80550, 80557, 80561, 80565, 80569, 80576, 80580, + 80585, 80592, 80599, 80603, 80607, 80614, 80620, 80626, 80632, 80640, + 80646, 80654, 80660, 80668, 80674, 80680, 80686, 80692, 80696, 80701, + 80706, 80712, 80718, 80724, 80730, 80736, 80742, 80748, 80754, 80762, + 80768, 0, 80775, 80779, 80784, 80788, 80792, 80796, 80800, 80804, 80808, + 80812, 80816, 0, 0, 0, 0, 80820, 80828, 80834, 80840, 80846, 80852, + 80858, 80864, 80870, 80877, 80884, 80891, 80898, 80905, 80912, 80919, + 80926, 80933, 80940, 80947, 80953, 80959, 80965, 80971, 80977, 80983, + 80989, 80995, 81001, 81008, 81015, 81022, 81029, 0, 81036, 81040, 81044, + 81048, 81052, 81057, 81061, 81065, 81070, 81075, 81080, 81085, 81090, + 81095, 81100, 81105, 81110, 81115, 81120, 81125, 81130, 81135, 81140, + 81145, 81150, 81154, 81159, 81163, 81168, 81173, 81178, 81183, 81188, + 81192, 81197, 81201, 81205, 81209, 81214, 81219, 81223, 81227, 81233, + 81238, 81244, 81250, 81255, 81261, 81266, 81272, 81278, 81284, 81289, + 81294, 81299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81305, 81311, 81317, 81323, + 81330, 81336, 81342, 81348, 81354, 81360, 81365, 81370, 81376, 81383, 0, + 0, 81390, 81395, 81399, 81403, 81407, 81411, 81415, 81419, 81423, 81427, + 0, 0, 81431, 81437, 81443, 81450, 81458, 81464, 81470, 81476, 81482, + 81488, 81494, 81500, 81506, 81512, 81518, 81524, 81529, 81534, 81539, + 81545, 81551, 81558, 81564, 81570, 81575, 81582, 81589, 81596, 81602, + 81607, 81612, 81617, 81625, 81632, 81639, 81647, 81655, 81662, 81669, + 81676, 81683, 81690, 81697, 81704, 81711, 81718, 81725, 81732, 81739, + 81746, 81753, 81760, 81767, 81774, 81781, 81788, 81795, 81801, 81807, + 81814, 81821, 81828, 81835, 81842, 81849, 81856, 81863, 81870, 81877, + 81884, 81891, 81898, 81905, 81912, 81919, 81926, 81933, 81940, 81947, + 81954, 81961, 81968, 81975, 81981, 81987, 81994, 82000, 82005, 82011, + 82016, 82021, 82026, 82033, 82039, 82045, 82051, 82057, 82063, 82069, + 82075, 82083, 82091, 82099, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 82107, 82113, 82119, 82125, 82133, 82141, + 82147, 82153, 82160, 82167, 82174, 82181, 82188, 82195, 82202, 82209, + 82216, 82224, 82232, 82240, 82248, 82256, 82262, 82270, 82276, 82284, + 82293, 82301, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82307, 82311, 82315, 82319, + 82323, 82327, 0, 0, 82331, 82335, 82339, 82343, 82347, 82351, 0, 0, + 82355, 82359, 82363, 82367, 82371, 82375, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82379, 82383, 82387, 82391, 82395, 82399, 82403, 0, 82407, 82411, 82415, + 82419, 82423, 82427, 82431, 0, 82435, 82442, 82448, 82454, 82460, 82468, + 82475, 82484, 82496, 82506, 82515, 82523, 82531, 82539, 82545, 82553, + 82561, 82568, 82576, 82586, 82593, 82602, 82608, 82618, 82627, 82632, + 82640, 82649, 82654, 82663, 82670, 82680, 82692, 82697, 82703, 82710, + 82715, 82725, 82735, 82745, 82755, 82770, 82783, 82794, 82802, 82807, + 82819, 82828, 82835, 82842, 82848, 82855, 82860, 82867, 82873, 82884, + 82895, 82905, 82911, 82916, 0, 0, 0, 0, 82921, 82925, 82929, 82933, + 82937, 82941, 82946, 82951, 82955, 82960, 82965, 82970, 82975, 82980, + 82984, 82989, 82994, 82999, 83004, 83009, 83013, 83018, 83023, 83028, + 83033, 83038, 83042, 83047, 83052, 83057, 83062, 83066, 83071, 83076, + 83081, 83086, 83091, 83096, 83101, 83106, 83111, 83116, 83121, 83126, + 83131, 83135, 83140, 83145, 83150, 83155, 83160, 83165, 83170, 83175, + 83180, 83185, 83190, 83195, 83200, 83205, 83210, 83215, 83220, 83225, + 83230, 83235, 83240, 83245, 83250, 83255, 83260, 83265, 83270, 83275, + 83280, 83285, 83290, 83295, 83300, 83305, 83309, 83316, 83323, 83330, + 83337, 83343, 83349, 83356, 83363, 83370, 83377, 83384, 83391, 83398, + 83405, 83412, 83418, 83425, 83432, 83439, 83446, 83453, 83460, 83467, + 83474, 83481, 83488, 83495, 83504, 83513, 83522, 83531, 83540, 83549, + 83558, 83567, 83575, 83583, 83591, 83599, 83607, 83615, 83623, 83631, + 83637, 83645, 0, 0, 83653, 83660, 83666, 83672, 83678, 83684, 83690, + 83696, 83702, 83708, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83714, 83719, 83724, 83729, 83734, + 83739, 83744, 83749, 83754, 83759, 83764, 83769, 83774, 83779, 83784, + 83789, 83794, 83799, 83804, 83809, 83814, 83819, 83824, 0, 0, 0, 0, + 83829, 83833, 83837, 83841, 83845, 83849, 83853, 83857, 83861, 83865, + 83869, 83873, 83877, 83881, 83885, 83889, 83893, 83897, 83901, 83905, + 83909, 83913, 83917, 83921, 83925, 83929, 83933, 83937, 83941, 83945, + 83949, 83953, 83957, 83961, 83965, 83969, 83973, 83977, 83981, 83985, + 83989, 83993, 83997, 84001, 84005, 84009, 84013, 84017, 84021, 0, 0, 0, + 0, 84025, 84029, 84033, 84037, 84041, 84045, 84049, 84053, 84057, 84061, + 84065, 84069, 84073, 84077, 84081, 84085, 84089, 84093, 84097, 84101, + 84105, 84109, 84113, 84117, 84121, 84125, 84129, 84133, 84137, 84141, + 84145, 84149, 84153, 84157, 84161, 84165, 84169, 84173, 84177, 84181, + 84185, 84189, 84193, 84197, 84201, 84205, 84209, 84213, 84217, 84221, + 84225, 84229, 84233, 84237, 84241, 84245, 84249, 84253, 84257, 84261, + 84265, 84269, 84273, 84277, 84281, 84285, 84289, 84293, 84297, 84301, + 84305, 84309, 84313, 84317, 84321, 84325, 84329, 84333, 84337, 84341, + 84345, 84349, 84353, 84357, 84361, 84365, 84369, 84373, 84377, 84381, + 84385, 84389, 84393, 84397, 84401, 84405, 84409, 84413, 84417, 84421, + 84425, 84429, 84433, 84437, 84441, 84445, 84449, 84453, 84457, 84461, + 84465, 84469, 84473, 84477, 84481, 84485, 84489, 84493, 84497, 84501, + 84505, 84509, 84513, 84517, 84521, 84525, 84529, 84533, 84537, 84541, + 84545, 84549, 84553, 84557, 84561, 84565, 84569, 84573, 84577, 84581, + 84585, 84589, 84593, 84597, 84601, 84605, 84609, 84613, 84617, 84621, + 84625, 84629, 84633, 84637, 84641, 84645, 84649, 84653, 84657, 84661, + 84665, 84669, 84673, 84677, 84681, 84685, 84689, 84693, 84697, 84701, + 84705, 84709, 84713, 84717, 84721, 84725, 84729, 84733, 84737, 84741, + 84745, 84749, 84753, 84757, 84761, 84765, 84769, 84773, 84777, 84781, + 84785, 84789, 84793, 84797, 84801, 84805, 84809, 84813, 84817, 84821, + 84825, 84829, 84833, 84837, 84841, 84845, 84849, 84853, 84857, 84861, + 84865, 84869, 84873, 84877, 84881, 84885, 84889, 84893, 84897, 84901, + 84905, 84909, 84913, 84917, 84921, 84925, 84929, 84933, 84937, 84941, + 84945, 84949, 84953, 84957, 84961, 84965, 84969, 84973, 84977, 84981, + 84985, 84989, 84993, 84997, 85001, 85005, 85009, 85013, 85017, 85021, + 85025, 85029, 85033, 85037, 85041, 85045, 85049, 85053, 85057, 85061, + 85065, 85069, 85073, 85077, 85081, 85085, 85089, 85093, 85097, 85101, + 85105, 85109, 85113, 85117, 85121, 85125, 85129, 85133, 85137, 85141, + 85145, 85149, 85153, 85157, 85161, 85165, 85169, 85173, 85177, 85181, + 85185, 85189, 85193, 85197, 85201, 85205, 85209, 85213, 85217, 85221, + 85225, 85229, 85233, 85237, 85241, 85245, 85249, 85253, 85257, 85261, + 85265, 85269, 85273, 85277, 85281, 85285, 85289, 85293, 85297, 85301, + 85305, 85309, 85313, 85317, 85321, 85325, 85329, 85333, 85337, 85341, + 85345, 85349, 85353, 85357, 85361, 85365, 85369, 85373, 85377, 85381, + 85385, 85389, 85393, 85397, 85401, 85405, 85409, 85413, 85417, 85421, + 85425, 85429, 85433, 85437, 85441, 85445, 85449, 85453, 85457, 85461, + 85465, 85469, 85473, 85477, 85481, 85485, 0, 0, 85489, 85493, 85497, + 85501, 85505, 85509, 85513, 85517, 85521, 85525, 85529, 85533, 85537, + 85541, 85545, 85549, 85553, 85557, 85561, 85565, 85569, 85573, 85577, + 85581, 85585, 85589, 85593, 85597, 85601, 85605, 85609, 85613, 85617, + 85621, 85625, 85629, 85633, 85637, 85641, 85645, 85649, 85653, 85657, + 85661, 85665, 85669, 85673, 85677, 85681, 85685, 85689, 85693, 85697, + 85701, 85705, 85709, 85713, 85717, 85721, 85725, 85729, 85733, 85737, + 85741, 85745, 85749, 85753, 85757, 85761, 85765, 85769, 85773, 85777, + 85781, 85785, 85789, 85793, 85797, 85801, 85805, 85809, 85813, 85817, + 85821, 85825, 85829, 85833, 85837, 85841, 85845, 85849, 85853, 85857, + 85861, 85865, 85869, 85873, 85877, 85881, 85885, 85889, 85893, 85897, + 85901, 85905, 85909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85913, + 85918, 85923, 85928, 85933, 85938, 85946, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 85951, 85959, 85967, 85975, 85983, 0, 0, 0, 0, 0, 85991, 85998, + 86005, 86015, 86021, 86027, 86033, 86039, 86045, 86051, 86058, 86064, + 86070, 86076, 86085, 86094, 86106, 86118, 86124, 86130, 86136, 86143, + 86150, 86157, 86164, 86171, 0, 86178, 86185, 86192, 86200, 86207, 0, + 86214, 0, 86221, 86228, 0, 86235, 86243, 0, 86250, 86257, 86264, 86271, + 86278, 86285, 86292, 86299, 86306, 86313, 86318, 86325, 86332, 86338, + 86344, 86350, 86357, 86363, 86369, 86375, 86382, 86388, 86394, 86400, + 86407, 86413, 86419, 86425, 86432, 86438, 86444, 86450, 86457, 86463, + 86469, 86475, 86482, 86488, 86494, 86500, 86507, 86513, 86519, 86525, + 86532, 86538, 86544, 86550, 86557, 86563, 86569, 86575, 86582, 86588, + 86594, 86600, 86607, 86613, 86619, 86625, 86632, 86638, 86644, 86650, + 86656, 86662, 86668, 86674, 86680, 86686, 86692, 86698, 86704, 86710, + 86716, 86722, 86729, 86735, 86741, 86747, 86754, 86760, 86766, 86772, + 86779, 86785, 86791, 86797, 86804, 86812, 86820, 86826, 86832, 86838, + 86845, 86854, 86863, 86871, 86879, 86887, 86896, 86904, 86912, 86920, + 86929, 86936, 86943, 86954, 86965, 86969, 86973, 86978, 86983, 86988, + 86993, 87002, 87011, 87017, 87023, 87030, 87037, 87044, 87048, 87054, + 87060, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87065, 87071, + 87077, 87083, 87090, 87095, 87100, 87106, 87112, 87118, 87124, 87133, + 87139, 87145, 87153, 87161, 87169, 87177, 87183, 87189, 87195, 87202, + 87215, 87229, 87240, 87251, 87263, 87275, 87287, 87299, 87310, 87321, + 87333, 87345, 87357, 87369, 87381, 87393, 87405, 87422, 87439, 87456, + 87463, 87470, 87477, 87485, 87497, 87508, 87519, 87532, 87543, 87552, + 87560, 87569, 87577, 87587, 87595, 87604, 87612, 87621, 87629, 87639, + 87647, 87656, 87664, 87674, 87682, 87690, 87698, 87706, 87713, 87722, + 87730, 87738, 87747, 87755, 87764, 87772, 87780, 87788, 87797, 87805, + 87814, 87822, 87830, 87838, 87846, 87855, 87863, 87872, 87880, 87889, + 87897, 87906, 87914, 87924, 87932, 87940, 87948, 87958, 87966, 87974, + 87983, 87991, 88000, 88009, 88017, 88027, 88035, 88044, 88052, 88061, + 88069, 88079, 88087, 88095, 88102, 88110, 88117, 88126, 88133, 88142, + 88150, 88159, 88167, 88177, 88185, 88194, 88202, 88212, 88220, 88228, + 88235, 88243, 88250, 88259, 88266, 88276, 88286, 88297, 88306, 88315, + 88324, 88333, 88342, 88352, 88364, 88376, 88387, 88399, 88412, 88423, + 88432, 88441, 88449, 88458, 88468, 88476, 88485, 88494, 88502, 88511, + 88521, 88529, 88538, 88547, 88555, 88564, 88574, 88582, 88592, 88600, + 88610, 88618, 88626, 88635, 88643, 88653, 88661, 88669, 88679, 88687, + 88694, 88701, 88710, 88719, 88727, 88736, 88746, 88754, 88765, 88773, + 88781, 88788, 88796, 88805, 88812, 88824, 88835, 88847, 88858, 88870, + 88879, 88887, 88896, 88904, 88913, 88922, 88930, 88939, 88947, 88956, + 88964, 88972, 88980, 88988, 88995, 89004, 89012, 89021, 89029, 89038, + 89046, 89054, 89063, 89071, 89080, 89088, 89097, 89105, 89113, 89121, + 89130, 89138, 89147, 89155, 89164, 89172, 89181, 89189, 89197, 89205, + 89214, 89222, 89231, 89240, 89248, 89257, 89265, 89274, 89282, 89291, + 89299, 89306, 89314, 89321, 89330, 89338, 89347, 89355, 89364, 89373, + 89381, 89391, 89399, 89406, 89414, 89421, 89429, 89441, 89454, 89463, + 89473, 89482, 89492, 89501, 89511, 89520, 89530, 89539, 89549, 89559, + 89568, 89577, 89586, 89596, 89604, 89613, 89623, 89633, 89643, 89653, + 89661, 89671, 89679, 89689, 89697, 89707, 89715, 89725, 89733, 89742, + 89749, 89759, 89767, 89777, 89785, 89795, 89803, 89813, 89821, 89830, + 89838, 89847, 89855, 89864, 89873, 89882, 89891, 89901, 89909, 89919, + 89927, 89937, 89945, 89955, 89963, 89973, 89981, 89990, 89997, 90007, + 90015, 90025, 90033, 90043, 90051, 90061, 90069, 90078, 90086, 90095, + 90103, 90112, 90121, 90130, 90139, 90148, 90156, 90165, 90173, 90182, + 90191, 90199, 90209, 90218, 90228, 90238, 90247, 90257, 90266, 90275, + 90283, 90291, 90296, 90301, 90307, 90315, 90323, 90331, 90339, 90347, + 90355, 90361, 90367, 90373, 90381, 90387, 90397, 90403, 90409, 90415, + 90426, 90437, 90448, 90458, 90469, 90480, 90490, 90501, 90511, 90521, + 90530, 90541, 90552, 90563, 90576, 90586, 90596, 90607, 90617, 90627, + 90637, 90647, 90657, 90667, 90677, 90688, 90699, 90710, 90720, 90730, + 90742, 90753, 90764, 90774, 90784, 90794, 90804, 90815, 90825, 90835, + 90847, 90857, 90867, 90879, 90890, 90901, 90911, 90921, 90931, 90941, + 90953, 90965, 90977, 90988, 90999, 91009, 91019, 91029, 91038, 91047, + 91057, 91067, 91078, 0, 0, 91088, 91099, 91110, 91120, 91130, 91142, + 91153, 91164, 91177, 91187, 91199, 91208, 91217, 91228, 91239, 91252, + 91263, 91276, 91286, 91298, 91308, 91320, 91332, 91345, 91355, 91365, + 91375, 91386, 91396, 91405, 91415, 91424, 91433, 91443, 91453, 91463, + 91473, 91483, 91493, 91504, 91514, 91525, 91535, 91546, 91557, 91567, + 91577, 91587, 91597, 91607, 91617, 91628, 91638, 91649, 0, 0, 0, 0, 0, 0, + 0, 91660, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91666, 91681, 91696, 91702, 91708, + 91714, 91720, 91726, 91732, 91738, 91744, 91752, 91756, 91759, 91767, + 91775, 91783, 91786, 91789, 91792, 91795, 91798, 91801, 91804, 91807, + 91810, 91813, 91816, 91819, 91822, 91825, 91828, 91831, 91839, 91848, + 91859, 91867, 91875, 91884, 91893, 91905, 91917, 0, 0, 0, 0, 0, 0, 91927, + 91932, 91937, 91944, 91951, 91957, 91963, 91968, 91973, 91978, 91984, + 91990, 91996, 92002, 92008, 92015, 92022, 92032, 92042, 92052, 92061, + 92072, 92081, 92090, 92101, 92112, 92125, 92138, 92150, 92162, 92174, + 92186, 92197, 92208, 92219, 92230, 92242, 92254, 92258, 92263, 92273, + 92283, 92287, 92291, 92295, 92300, 92305, 92310, 92315, 92318, 92322, 0, + 92327, 92330, 92333, 92337, 92341, 92346, 92350, 92354, 92360, 92366, + 92374, 92382, 92385, 92388, 92391, 92394, 92397, 92401, 92405, 0, 92409, + 92414, 92418, 92422, 0, 0, 0, 0, 92427, 92432, 92439, 92444, 92449, 0, + 92454, 92459, 92465, 92470, 92476, 92481, 92487, 92492, 92498, 92503, + 92509, 92515, 92524, 92533, 92542, 92551, 92561, 92571, 92581, 92591, + 92600, 92609, 92618, 92628, 92633, 92638, 92644, 92650, 92656, 92663, + 92671, 92679, 92685, 92691, 92697, 92704, 92710, 92716, 92722, 92729, + 92735, 92741, 92747, 92754, 92759, 92764, 92769, 92775, 92781, 92787, + 92793, 92800, 92806, 92812, 92818, 92824, 92830, 92836, 92842, 92848, + 92854, 92860, 92866, 92873, 92879, 92885, 92891, 92898, 92904, 92910, + 92916, 92923, 92929, 92935, 92941, 92948, 92954, 92960, 92966, 92973, + 92979, 92985, 92991, 92998, 93004, 93010, 93016, 93023, 93029, 93035, + 93041, 93048, 93054, 93060, 93066, 93073, 93079, 93085, 93091, 93098, + 93104, 93110, 93116, 93123, 93129, 93135, 93141, 93148, 93153, 93158, + 93163, 93169, 93175, 93181, 93187, 93194, 93200, 93206, 93212, 93219, + 93225, 93231, 93238, 93245, 93250, 93255, 93260, 93266, 93278, 93290, + 93302, 93314, 93327, 93340, 93348, 0, 0, 93356, 0, 93364, 93369, 93374, + 93378, 93383, 93388, 93392, 93396, 93401, 93406, 93410, 93414, 93418, + 93422, 93428, 93432, 93437, 93441, 93445, 93449, 93453, 93457, 93461, + 93465, 93469, 93473, 93477, 93481, 93486, 93491, 93496, 93501, 93507, + 93513, 93520, 93527, 93534, 93540, 93547, 93554, 93561, 93567, 93574, + 93581, 93587, 93594, 93601, 93607, 93614, 93621, 93627, 93634, 93641, + 93647, 93654, 93661, 93668, 93675, 93682, 93688, 93694, 93700, 93706, + 93711, 93717, 93723, 93730, 93737, 93744, 93750, 93757, 93764, 93771, + 93777, 93784, 93791, 93797, 93804, 93811, 93817, 93824, 93831, 93837, + 93844, 93851, 93857, 93864, 93871, 93878, 93885, 93892, 93899, 93904, + 93911, 93915, 93921, 93927, 93933, 93939, 93945, 93949, 93954, 93959, + 93964, 93969, 93974, 93979, 93984, 93989, 93995, 94001, 94007, 94015, + 94019, 94023, 94027, 94031, 94035, 94039, 94044, 94049, 94054, 94059, + 94063, 94068, 94073, 94078, 94083, 94088, 94093, 94098, 94103, 94107, + 94111, 94116, 94121, 94126, 94131, 94135, 94140, 94145, 94150, 94155, + 94159, 94164, 94169, 94174, 94179, 94183, 94188, 94193, 94197, 94202, + 94207, 94212, 94217, 94222, 94227, 94234, 94241, 94245, 94250, 94255, + 94260, 94265, 94270, 94275, 94280, 94285, 94290, 94295, 94300, 94305, + 94310, 94315, 94320, 94325, 94330, 94335, 94340, 94345, 94350, 94355, + 94360, 94365, 94370, 94375, 94380, 94385, 94390, 0, 0, 0, 94395, 94399, + 94404, 94408, 94413, 94418, 0, 0, 94422, 94427, 94432, 94436, 94441, + 94446, 0, 0, 94451, 94456, 94460, 94465, 94470, 94475, 0, 0, 94480, + 94485, 94490, 0, 0, 0, 94494, 94499, 94504, 94509, 94513, 94518, 94523, + 0, 94528, 94534, 94537, 94541, 94544, 94548, 94552, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94556, 94562, 94568, 94574, 94580, 0, 0, 94584, 94590, 94596, + 94602, 94608, 94614, 94621, 94628, 94635, 94642, 94649, 94656, 0, 94663, + 94670, 94677, 94683, 94690, 94697, 94704, 94711, 94717, 94724, 94731, + 94738, 94745, 94751, 94758, 94765, 94772, 94779, 94785, 94792, 94799, + 94806, 94813, 94820, 94827, 94834, 0, 94841, 94847, 94854, 94861, 94868, + 94875, 94881, 94888, 94895, 94902, 94909, 94916, 94923, 94930, 94936, + 94943, 94950, 94957, 94964, 0, 94971, 94978, 0, 94985, 94992, 94999, + 95006, 95013, 95020, 95027, 95034, 95041, 95048, 95055, 95062, 95069, + 95076, 95083, 0, 0, 95089, 95094, 95099, 95104, 95109, 95114, 95119, + 95124, 95129, 95134, 95139, 95144, 95149, 95154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69220, 69229, - 69238, 69249, 69256, 69261, 69266, 69273, 69280, 69286, 69291, 69296, - 69301, 69306, 69313, 69318, 69323, 69328, 69339, 69344, 69349, 69356, - 69361, 69368, 69373, 69378, 69385, 69392, 69399, 69408, 69417, 69422, - 69427, 69432, 69439, 69444, 69454, 69461, 69466, 69471, 69476, 69481, - 69486, 69491, 69499, 69506, 69513, 69518, 69525, 69530, 69537, 69546, - 69557, 69562, 69571, 69576, 69583, 69592, 69601, 69606, 69611, 69618, - 69624, 69631, 69638, 69642, 69646, 69649, 69653, 69657, 69661, 69665, - 69669, 69673, 69677, 69680, 69684, 69688, 69692, 69696, 69700, 69704, - 69707, 69711, 69715, 69718, 69722, 69726, 69730, 69734, 69738, 69742, - 69746, 69750, 69754, 69758, 69762, 69766, 69770, 69774, 69778, 69782, - 69786, 69790, 69794, 69798, 69802, 69806, 69810, 69814, 69818, 69822, - 69826, 69830, 69834, 69838, 69842, 69846, 69850, 69854, 69858, 69862, - 69866, 69870, 69874, 69878, 69882, 69886, 69890, 69894, 69897, 69901, - 69905, 69909, 69913, 69917, 69921, 69925, 69929, 69933, 69937, 69941, - 69945, 69949, 69953, 69957, 69961, 69965, 69969, 69973, 69977, 69981, - 69985, 69989, 69993, 69997, 70001, 70005, 70009, 70013, 70017, 70021, - 70025, 70029, 70033, 70037, 70041, 70045, 70049, 70053, 70057, 70061, - 70065, 70069, 70073, 70077, 70081, 70085, 70089, 70093, 70097, 70101, - 70105, 70109, 70113, 70117, 70121, 70125, 70129, 70133, 70137, 70141, - 70145, 70149, 70153, 70157, 70161, 70165, 70169, 70173, 70177, 70181, - 70185, 70189, 70193, 70197, 70201, 70205, 70209, 70213, 70217, 70221, - 70225, 70229, 70233, 70237, 70241, 70245, 70249, 70253, 70257, 70261, - 70265, 70269, 70273, 70277, 70281, 70285, 70289, 70293, 70297, 70301, - 70305, 70309, 70313, 70317, 70321, 70325, 70329, 70333, 70337, 70341, - 70345, 70349, 70353, 70357, 70361, 70365, 70368, 70372, 70376, 70380, - 70384, 70388, 70392, 70396, 70400, 70404, 70408, 70412, 70416, 70420, - 70424, 70428, 70432, 70436, 70440, 70444, 70448, 70452, 70456, 70460, - 70464, 70468, 70472, 70476, 70480, 70484, 70488, 70492, 70496, 70500, - 70504, 70508, 70512, 70516, 70520, 70524, 70528, 70532, 70536, 70540, - 70544, 70548, 70552, 70556, 70560, 70564, 70568, 70572, 70576, 70580, - 70584, 70588, 70592, 70596, 70600, 70604, 70608, 70612, 70616, 70620, - 70624, 70628, 70632, 70636, 70640, 70644, 70648, 70652, 70656, 70660, - 70664, 70668, 70672, 70676, 70680, 70684, 70688, 70692, 70696, 70700, - 70704, 70708, 70712, 70716, 70720, 70724, 70728, 70732, 70736, 70740, - 70744, 70748, 70752, 70756, 70760, 70764, 70768, 70772, 70776, 70780, - 70784, 70788, 70792, 70796, 70800, 70804, 70808, 70812, 70816, 70820, - 70824, 70828, 70831, 70835, 70839, 70843, 70847, 70851, 70855, 70859, - 70863, 70867, 70871, 70875, 70879, 70883, 70887, 70891, 70895, 70899, - 70903, 70907, 70911, 70915, 70919, 70923, 70927, 70931, 70935, 70939, - 70943, 70947, 70951, 70955, 70959, 70963, 70967, 70971, 70975, 70979, - 70983, 70987, 70991, 70995, 70999, 71003, 71007, 71011, 71015, 71019, - 71023, 71027, 71031, 71035, 71039, 71043, 71047, 71051, 71055, 71059, - 71063, 71067, 71071, 71075, 71079, 71083, 71087, 71091, 71095, 71099, - 71103, 71107, 71111, 71115, 71119, 71123, 71127, 71131, 71135, 71139, - 71143, 71147, 71151, 71155, 71159, 71163, 71167, 71171, 71175, 71179, - 71183, 71187, 71190, 71194, 71198, 71202, 71206, 71210, 71214, 71218, - 71222, 71226, 71230, 71234, 71238, 71242, 71246, 71250, 71254, 71258, - 71262, 71266, 71270, 71274, 71278, 71282, 71286, 71290, 71294, 71298, - 71302, 71306, 71310, 71314, 71318, 71322, 71326, 71330, 71334, 71338, - 71342, 71346, 71350, 71354, 71358, 71362, 71366, 71370, 71374, 71378, - 71382, 71386, 71390, 71394, 71398, 71402, 71406, 71410, 71414, 71418, - 71422, 71426, 71429, 71433, 71437, 71441, 71445, 71449, 71453, 71457, - 71461, 71465, 71469, 71473, 71477, 71481, 71485, 71489, 71493, 71497, - 71501, 71505, 71509, 71513, 71517, 71521, 71525, 71529, 71533, 71537, - 71541, 71545, 71549, 71553, 71557, 71561, 71565, 71569, 71573, 71577, - 71581, 71585, 71589, 71593, 71597, 71601, 71605, 71609, 71613, 71617, - 71621, 71625, 71629, 71633, 71637, 71641, 71645, 71649, 71653, 71657, - 71661, 71665, 71669, 71673, 71677, 71681, 71684, 71688, 71692, 71696, - 71700, 71704, 71708, 71712, 71716, 71720, 71724, 71728, 71732, 71736, - 71740, 71744, 71748, 71752, 71756, 71760, 71764, 71768, 71772, 71776, - 71780, 71784, 71788, 71792, 71796, 71800, 71804, 71808, 71812, 71816, - 71820, 71824, 71828, 71832, 71836, 71840, 71844, 71848, 71852, 71856, - 71860, 71864, 71868, 71872, 71876, 71880, 71884, 71888, 71892, 71896, - 71900, 71904, 71908, 71912, 71916, 71920, 71924, 71928, 71932, 71936, - 71940, 71944, 71948, 71952, 71956, 71960, 71964, 71968, 71972, 71976, - 71980, 71984, 71988, 71992, 71996, 72000, 72004, 72008, 72012, 72016, - 72020, 72024, 72028, 72032, 72036, 72040, 72044, 72048, 72052, 72056, - 72060, 72064, 72068, 72072, 72076, 72080, 72084, 72088, 72092, 72096, - 72100, 72104, 72108, 72112, 72116, 72120, 72124, 72128, 72132, 72136, - 72139, 72143, 72147, 72151, 72155, 72159, 72163, 72167, 72171, 72175, - 72179, 72183, 72187, 72191, 72195, 72199, 72203, 72207, 72211, 72215, - 72219, 72223, 72227, 72231, 72235, 72239, 72243, 72247, 72251, 72255, - 72259, 72263, 72267, 72271, 72275, 72279, 72283, 72287, 72291, 72295, - 72299, 72303, 72307, 72311, 72315, 72319, 72323, 72327, 72331, 72335, - 72339, 72343, 72347, 72351, 72355, 72359, 72363, 72367, 72371, 72375, - 72379, 72383, 72387, 72391, 72395, 72399, 72403, 72407, 72411, 72415, - 72419, 72423, 72427, 72431, 72435, 72439, 72443, 72447, 72451, 72455, - 72459, 72463, 72467, 72471, 72475, 72479, 72483, 72487, 72491, 72495, - 72499, 72503, 72507, 72511, 72515, 72519, 72523, 72527, 72531, 72535, - 72539, 72543, 72547, 72551, 72555, 72559, 72563, 72567, 72571, 72575, - 72579, 72583, 72587, 72591, 72595, 72599, 72603, 72607, 72611, 72615, - 72619, 72623, 72627, 72631, 72635, 72639, 72643, 72647, 72651, 72655, - 72659, 72663, 72667, 72671, 72675, 72679, 72683, 72687, 72691, 72695, - 72699, 72703, 72707, 72711, 72715, 72719, 72723, 72727, 72731, 72735, - 72739, 72742, 72746, 72750, 72754, 72758, 72762, 72766, 72770, 72773, - 72777, 72781, 72785, 72789, 72793, 72797, 72801, 72805, 72809, 72813, - 72817, 72821, 72825, 72829, 72833, 72837, 72841, 72845, 72849, 72853, - 72857, 72861, 72865, 72869, 72873, 72877, 72881, 72885, 72889, 72893, - 72897, 72901, 72905, 72909, 72913, 72917, 72921, 72925, 72929, 72933, - 72937, 72941, 72945, 72949, 72953, 72957, 72961, 72965, 72969, 72973, - 72977, 72981, 72985, 72989, 72993, 72997, 73001, 73005, 73009, 73013, - 73017, 73021, 73025, 73029, 73033, 73037, 73041, 73045, 73049, 73053, - 73057, 73061, 73065, 73069, 73073, 73077, 73081, 73085, 73089, 73093, - 73097, 73101, 73105, 73109, 73113, 73117, 73121, 73125, 73129, 73133, - 73137, 73141, 73145, 73149, 73153, 73157, 73161, 73165, 73169, 73173, - 73177, 73181, 73185, 73189, 73193, 73197, 73201, 73205, 73209, 73213, - 73217, 73221, 73225, 73229, 73233, 73237, 73241, 73245, 73249, 73253, - 73257, 73261, 73265, 73269, 73273, 73277, 73281, 73285, 73289, 73293, - 73297, 73301, 73305, 73309, 73313, 73317, 73321, 73325, 73329, 73333, - 73337, 73341, 73345, 73349, 73353, 73357, 73361, 73365, 73369, 73373, - 73377, 73381, 73385, 73389, 73393, 73397, 73401, 73405, 73409, 73413, - 73417, 73421, 73425, 73429, 73433, 73437, 73441, 73445, 73449, 73453, - 73457, 73461, 73465, 73469, 73473, 73477, 73481, 73485, 73489, 73493, - 73497, 73500, 73504, 73508, 73512, 73516, 73520, 73524, 73528, 73532, - 73536, 73540, 73544, 73548, 73552, 73556, 73560, 73564, 73568, 73572, - 73576, 73580, 73584, 73588, 73592, 73596, 73600, 73604, 73608, 73612, - 73616, 73620, 73624, 73628, 73632, 73636, 73640, 73644, 73648, 73652, - 73656, 73660, 73664, 73668, 73672, 73676, 73680, 73684, 73688, 73692, - 73696, 73700, 73704, 73708, 73712, 73716, 73720, 73724, 73728, 73732, - 73736, 73740, 73744, 73748, 73752, 73756, 73760, 73764, 73768, 73772, - 73776, 73780, 73784, 73788, 73792, 73796, 73800, 73804, 73808, 73812, - 73816, 73820, 73824, 73828, 73832, 73836, 73840, 73844, 73848, 73852, - 73856, 73860, 73864, 73868, 73872, 73876, 73880, 73884, 73888, 73892, - 73896, 73900, 73904, 73908, 73912, 73916, 73920, 73924, 73928, 73932, - 73936, 73940, 73944, 73948, 73952, 73956, 73960, 73964, 73968, 73972, - 73976, 73980, 73984, 73988, 73992, 73996, 74000, 74004, 74008, 74012, - 74016, 74020, 74024, 74028, 74032, 74036, 74040, 74044, 74048, 74052, - 74056, 74060, 74064, 74068, 74072, 74076, 74080, 74084, 74088, 74092, - 74096, 74100, 74104, 74108, 74112, 74116, 74120, 74124, 74128, 74132, - 74136, 74140, 74144, 74148, 74152, 74156, 74160, 74164, 74168, 74172, - 74176, 74180, 74184, 74188, 74192, 74196, 74200, 74204, 74208, 74212, - 74216, 74220, 74224, 74228, 74232, 74236, 74240, 74244, 74248, 74252, - 74256, 74260, 74264, 74268, 74272, 74276, 74280, 0, 0, 0, 74284, 74288, - 74292, 74296, 74300, 74304, 74308, 74312, 74316, 74320, 74324, 74328, - 74332, 74336, 74340, 74344, 74348, 74352, 74356, 74360, 74364, 74368, - 74372, 74376, 74380, 74384, 74388, 74392, 74396, 74400, 74404, 74408, - 74412, 74416, 74420, 74424, 74428, 74432, 74436, 74440, 74444, 74448, - 74452, 74456, 74460, 74464, 74468, 74472, 74476, 74480, 74484, 74488, - 74492, 74496, 74500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74504, 74509, 74513, - 74518, 74523, 74528, 74533, 74538, 74542, 74547, 74552, 74557, 74562, - 74567, 74572, 74577, 74581, 74585, 74589, 74593, 74598, 74603, 74608, - 74612, 74617, 74622, 74627, 74632, 74637, 74641, 74646, 74650, 74655, - 74659, 74664, 74668, 74672, 74676, 74681, 74686, 74691, 74699, 74707, - 74715, 74723, 74730, 74738, 74744, 74752, 74756, 74760, 74764, 74768, - 74772, 74776, 74780, 74784, 74788, 74792, 74796, 74800, 74804, 74808, - 74812, 74816, 74820, 74824, 74828, 74832, 74836, 74840, 74844, 74848, - 74852, 74856, 74860, 74864, 74868, 74872, 74876, 74880, 74884, 74888, - 74892, 74896, 74899, 74903, 74907, 74911, 74915, 74919, 74923, 74927, - 74931, 74935, 74939, 74943, 74947, 74951, 74955, 74959, 74963, 74967, - 74971, 74975, 74979, 74983, 74987, 74991, 74995, 74999, 75003, 75007, - 75011, 75015, 75019, 75023, 75027, 75031, 75035, 75039, 75043, 75046, - 75050, 75054, 75057, 75061, 75065, 75069, 75072, 75076, 75080, 75084, - 75088, 75092, 75096, 75100, 75104, 75108, 75112, 75116, 75120, 75124, - 75127, 75130, 75134, 75138, 75141, 75145, 75149, 75153, 75157, 75161, - 75165, 75168, 75171, 75175, 75179, 75183, 75186, 75189, 75193, 75197, - 75201, 75205, 75209, 75213, 75217, 75221, 75225, 75229, 75233, 75237, - 75241, 75245, 75249, 75253, 75257, 75261, 75265, 75269, 75273, 75277, - 75281, 75285, 75289, 75293, 75297, 75301, 75305, 75309, 75313, 75317, - 75321, 75325, 75329, 75333, 75337, 75340, 75344, 75348, 75352, 75356, - 75360, 75364, 75368, 75372, 75376, 75380, 75384, 75388, 75392, 75396, - 75400, 75404, 75408, 75412, 75416, 75420, 75424, 75428, 75432, 75436, - 75440, 75444, 75448, 75452, 75456, 75460, 75464, 75468, 75472, 75476, - 75480, 75484, 75487, 75491, 75495, 75499, 75503, 75507, 75511, 75515, - 75519, 75523, 75527, 75531, 75535, 75539, 75543, 75547, 75551, 75554, - 75558, 75562, 75566, 75570, 75574, 75578, 75582, 75586, 75590, 75594, - 75598, 75602, 75606, 75610, 75614, 75618, 75622, 75626, 75630, 75634, - 75638, 75641, 75645, 75649, 75653, 75657, 75661, 75665, 75669, 75673, - 75677, 75681, 75685, 75689, 75693, 75697, 75701, 75705, 75709, 75713, - 75717, 75721, 75725, 75729, 75733, 75737, 75741, 75745, 75749, 75753, - 75757, 75761, 75765, 75769, 75773, 75777, 75781, 75785, 75789, 75793, - 75797, 75801, 75805, 75809, 75813, 75816, 75821, 75825, 75831, 75836, - 75842, 75846, 75850, 75854, 75858, 75862, 75866, 75870, 75874, 75878, - 75882, 75886, 75890, 75894, 75898, 75901, 75904, 75907, 75910, 75913, - 75916, 75919, 75922, 75925, 75930, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 75936, 75941, 75946, 75951, 75956, 75963, 75970, - 75975, 75980, 75985, 75990, 75997, 76004, 76011, 76018, 76025, 76032, - 76042, 76052, 76059, 76066, 76073, 76080, 76086, 76092, 76101, 76110, - 76117, 76124, 76135, 76146, 76151, 76156, 76163, 76170, 76177, 76184, - 76191, 76198, 76205, 76212, 76218, 76224, 76230, 76236, 76243, 76250, - 76255, 76259, 76266, 76273, 76280, 76284, 76291, 76295, 76300, 76304, - 76310, 76315, 76321, 76326, 76330, 76334, 76337, 76340, 76345, 76350, - 76355, 76360, 76365, 76370, 76375, 76380, 76385, 76390, 76398, 76406, - 76411, 76416, 76421, 76426, 76431, 76436, 76441, 76446, 76451, 76456, - 76461, 76466, 76471, 76476, 76482, 76488, 76494, 76500, 76505, 76511, - 76514, 76517, 76520, 76524, 76528, 76532, 76536, 76539, 76543, 76546, - 76549, 76552, 76556, 76560, 76564, 76568, 76572, 76576, 76580, 76584, - 76588, 76592, 76596, 76600, 76604, 76608, 76612, 76616, 76620, 76624, - 76628, 76632, 76636, 76640, 76643, 76647, 76651, 76655, 76659, 76663, - 76667, 76671, 76675, 76679, 76683, 76687, 76691, 76695, 76699, 76703, - 76707, 76711, 76715, 76719, 76723, 76727, 76731, 76735, 76739, 76742, - 76746, 76750, 76754, 76758, 76762, 76766, 76770, 76773, 76777, 76781, - 76785, 76789, 76793, 76797, 76801, 76805, 76809, 76813, 76817, 76821, - 76826, 76831, 76834, 76839, 76842, 76845, 76848, 0, 0, 0, 0, 0, 0, 0, 0, - 76852, 76861, 76870, 76879, 76888, 76897, 76906, 76915, 76924, 76932, - 76939, 76947, 76954, 76962, 76972, 76981, 76991, 77000, 77010, 77018, - 77025, 77033, 77040, 77048, 77053, 77058, 77064, 77072, 77078, 77084, - 77091, 77100, 77108, 77116, 77124, 77131, 77138, 77145, 77152, 77157, - 77162, 77167, 77172, 77177, 77182, 77187, 77192, 77200, 77208, 77214, - 77220, 77225, 77230, 77235, 77240, 77245, 77250, 77255, 77260, 77269, - 77278, 77283, 77288, 77298, 77308, 77315, 77322, 77331, 77340, 77352, - 77364, 77370, 77376, 77384, 77392, 77402, 77412, 77419, 77426, 77431, - 77436, 77448, 77460, 77468, 77476, 77486, 77496, 77508, 77520, 77529, - 77538, 77545, 77552, 77559, 77566, 77575, 77584, 77589, 77594, 77601, - 77608, 77615, 77622, 77634, 77646, 77651, 77656, 77661, 77666, 77671, - 77676, 77681, 77686, 77690, 77695, 77700, 77705, 77710, 77715, 77721, - 77726, 77731, 77738, 77745, 77752, 77759, 77766, 77774, 77782, 77787, - 77792, 77798, 77804, 77811, 77818, 77825, 77832, 77839, 77843, 77850, - 77855, 77860, 77866, 77879, 77885, 77893, 77901, 77908, 77915, 77924, - 77933, 77940, 77947, 77954, 77961, 77968, 77975, 77982, 77989, 77996, - 78003, 78012, 78021, 78030, 78039, 78048, 78057, 78066, 78075, 78084, - 78093, 78100, 78108, 78114, 78122, 78128, 78134, 78140, 78146, 78154, - 78159, 78164, 78169, 78174, 78179, 78185, 78191, 78197, 78203, 78209, - 78215, 78221, 78227, 78234, 78241, 78248, 78255, 78264, 78271, 78280, - 78292, 78304, 78316, 0, 0, 0, 0, 0, 78328, 78337, 0, 78346, 0, 78352, - 78358, 78366, 78374, 78381, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 78388, 78393, 78398, 78403, 78411, 78419, - 78426, 78433, 78439, 78446, 78454, 78462, 78470, 78478, 78486, 78492, - 78498, 78505, 78511, 78517, 78523, 78530, 78537, 78544, 78551, 78558, - 78565, 78572, 78579, 78586, 78593, 78600, 78607, 78614, 78621, 78627, - 78634, 78641, 78648, 78655, 78662, 78669, 78676, 78683, 78690, 78697, - 78704, 78711, 78718, 78725, 78732, 78739, 78746, 78753, 78761, 78769, - 78777, 78785, 78793, 0, 0, 0, 78802, 78810, 78818, 78826, 78834, 78842, - 78850, 78856, 78862, 78868, 0, 0, 0, 0, 0, 0, 78874, 78878, 78883, 78888, - 78893, 78898, 78903, 78908, 78913, 78918, 78923, 78928, 78932, 78936, - 78941, 78946, 78950, 78955, 78960, 78965, 78970, 78975, 78980, 78985, - 78989, 78993, 78997, 79002, 79006, 79010, 79014, 79018, 79022, 79026, - 79030, 79035, 79040, 79045, 79050, 79055, 79062, 79068, 79073, 79078, - 79083, 79088, 79094, 79101, 79107, 79114, 79120, 79126, 79131, 79138, - 79144, 79149, 0, 0, 0, 0, 0, 0, 0, 0, 79155, 79160, 79165, 79169, 79174, - 79178, 79183, 79187, 79192, 79197, 79203, 79208, 79214, 79218, 79223, - 79228, 79232, 79237, 79242, 79246, 79251, 79256, 79261, 79266, 79271, - 79276, 79281, 79286, 79291, 79296, 79301, 79306, 79311, 79316, 79321, - 79326, 79331, 79336, 79340, 79344, 79349, 79354, 79359, 79363, 79367, - 79371, 79375, 79380, 79385, 79390, 79394, 79398, 79403, 79409, 79415, - 79420, 79426, 79431, 79437, 79443, 79450, 79456, 79463, 79468, 79474, - 79480, 79485, 79491, 79497, 79502, 0, 0, 0, 0, 0, 0, 0, 0, 79507, 79511, - 79516, 79521, 79525, 79529, 79533, 79537, 79541, 79545, 79549, 79553, 0, - 0, 0, 0, 0, 0, 79557, 79562, 79566, 79570, 79574, 79578, 79582, 79586, - 79590, 79594, 79598, 79602, 79606, 79610, 79614, 79618, 79622, 79627, - 79632, 79638, 79644, 79651, 79656, 79661, 79667, 79671, 79676, 79679, - 79682, 79686, 79691, 79695, 79700, 79707, 79713, 79719, 79725, 79731, - 79737, 79743, 79749, 79755, 79761, 79767, 79774, 79781, 79788, 79794, - 79801, 79808, 79815, 79822, 79829, 79835, 79841, 79848, 79854, 79861, - 79868, 79874, 79880, 79886, 79893, 79900, 79906, 79913, 79920, 79926, - 79933, 79939, 79946, 79953, 79959, 79965, 79972, 79978, 79985, 79992, - 80001, 80008, 80015, 80019, 80024, 80029, 80034, 80039, 80043, 80047, - 80052, 80056, 80061, 80066, 80071, 80075, 80079, 80083, 80087, 80092, - 80096, 80101, 80106, 80111, 80116, 80120, 80125, 80130, 80135, 80141, - 80146, 80152, 80158, 80164, 80170, 80176, 80181, 80187, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 80191, 80196, 80200, 80204, 80208, 80212, 80216, 80220, - 80224, 80228, 80232, 80236, 80240, 80244, 80248, 80252, 80256, 80260, - 80264, 80268, 80272, 80276, 80280, 80284, 80288, 80292, 80296, 80300, - 80304, 80308, 0, 0, 0, 80312, 80317, 80322, 80327, 80332, 80336, 80343, - 80347, 80352, 80356, 80363, 80370, 80379, 80383, 80388, 80392, 80396, - 80403, 80410, 80415, 80422, 80427, 80432, 80439, 80444, 80451, 80458, - 80463, 80468, 80475, 80480, 80487, 80494, 80499, 80506, 80511, 80518, - 80522, 80526, 80533, 80538, 80545, 80549, 80553, 80557, 80564, 80568, - 80573, 80580, 80587, 80591, 80595, 80602, 80608, 80614, 80620, 80628, - 80634, 80642, 80648, 80656, 80662, 80668, 80674, 80680, 80684, 80689, - 80694, 80700, 80706, 80712, 80718, 80724, 80730, 80736, 80742, 80750, - 80756, 0, 80763, 80767, 80772, 80776, 80780, 80784, 80788, 80792, 80796, - 80800, 80804, 0, 0, 0, 0, 80808, 80816, 80822, 80828, 80834, 80840, - 80846, 80852, 80858, 80865, 80872, 80879, 80886, 80893, 80900, 80907, - 80914, 80921, 80928, 80935, 80941, 80947, 80953, 80959, 80965, 80971, - 80977, 80983, 80989, 80996, 81003, 81010, 81017, 0, 81024, 81028, 81032, - 81036, 81040, 81045, 81049, 81053, 81058, 81063, 81068, 81073, 81078, - 81083, 81088, 81093, 81098, 81103, 81108, 81113, 81118, 81123, 81128, - 81133, 81138, 81142, 81147, 81151, 81156, 81161, 81166, 81171, 81176, - 81180, 81185, 81189, 81193, 81197, 81202, 81207, 81211, 81215, 81221, - 81226, 81232, 81238, 81243, 81249, 81254, 81260, 81266, 81272, 81277, - 81282, 81287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81293, 81299, 81305, 81311, - 81318, 81324, 81330, 81336, 81342, 81348, 81353, 81358, 81364, 81371, 0, - 0, 81378, 81383, 81387, 81391, 81395, 81399, 81403, 81407, 81411, 81415, - 0, 0, 81419, 81425, 81431, 81438, 81446, 81452, 81458, 81464, 81470, - 81476, 81482, 81488, 81494, 81500, 81506, 81512, 81517, 81522, 81527, - 81533, 81539, 81546, 81552, 81558, 81563, 81570, 81577, 81584, 81590, - 81595, 81600, 81605, 81613, 81620, 81627, 81635, 81643, 81650, 81657, - 81664, 81671, 81678, 81685, 81692, 81699, 81706, 81713, 81720, 81727, - 81734, 81741, 81748, 81755, 81762, 81769, 81776, 81783, 81789, 81795, - 81802, 81809, 81816, 81823, 81830, 81837, 81844, 81851, 81858, 81865, - 81872, 81879, 81886, 81893, 81900, 81907, 81914, 81921, 81928, 81935, - 81942, 81949, 81956, 81963, 81969, 81975, 81982, 81988, 81993, 81999, - 82004, 82009, 82014, 82021, 82027, 82033, 82039, 82045, 82051, 82057, - 82063, 82071, 82079, 82087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 82095, 82101, 82107, 82113, 82121, 82129, - 82135, 82141, 82148, 82155, 82162, 82169, 82176, 82183, 82190, 82197, - 82204, 82212, 82220, 82228, 82236, 82244, 82250, 82258, 82264, 82272, - 82281, 82289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82295, 82299, 82303, 82307, - 82311, 82315, 0, 0, 82319, 82323, 82327, 82331, 82335, 82339, 0, 0, - 82343, 82347, 82351, 82355, 82359, 82363, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 82367, 82371, 82375, 82379, 82383, 82387, 82391, 0, 82395, 82399, 82403, - 82407, 82411, 82415, 82419, 0, 82423, 82430, 82436, 82442, 82448, 82456, - 82463, 82472, 82484, 82494, 82503, 82511, 82519, 82527, 82533, 82541, - 82549, 82556, 82564, 82574, 82581, 82590, 82596, 82606, 82615, 82620, - 82628, 82637, 82642, 82651, 82658, 82668, 82680, 82685, 82691, 82698, - 82703, 82713, 82723, 82733, 82743, 82758, 82771, 82782, 82790, 82795, - 82807, 82816, 82823, 82830, 82836, 82843, 82848, 82855, 82861, 82872, - 82883, 82893, 82899, 82904, 0, 0, 0, 0, 82909, 82913, 82917, 82921, - 82925, 82929, 82934, 82939, 82943, 82948, 82953, 82958, 82963, 82968, - 82972, 82977, 82982, 82987, 82992, 82997, 83001, 83006, 83011, 83016, - 83021, 83026, 83030, 83035, 83040, 83045, 83050, 83054, 83059, 83064, - 83069, 83074, 83079, 83084, 83089, 83094, 83099, 83104, 83109, 83114, - 83119, 83123, 83128, 83133, 83138, 83143, 83148, 83153, 83158, 83163, - 83168, 83173, 83178, 83183, 83188, 83193, 83198, 83203, 83208, 83213, - 83218, 83223, 83228, 83233, 83238, 83243, 83248, 83253, 83258, 83263, - 83268, 83273, 83278, 83283, 83288, 83293, 83297, 83304, 83311, 83318, - 83325, 83331, 83337, 83344, 83351, 83358, 83365, 83372, 83379, 83386, - 83393, 83400, 83406, 83413, 83420, 83427, 83434, 83441, 83448, 83455, - 83462, 83469, 83476, 83483, 83492, 83501, 83510, 83519, 83528, 83537, - 83546, 83555, 83563, 83571, 83579, 83587, 83595, 83603, 83611, 83619, - 83625, 83633, 0, 0, 83641, 83648, 83654, 83660, 83666, 83672, 83678, - 83684, 83690, 83696, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 95159, 95166, 95173, 95180, 95187, 95194, 95201, 95208, 95215, + 95222, 95229, 95236, 95243, 95250, 95257, 95264, 95271, 95278, 95285, + 95292, 95300, 95308, 95315, 95322, 95327, 95335, 95343, 95350, 95357, + 95362, 95369, 95374, 95379, 95386, 95391, 95396, 95401, 95409, 95414, + 95419, 95426, 95431, 95436, 95443, 95450, 95455, 95460, 95465, 95470, + 95475, 95480, 95485, 95490, 95495, 95502, 95507, 95514, 95519, 95524, + 95529, 95534, 95539, 95544, 95549, 95554, 95559, 95564, 95569, 95576, + 95583, 95590, 95597, 95603, 95608, 95615, 95620, 95625, 95634, 95641, + 95650, 95657, 95662, 95667, 95675, 95680, 95685, 95690, 95695, 95700, + 95707, 95712, 95717, 95722, 95727, 95732, 95739, 95746, 95753, 95760, + 95767, 95774, 95781, 95788, 95795, 95802, 95809, 95816, 95823, 95830, + 95837, 95844, 95851, 95858, 95865, 95872, 95879, 95886, 95893, 95900, + 95907, 95914, 95921, 95928, 0, 0, 0, 0, 0, 95935, 95943, 95951, 0, 0, 0, + 0, 95956, 95960, 95964, 95968, 95972, 95976, 95980, 95984, 95988, 95992, + 95997, 96002, 96007, 96012, 96017, 96022, 96027, 96032, 96037, 96043, + 96049, 96055, 96062, 96069, 96076, 96083, 96090, 96097, 96102, 96107, + 96112, 96118, 96124, 96130, 96136, 96142, 96148, 96154, 96160, 96166, + 96172, 96178, 96184, 96190, 96196, 0, 0, 0, 96202, 96210, 96218, 96226, + 96234, 96242, 96252, 96262, 96270, 96278, 96286, 96294, 96302, 96308, + 96315, 96324, 96332, 96340, 96349, 96358, 96367, 96377, 96388, 96398, + 96409, 96418, 96427, 96436, 96446, 96457, 96467, 96478, 96489, 96498, + 96506, 96512, 96518, 96524, 96530, 96538, 96546, 96552, 96559, 96569, + 96576, 96583, 96590, 96597, 96604, 96614, 96621, 96628, 96636, 96644, + 96653, 96662, 96671, 96680, 96689, 96696, 96704, 96713, 96722, 96726, + 96733, 96738, 96743, 96747, 96751, 96755, 96759, 96764, 96769, 96775, + 96781, 96785, 96791, 96795, 96799, 96803, 96807, 96811, 96815, 96821, + 96825, 96830, 96834, 96838, 0, 96841, 96846, 96851, 96856, 96861, 96868, + 96873, 96878, 96883, 96888, 96893, 96898, 96903, 0, 0, 0, 96906, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83702, 83707, 83712, 83717, 83722, - 83727, 83732, 83737, 83742, 83747, 83752, 83757, 83762, 83767, 83772, - 83777, 83782, 83787, 83792, 83797, 83802, 83807, 83812, 0, 0, 0, 0, - 83817, 83821, 83825, 83829, 83833, 83837, 83841, 83845, 83849, 83853, - 83857, 83861, 83865, 83869, 83873, 83877, 83881, 83885, 83889, 83893, - 83897, 83901, 83905, 83909, 83913, 83917, 83921, 83925, 83929, 83933, - 83937, 83941, 83945, 83949, 83953, 83957, 83961, 83965, 83969, 83973, - 83977, 83981, 83985, 83989, 83993, 83997, 84001, 84005, 84009, 0, 0, 0, - 0, 84013, 84017, 84021, 84025, 84029, 84033, 84037, 84041, 84045, 84049, - 84053, 84057, 84061, 84065, 84069, 84073, 84077, 84081, 84085, 84089, - 84093, 84097, 84101, 84105, 84109, 84113, 84117, 84121, 84125, 84129, - 84133, 84137, 84141, 84145, 84149, 84153, 84157, 84161, 84165, 84169, - 84173, 84177, 84181, 84185, 84189, 84193, 84197, 84201, 84205, 84209, - 84213, 84217, 84221, 84225, 84229, 84233, 84237, 84241, 84245, 84249, - 84253, 84257, 84261, 84265, 84269, 84273, 84277, 84281, 84285, 84289, - 84293, 84297, 84301, 84305, 84309, 84313, 84317, 84321, 84325, 84329, - 84333, 84337, 84341, 84345, 84349, 84353, 84357, 84361, 84365, 84369, - 84373, 84377, 84381, 84385, 84389, 84393, 84397, 84401, 84405, 84409, - 84413, 84417, 84421, 84425, 84429, 84433, 84437, 84441, 84445, 84449, - 84453, 84457, 84461, 84465, 84469, 84473, 84477, 84481, 84485, 84489, - 84493, 84497, 84501, 84505, 84509, 84513, 84517, 84521, 84525, 84529, - 84533, 84537, 84541, 84545, 84549, 84553, 84557, 84561, 84565, 84569, - 84573, 84577, 84581, 84585, 84589, 84593, 84597, 84601, 84605, 84609, - 84613, 84617, 84621, 84625, 84629, 84633, 84637, 84641, 84645, 84649, - 84653, 84657, 84661, 84665, 84669, 84673, 84677, 84681, 84685, 84689, - 84693, 84697, 84701, 84705, 84709, 84713, 84717, 84721, 84725, 84729, - 84733, 84737, 84741, 84745, 84749, 84753, 84757, 84761, 84765, 84769, - 84773, 84777, 84781, 84785, 84789, 84793, 84797, 84801, 84805, 84809, - 84813, 84817, 84821, 84825, 84829, 84833, 84837, 84841, 84845, 84849, - 84853, 84857, 84861, 84865, 84869, 84873, 84877, 84881, 84885, 84889, - 84893, 84897, 84901, 84905, 84909, 84913, 84917, 84921, 84925, 84929, - 84933, 84937, 84941, 84945, 84949, 84953, 84957, 84961, 84965, 84969, - 84973, 84977, 84981, 84985, 84989, 84993, 84997, 85001, 85005, 85009, - 85013, 85017, 85021, 85025, 85029, 85033, 85037, 85041, 85045, 85049, - 85053, 85057, 85061, 85065, 85069, 85073, 85077, 85081, 85085, 85089, - 85093, 85097, 85101, 85105, 85109, 85113, 85117, 85121, 85125, 85129, - 85133, 85137, 85141, 85145, 85149, 85153, 85157, 85161, 85165, 85169, - 85173, 85177, 85181, 85185, 85189, 85193, 85197, 85201, 85205, 85209, - 85213, 85217, 85221, 85225, 85229, 85233, 85237, 85241, 85245, 85249, - 85253, 85257, 85261, 85265, 85269, 85273, 85277, 85281, 85285, 85289, - 85293, 85297, 85301, 85305, 85309, 85313, 85317, 85321, 85325, 85329, - 85333, 85337, 85341, 85345, 85349, 85353, 85357, 85361, 85365, 85369, - 85373, 85377, 85381, 85385, 85389, 85393, 85397, 85401, 85405, 85409, - 85413, 85417, 85421, 85425, 85429, 85433, 85437, 85441, 85445, 85449, - 85453, 85457, 85461, 85465, 85469, 85473, 0, 0, 85477, 85481, 85485, - 85489, 85493, 85497, 85501, 85505, 85509, 85513, 85517, 85521, 85525, - 85529, 85533, 85537, 85541, 85545, 85549, 85553, 85557, 85561, 85565, - 85569, 85573, 85577, 85581, 85585, 85589, 85593, 85597, 85601, 85605, - 85609, 85613, 85617, 85621, 85625, 85629, 85633, 85637, 85641, 85645, - 85649, 85653, 85657, 85661, 85665, 85669, 85673, 85677, 85681, 85685, - 85689, 85693, 85697, 85701, 85705, 85709, 85713, 85717, 85721, 85725, - 85729, 85733, 85737, 85741, 85745, 85749, 85753, 85757, 85761, 85765, - 85769, 85773, 85777, 85781, 85785, 85789, 85793, 85797, 85801, 85805, - 85809, 85813, 85817, 85821, 85825, 85829, 85833, 85837, 85841, 85845, - 85849, 85853, 85857, 85861, 85865, 85869, 85873, 85877, 85881, 85885, - 85889, 85893, 85897, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85901, - 85906, 85911, 85916, 85921, 85926, 85934, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 85939, 85947, 85955, 85963, 85971, 0, 0, 0, 0, 0, 85979, 85986, - 85993, 86003, 86009, 86015, 86021, 86027, 86033, 86039, 86046, 86052, - 86058, 86064, 86073, 86082, 86094, 86106, 86112, 86118, 86124, 86131, - 86138, 86145, 86152, 86159, 0, 86166, 86173, 86180, 86188, 86195, 0, - 86202, 0, 86209, 86216, 0, 86223, 86231, 0, 86238, 86245, 86252, 86259, - 86266, 86273, 86280, 86287, 86294, 86301, 86306, 86313, 86320, 86326, - 86332, 86338, 86345, 86351, 86357, 86363, 86370, 86376, 86382, 86388, - 86395, 86401, 86407, 86413, 86420, 86426, 86432, 86438, 86445, 86451, - 86457, 86463, 86470, 86476, 86482, 86488, 86495, 86501, 86507, 86513, - 86520, 86526, 86532, 86538, 86545, 86551, 86557, 86563, 86570, 86576, - 86582, 86588, 86595, 86601, 86607, 86613, 86620, 86626, 86632, 86638, - 86644, 86650, 86656, 86662, 86668, 86674, 86680, 86686, 86692, 86698, - 86704, 86710, 86717, 86723, 86729, 86735, 86742, 86748, 86754, 86760, - 86767, 86773, 86779, 86785, 86792, 86800, 86808, 86814, 86820, 86826, - 86833, 86842, 86851, 86859, 86867, 86875, 86884, 86892, 86900, 86908, - 86917, 86924, 86931, 86942, 86953, 86957, 86961, 86966, 86971, 86976, - 86981, 86990, 86999, 87005, 87011, 87018, 87025, 87032, 87036, 87042, - 87048, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87053, 87059, - 87065, 87071, 87078, 87083, 87088, 87094, 87100, 87106, 87112, 87121, - 87127, 87133, 87141, 87149, 87157, 87165, 87171, 87177, 87183, 87190, - 87203, 87217, 87228, 87239, 87251, 87263, 87275, 87287, 87298, 87309, - 87321, 87333, 87345, 87357, 87369, 87381, 87393, 87410, 87427, 87444, - 87451, 87458, 87465, 87473, 87485, 87496, 87507, 87520, 87531, 87540, - 87548, 87557, 87565, 87575, 87583, 87592, 87600, 87609, 87617, 87627, - 87635, 87644, 87652, 87662, 87670, 87678, 87686, 87694, 87701, 87710, - 87718, 87726, 87735, 87743, 87752, 87760, 87768, 87776, 87785, 87793, - 87802, 87810, 87818, 87826, 87834, 87843, 87851, 87860, 87868, 87877, - 87885, 87894, 87902, 87912, 87920, 87928, 87936, 87946, 87954, 87962, - 87971, 87979, 87988, 87997, 88005, 88015, 88023, 88032, 88040, 88049, - 88057, 88067, 88075, 88083, 88090, 88098, 88105, 88114, 88121, 88130, - 88138, 88147, 88155, 88165, 88173, 88182, 88190, 88200, 88208, 88216, - 88223, 88231, 88238, 88247, 88254, 88264, 88274, 88285, 88294, 88303, - 88312, 88321, 88330, 88340, 88352, 88364, 88375, 88387, 88400, 88411, - 88420, 88429, 88437, 88446, 88456, 88464, 88473, 88482, 88490, 88499, - 88509, 88517, 88526, 88535, 88543, 88552, 88562, 88570, 88580, 88588, - 88598, 88606, 88614, 88623, 88631, 88641, 88649, 88657, 88667, 88675, - 88682, 88689, 88698, 88707, 88715, 88724, 88734, 88742, 88753, 88761, - 88769, 88776, 88784, 88793, 88800, 88812, 88823, 88835, 88846, 88858, - 88867, 88875, 88884, 88892, 88901, 88910, 88918, 88927, 88935, 88944, - 88952, 88960, 88968, 88976, 88983, 88992, 89000, 89009, 89017, 89026, - 89034, 89042, 89051, 89059, 89068, 89076, 89085, 89093, 89101, 89109, - 89118, 89126, 89135, 89143, 89152, 89160, 89169, 89177, 89185, 89193, - 89202, 89210, 89219, 89228, 89236, 89245, 89253, 89262, 89270, 89279, - 89287, 89294, 89302, 89309, 89318, 89326, 89335, 89343, 89352, 89361, - 89369, 89379, 89387, 89394, 89402, 89409, 89417, 89429, 89442, 89451, - 89461, 89470, 89480, 89489, 89499, 89508, 89518, 89527, 89537, 89547, - 89556, 89565, 89574, 89584, 89592, 89601, 89611, 89621, 89631, 89641, - 89649, 89659, 89667, 89677, 89685, 89695, 89703, 89713, 89721, 89730, - 89737, 89747, 89755, 89765, 89773, 89783, 89791, 89801, 89809, 89818, - 89826, 89835, 89843, 89852, 89861, 89870, 89879, 89889, 89897, 89907, - 89915, 89925, 89933, 89943, 89951, 89961, 89969, 89978, 89985, 89995, - 90003, 90013, 90021, 90031, 90039, 90049, 90057, 90066, 90074, 90083, - 90091, 90100, 90109, 90118, 90127, 90136, 90144, 90153, 90161, 90170, - 90179, 90187, 90197, 90206, 90216, 90226, 90235, 90245, 90254, 90263, - 90271, 90279, 90284, 90289, 90295, 90303, 90311, 90319, 90327, 90335, - 90343, 90349, 90355, 90361, 90369, 90375, 90385, 90391, 90397, 90403, - 90414, 90425, 90436, 90446, 90457, 90468, 90478, 90489, 90499, 90509, - 90518, 90529, 90540, 90551, 90564, 90574, 90584, 90595, 90605, 90615, - 90625, 90635, 90645, 90655, 90665, 90676, 90687, 90698, 90708, 90718, - 90730, 90741, 90752, 90762, 90772, 90782, 90792, 90803, 90813, 90823, - 90835, 90845, 90855, 90867, 90878, 90889, 90899, 90909, 90919, 90929, - 90941, 90953, 90965, 90976, 90987, 90997, 91007, 91017, 91026, 91035, - 91045, 91055, 91066, 0, 0, 91076, 91087, 91098, 91108, 91118, 91130, - 91141, 91152, 91165, 91175, 91187, 91196, 91205, 91216, 91227, 91240, - 91251, 91264, 91274, 91286, 91296, 91308, 91320, 91333, 91343, 91353, - 91363, 91374, 91384, 91393, 91403, 91412, 91421, 91431, 91441, 91451, - 91461, 91471, 91481, 91492, 91502, 91513, 91523, 91534, 91545, 91555, - 91565, 91575, 91585, 91595, 91605, 91616, 91626, 91637, 0, 0, 0, 0, 0, 0, - 0, 91648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91654, 91669, 91684, 91690, 91696, - 91702, 91708, 91714, 91720, 91726, 91732, 91740, 91744, 91747, 91755, - 91763, 91771, 91774, 91777, 91780, 91783, 91786, 91789, 91792, 91795, - 91798, 91801, 91804, 91807, 91810, 91813, 91816, 91819, 91827, 91836, - 91847, 91855, 91863, 91872, 91881, 91893, 91905, 0, 0, 0, 0, 0, 0, 91915, - 91920, 91925, 91932, 91939, 91945, 91951, 91956, 91961, 91966, 91972, - 91978, 91984, 91990, 91996, 92003, 92010, 92020, 92030, 92040, 92049, - 92060, 92069, 92078, 92089, 92100, 92113, 92126, 92138, 92150, 92162, - 92174, 92185, 92196, 92207, 92218, 92230, 92242, 92246, 92251, 92261, - 92271, 92275, 92279, 92283, 92288, 92293, 92298, 92303, 92306, 92310, 0, - 92315, 92318, 92321, 92325, 92329, 92334, 92338, 92342, 92348, 92354, - 92362, 92370, 92373, 92376, 92379, 92382, 92385, 92389, 92393, 0, 92397, - 92402, 92406, 92410, 0, 0, 0, 0, 92415, 92420, 92427, 92432, 92437, 0, - 92442, 92447, 92453, 92458, 92464, 92469, 92475, 92480, 92486, 92491, - 92497, 92503, 92512, 92521, 92530, 92539, 92549, 92559, 92569, 92579, - 92588, 92597, 92606, 92616, 92621, 92626, 92632, 92638, 92644, 92651, - 92659, 92667, 92673, 92679, 92685, 92692, 92698, 92704, 92710, 92717, - 92723, 92729, 92735, 92742, 92747, 92752, 92757, 92763, 92769, 92775, - 92781, 92788, 92794, 92800, 92806, 92812, 92818, 92824, 92830, 92836, - 92842, 92848, 92854, 92861, 92867, 92873, 92879, 92886, 92892, 92898, - 92904, 92911, 92917, 92923, 92929, 92936, 92942, 92948, 92954, 92961, - 92967, 92973, 92979, 92986, 92992, 92998, 93004, 93011, 93017, 93023, - 93029, 93036, 93042, 93048, 93054, 93061, 93067, 93073, 93079, 93086, - 93092, 93098, 93104, 93111, 93117, 93123, 93129, 93136, 93141, 93146, - 93151, 93157, 93163, 93169, 93175, 93182, 93188, 93194, 93200, 93207, - 93213, 93219, 93226, 93233, 93238, 93243, 93248, 93254, 93266, 93278, - 93290, 93302, 93315, 93328, 93336, 0, 0, 93344, 0, 93352, 93357, 93362, - 93366, 93371, 93376, 93380, 93384, 93389, 93394, 93398, 93402, 93406, - 93410, 93416, 93420, 93425, 93429, 93433, 93437, 93441, 93445, 93449, - 93453, 93457, 93461, 93465, 93469, 93474, 93479, 93484, 93489, 93495, - 93501, 93508, 93515, 93522, 93528, 93535, 93542, 93549, 93555, 93562, - 93569, 93575, 93582, 93589, 93595, 93602, 93609, 93615, 93622, 93629, - 93635, 93642, 93649, 93656, 93663, 93670, 93676, 93682, 93688, 93694, - 93699, 93705, 93711, 93718, 93725, 93732, 93738, 93745, 93752, 93759, - 93765, 93772, 93779, 93785, 93792, 93799, 93805, 93812, 93819, 93825, - 93832, 93839, 93845, 93852, 93859, 93866, 93873, 93880, 93887, 93892, - 93899, 93903, 93909, 93915, 93921, 93927, 93933, 93937, 93942, 93947, - 93952, 93957, 93962, 93967, 93972, 93977, 93983, 93989, 93995, 94003, - 94007, 94011, 94015, 94019, 94023, 94027, 94032, 94037, 94042, 94047, - 94051, 94056, 94061, 94066, 94071, 94076, 94081, 94086, 94091, 94095, - 94099, 94104, 94109, 94114, 94119, 94123, 94128, 94133, 94138, 94143, - 94147, 94152, 94157, 94162, 94167, 94171, 94176, 94181, 94185, 94190, - 94195, 94200, 94205, 94210, 94215, 94222, 94229, 94233, 94238, 94243, - 94248, 94253, 94258, 94263, 94268, 94273, 94278, 94283, 94288, 94293, - 94298, 94303, 94308, 94313, 94318, 94323, 94328, 94333, 94338, 94343, - 94348, 94353, 94358, 94363, 94368, 94373, 94378, 0, 0, 0, 94383, 94387, - 94392, 94396, 94401, 94406, 0, 0, 94410, 94415, 94420, 94424, 94429, - 94434, 0, 0, 94439, 94444, 94448, 94453, 94458, 94463, 0, 0, 94468, - 94473, 94478, 0, 0, 0, 94482, 94487, 94492, 94497, 94501, 94506, 94511, - 0, 94516, 94522, 94525, 94529, 94532, 94536, 94540, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 94544, 94550, 94556, 94562, 94568, 0, 0, 94572, 94578, 94584, - 94590, 94596, 94602, 94609, 94616, 94623, 94630, 94637, 94644, 0, 94651, - 94658, 94665, 94671, 94678, 94685, 94692, 94699, 94705, 94712, 94719, - 94726, 94733, 94739, 94746, 94753, 94760, 94767, 94773, 94780, 94787, - 94794, 94801, 94808, 94815, 94822, 0, 94829, 94835, 94842, 94849, 94856, - 94863, 94869, 94876, 94883, 94890, 94897, 94904, 94911, 94918, 94924, - 94931, 94938, 94945, 94952, 0, 94959, 94966, 0, 94973, 94980, 94987, - 94994, 95001, 95008, 95015, 95022, 95029, 95036, 95043, 95050, 95057, - 95064, 95071, 0, 0, 95077, 95082, 95087, 95092, 95097, 95102, 95107, - 95112, 95117, 95122, 95127, 95132, 95137, 95142, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96912, 96919, + 96928, 96937, 96944, 96951, 96958, 96965, 96972, 96979, 96985, 96992, + 96999, 97006, 97013, 97020, 97027, 97034, 97041, 97050, 97057, 97064, + 97071, 97078, 97085, 97092, 97099, 97106, 97115, 97122, 97129, 97136, + 97143, 97150, 97157, 97166, 97173, 97180, 97187, 97194, 97203, 97210, + 97217, 97224, 97232, 97241, 0, 0, 97250, 97254, 97258, 97263, 97268, + 97273, 97278, 97282, 97287, 97292, 97297, 97302, 97307, 97312, 97316, + 97321, 97326, 97331, 97336, 97340, 97345, 97350, 97354, 97359, 97364, + 97369, 97374, 97379, 97384, 0, 0, 0, 97389, 97393, 97398, 97403, 97407, + 97412, 97416, 97421, 97426, 97431, 97436, 97441, 97445, 97450, 97455, + 97460, 97465, 97470, 97475, 97479, 97484, 97489, 97494, 97499, 97504, + 97509, 97513, 97517, 97522, 97527, 97532, 97537, 97542, 97547, 97552, + 97557, 97562, 97567, 97572, 97577, 97582, 97587, 97592, 97597, 97602, + 97607, 97612, 97617, 97622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 97627, 97633, 97638, 97643, 97648, 97653, 97658, 97663, 97668, 97673, + 97678, 97684, 97690, 97696, 97702, 97708, 97714, 97720, 97726, 97732, + 97739, 97746, 97753, 97761, 97769, 97777, 97785, 97793, 0, 0, 0, 0, + 97801, 97805, 97810, 97815, 97820, 97824, 97829, 97834, 97839, 97844, + 97848, 97852, 97857, 97862, 97867, 97872, 97876, 97881, 97886, 97891, + 97896, 97901, 97906, 97910, 97915, 97920, 97925, 97930, 97935, 97940, + 97945, 97950, 97955, 97960, 97965, 97971, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 97977, 97982, 97989, 97996, 98001, 98006, 98011, 98016, 98021, 98026, + 98031, 98036, 98041, 98046, 98051, 98056, 98061, 98066, 98071, 98076, + 98081, 98086, 98091, 98096, 98101, 98106, 98111, 98116, 98121, 98126, 0, + 0, 0, 0, 0, 98133, 98139, 98145, 98151, 98157, 98162, 98168, 98174, + 98180, 98186, 98191, 98197, 98203, 98209, 98215, 98221, 98227, 98233, + 98239, 98245, 98250, 98256, 98262, 98268, 98274, 98280, 98285, 98291, + 98297, 98302, 98308, 98314, 98320, 98326, 98332, 98338, 98344, 98349, + 98355, 98362, 98369, 98376, 98383, 0, 0, 0, 0, 0, 98390, 98395, 98400, + 98405, 98410, 98415, 98420, 98425, 98430, 98435, 98440, 98445, 98450, + 98455, 98460, 98465, 98470, 98475, 98480, 98485, 98490, 98495, 98500, + 98505, 98510, 98515, 98520, 98524, 98528, 98532, 0, 98537, 98543, 98548, + 98553, 98558, 98563, 98569, 98575, 98581, 98587, 98593, 98599, 98605, + 98611, 98617, 98623, 98629, 98635, 98641, 98646, 98652, 98658, 98663, + 98669, 98674, 98680, 98686, 98691, 98697, 98703, 98708, 98714, 98719, + 98724, 98730, 98736, 98742, 0, 0, 0, 0, 98747, 98753, 98759, 98765, + 98771, 98777, 98783, 98789, 98795, 98802, 98807, 98812, 98818, 98824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 95147, 95154, 95161, 95168, 95175, 95182, 95189, 95196, 95203, - 95210, 95217, 95224, 95231, 95238, 95245, 95252, 95259, 95266, 95273, - 95280, 95288, 95296, 95303, 95310, 95315, 95323, 95331, 95338, 95345, - 95350, 95357, 95362, 95367, 95374, 95379, 95384, 95389, 95397, 95402, - 95407, 95414, 95419, 95424, 95431, 95438, 95443, 95448, 95453, 95458, - 95463, 95468, 95473, 95478, 95483, 95490, 95495, 95502, 95507, 95512, - 95517, 95522, 95527, 95532, 95537, 95542, 95547, 95552, 95557, 95564, - 95571, 95578, 95585, 95591, 95596, 95603, 95608, 95613, 95622, 95629, - 95638, 95645, 95650, 95655, 95663, 95668, 95673, 95678, 95683, 95688, - 95695, 95700, 95705, 95710, 95715, 95720, 95727, 95734, 95741, 95748, - 95755, 95762, 95769, 95776, 95783, 95790, 95797, 95804, 95811, 95818, - 95825, 95832, 95839, 95846, 95853, 95860, 95867, 95874, 95881, 95888, - 95895, 95902, 95909, 95916, 0, 0, 0, 0, 0, 95923, 95931, 95939, 0, 0, 0, - 0, 95944, 95948, 95952, 95956, 95960, 95964, 95968, 95972, 95976, 95980, - 95985, 95990, 95995, 96000, 96005, 96010, 96015, 96020, 96025, 96031, - 96037, 96043, 96050, 96057, 96064, 96071, 96078, 96085, 96090, 96095, - 96100, 96106, 96112, 96118, 96124, 96130, 96136, 96142, 96148, 96154, - 96160, 96166, 96172, 96178, 96184, 0, 0, 0, 96190, 96198, 96206, 96214, - 96222, 96230, 96240, 96250, 96258, 96266, 96274, 96282, 96290, 96296, - 96303, 96312, 96320, 96328, 96337, 96346, 96355, 96365, 96376, 96386, - 96397, 96406, 96415, 96424, 96434, 96445, 96455, 96466, 96477, 96486, - 96494, 96500, 96506, 96512, 96518, 96526, 96534, 96540, 96547, 96557, - 96564, 96571, 96578, 96585, 96592, 96602, 96609, 96616, 96624, 96632, - 96641, 96650, 96659, 96668, 96677, 96684, 96692, 96701, 96710, 96714, - 96721, 96726, 96731, 96735, 96739, 96743, 96747, 96752, 96757, 96763, - 96769, 96773, 96779, 96783, 96787, 96791, 96795, 96799, 96803, 96809, - 96813, 96818, 96822, 96826, 0, 96829, 96834, 96839, 96844, 96849, 96856, - 96861, 96866, 96871, 96876, 96881, 96886, 96891, 0, 0, 0, 96894, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98830, 98836, 98842, + 98848, 98855, 98861, 98868, 98875, 98882, 98889, 98897, 98904, 98912, + 98918, 98924, 98930, 98936, 98942, 98948, 98954, 98960, 98966, 98972, + 98978, 98984, 98990, 98996, 99002, 99008, 99014, 99020, 99026, 99032, + 99038, 99044, 99050, 99056, 99062, 99068, 99074, 99080, 99086, 99092, + 99098, 99105, 99111, 99118, 99125, 99132, 99139, 99147, 99154, 99162, + 99168, 99174, 99180, 99186, 99192, 99198, 99204, 99210, 99216, 99222, + 99228, 99234, 99240, 99246, 99252, 99258, 99264, 99270, 99276, 99282, + 99288, 99294, 99300, 99306, 99312, 99318, 99324, 99330, 99335, 99340, + 99345, 99350, 99355, 99360, 99365, 99370, 99375, 99380, 99385, 99390, + 99395, 99400, 99405, 99410, 99415, 99420, 99425, 99430, 99435, 99440, + 99445, 99450, 99455, 99460, 99465, 99470, 99475, 99480, 99485, 99490, + 99495, 99500, 99505, 99510, 99515, 99520, 99525, 99530, 99535, 99540, + 99545, 99550, 99555, 99560, 99565, 99570, 99575, 99580, 99585, 99590, + 99595, 99600, 99605, 99609, 99613, 99618, 99623, 99628, 99633, 99638, + 99643, 99648, 99653, 99658, 99663, 99668, 99672, 99676, 99680, 99684, + 99688, 99692, 99696, 99701, 99706, 0, 0, 99711, 99716, 99720, 99724, + 99728, 99732, 99736, 99740, 99744, 99748, 0, 0, 0, 0, 0, 0, 99752, 99757, + 99763, 99769, 99775, 99781, 99787, 99793, 99798, 99804, 99809, 99815, + 99820, 99825, 99831, 99837, 99842, 99847, 99852, 99857, 99863, 99868, + 99874, 99879, 99885, 99891, 99897, 99903, 99909, 99915, 99921, 99926, + 99932, 99938, 99944, 99950, 0, 0, 0, 0, 99956, 99961, 99967, 99973, + 99979, 99985, 99991, 99997, 100002, 100008, 100013, 100019, 100024, + 100029, 100035, 100041, 100046, 100051, 100056, 100061, 100067, 100072, + 100078, 100083, 100089, 100095, 100101, 100107, 100113, 100119, 100125, + 100130, 100136, 100142, 100148, 100154, 0, 0, 0, 0, 100160, 100164, + 100169, 100174, 100179, 100184, 100189, 100194, 100199, 100203, 100208, + 100213, 100218, 100223, 100227, 100232, 100237, 100242, 100247, 100252, + 100257, 100261, 100266, 100270, 100275, 100280, 100285, 100290, 100295, + 100300, 100305, 100310, 100314, 100319, 100324, 100329, 100334, 100339, + 100344, 100349, 0, 0, 0, 0, 0, 0, 0, 0, 100354, 100361, 100368, 100375, + 100382, 100389, 100396, 100403, 100410, 100417, 100424, 100431, 100438, + 100445, 100452, 100459, 100466, 100473, 100480, 100487, 100494, 100501, + 100508, 100515, 100522, 100529, 100536, 100543, 100550, 100557, 100564, + 100571, 100578, 100585, 100592, 100599, 100606, 100613, 100620, 100627, + 100634, 100641, 100648, 100655, 100662, 100669, 100676, 100683, 100690, + 100697, 100704, 100711, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100718, 100725, + 100730, 100736, 100742, 100748, 100754, 100760, 100766, 100772, 100777, + 100783, 0, 100789, 100794, 100800, 100805, 100811, 100817, 100822, + 100827, 100833, 100839, 100845, 100851, 100856, 100862, 100868, 0, + 100874, 100880, 100886, 100892, 100898, 100903, 100909, 0, 100915, + 100921, 0, 100927, 100932, 100938, 100944, 100950, 100956, 100962, + 100968, 100974, 100979, 100985, 0, 100991, 100996, 101002, 101007, + 101013, 101019, 101024, 101029, 101035, 101041, 101047, 101053, 101058, + 101064, 101070, 0, 101076, 101082, 101088, 101094, 101100, 101105, + 101111, 0, 101117, 101123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96900, 96907, - 96916, 96925, 96932, 96939, 96946, 96953, 96960, 96967, 96973, 96980, - 96987, 96994, 97001, 97008, 97015, 97022, 97029, 97038, 97045, 97052, - 97059, 97066, 97073, 97080, 97087, 97094, 97103, 97110, 97117, 97124, - 97131, 97138, 97145, 97154, 97161, 97168, 97175, 97182, 97191, 97198, - 97205, 97212, 97220, 97229, 0, 0, 97238, 97242, 97246, 97251, 97256, - 97261, 97266, 97270, 97275, 97280, 97285, 97290, 97295, 97300, 97304, - 97309, 97314, 97319, 97324, 97328, 97333, 97338, 97342, 97347, 97352, - 97357, 97362, 97367, 97372, 0, 0, 0, 97377, 97381, 97386, 97391, 97395, - 97400, 97404, 97409, 97414, 97419, 97424, 97429, 97433, 97438, 97443, - 97448, 97453, 97458, 97463, 97467, 97472, 97477, 97482, 97487, 97492, - 97497, 97501, 97505, 97510, 97515, 97520, 97525, 97530, 97535, 97540, - 97545, 97550, 97555, 97560, 97565, 97570, 97575, 97580, 97585, 97590, - 97595, 97600, 97605, 97610, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 97615, 97621, 97626, 97631, 97636, 97641, 97646, 97651, 97656, 97661, - 97666, 97672, 97678, 97684, 97690, 97696, 97702, 97708, 97714, 97720, - 97727, 97734, 97741, 97749, 97757, 97765, 97773, 97781, 0, 0, 0, 0, - 97789, 97793, 97798, 97803, 97808, 97812, 97817, 97822, 97827, 97832, - 97836, 97840, 97845, 97850, 97855, 97860, 97864, 97869, 97874, 97879, - 97884, 97889, 97894, 97898, 97903, 97908, 97913, 97918, 97923, 97928, - 97933, 97938, 97943, 97948, 97953, 97959, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 97965, 97970, 97977, 97984, 97989, 97994, 97999, 98004, 98009, 98014, - 98019, 98024, 98029, 98034, 98039, 98044, 98049, 98054, 98059, 98064, - 98069, 98074, 98079, 98084, 98089, 98094, 98099, 98104, 98109, 98114, 0, - 0, 0, 0, 0, 98121, 98127, 98133, 98139, 98145, 98150, 98156, 98162, - 98168, 98174, 98179, 98185, 98191, 98197, 98203, 98209, 98215, 98221, - 98227, 98233, 98238, 98244, 98250, 98256, 98262, 98268, 98273, 98279, - 98285, 98290, 98296, 98302, 98308, 98314, 98320, 98326, 98332, 98337, - 98343, 98350, 98357, 98364, 98371, 0, 0, 0, 0, 0, 98378, 98383, 98388, - 98393, 98398, 98403, 98408, 98413, 98418, 98423, 98428, 98433, 98438, - 98443, 98448, 98453, 98458, 98463, 98468, 98473, 98478, 98483, 98488, - 98493, 98498, 98503, 98508, 98512, 98516, 98520, 0, 98525, 98531, 98536, - 98541, 98546, 98551, 98557, 98563, 98569, 98575, 98581, 98587, 98593, - 98599, 98605, 98611, 98617, 98623, 98629, 98634, 98640, 98646, 98651, - 98657, 98662, 98668, 98674, 98679, 98685, 98691, 98696, 98702, 98707, - 98712, 98718, 98724, 98730, 0, 0, 0, 0, 98735, 98741, 98747, 98753, - 98759, 98765, 98771, 98777, 98783, 98790, 98795, 98800, 98806, 98812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98818, 98824, 98830, - 98836, 98843, 98849, 98856, 98863, 98870, 98877, 98885, 98892, 98900, - 98906, 98912, 98918, 98924, 98930, 98936, 98942, 98948, 98954, 98960, - 98966, 98972, 98978, 98984, 98990, 98996, 99002, 99008, 99014, 99020, - 99026, 99032, 99038, 99044, 99050, 99056, 99062, 99068, 99074, 99080, - 99086, 99093, 99099, 99106, 99113, 99120, 99127, 99135, 99142, 99150, - 99156, 99162, 99168, 99174, 99180, 99186, 99192, 99198, 99204, 99210, - 99216, 99222, 99228, 99234, 99240, 99246, 99252, 99258, 99264, 99270, - 99276, 99282, 99288, 99294, 99300, 99306, 99312, 99318, 99323, 99328, - 99333, 99338, 99343, 99348, 99353, 99358, 99363, 99368, 99373, 99378, - 99383, 99388, 99393, 99398, 99403, 99408, 99413, 99418, 99423, 99428, - 99433, 99438, 99443, 99448, 99453, 99458, 99463, 99468, 99473, 99478, - 99483, 99488, 99493, 99498, 99503, 99508, 99513, 99518, 99523, 99528, - 99533, 99538, 99543, 99548, 99553, 99558, 99563, 99568, 99573, 99578, - 99583, 99588, 99593, 99597, 99601, 99606, 99611, 99616, 99621, 99626, - 99631, 99636, 99641, 99646, 99651, 99656, 99660, 99664, 99668, 99672, - 99676, 99680, 99684, 99689, 99694, 0, 0, 99699, 99704, 99708, 99712, - 99716, 99720, 99724, 99728, 99732, 99736, 0, 0, 0, 0, 0, 0, 99740, 99745, - 99751, 99757, 99763, 99769, 99775, 99781, 99786, 99792, 99797, 99803, - 99808, 99813, 99819, 99825, 99830, 99835, 99840, 99845, 99851, 99856, - 99862, 99867, 99873, 99879, 99885, 99891, 99897, 99903, 99909, 99914, - 99920, 99926, 99932, 99938, 0, 0, 0, 0, 99944, 99949, 99955, 99961, - 99967, 99973, 99979, 99985, 99990, 99996, 100001, 100007, 100012, 100017, - 100023, 100029, 100034, 100039, 100044, 100049, 100055, 100060, 100066, - 100071, 100077, 100083, 100089, 100095, 100101, 100107, 100113, 100118, - 100124, 100130, 100136, 100142, 0, 0, 0, 0, 100148, 100152, 100157, - 100162, 100167, 100172, 100177, 100182, 100187, 100191, 100196, 100201, - 100206, 100211, 100215, 100220, 100225, 100230, 100235, 100240, 100245, - 100249, 100254, 100258, 100263, 100268, 100273, 100278, 100283, 100288, - 100293, 100298, 100302, 100307, 100312, 100317, 100322, 100327, 100332, - 100337, 0, 0, 0, 0, 0, 0, 0, 0, 100342, 100349, 100356, 100363, 100370, - 100377, 100384, 100391, 100398, 100405, 100412, 100419, 100426, 100433, - 100440, 100447, 100454, 100461, 100468, 100475, 100482, 100489, 100496, - 100503, 100510, 100517, 100524, 100531, 100538, 100545, 100552, 100559, - 100566, 100573, 100580, 100587, 100594, 100601, 100608, 100615, 100622, - 100629, 100636, 100643, 100650, 100657, 100664, 100671, 100678, 100685, - 100692, 100699, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100706, 100713, 100718, - 100724, 100730, 100736, 100742, 100748, 100754, 100760, 100765, 100771, - 0, 100777, 100782, 100788, 100793, 100799, 100805, 100810, 100815, - 100821, 100827, 100833, 100839, 100844, 100850, 100856, 0, 100862, - 100868, 100874, 100880, 100886, 100891, 100897, 0, 100903, 100909, 0, - 100915, 100920, 100926, 100932, 100938, 100944, 100950, 100956, 100962, - 100967, 100973, 0, 100979, 100984, 100990, 100995, 101001, 101007, - 101012, 101017, 101023, 101029, 101035, 101041, 101046, 101052, 101058, - 0, 101064, 101070, 101076, 101082, 101088, 101093, 101099, 0, 101105, - 101111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 101129, 101134, 101139, 101144, 101149, 101154, 101159, + 101164, 101169, 101174, 101179, 101184, 101189, 101194, 101199, 101204, + 101209, 101214, 101219, 101224, 101229, 101234, 101239, 101244, 101249, + 101254, 101259, 101264, 101269, 101274, 101279, 101284, 101289, 101294, + 101299, 101304, 101309, 101314, 101319, 101324, 101329, 101334, 101339, + 101344, 101349, 101354, 101359, 101364, 101369, 101374, 101379, 101384, + 101389, 101394, 101399, 101404, 101409, 101414, 101419, 101424, 101429, + 101434, 101439, 101444, 101449, 101454, 101459, 101464, 101469, 101474, + 101479, 101484, 101489, 101494, 101499, 101504, 101509, 101514, 101519, + 101524, 101529, 101534, 101539, 101544, 101549, 101554, 101559, 101564, + 101569, 101574, 101579, 101584, 101589, 101594, 101599, 101604, 101609, + 101614, 101619, 101624, 101629, 101634, 101639, 101644, 101649, 101654, + 101659, 101664, 101669, 101674, 101679, 101684, 101689, 101694, 101699, + 101704, 101709, 101714, 101719, 101724, 101729, 101734, 101739, 101744, + 101749, 101754, 101759, 101764, 101769, 101774, 101779, 101784, 101789, + 101794, 101799, 101804, 101809, 101814, 101819, 101824, 101829, 101834, + 101839, 101844, 101849, 101854, 101859, 101864, 101869, 101874, 101879, + 101884, 101889, 101894, 101899, 101904, 101909, 101914, 101919, 101924, + 101929, 101934, 101939, 101944, 101949, 101954, 101959, 101964, 101969, + 101974, 101979, 101984, 101989, 101994, 101999, 102004, 102009, 102014, + 102019, 102024, 102029, 102034, 102039, 102044, 102049, 102054, 102059, + 102064, 102069, 102074, 102079, 102084, 102089, 102094, 102099, 102104, + 102109, 102114, 102119, 102124, 102129, 102134, 102139, 102144, 102149, + 102154, 102159, 102164, 102169, 102174, 102179, 102184, 102189, 102194, + 102199, 102204, 102209, 102214, 102219, 102224, 102229, 102234, 102239, + 102244, 102249, 102254, 102259, 102264, 102269, 102274, 102279, 102284, + 102289, 102294, 102299, 102304, 102309, 102314, 102319, 102324, 102329, + 102334, 102339, 102344, 102349, 102354, 102359, 102364, 102369, 102374, + 102379, 102384, 102389, 102394, 102399, 102404, 102409, 102414, 102419, + 102424, 102429, 102434, 102439, 102444, 102449, 102454, 102459, 102464, + 102469, 102474, 102479, 102484, 102489, 102494, 102499, 102504, 102509, + 102514, 102519, 102524, 102529, 102534, 102539, 102544, 102549, 102554, + 102559, 102564, 102569, 102574, 102579, 102584, 102589, 102594, 102599, + 102604, 102609, 102614, 102619, 102624, 102629, 102634, 102639, 102644, + 102649, 102654, 102659, 102664, 102669, 102674, 102679, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 102684, 102690, 102697, 102704, 102710, 102717, 102724, 102731, + 102738, 102744, 102751, 102758, 102765, 102772, 102779, 102786, 102793, + 102800, 102807, 102814, 102821, 102828, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 102835, 102840, 102845, 102850, 102855, 102860, 102865, 102870, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102875, + 102881, 102889, 102898, 102903, 102909, 0, 102915, 102922, 102933, + 102943, 102950, 102958, 102965, 102976, 102982, 102992, 102999, 103006, + 103012, 103019, 103027, 103034, 103040, 103047, 103059, 103066, 103073, + 103081, 103090, 103103, 103108, 103117, 103123, 103132, 103138, 103144, + 103151, 103156, 103166, 103180, 103188, 103196, 103201, 103211, 103218, + 103229, 103236, 103245, 0, 103253, 103259, 103267, 103277, 103283, + 103289, 103295, 103301, 103311, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101117, - 101122, 101127, 101132, 101137, 101142, 101147, 101152, 101157, 101162, - 101167, 101172, 101177, 101182, 101187, 101192, 101197, 101202, 101207, - 101212, 101217, 101222, 101227, 101232, 101237, 101242, 101247, 101252, - 101257, 101262, 101267, 101272, 101277, 101282, 101287, 101292, 101297, - 101302, 101307, 101312, 101317, 101322, 101327, 101332, 101337, 101342, - 101347, 101352, 101357, 101362, 101367, 101372, 101377, 101382, 101387, - 101392, 101397, 101402, 101407, 101412, 101417, 101422, 101427, 101432, - 101437, 101442, 101447, 101452, 101457, 101462, 101467, 101472, 101477, - 101482, 101487, 101492, 101497, 101502, 101507, 101512, 101517, 101522, - 101527, 101532, 101537, 101542, 101547, 101552, 101557, 101562, 101567, - 101572, 101577, 101582, 101587, 101592, 101597, 101602, 101607, 101612, - 101617, 101622, 101627, 101632, 101637, 101642, 101647, 101652, 101657, - 101662, 101667, 101672, 101677, 101682, 101687, 101692, 101697, 101702, - 101707, 101712, 101717, 101722, 101727, 101732, 101737, 101742, 101747, - 101752, 101757, 101762, 101767, 101772, 101777, 101782, 101787, 101792, - 101797, 101802, 101807, 101812, 101817, 101822, 101827, 101832, 101837, - 101842, 101847, 101852, 101857, 101862, 101867, 101872, 101877, 101882, - 101887, 101892, 101897, 101902, 101907, 101912, 101917, 101922, 101927, - 101932, 101937, 101942, 101947, 101952, 101957, 101962, 101967, 101972, - 101977, 101982, 101987, 101992, 101997, 102002, 102007, 102012, 102017, - 102022, 102027, 102032, 102037, 102042, 102047, 102052, 102057, 102062, - 102067, 102072, 102077, 102082, 102087, 102092, 102097, 102102, 102107, - 102112, 102117, 102122, 102127, 102132, 102137, 102142, 102147, 102152, - 102157, 102162, 102167, 102172, 102177, 102182, 102187, 102192, 102197, - 102202, 102207, 102212, 102217, 102222, 102227, 102232, 102237, 102242, - 102247, 102252, 102257, 102262, 102267, 102272, 102277, 102282, 102287, - 102292, 102297, 102302, 102307, 102312, 102317, 102322, 102327, 102332, - 102337, 102342, 102347, 102352, 102357, 102362, 102367, 102372, 102377, - 102382, 102387, 102392, 102397, 102402, 102407, 102412, 102417, 102422, - 102427, 102432, 102437, 102442, 102447, 102452, 102457, 102462, 102467, - 102472, 102477, 102482, 102487, 102492, 102497, 102502, 102507, 102512, - 102517, 102522, 102527, 102532, 102537, 102542, 102547, 102552, 102557, - 102562, 102567, 102572, 102577, 102582, 102587, 102592, 102597, 102602, - 102607, 102612, 102617, 102622, 102627, 102632, 102637, 102642, 102647, - 102652, 102657, 102662, 102667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102672, - 102678, 102685, 102692, 102698, 102705, 102712, 102719, 102726, 102732, - 102739, 102746, 102753, 102760, 102767, 102774, 102781, 102788, 102795, - 102802, 102809, 102816, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102823, 102828, - 102833, 102838, 102843, 102848, 102853, 102858, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102863, 102869, 102877, - 102886, 102891, 102897, 0, 102903, 102910, 102921, 102931, 102938, - 102946, 102953, 102964, 102970, 102980, 102987, 102994, 103000, 103007, - 103015, 103022, 103028, 103035, 103047, 103054, 103061, 103069, 103078, - 103091, 103096, 103105, 103111, 103120, 103126, 103132, 103139, 103144, - 103154, 103168, 103176, 103184, 103189, 103199, 103206, 103217, 103224, - 103233, 0, 103241, 103247, 103255, 103265, 103271, 103277, 103283, - 103289, 103299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 103319, 103323, 103327, 103331, 103335, 103339, 0, + 0, 103344, 0, 103349, 103353, 103358, 103363, 103368, 103373, 103377, + 103382, 103387, 103392, 103397, 103401, 103406, 103411, 103416, 103421, + 103425, 103430, 103435, 103440, 103445, 103449, 103454, 103459, 103464, + 103469, 103473, 103478, 103483, 103488, 103493, 103497, 103502, 103507, + 103512, 103517, 103522, 103527, 103532, 103536, 103541, 103546, 103551, + 103556, 0, 103561, 103566, 0, 0, 0, 103571, 0, 0, 103576, 103581, 103588, + 103595, 103602, 103609, 103616, 103623, 103630, 103637, 103644, 103651, + 103658, 103665, 103672, 103679, 103686, 103693, 103700, 103707, 103714, + 103721, 103728, 0, 103735, 103742, 103748, 103754, 103760, 103767, + 103774, 103782, 103789, 103797, 103802, 103807, 103812, 103817, 103822, + 103827, 103832, 103837, 103842, 103847, 103852, 103857, 103862, 103868, + 103873, 103878, 103883, 103888, 103893, 103898, 103903, 103908, 103913, + 103919, 103925, 103929, 103933, 103937, 103941, 103945, 103950, 103955, + 103961, 103966, 103972, 103977, 103982, 103987, 103993, 103998, 104003, + 104008, 104013, 104018, 104024, 104029, 104035, 104040, 104046, 104051, + 104057, 104062, 104068, 104073, 104078, 104083, 104088, 104093, 104098, + 104103, 104109, 104114, 0, 0, 0, 0, 0, 0, 0, 0, 104119, 104123, 104127, + 104131, 104135, 104141, 104145, 104150, 104155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 103307, 103311, 103315, 103319, 103323, 103327, 0, 0, 103332, 0, - 103337, 103341, 103346, 103351, 103356, 103361, 103365, 103370, 103375, - 103380, 103385, 103389, 103394, 103399, 103404, 103409, 103413, 103418, - 103423, 103428, 103433, 103437, 103442, 103447, 103452, 103457, 103461, - 103466, 103471, 103476, 103481, 103485, 103490, 103495, 103500, 103505, - 103510, 103515, 103520, 103524, 103529, 103534, 103539, 103544, 0, - 103549, 103554, 0, 0, 0, 103559, 0, 0, 103564, 103569, 103576, 103583, - 103590, 103597, 103604, 103611, 103618, 103625, 103632, 103639, 103646, - 103653, 103660, 103667, 103674, 103681, 103688, 103695, 103702, 103709, - 103716, 0, 103723, 103730, 103736, 103742, 103748, 103755, 103762, - 103770, 103777, 103785, 103790, 103795, 103800, 103805, 103810, 103815, - 103820, 103825, 103830, 103835, 103840, 103845, 103850, 103856, 103861, - 103866, 103871, 103876, 103881, 103886, 103891, 103896, 103901, 103907, - 103913, 103917, 103921, 103925, 103929, 103933, 103938, 103943, 103949, - 103954, 103960, 103965, 103970, 103975, 103981, 103986, 103991, 103996, - 104001, 104006, 104012, 104017, 104023, 104028, 104034, 104039, 104045, - 104050, 104056, 104061, 104066, 104071, 104076, 104081, 104086, 104091, - 104097, 104102, 0, 0, 0, 0, 0, 0, 0, 0, 104107, 104111, 104115, 104119, - 104123, 104129, 104133, 104138, 104143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104161, 104166, 104171, + 104176, 104181, 104186, 104191, 104196, 104201, 104206, 104211, 104216, + 104221, 104226, 104231, 104236, 104241, 104246, 104251, 0, 104256, + 104261, 0, 0, 0, 0, 0, 104266, 104270, 104274, 104279, 104284, 104290, + 104295, 104300, 104305, 104310, 104315, 104320, 104325, 104330, 104335, + 104340, 104345, 104350, 104355, 104360, 104365, 104370, 104375, 104380, + 104385, 104390, 104395, 104400, 104404, 104409, 104414, 104420, 104424, + 0, 0, 0, 104428, 104434, 104438, 104443, 104448, 104453, 104457, 104462, + 104466, 104471, 104476, 104480, 104485, 104490, 104494, 104498, 104503, + 104508, 104512, 104517, 104522, 104527, 104532, 104537, 104542, 104547, + 104552, 0, 0, 0, 0, 0, 104557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104149, 104154, 104159, 104164, - 104169, 104174, 104179, 104184, 104189, 104194, 104199, 104204, 104209, - 104214, 104219, 104224, 104229, 104234, 104239, 0, 104244, 104249, 0, 0, - 0, 0, 0, 104254, 104258, 104262, 104267, 104272, 104278, 104283, 104288, - 104293, 104298, 104303, 104308, 104313, 104318, 104323, 104328, 104333, - 104338, 104343, 104348, 104353, 104358, 104363, 104368, 104373, 104378, - 104383, 104388, 104392, 104397, 104402, 104408, 104412, 0, 0, 0, 104416, - 104422, 104426, 104431, 104436, 104441, 104445, 104450, 104454, 104459, - 104464, 104468, 104473, 104478, 104482, 104486, 104491, 104496, 104500, - 104505, 104510, 104515, 104520, 104525, 104530, 104535, 104540, 0, 0, 0, - 0, 0, 104545, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104550, - 104555, 104560, 104565, 104570, 104575, 104581, 104587, 104593, 104598, - 104603, 104608, 104614, 104620, 104626, 104631, 104637, 104642, 104648, - 104654, 104659, 104665, 104671, 104676, 104682, 104688, 104694, 104700, - 104706, 104711, 104717, 104723, 104729, 104734, 104739, 104744, 104749, - 104754, 104760, 104766, 104771, 104776, 104781, 104787, 104792, 104797, - 104803, 104809, 104814, 104821, 104827, 104832, 104838, 104844, 104850, - 104855, 0, 0, 0, 0, 104861, 104870, 104878, 104885, 104892, 104897, - 104902, 104907, 104912, 104917, 104922, 104927, 104932, 104937, 104943, - 104949, 104955, 104961, 104967, 104973, 0, 0, 104979, 104986, 104993, - 105000, 105008, 105016, 105024, 105032, 105040, 105048, 105054, 105060, - 105066, 105073, 105080, 105087, 105094, 105101, 105108, 105115, 105122, - 105129, 105136, 105143, 105150, 105157, 105164, 105171, 105179, 105187, - 105195, 105204, 105213, 105222, 105231, 105240, 105249, 105257, 105265, - 105273, 105282, 105291, 105300, 105309, 105318, 105327, 105336, 105340, - 105345, 105350, 0, 105356, 105361, 0, 0, 0, 0, 0, 105366, 105372, 105379, - 105384, 105389, 105393, 105398, 105403, 0, 105408, 105413, 105418, 0, - 105423, 105428, 105433, 105438, 105443, 105448, 105453, 105458, 105463, - 105468, 105473, 105477, 105481, 105486, 105491, 105496, 105500, 105504, - 105508, 105512, 105517, 105522, 105527, 105531, 105536, 105540, 105545, - 105550, 105555, 0, 0, 105560, 105566, 105571, 0, 0, 0, 0, 105576, 105580, - 105584, 105588, 105592, 105596, 105601, 105606, 105612, 105617, 0, 0, 0, - 0, 0, 0, 0, 105624, 105630, 105637, 105643, 105650, 105656, 105662, - 105668, 105675, 0, 0, 0, 0, 0, 0, 0, 105681, 105689, 105697, 105705, - 105713, 105721, 105729, 105737, 105745, 105753, 105761, 105769, 105777, - 105785, 105793, 105801, 105809, 105817, 105825, 105833, 105841, 105849, - 105857, 105865, 105873, 105881, 105889, 105897, 105905, 105913, 105920, - 105928, 105936, 105943, 105950, 105957, 105964, 105971, 105978, 105985, - 105992, 105999, 106006, 106013, 106020, 106027, 106034, 106041, 106048, - 106055, 106062, 106069, 106076, 106083, 106090, 106097, 106104, 106111, - 106118, 106125, 106132, 106139, 106145, 106152, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 104562, 104567, 104572, 104577, 104582, 104587, 104593, 104599, + 104605, 104610, 104615, 104620, 104626, 104632, 104638, 104643, 104649, + 104654, 104660, 104666, 104671, 104677, 104683, 104688, 104694, 104700, + 104706, 104712, 104718, 104723, 104729, 104735, 104741, 104746, 104751, + 104756, 104761, 104766, 104772, 104778, 104783, 104788, 104793, 104799, + 104804, 104809, 104815, 104821, 104826, 104833, 104839, 104844, 104850, + 104856, 104862, 104867, 0, 0, 0, 0, 104873, 104882, 104890, 104897, + 104904, 104909, 104914, 104919, 104924, 104929, 104934, 104939, 104944, + 104949, 104955, 104961, 104967, 104973, 104979, 104985, 0, 0, 104991, + 104998, 105005, 105012, 105020, 105028, 105036, 105044, 105052, 105060, + 105066, 105072, 105078, 105085, 105092, 105099, 105106, 105113, 105120, + 105127, 105134, 105141, 105148, 105155, 105162, 105169, 105176, 105183, + 105191, 105199, 105207, 105216, 105225, 105234, 105243, 105252, 105261, + 105269, 105277, 105285, 105294, 105303, 105312, 105321, 105330, 105339, + 105348, 105352, 105357, 105362, 0, 105368, 105373, 0, 0, 0, 0, 0, 105378, + 105384, 105391, 105396, 105401, 105405, 105410, 105415, 0, 105420, + 105425, 105430, 0, 105435, 105440, 105445, 105450, 105455, 105460, + 105465, 105470, 105475, 105480, 105485, 105489, 105493, 105498, 105503, + 105508, 105512, 105516, 105520, 105524, 105529, 105534, 105539, 105543, + 105548, 105552, 105557, 105562, 105567, 0, 0, 105572, 105578, 105583, 0, + 0, 0, 0, 105588, 105592, 105596, 105600, 105604, 105608, 105613, 105618, + 105624, 105629, 0, 0, 0, 0, 0, 0, 0, 105636, 105642, 105649, 105655, + 105662, 105668, 105674, 105680, 105687, 0, 0, 0, 0, 0, 0, 0, 105693, + 105701, 105709, 105717, 105725, 105733, 105741, 105749, 105757, 105765, + 105773, 105781, 105789, 105797, 105805, 105813, 105821, 105829, 105837, + 105845, 105853, 105861, 105869, 105877, 105885, 105893, 105901, 105909, + 105917, 105925, 105932, 105940, 105948, 105955, 105962, 105969, 105976, + 105983, 105990, 105997, 106004, 106011, 106018, 106025, 106032, 106039, + 106046, 106053, 106060, 106067, 106074, 106081, 106088, 106095, 106102, + 106109, 106116, 106123, 106130, 106137, 106144, 106151, 106157, 106164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 106159, 106164, 106169, 106174, 106179, 106184, 106189, 106194, 106199, - 106204, 106209, 106214, 106219, 106224, 106229, 106234, 106239, 106244, - 106249, 106254, 106259, 106264, 106269, 106274, 106279, 106284, 106289, - 106294, 106299, 106304, 106309, 106314, 106319, 106324, 106329, 106334, - 106339, 106344, 106350, 0, 0, 0, 0, 106356, 106360, 106364, 106369, - 106374, 106380, 106386, 106392, 106402, 106411, 106417, 106424, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 106432, 106436, 106441, 106446, 106451, 106456, 106461, - 106466, 106471, 106475, 106480, 106484, 106489, 106493, 106498, 106502, - 106507, 106512, 106517, 106522, 106527, 106532, 106537, 106542, 106547, - 106552, 106557, 106562, 106567, 106572, 106577, 106582, 106587, 106592, - 106597, 106602, 106607, 106612, 106617, 106622, 106627, 106632, 106637, - 106642, 106647, 106652, 106657, 106662, 106667, 106672, 106677, 106682, - 106687, 106692, 0, 0, 0, 106697, 106702, 106711, 106719, 106728, 106737, - 106748, 106759, 106766, 106773, 106780, 106787, 106794, 106801, 106808, - 106815, 106822, 106829, 106836, 106843, 106850, 106857, 106864, 106871, - 106878, 106885, 106892, 106899, 106906, 0, 0, 106913, 106919, 106925, - 106931, 106937, 106944, 106951, 106959, 106966, 106973, 106980, 106987, - 106994, 107001, 107008, 107015, 107022, 107029, 107036, 107043, 107050, - 107057, 107064, 107071, 107078, 107085, 107092, 0, 0, 0, 0, 0, 107099, - 107105, 107111, 107117, 107123, 107130, 107137, 107145, 107152, 107159, - 107166, 107173, 107180, 107187, 107194, 107201, 107208, 107215, 107222, - 107229, 107236, 107243, 107250, 107257, 107264, 107271, 0, 0, 0, 0, 0, 0, - 0, 107278, 107285, 107293, 107303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 107313, 107319, 107325, 107331, 107337, 107344, 107351, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 106171, 106176, 106181, 106186, 106191, 106196, + 106201, 106206, 106211, 106216, 106221, 106226, 106231, 106236, 106241, + 106246, 106251, 106256, 106261, 106266, 106271, 106276, 106281, 106286, + 106291, 106296, 106301, 106306, 106311, 106316, 106321, 106326, 106331, + 106336, 106341, 106346, 106351, 106356, 106362, 0, 0, 0, 0, 106368, + 106372, 106376, 106381, 106386, 106392, 106398, 106404, 106414, 106423, + 106429, 106436, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106444, 106448, 106453, + 106458, 106463, 106468, 106473, 106478, 106483, 106487, 106492, 106496, + 106501, 106505, 106510, 106514, 106519, 106524, 106529, 106534, 106539, + 106544, 106549, 106554, 106559, 106564, 106569, 106574, 106579, 106584, + 106589, 106594, 106599, 106604, 106609, 106614, 106619, 106624, 106629, + 106634, 106639, 106644, 106649, 106654, 106659, 106664, 106669, 106674, + 106679, 106684, 106689, 106694, 106699, 106704, 0, 0, 0, 106709, 106714, + 106723, 106731, 106740, 106749, 106760, 106771, 106778, 106785, 106792, + 106799, 106806, 106813, 106820, 106827, 106834, 106841, 106848, 106855, + 106862, 106869, 106876, 106883, 106890, 106897, 106904, 106911, 106918, + 0, 0, 106925, 106931, 106937, 106943, 106949, 106956, 106963, 106971, + 106978, 106985, 106992, 106999, 107006, 107013, 107020, 107027, 107034, + 107041, 107048, 107055, 107062, 107069, 107076, 107083, 107090, 107097, + 107104, 0, 0, 0, 0, 0, 107111, 107117, 107123, 107129, 107135, 107142, + 107149, 107157, 107164, 107171, 107178, 107185, 107192, 107199, 107206, + 107213, 107220, 107227, 107234, 107241, 107248, 107255, 107262, 107269, + 107276, 107283, 0, 0, 0, 0, 0, 0, 0, 107290, 107297, 107305, 107315, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107325, 107331, 107337, 107343, 107349, + 107356, 107363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107371, 107378, 107385, 107393, + 107400, 107407, 107414, 107421, 107429, 107437, 107445, 107453, 107461, + 107469, 107477, 107485, 107493, 107501, 107509, 107517, 107525, 107533, + 107541, 107549, 107557, 107565, 107573, 107581, 107589, 107597, 107605, + 107613, 107621, 107629, 107637, 107645, 107653, 107661, 107669, 107677, + 107685, 107693, 107701, 107709, 107717, 107725, 107733, 107741, 107749, + 107757, 107765, 107773, 107781, 107789, 107797, 107805, 107813, 107821, + 107829, 107837, 107845, 107853, 107861, 107869, 107877, 107885, 107893, + 107901, 107909, 107917, 107925, 107933, 107941, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 107359, 107366, 107373, 107381, 107388, 107395, 107402, 107409, - 107417, 107425, 107433, 107441, 107449, 107457, 107465, 107473, 107481, - 107489, 107497, 107505, 107513, 107521, 107529, 107537, 107545, 107553, - 107561, 107569, 107577, 107585, 107593, 107601, 107609, 107617, 107625, - 107633, 107641, 107649, 107657, 107665, 107673, 107681, 107689, 107697, - 107705, 107713, 107721, 107729, 107737, 107745, 107753, 107761, 107769, - 107777, 107785, 107793, 107801, 107809, 107817, 107825, 107833, 107841, - 107849, 107857, 107865, 107873, 107881, 107889, 107897, 107905, 107913, - 107921, 107929, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 107949, 107954, 107960, 107966, 107972, 107978, 107984, 107990, 107996, + 108002, 108007, 108014, 108020, 108026, 108032, 108038, 108044, 108049, + 108055, 108061, 108067, 108073, 108079, 108085, 108091, 108097, 108103, + 108109, 108114, 108120, 108128, 108136, 108142, 108148, 108154, 108160, + 108168, 108174, 108180, 108186, 108192, 108198, 108204, 108209, 108215, + 108223, 108231, 108237, 108243, 108249, 108256, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 108262, 108267, 108273, 108279, 108285, 108291, 108297, + 108303, 108309, 108315, 108320, 108327, 108333, 108339, 108345, 108351, + 108357, 108362, 108368, 108374, 108380, 108386, 108392, 108398, 108404, + 108410, 108416, 108422, 108427, 108433, 108441, 108449, 108455, 108461, + 108467, 108473, 108481, 108487, 108493, 108499, 108505, 108511, 108517, + 108522, 108528, 108536, 108544, 108550, 108556, 108562, 108569, 0, 0, 0, + 0, 0, 0, 0, 108575, 108579, 108583, 108588, 108593, 108599, 108604, + 108610, 108617, 108623, 108630, 108637, 108644, 108651, 108657, 108664, + 108671, 108678, 108685, 108691, 108698, 108705, 108711, 108718, 108724, + 108731, 108737, 108743, 108749, 108756, 108765, 108771, 108779, 108786, + 108793, 108800, 108806, 108812, 108818, 108824, 108830, 108837, 108846, + 108853, 108860, 108867, 0, 0, 0, 0, 0, 0, 0, 0, 108874, 108881, 108887, + 108893, 108899, 108905, 108911, 108917, 108923, 108929, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107937, 107942, 107948, 107954, - 107960, 107966, 107972, 107978, 107984, 107990, 107995, 108002, 108008, - 108014, 108020, 108026, 108032, 108037, 108043, 108049, 108055, 108061, - 108067, 108073, 108079, 108085, 108091, 108097, 108102, 108108, 108116, - 108124, 108130, 108136, 108142, 108148, 108156, 108162, 108168, 108174, - 108180, 108186, 108192, 108197, 108203, 108211, 108219, 108225, 108231, - 108237, 108244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108250, 108255, - 108261, 108267, 108273, 108279, 108285, 108291, 108297, 108303, 108308, - 108315, 108321, 108327, 108333, 108339, 108345, 108350, 108356, 108362, - 108368, 108374, 108380, 108386, 108392, 108398, 108404, 108410, 108415, - 108421, 108429, 108437, 108443, 108449, 108455, 108461, 108469, 108475, - 108481, 108487, 108493, 108499, 108505, 108510, 108516, 108524, 108532, - 108538, 108544, 108550, 108557, 0, 0, 0, 0, 0, 0, 0, 108563, 108567, - 108571, 108576, 108581, 108587, 108592, 108598, 108605, 108611, 108618, - 108625, 108632, 108639, 108645, 108652, 108659, 108666, 108673, 108679, - 108686, 108693, 108699, 108706, 108712, 108719, 108725, 108731, 108737, - 108744, 108753, 108759, 108767, 108774, 108781, 108788, 108794, 108800, - 108806, 108812, 108818, 108825, 108834, 108841, 108848, 108855, 0, 0, 0, - 0, 0, 0, 0, 0, 108862, 108869, 108875, 108881, 108887, 108893, 108899, - 108905, 108911, 108917, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108935, 108939, 108943, + 108947, 108951, 108955, 108959, 108963, 108967, 108971, 108976, 108981, + 108986, 108991, 108996, 109001, 109006, 109011, 109016, 109022, 109028, + 109034, 109041, 109048, 109055, 109062, 109069, 109076, 109083, 109090, + 109097, 0, 109104, 109109, 109114, 109119, 109124, 109129, 109134, + 109139, 109144, 109149, 109154, 109159, 109164, 109169, 109173, 109178, + 109183, 109188, 109193, 109198, 109203, 109208, 109213, 109218, 109223, + 109228, 109233, 109238, 109246, 109251, 109256, 109261, 109266, 109271, + 109276, 109281, 109286, 109291, 109296, 109301, 109306, 109311, 0, + 109316, 109322, 109328, 0, 0, 109333, 109341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 108923, 108927, 108931, 108935, 108939, 108943, 108947, - 108951, 108955, 108959, 108964, 108969, 108974, 108979, 108984, 108989, - 108994, 108999, 109004, 109010, 109016, 109022, 109029, 109036, 109043, - 109050, 109057, 109064, 109071, 109078, 109085, 0, 109092, 109097, - 109102, 109107, 109112, 109117, 109122, 109127, 109132, 109137, 109142, - 109147, 109152, 109157, 109161, 109166, 109171, 109176, 109181, 109186, - 109191, 109196, 109201, 109206, 109211, 109216, 109221, 109226, 109234, - 109239, 109244, 109249, 109254, 109259, 109264, 109269, 109274, 109279, - 109284, 109289, 109294, 109299, 0, 109304, 109310, 109316, 0, 0, 109321, - 109329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109350, 109357, + 109364, 109371, 109377, 109384, 109390, 109397, 109403, 109409, 109416, + 109422, 109428, 109434, 109440, 109446, 109452, 109458, 109464, 109471, + 109482, 109488, 109494, 109502, 109508, 109514, 109521, 109532, 109538, + 109544, 109550, 109557, 109568, 109573, 109578, 109583, 109588, 109593, + 109599, 109605, 109611, 109618, 109626, 0, 0, 0, 0, 0, 0, 0, 0, 109632, + 109637, 109642, 109647, 109652, 109657, 109662, 109667, 109672, 109677, + 109682, 109687, 109692, 109697, 109702, 109707, 109712, 109717, 109722, + 109727, 109732, 109737, 109743, 109748, 109754, 109759, 109765, 109771, + 109777, 109783, 109789, 109796, 109802, 109808, 109812, 109817, 109822, + 109828, 109836, 109847, 109856, 109866, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109876, 109882, 109888, 109894, 109900, + 109906, 109913, 109919, 109925, 109931, 109937, 109943, 109949, 109955, + 109961, 109967, 109973, 109979, 109985, 109991, 109997, 110004, 110011, + 110017, 110025, 110033, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110042, + 110047, 110053, 110058, 110063, 110068, 110073, 110078, 110085, 110090, + 110095, 110100, 110105, 110110, 110115, 110120, 110125, 110130, 110135, + 110140, 110145, 110150, 110154, 110158, 110162, 110166, 110171, 110176, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110182, + 110187, 110192, 110197, 110202, 110207, 110212, 110217, 110222, 110227, + 110232, 110237, 110242, 110247, 110252, 110257, 110262, 110267, 110272, + 110277, 110282, 110287, 110292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110297, + 110301, 110305, 110309, 110313, 110317, 110320, 110324, 110327, 110331, + 110334, 110338, 110342, 110347, 110351, 110356, 110359, 110363, 110366, + 110370, 110373, 110377, 110381, 110385, 110389, 110393, 110397, 110401, + 110405, 110409, 110413, 110417, 110421, 110425, 110429, 110433, 110437, + 110441, 110445, 110448, 110451, 110455, 110459, 110463, 110466, 110469, + 110472, 110475, 110479, 110483, 110487, 110490, 110493, 110497, 110503, + 110509, 110515, 110520, 110527, 110531, 110536, 110540, 110545, 110550, + 110556, 110561, 110567, 110571, 110576, 110580, 110585, 110588, 110591, + 110595, 110600, 110606, 110611, 110617, 0, 0, 0, 0, 110622, 110625, + 110628, 110631, 110634, 110637, 110640, 110643, 110646, 110649, 110653, + 110657, 110661, 110665, 110669, 110673, 110677, 110681, 110685, 110690, + 110694, 110698, 110701, 110704, 110707, 110710, 110713, 110716, 110719, + 110722, 110725, 110731, 110738, 110745, 110753, 110761, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 110767, 110771, 110776, 110781, 110786, 110790, 110795, 110799, + 110804, 110808, 110813, 110817, 110822, 110826, 110831, 110835, 110840, + 110845, 110850, 110855, 110860, 110865, 110870, 110875, 110880, 110885, + 110890, 110895, 110900, 110905, 110910, 110915, 110920, 110925, 110930, + 110935, 110939, 110943, 110948, 110953, 110958, 110962, 110966, 110970, + 110974, 110979, 110984, 110989, 110993, 110997, 111003, 111008, 111014, + 111019, 111025, 111030, 111036, 111041, 111047, 111052, 111057, 111062, + 111067, 111071, 111076, 111082, 111086, 111091, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 111097, 0, 0, 111102, 111109, 111116, 111123, 111130, 111137, + 111144, 111151, 111158, 111165, 111172, 111179, 111186, 111193, 111200, + 111207, 111214, 111221, 111228, 111235, 111242, 111249, 111256, 111263, + 111270, 0, 0, 0, 0, 0, 0, 0, 111277, 111284, 111290, 111296, 111302, + 111308, 111314, 111320, 111326, 111332, 0, 0, 0, 0, 0, 0, 111338, 111343, + 111348, 111353, 111358, 111362, 111366, 111370, 111375, 111380, 111385, + 111390, 111395, 111400, 111405, 111410, 111415, 111420, 111425, 111430, + 111435, 111440, 111445, 111450, 111455, 111460, 111465, 111470, 111475, + 111480, 111485, 111490, 111495, 111500, 111505, 111510, 111515, 111520, + 111525, 111530, 111535, 111540, 111546, 111551, 111557, 111562, 111568, + 111573, 111579, 111585, 111589, 111594, 111598, 0, 111602, 111607, + 111611, 111615, 111619, 111623, 111627, 111631, 111635, 111639, 111643, + 111648, 111652, 111657, 111662, 111667, 111673, 111679, 0, 0, 0, 0, 0, 0, + 0, 0, 111684, 111688, 111692, 111696, 111700, 111704, 111708, 111713, + 111718, 111723, 111728, 111733, 111738, 111743, 111748, 111753, 111758, + 111763, 111768, 111773, 111778, 111783, 111788, 111793, 111797, 111801, + 111806, 111811, 111816, 111820, 111824, 111828, 111833, 111837, 111841, + 111846, 111851, 111856, 111861, 0, 0, 0, 0, 0, 0, 0, 0, 0, 111866, + 111871, 111876, 111881, 111885, 111890, 111894, 111899, 111903, 111908, + 111913, 111919, 111924, 111930, 111934, 111939, 111943, 111948, 111952, + 111957, 111962, 111967, 111972, 111977, 111982, 111987, 111992, 111997, + 112002, 112007, 112012, 112017, 112022, 112027, 112032, 112037, 112042, + 112046, 112050, 112055, 112060, 112065, 112069, 112073, 112077, 112081, + 112086, 112091, 112096, 112101, 112105, 112109, 112115, 112120, 112126, + 112131, 112137, 112143, 112150, 112156, 112163, 112168, 112174, 112179, + 112185, 112190, 112195, 112200, 112205, 112209, 112213, 112218, 112223, + 112227, 112232, 112237, 112242, 112250, 112255, 112262, 112269, 112274, + 112278, 112282, 112286, 112290, 112294, 112298, 112302, 112306, 112310, + 112314, 112319, 112323, 112328, 112334, 0, 112340, 112345, 112350, + 112355, 112360, 112365, 112370, 112375, 112380, 112385, 112391, 112397, + 112403, 112409, 112415, 112421, 112427, 112433, 112439, 112446, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 112452, 112456, 112461, 112465, 112469, 112473, + 112478, 112482, 112487, 112491, 112496, 112501, 112506, 112511, 112516, + 112521, 112526, 112531, 0, 112536, 112541, 112546, 112551, 112556, + 112561, 112566, 112571, 112576, 112581, 112586, 112591, 112595, 112599, + 112604, 112609, 112614, 112619, 112623, 112627, 112631, 112635, 112640, + 112644, 112648, 112653, 112659, 112664, 112670, 112675, 112680, 112686, + 112691, 112697, 112702, 112707, 112712, 112717, 112721, 112726, 112732, + 112737, 112743, 112748, 112753, 112758, 112764, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 109338, 109344, 109351, 109357, 109364, 109370, - 109376, 109383, 109389, 109395, 109401, 109407, 109413, 109419, 109425, - 109431, 109438, 109449, 109455, 109461, 109469, 109475, 109481, 109488, - 109499, 109505, 109511, 109517, 109524, 109535, 109540, 109545, 109550, - 109555, 109560, 109566, 109572, 109578, 109585, 109593, 0, 0, 0, 0, 0, 0, - 0, 0, 109599, 109604, 109609, 109614, 109619, 109624, 109629, 109634, - 109639, 109644, 109649, 109654, 109659, 109664, 109669, 109674, 109679, - 109684, 109689, 109694, 109699, 109704, 109710, 109715, 109721, 109726, - 109732, 109738, 109744, 109750, 109756, 109763, 109769, 109775, 109779, - 109784, 109789, 109795, 109803, 109814, 109823, 109833, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109843, 109849, 109855, - 109861, 109867, 109873, 109880, 109886, 109892, 109898, 109904, 109910, - 109916, 109922, 109928, 109934, 109940, 109946, 109952, 109958, 109964, - 109971, 109978, 109984, 109992, 110000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 110009, 110014, 110020, 110025, 110030, 110035, 110040, 110045, - 110052, 110057, 110062, 110067, 110072, 110077, 110082, 110087, 110092, - 110097, 110102, 110107, 110112, 110117, 110121, 110125, 110129, 110133, - 110138, 110143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 110149, 110154, 110159, 110164, 110169, 110174, 110179, 110184, - 110189, 110194, 110199, 110204, 110209, 110214, 110219, 110224, 110229, - 110234, 110239, 110244, 110249, 110254, 110259, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 110264, 110268, 110272, 110276, 110280, 110284, 110287, 110291, - 110294, 110298, 110301, 110305, 110309, 110314, 110318, 110323, 110326, - 110330, 110333, 110337, 110340, 110344, 110348, 110352, 110356, 110360, - 110364, 110368, 110372, 110376, 110380, 110384, 110388, 110392, 110396, - 110400, 110404, 110408, 110412, 110415, 110418, 110422, 110426, 110430, - 110433, 110436, 110439, 110442, 110446, 110450, 110454, 110457, 110460, - 110464, 110470, 110476, 110482, 110487, 110494, 110498, 110503, 110507, - 110512, 110517, 110523, 110528, 110534, 110538, 110543, 110547, 110552, - 110555, 110558, 110562, 110567, 110573, 110578, 110584, 0, 0, 0, 0, - 110589, 110592, 110595, 110598, 110601, 110604, 110607, 110610, 110613, - 110616, 110620, 110624, 110628, 110632, 110636, 110640, 110644, 110648, - 110652, 110657, 110661, 110665, 110668, 110671, 110674, 110677, 110680, - 110683, 110686, 110689, 110692, 110698, 110705, 110712, 110720, 110728, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 110734, 110738, 110743, 110748, 110753, - 110757, 110762, 110766, 110771, 110775, 110780, 110784, 110789, 110793, - 110798, 110802, 110807, 110812, 110817, 110822, 110827, 110832, 110837, - 110842, 110847, 110852, 110857, 110862, 110867, 110872, 110877, 110882, - 110887, 110892, 110897, 110902, 110906, 110910, 110915, 110920, 110925, - 110929, 110933, 110937, 110941, 110946, 110951, 110956, 110960, 110964, - 110970, 110975, 110981, 110986, 110992, 110997, 111003, 111008, 111014, - 111019, 111024, 111029, 111034, 111038, 111043, 111049, 111053, 111058, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 111064, 0, 0, 111069, 111076, 111083, - 111090, 111097, 111104, 111111, 111118, 111125, 111132, 111139, 111146, - 111153, 111160, 111167, 111174, 111181, 111188, 111195, 111202, 111209, - 111216, 111223, 111230, 111237, 0, 0, 0, 0, 0, 0, 0, 111244, 111251, - 111257, 111263, 111269, 111275, 111281, 111287, 111293, 111299, 0, 0, 0, - 0, 0, 0, 111305, 111310, 111315, 111320, 111325, 111329, 111333, 111337, - 111342, 111347, 111352, 111357, 111362, 111367, 111372, 111377, 111382, - 111387, 111392, 111397, 111402, 111407, 111412, 111417, 111422, 111427, - 111432, 111437, 111442, 111447, 111452, 111457, 111462, 111467, 111472, - 111477, 111482, 111487, 111492, 111497, 111502, 111507, 111513, 111518, - 111524, 111529, 111535, 111540, 111546, 111552, 111556, 111561, 111565, - 0, 111569, 111574, 111578, 111582, 111586, 111590, 111594, 111598, - 111602, 111606, 111610, 111615, 111619, 111624, 111629, 111634, 111640, - 111646, 0, 0, 0, 0, 0, 0, 0, 0, 111651, 111655, 111659, 111663, 111667, - 111671, 111675, 111680, 111685, 111690, 111695, 111700, 111705, 111710, - 111715, 111720, 111725, 111730, 111735, 111740, 111745, 111750, 111755, - 111760, 111764, 111768, 111773, 111778, 111783, 111787, 111791, 111795, - 111800, 111804, 111808, 111813, 111818, 111823, 111828, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 111833, 111838, 111843, 111848, 111852, 111857, 111861, 111866, - 111870, 111875, 111880, 111886, 111891, 111897, 111901, 111906, 111910, - 111915, 111919, 111924, 111929, 111934, 111939, 111944, 111949, 111954, - 111959, 111964, 111969, 111974, 111979, 111984, 111989, 111994, 111999, - 112004, 112009, 112013, 112017, 112022, 112027, 112032, 112036, 112040, - 112044, 112048, 112053, 112058, 112063, 112068, 112072, 112076, 112082, - 112087, 112093, 112098, 112104, 112110, 112117, 112123, 112130, 112135, - 112141, 112146, 112152, 112157, 112162, 112167, 112172, 112176, 112180, - 112185, 112190, 112194, 112199, 112204, 112209, 112217, 112222, 112229, - 112236, 112241, 112245, 112249, 112253, 112257, 112261, 112265, 112269, - 112273, 112277, 112281, 112286, 112290, 112295, 112301, 0, 112307, - 112312, 112317, 112322, 112327, 112332, 112337, 112342, 112347, 112352, - 112358, 112364, 112370, 112376, 112382, 112388, 112394, 112400, 112406, - 112413, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112419, 112423, 112428, 112432, - 112436, 112440, 112445, 112449, 112454, 112458, 112463, 112468, 112473, - 112478, 112483, 112488, 112493, 112498, 0, 112503, 112508, 112513, - 112518, 112523, 112528, 112533, 112538, 112543, 112548, 112553, 112558, - 112562, 112566, 112571, 112576, 112581, 112586, 112590, 112594, 112598, - 112602, 112607, 112611, 112615, 112620, 112626, 112631, 112637, 112642, - 112647, 112653, 112658, 112664, 112669, 112674, 112679, 112684, 112688, - 112693, 112699, 112704, 112710, 112715, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 112770, 112774, 112778, 112782, 112786, 112790, 112795, + 0, 112800, 0, 112805, 112810, 112815, 112820, 0, 112825, 112830, 112835, + 112840, 112845, 112850, 112855, 112860, 112865, 112870, 112875, 112880, + 112884, 112888, 112893, 0, 112898, 112903, 112907, 112911, 112915, + 112919, 112924, 112928, 112932, 112937, 112942, 0, 0, 0, 0, 0, 0, 112947, + 112951, 112956, 112960, 112965, 112969, 112974, 112978, 112983, 112987, + 112992, 112996, 113001, 113006, 113011, 113016, 113021, 113026, 113031, + 113036, 113041, 113046, 113051, 113056, 113061, 113066, 113071, 113076, + 113081, 113086, 113091, 113096, 113101, 113106, 113110, 113114, 113119, + 113124, 113129, 113134, 113138, 113142, 113146, 113150, 113155, 113160, + 113164, 113168, 113173, 113179, 113184, 113190, 113195, 113201, 113206, + 113212, 113217, 113223, 113228, 0, 0, 0, 0, 0, 113233, 113238, 113242, + 113246, 113250, 113254, 113258, 113262, 113266, 113270, 0, 0, 0, 0, 0, 0, + 113274, 113281, 113286, 113291, 0, 113296, 113300, 113305, 113309, + 113314, 113318, 113323, 113328, 0, 0, 113333, 113338, 0, 0, 113343, + 113348, 113353, 113357, 113362, 113367, 113372, 113377, 113382, 113387, + 113392, 113397, 113402, 113407, 113412, 113417, 113422, 113427, 113432, + 113437, 113442, 113447, 0, 113451, 113455, 113460, 113465, 113470, + 113474, 113478, 0, 113482, 113486, 0, 113491, 113496, 113501, 113506, + 113510, 0, 113514, 113518, 113523, 113528, 113534, 113539, 113545, + 113550, 113556, 113562, 0, 0, 113569, 113575, 0, 0, 113581, 113587, + 113593, 0, 0, 113598, 0, 0, 0, 0, 0, 0, 113602, 0, 0, 0, 0, 0, 113609, + 113614, 113621, 113629, 113635, 113641, 113647, 0, 0, 113654, 113660, + 113665, 113670, 113675, 113680, 113685, 0, 0, 0, 113690, 113695, 113700, + 113705, 113711, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 113716, 113720, 113725, + 113729, 113734, 113738, 113743, 113748, 113754, 113759, 113765, 113769, + 113774, 113778, 113783, 113787, 113792, 113797, 113802, 113807, 113812, + 113817, 113822, 113827, 113832, 113837, 113842, 113847, 113852, 113857, + 113862, 113867, 113872, 113877, 113882, 113887, 113891, 113896, 113900, + 113905, 113910, 113915, 113919, 113924, 113928, 113932, 113937, 113941, + 113946, 113951, 113956, 113961, 113965, 113969, 113975, 113980, 113986, + 113991, 113997, 114003, 114010, 114016, 114023, 114028, 114034, 114039, + 114045, 114050, 114055, 114060, 114065, 114070, 114075, 114081, 114085, + 114089, 114093, 114098, 114102, 114108, 114113, 114118, 114122, 114126, + 114130, 114134, 114138, 114142, 114146, 114150, 114154, 114159, 0, + 114164, 114169, 114174, 114181, 114186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114191, 114195, + 114199, 114204, 114208, 114213, 114217, 114222, 114227, 114233, 114238, + 114244, 114248, 114253, 114257, 114262, 114266, 114271, 114276, 114281, + 114286, 114291, 114296, 114301, 114306, 114311, 114316, 114321, 114326, + 114331, 114336, 114341, 114346, 114351, 114356, 114360, 114364, 114369, + 114374, 114379, 114383, 114387, 114391, 114395, 114400, 114405, 114410, + 114414, 114418, 114424, 114429, 114435, 114440, 114446, 114452, 114459, + 114465, 114472, 114477, 114484, 114490, 114495, 114502, 114508, 114513, + 114518, 114523, 114528, 114533, 114538, 114542, 114547, 0, 0, 0, 0, 0, 0, + 0, 0, 114551, 114556, 114560, 114564, 114568, 114572, 114576, 114580, + 114584, 114588, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114592, 114596, + 114601, 114605, 114610, 114614, 114619, 114624, 114630, 114635, 114641, + 114645, 114650, 114654, 114659, 114663, 114668, 114673, 114678, 114683, + 114688, 114693, 114698, 114703, 114708, 114713, 114718, 114723, 114728, + 114733, 114738, 114743, 114748, 114753, 114757, 114761, 114766, 114771, + 114776, 114780, 114784, 114788, 114792, 114797, 114802, 114807, 114811, + 114815, 114821, 114826, 114832, 114837, 114843, 114849, 0, 0, 114856, + 114861, 114867, 114872, 114878, 114883, 114888, 114893, 114898, 114903, + 114908, 114912, 114917, 114923, 114928, 114934, 114940, 114946, 114954, + 114967, 114980, 114993, 115007, 115022, 115030, 115041, 115050, 115060, + 115070, 115080, 115091, 115103, 115116, 115124, 115132, 115141, 115147, + 115154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115162, 115166, 115171, 115175, + 115180, 115184, 115189, 115194, 115200, 115205, 115211, 115215, 115220, + 115224, 115229, 115233, 115238, 115243, 115248, 115253, 115258, 115263, + 115268, 115273, 115278, 115283, 115288, 115293, 115298, 115303, 115308, + 115313, 115318, 115323, 115327, 115331, 115336, 115341, 115346, 115350, + 115354, 115358, 115362, 115367, 115372, 115377, 115381, 115385, 115390, + 115396, 115401, 115407, 115412, 115418, 115424, 115431, 115437, 115444, + 115449, 115455, 115460, 115466, 115471, 115476, 115481, 115486, 115490, + 115495, 115500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115505, 115510, 115514, + 115518, 115522, 115526, 115530, 115534, 115538, 115542, 0, 0, 0, 0, 0, 0, + 115546, 115552, 115557, 115564, 115572, 115579, 115587, 115596, 115601, + 115610, 115615, 115623, 115632, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 115642, 115646, 115651, 115655, 115660, 115664, 115669, + 115673, 115678, 115682, 115687, 115691, 115696, 115701, 115706, 115711, + 115716, 115721, 115726, 115731, 115736, 115741, 115746, 115751, 115756, + 115761, 115766, 115771, 115776, 115781, 115785, 115789, 115794, 115799, + 115804, 115808, 115812, 115816, 115820, 115825, 115830, 115834, 115838, + 115843, 115848, 115853, 115859, 115864, 115870, 115875, 115881, 115886, + 115892, 115897, 115903, 115908, 115913, 115920, 0, 0, 0, 0, 0, 0, 115925, + 115930, 115934, 115938, 115942, 115946, 115950, 115954, 115958, 115962, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 112720, 112724, 112728, 112732, 112736, 112740, 112745, - 0, 112750, 0, 112755, 112760, 112765, 112770, 0, 112775, 112780, 112785, - 112790, 112795, 112800, 112805, 112810, 112815, 112820, 112825, 112830, - 112834, 112838, 112843, 0, 112848, 112853, 112857, 112861, 112865, - 112869, 112874, 112878, 112882, 112887, 112892, 0, 0, 0, 0, 0, 0, 112897, - 112901, 112906, 112910, 112915, 112919, 112924, 112928, 112933, 112937, - 112942, 112946, 112951, 112956, 112961, 112966, 112971, 112976, 112981, - 112986, 112991, 112996, 113001, 113006, 113011, 113016, 113021, 113026, - 113031, 113036, 113041, 113046, 113051, 113056, 113060, 113064, 113069, - 113074, 113079, 113084, 113088, 113092, 113096, 113100, 113105, 113110, - 113114, 113118, 113123, 113129, 113134, 113140, 113145, 113151, 113156, - 113162, 113167, 113173, 113178, 0, 0, 0, 0, 0, 113183, 113188, 113192, - 113196, 113200, 113204, 113208, 113212, 113216, 113220, 0, 0, 0, 0, 0, 0, - 113224, 113231, 113236, 113241, 0, 113246, 113250, 113255, 113259, - 113264, 113268, 113273, 113278, 0, 0, 113283, 113288, 0, 0, 113293, - 113298, 113303, 113307, 113312, 113317, 113322, 113327, 113332, 113337, - 113342, 113347, 113352, 113357, 113362, 113367, 113372, 113377, 113382, - 113387, 113392, 113397, 0, 113401, 113405, 113410, 113415, 113420, - 113424, 113428, 0, 113432, 113436, 0, 113441, 113446, 113451, 113456, - 113460, 0, 113464, 113468, 113473, 113478, 113484, 113489, 113495, - 113500, 113506, 113512, 0, 0, 113519, 113525, 0, 0, 113531, 113537, - 113543, 0, 0, 113548, 0, 0, 0, 0, 0, 0, 113552, 0, 0, 0, 0, 0, 113559, - 113564, 113571, 113579, 113585, 113591, 113597, 0, 0, 113604, 113610, - 113615, 113620, 113625, 113630, 113635, 0, 0, 0, 113640, 113645, 113650, - 113655, 113661, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 113666, 113670, 113675, - 113679, 113684, 113688, 113693, 113698, 113704, 113709, 113715, 113719, - 113724, 113728, 113733, 113737, 113742, 113747, 113752, 113757, 113762, - 113767, 113772, 113777, 113782, 113787, 113792, 113797, 113802, 113807, - 113812, 113817, 113822, 113827, 113832, 113837, 113841, 113846, 113850, - 113855, 113860, 113865, 113869, 113874, 113878, 113882, 113887, 113891, - 113896, 113901, 113906, 113911, 113915, 113919, 113925, 113930, 113936, - 113941, 113947, 113953, 113960, 113966, 113973, 113978, 113984, 113989, - 113995, 114000, 114005, 114010, 114015, 114020, 114025, 114031, 114035, - 114039, 114043, 114048, 114052, 114058, 114063, 114068, 114072, 114076, - 114080, 114084, 114088, 114092, 114096, 114100, 114104, 114109, 0, - 114114, 114119, 114124, 114131, 114136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114141, 114145, - 114149, 114154, 114158, 114163, 114167, 114172, 114177, 114183, 114188, - 114194, 114198, 114203, 114207, 114212, 114216, 114221, 114226, 114231, - 114236, 114241, 114246, 114251, 114256, 114261, 114266, 114271, 114276, - 114281, 114286, 114291, 114296, 114301, 114306, 114310, 114314, 114319, - 114324, 114329, 114333, 114337, 114341, 114345, 114350, 114355, 114360, - 114364, 114368, 114374, 114379, 114385, 114390, 114396, 114402, 114409, - 114415, 114422, 114427, 114434, 114440, 114445, 114452, 114458, 114463, - 114468, 114473, 114478, 114483, 114488, 114492, 114497, 0, 0, 0, 0, 0, 0, - 0, 0, 114501, 114506, 114510, 114514, 114518, 114522, 114526, 114530, - 114534, 114538, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114542, 114546, - 114551, 114555, 114560, 114564, 114569, 114574, 114580, 114585, 114591, - 114595, 114600, 114604, 114609, 114613, 114618, 114623, 114628, 114633, - 114638, 114643, 114648, 114653, 114658, 114663, 114668, 114673, 114678, - 114683, 114688, 114693, 114698, 114703, 114707, 114711, 114716, 114721, - 114726, 114730, 114734, 114738, 114742, 114747, 114752, 114757, 114761, - 114765, 114771, 114776, 114782, 114787, 114793, 114799, 0, 0, 114806, - 114811, 114817, 114822, 114828, 114833, 114838, 114843, 114848, 114853, - 114858, 114862, 114867, 114873, 114878, 114884, 114890, 114896, 114904, - 114917, 114930, 114943, 114957, 114972, 114980, 114991, 115000, 115010, - 115020, 115030, 115041, 115053, 115066, 115074, 115082, 115091, 115097, - 115104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115112, 115116, 115121, 115125, - 115130, 115134, 115139, 115144, 115150, 115155, 115161, 115165, 115170, - 115174, 115179, 115183, 115188, 115193, 115198, 115203, 115208, 115213, - 115218, 115223, 115228, 115233, 115238, 115243, 115248, 115253, 115258, - 115263, 115268, 115273, 115277, 115281, 115286, 115291, 115296, 115300, - 115304, 115308, 115312, 115317, 115322, 115327, 115331, 115335, 115340, - 115346, 115351, 115357, 115362, 115368, 115374, 115381, 115387, 115394, - 115399, 115405, 115410, 115416, 115421, 115426, 115431, 115436, 115440, - 115445, 115450, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115455, 115460, 115464, - 115468, 115472, 115476, 115480, 115484, 115488, 115492, 0, 0, 0, 0, 0, 0, - 115496, 115502, 115507, 115514, 115522, 115529, 115537, 115546, 115551, - 115560, 115565, 115573, 115582, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 115592, 115596, 115601, 115605, 115610, 115614, 115619, - 115623, 115628, 115632, 115637, 115641, 115646, 115651, 115656, 115661, - 115666, 115671, 115676, 115681, 115686, 115691, 115696, 115701, 115706, - 115711, 115716, 115721, 115726, 115731, 115735, 115739, 115744, 115749, - 115754, 115758, 115762, 115766, 115770, 115775, 115780, 115784, 115788, - 115793, 115798, 115803, 115809, 115814, 115820, 115825, 115831, 115836, - 115842, 115847, 115853, 115858, 115863, 115870, 0, 0, 0, 0, 0, 0, 115875, - 115880, 115884, 115888, 115892, 115896, 115900, 115904, 115908, 115912, + 0, 0, 0, 0, 0, 0, 115966, 115970, 115975, 115980, 115984, 115989, 115996, + 116000, 116005, 116010, 116014, 116019, 116024, 116029, 116033, 116037, + 116041, 116046, 116050, 116054, 116059, 116064, 116069, 116076, 116081, + 116086, 116091, 0, 0, 116098, 116105, 116112, 116121, 116126, 116132, + 116137, 116143, 116148, 116154, 116159, 116165, 116170, 116176, 116182, + 0, 0, 0, 0, 116187, 116192, 116196, 116200, 116204, 116208, 116212, + 116216, 116220, 116224, 116228, 116233, 116238, 116244, 116249, 116254, + 116259, 116264, 116269, 116274, 116279, 116284, 116289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 115916, 115920, 115925, 115930, 115934, 115939, 115946, - 115950, 115955, 115960, 115964, 115969, 115974, 115979, 115983, 115987, - 115991, 115996, 116000, 116004, 116009, 116014, 116019, 116026, 116031, - 116036, 116041, 0, 0, 116048, 116055, 116062, 116071, 116076, 116082, - 116087, 116093, 116098, 116104, 116109, 116115, 116120, 116126, 116132, - 0, 0, 0, 0, 116137, 116142, 116146, 116150, 116154, 116158, 116162, - 116166, 116170, 116174, 116178, 116183, 116188, 116194, 116199, 116204, - 116209, 116214, 116219, 116224, 116229, 116234, 116239, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 116294, 116298, 116303, 116307, 116312, 116316, 116321, 116325, + 116330, 116334, 116339, 116343, 116348, 116353, 116358, 116363, 116368, + 116373, 116378, 116383, 116388, 116393, 116398, 116403, 116408, 116413, + 116418, 116423, 116428, 116433, 116437, 116441, 116446, 116451, 116456, + 116460, 116464, 116468, 116472, 116477, 116482, 116487, 116491, 116495, + 116500, 116506, 116511, 116517, 116522, 116528, 116534, 116541, 116546, + 116552, 116557, 116563, 116568, 116573, 116578, 116583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 116244, 116248, 116253, 116257, 116262, 116266, 116271, 116275, - 116280, 116284, 116289, 116293, 116298, 116303, 116308, 116313, 116318, - 116323, 116328, 116333, 116338, 116343, 116348, 116353, 116358, 116363, - 116368, 116373, 116378, 116383, 116387, 116391, 116396, 116401, 116406, - 116410, 116414, 116418, 116422, 116427, 116432, 116437, 116441, 116445, - 116450, 116456, 116461, 116467, 116472, 116478, 116484, 116491, 116496, - 116502, 116507, 116513, 116518, 116523, 116528, 116533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116588, + 116596, 116603, 116611, 116619, 116626, 116634, 116642, 116650, 116657, + 116664, 116672, 116680, 116688, 116696, 116704, 116712, 116720, 116728, + 116736, 116744, 116752, 116760, 116768, 116776, 116784, 116792, 116800, + 116808, 116816, 116824, 116832, 116840, 116848, 116855, 116863, 116871, + 116878, 116886, 116894, 116902, 116909, 116916, 116924, 116932, 116940, + 116948, 116956, 116964, 116972, 116980, 116988, 116996, 117004, 117012, + 117020, 117028, 117036, 117044, 117052, 117060, 117068, 117076, 117084, + 117092, 117099, 117105, 117111, 117117, 117123, 117129, 117135, 117141, + 117147, 117153, 117160, 117167, 117174, 117181, 117188, 117195, 117202, + 117209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117216, 117222, 117228, + 117235, 117241, 117248, 117254, 117261, 0, 0, 117267, 0, 0, 117273, + 117279, 117286, 117293, 117300, 117307, 117314, 117321, 0, 117328, + 117335, 0, 117342, 117349, 117356, 117363, 117370, 117377, 117384, + 117391, 117397, 117403, 117410, 117417, 117424, 117430, 117436, 117443, + 117449, 117455, 117462, 117469, 117476, 117482, 117488, 117495, 117502, + 117510, 117517, 117525, 117532, 117540, 0, 117547, 117555, 0, 0, 117562, + 117569, 117576, 117583, 117589, 117598, 117605, 117611, 117618, 117625, + 117632, 117640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117650, 117657, 117663, + 117669, 117675, 117681, 117687, 117693, 117699, 117705, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116538, - 116546, 116553, 116561, 116569, 116576, 116584, 116592, 116600, 116607, - 116614, 116622, 116630, 116638, 116646, 116654, 116662, 116670, 116678, - 116686, 116694, 116702, 116710, 116718, 116726, 116734, 116742, 116750, - 116758, 116766, 116774, 116782, 116790, 116798, 116805, 116813, 116821, - 116828, 116836, 116844, 116852, 116859, 116866, 116874, 116882, 116890, - 116898, 116906, 116914, 116922, 116930, 116938, 116946, 116954, 116962, - 116970, 116978, 116986, 116994, 117002, 117010, 117018, 117026, 117034, - 117042, 117049, 117055, 117061, 117067, 117073, 117079, 117085, 117091, - 117097, 117103, 117110, 117117, 117124, 117131, 117138, 117145, 117152, - 117159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117166, 117172, 117178, - 117185, 117191, 117198, 117204, 117211, 0, 0, 117217, 0, 0, 117223, - 117229, 117236, 117243, 117250, 117257, 117264, 117271, 0, 117278, - 117285, 0, 117292, 117299, 117306, 117313, 117320, 117327, 117334, - 117341, 117347, 117353, 117360, 117367, 117374, 117380, 117386, 117393, - 117399, 117405, 117412, 117419, 117426, 117432, 117438, 117445, 117452, - 117460, 117467, 117475, 117482, 117490, 0, 117497, 117505, 0, 0, 117512, - 117519, 117526, 117533, 117539, 117548, 117555, 117561, 117568, 117575, - 117582, 117590, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117600, 117607, 117613, - 117619, 117625, 117631, 117637, 117643, 117649, 117655, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117711, 117715, 117720, + 117724, 117729, 117733, 117738, 117743, 0, 0, 117749, 117753, 117758, + 117762, 117767, 117771, 117776, 117781, 117786, 117791, 117796, 117801, + 117806, 117811, 117816, 117821, 117826, 117831, 117836, 117841, 117846, + 117851, 117856, 117861, 117865, 117869, 117874, 117879, 117884, 117888, + 117892, 117896, 117900, 117905, 117910, 117915, 117919, 117923, 117928, + 117933, 117939, 117944, 117950, 117955, 117961, 117967, 0, 0, 117974, + 117979, 117985, 117990, 117996, 118001, 118006, 118011, 118016, 118021, + 118025, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 118032, 118037, 118043, 118050, 118056, 118062, 118069, + 118075, 118082, 118089, 118097, 118104, 118109, 118115, 118121, 118127, + 118133, 118139, 118145, 118151, 118157, 118163, 118169, 118175, 118181, + 118187, 118193, 118199, 118205, 118211, 118216, 118221, 118227, 118233, + 118239, 118244, 118250, 118256, 118262, 118268, 118274, 118280, 118286, + 118291, 118296, 118301, 118307, 118313, 118319, 118324, 118329, 118335, + 118341, 118347, 118353, 118362, 118371, 118377, 118383, 118390, 118397, + 118404, 118411, 118419, 118426, 118434, 118440, 118446, 118453, 118460, + 118469, 118479, 0, 0, 0, 0, 0, 0, 0, 0, 118484, 118488, 118493, 118499, + 118504, 118509, 118514, 118520, 118526, 118532, 118538, 118544, 118550, + 118554, 118559, 118564, 118569, 118574, 118579, 118584, 118589, 118594, + 118599, 118604, 118609, 118614, 118619, 118624, 118629, 118634, 118639, + 118644, 118648, 118652, 118657, 118662, 118667, 118671, 118676, 118681, + 118686, 118691, 118696, 118701, 118705, 118709, 118713, 118718, 118723, + 118728, 118732, 118736, 118741, 118746, 118751, 118757, 118763, 118770, + 118776, 118783, 118790, 118797, 118804, 118811, 118818, 118825, 118831, + 118837, 118844, 118851, 118858, 118863, 118868, 118873, 118877, 118882, + 118887, 118893, 118898, 118914, 118928, 118939, 118945, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 118951, 118957, 118963, 118969, 118975, 118980, + 118986, 118992, 118998, 119004, 119010, 119016, 119022, 119026, 119030, + 119034, 119038, 119046, 119054, 119062, 119070, 119079, 119088, 119097, + 119106, 119114, 119123, 119132, 119140, 119149, 119158, 119167, 119176, + 119184, 119193, 119201, 119210, 119219, 119227, 119235, 119243, 119251, + 119259, 119268, 119277, 119287, 119297, 119307, 119317, 119327, 119336, + 119346, 119356, 119366, 119377, 119387, 119399, 119411, 119422, 119436, + 119447, 119457, 119469, 119480, 119490, 119502, 119514, 119525, 119536, + 119546, 119556, 119568, 119579, 0, 0, 0, 0, 0, 0, 0, 119591, 119595, + 119602, 119606, 119612, 119618, 119626, 119634, 119642, 119650, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117661, 117665, 117670, - 117674, 117679, 117683, 117688, 117693, 0, 0, 117699, 117703, 117708, - 117712, 117717, 117721, 117726, 117731, 117736, 117741, 117746, 117751, - 117756, 117761, 117766, 117771, 117776, 117781, 117786, 117791, 117796, - 117801, 117806, 117811, 117815, 117819, 117824, 117829, 117834, 117838, - 117842, 117846, 117850, 117855, 117860, 117865, 117869, 117873, 117878, - 117883, 117889, 117894, 117900, 117905, 117911, 117917, 0, 0, 117924, - 117929, 117935, 117940, 117946, 117951, 117956, 117961, 117966, 117971, - 117975, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 117982, 117987, 117993, 118000, 118006, 118012, 118019, - 118025, 118032, 118039, 118047, 118054, 118059, 118065, 118071, 118077, - 118083, 118089, 118095, 118101, 118107, 118113, 118119, 118125, 118131, - 118137, 118143, 118149, 118155, 118161, 118166, 118171, 118177, 118183, - 118189, 118194, 118200, 118206, 118212, 118218, 118224, 118230, 118236, - 118241, 118246, 118251, 118257, 118263, 118269, 118274, 118279, 118285, - 118291, 118297, 118303, 118312, 118321, 118327, 118333, 118340, 118347, - 118354, 118361, 118369, 118376, 118384, 118390, 118396, 118403, 118410, - 118419, 118429, 0, 0, 0, 0, 0, 0, 0, 0, 118434, 118438, 118443, 118449, - 118454, 118459, 118464, 118470, 118476, 118482, 118488, 118494, 118500, - 118504, 118509, 118514, 118519, 118524, 118529, 118534, 118539, 118544, - 118549, 118554, 118559, 118564, 118569, 118574, 118579, 118584, 118589, - 118594, 118598, 118602, 118607, 118612, 118617, 118621, 118626, 118631, - 118636, 118641, 118646, 118651, 118655, 118659, 118663, 118668, 118673, - 118678, 118682, 118686, 118691, 118696, 118701, 118707, 118713, 118720, - 118726, 118733, 118740, 118747, 118754, 118761, 118768, 118775, 118781, - 118787, 118794, 118801, 118808, 118813, 118818, 118823, 118827, 118832, - 118837, 118843, 118848, 118864, 118878, 118889, 118895, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 118901, 118907, 118913, 118919, 118925, 118930, - 118936, 118942, 118948, 118954, 118960, 118966, 118972, 118976, 118980, - 118984, 118988, 118996, 119004, 119012, 119020, 119029, 119038, 119047, - 119056, 119064, 119073, 119082, 119090, 119099, 119108, 119117, 119126, - 119134, 119143, 119151, 119160, 119169, 119177, 119185, 119193, 119201, - 119209, 119218, 119227, 119237, 119247, 119257, 119267, 119277, 119286, - 119296, 119306, 119316, 119327, 119337, 119349, 119361, 119372, 119386, - 119397, 119407, 119419, 119430, 119440, 119452, 119464, 119475, 119486, - 119496, 119506, 119518, 119529, 0, 0, 0, 0, 0, 0, 0, 119541, 119545, - 119550, 119554, 119559, 119563, 119568, 119573, 119579, 0, 119584, - 119588, 119593, 119597, 119602, 119606, 119611, 119616, 119621, 119626, - 119631, 119636, 119641, 119646, 119651, 119656, 119661, 119666, 119671, - 119676, 119681, 119686, 119691, 119696, 119700, 119704, 119709, 119714, - 119719, 119723, 119727, 119731, 119735, 119740, 119745, 119750, 119754, - 119758, 119764, 119769, 119775, 119780, 119786, 119792, 119799, 0, - 119805, 119810, 119816, 119821, 119827, 119832, 119837, 119842, 119847, - 119852, 119856, 119861, 119867, 119873, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 119879, 119884, 119888, 119892, 119896, 119900, 119904, 119908, 119912, - 119916, 119920, 119924, 119928, 119932, 119936, 119940, 119944, 119948, - 119952, 119956, 119961, 119966, 119971, 119976, 119981, 119986, 119991, - 119996, 120001, 0, 0, 0, 120008, 120013, 120018, 120022, 120027, 120032, - 120037, 120042, 120047, 120052, 120057, 120062, 120067, 120072, 120076, - 120080, 120085, 120090, 120094, 120099, 120104, 120109, 120114, 120119, - 120124, 120129, 120133, 120137, 120141, 120146, 120150, 120154, 0, 0, - 120158, 120164, 120171, 120178, 120185, 120192, 120199, 120206, 120213, - 120220, 120227, 120234, 120240, 120246, 120253, 120260, 120266, 120273, - 120280, 120287, 120294, 120301, 0, 120308, 120314, 120320, 120326, - 120333, 120339, 120345, 120351, 120357, 120362, 120367, 120372, 120377, - 120382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 120387, 120392, 120398, 120403, 120409, 120414, 120420, 0, - 120425, 120431, 0, 120436, 120442, 120447, 120453, 120459, 120465, - 120471, 120477, 120483, 120489, 120495, 120501, 120507, 120513, 120519, - 120525, 120531, 120537, 120543, 120549, 120555, 120560, 120565, 120571, - 120577, 120583, 120588, 120593, 120598, 120603, 120609, 120615, 120621, - 120626, 120631, 120637, 120643, 120649, 120655, 120662, 120668, 120675, - 120681, 120688, 0, 0, 0, 120695, 0, 120701, 120708, 0, 120714, 120721, - 120727, 120733, 120739, 120745, 120751, 120756, 120761, 0, 0, 0, 0, 0, 0, - 0, 0, 120766, 120772, 120777, 120782, 120787, 120792, 120797, 120802, - 120807, 120812, 0, 0, 0, 0, 0, 0, 120817, 120822, 120828, 120833, 120839, - 120844, 0, 120850, 120856, 0, 120862, 120868, 120874, 120879, 120885, - 120891, 120897, 120902, 120907, 120913, 120919, 120925, 120930, 120936, - 120942, 120948, 120954, 120959, 120965, 120971, 120977, 120983, 120989, - 120995, 121001, 121007, 121013, 121019, 121024, 121030, 121035, 121040, - 121045, 121052, 121058, 121065, 121071, 0, 121078, 121085, 0, 121092, - 121099, 121106, 121112, 121118, 121123, 0, 0, 0, 0, 0, 0, 0, 121128, - 121134, 121139, 121144, 121149, 121154, 121159, 121164, 121169, 121174, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119654, 119658, + 119663, 119667, 119672, 119676, 119681, 119686, 119692, 0, 119697, + 119701, 119706, 119710, 119715, 119719, 119724, 119729, 119734, 119739, + 119744, 119749, 119754, 119759, 119764, 119769, 119774, 119779, 119784, + 119789, 119794, 119799, 119804, 119809, 119813, 119817, 119822, 119827, + 119832, 119836, 119840, 119844, 119848, 119853, 119858, 119863, 119867, + 119871, 119877, 119882, 119888, 119893, 119899, 119905, 119912, 0, + 119918, 119923, 119929, 119934, 119940, 119945, 119950, 119955, 119960, + 119965, 119969, 119974, 119980, 119986, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 119992, 119997, 120001, 120005, 120009, 120013, 120017, 120021, 120025, + 120029, 120033, 120037, 120041, 120045, 120049, 120053, 120057, 120061, + 120065, 120069, 120074, 120079, 120084, 120089, 120094, 120099, 120104, + 120109, 120114, 0, 0, 0, 120121, 120126, 120131, 120135, 120140, 120145, + 120150, 120155, 120160, 120165, 120170, 120175, 120180, 120185, 120189, + 120193, 120198, 120203, 120207, 120212, 120217, 120222, 120227, 120232, + 120237, 120242, 120246, 120250, 120254, 120259, 120263, 120267, 0, 0, + 120271, 120277, 120284, 120291, 120298, 120305, 120312, 120319, 120326, + 120333, 120340, 120347, 120353, 120359, 120366, 120373, 120379, 120386, + 120393, 120400, 120407, 120414, 0, 120421, 120427, 120433, 120439, + 120446, 120452, 120458, 120464, 120470, 120475, 120480, 120485, 120490, + 120495, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 120500, 120505, 120511, 120516, 120522, 120527, 120533, 0, + 120538, 120544, 0, 120549, 120555, 120560, 120566, 120572, 120578, + 120584, 120590, 120596, 120602, 120608, 120614, 120620, 120626, 120632, + 120638, 120644, 120650, 120656, 120662, 120668, 120673, 120678, 120684, + 120690, 120696, 120701, 120706, 120711, 120716, 120722, 120728, 120734, + 120739, 120744, 120750, 120756, 120762, 120768, 120775, 120781, 120788, + 120794, 120801, 0, 0, 0, 120808, 0, 120814, 120821, 0, 120827, 120834, + 120840, 120846, 120852, 120858, 120864, 120869, 120874, 0, 0, 0, 0, 0, 0, + 0, 0, 120879, 120885, 120890, 120895, 120900, 120905, 120910, 120915, + 120920, 120925, 0, 0, 0, 0, 0, 0, 120930, 120935, 120941, 120946, 120952, + 120957, 0, 120963, 120969, 0, 120975, 120981, 120987, 120992, 120998, + 121004, 121010, 121015, 121020, 121026, 121032, 121038, 121043, 121049, + 121055, 121061, 121067, 121072, 121078, 121084, 121090, 121096, 121102, + 121108, 121114, 121120, 121126, 121132, 121137, 121143, 121148, 121153, + 121158, 121165, 121171, 121178, 121184, 0, 121191, 121198, 0, 121205, + 121212, 121219, 121225, 121231, 121236, 0, 0, 0, 0, 0, 0, 0, 121241, + 121247, 121252, 121257, 121262, 121267, 121272, 121277, 121282, 121287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -23492,1692 +23636,1727 @@ static const unsigned int phrasebook_offset2[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121179, 121183, 121188, 121193, - 121197, 121202, 121206, 121211, 121216, 121220, 121225, 121230, 121235, - 121239, 121243, 121247, 121252, 121256, 121260, 121264, 121269, 121274, - 121279, 121284, 121288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121292, 121296, 121301, 121306, + 121310, 121315, 121319, 121324, 121329, 121333, 121338, 121343, 121348, + 121352, 121356, 121360, 121365, 121369, 121373, 121377, 121382, 121387, + 121392, 121397, 121401, 0, 0, 0, 0, 0, 0, 0, 121408, 121413, 121418, + 121423, 121428, 121432, 121437, 121441, 121446, 121450, 121455, 121460, + 121466, 121471, 121477, 121481, 121486, 0, 121490, 121494, 121499, + 121504, 121509, 121514, 121519, 121524, 121529, 121534, 121539, 121544, + 121549, 121554, 121559, 121564, 121569, 121574, 121579, 121584, 121588, + 121592, 121597, 121602, 121607, 121611, 121615, 121619, 121623, 121628, + 121633, 121638, 121642, 121646, 121651, 121657, 121665, 121670, 121676, + 121681, 121687, 0, 0, 0, 121693, 121698, 121704, 121710, 121715, 121719, + 121723, 121728, 121736, 121746, 121752, 121760, 121766, 121773, 121781, + 121787, 121795, 121801, 121809, 121814, 121818, 121822, 121826, 121830, + 121834, 121838, 121842, 121846, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121295, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 121300, 121306, 121312, 121318, 121324, 121330, - 121336, 121342, 121348, 121354, 121360, 121366, 121372, 121378, 121384, - 121390, 121396, 121402, 121408, 121414, 121420, 121429, 121433, 121437, - 121441, 121445, 121449, 121453, 121457, 121461, 121465, 121469, 121473, - 121477, 121481, 121485, 121489, 121495, 121501, 121505, 121511, 121517, - 121522, 121526, 121531, 121535, 121539, 121545, 121551, 121555, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121559, 121567, 121570, 121575, 121581, - 121589, 121594, 121600, 121608, 121614, 121620, 121624, 121628, 121635, - 121644, 121651, 121660, 121666, 121675, 121682, 121689, 121696, 121706, - 121712, 121716, 121723, 121732, 121742, 121749, 121756, 121760, 121764, - 121771, 121781, 121785, 121792, 121799, 121806, 121812, 121819, 121826, - 121833, 121840, 121844, 121848, 121852, 121859, 121863, 121870, 121877, - 121891, 121900, 121904, 121908, 121912, 121919, 121923, 121927, 121931, - 121939, 121947, 121966, 121976, 121996, 122000, 122004, 122008, 122012, - 122016, 122020, 122024, 122031, 122035, 122038, 122042, 122046, 122052, - 122059, 122068, 122072, 122081, 122090, 122098, 122102, 122109, 122113, - 122117, 122121, 122125, 122136, 122145, 122154, 122163, 122172, 122184, - 122193, 122202, 122211, 122219, 122228, 122240, 122249, 122257, 122266, - 122278, 122287, 122296, 122308, 122317, 122326, 122338, 122347, 122351, - 122355, 122359, 122363, 122367, 122371, 122375, 122382, 122386, 122390, - 122401, 122405, 122409, 122416, 122422, 122428, 122432, 122439, 122443, - 122447, 122451, 122455, 122459, 122463, 122469, 122477, 122481, 122485, - 122488, 122495, 122507, 122511, 122523, 122530, 122537, 122544, 122551, - 122557, 122561, 122565, 122569, 122573, 122580, 122589, 122596, 122604, - 122612, 122618, 122622, 122626, 122630, 122634, 122640, 122649, 122661, - 122668, 122675, 122684, 122695, 122701, 122710, 122719, 122726, 122735, - 122742, 122748, 122758, 122765, 122772, 122779, 122786, 122790, 122796, - 122800, 122811, 122819, 122828, 122840, 122847, 122854, 122864, 122871, - 122880, 122887, 122896, 122903, 122910, 122920, 122927, 122934, 122943, - 122950, 122962, 122971, 122978, 122985, 122992, 123001, 123011, 123024, - 123031, 123040, 123050, 123057, 123066, 123079, 123086, 123093, 123100, - 123110, 123120, 123126, 123136, 123143, 123150, 123160, 123166, 123173, - 123180, 123187, 123197, 123204, 123211, 123218, 123224, 123231, 123241, - 123248, 123252, 123260, 123264, 123276, 123280, 123294, 123298, 123302, - 123306, 123310, 123316, 123323, 123331, 123335, 123339, 123343, 123347, - 123354, 123358, 123364, 123370, 123378, 123382, 123389, 123397, 123401, - 123405, 123411, 123415, 123424, 123433, 123440, 123450, 123456, 123460, - 123464, 123472, 123479, 123486, 123492, 123496, 123504, 123508, 123515, - 123527, 123534, 123544, 123550, 123554, 123563, 123570, 123579, 123583, - 123587, 123594, 123598, 123602, 123606, 123610, 123613, 123619, 123625, - 123629, 123633, 123640, 123647, 123654, 123661, 123668, 123675, 123682, - 123689, 123695, 123699, 123703, 123710, 123717, 123724, 123731, 123738, - 123742, 123745, 123750, 123754, 123758, 123767, 123776, 123780, 123784, - 123790, 123796, 123813, 123819, 123823, 123832, 123836, 123840, 123847, - 123855, 123863, 123869, 123873, 123877, 123881, 123885, 123888, 123894, - 123901, 123911, 123918, 123925, 123932, 123938, 123945, 123952, 123959, - 123966, 123973, 123982, 123989, 124001, 124008, 124015, 124025, 124036, - 124043, 124050, 124057, 124064, 124071, 124078, 124085, 124092, 124099, - 124106, 124116, 124126, 124136, 124143, 124153, 124160, 124167, 124174, - 124181, 124187, 124194, 124201, 124208, 124215, 124222, 124229, 124236, - 124243, 124249, 124256, 124263, 124272, 124279, 124286, 124290, 124298, - 124302, 124306, 124310, 124314, 124318, 124325, 124329, 124338, 124342, - 124349, 124357, 124361, 124365, 124369, 124382, 124398, 124402, 124406, - 124413, 124419, 124426, 124430, 124434, 124438, 124442, 124446, 124453, - 124457, 124475, 124479, 124483, 124490, 124494, 124498, 124504, 124508, - 124512, 124520, 124524, 124528, 124531, 124535, 124541, 124552, 124561, - 124570, 124577, 124584, 124595, 124602, 124609, 124616, 124623, 124630, - 124637, 124644, 124654, 124660, 124667, 124677, 124686, 124693, 124702, - 124712, 124719, 124726, 124733, 124740, 124752, 124759, 124766, 124773, - 124780, 124787, 124797, 124804, 124811, 124821, 124834, 124846, 124853, - 124863, 124870, 124877, 124884, 124898, 124904, 124912, 124922, 124932, - 124939, 124946, 124952, 124956, 124963, 124973, 124979, 124992, 124996, - 125000, 125007, 125011, 125018, 125028, 125032, 125036, 125040, 125044, - 125048, 125055, 125059, 125066, 125073, 125080, 125089, 125098, 125108, - 125115, 125122, 125129, 125139, 125146, 125156, 125163, 125173, 125180, - 125187, 125197, 125207, 125214, 125220, 125228, 125236, 125242, 125248, - 125252, 125256, 125263, 125271, 125277, 125281, 125285, 125289, 125296, - 125308, 125311, 125318, 125324, 125328, 125332, 125336, 125340, 125344, - 125348, 125352, 125356, 125360, 125364, 125371, 125375, 125381, 125385, - 125389, 125393, 125399, 125406, 125413, 125420, 125431, 125439, 125443, - 125449, 125458, 125465, 125471, 125474, 125478, 125482, 125488, 125497, - 125505, 125509, 125515, 125519, 125523, 125527, 125533, 125540, 125546, - 125550, 125556, 125560, 125564, 125573, 125585, 125589, 125596, 125603, - 125613, 125620, 125632, 125639, 125646, 125653, 125664, 125674, 125687, - 125697, 125704, 125708, 125712, 125716, 125720, 125729, 125738, 125747, - 125764, 125773, 125779, 125786, 125794, 125807, 125811, 125820, 125829, - 125838, 125847, 125858, 125867, 125875, 125884, 125893, 125902, 125911, - 125921, 125924, 125928, 125932, 125936, 125940, 125944, 125950, 125957, - 125964, 125971, 125977, 125983, 125990, 125996, 126003, 126011, 126015, - 126022, 126029, 126036, 126044, 126047, 126051, 126055, 126059, 126062, - 126068, 126072, 126078, 126085, 126092, 126098, 126105, 126112, 126119, - 126126, 126133, 126140, 126147, 126154, 126161, 126168, 126175, 126182, - 126189, 126196, 126202, 126206, 126215, 126219, 126223, 126227, 126231, - 126237, 126244, 126251, 126258, 126265, 126272, 126278, 126286, 126290, - 126294, 126298, 126302, 126308, 126325, 126342, 126346, 126350, 126354, - 126358, 126362, 126366, 126372, 126379, 126383, 126389, 126396, 126403, - 126410, 126417, 126424, 126433, 126440, 126447, 126454, 126461, 126465, - 126469, 126475, 126487, 126491, 126495, 126504, 126508, 126512, 126516, - 126522, 126526, 126530, 126539, 126543, 126547, 126551, 126558, 126562, - 126566, 126570, 126574, 126578, 126582, 126586, 126590, 126596, 126603, - 126610, 126616, 126620, 126637, 126643, 126647, 126654, 126661, 126668, - 126675, 126682, 126689, 126693, 126697, 126701, 126707, 126711, 126717, - 126721, 126725, 126732, 126739, 126756, 126760, 126764, 126768, 126772, - 126776, 126788, 126791, 126796, 126801, 126816, 126826, 126838, 126842, - 126846, 126850, 126856, 126863, 126870, 126880, 126892, 126898, 126904, - 126913, 126917, 126921, 126928, 126938, 126945, 126951, 126955, 126959, - 126966, 126972, 126976, 126982, 126986, 126994, 127000, 127004, 127012, - 127020, 127027, 127033, 127040, 127047, 127057, 127067, 127071, 127075, - 127079, 127083, 127089, 127096, 127102, 127109, 127116, 127123, 127132, - 127139, 127146, 127152, 127159, 127166, 127173, 127180, 127187, 127194, - 127200, 127207, 127214, 127221, 127230, 127237, 127244, 127248, 127254, - 127258, 127264, 127271, 127278, 127285, 127289, 127293, 127297, 127301, - 127305, 127312, 127316, 127320, 127326, 127334, 127338, 127342, 127346, - 127350, 127357, 127361, 127365, 127373, 127377, 127381, 127385, 127389, - 127395, 127399, 127403, 127409, 127416, 127422, 127429, 127441, 127445, - 127452, 127459, 127466, 127473, 127485, 127492, 127496, 127500, 127504, - 127511, 127518, 127525, 127532, 127542, 127549, 127555, 127562, 127569, - 127576, 127583, 127592, 127602, 127609, 127613, 127620, 127624, 127628, - 127632, 127639, 127646, 127656, 127662, 127666, 127675, 127679, 127686, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 121850, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121855, 121861, + 121867, 121873, 121879, 121885, 121891, 121897, 121903, 121909, 121915, + 121921, 121927, 121933, 121939, 121945, 121951, 121957, 121963, 121969, + 121975, 121984, 121988, 121992, 121996, 122000, 122004, 122008, 122012, + 122016, 122020, 122024, 122028, 122032, 122036, 122040, 122044, 122050, + 122056, 122060, 122066, 122072, 122077, 122081, 122086, 122090, 122094, + 122100, 122106, 122110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122114, + 122122, 122125, 122130, 122136, 122144, 122149, 122155, 122163, 122169, + 122175, 122179, 122183, 122190, 122199, 122206, 122215, 122221, 122230, + 122237, 122244, 122251, 122261, 122267, 122271, 122278, 122287, 122297, + 122304, 122311, 122315, 122319, 122326, 122336, 122340, 122347, 122354, + 122361, 122367, 122374, 122381, 122388, 122395, 122399, 122403, 122407, + 122414, 122418, 122425, 122432, 122446, 122455, 122459, 122463, 122467, + 122474, 122478, 122482, 122486, 122494, 122502, 122521, 122531, 122551, + 122555, 122559, 122563, 122567, 122571, 122575, 122579, 122586, 122590, + 122593, 122597, 122601, 122607, 122614, 122623, 122627, 122636, 122645, + 122653, 122657, 122664, 122668, 122672, 122676, 122680, 122691, 122700, + 122709, 122718, 122727, 122739, 122748, 122757, 122766, 122774, 122783, + 122795, 122804, 122812, 122821, 122833, 122842, 122851, 122863, 122872, + 122881, 122893, 122902, 122906, 122910, 122914, 122918, 122922, 122926, + 122930, 122937, 122941, 122945, 122956, 122960, 122964, 122971, 122977, + 122983, 122987, 122994, 122998, 123002, 123006, 123010, 123014, 123018, + 123024, 123032, 123036, 123040, 123043, 123050, 123062, 123066, 123078, + 123085, 123092, 123099, 123106, 123112, 123116, 123120, 123124, 123128, + 123135, 123144, 123151, 123159, 123167, 123173, 123177, 123181, 123185, + 123189, 123195, 123204, 123216, 123223, 123230, 123239, 123250, 123256, + 123265, 123274, 123281, 123290, 123297, 123303, 123313, 123320, 123327, + 123334, 123341, 123345, 123351, 123355, 123366, 123374, 123383, 123395, + 123402, 123409, 123419, 123426, 123435, 123442, 123451, 123458, 123465, + 123475, 123482, 123489, 123498, 123505, 123517, 123526, 123533, 123540, + 123547, 123556, 123566, 123579, 123586, 123595, 123605, 123612, 123621, + 123634, 123641, 123648, 123655, 123665, 123675, 123681, 123691, 123698, + 123705, 123715, 123721, 123728, 123735, 123742, 123752, 123759, 123766, + 123773, 123779, 123786, 123796, 123803, 123807, 123815, 123819, 123831, + 123835, 123849, 123853, 123857, 123861, 123865, 123871, 123878, 123886, + 123890, 123894, 123898, 123902, 123909, 123913, 123919, 123925, 123933, + 123937, 123944, 123952, 123956, 123960, 123966, 123970, 123979, 123988, + 123995, 124005, 124011, 124015, 124019, 124027, 124034, 124041, 124047, + 124051, 124059, 124063, 124070, 124082, 124089, 124099, 124105, 124109, + 124118, 124125, 124134, 124138, 124142, 124149, 124153, 124157, 124161, + 124165, 124168, 124174, 124180, 124184, 124188, 124195, 124202, 124209, + 124216, 124223, 124230, 124237, 124244, 124250, 124254, 124258, 124265, + 124272, 124279, 124286, 124293, 124297, 124300, 124305, 124309, 124313, + 124322, 124331, 124335, 124339, 124345, 124351, 124368, 124374, 124378, + 124387, 124391, 124395, 124402, 124410, 124418, 124424, 124428, 124432, + 124436, 124440, 124443, 124449, 124456, 124466, 124473, 124480, 124487, + 124493, 124500, 124507, 124514, 124521, 124528, 124537, 124544, 124556, + 124563, 124570, 124580, 124591, 124598, 124605, 124612, 124619, 124626, + 124633, 124640, 124647, 124654, 124661, 124671, 124681, 124691, 124698, + 124708, 124715, 124722, 124729, 124736, 124742, 124749, 124756, 124763, + 124770, 124777, 124784, 124791, 124798, 124804, 124811, 124818, 124827, + 124834, 124841, 124845, 124853, 124857, 124861, 124865, 124869, 124873, + 124880, 124884, 124893, 124897, 124904, 124912, 124916, 124920, 124924, + 124937, 124953, 124957, 124961, 124968, 124974, 124981, 124985, 124989, + 124993, 124997, 125001, 125008, 125012, 125030, 125034, 125038, 125045, + 125049, 125053, 125059, 125063, 125067, 125075, 125079, 125083, 125086, + 125090, 125096, 125107, 125116, 125125, 125132, 125139, 125150, 125157, + 125164, 125171, 125178, 125185, 125192, 125199, 125209, 125215, 125222, + 125232, 125241, 125248, 125257, 125267, 125274, 125281, 125288, 125295, + 125307, 125314, 125321, 125328, 125335, 125342, 125352, 125359, 125366, + 125376, 125389, 125401, 125408, 125418, 125425, 125432, 125439, 125453, + 125459, 125467, 125477, 125487, 125494, 125501, 125507, 125511, 125518, + 125528, 125534, 125547, 125551, 125555, 125562, 125566, 125573, 125583, + 125587, 125591, 125595, 125599, 125603, 125610, 125614, 125621, 125628, + 125635, 125644, 125653, 125663, 125670, 125677, 125684, 125694, 125701, + 125711, 125718, 125728, 125735, 125742, 125752, 125762, 125769, 125775, + 125783, 125791, 125797, 125803, 125807, 125811, 125818, 125826, 125832, + 125836, 125840, 125844, 125851, 125863, 125866, 125873, 125879, 125883, + 125887, 125891, 125895, 125899, 125903, 125907, 125911, 125915, 125919, + 125926, 125930, 125936, 125940, 125944, 125948, 125954, 125961, 125968, + 125975, 125986, 125994, 125998, 126004, 126013, 126020, 126026, 126029, + 126033, 126037, 126043, 126052, 126060, 126064, 126070, 126074, 126078, + 126082, 126088, 126095, 126101, 126105, 126111, 126115, 126119, 126128, + 126140, 126144, 126151, 126158, 126168, 126175, 126187, 126194, 126201, + 126208, 126219, 126229, 126242, 126252, 126259, 126263, 126267, 126271, + 126275, 126284, 126293, 126302, 126319, 126328, 126334, 126341, 126349, + 126362, 126366, 126375, 126384, 126393, 126402, 126413, 126422, 126430, + 126439, 126448, 126457, 126466, 126476, 126479, 126483, 126487, 126491, + 126495, 126499, 126505, 126512, 126519, 126526, 126532, 126538, 126545, + 126551, 126558, 126566, 126570, 126577, 126584, 126591, 126599, 126602, + 126606, 126610, 126614, 126617, 126623, 126627, 126633, 126640, 126647, + 126653, 126660, 126667, 126674, 126681, 126688, 126695, 126702, 126709, + 126716, 126723, 126730, 126737, 126744, 126751, 126757, 126761, 126770, + 126774, 126778, 126782, 126786, 126792, 126799, 126806, 126813, 126820, + 126827, 126833, 126841, 126845, 126849, 126853, 126857, 126863, 126880, + 126897, 126901, 126905, 126909, 126913, 126917, 126921, 126927, 126934, + 126938, 126944, 126951, 126958, 126965, 126972, 126979, 126988, 126995, + 127002, 127009, 127016, 127020, 127024, 127030, 127042, 127046, 127050, + 127059, 127063, 127067, 127071, 127077, 127081, 127085, 127094, 127098, + 127102, 127106, 127113, 127117, 127121, 127125, 127129, 127133, 127137, + 127141, 127145, 127151, 127158, 127165, 127171, 127175, 127192, 127198, + 127202, 127209, 127216, 127223, 127230, 127237, 127244, 127248, 127252, + 127256, 127262, 127266, 127272, 127276, 127280, 127287, 127294, 127311, + 127315, 127319, 127323, 127327, 127331, 127343, 127346, 127351, 127356, + 127371, 127381, 127393, 127397, 127401, 127405, 127411, 127418, 127425, + 127435, 127447, 127453, 127459, 127468, 127472, 127476, 127483, 127493, + 127500, 127506, 127510, 127514, 127521, 127527, 127531, 127537, 127541, + 127549, 127555, 127559, 127567, 127575, 127582, 127588, 127595, 127602, + 127612, 127622, 127626, 127630, 127634, 127638, 127644, 127651, 127657, + 127664, 127671, 127678, 127687, 127694, 127701, 127707, 127714, 127721, + 127728, 127735, 127742, 127749, 127755, 127762, 127769, 127776, 127785, + 127792, 127799, 127803, 127809, 127813, 127819, 127826, 127833, 127840, + 127844, 127848, 127852, 127856, 127860, 127867, 127871, 127875, 127881, + 127889, 127893, 127897, 127901, 127905, 127912, 127916, 127920, 127928, + 127932, 127936, 127940, 127944, 127950, 127954, 127958, 127964, 127971, + 127977, 127984, 127996, 128000, 128007, 128014, 128021, 128028, 128040, + 128047, 128051, 128055, 128059, 128066, 128073, 128080, 128087, 128097, + 128104, 128110, 128117, 128124, 128131, 128138, 128147, 128157, 128164, + 128168, 128175, 128179, 128183, 128187, 128194, 128201, 128211, 128217, + 128221, 128230, 128234, 128241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 127690, 127696, 127702, 127709, 127716, 127723, 127730, - 127737, 127744, 127750, 127757, 127764, 127771, 127778, 127785, 127792, - 127798, 127804, 127810, 127816, 127822, 127828, 127834, 127840, 127846, - 127853, 127860, 127867, 127874, 127881, 127888, 127894, 127900, 127906, - 127913, 127920, 127926, 127932, 127941, 127948, 127955, 127962, 127969, - 127976, 127983, 127989, 127995, 128001, 128010, 128017, 128024, 128035, - 128046, 128052, 128058, 128064, 128073, 128080, 128087, 128097, 128107, - 128118, 128129, 128141, 128154, 128165, 128176, 128188, 128201, 128212, - 128223, 128234, 128245, 128256, 128268, 128276, 128284, 128293, 128302, - 128311, 128317, 128323, 128329, 128336, 128346, 128353, 128363, 128368, - 128373, 128379, 128385, 128393, 128401, 128410, 128421, 128432, 128440, - 128448, 128457, 128466, 128474, 128481, 128489, 128497, 128504, 128511, - 128520, 128529, 128538, 128547, 128556, 0, 128565, 128576, 128583, - 128591, 128599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128607, 128616, 128623, - 128630, 128639, 128646, 128653, 128660, 128670, 128677, 128684, 128691, - 128699, 128706, 128713, 128720, 128731, 128738, 128745, 128752, 128759, - 128766, 128775, 128782, 128788, 128795, 128804, 128811, 128818, 128825, - 128835, 128842, 128849, 128859, 128869, 128876, 128883, 128890, 128897, - 128904, 128911, 128920, 128927, 128934, 128940, 128948, 128957, 128966, - 128977, 128985, 128994, 129003, 129012, 129021, 129028, 129035, 129044, - 129056, 129066, 129073, 129080, 129090, 129100, 129109, 129119, 129126, - 129136, 129143, 129150, 129157, 129167, 129177, 129184, 129191, 129201, - 129207, 129218, 129227, 129237, 129245, 129258, 129265, 129271, 129279, - 129286, 129296, 129300, 129304, 129308, 129312, 129316, 129320, 129324, - 129333, 129337, 129344, 129348, 129352, 129356, 129360, 129364, 129368, - 129372, 129376, 129380, 129384, 129388, 129392, 129396, 129400, 129404, - 129408, 129412, 129416, 129420, 129427, 129434, 129444, 129457, 129467, - 129471, 129475, 129479, 129483, 129487, 129491, 129495, 129499, 129503, - 129507, 129511, 129518, 129525, 129536, 129543, 129549, 129556, 129563, - 129570, 129577, 129584, 129588, 129592, 129599, 129606, 129613, 129622, - 129629, 129642, 129652, 129659, 129666, 129670, 129674, 129683, 129690, - 129697, 129704, 129717, 129724, 129731, 129741, 129751, 129760, 129767, - 129774, 129781, 129788, 129795, 129802, 129812, 129818, 129826, 129833, - 129841, 129848, 129859, 129866, 129872, 129879, 129886, 129893, 129900, - 129910, 129920, 129927, 129934, 129943, 129951, 129957, 129964, 129971, - 129978, 129985, 129989, 129999, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128245, 128251, 128257, + 128264, 128271, 128278, 128285, 128292, 128299, 128305, 128312, 128319, + 128326, 128333, 128340, 128347, 128353, 128359, 128365, 128371, 128377, + 128383, 128389, 128395, 128401, 128408, 128415, 128422, 128429, 128436, + 128443, 128449, 128455, 128461, 128468, 128475, 128481, 128487, 128496, + 128503, 128510, 128517, 128524, 128531, 128538, 128544, 128550, 128556, + 128565, 128572, 128579, 128590, 128601, 128607, 128613, 128619, 128628, + 128635, 128642, 128652, 128662, 128673, 128684, 128696, 128709, 128720, + 128731, 128743, 128756, 128767, 128778, 128789, 128800, 128811, 128823, + 128831, 128839, 128848, 128857, 128866, 128872, 128878, 128884, 128891, + 128901, 128908, 128918, 128923, 128928, 128934, 128940, 128948, 128956, + 128965, 128976, 128987, 128995, 129003, 129012, 129021, 129029, 129036, + 129044, 129052, 129059, 129066, 129075, 129084, 129093, 129102, 129111, + 0, 129120, 129131, 129138, 129146, 129154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 129162, 129171, 129178, 129185, 129194, 129201, 129208, 129215, + 129225, 129232, 129239, 129246, 129254, 129261, 129268, 129275, 129286, + 129293, 129300, 129307, 129314, 129321, 129330, 129337, 129343, 129350, + 129359, 129366, 129373, 129380, 129390, 129397, 129404, 129414, 129424, + 129431, 129438, 129445, 129452, 129459, 129466, 129475, 129482, 129489, + 129495, 129503, 129512, 129521, 129532, 129540, 129549, 129558, 129567, + 129576, 129583, 129590, 129599, 129611, 129621, 129628, 129635, 129645, + 129655, 129664, 129674, 129681, 129691, 129698, 129705, 129712, 129722, + 129732, 129739, 129746, 129756, 129762, 129773, 129782, 129792, 129800, + 129813, 129820, 129826, 129834, 129841, 129851, 129855, 129859, 129863, + 129867, 129871, 129875, 129879, 129888, 129892, 129899, 129903, 129907, + 129911, 129915, 129919, 129923, 129927, 129931, 129935, 129939, 129943, + 129947, 129951, 129955, 129959, 129963, 129967, 129971, 129975, 129982, + 129989, 129999, 130012, 130022, 130026, 130030, 130034, 130038, 130042, + 130046, 130050, 130054, 130058, 130062, 130066, 130073, 130080, 130091, + 130098, 130104, 130111, 130118, 130125, 130132, 130139, 130143, 130147, + 130154, 130161, 130168, 130177, 130184, 130197, 130207, 130214, 130221, + 130225, 130229, 130238, 130245, 130252, 130259, 130272, 130279, 130286, + 130296, 130306, 130315, 130322, 130329, 130336, 130343, 130350, 130357, + 130367, 130373, 130381, 130388, 130396, 130403, 130414, 130421, 130427, + 130434, 130441, 130448, 130455, 130465, 130475, 130482, 130489, 130498, + 130506, 130512, 130519, 130526, 130533, 130540, 130544, 130554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130009, 130014, 130019, 130024, - 130029, 130034, 130039, 130044, 130049, 130054, 130059, 130064, 130069, - 130074, 130079, 130084, 130089, 130094, 130099, 130104, 130109, 130114, - 130119, 130124, 130129, 130134, 130139, 130144, 130149, 130154, 130159, - 130164, 130169, 130174, 130179, 130184, 130189, 130194, 130199, 130204, - 130209, 130214, 130219, 130224, 130229, 130234, 130239, 130244, 130249, - 130254, 130259, 130264, 130269, 130274, 130279, 130284, 130289, 130294, - 130299, 130304, 130309, 130314, 130319, 130324, 130329, 130334, 130339, - 130344, 130349, 130354, 130359, 130364, 130369, 130374, 130379, 130384, - 130389, 130394, 130399, 130404, 130409, 130414, 130419, 130424, 130429, - 130434, 130439, 130444, 130449, 130454, 130459, 130464, 130469, 130474, - 130479, 130484, 130489, 130494, 130499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 130504, 130508, 130512, 130516, 130520, 130524, 130528, 130532, - 130536, 130540, 130544, 130548, 130552, 130556, 130560, 130564, 130568, - 130572, 130576, 130580, 130584, 130588, 130592, 130596, 130600, 130604, - 130608, 130612, 130616, 130620, 130624, 130628, 130632, 130636, 130640, - 130644, 130648, 130652, 130656, 130660, 130664, 130668, 130672, 130676, - 130680, 130684, 130688, 130692, 130696, 130700, 130704, 130708, 130712, - 130716, 130720, 130724, 130728, 130732, 130736, 130740, 130744, 130748, - 130752, 130756, 130760, 130764, 130768, 130772, 130776, 130780, 130784, - 130788, 130792, 130796, 130800, 130804, 130808, 130812, 130816, 130820, - 130824, 130828, 130832, 130836, 130840, 130844, 130848, 130852, 130856, - 130860, 130864, 130868, 130872, 130876, 130880, 130884, 130888, 130892, - 130896, 130900, 130904, 130908, 130912, 130916, 130920, 130924, 130928, - 130932, 130936, 130940, 130944, 130948, 130952, 130956, 130960, 130964, - 130968, 130972, 130976, 130980, 130984, 130988, 130992, 130996, 131000, - 131004, 131008, 131012, 131016, 131020, 131024, 131028, 131032, 131036, - 131040, 131044, 131048, 131052, 131056, 131060, 131064, 131068, 131072, - 131076, 131080, 131084, 131088, 131092, 131096, 131100, 131104, 131108, - 131112, 131116, 131120, 131124, 131128, 131132, 131136, 131140, 131144, - 131148, 131152, 131156, 131160, 131164, 131168, 131172, 131176, 131180, - 131184, 131188, 131192, 131196, 131200, 131204, 131208, 131212, 131216, - 131220, 131224, 131228, 131232, 131236, 131240, 131244, 131248, 131252, - 131256, 131260, 131264, 131268, 131272, 131276, 131280, 131284, 131288, - 131292, 131296, 131300, 131304, 131308, 131312, 131316, 131320, 131324, - 131328, 131332, 131336, 131340, 131344, 131348, 131352, 131356, 131360, - 131364, 131368, 131372, 131376, 131380, 131384, 131388, 131392, 131396, - 131400, 131404, 131408, 131412, 131416, 131420, 131424, 131428, 131432, - 131436, 131440, 131444, 131448, 131452, 131456, 131460, 131464, 131468, - 131472, 131476, 131480, 131484, 131488, 131492, 131496, 131500, 131504, - 131508, 131512, 131516, 131520, 131524, 131528, 131532, 131536, 131540, - 131544, 131548, 131552, 131556, 131560, 131564, 131568, 131572, 131576, - 131580, 131584, 131588, 131592, 131596, 131600, 131604, 131608, 131612, - 131616, 131620, 131624, 131628, 131632, 131636, 131640, 131644, 131648, - 131652, 131656, 131660, 131664, 131668, 131672, 131676, 131680, 131684, - 131688, 131692, 131696, 131700, 131704, 131708, 131712, 131716, 131720, - 131724, 131728, 131732, 131736, 131740, 131744, 131748, 131752, 131756, - 131760, 131764, 131768, 131772, 131776, 131780, 131784, 131788, 131792, - 131796, 131800, 131804, 131808, 131812, 131816, 131820, 131824, 131828, - 131832, 131836, 131840, 131844, 131848, 131852, 131856, 131860, 131864, - 131868, 131872, 131876, 131880, 131884, 131888, 131892, 131896, 131900, - 131904, 131908, 131912, 131916, 131920, 131924, 131928, 131932, 131936, - 131940, 131944, 131948, 131952, 131956, 131960, 131964, 131968, 131972, - 131976, 131980, 131984, 131988, 131992, 131996, 132000, 132004, 132008, - 132012, 132016, 132020, 132024, 132028, 132032, 132036, 132040, 132044, - 132048, 132052, 132056, 132060, 132064, 132068, 132072, 132076, 132080, - 132084, 132088, 132092, 132096, 132100, 132104, 132108, 132112, 132116, - 132120, 132124, 132128, 132132, 132136, 132140, 132144, 132148, 132152, - 132156, 132160, 132164, 132168, 132172, 132176, 132180, 132184, 132188, - 132192, 132196, 132200, 132204, 132208, 132212, 132216, 132220, 132224, - 132228, 132232, 132236, 132240, 132244, 132248, 132252, 132256, 132260, - 132264, 132268, 132272, 132276, 132280, 132284, 132288, 132292, 132296, - 132300, 132304, 132308, 132312, 132316, 132320, 132324, 132328, 132332, - 132336, 132340, 132344, 132348, 132352, 132356, 132360, 132364, 132368, - 132372, 132376, 132380, 132384, 132388, 132392, 132396, 132400, 132404, - 132408, 132412, 132416, 132420, 132424, 132428, 132432, 132436, 132440, - 132444, 132448, 132452, 132456, 132460, 132464, 132468, 132472, 132476, - 132480, 132484, 132488, 132492, 132496, 132500, 132504, 132508, 132512, - 132516, 132520, 132524, 132528, 132532, 132536, 132540, 132544, 132548, - 132552, 132556, 132560, 132564, 132568, 132572, 132576, 132580, 132584, - 132588, 132592, 132596, 132600, 132604, 132608, 132612, 132616, 132620, - 132624, 132628, 132632, 132636, 132640, 132644, 132648, 132652, 132656, - 132660, 132664, 132668, 132672, 132676, 132680, 132684, 132688, 132692, - 132696, 132700, 132704, 132708, 132712, 132716, 132720, 132724, 132728, - 132732, 132736, 132740, 132744, 132748, 132752, 132756, 132760, 132764, - 132768, 132772, 132776, 132780, 132784, 132788, 132792, 132796, 132800, - 132804, 132808, 132812, 132816, 132820, 132824, 132828, 132832, 132836, - 132840, 132844, 132848, 132852, 132856, 132860, 132864, 132868, 132872, - 132876, 132880, 132884, 132888, 132892, 132896, 132900, 132904, 132908, - 132912, 132916, 132920, 132924, 132928, 132932, 132936, 132940, 132944, - 132948, 132952, 132956, 132960, 132964, 132968, 132972, 132976, 132980, - 132984, 132988, 132992, 132996, 133000, 133004, 133008, 133012, 133016, - 133020, 133024, 133028, 133032, 133036, 133040, 133044, 133048, 133052, - 133056, 133060, 133064, 133068, 133072, 133076, 133080, 133084, 133088, - 133092, 133096, 133100, 133104, 133108, 133112, 133116, 133120, 133124, - 133128, 133132, 133136, 133140, 133144, 133148, 133152, 133156, 133160, - 133164, 133168, 133172, 133176, 133180, 133184, 133188, 133192, 133196, - 133200, 133204, 133208, 133212, 133216, 133220, 133224, 133228, 133232, - 133236, 133240, 133244, 133248, 133252, 133256, 133260, 133264, 133268, - 133272, 133276, 133280, 133284, 133288, 133292, 133296, 133300, 133304, - 133308, 133312, 133316, 133320, 133324, 133328, 133332, 133336, 133340, - 133344, 133348, 133352, 133356, 133360, 133364, 133368, 133372, 133376, - 133380, 133384, 133388, 133392, 133396, 133400, 133404, 133408, 133412, - 133416, 133420, 133424, 133428, 133432, 133436, 133440, 133444, 133448, - 133452, 133456, 133460, 133464, 133468, 133472, 133476, 133480, 133484, - 133488, 133492, 133496, 133500, 133504, 133508, 133512, 133516, 133520, - 133524, 133528, 133532, 133536, 133540, 133544, 133548, 133552, 133556, - 133560, 133564, 133568, 133572, 133576, 133580, 133584, 133588, 133592, - 133596, 133600, 133604, 133608, 133612, 133616, 133620, 133624, 133628, - 133632, 133636, 133640, 133644, 133648, 133652, 133656, 133660, 133664, - 133668, 133672, 133676, 133680, 133684, 133688, 133692, 133696, 133700, - 133704, 133708, 133712, 133716, 133720, 133724, 133728, 133732, 133736, - 133740, 133744, 133748, 133752, 133756, 133760, 133764, 133768, 133772, - 133776, 133780, 133784, 133788, 133792, 133796, 133800, 133804, 133808, - 133812, 133816, 133820, 133824, 133828, 133832, 133836, 133840, 133844, - 133848, 133852, 133856, 133860, 133864, 133868, 133872, 133876, 133880, - 133884, 133888, 133892, 133896, 133900, 133904, 133908, 133912, 133916, - 133920, 133924, 133928, 133932, 133936, 133940, 133944, 133948, 133952, - 133956, 133960, 133964, 133968, 133972, 133976, 133980, 133984, 133988, - 133992, 133996, 134000, 134004, 134008, 134012, 134016, 134020, 134024, - 134028, 134032, 134036, 134040, 134044, 134048, 134052, 134056, 134060, - 134064, 134068, 134072, 134076, 134080, 134084, 134088, 134092, 134096, - 134100, 134104, 134108, 134112, 134116, 134120, 134124, 134128, 134132, - 134136, 134140, 134144, 134148, 134152, 134156, 134160, 134164, 134168, - 134172, 134176, 134180, 134184, 134188, 134192, 134196, 134200, 134204, - 134208, 134212, 134216, 134220, 134224, 134228, 134232, 134236, 134240, - 134244, 134248, 134252, 134256, 134260, 134264, 134268, 134272, 134276, - 134280, 134284, 134288, 134292, 134296, 134300, 134304, 134308, 134312, - 134316, 134320, 134324, 134328, 134332, 134336, 134340, 134344, 134348, - 134352, 134356, 134360, 134364, 134368, 134372, 134376, 134380, 134384, - 134388, 134392, 134396, 134400, 134404, 134408, 134412, 134416, 134420, - 134424, 134428, 134432, 134436, 134440, 134444, 134448, 134452, 134456, - 134460, 134464, 134468, 134472, 134476, 134480, 134484, 134488, 134492, - 134496, 134500, 134504, 134508, 134512, 134516, 134520, 134524, 134528, - 134532, 134536, 134540, 134544, 134548, 134552, 134556, 134560, 134564, - 134568, 134572, 134576, 134580, 134584, 134588, 134592, 134596, 134600, - 134604, 134608, 134612, 134616, 134620, 134624, 134628, 134632, 134636, - 134640, 134644, 134648, 134652, 134656, 134660, 134664, 134668, 134672, - 134676, 134680, 134684, 134688, 134692, 134696, 134700, 134704, 134708, - 134712, 134716, 134720, 134724, 134728, 134732, 134736, 134740, 134744, - 134748, 134752, 134756, 134760, 134764, 134768, 134772, 134776, 134780, - 134784, 0, 134788, 134793, 134799, 134809, 134819, 134829, 134839, - 134845, 134851, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 134857, 134861, 134865, 134869, 134873, 134877, 134881, - 134885, 134889, 134893, 134897, 134901, 134905, 134909, 134913, 134917, - 134921, 134925, 134929, 134933, 134937, 134941, 134945, 134949, 134953, - 134957, 134961, 134965, 134969, 134973, 134977, 134981, 134985, 134989, - 134993, 134997, 135001, 135005, 135009, 135013, 135017, 135021, 135025, - 135029, 135033, 135037, 135041, 135045, 135049, 135053, 135057, 135061, - 135065, 135069, 135073, 135077, 135081, 135085, 135089, 135093, 135097, - 135101, 135105, 135109, 135113, 135117, 135121, 135125, 135129, 135133, - 135137, 135141, 135145, 135149, 135153, 135157, 135161, 135165, 135169, - 135173, 135177, 135181, 135185, 135189, 135193, 135197, 135201, 135205, - 135209, 135213, 135217, 135221, 135225, 135229, 135233, 135237, 135241, - 135245, 135249, 135253, 135257, 135261, 135265, 135269, 135273, 135277, - 135281, 135285, 135289, 135293, 135297, 135301, 135305, 135309, 135313, - 135317, 135321, 135325, 135329, 135333, 135337, 135341, 135345, 135349, - 135353, 135357, 135361, 135365, 135369, 135373, 135377, 135381, 135385, - 135389, 135393, 135397, 135401, 135405, 135409, 135413, 135417, 135421, - 135425, 135429, 135433, 135437, 135441, 135445, 135449, 135453, 135457, - 135461, 135465, 135469, 135473, 135477, 135481, 135485, 135489, 135493, - 135497, 135501, 135505, 135509, 135513, 135517, 135521, 135525, 135529, - 135533, 135537, 135541, 135545, 135549, 135553, 135557, 135561, 135565, - 135569, 135573, 135577, 135581, 135585, 135589, 135593, 135597, 135601, - 135605, 135609, 135613, 135617, 135621, 135625, 135629, 135633, 135637, - 135641, 135645, 135649, 135653, 135657, 135661, 135665, 135669, 135673, - 135677, 135681, 135685, 135689, 135693, 135697, 135701, 135705, 135709, - 135713, 135717, 135721, 135725, 135729, 135733, 135737, 135741, 135745, - 135749, 135753, 135757, 135761, 135765, 135769, 135773, 135777, 135781, - 135785, 135789, 135793, 135797, 135801, 135805, 135809, 135813, 135817, - 135821, 135825, 135829, 135833, 135837, 135841, 135845, 135849, 135853, - 135857, 135861, 135865, 135869, 135873, 135877, 135881, 135885, 135889, - 135893, 135897, 135901, 135905, 135909, 135913, 135917, 135921, 135925, - 135929, 135933, 135937, 135941, 135945, 135949, 135953, 135957, 135961, - 135965, 135969, 135973, 135977, 135981, 135985, 135989, 135993, 135997, - 136001, 136005, 136009, 136013, 136017, 136021, 136025, 136029, 136033, - 136037, 136041, 136045, 136049, 136053, 136057, 136061, 136065, 136069, - 136073, 136077, 136081, 136085, 136089, 136093, 136097, 136101, 136105, - 136109, 136113, 136117, 136121, 136125, 136129, 136133, 136137, 136141, - 136145, 136149, 136153, 136157, 136161, 136165, 136169, 136173, 136177, - 136181, 136185, 136189, 136193, 136197, 136201, 136205, 136209, 136213, - 136217, 136221, 136225, 136229, 136233, 136237, 136241, 136245, 136249, - 136253, 136257, 136261, 136265, 136269, 136273, 136277, 136281, 136285, - 136289, 136293, 136297, 136301, 136305, 136309, 136313, 136317, 136321, - 136325, 136329, 136333, 136337, 136341, 136345, 136349, 136353, 136357, - 136361, 136365, 136369, 136373, 136377, 136381, 136385, 136389, 136393, - 136397, 136401, 136405, 136409, 136413, 136417, 136421, 136425, 136429, - 136433, 136437, 136441, 136445, 136449, 136453, 136457, 136461, 136465, - 136469, 136473, 136477, 136481, 136485, 136489, 136493, 136497, 136501, - 136505, 136509, 136513, 136517, 136521, 136525, 136529, 136533, 136537, - 136541, 136545, 136549, 136553, 136557, 136561, 136565, 136569, 136573, - 136577, 136581, 136585, 136589, 136599, 136603, 136607, 136611, 136615, - 136619, 136623, 136627, 136631, 136635, 136639, 136643, 136648, 136652, - 136656, 136660, 136664, 136668, 136672, 136676, 136680, 136684, 136688, - 136692, 136696, 136700, 136704, 136708, 136712, 136721, 136730, 136734, - 136738, 136742, 136746, 136750, 136754, 136758, 136762, 136766, 136770, - 136774, 136778, 136782, 136786, 136790, 136794, 136798, 136802, 136806, - 136810, 136814, 136818, 136822, 136826, 136830, 136834, 136838, 136842, - 136846, 136850, 136854, 136858, 136862, 136866, 136870, 136874, 136878, - 136882, 136886, 136890, 136894, 136898, 136902, 136906, 136910, 136914, - 136918, 136922, 136926, 136930, 136934, 136938, 136942, 136946, 136950, - 136954, 136958, 136962, 136966, 136970, 136974, 136978, 136982, 136986, - 136990, 136994, 136998, 137002, 137006, 137010, 137014, 137018, 137022, - 137026, 137030, 137034, 137038, 137042, 137046, 137050, 137054, 137058, - 137062, 137066, 137070, 137074, 137078, 137082, 137086, 137090, 137094, - 137098, 137102, 137106, 137110, 137114, 137118, 137122, 137126, 137130, - 137134, 137138, 137142, 137146, 137150, 137154, 137158, 137162, 137166, - 137170, 137174, 137178, 137182, 137186, 137190, 137194, 137198, 137202, + 0, 130564, 130569, 130574, 130579, 130584, 130589, 130594, 130599, + 130604, 130609, 130614, 130619, 130624, 130629, 130634, 130639, 130644, + 130649, 130654, 130659, 130664, 130669, 130674, 130679, 130684, 130689, + 130694, 130699, 130704, 130709, 130714, 130719, 130724, 130729, 130734, + 130739, 130744, 130749, 130754, 130759, 130764, 130769, 130774, 130779, + 130784, 130789, 130794, 130799, 130804, 130809, 130814, 130819, 130824, + 130829, 130834, 130839, 130844, 130849, 130854, 130859, 130864, 130869, + 130874, 130879, 130884, 130889, 130894, 130899, 130904, 130909, 130914, + 130919, 130924, 130929, 130934, 130939, 130944, 130949, 130954, 130959, + 130964, 130969, 130974, 130979, 130984, 130989, 130994, 130999, 131004, + 131009, 131014, 131019, 131024, 131029, 131034, 131039, 131044, 131049, + 131054, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131059, 131063, 131067, + 131071, 131075, 131079, 131083, 131087, 131091, 131095, 131099, 131103, + 131107, 131111, 131115, 131119, 131123, 131127, 131131, 131135, 131139, + 131143, 131147, 131151, 131155, 131159, 131163, 131167, 131171, 131175, + 131179, 131183, 131187, 131191, 131195, 131199, 131203, 131207, 131211, + 131215, 131219, 131223, 131227, 131231, 131235, 131239, 131243, 131247, + 131251, 131255, 131259, 131263, 131267, 131271, 131275, 131279, 131283, + 131287, 131291, 131295, 131299, 131303, 131307, 131311, 131315, 131319, + 131323, 131327, 131331, 131335, 131339, 131343, 131347, 131351, 131355, + 131359, 131363, 131367, 131371, 131375, 131379, 131383, 131387, 131391, + 131395, 131399, 131403, 131407, 131411, 131415, 131419, 131423, 131427, + 131431, 131435, 131439, 131443, 131447, 131451, 131455, 131459, 131463, + 131467, 131471, 131475, 131479, 131483, 131487, 131491, 131495, 131499, + 131503, 131507, 131511, 131515, 131519, 131523, 131527, 131531, 131535, + 131539, 131543, 131547, 131551, 131555, 131559, 131563, 131567, 131571, + 131575, 131579, 131583, 131587, 131591, 131595, 131599, 131603, 131607, + 131611, 131615, 131619, 131623, 131627, 131631, 131635, 131639, 131643, + 131647, 131651, 131655, 131659, 131663, 131667, 131671, 131675, 131679, + 131683, 131687, 131691, 131695, 131699, 131703, 131707, 131711, 131715, + 131719, 131723, 131727, 131731, 131735, 131739, 131743, 131747, 131751, + 131755, 131759, 131763, 131767, 131771, 131775, 131779, 131783, 131787, + 131791, 131795, 131799, 131803, 131807, 131811, 131815, 131819, 131823, + 131827, 131831, 131835, 131839, 131843, 131847, 131851, 131855, 131859, + 131863, 131867, 131871, 131875, 131879, 131883, 131887, 131891, 131895, + 131899, 131903, 131907, 131911, 131915, 131919, 131923, 131927, 131931, + 131935, 131939, 131943, 131947, 131951, 131955, 131959, 131963, 131967, + 131971, 131975, 131979, 131983, 131987, 131991, 131995, 131999, 132003, + 132007, 132011, 132015, 132019, 132023, 132027, 132031, 132035, 132039, + 132043, 132047, 132051, 132055, 132059, 132063, 132067, 132071, 132075, + 132079, 132083, 132087, 132091, 132095, 132099, 132103, 132107, 132111, + 132115, 132119, 132123, 132127, 132131, 132135, 132139, 132143, 132147, + 132151, 132155, 132159, 132163, 132167, 132171, 132175, 132179, 132183, + 132187, 132191, 132195, 132199, 132203, 132207, 132211, 132215, 132219, + 132223, 132227, 132231, 132235, 132239, 132243, 132247, 132251, 132255, + 132259, 132263, 132267, 132271, 132275, 132279, 132283, 132287, 132291, + 132295, 132299, 132303, 132307, 132311, 132315, 132319, 132323, 132327, + 132331, 132335, 132339, 132343, 132347, 132351, 132355, 132359, 132363, + 132367, 132371, 132375, 132379, 132383, 132387, 132391, 132395, 132399, + 132403, 132407, 132411, 132415, 132419, 132423, 132427, 132431, 132435, + 132439, 132443, 132447, 132451, 132455, 132459, 132463, 132467, 132471, + 132475, 132479, 132483, 132487, 132491, 132495, 132499, 132503, 132507, + 132511, 132515, 132519, 132523, 132527, 132531, 132535, 132539, 132543, + 132547, 132551, 132555, 132559, 132563, 132567, 132571, 132575, 132579, + 132583, 132587, 132591, 132595, 132599, 132603, 132607, 132611, 132615, + 132619, 132623, 132627, 132631, 132635, 132639, 132643, 132647, 132651, + 132655, 132659, 132663, 132667, 132671, 132675, 132679, 132683, 132687, + 132691, 132695, 132699, 132703, 132707, 132711, 132715, 132719, 132723, + 132727, 132731, 132735, 132739, 132743, 132747, 132751, 132755, 132759, + 132763, 132767, 132771, 132775, 132779, 132783, 132787, 132791, 132795, + 132799, 132803, 132807, 132811, 132815, 132819, 132823, 132827, 132831, + 132835, 132839, 132843, 132847, 132851, 132855, 132859, 132863, 132867, + 132871, 132875, 132879, 132883, 132887, 132891, 132895, 132899, 132903, + 132907, 132911, 132915, 132919, 132923, 132927, 132931, 132935, 132939, + 132943, 132947, 132951, 132955, 132959, 132963, 132967, 132971, 132975, + 132979, 132983, 132987, 132991, 132995, 132999, 133003, 133007, 133011, + 133015, 133019, 133023, 133027, 133031, 133035, 133039, 133043, 133047, + 133051, 133055, 133059, 133063, 133067, 133071, 133075, 133079, 133083, + 133087, 133091, 133095, 133099, 133103, 133107, 133111, 133115, 133119, + 133123, 133127, 133131, 133135, 133139, 133143, 133147, 133151, 133155, + 133159, 133163, 133167, 133171, 133175, 133179, 133183, 133187, 133191, + 133195, 133199, 133203, 133207, 133211, 133215, 133219, 133223, 133227, + 133231, 133235, 133239, 133243, 133247, 133251, 133255, 133259, 133263, + 133267, 133271, 133275, 133279, 133283, 133287, 133291, 133295, 133299, + 133303, 133307, 133311, 133315, 133319, 133323, 133327, 133331, 133335, + 133339, 133343, 133347, 133351, 133355, 133359, 133363, 133367, 133371, + 133375, 133379, 133383, 133387, 133391, 133395, 133399, 133403, 133407, + 133411, 133415, 133419, 133423, 133427, 133431, 133435, 133439, 133443, + 133447, 133451, 133455, 133459, 133463, 133467, 133471, 133475, 133479, + 133483, 133487, 133491, 133495, 133499, 133503, 133507, 133511, 133515, + 133519, 133523, 133527, 133531, 133535, 133539, 133543, 133547, 133551, + 133555, 133559, 133563, 133567, 133571, 133575, 133579, 133583, 133587, + 133591, 133595, 133599, 133603, 133607, 133611, 133615, 133619, 133623, + 133627, 133631, 133635, 133639, 133643, 133647, 133651, 133655, 133659, + 133663, 133667, 133671, 133675, 133679, 133683, 133687, 133691, 133695, + 133699, 133703, 133707, 133711, 133715, 133719, 133723, 133727, 133731, + 133735, 133739, 133743, 133747, 133751, 133755, 133759, 133763, 133767, + 133771, 133775, 133779, 133783, 133787, 133791, 133795, 133799, 133803, + 133807, 133811, 133815, 133819, 133823, 133827, 133831, 133835, 133839, + 133843, 133847, 133851, 133855, 133859, 133863, 133867, 133871, 133875, + 133879, 133883, 133887, 133891, 133895, 133899, 133903, 133907, 133911, + 133915, 133919, 133923, 133927, 133931, 133935, 133939, 133943, 133947, + 133951, 133955, 133959, 133963, 133967, 133971, 133975, 133979, 133983, + 133987, 133991, 133995, 133999, 134003, 134007, 134011, 134015, 134019, + 134023, 134027, 134031, 134035, 134039, 134043, 134047, 134051, 134055, + 134059, 134063, 134067, 134071, 134075, 134079, 134083, 134087, 134091, + 134095, 134099, 134103, 134107, 134111, 134115, 134119, 134123, 134127, + 134131, 134135, 134139, 134143, 134147, 134151, 134155, 134159, 134163, + 134167, 134171, 134175, 134179, 134183, 134187, 134191, 134195, 134199, + 134203, 134207, 134211, 134215, 134219, 134223, 134227, 134231, 134235, + 134239, 134243, 134247, 134251, 134255, 134259, 134263, 134267, 134271, + 134275, 134279, 134283, 134287, 134291, 134295, 134299, 134303, 134307, + 134311, 134315, 134319, 134323, 134327, 134331, 134335, 134339, 134343, + 134347, 134351, 134355, 134359, 134363, 134367, 134371, 134375, 134379, + 134383, 134387, 134391, 134395, 134399, 134403, 134407, 134411, 134415, + 134419, 134423, 134427, 134431, 134435, 134439, 134443, 134447, 134451, + 134455, 134459, 134463, 134467, 134471, 134475, 134479, 134483, 134487, + 134491, 134495, 134499, 134503, 134507, 134511, 134515, 134519, 134523, + 134527, 134531, 134535, 134539, 134543, 134547, 134551, 134555, 134559, + 134563, 134567, 134571, 134575, 134579, 134583, 134587, 134591, 134595, + 134599, 134603, 134607, 134611, 134615, 134619, 134623, 134627, 134631, + 134635, 134639, 134643, 134647, 134651, 134655, 134659, 134663, 134667, + 134671, 134675, 134679, 134683, 134687, 134691, 134695, 134699, 134703, + 134707, 134711, 134715, 134719, 134723, 134727, 134731, 134735, 134739, + 134743, 134747, 134751, 134755, 134759, 134763, 134767, 134771, 134775, + 134779, 134783, 134787, 134791, 134795, 134799, 134803, 134807, 134811, + 134815, 134819, 134823, 134827, 134831, 134835, 134839, 134843, 134847, + 134851, 134855, 134859, 134863, 134867, 134871, 134875, 134879, 134883, + 134887, 134891, 134895, 134899, 134903, 134907, 134911, 134915, 134919, + 134923, 134927, 134931, 134935, 134939, 134943, 134947, 134951, 134955, + 134959, 134963, 134967, 134971, 134975, 134979, 134983, 134987, 134991, + 134995, 134999, 135003, 135007, 135011, 135015, 135019, 135023, 135027, + 135031, 135035, 135039, 135043, 135047, 135051, 135055, 135059, 135063, + 135067, 135071, 135075, 135079, 135083, 135087, 135091, 135095, 135099, + 135103, 135107, 135111, 135115, 135119, 135123, 135127, 135131, 135135, + 135139, 135143, 135147, 135151, 135155, 135159, 135163, 135167, 135171, + 135175, 135179, 135183, 135187, 135191, 135195, 135199, 135203, 135207, + 135211, 135215, 135219, 135223, 135227, 135231, 135235, 135239, 135243, + 135247, 135251, 135255, 135259, 135263, 135267, 135271, 135275, 135279, + 135283, 135287, 135291, 135295, 135299, 135303, 135307, 135311, 135315, + 135319, 135323, 135327, 135331, 135335, 135339, 135343, 135347, 135352, + 135358, 135368, 135378, 135388, 135398, 135404, 135410, 135416, 135424, + 135432, 135440, 135446, 135452, 135460, 135468, 135474, 135480, 135485, + 135490, 135496, 135503, 135510, 135521, 135532, 135541, 135552, 135561, + 135577, 135589, 135600, 135616, 135625, 135637, 135646, 135658, 135670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135675, 135679, + 135683, 135687, 135691, 135695, 135699, 135703, 135707, 135711, 135715, + 135719, 135723, 135727, 135731, 135735, 135739, 135743, 135747, 135751, + 135755, 135759, 135763, 135767, 135771, 135775, 135779, 135783, 135787, + 135791, 135795, 135799, 135803, 135807, 135811, 135815, 135819, 135823, + 135827, 135831, 135835, 135839, 135843, 135847, 135851, 135855, 135859, + 135863, 135867, 135871, 135875, 135879, 135883, 135887, 135891, 135895, + 135899, 135903, 135907, 135911, 135915, 135919, 135923, 135927, 135931, + 135935, 135939, 135943, 135947, 135951, 135955, 135959, 135963, 135967, + 135971, 135975, 135979, 135983, 135987, 135991, 135995, 135999, 136003, + 136007, 136011, 136015, 136019, 136023, 136027, 136031, 136035, 136039, + 136043, 136047, 136051, 136055, 136059, 136063, 136067, 136071, 136075, + 136079, 136083, 136087, 136091, 136095, 136099, 136103, 136107, 136111, + 136115, 136119, 136123, 136127, 136131, 136135, 136139, 136143, 136147, + 136151, 136155, 136159, 136163, 136167, 136171, 136175, 136179, 136183, + 136187, 136191, 136195, 136199, 136203, 136207, 136211, 136215, 136219, + 136223, 136227, 136231, 136235, 136239, 136243, 136247, 136251, 136255, + 136259, 136263, 136267, 136271, 136275, 136279, 136283, 136287, 136291, + 136295, 136299, 136303, 136307, 136311, 136315, 136319, 136323, 136327, + 136331, 136335, 136339, 136343, 136347, 136351, 136355, 136359, 136363, + 136367, 136371, 136375, 136379, 136383, 136387, 136391, 136395, 136399, + 136403, 136407, 136411, 136415, 136419, 136423, 136427, 136431, 136435, + 136439, 136443, 136447, 136451, 136455, 136459, 136463, 136467, 136471, + 136475, 136479, 136483, 136487, 136491, 136495, 136499, 136503, 136507, + 136511, 136515, 136519, 136523, 136527, 136531, 136535, 136539, 136543, + 136547, 136551, 136555, 136559, 136563, 136567, 136571, 136575, 136579, + 136583, 136587, 136591, 136595, 136599, 136603, 136607, 136611, 136615, + 136619, 136623, 136627, 136631, 136635, 136639, 136643, 136647, 136651, + 136655, 136659, 136663, 136667, 136671, 136675, 136679, 136683, 136687, + 136691, 136695, 136699, 136703, 136707, 136711, 136715, 136719, 136723, + 136727, 136731, 136735, 136739, 136743, 136747, 136751, 136755, 136759, + 136763, 136767, 136771, 136775, 136779, 136783, 136787, 136791, 136795, + 136799, 136803, 136807, 136811, 136815, 136819, 136823, 136827, 136831, + 136835, 136839, 136843, 136847, 136851, 136855, 136859, 136863, 136867, + 136871, 136875, 136879, 136883, 136887, 136891, 136895, 136899, 136903, + 136907, 136911, 136915, 136919, 136923, 136927, 136931, 136935, 136939, + 136943, 136947, 136951, 136955, 136959, 136963, 136967, 136971, 136975, + 136979, 136983, 136987, 136991, 136995, 136999, 137003, 137007, 137011, + 137015, 137019, 137023, 137027, 137031, 137035, 137039, 137043, 137047, + 137051, 137055, 137059, 137063, 137067, 137071, 137075, 137079, 137083, + 137087, 137091, 137095, 137099, 137103, 137107, 137111, 137115, 137119, + 137123, 137127, 137131, 137135, 137139, 137143, 137147, 137151, 137155, + 137159, 137163, 137167, 137171, 137175, 137179, 137183, 137187, 137191, + 137195, 137199, 137203, 137207, 137211, 137215, 137219, 137223, 137227, + 137231, 137235, 137239, 137243, 137247, 137251, 137255, 137259, 137263, + 137267, 137271, 137275, 137279, 137283, 137287, 137291, 137295, 137299, + 137303, 137307, 137311, 137315, 137319, 137323, 137327, 137331, 137335, + 137339, 137343, 137347, 137351, 137355, 137359, 137363, 137367, 137371, + 137375, 137379, 137383, 137387, 137391, 137395, 137399, 137403, 137407, + 137417, 137421, 137425, 137429, 137433, 137437, 137441, 137445, 137449, + 137453, 137457, 137461, 137466, 137470, 137474, 137478, 137482, 137486, + 137490, 137494, 137498, 137502, 137506, 137510, 137514, 137518, 137522, + 137526, 137530, 137539, 137548, 137552, 137556, 137560, 137564, 137568, + 137572, 137576, 137580, 137584, 137588, 137592, 137596, 137600, 137604, + 137608, 137612, 137616, 137620, 137624, 137628, 137632, 137636, 137640, + 137644, 137648, 137652, 137656, 137660, 137664, 137668, 137672, 137676, + 137680, 137684, 137688, 137692, 137696, 137700, 137704, 137708, 137712, + 137716, 137720, 137724, 137728, 137732, 137736, 137740, 137744, 137748, + 137752, 137756, 137760, 137764, 137768, 137772, 137776, 137780, 137784, + 137788, 137792, 137796, 137800, 137804, 137808, 137812, 137816, 137820, + 137824, 137828, 137832, 137836, 137840, 137844, 137848, 137852, 137856, + 137860, 137864, 137868, 137872, 137876, 137880, 137884, 137888, 137892, + 137896, 137900, 137904, 137908, 137912, 137916, 137920, 137924, 137928, + 137932, 137936, 137940, 137944, 137948, 137952, 137956, 137960, 137964, + 137968, 137972, 137976, 137980, 137984, 137988, 137992, 137996, 138000, + 138004, 138008, 138012, 138016, 138020, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 137206, 137214, 137222, 137232, 137242, - 137250, 137256, 137264, 137272, 137282, 137294, 137306, 137312, 137320, - 137326, 137332, 137338, 137344, 137350, 137356, 137362, 137368, 137374, - 137380, 137386, 137394, 137402, 137408, 137414, 137420, 137426, 137434, - 137442, 137451, 137457, 137465, 137471, 137477, 137483, 137489, 137495, - 137503, 137511, 137517, 137523, 137529, 137535, 137541, 137547, 137553, - 137559, 137565, 137571, 137577, 137583, 137589, 137595, 137601, 137607, - 137613, 137619, 137625, 137633, 137639, 137645, 137655, 137663, 137669, - 137675, 137681, 137687, 137693, 137699, 137705, 137711, 137717, 137723, - 137729, 137735, 137741, 137747, 137753, 137759, 137765, 137771, 137777, - 137783, 137789, 137795, 137803, 137809, 137817, 137825, 137833, 137839, - 137845, 137851, 137857, 137863, 137871, 137881, 137889, 137897, 137903, - 137909, 137917, 137925, 137931, 137939, 137947, 137955, 137961, 137967, - 137973, 137979, 137985, 137991, 137999, 138007, 138013, 138019, 138025, - 138031, 138037, 138045, 138051, 138057, 138063, 138069, 138075, 138081, - 138089, 138095, 138101, 138107, 138113, 138121, 138129, 138135, 138141, - 138147, 138152, 138158, 138164, 138172, 138178, 138184, 138190, 138196, - 138202, 138208, 138214, 138220, 138226, 138236, 138244, 138250, 138256, - 138262, 138270, 138276, 138282, 138288, 138296, 138302, 138308, 138314, - 138320, 138326, 138332, 138338, 138344, 138350, 138356, 138362, 138370, - 138376, 138384, 138390, 138396, 138404, 138410, 138416, 138422, 138428, - 138434, 138440, 138446, 138452, 138458, 138464, 138470, 138476, 138482, - 138488, 138494, 138500, 138506, 138512, 138518, 138526, 138532, 138538, - 138544, 138550, 138556, 138562, 138568, 138574, 138580, 138586, 138592, - 138598, 138604, 138612, 138618, 138624, 138632, 138638, 138644, 138650, - 138656, 138662, 138668, 138674, 138680, 138686, 138692, 138700, 138706, - 138712, 138718, 138724, 138730, 138738, 138746, 138752, 138758, 138764, - 138770, 138776, 138782, 138787, 138792, 138797, 138802, 138807, 138812, - 138817, 138822, 138827, 138832, 138837, 138842, 138847, 138852, 138857, - 138862, 138867, 138872, 138877, 138882, 138887, 138892, 138897, 138902, - 138907, 138912, 138917, 138922, 138927, 138932, 138939, 138944, 138949, - 138954, 138959, 138964, 138969, 138974, 138979, 138984, 138989, 138994, - 138999, 139004, 139009, 139014, 139019, 139024, 139029, 139034, 139039, - 139044, 139049, 139054, 139059, 139064, 139069, 139074, 139079, 139084, - 139089, 139094, 139099, 139104, 139109, 139114, 139119, 139124, 139129, - 139134, 139139, 139144, 139149, 139154, 139159, 139164, 139169, 139174, - 139179, 139184, 139189, 139194, 139199, 139204, 139209, 139214, 139219, - 139224, 139229, 139236, 139241, 139246, 139251, 139256, 139261, 139266, - 139271, 139276, 139281, 139286, 139291, 139296, 139301, 139306, 139311, - 139316, 139321, 139326, 139331, 139336, 139341, 139348, 139353, 139358, - 139364, 139369, 139374, 139379, 139384, 139389, 139394, 139399, 139404, - 139409, 139414, 139419, 139424, 139429, 139434, 139439, 139444, 139449, - 139454, 139459, 139464, 139469, 139474, 139479, 139484, 139489, 139494, - 139499, 139504, 139509, 139514, 139519, 139524, 139529, 139534, 139539, - 139544, 139549, 139554, 139559, 139564, 139569, 139574, 139579, 139586, - 139591, 139596, 139603, 139610, 139615, 139620, 139625, 139630, 139635, - 139640, 139645, 139650, 139655, 139660, 139665, 139670, 139675, 139680, - 139685, 139690, 139695, 139700, 139705, 139710, 139715, 139720, 139725, - 139730, 139735, 139742, 139747, 139752, 139757, 139762, 139767, 139772, - 139777, 139782, 139787, 139792, 139797, 139802, 139807, 139812, 139817, - 139822, 139827, 139832, 139839, 139844, 139849, 139854, 139859, 139864, - 139869, 139874, 139880, 139885, 139890, 139895, 139900, 139905, 139910, - 139915, 139920, 139927, 139934, 139939, 139944, 139948, 139953, 139957, - 139961, 139966, 139973, 139978, 139983, 139992, 139997, 140002, 140007, - 140012, 140019, 140026, 140031, 140036, 140041, 140046, 140053, 140058, - 140063, 140068, 140073, 140078, 140083, 140088, 140093, 140098, 140103, - 140108, 140113, 140120, 140124, 140129, 140134, 140139, 140144, 140148, - 140153, 140158, 140163, 140168, 140173, 140178, 140183, 140188, 140193, - 140199, 140205, 140211, 140217, 140223, 140228, 140234, 140240, 140246, - 140252, 140258, 140264, 140270, 140276, 140282, 140288, 140294, 140300, - 140306, 140312, 140318, 140324, 140330, 140336, 140341, 140347, 140353, - 140359, 140365, 140371, 140377, 140383, 140389, 140395, 140401, 140407, - 140413, 140419, 140425, 140431, 140437, 140443, 140449, 140455, 140461, - 140466, 140472, 140478, 140484, 140490, 140496, 0, 0, 0, 0, 0, 0, 0, - 140502, 140507, 140512, 140517, 140522, 140527, 140532, 140536, 140541, - 140546, 140551, 140556, 140561, 140566, 140571, 140576, 140581, 140585, - 140590, 140594, 140599, 140604, 140609, 140614, 140619, 140623, 140628, - 140633, 140637, 140642, 140647, 0, 140652, 140657, 140661, 140665, - 140669, 140673, 140677, 140681, 140685, 140689, 0, 0, 0, 0, 140693, - 140697, 140702, 140707, 140712, 140717, 140722, 140727, 140732, 140737, - 140742, 140747, 140752, 140757, 140762, 140767, 140772, 140777, 140782, - 140787, 140792, 140797, 140802, 140807, 140812, 140817, 140822, 140827, - 140832, 140837, 140842, 140847, 140852, 140857, 140862, 140868, 140874, - 140881, 140888, 140893, 140898, 140903, 140908, 140913, 140918, 140923, - 140928, 140933, 140938, 140943, 140948, 140952, 140957, 140962, 140967, - 140971, 140975, 140980, 140984, 140989, 140994, 140999, 141003, 141007, - 141011, 141015, 141020, 141025, 141030, 141034, 141039, 141044, 141049, - 141054, 141059, 141064, 141069, 141074, 141079, 141084, 141089, 0, - 141094, 141099, 141103, 141107, 141111, 141115, 141119, 141123, 141127, - 141131, 0, 0, 0, 0, 0, 0, 141135, 141142, 141148, 141155, 141162, 141169, - 141176, 141183, 141190, 141197, 141204, 141211, 141218, 141225, 141232, - 141239, 141246, 141253, 141259, 141266, 141273, 141280, 141286, 141293, - 141299, 141305, 141312, 141318, 141325, 141331, 0, 0, 141337, 141345, - 141353, 141362, 141371, 141380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 141388, - 141393, 141398, 141403, 141408, 141413, 141418, 141423, 141428, 141433, - 141438, 141443, 141448, 141453, 141458, 141463, 141468, 141473, 141478, - 141483, 141488, 141493, 141498, 141503, 141508, 141513, 141518, 141523, - 141528, 141533, 141538, 141543, 141548, 141553, 141558, 141563, 141568, - 141573, 141578, 141583, 141588, 141593, 141598, 141603, 141608, 141613, - 141618, 141623, 141628, 141635, 141642, 141649, 141656, 141663, 141670, - 141677, 141684, 141693, 141700, 141707, 141714, 141721, 141728, 141735, - 141742, 141749, 141756, 141763, 141770, 141775, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 141784, 141789, 141793, 141797, 141801, 141805, 141809, 141813, - 141817, 141821, 0, 141825, 141830, 141835, 141842, 141847, 141854, - 141861, 0, 141866, 141873, 141878, 141883, 141890, 141897, 141902, - 141907, 141912, 141917, 141922, 141929, 141936, 141941, 141946, 141951, - 141964, 141973, 141980, 141989, 141998, 0, 0, 0, 0, 0, 142007, 142014, - 142021, 142028, 142035, 142042, 142049, 142056, 142063, 142070, 142077, - 142084, 142091, 142098, 142105, 142112, 142119, 142126, 142133, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138024, + 138032, 138040, 138050, 138060, 138068, 138074, 138082, 138090, 138100, + 138112, 138124, 138130, 138138, 138144, 138150, 138156, 138162, 138168, + 138174, 138180, 138186, 138192, 138198, 138204, 138212, 138220, 138226, + 138232, 138238, 138244, 138252, 138260, 138269, 138275, 138283, 138289, + 138295, 138301, 138307, 138313, 138321, 138329, 138335, 138341, 138347, + 138353, 138359, 138365, 138371, 138377, 138383, 138389, 138395, 138401, + 138407, 138413, 138419, 138425, 138431, 138437, 138443, 138451, 138457, + 138463, 138473, 138481, 138487, 138493, 138499, 138505, 138511, 138517, + 138523, 138529, 138535, 138541, 138547, 138553, 138559, 138565, 138571, + 138577, 138583, 138589, 138595, 138601, 138607, 138613, 138621, 138627, + 138635, 138643, 138651, 138657, 138663, 138669, 138675, 138681, 138689, + 138699, 138707, 138715, 138721, 138727, 138735, 138743, 138749, 138757, + 138765, 138773, 138779, 138785, 138791, 138797, 138803, 138809, 138817, + 138825, 138831, 138837, 138843, 138849, 138855, 138863, 138869, 138875, + 138881, 138887, 138893, 138899, 138907, 138913, 138919, 138925, 138931, + 138939, 138947, 138953, 138959, 138965, 138970, 138976, 138982, 138990, + 138996, 139002, 139008, 139014, 139020, 139026, 139032, 139038, 139044, + 139054, 139062, 139068, 139074, 139080, 139088, 139094, 139100, 139106, + 139114, 139120, 139126, 139132, 139138, 139144, 139150, 139156, 139162, + 139168, 139174, 139180, 139188, 139194, 139202, 139208, 139214, 139222, + 139228, 139234, 139240, 139246, 139252, 139258, 139264, 139270, 139276, + 139282, 139288, 139294, 139300, 139306, 139312, 139318, 139324, 139330, + 139336, 139344, 139350, 139356, 139362, 139368, 139374, 139380, 139386, + 139392, 139398, 139404, 139410, 139416, 139422, 139430, 139436, 139442, + 139450, 139456, 139462, 139468, 139474, 139480, 139486, 139492, 139498, + 139504, 139510, 139518, 139524, 139530, 139536, 139542, 139548, 139556, + 139564, 139570, 139576, 139582, 139588, 139594, 139600, 139605, 139610, + 139615, 139620, 139625, 139630, 139635, 139640, 139645, 139650, 139655, + 139660, 139665, 139670, 139675, 139680, 139685, 139690, 139695, 139700, + 139705, 139710, 139715, 139720, 139725, 139730, 139735, 139740, 139745, + 139750, 139757, 139762, 139767, 139772, 139777, 139782, 139787, 139792, + 139797, 139802, 139807, 139812, 139817, 139822, 139827, 139832, 139837, + 139842, 139847, 139852, 139857, 139862, 139867, 139872, 139877, 139882, + 139887, 139892, 139897, 139902, 139907, 139912, 139917, 139922, 139927, + 139932, 139937, 139942, 139947, 139952, 139957, 139962, 139967, 139972, + 139977, 139982, 139987, 139992, 139997, 140002, 140007, 140012, 140017, + 140022, 140027, 140032, 140037, 140042, 140047, 140054, 140059, 140064, + 140069, 140074, 140079, 140084, 140089, 140094, 140099, 140104, 140109, + 140114, 140119, 140124, 140129, 140134, 140139, 140144, 140149, 140154, + 140159, 140166, 140171, 140176, 140182, 140187, 140192, 140197, 140202, + 140207, 140212, 140217, 140222, 140227, 140232, 140237, 140242, 140247, + 140252, 140257, 140262, 140267, 140272, 140277, 140282, 140287, 140292, + 140297, 140302, 140307, 140312, 140317, 140322, 140327, 140332, 140337, + 140342, 140347, 140352, 140357, 140362, 140367, 140372, 140377, 140382, + 140387, 140392, 140397, 140404, 140409, 140414, 140421, 140428, 140433, + 140438, 140443, 140448, 140453, 140458, 140463, 140468, 140473, 140478, + 140483, 140488, 140493, 140498, 140503, 140508, 140513, 140518, 140523, + 140528, 140533, 140538, 140543, 140548, 140553, 140560, 140565, 140570, + 140575, 140580, 140585, 140590, 140595, 140600, 140605, 140610, 140615, + 140620, 140625, 140630, 140635, 140640, 140645, 140650, 140657, 140662, + 140667, 140672, 140677, 140682, 140687, 140692, 140698, 140703, 140708, + 140713, 140718, 140723, 140728, 140733, 140738, 140745, 140752, 140757, + 140762, 140766, 140771, 140775, 140779, 140784, 140791, 140796, 140801, + 140810, 140815, 140820, 140825, 140830, 140837, 140844, 140849, 140854, + 140859, 140864, 140871, 140876, 140881, 140886, 140891, 140896, 140901, + 140906, 140911, 140916, 140921, 140926, 140931, 140938, 140942, 140947, + 140952, 140957, 140962, 140966, 140971, 140976, 140981, 140986, 140991, + 140996, 141001, 141006, 141011, 141017, 141023, 141029, 141035, 141041, + 141046, 141052, 141058, 141064, 141070, 141076, 141082, 141088, 141094, + 141100, 141106, 141112, 141118, 141124, 141130, 141136, 141142, 141148, + 141154, 141159, 141165, 141171, 141177, 141183, 141189, 141195, 141201, + 141207, 141213, 141219, 141225, 141231, 141237, 141243, 141249, 141255, + 141261, 141267, 141273, 141279, 141284, 141290, 141296, 141302, 141308, + 141314, 0, 0, 0, 0, 0, 0, 0, 141320, 141325, 141330, 141335, 141340, + 141345, 141350, 141354, 141359, 141364, 141369, 141374, 141379, 141384, + 141389, 141394, 141399, 141403, 141408, 141412, 141417, 141422, 141427, + 141432, 141437, 141441, 141446, 141451, 141455, 141460, 141465, 0, + 141470, 141475, 141479, 141483, 141487, 141491, 141495, 141499, 141503, + 141507, 0, 0, 0, 0, 141511, 141515, 141520, 141525, 141530, 141535, + 141540, 141545, 141550, 141555, 141560, 141565, 141570, 141575, 141580, + 141585, 141590, 141595, 141600, 141605, 141610, 141615, 141620, 141625, + 141630, 141635, 141640, 141645, 141650, 141655, 141660, 141665, 141670, + 141675, 141680, 141686, 141692, 141699, 141706, 141711, 141716, 141721, + 141726, 141731, 141736, 141741, 141746, 141751, 141756, 141761, 141766, + 141770, 141775, 141780, 141785, 141789, 141793, 141798, 141802, 141807, + 141812, 141817, 141821, 141825, 141829, 141833, 141838, 141843, 141848, + 141852, 141857, 141862, 141867, 141872, 141877, 141882, 141887, 141892, + 141897, 141902, 141907, 0, 141912, 141917, 141921, 141925, 141929, + 141933, 141937, 141941, 141945, 141949, 0, 0, 0, 0, 0, 0, 141953, 141960, + 141966, 141973, 141980, 141987, 141994, 142001, 142008, 142015, 142022, + 142029, 142036, 142043, 142050, 142057, 142064, 142071, 142077, 142084, + 142091, 142098, 142104, 142111, 142117, 142123, 142130, 142136, 142143, + 142149, 0, 0, 142155, 142163, 142171, 142180, 142189, 142198, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 142206, 142211, 142216, 142221, 142226, 142231, 142236, + 142241, 142246, 142251, 142256, 142261, 142266, 142271, 142276, 142281, + 142286, 142291, 142296, 142301, 142306, 142311, 142316, 142321, 142326, + 142331, 142336, 142341, 142346, 142351, 142356, 142361, 142366, 142371, + 142376, 142381, 142386, 142391, 142396, 142401, 142406, 142411, 142416, + 142421, 142426, 142431, 142436, 142441, 142446, 142453, 142460, 142467, + 142474, 142481, 142488, 142495, 142502, 142511, 142518, 142525, 142532, + 142539, 142546, 142553, 142560, 142567, 142574, 142581, 142588, 142593, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 142602, 142607, 142611, 142615, 142619, + 142623, 142627, 142631, 142635, 142639, 0, 142643, 142648, 142653, + 142660, 142665, 142672, 142679, 0, 142684, 142691, 142696, 142701, + 142708, 142715, 142720, 142725, 142730, 142735, 142740, 142747, 142754, + 142759, 142764, 142769, 142782, 142791, 142798, 142807, 142816, 0, 0, 0, + 0, 0, 142825, 142832, 142839, 142846, 142853, 142860, 142867, 142874, + 142881, 142888, 142895, 142902, 142909, 142916, 142923, 142930, 142937, + 142944, 142951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 142958, 142964, 142970, 142976, + 142982, 142988, 142994, 143000, 143006, 143012, 143018, 143024, 143029, + 143035, 143040, 143046, 143051, 143057, 143063, 143068, 143074, 143079, + 143085, 143091, 143097, 143103, 143109, 143115, 143121, 143126, 143131, + 143137, 143143, 143149, 143155, 143161, 143167, 143173, 143179, 143185, + 143191, 143197, 143203, 143209, 143214, 143220, 143225, 143231, 143236, + 143242, 143248, 143253, 143259, 143264, 143270, 143276, 143282, 143288, + 143294, 143300, 143306, 143311, 143316, 143322, 143328, 143333, 143337, + 143341, 143345, 143349, 143353, 143357, 143361, 143365, 143369, 143374, + 143379, 143384, 143389, 143394, 143399, 143404, 143409, 143414, 143419, + 143426, 143433, 143440, 143444, 143450, 143455, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 142140, 142146, 142152, 142158, 142164, 142170, 142176, - 142182, 142188, 142194, 142200, 142206, 142211, 142217, 142222, 142228, - 142233, 142239, 142245, 142250, 142256, 142261, 142267, 142273, 142279, - 142285, 142291, 142297, 142303, 142308, 142313, 142319, 142325, 142331, - 142337, 142343, 142349, 142355, 142361, 142367, 142373, 142379, 142385, - 142391, 142396, 142402, 142407, 142413, 142418, 142424, 142430, 142435, - 142441, 142446, 142452, 142458, 142464, 142470, 142476, 142482, 142488, - 142493, 142498, 142504, 142510, 142515, 142519, 142523, 142527, 142531, - 142535, 142539, 142543, 142547, 142551, 142556, 142561, 142566, 142571, - 142576, 142581, 142586, 142591, 142596, 142601, 142608, 142615, 142622, - 142626, 142632, 142637, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143461, + 143464, 143468, 143472, 143476, 143479, 143483, 143488, 143492, 143496, + 143500, 143504, 143508, 143513, 143518, 143522, 143526, 143529, 143533, + 143538, 143543, 143547, 143551, 143554, 143558, 143562, 143566, 143570, + 143574, 143578, 143582, 143585, 143589, 143593, 143597, 143601, 143605, + 143609, 143615, 143618, 143622, 143626, 143630, 143634, 143638, 143642, + 143646, 143650, 143654, 143659, 143664, 143670, 143674, 143678, 143682, + 143686, 143690, 143694, 143699, 143702, 143706, 143710, 143714, 143718, + 143724, 143728, 143732, 143736, 143740, 143744, 143748, 143752, 143756, + 143760, 143764, 0, 0, 0, 0, 143768, 143773, 143777, 143781, 143787, + 143793, 143797, 143802, 143807, 143812, 143817, 143821, 143826, 143831, + 143836, 143840, 143845, 143850, 143855, 143859, 143864, 143869, 143874, + 143879, 143884, 143889, 143894, 143899, 143903, 143908, 143913, 143918, + 143923, 143928, 143933, 143938, 143943, 143948, 143953, 143958, 143965, + 143970, 143977, 143982, 143987, 143992, 143997, 144002, 144007, 144012, + 144017, 144022, 144027, 144032, 144037, 144042, 144047, 0, 0, 0, 0, 0, 0, + 0, 144052, 144055, 144060, 144063, 144066, 144070, 144074, 144078, + 144082, 144086, 144090, 144094, 144100, 144106, 144112, 144118, 144124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 142643, 142646, 142650, 142654, - 142658, 142661, 142665, 142670, 142674, 142678, 142682, 142686, 142690, - 142695, 142700, 142704, 142708, 142711, 142715, 142720, 142725, 142729, - 142733, 142736, 142740, 142744, 142748, 142752, 142756, 142760, 142764, - 142767, 142771, 142775, 142779, 142783, 142787, 142791, 142797, 142800, - 142804, 142808, 142812, 142816, 142820, 142824, 142828, 142832, 142836, - 142841, 142846, 142852, 142856, 142860, 142864, 142868, 142872, 142876, - 142881, 142884, 142888, 142892, 142896, 142900, 142906, 142910, 142914, - 142918, 142922, 142926, 142930, 142934, 142938, 142942, 142946, 0, 0, 0, - 0, 142950, 142955, 142959, 142963, 142969, 142975, 142979, 142984, - 142989, 142994, 142999, 143003, 143008, 143013, 143018, 143022, 143027, - 143032, 143037, 143041, 143046, 143051, 143056, 143061, 143066, 143071, - 143076, 143081, 143085, 143090, 143095, 143100, 143105, 143110, 143115, - 143120, 143125, 143130, 143135, 143140, 143147, 143152, 143159, 143164, - 143169, 143174, 143179, 143184, 143189, 143194, 143199, 143204, 143209, - 143214, 143219, 143224, 143229, 0, 0, 0, 0, 0, 0, 0, 143234, 143237, - 143242, 143245, 143248, 143252, 143256, 143260, 143264, 143268, 143272, - 143276, 143282, 143288, 143294, 143300, 143306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144130, 144134, 144138, + 144144, 144150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144155, 144164, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144173, 144176, 144179, 144182, 144185, + 144188, 144191, 144194, 144197, 144200, 144203, 144206, 144209, 144212, + 144215, 144218, 144221, 144224, 144227, 144230, 144233, 144236, 144239, + 144242, 144245, 144248, 144251, 144254, 144257, 144260, 144263, 144266, + 144269, 144272, 144275, 144278, 144281, 144284, 144287, 144290, 144293, + 144296, 144299, 144302, 144305, 144308, 144311, 144314, 144317, 144320, + 144323, 144326, 144329, 144332, 144335, 144338, 144341, 144344, 144347, + 144350, 144353, 144356, 144359, 144362, 144365, 144368, 144371, 144374, + 144377, 144380, 144383, 144386, 144389, 144392, 144395, 144398, 144401, + 144404, 144407, 144410, 144413, 144416, 144419, 144422, 144425, 144428, + 144431, 144434, 144437, 144440, 144443, 144446, 144449, 144452, 144455, + 144458, 144461, 144464, 144467, 144470, 144473, 144476, 144479, 144482, + 144485, 144488, 144491, 144494, 144497, 144500, 144503, 144506, 144509, + 144512, 144515, 144518, 144521, 144524, 144527, 144530, 144533, 144536, + 144539, 144542, 144545, 144548, 144551, 144554, 144557, 144560, 144563, + 144566, 144569, 144572, 144575, 144578, 144581, 144584, 144587, 144590, + 144593, 144596, 144599, 144602, 144605, 144608, 144611, 144614, 144617, + 144620, 144623, 144626, 144629, 144632, 144635, 144638, 144641, 144644, + 144647, 144650, 144653, 144656, 144659, 144662, 144665, 144668, 144671, + 144674, 144677, 144680, 144683, 144686, 144689, 144692, 144695, 144698, + 144701, 144704, 144707, 144710, 144713, 144716, 144719, 144722, 144725, + 144728, 144731, 144734, 144737, 144740, 144743, 144746, 144749, 144752, + 144755, 144758, 144761, 144764, 144767, 144770, 144773, 144776, 144779, + 144782, 144785, 144788, 144791, 144794, 144797, 144800, 144803, 144806, + 144809, 144812, 144815, 144818, 144821, 144824, 144827, 144830, 144833, + 144836, 144839, 144842, 144845, 144848, 144851, 144854, 144857, 144860, + 144863, 144866, 144869, 144872, 144875, 144878, 144881, 144884, 144887, + 144890, 144893, 144896, 144899, 144902, 144905, 144908, 144911, 144914, + 144917, 144920, 144923, 144926, 144929, 144932, 144935, 144938, 144941, + 144944, 144947, 144950, 144953, 144956, 144959, 144962, 144965, 144968, + 144971, 144974, 144977, 144980, 144983, 144986, 144989, 144992, 144995, + 144998, 145001, 145004, 145007, 145010, 145013, 145016, 145019, 145022, + 145025, 145028, 145031, 145034, 145037, 145040, 145043, 145046, 145049, + 145052, 145055, 145058, 145061, 145064, 145067, 145070, 145073, 145076, + 145079, 145082, 145085, 145088, 145091, 145094, 145097, 145100, 145103, + 145106, 145109, 145112, 145115, 145118, 145121, 145124, 145127, 145130, + 145133, 145136, 145139, 145142, 145145, 145148, 145151, 145154, 145157, + 145160, 145163, 145166, 145169, 145172, 145175, 145178, 145181, 145184, + 145187, 145190, 145193, 145196, 145199, 145202, 145205, 145208, 145211, + 145214, 145217, 145220, 145223, 145226, 145229, 145232, 145235, 145238, + 145241, 145244, 145247, 145250, 145253, 145256, 145259, 145262, 145265, + 145268, 145271, 145274, 145277, 145280, 145283, 145286, 145289, 145292, + 145295, 145298, 145301, 145304, 145307, 145310, 145313, 145316, 145319, + 145322, 145325, 145328, 145331, 145334, 145337, 145340, 145343, 145346, + 145349, 145352, 145355, 145358, 145361, 145364, 145367, 145370, 145373, + 145376, 145379, 145382, 145385, 145388, 145391, 145394, 145397, 145400, + 145403, 145406, 145409, 145412, 145415, 145418, 145421, 145424, 145427, + 145430, 145433, 145436, 145439, 145442, 145445, 145448, 145451, 145454, + 145457, 145460, 145463, 145466, 145469, 145472, 145475, 145478, 145481, + 145484, 145487, 145490, 145493, 145496, 145499, 145502, 145505, 145508, + 145511, 145514, 145517, 145520, 145523, 145526, 145529, 145532, 145535, + 145538, 145541, 145544, 145547, 145550, 145553, 145556, 145559, 145562, + 145565, 145568, 145571, 145574, 145577, 145580, 145583, 145586, 145589, + 145592, 145595, 145598, 145601, 145604, 145607, 145610, 145613, 145616, + 145619, 145622, 145625, 145628, 145631, 145634, 145637, 145640, 145643, + 145646, 145649, 145652, 145655, 145658, 145661, 145664, 145667, 145670, + 145673, 145676, 145679, 145682, 145685, 145688, 145691, 145694, 145697, + 145700, 145703, 145706, 145709, 145712, 145715, 145718, 145721, 145724, + 145727, 145730, 145733, 145736, 145739, 145742, 145745, 145748, 145751, + 145754, 145757, 145760, 145763, 145766, 145769, 145772, 145775, 145778, + 145781, 145784, 145787, 145790, 145793, 145796, 145799, 145802, 145805, + 145808, 145811, 145814, 145817, 145820, 145823, 145826, 145829, 145832, + 145835, 145838, 145841, 145844, 145847, 145850, 145853, 145856, 145859, + 145862, 145865, 145868, 145871, 145874, 145877, 145880, 145883, 145886, + 145889, 145892, 145895, 145898, 145901, 145904, 145907, 145910, 145913, + 145916, 145919, 145922, 145925, 145928, 145931, 145934, 145937, 145940, + 145943, 145946, 145949, 145952, 145955, 145958, 145961, 145964, 145967, + 145970, 145973, 145976, 145979, 145982, 145985, 145988, 145991, 145994, + 145997, 146000, 146003, 146006, 146009, 146012, 146015, 146018, 146021, + 146024, 146027, 146030, 146033, 146036, 146039, 146042, 146045, 146048, + 146051, 146054, 146057, 146060, 146063, 146066, 146069, 146072, 146075, + 146078, 146081, 146084, 146087, 146090, 146093, 146096, 146099, 146102, + 146105, 146108, 146111, 146114, 146117, 146120, 146123, 146126, 146129, + 146132, 146135, 146138, 146141, 146144, 146147, 146150, 146153, 146156, + 146159, 146162, 146165, 146168, 146171, 146174, 146177, 146180, 146183, + 146186, 146189, 146192, 146195, 146198, 146201, 146204, 146207, 146210, + 146213, 146216, 146219, 146222, 146225, 146228, 146231, 146234, 146237, + 146240, 146243, 146246, 146249, 146252, 146255, 146258, 146261, 146264, + 146267, 146270, 146273, 146276, 146279, 146282, 146285, 146288, 146291, + 146294, 146297, 146300, 146303, 146306, 146309, 146312, 146315, 146318, + 146321, 146324, 146327, 146330, 146333, 146336, 146339, 146342, 146345, + 146348, 146351, 146354, 146357, 146360, 146363, 146366, 146369, 146372, + 146375, 146378, 146381, 146384, 146387, 146390, 146393, 146396, 146399, + 146402, 146405, 146408, 146411, 146414, 146417, 146420, 146423, 146426, + 146429, 146432, 146435, 146438, 146441, 146444, 146447, 146450, 146453, + 146456, 146459, 146462, 146465, 146468, 146471, 146474, 146477, 146482, + 146487, 146492, 146497, 146502, 146507, 146512, 146517, 146522, 146527, + 146532, 146537, 146542, 146547, 146552, 146557, 146562, 146567, 146572, + 146577, 146582, 146587, 146592, 146597, 146602, 146607, 146612, 146617, + 146622, 146627, 146632, 146637, 146642, 146647, 146652, 146657, 146662, + 146667, 146672, 146677, 146682, 146687, 146692, 146697, 146702, 146707, + 146712, 146717, 146722, 146727, 146732, 146737, 146742, 146747, 146752, + 146757, 146762, 146767, 146772, 146777, 146782, 146787, 146792, 146797, + 146802, 146807, 146812, 146817, 146822, 146827, 146832, 146837, 146842, + 146847, 146852, 146857, 146862, 146867, 146872, 146877, 146882, 146887, + 146892, 146897, 146902, 146907, 146912, 146917, 146922, 146927, 146932, + 146937, 146942, 146947, 146952, 146957, 146962, 146967, 146972, 146977, + 146982, 146987, 146992, 146997, 147002, 147007, 147012, 147017, 147022, + 147027, 147032, 147037, 147042, 147047, 147052, 147057, 147062, 147067, + 147072, 147077, 147082, 147087, 147092, 147097, 147102, 147107, 147112, + 147117, 147122, 147127, 147132, 147137, 147142, 147147, 147152, 147157, + 147162, 147167, 147172, 147177, 147182, 147187, 147192, 147197, 147202, + 147207, 147212, 147217, 147222, 147227, 147232, 147237, 147242, 147247, + 147252, 147257, 147262, 147267, 147272, 147277, 147282, 147287, 147292, + 147297, 147302, 147307, 147312, 147317, 147322, 147327, 147332, 147337, + 147342, 147347, 147352, 147357, 147362, 147367, 147372, 147377, 147382, + 147387, 147392, 147397, 147402, 147407, 147412, 147417, 147422, 147427, + 147432, 147437, 147442, 147447, 147452, 147457, 147462, 147467, 147472, + 147477, 147482, 147487, 147492, 147497, 147502, 147507, 147512, 147517, + 147522, 147527, 147532, 147537, 147542, 147547, 147552, 147557, 147562, + 147567, 147572, 147577, 147582, 147587, 147592, 147597, 147602, 147607, + 147612, 147617, 147622, 147627, 147632, 147637, 147642, 147647, 147652, + 147657, 147662, 147667, 147672, 147677, 147682, 147687, 147692, 147697, + 147702, 147707, 147712, 147717, 147722, 147727, 147732, 147737, 147742, + 147747, 147752, 147757, 147762, 147767, 147772, 147777, 147782, 147787, + 147792, 147797, 147802, 147807, 147812, 147817, 147822, 147827, 147832, + 147837, 147842, 147847, 147852, 147857, 147862, 147867, 147872, 147877, + 147882, 147887, 147892, 147897, 147902, 147907, 147912, 147917, 147922, + 147927, 147932, 147937, 147942, 147947, 147952, 147957, 147962, 147967, + 147972, 147977, 147982, 147987, 147992, 147997, 148002, 148007, 148012, + 148017, 148022, 148027, 148032, 148037, 148042, 148047, 148052, 148057, + 148062, 148067, 148072, 148077, 148082, 148087, 148092, 148097, 148102, + 148107, 148112, 148117, 148122, 148127, 148132, 148137, 148142, 148147, + 148152, 148157, 148162, 148167, 148172, 148177, 148182, 148187, 148192, + 148197, 148202, 148207, 148212, 148217, 148222, 148227, 148232, 148237, + 148242, 148247, 148252, 148257, 148262, 148267, 148272, 148277, 148282, + 148287, 148292, 148297, 148302, 148307, 148312, 148317, 148322, 148327, + 148332, 148337, 148342, 148347, 148352, 148357, 148362, 148367, 148372, + 148377, 148382, 148387, 148392, 148397, 148402, 148407, 148412, 148417, + 148422, 148427, 148432, 148437, 148442, 148447, 148452, 148457, 148462, + 148467, 148472, 148477, 148482, 148487, 148492, 148497, 148502, 148507, + 148512, 148517, 148522, 148527, 148532, 148537, 148542, 148547, 148552, + 148557, 148562, 148567, 148572, 148577, 148582, 148587, 148592, 148597, + 148602, 148607, 148612, 148617, 148622, 148627, 148632, 148637, 148642, + 148647, 148652, 148657, 148662, 148667, 148672, 148677, 148682, 148687, + 148692, 148697, 148702, 148707, 148712, 148717, 148722, 148727, 148732, + 148737, 148742, 148747, 148752, 148757, 148762, 148767, 148772, 148777, + 148782, 148787, 148792, 148797, 148802, 148807, 148812, 148817, 148822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 143312, 143316, 143320, 143326, 143332, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 143337, 143346, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 143355, 143358, 143361, 143364, 143367, 143370, 143373, 143376, - 143379, 143382, 143385, 143388, 143391, 143394, 143397, 143400, 143403, - 143406, 143409, 143412, 143415, 143418, 143421, 143424, 143427, 143430, - 143433, 143436, 143439, 143442, 143445, 143448, 143451, 143454, 143457, - 143460, 143463, 143466, 143469, 143472, 143475, 143478, 143481, 143484, - 143487, 143490, 143493, 143496, 143499, 143502, 143505, 143508, 143511, - 143514, 143517, 143520, 143523, 143526, 143529, 143532, 143535, 143538, - 143541, 143544, 143547, 143550, 143553, 143556, 143559, 143562, 143565, - 143568, 143571, 143574, 143577, 143580, 143583, 143586, 143589, 143592, - 143595, 143598, 143601, 143604, 143607, 143610, 143613, 143616, 143619, - 143622, 143625, 143628, 143631, 143634, 143637, 143640, 143643, 143646, - 143649, 143652, 143655, 143658, 143661, 143664, 143667, 143670, 143673, - 143676, 143679, 143682, 143685, 143688, 143691, 143694, 143697, 143700, - 143703, 143706, 143709, 143712, 143715, 143718, 143721, 143724, 143727, - 143730, 143733, 143736, 143739, 143742, 143745, 143748, 143751, 143754, - 143757, 143760, 143763, 143766, 143769, 143772, 143775, 143778, 143781, - 143784, 143787, 143790, 143793, 143796, 143799, 143802, 143805, 143808, - 143811, 143814, 143817, 143820, 143823, 143826, 143829, 143832, 143835, - 143838, 143841, 143844, 143847, 143850, 143853, 143856, 143859, 143862, - 143865, 143868, 143871, 143874, 143877, 143880, 143883, 143886, 143889, - 143892, 143895, 143898, 143901, 143904, 143907, 143910, 143913, 143916, - 143919, 143922, 143925, 143928, 143931, 143934, 143937, 143940, 143943, - 143946, 143949, 143952, 143955, 143958, 143961, 143964, 143967, 143970, - 143973, 143976, 143979, 143982, 143985, 143988, 143991, 143994, 143997, - 144000, 144003, 144006, 144009, 144012, 144015, 144018, 144021, 144024, - 144027, 144030, 144033, 144036, 144039, 144042, 144045, 144048, 144051, - 144054, 144057, 144060, 144063, 144066, 144069, 144072, 144075, 144078, - 144081, 144084, 144087, 144090, 144093, 144096, 144099, 144102, 144105, - 144108, 144111, 144114, 144117, 144120, 144123, 144126, 144129, 144132, - 144135, 144138, 144141, 144144, 144147, 144150, 144153, 144156, 144159, - 144162, 144165, 144168, 144171, 144174, 144177, 144180, 144183, 144186, - 144189, 144192, 144195, 144198, 144201, 144204, 144207, 144210, 144213, - 144216, 144219, 144222, 144225, 144228, 144231, 144234, 144237, 144240, - 144243, 144246, 144249, 144252, 144255, 144258, 144261, 144264, 144267, - 144270, 144273, 144276, 144279, 144282, 144285, 144288, 144291, 144294, - 144297, 144300, 144303, 144306, 144309, 144312, 144315, 144318, 144321, - 144324, 144327, 144330, 144333, 144336, 144339, 144342, 144345, 144348, - 144351, 144354, 144357, 144360, 144363, 144366, 144369, 144372, 144375, - 144378, 144381, 144384, 144387, 144390, 144393, 144396, 144399, 144402, - 144405, 144408, 144411, 144414, 144417, 144420, 144423, 144426, 144429, - 144432, 144435, 144438, 144441, 144444, 144447, 144450, 144453, 144456, - 144459, 144462, 144465, 144468, 144471, 144474, 144477, 144480, 144483, - 144486, 144489, 144492, 144495, 144498, 144501, 144504, 144507, 144510, - 144513, 144516, 144519, 144522, 144525, 144528, 144531, 144534, 144537, - 144540, 144543, 144546, 144549, 144552, 144555, 144558, 144561, 144564, - 144567, 144570, 144573, 144576, 144579, 144582, 144585, 144588, 144591, - 144594, 144597, 144600, 144603, 144606, 144609, 144612, 144615, 144618, - 144621, 144624, 144627, 144630, 144633, 144636, 144639, 144642, 144645, - 144648, 144651, 144654, 144657, 144660, 144663, 144666, 144669, 144672, - 144675, 144678, 144681, 144684, 144687, 144690, 144693, 144696, 144699, - 144702, 144705, 144708, 144711, 144714, 144717, 144720, 144723, 144726, - 144729, 144732, 144735, 144738, 144741, 144744, 144747, 144750, 144753, - 144756, 144759, 144762, 144765, 144768, 144771, 144774, 144777, 144780, - 144783, 144786, 144789, 144792, 144795, 144798, 144801, 144804, 144807, - 144810, 144813, 144816, 144819, 144822, 144825, 144828, 144831, 144834, - 144837, 144840, 144843, 144846, 144849, 144852, 144855, 144858, 144861, - 144864, 144867, 144870, 144873, 144876, 144879, 144882, 144885, 144888, - 144891, 144894, 144897, 144900, 144903, 144906, 144909, 144912, 144915, - 144918, 144921, 144924, 144927, 144930, 144933, 144936, 144939, 144942, - 144945, 144948, 144951, 144954, 144957, 144960, 144963, 144966, 144969, - 144972, 144975, 144978, 144981, 144984, 144987, 144990, 144993, 144996, - 144999, 145002, 145005, 145008, 145011, 145014, 145017, 145020, 145023, - 145026, 145029, 145032, 145035, 145038, 145041, 145044, 145047, 145050, - 145053, 145056, 145059, 145062, 145065, 145068, 145071, 145074, 145077, - 145080, 145083, 145086, 145089, 145092, 145095, 145098, 145101, 145104, - 145107, 145110, 145113, 145116, 145119, 145122, 145125, 145128, 145131, - 145134, 145137, 145140, 145143, 145146, 145149, 145152, 145155, 145158, - 145161, 145164, 145167, 145170, 145173, 145176, 145179, 145182, 145185, - 145188, 145191, 145194, 145197, 145200, 145203, 145206, 145209, 145212, - 145215, 145218, 145221, 145224, 145227, 145230, 145233, 145236, 145239, - 145242, 145245, 145248, 145251, 145254, 145257, 145260, 145263, 145266, - 145269, 145272, 145275, 145278, 145281, 145284, 145287, 145290, 145293, - 145296, 145299, 145302, 145305, 145308, 145311, 145314, 145317, 145320, - 145323, 145326, 145329, 145332, 145335, 145338, 145341, 145344, 145347, - 145350, 145353, 145356, 145359, 145362, 145365, 145368, 145371, 145374, - 145377, 145380, 145383, 145386, 145389, 145392, 145395, 145398, 145401, - 145404, 145407, 145410, 145413, 145416, 145419, 145422, 145425, 145428, - 145431, 145434, 145437, 145440, 145443, 145446, 145449, 145452, 145455, - 145458, 145461, 145464, 145467, 145470, 145473, 145476, 145479, 145482, - 145485, 145488, 145491, 145494, 145497, 145500, 145503, 145506, 145509, - 145512, 145515, 145518, 145521, 145524, 145527, 145530, 145533, 145536, - 145539, 145542, 145545, 145548, 145551, 145554, 145557, 145560, 145563, - 145566, 145569, 145572, 145575, 145578, 145581, 145584, 145587, 145590, - 145593, 145596, 145599, 145602, 145605, 145608, 145611, 145614, 145617, - 145620, 145623, 145626, 145629, 145632, 145635, 145638, 145641, 145644, - 145647, 145650, 145653, 145656, 145659, 145664, 145669, 145674, 145679, - 145684, 145689, 145694, 145699, 145704, 145709, 145714, 145719, 145724, - 145729, 145734, 145739, 145744, 145749, 145754, 145759, 145764, 145769, - 145774, 145779, 145784, 145789, 145794, 145799, 145804, 145809, 145814, - 145819, 145824, 145829, 145834, 145839, 145844, 145849, 145854, 145859, - 145864, 145869, 145874, 145879, 145884, 145889, 145894, 145899, 145904, - 145909, 145914, 145919, 145924, 145929, 145934, 145939, 145944, 145949, - 145954, 145959, 145964, 145969, 145974, 145979, 145984, 145989, 145994, - 145999, 146004, 146009, 146014, 146019, 146024, 146029, 146034, 146039, - 146044, 146049, 146054, 146059, 146064, 146069, 146074, 146079, 146084, - 146089, 146094, 146099, 146104, 146109, 146114, 146119, 146124, 146129, - 146134, 146139, 146144, 146149, 146154, 146159, 146164, 146169, 146174, - 146179, 146184, 146189, 146194, 146199, 146204, 146209, 146214, 146219, - 146224, 146229, 146234, 146239, 146244, 146249, 146254, 146259, 146264, - 146269, 146274, 146279, 146284, 146289, 146294, 146299, 146304, 146309, - 146314, 146319, 146324, 146329, 146334, 146339, 146344, 146349, 146354, - 146359, 146364, 146369, 146374, 146379, 146384, 146389, 146394, 146399, - 146404, 146409, 146414, 146419, 146424, 146429, 146434, 146439, 146444, - 146449, 146454, 146459, 146464, 146469, 146474, 146479, 146484, 146489, - 146494, 146499, 146504, 146509, 146514, 146519, 146524, 146529, 146534, - 146539, 146544, 146549, 146554, 146559, 146564, 146569, 146574, 146579, - 146584, 146589, 146594, 146599, 146604, 146609, 146614, 146619, 146624, - 146629, 146634, 146639, 146644, 146649, 146654, 146659, 146664, 146669, - 146674, 146679, 146684, 146689, 146694, 146699, 146704, 146709, 146714, - 146719, 146724, 146729, 146734, 146739, 146744, 146749, 146754, 146759, - 146764, 146769, 146774, 146779, 146784, 146789, 146794, 146799, 146804, - 146809, 146814, 146819, 146824, 146829, 146834, 146839, 146844, 146849, - 146854, 146859, 146864, 146869, 146874, 146879, 146884, 146889, 146894, - 146899, 146904, 146909, 146914, 146919, 146924, 146929, 146934, 146939, - 146944, 146949, 146954, 146959, 146964, 146969, 146974, 146979, 146984, - 146989, 146994, 146999, 147004, 147009, 147014, 147019, 147024, 147029, - 147034, 147039, 147044, 147049, 147054, 147059, 147064, 147069, 147074, - 147079, 147084, 147089, 147094, 147099, 147104, 147109, 147114, 147119, - 147124, 147129, 147134, 147139, 147144, 147149, 147154, 147159, 147164, - 147169, 147174, 147179, 147184, 147189, 147194, 147199, 147204, 147209, - 147214, 147219, 147224, 147229, 147234, 147239, 147244, 147249, 147254, - 147259, 147264, 147269, 147274, 147279, 147284, 147289, 147294, 147299, - 147304, 147309, 147314, 147319, 147324, 147329, 147334, 147339, 147344, - 147349, 147354, 147359, 147364, 147369, 147374, 147379, 147384, 147389, - 147394, 147399, 147404, 147409, 147414, 147419, 147424, 147429, 147434, - 147439, 147444, 147449, 147454, 147459, 147464, 147469, 147474, 147479, - 147484, 147489, 147494, 147499, 147504, 147509, 147514, 147519, 147524, - 147529, 147534, 147539, 147544, 147549, 147554, 147559, 147564, 147569, - 147574, 147579, 147584, 147589, 147594, 147599, 147604, 147609, 147614, - 147619, 147624, 147629, 147634, 147639, 147644, 147649, 147654, 147659, - 147664, 147669, 147674, 147679, 147684, 147689, 147694, 147699, 147704, - 147709, 147714, 147719, 147724, 147729, 147734, 147739, 147744, 147749, - 147754, 147759, 147764, 147769, 147774, 147779, 147784, 147789, 147794, - 147799, 147804, 147809, 147814, 147819, 147824, 147829, 147834, 147839, - 147844, 147849, 147854, 147859, 147864, 147869, 147874, 147879, 147884, - 147889, 147894, 147899, 147904, 147909, 147914, 147919, 147924, 147929, - 147934, 147939, 147944, 147949, 147954, 147959, 147964, 147969, 147974, - 147979, 147984, 147989, 147994, 147999, 148004, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 148827, 148833, 148839, 148845, 0, 148851, + 148857, 148863, 148871, 148879, 148887, 148895, 0, 148903, 148911, 0, + 148919, 148924, 148931, 148935, 148939, 148943, 148947, 148951, 148955, + 148959, 148963, 148967, 148971, 148975, 148979, 148983, 148987, 148991, + 148995, 148999, 149003, 149007, 149011, 149015, 149019, 149023, 149027, + 149031, 149035, 149039, 149043, 149047, 149051, 149055, 149059, 149063, + 149067, 149071, 149075, 149079, 149083, 149087, 149091, 149095, 149099, + 149103, 149107, 149111, 149115, 149119, 149123, 149127, 149131, 149135, + 149139, 149143, 149147, 149151, 149155, 149159, 149163, 149167, 149171, + 149175, 149179, 149183, 149187, 149191, 149195, 149199, 149203, 149207, + 149211, 149215, 149219, 149223, 149227, 149231, 149235, 149239, 149243, + 149247, 149251, 149255, 149259, 149263, 149267, 149271, 149275, 149279, + 149283, 149287, 149291, 149295, 149299, 149303, 149307, 149311, 149315, + 149319, 149323, 149327, 149331, 149335, 149339, 149343, 149347, 149351, + 149355, 149359, 149363, 149367, 149371, 149375, 149379, 149383, 149387, + 149391, 149395, 149399, 149403, 149407, 149411, 149415, 149419, 149423, + 149427, 149431, 149435, 149439, 149443, 149447, 149451, 149455, 149459, + 149463, 149467, 149471, 149475, 149479, 149483, 149487, 149491, 149495, + 149499, 149503, 149507, 149511, 149515, 149519, 149523, 149527, 149531, + 149535, 149539, 149543, 149547, 149551, 149555, 149559, 149563, 149567, + 149571, 149575, 149579, 149583, 149587, 149591, 149595, 149599, 149603, + 149607, 149611, 149615, 149619, 149623, 149627, 149631, 149635, 149639, + 149643, 149647, 149651, 149655, 149659, 149663, 149667, 149671, 149675, + 149679, 149683, 149687, 149691, 149695, 149699, 149703, 149707, 149711, + 149715, 149719, 149723, 149727, 149731, 149735, 149739, 149743, 149747, + 149751, 149755, 149759, 149763, 149767, 149771, 149775, 149779, 149783, + 149787, 149791, 149795, 149799, 149803, 149807, 149811, 149815, 149819, + 149823, 149827, 149831, 149835, 149839, 149843, 149847, 149851, 149855, + 149859, 149863, 149867, 149871, 149875, 149879, 149883, 149887, 149891, + 149895, 149899, 149903, 149907, 149911, 149915, 149919, 149923, 149927, + 149931, 149935, 149939, 149943, 149947, 149951, 149955, 149959, 149963, + 149967, 149971, 149975, 149979, 149983, 149987, 149991, 149995, 149999, + 150003, 150007, 150011, 150015, 150019, 150023, 150027, 150031, 150035, + 150039, 150043, 150047, 150051, 150055, 150059, 150063, 150067, 150071, + 150078, 150084, 150090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 150096, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 150102, 150108, 150114, 0, 0, 150120, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 150125, 150130, 150135, 150140, 0, 0, 0, 0, 0, + 0, 0, 0, 150145, 150148, 150151, 150154, 150157, 150160, 150163, 150166, + 150169, 150172, 150175, 150178, 150181, 150184, 150187, 150190, 150193, + 150196, 150199, 150202, 150205, 150208, 150211, 150214, 150217, 150220, + 150223, 150226, 150229, 150232, 150235, 150238, 150241, 150244, 150247, + 150250, 150253, 150256, 150259, 150262, 150265, 150268, 150271, 150274, + 150277, 150280, 150283, 150286, 150289, 150292, 150295, 150298, 150301, + 150304, 150307, 150310, 150313, 150316, 150319, 150322, 150325, 150328, + 150331, 150334, 150337, 150340, 150343, 150346, 150349, 150352, 150355, + 150358, 150361, 150364, 150367, 150370, 150373, 150376, 150379, 150382, + 150385, 150388, 150391, 150394, 150397, 150400, 150403, 150406, 150409, + 150412, 150415, 150418, 150421, 150424, 150427, 150430, 150433, 150436, + 150439, 150442, 150445, 150448, 150451, 150454, 150457, 150460, 150463, + 150466, 150469, 150472, 150475, 150478, 150481, 150484, 150487, 150490, + 150493, 150496, 150499, 150502, 150505, 150508, 150511, 150514, 150517, + 150520, 150523, 150526, 150529, 150532, 150535, 150538, 150541, 150544, + 150547, 150550, 150553, 150556, 150559, 150562, 150565, 150568, 150571, + 150574, 150577, 150580, 150583, 150586, 150589, 150592, 150595, 150598, + 150601, 150604, 150607, 150610, 150613, 150616, 150619, 150622, 150625, + 150628, 150631, 150634, 150637, 150640, 150643, 150646, 150649, 150652, + 150655, 150658, 150661, 150664, 150667, 150670, 150673, 150676, 150679, + 150682, 150685, 150688, 150691, 150694, 150697, 150700, 150703, 150706, + 150709, 150712, 150715, 150718, 150721, 150724, 150727, 150730, 150733, + 150736, 150739, 150742, 150745, 150748, 150751, 150754, 150757, 150760, + 150763, 150766, 150769, 150772, 150775, 150778, 150781, 150784, 150787, + 150790, 150793, 150796, 150799, 150802, 150805, 150808, 150811, 150814, + 150817, 150820, 150823, 150826, 150829, 150832, 150835, 150838, 150841, + 150844, 150847, 150850, 150853, 150856, 150859, 150862, 150865, 150868, + 150871, 150874, 150877, 150880, 150883, 150886, 150889, 150892, 150895, + 150898, 150901, 150904, 150907, 150910, 150913, 150916, 150919, 150922, + 150925, 150928, 150931, 150934, 150937, 150940, 150943, 150946, 150949, + 150952, 150955, 150958, 150961, 150964, 150967, 150970, 150973, 150976, + 150979, 150982, 150985, 150988, 150991, 150994, 150997, 151000, 151003, + 151006, 151009, 151012, 151015, 151018, 151021, 151024, 151027, 151030, + 151033, 151036, 151039, 151042, 151045, 151048, 151051, 151054, 151057, + 151060, 151063, 151066, 151069, 151072, 151075, 151078, 151081, 151084, + 151087, 151090, 151093, 151096, 151099, 151102, 151105, 151108, 151111, + 151114, 151117, 151120, 151123, 151126, 151129, 151132, 151135, 151138, + 151141, 151144, 151147, 151150, 151153, 151156, 151159, 151162, 151165, + 151168, 151171, 151174, 151177, 151180, 151183, 151186, 151189, 151192, + 151195, 151198, 151201, 151204, 151207, 151210, 151213, 151216, 151219, + 151222, 151225, 151228, 151231, 151234, 151237, 151240, 151243, 151246, + 151249, 151252, 151255, 151258, 151261, 151264, 151267, 151270, 151273, + 151276, 151279, 151282, 151285, 151288, 151291, 151294, 151297, 151300, + 151303, 151306, 151309, 151312, 151315, 151318, 151321, 151324, 151327, + 151330, 0, 0, 0, 0, 151333, 151337, 151341, 151345, 151349, 151353, + 151357, 151360, 151364, 151368, 151372, 151376, 151379, 151385, 151391, + 151397, 151403, 151409, 151413, 151419, 151423, 151427, 151433, 151437, + 151441, 151445, 151449, 151453, 151457, 151461, 151467, 151473, 151479, + 151485, 151492, 151499, 151506, 151516, 151523, 151530, 151536, 151542, + 151548, 151554, 151562, 151570, 151578, 151586, 151595, 151601, 151609, + 151615, 151622, 151628, 151635, 151641, 151649, 151653, 151657, 151662, + 151668, 151674, 151682, 151690, 151696, 151703, 151706, 151712, 151716, + 151719, 151723, 151726, 151729, 151733, 151738, 151742, 151746, 151752, + 151757, 151763, 151767, 151771, 151774, 151778, 151782, 151787, 151791, + 151796, 151800, 151805, 151809, 151813, 151817, 151821, 151825, 151829, + 151833, 151837, 151842, 151847, 151852, 151857, 151863, 151869, 151875, + 151881, 151887, 0, 0, 0, 0, 0, 151892, 151900, 151909, 151917, 151924, + 151932, 151939, 151946, 151955, 151962, 151969, 151977, 151985, 0, 0, 0, + 151993, 151999, 152007, 152013, 152020, 152026, 152032, 152038, 152044, + 0, 0, 0, 0, 0, 0, 0, 152050, 152056, 152064, 152070, 152077, 152083, + 152089, 152095, 152101, 152107, 0, 0, 152112, 152118, 152124, 152127, + 152136, 152143, 152151, 152158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 148009, 148015, 148021, 148027, 0, 148033, 148039, 148045, 148053, - 148061, 148069, 148077, 0, 148085, 148093, 0, 148101, 148106, 148113, - 148117, 148121, 148125, 148129, 148133, 148137, 148141, 148145, 148149, - 148153, 148157, 148161, 148165, 148169, 148173, 148177, 148181, 148185, - 148189, 148193, 148197, 148201, 148205, 148209, 148213, 148217, 148221, - 148225, 148229, 148233, 148237, 148241, 148245, 148249, 148253, 148257, - 148261, 148265, 148269, 148273, 148277, 148281, 148285, 148289, 148293, - 148297, 148301, 148305, 148309, 148313, 148317, 148321, 148325, 148329, - 148333, 148337, 148341, 148345, 148349, 148353, 148357, 148361, 148365, - 148369, 148373, 148377, 148381, 148385, 148389, 148393, 148397, 148401, - 148405, 148409, 148413, 148417, 148421, 148425, 148429, 148433, 148437, - 148441, 148445, 148449, 148453, 148457, 148461, 148465, 148469, 148473, - 148477, 148481, 148485, 148489, 148493, 148497, 148501, 148505, 148509, - 148513, 148517, 148521, 148525, 148529, 148533, 148537, 148541, 148545, - 148549, 148553, 148557, 148561, 148565, 148569, 148573, 148577, 148581, - 148585, 148589, 148593, 148597, 148601, 148605, 148609, 148613, 148617, - 148621, 148625, 148629, 148633, 148637, 148641, 148645, 148649, 148653, - 148657, 148661, 148665, 148669, 148673, 148677, 148681, 148685, 148689, - 148693, 148697, 148701, 148705, 148709, 148713, 148717, 148721, 148725, - 148729, 148733, 148737, 148741, 148745, 148749, 148753, 148757, 148761, - 148765, 148769, 148773, 148777, 148781, 148785, 148789, 148793, 148797, - 148801, 148805, 148809, 148813, 148817, 148821, 148825, 148829, 148833, - 148837, 148841, 148845, 148849, 148853, 148857, 148861, 148865, 148869, - 148873, 148877, 148881, 148885, 148889, 148893, 148897, 148901, 148905, - 148909, 148913, 148917, 148921, 148925, 148929, 148933, 148937, 148941, - 148945, 148949, 148953, 148957, 148961, 148965, 148969, 148973, 148977, - 148981, 148985, 148989, 148993, 148997, 149001, 149005, 149009, 149013, - 149017, 149021, 149025, 149029, 149033, 149037, 149041, 149045, 149049, - 149053, 149057, 149061, 149065, 149069, 149073, 149077, 149081, 149085, - 149089, 149093, 149097, 149101, 149105, 149109, 149113, 149117, 149121, - 149125, 149129, 149133, 149137, 149141, 149145, 149149, 149153, 149157, - 149161, 149165, 149169, 149173, 149177, 149181, 149185, 149189, 149193, - 149197, 149201, 149205, 149209, 149213, 149217, 149221, 149225, 149229, - 149233, 149237, 149241, 149245, 149249, 149253, 149260, 149266, 149272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149278, - 149284, 149290, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 149296, 149301, 149306, 149311, 0, 0, 0, 0, 0, 0, 0, 0, 149316, 149319, - 149322, 149325, 149328, 149331, 149334, 149337, 149340, 149343, 149346, - 149349, 149352, 149355, 149358, 149361, 149364, 149367, 149370, 149373, - 149376, 149379, 149382, 149385, 149388, 149391, 149394, 149397, 149400, - 149403, 149406, 149409, 149412, 149415, 149418, 149421, 149424, 149427, - 149430, 149433, 149436, 149439, 149442, 149445, 149448, 149451, 149454, - 149457, 149460, 149463, 149466, 149469, 149472, 149475, 149478, 149481, - 149484, 149487, 149490, 149493, 149496, 149499, 149502, 149505, 149508, - 149511, 149514, 149517, 149520, 149523, 149526, 149529, 149532, 149535, - 149538, 149541, 149544, 149547, 149550, 149553, 149556, 149559, 149562, - 149565, 149568, 149571, 149574, 149577, 149580, 149583, 149586, 149589, - 149592, 149595, 149598, 149601, 149604, 149607, 149610, 149613, 149616, - 149619, 149622, 149625, 149628, 149631, 149634, 149637, 149640, 149643, - 149646, 149649, 149652, 149655, 149658, 149661, 149664, 149667, 149670, - 149673, 149676, 149679, 149682, 149685, 149688, 149691, 149694, 149697, - 149700, 149703, 149706, 149709, 149712, 149715, 149718, 149721, 149724, - 149727, 149730, 149733, 149736, 149739, 149742, 149745, 149748, 149751, - 149754, 149757, 149760, 149763, 149766, 149769, 149772, 149775, 149778, - 149781, 149784, 149787, 149790, 149793, 149796, 149799, 149802, 149805, - 149808, 149811, 149814, 149817, 149820, 149823, 149826, 149829, 149832, - 149835, 149838, 149841, 149844, 149847, 149850, 149853, 149856, 149859, - 149862, 149865, 149868, 149871, 149874, 149877, 149880, 149883, 149886, - 149889, 149892, 149895, 149898, 149901, 149904, 149907, 149910, 149913, - 149916, 149919, 149922, 149925, 149928, 149931, 149934, 149937, 149940, - 149943, 149946, 149949, 149952, 149955, 149958, 149961, 149964, 149967, - 149970, 149973, 149976, 149979, 149982, 149985, 149988, 149991, 149994, - 149997, 150000, 150003, 150006, 150009, 150012, 150015, 150018, 150021, - 150024, 150027, 150030, 150033, 150036, 150039, 150042, 150045, 150048, - 150051, 150054, 150057, 150060, 150063, 150066, 150069, 150072, 150075, - 150078, 150081, 150084, 150087, 150090, 150093, 150096, 150099, 150102, - 150105, 150108, 150111, 150114, 150117, 150120, 150123, 150126, 150129, - 150132, 150135, 150138, 150141, 150144, 150147, 150150, 150153, 150156, - 150159, 150162, 150165, 150168, 150171, 150174, 150177, 150180, 150183, - 150186, 150189, 150192, 150195, 150198, 150201, 150204, 150207, 150210, - 150213, 150216, 150219, 150222, 150225, 150228, 150231, 150234, 150237, - 150240, 150243, 150246, 150249, 150252, 150255, 150258, 150261, 150264, - 150267, 150270, 150273, 150276, 150279, 150282, 150285, 150288, 150291, - 150294, 150297, 150300, 150303, 150306, 150309, 150312, 150315, 150318, - 150321, 150324, 150327, 150330, 150333, 150336, 150339, 150342, 150345, - 150348, 150351, 150354, 150357, 150360, 150363, 150366, 150369, 150372, - 150375, 150378, 150381, 150384, 150387, 150390, 150393, 150396, 150399, - 150402, 150405, 150408, 150411, 150414, 150417, 150420, 150423, 150426, - 150429, 150432, 150435, 150438, 150441, 150444, 150447, 150450, 150453, - 150456, 150459, 150462, 150465, 150468, 150471, 150474, 150477, 150480, - 150483, 150486, 150489, 150492, 150495, 150498, 150501, 0, 0, 0, 0, - 150504, 150508, 150512, 150516, 150520, 150524, 150528, 150531, 150535, - 150539, 150543, 150547, 150550, 150556, 150562, 150568, 150574, 150580, - 150584, 150590, 150594, 150598, 150604, 150608, 150612, 150616, 150620, - 150624, 150628, 150632, 150638, 150644, 150650, 150656, 150663, 150670, - 150677, 150687, 150694, 150701, 150707, 150713, 150719, 150725, 150733, - 150741, 150749, 150757, 150766, 150772, 150780, 150786, 150793, 150799, - 150806, 150812, 150820, 150824, 150828, 150833, 150839, 150845, 150853, - 150861, 150867, 150874, 150877, 150883, 150887, 150890, 150894, 150897, - 150900, 150904, 150909, 150913, 150917, 150923, 150928, 150934, 150938, - 150942, 150945, 150949, 150953, 150958, 150962, 150967, 150971, 150976, - 150980, 150984, 150988, 150992, 150996, 151000, 151004, 151008, 151013, - 151018, 151023, 151028, 151034, 151040, 151046, 151052, 151058, 0, 0, 0, - 0, 0, 151063, 151071, 151080, 151088, 151095, 151103, 151110, 151117, - 151126, 151133, 151140, 151148, 151156, 0, 0, 0, 151164, 151170, 151178, - 151184, 151191, 151197, 151203, 151209, 151215, 0, 0, 0, 0, 0, 0, 0, - 151221, 151227, 151235, 151241, 151248, 151254, 151260, 151266, 151272, - 151278, 0, 0, 151283, 151289, 151295, 151298, 151307, 151314, 151322, - 151329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 152165, 152180, 152193, 152202, 152213, 152222, 152231, + 152242, 152251, 152260, 152275, 152288, 152301, 152315, 152327, 152335, + 152345, 152353, 152361, 152371, 152379, 152387, 152401, 152413, 152425, + 152434, 152445, 152454, 152463, 152470, 152479, 152488, 152495, 152500, + 152505, 152510, 152515, 152520, 152525, 152530, 152535, 152540, 152545, + 152550, 152555, 152560, 0, 0, 152569, 152578, 152587, 152596, 152601, + 152608, 152613, 152618, 152626, 152631, 152638, 152643, 152650, 152655, + 152660, 152667, 152674, 152679, 152688, 152694, 152700, 152708, 152714, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 152720, 152724, 152730, 152734, 152742, + 152746, 152750, 152754, 152762, 152766, 152772, 152781, 152785, 152789, + 152793, 152799, 152805, 152811, 152817, 152823, 152829, 152835, 152841, + 152847, 152855, 152863, 152871, 152879, 152884, 152890, 152894, 152898, + 152902, 152906, 152912, 152918, 152924, 152930, 152936, 152944, 152950, + 152958, 152966, 152974, 152982, 152990, 152994, 153002, 153008, 153016, + 153020, 153024, 153028, 153032, 153036, 153040, 153048, 153056, 153068, + 153080, 153086, 153096, 153104, 153114, 153126, 153130, 153136, 153142, + 153148, 153154, 153160, 153166, 153172, 153178, 153184, 153192, 153198, + 153204, 153210, 153218, 153226, 153237, 153248, 153254, 153260, 153270, + 153276, 153284, 153288, 153294, 153300, 153306, 153312, 153318, 153324, + 153330, 153334, 153340, 153346, 153354, 153362, 153370, 153376, 153384, + 153397, 153410, 153418, 153426, 153438, 153446, 153456, 153464, 153468, + 153472, 153476, 153480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 151336, - 151351, 151364, 151373, 151384, 151393, 151402, 151413, 151422, 151431, - 151446, 151459, 151472, 151486, 151498, 151506, 151516, 151524, 151532, - 151542, 151550, 151558, 151572, 151584, 151596, 151605, 151616, 151625, - 151634, 151641, 151650, 151659, 151666, 151671, 151676, 151681, 151686, - 151691, 151696, 151701, 151706, 151711, 151716, 151721, 151726, 151731, - 0, 0, 151740, 151749, 151758, 151767, 151772, 151779, 151784, 151789, - 151797, 151802, 151809, 151814, 151821, 151826, 151831, 151838, 151845, - 151850, 151859, 151865, 151871, 151879, 151885, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 151891, 151895, 151901, 151905, 151913, 151917, 151921, 151925, - 151933, 151937, 151943, 151952, 151956, 151960, 151964, 151970, 151976, - 151982, 151988, 151994, 152000, 152006, 152012, 152018, 152026, 152034, - 152042, 152050, 152055, 152061, 152065, 152069, 152073, 152077, 152083, - 152089, 152095, 152101, 152107, 152115, 152121, 152129, 152137, 152145, - 152153, 152161, 152165, 152173, 152179, 152187, 152191, 152195, 152199, - 152203, 152207, 152211, 152219, 152227, 152239, 152251, 152257, 152267, - 152275, 152285, 152297, 152301, 152307, 152313, 152319, 152325, 152331, - 152337, 152343, 152349, 152355, 152363, 152369, 152375, 152381, 152389, - 152397, 152408, 152419, 152425, 152431, 152441, 152447, 152455, 152459, - 152465, 152471, 152477, 152483, 152489, 152495, 152501, 152505, 152511, - 152517, 152525, 152533, 152541, 152547, 152555, 152568, 152581, 152589, - 152597, 152609, 152617, 152627, 152635, 152639, 152643, 152647, 152651, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 153484, + 153489, 153494, 153499, 153506, 153513, 153520, 153527, 153532, 153537, + 153542, 153547, 153554, 153559, 153566, 153573, 153578, 153583, 153588, + 153595, 153600, 153605, 153612, 153619, 153624, 153629, 153634, 153641, + 153648, 153655, 153660, 153665, 153672, 153679, 153686, 153693, 153698, + 153703, 153708, 153715, 153720, 153725, 153730, 153737, 153746, 153753, + 153758, 153763, 153768, 153773, 153778, 153783, 153792, 153799, 153804, + 153811, 153818, 153823, 153828, 153833, 153840, 153845, 153852, 153859, + 153864, 153869, 153874, 153881, 153888, 153893, 153898, 153905, 153912, + 153919, 153924, 153929, 153934, 153939, 153946, 153955, 153964, 153969, + 153976, 153985, 153990, 153995, 154000, 154005, 154012, 154019, 154026, + 154033, 154038, 154043, 154048, 154055, 154062, 154069, 154074, 154079, + 154086, 154091, 154098, 154103, 154110, 154115, 154122, 154129, 154134, + 154139, 154144, 154149, 154154, 154159, 154164, 154169, 154174, 154181, + 154188, 154195, 154202, 154209, 154218, 154223, 154228, 154235, 154242, + 154247, 154254, 154261, 154268, 154275, 154282, 154289, 154294, 154299, + 154304, 154309, 154314, 154323, 154332, 154341, 154350, 154359, 154368, + 154377, 154386, 154391, 154402, 154413, 154422, 154427, 154432, 154437, + 154442, 154451, 154458, 154465, 154472, 154479, 154486, 154493, 154502, + 154511, 154522, 154531, 154542, 154551, 154558, 154567, 154578, 154587, + 154596, 154605, 154614, 154621, 154628, 154635, 154644, 154653, 154664, + 154673, 154682, 154693, 154698, 154703, 154714, 154722, 154731, 154740, + 154749, 154760, 154769, 154778, 154789, 154800, 154811, 154822, 154833, + 154844, 154851, 154858, 154865, 154872, 154883, 154892, 154899, 154906, + 154913, 154924, 154935, 154946, 154957, 154968, 154979, 154990, 155001, + 155008, 155015, 155024, 155033, 155040, 155047, 155054, 155063, 155072, + 155081, 155088, 155097, 155106, 155115, 155122, 155129, 155134, 155140, + 155147, 155154, 155161, 155168, 155175, 155182, 155191, 155200, 155209, + 155218, 155225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 155234, 155240, 155245, + 155250, 155257, 155263, 155269, 155275, 155281, 155287, 155293, 155299, + 155303, 155307, 155313, 155319, 155325, 155329, 155334, 155339, 155343, + 155347, 155351, 155357, 155363, 155369, 155375, 155381, 155387, 155393, + 155399, 155405, 155415, 155425, 155431, 155437, 155447, 155457, 155463, + 0, 0, 155469, 155477, 155482, 155487, 155493, 155499, 155505, 155511, + 155517, 155523, 155530, 155537, 155543, 155549, 155555, 155561, 155567, + 155573, 155579, 155585, 155590, 155596, 155602, 155608, 155614, 155620, + 155629, 155635, 155640, 155648, 155655, 155662, 155671, 155680, 155689, + 155698, 155707, 155716, 155725, 155734, 155744, 155754, 155762, 155770, + 155779, 155788, 155794, 155800, 155806, 155812, 155820, 155828, 155832, + 155838, 155843, 155849, 155855, 155861, 155867, 155873, 155882, 155887, + 155894, 155899, 155904, 155909, 155915, 155921, 155927, 155934, 155939, + 155944, 155949, 155954, 155959, 155965, 155971, 155977, 155983, 155989, + 155995, 156001, 156007, 156012, 156017, 156022, 156027, 156032, 156037, + 156042, 156047, 156053, 156059, 156064, 156069, 156074, 156079, 156084, + 156090, 156097, 156101, 156105, 156109, 156113, 156117, 156121, 156125, + 156129, 156137, 156147, 156151, 156155, 156161, 156167, 156173, 156179, + 156185, 156191, 156197, 156203, 156209, 156215, 156221, 156227, 156233, + 156239, 156243, 156247, 156254, 156260, 156266, 156272, 156277, 156284, + 156289, 156295, 156301, 156307, 156313, 156318, 156322, 156328, 156332, + 156336, 156340, 156346, 156352, 156356, 156362, 156368, 156374, 156380, + 156386, 156394, 156402, 156408, 156414, 156420, 156426, 156438, 156450, + 156464, 156476, 156488, 156502, 156516, 156530, 156534, 156542, 156550, + 156555, 156559, 156563, 156567, 156571, 156575, 156579, 156583, 156589, + 156595, 156601, 156607, 156615, 156624, 156631, 156638, 156646, 156653, + 156665, 156677, 156689, 156701, 156708, 156712, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 156716, 156723, 156730, 156737, + 156744, 156751, 156758, 156765, 156772, 156779, 156786, 156793, 156800, + 156807, 156814, 156821, 156828, 156835, 156842, 156849, 156856, 156863, + 156870, 156877, 156884, 156891, 156898, 156905, 156912, 156919, 156926, + 156933, 156940, 156947, 156954, 156961, 156968, 156975, 156982, 156989, + 156996, 157003, 157010, 157017, 157024, 157031, 157038, 157045, 157052, + 157059, 157066, 157073, 157080, 157087, 157094, 157101, 157108, 157115, + 157122, 157129, 157136, 157143, 157150, 157157, 157164, 157171, 157178, + 157183, 157188, 157193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 152655, 152660, 152665, 152670, - 152677, 152684, 152691, 152698, 152703, 152708, 152713, 152718, 152725, - 152730, 152737, 152744, 152749, 152754, 152759, 152766, 152771, 152776, - 152783, 152790, 152795, 152800, 152805, 152812, 152819, 152826, 152831, - 152836, 152843, 152850, 152857, 152864, 152869, 152874, 152879, 152886, - 152891, 152896, 152901, 152908, 152917, 152924, 152929, 152934, 152939, - 152944, 152949, 152954, 152963, 152970, 152975, 152982, 152989, 152994, - 152999, 153004, 153011, 153016, 153023, 153030, 153035, 153040, 153045, - 153052, 153059, 153064, 153069, 153076, 153083, 153090, 153095, 153100, - 153105, 153110, 153117, 153126, 153135, 153140, 153147, 153156, 153161, - 153166, 153171, 153176, 153183, 153190, 153197, 153204, 153209, 153214, - 153219, 153226, 153233, 153240, 153245, 153250, 153257, 153262, 153269, - 153274, 153281, 153286, 153293, 153300, 153305, 153310, 153315, 153320, - 153325, 153330, 153335, 153340, 153345, 153352, 153359, 153366, 153373, - 153380, 153389, 153394, 153399, 153406, 153413, 153418, 153425, 153432, - 153439, 153446, 153453, 153460, 153465, 153470, 153475, 153480, 153485, - 153494, 153503, 153512, 153521, 153530, 153539, 153548, 153557, 153562, - 153573, 153584, 153593, 153598, 153603, 153608, 153613, 153622, 153629, - 153636, 153643, 153650, 153657, 153664, 153673, 153682, 153693, 153702, - 153713, 153722, 153729, 153738, 153749, 153758, 153767, 153776, 153785, - 153792, 153799, 153806, 153815, 153824, 153835, 153844, 153853, 153864, - 153869, 153874, 153885, 153893, 153902, 153911, 153920, 153931, 153940, - 153949, 153960, 153971, 153982, 153993, 154004, 154015, 154022, 154029, - 154036, 154043, 154054, 154063, 154070, 154077, 154084, 154095, 154106, - 154117, 154128, 154139, 154150, 154161, 154172, 154179, 154186, 154195, - 154204, 154211, 154218, 154225, 154234, 154243, 154252, 154259, 154268, - 154277, 154286, 154293, 154300, 154305, 154311, 154318, 154325, 154332, - 154339, 154346, 154353, 154362, 154371, 154380, 154389, 154396, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 154405, 154411, 154416, 154421, 154428, 154434, - 154440, 154446, 154452, 154458, 154464, 154470, 154474, 154478, 154484, - 154490, 154496, 154500, 154505, 154510, 154514, 154518, 154522, 154528, - 154534, 154540, 154546, 154552, 154558, 154564, 154570, 154576, 154586, - 154596, 154602, 154608, 154618, 154628, 154634, 0, 0, 154640, 154648, - 154653, 154658, 154664, 154670, 154676, 154682, 154688, 154694, 154701, - 154708, 154714, 154720, 154726, 154732, 154738, 154744, 154750, 154756, - 154761, 154767, 154773, 154779, 154785, 154791, 154800, 154806, 154811, - 154819, 154826, 154833, 154842, 154851, 154860, 154869, 154878, 154887, - 154896, 154905, 154915, 154925, 154933, 154941, 154950, 154959, 154965, - 154971, 154977, 154983, 154991, 154999, 155003, 155009, 155014, 155020, - 155026, 155032, 155038, 155044, 155053, 155058, 155065, 155070, 155075, - 155080, 155086, 155092, 155098, 155105, 155110, 155115, 155120, 155125, - 155130, 155136, 155142, 155148, 155154, 155160, 155166, 155172, 155178, - 155183, 155188, 155193, 155198, 155203, 155208, 155213, 155218, 155224, - 155230, 155235, 155240, 155245, 155250, 155255, 155261, 155268, 155272, - 155276, 155280, 155284, 155288, 155292, 155296, 155300, 155308, 155318, - 155322, 155326, 155332, 155338, 155344, 155350, 155356, 155362, 155368, - 155374, 155380, 155386, 155392, 155398, 155404, 155410, 155414, 155418, - 155425, 155431, 155437, 155443, 155448, 155455, 155460, 155466, 155472, - 155478, 155484, 155489, 155493, 155499, 155503, 155507, 155511, 155517, - 155523, 155527, 155533, 155539, 155545, 155551, 155557, 155565, 155573, - 155579, 155585, 155591, 155597, 155609, 155621, 155635, 155647, 155659, - 155673, 155687, 155701, 155705, 155713, 155721, 155726, 155730, 155734, - 155738, 155742, 155746, 155750, 155754, 155760, 155766, 155772, 155778, - 155786, 155795, 155802, 155809, 155817, 155824, 155836, 155848, 155860, - 155872, 155879, 155883, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 155887, 155894, 155901, 155908, 155915, 155922, 155929, - 155936, 155943, 155950, 155957, 155964, 155971, 155978, 155985, 155992, - 155999, 156006, 156013, 156020, 156027, 156034, 156041, 156048, 156055, - 156062, 156069, 156076, 156083, 156090, 156097, 156104, 156111, 156118, - 156125, 156132, 156139, 156146, 156153, 156160, 156167, 156174, 156181, - 156188, 156195, 156202, 156209, 156216, 156223, 156230, 156237, 156244, - 156251, 156258, 156265, 156272, 156279, 156286, 156293, 156300, 156307, - 156314, 156321, 156328, 156335, 156342, 156349, 156354, 156359, 156364, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 157197, 157203, 157208, 157213, 157218, + 157223, 157228, 157233, 157238, 157243, 157248, 157254, 157260, 157266, + 157272, 157278, 157284, 157290, 157296, 157302, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 157308, 157314, 157319, 157324, 157329, 157334, 157339, + 157344, 157349, 157354, 157359, 157365, 157371, 157377, 157383, 157389, + 157395, 157401, 157407, 157413, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 157419, 157424, 157431, 157438, 157445, 157452, 157457, 157462, 157469, + 157474, 157479, 157486, 157491, 157496, 157501, 157508, 157517, 157522, + 157527, 157532, 157537, 157542, 157547, 157554, 157559, 157564, 157569, + 157574, 157579, 157584, 157589, 157594, 157599, 157604, 157609, 157614, + 157620, 157625, 157630, 157635, 157640, 157645, 157650, 157655, 157660, + 157665, 157674, 157679, 157687, 157692, 157697, 157702, 157707, 157712, + 157717, 157722, 157731, 157736, 157741, 157746, 157751, 157756, 157763, + 157768, 157775, 157780, 157785, 157790, 157795, 157800, 157805, 157810, + 157815, 157820, 157825, 157830, 157835, 157840, 157845, 157850, 157855, + 157860, 157865, 157870, 157879, 157884, 157889, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 157894, 157902, 157910, 157918, 157926, 157934, 157942, 157950, + 157958, 157966, 157974, 157982, 157990, 157998, 158006, 158014, 158022, + 158030, 158038, 158043, 158048, 158053, 158058, 158063, 158067, 0, 0, 0, + 0, 0, 0, 0, 158071, 158075, 158080, 158085, 158090, 158094, 158099, + 158104, 158109, 158113, 158118, 158123, 158127, 158132, 158137, 158141, + 158146, 158151, 158155, 158160, 158165, 158169, 158174, 158179, 158184, + 158189, 158194, 158198, 158203, 158208, 158213, 158217, 158222, 158227, + 158232, 158236, 158241, 158246, 158250, 158255, 158260, 158264, 158269, + 158274, 158278, 158283, 158288, 158292, 158297, 158302, 158307, 158312, + 158317, 158321, 158326, 158331, 158336, 158340, 158345, 158350, 158355, + 158359, 158364, 158369, 158373, 158378, 158383, 158387, 158392, 158397, + 158401, 158406, 158411, 158415, 158420, 158425, 158430, 158435, 158440, + 158444, 158449, 158454, 158459, 158463, 158468, 0, 158473, 158477, + 158482, 158487, 158491, 158496, 158501, 158505, 158510, 158515, 158519, + 158524, 158529, 158533, 158538, 158543, 158548, 158553, 158558, 158563, + 158569, 158575, 158581, 158586, 158592, 158598, 158604, 158609, 158615, + 158621, 158626, 158632, 158638, 158643, 158649, 158655, 158660, 158666, + 158672, 158677, 158683, 158689, 158695, 158701, 158707, 158712, 158718, + 158724, 158730, 158735, 158741, 158747, 158753, 158758, 158764, 158770, + 158775, 158781, 158787, 158792, 158798, 158804, 158809, 158815, 158821, + 158826, 158832, 158838, 158844, 158850, 158856, 0, 158860, 158865, 0, 0, + 158870, 0, 0, 158875, 158880, 0, 0, 158885, 158890, 158894, 158899, 0, + 158904, 158909, 158914, 158918, 158923, 158928, 158933, 158938, 158943, + 158947, 158952, 158957, 0, 158962, 0, 158967, 158972, 158976, 158981, + 158986, 158990, 158995, 0, 159000, 159005, 159010, 159014, 159019, + 159024, 159028, 159033, 159038, 159043, 159048, 159053, 159058, 159064, + 159070, 159076, 159081, 159087, 159093, 159099, 159104, 159110, 159116, + 159121, 159127, 159133, 159138, 159144, 159150, 159155, 159161, 159167, + 159172, 159178, 159184, 159190, 159196, 159202, 159207, 159213, 159219, + 159225, 159230, 159236, 159242, 159248, 159253, 159259, 159265, 159270, + 159276, 159282, 159287, 159293, 159299, 159304, 159310, 159316, 159321, + 159327, 159333, 159339, 159345, 159351, 159356, 0, 159362, 159368, + 159373, 159379, 0, 0, 159385, 159391, 159397, 159402, 159408, 159414, + 159419, 159425, 0, 159431, 159437, 159443, 159448, 159454, 159460, + 159466, 0, 159472, 159477, 159483, 159489, 159495, 159500, 159506, + 159512, 159518, 159523, 159529, 159535, 159540, 159546, 159552, 159557, + 159563, 159569, 159574, 159580, 159586, 159591, 159597, 159603, 159609, + 159615, 159621, 159626, 0, 159632, 159638, 159643, 159649, 0, 159655, + 159660, 159666, 159672, 159677, 0, 159683, 0, 0, 0, 159688, 159694, + 159700, 159705, 159711, 159717, 159723, 0, 159729, 159734, 159740, + 159746, 159752, 159757, 159763, 159769, 159775, 159780, 159786, 159792, + 159797, 159803, 159809, 159814, 159820, 159826, 159831, 159837, 159843, + 159848, 159854, 159860, 159866, 159872, 159878, 159884, 159891, 159898, + 159905, 159911, 159918, 159925, 159932, 159938, 159945, 159952, 159958, + 159965, 159972, 159978, 159985, 159992, 159998, 160005, 160012, 160018, + 160025, 160032, 160039, 160046, 160053, 160059, 160066, 160073, 160080, + 160086, 160093, 160100, 160107, 160113, 160120, 160127, 160133, 160140, + 160147, 160153, 160160, 160167, 160173, 160180, 160187, 160193, 160200, + 160207, 160214, 160221, 160228, 160232, 160237, 160242, 160247, 160251, + 160256, 160261, 160266, 160270, 160275, 160280, 160284, 160289, 160294, + 160298, 160303, 160308, 160312, 160317, 160322, 160326, 160331, 160336, + 160341, 160346, 160351, 160355, 160360, 160365, 160370, 160374, 160379, + 160384, 160389, 160393, 160398, 160403, 160407, 160412, 160417, 160421, + 160426, 160431, 160435, 160440, 160445, 160449, 160454, 160459, 160464, + 160469, 160474, 160479, 160485, 160491, 160497, 160502, 160508, 160514, + 160520, 160525, 160531, 160537, 160542, 160548, 160554, 160559, 160565, + 160571, 160576, 160582, 160588, 160593, 160599, 160605, 160611, 160617, + 160623, 160628, 160634, 160640, 160646, 160651, 160657, 160663, 160669, + 160674, 160680, 160686, 160691, 160697, 160703, 160708, 160714, 160720, + 160725, 160731, 160737, 160742, 160748, 160754, 160760, 160766, 160772, + 160777, 160783, 160789, 160795, 160800, 160806, 160812, 160818, 160823, + 160829, 160835, 160840, 160846, 160852, 160857, 160863, 160869, 160874, + 160880, 160886, 160891, 160897, 160903, 160909, 160915, 160921, 160926, + 160932, 160938, 160944, 160949, 160955, 160961, 160967, 160972, 160978, + 160984, 160989, 160995, 161001, 161006, 161012, 161018, 161023, 161029, + 161035, 161040, 161046, 161052, 161058, 161064, 161070, 161076, 161083, + 161090, 161097, 161103, 161110, 161117, 161124, 161130, 161137, 161144, + 161150, 161157, 161164, 161170, 161177, 161184, 161190, 161197, 161204, + 161210, 161217, 161224, 161231, 161238, 161245, 161251, 161258, 161265, + 161272, 161278, 161285, 161292, 161299, 161305, 161312, 161319, 161325, + 161332, 161339, 161345, 161352, 161359, 161365, 161372, 161379, 161385, + 161392, 161399, 161406, 161413, 161420, 161425, 161431, 161437, 161443, + 161448, 161454, 161460, 161466, 161471, 161477, 161483, 161488, 161494, + 161500, 161505, 161511, 161517, 161522, 161528, 161534, 161539, 161545, + 161551, 161557, 161563, 161569, 161574, 161580, 161586, 161592, 161597, + 161603, 161609, 161615, 161620, 161626, 161632, 161637, 161643, 161649, + 161654, 161660, 161666, 161671, 161677, 161683, 161688, 161694, 161700, + 161706, 161712, 161718, 161724, 0, 0, 161731, 161736, 161741, 161746, + 161751, 161756, 161761, 161766, 161771, 161776, 161781, 161786, 161791, + 161796, 161801, 161806, 161811, 161816, 161822, 161827, 161832, 161837, + 161842, 161847, 161852, 161857, 161861, 161866, 161871, 161876, 161881, + 161886, 161891, 161896, 161901, 161906, 161911, 161916, 161921, 161926, + 161931, 161936, 161941, 161946, 161952, 161957, 161962, 161967, 161972, + 161977, 161982, 161987, 161993, 161998, 162003, 162008, 162013, 162018, + 162023, 162028, 162033, 162038, 162043, 162048, 162053, 162058, 162063, + 162068, 162073, 162078, 162083, 162088, 162093, 162098, 162103, 162108, + 162114, 162119, 162124, 162129, 162134, 162139, 162144, 162149, 162153, + 162158, 162163, 162168, 162173, 162178, 162183, 162188, 162193, 162198, + 162203, 162208, 162213, 162218, 162223, 162228, 162233, 162238, 162244, + 162249, 162254, 162259, 162264, 162269, 162274, 162279, 162285, 162290, + 162295, 162300, 162305, 162310, 162315, 162321, 162327, 162333, 162339, + 162345, 162351, 162357, 162363, 162369, 162375, 162381, 162387, 162393, + 162399, 162405, 162411, 162417, 162424, 162430, 162436, 162442, 162448, + 162454, 162460, 162466, 162471, 162477, 162483, 162489, 162495, 162501, + 162507, 162513, 162519, 162525, 162531, 162537, 162543, 162549, 162555, + 162561, 162567, 162573, 162580, 162586, 162592, 162598, 162604, 162610, + 162616, 162622, 162629, 162635, 162641, 162647, 162653, 162659, 162665, + 162671, 162677, 162683, 162689, 162695, 162701, 162707, 162713, 162719, + 162725, 162731, 162737, 162743, 162749, 162755, 162761, 162767, 162774, + 162780, 162786, 162792, 162798, 162804, 162810, 162816, 162821, 162827, + 162833, 162839, 162845, 162851, 162857, 162863, 162869, 162875, 162881, + 162887, 162893, 162899, 162905, 162911, 162917, 162923, 162930, 162936, + 162942, 162948, 162954, 162960, 162966, 162972, 162979, 162985, 162991, + 162997, 163003, 163009, 163015, 163022, 163029, 163036, 163043, 163050, + 163057, 163064, 163071, 163078, 163085, 163092, 163099, 163106, 163113, + 163120, 163127, 163134, 163142, 163149, 163156, 163163, 163170, 163177, + 163184, 163191, 163197, 163204, 163211, 163218, 163225, 163232, 163239, + 163246, 163253, 163260, 163267, 163274, 163281, 163288, 163295, 163302, + 163309, 163316, 163324, 163331, 163338, 163345, 163352, 163359, 163366, + 163373, 163381, 163388, 163395, 163402, 163409, 163416, 163423, 163428, + 0, 0, 163433, 163438, 163442, 163446, 163450, 163454, 163458, 163462, + 163466, 163470, 163474, 163480, 163485, 163490, 163495, 163500, 163505, + 163510, 163515, 163520, 163525, 163530, 163534, 163538, 163542, 163546, + 163550, 163554, 163558, 163562, 163566, 163572, 163577, 163582, 163587, + 163592, 163597, 163602, 163607, 163612, 163617, 163623, 163628, 163633, + 163638, 163643, 163648, 163653, 163658, 163663, 163668, 163672, 163677, + 163682, 163687, 163692, 163697, 163702, 163708, 163716, 163723, 163728, + 163733, 163740, 163746, 163751, 163757, 163763, 163771, 163777, 163784, + 163792, 163798, 163807, 163816, 163824, 163832, 163838, 163845, 163853, + 163861, 163867, 163874, 163883, 163892, 163899, 163910, 163920, 163930, + 163940, 163950, 163957, 163964, 163971, 163978, 163987, 163996, 164007, + 164018, 164027, 164036, 164047, 164056, 164065, 164076, 164085, 164094, + 164102, 164110, 164121, 164132, 164140, 164149, 164158, 164165, 164176, + 164187, 164196, 164205, 164212, 164221, 164230, 164239, 164250, 164259, + 164269, 164278, 164287, 164298, 164311, 164326, 164337, 164350, 164362, + 164371, 164382, 164393, 164402, 164413, 164427, 164442, 164445, 164454, + 164459, 164465, 164473, 164479, 164485, 164494, 164501, 164511, 164523, + 164530, 164533, 164539, 164546, 164552, 164557, 164560, 164565, 164568, + 164576, 164582, 164591, 164598, 164606, 164612, 164617, 164620, 164623, + 164626, 164632, 164639, 164645, 164650, 164658, 164661, 164666, 164674, + 164680, 164689, 164696, 164706, 164715, 164718, 164724, 164731, 164738, + 164745, 164750, 164758, 164766, 164775, 164781, 164790, 164799, 164808, + 164814, 164823, 164830, 164837, 164844, 164852, 164858, 164866, 164872, + 164879, 164886, 164894, 164905, 164915, 164921, 164928, 164935, 164942, + 164948, 164955, 164962, 164967, 164974, 164982, 164991, 164997, 165009, + 165020, 165026, 165034, 165040, 165047, 165054, 165061, 165067, 165074, + 165083, 165089, 165095, 165102, 165109, 165117, 165127, 165137, 165147, + 165157, 165165, 165173, 165183, 165191, 165196, 165201, 165206, 165212, + 165219, 165226, 165232, 165238, 165243, 165250, 165258, 165268, 165276, + 165284, 165294, 165304, 165312, 165322, 165332, 165344, 165356, 165368, + 165378, 165384, 165390, 165397, 165406, 165415, 165424, 165433, 165443, + 165452, 165461, 165470, 165475, 165481, 165490, 165500, 165509, 165515, + 165521, 165528, 165535, 165542, 165548, 165555, 165562, 165569, 165575, + 165579, 165584, 165591, 165598, 165605, 165610, 165618, 165626, 165635, + 165643, 165650, 165658, 165667, 165677, 165680, 165684, 165689, 165694, + 165699, 165704, 165709, 165714, 165719, 165724, 165729, 165734, 165739, + 165744, 165749, 165754, 165759, 165764, 165769, 165776, 165782, 165789, + 165795, 165800, 165807, 165813, 165820, 165826, 165831, 165838, 165845, + 165852, 165858, 165864, 165873, 165882, 165892, 165899, 165906, 165915, + 165924, 165933, 165942, 165951, 165957, 165965, 165971, 165981, 165986, + 165995, 166004, 166011, 166022, 166029, 166036, 166043, 166050, 166057, + 166064, 166071, 166078, 166085, 166092, 166098, 166104, 166110, 166117, + 166124, 166131, 166138, 166145, 166152, 166159, 166166, 166173, 166180, + 166187, 166194, 166199, 166208, 166217, 166226, 166233, 166240, 166247, + 166254, 166261, 166268, 166275, 166282, 166291, 166300, 166309, 166318, + 166327, 166336, 166345, 166354, 166363, 166372, 166381, 166390, 166399, + 166405, 166413, 166419, 166429, 166434, 166443, 166452, 166461, 166472, + 166477, 166484, 166491, 166498, 166503, 166509, 166515, 166521, 166528, + 166535, 166542, 166549, 166556, 166563, 166570, 166577, 166584, 166591, + 166598, 166605, 166610, 166619, 166628, 166637, 166646, 166655, 166664, + 166673, 166682, 166693, 166704, 166711, 166718, 166725, 166732, 166739, + 166746, 166754, 166764, 166774, 166784, 166795, 166806, 166817, 166826, + 166835, 166844, 166849, 166854, 166859, 166864, 166875, 166886, 166897, + 166908, 166919, 166929, 166940, 166949, 166958, 166967, 166976, 166985, + 166993, 167002, 167013, 167024, 167035, 167046, 167057, 167069, 167082, + 167094, 167107, 167119, 167132, 167144, 167157, 167168, 167179, 167188, + 167196, 167205, 167216, 167227, 167239, 167252, 167266, 167281, 167293, + 167306, 167318, 167331, 167342, 167353, 167362, 167370, 167379, 167386, + 167393, 167400, 167407, 167414, 167421, 167428, 167435, 167442, 167449, + 167454, 167459, 167464, 167471, 167481, 167492, 167502, 167513, 167527, + 167542, 167557, 167571, 167586, 167601, 167612, 167623, 167636, 167649, + 167658, 167667, 167680, 167693, 167700, 167707, 167712, 167717, 167722, + 167727, 167732, 167739, 167748, 167753, 167756, 167761, 167768, 167775, + 167782, 167789, 167796, 167803, 167816, 167830, 167845, 167852, 167859, + 167866, 167875, 167883, 167891, 167900, 167905, 167910, 167915, 167920, + 167925, 167930, 167937, 167944, 167950, 167957, 167963, 167970, 167975, + 167980, 167985, 167990, 167995, 168002, 168009, 168014, 168021, 168028, + 168033, 168038, 168043, 168048, 168053, 168058, 168065, 168072, 168079, + 168082, 168087, 168092, 168097, 168102, 168109, 168116, 168124, 168132, + 168137, 168142, 168149, 168156, 168163, 168168, 168175, 168182, 168187, + 168194, 168201, 168208, 168215, 168222, 168229, 168238, 168247, 168254, + 168263, 168272, 168277, 168284, 168291, 168296, 168303, 168310, 168317, + 168324, 168331, 168336, 168343, 168350, 168359, 168366, 168375, 168386, + 168395, 168404, 168413, 168422, 168425, 168430, 168437, 168446, 168453, + 168462, 168469, 168474, 168479, 168482, 168485, 168488, 168495, 168502, + 168511, 168520, 168529, 168536, 168543, 168548, 168560, 168565, 168570, + 168575, 168580, 168585, 168590, 168595, 168600, 168603, 168608, 168613, + 168618, 168623, 168628, 168635, 168640, 168647, 168650, 168655, 168658, + 168661, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 168664, 168669, + 168674, 168679, 168684, 0, 168689, 168694, 168699, 168704, 168709, + 168714, 168719, 168724, 168729, 168734, 168739, 168744, 168749, 168754, + 168759, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 168764, 168774, 168782, 168789, 168796, + 168805, 168814, 168823, 168830, 168844, 168856, 168866, 168874, 168886, + 168895, 168906, 168915, 168922, 168930, 168941, 168953, 168962, 168972, + 168984, 168995, 169004, 169015, 169027, 169035, 169046, 169055, 0, 0, 0, + 0, 0, 0, 169063, 169073, 169083, 169093, 169103, 169113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 156368, 156374, 156379, 156384, 156389, - 156394, 156399, 156404, 156409, 156414, 156419, 156425, 156431, 156437, - 156443, 156449, 156455, 156461, 156467, 156473, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 156479, 156484, 156491, 156498, 156505, 156512, 156517, - 156522, 156529, 156534, 156539, 156546, 156551, 156556, 156561, 156568, - 156577, 156582, 156587, 156592, 156597, 156602, 156607, 156614, 156619, - 156624, 156629, 156634, 156639, 156644, 156649, 156654, 156659, 156664, - 156669, 156674, 156680, 156685, 156690, 156695, 156700, 156705, 156710, - 156715, 156720, 156725, 156734, 156739, 156747, 156752, 156757, 156762, - 156767, 156772, 156777, 156782, 156791, 156796, 156801, 156806, 156811, - 156816, 156823, 156828, 156835, 156840, 156845, 156850, 156855, 156860, - 156865, 156870, 156875, 156880, 156885, 156890, 156895, 156900, 156905, - 156910, 156915, 156920, 156925, 156930, 156939, 156944, 156949, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 156954, 156962, 156970, 156978, 156986, 156994, 157002, - 157010, 157018, 157026, 157034, 157042, 157050, 157058, 157066, 157074, - 157082, 157090, 157098, 157103, 157108, 157113, 157118, 157123, 157127, - 0, 0, 0, 0, 0, 0, 0, 157131, 157135, 157140, 157145, 157150, 157154, - 157159, 157164, 157169, 157173, 157178, 157183, 157187, 157192, 157197, - 157201, 157206, 157211, 157215, 157220, 157225, 157229, 157234, 157239, - 157244, 157249, 157254, 157258, 157263, 157268, 157273, 157277, 157282, - 157287, 157292, 157296, 157301, 157306, 157310, 157315, 157320, 157324, - 157329, 157334, 157338, 157343, 157348, 157352, 157357, 157362, 157367, - 157372, 157377, 157381, 157386, 157391, 157396, 157400, 157405, 157410, - 157415, 157419, 157424, 157429, 157433, 157438, 157443, 157447, 157452, - 157457, 157461, 157466, 157471, 157475, 157480, 157485, 157490, 157495, - 157500, 157504, 157509, 157514, 157519, 157523, 157528, 0, 157533, - 157537, 157542, 157547, 157551, 157556, 157561, 157565, 157570, 157575, - 157579, 157584, 157589, 157593, 157598, 157603, 157608, 157613, 157618, - 157623, 157629, 157635, 157641, 157646, 157652, 157658, 157664, 157669, - 157675, 157681, 157686, 157692, 157698, 157703, 157709, 157715, 157720, - 157726, 157732, 157737, 157743, 157749, 157755, 157761, 157767, 157772, - 157778, 157784, 157790, 157795, 157801, 157807, 157813, 157818, 157824, - 157830, 157835, 157841, 157847, 157852, 157858, 157864, 157869, 157875, - 157881, 157886, 157892, 157898, 157904, 157910, 157916, 0, 157920, - 157925, 0, 0, 157930, 0, 0, 157935, 157940, 0, 0, 157945, 157950, 157954, - 157959, 0, 157964, 157969, 157974, 157978, 157983, 157988, 157993, - 157998, 158003, 158007, 158012, 158017, 0, 158022, 0, 158027, 158032, - 158036, 158041, 158046, 158050, 158055, 0, 158060, 158065, 158070, - 158074, 158079, 158084, 158088, 158093, 158098, 158103, 158108, 158113, - 158118, 158124, 158130, 158136, 158141, 158147, 158153, 158159, 158164, - 158170, 158176, 158181, 158187, 158193, 158198, 158204, 158210, 158215, - 158221, 158227, 158232, 158238, 158244, 158250, 158256, 158262, 158267, - 158273, 158279, 158285, 158290, 158296, 158302, 158308, 158313, 158319, - 158325, 158330, 158336, 158342, 158347, 158353, 158359, 158364, 158370, - 158376, 158381, 158387, 158393, 158399, 158405, 158411, 158416, 0, - 158422, 158428, 158433, 158439, 0, 0, 158445, 158451, 158457, 158462, - 158468, 158474, 158479, 158485, 0, 158491, 158497, 158503, 158508, - 158514, 158520, 158526, 0, 158532, 158537, 158543, 158549, 158555, - 158560, 158566, 158572, 158578, 158583, 158589, 158595, 158600, 158606, - 158612, 158617, 158623, 158629, 158634, 158640, 158646, 158651, 158657, - 158663, 158669, 158675, 158681, 158686, 0, 158692, 158698, 158703, - 158709, 0, 158715, 158720, 158726, 158732, 158737, 0, 158743, 0, 0, 0, - 158748, 158754, 158760, 158765, 158771, 158777, 158783, 0, 158789, - 158794, 158800, 158806, 158812, 158817, 158823, 158829, 158835, 158840, - 158846, 158852, 158857, 158863, 158869, 158874, 158880, 158886, 158891, - 158897, 158903, 158908, 158914, 158920, 158926, 158932, 158938, 158944, - 158951, 158958, 158965, 158971, 158978, 158985, 158992, 158998, 159005, - 159012, 159018, 159025, 159032, 159038, 159045, 159052, 159058, 159065, - 159072, 159078, 159085, 159092, 159099, 159106, 159113, 159119, 159126, - 159133, 159140, 159146, 159153, 159160, 159167, 159173, 159180, 159187, - 159193, 159200, 159207, 159213, 159220, 159227, 159233, 159240, 159247, - 159253, 159260, 159267, 159274, 159281, 159288, 159292, 159297, 159302, - 159307, 159311, 159316, 159321, 159326, 159330, 159335, 159340, 159344, - 159349, 159354, 159358, 159363, 159368, 159372, 159377, 159382, 159386, - 159391, 159396, 159401, 159406, 159411, 159415, 159420, 159425, 159430, - 159434, 159439, 159444, 159449, 159453, 159458, 159463, 159467, 159472, - 159477, 159481, 159486, 159491, 159495, 159500, 159505, 159509, 159514, - 159519, 159524, 159529, 159534, 159539, 159545, 159551, 159557, 159562, - 159568, 159574, 159580, 159585, 159591, 159597, 159602, 159608, 159614, - 159619, 159625, 159631, 159636, 159642, 159648, 159653, 159659, 159665, - 159671, 159677, 159683, 159688, 159694, 159700, 159706, 159711, 159717, - 159723, 159729, 159734, 159740, 159746, 159751, 159757, 159763, 159768, - 159774, 159780, 159785, 159791, 159797, 159802, 159808, 159814, 159820, - 159826, 159832, 159837, 159843, 159849, 159855, 159860, 159866, 159872, - 159878, 159883, 159889, 159895, 159900, 159906, 159912, 159917, 159923, - 159929, 159934, 159940, 159946, 159951, 159957, 159963, 159969, 159975, - 159981, 159986, 159992, 159998, 160004, 160009, 160015, 160021, 160027, - 160032, 160038, 160044, 160049, 160055, 160061, 160066, 160072, 160078, - 160083, 160089, 160095, 160100, 160106, 160112, 160118, 160124, 160130, - 160136, 160143, 160150, 160157, 160163, 160170, 160177, 160184, 160190, - 160197, 160204, 160210, 160217, 160224, 160230, 160237, 160244, 160250, - 160257, 160264, 160270, 160277, 160284, 160291, 160298, 160305, 160311, - 160318, 160325, 160332, 160338, 160345, 160352, 160359, 160365, 160372, - 160379, 160385, 160392, 160399, 160405, 160412, 160419, 160425, 160432, - 160439, 160445, 160452, 160459, 160466, 160473, 160480, 160485, 160491, - 160497, 160503, 160508, 160514, 160520, 160526, 160531, 160537, 160543, - 160548, 160554, 160560, 160565, 160571, 160577, 160582, 160588, 160594, - 160599, 160605, 160611, 160617, 160623, 160629, 160634, 160640, 160646, - 160652, 160657, 160663, 160669, 160675, 160680, 160686, 160692, 160697, - 160703, 160709, 160714, 160720, 160726, 160731, 160737, 160743, 160748, - 160754, 160760, 160766, 160772, 160778, 160784, 0, 0, 160791, 160796, - 160801, 160806, 160811, 160816, 160821, 160826, 160831, 160836, 160841, - 160846, 160851, 160856, 160861, 160866, 160871, 160876, 160882, 160887, - 160892, 160897, 160902, 160907, 160912, 160917, 160921, 160926, 160931, - 160936, 160941, 160946, 160951, 160956, 160961, 160966, 160971, 160976, - 160981, 160986, 160991, 160996, 161001, 161006, 161012, 161017, 161022, - 161027, 161032, 161037, 161042, 161047, 161053, 161058, 161063, 161068, - 161073, 161078, 161083, 161088, 161093, 161098, 161103, 161108, 161113, - 161118, 161123, 161128, 161133, 161138, 161143, 161148, 161153, 161158, - 161163, 161168, 161174, 161179, 161184, 161189, 161194, 161199, 161204, - 161209, 161213, 161218, 161223, 161228, 161233, 161238, 161243, 161248, - 161253, 161258, 161263, 161268, 161273, 161278, 161283, 161288, 161293, - 161298, 161304, 161309, 161314, 161319, 161324, 161329, 161334, 161339, - 161345, 161350, 161355, 161360, 161365, 161370, 161375, 161381, 161387, - 161393, 161399, 161405, 161411, 161417, 161423, 161429, 161435, 161441, - 161447, 161453, 161459, 161465, 161471, 161477, 161484, 161490, 161496, - 161502, 161508, 161514, 161520, 161526, 161531, 161537, 161543, 161549, - 161555, 161561, 161567, 161573, 161579, 161585, 161591, 161597, 161603, - 161609, 161615, 161621, 161627, 161633, 161640, 161646, 161652, 161658, - 161664, 161670, 161676, 161682, 161689, 161695, 161701, 161707, 161713, - 161719, 161725, 161731, 161737, 161743, 161749, 161755, 161761, 161767, - 161773, 161779, 161785, 161791, 161797, 161803, 161809, 161815, 161821, - 161827, 161834, 161840, 161846, 161852, 161858, 161864, 161870, 161876, - 161881, 161887, 161893, 161899, 161905, 161911, 161917, 161923, 161929, - 161935, 161941, 161947, 161953, 161959, 161965, 161971, 161977, 161983, - 161990, 161996, 162002, 162008, 162014, 162020, 162026, 162032, 162039, - 162045, 162051, 162057, 162063, 162069, 162075, 162082, 162089, 162096, - 162103, 162110, 162117, 162124, 162131, 162138, 162145, 162152, 162159, - 162166, 162173, 162180, 162187, 162194, 162202, 162209, 162216, 162223, - 162230, 162237, 162244, 162251, 162257, 162264, 162271, 162278, 162285, - 162292, 162299, 162306, 162313, 162320, 162327, 162334, 162341, 162348, - 162355, 162362, 162369, 162376, 162384, 162391, 162398, 162405, 162412, - 162419, 162426, 162433, 162441, 162448, 162455, 162462, 162469, 162476, - 162483, 162488, 0, 0, 162493, 162498, 162502, 162506, 162510, 162514, - 162518, 162522, 162526, 162530, 162534, 162540, 162545, 162550, 162555, - 162560, 162565, 162570, 162575, 162580, 162585, 162590, 162594, 162598, - 162602, 162606, 162610, 162614, 162618, 162622, 162626, 162632, 162637, - 162642, 162647, 162652, 162657, 162662, 162667, 162672, 162677, 162683, - 162688, 162693, 162698, 162703, 162708, 162713, 162718, 162723, 162728, - 162732, 162737, 162742, 162747, 162752, 162757, 162762, 162768, 162776, - 162783, 162788, 162793, 162800, 162806, 162811, 162817, 162823, 162831, - 162837, 162844, 162852, 162858, 162867, 162876, 162884, 162892, 162898, - 162905, 162913, 162921, 162927, 162934, 162943, 162952, 162959, 162970, - 162980, 162990, 163000, 163010, 163017, 163024, 163031, 163038, 163047, - 163056, 163067, 163078, 163087, 163096, 163107, 163116, 163125, 163136, - 163145, 163154, 163162, 163170, 163181, 163192, 163200, 163209, 163218, - 163225, 163236, 163247, 163256, 163265, 163272, 163281, 163290, 163299, - 163310, 163319, 163329, 163338, 163347, 163358, 163371, 163386, 163397, - 163410, 163422, 163431, 163442, 163453, 163462, 163473, 163487, 163502, - 163505, 163514, 163519, 163525, 163533, 163539, 163545, 163554, 163561, - 163571, 163583, 163590, 163593, 163599, 163606, 163612, 163617, 163620, - 163625, 163628, 163636, 163642, 163651, 163658, 163666, 163672, 163677, - 163680, 163683, 163686, 163692, 163699, 163705, 163710, 163718, 163721, - 163726, 163734, 163740, 163749, 163756, 163766, 163775, 163778, 163784, - 163791, 163798, 163805, 163810, 163818, 163826, 163835, 163841, 163850, - 163859, 163868, 163874, 163883, 163890, 163897, 163904, 163912, 163918, - 163926, 163932, 163939, 163946, 163954, 163965, 163975, 163981, 163988, - 163995, 164002, 164008, 164015, 164022, 164027, 164034, 164042, 164051, - 164057, 164069, 164080, 164086, 164094, 164100, 164107, 164114, 164121, - 164127, 164134, 164143, 164149, 164155, 164162, 164169, 164177, 164187, - 164197, 164207, 164217, 164225, 164233, 164243, 164251, 164256, 164261, - 164266, 164272, 164279, 164286, 164292, 164298, 164303, 164310, 164318, - 164328, 164336, 164344, 164354, 164364, 164372, 164382, 164392, 164404, - 164416, 164428, 164438, 164444, 164450, 164457, 164466, 164475, 164484, - 164493, 164503, 164512, 164521, 164530, 164535, 164541, 164550, 164560, - 164569, 164575, 164581, 164588, 164595, 164602, 164608, 164615, 164622, - 164629, 164635, 164639, 164644, 164651, 164658, 164665, 164670, 164678, - 164686, 164695, 164703, 164710, 164718, 164727, 164737, 164740, 164744, - 164749, 164754, 164759, 164764, 164769, 164774, 164779, 164784, 164789, - 164794, 164799, 164804, 164809, 164814, 164819, 164824, 164829, 164836, - 164842, 164849, 164855, 164860, 164867, 164873, 164880, 164886, 164891, - 164898, 164905, 164912, 164918, 164924, 164933, 164942, 164952, 164959, - 164966, 164975, 164984, 164993, 165002, 165011, 165017, 165025, 165031, - 165041, 165046, 165055, 165064, 165071, 165082, 165089, 165096, 165103, - 165110, 165117, 165124, 165131, 165138, 165145, 165152, 165158, 165164, - 165170, 165177, 165184, 165191, 165198, 165205, 165212, 165219, 165226, - 165233, 165240, 165247, 165254, 165259, 165268, 165277, 165286, 165293, - 165300, 165307, 165314, 165321, 165328, 165335, 165342, 165351, 165360, - 165369, 165378, 165387, 165396, 165405, 165414, 165423, 165432, 165441, - 165450, 165459, 165465, 165473, 165479, 165489, 165494, 165503, 165512, - 165521, 165532, 165537, 165544, 165551, 165558, 165563, 165569, 165575, - 165581, 165588, 165595, 165602, 165609, 165616, 165623, 165630, 165637, - 165644, 165651, 165658, 165665, 165670, 165679, 165688, 165697, 165706, - 165715, 165724, 165733, 165742, 165753, 165764, 165771, 165778, 165785, - 165792, 165799, 165806, 165814, 165824, 165834, 165844, 165855, 165866, - 165877, 165886, 165895, 165904, 165909, 165914, 165919, 165924, 165935, - 165946, 165957, 165968, 165979, 165989, 166000, 166009, 166018, 166027, - 166036, 166045, 166053, 166062, 166073, 166084, 166095, 166106, 166117, - 166129, 166142, 166154, 166167, 166179, 166192, 166204, 166217, 166228, - 166239, 166248, 166256, 166265, 166276, 166287, 166299, 166312, 166326, - 166341, 166353, 166366, 166378, 166391, 166402, 166413, 166422, 166430, - 166439, 166446, 166453, 166460, 166467, 166474, 166481, 166488, 166495, - 166502, 166509, 166514, 166519, 166524, 166531, 166541, 166552, 166562, - 166573, 166587, 166602, 166617, 166631, 166646, 166661, 166672, 166683, - 166696, 166709, 166718, 166727, 166740, 166753, 166760, 166767, 166772, - 166777, 166782, 166787, 166792, 166799, 166808, 166813, 166816, 166821, - 166828, 166835, 166842, 166849, 166856, 166863, 166876, 166890, 166905, - 166912, 166919, 166926, 166935, 166943, 166951, 166960, 166965, 166970, - 166975, 166980, 166985, 166990, 166997, 167004, 167010, 167017, 167023, - 167030, 167035, 167040, 167045, 167050, 167055, 167062, 167069, 167074, - 167081, 167088, 167093, 167098, 167103, 167108, 167113, 167118, 167125, - 167132, 167139, 167142, 167147, 167152, 167157, 167162, 167169, 167176, - 167184, 167192, 167197, 167202, 167209, 167216, 167223, 167228, 167235, - 167242, 167247, 167254, 167261, 167268, 167275, 167282, 167289, 167298, - 167307, 167314, 167323, 167332, 167337, 167344, 167351, 167356, 167363, - 167370, 167377, 167384, 167391, 167396, 167403, 167410, 167419, 167426, - 167435, 167446, 167455, 167464, 167473, 167482, 167485, 167490, 167497, - 167506, 167513, 167522, 167529, 167534, 167539, 167542, 167545, 167548, - 167555, 167562, 167571, 167580, 167589, 167596, 167603, 167608, 167620, - 167625, 167630, 167635, 167640, 167645, 167650, 167655, 167660, 167663, - 167668, 167673, 167678, 167683, 167688, 167695, 167700, 167707, 167710, - 167715, 167718, 167721, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 167724, 167729, 167734, 167739, 167744, 0, 167749, 167754, 167759, - 167764, 167769, 167774, 167779, 167784, 167789, 167794, 167799, 167804, - 167809, 167814, 167819, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 169123, 169128, 169133, 169138, 169143, 169148, + 169153, 0, 169158, 169163, 169168, 169174, 169178, 169183, 169188, + 169193, 169198, 169203, 169208, 169213, 169218, 169223, 169228, 169233, + 169238, 0, 0, 169243, 169248, 169253, 169258, 169263, 169268, 169273, 0, + 169278, 169283, 0, 169289, 169294, 169302, 169309, 169318, 0, 0, 0, 0, 0, + 169323, 169328, 169334, 169340, 169346, 169352, 169358, 169364, 169370, + 169375, 169380, 169386, 169392, 169397, 169403, 169409, 169415, 169421, + 169426, 169432, 169437, 169443, 169449, 169455, 169461, 169466, 169472, + 169478, 169484, 169491, 169497, 169504, 169511, 169517, 169523, 169530, + 169537, 169544, 169551, 169558, 169565, 169572, 169578, 169584, 169591, + 169597, 169604, 169611, 169617, 169624, 169630, 169637, 169644, 169651, + 169659, 169666, 169676, 169684, 169691, 169698, 169707, 169718, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167824, 167834, 167842, - 167849, 167856, 167865, 167874, 167883, 167890, 167904, 167916, 167926, - 167934, 167946, 167955, 167966, 167975, 167982, 167990, 168001, 168013, - 168022, 168032, 168044, 168055, 168064, 168075, 168087, 168095, 168106, - 168115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 169727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 168123, 168128, 168133, 168138, 168143, 168148, 168153, 0, - 168158, 168163, 168168, 168174, 168178, 168183, 168188, 168193, 168198, - 168203, 168208, 168213, 168218, 168223, 168228, 168233, 168238, 0, 0, - 168243, 168248, 168253, 168258, 168263, 168268, 168273, 0, 168278, - 168283, 0, 168289, 168294, 168302, 168309, 168318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 169734, 169741, 169749, 169757, 169765, 169772, 169779, 169787, 169795, + 169803, 169810, 169817, 169825, 169833, 169841, 169848, 169856, 169864, + 169872, 169880, 169888, 169896, 169904, 169911, 169919, 169926, 169934, + 169941, 169949, 169957, 169965, 169973, 169981, 169989, 169997, 170005, + 170013, 170020, 170028, 170035, 170042, 170049, 170057, 170064, 170072, + 0, 0, 0, 170080, 170087, 170094, 170101, 170108, 170115, 170122, 170129, + 170138, 170147, 170156, 170165, 170174, 170184, 0, 0, 170192, 170200, + 170207, 170214, 170221, 170228, 170235, 170242, 170249, 170256, 0, 0, 0, + 0, 170263, 170272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170280, + 170284, 170289, 170294, 170299, 170303, 170308, 170312, 170316, 170321, + 170325, 170330, 170334, 170339, 170344, 170348, 170352, 170356, 170360, + 170366, 170371, 170378, 170382, 170386, 170392, 170397, 170404, 170408, + 170413, 170420, 170424, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 170431, 170436, 170440, 170445, 170450, 170455, 170460, 170464, + 170469, 170473, 170477, 170481, 170486, 170491, 170496, 170500, 170505, + 170510, 170515, 170520, 170525, 170529, 170533, 170538, 170542, 170546, + 170551, 170555, 170559, 170563, 170568, 170572, 170577, 170582, 170587, + 170592, 170597, 170602, 170607, 170612, 170617, 170622, 170627, 170632, + 170637, 170642, 170647, 170652, 170657, 170662, 170666, 170670, 170674, + 170678, 170682, 170686, 170690, 170694, 0, 0, 0, 0, 0, 170698, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 168323, 168330, 168338, 168346, 168354, 168361, 168368, - 168376, 168384, 168392, 168399, 168406, 168414, 168422, 168430, 168437, - 168445, 168453, 168461, 168469, 168477, 168485, 168493, 168500, 168508, - 168515, 168523, 168530, 168538, 168546, 168554, 168562, 168570, 168578, - 168586, 168594, 168602, 168609, 168617, 168624, 168631, 168638, 168646, - 168653, 168661, 0, 0, 0, 168669, 168676, 168683, 168690, 168697, 168704, - 168711, 168718, 168727, 168736, 168745, 168754, 168763, 168773, 0, 0, - 168781, 168789, 168796, 168803, 168810, 168817, 168824, 168831, 168838, - 168845, 0, 0, 0, 0, 168852, 168861, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 168869, 168873, 168878, 168883, 168888, 168892, 168897, - 168901, 168905, 168910, 168914, 168919, 168923, 168928, 168933, 168937, - 168941, 168945, 168949, 168955, 168960, 168967, 168971, 168975, 168981, - 168986, 168993, 168997, 169002, 169009, 169013, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 169020, 169025, 169029, 169034, 169039, - 169044, 169049, 169053, 169058, 169062, 169066, 169070, 169075, 169080, - 169085, 169089, 169094, 169099, 169104, 169109, 169114, 169118, 169122, - 169127, 169131, 169135, 169140, 169144, 169148, 169152, 169157, 169161, - 169166, 169171, 169176, 169181, 169186, 169191, 169196, 169201, 169206, - 169211, 169216, 169221, 169226, 169231, 169236, 169241, 169246, 169251, - 169255, 169259, 169263, 169267, 169271, 169275, 169279, 169283, 0, 0, 0, - 0, 0, 169287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 170703, 170709, 170716, 170723, 170730, 170737, 170743, + 170750, 170757, 170764, 170771, 170777, 170784, 170791, 170798, 170805, + 170811, 170818, 170825, 170832, 170839, 170845, 170852, 170859, 170866, + 170873, 170880, 170887, 170894, 170901, 170908, 170915, 170922, 170929, + 170935, 170941, 170947, 170953, 170959, 170965, 170971, 170977, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 169292, 169296, 169300, 169304, 169308, 169312, 169316, 0, - 169320, 169326, 169330, 169334, 0, 169338, 169344, 0, 169350, 169356, - 169362, 169368, 169374, 169380, 169386, 169392, 169398, 169404, 169410, - 169416, 169422, 169428, 169434, 0, 169440, 169447, 169453, 169460, - 169467, 169474, 169481, 169488, 169495, 169502, 169509, 169516, 169523, - 169530, 169537, 169544, 169551, 169558, 169565, 169572, 169579, 169586, - 169593, 169600, 169607, 169614, 169621, 169628, 169635, 169642, 169649, - 169656, 169663, 169670, 169677, 169683, 169689, 169695, 169702, 169708, - 169715, 169721, 169728, 169735, 169742, 169749, 169756, 169763, 169769, - 169776, 169783, 169790, 169797, 169804, 169811, 169818, 169824, 169831, - 169838, 169845, 169852, 169859, 169867, 169874, 169881, 169888, 169895, - 169902, 169909, 169916, 169923, 169930, 169937, 169944, 169951, 169957, - 169964, 169971, 169978, 169985, 169992, 169999, 170006, 170014, 170021, - 170027, 170034, 170041, 170048, 170055, 170062, 170069, 170076, 170083, - 170090, 170097, 170104, 170111, 170118, 170125, 170132, 170139, 170146, - 170153, 170160, 170167, 170173, 170180, 170187, 170194, 170201, 170208, - 170215, 170222, 170229, 170236, 170243, 170250, 170257, 170264, 170271, - 170278, 170285, 170292, 170299, 170306, 170313, 170320, 170327, 170335, - 170343, 170351, 170358, 170365, 170372, 170379, 170386, 170393, 170400, - 170407, 170414, 170421, 170427, 170434, 170441, 170448, 170455, 170462, - 170469, 170476, 170483, 170490, 170497, 170504, 170511, 170518, 170525, - 170533, 170541, 170549, 170556, 170563, 170570, 170577, 170584, 170591, - 170598, 170605, 170612, 170619, 170626, 170633, 170640, 170647, 170653, - 170660, 170667, 170674, 170681, 170688, 170695, 170702, 170709, 170716, - 170723, 170730, 170737, 170744, 170751, 170758, 170765, 170772, 170779, - 170786, 170793, 170800, 170807, 0, 0, 170814, 170818, 170822, 170826, - 170830, 170834, 170838, 170842, 170846, 170850, 170856, 170862, 170868, - 170874, 170882, 170890, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 170896, 170902, 170908, 170914, 170920, 170926, 170932, 170938, - 170944, 170949, 170954, 170960, 170965, 170970, 170976, 170982, 170988, - 170994, 171000, 171005, 171010, 171016, 171022, 171027, 171033, 171039, - 171045, 171051, 171057, 171063, 171069, 171075, 171081, 171087, 171093, - 171099, 171105, 171111, 171117, 171123, 171129, 171135, 171141, 171146, - 171151, 171157, 171162, 171167, 171173, 171179, 171185, 171191, 171197, - 171202, 171207, 171213, 171219, 171224, 171230, 171236, 171242, 171248, - 171254, 171260, 171266, 171272, 171278, 171284, 171290, 171296, 171301, - 171306, 171310, 171315, 171322, 171326, 0, 0, 0, 0, 171331, 171336, - 171340, 171344, 171348, 171352, 171356, 171360, 171364, 171368, 0, 0, 0, - 0, 171372, 171378, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 170983, 170987, 170991, 170995, 170999, 171003, 171007, 0, + 171011, 171017, 171021, 171025, 0, 171029, 171035, 0, 171041, 171047, + 171053, 171059, 171065, 171071, 171077, 171083, 171089, 171095, 171101, + 171107, 171113, 171119, 171125, 0, 171131, 171138, 171144, 171151, + 171158, 171165, 171172, 171179, 171186, 171193, 171200, 171207, 171214, + 171221, 171228, 171235, 171242, 171249, 171256, 171263, 171270, 171277, + 171284, 171291, 171298, 171305, 171312, 171319, 171326, 171333, 171340, + 171347, 171354, 171361, 171368, 171374, 171380, 171386, 171393, 171399, + 171406, 171412, 171419, 171426, 171433, 171440, 171447, 171454, 171460, + 171467, 171474, 171481, 171488, 171495, 171502, 171509, 171515, 171522, + 171529, 171536, 171543, 171550, 171558, 171565, 171572, 171579, 171586, + 171593, 171600, 171607, 171614, 171621, 171628, 171635, 171642, 171648, + 171655, 171662, 171669, 171676, 171683, 171690, 171697, 171705, 171712, + 171718, 171725, 171732, 171739, 171746, 171753, 171760, 171767, 171774, + 171781, 171788, 171795, 171802, 171809, 171816, 171823, 171830, 171837, + 171844, 171851, 171858, 171864, 171871, 171878, 171885, 171892, 171899, + 171906, 171913, 171920, 171927, 171934, 171941, 171948, 171955, 171962, + 171969, 171976, 171983, 171990, 171997, 172004, 172011, 172018, 172026, + 172034, 172042, 172049, 172056, 172063, 172070, 172077, 172084, 172091, + 172098, 172105, 172112, 172118, 172125, 172132, 172139, 172146, 172153, + 172160, 172167, 172174, 172181, 172188, 172195, 172202, 172209, 172216, + 172224, 172232, 172240, 172247, 172254, 172261, 172268, 172275, 172282, + 172289, 172296, 172303, 172310, 172317, 172324, 172331, 172338, 172344, + 172351, 172358, 172365, 172372, 172379, 172386, 172393, 172400, 172407, + 172414, 172421, 172428, 172435, 172442, 172449, 172456, 172463, 172470, + 172477, 172484, 172491, 172498, 0, 0, 172505, 172509, 172513, 172517, + 172521, 172525, 172529, 172533, 172537, 172541, 172547, 172553, 172559, + 172565, 172573, 172581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 172587, 172593, 172599, 172605, 172611, 172617, 172623, 172629, + 172635, 172640, 172645, 172651, 172656, 172661, 172667, 172673, 172679, + 172685, 172691, 172696, 172701, 172707, 172713, 172718, 172724, 172730, + 172736, 172742, 172748, 172754, 172760, 172766, 172772, 172778, 172784, + 172790, 172796, 172802, 172808, 172814, 172820, 172826, 172832, 172837, + 172842, 172848, 172853, 172858, 172864, 172870, 172876, 172882, 172888, + 172893, 172898, 172904, 172910, 172915, 172921, 172927, 172933, 172939, + 172945, 172951, 172957, 172963, 172969, 172975, 172981, 172987, 172992, + 172997, 173001, 173006, 173013, 173017, 0, 0, 0, 0, 173022, 173027, + 173031, 173035, 173039, 173043, 173047, 173051, 173055, 173059, 0, 0, 0, + 0, 173063, 173069, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 171384, 171389, 171394, 171399, 171404, 171409, - 171414, 171419, 171424, 171429, 171435, 171441, 171447, 171453, 171459, - 171465, 171471, 171477, 171483, 171490, 171497, 171504, 171512, 171520, - 171528, 171536, 171544, 171552, 171558, 171564, 171570, 171577, 171584, - 171591, 171598, 171605, 171612, 171619, 171626, 171633, 171640, 171647, - 171654, 171661, 171668, 171675, 171681, 171687, 171693, 171699, 171705, - 171712, 171719, 171726, 171733, 171740, 171747, 171754, 171761, 171768, - 171773, 171781, 171789, 171797, 171803, 171810, 171817, 171826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 173075, 173080, 173085, 173090, 173095, 173100, + 173105, 173110, 173115, 173120, 173126, 173132, 173138, 173144, 173150, + 173156, 173162, 173168, 173174, 173181, 173188, 173195, 173203, 173211, + 173219, 173227, 173235, 173243, 173249, 173255, 173261, 173268, 173275, + 173282, 173289, 173296, 173303, 173310, 173317, 173324, 173331, 173338, + 173345, 173352, 173359, 173366, 173372, 173378, 173384, 173390, 173396, + 173403, 173410, 173417, 173424, 173431, 173438, 173445, 173452, 173459, + 173464, 173472, 173480, 173488, 173494, 173501, 173508, 173517, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 171834, 171839, 171844, 171849, 171854, 171859, 171864, 171869, - 171874, 171879, 171885, 171891, 171897, 171903, 171909, 171915, 171921, - 171927, 171933, 171940, 171947, 171954, 171962, 171970, 171978, 171986, - 171994, 172002, 172008, 172014, 172020, 172027, 172034, 172041, 172048, - 172055, 172062, 172069, 172076, 172083, 172090, 172097, 172104, 172111, - 172118, 172125, 172130, 172137, 172144, 172151, 172158, 172165, 172172, - 172179, 172186, 172194, 172204, 172214, 172222, 172231, 172239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 173525, 173530, 173535, 173540, 173545, 173550, 173555, 173560, + 173565, 173570, 173576, 173582, 173588, 173594, 173600, 173606, 173612, + 173618, 173624, 173631, 173638, 173645, 173653, 173661, 173669, 173677, + 173685, 173693, 173699, 173705, 173711, 173718, 173725, 173732, 173739, + 173746, 173753, 173760, 173767, 173774, 173781, 173788, 173795, 173802, + 173809, 173816, 173821, 173828, 173835, 173842, 173849, 173856, 173863, + 173870, 173877, 173885, 173895, 173905, 173913, 173922, 173930, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172247, 172251, 172255, - 172259, 0, 172263, 172267, 172271, 172275, 172279, 172283, 172287, - 172291, 172295, 172299, 172303, 172307, 172311, 172315, 172319, 172323, - 172327, 172331, 172335, 172339, 172343, 172347, 172351, 172355, 172361, - 172367, 172373, 0, 172379, 172384, 0, 172389, 0, 0, 172394, 0, 172399, - 172404, 172409, 172414, 172419, 172424, 172429, 172434, 172439, 172444, - 0, 172449, 172454, 172459, 172464, 0, 172469, 0, 172474, 0, 0, 0, 0, 0, - 0, 172479, 0, 0, 0, 0, 172485, 0, 172491, 0, 172497, 0, 172503, 172509, - 172515, 0, 172521, 172527, 0, 172533, 0, 0, 172539, 0, 172545, 0, 172551, - 0, 172557, 0, 172565, 0, 172573, 172579, 0, 172585, 0, 0, 172591, 172597, - 172603, 172609, 0, 172615, 172621, 172627, 172633, 172639, 172645, - 172651, 0, 172657, 172663, 172669, 172675, 0, 172681, 172687, 172693, - 172699, 0, 172707, 0, 172715, 172721, 172727, 172733, 172739, 172745, - 172751, 172757, 172763, 172769, 0, 172775, 172781, 172787, 172793, - 172799, 172805, 172811, 172817, 172823, 172829, 172835, 172841, 172847, - 172853, 172859, 172865, 172871, 0, 0, 0, 0, 0, 172877, 172883, 172889, 0, - 172895, 172901, 172907, 172913, 172919, 0, 172925, 172931, 172937, - 172943, 172949, 172955, 172961, 172967, 172973, 172979, 172985, 172991, - 172997, 173003, 173009, 173015, 173021, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173027, 173037, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173045, 173052, 173059, 173066, - 173072, 173079, 173086, 173092, 173099, 173106, 173113, 173121, 173129, - 173137, 173145, 173153, 173161, 173168, 173175, 173182, 173190, 173198, - 173206, 173214, 173222, 173230, 173237, 173244, 173251, 173259, 173267, - 173275, 173283, 173291, 173299, 173304, 173309, 173314, 173319, 173324, - 173329, 173334, 173339, 173344, 0, 0, 0, 0, 173349, 173356, 173361, - 173366, 173371, 173376, 173381, 173386, 173391, 173396, 173401, 173406, - 173411, 173416, 173421, 173426, 173431, 173436, 173441, 173446, 173451, - 173456, 173461, 173466, 173471, 173476, 173481, 173486, 173491, 173496, - 173501, 173506, 173511, 173516, 173521, 173526, 173531, 173536, 173541, - 173546, 173551, 173556, 173561, 173566, 173571, 173576, 173581, 173586, - 173591, 173596, 173601, 173607, 173612, 173617, 173622, 173627, 173632, - 173637, 173642, 173647, 173652, 173657, 173662, 173667, 173672, 173677, - 173682, 173687, 173692, 173697, 173702, 173707, 173712, 173717, 173722, - 173727, 173732, 173737, 173742, 173747, 173752, 173757, 173762, 173767, - 173772, 173777, 173782, 173787, 173792, 173797, 173802, 173807, 173812, - 173817, 173822, 173827, 173832, 173837, 173842, 173847, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 173852, 173858, 173867, 173875, 173883, 173892, 173901, - 173910, 173919, 173928, 173937, 173946, 173955, 173964, 173973, 0, 0, - 173982, 173991, 173999, 174007, 174016, 174025, 174034, 174043, 174052, - 174061, 174070, 174079, 174088, 174097, 174106, 0, 174114, 174123, - 174131, 174139, 174148, 174157, 174166, 174175, 174184, 174193, 174202, - 174211, 174220, 174229, 174238, 0, 174245, 174254, 174262, 174270, - 174279, 174288, 174297, 174306, 174315, 174324, 174333, 174342, 174351, - 174360, 174369, 174376, 174382, 174388, 174394, 174400, 174406, 174412, - 174418, 174424, 174430, 174436, 174442, 174448, 174454, 174460, 174466, - 174472, 174478, 174484, 174490, 174496, 174502, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 174508, 174515, 174520, 174524, 174528, 174532, 174537, 174542, - 174547, 174552, 174557, 174562, 174569, 174578, 174584, 174588, 174597, - 174602, 174608, 174614, 174620, 174625, 174631, 174637, 174643, 174648, - 174654, 174660, 174665, 174671, 174677, 174682, 174688, 174694, 174699, - 174705, 174711, 174716, 174722, 174728, 174734, 174740, 174746, 174757, - 174764, 174770, 174773, 174776, 174779, 174784, 174790, 174796, 174802, - 174807, 174813, 174819, 174825, 174830, 174836, 174842, 174847, 174853, - 174859, 174864, 174870, 174876, 174881, 174887, 174893, 174898, 174904, - 174910, 174916, 174922, 174928, 174931, 174934, 174937, 174940, 174943, - 174946, 174953, 174961, 174969, 174977, 174984, 174992, 175000, 175008, - 175015, 175023, 175031, 175038, 175046, 175054, 175061, 175069, 175077, - 175084, 175092, 175100, 175107, 175115, 175123, 175131, 175139, 175147, - 175152, 175157, 175162, 175165, 175173, 175178, 175185, 175193, 175201, - 175209, 175216, 175224, 175232, 175240, 175247, 175255, 175263, 175270, - 175278, 175286, 175293, 175301, 175309, 175316, 175324, 175332, 175339, - 175347, 175355, 175363, 175371, 175379, 175389, 175394, 175398, 175402, - 175407, 175412, 175415, 175418, 175421, 175424, 175427, 175430, 175433, - 175436, 175439, 175445, 175448, 175452, 175457, 175461, 175466, 175471, - 175477, 175483, 175489, 175494, 175502, 175508, 175511, 175514, 175517, - 175520, 175523, 175526, 175529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173938, 173942, 173946, + 173950, 0, 173954, 173958, 173962, 173966, 173970, 173974, 173978, + 173982, 173986, 173990, 173994, 173998, 174002, 174006, 174010, 174014, + 174018, 174022, 174026, 174030, 174034, 174038, 174042, 174046, 174052, + 174058, 174064, 0, 174070, 174075, 0, 174080, 0, 0, 174085, 0, 174090, + 174095, 174100, 174105, 174110, 174115, 174120, 174125, 174130, 174135, + 0, 174140, 174145, 174150, 174155, 0, 174160, 0, 174165, 0, 0, 0, 0, 0, + 0, 174170, 0, 0, 0, 0, 174176, 0, 174182, 0, 174188, 0, 174194, 174200, + 174206, 0, 174212, 174218, 0, 174224, 0, 0, 174230, 0, 174236, 0, 174242, + 0, 174248, 0, 174256, 0, 174264, 174270, 0, 174276, 0, 0, 174282, 174288, + 174294, 174300, 0, 174306, 174312, 174318, 174324, 174330, 174336, + 174342, 0, 174348, 174354, 174360, 174366, 0, 174372, 174378, 174384, + 174390, 0, 174398, 0, 174406, 174412, 174418, 174424, 174430, 174436, + 174442, 174448, 174454, 174460, 0, 174466, 174472, 174478, 174484, + 174490, 174496, 174502, 174508, 174514, 174520, 174526, 174532, 174538, + 174544, 174550, 174556, 174562, 0, 0, 0, 0, 0, 174568, 174574, 174580, 0, + 174586, 174592, 174598, 174604, 174610, 0, 174616, 174622, 174628, + 174634, 174640, 174646, 174652, 174658, 174664, 174670, 174676, 174682, + 174688, 174694, 174700, 174706, 174712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 175534, 175541, - 175549, 175557, 175565, 175572, 175580, 175588, 175596, 175603, 175611, - 175619, 175626, 175634, 175642, 175649, 175657, 175665, 175672, 175680, - 175688, 175695, 175703, 175711, 175719, 175727, 175735, 175740, 175744, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 175747, 175753, 175759, 175765, - 175769, 175775, 175781, 175787, 175793, 175799, 175805, 175811, 175817, - 175823, 175829, 175835, 175841, 175847, 175853, 175859, 175865, 175871, - 175877, 175883, 175889, 175895, 175901, 175907, 175913, 175919, 175925, - 175931, 175937, 175943, 175949, 175955, 175961, 175967, 175973, 175979, - 175985, 175991, 175997, 176003, 0, 0, 0, 0, 176009, 176020, 176031, - 176042, 176053, 176064, 176075, 176086, 176097, 0, 0, 0, 0, 0, 0, 0, - 176108, 176113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176118, 176124, - 176130, 176136, 176142, 176148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176154, 176156, 176158, 176162, - 176167, 176172, 176174, 176180, 176185, 176187, 176193, 176197, 176199, - 176203, 176209, 176215, 176221, 176226, 176231, 176238, 176245, 176252, - 176257, 176264, 176271, 176278, 176282, 176289, 176298, 176307, 176314, - 176319, 176323, 176327, 176329, 176332, 176335, 176342, 176349, 176359, - 176364, 176369, 176374, 176379, 176381, 176387, 176391, 176393, 176395, - 176397, 176399, 176403, 176407, 176411, 176413, 176417, 176419, 176423, - 176425, 176427, 176429, 176431, 176436, 176441, 176443, 176449, 176453, - 176457, 176465, 176467, 176469, 176471, 176473, 176475, 176477, 176479, - 176481, 176483, 176485, 176489, 176493, 176495, 176497, 176499, 176501, - 176503, 176508, 176514, 176518, 176522, 176526, 176530, 176535, 176539, - 176541, 176543, 176547, 176553, 176555, 176557, 176559, 176563, 176572, - 176578, 176582, 176586, 176588, 176590, 176593, 176595, 176597, 176599, - 176603, 176605, 176609, 176614, 176616, 176621, 176627, 176634, 176638, - 176642, 176646, 176650, 176656, 176660, 176668, 176675, 176677, 176679, - 176683, 176687, 176689, 176693, 176697, 176699, 176703, 176705, 176709, - 176713, 176717, 176721, 176725, 176729, 176733, 176737, 176743, 176747, - 176751, 176762, 176767, 176771, 176775, 176781, 176785, 176789, 176793, - 176800, 176807, 176811, 176815, 176819, 176823, 176827, 176834, 176836, - 176840, 176842, 176844, 176848, 176852, 176856, 176858, 176862, 176866, - 176870, 176874, 176878, 176880, 176884, 176886, 176892, 176895, 176900, - 176902, 176904, 176907, 176909, 176911, 176914, 176921, 176928, 176935, - 176940, 176944, 176946, 176948, 176950, 176954, 176956, 176960, 176964, - 176968, 176970, 176974, 176976, 176980, 176984, 176991, 176993, 177002, - 177011, 177020, 177026, 177028, 177033, 177037, 177041, 177043, 177049, - 177053, 177055, 177059, 177063, 177065, 177069, 177074, 177078, 177084, - 177090, 177092, 177094, 177100, 177102, 177106, 177110, 177112, 177116, - 177118, 177122, 177126, 177130, 177133, 177136, 177141, 177146, 177148, - 177151, 177153, 177160, 177164, 177166, 177173, 177180, 177187, 177194, - 177201, 177203, 177205, 177207, 177211, 177213, 177215, 177217, 177219, - 177221, 177223, 177225, 177227, 177229, 177231, 177233, 177235, 177237, - 177239, 177241, 177243, 177245, 177247, 177249, 177251, 177253, 177255, - 177259, 177261, 177263, 177265, 177269, 177271, 177275, 177277, 177279, - 177283, 177287, 177293, 177295, 177297, 177299, 177301, 177305, 177309, - 177311, 177315, 177319, 177323, 177327, 177331, 177335, 177339, 177343, - 177347, 177351, 177355, 177359, 177363, 177367, 177371, 177375, 177379, - 177383, 177385, 177387, 177389, 177391, 177393, 177395, 177397, 177405, - 177413, 177421, 177429, 177434, 177439, 177444, 177448, 177452, 177457, - 177462, 177464, 177468, 177470, 177472, 177474, 177476, 177478, 177480, - 177482, 177486, 177488, 177490, 177492, 177496, 177500, 177504, 177508, - 177512, 177514, 177520, 177526, 177528, 177530, 177532, 177534, 177536, - 177545, 177552, 177559, 177563, 177570, 177575, 177582, 177591, 177596, - 177600, 177604, 177606, 177610, 177612, 177616, 177620, 177622, 177626, - 177630, 177634, 177636, 177638, 177644, 177646, 177648, 177650, 177654, - 177658, 177660, 177664, 177666, 177668, 177671, 177675, 177677, 177681, - 177683, 177685, 177690, 177692, 177696, 177700, 177703, 177707, 177711, - 177715, 177719, 177723, 177727, 177731, 177736, 177740, 177744, 177753, - 177758, 177761, 177763, 177766, 177769, 177774, 177776, 177779, 177784, - 177788, 177791, 177795, 177799, 177802, 177807, 177811, 177815, 177819, - 177823, 177829, 177835, 177841, 177847, 177852, 177863, 177865, 177869, - 177871, 177873, 177877, 177881, 177883, 177887, 177893, 177898, 177904, - 177906, 177910, 177914, 177921, 177928, 177932, 177934, 177936, 177940, - 177942, 177946, 177950, 177954, 177956, 177958, 177965, 177969, 177973, - 177977, 177981, 177985, 177987, 177991, 177993, 177995, 177999, 178001, - 178005, 178009, 178015, 178019, 178023, 178027, 178029, 178032, 178036, - 178043, 178052, 178061, 178070, 178079, 178081, 178085, 178087, 178091, - 178102, 178106, 178112, 178118, 178123, 178125, 178130, 178134, 178136, - 178138, 178140, 178144, 178148, 178152, 178157, 178168, 178184, 178197, - 178210, 178214, 178218, 178224, 178226, 178234, 178242, 178244, 178248, - 178254, 178260, 178267, 178274, 178276, 178278, 178282, 178284, 178290, - 178292, 178295, 178299, 178305, 178311, 178322, 178328, 178335, 178343, - 178347, 178355, 178363, 178369, 178375, 178382, 178384, 178388, 178390, - 178392, 178397, 178399, 178401, 178403, 178405, 178409, 178419, 178425, - 178429, 178433, 178437, 178443, 178449, 178455, 178461, 178466, 178471, - 178477, 178483, 178490, 178497, 178504, 178511, 178516, 178524, 178528, - 178537, 178546, 178552, 178556, 178560, 178564, 178567, 178572, 178574, - 178576, 178578, 178585, 178590, 178597, 178604, 178611, 178619, 178627, - 178635, 178643, 178651, 178659, 178667, 178675, 178683, 178689, 178695, - 178701, 178707, 178713, 178719, 178725, 178731, 178737, 178743, 178749, - 178755, 178758, 178767, 178776, 178778, 178785, 178789, 178791, 178793, - 178797, 178803, 178807, 178809, 178819, 178825, 178829, 178831, 178835, - 178837, 178841, 178848, 178855, 178862, 178867, 178872, 178881, 178887, - 178892, 178896, 178901, 178905, 178912, 178916, 178919, 178923, 178929, - 178935, 178939, 178943, 178948, 178954, 178963, 178974, 178980, 178986, - 178992, 179002, 179017, 179026, 179034, 179042, 179050, 179058, 179066, - 179074, 179082, 179090, 179098, 179106, 179114, 179122, 179125, 179129, - 179134, 179139, 179141, 179145, 179154, 179163, 179171, 179175, 179179, - 179184, 179189, 179194, 179196, 179201, 179205, 179207, 179211, 179215, - 179221, 179226, 179234, 179239, 179244, 179249, 179256, 179259, 179261, - 179265, 179270, 179276, 179280, 179284, 179290, 179296, 179298, 179302, - 179306, 179310, 179314, 179318, 179320, 179322, 179324, 179326, 179332, - 179338, 179342, 179344, 179346, 179348, 179357, 179361, 179368, 179375, - 179377, 179380, 179384, 179390, 179394, 179398, 179400, 179408, 179412, - 179416, 179421, 179425, 179430, 179435, 179440, 179445, 179450, 179455, - 179460, 179465, 179469, 179475, 179479, 179485, 179490, 179497, 179503, - 179511, 179515, 179522, 179526, 179530, 179534, 179539, 179544, 179546, - 179550, 179559, 179567, 179576, 179590, 179604, 179618, 179625, 179632, - 179636, 179645, 179653, 179657, 179666, 179673, 179677, 179681, 179685, - 179689, 179696, 179700, 179704, 179708, 179712, 179719, 179728, 179737, - 179744, 179756, 179768, 179772, 179776, 179780, 179784, 179788, 179792, - 179800, 179808, 179817, 179821, 179825, 179829, 179833, 179837, 179841, - 179847, 179854, 179858, 179870, 179878, 179882, 179886, 179890, 179894, - 179900, 179907, 179918, 179928, 179939, 179950, 179959, 179970, 179976, - 179982, 179988, 179994, 180000, 180004, 180011, 180020, 180027, 180033, - 180037, 180041, 180045, 180054, 180066, 180070, 180077, 180084, 180091, - 180099, 180106, 180114, 180122, 180131, 180139, 180148, 180157, 180167, - 180176, 180186, 180196, 180207, 180217, 180228, 180235, 180243, 180250, - 180258, 180266, 180275, 180283, 180292, 180299, 180311, 180318, 180330, - 180333, 180337, 180340, 180344, 180350, 180357, 180364, 180372, 180377, - 180383, 180394, 180404, 180415, 180420, 180425, 180431, 180436, 180443, - 180447, 180453, 180455, 180457, 180461, 180465, 180469, 180478, 180480, - 180482, 180485, 180487, 180489, 180493, 180495, 180499, 180501, 180505, - 180507, 180509, 180513, 180517, 180523, 180525, 180529, 180531, 180535, - 180539, 180543, 180547, 180549, 180551, 180555, 180559, 180563, 180567, - 180569, 180571, 180573, 180579, 180584, 180587, 180595, 180603, 180605, - 180610, 180613, 180618, 180629, 180636, 180641, 180646, 180648, 180652, - 180654, 180658, 180660, 180664, 180668, 180671, 180674, 180676, 180679, - 180681, 180685, 180687, 180689, 180691, 180695, 180697, 180701, 180704, - 180711, 180714, 180719, 180722, 180725, 180730, 180734, 180738, 180742, - 180744, 180749, 180752, 180756, 180758, 180760, 180764, 180766, 0, 0, 0, - 0, 0, 180768, 180772, 180774, 180778, 180783, 180785, 180789, 180791, - 180795, 180799, 180805, 180809, 180814, 180817, 180821, 180825, 0, 0, 0, - 180829, 180831, 180837, 180841, 180845, 180847, 180851, 180853, 180855, - 180859, 180861, 180865, 180869, 0, 0, 0, 180873, 180878, 180883, 180888, - 180893, 180898, 180903, 180910, 180917, 180924, 180931, 180936, 180941, - 180946, 180951, 180958, 180964, 180971, 180978, 180985, 180990, 180995, - 181000, 181005, 181010, 181017, 181024, 181029, 181034, 181041, 181048, - 181056, 181064, 181071, 181078, 181086, 181094, 181102, 181109, 181119, - 181130, 181135, 181142, 181149, 181156, 181164, 181172, 181183, 181191, - 181199, 181207, 181212, 181217, 181222, 181227, 181232, 181237, 181242, - 181247, 181252, 181257, 181262, 181267, 181274, 181279, 181284, 181291, - 181296, 181301, 181306, 181311, 181316, 181321, 181326, 181331, 181336, - 181341, 181346, 181351, 181358, 181366, 181371, 181376, 181383, 181388, - 181393, 181398, 181405, 181410, 181417, 181422, 181429, 181434, 181443, - 181452, 181457, 181462, 181467, 181472, 181477, 181482, 181487, 181492, - 181497, 181502, 181507, 181512, 181517, 181525, 181533, 181538, 181543, - 181548, 181553, 181558, 181564, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 181570, 181578, 181586, 181594, 181602, 181608, 181614, 181618, 181622, - 181628, 181634, 181643, 181647, 181652, 181658, 181662, 181667, 181671, - 181675, 181681, 181687, 181697, 181706, 181709, 181714, 181720, 181726, - 181737, 181747, 181751, 181756, 181762, 181768, 181777, 181782, 181786, - 181791, 181795, 181801, 181807, 181813, 181817, 181820, 181824, 181827, - 181830, 181835, 181840, 181847, 181855, 181862, 181869, 181878, 181887, - 181894, 181902, 181909, 181916, 181925, 181934, 181941, 181949, 181956, - 181963, 181972, 181979, 181987, 181993, 182002, 182010, 182019, 182026, - 182036, 182047, 182055, 182063, 182072, 182080, 182088, 182097, 182105, - 182115, 182124, 182132, 182140, 182149, 182152, 182157, 182160, 0, 0, 0, - 0, 0, 0, 0, 182165, 182171, 182177, 182183, 182189, 182195, 182201, - 182207, 182213, 182219, 182225, 182231, 0, 0, 0, 0, 182237, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182241, 182249, 182258, 182266, 182275, - 182284, 182294, 182303, 182313, 182322, 182332, 182341, 0, 0, 0, 0, - 182351, 182359, 182368, 182376, 182385, 182392, 182400, 182407, 182415, - 182423, 182432, 182440, 182449, 182459, 182470, 182480, 182491, 182500, - 182510, 182519, 182529, 182538, 182548, 182557, 182567, 182575, 182584, - 182592, 182601, 182609, 182618, 182626, 182635, 182645, 182656, 182666, - 182677, 182681, 182686, 182690, 182695, 182698, 182702, 182705, 182709, - 182713, 182718, 182722, 182727, 182732, 182738, 182743, 182749, 182752, - 182756, 182759, 0, 0, 0, 0, 0, 0, 0, 0, 182763, 182766, 182770, 182773, - 182777, 182782, 182787, 182793, 182799, 182803, 0, 0, 0, 0, 0, 0, 182807, - 182813, 182820, 182826, 182833, 182841, 182849, 182858, 182867, 182872, - 182878, 182883, 182889, 182896, 182903, 182911, 182919, 182926, 182934, - 182941, 182949, 182958, 182967, 182977, 182987, 182993, 183000, 183006, - 183013, 183021, 183029, 183038, 183047, 183055, 183064, 183072, 183081, - 183091, 183101, 183112, 0, 0, 0, 0, 0, 0, 0, 0, 183123, 183128, 183134, - 183139, 183145, 183154, 183164, 183173, 183183, 183190, 183198, 183205, - 183213, 183220, 183229, 183238, 183247, 183252, 183259, 183266, 183273, - 183278, 183283, 183288, 183293, 183300, 183307, 183314, 183321, 183328, - 0, 0, 183337, 183347, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174718, 174728, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174736, 174743, 174750, 174757, + 174763, 174770, 174777, 174783, 174790, 174797, 174804, 174812, 174820, + 174828, 174836, 174844, 174852, 174859, 174866, 174873, 174881, 174889, + 174897, 174905, 174913, 174921, 174928, 174935, 174942, 174950, 174958, + 174966, 174974, 174982, 174990, 174995, 175000, 175005, 175010, 175015, + 175020, 175025, 175030, 175035, 0, 0, 0, 0, 175040, 175047, 175052, + 175057, 175062, 175067, 175072, 175077, 175082, 175087, 175092, 175097, + 175102, 175107, 175112, 175117, 175122, 175127, 175132, 175137, 175142, + 175147, 175152, 175157, 175162, 175167, 175172, 175177, 175182, 175187, + 175192, 175197, 175202, 175207, 175212, 175217, 175222, 175227, 175232, + 175237, 175242, 175247, 175252, 175257, 175262, 175267, 175272, 175277, + 175282, 175287, 175292, 175298, 175303, 175308, 175313, 175318, 175323, + 175328, 175333, 175338, 175343, 175348, 175353, 175358, 175363, 175368, + 175373, 175378, 175383, 175388, 175393, 175398, 175403, 175408, 175413, + 175418, 175423, 175428, 175433, 175438, 175443, 175448, 175453, 175458, + 175463, 175468, 175473, 175478, 175483, 175488, 175493, 175498, 175503, + 175508, 175513, 175518, 175523, 175528, 175533, 175538, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 175543, 175549, 175558, 175566, 175574, 175583, 175592, + 175601, 175610, 175619, 175628, 175637, 175646, 175655, 175664, 0, 0, + 175673, 175682, 175690, 175698, 175707, 175716, 175725, 175734, 175743, + 175752, 175761, 175770, 175779, 175788, 175797, 0, 175805, 175814, + 175822, 175830, 175839, 175848, 175857, 175866, 175875, 175884, 175893, + 175902, 175911, 175920, 175929, 0, 175936, 175945, 175953, 175961, + 175970, 175979, 175988, 175997, 176006, 176015, 176024, 176033, 176042, + 176051, 176060, 176067, 176073, 176079, 176085, 176091, 176097, 176103, + 176109, 176115, 176121, 176127, 176133, 176139, 176145, 176151, 176157, + 176163, 176169, 176175, 176181, 176187, 176193, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 176199, 176206, 176211, 176215, 176219, 176223, 176228, 176233, + 176238, 176243, 176248, 176253, 176260, 176269, 176275, 176279, 176288, + 176293, 176299, 176305, 176311, 176316, 176322, 176328, 176334, 176339, + 176345, 176351, 176356, 176362, 176368, 176373, 176379, 176385, 176390, + 176396, 176402, 176407, 176413, 176419, 176425, 176431, 176437, 176448, + 176455, 176461, 176464, 176467, 176470, 176475, 176481, 176487, 176493, + 176498, 176504, 176510, 176516, 176521, 176527, 176533, 176538, 176544, + 176550, 176555, 176561, 176567, 176572, 176578, 176584, 176589, 176595, + 176601, 176607, 176613, 176619, 176622, 176625, 176628, 176631, 176634, + 176637, 176644, 176652, 176660, 176668, 176675, 176683, 176691, 176699, + 176706, 176714, 176722, 176729, 176737, 176745, 176752, 176760, 176768, + 176775, 176783, 176791, 176798, 176806, 176814, 176822, 176830, 176838, + 176843, 176848, 176853, 176856, 176864, 176869, 176876, 176884, 176892, + 176900, 176907, 176915, 176923, 176931, 176938, 176946, 176954, 176961, + 176969, 176977, 176984, 176992, 177000, 177007, 177015, 177023, 177030, + 177038, 177046, 177054, 177062, 177070, 177080, 177085, 177089, 177093, + 177098, 177103, 177106, 177109, 177112, 177115, 177118, 177121, 177124, + 177127, 177130, 177136, 177139, 177143, 177148, 177152, 177157, 177162, + 177168, 177174, 177180, 177185, 177193, 177199, 177202, 177205, 177208, + 177211, 177214, 177217, 177220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177225, 177232, + 177240, 177248, 177256, 177263, 177271, 177279, 177287, 177294, 177302, + 177310, 177317, 177325, 177333, 177340, 177348, 177356, 177363, 177371, + 177379, 177386, 177394, 177402, 177410, 177418, 177426, 177431, 177435, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177438, 177444, 177450, 177456, + 177460, 177466, 177472, 177478, 177484, 177490, 177496, 177502, 177508, + 177514, 177520, 177526, 177532, 177538, 177544, 177550, 177556, 177562, + 177568, 177574, 177580, 177586, 177592, 177598, 177604, 177610, 177616, + 177622, 177628, 177634, 177640, 177646, 177652, 177658, 177664, 177670, + 177676, 177682, 177688, 177694, 0, 0, 0, 0, 177700, 177711, 177722, + 177733, 177744, 177755, 177766, 177777, 177788, 0, 0, 0, 0, 0, 0, 0, + 177799, 177804, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177809, 177815, + 177821, 177827, 177833, 177839, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177845, 177847, 177849, 177853, + 177858, 177863, 177865, 177871, 177876, 177878, 177884, 177888, 177890, + 177894, 177900, 177906, 177912, 177917, 177922, 177929, 177936, 177943, + 177948, 177955, 177962, 177969, 177973, 177980, 177989, 177998, 178005, + 178010, 178014, 178018, 178020, 178023, 178026, 178033, 178040, 178050, + 178055, 178060, 178065, 178070, 178072, 178078, 178082, 178084, 178086, + 178088, 178090, 178094, 178098, 178102, 178104, 178108, 178110, 178114, + 178116, 178118, 178120, 178122, 178127, 178132, 178134, 178140, 178144, + 178148, 178156, 178158, 178160, 178162, 178164, 178166, 178168, 178170, + 178172, 178174, 178176, 178180, 178184, 178186, 178188, 178190, 178192, + 178194, 178199, 178205, 178209, 178213, 178217, 178221, 178226, 178230, + 178232, 178234, 178238, 178244, 178246, 178248, 178250, 178254, 178263, + 178269, 178273, 178277, 178279, 178281, 178284, 178286, 178288, 178290, + 178294, 178296, 178300, 178305, 178307, 178312, 178318, 178325, 178329, + 178333, 178337, 178341, 178347, 178351, 178359, 178366, 178368, 178370, + 178374, 178378, 178380, 178384, 178388, 178390, 178394, 178396, 178400, + 178404, 178408, 178412, 178416, 178420, 178424, 178428, 178434, 178438, + 178442, 178453, 178458, 178462, 178466, 178472, 178476, 178480, 178484, + 178491, 178498, 178502, 178506, 178510, 178514, 178518, 178525, 178527, + 178531, 178533, 178535, 178539, 178543, 178547, 178549, 178553, 178557, + 178561, 178565, 178569, 178571, 178575, 178577, 178583, 178586, 178591, + 178593, 178595, 178598, 178600, 178602, 178605, 178612, 178619, 178626, + 178631, 178635, 178637, 178639, 178641, 178645, 178647, 178651, 178655, + 178659, 178661, 178665, 178667, 178671, 178675, 178682, 178684, 178693, + 178702, 178711, 178717, 178719, 178724, 178728, 178732, 178734, 178740, + 178744, 178746, 178750, 178754, 178756, 178760, 178765, 178769, 178775, + 178781, 178783, 178785, 178791, 178793, 178797, 178801, 178803, 178807, + 178809, 178813, 178817, 178821, 178824, 178827, 178832, 178837, 178839, + 178842, 178844, 178851, 178855, 178857, 178864, 178871, 178878, 178885, + 178892, 178894, 178896, 178898, 178902, 178904, 178906, 178908, 178910, + 178912, 178914, 178916, 178918, 178920, 178922, 178924, 178926, 178928, + 178930, 178932, 178934, 178936, 178938, 178940, 178942, 178944, 178946, + 178950, 178952, 178954, 178956, 178960, 178962, 178966, 178968, 178970, + 178974, 178978, 178984, 178986, 178988, 178990, 178992, 178996, 179000, + 179002, 179006, 179010, 179014, 179018, 179022, 179026, 179030, 179034, + 179038, 179042, 179046, 179050, 179054, 179058, 179062, 179066, 179070, + 179074, 179076, 179078, 179080, 179082, 179084, 179086, 179088, 179096, + 179104, 179112, 179120, 179125, 179130, 179135, 179139, 179143, 179148, + 179153, 179155, 179159, 179161, 179163, 179165, 179167, 179169, 179171, + 179173, 179177, 179179, 179181, 179183, 179187, 179191, 179195, 179199, + 179203, 179205, 179211, 179217, 179219, 179221, 179223, 179225, 179227, + 179236, 179243, 179250, 179254, 179261, 179266, 179273, 179282, 179287, + 179291, 179295, 179297, 179301, 179303, 179307, 179311, 179313, 179317, + 179321, 179325, 179327, 179329, 179335, 179337, 179339, 179341, 179345, + 179349, 179351, 179355, 179357, 179359, 179362, 179366, 179368, 179372, + 179374, 179376, 179381, 179383, 179387, 179391, 179394, 179398, 179402, + 179406, 179410, 179414, 179418, 179422, 179427, 179431, 179435, 179444, + 179449, 179452, 179454, 179457, 179460, 179465, 179467, 179470, 179475, + 179479, 179482, 179486, 179490, 179493, 179498, 179502, 179506, 179510, + 179514, 179520, 179526, 179532, 179538, 179543, 179554, 179556, 179560, + 179562, 179564, 179568, 179572, 179574, 179578, 179584, 179589, 179595, + 179597, 179601, 179605, 179612, 179619, 179623, 179625, 179627, 179631, + 179633, 179637, 179641, 179645, 179647, 179649, 179656, 179660, 179664, + 179668, 179672, 179676, 179678, 179682, 179684, 179686, 179690, 179692, + 179696, 179700, 179706, 179710, 179714, 179718, 179720, 179723, 179727, + 179734, 179743, 179752, 179761, 179770, 179772, 179776, 179778, 179782, + 179793, 179797, 179803, 179809, 179814, 179816, 179821, 179825, 179827, + 179829, 179831, 179835, 179839, 179843, 179848, 179859, 179875, 179888, + 179901, 179905, 179909, 179915, 179917, 179925, 179933, 179935, 179939, + 179945, 179951, 179958, 179965, 179967, 179969, 179973, 179975, 179981, + 179983, 179986, 179990, 179996, 180002, 180013, 180019, 180026, 180034, + 180038, 180046, 180054, 180060, 180066, 180073, 180075, 180079, 180081, + 180083, 180088, 180090, 180092, 180094, 180096, 180100, 180110, 180116, + 180120, 180124, 180128, 180134, 180140, 180146, 180152, 180157, 180162, + 180168, 180174, 180181, 180188, 180195, 180202, 180207, 180215, 180219, + 180228, 180237, 180243, 180247, 180251, 180255, 180258, 180263, 180265, + 180267, 180269, 180276, 180281, 180288, 180295, 180302, 180310, 180318, + 180326, 180334, 180342, 180350, 180358, 180366, 180374, 180380, 180386, + 180392, 180398, 180404, 180410, 180416, 180422, 180428, 180434, 180440, + 180446, 180449, 180458, 180467, 180469, 180476, 180480, 180482, 180484, + 180488, 180494, 180498, 180500, 180510, 180516, 180520, 180522, 180526, + 180528, 180532, 180539, 180546, 180553, 180558, 180563, 180572, 180578, + 180583, 180587, 180592, 180596, 180603, 180607, 180610, 180614, 180620, + 180626, 180630, 180634, 180639, 180645, 180654, 180665, 180671, 180677, + 180683, 180693, 180708, 180717, 180725, 180733, 180741, 180749, 180757, + 180765, 180773, 180781, 180789, 180797, 180805, 180813, 180816, 180820, + 180825, 180830, 180832, 180836, 180845, 180854, 180862, 180866, 180870, + 180875, 180880, 180885, 180887, 180892, 180896, 180898, 180902, 180906, + 180912, 180917, 180925, 180930, 180935, 180940, 180947, 180950, 180952, + 180956, 180961, 180967, 180971, 180975, 180981, 180987, 180989, 180993, + 180997, 181001, 181005, 181009, 181011, 181013, 181015, 181017, 181023, + 181029, 181033, 181035, 181037, 181039, 181048, 181052, 181059, 181066, + 181068, 181071, 181075, 181081, 181085, 181089, 181091, 181099, 181103, + 181107, 181112, 181116, 181121, 181126, 181131, 181136, 181141, 181146, + 181151, 181156, 181160, 181166, 181170, 181176, 181181, 181188, 181194, + 181202, 181206, 181213, 181217, 181221, 181225, 181230, 181235, 181237, + 181241, 181250, 181258, 181267, 181281, 181295, 181309, 181316, 181323, + 181327, 181336, 181344, 181348, 181357, 181364, 181368, 181372, 181376, + 181380, 181387, 181391, 181395, 181399, 181403, 181410, 181419, 181428, + 181435, 181447, 181459, 181463, 181467, 181471, 181475, 181479, 181483, + 181491, 181499, 181508, 181512, 181516, 181520, 181524, 181528, 181532, + 181538, 181545, 181549, 181561, 181569, 181573, 181577, 181581, 181585, + 181591, 181598, 181609, 181619, 181630, 181641, 181650, 181661, 181667, + 181673, 181679, 181685, 181691, 181695, 181702, 181711, 181718, 181724, + 181728, 181732, 181736, 181745, 181757, 181761, 181768, 181775, 181782, + 181790, 181797, 181805, 181813, 181822, 181830, 181839, 181848, 181858, + 181867, 181877, 181887, 181898, 181908, 181919, 181926, 181934, 181941, + 181949, 181957, 181966, 181974, 181983, 181990, 182002, 182009, 182021, + 182024, 182028, 182031, 182035, 182041, 182048, 182055, 182063, 182068, + 182074, 182085, 182095, 182106, 182111, 182116, 182122, 182127, 182134, + 182138, 182144, 182146, 182148, 182152, 182156, 182160, 182169, 182171, + 182173, 182176, 182178, 182180, 182184, 182186, 182190, 182192, 182196, + 182198, 182200, 182204, 182208, 182214, 182216, 182220, 182222, 182226, + 182230, 182234, 182238, 182240, 182242, 182246, 182250, 182254, 182258, + 182260, 182262, 182264, 182270, 182275, 182278, 182286, 182294, 182296, + 182301, 182304, 182309, 182320, 182327, 182332, 182337, 182339, 182343, + 182345, 182349, 182351, 182355, 182359, 182362, 182365, 182367, 182370, + 182372, 182376, 182378, 182380, 182382, 182386, 182388, 182392, 182395, + 182402, 182405, 182410, 182413, 182416, 182421, 182425, 182429, 182433, + 182435, 182440, 182443, 182447, 182449, 182451, 182455, 182457, 0, 0, 0, + 0, 182459, 182461, 182465, 182467, 182471, 182476, 182478, 182482, + 182484, 182488, 182492, 182498, 182502, 182507, 182510, 182514, 182518, + 0, 0, 0, 182522, 182524, 182530, 182534, 182538, 182540, 182544, 182546, + 182548, 182552, 182554, 182558, 182562, 0, 0, 0, 182566, 182571, 182576, + 182581, 182586, 182591, 182596, 182603, 182610, 182617, 182624, 182629, + 182634, 182639, 182644, 182651, 182657, 182664, 182671, 182678, 182683, + 182688, 182693, 182698, 182703, 182710, 182717, 182722, 182727, 182734, + 182741, 182749, 182757, 182764, 182771, 182779, 182787, 182795, 182802, + 182812, 182823, 182828, 182835, 182842, 182849, 182857, 182865, 182876, + 182884, 182892, 182900, 182905, 182910, 182915, 182920, 182925, 182930, + 182935, 182940, 182945, 182950, 182955, 182960, 182967, 182972, 182977, + 182984, 182989, 182994, 182999, 183004, 183009, 183014, 183019, 183024, + 183029, 183034, 183039, 183044, 183051, 183059, 183064, 183069, 183076, + 183081, 183086, 183091, 183098, 183103, 183110, 183115, 183122, 183127, + 183136, 183145, 183150, 183155, 183160, 183165, 183170, 183175, 183180, + 183185, 183190, 183195, 183200, 183205, 183210, 183218, 183226, 183231, + 183236, 183241, 183246, 183251, 183257, 183263, 183268, 183270, 0, 0, 0, + 0, 183274, 183276, 183278, 183280, 183282, 183284, 183292, 183300, + 183308, 183316, 183322, 183328, 183332, 183336, 183342, 183348, 183357, + 183361, 183366, 183372, 183376, 183381, 183385, 183389, 183395, 183401, + 183411, 183420, 183423, 183428, 183434, 183440, 183451, 183461, 183465, + 183470, 183476, 183482, 183491, 183496, 183500, 183505, 183509, 183515, + 183521, 183527, 183531, 183534, 183538, 183541, 183544, 183549, 183554, + 183561, 183569, 183576, 183583, 183592, 183601, 183608, 183616, 183623, + 183630, 183639, 183648, 183655, 183663, 183670, 183677, 183686, 183693, + 183701, 183707, 183716, 183724, 183733, 183740, 183750, 183761, 183769, + 183777, 183786, 183794, 183802, 183811, 183819, 183829, 183838, 183846, + 183854, 183863, 183866, 183871, 183874, 183879, 0, 0, 0, 0, 0, 0, 183886, + 183892, 183898, 183904, 183910, 183916, 183922, 183928, 183934, 183940, + 183946, 183952, 0, 0, 0, 0, 183958, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 183962, 183970, 183979, 183987, 183996, 184005, 184015, 184024, + 184034, 184043, 184053, 184062, 0, 0, 0, 0, 184072, 184080, 184089, + 184097, 184106, 184113, 184121, 184128, 184136, 184144, 184153, 184161, + 184170, 184180, 184191, 184201, 184212, 184221, 184231, 184240, 184250, + 184259, 184269, 184278, 184288, 184296, 184305, 184313, 184322, 184330, + 184339, 184347, 184356, 184366, 184377, 184387, 184398, 184402, 184407, + 184411, 184416, 184419, 184423, 184426, 184430, 184434, 184439, 184443, + 184448, 184453, 184459, 184464, 184470, 184473, 184477, 184480, 0, 0, 0, + 0, 0, 0, 0, 0, 184484, 184487, 184491, 184494, 184498, 184503, 184508, + 184514, 184520, 184524, 0, 0, 0, 0, 0, 0, 184528, 184534, 184541, 184547, + 184554, 184562, 184570, 184579, 184588, 184593, 184599, 184604, 184610, + 184617, 184624, 184632, 184640, 184647, 184655, 184662, 184670, 184679, + 184688, 184698, 184708, 184714, 184721, 184727, 184734, 184742, 184750, + 184759, 184768, 184776, 184785, 184793, 184802, 184812, 184822, 184833, + 0, 0, 0, 0, 0, 0, 0, 0, 184844, 184849, 184855, 184860, 184866, 184875, + 184885, 184894, 184904, 184911, 184919, 184926, 184934, 184941, 184950, + 184959, 184968, 184973, 184980, 184987, 184994, 184999, 185004, 185009, + 185014, 185021, 185028, 185035, 185042, 185049, 0, 0, 185058, 185068, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183359, 183369, 183378, 183383, - 183392, 183400, 183408, 183415, 183419, 183424, 183431, 183440, 183451, - 183455, 183458, 183462, 183466, 183470, 183474, 183479, 183483, 183487, - 183492, 183496, 183500, 183506, 183512, 183519, 183523, 183527, 183529, - 183539, 183548, 183555, 183559, 183563, 183573, 183577, 183581, 183585, - 183589, 183597, 183606, 183619, 183630, 183641, 183657, 183666, 183675, - 183679, 183681, 183686, 183688, 183690, 183696, 183700, 183702, 183708, - 183710, 183712, 183716, 183718, 183722, 183724, 183728, 183732, 183737, - 183741, 183745, 183747, 183751, 183753, 183759, 183765, 183771, 183775, - 183781, 183785, 183792, 183794, 183798, 183800, 183802, 183804, 183806, - 183808, 183810, 183814, 183818, 183825, 183829, 183831, 183836, 183838, - 183840, 183842, 183844, 183848, 183852, 183854, 183859, 183864, 183866, - 183868, 183870, 183872, 183877, 183879, 183883, 183887, 183889, 183893, - 183895, 183908, 183912, 183919, 183931, 183943, 183947, 183951, 183953, - 183957, 183965, 183972, 183974, 183978, 183980, 183984, 183988, 183990, - 183994, 183996, 183998, 184002, 184004, 184006, 184008, 184010, 184012, - 184016, 184018, 184020, 184022, 184024, 184026, 184028, 184030, 184034, - 184038, 184040, 184042, 184044, 184046, 184048, 184050, 184052, 184054, - 184056, 184058, 184060, 184062, 184064, 184066, 184068, 184070, 184072, - 184074, 184076, 184078, 184080, 184082, 184084, 184086, 184088, 184090, - 184094, 184098, 184106, 184114, 184120, 184127, 184129, 184131, 184133, - 184135, 184137, 184139, 184143, 184150, 184154, 184158, 184162, 184166, - 184170, 184172, 184176, 184180, 184182, 184184, 184186, 184188, 184190, - 184194, 184198, 184202, 184204, 184208, 184212, 184216, 184221, 184223, - 184225, 184229, 184233, 184238, 184246, 184250, 184258, 184260, 184262, - 184264, 184266, 184268, 184270, 184272, 184274, 184278, 184282, 184284, - 184286, 184288, 184290, 184296, 184298, 184304, 184308, 184312, 184317, - 184319, 184321, 184325, 184327, 184329, 184331, 184333, 184337, 184342, - 184347, 184351, 184355, 184357, 184359, 184364, 184369, 184371, 184373, - 184377, 184383, 184389, 184395, 184401, 184407, 184413, 184424, 184435, - 184447, 184458, 184469, 184480, 184491, 184502, 184513, 184524, 184535, - 184546, 184557, 184568, 184579, 184591, 184603, 184615, 184627, 184639, - 184651, 184665, 184679, 184694, 184700, 184706, 184712, 184718, 184724, - 184730, 184736, 184742, 184748, 184754, 184760, 184766, 184773, 184780, - 184787, 184794, 184801, 184808, 184822, 184836, 184851, 184865, 184879, - 184893, 184907, 184921, 184935, 184949, 184963, 184977, 184991, 185005, - 185019, 185034, 185049, 185064, 185079, 185094, 185109, 185123, 185137, - 185152, 185157, 185162, 185168, 185179, 185190, 185202, 185207, 185212, - 185217, 185222, 185227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185232, - 185238, 185244, 185250, 185256, 185262, 185268, 185274, 185279, 185284, - 185289, 185294, 185299, 185304, 0, 0, 185309, 185313, 185317, 185319, - 185321, 0, 0, 0, 185325, 185330, 185334, 185336, 185338, 0, 0, 0, 185340, - 185342, 185344, 185346, 185348, 185352, 185354, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 185358, 185362, 185364, 185366, 185368, 185372, 185374, 185378, - 185380, 185383, 185385, 185389, 185391, 185393, 185394, 185396, 185398, - 185400, 185404, 185406, 185408, 185412, 185414, 185416, 185418, 185420, - 185424, 185428, 185431, 0, 0, 0, 185433, 185435, 185437, 185439, 185441, - 185445, 185447, 185449, 185451, 185453, 185457, 0, 0, 0, 0, 0, 185462, - 185466, 185468, 185472, 185476, 185480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 185485, 185487, 185491, 185493, 185495, 185497, 185499, 185501, 185505, - 185507, 0, 0, 0, 0, 0, 0, 185509, 185513, 185517, 185530, 185537, 185544, - 185550, 185554, 0, 0, 0, 0, 0, 0, 0, 0, 185556, 185566, 185569, 185572, - 185577, 185582, 185591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185595, 185598, - 185601, 185604, 185607, 185610, 185613, 185616, 185619, 185622, 185625, - 185628, 185631, 185634, 185637, 185640, 185643, 185646, 185649, 185652, - 185655, 185658, 185661, 185664, 185667, 185670, 185673, 185676, 185679, - 185682, 185685, 185688, 185691, 185694, 185697, 185700, 185703, 185706, - 185709, 185712, 185715, 185718, 185721, 185724, 185727, 185730, 185733, - 185736, 185739, 185742, 185745, 185748, 185751, 185754, 185757, 185760, - 185763, 185766, 185769, 185772, 185775, 185787, 185798, 185810, 185821, - 185832, 185844, 185855, 185867, 185878, 185889, 185901, 185913, 185924, - 185936, 185947, 185958, 185970, 185981, 185993, 186004, 186015, 186027, - 186039, 186050, 186062, 186073, 186084, 186096, 186107, 186119, 186130, - 186141, 186153, 186165, 186176, 186188, 186199, 186210, 186222, 186233, - 186245, 186256, 186267, 186279, 186291, 186303, 186315, 186327, 186335, - 186343, 186351, 186359, 186365, 186371, 186377, 186383, 186389, 186395, - 186402, 186409, 186416, 186423, 186430, 186437, 186445, 186453, 186461, - 186469, 186477, 186484, 186490, 186496, 186503, 186509, 186516, 186522, - 186528, 186535, 186541, 186548, 186554, 186560, 186566, 186572, 186578, - 186590, 0, 186603, 186616, 186622, 186630, 186635, 186642, 186649, - 186657, 186665, 186673, 186681, 186689, 186697, 186709, 186720, 186731, - 186742, 186757, 186772, 186786, 186800, 186818, 186836, 186855, 186873, - 186891, 186909, 186916, 186924, 186928, 186933, 186939, 186945, 186955, - 186966, 186977, 186987, 186997, 187001, 187005, 187010, 187016, 187022, - 187032, 187038, 187047, 187056, 187065, 187074, 187080, 187084, 187093, - 187101, 187108, 187115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 187120, - 187125, 187129, 187133, 187137, 187141, 187145, 187149, 187153, 187157, - 0, 0, 0, 0, 0, 0, 187161, 187165, 187169, 187173, 187177, 187181, 187185, - 187189, 187193, 187197, 187201, 187205, 187209, 187213, 187217, 187221, - 187225, 187229, 187233, 187237, 187241, 187245, 187249, 187253, 187257, - 187261, 187265, 187269, 187273, 187277, 187281, 187285, 187289, 187293, - 187297, 187301, 187305, 187309, 187313, 187317, 187321, 187325, 187329, - 187333, 187337, 187341, 187345, 187349, 187353, 187357, 187361, 187365, - 187369, 187373, 187377, 187381, 187385, 187389, 187393, 187397, 187401, - 187405, 187409, 187413, 187417, 187421, 187425, 187429, 187433, 187437, - 187441, 187445, 187449, 187453, 187457, 187461, 187465, 187469, 187473, - 187477, 187481, 187485, 187489, 187493, 187497, 187501, 187505, 187509, - 187513, 187517, 187521, 187525, 187529, 187533, 187537, 187541, 187545, - 187549, 187553, 187557, 187561, 187565, 187569, 187573, 187577, 187581, - 187585, 187589, 187593, 187597, 187601, 187605, 187609, 187613, 187617, - 187621, 187625, 187629, 187633, 187637, 187641, 187645, 187649, 187653, - 187657, 187661, 187665, 187669, 187673, 187677, 187681, 187685, 187689, - 187693, 187697, 187701, 187705, 187709, 187713, 187717, 187721, 187725, - 187729, 187733, 187737, 187741, 187745, 187749, 187753, 187757, 187761, - 187765, 187769, 187773, 187777, 187781, 187785, 187789, 187793, 187797, - 187801, 187805, 187809, 187813, 187817, 187821, 187825, 187829, 187833, - 187837, 187841, 187845, 187849, 187853, 187857, 187861, 187865, 187869, - 187873, 187877, 187881, 187885, 187889, 187893, 187897, 187901, 187905, - 187909, 187913, 187917, 187921, 187925, 187929, 187933, 187937, 187941, - 187945, 187949, 187953, 187957, 187961, 187965, 187969, 187973, 187977, - 187981, 187985, 187989, 187993, 187997, 188001, 188005, 188009, 188013, - 188017, 188021, 188025, 188029, 188033, 188037, 188041, 188045, 188049, - 188053, 188057, 188061, 188065, 188069, 188073, 188077, 188081, 188085, - 188089, 188093, 188097, 188101, 188105, 188109, 188113, 188117, 188121, - 188125, 188129, 188133, 188137, 188141, 188145, 188149, 188153, 188157, - 188161, 188165, 188169, 188173, 188177, 188181, 188185, 188189, 188193, - 188197, 188201, 188205, 188209, 188213, 188217, 188221, 188225, 188229, - 188233, 188237, 188241, 188245, 188249, 188253, 188257, 188261, 188265, - 188269, 188273, 188277, 188281, 188285, 188289, 188293, 188297, 188301, - 188305, 188309, 188313, 188317, 188321, 188325, 188329, 188333, 188337, - 188341, 188345, 188349, 188353, 188357, 188361, 188365, 188369, 188373, - 188377, 188381, 188385, 188389, 188393, 188397, 188401, 188405, 188409, - 188413, 188417, 188421, 188425, 188429, 188433, 188437, 188441, 188445, - 188449, 188453, 188457, 188461, 188465, 188469, 188473, 188477, 188481, - 188485, 188489, 188493, 188497, 188501, 188505, 188509, 188513, 188517, - 188521, 188525, 188529, 188533, 188537, 188541, 188545, 188549, 188553, - 188557, 188561, 188565, 188569, 188573, 188577, 188581, 188585, 188589, - 188593, 188597, 188601, 188605, 188609, 188613, 188617, 188621, 188625, - 188629, 188633, 188637, 188641, 188645, 188649, 188653, 188657, 188661, - 188665, 188669, 188673, 188677, 188681, 188685, 188689, 188693, 188697, - 188701, 188705, 188709, 188713, 188717, 188721, 188725, 188729, 188733, - 188737, 188741, 188745, 188749, 188753, 188757, 188761, 188765, 188769, - 188773, 188777, 188781, 188785, 188789, 188793, 188797, 188801, 188805, - 188809, 188813, 188817, 188821, 188825, 188829, 188833, 188837, 188841, - 188845, 188849, 188853, 188857, 188861, 188865, 188869, 188873, 188877, - 188881, 188885, 188889, 188893, 188897, 188901, 188905, 188909, 188913, - 188917, 188921, 188925, 188929, 188933, 188937, 188941, 188945, 188949, - 188953, 188957, 188961, 188965, 188969, 188973, 188977, 188981, 188985, - 188989, 188993, 188997, 189001, 189005, 189009, 189013, 189017, 189021, - 189025, 189029, 189033, 189037, 189041, 189045, 189049, 189053, 189057, - 189061, 189065, 189069, 189073, 189077, 189081, 189085, 189089, 189093, - 189097, 189101, 189105, 189109, 189113, 189117, 189121, 189125, 189129, - 189133, 189137, 189141, 189145, 189149, 189153, 189157, 189161, 189165, - 189169, 189173, 189177, 189181, 189185, 189189, 189193, 189197, 189201, - 189205, 189209, 189213, 189217, 189221, 189225, 189229, 189233, 189237, - 189241, 189245, 189249, 189253, 189257, 189261, 189265, 189269, 189273, - 189277, 189281, 189285, 189289, 189293, 189297, 189301, 189305, 189309, - 189313, 189317, 189321, 189325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 185080, 185090, 185099, 185104, 185113, 185121, 185129, + 185136, 185140, 185145, 185152, 185161, 185172, 185176, 185179, 185183, + 185187, 185191, 185195, 185200, 185204, 185208, 185213, 185217, 185221, + 185227, 185233, 185240, 185244, 185248, 185250, 185260, 185269, 185276, + 185280, 185284, 185294, 185298, 185302, 185306, 185310, 185318, 185327, + 185340, 185351, 185362, 185378, 185387, 185396, 185400, 185402, 185407, + 185409, 185411, 185417, 185421, 185423, 185429, 185431, 185433, 185437, + 185439, 185443, 185445, 185449, 185453, 185458, 185462, 185466, 185468, + 185472, 185474, 185480, 185486, 185492, 185496, 185502, 185506, 185513, + 185515, 185519, 185521, 185523, 185525, 185527, 185529, 185531, 185535, + 185539, 185546, 185550, 185552, 185557, 185559, 185561, 185563, 185565, + 185569, 185573, 185575, 185580, 185585, 185587, 185589, 185591, 185593, + 185598, 185600, 185604, 185608, 185610, 185614, 185616, 185629, 185633, + 185640, 185652, 185664, 185668, 185672, 185674, 185678, 185686, 185693, + 185695, 185699, 185701, 185705, 185709, 185711, 185715, 185717, 185719, + 185723, 185725, 185727, 185729, 185731, 185733, 185737, 185739, 185741, + 185743, 185745, 185747, 185749, 185751, 185755, 185759, 185761, 185763, + 185765, 185767, 185769, 185771, 185773, 185775, 185777, 185779, 185781, + 185783, 185785, 185787, 185789, 185791, 185793, 185795, 185797, 185799, + 185801, 185803, 185805, 185807, 185809, 185811, 185815, 185819, 185827, + 185835, 185841, 185848, 185850, 185852, 185854, 185856, 185858, 185860, + 185864, 185871, 185875, 185879, 185883, 185887, 185891, 185893, 185897, + 185901, 185903, 185905, 185907, 185909, 185911, 185915, 185919, 185923, + 185925, 185929, 185933, 185937, 185942, 185944, 185946, 185950, 185954, + 185959, 185967, 185971, 185979, 185981, 185983, 185985, 185987, 185989, + 185991, 185993, 185995, 185999, 186003, 186005, 186007, 186009, 186011, + 186017, 186019, 186025, 186029, 186033, 186038, 186040, 186042, 186046, + 186048, 186050, 186052, 186054, 186058, 186063, 186068, 186072, 186076, + 186078, 186080, 186085, 186090, 186092, 186094, 186098, 186104, 186110, + 186116, 186122, 186128, 186134, 186145, 186156, 186168, 186179, 186190, + 186201, 186212, 186223, 186234, 186245, 186256, 186267, 186278, 186289, + 186300, 186312, 186324, 186336, 186348, 186360, 186372, 186386, 186400, + 186415, 186421, 186427, 186433, 186439, 186445, 186451, 186457, 186463, + 186469, 186475, 186481, 186487, 186494, 186501, 186508, 186515, 186522, + 186529, 186543, 186557, 186572, 186586, 186600, 186614, 186628, 186642, + 186656, 186670, 186684, 186698, 186712, 186726, 186740, 186755, 186770, + 186785, 186800, 186815, 186830, 186844, 186858, 186873, 186878, 186883, + 186889, 186900, 186911, 186923, 186928, 186933, 186938, 186943, 186948, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 186953, 186959, 186965, 186971, + 186977, 186983, 186989, 186995, 187000, 187005, 187010, 187015, 187020, + 187025, 0, 0, 187030, 187034, 187038, 187040, 187042, 187046, 187051, + 187055, 187059, 187064, 187068, 187070, 187072, 0, 0, 0, 187074, 187076, + 187078, 187080, 187082, 187086, 187088, 187092, 187094, 0, 0, 0, 0, 0, 0, + 0, 187096, 187100, 187102, 187104, 187106, 187110, 187112, 187116, + 187118, 187121, 187123, 187127, 187129, 187131, 187132, 187134, 187136, + 187138, 187142, 187144, 187146, 187150, 187152, 187154, 187156, 187158, + 187162, 187166, 187169, 187171, 187177, 187181, 187183, 187185, 187187, + 187189, 187191, 187195, 187197, 187199, 187201, 187203, 187207, 187212, + 187214, 187216, 0, 187218, 187220, 187224, 187226, 187230, 187234, + 187238, 0, 0, 0, 0, 0, 0, 0, 0, 187243, 187245, 187247, 187249, 187253, + 187255, 187257, 187259, 187261, 187263, 187267, 187269, 187271, 187275, + 0, 0, 0, 0, 187279, 187283, 187287, 187300, 187307, 187314, 187320, + 187324, 187326, 0, 0, 0, 0, 0, 0, 0, 187330, 187340, 187343, 187346, + 187351, 187356, 187365, 187369, 187374, 0, 0, 0, 0, 0, 0, 0, 187379, + 187382, 187385, 187388, 187391, 187394, 187397, 187400, 187403, 187406, + 187409, 187412, 187415, 187418, 187421, 187424, 187427, 187430, 187433, + 187436, 187439, 187442, 187445, 187448, 187451, 187454, 187457, 187460, + 187463, 187466, 187469, 187472, 187475, 187478, 187481, 187484, 187487, + 187490, 187493, 187496, 187499, 187502, 187505, 187508, 187511, 187514, + 187517, 187520, 187523, 187526, 187529, 187532, 187535, 187538, 187541, + 187544, 187547, 187550, 187553, 187556, 187559, 187571, 187582, 187594, + 187605, 187616, 187628, 187639, 187651, 187662, 187673, 187685, 187697, + 187708, 187720, 187731, 187742, 187754, 187765, 187777, 187788, 187799, + 187811, 187823, 187834, 187846, 187857, 187868, 187880, 187891, 187903, + 187914, 187925, 187937, 187949, 187960, 187972, 187983, 187994, 188006, + 188017, 188029, 188040, 188051, 188063, 188075, 188087, 188099, 188111, + 188119, 188127, 188135, 188143, 188149, 188155, 188161, 188167, 188173, + 188179, 188186, 188193, 188200, 188207, 188214, 188221, 188229, 188237, + 188245, 188253, 188261, 188268, 188274, 188280, 188287, 188293, 188300, + 188306, 188312, 188319, 188325, 188332, 188338, 188344, 188350, 188356, + 188362, 188374, 0, 188387, 188400, 188406, 188414, 188419, 188426, + 188433, 188441, 188449, 188457, 188465, 188473, 188481, 188493, 188504, + 188515, 188526, 188541, 188556, 188570, 188584, 188602, 188620, 188639, + 188657, 188675, 188693, 188700, 188708, 188712, 188717, 188723, 188729, + 188739, 188750, 188761, 188771, 188781, 188785, 188789, 188794, 188800, + 188806, 188816, 188822, 188831, 188840, 188849, 188858, 188864, 188868, + 188877, 188885, 188892, 188899, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 188904, 188909, 188913, 188917, 188921, 188925, 188929, 188933, 188937, + 188941, 0, 0, 0, 0, 0, 0, 188945, 188949, 188953, 188957, 188961, 188965, + 188969, 188973, 188977, 188981, 188985, 188989, 188993, 188997, 189001, + 189005, 189009, 189013, 189017, 189021, 189025, 189029, 189033, 189037, + 189041, 189045, 189049, 189053, 189057, 189061, 189065, 189069, 189073, + 189077, 189081, 189085, 189089, 189093, 189097, 189101, 189105, 189109, + 189113, 189117, 189121, 189125, 189129, 189133, 189137, 189141, 189145, + 189149, 189153, 189157, 189161, 189165, 189169, 189173, 189177, 189181, + 189185, 189189, 189193, 189197, 189201, 189205, 189209, 189213, 189217, + 189221, 189225, 189229, 189233, 189237, 189241, 189245, 189249, 189253, + 189257, 189261, 189265, 189269, 189273, 189277, 189281, 189285, 189289, + 189293, 189297, 189301, 189305, 189309, 189313, 189317, 189321, 189325, + 189329, 189333, 189337, 189341, 189345, 189349, 189353, 189357, 189361, + 189365, 189369, 189373, 189377, 189381, 189385, 189389, 189393, 189397, + 189401, 189405, 189409, 189413, 189417, 189421, 189425, 189429, 189433, + 189437, 189441, 189445, 189449, 189453, 189457, 189461, 189465, 189469, + 189473, 189477, 189481, 189485, 189489, 189493, 189497, 189501, 189505, + 189509, 189513, 189517, 189521, 189525, 189529, 189533, 189537, 189541, + 189545, 189549, 189553, 189557, 189561, 189565, 189569, 189573, 189577, + 189581, 189585, 189589, 189593, 189597, 189601, 189605, 189609, 189613, + 189617, 189621, 189625, 189629, 189633, 189637, 189641, 189645, 189649, + 189653, 189657, 189661, 189665, 189669, 189673, 189677, 189681, 189685, + 189689, 189693, 189697, 189701, 189705, 189709, 189713, 189717, 189721, + 189725, 189729, 189733, 189737, 189741, 189745, 189749, 189753, 189757, + 189761, 189765, 189769, 189773, 189777, 189781, 189785, 189789, 189793, + 189797, 189801, 189805, 189809, 189813, 189817, 189821, 189825, 189829, + 189833, 189837, 189841, 189845, 189849, 189853, 189857, 189861, 189865, + 189869, 189873, 189877, 189881, 189885, 189889, 189893, 189897, 189901, + 189905, 189909, 189913, 189917, 189921, 189925, 189929, 189933, 189937, + 189941, 189945, 189949, 189953, 189957, 189961, 189965, 189969, 189973, + 189977, 189981, 189985, 189989, 189993, 189997, 190001, 190005, 190009, + 190013, 190017, 190021, 190025, 190029, 190033, 190037, 190041, 190045, + 190049, 190053, 190057, 190061, 190065, 190069, 190073, 190077, 190081, + 190085, 190089, 190093, 190097, 190101, 190105, 190109, 190113, 190117, + 190121, 190125, 190129, 190133, 190137, 190141, 190145, 190149, 190153, + 190157, 190161, 190165, 190169, 190173, 190177, 190181, 190185, 190189, + 190193, 190197, 190201, 190205, 190209, 190213, 190217, 190221, 190225, + 190229, 190233, 190237, 190241, 190245, 190249, 190253, 190257, 190261, + 190265, 190269, 190273, 190277, 190281, 190285, 190289, 190293, 190297, + 190301, 190305, 190309, 190313, 190317, 190321, 190325, 190329, 190333, + 190337, 190341, 190345, 190349, 190353, 190357, 190361, 190365, 190369, + 190373, 190377, 190381, 190385, 190389, 190393, 190397, 190401, 190405, + 190409, 190413, 190417, 190421, 190425, 190429, 190433, 190437, 190441, + 190445, 190449, 190453, 190457, 190461, 190465, 190469, 190473, 190477, + 190481, 190485, 190489, 190493, 190497, 190501, 190505, 190509, 190513, + 190517, 190521, 190525, 190529, 190533, 190537, 190541, 190545, 190549, + 190553, 190557, 190561, 190565, 190569, 190573, 190577, 190581, 190585, + 190589, 190593, 190597, 190601, 190605, 190609, 190613, 190617, 190621, + 190625, 190629, 190633, 190637, 190641, 190645, 190649, 190653, 190657, + 190661, 190665, 190669, 190673, 190677, 190681, 190685, 190689, 190693, + 190697, 190701, 190705, 190709, 190713, 190717, 190721, 190725, 190729, + 190733, 190737, 190741, 190745, 190749, 190753, 190757, 190761, 190765, + 190769, 190773, 190777, 190781, 190785, 190789, 190793, 190797, 190801, + 190805, 190809, 190813, 190817, 190821, 190825, 190829, 190833, 190837, + 190841, 190845, 190849, 190853, 190857, 190861, 190865, 190869, 190873, + 190877, 190881, 190885, 190889, 190893, 190897, 190901, 190905, 190909, + 190913, 190917, 190921, 190925, 190929, 190933, 190937, 190941, 190945, + 190949, 190953, 190957, 190961, 190965, 190969, 190973, 190977, 190981, + 190985, 190989, 190993, 190997, 191001, 191005, 191009, 191013, 191017, + 191021, 191025, 191029, 191033, 191037, 191041, 191045, 191049, 191053, + 191057, 191061, 191065, 191069, 191073, 191077, 191081, 191085, 191089, + 191093, 191097, 191101, 191105, 191109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 189329, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 189333, - 189337, 189342, 189347, 189351, 189356, 189361, 189365, 189369, 189374, - 189379, 189383, 189387, 189391, 189395, 189401, 189405, 189410, 189414, - 189418, 189422, 189426, 189430, 189434, 189438, 189442, 189446, 189450, - 189454, 189459, 189464, 189469, 189474, 189480, 189486, 189493, 189500, - 189507, 189513, 189520, 189527, 189534, 189540, 189547, 189554, 189560, - 189567, 189574, 189580, 189587, 189594, 189600, 189607, 189614, 189620, - 189627, 189634, 189641, 189648, 189655, 189661, 189667, 189673, 189679, - 189684, 189690, 189696, 189703, 189710, 189717, 189723, 189730, 189737, - 189744, 189750, 189757, 189764, 189770, 189777, 189784, 189790, 189797, - 189804, 189810, 189817, 189824, 189830, 189837, 189844, 189851, 189858, - 189865, 189872, 189877, 189884, 189888, 189892, 189895, 189898, 189901, - 189904, 189907, 189910, 189913, 189916, 189919, 189922, 189925, 189928, - 189931, 189934, 189937, 189940, 189943, 189946, 189949, 189952, 189955, - 189958, 189961, 189964, 189967, 189970, 189973, 189976, 189979, 189982, - 189985, 189988, 189991, 189994, 189997, 190000, 190003, 190006, 190009, - 190012, 190015, 190018, 190021, 190024, 190027, 190030, 190033, 190036, - 190039, 190042, 190045, 190048, 190051, 190054, 190057, 190060, 190063, - 190066, 190069, 190072, 190075, 190078, 190081, 190084, 190087, 190090, - 190093, 190096, 190099, 190102, 190105, 190108, 190111, 190114, 190117, - 190120, 190123, 190126, 190129, 190132, 190135, 190138, 190141, 190144, - 190147, 190150, 190153, 190156, 190159, 190162, 190165, 190168, 190171, - 190174, 190177, 190180, 190183, 190186, 190189, 190192, 190195, 190198, - 190201, 190204, 190207, 190210, 190213, 190216, 190219, 190222, 190225, - 190228, 190231, 190234, 190237, 190240, 190243, 190246, 190249, 190252, - 190255, 190258, 190261, 190264, 190267, 190270, 190273, 190276, 190279, - 190282, 190285, 190288, 190291, 190294, 190297, 190300, 190303, 190306, - 190309, 190312, 190315, 190318, 190321, 190324, 190327, 190330, 190333, - 190336, 190339, 190342, 190345, 190348, 190351, 190354, 190357, 190360, - 190363, 190366, 190369, 190372, 190375, 190378, 190381, 190384, 190387, - 190390, 190393, 190396, 190399, 190402, 190405, 190408, 190411, 190414, - 190417, 190420, 190423, 190426, 190429, 190432, 190435, 190438, 190441, - 190444, 190447, 190450, 190453, 190456, 190459, 190462, 190465, 190468, - 190471, 190474, 190477, 190480, 190483, 190486, 190489, 190492, 190495, - 190498, 190501, 190504, 190507, 190510, 190513, 190516, 190519, 190522, - 190525, 190528, 190531, 190534, 190537, 190540, 190543, 190546, 190549, - 190552, 190555, 190558, 190561, 190564, 190567, 190570, 190573, 190576, - 190579, 190582, 190585, 190588, 190591, 190594, 190597, 190600, 190603, - 190606, 190609, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190612, - 190614, 190616, 190621, 190623, 190628, 190630, 190635, 190637, 190642, - 190644, 190646, 190648, 190650, 190652, 190654, 190656, 190658, 190660, - 190664, 190668, 190670, 190672, 190676, 190680, 190685, 190687, 190689, - 190691, 190695, 190698, 190700, 190704, 190706, 190710, 190712, 190716, - 190719, 190721, 190725, 190729, 190731, 190737, 190739, 190744, 190746, - 190751, 190753, 190758, 190760, 190765, 190767, 190771, 190773, 190777, - 190779, 190786, 190788, 190790, 190792, 190797, 190799, 190801, 190803, - 190805, 190807, 190812, 190816, 190818, 190823, 190827, 190829, 190834, - 190838, 190840, 190845, 190849, 190851, 190853, 190855, 190857, 190861, - 190863, 190868, 190870, 190876, 190878, 190884, 190886, 190888, 190890, - 190894, 190896, 190903, 190905, 190912, 190914, 190920, 190926, 190928, - 190935, 190942, 190944, 190950, 190955, 190957, 190963, 190969, 190971, - 190977, 190983, 190985, 190991, 190995, 190997, 191002, 191004, 191006, - 191011, 191013, 191015, 191021, 191023, 191028, 191032, 191034, 191039, - 191043, 191045, 191051, 191053, 191057, 191059, 191063, 191065, 191072, - 191079, 191081, 191088, 191095, 191097, 191102, 191104, 191112, 191114, - 191120, 191122, 191128, 191130, 191134, 191136, 191142, 191144, 191148, - 191150, 191156, 191158, 191160, 191162, 191167, 191172, 191174, 191176, - 191186, 191191, 191198, 191205, 191210, 191215, 191227, 191231, 191235, - 191239, 191243, 191245, 191247, 191249, 191251, 191253, 191255, 191257, - 191259, 191261, 191263, 191265, 191267, 191269, 191271, 191273, 191275, - 191277, 191279, 191281, 191283, 191285, 191287, 191293, 191300, 191305, - 191313, 191321, 191326, 191332, 191334, 191336, 191338, 191340, 191342, - 191344, 191346, 191348, 191350, 191352, 191354, 191356, 191358, 191360, - 191362, 191364, 191376, 191381, 191383, 191385, 191391, 191403, 191409, - 191415, 191421, 191427, 191431, 191442, 191444, 191446, 191448, 191450, - 191452, 191454, 191456, 191458, 191460, 191462, 191464, 191466, 191468, - 191470, 191472, 191474, 191476, 191478, 191480, 191482, 191484, 191486, - 191488, 191490, 191492, 191494, 191496, 191498, 191500, 191502, 191504, - 191506, 191508, 191510, 191512, 191514, 191516, 191518, 191520, 191522, - 191524, 191526, 191528, 191530, 191532, 191534, 191536, 191538, 191540, - 191542, 191544, 191546, 191548, 191550, 191552, 191554, 191556, 191558, - 191560, 191562, 191564, 191566, 191568, 191570, 191572, 191574, 191576, - 191578, 191580, 191582, 191584, 191586, 191588, 191590, 191592, 191594, - 191596, 191598, 191600, 191602, 191604, 191606, 191608, 191610, 191612, - 191614, 191616, 191618, 191620, 191622, 191624, 191626, 191628, 191630, - 191632, 191634, 191636, 191638, 191640, 191642, 191644, 191646, 191648, - 191650, 191652, 191654, 191656, 191658, 191660, 191662, 191664, 191666, - 191668, 191670, 191672, 191674, 191676, 191678, 191680, 191682, 191684, - 191686, 191688, 191690, 191692, 191694, 191696, 191698, 191700, 191702, - 191704, 191706, 191708, 191710, 191712, 191714, 191716, 191718, 191720, - 191722, 191724, 191726, 191728, 191730, 191732, 191734, 191736, 191738, - 191740, 191742, 191744, 191746, 191748, 191750, 191752, 191754, 191756, - 191758, 191760, 191762, 191764, 191766, 191768, 191770, 191772, 191774, - 191776, 191778, 191780, 191782, 191784, 191786, 191788, 191790, 191792, - 191794, 191796, 191798, 191800, 191802, 191804, 191806, 191808, 191810, - 191812, 191814, 191816, 191818, 191820, 191822, 191824, 191826, 191828, - 191830, 191832, 191834, 191836, 191838, 191840, 191842, 191844, 191846, - 191848, 191850, 191852, 191854, 191856, 191858, 191860, 191862, 191864, - 191866, 191868, 191870, 191872, 191874, 191876, 191878, 191880, 191882, - 191884, 191886, 191888, 191890, 191892, 191894, 191896, 191898, 191900, - 191902, 191904, 191906, 191908, 191910, 191912, 191914, 191916, 191918, - 191920, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191922, - 191926, 191930, 191935, 191939, 191943, 191947, 191951, 191955, 191959, - 191963, 191967, 191971, 191981, 191991, 192002, 192013, 192023, 192033, - 192043, 192053, 192067, 192081, 192095, 192109, 192118, 192127, 192140, - 192153, 192166, 192179, 192189, 192199, 192210, 192221, 192232, 192243, - 192254, 192263, 192273, 192283, 192293, 192303, 192314, 192325, 192336, - 192347, 192358, 192369, 192380, 192391, 192402, 192413, 192424, 192438, - 192449, 192463, 192471, 192482, 192490, 192498, 192506, 192514, 192522, - 192530, 192540, 192550, 192560, 192570, 192580, 192590, 192600, 192610, - 192618, 192627, 192636, 192645, 192654, 192662, 192670, 192680, 192690, - 192701, 192712, 192724, 192735, 192745, 192756, 192766, 192777, 192785, - 192792, 192799, 192806, 192813, 192820, 192827, 192834, 192841, 192849, - 192857, 192865, 192873, 192881, 192889, 192897, 192905, 192913, 192921, - 192929, 192934, 192938, 192942, 192946, 192950, 192954, 192958, 192962, - 192966, 192970, 192974, 192978, 192981, 192984, 192988, 192992, 192996, - 193000, 193004, 193008, 193012, 193016, 193020, 193024, 193028, 193032, - 193036, 193040, 193044, 193048, 193052, 193056, 193060, 193064, 193068, - 193072, 193076, 193080, 193084, 193088, 193092, 193096, 193100, 193104, - 193108, 193112, 193116, 193120, 193124, 193128, 193132, 193136, 193140, - 193144, 193148, 193152, 193156, 193160, 193164, 193168, 193172, 193176, - 193180, 193184, 193188, 193192, 193196, 193200, 193204, 193208, 193212, - 193216, 193220, 193224, 193228, 193232, 193236, 193240, 193244, 193248, - 193252, 193256, 193260, 193264, 193268, 193272, 193276, 193280, 193284, - 193288, 193292, 193296, 193300, 193304, 193308, 193312, 193316, 193320, - 193324, 193327, 193331, 193335, 193339, 193343, 193347, 193351, 193355, - 193359, 193363, 193367, 193371, 193375, 193379, 193383, 193387, 193391, - 193395, 193399, 193403, 193407, 193411, 193415, 193419, 193423, 193427, - 193431, 193435, 193439, 193443, 193447, 193451, 193455, 193459, 193463, - 193467, 193471, 193475, 193479, 193483, 193487, 193491, 193495, 193499, - 193503, 193507, 193511, 193515, 193519, 193523, 193527, 193531, 193535, - 193539, 193543, 193547, 193551, 193555, 193559, 193563, 193567, 193571, - 193575, 193579, 193583, 193587, 193591, 193595, 193599, 193603, 193607, - 193611, 193615, 193619, 193623, 193627, 193631, 193635, 193639, 193643, - 193647, 193651, 193655, 193659, 193663, 193667, 193671, 193675, 193679, - 193683, 193687, 193691, 193695, 193699, 193703, 193707, 193711, 193715, - 193719, 193723, 193727, 193731, 193735, 193739, 193743, 193747, 193751, - 193755, 193759, 193763, 193767, 193771, 193775, 193779, 193783, 193787, - 193791, 193795, 193799, 193803, 193807, 193811, 193815, 193819, 193823, - 193827, 193831, 193835, 193839, 193843, 193847, 193851, 193855, 193859, - 193863, 193867, 193871, 193875, 193879, 193883, 193887, 193891, 193895, - 193899, 193903, 193907, 193911, 193915, 193919, 193923, 193927, 193931, - 193935, 193939, 193943, 193947, 193951, 193955, 193959, 193963, 193967, - 193971, 193975, 193979, 193983, 193987, 193991, 193995, 193999, 194003, - 194007, 194011, 194015, 194019, 194023, 194027, 194031, 194035, 194039, - 194043, 194047, 194051, 194055, 194059, 194063, 194067, 194071, 194075, - 194079, 194083, 194087, 194091, 194096, 194101, 194106, 194110, 194116, - 194123, 194130, 194137, 194144, 194151, 194158, 194165, 194172, 194179, - 194186, 194193, 194200, 194207, 194213, 194220, 194227, 194233, 194240, - 194247, 194254, 194261, 194268, 194275, 194282, 194289, 194296, 194303, - 194310, 194317, 194324, 194330, 194336, 194342, 194349, 194358, 194367, - 194376, 194385, 194390, 194395, 194402, 194409, 194416, 194423, 194430, - 194436, 194442, 194448, 194454, 194460, 194466, 194472, 194477, 194483, - 194493, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191113, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 191117, 191121, 191126, 191131, 191135, 191140, 191145, 191149, 191153, + 191158, 191163, 191167, 191171, 191175, 191179, 191185, 191189, 191194, + 191198, 191202, 191206, 191210, 191214, 191218, 191222, 191226, 191230, + 191234, 191238, 191243, 191248, 191253, 191258, 191264, 191270, 191277, + 191284, 191291, 191297, 191304, 191311, 191318, 191324, 191331, 191338, + 191344, 191351, 191358, 191364, 191371, 191378, 191384, 191391, 191398, + 191404, 191411, 191418, 191425, 191432, 191439, 191445, 191451, 191457, + 191463, 191468, 191474, 191480, 191487, 191494, 191501, 191507, 191514, + 191521, 191528, 191534, 191541, 191548, 191554, 191561, 191568, 191574, + 191581, 191588, 191594, 191601, 191608, 191614, 191621, 191628, 191635, + 191642, 191649, 191656, 191661, 191668, 191672, 191676, 191679, 191682, + 191685, 191688, 191691, 191694, 191697, 191700, 191703, 191706, 191709, + 191712, 191715, 191718, 191721, 191724, 191727, 191730, 191733, 191736, + 191739, 191742, 191745, 191748, 191751, 191754, 191757, 191760, 191763, + 191766, 191769, 191772, 191775, 191778, 191781, 191784, 191787, 191790, + 191793, 191796, 191799, 191802, 191805, 191808, 191811, 191814, 191817, + 191820, 191823, 191826, 191829, 191832, 191835, 191838, 191841, 191844, + 191847, 191850, 191853, 191856, 191859, 191862, 191865, 191868, 191871, + 191874, 191877, 191880, 191883, 191886, 191889, 191892, 191895, 191898, + 191901, 191904, 191907, 191910, 191913, 191916, 191919, 191922, 191925, + 191928, 191931, 191934, 191937, 191940, 191943, 191946, 191949, 191952, + 191955, 191958, 191961, 191964, 191967, 191970, 191973, 191976, 191979, + 191982, 191985, 191988, 191991, 191994, 191997, 192000, 192003, 192006, + 192009, 192012, 192015, 192018, 192021, 192024, 192027, 192030, 192033, + 192036, 192039, 192042, 192045, 192048, 192051, 192054, 192057, 192060, + 192063, 192066, 192069, 192072, 192075, 192078, 192081, 192084, 192087, + 192090, 192093, 192096, 192099, 192102, 192105, 192108, 192111, 192114, + 192117, 192120, 192123, 192126, 192129, 192132, 192135, 192138, 192141, + 192144, 192147, 192150, 192153, 192156, 192159, 192162, 192165, 192168, + 192171, 192174, 192177, 192180, 192183, 192186, 192189, 192192, 192195, + 192198, 192201, 192204, 192207, 192210, 192213, 192216, 192219, 192222, + 192225, 192228, 192231, 192234, 192237, 192240, 192243, 192246, 192249, + 192252, 192255, 192258, 192261, 192264, 192267, 192270, 192273, 192276, + 192279, 192282, 192285, 192288, 192291, 192294, 192297, 192300, 192303, + 192306, 192309, 192312, 192315, 192318, 192321, 192324, 192327, 192330, + 192333, 192336, 192339, 192342, 192345, 192348, 192351, 192354, 192357, + 192360, 192363, 192366, 192369, 192372, 192375, 192378, 192381, 192384, + 192387, 192390, 192393, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 192396, 192398, 192400, 192405, 192407, 192412, 192414, 192419, 192421, + 192426, 192428, 192430, 192432, 192434, 192436, 192438, 192440, 192442, + 192444, 192448, 192452, 192454, 192456, 192460, 192464, 192469, 192471, + 192473, 192475, 192479, 192482, 192484, 192488, 192490, 192494, 192496, + 192500, 192503, 192505, 192509, 192513, 192515, 192521, 192523, 192528, + 192530, 192535, 192537, 192542, 192544, 192549, 192551, 192555, 192557, + 192561, 192563, 192570, 192572, 192574, 192576, 192581, 192583, 192585, + 192587, 192589, 192591, 192593, 192598, 192602, 192604, 192609, 192613, + 192615, 192620, 192624, 192626, 192631, 192635, 192637, 192639, 192641, + 192643, 192647, 192649, 192654, 192656, 192662, 192664, 192670, 192672, + 192674, 192676, 192680, 192682, 192689, 192691, 192698, 192700, 192706, + 192712, 192714, 192721, 192728, 192730, 192736, 192741, 192743, 192749, + 192755, 192757, 192763, 192769, 192771, 192777, 192781, 192783, 192788, + 192790, 192792, 192797, 192799, 192801, 192807, 192809, 192814, 192818, + 192820, 192825, 192829, 192831, 192837, 192839, 192843, 192845, 192849, + 192851, 192858, 192865, 192867, 192874, 192881, 192883, 192888, 192890, + 192898, 192900, 192906, 192908, 192914, 192916, 192920, 192922, 192928, + 192930, 192934, 192936, 192942, 192944, 192946, 192948, 192953, 192958, + 192960, 192969, 192971, 192981, 192986, 192993, 193000, 193005, 193010, + 193022, 193026, 193030, 193034, 193038, 193040, 193042, 193044, 193046, + 193048, 193054, 193056, 193058, 193060, 193062, 193064, 193066, 193068, + 193070, 193072, 193074, 193076, 193078, 193080, 193082, 193084, 193086, + 193088, 193094, 193101, 193106, 193114, 193122, 193127, 193133, 193135, + 193137, 193139, 193141, 193143, 193145, 193147, 193149, 193151, 193153, + 193155, 193157, 193159, 193161, 193163, 193165, 193177, 193182, 193184, + 193186, 193192, 193204, 193210, 193216, 193222, 193228, 193232, 193243, + 193245, 193247, 193249, 193251, 193253, 193255, 193257, 193259, 193261, + 193263, 193265, 193267, 193269, 193271, 193273, 193275, 193277, 193279, + 193281, 193283, 193285, 193287, 193289, 193291, 193293, 193295, 193297, + 193299, 193301, 193303, 193305, 193307, 193309, 193311, 193313, 193315, + 193317, 193319, 193321, 193323, 193325, 193327, 193329, 193331, 193333, + 193335, 193337, 193339, 193341, 193343, 193345, 193347, 193349, 193351, + 193353, 193355, 193357, 193359, 193361, 193363, 193365, 193367, 193369, + 193371, 193373, 193375, 193377, 193379, 193381, 193383, 193385, 193387, + 193389, 193391, 193393, 193395, 193397, 193399, 193401, 193403, 193405, + 193407, 193409, 193411, 193413, 193415, 193417, 193419, 193421, 193423, + 193425, 193427, 193429, 193431, 193433, 193435, 193437, 193439, 193441, + 193443, 193445, 193447, 193449, 193451, 193453, 193455, 193457, 193459, + 193461, 193463, 193465, 193467, 193469, 193471, 193473, 193475, 193477, + 193479, 193481, 193483, 193485, 193487, 193489, 193491, 193493, 193495, + 193497, 193499, 193501, 193503, 193505, 193507, 193509, 193511, 193513, + 193515, 193517, 193519, 193521, 193523, 193525, 193527, 193529, 193531, + 193533, 193535, 193537, 193539, 193541, 193543, 193545, 193547, 193549, + 193551, 193553, 193555, 193557, 193559, 193561, 193563, 193565, 193567, + 193569, 193571, 193573, 193575, 193577, 193579, 193581, 193583, 193585, + 193587, 193589, 193591, 193593, 193595, 193597, 193599, 193601, 193603, + 193605, 193607, 193609, 193611, 193613, 193615, 193617, 193619, 193621, + 193623, 193625, 193627, 193629, 193631, 193633, 193635, 193637, 193639, + 193641, 193643, 193645, 193647, 193649, 193651, 193653, 193655, 193657, + 193659, 193661, 193663, 193665, 193667, 193669, 193671, 193673, 193675, + 193677, 193679, 193681, 193683, 193685, 193687, 193689, 193691, 193693, + 193695, 193697, 193699, 193701, 193703, 193705, 193707, 193709, 193711, + 193713, 193715, 193717, 193719, 193721, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 193723, 193727, 193731, 193736, 193740, 193744, 193748, + 193752, 193756, 193760, 193764, 193768, 193772, 193782, 193792, 193803, + 193814, 193824, 193834, 193844, 193854, 193868, 193882, 193896, 193910, + 193919, 193928, 193941, 193954, 193967, 193980, 193990, 194000, 194011, + 194022, 194033, 194044, 194055, 194064, 194074, 194084, 194094, 194104, + 194115, 194126, 194137, 194148, 194159, 194170, 194181, 194192, 194203, + 194214, 194225, 194239, 194250, 194264, 194272, 194283, 194291, 194299, + 194307, 194315, 194323, 194331, 194341, 194351, 194361, 194371, 194381, + 194391, 194401, 194411, 194419, 194428, 194437, 194446, 194455, 194463, + 194471, 194481, 194491, 194502, 194513, 194525, 194536, 194546, 194557, + 194567, 194578, 194586, 194593, 194600, 194607, 194614, 194621, 194628, + 194635, 194642, 194650, 194658, 194666, 194674, 194682, 194690, 194698, + 194706, 194714, 194722, 194730, 194735, 194739, 194743, 194747, 194751, + 194755, 194759, 194763, 194767, 194771, 194775, 194779, 194782, 194785, + 194789, 194793, 194797, 194801, 194805, 194809, 194813, 194817, 194821, + 194825, 194829, 194833, 194837, 194841, 194845, 194849, 194853, 194857, + 194861, 194865, 194869, 194873, 194877, 194881, 194885, 194889, 194893, + 194897, 194901, 194905, 194909, 194913, 194917, 194921, 194925, 194929, + 194933, 194937, 194941, 194945, 194949, 194953, 194957, 194961, 194965, + 194969, 194973, 194977, 194981, 194985, 194989, 194993, 194997, 195001, + 195005, 195009, 195013, 195017, 195021, 195025, 195029, 195033, 195037, + 195041, 195045, 195049, 195053, 195057, 195061, 195065, 195069, 195073, + 195077, 195081, 195085, 195089, 195093, 195097, 195101, 195105, 195109, + 195113, 195117, 195121, 195125, 195128, 195132, 195136, 195140, 195144, + 195148, 195152, 195156, 195160, 195164, 195168, 195172, 195176, 195180, + 195184, 195188, 195192, 195196, 195200, 195204, 195208, 195212, 195216, + 195220, 195224, 195228, 195232, 195236, 195240, 195244, 195248, 195252, + 195256, 195260, 195264, 195268, 195272, 195276, 195280, 195284, 195288, + 195292, 195296, 195300, 195304, 195308, 195312, 195316, 195320, 195324, + 195328, 195332, 195336, 195340, 195344, 195348, 195352, 195356, 195360, + 195364, 195368, 195372, 195376, 195380, 195384, 195388, 195392, 195396, + 195400, 195404, 195408, 195412, 195416, 195420, 195424, 195428, 195432, + 195436, 195440, 195444, 195448, 195452, 195456, 195460, 195464, 195468, + 195472, 195476, 195480, 195484, 195488, 195492, 195496, 195500, 195504, + 195508, 195512, 195516, 195520, 195524, 195528, 195532, 195536, 195540, + 195544, 195548, 195552, 195556, 195560, 195564, 195568, 195572, 195576, + 195580, 195584, 195588, 195592, 195596, 195600, 195604, 195608, 195612, + 195616, 195620, 195624, 195628, 195632, 195636, 195640, 195644, 195648, + 195652, 195656, 195660, 195664, 195668, 195672, 195676, 195680, 195684, + 195688, 195692, 195696, 195700, 195704, 195708, 195712, 195716, 195720, + 195724, 195728, 195732, 195736, 195740, 195744, 195748, 195752, 195756, + 195760, 195764, 195768, 195772, 195776, 195780, 195784, 195788, 195792, + 195796, 195800, 195804, 195808, 195812, 195816, 195820, 195824, 195828, + 195832, 195836, 195840, 195844, 195848, 195852, 195856, 195860, 195864, + 195868, 195872, 195876, 195880, 195884, 195888, 195892, 195897, 195902, + 195907, 195911, 195917, 195924, 195931, 195938, 195945, 195952, 195959, + 195966, 195973, 195980, 195987, 195994, 196001, 196008, 196014, 196021, + 196028, 196034, 196041, 196048, 196055, 196062, 196069, 196076, 196083, + 196090, 196097, 196104, 196111, 196118, 196125, 196131, 196137, 196143, + 196150, 196159, 196168, 196177, 196186, 196191, 196196, 196203, 196210, + 196217, 196224, 196231, 196237, 196243, 196249, 196255, 196261, 196267, + 196273, 196278, 196284, 196294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /* name->code dictionary */ @@ -25185,7 +25364,7 @@ static const unsigned int code_hash[] = { 74224, 4851, 0, 0, 0, 0, 7929, 0, 0, 0, 0, 127931, 0, 42833, 983091, 12064, 110752, 129548, 194597, 69850, 65842, 0, 0, 0, 78159, 68476, 72392, 1373, 0, 0, 5816, 0, 0, 4231, 0, 0, 4233, 4234, 4232, 68885, - 70351, 0, 7404, 72393, 0, 0, 0, 0, 0, 41601, 8874, 0, 0, 0, 0, 0, 0, + 70351, 0, 7404, 72393, 0, 0, 0, 0, 0, 41601, 8874, 0, 0, 0, 128498, 0, 0, 41603, 9784, 0, 9188, 41600, 0, 0, 0, 0, 3535, 0, 0, 0, 66797, 0, 74491, 0, 3404, 100419, 0, 72411, 1759, 100417, 0, 100418, 69972, 11240, 121038, 100416, 127764, 0, 0, 0, 0, 0, 69970, 0, 0, 9834, 43249, 2234, 983891, 0, @@ -25197,102 +25376,103 @@ static const unsigned int code_hash[] = { 5194, 11657, 128353, 0, 0, 0, 0, 0, 120766, 100525, 0, 0, 74350, 0, 10682, 110820, 10602, 800, 70044, 118883, 0, 0, 64930, 118940, 67853, 72001, 0, 762, 120485, 0, 0, 0, 10906, 1353, 6960, 0, 0, 5828, 8724, 0, - 0, 118548, 0, 0, 7080, 0, 128806, 0, 0, 72388, 0, 11859, 0, 0, 68878, 0, - 0, 0, 7240, 0, 556, 0, 118544, 0, 0, 0, 72397, 0, 0, 0, 0, 0, 0, 0, 0, - 72986, 0, 0, 43931, 0, 11093, 0, 0, 125016, 7341, 66801, 68527, 0, 1874, - 0, 0, 129314, 0, 0, 0, 0, 0, 0, 7688, 0, 0, 9036, 0, 0, 66389, 0, 121347, - 0, 0, 10100, 0, 2725, 0, 0, 43981, 42128, 0, 0, 68146, 0, 0, 0, 0, 71349, - 7859, 1945, 0, 0, 0, 65918, 7188, 9992, 0, 7389, 127008, 71341, 0, 0, 0, - 528, 129681, 44017, 11429, 71347, 0, 0, 120864, 0, 0, 0, 11530, 73102, - 6188, 0, 0, 68208, 1823, 0, 0, 92928, 0, 64843, 7233, 92929, 0, 0, 6639, - 0, 0, 123149, 0, 1176, 0, 0, 8276, 128667, 0, 0, 68892, 42931, 0, 0, 0, - 0, 0, 0, 0, 5388, 0, 0, 0, 11310, 0, 123607, 0, 68888, 4199, 119264, 0, - 119020, 0, 0, 9560, 0, 0, 43869, 0, 0, 0, 83172, 0, 0, 0, 83173, 101559, - 128875, 0, 0, 74327, 0, 0, 0, 0, 0, 123623, 68886, 0, 0, 0, 8408, 64704, - 0, 0, 0, 0, 118711, 67999, 0, 0, 0, 0, 43049, 0, 43050, 73028, 0, 0, 0, - 0, 0, 127396, 0, 69847, 9322, 0, 0, 129321, 68192, 120507, 983634, 0, 0, - 0, 6199, 67249, 0, 0, 0, 0, 11329, 66285, 0, 983086, 0, 0, 0, 0, 41335, - 118866, 43401, 0, 41334, 0, 0, 0, 983481, 71997, 983480, 128114, 0, - 42627, 0, 32, 6187, 0, 123619, 983477, 3665, 121083, 42871, 983118, - 41336, 0, 0, 983473, 0, 0, 0, 4412, 0, 0, 0, 0, 119533, 0, 4181, 0, 0, - 127589, 0, 0, 71453, 6181, 74755, 917895, 0, 0, 0, 0, 121107, 0, 0, - 10073, 0, 100738, 127186, 0, 42844, 7498, 1098, 92565, 119530, 0, 0, - 10207, 0, 983230, 0, 983555, 0, 9234, 0, 6182, 0, 92552, 0, 0, 0, 0, - 5471, 9461, 6697, 0, 5473, 0, 0, 0, 0, 0, 0, 70073, 0, 0, 7767, 8304, - 41339, 0, 983491, 69450, 0, 0, 983489, 43855, 41337, 0, 0, 0, 129706, 0, - 0, 0, 72396, 0, 0, 0, 42633, 0, 0, 0, 0, 0, 0, 0, 70005, 129506, 0, 0, 0, - 129580, 69817, 128299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1437, 41617, 0, 0, 0, - 128853, 0, 0, 0, 0, 0, 128529, 12113, 0, 42772, 0, 0, 7693, 10749, 67485, - 65210, 5773, 978, 128134, 0, 41619, 10239, 0, 0, 0, 74328, 0, 9748, 0, 0, - 0, 0, 0, 0, 0, 70681, 0, 72811, 0, 67464, 0, 92776, 0, 0, 2379, 11325, 0, - 0, 67854, 0, 78547, 42209, 0, 120392, 2369, 0, 984003, 984004, 0, 0, - 73936, 7008, 69415, 122919, 0, 43841, 2367, 127827, 983888, 0, 2375, - 8060, 6194, 0, 0, 119084, 0, 0, 0, 0, 6961, 0, 0, 0, 68426, 0, 42862, 0, - 0, 6192, 127900, 42771, 0, 0, 11435, 128445, 118797, 120800, 0, 12892, 0, - 128621, 67149, 0, 0, 0, 0, 120707, 0, 0, 19954, 0, 121164, 8983, 0, 0, 0, - 0, 0, 6198, 121344, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 983509, 41323, 0, 0, 92289, 0, 0, 0, 983505, 41321, 12907, 3048, 7752, - 41320, 0, 0, 12819, 111247, 72127, 0, 0, 0, 0, 0, 72971, 0, 0, 0, 0, - 78650, 78649, 0, 41326, 0, 11806, 43167, 0, 1245, 0, 66463, 0, 0, 0, 0, - 0, 194619, 0, 194618, 0, 0, 194620, 0, 70403, 325, 12874, 128454, 74178, - 0, 0, 119110, 0, 0, 0, 0, 0, 0, 983563, 92175, 0, 0, 0, 121049, 0, 0, 0, - 0, 0, 0, 110844, 11776, 0, 19908, 0, 0, 0, 8753, 69278, 0, 0, 9511, - 43493, 0, 93032, 6205, 0, 0, 0, 0, 0, 0, 0, 0, 120269, 0, 41607, 0, 0, - 120617, 0, 0, 0, 7005, 41609, 9580, 0, 401, 0, 43779, 0, 127962, 0, - 65486, 0, 12857, 0, 11983, 0, 0, 0, 121371, 0, 194971, 74258, 983647, 0, - 0, 0, 0, 0, 8295, 6200, 0, 127864, 0, 0, 71435, 0, 92523, 0, 128631, 0, - 0, 125197, 0, 0, 0, 127556, 0, 0, 0, 64775, 0, 68862, 120590, 0, 0, - 129959, 8074, 8199, 126641, 1907, 127269, 4432, 127271, 10808, 120668, - 127272, 127259, 3888, 127261, 72724, 127263, 127262, 127265, 123169, - 121195, 127250, 66879, 127252, 100422, 66023, 67363, 7663, 0, 0, 0, 0, - 66321, 0, 12814, 127248, 127169, 0, 0, 194603, 7641, 92694, 0, 0, 0, 0, - 74320, 120818, 120268, 0, 128475, 0, 110627, 0, 9622, 128972, 120264, 0, - 0, 0, 0, 68319, 0, 0, 71484, 118613, 0, 0, 69906, 0, 0, 947, 0, 194586, - 129059, 10969, 119935, 7613, 119937, 119936, 4795, 119930, 119933, 7376, - 0, 0, 0, 72343, 0, 0, 0, 0, 119919, 7216, 119921, 7217, 119915, 7218, - 119917, 7219, 119927, 119926, 119929, 119928, 7213, 119922, 7214, 7215, - 128622, 0, 8880, 7685, 128849, 0, 0, 119618, 119853, 8187, 119913, 12815, - 7236, 7915, 71906, 0, 121284, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 10468, 0, 0, 0, 0, 0, 0, 0, 0, 917909, 0, 110633, 1616, 3795, 67732, - 11529, 0, 126225, 0, 0, 1138, 194577, 12677, 0, 0, 3239, 0, 0, 194809, - 194583, 0, 42164, 0, 11778, 67473, 43259, 118543, 119073, 0, 0, 0, 67094, - 129638, 0, 78421, 128123, 78418, 0, 0, 0, 0, 43959, 43960, 0, 72257, 0, - 9359, 78416, 0, 0, 0, 6662, 0, 0, 3863, 0, 41329, 55266, 0, 127822, - 41328, 75026, 194569, 129516, 0, 0, 2178, 119595, 569, 0, 0, 0, 119085, - 110669, 0, 0, 11610, 11368, 0, 194570, 41331, 1006, 127747, 120883, 1550, - 8201, 0, 194811, 5499, 43956, 77908, 77910, 77906, 43957, 77904, 77905, - 128410, 0, 0, 129581, 100447, 43955, 77913, 0, 0, 5511, 0, 983721, 0, - 69241, 8255, 5512, 128560, 119560, 127858, 64313, 127928, 5906, 1119, - 128180, 67088, 983364, 0, 113798, 0, 66423, 0, 0, 0, 67089, 0, 0, 0, 0, - 128177, 983728, 0, 0, 0, 5821, 6186, 129960, 128034, 19961, 0, 983719, 0, - 65138, 302, 41113, 41115, 0, 6637, 5907, 128789, 0, 43642, 0, 128625, 0, - 70345, 5513, 6666, 100567, 78442, 5510, 0, 0, 0, 983725, 78437, 0, 0, 0, - 110838, 0, 0, 0, 92710, 0, 0, 0, 0, 0, 74497, 92395, 120511, 6929, 69412, - 0, 110835, 64442, 0, 0, 74496, 0, 6674, 43397, 0, 1476, 0, 0, 72276, - 3233, 0, 0, 10164, 118555, 0, 3530, 67243, 0, 111219, 6656, 0, 0, 74647, - 8512, 72275, 74261, 8967, 0, 0, 0, 72277, 7986, 73782, 120556, 9006, - 983562, 72273, 0, 7853, 0, 983357, 0, 0, 0, 0, 983971, 0, 0, 0, 0, 0, 0, - 0, 0, 127971, 67983, 13296, 517, 0, 0, 0, 41528, 19923, 65454, 0, 0, 0, - 10531, 7784, 41526, 71727, 0, 8057, 1126, 73895, 0, 0, 130040, 119186, - 4251, 8235, 43142, 0, 489, 71733, 4250, 71731, 110721, 43151, 94177, - 71725, 0, 121238, 0, 0, 0, 110726, 0, 8711, 6183, 110722, 110723, 0, 0, - 7623, 0, 0, 9235, 12760, 74176, 0, 0, 0, 0, 3743, 11514, 11078, 74582, 0, - 0, 126597, 0, 0, 0, 0, 983907, 267, 3393, 127504, 2364, 0, 69233, 6958, - 0, 6201, 0, 42360, 0, 10652, 41612, 917802, 3402, 917801, 3398, 0, 0, 0, - 3391, 70683, 0, 92541, 128017, 126087, 126590, 0, 12767, 0, 983377, - 64261, 0, 127537, 70852, 70347, 0, 6673, 0, 0, 129346, 12438, 0, 0, 0, - 71128, 0, 9053, 43954, 74523, 0, 0, 0, 6195, 0, 6660, 0, 917760, 917793, - 0, 12629, 0, 0, 0, 0, 0, 127940, 0, 0, 0, 65448, 0, 0, 121084, 129688, - 43949, 0, 78099, 0, 983382, 0, 0, 0, 5741, 1131, 0, 0, 74862, 0, 43952, - 42533, 119598, 78107, 0, 0, 43950, 121297, 118990, 7691, 43951, 578, 0, - 0, 0, 42514, 74547, 74196, 120608, 74561, 0, 983976, 0, 0, 0, 0, 0, 0, 0, - 0, 7241, 0, 93846, 119167, 0, 12811, 78082, 3946, 0, 10998, 66807, 673, - 0, 0, 0, 0, 119301, 0, 68890, 0, 0, 78085, 10267, 0, 74560, 78083, 0, - 8729, 0, 0, 0, 0, 0, 0, 0, 119296, 0, 0, 0, 2181, 983460, 731, 0, 71904, - 128316, 0, 0, 0, 1175, 0, 68167, 0, 0, 10793, 0, 67644, 7723, 983455, 0, - 0, 0, 0, 5273, 0, 5269, 0, 69607, 2404, 5267, 124967, 124913, 0, 5277, 0, - 0, 6189, 65469, 1314, 0, 0, 118873, 8785, 0, 0, 127527, 68414, 43535, - 9204, 0, 3879, 0, 71696, 6197, 9497, 0, 7567, 64484, 78128, 41390, 41379, + 0, 118548, 0, 0, 7080, 0, 128806, 122979, 0, 72388, 0, 11859, 0, 0, + 68878, 0, 0, 0, 7240, 0, 556, 0, 118544, 0, 0, 0, 72397, 0, 0, 0, 0, 0, + 0, 0, 0, 72986, 0, 0, 43931, 0, 11093, 0, 0, 122960, 7341, 66801, 68527, + 0, 1874, 0, 0, 129314, 0, 0, 0, 0, 0, 0, 7688, 0, 0, 9036, 0, 0, 66389, + 0, 121347, 0, 0, 10100, 0, 2725, 0, 0, 43981, 42128, 0, 0, 68146, 0, 0, + 0, 0, 71349, 7859, 1945, 0, 0, 0, 65918, 7188, 9992, 0, 7389, 127008, + 71341, 0, 0, 0, 528, 129681, 44017, 11429, 71347, 0, 0, 120864, 0, 0, 0, + 11530, 73102, 6188, 0, 0, 68208, 1823, 0, 0, 92928, 0, 64843, 7233, + 92929, 0, 0, 6639, 0, 0, 123149, 0, 1176, 0, 0, 8276, 128667, 0, 0, + 68892, 42931, 0, 0, 0, 0, 0, 0, 0, 5388, 0, 0, 0, 11310, 0, 123607, 0, + 68888, 4199, 119264, 0, 119020, 0, 0, 9560, 0, 0, 43869, 0, 0, 0, 83172, + 0, 0, 0, 83173, 101559, 128875, 0, 0, 74327, 0, 0, 0, 0, 0, 123623, + 68886, 0, 0, 0, 8408, 64704, 0, 0, 0, 0, 118711, 67999, 0, 0, 0, 0, + 43049, 0, 43050, 73028, 0, 0, 0, 0, 0, 127396, 0, 69847, 9322, 0, 0, + 129321, 68192, 120507, 983634, 0, 0, 0, 6199, 67249, 0, 0, 0, 0, 11329, + 66285, 0, 983086, 0, 0, 0, 0, 41335, 118866, 43401, 0, 41334, 0, 0, 0, + 983484, 71997, 983483, 128114, 0, 42627, 0, 32, 6187, 0, 123619, 983480, + 3665, 121083, 42871, 983119, 41336, 0, 0, 983476, 0, 0, 0, 4412, 0, 0, 0, + 0, 119533, 0, 4181, 0, 0, 127589, 0, 0, 71453, 6181, 74755, 917895, 0, 0, + 0, 73557, 121107, 0, 0, 10073, 0, 100738, 127186, 0, 42844, 7498, 1098, + 92565, 119530, 0, 0, 10207, 0, 983233, 0, 983555, 0, 9234, 0, 6182, 0, + 92552, 0, 0, 0, 0, 5471, 9461, 6697, 0, 5473, 0, 0, 0, 0, 0, 0, 70073, 0, + 0, 7767, 8304, 41339, 0, 983494, 69450, 0, 0, 983492, 43855, 41337, 0, 0, + 0, 129706, 0, 0, 0, 72396, 0, 0, 0, 42633, 0, 0, 0, 0, 0, 0, 0, 70005, + 129506, 0, 0, 0, 129580, 69817, 128299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1437, + 41617, 0, 0, 0, 128853, 0, 0, 0, 0, 0, 128529, 12113, 0, 42772, 0, 0, + 7693, 10749, 67485, 65210, 5773, 978, 128134, 0, 41619, 10239, 0, 0, 0, + 74328, 0, 9748, 0, 0, 0, 0, 0, 0, 0, 70681, 0, 72811, 0, 67464, 0, 92776, + 0, 0, 2379, 11325, 0, 0, 67854, 0, 78547, 42209, 0, 120392, 2369, 0, + 984003, 984004, 0, 0, 73936, 7008, 69415, 122919, 0, 43841, 2367, 127827, + 983888, 0, 2375, 8060, 6194, 0, 0, 119084, 0, 0, 0, 0, 6961, 0, 0, 0, + 68426, 0, 42862, 0, 0, 6192, 127900, 42771, 0, 0, 11435, 128445, 118797, + 120800, 0, 12892, 0, 128621, 67149, 0, 0, 0, 0, 120707, 0, 0, 19954, 0, + 121164, 8983, 0, 0, 0, 0, 0, 6198, 121344, 0, 196, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 983512, 41323, 0, 0, 92289, 0, 0, 0, 983508, 41321, + 12907, 3048, 7752, 41320, 0, 0, 12819, 111247, 72127, 0, 0, 0, 0, 0, + 72971, 0, 0, 0, 0, 78650, 78649, 0, 41326, 0, 11806, 43167, 0, 1245, 0, + 66463, 0, 0, 0, 0, 0, 194619, 0, 194618, 0, 0, 194620, 0, 70403, 325, + 12874, 128454, 74178, 0, 0, 119110, 0, 0, 0, 0, 0, 0, 983563, 92175, 0, + 125016, 0, 121049, 0, 0, 0, 0, 0, 0, 110844, 11776, 0, 19908, 0, 0, 0, + 8753, 69278, 0, 0, 9511, 43493, 0, 93032, 6205, 0, 0, 0, 0, 0, 78928, 0, + 0, 120269, 0, 41607, 0, 0, 120617, 0, 0, 0, 7005, 41609, 9580, 0, 401, 0, + 43779, 0, 127962, 0, 65486, 0, 12857, 0, 11983, 0, 0, 0, 121371, 0, + 194971, 74258, 983647, 0, 0, 0, 0, 0, 8295, 6200, 0, 127864, 0, 0, 71435, + 0, 92523, 0, 128631, 0, 0, 125197, 0, 100426, 0, 127556, 0, 0, 0, 64775, + 0, 68862, 120590, 0, 0, 129959, 8074, 8199, 126641, 1907, 127269, 4432, + 127271, 10808, 120668, 127272, 127259, 3888, 127261, 72724, 127263, + 127262, 127265, 123169, 121195, 127250, 66879, 127252, 100422, 66023, + 67363, 7663, 0, 0, 0, 0, 66321, 0, 12814, 127248, 127169, 0, 0, 194603, + 7641, 92694, 0, 0, 0, 0, 74320, 120818, 120268, 0, 128475, 0, 110627, 0, + 9622, 128972, 120264, 0, 0, 0, 0, 68319, 0, 0, 71484, 118613, 0, 0, + 69906, 0, 0, 947, 0, 194586, 129059, 10969, 119935, 7613, 119937, 119936, + 4795, 119930, 119933, 7376, 0, 0, 0, 72343, 69373, 0, 0, 0, 119919, 7216, + 119921, 7217, 119915, 7218, 119917, 7219, 119927, 119926, 119929, 119928, + 7213, 119922, 7214, 7215, 128622, 0, 8880, 7685, 128849, 0, 0, 119618, + 119853, 8187, 119913, 12815, 7236, 7915, 71906, 0, 121284, 0, 0, 0, 0, 0, + 0, 0, 122969, 0, 0, 0, 0, 0, 10468, 0, 0, 0, 0, 0, 0, 0, 0, 917909, 0, + 110633, 1616, 3795, 67732, 11529, 0, 126225, 0, 0, 1138, 194577, 12677, + 0, 0, 3239, 0, 0, 194809, 194583, 0, 42164, 0, 11778, 67473, 43259, + 118543, 119073, 122975, 0, 0, 67094, 129638, 0, 78421, 128123, 78418, 0, + 0, 0, 0, 43959, 43960, 0, 72257, 0, 9359, 78416, 0, 0, 0, 6662, 0, 0, + 3863, 0, 41329, 55266, 0, 127822, 41328, 75026, 194569, 129516, 0, 0, + 2178, 119595, 569, 0, 0, 0, 119085, 110669, 0, 0, 11610, 11368, 0, + 194570, 41331, 1006, 127747, 120883, 1550, 8201, 0, 194811, 5499, 43956, + 77908, 77910, 77906, 43957, 77904, 77905, 128410, 0, 0, 129581, 100447, + 43955, 77913, 122989, 0, 5511, 0, 983721, 0, 69241, 8255, 5512, 128560, + 119560, 127858, 64313, 127928, 5906, 1119, 128180, 67088, 983367, 0, + 113798, 0, 66423, 0, 0, 0, 67089, 0, 0, 0, 0, 128177, 983728, 0, 0, 0, + 5821, 6186, 129960, 128034, 19961, 0, 983719, 0, 65138, 302, 41113, + 41115, 0, 6637, 5907, 128789, 0, 43642, 0, 128625, 0, 70345, 5513, 6666, + 100567, 78442, 5510, 0, 0, 0, 983725, 78437, 0, 0, 0, 110838, 0, 0, 0, + 92710, 0, 0, 0, 0, 0, 74497, 92395, 120511, 6929, 69412, 0, 110835, + 64442, 0, 0, 74496, 0, 6674, 43397, 0, 1476, 0, 0, 72276, 3233, 0, 0, + 10164, 118555, 0, 3530, 67243, 0, 111219, 6656, 0, 0, 74647, 8512, 72275, + 74261, 8967, 0, 0, 0, 72277, 7986, 73782, 120556, 9006, 983562, 72273, 0, + 7853, 0, 983360, 0, 0, 0, 0, 983971, 0, 0, 0, 0, 0, 0, 0, 0, 127971, + 67983, 13296, 517, 0, 0, 0, 41528, 19923, 65454, 73518, 0, 0, 10531, + 7784, 41526, 71727, 0, 8057, 1126, 73895, 0, 0, 130040, 119186, 4251, + 8235, 43142, 0, 489, 71733, 4250, 71731, 110721, 43151, 94177, 71725, 0, + 121238, 0, 0, 0, 110726, 0, 8711, 6183, 110722, 110723, 0, 0, 7623, 0, 0, + 9235, 12760, 74176, 0, 0, 0, 0, 3743, 11514, 11078, 74582, 0, 0, 126597, + 0, 0, 0, 0, 983907, 267, 3393, 127504, 2364, 0, 69233, 6958, 0, 6201, 0, + 42360, 0, 10652, 41612, 917802, 3402, 917801, 3398, 0, 0, 0, 3391, 70683, + 0, 92541, 128017, 126087, 126590, 0, 12767, 0, 983380, 64261, 0, 127537, + 70852, 70347, 0, 6673, 0, 0, 129346, 12438, 0, 0, 0, 71128, 0, 9053, + 43954, 74523, 0, 0, 0, 6195, 0, 6660, 0, 917760, 917793, 0, 12629, 0, 0, + 0, 0, 0, 127940, 0, 0, 0, 65448, 0, 0, 121084, 129688, 43949, 0, 78099, + 0, 983385, 0, 0, 0, 5741, 1131, 0, 0, 74862, 0, 43952, 42533, 119598, + 78107, 0, 0, 43950, 121297, 118990, 7691, 43951, 578, 0, 0, 0, 42514, + 74547, 74196, 120608, 74561, 0, 983976, 0, 0, 0, 0, 0, 0, 0, 0, 7241, 0, + 93846, 119167, 0, 12811, 78082, 3946, 0, 10998, 66807, 673, 0, 0, 0, 0, + 119301, 0, 68890, 0, 0, 78085, 10267, 0, 74560, 78083, 0, 8729, 0, 0, 0, + 0, 0, 0, 0, 119296, 0, 0, 0, 2181, 983463, 731, 0, 71904, 128316, 0, + 73539, 0, 1175, 0, 68167, 0, 0, 10793, 0, 67644, 7723, 983458, 0, 0, 0, + 0, 5273, 0, 5269, 0, 69607, 2404, 5267, 124967, 124913, 0, 5277, 0, 0, + 6189, 65469, 1314, 0, 0, 118873, 8785, 0, 0, 127527, 68414, 43535, 9204, + 0, 3879, 0, 71696, 6197, 9497, 0, 7567, 64484, 78128, 41390, 41379, 41882, 67647, 67279, 70085, 0, 121413, 41388, 64446, 41392, 64288, 41387, 0, 8706, 10675, 0, 700, 0, 5775, 0, 7088, 74756, 7499, 0, 78120, 78111, 67251, 126557, 0, 0, 128945, 10311, 78115, 6665, 11115, 0, 7618, 10821, @@ -25304,17 +25484,17 @@ static const unsigned int code_hash[] = { 42087, 3063, 0, 0, 7838, 0, 129282, 0, 0, 67968, 0, 128582, 9078, 92446, 0, 0, 0, 0, 0, 0, 119586, 0, 7750, 128422, 68237, 6190, 0, 0, 0, 72340, 9857, 7014, 9856, 0, 92620, 120547, 0, 8481, 0, 6202, 0, 10920, 67970, 0, - 0, 983294, 0, 7843, 65818, 66824, 0, 0, 0, 0, 0, 0, 0, 6657, 207, 0, + 0, 983297, 0, 7843, 65818, 66824, 0, 73481, 0, 0, 0, 0, 0, 6657, 207, 0, 69728, 74819, 0, 0, 0, 0, 0, 0, 0, 0, 41368, 43974, 488, 0, 0, 71339, 10157, 118700, 43034, 11982, 0, 0, 0, 0, 0, 41372, 6669, 8504, 72103, 0, 41367, 129328, 119272, 0, 11726, 8261, 129793, 304, 129799, 129795, - 129822, 129807, 113683, 983236, 238, 74522, 0, 0, 19905, 120577, 983471, - 129200, 41044, 67640, 67302, 64814, 9912, 65939, 983467, 0, 0, 0, 917925, + 129822, 129807, 113683, 983239, 238, 74522, 0, 0, 19905, 120577, 122968, + 129200, 41044, 67640, 67302, 64814, 9912, 65939, 983470, 0, 0, 0, 917925, 0, 0, 309, 6622, 0, 10858, 0, 67636, 0, 72749, 0, 0, 0, 67637, 123138, 9712, 68680, 43970, 0, 65165, 93047, 983831, 0, 0, 0, 0, 0, 6191, 12944, 0, 0, 67634, 43763, 0, 0, 67635, 9370, 41381, 0, 0, 123148, 118817, 0, - 3222, 121439, 0, 0, 66663, 0, 0, 0, 0, 0, 65732, 121144, 0, 983217, 0, 0, - 67309, 72192, 41383, 64568, 0, 0, 0, 0, 984009, 66725, 0, 0, 0, 0, 0, + 3222, 121439, 0, 0, 66663, 0, 0, 0, 0, 0, 65732, 121144, 0, 983219, 0, 0, + 67309, 72192, 41383, 64568, 0, 0, 0, 0, 984009, 66725, 0, 0, 0, 0, 73766, 67306, 3632, 128246, 0, 8376, 3648, 0, 74844, 67639, 3636, 0, 3650, 8837, 0, 0, 0, 43250, 41562, 0, 0, 68839, 3640, 127190, 0, 11781, 0, 0, 0, 0, 129659, 0, 126649, 0, 42080, 2529, 0, 78004, 0, 42083, 0, 0, 120531, @@ -25327,97 +25507,97 @@ static const unsigned int code_hash[] = { 12753, 0, 983753, 67626, 67722, 0, 0, 0, 0, 12751, 74906, 8542, 0, 0, 3626, 66706, 0, 0, 3883, 64388, 0, 0, 0, 0, 0, 0, 126268, 67624, 0, 10932, 0, 65585, 64338, 806, 0, 41884, 110845, 1318, 128828, 0, 0, 0, - 983808, 3465, 2405, 983392, 0, 12756, 65259, 69381, 983812, 12752, 5833, + 983808, 3465, 2405, 983395, 0, 12756, 65259, 69381, 983812, 12752, 5833, 1432, 110843, 41883, 110841, 9799, 0, 41886, 0, 0, 2062, 0, 0, 0, 0, - 129376, 0, 124969, 983389, 0, 120971, 0, 118832, 0, 983283, 0, 68005, + 129376, 0, 124969, 983392, 0, 120971, 0, 118832, 0, 983286, 0, 68005, 10622, 0, 0, 0, 6566, 71195, 0, 73780, 0, 68865, 0, 0, 0, 8284, 0, 0, 0, - 0, 0, 43023, 0, 983287, 6642, 3977, 72743, 64729, 836, 983383, 92947, 0, + 0, 0, 43023, 0, 983290, 6642, 3977, 72743, 64729, 836, 983386, 92947, 0, 0, 0, 0, 0, 0, 125239, 917923, 0, 0, 0, 0, 0, 0, 1374, 65149, 119014, 67720, 0, 2273, 0, 0, 0, 11234, 0, 0, 9630, 12597, 0, 0, 0, 6661, 0, 113751, 120551, 125015, 0, 0, 72151, 0, 73674, 7718, 113755, 0, 69570, 0, - 0, 983777, 0, 0, 0, 127841, 6365, 1887, 983411, 0, 8080, 113681, 0, 0, 0, - 129855, 1544, 0, 0, 64677, 0, 0, 0, 0, 119019, 0, 0, 12812, 7342, 0, + 0, 983777, 0, 0, 0, 127841, 6365, 1887, 983414, 0, 8080, 113681, 0, 0, 0, + 129855, 1544, 0, 0, 64677, 0, 0, 0, 0, 73561, 0, 0, 12812, 7342, 0, 73784, 66947, 7904, 0, 0, 120910, 0, 0, 0, 0, 9724, 0, 983804, 9524, 0, - 0, 0, 0, 0, 129344, 0, 471, 0, 0, 128302, 0, 0, 0, 983769, 0, 0, 6918, - 118685, 0, 5156, 0, 128683, 10232, 10615, 10213, 0, 0, 42528, 0, 0, 0, 0, - 65311, 74935, 0, 13306, 10533, 7870, 0, 7625, 0, 120544, 0, 0, 128816, - 126098, 118870, 0, 92819, 0, 0, 92341, 0, 12978, 128533, 0, 0, 43836, - 42675, 0, 12845, 0, 19942, 0, 0, 0, 0, 0, 120000, 120008, 120001, 0, - 194894, 0, 0, 0, 0, 7186, 73107, 0, 70093, 445, 119028, 0, 0, 0, 73047, - 0, 0, 128442, 0, 0, 0, 3902, 68913, 129916, 0, 0, 1560, 43958, 0, 4584, - 0, 67862, 0, 10866, 92905, 1118, 92209, 74888, 0, 1081, 7436, 11147, - 7252, 0, 121188, 0, 0, 0, 41386, 5162, 129823, 1330, 0, 121270, 0, 12047, - 7675, 0, 0, 1848, 74528, 983147, 64708, 0, 0, 194880, 0, 0, 0, 983772, - 12715, 128349, 0, 0, 0, 66672, 73710, 66685, 0, 0, 92464, 0, 68884, 0, - 72835, 123546, 70800, 70101, 120725, 0, 194893, 9214, 43494, 0, 0, - 120841, 0, 0, 6313, 65513, 119355, 0, 0, 0, 2345, 72975, 0, 0, 129937, 0, - 3117, 0, 71882, 0, 73100, 0, 0, 0, 0, 78415, 983233, 100907, 0, 13248, 0, - 120241, 129416, 128415, 0, 94193, 12382, 71120, 0, 0, 0, 0, 1471, 0, + 0, 0, 0, 0, 129344, 0, 471, 0, 0, 128302, 72450, 0, 0, 983769, 0, 0, + 6918, 118685, 0, 5156, 0, 128683, 10232, 10615, 10213, 0, 0, 42528, 0, 0, + 0, 0, 65311, 74935, 0, 13306, 10533, 7870, 0, 7625, 0, 120544, 0, 0, + 128816, 126098, 118870, 0, 92819, 0, 0, 92341, 0, 12978, 128533, 0, 0, + 43836, 42675, 0, 12845, 0, 19942, 0, 0, 0, 0, 0, 120000, 120008, 120001, + 0, 194894, 983746, 0, 0, 0, 7186, 73107, 0, 70093, 445, 119028, 0, 0, 0, + 73047, 0, 0, 128442, 0, 0, 0, 3902, 68913, 129916, 0, 0, 1560, 43958, 0, + 4584, 0, 67862, 0, 10866, 92905, 1118, 92209, 74888, 0, 1081, 7436, + 11147, 7252, 0, 121188, 0, 0, 0, 41386, 5162, 129823, 1330, 0, 121270, 0, + 12047, 7675, 0, 0, 1848, 74528, 983148, 64708, 0, 0, 194880, 0, 0, 0, + 983772, 12715, 128349, 0, 101402, 0, 66672, 73710, 66685, 0, 0, 92464, 0, + 68884, 0, 72835, 123546, 70800, 70101, 120725, 0, 194893, 9214, 43494, 0, + 0, 120841, 0, 0, 6313, 65513, 119355, 0, 0, 0, 2345, 72975, 0, 0, 129937, + 0, 3117, 0, 71882, 0, 73100, 0, 0, 0, 0, 78415, 983236, 100907, 0, 13248, + 0, 120241, 129416, 128415, 0, 94193, 12382, 71120, 0, 0, 0, 0, 1471, 0, 113747, 0, 12378, 0, 69664, 0, 12374, 121357, 0, 0, 0, 0, 0, 0, 12376, 0, 0, 0, 12380, 10557, 0, 12520, 11122, 2024, 127180, 0, 0, 74588, 0, 0, 70120, 3853, 0, 0, 0, 983763, 0, 0, 12090, 0, 12474, 92579, 9503, 0, 0, - 983273, 68318, 0, 110834, 0, 0, 0, 12470, 0, 74189, 2742, 12476, 66370, - 10946, 0, 12472, 0, 0, 0, 0, 8213, 43824, 7771, 6161, 983277, 68010, 0, + 73505, 68318, 0, 110834, 0, 0, 0, 12470, 0, 74189, 2742, 12476, 66370, + 10946, 0, 12472, 0, 0, 0, 0, 8213, 43824, 7771, 6161, 983280, 68010, 0, 0, 0, 68235, 0, 0, 0, 120985, 0, 0, 0, 129814, 73791, 129830, 68871, 0, 0, 0, 0, 0, 73704, 12015, 128561, 8275, 0, 43459, 120927, 127555, 0, 0, 0, 68881, 71215, 983642, 118841, 0, 12516, 4444, 0, 119017, 120506, 10892, 118828, 0, 6473, 0, 0, 71735, 3591, 0, 0, 0, 0, 72345, 0, 0, 0, - 127547, 0, 0, 0, 0, 128253, 0, 0, 0, 0, 94060, 687, 0, 0, 983401, 0, 0, + 127547, 0, 0, 0, 0, 128253, 0, 0, 0, 0, 94060, 687, 0, 0, 983404, 0, 0, 43882, 0, 128526, 285, 0, 0, 0, 4459, 0, 0, 74917, 0, 0, 126255, 0, 119248, 0, 9743, 0, 0, 126535, 0, 0, 73104, 0, 69659, 0, 0, 3081, 74577, 42921, 0, 0, 0, 0, 0, 0, 0, 9125, 119023, 0, 120820, 0, 65221, 0, 0, 64852, 0, 0, 0, 0, 66578, 5001, 41879, 0, 0, 5003, 884, 0, 0, 4943, 5150, - 73889, 74182, 0, 41876, 0, 0, 42448, 42299, 72804, 0, 0, 0, 0, 8491, 0, - 0, 983635, 4530, 42409, 7126, 119526, 66200, 0, 118559, 19929, 0, 0, 0, - 4242, 0, 0, 0, 0, 66034, 65941, 124929, 64522, 10740, 8958, 128257, 9754, - 119102, 983248, 74222, 983246, 983245, 119064, 983243, 983242, 0, 0, 0, - 74518, 66026, 4306, 41468, 68432, 0, 0, 66667, 0, 0, 983496, 42200, 0, 0, - 0, 120236, 6948, 0, 8524, 0, 0, 12385, 0, 74926, 0, 1386, 73996, 0, 0, 0, - 121184, 12392, 0, 8064, 0, 0, 78216, 119004, 2080, 710, 128491, 12390, - 1666, 42091, 0, 12383, 92968, 42092, 68418, 0, 128106, 0, 0, 42096, 0, - 3362, 12377, 127878, 0, 0, 0, 0, 1244, 4401, 73786, 12683, 10662, 0, - 8112, 129837, 119021, 121017, 12379, 73108, 120534, 0, 42208, 0, 12381, - 0, 0, 0, 4327, 0, 0, 128350, 0, 78232, 0, 584, 12933, 0, 12373, 73105, - 13000, 0, 2935, 129113, 12665, 0, 43081, 73098, 120505, 12427, 0, 983625, - 78227, 0, 0, 0, 0, 128760, 74551, 0, 0, 12426, 0, 0, 0, 12428, 0, 0, 0, - 0, 0, 12429, 6727, 0, 0, 0, 3387, 0, 0, 0, 0, 0, 0, 74427, 0, 3536, - 120589, 9752, 92397, 6162, 0, 0, 10113, 0, 0, 0, 12422, 0, 439, 3072, 0, - 42207, 74549, 120830, 0, 0, 0, 0, 8308, 0, 70807, 0, 0, 0, 13218, 0, 0, - 8082, 12424, 0, 6819, 3539, 93838, 0, 0, 74539, 0, 68181, 0, 72964, 0, - 72969, 12420, 11371, 0, 4600, 0, 127810, 0, 0, 0, 72962, 128552, 6704, - 4591, 72966, 0, 0, 0, 72960, 120623, 561, 12159, 78223, 0, 78224, 0, - 71068, 11932, 7172, 42687, 8368, 0, 0, 93068, 0, 0, 75010, 0, 0, 0, 0, - 42463, 0, 2924, 67183, 0, 129947, 0, 128958, 0, 0, 42330, 73079, 3969, 0, - 129973, 7169, 1992, 9652, 0, 0, 42086, 0, 100865, 0, 0, 0, 0, 0, 327, 0, - 0, 0, 0, 0, 12433, 0, 0, 118570, 12431, 0, 12434, 983436, 0, 0, 0, 7712, - 12432, 0, 69377, 129147, 100867, 0, 8212, 0, 128014, 0, 119066, 7333, 0, - 0, 0, 67407, 70006, 128461, 0, 12436, 0, 43160, 0, 74896, 92757, 71360, - 42350, 0, 0, 0, 100566, 0, 11348, 0, 0, 9194, 983184, 0, 55250, 0, - 100569, 0, 0, 0, 0, 0, 64746, 66012, 100565, 3444, 75029, 64651, 0, - 41503, 0, 0, 0, 0, 0, 0, 0, 120876, 0, 0, 129408, 65309, 12416, 0, 0, 0, - 0, 93024, 12418, 74111, 121046, 0, 0, 0, 119361, 0, 4596, 66339, 12417, - 66001, 0, 126491, 12414, 8287, 0, 69499, 0, 1143, 0, 0, 12415, 0, 0, - 983244, 0, 9021, 120783, 0, 11724, 0, 0, 0, 194794, 0, 0, 8027, 194796, - 74257, 127375, 11400, 74197, 194799, 66833, 194798, 0, 0, 983249, 0, 0, - 1324, 0, 0, 0, 194878, 7715, 0, 0, 194777, 194780, 0, 0, 0, 194787, 0, 0, - 0, 0, 0, 66289, 127109, 3889, 129561, 194800, 0, 0, 0, 0, 121226, 12999, - 0, 120902, 0, 0, 0, 0, 0, 64802, 42210, 4597, 983133, 0, 0, 12371, 67164, - 0, 67163, 10805, 0, 0, 0, 0, 118662, 12367, 0, 0, 92557, 12363, 0, 0, - 128611, 983645, 0, 0, 8005, 12365, 0, 0, 3756, 12369, 10649, 0, 70095, 0, - 0, 0, 42923, 0, 0, 0, 0, 0, 0, 66659, 0, 0, 0, 0, 5268, 4954, 0, 0, 5266, - 126980, 5272, 92294, 0, 42230, 983980, 0, 9128, 0, 0, 0, 0, 6928, 9803, - 42282, 9110, 1505, 0, 0, 5276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8722, 120805, - 0, 0, 66695, 0, 0, 4383, 8900, 0, 0, 74930, 64297, 0, 0, 0, 0, 3419, - 42229, 0, 0, 8911, 0, 42353, 0, 0, 0, 0, 0, 0, 0, 100629, 41576, 42215, - 122888, 0, 0, 8578, 68178, 7573, 41575, 74789, 92310, 0, 73863, 0, 2670, - 0, 0, 11723, 0, 0, 0, 0, 0, 43414, 0, 0, 65675, 0, 67179, 67168, 12413, - 129746, 67177, 0, 0, 0, 0, 12302, 0, 5250, 12407, 12245, 4404, 9189, - 12401, 42007, 0, 42005, 65806, 43997, 122922, 42002, 12404, 0, 74928, - 4940, 12410, 0, 128761, 0, 64567, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11956, 0, - 0, 122882, 0, 6631, 128923, 120704, 74583, 42218, 0, 0, 70094, 0, 0, 0, - 71058, 0, 0, 0, 127341, 0, 0, 0, 0, 0, 43370, 0, 5016, 121052, 0, 0, - 9491, 0, 0, 0, 0, 64922, 0, 0, 0, 0, 92198, 0, 118622, 0, 74619, 0, 0, - 70422, 983688, 10565, 0, 12177, 0, 0, 0, 0, 0, 12395, 127874, 12878, + 73889, 74182, 0, 41876, 0, 78915, 42448, 42299, 72804, 0, 0, 0, 0, 8491, + 0, 0, 983635, 4530, 42409, 7126, 119526, 66200, 0, 118559, 19929, 0, 0, + 0, 4242, 0, 0, 0, 0, 66034, 65941, 124929, 64522, 10740, 8958, 128257, + 9754, 119102, 983251, 74222, 983249, 983248, 119064, 983246, 983245, 0, + 0, 0, 74518, 66026, 4306, 41468, 68432, 0, 0, 66667, 0, 0, 983499, 42200, + 0, 0, 0, 120236, 6948, 0, 8524, 0, 0, 12385, 0, 74926, 0, 1386, 73996, 0, + 0, 0, 121184, 12392, 0, 8064, 0, 0, 78216, 119004, 2080, 710, 128491, + 12390, 1666, 42091, 0, 12383, 92968, 42092, 68418, 0, 128106, 0, 0, + 42096, 0, 3362, 12377, 127878, 0, 0, 0, 0, 1244, 4401, 73786, 12683, + 10662, 0, 8112, 129837, 119021, 121017, 12379, 73108, 120534, 0, 42208, + 0, 12381, 0, 0, 0, 4327, 0, 0, 128350, 0, 78232, 0, 584, 12933, 0, 12373, + 73105, 13000, 0, 2935, 129113, 12665, 0, 43081, 73098, 120505, 12427, 0, + 983625, 78227, 0, 0, 0, 0, 128760, 74551, 0, 0, 12426, 0, 73497, 0, + 12428, 0, 0, 0, 0, 0, 12429, 6727, 0, 0, 0, 3387, 0, 0, 0, 0, 0, 0, + 73517, 0, 3536, 120589, 9752, 92397, 6162, 0, 0, 10113, 0, 0, 0, 12422, + 0, 439, 3072, 0, 42207, 74549, 120830, 0, 0, 0, 0, 8308, 0, 70807, 0, 0, + 0, 13218, 0, 0, 8082, 12424, 0, 6819, 3539, 93838, 0, 0, 74539, 0, 68181, + 0, 72964, 0, 72969, 12420, 11371, 0, 4600, 0, 127810, 0, 0, 0, 72962, + 128552, 6704, 4591, 72966, 0, 0, 0, 72960, 120623, 561, 12159, 78223, 0, + 78224, 0, 71068, 11932, 7172, 42687, 8368, 0, 0, 93068, 0, 0, 75010, 0, + 0, 0, 0, 42463, 0, 2924, 67183, 0, 129947, 0, 128958, 0, 0, 42330, 73079, + 3969, 0, 129973, 7169, 1992, 9652, 0, 0, 42086, 0, 100865, 0, 0, 0, 0, 0, + 327, 0, 0, 0, 0, 73509, 12433, 0, 0, 118570, 12431, 0, 12434, 983439, 0, + 73544, 0, 7712, 12432, 0, 69377, 129147, 100867, 0, 8212, 0, 128014, 0, + 119066, 7333, 0, 0, 0, 67407, 70006, 128461, 0, 12436, 0, 43160, 0, + 74896, 92757, 71360, 42350, 0, 0, 0, 100566, 0, 11348, 0, 0, 9194, + 983185, 0, 55250, 0, 100569, 0, 0, 0, 0, 0, 64746, 66012, 100565, 3444, + 75029, 64651, 0, 41503, 0, 0, 0, 0, 0, 0, 0, 120876, 0, 0, 129408, 65309, + 12416, 0, 0, 0, 0, 93024, 12418, 74111, 121046, 0, 0, 0, 119361, 0, 4596, + 66339, 12417, 66001, 0, 126491, 12414, 8287, 0, 69499, 0, 1143, 0, 0, + 12415, 0, 0, 983247, 0, 9021, 120783, 0, 11724, 0, 0, 0, 194794, 0, 0, + 8027, 194796, 74257, 127375, 11400, 74197, 194799, 66833, 194798, 0, 0, + 983252, 0, 0, 1324, 0, 0, 0, 194878, 7715, 0, 0, 194777, 194780, 0, 0, 0, + 194787, 0, 0, 0, 0, 0, 66289, 127109, 3889, 129561, 194800, 0, 0, 0, 0, + 121226, 12999, 0, 120902, 0, 0, 0, 0, 0, 64802, 42210, 4597, 983134, 0, + 0, 12371, 67164, 0, 67163, 10805, 0, 0, 0, 0, 118662, 12367, 0, 0, 92557, + 12363, 0, 0, 128611, 983645, 0, 0, 8005, 12365, 0, 0, 3756, 12369, 10649, + 0, 70095, 0, 0, 0, 42923, 0, 0, 0, 0, 0, 0, 66659, 0, 0, 0, 0, 5268, + 4954, 0, 0, 5266, 126980, 5272, 92294, 0, 42230, 983980, 0, 9128, 0, 0, + 0, 0, 6928, 9803, 42282, 9110, 1505, 0, 0, 5276, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 8722, 120805, 0, 0, 66695, 0, 0, 4383, 8900, 0, 0, 74930, 64297, 0, 0, + 0, 0, 3419, 42229, 0, 0, 8911, 0, 42353, 0, 0, 0, 0, 0, 0, 0, 100629, + 41576, 42215, 122888, 0, 0, 8578, 68178, 7573, 41575, 74789, 92310, 0, + 73863, 0, 2670, 0, 0, 11723, 0, 0, 0, 0, 0, 43414, 0, 0, 65675, 0, 67179, + 67168, 12413, 129746, 67177, 0, 0, 0, 0, 12302, 0, 5250, 12407, 12245, + 4404, 9189, 12401, 42007, 0, 42005, 65806, 43997, 122922, 42002, 12404, + 0, 74928, 4940, 12410, 0, 128761, 0, 64567, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 11956, 0, 0, 122882, 0, 6631, 128923, 120704, 74583, 42218, 0, 0, 70094, + 0, 0, 0, 71058, 0, 0, 0, 127341, 0, 0, 0, 0, 0, 43370, 0, 5016, 121052, + 0, 0, 9491, 0, 0, 0, 0, 64922, 0, 0, 0, 0, 92198, 0, 118622, 0, 74619, 0, + 0, 70422, 983688, 10565, 0, 12177, 0, 0, 0, 0, 0, 12395, 127874, 12878, 92630, 12396, 0, 0, 92537, 0, 43113, 0, 0, 0, 9781, 0, 4927, 0, 0, 0, 0, 12397, 129089, 128910, 0, 12394, 0, 0, 0, 0, 0, 72789, 10781, 1546, 0, 5010, 0, 10507, 127891, 128291, 0, 0, 0, 0, 7267, 0, 0, 0, 0, 2819, 0, 0, @@ -25464,10 +25644,10 @@ static const unsigned int code_hash[] = { 67600, 67477, 0, 127293, 8575, 127295, 127296, 127289, 127290, 127291, 127292, 127285, 127286, 127287, 118877, 127281, 127282, 9460, 823, 11587, 0, 0, 0, 127305, 12387, 0, 0, 127301, 126979, 42783, 69998, 64208, - 127298, 127299, 66031, 0, 11606, 64784, 0, 69973, 0, 0, 0, 5152, 11048, - 0, 120121, 67605, 0, 69604, 0, 70276, 194847, 0, 127052, 42587, 42214, - 41394, 0, 4763, 0, 118935, 0, 5260, 0, 94038, 326, 120131, 74119, 0, - 10771, 42198, 194920, 194835, 194925, 41398, 127079, 41393, 127077, + 127298, 127299, 66031, 0, 11606, 64784, 0, 69973, 0, 124149, 0, 5152, + 11048, 0, 120121, 67605, 0, 69604, 0, 70276, 194847, 0, 127052, 42587, + 42214, 41394, 0, 4763, 0, 118935, 0, 5260, 0, 94038, 326, 120131, 74119, + 0, 10771, 42198, 194920, 194835, 194925, 41398, 127079, 41393, 127077, 127076, 453, 41396, 0, 13159, 11227, 9572, 0, 0, 194576, 128835, 127081, 0, 126617, 43144, 0, 72972, 194887, 0, 0, 0, 0, 0, 64061, 0, 0, 64056, 70310, 0, 0, 0, 66971, 0, 111084, 64301, 72998, 10464, 0, 128393, 72847, @@ -25481,7 +25661,7 @@ static const unsigned int code_hash[] = { 194829, 1833, 11576, 74334, 0, 0, 42854, 69438, 0, 70307, 0, 194856, 8085, 0, 194850, 0, 72996, 128778, 1949, 11614, 7847, 120489, 120997, 64483, 0, 0, 0, 122639, 0, 0, 0, 126651, 42864, 0, 64667, 74624, 0, 0, - 43261, 11484, 127535, 67840, 0, 0, 128965, 0, 72974, 0, 110928, 8995, + 43261, 11484, 127535, 67840, 0, 0, 128965, 0, 72974, 0, 72456, 8995, 3455, 0, 0, 9879, 0, 0, 4158, 128050, 0, 0, 110929, 0, 0, 0, 332, 118808, 0, 0, 2407, 0, 42199, 92386, 110865, 0, 77921, 55217, 123161, 125199, 70043, 0, 0, 0, 121093, 1834, 0, 0, 71315, 0, 65249, 0, 8662, 0, 0, @@ -25490,12 +25670,12 @@ static const unsigned int code_hash[] = { 1620, 0, 3601, 0, 0, 67246, 609, 11555, 0, 12496, 0, 74181, 120492, 12505, 0, 194902, 0, 43567, 239, 0, 127085, 0, 0, 42671, 0, 0, 83095, 43565, 127082, 983955, 12696, 127753, 0, 94062, 12929, 0, 712, 0, 4197, - 0, 42818, 0, 70306, 0, 0, 983824, 0, 43562, 0, 129034, 68076, 0, 111074, + 0, 42818, 0, 70306, 0, 0, 983824, 0, 43562, 0, 119506, 68076, 0, 111074, 64628, 0, 0, 0, 0, 7494, 0, 4924, 0, 0, 0, 0, 72368, 0, 127087, 69987, - 64796, 0, 0, 12033, 0, 0, 72370, 0, 0, 0, 0, 70299, 0, 0, 68324, 72420, - 0, 0, 0, 0, 70309, 127000, 0, 0, 0, 72418, 72963, 0, 5699, 0, 983898, - 9488, 74410, 119112, 70477, 11170, 0, 0, 72312, 0, 5265, 0, 0, 0, 0, - 12464, 0, 43264, 72977, 0, 43345, 120853, 0, 120592, 6807, 0, 9829, + 64796, 0, 0, 12033, 119492, 0, 72370, 0, 0, 0, 0, 70299, 0, 0, 68324, + 72420, 0, 0, 0, 0, 70309, 127000, 0, 0, 0, 72418, 72963, 0, 5699, 0, + 983898, 9488, 74410, 119112, 70477, 11170, 0, 0, 72312, 0, 5265, 0, 0, 0, + 0, 12464, 0, 43264, 72977, 0, 43345, 120853, 0, 120592, 6807, 0, 9829, 69997, 0, 0, 43346, 11393, 795, 0, 72412, 12462, 72416, 72415, 0, 0, 64362, 0, 0, 120811, 0, 12468, 8607, 1008, 0, 120670, 0, 0, 67855, 125018, 72372, 6758, 0, 0, 1820, 41112, 0, 11202, 129451, 0, 13223, 0, @@ -25519,13 +25699,13 @@ static const unsigned int code_hash[] = { 0, 9282, 0, 224, 0, 68670, 9332, 65581, 68677, 0, 68644, 0, 11764, 68634, 0, 10732, 68640, 850, 0, 0, 71123, 0, 68619, 44008, 68627, 0, 0, 0, 0, 66969, 0, 0, 0, 12507, 0, 0, 128311, 0, 120529, 4375, 0, 0, 0, 12198, 0, - 67339, 0, 0, 72994, 74293, 128434, 0, 0, 64546, 0, 71208, 0, 0, 125241, + 67339, 0, 0, 72994, 74293, 128434, 0, 0, 64546, 0, 71208, 0, 0, 78916, 42334, 42502, 0, 120887, 72961, 0, 917838, 5767, 0, 0, 71710, 8353, 0, 0, 0, 121233, 0, 0, 0, 0, 119920, 0, 0, 121186, 0, 0, 0, 72719, 64604, 0, 6096, 122632, 10063, 0, 0, 119630, 3485, 12987, 0, 127522, 0, 0, 0, 0, 0, 0, 0, 0, 127173, 0, 0, 68249, 0, 0, 118923, 0, 64574, 128794, 0, 1640, 12495, 66691, 0, 3138, 12504, 11171, 1922, 0, 12498, 128733, 0, 69939, 0, - 65543, 0, 0, 0, 66643, 0, 120734, 0, 4228, 0, 10303, 0, 0, 0, 10335, + 65543, 0, 0, 0, 66643, 0, 120734, 0, 4228, 0, 10303, 128884, 0, 0, 10335, 3520, 0, 12490, 0, 0, 0, 12493, 121452, 64636, 1002, 12491, 0, 0, 92615, 2096, 0, 0, 0, 0, 11611, 66228, 0, 11241, 66224, 66221, 66226, 66229, 66219, 66231, 66216, 0, 66236, 66211, 66218, 0, 66240, 78041, 66233, @@ -25551,7 +25731,7 @@ static const unsigned int code_hash[] = { 77995, 0, 3608, 0, 0, 1107, 0, 129658, 0, 0, 0, 0, 983956, 43217, 66571, 13222, 118963, 0, 126514, 10463, 11553, 0, 63995, 9043, 128634, 71722, 0, 0, 127751, 92974, 12529, 8042, 0, 2344, 12528, 0, 0, 0, 69719, 120956, 0, - 0, 66512, 0, 12530, 0, 0, 68917, 12658, 0, 71683, 0, 983238, 0, 127526, + 0, 66512, 0, 12530, 0, 0, 68917, 12658, 0, 71683, 0, 983241, 0, 127526, 469, 0, 4363, 3313, 0, 0, 2023, 0, 72251, 78225, 65706, 10051, 78219, 78220, 0, 9920, 12215, 0, 4931, 1951, 12497, 119363, 0, 0, 119336, 0, 0, 0, 0, 0, 1491, 128578, 129169, 0, 0, 0, 0, 78898, 94086, 41993, 0, 67379, @@ -25574,7 +25754,7 @@ static const unsigned int code_hash[] = { 4156, 0, 0, 0, 78591, 1611, 73058, 13018, 78586, 78588, 78584, 3337, 4537, 78593, 11736, 0, 0, 0, 4214, 73790, 0, 0, 13046, 194844, 425, 74763, 42066, 78595, 0, 2392, 13047, 0, 0, 12425, 13049, 0, 92243, 0, - 72715, 73944, 13050, 0, 0, 0, 0, 983503, 0, 0, 8929, 6849, 0, 0, 0, + 72715, 73944, 13050, 0, 0, 0, 0, 983506, 0, 0, 8929, 6849, 0, 0, 0, 983990, 0, 13045, 0, 0, 7751, 0, 9726, 0, 3997, 0, 8768, 13044, 0, 0, 4024, 0, 0, 2419, 9757, 69736, 0, 0, 0, 129500, 0, 0, 0, 72735, 0, 0, 0, 0, 0, 11911, 124990, 0, 2346, 194691, 69931, 0, 9646, 3773, 43557, 68154, @@ -25609,7 +25789,7 @@ static const unsigned int code_hash[] = { 0, 111011, 92960, 74356, 0, 74562, 0, 72745, 0, 0, 120568, 0, 0, 0, 0, 0, 8703, 5462, 83195, 0, 10101, 0, 70049, 0, 0, 128793, 0, 0, 66254, 120821, 0, 1565, 123621, 0, 119194, 0, 42651, 0, 0, 917847, 83227, 83218, 0, - 75011, 0, 917846, 0, 64399, 0, 12899, 74564, 0, 42206, 0, 72718, 71715, + 75011, 0, 129724, 0, 64399, 0, 12899, 74564, 0, 42206, 0, 72718, 71715, 83149, 983794, 83146, 12192, 917826, 0, 0, 0, 0, 68056, 0, 67426, 128687, 0, 0, 0, 0, 0, 0, 67431, 71718, 74357, 0, 121176, 43596, 6090, 0, 7812, 10534, 0, 0, 0, 0, 129763, 0, 0, 0, 0, 0, 0, 43306, 0, 0, 0, 7930, 0, @@ -25620,76 +25800,76 @@ static const unsigned int code_hash[] = { 310, 0, 0, 68403, 100480, 72738, 125279, 0, 0, 6497, 127320, 0, 0, 19958, 0, 128691, 74953, 0, 118998, 67332, 374, 0, 41933, 120975, 0, 0, 41934, 7465, 0, 128168, 70666, 11151, 6101, 0, 41936, 100476, 4879, 0, 65446, 0, - 0, 0, 0, 5374, 0, 128059, 127390, 0, 126618, 983575, 129146, 0, 0, 1929, - 0, 12142, 0, 0, 0, 121472, 0, 12982, 0, 5378, 0, 128679, 0, 0, 127869, 0, - 127343, 0, 0, 0, 78832, 74481, 0, 43262, 100511, 2421, 0, 2324, 828, - 3611, 121055, 0, 64314, 0, 0, 0, 0, 0, 0, 7999, 0, 11217, 983263, 10634, - 10942, 0, 2348, 0, 0, 0, 0, 118587, 9982, 64324, 41240, 0, 100470, 78462, - 1810, 0, 92566, 71299, 0, 0, 917848, 0, 0, 100515, 0, 0, 0, 43912, - 128385, 0, 0, 0, 917850, 0, 7485, 0, 129382, 74576, 44019, 128171, - 917851, 3967, 129335, 0, 0, 0, 0, 119096, 0, 0, 8699, 723, 83084, 966, 0, - 0, 0, 128428, 78778, 2320, 0, 65740, 4968, 0, 0, 8075, 55276, 123589, - 8047, 983787, 78827, 12634, 0, 78781, 71322, 0, 12174, 42610, 0, 0, 0, - 1584, 0, 6045, 0, 0, 65218, 11559, 0, 0, 0, 124991, 0, 2257, 64418, 0, 0, - 0, 0, 0, 0, 67821, 0, 13092, 0, 128365, 0, 0, 0, 0, 0, 11414, 0, 2531, - 13034, 0, 0, 0, 13036, 0, 70866, 70198, 10394, 129979, 13037, 0, 129956, - 0, 0, 100496, 120640, 41129, 0, 42850, 13035, 0, 0, 5466, 0, 0, 0, - 129439, 4535, 0, 4271, 0, 0, 6769, 0, 0, 67350, 6767, 0, 66273, 0, 6755, - 73827, 9046, 67355, 0, 0, 0, 0, 0, 0, 0, 0, 92221, 83235, 2563, 13033, - 247, 83229, 0, 12338, 0, 83231, 11270, 0, 0, 0, 0, 70107, 0, 0, 0, 0, - 3752, 83243, 68895, 66973, 68897, 0, 0, 0, 0, 5009, 0, 0, 0, 0, 119521, - 78823, 78824, 70353, 68399, 3877, 0, 78825, 10145, 43566, 0, 0, 10236, 0, - 43782, 0, 127329, 0, 69652, 2247, 120612, 128058, 0, 43200, 43777, 71253, - 983644, 69558, 0, 71866, 43203, 0, 68894, 0, 127326, 0, 43778, 119538, 0, - 0, 43781, 11303, 65547, 0, 7031, 0, 0, 67343, 83237, 83267, 0, 67341, - 120522, 8535, 0, 0, 0, 66032, 0, 0, 120786, 42233, 0, 9946, 7667, 0, - 11822, 0, 43189, 120673, 100507, 2979, 1579, 0, 0, 0, 0, 0, 12635, 71337, - 0, 94055, 0, 1285, 64882, 0, 0, 83113, 12640, 83112, 7401, 92869, 12625, - 0, 71296, 72744, 0, 74286, 55260, 3396, 12642, 0, 110719, 0, 12630, 0, 0, - 10153, 0, 6166, 120516, 0, 110680, 0, 0, 0, 9285, 913, 42259, 83017, 0, - 2142, 127889, 0, 94012, 7878, 0, 72733, 0, 0, 0, 0, 92868, 0, 0, 0, 0, - 128918, 5263, 74782, 0, 41939, 43702, 0, 917856, 0, 10139, 980, 43698, 0, - 2208, 0, 43701, 0, 125132, 0, 100528, 0, 10085, 0, 0, 119989, 100529, 0, - 71699, 0, 8072, 0, 43700, 0, 7304, 7783, 66894, 12398, 0, 0, 0, 0, 0, 0, - 120565, 0, 2217, 0, 94015, 6367, 0, 66688, 0, 0, 0, 0, 0, 92199, 7808, - 1829, 0, 41937, 0, 43272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92467, 6627, 0, - 6258, 10683, 0, 0, 0, 5649, 0, 0, 0, 1643, 127898, 0, 127846, 67244, 0, - 42452, 0, 0, 0, 0, 64291, 0, 0, 0, 6576, 74773, 0, 0, 66309, 0, 9886, - 55225, 11292, 0, 72867, 55227, 0, 12632, 0, 194817, 0, 7680, 0, 92745, - 120714, 12639, 3380, 8123, 0, 12638, 42262, 4501, 0, 0, 0, 0, 125131, - 1494, 983146, 0, 0, 0, 0, 10494, 0, 65872, 0, 0, 0, 0, 0, 0, 983587, 0, - 0, 0, 0, 0, 0, 0, 71077, 0, 127335, 121128, 0, 5570, 1881, 7210, 0, 1012, - 66630, 0, 128982, 7208, 66442, 5569, 113723, 42339, 92655, 0, 0, 0, 0, - 92378, 65602, 0, 92375, 64727, 9160, 0, 0, 0, 124928, 10503, 0, 3423, - 3870, 8483, 10162, 0, 4319, 0, 0, 0, 0, 0, 983116, 0, 69562, 0, 0, 0, 0, - 0, 0, 5571, 7630, 9740, 9121, 5568, 0, 0, 42085, 0, 0, 65056, 0, 589, 0, - 0, 0, 10233, 66252, 66251, 78734, 66253, 0, 0, 42645, 0, 128424, 8583, 0, - 0, 0, 129932, 0, 0, 0, 0, 0, 12204, 92436, 120453, 0, 0, 0, 983259, 0, 0, - 70311, 0, 0, 128012, 41063, 0, 10664, 0, 983660, 0, 4551, 129090, 74759, - 0, 983267, 0, 0, 72806, 0, 0, 12517, 7806, 0, 12034, 0, 6355, 12519, - 41004, 0, 0, 93849, 0, 71707, 0, 121231, 7332, 129075, 12111, 3927, 0, - 12515, 1474, 68768, 0, 6923, 69509, 0, 127802, 0, 43990, 74639, 126229, - 121007, 0, 92706, 0, 0, 0, 0, 0, 9645, 0, 121026, 5853, 0, 10363, 120729, - 12956, 0, 0, 0, 0, 127888, 0, 0, 0, 0, 0, 10514, 65517, 0, 0, 71101, 0, - 0, 0, 43570, 2969, 43420, 129944, 0, 0, 92366, 70809, 0, 0, 0, 0, 0, - 118714, 12125, 41124, 0, 1164, 128817, 0, 120466, 0, 0, 65014, 66009, - 74451, 125075, 983128, 7469, 0, 0, 0, 69988, 120671, 83171, 41123, 11176, - 0, 0, 41126, 9991, 41128, 0, 0, 110949, 0, 0, 42877, 7994, 0, 6104, - 983612, 0, 129869, 0, 0, 0, 0, 74438, 128272, 121409, 41981, 0, 69296, - 42904, 0, 0, 74435, 126640, 0, 0, 0, 127968, 92442, 12703, 9661, 67360, - 67359, 7455, 70732, 11473, 119217, 128512, 0, 92323, 0, 0, 129632, 67358, - 0, 0, 0, 0, 174, 121131, 883, 4161, 128033, 42603, 0, 0, 72256, 0, 0, - 128356, 0, 0, 0, 0, 3846, 8070, 6150, 128109, 4370, 118617, 0, 0, 74587, - 0, 0, 0, 0, 4986, 12189, 917553, 67648, 120499, 0, 4257, 71695, 123620, - 6220, 0, 65561, 0, 0, 0, 0, 122652, 0, 0, 0, 69684, 0, 0, 128452, 120873, - 0, 0, 74922, 0, 71897, 0, 0, 67368, 67367, 8871, 67366, 0, 0, 0, 0, 0, - 67361, 0, 0, 67365, 67364, 3427, 4240, 67376, 67375, 67374, 67373, 0, 0, - 0, 67377, 0, 71689, 0, 0, 67372, 67371, 67370, 67369, 0, 0, 0, 124962, 0, - 0, 0, 0, 65898, 0, 65312, 0, 0, 0, 0, 4010, 121208, 41106, 0, 0, 0, - 41105, 0, 64803, 83456, 0, 0, 0, 0, 0, 0, 0, 11008, 0, 0, 71351, 41110, - 71681, 64892, 9113, 1954, 41108, 0, 42878, 0, 67405, 0, 0, 0, 0, 0, - 119539, 69435, 73463, 0, 4586, 129342, 0, 0, 0, 0, 0, 125233, 92307, 0, - 0, 0, 67382, 0, 9500, 0, 4957, 0, 2422, 2212, 0, 67381, 67380, 11045, + 0, 983695, 0, 5374, 0, 128059, 127390, 0, 126618, 983575, 129146, 0, 0, + 1929, 0, 12142, 0, 0, 0, 121472, 0, 12982, 0, 5378, 0, 128679, 0, 0, + 127869, 0, 127343, 0, 0, 0, 78832, 74481, 0, 43262, 100511, 2421, 0, + 2324, 828, 3611, 121055, 0, 64314, 0, 0, 0, 0, 0, 0, 7999, 0, 11217, + 983266, 10634, 10942, 0, 2348, 0, 0, 0, 0, 118587, 9982, 64324, 41240, 0, + 100470, 78462, 1810, 0, 92566, 71299, 0, 0, 917848, 0, 0, 100515, 0, 0, + 0, 43912, 128385, 0, 0, 0, 917850, 0, 7485, 0, 129382, 74576, 44019, + 128171, 917851, 3967, 129335, 0, 0, 0, 0, 119096, 0, 0, 8699, 723, 83084, + 966, 0, 0, 0, 128428, 78778, 2320, 0, 65740, 4968, 0, 0, 8075, 55276, + 123589, 8047, 983787, 78827, 12634, 0, 78781, 71322, 0, 12174, 42610, 0, + 0, 0, 1584, 0, 6045, 0, 0, 65218, 11559, 0, 0, 0, 124991, 0, 2257, 64418, + 0, 0, 0, 0, 0, 0, 67821, 0, 13092, 0, 128365, 0, 0, 0, 0, 0, 11414, 0, + 2531, 13034, 0, 0, 0, 13036, 0, 70866, 70198, 10394, 129979, 13037, 0, + 129956, 0, 0, 100496, 120640, 41129, 0, 42850, 13035, 0, 0, 5466, 0, 0, + 0, 129439, 4535, 0, 4271, 0, 0, 6769, 0, 0, 67350, 6767, 0, 66273, 0, + 6755, 73827, 9046, 67355, 0, 0, 0, 0, 0, 0, 0, 0, 92221, 83235, 2563, + 13033, 247, 83229, 0, 12338, 0, 83231, 11270, 0, 0, 0, 0, 70107, 0, 0, 0, + 0, 3752, 83243, 68895, 66973, 68897, 0, 0, 0, 0, 5009, 0, 0, 0, 0, + 119521, 78823, 78824, 70353, 68399, 3877, 0, 78825, 10145, 43566, 0, 0, + 10236, 0, 43782, 0, 127329, 0, 69652, 2247, 120612, 128058, 0, 43200, + 43777, 71253, 983644, 69558, 0, 71866, 43203, 0, 68894, 0, 127326, 0, + 43778, 119538, 0, 0, 43781, 11303, 65547, 0, 7031, 0, 0, 67343, 83237, + 83267, 0, 67341, 120522, 8535, 0, 0, 0, 66032, 0, 0, 120786, 42233, 0, + 9946, 7667, 0, 11822, 0, 43189, 120673, 100507, 2979, 1579, 0, 0, 0, 0, + 0, 12635, 71337, 0, 94055, 0, 1285, 64882, 0, 0, 83113, 12640, 83112, + 7401, 92869, 12625, 0, 71296, 72744, 0, 74286, 55260, 3396, 12642, 0, + 110719, 0, 12630, 0, 0, 10153, 0, 6166, 120516, 0, 110680, 0, 0, 119499, + 9285, 913, 42259, 83017, 0, 2142, 127889, 0, 94012, 7878, 0, 72733, 0, 0, + 0, 0, 92868, 0, 0, 0, 0, 128918, 5263, 74782, 0, 41939, 43702, 0, 917856, + 0, 10139, 980, 43698, 0, 2208, 0, 43701, 0, 125132, 0, 100528, 0, 10085, + 0, 0, 119989, 100529, 0, 71699, 0, 8072, 0, 43700, 0, 7304, 7783, 66894, + 12398, 0, 0, 0, 0, 0, 0, 120565, 0, 2217, 0, 94015, 6367, 0, 66688, 0, 0, + 0, 0, 0, 92199, 7808, 1829, 0, 41937, 0, 43272, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 92467, 6627, 0, 6258, 10683, 0, 0, 0, 5649, 0, 0, 0, 1643, 127898, + 0, 127846, 67244, 0, 42452, 0, 0, 0, 0, 64291, 0, 0, 0, 6576, 74773, 0, + 0, 66309, 0, 9886, 55225, 11292, 0, 72867, 55227, 0, 12632, 0, 194817, 0, + 7680, 0, 92745, 120714, 12639, 3380, 8123, 0, 12638, 42262, 4501, 0, 0, + 0, 0, 125131, 1494, 983147, 0, 0, 0, 0, 10494, 0, 65872, 0, 0, 0, 0, 0, + 0, 983587, 0, 0, 0, 0, 0, 0, 0, 71077, 0, 127335, 121128, 0, 5570, 1881, + 7210, 0, 1012, 66630, 0, 128982, 7208, 66442, 5569, 113723, 42339, 92655, + 0, 0, 0, 0, 92378, 65602, 0, 92375, 64727, 9160, 0, 0, 0, 124928, 10503, + 0, 3423, 3870, 8483, 10162, 0, 4319, 0, 0, 0, 0, 0, 983117, 0, 69562, 0, + 0, 0, 0, 0, 0, 5571, 7630, 9740, 9121, 5568, 0, 0, 42085, 0, 0, 65056, 0, + 589, 0, 0, 0, 10233, 66252, 66251, 78734, 66253, 0, 0, 42645, 0, 128424, + 8583, 0, 0, 0, 129932, 0, 0, 0, 0, 0, 12204, 92436, 120453, 0, 0, 0, + 983262, 0, 0, 70311, 0, 0, 128012, 41063, 0, 10664, 0, 983660, 0, 4551, + 129090, 74759, 0, 983270, 0, 0, 72806, 0, 0, 12517, 7806, 0, 12034, 0, + 6355, 12519, 41004, 0, 0, 93849, 0, 71707, 0, 121231, 7332, 129075, + 12111, 3927, 0, 12515, 1474, 68768, 0, 6923, 69509, 0, 127802, 0, 43990, + 74639, 126229, 121007, 0, 92706, 0, 0, 0, 0, 0, 9645, 0, 121026, 5853, 0, + 10363, 120729, 12956, 0, 0, 0, 0, 127888, 0, 0, 0, 0, 0, 10514, 65517, 0, + 0, 71101, 0, 0, 0, 43570, 2969, 43420, 129944, 0, 0, 92366, 70809, 0, 0, + 0, 0, 0, 118714, 12125, 41124, 0, 1164, 128817, 0, 120466, 0, 0, 65014, + 66009, 74451, 125075, 983129, 7469, 0, 0, 0, 69988, 120671, 83171, 41123, + 11176, 0, 0, 41126, 9991, 41128, 0, 0, 110949, 0, 0, 42877, 7994, 0, + 6104, 983612, 0, 129869, 0, 0, 0, 0, 74438, 128272, 121409, 41981, 0, + 69296, 42904, 0, 0, 74435, 126640, 0, 0, 0, 127968, 92442, 12703, 9661, + 67360, 67359, 7455, 70732, 11473, 119217, 128512, 0, 92323, 0, 0, 129632, + 67358, 0, 0, 0, 0, 174, 121131, 883, 4161, 128033, 42603, 0, 0, 72256, 0, + 0, 128356, 0, 0, 0, 0, 3846, 8070, 6150, 128109, 4370, 118617, 0, 0, + 74587, 0, 0, 0, 0, 4986, 12189, 917553, 67648, 120499, 0, 4257, 71695, + 123620, 6220, 0, 65561, 0, 0, 0, 0, 122652, 0, 0, 0, 69684, 0, 0, 128452, + 120873, 0, 0, 74922, 0, 71897, 0, 0, 67368, 67367, 8871, 67366, 0, 0, 0, + 0, 0, 67361, 0, 0, 67365, 67364, 3427, 4240, 67376, 67375, 67374, 67373, + 0, 0, 0, 67377, 0, 71689, 0, 0, 67372, 67371, 67370, 67369, 0, 0, 0, + 124962, 0, 0, 0, 0, 65898, 0, 65312, 0, 0, 0, 0, 4010, 121208, 41106, 0, + 0, 0, 41105, 0, 64803, 83456, 0, 0, 0, 0, 0, 0, 0, 11008, 0, 0, 71351, + 41110, 71681, 64892, 9113, 1954, 41108, 0, 42878, 0, 67405, 0, 0, 0, 0, + 0, 119539, 69435, 73463, 0, 4586, 129342, 0, 0, 0, 0, 0, 125233, 92307, + 0, 0, 0, 67382, 0, 9500, 0, 4957, 0, 2422, 2212, 0, 67381, 67380, 11045, 67378, 0, 0, 3890, 12168, 121328, 0, 0, 0, 41947, 0, 120828, 74946, 917901, 0, 1571, 66461, 41949, 42805, 8270, 943, 41946, 0, 2073, 0, 41980, 0, 0, 0, 0, 4429, 6272, 0, 1460, 6954, 128572, 41120, 0, 65733, 0, @@ -25697,286 +25877,287 @@ static const unsigned int code_hash[] = { 0, 0, 0, 0, 0, 41122, 0, 2457, 0, 0, 0, 0, 0, 0, 8840, 8035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8681, 0, 121505, 128747, 0, 0, 70102, 0, 124976, 9605, 0, 13220, 0, 67354, 11312, 0, 9246, 67349, 0, 0, 0, 0, 10012, 12123, 0, - 0, 0, 0, 983846, 0, 0, 0, 67817, 0, 1272, 0, 0, 0, 983578, 0, 1467, 0, - 917806, 0, 0, 0, 70312, 0, 124955, 0, 70400, 0, 0, 72817, 0, 19935, 0, - 92162, 0, 0, 0, 128406, 5275, 0, 0, 44006, 129082, 0, 3789, 128205, 0, 0, - 0, 11474, 0, 0, 0, 129050, 0, 92194, 129503, 9537, 4496, 0, 120443, 2605, - 4500, 0, 55224, 8600, 0, 0, 41646, 11667, 69569, 0, 0, 917905, 4499, - 41649, 0, 0, 0, 69254, 0, 0, 0, 65804, 0, 70034, 41866, 0, 0, 0, 11174, - 0, 0, 0, 9559, 128773, 41940, 8299, 41945, 0, 41941, 5455, 7190, 0, 0, - 917810, 65266, 0, 41943, 10762, 0, 41931, 0, 0, 8106, 4128, 0, 0, 4494, - 0, 0, 72405, 0, 119567, 42068, 917808, 0, 11004, 12794, 65072, 5271, - 7317, 0, 0, 0, 0, 0, 0, 92281, 0, 0, 0, 0, 71880, 3868, 71881, 983573, - 128431, 7703, 0, 64390, 0, 7406, 120358, 93850, 0, 3985, 66425, 0, 66615, - 10177, 0, 41853, 71873, 12809, 0, 12193, 0, 10879, 0, 0, 9055, 0, 3851, - 8132, 0, 0, 119263, 917908, 0, 0, 0, 0, 0, 42657, 0, 7643, 0, 0, 0, - 43568, 0, 11949, 7650, 43569, 64951, 7647, 7649, 0, 7646, 0, 0, 9651, - 125005, 3891, 0, 0, 2337, 77831, 77832, 67860, 129288, 0, 0, 43561, - 67706, 119669, 0, 1860, 0, 68835, 5812, 12784, 0, 0, 0, 0, 69260, 7727, - 0, 69292, 69818, 66444, 128665, 42719, 0, 1569, 0, 12534, 12124, 7690, - 194871, 12533, 0, 68383, 67997, 0, 6969, 0, 0, 0, 67974, 63895, 128650, - 0, 0, 0, 42144, 0, 0, 0, 0, 92211, 119043, 0, 0, 917545, 0, 0, 12791, 0, - 0, 0, 4447, 71065, 12793, 0, 0, 43385, 0, 0, 12790, 120256, 0, 983840, - 12792, 120254, 0, 0, 12789, 128489, 12317, 74934, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 127840, 41652, 2974, 78689, 11476, 0, 0, 0, 0, 43871, 0, 10894, - 119176, 74557, 65686, 0, 0, 3724, 67335, 67334, 67333, 67338, 67337, 0, - 67336, 0, 65306, 0, 128421, 0, 8646, 129593, 77829, 0, 0, 74852, 0, 0, 0, - 0, 0, 220, 120252, 43551, 0, 10044, 0, 0, 983847, 68659, 110825, 5707, - 71362, 0, 0, 0, 0, 0, 0, 10297, 0, 41308, 67331, 0, 0, 0, 0, 2467, 0, - 6003, 0, 0, 8040, 0, 0, 4182, 0, 11135, 120501, 0, 0, 2510, 0, 10208, 0, - 78302, 70829, 0, 0, 6837, 0, 0, 67348, 0, 0, 0, 0, 1559, 67342, 11104, - 67340, 67347, 67346, 67345, 67344, 0, 0, 67357, 67356, 0, 0, 0, 0, 67352, - 67351, 5516, 2845, 7717, 8036, 65161, 67353, 5514, 12045, 6278, 0, 5515, - 0, 0, 0, 0, 0, 65194, 100387, 5517, 70116, 92774, 0, 67884, 0, 67890, - 42094, 67880, 67881, 67882, 67883, 0, 0, 67879, 120411, 1902, 67887, - 67888, 12976, 126546, 12483, 12368, 41769, 42726, 41765, 69557, 12787, - 67874, 7556, 67878, 74351, 67897, 989, 42677, 67889, 0, 6060, 0, 4326, - 11000, 64601, 68478, 0, 0, 6917, 0, 120837, 0, 0, 0, 6148, 8605, 74205, - 0, 0, 0, 42715, 0, 101047, 0, 68663, 0, 41796, 1269, 42703, 64754, - 101049, 101042, 5144, 12221, 42716, 71048, 5133, 4331, 0, 128675, 0, - 5279, 121362, 71046, 0, 0, 42701, 0, 0, 0, 121470, 0, 0, 0, 983308, 0, - 983608, 121259, 42666, 12207, 1067, 255, 12131, 0, 0, 0, 0, 0, 0, 0, - 70728, 43460, 0, 42723, 125216, 0, 70427, 0, 12797, 0, 0, 983722, 0, - 67977, 12799, 0, 92504, 9746, 5135, 0, 12796, 0, 0, 0, 5139, 346, 74303, - 121134, 12795, 125109, 5168, 0, 43845, 983727, 0, 8253, 8817, 1136, - 983735, 43563, 127774, 129542, 0, 0, 0, 0, 0, 0, 983619, 0, 0, 4041, 0, - 2357, 43240, 12786, 0, 0, 0, 44004, 7142, 0, 67984, 0, 0, 0, 0, 12785, 0, - 0, 7770, 10712, 64853, 42679, 118916, 42375, 0, 983123, 94074, 12119, 0, - 11059, 10791, 111092, 450, 0, 0, 0, 0, 5450, 64691, 0, 0, 44009, 0, 0, - 111097, 94085, 1839, 94004, 0, 10927, 1701, 0, 129610, 41749, 41761, - 5453, 8361, 66045, 41758, 5444, 41763, 0, 0, 0, 66349, 983137, 121274, 0, - 0, 8801, 0, 4340, 0, 0, 0, 0, 70001, 41824, 0, 0, 0, 0, 42700, 0, 127980, - 0, 0, 0, 0, 0, 0, 4493, 4336, 129171, 2314, 983061, 41808, 0, 0, 0, - 64638, 0, 65937, 4489, 71331, 0, 0, 5358, 42717, 0, 71236, 0, 0, 0, - 127042, 41813, 2712, 0, 127044, 1410, 0, 0, 0, 0, 0, 0, 0, 0, 128587, 0, - 0, 0, 4892, 0, 0, 0, 0, 0, 5777, 0, 759, 0, 2079, 65248, 12788, 0, 64552, - 0, 41803, 68043, 0, 0, 0, 0, 128785, 0, 68492, 67991, 75071, 2340, 0, - 120638, 0, 983902, 0, 0, 917865, 64749, 0, 2321, 3587, 0, 67236, 9953, - 9952, 0, 0, 42714, 9951, 0, 0, 127902, 74150, 0, 0, 74757, 127554, 0, - 983826, 2395, 0, 9976, 0, 125128, 0, 0, 0, 42809, 42807, 0, 66290, 70854, - 4150, 64424, 8318, 41790, 67976, 65559, 2360, 41794, 0, 0, 120987, 0, 0, - 2418, 0, 2411, 0, 41783, 0, 41786, 65108, 0, 0, 41772, 42813, 2317, 0, - 118980, 0, 0, 0, 0, 0, 0, 78682, 7753, 2351, 6655, 64489, 0, 0, 0, 4443, - 41697, 230, 65793, 0, 65943, 42803, 0, 0, 5441, 0, 0, 127053, 0, 855, 0, - 6109, 101021, 0, 119116, 69989, 0, 0, 72146, 0, 101023, 0, 72148, 124918, - 19915, 41892, 0, 0, 128901, 41887, 0, 67980, 9735, 0, 0, 120591, 13082, - 101026, 0, 0, 0, 0, 0, 0, 0, 289, 0, 0, 64504, 0, 69489, 120514, 0, - 92962, 0, 42724, 69977, 0, 0, 0, 0, 67994, 0, 0, 0, 3565, 0, 0, 127553, - 43035, 69898, 0, 0, 0, 0, 4891, 0, 0, 4602, 0, 121065, 0, 0, 121157, 0, - 43978, 8988, 0, 0, 0, 0, 0, 119184, 121436, 73902, 69740, 0, 0, 72976, 0, - 0, 8771, 0, 0, 0, 119209, 74974, 71737, 0, 0, 67987, 0, 0, 0, 67989, 0, - 10065, 8207, 0, 983588, 0, 0, 662, 0, 41927, 0, 0, 0, 0, 0, 0, 0, 41929, - 0, 0, 0, 41926, 69994, 0, 0, 0, 126230, 68013, 1433, 64648, 6475, 0, - 120983, 0, 73876, 0, 0, 0, 67992, 78052, 0, 3978, 0, 0, 0, 0, 120761, - 12281, 0, 0, 13241, 0, 0, 0, 0, 11765, 42577, 0, 0, 2641, 7192, 0, 0, - 118809, 101015, 0, 101016, 128948, 101013, 6479, 64294, 118683, 0, 0, 0, - 64334, 0, 0, 0, 92266, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9478, 127339, - 124964, 0, 202, 0, 0, 1242, 0, 121170, 0, 63940, 0, 0, 0, 63939, 11990, - 92430, 67982, 0, 65440, 70068, 0, 0, 64829, 0, 0, 0, 0, 0, 2858, 0, - 63989, 0, 69239, 0, 121152, 0, 77841, 0, 70078, 92574, 129519, 0, 0, 0, - 128974, 0, 12922, 92498, 0, 66424, 71124, 0, 0, 0, 2856, 0, 47, 0, - 126986, 65858, 0, 0, 0, 0, 119161, 8417, 65903, 0, 0, 0, 4033, 128164, 0, - 0, 0, 129961, 64600, 1903, 12320, 0, 120894, 0, 0, 8915, 0, 945, 0, 0, 0, - 0, 111068, 0, 74828, 0, 69560, 9531, 0, 8505, 0, 119238, 0, 0, 65538, 0, - 0, 0, 0, 0, 0, 63935, 0, 0, 0, 0, 0, 64787, 111060, 0, 0, 110828, 0, - 2230, 0, 0, 71886, 9843, 0, 92419, 111062, 67488, 92715, 0, 1320, 0, - 1673, 0, 92383, 129902, 9338, 128355, 0, 0, 0, 0, 11997, 0, 0, 0, 0, 0, - 0, 43308, 0, 0, 0, 0, 0, 0, 0, 63920, 0, 0, 0, 0, 0, 0, 3514, 78723, 0, - 7492, 0, 0, 0, 7514, 0, 63924, 0, 7502, 7587, 0, 0, 0, 118689, 43881, - 7610, 0, 0, 118710, 692, 43588, 0, 0, 75056, 9688, 0, 9535, 0, 0, 0, - 64530, 0, 125251, 194861, 0, 72209, 7453, 0, 8013, 66396, 0, 0, 8895, - 5356, 0, 5458, 0, 2866, 0, 127860, 71732, 71724, 6700, 0, 111081, 120583, - 0, 110614, 0, 9641, 63830, 65294, 0, 0, 67969, 0, 7441, 0, 63826, 0, 0, - 0, 0, 2844, 983972, 0, 63824, 12139, 67971, 0, 0, 3358, 65295, 0, 3104, - 0, 0, 0, 0, 65772, 0, 0, 0, 0, 2862, 11326, 0, 0, 94001, 3268, 66591, 0, - 6552, 42367, 7035, 120558, 0, 0, 1814, 195092, 10240, 195093, 0, 0, 0, 0, - 0, 66960, 0, 0, 2837, 4341, 0, 0, 129982, 125064, 195094, 0, 0, 66964, 0, - 72721, 863, 66936, 0, 0, 43323, 66928, 0, 0, 68054, 0, 3654, 66951, 0, - 66942, 0, 0, 7653, 0, 0, 66587, 0, 0, 92401, 0, 0, 12927, 0, 0, 129697, - 13056, 0, 0, 3056, 0, 0, 195101, 0, 0, 74506, 73770, 0, 0, 0, 0, 0, 0, 0, - 0, 72233, 0, 5811, 0, 0, 0, 66817, 983855, 0, 0, 128636, 129311, 0, - 128041, 0, 67739, 120965, 0, 0, 67507, 0, 68375, 0, 0, 70300, 0, 0, 0, - 983698, 111078, 0, 11991, 128079, 0, 92943, 1502, 74117, 127988, 0, - 129478, 121253, 0, 67661, 0, 0, 125084, 68667, 0, 74057, 68639, 0, 42898, - 120742, 0, 74388, 74838, 120822, 0, 0, 0, 0, 69452, 43214, 5893, 0, 0, - 92496, 0, 0, 119907, 119900, 0, 0, 0, 0, 41950, 0, 0, 68610, 0, 68626, - 894, 0, 0, 12306, 73846, 0, 0, 0, 8636, 0, 121028, 42503, 0, 92942, 0, - 121468, 119241, 0, 126569, 5096, 5095, 2863, 127505, 0, 10454, 42530, - 5094, 0, 0, 13156, 0, 111035, 5093, 127178, 983416, 0, 5092, 10708, - 11327, 0, 5091, 0, 0, 9153, 4104, 78599, 78601, 2929, 42712, 75067, - 12272, 9832, 0, 0, 111105, 0, 0, 0, 0, 0, 0, 13106, 0, 0, 129111, 0, 0, - 0, 0, 9074, 111111, 0, 111110, 0, 8113, 11168, 92563, 1786, 111109, 0, - 111108, 0, 74423, 0, 586, 74414, 64359, 1267, 0, 127531, 0, 65731, 0, 0, - 0, 92932, 0, 0, 0, 0, 0, 0, 1228, 0, 42846, 0, 0, 70343, 1714, 74406, 0, - 0, 0, 127389, 66225, 0, 0, 42660, 0, 0, 3804, 0, 0, 129859, 0, 2826, 0, - 0, 0, 128396, 0, 0, 0, 0, 0, 0, 12206, 5839, 0, 68524, 74065, 0, 0, 0, - 126240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67241, 917821, 7030, 0, 10479, - 64959, 2852, 0, 121225, 0, 0, 128586, 0, 6963, 0, 0, 0, 74786, 0, 0, 0, - 0, 121281, 0, 0, 0, 0, 113815, 121360, 0, 9994, 118680, 2864, 64719, - 1148, 0, 41677, 0, 0, 2765, 0, 128181, 0, 0, 0, 92516, 74777, 0, 0, - 65206, 0, 0, 0, 0, 69391, 0, 0, 983770, 0, 41839, 129616, 983773, 0, 0, - 6931, 0, 0, 7177, 125137, 0, 0, 0, 93020, 0, 10722, 0, 0, 128186, 121050, - 0, 0, 127207, 0, 750, 0, 129453, 63912, 0, 0, 7032, 0, 0, 4314, 128600, - 0, 128409, 730, 0, 127866, 0, 0, 41380, 0, 0, 0, 69697, 8240, 92939, 0, - 41378, 0, 6938, 70026, 0, 0, 66246, 0, 0, 0, 0, 0, 0, 983094, 0, 92754, - 41470, 64805, 0, 0, 0, 0, 0, 0, 0, 0, 92938, 68370, 0, 0, 73831, 0, 0, 0, - 2872, 0, 0, 0, 0, 604, 41097, 0, 0, 0, 0, 0, 127488, 0, 2836, 0, 0, 9707, - 0, 43202, 0, 0, 0, 0, 0, 120916, 2832, 92702, 9670, 12937, 0, 0, 0, 0, - 2822, 0, 0, 92519, 0, 73752, 0, 0, 0, 1331, 92603, 0, 11856, 0, 129432, - 5090, 5089, 0, 3200, 0, 0, 0, 5088, 0, 0, 9477, 0, 0, 5087, 92325, 0, 96, - 5086, 0, 0, 0, 5085, 64286, 0, 0, 43820, 0, 983741, 0, 0, 119042, 0, - 129660, 0, 0, 0, 0, 0, 127241, 120891, 7601, 0, 591, 0, 118953, 0, 0, 0, - 0, 0, 10939, 7246, 6933, 67142, 67141, 0, 74600, 120695, 0, 67138, 65574, - 0, 78058, 67140, 73851, 74598, 67139, 128094, 0, 6372, 0, 0, 7963, 6371, - 0, 0, 125040, 0, 0, 0, 0, 0, 0, 0, 8258, 123591, 0, 0, 65148, 118919, 42, - 0, 0, 0, 0, 0, 0, 0, 0, 67135, 67134, 67133, 0, 0, 0, 0, 67136, 67130, - 74597, 11550, 0, 67132, 65868, 0, 12826, 127872, 0, 126235, 9737, 92448, - 0, 0, 0, 8878, 0, 0, 0, 0, 0, 72220, 9086, 0, 0, 0, 7437, 7454, 0, 0, 0, - 0, 9042, 0, 0, 0, 0, 3805, 0, 67128, 44001, 67126, 0, 44022, 19949, - 12200, 43522, 983045, 43525, 0, 0, 0, 64422, 67125, 67124, 7602, 0, 0, - 43521, 0, 0, 43711, 43523, 41447, 8424, 68483, 8704, 2397, 0, 0, 0, 0, 0, - 10916, 0, 129290, 93998, 0, 0, 0, 127800, 67686, 9961, 123203, 0, 68842, - 10792, 8889, 121402, 6951, 0, 68827, 917835, 74342, 0, 0, 0, 68816, - 129152, 0, 42909, 66597, 70092, 0, 0, 10481, 4559, 0, 1956, 43138, 0, 0, - 43490, 43148, 0, 0, 0, 43140, 0, 0, 0, 0, 69268, 8533, 0, 0, 0, 0, 0, - 4357, 0, 70289, 983156, 0, 42911, 0, 0, 0, 10941, 0, 6962, 0, 0, 113808, - 0, 11014, 0, 8942, 12000, 0, 0, 0, 0, 0, 0, 42650, 0, 75016, 63975, 0, - 66210, 0, 0, 129150, 0, 11193, 0, 0, 0, 0, 0, 0, 0, 43476, 0, 11024, - 74811, 72787, 10563, 92954, 0, 0, 2462, 92955, 0, 0, 66213, 6957, 0, - 120559, 0, 0, 0, 74594, 983421, 92347, 0, 110702, 110708, 110707, 127119, - 3109, 127117, 119909, 0, 121434, 0, 0, 4042, 0, 0, 0, 127123, 127122, - 127121, 0, 127999, 0, 3503, 74444, 68300, 6694, 127997, 0, 0, 74306, 0, - 983757, 7736, 0, 0, 0, 10521, 0, 42173, 9705, 0, 129719, 6955, 71467, 0, - 6149, 3887, 19956, 1411, 2824, 0, 0, 0, 1403, 0, 1347, 66282, 127996, 0, - 0, 0, 0, 8640, 0, 1178, 1654, 0, 0, 129529, 43314, 0, 0, 0, 0, 2873, - 67461, 0, 0, 67085, 10861, 0, 0, 70377, 0, 67082, 11159, 41391, 67084, 0, - 376, 6987, 983181, 119904, 0, 8823, 0, 12943, 65185, 100988, 42099, 0, 0, - 100990, 0, 8301, 0, 0, 1684, 0, 0, 0, 120620, 0, 0, 0, 42121, 0, 66781, - 78067, 42115, 0, 127998, 0, 67080, 1493, 42111, 67077, 4097, 0, 983767, - 0, 65808, 41642, 0, 118568, 67076, 41636, 67074, 65095, 110660, 72254, - 121240, 41629, 12154, 75073, 0, 128179, 74084, 64380, 0, 0, 0, 0, 0, - 71193, 65371, 7078, 121218, 0, 0, 74592, 0, 0, 43275, 0, 41434, 6062, 0, - 0, 19916, 0, 6950, 9606, 9842, 0, 65744, 0, 0, 128659, 0, 41615, 10105, - 0, 0, 41632, 7493, 0, 0, 41622, 0, 0, 0, 0, 7632, 983215, 983214, 9805, - 5990, 900, 0, 983388, 0, 120869, 3612, 0, 64376, 0, 5389, 129469, 0, 0, - 2839, 9621, 582, 0, 0, 3749, 0, 7569, 0, 0, 92865, 6956, 4403, 0, 0, - 3299, 0, 0, 119127, 65676, 0, 74372, 0, 983494, 7598, 69819, 42469, - 42242, 1918, 9542, 480, 7716, 0, 0, 0, 0, 0, 69918, 0, 8328, 0, 118894, - 0, 0, 0, 0, 11132, 0, 66743, 74185, 100531, 2854, 66747, 0, 65755, 0, - 67120, 67119, 65835, 67117, 66736, 67123, 67122, 67121, 9881, 100481, - 65757, 100538, 100459, 67116, 8648, 128377, 6741, 43047, 0, 13180, 0, - 100487, 66754, 0, 128946, 0, 0, 41752, 0, 8641, 100490, 125185, 100489, - 100462, 100541, 6942, 69501, 1024, 42849, 41751, 0, 8941, 101034, 11121, - 0, 9023, 40973, 121476, 9928, 67109, 66865, 0, 67114, 67113, 67112, - 67111, 0, 41206, 120724, 9049, 67108, 43166, 0, 41200, 128201, 125142, - 126537, 0, 0, 41188, 119553, 0, 101007, 917548, 74585, 78626, 0, 0, - 11466, 0, 120797, 0, 125067, 2261, 0, 2860, 0, 0, 70828, 127925, 92357, - 67106, 12065, 42872, 0, 43875, 67103, 43856, 0, 67102, 67105, 7531, - 40981, 2413, 100522, 67404, 100521, 0, 67101, 41196, 100523, 0, 0, - 983746, 43117, 100495, 0, 0, 0, 0, 69876, 0, 7173, 496, 0, 4313, 64607, - 0, 0, 0, 2065, 42793, 2842, 0, 83152, 13132, 798, 0, 12801, 67098, 10686, - 118528, 128143, 0, 8054, 9174, 67087, 67086, 67097, 67096, 41611, 67095, - 74504, 78854, 42512, 0, 78857, 42089, 74613, 78856, 0, 101029, 100468, - 42079, 100467, 0, 66961, 100474, 0, 0, 0, 68338, 69958, 0, 0, 0, 0, 0, - 78859, 42093, 128951, 100504, 0, 0, 0, 4580, 0, 0, 0, 92167, 0, 3021, - 42004, 0, 0, 42317, 41998, 0, 6946, 77920, 0, 123610, 0, 0, 0, 121442, - 42690, 9880, 0, 0, 64589, 0, 0, 127880, 68035, 0, 11360, 0, 0, 72242, 0, - 0, 0, 0, 0, 64941, 0, 0, 0, 6856, 65671, 11244, 73706, 6959, 41994, - 42907, 0, 0, 122902, 8617, 41982, 8860, 0, 0, 121256, 0, 0, 9597, 0, - 43172, 0, 10117, 0, 92297, 65865, 0, 0, 128077, 0, 126065, 0, 187, 0, - 65669, 0, 4963, 0, 0, 0, 8964, 0, 7775, 0, 41948, 0, 0, 101010, 41942, - 65449, 3160, 65922, 13226, 42665, 0, 42663, 128210, 41766, 983500, 78848, - 78849, 41760, 1189, 905, 110620, 42658, 78851, 67859, 9629, 6742, 0, - 43625, 12952, 7888, 0, 3980, 0, 42656, 0, 42055, 0, 0, 0, 64540, 0, 7867, - 69218, 6236, 0, 0, 10505, 0, 12851, 118948, 0, 5474, 128843, 3103, 0, - 41753, 41733, 78051, 983474, 78844, 78845, 41739, 78843, 70744, 10931, - 41756, 43347, 68098, 122909, 41746, 119147, 92591, 41259, 66954, 69930, - 2691, 121338, 11231, 41244, 0, 69800, 66364, 41262, 67503, 0, 0, 41251, - 0, 0, 11805, 0, 0, 68331, 94045, 0, 0, 0, 74633, 41266, 126642, 0, 0, 0, - 65741, 41737, 2275, 2666, 121232, 41738, 4967, 419, 13126, 0, 0, 42822, - 0, 6434, 74913, 0, 0, 6432, 0, 69932, 128862, 769, 41742, 69927, 74805, - 6433, 0, 547, 1943, 6439, 0, 4994, 487, 0, 0, 3754, 0, 0, 0, 0, 74780, 0, - 0, 1595, 92777, 74431, 0, 0, 74860, 43267, 0, 0, 129083, 12185, 69406, 0, - 0, 100984, 0, 42856, 0, 0, 983765, 128319, 75057, 0, 0, 0, 65612, 0, 669, - 0, 0, 0, 0, 0, 70445, 100404, 69929, 0, 0, 460, 121513, 0, 0, 0, 120747, - 0, 121519, 121518, 0, 0, 121515, 71491, 65187, 9044, 78497, 11760, 78494, - 7577, 78491, 41912, 100412, 0, 100411, 0, 0, 100394, 78501, 0, 2933, - 78500, 0, 66441, 100392, 100397, 100391, 1549, 0, 100415, 0, 41755, 6206, - 8670, 120587, 0, 69935, 0, 0, 69768, 100952, 0, 66958, 0, 0, 10552, - 64342, 41922, 0, 917858, 0, 917857, 2717, 0, 0, 0, 73664, 41908, 100722, - 41916, 0, 0, 0, 92506, 100723, 66664, 69803, 0, 100725, 0, 0, 43373, 0, - 0, 8468, 100729, 121173, 128297, 119210, 118952, 0, 0, 0, 100686, 0, 0, - 0, 128703, 100670, 457, 78502, 78503, 123180, 43006, 0, 8802, 113777, 0, - 0, 0, 0, 126632, 0, 41757, 0, 100657, 44000, 0, 0, 43534, 0, 0, 11961, - 121316, 0, 0, 0, 128736, 0, 0, 9499, 92977, 128330, 0, 0, 92260, 68184, - 0, 0, 7256, 66993, 983179, 0, 42161, 0, 119126, 128022, 65880, 0, 10802, - 64861, 0, 0, 0, 0, 0, 0, 73109, 0, 955, 0, 0, 5350, 64339, 0, 100705, - 10875, 0, 5477, 73121, 0, 0, 0, 67693, 69790, 0, 0, 3874, 0, 0, 0, 0, - 83272, 100674, 127397, 0, 100989, 0, 41038, 67502, 9207, 42239, 0, 0, 0, - 0, 74432, 0, 0, 1455, 129680, 0, 11753, 119233, 0, 118594, 127854, - 100716, 69801, 0, 0, 43520, 0, 119556, 0, 0, 0, 0, 100733, 10788, 6088, - 0, 129587, 190, 983343, 12593, 100737, 129308, 64408, 0, 4417, 128615, - 74359, 41744, 0, 0, 100435, 6965, 0, 0, 13201, 100430, 69896, 78868, - 74382, 11841, 7918, 92721, 0, 0, 0, 1728, 0, 0, 0, 983347, 92679, 0, 0, - 92711, 0, 0, 119536, 0, 66679, 8382, 0, 0, 100381, 0, 917889, 42254, - 68371, 100383, 0, 0, 0, 9923, 0, 0, 11763, 100386, 120688, 0, 78187, 0, - 0, 0, 0, 8333, 0, 0, 0, 917805, 74464, 0, 92320, 74080, 0, 69911, 11910, - 0, 74141, 8963, 0, 0, 0, 121396, 0, 41747, 0, 0, 8968, 0, 0, 129110, - 110590, 0, 8836, 12315, 0, 8300, 0, 0, 0, 8856, 0, 0, 69891, 0, 66965, - 120405, 120402, 120403, 120400, 120401, 12853, 43269, 7263, 120244, 6536, - 120238, 120239, 65516, 12321, 120391, 120388, 55287, 2237, 120246, 9588, - 120248, 120382, 120383, 120380, 120381, 0, 0, 3561, 0, 0, 10613, 0, - 110583, 0, 0, 0, 128689, 5006, 64328, 68219, 917894, 0, 8825, 129880, 0, - 0, 0, 128616, 0, 119177, 0, 0, 128641, 120225, 71366, 120227, 120228, - 438, 4510, 41707, 8721, 120233, 120234, 120235, 12840, 120229, 10845, - 120231, 8096, 0, 120935, 0, 0, 65589, 8733, 0, 0, 0, 0, 0, 0, 93984, - 11262, 73747, 128522, 917902, 64591, 42405, 0, 0, 1632, 127982, 128326, - 0, 0, 121327, 121477, 42444, 0, 0, 215, 41258, 128494, 64494, 1953, - 10185, 0, 1256, 3910, 41260, 917903, 0, 0, 41257, 0, 8675, 10700, 0, - 124951, 0, 9333, 0, 121471, 0, 0, 0, 0, 0, 499, 0, 70729, 42915, 0, - 101000, 0, 100999, 0, 0, 73111, 0, 122897, 0, 125006, 0, 11118, 0, - 128009, 0, 0, 118633, 9180, 0, 0, 0, 100986, 43438, 118588, 0, 0, 0, 0, - 120669, 64782, 0, 0, 73969, 565, 42484, 118913, 201, 0, 42292, 69610, 0, - 0, 119625, 43518, 0, 0, 1022, 113788, 3880, 74247, 0, 0, 0, 0, 0, 0, 0, - 0, 72272, 100997, 0, 0, 66937, 74255, 0, 0, 92598, 0, 9903, 118993, 0, - 68226, 0, 0, 0, 127788, 100955, 83280, 7892, 0, 10777, 0, 0, 65562, 0, - 101002, 0, 8039, 3363, 101009, 0, 0, 66940, 12596, 70812, 0, 0, 0, 0, - 42944, 92425, 74992, 64541, 0, 0, 10520, 12802, 0, 12998, 0, 83270, - 42861, 83273, 11415, 0, 7541, 125068, 65878, 822, 0, 0, 5774, 194746, - 43252, 0, 92619, 7672, 129281, 0, 0, 7463, 0, 0, 0, 0, 0, 0, 121411, 0, - 0, 0, 66938, 0, 475, 0, 120586, 7329, 0, 0, 195088, 66291, 10645, 0, - 6543, 100966, 0, 0, 119065, 0, 0, 0, 983234, 195095, 0, 8923, 1645, 0, 0, - 0, 3196, 72404, 0, 0, 43595, 0, 0, 0, 0, 0, 195076, 0, 0, 5258, 4328, 0, - 0, 0, 405, 11454, 0, 0, 0, 0, 75052, 41245, 0, 195078, 4523, 11369, 0, 0, - 0, 195079, 0, 0, 983507, 0, 100961, 10480, 74610, 0, 0, 0, 12610, 0, - 41247, 0, 7609, 118837, 0, 0, 92253, 0, 984, 0, 92621, 0, 0, 129885, - 73982, 0, 0, 0, 43369, 0, 0, 0, 983504, 6634, 0, 71952, 0, 66930, 74214, - 0, 67709, 0, 0, 0, 71114, 9552, 0, 0, 0, 12997, 0, 0, 0, 0, 129109, - 12883, 10994, 10529, 55283, 0, 74618, 0, 67736, 10661, 19951, 9614, 2428, - 0, 121023, 92837, 126224, 66933, 71127, 0, 124996, 119162, 1952, 92181, - 8455, 100958, 0, 93033, 119566, 100960, 0, 12183, 100951, 0, 64929, 0, 0, - 0, 128290, 42509, 73087, 3922, 9187, 983626, 0, 0, 119057, 0, 3353, 9358, - 0, 0, 66680, 0, 73975, 12879, 0, 9795, 68380, 0, 0, 0, 0, 0, 41027, 0, - 66931, 0, 983631, 0, 70378, 0, 11751, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 129356, 0, 0, 0, 0, 41029, 0, 126513, 0, 0, 0, 11294, 0, 66665, 0, 0, - 127750, 0, 0, 70105, 0, 983643, 0, 67843, 0, 0, 121167, 983895, 0, 8088, - 129412, 0, 0, 0, 983992, 6926, 72423, 0, 129569, 42369, 4350, 0, 65145, - 9041, 43559, 0, 0, 0, 41263, 0, 0, 0, 65825, 9577, 68199, 0, 0, 983121, - 0, 6793, 0, 70409, 0, 0, 0, 0, 64669, 0, 0, 0, 11200, 72725, 2995, 0, 0, - 0, 7868, 72720, 72020, 11386, 1009, 70405, 66871, 2333, 0, 0, 0, 0, 0, - 70407, 128121, 0, 0, 0, 0, 983657, 66949, 0, 74968, 0, 0, 110601, 0, 0, - 41261, 0, 0, 0, 0, 118989, 6736, 917883, 0, 43010, 66952, 0, 69635, - 73011, 983716, 0, 0, 7293, 0, 0, 0, 0, 111332, 0, 128245, 69928, 0, 0, + 0, 0, 0, 983846, 0, 0, 0, 67817, 0, 1272, 0, 0, 0, 983578, 0, 1467, + 119501, 917806, 0, 0, 0, 70312, 73537, 124955, 0, 70400, 0, 0, 72817, 0, + 19935, 0, 92162, 0, 0, 0, 128406, 5275, 0, 0, 44006, 129082, 0, 3789, + 128205, 0, 0, 0, 11474, 0, 0, 0, 129050, 0, 92194, 129503, 9537, 4496, 0, + 120443, 2605, 4500, 0, 55224, 8600, 0, 0, 41646, 11667, 69569, 0, 0, + 917905, 4499, 41649, 0, 0, 0, 69254, 0, 0, 0, 65804, 0, 70034, 41866, 0, + 0, 0, 11174, 0, 0, 0, 9559, 128773, 41940, 8299, 41945, 0, 41941, 5455, + 7190, 0, 0, 917810, 65266, 0, 41943, 10762, 0, 41931, 0, 0, 8106, 4128, + 0, 0, 4494, 0, 0, 72405, 0, 119567, 42068, 917808, 0, 11004, 12794, + 65072, 5271, 7317, 0, 0, 0, 0, 0, 0, 92281, 0, 0, 0, 0, 71880, 3868, + 71881, 983573, 128431, 7703, 0, 64390, 0, 7406, 120358, 93850, 0, 3985, + 66425, 0, 66615, 10177, 0, 41853, 71873, 12809, 0, 12193, 0, 10879, + 122945, 0, 9055, 0, 3851, 8132, 0, 0, 119263, 917908, 0, 0, 0, 0, 122940, + 42657, 122952, 7643, 0, 0, 122936, 43568, 0, 11949, 7650, 43569, 64951, + 7647, 7649, 0, 7646, 0, 0, 9651, 125005, 3891, 0, 0, 2337, 77831, 77832, + 67860, 129288, 0, 0, 43561, 67706, 119669, 0, 1860, 0, 68835, 5812, + 12784, 0, 0, 0, 0, 69260, 7727, 0, 69292, 69818, 66444, 128665, 42719, 0, + 1569, 0, 12534, 12124, 7690, 194871, 12533, 0, 68383, 67997, 0, 6969, 0, + 0, 0, 67974, 63895, 128650, 0, 0, 0, 42144, 0, 0, 0, 0, 92211, 119043, 0, + 0, 917545, 0, 0, 12791, 0, 0, 0, 4447, 71065, 12793, 0, 0, 43385, 0, 0, + 12790, 120256, 0, 983840, 12792, 120254, 0, 0, 12789, 128489, 12317, + 74934, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127840, 41652, 2974, 78689, 11476, + 0, 0, 0, 0, 43871, 0, 10894, 119176, 74557, 65686, 0, 0, 3724, 67335, + 67334, 67333, 67338, 67337, 0, 67336, 0, 65306, 0, 128421, 0, 8646, + 129593, 77829, 0, 0, 74852, 0, 0, 0, 0, 0, 220, 120252, 43551, 0, 10044, + 0, 0, 983847, 68659, 110825, 5707, 71362, 0, 0, 0, 0, 0, 0, 10297, 0, + 41308, 67331, 0, 0, 0, 0, 2467, 0, 6003, 0, 0, 8040, 0, 0, 4182, 0, + 11135, 120501, 0, 0, 2510, 0, 10208, 0, 78302, 70829, 0, 0, 6837, 0, 0, + 67348, 0, 0, 0, 0, 1559, 67342, 11104, 67340, 67347, 67346, 67345, 67344, + 0, 0, 67357, 67356, 0, 0, 0, 0, 67352, 67351, 5516, 2845, 7717, 8036, + 65161, 67353, 5514, 12045, 6278, 0, 5515, 0, 0, 0, 0, 0, 65194, 100387, + 5517, 70116, 92774, 0, 67884, 0, 67890, 42094, 67880, 67881, 67882, + 67883, 0, 0, 67879, 120411, 1902, 67887, 67888, 12976, 126546, 12483, + 12368, 41769, 42726, 41765, 69557, 12787, 67874, 7556, 67878, 74351, + 67897, 989, 42677, 67889, 0, 6060, 0, 4326, 11000, 64601, 68478, 0, 0, + 6917, 0, 120837, 0, 0, 0, 6148, 8605, 74205, 0, 0, 0, 42715, 0, 101047, + 0, 68663, 0, 41796, 1269, 42703, 64754, 101049, 101042, 5144, 12221, + 42716, 71048, 5133, 4331, 0, 128675, 0, 5279, 121362, 71046, 0, 0, 42701, + 0, 0, 0, 121470, 0, 0, 0, 983311, 0, 72455, 121259, 42666, 12207, 1067, + 255, 12131, 0, 0, 0, 0, 0, 0, 0, 70728, 43460, 0, 42723, 125216, 0, + 70427, 0, 12797, 0, 0, 983722, 0, 67977, 12799, 0, 92504, 9746, 5135, 0, + 12796, 0, 0, 0, 5139, 346, 74303, 121134, 12795, 125109, 5168, 0, 43845, + 983727, 0, 8253, 8817, 1136, 983735, 43563, 127774, 129542, 0, 0, 0, 0, + 0, 0, 983619, 0, 0, 4041, 0, 2357, 43240, 12786, 0, 0, 0, 44004, 7142, 0, + 67984, 0, 0, 0, 0, 12785, 0, 0, 7770, 10712, 64853, 42679, 118916, 42375, + 0, 983124, 94074, 12119, 0, 11059, 10791, 111092, 450, 0, 0, 0, 0, 5450, + 64691, 0, 0, 44009, 0, 0, 111097, 94085, 1839, 94004, 0, 10927, 1701, 0, + 129610, 41749, 41761, 5453, 8361, 66045, 41758, 5444, 41763, 0, 0, 0, + 66349, 983138, 121274, 0, 0, 8801, 0, 4340, 0, 0, 0, 0, 70001, 41824, 0, + 0, 0, 0, 42700, 0, 127980, 0, 0, 0, 0, 0, 0, 4493, 4336, 129171, 2314, + 983061, 41808, 0, 0, 0, 64638, 0, 65937, 4489, 71331, 0, 0, 5358, 42717, + 0, 71236, 0, 0, 0, 127042, 41813, 2712, 0, 127044, 1410, 0, 0, 0, 0, 0, + 0, 0, 0, 128587, 0, 0, 0, 4892, 0, 0, 0, 0, 122966, 5777, 0, 759, 0, + 2079, 65248, 12788, 0, 64552, 0, 41803, 68043, 0, 0, 0, 0, 128785, 0, + 68492, 67991, 75071, 2340, 0, 120638, 0, 983902, 0, 0, 917865, 64749, 0, + 2321, 3587, 0, 67236, 9953, 9952, 0, 0, 42714, 9951, 0, 0, 127902, 74150, + 0, 0, 74757, 127554, 0, 983826, 2395, 0, 9976, 0, 125128, 0, 0, 0, 42809, + 42807, 0, 66290, 70854, 4150, 64424, 8318, 41790, 67976, 65559, 2360, + 41794, 0, 0, 120987, 0, 0, 2418, 0, 2411, 0, 41783, 0, 41786, 65108, 0, + 0, 41772, 42813, 2317, 0, 118980, 0, 0, 0, 0, 0, 0, 78682, 7753, 2351, + 6655, 64489, 0, 0, 0, 4443, 41697, 230, 65793, 0, 65943, 42803, 0, 0, + 5441, 0, 0, 127053, 0, 855, 0, 6109, 101021, 0, 119116, 69989, 0, 0, + 72146, 0, 101023, 0, 72148, 124918, 19915, 41892, 0, 0, 128901, 41887, 0, + 67980, 9735, 0, 0, 120591, 13082, 101026, 0, 0, 0, 0, 0, 0, 0, 289, 0, 0, + 64504, 0, 69489, 120514, 0, 92962, 0, 42724, 69977, 0, 0, 0, 0, 67994, 0, + 0, 983823, 3565, 0, 0, 127553, 43035, 69898, 0, 0, 0, 0, 4891, 0, 0, + 4602, 0, 121065, 0, 0, 121157, 0, 43978, 8988, 0, 0, 0, 0, 0, 119184, + 121436, 73902, 69740, 0, 0, 72976, 0, 0, 8771, 0, 0, 0, 119209, 74974, + 71737, 0, 0, 67987, 0, 0, 0, 67989, 0, 10065, 8207, 0, 983588, 0, 0, 662, + 0, 41927, 0, 0, 0, 0, 0, 0, 0, 41929, 0, 0, 0, 41926, 69994, 0, 0, 0, + 126230, 68013, 1433, 64648, 6475, 0, 120983, 0, 73876, 0, 0, 0, 67992, + 78052, 0, 3978, 0, 0, 0, 0, 120761, 12281, 0, 0, 13241, 0, 0, 0, 0, + 11765, 42577, 0, 0, 2641, 7192, 0, 0, 118809, 101015, 0, 101016, 128948, + 101013, 6479, 64294, 118683, 0, 0, 0, 64334, 0, 0, 0, 92266, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 9478, 127339, 124964, 0, 202, 0, 0, 1242, 0, 121170, 0, + 63940, 0, 0, 0, 63939, 11990, 92430, 67982, 0, 65440, 70068, 0, 0, 64829, + 0, 0, 0, 0, 0, 2858, 0, 63989, 0, 69239, 0, 121152, 0, 77841, 0, 70078, + 92574, 129519, 0, 0, 0, 128974, 0, 12922, 92498, 0, 66424, 71124, 0, 0, + 0, 2856, 0, 47, 0, 126986, 65858, 0, 0, 0, 0, 119161, 8417, 65903, 0, 0, + 0, 4033, 128164, 0, 0, 0, 129961, 64600, 1903, 12320, 0, 120894, 0, 0, + 8915, 0, 945, 0, 0, 0, 0, 111068, 0, 74828, 0, 69560, 9531, 0, 8505, 0, + 119238, 0, 0, 65538, 0, 0, 0, 0, 0, 0, 63935, 0, 0, 0, 0, 0, 64787, + 111060, 0, 0, 110828, 0, 2230, 0, 0, 71886, 9843, 0, 92419, 111062, + 67488, 92715, 0, 1320, 0, 1673, 0, 92383, 129902, 9338, 128355, 0, 0, 0, + 0, 11997, 0, 0, 0, 0, 0, 0, 43308, 0, 0, 0, 0, 0, 0, 0, 63920, 0, 0, 0, + 0, 0, 0, 3514, 78723, 0, 7492, 0, 0, 0, 7514, 0, 63924, 0, 7502, 7587, 0, + 0, 0, 118689, 43881, 7610, 0, 0, 118710, 692, 43588, 0, 0, 75056, 9688, + 0, 9535, 0, 0, 0, 64530, 0, 125251, 194861, 0, 72209, 7453, 0, 8013, + 66396, 0, 0, 8895, 5356, 0, 5458, 0, 2866, 0, 127860, 71732, 71724, 6700, + 0, 111081, 120583, 0, 110614, 0, 9641, 63830, 65294, 0, 0, 67969, 0, + 7441, 0, 63826, 0, 0, 0, 0, 2844, 983972, 0, 63824, 12139, 67971, 0, 0, + 3358, 65295, 0, 3104, 0, 0, 0, 0, 65772, 0, 0, 0, 0, 2862, 11326, 0, 0, + 94001, 3268, 66591, 0, 6552, 42367, 7035, 120558, 0, 0, 1814, 195092, + 10240, 195093, 0, 0, 0, 0, 0, 66960, 0, 0, 2837, 4341, 0, 0, 129982, + 125064, 195094, 0, 0, 66964, 0, 72721, 863, 66936, 0, 0, 43323, 66928, 0, + 0, 68054, 0, 3654, 66951, 0, 66942, 0, 0, 7653, 0, 0, 66587, 0, 0, 92401, + 0, 0, 12927, 0, 0, 129697, 13056, 0, 0, 3056, 0, 0, 195101, 0, 0, 74506, + 73770, 0, 0, 0, 0, 0, 0, 0, 0, 72233, 0, 5811, 0, 0, 0, 66817, 983855, 0, + 0, 128636, 129311, 0, 128041, 0, 67739, 120965, 0, 0, 67507, 0, 68375, 0, + 0, 70300, 0, 0, 0, 983698, 111078, 0, 11991, 128079, 0, 92943, 1502, + 74117, 127988, 0, 129478, 121253, 0, 67661, 0, 0, 125084, 68667, 0, + 74057, 68639, 0, 42898, 120742, 0, 74388, 74838, 120822, 0, 0, 0, 0, + 69452, 43214, 5893, 0, 0, 92496, 0, 0, 119907, 119900, 0, 0, 0, 0, 41950, + 0, 0, 68610, 0, 68626, 894, 0, 0, 12306, 73846, 0, 0, 0, 8636, 0, 121028, + 42503, 0, 92942, 0, 121468, 119241, 0, 126569, 5096, 5095, 2863, 127505, + 0, 10454, 42530, 5094, 0, 0, 13156, 0, 111035, 5093, 111024, 983419, 0, + 5092, 10708, 11327, 0, 5091, 0, 0, 9153, 4104, 78599, 78601, 2929, 42712, + 75067, 12272, 9832, 0, 0, 111105, 0, 0, 0, 0, 0, 0, 13106, 0, 0, 129111, + 0, 0, 0, 0, 9074, 111111, 0, 111110, 0, 8113, 11168, 92563, 1786, 111109, + 0, 111108, 0, 74423, 0, 586, 74414, 64359, 1267, 0, 127531, 0, 65731, 0, + 0, 0, 92932, 0, 0, 0, 0, 0, 0, 1228, 0, 42846, 0, 0, 70343, 1714, 74406, + 0, 0, 0, 127389, 66225, 0, 0, 42660, 0, 0, 3804, 0, 0, 129859, 0, 2826, + 0, 0, 0, 128396, 0, 0, 0, 0, 0, 0, 12206, 5839, 0, 68524, 74065, 73521, + 0, 0, 126240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67241, 917821, 7030, 0, + 10479, 64959, 2852, 0, 121225, 0, 0, 128586, 0, 6963, 0, 0, 0, 74786, 0, + 0, 0, 0, 121281, 0, 0, 0, 0, 113815, 121360, 0, 9994, 118680, 2864, + 64719, 1148, 0, 41677, 0, 0, 2765, 0, 128181, 0, 0, 0, 92516, 74777, 0, + 0, 65206, 0, 0, 0, 0, 69391, 0, 0, 983770, 0, 41839, 129616, 983773, 0, + 0, 6931, 0, 0, 7177, 125137, 0, 0, 0, 93020, 0, 10722, 0, 0, 128186, + 121050, 0, 0, 127207, 0, 750, 0, 129453, 63912, 0, 0, 7032, 0, 0, 4314, + 128600, 0, 128409, 730, 0, 127866, 0, 0, 41380, 0, 0, 0, 69697, 8240, + 92939, 0, 41378, 0, 6938, 70026, 0, 0, 66246, 0, 0, 0, 0, 0, 0, 983094, + 0, 92754, 41470, 64805, 0, 0, 0, 0, 0, 0, 0, 0, 92938, 68370, 0, 0, + 73831, 0, 0, 0, 2872, 0, 0, 0, 0, 604, 41097, 0, 0, 0, 0, 0, 127488, 0, + 2836, 0, 0, 9707, 0, 43202, 0, 0, 69374, 0, 0, 120916, 2832, 92702, 9670, + 12937, 0, 0, 0, 0, 2822, 0, 0, 92519, 0, 73752, 0, 0, 0, 1331, 92603, 0, + 11856, 73510, 129432, 5090, 5089, 0, 3200, 0, 0, 0, 5088, 0, 0, 9477, 0, + 0, 5087, 92325, 0, 96, 5086, 0, 0, 0, 5085, 64286, 0, 0, 43820, 0, + 129710, 0, 0, 119042, 0, 129660, 0, 0, 0, 0, 0, 127241, 120891, 7601, 0, + 591, 0, 118953, 0, 0, 0, 0, 0, 10939, 7246, 6933, 67142, 67141, 0, 74600, + 120695, 0, 67138, 65574, 0, 78058, 67140, 73851, 74598, 67139, 128094, 0, + 6372, 0, 73514, 7963, 6371, 0, 0, 125040, 0, 0, 0, 0, 0, 0, 0, 8258, + 123591, 0, 0, 65148, 118919, 42, 0, 0, 0, 0, 0, 0, 0, 0, 67135, 67134, + 67133, 0, 0, 0, 0, 67136, 67130, 74597, 11550, 0, 67132, 65868, 0, 12826, + 127872, 124116, 126235, 9737, 92448, 0, 0, 0, 8878, 0, 0, 0, 0, 0, 72220, + 9086, 0, 100952, 0, 7437, 7454, 0, 0, 0, 0, 9042, 0, 0, 0, 0, 3805, 0, + 67128, 44001, 67126, 0, 44022, 19949, 12200, 43522, 983045, 43525, 0, 0, + 0, 64422, 67125, 67124, 7602, 0, 0, 43521, 0, 0, 43711, 43523, 41447, + 8424, 68483, 8704, 2397, 0, 0, 0, 0, 0, 10916, 0, 129290, 93998, 0, 0, 0, + 127800, 67686, 9961, 123203, 0, 68842, 10792, 8889, 121402, 6951, 0, + 68827, 917835, 74342, 0, 0, 0, 68816, 129152, 0, 42909, 66597, 70092, 0, + 0, 10481, 4559, 0, 1956, 43138, 0, 0, 43490, 43148, 0, 0, 0, 43140, 0, 0, + 0, 0, 69268, 8533, 0, 0, 0, 0, 0, 4357, 0, 70289, 983157, 0, 42911, 0, 0, + 0, 10941, 0, 6962, 0, 0, 113808, 0, 11014, 0, 8942, 12000, 0, 0, 73515, + 0, 0, 0, 42650, 0, 75016, 63975, 0, 66210, 0, 0, 129150, 0, 11193, 0, 0, + 0, 0, 0, 0, 0, 43476, 0, 11024, 74811, 72787, 10563, 92954, 0, 0, 2462, + 92955, 0, 0, 66213, 6957, 0, 120559, 0, 0, 0, 74594, 983424, 92347, 0, + 110702, 110708, 110707, 127119, 3109, 127117, 119909, 0, 121434, 0, 0, + 4042, 0, 0, 0, 127123, 127122, 127121, 0, 127999, 0, 3503, 74444, 68300, + 6694, 127997, 0, 0, 74306, 0, 983757, 7736, 0, 0, 0, 10521, 0, 42173, + 9705, 0, 129719, 6955, 71467, 0, 6149, 3887, 19956, 1411, 2824, 0, 0, 0, + 1403, 0, 1347, 66282, 127996, 0, 0, 0, 0, 8640, 0, 1178, 1654, 0, 0, + 129529, 43314, 0, 0, 0, 0, 2873, 67461, 0, 0, 67085, 10861, 0, 0, 70377, + 0, 67082, 11159, 41391, 67084, 0, 376, 6987, 983182, 119904, 0, 8823, 0, + 12943, 65185, 100988, 42099, 0, 0, 100990, 0, 8301, 0, 0, 1684, 0, 0, 0, + 120620, 0, 0, 0, 42121, 0, 66781, 78067, 42115, 0, 127998, 0, 67080, + 1493, 42111, 67077, 4097, 0, 983767, 0, 65808, 41642, 0, 118568, 67076, + 41636, 67074, 65095, 110660, 72254, 121240, 41629, 12154, 75073, 0, + 128179, 74084, 64380, 0, 0, 0, 0, 0, 71193, 65371, 7078, 121218, 0, 0, + 74592, 0, 0, 43275, 0, 41434, 6062, 0, 0, 19916, 0, 6950, 9606, 9842, 0, + 65744, 0, 0, 128659, 0, 41615, 10105, 0, 0, 41632, 7493, 0, 0, 41622, 0, + 0, 0, 0, 7632, 983217, 983216, 9805, 5990, 900, 0, 122955, 0, 120869, + 3612, 0, 64376, 0, 5389, 129469, 73495, 0, 2839, 9621, 582, 0, 0, 3749, + 0, 7569, 0, 0, 92865, 6956, 4403, 0, 0, 3299, 0, 0, 119127, 65676, 0, + 74372, 0, 983497, 7598, 69819, 42469, 42242, 1918, 9542, 480, 7716, 0, 0, + 0, 0, 0, 69918, 0, 8328, 0, 118894, 0, 0, 0, 0, 11132, 983502, 66743, + 74185, 100531, 2854, 66747, 0, 65755, 0, 67120, 67119, 65835, 67117, + 66736, 67123, 67122, 67121, 9881, 100481, 65757, 100538, 100459, 67116, + 8648, 128377, 6741, 43047, 0, 13180, 0, 100487, 66754, 73507, 73487, 0, + 0, 41752, 0, 8641, 100490, 125185, 73477, 100462, 100541, 6942, 69501, + 1024, 42849, 41751, 0, 8941, 101034, 11121, 0, 9023, 40973, 121476, 9928, + 67109, 66865, 0, 67114, 67113, 67112, 67111, 0, 41206, 120724, 9049, + 67108, 43166, 0, 41200, 128201, 125142, 126537, 0, 0, 41188, 119553, 0, + 101007, 917548, 74585, 78626, 0, 0, 11466, 0, 120797, 0, 125067, 2261, 0, + 2860, 0, 0, 70828, 127925, 92357, 67106, 12065, 42872, 0, 43875, 67103, + 43856, 0, 67102, 67105, 7531, 40981, 2413, 100522, 67404, 100521, 0, + 67101, 41196, 100523, 0, 129723, 73512, 43117, 100495, 0, 0, 0, 0, 69876, + 0, 7173, 496, 0, 4313, 64607, 0, 0, 983202, 2065, 42793, 2842, 0, 83152, + 13132, 798, 0, 12801, 67098, 10686, 118528, 128143, 0, 8054, 9174, 67087, + 67086, 67097, 67096, 41611, 67095, 74504, 78854, 42512, 0, 78857, 42089, + 74613, 78856, 0, 101029, 100468, 42079, 100467, 0, 66961, 100474, 0, 0, + 0, 68338, 69958, 0, 0, 0, 0, 0, 78859, 42093, 128951, 100504, 0, 0, 0, + 4580, 0, 0, 0, 92167, 0, 3021, 42004, 0, 0, 42317, 41998, 0, 6946, 77920, + 0, 123610, 0, 0, 0, 121442, 42690, 9880, 0, 0, 64589, 0, 0, 127880, + 68035, 0, 11360, 0, 0, 72242, 0, 0, 0, 0, 0, 64941, 0, 0, 0, 6856, 65671, + 11244, 73706, 6959, 41994, 42907, 0, 0, 122902, 8617, 41982, 8860, 0, 0, + 121256, 0, 0, 9597, 0, 43172, 0, 10117, 0, 92297, 65865, 73549, 0, + 128077, 0, 126065, 0, 187, 0, 65669, 0, 4963, 0, 0, 0, 8964, 0, 7775, 0, + 41948, 0, 0, 101010, 41942, 65449, 3160, 65922, 13226, 42665, 0, 42663, + 128210, 41766, 983503, 78848, 78849, 41760, 1189, 905, 110620, 42658, + 78851, 67859, 9629, 6742, 0, 43625, 12952, 7888, 0, 3980, 0, 42656, 0, + 42055, 0, 0, 0, 64540, 0, 7867, 69218, 6236, 0, 73490, 10505, 0, 12851, + 118948, 0, 5474, 128843, 3103, 0, 41753, 41733, 78051, 983477, 78844, + 78845, 41739, 78843, 70744, 10931, 41756, 43347, 68098, 122909, 41746, + 119147, 92591, 41259, 66954, 69930, 2691, 121338, 11231, 41244, 0, 69800, + 66364, 41262, 67503, 0, 0, 41251, 0, 0, 11805, 0, 0, 68331, 94045, 0, 0, + 0, 74633, 41266, 126642, 0, 0, 0, 65741, 41737, 2275, 2666, 121232, + 41738, 4967, 419, 13126, 0, 0, 42822, 0, 6434, 74913, 0, 0, 6432, 0, + 69932, 128862, 769, 41742, 69927, 74805, 6433, 0, 547, 1943, 6439, 0, + 4994, 487, 0, 0, 3754, 0, 0, 0, 0, 74780, 0, 0, 1595, 92777, 74431, 0, 0, + 74860, 43267, 0, 0, 129083, 12185, 69406, 0, 73479, 100984, 0, 42856, 0, + 0, 983765, 128319, 75057, 0, 0, 0, 65612, 0, 669, 0, 0, 0, 0, 0, 70445, + 100404, 69929, 0, 0, 460, 121513, 0, 0, 0, 120747, 0, 121519, 121518, 0, + 0, 121515, 71491, 65187, 9044, 78497, 11760, 78494, 7577, 78491, 41912, + 100412, 0, 100411, 0, 0, 100394, 78501, 0, 2933, 78500, 0, 66441, 100392, + 100397, 100391, 1549, 0, 100415, 0, 41755, 6206, 8670, 120587, 0, 69935, + 0, 0, 69768, 73492, 0, 66958, 0, 0, 10552, 64342, 41922, 0, 917858, 0, + 917857, 2717, 0, 0, 0, 73664, 41908, 100722, 41916, 0, 0, 0, 92506, + 100723, 66664, 69803, 0, 100725, 0, 0, 43373, 0, 0, 8468, 100729, 121173, + 128297, 119210, 118952, 0, 0, 0, 100686, 0, 0, 0, 128703, 100670, 457, + 78502, 78503, 123180, 43006, 0, 8802, 113777, 0, 0, 0, 0, 126632, 0, + 41757, 0, 100657, 44000, 0, 0, 43534, 0, 0, 11961, 121316, 0, 0, 0, + 128736, 0, 0, 9499, 73522, 128330, 0, 0, 92260, 68184, 0, 0, 7256, 66993, + 983180, 0, 42161, 0, 119126, 128022, 65880, 0, 10802, 64861, 0, 0, 0, 0, + 0, 0, 73109, 0, 955, 0, 0, 5350, 64339, 0, 100705, 10875, 0, 5477, 73121, + 0, 0, 0, 67693, 69790, 0, 0, 3874, 0, 983741, 0, 0, 83272, 100674, + 127397, 0, 100989, 0, 41038, 67502, 9207, 42239, 0, 0, 0, 0, 74432, 0, 0, + 1455, 129680, 0, 11753, 119233, 0, 118594, 127854, 100716, 69801, 0, 0, + 43520, 0, 119556, 0, 0, 0, 0, 100733, 10788, 6088, 0, 129587, 190, + 983346, 12593, 100737, 129308, 64408, 0, 4417, 128615, 74359, 41744, 0, + 0, 100435, 6965, 0, 0, 13201, 100430, 69896, 78868, 74382, 11841, 7918, + 92721, 0, 0, 0, 1728, 0, 0, 0, 983350, 92679, 0, 0, 92711, 0, 0, 119536, + 73491, 66679, 8382, 0, 0, 100381, 0, 917889, 42254, 68371, 100383, 0, 0, + 0, 9923, 0, 0, 11763, 100386, 120688, 0, 78187, 0, 0, 0, 0, 8333, 0, 0, + 0, 917805, 74464, 0, 92320, 74080, 0, 69911, 11910, 0, 74141, 8963, 0, 0, + 0, 121396, 0, 41747, 0, 0, 8968, 0, 0, 129110, 110590, 0, 8836, 12315, 0, + 8300, 0, 0, 0, 8856, 0, 0, 69891, 0, 66965, 120405, 120402, 120403, + 120400, 120401, 12853, 43269, 7263, 120244, 6536, 120238, 120239, 65516, + 12321, 120391, 120388, 55287, 2237, 120246, 9588, 120248, 120382, 120383, + 120380, 120381, 0, 0, 3561, 0, 0, 10613, 0, 110583, 0, 0, 0, 128689, + 5006, 64328, 68219, 917894, 0, 8825, 122972, 0, 0, 0, 128616, 0, 119177, + 0, 0, 128641, 120225, 71366, 120227, 120228, 438, 4510, 41707, 8721, + 120233, 120234, 120235, 12840, 120229, 10845, 120231, 8096, 0, 120935, 0, + 0, 65589, 8733, 0, 0, 0, 0, 0, 0, 93984, 11262, 73747, 128522, 917902, + 64591, 42405, 0, 0, 1632, 127982, 128326, 0, 0, 121327, 121477, 42444, 0, + 0, 215, 41258, 128494, 64494, 1953, 10185, 0, 1256, 3910, 41260, 917903, + 0, 0, 41257, 0, 8675, 10700, 0, 124951, 0, 9333, 0, 121471, 0, 0, 0, 0, + 0, 499, 0, 70729, 42915, 0, 101000, 0, 100999, 0, 0, 73111, 128893, + 122897, 0, 125006, 0, 11118, 0, 128009, 0, 0, 118633, 9180, 0, 0, 0, + 100986, 43438, 118588, 0, 0, 0, 0, 120669, 64782, 0, 0, 73969, 565, + 42484, 118913, 201, 0, 42292, 69610, 0, 0, 119625, 43518, 0, 0, 1022, + 113788, 3880, 74247, 0, 0, 0, 0, 0, 0, 0, 0, 72272, 100997, 0, 0, 66937, + 74255, 0, 0, 92598, 0, 9903, 118993, 0, 68226, 0, 0, 0, 127788, 100955, + 83280, 7892, 0, 10777, 0, 0, 65562, 0, 101002, 0, 8039, 3363, 101009, 0, + 0, 66940, 12596, 70812, 0, 0, 0, 0, 42944, 92425, 74992, 64541, 0, 0, + 10520, 12802, 0, 12998, 0, 83270, 42861, 83273, 11415, 0, 7541, 125068, + 65878, 822, 0, 0, 5774, 194746, 43252, 0, 92619, 7672, 129281, 0, 0, + 7463, 0, 0, 0, 0, 0, 0, 121411, 0, 0, 0, 66938, 0, 475, 0, 120586, 7329, + 0, 0, 195088, 66291, 10645, 0, 6543, 100966, 0, 0, 119065, 0, 0, 0, + 983237, 195095, 0, 8923, 1645, 0, 0, 0, 3196, 72404, 0, 0, 43595, 0, 0, + 0, 0, 0, 195076, 0, 0, 5258, 4328, 0, 0, 0, 405, 11454, 0, 0, 0, 0, + 75052, 41245, 0, 195078, 4523, 11369, 0, 0, 0, 195079, 0, 0, 983510, 0, + 100961, 10480, 74610, 0, 0, 0, 12610, 0, 41247, 0, 7609, 118837, 0, 0, + 92253, 0, 984, 0, 92621, 0, 0, 129885, 73982, 0, 0, 0, 43369, 0, 0, 0, + 983507, 6634, 0, 71952, 0, 66930, 74214, 0, 67709, 0, 0, 0, 71114, 9552, + 0, 0, 0, 12997, 0, 0, 0, 0, 129109, 12883, 10994, 10529, 55283, 0, 74618, + 0, 67736, 10661, 19951, 9614, 2428, 0, 121023, 92837, 126224, 66933, + 71127, 0, 124996, 119162, 1952, 92181, 8455, 100958, 118654, 93033, + 119566, 100960, 0, 12183, 100951, 0, 64929, 0, 0, 0, 128290, 42509, + 73087, 3922, 9187, 983626, 0, 0, 119057, 0, 3353, 9358, 0, 0, 66680, 0, + 73975, 12879, 0, 9795, 68380, 0, 0, 119488, 0, 0, 41027, 0, 66931, 0, + 983631, 0, 70378, 0, 11751, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129356, 0, 0, + 0, 0, 41029, 0, 126513, 0, 0, 0, 11294, 0, 66665, 0, 0, 127750, 0, 0, + 70105, 0, 983643, 0, 67843, 0, 0, 121167, 983895, 0, 8088, 129412, 0, 0, + 0, 983992, 6926, 72423, 0, 129569, 42369, 4350, 0, 65145, 9041, 43559, 0, + 0, 0, 41263, 0, 0, 0, 65825, 9577, 68199, 0, 0, 983122, 0, 6793, 0, + 70409, 0, 0, 0, 0, 64669, 0, 0, 0, 11200, 72725, 2995, 0, 0, 0, 7868, + 72720, 72020, 11386, 1009, 70405, 66871, 2333, 0, 0, 0, 0, 0, 70407, + 128121, 0, 0, 0, 0, 983657, 66949, 0, 74968, 0, 0, 110601, 0, 0, 41261, + 0, 0, 0, 0, 118989, 6736, 917883, 124132, 43010, 66952, 0, 69635, 73011, + 983716, 0, 0, 7293, 0, 0, 0, 0, 111332, 0, 128245, 69928, 127071, 0, 127072, 64445, 111336, 6635, 0, 0, 72707, 74936, 0, 0, 917876, 0, 93025, 66948, 0, 111329, 0, 129887, 128045, 65219, 11925, 0, 92434, 0, 0, 9845, 101317, 7546, 0, 0, 11230, 4985, 13288, 672, 8098, 0, 0, 0, 128126, 42655, 0, 0, 1577, 11772, 78327, 0, 66673, 0, 65911, 118705, 0, 0, 101303, 92180, 0, 0, 120566, 125140, 127177, 0, 0, 119593, 1539, 0, 74969, 42731, 0, 74970, 71066, 0, 3051, 0, 73783, 0, 0, 0, 0, 78777, 0, - 983160, 0, 0, 101310, 0, 0, 0, 0, 0, 0, 3505, 8707, 0, 6725, 128013, 0, - 92314, 0, 66391, 5479, 0, 6686, 0, 0, 983315, 42754, 0, 0, 0, 0, 0, 0, + 983161, 0, 0, 101310, 0, 0, 0, 0, 0, 0, 3505, 8707, 0, 6725, 128013, 0, + 92314, 0, 66391, 5479, 0, 6686, 0, 0, 983318, 42754, 0, 0, 0, 0, 0, 0, 128523, 0, 0, 4433, 41156, 0, 74971, 1443, 9339, 0, 92871, 10926, 0, - 43511, 0, 0, 983321, 0, 126086, 72236, 10021, 0, 101329, 0, 65914, 0, + 43511, 0, 0, 983324, 0, 126086, 72236, 10021, 0, 101329, 0, 65914, 0, 66749, 0, 6721, 217, 12466, 0, 0, 10443, 0, 68654, 0, 0, 0, 78334, 0, 41250, 0, 129532, 128375, 0, 0, 69232, 0, 41252, 66682, 0, 119637, 41249, 1366, 0, 0, 101326, 0, 0, 4397, 101324, 0, 66946, 9545, 101323, 0, 0, 0, @@ -25989,17 +26170,17 @@ static const unsigned int code_hash[] = { 128436, 68845, 0, 69724, 67412, 92952, 0, 43811, 0, 128924, 0, 11062, 128748, 0, 0, 0, 69276, 2901, 7865, 66945, 78354, 0, 78347, 0, 126123, 0, 66363, 0, 0, 0, 74967, 7414, 0, 0, 92691, 0, 128507, 885, 64772, 65180, - 0, 71267, 852, 0, 0, 0, 78614, 121174, 129092, 67809, 9609, 12156, 0, 0, - 43586, 11035, 10411, 0, 13268, 6710, 0, 0, 0, 43853, 77949, 4315, 0, - 111104, 0, 43639, 43343, 0, 0, 0, 73074, 0, 65812, 43431, 0, 0, 0, 0, 0, - 129890, 0, 0, 0, 0, 994, 125222, 127104, 127103, 73966, 66890, 0, 65291, - 70753, 0, 0, 0, 0, 66873, 4186, 92531, 127106, 127105, 6718, 7330, 4406, - 0, 8480, 7319, 64373, 128699, 4413, 0, 0, 3198, 0, 0, 92469, 111126, 0, - 128591, 128681, 0, 0, 0, 101321, 73023, 742, 0, 2893, 78738, 0, 0, 0, - 2553, 42294, 6756, 0, 73020, 8363, 0, 2993, 128381, 3916, 4301, 0, 1141, - 42407, 0, 0, 7572, 973, 0, 125077, 0, 2415, 0, 0, 9640, 42333, 0, 0, - 129546, 42486, 43381, 65390, 0, 69434, 1202, 0, 0, 0, 0, 68484, 0, 0, - 64542, 3260, 0, 65388, 43502, 69904, 0, 6738, 0, 0, 74193, 0, 0, 0, + 0, 71267, 852, 0, 0, 0, 78614, 121174, 129092, 67809, 9609, 12156, 0, + 122930, 43586, 11035, 10411, 0, 13268, 6710, 0, 0, 0, 43853, 77949, 4315, + 0, 111104, 0, 43639, 43343, 0, 0, 0, 73074, 0, 65812, 43431, 0, 0, 0, 0, + 0, 129890, 0, 0, 0, 0, 994, 125222, 127104, 127103, 73966, 66890, 0, + 65291, 70753, 0, 0, 0, 0, 66873, 4186, 92531, 127106, 127105, 6718, 7330, + 4406, 122946, 8480, 7319, 64373, 128699, 4413, 0, 0, 3198, 0, 0, 92469, + 111126, 0, 128591, 128681, 0, 0, 0, 101321, 73023, 742, 0, 2893, 78738, + 0, 0, 0, 2553, 42294, 6756, 0, 73020, 8363, 0, 2993, 128381, 3916, 4301, + 0, 1141, 42407, 0, 0, 7572, 973, 0, 125077, 0, 2415, 0, 0, 9640, 42333, + 0, 0, 129546, 42486, 43381, 65390, 0, 69434, 1202, 0, 0, 0, 0, 68484, 0, + 0, 64542, 3260, 0, 65388, 43502, 69904, 0, 6738, 0, 0, 74193, 0, 0, 0, 74641, 6312, 0, 74556, 12446, 0, 0, 128076, 8229, 1235, 0, 11472, 83064, 0, 0, 101366, 0, 0, 1740, 12872, 0, 985, 0, 0, 0, 12068, 983658, 0, 101363, 0, 0, 0, 13133, 65071, 110780, 12655, 12134, 0, 92934, 0, 66915, @@ -26010,21 +26191,21 @@ static const unsigned int code_hash[] = { 7525, 3346, 8339, 125004, 72705, 69462, 268, 0, 0, 5754, 94019, 0, 110684, 8336, 0, 0, 0, 8337, 8341, 0, 11388, 7522, 0, 0, 0, 11090, 6953, 125240, 0, 74973, 120708, 0, 0, 0, 0, 0, 110782, 0, 9038, 7887, 0, 0, - 42534, 64347, 0, 0, 67660, 120341, 0, 0, 0, 120878, 0, 0, 73999, 0, + 42534, 64347, 0, 0, 67660, 120341, 0, 122933, 0, 120878, 0, 0, 73999, 0, 64580, 0, 0, 64643, 0, 0, 74975, 0, 92227, 129052, 0, 83071, 83072, 83073, 119154, 0, 119153, 0, 0, 5349, 72440, 2160, 917554, 7411, 0, - 983221, 0, 0, 0, 42736, 70747, 5756, 983226, 92946, 0, 42764, 0, 0, + 983224, 0, 0, 0, 42736, 70747, 5756, 983229, 92946, 0, 42764, 0, 0, 119529, 5752, 120600, 0, 0, 0, 0, 0, 78893, 0, 0, 0, 125242, 0, 0, - 120331, 0, 0, 0, 67501, 0, 10080, 83056, 12647, 0, 0, 69252, 66882, 0, 0, - 0, 0, 0, 72005, 72845, 0, 0, 0, 0, 0, 74213, 0, 0, 0, 0, 0, 6302, 0, 0, - 0, 0, 1417, 983223, 0, 9452, 0, 74393, 0, 0, 110850, 0, 65391, 63789, - 69251, 78659, 78660, 41264, 78658, 6426, 42398, 9179, 78654, 64906, - 41255, 42036, 0, 41269, 0, 41267, 42436, 67759, 42323, 42034, 0, 0, - 42475, 42033, 0, 0, 68916, 43948, 0, 78673, 78674, 1659, 919, 42784, + 120331, 122957, 0, 0, 67501, 0, 10080, 83056, 12647, 0, 0, 69252, 66882, + 0, 0, 0, 0, 0, 72005, 72845, 0, 0, 0, 0, 0, 74213, 0, 0, 0, 0, 0, 6302, + 0, 0, 0, 0, 1417, 983226, 0, 9452, 0, 74393, 0, 0, 110850, 0, 65391, + 63789, 69251, 78659, 78660, 41264, 78658, 6426, 42398, 9179, 78654, + 64906, 41255, 42036, 0, 41269, 0, 41267, 42436, 67759, 42323, 42034, 0, + 0, 42475, 42033, 0, 0, 68916, 43948, 0, 78673, 78674, 1659, 919, 42784, 1671, 0, 6069, 9219, 0, 1661, 71489, 0, 92690, 10140, 9713, 78400, 119143, 125236, 0, 2306, 0, 0, 6068, 10612, 0, 0, 121314, 92561, 41462, - 0, 0, 0, 0, 0, 0, 0, 128204, 10635, 0, 983222, 0, 0, 0, 983232, 92251, 0, - 121029, 983224, 0, 8100, 0, 78669, 78670, 13301, 78667, 9667, 78665, 0, + 0, 0, 0, 0, 0, 0, 0, 128204, 10635, 0, 983225, 0, 0, 0, 983235, 92251, 0, + 121029, 983227, 0, 8100, 0, 78669, 78670, 13301, 78667, 9667, 78665, 0, 0, 11003, 9904, 0, 0, 0, 0, 0, 0, 78680, 78681, 78677, 78678, 0, 10313, 0, 0, 64320, 10265, 78686, 129404, 78684, 78685, 8945, 78683, 70750, 41, 0, 0, 0, 0, 8655, 0, 0, 71333, 0, 0, 0, 0, 2585, 0, 65254, 3126, 0, @@ -26034,7 +26215,7 @@ static const unsigned int code_hash[] = { 78688, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119925, 0, 983637, 0, 0, 0, 71494, 83399, 127541, 83398, 8022, 78808, 0, 73794, 0, 0, 83414, 119916, 0, 0, 0, 0, 0, 0, 63799, 78427, 12063, 78425, 78424, 0, 0, 0, 75025, 0, - 297, 0, 0, 68326, 0, 78429, 78428, 7077, 2497, 128651, 0, 983111, 0, 0, + 297, 0, 0, 68326, 0, 78429, 78428, 7077, 2497, 128651, 0, 983112, 0, 0, 0, 4292, 0, 74815, 10512, 0, 74814, 119931, 0, 72841, 2503, 65070, 1762, 69794, 2495, 0, 71230, 94069, 77984, 0, 12654, 0, 1899, 0, 2507, 0, 8726, 0, 65594, 0, 71272, 8892, 0, 0, 0, 0, 0, 420, 0, 0, 125130, 10797, 74637, @@ -26069,12 +26250,12 @@ static const unsigned int code_hash[] = { 66604, 72025, 0, 0, 0, 66600, 523, 92642, 71100, 74436, 0, 0, 0, 8608, 83435, 72828, 128704, 0, 127402, 11307, 66707, 67301, 67300, 67299, 0, 67304, 67303, 0, 0, 0, 0, 122654, 5908, 0, 0, 6744, 67310, 1699, 67308, - 67307, 67314, 67313, 6306, 67311, 983207, 72150, 69862, 3766, 2389, + 67307, 67314, 67313, 6306, 67311, 983209, 72150, 69862, 3766, 2389, 67305, 74569, 6611, 65700, 0, 0, 0, 42386, 0, 0, 2599, 917972, 119131, - 119049, 65717, 0, 0, 119654, 0, 0, 0, 74203, 3760, 1718, 68160, 0, 3776, - 7335, 0, 0, 67324, 69861, 0, 69792, 0, 0, 3778, 0, 9462, 7824, 0, 78896, - 3768, 68142, 765, 72822, 3764, 0, 0, 113822, 129667, 12947, 0, 0, 0, - 118806, 73753, 0, 0, 0, 6829, 5225, 66901, 0, 0, 0, 0, 67319, 67318, + 119049, 65717, 0, 0, 119654, 0, 0, 73538, 74203, 3760, 1718, 68160, 0, + 3776, 7335, 0, 0, 67324, 69861, 0, 69792, 0, 0, 3778, 0, 9462, 7824, 0, + 78896, 3768, 68142, 765, 72822, 3764, 0, 0, 113822, 129667, 12947, 0, 0, + 0, 118806, 73753, 0, 0, 0, 6829, 5225, 66901, 0, 0, 0, 0, 67319, 67318, 3162, 67316, 67323, 67322, 67321, 67320, 0, 5353, 128190, 74179, 67315, 0, 1010, 6851, 0, 67326, 67325, 127870, 6952, 67329, 67328, 67327, 2590, 120036, 65552, 120034, 120039, 7183, 120037, 120038, 120027, 120028, @@ -26103,13 +26284,13 @@ static const unsigned int code_hash[] = { 3140, 0, 0, 68007, 0, 67258, 10909, 0, 1428, 0, 67254, 67253, 7699, 12393, 67257, 0, 67256, 67255, 0, 0, 69389, 0, 0, 0, 0, 0, 67153, 0, 0, 127383, 69376, 64554, 0, 3878, 0, 42352, 1752, 0, 129702, 42506, 0, - 10199, 0, 983465, 125231, 0, 0, 0, 720, 0, 0, 0, 68831, 0, 1464, 128339, + 10199, 0, 983468, 125231, 0, 0, 0, 720, 0, 0, 0, 68831, 0, 1464, 128339, 0, 7974, 0, 125017, 68082, 0, 0, 0, 0, 74787, 0, 78864, 92258, 0, 0, 78863, 0, 1302, 66288, 0, 0, 0, 67152, 0, 983611, 983618, 0, 0, 3995, 0, 65608, 3714, 0, 0, 67262, 67261, 67260, 67259, 43251, 67264, 67263, 0, 120557, 92346, 8672, 68006, 11964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 92610, 0, 468, 0, 0, 0, 983472, 0, 0, 128544, 129397, 65907, 983163, 0, - 0, 0, 0, 0, 983470, 41743, 0, 0, 0, 74880, 0, 121001, 820, 41741, 0, + 92610, 0, 468, 0, 0, 0, 983475, 0, 0, 128544, 129397, 65907, 983164, 0, + 0, 0, 0, 0, 983473, 41743, 0, 0, 0, 74880, 0, 121001, 820, 41741, 0, 120667, 0, 64684, 126992, 128604, 126082, 69934, 65177, 6226, 353, 43645, 0, 119612, 120738, 67700, 0, 0, 0, 0, 42457, 120276, 0, 120277, 1884, 129637, 42418, 113678, 41157, 0, 42305, 120279, 0, 0, 41151, 0, 71430, 0, @@ -26124,7 +26305,7 @@ static const unsigned int code_hash[] = { 119083, 0, 71437, 119854, 69936, 0, 0, 3525, 6824, 0, 0, 119858, 128451, 0, 72239, 113738, 0, 71424, 0, 0, 0, 0, 0, 10727, 7212, 129071, 71957, 0, 0, 0, 67156, 808, 7207, 42387, 0, 0, 0, 0, 0, 0, 0, 0, 9225, 121149, 0, - 9145, 128060, 41018, 67841, 983158, 42300, 0, 3084, 983155, 125014, + 9145, 128060, 41018, 67841, 983159, 42300, 0, 3084, 983156, 125014, 41025, 6037, 0, 194885, 0, 10290, 0, 3083, 10322, 111017, 129030, 0, 41036, 0, 0, 43321, 65606, 0, 41032, 42388, 0, 64700, 0, 1445, 40961, 0, 0, 0, 40960, 0, 67727, 0, 2223, 64952, 10402, 0, 0, 0, 10603, 0, 118577, @@ -26141,15 +26322,15 @@ static const unsigned int code_hash[] = { 0, 13099, 71445, 70371, 0, 6435, 72154, 11362, 0, 0, 0, 0, 41420, 0, 3625, 74915, 41409, 71441, 0, 0, 0, 9672, 0, 0, 43317, 0, 0, 0, 41424, 917598, 0, 0, 0, 0, 41417, 1261, 0, 0, 12102, 119662, 41401, 0, 127538, - 129518, 0, 124943, 72765, 3275, 92472, 0, 0, 0, 118686, 0, 0, 0, 0, - 125129, 983140, 10598, 0, 128633, 6711, 0, 2920, 0, 0, 0, 0, 19928, 0, 0, + 129518, 0, 124943, 72765, 3275, 92472, 0, 0, 0, 118686, 0, 128946, 0, 0, + 125129, 983141, 10598, 0, 128633, 6711, 0, 2920, 0, 0, 0, 0, 19928, 0, 0, 3917, 0, 113756, 0, 0, 66588, 128078, 0, 0, 113721, 113758, 983081, 0, 0, 41184, 0, 232, 0, 0, 74170, 0, 0, 0, 0, 9094, 0, 0, 92585, 0, 1064, 0, 0, 10115, 0, 0, 0, 7862, 0, 13224, 0, 0, 66650, 0, 0, 72877, 1878, 0, 71434, 2911, 0, 41178, 5427, 0, 0, 0, 12617, 41174, 0, 67148, 67147, 0, 42413, 41167, 2406, 0, 0, 0, 0, 0, 9618, 128668, 0, 0, 0, 0, 41436, 9337, 126067, 0, 41456, 0, 119086, 11333, 0, 6703, 0, 125071, 1613, 0, 0, 0, - 983191, 0, 0, 74500, 41460, 78197, 0, 0, 194899, 67144, 65841, 0, 121109, + 983192, 0, 0, 74500, 41460, 78197, 0, 0, 194899, 67144, 65841, 0, 121109, 74064, 111146, 111144, 120375, 0, 111122, 0, 111121, 64687, 111120, 42592, 3871, 0, 128305, 9111, 111163, 0, 111156, 120366, 121462, 11150, 111154, 71488, 111179, 0, 111168, 0, 120362, 41587, 70391, 0, 74322, @@ -26157,8 +26338,8 @@ static const unsigned int code_hash[] = { 111127, 111140, 41595, 0, 0, 65801, 110587, 110586, 110585, 110584, 73712, 0, 41598, 3993, 121269, 1545, 40971, 121286, 72874, 0, 0, 0, 120767, 65286, 0, 0, 0, 0, 2201, 0, 0, 5402, 0, 0, 74462, 73457, 0, 0, - 78194, 64326, 40969, 0, 128110, 983703, 40968, 0, 121139, 0, 0, 0, 0, - 128513, 8020, 0, 41012, 0, 0, 65805, 41006, 0, 0, 74605, 0, 118942, + 78194, 64326, 40969, 0, 128110, 983703, 40968, 0, 121139, 0, 128891, 0, + 0, 128513, 8020, 0, 41012, 0, 0, 65805, 41006, 0, 0, 74605, 0, 118942, 43432, 0, 0, 92900, 0, 0, 68671, 120687, 0, 92958, 0, 0, 68332, 0, 40992, 0, 0, 0, 0, 0, 42235, 0, 1741, 42370, 0, 0, 0, 11413, 126583, 0, 0, 128769, 6470, 0, 74517, 0, 0, 120651, 40984, 0, 42742, 0, 12916, 6284, 0, @@ -26167,7 +26348,7 @@ static const unsigned int code_hash[] = { 2796, 0, 0, 9902, 0, 67988, 64785, 82995, 128822, 42631, 983040, 71890, 0, 74164, 41238, 10049, 11405, 0, 64368, 0, 120925, 0, 397, 12299, 42139, 0, 9590, 0, 0, 43661, 43819, 0, 6651, 3544, 0, 0, 9620, 0, 0, 0, 92229, - 1333, 7104, 0, 6425, 0, 0, 123561, 0, 0, 0, 11976, 8554, 13055, 0, + 1333, 7104, 0, 6425, 0, 0, 123561, 0, 0, 129725, 11976, 8554, 13055, 0, 110733, 0, 110731, 41218, 0, 0, 128673, 1883, 0, 0, 70443, 41225, 70788, 42419, 983707, 129450, 0, 127896, 0, 65809, 11837, 0, 129104, 7141, 0, 0, 0, 0, 0, 42363, 0, 0, 0, 0, 69949, 119157, 64732, 0, 0, 126983, 0, 0, @@ -26178,9 +26359,9 @@ static const unsigned int code_hash[] = { 11273, 120986, 43004, 0, 82988, 0, 961, 64307, 0, 0, 129752, 67711, 110615, 0, 1696, 0, 9762, 12105, 0, 110622, 110623, 3264, 110621, 110618, 43003, 110616, 110617, 0, 120359, 0, 128660, 0, 2322, 0, 70831, 11449, - 128187, 42868, 0, 0, 0, 0, 113746, 983235, 0, 129583, 66398, 0, 0, 0, 0, + 128187, 42868, 0, 0, 0, 0, 113746, 983238, 0, 129583, 66398, 0, 0, 0, 0, 0, 69494, 119224, 0, 0, 64421, 0, 113739, 0, 65823, 0, 11182, 0, 0, 0, - 7766, 55268, 0, 4598, 0, 65839, 0, 0, 0, 10851, 0, 6179, 92602, 6180, + 7766, 55268, 0, 4598, 0, 65839, 0, 0, 3315, 10851, 0, 6179, 92602, 6180, 129524, 11952, 0, 78648, 78651, 78646, 78647, 78644, 78645, 3801, 78643, 6176, 120580, 0, 0, 6177, 0, 78652, 78653, 6178, 0, 0, 0, 0, 2214, 8754, 0, 0, 2137, 0, 0, 0, 0, 66889, 0, 0, 0, 8974, 2308, 0, 74579, 0, 2318, @@ -26224,151 +26405,152 @@ static const unsigned int code_hash[] = { 0, 127321, 0, 127322, 0, 0, 0, 1050, 7549, 127319, 0, 9314, 0, 0, 0, 0, 0, 70434, 127314, 12527, 66504, 0, 0, 0, 0, 64333, 127312, 128547, 92594, 0, 0, 0, 129316, 0, 124960, 10360, 6746, 0, 0, 0, 0, 13085, 9233, 0, 0, - 0, 0, 0, 0, 92766, 0, 121114, 983944, 74212, 42819, 10910, 118627, 68044, - 9896, 0, 0, 120915, 0, 0, 7970, 0, 0, 0, 0, 113699, 9849, 0, 122910, 0, - 0, 10487, 69714, 0, 10103, 0, 4769, 0, 129967, 0, 2283, 0, 0, 74785, 0, - 0, 0, 110595, 110596, 0, 110594, 64565, 4773, 0, 0, 0, 4770, 0, 0, 0, - 65457, 69441, 0, 0, 127338, 983593, 4774, 0, 68497, 2259, 0, 0, 10215, 0, - 0, 0, 0, 0, 74776, 92160, 4768, 0, 0, 4099, 0, 110699, 110700, 110697, - 2225, 0, 0, 0, 0, 125217, 11255, 42814, 880, 0, 0, 0, 0, 0, 67756, 65246, - 0, 0, 129463, 7095, 0, 0, 0, 0, 0, 0, 2427, 0, 7093, 0, 11585, 0, 9962, - 0, 12223, 0, 78211, 1434, 42939, 0, 11573, 0, 0, 0, 121257, 0, 0, 0, 0, - 74437, 0, 113711, 917596, 0, 8740, 0, 3782, 64331, 0, 65167, 1014, 0, 0, - 0, 10835, 129987, 0, 0, 0, 0, 0, 118824, 7302, 0, 67707, 0, 1150, 10547, - 0, 0, 68427, 0, 0, 0, 0, 118788, 0, 0, 0, 42257, 8010, 0, 0, 0, 9643, 0, - 0, 12864, 0, 0, 0, 0, 0, 0, 0, 0, 1426, 68217, 0, 68447, 129971, 0, 0, 0, - 73701, 0, 0, 0, 65383, 0, 0, 0, 0, 0, 0, 43196, 43194, 92549, 10744, 0, - 990, 93772, 0, 0, 0, 0, 0, 66470, 0, 0, 0, 3945, 0, 0, 0, 130039, 0, - 127546, 127746, 1020, 73763, 92257, 118669, 0, 64748, 0, 0, 10205, 0, 0, - 10016, 0, 74051, 0, 43242, 125096, 2667, 0, 125037, 0, 9911, 0, 0, 10097, - 0, 0, 0, 118836, 0, 0, 0, 0, 68889, 10159, 113759, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 983340, 92291, 0, 127973, 72882, 0, 1041, 127182, 6354, 0, 65364, - 0, 0, 0, 72884, 0, 128477, 0, 65906, 127819, 72883, 0, 128470, 5375, - 72881, 0, 8215, 0, 10074, 0, 0, 0, 69899, 0, 0, 121426, 41382, 0, 0, - 5173, 65348, 527, 0, 0, 0, 128250, 0, 0, 0, 0, 0, 0, 42695, 0, 42250, 0, - 11187, 113695, 0, 1568, 66806, 0, 0, 113705, 0, 0, 129487, 0, 0, 128839, - 9069, 6144, 0, 0, 0, 0, 66783, 0, 74027, 118934, 66787, 74580, 0, 110790, - 6364, 0, 66794, 43508, 0, 92612, 0, 0, 0, 0, 128405, 66449, 0, 0, 0, 0, - 70714, 0, 70716, 0, 1044, 42411, 0, 0, 0, 0, 43239, 0, 0, 0, 118572, - 42450, 0, 0, 68479, 119237, 0, 0, 0, 0, 0, 69956, 11537, 0, 121206, 0, 0, - 0, 0, 1057, 566, 0, 0, 10907, 42274, 43464, 0, 118698, 0, 78472, 71207, - 42636, 0, 123603, 0, 0, 121171, 64659, 0, 127749, 0, 6357, 6362, 0, 0, - 2216, 9090, 0, 0, 0, 0, 68227, 0, 0, 0, 0, 1053, 12830, 0, 0, 0, 1052, - 1051, 459, 1060, 0, 66479, 0, 0, 0, 128061, 42490, 689, 6508, 4163, - 42298, 8639, 983335, 4246, 0, 43514, 42362, 0, 42337, 64596, 0, 0, 0, 0, - 0, 6359, 0, 43471, 0, 0, 0, 127274, 0, 6358, 6361, 1926, 6356, 0, 7898, - 0, 10935, 0, 127972, 121285, 0, 43685, 0, 0, 42910, 0, 8693, 0, 0, 44010, - 0, 120991, 121454, 0, 0, 0, 0, 129514, 0, 0, 0, 0, 73947, 0, 129361, - 92412, 0, 66477, 0, 0, 0, 43854, 71913, 0, 0, 0, 0, 72227, 65899, 92275, - 0, 0, 0, 68887, 0, 71057, 0, 0, 0, 0, 119183, 2923, 10853, 0, 0, 0, 0, - 72864, 0, 72773, 72772, 0, 120801, 65251, 122624, 68228, 0, 128548, 0, 0, - 5370, 70465, 2931, 73848, 0, 10188, 0, 118848, 0, 983942, 0, 0, 120584, - 72212, 0, 10844, 121016, 128195, 92424, 0, 0, 0, 286, 0, 1062, 0, 0, 0, - 7395, 0, 1070, 128993, 0, 6095, 0, 0, 0, 127796, 126465, 64497, 0, 0, 0, - 0, 70054, 8189, 78272, 0, 0, 0, 0, 0, 113783, 42102, 78276, 0, 0, 42101, - 0, 78402, 67427, 33, 67425, 67424, 10824, 67430, 67429, 67428, 427, - 64723, 0, 0, 0, 0, 1031, 0, 0, 42104, 0, 0, 2328, 0, 1071, 42899, 128486, - 0, 7673, 0, 0, 1047, 194837, 0, 42908, 0, 0, 10651, 0, 0, 0, 72433, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13216, 0, 69716, 0, 0, 0, 0, 0, 92411, - 69654, 0, 0, 129904, 2761, 129909, 0, 0, 0, 0, 8643, 0, 0, 94021, 2757, - 11067, 0, 74498, 8910, 10689, 0, 0, 0, 71173, 0, 9196, 71214, 0, 0, 0, 0, - 118911, 0, 0, 0, 0, 0, 0, 0, 0, 68130, 119616, 0, 0, 42477, 67482, 0, - 4495, 0, 0, 0, 0, 70080, 10992, 0, 0, 0, 0, 9318, 0, 6002, 0, 73808, 0, - 92601, 42249, 7639, 43995, 0, 0, 5454, 0, 0, 0, 0, 0, 0, 0, 121189, 0, - 119173, 0, 9704, 120686, 0, 78436, 78435, 11204, 0, 0, 1731, 0, 92937, 0, - 67990, 0, 0, 0, 126576, 127018, 71951, 55265, 0, 0, 0, 0, 127257, 73826, - 0, 3840, 0, 41432, 0, 0, 68430, 0, 43253, 128284, 0, 3371, 92936, 0, 0, - 1479, 69282, 0, 1109, 77997, 0, 129154, 0, 92782, 0, 0, 8868, 399, 67978, - 74842, 0, 0, 194839, 0, 551, 0, 10156, 0, 92572, 0, 2544, 65074, 0, 0, 0, - 0, 0, 0, 0, 128713, 0, 0, 74268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68045, 0, - 0, 0, 3447, 0, 0, 121414, 2549, 110818, 0, 0, 43564, 8946, 0, 74411, - 66864, 0, 70480, 7980, 0, 113698, 0, 119653, 66489, 0, 64695, 128063, 0, - 0, 0, 0, 0, 0, 43452, 0, 92993, 0, 10919, 0, 67810, 0, 0, 0, 0, 6450, - 10055, 0, 0, 0, 0, 42720, 0, 9626, 0, 128055, 74447, 0, 125127, 92573, 0, - 0, 0, 119075, 0, 0, 66486, 0, 0, 0, 0, 0, 0, 75028, 983883, 74839, 0, 0, - 0, 0, 0, 55286, 0, 1055, 917628, 0, 0, 0, 70516, 12146, 118623, 73956, - 66488, 0, 0, 0, 0, 0, 0, 42518, 0, 0, 0, 7407, 74978, 0, 0, 0, 0, 0, 0, - 0, 10231, 0, 66626, 0, 0, 92951, 0, 65927, 0, 0, 69696, 0, 92389, 0, 0, - 0, 68095, 92950, 0, 10555, 0, 0, 9091, 10798, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 43222, 0, 74982, 0, 0, 120952, 0, 0, 2992, 7826, 74321, 110879, 125103, - 74981, 92628, 0, 129903, 128289, 128203, 4361, 129597, 1306, 78770, 1497, - 983628, 0, 0, 0, 8248, 0, 127253, 7973, 128706, 0, 0, 73122, 983949, 0, - 0, 2963, 120653, 0, 128554, 0, 0, 64258, 0, 0, 69677, 74983, 65103, 0, - 125008, 42625, 0, 72022, 0, 0, 64905, 0, 9512, 0, 119076, 6443, 983264, - 0, 9135, 0, 0, 123202, 0, 0, 983882, 93788, 0, 0, 0, 93767, 64256, 0, - 11669, 0, 0, 4524, 0, 129182, 128390, 0, 74266, 0, 0, 0, 70119, 78410, - 69809, 121031, 55219, 69815, 93765, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2986, 0, 93763, 3437, 0, 6203, 4247, 0, 11920, 8274, 68240, 129694, 1657, - 0, 121276, 0, 0, 2954, 43506, 42837, 0, 0, 71179, 0, 0, 0, 66476, 68450, - 0, 0, 0, 43362, 983134, 129596, 11705, 0, 0, 0, 127354, 0, 11710, 0, 0, - 0, 0, 74429, 0, 0, 1058, 129555, 0, 0, 5484, 1144, 0, 0, 0, 0, 0, 118972, - 0, 65322, 0, 6441, 0, 0, 2547, 66484, 43634, 0, 5871, 0, 0, 0, 0, 0, 0, - 71204, 0, 0, 1865, 0, 0, 69950, 0, 93021, 73713, 0, 71199, 65826, 2069, - 0, 119092, 43999, 2997, 0, 126588, 0, 65319, 0, 12316, 0, 0, 123630, - 8776, 0, 0, 66294, 13130, 0, 71191, 126625, 0, 10030, 11709, 12364, - 983853, 0, 11704, 0, 118641, 68672, 0, 0, 0, 0, 11706, 9710, 0, 82985, 0, - 413, 65623, 0, 0, 0, 74446, 0, 1042, 0, 128378, 12171, 119240, 0, 69384, - 4984, 0, 708, 11391, 0, 0, 0, 983930, 1308, 0, 3673, 810, 0, 120933, - 118567, 0, 0, 1917, 3000, 0, 0, 0, 65628, 66387, 74470, 0, 0, 0, 10027, - 0, 0, 0, 0, 128831, 983167, 2980, 755, 0, 0, 65622, 0, 121012, 7277, - 121022, 0, 0, 0, 0, 8730, 0, 0, 0, 7274, 119250, 0, 7275, 0, 935, 0, 0, - 377, 42325, 121103, 0, 101133, 101132, 101135, 101134, 0, 74911, 2417, - 101130, 0, 19912, 0, 0, 101128, 101127, 0, 101129, 101124, 7248, 101126, - 101125, 1781, 5496, 3627, 62, 1649, 0, 964, 0, 0, 0, 0, 92897, 0, 0, - 127364, 0, 43689, 127911, 66287, 78812, 64389, 66575, 0, 73041, 0, - 129687, 0, 7677, 2991, 3293, 0, 0, 0, 72201, 0, 11341, 127049, 0, 65625, - 9714, 11692, 0, 0, 120850, 6478, 10195, 43673, 65237, 6241, 0, 0, 0, - 6238, 0, 129889, 0, 4409, 0, 0, 67170, 0, 0, 0, 94047, 6237, 5461, 66851, - 9176, 92882, 121341, 65231, 0, 0, 121182, 110581, 0, 44018, 0, 64765, 0, - 0, 0, 5685, 0, 2461, 0, 7091, 0, 0, 0, 68163, 0, 73030, 0, 0, 73928, 0, - 0, 0, 0, 0, 0, 110582, 0, 0, 68506, 0, 0, 0, 0, 0, 2542, 0, 0, 0, 128176, - 5776, 0, 0, 0, 0, 0, 11987, 0, 0, 75036, 68744, 0, 0, 10039, 42828, 0, 0, - 0, 0, 0, 10721, 67664, 43433, 0, 0, 41875, 0, 41870, 266, 129066, 0, - 41873, 71271, 0, 0, 0, 0, 0, 0, 41871, 66186, 3734, 7734, 43683, 8750, - 110600, 66011, 92899, 0, 127937, 0, 0, 10572, 0, 42906, 0, 64349, 7287, - 0, 0, 0, 0, 11167, 69220, 0, 43429, 0, 1697, 0, 0, 68633, 7286, 0, - 128738, 10031, 78754, 0, 68645, 8620, 0, 42162, 0, 0, 7285, 0, 119577, 0, - 66842, 43677, 41583, 0, 65799, 129332, 0, 0, 0, 0, 110806, 0, 3609, 0, - 129448, 119074, 125116, 126254, 128108, 73948, 0, 0, 0, 0, 129189, 42732, - 92699, 74984, 68620, 11691, 74985, 0, 0, 0, 0, 0, 6348, 243, 74075, 0, 0, - 92309, 123585, 0, 0, 10648, 8538, 43687, 0, 118723, 0, 70515, 0, 118954, - 92886, 13307, 129573, 92891, 0, 120770, 983850, 0, 0, 0, 0, 214, 0, 0, 0, - 65893, 0, 120488, 128386, 0, 92893, 0, 2603, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 43, 0, 0, 1016, 0, 0, 0, 3885, 92, 65456, 64608, 0, 0, 0, 70656, - 113742, 0, 0, 0, 128128, 983857, 0, 0, 6791, 983861, 127960, 0, 0, 0, - 118976, 0, 7328, 92358, 0, 7995, 8759, 43421, 0, 68029, 92860, 0, 125272, - 0, 3197, 0, 0, 0, 983150, 0, 11595, 0, 0, 43435, 0, 0, 0, 0, 0, 70660, 0, - 741, 83291, 5494, 0, 70668, 1990, 11107, 4498, 0, 0, 70658, 0, 0, 2960, - 73779, 0, 8969, 101256, 43424, 0, 101257, 2950, 101251, 101254, 101253, - 370, 0, 101250, 101249, 0, 0, 0, 0, 0, 0, 0, 122900, 0, 0, 983253, 0, - 2964, 43663, 0, 6344, 0, 0, 10144, 0, 8252, 729, 66016, 78446, 0, 0, 0, - 78740, 43669, 9032, 0, 0, 0, 0, 0, 0, 0, 0, 74612, 3761, 101261, 101260, - 101263, 101262, 0, 0, 3850, 101258, 0, 128389, 0, 0, 0, 0, 8611, 0, 0, 0, - 43691, 125032, 0, 41802, 120540, 0, 0, 0, 0, 0, 3848, 101230, 113800, - 127536, 101227, 101226, 101229, 101228, 663, 0, 0, 0, 0, 0, 0, 0, 0, - 13221, 0, 0, 101244, 101243, 101246, 101245, 0, 65579, 12980, 68046, - 12143, 101069, 128067, 0, 43441, 41804, 101241, 101240, 101235, 101234, - 101237, 101236, 66329, 0, 72324, 101232, 0, 125038, 0, 129383, 101214, - 101213, 0, 101215, 101210, 0, 101212, 101211, 0, 1097, 129033, 0, 101209, - 101208, 93828, 0, 101205, 101204, 101207, 101206, 101201, 101200, 101203, - 101202, 0, 13110, 0, 983886, 68229, 1000, 0, 0, 101222, 1209, 101224, - 101223, 92354, 1073, 6321, 77878, 92818, 0, 68213, 0, 12167, 0, 0, 0, 0, - 73673, 121500, 0, 121501, 0, 6587, 0, 0, 0, 9231, 0, 2959, 101191, 0, - 101193, 101188, 101187, 101190, 101189, 101184, 0, 101186, 42941, 0, 0, - 68434, 0, 70742, 0, 0, 12290, 0, 0, 110801, 0, 77873, 8205, 110803, 5131, - 118542, 0, 0, 0, 0, 0, 1944, 78453, 0, 0, 119990, 119991, 12701, 78492, - 11308, 119995, 0, 113702, 66836, 119999, 74263, 92382, 120002, 120003, - 7075, 101196, 101199, 101198, 41817, 73934, 42275, 101194, 120012, - 120013, 120014, 42943, 6041, 0, 41899, 0, 8002, 0, 41902, 0, 0, 64332, 0, - 7813, 119117, 0, 41900, 120633, 101167, 7281, 78455, 7279, 12041, 93027, - 101165, 12673, 0, 129123, 9660, 0, 72984, 101161, 0, 0, 0, 92901, 2970, - 0, 101180, 101179, 77870, 101181, 0, 0, 101178, 0, 0, 0, 0, 0, 3486, - 101174, 69498, 101176, 101171, 101170, 101173, 101172, 0, 69920, 101169, - 66834, 0, 984006, 0, 68312, 101150, 65673, 1019, 78495, 4148, 0, 12289, - 101147, 4316, 0, 13119, 983932, 101145, 101144, 0, 0, 101141, 101140, - 43434, 41865, 101137, 9163, 8659, 9072, 5867, 13302, 7622, 7120, 0, 0, 0, - 0, 7400, 5416, 101160, 101159, 10817, 101153, 101156, 101155, 0, 68162, - 41855, 41867, 0, 983225, 0, 11536, 71988, 0, 7115, 0, 0, 5498, 7337, + 0, 0, 983474, 0, 92766, 0, 121114, 983944, 74212, 42819, 10910, 118627, + 68044, 9896, 0, 0, 120915, 0, 0, 7970, 0, 0, 0, 0, 113699, 9849, 0, + 122910, 0, 0, 10487, 69714, 0, 10103, 0, 4769, 0, 129967, 0, 2283, 0, 0, + 74785, 0, 0, 0, 110595, 110596, 0, 110594, 64565, 4773, 0, 0, 0, 4770, 0, + 0, 0, 65457, 69441, 0, 0, 127338, 983593, 4774, 0, 68497, 2259, 0, 0, + 10215, 0, 0, 0, 0, 0, 74776, 92160, 4768, 0, 0, 4099, 0, 110699, 110700, + 110697, 2225, 0, 0, 0, 41183, 125217, 11255, 42814, 880, 0, 0, 0, 0, 0, + 67756, 65246, 0, 0, 129463, 7095, 0, 0, 0, 0, 0, 0, 2427, 0, 7093, 0, + 11585, 0, 9962, 0, 12223, 0, 78211, 1434, 42939, 0, 11573, 0, 0, 0, + 121257, 0, 0, 0, 0, 74437, 0, 113711, 917596, 0, 8740, 0, 3782, 64331, 0, + 65167, 1014, 0, 0, 0, 10835, 129987, 0, 0, 0, 0, 0, 118824, 7302, 0, + 67707, 0, 1150, 10547, 0, 0, 68427, 0, 0, 0, 0, 118788, 0, 0, 0, 42257, + 8010, 0, 0, 0, 9643, 0, 0, 12864, 0, 0, 0, 0, 0, 0, 0, 0, 1426, 68217, 0, + 68447, 129971, 0, 0, 0, 73701, 0, 0, 0, 65383, 0, 0, 0, 0, 0, 0, 43196, + 43194, 92549, 10744, 0, 990, 93772, 0, 0, 0, 0, 0, 66470, 0, 0, 0, 3945, + 0, 0, 0, 130039, 0, 127546, 127746, 1020, 73763, 92257, 118669, 0, 64748, + 0, 0, 10205, 0, 0, 10016, 0, 74051, 0, 43242, 125096, 2667, 0, 125037, 0, + 9911, 0, 0, 10097, 0, 0, 0, 118836, 0, 0, 0, 0, 68889, 10159, 113759, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 983343, 92291, 0, 127973, 72882, 0, 1041, 127182, + 6354, 0, 65364, 0, 0, 0, 72884, 0, 128477, 0, 65906, 127819, 72883, 0, + 128470, 5375, 72881, 0, 8215, 0, 10074, 0, 0, 0, 69899, 0, 0, 121426, + 41382, 0, 0, 5173, 65348, 527, 0, 0, 0, 128250, 0, 0, 0, 0, 0, 0, 42695, + 0, 42250, 0, 11187, 113695, 0, 1568, 66806, 0, 0, 113705, 0, 0, 129487, + 0, 0, 128839, 9069, 6144, 0, 0, 0, 0, 66783, 0, 74027, 118934, 66787, + 74580, 0, 110790, 6364, 0, 66794, 43508, 0, 92612, 0, 0, 0, 0, 128405, + 66449, 0, 0, 0, 0, 70714, 0, 70716, 0, 1044, 42411, 0, 0, 0, 0, 43239, 0, + 0, 0, 118572, 42450, 0, 0, 68479, 119237, 0, 0, 0, 0, 0, 69956, 11537, 0, + 121206, 0, 0, 0, 0, 1057, 566, 0, 0, 10907, 42274, 43464, 0, 118698, 0, + 78472, 71207, 42636, 0, 123603, 0, 0, 121171, 64659, 0, 127749, 0, 6357, + 6362, 0, 0, 2216, 9090, 0, 0, 0, 0, 68227, 0, 0, 0, 0, 1053, 12830, 0, 0, + 0, 1052, 1051, 459, 1060, 0, 66479, 0, 0, 0, 128061, 42490, 689, 6508, + 4163, 42298, 8639, 983338, 4246, 0, 43514, 42362, 0, 42337, 64596, 0, 0, + 0, 0, 0, 6359, 0, 43471, 0, 0, 0, 127274, 0, 6358, 6361, 1926, 6356, 0, + 7898, 0, 10935, 0, 127972, 121285, 0, 43685, 0, 0, 42910, 0, 8693, 0, 0, + 44010, 0, 120991, 121454, 0, 0, 0, 0, 129514, 0, 0, 0, 0, 73947, 0, + 129361, 92412, 0, 66477, 0, 0, 0, 43854, 71913, 0, 0, 0, 0, 72227, 65899, + 92275, 0, 0, 0, 68887, 0, 71057, 0, 0, 0, 0, 119183, 2923, 10853, 0, 0, + 0, 0, 72864, 0, 72773, 72772, 0, 120801, 65251, 122624, 68228, 0, 128548, + 0, 0, 5370, 70465, 2931, 73848, 0, 10188, 0, 118848, 0, 983942, 0, 0, + 120584, 72212, 0, 10844, 121016, 128195, 92424, 0, 0, 0, 286, 0, 1062, 0, + 0, 124127, 7395, 0, 1070, 128993, 0, 6095, 0, 0, 0, 127796, 126465, + 64497, 0, 0, 0, 0, 70054, 8189, 78272, 0, 0, 0, 0, 0, 113783, 42102, + 78276, 0, 0, 42101, 0, 78402, 67427, 33, 67425, 67424, 10824, 67430, + 67429, 67428, 427, 64723, 0, 0, 0, 0, 1031, 0, 0, 42104, 0, 0, 2328, 0, + 1071, 42899, 128486, 0, 7673, 0, 0, 1047, 194837, 0, 42908, 0, 0, 10651, + 0, 0, 0, 72433, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13216, 0, 69716, 0, + 0, 0, 0, 0, 92411, 69654, 0, 0, 129904, 2761, 129909, 0, 0, 0, 0, 8643, + 0, 0, 94021, 2757, 11067, 0, 74498, 8910, 10689, 0, 0, 0, 71173, 0, 9196, + 71214, 0, 0, 0, 0, 118911, 0, 0, 0, 0, 0, 0, 0, 0, 68130, 119616, 0, 0, + 42477, 67482, 0, 4495, 0, 0, 0, 0, 70080, 10992, 0, 0, 0, 0, 9318, 0, + 6002, 0, 73808, 0, 92601, 42249, 7639, 43995, 0, 0, 5454, 0, 0, 0, 0, 0, + 0, 0, 121189, 0, 119173, 0, 9704, 120686, 0, 78436, 78435, 11204, 0, 0, + 1731, 0, 92937, 0, 67990, 0, 0, 0, 126576, 127018, 71951, 55265, 0, 0, 0, + 0, 127257, 73826, 0, 3840, 0, 41432, 0, 0, 68430, 0, 43253, 128284, 0, + 3371, 92936, 0, 0, 1479, 69282, 0, 1109, 77997, 0, 129154, 0, 92782, 0, + 0, 8868, 399, 67978, 74842, 0, 0, 194839, 73498, 551, 0, 10156, 0, 92572, + 0, 2544, 65074, 0, 0, 0, 0, 0, 0, 0, 128713, 0, 0, 74268, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 68045, 0, 0, 0, 3447, 0, 0, 121414, 2549, 110818, 0, 0, + 43564, 8946, 0, 74411, 66864, 0, 70480, 7980, 0, 113698, 0, 119653, + 66489, 0, 64695, 128063, 0, 0, 0, 0, 0, 0, 43452, 0, 92993, 0, 10919, 0, + 67810, 0, 0, 0, 0, 6450, 10055, 0, 0, 0, 0, 42720, 0, 9626, 0, 128055, + 74447, 0, 125127, 92573, 0, 0, 0, 119075, 0, 0, 66486, 0, 0, 0, 0, 0, 0, + 75028, 983883, 74839, 0, 0, 0, 0, 0, 55286, 0, 1055, 917628, 0, 0, 0, + 70516, 12146, 118623, 73956, 66488, 0, 0, 0, 0, 0, 0, 42518, 0, 0, 0, + 7407, 74978, 0, 0, 0, 0, 0, 0, 0, 10231, 0, 66626, 0, 0, 92951, 0, 65927, + 0, 0, 69696, 0, 92389, 0, 0, 0, 68095, 92950, 0, 10555, 0, 0, 9091, + 10798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43222, 0, 74982, 0, 0, 120952, 0, 0, + 2992, 7826, 74321, 110879, 125103, 74981, 92628, 0, 129903, 128289, + 128203, 4361, 129597, 1306, 78770, 1497, 983628, 0, 0, 0, 8248, 0, + 127253, 7973, 128706, 0, 0, 73122, 983949, 0, 0, 2963, 120653, 0, 128554, + 0, 0, 64258, 0, 0, 69677, 74983, 65103, 0, 125008, 42625, 0, 72022, 0, 0, + 64905, 0, 9512, 0, 119076, 6443, 983267, 0, 9135, 0, 0, 123202, 0, 0, + 983882, 93788, 0, 0, 0, 93767, 64256, 0, 11669, 0, 0, 4524, 0, 129182, + 128390, 0, 74266, 0, 0, 0, 70119, 78410, 69809, 121031, 55219, 69815, + 93765, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2986, 0, 93763, 3437, 0, 6203, + 4247, 0, 11920, 8274, 68240, 129694, 1657, 0, 121276, 122951, 0, 2954, + 43506, 42837, 0, 0, 71179, 0, 0, 0, 66476, 68450, 0, 0, 0, 43362, 983135, + 129596, 11705, 0, 0, 0, 127354, 0, 11710, 0, 0, 0, 119507, 74429, 0, 0, + 1058, 129555, 0, 0, 5484, 1144, 0, 0, 0, 0, 0, 118972, 0, 65322, 0, 6441, + 0, 0, 2547, 66484, 43634, 0, 5871, 0, 0, 0, 0, 0, 0, 71204, 0, 0, 1865, + 0, 0, 69950, 0, 93021, 73713, 0, 71199, 65826, 2069, 0, 119092, 43999, + 2997, 0, 126588, 0, 65319, 0, 12316, 0, 0, 123630, 8776, 0, 0, 66294, + 13130, 0, 71191, 126625, 0, 10030, 11709, 12364, 983853, 0, 11704, 0, + 118641, 68672, 0, 0, 0, 0, 11706, 9710, 0, 82985, 0, 413, 65623, 0, 0, + 93980, 74446, 0, 1042, 0, 128378, 12171, 119240, 0, 69384, 4984, 0, 708, + 11391, 0, 0, 0, 983930, 1308, 0, 3673, 810, 0, 120933, 118567, 0, 0, + 1917, 3000, 0, 0, 0, 65628, 66387, 74470, 0, 0, 0, 10027, 0, 0, 0, 0, + 128831, 983168, 2980, 755, 0, 0, 65622, 0, 121012, 7277, 121022, 0, 0, 0, + 0, 8730, 0, 0, 0, 7274, 119250, 0, 7275, 0, 935, 0, 0, 377, 42325, + 121103, 0, 101133, 101132, 101135, 101134, 0, 74911, 2417, 101130, 0, + 19912, 0, 0, 101128, 101127, 0, 101129, 101124, 7248, 101126, 101125, + 1781, 5496, 3627, 62, 1649, 0, 964, 0, 0, 0, 0, 92897, 0, 0, 127364, 0, + 43689, 127911, 66287, 78812, 64389, 66575, 0, 73041, 0, 129687, 0, 7677, + 2991, 3293, 0, 0, 0, 72201, 0, 11341, 127049, 0, 65625, 9714, 11692, 0, + 0, 120850, 6478, 10195, 43673, 65237, 6241, 0, 0, 0, 6238, 0, 129889, 0, + 4409, 0, 0, 67170, 0, 0, 0, 94047, 6237, 5461, 66851, 9176, 92882, + 121341, 65231, 0, 0, 121182, 110581, 0, 44018, 0, 64765, 0, 0, 0, 5685, + 0, 2461, 0, 7091, 0, 0, 0, 68163, 0, 73030, 0, 0, 73928, 0, 0, 0, 0, 0, + 0, 110582, 0, 0, 68506, 0, 0, 0, 0, 0, 2542, 0, 0, 0, 128176, 5776, 0, 0, + 0, 0, 0, 11987, 0, 0, 75036, 68744, 0, 0, 10039, 42828, 0, 0, 0, 0, 0, + 10721, 67664, 43433, 0, 0, 41875, 0, 41870, 266, 129066, 0, 41873, 71271, + 0, 0, 0, 0, 0, 0, 41871, 66186, 3734, 7734, 43683, 8750, 110600, 66011, + 92899, 0, 127937, 0, 0, 10572, 0, 42906, 0, 64349, 7287, 0, 0, 0, 0, + 11167, 69220, 0, 43429, 0, 1697, 0, 0, 68633, 7286, 0, 128738, 10031, + 78754, 0, 68645, 8620, 0, 42162, 0, 0, 7285, 0, 119577, 0, 66842, 43677, + 41583, 0, 65799, 129332, 0, 0, 0, 0, 110806, 0, 3609, 0, 129448, 119074, + 125116, 126254, 128108, 73948, 0, 0, 0, 0, 129189, 42732, 92699, 74984, + 68620, 11691, 74985, 0, 0, 0, 0, 0, 6348, 243, 74075, 0, 0, 92309, + 123585, 0, 0, 10648, 8538, 43687, 0, 118723, 0, 70515, 0, 118954, 92886, + 13307, 129573, 92891, 0, 120770, 983850, 0, 0, 0, 0, 214, 0, 0, 0, 65893, + 0, 120488, 128386, 0, 92893, 0, 2603, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 43, 0, 0, 1016, 0, 0, 0, 3885, 92, 65456, 64608, 0, 0, 0, 70656, 113742, + 0, 0, 0, 128128, 983857, 0, 0, 6791, 983861, 127960, 0, 0, 0, 118976, 0, + 7328, 92358, 0, 7995, 8759, 43421, 0, 68029, 92860, 0, 125272, 0, 3197, + 0, 0, 0, 983151, 0, 11595, 0, 0, 43435, 0, 0, 0, 0, 0, 70660, 0, 741, + 83291, 5494, 0, 70668, 1990, 11107, 4498, 0, 0, 70658, 0, 0, 2960, 73779, + 0, 8969, 101256, 43424, 0, 101257, 2950, 101251, 101254, 101253, 370, 0, + 101250, 101249, 0, 0, 0, 122967, 0, 0, 0, 122900, 0, 0, 983256, 0, 2964, + 43663, 0, 6344, 0, 0, 10144, 0, 8252, 729, 66016, 78446, 0, 0, 0, 78740, + 43669, 9032, 0, 0, 0, 0, 0, 0, 0, 0, 74612, 3761, 101261, 101260, 101263, + 101262, 0, 0, 3850, 101258, 0, 128389, 0, 0, 0, 0, 8611, 0, 0, 0, 43691, + 125032, 0, 41802, 120540, 0, 0, 0, 0, 0, 3848, 101230, 113800, 127536, + 101227, 101226, 101229, 101228, 663, 0, 0, 0, 0, 0, 0, 0, 0, 13221, 0, 0, + 101244, 101243, 101246, 101245, 0, 65579, 12980, 68046, 12143, 101069, + 128067, 0, 43441, 41804, 101241, 101240, 101235, 101234, 101237, 101236, + 66329, 0, 72324, 101232, 0, 125038, 0, 129383, 101214, 101213, 0, 101215, + 101210, 0, 101212, 101211, 0, 1097, 129033, 0, 101209, 101208, 93828, 0, + 101205, 101204, 101207, 101206, 101201, 101200, 101203, 101202, 0, 13110, + 0, 983886, 68229, 1000, 0, 0, 101222, 1209, 101224, 101223, 92354, 1073, + 6321, 77878, 92818, 0, 68213, 0, 12167, 0, 0, 0, 0, 73673, 121500, 0, + 121501, 0, 6587, 0, 0, 0, 9231, 0, 2959, 101191, 0, 101193, 101188, + 101187, 101190, 101189, 101184, 0, 101186, 42941, 0, 0, 68434, 0, 70742, + 0, 0, 12290, 0, 0, 110801, 0, 77873, 8205, 110803, 5131, 118542, 0, 0, 0, + 0, 0, 1944, 78453, 0, 0, 119990, 119991, 12701, 78492, 11308, 119995, 0, + 113702, 66836, 119999, 74263, 92382, 120002, 120003, 7075, 101196, + 101199, 101198, 41817, 73934, 42275, 101194, 120012, 120013, 120014, + 42943, 6041, 0, 41899, 0, 8002, 0, 41902, 0, 0, 64332, 0, 7813, 119117, + 0, 41900, 120633, 101167, 7281, 78455, 7279, 12041, 93027, 101165, 12673, + 0, 129123, 9660, 0, 72984, 101161, 0, 0, 0, 92901, 2970, 0, 101180, + 101179, 77870, 101181, 0, 0, 101178, 0, 0, 0, 0, 0, 3486, 101174, 69498, + 101176, 101171, 101170, 101173, 101172, 0, 69920, 101169, 66834, 0, + 984006, 0, 68312, 101150, 65673, 1019, 78495, 4148, 0, 12289, 101147, + 4316, 0, 13119, 983932, 101145, 101144, 0, 0, 101141, 101140, 43434, + 41865, 101137, 9163, 8659, 9072, 5867, 13302, 7622, 7120, 0, 0, 0, 0, + 7400, 5416, 101160, 101159, 10817, 101153, 101156, 101155, 0, 68162, + 41855, 41867, 0, 983228, 0, 11536, 71988, 0, 7115, 0, 0, 5498, 7337, 41536, 0, 0, 92587, 7221, 8997, 0, 0, 0, 71949, 0, 0, 127814, 0, 0, 0, 0, 0, 295, 0, 0, 0, 0, 121292, 0, 43454, 63903, 63902, 63901, 122644, 3971, 0, 0, 2952, 0, 11038, 10901, 63900, 63899, 63898, 5198, 667, 43273, @@ -26393,7 +26575,7 @@ static const unsigned int code_hash[] = { 63932, 75050, 63929, 63928, 63927, 77934, 9806, 65566, 77933, 63922, 63921, 2086, 0, 63926, 2984, 5968, 63923, 0, 0, 129458, 11137, 13169, 5290, 2089, 0, 63827, 1088, 63825, 7268, 1084, 1085, 63829, 1083, 10131, - 7283, 0, 0, 0, 1092, 0, 7273, 983274, 44016, 43627, 0, 0, 0, 11809, 0, 0, + 7283, 0, 0, 0, 1092, 0, 7273, 983277, 44016, 43627, 0, 0, 0, 11809, 0, 0, 0, 2965, 7258, 8808, 0, 1089, 7278, 63937, 63936, 43405, 11106, 940, 5787, 10099, 63938, 101269, 63897, 101271, 2994, 101265, 101264, 101267, 101266, 77939, 77940, 77937, 77938, 74343, 93043, 72704, 660, 10127, 666, @@ -26419,36 +26601,36 @@ static const unsigned int code_hash[] = { 128100, 0, 42612, 43655, 0, 0, 0, 66468, 0, 0, 68623, 101423, 0, 0, 101420, 101419, 101422, 101421, 0, 1151, 101418, 73709, 127544, 0, 71106, 118722, 0, 0, 0, 0, 101437, 101436, 11527, 101438, 0, 0, 11538, 101434, - 0, 11020, 0, 66467, 101432, 8087, 71700, 101433, 9894, 101427, 101430, + 0, 11020, 0, 66467, 101432, 8087, 71700, 101433, 9894, 101427, 73485, 70824, 101424, 0, 78513, 8053, 0, 0, 0, 0, 101407, 101406, 0, 63845, - 101403, 101402, 78602, 101404, 13084, 42966, 8741, 0, 0, 101401, 0, - 64605, 83051, 101397, 473, 43415, 101394, 101393, 101396, 1087, 124966, - 71275, 101392, 0, 66439, 43218, 0, 0, 7237, 101414, 101417, 101416, - 71996, 101410, 92261, 101412, 121036, 4384, 74220, 101408, 2058, 917561, - 0, 129462, 0, 0, 0, 3857, 0, 0, 0, 64630, 0, 0, 74168, 127113, 125088, - 4421, 0, 0, 101381, 66400, 101383, 68431, 101377, 101376, 101379, 83053, - 0, 0, 69640, 127861, 0, 437, 0, 0, 0, 0, 65236, 13290, 119180, 4997, - 64306, 0, 0, 4999, 0, 0, 0, 4711, 120769, 0, 2739, 0, 92915, 74834, 0, - 127175, 0, 0, 0, 0, 0, 1779, 6600, 6601, 0, 5325, 101390, 101389, 13058, - 101391, 101386, 0, 92186, 101387, 71845, 10575, 43399, 0, 101385, 101384, - 1104, 0, 0, 10655, 0, 0, 69497, 0, 1082, 110878, 0, 67401, 0, 0, 0, 0, - 6783, 0, 0, 42867, 69655, 44021, 6458, 0, 0, 0, 0, 0, 0, 1273, 43407, 0, - 0, 0, 0, 1313, 6322, 41720, 128627, 66433, 0, 0, 0, 11216, 0, 0, 0, - 43437, 93833, 0, 0, 0, 5122, 0, 72728, 129520, 70161, 0, 0, 0, 0, 0, - 8303, 0, 128926, 0, 10003, 0, 0, 0, 1686, 0, 0, 42834, 3664, 0, 126088, - 121346, 0, 0, 4324, 126, 0, 0, 0, 0, 0, 65166, 0, 0, 0, 0, 43817, 0, - 43822, 0, 0, 65600, 13002, 0, 0, 0, 1103, 0, 119575, 129452, 0, 13078, 0, - 8116, 0, 2050, 0, 0, 1102, 0, 6555, 0, 0, 74003, 74794, 0, 0, 42591, - 127278, 0, 1111, 0, 75047, 4707, 0, 0, 0, 0, 43468, 4522, 8645, 0, 74857, - 0, 11352, 0, 92787, 0, 2293, 0, 0, 0, 128265, 71709, 0, 121194, 0, 93827, - 0, 0, 0, 128488, 0, 160, 2677, 0, 0, 120141, 0, 983646, 70790, 0, 42770, - 0, 71986, 0, 43821, 113769, 0, 0, 43816, 0, 0, 1079, 3867, 64817, 0, - 118549, 0, 0, 64768, 0, 0, 4005, 983211, 0, 10991, 0, 92957, 917578, - 92850, 917580, 917575, 128314, 917577, 917576, 917571, 78534, 917573, - 917572, 0, 0, 128359, 73458, 0, 3339, 11448, 1106, 917591, 917590, - 917593, 3340, 917587, 917586, 917589, 917588, 917583, 10605, 1309, 74996, - 120743, 92650, 0, 0, 9485, 0, 129781, 0, 0, 0, 125002, 92533, 128487, 0, - 129285, 4338, 11238, 0, 66825, 0, 0, 0, 0, 0, 0, 74128, 0, 0, 73680, 0, + 101403, 78912, 78602, 101404, 13084, 42966, 8741, 0, 0, 101401, 0, 64605, + 83051, 101397, 473, 43415, 101394, 101393, 101396, 1087, 124966, 71275, + 101392, 0, 66439, 43218, 0, 0, 7237, 101414, 101417, 101416, 71996, + 101410, 92261, 101412, 121036, 4384, 74220, 101408, 2058, 917561, 0, + 129462, 0, 0, 0, 3857, 0, 0, 0, 64630, 0, 0, 74168, 127113, 125088, 4421, + 0, 0, 101381, 66400, 101383, 68431, 101377, 101376, 101379, 83053, 0, 0, + 69640, 127861, 0, 437, 73483, 0, 0, 0, 65236, 13290, 119180, 4997, 64306, + 0, 0, 4999, 0, 0, 0, 4711, 120769, 0, 2739, 0, 92915, 74834, 0, 127175, + 0, 0, 0, 0, 0, 1779, 6600, 6601, 0, 5325, 101390, 101389, 13058, 101391, + 101386, 0, 92186, 101387, 71845, 10575, 43399, 0, 101385, 101384, 1104, + 0, 0, 10655, 0, 0, 69497, 0, 1082, 110878, 0, 67401, 0, 0, 0, 0, 6783, 0, + 0, 42867, 69655, 44021, 6458, 0, 0, 0, 0, 0, 0, 1273, 43407, 0, 0, 0, 0, + 1313, 6322, 41720, 128627, 66433, 0, 0, 0, 11216, 0, 0, 0, 43437, 93833, + 0, 0, 0, 5122, 0, 72728, 129520, 70161, 0, 0, 0, 0, 0, 8303, 0, 128926, + 0, 10003, 0, 0, 0, 1686, 0, 0, 42834, 3664, 0, 126088, 121346, 0, 0, + 4324, 126, 0, 0, 0, 0, 0, 65166, 0, 0, 0, 0, 43817, 0, 43822, 0, 0, + 65600, 13002, 0, 0, 0, 1103, 0, 119575, 129452, 0, 13078, 0, 8116, 0, + 2050, 0, 0, 1102, 0, 6555, 0, 0, 74003, 74794, 0, 0, 42591, 127278, 0, + 1111, 0, 75047, 4707, 0, 0, 0, 0, 43468, 4522, 8645, 0, 74857, 0, 11352, + 0, 92787, 0, 2293, 0, 0, 0, 128265, 71709, 0, 121194, 0, 93827, 0, 0, 0, + 128488, 0, 160, 2677, 0, 0, 120141, 0, 983646, 70790, 0, 42770, 0, 71986, + 0, 43821, 113769, 0, 0, 43816, 0, 0, 1079, 3867, 64817, 0, 118549, 0, 0, + 64768, 0, 0, 4005, 983213, 0, 10991, 0, 92957, 917578, 92850, 917580, + 917575, 128314, 917577, 917576, 917571, 78534, 917573, 917572, 0, 0, + 128359, 73458, 0, 3339, 11448, 1106, 917591, 917590, 129192, 3340, + 917587, 917586, 917589, 917588, 917583, 10605, 1309, 74996, 120743, + 92650, 0, 0, 9485, 0, 129781, 0, 0, 0, 125002, 92533, 128487, 0, 129285, + 4338, 11238, 0, 66825, 0, 0, 0, 0, 122939, 0, 74128, 0, 0, 73680, 0, 129438, 9553, 1590, 63777, 63776, 128677, 63782, 63781, 63780, 63779, 1583, 101525, 101528, 101527, 101522, 101521, 101524, 101523, 41522, 0, 92168, 983803, 66759, 0, 983580, 0, 0, 0, 0, 11394, 0, 983071, 0, 66823, @@ -26463,14 +26645,14 @@ static const unsigned int code_hash[] = { 121136, 0, 7950, 63772, 63771, 63770, 0, 63767, 63766, 2793, 63764, 0, 128501, 63769, 9530, 0, 92398, 0, 128642, 63763, 63762, 4595, 63760, 792, 92808, 0, 0, 8742, 0, 0, 0, 63744, 0, 0, 120815, 63748, 63747, 63746, - 63745, 5055, 0, 0, 1090, 0, 125268, 11665, 92830, 4558, 0, 72211, 0, 0, - 0, 11513, 983978, 6157, 63775, 63774, 63773, 0, 12170, 9067, 92843, 0, + 63745, 5055, 0, 0, 1090, 0, 125268, 11665, 92830, 4558, 78919, 72211, 0, + 0, 0, 11513, 983978, 6157, 63775, 63774, 63773, 0, 12170, 9067, 92843, 0, 10872, 129643, 43891, 43893, 43892, 129747, 43933, 0, 128231, 0, 0, 0, 0, - 0, 11063, 0, 43888, 0, 0, 128368, 43889, 0, 73807, 983104, 7386, 0, 0, + 0, 11063, 0, 43888, 0, 0, 128368, 43889, 0, 73807, 983105, 7386, 0, 0, 70295, 0, 0, 0, 71201, 128460, 0, 0, 0, 0, 69915, 2918, 66820, 65300, 0, 124898, 64726, 2790, 0, 3793, 42065, 127829, 0, 124901, 0, 0, 0, 0, 0, 92712, 0, 12923, 5270, 2166, 0, 0, 65813, 0, 128499, 0, 75012, 0, 10888, - 0, 93997, 94180, 3330, 129417, 0, 0, 0, 0, 0, 8220, 0, 0, 101581, 101580, + 0, 93997, 94180, 3330, 129417, 0, 0, 0, 0, 0, 8220, 0, 0, 101581, 72457, 1627, 101582, 0, 0, 5371, 101578, 0, 1826, 118794, 0, 0, 70023, 0, 0, 0, 71108, 0, 0, 124907, 0, 92207, 68125, 74898, 71353, 0, 72006, 71098, 70029, 0, 43116, 10190, 70019, 64346, 0, 101585, 66818, 101587, 70031, 0, @@ -26485,37 +26667,37 @@ static const unsigned int code_hash[] = { 5788, 127852, 0, 65491, 1831, 66020, 0, 984012, 92588, 0, 1343, 120784, 0, 0, 12018, 0, 0, 0, 0, 0, 4422, 4708, 3799, 101550, 119357, 0, 101547, 101546, 101549, 101548, 983095, 0, 1364, 0, 8038, 101545, 0, 12868, - 129560, 70425, 55223, 0, 64414, 110689, 0, 0, 0, 0, 0, 0, 118802, 118644, - 42855, 118856, 42866, 0, 0, 0, 0, 66438, 0, 983996, 119356, 92853, - 119354, 0, 123556, 0, 73013, 67685, 128062, 119350, 0, 11864, 10404, - 10340, 119352, 1556, 5274, 0, 127821, 10017, 9733, 0, 69488, 0, 41373, 0, - 0, 0, 0, 0, 349, 4863, 41371, 0, 0, 0, 0, 72295, 4398, 8543, 65618, - 128018, 0, 0, 0, 0, 12441, 0, 119348, 119347, 4318, 10452, 0, 8032, 0, - 119349, 119344, 0, 127844, 121156, 0, 110729, 119345, 8597, 0, 110727, - 9864, 0, 92796, 0, 92799, 0, 0, 0, 7722, 0, 0, 92797, 0, 0, 66590, 0, 0, - 129850, 0, 0, 0, 4965, 0, 917536, 0, 123196, 0, 0, 0, 10436, 119342, - 43147, 119340, 10356, 10420, 982, 2756, 0, 983997, 0, 0, 11162, 119338, - 0, 92914, 0, 65110, 0, 0, 983800, 78543, 0, 118793, 0, 128112, 119179, - 64476, 1694, 8216, 0, 0, 78539, 0, 65620, 0, 78537, 0, 0, 42158, 65621, - 69955, 120324, 120327, 120326, 120321, 120320, 120323, 120322, 12314, - 65616, 55221, 43825, 983553, 119337, 68060, 119335, 0, 71874, 123628, - 128537, 119332, 73089, 0, 41347, 0, 0, 8842, 0, 0, 4379, 127393, 12692, - 0, 0, 66353, 71875, 0, 0, 92907, 0, 0, 71877, 120303, 65619, 9872, 0, 0, - 1846, 120309, 120308, 119256, 71192, 120305, 120304, 120307, 6442, + 129560, 70425, 55223, 0, 64414, 110689, 122978, 0, 0, 0, 0, 0, 118802, + 118644, 42855, 118856, 42866, 73525, 0, 0, 0, 66438, 0, 983996, 119356, + 92853, 119354, 0, 123556, 0, 73013, 67685, 128062, 119350, 0, 11864, + 10404, 10340, 119352, 1556, 5274, 0, 127821, 10017, 9733, 0, 69488, 0, + 41373, 0, 0, 0, 0, 0, 349, 4863, 41371, 0, 0, 0, 0, 72295, 4398, 8543, + 65618, 128018, 129784, 0, 0, 0, 12441, 0, 119348, 119347, 4318, 10452, 0, + 8032, 0, 119349, 119344, 0, 127844, 121156, 0, 110729, 119345, 8597, 0, + 110727, 9864, 0, 92796, 0, 92799, 0, 0, 0, 7722, 0, 0, 92797, 0, 0, + 66590, 0, 0, 129850, 0, 0, 0, 4965, 0, 917536, 0, 123196, 0, 0, 0, 10436, + 119342, 43147, 119340, 10356, 10420, 982, 2756, 0, 983997, 0, 0, 11162, + 119338, 0, 92914, 0, 65110, 0, 0, 983800, 78543, 0, 118793, 0, 128112, + 119179, 64476, 1694, 8216, 0, 0, 78539, 0, 65620, 0, 78537, 0, 0, 42158, + 65621, 69955, 120324, 120327, 120326, 120321, 120320, 120323, 120322, + 12314, 65616, 55221, 43825, 983553, 119337, 68060, 119335, 0, 71874, + 123628, 128537, 119332, 73089, 0, 41347, 0, 0, 8842, 0, 0, 4379, 127393, + 12692, 0, 0, 66353, 71875, 0, 0, 92907, 0, 0, 71877, 120303, 65619, 9872, + 0, 0, 1846, 120309, 120308, 119256, 71192, 120305, 120304, 120307, 6442, 120317, 120316, 5379, 120318, 110717, 120312, 120315, 71876, 0, 65934, 66497, 0, 66986, 0, 0, 0, 0, 0, 0, 0, 0, 72002, 0, 6151, 12110, 0, - 129761, 0, 66959, 0, 0, 0, 0, 68335, 0, 0, 0, 0, 0, 0, 66041, 9676, - 10202, 0, 0, 0, 64575, 126637, 11965, 0, 124936, 0, 0, 0, 0, 0, 9698, + 129761, 0, 66959, 0, 0, 0, 0, 68335, 129655, 0, 0, 0, 0, 0, 66041, 9676, + 10202, 0, 0, 0, 64575, 78929, 11965, 0, 124936, 0, 0, 0, 0, 0, 9698, 66293, 0, 119651, 0, 0, 41921, 0, 0, 0, 119258, 0, 0, 0, 0, 0, 8012, 12355, 12353, 0, 0, 74107, 0, 0, 41925, 0, 41920, 65444, 0, 0, 41923, 12694, 0, 10112, 1294, 0, 120091, 0, 120092, 0, 0, 128474, 121400, 0, 0, 0, 8718, 0, 10284, 10268, 10380, 10316, 92593, 0, 71850, 0, 0, 92889, 0, 0, 0, 0, 9342, 12829, 0, 0, 101239, 127978, 0, 0, 69428, 0, 73767, 72347, 0, 7956, 598, 0, 72329, 93837, 0, 0, 128860, 0, 120041, 0, 0, 101242, 0, - 0, 847, 0, 9529, 0, 0, 0, 101247, 120035, 0, 0, 0, 67411, 0, 0, 0, + 0, 847, 0, 9529, 0, 0, 0, 101247, 120035, 0, 0, 0, 67411, 0, 0, 119497, 120040, 0, 128580, 0, 9624, 0, 0, 0, 65463, 1554, 0, 0, 0, 0, 71879, 0, 0, 0, 121161, 19963, 123566, 0, 72326, 92933, 71887, 10324, 10292, 65546, - 0, 68141, 8372, 0, 0, 83018, 120022, 10175, 10388, 42799, 0, 983180, + 0, 68141, 8372, 0, 0, 83018, 120022, 10175, 10388, 42799, 0, 983181, 10568, 0, 127400, 0, 0, 0, 983762, 0, 4366, 0, 983805, 0, 0, 42608, 0, 9884, 0, 0, 0, 0, 129180, 0, 128964, 0, 0, 1609, 0, 92773, 73448, 0, 11661, 0, 5818, 0, 0, 0, 9540, 0, 2554, 5158, 0, 2213, 0, 0, 78522, @@ -26524,7 +26706,7 @@ static const unsigned int code_hash[] = { 0, 0, 127061, 11005, 0, 66656, 127063, 0, 129936, 0, 127065, 43393, 0, 120643, 0, 0, 0, 0, 120798, 0, 0, 0, 0, 0, 0, 70435, 64356, 0, 0, 0, 383, 7154, 127815, 43495, 128809, 121448, 0, 0, 0, 11286, 0, 0, 0, 0, 0, 0, 0, - 42644, 129824, 129797, 129801, 8292, 0, 4980, 113726, 92674, 70130, 0, 0, + 42644, 73555, 129797, 129801, 8292, 0, 4980, 113726, 92674, 70130, 0, 0, 0, 0, 74912, 0, 10631, 83330, 100488, 68042, 0, 0, 7900, 101252, 0, 78779, 4198, 128555, 0, 0, 0, 123159, 0, 0, 12931, 0, 0, 0, 2088, 0, 72164, 129284, 0, 0, 69265, 0, 0, 0, 69694, 92838, 129794, 8593, 0, 0, 0, @@ -26539,70 +26721,71 @@ static const unsigned int code_hash[] = { 127558, 0, 7539, 0, 0, 0, 0, 0, 0, 0, 92898, 42567, 0, 0, 73886, 0, 129988, 12326, 0, 92848, 0, 0, 11355, 0, 0, 0, 0, 69437, 128222, 129803, 129811, 119537, 72327, 43005, 65342, 118902, 0, 0, 8644, 0, 0, 11186, - 74296, 41909, 0, 128682, 2791, 0, 1891, 0, 0, 41907, 66647, 0, 0, 41906, - 0, 0, 10773, 70206, 0, 0, 0, 6412, 2061, 8520, 13146, 0, 92836, 83275, - 65902, 2882, 0, 126232, 65852, 0, 92795, 0, 123627, 0, 0, 92794, 0, 0, - 128098, 0, 0, 0, 70871, 0, 92792, 0, 120087, 0, 0, 92793, 93971, 0, 3844, - 6842, 0, 0, 6612, 0, 0, 0, 0, 0, 783, 0, 0, 0, 983064, 68032, 119225, 0, - 0, 68378, 4556, 67839, 68480, 78663, 120069, 120074, 67657, 10510, 4382, - 74218, 42194, 0, 92806, 9177, 8902, 93958, 9839, 92804, 120700, 92807, 0, - 63999, 41904, 41917, 9788, 120973, 92805, 1862, 0, 0, 0, 41915, 0, 41919, - 63994, 41914, 7981, 0, 0, 0, 0, 0, 0, 0, 120834, 0, 0, 0, 6784, 78788, 0, - 0, 0, 0, 127534, 127484, 127476, 983874, 0, 983960, 64289, 65289, 0, - 129539, 129575, 64509, 0, 0, 126505, 11051, 0, 66635, 55259, 65885, 0, - 128310, 0, 0, 0, 0, 7500, 4506, 0, 0, 0, 0, 0, 126609, 4040, 128680, - 6167, 0, 42945, 0, 0, 0, 0, 7830, 43036, 0, 0, 63990, 19947, 63988, - 63987, 0, 63993, 10440, 9611, 2244, 71883, 0, 65260, 63986, 11446, 63984, - 92641, 3435, 119652, 0, 119108, 0, 128632, 0, 0, 12748, 0, 0, 92705, 0, - 78790, 0, 0, 63956, 42458, 63954, 63953, 63960, 63959, 63958, 11596, 0, - 11469, 69267, 42306, 2723, 0, 0, 70027, 0, 0, 0, 128093, 2880, 0, 0, 0, - 0, 128506, 3498, 4378, 0, 129825, 0, 65551, 118928, 0, 43387, 0, 64415, - 128898, 0, 0, 0, 0, 8161, 393, 12013, 0, 92216, 126479, 63965, 63964, - 63963, 42345, 0, 2174, 63967, 42498, 0, 2927, 0, 63961, 0, 0, 983946, 0, - 69699, 0, 42340, 0, 0, 0, 10730, 0, 69688, 0, 64187, 118535, 0, 12437, - 9813, 0, 42453, 1604, 9565, 0, 69701, 69235, 42414, 110724, 129196, 0, - 42301, 11372, 0, 917973, 0, 0, 63980, 63979, 63978, 0, 128207, 12017, - 63982, 63981, 73687, 0, 63977, 63976, 72794, 0, 0, 0, 63971, 4347, 4416, - 63968, 11009, 63974, 63973, 402, 69390, 13147, 0, 0, 64646, 13228, 0, 0, - 3515, 74252, 65261, 0, 0, 6259, 0, 0, 0, 0, 0, 0, 74813, 74425, 0, - 126998, 126114, 0, 0, 0, 129933, 983717, 0, 0, 74301, 0, 122633, 0, 0, - 74060, 69508, 0, 66235, 5145, 0, 0, 128394, 0, 73120, 0, 7402, 0, 0, 0, - 7952, 7832, 43382, 66616, 0, 983950, 120852, 0, 127875, 64866, 0, 0, 0, - 78784, 74248, 0, 0, 983196, 0, 0, 0, 78656, 42390, 0, 0, 983940, 0, 0, 0, - 92839, 9508, 0, 9544, 11520, 0, 0, 3377, 0, 129562, 0, 0, 0, 0, 66989, - 66280, 0, 127198, 0, 0, 0, 1955, 119565, 0, 0, 3076, 0, 42168, 73049, - 66304, 0, 0, 8917, 42403, 301, 0, 111175, 0, 0, 0, 0, 0, 0, 67819, 92987, - 0, 0, 0, 983204, 0, 69403, 3182, 0, 0, 0, 0, 0, 42169, 123162, 74244, 0, - 42329, 0, 66326, 6841, 0, 128913, 0, 1219, 3934, 71276, 11483, 74510, - 101122, 121110, 42442, 65470, 69565, 0, 64622, 7759, 42482, 485, 0, 0, - 42290, 0, 0, 42280, 0, 0, 11655, 64379, 127913, 42431, 10126, 42318, 0, - 119631, 74397, 42470, 0, 68315, 0, 110829, 74041, 0, 0, 0, 5411, 0, 0, 0, - 64205, 0, 64206, 42393, 64478, 1310, 125007, 0, 12052, 10643, 55271, - 72727, 0, 121045, 0, 0, 118852, 0, 0, 0, 0, 113826, 0, 0, 64385, 0, 0, 0, - 0, 0, 0, 93848, 92560, 2713, 0, 9650, 0, 0, 120602, 1406, 983650, 78174, - 92659, 0, 68223, 0, 0, 0, 0, 43475, 0, 65287, 1508, 127938, 8779, 10569, - 75034, 0, 0, 0, 0, 0, 0, 0, 70786, 0, 0, 128344, 9185, 0, 42932, 43403, - 0, 0, 0, 0, 0, 0, 0, 0, 12955, 0, 2888, 0, 0, 0, 0, 0, 0, 0, 2878, 0, 0, - 0, 0, 0, 0, 129028, 13203, 129722, 10429, 10365, 0, 0, 127165, 7503, 0, - 113676, 68381, 119658, 0, 8986, 0, 10632, 11934, 11452, 1332, 0, 0, 0, 0, - 73741, 1791, 8850, 9288, 0, 2892, 0, 43394, 555, 0, 0, 0, 0, 64172, - 118899, 0, 0, 0, 0, 8854, 0, 5858, 73101, 10582, 0, 0, 1361, 0, 0, 7905, - 0, 65256, 0, 41210, 0, 0, 71884, 0, 0, 0, 6828, 0, 92302, 0, 1342, 68440, - 0, 64161, 10903, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64381, 0, 0, 0, 42245, - 126467, 41972, 0, 0, 0, 9127, 0, 66619, 126489, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 11620, 0, 1149, 68316, 0, 0, 0, 0, 0, 92492, 0, 118784, 0, 0, 0, - 12838, 0, 118819, 0, 0, 0, 0, 41087, 0, 0, 0, 0, 12036, 0, 0, 0, 0, 0, - 64428, 12227, 0, 0, 0, 0, 125248, 120964, 0, 0, 0, 0, 0, 69566, 0, 0, 0, - 0, 0, 1743, 0, 0, 0, 65186, 122626, 0, 0, 0, 0, 64439, 0, 68062, 0, - 111259, 111258, 43866, 0, 111263, 3395, 9362, 111260, 0, 111257, 111256, - 111255, 0, 0, 41091, 3426, 1344, 111249, 111248, 126215, 4735, 11111, - 6119, 111251, 42699, 0, 0, 74818, 1423, 0, 0, 0, 0, 12039, 10559, 0, 0, - 0, 9472, 67734, 11929, 0, 0, 0, 0, 128826, 0, 11579, 0, 0, 128364, 0, - 92185, 0, 0, 1004, 92584, 0, 0, 0, 0, 0, 2556, 0, 0, 72790, 0, 0, 9686, - 0, 0, 0, 70109, 111102, 0, 10718, 13154, 111100, 9139, 0, 0, 0, 0, 0, 0, - 0, 0, 92831, 92810, 41708, 12860, 41703, 0, 42090, 5403, 10352, 73917, + 74296, 41909, 0, 128682, 2791, 127472, 1891, 0, 0, 41907, 66647, 0, 0, + 41906, 0, 129672, 10773, 70206, 0, 0, 0, 6412, 2061, 8520, 13146, 0, + 92836, 83275, 65902, 2882, 0, 126232, 65852, 0, 92795, 0, 123627, 0, 0, + 92794, 0, 0, 128098, 0, 0, 0, 70871, 0, 92792, 0, 120087, 0, 0, 92793, + 93971, 0, 3844, 6842, 0, 0, 6612, 0, 0, 0, 0, 0, 783, 0, 0, 0, 983064, + 68032, 119225, 0, 0, 68378, 4556, 67839, 68480, 78663, 120069, 120074, + 67657, 10510, 4382, 74218, 42194, 0, 92806, 9177, 8902, 93958, 9839, + 92804, 120700, 92807, 0, 63999, 41904, 41917, 9788, 120973, 92805, 1862, + 0, 0, 0, 41915, 0, 41919, 63994, 41914, 7981, 0, 0, 0, 0, 0, 0, 0, + 120834, 0, 0, 0, 6784, 78788, 0, 0, 0, 0, 127534, 127484, 127476, 983874, + 0, 983960, 64289, 65289, 0, 129539, 129575, 64509, 0, 0, 126505, 11051, + 0, 66635, 55259, 65885, 0, 128310, 0, 0, 0, 0, 7500, 4506, 0, 0, 0, 0, 0, + 126609, 4040, 128680, 6167, 0, 42945, 0, 0, 0, 0, 7830, 43036, 0, 0, + 63990, 19947, 63988, 63987, 0, 63993, 10440, 9611, 2244, 71883, 0, 65260, + 63986, 11446, 63984, 92641, 3435, 119652, 0, 119108, 0, 128632, 0, 0, + 12748, 0, 0, 92705, 0, 78790, 0, 0, 63956, 42458, 63954, 63953, 63960, + 63959, 63958, 11596, 0, 11469, 69267, 42306, 2723, 0, 0, 70027, 0, 0, 0, + 128093, 2880, 0, 0, 0, 0, 128506, 3498, 4378, 0, 129825, 0, 65551, + 118928, 0, 43387, 0, 64415, 128898, 0, 0, 0, 0, 8161, 393, 12013, 0, + 92216, 126479, 63965, 63964, 63963, 42345, 0, 2174, 63967, 42498, 0, + 2927, 0, 63961, 0, 0, 983946, 0, 69699, 0, 42340, 0, 0, 0, 10730, 0, + 69688, 0, 64187, 118535, 0, 12437, 9813, 0, 42453, 1604, 9565, 0, 69701, + 69235, 42414, 110724, 129196, 0, 42301, 11372, 0, 917973, 0, 0, 63980, + 63979, 63978, 0, 128207, 12017, 63982, 63981, 73687, 0, 63977, 63976, + 72794, 0, 0, 0, 63971, 4347, 4416, 63968, 11009, 63974, 63973, 402, + 69390, 13147, 0, 0, 64646, 13228, 0, 0, 3515, 74252, 65261, 0, 0, 6259, + 0, 0, 0, 0, 0, 0, 74813, 74425, 0, 126998, 126114, 0, 0, 0, 129933, + 983717, 0, 0, 74301, 0, 122633, 0, 0, 74060, 69508, 0, 66235, 5145, 0, 0, + 128394, 0, 73120, 0, 7402, 0, 0, 0, 7952, 7832, 43382, 66616, 0, 983950, + 120852, 0, 127875, 64866, 0, 0, 0, 78784, 74248, 0, 0, 983197, 0, 0, 0, + 78656, 42390, 0, 0, 983940, 0, 0, 0, 92839, 9508, 0, 9544, 11520, 0, + 110898, 3377, 0, 129562, 0, 0, 0, 0, 66989, 66280, 0, 127198, 0, 0, 0, + 1955, 119565, 0, 0, 3076, 0, 42168, 73049, 66304, 0, 0, 8917, 42403, 301, + 0, 111175, 0, 0, 0, 0, 0, 0, 67819, 92987, 0, 0, 0, 983206, 0, 69403, + 3182, 0, 0, 0, 0, 0, 42169, 123162, 74244, 0, 42329, 0, 66326, 6841, 0, + 128913, 0, 1219, 3934, 71276, 11483, 74510, 101122, 121110, 42442, 65470, + 69565, 0, 64622, 7759, 42482, 485, 0, 0, 42290, 0, 0, 42280, 0, 0, 11655, + 64379, 127913, 42431, 10126, 42318, 0, 119631, 74397, 42470, 0, 68315, 0, + 110829, 74041, 0, 0, 0, 5411, 0, 0, 0, 64205, 0, 64206, 42393, 64478, + 1310, 125007, 0, 12052, 10643, 55271, 72727, 0, 121045, 0, 0, 118852, 0, + 0, 0, 0, 113826, 0, 0, 64385, 0, 0, 0, 0, 0, 0, 93848, 92560, 2713, 0, + 9650, 0, 0, 120602, 1406, 983650, 78174, 92659, 0, 68223, 0, 0, 0, 0, + 43475, 0, 65287, 1508, 127938, 8779, 10569, 75034, 0, 0, 0, 0, 0, 0, 0, + 70786, 0, 0, 128344, 9185, 0, 42932, 43403, 0, 0, 0, 0, 0, 0, 0, 0, + 12955, 0, 2888, 0, 0, 0, 0, 0, 0, 0, 2878, 0, 0, 0, 0, 0, 0, 129028, + 13203, 129722, 10429, 10365, 0, 0, 127165, 7503, 0, 113676, 68381, + 119658, 0, 8986, 0, 10632, 11934, 11452, 1332, 0, 0, 0, 0, 73741, 1791, + 8850, 9288, 0, 2892, 0, 43394, 555, 0, 0, 0, 0, 64172, 118899, 0, 0, 0, + 0, 8854, 0, 5858, 73101, 10582, 0, 0, 1361, 0, 0, 7905, 0, 65256, 0, + 41210, 0, 0, 71884, 0, 0, 0, 6828, 0, 92302, 0, 1342, 68440, 0, 64161, + 10903, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64381, 0, 0, 0, 42245, 126467, + 41972, 0, 0, 0, 9127, 0, 66619, 126489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11620, + 0, 1149, 68316, 0, 0, 0, 0, 0, 92492, 0, 118784, 0, 0, 0, 12838, 0, + 118819, 0, 0, 0, 0, 41087, 0, 0, 0, 0, 12036, 0, 124143, 0, 0, 0, 64428, + 12227, 0, 0, 0, 0, 125248, 120964, 0, 0, 0, 0, 0, 69566, 0, 0, 0, 0, 0, + 1743, 0, 0, 0, 65186, 122626, 0, 0, 0, 0, 64439, 0, 68062, 0, 111259, + 111258, 43866, 0, 111263, 3395, 9362, 111260, 0, 111257, 111256, 111255, + 0, 0, 41091, 3426, 1344, 111249, 111248, 126215, 4735, 11111, 6119, + 111251, 42699, 0, 0, 74818, 1423, 0, 0, 0, 0, 12039, 10559, 0, 0, 0, + 9472, 67734, 11929, 0, 0, 0, 0, 128826, 0, 11579, 0, 0, 128364, 0, 92185, + 0, 0, 1004, 92584, 0, 0, 0, 129755, 0, 2556, 0, 0, 72790, 0, 0, 9686, 0, + 0, 0, 70109, 111102, 0, 10718, 13154, 111100, 9139, 0, 0, 0, 0, 0, 0, 0, + 0, 92831, 92810, 41708, 12860, 41703, 0, 42090, 5403, 10352, 73917, 129144, 111096, 111088, 5140, 3753, 118785, 41704, 0, 43078, 127789, - 2207, 129360, 0, 983205, 92362, 0, 0, 2410, 92525, 0, 0, 0, 0, 0, 0, 0, + 2207, 129360, 0, 983207, 92362, 0, 0, 2410, 92525, 0, 0, 0, 0, 0, 0, 0, 0, 119253, 0, 126601, 0, 2066, 74199, 0, 43463, 10659, 119623, 68863, 0, 1336, 0, 0, 69463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126639, 0, 272, 0, 0, 0, 0, 983965, 128133, 0, 0, 124940, 0, 1190, 42146, 1335, 42177, 43867, 0, 0, @@ -26612,9 +26795,9 @@ static const unsigned int code_hash[] = { 111193, 111192, 43097, 11688, 0, 78797, 194, 111186, 111185, 111184, 0, 0, 0, 11226, 4519, 70337, 10898, 43072, 70205, 0, 0, 0, 73094, 10695, 0, 7540, 0, 110984, 41859, 6067, 92790, 110982, 0, 110981, 13311, 92788, - 41857, 92791, 8359, 121224, 12689, 0, 983131, 64577, 92789, 111203, + 41857, 92791, 8359, 121224, 12689, 0, 983132, 64577, 92789, 111203, 68183, 111209, 111208, 6064, 110988, 0, 110979, 74142, 0, 111201, 111200, - 6051, 123613, 0, 0, 983371, 0, 983651, 0, 0, 0, 110864, 10537, 110862, + 6051, 123613, 0, 0, 983374, 0, 983651, 0, 0, 0, 110864, 10537, 110862, 1276, 0, 6549, 6052, 0, 0, 0, 0, 118687, 0, 0, 0, 0, 1960, 0, 71232, 66297, 0, 129313, 0, 0, 1345, 111213, 111212, 111211, 8956, 43083, 0, 111215, 64682, 0, 6430, 69563, 111210, 119814, 0, 0, 0, 119817, 0, 492, @@ -26636,7 +26819,7 @@ static const unsigned int code_hash[] = { 121097, 2847, 111028, 10330, 0, 1251, 7777, 41852, 125059, 111327, 111032, 111325, 12646, 0, 10259, 0, 65821, 75046, 6018, 0, 111324, 111323, 111322, 68372, 111319, 111318, 71893, 2558, 0, 64584, 111321, - 111320, 0, 0, 0, 0, 111309, 111308, 111307, 69500, 73987, 74599, 71895, + 111320, 0, 0, 0, 0, 78911, 111308, 111307, 69500, 73987, 74599, 71895, 93012, 0, 128715, 0, 12867, 111296, 0, 0, 11044, 111300, 111299, 8904, 11824, 65857, 0, 128674, 129027, 4387, 0, 0, 124920, 0, 0, 0, 0, 11842, 0, 0, 0, 5136, 1968, 983041, 126627, 1337, 0, 0, 0, 0, 66506, 0, 0, 0, 0, @@ -26644,7 +26827,7 @@ static const unsigned int code_hash[] = { 71894, 4276, 111314, 3619, 41638, 69691, 0, 42322, 8853, 111043, 0, 490, 0, 13231, 68384, 72310, 65350, 0, 0, 0, 68245, 42435, 6154, 0, 65354, 0, 0, 42397, 334, 72732, 42416, 65359, 65273, 74634, 128227, 4442, 10364, 0, - 778, 41626, 42455, 7989, 0, 3227, 69907, 111053, 0, 2915, 11502, 983212, + 778, 41626, 42455, 7989, 0, 3227, 69907, 111053, 0, 2915, 11502, 983214, 41702, 10309, 0, 0, 0, 0, 0, 0, 0, 127268, 127258, 127267, 65215, 64410, 127260, 71175, 0, 0, 0, 0, 0, 0, 41700, 110651, 69266, 126488, 0, 0, 42495, 0, 0, 0, 10460, 43364, 0, 1356, 3728, 42713, 0, 0, 42342, 10914, @@ -26654,75 +26837,76 @@ static const unsigned int code_hash[] = { 69888, 65508, 0, 0, 121451, 0, 0, 0, 129780, 69272, 4732, 128283, 0, 0, 0, 121113, 2236, 126551, 0, 6048, 0, 0, 73965, 0, 0, 0, 0, 10151, 9681, 4475, 0, 41142, 2100, 0, 0, 6035, 0, 123599, 10296, 0, 0, 0, 0, 0, 0, 0, - 983309, 68488, 10392, 10328, 0, 43462, 0, 0, 0, 8979, 0, 0, 983306, 0, 0, + 983312, 68488, 10392, 10328, 0, 43462, 0, 0, 0, 8979, 0, 0, 983309, 0, 0, 0, 10977, 0, 10344, 0, 65299, 10408, 0, 0, 121187, 66505, 0, 0, 0, 0, 0, - 122648, 43074, 73799, 0, 0, 0, 0, 3446, 0, 129891, 128692, 0, 0, 119582, - 4474, 0, 43093, 6282, 0, 0, 127372, 0, 0, 0, 129881, 0, 0, 0, 0, 66910, - 67811, 92277, 0, 64948, 0, 74347, 0, 0, 0, 983981, 8194, 0, 121165, - 11010, 0, 8893, 0, 983988, 0, 0, 0, 983319, 7925, 0, 0, 113825, 0, 1352, - 11069, 7707, 0, 126486, 0, 0, 0, 0, 65605, 6040, 0, 10071, 0, 128156, - 43750, 0, 8899, 69873, 0, 0, 983313, 128208, 7820, 69615, 0, 0, 7746, - 1492, 0, 0, 0, 66866, 0, 11788, 65913, 0, 0, 43095, 0, 0, 92265, 2999, 0, - 120720, 0, 371, 120759, 6023, 0, 0, 11708, 0, 0, 6323, 0, 0, 0, 8938, - 6043, 65866, 0, 0, 0, 72419, 0, 129480, 2589, 74332, 1689, 7802, 0, 0, 0, - 0, 66704, 0, 129992, 0, 0, 128127, 6049, 0, 4027, 0, 0, 111334, 111333, - 1503, 111331, 0, 111337, 11951, 111335, 2387, 0, 0, 8289, 111330, 7326, - 66514, 65514, 0, 64865, 0, 9668, 0, 0, 0, 0, 93060, 6036, 92768, 4026, - 74089, 127091, 0, 0, 75044, 110821, 0, 110819, 0, 0, 0, 0, 6021, 0, - 128288, 0, 43155, 0, 110822, 0, 111343, 42691, 111341, 111340, 2246, 166, - 0, 0, 0, 10623, 408, 0, 111339, 13298, 0, 7426, 43694, 0, 0, 8811, 0, 0, - 129753, 0, 0, 74134, 983054, 0, 127811, 0, 0, 0, 6645, 646, 128813, 0, - 42129, 0, 120880, 0, 8697, 0, 120936, 0, 0, 0, 0, 5809, 1950, 0, 92432, - 68339, 0, 42136, 0, 0, 0, 0, 0, 0, 111354, 983984, 0, 0, 111349, 111348, - 43330, 111346, 111353, 111352, 41567, 111350, 0, 0, 0, 0, 111345, 111344, - 8285, 0, 4509, 0, 128361, 0, 77774, 129851, 0, 0, 41727, 0, 0, 0, 0, 0, - 71188, 0, 74512, 7027, 3886, 0, 74023, 92888, 0, 0, 126092, 94058, - 119855, 0, 121455, 11707, 119852, 0, 7939, 10342, 92460, 72747, 121408, - 917569, 0, 71198, 94077, 119847, 0, 0, 7201, 0, 123554, 120866, 983987, - 1540, 0, 0, 124923, 0, 119856, 41718, 71177, 0, 0, 128001, 118699, 0, - 119040, 0, 9619, 120840, 0, 0, 0, 0, 3560, 0, 6070, 129000, 0, 2922, - 6082, 70147, 65009, 983973, 0, 0, 0, 0, 0, 0, 3607, 65863, 0, 92487, - 42153, 121042, 0, 983862, 2032, 0, 0, 0, 0, 129985, 0, 43085, 6057, 0, 0, - 0, 0, 0, 0, 0, 0, 638, 6083, 126976, 0, 0, 2305, 0, 0, 118658, 6056, - 10878, 0, 0, 6085, 119351, 0, 3915, 0, 0, 0, 0, 0, 0, 4028, 1787, 0, - 43096, 0, 0, 1768, 0, 0, 0, 128125, 0, 0, 583, 129137, 0, 0, 66004, 0, 0, - 0, 92859, 0, 55267, 120810, 128995, 43075, 65049, 0, 74531, 0, 93009, - 70694, 0, 0, 129375, 9869, 128815, 1771, 0, 0, 0, 0, 0, 0, 119115, - 113708, 0, 0, 74101, 0, 0, 0, 0, 83367, 0, 0, 0, 12539, 123631, 0, 0, - 129846, 73862, 69842, 9897, 0, 100561, 0, 0, 0, 0, 0, 8931, 0, 1415, - 8866, 74552, 0, 128312, 0, 983566, 43106, 127275, 71089, 1580, 92278, - 68424, 0, 0, 7658, 3440, 78215, 1562, 0, 0, 129031, 0, 0, 0, 0, 0, 0, - 6028, 68900, 42892, 0, 111016, 0, 0, 0, 0, 0, 128269, 0, 66776, 42946, - 127276, 92849, 0, 0, 120510, 11599, 0, 11602, 11591, 11574, 11581, 11597, - 11598, 6253, 11571, 11584, 70273, 11569, 0, 8906, 0, 5755, 2636, 0, - 10815, 11619, 129094, 0, 7815, 11616, 11617, 70064, 11618, 11604, 7869, - 11612, 0, 42152, 0, 0, 0, 92586, 126247, 0, 92173, 0, 0, 6616, 0, 0, - 120875, 391, 0, 0, 0, 42296, 11588, 0, 0, 0, 68397, 0, 0, 42335, 983188, - 0, 0, 7538, 94040, 0, 42491, 0, 0, 128088, 4576, 0, 0, 43809, 4277, 0, - 3563, 0, 42338, 368, 0, 0, 42412, 0, 78209, 119144, 0, 43814, 983616, - 1849, 0, 9921, 42451, 4253, 0, 0, 118688, 42404, 64657, 73919, 3618, - 78338, 0, 0, 0, 0, 0, 929, 6827, 42035, 0, 0, 0, 67847, 0, 0, 0, 0, 0, 0, - 0, 0, 4578, 64513, 0, 0, 0, 71049, 68090, 127086, 43305, 0, 73462, - 118530, 0, 42048, 10166, 0, 127095, 113810, 983127, 0, 983991, 0, 0, - 42483, 0, 0, 0, 42291, 0, 71047, 0, 6641, 525, 66404, 0, 8763, 125091, 0, - 0, 0, 0, 0, 42504, 42581, 74280, 6915, 42310, 0, 8559, 0, 983994, 125100, - 0, 0, 11666, 8679, 0, 1576, 42423, 0, 0, 73840, 983092, 11374, 0, 10889, - 129076, 0, 42462, 0, 77982, 0, 2718, 42424, 0, 0, 127166, 0, 1179, 0, 0, - 0, 363, 11015, 72229, 0, 43857, 0, 66692, 0, 0, 0, 11041, 72018, 0, 0, 0, - 0, 125184, 0, 92520, 0, 9492, 66709, 9212, 12833, 0, 0, 1297, 0, 0, 0, 0, - 0, 0, 12924, 0, 0, 10090, 125249, 0, 42505, 0, 42507, 0, 42311, 92940, - 120919, 68401, 10759, 0, 0, 120924, 42351, 42919, 9398, 66292, 0, 9422, - 0, 0, 0, 0, 0, 129440, 92575, 1603, 0, 0, 0, 0, 0, 69703, 11250, 0, 0, - 10546, 0, 0, 11600, 0, 2797, 73821, 42427, 306, 714, 3058, 120154, 0, 0, - 0, 42395, 0, 11607, 0, 11198, 127512, 0, 72232, 129067, 0, 42433, 0, - 7603, 74063, 0, 42141, 0, 0, 0, 129085, 8244, 362, 125069, 0, 8037, 0, 0, - 0, 69510, 41606, 66696, 77912, 0, 2093, 0, 120676, 0, 41604, 0, 0, 0, 0, - 10523, 1446, 42320, 0, 0, 64773, 42472, 0, 0, 1722, 5581, 0, 64496, 0, 0, - 64914, 0, 42620, 128603, 124988, 0, 0, 10549, 130035, 71190, 0, 0, 0, 0, - 0, 71712, 0, 0, 0, 0, 0, 0, 0, 7684, 66338, 0, 1174, 0, 0, 983621, 0, 0, - 0, 42277, 0, 42456, 65667, 0, 0, 0, 0, 42417, 0, 0, 120812, 42304, 0, 0, - 0, 74443, 127894, 0, 8313, 0, 0, 1316, 66690, 0, 0, 0, 0, 0, 0, 66844, - 983715, 0, 0, 0, 65200, 3383, 0, 0, 70063, 0, 0, 0, 42420, 119185, 0, 0, + 122648, 43074, 73799, 0, 0, 122944, 0, 3446, 0, 129891, 128692, 0, 0, + 119582, 4474, 0, 43093, 6282, 0, 0, 127372, 0, 0, 0, 129881, 0, 0, 0, 0, + 66910, 67811, 92277, 0, 64948, 0, 74347, 0, 0, 0, 983981, 8194, 0, + 121165, 11010, 0, 8893, 0, 983988, 0, 0, 0, 983322, 7925, 0, 0, 113825, + 0, 1352, 11069, 7707, 0, 126486, 0, 0, 0, 0, 65605, 6040, 0, 10071, 0, + 128156, 43750, 0, 8899, 69873, 0, 0, 983316, 128208, 7820, 69615, 0, 0, + 7746, 1492, 0, 0, 0, 66866, 0, 11788, 65913, 0, 0, 43095, 0, 0, 92265, + 2999, 0, 120720, 0, 371, 120759, 6023, 0, 0, 11708, 0, 0, 6323, 0, 0, 0, + 8938, 6043, 65866, 0, 78910, 0, 72419, 0, 129480, 2589, 74332, 1689, + 7802, 0, 0, 0, 0, 66704, 0, 129992, 0, 0, 128127, 6049, 0, 4027, 0, 0, + 111334, 111333, 1503, 111331, 0, 111337, 11951, 111335, 2387, 0, 0, 8289, + 111330, 7326, 66514, 65514, 0, 64865, 0, 9668, 0, 0, 0, 0, 93060, 6036, + 92768, 4026, 74089, 127091, 0, 0, 75044, 110821, 0, 110819, 0, 0, 0, 0, + 6021, 0, 128288, 0, 43155, 0, 110822, 124152, 111343, 42691, 111341, + 111340, 2246, 166, 0, 0, 0, 10623, 408, 0, 111339, 13298, 0, 7426, 43694, + 0, 0, 8811, 0, 0, 129753, 0, 0, 74134, 983054, 0, 127811, 0, 0, 0, 6645, + 646, 128813, 0, 42129, 0, 120880, 0, 8697, 0, 120936, 122953, 0, 0, 0, + 5809, 1950, 0, 92432, 68339, 0, 42136, 0, 0, 0, 0, 0, 0, 111354, 983984, + 0, 0, 111349, 111348, 43330, 111346, 111353, 111352, 41567, 111350, 0, 0, + 0, 0, 111345, 111344, 8285, 0, 4509, 0, 128361, 0, 77774, 129851, 0, 0, + 41727, 0, 0, 0, 0, 0, 71188, 0, 74512, 7027, 3886, 0, 74023, 92888, 0, 0, + 126092, 94058, 119855, 0, 121455, 11707, 119852, 0, 7939, 10342, 92460, + 72747, 121408, 917569, 0, 71198, 94077, 119847, 0, 0, 7201, 0, 123554, + 120866, 983987, 1540, 0, 0, 124923, 0, 119856, 41718, 71177, 0, 0, + 128001, 118699, 0, 119040, 0, 9619, 120840, 0, 0, 0, 0, 3560, 0, 6070, + 129000, 0, 2922, 6082, 70147, 65009, 983973, 0, 0, 0, 0, 0, 0, 3607, + 65863, 0, 92487, 42153, 121042, 0, 983862, 2032, 0, 0, 0, 0, 129985, 0, + 43085, 6057, 0, 0, 0, 0, 0, 0, 0, 0, 638, 6083, 126976, 0, 0, 2305, 0, 0, + 118658, 6056, 10878, 0, 0, 6085, 119351, 0, 3915, 0, 0, 0, 0, 0, 0, 4028, + 1787, 0, 43096, 0, 0, 1768, 0, 0, 0, 128125, 0, 0, 583, 129137, 0, 0, + 66004, 0, 0, 0, 92859, 0, 55267, 120810, 128995, 43075, 65049, 0, 74531, + 0, 93009, 70694, 0, 0, 129375, 9869, 128815, 1771, 0, 0, 0, 0, 0, 0, + 119115, 113708, 0, 0, 74101, 0, 0, 0, 0, 83367, 0, 0, 0, 12539, 123631, + 0, 0, 129846, 73862, 69842, 9897, 0, 100561, 0, 124142, 0, 0, 0, 8931, 0, + 1415, 8866, 74552, 0, 128312, 0, 983566, 43106, 127275, 71089, 1580, + 92278, 68424, 0, 0, 7658, 3440, 78215, 1562, 0, 0, 129031, 0, 0, 0, 0, 0, + 0, 6028, 68900, 42892, 0, 111016, 0, 0, 0, 0, 0, 128269, 0, 66776, 42946, + 127276, 92849, 0, 72448, 120510, 11599, 0, 11602, 11591, 11574, 11581, + 11597, 11598, 6253, 11571, 11584, 70273, 11569, 122937, 8906, 0, 5755, + 2636, 0, 10815, 11619, 129094, 0, 7815, 11616, 11617, 70064, 11618, + 11604, 7869, 11612, 0, 42152, 0, 122941, 0, 92586, 126247, 0, 92173, 0, + 0, 6616, 0, 0, 120875, 391, 0, 0, 0, 42296, 11588, 0, 0, 0, 68397, 0, 0, + 42335, 983189, 0, 0, 7538, 94040, 0, 42491, 0, 0, 128088, 4576, 0, 0, + 43809, 4277, 0, 3563, 0, 42338, 368, 0, 0, 42412, 0, 78209, 119144, 0, + 43814, 983616, 1849, 0, 9921, 42451, 4253, 0, 0, 118688, 42404, 64657, + 73919, 3618, 78338, 0, 0, 0, 0, 0, 929, 6827, 42035, 0, 0, 0, 67847, 0, + 0, 0, 0, 0, 0, 0, 0, 4578, 64513, 0, 0, 0, 71049, 68090, 127086, 43305, + 0, 73462, 118530, 0, 42048, 10166, 0, 127095, 113810, 983128, 0, 983991, + 0, 0, 42483, 0, 0, 0, 42291, 0, 71047, 0, 6641, 525, 66404, 0, 8763, + 125091, 0, 0, 0, 0, 0, 42504, 42581, 74280, 6915, 42310, 0, 8559, 0, + 983994, 125100, 0, 0, 11666, 8679, 0, 1576, 42423, 0, 0, 73840, 983092, + 11374, 0, 10889, 129076, 0, 42462, 0, 77982, 0, 2718, 42424, 0, 0, + 127166, 0, 1179, 0, 0, 0, 363, 11015, 72229, 0, 43857, 0, 66692, 0, 0, 0, + 11041, 72018, 0, 0, 0, 0, 125184, 0, 92520, 0, 9492, 66709, 9212, 12833, + 0, 0, 1297, 122932, 0, 0, 0, 0, 0, 12924, 0, 0, 10090, 125249, 0, 42505, + 0, 42507, 0, 42311, 92940, 120919, 68401, 10759, 0, 0, 120924, 42351, + 42919, 9398, 66292, 0, 9422, 122942, 122943, 0, 0, 0, 129440, 92575, + 1603, 0, 0, 0, 0, 0, 69703, 11250, 0, 0, 10546, 0, 0, 11600, 0, 2797, + 73821, 42427, 306, 714, 3058, 120154, 0, 0, 0, 42395, 0, 11607, 0, 11198, + 127512, 0, 72232, 129067, 0, 42433, 0, 7603, 74063, 0, 42141, 0, 0, 0, + 129085, 8244, 362, 125069, 0, 8037, 0, 0, 0, 69510, 41606, 66696, 77912, + 0, 2093, 0, 120676, 122929, 41604, 0, 0, 0, 0, 10523, 1446, 42320, 0, + 120247, 64773, 42472, 0, 0, 1722, 5581, 0, 64496, 0, 0, 64914, 0, 42620, + 128603, 124988, 0, 0, 10549, 130035, 71190, 0, 0, 0, 0, 0, 71712, 0, 0, + 0, 0, 0, 0, 0, 7684, 66338, 0, 1174, 0, 0, 983621, 0, 0, 0, 42277, 0, + 42456, 65667, 0, 0, 0, 0, 42417, 0, 0, 120812, 42304, 0, 0, 0, 74443, + 127894, 0, 8313, 0, 0, 1316, 66690, 0, 0, 0, 0, 0, 0, 66844, 983715, 0, + 0, 0, 65200, 3383, 0, 0, 70063, 122947, 0, 0, 42420, 119185, 0, 0, 983917, 0, 121079, 72369, 0, 42343, 124980, 42706, 1751, 42496, 65742, 13166, 0, 0, 0, 0, 0, 42683, 12697, 0, 0, 0, 125047, 0, 42346, 0, 0, 3757, 0, 0, 121075, 65869, 0, 9247, 74976, 3193, 0, 0, 42459, 7596, 7921, @@ -26747,17 +26931,17 @@ static const unsigned int code_hash[] = { 10502, 74457, 0, 11221, 41554, 0, 0, 0, 41557, 11209, 0, 11070, 119221, 0, 0, 73858, 41555, 9514, 0, 66771, 64641, 92447, 0, 7520, 73888, 77955, 0, 0, 0, 0, 0, 64527, 0, 118707, 12723, 0, 68776, 0, 0, 0, 78835, 4055, - 78826, 77960, 65212, 0, 127353, 12319, 0, 0, 983216, 7964, 65427, 0, + 78826, 77960, 65212, 0, 127353, 12319, 0, 0, 983218, 7964, 65427, 0, 65424, 72217, 120966, 0, 65425, 74890, 128251, 0, 0, 0, 3448, 10827, 0, 9866, 74527, 0, 0, 8625, 69783, 92304, 10477, 0, 0, 0, 65423, 0, 0, 0, 0, 6152, 0, 0, 6629, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11046, 11490, 0, 4485, 71126, 0, 0, 0, 0, 0, 5869, 118533, 119633, 0, 7040, 3588, 0, 12825, 0, - 0, 128569, 0, 0, 0, 0, 0, 0, 0, 0, 128449, 64499, 65245, 127367, 1171, - 127368, 69717, 127365, 1805, 8772, 0, 127363, 9930, 65247, 0, 0, 2338, - 127362, 92695, 0, 0, 0, 69219, 0, 120104, 0, 120103, 72221, 120102, + 0, 128569, 0, 0, 0, 0, 0, 126637, 0, 0, 128449, 64499, 65245, 127367, + 1171, 127368, 69717, 127365, 1805, 8772, 0, 127363, 9930, 65247, 0, 0, + 2338, 127362, 92695, 0, 0, 0, 69219, 0, 120104, 0, 120103, 72221, 120102, 129924, 118814, 8734, 4212, 0, 0, 66701, 0, 65862, 0, 120095, 42903, 0, 0, 0, 126117, 426, 0, 120098, 8251, 0, 65436, 0, 2120, 43302, 1224, 0, - 65576, 0, 66876, 1764, 6074, 0, 12858, 0, 0, 65439, 6378, 74566, 0, + 65576, 0, 66876, 1764, 6074, 0, 12858, 0, 0, 65439, 6378, 74566, 128885, 41960, 0, 41644, 0, 2129, 0, 9222, 0, 0, 4259, 9092, 0, 41961, 0, 0, 66357, 42331, 64935, 0, 0, 1293, 0, 2132, 0, 983569, 0, 2454, 0, 3613, 128837, 71117, 0, 0, 69681, 10978, 10840, 0, 10668, 72826, 127197, 9118, @@ -26771,128 +26955,129 @@ static const unsigned int code_hash[] = { 2430, 41678, 71492, 0, 43785, 113716, 0, 121263, 0, 0, 1921, 0, 19927, 70390, 65406, 0, 43786, 4284, 128346, 72210, 43789, 12841, 9229, 0, 42285, 0, 0, 0, 0, 3521, 0, 118690, 8325, 0, 65403, 0, 1854, 0, 0, 0, 0, - 0, 0, 0, 0, 4344, 0, 65433, 6076, 0, 0, 74764, 12074, 0, 0, 0, 0, 12934, - 119555, 65432, 128877, 0, 6071, 65434, 0, 65435, 4053, 128623, 0, 0, 0, - 917934, 69823, 127463, 0, 121403, 127473, 8421, 127472, 0, 43705, 502, 0, - 65431, 0, 0, 0, 1303, 316, 7364, 0, 2136, 0, 120796, 64365, 43480, 92639, - 4860, 0, 127877, 0, 129728, 9583, 0, 5546, 0, 118565, 0, 0, 0, 5544, - 127475, 0, 70352, 5543, 128917, 72821, 12137, 5548, 0, 0, 10007, 0, - 127523, 6077, 0, 65452, 0, 119341, 11214, 65952, 0, 72226, 0, 0, 1319, + 0, 0, 0, 0, 4344, 0, 65433, 6076, 0, 0, 74764, 12074, 0, 0, 129148, 0, + 12934, 119555, 65432, 128877, 0, 6071, 65434, 0, 65435, 4053, 128623, 0, + 0, 0, 917934, 69823, 127463, 0, 121403, 127473, 8421, 73836, 0, 43705, + 502, 0, 65431, 0, 0, 0, 1303, 316, 7364, 0, 2136, 0, 120796, 64365, + 43480, 92639, 4860, 0, 127877, 0, 129728, 9583, 0, 5546, 0, 118565, 0, 0, + 0, 5544, 127475, 0, 70352, 5543, 128917, 72821, 12137, 5548, 0, 0, 10007, + 0, 127523, 6077, 0, 65452, 0, 119341, 11214, 65952, 0, 72226, 0, 0, 1319, 74210, 65410, 67399, 92606, 0, 0, 118660, 0, 66716, 83513, 4691, 128619, 9345, 621, 92872, 0, 122889, 65411, 0, 74575, 121246, 65408, 73899, 0, 9474, 2812, 119118, 65412, 3786, 65409, 8894, 83246, 119611, 7923, 3716, - 92798, 0, 0, 0, 7012, 0, 128439, 9566, 0, 94176, 0, 65012, 126242, 545, - 9575, 0, 10050, 12718, 0, 8859, 6820, 124915, 129941, 120740, 0, 0, 9119, - 2787, 0, 984000, 8507, 2012, 7985, 0, 0, 0, 0, 194634, 0, 410, 0, 0, - 120789, 120609, 0, 120378, 120379, 0, 0, 120374, 72742, 120376, 120377, - 120370, 120371, 120372, 120373, 3860, 120367, 72205, 74031, 111131, - 73685, 11748, 120365, 7941, 111134, 8749, 111132, 12698, 111129, 361, - 110793, 845, 67509, 0, 0, 4562, 72241, 2926, 0, 4569, 0, 110797, 43487, - 0, 0, 0, 74287, 122885, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6291, 0, 0, 0, 9734, - 0, 0, 0, 0, 127754, 7359, 83523, 43863, 0, 111150, 8769, 111148, 111147, - 111145, 4859, 111143, 111142, 0, 0, 0, 0, 12172, 111136, 0, 127899, - 111141, 64764, 4210, 111138, 0, 804, 0, 83520, 0, 70344, 0, 0, 67202, - 10091, 67200, 119257, 67206, 67205, 67204, 67203, 72302, 0, 0, 0, 128959, - 0, 1425, 92259, 119229, 11049, 0, 71480, 42649, 8482, 0, 0, 66715, 67209, - 11940, 67207, 664, 0, 0, 0, 70200, 127525, 0, 70194, 93061, 111155, - 68474, 111153, 6032, 67218, 67217, 7430, 194670, 70191, 0, 0, 0, 0, 0, - 41161, 0, 9765, 10993, 41162, 0, 70189, 1169, 111181, 0, 1905, 6034, - 41164, 64744, 43236, 0, 128800, 73110, 0, 0, 788, 0, 0, 111167, 111128, - 1663, 128976, 42901, 127237, 67211, 67210, 0, 0, 67215, 67214, 67213, - 67212, 111160, 111159, 111158, 111157, 0, 69492, 0, 111161, 43612, 0, 0, - 0, 10855, 67223, 9355, 67221, 65198, 120355, 0, 221, 0, 0, 0, 121141, - 7191, 118930, 72208, 125212, 0, 0, 0, 0, 67228, 67227, 43333, 67225, 0, - 0, 0, 67229, 0, 7245, 0, 74405, 69922, 72219, 111178, 3873, 8367, 111174, - 111173, 111172, 43649, 0, 111177, 111176, 0, 11164, 0, 74403, 111171, - 111170, 111169, 7682, 74404, 1462, 10235, 0, 0, 0, 0, 0, 111130, 0, 0, - 74402, 0, 92299, 0, 0, 74052, 0, 126127, 120549, 0, 64295, 0, 0, 0, 0, 0, - 120662, 0, 0, 67231, 67230, 10755, 55257, 11155, 128568, 983136, 9470, 0, - 127540, 0, 69680, 64384, 0, 128607, 0, 0, 0, 0, 73764, 8204, 0, 0, 0, 0, - 0, 8728, 0, 10904, 73446, 19936, 7833, 0, 0, 0, 0, 92546, 0, 0, 0, 8537, - 0, 0, 0, 121244, 0, 0, 2254, 128193, 0, 0, 0, 0, 3062, 0, 0, 0, 0, 0, - 41160, 41147, 41158, 0, 120777, 0, 41155, 111116, 111115, 111114, 0, - 121332, 111119, 111118, 111117, 129878, 0, 129091, 0, 0, 0, 64594, 2456, - 66867, 0, 0, 0, 0, 3721, 0, 0, 1230, 2678, 0, 3597, 917795, 0, 0, 92215, - 0, 67737, 8352, 0, 0, 0, 64515, 121378, 0, 129128, 67846, 0, 129767, - 92466, 0, 0, 71338, 0, 8660, 0, 0, 0, 0, 0, 4483, 0, 0, 0, 6080, 0, 0, - 1746, 1315, 0, 70201, 0, 13140, 74508, 0, 0, 4480, 0, 111113, 111112, 0, - 67979, 0, 6360, 10897, 111106, 605, 68302, 110737, 69875, 110735, 110736, - 66681, 0, 0, 0, 0, 0, 0, 0, 10877, 118868, 64885, 0, 0, 0, 0, 0, 0, 345, - 0, 0, 64606, 9917, 0, 0, 92196, 0, 1776, 8422, 43992, 0, 0, 0, 126543, - 43328, 0, 0, 1295, 0, 42869, 0, 0, 0, 0, 128772, 65123, 125210, 11293, - 11288, 0, 0, 65666, 0, 92369, 65420, 0, 0, 4252, 0, 0, 0, 706, 72800, 0, - 0, 129931, 65419, 92177, 0, 8419, 65421, 0, 66702, 0, 12670, 118608, 0, - 0, 0, 72825, 65422, 83008, 0, 0, 0, 0, 0, 0, 9736, 4184, 65418, 0, 0, - 74035, 0, 129955, 0, 0, 0, 0, 129447, 0, 7962, 12211, 9837, 83505, 0, 0, - 5719, 0, 129720, 119068, 73777, 1857, 0, 9927, 0, 983959, 0, 10037, 0, - 73695, 78322, 78319, 7818, 0, 0, 127769, 0, 0, 0, 65077, 0, 78325, 78326, - 78323, 43327, 43989, 0, 65828, 0, 0, 83499, 0, 68390, 0, 110687, 78336, - 78339, 9543, 78335, 78332, 78333, 0, 127964, 0, 129552, 983914, 0, 69448, - 0, 71429, 0, 0, 0, 11914, 69431, 0, 0, 0, 9949, 0, 0, 119215, 0, 12073, - 0, 0, 0, 0, 101218, 2260, 0, 0, 0, 0, 0, 0, 1939, 0, 0, 0, 69903, 0, 0, - 0, 0, 6643, 92477, 0, 0, 78330, 78331, 78328, 78329, 0, 92551, 0, 0, 0, - 0, 0, 72417, 0, 0, 0, 0, 78341, 78342, 120944, 78340, 129513, 127529, - 92350, 3784, 78350, 0, 78348, 78349, 78345, 43324, 78343, 78344, 2231, 0, - 0, 0, 42467, 0, 0, 42894, 78363, 13281, 78360, 78361, 78356, 78358, - 78353, 64899, 0, 41149, 0, 43162, 68096, 41150, 0, 10571, 67162, 67161, - 67160, 67159, 6947, 41152, 887, 9249, 6565, 64806, 74366, 0, 67158, - 67157, 0, 10831, 67175, 67174, 120232, 65827, 43325, 67178, 10168, 67176, - 0, 0, 9190, 128497, 9666, 41997, 0, 0, 0, 0, 0, 0, 129411, 0, 78508, 0, - 78351, 78352, 0, 75063, 72839, 983749, 0, 126604, 0, 0, 0, 983419, 0, - 2270, 0, 129957, 0, 78365, 0, 67189, 72818, 0, 0, 0, 0, 0, 0, 0, 72833, - 101119, 78366, 78367, 0, 0, 0, 0, 10137, 6121, 10995, 0, 71050, 8119, 0, - 71052, 0, 0, 0, 0, 0, 0, 0, 1394, 0, 0, 128960, 0, 67184, 2998, 67182, - 67181, 67188, 67187, 67186, 67185, 0, 101185, 0, 0, 67180, 42003, 0, 0, - 67193, 67192, 67191, 67190, 67197, 67196, 67195, 67194, 0, 72770, 43315, - 71051, 0, 1593, 0, 125120, 619, 4635, 0, 72875, 0, 128859, 118657, 0, 0, - 0, 67199, 67198, 0, 42790, 42006, 0, 0, 0, 128998, 10757, 9347, 127767, - 0, 0, 74227, 78904, 0, 74116, 128423, 121073, 120860, 0, 92427, 0, 0, 0, - 0, 64590, 0, 4371, 0, 0, 92478, 0, 0, 73977, 0, 0, 127847, 0, 120862, 0, - 64550, 73745, 70451, 0, 121013, 0, 0, 0, 129286, 0, 0, 0, 0, 9131, - 118648, 125214, 983220, 0, 0, 64260, 0, 12606, 0, 0, 0, 0, 562, 983614, - 0, 129648, 66455, 127533, 3219, 0, 0, 0, 1037, 0, 64491, 0, 983695, - 78572, 78580, 4568, 549, 0, 0, 0, 0, 0, 128095, 70851, 2205, 0, 0, 0, 0, - 129716, 0, 10825, 8079, 118962, 0, 0, 0, 128855, 0, 13071, 0, 0, 41049, - 42840, 43614, 129341, 74881, 74596, 127191, 5212, 0, 66402, 119191, 0, - 9747, 0, 0, 129778, 984008, 41047, 1668, 0, 0, 0, 1187, 0, 74416, 0, 0, - 0, 0, 3240, 128518, 9213, 0, 0, 0, 127174, 69822, 0, 0, 0, 0, 1623, 0, 0, - 0, 0, 0, 0, 11272, 0, 73914, 65048, 1909, 42172, 0, 0, 10736, 11580, - 72228, 7615, 0, 0, 4237, 66576, 0, 65815, 68083, 0, 0, 0, 3489, 0, 0, 0, - 0, 0, 0, 127146, 3796, 6800, 0, 65582, 0, 129521, 0, 0, 68036, 0, 0, - 64857, 121213, 126493, 0, 66308, 0, 0, 64634, 127817, 0, 0, 0, 0, 3246, - 0, 43972, 128643, 0, 0, 0, 0, 120751, 0, 0, 0, 0, 1496, 42827, 0, 942, - 2378, 119213, 0, 0, 0, 0, 9510, 1232, 8139, 0, 0, 0, 11409, 0, 6382, 0, - 66319, 121237, 0, 0, 0, 127887, 2374, 0, 8475, 120844, 66313, 0, 0, - 64879, 119298, 0, 0, 70869, 0, 0, 129025, 0, 7705, 11942, 0, 0, 3309, 0, - 0, 0, 83345, 983866, 0, 0, 1280, 6998, 128104, 0, 0, 0, 129945, 0, 0, 0, - 0, 0, 0, 0, 74239, 983073, 0, 0, 0, 6078, 121354, 0, 1475, 0, 9938, 6084, - 0, 983995, 0, 118571, 0, 3256, 0, 43973, 0, 0, 0, 8727, 0, 0, 0, 110831, - 110832, 10562, 110830, 0, 0, 0, 3248, 0, 0, 9015, 0, 0, 3635, 64337, 0, - 0, 43852, 7195, 0, 2007, 64431, 0, 0, 0, 0, 0, 0, 0, 65613, 77909, 0, 0, - 0, 0, 119218, 7984, 11670, 74434, 127770, 4176, 69248, 2034, 69442, - 11154, 65891, 0, 0, 318, 2038, 0, 0, 0, 3649, 13149, 42145, 42798, 3634, - 0, 0, 128483, 0, 0, 0, 11402, 120954, 94032, 74238, 0, 43313, 0, 0, 7938, - 0, 1761, 0, 65379, 68386, 128185, 1159, 71183, 0, 0, 0, 66687, 120851, 0, - 41680, 0, 0, 0, 1514, 11668, 67891, 9313, 0, 128490, 67877, 0, 41681, 0, - 0, 12848, 69982, 67873, 0, 74278, 0, 0, 12649, 0, 0, 1194, 3242, 9761, - 9555, 8598, 0, 120524, 0, 1551, 65447, 129414, 126211, 0, 0, 0, 67875, 0, - 3495, 66648, 125079, 0, 73024, 983229, 0, 126130, 10641, 0, 0, 0, 77845, - 0, 0, 0, 0, 0, 11131, 0, 0, 0, 0, 0, 42685, 72017, 193, 0, 0, 0, 42667, - 0, 0, 92318, 71958, 0, 1362, 9558, 0, 0, 0, 7351, 73789, 0, 0, 4426, 0, - 0, 0, 0, 7276, 42163, 5220, 0, 0, 67822, 0, 0, 0, 0, 41692, 0, 72283, 0, - 0, 3223, 65492, 0, 0, 4549, 983706, 0, 0, 101162, 10807, 0, 0, 0, 42182, - 8688, 12866, 0, 3294, 0, 0, 128101, 0, 64514, 0, 43329, 129989, 0, 0, 0, - 119061, 0, 43422, 0, 0, 128618, 0, 42729, 0, 3215, 120982, 68880, 917564, - 0, 0, 0, 65682, 0, 0, 65924, 0, 983823, 0, 1501, 0, 118807, 0, 0, 9607, - 0, 65794, 72243, 983046, 10989, 0, 74399, 0, 0, 7152, 0, 0, 129530, 7483, - 125083, 0, 8104, 70128, 7474, 0, 5189, 0, 0, 0, 8141, 0, 42537, 69612, 0, - 0, 0, 0, 0, 127307, 42934, 0, 0, 0, 0, 0, 0, 64517, 0, 0, 1650, 0, 0, - 128502, 7901, 3238, 0, 65556, 0, 0, 65158, 43416, 74959, 0, 7527, 0, - 43319, 0, 0, 45, 0, 0, 0, 0, 0, 7347, 0, 0, 0, 13129, 0, 9084, 0, 8737, - 0, 0, 0, 66808, 9639, 7912, 2620, 0, 3564, 0, 0, 0, 0, 75049, 0, 2853, 0, - 0, 0, 0, 0, 2850, 8084, 0, 0, 71446, 92284, 43122, 0, 0, 0, 126503, - 72214, 0, 74767, 0, 7331, 110646, 0, 8245, 0, 3158, 92396, 3983, 0, 923, - 0, 69397, 292, 0, 126548, 0, 3221, 1763, 0, 0, 0, 0, 7253, 194636, 68391, + 92798, 0, 0, 0, 7012, 124122, 128439, 9566, 0, 94176, 0, 65012, 126242, + 545, 9575, 0, 10050, 12718, 0, 8859, 6820, 124915, 129941, 120740, 0, 0, + 9119, 2787, 0, 984000, 8507, 2012, 7985, 0, 0, 0, 0, 194634, 0, 410, 0, + 0, 120789, 120609, 0, 120378, 120379, 0, 0, 120374, 72742, 120376, + 120377, 120370, 120371, 120372, 120373, 3860, 120367, 72205, 74031, + 111131, 73685, 11748, 120365, 7941, 111134, 8749, 111132, 12698, 111129, + 361, 110793, 845, 67509, 0, 0, 4562, 72241, 2926, 0, 4569, 0, 110797, + 43487, 0, 0, 0, 74287, 122885, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6291, 0, 0, 0, + 9734, 0, 0, 0, 0, 127754, 7359, 83523, 43863, 0, 111150, 8769, 111148, + 111147, 111145, 4859, 111143, 111142, 0, 0, 0, 0, 12172, 111136, 0, + 127899, 111141, 64764, 4210, 111138, 0, 804, 0, 83520, 0, 70344, 0, 0, + 67202, 10091, 67200, 119257, 67206, 67205, 67204, 67203, 72302, 0, 0, 0, + 128959, 0, 1425, 92259, 119229, 11049, 0, 71480, 42649, 8482, 0, 0, + 66715, 67209, 11940, 67207, 664, 0, 0, 0, 70200, 127525, 0, 70194, 93061, + 111155, 68474, 111153, 6032, 67218, 67217, 7430, 194670, 70191, 0, 0, 0, + 0, 0, 41161, 0, 9765, 10993, 41162, 0, 70189, 1169, 111181, 0, 1905, + 6034, 41164, 64744, 43236, 0, 128800, 73110, 0, 0, 788, 0, 0, 111167, + 111128, 1663, 128976, 42901, 127237, 67211, 67210, 0, 0, 67215, 67214, + 67213, 67212, 111160, 111159, 111158, 111157, 0, 69492, 0, 111161, 43612, + 0, 0, 0, 10855, 67223, 9355, 67221, 65198, 120355, 0, 221, 0, 0, 0, + 121141, 7191, 118930, 72208, 125212, 0, 0, 0, 0, 67228, 67227, 43333, + 67225, 0, 0, 0, 67229, 0, 7245, 0, 74405, 69922, 72219, 111178, 3873, + 8367, 111174, 111173, 111172, 43649, 0, 111177, 111176, 0, 11164, 0, + 74403, 111171, 111170, 111169, 7682, 74404, 1462, 10235, 0, 0, 0, 0, 0, + 111130, 0, 0, 74402, 0, 92299, 0, 0, 74052, 0, 126127, 120549, 0, 64295, + 0, 0, 0, 0, 0, 120662, 0, 0, 67231, 67230, 10755, 55257, 11155, 128568, + 983137, 9470, 0, 127540, 0, 69680, 64384, 0, 128607, 0, 0, 0, 122987, + 73764, 8204, 0, 0, 0, 0, 0, 8728, 0, 10904, 73446, 19936, 7833, 0, 0, 0, + 0, 92546, 0, 0, 0, 8537, 0, 0, 0, 121244, 0, 0, 2254, 128193, 0, 0, 0, 0, + 3062, 0, 0, 0, 0, 0, 41160, 41147, 41158, 0, 120777, 0, 41155, 111116, + 111115, 111114, 0, 121332, 111119, 111118, 111117, 129878, 0, 129091, 0, + 0, 0, 64594, 2456, 66867, 0, 0, 0, 0, 3721, 0, 0, 1230, 2678, 0, 3597, + 917795, 0, 0, 92215, 0, 67737, 8352, 0, 0, 0, 64515, 121378, 0, 129128, + 67846, 0, 129767, 92466, 0, 0, 71338, 0, 8660, 0, 0, 0, 0, 0, 4483, 0, 0, + 0, 6080, 0, 0, 1746, 1315, 0, 70201, 0, 13140, 74508, 0, 0, 4480, 0, + 111113, 111112, 0, 67979, 0, 6360, 10897, 111106, 605, 68302, 110737, + 69875, 110735, 110736, 66681, 0, 0, 0, 0, 0, 0, 0, 10877, 118868, 64885, + 0, 0, 0, 0, 0, 0, 345, 0, 0, 64606, 9917, 0, 0, 92196, 0, 1776, 8422, + 43992, 0, 0, 0, 126543, 43328, 0, 0, 1295, 0, 42869, 0, 0, 0, 0, 128772, + 65123, 125210, 11293, 11288, 0, 0, 65666, 0, 92369, 65420, 0, 0, 4252, 0, + 0, 0, 706, 72800, 0, 0, 129931, 65419, 92177, 0, 8419, 65421, 0, 66702, + 0, 12670, 118608, 0, 0, 0, 72825, 65422, 83008, 0, 0, 0, 0, 0, 124153, + 9736, 4184, 65418, 0, 0, 74035, 0, 129955, 0, 0, 0, 0, 129447, 0, 7962, + 12211, 9837, 83505, 0, 0, 5719, 0, 129720, 119068, 73777, 1857, 0, 9927, + 0, 983959, 0, 10037, 0, 73695, 78322, 78319, 7818, 0, 0, 127769, 0, 0, 0, + 65077, 0, 78325, 78326, 78323, 43327, 43989, 0, 65828, 0, 0, 83499, 0, + 68390, 0, 110687, 78336, 78339, 9543, 78335, 78332, 78333, 0, 127964, 0, + 129552, 983914, 0, 69448, 0, 71429, 0, 0, 0, 11914, 69431, 0, 0, 0, 9949, + 0, 0, 119215, 0, 12073, 73519, 0, 0, 0, 101218, 2260, 0, 0, 0, 0, 0, 0, + 1939, 0, 0, 0, 69903, 0, 0, 0, 0, 6643, 92477, 128485, 0, 78330, 78331, + 78328, 78329, 0, 92551, 0, 0, 0, 0, 124124, 72417, 0, 0, 0, 0, 78341, + 78342, 120944, 78340, 129513, 127529, 92350, 3784, 78350, 0, 78348, + 78349, 78345, 43324, 78343, 78344, 2231, 0, 0, 0, 42467, 0, 0, 42894, + 78363, 13281, 78360, 78361, 78356, 78358, 78353, 64899, 0, 41149, 0, + 43162, 68096, 41150, 0, 10571, 67162, 67161, 67160, 67159, 6947, 41152, + 887, 9249, 6565, 64806, 74366, 0, 67158, 67157, 0, 10831, 67175, 67174, + 120232, 65827, 43325, 67178, 10168, 67176, 0, 0, 9190, 128497, 9666, + 41997, 0, 0, 0, 0, 0, 0, 129411, 0, 78508, 0, 78351, 78352, 0, 75063, + 72839, 983749, 0, 126604, 0, 0, 0, 983422, 0, 2270, 0, 129957, 0, 78365, + 0, 67189, 72818, 0, 0, 0, 0, 0, 0, 0, 72833, 101119, 78366, 78367, 0, 0, + 0, 0, 10137, 6121, 10995, 0, 71050, 8119, 0, 71052, 0, 0, 0, 0, 0, 0, 0, + 1394, 0, 0, 128960, 0, 67184, 2998, 67182, 67181, 67188, 67187, 67186, + 67185, 0, 101185, 0, 0, 67180, 42003, 0, 0, 67193, 67192, 67191, 67190, + 67197, 67196, 67195, 67194, 0, 72770, 43315, 71051, 0, 1593, 0, 125120, + 619, 4635, 0, 72875, 0, 128859, 118657, 0, 0, 0, 67199, 67198, 0, 42790, + 42006, 0, 0, 0, 128998, 10757, 9347, 127767, 0, 0, 74227, 78904, 0, + 74116, 128423, 121073, 120860, 0, 92427, 0, 0, 0, 0, 64590, 0, 4371, 0, + 0, 92478, 0, 0, 73977, 0, 0, 127847, 0, 120862, 0, 64550, 73745, 70451, + 0, 121013, 0, 0, 0, 129286, 0, 0, 0, 0, 9131, 118648, 125214, 983223, 0, + 0, 64260, 0, 12606, 0, 0, 0, 0, 562, 983614, 0, 129648, 66455, 127533, + 3219, 0, 0, 0, 1037, 0, 64491, 0, 78579, 78572, 78580, 4568, 549, 0, 0, + 0, 0, 0, 128095, 70851, 2205, 0, 0, 0, 0, 129716, 0, 10825, 8079, 118962, + 0, 0, 0, 128855, 0, 13071, 0, 0, 41049, 42840, 43614, 129341, 74881, + 74596, 127191, 5212, 0, 66402, 119191, 0, 9747, 0, 0, 129778, 984008, + 41047, 1668, 0, 0, 0, 1187, 0, 74416, 0, 0, 0, 0, 3240, 128518, 9213, 0, + 0, 0, 127174, 69822, 0, 0, 0, 0, 1623, 0, 0, 0, 0, 0, 0, 11272, 0, 73914, + 65048, 1909, 42172, 0, 0, 10736, 11580, 72228, 7615, 0, 0, 4237, 66576, + 0, 65815, 68083, 0, 0, 0, 3489, 0, 0, 0, 0, 0, 0, 127146, 3796, 6800, 0, + 65582, 0, 129521, 0, 0, 68036, 0, 0, 64857, 121213, 126493, 0, 66308, 0, + 0, 64634, 127817, 0, 0, 0, 0, 3246, 0, 43972, 128643, 0, 0, 0, 0, 120751, + 0, 0, 0, 0, 1496, 42827, 0, 942, 2378, 119213, 0, 0, 0, 0, 9510, 1232, + 8139, 0, 0, 0, 11409, 0, 6382, 0, 66319, 121237, 0, 0, 0, 127887, 2374, + 0, 8475, 120844, 66313, 0, 0, 64879, 119298, 0, 0, 70869, 0, 0, 129025, + 0, 7705, 11942, 0, 0, 3309, 0, 119302, 0, 83345, 983866, 0, 0, 1280, + 6998, 128104, 0, 0, 0, 129945, 0, 0, 0, 0, 0, 0, 0, 74239, 983073, 0, 0, + 0, 6078, 121354, 0, 1475, 0, 9938, 6084, 0, 983995, 0, 118571, 0, 3256, + 0, 43973, 0, 0, 0, 8727, 0, 0, 0, 110831, 110832, 10562, 110830, 0, 0, 0, + 3248, 0, 0, 9015, 0, 0, 3635, 64337, 0, 0, 43852, 7195, 0, 2007, 64431, + 0, 0, 0, 0, 0, 0, 0, 65613, 77909, 0, 0, 0, 0, 119218, 7984, 11670, + 74434, 127770, 4176, 69248, 2034, 69442, 11154, 65891, 0, 0, 318, 2038, + 0, 0, 0, 3649, 13149, 42145, 42798, 3634, 0, 0, 128483, 122928, 124113, + 0, 11402, 120954, 94032, 74238, 0, 43313, 0, 0, 7938, 0, 1761, 0, 65379, + 68386, 128185, 1159, 71183, 0, 0, 0, 66687, 120851, 0, 41680, 0, 0, 0, + 1514, 11668, 67891, 9313, 0, 128490, 67877, 0, 41681, 0, 0, 12848, 69982, + 67873, 0, 74278, 0, 0, 12649, 0, 0, 1194, 3242, 9761, 9555, 8598, 0, + 120524, 0, 1551, 65447, 129414, 126211, 0, 0, 0, 67875, 0, 3495, 66648, + 125079, 0, 73024, 983232, 0, 126130, 10641, 0, 0, 0, 77845, 0, 0, 0, 0, + 0, 11131, 0, 0, 0, 0, 0, 42685, 72017, 193, 0, 0, 0, 42667, 0, 0, 92318, + 71958, 0, 1362, 9558, 0, 0, 0, 7351, 73789, 0, 0, 4426, 0, 0, 0, 0, 7276, + 42163, 5220, 0, 0, 67822, 0, 0, 0, 0, 41692, 0, 72283, 0, 0, 3223, 65492, + 0, 0, 4549, 983706, 0, 0, 101162, 10807, 0, 0, 0, 42182, 8688, 12866, 0, + 3294, 0, 0, 128101, 0, 64514, 0, 43329, 129989, 0, 0, 0, 119061, 0, + 43422, 0, 0, 128618, 0, 42729, 0, 3215, 120982, 68880, 917564, 0, 0, 0, + 65682, 0, 0, 65924, 0, 73506, 0, 1501, 0, 118807, 0, 0, 9607, 0, 65794, + 72243, 983046, 10989, 0, 74399, 0, 0, 7152, 0, 0, 129530, 7483, 125083, + 0, 8104, 70128, 7474, 0, 5189, 0, 0, 0, 8141, 0, 42537, 69612, 0, 0, 0, + 0, 0, 127307, 42934, 0, 0, 0, 0, 0, 0, 64517, 0, 0, 1650, 0, 0, 128502, + 7901, 3238, 0, 65556, 0, 0, 65158, 43416, 74959, 0, 7527, 0, 43319, 0, 0, + 45, 0, 0, 0, 0, 0, 7347, 0, 0, 0, 13129, 0, 9084, 0, 8737, 0, 0, 0, + 66808, 9639, 7912, 2620, 129653, 3564, 0, 0, 0, 0, 75049, 0, 2853, 0, 0, + 0, 0, 0, 2850, 8084, 0, 0, 71446, 92284, 43122, 0, 0, 0, 126503, 72214, + 0, 74767, 0, 7331, 110646, 0, 8245, 0, 3158, 92396, 3983, 0, 923, 0, + 69397, 292, 0, 126548, 0, 3221, 1763, 0, 0, 0, 0, 7253, 194636, 68391, 75002, 0, 3637, 12996, 0, 70461, 0, 0, 3228, 0, 0, 0, 0, 0, 0, 120833, 118939, 0, 7696, 78589, 0, 0, 0, 43316, 4177, 0, 9089, 0, 128805, 72116, 64500, 68133, 0, 0, 1856, 100572, 0, 6379, 0, 118999, 0, 3208, 0, 0, 0, @@ -26901,20 +27086,20 @@ static const unsigned int code_hash[] = { 4573, 0, 0, 0, 0, 0, 92961, 0, 118620, 41688, 0, 0, 0, 8314, 0, 0, 0, 0, 0, 66721, 0, 0, 121033, 0, 128226, 0, 0, 0, 13164, 0, 66237, 983982, 0, 0, 0, 3257, 0, 0, 1845, 0, 0, 0, 0, 128783, 0, 0, 0, 0, 3499, 8609, 0, - 7145, 0, 0, 0, 0, 74829, 984007, 983293, 0, 0, 0, 7591, 0, 0, 0, 73778, + 7145, 0, 0, 0, 0, 74829, 984007, 983296, 0, 0, 0, 7591, 0, 0, 0, 73778, 70132, 128167, 0, 0, 0, 0, 119261, 0, 0, 118561, 13083, 0, 0, 0, 0, - 66177, 983271, 5429, 0, 0, 68168, 66181, 0, 0, 983255, 0, 0, 5433, 67659, + 66177, 983274, 5429, 0, 0, 68168, 66181, 0, 0, 983258, 0, 0, 5433, 67659, 0, 42776, 1547, 66176, 92428, 0, 5425, 4977, 9999, 0, 5423, 64560, 125094, 0, 0, 0, 74122, 0, 0, 0, 128003, 4418, 66199, 0, 92300, 0, 0, 0, - 11863, 124995, 0, 11908, 0, 9360, 125101, 983202, 0, 66187, 12837, - 983290, 0, 11112, 0, 92321, 43318, 0, 0, 0, 0, 126518, 120604, 0, 983288, + 11863, 124995, 0, 11908, 0, 9360, 125101, 983204, 0, 66187, 12837, + 983293, 0, 11112, 0, 92321, 43318, 0, 0, 0, 0, 126518, 120604, 0, 983291, 0, 129595, 0, 983801, 0, 9958, 0, 125108, 0, 0, 0, 2433, 128602, 0, 3352, 0, 0, 0, 0, 0, 0, 305, 567, 67662, 0, 69979, 65242, 0, 41695, 0, 0, 0, 7837, 92873, 129002, 5337, 917622, 7325, 43312, 917619, 68742, 917617, 74086, 68777, 917614, 917613, 10973, 917611, 1372, 128768, 917608, 917607, 1254, 917605, 917604, 93967, 917602, 65228, 113753, 129367, 67723, 8068, 0, 0, 983970, 0, 3245, 64393, 119069, 118681, 0, 0, 0, 0, 0, - 0, 983281, 0, 119563, 129935, 78865, 0, 126638, 0, 0, 43322, 0, 0, 0, 0, + 0, 983284, 0, 119563, 129935, 78865, 0, 126638, 0, 0, 43322, 0, 0, 0, 0, 92698, 3226, 67695, 0, 0, 983958, 10200, 0, 128779, 101143, 0, 65610, 0, 0, 0, 3585, 250, 101142, 43320, 0, 0, 0, 0, 1152, 129849, 1688, 0, 0, 0, 0, 0, 121040, 128340, 0, 0, 0, 2107, 0, 129048, 0, 0, 0, 43868, 129832, @@ -26929,97 +27114,98 @@ static const unsigned int code_hash[] = { 0, 0, 2625, 92724, 0, 74309, 0, 0, 0, 7850, 120296, 69639, 127032, 0, 0, 43384, 12660, 110663, 0, 0, 110706, 110661, 0, 92380, 0, 0, 69649, 0, 713, 41073, 0, 3990, 0, 0, 0, 5017, 128313, 120352, 0, 0, 1030, 0, - 983120, 9513, 0, 0, 0, 4668, 0, 120350, 0, 6339, 0, 0, 0, 64650, 0, 0, + 983121, 9513, 0, 0, 0, 4668, 0, 120350, 0, 6339, 0, 0, 0, 64650, 0, 0, 74766, 983869, 8908, 0, 0, 0, 0, 10752, 13003, 68769, 0, 41307, 8732, - 120336, 0, 41310, 0, 4696, 0, 983953, 0, 120334, 3641, 5419, 0, 0, 0, 0, - 120344, 128129, 0, 7320, 65230, 11808, 0, 93970, 936, 13289, 0, 69892, - 65774, 0, 65243, 0, 19953, 0, 126469, 121375, 127256, 12913, 70722, - 68759, 0, 0, 70203, 0, 4113, 0, 2372, 1819, 0, 128053, 12152, 0, 682, - 7655, 120330, 129921, 0, 10593, 1703, 0, 0, 8033, 69953, 0, 9810, 0, 0, - 127949, 0, 119159, 10109, 0, 73898, 0, 71730, 126704, 0, 0, 917620, 1965, - 917621, 0, 0, 73887, 0, 0, 0, 6314, 0, 8501, 0, 0, 0, 41317, 0, 5417, - 983582, 0, 0, 9353, 68148, 41315, 0, 11161, 0, 41314, 194892, 0, 126562, - 119236, 634, 0, 0, 0, 69779, 4355, 12016, 0, 9654, 12856, 6924, 7660, 0, - 0, 0, 0, 0, 42692, 0, 74604, 0, 0, 0, 680, 6274, 0, 1181, 0, 3174, 67248, - 0, 0, 0, 0, 113776, 10650, 917603, 92295, 70672, 118965, 0, 64644, - 126981, 0, 0, 0, 0, 983961, 0, 65302, 40989, 68239, 68230, 68234, 0, 0, - 124989, 0, 40987, 4667, 0, 983963, 8828, 0, 0, 0, 4746, 0, 129840, 2269, - 4749, 0, 100598, 65192, 4744, 7345, 0, 242, 100595, 0, 8217, 0, 68919, 0, - 2245, 0, 0, 66790, 10850, 0, 0, 0, 0, 0, 129853, 64680, 0, 0, 120562, 0, - 127324, 0, 100551, 128721, 0, 7316, 0, 983610, 100552, 74157, 1646, 0, 0, - 73995, 120857, 129047, 0, 7350, 0, 0, 0, 9099, 4107, 3441, 0, 2975, - 194701, 0, 983966, 55220, 10084, 73943, 120845, 118649, 0, 0, 3399, 0, 0, - 11909, 0, 0, 7687, 0, 6789, 0, 0, 72739, 71367, 0, 0, 92589, 9151, 1137, - 0, 749, 7505, 125076, 5385, 0, 69387, 0, 0, 41298, 0, 69461, 0, 0, 0, 0, - 0, 0, 128455, 0, 519, 0, 64547, 5766, 0, 0, 0, 8848, 0, 41297, 0, 0, 0, - 41300, 74468, 65160, 0, 129839, 127511, 0, 0, 6558, 0, 0, 128686, 92775, - 0, 71450, 41302, 127927, 0, 0, 128646, 68762, 11729, 8719, 9060, 0, - 128796, 0, 0, 118573, 129682, 0, 11734, 93011, 11730, 73450, 9593, 5757, - 2403, 0, 55275, 0, 11728, 65894, 0, 0, 0, 68741, 0, 0, 0, 43489, 4282, - 983864, 0, 83497, 70328, 128103, 70324, 0, 69490, 127509, 0, 8456, 0, 0, - 74783, 0, 78250, 0, 70320, 120722, 9792, 0, 70326, 0, 0, 83500, 70322, - 10019, 71701, 123617, 6568, 4365, 0, 0, 3647, 0, 41134, 128341, 0, - 125043, 41135, 0, 0, 0, 129938, 0, 123616, 0, 41137, 41139, 0, 6545, 0, - 125139, 7597, 10528, 75054, 0, 3732, 73910, 0, 0, 0, 7312, 983639, 9062, - 93840, 11853, 0, 0, 128324, 41538, 0, 0, 118702, 0, 194706, 41531, 1263, - 3720, 0, 68028, 0, 41524, 64692, 119635, 0, 41534, 0, 92193, 0, 41168, 0, - 67398, 127347, 3524, 0, 8831, 127349, 127357, 0, 127360, 127352, 129816, - 0, 0, 0, 0, 0, 5845, 0, 0, 0, 71909, 8200, 0, 68460, 0, 43283, 5551, 0, - 0, 0, 6340, 983552, 100602, 0, 0, 0, 0, 0, 5422, 0, 0, 0, 2471, 0, 0, - 2749, 0, 73774, 10913, 72122, 0, 8666, 675, 74093, 0, 194986, 0, 69262, - 0, 0, 0, 10928, 0, 41153, 0, 0, 0, 3738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 42347, 12092, 9615, 7234, 74047, 129782, 0, 0, 123639, 0, 0, 2934, - 0, 0, 0, 0, 74507, 0, 74461, 0, 0, 74290, 0, 64562, 129975, 64473, 0, 0, - 73728, 0, 11212, 0, 12128, 6534, 0, 0, 1901, 0, 0, 0, 0, 0, 127520, 0, 0, - 0, 0, 69940, 65459, 68293, 92290, 128808, 3770, 0, 0, 0, 64579, 128511, - 0, 0, 983334, 983342, 0, 0, 0, 5941, 0, 0, 65079, 0, 0, 0, 73961, 983336, - 0, 0, 0, 0, 0, 0, 10638, 0, 0, 0, 71486, 0, 0, 983351, 0, 43840, 129495, - 0, 5233, 983348, 64792, 71233, 0, 983326, 0, 0, 9847, 0, 1685, 595, 0, - 73971, 1292, 8940, 0, 11088, 0, 10004, 0, 0, 6541, 0, 0, 0, 5603, 9014, - 5606, 0, 538, 128705, 5602, 8467, 74391, 6547, 0, 0, 0, 0, 8458, 129534, - 8495, 0, 0, 917552, 10981, 78314, 125057, 2465, 0, 0, 0, 9730, 9280, 0, - 0, 74155, 72766, 113690, 0, 504, 0, 120715, 0, 983606, 0, 0, 0, 123141, - 125024, 0, 0, 732, 3737, 0, 1548, 0, 0, 1832, 5604, 0, 41141, 0, 5607, - 72854, 2176, 3745, 0, 0, 128137, 0, 0, 3869, 11937, 5725, 0, 66566, 7416, - 5728, 0, 0, 0, 11918, 66567, 5724, 118829, 5727, 0, 0, 0, 5723, 118585, - 128116, 71999, 0, 0, 0, 42532, 0, 12303, 0, 11423, 0, 983115, 68303, - 74074, 0, 128267, 6559, 64557, 71348, 0, 66763, 43019, 0, 10238, 0, 0, - 43377, 0, 71346, 124937, 9783, 42704, 0, 71719, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 41144, 129465, 0, 0, 0, 72793, 92176, 0, 70682, 0, 8820, 0, 0, - 0, 11515, 526, 0, 0, 0, 0, 0, 0, 8635, 0, 0, 8288, 11815, 0, 0, 0, 1543, - 3713, 0, 0, 0, 68041, 127816, 0, 0, 64357, 0, 42082, 0, 0, 8987, 42081, - 0, 0, 0, 0, 0, 0, 6553, 0, 0, 11253, 0, 0, 5475, 0, 0, 0, 119334, 12990, - 1160, 42084, 0, 123152, 0, 0, 360, 0, 0, 128274, 5863, 3137, 0, 983317, - 0, 0, 10959, 3146, 0, 127374, 0, 68341, 13076, 3135, 983300, 0, 0, 3142, - 0, 94068, 10819, 128479, 0, 74635, 12877, 119867, 73967, 0, 70808, 0, 0, - 0, 0, 6163, 129745, 113728, 0, 0, 0, 8603, 0, 0, 3306, 0, 43392, 0, - 917565, 5751, 0, 0, 0, 0, 0, 7403, 0, 118933, 0, 122628, 64783, 92658, 0, - 0, 129592, 0, 0, 65569, 7021, 0, 0, 0, 0, 0, 6540, 6974, 0, 0, 0, 0, 0, - 0, 0, 983655, 0, 43585, 0, 6551, 983993, 0, 0, 0, 0, 0, 72216, 8977, 602, - 120814, 0, 0, 0, 72119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 983624, 74812, 0, - 0, 0, 9475, 0, 65105, 0, 118556, 0, 43592, 7831, 66751, 0, 0, 73915, 0, - 43593, 0, 43591, 43061, 0, 0, 43589, 43584, 0, 13113, 0, 0, 43590, 8766, - 9087, 0, 0, 41574, 78337, 0, 42900, 6376, 0, 0, 0, 0, 9854, 0, 0, 0, 0, - 0, 0, 0, 2909, 0, 0, 0, 6529, 110930, 75004, 3751, 0, 0, 0, 1798, 0, 0, - 1354, 0, 13152, 6557, 12430, 0, 94098, 0, 0, 0, 68123, 128097, 0, 0, 0, - 71264, 123559, 11082, 0, 65677, 8682, 42054, 92595, 42045, 9804, 0, 0, - 3595, 0, 0, 0, 0, 42399, 0, 0, 0, 65541, 0, 7324, 0, 0, 0, 8797, 77895, - 0, 64888, 7167, 2356, 95, 110810, 0, 0, 42286, 0, 0, 69999, 0, 120877, 0, - 0, 42324, 129359, 0, 0, 43492, 0, 43406, 0, 0, 0, 0, 0, 43400, 0, 0, - 71720, 0, 66435, 0, 0, 3201, 514, 74502, 0, 43396, 0, 64493, 0, 43404, - 11218, 0, 0, 43398, 0, 0, 41341, 129485, 6564, 1463, 41342, 0, 5293, 0, - 0, 3733, 0, 0, 41344, 0, 0, 0, 0, 41346, 0, 69747, 0, 0, 0, 0, 0, 0, 0, - 983764, 0, 0, 0, 65272, 0, 0, 1270, 1132, 0, 0, 0, 66655, 0, 0, 74314, - 64761, 0, 110853, 8510, 0, 129600, 0, 0, 0, 0, 0, 0, 69692, 0, 0, 42383, - 69690, 0, 69700, 13141, 0, 92465, 0, 0, 0, 41566, 0, 0, 129334, 127171, - 0, 0, 0, 0, 0, 0, 0, 6308, 0, 0, 2611, 0, 66881, 0, 65063, 0, 0, 0, 0, - 4484, 8747, 110597, 128369, 0, 0, 0, 0, 0, 0, 12902, 0, 0, 7299, 0, 0, - 12107, 7100, 10905, 65010, 0, 125135, 66018, 9284, 0, 0, 0, 0, 0, 0, 0, - 12010, 0, 126093, 120949, 121032, 0, 0, 0, 0, 0, 0, 0, 0, 6618, 3562, - 66365, 0, 42234, 12648, 128039, 0, 0, 0, 41309, 9764, 41316, 0, 0, 13230, - 41299, 0, 0, 68365, 0, 0, 0, 0, 0, 0, 4153, 0, 0, 128047, 0, 0, 42889, 0, - 129322, 41578, 0, 41577, 0, 68092, 0, 6533, 0, 41570, 0, 72414, 0, 41580, - 74628, 0, 12901, 0, 0, 0, 0, 71461, 41360, 0, 0, 4743, 0, 0, 0, 0, 68398, + 120336, 0, 41310, 0, 4696, 0, 983953, 0, 120334, 3641, 5419, 124119, 0, + 0, 0, 120344, 128129, 0, 7320, 65230, 11808, 0, 93970, 936, 13289, 0, + 69892, 65774, 0, 65243, 0, 19953, 0, 126469, 121375, 127256, 12913, + 70722, 68759, 0, 0, 70203, 0, 4113, 0, 2372, 1819, 0, 128053, 12152, 0, + 682, 7655, 120330, 129921, 0, 10593, 1703, 0, 0, 8033, 69953, 0, 9810, 0, + 0, 127949, 0, 119159, 10109, 0, 73898, 0, 71730, 126704, 0, 0, 917620, + 1965, 917621, 0, 0, 73887, 0, 0, 0, 6314, 0, 8501, 0, 0, 0, 41317, 0, + 5417, 983582, 0, 0, 9353, 68148, 41315, 0, 11161, 0, 41314, 194892, 0, + 126562, 119236, 634, 0, 0, 0, 69779, 4355, 12016, 0, 9654, 12856, 6924, + 7660, 0, 0, 0, 0, 0, 42692, 0, 74604, 0, 0, 0, 680, 6274, 0, 1181, 0, + 3174, 67248, 0, 0, 0, 0, 113776, 10650, 917603, 92295, 70672, 118965, 0, + 64644, 126981, 0, 0, 0, 0, 983961, 0, 65302, 40989, 68239, 68230, 68234, + 0, 0, 124989, 0, 40987, 4667, 0, 983963, 8828, 0, 0, 0, 4746, 0, 129840, + 2269, 4749, 0, 100598, 65192, 4744, 7345, 0, 242, 100595, 0, 8217, 0, + 68919, 0, 2245, 0, 0, 66790, 10850, 0, 0, 0, 983391, 0, 129853, 64680, 0, + 0, 120562, 0, 127324, 0, 100551, 128721, 0, 7316, 0, 983610, 100552, + 74157, 1646, 0, 0, 73995, 120857, 73500, 0, 7350, 0, 0, 0, 9099, 4107, + 3441, 0, 2975, 194701, 0, 983966, 55220, 10084, 73943, 120845, 118649, 0, + 0, 3399, 0, 0, 11909, 0, 0, 7687, 0, 6789, 0, 0, 72739, 71367, 0, 0, + 92589, 9151, 1137, 0, 749, 7505, 125076, 5385, 0, 69387, 0, 0, 41298, 0, + 69461, 0, 0, 0, 0, 0, 0, 128455, 0, 519, 0, 64547, 5766, 0, 0, 0, 8848, + 0, 41297, 0, 0, 0, 41300, 74468, 65160, 0, 129839, 127511, 0, 0, 6558, 0, + 0, 128686, 92775, 0, 71450, 41302, 127927, 0, 0, 128646, 68762, 11729, + 8719, 9060, 0, 128796, 0, 0, 118573, 129682, 0, 11734, 93011, 11730, + 73450, 9593, 5757, 2403, 0, 55275, 0, 11728, 65894, 0, 0, 0, 68741, 0, 0, + 0, 43489, 4282, 983864, 0, 83497, 70328, 128103, 70324, 0, 69490, 127509, + 0, 8456, 0, 0, 74783, 0, 78250, 0, 70320, 120722, 9792, 0, 70326, 0, 0, + 83500, 70322, 10019, 71701, 123617, 6568, 4365, 129399, 0, 3647, 0, + 41134, 128341, 0, 125043, 41135, 0, 0, 0, 129938, 0, 123616, 0, 41137, + 41139, 0, 6545, 0, 125139, 7597, 10528, 75054, 0, 3732, 73910, 0, 0, 0, + 7312, 983639, 9062, 93840, 11853, 0, 0, 128324, 41538, 0, 0, 118702, 0, + 194706, 41531, 1263, 3720, 0, 68028, 0, 41524, 64692, 119635, 0, 41534, + 0, 92193, 0, 41168, 0, 67398, 127347, 3524, 0, 8831, 127349, 127357, 0, + 127360, 127352, 129816, 0, 0, 0, 0, 0, 5845, 0, 0, 0, 71909, 8200, 0, + 68460, 0, 43283, 5551, 0, 0, 0, 6340, 983552, 100602, 0, 0, 0, 0, 0, + 5422, 0, 0, 0, 2471, 0, 0, 2749, 0, 73774, 10913, 72122, 0, 8666, 675, + 74093, 0, 194986, 0, 69262, 0, 0, 0, 10928, 0, 41153, 0, 0, 0, 3738, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42347, 12092, 9615, 7234, 74047, + 129782, 0, 0, 123639, 0, 0, 2934, 0, 0, 0, 0, 74507, 0, 74461, 0, 0, + 74290, 0, 64562, 129975, 64473, 0, 0, 73728, 0, 11212, 0, 12128, 6534, 0, + 0, 1901, 0, 0, 0, 0, 0, 127520, 0, 0, 0, 0, 69940, 65459, 68293, 92290, + 128808, 3770, 0, 0, 0, 64579, 128511, 0, 0, 983337, 983345, 0, 0, 0, + 5941, 0, 0, 65079, 0, 0, 0, 73961, 983339, 0, 0, 0, 0, 0, 0, 10638, 0, 0, + 0, 71486, 0, 0, 983354, 0, 43840, 129495, 0, 5233, 983351, 64792, 71233, + 0, 983329, 0, 73553, 9847, 0, 1685, 595, 0, 73971, 1292, 8940, 0, 11088, + 0, 10004, 0, 0, 6541, 0, 0, 0, 5603, 9014, 5606, 0, 538, 128705, 5602, + 8467, 74391, 6547, 0, 0, 0, 0, 8458, 129534, 8495, 0, 0, 917552, 10981, + 78314, 125057, 2465, 0, 0, 0, 9730, 9280, 0, 0, 74155, 72766, 113690, 0, + 504, 0, 120715, 0, 983606, 0, 0, 0, 123141, 125024, 0, 0, 732, 3737, 0, + 1548, 0, 0, 1832, 5604, 0, 41141, 0, 5607, 72854, 2176, 3745, 0, 0, + 128137, 0, 0, 3869, 11937, 5725, 0, 66566, 7416, 5728, 0, 0, 0, 11918, + 66567, 5724, 118829, 5727, 0, 0, 0, 5723, 118585, 128116, 71999, 0, 0, 0, + 42532, 0, 12303, 0, 11423, 0, 983116, 68303, 74074, 0, 128267, 6559, + 64557, 71348, 0, 66763, 43019, 0, 10238, 0, 0, 43377, 0, 71346, 124937, + 9783, 42704, 0, 71719, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41144, 129465, 0, + 0, 0, 72793, 92176, 0, 70682, 0, 8820, 0, 0, 0, 11515, 526, 0, 0, 0, 0, + 0, 0, 8635, 0, 0, 8288, 11815, 0, 0, 0, 1543, 3713, 0, 0, 0, 68041, + 127816, 0, 0, 64357, 0, 42082, 0, 0, 8987, 42081, 0, 0, 0, 0, 0, 0, 6553, + 0, 0, 11253, 0, 0, 5475, 0, 0, 0, 119334, 12990, 1160, 42084, 0, 123152, + 0, 0, 360, 0, 0, 128274, 5863, 3137, 0, 983320, 0, 0, 10959, 3146, 0, + 127374, 0, 68341, 13076, 3135, 983303, 0, 0, 3142, 0, 94068, 10819, + 128479, 0, 74635, 12877, 119867, 73967, 0, 70808, 0, 0, 0, 0, 6163, + 129745, 113728, 0, 0, 0, 8603, 0, 0, 3306, 0, 43392, 0, 917565, 5751, 0, + 0, 0, 0, 0, 7403, 0, 118933, 0, 122628, 64783, 92658, 0, 0, 129592, 0, 0, + 65569, 7021, 0, 0, 119864, 0, 0, 6540, 6974, 0, 0, 0, 0, 0, 0, 0, 983655, + 0, 43585, 0, 6551, 983993, 0, 0, 0, 0, 0, 72216, 8977, 602, 120814, 0, 0, + 0, 72119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 983624, 74812, 0, 0, 0, 9475, 0, + 65105, 0, 118556, 0, 43592, 7831, 66751, 0, 0, 73915, 0, 43593, 0, 43591, + 43061, 0, 0, 43589, 43584, 0, 13113, 0, 0, 43590, 8766, 9087, 0, 0, + 41574, 78337, 0, 42900, 6376, 0, 0, 0, 0, 9854, 0, 0, 0, 0, 0, 0, 0, + 2909, 110928, 0, 0, 6529, 110930, 75004, 3751, 0, 0, 0, 1798, 0, 0, 1354, + 0, 13152, 6557, 12430, 0, 94098, 0, 0, 0, 68123, 128097, 0, 0, 0, 71264, + 123559, 11082, 0, 65677, 8682, 42054, 92595, 42045, 9804, 0, 0, 3595, 0, + 0, 119498, 0, 42399, 0, 0, 0, 65541, 0, 7324, 0, 0, 0, 8797, 77895, 0, + 64888, 7167, 2356, 95, 110810, 0, 0, 42286, 0, 0, 69999, 0, 120877, 0, 0, + 42324, 129359, 0, 0, 43492, 0, 43406, 0, 0, 0, 0, 0, 43400, 0, 0, 71720, + 0, 66435, 0, 0, 3201, 514, 74502, 0, 43396, 0, 64493, 0, 43404, 11218, 0, + 0, 43398, 0, 0, 41341, 129485, 6564, 1463, 41342, 0, 5293, 0, 0, 3733, 0, + 0, 41344, 0, 0, 0, 0, 41346, 0, 69747, 0, 0, 0, 0, 0, 0, 0, 983764, 0, 0, + 0, 65272, 0, 0, 1270, 1132, 0, 0, 0, 66655, 0, 0, 74314, 64761, 0, + 110853, 8510, 0, 129600, 0, 0, 0, 0, 0, 0, 69692, 0, 0, 42383, 69690, 0, + 69700, 13141, 0, 92465, 0, 0, 0, 41566, 0, 0, 129334, 127171, 0, 0, 0, 0, + 0, 0, 0, 6308, 0, 0, 2611, 0, 66881, 0, 65063, 0, 0, 0, 0, 4484, 8747, + 110597, 128369, 0, 0, 0, 0, 0, 0, 12902, 0, 0, 7299, 0, 0, 12107, 7100, + 10905, 65010, 0, 125135, 66018, 9284, 0, 0, 0, 0, 0, 0, 0, 12010, 0, + 126093, 120949, 121032, 0, 0, 0, 0, 0, 0, 0, 0, 6618, 3562, 66365, 0, + 42234, 12648, 128039, 0, 0, 0, 41309, 9764, 41316, 0, 0, 13230, 41299, 0, + 0, 68365, 0, 0, 0, 0, 0, 0, 4153, 0, 0, 128047, 0, 0, 42889, 0, 129322, + 41578, 0, 41577, 0, 68092, 0, 6533, 0, 41570, 0, 72414, 0, 41580, 74628, + 0, 12901, 0, 0, 0, 0, 71461, 41360, 0, 0, 4743, 0, 0, 0, 0, 68398, 110781, 5890, 110779, 111103, 3739, 8695, 92514, 0, 3964, 8984, 111095, 68288, 0, 0, 70000, 111090, 111089, 67504, 3956, 82952, 111093, 6563, 111091, 41305, 0, 0, 12067, 41312, 0, 0, 0, 129708, 0, 8175, 0, 3600, 0, @@ -27036,30 +27222,30 @@ static const unsigned int code_hash[] = { 7396, 0, 0, 69788, 0, 43512, 7965, 111039, 111038, 111037, 111036, 41350, 0, 0, 0, 2294, 64501, 68034, 0, 68405, 111034, 0, 0, 111030, 111029, 71105, 111027, 0, 111033, 92200, 111031, 0, 6764, 0, 0, 111026, 111025, - 111024, 65203, 128010, 0, 0, 0, 3210, 0, 129978, 0, 0, 82958, 127970, + 72454, 65203, 128010, 0, 0, 0, 3210, 0, 129978, 0, 0, 82958, 127970, 82957, 0, 68875, 10043, 71979, 1186, 41571, 0, 5209, 9464, 82960, 66657, 5207, 65062, 5213, 0, 0, 41348, 41568, 128803, 3253, 111045, 111044, 74067, 111042, 111049, 5596, 111047, 111046, 0, 64887, 0, 5217, 111041, 72252, 0, 0, 0, 0, 2635, 92760, 0, 0, 0, 92742, 0, 113672, 0, 0, 0, 2258, 67081, 0, 67083, 0, 0, 0, 5784, 0, 0, 0, 0, 4011, 0, 0, 0, 0, 4254, 0, 111054, 5600, 111052, 111051, 10447, 5598, 1207, 111055, 0, 3501, 42582, - 0, 111050, 0, 1124, 5597, 983498, 983499, 9321, 129464, 75040, 983495, 0, - 1719, 68356, 68354, 9671, 1125, 2721, 0, 129876, 983501, 7631, 5488, + 0, 111050, 0, 1124, 5597, 983501, 78908, 9321, 129464, 75040, 983498, 0, + 1719, 68356, 68354, 9671, 1125, 2721, 0, 129876, 983504, 7631, 5488, 111082, 0, 0, 5491, 111086, 8937, 0, 3236, 74187, 5490, 0, 5489, 8522, 68358, 111069, 6300, 111067, 111066, 0, 0, 111071, 111070, 0, 9875, 7593, 111065, 0, 0, 43182, 0, 68379, 3311, 111058, 111057, 3746, 11016, 65752, 111061, 0, 43423, 68775, 0, 111056, 72225, 0, 0, 127120, 0, 2232, 0, 0, - 0, 0, 0, 126555, 0, 0, 8656, 0, 128358, 0, 0, 983487, 983488, 917563, - 983486, 983483, 983484, 0, 0, 0, 129669, 0, 111183, 128043, 983492, 1036, - 983490, 111075, 1723, 111073, 111072, 111079, 41579, 111077, 111076, - 10705, 0, 983482, 74486, 71693, 740, 983478, 983479, 129645, 0, 0, 74846, + 0, 0, 0, 126555, 0, 0, 8656, 0, 128358, 0, 0, 983490, 983491, 917563, + 983489, 983486, 983487, 0, 0, 0, 129669, 0, 111183, 128043, 983495, 1036, + 983493, 111075, 1723, 111073, 111072, 111079, 41579, 111077, 111076, + 10705, 0, 983485, 74486, 71693, 740, 983481, 983482, 129645, 0, 0, 74846, 92255, 0, 0, 0, 0, 0, 10438, 74487, 73798, 13285, 0, 0, 0, 5690, 0, 93992, 0, 0, 13095, 0, 127857, 121419, 7321, 121203, 13254, 70176, 75070, 0, 0, 0, 0, 127845, 3247, 317, 0, 0, 0, 0, 917543, 0, 10173, 0, 0, 0, 0, 0, 5223, 0, 0, 119564, 5226, 0, 94044, 5880, 94065, 7758, 0, 0, 5224, - 5487, 94041, 5692, 41725, 983464, 0, 5695, 41711, 0, 43171, 0, 94049, - 5691, 983469, 866, 1488, 983468, 983454, 65665, 94036, 983453, 74797, 0, - 0, 11039, 983462, 11145, 71211, 983461, 983458, 983459, 983456, 983457, + 5487, 94041, 5692, 41725, 983467, 0, 5695, 41711, 0, 43171, 0, 94049, + 5691, 983472, 866, 1488, 983471, 983457, 65665, 94036, 983456, 74797, 0, + 0, 11039, 983465, 11145, 71211, 983464, 983461, 983462, 983459, 983460, 42492, 43402, 125208, 3302, 0, 72842, 43153, 0, 0, 120885, 121300, 0, 7856, 8690, 0, 73076, 110880, 0, 0, 73091, 0, 69925, 120635, 65153, 0, 0, 0, 0, 0, 0, 4540, 0, 0, 0, 0, 11844, 121209, 8863, 0, 75061, 71978, 6389, @@ -27067,7 +27253,7 @@ static const unsigned int code_hash[] = { 9648, 111123, 71170, 10270, 10286, 10318, 10382, 43529, 0, 0, 0, 0, 0, 70110, 43835, 119520, 70111, 119360, 118815, 127084, 127083, 8767, 0, 128437, 41281, 0, 5201, 0, 6215, 67072, 6214, 13101, 0, 0, 65268, 67073, - 0, 0, 127976, 72995, 127073, 10511, 42075, 0, 127071, 129509, 0, 67115, + 0, 0, 127976, 72995, 127073, 10511, 42075, 0, 73475, 129509, 0, 67115, 127069, 111293, 127068, 0, 127067, 0, 74845, 0, 42071, 43156, 0, 0, 0, 0, 7954, 0, 0, 0, 8485, 4671, 0, 69513, 4740, 0, 0, 42618, 78294, 3064, 6212, 0, 0, 0, 9554, 0, 83044, 0, 126598, 0, 78291, 6159, 6213, 12885, 0, @@ -27085,14 +27271,14 @@ static const unsigned int code_hash[] = { 125136, 128583, 0, 7022, 0, 4739, 0, 5802, 9816, 8615, 0, 0, 491, 65837, 0, 0, 128644, 0, 8426, 11092, 9891, 0, 0, 0, 41881, 118823, 3736, 7394, 42648, 0, 68448, 9095, 7741, 12684, 41885, 0, 0, 0, 0, 5815, 0, 0, 0, - 127392, 0, 0, 41878, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120804, 0, 0, 2267, 0, - 78289, 78359, 78288, 0, 0, 78318, 65920, 0, 194819, 7057, 9408, 9409, - 9410, 9411, 9412, 9413, 9414, 9415, 9416, 9417, 9418, 9419, 9420, 9421, - 5897, 9423, 917933, 127107, 0, 127108, 917937, 127963, 8955, 9399, 9400, - 9401, 9402, 9403, 9404, 9405, 9406, 9407, 0, 128626, 42669, 73832, 78261, - 67683, 2631, 119308, 78259, 0, 78260, 3996, 0, 119307, 0, 0, 0, 0, 0, 0, - 64825, 917916, 917913, 917914, 917919, 5899, 917917, 129990, 12085, 0, - 574, 69734, 77825, 73828, 9473, 77824, 118918, 73900, 41735, 42211, 0, + 127392, 0, 0, 41878, 0, 0, 0, 0, 0, 0, 0, 0, 119503, 0, 120804, 0, 0, + 2267, 0, 78289, 78359, 78288, 0, 0, 78318, 65920, 0, 194819, 7057, 9408, + 9409, 9410, 9411, 9412, 9413, 9414, 9415, 9416, 9417, 9418, 9419, 9420, + 9421, 5897, 9423, 917933, 127107, 0, 127108, 917937, 127963, 8955, 9399, + 9400, 9401, 9402, 9403, 9404, 9405, 9406, 9407, 0, 128626, 42669, 73832, + 78261, 67683, 2631, 119308, 78259, 0, 78260, 3996, 0, 119307, 0, 0, 0, 0, + 0, 0, 64825, 917916, 917913, 917914, 917919, 5899, 917917, 129990, 12085, + 0, 574, 69734, 77825, 73828, 9473, 77824, 118918, 73900, 41735, 42211, 0, 4190, 77834, 77835, 77830, 77833, 3616, 77828, 77837, 77838, 7708, 77836, 2228, 113765, 0, 0, 4191, 42968, 77844, 73800, 77842, 77843, 77839, 77840, 0, 78311, 83375, 0, 0, 10415, 74102, 0, 5896, 0, 10351, 67151, 0, @@ -27115,45 +27301,45 @@ static const unsigned int code_hash[] = { 0, 101166, 82976, 0, 0, 67812, 0, 101163, 0, 42572, 0, 128300, 119146, 1963, 11622, 0, 43237, 82981, 7550, 67100, 5903, 82984, 78009, 129750, 9662, 0, 128391, 0, 0, 0, 0, 11013, 0, 0, 0, 128433, 67090, 0, 0, 0, 0, - 0, 11568, 983704, 43367, 0, 0, 7852, 0, 0, 0, 0, 0, 194676, 0, 194675, 0, - 0, 416, 129668, 0, 73834, 0, 68921, 10984, 0, 0, 101175, 129838, 101182, - 0, 127013, 92423, 0, 983258, 121199, 0, 0, 12540, 0, 0, 0, 0, 11445, - 101168, 2112, 0, 0, 0, 1021, 0, 9507, 10210, 78005, 8023, 93963, 78006, - 78001, 43181, 78003, 9532, 119094, 0, 0, 0, 0, 0, 1885, 43268, 129802, - 129798, 120542, 121153, 392, 7894, 4391, 129810, 8221, 119597, 77999, - 77998, 0, 0, 0, 92967, 0, 3558, 0, 3913, 70429, 121376, 0, 0, 1265, 0, - 6309, 0, 12969, 0, 101151, 0, 101146, 0, 101139, 0, 41864, 0, 0, 74294, - 0, 167, 0, 917584, 0, 93983, 72354, 68477, 0, 0, 917594, 0, 2493, 129827, - 0, 129804, 0, 917570, 0, 0, 0, 406, 917592, 0, 0, 0, 0, 0, 0, 0, 127161, - 0, 128597, 0, 0, 0, 3421, 10561, 0, 8365, 917581, 0, 127569, 120787, - 128669, 0, 0, 0, 0, 7834, 0, 0, 101154, 10298, 6624, 4908, 0, 1639, - 120842, 0, 0, 6327, 6724, 0, 0, 0, 69910, 4817, 0, 0, 0, 68059, 0, 11022, - 0, 0, 0, 118888, 0, 0, 7548, 64794, 0, 12291, 983165, 0, 0, 0, 0, 0, 0, - 1134, 1838, 0, 2057, 0, 0, 0, 0, 0, 0, 5206, 0, 0, 42523, 0, 0, 0, 0, - 65550, 8570, 4816, 0, 127926, 0, 4821, 0, 0, 0, 4818, 125257, 119974, - 119977, 0, 0, 119970, 119973, 0, 119983, 119982, 67470, 119984, 119979, - 119978, 0, 119980, 119670, 129297, 0, 11284, 119987, 70097, 65155, - 119988, 0, 9363, 0, 0, 0, 5900, 93990, 7889, 2722, 128770, 0, 0, 0, 0, - 2282, 0, 0, 0, 68093, 0, 0, 0, 0, 0, 70150, 118628, 0, 0, 0, 129651, - 70146, 983079, 119967, 71330, 70148, 0, 0, 94006, 70144, 119964, 110677, - 110678, 110675, 110676, 0, 110674, 4226, 0, 123165, 5732, 71327, 0, 0, - 65119, 0, 0, 92971, 64770, 0, 0, 6093, 0, 0, 1395, 0, 0, 0, 121179, 786, - 0, 43174, 64340, 0, 125269, 0, 983662, 125138, 10132, 0, 0, 0, 0, 0, - 93956, 0, 68444, 0, 92437, 123143, 0, 0, 92656, 0, 0, 0, 1399, 121463, 0, - 121465, 121464, 120808, 241, 121469, 4907, 0, 0, 0, 0, 0, 0, 0, 0, - 127904, 0, 0, 42780, 0, 0, 0, 4217, 0, 0, 0, 0, 72158, 0, 0, 43099, 3965, - 0, 0, 0, 13300, 0, 0, 43057, 0, 0, 0, 0, 0, 65372, 0, 6410, 126073, + 0, 11568, 983704, 43367, 0, 0, 7852, 119496, 0, 0, 0, 0, 194676, 0, + 194675, 0, 0, 416, 129668, 0, 73834, 0, 68921, 10984, 0, 0, 101175, + 129838, 101182, 0, 127013, 92423, 0, 983261, 121199, 0, 0, 12540, 0, + 983220, 0, 0, 11445, 101168, 2112, 0, 0, 0, 1021, 0, 9507, 10210, 78005, + 8023, 93963, 78006, 78001, 43181, 78003, 9532, 119094, 0, 0, 0, 0, 0, + 1885, 43268, 129802, 129798, 120542, 121153, 392, 7894, 4391, 129810, + 8221, 119597, 77999, 77998, 0, 0, 0, 92967, 0, 3558, 0, 3913, 70429, + 121376, 0, 0, 1265, 0, 6309, 0, 12969, 0, 101151, 0, 101146, 0, 101139, + 0, 41864, 0, 0, 74294, 0, 167, 0, 917584, 0, 93983, 72354, 68477, 0, 0, + 917594, 0, 2493, 129827, 0, 129804, 0, 917570, 917593, 0, 0, 406, 917592, + 0, 0, 0, 0, 0, 0, 0, 127161, 0, 128597, 0, 0, 0, 3421, 10561, 0, 8365, + 917581, 0, 127569, 120787, 128669, 0, 0, 0, 0, 7834, 0, 0, 101154, 10298, + 6624, 4908, 0, 1639, 120842, 0, 0, 6327, 6724, 0, 0, 0, 69910, 4817, 0, + 0, 0, 68059, 0, 11022, 0, 0, 0, 118888, 0, 0, 7548, 64794, 0, 12291, + 983166, 0, 0, 0, 0, 0, 0, 1134, 1838, 0, 2057, 0, 0, 0, 0, 0, 0, 5206, 0, + 0, 42523, 0, 0, 0, 0, 65550, 8570, 4816, 0, 127926, 0, 4821, 0, 0, 0, + 4818, 125257, 119974, 119977, 0, 0, 119970, 119973, 0, 119983, 119982, + 67470, 119984, 119979, 119978, 0, 119980, 119670, 129297, 0, 11284, + 119987, 70097, 65155, 119988, 0, 9363, 0, 0, 0, 5900, 93990, 7889, 2722, + 128770, 0, 0, 0, 0, 2282, 0, 0, 0, 68093, 0, 0, 0, 0, 0, 70150, 118628, + 0, 0, 0, 129651, 70146, 983079, 119967, 71330, 70148, 0, 0, 94006, 70144, + 119964, 110677, 110678, 110675, 110676, 0, 110674, 4226, 0, 123165, 5732, + 71327, 0, 0, 65119, 0, 0, 92971, 64770, 0, 0, 6093, 0, 0, 1395, 0, 0, 0, + 121179, 786, 0, 43174, 64340, 0, 125269, 0, 983662, 125138, 10132, 0, 0, + 0, 0, 0, 93956, 0, 68444, 0, 92437, 123143, 0, 0, 92656, 0, 0, 0, 1399, + 121463, 0, 121465, 121464, 120808, 241, 121469, 4907, 0, 0, 0, 0, 0, 0, + 0, 0, 127904, 0, 0, 42780, 0, 0, 0, 4217, 0, 0, 0, 0, 72158, 0, 0, 43099, + 3965, 0, 0, 0, 13300, 0, 0, 43057, 0, 0, 0, 0, 0, 65372, 0, 6410, 126073, 125252, 70468, 0, 0, 0, 119558, 0, 0, 0, 0, 0, 0, 43188, 2626, 7762, 0, 0, 0, 127183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67726, 0, 126993, 1542, 0, 0, 92550, 0, 0, 74311, 0, 0, 10181, 2150, 0, 0, 0, 0, 124921, 68053, 6029, 72852, 0, 0, 0, 0, 8993, 0, 0, 0, 93968, 606, 118664, 0, 0, 0, 4311, 0, 6027, 126615, 4322, 0, 65207, 0, 2184, 983920, 0, 0, 2735, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 70806, 0, 0, 0, 92783, 92844, 0, 65817, 55288, 127934, - 66564, 8530, 0, 7709, 0, 121202, 66560, 128528, 917595, 12876, 66561, 0, - 121430, 983957, 7789, 5855, 809, 0, 0, 72853, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 64386, 0, 74909, 64845, 120607, 66416, 83360, 6532, 0, 0, 0, 0, - 128224, 0, 0, 0, 0, 43091, 92287, 0, 0, 129312, 0, 0, 0, 11361, 0, 0, - 8153, 128105, 0, 10741, 0, 0, 0, 0, 0, 64706, 917922, 0, 69505, 78870, + 0, 0, 0, 0, 0, 0, 70806, 0, 73547, 0, 92783, 92844, 0, 65817, 55288, + 127934, 66564, 8530, 0, 7709, 0, 121202, 66560, 128528, 917595, 12876, + 66561, 0, 121430, 983957, 7789, 5855, 809, 0, 0, 72853, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 64386, 0, 74909, 64845, 120607, 66416, 83360, 6532, 0, 0, + 0, 0, 128224, 0, 0, 0, 0, 43091, 92287, 0, 0, 129312, 0, 0, 0, 11361, 0, + 0, 8153, 128105, 0, 10741, 0, 0, 0, 0, 0, 64706, 917922, 0, 69505, 78870, 9466, 78866, 9824, 0, 0, 0, 120977, 915, 0, 0, 43865, 0, 0, 0, 67131, 70096, 67137, 0, 129614, 73648, 6730, 78862, 68161, 0, 78861, 126542, 0, 0, 94010, 118655, 0, 0, 66043, 0, 0, 43107, 0, 0, 92343, 0, 73879, 0, 0, @@ -27163,7 +27349,7 @@ static const unsigned int code_hash[] = { 0, 128273, 0, 0, 7379, 64581, 5386, 0, 0, 10633, 72316, 64488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 124956, 71307, 0, 0, 0, 0, 0, 92370, 0, 0, 0, 0, 0, 71314, 1801, 0, 0, 120867, 0, 0, 77888, 2085, 702, 77887, 77884, 77885, - 13074, 77883, 66299, 0, 0, 12106, 0, 0, 1755, 0, 77897, 77898, 1163, + 13074, 77883, 66299, 0, 0, 12106, 78905, 0, 1755, 0, 77897, 77898, 1163, 3102, 77893, 77894, 0, 0, 0, 0, 69227, 0, 77901, 77902, 77899, 77900, 65171, 0, 0, 0, 70157, 0, 0, 0, 64846, 2908, 0, 11177, 64902, 64950, 0, 128740, 66906, 124959, 70499, 0, 0, 0, 64352, 0, 125031, 1007, 0, 9199, @@ -27183,70 +27369,71 @@ static const unsigned int code_hash[] = { 127233, 0, 0, 0, 92345, 68254, 983661, 77991, 0, 2724, 0, 0, 12313, 110619, 515, 119947, 119944, 119945, 119942, 119943, 119940, 119941, 119938, 8606, 4046, 4589, 4521, 0, 9141, 0, 0, 2741, 0, 0, 1370, 0, 0, 0, - 0, 0, 0, 66880, 0, 66003, 0, 64440, 0, 0, 69458, 0, 11593, 68669, 68666, - 68660, 0, 0, 2744, 72285, 68638, 0, 814, 0, 119962, 119963, 119960, - 119961, 101106, 43029, 119956, 11623, 119954, 11955, 119952, 119953, - 41986, 119951, 0, 120497, 4847, 110975, 0, 0, 0, 0, 1581, 64920, 93830, - 12954, 963, 110973, 110972, 110971, 110969, 5278, 110967, 68621, 92222, - 983451, 68625, 983449, 68617, 110960, 0, 101459, 101487, 110964, 110963, - 110962, 0, 0, 101464, 101483, 101463, 983440, 983437, 92648, 127379, 0, - 65137, 6483, 65392, 0, 4213, 129649, 41303, 0, 0, 0, 41306, 129751, 2698, - 0, 0, 0, 68396, 0, 41304, 824, 0, 78011, 72315, 78894, 74827, 78892, - 64804, 9820, 119820, 110985, 110976, 0, 6739, 0, 5481, 3490, 110978, - 110977, 71706, 69947, 67702, 9124, 12688, 119833, 101496, 0, 101495, - 119821, 119824, 67480, 42575, 101474, 101478, 119827, 101481, 101476, - 71087, 68658, 119946, 8025, 68630, 101490, 68675, 92445, 71097, 69613, 0, - 0, 0, 0, 983432, 2745, 11797, 110990, 983428, 9202, 983426, 983427, 0, 0, - 0, 10525, 5436, 74584, 110987, 110986, 121506, 43080, 121508, 121507, - 983417, 6246, 119958, 10921, 9723, 6777, 6776, 6775, 0, 0, 70287, 92384, - 0, 8669, 0, 0, 65093, 0, 78881, 2716, 0, 0, 11252, 101475, 68369, 0, - 11060, 12985, 2711, 78872, 78027, 78026, 7992, 0, 0, 42938, 78033, 78032, - 78877, 70724, 78029, 78028, 78031, 78030, 64535, 110998, 10130, 110996, - 0, 0, 111001, 111000, 127914, 983414, 78014, 5713, 110995, 7570, 110993, - 110992, 0, 11190, 129700, 9026, 0, 74864, 7547, 78891, 0, 10008, 10222, - 0, 129543, 9744, 0, 68809, 983410, 119656, 983408, 94070, 983406, 983407, - 983404, 9045, 78888, 4225, 78886, 78887, 68757, 78885, 78882, 78883, - 983399, 983400, 8405, 983398, 10423, 10359, 983393, 983394, 0, 129149, - 4215, 9789, 0, 4321, 12309, 983402, 41313, 0, 5368, 66886, 0, 0, 5366, 0, - 5372, 101482, 67512, 0, 7720, 7390, 2696, 0, 0, 8268, 0, 1790, 0, 0, - 118977, 0, 0, 0, 5376, 1835, 72313, 78704, 128089, 0, 0, 68655, 1180, 0, - 0, 0, 0, 119274, 0, 0, 9122, 118584, 11928, 0, 65283, 0, 101449, 5971, - 101448, 43500, 1268, 65097, 983219, 0, 101445, 0, 1427, 128440, 0, 5970, - 3431, 72299, 101439, 101435, 983386, 983387, 983384, 2738, 125066, 10455, - 0, 74026, 0, 4222, 6240, 0, 119013, 983391, 68377, 6248, 983375, 67815, - 983373, 917907, 92582, 0, 101453, 125215, 0, 2728, 65549, 64563, 101428, - 101425, 101429, 128145, 0, 10713, 7166, 119559, 2622, 101450, 0, 0, 0, - 8954, 0, 94008, 2632, 42617, 10108, 1011, 42852, 12080, 2709, 0, 5716, 0, - 0, 0, 0, 127100, 69378, 0, 9515, 127098, 66465, 6451, 0, 127097, 8918, - 983556, 0, 0, 19950, 0, 0, 0, 44003, 0, 64735, 0, 0, 0, 0, 983497, 74022, - 0, 128795, 68643, 67410, 0, 5721, 0, 0, 0, 121074, 11267, 983366, 66464, - 5720, 983365, 0, 4219, 5718, 8696, 5717, 122651, 983372, 983897, 983370, - 541, 983368, 983369, 119948, 119089, 68389, 983354, 119949, 56, 4216, - 10577, 0, 0, 77849, 69620, 983359, 983360, 66899, 983358, 0, 0, 67628, 0, - 0, 7086, 0, 67998, 67621, 0, 2734, 69616, 0, 67627, 118937, 0, 67625, 0, - 0, 0, 42593, 0, 128217, 0, 0, 119939, 0, 68180, 0, 0, 71104, 7442, 43665, - 359, 41253, 68392, 6239, 120599, 41256, 0, 67740, 111023, 111022, 111021, - 9346, 69660, 41254, 0, 43291, 78002, 0, 67491, 124993, 93841, 0, 0, 0, - 4368, 983502, 0, 68137, 0, 0, 41024, 0, 0, 121359, 121420, 0, 0, 0, 4223, - 0, 8574, 83502, 0, 0, 0, 118576, 0, 92718, 983636, 70432, 128323, 68382, - 0, 0, 0, 0, 0, 4144, 0, 83193, 6245, 0, 2732, 92644, 0, 0, 64558, 83501, - 0, 0, 0, 128005, 0, 0, 129652, 983148, 3097, 0, 0, 77996, 0, 0, 10863, - 111020, 111019, 111018, 0, 111015, 111014, 111013, 111012, 118964, 0, - 10216, 64293, 0, 0, 69393, 128331, 12325, 111010, 8717, 111008, 101413, - 0, 101380, 0, 8700, 0, 101382, 68363, 10426, 0, 71091, 10362, 0, 1715, - 101378, 0, 64918, 101409, 43278, 42635, 0, 0, 65275, 0, 0, 101319, 0, - 69746, 1607, 466, 118949, 0, 0, 127918, 6243, 983901, 1350, 74195, 64420, - 1993, 5362, 10666, 2708, 92471, 0, 13143, 234, 3199, 0, 41268, 6334, - 2173, 0, 0, 73750, 0, 73762, 10458, 0, 8576, 127136, 0, 2704, 64953, 0, - 64832, 8322, 0, 3132, 0, 2694, 0, 0, 2439, 65104, 69804, 0, 303, 74625, - 92622, 0, 2437, 0, 9817, 4844, 0, 0, 0, 0, 0, 121120, 43292, 0, 2441, 0, - 0, 0, 0, 0, 2451, 2714, 0, 0, 43379, 127984, 74541, 753, 5849, 0, 43089, - 0, 0, 119534, 72380, 0, 0, 0, 2726, 3107, 0, 0, 64937, 0, 78841, 1408, 0, - 4607, 101299, 181, 0, 67728, 9539, 0, 0, 65201, 121121, 92973, 64185, - 4142, 64183, 0, 0, 0, 9706, 64178, 64177, 64176, 0, 64182, 64181, 64180, - 64179, 11401, 125124, 0, 1822, 0, 128581, 68055, 3865, 122918, 0, 10500, - 129602, 119024, 0, 110732, 9830, 0, 0, 0, 65131, 0, 0, 0, 0, 74608, 7038, - 0, 9599, 8748, 0, 0, 9557, 0, 0, 0, 11494, 0, 0, 10865, 0, 43279, 64186, + 0, 0, 0, 66880, 0, 66003, 0, 64440, 0, 129943, 69458, 0, 11593, 68669, + 68666, 68660, 0, 0, 2744, 72285, 68638, 0, 814, 0, 119962, 119963, + 119960, 119961, 101106, 43029, 119956, 11623, 119954, 11955, 119952, + 119953, 41986, 119951, 0, 120497, 4847, 110975, 0, 0, 0, 0, 1581, 64920, + 93830, 12954, 963, 110973, 110972, 110971, 110969, 5278, 110967, 68621, + 92222, 983454, 68625, 983452, 68617, 110960, 0, 101459, 101487, 110964, + 110963, 110962, 0, 0, 101464, 101483, 101463, 983443, 983440, 92648, + 127379, 0, 65137, 6483, 65392, 0, 4213, 129649, 41303, 0, 0, 0, 41306, + 129751, 2698, 0, 0, 0, 68396, 0, 41304, 824, 0, 78011, 72315, 78894, + 74827, 78892, 64804, 9820, 119820, 110985, 110976, 0, 6739, 0, 5481, + 3490, 110978, 110977, 71706, 69947, 67702, 9124, 12688, 119833, 101496, + 0, 101495, 119821, 119824, 67480, 42575, 101474, 101478, 119827, 101481, + 101476, 71087, 68658, 119946, 8025, 68630, 101490, 68675, 92445, 71097, + 69613, 0, 0, 0, 0, 983435, 2745, 11797, 110990, 983431, 9202, 983429, + 983430, 0, 0, 0, 10525, 5436, 74584, 110987, 110986, 121506, 43080, + 121508, 121507, 983420, 6246, 119958, 10921, 9723, 6777, 6776, 6775, 0, + 0, 70287, 92384, 0, 8669, 0, 0, 65093, 0, 78881, 2716, 0, 0, 11252, + 101475, 68369, 0, 11060, 12985, 2711, 78872, 78027, 78026, 7992, 0, 0, + 42938, 78033, 78032, 78877, 70724, 78029, 78028, 78031, 78030, 64535, + 110998, 10130, 110996, 0, 0, 111001, 111000, 127914, 983417, 78014, 5713, + 110995, 7570, 110993, 110992, 0, 11190, 129700, 9026, 0, 74864, 7547, + 78891, 0, 10008, 10222, 0, 129543, 9744, 0, 68809, 983413, 119656, + 983411, 94070, 983409, 983410, 983407, 9045, 78888, 4225, 78886, 78887, + 68757, 78885, 78882, 78883, 983402, 983403, 8405, 983401, 10423, 10359, + 983396, 983397, 0, 129149, 4215, 9789, 0, 4321, 12309, 983405, 41313, 0, + 5368, 66886, 0, 0, 5366, 0, 5372, 101482, 67512, 0, 7720, 7390, 2696, 0, + 0, 8268, 0, 1790, 0, 0, 118977, 0, 0, 0, 5376, 1835, 72313, 78704, + 128089, 0, 0, 68655, 1180, 0, 0, 0, 0, 119274, 0, 0, 9122, 118584, 11928, + 0, 65283, 0, 101449, 5971, 101448, 43500, 1268, 65097, 983222, 0, 101445, + 0, 1427, 128440, 0, 5970, 3431, 72299, 101439, 101435, 983389, 983390, + 983387, 2738, 125066, 10455, 0, 74026, 0, 4222, 6240, 0, 119013, 983394, + 68377, 6248, 983378, 67815, 983376, 917907, 92582, 0, 101453, 125215, 0, + 2728, 65549, 64563, 101428, 101425, 101429, 128145, 0, 10713, 7166, + 119559, 2622, 101450, 0, 0, 0, 8954, 0, 94008, 2632, 42617, 10108, 1011, + 42852, 12080, 2709, 0, 5716, 0, 0, 0, 0, 127100, 69378, 0, 9515, 127098, + 66465, 6451, 0, 127097, 8918, 983556, 0, 0, 19950, 0, 0, 0, 44003, 0, + 64735, 0, 0, 0, 0, 983500, 74022, 0, 128795, 68643, 67410, 0, 5721, 0, 0, + 0, 121074, 11267, 983369, 66464, 5720, 983368, 0, 4219, 5718, 8696, 5717, + 122651, 983375, 983897, 983373, 541, 983371, 983372, 119948, 119089, + 68389, 983357, 119949, 56, 4216, 10577, 0, 0, 77849, 69620, 983362, + 983363, 66899, 983361, 0, 0, 67628, 0, 0, 7086, 0, 67998, 67621, 0, 2734, + 69616, 0, 67627, 118937, 0, 67625, 0, 0, 0, 42593, 0, 128217, 0, 0, + 119939, 0, 68180, 0, 0, 71104, 7442, 43665, 359, 41253, 68392, 6239, + 120599, 41256, 0, 67740, 111023, 111022, 111021, 9346, 69660, 41254, 0, + 43291, 78002, 0, 67491, 124993, 93841, 0, 0, 0, 4368, 983505, 0, 68137, + 0, 0, 41024, 0, 0, 121359, 121420, 0, 0, 0, 4223, 0, 8574, 83502, 0, 0, + 0, 118576, 0, 92718, 983636, 70432, 128323, 68382, 0, 0, 0, 0, 0, 4144, + 0, 83193, 6245, 0, 2732, 92644, 0, 0, 64558, 83501, 0, 0, 0, 128005, 0, + 0, 129652, 983149, 3097, 0, 0, 77996, 0, 0, 10863, 111020, 111019, + 111018, 0, 111015, 111014, 111013, 111012, 118964, 0, 10216, 64293, 0, 0, + 69393, 128331, 12325, 111010, 8717, 111008, 101413, 0, 101380, 0, 8700, + 0, 101382, 68363, 10426, 0, 71091, 10362, 0, 1715, 101378, 0, 64918, + 101409, 43278, 42635, 0, 0, 65275, 0, 0, 101319, 0, 69746, 1607, 466, + 118949, 0, 0, 127918, 6243, 983901, 1350, 74195, 64420, 1993, 5362, + 10666, 2708, 92471, 0, 13143, 234, 3199, 0, 41268, 6334, 2173, 0, 0, + 73750, 0, 73762, 10458, 0, 8576, 127136, 0, 2704, 64953, 0, 64832, 8322, + 0, 3132, 0, 2694, 0, 0, 2439, 65104, 69804, 0, 303, 74625, 92622, 0, + 2437, 0, 9817, 4844, 0, 0, 0, 0, 0, 121120, 43292, 0, 2441, 0, 0, 0, 0, + 0, 2451, 2714, 0, 0, 43379, 127984, 74541, 753, 5849, 0, 43089, 0, 0, + 119534, 72380, 0, 0, 0, 2726, 3107, 0, 0, 64937, 0, 78841, 1408, 0, 4607, + 101299, 181, 0, 67728, 9539, 0, 0, 65201, 121121, 92973, 64185, 4142, + 64183, 0, 0, 0, 9706, 64178, 64177, 64176, 0, 64182, 64181, 64180, 64179, + 11401, 125124, 0, 1822, 0, 128581, 68055, 3865, 122918, 0, 10500, 129602, + 119024, 0, 110732, 9830, 0, 0, 0, 65131, 0, 0, 0, 0, 74608, 7038, 0, + 9599, 8748, 0, 0, 9557, 0, 0, 0, 11494, 0, 0, 10865, 0, 43279, 64186, 68521, 0, 64191, 64190, 8898, 64188, 129153, 41030, 78836, 0, 0, 78820, 126100, 0, 78805, 78806, 78801, 78802, 6745, 78800, 0, 0, 0, 110866, 0, 0, 73679, 67838, 41039, 78809, 128162, 0, 129893, 0, 110869, 127045, @@ -27265,78 +27452,79 @@ static const unsigned int code_hash[] = { 0, 0, 0, 83484, 83485, 83486, 83487, 83480, 8355, 7854, 83483, 954, 64927, 0, 41045, 0, 41438, 0, 0, 10711, 0, 0, 0, 0, 64774, 13309, 10947, 66727, 101426, 0, 0, 66795, 0, 0, 0, 0, 0, 0, 0, 120634, 69228, 0, 0, 0, - 0, 0, 0, 3060, 83478, 9986, 0, 83473, 83474, 11698, 77880, 83469, 9916, - 11701, 83472, 42586, 0, 8320, 0, 119095, 0, 0, 1477, 43289, 0, 74358, - 10884, 69446, 9908, 0, 0, 0, 3414, 74304, 0, 0, 0, 0, 2110, 0, 68306, 0, - 74532, 0, 129865, 0, 0, 7164, 0, 0, 0, 11950, 5392, 42248, 65129, 68656, - 5397, 129579, 0, 68136, 0, 0, 5395, 72870, 5393, 354, 68615, 0, 0, 0, 0, - 0, 126236, 0, 0, 626, 0, 5895, 0, 0, 5780, 0, 66407, 10220, 0, 71121, - 43297, 0, 0, 11468, 64436, 0, 0, 0, 73818, 3918, 0, 3797, 72786, 0, 0, - 4140, 0, 71254, 0, 9030, 813, 0, 68131, 4146, 119957, 5360, 0, 129498, 0, - 0, 6249, 0, 0, 0, 0, 0, 73092, 0, 4911, 988, 0, 73125, 0, 42948, 0, 0, 0, - 0, 74972, 0, 0, 0, 9825, 0, 0, 12803, 126977, 11032, 67654, 6244, 0, 0, - 68662, 0, 129351, 0, 72131, 4169, 0, 0, 0, 129986, 121410, 120657, 0, 0, - 68657, 128943, 78496, 0, 0, 5898, 74540, 0, 41856, 93056, 194926, 118538, - 127373, 83424, 83425, 83426, 73736, 83420, 68870, 6448, 6835, 0, 4831, - 83418, 83419, 67731, 0, 0, 0, 0, 0, 0, 0, 78499, 0, 0, 0, 43288, 0, 0, 0, - 0, 0, 43418, 0, 0, 0, 7876, 68132, 917872, 0, 917870, 43378, 0, 0, - 120890, 5892, 43605, 0, 0, 0, 129058, 0, 0, 6251, 83409, 83410, 83411, - 83412, 126512, 0, 71092, 83408, 10114, 0, 0, 5387, 0, 0, 0, 0, 65553, - 78346, 1747, 917849, 65109, 69240, 917852, 126509, 0, 0, 0, 0, 125065, 0, - 9850, 0, 367, 1472, 917859, 6687, 0, 0, 5905, 12339, 8919, 73953, 65680, - 0, 2204, 78664, 0, 9134, 118589, 78666, 43011, 0, 126626, 0, 0, 0, 43013, - 10614, 0, 0, 83413, 66646, 83415, 83416, 0, 73881, 43012, 121127, 83293, - 54, 43009, 73885, 0, 6211, 0, 0, 83295, 68119, 43008, 10758, 0, 0, 0, 0, - 0, 70018, 0, 0, 0, 0, 12765, 0, 0, 0, 0, 126580, 0, 0, 43657, 0, 0, 0, - 983737, 0, 83405, 917843, 0, 0, 83401, 83402, 83403, 83404, 83397, 11363, - 12057, 83400, 1567, 0, 0, 83396, 0, 8957, 4139, 0, 0, 129336, 0, 0, - 12740, 0, 92195, 12761, 127793, 12759, 0, 72304, 67169, 83467, 44002, 0, - 83462, 83463, 83464, 12755, 12762, 41022, 67690, 64217, 476, 0, 983734, - 0, 64212, 41020, 1382, 64209, 64216, 64215, 64214, 64213, 0, 0, 0, 67584, - 8720, 3908, 0, 0, 0, 0, 101529, 129576, 0, 0, 3849, 92324, 94026, 9778, - 917906, 5891, 917912, 55, 917910, 917911, 0, 0, 7935, 67586, 0, 1114, - 92599, 67585, 78675, 0, 83447, 83449, 0, 0, 0, 64717, 0, 0, 0, 66884, - 6292, 65303, 0, 6452, 917886, 917887, 66249, 917885, 917890, 917891, - 917888, 719, 101446, 0, 917892, 0, 0, 0, 94083, 10868, 121333, 2349, - 5902, 917896, 6335, 101350, 917899, 917900, 0, 64369, 0, 0, 0, 69245, 0, + 0, 101430, 0, 3060, 83478, 9986, 0, 83473, 83474, 11698, 77880, 83469, + 9916, 11701, 83472, 42586, 0, 8320, 0, 119095, 0, 0, 1477, 43289, 0, + 74358, 10884, 69446, 9908, 0, 0, 0, 3414, 74304, 0, 0, 0, 0, 2110, 0, + 68306, 0, 74532, 0, 129865, 0, 0, 7164, 0, 0, 0, 11950, 5392, 42248, + 65129, 68656, 5397, 129579, 0, 68136, 0, 0, 5395, 72870, 5393, 354, + 68615, 0, 0, 0, 0, 0, 126236, 0, 0, 626, 0, 5895, 0, 0, 5780, 0, 66407, + 10220, 0, 71121, 43297, 0, 0, 11468, 64436, 0, 0, 0, 73818, 3918, 0, + 3797, 72786, 122961, 0, 4140, 0, 71254, 0, 9030, 813, 0, 68131, 4146, + 119957, 5360, 0, 129498, 0, 0, 6249, 0, 0, 0, 0, 0, 73092, 0, 4911, 988, + 0, 73125, 0, 42948, 0, 0, 0, 0, 74972, 0, 0, 0, 9825, 0, 0, 12803, + 126977, 11032, 67654, 6244, 0, 0, 68662, 0, 129351, 0, 72131, 4169, 0, 0, + 0, 129986, 121410, 120657, 0, 0, 68657, 128943, 78496, 0, 0, 5898, 74540, + 0, 41856, 93056, 194926, 118538, 127373, 83424, 83425, 83426, 73736, + 83420, 68870, 6448, 6835, 0, 4831, 83418, 83419, 67731, 0, 0, 0, 0, 0, 0, + 0, 78499, 0, 0, 0, 43288, 122931, 0, 0, 0, 0, 43418, 0, 0, 0, 7876, + 68132, 917872, 0, 917870, 43378, 0, 0, 120890, 5892, 43605, 0, 0, 0, + 129058, 0, 0, 6251, 83409, 83410, 83411, 83412, 126512, 0, 71092, 83408, + 10114, 0, 0, 5387, 0, 0, 0, 0, 65553, 78346, 1747, 917849, 65109, 69240, + 917852, 126509, 0, 0, 0, 0, 125065, 0, 9850, 0, 367, 1472, 917859, 6687, + 0, 0, 5905, 12339, 8919, 73953, 65680, 0, 2204, 78664, 0, 9134, 118589, + 78666, 43011, 0, 126626, 0, 0, 0, 43013, 10614, 0, 0, 83413, 66646, + 83415, 83416, 0, 73881, 43012, 121127, 83293, 54, 43009, 73885, 0, 6211, + 0, 0, 83295, 68119, 43008, 10758, 0, 0, 0, 0, 0, 70018, 0, 0, 0, 0, + 12765, 0, 0, 0, 0, 126580, 0, 0, 43657, 0, 0, 0, 983737, 0, 83405, + 917843, 0, 0, 83401, 83402, 83403, 83404, 83397, 11363, 12057, 83400, + 1567, 0, 0, 83396, 0, 8957, 4139, 0, 0, 129336, 0, 0, 12740, 0, 92195, + 12761, 127793, 12759, 0, 72304, 67169, 83467, 44002, 0, 83462, 83463, + 83464, 12755, 12762, 41022, 67690, 64217, 476, 0, 983734, 0, 64212, + 41020, 1382, 64209, 64216, 64215, 64214, 64213, 0, 0, 0, 67584, 8720, + 3908, 0, 0, 0, 0, 101529, 129576, 0, 0, 3849, 92324, 94026, 9778, 917906, + 5891, 917912, 55, 917910, 917911, 0, 0, 7935, 67586, 0, 1114, 92599, + 67585, 78675, 0, 83447, 83449, 0, 0, 0, 64717, 0, 0, 0, 66884, 6292, + 65303, 0, 6452, 917886, 917887, 66249, 917885, 917890, 917891, 917888, + 719, 101446, 0, 917892, 0, 0, 0, 94083, 10868, 121333, 2349, 5902, + 917896, 6335, 101350, 917899, 917900, 0, 64369, 0, 0, 0, 69245, 0, 126564, 0, 0, 128565, 0, 0, 0, 0, 0, 6454, 1229, 83457, 83458, 83450, 83451, 83452, 65100, 120508, 8224, 917873, 917874, 917879, 917880, 917877, 917878, 128929, 0, 917881, 917882, 5365, 67836, 8901, 0, 0, 129951, 0, 69257, 5925, 83436, 64330, 128400, 83431, 83432, 83433, 83434, 83427, 83428, 83429, 83430, 64928, 10543, 0, 0, 83446, 414, 0, 0, 83442, 6456, 71490, 83445, 11905, 83439, 66284, 83441, 0, 68337, 0, 83437, - 43832, 983139, 9751, 0, 128085, 11770, 0, 0, 69600, 65061, 0, 0, 0, 0, 0, + 43832, 983140, 9751, 0, 128085, 11770, 0, 0, 69600, 65061, 0, 0, 0, 0, 0, 0, 121087, 0, 0, 69924, 0, 0, 0, 69913, 0, 121387, 101513, 101504, 101512, 42038, 387, 0, 12737, 0, 0, 43368, 0, 0, 0, 0, 129713, 129449, 121295, 0, 69400, 127309, 0, 375, 0, 0, 0, 983905, 0, 0, 119202, 119203, - 0, 43120, 0, 0, 119196, 119197, 0, 4529, 119200, 119201, 119198, 119199, - 0, 0, 69698, 13150, 64492, 0, 0, 0, 0, 0, 42891, 66327, 74298, 0, 0, 0, - 2587, 42193, 0, 6455, 0, 4241, 0, 0, 0, 0, 0, 0, 0, 118821, 0, 0, 0, - 125030, 0, 128684, 129390, 6988, 5373, 0, 0, 119232, 10015, 0, 0, 0, + 124117, 43120, 0, 0, 119196, 119197, 0, 4529, 119200, 119201, 119198, + 119199, 0, 0, 69698, 13150, 64492, 0, 0, 0, 0, 0, 42891, 66327, 74298, 0, + 0, 0, 2587, 42193, 0, 6455, 0, 4241, 0, 0, 0, 0, 0, 0, 0, 118821, 0, 0, + 0, 125030, 0, 128684, 129390, 6988, 5373, 0, 0, 119232, 10015, 0, 0, 0, 68642, 0, 120855, 42040, 128827, 5779, 129841, 42037, 83282, 0, 0, 93040, 83283, 101116, 0, 101117, 6983, 0, 0, 101115, 0, 0, 0, 127323, 101111, 0, 119588, 0, 92495, 74558, 0, 68138, 70163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 11144, 0, 2551, 0, 6453, 0, 6235, 0, 0, 129081, 72886, 44020, 11826, 0, - 7780, 5369, 118958, 0, 0, 5367, 66870, 0, 0, 5377, 0, 68143, 128624, - 78245, 5218, 0, 127333, 0, 0, 129717, 0, 0, 1300, 0, 127334, 64505, 0, 0, - 119624, 1465, 0, 127316, 0, 0, 0, 101109, 0, 113694, 10729, 0, 0, 8839, - 119243, 0, 7785, 126530, 0, 0, 0, 0, 118638, 0, 0, 0, 3897, 0, 92331, - 74417, 113704, 0, 68127, 71425, 70688, 0, 0, 0, 0, 69287, 3542, 0, - 120685, 7951, 68152, 118857, 0, 92972, 0, 0, 127311, 73683, 0, 65150, + 11144, 73484, 2551, 73482, 6453, 0, 6235, 0, 0, 129081, 72886, 44020, + 11826, 0, 7780, 5369, 118958, 0, 0, 5367, 66870, 0, 0, 5377, 0, 68143, + 128624, 78245, 5218, 0, 127333, 0, 0, 129717, 0, 0, 1300, 0, 127334, + 64505, 0, 0, 119624, 1465, 0, 127316, 0, 0, 0, 101109, 0, 113694, 10729, + 0, 0, 8839, 119243, 0, 7785, 126530, 0, 0, 0, 0, 118638, 0, 0, 0, 3897, + 0, 92331, 74417, 113704, 0, 68127, 71425, 70688, 0, 0, 0, 0, 69287, 3542, + 0, 120685, 7951, 68152, 118857, 0, 92972, 0, 0, 127311, 73683, 0, 65150, 68031, 0, 0, 0, 0, 9985, 0, 127328, 0, 0, 0, 0, 10830, 0, 615, 64490, 7574, 0, 0, 0, 12909, 73698, 64559, 127332, 73951, 0, 67996, 2020, 0, 0, 0, 120701, 0, 983640, 0, 0, 0, 92991, 0, 0, 9070, 0, 68411, 11281, 42829, - 0, 1033, 0, 0, 0, 118610, 0, 65226, 0, 0, 0, 0, 0, 3450, 0, 7397, 0, 0, - 42778, 10000, 41088, 449, 0, 0, 68458, 113725, 0, 0, 10738, 69634, 0, 0, - 41085, 0, 0, 0, 12764, 0, 93058, 3596, 7322, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1033, 0, 78918, 0, 118610, 0, 65226, 0, 0, 0, 0, 0, 3450, 0, 7397, 0, + 0, 42778, 10000, 41088, 449, 0, 0, 68458, 113725, 0, 0, 10738, 69634, 0, + 0, 41085, 0, 0, 0, 12764, 0, 93058, 3596, 7322, 0, 0, 0, 0, 0, 0, 0, 0, 2092, 0, 0, 0, 121350, 10820, 0, 0, 126567, 1853, 0, 0, 93014, 0, 12770, 0, 0, 124997, 0, 0, 0, 0, 0, 129053, 4828, 1258, 0, 2006, 0, 0, 74285, 127987, 0, 120683, 122880, 983900, 983903, 8846, 128255, 0, 128091, 2650, 9182, 1961, 121399, 11525, 0, 1959, 0, 55228, 11774, 41016, 0, 0, 128054, 41017, 13109, 0, 10519, 66331, 3454, 19930, 0, 41019, 92894, 0, 0, 78362, 41021, 101566, 0, 0, 0, 0, 65531, 0, 0, 0, 0, 0, 0, 8865, 6402, 113827, - 77923, 0, 101536, 0, 7733, 0, 4998, 68493, 0, 0, 0, 4268, 101368, 0, 0, - 101555, 101579, 10881, 0, 0, 0, 0, 2014, 0, 71901, 0, 0, 195057, 0, 0, + 77923, 0, 101536, 0, 7733, 0, 4998, 68493, 0, 78930, 0, 4268, 101368, 0, + 0, 101555, 101579, 10881, 0, 0, 0, 0, 2014, 0, 71901, 0, 0, 195057, 0, 0, 78357, 65281, 0, 0, 0, 0, 0, 2015, 0, 0, 71840, 66318, 74824, 101575, 0, 101574, 101569, 0, 70061, 8094, 10135, 101551, 0, 794, 0, 0, 66335, 0, 121303, 4343, 0, 4833, 0, 0, 0, 0, 189, 12611, 0, 72215, 0, 4838, 126214, @@ -27356,143 +27544,144 @@ static const unsigned int code_hash[] = { 0, 0, 121068, 92418, 0, 0, 0, 43280, 0, 70718, 1812, 0, 73046, 0, 0, 0, 0, 0, 6054, 10697, 3169, 0, 0, 70720, 11487, 70712, 0, 0, 0, 194716, 0, 0, 41863, 0, 0, 2304, 0, 92326, 0, 42951, 0, 0, 64760, 11766, 0, 0, 0, 0, - 69236, 0, 0, 8773, 10733, 36, 0, 0, 0, 0, 0, 11074, 0, 64910, 983130, - 2009, 0, 0, 128036, 68114, 128906, 0, 0, 0, 983998, 12852, 3031, 0, 0, - 129088, 0, 66414, 0, 0, 119950, 42613, 65933, 366, 0, 9892, 0, 11754, - 101107, 83329, 65301, 44013, 83058, 67245, 10102, 0, 7739, 41026, 0, 0, - 0, 0, 0, 0, 0, 0, 78386, 129475, 71868, 113811, 13081, 10923, 129330, 0, - 68145, 0, 65861, 74083, 0, 0, 128392, 83063, 83065, 0, 70706, 0, 0, 0, - 70168, 66586, 4183, 64967, 66250, 0, 92547, 0, 0, 113685, 0, 3792, 2011, - 0, 0, 77748, 83332, 77749, 120595, 0, 68489, 41023, 77747, 0, 11659, - 7922, 12614, 2005, 8523, 0, 0, 7513, 1863, 129436, 83337, 128969, 0, - 120274, 120033, 0, 8144, 0, 73031, 77767, 127524, 120270, 42241, 8783, - 77764, 77765, 77766, 77760, 77761, 77762, 77763, 0, 10680, 0, 43293, - 68771, 0, 119164, 83320, 72003, 10187, 77742, 77743, 0, 77737, 77738, - 77739, 0, 10968, 43296, 119044, 0, 0, 101400, 0, 1005, 43826, 120030, 0, - 2870, 0, 101399, 0, 0, 983798, 0, 235, 1384, 77758, 74887, 70494, 77754, - 77755, 9796, 69895, 77750, 77751, 77752, 13186, 120407, 120250, 0, 0, 0, - 42527, 12911, 43427, 1383, 983581, 0, 0, 0, 6156, 68117, 0, 7993, 4288, - 0, 0, 13238, 13244, 0, 0, 120426, 13234, 120427, 0, 118904, 0, 11364, 0, - 1380, 65617, 120253, 120261, 13196, 13197, 120311, 120419, 9495, 0, 0, - 120418, 0, 73976, 128160, 0, 6941, 0, 13205, 13211, 5801, 0, 74271, - 120319, 0, 120302, 7670, 0, 68075, 983583, 0, 19957, 72314, 2021, 93811, - 43877, 0, 0, 0, 0, 3875, 120431, 64341, 0, 9814, 43457, 13066, 3314, - 7787, 0, 0, 0, 0, 0, 0, 64531, 129860, 0, 0, 0, 0, 0, 127138, 0, 0, 9742, - 0, 0, 10800, 77718, 8404, 0, 92592, 77714, 7089, 77716, 78545, 0, 77712, - 77713, 0, 0, 4772, 5771, 101405, 0, 9841, 8843, 0, 0, 0, 129862, 120816, - 0, 123137, 0, 77735, 0, 0, 0, 77731, 8849, 77733, 77734, 65112, 1796, - 77729, 77730, 69665, 8164, 41301, 3502, 0, 122884, 128387, 0, 983835, - 5825, 0, 0, 0, 0, 121322, 10983, 10354, 10418, 0, 2022, 0, 1409, 100789, - 0, 0, 0, 0, 1390, 0, 0, 10471, 65904, 5846, 126472, 0, 0, 0, 0, 0, 0, - 66035, 77725, 0, 77726, 77720, 77721, 67458, 3168, 67733, 0, 0, 2370, 0, - 126243, 0, 195049, 0, 0, 1836, 0, 121207, 119137, 118959, 125232, 0, 0, - 0, 2390, 3944, 0, 0, 0, 0, 69908, 125011, 0, 0, 123200, 0, 0, 8975, - 64739, 0, 0, 0, 0, 64409, 0, 0, 0, 0, 128564, 0, 0, 0, 0, 6204, 0, 0, 0, - 10911, 64954, 119003, 74809, 118903, 4267, 0, 0, 0, 0, 0, 0, 72023, 0, 0, - 0, 92887, 0, 0, 0, 0, 121125, 0, 128337, 5842, 0, 41439, 0, 0, 0, 9328, - 0, 120980, 120917, 0, 0, 2285, 0, 0, 0, 0, 118634, 64555, 0, 0, 72162, - 9541, 0, 0, 0, 41441, 0, 0, 0, 41040, 2459, 0, 0, 41041, 0, 0, 0, 0, 0, - 10450, 0, 41043, 0, 0, 43125, 0, 0, 0, 0, 0, 121008, 68436, 128040, 0, - 120649, 0, 0, 4312, 43927, 0, 0, 11923, 42227, 0, 5763, 0, 4827, 74559, - 42228, 64406, 0, 0, 129703, 433, 119620, 0, 2499, 67167, 67166, 0, 11973, - 0, 4293, 42271, 42224, 0, 0, 66322, 42226, 0, 0, 0, 74180, 0, 55277, 0, - 0, 0, 119317, 0, 74632, 0, 0, 71103, 0, 0, 0, 585, 2383, 0, 43263, 0, - 4290, 64842, 0, 68920, 0, 8511, 0, 0, 0, 119048, 2380, 126119, 0, 71704, - 2376, 0, 0, 0, 5197, 127046, 127047, 127048, 2366, 127050, 127051, 73442, - 0, 0, 0, 93835, 0, 93818, 0, 0, 74188, 113813, 0, 0, 0, 983838, 0, 0, 0, - 0, 1847, 0, 72771, 0, 42384, 0, 4227, 74158, 0, 92501, 0, 0, 42365, 0, - 128902, 0, 92821, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128563, 0, 983506, 127560, - 2754, 0, 0, 128900, 0, 127867, 119638, 0, 1711, 12984, 92365, 77776, - 6255, 77770, 77771, 77772, 77773, 0, 42063, 74184, 0, 0, 0, 0, 0, 77785, - 77786, 41035, 43274, 77781, 11256, 77783, 77784, 520, 77778, 41037, - 77780, 0, 0, 41034, 0, 983829, 64815, 0, 0, 321, 41028, 0, 0, 0, 0, 0, 0, - 0, 74191, 0, 0, 72767, 1861, 118938, 129666, 0, 0, 100770, 0, 0, 128530, - 3859, 0, 41660, 0, 70793, 0, 983756, 75014, 0, 127514, 41658, 0, 0, 0, 0, - 0, 4414, 77769, 0, 42632, 0, 0, 0, 0, 0, 1405, 0, 43220, 43341, 0, 0, 0, - 0, 0, 983733, 11199, 0, 3513, 0, 70341, 43342, 0, 65529, 0, 0, 0, 6485, - 1397, 0, 0, 92678, 118566, 0, 0, 82961, 0, 82962, 0, 74270, 43287, - 983731, 0, 0, 983738, 0, 71914, 4317, 10490, 0, 0, 194867, 74463, 128952, - 464, 41624, 0, 0, 0, 1346, 128240, 69271, 64724, 128566, 423, 0, 0, - 113748, 0, 128161, 0, 0, 120563, 64960, 0, 0, 0, 0, 9584, 77795, 77796, - 125026, 0, 9718, 77792, 42642, 77794, 64750, 77789, 77790, 0, 0, 128333, - 0, 3204, 64666, 0, 43530, 2752, 0, 0, 119594, 0, 0, 0, 0, 92371, 0, - 41983, 0, 7010, 0, 0, 41495, 92379, 5877, 42252, 93070, 8009, 3305, 0, 0, - 0, 0, 92293, 0, 0, 0, 100836, 0, 65915, 1400, 75018, 10685, 75017, 2103, - 122908, 0, 43276, 0, 11169, 0, 6481, 0, 0, 0, 100837, 72249, 100838, - 74198, 0, 9116, 0, 0, 0, 0, 0, 0, 8129, 92994, 0, 124992, 0, 11658, 0, 0, - 3452, 41031, 0, 1385, 0, 0, 0, 43340, 11123, 41033, 6493, 12758, 0, 0, - 11426, 0, 1681, 100755, 1204, 11960, 69902, 0, 69457, 0, 119322, 129483, - 7415, 43338, 0, 0, 67717, 64915, 0, 100759, 72021, 41497, 65044, 0, - 19960, 65358, 983601, 0, 0, 0, 73670, 0, 1789, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 64728, 0, 0, 0, 6506, 64312, 0, 2368, 0, 0, 0, 0, 3439, 1825, 1192, 0, - 73739, 10639, 0, 7790, 5430, 0, 0, 2848, 92981, 0, 0, 7607, 0, 0, 0, - 120658, 0, 0, 8883, 0, 728, 0, 0, 0, 0, 92931, 0, 121372, 128348, 0, - 68078, 8091, 11447, 0, 0, 126261, 983729, 0, 70003, 0, 0, 74419, 12335, - 0, 0, 3443, 0, 0, 0, 127145, 0, 0, 0, 0, 11843, 0, 9205, 8624, 128543, - 92930, 43295, 0, 65445, 0, 6277, 41672, 0, 10010, 70186, 983052, 0, 835, - 71340, 0, 0, 0, 0, 0, 5426, 4258, 0, 64891, 5424, 0, 8283, 0, 5434, 0, 0, - 0, 0, 0, 11947, 0, 1404, 0, 11432, 0, 3464, 6486, 4819, 0, 0, 570, 8095, - 0, 0, 1498, 0, 0, 0, 431, 67820, 0, 120574, 128096, 0, 0, 13096, 0, 0, - 43408, 0, 128538, 8835, 77875, 0, 0, 0, 0, 0, 0, 0, 0, 3477, 227, 10488, - 0, 382, 11418, 0, 5878, 0, 0, 0, 0, 6484, 92355, 66039, 0, 0, 0, 78717, - 0, 92662, 119665, 0, 0, 43290, 0, 0, 0, 0, 8782, 0, 0, 4323, 128649, 0, - 120903, 12094, 67499, 0, 0, 0, 92953, 3856, 120970, 0, 5872, 6495, 72306, - 0, 0, 0, 67173, 67172, 67171, 3953, 0, 0, 93063, 11994, 4339, 0, 92654, - 0, 0, 0, 0, 128804, 0, 5228, 0, 9766, 0, 92741, 0, 0, 0, 0, 68860, 0, - 1162, 0, 2671, 0, 73666, 92632, 92631, 72117, 0, 73811, 0, 194895, 0, - 68085, 0, 74331, 11424, 0, 10466, 121239, 0, 194890, 0, 4820, 0, 0, 0, - 194891, 0, 119212, 4896, 0, 4897, 42821, 64611, 0, 4438, 0, 0, 1753, - 11331, 6147, 0, 43282, 8833, 0, 0, 6504, 0, 0, 0, 118670, 0, 1413, 0, 0, - 64353, 12141, 121138, 0, 0, 43163, 0, 72880, 64789, 127094, 838, 127092, - 120697, 127090, 5014, 0, 256, 0, 0, 42443, 42739, 0, 7542, 0, 70389, 0, - 6489, 10048, 74326, 0, 66573, 0, 125271, 78712, 11761, 126078, 129603, - 41094, 0, 0, 0, 0, 92689, 8453, 0, 0, 120942, 128184, 0, 11816, 0, 0, - 2930, 93845, 0, 41098, 92771, 41093, 0, 0, 6498, 41096, 0, 0, 1238, 200, - 0, 1660, 74476, 0, 0, 74362, 0, 0, 72301, 9224, 0, 0, 0, 0, 0, 0, 0, 0, + 69236, 119171, 0, 8773, 10733, 36, 0, 0, 0, 0, 0, 11074, 0, 64910, + 983131, 2009, 0, 0, 128036, 68114, 128906, 0, 0, 0, 983998, 12852, 3031, + 0, 0, 129088, 0, 66414, 0, 0, 119950, 42613, 65933, 366, 0, 9892, 0, + 11754, 101107, 83329, 65301, 44013, 83058, 67245, 10102, 0, 7739, 41026, + 0, 0, 0, 0, 0, 0, 0, 0, 78386, 129475, 71868, 113811, 13081, 10923, + 129330, 0, 68145, 0, 65861, 74083, 0, 0, 128392, 83063, 83065, 0, 70706, + 0, 0, 0, 70168, 66586, 4183, 64967, 66250, 0, 92547, 0, 0, 113685, 0, + 3792, 2011, 0, 0, 77748, 83332, 77749, 120595, 0, 68489, 41023, 77747, 0, + 11659, 7922, 12614, 2005, 8523, 129880, 0, 7513, 1863, 129436, 83337, + 128969, 0, 120274, 120033, 0, 8144, 0, 73031, 77767, 127524, 120270, + 42241, 8783, 77764, 77765, 77766, 77760, 77761, 77762, 77763, 0, 10680, + 0, 43293, 68771, 0, 119164, 83320, 72003, 10187, 77742, 77743, 0, 77737, + 77738, 77739, 0, 10968, 43296, 119044, 0, 0, 101400, 0, 1005, 43826, + 120030, 0, 2870, 0, 101399, 0, 0, 983798, 0, 235, 1384, 77758, 74887, + 70494, 77754, 77755, 9796, 69895, 77750, 77751, 77752, 13186, 120407, + 120250, 0, 0, 0, 42527, 12911, 43427, 1383, 983581, 0, 0, 0, 6156, 68117, + 0, 7993, 4288, 0, 0, 13238, 13244, 0, 0, 120426, 13234, 120427, 0, + 118904, 0, 11364, 0, 1380, 65617, 120253, 120261, 13196, 13197, 120311, + 120419, 9495, 0, 0, 120418, 0, 73976, 128160, 0, 6941, 0, 13205, 13211, + 5801, 0, 74271, 120319, 0, 120302, 7670, 0, 68075, 983583, 0, 19957, + 72314, 2021, 93811, 43877, 0, 0, 0, 0, 3875, 120431, 64341, 0, 9814, + 43457, 13066, 3314, 7787, 0, 0, 0, 0, 0, 0, 64531, 129860, 0, 0, 0, 0, 0, + 127138, 0, 0, 9742, 0, 0, 10800, 77718, 8404, 0, 92592, 77714, 7089, + 77716, 78545, 0, 77712, 77713, 0, 0, 4772, 5771, 101405, 0, 9841, 8843, + 0, 0, 0, 129862, 120816, 0, 123137, 0, 77735, 0, 0, 0, 77731, 8849, + 77733, 77734, 65112, 1796, 77729, 77730, 69665, 8164, 41301, 3502, 0, + 122884, 128387, 0, 983835, 5825, 0, 0, 0, 0, 121322, 10983, 10354, 10418, + 0, 2022, 0, 1409, 100789, 0, 0, 0, 0, 1390, 0, 0, 10471, 65904, 5846, + 126472, 0, 0, 0, 0, 0, 0, 66035, 77725, 0, 77726, 77720, 77721, 67458, + 3168, 67733, 0, 0, 2370, 0, 126243, 0, 195049, 0, 0, 1836, 0, 121207, + 119137, 118959, 125232, 0, 0, 0, 2390, 3944, 0, 0, 0, 0, 69908, 125011, + 0, 0, 123200, 0, 0, 8975, 64739, 0, 0, 0, 0, 64409, 0, 0, 0, 0, 128564, + 0, 0, 0, 0, 6204, 0, 0, 0, 10911, 64954, 119003, 74809, 118903, 4267, 0, + 0, 0, 0, 0, 0, 72023, 0, 0, 119504, 92887, 0, 0, 0, 0, 121125, 0, 128337, + 5842, 0, 41439, 0, 0, 0, 9328, 0, 120980, 120917, 0, 0, 2285, 0, 0, 0, 0, + 118634, 64555, 0, 0, 72162, 9541, 0, 0, 0, 41441, 0, 0, 0, 41040, 2459, + 0, 0, 41041, 0, 0, 0, 0, 0, 10450, 0, 41043, 0, 0, 43125, 0, 0, 0, 0, 0, + 121008, 68436, 128040, 0, 120649, 0, 0, 4312, 43927, 0, 0, 11923, 42227, + 0, 5763, 0, 4827, 74559, 42228, 64406, 0, 0, 129703, 433, 119620, 0, + 2499, 67167, 67166, 0, 11973, 0, 4293, 42271, 42224, 0, 0, 66322, 42226, + 0, 0, 0, 74180, 0, 55277, 0, 0, 0, 119317, 0, 74632, 0, 0, 71103, 0, 0, + 0, 585, 2383, 0, 43263, 0, 4290, 64842, 0, 68920, 0, 8511, 0, 0, 0, + 119048, 2380, 126119, 0, 71704, 2376, 0, 0, 0, 5197, 127046, 127047, + 127048, 2366, 127050, 127051, 73442, 0, 0, 0, 93835, 0, 93818, 0, 0, + 74188, 113813, 0, 0, 0, 983838, 0, 0, 0, 0, 1847, 0, 72771, 0, 42384, 0, + 4227, 74158, 0, 92501, 0, 0, 42365, 0, 128902, 0, 92821, 0, 0, 0, 0, 0, + 0, 0, 0, 122934, 128563, 0, 983509, 127560, 2754, 0, 0, 128900, 0, + 127867, 119638, 0, 1711, 12984, 92365, 77776, 6255, 77770, 77771, 77772, + 77773, 0, 42063, 74184, 0, 0, 0, 0, 0, 77785, 77786, 41035, 43274, 77781, + 11256, 77783, 77784, 520, 77778, 41037, 77780, 0, 0, 41034, 0, 983829, + 64815, 0, 0, 321, 41028, 0, 0, 0, 0, 0, 0, 0, 74191, 0, 0, 72767, 1861, + 118938, 129666, 0, 0, 100770, 0, 0, 128530, 3859, 0, 41660, 0, 70793, 0, + 983756, 75014, 0, 127514, 41658, 0, 0, 0, 0, 0, 4414, 77769, 0, 42632, 0, + 0, 0, 0, 0, 1405, 0, 43220, 43341, 0, 0, 0, 0, 0, 983733, 11199, 0, 3513, + 0, 70341, 43342, 0, 65529, 0, 0, 0, 6485, 1397, 0, 0, 92678, 118566, + 124137, 0, 82961, 0, 82962, 0, 74270, 43287, 983731, 0, 0, 983738, 0, + 71914, 4317, 10490, 0, 0, 194867, 74463, 128952, 464, 41624, 0, 0, 0, + 1346, 128240, 69271, 64724, 128566, 423, 0, 0, 113748, 0, 128161, 0, 0, + 120563, 64960, 0, 0, 0, 0, 9584, 77795, 77796, 78927, 0, 9718, 77792, + 42642, 77794, 64750, 77789, 77790, 0, 0, 128333, 0, 3204, 64666, 0, + 43530, 2752, 0, 0, 119594, 0, 0, 0, 0, 92371, 0, 41983, 0, 7010, 0, 0, + 41495, 92379, 5877, 42252, 93070, 8009, 3305, 0, 0, 0, 0, 92293, 0, 0, 0, + 100836, 0, 65915, 1400, 75018, 10685, 75017, 2103, 122908, 0, 43276, 0, + 11169, 0, 6481, 0, 0, 0, 100837, 72249, 100838, 74198, 0, 9116, 0, 0, 0, + 0, 0, 0, 8129, 92994, 0, 124992, 0, 11658, 0, 0, 3452, 41031, 0, 1385, 0, + 100754, 0, 43340, 11123, 41033, 6493, 12758, 0, 0, 11426, 0, 1681, + 100755, 1204, 11960, 69902, 0, 69457, 0, 119322, 129483, 7415, 43338, 0, + 0, 67717, 64915, 0, 100759, 72021, 41497, 65044, 0, 19960, 65358, 983601, + 0, 0, 0, 73670, 0, 1789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64728, 0, 0, 0, + 6506, 64312, 0, 2368, 0, 0, 0, 0, 3439, 1825, 1192, 0, 73739, 10639, 0, + 7790, 5430, 0, 0, 2848, 92981, 0, 0, 7607, 0, 0, 0, 120658, 0, 0, 8883, + 0, 728, 0, 0, 0, 0, 92931, 0, 121372, 128348, 0, 68078, 8091, 11447, 0, + 0, 126261, 983729, 0, 70003, 0, 0, 74419, 12335, 0, 0, 3443, 0, 0, 0, + 127145, 0, 0, 0, 0, 11843, 0, 9205, 8624, 128543, 92930, 43295, 0, 65445, + 0, 6277, 41672, 0, 10010, 70186, 983052, 0, 835, 71340, 0, 0, 0, 0, 0, + 5426, 4258, 0, 64891, 5424, 0, 8283, 0, 5434, 0, 0, 0, 0, 0, 11947, 0, + 1404, 0, 11432, 0, 3464, 6486, 4819, 0, 0, 570, 8095, 0, 0, 1498, 0, 0, + 0, 431, 67820, 0, 120574, 128096, 0, 0, 13096, 0, 0, 43408, 0, 128538, + 8835, 77875, 0, 0, 122973, 0, 0, 0, 0, 0, 3477, 227, 10488, 0, 382, + 11418, 0, 5878, 0, 0, 0, 0, 6484, 92355, 66039, 0, 0, 0, 78717, 0, 92662, + 119665, 0, 0, 43290, 0, 0, 0, 0, 8782, 0, 0, 4323, 128649, 0, 120903, + 12094, 67499, 0, 0, 0, 92953, 3856, 120970, 124138, 5872, 6495, 72306, 0, + 0, 0, 67173, 67172, 67171, 3953, 0, 0, 93063, 11994, 4339, 0, 92654, 0, + 0, 0, 0, 128804, 0, 5228, 0, 9766, 0, 92741, 0, 0, 0, 0, 68860, 0, 1162, + 0, 2671, 0, 73666, 92632, 92631, 72117, 0, 73811, 0, 194895, 0, 68085, 0, + 74331, 11424, 0, 10466, 121239, 0, 194890, 0, 4820, 0, 0, 0, 194891, 0, + 119212, 4896, 0, 4897, 42821, 64611, 0, 4438, 0, 0, 1753, 11331, 6147, 0, + 43282, 8833, 0, 0, 6504, 0, 0, 0, 118670, 0, 1413, 0, 0, 64353, 12141, + 121138, 0, 0, 43163, 0, 72880, 64789, 127094, 838, 127092, 120697, + 127090, 5014, 0, 256, 0, 0, 42443, 42739, 0, 7542, 0, 70389, 0, 6489, + 10048, 74326, 0, 66573, 0, 125271, 78712, 11761, 126078, 129603, 41094, + 0, 0, 0, 0, 92689, 8453, 0, 0, 120942, 128184, 0, 11816, 0, 0, 2930, + 93845, 0, 41098, 92771, 41093, 0, 0, 6498, 41096, 0, 0, 1238, 200, 0, + 1660, 74476, 0, 0, 74362, 0, 0, 72301, 9224, 0, 0, 0, 0, 0, 0, 0, 0, 72729, 43284, 0, 72110, 67459, 13183, 0, 0, 0, 1669, 10776, 0, 0, 0, 0, 0, 1732, 4030, 0, 3963, 0, 0, 0, 6491, 0, 0, 914, 121394, 0, 0, 0, 78713, 0, 92441, 74367, 42960, 0, 0, 0, 0, 0, 0, 0, 65537, 0, 0, 43430, 5301, 0, 92618, 0, 43285, 0, 0, 125186, 0, 0, 5876, 0, 69555, 0, 0, 110713, 0, 0, - 0, 0, 0, 0, 11114, 74536, 0, 0, 0, 0, 983129, 0, 0, 0, 0, 10915, 983069, + 0, 0, 0, 0, 11114, 74536, 0, 0, 0, 0, 983130, 0, 0, 0, 0, 10915, 983069, 12007, 0, 0, 0, 0, 67655, 92604, 0, 8629, 0, 43168, 41872, 0, 0, 0, 42488, 0, 0, 0, 0, 0, 64730, 70041, 0, 122895, 0, 0, 0, 92306, 11416, 4280, 128516, 8765, 73451, 0, 1393, 0, 11157, 74386, 0, 0, 0, 0, 6683, 0, - 93832, 12144, 0, 74513, 13019, 74994, 0, 0, 0, 983269, 0, 6488, 357, 0, + 93832, 12144, 0, 74513, 13019, 74994, 0, 0, 0, 983272, 0, 6488, 357, 0, 41100, 0, 41104, 0, 41099, 0, 71320, 0, 0, 0, 4434, 0, 0, 0, 74231, 83107, 0, 194914, 0, 0, 72286, 68305, 0, 41759, 12757, 0, 0, 72769, 9790, - 7674, 0, 121095, 68209, 0, 41764, 0, 0, 72322, 2268, 0, 129845, 0, 12743, - 0, 6480, 0, 41779, 0, 66601, 0, 74490, 10986, 66602, 0, 64807, 0, 0, - 41767, 119629, 0, 0, 0, 3955, 64571, 194918, 127089, 0, 70187, 69975, - 9770, 12305, 12230, 0, 78579, 0, 0, 74752, 0, 0, 123168, 128263, 74449, + 7674, 0, 121095, 68209, 0, 41764, 0, 0, 72322, 2268, 0, 129845, 983608, + 12743, 0, 6480, 0, 41779, 0, 66601, 0, 74490, 10986, 66602, 0, 64807, 0, + 0, 41767, 119629, 0, 0, 0, 3955, 64571, 194918, 127089, 0, 70187, 69975, + 9770, 12305, 12230, 0, 73551, 0, 0, 74752, 0, 0, 123168, 128263, 74449, 0, 65948, 69611, 0, 0, 71131, 129505, 78573, 0, 0, 11116, 0, 5747, 0, 110667, 9802, 41092, 120731, 0, 0, 0, 0, 0, 120733, 41090, 0, 0, 0, - 11271, 57, 0, 0, 983241, 0, 71268, 121290, 43137, 0, 0, 110672, 126221, + 11271, 57, 0, 0, 983244, 0, 71268, 121290, 43137, 0, 0, 110672, 126221, 0, 0, 0, 0, 0, 277, 74385, 0, 0, 0, 72155, 0, 13025, 8757, 0, 0, 1574, 0, 126124, 100800, 0, 5749, 129923, 0, 42824, 0, 1039, 9801, 0, 5745, 0, - 41858, 0, 0, 120655, 0, 41862, 0, 0, 0, 436, 4771, 118635, 42501, 0, - 10573, 0, 0, 118560, 917986, 9644, 0, 0, 0, 0, 69837, 0, 0, 0, 0, 67409, - 0, 0, 0, 125204, 11939, 0, 0, 0, 0, 0, 0, 0, 3504, 0, 0, 92854, 126209, - 0, 10226, 65558, 0, 3594, 0, 0, 40, 0, 0, 0, 0, 0, 74312, 72138, 74337, - 0, 69577, 0, 0, 0, 70476, 0, 121143, 72317, 0, 0, 4304, 0, 0, 78707, 0, - 0, 0, 78597, 1348, 78596, 0, 0, 0, 70406, 92392, 0, 7599, 0, 0, 13269, 0, - 129729, 0, 100804, 0, 74494, 6097, 7568, 43980, 4982, 78592, 0, 0, 0, 0, - 13270, 0, 128090, 13138, 0, 9484, 0, 0, 71364, 0, 0, 0, 9487, 0, 92913, - 0, 71911, 78668, 73963, 6193, 0, 0, 0, 194848, 7228, 10011, 194849, - 194852, 194851, 11654, 194853, 126218, 194855, 0, 194857, 3604, 0, 0, 0, - 0, 0, 94110, 43740, 94109, 194860, 194863, 66750, 121021, 0, 94111, 6995, - 74173, 5437, 74174, 0, 8702, 7339, 129981, 0, 199, 194843, 194846, - 194845, 0, 126069, 0, 67818, 0, 7560, 0, 0, 0, 0, 6472, 65814, 0, 128983, - 70845, 0, 0, 9191, 0, 0, 0, 0, 124904, 10196, 0, 0, 6585, 0, 120750, 0, - 0, 71872, 129129, 0, 0, 78590, 72308, 11382, 129499, 0, 983670, 0, - 194833, 194832, 2165, 129540, 94020, 194836, 42727, 194838, 128252, - 78585, 43874, 119610, 0, 0, 43248, 0, 194816, 0, 194818, 128845, 194820, - 127879, 5297, 194821, 13284, 6112, 93964, 93010, 73927, 42947, 0, 65746, - 0, 0, 194827, 194826, 4342, 42839, 194831, 1677, 0, 72135, 0, 0, 0, - 11011, 66399, 0, 0, 0, 10160, 0, 0, 0, 0, 2052, 4308, 92174, 43000, - 118659, 543, 64916, 0, 0, 0, 119170, 0, 118922, 2064, 0, 43158, 0, 0, - 69984, 0, 0, 129187, 0, 0, 0, 0, 41631, 92728, 0, 0, 6228, 0, 0, 0, 0, 0, - 0, 506, 0, 0, 65735, 2055, 43255, 121407, 0, 0, 0, 0, 0, 0, 194666, 2063, - 0, 0, 0, 0, 72136, 0, 74333, 194912, 11827, 74308, 194913, 194916, + 41858, 0, 0, 120655, 0, 41862, 0, 0, 78822, 436, 4771, 118635, 42501, 0, + 10573, 0, 77931, 118560, 917986, 9644, 0, 0, 0, 0, 69837, 0, 0, 0, 0, + 67409, 0, 0, 0, 125204, 11939, 0, 0, 0, 0, 0, 0, 0, 3504, 0, 0, 92854, + 126209, 0, 10226, 65558, 0, 3594, 0, 0, 40, 0, 0, 0, 0, 0, 74312, 72138, + 74337, 0, 69577, 0, 0, 0, 70476, 0, 121143, 72317, 0, 0, 4304, 0, 0, + 78707, 0, 0, 0, 78597, 1348, 78596, 0, 0, 0, 70406, 92392, 0, 7599, 0, 0, + 13269, 0, 129729, 0, 100804, 0, 74494, 6097, 7568, 43980, 4982, 78592, 0, + 0, 0, 0, 13270, 0, 128090, 13138, 0, 9484, 0, 0, 71364, 0, 0, 0, 9487, 0, + 92913, 0, 71911, 78668, 73963, 6193, 0, 0, 0, 194848, 7228, 10011, + 194849, 194852, 194851, 11654, 194853, 126218, 194855, 0, 194857, 3604, + 0, 0, 0, 0, 0, 94110, 43740, 94109, 194860, 194863, 66750, 121021, 0, + 94111, 6995, 74173, 5437, 74174, 0, 8702, 7339, 129981, 0, 199, 194843, + 194846, 194845, 0, 126069, 0, 67818, 0, 7560, 0, 0, 0, 0, 6472, 65814, 0, + 128983, 70845, 0, 0, 9191, 0, 0, 0, 0, 124904, 10196, 0, 72452, 6585, 0, + 120750, 0, 0, 71872, 129129, 0, 0, 78590, 72308, 11382, 129499, 0, + 983670, 0, 194833, 194832, 2165, 129540, 94020, 194836, 42727, 194838, + 128252, 78585, 43874, 119610, 0, 0, 43248, 0, 194816, 0, 194818, 128845, + 194820, 127879, 5297, 194821, 13284, 6112, 93964, 93010, 73927, 42947, 0, + 65746, 0, 0, 194827, 194826, 4342, 42839, 194831, 1677, 0, 72135, 0, 0, + 0, 11011, 66399, 0, 0, 0, 10160, 0, 0, 0, 0, 2052, 4308, 92174, 43000, + 118659, 543, 64916, 122964, 0, 0, 119170, 0, 118922, 2064, 0, 43158, 0, + 0, 69984, 0, 0, 129187, 0, 0, 0, 0, 41631, 92728, 0, 0, 6228, 0, 0, 0, 0, + 0, 0, 506, 0, 0, 65735, 2055, 43255, 121407, 0, 0, 0, 0, 0, 0, 194666, + 2063, 0, 0, 0, 0, 72136, 0, 74333, 194912, 11827, 74308, 194913, 194916, 194915, 64564, 194917, 67986, 194919, 0, 11037, 0, 121102, 0, 0, 10560, 0, 120756, 194922, 113737, 194924, 194927, 120495, 1931, 0, 0, 0, 128228, 0, 12643, 8751, 123629, 0, 12294, 0, 78834, 9138, 78831, 78833, 12631, @@ -27511,7 +27700,7 @@ static const unsigned int code_hash[] = { 94042, 0, 8373, 41989, 69507, 73460, 3418, 3263, 0, 0, 0, 3270, 64539, 11489, 0, 118945, 126220, 0, 127795, 0, 94031, 0, 0, 0, 0, 0, 70512, 983983, 186, 0, 119156, 5770, 13179, 0, 12612, 12949, 64856, 12800, 0, 0, - 983151, 11507, 0, 0, 118929, 0, 0, 72141, 0, 73459, 0, 0, 0, 73461, 9254, + 983152, 11507, 0, 0, 118929, 0, 0, 72141, 0, 73459, 0, 0, 0, 73461, 9254, 66877, 194907, 0, 92338, 5624, 126253, 0, 0, 0, 120472, 120464, 0, 0, 122915, 120462, 0, 1872, 66508, 120467, 41079, 0, 5502, 119330, 41078, 194906, 0, 0, 4511, 68449, 0, 0, 0, 0, 43245, 41083, 68861, 0, 0, 9003, @@ -27538,7 +27727,7 @@ static const unsigned int code_hash[] = { 120188, 0, 9137, 0, 0, 0, 0, 3466, 0, 0, 1996, 0, 3453, 3412, 0, 2002, 2000, 120176, 0, 0, 0, 0, 1998, 0, 1842, 7037, 0, 9628, 68446, 0, 9826, 64502, 1767, 3413, 0, 0, 0, 0, 0, 0, 13108, 44024, 120204, 0, 92693, 0, - 0, 0, 70291, 12650, 983208, 0, 68061, 0, 3592, 0, 0, 0, 0, 983975, 0, + 0, 0, 70291, 12650, 983210, 0, 68061, 0, 3592, 0, 0, 0, 0, 983975, 0, 66417, 128792, 10742, 0, 0, 1994, 9281, 3296, 64475, 1997, 1895, 128936, 43024, 0, 0, 123184, 72391, 0, 8999, 0, 983633, 0, 66480, 0, 0, 0, 983083, 0, 596, 0, 0, 120216, 8651, 120217, 0, 0, 12995, 0, 0, 70740, 0, @@ -27571,9 +27760,9 @@ static const unsigned int code_hash[] = { 69816, 0, 118796, 0, 8708, 0, 64077, 64076, 8996, 4992, 4471, 83343, 64079, 64078, 92179, 0, 0, 123540, 64615, 0, 0, 12075, 42041, 0, 0, 0, 0, 127557, 3123, 0, 983754, 0, 0, 0, 83328, 0, 9223, 0, 83321, 83322, 73797, - 83327, 1116, 0, 83319, 7136, 0, 0, 0, 0, 75031, 0, 0, 0, 64092, 43675, - 10104, 83338, 83331, 64095, 64094, 8111, 66247, 0, 64089, 64088, 0, - 70106, 42236, 11434, 64083, 64082, 43216, 7737, 64087, 64086, 64085, + 83327, 1116, 0, 83319, 7136, 73550, 0, 0, 0, 75031, 0, 0, 0, 64092, + 43675, 10104, 83338, 83331, 64095, 64094, 8111, 66247, 0, 64089, 64088, + 0, 70106, 42236, 11434, 64083, 64082, 43216, 7737, 64087, 64086, 64085, 64084, 0, 0, 0, 4118, 1797, 83312, 0, 0, 46, 83308, 83309, 298, 83303, 72402, 83305, 83306, 0, 0, 0, 128905, 11495, 0, 67490, 0, 127377, 194828, 127370, 0, 0, 0, 66239, 74945, 64403, 0, 0, 83314, 0, 0, 65758, 43536, 0, @@ -27586,7 +27775,7 @@ static const unsigned int code_hash[] = { 0, 0, 0, 66802, 5058, 0, 0, 0, 5057, 125256, 0, 74538, 5054, 0, 0, 0, 0, 0, 0, 658, 3497, 128509, 0, 5061, 5060, 4235, 0, 0, 0, 127757, 4236, 4727, 0, 0, 0, 128791, 0, 7488, 128693, 7476, 0, 125259, 120646, 0, 0, 0, - 66209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128903, 0, 9341, + 66209, 0, 0, 0, 78931, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128903, 0, 9341, 119596, 0, 0, 0, 64668, 0, 8125, 0, 6743, 119175, 0, 129441, 83406, 0, 127966, 119235, 74092, 0, 0, 43660, 71125, 0, 127901, 0, 0, 0, 264, 0, 74954, 0, 0, 0, 0, 0, 6019, 0, 0, 129121, 0, 0, 0, 8800, 0, 66376, 0, @@ -27595,7 +27784,7 @@ static const unsigned int code_hash[] = { 70723, 5072, 128576, 13098, 72403, 0, 11040, 0, 0, 0, 4929, 0, 0, 0, 0, 0, 0, 0, 0, 67754, 4934, 0, 0, 9758, 0, 0, 70181, 42584, 0, 4329, 0, 4979, 8663, 74521, 0, 983042, 74418, 983653, 0, 5071, 0, 3642, 0, 5070, - 10042, 0, 3987, 5068, 120209, 8909, 0, 0, 69917, 0, 73981, 983141, 70749, + 10042, 0, 3987, 5068, 120209, 8909, 0, 0, 69917, 0, 73981, 983142, 70749, 4531, 120212, 9105, 0, 4921, 121059, 4926, 65544, 113786, 69621, 0, 0, 0, 83269, 0, 120790, 4922, 0, 992, 119568, 4925, 0, 0, 9526, 4920, 128617, 948, 0, 0, 4930, 0, 0, 0, 4933, 0, 0, 0, 4928, 0, 0, 0, 0, 128379, 722, @@ -27614,12 +27803,12 @@ static const unsigned int code_hash[] = { 0, 0, 0, 129172, 118715, 67703, 0, 0, 0, 0, 0, 72290, 0, 0, 0, 0, 7018, 66241, 0, 0, 0, 0, 0, 74056, 0, 11833, 0, 67975, 65232, 40964, 251, 12686, 7895, 4395, 43538, 0, 0, 0, 78042, 0, 0, 40967, 5879, 0, 0, 0, 0, - 0, 65540, 128590, 625, 0, 120194, 1113, 0, 13103, 3630, 67224, 8179, + 0, 65540, 128590, 625, 0, 120194, 1113, 120195, 13103, 3630, 67224, 8179, 74264, 67886, 9316, 10980, 2489, 120958, 8150, 1359, 121353, 70464, 127330, 127327, 5042, 5041, 42769, 12084, 11196, 42961, 92279, 72398, - 120535, 127317, 127318, 127315, 12283, 127313, 11453, 0, 8795, 66245, 0, - 5919, 0, 5037, 118864, 0, 0, 67724, 0, 66893, 74006, 129535, 8431, 0, 0, - 0, 0, 12620, 6826, 73773, 70169, 5040, 0, 0, 0, 0, 0, 5039, 0, 0, 0, + 120535, 127317, 127318, 127315, 12283, 127313, 11453, 70207, 8795, 66245, + 0, 5919, 0, 5037, 118864, 0, 0, 67724, 0, 66893, 74006, 129535, 8431, 0, + 0, 0, 0, 12620, 6826, 73773, 70169, 5040, 0, 0, 0, 0, 0, 5039, 0, 0, 0, 5038, 0, 0, 0, 0, 0, 65908, 0, 0, 0, 0, 0, 65157, 0, 0, 70182, 0, 73909, 4835, 0, 0, 0, 4309, 7127, 0, 0, 0, 1301, 0, 0, 12222, 0, 73813, 711, 92439, 7133, 0, 0, 0, 0, 0, 0, 0, 7661, 72263, 129541, 0, 0, 70453, 7627, @@ -27632,12 +27821,12 @@ static const unsigned int code_hash[] = { 0, 120854, 0, 0, 0, 2470, 0, 0, 1925, 71251, 0, 10971, 113770, 5048, 5047, 0, 0, 194946, 92313, 129972, 0, 0, 8089, 128468, 639, 0, 68179, 0, 70180, 0, 4599, 0, 0, 0, 0, 983817, 648, 194948, 65819, 0, 0, 0, 129968, - 94017, 0, 11777, 9750, 983122, 0, 0, 92367, 70175, 5046, 66255, 0, 0, + 94017, 0, 11777, 9750, 983123, 0, 0, 92367, 70175, 5046, 66255, 0, 0, 65253, 0, 5045, 0, 1916, 74069, 5044, 92348, 0, 0, 5043, 0, 0, 0, 74004, 9669, 12341, 0, 8402, 0, 0, 70174, 0, 3586, 64508, 92456, 0, 0, 119606, 0, 42628, 10069, 0, 0, 0, 0, 123, 120703, 0, 121326, 0, 10719, 129409, 120444, 10829, 120593, 0, 12130, 0, 0, 0, 0, 3925, 0, 0, 75065, 71112, - 92372, 71110, 71111, 0, 120441, 120452, 983178, 0, 0, 0, 0, 0, 0, 0, 0, + 92372, 71110, 71111, 0, 120441, 120452, 983179, 0, 0, 0, 0, 0, 0, 0, 0, 69879, 8509, 120449, 0, 0, 0, 120448, 0, 118889, 194858, 0, 0, 0, 66445, 0, 71109, 0, 0, 72425, 0, 12136, 0, 983629, 0, 0, 0, 0, 19922, 41768, 74002, 0, 0, 0, 0, 2458, 0, 0, 0, 41074, 4266, 64834, 0, 41077, 0, 9050, @@ -27652,7 +27841,7 @@ static const unsigned int code_hash[] = { 65925, 194997, 195000, 194999, 0, 66996, 0, 64397, 0, 0, 0, 71310, 194977, 194976, 2448, 194978, 194981, 194980, 2452, 194982, 194985, 194984, 78694, 72292, 7845, 0, 78692, 4408, 4122, 6772, 194988, 8723, - 72147, 194989, 119302, 11857, 119304, 119303, 2438, 119297, 119300, + 72147, 194989, 73472, 11857, 119304, 119303, 2438, 119297, 119300, 119299, 41953, 0, 42135, 373, 119172, 2119, 11457, 129618, 41955, 0, 0, 0, 41952, 0, 0, 2127, 0, 128496, 5202, 0, 78765, 42823, 11291, 0, 0, 12963, 0, 0, 4125, 41958, 12133, 0, 125099, 1271, 129427, 0, 66024, 0, @@ -27665,7 +27854,7 @@ static const unsigned int code_hash[] = { 983669, 0, 950, 0, 983673, 983683, 983668, 0, 983675, 0, 119121, 0, 5098, 0, 0, 119099, 5097, 0, 9848, 0, 10293, 983664, 72798, 0, 0, 70303, 983684, 5102, 5101, 128370, 0, 8138, 4517, 1932, 5100, 195060, 65022, - 1247, 10034, 195064, 5099, 0, 1441, 0, 4724, 650, 0, 73954, 983268, + 1247, 10034, 195064, 5099, 0, 1441, 0, 4724, 650, 0, 73954, 983271, 129348, 195040, 195043, 9031, 195045, 195044, 195047, 8545, 66356, 195048, 0, 9154, 127243, 0, 0, 2676, 2277, 0, 73812, 195051, 8599, 195053, 917918, 195055, 65462, 0, 92524, 195033, 71903, 0, 0, 41199, 0, @@ -27677,185 +27866,186 @@ static const unsigned int code_hash[] = { 127342, 70149, 932, 0, 6567, 195009, 195008, 195011, 195010, 70145, 43850, 195015, 195014, 195017, 195016, 0, 0, 0, 69511, 10670, 0, 13273, 0, 195020, 121370, 8803, 195021, 72431, 8151, 67145, 72436, 0, 12553, 0, - 0, 0, 0, 13065, 12570, 0, 0, 0, 983198, 124985, 0, 0, 66466, 0, 0, + 0, 0, 0, 13065, 12570, 0, 0, 0, 983199, 124985, 0, 0, 66466, 0, 0, 194595, 0, 194596, 11351, 43256, 0, 0, 0, 0, 41754, 0, 0, 2720, 194975, - 68462, 8232, 120758, 0, 0, 0, 0, 0, 0, 0, 93067, 10834, 0, 0, 119266, 0, - 0, 125025, 67679, 0, 75064, 7781, 0, 0, 126076, 0, 12077, 0, 64586, - 127164, 42396, 0, 3475, 0, 2479, 0, 0, 0, 120728, 0, 42434, 194960, - 194963, 194962, 110611, 67894, 42473, 194966, 110609, 1843, 42283, 0, 0, - 0, 0, 0, 194970, 0, 42321, 7284, 194974, 194973, 194950, 194949, 194952, - 194951, 0, 194953, 123614, 128645, 0, 0, 0, 0, 74952, 194954, 194957, - 194956, 66367, 194958, 41069, 67689, 9988, 0, 41068, 0, 4295, 0, 0, - 41951, 67835, 0, 785, 8236, 128647, 9027, 0, 194943, 0, 0, 0, 0, 0, 0, - 41071, 41059, 0, 92458, 129442, 0, 0, 0, 123612, 2067, 4310, 0, 123611, - 5180, 123605, 0, 73872, 0, 69880, 5184, 42385, 194947, 983774, 128531, 0, - 0, 119149, 0, 121334, 0, 983781, 0, 0, 5178, 194929, 120548, 194931, - 5188, 194933, 194932, 72245, 194934, 1166, 64429, 42639, 0, 0, 0, 0, - 128071, 2442, 10703, 194940, 194939, 194635, 42439, 0, 0, 0, 73933, - 983239, 42401, 0, 0, 0, 42288, 0, 0, 0, 13145, 0, 2468, 0, 42327, 0, 0, - 0, 42479, 128698, 0, 0, 92580, 0, 74939, 120678, 0, 73733, 0, 0, 2715, 0, - 71257, 0, 74114, 0, 0, 0, 0, 0, 66325, 69603, 0, 9240, 0, 0, 129142, 0, - 0, 0, 9815, 0, 11246, 0, 73912, 42733, 0, 0, 2480, 0, 0, 0, 6494, 5537, - 0, 0, 0, 0, 1211, 0, 121379, 0, 0, 12318, 0, 113796, 0, 0, 0, 0, 0, - 64642, 0, 0, 0, 0, 64864, 0, 0, 0, 121212, 0, 0, 3589, 92719, 4035, 6492, - 92236, 4265, 6843, 0, 74186, 41778, 113764, 119216, 2488, 0, 4582, 0, - 71426, 41777, 12926, 72708, 7528, 10550, 113761, 0, 0, 11439, 0, 0, - 64878, 0, 0, 0, 0, 2286, 0, 0, 126646, 127909, 5909, 400, 126500, 0, 0, - 0, 0, 0, 64827, 0, 74948, 390, 0, 71301, 0, 3473, 0, 0, 66742, 0, 55285, - 0, 0, 0, 92206, 194964, 0, 8004, 0, 6763, 0, 0, 7006, 0, 0, 6757, 73707, - 126648, 0, 6766, 0, 0, 0, 6146, 0, 771, 0, 0, 41318, 0, 42272, 0, 120211, - 69559, 0, 953, 12917, 72287, 12300, 64837, 11491, 68612, 0, 0, 71321, - 7490, 11389, 7489, 3379, 0, 7487, 42996, 7486, 7484, 7482, 6753, 7480, - 7479, 7478, 7477, 6501, 7475, 42995, 7473, 7472, 2474, 7470, 7468, - 124977, 0, 0, 0, 0, 71871, 11834, 128376, 0, 6017, 0, 128763, 0, 0, 0, - 119365, 73949, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2472, 69945, 120699, 121133, - 2139, 4256, 120776, 74380, 0, 73847, 73844, 0, 0, 101375, 0, 101374, 0, - 0, 101347, 7083, 0, 8066, 7678, 0, 121124, 101341, 101373, 101336, 0, - 101331, 0, 101304, 0, 101301, 0, 0, 0, 8330, 0, 101298, 101322, 101297, - 0, 0, 19934, 0, 1770, 67091, 0, 128671, 129617, 110605, 101355, 73843, - 110604, 0, 101362, 67092, 0, 71334, 0, 0, 0, 0, 0, 8162, 0, 5996, 129644, - 4903, 0, 0, 43063, 0, 5172, 0, 7139, 0, 127385, 0, 118667, 0, 0, 4334, - 6324, 41975, 12186, 10674, 12308, 0, 0, 0, 72807, 41977, 68002, 0, - 126630, 2018, 121388, 41979, 68003, 0, 68000, 0, 0, 126984, 68001, 9334, - 118609, 71440, 0, 7975, 0, 0, 0, 66621, 4884, 70367, 983759, 0, 121010, - 0, 0, 0, 0, 127799, 0, 0, 0, 463, 0, 194584, 69617, 6509, 5460, 0, 0, 0, - 0, 42279, 0, 0, 0, 0, 0, 0, 0, 125027, 0, 121119, 0, 0, 0, 5663, 0, 0, 0, - 0, 2482, 66202, 0, 0, 42247, 65174, 73925, 0, 100940, 0, 0, 126573, 0, 0, - 2460, 0, 11944, 0, 0, 64679, 120835, 127310, 0, 0, 0, 5870, 0, 0, 0, - 100931, 539, 100933, 100932, 100935, 9064, 100937, 100936, 100939, - 100938, 0, 0, 0, 0, 0, 0, 41295, 100941, 2478, 100943, 4162, 100945, - 4260, 12953, 100950, 100949, 129800, 0, 0, 0, 0, 0, 0, 0, 5000, 0, 0, 0, - 69672, 71439, 0, 74017, 0, 0, 6709, 0, 0, 983739, 0, 0, 100922, 100921, - 10301, 10333, 10397, 100925, 100928, 100927, 0, 0, 0, 127830, 0, 4014, - 12842, 0, 67413, 0, 0, 3893, 0, 0, 12210, 0, 42147, 0, 983622, 74465, 0, - 0, 0, 0, 0, 0, 0, 0, 110805, 8231, 0, 69946, 41968, 100929, 41973, 12935, - 41969, 0, 2453, 0, 0, 78807, 122893, 0, 10349, 10413, 0, 41962, 3202, - 119097, 0, 8316, 129174, 0, 7314, 0, 0, 0, 0, 1840, 0, 0, 0, 4883, - 100908, 4723, 70099, 100909, 0, 0, 0, 0, 11089, 240, 19906, 0, 0, 0, - 43600, 121004, 13134, 93065, 0, 65931, 110649, 110650, 42634, 110648, 0, - 121005, 11463, 0, 0, 129861, 10445, 0, 92969, 0, 2614, 0, 129954, 1729, - 0, 0, 100911, 0, 43334, 100912, 100915, 100914, 66201, 100916, 69662, - 100896, 100899, 100898, 4121, 100900, 70272, 82954, 63879, 0, 70872, 0, - 0, 4039, 643, 7726, 120082, 0, 120068, 58, 0, 0, 0, 63872, 0, 0, 100891, - 0, 10625, 100892, 100895, 100894, 1416, 120073, 917761, 67393, 0, 0, 0, - 6996, 4264, 0, 100902, 66179, 66768, 100903, 13114, 72311, 67510, 3094, - 0, 0, 127074, 4437, 0, 0, 0, 55280, 42174, 0, 42430, 129796, 72246, - 42355, 0, 0, 0, 0, 121251, 127401, 0, 0, 0, 0, 0, 0, 100882, 100881, - 74037, 100883, 0, 127099, 0, 0, 0, 0, 0, 69646, 65035, 65034, 11480, - 6116, 65039, 65038, 41180, 65036, 194565, 0, 12101, 5822, 0, 0, 0, 0, - 11663, 127873, 63854, 119657, 63853, 0, 63852, 65810, 4289, 100885, - 63896, 100887, 100890, 43621, 0, 0, 0, 129613, 194560, 7461, 73901, 0, - 331, 0, 0, 0, 128029, 0, 0, 0, 74629, 0, 0, 0, 41964, 0, 63843, 2084, - 41965, 0, 100864, 100863, 100866, 63841, 78549, 41220, 13032, 100869, - 8383, 0, 78548, 126102, 0, 0, 1351, 983865, 8698, 100874, 100877, 1930, - 100879, 78554, 74360, 100880, 69859, 78551, 0, 0, 129433, 3657, 0, 65202, - 6000, 119206, 41901, 0, 0, 41740, 0, 41283, 0, 119267, 0, 0, 100871, - 9695, 100873, 7562, 100853, 5170, 100855, 100854, 676, 100856, 100859, - 100858, 9978, 100860, 0, 0, 64934, 0, 0, 0, 113714, 113706, 41829, 65886, - 5159, 0, 41832, 704, 43077, 0, 120532, 0, 68496, 65065, 41830, 0, 917799, - 917798, 917797, 917796, 0, 67864, 113696, 917800, 12336, 4135, 69805, - 341, 2727, 4129, 100862, 100861, 0, 64503, 7913, 0, 0, 4131, 63868, 0, - 63871, 4133, 63864, 210, 0, 0, 0, 4137, 78505, 78506, 0, 78504, 78830, 0, - 0, 43873, 0, 0, 0, 0, 11988, 78510, 195, 68321, 41501, 0, 42031, 0, - 13135, 0, 0, 0, 41499, 0, 0, 9680, 41498, 917794, 42025, 78567, 78556, 0, - 0, 0, 0, 0, 0, 101074, 120502, 92597, 0, 0, 917784, 7864, 129001, 129704, - 917788, 121106, 917786, 917785, 5753, 67816, 72371, 2219, 0, 0, 0, 0, 0, - 0, 121277, 0, 917777, 917776, 917775, 69644, 917781, 917780, 917779, - 917778, 8668, 0, 121383, 917782, 5999, 0, 0, 129195, 128243, 43653, 1726, - 1015, 0, 127247, 0, 0, 64919, 0, 0, 0, 128478, 0, 69791, 927, 0, 0, - 42010, 0, 42021, 0, 0, 1299, 12240, 64537, 0, 0, 0, 0, 0, 0, 69454, 0, 0, - 0, 122903, 19914, 12179, 0, 2296, 0, 0, 63832, 917773, 0, 63816, 2594, - 63823, 63817, 11178, 0, 0, 0, 11265, 68295, 0, 0, 0, 10554, 3972, 0, - 121198, 0, 917766, 10816, 917764, 119608, 74374, 917769, 11210, 93069, - 8586, 3882, 8532, 120183, 1573, 128648, 0, 69916, 0, 101051, 67719, 0, 0, - 0, 0, 0, 0, 0, 128821, 119169, 0, 0, 6626, 42763, 130034, 118884, 128613, - 0, 83128, 0, 0, 0, 0, 0, 983561, 0, 0, 0, 9171, 0, 0, 71305, 983919, - 121146, 0, 101095, 128881, 119604, 126596, 0, 0, 0, 128214, 42368, 0, - 983105, 2271, 41487, 12118, 74124, 68651, 110836, 110833, 3009, 41476, - 41489, 69825, 3007, 1448, 3018, 0, 41491, 8521, 5083, 5082, 0, 0, 8519, - 0, 3014, 5081, 73926, 0, 128549, 0, 69951, 5079, 129963, 2557, 128086, - 65532, 11828, 0, 71297, 11105, 0, 0, 0, 8518, 10779, 0, 71303, 0, 0, - 42170, 110769, 0, 629, 1924, 0, 12037, 0, 5987, 8462, 127744, 0, 63933, - 69735, 110770, 128295, 63941, 67981, 5077, 0, 10880, 64849, 5075, 0, - 128152, 65075, 0, 11007, 983736, 0, 0, 0, 66684, 72331, 3434, 72338, - 1904, 0, 0, 72730, 0, 10499, 4507, 9578, 63925, 0, 7979, 0, 9831, 66689, - 0, 461, 194834, 0, 4504, 0, 0, 6325, 0, 43021, 0, 0, 55236, 0, 0, 5177, - 41324, 12055, 63831, 0, 41327, 12591, 0, 4114, 409, 0, 0, 8948, 41325, 0, - 721, 10182, 0, 71311, 0, 0, 94052, 74963, 83503, 5998, 0, 0, 74825, 0, - 12587, 0, 78571, 74889, 71328, 128955, 0, 74121, 78570, 78822, 0, 0, - 5995, 0, 42568, 0, 0, 63944, 73860, 126586, 0, 4167, 0, 43175, 0, 74120, - 0, 65076, 938, 73857, 73854, 11737, 9721, 0, 0, 0, 11742, 0, 0, 11493, - 12334, 128762, 0, 66623, 0, 9173, 0, 11978, 0, 12734, 113750, 113741, 0, - 6759, 0, 0, 0, 126222, 0, 70388, 129093, 13027, 42777, 7683, 1167, 0, - 4983, 0, 861, 0, 0, 68297, 0, 43757, 92978, 129298, 122630, 127804, 0, - 118654, 70815, 9616, 0, 0, 12816, 43759, 0, 12710, 68674, 12721, 4101, - 66185, 0, 5992, 7616, 0, 0, 12577, 0, 0, 853, 42693, 0, 121088, 0, 0, - 917915, 0, 42835, 0, 0, 0, 0, 0, 12712, 7105, 127807, 65060, 66875, 9900, - 0, 0, 0, 121482, 119265, 0, 64778, 12585, 0, 0, 0, 0, 0, 0, 77826, 0, - 4900, 125245, 0, 0, 0, 4119, 74768, 8971, 0, 0, 0, 78594, 41132, 9245, - 73060, 0, 4138, 194841, 0, 0, 0, 77827, 0, 13054, 0, 0, 128416, 110760, - 0, 0, 3948, 128878, 0, 0, 0, 1680, 0, 11861, 0, 0, 120032, 0, 0, 0, 0, - 74833, 74190, 5993, 42709, 0, 12706, 77846, 1893, 0, 63915, 0, 0, 110744, - 129826, 0, 63997, 120018, 63996, 3077, 0, 0, 1512, 0, 12589, 41479, 0, 0, - 0, 0, 11831, 120727, 0, 41481, 0, 118912, 0, 3090, 0, 3086, 1664, 1850, - 0, 3079, 0, 0, 94080, 127140, 0, 0, 74401, 0, 917555, 0, 0, 0, 0, 0, - 11526, 63985, 5864, 0, 63992, 0, 63991, 0, 5480, 7858, 0, 4116, 78149, 0, - 0, 0, 63907, 0, 0, 126131, 63905, 119601, 0, 983190, 0, 119666, 0, 0, - 7534, 507, 91, 2042, 120775, 118596, 0, 66028, 118811, 41844, 70680, 774, - 0, 0, 0, 5994, 0, 12733, 0, 0, 0, 72297, 0, 0, 0, 0, 6026, 0, 0, 0, 162, - 0, 125247, 78151, 78152, 983590, 92709, 0, 68304, 0, 0, 0, 66658, 0, 0, - 0, 0, 121511, 2226, 121512, 129349, 10492, 0, 121510, 0, 43119, 0, 0, 0, - 66192, 0, 0, 4899, 12729, 0, 0, 0, 0, 4103, 0, 129842, 77851, 69429, - 129046, 0, 12859, 70087, 0, 0, 0, 0, 0, 0, 0, 0, 65264, 5146, 0, 194694, - 71684, 0, 0, 983652, 983863, 0, 71688, 78463, 5147, 125019, 0, 74524, - 71682, 128435, 0, 194692, 5991, 3445, 0, 4976, 66193, 0, 0, 0, 0, 128309, - 128594, 129819, 69579, 0, 63855, 0, 10138, 0, 0, 8897, 0, 75027, 0, - 120931, 77862, 65836, 0, 0, 77860, 0, 0, 1123, 4124, 41553, 77903, 0, - 71680, 121386, 398, 0, 129035, 41551, 0, 0, 0, 41550, 9970, 0, 93062, - 42392, 1305, 78901, 0, 129292, 0, 7346, 41464, 0, 0, 0, 41465, 983567, - 8528, 9149, 0, 63955, 165, 3024, 11852, 119163, 0, 9093, 0, 9147, 0, 0, - 110989, 9148, 0, 4096, 53, 8296, 0, 71352, 0, 9594, 0, 0, 63952, 0, - 10997, 0, 0, 5805, 0, 0, 129777, 42176, 71455, 74601, 129604, 10591, 0, - 92852, 0, 0, 0, 0, 0, 0, 92475, 0, 0, 42379, 0, 0, 9220, 0, 121425, 0, 0, - 4132, 0, 0, 11239, 0, 0, 74837, 0, 66408, 0, 8055, 0, 0, 0, 63962, 74042, - 8924, 43123, 5988, 0, 63969, 0, 42718, 8788, 1357, 77872, 65743, 0, 8774, - 0, 0, 0, 0, 92748, 120598, 128234, 9564, 0, 0, 119124, 0, 121241, 110983, - 92975, 3121, 0, 0, 0, 70081, 0, 0, 0, 0, 0, 64851, 0, 0, 73085, 119532, - 0, 0, 0, 0, 1198, 69293, 66708, 64619, 0, 64663, 93991, 0, 0, 2101, 1398, - 0, 92554, 0, 0, 92684, 11406, 101588, 12127, 66998, 840, 0, 0, 7101, - 120938, 0, 0, 12880, 0, 43104, 0, 0, 0, 2117, 0, 0, 0, 0, 0, 0, 0, 7769, - 129867, 92413, 0, 0, 100695, 0, 40986, 83117, 0, 0, 4127, 0, 0, 0, 0, 0, - 0, 70738, 0, 129466, 0, 0, 0, 0, 119081, 0, 10581, 0, 4533, 0, 128941, - 6490, 0, 12038, 0, 0, 68225, 0, 0, 69704, 0, 1948, 119007, 129607, - 101586, 0, 0, 0, 120802, 0, 9494, 0, 0, 0, 4843, 0, 74772, 4098, 0, 0, 0, - 3436, 0, 127279, 12817, 0, 126607, 118678, 0, 0, 0, 74433, 0, 0, 71962, - 0, 121296, 65916, 0, 0, 121458, 0, 129107, 93815, 0, 73743, 0, 0, 983132, - 67676, 0, 0, 74627, 128928, 0, 127892, 0, 71326, 67222, 0, 75013, 92435, - 0, 128500, 0, 0, 9613, 43425, 4526, 121415, 0, 64520, 71336, 0, 0, 55278, - 10228, 64957, 0, 0, 3807, 2081, 66640, 0, 0, 0, 0, 119269, 0, 128688, 0, - 128142, 1451, 0, 0, 4134, 0, 74847, 0, 74793, 0, 0, 74295, 9960, 1201, 0, - 12846, 121271, 0, 11919, 64962, 0, 43739, 0, 66358, 0, 0, 0, 43679, - 72284, 72289, 0, 129523, 1253, 983870, 65766, 500, 65764, 65765, 65762, - 65763, 65760, 65761, 70334, 983867, 9821, 11702, 110630, 110631, 110628, - 110629, 128481, 0, 7533, 66717, 92500, 92305, 0, 0, 69277, 127758, 71332, - 0, 0, 0, 0, 11188, 0, 4112, 0, 0, 12890, 0, 0, 9915, 0, 68423, 0, 0, - 2876, 0, 0, 0, 0, 7382, 92415, 0, 128132, 0, 0, 0, 0, 69561, 127915, 0, - 7003, 0, 0, 7704, 0, 0, 0, 4123, 0, 0, 9977, 0, 0, 65759, 0, 0, 128266, - 9808, 0, 92611, 4126, 0, 9521, 9589, 64755, 0, 0, 0, 69948, 0, 92368, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 93814, 0, 0, 92234, 0, 10693, 0, 0, 65897, 4058, - 0, 0, 64660, 0, 0, 0, 983730, 1139, 43298, 0, 65929, 8970, 0, 9934, 0, - 11023, 128020, 42522, 0, 0, 0, 78899, 3057, 128113, 7349, 69959, 128722, - 68065, 110813, 0, 92826, 67201, 0, 0, 0, 9528, 0, 0, 0, 9102, 627, 92827, - 6273, 129496, 0, 0, 983210, 92966, 43300, 0, 983740, 11696, 92825, 1018, - 65554, 0, 74338, 0, 7645, 0, 128321, 0, 0, 0, 0, 73814, 11544, 12563, - 10728, 0, 0, 127340, 43311, 64966, 92841, 0, 0, 118946, 0, 0, 74779, 0, - 185, 65085, 74533, 0, 0, 7535, 0, 42525, 0, 9749, 41701, 6131, 0, 4117, - 129062, 126988, 0, 92429, 65693, 0, 73445, 0, 69695, 0, 0, 0, 0, 0, 0, 0, - 1184, 0, 815, 0, 0, 0, 0, 0, 71325, 0, 0, 64683, 983816, 0, 127959, 0, 0, - 0, 0, 0, 0, 0, 68166, 0, 0, 0, 0, 66799, 0, 128912, 0, 5142, 0, 69643, 0, - 0, 68367, 93975, 0, 0, 0, 123209, 0, 0, 0, 74855, 121330, 0, 0, 0, 0, - 10940, 66030, 0, 70385, 0, 0, 2652, 120527, 0, 129946, 0, 126508, 0, 0, - 0, 0, 0, 0, 1828, 0, 128357, 0, 8531, 0, 74799, 12324, 72434, 65238, + 68462, 8232, 120758, 0, 0, 0, 0, 122959, 0, 0, 93067, 10834, 0, 0, + 119266, 0, 0, 125025, 67679, 0, 75064, 7781, 0, 0, 126076, 0, 12077, 0, + 64586, 127164, 42396, 0, 3475, 0, 2479, 0, 0, 0, 120728, 0, 42434, + 129709, 194963, 194962, 110611, 67894, 42473, 194966, 110609, 1843, + 42283, 0, 0, 0, 0, 0, 194970, 0, 42321, 7284, 194974, 194973, 194950, + 194949, 194952, 194951, 0, 194953, 123614, 128645, 0, 0, 0, 0, 74952, + 194954, 194957, 194956, 66367, 194958, 41069, 67689, 9988, 0, 41068, 0, + 4295, 0, 0, 41951, 67835, 0, 785, 8236, 128647, 9027, 0, 194943, 0, + 122986, 0, 0, 0, 0, 41071, 41059, 0, 92458, 129442, 0, 0, 0, 123612, + 2067, 4310, 0, 123611, 5180, 123605, 0, 73872, 0, 69880, 5184, 42385, + 194947, 983774, 128531, 0, 0, 119149, 73503, 121334, 0, 983781, 0, 0, + 5178, 194929, 120548, 194931, 5188, 194933, 194932, 72245, 194934, 1166, + 64429, 42639, 0, 0, 0, 0, 128071, 2442, 10703, 194940, 194939, 194635, + 42439, 0, 0, 0, 73933, 983242, 42401, 0, 0, 0, 42288, 0, 0, 0, 13145, 0, + 2468, 0, 42327, 0, 0, 0, 42479, 128698, 0, 0, 92580, 0, 74939, 120678, 0, + 73733, 0, 0, 2715, 0, 71257, 0, 74114, 0, 0, 0, 0, 0, 66325, 69603, 0, + 9240, 0, 0, 129142, 0, 0, 0, 9815, 0, 11246, 0, 73912, 42733, 0, 0, 2480, + 0, 0, 0, 6494, 5537, 0, 0, 0, 0, 1211, 0, 121379, 0, 0, 12318, 0, 113796, + 0, 0, 0, 0, 0, 64642, 0, 0, 0, 0, 64864, 0, 0, 0, 121212, 0, 0, 3589, + 92719, 4035, 6492, 92236, 4265, 6843, 0, 74186, 41778, 113764, 119216, + 2488, 0, 4582, 0, 71426, 41777, 12926, 72708, 7528, 10550, 113761, 0, 0, + 11439, 0, 0, 64878, 0, 0, 0, 0, 2286, 0, 0, 126646, 127909, 5909, 400, + 126500, 0, 0, 0, 0, 0, 64827, 0, 74948, 390, 0, 71301, 0, 3473, 0, 0, + 66742, 0, 55285, 0, 0, 0, 92206, 194964, 0, 8004, 0, 6763, 0, 0, 7006, 0, + 0, 6757, 73707, 126648, 0, 6766, 0, 0, 0, 6146, 0, 771, 0, 0, 41318, 0, + 42272, 0, 120211, 69559, 0, 953, 12917, 72287, 12300, 64837, 11491, + 68612, 0, 0, 71321, 7490, 11389, 7489, 3379, 0, 7487, 42996, 7486, 7484, + 7482, 6753, 7480, 7479, 7478, 7477, 6501, 7475, 42995, 7473, 7472, 2474, + 7470, 7468, 124977, 0, 0, 0, 0, 71871, 11834, 128376, 0, 6017, 0, 128763, + 0, 0, 0, 119365, 73949, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2472, 69945, + 120699, 121133, 2139, 4256, 120776, 74380, 0, 73847, 73844, 0, 0, 101375, + 0, 101374, 0, 0, 101347, 7083, 0, 8066, 7678, 0, 121124, 101341, 101373, + 101336, 0, 101331, 0, 101304, 0, 101301, 0, 0, 0, 8330, 0, 101298, + 101322, 101297, 0, 0, 19934, 0, 1770, 67091, 0, 128671, 129617, 110605, + 101355, 73843, 110604, 0, 101362, 67092, 0, 71334, 0, 0, 0, 0, 0, 8162, + 0, 5996, 129644, 4903, 0, 0, 43063, 0, 5172, 0, 7139, 0, 127385, 0, + 118667, 0, 0, 4334, 6324, 41975, 12186, 10674, 12308, 0, 0, 0, 72807, + 41977, 68002, 0, 126630, 2018, 121388, 41979, 68003, 0, 68000, 0, 0, + 126984, 68001, 9334, 118609, 71440, 0, 7975, 0, 0, 0, 66621, 4884, 70367, + 983759, 0, 121010, 0, 0, 0, 0, 127799, 0, 0, 0, 463, 0, 194584, 69617, + 6509, 5460, 0, 0, 0, 0, 42279, 0, 0, 0, 0, 0, 0, 0, 125027, 0, 121119, 0, + 0, 0, 5663, 0, 0, 0, 0, 2482, 66202, 0, 0, 42247, 65174, 73925, 0, + 100940, 0, 0, 126573, 0, 0, 2460, 0, 11944, 0, 0, 64679, 120835, 127310, + 0, 0, 0, 5870, 0, 0, 0, 100931, 539, 100933, 100932, 100935, 9064, + 100937, 100936, 100939, 100938, 0, 0, 0, 0, 0, 0, 41295, 100941, 2478, + 100943, 4162, 100945, 4260, 12953, 100950, 100949, 129800, 0, 0, 0, 0, 0, + 0, 0, 5000, 0, 0, 0, 69672, 71439, 0, 74017, 0, 0, 6709, 0, 0, 983739, 0, + 0, 100922, 100921, 10301, 10333, 10397, 100925, 100928, 100927, 0, 0, 0, + 127830, 0, 4014, 12842, 0, 67413, 0, 0, 3893, 0, 0, 12210, 0, 42147, 0, + 983622, 74465, 0, 0, 0, 0, 0, 0, 0, 0, 110805, 8231, 0, 69946, 41968, + 100929, 41973, 12935, 41969, 0, 2453, 0, 0, 78807, 122893, 0, 10349, + 10413, 122956, 41962, 3202, 119097, 0, 8316, 129174, 0, 7314, 0, 0, 0, 0, + 1840, 0, 0, 0, 4883, 100908, 4723, 70099, 100909, 0, 0, 0, 0, 11089, 240, + 19906, 0, 0, 0, 43600, 121004, 13134, 93065, 0, 65931, 110649, 110650, + 42634, 110648, 0, 121005, 11463, 0, 0, 129861, 10445, 0, 92969, 0, 2614, + 0, 129954, 1729, 0, 0, 100911, 0, 43334, 100912, 100915, 100914, 66201, + 100916, 69662, 100896, 100899, 100898, 4121, 100900, 70272, 82954, 63879, + 0, 70872, 0, 0, 4039, 643, 7726, 120082, 0, 120068, 58, 0, 0, 0, 63872, + 0, 0, 100891, 0, 10625, 100892, 100895, 100894, 1416, 120073, 917761, + 67393, 0, 0, 0, 6996, 4264, 0, 100902, 66179, 66768, 100903, 13114, + 72311, 67510, 3094, 0, 0, 127074, 4437, 0, 0, 0, 55280, 42174, 0, 42430, + 129796, 72246, 42355, 0, 0, 0, 0, 121251, 127401, 0, 0, 0, 0, 0, 0, + 100882, 100881, 74037, 100883, 0, 127099, 0, 0, 0, 0, 0, 69646, 65035, + 65034, 11480, 6116, 65039, 65038, 41180, 65036, 194565, 0, 12101, 5822, + 0, 0, 0, 0, 11663, 127873, 63854, 119657, 63853, 0, 63852, 65810, 4289, + 100885, 63896, 100887, 100890, 43621, 0, 0, 0, 129613, 194560, 7461, + 73901, 0, 331, 0, 0, 0, 128029, 0, 0, 0, 74629, 0, 0, 0, 41964, 0, 63843, + 2084, 41965, 0, 100864, 100863, 100866, 63841, 78549, 41220, 13032, + 100869, 8383, 0, 78548, 126102, 0, 0, 1351, 983865, 8698, 100874, 100877, + 1930, 100879, 78554, 74360, 100880, 69859, 78551, 0, 0, 129433, 3657, 0, + 65202, 6000, 119206, 41901, 0, 0, 41740, 0, 41283, 73543, 119267, 0, 0, + 100871, 9695, 100873, 7562, 100853, 5170, 100855, 100854, 676, 100856, + 100859, 100858, 9978, 100860, 0, 0, 64934, 0, 0, 0, 113714, 113706, + 41829, 65886, 5159, 0, 41832, 704, 43077, 0, 120532, 0, 68496, 65065, + 41830, 0, 917799, 917798, 917797, 917796, 0, 67864, 113696, 917800, + 12336, 4135, 69805, 341, 2727, 4129, 100862, 100861, 0, 64503, 7913, 0, + 0, 4131, 63868, 0, 63871, 4133, 63864, 210, 0, 0, 0, 4137, 78505, 78506, + 0, 78504, 78830, 0, 0, 43873, 0, 0, 0, 0, 11988, 78510, 195, 68321, + 41501, 0, 42031, 0, 13135, 0, 0, 0, 41499, 0, 0, 9680, 41498, 917794, + 42025, 78567, 78556, 0, 0, 0, 0, 0, 0, 101074, 120502, 92597, 0, 0, + 917784, 7864, 129001, 129704, 917788, 121106, 917786, 917785, 5753, + 67816, 72371, 2219, 0, 0, 0, 0, 0, 0, 121277, 0, 917777, 917776, 917775, + 69644, 917781, 917780, 917779, 917778, 8668, 0, 121383, 917782, 5999, 0, + 0, 129195, 128243, 43653, 1726, 1015, 0, 127247, 0, 0, 64919, 0, 0, 0, + 128478, 0, 69791, 927, 0, 0, 42010, 0, 42021, 0, 0, 1299, 12240, 64537, + 0, 0, 0, 0, 0, 0, 69454, 0, 0, 0, 122903, 19914, 12179, 0, 2296, 0, 0, + 63832, 917773, 0, 63816, 2594, 63823, 63817, 11178, 0, 0, 0, 11265, + 68295, 0, 0, 0, 10554, 3972, 0, 121198, 0, 917766, 10816, 917764, 119608, + 74374, 917769, 11210, 93069, 8586, 3882, 8532, 120183, 1573, 128648, 0, + 69916, 0, 101051, 67719, 0, 0, 0, 0, 0, 0, 0, 128821, 119169, 0, 0, 6626, + 42763, 130034, 118884, 128613, 0, 83128, 0, 0, 0, 0, 0, 983561, 0, 0, 0, + 9171, 0, 0, 71305, 983919, 121146, 0, 101095, 128881, 119604, 126596, 0, + 0, 0, 128214, 42368, 0, 983106, 2271, 41487, 12118, 74124, 68651, 110836, + 110833, 3009, 41476, 41489, 69825, 3007, 1448, 3018, 0, 41491, 8521, + 5083, 5082, 0, 0, 8519, 0, 3014, 5081, 73926, 0, 128549, 0, 69951, 5079, + 129963, 2557, 128086, 65532, 11828, 0, 71297, 11105, 0, 0, 0, 8518, + 10779, 0, 71303, 0, 0, 42170, 110769, 0, 629, 1924, 0, 12037, 0, 5987, + 8462, 127744, 0, 63933, 69735, 110770, 128295, 63941, 67981, 5077, 0, + 10880, 64849, 5075, 0, 128152, 65075, 0, 11007, 983736, 0, 0, 0, 66684, + 72331, 3434, 72338, 1904, 0, 0, 72730, 0, 10499, 4507, 9578, 63925, 0, + 7979, 0, 9831, 66689, 0, 461, 194834, 0, 4504, 0, 0, 6325, 0, 43021, 0, + 0, 55236, 0, 0, 5177, 41324, 12055, 63831, 0, 41327, 12591, 0, 4114, 409, + 0, 0, 8948, 41325, 0, 721, 10182, 0, 71311, 0, 0, 94052, 74963, 83503, + 5998, 0, 0, 74825, 0, 12587, 0, 78571, 74889, 71328, 128955, 0, 74121, + 78570, 73499, 0, 0, 5995, 0, 42568, 0, 0, 63944, 73860, 126586, 0, 4167, + 0, 43175, 0, 74120, 0, 65076, 938, 73857, 73854, 11737, 9721, 0, 0, 0, + 11742, 0, 0, 11493, 12334, 128762, 0, 66623, 0, 9173, 0, 11978, 0, 12734, + 113750, 113741, 0, 6759, 0, 0, 0, 126222, 0, 70388, 129093, 13027, 42777, + 7683, 1167, 0, 4983, 0, 861, 0, 0, 68297, 0, 43757, 92978, 129298, + 122630, 127804, 0, 73546, 70815, 9616, 0, 0, 12816, 43759, 0, 12710, + 68674, 12721, 4101, 66185, 0, 5992, 7616, 0, 0, 12577, 0, 0, 853, 42693, + 0, 121088, 0, 0, 917915, 0, 42835, 0, 0, 0, 0, 0, 12712, 7105, 127807, + 65060, 66875, 9900, 0, 0, 0, 121482, 119265, 0, 64778, 12585, 0, 0, 0, 0, + 0, 0, 77826, 0, 4900, 125245, 0, 0, 0, 4119, 74768, 8971, 0, 0, 0, 78594, + 41132, 9245, 73060, 0, 4138, 194841, 0, 0, 0, 77827, 0, 13054, 0, 0, + 128416, 110760, 0, 0, 3948, 128878, 0, 0, 0, 1680, 0, 11861, 0, 0, + 120032, 0, 0, 0, 0, 74833, 74190, 5993, 42709, 0, 12706, 77846, 1893, 0, + 63915, 0, 0, 110744, 129826, 0, 63997, 120018, 63996, 3077, 0, 0, 1512, + 0, 12589, 41479, 0, 0, 0, 0, 11831, 120727, 122949, 41481, 0, 118912, 0, + 3090, 0, 3086, 1664, 1850, 0, 3079, 0, 0, 94080, 127140, 0, 0, 74401, 0, + 917555, 0, 0, 0, 0, 0, 11526, 63985, 5864, 0, 63992, 0, 63991, 0, 5480, + 7858, 0, 4116, 78149, 0, 0, 0, 63907, 0, 0, 126131, 63905, 119601, 0, + 983191, 0, 119666, 0, 0, 7534, 507, 91, 2042, 120775, 118596, 0, 66028, + 118811, 41844, 70680, 774, 0, 0, 0, 5994, 0, 12733, 0, 0, 0, 72297, 0, 0, + 0, 0, 6026, 0, 0, 0, 162, 0, 125247, 78151, 78152, 983590, 92709, 0, + 68304, 0, 0, 0, 66658, 0, 0, 0, 0, 121511, 2226, 121512, 129349, 10492, + 0, 121510, 0, 43119, 0, 0, 0, 66192, 0, 0, 4899, 12729, 0, 0, 0, 0, 4103, + 0, 129842, 77851, 69429, 129046, 0, 12859, 70087, 0, 101580, 0, 0, 0, 0, + 0, 0, 65264, 5146, 0, 194694, 71684, 0, 0, 983652, 983863, 78924, 71688, + 78463, 5147, 125019, 0, 74524, 71682, 128435, 0, 194692, 5991, 3445, 0, + 4976, 66193, 0, 0, 0, 0, 128309, 128594, 129819, 69579, 0, 63855, 0, + 10138, 0, 0, 8897, 0, 75027, 0, 120931, 77862, 65836, 0, 0, 77860, 0, 0, + 1123, 4124, 41553, 77903, 0, 71680, 121386, 398, 0, 129035, 41551, 0, 0, + 0, 41550, 9970, 0, 93062, 42392, 1305, 78901, 0, 129292, 0, 7346, 41464, + 0, 0, 0, 41465, 983567, 8528, 9149, 0, 63955, 165, 3024, 11852, 119163, + 0, 9093, 0, 9147, 0, 0, 110989, 9148, 0, 4096, 53, 8296, 0, 71352, 0, + 9594, 0, 0, 63952, 0, 10997, 0, 0, 5805, 0, 0, 129777, 42176, 71455, + 74601, 129604, 10591, 0, 92852, 0, 0, 0, 0, 0, 0, 92475, 0, 0, 42379, 0, + 0, 9220, 0, 121425, 0, 0, 4132, 0, 0, 11239, 0, 0, 74837, 0, 66408, 0, + 8055, 0, 0, 0, 63962, 74042, 8924, 43123, 5988, 0, 63969, 0, 42718, 8788, + 1357, 77872, 65743, 0, 8774, 0, 0, 0, 0, 92748, 120598, 128234, 9564, 0, + 0, 119124, 0, 121241, 110983, 92975, 3121, 0, 0, 0, 70081, 0, 0, 0, 0, 0, + 64851, 0, 0, 73085, 119532, 0, 0, 0, 0, 1198, 69293, 66708, 64619, 0, + 64663, 93991, 0, 0, 2101, 1398, 0, 92554, 0, 0, 92684, 11406, 101588, + 12127, 66998, 840, 0, 0, 7101, 120938, 0, 0, 12880, 0, 43104, 0, 0, 0, + 2117, 0, 0, 0, 0, 123023, 0, 0, 7769, 129867, 92413, 0, 0, 100695, 0, + 40986, 83117, 0, 0, 4127, 0, 0, 129034, 0, 0, 0, 70738, 0, 129466, 0, 0, + 0, 0, 119081, 0, 10581, 0, 4533, 0, 128941, 6490, 0, 12038, 0, 0, 68225, + 0, 0, 69704, 0, 1948, 119007, 129607, 101586, 0, 0, 0, 120802, 0, 9494, + 0, 0, 0, 4843, 0, 74772, 4098, 0, 0, 0, 3436, 0, 127279, 12817, 0, + 126607, 118678, 0, 0, 0, 74433, 0, 0, 71962, 0, 121296, 65916, 0, 0, + 121458, 0, 129107, 93815, 0, 73743, 0, 0, 983133, 67676, 0, 0, 74627, + 128928, 0, 127892, 0, 71326, 67222, 0, 75013, 92435, 0, 128500, 0, 0, + 9613, 43425, 4526, 121415, 0, 64520, 71336, 0, 0, 55278, 10228, 64957, 0, + 0, 3807, 2081, 66640, 0, 0, 0, 0, 119269, 0, 128688, 0, 128142, 1451, 0, + 0, 4134, 0, 74847, 0, 74793, 0, 78913, 74295, 9960, 1201, 0, 12846, + 121271, 0, 11919, 64962, 0, 43739, 0, 66358, 0, 0, 0, 43679, 72284, + 72289, 0, 129523, 1253, 983870, 65766, 500, 65764, 65765, 65762, 65763, + 65760, 65761, 70334, 983867, 9821, 11702, 110630, 110631, 110628, 110629, + 128481, 0, 7533, 66717, 92500, 92305, 0, 0, 69277, 127758, 71332, 0, 0, + 0, 0, 11188, 0, 4112, 0, 0, 12890, 0, 0, 9915, 0, 68423, 0, 0, 2876, 0, + 0, 0, 0, 7382, 92415, 0, 128132, 0, 0, 0, 0, 69561, 127915, 0, 7003, 0, + 0, 7704, 0, 0, 0, 4123, 0, 0, 9977, 0, 0, 65759, 0, 0, 128266, 9808, 0, + 92611, 4126, 0, 9521, 9589, 64755, 0, 0, 0, 69948, 0, 92368, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 93814, 0, 0, 92234, 0, 10693, 0, 0, 65897, 4058, 0, 0, + 64660, 0, 0, 0, 983730, 1139, 43298, 0, 65929, 8970, 0, 9934, 0, 11023, + 128020, 42522, 0, 0, 0, 78899, 3057, 128113, 7349, 69959, 128722, 68065, + 110813, 0, 92826, 67201, 0, 0, 0, 9528, 0, 0, 0, 9102, 627, 92827, 6273, + 129496, 0, 0, 983212, 92966, 43300, 0, 983740, 11696, 92825, 1018, 65554, + 0, 74338, 0, 7645, 0, 128321, 0, 0, 0, 0, 73814, 11544, 12563, 10728, 0, + 0, 127340, 43311, 64966, 92841, 0, 0, 118946, 0, 0, 74779, 0, 185, 65085, + 74533, 0, 0, 7535, 0, 42525, 0, 9749, 41701, 6131, 0, 4117, 129062, + 126988, 0, 92429, 65693, 0, 73445, 0, 69695, 0, 0, 0, 0, 0, 0, 0, 1184, + 0, 815, 0, 0, 0, 0, 0, 71325, 0, 0, 64683, 983816, 0, 127959, 0, 0, 0, 0, + 0, 0, 0, 68166, 0, 0, 0, 0, 66799, 0, 128912, 0, 5142, 0, 69643, 0, 0, + 68367, 93975, 0, 0, 0, 123209, 124133, 0, 0, 74855, 121330, 0, 0, 0, 0, + 10940, 66030, 0, 70385, 73494, 0, 2652, 120527, 0, 129946, 0, 126508, 0, + 0, 0, 0, 0, 0, 1828, 0, 128357, 0, 8531, 0, 74799, 12324, 72434, 65238, 68374, 0, 65573, 0, 68308, 68679, 12904, 43445, 0, 0, 0, 11247, 0, 0, 41426, 0, 0, 0, 0, 0, 67250, 69451, 83354, 11869, 0, 0, 0, 0, 0, 0, 637, 0, 0, 0, 121178, 0, 0, 74474, 71306, 0, 7298, 128256, 0, 0, 0, 0, 8210, @@ -27866,32 +28056,32 @@ static const unsigned int code_hash[] = { 129875, 0, 71485, 0, 917837, 0, 0, 78157, 0, 0, 0, 0, 0, 71313, 0, 70710, 128212, 0, 72238, 67858, 0, 0, 0, 0, 0, 0, 0, 10770, 118994, 0, 465, 0, 983656, 74348, 0, 0, 0, 0, 0, 0, 0, 10930, 0, 0, 0, 119091, 69388, - 122637, 129918, 0, 0, 0, 0, 0, 10092, 0, 0, 0, 0, 0, 1766, 11282, 11996, - 66644, 4547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120906, 4345, 0, 0, 128947, 0, 0, - 0, 0, 0, 5382, 0, 0, 118552, 0, 0, 5406, 43127, 120007, 0, 3590, 129874, - 0, 0, 0, 42016, 0, 0, 121002, 0, 7742, 0, 66562, 71323, 0, 0, 5310, 0, - 123625, 0, 43594, 0, 128260, 66723, 0, 73816, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1326, 128723, 0, 0, 74519, 0, 0, 0, 0, 71308, 0, 5410, 5783, 0, 8403, - 5400, 120526, 0, 128863, 0, 0, 0, 64412, 0, 0, 5587, 42865, 71858, 0, 0, - 129854, 0, 113785, 0, 120755, 0, 69738, 0, 74867, 10461, 12103, 0, 0, - 70701, 0, 0, 0, 0, 0, 94009, 0, 2760, 0, 8816, 41515, 0, 11802, 0, 7585, - 910, 0, 0, 0, 3658, 83386, 120525, 0, 7617, 0, 12888, 0, 0, 64631, 0, - 41514, 11097, 5703, 0, 41517, 41504, 41519, 0, 70104, 0, 65864, 0, - 120533, 0, 121037, 0, 0, 43553, 120774, 0, 0, 0, 0, 0, 1578, 0, 43449, 0, - 0, 8225, 121191, 94024, 72799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110655, - 0, 110656, 121247, 72213, 0, 110658, 0, 74997, 0, 3195, 10999, 983570, - 7897, 0, 1203, 74396, 0, 64544, 0, 0, 0, 2877, 0, 0, 0, 121112, 0, 0, - 128977, 119607, 0, 0, 0, 0, 983623, 0, 0, 0, 0, 0, 0, 0, 0, 983078, 0, 0, - 0, 9939, 0, 0, 0, 0, 0, 0, 0, 10714, 0, 0, 0, 0, 0, 67738, 0, 74038, 0, - 42897, 0, 0, 0, 0, 0, 0, 7730, 0, 0, 0, 11163, 0, 0, 0, 113701, 4966, - 128802, 70674, 129468, 123207, 3841, 0, 0, 983228, 77886, 0, 4972, 0, - 64699, 0, 0, 0, 0, 0, 12705, 10203, 9608, 0, 0, 11962, 121397, 0, 1196, - 67684, 0, 777, 0, 0, 65271, 0, 0, 0, 0, 64824, 983194, 0, 9454, 63778, - 8658, 0, 0, 2705, 0, 64894, 0, 0, 11986, 92636, 0, 8280, 0, 2701, 0, 0, - 0, 0, 0, 9809, 0, 0, 0, 0, 0, 63761, 1748, 0, 65719, 121078, 0, 0, 0, - 55244, 3061, 0, 63765, 63787, 0, 41520, 0, 7694, 0, 8896, 63768, 55282, - 0, 127781, 0, 0, 63807, 1591, 0, 6386, 118554, 0, 0, 0, 983199, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 68289, 0, 0, 7624, 67487, 10996, 92247, 10609, 0, + 122637, 129918, 0, 0, 0, 0, 0, 10092, 0, 0, 0, 0, 119019, 1766, 11282, + 11996, 66644, 4547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120906, 4345, 0, 0, + 128947, 0, 0, 0, 0, 0, 5382, 0, 0, 118552, 0, 0, 5406, 43127, 120007, 0, + 3590, 129874, 0, 0, 0, 42016, 0, 0, 121002, 0, 7742, 0, 66562, 71323, 0, + 0, 5310, 0, 123625, 0, 43594, 0, 128260, 66723, 0, 73816, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1326, 128723, 0, 0, 74519, 0, 0, 0, 0, 71308, 0, 5410, 5783, + 0, 8403, 5400, 120526, 0, 128863, 0, 0, 0, 64412, 0, 0, 5587, 42865, + 71858, 0, 0, 129854, 0, 113785, 0, 120755, 0, 69738, 0, 74867, 10461, + 12103, 0, 0, 70701, 0, 0, 0, 0, 0, 94009, 0, 2760, 0, 8816, 41515, 0, + 11802, 0, 7585, 910, 0, 0, 0, 3658, 83386, 120525, 0, 7617, 0, 12888, 0, + 0, 64631, 0, 41514, 11097, 5703, 0, 41517, 41504, 41519, 0, 70104, 0, + 65864, 0, 120533, 0, 121037, 0, 0, 43553, 120774, 0, 0, 0, 0, 0, 1578, 0, + 43449, 0, 0, 8225, 121191, 94024, 72799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 110655, 0, 110656, 121247, 72213, 0, 110658, 0, 74997, 0, 3195, 10999, + 983570, 7897, 0, 1203, 74396, 0, 64544, 0, 0, 0, 2877, 0, 0, 0, 121112, + 0, 0, 128977, 119607, 0, 0, 0, 0, 983623, 0, 0, 0, 0, 0, 0, 0, 0, 983078, + 0, 0, 0, 9939, 0, 0, 0, 0, 0, 0, 0, 10714, 0, 0, 0, 0, 0, 67738, 0, + 74038, 0, 42897, 0, 0, 0, 0, 0, 0, 7730, 0, 0, 0, 11163, 0, 0, 0, 113701, + 4966, 128802, 70674, 129468, 123207, 3841, 0, 0, 983231, 77886, 0, 4972, + 0, 64699, 0, 0, 0, 0, 0, 12705, 10203, 9608, 0, 0, 11962, 121397, 0, + 1196, 67684, 0, 777, 0, 0, 65271, 0, 0, 0, 0, 64824, 983195, 0, 9454, + 63778, 8658, 0, 0, 2705, 0, 64894, 0, 0, 11986, 92636, 0, 8280, 0, 2701, + 0, 0, 0, 0, 0, 9809, 0, 0, 0, 0, 0, 63761, 1748, 0, 65719, 121078, 0, 0, + 0, 55244, 3061, 0, 63765, 63787, 0, 41520, 0, 7694, 0, 8896, 63768, + 55282, 0, 127781, 0, 0, 63807, 1591, 0, 6386, 118554, 0, 0, 0, 983200, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68289, 0, 0, 7624, 67487, 10996, 92247, 10609, 0, 127181, 10987, 0, 70370, 3894, 0, 0, 0, 0, 493, 0, 0, 1717, 12228, 479, 917941, 129347, 129473, 917935, 917939, 917924, 917932, 92303, 64315, 92170, 0, 83522, 6233, 42681, 83525, 83518, 83519, 64911, 83521, 0, 0, @@ -27929,9 +28119,9 @@ static const unsigned int code_hash[] = { 128832, 100930, 0, 0, 0, 0, 0, 129776, 128546, 0, 0, 120914, 0, 0, 0, 0, 917822, 128810, 983676, 65599, 0, 9966, 12607, 4948, 128070, 0, 128149, 0, 0, 6207, 0, 6117, 73916, 0, 0, 0, 0, 68244, 41511, 0, 129489, 127304, - 0, 121289, 0, 118618, 83031, 83032, 0, 41556, 0, 0, 0, 128571, 73766, 0, + 0, 121289, 0, 118618, 83031, 83032, 0, 41556, 0, 0, 0, 128571, 73504, 0, 0, 118645, 41510, 7953, 0, 0, 41513, 0, 0, 0, 83038, 83039, 83040, 83041, - 83034, 83035, 848, 9868, 983149, 6424, 118625, 83033, 0, 0, 0, 0, 118539, + 83034, 83035, 848, 9868, 983150, 6424, 118625, 83033, 0, 0, 0, 0, 118539, 0, 893, 64576, 13299, 0, 0, 71998, 71447, 0, 0, 0, 0, 8903, 0, 0, 0, 8099, 0, 0, 0, 0, 0, 0, 0, 0, 113713, 0, 0, 0, 0, 0, 83027, 41483, 83029, 83030, 83023, 83024, 69436, 64836, 194756, 41485, 194758, 194757, 194760, @@ -27943,7 +28133,7 @@ static const unsigned int code_hash[] = { 0, 2108, 0, 73929, 0, 0, 10617, 194737, 128031, 194739, 194738, 68614, 194740, 68611, 9924, 129952, 194744, 0, 0, 0, 3277, 0, 4947, 41055, 0, 194722, 129930, 194724, 194723, 64626, 194725, 42266, 194727, 8371, - 194729, 127028, 12806, 41492, 0, 0, 73930, 194731, 194730, 41054, 1078, + 194729, 127028, 12806, 41492, 0, 0, 73930, 194731, 124140, 41054, 1078, 194735, 194734, 41057, 0, 0, 0, 0, 0, 92210, 73009, 0, 41496, 0, 9165, 1572, 0, 129712, 0, 128635, 9215, 9330, 129809, 10032, 41745, 43183, 6401, 5831, 0, 0, 0, 8056, 0, 65681, 92377, 0, 0, 0, 121048, 0, 118887, @@ -27972,13 +28162,13 @@ static const unsigned int code_hash[] = { 74317, 0, 8319, 194714, 194717, 10960, 72196, 8305, 12573, 983620, 72193, 0, 13202, 0, 12582, 0, 72198, 69856, 0, 0, 78598, 0, 72195, 0, 65802, 74822, 7698, 12708, 74045, 0, 0, 70460, 4913, 127990, 0, 123539, 0, 0, - 12728, 129980, 0, 0, 101281, 0, 130038, 0, 101283, 0, 12588, 8821, 6153, - 194705, 78900, 194707, 194710, 194709, 194712, 194711, 118854, 194713, - 651, 0, 0, 0, 0, 0, 78468, 78469, 69433, 78467, 69614, 74905, 194695, - 78461, 194697, 194696, 0, 4716, 43277, 0, 2185, 78475, 128592, 120928, - 194700, 55264, 194702, 12732, 0, 12707, 0, 0, 0, 0, 121417, 8479, 4151, - 0, 0, 0, 0, 0, 0, 0, 0, 113799, 0, 74050, 0, 0, 0, 0, 0, 129467, 12278, - 0, 129507, 0, 2700, 12576, 7842, 0, 67471, 0, 2699, 0, 0, 2985, 0, + 12728, 129980, 128895, 0, 101281, 0, 130038, 0, 101283, 0, 12588, 8821, + 6153, 194705, 78900, 194707, 194710, 194709, 194712, 194711, 118854, + 194713, 651, 0, 0, 0, 0, 0, 78468, 78469, 69433, 78467, 69614, 74905, + 194695, 78461, 194697, 194696, 0, 4716, 43277, 0, 2185, 78475, 128592, + 120928, 194700, 55264, 194702, 12732, 0, 12707, 0, 0, 0, 0, 121417, 8479, + 4151, 0, 0, 0, 0, 0, 0, 0, 0, 113799, 0, 74050, 0, 0, 0, 0, 0, 129467, + 12278, 0, 129507, 0, 2700, 12576, 7842, 0, 67471, 0, 2699, 0, 0, 2985, 0, 126475, 0, 129873, 119314, 0, 119312, 9827, 101292, 119311, 101291, 119309, 119306, 11481, 118718, 119305, 0, 35, 78481, 78482, 66694, 78480, 78477, 78478, 0, 0, 64257, 0, 0, 0, 78485, 78486, 78483, 4272, 0, 0, @@ -27988,7 +28178,7 @@ static const unsigned int code_hash[] = { 128628, 101088, 0, 12346, 128596, 101089, 0, 0, 7251, 0, 0, 118850, 73025, 0, 0, 0, 0, 0, 12564, 66457, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101131, 0, 41564, 10976, 0, 121223, 0, 0, 10054, 9197, 120618, 0, 9012, 65737, - 74420, 0, 13215, 12730, 0, 0, 0, 0, 816, 0, 101123, 0, 83191, 0, 0, + 74420, 0, 13215, 12730, 0, 0, 0, 0, 816, 0, 101123, 122664, 83191, 0, 0, 92752, 101120, 4715, 94107, 94106, 71075, 0, 0, 0, 67729, 0, 307, 0, 9585, 0, 0, 0, 101255, 0, 125267, 0, 70727, 65567, 101238, 75006, 101231, 983909, 0, 12236, 41419, 101259, 194621, 101248, 75003, 194622, 73675, @@ -28010,89 +28200,90 @@ static const unsigned int code_hash[] = { 100813, 100816, 100815, 100818, 100817, 100798, 100797, 41410, 100799, 64262, 0, 41407, 75000, 0, 0, 93812, 0, 0, 72803, 74999, 78897, 0, 0, 67675, 0, 0, 0, 0, 43647, 0, 0, 100792, 100791, 100794, 100793, 100796, - 100795, 0, 74630, 11933, 0, 0, 41903, 67892, 11001, 100801, 42255, + 100795, 983276, 74630, 11933, 0, 0, 41903, 67892, 11001, 100801, 42255, 100803, 100802, 100805, 41905, 100807, 100806, 10775, 9793, 0, 0, 74452, 0, 983063, 42535, 0, 64529, 41408, 42853, 0, 0, 42674, 118915, 0, 0, 983807, 0, 70838, 0, 0, 0, 64506, 0, 66738, 4747, 100783, 69844, 100785, - 5832, 0, 0, 5141, 42600, 0, 0, 0, 0, 0, 0, 93790, 0, 7657, 0, 71132, + 5832, 0, 0, 5141, 42600, 124147, 0, 0, 0, 0, 0, 93790, 0, 7657, 0, 71132, 74137, 0, 128362, 73682, 73681, 859, 0, 0, 0, 6059, 126985, 55235, 0, 0, - 0, 0, 0, 100787, 11488, 72838, 100788, 0, 100790, 10558, 0, 0, 118646, - 126090, 71069, 0, 0, 1788, 0, 0, 0, 0, 119571, 92822, 9028, 0, 69234, - 73665, 0, 9905, 128485, 41242, 70086, 0, 74109, 100765, 100764, 100767, - 100766, 70830, 83184, 70082, 3940, 0, 43754, 0, 128188, 8665, 0, 0, 0, - 1653, 100775, 42406, 100777, 100780, 70825, 120523, 0, 8815, 0, 65046, 0, - 42445, 0, 11180, 119318, 119315, 68454, 42485, 0, 0, 8211, 42293, 983602, - 0, 0, 0, 0, 65385, 100771, 42332, 100773, 78431, 78432, 78423, 78430, - 78420, 10022, 65387, 78419, 65384, 0, 0, 0, 65386, 0, 11248, 0, 43198, - 64751, 0, 0, 0, 0, 0, 0, 101102, 7363, 0, 0, 119323, 119324, 100752, - 100751, 0, 119320, 0, 983632, 0, 8237, 0, 0, 0, 0, 0, 0, 9914, 0, 100763, - 100762, 120009, 6351, 119993, 92740, 68766, 0, 120010, 41243, 0, 74108, - 11467, 120165, 119998, 4358, 0, 6353, 0, 0, 0, 93045, 1710, 0, 0, 92237, - 0, 49, 73871, 120005, 78671, 0, 78672, 9741, 78443, 78444, 78441, 43443, - 78439, 78440, 69244, 78438, 3470, 0, 0, 92814, 0, 0, 78445, 0, 1072, - 78457, 78452, 78454, 74230, 78451, 78447, 78449, 1080, 0, 74100, 0, 1101, - 68404, 78458, 78459, 71082, 0, 1086, 1869, 0, 0, 0, 65458, 0, 0, 41988, - 0, 1091, 0, 7977, 0, 66992, 0, 0, 0, 92758, 0, 0, 0, 0, 0, 71255, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 64582, 0, 0, 70794, 0, 120989, 128495, 74106, 0, - 66883, 0, 0, 0, 0, 0, 0, 0, 92553, 43752, 110592, 0, 71249, 120886, 0, 0, - 0, 0, 6063, 100857, 101221, 917995, 6053, 74096, 0, 0, 74169, 13100, 0, - 917999, 0, 71081, 0, 70387, 6055, 7800, 4279, 8490, 120114, 120111, - 64786, 8602, 120110, 83389, 92204, 0, 0, 74961, 0, 120117, 120118, - 120099, 120100, 65087, 64402, 3674, 120096, 0, 120094, 120107, 118624, - 120105, 10107, 42159, 42870, 120101, 69632, 0, 0, 43281, 127078, 0, - 74098, 0, 0, 126497, 74099, 129056, 0, 0, 0, 121123, 5847, 125258, 0, 0, - 0, 0, 0, 66592, 64469, 71698, 19966, 0, 42561, 0, 129170, 66854, 8120, - 75042, 0, 0, 0, 0, 0, 0, 126068, 8369, 0, 0, 122912, 3369, 0, 121094, 0, - 0, 69238, 10495, 121365, 0, 557, 9457, 0, 0, 121054, 73880, 127220, 0, - 74937, 74094, 0, 0, 0, 92171, 127219, 128175, 127939, 120424, 0, 127214, - 2109, 67893, 127211, 69656, 127217, 10604, 127215, 0, 0, 0, 0, 126561, 0, - 0, 0, 0, 1618, 0, 0, 83175, 10430, 0, 0, 13063, 917585, 0, 92982, 113666, - 0, 78390, 83489, 12060, 0, 113669, 0, 6329, 0, 0, 0, 74395, 2707, 8309, - 0, 127054, 78398, 0, 2697, 0, 78396, 127057, 2695, 0, 0, 68334, 0, 0, 0, - 72325, 2693, 74091, 0, 0, 2703, 113729, 70283, 41918, 983168, 127542, - 8687, 127543, 12178, 43361, 92540, 64075, 110705, 5248, 110703, 120538, - 6427, 0, 0, 0, 0, 110710, 0, 74990, 74989, 70703, 127031, 0, 9873, 0, 0, - 0, 64762, 2053, 0, 6591, 9340, 0, 1589, 0, 296, 67712, 128315, 12766, - 118931, 74370, 120417, 2414, 128068, 43829, 111202, 74836, 0, 12579, 0, - 12575, 6416, 5656, 0, 13262, 65590, 5299, 983702, 0, 5449, 1252, 0, - 78404, 69748, 74369, 65373, 5295, 0, 121066, 1223, 1642, 78408, 0, 12158, - 5303, 0, 120546, 41413, 3212, 127025, 3211, 74810, 41425, 127029, 0, - 74450, 9728, 0, 10924, 74778, 6636, 0, 129884, 0, 0, 129882, 9519, 0, 0, - 129106, 101110, 68780, 0, 0, 0, 119182, 0, 12104, 77942, 77951, 9004, 0, - 74249, 10230, 0, 0, 0, 77947, 0, 69679, 121475, 9890, 125049, 12971, 0, - 92556, 0, 67903, 70051, 983924, 0, 0, 9635, 12600, 0, 0, 0, 118900, 6469, - 0, 101113, 65304, 4679, 101114, 64300, 64867, 6531, 101118, 101099, - 101098, 92813, 101100, 42916, 0, 0, 0, 0, 0, 0, 4445, 72296, 0, 11533, 0, - 3416, 129148, 0, 0, 0, 78566, 0, 0, 101091, 92815, 101093, 5447, 72140, - 70752, 101097, 101096, 0, 0, 0, 64448, 0, 43920, 70677, 0, 6232, 101101, - 101104, 101103, 43608, 101105, 101108, 6538, 4335, 0, 3941, 74986, 11061, - 0, 74988, 74987, 0, 12155, 128278, 0, 0, 0, 0, 74578, 0, 65832, 0, - 129459, 70789, 0, 125050, 0, 0, 350, 10951, 101081, 509, 101083, 101086, - 101085, 0, 0, 0, 917540, 0, 100905, 110970, 12162, 64741, 0, 9354, 0, - 70802, 100901, 2496, 11516, 944, 128238, 0, 0, 1438, 0, 0, 120185, 70785, - 1220, 917952, 93844, 0, 0, 5008, 42630, 70787, 101087, 2229, 68206, 564, - 0, 312, 0, 0, 0, 70797, 8877, 269, 0, 128065, 9617, 0, 0, 100910, 0, 0, - 10862, 0, 0, 41416, 0, 4173, 0, 0, 0, 1906, 983854, 41418, 74073, 101068, - 101067, 41415, 69622, 9582, 0, 64287, 0, 0, 11428, 1730, 0, 0, 19918, - 10469, 101076, 101079, 68088, 0, 101080, 72342, 0, 129692, 0, 6129, 0, 0, - 0, 0, 7874, 0, 0, 11206, 13136, 118529, 129305, 0, 64374, 74925, 0, - 73892, 0, 101073, 101072, 101075, 74960, 9228, 101054, 101057, 101056, - 5240, 9811, 0, 101060, 129718, 0, 0, 74079, 65873, 0, 0, 0, 9501, 0, - 68081, 72808, 65465, 64654, 7467, 0, 0, 83460, 10040, 0, 3096, 0, 101053, - 101052, 68820, 83461, 0, 0, 0, 0, 0, 0, 83377, 0, 68801, 0, 101062, - 101061, 101064, 101063, 0, 8637, 70741, 0, 77983, 77969, 11471, 43554, 0, - 77968, 0, 0, 0, 2426, 12042, 0, 0, 0, 3961, 12115, 129633, 0, 77972, - 64561, 0, 4981, 74644, 129558, 0, 0, 42686, 77976, 128776, 64686, 0, - 77958, 7589, 0, 0, 3237, 0, 68215, 0, 8541, 127157, 71067, 120174, 0, 0, - 0, 0, 0, 43555, 0, 0, 10060, 111261, 100917, 0, 0, 0, 64877, 0, 0, 8614, - 65220, 41493, 0, 0, 0, 43780, 0, 0, 70689, 0, 0, 0, 0, 0, 0, 4012, 10395, - 0, 0, 111253, 126511, 111254, 125051, 695, 739, 696, 7611, 0, 42755, - 68421, 9227, 7506, 7510, 67493, 691, 738, 7511, 7512, 7515, 7501, 688, - 41847, 690, 2548, 737, 974, 43386, 0, 0, 0, 0, 0, 0, 65860, 0, 7051, - 69777, 4682, 0, 983096, 6406, 4685, 0, 0, 10347, 4680, 6341, 0, 0, 92607, - 74325, 0, 123555, 0, 0, 0, 0, 0, 0, 43505, 92468, 11718, 42373, 11714, 0, - 0, 129567, 11717, 0, 10594, 129732, 11712, 0, 0, 10967, 0, 0, 0, 66632, - 118647, 0, 0, 0, 1735, 0, 11134, 2363, 983135, 0, 0, 70695, 128032, 0, + 0, 0, 0, 100787, 11488, 72838, 100788, 0, 100790, 10558, 0, 124144, + 118646, 126090, 71069, 0, 0, 1788, 0, 0, 0, 0, 119571, 92822, 9028, 0, + 69234, 73665, 0, 9905, 73556, 41242, 70086, 0, 74109, 100765, 100764, + 100767, 100766, 70830, 83184, 70082, 3940, 0, 43754, 0, 128188, 8665, 0, + 0, 0, 1653, 100775, 42406, 100777, 100780, 70825, 120523, 0, 8815, 0, + 65046, 0, 42445, 0, 11180, 119318, 119315, 68454, 42485, 0, 0, 8211, + 42293, 983602, 0, 0, 0, 0, 65385, 100771, 42332, 100773, 78431, 78432, + 78423, 78430, 78420, 10022, 65387, 78419, 65384, 0, 0, 0, 65386, 0, + 11248, 0, 43198, 64751, 0, 0, 0, 0, 0, 0, 101102, 7363, 0, 0, 119323, + 119324, 100752, 100751, 0, 119320, 0, 983632, 0, 8237, 0, 0, 0, 0, 0, 0, + 9914, 0, 100763, 100762, 120009, 6351, 119993, 92740, 68766, 0, 120010, + 41243, 0, 74108, 11467, 120165, 119998, 4358, 0, 6353, 0, 0, 0, 93045, + 1710, 0, 0, 92237, 0, 49, 73871, 120005, 78671, 0, 78672, 9741, 78443, + 78444, 78441, 43443, 78439, 78440, 69244, 78438, 3470, 0, 0, 92814, 0, 0, + 78445, 0, 1072, 78457, 78452, 78454, 74230, 78451, 78447, 78449, 1080, 0, + 74100, 0, 1101, 68404, 78458, 78459, 71082, 0, 1086, 1869, 0, 0, 0, + 65458, 0, 0, 41988, 0, 1091, 0, 7977, 0, 66992, 0, 0, 0, 92758, 0, 0, 0, + 0, 0, 71255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64582, 0, 0, 70794, 0, 120989, + 128495, 74106, 0, 66883, 0, 0, 0, 0, 0, 0, 0, 92553, 43752, 110592, 0, + 71249, 120886, 0, 0, 0, 0, 6063, 100857, 101221, 917995, 6053, 74096, 0, + 0, 74169, 13100, 0, 917999, 0, 71081, 0, 70387, 6055, 7800, 4279, 8490, + 120114, 120111, 64786, 8602, 120110, 83389, 92204, 0, 0, 74961, 0, + 120117, 120118, 120099, 120100, 65087, 64402, 3674, 120096, 0, 120094, + 120107, 118624, 120105, 10107, 42159, 42870, 120101, 69632, 0, 0, 43281, + 127078, 0, 74098, 0, 0, 126497, 74099, 129056, 0, 0, 0, 121123, 5847, + 125258, 0, 0, 0, 0, 0, 66592, 64469, 71698, 19966, 0, 42561, 0, 129170, + 66854, 8120, 75042, 0, 0, 0, 0, 0, 0, 126068, 8369, 0, 0, 122912, 3369, + 0, 121094, 0, 0, 69238, 10495, 121365, 0, 557, 9457, 0, 0, 121054, 73880, + 127220, 0, 74937, 74094, 0, 0, 119001, 92171, 127219, 128175, 127939, + 120424, 0, 127214, 2109, 67893, 127211, 69656, 127217, 10604, 127215, 0, + 0, 0, 129727, 126561, 0, 0, 0, 0, 1618, 0, 0, 83175, 10430, 0, 0, 13063, + 917585, 0, 92982, 113666, 0, 78390, 83489, 12060, 0, 113669, 0, 6329, 0, + 0, 0, 74395, 2707, 8309, 0, 127054, 78398, 0, 2697, 0, 78396, 127057, + 2695, 0, 0, 68334, 0, 0, 0, 72325, 2693, 74091, 0, 0, 2703, 113729, + 70283, 41918, 983169, 127542, 8687, 127543, 12178, 43361, 92540, 64075, + 110705, 5248, 110703, 120538, 6427, 0, 0, 0, 0, 110710, 0, 74990, 74989, + 70703, 127031, 0, 9873, 0, 0, 0, 64762, 2053, 0, 6591, 9340, 0, 1589, 0, + 296, 67712, 128315, 12766, 118931, 74370, 120417, 2414, 128068, 43829, + 111202, 74836, 0, 12579, 0, 12575, 6416, 5656, 0, 13262, 65590, 5299, + 983702, 0, 5449, 1252, 0, 78404, 69748, 74369, 65373, 5295, 0, 121066, + 1223, 1642, 78408, 0, 12158, 5303, 0, 120546, 41413, 3212, 127025, 3211, + 74810, 41425, 127029, 0, 74450, 9728, 0, 10924, 74778, 6636, 73552, + 129884, 0, 0, 129882, 9519, 0, 0, 129106, 101110, 68780, 0, 0, 0, 119182, + 0, 12104, 77942, 77951, 9004, 0, 74249, 10230, 0, 0, 0, 77947, 0, 69679, + 121475, 9890, 125049, 12971, 0, 92556, 0, 67903, 70051, 983924, 0, 0, + 9635, 12600, 0, 0, 0, 118900, 6469, 0, 101113, 65304, 4679, 101114, + 64300, 64867, 6531, 101118, 101099, 101098, 92813, 101100, 42916, 0, 0, + 0, 0, 0, 0, 4445, 72296, 0, 11533, 0, 3416, 124112, 0, 0, 0, 78566, 0, 0, + 101091, 92815, 101093, 5447, 72140, 70752, 101097, 101096, 0, 0, 0, + 64448, 0, 43920, 70677, 0, 6232, 101101, 101104, 101103, 43608, 101105, + 101108, 6538, 4335, 0, 3941, 74986, 11061, 0, 74988, 74987, 0, 12155, + 128278, 0, 0, 0, 0, 74578, 0, 65832, 0, 129459, 70789, 0, 125050, 0, 0, + 350, 10951, 101081, 509, 101083, 101086, 101085, 0, 0, 0, 917540, 0, + 100905, 110970, 12162, 64741, 0, 9354, 0, 70802, 100901, 2496, 11516, + 944, 128238, 0, 0, 1438, 0, 0, 120185, 70785, 1220, 917952, 93844, 0, 0, + 5008, 42630, 70787, 101087, 2229, 68206, 564, 0, 312, 0, 0, 0, 70797, + 8877, 269, 0, 128065, 9617, 0, 0, 100910, 0, 0, 10862, 0, 0, 41416, 0, + 4173, 0, 0, 0, 1906, 983854, 41418, 74073, 101068, 101067, 41415, 69622, + 9582, 0, 64287, 0, 0, 11428, 1730, 0, 0, 19918, 10469, 101076, 101079, + 68088, 0, 101080, 72342, 0, 129692, 0, 6129, 0, 0, 0, 0, 7874, 0, 0, + 11206, 13136, 118529, 129305, 0, 64374, 74925, 0, 73892, 0, 101073, + 101072, 101075, 74960, 9228, 101054, 101057, 101056, 5240, 9811, 0, + 101060, 129718, 0, 0, 74079, 65873, 0, 0, 0, 9501, 0, 68081, 72808, + 65465, 64654, 7467, 0, 0, 83460, 10040, 0, 3096, 0, 101053, 101052, + 68820, 83461, 0, 0, 0, 0, 0, 0, 83377, 0, 68801, 0, 101062, 101061, + 101064, 101063, 0, 8637, 70741, 0, 77983, 77969, 11471, 43554, 0, 77968, + 0, 0, 0, 2426, 12042, 0, 0, 0, 3961, 12115, 129633, 0, 77972, 64561, 0, + 4981, 74644, 129558, 0, 0, 42686, 77976, 128776, 64686, 0, 77958, 7589, + 0, 0, 3237, 0, 68215, 0, 8541, 127157, 71067, 120174, 0, 0, 0, 0, 0, + 43555, 0, 0, 10060, 111261, 100917, 0, 0, 0, 64877, 0, 0, 8614, 65220, + 41493, 0, 0, 0, 43780, 0, 0, 70689, 0, 0, 0, 0, 0, 0, 4012, 10395, 0, 0, + 111253, 126511, 111254, 125051, 695, 739, 696, 7611, 0, 42755, 68421, + 9227, 7506, 7510, 67493, 691, 738, 7511, 7512, 7515, 7501, 688, 41847, + 690, 2548, 737, 974, 43386, 0, 0, 0, 0, 0, 0, 65860, 0, 7051, 69777, + 4682, 0, 983096, 6406, 4685, 0, 0, 10347, 4680, 6341, 0, 0, 92607, 74325, + 0, 123555, 0, 0, 0, 0, 0, 0, 43505, 92468, 11718, 42373, 11714, 0, 0, + 129567, 11717, 0, 10594, 129732, 11712, 122962, 0, 10967, 0, 0, 0, 66632, + 118647, 0, 0, 0, 1735, 0, 11134, 2363, 983136, 0, 0, 70695, 128032, 0, 7491, 7495, 7580, 7496, 7497, 7584, 121478, 127853, 0, 0, 70025, 0, 8498, 0, 8949, 3065, 0, 0, 0, 0, 0, 0, 11713, 0, 64939, 0, 6418, 4543, 0, 0, 0, 74800, 0, 0, 0, 0, 0, 0, 0, 12282, 3165, 0, 0, 64556, 0, 9238, 0, 68063, @@ -28100,166 +28291,167 @@ static const unsigned int code_hash[] = { 41400, 126636, 119664, 0, 42232, 0, 1744, 0, 41402, 0, 0, 0, 41399, 0, 125028, 0, 0, 12690, 0, 0, 43672, 0, 0, 0, 100870, 11315, 0, 278, 121204, 41405, 129345, 0, 10077, 129650, 70667, 0, 0, 0, 68210, 0, 0, 11189, - 70657, 0, 0, 0, 7934, 0, 93829, 120940, 0, 0, 0, 0, 0, 0, 6413, 6550, 0, - 1940, 2809, 43637, 70045, 0, 0, 10678, 0, 0, 0, 129701, 78804, 6403, - 6556, 78803, 0, 0, 123557, 0, 0, 0, 123553, 0, 3742, 74408, 3959, 0, 0, - 917969, 123565, 0, 128024, 0, 123558, 127956, 0, 0, 0, 6855, 4676, + 70657, 0, 0, 0, 7934, 0, 93829, 120940, 0, 0, 122971, 0, 0, 0, 6413, + 6550, 0, 1940, 2809, 43637, 70045, 0, 0, 10678, 0, 0, 0, 129701, 78804, + 6403, 6556, 78803, 0, 0, 123557, 0, 0, 0, 123553, 0, 3742, 74408, 3959, + 0, 0, 917969, 123565, 0, 128024, 0, 123558, 127956, 0, 0, 0, 6855, 4676, 983049, 9210, 0, 78143, 983922, 0, 78168, 983100, 11540, 43546, 6692, 0, 0, 0, 0, 9083, 0, 0, 78144, 128515, 0, 9677, 0, 70867, 74175, 0, 74070, 0, 0, 365, 0, 43027, 0, 0, 128236, 0, 119574, 70284, 13151, 0, 0, 127935, 127950, 544, 13249, 119018, 0, 120846, 0, 0, 73671, 65339, 73000, 2211, - 0, 0, 0, 0, 0, 0, 0, 0, 128037, 0, 0, 0, 0, 0, 0, 0, 127188, 0, 69708, - 9638, 0, 100878, 0, 0, 0, 74545, 128820, 128819, 75062, 128963, 0, 0, 0, - 11264, 43994, 0, 0, 0, 1311, 0, 0, 0, 0, 13068, 0, 0, 78164, 78155, 0, - 949, 0, 0, 0, 78176, 69709, 78177, 63828, 0, 0, 118629, 70282, 0, 0, 0, - 64822, 0, 6530, 983272, 0, 70493, 0, 129325, 0, 0, 4431, 118839, 127490, - 983760, 73667, 127986, 0, 10336, 10400, 0, 0, 92959, 0, 0, 0, 42270, - 128880, 6428, 0, 0, 0, 0, 43455, 0, 43526, 100888, 12835, 129501, 9493, - 0, 0, 11793, 0, 127897, 74394, 0, 10653, 0, 0, 0, 0, 6560, 7016, 74274, - 983627, 43556, 3929, 123615, 6614, 2768, 0, 65609, 0, 11811, 129696, 0, - 118615, 127513, 0, 6554, 0, 6305, 66283, 4675, 118826, 78552, 0, 0, - 74361, 0, 0, 68108, 0, 0, 92232, 0, 93022, 7392, 8230, 9365, 983742, 0, - 0, 0, 0, 42925, 0, 0, 0, 0, 229, 43834, 119884, 0, 43552, 119881, 119880, - 119883, 119882, 119877, 119876, 119879, 119878, 119873, 119872, 119875, - 119874, 0, 0, 0, 0, 0, 66352, 0, 0, 0, 128663, 0, 12239, 0, 0, 10432, - 12097, 0, 194815, 1233, 0, 0, 127200, 0, 66395, 0, 0, 129504, 0, 0, 0, 0, - 2388, 92555, 119868, 119871, 119870, 119865, 895, 92668, 119866, 64889, - 7143, 119863, 119862, 0, 0, 69983, 0, 74376, 3053, 2168, 0, 2047, 0, 0, - 0, 121279, 67985, 194801, 92600, 194803, 194802, 194805, 194804, 194807, - 194806, 129134, 194808, 0, 0, 0, 10473, 129331, 0, 194810, 129806, - 194812, 129813, 194814, 194813, 123195, 43528, 69673, 194791, 0, 194793, - 1912, 120779, 10306, 10370, 0, 0, 8867, 10250, 10258, 10274, 1635, - 120152, 0, 0, 0, 129379, 0, 0, 9919, 120148, 559, 128157, 41825, 127975, - 92989, 0, 74016, 194781, 6542, 41957, 7318, 0, 0, 41956, 65749, 65750, - 65751, 121323, 64487, 0, 0, 10223, 42062, 100640, 101195, 125044, 3668, - 65754, 43560, 12226, 0, 93973, 194784, 41959, 194786, 194785, 194788, - 43618, 65747, 10937, 2962, 0, 2953, 10062, 65745, 71457, 8921, 66013, - 129370, 0, 194769, 194768, 43409, 194770, 2949, 194772, 194775, 194774, - 2958, 194776, 74868, 2300, 2951, 120061, 0, 120043, 194778, 0, 120051, - 194779, 120056, 120065, 70798, 120048, 0, 120062, 120055, 71989, 100668, - 0, 0, 71985, 0, 71992, 70796, 127818, 0, 0, 64890, 0, 43630, 11336, 799, - 0, 10276, 10308, 10372, 917541, 0, 0, 10252, 10260, 68220, 55284, 125225, - 0, 10384, 0, 0, 0, 64523, 129744, 0, 65736, 0, 0, 0, 0, 0, 0, 0, 124912, - 43549, 65738, 42150, 65739, 0, 78195, 10288, 10320, 0, 10596, 129829, - 67673, 65045, 121283, 78198, 2049, 10098, 0, 122904, 127943, 10264, - 10280, 10312, 10376, 7013, 0, 69504, 0, 0, 66375, 0, 4862, 0, 6537, 0, - 128335, 3914, 92178, 93976, 9065, 64816, 0, 72218, 73026, 0, 0, 72139, - 4694, 11420, 4690, 0, 0, 983209, 4693, 0, 0, 0, 4688, 0, 0, 0, 0, 8238, - 3110, 0, 983939, 0, 6528, 0, 0, 0, 218, 0, 1520, 129577, 70039, 0, - 983594, 0, 120167, 78167, 10088, 6548, 100786, 0, 0, 0, 8888, 0, 124954, - 0, 0, 126593, 68876, 0, 0, 0, 0, 0, 0, 0, 4689, 43541, 77954, 120157, 0, - 120156, 78810, 120163, 0, 0, 0, 0, 78121, 0, 0, 11450, 0, 71900, 92613, - 0, 121317, 74622, 128720, 9244, 0, 0, 127763, 0, 0, 0, 0, 0, 0, 71084, 0, - 0, 0, 0, 10513, 0, 0, 0, 52, 119178, 0, 0, 93961, 0, 0, 4812, 0, 0, 0, 0, - 0, 0, 128425, 0, 6850, 0, 77959, 10170, 120450, 6544, 0, 0, 69782, - 121517, 0, 0, 65258, 10369, 0, 1585, 74014, 10249, 422, 1500, 2036, 986, - 0, 64394, 69502, 5599, 917981, 2494, 0, 0, 74021, 983896, 78203, 127808, - 0, 72871, 65102, 8961, 74305, 10243, 10245, 128170, 0, 0, 0, 0, 0, 2508, - 129591, 120440, 0, 120439, 0, 0, 0, 0, 0, 0, 64533, 983186, 0, 0, 74008, - 0, 0, 43375, 0, 2504, 0, 121313, 0, 983941, 6943, 0, 5859, 100677, 0, 0, - 72873, 983945, 0, 0, 983923, 92390, 2753, 1936, 2153, 67701, 2751, 12662, - 2763, 8953, 0, 10731, 0, 7052, 0, 0, 0, 0, 119899, 0, 66675, 0, 119897, - 0, 71053, 0, 119903, 0, 67829, 7899, 119901, 71119, 43798, 7072, 119902, - 122898, 11260, 0, 71059, 0, 0, 212, 0, 12350, 0, 0, 0, 0, 0, 128402, - 2759, 0, 0, 93064, 0, 0, 0, 1291, 0, 195065, 121318, 119911, 0, 119910, - 0, 12062, 0, 121216, 0, 129124, 121044, 120611, 8246, 128874, 0, 0, 0, 0, - 0, 73962, 0, 0, 43524, 0, 64426, 0, 0, 0, 0, 65664, 6693, 0, 0, 8674, 0, - 128812, 0, 11846, 70690, 121461, 69395, 4811, 0, 5986, 0, 3046, 74480, - 5985, 0, 0, 0, 0, 12187, 83148, 71041, 5984, 0, 93817, 4393, 126264, - 120206, 917599, 0, 0, 0, 93806, 93805, 0, 3491, 0, 67146, 0, 93819, 0, - 72428, 0, 0, 0, 124968, 41284, 126228, 0, 0, 41287, 0, 100689, 0, 0, - 92189, 0, 0, 219, 120874, 0, 0, 0, 68485, 119672, 43241, 0, 7147, 0, 0, - 0, 0, 0, 0, 64610, 11804, 0, 7149, 64808, 0, 0, 0, 92301, 73690, 0, 5253, - 0, 0, 0, 0, 129045, 983596, 11098, 68433, 0, 120484, 111009, 0, 0, 0, 0, - 0, 70801, 100779, 0, 128198, 9604, 0, 130036, 0, 0, 118941, 64392, 0, - 118684, 0, 0, 41974, 126262, 0, 0, 0, 129818, 0, 129833, 0, 0, 0, 0, 0, - 983240, 5308, 0, 290, 0, 125278, 128382, 2792, 0, 0, 120521, 0, 126237, - 0, 126099, 0, 0, 0, 0, 128503, 0, 0, 72816, 0, 0, 0, 92671, 0, 195061, - 42646, 7606, 2591, 73896, 0, 43513, 64482, 0, 0, 65270, 0, 0, 983701, - 9112, 0, 113763, 9490, 0, 0, 0, 0, 0, 9071, 0, 0, 0, 0, 74607, 0, 2535, - 65504, 43602, 0, 0, 71256, 2248, 0, 123147, 11845, 11006, 92315, 7807, - 8073, 0, 10629, 0, 74088, 0, 10823, 0, 113762, 8762, 0, 69689, 123536, - 43969, 65047, 10737, 3463, 67467, 129585, 66645, 0, 4815, 0, 0, 12345, - 983761, 0, 5195, 129808, 0, 66639, 0, 0, 66941, 0, 92759, 92385, 1262, 0, - 6561, 19939, 0, 0, 100772, 123160, 69269, 0, 100774, 0, 0, 0, 0, 0, 0, - 67511, 0, 0, 0, 0, 0, 0, 5702, 3655, 0, 8430, 0, 68807, 0, 0, 121137, 0, - 0, 5254, 0, 0, 124917, 0, 119107, 5129, 0, 70816, 0, 92280, 5614, 0, 0, - 11720, 0, 11721, 70804, 4798, 0, 120541, 66038, 4793, 67851, 7352, 0, 0, - 0, 0, 917600, 0, 300, 0, 0, 128575, 92660, 0, 0, 2562, 70156, 120856, 0, - 0, 92738, 0, 0, 127820, 71093, 0, 127969, 128221, 0, 3424, 93843, 0, 0, - 7074, 70873, 128519, 0, 0, 10832, 0, 0, 69852, 72430, 0, 0, 0, 0, 0, 176, - 0, 0, 0, 0, 0, 1215, 0, 5744, 0, 66440, 0, 0, 0, 42881, 0, 8980, 118988, - 67861, 8844, 7433, 0, 0, 4278, 124925, 0, 0, 70821, 9312, 4348, 0, - 128401, 65946, 0, 7087, 5255, 0, 661, 0, 0, 0, 0, 0, 0, 0, 121009, 73694, - 0, 123154, 0, 73688, 0, 127179, 3621, 83325, 66666, 72968, 0, 6562, - 12928, 0, 73991, 0, 0, 11383, 0, 0, 65588, 120739, 0, 0, 0, 0, 0, 0, 0, - 0, 11436, 2070, 64, 110824, 0, 10291, 10323, 10387, 0, 0, 0, 42008, 9708, - 42710, 0, 42011, 0, 92164, 0, 0, 1702, 1240, 128383, 6286, 9689, 111080, - 0, 0, 0, 1765, 0, 0, 92373, 0, 0, 0, 8401, 72991, 42014, 0, 67237, 0, 0, - 0, 0, 0, 0, 0, 70819, 0, 0, 0, 0, 12667, 0, 0, 10147, 0, 127568, 126483, - 72812, 0, 0, 0, 0, 123139, 128968, 0, 64947, 0, 0, 0, 0, 10435, 11462, 0, - 7084, 0, 0, 0, 0, 0, 126084, 0, 66662, 0, 0, 0, 0, 125134, 0, 0, 77990, - 263, 983747, 41288, 127953, 0, 78387, 74340, 70313, 129140, 0, 0, 0, - 42022, 71265, 0, 0, 0, 0, 0, 0, 42020, 123146, 0, 6992, 42019, 0, 41290, - 0, 12295, 126233, 71304, 0, 120984, 71300, 120631, 5954, 64931, 69385, - 100699, 198, 68453, 78129, 0, 121351, 0, 70818, 13165, 7107, 0, 42804, - 678, 72850, 118960, 0, 72985, 42806, 42808, 0, 0, 2097, 0, 120560, 70823, - 0, 0, 3892, 68632, 0, 6712, 917959, 0, 0, 0, 0, 123158, 69954, 0, 497, - 12100, 5953, 92667, 7796, 0, 43254, 0, 0, 11072, 5952, 1281, 43747, 0, - 69380, 10677, 0, 0, 0, 1859, 0, 72856, 3425, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 65199, 1738, 0, 122911, 0, 0, 0, 11101, 0, 0, 0, 0, 127002, 69651, - 4436, 194683, 73984, 6860, 70305, 64872, 128296, 0, 0, 0, 121377, 0, - 6862, 0, 6861, 983108, 0, 119109, 0, 70826, 319, 0, 43479, 73001, 0, 0, - 12849, 0, 7640, 71083, 9673, 0, 0, 0, 92670, 0, 92665, 113717, 41422, 0, - 100708, 74941, 3772, 0, 120660, 5011, 0, 0, 126587, 111315, 0, 0, 6677, - 111312, 0, 41427, 64419, 129445, 92262, 0, 70799, 0, 0, 0, 6106, 0, - 41271, 6760, 983758, 4534, 41270, 128876, 0, 0, 119561, 0, 0, 3671, 8976, - 123177, 0, 41275, 0, 128084, 55261, 0, 42013, 0, 568, 0, 41273, 0, 0, - 6728, 0, 9715, 0, 0, 121058, 74820, 0, 92268, 0, 194564, 11191, 43688, - 128023, 0, 0, 0, 126266, 0, 0, 0, 11958, 11165, 0, 125087, 0, 0, 66336, - 127944, 0, 0, 0, 0, 42858, 11789, 72878, 5557, 0, 69444, 7300, 0, 9467, - 5558, 64486, 43844, 0, 0, 6706, 10146, 0, 127185, 64566, 0, 0, 0, 0, 0, - 0, 0, 4546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64528, 123136, 6307, 128966, 0, - 7544, 0, 43469, 111317, 0, 10152, 0, 65091, 0, 0, 0, 0, 66652, 0, 0, 0, - 0, 64823, 5559, 0, 70711, 6702, 5556, 0, 0, 0, 0, 0, 11166, 0, 0, 5506, - 0, 1911, 73021, 0, 12598, 8845, 66698, 0, 73012, 123145, 0, 2098, 0, 0, - 0, 66622, 194678, 0, 0, 0, 9898, 0, 0, 7552, 0, 0, 0, 7223, 65723, 0, 0, - 0, 7024, 65728, 127155, 1210, 0, 65175, 10184, 65726, 43654, 0, 0, 0, 38, - 65729, 66669, 0, 917948, 0, 0, 0, 0, 0, 0, 74233, 73018, 119843, 42860, - 111301, 92576, 65721, 65722, 0, 0, 0, 0, 68843, 0, 68850, 0, 92388, - 92267, 128536, 65577, 42967, 0, 127518, 11650, 5013, 92663, 68810, 92568, - 118914, 6613, 74371, 0, 0, 0, 0, 64714, 71479, 0, 983797, 12120, 0, 0, - 43124, 0, 0, 78037, 69263, 0, 126219, 0, 0, 1837, 125086, 0, 0, 0, - 127210, 4952, 65718, 64405, 5504, 65720, 65714, 65715, 65716, 10403, - 127005, 0, 41449, 0, 74028, 72019, 0, 119234, 1127, 455, 0, 0, 72860, - 3483, 0, 1989, 0, 69678, 9104, 0, 65375, 0, 0, 0, 1864, 0, 72810, 8107, - 2540, 0, 0, 11257, 128807, 119576, 0, 120999, 0, 0, 8604, 0, 0, 0, 0, - 128270, 0, 0, 3115, 0, 10106, 120498, 118842, 101136, 0, 9631, 0, 0, 0, - 0, 0, 0, 0, 258, 129079, 0, 0, 0, 92292, 0, 70699, 0, 11478, 0, 129640, - 11522, 0, 8549, 0, 128430, 0, 0, 0, 0, 0, 0, 123140, 0, 0, 0, 9221, - 12590, 73048, 0, 0, 0, 67741, 111294, 12619, 0, 10154, 111266, 74439, - 2039, 0, 7446, 0, 111276, 10974, 458, 72831, 0, 0, 0, 11916, 0, 0, 69671, - 0, 121057, 12288, 0, 111288, 0, 111289, 983176, 0, 128199, 13080, 0, - 67828, 6610, 6030, 8059, 7508, 123170, 0, 0, 0, 0, 41278, 129393, 118691, - 128192, 41277, 64658, 984002, 101278, 6625, 983159, 19904, 0, 0, 0, 0, 0, - 0, 833, 0, 6369, 0, 0, 42664, 0, 0, 0, 0, 129765, 0, 6913, 933, 1341, - 68828, 6720, 0, 0, 983604, 0, 0, 7405, 128025, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 128037, 0, 0, 0, 0, 0, 0, 0, 127188, 92977, + 69708, 9638, 0, 100878, 0, 0, 0, 74545, 128820, 128819, 75062, 128963, 0, + 0, 0, 11264, 43994, 0, 0, 0, 1311, 0, 0, 0, 0, 13068, 0, 0, 78164, 78155, + 0, 949, 0, 0, 0, 78176, 69709, 78177, 63828, 0, 0, 118629, 70282, 0, 0, + 0, 64822, 0, 6530, 983275, 0, 70493, 0, 129325, 0, 0, 4431, 118839, + 127490, 983760, 73667, 127986, 0, 10336, 10400, 0, 0, 92959, 0, 0, 0, + 42270, 128880, 6428, 0, 0, 0, 0, 43455, 0, 43526, 100888, 12835, 129501, + 9493, 0, 0, 11793, 0, 127897, 74394, 0, 10653, 0, 0, 0, 0, 6560, 7016, + 74274, 983627, 43556, 3929, 123615, 6614, 2768, 0, 65609, 0, 11811, + 129696, 0, 118615, 127513, 0, 6554, 0, 6305, 66283, 4675, 118826, 78552, + 0, 0, 74361, 0, 0, 68108, 0, 0, 92232, 0, 93022, 7392, 8230, 9365, + 983742, 0, 0, 0, 0, 42925, 0, 0, 122965, 0, 229, 43834, 119884, 0, 43552, + 119881, 119880, 119883, 119882, 119877, 119876, 119879, 119878, 119873, + 119872, 119875, 119874, 0, 0, 0, 0, 0, 66352, 0, 0, 0, 128663, 0, 12239, + 0, 0, 10432, 12097, 0, 194815, 1233, 78179, 0, 127200, 0, 66395, 0, 0, + 129504, 0, 0, 92342, 0, 2388, 92555, 119868, 119871, 119870, 119865, 895, + 92668, 119866, 64889, 7143, 119863, 119862, 0, 0, 69983, 0, 74376, 3053, + 2168, 0, 2047, 0, 0, 0, 121279, 67985, 194801, 92600, 194803, 194802, + 194805, 194804, 194807, 194806, 129134, 194808, 0, 0, 0, 10473, 129331, + 0, 194810, 129806, 194812, 129813, 194814, 194813, 123195, 43528, 69673, + 194791, 0, 194793, 1912, 120779, 10306, 10370, 0, 0, 8867, 10250, 10258, + 10274, 1635, 120152, 0, 0, 0, 129379, 0, 0, 9919, 120148, 559, 128157, + 41825, 127975, 92989, 0, 74016, 194781, 6542, 41957, 7318, 124126, 0, + 41956, 65749, 65750, 65751, 121323, 64487, 0, 0, 10223, 42062, 100640, + 101195, 125044, 3668, 65754, 43560, 12226, 0, 93973, 194784, 41959, + 194786, 194785, 194788, 43618, 65747, 10937, 2962, 0, 2953, 10062, 65745, + 71457, 8921, 66013, 129370, 0, 194769, 194768, 43409, 194770, 2949, + 194772, 194775, 194774, 2958, 194776, 74868, 2300, 2951, 120061, 0, + 120043, 194778, 0, 120051, 194779, 120056, 120065, 70798, 120048, 0, + 120062, 120055, 71989, 100668, 0, 0, 71985, 0, 71992, 70796, 127818, 0, + 0, 64890, 0, 43630, 11336, 799, 0, 10276, 10308, 10372, 917541, 0, 0, + 10252, 10260, 68220, 55284, 125225, 0, 10384, 0, 0, 0, 64523, 129744, 0, + 65736, 0, 0, 0, 0, 0, 0, 0, 124912, 43549, 65738, 42150, 65739, 0, 78195, + 10288, 10320, 0, 10596, 129829, 67673, 65045, 121283, 78198, 2049, 10098, + 0, 122904, 127943, 10264, 10280, 10312, 10376, 7013, 0, 69504, 0, 0, + 66375, 0, 4862, 0, 6537, 0, 128335, 3914, 92178, 93976, 9065, 64816, 0, + 72218, 73026, 0, 0, 72139, 4694, 11420, 4690, 0, 0, 983211, 4693, 0, 0, + 0, 4688, 0, 0, 128892, 0, 8238, 3110, 0, 983939, 0, 6528, 0, 0, 0, 218, + 0, 1520, 129577, 70039, 0, 983594, 0, 120167, 78167, 10088, 6548, 100786, + 0, 0, 0, 8888, 0, 124954, 0, 0, 126593, 68876, 0, 0, 0, 0, 0, 0, 0, 4689, + 43541, 77954, 120157, 0, 120156, 78810, 120163, 0, 0, 0, 0, 78121, 0, 0, + 11450, 0, 71900, 92613, 0, 121317, 74622, 128720, 9244, 0, 0, 127763, 0, + 0, 0, 0, 0, 0, 71084, 0, 0, 0, 0, 10513, 0, 0, 0, 52, 119178, 0, 0, + 93961, 0, 0, 4812, 0, 0, 0, 0, 0, 0, 128425, 0, 6850, 0, 77959, 10170, + 120450, 6544, 0, 0, 69782, 121517, 0, 0, 65258, 10369, 0, 1585, 74014, + 10249, 422, 1500, 2036, 986, 0, 64394, 69502, 5599, 917981, 2494, 0, 0, + 74021, 983896, 78203, 127808, 0, 72871, 65102, 8961, 74305, 10243, 10245, + 128170, 0, 0, 0, 0, 0, 2508, 129591, 120440, 0, 120439, 0, 0, 0, 0, 0, 0, + 64533, 983187, 0, 0, 74008, 0, 0, 43375, 0, 2504, 0, 121313, 0, 983941, + 6943, 0, 5859, 100677, 0, 0, 72873, 983945, 0, 0, 983923, 92390, 2753, + 1936, 2153, 67701, 2751, 12662, 2763, 8953, 0, 10731, 0, 7052, 0, 0, 0, + 0, 119899, 0, 66675, 0, 119897, 0, 71053, 0, 119903, 0, 67829, 7899, + 119901, 71119, 43798, 7072, 119902, 122898, 11260, 0, 71059, 0, 0, 212, + 0, 12350, 0, 0, 0, 0, 0, 128402, 2759, 0, 0, 93064, 0, 0, 0, 1291, 0, + 195065, 121318, 119911, 0, 119910, 0, 12062, 0, 121216, 0, 129124, + 121044, 120611, 8246, 128874, 0, 0, 0, 0, 0, 73962, 0, 0, 43524, 0, + 64426, 0, 0, 0, 0, 65664, 6693, 0, 0, 8674, 0, 128812, 0, 11846, 70690, + 121461, 69395, 4811, 0, 5986, 0, 3046, 74480, 5985, 0, 0, 0, 0, 12187, + 83148, 71041, 5984, 0, 93817, 4393, 126264, 120206, 917599, 0, 0, 0, + 93806, 93805, 0, 3491, 0, 67146, 0, 93819, 0, 72428, 0, 0, 0, 124968, + 41284, 126228, 0, 0, 41287, 0, 100689, 0, 0, 92189, 0, 0, 219, 120874, 0, + 0, 0, 68485, 119672, 43241, 0, 7147, 73554, 0, 0, 0, 0, 0, 64610, 11804, + 0, 7149, 64808, 0, 0, 0, 92301, 73690, 0, 5253, 0, 0, 0, 0, 129045, + 983596, 11098, 68433, 0, 120484, 111009, 0, 0, 0, 0, 0, 70801, 100779, 0, + 128198, 9604, 0, 130036, 0, 0, 118941, 64392, 0, 118684, 0, 0, 41974, + 126262, 0, 0, 0, 129818, 0, 129833, 0, 0, 0, 0, 0, 983243, 5308, 0, 290, + 0, 125278, 128382, 2792, 0, 0, 120521, 0, 126237, 0, 126099, 0, 0, 0, 0, + 128503, 0, 0, 72816, 0, 0, 0, 92671, 0, 195061, 42646, 7606, 2591, 73896, + 0, 43513, 64482, 0, 0, 65270, 0, 0, 983701, 9112, 0, 113763, 9490, 0, 0, + 0, 0, 0, 9071, 0, 0, 0, 0, 74607, 0, 2535, 65504, 43602, 0, 0, 71256, + 2248, 0, 123147, 11845, 11006, 92315, 7807, 8073, 0, 10629, 0, 74088, 0, + 10823, 0, 113762, 8762, 0, 69689, 123536, 43969, 65047, 10737, 3463, + 67467, 129585, 66645, 0, 4815, 0, 0, 12345, 983761, 0, 5195, 129808, 0, + 66639, 0, 0, 66941, 0, 92759, 92385, 1262, 0, 6561, 19939, 0, 0, 100772, + 123160, 69269, 0, 100774, 0, 0, 0, 0, 0, 0, 67511, 0, 0, 0, 0, 0, 0, + 5702, 3655, 0, 8430, 0, 68807, 0, 0, 121137, 0, 0, 5254, 0, 0, 124917, 0, + 119107, 5129, 0, 70816, 0, 92280, 5614, 0, 0, 11720, 0, 11721, 70804, + 4798, 0, 120541, 66038, 4793, 67851, 7352, 0, 0, 0, 0, 917600, 0, 300, 0, + 0, 128575, 92660, 0, 0, 2562, 70156, 120856, 0, 0, 92738, 0, 0, 127820, + 71093, 0, 127969, 128221, 0, 3424, 93843, 0, 0, 7074, 70873, 128519, 0, + 0, 10832, 0, 0, 69852, 72430, 0, 0, 0, 0, 0, 176, 0, 0, 0, 0, 0, 1215, 0, + 5744, 0, 66440, 0, 0, 0, 42881, 0, 8980, 118988, 67861, 8844, 7433, 0, 0, + 4278, 124925, 0, 0, 70821, 9312, 4348, 0, 128401, 65946, 0, 7087, 5255, + 0, 661, 0, 0, 0, 0, 0, 0, 0, 121009, 73694, 0, 123154, 0, 73688, 0, + 127179, 3621, 83325, 66666, 72968, 0, 6562, 12928, 0, 73991, 0, 0, 11383, + 0, 0, 65588, 120739, 0, 0, 0, 0, 0, 0, 0, 0, 11436, 2070, 64, 110824, 0, + 10291, 10323, 10387, 0, 0, 0, 42008, 9708, 42710, 0, 42011, 0, 92164, 0, + 0, 1702, 1240, 128383, 6286, 9689, 111080, 0, 0, 0, 1765, 0, 0, 92373, 0, + 0, 0, 8401, 72991, 42014, 0, 67237, 0, 0, 0, 0, 0, 0, 0, 70819, 0, 0, 0, + 0, 12667, 0, 0, 10147, 0, 127568, 126483, 72812, 0, 0, 0, 0, 123139, + 128968, 0, 64947, 0, 0, 0, 0, 10435, 11462, 0, 7084, 0, 0, 0, 0, 0, + 126084, 0, 66662, 0, 0, 0, 0, 125134, 0, 0, 77990, 263, 983747, 41288, + 127953, 0, 78387, 74340, 70313, 129140, 0, 0, 0, 42022, 71265, 0, 0, 0, + 0, 0, 0, 42020, 123146, 0, 6992, 42019, 0, 41290, 0, 12295, 126233, + 71304, 0, 120984, 71300, 120631, 5954, 64931, 69385, 100699, 198, 68453, + 78129, 0, 121351, 0, 70818, 13165, 7107, 0, 42804, 678, 72850, 118960, 0, + 72985, 42806, 42808, 0, 0, 2097, 0, 120560, 70823, 0, 0, 3892, 68632, 0, + 6712, 917959, 0, 0, 0, 0, 123158, 69954, 0, 497, 12100, 5953, 92667, + 7796, 0, 43254, 0, 0, 11072, 5952, 1281, 43747, 0, 69380, 10677, 0, 0, 0, + 1859, 0, 72856, 3425, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65199, 1738, 0, + 122911, 0, 0, 0, 11101, 0, 0, 0, 0, 127002, 69651, 4436, 194683, 73984, + 6860, 70305, 64872, 128296, 0, 0, 0, 121377, 0, 6862, 0, 6861, 983109, 0, + 119109, 0, 70826, 319, 0, 43479, 73001, 0, 0, 12849, 0, 7640, 71083, + 9673, 0, 0, 0, 92670, 0, 92665, 113717, 41422, 0, 100708, 74941, 3772, 0, + 120660, 5011, 0, 0, 126587, 111315, 0, 0, 6677, 111312, 0, 41427, 64419, + 129445, 92262, 0, 70799, 0, 0, 0, 6106, 0, 41271, 6760, 983758, 4534, + 41270, 128876, 0, 0, 119561, 0, 0, 3671, 8976, 123177, 0, 41275, 0, + 128084, 55261, 0, 42013, 0, 568, 0, 41273, 0, 0, 6728, 0, 9715, 0, 0, + 121058, 74820, 0, 92268, 0, 194564, 11191, 43688, 128023, 0, 0, 0, + 126266, 0, 0, 0, 11958, 11165, 0, 125087, 0, 0, 66336, 127944, 0, 0, 0, + 0, 42858, 11789, 72878, 5557, 0, 69444, 7300, 0, 9467, 5558, 64486, + 43844, 0, 0, 6706, 10146, 0, 127185, 64566, 0, 0, 0, 0, 0, 0, 0, 4546, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 64528, 123136, 6307, 128966, 0, 7544, 0, 43469, + 111317, 0, 10152, 0, 65091, 0, 129047, 0, 0, 66652, 0, 0, 0, 0, 64823, + 5559, 0, 70711, 6702, 5556, 0, 0, 0, 0, 0, 11166, 0, 0, 5506, 0, 1911, + 73021, 0, 12598, 8845, 66698, 0, 73012, 123145, 73496, 2098, 0, 0, 0, + 66622, 194678, 0, 0, 0, 9898, 0, 0, 7552, 0, 0, 0, 7223, 65723, 0, 0, 0, + 7024, 65728, 127155, 1210, 0, 65175, 10184, 65726, 43654, 0, 0, 0, 38, + 65729, 66669, 0, 917948, 0, 0, 0, 0, 119837, 0, 74233, 73018, 119843, + 42860, 111301, 92576, 65721, 65722, 0, 0, 0, 0, 68843, 0, 68850, 0, + 92388, 92267, 128536, 65577, 42967, 0, 127518, 11650, 5013, 92663, 68810, + 92568, 118914, 6613, 74371, 0, 0, 122985, 0, 64714, 71479, 0, 983797, + 12120, 0, 0, 43124, 0, 0, 78037, 69263, 0, 126219, 0, 0, 1837, 125086, 0, + 0, 0, 127210, 4952, 65718, 64405, 5504, 65720, 65714, 65715, 65716, + 10403, 127005, 0, 41449, 0, 74028, 72019, 0, 119234, 1127, 455, 0, 0, + 72860, 3483, 0, 1989, 0, 69678, 9104, 0, 65375, 0, 0, 0, 1864, 0, 72810, + 8107, 2540, 0, 0, 11257, 128807, 119576, 0, 120999, 0, 73501, 8604, 0, 0, + 0, 0, 128270, 0, 0, 3115, 0, 10106, 120498, 118842, 101136, 0, 9631, 0, + 0, 0, 0, 0, 0, 0, 258, 129079, 0, 0, 0, 92292, 0, 70699, 0, 11478, 0, + 129640, 11522, 0, 8549, 0, 128430, 0, 0, 0, 0, 0, 0, 123140, 0, 0, 0, + 9221, 12590, 73048, 0, 0, 0, 67741, 111294, 12619, 0, 10154, 111266, + 74439, 2039, 0, 7446, 0, 111276, 10974, 458, 72831, 0, 0, 0, 11916, 0, 0, + 69671, 0, 121057, 12288, 0, 111288, 0, 111289, 983177, 0, 128199, 13080, + 0, 67828, 6610, 6030, 8059, 7508, 123170, 0, 0, 0, 0, 41278, 129393, + 118691, 128192, 41277, 64658, 984002, 101278, 6625, 983160, 19904, 0, 0, + 0, 0, 0, 0, 833, 0, 6369, 0, 0, 42664, 0, 0, 0, 0, 129765, 0, 6913, 933, + 1341, 68828, 6720, 0, 0, 983604, 0, 0, 7405, 128025, 0, 0, 0, 0, 0, 0, 0, 70704, 0, 0, 0, 0, 9716, 0, 0, 0, 70719, 0, 0, 0, 0, 72862, 70687, 0, 93987, 0, 0, 0, 70721, 9573, 0, 0, 111245, 83225, 83226, 6949, 126482, 74061, 83222, 83223, 83224, 0, 19962, 83219, 83220, 0, 111233, 0, 42830, 0, 111234, 74236, 66276, 0, 546, 72861, 0, 70661, 0, 472, 11083, 10319, 10383, 917971, 0, 83202, 83203, 3602, 83206, 41182, 83199, 83200, 69796, - 41183, 0, 10271, 10287, 684, 0, 0, 0, 83214, 4592, 83216, 83217, 83210, + 3790, 0, 10271, 10287, 684, 0, 0, 0, 83214, 4592, 83216, 83217, 83210, 11963, 43620, 83213, 0, 0, 83208, 83209, 0, 92623, 128559, 3415, 0, 121267, 0, 0, 123151, 43447, 0, 92212, 0, 418, 0, 0, 10295, 10327, 10391, 0, 83189, 83190, 83192, 83194, 83185, 83186, 83187, 83188, 120879, 0, - 41446, 70700, 118652, 0, 120809, 10599, 66892, 0, 0, 0, 0, 0, 0, 11437, - 0, 0, 0, 0, 0, 0, 12624, 0, 41185, 72865, 69439, 8159, 0, 11686, 71478, - 65224, 0, 4655, 0, 0, 92183, 0, 10343, 10407, 0, 0, 0, 111221, 0, 0, 0, - 94057, 68201, 129574, 0, 983572, 72156, 42792, 5743, 10424, 0, 0, 0, 0, - 0, 8875, 111225, 0, 917991, 13117, 12847, 4651, 118917, 0, 962, 0, 0, - 2242, 42564, 0, 1582, 0, 5508, 0, 0, 0, 10801, 123602, 118798, 73705, 0, - 66911, 10439, 66891, 0, 0, 7860, 0, 906, 917985, 0, 6405, 64722, 0, + 41446, 70700, 118652, 0, 120809, 10599, 66892, 0, 0, 0, 0, 0, 129184, + 11437, 0, 0, 0, 0, 0, 0, 12624, 0, 41185, 72865, 69439, 8159, 0, 11686, + 71478, 65224, 0, 4655, 0, 0, 92183, 0, 10343, 10407, 0, 0, 0, 111221, 0, + 0, 0, 94057, 68201, 129574, 0, 983572, 72156, 42792, 5743, 10424, 0, 0, + 0, 0, 0, 8875, 111225, 0, 917991, 13117, 12847, 4651, 118917, 0, 962, 0, + 0, 2242, 42564, 0, 1582, 0, 5508, 0, 0, 0, 10801, 123602, 118798, 73705, + 0, 66911, 10439, 66891, 0, 0, 7860, 0, 906, 917985, 0, 6405, 64722, 0, 83266, 64694, 83268, 917990, 1153, 83263, 64788, 83265, 0, 12626, 83260, 83261, 9964, 0, 0, 4642, 66574, 127886, 0, 0, 0, 0, 0, 9008, 100847, 0, 0, 0, 83248, 917976, 917993, 123173, 42842, 83244, 83245, 83247, 83239, @@ -28267,344 +28459,345 @@ static const unsigned int code_hash[] = { 41967, 83258, 83251, 83252, 83253, 8920, 0, 0, 83249, 83250, 0, 0, 43919, 0, 0, 0, 0, 128021, 0, 68113, 65196, 0, 0, 128472, 0, 10111, 64875, 0, 83491, 43998, 83232, 83233, 83234, 70691, 83228, 42149, 83230, 68508, 0, - 0, 0, 0, 0, 0, 0, 4110, 66005, 74034, 0, 0, 0, 66703, 0, 0, 983157, 6025, - 69242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70733, 0, 983043, 0, 0, 0, 68817, 0, 0, - 0, 0, 0, 0, 43286, 0, 68765, 0, 0, 0, 0, 129871, 65144, 0, 0, 83236, - 65840, 0, 0, 10081, 0, 0, 983912, 0, 0, 0, 127394, 65882, 0, 128758, 0, - 0, 3605, 10985, 0, 0, 128872, 93972, 1745, 0, 73835, 0, 0, 0, 0, 0, 0, - 8806, 7023, 0, 0, 0, 70702, 70304, 0, 0, 0, 0, 0, 0, 0, 0, 348, 10089, 0, - 9017, 0, 0, 0, 0, 0, 0, 0, 67465, 0, 42515, 0, 0, 0, 0, 5391, 983237, - 110576, 0, 0, 5561, 0, 9429, 0, 67150, 7933, 5562, 0, 0, 0, 0, 78039, 0, - 0, 0, 0, 3979, 71248, 0, 0, 0, 68847, 0, 0, 118847, 65847, 68836, 68838, - 0, 10585, 0, 92676, 7334, 0, 0, 0, 831, 0, 0, 10716, 0, 121325, 0, 12218, - 0, 6939, 70697, 65042, 0, 0, 916, 0, 0, 11968, 0, 122641, 5563, 0, 0, - 128830, 5560, 41212, 41774, 0, 4497, 0, 0, 0, 9039, 70678, 41776, 0, - 8716, 3567, 119252, 0, 0, 74260, 0, 93954, 0, 0, 100827, 0, 128879, - 70072, 68355, 68357, 0, 0, 8634, 0, 0, 4209, 120702, 68832, 65879, 68825, - 68819, 68822, 0, 5679, 68813, 68815, 68811, 68812, 64697, 5678, 11821, - 68802, 93969, 0, 0, 0, 0, 70114, 0, 0, 0, 0, 0, 0, 0, 0, 7782, 0, 0, 0, - 0, 129977, 65711, 65712, 1216, 0, 69409, 5792, 0, 0, 0, 0, 0, 12244, 0, - 5683, 0, 120895, 121336, 43448, 70670, 0, 0, 5682, 10242, 75043, 74520, - 5680, 917568, 10001, 0, 0, 1449, 10241, 0, 70708, 0, 0, 83180, 83182, - 83183, 8584, 83176, 5567, 83178, 83179, 0, 5564, 42886, 42884, 42882, - 5565, 119022, 120881, 0, 65708, 65709, 5566, 0, 65704, 65705, 11904, - 42875, 0, 42873, 5942, 0, 0, 10361, 10425, 65697, 65698, 65699, 0, 66598, - 0, 64664, 10647, 78702, 78703, 78690, 78700, 0, 65701, 1934, 0, 0, 0, - 78710, 0, 78706, 78709, 6087, 78705, 78716, 78719, 78711, 8043, 8950, - 65694, 64485, 0, 10457, 0, 78724, 78725, 78722, 72332, 78720, 78721, 0, - 65515, 0, 10035, 13069, 0, 0, 127773, 0, 0, 0, 125207, 0, 0, 1667, 0, 0, - 42428, 110950, 0, 0, 41750, 0, 0, 93999, 0, 8101, 3610, 113670, 41748, - 110948, 0, 78394, 119208, 0, 0, 113691, 64549, 68359, 0, 0, 65692, 92701, - 0, 917960, 12896, 10456, 68298, 0, 0, 0, 0, 917962, 0, 0, 113665, 70502, - 0, 65687, 0, 0, 74009, 0, 113673, 8536, 70671, 0, 78726, 0, 724, 0, - 113675, 78749, 9975, 78746, 78747, 78744, 4175, 78741, 78743, 78751, 939, - 0, 128799, 983119, 0, 0, 0, 78763, 78764, 78760, 78761, 78758, 78759, - 78755, 8425, 0, 0, 0, 8188, 0, 0, 0, 0, 0, 6370, 0, 7827, 68441, 75008, - 0, 917943, 0, 118863, 0, 0, 0, 0, 121243, 73988, 0, 113668, 0, 11012, 0, - 43764, 178, 12972, 74620, 113671, 0, 113735, 0, 66764, 0, 0, 65690, - 72339, 0, 0, 917950, 9252, 0, 4652, 74259, 0, 917947, 0, 0, 0, 10806, 0, - 0, 70016, 0, 6723, 0, 0, 6993, 0, 0, 12855, 0, 0, 11390, 0, 0, 0, 92503, - 0, 0, 983161, 125270, 92627, 8278, 0, 4034, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 12750, 9350, 66037, 0, 0, 73700, 12747, 0, 0, 128064, 8922, 74640, 0, 0, - 43150, 0, 983090, 983088, 66779, 66777, 10813, 2592, 43139, 0, 0, 118612, - 0, 0, 71891, 0, 0, 0, 0, 0, 0, 71697, 0, 128825, 1596, 0, 0, 0, 0, 6838, - 66572, 0, 126574, 120627, 8092, 12805, 41928, 0, 78406, 78409, 0, 0, 0, - 9931, 0, 0, 0, 0, 0, 983778, 6107, 0, 0, 0, 0, 128745, 0, 335, 127003, - 64689, 0, 0, 5765, 0, 0, 119227, 6092, 118851, 0, 8876, 83465, 74947, - 83455, 129186, 83454, 70713, 0, 0, 126606, 70121, 41602, 0, 92308, 74831, - 0, 11783, 68482, 0, 0, 0, 0, 0, 0, 843, 0, 71099, 0, 0, 41935, 0, 0, 0, - 0, 1371, 0, 43818, 43159, 8069, 9579, 41938, 41608, 0, 92444, 6242, 0, 0, - 128595, 128244, 0, 92499, 8805, 1742, 113722, 0, 8202, 72399, 0, 983197, - 0, 0, 73882, 100809, 0, 43467, 123636, 55290, 0, 1712, 5932, 0, 41762, - 71982, 0, 11967, 1775, 0, 75009, 0, 11868, 120387, 9458, 0, 126614, 0, 0, - 43176, 101032, 101031, 42782, 101033, 101036, 101035, 101038, 101037, - 101040, 101039, 0, 0, 0, 0, 101041, 5794, 92274, 2662, 101045, 101044, - 8254, 101046, 10975, 101048, 120625, 101050, 917977, 4108, 8478, 917982, - 194790, 0, 92263, 917980, 7507, 0, 43149, 0, 65031, 7961, 1636, 0, 65029, - 0, 129665, 70188, 9674, 0, 99, 98, 97, 101022, 92203, 4049, 101027, - 43880, 7090, 101028, 0, 101030, 66589, 0, 65310, 66593, 66599, 129805, 0, - 0, 7447, 66594, 0, 0, 0, 73920, 66595, 66596, 42570, 5593, 0, 0, 0, 0, - 6061, 64854, 119, 118, 117, 116, 0, 122, 121, 120, 111, 110, 109, 108, - 115, 114, 113, 112, 103, 102, 101, 100, 107, 106, 105, 104, 128504, - 73974, 534, 0, 67713, 1536, 73973, 73970, 0, 0, 0, 6020, 12716, 0, 12744, - 65143, 0, 13266, 127813, 0, 0, 0, 127116, 0, 1212, 65560, 0, 8134, 42935, - 12129, 73870, 0, 1866, 0, 0, 0, 0, 65073, 12059, 66585, 121391, 0, 0, 0, - 5935, 1250, 0, 8174, 9787, 6733, 9859, 9858, 9861, 9860, 101012, 1882, - 1892, 6731, 10882, 10795, 101018, 73911, 101020, 101019, 41169, 8939, 0, - 120713, 41170, 1454, 0, 65130, 69732, 0, 0, 129611, 41172, 7855, 0, - 71472, 0, 0, 0, 71691, 65901, 0, 0, 645, 100992, 100991, 100994, 100993, - 100996, 100995, 100998, 65587, 0, 10688, 0, 0, 7729, 0, 101001, 120518, - 101003, 66722, 101005, 101004, 68415, 101006, 4538, 101008, 43141, 0, 0, - 73699, 0, 0, 0, 71918, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71454, 0, 2381, 983752, - 0, 0, 69857, 100981, 0, 100983, 100982, 100985, 10856, 100987, 55255, - 41478, 8582, 10064, 0, 0, 0, 0, 64896, 0, 74609, 0, 128048, 10082, 11575, - 0, 0, 0, 917505, 0, 6145, 75020, 0, 92433, 71916, 83279, 43186, 0, 0, - 83274, 83276, 83277, 83278, 10191, 83271, 69633, 72353, 0, 0, 0, 0, - 120090, 120089, 7931, 8558, 917946, 0, 0, 0, 119145, 120081, 120084, - 120083, 120086, 71449, 120088, 7366, 7019, 75021, 0, 917951, 120078, - 120077, 120080, 8657, 100967, 8594, 100969, 100968, 0, 100970, 120072, - 120071, 0, 0, 43154, 0, 0, 11332, 0, 7728, 100978, 100977, 100980, - 100979, 7851, 0, 8375, 128662, 0, 0, 126095, 9085, 0, 0, 9327, 6160, 0, - 0, 0, 0, 70698, 74012, 0, 0, 4439, 121151, 100972, 100971, 100974, - 100973, 100976, 100975, 100956, 42524, 71220, 100957, 10826, 100959, - 11296, 0, 0, 0, 7504, 43161, 127868, 0, 64670, 0, 78056, 0, 11295, 0, - 78053, 0, 0, 0, 10902, 0, 0, 122650, 78068, 10472, 100954, 100953, - 120215, 78062, 2371, 78069, 118893, 259, 0, 0, 2402, 12157, 6440, 0, - 100963, 100962, 100965, 100964, 65380, 9103, 2278, 0, 0, 7301, 0, 10219, - 0, 0, 0, 67718, 43178, 0, 120214, 119362, 917974, 8613, 0, 126121, - 917978, 917979, 121449, 12005, 7353, 0, 1890, 129130, 0, 0, 0, 42815, - 7991, 0, 10578, 0, 0, 0, 0, 0, 0, 0, 111190, 120601, 42668, 9348, 0, - 6164, 0, 0, 0, 7676, 0, 0, 0, 0, 0, 129422, 83443, 71096, 83444, 9175, 0, - 78047, 9088, 73689, 0, 1396, 0, 0, 11461, 71088, 127835, 92252, 0, 71090, - 121185, 69872, 0, 0, 0, 0, 74043, 119632, 0, 0, 0, 5928, 4525, 10658, 0, - 1266, 10180, 64472, 0, 12622, 0, 0, 0, 0, 127139, 13310, 773, 19933, 0, - 0, 0, 0, 92205, 0, 0, 0, 0, 5862, 7823, 0, 0, 0, 3250, 43991, 69687, - 66649, 0, 0, 0, 0, 0, 64673, 917963, 917964, 0, 0, 917967, 917968, - 917965, 917966, 127791, 75041, 3471, 917970, 64573, 882, 0, 119584, 0, - 120772, 0, 0, 0, 92696, 0, 0, 72988, 0, 3225, 0, 73729, 0, 0, 43173, - 11752, 4381, 0, 0, 917945, 11756, 11757, 917944, 917949, 42654, 127848, - 118663, 0, 0, 5160, 1387, 0, 917953, 0, 128933, 917956, 917957, 917954, - 917955, 118595, 121082, 917958, 10789, 68314, 0, 126521, 11143, 0, 0, - 70669, 128904, 42179, 0, 5931, 11744, 11215, 70676, 119245, 0, 0, 0, - 77915, 10217, 64635, 128661, 83292, 0, 0, 0, 0, 0, 41296, 11747, 41291, - 0, 0, 0, 41294, 41282, 5923, 120610, 0, 0, 0, 0, 66800, 5786, 68252, - 42539, 119869, 119860, 0, 41474, 0, 0, 0, 5934, 74572, 66583, 119231, 0, - 94072, 64481, 0, 0, 0, 0, 67240, 0, 0, 123201, 0, 5819, 0, 0, 0, 0, 0, - 129387, 0, 0, 0, 67993, 1237, 194749, 0, 0, 983557, 0, 0, 0, 0, 0, 0, 0, - 69789, 11266, 69845, 0, 10506, 194747, 0, 0, 0, 0, 43185, 194748, 100533, - 100532, 100535, 10769, 100537, 100536, 100539, 9753, 121035, 100540, 0, - 0, 121433, 0, 100542, 6072, 100544, 100543, 100546, 100545, 100548, - 100547, 100550, 100549, 0, 113744, 0, 0, 7222, 10283, 10315, 10379, 4996, - 0, 129294, 66517, 0, 10087, 127833, 74938, 0, 0, 83492, 7565, 42890, 0, - 77931, 43180, 77928, 74891, 77929, 43982, 100526, 622, 77926, 100527, - 100530, 1602, 0, 0, 0, 129559, 12160, 0, 10212, 77936, 194605, 12071, - 43143, 77935, 917983, 917984, 917989, 77932, 917987, 917988, 10255, - 10263, 10279, 4194, 10375, 93035, 0, 0, 12644, 127516, 917994, 75007, - 110791, 67408, 110789, 11501, 41177, 0, 0, 71912, 0, 0, 8715, 0, 41179, - 0, 0, 0, 41176, 0, 41181, 0, 8452, 121006, 13161, 0, 70503, 5921, 0, - 2597, 0, 5922, 72128, 0, 74242, 128374, 0, 0, 0, 0, 0, 0, 0, 127906, 0, - 64944, 0, 0, 0, 0, 5924, 5920, 129508, 6921, 78081, 74007, 78078, 8418, - 11681, 43169, 10176, 0, 0, 0, 78087, 10772, 65276, 5937, 1914, 78084, - 11682, 0, 0, 0, 11685, 0, 100513, 7772, 11680, 100514, 100517, 100516, - 100519, 7417, 718, 100520, 70083, 100500, 120718, 3235, 0, 43164, 0, - 8018, 0, 0, 128708, 6937, 67672, 128508, 0, 10067, 120849, 0, 0, 0, - 118693, 0, 100491, 0, 100493, 100492, 13116, 100494, 100497, 9945, - 100499, 100498, 0, 0, 0, 0, 2059, 0, 100502, 100501, 1431, 100503, 66565, - 100505, 100508, 12804, 100510, 100509, 78090, 3307, 78088, 78089, 0, - 4544, 71228, 0, 0, 0, 78097, 11110, 66810, 12882, 64511, 78094, 78100, - 78102, 71226, 10141, 0, 78280, 65298, 4476, 78109, 94005, 71216, 8907, - 78105, 78106, 78103, 78104, 120898, 0, 10665, 64616, 128944, 0, 127545, - 69605, 83159, 83160, 4554, 0, 83155, 83156, 83157, 83158, 0, 125123, 0, - 72258, 129831, 0, 129815, 0, 43179, 0, 0, 0, 717, 10754, 83168, 83169, - 83162, 83163, 83164, 83165, 78282, 0, 0, 83161, 68848, 10611, 72859, - 126978, 71474, 129426, 127871, 0, 0, 0, 12820, 110882, 0, 7009, 70103, 0, - 0, 67848, 41173, 4574, 0, 0, 128338, 575, 78110, 43456, 8563, 100469, 0, - 0, 65565, 0, 5936, 7290, 78117, 78118, 74919, 308, 78113, 78114, 83151, - 78123, 83153, 83154, 0, 0, 0, 0, 67496, 5926, 68250, 78130, 78126, 78127, - 78124, 78125, 42513, 0, 129026, 0, 11651, 13093, 78135, 0, 100471, 0, - 100473, 100472, 100475, 74048, 100477, 71995, 100457, 100456, 43703, - 13097, 0, 100460, 13283, 0, 0, 125073, 3488, 5933, 10033, 983947, 0, - 65570, 0, 12297, 0, 0, 0, 128517, 42538, 0, 129293, 0, 100451, 0, 100453, - 100452, 100455, 100454, 121221, 0, 0, 7638, 0, 129193, 0, 43109, 7637, 0, - 11213, 100461, 83355, 100463, 100466, 100465, 0, 0, 7636, 0, 0, 0, - 128848, 983087, 291, 0, 0, 2027, 78141, 78142, 78136, 78137, 83481, 4640, - 64713, 10224, 120429, 11183, 83482, 120430, 0, 0, 0, 127148, 83479, 0, 0, - 83488, 0, 0, 0, 0, 68837, 5778, 0, 0, 0, 12680, 119130, 0, 67242, 93041, - 0, 0, 0, 11552, 0, 127855, 0, 70091, 0, 10172, 65453, 120408, 66014, - 120410, 0, 4641, 11556, 64819, 78269, 120416, 72341, 41469, 41467, - 120412, 120415, 4646, 120425, 865, 78275, 78274, 78273, 4645, 78271, - 78270, 0, 983172, 7338, 0, 68840, 0, 12565, 0, 0, 0, 195089, 119655, - 195091, 195090, 2913, 13120, 128956, 69493, 195097, 195096, 128019, 0, - 71462, 0, 7916, 10485, 195098, 0, 195100, 195099, 0, 67705, 128351, - 195077, 195080, 129636, 129549, 195081, 0, 0, 0, 10229, 10687, 826, - 128081, 195082, 195085, 195084, 195087, 195086, 0, 1808, 7848, 0, 0, 0, - 0, 0, 0, 128897, 69255, 42942, 67704, 0, 0, 0, 0, 42940, 0, 9144, 0, 0, - 92992, 9840, 0, 0, 0, 0, 0, 0, 74448, 83475, 0, 10962, 66904, 113718, - 983187, 0, 0, 74537, 195072, 1792, 195074, 195073, 78266, 195075, 0, 0, - 12066, 0, 385, 4152, 0, 0, 0, 67397, 0, 0, 0, 0, 43258, 0, 0, 13157, 0, - 0, 3570, 0, 0, 0, 67252, 0, 71218, 126631, 7879, 68247, 128579, 0, 0, - 70196, 0, 0, 8463, 7810, 917862, 7839, 983878, 127768, 917860, 9691, 0, - 129323, 0, 120385, 0, 917844, 0, 10066, 0, 2175, 0, 0, 0, 8016, 0, - 983072, 64831, 0, 126103, 0, 119171, 1634, 68115, 94192, 11056, 0, 0, 0, - 41165, 11328, 12450, 0, 41166, 0, 12456, 0, 171, 67508, 12452, 917544, - 12458, 12531, 0, 917853, 0, 74162, 0, 0, 9969, 0, 12454, 74160, 42132, - 110755, 78878, 110753, 3230, 73711, 0, 0, 8932, 4399, 5810, 64534, 8415, - 0, 110756, 110757, 74159, 0, 0, 960, 74156, 6981, 92374, 12938, 9201, 0, - 118713, 74904, 0, 72866, 92270, 0, 0, 0, 129792, 5851, 73833, 5824, 0, - 5844, 110848, 110849, 110846, 110847, 4663, 0, 0, 0, 0, 0, 74085, 0, 0, - 0, 0, 0, 92339, 0, 0, 5782, 67495, 0, 0, 43796, 129639, 0, 195083, - 125223, 128004, 0, 43861, 0, 0, 0, 92976, 0, 0, 0, 4659, 0, 129764, 0, 0, - 129386, 0, 11129, 2238, 329, 0, 92707, 121416, 0, 0, 0, 69943, 67692, - 42167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69618, 43671, 0, 64701, 0, 0, 0, - 93055, 1172, 125089, 6786, 43601, 0, 74126, 0, 0, 0, 0, 0, 118695, 0, 0, - 118804, 0, 66741, 5347, 0, 983663, 0, 0, 10588, 0, 0, 0, 0, 5343, 0, 0, - 0, 5341, 0, 0, 74916, 5351, 0, 0, 917884, 0, 92692, 0, 121148, 128916, 0, - 0, 66785, 126256, 6638, 0, 0, 271, 0, 917904, 0, 0, 12653, 67588, 0, 0, - 0, 0, 128838, 11912, 128301, 983665, 0, 11800, 0, 0, 11103, 0, 7340, 0, - 110695, 0, 0, 70170, 0, 2423, 0, 0, 0, 128136, 42705, 0, 0, 0, 11854, 0, - 0, 0, 0, 4916, 0, 380, 10958, 66563, 127790, 78284, 67587, 0, 12918, 0, - 917897, 0, 917898, 917893, 10684, 0, 125063, 92906, 0, 0, 8182, 0, 0, - 129434, 0, 0, 0, 6859, 0, 6630, 100405, 0, 123191, 0, 0, 0, 65876, 5535, - 129892, 0, 0, 92609, 0, 983345, 6477, 43795, 92217, 129571, 72163, 69496, - 43848, 0, 0, 74256, 2665, 11304, 43751, 0, 4970, 74353, 0, 8934, 0, - 93996, 4492, 92908, 65011, 0, 0, 92909, 1188, 7254, 1100, 0, 0, 0, 2912, - 11749, 92643, 0, 0, 65057, 0, 12343, 0, 78879, 0, 78880, 0, 0, 0, 70355, - 0, 0, 11803, 0, 0, 41450, 0, 100897, 0, 41451, 0, 0, 8273, 0, 3451, 0, - 972, 41453, 68164, 78876, 0, 92408, 73945, 43504, 2288, 78873, 9538, - 78874, 128685, 0, 129095, 0, 0, 0, 0, 11019, 0, 0, 121205, 0, 73007, - 71365, 92716, 5927, 0, 0, 0, 0, 128484, 0, 6073, 0, 0, 0, 6075, 93995, - 282, 126510, 0, 74078, 121459, 2206, 0, 0, 66791, 0, 3474, 0, 0, 0, 6081, - 0, 127843, 74076, 0, 0, 0, 128908, 0, 0, 0, 12623, 120273, 9120, 120275, - 4665, 12628, 4670, 120271, 120272, 0, 0, 121480, 958, 0, 0, 0, 4666, 0, - 4915, 0, 4669, 0, 0, 0, 4664, 0, 120550, 0, 0, 0, 0, 94023, 0, 917875, - 8664, 11664, 0, 129327, 11224, 0, 0, 1063, 119088, 120251, 9772, 7255, - 8886, 0, 127932, 120257, 120258, 120259, 120260, 42661, 71345, 120255, - 119125, 120265, 120266, 120267, 42721, 92407, 120262, 120263, 66788, - 1017, 0, 118580, 505, 1447, 0, 0, 70340, 66793, 65115, 42789, 128443, 0, - 0, 123634, 0, 119195, 0, 0, 11745, 7919, 0, 1641, 0, 0, 8966, 0, 0, 8743, - 71870, 0, 67813, 0, 0, 0, 123206, 0, 0, 128505, 10169, 71324, 0, 10068, - 0, 120457, 120456, 120455, 120454, 257, 43170, 13153, 0, 0, 0, 0, 0, 0, - 6496, 19917, 5930, 128354, 11033, 0, 0, 5622, 120436, 8477, 8474, 120433, - 120432, 0, 0, 0, 41435, 4352, 0, 2435, 0, 5621, 0, 4201, 8450, 4203, - 4202, 4205, 4204, 120447, 120446, 120445, 66792, 41440, 120442, 8473, - 6373, 8469, 120438, 0, 4564, 125206, 0, 0, 0, 8374, 73669, 0, 0, 66796, - 0, 0, 0, 0, 0, 69297, 129762, 5626, 43507, 11771, 0, 0, 0, 42614, 0, - 5625, 0, 0, 0, 5623, 0, 0, 42623, 64277, 69942, 0, 0, 120752, 0, 5817, - 5629, 0, 7551, 10325, 5632, 69674, 0, 0, 124946, 125194, 5628, 129766, - 5631, 0, 0, 2400, 5627, 0, 0, 118786, 74792, 0, 0, 0, 203, 129084, 74365, - 0, 0, 0, 0, 83382, 83422, 0, 0, 554, 0, 0, 0, 12182, 0, 64569, 110840, - 73891, 0, 0, 0, 7689, 69798, 9323, 10269, 10285, 10317, 175, 0, 0, 0, 0, - 0, 1243, 42154, 0, 92387, 0, 0, 43651, 0, 125021, 0, 9075, 118597, 0, - 64777, 128570, 0, 0, 0, 0, 65255, 0, 121142, 4490, 0, 6649, 120698, - 12181, 0, 11977, 7249, 8366, 0, 7756, 12342, 0, 51, 41516, 69432, 0, - 9568, 71318, 456, 0, 10437, 1168, 9251, 9082, 0, 0, 42781, 3866, 0, - 41512, 0, 0, 68121, 41494, 0, 4660, 0, 10405, 0, 0, 0, 0, 0, 73918, - 119627, 110686, 41454, 12605, 0, 126611, 41455, 917996, 983605, 0, 8214, - 0, 100413, 129320, 41457, 0, 0, 1969, 127771, 0, 69554, 7413, 0, 69426, - 10341, 43864, 78079, 5854, 0, 0, 0, 129684, 72819, 0, 0, 0, 0, 0, 8429, - 0, 72328, 0, 6429, 0, 0, 0, 0, 110688, 83417, 0, 917864, 120813, 83423, - 1662, 125000, 0, 0, 917871, 917868, 0, 0, 66, 65, 68, 67, 70, 69, 72, 71, - 74, 73, 76, 75, 78, 77, 80, 79, 82, 81, 84, 83, 86, 85, 88, 87, 90, 89, - 0, 0, 7385, 70508, 1704, 12993, 0, 0, 0, 0, 0, 0, 0, 0, 11353, 72207, 0, - 0, 0, 0, 118831, 0, 0, 0, 0, 0, 118719, 83364, 0, 0, 1289, 0, 0, 119583, - 0, 65507, 0, 0, 0, 128042, 0, 74409, 0, 0, 0, 0, 64793, 0, 0, 100843, - 5675, 119239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6972, 70735, 0, 121108, - 126217, 0, 0, 0, 0, 0, 110640, 67687, 0, 0, 119634, 0, 43977, 111252, - 129105, 0, 7412, 64671, 0, 1412, 4594, 1391, 0, 8067, 12478, 110639, - 78375, 110637, 10281, 110635, 0, 0, 7960, 43271, 0, 12518, 69846, 0, - 3566, 0, 0, 69864, 0, 0, 68021, 0, 0, 0, 8223, 0, 4261, 121460, 68918, 0, - 0, 121294, 113712, 0, 128046, 43419, 72748, 92866, 10574, 0, 67691, 0, 0, - 73785, 0, 78875, 128541, 0, 127366, 0, 0, 0, 0, 6695, 65113, 324, 0, - 128373, 40985, 0, 0, 0, 0, 0, 72307, 43474, 0, 121190, 0, 0, 3420, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 110871, 9574, 120684, 110870, 110814, 5204, 74774, - 0, 11835, 0, 0, 983185, 0, 0, 0, 0, 0, 0, 11750, 68898, 127004, 0, 0, 0, - 0, 8130, 0, 0, 0, 121268, 0, 129443, 0, 68455, 42863, 73839, 0, 0, 0, - 92288, 0, 0, 0, 612, 110875, 110876, 72231, 10538, 0, 1674, 0, 0, 0, - 12280, 0, 540, 74550, 0, 66422, 8432, 0, 11073, 0, 64316, 129894, 0, - 7388, 0, 0, 0, 0, 126107, 0, 3359, 0, 0, 67284, 0, 0, 65482, 129589, 0, - 64742, 129304, 0, 0, 74273, 0, 19941, 0, 0, 0, 0, 9481, 65555, 0, 66628, - 129126, 1195, 64898, 0, 0, 0, 2010, 0, 0, 0, 0, 0, 0, 4360, 127009, 9739, - 0, 72885, 0, 0, 0, 126265, 72200, 0, 0, 120025, 72199, 0, 0, 65734, 0, 0, - 129690, 13075, 0, 94063, 0, 43532, 10837, 2492, 74516, 983075, 120882, 0, - 0, 11813, 9649, 0, 119617, 5128, 7377, 0, 65604, 0, 0, 6771, 1648, 7819, - 0, 0, 0, 125192, 128131, 12709, 6986, 0, 0, 0, 0, 0, 12581, 0, 5175, 0, - 73806, 0, 128420, 0, 0, 77950, 0, 0, 607, 0, 0, 128846, 119605, 67475, - 129528, 65477, 0, 121130, 0, 8265, 0, 0, 0, 5840, 42838, 0, 0, 68366, 0, - 119255, 0, 0, 0, 127929, 0, 2550, 121011, 6779, 70059, 0, 0, 0, 0, 0, 0, - 5619, 65822, 0, 0, 0, 129392, 5616, 11486, 0, 0, 0, 0, 5615, 0, 121319, - 42380, 127958, 0, 66451, 74407, 0, 11347, 0, 1026, 5620, 0, 0, 11350, - 5617, 0, 0, 64639, 0, 0, 0, 1338, 0, 0, 0, 4603, 0, 70715, 92484, 0, - 9002, 0, 3974, 78213, 0, 0, 0, 0, 0, 0, 75038, 66040, 70455, 0, 0, 0, - 72982, 0, 0, 0, 0, 0, 118661, 0, 0, 119105, 0, 0, 0, 0, 0, 128883, 0, - 66897, 0, 0, 0, 42594, 0, 0, 0, 0, 6714, 10083, 0, 121019, 0, 69976, 0, - 0, 9073, 0, 64302, 0, 128286, 9725, 0, 0, 121288, 73769, 121306, 0, 9570, - 0, 11500, 2689, 917626, 0, 983813, 66740, 0, 0, 0, 917623, 13286, 5500, - 42598, 42596, 503, 0, 0, 917618, 0, 0, 0, 0, 917615, 1652, 772, 6688, - 8310, 0, 0, 72124, 0, 10194, 43542, 0, 125054, 0, 6468, 68110, 0, 917606, - 11767, 0, 0, 5836, 12358, 0, 0, 65624, 12180, 0, 127994, 0, 43699, 0, 0, - 72114, 43706, 0, 12362, 12435, 12360, 0, 9020, 0, 12356, 8616, 0, 42924, - 2227, 0, 0, 7315, 12354, 83097, 83098, 83099, 2358, 83092, 83093, 83094, - 0, 0, 83089, 83090, 0, 11759, 71723, 0, 72834, 83109, 41423, 0, 83103, - 83104, 83105, 42237, 110653, 70717, 72260, 83102, 0, 67856, 0, 128534, - 110657, 129354, 129194, 0, 64395, 0, 73008, 120897, 74816, 0, 0, 0, - 83088, 0, 0, 94064, 83083, 83085, 83086, 83087, 83079, 83080, 2041, 9178, - 0, 64870, 0, 83076, 74924, 0, 0, 0, 0, 0, 78739, 0, 0, 0, 0, 0, 0, 3726, - 0, 0, 0, 0, 0, 121432, 129457, 0, 0, 0, 0, 0, 74901, 0, 0, 0, 0, 0, - 124944, 113781, 0, 7410, 2669, 903, 0, 0, 0, 127232, 74603, 0, 128264, 0, - 128411, 0, 0, 11732, 0, 72797, 41448, 41461, 124934, 0, 917558, 0, 8819, - 0, 0, 74606, 92847, 121412, 74835, 0, 9168, 65786, 0, 73691, 0, 67665, 0, - 11758, 68425, 0, 0, 0, 128044, 0, 19924, 67312, 0, 128755, 64551, 0, - 8516, 0, 0, 7561, 983999, 74018, 0, 0, 0, 0, 83074, 83075, 0, 11233, - 83062, 83066, 3787, 83070, 83055, 41458, 83059, 41463, 65308, 41459, - 8683, 775, 0, 65584, 69923, 0, 110798, 110799, 110796, 43440, 0, 0, 0, - 3656, 0, 0, 0, 67694, 1599, 83138, 83139, 8514, 8513, 83036, 83135, - 83136, 110794, 110795, 83131, 83132, 0, 0, 0, 11684, 10542, 9937, 83150, - 0, 75037, 83145, 65730, 83147, 0, 8427, 83142, 55246, 0, 0, 11497, 0, 0, - 0, 119222, 0, 983598, 0, 10621, 0, 0, 129295, 119111, 120745, 0, 0, 0, - 11648, 83126, 83127, 42118, 83129, 83122, 65512, 83124, 83125, 0, 0, 0, - 83121, 74530, 128456, 0, 0, 0, 65724, 0, 0, 0, 65727, 0, 0, 64963, 73830, - 66042, 0, 0, 7875, 0, 0, 0, 129476, 0, 0, 536, 0, 0, 0, 0, 65173, 129122, - 0, 70331, 0, 0, 118598, 0, 129419, 0, 0, 0, 1687, 0, 0, 0, 0, 0, 0, - 10526, 0, 8323, 0, 83301, 11731, 0, 0, 65460, 12242, 0, 0, 10843, 11554, - 0, 0, 8266, 0, 121101, 0, 0, 0, 0, 67667, 118694, 119155, 0, 0, 119636, - 67857, 0, 0, 0, 11755, 66305, 0, 0, 10917, 93979, 113688, 0, 2040, 92596, - 0, 0, 0, 0, 1227, 83119, 83120, 0, 0, 83115, 83116, 11149, 4978, 83111, - 1984, 11830, 83114, 128934, 74548, 118545, 9373, 0, 0, 0, 0, 0, 0, 0, 0, - 9237, 9390, 0, 0, 0, 0, 0, 1830, 0, 0, 0, 0, 0, 128577, 983839, 68086, 0, - 0, 0, 983059, 0, 983144, 0, 0, 0, 72197, 55291, 11683, 0, 983659, 0, - 11451, 0, 72714, 3731, 2359, 0, 67844, 0, 121503, 548, 121502, 983247, - 121405, 983250, 0, 66272, 0, 64678, 0, 9547, 0, 0, 1614, 0, 0, 66307, - 128092, 1358, 120871, 428, 0, 1466, 0, 10982, 0, 0, 0, 407, 0, 0, 0, 0, - 0, 0, 5804, 73464, 0, 0, 0, 70167, 9057, 42446, 0, 125097, 0, 0, 8250, - 10952, 8048, 0, 129155, 0, 118955, 0, 0, 118593, 4407, 74648, 0, 0, 0, - 8448, 92491, 0, 0, 12675, 12659, 0, 0, 983282, 68077, 55273, 10766, - 12012, 2386, 0, 9170, 0, 9123, 128194, 0, 0, 0, 0, 129942, 0, 0, 0, 0, 0, - 0, 8709, 0, 72383, 0, 0, 0, 0, 0, 0, 0, 128342, 0, 577, 128610, 0, 0, - 124999, 68087, 74840, 126474, 127036, 0, 0, 0, 1414, 124963, 9683, 43486, - 92231, 0, 2536, 0, 66330, 0, 0, 0, 0, 0, 0, 0, 66317, 0, 66315, 66316, 0, - 0, 0, 0, 0, 0, 0, 0, 66323, 66324, 0, 0, 3106, 65917, 0, 2182, 0, 891, 0, - 0, 42624, 0, 0, 8824, 65089, 128734, 10936, 0, 0, 0, 0, 92688, 0, 0, 0, - 0, 12745, 0, 0, 41285, 3547, 0, 0, 129877, 0, 118701, 6089, 0, 68490, - 120578, 4170, 1029, 127761, 0, 0, 42374, 917625, 744, 917624, 0, 0, 0, - 93046, 0, 3551, 0, 0, 4623, 0, 0, 12340, 0, 65136, 0, 0, 0, 0, 0, 0, 0, - 72291, 0, 0, 120778, 0, 11972, 0, 78757, 0, 122886, 177, 122894, 0, 0, 0, - 0, 55243, 0, 0, 0, 70172, 120249, 120242, 128027, 120243, 0, 0, 0, - 120237, 120245, 94079, 0, 0, 9136, 120240, 120614, 41280, 0, 0, 0, 0, - 74149, 128327, 0, 0, 66361, 12601, 72194, 64360, 65163, 0, 0, 0, 0, 0, 0, - 5404, 43332, 3667, 7936, 12925, 0, 0, 0, 0, 0, 10874, 65505, 0, 0, 0, 0, - 128920, 983681, 0, 0, 0, 0, 0, 0, 0, 0, 66677, 0, 0, 0, 70088, 74148, 0, - 0, 72868, 120230, 120224, 74172, 0, 0, 94096, 0, 128414, 120636, 0, - 127519, 917609, 917616, 0, 128652, 0, 0, 11441, 0, 3512, 0, 0, 43597, 0, - 0, 72734, 68153, 41563, 0, 0, 129352, 41544, 0, 0, 74927, 0, 129177, 0, - 0, 0, 118908, 0, 78108, 67396, 73804, 64711, 0, 0, 917610, 0, 0, 0, - 11557, 127776, 0, 12079, 0, 0, 0, 0, 128861, 0, 0, 0, 0, 0, 983200, 8103, - 72303, 128174, 92486, 110698, 0, 64587, 0, 0, 124961, 0, 0, 0, 126481, 0, - 0, 0, 0, 0, 70348, 1450, 0, 1340, 0, 0, 128970, 0, 0, 125117, 0, 0, 0, 0, - 6539, 92948, 0, 128213, 125060, 0, 0, 0, 3973, 0, 70504, 121193, 7982, 0, - 0, 127194, 0, 0, 0, 128408, 118968, 6417, 120619, 129748, 0, 0, 0, - 129455, 4919, 65121, 110872, 7755, 0, 0, 64548, 0, 1621, 0, 0, 0, 0, 0, - 12188, 0, 0, 0, 0, 5015, 0, 0, 42590, 70354, 1756, 0, 0, 0, 120694, 0, 0, - 7555, 73874, 5408, 2817, 1214, 69919, 0, 983125, 0, 0, 125055, 127195, - 7957, 0, 0, 1056, 74944, 0, 0, 0, 0, 7073, 74979, 0, 70853, 0, 110874, 0, - 0, 2341, 126644, 8484, 0, 0, 68322, 0, 8461, 67721, 42269, 0, 0, 43709, - 43708, 9451, 7571, 13073, 43847, 126647, 0, 983260, 0, 0, 0, 8781, 12894, - 78134, 0, 78132, 0, 0, 78184, 0, 11338, 120768, 0, 0, 0, 0, 0, 121367, - 65021, 64795, 74574, 0, 10047, 0, 0, 0, 0, 0, 0, 119181, 163, 576, 9895, - 0, 0, 74591, 0, 0, 66888, 0, 0, 0, 0, 0, 0, 7017, 128111, 0, 0, 129922, - 0, 41591, 11036, 65252, 120795, 129488, 0, 0, 0, 0, 0, 0, 8887, 0, 7295, - 71203, 0, 127221, 0, 0, 0, 0, 8755, 0, 0, 8147, 73127, 0, 0, 121348, 0, - 129377, 0, 74499, 0, 0, 0, 4619, 0, 6654, 123192, 0, 0, 0, 65689, 10128, - 0, 129612, 0, 0, 92651, 0, 2401, 0, 8792, 118546, 0, 74980, 0, 92246, 0, - 0, 0, 12886, 0, 66624, 0, 0, 74133, 65170, 0, 74135, 0, 0, 9984, 73867, - 3010, 0, 70349, 10698, 41475, 0, 119151, 0, 119152, 0, 0, 9100, 0, 0, 0, - 78116, 64780, 2001, 0, 55230, 0, 4052, 92856, 7626, 78080, 0, 0, 0, - 41477, 0, 0, 0, 43707, 74127, 0, 0, 0, 78086, 73758, 2335, 10663, 0, 0, - 129872, 119602, 0, 0, 70325, 0, 41443, 0, 0, 0, 9711, 1523, 0, 0, 41445, - 0, 0, 8567, 41442, 12821, 0, 0, 118978, 0, 65274, 0, 94082, 0, 127515, 0, - 0, 43446, 0, 0, 0, 0, 127985, 0, 10206, 127167, 6375, 2673, 0, 0, 0, - 43219, 129355, 0, 0, 0, 0, 129400, 11799, 101225, 68466, 0, 0, 0, 0, 0, - 120736, 0, 7203, 0, 0, 70361, 127213, 120615, 127216, 0, 0, 0, 0, 43121, - 0, 128366, 72161, 0, 129868, 0, 121260, 73781, 70365, 0, 68039, 70446, + 0, 0, 0, 0, 0, 0, 4110, 66005, 74034, 0, 0, 0, 66703, 0, 0, 983158, 6025, + 69242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70733, 0, 983043, 0, 73513, 0, 68817, + 0, 0, 0, 0, 0, 0, 43286, 0, 68765, 0, 0, 0, 0, 129871, 65144, 0, 0, + 83236, 65840, 0, 0, 10081, 0, 0, 983912, 0, 0, 0, 127394, 65882, 0, + 128758, 0, 0, 3605, 10985, 0, 0, 128872, 93972, 1745, 0, 73835, 0, 0, 0, + 0, 0, 0, 8806, 7023, 0, 0, 0, 70702, 70304, 0, 0, 0, 0, 0, 0, 0, 0, 348, + 10089, 0, 9017, 0, 0, 0, 0, 0, 0, 0, 67465, 0, 42515, 0, 0, 0, 0, 5391, + 983240, 110576, 0, 0, 5561, 0, 9429, 0, 67150, 7933, 5562, 0, 0, 0, 0, + 78039, 0, 0, 0, 0, 3979, 71248, 0, 0, 0, 68847, 0, 0, 118847, 65847, + 68836, 68838, 0, 10585, 0, 92676, 7334, 0, 0, 0, 831, 0, 0, 10716, 0, + 121325, 0, 12218, 0, 6939, 70697, 65042, 0, 0, 916, 0, 0, 11968, 0, + 122641, 5563, 0, 0, 128830, 5560, 41212, 41774, 0, 4497, 0, 0, 0, 9039, + 70678, 41776, 0, 8716, 3567, 119252, 0, 0, 74260, 0, 93954, 0, 0, 100827, + 0, 128879, 70072, 68355, 68357, 0, 0, 8634, 0, 0, 4209, 120702, 68832, + 65879, 68825, 68819, 68822, 0, 5679, 68813, 68815, 68811, 68812, 64697, + 5678, 11821, 68802, 93969, 0, 0, 0, 0, 70114, 0, 0, 0, 0, 0, 0, 0, 0, + 7782, 0, 0, 0, 0, 129977, 65711, 65712, 1216, 0, 69409, 5792, 0, 0, 0, 0, + 0, 12244, 0, 5683, 0, 120895, 121336, 43448, 70670, 0, 0, 5682, 10242, + 75043, 74520, 5680, 917568, 10001, 0, 0, 1449, 10241, 0, 70708, 0, 0, + 83180, 83182, 83183, 8584, 83176, 5567, 83178, 83179, 0, 5564, 42886, + 42884, 42882, 5565, 119022, 120881, 0, 65708, 65709, 5566, 0, 65704, + 65705, 11904, 42875, 0, 42873, 5942, 0, 0, 10361, 10425, 65697, 65698, + 65699, 0, 66598, 0, 64664, 10647, 78702, 78703, 78690, 78700, 0, 65701, + 1934, 0, 0, 0, 78710, 0, 78706, 78709, 6087, 78705, 78716, 78719, 78711, + 8043, 8950, 65694, 64485, 0, 10457, 0, 78724, 78725, 78722, 72332, 78720, + 78721, 0, 65515, 0, 10035, 13069, 0, 0, 127773, 0, 0, 0, 125207, 0, 0, + 1667, 0, 0, 42428, 110950, 0, 0, 41750, 0, 0, 93999, 0, 8101, 3610, + 113670, 41748, 110948, 0, 78394, 119208, 0, 0, 113691, 64549, 68359, 0, + 0, 65692, 92701, 0, 917960, 12896, 10456, 68298, 0, 0, 0, 0, 917962, 0, + 0, 113665, 70502, 0, 65687, 0, 0, 74009, 0, 113673, 8536, 70671, 0, + 78726, 0, 724, 0, 113675, 78749, 9975, 78746, 78747, 78744, 4175, 78741, + 78743, 78751, 939, 0, 128799, 983120, 0, 0, 0, 78763, 78764, 78760, + 78761, 78758, 78759, 78755, 8425, 0, 0, 0, 8188, 0, 0, 0, 0, 0, 6370, 0, + 7827, 68441, 75008, 0, 917943, 0, 118863, 0, 0, 0, 0, 121243, 73988, 0, + 113668, 0, 11012, 0, 43764, 178, 12972, 74620, 113671, 0, 113735, 0, + 66764, 0, 0, 65690, 72339, 0, 0, 917950, 9252, 0, 4652, 74259, 0, 917947, + 0, 0, 0, 10806, 0, 0, 70016, 0, 6723, 0, 0, 6993, 0, 0, 12855, 0, 0, + 11390, 0, 0, 0, 92503, 0, 0, 983162, 125270, 92627, 8278, 0, 4034, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 12750, 9350, 66037, 0, 0, 73700, 12747, 0, 0, + 128064, 8922, 74640, 0, 0, 43150, 0, 983090, 983088, 66779, 66777, 10813, + 2592, 43139, 0, 0, 118612, 0, 0, 71891, 0, 0, 0, 0, 0, 0, 71697, 0, + 128825, 1596, 0, 0, 0, 0, 6838, 66572, 0, 126574, 120627, 8092, 12805, + 41928, 0, 78406, 78409, 0, 0, 0, 9931, 0, 0, 0, 0, 0, 983778, 6107, 0, 0, + 0, 0, 128745, 0, 335, 127003, 64689, 0, 0, 5765, 0, 0, 119227, 6092, + 118851, 0, 8876, 83465, 74947, 83455, 129186, 83454, 70713, 0, 0, 126606, + 70121, 41602, 0, 92308, 74831, 0, 11783, 68482, 0, 0, 0, 0, 0, 0, 843, 0, + 71099, 0, 0, 41935, 0, 0, 0, 0, 1371, 0, 43818, 43159, 8069, 9579, 41938, + 41608, 0, 92444, 6242, 0, 0, 128595, 128244, 0, 92499, 8805, 1742, + 113722, 0, 8202, 72399, 0, 983198, 0, 0, 73882, 100809, 0, 43467, 123636, + 55290, 0, 1712, 5932, 0, 41762, 71982, 0, 11967, 1775, 0, 75009, 0, + 11868, 120387, 9458, 0, 126614, 0, 0, 43176, 101032, 101031, 42782, + 101033, 101036, 101035, 101038, 101037, 101040, 101039, 0, 0, 0, 0, + 101041, 5794, 92274, 2662, 101045, 101044, 8254, 101046, 10975, 101048, + 120625, 101050, 917977, 4108, 8478, 917982, 194790, 0, 92263, 917980, + 7507, 0, 43149, 0, 65031, 7961, 1636, 0, 65029, 0, 129665, 70188, 9674, + 0, 99, 98, 97, 101022, 92203, 4049, 101027, 43880, 7090, 101028, 0, + 101030, 66589, 0, 65310, 66593, 66599, 129805, 0, 0, 7447, 66594, 0, 0, + 0, 73920, 66595, 66596, 42570, 5593, 0, 0, 0, 0, 6061, 64854, 119, 118, + 117, 116, 0, 122, 121, 120, 111, 110, 109, 108, 115, 114, 113, 112, 103, + 102, 101, 100, 107, 106, 105, 104, 128504, 73974, 534, 0, 67713, 1536, + 73973, 73970, 0, 129671, 0, 6020, 12716, 0, 12744, 65143, 0, 13266, + 127813, 0, 0, 0, 127116, 0, 1212, 65560, 0, 8134, 42935, 12129, 73870, 0, + 1866, 0, 122948, 0, 0, 65073, 12059, 66585, 121391, 0, 0, 0, 5935, 1250, + 0, 8174, 9787, 6733, 9859, 9858, 9861, 9860, 101012, 1882, 1892, 6731, + 10882, 10795, 101018, 73911, 101020, 101019, 41169, 8939, 0, 120713, + 41170, 1454, 0, 65130, 69732, 0, 0, 129611, 41172, 7855, 0, 71472, 0, 0, + 0, 71691, 65901, 0, 0, 645, 100992, 100991, 100994, 100993, 100996, + 100995, 100998, 65587, 0, 10688, 0, 0, 7729, 0, 101001, 120518, 101003, + 66722, 101005, 101004, 68415, 101006, 4538, 101008, 43141, 0, 0, 73699, + 0, 0, 0, 71918, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71454, 0, 2381, 983752, 0, 0, + 69857, 100981, 0, 100983, 100982, 100985, 10856, 100987, 55255, 41478, + 8582, 10064, 0, 0, 0, 0, 64896, 0, 74609, 0, 128048, 10082, 11575, 0, 0, + 0, 917505, 0, 6145, 75020, 0, 92433, 71916, 83279, 43186, 0, 0, 83274, + 83276, 83277, 83278, 10191, 83271, 69633, 72353, 0, 0, 0, 0, 120090, + 120089, 7931, 8558, 917946, 0, 0, 0, 119145, 120081, 120084, 120083, + 120086, 71449, 120088, 7366, 7019, 75021, 0, 917951, 120078, 120077, + 120080, 8657, 100967, 8594, 100969, 100968, 0, 100970, 120072, 120071, 0, + 0, 43154, 0, 0, 11332, 0, 7728, 100978, 100977, 100980, 100979, 7851, 0, + 8375, 128662, 0, 0, 126095, 9085, 0, 0, 9327, 6160, 0, 0, 0, 0, 70698, + 74012, 0, 0, 4439, 121151, 100972, 100971, 100974, 100973, 100976, + 100975, 100956, 42524, 71220, 100957, 10826, 100959, 11296, 0, 0, 0, + 7504, 43161, 127868, 0, 64670, 0, 78056, 0, 11295, 0, 78053, 0, 0, 0, + 10902, 0, 0, 122650, 78068, 10472, 100954, 100953, 120215, 78062, 2371, + 78069, 118893, 259, 0, 0, 2402, 12157, 6440, 0, 100963, 100962, 100965, + 100964, 65380, 9103, 2278, 0, 0, 7301, 0, 10219, 0, 0, 0, 67718, 43178, + 0, 120214, 119362, 917974, 8613, 0, 126121, 917978, 917979, 121449, + 12005, 7353, 0, 1890, 129130, 0, 0, 0, 42815, 7991, 0, 10578, 0, 0, 0, 0, + 0, 0, 0, 111190, 120601, 42668, 9348, 0, 6164, 0, 0, 0, 7676, 0, 0, 0, 0, + 128732, 129422, 83443, 71096, 83444, 9175, 0, 78047, 9088, 73689, 0, + 1396, 0, 0, 11461, 71088, 127835, 92252, 0, 71090, 121185, 69872, 0, 0, + 0, 0, 74043, 119632, 0, 0, 0, 5928, 4525, 10658, 0, 1266, 10180, 64472, + 0, 12622, 0, 0, 0, 0, 127139, 13310, 773, 19933, 0, 0, 0, 0, 92205, 0, 0, + 0, 0, 5862, 7823, 0, 0, 0, 3250, 43991, 69687, 66649, 0, 0, 0, 0, 0, + 64673, 917963, 917964, 0, 0, 917967, 917968, 917965, 917966, 127791, + 75041, 3471, 917970, 64573, 882, 0, 119584, 0, 120772, 0, 0, 0, 92696, 0, + 0, 72988, 0, 3225, 0, 73729, 0, 0, 43173, 11752, 4381, 0, 0, 917945, + 11756, 11757, 917944, 917949, 42654, 127848, 118663, 0, 0, 5160, 1387, 0, + 917953, 0, 128933, 917956, 917957, 917954, 917955, 118595, 121082, + 917958, 10789, 68314, 0, 126521, 11143, 0, 0, 70669, 128904, 42179, 0, + 5931, 11744, 11215, 70676, 119245, 0, 0, 0, 77915, 10217, 64635, 128661, + 83292, 0, 0, 0, 0, 0, 41296, 11747, 41291, 0, 0, 0, 41294, 41282, 5923, + 120610, 0, 0, 0, 0, 66800, 5786, 68252, 42539, 119869, 119860, 0, 41474, + 0, 0, 0, 5934, 74572, 66583, 119231, 0, 94072, 64481, 0, 0, 0, 0, 67240, + 0, 0, 123201, 0, 5819, 0, 0, 0, 0, 0, 129387, 0, 0, 0, 67993, 1237, + 194749, 0, 0, 983557, 0, 0, 0, 0, 0, 0, 0, 69789, 11266, 69845, 0, 10506, + 194747, 0, 0, 0, 0, 43185, 194748, 100533, 100532, 100535, 10769, 100537, + 100536, 100539, 9753, 121035, 100540, 0, 0, 121433, 0, 100542, 6072, + 100544, 100543, 100546, 100545, 100548, 100547, 100550, 100549, 0, + 113744, 0, 0, 7222, 10283, 10315, 10379, 4996, 0, 129294, 66517, 0, + 10087, 127833, 74938, 0, 0, 83492, 7565, 42890, 0, 73520, 43180, 77928, + 74891, 77929, 43982, 100526, 622, 77926, 100527, 100530, 1602, 0, 0, 0, + 129559, 12160, 0, 10212, 77936, 194605, 12071, 43143, 77935, 917983, + 917984, 917989, 77932, 917987, 917988, 10255, 10263, 10279, 4194, 10375, + 93035, 0, 0, 12644, 127516, 917994, 75007, 110791, 67408, 110789, 11501, + 41177, 0, 0, 71912, 0, 0, 8715, 0, 41179, 0, 0, 0, 41176, 0, 41181, 0, + 8452, 121006, 13161, 0, 70503, 5921, 0, 2597, 0, 5922, 72128, 0, 74242, + 128374, 0, 0, 0, 0, 0, 0, 0, 127906, 0, 64944, 0, 0, 0, 0, 5924, 5920, + 129508, 6921, 78081, 74007, 78078, 8418, 11681, 43169, 10176, 0, 0, 0, + 78087, 10772, 65276, 5937, 1914, 78084, 11682, 0, 0, 0, 11685, 0, 100513, + 7772, 11680, 100514, 100517, 100516, 100519, 7417, 718, 100520, 70083, + 100500, 120718, 3235, 0, 43164, 0, 8018, 0, 0, 128708, 6937, 67672, + 128508, 0, 10067, 120849, 0, 0, 0, 118693, 0, 100491, 0, 100493, 100492, + 13116, 100494, 100497, 9945, 100499, 100498, 0, 0, 0, 0, 2059, 0, 100502, + 100501, 1431, 100503, 66565, 100505, 100508, 12804, 100510, 100509, + 78090, 3307, 78088, 78089, 0, 4544, 71228, 0, 0, 0, 78097, 11110, 66810, + 12882, 64511, 78094, 78100, 78102, 71226, 10141, 0, 78280, 65298, 4476, + 78109, 94005, 71216, 8907, 78105, 78106, 78103, 78104, 120898, 0, 10665, + 64616, 128944, 0, 127545, 69605, 83159, 83160, 4554, 0, 83155, 83156, + 83157, 83158, 0, 125123, 0, 72258, 129831, 0, 129815, 0, 43179, 0, 0, 0, + 717, 10754, 83168, 83169, 83162, 83163, 83164, 83165, 78282, 0, 0, 83161, + 68848, 10611, 72859, 126978, 71474, 129426, 127871, 0, 0, 0, 12820, + 110882, 0, 7009, 70103, 0, 0, 67848, 41173, 4574, 0, 0, 128338, 575, + 78110, 43456, 8563, 100469, 0, 0, 65565, 123598, 5936, 7290, 78117, + 78118, 74919, 308, 78113, 78114, 83151, 78123, 83153, 83154, 0, 0, 0, 0, + 67496, 5926, 68250, 78130, 78126, 78127, 78124, 78125, 42513, 0, 129026, + 0, 11651, 13093, 78135, 0, 100471, 0, 100473, 100472, 100475, 74048, + 100477, 71995, 100457, 100456, 43703, 13097, 0, 100460, 13283, 0, 0, + 125073, 3488, 5933, 10033, 983947, 0, 65570, 0, 12297, 0, 0, 0, 128517, + 42538, 0, 129293, 0, 100451, 0, 100453, 100452, 100455, 100454, 121221, + 0, 0, 7638, 0, 129193, 0, 43109, 7637, 0, 11213, 100461, 83355, 100463, + 100466, 100465, 0, 0, 7636, 0, 0, 0, 128848, 983087, 291, 0, 0, 2027, + 78141, 78142, 78136, 78137, 83481, 4640, 64713, 10224, 120429, 11183, + 83482, 120430, 0, 0, 0, 127148, 83479, 0, 0, 83488, 0, 0, 0, 0, 68837, + 5778, 0, 0, 0, 12680, 119130, 0, 67242, 93041, 0, 0, 0, 11552, 0, 127855, + 0, 70091, 0, 10172, 65453, 120408, 66014, 120410, 0, 4641, 11556, 64819, + 78269, 120416, 72341, 41469, 41467, 120412, 120415, 4646, 120425, 865, + 78275, 78274, 78273, 4645, 78271, 78270, 0, 983173, 7338, 0, 68840, 0, + 12565, 0, 0, 0, 195089, 119655, 195091, 195090, 2913, 13120, 128956, + 69493, 195097, 195096, 128019, 0, 71462, 0, 7916, 10485, 195098, 0, + 195100, 195099, 0, 67705, 128351, 195077, 195080, 129636, 129549, 195081, + 0, 0, 0, 10229, 10687, 826, 128081, 195082, 195085, 195084, 195087, + 195086, 0, 1808, 7848, 0, 0, 0, 0, 0, 0, 128897, 69255, 42942, 67704, 0, + 0, 0, 0, 42940, 0, 9144, 0, 0, 92992, 9840, 0, 0, 0, 0, 0, 0, 74448, + 83475, 0, 10962, 66904, 113718, 983188, 0, 0, 74537, 195072, 1792, + 195074, 195073, 78266, 195075, 0, 0, 12066, 0, 385, 4152, 0, 0, 0, 67397, + 0, 0, 0, 0, 43258, 0, 0, 13157, 0, 0, 3570, 0, 0, 0, 67252, 0, 71218, + 126631, 7879, 68247, 128579, 78914, 0, 70196, 0, 0, 8463, 7810, 917862, + 7839, 983878, 127768, 917860, 9691, 0, 129323, 0, 120385, 0, 917844, 0, + 10066, 0, 2175, 0, 0, 0, 8016, 0, 983072, 64831, 0, 126103, 0, 73493, + 1634, 68115, 94192, 11056, 0, 0, 0, 41165, 11328, 12450, 0, 41166, 0, + 12456, 0, 171, 67508, 12452, 917544, 12458, 12531, 0, 917853, 0, 74162, + 0, 0, 9969, 0, 12454, 74160, 42132, 110755, 78878, 110753, 3230, 73711, + 0, 0, 8932, 4399, 5810, 64534, 8415, 0, 110756, 110757, 74159, 0, 0, 960, + 74156, 6981, 92374, 12938, 9201, 0, 118713, 74904, 0, 72866, 92270, 0, 0, + 0, 129792, 5851, 73833, 5824, 0, 5844, 110848, 110849, 110846, 110847, + 4663, 0, 0, 0, 0, 0, 74085, 0, 0, 0, 0, 0, 92339, 0, 0, 5782, 67495, 0, + 0, 43796, 129639, 0, 195083, 125223, 128004, 0, 43861, 0, 0, 0, 92976, 0, + 0, 0, 4659, 0, 128894, 0, 0, 129386, 0, 11129, 2238, 329, 0, 92707, + 121416, 0, 0, 0, 69943, 67692, 42167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 69618, 43671, 0, 64701, 0, 0, 0, 93055, 1172, 125089, 6786, 43601, 0, + 74126, 0, 0, 0, 0, 0, 118695, 0, 0, 118804, 0, 66741, 5347, 125026, + 983663, 0, 0, 10588, 0, 0, 0, 0, 5343, 0, 0, 0, 5341, 0, 0, 74916, 5351, + 0, 0, 917884, 0, 92692, 0, 121148, 128916, 0, 0, 66785, 126256, 6638, 0, + 0, 271, 0, 917904, 0, 0, 12653, 67588, 0, 0, 0, 0, 128838, 11912, 128301, + 983665, 0, 11800, 0, 0, 11103, 0, 7340, 0, 110695, 0, 0, 70170, 0, 2423, + 0, 0, 0, 128136, 42705, 0, 0, 0, 11854, 0, 0, 0, 0, 4916, 0, 380, 10958, + 66563, 127790, 78284, 67587, 0, 12918, 0, 917897, 0, 917898, 917893, + 10684, 0, 125063, 92906, 0, 0, 8182, 0, 0, 129434, 0, 0, 0, 6859, 0, + 6630, 100405, 0, 123191, 0, 0, 0, 65876, 5535, 129892, 0, 0, 92609, 0, + 983348, 6477, 43795, 92217, 129571, 72163, 69496, 43848, 0, 0, 74256, + 2665, 11304, 43751, 0, 4970, 74353, 0, 8934, 0, 93996, 4492, 92908, + 65011, 0, 0, 92909, 1188, 7254, 1100, 0, 0, 0, 2912, 11749, 92643, 0, 0, + 65057, 0, 12343, 0, 78879, 0, 78880, 0, 0, 0, 70355, 0, 0, 11803, 0, 0, + 41450, 0, 100897, 0, 41451, 0, 0, 8273, 0, 3451, 0, 972, 41453, 68164, + 78876, 0, 92408, 73945, 43504, 2288, 78873, 9538, 78874, 128685, 0, + 129095, 0, 0, 0, 0, 11019, 0, 0, 121205, 0, 73007, 71365, 92716, 5927, 0, + 0, 0, 0, 128484, 0, 6073, 0, 0, 0, 6075, 93995, 282, 126510, 0, 74078, + 121459, 2206, 0, 0, 66791, 0, 3474, 0, 0, 0, 6081, 0, 127843, 74076, 0, + 0, 0, 128908, 0, 0, 0, 12623, 120273, 9120, 120275, 4665, 12628, 4670, + 120271, 120272, 0, 0, 121480, 958, 0, 0, 0, 4666, 0, 4915, 0, 4669, 0, 0, + 0, 4664, 0, 120550, 0, 0, 0, 0, 94023, 0, 917875, 8664, 11664, 0, 129327, + 11224, 0, 0, 1063, 119088, 120251, 9772, 7255, 8886, 0, 127932, 120257, + 120258, 120259, 120260, 42661, 71345, 120255, 119125, 120265, 120266, + 120267, 42721, 92407, 120262, 120263, 66788, 1017, 0, 118580, 505, 1447, + 0, 0, 70340, 66793, 65115, 42789, 128443, 0, 0, 123634, 0, 119195, 0, 0, + 11745, 7919, 0, 1641, 0, 0, 8966, 0, 0, 8743, 71870, 0, 67813, 0, 0, 0, + 123206, 0, 0, 128505, 10169, 71324, 0, 10068, 0, 120457, 120456, 120455, + 120454, 257, 43170, 13153, 0, 0, 0, 0, 0, 0, 6496, 19917, 5930, 128354, + 11033, 0, 0, 5622, 120436, 8477, 8474, 120433, 120432, 0, 0, 0, 41435, + 4352, 0, 2435, 0, 5621, 0, 4201, 8450, 4203, 4202, 4205, 4204, 120447, + 120446, 120445, 66792, 41440, 120442, 8473, 6373, 8469, 120438, 0, 4564, + 125206, 0, 0, 0, 8374, 73669, 0, 0, 66796, 0, 0, 0, 0, 0, 69297, 129762, + 5626, 43507, 11771, 0, 0, 0, 42614, 0, 5625, 0, 0, 0, 5623, 0, 0, 42623, + 64277, 69942, 0, 0, 120752, 0, 5817, 5629, 0, 7551, 10325, 5632, 69674, + 0, 0, 124946, 125194, 5628, 129766, 5631, 0, 0, 2400, 5627, 0, 0, 118786, + 74792, 0, 0, 0, 203, 129084, 74365, 0, 0, 0, 0, 83382, 83422, 0, 0, 554, + 0, 0, 0, 12182, 0, 64569, 110840, 73891, 0, 0, 0, 7689, 69798, 9323, + 10269, 10285, 10317, 175, 0, 0, 0, 0, 0, 1243, 42154, 0, 92387, 0, 0, + 43651, 0, 125021, 0, 9075, 118597, 0, 64777, 128570, 0, 0, 0, 0, 65255, + 0, 121142, 4490, 0, 6649, 120698, 12181, 0, 11977, 7249, 8366, 0, 7756, + 12342, 0, 51, 41516, 69432, 0, 9568, 71318, 456, 0, 10437, 1168, 9251, + 9082, 0, 0, 42781, 3866, 0, 41512, 0, 0, 68121, 41494, 0, 4660, 0, 10405, + 0, 0, 0, 0, 0, 73918, 119627, 110686, 41454, 12605, 0, 126611, 41455, + 917996, 983605, 0, 8214, 0, 100413, 129320, 41457, 983077, 0, 1969, + 127771, 0, 69554, 7413, 0, 69426, 10341, 43864, 78079, 5854, 0, 0, 0, + 129684, 72819, 0, 0, 73548, 0, 0, 8429, 0, 72328, 0, 6429, 0, 0, 0, 0, + 110688, 83417, 0, 917864, 120813, 83423, 1662, 125000, 0, 0, 917871, + 917868, 0, 0, 66, 65, 68, 67, 70, 69, 72, 71, 74, 73, 76, 75, 78, 77, 80, + 79, 82, 81, 84, 83, 86, 85, 88, 87, 90, 89, 0, 0, 7385, 70508, 1704, + 12993, 0, 0, 0, 0, 0, 0, 0, 0, 11353, 72207, 0, 0, 0, 0, 118831, 0, 0, 0, + 0, 0, 118719, 83364, 0, 0, 1289, 0, 0, 119583, 0, 65507, 0, 0, 0, 128042, + 0, 74409, 0, 0, 0, 0, 64793, 0, 0, 100843, 5675, 119239, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 6972, 70735, 0, 121108, 126217, 0, 0, 0, 0, 0, 110640, + 67687, 0, 0, 119634, 0, 43977, 111252, 129105, 0, 7412, 64671, 0, 1412, + 4594, 1391, 0, 8067, 12478, 110639, 78375, 110637, 10281, 110635, 0, 0, + 7960, 43271, 0, 12518, 69846, 0, 3566, 0, 0, 69864, 0, 0, 68021, 0, 0, 0, + 8223, 0, 4261, 121460, 68918, 0, 0, 121294, 113712, 0, 128046, 43419, + 72748, 92866, 10574, 0, 67691, 0, 0, 73785, 0, 78875, 128541, 0, 127366, + 0, 0, 0, 0, 6695, 65113, 324, 0, 128373, 40985, 0, 0, 0, 0, 0, 72307, + 43474, 0, 121190, 0, 0, 3420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110871, 9574, + 120684, 110870, 110814, 5204, 74774, 0, 11835, 0, 0, 983186, 0, 0, 0, 0, + 0, 0, 11750, 68898, 127004, 0, 0, 0, 0, 8130, 0, 0, 0, 121268, 0, 129443, + 0, 68455, 42863, 73839, 0, 0, 0, 92288, 0, 0, 0, 612, 110875, 110876, + 72231, 10538, 0, 1674, 0, 0, 0, 12280, 0, 540, 74550, 0, 66422, 8432, 0, + 11073, 0, 64316, 129894, 0, 7388, 0, 0, 0, 0, 126107, 0, 3359, 0, 0, + 67284, 0, 0, 65482, 129589, 0, 64742, 129304, 0, 124141, 74273, 0, 19941, + 0, 0, 0, 0, 9481, 65555, 0, 66628, 129126, 1195, 64898, 0, 0, 0, 2010, 0, + 0, 0, 0, 0, 0, 4360, 127009, 9739, 0, 72885, 0, 0, 0, 126265, 72200, 0, + 0, 120025, 72199, 0, 0, 65734, 0, 0, 129690, 13075, 0, 94063, 0, 43532, + 10837, 2492, 74516, 983075, 120882, 0, 0, 11813, 9649, 0, 119617, 5128, + 7377, 0, 65604, 0, 0, 6771, 1648, 7819, 0, 0, 0, 125192, 128131, 12709, + 6986, 0, 0, 0, 0, 0, 12581, 0, 5175, 0, 73806, 0, 128420, 0, 0, 77950, 0, + 0, 607, 0, 0, 128846, 119605, 67475, 129528, 65477, 0, 121130, 0, 8265, + 0, 0, 0, 5840, 42838, 0, 0, 68366, 0, 119255, 0, 0, 0, 127929, 0, 2550, + 121011, 6779, 70059, 0, 0, 0, 0, 0, 0, 5619, 65822, 0, 0, 0, 129392, + 5616, 11486, 0, 0, 0, 0, 5615, 0, 121319, 42380, 127958, 0, 66451, 74407, + 0, 11347, 0, 1026, 5620, 0, 0, 11350, 5617, 0, 0, 64639, 0, 0, 0, 1338, + 0, 0, 0, 4603, 0, 70715, 92484, 0, 9002, 0, 3974, 78213, 0, 0, 0, 0, 0, + 0, 75038, 66040, 70455, 0, 0, 0, 72982, 0, 0, 0, 0, 0, 118661, 0, 0, + 119105, 0, 0, 0, 0, 0, 128883, 0, 66897, 0, 0, 0, 42594, 0, 0, 0, 0, + 6714, 10083, 0, 121019, 0, 69976, 0, 0, 9073, 0, 64302, 0, 128286, 9725, + 0, 0, 121288, 73769, 121306, 0, 9570, 0, 11500, 2689, 917626, 0, 983813, + 66740, 0, 0, 0, 917623, 13286, 5500, 42598, 42596, 503, 0, 0, 917618, 0, + 0, 0, 0, 917615, 1652, 772, 6688, 8310, 0, 0, 72124, 0, 10194, 43542, 0, + 125054, 0, 6468, 68110, 0, 917606, 11767, 0, 0, 5836, 12358, 0, 0, 65624, + 12180, 0, 127994, 0, 43699, 0, 0, 72114, 43706, 0, 12362, 12435, 12360, + 0, 9020, 0, 12356, 8616, 0, 42924, 2227, 0, 0, 7315, 12354, 83097, 83098, + 83099, 2358, 83092, 83093, 83094, 0, 0, 83089, 83090, 0, 11759, 71723, 0, + 72834, 83109, 41423, 0, 83103, 83104, 83105, 42237, 110653, 70717, 72260, + 83102, 0, 67856, 0, 128534, 110657, 129354, 129194, 0, 64395, 0, 73008, + 120897, 74816, 0, 0, 0, 83088, 0, 0, 94064, 83083, 83085, 83086, 83087, + 83079, 83080, 2041, 9178, 0, 64870, 0, 83076, 74924, 0, 0, 0, 0, 0, + 78739, 0, 0, 0, 0, 0, 0, 3726, 0, 0, 0, 0, 0, 121432, 129457, 0, 0, 0, 0, + 0, 74901, 0, 0, 0, 0, 0, 124944, 113781, 0, 7410, 2669, 903, 0, 0, 0, + 127232, 74603, 0, 128264, 0, 128411, 0, 0, 11732, 0, 72797, 41448, 41461, + 124934, 0, 917558, 0, 8819, 0, 0, 74606, 92847, 121412, 74835, 0, 9168, + 65786, 0, 73691, 0, 67665, 0, 11758, 68425, 0, 0, 0, 128044, 0, 19924, + 67312, 0, 128755, 64551, 0, 8516, 0, 0, 7561, 983999, 74018, 0, 0, 0, 0, + 83074, 83075, 0, 11233, 83062, 83066, 3787, 83070, 83055, 41458, 83059, + 41463, 65308, 41459, 8683, 775, 0, 65584, 69923, 0, 110798, 110799, + 110796, 43440, 0, 0, 0, 3656, 0, 0, 0, 67694, 1599, 83138, 83139, 8514, + 8513, 83036, 83135, 83136, 110794, 110795, 83131, 83132, 0, 0, 0, 11684, + 10542, 9937, 83150, 0, 75037, 83145, 65730, 83147, 0, 8427, 83142, 55246, + 0, 0, 11497, 0, 0, 0, 119222, 0, 983598, 0, 10621, 0, 0, 129295, 119111, + 120745, 0, 0, 0, 11648, 83126, 83127, 42118, 83129, 83122, 65512, 83124, + 83125, 0, 0, 0, 83121, 74530, 128456, 0, 0, 0, 65724, 0, 0, 0, 65727, 0, + 0, 64963, 73830, 66042, 0, 0, 7875, 0, 0, 0, 129476, 0, 0, 536, 0, 0, 0, + 0, 65173, 129122, 0, 70331, 0, 0, 118598, 0, 129419, 0, 0, 0, 1687, 0, 0, + 0, 0, 0, 0, 10526, 0, 8323, 0, 83301, 11731, 73530, 0, 65460, 12242, 0, + 0, 10843, 11554, 0, 0, 8266, 0, 121101, 0, 0, 0, 0, 67667, 118694, + 119155, 0, 0, 119636, 67857, 0, 0, 0, 11755, 66305, 0, 0, 10917, 93979, + 113688, 0, 2040, 92596, 0, 0, 0, 0, 1227, 83119, 83120, 0, 0, 83115, + 74427, 11149, 4978, 83111, 1984, 11830, 83114, 128934, 74548, 118545, + 9373, 0, 0, 0, 0, 0, 0, 0, 0, 9237, 9390, 0, 0, 0, 0, 0, 1830, 0, 0, 0, + 0, 0, 128577, 983839, 68086, 0, 0, 0, 983059, 0, 983145, 0, 0, 0, 72197, + 55291, 11683, 0, 983659, 0, 11451, 0, 72714, 3731, 2359, 0, 67844, 0, + 121503, 548, 121502, 983250, 121405, 983253, 0, 66272, 0, 64678, 0, 9547, + 0, 0, 1614, 0, 0, 66307, 128092, 1358, 120871, 428, 0, 1466, 0, 10982, 0, + 0, 0, 407, 0, 0, 0, 0, 0, 0, 5804, 73464, 0, 0, 0, 70167, 9057, 42446, 0, + 125097, 0, 0, 8250, 10952, 8048, 0, 129155, 0, 118955, 0, 0, 118593, + 4407, 74648, 0, 0, 0, 8448, 92491, 0, 0, 12675, 12659, 0, 0, 983285, + 68077, 55273, 10766, 12012, 2386, 0, 9170, 0, 9123, 128194, 0, 0, 0, 0, + 129942, 0, 0, 0, 0, 0, 0, 8709, 0, 72383, 0, 0, 0, 0, 0, 0, 0, 128342, 0, + 577, 128610, 0, 0, 124999, 68087, 74840, 126474, 127036, 0, 0, 0, 1414, + 124963, 9683, 43486, 92231, 0, 2536, 0, 66330, 0, 0, 0, 0, 0, 0, 0, + 66317, 0, 66315, 66316, 0, 0, 0, 0, 0, 0, 0, 0, 66323, 66324, 0, 0, 3106, + 65917, 0, 2182, 0, 891, 0, 0, 42624, 0, 0, 8824, 65089, 128734, 10936, 0, + 0, 0, 0, 92688, 0, 0, 0, 0, 12745, 0, 0, 41285, 3547, 0, 0, 129877, 0, + 118701, 6089, 0, 68490, 120578, 4170, 1029, 127761, 0, 0, 42374, 917625, + 744, 917624, 0, 0, 0, 93046, 0, 3551, 0, 0, 4623, 0, 0, 12340, 0, 65136, + 0, 0, 0, 0, 0, 0, 0, 72291, 0, 0, 120778, 0, 11972, 0, 78757, 0, 122886, + 177, 122894, 0, 0, 0, 0, 55243, 0, 0, 0, 70172, 120249, 120242, 128027, + 120243, 0, 0, 0, 120237, 120245, 94079, 0, 0, 9136, 120240, 120614, + 41280, 0, 0, 0, 0, 74149, 128327, 0, 0, 66361, 12601, 72194, 64360, + 65163, 125241, 0, 0, 0, 0, 0, 5404, 43332, 3667, 7936, 12925, 0, 0, 0, 0, + 0, 10874, 65505, 0, 0, 0, 0, 128920, 983681, 0, 0, 0, 0, 0, 0, 0, 0, + 66677, 0, 0, 0, 70088, 74148, 0, 0, 72868, 120230, 120224, 74172, 0, 0, + 94096, 0, 128414, 120636, 0, 127519, 917609, 917616, 0, 128652, 0, 0, + 11441, 0, 3512, 0, 0, 43597, 0, 0, 72734, 68153, 41563, 0, 0, 129352, + 41544, 0, 0, 74927, 0, 129177, 0, 0, 0, 118908, 0, 78108, 67396, 73804, + 64711, 0, 0, 917610, 0, 0, 0, 11557, 127776, 0, 12079, 0, 0, 0, 0, + 128861, 0, 0, 0, 0, 0, 983201, 8103, 72303, 128174, 92486, 110698, 0, + 64587, 0, 0, 124961, 0, 0, 0, 126481, 0, 0, 0, 0, 0, 70348, 1450, 0, + 1340, 0, 0, 128970, 0, 0, 125117, 0, 0, 0, 0, 6539, 92948, 0, 128213, + 125060, 0, 0, 0, 3973, 0, 70504, 121193, 7982, 0, 0, 127194, 0, 0, 0, + 128408, 118968, 6417, 120619, 129748, 0, 0, 0, 129455, 4919, 65121, + 110872, 7755, 0, 0, 64548, 0, 1621, 0, 0, 0, 0, 0, 12188, 0, 0, 0, 0, + 5015, 0, 0, 42590, 70354, 1756, 0, 0, 0, 120694, 0, 0, 7555, 73874, 5408, + 2817, 1214, 69919, 0, 983126, 0, 0, 125055, 127195, 7957, 0, 0, 1056, + 74944, 0, 0, 0, 0, 7073, 74979, 0, 70853, 0, 110874, 0, 0, 2341, 126644, + 8484, 0, 0, 68322, 0, 8461, 67721, 42269, 0, 0, 43709, 43708, 9451, 7571, + 13073, 43847, 126647, 0, 983263, 0, 0, 0, 8781, 12894, 78134, 0, 78132, + 0, 0, 78184, 0, 11338, 120768, 0, 0, 0, 0, 0, 121367, 65021, 64795, + 74574, 0, 10047, 0, 0, 0, 0, 0, 0, 119181, 163, 576, 9895, 0, 0, 74591, + 0, 0, 66888, 0, 0, 0, 0, 0, 0, 7017, 128111, 0, 0, 129922, 0, 41591, + 11036, 65252, 120795, 129488, 0, 0, 0, 0, 0, 0, 8887, 0, 7295, 71203, 0, + 127221, 0, 0, 0, 0, 8755, 0, 0, 8147, 73127, 0, 0, 121348, 0, 129377, 0, + 74499, 0, 0, 0, 4619, 0, 6654, 123192, 0, 0, 0, 65689, 10128, 0, 129612, + 0, 0, 92651, 0, 2401, 0, 8792, 118546, 0, 74980, 0, 92246, 0, 0, 0, + 12886, 0, 66624, 0, 0, 74133, 65170, 0, 74135, 0, 0, 9984, 73867, 3010, + 0, 70349, 10698, 41475, 0, 119151, 0, 119152, 0, 0, 9100, 0, 0, 0, 78116, + 64780, 2001, 0, 55230, 0, 4052, 92856, 7626, 78080, 0, 0, 0, 41477, 0, 0, + 0, 43707, 74127, 0, 0, 0, 78086, 73758, 2335, 10663, 0, 0, 129872, + 119602, 0, 0, 70325, 0, 41443, 0, 0, 0, 9711, 1523, 0, 0, 41445, 0, 0, + 8567, 41442, 12821, 0, 0, 118978, 0, 65274, 0, 94082, 0, 127515, 0, 0, + 43446, 0, 0, 0, 0, 127985, 0, 10206, 127167, 6375, 2673, 0, 0, 0, 43219, + 129355, 0, 0, 0, 0, 129400, 11799, 101225, 68466, 0, 0, 0, 0, 0, 120736, + 0, 7203, 0, 0, 70361, 127213, 120615, 127216, 0, 0, 0, 0, 43121, 0, + 128366, 72161, 0, 129868, 0, 121260, 73781, 70365, 0, 68039, 70446, 10057, 0, 0, 0, 101219, 120963, 101220, 2307, 0, 0, 0, 0, 73873, 0, 94035, 0, 0, 67469, 0, 129983, 7327, 0, 0, 440, 0, 0, 68613, 75059, 0, 0, 9957, 0, 0, 8046, 0, 119158, 0, 0, 68609, 0, 129405, 1521, 129460, 92256, @@ -28625,9 +28818,9 @@ static const unsigned int code_hash[] = { 120458, 5647, 120473, 7387, 0, 92675, 11477, 5646, 0, 11018, 0, 0, 0, 0, 0, 0, 69280, 128459, 126128, 5651, 0, 0, 0, 5648, 0, 120920, 0, 127517, 3545, 0, 6984, 0, 0, 0, 69414, 126613, 0, 10123, 0, 69274, 0, 0, 65020, - 74885, 119166, 0, 0, 0, 0, 0, 1140, 78426, 0, 0, 0, 0, 8128, 9889, 0, 0, - 1815, 0, 890, 0, 3267, 0, 0, 0, 983686, 4410, 125081, 10576, 8102, 0, - 580, 74232, 0, 0, 0, 0, 0, 19938, 0, 0, 0, 0, 3298, 6546, 0, 0, 0, 0, + 74885, 119166, 0, 0, 0, 0, 0, 1140, 78426, 0, 0, 0, 122665, 8128, 9889, + 0, 0, 1815, 0, 890, 0, 3267, 0, 0, 0, 983686, 4410, 125081, 10576, 8102, + 0, 580, 74232, 0, 0, 0, 0, 0, 19938, 0, 0, 0, 0, 3298, 6546, 0, 0, 0, 0, 6134, 41246, 0, 0, 0, 917770, 0, 6264, 0, 0, 0, 0, 0, 0, 69445, 0, 0, 0, 92697, 11915, 10377, 0, 10072, 0, 0, 2329, 0, 0, 0, 0, 0, 0, 0, 67498, 0, 101164, 0, 11201, 92708, 74769, 0, 13263, 0, 0, 92404, 126066, 69491, 0, @@ -28637,12 +28830,12 @@ static const unsigned int code_hash[] = { 11829, 68197, 0, 0, 11475, 70329, 3020, 42264, 0, 0, 0, 7098, 0, 0, 127967, 957, 42696, 0, 3016, 0, 0, 0, 0, 0, 121248, 92510, 3006, 4620, 0, 0, 0, 0, 129369, 129425, 0, 0, 0, 126246, 8626, 0, 128824, 0, 65377, 0, - 983102, 42920, 1698, 0, 64477, 0, 0, 43813, 100432, 100431, 100434, + 983103, 42920, 1698, 0, 64477, 0, 0, 43813, 100432, 100431, 100434, 100433, 100436, 70321, 100438, 100437, 100440, 100439, 0, 121024, 101177, 70327, 100441, 55252, 100443, 100442, 100445, 100444, 66641, 100446, 100449, 100448, 0, 100450, 113820, 74866, 64375, 0, 127850, 129477, 0, 0, 0, 0, 983799, 0, 0, 120827, 0, 0, 123637, 0, 0, 0, 101183, 8110, 100421, - 0, 100423, 5830, 100425, 100424, 100427, 100426, 100429, 100428, 42389, + 0, 100423, 5830, 100425, 100424, 100427, 73540, 100429, 100428, 42389, 78611, 121398, 0, 0, 0, 0, 0, 0, 0, 83342, 983954, 0, 127147, 119187, 2135, 11836, 0, 0, 78869, 42313, 5579, 0, 70384, 983082, 94002, 0, 5578, 11840, 73006, 42023, 69849, 5669, 92559, 0, 0, 68833, 917845, 128275, @@ -28678,75 +28871,76 @@ static const unsigned int code_hash[] = { 118626, 0, 0, 113710, 0, 73449, 68069, 0, 70332, 0, 5659, 0, 0, 66729, 5655, 0, 0, 0, 68806, 0, 128225, 66310, 73444, 0, 0, 70362, 0, 11609, 0, 126990, 92949, 10272, 10304, 10368, 74511, 594, 10244, 10248, 10256, - 983918, 0, 0, 3467, 41010, 0, 3331, 946, 0, 1495, 13184, 74330, 128242, - 9562, 0, 123175, 0, 70036, 0, 0, 0, 123176, 0, 0, 0, 5666, 65227, 123174, - 68419, 0, 11796, 123178, 0, 0, 10186, 123172, 7732, 983755, 0, 0, 0, - 5668, 83334, 0, 74645, 5670, 0, 0, 12741, 126619, 123638, 5667, 19952, - 120807, 113766, 12749, 0, 67757, 2263, 0, 0, 119260, 129131, 9286, 83335, - 128457, 83336, 70359, 0, 3571, 13247, 5874, 78279, 73447, 68435, 78278, - 78267, 78268, 0, 78265, 553, 113768, 0, 93053, 5829, 0, 4587, 78285, - 78299, 129699, 12746, 0, 70338, 0, 5633, 0, 94101, 94102, 94099, 94100, - 94105, 74856, 94103, 12742, 0, 983837, 0, 0, 0, 70330, 0, 983830, 0, 0, - 0, 12148, 0, 0, 0, 0, 0, 64938, 67234, 5634, 0, 0, 2146, 0, 118880, 2425, - 65182, 983832, 43636, 0, 83326, 328, 0, 68736, 0, 5636, 123163, 5329, 0, - 5638, 0, 7940, 0, 43223, 43760, 5635, 3373, 72424, 78292, 74223, 73441, - 68763, 78287, 9833, 0, 74208, 41635, 0, 77775, 43040, 78297, 68778, - 78295, 5639, 65603, 5660, 5640, 78303, 0, 78300, 0, 68301, 0, 0, 78312, - 0, 78310, 41625, 78308, 78309, 100731, 41780, 5642, 100732, 100735, - 100734, 4356, 100736, 100739, 12051, 70166, 100740, 5641, 8259, 0, 0, 0, - 119570, 0, 0, 121264, 983558, 0, 0, 0, 73890, 0, 0, 2800, 11220, 5645, - 64964, 8652, 83323, 0, 0, 121356, 5608, 128281, 119932, 118562, 0, 0, - 9000, 0, 83324, 92673, 129176, 0, 5613, 74267, 100721, 100724, 5610, - 100726, 92965, 100728, 5612, 100730, 10787, 0, 3615, 123647, 5609, 78316, - 78317, 78313, 78315, 5875, 5808, 0, 8186, 0, 74269, 0, 70004, 65874, - 72422, 5807, 0, 66320, 5306, 12936, 0, 92970, 127961, 0, 92583, 10211, 0, - 0, 78871, 121063, 0, 129512, 0, 0, 0, 0, 0, 74237, 0, 9133, 74262, 0, - 92840, 0, 64779, 4672, 0, 6185, 64776, 0, 121266, 6499, 0, 0, 0, 92720, - 0, 67494, 93791, 2534, 0, 93768, 93778, 93762, 71849, 71869, 93781, - 64583, 93761, 93780, 93760, 93787, 92443, 128714, 71848, 93774, 66411, - 93785, 71841, 93770, 93769, 0, 0, 0, 121168, 68443, 69774, 931, 0, - 125052, 6363, 2748, 0, 0, 0, 983603, 44011, 0, 0, 100711, 119009, 100713, - 100712, 100715, 65896, 100717, 78298, 100719, 100718, 128836, 100720, - 11649, 0, 0, 0, 0, 0, 42341, 65284, 0, 0, 12884, 0, 7907, 127255, 0, 0, - 0, 0, 68779, 0, 68786, 0, 100691, 0, 100693, 100692, 42851, 100694, - 100697, 100696, 92276, 78226, 66393, 100700, 0, 93773, 93776, 93777, - 100702, 78301, 100704, 100703, 42415, 78307, 4542, 69909, 94022, 100709, - 0, 0, 0, 0, 42454, 11565, 7949, 124939, 0, 0, 42494, 3073, 0, 0, 42302, - 0, 126553, 70810, 0, 72401, 0, 0, 0, 129319, 4877, 100681, 100684, - 100683, 10548, 100685, 100688, 100687, 100690, 64798, 70805, 5346, 0, - 126570, 0, 4874, 0, 0, 0, 0, 0, 65884, 0, 0, 0, 11378, 0, 42785, 0, 3251, - 11203, 0, 0, 0, 69568, 11052, 0, 5342, 8317, 0, 0, 5340, 0, 0, 128599, 0, - 129538, 0, 128395, 0, 128510, 0, 0, 9142, 0, 0, 0, 10938, 0, 0, 1182, - 127381, 4829, 0, 0, 72438, 529, 0, 0, 0, 10586, 10790, 10839, 121427, - 41593, 100669, 0, 0, 41594, 225, 66418, 0, 0, 983969, 11376, 0, 41596, 0, - 64975, 0, 0, 11084, 3194, 0, 78306, 78305, 0, 0, 0, 11324, 0, 0, 8420, - 127756, 128844, 0, 41338, 129683, 11485, 0, 41322, 66605, 100671, 0, - 100673, 100672, 100675, 5161, 41330, 100676, 100679, 100678, 100659, - 100658, 0, 100660, 0, 100485, 12361, 0, 12359, 983559, 41369, 66412, - 12191, 0, 0, 0, 0, 78221, 41376, 0, 9870, 0, 41385, 65824, 100651, 11938, - 100653, 100652, 100655, 100654, 42678, 100656, 0, 64649, 0, 0, 0, 0, 0, - 983967, 100662, 100661, 100664, 66334, 100666, 70280, 832, 100667, 2240, - 78473, 66007, 78471, 65703, 0, 0, 0, 12357, 0, 41395, 0, 0, 0, 0, 0, 0, - 983463, 0, 41114, 65466, 0, 983844, 6024, 0, 9979, 0, 0, 0, 0, 0, 0, 0, - 4285, 0, 0, 4230, 0, 7367, 0, 92353, 7563, 42376, 0, 128532, 0, 0, 0, 0, - 67500, 0, 78466, 0, 12208, 128138, 0, 66311, 71309, 0, 41130, 78286, 0, - 0, 70047, 0, 6022, 0, 0, 0, 0, 0, 41125, 0, 66453, 0, 41107, 0, 41121, - 5300, 129588, 0, 0, 0, 74801, 70855, 2074, 73456, 0, 0, 12453, 0, 0, 0, - 0, 68159, 12457, 0, 0, 66278, 0, 0, 0, 0, 0, 66637, 12455, 0, 128473, 0, - 12449, 0, 71224, 0, 0, 66908, 0, 10165, 0, 119249, 113715, 0, 128223, 0, - 0, 0, 0, 4993, 0, 6168, 74033, 4995, 0, 69459, 77756, 4639, 0, 72223, 0, - 0, 0, 0, 0, 0, 66991, 0, 0, 0, 0, 0, 0, 83310, 0, 0, 0, 0, 0, 0, 0, 0, - 129594, 4953, 0, 0, 0, 0, 83311, 0, 73453, 65688, 0, 10125, 3517, 0, 0, - 0, 65094, 74791, 78262, 10627, 66333, 78256, 78257, 83304, 78253, 0, - 71317, 64923, 0, 65208, 10608, 78263, 78264, 0, 0, 0, 65883, 0, 0, 74914, - 0, 0, 6853, 0, 0, 12912, 119012, 0, 128191, 0, 0, 129586, 0, 1290, 0, 0, - 0, 0, 113719, 71442, 0, 0, 8978, 0, 119135, 120979, 10527, 71079, 0, 0, - 0, 0, 0, 0, 5336, 0, 0, 6934, 0, 10780, 0, 0, 78767, 0, 0, 0, 347, 0, 0, - 78775, 64675, 41582, 78774, 78771, 68094, 74903, 78769, 69221, 69657, 0, - 0, 11153, 120981, 78526, 0, 0, 0, 0, 41584, 0, 69464, 0, 0, 0, 0, 43510, + 983918, 122974, 0, 3467, 41010, 0, 3331, 946, 0, 1495, 13184, 74330, + 128242, 9562, 0, 123175, 0, 70036, 122976, 0, 0, 123176, 0, 0, 0, 5666, + 65227, 123174, 68419, 0, 11796, 123178, 0, 0, 10186, 123172, 7732, + 983755, 0, 0, 0, 5668, 83334, 0, 74645, 5670, 0, 0, 12741, 126619, + 123638, 5667, 19952, 120807, 113766, 12749, 0, 67757, 2263, 0, 0, 119260, + 129131, 9286, 83335, 128457, 83336, 70359, 0, 3571, 13247, 5874, 78279, + 73447, 68435, 78278, 78267, 78268, 0, 78265, 553, 113768, 0, 93053, 5829, + 0, 4587, 78285, 78299, 129699, 12746, 0, 70338, 0, 5633, 0, 94101, 94102, + 94099, 94100, 94105, 74856, 94103, 12742, 0, 983837, 0, 0, 0, 70330, 0, + 983830, 0, 0, 0, 12148, 0, 0, 0, 0, 0, 64938, 67234, 5634, 0, 0, 2146, 0, + 118880, 2425, 65182, 983832, 43636, 0, 83326, 328, 0, 68736, 0, 5636, + 123163, 5329, 0, 5638, 0, 7940, 0, 43223, 43760, 5635, 3373, 72424, + 78292, 74223, 73441, 68763, 78287, 9833, 0, 74208, 41635, 0, 77775, + 43040, 78297, 68778, 78295, 5639, 65603, 5660, 5640, 78303, 0, 78300, 0, + 68301, 0, 0, 78312, 0, 78310, 41625, 78308, 78309, 100731, 41780, 5642, + 100732, 100735, 100734, 4356, 100736, 100739, 12051, 70166, 100740, 5641, + 8259, 0, 0, 0, 119570, 0, 0, 121264, 983558, 0, 0, 0, 73890, 0, 0, 2800, + 11220, 5645, 64964, 8652, 83323, 0, 0, 121356, 5608, 128281, 119932, + 118562, 0, 0, 9000, 0, 83324, 92673, 129176, 0, 5613, 74267, 100721, + 100724, 5610, 100726, 92965, 100728, 5612, 100730, 10787, 0, 3615, + 123647, 5609, 78316, 78317, 78313, 78315, 5875, 5808, 0, 8186, 0, 74269, + 122977, 70004, 65874, 72422, 5807, 0, 66320, 5306, 12936, 0, 92970, + 127961, 0, 92583, 10211, 0, 0, 78871, 121063, 0, 129512, 0, 0, 0, 0, 0, + 74237, 0, 9133, 74262, 0, 92840, 0, 64779, 4672, 73529, 6185, 64776, 0, + 121266, 6499, 0, 0, 0, 92720, 0, 67494, 93791, 2534, 0, 93768, 93778, + 93762, 71849, 71869, 93781, 64583, 93761, 93780, 78922, 93787, 92443, + 128714, 71848, 93774, 66411, 93785, 71841, 93770, 93769, 0, 0, 0, 121168, + 68443, 69774, 931, 0, 125052, 6363, 2748, 0, 0, 0, 983603, 44011, 0, 0, + 100711, 119009, 100713, 100712, 100715, 65896, 100717, 78298, 100719, + 100718, 128836, 100720, 11649, 0, 0, 0, 0, 0, 42341, 65284, 0, 0, 12884, + 0, 7907, 127255, 0, 0, 0, 0, 68779, 0, 68786, 0, 100691, 0, 100693, + 100692, 42851, 100694, 100697, 100696, 92276, 78226, 66393, 100700, 0, + 93773, 93776, 93777, 100702, 78301, 100704, 100703, 42415, 78307, 4542, + 69909, 94022, 100709, 0, 0, 0, 0, 42454, 11565, 7949, 124939, 0, 0, + 42494, 3073, 0, 0, 42302, 0, 126553, 70810, 0, 72401, 0, 0, 0, 129319, + 4877, 100681, 100684, 100683, 10548, 100685, 100688, 100687, 100690, + 64798, 70805, 5346, 0, 126570, 124135, 4874, 124136, 0, 0, 0, 0, 65884, + 0, 0, 0, 11378, 0, 42785, 0, 3251, 11203, 0, 0, 0, 69568, 11052, 0, 5342, + 8317, 0, 0, 5340, 0, 122970, 128599, 0, 129538, 0, 128395, 0, 128510, 0, + 0, 9142, 0, 0, 0, 10938, 0, 0, 1182, 127381, 4829, 0, 0, 72438, 529, 0, + 0, 0, 10586, 10790, 10839, 121427, 41593, 100669, 0, 118532, 41594, 225, + 66418, 0, 0, 983969, 11376, 0, 41596, 0, 64975, 0, 0, 11084, 3194, 0, + 78306, 78305, 0, 0, 0, 11324, 0, 0, 8420, 127756, 128844, 0, 41338, + 129683, 11485, 0, 41322, 66605, 100671, 0, 100673, 100672, 100675, 5161, + 41330, 100676, 100679, 100678, 100659, 100658, 0, 100660, 0, 100485, + 12361, 0, 12359, 983559, 41369, 66412, 12191, 0, 0, 0, 0, 78221, 41376, + 0, 9870, 0, 41385, 65824, 100651, 11938, 100653, 100652, 100655, 100654, + 42678, 100656, 0, 64649, 0, 0, 0, 0, 0, 983967, 100662, 100661, 100664, + 66334, 100666, 70280, 832, 100667, 2240, 78473, 66007, 78471, 65703, 0, + 0, 0, 12357, 0, 41395, 0, 0, 0, 0, 0, 0, 983466, 0, 41114, 65466, 0, + 983844, 6024, 0, 9979, 0, 0, 0, 0, 0, 0, 0, 4285, 0, 0, 4230, 0, 7367, 0, + 92353, 7563, 42376, 0, 128532, 0, 0, 0, 0, 67500, 0, 78466, 0, 12208, + 128138, 0, 66311, 71309, 0, 41130, 78286, 0, 0, 70047, 0, 6022, 0, 0, 0, + 0, 0, 41125, 0, 66453, 0, 41107, 0, 41121, 5300, 129588, 0, 0, 128759, + 74801, 70855, 2074, 73456, 0, 0, 12453, 0, 0, 0, 0, 68159, 12457, 0, 0, + 66278, 0, 0, 0, 0, 0, 66637, 12455, 0, 128473, 0, 12449, 0, 71224, 0, 0, + 66908, 0, 10165, 0, 119249, 113715, 0, 128223, 0, 0, 0, 0, 4993, 0, 6168, + 74033, 4995, 0, 69459, 77756, 4639, 0, 72223, 0, 73478, 0, 0, 0, 73486, + 66991, 0, 0, 0, 0, 0, 0, 83310, 0, 0, 0, 0, 0, 0, 0, 0, 129594, 4953, 0, + 0, 0, 0, 83311, 0, 73453, 65688, 0, 10125, 3517, 0, 0, 0, 65094, 74791, + 78262, 10627, 66333, 78256, 78257, 83304, 78253, 0, 71317, 64923, 0, + 65208, 10608, 78263, 78264, 0, 0, 0, 65883, 0, 0, 74914, 0, 0, 6853, 0, + 0, 12912, 119012, 0, 128191, 0, 0, 129586, 0, 1290, 0, 0, 0, 0, 113719, + 71442, 0, 0, 8978, 0, 119135, 120979, 10527, 71079, 0, 0, 0, 0, 0, 0, + 5336, 0, 0, 6934, 0, 10780, 0, 0, 78767, 0, 0, 0, 347, 0, 0, 78775, + 64675, 41582, 78774, 78771, 68094, 74903, 78769, 69221, 69657, 0, 0, + 11153, 120981, 78526, 0, 0, 0, 0, 41584, 0, 69464, 0, 0, 0, 0, 43510, 66661, 0, 66306, 78791, 66384, 0, 6609, 0, 0, 11319, 0, 66984, 0, 41730, 0, 0, 127920, 0, 65172, 41728, 41721, 0, 0, 0, 41203, 0, 0, 41726, 0, 0, - 5758, 0, 0, 41140, 2028, 78092, 0, 0, 0, 92739, 983195, 41138, 0, 0, 0, + 5758, 0, 0, 41140, 2028, 78092, 0, 0, 0, 92739, 983196, 41138, 0, 0, 0, 125082, 1115, 127060, 9794, 127062, 67671, 92238, 12237, 78787, 66314, 78785, 9290, 73668, 78783, 78780, 66985, 127144, 7926, 0, 0, 0, 64398, 100924, 71274, 12311, 101268, 78796, 78798, 78794, 78795, 78792, 78793, @@ -28760,113 +28954,114 @@ static const unsigned int code_hash[] = { 66511, 68066, 2637, 110685, 8460, 110683, 8476, 110681, 0, 110679, 0, 127919, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5412, 66243, 9935, 122892, 0, 73864, 41734, 8206, 74081, 0, 3286, 120730, 0, 0, 41732, 0, 41736, - 983201, 41731, 0, 0, 70842, 0, 0, 0, 0, 129329, 0, 66853, 0, 0, 78742, + 983203, 41731, 0, 0, 70842, 0, 0, 0, 0, 129329, 0, 66853, 0, 0, 78742, 72755, 11277, 65892, 0, 10620, 92272, 68165, 0, 0, 0, 73942, 67001, 100479, 0, 119093, 3459, 0, 129398, 0, 0, 72130, 92512, 0, 66377, 69781, 128718, 0, 111304, 3161, 69981, 0, 0, 0, 0, 0, 9016, 78153, 0, 0, 43641, 0, 121018, 0, 101279, 0, 0, 0, 0, 0, 68342, 120950, 94043, 0, 12332, 121310, 6086, 41722, 0, 120709, 0, 0, 111305, 118677, 0, 128307, 74288, - 0, 74546, 0, 129178, 129399, 92224, 42460, 0, 0, 0, 0, 120941, 42421, 0, - 41723, 110606, 64358, 11460, 983508, 0, 64718, 120838, 66869, 0, 42348, - 0, 6752, 452, 42500, 0, 128258, 0, 42308, 0, 0, 0, 12932, 0, 69968, - 42950, 66827, 917582, 0, 0, 8302, 0, 66929, 0, 0, 7250, 13214, 10041, - 8105, 65568, 127780, 69969, 127759, 0, 0, 121467, 0, 121466, 41384, 0, - 69878, 0, 5538, 9987, 111298, 118932, 129307, 0, 552, 0, 7357, 10785, - 66995, 0, 4557, 0, 0, 10171, 68320, 0, 5540, 0, 0, 281, 0, 0, 42622, 0, - 5536, 0, 0, 1388, 0, 0, 10504, 0, 0, 11531, 74324, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3663, 0, 121081, 70335, 74859, 0, 5334, 0, 110738, 72319, 0, - 11305, 66997, 68456, 0, 66611, 0, 19907, 64363, 3478, 7583, 7679, 74154, - 0, 0, 1158, 0, 983890, 73748, 0, 0, 1915, 4846, 0, 120132, 118984, - 120134, 120129, 120128, 805, 120130, 64438, 120124, 8760, 120126, 72137, - 120120, 120123, 94003, 0, 0, 0, 0, 0, 12225, 0, 0, 0, 70173, 75045, 0, - 129515, 8083, 0, 0, 0, 111094, 92626, 0, 0, 0, 0, 0, 0, 110837, 0, 67699, - 560, 5643, 0, 0, 0, 0, 0, 0, 0, 120144, 0, 120661, 78304, 1597, 120143, - 120142, 206, 70126, 120139, 120138, 8168, 0, 73086, 0, 0, 0, 118650, - 125036, 0, 0, 3546, 42573, 66811, 67000, 0, 128397, 8400, 0, 0, 0, 0, 0, - 7903, 9287, 72791, 0, 0, 0, 0, 72134, 66603, 1695, 917861, 0, 0, 111101, - 0, 0, 0, 0, 0, 0, 0, 111099, 0, 111098, 4754, 0, 69222, 128229, 0, 0, - 7354, 7408, 0, 0, 121181, 0, 0, 0, 12739, 0, 1278, 4187, 0, 42119, 42120, - 0, 121158, 0, 12467, 0, 68902, 0, 12463, 0, 0, 118827, 0, 9664, 70834, - 74475, 0, 0, 0, 0, 0, 3661, 0, 0, 9022, 127955, 0, 101460, 126257, 0, - 6118, 222, 126250, 3884, 0, 74151, 0, 6502, 0, 11085, 121261, 0, 0, 0, 0, - 0, 0, 0, 0, 12461, 0, 0, 0, 94059, 11254, 10860, 64880, 0, 64685, 0, 0, - 94087, 7776, 11219, 0, 0, 121339, 69730, 801, 43165, 0, 78212, 0, 0, - 13277, 0, 12951, 0, 9906, 5486, 2334, 128672, 67680, 5483, 73732, 120884, - 119128, 2256, 0, 127876, 2539, 0, 78507, 5485, 69826, 42697, 0, 0, - 113689, 4502, 68057, 253, 73672, 0, 0, 9203, 0, 0, 0, 0, 0, 121242, - 11127, 0, 0, 0, 13257, 0, 0, 0, 69645, 0, 0, 0, 70431, 0, 5693, 64470, 0, - 66610, 67678, 0, 983678, 0, 0, 0, 0, 0, 0, 0, 94078, 0, 0, 66608, 3111, - 0, 8804, 66607, 0, 0, 0, 66606, 0, 0, 0, 1436, 0, 55226, 0, 111287, 7393, - 41592, 0, 0, 1598, 78101, 0, 0, 65193, 4423, 0, 113692, 10515, 41589, 0, - 0, 0, 101485, 1430, 101486, 0, 120606, 0, 66223, 7619, 3255, 128280, - 74032, 11549, 10735, 93038, 100741, 6801, 100743, 100746, 2148, 100748, - 100747, 100750, 100749, 0, 121229, 101479, 69243, 41724, 67716, 69669, - 41690, 111269, 983666, 8380, 100355, 983849, 0, 101480, 0, 0, 0, 0, 6333, - 111264, 42315, 0, 129502, 111265, 0, 0, 5339, 74323, 0, 13004, 0, 0, 0, - 0, 0, 0, 5684, 0, 0, 0, 5689, 0, 0, 68464, 12633, 12870, 0, 65183, 5688, - 0, 0, 6310, 5686, 0, 0, 0, 120647, 70046, 50, 94095, 9871, 0, 0, 121446, - 0, 0, 0, 66905, 0, 4448, 0, 121406, 113734, 72125, 1321, 0, 10640, 0, 0, - 101497, 0, 0, 118532, 0, 0, 0, 0, 0, 12501, 0, 0, 0, 0, 8812, 0, 69986, - 8673, 0, 129024, 0, 0, 2105, 72101, 72712, 0, 129929, 0, 0, 0, 4636, - 55262, 77745, 4515, 2382, 0, 0, 7313, 101477, 0, 0, 194626, 0, 0, 0, 0, - 0, 0, 0, 10197, 194719, 0, 0, 0, 194718, 0, 0, 0, 64189, 0, 1873, 0, 0, - 0, 0, 0, 983682, 0, 0, 101499, 72282, 126991, 71113, 0, 0, 129340, 9489, - 0, 70843, 0, 0, 0, 0, 128030, 13295, 43191, 0, 0, 1154, 0, 1205, 0, 0, 0, - 12958, 0, 0, 0, 66968, 0, 10592, 0, 495, 0, 41712, 7983, 0, 0, 0, 6347, - 69465, 7654, 41710, 4196, 0, 0, 41709, 73772, 70832, 0, 9465, 983783, 0, - 0, 917612, 0, 72374, 41714, 0, 0, 0, 6343, 72376, 0, 43996, 0, 8044, - 66979, 0, 41789, 0, 10809, 71953, 0, 0, 0, 8146, 11025, 0, 120513, 642, - 0, 0, 0, 12875, 0, 0, 13229, 71950, 41788, 0, 92835, 0, 41791, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 8428, 6569, 92851, 0, 0, 0, 10167, 0, 68248, 8049, - 0, 0, 0, 0, 128882, 4761, 0, 4766, 64623, 0, 121180, 194653, 118876, 0, - 6912, 9232, 7033, 0, 0, 41545, 0, 71970, 72160, 72107, 0, 0, 0, 3484, 0, - 0, 0, 8503, 41539, 41527, 0, 0, 983842, 0, 0, 66983, 41537, 0, 41541, - 8282, 11817, 129965, 128219, 0, 0, 126132, 0, 0, 70115, 66609, 111235, - 65921, 0, 0, 194664, 0, 129326, 77970, 42246, 75030, 120605, 0, 65926, - 7744, 68859, 94056, 74277, 126108, 0, 6966, 194633, 8136, 0, 0, 0, 0, 0, - 4762, 0, 0, 0, 4765, 69443, 983585, 66970, 4760, 0, 0, 10871, 43199, - 194645, 0, 93955, 0, 0, 11546, 0, 337, 0, 0, 0, 12279, 7768, 0, 128352, - 0, 69812, 10143, 7883, 121444, 7880, 64618, 13012, 5704, 13010, 0, 0, - 119531, 0, 0, 0, 0, 66654, 0, 0, 0, 13008, 0, 4385, 0, 13011, 0, 92569, - 66972, 13009, 74771, 70159, 0, 0, 41793, 64450, 74221, 120996, 41792, - 111242, 94054, 126094, 0, 111244, 5709, 120689, 71076, 0, 0, 0, 0, 0, - 5708, 0, 0, 0, 5706, 66362, 5705, 8791, 41797, 0, 10237, 66436, 0, 66974, - 0, 0, 128083, 13170, 0, 127075, 0, 0, 41377, 0, 0, 10058, 120735, 101431, - 0, 0, 0, 0, 0, 0, 129641, 119525, 0, 0, 72350, 0, 983584, 2144, 0, - 120765, 0, 0, 1754, 92226, 13246, 864, 0, 118926, 8972, 0, 7849, 0, 0, - 13240, 0, 5192, 0, 0, 10948, 0, 13199, 0, 1236, 13208, 13261, 13189, - 13188, 93993, 0, 7440, 66976, 0, 0, 1844, 125229, 0, 13178, 0, 0, 0, - 125230, 0, 0, 13260, 4550, 121249, 125227, 0, 71071, 0, 0, 68523, 0, 0, - 11354, 94071, 0, 42795, 129317, 0, 0, 0, 125237, 0, 13194, 13274, 0, 0, - 129533, 65586, 68311, 0, 119193, 4601, 194661, 101454, 194658, 0, 194659, - 0, 121422, 128790, 194657, 41717, 67402, 101444, 121129, 41716, 127376, - 7910, 0, 0, 754, 41944, 0, 8183, 120741, 2037, 101440, 0, 101441, 125, 0, - 0, 0, 983124, 101442, 41719, 0, 7990, 12637, 13258, 9536, 71056, 0, 4427, - 0, 71200, 0, 12217, 0, 41532, 129315, 0, 0, 0, 0, 111063, 83349, 0, 0, - 120622, 0, 0, 0, 0, 43632, 0, 0, 8140, 0, 6260, 0, 0, 66765, 129657, 0, - 3898, 0, 0, 13200, 0, 0, 66582, 0, 0, 0, 0, 1068, 71178, 13259, 12945, 0, - 42203, 0, 3124, 69411, 0, 4386, 12224, 6973, 129563, 0, 0, 119535, 0, - 121312, 0, 12232, 0, 0, 5681, 64578, 75023, 72016, 13209, 0, 0, 0, 0, 0, - 11053, 0, 74902, 128107, 128942, 7588, 0, 1693, 74942, 43204, 65831, 0, - 0, 0, 68803, 111216, 111223, 0, 0, 65685, 9523, 2243, 0, 0, 0, 0, 0, 0, - 0, 0, 13191, 0, 3500, 3139, 100643, 3170, 100645, 100644, 66934, 100646, - 13006, 64433, 0, 100650, 941, 0, 0, 120967, 3727, 0, 0, 0, 72378, 0, 0, - 118611, 94039, 129299, 92455, 0, 0, 64444, 0, 0, 43603, 94075, 65397, - 288, 0, 0, 0, 10025, 73692, 0, 0, 68182, 0, 0, 0, 92438, 65395, 0, 0, 0, - 65393, 83078, 121111, 0, 0, 0, 0, 0, 65394, 11548, 72305, 0, 65396, 0, 0, - 13256, 1282, 0, 0, 0, 111085, 0, 0, 0, 111087, 72115, 0, 0, 0, 0, 0, - 3304, 0, 0, 0, 126595, 72437, 68353, 0, 0, 42113, 0, 0, 0, 0, 0, 43094, - 0, 0, 94037, 68317, 9035, 0, 0, 0, 0, 0, 70822, 128467, 164, 68309, - 94067, 94000, 100631, 100634, 100633, 100636, 100635, 100638, 100637, - 68808, 100639, 110665, 73893, 11099, 110664, 13175, 13207, 0, 127552, 0, - 74643, 5929, 0, 0, 129192, 983654, 11306, 0, 119059, 3180, 125102, 0, 0, - 0, 13062, 0, 129551, 128707, 0, 0, 74428, 0, 128000, 0, 11251, 70204, 0, - 10045, 0, 13275, 0, 11057, 0, 13276, 125133, 41525, 983084, 128015, - 11444, 0, 129158, 0, 122642, 41523, 127765, 0, 0, 0, 0, 0, 0, 0, 3858, 0, - 119573, 0, 0, 0, 0, 0, 0, 101014, 369, 74908, 41784, 0, 120994, 0, 71180, - 0, 0, 13210, 41782, 0, 0, 101388, 41781, 10486, 74058, 43002, 0, 0, 0, 0, + 0, 74546, 124123, 129178, 124125, 92224, 42460, 0, 0, 0, 0, 120941, + 42421, 0, 41723, 110606, 64358, 11460, 983511, 0, 64718, 120838, 66869, + 0, 42348, 0, 6752, 452, 42500, 0, 128258, 0, 42308, 0, 0, 0, 12932, 0, + 69968, 42950, 66827, 917582, 0, 0, 8302, 0, 66929, 0, 0, 7250, 13214, + 10041, 8105, 65568, 127780, 69969, 127759, 0, 0, 121467, 0, 121466, + 41384, 0, 69878, 0, 5538, 9987, 111298, 118932, 129307, 0, 552, 0, 7357, + 10785, 66995, 0, 4557, 0, 0, 10171, 68320, 0, 5540, 0, 0, 281, 0, 0, + 42622, 0, 5536, 0, 0, 1388, 0, 0, 10504, 0, 0, 11531, 74324, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3663, 0, 121081, 70335, 74859, 0, 5334, 0, 110738, + 72319, 0, 11305, 66997, 68456, 0, 66611, 0, 19907, 64363, 3478, 7583, + 7679, 74154, 0, 0, 1158, 0, 983890, 73748, 0, 0, 1915, 4846, 0, 120132, + 118984, 120134, 120129, 120128, 805, 120130, 64438, 120124, 8760, 120126, + 72137, 120120, 120123, 94003, 0, 0, 0, 0, 0, 12225, 0, 0, 0, 70173, + 75045, 0, 129515, 8083, 0, 0, 0, 111094, 92626, 0, 0, 0, 0, 0, 0, 110837, + 0, 67699, 560, 5643, 0, 0, 0, 0, 0, 0, 0, 120144, 0, 120661, 78304, 1597, + 120143, 120142, 206, 70126, 120139, 120138, 8168, 0, 73086, 0, 0, 0, + 118650, 125036, 0, 0, 3546, 42573, 66811, 67000, 0, 128397, 8400, 0, 0, + 0, 0, 0, 7903, 9287, 72791, 0, 0, 0, 0, 72134, 66603, 1695, 917861, + 124150, 0, 111101, 0, 0, 0, 0, 0, 0, 0, 111099, 0, 111098, 4754, 0, + 69222, 128229, 0, 0, 7354, 7408, 0, 0, 121181, 0, 0, 0, 12739, 0, 1278, + 4187, 0, 42119, 42120, 0, 121158, 0, 12467, 0, 68902, 0, 12463, 0, 0, + 118827, 0, 9664, 70834, 74475, 0, 0, 0, 0, 0, 3661, 0, 0, 9022, 127955, + 0, 101460, 126257, 0, 6118, 222, 126250, 3884, 0, 74151, 0, 6502, 0, + 11085, 121261, 0, 0, 0, 0, 0, 0, 0, 0, 12461, 0, 0, 0, 94059, 11254, + 10860, 64880, 0, 64685, 0, 0, 94087, 7776, 11219, 0, 0, 121339, 69730, + 801, 43165, 0, 78212, 0, 0, 13277, 0, 12951, 0, 9906, 5486, 2334, 128672, + 67680, 5483, 73732, 120884, 119128, 2256, 0, 127876, 2539, 0, 78507, + 5485, 69826, 42697, 0, 0, 113689, 4502, 68057, 253, 73672, 0, 0, 9203, 0, + 0, 0, 0, 0, 121242, 11127, 0, 0, 0, 13257, 0, 0, 0, 69645, 0, 0, 0, + 70431, 0, 5693, 64470, 0, 66610, 67678, 0, 983678, 0, 0, 0, 0, 0, 0, 0, + 94078, 0, 0, 66608, 3111, 0, 8804, 66607, 0, 0, 0, 66606, 0, 0, 0, 1436, + 0, 55226, 0, 111287, 7393, 41592, 0, 0, 1598, 78101, 0, 0, 65193, 4423, + 0, 113692, 10515, 41589, 0, 0, 0, 101485, 1430, 101486, 0, 120606, 0, + 66223, 7619, 3255, 128280, 74032, 11549, 10735, 93038, 100741, 6801, + 100743, 100746, 2148, 100748, 100747, 100750, 100749, 0, 121229, 101479, + 69243, 41724, 67716, 69669, 41690, 111269, 983666, 8380, 100355, 983849, + 0, 101480, 0, 0, 0, 0, 6333, 111264, 42315, 0, 129502, 111265, 0, 0, + 5339, 74323, 0, 13004, 0, 0, 0, 0, 0, 0, 5684, 0, 0, 0, 5689, 0, 0, + 68464, 12633, 12870, 0, 65183, 5688, 0, 0, 6310, 5686, 0, 0, 0, 120647, + 70046, 50, 94095, 9871, 0, 0, 121446, 0, 0, 0, 66905, 0, 4448, 0, 121406, + 113734, 72125, 1321, 0, 10640, 0, 0, 101497, 0, 0, 73542, 0, 0, 0, 0, 0, + 12501, 0, 0, 0, 0, 8812, 0, 69986, 8673, 0, 129024, 0, 0, 2105, 72101, + 72712, 0, 129929, 0, 0, 0, 4636, 55262, 77745, 4515, 2382, 0, 0, 7313, + 101477, 0, 0, 194626, 0, 0, 0, 0, 0, 0, 0, 10197, 194719, 0, 0, 0, + 194718, 0, 0, 0, 64189, 0, 1873, 0, 0, 0, 0, 0, 983682, 0, 0, 101499, + 72282, 126991, 71113, 0, 0, 129340, 9489, 0, 70843, 0, 0, 0, 0, 128030, + 13295, 43191, 0, 0, 1154, 0, 1205, 0, 0, 0, 12958, 0, 0, 0, 66968, 0, + 10592, 0, 495, 0, 41712, 7983, 0, 0, 0, 6347, 69465, 7654, 41710, 4196, + 0, 0, 41709, 73772, 70832, 0, 9465, 983783, 0, 0, 917612, 0, 72374, + 41714, 0, 0, 0, 6343, 72376, 0, 43996, 0, 8044, 66979, 0, 41789, 0, + 10809, 71953, 0, 0, 0, 8146, 11025, 0, 120513, 642, 0, 0, 0, 12875, 0, 0, + 13229, 71950, 41788, 0, 92835, 0, 41791, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8428, 6569, 92851, 0, 0, 0, 10167, 0, 68248, 8049, 0, 0, 0, 0, 128882, + 4761, 0, 4766, 64623, 0, 121180, 194653, 118876, 0, 6912, 9232, 7033, 0, + 0, 41545, 0, 71970, 72160, 72107, 0, 0, 0, 3484, 0, 0, 0, 8503, 41539, + 41527, 0, 0, 983842, 0, 0, 66983, 41537, 0, 41541, 8282, 11817, 129965, + 128219, 0, 0, 126132, 0, 0, 70115, 66609, 111235, 65921, 0, 0, 194664, 0, + 129326, 77970, 42246, 75030, 120605, 0, 65926, 7744, 68859, 94056, 74277, + 126108, 0, 6966, 194633, 8136, 0, 0, 0, 0, 0, 4762, 0, 0, 0, 4765, 69443, + 983585, 66970, 4760, 0, 0, 10871, 43199, 194645, 0, 93955, 0, 0, 11546, + 0, 337, 0, 0, 0, 12279, 7768, 0, 128352, 0, 69812, 10143, 7883, 121444, + 7880, 64618, 13012, 5704, 13010, 0, 0, 119531, 0, 0, 0, 0, 66654, 0, 0, + 0, 13008, 0, 4385, 0, 13011, 0, 92569, 66972, 13009, 74771, 70159, 0, 0, + 41793, 64450, 74221, 120996, 41792, 111242, 94054, 126094, 0, 111244, + 5709, 120689, 71076, 0, 0, 0, 0, 0, 5708, 0, 0, 0, 5706, 66362, 5705, + 8791, 41797, 0, 10237, 66436, 0, 66974, 0, 0, 128083, 13170, 0, 127075, + 0, 0, 41377, 0, 0, 10058, 120735, 101431, 0, 0, 0, 0, 0, 0, 129641, + 119525, 0, 0, 72350, 0, 983584, 2144, 0, 120765, 0, 0, 1754, 92226, + 13246, 864, 0, 118926, 8972, 0, 7849, 0, 0, 13240, 0, 5192, 0, 0, 10948, + 0, 13199, 0, 1236, 13208, 13261, 13189, 13188, 93993, 0, 7440, 66976, 0, + 0, 1844, 125229, 0, 13178, 0, 0, 0, 125230, 0, 0, 13260, 4550, 121249, + 125227, 0, 71071, 0, 0, 68523, 0, 0, 11354, 94071, 0, 42795, 129317, 0, + 0, 0, 125237, 0, 13194, 13274, 0, 0, 129533, 65586, 68311, 0, 119193, + 4601, 194661, 101454, 194658, 0, 194659, 0, 121422, 128790, 194657, + 41717, 67402, 101444, 121129, 41716, 127376, 7910, 0, 0, 754, 41944, 0, + 8183, 120741, 2037, 101440, 0, 101441, 125, 0, 0, 0, 983125, 101442, + 41719, 0, 7990, 12637, 13258, 9536, 71056, 0, 4427, 0, 71200, 0, 12217, + 0, 41532, 129315, 0, 0, 0, 0, 111063, 83349, 0, 0, 120622, 0, 0, 0, 0, + 43632, 0, 0, 8140, 0, 6260, 0, 0, 66765, 129657, 0, 3898, 0, 0, 13200, 0, + 0, 66582, 0, 0, 0, 0, 1068, 71178, 13259, 12945, 0, 42203, 0, 3124, + 69411, 0, 4386, 12224, 6973, 129563, 0, 0, 119535, 0, 121312, 0, 12232, + 0, 0, 5681, 64578, 75023, 72016, 13209, 0, 0, 0, 0, 0, 11053, 0, 74902, + 128107, 128942, 7588, 0, 1693, 74942, 43204, 65831, 124120, 0, 0, 68803, + 111216, 111223, 0, 0, 65685, 9523, 2243, 0, 0, 0, 0, 0, 0, 0, 0, 13191, + 0, 3500, 3139, 100643, 3170, 100645, 100644, 66934, 100646, 13006, 64433, + 0, 100650, 941, 0, 0, 120967, 3727, 0, 0, 0, 72378, 0, 0, 118611, 94039, + 129299, 92455, 0, 0, 64444, 0, 0, 43603, 94075, 65397, 288, 0, 0, 0, + 10025, 73692, 0, 0, 68182, 0, 0, 0, 92438, 65395, 0, 0, 0, 65393, 83078, + 121111, 0, 122666, 0, 0, 0, 65394, 11548, 72305, 0, 65396, 0, 0, 13256, + 1282, 0, 0, 0, 111085, 0, 0, 0, 111087, 72115, 0, 0, 0, 0, 0, 3304, 0, 0, + 0, 126595, 72437, 68353, 0, 0, 42113, 0, 0, 0, 0, 0, 43094, 0, 0, 94037, + 68317, 9035, 0, 0, 0, 0, 0, 70822, 128467, 164, 68309, 94067, 94000, + 100631, 100634, 100633, 100636, 100635, 100638, 100637, 68808, 100639, + 110665, 73893, 11099, 110664, 13175, 13207, 0, 127552, 0, 74643, 5929, 0, + 0, 119502, 983654, 11306, 0, 119059, 3180, 125102, 0, 0, 0, 13062, 0, + 129551, 128707, 0, 0, 74428, 0, 128000, 0, 11251, 70204, 0, 10045, 0, + 13275, 0, 11057, 0, 13276, 125133, 41525, 983084, 128015, 11444, 0, + 129158, 0, 122642, 41523, 127765, 0, 0, 0, 0, 0, 0, 0, 3858, 0, 119573, + 0, 0, 0, 0, 0, 0, 101014, 369, 74908, 41784, 0, 120994, 0, 71180, 0, 0, + 13210, 41782, 0, 73536, 101388, 41781, 10486, 74058, 43002, 0, 0, 0, 0, 0, 3741, 0, 0, 0, 118540, 41222, 0, 128317, 3982, 0, 4388, 126105, 746, - 0, 0, 0, 13131, 0, 0, 0, 0, 0, 10434, 8794, 0, 0, 0, 0, 0, 0, 11700, + 0, 0, 0, 13131, 0, 0, 0, 0, 0, 10434, 8794, 122963, 0, 0, 0, 0, 0, 11700, 4374, 129413, 0, 0, 0, 0, 0, 917597, 0, 69814, 0, 6735, 73979, 13174, 73968, 13225, 0, 69808, 0, 0, 2365, 7841, 71476, 0, 120934, 66510, 128099, 0, 0, 0, 41785, 41171, 0, 13173, 4372, 6854, 0, 0, 0, 128939, 0, @@ -28878,78 +29073,79 @@ static const unsigned int code_hash[] = { 124949, 0, 0, 0, 41533, 66337, 0, 92184, 0, 126091, 0, 0, 73849, 0, 43638, 0, 101398, 6261, 0, 129568, 0, 1957, 0, 0, 0, 13292, 13206, 0, 0, 2925, 73809, 42576, 101395, 13212, 43238, 0, 13190, 13187, 0, 13198, 0, - 0, 5242, 0, 0, 128146, 0, 0, 6770, 43331, 127539, 0, 0, 71074, 126466, 0, - 41444, 0, 0, 64799, 5246, 119106, 13185, 9709, 0, 0, 92751, 0, 5238, 0, - 71085, 0, 5236, 40979, 0, 74201, 8286, 0, 3936, 92833, 11699, 0, 127249, - 13235, 69578, 41248, 127264, 13245, 13239, 0, 7969, 127266, 74832, - 127251, 0, 120509, 0, 983893, 734, 127270, 0, 127254, 70297, 127273, - 64921, 120969, 66631, 41771, 120490, 0, 983171, 41770, 1670, 42560, 0, - 121349, 129634, 0, 41163, 0, 11136, 0, 11506, 0, 42841, 13267, 126109, 0, - 41775, 0, 7130, 41773, 0, 0, 0, 0, 0, 0, 0, 42673, 65572, 0, 65250, - 13265, 13264, 64518, 66798, 6100, 0, 0, 6740, 71080, 67814, 12967, 70028, - 68101, 4583, 0, 0, 68097, 0, 0, 0, 0, 119211, 0, 0, 42653, 83181, 68102, - 0, 7814, 71045, 0, 73702, 0, 0, 0, 9756, 6985, 0, 0, 74219, 0, 0, 129069, - 124987, 5674, 0, 66421, 0, 5677, 5588, 0, 0, 0, 0, 5673, 0, 5676, 0, - 94048, 0, 5672, 6476, 0, 0, 110951, 42511, 1727, 0, 0, 0, 0, 0, 0, 0, - 3550, 736, 0, 4505, 5873, 74090, 5826, 55232, 5813, 0, 120712, 5841, - 5837, 55234, 0, 3105, 64370, 5838, 5796, 0, 119592, 5793, 0, 5866, 5797, - 41011, 5865, 0, 0, 71899, 0, 71235, 5806, 0, 0, 9037, 5671, 0, 0, 0, 0, - 71266, 126616, 7296, 0, 0, 0, 0, 6980, 0, 72108, 0, 0, 0, 0, 0, 64613, - 983910, 0, 129969, 0, 78277, 7114, 0, 72100, 43190, 93842, 128666, 72096, - 42611, 42563, 0, 125080, 0, 6792, 43201, 72098, 0, 128719, 0, 72106, 0, - 0, 5644, 0, 66627, 69727, 0, 0, 0, 65116, 0, 0, 0, 0, 66410, 94104, - 41013, 0, 0, 0, 2869, 0, 41015, 0, 2785, 120616, 0, 73907, 194689, 0, 0, - 0, 194688, 4759, 0, 0, 43192, 129913, 1170, 43365, 69810, 73908, 0, 902, - 0, 0, 0, 0, 8122, 66420, 129642, 0, 3861, 0, 11028, 0, 73820, 5714, 0, 0, - 0, 807, 127001, 78474, 0, 976, 113782, 0, 0, 0, 0, 0, 128657, 118801, - 71043, 0, 127017, 0, 0, 5582, 0, 0, 5798, 0, 0, 0, 128521, 0, 0, 68058, - 120553, 983183, 0, 0, 74933, 74283, 0, 0, 194698, 66044, 0, 0, 0, 0, 0, - 10094, 0, 0, 10857, 69225, 0, 0, 93, 0, 10954, 0, 0, 0, 8171, 0, 0, - 82996, 0, 0, 0, 119001, 92634, 0, 0, 5187, 120711, 71086, 118704, 0, 0, - 0, 5232, 0, 41009, 0, 41005, 0, 43205, 0, 0, 0, 194708, 0, 71054, 10028, - 66478, 7076, 13182, 100385, 0, 0, 0, 78782, 7972, 78786, 0, 0, 0, 78789, - 11309, 3806, 71252, 0, 0, 0, 78819, 0, 125218, 0, 127532, 0, 0, 0, 78817, - 0, 64366, 65156, 8814, 0, 0, 0, 0, 12836, 42725, 120079, 0, 0, 0, 0, - 69258, 13255, 0, 0, 7464, 0, 93831, 0, 0, 0, 0, 13213, 118557, 0, 64516, - 0, 0, 0, 41007, 983929, 0, 40995, 12209, 983933, 119136, 123635, 0, 0, 0, - 0, 0, 69283, 43558, 5522, 0, 71061, 0, 74105, 3633, 983931, 119364, - 41234, 41231, 0, 9771, 983936, 13251, 0, 0, 6262, 2784, 0, 71078, 8126, - 66483, 0, 0, 441, 0, 0, 0, 41002, 40999, 0, 129394, 7108, 0, 10890, 0, - 74445, 8324, 0, 0, 74817, 2813, 119056, 74853, 983690, 0, 0, 0, 1193, - 10462, 65197, 13253, 13252, 7829, 120992, 130032, 0, 0, 0, 77911, 0, - 77907, 0, 10386, 0, 41042, 0, 65944, 65683, 10338, 66469, 0, 0, 0, 0, 0, - 41966, 0, 0, 0, 68915, 0, 0, 911, 983889, 128932, 40963, 0, 65159, 0, 0, - 0, 5520, 0, 0, 0, 0, 0, 0, 0, 42965, 0, 0, 0, 0, 0, 983892, 0, 0, 66839, - 0, 0, 0, 68647, 0, 5857, 68135, 92727, 119120, 983694, 13171, 0, 0, 0, - 120338, 0, 0, 0, 13250, 69663, 0, 92201, 66397, 0, 0, 0, 8761, 12942, - 5748, 92713, 92414, 0, 83174, 8796, 0, 0, 0, 43633, 0, 72805, 71073, 0, - 0, 0, 0, 0, 12843, 4520, 0, 0, 73004, 983691, 0, 0, 194935, 110754, - 64345, 0, 983677, 3457, 0, 0, 0, 110750, 110758, 110751, 0, 0, 10427, 0, - 73859, 0, 9755, 1110, 65239, 0, 0, 0, 0, 0, 0, 0, 194936, 0, 983821, 0, - 70437, 3620, 0, 0, 72855, 0, 0, 0, 74250, 0, 0, 11980, 0, 66482, 67823, - 0, 128345, 110768, 0, 0, 0, 0, 12891, 983786, 983667, 0, 2016, 0, 65668, - 92311, 67696, 10366, 70117, 9155, 120652, 9786, 65082, 0, 8579, 0, 0, 0, - 0, 4508, 64883, 0, 92522, 129847, 0, 64592, 74276, 67688, 0, 69270, 0, + 0, 5242, 0, 0, 128146, 0, 73535, 6770, 43331, 127539, 0, 0, 71074, + 126466, 73524, 41444, 0, 0, 64799, 5246, 119106, 13185, 9709, 0, 0, + 92751, 0, 5238, 0, 71085, 0, 5236, 40979, 0, 74201, 8286, 0, 3936, 92833, + 11699, 0, 127249, 13235, 69578, 41248, 127264, 13245, 13239, 0, 7969, + 127266, 74832, 127251, 0, 120509, 0, 983893, 734, 127270, 0, 127254, + 70297, 127273, 64921, 120969, 66631, 41771, 120490, 0, 983172, 41770, + 1670, 42560, 0, 121349, 129634, 0, 41163, 0, 11136, 0, 11506, 0, 42841, + 13267, 126109, 0, 41775, 0, 7130, 41773, 0, 0, 0, 0, 0, 0, 0, 42673, + 65572, 0, 65250, 13265, 13264, 64518, 66798, 6100, 0, 0, 6740, 71080, + 67814, 12967, 70028, 68101, 4583, 0, 0, 68097, 0, 0, 0, 0, 119211, 0, 0, + 42653, 83181, 68102, 0, 7814, 71045, 0, 73702, 0, 0, 0, 9756, 6985, 0, 0, + 74219, 0, 0, 129069, 124987, 5674, 0, 66421, 0, 5677, 5588, 0, 0, 0, 0, + 5673, 73488, 5676, 0, 94048, 0, 5672, 6476, 0, 128798, 110951, 42511, + 1727, 0, 0, 0, 0, 0, 0, 0, 3550, 736, 0, 4505, 5873, 74090, 5826, 55232, + 5813, 0, 120712, 5841, 5837, 55234, 0, 3105, 64370, 5838, 5796, 0, + 119592, 5793, 0, 5866, 5797, 41011, 5865, 0, 0, 71899, 0, 71235, 5806, + 73528, 0, 9037, 5671, 0, 0, 0, 0, 71266, 126616, 7296, 0, 0, 0, 0, 6980, + 0, 72108, 0, 0, 0, 0, 0, 64613, 983910, 0, 129969, 0, 78277, 7114, 0, + 72100, 43190, 93842, 128666, 72096, 42611, 42563, 0, 125080, 0, 6792, + 43201, 72098, 0, 128719, 0, 72106, 73534, 0, 5644, 0, 66627, 69727, 0, 0, + 0, 65116, 0, 0, 73526, 0, 66410, 94104, 41013, 0, 0, 0, 2869, 0, 41015, + 0, 2785, 120616, 0, 73907, 194689, 0, 0, 0, 194688, 4759, 0, 0, 43192, + 129913, 1170, 43365, 69810, 73908, 0, 902, 0, 0, 0, 0, 8122, 66420, + 129642, 0, 3861, 0, 11028, 0, 73820, 5714, 0, 0, 0, 807, 127001, 78474, + 0, 976, 113782, 0, 0, 0, 0, 0, 128657, 118801, 71043, 0, 127017, 0, 0, + 5582, 0, 0, 5798, 0, 0, 0, 128521, 0, 0, 68058, 120553, 983184, 0, 0, + 74933, 74283, 0, 0, 194698, 66044, 0, 0, 0, 0, 0, 10094, 0, 0, 10857, + 69225, 0, 0, 93, 0, 10954, 0, 0, 0, 8171, 0, 0, 82996, 0, 0, 0, 73527, + 92634, 0, 0, 5187, 120711, 71086, 118704, 0, 0, 0, 5232, 0, 41009, 0, + 41005, 0, 43205, 0, 0, 0, 194708, 0, 71054, 10028, 66478, 7076, 13182, + 100385, 0, 0, 0, 78782, 7972, 78786, 0, 0, 0, 78789, 11309, 3806, 71252, + 0, 0, 0, 78819, 0, 125218, 0, 127532, 0, 0, 0, 78817, 0, 64366, 65156, + 8814, 0, 0, 0, 0, 12836, 42725, 120079, 0, 0, 0, 0, 69258, 13255, 0, 0, + 7464, 0, 93831, 0, 0, 0, 0, 13213, 118557, 0, 64516, 0, 0, 0, 41007, + 983929, 0, 40995, 12209, 983933, 119136, 123635, 0, 0, 0, 0, 0, 69283, + 43558, 5522, 0, 71061, 0, 74105, 3633, 983931, 119364, 41234, 41231, 0, + 9771, 983936, 13251, 0, 0, 6262, 2784, 0, 71078, 8126, 66483, 0, 0, 441, + 0, 0, 0, 41002, 40999, 0, 129394, 7108, 0, 10890, 0, 74445, 8324, 0, 0, + 74817, 2813, 119056, 74853, 983690, 0, 0, 0, 1193, 10462, 65197, 13253, + 13252, 7829, 120992, 130032, 0, 0, 0, 77911, 0, 77907, 0, 10386, 0, + 41042, 0, 65944, 65683, 10338, 66469, 0, 0, 0, 0, 0, 41966, 0, 0, 0, + 68915, 0, 0, 911, 983889, 128932, 40963, 0, 65159, 0, 122950, 0, 5520, 0, + 0, 0, 0, 0, 0, 0, 42965, 0, 0, 0, 0, 0, 983892, 0, 0, 66839, 0, 0, 0, + 68647, 0, 5857, 68135, 92727, 119120, 983694, 13171, 0, 0, 0, 120338, 0, + 0, 0, 13250, 69663, 0, 92201, 66397, 0, 0, 0, 8761, 12942, 5748, 92713, + 92414, 0, 83174, 8796, 0, 0, 0, 43633, 0, 72805, 71073, 0, 0, 0, 0, 0, + 12843, 4520, 0, 0, 73004, 983691, 0, 0, 194935, 110754, 64345, 0, 983677, + 3457, 0, 0, 0, 110750, 110758, 110751, 0, 0, 10427, 0, 73859, 0, 9755, + 1110, 65239, 0, 0, 0, 0, 0, 0, 0, 194936, 0, 983821, 0, 70437, 3620, 0, + 0, 72855, 0, 0, 0, 74250, 0, 0, 11980, 0, 66482, 67823, 0, 128345, + 110768, 0, 0, 0, 0, 12891, 983786, 983667, 0, 2016, 0, 65668, 92311, + 67696, 10366, 70117, 9155, 120652, 9786, 65082, 0, 8579, 0, 0, 0, 0, + 4508, 64883, 0, 92522, 129847, 0, 64592, 74276, 67688, 0, 69270, 0, 69456, 0, 113821, 0, 12147, 9024, 66378, 66472, 0, 0, 0, 0, 0, 71935, 0, 0, 113697, 0, 0, 69285, 0, 74275, 0, 122896, 127941, 41214, 0, 67476, 0, 0, 0, 7773, 0, 0, 9963, 68649, 0, 73734, 0, 0, 0, 0, 6594, 983771, 0, 0, 3624, 70342, 0, 64655, 121481, 0, 0, 0, 0, 0, 65932, 0, 983809, 6803, 120968, 7738, 0, 0, 120628, 129721, 66614, 122921, 0, 43810, 7029, 0, 41292, 118898, 0, 43115, 9517, 11518, 0, 0, 0, 0, 64423, 0, 0, 0, 12503, - 9591, 4516, 0, 118845, 0, 0, 129479, 43650, 983192, 69250, 0, 0, 68079, + 9591, 4516, 0, 118845, 0, 0, 129479, 43650, 983193, 69250, 0, 0, 68079, 0, 11397, 2884, 0, 0, 12678, 0, 0, 41014, 73730, 917539, 4270, 92254, - 127836, 68205, 6633, 118947, 0, 5230, 101055, 0, 0, 983231, 121392, 0, + 127836, 68205, 6633, 118947, 0, 5230, 101055, 0, 0, 983234, 121392, 0, 92985, 0, 0, 0, 0, 415, 0, 0, 0, 0, 5183, 1877, 0, 0, 0, 0, 0, 4472, 0, 0, 0, 128285, 110682, 78230, 4756, 0, 7081, 0, 0, 0, 78606, 0, 42922, 42103, 8628, 74861, 0, 0, 0, 43059, 10539, 0, 0, 0, 0, 0, 0, 0, 0, 64873, - 11992, 129444, 0, 0, 11801, 3622, 0, 0, 983213, 0, 0, 11521, 0, 1966, + 11992, 129444, 0, 0, 11801, 3622, 0, 0, 983215, 0, 0, 11521, 0, 1966, 43628, 111048, 0, 0, 0, 0, 0, 0, 42098, 66671, 10694, 128520, 0, 0, 0, 0, 42100, 0, 111040, 0, 42097, 0, 0, 0, 0, 11302, 118640, 129145, 43395, 83259, 0, 0, 92351, 0, 0, 11299, 1561, 0, 92359, 92725, 69253, 0, 194733, - 0, 0, 0, 127893, 11280, 0, 0, 983802, 0, 0, 72760, 0, 12486, 65018, + 0, 194730, 0, 127893, 11280, 0, 0, 983802, 0, 0, 72760, 0, 12486, 65018, 66516, 5409, 0, 0, 194720, 5399, 9685, 0, 983713, 5401, 0, 0, 66832, 0, 0, 5405, 0, 0, 0, 0, 0, 2235, 0, 11330, 983711, 64690, 3254, 0, 129974, - 0, 0, 43678, 0, 0, 983145, 0, 6388, 3355, 0, 9867, 0, 55258, 5611, 0, + 0, 0, 43678, 0, 0, 983146, 0, 6388, 3355, 0, 9867, 0, 55258, 5611, 0, 128527, 0, 0, 129181, 0, 78228, 0, 0, 119119, 0, 0, 194959, 0, 0, 1379, 246, 0, 0, 64736, 0, 0, 0, 121227, 0, 0, 0, 0, 0, 0, 11855, 0, 0, 0, 71961, 10656, 0, 65214, 119242, 0, 0, 13163, 0, 120831, 0, 0, 101484, 0, @@ -28965,11 +29161,11 @@ static const unsigned int code_hash[] = { 119207, 0, 0, 9550, 100621, 0, 100623, 100622, 78050, 100624, 65753, 100626, 65756, 72731, 0, 100630, 0, 0, 0, 0, 9657, 9019, 121154, 0, 0, 5390, 0, 0, 194965, 72144, 69937, 69286, 6328, 0, 0, 0, 0, 0, 983047, 0, - 5235, 803, 69289, 0, 0, 127979, 43838, 0, 119562, 43544, 0, 0, 0, 0, 0, - 70426, 9107, 5191, 119113, 0, 0, 0, 121099, 0, 0, 0, 0, 0, 128150, - 983067, 0, 7289, 74055, 0, 0, 0, 0, 0, 0, 0, 1784, 124947, 0, 0, 0, 0, - 64868, 0, 13158, 0, 7211, 0, 9371, 129378, 0, 0, 1625, 7664, 0, 0, 0, 0, - 0, 0, 69273, 0, 0, 0, 0, 4482, 118886, 0, 0, 0, 0, 0, 0, 0, 100612, + 5235, 803, 69289, 0, 0, 127979, 43838, 0, 119562, 43544, 0, 0, 0, 0, + 194960, 70426, 9107, 5191, 119113, 0, 0, 0, 121099, 0, 0, 0, 0, 0, + 128150, 983067, 0, 7289, 74055, 0, 0, 0, 0, 0, 0, 0, 1784, 124947, 0, 0, + 0, 0, 64868, 0, 13158, 0, 7211, 0, 9371, 129378, 0, 0, 1625, 7664, 0, 0, + 0, 0, 0, 0, 69273, 0, 0, 0, 0, 4482, 118886, 0, 0, 0, 0, 0, 0, 0, 100612, 66849, 100614, 100613, 100616, 444, 100618, 100617, 100620, 100619, 0, 129401, 0, 11349, 40991, 0, 0, 129324, 0, 0, 1197, 0, 40993, 0, 0, 0, 40990, 43765, 0, 3492, 0, 127942, 0, 0, 100592, 100591, 100594, 19948, @@ -28979,13 +29175,13 @@ static const unsigned int code_hash[] = { 0, 130037, 0, 118820, 0, 0, 0, 0, 0, 100581, 0, 100583, 100582, 100585, 100584, 100587, 100586, 100589, 7576, 11995, 100590, 43260, 0, 0, 64830, 0, 125046, 101526, 0, 43979, 8870, 0, 0, 42357, 0, 0, 12822, 0, 0, 0, - 118944, 0, 0, 42637, 0, 0, 70725, 0, 129934, 0, 71344, 0, 0, 0, 194745, - 7170, 9596, 8277, 194743, 43629, 110610, 0, 0, 983571, 123545, 0, 66699, - 42952, 0, 0, 0, 43234, 66008, 12627, 0, 0, 0, 43619, 43303, 11300, 0, 0, - 8745, 0, 7558, 71342, 100570, 0, 0, 127881, 3461, 121258, 129471, 69264, - 0, 0, 0, 73877, 74335, 124982, 0, 0, 0, 64620, 74762, 12069, 10838, - 92548, 43616, 0, 10061, 0, 64840, 10508, 209, 0, 43193, 120581, 0, 0, - 128049, 0, 10899, 69855, 100571, 100574, 100573, 100576, 993, 100578, + 118944, 0, 0, 42637, 0, 0, 70725, 0, 129934, 0, 71344, 0, 0, 72449, + 194745, 7170, 9596, 8277, 194743, 43629, 110610, 0, 0, 983571, 123545, 0, + 66699, 42952, 0, 0, 0, 43234, 66008, 12627, 0, 0, 0, 43619, 43303, 11300, + 0, 0, 8745, 0, 7558, 71342, 100570, 0, 0, 127881, 3461, 121258, 129471, + 69264, 0, 0, 0, 73877, 74335, 124982, 0, 0, 0, 64620, 74762, 12069, + 10838, 92548, 43616, 0, 10061, 0, 64840, 10508, 209, 0, 43193, 120581, 0, + 0, 128049, 0, 10899, 69855, 100571, 100574, 100573, 100576, 993, 100578, 100577, 100580, 100579, 100560, 100559, 7232, 0, 0, 0, 0, 0, 0, 10489, 42166, 0, 128588, 0, 0, 4224, 7671, 41518, 121311, 0, 0, 0, 0, 64820, 92538, 12966, 100554, 100553, 100556, 100555, 100558, 100557, 4263, 8793, @@ -28994,25 +29190,25 @@ static const unsigned int code_hash[] = { 0, 2147, 0, 0, 66629, 0, 0, 1255, 4149, 0, 0, 66633, 0, 129391, 92352, 0, 65101, 0, 0, 0, 0, 5835, 128797, 66625, 10842, 0, 42123, 0, 0, 66634, 1094, 66636, 0, 0, 0, 0, 0, 9972, 73865, 129289, 6114, 0, 0, 0, 0, 93960, - 0, 0, 0, 0, 12070, 0, 881, 7857, 0, 65164, 0, 0, 118703, 0, 0, 64404, - 64321, 0, 125187, 0, 0, 11245, 129395, 69506, 71859, 0, 0, 0, 1287, - 121509, 0, 0, 0, 125264, 74152, 120504, 64545, 0, 69668, 8985, 0, 0, 0, - 0, 0, 0, 3652, 0, 0, 0, 0, 0, 279, 0, 0, 0, 0, 1489, 125189, 0, 0, 3899, - 0, 42124, 43828, 42122, 0, 0, 0, 11985, 73755, 78600, 0, 0, 10988, 0, 0, - 42138, 78610, 0, 65768, 78608, 78604, 78605, 6285, 78603, 78612, 78613, - 74339, 65767, 8685, 0, 0, 0, 78622, 78623, 68475, 11470, 64538, 78618, - 78615, 78616, 0, 0, 0, 101534, 2527, 0, 128209, 2799, 0, 0, 0, 9933, 0, - 0, 767, 5524, 7028, 0, 101520, 0, 0, 0, 78633, 67481, 0, 94011, 0, 6971, - 0, 70731, 0, 0, 118979, 126075, 2434, 94018, 0, 120579, 0, 4631, 0, 0, - 6407, 0, 19931, 0, 0, 124905, 0, 3192, 0, 8414, 0, 0, 0, 124902, 0, 9164, - 66612, 93959, 8228, 124897, 0, 0, 0, 78624, 0, 0, 9993, 0, 0, 129350, - 78631, 78632, 78629, 78630, 78627, 78628, 78625, 2399, 0, 92399, 71202, - 41208, 0, 0, 8178, 2149, 3367, 0, 78640, 78641, 78636, 78638, 78634, - 6337, 0, 92342, 0, 0, 11068, 0, 9331, 0, 74798, 9181, 0, 0, 8017, 0, 0, - 0, 0, 0, 0, 0, 12126, 129184, 129306, 0, 0, 69650, 0, 0, 0, 43436, + 0, 0, 0, 0, 12070, 0, 881, 7857, 0, 65164, 0, 0, 118703, 124151, 0, + 64404, 64321, 0, 125187, 0, 0, 11245, 129395, 69506, 71859, 128886, 0, 0, + 1287, 121509, 0, 0, 0, 125264, 74152, 120504, 64545, 0, 69668, 8985, 0, + 0, 0, 0, 0, 0, 3652, 0, 0, 0, 0, 0, 279, 0, 0, 0, 0, 1489, 125189, 0, 0, + 3899, 0, 42124, 43828, 42122, 0, 0, 0, 11985, 73755, 78600, 0, 0, 10988, + 0, 0, 42138, 78610, 0, 65768, 78608, 78604, 78605, 6285, 78603, 78612, + 78613, 74339, 65767, 8685, 0, 0, 0, 78622, 78623, 68475, 11470, 64538, + 78618, 78615, 78616, 0, 0, 0, 101534, 2527, 0, 128209, 2799, 0, 0, 0, + 9933, 0, 0, 767, 5524, 7028, 0, 101520, 0, 0, 0, 78633, 67481, 0, 94011, + 0, 6971, 0, 70731, 0, 0, 118979, 126075, 2434, 94018, 0, 120579, 0, 4631, + 0, 0, 6407, 0, 19931, 0, 0, 124905, 0, 3192, 0, 8414, 0, 0, 0, 124902, 0, + 9164, 66612, 93959, 8228, 124897, 0, 0, 0, 78624, 0, 0, 9993, 0, 0, + 129350, 78631, 78632, 78629, 78630, 78627, 78628, 78625, 2399, 0, 92399, + 71202, 41208, 0, 0, 8178, 2149, 3367, 0, 78640, 78641, 78636, 78638, + 78634, 6337, 0, 78909, 0, 0, 11068, 0, 9331, 0, 74798, 9181, 0, 0, 8017, + 0, 0, 0, 0, 0, 0, 0, 12126, 119494, 129306, 0, 0, 69650, 0, 0, 0, 43436, 983744, 0, 0, 0, 0, 66845, 69249, 0, 0, 5398, 0, 127386, 93953, 0, 0, 0, 0, 0, 9476, 68899, 0, 12763, 126603, 74788, 0, 42114, 11181, 92502, 0, 0, - 0, 3469, 42107, 42116, 0, 0, 0, 0, 9853, 69648, 9040, 101518, 64665, + 0, 3469, 42107, 42116, 0, 0, 119493, 0, 9853, 69648, 9040, 101518, 64665, 119557, 0, 0, 0, 69638, 12602, 983068, 3852, 0, 67872, 12231, 11317, 0, 119812, 0, 11410, 10964, 12274, 122890, 100524, 0, 119810, 9865, 195019, 0, 0, 0, 0, 12276, 0, 124919, 0, 0, 119613, 0, 111214, 10467, 0, 2443, @@ -29022,16 +29218,16 @@ static const unsigned int code_hash[] = { 120613, 67247, 1629, 124926, 796, 0, 0, 74123, 72334, 127587, 72336, 43388, 0, 43944, 72335, 478, 65151, 0, 128147, 0, 0, 0, 0, 0, 42933, 1206, 71209, 43837, 0, 3843, 12011, 0, 3361, 0, 8121, 10715, 7578, 0, 0, - 0, 10530, 12348, 8653, 0, 0, 0, 9551, 0, 0, 784, 0, 0, 0, 0, 0, 0, 43937, - 0, 0, 43938, 43935, 73765, 66230, 0, 0, 0, 43936, 0, 43932, 11102, 0, 0, - 42753, 67165, 0, 78324, 0, 0, 6975, 917928, 5415, 12176, 0, 0, 3462, - 43940, 42629, 78691, 128016, 43942, 0, 9759, 0, 0, 78320, 8114, 78321, - 78697, 78696, 78695, 8710, 118812, 118956, 0, 4051, 92657, 0, 71206, 0, - 0, 0, 128857, 0, 1619, 9703, 77986, 0, 42112, 0, 1875, 0, 42109, 0, 0, - 71189, 121160, 64907, 5396, 13144, 0, 0, 5575, 9675, 0, 5940, 226, 0, - 6336, 0, 0, 0, 5116, 64521, 0, 0, 0, 121390, 125048, 74138, 0, 74139, - 128447, 92249, 0, 0, 0, 0, 8935, 0, 0, 0, 0, 616, 78131, 65178, 4684, - 78701, 983899, 74631, 0, 0, 0, 74460, 42110, 0, 10870, 8557, 11054, + 0, 10530, 12348, 8653, 0, 73545, 0, 9551, 0, 0, 784, 0, 0, 0, 0, 0, 0, + 43937, 0, 0, 43938, 43935, 73765, 66230, 0, 0, 0, 43936, 0, 43932, 11102, + 0, 0, 42753, 67165, 0, 78324, 0, 0, 6975, 917928, 5415, 12176, 0, 0, + 3462, 43940, 42629, 78691, 128016, 43942, 0, 9759, 0, 0, 78320, 8114, + 78321, 78697, 78696, 78695, 8710, 118812, 118956, 0, 4051, 92657, 0, + 71206, 0, 0, 0, 128857, 0, 1619, 9703, 77986, 0, 42112, 0, 1875, 0, + 42109, 0, 0, 71189, 121160, 64907, 5396, 13144, 0, 0, 5575, 9675, 0, + 5940, 226, 0, 6336, 0, 0, 0, 5116, 64521, 0, 0, 0, 121390, 125048, 74138, + 0, 74139, 128447, 92249, 0, 0, 0, 0, 8935, 0, 0, 0, 0, 616, 78131, 65178, + 4684, 78701, 983899, 74631, 0, 0, 0, 74460, 42110, 0, 10870, 8557, 11054, 68664, 0, 0, 0, 122629, 0, 0, 0, 0, 65597, 0, 7651, 6846, 0, 0, 68868, 0, 0, 118966, 129302, 40997, 127218, 0, 0, 40998, 0, 74488, 71182, 9800, 0, 0, 0, 41000, 0, 5114, 55263, 3386, 70730, 42574, 0, 5115, 5394, 0, @@ -29041,55 +29237,55 @@ static const unsigned int code_hash[] = { 4514, 72149, 0, 0, 0, 65041, 10965, 120905, 0, 0, 12542, 0, 65341, 0, 65829, 0, 0, 10475, 0, 0, 0, 0, 11795, 0, 0, 2164, 127102, 127101, 74956, 7099, 11275, 67681, 127096, 0, 9336, 0, 42626, 43966, 7798, 64474, 64259, - 0, 5730, 119809, 43018, 983174, 93796, 0, 0, 0, 69401, 0, 0, 5127, 11285, + 0, 5730, 119809, 43018, 983175, 93796, 0, 0, 0, 69401, 0, 0, 5127, 11285, 0, 5495, 4273, 0, 74765, 10849, 6346, 5493, 6342, 68636, 74319, 5492, 0, 0, 169, 5497, 125053, 0, 0, 68198, 0, 0, 128417, 0, 0, 12738, 0, 983076, 5321, 0, 0, 0, 5323, 120732, 9773, 125209, 4683, 74318, 0, 68823, 0, 0, 0, 0, 129553, 0, 123562, 0, 0, 834, 0, 1803, 0, 5733, 0, 0, 71312, 5731, - 1381, 2891, 0, 0, 127212, 64525, 0, 2881, 92996, 93847, 9601, 2879, 0, 0, - 73129, 5729, 0, 0, 0, 64881, 127905, 9361, 0, 2887, 0, 3526, 6298, 0, - 121219, 0, 0, 0, 8572, 127863, 77896, 0, 71174, 0, 0, 71197, 0, 12096, 0, - 0, 0, 110745, 71176, 110746, 65279, 0, 121236, 5734, 0, 0, 0, 0, 0, + 1381, 2891, 128639, 0, 127212, 64525, 0, 2881, 92996, 93847, 9601, 2879, + 0, 0, 73129, 5729, 0, 0, 0, 64881, 127905, 9361, 0, 2887, 0, 3526, 6298, + 0, 121219, 0, 0, 0, 8572, 127863, 77896, 0, 71174, 0, 0, 71197, 0, 12096, + 0, 0, 0, 110745, 71176, 110746, 65279, 0, 121236, 5734, 0, 0, 0, 0, 0, 41641, 12717, 0, 12552, 983615, 66713, 0, 0, 41643, 110747, 0, 8713, 41640, 78657, 41645, 66712, 125196, 0, 66726, 66711, 0, 93994, 0, 3472, 64863, 0, 121424, 0, 0, 0, 125203, 67837, 0, 0, 0, 0, 0, 0, 121440, 0, 0, 129461, 119008, 92402, 65017, 0, 0, 66668, 0, 0, 0, 0, 0, 119822, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 121043, 66471, 12216, 0, 40988, 0, 0, 0, 0, 0, - 2396, 129078, 0, 0, 0, 64940, 0, 8321, 119823, 128165, 100409, 83299, - 996, 0, 0, 4249, 0, 83294, 92535, 8222, 0, 118875, 71213, 0, 0, 0, 0, - 8534, 72844, 40983, 0, 125195, 0, 12551, 73960, 125193, 74469, 12558, + 124148, 0, 0, 0, 0, 0, 0, 0, 0, 121043, 66471, 12216, 0, 40988, 0, 0, 0, + 0, 0, 2396, 129078, 0, 0, 0, 64940, 0, 8321, 119823, 128165, 100409, + 83299, 996, 0, 0, 4249, 0, 83294, 92535, 8222, 0, 118875, 71213, 0, 0, 0, + 0, 8534, 72844, 40983, 0, 125195, 0, 12551, 73960, 125193, 74469, 12558, 121039, 0, 10052, 40982, 129371, 0, 0, 0, 127403, 0, 917559, 0, 78364, 1563, 0, 0, 19911, 0, 0, 0, 71363, 0, 7797, 78708, 10006, 0, 3308, 119134, 74940, 0, 0, 78488, 0, 0, 0, 0, 0, 128462, 9200, 10046, 9612, 0, 8218, 66496, 0, 43742, 78489, 0, 0, 0, 0, 67826, 0, 70056, 508, 128585, 0, 126539, 0, 0, 0, 0, 0, 0, 0, 124950, 0, 194601, 0, 0, 0, 0, 6659, 0, 0, 0, 0, 0, 0, 41634, 0, 41639, 71169, 11941, 0, 0, 0, 42180, 68505, - 43753, 3249, 41637, 93982, 12328, 501, 93985, 10601, 0, 6503, 0, 92192, - 0, 71181, 0, 6505, 74010, 0, 13064, 126112, 121105, 6500, 5526, 0, + 43753, 3249, 41637, 93982, 12328, 501, 93985, 10601, 129783, 6503, 0, + 92192, 0, 71181, 0, 6505, 74010, 0, 13064, 126112, 121105, 6500, 5526, 0, 128949, 0, 0, 92376, 0, 9678, 120832, 0, 41706, 0, 0, 0, 8936, 92964, - 119123, 4208, 0, 0, 0, 67742, 0, 74379, 128605, 0, 0, 92422, 983109, 0, + 119123, 4208, 0, 0, 0, 67742, 0, 74379, 128605, 0, 0, 92422, 983110, 0, 66475, 0, 5027, 0, 0, 0, 5069, 0, 5028, 0, 0, 0, 5026, 0, 0, 6331, 0, 0, 0, 0, 41076, 0, 74790, 0, 0, 0, 0, 5029, 0, 5317, 3598, 0, 41070, 92166, 11185, 6663, 0, 6507, 0, 126079, 0, 1716, 983710, 0, 917824, 620, 41001, - 0, 917823, 43758, 0, 71116, 5024, 0, 41003, 0, 5025, 7297, 0, 75039, + 0, 917823, 43758, 0, 71116, 5024, 0, 41003, 0, 5025, 7297, 122988, 75039, 69745, 119328, 65557, 0, 0, 983599, 0, 0, 0, 0, 43947, 43946, 0, 0, - 128363, 6105, 0, 119325, 983227, 0, 68203, 43945, 66491, 43939, 0, 68144, + 128363, 6105, 0, 119325, 983230, 0, 68203, 43945, 66491, 43939, 0, 68144, 78718, 2301, 0, 0, 66490, 6979, 101561, 7721, 0, 0, 1592, 0, 0, 121096, - 41048, 129358, 829, 0, 92406, 0, 120247, 0, 41056, 0, 118665, 10953, + 41048, 129358, 829, 0, 92406, 0, 73541, 0, 41056, 0, 118665, 10953, 41066, 0, 917813, 482, 101554, 0, 0, 43606, 71185, 0, 917926, 0, 72262, 110863, 72421, 12050, 0, 5315, 917817, 0, 0, 42061, 917816, 0, 0, 68417, 917815, 0, 0, 42059, 0, 0, 120723, 42058, 3960, 11043, 11337, 121358, 0, 92824, 3958, 101568, 0, 917818, 0, 917819, 0, 0, 42064, 11959, 983714, 0, - 0, 0, 0, 128498, 64336, 10478, 92629, 70350, 118692, 0, 0, 42437, 1555, - 0, 8691, 129656, 2215, 41662, 119046, 0, 0, 0, 93952, 0, 66481, 41664, 0, + 0, 0, 0, 73511, 64336, 10478, 92629, 70350, 118692, 0, 0, 42437, 1555, 0, + 8691, 129656, 2215, 41662, 119046, 0, 0, 0, 93952, 0, 66481, 41664, 0, 42578, 0, 41661, 78715, 78714, 9356, 0, 129544, 0, 1286, 110701, 0, 0, - 983206, 128925, 42476, 0, 11156, 0, 0, 0, 101583, 72123, 0, 10020, 43359, - 72827, 0, 120946, 41627, 0, 11979, 0, 41628, 533, 11931, 65225, 0, + 983208, 128925, 42476, 0, 11156, 78895, 0, 0, 101583, 72123, 0, 10020, + 43359, 72827, 0, 120946, 41627, 0, 11979, 0, 41628, 533, 11931, 65225, 0, 125122, 129994, 0, 68118, 0, 4377, 0, 0, 8587, 72097, 13193, 64350, 68233, 0, 41924, 0, 7735, 0, 127585, 120843, 0, 65820, 0, 0, 43461, 7757, 0, 0, 43787, 66493, 77943, 4168, 43904, 73952, 0, 0, 121072, 4440, 43902, 77948, 66837, 77946, 43903, 77944, 77945, 0, 120909, 120826, 120226, - 66492, 43901, 64625, 0, 0, 0, 0, 10013, 64434, 0, 983112, 0, 11782, + 66492, 43901, 64625, 0, 0, 0, 0, 10013, 64434, 0, 983113, 0, 11782, 64382, 0, 0, 0, 0, 41630, 630, 120960, 0, 0, 70165, 1043, 93017, 0, 0, 0, 124945, 313, 129590, 0, 0, 65593, 7445, 43906, 5750, 42258, 0, 55222, 68222, 11268, 11225, 0, 8526, 0, 0, 43894, 66495, 69990, 0, 92990, 0, @@ -29116,8 +29312,8 @@ static const unsigned int code_hash[] = { 19940, 43668, 41667, 0, 0, 1923, 0, 0, 0, 0, 0, 0, 0, 0, 6464, 92750, 2996, 125221, 0, 68481, 41835, 4047, 41842, 0, 0, 129601, 0, 0, 0, 0, 293, 0, 0, 64791, 41827, 0, 0, 10579, 8560, 0, 0, 118835, 4803, 73805, - 1739, 0, 3900, 128967, 73737, 0, 0, 73957, 0, 66474, 41971, 0, 0, 0, 0, - 0, 11716, 66473, 0, 92647, 0, 128080, 0, 0, 0, 0, 0, 0, 0, 6632, 73861, + 1739, 0, 3900, 128967, 73737, 0, 72451, 73957, 0, 66474, 41971, 0, 0, 0, + 0, 0, 11716, 66473, 0, 92647, 0, 78920, 0, 0, 0, 0, 0, 0, 0, 6632, 73861, 0, 74770, 0, 0, 8914, 0, 0, 3183, 1435, 0, 0, 0, 0, 0, 0, 5746, 67392, 0, 0, 0, 83506, 0, 7082, 71481, 12618, 5059, 983597, 83524, 43604, 0, 0, 0, 0, 0, 0, 8227, 0, 1218, 0, 64416, 65848, 92884, 0, 0, 0, 126987, 0, 0, 0, @@ -29125,40 +29321,40 @@ static const unsigned int code_hash[] = { 65905, 0, 42662, 0, 121159, 0, 129536, 0, 7794, 0, 42953, 6377, 0, 126080, 3669, 3968, 0, 71319, 69658, 129550, 0, 66296, 118616, 0, 0, 0, 124998, 6699, 126120, 0, 0, 66678, 0, 0, 0, 8409, 119527, 19967, 0, 0, - 9502, 0, 0, 6115, 0, 41654, 0, 0, 0, 41655, 113779, 43975, 72427, 0, 0, - 0, 0, 41657, 10778, 0, 9533, 184, 1553, 128868, 69574, 0, 0, 0, 129420, - 0, 101589, 983576, 73697, 0, 92480, 0, 128938, 74292, 0, 5157, 4020, 0, - 128154, 43788, 64818, 0, 0, 0, 92979, 0, 0, 74377, 11029, 66651, 0, 0, - 125202, 0, 0, 7877, 121070, 101411, 0, 119828, 2810, 9955, 0, 0, 42817, - 0, 65122, 11715, 0, 0, 0, 71270, 0, 0, 0, 0, 0, 70199, 0, 0, 0, 0, 0, 0, - 127862, 0, 0, 0, 78222, 127981, 0, 0, 0, 0, 0, 11290, 0, 0, 0, 0, 8315, - 0, 0, 0, 74595, 0, 0, 0, 42531, 0, 0, 0, 74589, 43993, 0, 0, 0, 0, 43690, - 0, 119139, 42730, 0, 0, 0, 64926, 0, 0, 43830, 65257, 0, 42728, 0, - 128697, 123150, 0, 43540, 0, 0, 12725, 72993, 78635, 127826, 223, 0, - 69675, 0, 0, 0, 0, 0, 0, 42605, 0, 0, 0, 0, 0, 0, 0, 0, 78621, 0, 78619, - 119062, 0, 0, 0, 42676, 129353, 64800, 78617, 83504, 68126, 1213, 0, 0, - 797, 0, 0, 83021, 83005, 64387, 4115, 0, 0, 0, 129857, 10679, 83001, - 121091, 0, 64276, 83498, 13168, 83011, 0, 10136, 0, 0, 65088, 0, 4262, - 129866, 0, 0, 10701, 0, 3101, 0, 123204, 0, 0, 11373, 0, 0, 12731, 9117, - 0, 0, 4539, 0, 0, 12727, 0, 0, 0, 43684, 74567, 68877, 983726, 12724, - 73940, 0, 0, 0, 0, 0, 7947, 12003, 0, 74593, 121140, 69653, 74807, 42018, - 0, 0, 0, 65888, 0, 0, 69683, 0, 120306, 0, 0, 12595, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 69848, 68307, 0, 4405, 0, 128336, 129032, 69216, 0, 128011, - 118656, 0, 6817, 67400, 120314, 0, 0, 998, 0, 13105, 120313, 64327, 1558, - 0, 1991, 7882, 0, 0, 0, 530, 0, 0, 0, 12002, 0, 68422, 0, 10979, 0, - 41823, 70696, 0, 0, 7896, 0, 66676, 0, 120325, 0, 0, 129407, 94033, 0, - 6311, 110725, 41698, 0, 12049, 78133, 0, 125020, 41705, 0, 0, 121298, 0, - 66822, 0, 65389, 0, 66027, 0, 0, 41699, 8340, 0, 69776, 0, 128639, 0, - 1988, 5407, 69978, 0, 65912, 93059, 0, 2336, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 126238, 0, 19913, 0, 113733, 0, 0, 74279, 0, 10956, 0, 41674, 19964, - 41679, 65084, 41675, 195031, 0, 0, 0, 0, 983089, 0, 10794, 128961, 13217, - 0, 0, 0, 5280, 0, 0, 12905, 41610, 11532, 0, 0, 768, 120545, 442, 0, 0, - 0, 64081, 41682, 0, 41693, 0, 77993, 77994, 0, 4804, 6994, 983114, 0, 0, - 41696, 467, 983934, 0, 0, 0, 0, 8678, 0, 69682, 64801, 0, 0, 0, 2193, - 64093, 12043, 0, 69666, 0, 2029, 65191, 119246, 42847, 0, 0, 0, 0, 0, 0, - 0, 70339, 126116, 0, 0, 8019, 73856, 0, 0, 0, 118709, 2355, 12150, 65725, - 77988, 77989, 68033, 77987, 0, 77985, 0, 0, 68388, 0, 74171, 0, 0, 0, - 11301, 78013, 78008, 78010, 9874, 78007, 983328, 71064, 3050, 0, 0, 0, + 9502, 0, 0, 6115, 0, 41654, 0, 0, 0, 41655, 113779, 43975, 72427, 128080, + 0, 0, 0, 41657, 10778, 0, 9533, 184, 1553, 128868, 69574, 0, 0, 0, + 129420, 0, 101589, 983576, 73697, 0, 92480, 0, 128938, 74292, 0, 5157, + 4020, 0, 128154, 43788, 64818, 0, 0, 0, 92979, 0, 0, 74377, 11029, 66651, + 0, 0, 125202, 0, 0, 7877, 121070, 101411, 0, 119828, 2810, 9955, 0, + 69375, 42817, 0, 65122, 11715, 0, 0, 0, 71270, 0, 0, 0, 0, 0, 70199, 0, + 0, 0, 0, 0, 0, 127862, 0, 0, 0, 78222, 127981, 0, 0, 0, 0, 0, 11290, 0, + 0, 0, 0, 8315, 0, 0, 0, 74595, 0, 0, 0, 42531, 0, 0, 0, 74589, 43993, 0, + 0, 0, 0, 43690, 0, 119139, 42730, 0, 0, 0, 64926, 0, 0, 43830, 65257, 0, + 42728, 0, 128697, 123150, 0, 43540, 0, 0, 12725, 72993, 78635, 127826, + 223, 0, 69675, 0, 0, 0, 0, 0, 0, 42605, 0, 0, 0, 0, 0, 0, 0, 0, 78621, 0, + 78619, 119062, 0, 0, 0, 42676, 129353, 64800, 78617, 83504, 68126, 1213, + 0, 0, 797, 0, 0, 83021, 83005, 64387, 4115, 0, 0, 0, 129857, 10679, + 83001, 121091, 0, 64276, 83498, 13168, 83011, 0, 10136, 0, 0, 65088, 0, + 4262, 129866, 0, 0, 10701, 0, 3101, 0, 123204, 0, 0, 11373, 0, 0, 12731, + 9117, 0, 0, 4539, 0, 0, 12727, 0, 0, 0, 43684, 74567, 68877, 983726, + 12724, 73940, 0, 0, 0, 0, 0, 7947, 12003, 0, 74593, 121140, 69653, 74807, + 42018, 0, 0, 0, 65888, 0, 0, 69683, 0, 120306, 0, 0, 12595, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 69848, 68307, 0, 4405, 0, 128336, 129032, 69216, 0, + 128011, 118656, 0, 6817, 67400, 120314, 0, 0, 998, 0, 13105, 120313, + 64327, 1558, 0, 1991, 7882, 0, 0, 0, 530, 0, 0, 0, 12002, 0, 68422, 0, + 10979, 0, 41823, 70696, 0, 0, 7896, 0, 66676, 0, 120325, 0, 0, 129407, + 94033, 0, 6311, 110725, 41698, 0, 12049, 78133, 0, 125020, 41705, 0, 0, + 121298, 0, 66822, 0, 65389, 0, 66027, 0, 0, 41699, 8340, 0, 69776, 0, + 78921, 0, 1988, 5407, 69978, 0, 65912, 93059, 0, 2336, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 126238, 0, 19913, 0, 113733, 0, 0, 74279, 0, 10956, 0, 41674, + 19964, 41679, 65084, 41675, 195031, 0, 0, 0, 0, 983089, 0, 10794, 128961, + 13217, 0, 0, 0, 5280, 0, 0, 12905, 41610, 11532, 0, 0, 768, 120545, 442, + 0, 0, 0, 64081, 41682, 0, 41693, 0, 77993, 77994, 0, 4804, 6994, 983115, + 0, 0, 41696, 467, 983934, 0, 0, 0, 0, 8678, 0, 69682, 64801, 0, 0, 0, + 2193, 64093, 12043, 0, 69666, 0, 2029, 65191, 119246, 42847, 0, 0, 0, 0, + 0, 0, 0, 70339, 126116, 0, 0, 8019, 73856, 0, 0, 0, 118709, 2355, 12150, + 65725, 77988, 77989, 68033, 77987, 0, 77985, 0, 0, 68388, 0, 74171, 0, 0, + 0, 11301, 78013, 78008, 78010, 9874, 78007, 983331, 71064, 3050, 0, 0, 0, 78016, 78017, 71852, 78015, 0, 0, 0, 92242, 0, 69642, 0, 0, 43883, 0, 0, 0, 78025, 0, 78023, 78024, 11847, 10545, 0, 10887, 0, 123179, 0, 0, 0, 83352, 64942, 92363, 9996, 8508, 0, 0, 8195, 0, 42171, 0, 3722, 0, 63751, @@ -29170,59 +29366,60 @@ static const unsigned int code_hash[] = { 68495, 74131, 74130, 0, 0, 0, 611, 74129, 64871, 129958, 0, 0, 0, 74854, 0, 70466, 0, 0, 0, 121147, 0, 68487, 41669, 7094, 917921, 0, 123144, 74054, 0, 0, 0, 839, 0, 7695, 0, 0, 0, 92202, 0, 121053, 123157, 67885, - 0, 7206, 0, 6647, 43986, 0, 0, 0, 122646, 0, 0, 127936, 43748, 66746, 0, - 12298, 110802, 984011, 110800, 64924, 0, 73931, 9468, 74245, 0, 0, 74246, - 0, 0, 118830, 0, 71851, 1279, 0, 6224, 0, 92405, 128601, 129886, 128997, - 0, 0, 0, 5032, 0, 0, 0, 0, 0, 5034, 0, 0, 72846, 42702, 0, 0, 13294, 0, - 64869, 0, 67808, 9129, 123632, 0, 0, 120819, 68387, 120168, 120169, - 120170, 120171, 5518, 4174, 120166, 66932, 120160, 120161, 120162, 434, - 41437, 66212, 120158, 120159, 0, 0, 118867, 0, 524, 0, 74029, 0, 126559, - 0, 0, 0, 10355, 10419, 74025, 77847, 0, 69725, 0, 120656, 0, 67876, 0, 0, - 0, 74145, 74039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5445, 0, 93779, 71855, - 7391, 8989, 0, 74068, 0, 0, 0, 0, 4962, 120409, 8855, 0, 70820, 0, 0, 0, - 0, 71847, 0, 120406, 0, 10451, 0, 67653, 120153, 12443, 120155, 9947, - 120149, 120150, 120151, 13128, 0, 120146, 120147, 0, 0, 0, 0, 0, 129715, - 74059, 74062, 6217, 74053, 43846, 0, 74049, 0, 0, 0, 0, 0, 0, 0, 0, - 42595, 0, 68112, 118860, 0, 0, 92497, 74949, 128953, 126245, 0, 0, 0, - 42997, 0, 119251, 0, 0, 0, 0, 0, 6216, 0, 0, 9455, 127027, 8124, 128851, - 0, 6944, 0, 0, 0, 2828, 128550, 531, 42638, 0, 0, 129888, 43428, 0, 3614, - 2827, 9696, 0, 0, 0, 4354, 0, 78562, 78561, 0, 118553, 0, 42599, 42597, - 0, 68829, 125012, 0, 127277, 0, 120421, 0, 983164, 0, 0, 10121, 120422, - 74950, 123142, 69715, 0, 0, 120423, 120630, 12608, 125244, 0, 74144, - 9700, 12580, 0, 128911, 0, 71864, 0, 74071, 0, 0, 12713, 0, 70402, 0, 0, - 0, 1734, 0, 0, 0, 0, 118951, 231, 0, 74167, 542, 0, 0, 0, 0, 128074, 0, - 121343, 0, 4446, 10584, 74235, 0, 4037, 0, 0, 0, 5687, 0, 0, 0, 0, 0, 0, - 78434, 92816, 0, 113709, 74284, 0, 0, 0, 126495, 0, 0, 0, 74482, 93978, - 1709, 69721, 9909, 92286, 0, 0, 0, 55229, 8667, 0, 0, 0, 0, 0, 0, 0, 0, - 127586, 1226, 6930, 0, 71736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41500, 0, 311, - 74282, 6221, 92988, 0, 67682, 0, 120528, 122901, 74272, 0, 0, 0, 0, - 69667, 0, 124933, 74456, 74302, 42589, 0, 0, 0, 0, 64847, 0, 66987, 0, - 41508, 0, 323, 125211, 0, 42698, 8131, 0, 4625, 0, 4630, 0, 0, 0, 74316, - 78417, 2668, 92483, 0, 42640, 0, 2519, 0, 92474, 92479, 0, 983085, 5049, - 42659, 119011, 64705, 7754, 10854, 8738, 74623, 0, 0, 0, 649, 0, 0, 0, 0, - 0, 1013, 70707, 68212, 705, 0, 0, 127803, 1183, 126519, 9320, 0, 0, 8157, - 0, 0, 0, 0, 0, 0, 0, 11913, 0, 42848, 0, 64925, 0, 0, 70693, 0, 0, 2051, - 0, 0, 0, 66988, 0, 0, 0, 8466, 0, 4626, 8464, 8472, 68844, 4629, 8499, 0, - 0, 4624, 194623, 0, 94025, 0, 7805, 0, 94007, 6935, 0, 0, 0, 0, 0, 0, 0, - 8492, 0, 8459, 0, 8497, 8496, 0, 129864, 0, 0, 129834, 69553, 0, 0, - 65849, 0, 0, 0, 12451, 3328, 8684, 0, 6102, 0, 5298, 110881, 5294, 0, - 129615, 0, 0, 0, 0, 43617, 0, 0, 0, 0, 0, 77863, 128695, 0, 0, 0, 0, 0, - 5292, 0, 0, 42688, 5302, 3970, 0, 0, 1793, 0, 0, 0, 0, 0, 65263, 0, 0, 0, - 0, 0, 0, 13219, 9569, 69567, 74383, 0, 0, 72157, 0, 42949, 0, 0, 0, 5322, - 0, 0, 43631, 5324, 0, 128694, 41614, 65269, 6230, 0, 0, 0, 3360, 0, - 11523, 72726, 92488, 9926, 7197, 0, 68429, 126575, 41821, 1249, 0, - 127951, 0, 123641, 0, 0, 0, 74459, 41807, 0, 41815, 0, 0, 0, 119918, 0, - 128248, 0, 66835, 0, 0, 72145, 41800, 0, 0, 0, 41811, 74466, 93966, 6670, - 77882, 0, 0, 43092, 0, 0, 0, 0, 0, 128655, 0, 0, 0, 0, 74501, 74005, 0, - 74387, 69860, 315, 12813, 128556, 72409, 0, 72408, 0, 0, 73061, 0, 0, - 1378, 0, 0, 0, 72407, 3066, 0, 0, 72406, 0, 0, 0, 8787, 194615, 0, 41618, - 0, 0, 0, 194614, 64652, 194611, 42088, 125226, 0, 0, 0, 0, 7176, 43756, - 0, 122649, 74492, 0, 74534, 0, 0, 0, 127199, 0, 128630, 74525, 0, 194594, - 12930, 7168, 74514, 0, 74515, 0, 128919, 43962, 9527, 120659, 70123, - 12977, 69723, 0, 93783, 194598, 41236, 92235, 65168, 118838, 41237, 5848, - 0, 194600, 3670, 129905, 129906, 129907, 129908, 7890, 0, 11298, 0, 0, - 6229, 0, 0, 0, 194593, 128907, 0, 0, 194592, 4120, 65337, 65336, 0, 0, 0, - 0, 9366, 0, 0, 0, 65327, 65326, 65325, 65324, 65323, 42216, 65321, 65320, + 0, 7206, 0, 6647, 43986, 129743, 0, 0, 122646, 0, 0, 127936, 43748, + 66746, 0, 12298, 110802, 984011, 110800, 64924, 0, 73931, 9468, 74245, 0, + 0, 74246, 0, 0, 118830, 0, 71851, 1279, 0, 6224, 0, 92405, 128601, + 129886, 128997, 0, 0, 0, 5032, 0, 0, 0, 0, 0, 5034, 0, 0, 72846, 42702, + 0, 0, 13294, 0, 64869, 0, 67808, 9129, 123632, 0, 0, 120819, 68387, + 120168, 120169, 120170, 120171, 5518, 4174, 120166, 66932, 120160, + 120161, 120162, 434, 41437, 66212, 120158, 120159, 0, 0, 118867, 0, 524, + 0, 74029, 0, 126559, 0, 0, 0, 10355, 10419, 74025, 77847, 0, 69725, 0, + 120656, 0, 67876, 0, 0, 0, 74145, 74039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5445, 0, 93779, 71855, 7391, 8989, 0, 74068, 0, 0, 0, 0, 4962, 120409, + 8855, 0, 70820, 0, 0, 0, 0, 71847, 0, 120406, 0, 10451, 0, 67653, 120153, + 12443, 120155, 9947, 120149, 120150, 120151, 13128, 0, 120146, 120147, 0, + 0, 0, 0, 0, 129715, 74059, 74062, 6217, 74053, 43846, 0, 74049, 0, 0, 0, + 0, 0, 0, 0, 0, 42595, 0, 68112, 118860, 0, 0, 92497, 74949, 128953, + 126245, 0, 0, 0, 42997, 122984, 119251, 0, 0, 0, 0, 0, 6216, 0, 0, 9455, + 127027, 8124, 128851, 0, 6944, 0, 0, 0, 2828, 128550, 531, 42638, 0, 0, + 129888, 43428, 0, 3614, 2827, 9696, 0, 129711, 0, 4354, 0, 78562, 78561, + 0, 118553, 0, 42599, 42597, 0, 68829, 125012, 0, 127277, 0, 120421, 0, + 983165, 0, 0, 10121, 120422, 74950, 123142, 69715, 0, 0, 120423, 120630, + 12608, 125244, 0, 74144, 9700, 12580, 0, 128911, 0, 71864, 0, 74071, 0, + 0, 12713, 0, 70402, 0, 0, 0, 1734, 0, 0, 0, 119491, 118951, 231, 0, + 74167, 542, 0, 0, 0, 0, 128074, 0, 121343, 0, 4446, 10584, 74235, 0, + 4037, 0, 0, 0, 5687, 0, 0, 0, 0, 0, 0, 78434, 92816, 0, 113709, 74284, 0, + 0, 0, 126495, 0, 0, 0, 74482, 93978, 1709, 69721, 9909, 92286, 0, 0, 0, + 55229, 8667, 0, 0, 0, 0, 0, 0, 0, 0, 127586, 1226, 6930, 124146, 71736, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 41500, 0, 311, 74282, 6221, 92988, 0, 67682, + 0, 120528, 122901, 74272, 0, 0, 0, 0, 69667, 0, 124933, 74456, 74302, + 42589, 0, 0, 0, 0, 64847, 0, 66987, 0, 41508, 0, 323, 125211, 0, 42698, + 8131, 0, 4625, 0, 4630, 0, 0, 0, 74316, 78417, 2668, 92483, 0, 42640, 0, + 2519, 0, 92474, 92479, 0, 983085, 5049, 42659, 119011, 64705, 7754, + 10854, 8738, 74623, 0, 0, 0, 649, 0, 0, 73480, 0, 0, 1013, 70707, 68212, + 705, 0, 0, 127803, 1183, 126519, 9320, 0, 0, 8157, 0, 0, 0, 0, 0, 0, 0, + 11913, 0, 42848, 0, 64925, 0, 0, 70693, 0, 0, 2051, 0, 0, 0, 66988, 0, 0, + 0, 8466, 0, 4626, 8464, 8472, 68844, 4629, 8499, 0, 0, 4624, 194623, 0, + 94025, 0, 7805, 0, 94007, 6935, 0, 0, 0, 0, 0, 0, 0, 8492, 0, 8459, 0, + 8497, 8496, 0, 129864, 0, 0, 129834, 69553, 73476, 0, 65849, 0, 0, 0, + 12451, 3328, 8684, 0, 6102, 0, 5298, 110881, 5294, 0, 129615, 0, 0, 0, 0, + 43617, 0, 0, 0, 0, 0, 77863, 128695, 0, 0, 0, 0, 0, 5292, 0, 0, 42688, + 5302, 3970, 73516, 0, 1793, 0, 0, 0, 0, 0, 65263, 0, 0, 0, 0, 0, 0, + 13219, 9569, 69567, 74383, 0, 0, 72157, 0, 42949, 0, 0, 0, 5322, 0, 0, + 43631, 5324, 0, 128694, 41614, 65269, 6230, 0, 0, 0, 3360, 0, 11523, + 72726, 92488, 9926, 7197, 0, 68429, 126575, 41821, 1249, 0, 127951, 0, + 123641, 0, 0, 0, 74459, 41807, 0, 41815, 0, 0, 0, 119918, 0, 128248, 0, + 66835, 0, 0, 72145, 41800, 0, 0, 0, 41811, 74466, 93966, 6670, 77882, 0, + 0, 43092, 0, 0, 0, 0, 0, 128655, 0, 0, 0, 0, 74501, 74005, 0, 74387, + 69860, 315, 12813, 128556, 72409, 0, 72408, 0, 0, 73061, 0, 0, 1378, 0, + 0, 0, 72407, 3066, 0, 0, 72406, 0, 0, 0, 8787, 194615, 0, 41618, 0, 0, 0, + 194614, 64652, 194611, 42088, 125226, 0, 0, 0, 0, 7176, 43756, 0, 122649, + 74492, 0, 74534, 0, 0, 0, 127199, 0, 128630, 74525, 0, 194594, 12930, + 7168, 74514, 0, 74515, 0, 128919, 43962, 9527, 120659, 70123, 12977, + 69723, 0, 93783, 194598, 41236, 92235, 65168, 118838, 41237, 5848, 0, + 194600, 3670, 129905, 129906, 129907, 129908, 7890, 0, 11298, 0, 0, 6229, + 0, 0, 0, 194593, 128907, 0, 0, 194592, 4120, 65337, 65336, 0, 0, 0, 0, + 9366, 0, 0, 0, 65327, 65326, 65325, 65324, 65323, 42216, 65321, 65320, 65335, 65334, 65333, 65332, 65331, 65330, 65329, 42689, 0, 43943, 118885, 42073, 6785, 68491, 0, 42076, 7196, 65318, 2035, 65316, 4106, 65314, 65313, 42074, 0, 41228, 0, 0, 41241, 93786, 41239, 43533, 0, 7189, @@ -29233,161 +29430,161 @@ static const unsigned int code_hash[] = { 83043, 0, 68296, 0, 2823, 0, 0, 0, 2831, 0, 0, 11465, 0, 0, 0, 0, 0, 7181, 92855, 41332, 0, 12333, 0, 0, 0, 124914, 0, 9883, 127294, 73906, 70751, 0, 71863, 0, 0, 0, 0, 0, 0, 43741, 0, 8166, 70739, 0, 0, 74535, 0, - 65297, 68294, 571, 0, 8752, 0, 5288, 118822, 1541, 0, 127284, 8864, 0, 0, - 0, 0, 0, 113778, 12151, 0, 66874, 0, 1035, 0, 0, 7881, 701, 65936, - 128493, 0, 70462, 0, 11403, 0, 0, 82991, 0, 983142, 70472, 3994, 11421, + 65297, 68294, 571, 0, 8752, 0, 5288, 118822, 1541, 0, 127284, 8864, 0, + 73559, 0, 0, 0, 113778, 12151, 0, 66874, 0, 1035, 0, 0, 7881, 701, 65936, + 128493, 0, 70462, 0, 11403, 0, 0, 82991, 0, 983143, 70472, 3994, 11421, 121217, 127297, 127242, 127300, 70659, 127303, 0, 125205, 2855, 127828, 0, 41621, 68214, 0, 0, 10654, 82945, 119226, 12164, 41623, 7906, 0, 74297, 7182, 0, 83069, 0, 0, 0, 0, 121115, 0, 0, 747, 0, 92463, 12019, 43136, 0, 110861, 0, 0, 8001, 0, 0, 69394, 0, 0, 0, 68373, 0, 0, 0, - 128279, 0, 71915, 0, 0, 7282, 94066, 0, 0, 0, 0, 0, 5286, 83061, 0, 3718, - 0, 83057, 0, 124906, 71905, 0, 128480, 0, 0, 0, 0, 9206, 82980, 113824, - 6802, 0, 41653, 0, 1241, 0, 0, 0, 0, 68124, 41651, 42937, 0, 83042, - 41650, 0, 83037, 0, 12914, 2814, 0, 119552, 120691, 0, 0, 71968, 0, 0, 0, - 917546, 71862, 0, 0, 0, 3494, 10189, 69784, 0, 0, 71861, 0, 0, 65875, 0, - 0, 127762, 0, 74215, 43065, 0, 0, 7200, 0, 3261, 0, 0, 0, 65889, 71888, - 71975, 0, 0, 0, 0, 0, 77793, 0, 0, 129424, 77791, 635, 0, 0, 74753, 0, - 92420, 73997, 0, 0, 43905, 0, 118834, 126125, 0, 6667, 0, 983265, 0, 0, - 125200, 0, 0, 0, 0, 83137, 0, 0, 0, 0, 0, 121104, 127856, 125112, 71885, - 0, 120125, 7866, 194573, 92770, 194574, 0, 120140, 126074, 2849, 0, 0, - 42157, 12960, 0, 11812, 0, 74509, 0, 69881, 0, 0, 0, 123156, 7178, 0, 0, - 0, 0, 129041, 11534, 1967, 0, 0, 71361, 7015, 120298, 72757, 0, 12989, 0, - 9368, 983638, 1624, 43270, 0, 0, 10818, 0, 83091, 0, 120908, 0, 0, 0, 0, - 0, 0, 6169, 12871, 0, 2798, 65176, 4958, 42752, 119025, 0, 0, 0, 70346, - 66448, 0, 113780, 68364, 0, 0, 0, 68360, 0, 73746, 120945, 68352, 0, - 73787, 83110, 2154, 7199, 64955, 0, 0, 0, 0, 71980, 66507, 0, 69853, 0, - 0, 0, 0, 0, 0, 0, 92517, 118882, 120301, 13297, 0, 129446, 71963, 0, 0, - 0, 6658, 8045, 0, 0, 983873, 92319, 83101, 0, 72126, 0, 0, 0, 2416, 3310, - 0, 0, 379, 0, 43755, 0, 0, 0, 68362, 1284, 0, 73756, 0, 0, 83141, 70784, - 71977, 0, 0, 0, 8515, 83144, 83143, 0, 0, 0, 8529, 93782, 0, 7564, 0, 0, - 0, 0, 73757, 73760, 42359, 0, 2031, 0, 7202, 129984, 12676, 0, 0, 128418, - 0, 7710, 1610, 73801, 0, 0, 118706, 983607, 43917, 0, 9974, 228, 0, - 10398, 0, 0, 0, 92241, 70062, 118927, 42999, 1725, 65533, 8196, 9352, 0, - 0, 66868, 0, 8502, 5762, 0, 0, 43898, 0, 0, 0, 0, 43914, 0, 126507, - 64598, 13001, 9326, 83082, 43916, 1557, 0, 983879, 6330, 6805, 8631, - 2545, 70052, 0, 0, 0, 42998, 70410, 0, 42762, 71941, 42914, 126516, 262, - 1637, 0, 83025, 129491, 83026, 128757, 0, 0, 0, 128922, 0, 43658, 0, 0, - 129183, 6419, 0, 0, 0, 0, 93989, 0, 128173, 7194, 5291, 67395, 43666, 0, - 0, 0, 0, 128293, 0, 12881, 123596, 0, 73842, 0, 9011, 0, 0, 0, 70436, - 179, 43644, 0, 0, 64747, 0, 118813, 0, 0, 121389, 92649, 126629, 0, - 73850, 2801, 119837, 42069, 119839, 119838, 119841, 42072, 92736, 119842, - 0, 0, 0, 8377, 0, 42070, 119313, 119834, 119310, 4389, 43656, 1633, - 119857, 118632, 119859, 11119, 119845, 119844, 9967, 119846, 119849, - 4612, 92867, 119850, 42913, 70456, 0, 71983, 10782, 66898, 0, 119141, 0, - 0, 0, 11541, 69636, 0, 0, 119614, 2731, 0, 0, 0, 4102, 0, 73878, 0, 0, 0, - 0, 0, 11283, 0, 0, 0, 0, 0, 43674, 0, 0, 126705, 0, 0, 0, 0, 11142, - 128304, 0, 12975, 0, 123208, 0, 0, 74072, 0, 55269, 0, 0, 0, 78577, - 78576, 0, 0, 82966, 82974, 70448, 0, 0, 82968, 0, 0, 0, 0, 0, 113809, 0, - 69399, 64909, 0, 11790, 74019, 0, 128066, 0, 8561, 94076, 129481, 125045, - 69259, 65674, 7230, 0, 0, 8778, 0, 0, 67725, 2071, 0, 6459, 68325, 7628, - 65092, 73903, 0, 11342, 129388, 0, 0, 93965, 94081, 0, 11810, 70057, - 10723, 967, 0, 71973, 73905, 0, 6387, 0, 12307, 43913, 121089, 0, 127584, - 0, 1886, 0, 43895, 870, 7648, 0, 7662, 7652, 876, 871, 877, 7665, 878, - 42015, 879, 43692, 4563, 0, 0, 0, 73072, 867, 9520, 872, 7656, 868, 873, - 7642, 7659, 869, 874, 7644, 0, 875, 790, 0, 0, 0, 0, 0, 124899, 0, 0, 0, - 0, 0, 68452, 0, 0, 42067, 0, 0, 0, 12292, 0, 0, 0, 42012, 0, 0, 83388, 0, - 0, 8494, 4611, 0, 72344, 0, 9679, 0, 0, 0, 0, 93015, 0, 74364, 4628, - 4245, 0, 0, 0, 1851, 0, 127189, 0, 0, 0, 118897, 0, 64674, 124971, - 983887, 8829, 983693, 128864, 0, 0, 0, 0, 8809, 983696, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7427, 0, 4588, 43680, 72300, 74484, 0, 0, 0, 0, 113787, 74363, - 129043, 0, 793, 0, 11197, 0, 0, 0, 842, 0, 8208, 70833, 0, 1647, 0, - 70841, 0, 0, 818, 0, 0, 0, 0, 0, 0, 120594, 0, 0, 70179, 0, 13167, 66359, - 0, 127172, 0, 4969, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2840, 0, 0, 0, 66887, - 65877, 9068, 0, 68194, 0, 0, 12991, 0, 2651, 68016, 983915, 0, 983261, - 70835, 0, 70844, 43648, 0, 0, 0, 0, 0, 0, 64372, 121064, 7458, 655, 752, - 7457, 7456, 7452, 3285, 74894, 11152, 73099, 0, 2391, 93766, 92271, 671, - 7435, 7434, 618, 668, 610, 42800, 7431, 7451, 42801, 640, 42927, 7448, - 7439, 628, 3905, 100742, 0, 0, 0, 67850, 0, 0, 0, 4605, 0, 100745, 43372, - 65945, 72710, 0, 119590, 0, 0, 70495, 987, 71229, 11572, 0, 0, 10002, - 9971, 70673, 0, 0, 0, 0, 0, 0, 11334, 0, 129493, 42364, 11503, 0, 0, 0, - 4627, 70090, 127784, 0, 0, 74046, 68872, 92562, 0, 0, 129900, 0, 129812, - 0, 0, 42569, 64965, 0, 0, 10516, 129828, 12190, 0, 42140, 0, 0, 0, 0, - 9887, 0, 4000, 7429, 7428, 665, 7424, 0, 0, 7884, 0, 0, 0, 0, 0, 2509, 0, - 120573, 0, 0, 92449, 0, 10690, 0, 119114, 126226, 0, 0, 73080, 4590, 0, - 74440, 0, 0, 0, 1708, 0, 0, 983609, 0, 0, 69226, 69974, 8813, 0, 1066, 0, - 0, 71965, 127921, 70447, 0, 0, 0, 2202, 0, 7516, 0, 0, 0, 8034, 0, 0, - 3631, 110696, 0, 0, 8416, 110694, 71937, 0, 0, 110692, 74621, 0, 70185, - 0, 74850, 0, 0, 12099, 70475, 0, 6252, 0, 0, 0, 0, 0, 0, 66368, 0, 64956, - 7071, 129070, 70457, 128159, 118800, 0, 77757, 0, 9357, 0, 1773, 0, - 125092, 0, 68451, 7745, 9844, 0, 0, 94, 1880, 120929, 0, 0, 0, 0, 0, 0, - 0, 0, 11237, 0, 129173, 0, 0, 0, 1757, 6964, 42480, 72823, 0, 120806, 0, - 0, 7731, 0, 0, 127883, 0, 77777, 43988, 70423, 74758, 0, 7592, 856, - 74299, 0, 0, 0, 78138, 1459, 0, 0, 0, 0, 0, 1504, 0, 0, 0, 0, 7529, 0, 0, - 0, 0, 12594, 0, 0, 336, 0, 7509, 0, 0, 0, 0, 127882, 0, 0, 0, 65859, 0, - 983986, 43062, 124948, 0, 0, 0, 0, 12970, 0, 0, 0, 0, 0, 0, 0, 119247, 0, - 65068, 74291, 129943, 7069, 0, 0, 66977, 11130, 2087, 0, 0, 0, 0, 126249, - 0, 92747, 0, 92614, 2091, 0, 2090, 0, 0, 7117, 2077, 72281, 0, 77889, - 2083, 0, 71196, 0, 0, 71981, 0, 0, 0, 0, 4165, 8746, 0, 0, 0, 0, 129572, - 7066, 77779, 70415, 128135, 0, 0, 7786, 127766, 2233, 0, 124965, 121122, - 2302, 0, 0, 7056, 0, 0, 0, 0, 118639, 0, 126506, 6920, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 983099, 70438, 2613, 0, 0, 110734, 0, 74571, 42760, 0, 0, 0, - 0, 0, 0, 71843, 0, 0, 70506, 1246, 74243, 0, 0, 41008, 0, 0, 0, 921, - 70048, 0, 12702, 0, 0, 1566, 8407, 0, 64653, 0, 74617, 0, 0, 72711, 5313, - 951, 0, 0, 0, 0, 77807, 4009, 70277, 71844, 0, 83123, 0, 72250, 0, - 119898, 113760, 0, 0, 0, 0, 70024, 0, 0, 119892, 0, 0, 0, 119890, 2579, - 119906, 3177, 11357, 69224, 0, 0, 83130, 64734, 0, 9822, 110670, 70471, - 110668, 66990, 110666, 66967, 0, 0, 0, 9851, 983748, 110673, 9059, - 110671, 77736, 0, 41687, 129054, 0, 71842, 70178, 0, 66975, 1777, 67003, - 10158, 69767, 0, 42366, 70444, 0, 0, 0, 70127, 71955, 5989, 110716, - 74636, 126999, 0, 41685, 0, 0, 9769, 41684, 0, 6225, 111328, 11740, 0, - 118840, 0, 2600, 0, 70416, 0, 118720, 3666, 70420, 127193, 71976, 0, 0, - 74542, 69771, 0, 0, 0, 0, 0, 69765, 77804, 252, 0, 69769, 0, 194616, 0, - 69763, 0, 0, 0, 0, 0, 0, 0, 120947, 0, 129410, 0, 118792, 0, 68323, - 125219, 0, 119188, 0, 2177, 121335, 0, 0, 0, 0, 0, 7764, 983745, 11094, - 120825, 0, 0, 92505, 8298, 0, 0, 0, 0, 0, 64449, 0, 126650, 0, 0, 0, - 70442, 0, 0, 0, 0, 7774, 10607, 0, 0, 0, 0, 0, 120764, 0, 0, 77746, 0, - 3458, 0, 70053, 0, 120995, 0, 2602, 0, 0, 0, 74907, 0, 0, 0, 0, 172, 0, - 4971, 70419, 1889, 7238, 0, 0, 0, 8257, 0, 0, 0, 129570, 0, 111342, - 71948, 0, 43366, 43363, 9807, 0, 0, 0, 72247, 64479, 0, 0, 0, 113707, 0, - 10900, 121355, 0, 0, 12048, 0, 64292, 0, 0, 0, 6099, 94084, 129486, 0, 0, - 299, 0, 8525, 92356, 0, 0, 111338, 0, 92564, 3075, 0, 94053, 0, 94050, 0, - 0, 70440, 0, 123590, 0, 0, 0, 2581, 11395, 0, 0, 0, 0, 128584, 0, 0, - 129423, 101092, 118855, 0, 0, 0, 7204, 70065, 2588, 2914, 7011, 55281, 0, - 7466, 0, 2883, 42253, 83118, 0, 0, 0, 123598, 0, 41230, 68299, 0, 43571, - 0, 6219, 0, 9980, 41232, 92245, 0, 66036, 41229, 118967, 0, 120666, - 94016, 0, 12711, 0, 0, 74289, 68472, 42857, 66950, 0, 0, 0, 127306, - 119006, 0, 11380, 72348, 0, 0, 0, 0, 0, 0, 0, 983579, 12722, 0, 922, 0, - 0, 983126, 74958, 3218, 120471, 120470, 120469, 120476, 120475, 8569, - 11404, 70450, 120463, 3214, 120461, 120468, 74910, 3207, 120465, 78729, - 78728, 78727, 0, 120460, 7425, 3205, 0, 78737, 78736, 71729, 43383, - 78733, 78732, 2606, 78730, 73897, 0, 11496, 1173, 0, 0, 129135, 0, 0, 0, - 120737, 120953, 120872, 120629, 378, 2610, 0, 0, 0, 0, 0, 37, 7068, 0, - 120480, 70421, 3209, 120477, 0, 120483, 9768, 120481, 0, 0, 0, 0, 0, 0, - 65510, 0, 100625, 0, 0, 0, 100627, 0, 126633, 0, 7060, 100628, 0, 127752, - 0, 69284, 70428, 71463, 0, 7380, 0, 0, 100593, 126997, 0, 124900, 0, - 71465, 121030, 3243, 0, 0, 0, 7050, 0, 70050, 0, 0, 0, 71466, 8203, - 71102, 68241, 0, 65211, 194599, 983403, 118636, 0, 779, 125061, 64367, - 100906, 69901, 8193, 55279, 0, 0, 0, 7065, 0, 4346, 0, 0, 908, 0, 0, - 8982, 0, 0, 0, 782, 0, 10883, 0, 0, 129396, 65542, 121302, 0, 68650, - 100575, 92244, 0, 0, 111351, 0, 4376, 0, 11787, 12961, 0, 0, 42888, 0, - 100610, 6231, 0, 65713, 100608, 1783, 0, 68238, 0, 0, 0, 194945, 0, 0, 0, - 68653, 0, 983051, 0, 764, 0, 0, 43531, 0, 9033, 0, 0, 6223, 11042, 0, 0, - 0, 0, 0, 917792, 0, 0, 0, 0, 0, 0, 120648, 0, 0, 0, 0, 0, 0, 71971, 0, - 1478, 0, 11825, 2607, 0, 0, 0, 74543, 0, 0, 100588, 6132, 0, 0, 0, 70058, - 0, 0, 0, 43537, 6761, 10093, 4369, 0, 0, 73735, 100564, 3947, 110778, 0, - 0, 0, 0, 100942, 0, 0, 0, 0, 0, 0, 7686, 0, 0, 0, 100934, 0, 100944, - 66577, 41221, 0, 42281, 0, 74024, 12293, 0, 94014, 11794, 0, 120893, - 1737, 0, 0, 0, 7205, 0, 9335, 12850, 77810, 2272, 7055, 0, 0, 0, 67751, - 0, 124910, 6780, 65067, 0, 1327, 68393, 983574, 0, 41217, 0, 10018, 0, 0, - 0, 100611, 68176, 41219, 0, 4147, 983170, 41216, 983712, 2616, 70197, - 68461, 65234, 0, 0, 0, 0, 119660, 0, 0, 0, 0, 127930, 119580, 70675, - 64943, 2608, 1470, 0, 0, 6227, 0, 0, 74775, 0, 0, 72320, 101024, 0, - 73822, 67456, 0, 0, 0, 0, 10876, 92482, 0, 0, 5834, 0, 6222, 0, 0, 12086, - 0, 1600, 64309, 0, 0, 68883, 127957, 93836, 0, 8882, 0, 129415, 2570, 0, - 0, 194606, 0, 0, 1234, 0, 13115, 110743, 110740, 100923, 5002, 110739, - 41286, 100926, 127019, 0, 0, 0, 0, 0, 0, 0, 41289, 0, 0, 75051, 41272, 0, - 0, 0, 0, 0, 124978, 0, 41279, 0, 0, 0, 11081, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 9637, 7112, 77975, 128984, 0, 10886, 0, 8548, 983860, 0, 0, 0, 8076, - 43048, 8290, 8291, 43051, 92570, 0, 2596, 0, 0, 41293, 0, 0, 2393, 7058, - 66432, 0, 68673, 0, 0, 0, 0, 0, 128558, 0, 0, 0, 0, 0, 64696, 0, 0, - 121086, 74165, 0, 0, 0, 0, 0, 0, 7063, 983182, 64893, 73096, 0, 68038, - 113757, 709, 0, 0, 1876, 0, 0, 120868, 8137, 110662, 67752, 70850, - 100832, 245, 100831, 11456, 41233, 7070, 0, 94046, 6136, 100835, 0, - 100781, 41235, 0, 0, 100782, 100642, 432, 0, 100784, 65437, 0, 100647, - 128909, 0, 100641, 100649, 0, 100648, 0, 43215, 0, 0, 0, 0, 9052, 0, 0, - 110826, 110827, 74784, 10580, 0, 100845, 0, 64640, 983175, 74455, 0, - 129670, 70035, 0, 12652, 12199, 127030, 0, 2566, 11971, 0, 0, 1065, 0, 0, - 0, 2576, 0, 66819, 0, 984005, 129852, 0, 0, 983050, 983845, 0, 2921, + 128279, 0, 71915, 0, 129742, 7282, 94066, 0, 0, 0, 0, 0, 5286, 83061, 0, + 3718, 0, 83057, 78933, 124906, 71905, 0, 128480, 0, 0, 0, 0, 9206, 82980, + 113824, 6802, 0, 41653, 0, 1241, 0, 0, 0, 0, 68124, 41651, 42937, 0, + 83042, 41650, 0, 83037, 0, 12914, 2814, 0, 119552, 120691, 0, 0, 71968, + 0, 0, 0, 917546, 71862, 0, 0, 0, 3494, 10189, 69784, 0, 0, 71861, 0, 0, + 65875, 0, 0, 127762, 0, 74215, 43065, 0, 0, 7200, 0, 3261, 0, 0, 0, + 65889, 71888, 71975, 0, 0, 0, 0, 0, 77793, 0, 0, 129424, 77791, 635, 0, + 0, 74753, 0, 92420, 73997, 0, 0, 43905, 0, 118834, 126125, 0, 6667, 0, + 983268, 0, 0, 125200, 0, 0, 0, 0, 83137, 0, 0, 0, 0, 0, 121104, 127856, + 125112, 71885, 0, 120125, 7866, 194573, 92770, 194574, 0, 120140, 126074, + 2849, 0, 0, 42157, 12960, 0, 11812, 0, 74509, 0, 69881, 0, 0, 0, 123156, + 7178, 0, 0, 0, 0, 129041, 11534, 1967, 0, 0, 71361, 7015, 120298, 72757, + 0, 12989, 0, 9368, 983638, 1624, 43270, 0, 0, 10818, 0, 83091, 0, 120908, + 0, 0, 0, 0, 0, 0, 6169, 12871, 0, 2798, 65176, 4958, 42752, 119025, 0, 0, + 0, 70346, 66448, 0, 113780, 68364, 0, 0, 0, 68360, 0, 73746, 120945, + 68352, 0, 73787, 83110, 2154, 7199, 64955, 0, 0, 0, 0, 71980, 66507, 0, + 69853, 0, 0, 0, 0, 0, 0, 0, 92517, 118882, 120301, 13297, 0, 129446, + 71963, 0, 0, 0, 6658, 8045, 0, 0, 983873, 92319, 83101, 0, 72126, 0, 0, + 0, 2416, 3310, 0, 0, 379, 0, 43755, 0, 0, 0, 68362, 1284, 0, 73756, 0, 0, + 83141, 70784, 71977, 0, 0, 0, 8515, 83144, 83143, 0, 0, 0, 8529, 93782, + 0, 7564, 0, 0, 0, 0, 73757, 73760, 42359, 0, 2031, 0, 7202, 129984, + 12676, 0, 0, 128418, 0, 7710, 1610, 73801, 0, 0, 118706, 983607, 43917, + 0, 9974, 228, 0, 10398, 0, 0, 0, 92241, 70062, 118927, 42999, 1725, + 65533, 8196, 9352, 0, 0, 66868, 0, 8502, 5762, 0, 0, 43898, 0, 0, 0, 0, + 43914, 0, 126507, 64598, 13001, 9326, 83082, 43916, 1557, 0, 983879, + 6330, 6805, 8631, 2545, 70052, 0, 0, 0, 42998, 70410, 0, 42762, 71941, + 42914, 126516, 262, 1637, 0, 83025, 129491, 83026, 128757, 0, 0, 0, + 128922, 0, 43658, 0, 0, 129183, 6419, 0, 0, 0, 0, 93989, 0, 128173, 7194, + 5291, 67395, 43666, 0, 0, 0, 0, 128293, 0, 12881, 123596, 0, 73842, 0, + 9011, 0, 0, 0, 70436, 179, 43644, 0, 0, 64747, 0, 118813, 0, 0, 121389, + 92649, 126629, 0, 73850, 2801, 119495, 42069, 119839, 119838, 119841, + 42072, 92736, 119842, 0, 0, 0, 8377, 0, 42070, 119313, 119834, 119310, + 4389, 43656, 1633, 119857, 118632, 119859, 11119, 119845, 119844, 9967, + 119846, 119849, 4612, 92867, 119850, 42913, 70456, 0, 71983, 10782, + 66898, 0, 119141, 0, 0, 0, 11541, 69636, 0, 0, 119614, 2731, 0, 0, 0, + 4102, 0, 73878, 0, 0, 0, 0, 0, 11283, 0, 0, 0, 0, 0, 43674, 0, 0, 126705, + 0, 0, 0, 0, 11142, 128304, 0, 12975, 0, 123208, 0, 0, 74072, 0, 55269, 0, + 0, 0, 78577, 78576, 0, 0, 82966, 82974, 70448, 0, 0, 82968, 0, 0, 0, 0, + 0, 113809, 0, 69399, 64909, 0, 11790, 74019, 0, 128066, 0, 8561, 94076, + 129481, 125045, 69259, 65674, 7230, 0, 0, 8778, 0, 0, 67725, 2071, 0, + 6459, 68325, 7628, 65092, 73903, 0, 11342, 129388, 0, 0, 93965, 94081, 0, + 11810, 70057, 10723, 967, 0, 71973, 73905, 0, 6387, 0, 12307, 43913, + 121089, 0, 127584, 0, 1886, 0, 43895, 870, 7648, 0, 7662, 7652, 876, 871, + 877, 7665, 878, 42015, 879, 43692, 4563, 0, 0, 0, 73072, 867, 9520, 872, + 7656, 868, 873, 7642, 7659, 869, 874, 7644, 0, 875, 790, 0, 0, 0, 0, 0, + 124899, 0, 0, 0, 0, 0, 68452, 0, 0, 42067, 0, 0, 0, 12292, 0, 0, 0, + 42012, 0, 0, 83388, 0, 0, 8494, 4611, 0, 72344, 0, 9679, 0, 0, 0, 0, + 93015, 0, 74364, 4628, 4245, 0, 0, 0, 1851, 0, 127189, 0, 0, 0, 118897, + 0, 64674, 124971, 983887, 8829, 983693, 128864, 0, 0, 0, 0, 8809, 983696, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 7427, 0, 4588, 43680, 72300, 74484, 0, 0, 0, + 0, 113787, 74363, 129043, 0, 793, 0, 11197, 0, 0, 0, 842, 0, 8208, 70833, + 0, 1647, 0, 70841, 0, 73508, 818, 0, 0, 0, 0, 0, 0, 120594, 0, 0, 70179, + 0, 13167, 66359, 0, 127172, 0, 4969, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2840, 0, + 0, 0, 66887, 65877, 9068, 0, 68194, 0, 0, 12991, 0, 2651, 68016, 983915, + 0, 983264, 70835, 0, 70844, 43648, 0, 0, 0, 0, 0, 0, 64372, 121064, 7458, + 655, 752, 7457, 7456, 7452, 3285, 74894, 11152, 73099, 0, 2391, 93766, + 92271, 671, 7435, 7434, 618, 668, 610, 42800, 7431, 7451, 42801, 640, + 42927, 7448, 7439, 628, 3905, 100742, 0, 0, 0, 67850, 0, 0, 0, 4605, 0, + 100745, 43372, 65945, 72710, 0, 119590, 0, 0, 70495, 987, 71229, 11572, + 0, 0, 10002, 9971, 70673, 0, 0, 0, 0, 0, 0, 11334, 0, 129493, 42364, + 11503, 0, 0, 0, 4627, 70090, 127784, 73473, 0, 74046, 68872, 92562, 0, 0, + 129900, 0, 129812, 0, 0, 42569, 64965, 0, 0, 10516, 129828, 12190, 0, + 42140, 0, 0, 0, 0, 9887, 0, 4000, 7429, 7428, 665, 7424, 0, 0, 7884, 0, + 0, 0, 0, 0, 2509, 0, 120573, 0, 0, 92449, 0, 10690, 0, 119114, 126226, 0, + 0, 73080, 4590, 0, 74440, 0, 0, 0, 1708, 0, 0, 983609, 0, 0, 69226, + 69974, 8813, 0, 1066, 0, 0, 71965, 127921, 70447, 0, 0, 0, 2202, 0, 7516, + 0, 0, 0, 8034, 0, 0, 3631, 110696, 0, 0, 8416, 110694, 71937, 0, 0, + 110692, 74621, 0, 70185, 0, 74850, 0, 0, 12099, 70475, 0, 6252, 0, 0, 0, + 0, 0, 0, 66368, 0, 64956, 7071, 129070, 70457, 128159, 118800, 0, 77757, + 0, 9357, 0, 1773, 0, 125092, 0, 68451, 7745, 9844, 0, 0, 94, 1880, + 120929, 0, 0, 0, 0, 0, 0, 0, 0, 11237, 0, 129173, 0, 0, 0, 1757, 6964, + 42480, 72823, 0, 120806, 0, 0, 7731, 0, 0, 127883, 0, 77777, 43988, + 70423, 74758, 0, 7592, 856, 74299, 0, 0, 0, 78138, 1459, 0, 0, 0, 0, 0, + 1504, 0, 0, 0, 0, 7529, 0, 0, 0, 0, 12594, 0, 0, 336, 0, 7509, 0, 0, 0, + 0, 127882, 0, 0, 0, 65859, 0, 983986, 43062, 124948, 0, 0, 0, 0, 12970, + 0, 0, 0, 0, 0, 0, 0, 119247, 0, 65068, 74291, 122938, 7069, 0, 0, 66977, + 11130, 2087, 0, 0, 0, 0, 126249, 0, 92747, 0, 92614, 2091, 0, 2090, 0, 0, + 7117, 2077, 72281, 0, 77889, 2083, 0, 71196, 0, 0, 71981, 0, 0, 0, 0, + 4165, 8746, 0, 0, 0, 0, 129572, 7066, 77779, 70415, 128135, 0, 0, 7786, + 127766, 2233, 0, 124965, 121122, 2302, 0, 0, 7056, 0, 0, 0, 0, 118639, 0, + 126506, 6920, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 983099, 70438, 2613, 0, 0, + 110734, 0, 74571, 42760, 0, 0, 0, 0, 0, 0, 71843, 0, 0, 70506, 1246, + 74243, 0, 0, 41008, 0, 0, 0, 921, 70048, 0, 12702, 119500, 0, 1566, 8407, + 0, 64653, 0, 74617, 0, 0, 72711, 5313, 951, 0, 0, 0, 0, 77807, 4009, + 70277, 71844, 0, 83123, 0, 72250, 0, 119898, 113760, 0, 0, 0, 0, 70024, + 0, 0, 119892, 0, 0, 0, 119890, 2579, 119906, 3177, 11357, 69224, 0, 0, + 83130, 64734, 0, 9822, 110670, 70471, 110668, 66990, 110666, 66967, 0, 0, + 0, 9851, 983748, 110673, 9059, 110671, 77736, 0, 41687, 129054, 0, 71842, + 70178, 0, 66975, 1777, 67003, 10158, 69767, 122982, 42366, 70444, 0, 0, + 0, 70127, 71955, 5989, 110716, 74636, 126999, 0, 41685, 0, 0, 9769, + 41684, 0, 6225, 111328, 11740, 0, 118840, 0, 2600, 0, 70416, 0, 118720, + 3666, 70420, 127193, 71976, 0, 0, 74542, 69771, 0, 0, 0, 0, 0, 69765, + 77804, 252, 0, 69769, 0, 194616, 0, 69763, 0, 0, 0, 0, 0, 0, 0, 120947, + 0, 129410, 0, 118792, 0, 68323, 125219, 0, 119188, 0, 2177, 121335, 0, 0, + 0, 0, 0, 7764, 983745, 11094, 120825, 119490, 0, 92505, 8298, 0, 0, 0, 0, + 0, 64449, 0, 126650, 0, 0, 0, 70442, 0, 0, 0, 0, 7774, 10607, 0, 0, 0, 0, + 0, 120764, 0, 0, 77746, 0, 3458, 0, 70053, 0, 120995, 0, 2602, 0, 0, 0, + 74907, 0, 0, 0, 0, 172, 0, 4971, 70419, 1889, 7238, 0, 0, 0, 8257, 0, 0, + 78917, 129570, 0, 111342, 71948, 0, 43366, 43363, 9807, 0, 0, 0, 72247, + 64479, 0, 0, 0, 113707, 0, 10900, 121355, 0, 0, 12048, 0, 64292, 0, 0, 0, + 6099, 94084, 129486, 0, 0, 299, 0, 8525, 92356, 0, 0, 111338, 0, 92564, + 3075, 0, 94053, 0, 94050, 0, 0, 70440, 0, 123590, 0, 0, 0, 2581, 11395, + 0, 0, 0, 0, 128584, 0, 0, 129423, 101092, 118855, 0, 0, 0, 7204, 70065, + 2588, 2914, 7011, 55281, 0, 7466, 0, 2883, 42253, 83118, 0, 0, 0, 83116, + 0, 41230, 68299, 0, 43571, 0, 6219, 0, 9980, 41232, 92245, 0, 66036, + 41229, 118967, 0, 120666, 94016, 0, 12711, 0, 0, 74289, 68472, 42857, + 66950, 0, 0, 0, 127306, 119006, 0, 11380, 72348, 0, 0, 0, 0, 0, 0, 0, + 983579, 12722, 0, 922, 0, 0, 983127, 74958, 3218, 120471, 120470, 120469, + 120476, 120475, 8569, 11404, 70450, 120463, 3214, 120461, 120468, 74910, + 3207, 120465, 78729, 78728, 78727, 0, 120460, 7425, 3205, 0, 78737, + 78736, 71729, 43383, 78733, 78732, 2606, 78730, 73897, 0, 11496, 1173, 0, + 0, 129135, 0, 0, 0, 120737, 120953, 120872, 120629, 378, 2610, 0, 0, 0, + 0, 0, 37, 7068, 0, 120480, 70421, 3209, 120477, 0, 120483, 9768, 120481, + 0, 0, 0, 0, 0, 0, 65510, 0, 100625, 0, 0, 0, 100627, 0, 126633, 0, 7060, + 100628, 0, 127752, 0, 69284, 70428, 71463, 0, 7380, 0, 0, 100593, 126997, + 0, 124900, 0, 71465, 121030, 3243, 0, 0, 0, 7050, 0, 70050, 0, 0, 122983, + 71466, 8203, 71102, 68241, 0, 65211, 194599, 983406, 118636, 0, 779, + 125061, 64367, 100906, 69901, 8193, 55279, 0, 0, 0, 7065, 0, 4346, 0, 0, + 908, 0, 0, 8982, 0, 0, 0, 782, 0, 10883, 0, 0, 129396, 65542, 121302, 0, + 68650, 100575, 92244, 0, 0, 111351, 0, 4376, 0, 11787, 12961, 0, 0, + 42888, 0, 100610, 6231, 0, 65713, 100608, 1783, 0, 68238, 0, 0, 0, + 194945, 0, 0, 0, 68653, 0, 983051, 0, 764, 0, 0, 43531, 0, 9033, 0, 0, + 6223, 11042, 0, 0, 0, 0, 0, 917792, 0, 0, 0, 0, 0, 0, 120648, 0, 0, 0, 0, + 0, 0, 71971, 0, 1478, 78923, 11825, 2607, 0, 0, 0, 74543, 0, 0, 100588, + 6132, 0, 0, 0, 70058, 0, 0, 0, 43537, 6761, 10093, 4369, 0, 0, 73735, + 100564, 3947, 110778, 0, 0, 0, 0, 100942, 0, 0, 0, 0, 0, 0, 7686, 0, 0, + 0, 100934, 0, 100944, 66577, 41221, 0, 42281, 0, 74024, 12293, 0, 94014, + 11794, 0, 120893, 1737, 0, 0, 0, 7205, 0, 9335, 12850, 77810, 2272, 7055, + 0, 0, 0, 67751, 0, 124910, 6780, 65067, 0, 1327, 68393, 983574, 0, 41217, + 0, 10018, 0, 0, 0, 100611, 68176, 41219, 0, 4147, 983171, 41216, 983712, + 2616, 70197, 68461, 65234, 0, 0, 0, 0, 119660, 0, 0, 0, 0, 127930, + 119580, 70675, 64943, 2608, 1470, 0, 0, 6227, 0, 0, 74775, 0, 0, 72320, + 101024, 0, 73822, 67456, 0, 0, 0, 0, 10876, 92482, 0, 0, 5834, 0, 6222, + 0, 0, 12086, 0, 1600, 64309, 0, 0, 68883, 127957, 93836, 0, 8882, 0, + 129415, 2570, 0, 0, 194606, 0, 0, 1234, 0, 13115, 110743, 110740, 100923, + 5002, 110739, 41286, 100926, 127019, 0, 0, 0, 0, 0, 0, 0, 41289, 0, 0, + 75051, 41272, 0, 0, 0, 0, 0, 124978, 0, 41279, 0, 0, 0, 11081, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 9637, 7112, 77975, 128984, 0, 10886, 0, 8548, 983860, + 0, 0, 0, 8076, 43048, 8290, 8291, 43051, 92570, 0, 2596, 0, 0, 41293, 0, + 0, 2393, 7058, 66432, 0, 68673, 0, 0, 0, 0, 0, 128558, 0, 0, 0, 0, 0, + 64696, 0, 0, 121086, 74165, 0, 0, 0, 0, 0, 0, 7063, 983183, 64893, 73096, + 0, 68038, 113757, 709, 0, 0, 1876, 0, 0, 120868, 8137, 110662, 67752, + 70850, 100832, 245, 100831, 11456, 41233, 7070, 0, 94046, 6136, 100835, + 0, 100781, 41235, 73474, 0, 100782, 100642, 432, 0, 100784, 65437, 0, + 100647, 128909, 0, 100641, 100649, 0, 100648, 0, 43215, 0, 0, 0, 0, 9052, + 0, 0, 110826, 110827, 74784, 10580, 0, 100845, 0, 64640, 983176, 74455, + 0, 129670, 70035, 0, 12652, 12199, 127030, 0, 2566, 11971, 0, 0, 1065, 0, + 0, 0, 2576, 0, 66819, 0, 984005, 129852, 0, 0, 983050, 983845, 0, 2921, 119104, 0, 5772, 12968, 70055, 0, 0, 0, 2580, 983841, 0, 0, 70032, 0, 0, 0, 128148, 0, 0, 121308, 11346, 0, 12054, 100824, 92426, 101112, 0, 13091, 0, 0, 100821, 100828, 0, 127026, 128334, 74821, 0, 66295, 68037, @@ -29395,13 +29592,13 @@ static const unsigned int code_hash[] = { 100776, 119319, 42356, 42432, 100778, 92823, 0, 0, 0, 78752, 70030, 66914, 0, 0, 7061, 0, 3854, 0, 70020, 68413, 0, 42319, 0, 0, 7067, 0, 0, 0, 0, 0, 0, 127797, 9029, 43543, 92820, 2353, 119316, 0, 100769, 0, - 100768, 983177, 0, 0, 43664, 0, 0, 0, 12277, 0, 78122, 11066, 65233, 0, + 100768, 983178, 0, 0, 43664, 0, 0, 0, 12277, 0, 78122, 11066, 65233, 0, 41224, 0, 0, 3747, 10522, 0, 77722, 1691, 41226, 0, 77724, 0, 41223, 121135, 121299, 697, 0, 121051, 4244, 0, 0, 0, 13121, 128573, 0, 0, 0, 0, 0, 0, 129879, 0, 65816, 68111, 0, 127933, 0, 0, 0, 0, 0, 0, 66895, 74602, 0, 7123, 70038, 5785, 9198, 0, 100810, 0, 7383, 64656, 0, 0, 0, 0, 0, 0, 0, 0, 13122, 0, 191, 70060, 8585, 126610, 64411, 0, 0, 64850, 41072, - 118996, 0, 0, 0, 0, 100754, 127010, 100753, 0, 100756, 683, 396, 0, + 118996, 0, 0, 0, 0, 78907, 127010, 100753, 0, 100756, 683, 396, 0, 100758, 0, 100757, 43058, 100760, 343, 7129, 42680, 0, 0, 0, 0, 0, 100761, 0, 74040, 0, 1724, 0, 119321, 0, 0, 2203, 0, 0, 0, 6592, 0, 983044, 0, 0, 0, 0, 3730, 1778, 0, 0, 128854, 121254, 0, 9018, 0, 0, 0, @@ -29410,269 +29607,272 @@ static const unsigned int code_hash[] = { 101084, 0, 92812, 68800, 42471, 0, 0, 67232, 64304, 42243, 101094, 2583, 0, 77728, 0, 0, 0, 71702, 3855, 0, 0, 0, 0, 0, 0, 0, 92416, 7132, 0, 92743, 0, 64756, 3798, 6578, 0, 0, 92481, 9774, 1275, 0, 119273, 983056, - 0, 120515, 7873, 77719, 0, 0, 0, 77717, 0, 73994, 73992, 0, 0, 0, 41851, - 0, 41846, 126485, 92337, 7633, 41849, 68385, 70726, 3224, 0, 69806, 0, 0, - 0, 1510, 68129, 0, 0, 0, 0, 12109, 0, 0, 0, 0, 0, 78377, 1910, 8671, - 78374, 127118, 70290, 0, 0, 0, 2654, 7893, 0, 0, 0, 72394, 0, 67394, 0, - 118970, 70066, 78372, 78371, 78370, 78369, 78368, 0, 0, 0, 1733, 0, 2568, - 0, 0, 0, 0, 41486, 0, 127839, 7116, 0, 0, 0, 7185, 0, 0, 0, 0, 0, 120575, - 120829, 0, 0, 0, 0, 92489, 0, 0, 0, 70022, 7171, 0, 340, 0, 0, 72980, 0, - 128535, 0, 124979, 94073, 0, 0, 0, 11392, 92509, 0, 0, 0, 0, 0, 0, 0, - 100632, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11948, 0, 6999, 617, 983825, 0, 3675, - 10600, 0, 0, 74616, 2617, 0, 0, 0, 128446, 0, 0, 8630, 194771, 7288, - 983828, 5545, 983818, 2586, 0, 0, 73123, 983851, 0, 0, 0, 70847, 0, 0, 0, - 0, 11195, 71708, 0, 7835, 70040, 0, 0, 92285, 0, 0, 72973, 0, 0, 100852, - 71118, 10029, 983166, 0, 0, 70033, 11359, 0, 0, 194782, 0, 0, 118975, 0, - 0, 3903, 100893, 983858, 0, 120555, 0, 93036, 110645, 0, 983565, 0, 0, - 194773, 0, 0, 0, 127238, 983822, 100919, 0, 100918, 64752, 0, 983138, - 100920, 118642, 43045, 100904, 0, 0, 0, 66394, 7128, 0, 0, 0, 0, 0, - 43044, 2604, 0, 100851, 43046, 121421, 69985, 11768, 43043, 10470, 0, - 7122, 194789, 4390, 454, 41397, 194792, 0, 78762, 0, 0, 120576, 64572, 0, - 68091, 2394, 2575, 113749, 0, 0, 74802, 100913, 129280, 0, 0, 11989, 0, - 0, 128856, 0, 0, 8249, 128172, 0, 0, 6640, 74806, 2598, 513, 0, 6586, - 127521, 129301, 120710, 65008, 0, 0, 92515, 0, 194795, 66755, 0, 126585, - 0, 43152, 78637, 0, 194797, 0, 69893, 6582, 0, 0, 12839, 0, 0, 983218, 0, - 2444, 128759, 66620, 0, 0, 0, 0, 69894, 0, 0, 0, 0, 4238, 11071, 9459, - 68437, 78140, 78139, 0, 10079, 0, 0, 0, 0, 0, 11907, 43928, 0, 0, 0, 0, - 92490, 43929, 0, 43926, 64498, 0, 9506, 6978, 126234, 0, 0, 0, 0, 43934, - 0, 1122, 65564, 0, 71055, 0, 0, 1920, 0, 43930, 827, 0, 0, 0, 0, 6577, - 1304, 64733, 0, 10606, 0, 0, 69503, 9329, 92997, 9239, 74422, 0, 129373, - 1222, 11076, 0, 69229, 43615, 8262, 72280, 64627, 19909, 983554, 72279, - 0, 287, 0, 233, 0, 0, 42816, 0, 0, 65140, 128158, 8830, 0, 0, 10524, - 41175, 125033, 72294, 0, 5296, 0, 127559, 0, 0, 0, 127154, 74858, 6516, - 6515, 6514, 6513, 6512, 0, 70870, 0, 0, 0, 12122, 92462, 100868, 43976, - 1785, 92507, 0, 0, 917771, 5138, 0, 0, 0, 100884, 0, 0, 0, 123564, 0, - 5134, 69980, 322, 4643, 5132, 0, 194942, 0, 5143, 0, 72309, 119628, 0, 0, - 72112, 0, 129964, 0, 0, 0, 0, 0, 0, 73097, 0, 0, 0, 127923, 0, 0, 0, 0, - 0, 3234, 0, 100886, 0, 100889, 118924, 0, 0, 100875, 68231, 74489, - 100872, 120746, 0, 100876, 0, 12714, 0, 64585, 93775, 0, 0, 0, 129428, 0, - 11027, 0, 10059, 0, 64524, 9767, 789, 1749, 0, 66766, 984010, 320, 0, 0, - 0, 3049, 0, 6471, 0, 74479, 9925, 127356, 127355, 127358, 4960, 5549, - 127359, 127346, 127345, 127348, 5418, 127350, 3351, 120892, 127351, - 10610, 5414, 0, 0, 4286, 5421, 127344, 67867, 0, 127794, 0, 6653, 0, 0, - 64510, 0, 41868, 0, 128823, 0, 0, 11613, 70737, 12603, 7131, 11108, 4566, - 0, 0, 0, 0, 0, 124938, 127369, 0, 0, 5200, 0, 129484, 0, 9183, 127361, - 74458, 73075, 395, 5482, 1376, 4349, 0, 0, 5196, 0, 6113, 42009, 5205, 0, - 120530, 0, 118973, 70467, 0, 0, 129691, 0, 9126, 70498, 0, 0, 0, 0, 0, - 3203, 192, 0, 3385, 120785, 128620, 5383, 0, 0, 0, 5738, 69449, 3336, 0, - 5361, 9633, 0, 0, 0, 0, 8581, 0, 1260, 3149, 5359, 12962, 74955, 10441, - 5357, 0, 0, 0, 5364, 0, 11431, 0, 9101, 0, 0, 0, 0, 78378, 121155, 42917, - 0, 129179, 0, 0, 0, 43360, 78385, 78384, 78383, 78382, 78381, 78380, - 78379, 9319, 7097, 0, 127748, 0, 0, 0, 120632, 0, 71205, 0, 0, 0, 1720, - 0, 0, 0, 8622, 0, 70430, 68772, 0, 0, 0, 73084, 0, 0, 11921, 0, 11769, - 68782, 0, 0, 0, 0, 194571, 41586, 0, 0, 0, 3356, 194572, 64709, 194575, - 0, 7134, 0, 78389, 0, 677, 0, 0, 0, 129474, 68747, 0, 68751, 3349, 74125, - 0, 8927, 0, 0, 0, 0, 0, 0, 0, 6806, 0, 8384, 68755, 0, 0, 0, 0, 0, - 124924, 0, 7113, 7586, 0, 10852, 0, 0, 4606, 0, 0, 70084, 0, 0, 1046, - 7124, 121192, 68753, 0, 5171, 65539, 0, 0, 0, 42394, 0, 74849, 127823, 0, - 5169, 11935, 0, 0, 3175, 0, 1537, 0, 5176, 8905, 4136, 4871, 78388, 0, 0, - 0, 0, 1128, 0, 0, 0, 74066, 0, 73069, 0, 0, 3662, 113767, 3378, 0, 71298, - 0, 127995, 6320, 71302, 983162, 10163, 0, 5165, 5126, 0, 66902, 41389, 0, - 71368, 3374, 113740, 0, 7119, 0, 0, 3507, 0, 7629, 6848, 19925, 0, 68463, - 183, 127208, 127209, 70811, 10636, 0, 128465, 2250, 0, 78772, 0, 0, 0, - 78768, 6580, 4332, 123584, 0, 10726, 66686, 127203, 127204, 127205, - 127206, 0, 70813, 127201, 127202, 0, 0, 5448, 41058, 5446, 0, 0, 71369, - 5442, 7135, 0, 0, 5451, 0, 78470, 0, 0, 0, 0, 11243, 10859, 65867, 10345, - 10409, 123606, 0, 0, 129077, 42181, 0, 0, 2060, 0, 7111, 0, 0, 0, 0, - 72741, 0, 205, 93784, 72346, 93771, 0, 9862, 6588, 43257, 0, 0, 0, 5505, - 93789, 5503, 65376, 0, 7125, 9819, 0, 0, 0, 5507, 12044, 194567, 0, 0, 0, - 7109, 0, 0, 7911, 10329, 10393, 8991, 125104, 69778, 11133, 129619, 8550, - 0, 5592, 2919, 0, 0, 5595, 0, 0, 4367, 0, 0, 5591, 41060, 5594, 0, 0, - 13142, 5590, 0, 72274, 118909, 75069, 123586, 9731, 71225, 64633, 0, 0, - 71217, 121361, 71227, 0, 0, 0, 0, 7137, 0, 0, 0, 10551, 10710, 0, 0, 0, - 120570, 0, 92364, 9936, 3348, 0, 0, 1444, 119058, 0, 74206, 983106, 0, - 1442, 129080, 0, 120959, 0, 0, 0, 0, 0, 0, 0, 3334, 73068, 118803, 0, 0, - 71219, 69770, 1651, 0, 8861, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43626, 0, - 0, 3344, 0, 0, 12920, 0, 0, 0, 71853, 3438, 128711, 0, 0, 0, 0, 129068, - 0, 0, 65117, 0, 0, 0, 0, 66366, 128915, 0, 69772, 0, 0, 0, 0, 4973, 8784, - 0, 0, 0, 0, 0, 0, 0, 125198, 983285, 0, 0, 66413, 0, 0, 0, 0, 0, 9243, - 2464, 0, 0, 3372, 0, 0, 0, 70364, 7121, 0, 0, 0, 92163, 0, 0, 0, 0, 0, 0, - 0, 3354, 0, 0, 983103, 101233, 0, 3876, 0, 127983, 6858, 43696, 43380, 0, - 74240, 0, 0, 0, 983985, 75074, 6589, 0, 0, 120993, 0, 0, 69609, 0, 66962, - 0, 10630, 71960, 0, 121293, 0, 0, 121287, 917942, 121337, 121215, 0, 0, - 0, 0, 0, 917940, 3366, 0, 917938, 0, 0, 0, 71062, 0, 121197, 0, 6925, - 71856, 0, 917929, 66780, 66274, 0, 72768, 0, 917930, 129482, 11138, 0, - 6754, 7118, 0, 64672, 65296, 0, 118957, 0, 0, 12296, 68457, 121320, 0, - 5282, 0, 72278, 0, 0, 0, 0, 0, 0, 66355, 0, 0, 68073, 64343, 0, 92744, - 195058, 195029, 0, 0, 195056, 195027, 0, 0, 128814, 195025, 6584, 195026, - 10657, 0, 74544, 0, 1200, 12243, 92269, 195062, 0, 129300, 11545, 0, - 120493, 3343, 4424, 11047, 0, 69863, 3896, 0, 0, 2947, 0, 0, 42221, 0, - 68139, 13059, 7942, 0, 3381, 0, 0, 0, 0, 0, 0, 78235, 0, 0, 0, 7044, - 65800, 78236, 0, 7045, 7175, 7047, 127884, 11791, 0, 0, 3881, 0, 0, - 127395, 0, 0, 67075, 7106, 72000, 0, 0, 74211, 41897, 92513, 0, 73040, - 66745, 0, 0, 0, 0, 121245, 0, 64354, 73083, 8777, 0, 129108, 8884, 2385, - 73067, 92450, 0, 0, 0, 42027, 12114, 0, 0, 64936, 0, 0, 0, 0, 0, 126605, - 0, 0, 0, 0, 73064, 0, 0, 0, 0, 0, 0, 0, 73057, 0, 123587, 0, 0, 0, 0, 0, - 70803, 0, 0, 124953, 0, 0, 0, 7048, 11087, 123600, 92536, 7043, 9600, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 42050, 0, 55289, 0, 0, 657, 0, 195054, 4461, - 92903, 0, 92904, 126490, 0, 4468, 0, 0, 0, 4456, 73070, 10720, 123588, 0, - 123544, 0, 0, 0, 195046, 260, 7714, 74163, 2045, 0, 65064, 4466, 0, 0, - 128087, 0, 41403, 0, 0, 0, 41406, 120692, 0, 0, 73939, 0, 0, 0, 41404, - 1165, 0, 4451, 13087, 0, 11258, 0, 73855, 0, 43014, 5439, 12061, 74586, - 3375, 128869, 0, 0, 0, 0, 0, 0, 0, 113823, 67078, 0, 67079, 0, 0, 0, 0, - 68459, 0, 0, 0, 0, 0, 0, 7280, 0, 0, 0, 4868, 8297, 0, 0, 42791, 0, - 66737, 66739, 0, 0, 5182, 0, 0, 72764, 0, 4465, 0, 12135, 0, 4464, 0, 0, - 977, 4458, 43827, 0, 0, 120888, 0, 344, 67463, 0, 0, 0, 0, 92240, 0, - 64443, 126995, 73078, 129525, 0, 0, 0, 43026, 7612, 119591, 64413, 0, 0, - 0, 0, 0, 0, 0, 0, 123622, 0, 119160, 10204, 127947, 73063, 0, 0, 127236, - 0, 68746, 0, 8852, 0, 0, 0, 0, 128427, 123597, 7932, 92858, 128463, 0, 0, - 0, 0, 0, 0, 0, 74893, 9567, 0, 73095, 0, 8650, 0, 0, 0, 69900, 118872, 0, - 70868, 0, 6719, 0, 0, 0, 72836, 0, 0, 118991, 0, 123594, 73815, 4420, 0, - 10583, 7760, 0, 0, 128752, 71711, 0, 128407, 0, 0, 77809, 9066, 0, 74795, - 0, 0, 0, 0, 0, 0, 0, 42825, 41854, 5304, 0, 124942, 6919, 8619, 0, 10038, - 66454, 9592, 129049, 0, 0, 110771, 110777, 110772, 0, 0, 0, 0, 0, 78498, - 110773, 43624, 0, 7779, 0, 0, 9479, 78493, 0, 66956, 2224, 0, 0, 0, 0, 0, - 42378, 3368, 0, 66804, 7697, 69237, 0, 2030, 0, 68236, 8370, 0, 66953, 0, - 0, 983352, 127903, 983350, 983349, 5174, 42831, 983346, 70439, 983344, - 8881, 119047, 0, 70433, 0, 0, 0, 0, 0, 0, 9576, 0, 3347, 4160, 5154, 0, - 3794, 0, 0, 0, 0, 0, 127916, 73073, 8381, 4572, 69564, 126101, 0, 0, 0, - 0, 0, 0, 0, 92283, 0, 0, 5799, 983341, 70100, 983339, 983338, 983337, - 43031, 64425, 65128, 983333, 0, 73059, 0, 68616, 0, 0, 0, 0, 119826, 0, - 0, 123604, 0, 0, 283, 68665, 0, 532, 0, 0, 983827, 0, 0, 3370, 73077, - 119132, 5443, 71431, 0, 118630, 0, 0, 0, 2298, 0, 0, 0, 983332, 983331, - 983330, 983329, 7144, 983327, 119600, 983325, 983324, 983323, 0, 78816, - 128833, 0, 0, 0, 0, 0, 0, 0, 0, 73088, 0, 123592, 983952, 0, 0, 0, 0, - 5186, 7360, 127837, 0, 12108, 0, 65124, 0, 0, 0, 6326, 43344, 0, 0, - 42562, 0, 0, 0, 983322, 65495, 983320, 101066, 983318, 101065, 983316, - 65490, 983314, 125034, 0, 101070, 0, 55245, 128927, 1630, 128232, 65483, - 0, 0, 0, 65476, 0, 0, 119214, 9283, 10183, 0, 0, 65499, 0, 64593, 66758, - 3376, 0, 0, 0, 101077, 43872, 12940, 0, 0, 78587, 101078, 5957, 0, 8926, - 983312, 983311, 983310, 10745, 10174, 983307, 113793, 983305, 983304, - 983303, 0, 123593, 5056, 0, 0, 0, 120773, 0, 9812, 0, 4460, 127792, - 73066, 0, 128038, 0, 123608, 0, 64278, 0, 0, 0, 66760, 0, 0, 70122, 0, 0, - 917627, 0, 73823, 101071, 127922, 2276, 0, 42579, 0, 983302, 983301, - 127831, 983299, 983298, 983297, 983296, 983295, 74207, 121255, 10482, - 12863, 73002, 2412, 0, 9522, 0, 983906, 120674, 101059, 3384, 101058, - 10702, 830, 0, 128166, 0, 8451, 0, 0, 121380, 69739, 128957, 0, 0, 0, 0, - 0, 0, 0, 4243, 92454, 73093, 0, 129705, 4441, 0, 983292, 983291, 66618, - 983289, 125141, 411, 983286, 68068, 983284, 4056, 983913, 0, 92666, 0, - 983916, 983968, 0, 0, 3364, 42265, 64437, 129635, 118816, 0, 9684, 216, - 0, 1401, 0, 0, 0, 122643, 0, 0, 0, 11126, 5768, 3191, 0, 0, 0, 0, 0, 0, - 65895, 0, 0, 3338, 73935, 983280, 983279, 983278, 129605, 983276, 983275, - 2794, 8807, 0, 0, 110720, 0, 8312, 0, 110718, 11953, 11662, 0, 0, 0, 0, - 9534, 66767, 129040, 0, 11113, 0, 0, 73082, 0, 981, 0, 4330, 119244, - 120536, 1824, 0, 0, 7034, 41683, 123166, 0, 73754, 0, 0, 74478, 128259, - 983270, 983257, 983256, 43831, 983254, 66752, 983252, 983251, 0, 70288, - 65343, 0, 0, 43225, 0, 0, 0, 0, 126129, 0, 128608, 0, 0, 0, 120726, 0, - 983852, 11746, 0, 5216, 0, 0, 0, 0, 3468, 127149, 9230, 65942, 0, 0, - 5803, 120677, 0, 0, 13124, 0, 0, 0, 42843, 0, 0, 0, 66753, 11739, 128318, - 0, 128444, 0, 0, 0, 12448, 0, 121441, 13057, 73852, 124994, 0, 0, 0, 0, - 0, 0, 126612, 0, 68903, 0, 129470, 0, 917992, 0, 0, 0, 0, 0, 0, 0, 92457, - 0, 0, 0, 0, 0, 0, 0, 0, 125078, 0, 0, 0, 10970, 92208, 0, 0, 0, 19944, 0, - 9009, 8551, 0, 0, 0, 7575, 67484, 0, 128899, 0, 129609, 78847, 0, 78846, - 0, 0, 69256, 0, 0, 0, 0, 9775, 100682, 129191, 119052, 68629, 194703, 0, - 0, 78850, 92880, 0, 0, 0, 0, 0, 0, 0, 71273, 6184, 41540, 3303, 66182, - 11786, 66180, 66203, 3422, 0, 68290, 43007, 4478, 66178, 0, 0, 126216, 0, - 4477, 0, 69608, 66184, 66183, 66204, 66194, 0, 66198, 41880, 66188, - 66197, 78148, 66195, 66190, 66191, 41111, 66189, 73788, 7788, 0, 0, 0, 0, - 0, 2221, 78163, 6535, 78161, 78162, 430, 78160, 78156, 78158, 0, 0, 4945, - 0, 4950, 0, 78165, 0, 67118, 0, 5964, 12908, 0, 0, 0, 74477, 83390, 0, - 4949, 0, 443, 0, 4944, 5467, 119603, 983262, 0, 9364, 0, 119148, 4946, 0, - 3788, 126106, 983718, 0, 120847, 129858, 74441, 0, 0, 12072, 92248, 0, - 983708, 0, 128676, 12091, 0, 0, 0, 4673, 0, 4678, 0, 0, 65059, 43860, 0, - 0, 0, 128151, 1199, 0, 8356, 0, 0, 4677, 0, 0, 0, 2192, 78173, 78175, - 78171, 78172, 72255, 78170, 78166, 4674, 128450, 194944, 0, 124970, 0, - 119579, 0, 129919, 1855, 0, 0, 127806, 0, 0, 68912, 72323, 0, 12988, - 121000, 0, 0, 0, 4654, 6840, 983429, 0, 73993, 0, 4649, 65209, 983908, - 93839, 4648, 122635, 121169, 983433, 126231, 983424, 66846, 7828, 4650, - 983423, 72879, 0, 4653, 7822, 0, 0, 43187, 0, 983586, 6821, 0, 0, 0, 0, - 0, 0, 66756, 983430, 0, 0, 0, 8547, 0, 42165, 0, 119228, 6836, 0, 0, - 4662, 0, 0, 0, 9146, 599, 4657, 0, 120754, 0, 4656, 0, 0, 7811, 40994, 0, - 6414, 5967, 4658, 3725, 0, 5814, 4661, 127760, 194961, 0, 0, 64904, 0, - 10833, 0, 0, 4867, 128717, 0, 11459, 3054, 0, 40996, 0, 7605, 4622, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 19926, 0, 0, 65307, 4617, 0, 0, 0, 4616, 10518, 0, - 127160, 0, 5958, 0, 983446, 4618, 0, 983439, 120675, 4621, 0, 983441, - 522, 125213, 11139, 65803, 194972, 0, 12201, 6135, 121060, 983422, 0, - 983093, 0, 983420, 983413, 983434, 4638, 983418, 0, 78242, 5965, 78240, - 66569, 68646, 0, 983452, 74392, 5335, 0, 0, 4633, 0, 119045, 983448, - 4632, 0, 5542, 5333, 0, 983425, 68648, 5331, 4634, 0, 92870, 5338, 4637, - 0, 0, 43477, 0, 42493, 0, 42361, 0, 0, 73853, 0, 0, 0, 74204, 11343, 0, - 10358, 10422, 4758, 0, 1608, 5252, 0, 0, 4753, 78239, 11344, 78237, 0, - 5231, 74384, 0, 0, 118676, 0, 0, 0, 0, 71991, 5229, 4757, 0, 0, 5227, - 4752, 0, 65235, 5234, 73044, 0, 0, 0, 0, 0, 0, 7460, 0, 917936, 0, 0, - 74760, 65189, 0, 92230, 0, 0, 5574, 128980, 0, 65139, 5577, 0, 0, 118871, - 68641, 8965, 7635, 0, 5316, 70021, 5314, 74555, 5572, 0, 5312, 0, 5525, - 5330, 5319, 68292, 0, 65066, 0, 0, 983493, 0, 0, 127851, 0, 74851, 0, 0, - 64609, 0, 0, 128593, 0, 129339, 0, 8632, 0, 0, 0, 195012, 5735, 195013, - 1692, 70151, 4610, 122653, 4305, 0, 4609, 43478, 4614, 77753, 118534, - 5287, 5309, 5285, 0, 5961, 4647, 5283, 10743, 0, 71889, 601, 4613, 77759, - 0, 9208, 4608, 74044, 71107, 5190, 0, 0, 92410, 43965, 2265, 0, 0, 0, 0, - 0, 0, 0, 129953, 0, 0, 5960, 0, 8992, 65293, 0, 1782, 0, 0, 0, 0, 0, - 5501, 0, 42508, 69759, 120749, 129120, 0, 195023, 77740, 43900, 77741, 0, + 0, 120515, 7873, 77719, 129754, 0, 0, 77717, 0, 73994, 73992, 0, 0, 0, + 41851, 0, 41846, 126485, 92337, 7633, 41849, 68385, 70726, 3224, 0, + 69806, 0, 0, 0, 1510, 68129, 0, 0, 0, 0, 12109, 0, 0, 0, 0, 0, 78377, + 1910, 8671, 78374, 127118, 70290, 0, 0, 0, 2654, 7893, 0, 0, 0, 72394, 0, + 67394, 0, 118970, 70066, 78372, 78371, 78370, 78369, 78368, 0, 0, 0, + 1733, 0, 2568, 0, 0, 0, 0, 41486, 0, 127839, 7116, 0, 0, 0, 7185, 0, 0, + 0, 0, 0, 120575, 120829, 0, 0, 0, 0, 92489, 0, 0, 0, 70022, 7171, 0, 340, + 0, 0, 72980, 0, 128535, 0, 124979, 94073, 0, 0, 0, 11392, 92509, 0, 0, 0, + 0, 0, 0, 0, 100632, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11948, 0, 6999, 617, + 983825, 0, 3675, 10600, 0, 0, 74616, 2617, 0, 0, 0, 128446, 0, 0, 8630, + 194771, 7288, 983828, 5545, 983818, 2586, 0, 0, 73123, 983851, 0, 0, 0, + 70847, 0, 0, 0, 0, 11195, 71708, 0, 7835, 70040, 0, 0, 92285, 0, 0, + 72973, 0, 0, 100852, 71118, 10029, 983167, 0, 0, 70033, 11359, 0, 0, + 194782, 0, 0, 118975, 0, 0, 3903, 100893, 983858, 0, 120555, 0, 93036, + 110645, 0, 983565, 0, 0, 194773, 0, 0, 0, 127238, 983822, 100919, 0, + 100918, 64752, 0, 983139, 100920, 118642, 43045, 100904, 0, 0, 0, 66394, + 7128, 0, 0, 0, 0, 0, 43044, 2604, 0, 100851, 43046, 121421, 69985, 11768, + 43043, 10470, 0, 7122, 194789, 4390, 454, 41397, 194792, 0, 78762, 0, 0, + 120576, 64572, 0, 68091, 2394, 2575, 113749, 0, 0, 74802, 100913, 129280, + 0, 0, 11989, 0, 0, 128856, 0, 0, 8249, 128172, 0, 0, 6640, 74806, 2598, + 513, 0, 6586, 127521, 129301, 120710, 65008, 0, 0, 92515, 0, 194795, + 66755, 0, 126585, 0, 43152, 78637, 0, 194797, 0, 69893, 6582, 0, 0, + 12839, 0, 78906, 983221, 0, 2444, 119489, 66620, 0, 0, 0, 0, 69894, 0, 0, + 0, 0, 4238, 11071, 9459, 68437, 78140, 78139, 0, 10079, 128985, 0, 0, 0, + 0, 11907, 43928, 0, 0, 0, 0, 92490, 43929, 0, 43926, 64498, 0, 9506, + 6978, 126234, 0, 0, 0, 0, 43934, 0, 1122, 65564, 0, 71055, 0, 0, 1920, 0, + 43930, 827, 0, 0, 0, 0, 6577, 1304, 64733, 0, 10606, 0, 0, 69503, 9329, + 92997, 9239, 74422, 0, 129373, 1222, 11076, 0, 69229, 43615, 8262, 72280, + 64627, 19909, 983554, 72279, 0, 287, 0, 233, 0, 0, 42816, 0, 0, 65140, + 128158, 8830, 0, 0, 10524, 41175, 125033, 72294, 0, 5296, 0, 127559, 0, + 0, 0, 127154, 74858, 6516, 6515, 6514, 6513, 6512, 0, 70870, 0, 0, 0, + 12122, 92462, 100868, 43976, 1785, 92507, 0, 0, 917771, 5138, 0, 0, 0, + 100884, 0, 0, 0, 123564, 0, 5134, 69980, 322, 4643, 5132, 0, 194942, 0, + 5143, 0, 72309, 119628, 0, 0, 72112, 0, 129964, 0, 0, 0, 0, 0, 0, 73097, + 0, 0, 0, 127923, 0, 0, 0, 0, 0, 3234, 0, 100886, 0, 100889, 118924, 0, 0, + 100875, 68231, 74489, 100872, 120746, 0, 100876, 0, 12714, 0, 64585, + 93775, 0, 0, 0, 129428, 0, 11027, 0, 10059, 0, 64524, 9767, 789, 1749, 0, + 66766, 984010, 320, 0, 0, 0, 3049, 0, 6471, 0, 74479, 9925, 127356, + 127355, 127358, 4960, 5549, 127359, 127346, 127345, 127348, 5418, 127350, + 3351, 120892, 127351, 10610, 5414, 93789, 0, 4286, 5421, 127344, 67867, + 0, 127794, 0, 6653, 122958, 0, 64510, 0, 41868, 0, 128823, 0, 0, 11613, + 70737, 12603, 7131, 11108, 4566, 0, 0, 0, 0, 0, 124938, 127369, 0, 0, + 5200, 0, 129484, 0, 9183, 127361, 74458, 73075, 395, 5482, 1376, 4349, 0, + 0, 5196, 0, 6113, 42009, 5205, 0, 120530, 0, 118973, 70467, 0, 0, 129691, + 0, 9126, 70498, 0, 0, 0, 0, 0, 3203, 192, 0, 3385, 120785, 128620, 5383, + 0, 0, 0, 5738, 69449, 3336, 0, 5361, 9633, 0, 0, 0, 0, 8581, 0, 1260, + 3149, 5359, 12962, 74955, 10441, 5357, 0, 0, 0, 5364, 0, 11431, 0, 9101, + 0, 0, 0, 0, 78378, 121155, 42917, 0, 129179, 0, 0, 0, 43360, 78385, + 78384, 78383, 78382, 78381, 78380, 78379, 9319, 7097, 0, 127748, 0, 0, 0, + 120632, 0, 71205, 0, 0, 0, 1720, 0, 0, 0, 8622, 0, 70430, 68772, 0, 0, 0, + 73084, 0, 0, 11921, 0, 11769, 68782, 0, 0, 0, 0, 194571, 41586, 0, 0, 0, + 3356, 194572, 64709, 194575, 0, 7134, 0, 78389, 0, 677, 0, 0, 0, 129474, + 68747, 0, 68751, 3349, 74125, 0, 8927, 0, 0, 0, 0, 0, 0, 0, 6806, 0, + 8384, 68755, 0, 0, 0, 0, 0, 124924, 0, 7113, 7586, 0, 10852, 0, 0, 4606, + 0, 0, 70084, 0, 0, 1046, 7124, 121192, 68753, 0, 5171, 65539, 0, 0, 0, + 42394, 0, 74849, 127823, 0, 5169, 11935, 0, 0, 3175, 0, 1537, 0, 5176, + 8905, 4136, 4871, 78388, 0, 0, 122661, 0, 1128, 0, 0, 0, 74066, 0, 73069, + 0, 0, 3662, 113767, 3378, 0, 71298, 0, 127995, 6320, 71302, 983163, + 10163, 0, 5165, 5126, 0, 66902, 41389, 0, 71368, 3374, 113740, 0, 7119, + 0, 0, 3507, 0, 7629, 6848, 19925, 0, 68463, 183, 127208, 127209, 70811, + 10636, 0, 128465, 2250, 0, 78772, 0, 0, 0, 78768, 6580, 4332, 123584, 0, + 10726, 66686, 127203, 127204, 127205, 127206, 0, 70813, 127201, 127202, + 0, 0, 5448, 41058, 5446, 0, 0, 71369, 5442, 7135, 0, 0, 5451, 0, 78470, + 0, 0, 0, 0, 11243, 10859, 65867, 10345, 10409, 123606, 0, 0, 129077, + 42181, 0, 0, 2060, 0, 7111, 0, 0, 0, 0, 72741, 0, 205, 93784, 72346, + 93771, 0, 9862, 6588, 43257, 0, 0, 0, 5505, 93760, 5503, 65376, 0, 7125, + 9819, 0, 0, 0, 5507, 12044, 194567, 0, 0, 0, 7109, 0, 0, 7911, 10329, + 10393, 8991, 125104, 69778, 11133, 129619, 8550, 0, 5592, 2919, 0, 0, + 5595, 0, 0, 4367, 0, 0, 5591, 41060, 5594, 0, 0, 13142, 5590, 0, 72274, + 118909, 75069, 123586, 9731, 71225, 64633, 0, 0, 71217, 121361, 71227, 0, + 0, 0, 0, 7137, 0, 0, 0, 10551, 10710, 0, 0, 0, 120570, 0, 92364, 9936, + 3348, 0, 0, 1444, 119058, 0, 74206, 983107, 0, 1442, 129080, 0, 120959, + 0, 0, 0, 0, 0, 0, 0, 3334, 73068, 118803, 0, 0, 71219, 69770, 1651, 0, + 8861, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43626, 0, 0, 3344, 0, 0, 12920, 0, + 0, 0, 71853, 3438, 128711, 0, 0, 0, 0, 129068, 0, 0, 65117, 0, 0, 0, 0, + 66366, 128915, 0, 69772, 0, 0, 0, 0, 4973, 8784, 0, 0, 0, 0, 0, 0, 0, + 125198, 983288, 0, 0, 66413, 0, 0, 0, 0, 122663, 9243, 2464, 0, 0, 3372, + 0, 0, 0, 70364, 7121, 0, 0, 0, 92163, 0, 0, 0, 0, 0, 0, 0, 3354, 0, 0, + 983104, 101233, 0, 3876, 0, 127983, 6858, 43696, 43380, 0, 74240, 0, 0, + 0, 983985, 75074, 6589, 0, 0, 120993, 0, 0, 69609, 0, 66962, 0, 10630, + 71960, 0, 121293, 0, 0, 121287, 917942, 121337, 121215, 0, 0, 0, 0, 0, + 917940, 3366, 0, 917938, 0, 0, 0, 71062, 0, 121197, 0, 6925, 71856, 0, + 917929, 66780, 66274, 0, 72768, 0, 917930, 129482, 11138, 0, 6754, 7118, + 0, 64672, 65296, 0, 118957, 0, 0, 12296, 68457, 121320, 0, 5282, 0, + 72278, 0, 0, 0, 0, 0, 0, 66355, 0, 0, 68073, 64343, 0, 92744, 195058, + 195029, 0, 0, 195056, 195027, 0, 0, 128814, 195025, 6584, 195026, 10657, + 0, 74544, 0, 1200, 12243, 92269, 195062, 0, 129300, 11545, 0, 120493, + 3343, 4424, 11047, 0, 69863, 3896, 0, 0, 2947, 0, 0, 42221, 0, 68139, + 13059, 7942, 0, 3381, 0, 0, 0, 0, 0, 0, 78235, 0, 0, 0, 7044, 65800, + 78236, 0, 7045, 7175, 7047, 127884, 11791, 0, 0, 3881, 0, 0, 127395, 0, + 0, 67075, 7106, 72000, 0, 0, 74211, 41897, 92513, 0, 73040, 66745, 0, 0, + 0, 0, 121245, 0, 64354, 73083, 8777, 0, 129108, 8884, 2385, 73067, 92450, + 0, 0, 0, 42027, 12114, 0, 0, 64936, 0, 0, 0, 0, 0, 126605, 0, 0, 0, 0, + 73064, 0, 0, 0, 0, 0, 0, 0, 73057, 0, 123587, 0, 0, 0, 0, 0, 70803, 0, 0, + 124953, 0, 0, 0, 7048, 11087, 123600, 92536, 7043, 9600, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 42050, 0, 55289, 0, 0, 657, 0, 195054, 4461, 92903, 0, 92904, + 126490, 0, 4468, 0, 0, 0, 4456, 73070, 10720, 123588, 0, 123544, 0, 0, 0, + 195046, 260, 7714, 74163, 2045, 0, 65064, 4466, 0, 0, 128087, 129768, + 41403, 0, 0, 0, 41406, 120692, 0, 0, 73939, 0, 0, 0, 41404, 1165, 0, + 4451, 13087, 0, 11258, 0, 73855, 0, 43014, 5439, 12061, 74586, 3375, + 128869, 0, 0, 0, 0, 0, 0, 0, 113823, 67078, 0, 67079, 0, 0, 0, 0, 68459, + 0, 0, 0, 0, 0, 0, 7280, 0, 0, 0, 4868, 8297, 0, 0, 42791, 0, 66737, + 66739, 0, 0, 5182, 0, 0, 72764, 0, 4465, 0, 12135, 0, 4464, 0, 0, 977, + 4458, 43827, 0, 0, 120888, 0, 344, 67463, 0, 0, 0, 0, 92240, 0, 64443, + 126995, 73078, 129525, 0, 0, 0, 43026, 7612, 119591, 64413, 0, 0, 0, 0, + 0, 0, 0, 0, 123622, 0, 119160, 10204, 127947, 73063, 0, 0, 127236, 0, + 68746, 0, 8852, 0, 0, 0, 0, 128427, 123597, 7932, 92858, 128463, 0, 0, + 72453, 0, 0, 0, 0, 74893, 9567, 0, 73095, 0, 8650, 0, 0, 0, 69900, + 118872, 0, 70868, 0, 6719, 0, 0, 0, 72836, 0, 0, 118991, 0, 123594, + 73815, 4420, 0, 10583, 7760, 0, 0, 128752, 71711, 0, 128407, 0, 0, 77809, + 9066, 0, 74795, 0, 0, 0, 0, 0, 0, 0, 42825, 41854, 5304, 0, 124942, 6919, + 8619, 0, 10038, 66454, 9592, 129049, 0, 0, 110771, 110777, 110772, 0, 0, + 0, 0, 0, 78498, 110773, 43624, 0, 7779, 0, 0, 9479, 78493, 0, 66956, + 2224, 0, 0, 0, 0, 0, 42378, 3368, 0, 66804, 7697, 69237, 0, 2030, 0, + 68236, 8370, 0, 66953, 0, 0, 983355, 127903, 983353, 983352, 5174, 42831, + 983349, 70439, 983347, 8881, 119047, 0, 70433, 0, 0, 0, 0, 0, 0, 9576, 0, + 3347, 4160, 5154, 0, 3794, 0, 0, 0, 0, 0, 127916, 73073, 8381, 4572, + 69564, 126101, 0, 0, 0, 0, 0, 0, 0, 92283, 0, 0, 5799, 983344, 70100, + 983342, 983341, 983340, 43031, 64425, 65128, 983336, 0, 73059, 0, 68616, + 0, 0, 0, 0, 119826, 0, 0, 123604, 0, 0, 283, 68665, 0, 532, 0, 0, 983827, + 0, 0, 3370, 73077, 119132, 5443, 71431, 0, 118630, 0, 0, 0, 2298, 0, 0, + 0, 983335, 983334, 983333, 983332, 7144, 983330, 119600, 983328, 983327, + 983326, 0, 78816, 128833, 0, 0, 0, 0, 0, 0, 0, 0, 73088, 0, 123592, + 983952, 0, 0, 0, 0, 5186, 7360, 127837, 0, 12108, 0, 65124, 0, 0, 0, + 6326, 43344, 0, 0, 42562, 0, 0, 0, 983325, 65495, 983323, 101066, 983321, + 101065, 983319, 65490, 983317, 125034, 0, 101070, 127178, 55245, 128927, + 1630, 128232, 65483, 0, 0, 0, 65476, 0, 0, 119214, 9283, 10183, 0, 0, + 65499, 0, 64593, 66758, 3376, 0, 0, 0, 101077, 43872, 12940, 0, 0, 78587, + 101078, 5957, 0, 8926, 983315, 983314, 983313, 10745, 10174, 983310, + 113793, 983308, 983307, 983306, 0, 123593, 5056, 0, 0, 0, 120773, 0, + 9812, 0, 4460, 127792, 73066, 0, 128038, 0, 123608, 0, 64278, 0, 0, 0, + 66760, 0, 0, 70122, 0, 0, 917627, 0, 73823, 101071, 127922, 2276, 0, + 42579, 0, 983305, 983304, 127831, 983302, 983301, 983300, 983299, 983298, + 74207, 121255, 10482, 12863, 73002, 2412, 0, 9522, 0, 983906, 120674, + 101059, 3384, 101058, 10702, 830, 0, 128166, 0, 8451, 0, 0, 121380, + 69739, 128957, 0, 0, 0, 0, 0, 0, 0, 4243, 92454, 73093, 0, 129705, 4441, + 0, 983295, 983294, 66618, 983292, 125141, 411, 983289, 68068, 983287, + 4056, 983913, 0, 92666, 0, 983916, 983968, 0, 0, 3364, 42265, 64437, + 129635, 118816, 0, 9684, 216, 0, 1401, 0, 0, 0, 122643, 0, 0, 0, 11126, + 5768, 3191, 0, 0, 0, 0, 0, 0, 65895, 0, 0, 3338, 73935, 983283, 983282, + 983281, 129605, 983279, 983278, 2794, 8807, 0, 0, 110720, 0, 8312, 0, + 110718, 11953, 11662, 0, 0, 0, 0, 9534, 66767, 129040, 0, 11113, 0, 0, + 73082, 0, 981, 0, 4330, 119244, 120536, 1824, 0, 0, 7034, 41683, 123166, + 0, 73754, 0, 0, 74478, 128259, 983273, 983260, 983259, 43831, 983257, + 66752, 983255, 983254, 0, 70288, 65343, 0, 0, 43225, 0, 0, 0, 0, 126129, + 0, 128608, 0, 0, 0, 120726, 0, 983852, 11746, 0, 5216, 0, 0, 0, 0, 3468, + 127149, 9230, 65942, 0, 0, 5803, 120677, 0, 0, 13124, 0, 0, 0, 42843, 0, + 0, 0, 66753, 11739, 128318, 0, 128444, 0, 0, 0, 12448, 0, 121441, 13057, + 73852, 124994, 0, 0, 0, 0, 0, 0, 126612, 0, 68903, 0, 129470, 0, 917992, + 0, 0, 0, 0, 0, 0, 0, 92457, 0, 0, 0, 0, 0, 0, 0, 0, 125078, 0, 0, 0, + 10970, 92208, 0, 0, 0, 19944, 0, 9009, 8551, 0, 0, 0, 7575, 67484, 0, + 128899, 0, 129609, 78847, 0, 78846, 73502, 0, 69256, 0, 0, 0, 0, 9775, + 100682, 129191, 119052, 68629, 194703, 0, 0, 78850, 92880, 0, 0, 0, 0, 0, + 0, 0, 71273, 6184, 41540, 3303, 66182, 11786, 66180, 66203, 3422, 0, + 68290, 43007, 4478, 66178, 0, 0, 126216, 0, 4477, 0, 69608, 66184, 66183, + 66204, 66194, 0, 66198, 41880, 66188, 66197, 78148, 66195, 66190, 66191, + 41111, 66189, 73788, 7788, 0, 0, 0, 0, 0, 2221, 78163, 6535, 78161, + 78162, 430, 78160, 78156, 78158, 0, 0, 4945, 0, 4950, 0, 78165, 0, 67118, + 0, 5964, 12908, 0, 0, 0, 74477, 83390, 0, 4949, 0, 443, 0, 4944, 5467, + 119603, 983265, 0, 9364, 0, 119148, 4946, 0, 3788, 126106, 983718, 0, + 120847, 129858, 74441, 0, 0, 12072, 92248, 0, 983708, 0, 128676, 12091, + 0, 0, 0, 4673, 0, 4678, 0, 0, 65059, 43860, 0, 0, 0, 128151, 1199, 0, + 8356, 0, 0, 4677, 0, 0, 0, 2192, 78173, 78175, 78171, 78172, 72255, + 78170, 78166, 4674, 128450, 194944, 0, 124970, 0, 119579, 0, 129919, + 1855, 0, 0, 127806, 0, 0, 68912, 72323, 0, 12988, 121000, 0, 0, 0, 4654, + 6840, 983432, 0, 73993, 0, 4649, 65209, 983908, 93839, 4648, 122635, + 121169, 983436, 126231, 983427, 66846, 7828, 4650, 983426, 72879, 0, + 4653, 7822, 0, 0, 43187, 0, 983586, 6821, 0, 0, 0, 0, 0, 0, 66756, + 983433, 0, 0, 0, 8547, 0, 42165, 0, 119228, 6836, 0, 0, 4662, 0, 0, 0, + 9146, 599, 4657, 0, 120754, 0, 4656, 0, 0, 7811, 40994, 0, 6414, 5967, + 4658, 3725, 0, 5814, 4661, 127760, 194961, 0, 0, 64904, 0, 10833, 0, 0, + 4867, 128717, 0, 11459, 3054, 0, 40996, 0, 7605, 4622, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 19926, 0, 0, 65307, 4617, 0, 0, 0, 4616, 10518, 0, 127160, 0, + 5958, 0, 983449, 4618, 0, 983442, 120675, 4621, 0, 983444, 522, 125213, + 11139, 65803, 194972, 0, 12201, 6135, 121060, 983425, 0, 983093, 0, + 983423, 983416, 983437, 4638, 983421, 0, 78242, 5965, 78240, 66569, + 68646, 0, 983455, 74392, 5335, 0, 0, 4633, 0, 119045, 983451, 4632, 0, + 5542, 5333, 0, 983428, 68648, 5331, 4634, 0, 92870, 5338, 4637, 0, 0, + 43477, 0, 42493, 0, 42361, 0, 0, 73853, 0, 0, 0, 74204, 11343, 0, 10358, + 10422, 4758, 0, 1608, 5252, 0, 0, 4753, 78239, 11344, 78237, 0, 5231, + 74384, 0, 0, 118676, 0, 0, 0, 0, 71991, 5229, 4757, 0, 0, 5227, 4752, 0, + 65235, 5234, 73044, 0, 0, 0, 0, 0, 0, 7460, 0, 917936, 0, 0, 74760, + 65189, 0, 92230, 0, 0, 5574, 128980, 0, 65139, 5577, 0, 0, 118871, 68641, + 8965, 7635, 0, 5316, 70021, 5314, 74555, 5572, 0, 5312, 0, 5525, 5330, + 5319, 68292, 0, 65066, 0, 0, 983496, 0, 0, 127851, 0, 74851, 0, 0, 64609, + 0, 0, 128593, 0, 129339, 0, 8632, 0, 0, 0, 195012, 5735, 195013, 1692, + 70151, 4610, 122653, 4305, 0, 4609, 43478, 4614, 77753, 118534, 5287, + 5309, 5285, 0, 5961, 4647, 5283, 10743, 0, 71889, 601, 4613, 77759, 0, + 9208, 4608, 74044, 71107, 5190, 0, 0, 92410, 43965, 2265, 0, 0, 0, 0, 0, + 0, 0, 129953, 0, 0, 5960, 0, 8992, 65293, 0, 1782, 0, 0, 0, 0, 0, 5501, + 0, 42508, 69759, 120749, 129120, 0, 195023, 77740, 43900, 77741, 0, 68134, 111180, 74209, 0, 64740, 0, 0, 0, 983935, 3767, 5737, 0, 4865, 0, 5740, 0, 5736, 7724, 0, 7193, 0, 0, 5739, 77744, 4866, 0, 0, 0, 4869, - 67093, 0, 0, 128514, 6650, 983485, 0, 983476, 78376, 4870, 0, 68661, - 6716, 983475, 2190, 69786, 68676, 0, 10122, 4864, 66568, 0, 0, 0, 9603, - 68652, 126213, 42734, 745, 0, 0, 0, 4777, 0, 77788, 68631, 42775, 68196, - 0, 0, 0, 0, 5966, 0, 4778, 127890, 0, 0, 4781, 127196, 64407, 0, 74132, - 8577, 71221, 0, 71223, 0, 4782, 0, 0, 120757, 68618, 43472, 43056, 68622, - 0, 92986, 4776, 0, 11492, 0, 0, 13176, 0, 0, 0, 0, 0, 0, 0, 4849, 8242, - 9561, 73922, 0, 0, 0, 0, 5963, 0, 125201, 0, 4850, 72121, 0, 590, 4853, - 0, 4854, 0, 5164, 0, 1605, 5124, 0, 111165, 0, 8471, 0, 111164, 12445, - 3785, 0, 111162, 0, 0, 4848, 2530, 0, 2068, 1964, 0, 0, 10796, 0, 0, 0, - 0, 0, 4794, 0, 0, 0, 4797, 68040, 111152, 43465, 4792, 0, 0, 0, 0, 0, - 110842, 983101, 92963, 0, 0, 0, 4221, 92360, 118869, 0, 0, 0, 70042, 0, - 0, 0, 0, 10739, 65090, 0, 119327, 126541, 0, 0, 119326, 0, 0, 4937, - 43376, 0, 0, 10597, 983442, 11722, 9248, 129566, 42879, 11725, 0, 0, - 7579, 11141, 73958, 4941, 0, 917538, 9140, 4936, 5261, 0, 0, 72298, 0, - 4942, 0, 4938, 0, 0, 5259, 9369, 983431, 111182, 5257, 0, 6844, 4964, - 5264, 0, 0, 0, 41411, 0, 121473, 73684, 128233, 9482, 4873, 41991, 64707, - 42526, 127989, 64480, 64725, 983444, 0, 0, 0, 0, 0, 0, 73043, 0, 389, - 10893, 7521, 0, 4872, 5463, 0, 3125, 111124, 0, 4878, 5459, 4604, 0, 0, - 5465, 0, 0, 0, 0, 9563, 0, 0, 128419, 125273, 82963, 0, 0, 0, 67735, 0, - 0, 0, 0, 0, 78179, 0, 129707, 0, 917833, 0, 917836, 0, 0, 3082, 0, 0, 0, - 0, 118621, 7079, 5856, 917842, 5163, 0, 0, 1817, 66724, 0, 0, 10564, - 7763, 13077, 0, 0, 68140, 111137, 0, 77782, 0, 111139, 123548, 77787, - 121457, 0, 0, 0, 983189, 73081, 0, 0, 983117, 983077, 0, 42156, 0, 0, 0, - 983080, 0, 0, 0, 119254, 120693, 0, 69386, 0, 118881, 0, 78189, 0, 78186, - 78188, 0, 0, 0, 0, 110877, 0, 3108, 9745, 0, 0, 0, 118825, 92785, 0, 0, - 0, 0, 10972, 92786, 0, 42768, 715, 983113, 121117, 9453, 5348, 10943, 0, - 983169, 92784, 0, 0, 983153, 0, 0, 11551, 128464, 0, 0, 9051, 0, 71728, - 0, 120791, 119523, 0, 6404, 66458, 68376, 11984, 9156, 65222, 74454, - 78180, 0, 3128, 4789, 5067, 5066, 0, 4784, 0, 8827, 1146, 5065, 78196, - 78192, 78193, 78190, 78191, 5064, 5326, 0, 9450, 5063, 120361, 78200, - 78201, 5062, 69733, 74146, 0, 0, 0, 0, 77992, 0, 3933, 77768, 0, 12337, - 0, 125023, 0, 0, 0, 194759, 0, 0, 82993, 42130, 0, 5151, 917832, 120357, - 0, 93980, 0, 7620, 3800, 0, 0, 0, 127952, 0, 0, 4786, 127991, 4185, 0, - 128742, 0, 983193, 73978, 0, 4593, 77715, 77727, 124909, 0, 110715, - 10532, 77732, 110714, 110711, 110712, 64759, 1325, 5166, 9888, 0, 5148, - 0, 0, 78205, 78206, 64140, 78204, 64131, 3119, 917814, 0, 983435, 917820, - 12095, 0, 0, 636, 128002, 0, 983466, 0, 78531, 7836, 42741, 64137, 0, - 118969, 0, 92431, 0, 0, 0, 0, 0, 8618, 0, 11865, 0, 0, 0, 3937, 12312, - 128261, 0, 0, 0, 912, 6349, 4536, 71964, 0, 126594, 0, 0, 0, 3935, - 120665, 0, 0, 0, 0, 118859, 0, 121116, 0, 0, 12046, 12599, 0, 0, 0, 0, - 7227, 0, 0, 0, 983066, 0, 0, 0, 113817, 2179, 78246, 0, 0, 0, 0, 0, - 127405, 101531, 0, 101530, 43907, 0, 0, 0, 0, 4644, 8818, 0, 0, 0, 0, - 93066, 66452, 126081, 1644, 101043, 9658, 43744, 11385, 65947, 983173, - 43983, 0, 0, 0, 8962, 0, 0, 2466, 42039, 67669, 0, 0, 42117, 100698, 0, - 0, 0, 0, 43745, 5318, 0, 77723, 0, 0, 0, 7054, 64147, 0, 917804, 68195, - 6698, 0, 0, 0, 70849, 11981, 12202, 0, 121364, 0, 7059, 11608, 975, 0, - 65843, 170, 0, 67239, 42708, 0, 0, 6058, 0, 0, 0, 70507, 0, 0, 9818, 0, - 0, 42106, 0, 983065, 4738, 42105, 7062, 0, 4737, 11779, 4742, 120564, - 92391, 0, 41374, 41375, 983378, 6715, 12700, 7049, 983376, 0, 0, 0, 4741, - 42108, 983367, 64159, 4736, 64148, 0, 849, 0, 128247, 983363, 0, 120913, - 917997, 0, 983381, 9496, 66371, 983405, 983379, 11322, 0, 93008, 3928, - 983152, 0, 10706, 7198, 0, 4842, 12053, 0, 0, 4841, 0, 4171, 12008, - 68416, 3923, 1490, 0, 0, 983395, 40972, 5245, 72288, 983397, 126578, 0, - 4845, 8332, 40974, 0, 4840, 9077, 2252, 2408, 72851, 4825, 0, 917574, 0, - 0, 126251, 0, 0, 983355, 0, 983356, 0, 4826, 42440, 0, 0, 1274, 0, 74315, - 0, 120384, 118614, 121200, 0, 0, 0, 4830, 983390, 129044, 0, 0, 119082, - 0, 64105, 0, 0, 4824, 120397, 0, 0, 1888, 64127, 7861, 125111, 78524, - 41836, 110613, 10873, 72439, 0, 64098, 12214, 0, 41834, 0, 358, 128120, - 41833, 11442, 0, 0, 0, 0, 64115, 0, 0, 0, 120721, 119053, 0, 119055, - 119054, 0, 0, 0, 0, 4017, 12827, 5241, 0, 73042, 41118, 3924, 0, 11366, - 0, 0, 0, 0, 41116, 69455, 0, 0, 0, 0, 11917, 0, 74000, 4721, 123551, - 983937, 0, 0, 0, 0, 0, 0, 122907, 0, 128702, 4722, 6816, 124974, 0, 4725, - 67099, 4726, 0, 129856, 123171, 0, 123194, 0, 0, 0, 4015, 0, 8052, 78766, - 123538, 0, 128294, 0, 0, 4720, 73090, 125003, 0, 0, 1656, 41831, 0, 0, - 41843, 92846, 0, 1452, 13111, 0, 0, 0, 8552, 64113, 41845, 64073, 120354, - 0, 0, 120066, 120067, 7064, 64070, 9948, 0, 0, 0, 92828, 2420, 92811, 0, - 0, 0, 120052, 120053, 120050, 74920, 3938, 120057, 120054, 92829, 120060, - 71920, 120058, 120059, 120064, 72203, 7955, 64074, 4713, 128196, 983107, - 0, 0, 0, 65152, 10198, 120044, 120045, 120042, 6713, 4532, 120049, - 120046, 120047, 4717, 7046, 0, 66450, 4712, 75055, 0, 121085, 0, 8155, - 4718, 3942, 4714, 9625, 0, 6383, 0, 12006, 0, 0, 0, 0, 0, 65414, 0, 0, - 129061, 66437, 66025, 74115, 0, 0, 11228, 4809, 0, 68211, 72352, 0, 0, 0, + 67093, 0, 0, 128514, 6650, 983488, 0, 983479, 78376, 4870, 0, 68661, + 6716, 983478, 2190, 69786, 68676, 0, 10122, 4864, 66568, 0, 0, 0, 9603, + 68652, 126213, 42734, 745, 0, 124131, 124130, 4777, 0, 77788, 68631, + 42775, 68196, 0, 124128, 124129, 0, 5966, 0, 4778, 127890, 0, 0, 4781, + 127196, 64407, 0, 74132, 8577, 71221, 0, 71223, 0, 4782, 0, 0, 120757, + 68618, 43472, 43056, 68622, 0, 92986, 4776, 0, 11492, 0, 0, 13176, 0, 0, + 0, 73558, 0, 0, 0, 4849, 8242, 9561, 73922, 0, 0, 0, 0, 5963, 0, 125201, + 0, 4850, 72121, 0, 590, 4853, 0, 4854, 0, 5164, 0, 1605, 5124, 0, 111165, + 0, 8471, 0, 111164, 12445, 3785, 0, 111162, 0, 0, 4848, 2530, 0, 2068, + 1964, 0, 0, 10796, 0, 0, 0, 0, 0, 4794, 0, 0, 0, 4797, 68040, 111152, + 43465, 4792, 0, 0, 0, 0, 0, 110842, 983102, 92963, 0, 0, 0, 4221, 92360, + 118869, 0, 0, 0, 70042, 0, 0, 0, 0, 10739, 65090, 0, 119327, 126541, 0, + 0, 119326, 0, 0, 4937, 43376, 0, 0, 10597, 983445, 11722, 9248, 129566, + 42879, 11725, 0, 0, 7579, 11141, 73958, 4941, 0, 917538, 9140, 4936, + 5261, 0, 0, 72298, 0, 4942, 0, 4938, 0, 0, 5259, 9369, 983434, 111182, + 5257, 78932, 6844, 4964, 5264, 0, 0, 0, 41411, 0, 121473, 73684, 128233, + 9482, 4873, 41991, 64707, 42526, 127989, 64480, 64725, 983447, 0, 0, 0, + 0, 0, 0, 73043, 0, 389, 10893, 7521, 0, 4872, 5463, 0, 3125, 111124, 0, + 4878, 5459, 4604, 0, 0, 5465, 0, 0, 0, 0, 9563, 0, 0, 128419, 125273, + 82963, 0, 0, 0, 67735, 0, 0, 0, 0, 0, 73560, 0, 129707, 0, 917833, 0, + 917836, 0, 0, 3082, 0, 0, 0, 0, 118621, 7079, 5856, 917842, 5163, 0, 0, + 1817, 66724, 0, 0, 10564, 7763, 13077, 124115, 0, 68140, 111137, 0, + 77782, 0, 111139, 123548, 77787, 121457, 0, 0, 0, 983190, 73081, 0, 0, + 983118, 124114, 0, 42156, 0, 0, 0, 983080, 0, 0, 0, 119254, 120693, 0, + 69386, 0, 118881, 0, 78189, 0, 78186, 78188, 129654, 0, 0, 0, 110877, 0, + 3108, 9745, 0, 0, 0, 118825, 92785, 0, 122954, 0, 0, 10972, 92786, 0, + 42768, 715, 983114, 121117, 9453, 5348, 10943, 0, 983170, 92784, 0, 0, + 983154, 0, 0, 11551, 128464, 0, 0, 9051, 0, 71728, 0, 120791, 119523, 0, + 6404, 66458, 68376, 11984, 9156, 65222, 74454, 78180, 0, 3128, 4789, + 5067, 5066, 0, 4784, 0, 8827, 1146, 5065, 78196, 78192, 78193, 78190, + 78191, 5064, 5326, 0, 9450, 5063, 120361, 78200, 78201, 5062, 69733, + 74146, 0, 0, 0, 0, 77992, 0, 3933, 77768, 0, 12337, 0, 125023, 0, 0, 0, + 194759, 0, 0, 82993, 42130, 0, 5151, 917832, 120357, 0, 73523, 0, 7620, + 3800, 0, 0, 0, 127952, 0, 0, 4786, 127991, 4185, 0, 128742, 0, 983194, + 73978, 0, 4593, 77715, 77727, 124909, 0, 110715, 10532, 77732, 110714, + 110711, 110712, 64759, 1325, 5166, 9888, 0, 5148, 0, 0, 78205, 78206, + 64140, 78204, 64131, 3119, 917814, 0, 983438, 917820, 12095, 0, 0, 636, + 128002, 0, 983469, 0, 78531, 7836, 42741, 64137, 0, 118969, 0, 92431, 0, + 0, 0, 0, 0, 8618, 0, 11865, 0, 0, 0, 3937, 12312, 128261, 0, 0, 0, 912, + 6349, 4536, 71964, 0, 126594, 0, 0, 0, 3935, 120665, 0, 0, 0, 0, 118859, + 0, 121116, 0, 0, 12046, 12599, 0, 0, 0, 0, 7227, 0, 0, 0, 983066, 0, 0, + 0, 113817, 2179, 78246, 0, 0, 0, 0, 0, 127405, 101531, 0, 101530, 43907, + 0, 0, 0, 0, 4644, 8818, 0, 0, 0, 0, 93066, 66452, 126081, 1644, 101043, + 9658, 43744, 11385, 65947, 983174, 43983, 0, 0, 0, 8962, 0, 0, 2466, + 42039, 67669, 0, 0, 42117, 100698, 0, 0, 0, 0, 43745, 5318, 0, 77723, 0, + 0, 0, 7054, 64147, 0, 917804, 68195, 6698, 0, 0, 0, 70849, 11981, 12202, + 0, 121364, 0, 7059, 11608, 975, 0, 65843, 170, 0, 67239, 42708, 0, 0, + 6058, 0, 0, 0, 70507, 0, 0, 9818, 0, 0, 42106, 0, 983065, 4738, 42105, + 7062, 0, 4737, 11779, 4742, 120564, 92391, 0, 41374, 41375, 983381, 6715, + 12700, 7049, 983379, 0, 0, 0, 4741, 42108, 983370, 64159, 4736, 64148, 0, + 849, 0, 128247, 983366, 0, 120913, 917997, 0, 983384, 9496, 66371, + 983408, 983382, 11322, 0, 93008, 3928, 983153, 0, 10706, 7198, 0, 4842, + 12053, 0, 0, 4841, 0, 4171, 12008, 68416, 3923, 1490, 0, 0, 983398, + 40972, 5245, 72288, 983400, 126578, 0, 4845, 8332, 40974, 0, 4840, 9077, + 2252, 2408, 72851, 4825, 0, 917574, 0, 0, 126251, 0, 0, 983358, 0, + 983359, 0, 4826, 42440, 0, 0, 1274, 0, 74315, 0, 120384, 118614, 121200, + 0, 0, 0, 4830, 983393, 129044, 0, 0, 119082, 0, 64105, 0, 0, 4824, + 120397, 0, 0, 1888, 64127, 7861, 125111, 78524, 41836, 110613, 10873, + 72439, 0, 64098, 12214, 124134, 41834, 0, 358, 128120, 41833, 11442, 0, + 0, 0, 0, 64115, 0, 0, 0, 120721, 119053, 0, 119055, 119054, 0, 0, 0, 0, + 4017, 12827, 5241, 0, 73042, 41118, 3924, 0, 11366, 0, 0, 0, 0, 41116, + 69455, 0, 0, 0, 0, 11917, 0, 74000, 4721, 123551, 983937, 0, 0, 0, 0, 0, + 0, 122907, 0, 128702, 4722, 6816, 124974, 0, 4725, 67099, 4726, 0, + 129856, 123171, 0, 123194, 0, 0, 0, 4015, 0, 8052, 78766, 123538, 0, + 128294, 0, 0, 4720, 73090, 125003, 0, 0, 1656, 41831, 0, 0, 41843, 92846, + 0, 1452, 13111, 0, 0, 0, 8552, 64113, 41845, 64073, 120354, 0, 0, 120066, + 120067, 7064, 64070, 9948, 0, 0, 0, 92828, 2420, 92811, 0, 0, 0, 120052, + 120053, 120050, 74920, 3938, 120057, 120054, 92829, 120060, 71920, + 120058, 120059, 120064, 72203, 7955, 64074, 4713, 128196, 983108, 0, 0, + 0, 65152, 10198, 120044, 120045, 120042, 6713, 4532, 120049, 120046, + 120047, 4717, 7046, 0, 66450, 4712, 75055, 0, 121085, 0, 8155, 4718, + 3942, 4714, 9625, 0, 6383, 0, 12006, 0, 0, 0, 0, 0, 65414, 0, 0, 129061, + 66437, 66025, 74115, 0, 0, 11228, 4809, 0, 68211, 72352, 0, 0, 983101, 65405, 129912, 0, 0, 2163, 4545, 0, 917566, 0, 4813, 78699, 0, 0, 4808, 0, 0, 65475, 0, 0, 4814, 72240, 4810, 0, 0, 68784, 10761, 67514, 3522, 0, 78693, 65404, 0, 0, 0, 0, 0, 6691, 70125, 0, 126223, 0, 0, 0, 43858, @@ -29683,35 +29883,35 @@ static const unsigned int code_hash[] = { 2315, 0, 1938, 0, 0, 0, 0, 0, 0, 0, 111135, 93794, 0, 0, 0, 93810, 0, 2291, 0, 0, 0, 0, 129429, 0, 10799, 0, 0, 66372, 0, 4193, 0, 0, 983057, 7998, 0, 0, 0, 0, 2316, 0, 0, 0, 0, 120106, 0, 0, 74140, 0, 0, 0, 0, - 3762, 93813, 120672, 93820, 0, 0, 0, 70098, 3780, 12808, 8163, 983154, 0, + 3762, 93813, 120672, 93820, 0, 0, 0, 70098, 3780, 12808, 8163, 983155, 0, 0, 3906, 12349, 0, 8326, 0, 65498, 3763, 0, 5618, 0, 3779, 0, 43613, 0, - 128007, 0, 0, 0, 0, 280, 0, 126252, 983450, 13072, 1894, 0, 0, 65478, - 43310, 7231, 0, 11773, 0, 0, 0, 101517, 0, 0, 7559, 11652, 10009, 110765, - 110766, 110763, 110764, 4470, 110762, 0, 0, 983443, 0, 5249, 0, 0, 8756, - 0, 0, 41694, 120585, 92349, 0, 0, 0, 69685, 123549, 983447, 113794, 0, - 6808, 41319, 13125, 66332, 127977, 0, 2290, 0, 983415, 0, 0, 3943, 0, - 41205, 0, 0, 0, 0, 5352, 0, 0, 41207, 0, 7384, 69647, 41204, 123552, - 41209, 69637, 0, 43607, 0, 0, 5420, 0, 10134, 0, 0, 4018, 7150, 0, 0, 0, - 0, 0, 129606, 2561, 65023, 0, 7148, 12076, 0, 0, 129201, 0, 6276, 1706, - 0, 0, 7146, 0, 128277, 41819, 74991, 0, 10847, 41822, 72248, 860, 0, 0, - 0, 69641, 10753, 41820, 126118, 0, 71898, 0, 92617, 128567, 0, 121514, - 43016, 0, 0, 92225, 0, 0, 0, 0, 4022, 0, 0, 110807, 0, 41691, 0, 75060, - 11866, 0, 65292, 0, 110812, 0, 3911, 110811, 110808, 110809, 0, 125191, - 7000, 3904, 118997, 72261, 0, 0, 0, 13123, 10846, 0, 0, 0, 0, 0, 74082, - 0, 123542, 0, 0, 3777, 128329, 0, 9636, 71726, 0, 0, 9367, 593, 0, 3999, - 0, 41713, 0, 0, 67677, 0, 0, 0, 9763, 120280, 120283, 12347, 124, 12981, - 41127, 92527, 0, 0, 0, 0, 0, 43987, 0, 0, 1769, 41715, 2463, 2151, 0, 0, - 71222, 1538, 93044, 0, 0, 123543, 7795, 120300, 0, 92493, 10955, 0, 0, - 72375, 78208, 9498, 78207, 127033, 78210, 120288, 3939, 120290, 120285, - 8943, 120287, 120286, 120297, 4491, 120299, 42602, 120293, 120292, - 120295, 120294, 0, 0, 0, 0, 0, 0, 1511, 9324, 0, 0, 0, 0, 0, 64536, 0, 0, - 0, 124935, 6822, 12862, 0, 0, 42143, 41828, 0, 917629, 70864, 118879, 0, - 0, 0, 41826, 128413, 0, 0, 13279, 7917, 0, 0, 0, 0, 0, 92800, 92332, 0, - 0, 43515, 0, 0, 0, 4013, 0, 66980, 0, 72224, 125266, 0, 68243, 2432, - 92834, 0, 0, 0, 0, 69952, 0, 0, 0, 10949, 0, 0, 0, 0, 0, 0, 0, 128574, - 43233, 0, 42517, 0, 0, 0, 0, 0, 64468, 119359, 6474, 119358, 43497, - 12656, 128122, 119353, 0, 1665, 0, 0, 0, 64512, 0, 0, 5256, 0, 0, 0, - 2859, 123563, 0, 0, 0, 0, 92801, 128220, 0, 770, 0, 811, 0, 0, 917551, + 128007, 0, 0, 0, 0, 280, 0, 126252, 983453, 13072, 1894, 0, 0, 65478, + 43310, 7231, 0, 11773, 0, 0, 0, 101517, 122662, 0, 7559, 11652, 10009, + 110765, 110766, 110763, 110764, 4470, 110762, 0, 0, 983446, 0, 5249, 0, + 0, 8756, 0, 0, 41694, 120585, 92349, 0, 0, 0, 69685, 123549, 983450, + 113794, 0, 6808, 41319, 13125, 66332, 127977, 0, 2290, 0, 983418, 0, 0, + 3943, 0, 41205, 0, 0, 0, 0, 5352, 0, 0, 41207, 0, 7384, 69647, 41204, + 123552, 41209, 69637, 0, 43607, 0, 0, 5420, 0, 10134, 0, 0, 4018, 7150, + 0, 0, 0, 0, 0, 129606, 2561, 65023, 0, 7148, 12076, 0, 0, 129201, 0, + 6276, 1706, 0, 0, 7146, 0, 128277, 41819, 74991, 0, 10847, 41822, 72248, + 860, 0, 0, 0, 69641, 10753, 41820, 126118, 0, 71898, 0, 92617, 128567, 0, + 121514, 43016, 0, 0, 92225, 0, 0, 0, 0, 4022, 0, 0, 110807, 0, 41691, 0, + 75060, 11866, 0, 65292, 0, 110812, 0, 3911, 110811, 110808, 110809, 0, + 125191, 7000, 3904, 118997, 72261, 0, 0, 0, 13123, 10846, 0, 0, 0, 0, 0, + 74082, 0, 123542, 0, 0, 3777, 128329, 0, 9636, 71726, 0, 0, 9367, 593, 0, + 3999, 0, 41713, 0, 0, 67677, 0, 0, 0, 9763, 120280, 120283, 12347, 124, + 12981, 41127, 92527, 0, 0, 0, 0, 0, 43987, 0, 0, 1769, 41715, 2463, 2151, + 0, 0, 71222, 1538, 93044, 0, 0, 123543, 7795, 120300, 0, 92493, 10955, 0, + 0, 72375, 78208, 9498, 78207, 127033, 78210, 120288, 3939, 120290, + 120285, 8943, 120287, 120286, 120297, 4491, 120299, 42602, 120293, + 120292, 120295, 120294, 0, 0, 0, 0, 0, 0, 1511, 9324, 0, 0, 0, 0, 0, + 64536, 0, 0, 0, 124935, 6822, 12862, 0, 0, 42143, 41828, 0, 917629, + 70864, 118879, 0, 0, 0, 41826, 128413, 0, 0, 13279, 7917, 0, 0, 0, 0, 0, + 92800, 92332, 0, 0, 43515, 0, 0, 0, 4013, 0, 66980, 0, 72224, 125266, 0, + 68243, 2432, 92834, 0, 0, 0, 0, 69952, 0, 0, 0, 10949, 0, 0, 0, 0, 0, 0, + 0, 128574, 43233, 0, 42517, 0, 0, 0, 0, 0, 64468, 119359, 6474, 119358, + 43497, 12656, 128122, 119353, 0, 1665, 0, 0, 0, 64512, 0, 0, 5256, 0, 0, + 0, 2859, 123563, 0, 0, 0, 0, 92801, 128220, 0, 770, 0, 811, 0, 0, 917551, 42244, 64427, 0, 72222, 0, 3895, 0, 74341, 12087, 0, 42859, 10193, 3116, 7747, 0, 0, 43496, 0, 0, 0, 0, 41877, 0, 65382, 64614, 0, 64296, 0, 6345, 0, 2663, 0, 121234, 0, 0, 10150, 0, 64308, 1522, 597, 0, 0, 41201, 64731, @@ -29746,19 +29946,19 @@ static const unsigned int code_hash[] = { 0, 67708, 0, 119346, 0, 5959, 0, 0, 66275, 43371, 0, 0, 0, 0, 0, 12769, 69793, 0, 1283, 0, 4779, 0, 3719, 4006, 0, 0, 71186, 68204, 124957, 0, 119331, 43028, 65493, 0, 125058, 5962, 65485, 92616, 0, 43501, 5827, 0, - 120951, 0, 65494, 0, 129365, 0, 0, 43879, 0, 0, 0, 0, 983203, 65467, 0, + 120951, 0, 65494, 0, 129365, 0, 0, 43879, 0, 0, 0, 0, 983205, 65467, 0, 0, 0, 0, 521, 0, 0, 983928, 0, 0, 483, 7096, 0, 0, 928, 0, 0, 0, 0, - 92983, 3989, 73972, 0, 0, 0, 0, 12145, 0, 73932, 0, 0, 3769, 67460, 0, 0, - 0, 0, 0, 65290, 92223, 0, 65855, 0, 0, 0, 0, 128811, 0, 0, 0, 0, 0, 0, - 73838, 0, 0, 13007, 67506, 0, 0, 12661, 7608, 75032, 12213, 0, 0, 0, 0, - 12195, 4001, 3112, 67474, 0, 7590, 0, 0, 421, 0, 0, 0, 4130, 127775, + 92983, 3989, 73972, 122980, 0, 0, 0, 12145, 0, 73932, 0, 0, 3769, 67460, + 0, 0, 0, 0, 0, 65290, 92223, 0, 65855, 0, 0, 0, 0, 128811, 0, 0, 0, 0, 0, + 0, 73838, 0, 0, 13007, 67506, 0, 0, 12661, 7608, 75032, 12213, 0, 0, 0, + 0, 12195, 4001, 3112, 67474, 0, 7590, 0, 0, 421, 0, 0, 0, 4130, 127775, 7595, 42588, 7600, 0, 0, 0, 0, 65851, 42607, 0, 92403, 8680, 0, 42134, 0, 0, 2846, 92605, 0, 0, 0, 0, 12979, 0, 0, 92558, 3740, 69843, 120437, 0, 120451, 65923, 120435, 0, 120434, 0, 93800, 3118, 74265, 93795, 93816, 93823, 93797, 8127, 92912, 93792, 7943, 93821, 93799, 10618, 2584, 93793, 0, 0, 9998, 0, 0, 0, 66350, 0, 0, 0, 121374, 8279, 128169, 0, 4975, 70075, 0, 118675, 1631, 0, 0, 0, 6290, 128994, 66386, 0, 64645, 0, 0, 0, - 0, 0, 9242, 93807, 93802, 93801, 983266, 93803, 3122, 93804, 7793, 0, 0, + 0, 0, 9242, 93807, 93802, 93801, 983269, 93803, 3122, 93804, 7793, 0, 0, 0, 0, 12604, 92885, 6615, 67650, 0, 3986, 44025, 0, 8912, 0, 7409, 0, 0, 0, 0, 0, 0, 8540, 11498, 0, 0, 0, 0, 0, 13060, 120682, 0, 0, 0, 0, 0, 121345, 0, 0, 7020, 120353, 3765, 92881, 0, 1606, 120348, 120351, 3093, @@ -29768,150 +29968,151 @@ static const unsigned int code_hash[] = { 42758, 12196, 128429, 0, 0, 0, 0, 128867, 94179, 0, 3120, 9797, 0, 0, 11086, 10389, 0, 101025, 4895, 128153, 124941, 4359, 0, 0, 3509, 70037, 486, 0, 0, 0, 0, 0, 7004, 0, 0, 0, 0, 4855, 128200, 0, 0, 0, 0, 0, 0, - 10381, 70839, 0, 0, 0, 0, 125121, 70837, 125070, 129431, 983374, 983362, - 0, 983361, 0, 120063, 0, 0, 0, 75048, 0, 74900, 0, 0, 120978, 12161, - 983353, 0, 10339, 0, 77808, 0, 0, 0, 77806, 0, 43032, 125010, 0, 983380, - 12671, 11384, 0, 0, 120901, 64797, 0, 5820, 0, 0, 0, 0, 0, 120650, 42137, - 9893, 8851, 12664, 0, 0, 13192, 0, 41799, 65530, 0, 0, 43039, 3114, 0, 0, - 0, 0, 0, 926, 77803, 72004, 77805, 77799, 77800, 77801, 77802, 43037, - 41798, 77797, 77798, 123214, 41801, 0, 0, 0, 4200, 12699, 8331, 70118, - 3091, 92980, 66298, 70293, 8360, 0, 78044, 0, 4229, 64543, 126227, 65563, - 0, 129310, 2861, 43793, 10095, 121428, 9195, 121381, 121132, 0, 129578, - 0, 0, 43041, 0, 43794, 0, 83167, 0, 43797, 8209, 0, 129132, 12973, 0, 0, - 0, 0, 0, 121235, 5760, 0, 743, 0, 0, 0, 118712, 0, 0, 83170, 128589, - 129537, 0, 119063, 0, 0, 0, 19919, 0, 64532, 0, 43710, 0, 0, 9483, 71115, - 0, 43697, 0, 0, 83211, 0, 0, 0, 7247, 0, 0, 0, 0, 0, 113674, 0, 7471, - 120823, 128743, 12682, 0, 0, 65679, 983143, 0, 0, 83201, 1099, 74241, 0, - 10501, 0, 0, 113743, 0, 64743, 128476, 67663, 0, 0, 92219, 0, 83197, - 64897, 9973, 1818, 0, 0, 8272, 127812, 0, 4218, 3087, 0, 127234, 0, - 101300, 65181, 9954, 10465, 0, 0, 0, 9106, 0, 67406, 0, 0, 0, 0, 43038, - 0, 0, 265, 0, 0, 0, 0, 0, 0, 69405, 0, 59, 0, 0, 0, 0, 126239, 41810, 0, - 126492, 0, 41809, 41888, 0, 41795, 0, 42213, 0, 0, 43033, 511, 42963, 0, - 13127, 0, 0, 0, 0, 111107, 0, 4467, 41812, 41215, 0, 41211, 917783, 4453, - 69575, 0, 129883, 0, 983409, 41213, 92864, 118716, 0, 0, 129730, 41841, - 6617, 130041, 0, 92995, 462, 0, 10493, 0, 55248, 0, 0, 74471, 6644, 0, 0, - 0, 983385, 100484, 9581, 67104, 3098, 0, 0, 983412, 125250, 0, 120621, 0, - 0, 0, 129584, 101011, 0, 118789, 74473, 3755, 64661, 7748, 7235, 3966, 0, - 0, 127510, 0, 0, 0, 5726, 66456, 42175, 100486, 0, 42212, 92681, 121443, - 2851, 43017, 120108, 121056, 4373, 0, 0, 9587, 0, 6671, 128840, 3100, 0, - 917790, 0, 0, 0, 917789, 73836, 8190, 12083, 917791, 0, 6689, 64629, 0, - 0, 0, 4419, 917787, 101017, 0, 69851, 0, 0, 8891, 3080, 0, 2347, 0, 0, - 8990, 0, 121201, 0, 92528, 249, 129008, 0, 69424, 0, 0, 0, 55253, 0, 0, - 11173, 995, 0, 121047, 119861, 0, 73708, 0, 0, 19945, 0, 558, 983396, - 12273, 0, 983881, 0, 69912, 120861, 129492, 67274, 94178, 0, 68019, - 43030, 3129, 0, 2102, 0, 0, 121450, 0, 7725, 0, 11120, 0, 126111, 69246, - 0, 0, 0, 41894, 0, 41898, 0, 41893, 74921, 128678, 3540, 11848, 0, 73005, - 120848, 0, 0, 126113, 73959, 0, 0, 128735, 120858, 0, 0, 9699, 128656, - 41896, 0, 83196, 69230, 74951, 0, 72736, 0, 0, 3095, 983689, 11946, - 983885, 0, 0, 0, 0, 0, 113677, 3672, 119864, 0, 0, 0, 128539, 8890, - 93826, 0, 128182, 0, 0, 0, 126568, 0, 0, 983617, 9516, 983438, 72109, 0, - 42220, 0, 4450, 0, 11547, 43417, 128542, 356, 0, 0, 0, 0, 64901, 0, 0, 0, - 0, 0, 0, 111302, 65940, 2541, 71231, 0, 123215, 126470, 3549, 0, 0, 0, - 2743, 0, 0, 0, 9097, 128896, 43015, 0, 0, 776, 2524, 0, 8573, 100665, - 126494, 0, 0, 42694, 71122, 8952, 10814, 118818, 0, 43646, 128598, 66944, - 0, 0, 128380, 100663, 0, 65853, 42707, 1897, 93071, 0, 0, 71907, 69410, - 0, 125106, 0, 0, 0, 68473, 66778, 43573, 92638, 0, 0, 0, 120955, 73986, - 0, 0, 43022, 0, 74841, 0, 67714, 0, 0, 0, 0, 0, 4553, 0, 0, 0, 0, 0, - 19921, 0, 0, 983687, 4567, 41891, 0, 983819, 55249, 194663, 0, 194662, 0, - 194665, 43042, 121291, 1377, 12869, 0, 0, 9250, 0, 0, 0, 129779, 125039, - 194642, 0, 74995, 0, 194644, 0, 0, 101328, 194668, 121166, 0, 70275, - 1898, 69556, 0, 0, 802, 0, 0, 0, 6648, 0, 2528, 0, 0, 194646, 194625, - 101330, 68804, 844, 0, 68824, 0, 68818, 194650, 0, 0, 0, 983743, 65464, - 0, 0, 0, 0, 83221, 0, 0, 100680, 42954, 0, 64371, 70665, 0, 194654, 0, 0, - 0, 0, 0, 6196, 6945, 0, 0, 0, 120491, 0, 68846, 6210, 0, 70274, 0, 0, 0, - 68067, 68834, 194715, 588, 9760, 129112, 0, 983723, 128798, 0, 127992, 0, - 0, 118905, 0, 0, 92485, 110839, 69396, 0, 3394, 70734, 194639, 0, 0, 0, - 0, 0, 0, 194656, 7817, 1841, 11055, 195001, 194979, 194983, 127011, - 67403, 194987, 7701, 194998, 0, 194995, 1946, 121404, 0, 0, 917631, 0, 0, - 10934, 0, 70376, 0, 0, 8071, 3538, 0, 2287, 65328, 0, 0, 7614, 0, 0, 0, - 12009, 43968, 0, 67852, 0, 0, 10841, 123640, 0, 0, 0, 0, 8960, 0, 0, - 65317, 128829, 0, 0, 70374, 0, 0, 0, 65315, 0, 0, 0, 0, 0, 119621, 0, - 11849, 12447, 0, 0, 110741, 0, 0, 0, 129976, 42767, 0, 0, 0, 43695, - 120520, 11975, 194941, 983445, 0, 2555, 0, 128640, 70070, 42936, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 66714, 0, 0, 70076, 65596, 121034, 66710, 67658, - 0, 126994, 65338, 7792, 0, 0, 67871, 119027, 0, 8233, 43572, 0, 0, 0, - 3442, 0, 2841, 12543, 0, 1473, 42820, 64329, 127832, 917772, 126126, - 7937, 0, 1048, 0, 0, 983943, 0, 3406, 1054, 100701, 1040, 65450, 0, - 92329, 1069, 917763, 128367, 128940, 0, 917765, 0, 983724, 9693, 110873, - 0, 0, 0, 983948, 4353, 118653, 1059, 127530, 0, 0, 0, 127093, 118862, - 120500, 10646, 118708, 100710, 917762, 70424, 74830, 0, 0, 983720, 10221, - 100706, 68255, 0, 0, 74346, 119619, 100707, 64945, 12921, 0, 0, 0, 0, 0, - 983795, 43020, 0, 0, 74254, 0, 983785, 0, 0, 983792, 0, 71954, 0, 0, 0, - 0, 122625, 0, 120503, 70663, 0, 2755, 0, 0, 0, 4857, 0, 4428, 0, 0, - 983791, 0, 0, 0, 43842, 0, 122899, 0, 7978, 0, 70392, 127080, 11924, - 43812, 0, 65015, 67472, 563, 68340, 0, 12798, 0, 100727, 0, 0, 0, 74110, - 0, 94051, 0, 694, 0, 9876, 0, 119168, 0, 0, 0, 92361, 0, 0, 7229, 0, 0, - 0, 0, 64811, 0, 119087, 126478, 0, 7381, 0, 2525, 4852, 11586, 68465, - 41605, 126089, 0, 11582, 7151, 10155, 92578, 188, 0, 11592, 0, 74015, 0, - 0, 4858, 122645, 0, 0, 4861, 0, 2786, 121431, 4856, 8051, 0, 119609, 0, - 113797, 71133, 0, 78448, 0, 0, 67842, 68084, 0, 0, 0, 0, 0, 10234, 5843, - 0, 71865, 66728, 0, 3157, 0, 0, 75035, 72788, 983750, 0, 10822, 5149, - 129517, 0, 65142, 129454, 4565, 0, 0, 0, 12657, 0, 0, 386, 0, 8834, - 120974, 0, 43574, 0, 0, 0, 70113, 7220, 11839, 124984, 74883, 194752, 0, - 65241, 74503, 8160, 0, 194753, 0, 0, 0, 0, 0, 121265, 6847, 13303, 0, 0, - 194755, 0, 118865, 0, 194761, 0, 0, 74505, 0, 0, 0, 100518, 194721, 8780, - 100512, 0, 68745, 110626, 66697, 0, 2672, 3735, 983641, 0, 68752, 11205, - 10724, 41202, 0, 100714, 0, 0, 0, 0, 194765, 3842, 0, 78183, 12442, - 78182, 9791, 78181, 0, 42516, 67730, 64821, 195059, 78178, 0, 78464, - 119219, 78465, 127466, 194690, 195063, 0, 0, 0, 0, 78540, 78541, 78538, - 1962, 78490, 78476, 65930, 11660, 0, 2072, 0, 0, 78544, 194704, 78542, - 10669, 110859, 110860, 110857, 110858, 129749, 110856, 4105, 0, 194699, - 0, 0, 0, 13148, 195068, 78479, 9226, 0, 0, 10765, 127486, 71919, 6263, - 195050, 0, 195041, 0, 0, 0, 0, 0, 0, 92312, 7886, 0, 6682, 0, 6680, - 195042, 126473, 195052, 6679, 74412, 0, 72206, 74421, 66281, 0, 0, - 127478, 0, 0, 92861, 6681, 0, 12693, 0, 0, 0, 0, 0, 65442, 129055, 0, - 9989, 74415, 194673, 0, 0, 983788, 0, 0, 0, 0, 7042, 127240, 119026, - 7968, 0, 983768, 194741, 194736, 983793, 0, 69889, 74389, 128696, 0, 0, - 128979, 5781, 0, 78199, 0, 0, 11091, 0, 2719, 0, 0, 0, 64495, 0, 0, 0, - 65169, 42845, 0, 128551, 983766, 2200, 72435, 0, 0, 0, 917855, 66670, 0, - 983709, 0, 0, 0, 7902, 0, 65265, 0, 0, 0, 0, 0, 0, 0, 12994, 0, 10828, - 983974, 0, 4307, 3482, 0, 0, 72389, 0, 64299, 74573, 41194, 7343, 0, 0, - 41195, 0, 8169, 0, 8841, 66770, 516, 72981, 41197, 119051, 34, 128850, - 120186, 11504, 1612, 120187, 120182, 120181, 120184, 12001, 120178, - 120177, 120180, 120179, 71966, 120173, 7749, 120175, 0, 1758, 0, 10667, - 0, 120197, 0, 1935, 11517, 120193, 120196, 120195, 120190, 120189, - 120192, 120191, 1217, 64702, 128075, 825, 0, 0, 0, 0, 66748, 0, 11050, 0, - 123187, 0, 0, 74554, 110577, 0, 8677, 123188, 11313, 123185, 3403, 0, - 123186, 64364, 92683, 0, 0, 0, 0, 123189, 0, 0, 983880, 0, 69408, 41850, - 0, 3433, 127965, 0, 1594, 65607, 0, 66392, 0, 129291, 74565, 41353, - 125119, 0, 0, 0, 0, 918, 127280, 41351, 0, 0, 12140, 0, 12668, 72395, 0, - 128753, 0, 127302, 0, 127288, 129497, 127235, 573, 0, 0, 11417, 0, - 127283, 0, 0, 0, 72410, 0, 11482, 0, 3981, 74345, 0, 0, 0, 0, 0, 0, - 125238, 0, 0, 42195, 0, 123190, 0, 64602, 0, 0, 121366, 0, 121061, - 128690, 0, 8423, 0, 448, 66907, 9717, 0, 0, 0, 0, 0, 0, 0, 71910, 129898, - 0, 0, 120679, 65013, 78169, 0, 72390, 0, 0, 127917, 0, 74892, 0, 0, - 127798, 0, 0, 66982, 0, 0, 0, 12197, 125074, 0, 121447, 0, 0, 0, 0, 0, 0, - 0, 74563, 64828, 11419, 0, 8592, 0, 0, 0, 11381, 0, 0, 74529, 0, 0, - 83254, 0, 72796, 0, 83257, 0, 0, 0, 129437, 65672, 0, 0, 0, 0, 0, 0, 0, - 0, 9505, 0, 0, 756, 0, 125243, 100358, 110852, 7261, 0, 0, 0, 0, 0, - 64401, 65830, 41365, 0, 0, 0, 127834, 0, 0, 0, 0, 0, 74626, 123155, - 11578, 0, 2170, 0, 0, 0, 0, 74568, 0, 113684, 1794, 68310, 120218, - 120219, 120220, 120221, 120222, 120223, 3617, 120011, 64886, 94061, - 78202, 120213, 66999, 10225, 983060, 0, 65223, 983058, 0, 0, 4452, - 127779, 0, 0, 66981, 0, 0, 0, 11425, 0, 0, 1231, 0, 0, 0, 0, 8192, 0, 0, - 0, 10616, 8694, 0, 68867, 128332, 123595, 120200, 120201, 120202, 120203, - 9878, 120205, 119626, 120207, 0, 8799, 42131, 0, 127163, 0, 120198, - 120199, 837, 120015, 72384, 0, 983836, 2180, 11427, 0, 78154, 0, 70171, - 0, 78150, 42606, 0, 119615, 78147, 64637, 78146, 43060, 78145, 125009, - 3392, 0, 194783, 119067, 119650, 65468, 43498, 126083, 0, 0, 0, 194928, - 194937, 194938, 64681, 194930, 83264, 92451, 0, 194955, 83262, 983751, - 8973, 0, 194967, 70177, 194968, 0, 4800, 195018, 0, 0, 11820, 6852, 0, 0, - 4802, 4111, 111268, 0, 4805, 127308, 68193, 7885, 121220, 0, 0, 0, 4767, - 0, 0, 0, 0, 0, 125234, 100366, 43453, 0, 41340, 0, 0, 10005, 65856, - 41333, 0, 9518, 0, 0, 0, 42520, 100850, 0, 0, 917562, 100506, 0, 0, 0, 0, - 0, 0, 9167, 42151, 124958, 0, 2026, 100848, 0, 0, 100534, 12768, 0, 7582, - 0, 0, 0, 0, 129557, 0, 120539, 68879, 0, 43547, 119992, 8546, 126071, - 78520, 7604, 78518, 78519, 78514, 78517, 78511, 78512, 73802, 128140, 0, - 6708, 10535, 0, 68218, 55274, 68221, 92296, 0, 0, 0, 0, 0, 72385, 0, 0, - 0, 73727, 0, 120706, 74442, 66943, 0, 0, 4351, 0, 119887, 119888, 0, - 119886, 119891, 68866, 119889, 11433, 119895, 119896, 0, 119894, 65578, - 194693, 0, 0, 983070, 10681, 0, 0, 128737, 0, 983110, 0, 6722, 129364, 0, - 119997, 41546, 64860, 68394, 0, 41549, 118619, 72386, 0, 0, 0, 0, 64710, - 41547, 0, 0, 0, 78530, 78532, 78528, 78529, 71343, 78527, 78523, 78525, - 3537, 119908, 119905, 7155, 2264, 0, 78533, 67755, 0, 0, 0, 0, 0, 0, 0, - 64715, 0, 0, 537, 0, 4179, 0, 0, 0, 0, 0, 0, 0, 0, 12081, 0, 0, 4048, - 7053, 0, 0, 70459, 0, 124975, 0, 3059, 0, 0, 43491, 983833, 0, 0, 127993, - 4100, 920, 1811, 1355, 0, 0, 64383, 10078, 69398, 0, 118651, 0, 65870, 0, + 10381, 70839, 0, 0, 0, 0, 125121, 70837, 125070, 129431, 983377, 983365, + 0, 983364, 0, 120063, 0, 0, 0, 75048, 0, 74900, 0, 0, 120978, 12161, + 983356, 0, 10339, 0, 77808, 0, 0, 917846, 77806, 0, 43032, 125010, 0, + 983383, 12671, 11384, 0, 0, 120901, 64797, 0, 5820, 0, 0, 0, 0, 0, + 120650, 42137, 9893, 8851, 12664, 0, 0, 13192, 0, 41799, 65530, 0, 0, + 43039, 3114, 0, 0, 0, 0, 0, 926, 77803, 72004, 77805, 77799, 77800, + 77801, 77802, 43037, 41798, 77797, 77798, 123214, 41801, 0, 0, 0, 4200, + 12699, 8331, 70118, 3091, 92980, 66298, 70293, 8360, 0, 78044, 0, 4229, + 64543, 126227, 65563, 0, 129310, 2861, 43793, 10095, 121428, 9195, + 121381, 121132, 0, 129578, 0, 0, 43041, 0, 43794, 0, 83167, 0, 43797, + 8209, 0, 129132, 12973, 0, 0, 0, 0, 0, 121235, 5760, 0, 743, 0, 0, 0, + 118712, 0, 0, 83170, 128589, 129537, 0, 119063, 0, 0, 0, 19919, 0, 64532, + 0, 43710, 0, 0, 9483, 71115, 0, 43697, 0, 0, 83211, 0, 0, 0, 7247, 0, 0, + 0, 0, 0, 113674, 0, 7471, 120823, 128743, 12682, 0, 0, 65679, 983144, 0, + 0, 83201, 1099, 74241, 0, 10501, 0, 0, 113743, 0, 64743, 128476, 67663, + 0, 0, 92219, 0, 83197, 64897, 9973, 1818, 0, 0, 8272, 127812, 0, 4218, + 3087, 0, 127234, 122935, 101300, 65181, 9954, 10465, 0, 0, 0, 9106, 0, + 67406, 0, 0, 0, 0, 43038, 0, 0, 265, 70208, 0, 0, 0, 0, 0, 69405, 0, 59, + 0, 0, 0, 0, 126239, 41810, 0, 126492, 0, 41809, 41888, 0, 41795, 0, + 42213, 0, 0, 43033, 511, 42963, 0, 13127, 0, 0, 0, 0, 111107, 100489, + 4467, 41812, 41215, 0, 41211, 917783, 4453, 69575, 0, 129883, 0, 983412, + 41213, 92864, 118716, 0, 0, 129730, 41841, 6617, 130041, 0, 92995, 462, + 0, 10493, 0, 55248, 0, 0, 74471, 6644, 0, 0, 0, 983388, 100484, 9581, + 67104, 3098, 0, 0, 983415, 125250, 0, 120621, 0, 0, 0, 129584, 101011, 0, + 118789, 74473, 3755, 64661, 7748, 7235, 3966, 0, 0, 127510, 0, 0, 0, + 5726, 66456, 42175, 100486, 0, 42212, 92681, 121443, 2851, 43017, 120108, + 121056, 4373, 0, 0, 9587, 0, 6671, 128840, 3100, 0, 917790, 0, 0, 0, + 917789, 70209, 8190, 12083, 917791, 0, 6689, 64629, 0, 0, 0, 4419, + 917787, 101017, 0, 69851, 0, 0, 8891, 3080, 0, 2347, 0, 0, 8990, 0, + 121201, 0, 92528, 249, 129008, 0, 69424, 0, 0, 0, 55253, 0, 0, 11173, + 995, 0, 121047, 119861, 0, 73708, 0, 0, 19945, 0, 558, 983399, 12273, 0, + 983881, 0, 69912, 120861, 129492, 67274, 94178, 0, 68019, 43030, 3129, 0, + 2102, 0, 0, 121450, 0, 7725, 0, 11120, 0, 126111, 69246, 0, 0, 0, 41894, + 0, 41898, 0, 41893, 74921, 128678, 3540, 11848, 0, 73005, 120848, 0, 0, + 126113, 73959, 0, 0, 128735, 120858, 0, 0, 9699, 128656, 41896, 0, 83196, + 69230, 74951, 0, 72736, 0, 0, 3095, 983689, 11946, 983885, 0, 0, 0, 0, 0, + 113677, 3672, 111309, 0, 0, 0, 128539, 8890, 93826, 0, 128182, 0, 0, 0, + 126568, 0, 0, 983617, 9516, 983441, 72109, 0, 42220, 0, 4450, 0, 11547, + 43417, 128542, 356, 0, 0, 0, 0, 64901, 0, 0, 0, 0, 0, 0, 111302, 65940, + 2541, 71231, 0, 123215, 126470, 3549, 0, 0, 0, 2743, 0, 0, 0, 9097, + 128896, 43015, 0, 0, 776, 2524, 0, 8573, 100665, 126494, 0, 0, 42694, + 71122, 8952, 10814, 118818, 0, 43646, 128598, 66944, 0, 0, 128380, + 100663, 0, 65853, 42707, 1897, 93071, 0, 0, 71907, 69410, 0, 125106, 0, + 0, 0, 68473, 66778, 43573, 92638, 0, 0, 0, 120955, 73986, 0, 0, 43022, 0, + 74841, 0, 67714, 0, 0, 0, 0, 0, 4553, 0, 0, 0, 0, 0, 19921, 0, 0, 983687, + 4567, 41891, 0, 983819, 55249, 194663, 0, 194662, 0, 194665, 43042, + 121291, 1377, 12869, 0, 0, 9250, 0, 0, 0, 129779, 125039, 194642, 0, + 74995, 0, 194644, 0, 0, 101328, 194668, 121166, 0, 70275, 1898, 69556, 0, + 0, 802, 0, 0, 0, 6648, 0, 2528, 0, 0, 194646, 194625, 101330, 68804, 844, + 0, 68824, 0, 68818, 194650, 0, 0, 0, 983743, 65464, 0, 0, 0, 0, 83221, 0, + 0, 100680, 42954, 0, 64371, 70665, 0, 194654, 0, 0, 0, 0, 0, 6196, 6945, + 0, 0, 0, 120491, 0, 68846, 6210, 0, 70274, 0, 0, 0, 68067, 68834, 194715, + 588, 9760, 129112, 0, 983723, 119505, 0, 127992, 0, 0, 118905, 0, 0, + 92485, 110839, 69396, 0, 3394, 70734, 194639, 0, 0, 0, 0, 0, 0, 194656, + 7817, 1841, 11055, 195001, 194979, 194983, 127011, 67403, 194987, 7701, + 194998, 0, 194995, 1946, 121404, 0, 0, 917631, 0, 0, 10934, 0, 70376, 0, + 0, 8071, 3538, 0, 2287, 65328, 0, 0, 7614, 0, 0, 0, 12009, 43968, 0, + 67852, 0, 0, 10841, 123640, 0, 0, 0, 0, 8960, 0, 0, 65317, 128829, 0, 0, + 70374, 0, 0, 0, 65315, 0, 0, 0, 0, 0, 119621, 0, 11849, 12447, 0, 0, + 110741, 0, 0, 0, 129976, 42767, 0, 0, 0, 43695, 120520, 11975, 194941, + 983448, 0, 2555, 0, 128640, 70070, 42936, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 66714, 0, 0, 70076, 65596, 121034, 66710, 67658, 0, 126994, 65338, + 7792, 0, 0, 67871, 119027, 0, 8233, 43572, 0, 0, 0, 3442, 110933, 2841, + 12543, 0, 1473, 42820, 64329, 127832, 917772, 126126, 7937, 0, 1048, 0, + 0, 983943, 0, 3406, 1054, 100701, 1040, 65450, 0, 92329, 1069, 917763, + 128367, 128940, 0, 917765, 0, 983724, 9693, 110873, 0, 0, 0, 983948, + 4353, 118653, 1059, 127530, 0, 0, 0, 127093, 118862, 120500, 10646, + 118708, 100710, 917762, 70424, 74830, 0, 0, 983720, 10221, 100706, 68255, + 0, 0, 74346, 119619, 100707, 64945, 12921, 0, 0, 0, 0, 0, 983795, 43020, + 0, 0, 74254, 0, 983785, 0, 0, 983792, 0, 71954, 0, 0, 0, 0, 122625, 0, + 120503, 70663, 0, 2755, 0, 0, 0, 4857, 0, 4428, 0, 0, 983791, 0, 0, 0, + 43842, 0, 122899, 0, 7978, 0, 70392, 127080, 11924, 43812, 0, 65015, + 67472, 563, 68340, 0, 12798, 0, 100727, 0, 0, 0, 74110, 0, 94051, 0, 694, + 0, 9876, 0, 119168, 0, 0, 0, 92361, 0, 0, 7229, 0, 0, 0, 0, 64811, 0, + 119087, 126478, 0, 7381, 0, 2525, 4852, 11586, 68465, 41605, 126089, 0, + 11582, 7151, 10155, 92578, 188, 0, 11592, 0, 74015, 0, 0, 4858, 122645, + 0, 0, 4861, 0, 2786, 121431, 4856, 8051, 0, 119609, 0, 113797, 71133, 0, + 78448, 0, 0, 67842, 68084, 0, 0, 0, 0, 0, 10234, 5843, 0, 71865, 66728, + 0, 3157, 0, 0, 75035, 72788, 983750, 0, 10822, 5149, 129517, 0, 65142, + 129454, 4565, 0, 0, 0, 12657, 0, 0, 386, 0, 8834, 120974, 0, 43574, 0, 0, + 0, 70113, 7220, 11839, 124984, 74883, 194752, 0, 65241, 74503, 8160, 0, + 194753, 0, 0, 0, 0, 0, 121265, 6847, 13303, 0, 0, 194755, 0, 118865, 0, + 194761, 0, 0, 74505, 0, 0, 0, 100518, 194721, 8780, 100512, 0, 68745, + 110626, 66697, 0, 2672, 3735, 983641, 0, 68752, 11205, 10724, 41202, 0, + 100714, 0, 0, 0, 0, 194765, 3842, 0, 78183, 12442, 78182, 9791, 78181, 0, + 42516, 67730, 64821, 195059, 78178, 0, 78464, 119219, 78465, 127466, + 194690, 195063, 0, 0, 0, 0, 78540, 78541, 78538, 1962, 78490, 78476, + 65930, 11660, 0, 2072, 0, 0, 78544, 194704, 78542, 10669, 110859, 110860, + 110857, 110858, 129749, 110856, 4105, 0, 194699, 0, 0, 0, 13148, 195068, + 78479, 9226, 0, 0, 10765, 127486, 71919, 6263, 195050, 0, 195041, 0, 0, + 0, 0, 0, 0, 92312, 7886, 0, 6682, 0, 6680, 195042, 126473, 195052, 6679, + 74412, 0, 72206, 74421, 66281, 0, 0, 127478, 0, 0, 92861, 6681, 0, 12693, + 0, 0, 0, 0, 0, 65442, 129055, 0, 9989, 74415, 194673, 0, 0, 983788, 0, 0, + 0, 0, 7042, 127240, 119026, 7968, 0, 983768, 194741, 194736, 983793, 0, + 69889, 74389, 128696, 0, 0, 128979, 5781, 0, 78199, 0, 124145, 11091, 0, + 2719, 0, 0, 0, 64495, 0, 0, 0, 65169, 42845, 0, 128551, 983766, 2200, + 72435, 0, 0, 0, 917855, 66670, 0, 983709, 0, 0, 0, 7902, 0, 65265, 0, 0, + 0, 0, 0, 0, 0, 12994, 0, 10828, 983974, 0, 4307, 3482, 0, 0, 72389, 0, + 64299, 74573, 41194, 7343, 0, 0, 41195, 0, 8169, 0, 8841, 66770, 516, + 72981, 41197, 119051, 34, 128850, 120186, 11504, 1612, 120187, 120182, + 120181, 120184, 12001, 120178, 120177, 120180, 120179, 71966, 120173, + 7749, 120175, 0, 1758, 0, 10667, 0, 120197, 0, 1935, 11517, 120193, + 120196, 78925, 120190, 120189, 120192, 120191, 1217, 64702, 128075, 825, + 0, 129824, 0, 0, 66748, 0, 11050, 0, 123187, 0, 0, 74554, 110577, 0, + 8677, 123188, 11313, 123185, 3403, 0, 123186, 64364, 92683, 0, 0, 0, 0, + 123189, 0, 0, 983880, 0, 69408, 41850, 0, 3433, 127965, 0, 1594, 65607, + 0, 66392, 0, 129291, 74565, 41353, 125119, 78926, 0, 0, 0, 918, 127280, + 41351, 0, 0, 12140, 0, 12668, 72395, 0, 128753, 0, 127302, 0, 127288, + 129497, 127235, 573, 0, 0, 11417, 0, 127283, 0, 0, 0, 72410, 0, 11482, 0, + 3981, 74345, 0, 0, 0, 0, 0, 0, 125238, 0, 0, 42195, 0, 123190, 129764, + 64602, 0, 0, 121366, 0, 121061, 128690, 0, 8423, 0, 448, 66907, 9717, 0, + 0, 0, 0, 0, 0, 0, 71910, 129898, 0, 0, 120679, 65013, 78169, 0, 72390, 0, + 0, 127917, 0, 74892, 0, 0, 127798, 0, 0, 66982, 0, 0, 0, 12197, 125074, + 0, 121447, 0, 0, 0, 0, 0, 0, 0, 74563, 64828, 11419, 0, 8592, 0, 0, 0, + 11381, 0, 0, 74529, 0, 0, 83254, 0, 72796, 0, 83257, 0, 0, 0, 129437, + 65672, 0, 0, 0, 0, 0, 0, 0, 0, 9505, 0, 0, 756, 0, 125243, 100358, + 110852, 7261, 0, 0, 0, 0, 0, 64401, 65830, 41365, 0, 0, 0, 127834, 0, 0, + 0, 0, 0, 74626, 123155, 11578, 0, 2170, 0, 0, 0, 0, 74568, 0, 113684, + 1794, 68310, 120218, 120219, 120220, 120221, 120222, 120223, 3617, + 120011, 64886, 94061, 78202, 120213, 66999, 10225, 983060, 0, 65223, + 983058, 0, 0, 4452, 127779, 0, 0, 66981, 0, 0, 0, 11425, 0, 0, 1231, 0, + 0, 0, 124121, 8192, 124118, 0, 0, 10616, 8694, 0, 68867, 128332, 123595, + 120200, 120201, 120202, 120203, 9878, 120205, 119626, 120207, 0, 8799, + 42131, 0, 127163, 0, 120198, 120199, 837, 120015, 72384, 0, 983836, 2180, + 11427, 0, 78154, 0, 70171, 0, 78150, 42606, 0, 119615, 78147, 64637, + 78146, 43060, 78145, 125009, 3392, 0, 194783, 119067, 119650, 65468, + 43498, 126083, 0, 0, 0, 194928, 194937, 194938, 64681, 194930, 83264, + 92451, 0, 194955, 83262, 983751, 8973, 0, 194967, 70177, 194968, 0, 4800, + 195018, 0, 0, 11820, 6852, 122981, 0, 4802, 4111, 111268, 0, 4805, + 127308, 68193, 7885, 121220, 0, 0, 0, 4767, 0, 0, 0, 0, 0, 125234, + 100366, 43453, 0, 41340, 0, 0, 10005, 65856, 41333, 0, 9518, 0, 0, 0, + 42520, 100850, 0, 0, 917562, 100506, 0, 0, 0, 0, 0, 0, 9167, 42151, + 124958, 0, 2026, 100848, 124139, 0, 100534, 12768, 0, 7582, 0, 0, 0, 0, + 129557, 0, 120539, 68879, 0, 43547, 119992, 8546, 126071, 78520, 7604, + 78518, 78519, 78514, 78517, 78511, 78512, 73802, 128140, 0, 6708, 10535, + 0, 68218, 55274, 68221, 92296, 0, 0, 0, 0, 0, 72385, 0, 0, 0, 73727, 0, + 120706, 74442, 66943, 0, 0, 4351, 0, 119887, 119888, 0, 119886, 119891, + 68866, 119889, 11433, 119895, 119896, 0, 119894, 65578, 194693, 0, 0, + 983070, 10681, 0, 0, 128737, 0, 983111, 0, 6722, 129364, 0, 119997, + 41546, 64860, 68394, 0, 41549, 118619, 72386, 0, 0, 0, 0, 64710, 41547, + 0, 0, 0, 78530, 78532, 78528, 78529, 71343, 78527, 78523, 78525, 3537, + 119908, 119905, 7155, 2264, 0, 78533, 67755, 0, 0, 0, 0, 0, 0, 0, 64715, + 0, 0, 537, 0, 4179, 0, 0, 0, 0, 0, 0, 0, 0, 12081, 0, 0, 4048, 7053, 0, + 0, 70459, 0, 124975, 0, 3059, 0, 0, 43491, 983833, 0, 0, 127993, 4100, + 920, 1811, 1355, 0, 0, 64383, 10078, 69398, 0, 118651, 0, 65870, 0, 129565, 0, 72400, 42918, 0, 66789, 0, 12865, 0, 73938, }; @@ -29920,7 +30121,7 @@ static const unsigned int code_hash[] = { #define code_poly 65581 static const unsigned int aliases_start = 0xf0000; -static const unsigned int aliases_end = 0xf01d6; +static const unsigned int aliases_end = 0xf01d9; static const unsigned int name_aliases[] = { 0x0000, 0x0000, @@ -29983,6 +30184,7 @@ static const unsigned int name_aliases[] = { 0x0018, 0x0019, 0x0019, + 0x0019, 0x001A, 0x001A, 0x001B, @@ -30083,6 +30285,7 @@ static const unsigned int name_aliases[] = { 0x01A2, 0x01A3, 0x034F, + 0x0616, 0x061C, 0x0709, 0x0CDE, @@ -30100,6 +30303,7 @@ static const unsigned int name_aliases[] = { 0x180D, 0x180E, 0x180F, + 0x1BBD, 0x200B, 0x200C, 0x200D, diff --git a/Modules/xxlimited.c b/Modules/xxlimited.c index 5177ecd6b515d7..e234504e331945 100644 --- a/Modules/xxlimited.c +++ b/Modules/xxlimited.c @@ -138,6 +138,7 @@ Xxo_finalize(PyObject *self_obj) static void Xxo_dealloc(PyObject *self) { + PyObject_GC_UnTrack(self); Xxo_finalize(self); PyTypeObject *tp = Py_TYPE(self); freefunc free = PyType_GetSlot(tp, Py_tp_free); diff --git a/Modules/xxlimited_35.c b/Modules/xxlimited_35.c index 647abf6721276c..8d29c71951768a 100644 --- a/Modules/xxlimited_35.c +++ b/Modules/xxlimited_35.c @@ -124,7 +124,7 @@ static PyType_Slot Xxo_Type_slots[] = { }; static PyType_Spec Xxo_Type_spec = { - "xxlimited.Xxo", + "xxlimited_35.Xxo", sizeof(XxoObject), 0, Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, @@ -189,7 +189,7 @@ static PyType_Slot Str_Type_slots[] = { }; static PyType_Spec Str_Type_spec = { - "xxlimited.Str", + "xxlimited_35.Str", 0, 0, Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, @@ -212,7 +212,7 @@ static PyType_Slot Null_Type_slots[] = { }; static PyType_Spec Null_Type_spec = { - "xxlimited.Null", + "xxlimited_35.Null", 0, /* basicsize */ 0, /* itemsize */ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, @@ -248,40 +248,50 @@ xx_modexec(PyObject *m) Null_Type_slots[1].pfunc = PyType_GenericNew; Str_Type_slots[0].pfunc = &PyUnicode_Type; - Xxo_Type = PyType_FromSpec(&Xxo_Type_spec); - if (Xxo_Type == NULL) - goto fail; - /* Add some symbolic constants to the module */ if (ErrorObject == NULL) { - ErrorObject = PyErr_NewException("xxlimited.error", NULL, NULL); - if (ErrorObject == NULL) - goto fail; + ErrorObject = PyErr_NewException("xxlimited_35.error", NULL, NULL); + if (ErrorObject == NULL) { + return -1; + } } Py_INCREF(ErrorObject); - PyModule_AddObject(m, "error", ErrorObject); + if (PyModule_AddObject(m, "error", ErrorObject) < 0) { + Py_DECREF(ErrorObject); + return -1; + } /* Add Xxo */ - o = PyType_FromSpec(&Xxo_Type_spec); - if (o == NULL) - goto fail; - PyModule_AddObject(m, "Xxo", o); + Xxo_Type = PyType_FromSpec(&Xxo_Type_spec); + if (Xxo_Type == NULL) { + return -1; + } + if (PyModule_AddObject(m, "Xxo", Xxo_Type) < 0) { + Py_DECREF(Xxo_Type); + return -1; + } /* Add Str */ o = PyType_FromSpec(&Str_Type_spec); - if (o == NULL) - goto fail; - PyModule_AddObject(m, "Str", o); + if (o == NULL) { + return -1; + } + if (PyModule_AddObject(m, "Str", o) < 0) { + Py_DECREF(o); + return -1; + } /* Add Null */ o = PyType_FromSpec(&Null_Type_spec); - if (o == NULL) - goto fail; - PyModule_AddObject(m, "Null", o); + if (o == NULL) { + return -1; + } + if (PyModule_AddObject(m, "Null", o) < 0) { + Py_DECREF(o); + return -1; + } + return 0; - fail: - Py_XDECREF(m); - return -1; } diff --git a/Modules/xxmodule.c b/Modules/xxmodule.c index edcd62157c02f3..a6e5071d1d6303 100644 --- a/Modules/xxmodule.c +++ b/Modules/xxmodule.c @@ -358,31 +358,32 @@ xx_exec(PyObject *m) /* Finalize the type object including setting type of the new type * object; doing it here is required for portability, too. */ - if (PyType_Ready(&Xxo_Type) < 0) - goto fail; + if (PyType_Ready(&Xxo_Type) < 0) { + return -1; + } /* Add some symbolic constants to the module */ if (ErrorObject == NULL) { ErrorObject = PyErr_NewException("xx.error", NULL, NULL); - if (ErrorObject == NULL) - goto fail; + if (ErrorObject == NULL) { + return -1; + } + } + int rc = PyModule_AddType(m, (PyTypeObject *)ErrorObject); + Py_DECREF(ErrorObject); + if (rc < 0) { + return -1; } - Py_INCREF(ErrorObject); - PyModule_AddObject(m, "error", ErrorObject); - - /* Add Str */ - if (PyType_Ready(&Str_Type) < 0) - goto fail; - PyModule_AddObject(m, "Str", (PyObject *)&Str_Type); - - /* Add Null */ - if (PyType_Ready(&Null_Type) < 0) - goto fail; - PyModule_AddObject(m, "Null", (PyObject *)&Null_Type); + + /* Add Str and Null types */ + if (PyModule_AddType(m, &Str_Type) < 0) { + return -1; + } + if (PyModule_AddType(m, &Null_Type) < 0) { + return -1; + } + return 0; - fail: - Py_XDECREF(m); - return -1; } static struct PyModuleDef_Slot xx_slots[] = { diff --git a/Objects/abstract.c b/Objects/abstract.c index 93987c201b5e25..5d50491b2dd347 100644 --- a/Objects/abstract.c +++ b/Objects/abstract.c @@ -526,18 +526,12 @@ _Py_add_one_to_index_C(int nd, Py_ssize_t *index, const Py_ssize_t *shape) Py_ssize_t PyBuffer_SizeFromFormat(const char *format) { - PyObject *structmodule = NULL; PyObject *calcsize = NULL; PyObject *res = NULL; PyObject *fmt = NULL; Py_ssize_t itemsize = -1; - structmodule = PyImport_ImportModule("struct"); - if (structmodule == NULL) { - return itemsize; - } - - calcsize = PyObject_GetAttrString(structmodule, "calcsize"); + calcsize = _PyImport_GetModuleAttrString("struct", "calcsize"); if (calcsize == NULL) { goto done; } @@ -558,7 +552,6 @@ PyBuffer_SizeFromFormat(const char *format) } done: - Py_DECREF(structmodule); Py_XDECREF(calcsize); Py_XDECREF(fmt); Py_XDECREF(res); diff --git a/Objects/accu.c b/Objects/accu.c deleted file mode 100644 index c8b5d382e388b7..00000000000000 --- a/Objects/accu.c +++ /dev/null @@ -1,115 +0,0 @@ -/* Accumulator struct implementation */ - -#include "Python.h" -#include "pycore_accu.h" - -static PyObject * -join_list_unicode(PyObject *lst) -{ - /* return ''.join(lst) */ - PyObject *sep, *ret; - sep = PyUnicode_FromStringAndSize("", 0); - ret = PyUnicode_Join(sep, lst); - Py_DECREF(sep); - return ret; -} - -int -_PyAccu_Init(_PyAccu *acc) -{ - /* Lazily allocated */ - acc->large = NULL; - acc->small = PyList_New(0); - if (acc->small == NULL) - return -1; - return 0; -} - -static int -flush_accumulator(_PyAccu *acc) -{ - Py_ssize_t nsmall = PyList_GET_SIZE(acc->small); - if (nsmall) { - int ret; - PyObject *joined; - if (acc->large == NULL) { - acc->large = PyList_New(0); - if (acc->large == NULL) - return -1; - } - joined = join_list_unicode(acc->small); - if (joined == NULL) - return -1; - if (PyList_SetSlice(acc->small, 0, nsmall, NULL)) { - Py_DECREF(joined); - return -1; - } - ret = PyList_Append(acc->large, joined); - Py_DECREF(joined); - return ret; - } - return 0; -} - -int -_PyAccu_Accumulate(_PyAccu *acc, PyObject *unicode) -{ - Py_ssize_t nsmall; - assert(PyUnicode_Check(unicode)); - - if (PyList_Append(acc->small, unicode)) - return -1; - nsmall = PyList_GET_SIZE(acc->small); - /* Each item in a list of unicode objects has an overhead (in 64-bit - * builds) of: - * - 8 bytes for the list slot - * - 56 bytes for the header of the unicode object - * that is, 64 bytes. 100000 such objects waste more than 6 MiB - * compared to a single concatenated string. - */ - if (nsmall < 100000) - return 0; - return flush_accumulator(acc); -} - -PyObject * -_PyAccu_FinishAsList(_PyAccu *acc) -{ - int ret; - PyObject *res; - - ret = flush_accumulator(acc); - Py_CLEAR(acc->small); - if (ret) { - Py_CLEAR(acc->large); - return NULL; - } - res = acc->large; - acc->large = NULL; - return res; -} - -PyObject * -_PyAccu_Finish(_PyAccu *acc) -{ - PyObject *list, *res; - if (acc->large == NULL) { - list = acc->small; - acc->small = NULL; - } - else { - list = _PyAccu_FinishAsList(acc); - if (!list) - return NULL; - } - res = join_list_unicode(list); - Py_DECREF(list); - return res; -} - -void -_PyAccu_Destroy(_PyAccu *acc) -{ - Py_CLEAR(acc->small); - Py_CLEAR(acc->large); -} diff --git a/Objects/asm_trampoline.S b/Objects/asm_trampoline.S new file mode 100644 index 00000000000000..460707717df003 --- /dev/null +++ b/Objects/asm_trampoline.S @@ -0,0 +1,28 @@ + .text + .globl _Py_trampoline_func_start +# The following assembly is equivalent to: +# PyObject * +# trampoline(PyThreadState *ts, _PyInterpreterFrame *f, +# int throwflag, py_evaluator evaluator) +# { +# return evaluator(ts, f, throwflag); +# } +_Py_trampoline_func_start: +#ifdef __x86_64__ + sub $8, %rsp + call *%rcx + add $8, %rsp + ret +#endif // __x86_64__ +#if defined(__aarch64__) && defined(__AARCH64EL__) && !defined(__ILP32__) + // ARM64 little endian, 64bit ABI + // generate with aarch64-linux-gnu-gcc 12.1 + stp x29, x30, [sp, -16]! + mov x29, sp + blr x3 + ldp x29, x30, [sp], 16 + ret +#endif + .globl _Py_trampoline_func_end +_Py_trampoline_func_end: + .section .note.GNU-stack,"",@progbits diff --git a/Objects/boolobject.c b/Objects/boolobject.c index ff7218760ab361..8a20e368d4a42b 100644 --- a/Objects/boolobject.c +++ b/Objects/boolobject.c @@ -9,7 +9,8 @@ static PyObject * bool_repr(PyObject *self) { - return self == Py_True ? &_Py_ID(True) : &_Py_ID(False); + PyObject *res = self == Py_True ? &_Py_ID(True) : &_Py_ID(False); + return Py_NewRef(res); } /* Function to return a bool from a C long */ diff --git a/Objects/bytearrayobject.c b/Objects/bytearrayobject.c index d0179626414874..b2962fd137d93e 100644 --- a/Objects/bytearrayobject.c +++ b/Objects/bytearrayobject.c @@ -563,22 +563,28 @@ bytearray_setslice(PyByteArrayObject *self, Py_ssize_t lo, Py_ssize_t hi, static int bytearray_setitem(PyByteArrayObject *self, Py_ssize_t i, PyObject *value) { - int ival; + int ival = -1; - if (i < 0) + // GH-91153: We need to do this *before* the size check, in case value has a + // nasty __index__ method that changes the size of the bytearray: + if (value && !_getbytevalue(value, &ival)) { + return -1; + } + + if (i < 0) { i += Py_SIZE(self); + } if (i < 0 || i >= Py_SIZE(self)) { PyErr_SetString(PyExc_IndexError, "bytearray index out of range"); return -1; } - if (value == NULL) + if (value == NULL) { return bytearray_setslice(self, i, i+1, NULL); + } - if (!_getbytevalue(value, &ival)) - return -1; - + assert(0 <= ival && ival < 256); PyByteArray_AS_STRING(self)[i] = ival; return 0; } @@ -593,11 +599,21 @@ bytearray_ass_subscript(PyByteArrayObject *self, PyObject *index, PyObject *valu if (_PyIndex_Check(index)) { Py_ssize_t i = PyNumber_AsSsize_t(index, PyExc_IndexError); - if (i == -1 && PyErr_Occurred()) + if (i == -1 && PyErr_Occurred()) { return -1; + } - if (i < 0) + int ival = -1; + + // GH-91153: We need to do this *before* the size check, in case values + // has a nasty __index__ method that changes the size of the bytearray: + if (values && !_getbytevalue(values, &ival)) { + return -1; + } + + if (i < 0) { i += PyByteArray_GET_SIZE(self); + } if (i < 0 || i >= Py_SIZE(self)) { PyErr_SetString(PyExc_IndexError, "bytearray index out of range"); @@ -612,9 +628,7 @@ bytearray_ass_subscript(PyByteArrayObject *self, PyObject *index, PyObject *valu slicelen = 1; } else { - int ival; - if (!_getbytevalue(values, &ival)) - return -1; + assert(0 <= ival && ival < 256); buf[i] = (char)ival; return 0; } diff --git a/Objects/call.c b/Objects/call.c index 3b5259b3383f43..c2509db2a9a263 100644 --- a/Objects/call.c +++ b/Objects/call.c @@ -1,11 +1,10 @@ #include "Python.h" #include "pycore_call.h" // _PyObject_CallNoArgsTstate() -#include "pycore_ceval.h" // _PyEval_EvalFrame() -#include "pycore_object.h" // _PyObject_GC_TRACK() +#include "pycore_ceval.h" // _Py_EnterRecursiveCallTstate() +#include "pycore_object.h" // _PyCFunctionWithKeywords_TrampolineCall() #include "pycore_pyerrors.h" // _PyErr_Occurred() #include "pycore_pystate.h" // _PyThreadState_GET() #include "pycore_tuple.h" // _PyTuple_ITEMS() -#include "frameobject.h" // _PyFrame_New_NoTrack() static PyObject *const * @@ -1048,3 +1047,11 @@ _PyStack_UnpackDict_Free(PyObject *const *stack, Py_ssize_t nargs, PyMem_Free((PyObject **)stack - 1); Py_DECREF(kwnames); } + +// Export for the stable ABI +#undef PyVectorcall_NARGS +Py_ssize_t +PyVectorcall_NARGS(size_t n) +{ + return _PyVectorcall_NARGS(n); +} diff --git a/Objects/clinic/bytearrayobject.c.h b/Objects/clinic/bytearrayobject.c.h index 0b5c01a83dbe10..142f2998160725 100644 --- a/Objects/clinic/bytearrayobject.c.h +++ b/Objects/clinic/bytearrayobject.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + static int bytearray___init___impl(PyByteArrayObject *self, PyObject *arg, const char *encoding, const char *errors); @@ -10,8 +16,31 @@ static int bytearray___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(source), &_Py_ID(encoding), &_Py_ID(errors), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"source", "encoding", "errors", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "bytearray", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "bytearray", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -210,8 +239,31 @@ static PyObject * bytearray_translate(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(delete), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "delete", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "translate", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "translate", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *table; @@ -390,8 +442,31 @@ static PyObject * bytearray_split(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(sep), &_Py_ID(maxsplit), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"sep", "maxsplit", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "split", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "split", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *sep = Py_None; @@ -489,8 +564,31 @@ static PyObject * bytearray_rsplit(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(sep), &_Py_ID(maxsplit), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"sep", "maxsplit", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "rsplit", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "rsplit", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *sep = Py_None; @@ -843,8 +941,31 @@ static PyObject * bytearray_decode(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(encoding), &_Py_ID(errors), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"encoding", "errors", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "decode", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "decode", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; const char *encoding = NULL; @@ -927,8 +1048,31 @@ static PyObject * bytearray_splitlines(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(keepends), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"keepends", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "splitlines", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "splitlines", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int keepends = 0; @@ -1019,8 +1163,31 @@ static PyObject * bytearray_hex(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(sep), &_Py_ID(bytes_per_sep), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"sep", "bytes_per_sep", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "hex", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "hex", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *sep = NULL; @@ -1120,4 +1287,4 @@ bytearray_sizeof(PyByteArrayObject *self, PyObject *Py_UNUSED(ignored)) { return bytearray_sizeof_impl(self); } -/*[clinic end generated code: output=033e9eb5f2bb0139 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=72bfa6cac2fd6832 input=a9049054013a1b77]*/ diff --git a/Objects/clinic/bytesobject.c.h b/Objects/clinic/bytesobject.c.h index 7e857203417514..904124ec479abb 100644 --- a/Objects/clinic/bytesobject.c.h +++ b/Objects/clinic/bytesobject.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(bytes___bytes____doc__, "__bytes__($self, /)\n" "--\n" @@ -44,8 +50,31 @@ static PyObject * bytes_split(PyBytesObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(sep), &_Py_ID(maxsplit), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"sep", "maxsplit", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "split", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "split", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *sep = Py_None; @@ -195,8 +224,31 @@ static PyObject * bytes_rsplit(PyBytesObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(sep), &_Py_ID(maxsplit), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"sep", "maxsplit", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "rsplit", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "rsplit", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *sep = Py_None; @@ -374,8 +426,31 @@ static PyObject * bytes_translate(PyBytesObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(delete), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "delete", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "translate", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "translate", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *table; @@ -634,8 +709,31 @@ static PyObject * bytes_decode(PyBytesObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(encoding), &_Py_ID(errors), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"encoding", "errors", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "decode", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "decode", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; const char *encoding = NULL; @@ -705,8 +803,31 @@ static PyObject * bytes_splitlines(PyBytesObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(keepends), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"keepends", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "splitlines", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "splitlines", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int keepends = 0; @@ -797,8 +918,31 @@ static PyObject * bytes_hex(PyBytesObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(sep), &_Py_ID(bytes_per_sep), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"sep", "bytes_per_sep", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "hex", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "hex", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *sep = NULL; @@ -836,8 +980,31 @@ static PyObject * bytes_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(source), &_Py_ID(encoding), &_Py_ID(errors), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"source", "encoding", "errors", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "bytes", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "bytes", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -896,4 +1063,4 @@ bytes_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=5727702e63a0a8b7 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=5e0a25b7ba749a04 input=a9049054013a1b77]*/ diff --git a/Objects/clinic/classobject.c.h b/Objects/clinic/classobject.c.h index a4f190015a0d8c..6c449829662af3 100644 --- a/Objects/clinic/classobject.c.h +++ b/Objects/clinic/classobject.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(method___reduce____doc__, "__reduce__($self, /)\n" "--\n" @@ -80,4 +86,4 @@ instancemethod_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=a230fe125f664416 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=e3294c26a71d456d input=a9049054013a1b77]*/ diff --git a/Objects/clinic/codeobject.c.h b/Objects/clinic/codeobject.c.h index df82524a86afe5..da33f4a6a20c1b 100644 --- a/Objects/clinic/codeobject.c.h +++ b/Objects/clinic/codeobject.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(code_new__doc__, "code(argcount, posonlyargcount, kwonlyargcount, nlocals, stacksize,\n" " flags, codestring, constants, names, varnames, filename, name,\n" @@ -186,8 +192,31 @@ static PyObject * code_replace(PyCodeObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 18 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(co_argcount), &_Py_ID(co_posonlyargcount), &_Py_ID(co_kwonlyargcount), &_Py_ID(co_nlocals), &_Py_ID(co_stacksize), &_Py_ID(co_flags), &_Py_ID(co_firstlineno), &_Py_ID(co_code), &_Py_ID(co_consts), &_Py_ID(co_names), &_Py_ID(co_varnames), &_Py_ID(co_freevars), &_Py_ID(co_cellvars), &_Py_ID(co_filename), &_Py_ID(co_name), &_Py_ID(co_qualname), &_Py_ID(co_linetable), &_Py_ID(co_exceptiontable), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"co_argcount", "co_posonlyargcount", "co_kwonlyargcount", "co_nlocals", "co_stacksize", "co_flags", "co_firstlineno", "co_code", "co_consts", "co_names", "co_varnames", "co_freevars", "co_cellvars", "co_filename", "co_name", "co_qualname", "co_linetable", "co_exceptiontable", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "replace", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "replace", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[18]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int co_argcount = self->co_argcount; @@ -418,8 +447,31 @@ static PyObject * code__varname_from_oparg(PyCodeObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(oparg), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"oparg", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "_varname_from_oparg", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "_varname_from_oparg", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; int oparg; @@ -436,4 +488,4 @@ code__varname_from_oparg(PyCodeObject *self, PyObject *const *args, Py_ssize_t n exit: return return_value; } -/*[clinic end generated code: output=9c521b6c79f90ff7 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=b6c98f17c60ace53 input=a9049054013a1b77]*/ diff --git a/Objects/clinic/complexobject.c.h b/Objects/clinic/complexobject.c.h index e7d8065e874ef3..e92c6e985852de 100644 --- a/Objects/clinic/complexobject.c.h +++ b/Objects/clinic/complexobject.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(complex_conjugate__doc__, "conjugate($self, /)\n" "--\n" @@ -102,8 +108,31 @@ static PyObject * complex_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(real), &_Py_ID(imag), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"real", "imag", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "complex", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "complex", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -131,4 +160,4 @@ complex_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=6d85094ace15677e input=a9049054013a1b77]*/ +/*[clinic end generated code: output=52e85a1e258425d6 input=a9049054013a1b77]*/ diff --git a/Objects/clinic/descrobject.c.h b/Objects/clinic/descrobject.c.h index d248b91bf48da2..75706437df83f9 100644 --- a/Objects/clinic/descrobject.c.h +++ b/Objects/clinic/descrobject.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + static PyObject * mappingproxy_new_impl(PyTypeObject *type, PyObject *mapping); @@ -9,8 +15,31 @@ static PyObject * mappingproxy_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(mapping), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"mapping", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "mappingproxy", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "mappingproxy", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -72,8 +101,31 @@ static int property_init(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 4 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(fget), &_Py_ID(fset), &_Py_ID(fdel), &_Py_ID(doc), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"fget", "fset", "fdel", "doc", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "property", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "property", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[4]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -115,4 +167,4 @@ property_init(PyObject *self, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=916624e717862abc input=a9049054013a1b77]*/ +/*[clinic end generated code: output=8dc1ddfcf764ac8e input=a9049054013a1b77]*/ diff --git a/Objects/clinic/dictobject.c.h b/Objects/clinic/dictobject.c.h index eda86c31fcc578..bc2452330e4e2f 100644 --- a/Objects/clinic/dictobject.c.h +++ b/Objects/clinic/dictobject.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(dict_fromkeys__doc__, "fromkeys($type, iterable, value=None, /)\n" "--\n" @@ -191,4 +197,4 @@ dict___reversed__(PyDictObject *self, PyObject *Py_UNUSED(ignored)) { return dict___reversed___impl(self); } -/*[clinic end generated code: output=582766ac0154c8bf input=a9049054013a1b77]*/ +/*[clinic end generated code: output=c0064abbea6091c5 input=a9049054013a1b77]*/ diff --git a/Objects/clinic/enumobject.c.h b/Objects/clinic/enumobject.c.h index 7513c9526ac50f..208a9e8be1a1a2 100644 --- a/Objects/clinic/enumobject.c.h +++ b/Objects/clinic/enumobject.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(enum_new__doc__, "enumerate(iterable, start=0)\n" "--\n" @@ -24,8 +30,31 @@ static PyObject * enum_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(iterable), &_Py_ID(start), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"iterable", "start", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "enumerate", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "enumerate", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -78,4 +107,4 @@ reversed_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=a3937b6b33499560 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=683261097bfd794a input=a9049054013a1b77]*/ diff --git a/Objects/clinic/floatobject.c.h b/Objects/clinic/floatobject.c.h index bf0748f3b3d121..1a81e173231bfa 100644 --- a/Objects/clinic/floatobject.c.h +++ b/Objects/clinic/floatobject.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(float_is_integer__doc__, "is_integer($self, /)\n" "--\n" @@ -321,4 +327,4 @@ float___format__(PyObject *self, PyObject *arg) exit: return return_value; } -/*[clinic end generated code: output=a6e6467624a92a43 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=ac6374ac606a505e input=a9049054013a1b77]*/ diff --git a/Objects/clinic/funcobject.c.h b/Objects/clinic/funcobject.c.h index 17fb13fe085af3..c3a3a8edc39278 100644 --- a/Objects/clinic/funcobject.c.h +++ b/Objects/clinic/funcobject.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(func_new__doc__, "function(code, globals, name=None, argdefs=None, closure=None)\n" "--\n" @@ -27,8 +33,31 @@ static PyObject * func_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 5 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(code), &_Py_ID(globals), &_Py_ID(name), &_Py_ID(argdefs), &_Py_ID(closure), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"code", "globals", "name", "argdefs", "closure", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "function", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "function", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[5]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -75,4 +104,4 @@ func_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=3d96afa3396e5c82 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=777cead7b1f6fad3 input=a9049054013a1b77]*/ diff --git a/Objects/clinic/listobject.c.h b/Objects/clinic/listobject.c.h index 2499383cc26c52..926eaa5d36983b 100644 --- a/Objects/clinic/listobject.c.h +++ b/Objects/clinic/listobject.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(list_insert__doc__, "insert($self, index, object, /)\n" "--\n" @@ -166,8 +172,31 @@ static PyObject * list_sort(PyListObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(key), &_Py_ID(reverse), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"key", "reverse", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "sort", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "sort", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *keyfunc = Py_None; @@ -353,4 +382,4 @@ list___reversed__(PyListObject *self, PyObject *Py_UNUSED(ignored)) { return list___reversed___impl(self); } -/*[clinic end generated code: output=eab97a76b1568a03 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=782ed6c68b1c9f83 input=a9049054013a1b77]*/ diff --git a/Objects/clinic/longobject.c.h b/Objects/clinic/longobject.c.h index 59b79636bee102..1cf5b43188596b 100644 --- a/Objects/clinic/longobject.c.h +++ b/Objects/clinic/longobject.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + static PyObject * long_new_impl(PyTypeObject *type, PyObject *x, PyObject *obase); @@ -9,8 +15,31 @@ static PyObject * long_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(base), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "base", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "int", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "int", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -257,8 +286,31 @@ static PyObject * int_to_bytes(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(length), &_Py_ID(byteorder), &_Py_ID(signed), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"length", "byteorder", "signed", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "to_bytes", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "to_bytes", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; Py_ssize_t length = 1; @@ -348,8 +400,31 @@ static PyObject * int_from_bytes(PyTypeObject *type, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(bytes), &_Py_ID(byteorder), &_Py_ID(signed), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"bytes", "byteorder", "signed", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "from_bytes", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "from_bytes", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *bytes_obj; @@ -391,4 +466,4 @@ int_from_bytes(PyTypeObject *type, PyObject *const *args, Py_ssize_t nargs, PyOb exit: return return_value; } -/*[clinic end generated code: output=899e57c41861a8e9 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=b29b4afc65e3290e input=a9049054013a1b77]*/ diff --git a/Objects/clinic/memoryobject.c.h b/Objects/clinic/memoryobject.c.h index 73ef8d143b50b1..ff7b50bb114b05 100644 --- a/Objects/clinic/memoryobject.c.h +++ b/Objects/clinic/memoryobject.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(memoryview__doc__, "memoryview(object)\n" "--\n" @@ -15,8 +21,31 @@ static PyObject * memoryview(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(object), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"object", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "memoryview", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "memoryview", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -68,8 +97,31 @@ static PyObject * memoryview_cast(PyMemoryViewObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(format), &_Py_ID(shape), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"format", "shape", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "cast", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "cast", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *format; @@ -156,8 +208,31 @@ static PyObject * memoryview_tobytes(PyMemoryViewObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(order), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"order", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "tobytes", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "tobytes", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; const char *order = NULL; @@ -228,8 +303,31 @@ static PyObject * memoryview_hex(PyMemoryViewObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(sep), &_Py_ID(bytes_per_sep), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"sep", "bytes_per_sep", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "hex", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "hex", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *sep = NULL; @@ -258,4 +356,4 @@ memoryview_hex(PyMemoryViewObject *self, PyObject *const *args, Py_ssize_t nargs exit: return return_value; } -/*[clinic end generated code: output=48be570b5e6038e3 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=a832f2fc44e4794c input=a9049054013a1b77]*/ diff --git a/Objects/clinic/moduleobject.c.h b/Objects/clinic/moduleobject.c.h index c1534eaee25886..861bcea6215950 100644 --- a/Objects/clinic/moduleobject.c.h +++ b/Objects/clinic/moduleobject.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(module___init____doc__, "module(name, doc=None)\n" "--\n" @@ -17,8 +23,31 @@ static int module___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(name), &_Py_ID(doc), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"name", "doc", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "module", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "module", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -48,4 +77,4 @@ module___init__(PyObject *self, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=680276bc3a496d7a input=a9049054013a1b77]*/ +/*[clinic end generated code: output=2f897c9e4721f03f input=a9049054013a1b77]*/ diff --git a/Objects/clinic/odictobject.c.h b/Objects/clinic/odictobject.c.h index 5bb9952caa2733..115a134e3f7f54 100644 --- a/Objects/clinic/odictobject.c.h +++ b/Objects/clinic/odictobject.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(OrderedDict_fromkeys__doc__, "fromkeys($type, /, iterable, value=None)\n" "--\n" @@ -18,8 +24,31 @@ static PyObject * OrderedDict_fromkeys(PyTypeObject *type, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(iterable), &_Py_ID(value), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"iterable", "value", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "fromkeys", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "fromkeys", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *seq; @@ -60,8 +89,31 @@ static PyObject * OrderedDict_setdefault(PyODictObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(key), &_Py_ID(default), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"key", "default", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "setdefault", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "setdefault", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *key; @@ -103,8 +155,31 @@ static PyObject * OrderedDict_pop(PyODictObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(key), &_Py_ID(default), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"key", "default", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "pop", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "pop", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *key; @@ -144,8 +219,31 @@ static PyObject * OrderedDict_popitem(PyODictObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(last), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"last", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "popitem", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "popitem", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int last = 1; @@ -186,8 +284,31 @@ static PyObject * OrderedDict_move_to_end(PyODictObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(key), &_Py_ID(last), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"key", "last", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "move_to_end", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "move_to_end", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *key; @@ -211,4 +332,4 @@ OrderedDict_move_to_end(PyODictObject *self, PyObject *const *args, Py_ssize_t n exit: return return_value; } -/*[clinic end generated code: output=4182a5dab66963d0 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=76d85a9162d62ca8 input=a9049054013a1b77]*/ diff --git a/Objects/clinic/structseq.c.h b/Objects/clinic/structseq.c.h index b3b4836543d05f..40ba18a544f4b3 100644 --- a/Objects/clinic/structseq.c.h +++ b/Objects/clinic/structseq.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + static PyObject * structseq_new_impl(PyTypeObject *type, PyObject *arg, PyObject *dict); @@ -9,8 +15,31 @@ static PyObject * structseq_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(sequence), &_Py_ID(dict), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"sequence", "dict", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "structseq", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "structseq", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -33,4 +62,4 @@ structseq_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=ed3019acf49b656c input=a9049054013a1b77]*/ +/*[clinic end generated code: output=802d5663c7d01024 input=a9049054013a1b77]*/ diff --git a/Objects/clinic/tupleobject.c.h b/Objects/clinic/tupleobject.c.h index 224fc0c374f018..a4776e14fa0a9b 100644 --- a/Objects/clinic/tupleobject.c.h +++ b/Objects/clinic/tupleobject.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(tuple_index__doc__, "index($self, value, start=0, stop=sys.maxsize, /)\n" "--\n" @@ -112,4 +118,4 @@ tuple___getnewargs__(PyTupleObject *self, PyObject *Py_UNUSED(ignored)) { return tuple___getnewargs___impl(self); } -/*[clinic end generated code: output=044496dc917f8a97 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=441d2b880e865f87 input=a9049054013a1b77]*/ diff --git a/Objects/clinic/typeobject.c.h b/Objects/clinic/typeobject.c.h index dee3139bd3d82c..f2864297b0f4e7 100644 --- a/Objects/clinic/typeobject.c.h +++ b/Objects/clinic/typeobject.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(type___instancecheck____doc__, "__instancecheck__($self, instance, /)\n" "--\n" @@ -261,4 +267,4 @@ object___dir__(PyObject *self, PyObject *Py_UNUSED(ignored)) { return object___dir___impl(self); } -/*[clinic end generated code: output=a30090032b8e6195 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=3312f873c970bfd1 input=a9049054013a1b77]*/ diff --git a/Objects/clinic/unicodeobject.c.h b/Objects/clinic/unicodeobject.c.h index 07877693c26e32..d803a2733bd636 100644 --- a/Objects/clinic/unicodeobject.c.h +++ b/Objects/clinic/unicodeobject.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(EncodingMap_size__doc__, "size($self, /)\n" "--\n" @@ -154,8 +160,31 @@ static PyObject * unicode_encode(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(encoding), &_Py_ID(errors), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"encoding", "errors", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "encode", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "encode", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; const char *encoding = NULL; @@ -224,8 +253,31 @@ static PyObject * unicode_expandtabs(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(tabsize), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"tabsize", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "expandtabs", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "expandtabs", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int tabsize = 8; @@ -902,8 +954,31 @@ static PyObject * unicode_split(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(sep), &_Py_ID(maxsplit), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"sep", "maxsplit", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "split", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "split", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *sep = Py_None; @@ -1001,8 +1076,31 @@ static PyObject * unicode_rsplit(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(sep), &_Py_ID(maxsplit), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"sep", "maxsplit", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "rsplit", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "rsplit", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *sep = Py_None; @@ -1059,8 +1157,31 @@ static PyObject * unicode_splitlines(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(keepends), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"keepends", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "splitlines", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "splitlines", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int keepends = 0; @@ -1293,8 +1414,31 @@ static PyObject * unicode_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(object), &_Py_ID(encoding), &_Py_ID(errors), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"object", "encoding", "errors", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "str", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "str", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -1353,4 +1497,4 @@ unicode_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=b5dd7cefead9a8e7 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=e775ff4154f1c935 input=a9049054013a1b77]*/ diff --git a/Objects/codeobject.c b/Objects/codeobject.c index 68b0b1efb2e14c..72712f40e42c7c 100644 --- a/Objects/codeobject.c +++ b/Objects/codeobject.c @@ -4,6 +4,7 @@ #include "opcode.h" #include "structmember.h" // PyMemberDef #include "pycore_code.h" // _PyCodeConstructor +#include "pycore_frame.h" // FRAME_SPECIALS_SIZE #include "pycore_interp.h" // PyInterpreterState.co_extra_freefuncs #include "pycore_opcode.h" // _PyOpcode_Deopt #include "pycore_pystate.h" // _PyInterpreterState_GET() @@ -327,6 +328,7 @@ init_code(PyCodeObject *co, struct _PyCodeConstructor *con) /* derived values */ co->co_nlocalsplus = nlocalsplus; co->co_nlocals = nlocals; + co->co_framesize = nlocalsplus + con->stacksize + FRAME_SPECIALS_SIZE; co->co_nplaincellvars = nplaincellvars; co->co_ncellvars = ncellvars; co->co_nfreevars = nfreevars; @@ -334,18 +336,27 @@ init_code(PyCodeObject *co, struct _PyCodeConstructor *con) /* not set */ co->co_weakreflist = NULL; co->co_extra = NULL; + co->_co_code = NULL; co->co_warmup = QUICKENING_INITIAL_WARMUP_VALUE; + co->_co_linearray_entry_size = 0; + co->_co_linearray = NULL; memcpy(_PyCode_CODE(co), PyBytes_AS_STRING(con->code), PyBytes_GET_SIZE(con->code)); + int entry_point = 0; + while (entry_point < Py_SIZE(co) && + _Py_OPCODE(_PyCode_CODE(co)[entry_point]) != RESUME) { + entry_point++; + } + co->_co_firsttraceable = entry_point; } static int scan_varint(const uint8_t *ptr) { - int read = *ptr++; - int val = read & 63; - int shift = 0; + unsigned int read = *ptr++; + unsigned int val = read & 63; + unsigned int shift = 0; while (read & 64) { read = *ptr++; shift += 6; @@ -357,7 +368,7 @@ scan_varint(const uint8_t *ptr) static int scan_signed_varint(const uint8_t *ptr) { - int uval = scan_varint(ptr); + unsigned int uval = scan_varint(ptr); if (uval & 1) { return -(int)(uval >> 1); } @@ -627,11 +638,10 @@ PyCode_New(int argcount, int kwonlyargcount, exceptiontable); } -static const char assert0[4] = { - LOAD_ASSERTION_ERROR, - 0, - RAISE_VARARGS, - 1 +static const char assert0[6] = { + RESUME, 0, + LOAD_ASSERTION_ERROR, 0, + RAISE_VARARGS, 1 }; PyCodeObject * @@ -655,7 +665,7 @@ PyCode_NewEmpty(const char *filename, const char *funcname, int firstlineno) if (filename_ob == NULL) { goto failed; } - code_ob = PyBytes_FromStringAndSize(assert0, 4); + code_ob = PyBytes_FromStringAndSize(assert0, 6); if (code_ob == NULL) { goto failed; } @@ -694,6 +704,50 @@ PyCode_NewEmpty(const char *filename, const char *funcname, int firstlineno) lnotab_notes.txt for the details of the lnotab representation. */ +int +_PyCode_CreateLineArray(PyCodeObject *co) +{ + assert(co->_co_linearray == NULL); + PyCodeAddressRange bounds; + int size; + int max_line = 0; + _PyCode_InitAddressRange(co, &bounds); + while(_PyLineTable_NextAddressRange(&bounds)) { + if (bounds.ar_line > max_line) { + max_line = bounds.ar_line; + } + } + if (max_line < (1 << 15)) { + size = 2; + } + else { + size = 4; + } + co->_co_linearray = PyMem_Malloc(Py_SIZE(co)*size); + if (co->_co_linearray == NULL) { + PyErr_NoMemory(); + return -1; + } + co->_co_linearray_entry_size = size; + _PyCode_InitAddressRange(co, &bounds); + while(_PyLineTable_NextAddressRange(&bounds)) { + int start = bounds.ar_start / sizeof(_Py_CODEUNIT); + int end = bounds.ar_end / sizeof(_Py_CODEUNIT); + for (int index = start; index < end; index++) { + assert(index < (int)Py_SIZE(co)); + if (size == 2) { + assert(((int16_t)bounds.ar_line) == bounds.ar_line); + ((int16_t *)co->_co_linearray)[index] = bounds.ar_line; + } + else { + assert(size == 4); + ((int32_t *)co->_co_linearray)[index] = bounds.ar_line; + } + } + } + return 0; +} + int PyCode_Addr2Line(PyCodeObject *co, int addrq) { @@ -701,6 +755,9 @@ PyCode_Addr2Line(PyCodeObject *co, int addrq) return co->co_firstlineno; } assert(addrq >= 0 && addrq < _PyCode_NBYTES(co)); + if (co->_co_linearray) { + return _PyCode_LineNumberFromArray(co, addrq / sizeof(_Py_CODEUNIT)); + } PyCodeAddressRange bounds; _PyCode_InitAddressRange(co, &bounds); return _PyCode_CheckLineNumber(addrq, &bounds); @@ -768,6 +825,11 @@ next_code_delta(PyCodeAddressRange *bounds) static int previous_code_delta(PyCodeAddressRange *bounds) { + if (bounds->ar_start == 0) { + // If we looking at the first entry, the + // "previous" entry has an implicit length of 1. + return 1; + } const uint8_t *ptr = bounds->opaque.lo_next-1; while (((*ptr) & 128) == 0) { ptr--; @@ -784,9 +846,9 @@ read_byte(PyCodeAddressRange *bounds) static int read_varint(PyCodeAddressRange *bounds) { - int read = read_byte(bounds); - int val = read & 63; - int shift = 0; + unsigned int read = read_byte(bounds); + unsigned int val = read & 63; + unsigned int shift = 0; while (read & 64) { read = read_byte(bounds); shift += 6; @@ -798,7 +860,7 @@ read_varint(PyCodeAddressRange *bounds) static int read_signed_varint(PyCodeAddressRange *bounds) { - int uval = read_varint(bounds); + unsigned int uval = read_varint(bounds); if (uval & 1) { return -(int)(uval >> 1); } @@ -811,7 +873,7 @@ static void retreat(PyCodeAddressRange *bounds) { ASSERT_VALID_BOUNDS(bounds); - assert(bounds->ar_start > 0); + assert(bounds->ar_start >= 0); do { bounds->opaque.lo_next--; } while (((*bounds->opaque.lo_next) & 128) == 0); @@ -909,6 +971,7 @@ PyCode_Addr2Location(PyCodeObject *co, int addrq, if (addrq < 0) { *start_line = *end_line = co->co_firstlineno; *start_column = *end_column = 0; + return 1; } assert(addrq >= 0 && addrq < _PyCode_NBYTES(co)); PyCodeAddressRange bounds; @@ -1276,7 +1339,7 @@ _PyCode_GetExtra(PyObject *code, Py_ssize_t index, void **extra) PyCodeObject *o = (PyCodeObject*) code; _PyCodeObjectExtra *co_extra = (_PyCodeObjectExtra*) o->co_extra; - if (co_extra == NULL || co_extra->ce_size <= index) { + if (co_extra == NULL || index < 0 || co_extra->ce_size <= index) { *extra = NULL; return 0; } @@ -1338,24 +1401,42 @@ _PyCode_GetVarnames(PyCodeObject *co) return get_localsplus_names(co, CO_FAST_LOCAL, co->co_nlocals); } +PyObject * +PyCode_GetVarnames(PyCodeObject *code) +{ + return _PyCode_GetVarnames(code); +} + PyObject * _PyCode_GetCellvars(PyCodeObject *co) { return get_localsplus_names(co, CO_FAST_CELL, co->co_ncellvars); } +PyObject * +PyCode_GetCellvars(PyCodeObject *code) +{ + return _PyCode_GetCellvars(code); +} + PyObject * _PyCode_GetFreevars(PyCodeObject *co) { return get_localsplus_names(co, CO_FAST_FREE, co->co_nfreevars); } +PyObject * +PyCode_GetFreevars(PyCodeObject *code) +{ + return _PyCode_GetFreevars(code); +} + static void deopt_code(_Py_CODEUNIT *instructions, Py_ssize_t len) { for (int i = 0; i < len; i++) { _Py_CODEUNIT instruction = instructions[i]; - int opcode = _PyOpcode_Original[_Py_OPCODE(instruction)]; + int opcode = _PyOpcode_Deopt[_Py_OPCODE(instruction)]; int caches = _PyOpcode_Caches[opcode]; instructions[i] = _Py_MAKECODEUNIT(opcode, _Py_OPARG(instruction)); while (caches--) { @@ -1367,12 +1448,17 @@ deopt_code(_Py_CODEUNIT *instructions, Py_ssize_t len) PyObject * _PyCode_GetCode(PyCodeObject *co) { + if (co->_co_code != NULL) { + return Py_NewRef(co->_co_code); + } PyObject *code = PyBytes_FromStringAndSize((const char *)_PyCode_CODE(co), _PyCode_NBYTES(co)); if (code == NULL) { return NULL; } deopt_code((_Py_CODEUNIT *)PyBytes_AS_STRING(code), Py_SIZE(co)); + assert(co->_co_code == NULL); + co->_co_code = Py_NewRef(code); return code; } @@ -1531,9 +1617,13 @@ code_dealloc(PyCodeObject *co) Py_XDECREF(co->co_qualname); Py_XDECREF(co->co_linetable); Py_XDECREF(co->co_exceptiontable); + Py_XDECREF(co->_co_code); if (co->co_weakreflist != NULL) { PyObject_ClearWeakRefs((PyObject*)co); } + if (co->_co_linearray) { + PyMem_Free(co->_co_linearray); + } if (co->co_warmup == 0) { _Py_QuickenedCount--; } @@ -1623,6 +1713,15 @@ code_richcompare(PyObject *self, PyObject *other, int op) eq = PyObject_RichCompareBool(co->co_localsplusnames, cp->co_localsplusnames, Py_EQ); if (eq <= 0) goto unequal; + eq = PyObject_RichCompareBool(co->co_linetable, cp->co_linetable, Py_EQ); + if (eq <= 0) { + goto unequal; + } + eq = PyObject_RichCompareBool(co->co_exceptiontable, + cp->co_exceptiontable, Py_EQ); + if (eq <= 0) { + goto unequal; + } if (op == Py_EQ) res = Py_True; @@ -1655,7 +1754,15 @@ code_hash(PyCodeObject *co) if (h2 == -1) return -1; h3 = PyObject_Hash(co->co_localsplusnames); if (h3 == -1) return -1; - h = h0 ^ h1 ^ h2 ^ h3 ^ + Py_hash_t h4 = PyObject_Hash(co->co_linetable); + if (h4 == -1) { + return -1; + } + Py_hash_t h5 = PyObject_Hash(co->co_exceptiontable); + if (h5 == -1) { + return -1; + } + h = h0 ^ h1 ^ h2 ^ h3 ^ h4 ^ h5 ^ co->co_argcount ^ co->co_posonlyargcount ^ co->co_kwonlyargcount ^ co->co_flags; if (h == -1) h = -2; @@ -2085,11 +2192,16 @@ _PyStaticCode_Dealloc(PyCodeObject *co) deopt_code(_PyCode_CODE(co), Py_SIZE(co)); co->co_warmup = QUICKENING_INITIAL_WARMUP_VALUE; PyMem_Free(co->co_extra); + Py_CLEAR(co->_co_code); co->co_extra = NULL; if (co->co_weakreflist != NULL) { PyObject_ClearWeakRefs((PyObject *)co); co->co_weakreflist = NULL; } + if (co->_co_linearray) { + PyMem_Free(co->_co_linearray); + co->_co_linearray = NULL; + } } int diff --git a/Objects/descrobject.c b/Objects/descrobject.c index 8e8a46ceca6b3a..82570e085143ed 100644 --- a/Objects/descrobject.c +++ b/Objects/descrobject.c @@ -6,6 +6,7 @@ #include "pycore_pystate.h" // _PyThreadState_GET() #include "pycore_tuple.h" // _PyTuple_ITEMS() #include "structmember.h" // PyMemberDef +#include "pycore_descrobject.h" /*[clinic input] class mappingproxy "mappingproxyobject *" "&PyDictProxy_Type" @@ -1177,6 +1178,12 @@ mappingproxy_getiter(mappingproxyobject *pp) return PyObject_GetIter(pp->mapping); } +static Py_hash_t +mappingproxy_hash(mappingproxyobject *pp) +{ + return PyObject_Hash(pp->mapping); +} + static PyObject * mappingproxy_str(mappingproxyobject *pp) { @@ -1501,16 +1508,6 @@ class property(object): */ -typedef struct { - PyObject_HEAD - PyObject *prop_get; - PyObject *prop_set; - PyObject *prop_del; - PyObject *prop_doc; - PyObject *prop_name; - int getter_doc; -} propertyobject; - static PyObject * property_copy(PyObject *, PyObject *, PyObject *, PyObject *); @@ -1782,38 +1779,55 @@ property_init_impl(propertyobject *self, PyObject *fget, PyObject *fset, Py_XINCREF(fget); Py_XINCREF(fset); Py_XINCREF(fdel); - Py_XINCREF(doc); Py_XSETREF(self->prop_get, fget); Py_XSETREF(self->prop_set, fset); Py_XSETREF(self->prop_del, fdel); - Py_XSETREF(self->prop_doc, doc); + Py_XSETREF(self->prop_doc, NULL); Py_XSETREF(self->prop_name, NULL); self->getter_doc = 0; + PyObject *prop_doc = NULL; + if (doc != NULL && doc != Py_None) { + prop_doc = doc; + Py_XINCREF(prop_doc); + } /* if no docstring given and the getter has one, use that one */ - if ((doc == NULL || doc == Py_None) && fget != NULL) { - PyObject *get_doc; - int rc = _PyObject_LookupAttr(fget, &_Py_ID(__doc__), &get_doc); + else if (fget != NULL) { + int rc = _PyObject_LookupAttr(fget, &_Py_ID(__doc__), &prop_doc); if (rc <= 0) { return rc; } - if (Py_IS_TYPE(self, &PyProperty_Type)) { - Py_XSETREF(self->prop_doc, get_doc); + if (prop_doc == Py_None) { + prop_doc = NULL; + Py_DECREF(Py_None); } - else { - /* If this is a property subclass, put __doc__ - in dict of the subclass instance instead, - otherwise it gets shadowed by __doc__ in the - class's dict. */ - int err = PyObject_SetAttr( - (PyObject *)self, &_Py_ID(__doc__), get_doc); - Py_DECREF(get_doc); - if (err < 0) - return -1; + if (prop_doc != NULL){ + self->getter_doc = 1; } - self->getter_doc = 1; + } + + /* At this point `prop_doc` is either NULL or + a non-None object with incremented ref counter */ + + if (Py_IS_TYPE(self, &PyProperty_Type)) { + Py_XSETREF(self->prop_doc, prop_doc); + } else { + /* If this is a property subclass, put __doc__ + in dict of the subclass instance instead, + otherwise it gets shadowed by __doc__ in the + class's dict. */ + + if (prop_doc == NULL) { + prop_doc = Py_None; + Py_INCREF(prop_doc); + } + int err = PyObject_SetAttr( + (PyObject *)self, &_Py_ID(__doc__), prop_doc); + Py_XDECREF(prop_doc); + if (err < 0) + return -1; } return 0; @@ -1893,7 +1907,7 @@ PyTypeObject PyDictProxy_Type = { &mappingproxy_as_number, /* tp_as_number */ &mappingproxy_as_sequence, /* tp_as_sequence */ &mappingproxy_as_mapping, /* tp_as_mapping */ - 0, /* tp_hash */ + (hashfunc)mappingproxy_hash, /* tp_hash */ 0, /* tp_call */ (reprfunc)mappingproxy_str, /* tp_str */ PyObject_GenericGetAttr, /* tp_getattro */ diff --git a/Objects/dictobject.c b/Objects/dictobject.c index ebbd22ee7c145e..c603e6f1f87449 100644 --- a/Objects/dictobject.c +++ b/Objects/dictobject.c @@ -1686,50 +1686,12 @@ PyDict_GetItem(PyObject *op, PyObject *key) } Py_ssize_t -_PyDict_GetItemHint(PyDictObject *mp, PyObject *key, - Py_ssize_t hint, PyObject **value) +_PyDict_LookupIndex(PyDictObject *mp, PyObject *key) { - assert(*value == NULL); + PyObject *value; assert(PyDict_CheckExact((PyObject*)mp)); assert(PyUnicode_CheckExact(key)); - if (hint >= 0 && hint < mp->ma_keys->dk_nentries) { - PyObject *res = NULL; - - if (DK_IS_UNICODE(mp->ma_keys)) { - PyDictUnicodeEntry *ep = DK_UNICODE_ENTRIES(mp->ma_keys) + (size_t)hint; - if (ep->me_key == key) { - if (mp->ma_keys->dk_kind == DICT_KEYS_SPLIT) { - assert(mp->ma_values != NULL); - res = mp->ma_values->values[(size_t)hint]; - } - else { - res = ep->me_value; - } - if (res != NULL) { - *value = res; - return hint; - } - } - } - else { - PyDictKeyEntry *ep = DK_ENTRIES(mp->ma_keys) + (size_t)hint; - if (ep->me_key == key) { - if (mp->ma_keys->dk_kind == DICT_KEYS_SPLIT) { - assert(mp->ma_values != NULL); - res = mp->ma_values->values[(size_t)hint]; - } - else { - res = ep->me_value; - } - if (res != NULL) { - *value = res; - return hint; - } - } - } - } - Py_hash_t hash = unicode_get_hash(key); if (hash == -1) { hash = PyObject_Hash(key); @@ -1738,7 +1700,7 @@ _PyDict_GetItemHint(PyDictObject *mp, PyObject *key, } } - return _Py_dict_lookup(mp, key, hash, value); + return _Py_dict_lookup(mp, key, hash, &value); } /* Same as PyDict_GetItemWithError() but with hash supplied by caller. @@ -3629,7 +3591,8 @@ dict_ior(PyObject *self, PyObject *other) return self; } -PyDoc_STRVAR(getitem__doc__, "x.__getitem__(y) <==> x[y]"); +PyDoc_STRVAR(getitem__doc__, +"__getitem__($self, key, /)\n--\n\nReturn self[key]."); PyDoc_STRVAR(sizeof__doc__, "D.__sizeof__() -> size of D in memory, in bytes"); @@ -5368,7 +5331,7 @@ init_inline_values(PyObject *obj, PyTypeObject *tp) for (int i = 0; i < size; i++) { values->values[i] = NULL; } - *_PyObject_ValuesPointer(obj) = values; + _PyDictOrValues_SetValues(_PyObject_DictOrValuesPointer(obj), values); return 0; } @@ -5394,7 +5357,7 @@ _PyObject_InitializeDict(PyObject *obj) if (dict == NULL) { return -1; } - PyObject **dictptr = _PyObject_DictPointer(obj); + PyObject **dictptr = _PyObject_ComputedDictPointer(obj); *dictptr = dict; return 0; } @@ -5422,7 +5385,6 @@ make_dict_from_instance_attributes(PyDictKeysObject *keys, PyDictValues *values) PyObject * _PyObject_MakeDictFromInstanceAttributes(PyObject *obj, PyDictValues *values) { - assert(Py_TYPE(obj)->tp_flags & Py_TPFLAGS_MANAGED_DICT); PyDictKeysObject *keys = CACHED_KEYS(Py_TYPE(obj)); OBJECT_STAT_INC(dict_materialized_on_request); return make_dict_from_instance_attributes(keys, values); @@ -5458,8 +5420,7 @@ _PyObject_StoreInstanceAttribute(PyObject *obj, PyDictValues *values, if (dict == NULL) { return -1; } - *_PyObject_ValuesPointer(obj) = NULL; - *_PyObject_ManagedDictPointer(obj) = dict; + _PyObject_DictOrValuesPointer(obj)->dict = dict; if (value == NULL) { return PyDict_DelItem(dict, name); } @@ -5488,6 +5449,37 @@ _PyObject_StoreInstanceAttribute(PyObject *obj, PyDictValues *values, return 0; } +/* Sanity check for managed dicts */ +#if 0 +#define CHECK(val) assert(val); if (!(val)) { return 0; } + +int +_PyObject_ManagedDictValidityCheck(PyObject *obj) +{ + PyTypeObject *tp = Py_TYPE(obj); + CHECK(tp->tp_flags & Py_TPFLAGS_MANAGED_DICT); + PyDictOrValues *dorv_ptr = _PyObject_DictOrValuesPointer(obj); + if (_PyDictOrValues_IsValues(*dorv_ptr)) { + PyDictValues *values = _PyDictOrValues_GetValues(*dorv_ptr); + int size = ((uint8_t *)values)[-2]; + int count = 0; + PyDictKeysObject *keys = CACHED_KEYS(tp); + for (Py_ssize_t i = 0; i < keys->dk_nentries; i++) { + if (values->values[i] != NULL) { + count++; + } + } + CHECK(size == count); + } + else { + if (dorv_ptr->dict != NULL) { + CHECK(PyDict_Check(dorv_ptr->dict)); + } + } + return 1; +} +#endif + PyObject * _PyObject_GetInstanceAttribute(PyObject *obj, PyDictValues *values, PyObject *name) @@ -5511,76 +5503,94 @@ _PyObject_IsInstanceDictEmpty(PyObject *obj) if (tp->tp_dictoffset == 0) { return 1; } - PyObject **dictptr; + PyObject *dict; if (tp->tp_flags & Py_TPFLAGS_MANAGED_DICT) { - PyDictValues *values = *_PyObject_ValuesPointer(obj); - if (values) { + PyDictOrValues dorv = *_PyObject_DictOrValuesPointer(obj); + if (_PyDictOrValues_IsValues(dorv)) { PyDictKeysObject *keys = CACHED_KEYS(tp); for (Py_ssize_t i = 0; i < keys->dk_nentries; i++) { - if (values->values[i] != NULL) { + if (_PyDictOrValues_GetValues(dorv)->values[i] != NULL) { return 0; } } return 1; } - dictptr = _PyObject_ManagedDictPointer(obj); + dict = _PyDictOrValues_GetDict(dorv); } else { - dictptr = _PyObject_DictPointer(obj); + PyObject **dictptr = _PyObject_ComputedDictPointer(obj); + dict = *dictptr; } - PyObject *dict = *dictptr; if (dict == NULL) { return 1; } return ((PyDictObject *)dict)->ma_used == 0; } - -int -_PyObject_VisitInstanceAttributes(PyObject *self, visitproc visit, void *arg) +void +_PyObject_FreeInstanceAttributes(PyObject *self) { PyTypeObject *tp = Py_TYPE(self); assert(Py_TYPE(self)->tp_flags & Py_TPFLAGS_MANAGED_DICT); - PyDictValues **values_ptr = _PyObject_ValuesPointer(self); - if (*values_ptr == NULL) { - return 0; + PyDictOrValues dorv = *_PyObject_DictOrValuesPointer(self); + if (!_PyDictOrValues_IsValues(dorv)) { + return; } + PyDictValues *values = _PyDictOrValues_GetValues(dorv); PyDictKeysObject *keys = CACHED_KEYS(tp); for (Py_ssize_t i = 0; i < keys->dk_nentries; i++) { - Py_VISIT((*values_ptr)->values[i]); + Py_XDECREF(values->values[i]); } - return 0; + free_values(values); } -void -_PyObject_ClearInstanceAttributes(PyObject *self) +int +_PyObject_VisitManagedDict(PyObject *obj, visitproc visit, void *arg) { - PyTypeObject *tp = Py_TYPE(self); - assert(Py_TYPE(self)->tp_flags & Py_TPFLAGS_MANAGED_DICT); - PyDictValues **values_ptr = _PyObject_ValuesPointer(self); - if (*values_ptr == NULL) { - return; + PyTypeObject *tp = Py_TYPE(obj); + if((tp->tp_flags & Py_TPFLAGS_MANAGED_DICT) == 0) { + return 0; } - PyDictKeysObject *keys = CACHED_KEYS(tp); - for (Py_ssize_t i = 0; i < keys->dk_nentries; i++) { - Py_CLEAR((*values_ptr)->values[i]); + assert(tp->tp_dictoffset); + PyDictOrValues dorv = *_PyObject_DictOrValuesPointer(obj); + if (_PyDictOrValues_IsValues(dorv)) { + PyDictValues *values = _PyDictOrValues_GetValues(dorv); + PyDictKeysObject *keys = CACHED_KEYS(tp); + for (Py_ssize_t i = 0; i < keys->dk_nentries; i++) { + Py_VISIT(values->values[i]); + } } + else { + PyObject *dict = _PyDictOrValues_GetDict(dorv); + Py_VISIT(dict); + } + return 0; } void -_PyObject_FreeInstanceAttributes(PyObject *self) +_PyObject_ClearManagedDict(PyObject *obj) { - PyTypeObject *tp = Py_TYPE(self); - assert(Py_TYPE(self)->tp_flags & Py_TPFLAGS_MANAGED_DICT); - PyDictValues **values_ptr = _PyObject_ValuesPointer(self); - if (*values_ptr == NULL) { + PyTypeObject *tp = Py_TYPE(obj); + if((tp->tp_flags & Py_TPFLAGS_MANAGED_DICT) == 0) { return; } - PyDictKeysObject *keys = CACHED_KEYS(tp); - for (Py_ssize_t i = 0; i < keys->dk_nentries; i++) { - Py_XDECREF((*values_ptr)->values[i]); + PyDictOrValues *dorv_ptr = _PyObject_DictOrValuesPointer(obj); + if (_PyDictOrValues_IsValues(*dorv_ptr)) { + PyDictValues *values = _PyDictOrValues_GetValues(*dorv_ptr); + PyDictKeysObject *keys = CACHED_KEYS(tp); + for (Py_ssize_t i = 0; i < keys->dk_nentries; i++) { + Py_CLEAR(values->values[i]); + } + dorv_ptr->dict = NULL; + free_values(values); + } + else { + PyObject *dict = dorv_ptr->dict; + if (dict) { + dorv_ptr->dict = NULL; + Py_DECREF(dict); + } } - free_values(*values_ptr); } PyObject * @@ -5589,25 +5599,26 @@ PyObject_GenericGetDict(PyObject *obj, void *context) PyObject *dict; PyTypeObject *tp = Py_TYPE(obj); if (_PyType_HasFeature(tp, Py_TPFLAGS_MANAGED_DICT)) { - PyDictValues **values_ptr = _PyObject_ValuesPointer(obj); - PyObject **dictptr = _PyObject_ManagedDictPointer(obj); - if (*values_ptr) { - assert(*dictptr == NULL); + PyDictOrValues *dorv_ptr = _PyObject_DictOrValuesPointer(obj); + if (_PyDictOrValues_IsValues(*dorv_ptr)) { + PyDictValues *values = _PyDictOrValues_GetValues(*dorv_ptr); OBJECT_STAT_INC(dict_materialized_on_request); - *dictptr = dict = make_dict_from_instance_attributes(CACHED_KEYS(tp), *values_ptr); + dict = make_dict_from_instance_attributes(CACHED_KEYS(tp), values); if (dict != NULL) { - *values_ptr = NULL; + dorv_ptr->dict = dict; } } - else if (*dictptr == NULL) { - *dictptr = dict = PyDict_New(); - } else { - dict = *dictptr; + dict = _PyDictOrValues_GetDict(*dorv_ptr); + if (dict == NULL) { + dictkeys_incref(CACHED_KEYS(tp)); + dict = new_dict_with_shared_keys(CACHED_KEYS(tp)); + dorv_ptr->dict = dict; + } } } else { - PyObject **dictptr = _PyObject_DictPointer(obj); + PyObject **dictptr = _PyObject_ComputedDictPointer(obj); if (dictptr == NULL) { PyErr_SetString(PyExc_AttributeError, "This object has no __dict__"); diff --git a/Objects/exception_handling_notes.txt b/Objects/exception_handling_notes.txt index a136358f90c888..7de01fdbf5ff48 100644 --- a/Objects/exception_handling_notes.txt +++ b/Objects/exception_handling_notes.txt @@ -43,33 +43,36 @@ SETUP_FINALLY and POP_BLOCK. In 3.11, the SETUP_FINALLY and POP_BLOCK are eliminated, replaced with a table to determine where to jump to when an exception is raised. - 2 0 NOP - - 3 2 LOAD_GLOBAL 0 (g) - 4 LOAD_CONST 1 (0) - 6 CALL_NO_KW 1 - 8 POP_TOP - 10 LOAD_CONST 0 (None) - 12 RETURN_VALUE - >> 14 PUSH_EXC_INFO - - 4 16 POP_TOP - 18 POP_TOP - 20 POP_TOP - - 5 22 POP_EXCEPT - 24 LOAD_CONST 2 ('fail') - 26 RETURN_VALUE - >> 28 POP_EXCEPT_AND_RERAISE + 1 0 RESUME 0 + + 2 2 NOP + + 3 4 LOAD_GLOBAL 1 (NULL + g) + 16 LOAD_CONST 1 (0) + 18 PRECALL 1 + 22 CALL 1 + 32 POP_TOP + 34 LOAD_CONST 0 (None) + 36 RETURN_VALUE + >> 38 PUSH_EXC_INFO + + 4 40 POP_TOP + + 5 42 POP_EXCEPT + 44 LOAD_CONST 2 ('fail') + 46 RETURN_VALUE + >> 48 COPY 3 + 50 POP_EXCEPT + 52 RERAISE 1 ExceptionTable: - 2 to 8 -> 14 [0] - 14 to 20 -> 28 [3] lasti + 4 to 32 -> 38 [0] + 38 to 40 -> 48 [1] lasti -(Note this code is from an early 3.11 alpha, the NOP may well have be removed before release). +(Note this code is from 3.11, later versions may have slightly different bytecode.) If an instruction raises an exception then its offset is used to find the target to jump to. -For example, the CALL_NO_KW at offset 6, falls into the range 2 to 8. -So, if g() raises an exception, then control jumps to offset 14. +For example, the CALL at offset 22, falls into the range 4 to 32. +So, if g() raises an exception, then control jumps to offset 38. Unwinding @@ -84,9 +87,9 @@ This information is stored in the exception table, described below. If there is no relevant entry, the exception bubbles up to the caller. If there is an entry, then: - 1. pop values from the stack until it matches the stack depth for the handler, + 1. pop values from the stack until it matches the stack depth for the handler. 2. if 'lasti' is true, then push the offset that the exception was raised at. - 3. push the exception to the stack as three values: traceback, value, type, + 3. push the exception to the stack. 4. jump to the target offset and resume execution. diff --git a/Objects/exceptions.c b/Objects/exceptions.c index e212e02352efb3..3703fdcda4dbe9 100644 --- a/Objects/exceptions.c +++ b/Objects/exceptions.c @@ -600,17 +600,9 @@ StopIteration_traverse(PyStopIterationObject *self, visitproc visit, void *arg) return BaseException_traverse((PyBaseExceptionObject *)self, visit, arg); } -ComplexExtendsException( - PyExc_Exception, /* base */ - StopIteration, /* name */ - StopIteration, /* prefix for *_init, etc */ - 0, /* new */ - 0, /* methods */ - StopIteration_members, /* members */ - 0, /* getset */ - 0, /* str */ - "Signal the end from iterator.__next__()." -); +ComplexExtendsException(PyExc_Exception, StopIteration, StopIteration, + 0, 0, StopIteration_members, 0, 0, + "Signal the end from iterator.__next__()."); /* @@ -1114,6 +1106,7 @@ exceptiongroup_split_recursive(PyObject *exc, assert(PyList_CheckExact(match_list)); if (PyList_Append(match_list, rec_result.match) < 0) { Py_DECREF(rec_result.match); + Py_XDECREF(rec_result.rest); goto done; } Py_DECREF(rec_result.match); @@ -3222,6 +3215,7 @@ MemoryError_new(PyTypeObject *type, PyObject *args, PyObject *kwds) self = state->memerrors_freelist; self->args = PyTuple_New(0); /* This shouldn't happen since the empty tuple is persistent */ + if (self->args == NULL) { return NULL; } @@ -3237,6 +3231,8 @@ MemoryError_new(PyTypeObject *type, PyObject *args, PyObject *kwds) static void MemoryError_dealloc(PyBaseExceptionObject *self) { + _PyObject_GC_UNTRACK(self); + BaseException_clear(self); /* If this is a subclass of MemoryError, we don't need to @@ -3246,8 +3242,6 @@ MemoryError_dealloc(PyBaseExceptionObject *self) return; } - _PyObject_GC_UNTRACK(self); - struct _Py_exc_state *state = get_exc_state(); if (state->memerrors_numfree >= MEMERRORS_SAVE) { Py_TYPE(self)->tp_free((PyObject *)self); @@ -3564,8 +3558,7 @@ _PyExc_InitTypes(PyInterpreterState *interp) for (size_t i=0; i < Py_ARRAY_LENGTH(static_exceptions); i++) { PyTypeObject *exc = static_exceptions[i].exc; - - if (PyType_Ready(exc) < 0) { + if (_PyStaticType_InitBuiltin(exc) < 0) { return -1; } } @@ -3642,6 +3635,11 @@ _PyExc_InitState(PyInterpreterState *interp) ADD_ERRNO(InterruptedError, EINTR); ADD_ERRNO(PermissionError, EACCES); ADD_ERRNO(PermissionError, EPERM); +#ifdef ENOTCAPABLE + // Extension for WASI capability-based security. Process lacks + // capability to access a resource. + ADD_ERRNO(PermissionError, ENOTCAPABLE); +#endif ADD_ERRNO(ProcessLookupError, ESRCH); ADD_ERRNO(TimeoutError, ETIMEDOUT); diff --git a/Objects/fileobject.c b/Objects/fileobject.c index 8dba5b9aea6db1..cbc57412134d3e 100644 --- a/Objects/fileobject.c +++ b/Objects/fileobject.c @@ -32,16 +32,16 @@ PyObject * PyFile_FromFd(int fd, const char *name, const char *mode, int buffering, const char *encoding, const char *errors, const char *newline, int closefd) { - PyObject *io, *stream; + PyObject *open, *stream; /* import _io in case we are being used to open io.py */ - io = PyImport_ImportModule("_io"); - if (io == NULL) + open = _PyImport_GetModuleAttrString("_io", "open"); + if (open == NULL) return NULL; - stream = _PyObject_CallMethod(io, &_Py_ID(open), "isisssO", fd, mode, + stream = PyObject_CallFunction(open, "isisssO", fd, mode, buffering, encoding, errors, newline, closefd ? Py_True : Py_False); - Py_DECREF(io); + Py_DECREF(open); if (stream == NULL) return NULL; /* ignore name attribute because the name attribute of _BufferedIOMixin @@ -490,7 +490,7 @@ PyFile_SetOpenCodeHook(Py_OpenCodeHookFunction hook, void *userData) { PyObject * PyFile_OpenCodeObject(PyObject *path) { - PyObject *iomod, *f = NULL; + PyObject *f = NULL; if (!PyUnicode_Check(path)) { PyErr_Format(PyExc_TypeError, "'path' must be 'str', not '%.200s'", @@ -502,10 +502,10 @@ PyFile_OpenCodeObject(PyObject *path) if (hook) { f = hook(path, _PyRuntime.open_code_userdata); } else { - iomod = PyImport_ImportModule("_io"); - if (iomod) { - f = _PyObject_CallMethod(iomod, &_Py_ID(open), "Os", path, "rb"); - Py_DECREF(iomod); + PyObject *open = _PyImport_GetModuleAttrString("_io", "open"); + if (open) { + f = PyObject_CallFunction(open, "Os", path, "rb"); + Py_DECREF(open); } } diff --git a/Objects/floatobject.c b/Objects/floatobject.c index 86861b7e28dceb..c4353572d32d8e 100644 --- a/Objects/floatobject.c +++ b/Objects/floatobject.c @@ -71,7 +71,7 @@ static PyStructSequence_Field floatinfo_fields[] = { {"min_exp", "DBL_MIN_EXP -- minimum int e such that radix**(e-1) " "is a normalized float"}, {"min_10_exp", "DBL_MIN_10_EXP -- minimum int e such that 10**e is " - "a normalized"}, + "a normalized float"}, {"dig", "DBL_DIG -- maximum number of decimal digits that " "can be faithfully represented in a float"}, {"mant_dig", "DBL_MANT_DIG -- mantissa digits"}, @@ -162,11 +162,18 @@ float_from_string_inner(const char *s, Py_ssize_t len, void *obj) double x; const char *end; const char *last = s + len; - /* strip space */ + /* strip leading whitespace */ while (s < last && Py_ISSPACE(*s)) { s++; } + if (s == last) { + PyErr_Format(PyExc_ValueError, + "could not convert string to float: " + "%R", obj); + return NULL; + } + /* strip trailing whitespace */ while (s < last - 1 && Py_ISSPACE(last[-1])) { last--; } @@ -1992,7 +1999,8 @@ _PyFloat_InitTypes(PyInterpreterState *interp) /* Init float info */ if (FloatInfoType.tp_name == NULL) { - if (PyStructSequence_InitType2(&FloatInfoType, &floatinfo_desc) < 0) { + if (_PyStructSequence_InitBuiltin(&FloatInfoType, + &floatinfo_desc) < 0) { return _PyStatus_ERR("can't init float info type"); } } diff --git a/Objects/frameobject.c b/Objects/frameobject.c index 60f0f2f4edd388..2e377794312612 100644 --- a/Objects/frameobject.c +++ b/Objects/frameobject.c @@ -137,9 +137,25 @@ typedef enum kind { Iterator = 1, Except = 2, Object = 3, + Null = 4, + Lasti = 5, } Kind; -#define BITS_PER_BLOCK 2 +static int +compatible_kind(Kind from, Kind to) { + if (to == 0) { + return 0; + } + if (to == Object) { + return from != Null; + } + if (to == Null) { + return 1; + } + return from == to; +} + +#define BITS_PER_BLOCK 3 #define UNINITIALIZED -2 #define OVERFLOWED -1 @@ -147,6 +163,8 @@ typedef enum kind { #define MAX_STACK_ENTRIES (63/BITS_PER_BLOCK) #define WILL_OVERFLOW (1ULL<<((MAX_STACK_ENTRIES-1)*BITS_PER_BLOCK)) +#define EMPTY_STACK 0 + static inline int64_t push_value(int64_t stack, Kind kind) { @@ -164,12 +182,97 @@ pop_value(int64_t stack) return Py_ARITHMETIC_RIGHT_SHIFT(int64_t, stack, BITS_PER_BLOCK); } +#define MASK ((1<<BITS_PER_BLOCK)-1) + static inline Kind top_of_stack(int64_t stack) { - return stack & ((1<<BITS_PER_BLOCK)-1); + return stack & MASK; +} + +static inline Kind +peek(int64_t stack, int n) +{ + assert(n >= 1); + return (stack>>(BITS_PER_BLOCK*(n-1))) & MASK; +} + +static Kind +stack_swap(int64_t stack, int n) +{ + assert(n >= 1); + Kind to_swap = peek(stack, n); + Kind top = top_of_stack(stack); + int shift = BITS_PER_BLOCK*(n-1); + int64_t replaced_low = (stack & ~(MASK << shift)) | (top << shift); + int64_t replaced_top = (replaced_low & ~MASK) | to_swap; + return replaced_top; +} + +static int64_t +pop_to_level(int64_t stack, int level) { + if (level == 0) { + return EMPTY_STACK; + } + int64_t max_item = (1<<BITS_PER_BLOCK) - 1; + int64_t level_max_stack = max_item << ((level-1) * BITS_PER_BLOCK); + while (stack > level_max_stack) { + stack = pop_value(stack); + } + return stack; +} + +#if 0 +/* These functions are useful for debugging the stack marking code */ + +static char +tos_char(int64_t stack) { + switch(top_of_stack(stack)) { + case Iterator: + return 'I'; + case Except: + return 'E'; + case Object: + return 'O'; + case Lasti: + return 'L'; + case Null: + return 'N'; + } + return '?'; } +static void +print_stack(int64_t stack) { + if (stack < 0) { + if (stack == UNINITIALIZED) { + printf("---"); + } + else if (stack == OVERFLOWED) { + printf("OVERFLOWED"); + } + else { + printf("??"); + } + return; + } + while (stack) { + printf("%c", tos_char(stack)); + stack = pop_value(stack); + } +} + +static void +print_stacks(int64_t *stacks, int n) { + for (int i = 0; i < n; i++) { + printf("%d: ", i); + print_stack(stacks[i]); + printf("\n"); + } +} + +#endif + static int64_t * mark_stacks(PyCodeObject *code_obj, int len) { @@ -189,7 +292,7 @@ mark_stacks(PyCodeObject *code_obj, int len) for (int i = 1; i <= len; i++) { stacks[i] = UNINITIALIZED; } - stacks[0] = 0; + stacks[0] = EMPTY_STACK; if (code_obj->co_flags & (CO_GENERATOR | CO_COROUTINE | CO_ASYNC_GENERATOR)) { // Generators get sent None while starting: @@ -198,6 +301,7 @@ mark_stacks(PyCodeObject *code_obj, int len) int todo = 1; while (todo) { todo = 0; + /* Scan instructions */ for (i = 0; i < len; i++) { int64_t next_stack = stacks[i]; if (next_stack == UNINITIALIZED) { @@ -207,21 +311,12 @@ mark_stacks(PyCodeObject *code_obj, int len) switch (opcode) { case JUMP_IF_FALSE_OR_POP: case JUMP_IF_TRUE_OR_POP: - case POP_JUMP_FORWARD_IF_FALSE: - case POP_JUMP_BACKWARD_IF_FALSE: - case POP_JUMP_FORWARD_IF_TRUE: - case POP_JUMP_BACKWARD_IF_TRUE: + case POP_JUMP_IF_FALSE: + case POP_JUMP_IF_TRUE: { int64_t target_stack; int j = get_arg(code, i); - if (opcode == POP_JUMP_FORWARD_IF_FALSE || - opcode == POP_JUMP_FORWARD_IF_TRUE) { - j += i + 1; - } - else if (opcode == POP_JUMP_BACKWARD_IF_FALSE || - opcode == POP_JUMP_BACKWARD_IF_TRUE) { - j = i + 1 - j; - } + j += i + 1; assert(j < len); if (stacks[j] == UNINITIALIZED && j < i) { todo = 1; @@ -241,10 +336,6 @@ mark_stacks(PyCodeObject *code_obj, int len) stacks[i+1] = next_stack; break; } - case POP_EXCEPT: - next_stack = pop_value(pop_value(pop_value(next_stack))); - stacks[i+1] = next_stack; - break; case SEND: j = get_arg(code, i) + i + 1; assert(j < len); @@ -278,29 +369,89 @@ mark_stacks(PyCodeObject *code_obj, int len) { int64_t target_stack = pop_value(next_stack); stacks[i+1] = push_value(next_stack, Object); - j = get_arg(code, i) + i + 1; + j = get_arg(code, i) + 1 + INLINE_CACHE_ENTRIES_FOR_ITER + i; assert(j < len); assert(stacks[j] == UNINITIALIZED || stacks[j] == target_stack); stacks[j] = target_stack; break; } case END_ASYNC_FOR: - next_stack = pop_value(pop_value(pop_value(next_stack))); + next_stack = pop_value(pop_value(next_stack)); stacks[i+1] = next_stack; break; case PUSH_EXC_INFO: - next_stack = push_value(next_stack, Except); - next_stack = push_value(next_stack, Except); next_stack = push_value(next_stack, Except); stacks[i+1] = next_stack; + break; + case POP_EXCEPT: + assert(top_of_stack(next_stack) == Except); + next_stack = pop_value(next_stack); + stacks[i+1] = next_stack; + break; case RETURN_VALUE: + assert(pop_value(next_stack) == EMPTY_STACK); + assert(top_of_stack(next_stack) == Object); + break; case RAISE_VARARGS: + break; case RERAISE: + assert(top_of_stack(next_stack) == Except); /* End of block */ break; + case PUSH_NULL: + next_stack = push_value(next_stack, Null); + stacks[i+1] = next_stack; + break; + case LOAD_GLOBAL: + { + int j = get_arg(code, i); + if (j & 1) { + next_stack = push_value(next_stack, Null); + } + next_stack = push_value(next_stack, Object); + stacks[i+1] = next_stack; + break; + } + case LOAD_ATTR: + { + assert(top_of_stack(next_stack) == Object); + int j = get_arg(code, i); + if (j & 1) { + next_stack = pop_value(next_stack); + next_stack = push_value(next_stack, Null); + next_stack = push_value(next_stack, Object); + } + stacks[i+1] = next_stack; + break; + } + case CALL: + { + int args = get_arg(code, i); + for (int j = 0; j < args+2; j++) { + next_stack = pop_value(next_stack); + } + next_stack = push_value(next_stack, Object); + stacks[i+1] = next_stack; + break; + } + case SWAP: + { + int n = get_arg(code, i); + next_stack = stack_swap(next_stack, n); + stacks[i+1] = next_stack; + break; + } + case COPY: + { + int n = get_arg(code, i); + next_stack = push_value(next_stack, peek(next_stack, n)); + stacks[i+1] = next_stack; + break; + } default: { - int delta = PyCompile_OpcodeStackEffect(opcode, _Py_OPARG(code[i])); + int delta = PyCompile_OpcodeStackEffect(opcode, get_arg(code, i)); + assert(delta != PY_INVALID_STACK_EFFECT); while (delta < 0) { next_stack = pop_value(next_stack); delta++; @@ -313,22 +464,39 @@ mark_stacks(PyCodeObject *code_obj, int len) } } } + /* Scan exception table */ + unsigned char *start = (unsigned char *)PyBytes_AS_STRING(code_obj->co_exceptiontable); + unsigned char *end = start + PyBytes_GET_SIZE(code_obj->co_exceptiontable); + unsigned char *scan = start; + while (scan < end) { + int start_offset, size, handler; + scan = parse_varint(scan, &start_offset); + assert(start_offset >= 0 && start_offset < len); + scan = parse_varint(scan, &size); + assert(size >= 0 && start_offset+size <= len); + scan = parse_varint(scan, &handler); + assert(handler >= 0 && handler < len); + int depth_and_lasti; + scan = parse_varint(scan, &depth_and_lasti); + int level = depth_and_lasti >> 1; + int lasti = depth_and_lasti & 1; + if (stacks[start_offset] != UNINITIALIZED) { + if (stacks[handler] == UNINITIALIZED) { + todo = 1; + uint64_t target_stack = pop_to_level(stacks[start_offset], level); + if (lasti) { + target_stack = push_value(target_stack, Lasti); + } + target_stack = push_value(target_stack, Except); + stacks[handler] = target_stack; + } + } + } } Py_DECREF(co_code); return stacks; } -static int -compatible_kind(Kind from, Kind to) { - if (to == 0) { - return 0; - } - if (to == Object) { - return 1; - } - return from == to; -} - static int compatible_stack(int64_t from_stack, int64_t to_stack) { @@ -364,8 +532,11 @@ explain_incompatible_stack(int64_t to_stack) switch(target_kind) { case Except: return "can't jump into an 'except' block as there's no exception"; + case Lasti: + return "can't jump into a re-raising block as there's no location"; case Object: - return "differing stack depth"; + case Null: + return "incompatible stacks"; case Iterator: return "can't jump into the body of a for loop"; default: @@ -414,13 +585,6 @@ first_line_not_before(int *lines, int len, int line) return result; } -static void -frame_stack_pop(PyFrameObject *f) -{ - PyObject *v = _PyFrame_StackPop(f->f_frame); - Py_DECREF(v); -} - static PyFrameState _PyFrame_GetState(PyFrameObject *frame) { @@ -455,6 +619,36 @@ _PyFrame_GetState(PyFrameObject *frame) Py_UNREACHABLE(); } +static void +add_load_fast_null_checks(PyCodeObject *co) +{ + int changed = 0; + _Py_CODEUNIT *instructions = _PyCode_CODE(co); + for (Py_ssize_t i = 0; i < Py_SIZE(co); i++) { + int opcode = _Py_OPCODE(instructions[i]); + switch (opcode) { + case LOAD_FAST: + case LOAD_FAST__LOAD_FAST: + case LOAD_FAST__LOAD_CONST: + changed = 1; + _Py_SET_OPCODE(instructions[i], LOAD_FAST_CHECK); + break; + case LOAD_CONST__LOAD_FAST: + changed = 1; + _Py_SET_OPCODE(instructions[i], LOAD_CONST); + break; + case STORE_FAST__LOAD_FAST: + changed = 1; + _Py_SET_OPCODE(instructions[i], STORE_FAST); + break; + } + i += _PyOpcode_Caches[_PyOpcode_Deopt[opcode]]; + } + if (changed) { + // invalidate cached co_code object + Py_CLEAR(co->_co_code); + } +} /* Setter for f_lineno - you can set f_lineno from within a trace function in * order to jump to a given line of code, subject to some restrictions. Most @@ -545,6 +739,8 @@ frame_setlineno(PyFrameObject *f, PyObject* p_new_lineno, void *Py_UNUSED(ignore return -1; } + add_load_fast_null_checks(f->f_frame->f_code); + /* PyCode_NewWithPosOnlyArgs limits co_code to be under INT_MAX so this * should never overflow. */ int len = (int)Py_SIZE(f->f_frame->f_code); @@ -588,7 +784,7 @@ frame_setlineno(PyFrameObject *f, PyObject* p_new_lineno, void *Py_UNUSED(ignore msg = "stack to deep to analyze"; } else if (start_stack == UNINITIALIZED) { - msg = "can't jump from within an exception handler"; + msg = "can't jump from unreachable code"; } else { msg = explain_incompatible_stack(target_stack); @@ -608,7 +804,20 @@ frame_setlineno(PyFrameObject *f, PyObject* p_new_lineno, void *Py_UNUSED(ignore start_stack = pop_value(start_stack); } while (start_stack > best_stack) { - frame_stack_pop(f); + if (top_of_stack(start_stack) == Except) { + /* Pop exception stack as well as the evaluation stack */ + PyThreadState *tstate = _PyThreadState_GET(); + _PyErr_StackItem *exc_info = tstate->exc_info; + PyObject *value = exc_info->exc_value; + PyObject *exc = _PyFrame_StackPop(f->f_frame); + assert(PyExceptionInstance_Check(exc) || exc == Py_None); + exc_info->exc_value = exc; + Py_XDECREF(value); + } + else { + PyObject *v = _PyFrame_StackPop(f->f_frame); + Py_XDECREF(v); + } start_stack = pop_value(start_stack); } /* Finally set the new lasti and return OK. */ @@ -688,7 +897,7 @@ frame_dealloc(PyFrameObject *f) /* Don't clear code object until the end */ co = frame->f_code; frame->f_code = NULL; - Py_CLEAR(frame->f_func); + Py_CLEAR(frame->f_funcobj); Py_CLEAR(frame->f_locals); PyObject **locals = _PyFrame_GetLocalsArray(frame); for (int i = 0; i < frame->stacktop; i++) { @@ -828,8 +1037,9 @@ init_frame(_PyInterpreterFrame *frame, PyFunctionObject *func, PyObject *locals) { /* _PyFrame_InitializeSpecials consumes reference to func */ Py_INCREF(func); + Py_XINCREF(locals); PyCodeObject *code = (PyCodeObject *)func->func_code; - _PyFrame_InitializeSpecials(frame, func, locals, code->co_nlocalsplus); + _PyFrame_InitializeSpecials(frame, func, locals, code); for (Py_ssize_t i = 0; i < code->co_nlocalsplus; i++) { frame->localsplus[i] = NULL; } @@ -931,10 +1141,12 @@ _PyFrame_FastToLocalsWithError(_PyInterpreterFrame *frame) { // COPY_FREE_VARS has no quickened forms, so no need to use _PyOpcode_Deopt // here: int lasti = _PyInterpreterFrame_LASTI(frame); - if (lasti < 0 && _Py_OPCODE(_PyCode_CODE(co)[0]) == COPY_FREE_VARS) { + if (lasti < 0 && _Py_OPCODE(_PyCode_CODE(co)[0]) == COPY_FREE_VARS + && PyFunction_Check(frame->f_funcobj)) + { /* Free vars have not been initialized -- Do that */ PyCodeObject *co = frame->f_code; - PyObject *closure = frame->f_func->func_closure; + PyObject *closure = ((PyFunctionObject *)frame->f_funcobj)->func_closure; int offset = co->co_nlocals + co->co_nplaincellvars; for (int i = 0; i < co->co_nfreevars; ++i) { PyObject *o = PyTuple_GET_ITEM(closure, i); @@ -1047,6 +1259,7 @@ _PyFrame_LocalsToFast(_PyInterpreterFrame *frame, int clear) } fast = _PyFrame_GetLocalsArray(frame); co = frame->f_code; + bool added_null_checks = false; PyErr_Fetch(&error_type, &error_value, &error_traceback); for (int i = 0; i < co->co_nlocalsplus; i++) { @@ -1066,6 +1279,10 @@ _PyFrame_LocalsToFast(_PyInterpreterFrame *frame, int clear) } } PyObject *oldvalue = fast[i]; + if (!added_null_checks && oldvalue != NULL && value == NULL) { + add_load_fast_null_checks(co); + added_null_checks = true; + } PyObject *cell = NULL; if (kind == CO_FAST_FREE) { // The cell was set when the frame was created from @@ -1133,8 +1350,14 @@ PyFrame_GetBack(PyFrameObject *frame) { assert(frame != NULL); PyFrameObject *back = frame->f_back; - if (back == NULL && frame->f_frame->previous != NULL) { - back = _PyFrame_GetFrameObject(frame->f_frame->previous); + if (back == NULL) { + _PyInterpreterFrame *prev = frame->f_frame->previous; + while (prev && _PyFrame_IsIncomplete(prev)) { + prev = prev->previous; + } + if (prev) { + back = _PyFrame_GetFrameObject(prev); + } } Py_XINCREF(back); return back; diff --git a/Objects/funcobject.c b/Objects/funcobject.c index 32b4155c03e6ae..7f257a9986987b 100644 --- a/Objects/funcobject.c +++ b/Objects/funcobject.c @@ -134,6 +134,9 @@ uint32_t _PyFunction_GetVersionForCurrentState(PyFunctionObject *func) if (func->func_version != 0) { return func->func_version; } + if (func->vectorcall != _PyFunction_Vectorcall) { + return 0; + } if (next_func_version == 0) { return 0; } @@ -209,6 +212,14 @@ PyFunction_SetDefaults(PyObject *op, PyObject *defaults) return 0; } +void +PyFunction_SetVectorcall(PyFunctionObject *func, vectorcallfunc vectorcall) +{ + assert(func != NULL); + func->func_version = 0; + func->vectorcall = vectorcall; +} + PyObject * PyFunction_GetKwDefaults(PyObject *op) { diff --git a/Objects/genericaliasobject.c b/Objects/genericaliasobject.c index 39fd70999ecbe5..19f011fd3a7437 100644 --- a/Objects/genericaliasobject.c +++ b/Objects/genericaliasobject.c @@ -219,6 +219,10 @@ _Py_make_parameters(PyObject *args) for (Py_ssize_t iarg = 0; iarg < nargs; iarg++) { PyObject *t = PyTuple_GET_ITEM(args, iarg); PyObject *subst; + // We don't want __parameters__ descriptor of a bare Python class. + if (PyType_Check(t)) { + continue; + } if (_PyObject_LookupAttr(t, &_Py_ID(__typing_subst__), &subst) < 0) { Py_DECREF(parameters); return NULL; @@ -269,7 +273,7 @@ _Py_make_parameters(PyObject *args) a non-empty tuple, return a new reference to obj. */ static PyObject * subs_tvars(PyObject *obj, PyObject *params, - PyObject **argitems, Py_ssize_t nargs, Py_ssize_t varparam) + PyObject **argitems, Py_ssize_t nargs) { PyObject *subparams; if (_PyObject_LookupAttr(obj, &_Py_ID(__parameters__), &subparams) < 0) { @@ -283,28 +287,28 @@ subs_tvars(PyObject *obj, PyObject *params, Py_DECREF(subparams); return NULL; } - for (Py_ssize_t i = 0, j = 0; i < nsubargs; ++i) { + Py_ssize_t j = 0; + for (Py_ssize_t i = 0; i < nsubargs; ++i) { PyObject *arg = PyTuple_GET_ITEM(subparams, i); Py_ssize_t iparam = tuple_index(params, nparams, arg); - if (iparam == varparam) { - j = tuple_extend(&subargs, j, - argitems + iparam, nargs - nparams + 1); - if (j < 0) { - return NULL; - } - } - else { - if (iparam >= 0) { - if (iparam > varparam) { - iparam += nargs - nsubargs; + if (iparam >= 0) { + PyObject *param = PyTuple_GET_ITEM(params, iparam); + arg = argitems[iparam]; + if (Py_TYPE(param)->tp_iter && PyTuple_Check(arg)) { // TypeVarTuple + j = tuple_extend(&subargs, j, + &PyTuple_GET_ITEM(arg, 0), + PyTuple_GET_SIZE(arg)); + if (j < 0) { + return NULL; } - arg = argitems[iparam]; + continue; } - Py_INCREF(arg); - PyTuple_SET_ITEM(subargs, j, arg); - j++; } + Py_INCREF(arg); + PyTuple_SET_ITEM(subargs, j, arg); + j++; } + assert(j == PyTuple_GET_SIZE(subargs)); obj = PyObject_GetItem(obj, subargs); @@ -409,39 +413,37 @@ _Py_subs_parameters(PyObject *self, PyObject *args, PyObject *parameters, PyObje self); } item = _unpack_args(item); - int is_tuple = PyTuple_Check(item); - Py_ssize_t nitems = is_tuple ? PyTuple_GET_SIZE(item) : 1; - PyObject **argitems = is_tuple ? &PyTuple_GET_ITEM(item, 0) : &item; - Py_ssize_t varparam = nparams; for (Py_ssize_t i = 0; i < nparams; i++) { PyObject *param = PyTuple_GET_ITEM(parameters, i); - if (Py_TYPE(param)->tp_iter) { // TypeVarTuple - if (varparam < nparams) { - Py_DECREF(item); - return PyErr_Format(PyExc_TypeError, - "More than one TypeVarTuple parameter in %S", - self); - } - varparam = i; - } - } - if (varparam < nparams) { - if (nitems < nparams - 1) { + PyObject *prepare, *tmp; + if (_PyObject_LookupAttr(param, &_Py_ID(__typing_prepare_subst__), &prepare) < 0) { Py_DECREF(item); - return PyErr_Format(PyExc_TypeError, - "Too few arguments for %R", - self); + return NULL; } - } - else { - if (nitems != nparams) { - Py_DECREF(item); - return PyErr_Format(PyExc_TypeError, - "Too %s arguments for %R; actual %zd, expected %zd", - nitems > nparams ? "many" : "few", - self, nitems, nparams); + if (prepare && prepare != Py_None) { + if (PyTuple_Check(item)) { + tmp = PyObject_CallFunction(prepare, "OO", self, item); + } + else { + tmp = PyObject_CallFunction(prepare, "O(O)", self, item); + } + Py_DECREF(prepare); + Py_SETREF(item, tmp); + if (item == NULL) { + return NULL; + } } } + int is_tuple = PyTuple_Check(item); + Py_ssize_t nitems = is_tuple ? PyTuple_GET_SIZE(item) : 1; + PyObject **argitems = is_tuple ? &PyTuple_GET_ITEM(item, 0) : &item; + if (nitems != nparams) { + Py_DECREF(item); + return PyErr_Format(PyExc_TypeError, + "Too %s arguments for %R; actual %zd, expected %zd", + nitems > nparams ? "many" : "few", + self, nitems, nparams); + } /* Replace all type variables (specified by parameters) with corresponding values specified by argitems. t = list[T]; t[int] -> newargs = [int] @@ -471,22 +473,11 @@ _Py_subs_parameters(PyObject *self, PyObject *args, PyObject *parameters, PyObje if (subst) { Py_ssize_t iparam = tuple_index(parameters, nparams, arg); assert(iparam >= 0); - if (iparam == varparam) { - Py_DECREF(subst); - Py_DECREF(newargs); - Py_DECREF(item); - PyErr_SetString(PyExc_TypeError, - "Substitution of bare TypeVarTuple is not supported"); - return NULL; - } - if (iparam > varparam) { - iparam += nitems - nparams; - } arg = PyObject_CallOneArg(subst, argitems[iparam]); Py_DECREF(subst); } else { - arg = subs_tvars(arg, parameters, argitems, nitems, varparam); + arg = subs_tvars(arg, parameters, argitems, nitems); } if (arg == NULL) { Py_DECREF(newargs); @@ -596,6 +587,7 @@ ga_vectorcall(PyObject *self, PyObject *const *args, } static const char* const attr_exceptions[] = { + "__class__", "__origin__", "__args__", "__unpacked__", diff --git a/Objects/genobject.c b/Objects/genobject.c index 2b45e28cbf16df..da4afecc69c8c1 100644 --- a/Objects/genobject.c +++ b/Objects/genobject.c @@ -485,26 +485,7 @@ _gen_throw(PyGenObject *gen, int close_on_genexit, } Py_DECREF(yf); if (!ret) { - PyObject *val; - /* Pop subiterator from stack */ - assert(gen->gi_frame_state < FRAME_CLEARED); - ret = _PyFrame_StackPop((_PyInterpreterFrame *)gen->gi_iframe); - assert(ret == yf); - Py_DECREF(ret); - // XXX: Performing this jump ourselves is awkward and problematic. - // See https://github.com/python/cpython/pull/31968. - /* Termination repetition of SEND loop */ - assert(_PyInterpreterFrame_LASTI(frame) >= 0); - /* Backup to SEND */ - assert(_Py_OPCODE(frame->prev_instr[-1]) == SEND); - int jump = _Py_OPARG(frame->prev_instr[-1]); - frame->prev_instr += jump - 1; - if (_PyGen_FetchStopIterationValue(&val) == 0) { - ret = gen_send(gen, val); - Py_DECREF(val); - } else { - ret = gen_send_ex(gen, Py_None, 1, 0); - } + ret = gen_send_ex(gen, Py_None, 1, 0); } return ret; } diff --git a/Objects/listobject.c b/Objects/listobject.c index 0a99ec919b8c87..6005466f95fdb1 100644 --- a/Objects/listobject.c +++ b/Objects/listobject.c @@ -3,7 +3,7 @@ #include "Python.h" #include "pycore_abstract.h" // _PyIndex_Check() #include "pycore_interp.h" // PyInterpreterState.list -#include "pycore_list.h" // struct _Py_list_state +#include "pycore_list.h" // struct _Py_list_state, _PyListIterObject #include "pycore_object.h" // _PyObject_GC_TRACK() #include "pycore_tuple.h" // _PyTuple_FromArray() #include <stddef.h> @@ -551,47 +551,41 @@ list_concat(PyListObject *a, PyObject *bb) static PyObject * list_repeat(PyListObject *a, Py_ssize_t n) { - Py_ssize_t size; - PyListObject *np; - if (n < 0) - n = 0; - if (n > 0 && Py_SIZE(a) > PY_SSIZE_T_MAX / n) - return PyErr_NoMemory(); - size = Py_SIZE(a) * n; - if (size == 0) + const Py_ssize_t input_size = Py_SIZE(a); + if (input_size == 0 || n <= 0) return PyList_New(0); - np = (PyListObject *) list_new_prealloc(size); + assert(n > 0); + + if (input_size > PY_SSIZE_T_MAX / n) + return PyErr_NoMemory(); + Py_ssize_t output_size = input_size * n; + + PyListObject *np = (PyListObject *) list_new_prealloc(output_size); if (np == NULL) return NULL; + PyObject **dest = np->ob_item; - PyObject **dest_end = dest + size; - if (Py_SIZE(a) == 1) { + if (input_size == 1) { PyObject *elem = a->ob_item[0]; - Py_SET_REFCNT(elem, Py_REFCNT(elem) + n); -#ifdef Py_REF_DEBUG - _Py_RefTotal += n; -#endif + _Py_RefcntAdd(elem, n); + PyObject **dest_end = dest + output_size; while (dest < dest_end) { *dest++ = elem; } } else { PyObject **src = a->ob_item; - PyObject **src_end = src + Py_SIZE(a); + PyObject **src_end = src + input_size; while (src < src_end) { - Py_SET_REFCNT(*src, Py_REFCNT(*src) + n); -#ifdef Py_REF_DEBUG - _Py_RefTotal += n; -#endif - *dest++ = *src++; - } - // Now src chases after dest in the same buffer - src = np->ob_item; - while (dest < dest_end) { + _Py_RefcntAdd(*src, n); *dest++ = *src++; } + + _Py_memory_repeat((char *)np->ob_item, sizeof(PyObject *)*output_size, + sizeof(PyObject *)*input_size); } - Py_SET_SIZE(np, size); + + Py_SET_SIZE(np, output_size); return (PyObject *) np; } @@ -743,12 +737,8 @@ PyList_SetSlice(PyObject *a, Py_ssize_t ilow, Py_ssize_t ihigh, PyObject *v) static PyObject * list_inplace_repeat(PyListObject *self, Py_ssize_t n) { - PyObject **items; - Py_ssize_t size, i, j, p; - - - size = PyList_GET_SIZE(self); - if (size == 0 || n == 1) { + Py_ssize_t input_size = PyList_GET_SIZE(self); + if (input_size == 0 || n == 1) { Py_INCREF(self); return (PyObject *)self; } @@ -759,22 +749,21 @@ list_inplace_repeat(PyListObject *self, Py_ssize_t n) return (PyObject *)self; } - if (size > PY_SSIZE_T_MAX / n) { + if (input_size > PY_SSIZE_T_MAX / n) { return PyErr_NoMemory(); } + Py_ssize_t output_size = input_size * n; - if (list_resize(self, size*n) < 0) + if (list_resize(self, output_size) < 0) return NULL; - p = size; - items = self->ob_item; - for (i = 1; i < n; i++) { /* Start counting at 1, not 0 */ - for (j = 0; j < size; j++) { - PyObject *o = items[j]; - Py_INCREF(o); - items[p++] = o; - } + PyObject **items = self->ob_item; + for (Py_ssize_t j = 0; j < input_size; j++) { + _Py_RefcntAdd(items[j], n-1); } + _Py_memory_repeat((char *)items, sizeof(PyObject *)*output_size, + sizeof(PyObject *)*input_size); + Py_INCREF(self); return (PyObject *)self; } @@ -1226,13 +1215,6 @@ struct s_MergeState { * of tuples. It may be set to safe_object_compare, but the idea is that hopefully * we can assume more, and use one of the special-case compares. */ int (*tuple_elem_compare)(PyObject *, PyObject *, MergeState *); - - /* Used by unsafe_tuple_compare to record whether the very first tuple - * elements resolved the last comparison attempt. If so, next time a - * method that may avoid PyObject_RichCompareBool() entirely is tried. - * 0 for false, 1 for true. - */ - int first_tuple_items_resolved_it; }; /* binarysort is the best method for sorting small arrays: it does @@ -2205,24 +2187,7 @@ unsafe_float_compare(PyObject *v, PyObject *w, MergeState *ms) * using the same pre-sort check as we use for ms->key_compare, * but run on the list [x[0] for x in L]. This allows us to optimize compares * on two levels (as long as [x[0] for x in L] is type-homogeneous.) The idea is - * that most tuple compares don't involve x[1:]. - * However, that may not be right. When it is right, we can win by calling the - * relatively cheap ms->tuple_elem_compare on the first pair of elements, to - * see whether v[0] < w[0] or w[0] < v[0]. If either are so, we're done. - * Else we proceed as in the tuple compare, comparing the remaining pairs via - * the probably more expensive PyObject_RichCompareBool(..., Py_EQ) until (if - * ever) that says "no, not equal!". Then, if we're still on the first pair, - * ms->tuple_elem_compare can resolve it, else PyObject_RichCompareBool(..., - * Py_LT) finishes the job. - * In any case, ms->first_tuple_items_resolved_it keeps track of whether the - * most recent tuple comparison was resolved by the first pair. If so, the - * next attempt starts by trying the cheap tests on the first pair again, else - * PyObject_RichCompareBool(..., Py_EQ) is used from the start. - * There are cases where PyObject_RichCompareBool(..., Py_EQ) is much cheaper! - * For example, that can return "almost immediately" if passed the same - * object twice (it special-cases object identity for Py_EQ), which can, - * potentially, be unboundedly faster than ms->tuple_elem_compare. - */ + * that most tuple compares don't involve x[1:]. */ static int unsafe_tuple_compare(PyObject *v, PyObject *w, MergeState *ms) { @@ -2238,52 +2203,26 @@ unsafe_tuple_compare(PyObject *v, PyObject *w, MergeState *ms) vt = (PyTupleObject *)v; wt = (PyTupleObject *)w; - i = 0; - if (ms->first_tuple_items_resolved_it) { - /* See whether fast compares of the first elements settle it. */ - k = ms->tuple_elem_compare(vt->ob_item[0], wt->ob_item[0], ms); - if (k) /* error, or v < w */ - return k; - k = ms->tuple_elem_compare(wt->ob_item[0], vt->ob_item[0], ms); - if (k > 0) /* w < v */ - return 0; - if (k < 0) /* error */ - return -1; - /* We have - * not (v[0] < w[0]) and not (w[0] < v[0]) - * which implies, for a total order, that the first elements are - * equal. So skip them in the loop. - */ - i = 1; - ms->first_tuple_items_resolved_it = 0; - } - /* Now first_tuple_items_resolved_it was 0 on entry, or was forced to 0 - * at the end of the `if` block just above. - */ - assert(! ms->first_tuple_items_resolved_it); vlen = Py_SIZE(vt); wlen = Py_SIZE(wt); - for (; i < vlen && i < wlen; i++) { + + for (i = 0; i < vlen && i < wlen; i++) { k = PyObject_RichCompareBool(vt->ob_item[i], wt->ob_item[i], Py_EQ); - if (!k) { /* not equal */ - if (i) { - return PyObject_RichCompareBool(vt->ob_item[i], wt->ob_item[i], - Py_LT); - } - else { - ms->first_tuple_items_resolved_it = 1; - return ms->tuple_elem_compare(vt->ob_item[0], wt->ob_item[0], - ms); - } - } if (k < 0) return -1; + if (!k) + break; } - /* all equal until we fell off the end */ - return vlen < wlen; - } + if (i >= vlen || i >= wlen) + return vlen < wlen; + + if (i == 0) + return ms->tuple_elem_compare(vt->ob_item[i], wt->ob_item[i], ms); + else + return PyObject_RichCompareBool(vt->ob_item[i], wt->ob_item[i], Py_LT); +} /* An adaptive, stable, natural mergesort. See listsort.txt. * Returns Py_None on success, NULL on error. Even in case of error, the @@ -2466,7 +2405,6 @@ list_sort_impl(PyListObject *self, PyObject *keyfunc, int reverse) } ms.key_compare = unsafe_tuple_compare; - ms.first_tuple_items_resolved_it = 1; /* be optimistic */ } } /* End of pre-sort check: ms is now set properly! */ @@ -2886,7 +2824,8 @@ static PyObject *list_iter(PyObject *seq); static PyObject *list_subscript(PyListObject*, PyObject*); static PyMethodDef list_methods[] = { - {"__getitem__", (PyCFunction)list_subscript, METH_O|METH_COEXIST, "x.__getitem__(y) <==> x[y]"}, + {"__getitem__", (PyCFunction)list_subscript, METH_O|METH_COEXIST, + PyDoc_STR("__getitem__($self, index, /)\n--\n\nReturn self[index].")}, LIST___REVERSED___METHODDEF LIST___SIZEOF___METHODDEF LIST_CLEAR_METHODDEF @@ -3188,19 +3127,13 @@ PyTypeObject PyList_Type = { /*********************** List Iterator **************************/ -typedef struct { - PyObject_HEAD - Py_ssize_t it_index; - PyListObject *it_seq; /* Set to NULL when iterator is exhausted */ -} listiterobject; - -static void listiter_dealloc(listiterobject *); -static int listiter_traverse(listiterobject *, visitproc, void *); -static PyObject *listiter_next(listiterobject *); -static PyObject *listiter_len(listiterobject *, PyObject *); +static void listiter_dealloc(_PyListIterObject *); +static int listiter_traverse(_PyListIterObject *, visitproc, void *); +static PyObject *listiter_next(_PyListIterObject *); +static PyObject *listiter_len(_PyListIterObject *, PyObject *); static PyObject *listiter_reduce_general(void *_it, int forward); -static PyObject *listiter_reduce(listiterobject *, PyObject *); -static PyObject *listiter_setstate(listiterobject *, PyObject *state); +static PyObject *listiter_reduce(_PyListIterObject *, PyObject *); +static PyObject *listiter_setstate(_PyListIterObject *, PyObject *state); PyDoc_STRVAR(length_hint_doc, "Private method returning an estimate of len(list(it))."); PyDoc_STRVAR(reduce_doc, "Return state information for pickling."); @@ -3216,7 +3149,7 @@ static PyMethodDef listiter_methods[] = { PyTypeObject PyListIter_Type = { PyVarObject_HEAD_INIT(&PyType_Type, 0) "list_iterator", /* tp_name */ - sizeof(listiterobject), /* tp_basicsize */ + sizeof(_PyListIterObject), /* tp_basicsize */ 0, /* tp_itemsize */ /* methods */ (destructor)listiter_dealloc, /* tp_dealloc */ @@ -3250,13 +3183,13 @@ PyTypeObject PyListIter_Type = { static PyObject * list_iter(PyObject *seq) { - listiterobject *it; + _PyListIterObject *it; if (!PyList_Check(seq)) { PyErr_BadInternalCall(); return NULL; } - it = PyObject_GC_New(listiterobject, &PyListIter_Type); + it = PyObject_GC_New(_PyListIterObject, &PyListIter_Type); if (it == NULL) return NULL; it->it_index = 0; @@ -3267,7 +3200,7 @@ list_iter(PyObject *seq) } static void -listiter_dealloc(listiterobject *it) +listiter_dealloc(_PyListIterObject *it) { _PyObject_GC_UNTRACK(it); Py_XDECREF(it->it_seq); @@ -3275,14 +3208,14 @@ listiter_dealloc(listiterobject *it) } static int -listiter_traverse(listiterobject *it, visitproc visit, void *arg) +listiter_traverse(_PyListIterObject *it, visitproc visit, void *arg) { Py_VISIT(it->it_seq); return 0; } static PyObject * -listiter_next(listiterobject *it) +listiter_next(_PyListIterObject *it) { PyListObject *seq; PyObject *item; @@ -3306,7 +3239,7 @@ listiter_next(listiterobject *it) } static PyObject * -listiter_len(listiterobject *it, PyObject *Py_UNUSED(ignored)) +listiter_len(_PyListIterObject *it, PyObject *Py_UNUSED(ignored)) { Py_ssize_t len; if (it->it_seq) { @@ -3318,13 +3251,13 @@ listiter_len(listiterobject *it, PyObject *Py_UNUSED(ignored)) } static PyObject * -listiter_reduce(listiterobject *it, PyObject *Py_UNUSED(ignored)) +listiter_reduce(_PyListIterObject *it, PyObject *Py_UNUSED(ignored)) { return listiter_reduce_general(it, 1); } static PyObject * -listiter_setstate(listiterobject *it, PyObject *state) +listiter_setstate(_PyListIterObject *it, PyObject *state) { Py_ssize_t index = PyLong_AsSsize_t(state); if (index == -1 && PyErr_Occurred()) @@ -3499,7 +3432,7 @@ listiter_reduce_general(void *_it, int forward) /* the objects are not the same, index is of different types! */ if (forward) { - listiterobject *it = (listiterobject *)_it; + _PyListIterObject *it = (_PyListIterObject *)_it; if (it->it_seq) { return Py_BuildValue("N(O)n", _PyEval_GetBuiltin(&_Py_ID(iter)), it->it_seq, it->it_index); diff --git a/Objects/longobject.c b/Objects/longobject.c index 14d5954f84849e..c0bade18221843 100644 --- a/Objects/longobject.c +++ b/Objects/longobject.c @@ -36,6 +36,9 @@ medium_value(PyLongObject *x) #define IS_SMALL_INT(ival) (-_PY_NSMALLNEGINTS <= (ival) && (ival) < _PY_NSMALLPOSINTS) #define IS_SMALL_UINT(ival) ((ival) < _PY_NSMALLPOSINTS) +#define _MAX_STR_DIGITS_ERROR_FMT_TO_INT "Exceeds the limit (%d) for integer string conversion: value has %zd digits; use sys.set_int_max_str_digits() to increase the limit" +#define _MAX_STR_DIGITS_ERROR_FMT_TO_STR "Exceeds the limit (%d) for integer string conversion; use sys.set_int_max_str_digits() to increase the limit" + static inline void _Py_DECREF_INT(PyLongObject *op) { @@ -262,6 +265,38 @@ _PyLong_FromSTwoDigits(stwodigits x) return _PyLong_FromLarge(x); } +int +_PyLong_AssignValue(PyObject **target, Py_ssize_t value) +{ + PyObject *old = *target; + if (IS_SMALL_INT(value)) { + *target = get_small_int(Py_SAFE_DOWNCAST(value, Py_ssize_t, sdigit)); + Py_XDECREF(old); + return 0; + } + else if (old != NULL && PyLong_CheckExact(old) && + Py_REFCNT(old) == 1 && Py_SIZE(old) == 1 && + (size_t)value <= PyLong_MASK) + { + // Mutate in place if there are no other references the old + // object. This avoids an allocation in a common case. + // Since the primary use-case is iterating over ranges, which + // are typically positive, only do this optimization + // for positive integers (for now). + ((PyLongObject *)old)->ob_digit[0] = + Py_SAFE_DOWNCAST(value, Py_ssize_t, digit); + return 0; + } + else { + *target = PyLong_FromSsize_t(value); + Py_XDECREF(old); + if (*target == NULL) { + return -1; + } + return 0; + } +} + /* If a freshly-allocated int is already shared, it must be a small integer, so negating it must go to PyLong_FromLong */ Py_LOCAL_INLINE(void) @@ -1724,6 +1759,23 @@ long_to_decimal_string_internal(PyObject *aa, size_a = Py_ABS(Py_SIZE(a)); negative = Py_SIZE(a) < 0; + /* quick and dirty pre-check for overflowing the decimal digit limit, + based on the inequality 10/3 >= log2(10) + + explanation in https://github.com/python/cpython/pull/96537 + */ + if (size_a >= 10 * _PY_LONG_MAX_STR_DIGITS_THRESHOLD + / (3 * PyLong_SHIFT) + 2) { + PyInterpreterState *interp = _PyInterpreterState_GET(); + int max_str_digits = interp->int_max_str_digits; + if ((max_str_digits > 0) && + (max_str_digits / (3 * PyLong_SHIFT) <= (size_a - 11) / 10)) { + PyErr_Format(PyExc_ValueError, _MAX_STR_DIGITS_ERROR_FMT_TO_STR, + max_str_digits); + return -1; + } + } + /* quick and dirty upper bound for the number of digits required to express a in base _PyLong_DECIMAL_BASE: @@ -1783,6 +1835,17 @@ long_to_decimal_string_internal(PyObject *aa, tenpow *= 10; strlen++; } + if (strlen > _PY_LONG_MAX_STR_DIGITS_THRESHOLD) { + PyInterpreterState *interp = _PyInterpreterState_GET(); + int max_str_digits = interp->int_max_str_digits; + Py_ssize_t strlen_nosign = strlen - negative; + if ((max_str_digits > 0) && (strlen_nosign > max_str_digits)) { + Py_DECREF(scratch); + PyErr_Format(PyExc_ValueError, _MAX_STR_DIGITS_ERROR_FMT_TO_STR, + max_str_digits); + return -1; + } + } if (writer) { if (_PyUnicodeWriter_Prepare(writer, strlen, '9') == -1) { Py_DECREF(scratch); @@ -2296,6 +2359,7 @@ PyLong_FromString(const char *str, char **pend, int base) start = str; if ((base & (base - 1)) == 0) { + /* binary bases are not limited by int_max_str_digits */ int res = long_from_binary_base(&str, base, &z); if (res < 0) { /* Syntax error. */ @@ -2447,6 +2511,17 @@ digit beyond the first. goto onError; } + /* Limit the size to avoid excessive computation attacks. */ + if (digits > _PY_LONG_MAX_STR_DIGITS_THRESHOLD) { + PyInterpreterState *interp = _PyInterpreterState_GET(); + int max_str_digits = interp->int_max_str_digits; + if ((max_str_digits > 0) && (digits > max_str_digits)) { + PyErr_Format(PyExc_ValueError, _MAX_STR_DIGITS_ERROR_FMT_TO_INT, + max_str_digits, digits); + return NULL; + } + } + /* Create an int object that can contain the largest possible * integer with this base and length. Note that there's no * need to initialize z->ob_digit -- no slot is read up before @@ -5323,6 +5398,7 @@ long_new_impl(PyTypeObject *type, PyObject *x, PyObject *obase) } return PyLong_FromLong(0L); } + /* default base and limit, forward to standard implementation */ if (obase == NULL) return PyNumber_Long(x); @@ -6058,6 +6134,8 @@ internal representation of integers. The attributes are read only."); static PyStructSequence_Field int_info_fields[] = { {"bits_per_digit", "size of a digit in bits"}, {"sizeof_digit", "size in bytes of the C type used to represent a digit"}, + {"default_max_str_digits", "maximum string conversion digits limitation"}, + {"str_digits_check_threshold", "minimum positive value for int_max_str_digits"}, {NULL, NULL} }; @@ -6065,7 +6143,7 @@ static PyStructSequence_Desc int_info_desc = { "sys.int_info", /* name */ int_info__doc__, /* doc */ int_info_fields, /* fields */ - 2 /* number of fields */ + 4 /* number of fields */ }; PyObject * @@ -6080,6 +6158,17 @@ PyLong_GetInfo(void) PyLong_FromLong(PyLong_SHIFT)); PyStructSequence_SET_ITEM(int_info, field++, PyLong_FromLong(sizeof(digit))); + /* + * The following two fields were added after investigating uses of + * sys.int_info in the wild: Exceedingly rarely used. The ONLY use found was + * numba using sys.int_info.bits_per_digit as attribute access rather than + * sequence unpacking. Cython and sympy also refer to sys.int_info but only + * as info for debugging. No concern about adding these in a backport. + */ + PyStructSequence_SET_ITEM(int_info, field++, + PyLong_FromLong(_PY_LONG_DEFAULT_MAX_STR_DIGITS)); + PyStructSequence_SET_ITEM(int_info, field++, + PyLong_FromLong(_PY_LONG_MAX_STR_DIGITS_THRESHOLD)); if (PyErr_Occurred()) { Py_CLEAR(int_info); return NULL; @@ -6103,10 +6192,14 @@ _PyLong_InitTypes(PyInterpreterState *interp) /* initialize int_info */ if (Int_InfoType.tp_name == NULL) { - if (PyStructSequence_InitType2(&Int_InfoType, &int_info_desc) < 0) { + if (_PyStructSequence_InitBuiltin(&Int_InfoType, &int_info_desc) < 0) { return _PyStatus_ERR("can't init int info type"); } } + interp->int_max_str_digits = _Py_global_config_int_max_str_digits; + if (interp->int_max_str_digits == -1) { + interp->int_max_str_digits = _PY_LONG_DEFAULT_MAX_STR_DIGITS; + } return _PyStatus_OK(); } diff --git a/Objects/memoryobject.c b/Objects/memoryobject.c index 8c269168824471..c5ab0bf2dedbe4 100644 --- a/Objects/memoryobject.c +++ b/Objects/memoryobject.c @@ -193,6 +193,11 @@ PyTypeObject _PyManagedBuffer_Type = { return -1; \ } +/* See gh-92888. These macros signal that we need to check the memoryview + again due to possible read after frees. */ +#define CHECK_RELEASED_AGAIN(mv) CHECK_RELEASED(mv) +#define CHECK_RELEASED_INT_AGAIN(mv) CHECK_RELEASED_INT(mv) + #define CHECK_LIST_OR_TUPLE(v) \ if (!PyList_Check(v) && !PyTuple_Check(v)) { \ PyErr_SetString(PyExc_TypeError, \ @@ -381,8 +386,9 @@ copy_rec(const Py_ssize_t *shape, Py_ssize_t ndim, Py_ssize_t itemsize, /* Faster copying of one-dimensional arrays. */ static int -copy_single(const Py_buffer *dest, const Py_buffer *src) +copy_single(PyMemoryViewObject *self, const Py_buffer *dest, const Py_buffer *src) { + CHECK_RELEASED_INT_AGAIN(self); char *mem = NULL; assert(dest->ndim == 1); @@ -1129,6 +1135,7 @@ get_native_fmtchar(char *result, const char *fmt) case 'n': case 'N': size = sizeof(Py_ssize_t); break; case 'f': size = sizeof(float); break; case 'd': size = sizeof(double); break; + case 'e': size = sizeof(float) / 2; break; case '?': size = sizeof(_Bool); break; case 'P': size = sizeof(void *); break; } @@ -1172,6 +1179,7 @@ get_native_fmtstr(const char *fmt) case 'N': RETURN("N"); case 'f': RETURN("f"); case 'd': RETURN("d"); + case 'e': RETURN("e"); case '?': RETURN("?"); case 'P': RETURN("P"); } @@ -1677,7 +1685,7 @@ pylong_as_zu(PyObject *item) module syntax. This function is very sensitive to small changes. With this layout gcc automatically generates a fast jump table. */ static inline PyObject * -unpack_single(const char *ptr, const char *fmt) +unpack_single(PyMemoryViewObject *self, const char *ptr, const char *fmt) { unsigned long long llu; unsigned long lu; @@ -1689,6 +1697,14 @@ unpack_single(const char *ptr, const char *fmt) unsigned char uc; void *p; + CHECK_RELEASED_AGAIN(self); + +#if PY_LITTLE_ENDIAN + int endian = 1; +#else + int endian = 0; +#endif + switch (fmt[0]) { /* signed integers and fast path for 'B' */ @@ -1717,6 +1733,7 @@ unpack_single(const char *ptr, const char *fmt) /* floats */ case 'f': UNPACK_SINGLE(d, ptr, float); goto convert_double; case 'd': UNPACK_SINGLE(d, ptr, double); goto convert_double; + case 'e': d = PyFloat_Unpack2(ptr, endian); goto convert_double; /* bytes object */ case 'c': goto convert_bytes; @@ -1767,7 +1784,7 @@ unpack_single(const char *ptr, const char *fmt) /* Pack a single item. 'fmt' can be any native format character in struct module syntax. */ static int -pack_single(char *ptr, PyObject *item, const char *fmt) +pack_single(PyMemoryViewObject *self, char *ptr, PyObject *item, const char *fmt) { unsigned long long llu; unsigned long lu; @@ -1778,12 +1795,18 @@ pack_single(char *ptr, PyObject *item, const char *fmt) double d; void *p; +#if PY_LITTLE_ENDIAN + int endian = 1; +#else + int endian = 0; +#endif switch (fmt[0]) { /* signed integers */ case 'b': case 'h': case 'i': case 'l': ld = pylong_as_ld(item); if (ld == -1 && PyErr_Occurred()) goto err_occurred; + CHECK_RELEASED_INT_AGAIN(self); switch (fmt[0]) { case 'b': if (ld < SCHAR_MIN || ld > SCHAR_MAX) goto err_range; @@ -1804,6 +1827,7 @@ pack_single(char *ptr, PyObject *item, const char *fmt) lu = pylong_as_lu(item); if (lu == (unsigned long)-1 && PyErr_Occurred()) goto err_occurred; + CHECK_RELEASED_INT_AGAIN(self); switch (fmt[0]) { case 'B': if (lu > UCHAR_MAX) goto err_range; @@ -1824,12 +1848,14 @@ pack_single(char *ptr, PyObject *item, const char *fmt) lld = pylong_as_lld(item); if (lld == -1 && PyErr_Occurred()) goto err_occurred; + CHECK_RELEASED_INT_AGAIN(self); PACK_SINGLE(ptr, lld, long long); break; case 'Q': llu = pylong_as_llu(item); if (llu == (unsigned long long)-1 && PyErr_Occurred()) goto err_occurred; + CHECK_RELEASED_INT_AGAIN(self); PACK_SINGLE(ptr, llu, unsigned long long); break; @@ -1838,26 +1864,34 @@ pack_single(char *ptr, PyObject *item, const char *fmt) zd = pylong_as_zd(item); if (zd == -1 && PyErr_Occurred()) goto err_occurred; + CHECK_RELEASED_INT_AGAIN(self); PACK_SINGLE(ptr, zd, Py_ssize_t); break; case 'N': zu = pylong_as_zu(item); if (zu == (size_t)-1 && PyErr_Occurred()) goto err_occurred; + CHECK_RELEASED_INT_AGAIN(self); PACK_SINGLE(ptr, zu, size_t); break; /* floats */ - case 'f': case 'd': + case 'f': case 'd': case 'e': d = PyFloat_AsDouble(item); if (d == -1.0 && PyErr_Occurred()) goto err_occurred; + CHECK_RELEASED_INT_AGAIN(self); if (fmt[0] == 'f') { PACK_SINGLE(ptr, d, float); } - else { + else if (fmt[0] == 'd') { PACK_SINGLE(ptr, d, double); } + else { + if (PyFloat_Pack2(d, ptr, endian) < 0) { + goto err_occurred; + } + } break; /* bool */ @@ -1865,8 +1899,9 @@ pack_single(char *ptr, PyObject *item, const char *fmt) ld = PyObject_IsTrue(item); if (ld < 0) return -1; /* preserve original error */ + CHECK_RELEASED_INT_AGAIN(self); PACK_SINGLE(ptr, ld, _Bool); - break; + break; /* bytes object */ case 'c': @@ -1882,6 +1917,7 @@ pack_single(char *ptr, PyObject *item, const char *fmt) p = PyLong_AsVoidPtr(item); if (p == NULL && PyErr_Occurred()) goto err_occurred; + CHECK_RELEASED_INT_AGAIN(self); PACK_SINGLE(ptr, p, void *); break; @@ -1950,18 +1986,12 @@ unpacker_free(struct unpacker *x) static struct unpacker * struct_get_unpacker(const char *fmt, Py_ssize_t itemsize) { - PyObject *structmodule; /* XXX cache these two */ - PyObject *Struct = NULL; /* XXX in globals? */ + PyObject *Struct = NULL; /* XXX cache it in globals? */ PyObject *structobj = NULL; PyObject *format = NULL; struct unpacker *x = NULL; - structmodule = PyImport_ImportModule("struct"); - if (structmodule == NULL) - return NULL; - - Struct = PyObject_GetAttrString(structmodule, "Struct"); - Py_DECREF(structmodule); + Struct = _PyImport_GetModuleAttrString("struct", "Struct"); if (Struct == NULL) return NULL; @@ -2048,7 +2078,7 @@ adjust_fmt(const Py_buffer *view) /* Base case for multi-dimensional unpacking. Assumption: ndim == 1. */ static PyObject * -tolist_base(const char *ptr, const Py_ssize_t *shape, +tolist_base(PyMemoryViewObject *self, const char *ptr, const Py_ssize_t *shape, const Py_ssize_t *strides, const Py_ssize_t *suboffsets, const char *fmt) { @@ -2061,7 +2091,7 @@ tolist_base(const char *ptr, const Py_ssize_t *shape, for (i = 0; i < shape[0]; ptr+=strides[0], i++) { const char *xptr = ADJUST_PTR(ptr, suboffsets, 0); - item = unpack_single(xptr, fmt); + item = unpack_single(self, xptr, fmt); if (item == NULL) { Py_DECREF(lst); return NULL; @@ -2075,7 +2105,7 @@ tolist_base(const char *ptr, const Py_ssize_t *shape, /* Unpack a multi-dimensional array into a nested list. Assumption: ndim >= 1. */ static PyObject * -tolist_rec(const char *ptr, Py_ssize_t ndim, const Py_ssize_t *shape, +tolist_rec(PyMemoryViewObject *self, const char *ptr, Py_ssize_t ndim, const Py_ssize_t *shape, const Py_ssize_t *strides, const Py_ssize_t *suboffsets, const char *fmt) { @@ -2087,7 +2117,7 @@ tolist_rec(const char *ptr, Py_ssize_t ndim, const Py_ssize_t *shape, assert(strides != NULL); if (ndim == 1) - return tolist_base(ptr, shape, strides, suboffsets, fmt); + return tolist_base(self, ptr, shape, strides, suboffsets, fmt); lst = PyList_New(shape[0]); if (lst == NULL) @@ -2095,7 +2125,7 @@ tolist_rec(const char *ptr, Py_ssize_t ndim, const Py_ssize_t *shape, for (i = 0; i < shape[0]; ptr+=strides[0], i++) { const char *xptr = ADJUST_PTR(ptr, suboffsets, 0); - item = tolist_rec(xptr, ndim-1, shape+1, + item = tolist_rec(self, xptr, ndim-1, shape+1, strides+1, suboffsets ? suboffsets+1 : NULL, fmt); if (item == NULL) { @@ -2129,15 +2159,15 @@ memoryview_tolist_impl(PyMemoryViewObject *self) if (fmt == NULL) return NULL; if (view->ndim == 0) { - return unpack_single(view->buf, fmt); + return unpack_single(self, view->buf, fmt); } else if (view->ndim == 1) { - return tolist_base(view->buf, view->shape, + return tolist_base(self, view->buf, view->shape, view->strides, view->suboffsets, fmt); } else { - return tolist_rec(view->buf, view->ndim, view->shape, + return tolist_rec(self, view->buf, view->ndim, view->shape, view->strides, view->suboffsets, fmt); } @@ -2345,7 +2375,7 @@ memory_item(PyMemoryViewObject *self, Py_ssize_t index) char *ptr = ptr_from_index(view, index); if (ptr == NULL) return NULL; - return unpack_single(ptr, fmt); + return unpack_single(self, ptr, fmt); } PyErr_SetString(PyExc_NotImplementedError, @@ -2376,7 +2406,7 @@ memory_item_multi(PyMemoryViewObject *self, PyObject *tup) ptr = ptr_from_tuple(view, tup); if (ptr == NULL) return NULL; - return unpack_single(ptr, fmt); + return unpack_single(self, ptr, fmt); } static inline int @@ -2463,7 +2493,7 @@ memory_subscript(PyMemoryViewObject *self, PyObject *key) const char *fmt = adjust_fmt(view); if (fmt == NULL) return NULL; - return unpack_single(view->buf, fmt); + return unpack_single(self, view->buf, fmt); } else if (key == Py_Ellipsis) { Py_INCREF(self); @@ -2538,7 +2568,7 @@ memory_ass_sub(PyMemoryViewObject *self, PyObject *key, PyObject *value) if (key == Py_Ellipsis || (PyTuple_Check(key) && PyTuple_GET_SIZE(key)==0)) { ptr = (char *)view->buf; - return pack_single(ptr, value, fmt); + return pack_single(self, ptr, value, fmt); } else { PyErr_SetString(PyExc_TypeError, @@ -2560,7 +2590,7 @@ memory_ass_sub(PyMemoryViewObject *self, PyObject *key, PyObject *value) ptr = ptr_from_index(view, index); if (ptr == NULL) return -1; - return pack_single(ptr, value, fmt); + return pack_single(self, ptr, value, fmt); } /* one-dimensional: fast path */ if (PySlice_Check(key) && view->ndim == 1) { @@ -2583,7 +2613,7 @@ memory_ass_sub(PyMemoryViewObject *self, PyObject *key, PyObject *value) goto end_block; dest.len = dest.shape[0] * dest.itemsize; - ret = copy_single(&dest, &src); + ret = copy_single(self, &dest, &src); end_block: PyBuffer_Release(&src); @@ -2599,7 +2629,7 @@ memory_ass_sub(PyMemoryViewObject *self, PyObject *key, PyObject *value) ptr = ptr_from_tuple(view, key); if (ptr == NULL) return -1; - return pack_single(ptr, value, fmt); + return pack_single(self, ptr, value, fmt); } if (PySlice_Check(key) || is_multislice(key)) { /* Call memory_subscript() to produce a sliced lvalue, then copy @@ -2737,6 +2767,17 @@ unpack_cmp(const char *p, const char *q, char fmt, /* XXX DBL_EPSILON? */ case 'f': CMP_SINGLE(p, q, float); return equal; case 'd': CMP_SINGLE(p, q, double); return equal; + case 'e': { +#if PY_LITTLE_ENDIAN + int endian = 1; +#else + int endian = 0; +#endif + /* Note: PyFloat_Unpack2 should never fail */ + double u = PyFloat_Unpack2(p, endian); + double v = PyFloat_Unpack2(q, endian); + return (u == v); + } /* bytes object */ case 'c': return *p == *q; @@ -3200,7 +3241,7 @@ memoryiter_next(memoryiterobject *it) if (ptr == NULL) { return NULL; } - return unpack_single(ptr, it->it_fmt); + return unpack_single(seq, ptr, it->it_fmt); } it->it_seq = NULL; diff --git a/Objects/object.c b/Objects/object.c index 49b1cba89b1d6f..26cdcef59dddbd 100644 --- a/Objects/object.c +++ b/Objects/object.c @@ -14,9 +14,7 @@ #include "pycore_pymem.h" // _PyMem_IsPtrFreed() #include "pycore_pystate.h" // _PyThreadState_GET() #include "pycore_symtable.h" // PySTEntry_Type -#include "pycore_typeobject.h" // _PyTypes_InitSlotDefs() #include "pycore_unionobject.h" // _PyUnion_Type -#include "frameobject.h" // PyFrame_Type #include "pycore_interpreteridobject.h" // _PyInterpreterID_Type #ifdef Py_LIMITED_API @@ -1055,18 +1053,17 @@ PyObject_SetAttr(PyObject *v, PyObject *name, PyObject *value) } PyObject ** -_PyObject_DictPointer(PyObject *obj) +_PyObject_ComputedDictPointer(PyObject *obj) { Py_ssize_t dictoffset; PyTypeObject *tp = Py_TYPE(obj); - if (tp->tp_flags & Py_TPFLAGS_MANAGED_DICT) { - return _PyObject_ManagedDictPointer(obj); - } + assert((tp->tp_flags & Py_TPFLAGS_MANAGED_DICT) == 0); dictoffset = tp->tp_dictoffset; if (dictoffset == 0) return NULL; if (dictoffset < 0) { + assert(dictoffset != -1); Py_ssize_t tsize = Py_SIZE(obj); if (tsize < 0) { tsize = -tsize; @@ -1082,27 +1079,27 @@ _PyObject_DictPointer(PyObject *obj) /* Helper to get a pointer to an object's __dict__ slot, if any. * Creates the dict from inline attributes if necessary. - * Does not set an exception. */ + * Does not set an exception. + * + * Note that the tp_dictoffset docs used to recommend this function, + * so it should be treated as part of the public API. + */ PyObject ** _PyObject_GetDictPtr(PyObject *obj) { if ((Py_TYPE(obj)->tp_flags & Py_TPFLAGS_MANAGED_DICT) == 0) { - return _PyObject_DictPointer(obj); - } - PyObject **dict_ptr = _PyObject_ManagedDictPointer(obj); - PyDictValues **values_ptr = _PyObject_ValuesPointer(obj); - if (*values_ptr == NULL) { - return dict_ptr; + return _PyObject_ComputedDictPointer(obj); } - assert(*dict_ptr == NULL); - PyObject *dict = _PyObject_MakeDictFromInstanceAttributes(obj, *values_ptr); - if (dict == NULL) { - PyErr_Clear(); - return NULL; + PyDictOrValues *dorv_ptr = _PyObject_DictOrValuesPointer(obj); + if (_PyDictOrValues_IsValues(*dorv_ptr)) { + PyObject *dict = _PyObject_MakeDictFromInstanceAttributes(obj, _PyDictOrValues_GetValues(*dorv_ptr)); + if (dict == NULL) { + PyErr_Clear(); + return NULL; + } + dorv_ptr->dict = dict; } - *values_ptr = NULL; - *dict_ptr = dict; - return dict_ptr; + return &dorv_ptr->dict; } PyObject * @@ -1171,36 +1168,46 @@ _PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method) } } } - PyDictValues *values; - if ((tp->tp_flags & Py_TPFLAGS_MANAGED_DICT) && - (values = *_PyObject_ValuesPointer(obj))) - { - assert(*_PyObject_DictPointer(obj) == NULL); - PyObject *attr = _PyObject_GetInstanceAttribute(obj, values, name); - if (attr != NULL) { - *method = attr; - Py_XDECREF(descr); - return 0; - } - } - else { - PyObject **dictptr = _PyObject_DictPointer(obj); - PyObject *dict; - if (dictptr != NULL && (dict = *dictptr) != NULL) { - Py_INCREF(dict); - PyObject *attr = PyDict_GetItemWithError(dict, name); + PyObject *dict; + if ((tp->tp_flags & Py_TPFLAGS_MANAGED_DICT)) { + PyDictOrValues* dorv_ptr = _PyObject_DictOrValuesPointer(obj); + if (_PyDictOrValues_IsValues(*dorv_ptr)) { + PyDictValues *values = _PyDictOrValues_GetValues(*dorv_ptr); + PyObject *attr = _PyObject_GetInstanceAttribute(obj, values, name); if (attr != NULL) { - *method = Py_NewRef(attr); - Py_DECREF(dict); + *method = attr; Py_XDECREF(descr); return 0; } + dict = NULL; + } + else { + dict = dorv_ptr->dict; + } + } + else { + PyObject **dictptr = _PyObject_ComputedDictPointer(obj); + if (dictptr != NULL) { + dict = *dictptr; + } + else { + dict = NULL; + } + } + if (dict != NULL) { + Py_INCREF(dict); + PyObject *attr = PyDict_GetItemWithError(dict, name); + if (attr != NULL) { + *method = Py_NewRef(attr); Py_DECREF(dict); + Py_XDECREF(descr); + return 0; + } + Py_DECREF(dict); - if (PyErr_Occurred()) { - Py_XDECREF(descr); - return 0; - } + if (PyErr_Occurred()) { + Py_XDECREF(descr); + return 0; } } @@ -1244,7 +1251,6 @@ _PyObject_GenericGetAttrWithDict(PyObject *obj, PyObject *name, PyObject *descr = NULL; PyObject *res = NULL; descrgetfunc f; - PyObject **dictptr; if (!PyUnicode_Check(name)){ PyErr_Format(PyExc_TypeError, @@ -1275,30 +1281,31 @@ _PyObject_GenericGetAttrWithDict(PyObject *obj, PyObject *name, } } if (dict == NULL) { - if ((tp->tp_flags & Py_TPFLAGS_MANAGED_DICT) && - *_PyObject_ValuesPointer(obj)) - { - PyDictValues **values_ptr = _PyObject_ValuesPointer(obj); - if (PyUnicode_CheckExact(name)) { - assert(*_PyObject_DictPointer(obj) == NULL); - res = _PyObject_GetInstanceAttribute(obj, *values_ptr, name); - if (res != NULL) { - goto done; + if ((tp->tp_flags & Py_TPFLAGS_MANAGED_DICT)) { + PyDictOrValues* dorv_ptr = _PyObject_DictOrValuesPointer(obj); + if (_PyDictOrValues_IsValues(*dorv_ptr)) { + PyDictValues *values = _PyDictOrValues_GetValues(*dorv_ptr); + if (PyUnicode_CheckExact(name)) { + res = _PyObject_GetInstanceAttribute(obj, values, name); + if (res != NULL) { + goto done; + } + } + else { + dict = _PyObject_MakeDictFromInstanceAttributes(obj, values); + if (dict == NULL) { + res = NULL; + goto done; + } + dorv_ptr->dict = dict; } } else { - dictptr = _PyObject_DictPointer(obj); - assert(dictptr != NULL && *dictptr == NULL); - *dictptr = dict = _PyObject_MakeDictFromInstanceAttributes(obj, *values_ptr); - if (dict == NULL) { - res = NULL; - goto done; - } - *values_ptr = NULL; + dict = _PyDictOrValues_GetDict(*dorv_ptr); } } else { - dictptr = _PyObject_DictPointer(obj); + PyObject **dictptr = _PyObject_ComputedDictPointer(obj); if (dictptr) { dict = *dictptr; } @@ -1344,6 +1351,8 @@ _PyObject_GenericGetAttrWithDict(PyObject *obj, PyObject *name, PyErr_Format(PyExc_AttributeError, "'%.50s' object has no attribute '%U'", tp->tp_name, name); + + set_attribute_error_context(obj, name); } done: Py_XDECREF(descr); @@ -1390,27 +1399,34 @@ _PyObject_GenericSetAttrWithDict(PyObject *obj, PyObject *name, } if (dict == NULL) { - if ((tp->tp_flags & Py_TPFLAGS_MANAGED_DICT) && *_PyObject_ValuesPointer(obj)) { - res = _PyObject_StoreInstanceAttribute(obj, *_PyObject_ValuesPointer(obj), name, value); + PyObject **dictptr; + if ((tp->tp_flags & Py_TPFLAGS_MANAGED_DICT)) { + PyDictOrValues *dorv_ptr = _PyObject_DictOrValuesPointer(obj); + if (_PyDictOrValues_IsValues(*dorv_ptr)) { + res = _PyObject_StoreInstanceAttribute( + obj, _PyDictOrValues_GetValues(*dorv_ptr), name, value); + goto error_check; + } + dictptr = &dorv_ptr->dict; } else { - PyObject **dictptr = _PyObject_DictPointer(obj); - if (dictptr == NULL) { - if (descr == NULL) { - PyErr_Format(PyExc_AttributeError, - "'%.100s' object has no attribute '%U'", - tp->tp_name, name); - } - else { - PyErr_Format(PyExc_AttributeError, - "'%.50s' object attribute '%U' is read-only", - tp->tp_name, name); - } - goto done; + dictptr = _PyObject_ComputedDictPointer(obj); + } + if (dictptr == NULL) { + if (descr == NULL) { + PyErr_Format(PyExc_AttributeError, + "'%.100s' object has no attribute '%U'", + tp->tp_name, name); } else { - res = _PyObjectDict_SetItem(tp, dictptr, name, value); + PyErr_Format(PyExc_AttributeError, + "'%.50s' object attribute '%U' is read-only", + tp->tp_name, name); } + goto done; + } + else { + res = _PyObjectDict_SetItem(tp, dictptr, name, value); } } else { @@ -1421,6 +1437,7 @@ _PyObject_GenericSetAttrWithDict(PyObject *obj, PyObject *name, res = PyDict_SetItem(dict, name, value); Py_DECREF(dict); } + error_check: if (res < 0 && PyErr_ExceptionMatches(PyExc_KeyError)) { if (PyType_IsSubtype(tp, &PyType_Type)) { PyErr_Format(PyExc_AttributeError, @@ -1452,7 +1469,7 @@ PyObject_GenericSetDict(PyObject *obj, PyObject *value, void *context) PyObject **dictptr = _PyObject_GetDictPtr(obj); if (dictptr == NULL) { if (_PyType_HasFeature(Py_TYPE(obj), Py_TPFLAGS_MANAGED_DICT) && - *_PyObject_ValuesPointer(obj) != NULL) + _PyDictOrValues_IsValues(*_PyObject_DictOrValuesPointer(obj))) { /* Was unable to convert to dict */ PyErr_NoMemory(); @@ -1819,23 +1836,6 @@ PyObject _Py_NotImplementedStruct = { 1, &_PyNotImplemented_Type }; -PyStatus -_PyTypes_InitState(PyInterpreterState *interp) -{ - if (!_Py_IsMainInterpreter(interp)) { - return _PyStatus_OK(); - } - - PyStatus status = _PyTypes_InitSlotDefs(); - if (_PyStatus_EXCEPTION(status)) { - return status; - } - - return _PyStatus_OK(); -} - - - #ifdef MS_WINDOWS extern PyTypeObject PyHKEY_Type; #endif @@ -1976,8 +1976,8 @@ _PyTypes_InitTypes(PyInterpreterState *interp) // All other static types (unless initialized elsewhere) for (size_t i=0; i < Py_ARRAY_LENGTH(static_types); i++) { PyTypeObject *type = static_types[i]; - if (PyType_Ready(type) < 0) { - return _PyStatus_ERR("Can't initialize types"); + if (_PyStaticType_InitBuiltin(type) < 0) { + return _PyStatus_ERR("Can't initialize builtin type"); } if (type == &PyType_Type) { // Sanitify checks of the two most important types diff --git a/Objects/object_layout.md b/Objects/object_layout.md new file mode 100644 index 00000000000000..9380b57938c8e3 --- /dev/null +++ b/Objects/object_layout.md @@ -0,0 +1,82 @@ +# Object layout + +## Common header + +Each Python object starts with two fields: + +* ob_refcnt +* ob_type + +which the form the header common to all Python objects, for all versions, +and hold the reference count and class of the object, respectively. + +## Pre-header + +Since the introduction of the cycle GC, there has also been a pre-header. +Before 3.11, this pre-header was two words in size. +It should be considered opaque to all code except the cycle GC. + +## 3.11 pre-header + +In 3.11 the pre-header was extended to include pointers to the VM managed ``__dict__``. +The reason for moving the ``__dict__`` to the pre-header is that it allows +faster access, as it is at a fixed offset, and it also allows object's +dictionaries to be lazily created when the ``__dict__`` attribute is +specifically asked for. + +In the 3.11 the non-GC part of the pre-header consists of two pointers: + +* dict +* values + +The values pointer refers to the ``PyDictValues`` array which holds the +values of the objects's attributes. +Should the dictionary be needed, then ``values`` is set to ``NULL`` +and the ``dict`` field points to the dictionary. + +## 3.12 pre-header + +In 3.12 the the pointer to the list of weak references is added to the +pre-header. In order to make space for it, the ``dict`` and ``values`` +pointers are combined into a single tagged pointer: + +* weakreflist +* dict_or_values + +If the object has no physical dictionary, then the ``dict_or_values`` +has its low bit set to one, and points to the values array. +If the object has a physical dictioanry, then the ``dict_or_values`` +has its low bit set to zero, and points to the dictionary. + +The untagged form is chosen for the dictionary pointer, rather than +the values pointer, to enable the (legacy) C-API function +`_PyObject_GetDictPtr(PyObject *obj)` to work. + + +## Layout of a "normal" Python object in 3.12: + +* weakreflist +* dict_or_values +* GC 1 +* GC 2 +* ob_refcnt +* ob_type + +For a "normal" Python object, that is one that doesn't inherit from a builtin +class or have slots, the header and pre-header form the entire object. + +![Layout of "normal" object in 3.12](./object_layout_312.png) + +There are several advantages to this layout: + +* It allows lazy `__dict__`s, as described above. +* The regular layout allows us to create tailored traversal and deallocation + functions based on layout, rather than inheritance. +* Multiple inheritance works properly, + as the weakrefs and dict are always at the same offset. + +The full layout object, with an opaque part defined by a C extension, +and `__slots__` looks like this: + +![Layout of "full" object in 3.12](./object_layout_full_312.png) + diff --git a/Objects/object_layout_312.gv b/Objects/object_layout_312.gv new file mode 100644 index 00000000000000..c0068d78568524 --- /dev/null +++ b/Objects/object_layout_312.gv @@ -0,0 +1,50 @@ +digraph ideal { + + rankdir = "LR" + + + object [ + shape = none + label = <<table border="0" cellspacing="0"> + <tr><td><b>object</b></td></tr> + <tr><td port="w" border="1">weakrefs</td></tr> + <tr><td port="dv" border="1">dict or values</td></tr> + <tr><td border="1" >GC info 0</td></tr> + <tr><td border="1" >GC info 1</td></tr> + <tr><td port="r" border="1" >refcount</td></tr> + <tr><td port="h" border="1" >__class__</td></tr> + </table>> + ] + + values [ + shape = none + label = <<table border="0" cellspacing="0"> + <tr><td><b>values</b></td></tr> + <tr><td port="0" border="1">values[0]</td></tr> + <tr><td border="1">values[1]</td></tr> + <tr><td border="1">...</td></tr> + </table>> + + ] + + class [ + shape = none + label = <<table border="0" cellspacing="0"> + <tr><td><b>class</b></td></tr> + <tr><td port="head" bgcolor="lightgreen" border="1">...</td></tr> + <tr><td border="1" bgcolor="lightgreen">dict_offset</td></tr> + <tr><td border="1" bgcolor="lightgreen">...</td></tr> + <tr><td port="k" border="1" bgcolor="lightgreen">cached_keys</td></tr> + </table>> + ] + + keys [label = "dictionary keys"; fillcolor="lightgreen"; style="filled"] + NULL [ label = " NULL"; shape="plain"] + object:w -> NULL + object:h -> class:head + object:dv -> values:0 + class:k -> keys + + oop [ label = "pointer"; shape="plain"] + oop -> object:r +} diff --git a/Objects/object_layout_312.png b/Objects/object_layout_312.png new file mode 100644 index 0000000000000000000000000000000000000000..396dab183b3e9b2f39edb49b033a612e66d3a09a GIT binary patch literal 30688 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%0D4>uj@4HG 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 Hp8fM5b4R8? literal 0 HcmV?d00001 diff --git a/Objects/object_layout_full_312.gv b/Objects/object_layout_full_312.gv new file mode 100644 index 00000000000000..522fa32b066504 --- /dev/null +++ b/Objects/object_layout_full_312.gv @@ -0,0 +1,25 @@ +digraph ideal { + + rankdir = "LR" + + + object [ + shape = none + label = <<table border="0" cellspacing="0"> + <tr><td><b>object</b></td></tr> + <tr><td port="w" border="1">weakrefs</td></tr> + <tr><td port="dv" border="1">dict or values</td></tr> + <tr><td border="1" >GC info 0</td></tr> + <tr><td border="1" >GC info 1</td></tr> + <tr><td port="r" border="1" >refcount</td></tr> + <tr><td port="h" border="1" >__class__</td></tr> + <tr><td border="1">opaque (extension) data </td></tr> + <tr><td border="1">...</td></tr> + <tr><td border="1">__slot__ 0</td></tr> + <tr><td border="1">...</td></tr> + </table>> + ] + + oop [ label = "pointer"; shape="plain"] + oop -> object:r +} diff --git a/Objects/object_layout_full_312.png b/Objects/object_layout_full_312.png new file mode 100644 index 0000000000000000000000000000000000000000..4f46ca86091d452c52f53dcb102b72e7c0954e41 GIT binary patch literal 17092 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%0D-RvO?#w2 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 F{{lUT7J2{x literal 0 HcmV?d00001 diff --git a/Objects/obmalloc.c b/Objects/obmalloc.c index 78a6f01a0964ed..1d487d8e807a22 100644 --- a/Objects/obmalloc.c +++ b/Objects/obmalloc.c @@ -1446,7 +1446,7 @@ static arena_map_bot_t arena_map_root; /* Return a pointer to a bottom tree node, return NULL if it doesn't exist or * it cannot be created */ -static arena_map_bot_t * +static Py_ALWAYS_INLINE arena_map_bot_t * arena_map_get(block *p, int create) { #ifdef USE_INTERIOR_NODES diff --git a/Objects/perf_trampoline.c b/Objects/perf_trampoline.c new file mode 100644 index 00000000000000..161e0ef74cf1da --- /dev/null +++ b/Objects/perf_trampoline.c @@ -0,0 +1,531 @@ +/* + +Perf trampoline instrumentation +=============================== + +This file contains instrumentation to allow to associate +calls to the CPython eval loop back to the names of the Python +functions and filename being executed. + +Many native performance profilers like the Linux perf tools are +only available to 'see' the C stack when sampling from the profiled +process. This means that if we have the following python code: + + import time + def foo(n): + # Some CPU intensive code + + def bar(n): + foo(n) + + def baz(n): + bar(n) + + baz(10000000) + +A performance profiler that is only able to see native frames will +produce the following backtrace when sampling from foo(): + + _PyEval_EvalFrameDefault -----> Evaluation frame of foo() + _PyEval_Vector + _PyFunction_Vectorcall + PyObject_Vectorcall + call_function + + _PyEval_EvalFrameDefault ------> Evaluation frame of bar() + _PyEval_EvalFrame + _PyEval_Vector + _PyFunction_Vectorcall + PyObject_Vectorcall + call_function + + _PyEval_EvalFrameDefault -------> Evaluation frame of baz() + _PyEval_EvalFrame + _PyEval_Vector + _PyFunction_Vectorcall + PyObject_Vectorcall + call_function + + ... + + Py_RunMain + +Because the profiler is only able to see the native frames and the native +function that runs the evaluation loop is the same (_PyEval_EvalFrameDefault) +then the profiler and any reporter generated by it will not be able to +associate the names of the Python functions and the filenames associated with +those calls, rendering the results useless in the Python world. + +To fix this problem, we introduce the concept of a trampoline frame. A +trampoline frame is a piece of code that is unique per Python code object that +is executed before entering the CPython eval loop. This piece of code just +calls the original Python evaluation function (_PyEval_EvalFrameDefault) and +forwards all the arguments received. In this way, when a profiler samples +frames from the previous example it will see; + + _PyEval_EvalFrameDefault -----> Evaluation frame of foo() + [Jit compiled code 3] + _PyEval_Vector + _PyFunction_Vectorcall + PyObject_Vectorcall + call_function + + _PyEval_EvalFrameDefault ------> Evaluation frame of bar() + [Jit compiled code 2] + _PyEval_EvalFrame + _PyEval_Vector + _PyFunction_Vectorcall + PyObject_Vectorcall + call_function + + _PyEval_EvalFrameDefault -------> Evaluation frame of baz() + [Jit compiled code 1] + _PyEval_EvalFrame + _PyEval_Vector + _PyFunction_Vectorcall + PyObject_Vectorcall + call_function + + ... + + Py_RunMain + +When we generate every unique copy of the trampoline (what here we called "[Jit +compiled code N]") we write the relationship between the compiled code and the +Python function that is associated with it. Every profiler requires this +information in a different format. For example, the Linux "perf" profiler +requires a file in "/tmp/perf-PID.map" (name and location not configurable) +with the following format: + + <compiled code address> <compiled code size> <name of the compiled code> + +If this file is available when "perf" generates reports, it will automatically +associate every trampoline with the Python function that it is associated with +allowing it to generate reports that include Python information. These reports +then can also be filtered in a way that *only* Python information appears. + +Notice that for this to work, there must be a unique copied of the trampoline +per Python code object even if the code in the trampoline is the same. To +achieve this we have a assembly template in Objects/asm_trampiline.S that is +compiled into the Python executable/shared library. This template generates a +symbol that maps the start of the assembly code and another that marks the end +of the assembly code for the trampoline. Then, every time we need a unique +trampoline for a Python code object, we copy the assembly code into a mmaped +area that has executable permissions and we return the start of that area as +our trampoline function. + +Asking for a mmap-ed memory area for trampoline is very wasteful so we +allocate big arenas of memory in a single mmap call, we populate the entire +arena with copies of the trampoline (this allows us to now have to invalidate +the icache for the instructions in the page) and then we return the next +available chunk every time someone asks for a new trampoline. We keep a linked +list of arenas in case the current memory arena is exhausted and another one is +needed. + +For the best results, Python should be compiled with +CFLAGS="-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer" as this allows +profilers to unwind using only the frame pointer and not on DWARF debug +information (note that as trampilines are dynamically generated there won't be +any DWARF information available for them). +*/ + +#include "Python.h" +#include "pycore_ceval.h" +#include "pycore_frame.h" +#include "pycore_interp.h" + +typedef enum { + PERF_STATUS_FAILED = -1, // Perf trampoline is in an invalid state + PERF_STATUS_NO_INIT = 0, // Perf trampoline is not initialized + PERF_STATUS_OK = 1, // Perf trampoline is ready to be executed +} perf_status_t; + +#ifdef PY_HAVE_PERF_TRAMPOLINE + +#include <fcntl.h> +#include <stdio.h> +#include <stdlib.h> +#include <sys/mman.h> +#include <sys/types.h> +#include <unistd.h> + +#if defined(__arm__) || defined(__arm64__) || defined(__aarch64__) +#define PY_HAVE_INVALIDATE_ICACHE + +#if defined(__clang__) || defined(__GNUC__) +extern void __clear_cache(void *, void*); +#endif + +static void invalidate_icache(char* begin, char*end) { +#if defined(__clang__) || defined(__GNUC__) + return __clear_cache(begin, end); +#else + return; +#endif +} +#endif + +/* The function pointer is passed as last argument. The other three arguments + * are passed in the same order as the function requires. This results in + * shorter, more efficient ASM code for trampoline. + */ +typedef PyObject *(*py_evaluator)(PyThreadState *, _PyInterpreterFrame *, + int throwflag); +typedef PyObject *(*py_trampoline)(PyThreadState *, _PyInterpreterFrame *, int, + py_evaluator); + +extern void *_Py_trampoline_func_start; // Start of the template of the + // assembly trampoline +extern void * + _Py_trampoline_func_end; // End of the template of the assembly trampoline + +struct code_arena_st { + char *start_addr; // Start of the memory arena + char *current_addr; // Address of the current trampoline within the arena + size_t size; // Size of the memory arena + size_t size_left; // Remaining size of the memory arena + size_t code_size; // Size of the code of every trampoline in the arena + struct code_arena_st + *prev; // Pointer to the arena or NULL if this is the first arena. +}; + +typedef struct code_arena_st code_arena_t; + +struct trampoline_api_st { + void* (*init_state)(void); + void (*write_state)(void* state, const void *code_addr, + unsigned int code_size, PyCodeObject* code); + int (*free_state)(void* state); + void *state; +}; + +typedef struct trampoline_api_st trampoline_api_t; + + +static perf_status_t perf_status = PERF_STATUS_NO_INIT; +static Py_ssize_t extra_code_index = -1; +static code_arena_t *code_arena; +static trampoline_api_t trampoline_api; + +static FILE *perf_map_file; + +static void * +perf_map_get_file(void) +{ + if (perf_map_file) { + return perf_map_file; + } + char filename[100]; + pid_t pid = getpid(); + // Location and file name of perf map is hard-coded in perf tool. + // Use exclusive create flag wit nofollow to prevent symlink attacks. + int flags = O_WRONLY | O_CREAT | O_EXCL | O_NOFOLLOW | O_CLOEXEC; + snprintf(filename, sizeof(filename) - 1, "/tmp/perf-%jd.map", + (intmax_t)pid); + int fd = open(filename, flags, 0600); + if (fd == -1) { + perf_status = PERF_STATUS_FAILED; + PyErr_SetFromErrnoWithFilename(PyExc_OSError, filename); + return NULL; + } + perf_map_file = fdopen(fd, "w"); + if (!perf_map_file) { + perf_status = PERF_STATUS_FAILED; + PyErr_SetFromErrnoWithFilename(PyExc_OSError, filename); + close(fd); + return NULL; + } + return perf_map_file; +} + +static int +perf_map_close(void *state) +{ + FILE *fp = (FILE *)state; + int ret = 0; + if (fp) { + ret = fclose(fp); + } + perf_map_file = NULL; + perf_status = PERF_STATUS_NO_INIT; + return ret; +} + +static void +perf_map_write_entry(void *state, const void *code_addr, + unsigned int code_size, PyCodeObject *co) +{ + assert(state != NULL); + FILE *method_file = (FILE *)state; + const char *entry = PyUnicode_AsUTF8(co->co_qualname); + if (entry == NULL) { + _PyErr_WriteUnraisableMsg("Failed to get qualname from code object", + NULL); + return; + } + const char *filename = PyUnicode_AsUTF8(co->co_filename); + if (filename == NULL) { + _PyErr_WriteUnraisableMsg("Failed to get filename from code object", + NULL); + return; + } + fprintf(method_file, "%p %x py::%s:%s\n", code_addr, code_size, entry, + filename); + fflush(method_file); +} + +_PyPerf_Callbacks _Py_perfmap_callbacks = { + &perf_map_get_file, + &perf_map_write_entry, + &perf_map_close +}; + +static int +new_code_arena(void) +{ + // non-trivial programs typically need 64 to 256 kiB. + size_t mem_size = 4096 * 16; + assert(mem_size % sysconf(_SC_PAGESIZE) == 0); + char *memory = + mmap(NULL, // address + mem_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, + -1, // fd (not used here) + 0); // offset (not used here) + if (!memory) { + PyErr_SetFromErrno(PyExc_OSError); + _PyErr_WriteUnraisableMsg( + "Failed to create new mmap for perf trampoline", NULL); + perf_status = PERF_STATUS_FAILED; + return -1; + } + void *start = &_Py_trampoline_func_start; + void *end = &_Py_trampoline_func_end; + size_t code_size = end - start; + // TODO: Check the effect of alignment of the code chunks. Initial investigation + // showed that this has no effect on performance in x86-64 or aarch64 and the current + // version has the advantage that the unwinder in GDB can unwind across JIT-ed code. + // + // We should check the values in the future and see if there is a + // measurable performance improvement by rounding trampolines up to 32-bit + // or 64-bit alignment. + + size_t n_copies = mem_size / code_size; + for (size_t i = 0; i < n_copies; i++) { + memcpy(memory + i * code_size, start, code_size * sizeof(char)); + } + // Some systems may prevent us from creating executable code on the fly. + int res = mprotect(memory, mem_size, PROT_READ | PROT_EXEC); + if (res == -1) { + PyErr_SetFromErrno(PyExc_OSError); + munmap(memory, mem_size); + _PyErr_WriteUnraisableMsg( + "Failed to set mmap for perf trampoline to PROT_READ | PROT_EXEC", + NULL); + return -1; + } + +#ifdef PY_HAVE_INVALIDATE_ICACHE + // Before the JIT can run a block of code that has been emitted it must invalidate + // the instruction cache on some platforms like arm and aarch64. + invalidate_icache(memory, memory + mem_size); +#endif + + code_arena_t *new_arena = PyMem_RawCalloc(1, sizeof(code_arena_t)); + if (new_arena == NULL) { + PyErr_NoMemory(); + munmap(memory, mem_size); + _PyErr_WriteUnraisableMsg("Failed to allocate new code arena struct", + NULL); + return -1; + } + + new_arena->start_addr = memory; + new_arena->current_addr = memory; + new_arena->size = mem_size; + new_arena->size_left = mem_size; + new_arena->code_size = code_size; + new_arena->prev = code_arena; + code_arena = new_arena; + return 0; +} + +static void +free_code_arenas(void) +{ + code_arena_t *cur = code_arena; + code_arena_t *prev; + code_arena = NULL; // invalid static pointer + while (cur) { + munmap(cur->start_addr, cur->size); + prev = cur->prev; + PyMem_RawFree(cur); + cur = prev; + } +} + +static inline py_trampoline +code_arena_new_code(code_arena_t *code_arena) +{ + py_trampoline trampoline = (py_trampoline)code_arena->current_addr; + code_arena->size_left -= code_arena->code_size; + code_arena->current_addr += code_arena->code_size; + return trampoline; +} + +static inline py_trampoline +compile_trampoline(void) +{ + if ((code_arena == NULL) || + (code_arena->size_left <= code_arena->code_size)) { + if (new_code_arena() < 0) { + return NULL; + } + } + assert(code_arena->size_left <= code_arena->size); + return code_arena_new_code(code_arena); +} + +static PyObject * +py_trampoline_evaluator(PyThreadState *ts, _PyInterpreterFrame *frame, + int throw) +{ + if (perf_status == PERF_STATUS_FAILED || + perf_status == PERF_STATUS_NO_INIT) { + goto default_eval; + } + PyCodeObject *co = frame->f_code; + py_trampoline f = NULL; + assert(extra_code_index != -1); + int ret = _PyCode_GetExtra((PyObject *)co, extra_code_index, (void **)&f); + if (ret != 0 || f == NULL) { + // This is the first time we see this code object so we need + // to compile a trampoline for it. + py_trampoline new_trampoline = compile_trampoline(); + if (new_trampoline == NULL) { + goto default_eval; + } + trampoline_api.write_state(trampoline_api.state, new_trampoline, + code_arena->code_size, co); + _PyCode_SetExtra((PyObject *)co, extra_code_index, + (void *)new_trampoline); + f = new_trampoline; + } + assert(f != NULL); + return f(ts, frame, throw, _PyEval_EvalFrameDefault); +default_eval: + // Something failed, fall back to the default evaluator. + return _PyEval_EvalFrameDefault(ts, frame, throw); +} +#endif // PY_HAVE_PERF_TRAMPOLINE + +int +_PyIsPerfTrampolineActive(void) +{ +#ifdef PY_HAVE_PERF_TRAMPOLINE + PyThreadState *tstate = _PyThreadState_GET(); + return tstate->interp->eval_frame == py_trampoline_evaluator; +#endif + return 0; +} + +void +_PyPerfTrampoline_GetCallbacks(_PyPerf_Callbacks *callbacks) +{ + if (callbacks == NULL) { + return; + } +#ifdef PY_HAVE_PERF_TRAMPOLINE + callbacks->init_state = trampoline_api.init_state; + callbacks->write_state = trampoline_api.write_state; + callbacks->free_state = trampoline_api.free_state; +#endif + return; +} + +int +_PyPerfTrampoline_SetCallbacks(_PyPerf_Callbacks *callbacks) +{ + if (callbacks == NULL) { + return -1; + } +#ifdef PY_HAVE_PERF_TRAMPOLINE + if (trampoline_api.state) { + _PyPerfTrampoline_Fini(); + } + trampoline_api.init_state = callbacks->init_state; + trampoline_api.write_state = callbacks->write_state; + trampoline_api.free_state = callbacks->free_state; + trampoline_api.state = NULL; + perf_status = PERF_STATUS_OK; +#endif + return 0; +} + +int +_PyPerfTrampoline_Init(int activate) +{ +#ifdef PY_HAVE_PERF_TRAMPOLINE + PyThreadState *tstate = _PyThreadState_GET(); + if (tstate->interp->eval_frame && + tstate->interp->eval_frame != py_trampoline_evaluator) { + PyErr_SetString(PyExc_RuntimeError, + "Trampoline cannot be initialized as a custom eval " + "frame is already present"); + return -1; + } + if (!activate) { + tstate->interp->eval_frame = NULL; + } + else { + tstate->interp->eval_frame = py_trampoline_evaluator; + if (new_code_arena() < 0) { + return -1; + } + if (trampoline_api.state == NULL) { + void *state = trampoline_api.init_state(); + if (state == NULL) { + return -1; + } + trampoline_api.state = state; + } + extra_code_index = _PyEval_RequestCodeExtraIndex(NULL); + if (extra_code_index == -1) { + return -1; + } + perf_status = PERF_STATUS_OK; + } +#endif + return 0; +} + +int +_PyPerfTrampoline_Fini(void) +{ +#ifdef PY_HAVE_PERF_TRAMPOLINE + PyThreadState *tstate = _PyThreadState_GET(); + if (tstate->interp->eval_frame == py_trampoline_evaluator) { + tstate->interp->eval_frame = NULL; + } + free_code_arenas(); + if (trampoline_api.state != NULL) { + trampoline_api.free_state(trampoline_api.state); + trampoline_api.state = NULL; + } + extra_code_index = -1; +#endif + return 0; +} + +PyStatus +_PyPerfTrampoline_AfterFork_Child(void) +{ +#ifdef PY_HAVE_PERF_TRAMPOLINE + // Restart trampoline in file in child. + int was_active = _PyIsPerfTrampolineActive(); + _PyPerfTrampoline_Fini(); + if (was_active) { + _PyPerfTrampoline_Init(1); + } +#endif + return PyStatus_Ok(); +} diff --git a/Objects/rangeobject.c b/Objects/rangeobject.c index 5d583b2edf0e94..f0b06de1c7d2a0 100644 --- a/Objects/rangeobject.c +++ b/Objects/rangeobject.c @@ -2,6 +2,7 @@ #include "Python.h" #include "pycore_abstract.h" // _PyIndex_Check() +#include "pycore_range.h" #include "pycore_long.h" // _PyLong_GetZero() #include "pycore_tuple.h" // _PyTuple_ITEMS() #include "structmember.h" // PyMemberDef @@ -762,16 +763,8 @@ PyTypeObject PyRange_Type = { in the normal case, but possible for any numeric value. */ -typedef struct { - PyObject_HEAD - long index; - long start; - long step; - long len; -} rangeiterobject; - static PyObject * -rangeiter_next(rangeiterobject *r) +rangeiter_next(_PyRangeIterObject *r) { if (r->index < r->len) /* cast to unsigned to avoid possible signed overflow @@ -782,7 +775,7 @@ rangeiter_next(rangeiterobject *r) } static PyObject * -rangeiter_len(rangeiterobject *r, PyObject *Py_UNUSED(ignored)) +rangeiter_len(_PyRangeIterObject *r, PyObject *Py_UNUSED(ignored)) { return PyLong_FromLong(r->len - r->index); } @@ -791,7 +784,7 @@ PyDoc_STRVAR(length_hint_doc, "Private method returning an estimate of len(list(it))."); static PyObject * -rangeiter_reduce(rangeiterobject *r, PyObject *Py_UNUSED(ignored)) +rangeiter_reduce(_PyRangeIterObject *r, PyObject *Py_UNUSED(ignored)) { PyObject *start=NULL, *stop=NULL, *step=NULL; PyObject *range; @@ -821,7 +814,7 @@ rangeiter_reduce(rangeiterobject *r, PyObject *Py_UNUSED(ignored)) } static PyObject * -rangeiter_setstate(rangeiterobject *r, PyObject *state) +rangeiter_setstate(_PyRangeIterObject *r, PyObject *state) { long index = PyLong_AsLong(state); if (index == -1 && PyErr_Occurred()) @@ -850,8 +843,8 @@ static PyMethodDef rangeiter_methods[] = { PyTypeObject PyRangeIter_Type = { PyVarObject_HEAD_INIT(&PyType_Type, 0) - "range_iterator", /* tp_name */ - sizeof(rangeiterobject), /* tp_basicsize */ + "range_iterator", /* tp_name */ + sizeof(_PyRangeIterObject), /* tp_basicsize */ 0, /* tp_itemsize */ /* methods */ (destructor)PyObject_Del, /* tp_dealloc */ @@ -915,7 +908,7 @@ get_len_of_range(long lo, long hi, long step) static PyObject * fast_range_iter(long start, long stop, long step, long len) { - rangeiterobject *it = PyObject_New(rangeiterobject, &PyRangeIter_Type); + _PyRangeIterObject *it = PyObject_New(_PyRangeIterObject, &PyRangeIter_Type); if (it == NULL) return NULL; it->start = start; diff --git a/Objects/sliceobject.c b/Objects/sliceobject.c index 713829da574d50..e37623f38ba1f3 100644 --- a/Objects/sliceobject.c +++ b/Objects/sliceobject.c @@ -110,18 +110,10 @@ void _PySlice_Fini(PyInterpreterState *interp) index is present. */ -PyObject * -PySlice_New(PyObject *start, PyObject *stop, PyObject *step) +static PySliceObject * +_PyBuildSlice_Consume2(PyObject *start, PyObject *stop, PyObject *step) { - if (step == NULL) { - step = Py_None; - } - if (start == NULL) { - start = Py_None; - } - if (stop == NULL) { - stop = Py_None; - } + assert(start != NULL && stop != NULL && step != NULL); PyInterpreterState *interp = _PyInterpreterState_GET(); PySliceObject *obj; @@ -133,19 +125,44 @@ PySlice_New(PyObject *start, PyObject *stop, PyObject *step) else { obj = PyObject_GC_New(PySliceObject, &PySlice_Type); if (obj == NULL) { - return NULL; + goto error; } } - Py_INCREF(step); - obj->step = step; - Py_INCREF(start); obj->start = start; - Py_INCREF(stop); obj->stop = stop; + obj->step = Py_NewRef(step); _PyObject_GC_TRACK(obj); - return (PyObject *) obj; + return obj; +error: + Py_DECREF(start); + Py_DECREF(stop); + return NULL; +} + +PyObject * +PySlice_New(PyObject *start, PyObject *stop, PyObject *step) +{ + if (step == NULL) { + step = Py_None; + } + if (start == NULL) { + start = Py_None; + } + if (stop == NULL) { + stop = Py_None; + } + Py_INCREF(start); + Py_INCREF(stop); + return (PyObject *) _PyBuildSlice_Consume2(start, stop, step); +} + +PyObject * +_PyBuildSlice_ConsumeRefs(PyObject *start, PyObject *stop) +{ + assert(start != NULL && stop != NULL); + return (PyObject *)_PyBuildSlice_Consume2(start, stop, Py_None); } PyObject * diff --git a/Objects/stringlib/clinic/transmogrify.h.h b/Objects/stringlib/clinic/transmogrify.h.h index b88517bd3649a0..49388cf043ced2 100644 --- a/Objects/stringlib/clinic/transmogrify.h.h +++ b/Objects/stringlib/clinic/transmogrify.h.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(stringlib_expandtabs__doc__, "expandtabs($self, /, tabsize=8)\n" "--\n" @@ -20,8 +26,31 @@ static PyObject * stringlib_expandtabs(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(tabsize), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"tabsize", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "expandtabs", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "expandtabs", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int tabsize = 8; @@ -249,4 +278,4 @@ stringlib_zfill(PyObject *self, PyObject *arg) exit: return return_value; } -/*[clinic end generated code: output=46d058103bffedf7 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=d44a269805f6739e input=a9049054013a1b77]*/ diff --git a/Objects/stringlib/fastsearch.h b/Objects/stringlib/fastsearch.h index a838c66cccf74c..257b7bd6788ad2 100644 --- a/Objects/stringlib/fastsearch.h +++ b/Objects/stringlib/fastsearch.h @@ -18,7 +18,8 @@ algorithm, which has worst-case O(n) runtime and best-case O(n/k). Also compute a table of shifts to achieve O(n/k) in more cases, and often (data dependent) deduce larger shifts than pure C&P can - deduce. */ + deduce. See stringlib_find_two_way_notes.txt in this folder for a + detailed explanation. */ #define FAST_COUNT 0 #define FAST_SEARCH 1 @@ -355,7 +356,7 @@ STRINGLIB(_preprocess)(const STRINGLIB_CHAR *needle, Py_ssize_t len_needle, } // Fill up a compressed Boyer-Moore "Bad Character" table Py_ssize_t not_found_shift = Py_MIN(len_needle, MAX_SHIFT); - for (Py_ssize_t i = 0; i < TABLE_SIZE; i++) { + for (Py_ssize_t i = 0; i < (Py_ssize_t)TABLE_SIZE; i++) { p->table[i] = Py_SAFE_DOWNCAST(not_found_shift, Py_ssize_t, SHIFT_TYPE); } @@ -398,7 +399,7 @@ STRINGLIB(_two_way)(const STRINGLIB_CHAR *haystack, Py_ssize_t len_haystack, if (window_last >= haystack_end) { return -1; } - LOG("Horspool skip"); + LOG("Horspool skip\n"); } no_shift: window = window_last - len_needle + 1; @@ -457,7 +458,7 @@ STRINGLIB(_two_way)(const STRINGLIB_CHAR *haystack, Py_ssize_t len_haystack, if (window_last >= haystack_end) { return -1; } - LOG("Horspool skip"); + LOG("Horspool skip\n"); } window = window_last - len_needle + 1; assert((window[len_needle - 1] & TABLE_MASK) == diff --git a/Objects/stringlib/stringlib_find_two_way_notes.txt b/Objects/stringlib/stringlib_find_two_way_notes.txt index afe45431a75ac4..f97615b42fff4b 100644 --- a/Objects/stringlib/stringlib_find_two_way_notes.txt +++ b/Objects/stringlib/stringlib_find_two_way_notes.txt @@ -239,7 +239,7 @@ We cut as AA + bAAbAAbA, and then the algorithm runs as follows: ~~ AA != bA at the cut bbbAbbAAbAAbAAbbbAAbAAbAAbAA AAbAAbAAbA - ^^^^X 7-3=4 match, and the 5th misses. + ^^^^X 7-3=4 match, and the 5th misses. bbbAbbAAbAAbAAbbbAAbAAbAAbAA AAbAAbAAbA ~ A != b at the cut @@ -395,7 +395,7 @@ of their proof goes something like this (this is far from complete): needle == (a + w) + (w + b), meaning there's a bad equality w == w, it's impossible for w + b to be bigger than both b and w + w + b, so this can't happen. We thus have all of - the ineuqalities with no question marks. + the inequalities with no question marks. * By maximality, the right part is not a substring of the left part. Thus, we have all of the inequalities involving no left-side question marks. diff --git a/Objects/structseq.c b/Objects/structseq.c index 229e3d893ff6aa..9a7013372e688c 100644 --- a/Objects/structseq.c +++ b/Objects/structseq.c @@ -432,11 +432,21 @@ initialize_structseq_dict(PyStructSequence_Desc *desc, PyObject* dict, return -1; } -static void -initialize_members(PyStructSequence_Desc *desc, PyMemberDef* members, - Py_ssize_t n_members) { - Py_ssize_t i, k; +static PyMemberDef * +initialize_members(PyStructSequence_Desc *desc, + Py_ssize_t *pn_members, Py_ssize_t *pn_unnamed_members) +{ + PyMemberDef *members; + Py_ssize_t n_members, n_unnamed_members; + + n_members = count_members(desc, &n_unnamed_members); + members = PyMem_NEW(PyMemberDef, n_members - n_unnamed_members + 1); + if (members == NULL) { + PyErr_NoMemory(); + return NULL; + } + Py_ssize_t i, k; for (i = k = 0; i < n_members; ++i) { if (desc->fields[i].name == PyStructSequence_UnnamedField) { continue; @@ -453,30 +463,17 @@ initialize_members(PyStructSequence_Desc *desc, PyMemberDef* members, k++; } members[k].name = NULL; + + *pn_members = n_members; + *pn_unnamed_members = n_unnamed_members; + return members; } -int -_PyStructSequence_InitType(PyTypeObject *type, PyStructSequence_Desc *desc, - unsigned long tp_flags) +static void +initialize_static_fields(PyTypeObject *type, PyStructSequence_Desc *desc, + PyMemberDef *tp_members, unsigned long tp_flags) { - PyMemberDef *members; - Py_ssize_t n_members, n_unnamed_members; - -#ifdef Py_TRACE_REFS - /* if the type object was chained, unchain it first - before overwriting its storage */ - if (type->ob_base.ob_base._ob_next) { - _Py_ForgetReference((PyObject *)type); - } -#endif - - /* PyTypeObject has already been initialized */ - if (Py_REFCNT(type) != 0) { - PyErr_BadInternalCall(); - return -1; - } - type->tp_name = desc->name; type->tp_basicsize = sizeof(PyStructSequence) - sizeof(PyObject *); type->tp_itemsize = sizeof(PyObject *); @@ -488,25 +485,20 @@ _PyStructSequence_InitType(PyTypeObject *type, PyStructSequence_Desc *desc, type->tp_new = structseq_new; type->tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | tp_flags; type->tp_traverse = (traverseproc) structseq_traverse; + type->tp_members = tp_members; +} - n_members = count_members(desc, &n_unnamed_members); - members = PyMem_NEW(PyMemberDef, n_members - n_unnamed_members + 1); - if (members == NULL) { - PyErr_NoMemory(); - return -1; - } - initialize_members(desc, members, n_members); - type->tp_members = members; - +static int +initialize_static_type(PyTypeObject *type, PyStructSequence_Desc *desc, + Py_ssize_t n_members, Py_ssize_t n_unnamed_members) { + /* initialize_static_fields() should have been called already. */ if (PyType_Ready(type) < 0) { - PyMem_Free(members); return -1; } Py_INCREF(type); if (initialize_structseq_dict( desc, type->tp_dict, n_members, n_unnamed_members) < 0) { - PyMem_Free(members); Py_DECREF(type); return -1; } @@ -514,10 +506,63 @@ _PyStructSequence_InitType(PyTypeObject *type, PyStructSequence_Desc *desc, return 0; } +int +_PyStructSequence_InitBuiltinWithFlags(PyTypeObject *type, + PyStructSequence_Desc *desc, + unsigned long tp_flags) +{ + PyMemberDef *members; + Py_ssize_t n_members, n_unnamed_members; + + members = initialize_members(desc, &n_members, &n_unnamed_members); + if (members == NULL) { + return -1; + } + initialize_static_fields(type, desc, members, tp_flags); + if (_PyStaticType_InitBuiltin(type) < 0) { + PyMem_Free(members); + PyErr_Format(PyExc_RuntimeError, + "Can't initialize builtin type %s", + desc->name); + return -1; + } + if (initialize_static_type(type, desc, n_members, n_unnamed_members) < 0) { + PyMem_Free(members); + return -1; + } + return 0; +} + int PyStructSequence_InitType2(PyTypeObject *type, PyStructSequence_Desc *desc) { - return _PyStructSequence_InitType(type, desc, 0); + PyMemberDef *members; + Py_ssize_t n_members, n_unnamed_members; + +#ifdef Py_TRACE_REFS + /* if the type object was chained, unchain it first + before overwriting its storage */ + if (type->ob_base.ob_base._ob_next) { + _Py_ForgetReference((PyObject *)type); + } +#endif + + /* PyTypeObject has already been initialized */ + if (Py_REFCNT(type) != 0) { + PyErr_BadInternalCall(); + return -1; + } + + members = initialize_members(desc, &n_members, &n_unnamed_members); + if (members == NULL) { + return -1; + } + initialize_static_fields(type, desc, members, 0); + if (initialize_static_type(type, desc, n_members, n_unnamed_members) < 0) { + PyMem_Free(members); + return -1; + } + return 0; } void @@ -535,7 +580,7 @@ _PyStructSequence_FiniType(PyTypeObject *type) assert(type->tp_base == &PyTuple_Type); // Cannot delete a type if it still has subclasses - if (type->tp_subclasses != NULL) { + if (_PyType_HasSubclasses(type)) { return; } @@ -569,13 +614,10 @@ _PyStructSequence_NewType(PyStructSequence_Desc *desc, unsigned long tp_flags) Py_ssize_t n_members, n_unnamed_members; /* Initialize MemberDefs */ - n_members = count_members(desc, &n_unnamed_members); - members = PyMem_NEW(PyMemberDef, n_members - n_unnamed_members + 1); + members = initialize_members(desc, &n_members, &n_unnamed_members); if (members == NULL) { - PyErr_NoMemory(); return NULL; } - initialize_members(desc, members, n_members); /* Initialize Slots */ slots[0] = (PyType_Slot){Py_tp_dealloc, (destructor)structseq_dealloc}; diff --git a/Objects/tupleobject.c b/Objects/tupleobject.c index dfb8597b876e5c..240af0a9075271 100644 --- a/Objects/tupleobject.c +++ b/Objects/tupleobject.c @@ -495,9 +495,8 @@ tupleconcat(PyTupleObject *a, PyObject *bb) static PyObject * tuplerepeat(PyTupleObject *a, Py_ssize_t n) { - Py_ssize_t size; - PyTupleObject *np; - if (Py_SIZE(a) == 0 || n == 1) { + const Py_ssize_t input_size = Py_SIZE(a); + if (input_size == 0 || n == 1) { if (PyTuple_CheckExact(a)) { /* Since tuples are immutable, we can return a shared copy in this case */ @@ -505,42 +504,38 @@ tuplerepeat(PyTupleObject *a, Py_ssize_t n) return (PyObject *)a; } } - if (Py_SIZE(a) == 0 || n <= 0) { + if (input_size == 0 || n <= 0) { return tuple_get_empty(); } - if (n > PY_SSIZE_T_MAX / Py_SIZE(a)) + assert(n>0); + + if (input_size > PY_SSIZE_T_MAX / n) return PyErr_NoMemory(); - size = Py_SIZE(a) * n; - np = tuple_alloc(size); + Py_ssize_t output_size = input_size * n; + + PyTupleObject *np = tuple_alloc(output_size); if (np == NULL) return NULL; + PyObject **dest = np->ob_item; - PyObject **dest_end = dest + size; - if (Py_SIZE(a) == 1) { + if (input_size == 1) { PyObject *elem = a->ob_item[0]; - Py_SET_REFCNT(elem, Py_REFCNT(elem) + n); -#ifdef Py_REF_DEBUG - _Py_RefTotal += n; -#endif + _Py_RefcntAdd(elem, n); + PyObject **dest_end = dest + output_size; while (dest < dest_end) { *dest++ = elem; } } else { PyObject **src = a->ob_item; - PyObject **src_end = src + Py_SIZE(a); + PyObject **src_end = src + input_size; while (src < src_end) { - Py_SET_REFCNT(*src, Py_REFCNT(*src) + n); -#ifdef Py_REF_DEBUG - _Py_RefTotal += n; -#endif - *dest++ = *src++; - } - // Now src chases after dest in the same buffer - src = np->ob_item; - while (dest < dest_end) { + _Py_RefcntAdd(*src, n); *dest++ = *src++; } + + _Py_memory_repeat((char *)np->ob_item, sizeof(PyObject *)*output_size, + sizeof(PyObject *)*input_size); } _PyObject_GC_TRACK(np); return (PyObject *) np; diff --git a/Objects/typeobject.c b/Objects/typeobject.c index 37ac886f00446c..5aa5cbbd54022e 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -11,7 +11,6 @@ #include "pycore_pystate.h" // _PyThreadState_GET() #include "pycore_typeobject.h" // struct type_cache #include "pycore_unionobject.h" // _Py_union_type_or -#include "frameobject.h" // PyFrameObject #include "pycore_frame.h" // _PyInterpreterFrame #include "opcode.h" // MAKE_CELL #include "structmember.h" // PyMemberDef @@ -54,23 +53,105 @@ typedef struct PySlot_Offset { } PySlot_Offset; -/* bpo-40521: Interned strings are shared by all subinterpreters */ -#ifndef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS -# define INTERN_NAME_STRINGS -#endif - static PyObject * slot_tp_new(PyTypeObject *type, PyObject *args, PyObject *kwds); -static void -clear_slotdefs(void); - static PyObject * lookup_maybe_method(PyObject *self, PyObject *attr, int *unbound); static int slot_tp_setattro(PyObject *self, PyObject *name, PyObject *value); +static inline PyTypeObject * subclass_from_ref(PyObject *ref); + + +/* helpers for for static builtin types */ + +#ifndef NDEBUG +static inline int +static_builtin_index_is_set(PyTypeObject *self) +{ + return self->tp_subclasses != NULL; +} +#endif + +static inline size_t +static_builtin_index_get(PyTypeObject *self) +{ + assert(static_builtin_index_is_set(self)); + /* We store a 1-based index so 0 can mean "not initialized". */ + return (size_t)self->tp_subclasses - 1; +} + +static inline void +static_builtin_index_set(PyTypeObject *self, size_t index) +{ + assert(index < _Py_MAX_STATIC_BUILTIN_TYPES); + /* We store a 1-based index so 0 can mean "not initialized". */ + self->tp_subclasses = (PyObject *)(index + 1); +} + +static inline void +static_builtin_index_clear(PyTypeObject *self) +{ + self->tp_subclasses = NULL; +} + +static inline static_builtin_state * +static_builtin_state_get(PyInterpreterState *interp, PyTypeObject *self) +{ + return &(interp->types.builtins[static_builtin_index_get(self)]); +} + +/* For static types we store some state in an array on each interpreter. */ +static_builtin_state * +_PyStaticType_GetState(PyTypeObject *self) +{ + assert(self->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN); + PyInterpreterState *interp = _PyInterpreterState_GET(); + return static_builtin_state_get(interp, self); +} + +static void +static_builtin_state_init(PyTypeObject *self) +{ + /* Set the type's per-interpreter state. */ + PyInterpreterState *interp = _PyInterpreterState_GET(); + + /* It should only be called once for each builtin type. */ + assert(!static_builtin_index_is_set(self)); + + static_builtin_index_set(self, interp->types.num_builtins_initialized); + interp->types.num_builtins_initialized++; + + static_builtin_state *state = static_builtin_state_get(interp, self); + state->type = self; + /* state->tp_subclasses is left NULL until init_subclasses() sets it. */ + /* state->tp_weaklist is left NULL until insert_head() or insert_after() + (in weakrefobject.c) sets it. */ +} + +static void +static_builtin_state_clear(PyTypeObject *self) +{ + /* Reset the type's per-interpreter state. + This basically undoes what static_builtin_state_init() did. */ + PyInterpreterState *interp = _PyInterpreterState_GET(); + + static_builtin_state *state = static_builtin_state_get(interp, self); + state->type = NULL; + assert(state->tp_weaklist == NULL); // It was already cleared out. + static_builtin_index_clear(self); + + assert(interp->types.num_builtins_initialized > 0); + interp->types.num_builtins_initialized--; +} + +// Also see _PyStaticType_InitBuiltin() and _PyStaticType_Dealloc(). + +/* end static builtin helpers */ + + /* * finds the beginning of the docstring's introspection signature. * if present, returns a pointer pointing to the first '('. @@ -210,7 +291,7 @@ static struct type_cache* get_type_cache(void) { PyInterpreterState *interp = _PyInterpreterState_GET(); - return &interp->type_cache; + return &interp->types.type_cache; } @@ -229,7 +310,7 @@ type_cache_clear(struct type_cache *cache, PyObject *value) void _PyType_InitCache(PyInterpreterState *interp) { - struct type_cache *cache = &interp->type_cache; + struct type_cache *cache = &interp->types.type_cache; for (Py_ssize_t i = 0; i < (1 << MCACHE_SIZE_EXP); i++) { struct type_cache_entry *entry = &cache->hashtable[i]; assert(entry->name == NULL); @@ -246,7 +327,7 @@ _PyType_InitCache(PyInterpreterState *interp) static unsigned int _PyType_ClearCache(PyInterpreterState *interp) { - struct type_cache *cache = &interp->type_cache; + struct type_cache *cache = &interp->types.type_cache; #if MCACHE_STATS size_t total = cache->hits + cache->collisions + cache->misses; fprintf(stderr, "-- Method cache hits = %zd (%d%%)\n", @@ -278,14 +359,19 @@ PyType_ClearCache(void) void _PyTypes_Fini(PyInterpreterState *interp) { - struct type_cache *cache = &interp->type_cache; + struct type_cache *cache = &interp->types.type_cache; type_cache_clear(cache, NULL); - if (_Py_IsMainInterpreter(interp)) { - clear_slotdefs(); + + assert(interp->types.num_builtins_initialized == 0); + // All the static builtin types should have been finalized already. + for (size_t i = 0; i < _Py_MAX_STATIC_BUILTIN_TYPES; i++) { + assert(interp->types.builtins[i].type == NULL); } } +static PyObject * lookup_subclasses(PyTypeObject *); + void PyType_Modified(PyTypeObject *type) { @@ -308,19 +394,18 @@ PyType_Modified(PyTypeObject *type) return; } - PyObject *subclasses = type->tp_subclasses; + PyObject *subclasses = lookup_subclasses(type); if (subclasses != NULL) { assert(PyDict_CheckExact(subclasses)); Py_ssize_t i = 0; PyObject *ref; while (PyDict_Next(subclasses, &i, NULL, &ref)) { - assert(PyWeakref_CheckRef(ref)); - PyObject *obj = PyWeakref_GET_OBJECT(ref); - if (obj == Py_None) { + PyTypeObject *subclass = subclass_from_ref(ref); // borrowed + if (subclass == NULL) { continue; } - PyType_Modified(_PyType_CAST(obj)); + PyType_Modified(subclass); } } @@ -419,6 +504,8 @@ static PyMemberDef type_members[] = { {"__basicsize__", T_PYSSIZET, offsetof(PyTypeObject,tp_basicsize),READONLY}, {"__itemsize__", T_PYSSIZET, offsetof(PyTypeObject, tp_itemsize), READONLY}, {"__flags__", T_ULONG, offsetof(PyTypeObject, tp_flags), READONLY}, + /* Note that this value is misleading for static builtin types, + since the memory at this offset will always be NULL. */ {"__weakrefoffset__", T_PYSSIZET, offsetof(PyTypeObject, tp_weaklistoffset), READONLY}, {"__base__", T_OBJECT, offsetof(PyTypeObject, tp_base), READONLY}, @@ -695,7 +782,7 @@ mro_hierarchy(PyTypeObject *type, PyObject *temp) Py_XDECREF(old_mro); // Avoid creating an empty list if there is no subclass - if (type->tp_subclasses != NULL) { + if (_PyType_HasSubclasses(type)) { /* Obtain a copy of subclasses list to iterate over. Otherwise type->tp_subclasses might be altered @@ -1221,18 +1308,21 @@ subtype_traverse(PyObject *self, visitproc visit, void *arg) assert(base); } - if (type->tp_flags & Py_TPFLAGS_MANAGED_DICT) { - assert(type->tp_dictoffset); - int err = _PyObject_VisitInstanceAttributes(self, visit, arg); - if (err) { - return err; - } - } - if (type->tp_dictoffset != base->tp_dictoffset) { - PyObject **dictptr = _PyObject_DictPointer(self); - if (dictptr && *dictptr) - Py_VISIT(*dictptr); + assert(base->tp_dictoffset == 0); + if (type->tp_flags & Py_TPFLAGS_MANAGED_DICT) { + assert(type->tp_dictoffset == -1); + int err = _PyObject_VisitManagedDict(self, visit, arg); + if (err) { + return err; + } + } + else { + PyObject **dictptr = _PyObject_ComputedDictPointer(self); + if (dictptr && *dictptr) { + Py_VISIT(*dictptr); + } + } } if (type->tp_flags & Py_TPFLAGS_HEAPTYPE @@ -1291,10 +1381,12 @@ subtype_clear(PyObject *self) /* Clear the instance dict (if any), to break cycles involving only __dict__ slots (as in the case 'self.__dict__ is self'). */ if (type->tp_flags & Py_TPFLAGS_MANAGED_DICT) { - _PyObject_ClearInstanceAttributes(self); + if ((base->tp_flags & Py_TPFLAGS_MANAGED_DICT) == 0) { + _PyObject_ClearManagedDict(self); + } } - if (type->tp_dictoffset != base->tp_dictoffset) { - PyObject **dictptr = _PyObject_DictPointer(self); + else if (type->tp_dictoffset != base->tp_dictoffset) { + PyObject **dictptr = _PyObject_ComputedDictPointer(self); if (dictptr && *dictptr) Py_CLEAR(*dictptr); } @@ -1419,11 +1511,15 @@ subtype_dealloc(PyObject *self) finalizers since they might rely on part of the object being finalized that has already been destroyed. */ if (type->tp_weaklistoffset && !base->tp_weaklistoffset) { - /* Modeled after GET_WEAKREFS_LISTPTR() */ - PyWeakReference **list = (PyWeakReference **) \ - _PyObject_GET_WEAKREFS_LISTPTR(self); - while (*list) + /* Modeled after GET_WEAKREFS_LISTPTR(). + + This is never triggered for static types so we can avoid the + (slightly) more costly _PyObject_GET_WEAKREFS_LISTPTR(). */ + PyWeakReference **list = \ + _PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET(self); + while (*list) { _PyWeakref_ClearRef(*list); + } } } @@ -1438,18 +1534,17 @@ subtype_dealloc(PyObject *self) /* If we added a dict, DECREF it, or free inline values. */ if (type->tp_flags & Py_TPFLAGS_MANAGED_DICT) { - PyObject **dictptr = _PyObject_ManagedDictPointer(self); - if (*dictptr != NULL) { - assert(*_PyObject_ValuesPointer(self) == NULL); - Py_DECREF(*dictptr); - *dictptr = NULL; + PyDictOrValues *dorv_ptr = _PyObject_DictOrValuesPointer(self); + if (_PyDictOrValues_IsValues(*dorv_ptr)) { + _PyObject_FreeInstanceAttributes(self); } else { - _PyObject_FreeInstanceAttributes(self); + Py_XDECREF(_PyDictOrValues_GetDict(*dorv_ptr)); } + dorv_ptr->values = NULL; } else if (type->tp_dictoffset && !base->tp_dictoffset) { - PyObject **dictptr = _PyObject_DictPointer(self); + PyObject **dictptr = _PyObject_ComputedDictPointer(self); if (dictptr != NULL) { PyObject *dict = *dictptr; if (dict != NULL) { @@ -2232,22 +2327,12 @@ best_base(PyObject *bases) } static int -extra_ivars(PyTypeObject *type, PyTypeObject *base) +shape_differs(PyTypeObject *t1, PyTypeObject *t2) { - size_t t_size = type->tp_basicsize; - size_t b_size = base->tp_basicsize; - - assert(t_size >= b_size); /* Else type smaller than base! */ - if (type->tp_itemsize || base->tp_itemsize) { - /* If itemsize is involved, stricter rules */ - return t_size != b_size || - type->tp_itemsize != base->tp_itemsize; - } - if (type->tp_weaklistoffset && base->tp_weaklistoffset == 0 && - type->tp_weaklistoffset + sizeof(PyObject *) == t_size && - type->tp_flags & Py_TPFLAGS_HEAPTYPE) - t_size -= sizeof(PyObject *); - return t_size != b_size; + return ( + t1->tp_basicsize != t2->tp_basicsize || + t1->tp_itemsize != t2->tp_itemsize + ); } static PyTypeObject * @@ -2255,14 +2340,18 @@ solid_base(PyTypeObject *type) { PyTypeObject *base; - if (type->tp_base) + if (type->tp_base) { base = solid_base(type->tp_base); - else + } + else { base = &PyBaseObject_Type; - if (extra_ivars(type, base)) + } + if (shape_differs(type, base)) { return type; - else + } + else { return base; + } } static void object_dealloc(PyObject *); @@ -2385,10 +2474,11 @@ subtype_getweakref(PyObject *obj, void *context) return NULL; } _PyObject_ASSERT((PyObject *)type, - type->tp_weaklistoffset > 0); + type->tp_weaklistoffset > 0 || + type->tp_weaklistoffset == MANAGED_WEAKREF_OFFSET); _PyObject_ASSERT((PyObject *)type, - ((type->tp_weaklistoffset + sizeof(PyObject *)) - <= (size_t)(type->tp_basicsize))); + ((type->tp_weaklistoffset + (Py_ssize_t)sizeof(PyObject *)) + <= type->tp_basicsize)); weaklistptr = (PyObject **)((char *)obj + type->tp_weaklistoffset); if (*weaklistptr == NULL) result = Py_None; @@ -2980,20 +3070,15 @@ type_new_descriptors(const type_new_ctx *ctx, PyTypeObject *type) } } - if (ctx->add_dict && ctx->base->tp_itemsize) { - type->tp_dictoffset = -(long)sizeof(PyObject *); - slotoffset += sizeof(PyObject *); - } - if (ctx->add_weak) { - assert(!ctx->base->tp_itemsize); - type->tp_weaklistoffset = slotoffset; - slotoffset += sizeof(PyObject *); + assert((type->tp_flags & Py_TPFLAGS_MANAGED_WEAKREF) == 0); + type->tp_flags |= Py_TPFLAGS_MANAGED_WEAKREF; + type->tp_weaklistoffset = MANAGED_WEAKREF_OFFSET; } - if (ctx->add_dict && ctx->base->tp_itemsize == 0) { + if (ctx->add_dict) { assert((type->tp_flags & Py_TPFLAGS_MANAGED_DICT) == 0); type->tp_flags |= Py_TPFLAGS_MANAGED_DICT; - type->tp_dictoffset = -slotoffset - sizeof(PyObject *)*3; + type->tp_dictoffset = -1; } type->tp_basicsize = slotoffset; @@ -3196,11 +3281,6 @@ type_new_impl(type_new_ctx *ctx) // Put the proper slots in place fixup_slot_dispatchers(type); - if (type->tp_flags & Py_TPFLAGS_MANAGED_DICT) { - PyHeapTypeObject *et = (PyHeapTypeObject*)type; - et->ht_cached_keys = _PyDict_NewKeysForClass(); - } - if (type_new_set_names(type) < 0) { goto error; } @@ -3366,34 +3446,125 @@ static const PySlot_Offset pyslot_offsets[] = { #include "typeslots.inc" }; +/* Given a PyType_FromMetaclass `bases` argument (NULL, type, or tuple of + * types), return a tuple of types. + */ +inline static PyObject * +get_bases_tuple(PyObject *bases_in, PyType_Spec *spec) +{ + if (!bases_in) { + /* Default: look in the spec, fall back to (type,). */ + PyTypeObject *base = &PyBaseObject_Type; // borrowed ref + PyObject *bases = NULL; // borrowed ref + const PyType_Slot *slot; + for (slot = spec->slots; slot->slot; slot++) { + switch (slot->slot) { + case Py_tp_base: + base = slot->pfunc; + break; + case Py_tp_bases: + bases = slot->pfunc; + break; + } + } + if (!bases) { + return PyTuple_Pack(1, base); + } + if (PyTuple_Check(bases)) { + return Py_NewRef(bases); + } + PyErr_SetString(PyExc_SystemError, "Py_tp_bases is not a tuple"); + return NULL; + } + if (PyTuple_Check(bases_in)) { + return Py_NewRef(bases_in); + } + // Not a tuple, should be a single type + return PyTuple_Pack(1, bases_in); +} + +static inline int +check_basicsize_includes_size_and_offsets(PyTypeObject* type) +{ + if (type->tp_alloc != PyType_GenericAlloc) { + // Custom allocators can ignore tp_basicsize + return 1; + } + Py_ssize_t max = (Py_ssize_t)type->tp_basicsize; + + if (type->tp_base && type->tp_base->tp_basicsize > type->tp_basicsize) { + PyErr_Format(PyExc_TypeError, + "tp_basicsize for type '%s' (%d) is too small for base '%s' (%d)", + type->tp_name, type->tp_basicsize, + type->tp_base->tp_name, type->tp_base->tp_basicsize); + return 0; + } + if (type->tp_weaklistoffset + (Py_ssize_t)sizeof(PyObject*) > max) { + PyErr_Format(PyExc_TypeError, + "weaklist offset %d is out of bounds for type '%s' (tp_basicsize = %d)", + type->tp_weaklistoffset, + type->tp_name, type->tp_basicsize); + return 0; + } + if (type->tp_dictoffset + (Py_ssize_t)sizeof(PyObject*) > max) { + PyErr_Format(PyExc_TypeError, + "dict offset %d is out of bounds for type '%s' (tp_basicsize = %d)", + type->tp_dictoffset, + type->tp_name, type->tp_basicsize); + return 0; + } + if (type->tp_vectorcall_offset + (Py_ssize_t)sizeof(vectorcallfunc*) > max) { + PyErr_Format(PyExc_TypeError, + "vectorcall offset %d is out of bounds for type '%s' (tp_basicsize = %d)", + type->tp_vectorcall_offset, + type->tp_name, type->tp_basicsize); + return 0; + } + return 1; +} + PyObject * PyType_FromMetaclass(PyTypeObject *metaclass, PyObject *module, - PyType_Spec *spec, PyObject *bases) + PyType_Spec *spec, PyObject *bases_in) { - PyHeapTypeObject *res; - PyObject *modname; - PyTypeObject *type, *base; + /* Invariant: A non-NULL value in one of these means this function holds + * a strong reference or owns allocated memory. + * These get decrefed/freed/returned at the end, on both success and error. + */ + PyHeapTypeObject *res = NULL; + PyTypeObject *type; + PyObject *bases = NULL; + char *tp_doc = NULL; + PyObject *ht_name = NULL; + char *_ht_tpname = NULL; + int r; + /* Prepare slots that need special handling. + * Keep in mind that a slot can be given multiple times: + * if that would cause trouble (leaks, UB, ...), raise an exception. + */ + const PyType_Slot *slot; - Py_ssize_t nmembers, weaklistoffset, dictoffset, vectorcalloffset; + Py_ssize_t nmembers = 0; + Py_ssize_t weaklistoffset, dictoffset, vectorcalloffset; char *res_start; - short slot_offset, subslot_offset; - - if (!metaclass) { - metaclass = &PyType_Type; - } - - if (metaclass->tp_new != PyType_Type.tp_new) { - PyErr_SetString(PyExc_TypeError, - "Metaclasses with custom tp_new are not supported."); - return NULL; - } nmembers = weaklistoffset = dictoffset = vectorcalloffset = 0; for (slot = spec->slots; slot->slot; slot++) { - if (slot->slot == Py_tp_members) { - nmembers = 0; + if (slot->slot < 0 + || (size_t)slot->slot >= Py_ARRAY_LENGTH(pyslot_offsets)) { + PyErr_SetString(PyExc_RuntimeError, "invalid slot offset"); + goto finally; + } + switch (slot->slot) { + case Py_tp_members: + if (nmembers != 0) { + PyErr_SetString( + PyExc_SystemError, + "Multiple Py_tp_members slots are not supported."); + goto finally; + } for (const PyMemberDef *memb = slot->pfunc; memb->name != NULL; memb++) { nmembers++; if (strcmp(memb->name, "__weaklistoffset__") == 0) { @@ -3415,25 +3586,41 @@ PyType_FromMetaclass(PyTypeObject *metaclass, PyObject *module, vectorcalloffset = memb->offset; } } + break; + case Py_tp_doc: + /* For the docstring slot, which usually points to a static string + literal, we need to make a copy */ + if (tp_doc != NULL) { + PyErr_SetString( + PyExc_SystemError, + "Multiple Py_tp_doc slots are not supported."); + goto finally; + } + if (slot->pfunc == NULL) { + PyObject_Free(tp_doc); + tp_doc = NULL; + } + else { + size_t len = strlen(slot->pfunc)+1; + tp_doc = PyObject_Malloc(len); + if (tp_doc == NULL) { + PyErr_NoMemory(); + goto finally; + } + memcpy(tp_doc, slot->pfunc, len); + } + break; } } - res = (PyHeapTypeObject*)metaclass->tp_alloc(metaclass, nmembers); - if (res == NULL) - return NULL; - res_start = (char*)res; + /* Prepare the type name and qualname */ if (spec->name == NULL) { PyErr_SetString(PyExc_SystemError, "Type spec does not define the name field."); - goto fail; + goto finally; } - type = &res->ht_type; - /* The flags must be initialized early, before the GC traverses us */ - type->tp_flags = spec->flags | Py_TPFLAGS_HEAPTYPE; - - /* Set the type name and qualname */ const char *s = strrchr(spec->name, '.'); if (s == NULL) { s = spec->name; @@ -3442,11 +3629,10 @@ PyType_FromMetaclass(PyTypeObject *metaclass, PyObject *module, s++; } - res->ht_name = PyUnicode_FromString(s); - if (!res->ht_name) { - goto fail; + ht_name = PyUnicode_FromString(s); + if (!ht_name) { + goto finally; } - res->ht_qualname = Py_NewRef(res->ht_name); /* Copy spec->name to a buffer we own. * @@ -3458,119 +3644,158 @@ PyType_FromMetaclass(PyTypeObject *metaclass, PyObject *module, * deallocated with the type (if it's non-NULL). */ Py_ssize_t name_buf_len = strlen(spec->name) + 1; - res->_ht_tpname = PyMem_Malloc(name_buf_len); - if (res->_ht_tpname == NULL) { - goto fail; + _ht_tpname = PyMem_Malloc(name_buf_len); + if (_ht_tpname == NULL) { + goto finally; } - type->tp_name = memcpy(res->_ht_tpname, spec->name, name_buf_len); - - res->ht_module = Py_XNewRef(module); + memcpy(_ht_tpname, spec->name, name_buf_len); - /* Adjust for empty tuple bases */ + /* Get a tuple of bases. + * bases is a strong reference (unlike bases_in). + */ + bases = get_bases_tuple(bases_in, spec); if (!bases) { - base = &PyBaseObject_Type; - /* See whether Py_tp_base(s) was specified */ - for (slot = spec->slots; slot->slot; slot++) { - if (slot->slot == Py_tp_base) - base = slot->pfunc; - else if (slot->slot == Py_tp_bases) { - bases = slot->pfunc; + goto finally; + } + + /* If this is an immutable type, check if all bases are also immutable, + * and (for now) fire a deprecation warning if not. + * (This isn't necessary for static types: those can't have heap bases, + * and only heap types can be mutable.) + */ + if (spec->flags & Py_TPFLAGS_IMMUTABLETYPE) { + for (int i=0; i<PyTuple_GET_SIZE(bases); i++) { + PyTypeObject *b = (PyTypeObject*)PyTuple_GET_ITEM(bases, i); + if (!b) { + goto finally; + } + if (!_PyType_HasFeature(b, Py_TPFLAGS_IMMUTABLETYPE)) { + if (PyErr_WarnFormat( + PyExc_DeprecationWarning, + 0, + "Creating immutable type %s from mutable base %s is " + "deprecated, and slated to be disallowed in Python 3.14.", + spec->name, + b->tp_name)) + { + goto finally; + } } - } - if (!bases) { - bases = PyTuple_Pack(1, base); - if (!bases) - goto fail; - } - else if (!PyTuple_Check(bases)) { - PyErr_SetString(PyExc_SystemError, "Py_tp_bases is not a tuple"); - goto fail; - } - else { - Py_INCREF(bases); } } - else if (!PyTuple_Check(bases)) { - bases = PyTuple_Pack(1, bases); - if (!bases) - goto fail; + + /* Calculate the metaclass */ + + if (!metaclass) { + metaclass = &PyType_Type; } - else { - Py_INCREF(bases); + metaclass = _PyType_CalculateMetaclass(metaclass, bases); + if (metaclass == NULL) { + goto finally; + } + if (!PyType_Check(metaclass)) { + PyErr_Format(PyExc_TypeError, + "Metaclass '%R' is not a subclass of 'type'.", + metaclass); + goto finally; + } + if (metaclass->tp_new != PyType_Type.tp_new) { + PyErr_SetString(PyExc_TypeError, + "Metaclasses with custom tp_new are not supported."); + goto finally; } /* Calculate best base, and check that all bases are type objects */ - base = best_base(bases); + PyTypeObject *base = best_base(bases); // borrowed ref if (base == NULL) { - Py_DECREF(bases); - goto fail; - } - if (!_PyType_HasFeature(base, Py_TPFLAGS_BASETYPE)) { - PyErr_Format(PyExc_TypeError, - "type '%.100s' is not an acceptable base type", - base->tp_name); - Py_DECREF(bases); - goto fail; + goto finally; + } + // best_base should check Py_TPFLAGS_BASETYPE & raise a proper exception, + // here we just check its work + assert(_PyType_HasFeature(base, Py_TPFLAGS_BASETYPE)); + + /* Allocate the new type + * + * Between here and PyType_Ready, we should limit: + * - calls to Python code + * - raising exceptions + * - memory allocations + */ + + res = (PyHeapTypeObject*)metaclass->tp_alloc(metaclass, nmembers); + if (res == NULL) { + goto finally; } + res_start = (char*)res; + + type = &res->ht_type; + /* The flags must be initialized early, before the GC traverses us */ + type->tp_flags = spec->flags | Py_TPFLAGS_HEAPTYPE; + + res->ht_module = Py_XNewRef(module); /* Initialize essential fields */ + type->tp_as_async = &res->as_async; type->tp_as_number = &res->as_number; type->tp_as_sequence = &res->as_sequence; type->tp_as_mapping = &res->as_mapping; type->tp_as_buffer = &res->as_buffer; - /* Set tp_base and tp_bases */ + + /* Set slots we have prepared */ + + type->tp_base = (PyTypeObject *)Py_NewRef(base); type->tp_bases = bases; - Py_INCREF(base); - type->tp_base = base; + bases = NULL; // We give our reference to bases to the type + + type->tp_doc = tp_doc; + tp_doc = NULL; // Give ownership of the allocated memory to the type + + res->ht_qualname = Py_NewRef(ht_name); + res->ht_name = ht_name; + ht_name = NULL; // Give our reference to to the type + + type->tp_name = _ht_tpname; + res->_ht_tpname = _ht_tpname; + _ht_tpname = NULL; // Give ownership to to the type + + /* Copy the sizes */ type->tp_basicsize = spec->basicsize; type->tp_itemsize = spec->itemsize; + /* Copy all the ordinary slots */ + for (slot = spec->slots; slot->slot; slot++) { - if (slot->slot < 0 - || (size_t)slot->slot >= Py_ARRAY_LENGTH(pyslot_offsets)) { - PyErr_SetString(PyExc_RuntimeError, "invalid slot offset"); - goto fail; - } - else if (slot->slot == Py_tp_base || slot->slot == Py_tp_bases) { + switch (slot->slot) { + case Py_tp_base: + case Py_tp_bases: + case Py_tp_doc: /* Processed above */ - continue; - } - else if (slot->slot == Py_tp_doc) { - /* For the docstring slot, which usually points to a static string - literal, we need to make a copy */ - if (slot->pfunc == NULL) { - type->tp_doc = NULL; - continue; - } - size_t len = strlen(slot->pfunc)+1; - char *tp_doc = PyObject_Malloc(len); - if (tp_doc == NULL) { - type->tp_doc = NULL; - PyErr_NoMemory(); - goto fail; + break; + case Py_tp_members: + { + /* Move the slots to the heap type itself */ + size_t len = Py_TYPE(type)->tp_itemsize * nmembers; + memcpy(_PyHeapType_GET_MEMBERS(res), slot->pfunc, len); + type->tp_members = _PyHeapType_GET_MEMBERS(res); } - memcpy(tp_doc, slot->pfunc, len); - type->tp_doc = tp_doc; - } - else if (slot->slot == Py_tp_members) { - /* Move the slots to the heap type itself */ - size_t len = Py_TYPE(type)->tp_itemsize * nmembers; - memcpy(_PyHeapType_GET_MEMBERS(res), slot->pfunc, len); - type->tp_members = _PyHeapType_GET_MEMBERS(res); - } - else { - /* Copy other slots directly */ - PySlot_Offset slotoffsets = pyslot_offsets[slot->slot]; - slot_offset = slotoffsets.slot_offset; - if (slotoffsets.subslot_offset == -1) { - *(void**)((char*)res_start + slot_offset) = slot->pfunc; - } else { - void *parent_slot = *(void**)((char*)res_start + slot_offset); - subslot_offset = slotoffsets.subslot_offset; - *(void**)((char*)parent_slot + subslot_offset) = slot->pfunc; + break; + default: + { + /* Copy other slots directly */ + PySlot_Offset slotoffsets = pyslot_offsets[slot->slot]; + short slot_offset = slotoffsets.slot_offset; + if (slotoffsets.subslot_offset == -1) { + *(void**)((char*)res_start + slot_offset) = slot->pfunc; + } + else { + void *procs = *(void**)((char*)res_start + slot_offset); + short subslot_offset = slotoffsets.subslot_offset; + *(void**)((char*)procs + subslot_offset) = slot->pfunc; + } } + break; } } if (type->tp_dealloc == NULL) { @@ -3580,69 +3805,87 @@ PyType_FromMetaclass(PyTypeObject *metaclass, PyObject *module, type->tp_dealloc = subtype_dealloc; } - if (vectorcalloffset) { - type->tp_vectorcall_offset = vectorcalloffset; - } + /* Set up offsets */ - if (PyType_Ready(type) < 0) - goto fail; + type->tp_vectorcall_offset = vectorcalloffset; + type->tp_weaklistoffset = weaklistoffset; + type->tp_dictoffset = dictoffset; - if (type->tp_flags & Py_TPFLAGS_MANAGED_DICT) { - res->ht_cached_keys = _PyDict_NewKeysForClass(); + /* Ready the type (which includes inheritance). + * + * After this call we should generally only touch up what's + * accessible to Python code, like __dict__. + */ + + if (PyType_Ready(type) < 0) { + goto finally; + } + + if (!check_basicsize_includes_size_and_offsets(type)) { + goto finally; } if (type->tp_doc) { PyObject *__doc__ = PyUnicode_FromString(_PyType_DocWithoutSignature(type->tp_name, type->tp_doc)); - if (!__doc__) - goto fail; + if (!__doc__) { + goto finally; + } r = PyDict_SetItem(type->tp_dict, &_Py_ID(__doc__), __doc__); Py_DECREF(__doc__); - if (r < 0) - goto fail; + if (r < 0) { + goto finally; + } } if (weaklistoffset) { - type->tp_weaklistoffset = weaklistoffset; - if (PyDict_DelItemString((PyObject *)type->tp_dict, "__weaklistoffset__") < 0) - goto fail; + if (PyDict_DelItem((PyObject *)type->tp_dict, &_Py_ID(__weaklistoffset__)) < 0) { + goto finally; + } } if (dictoffset) { - type->tp_dictoffset = dictoffset; - if (PyDict_DelItemString((PyObject *)type->tp_dict, "__dictoffset__") < 0) - goto fail; + if (PyDict_DelItem((PyObject *)type->tp_dict, &_Py_ID(__dictoffset__)) < 0) { + goto finally; + } } /* Set type.__module__ */ r = PyDict_Contains(type->tp_dict, &_Py_ID(__module__)); if (r < 0) { - goto fail; + goto finally; } if (r == 0) { s = strrchr(spec->name, '.'); if (s != NULL) { - modname = PyUnicode_FromStringAndSize( + PyObject *modname = PyUnicode_FromStringAndSize( spec->name, (Py_ssize_t)(s - spec->name)); if (modname == NULL) { - goto fail; + goto finally; } r = PyDict_SetItem(type->tp_dict, &_Py_ID(__module__), modname); Py_DECREF(modname); - if (r != 0) - goto fail; - } else { + if (r != 0) { + goto finally; + } + } + else { if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1, "builtin type %.200s has no __module__ attribute", spec->name)) - goto fail; + goto finally; } } assert(_PyType_CheckConsistency(type)); - return (PyObject*)res; - fail: - Py_DECREF(res); - return NULL; + finally: + if (PyErr_Occurred()) { + Py_CLEAR(res); + } + Py_XDECREF(bases); + PyObject_Free(tp_doc); + Py_XDECREF(ht_name); + PyMem_Free(_ht_tpname); + return (PyObject*)res; } PyObject * @@ -4027,7 +4270,7 @@ type_setattro(PyTypeObject *type, PyObject *name, PyObject *value) if (name == NULL) return -1; } -#ifdef INTERN_NAME_STRINGS + /* bpo-40521: Interned strings are shared by all subinterpreters */ if (!PyUnicode_CHECK_INTERNED(name)) { PyUnicode_InternInPlace(&name); if (!PyUnicode_CHECK_INTERNED(name)) { @@ -4037,7 +4280,6 @@ type_setattro(PyTypeObject *type, PyObject *name, PyObject *value) return -1; } } -#endif } else { /* Will fail in _PyObject_GenericSetAttrWithDict. */ @@ -4077,23 +4319,63 @@ type_dealloc_common(PyTypeObject *type) } -void -_PyStaticType_Dealloc(PyTypeObject *type) +static void clear_subclasses(PyTypeObject *self); + +static void +clear_static_tp_subclasses(PyTypeObject *type) { - // If a type still has subtypes, it cannot be deallocated. - // A subtype can inherit attributes and methods of its parent type, - // and a type must no longer be used once it's deallocated. - if (type->tp_subclasses != NULL) { + PyObject *subclasses = lookup_subclasses(type); + if (subclasses == NULL) { return; } + /* Normally it would be a problem to finalize the type if its + tp_subclasses wasn't cleared first. However, this is only + ever called at the end of runtime finalization, so we can be + more liberal in cleaning up. If the given type still has + subtypes at this point then some extension module did not + correctly finalize its objects. + + We can safely obliterate such subtypes since the extension + module and its objects won't be used again, except maybe if + the runtime were re-initialized. In that case the sticky + situation would only happen if the module were re-imported + then and only if the subtype were stored in a global and only + if that global were not overwritten during import. We'd be + fine since the extension is otherwise unsafe and unsupported + in that situation, and likely problematic already. + + In any case, this situation means at least some memory is + going to leak. This mostly only affects embedding scenarios. + */ + + // For now we just do a sanity check and then clear tp_subclasses. + Py_ssize_t i = 0; + PyObject *key, *ref; // borrowed ref + while (PyDict_Next(subclasses, &i, &key, &ref)) { + PyTypeObject *subclass = subclass_from_ref(ref); // borrowed + if (subclass == NULL) { + continue; + } + // All static builtin subtypes should have been finalized already. + assert(!(subclass->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN)); + } + + clear_subclasses(type); +} + +void +_PyStaticType_Dealloc(PyTypeObject *type) +{ + assert(!(type->tp_flags & Py_TPFLAGS_HEAPTYPE)); + type_dealloc_common(type); Py_CLEAR(type->tp_dict); Py_CLEAR(type->tp_bases); Py_CLEAR(type->tp_mro); Py_CLEAR(type->tp_cache); - // type->tp_subclasses is NULL + clear_static_tp_subclasses(type); // PyObject_ClearWeakRefs() raises an exception if Py_REFCNT() != 0 if (Py_REFCNT(type) == 0) { @@ -4101,6 +4383,12 @@ _PyStaticType_Dealloc(PyTypeObject *type) } type->tp_flags &= ~Py_TPFLAGS_READY; + + if (type->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN) { + _PyStaticType_ClearWeakRefs(type); + static_builtin_state_clear(type); + /* We leave _Py_TPFLAGS_STATIC_BUILTIN set on tp_flags. */ + } } @@ -4123,7 +4411,7 @@ type_dealloc(PyTypeObject *type) Py_XDECREF(type->tp_bases); Py_XDECREF(type->tp_mro); Py_XDECREF(type->tp_cache); - Py_XDECREF(type->tp_subclasses); + clear_subclasses(type); /* A type's tp_doc is heap allocated, unlike the tp_doc slots * of most other objects. It's okay to cast it to char *. @@ -4143,6 +4431,30 @@ type_dealloc(PyTypeObject *type) } +static PyObject * +lookup_subclasses(PyTypeObject *self) +{ + if (self->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN) { + static_builtin_state *state = _PyStaticType_GetState(self); + assert(state != NULL); + return state->tp_subclasses; + } + return (PyObject *)self->tp_subclasses; +} + +int +_PyType_HasSubclasses(PyTypeObject *self) +{ + if (self->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN && + _PyStaticType_GetState(self) == NULL) { + return 0; + } + if (lookup_subclasses(self) == NULL) { + return 0; + } + return 1; +} + PyObject* _PyType_GetSubclasses(PyTypeObject *self) { @@ -4151,7 +4463,7 @@ _PyType_GetSubclasses(PyTypeObject *self) return NULL; } - PyObject *subclasses = self->tp_subclasses; // borrowed ref + PyObject *subclasses = lookup_subclasses(self); // borrowed ref if (subclasses == NULL) { return list; } @@ -4162,14 +4474,12 @@ _PyType_GetSubclasses(PyTypeObject *self) Py_ssize_t i = 0; PyObject *ref; // borrowed ref while (PyDict_Next(subclasses, &i, NULL, &ref)) { - assert(PyWeakref_CheckRef(ref)); - PyObject *obj = PyWeakref_GET_OBJECT(ref); // borrowed ref - if (obj == Py_None) { + PyTypeObject *subclass = subclass_from_ref(ref); // borrowed + if (subclass == NULL) { continue; } - assert(PyType_Check(obj)); - if (PyList_Append(list, obj) < 0) { + if (PyList_Append(list, _PyObject_CAST(subclass)) < 0) { Py_DECREF(list); return NULL; } @@ -4775,9 +5085,9 @@ compatible_for_assignment(PyTypeObject* oldto, PyTypeObject* newto, const char* !same_slots_added(newbase, oldbase))) { goto differs; } - /* The above does not check for managed __dicts__ */ - if ((oldto->tp_flags & Py_TPFLAGS_MANAGED_DICT) == - ((newto->tp_flags & Py_TPFLAGS_MANAGED_DICT))) + /* The above does not check for the preheader */ + if ((oldto->tp_flags & Py_TPFLAGS_PREHEADER) == + ((newto->tp_flags & Py_TPFLAGS_PREHEADER))) { return 1; } @@ -4876,9 +5186,11 @@ object_set_class(PyObject *self, PyObject *value, void *closure) if (compatible_for_assignment(oldto, newto, "__class__")) { /* Changing the class will change the implicit dict keys, * so we must materialize the dictionary first. */ - assert((oldto->tp_flags & Py_TPFLAGS_MANAGED_DICT) == (newto->tp_flags & Py_TPFLAGS_MANAGED_DICT)); + assert((oldto->tp_flags & Py_TPFLAGS_PREHEADER) == (newto->tp_flags & Py_TPFLAGS_PREHEADER)); _PyObject_GetDictPtr(self); - if (oldto->tp_flags & Py_TPFLAGS_MANAGED_DICT && *_PyObject_ValuesPointer(self)) { + if (oldto->tp_flags & Py_TPFLAGS_MANAGED_DICT && + _PyDictOrValues_IsValues(*_PyObject_DictOrValuesPointer(self))) + { /* Was unable to convert to dict */ PyErr_NoMemory(); return -1; @@ -5017,7 +5329,7 @@ object_getstate_default(PyObject *obj, int required) { basicsize += sizeof(PyObject *); } - if (Py_TYPE(obj)->tp_weaklistoffset) { + if (Py_TYPE(obj)->tp_weaklistoffset > 0) { basicsize += sizeof(PyObject *); } if (slotnames != Py_None) { @@ -5119,7 +5431,7 @@ object_getstate(PyObject *obj, int required) PyCFunction_GET_SELF(getstate) == obj && PyCFunction_GET_FUNCTION(getstate) == object___getstate__) { - /* If __getstate__ is not overriden pass the required argument. */ + /* If __getstate__ is not overridden pass the required argument. */ state = object_getstate_default(obj, required); } else { @@ -5807,7 +6119,7 @@ inherit_special(PyTypeObject *type, PyTypeObject *base) if (type->tp_clear == NULL) type->tp_clear = base->tp_clear; } - type->tp_flags |= (base->tp_flags & Py_TPFLAGS_MANAGED_DICT); + type->tp_flags |= (base->tp_flags & Py_TPFLAGS_PREHEADER); if (type->tp_basicsize == 0) type->tp_basicsize = base->tp_basicsize; @@ -5820,6 +6132,7 @@ inherit_special(PyTypeObject *type, PyTypeObject *base) COPYVAL(tp_itemsize); COPYVAL(tp_weaklistoffset); COPYVAL(tp_dictoffset); + #undef COPYVAL /* Setup fast subclass flags */ @@ -5993,11 +6306,9 @@ inherit_slots(PyTypeObject *type, PyTypeObject *base) * won't be used automatically. */ COPYSLOT(tp_vectorcall_offset); - /* Inherit Py_TPFLAGS_HAVE_VECTORCALL for non-heap types - * if tp_call is not overridden */ + /* Inherit Py_TPFLAGS_HAVE_VECTORCALL if tp_call is not overridden */ if (!type->tp_call && - _PyType_HasFeature(base, Py_TPFLAGS_HAVE_VECTORCALL) && - _PyType_HasFeature(type, Py_TPFLAGS_IMMUTABLETYPE)) + _PyType_HasFeature(base, Py_TPFLAGS_HAVE_VECTORCALL)) { type->tp_flags |= Py_TPFLAGS_HAVE_VECTORCALL; } @@ -6228,6 +6539,33 @@ type_ready_fill_dict(PyTypeObject *type) return 0; } +static int +type_ready_preheader(PyTypeObject *type) +{ + if (type->tp_flags & Py_TPFLAGS_MANAGED_DICT) { + if (type->tp_dictoffset > 0 || type->tp_dictoffset < -1) { + PyErr_Format(PyExc_TypeError, + "type %s has the Py_TPFLAGS_MANAGED_DICT flag " + "but tp_dictoffset is set", + type->tp_name); + return -1; + } + type->tp_dictoffset = -1; + } + if (type->tp_flags & Py_TPFLAGS_MANAGED_WEAKREF) { + if (type->tp_weaklistoffset != 0 && + type->tp_weaklistoffset != MANAGED_WEAKREF_OFFSET) + { + PyErr_Format(PyExc_TypeError, + "type %s has the Py_TPFLAGS_MANAGED_WEAKREF flag " + "but tp_weaklistoffset is set", + type->tp_name); + return -1; + } + type->tp_weaklistoffset = MANAGED_WEAKREF_OFFSET; + } + return 0; +} static int type_ready_mro(PyTypeObject *type) @@ -6421,6 +6759,29 @@ type_ready_set_new(PyTypeObject *type) return 0; } +static int +type_ready_managed_dict(PyTypeObject *type) +{ + if (!(type->tp_flags & Py_TPFLAGS_MANAGED_DICT)) { + return 0; + } + if (!(type->tp_flags & Py_TPFLAGS_HEAPTYPE)) { + PyErr_Format(PyExc_SystemError, + "type %s has the Py_TPFLAGS_MANAGED_DICT flag " + "but not Py_TPFLAGS_HEAPTYPE flag", + type->tp_name); + return -1; + } + PyHeapTypeObject* et = (PyHeapTypeObject*)type; + if (et->ht_cached_keys == NULL) { + et->ht_cached_keys = _PyDict_NewKeysForClass(); + if (et->ht_cached_keys == NULL) { + PyErr_NoMemory(); + return -1; + } + } + return 0; +} static int type_ready_post_checks(PyTypeObject *type) @@ -6436,6 +6797,21 @@ type_ready_post_checks(PyTypeObject *type) type->tp_name); return -1; } + if (type->tp_flags & Py_TPFLAGS_MANAGED_DICT) { + if (type->tp_dictoffset != -1) { + PyErr_Format(PyExc_SystemError, + "type %s has the Py_TPFLAGS_MANAGED_DICT flag " + "but tp_dictoffset is set to incompatible value", + type->tp_name); + return -1; + } + } + else if (type->tp_dictoffset < (Py_ssize_t)sizeof(PyObject)) { + if (type->tp_dictoffset + type->tp_basicsize <= 0) { + PyErr_Format(PyExc_SystemError, + "type %s has a tp_dictoffset that is too small"); + } + } return 0; } @@ -6475,12 +6851,18 @@ type_ready(PyTypeObject *type) if (type_ready_inherit(type) < 0) { return -1; } + if (type_ready_preheader(type) < 0) { + return -1; + } if (type_ready_set_hash(type) < 0) { return -1; } if (type_ready_add_subclasses(type) < 0) { return -1; } + if (type_ready_managed_dict(type) < 0) { + return -1; + } if (type_ready_post_checks(type) < 0) { return -1; } @@ -6516,6 +6898,50 @@ PyType_Ready(PyTypeObject *type) return 0; } +int +_PyStaticType_InitBuiltin(PyTypeObject *self) +{ + self->tp_flags = self->tp_flags | _Py_TPFLAGS_STATIC_BUILTIN; + + static_builtin_state_init(self); + + int res = PyType_Ready(self); + if (res < 0) { + static_builtin_state_clear(self); + } + return res; +} + + +static PyObject * +init_subclasses(PyTypeObject *self) +{ + PyObject *subclasses = PyDict_New(); + if (subclasses == NULL) { + return NULL; + } + if (self->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN) { + static_builtin_state *state = _PyStaticType_GetState(self); + state->tp_subclasses = subclasses; + return subclasses; + } + self->tp_subclasses = (void *)subclasses; + return subclasses; +} + +static void +clear_subclasses(PyTypeObject *self) +{ + /* Delete the dictionary to save memory. _PyStaticType_Dealloc() + callers also test if tp_subclasses is NULL to check if a static type + has no subclass. */ + if (self->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN) { + static_builtin_state *state = _PyStaticType_GetState(self); + Py_CLEAR(state->tp_subclasses); + return; + } + Py_CLEAR(self->tp_subclasses); +} static int add_subclass(PyTypeObject *base, PyTypeObject *type) @@ -6533,11 +6959,14 @@ add_subclass(PyTypeObject *base, PyTypeObject *type) // Only get tp_subclasses after creating the key and value. // PyWeakref_NewRef() can trigger a garbage collection which can execute // arbitrary Python code and so modify base->tp_subclasses. - PyObject *subclasses = base->tp_subclasses; + PyObject *subclasses = lookup_subclasses(base); if (subclasses == NULL) { - base->tp_subclasses = subclasses = PyDict_New(); - if (subclasses == NULL) + subclasses = init_subclasses(base); + if (subclasses == NULL) { + Py_DECREF(key); + Py_DECREF(ref); return -1; + } } assert(PyDict_CheckExact(subclasses)); @@ -6563,17 +6992,56 @@ add_all_subclasses(PyTypeObject *type, PyObject *bases) return res; } +static inline PyTypeObject * +subclass_from_ref(PyObject *ref) +{ + assert(PyWeakref_CheckRef(ref)); + PyObject *obj = PyWeakref_GET_OBJECT(ref); // borrowed ref + assert(obj != NULL); + if (obj == Py_None) { + return NULL; + } + assert(PyType_Check(obj)); + return _PyType_CAST(obj); +} + +static PyObject * +get_subclasses_key(PyTypeObject *type, PyTypeObject *base) +{ + PyObject *key = PyLong_FromVoidPtr((void *) type); + if (key != NULL) { + return key; + } + PyErr_Clear(); + + /* This basically means we're out of memory. + We fall back to manually traversing the values. */ + Py_ssize_t i = 0; + PyObject *ref; // borrowed ref + PyObject *subclasses = lookup_subclasses(base); + if (subclasses != NULL) { + while (PyDict_Next(subclasses, &i, &key, &ref)) { + PyTypeObject *subclass = subclass_from_ref(ref); // borrowed + if (subclass == type) { + return Py_NewRef(key); + } + } + } + /* It wasn't found. */ + return NULL; +} + static void remove_subclass(PyTypeObject *base, PyTypeObject *type) { - PyObject *subclasses = base->tp_subclasses; // borrowed ref + PyObject *subclasses = lookup_subclasses(base); // borrowed ref if (subclasses == NULL) { return; } assert(PyDict_CheckExact(subclasses)); - PyObject *key = PyLong_FromVoidPtr((void *) type); - if (key == NULL || PyDict_DelItem(subclasses, key)) { + PyObject *key = get_subclasses_key(type, base); + if (key != NULL && PyDict_DelItem(subclasses, key)) { /* This can happen if the type initialization errored out before the base subclasses were updated (e.g. a non-str __qualname__ was passed in the type dict). */ @@ -6582,10 +7050,7 @@ remove_subclass(PyTypeObject *base, PyTypeObject *type) Py_XDECREF(key); if (PyDict_Size(subclasses) == 0) { - // Delete the dictionary to save memory. _PyStaticType_Dealloc() - // callers also test if tp_subclasses is NULL to check if a static type - // has no subclass. - Py_CLEAR(base->tp_subclasses); + clear_subclasses(base); } } @@ -7047,7 +7512,7 @@ wrap_descr_get(PyObject *self, PyObject *args, void *wrapped) obj = NULL; if (type == Py_None) type = NULL; - if (type == NULL &&obj == NULL) { + if (type == NULL && obj == NULL) { PyErr_SetString(PyExc_TypeError, "__get__(None, None) is invalid"); return NULL; @@ -7631,26 +8096,33 @@ slot_tp_call(PyObject *self, PyObject *args, PyObject *kwds) /* There are two slot dispatch functions for tp_getattro. - - slot_tp_getattro() is used when __getattribute__ is overridden + - _Py_slot_tp_getattro() is used when __getattribute__ is overridden but no __getattr__ hook is present; - - slot_tp_getattr_hook() is used when a __getattr__ hook is present. + - _Py_slot_tp_getattr_hook() is used when a __getattr__ hook is present. - The code in update_one_slot() always installs slot_tp_getattr_hook(); this - detects the absence of __getattr__ and then installs the simpler slot if - necessary. */ + The code in update_one_slot() always installs _Py_slot_tp_getattr_hook(); + this detects the absence of __getattr__ and then installs the simpler + slot if necessary. */ -static PyObject * -slot_tp_getattro(PyObject *self, PyObject *name) +PyObject * +_Py_slot_tp_getattro(PyObject *self, PyObject *name) { PyObject *stack[2] = {self, name}; return vectorcall_method(&_Py_ID(__getattribute__), stack, 2); } -static PyObject * +static inline PyObject * call_attribute(PyObject *self, PyObject *attr, PyObject *name) { PyObject *res, *descr = NULL; + + if (_PyType_HasFeature(Py_TYPE(attr), Py_TPFLAGS_METHOD_DESCRIPTOR)) { + PyObject *args[] = { self, name }; + res = PyObject_Vectorcall(attr, args, 2, NULL); + return res; + } + descrgetfunc f = Py_TYPE(attr)->tp_descr_get; if (f != NULL) { @@ -7665,8 +8137,8 @@ call_attribute(PyObject *self, PyObject *attr, PyObject *name) return res; } -static PyObject * -slot_tp_getattr_hook(PyObject *self, PyObject *name) +PyObject * +_Py_slot_tp_getattr_hook(PyObject *self, PyObject *name) { PyTypeObject *tp = Py_TYPE(self); PyObject *getattr, *getattribute, *res; @@ -7679,8 +8151,8 @@ slot_tp_getattr_hook(PyObject *self, PyObject *name) getattr = _PyType_Lookup(tp, &_Py_ID(__getattr__)); if (getattr == NULL) { /* No __getattr__ hook: use a simpler dispatcher */ - tp->tp_getattro = slot_tp_getattro; - return slot_tp_getattro(self, name); + tp->tp_getattro = _Py_slot_tp_getattro; + return _Py_slot_tp_getattro(self, name); } Py_INCREF(getattr); /* speed hack: we could use lookup_maybe, but that would resolve the @@ -7813,7 +8285,8 @@ slot_tp_descr_get(PyObject *self, PyObject *obj, PyObject *type) obj = Py_None; if (type == NULL) type = Py_None; - return PyObject_CallFunctionObjArgs(get, self, obj, type, NULL); + PyObject *stack[3] = {self, obj, type}; + return PyObject_Vectorcall(get, stack, 3, NULL); } static int @@ -7972,8 +8445,7 @@ which incorporates the additional structures used for numbers, sequences and mappings. Note that multiple names may map to the same slot (e.g. __eq__, __ne__ etc. all map to tp_richcompare) and one name may map to multiple slots (e.g. __str__ affects tp_str as well as tp_repr). The table is terminated with -an all-zero entry. (This table is further initialized in -_PyTypes_InitSlotDefs().) +an all-zero entry. */ typedef struct wrapperbase slotdef; @@ -7991,14 +8463,14 @@ typedef struct wrapperbase slotdef; #undef RBINSLOT #define TPSLOT(NAME, SLOT, FUNCTION, WRAPPER, DOC) \ - {NAME, offsetof(PyTypeObject, SLOT), (void *)(FUNCTION), WRAPPER, \ - PyDoc_STR(DOC)} + {#NAME, offsetof(PyTypeObject, SLOT), (void *)(FUNCTION), WRAPPER, \ + PyDoc_STR(DOC), .name_strobj = &_Py_ID(NAME)} #define FLSLOT(NAME, SLOT, FUNCTION, WRAPPER, DOC, FLAGS) \ - {NAME, offsetof(PyTypeObject, SLOT), (void *)(FUNCTION), WRAPPER, \ - PyDoc_STR(DOC), FLAGS} + {#NAME, offsetof(PyTypeObject, SLOT), (void *)(FUNCTION), WRAPPER, \ + PyDoc_STR(DOC), FLAGS, .name_strobj = &_Py_ID(NAME) } #define ETSLOT(NAME, SLOT, FUNCTION, WRAPPER, DOC) \ - {NAME, offsetof(PyHeapTypeObject, SLOT), (void *)(FUNCTION), WRAPPER, \ - PyDoc_STR(DOC)} + {#NAME, offsetof(PyHeapTypeObject, SLOT), (void *)(FUNCTION), WRAPPER, \ + PyDoc_STR(DOC), .name_strobj = &_Py_ID(NAME) } #define AMSLOT(NAME, SLOT, FUNCTION, WRAPPER, DOC) \ ETSLOT(NAME, as_async.SLOT, FUNCTION, WRAPPER, DOC) #define SQSLOT(NAME, SLOT, FUNCTION, WRAPPER, DOC) \ @@ -8009,204 +8481,204 @@ typedef struct wrapperbase slotdef; ETSLOT(NAME, as_number.SLOT, FUNCTION, WRAPPER, DOC) #define UNSLOT(NAME, SLOT, FUNCTION, WRAPPER, DOC) \ ETSLOT(NAME, as_number.SLOT, FUNCTION, WRAPPER, \ - NAME "($self, /)\n--\n\n" DOC) + #NAME "($self, /)\n--\n\n" DOC) #define IBSLOT(NAME, SLOT, FUNCTION, WRAPPER, DOC) \ ETSLOT(NAME, as_number.SLOT, FUNCTION, WRAPPER, \ - NAME "($self, value, /)\n--\n\nReturn self" DOC "value.") + #NAME "($self, value, /)\n--\n\nReturn self" DOC "value.") #define BINSLOT(NAME, SLOT, FUNCTION, DOC) \ ETSLOT(NAME, as_number.SLOT, FUNCTION, wrap_binaryfunc_l, \ - NAME "($self, value, /)\n--\n\nReturn self" DOC "value.") + #NAME "($self, value, /)\n--\n\nReturn self" DOC "value.") #define RBINSLOT(NAME, SLOT, FUNCTION, DOC) \ ETSLOT(NAME, as_number.SLOT, FUNCTION, wrap_binaryfunc_r, \ - NAME "($self, value, /)\n--\n\nReturn value" DOC "self.") + #NAME "($self, value, /)\n--\n\nReturn value" DOC "self.") #define BINSLOTNOTINFIX(NAME, SLOT, FUNCTION, DOC) \ ETSLOT(NAME, as_number.SLOT, FUNCTION, wrap_binaryfunc_l, \ - NAME "($self, value, /)\n--\n\n" DOC) + #NAME "($self, value, /)\n--\n\n" DOC) #define RBINSLOTNOTINFIX(NAME, SLOT, FUNCTION, DOC) \ ETSLOT(NAME, as_number.SLOT, FUNCTION, wrap_binaryfunc_r, \ - NAME "($self, value, /)\n--\n\n" DOC) + #NAME "($self, value, /)\n--\n\n" DOC) static slotdef slotdefs[] = { - TPSLOT("__getattribute__", tp_getattr, NULL, NULL, ""), - TPSLOT("__getattr__", tp_getattr, NULL, NULL, ""), - TPSLOT("__setattr__", tp_setattr, NULL, NULL, ""), - TPSLOT("__delattr__", tp_setattr, NULL, NULL, ""), - TPSLOT("__repr__", tp_repr, slot_tp_repr, wrap_unaryfunc, + TPSLOT(__getattribute__, tp_getattr, NULL, NULL, ""), + TPSLOT(__getattr__, tp_getattr, NULL, NULL, ""), + TPSLOT(__setattr__, tp_setattr, NULL, NULL, ""), + TPSLOT(__delattr__, tp_setattr, NULL, NULL, ""), + TPSLOT(__repr__, tp_repr, slot_tp_repr, wrap_unaryfunc, "__repr__($self, /)\n--\n\nReturn repr(self)."), - TPSLOT("__hash__", tp_hash, slot_tp_hash, wrap_hashfunc, + TPSLOT(__hash__, tp_hash, slot_tp_hash, wrap_hashfunc, "__hash__($self, /)\n--\n\nReturn hash(self)."), - FLSLOT("__call__", tp_call, slot_tp_call, (wrapperfunc)(void(*)(void))wrap_call, + FLSLOT(__call__, tp_call, slot_tp_call, (wrapperfunc)(void(*)(void))wrap_call, "__call__($self, /, *args, **kwargs)\n--\n\nCall self as a function.", PyWrapperFlag_KEYWORDS), - TPSLOT("__str__", tp_str, slot_tp_str, wrap_unaryfunc, + TPSLOT(__str__, tp_str, slot_tp_str, wrap_unaryfunc, "__str__($self, /)\n--\n\nReturn str(self)."), - TPSLOT("__getattribute__", tp_getattro, slot_tp_getattr_hook, + TPSLOT(__getattribute__, tp_getattro, _Py_slot_tp_getattr_hook, wrap_binaryfunc, "__getattribute__($self, name, /)\n--\n\nReturn getattr(self, name)."), - TPSLOT("__getattr__", tp_getattro, slot_tp_getattr_hook, NULL, ""), - TPSLOT("__setattr__", tp_setattro, slot_tp_setattro, wrap_setattr, + TPSLOT(__getattr__, tp_getattro, _Py_slot_tp_getattr_hook, NULL, ""), + TPSLOT(__setattr__, tp_setattro, slot_tp_setattro, wrap_setattr, "__setattr__($self, name, value, /)\n--\n\nImplement setattr(self, name, value)."), - TPSLOT("__delattr__", tp_setattro, slot_tp_setattro, wrap_delattr, + TPSLOT(__delattr__, tp_setattro, slot_tp_setattro, wrap_delattr, "__delattr__($self, name, /)\n--\n\nImplement delattr(self, name)."), - TPSLOT("__lt__", tp_richcompare, slot_tp_richcompare, richcmp_lt, + TPSLOT(__lt__, tp_richcompare, slot_tp_richcompare, richcmp_lt, "__lt__($self, value, /)\n--\n\nReturn self<value."), - TPSLOT("__le__", tp_richcompare, slot_tp_richcompare, richcmp_le, + TPSLOT(__le__, tp_richcompare, slot_tp_richcompare, richcmp_le, "__le__($self, value, /)\n--\n\nReturn self<=value."), - TPSLOT("__eq__", tp_richcompare, slot_tp_richcompare, richcmp_eq, + TPSLOT(__eq__, tp_richcompare, slot_tp_richcompare, richcmp_eq, "__eq__($self, value, /)\n--\n\nReturn self==value."), - TPSLOT("__ne__", tp_richcompare, slot_tp_richcompare, richcmp_ne, + TPSLOT(__ne__, tp_richcompare, slot_tp_richcompare, richcmp_ne, "__ne__($self, value, /)\n--\n\nReturn self!=value."), - TPSLOT("__gt__", tp_richcompare, slot_tp_richcompare, richcmp_gt, + TPSLOT(__gt__, tp_richcompare, slot_tp_richcompare, richcmp_gt, "__gt__($self, value, /)\n--\n\nReturn self>value."), - TPSLOT("__ge__", tp_richcompare, slot_tp_richcompare, richcmp_ge, + TPSLOT(__ge__, tp_richcompare, slot_tp_richcompare, richcmp_ge, "__ge__($self, value, /)\n--\n\nReturn self>=value."), - TPSLOT("__iter__", tp_iter, slot_tp_iter, wrap_unaryfunc, + TPSLOT(__iter__, tp_iter, slot_tp_iter, wrap_unaryfunc, "__iter__($self, /)\n--\n\nImplement iter(self)."), - TPSLOT("__next__", tp_iternext, slot_tp_iternext, wrap_next, + TPSLOT(__next__, tp_iternext, slot_tp_iternext, wrap_next, "__next__($self, /)\n--\n\nImplement next(self)."), - TPSLOT("__get__", tp_descr_get, slot_tp_descr_get, wrap_descr_get, - "__get__($self, instance, owner, /)\n--\n\nReturn an attribute of instance, which is of type owner."), - TPSLOT("__set__", tp_descr_set, slot_tp_descr_set, wrap_descr_set, + TPSLOT(__get__, tp_descr_get, slot_tp_descr_get, wrap_descr_get, + "__get__($self, instance, owner=None, /)\n--\n\nReturn an attribute of instance, which is of type owner."), + TPSLOT(__set__, tp_descr_set, slot_tp_descr_set, wrap_descr_set, "__set__($self, instance, value, /)\n--\n\nSet an attribute of instance to value."), - TPSLOT("__delete__", tp_descr_set, slot_tp_descr_set, + TPSLOT(__delete__, tp_descr_set, slot_tp_descr_set, wrap_descr_delete, "__delete__($self, instance, /)\n--\n\nDelete an attribute of instance."), - FLSLOT("__init__", tp_init, slot_tp_init, (wrapperfunc)(void(*)(void))wrap_init, + FLSLOT(__init__, tp_init, slot_tp_init, (wrapperfunc)(void(*)(void))wrap_init, "__init__($self, /, *args, **kwargs)\n--\n\n" "Initialize self. See help(type(self)) for accurate signature.", PyWrapperFlag_KEYWORDS), - TPSLOT("__new__", tp_new, slot_tp_new, NULL, + TPSLOT(__new__, tp_new, slot_tp_new, NULL, "__new__(type, /, *args, **kwargs)\n--\n\n" "Create and return new object. See help(type) for accurate signature."), - TPSLOT("__del__", tp_finalize, slot_tp_finalize, (wrapperfunc)wrap_del, ""), + TPSLOT(__del__, tp_finalize, slot_tp_finalize, (wrapperfunc)wrap_del, ""), - AMSLOT("__await__", am_await, slot_am_await, wrap_unaryfunc, + AMSLOT(__await__, am_await, slot_am_await, wrap_unaryfunc, "__await__($self, /)\n--\n\nReturn an iterator to be used in await expression."), - AMSLOT("__aiter__", am_aiter, slot_am_aiter, wrap_unaryfunc, + AMSLOT(__aiter__, am_aiter, slot_am_aiter, wrap_unaryfunc, "__aiter__($self, /)\n--\n\nReturn an awaitable, that resolves in asynchronous iterator."), - AMSLOT("__anext__", am_anext, slot_am_anext, wrap_unaryfunc, + AMSLOT(__anext__, am_anext, slot_am_anext, wrap_unaryfunc, "__anext__($self, /)\n--\n\nReturn a value or raise StopAsyncIteration."), - BINSLOT("__add__", nb_add, slot_nb_add, + BINSLOT(__add__, nb_add, slot_nb_add, "+"), - RBINSLOT("__radd__", nb_add, slot_nb_add, + RBINSLOT(__radd__, nb_add, slot_nb_add, "+"), - BINSLOT("__sub__", nb_subtract, slot_nb_subtract, + BINSLOT(__sub__, nb_subtract, slot_nb_subtract, "-"), - RBINSLOT("__rsub__", nb_subtract, slot_nb_subtract, + RBINSLOT(__rsub__, nb_subtract, slot_nb_subtract, "-"), - BINSLOT("__mul__", nb_multiply, slot_nb_multiply, + BINSLOT(__mul__, nb_multiply, slot_nb_multiply, "*"), - RBINSLOT("__rmul__", nb_multiply, slot_nb_multiply, + RBINSLOT(__rmul__, nb_multiply, slot_nb_multiply, "*"), - BINSLOT("__mod__", nb_remainder, slot_nb_remainder, + BINSLOT(__mod__, nb_remainder, slot_nb_remainder, "%"), - RBINSLOT("__rmod__", nb_remainder, slot_nb_remainder, + RBINSLOT(__rmod__, nb_remainder, slot_nb_remainder, "%"), - BINSLOTNOTINFIX("__divmod__", nb_divmod, slot_nb_divmod, + BINSLOTNOTINFIX(__divmod__, nb_divmod, slot_nb_divmod, "Return divmod(self, value)."), - RBINSLOTNOTINFIX("__rdivmod__", nb_divmod, slot_nb_divmod, + RBINSLOTNOTINFIX(__rdivmod__, nb_divmod, slot_nb_divmod, "Return divmod(value, self)."), - NBSLOT("__pow__", nb_power, slot_nb_power, wrap_ternaryfunc, + NBSLOT(__pow__, nb_power, slot_nb_power, wrap_ternaryfunc, "__pow__($self, value, mod=None, /)\n--\n\nReturn pow(self, value, mod)."), - NBSLOT("__rpow__", nb_power, slot_nb_power, wrap_ternaryfunc_r, + NBSLOT(__rpow__, nb_power, slot_nb_power, wrap_ternaryfunc_r, "__rpow__($self, value, mod=None, /)\n--\n\nReturn pow(value, self, mod)."), - UNSLOT("__neg__", nb_negative, slot_nb_negative, wrap_unaryfunc, "-self"), - UNSLOT("__pos__", nb_positive, slot_nb_positive, wrap_unaryfunc, "+self"), - UNSLOT("__abs__", nb_absolute, slot_nb_absolute, wrap_unaryfunc, + UNSLOT(__neg__, nb_negative, slot_nb_negative, wrap_unaryfunc, "-self"), + UNSLOT(__pos__, nb_positive, slot_nb_positive, wrap_unaryfunc, "+self"), + UNSLOT(__abs__, nb_absolute, slot_nb_absolute, wrap_unaryfunc, "abs(self)"), - UNSLOT("__bool__", nb_bool, slot_nb_bool, wrap_inquirypred, + UNSLOT(__bool__, nb_bool, slot_nb_bool, wrap_inquirypred, "True if self else False"), - UNSLOT("__invert__", nb_invert, slot_nb_invert, wrap_unaryfunc, "~self"), - BINSLOT("__lshift__", nb_lshift, slot_nb_lshift, "<<"), - RBINSLOT("__rlshift__", nb_lshift, slot_nb_lshift, "<<"), - BINSLOT("__rshift__", nb_rshift, slot_nb_rshift, ">>"), - RBINSLOT("__rrshift__", nb_rshift, slot_nb_rshift, ">>"), - BINSLOT("__and__", nb_and, slot_nb_and, "&"), - RBINSLOT("__rand__", nb_and, slot_nb_and, "&"), - BINSLOT("__xor__", nb_xor, slot_nb_xor, "^"), - RBINSLOT("__rxor__", nb_xor, slot_nb_xor, "^"), - BINSLOT("__or__", nb_or, slot_nb_or, "|"), - RBINSLOT("__ror__", nb_or, slot_nb_or, "|"), - UNSLOT("__int__", nb_int, slot_nb_int, wrap_unaryfunc, + UNSLOT(__invert__, nb_invert, slot_nb_invert, wrap_unaryfunc, "~self"), + BINSLOT(__lshift__, nb_lshift, slot_nb_lshift, "<<"), + RBINSLOT(__rlshift__, nb_lshift, slot_nb_lshift, "<<"), + BINSLOT(__rshift__, nb_rshift, slot_nb_rshift, ">>"), + RBINSLOT(__rrshift__, nb_rshift, slot_nb_rshift, ">>"), + BINSLOT(__and__, nb_and, slot_nb_and, "&"), + RBINSLOT(__rand__, nb_and, slot_nb_and, "&"), + BINSLOT(__xor__, nb_xor, slot_nb_xor, "^"), + RBINSLOT(__rxor__, nb_xor, slot_nb_xor, "^"), + BINSLOT(__or__, nb_or, slot_nb_or, "|"), + RBINSLOT(__ror__, nb_or, slot_nb_or, "|"), + UNSLOT(__int__, nb_int, slot_nb_int, wrap_unaryfunc, "int(self)"), - UNSLOT("__float__", nb_float, slot_nb_float, wrap_unaryfunc, + UNSLOT(__float__, nb_float, slot_nb_float, wrap_unaryfunc, "float(self)"), - IBSLOT("__iadd__", nb_inplace_add, slot_nb_inplace_add, + IBSLOT(__iadd__, nb_inplace_add, slot_nb_inplace_add, wrap_binaryfunc, "+="), - IBSLOT("__isub__", nb_inplace_subtract, slot_nb_inplace_subtract, + IBSLOT(__isub__, nb_inplace_subtract, slot_nb_inplace_subtract, wrap_binaryfunc, "-="), - IBSLOT("__imul__", nb_inplace_multiply, slot_nb_inplace_multiply, + IBSLOT(__imul__, nb_inplace_multiply, slot_nb_inplace_multiply, wrap_binaryfunc, "*="), - IBSLOT("__imod__", nb_inplace_remainder, slot_nb_inplace_remainder, + IBSLOT(__imod__, nb_inplace_remainder, slot_nb_inplace_remainder, wrap_binaryfunc, "%="), - IBSLOT("__ipow__", nb_inplace_power, slot_nb_inplace_power, + IBSLOT(__ipow__, nb_inplace_power, slot_nb_inplace_power, wrap_ternaryfunc, "**="), - IBSLOT("__ilshift__", nb_inplace_lshift, slot_nb_inplace_lshift, + IBSLOT(__ilshift__, nb_inplace_lshift, slot_nb_inplace_lshift, wrap_binaryfunc, "<<="), - IBSLOT("__irshift__", nb_inplace_rshift, slot_nb_inplace_rshift, + IBSLOT(__irshift__, nb_inplace_rshift, slot_nb_inplace_rshift, wrap_binaryfunc, ">>="), - IBSLOT("__iand__", nb_inplace_and, slot_nb_inplace_and, + IBSLOT(__iand__, nb_inplace_and, slot_nb_inplace_and, wrap_binaryfunc, "&="), - IBSLOT("__ixor__", nb_inplace_xor, slot_nb_inplace_xor, + IBSLOT(__ixor__, nb_inplace_xor, slot_nb_inplace_xor, wrap_binaryfunc, "^="), - IBSLOT("__ior__", nb_inplace_or, slot_nb_inplace_or, + IBSLOT(__ior__, nb_inplace_or, slot_nb_inplace_or, wrap_binaryfunc, "|="), - BINSLOT("__floordiv__", nb_floor_divide, slot_nb_floor_divide, "//"), - RBINSLOT("__rfloordiv__", nb_floor_divide, slot_nb_floor_divide, "//"), - BINSLOT("__truediv__", nb_true_divide, slot_nb_true_divide, "/"), - RBINSLOT("__rtruediv__", nb_true_divide, slot_nb_true_divide, "/"), - IBSLOT("__ifloordiv__", nb_inplace_floor_divide, + BINSLOT(__floordiv__, nb_floor_divide, slot_nb_floor_divide, "//"), + RBINSLOT(__rfloordiv__, nb_floor_divide, slot_nb_floor_divide, "//"), + BINSLOT(__truediv__, nb_true_divide, slot_nb_true_divide, "/"), + RBINSLOT(__rtruediv__, nb_true_divide, slot_nb_true_divide, "/"), + IBSLOT(__ifloordiv__, nb_inplace_floor_divide, slot_nb_inplace_floor_divide, wrap_binaryfunc, "//="), - IBSLOT("__itruediv__", nb_inplace_true_divide, + IBSLOT(__itruediv__, nb_inplace_true_divide, slot_nb_inplace_true_divide, wrap_binaryfunc, "/="), - NBSLOT("__index__", nb_index, slot_nb_index, wrap_unaryfunc, + NBSLOT(__index__, nb_index, slot_nb_index, wrap_unaryfunc, "__index__($self, /)\n--\n\n" "Return self converted to an integer, if self is suitable " "for use as an index into a list."), - BINSLOT("__matmul__", nb_matrix_multiply, slot_nb_matrix_multiply, + BINSLOT(__matmul__, nb_matrix_multiply, slot_nb_matrix_multiply, "@"), - RBINSLOT("__rmatmul__", nb_matrix_multiply, slot_nb_matrix_multiply, + RBINSLOT(__rmatmul__, nb_matrix_multiply, slot_nb_matrix_multiply, "@"), - IBSLOT("__imatmul__", nb_inplace_matrix_multiply, slot_nb_inplace_matrix_multiply, + IBSLOT(__imatmul__, nb_inplace_matrix_multiply, slot_nb_inplace_matrix_multiply, wrap_binaryfunc, "@="), - MPSLOT("__len__", mp_length, slot_mp_length, wrap_lenfunc, + MPSLOT(__len__, mp_length, slot_mp_length, wrap_lenfunc, "__len__($self, /)\n--\n\nReturn len(self)."), - MPSLOT("__getitem__", mp_subscript, slot_mp_subscript, + MPSLOT(__getitem__, mp_subscript, slot_mp_subscript, wrap_binaryfunc, "__getitem__($self, key, /)\n--\n\nReturn self[key]."), - MPSLOT("__setitem__", mp_ass_subscript, slot_mp_ass_subscript, + MPSLOT(__setitem__, mp_ass_subscript, slot_mp_ass_subscript, wrap_objobjargproc, "__setitem__($self, key, value, /)\n--\n\nSet self[key] to value."), - MPSLOT("__delitem__", mp_ass_subscript, slot_mp_ass_subscript, + MPSLOT(__delitem__, mp_ass_subscript, slot_mp_ass_subscript, wrap_delitem, "__delitem__($self, key, /)\n--\n\nDelete self[key]."), - SQSLOT("__len__", sq_length, slot_sq_length, wrap_lenfunc, + SQSLOT(__len__, sq_length, slot_sq_length, wrap_lenfunc, "__len__($self, /)\n--\n\nReturn len(self)."), /* Heap types defining __add__/__mul__ have sq_concat/sq_repeat == NULL. The logic in abstract.c always falls back to nb_add/nb_multiply in this case. Defining both the nb_* and the sq_* slots to call the user-defined methods has unexpected side-effects, as shown by test_descr.notimplemented() */ - SQSLOT("__add__", sq_concat, NULL, wrap_binaryfunc, + SQSLOT(__add__, sq_concat, NULL, wrap_binaryfunc, "__add__($self, value, /)\n--\n\nReturn self+value."), - SQSLOT("__mul__", sq_repeat, NULL, wrap_indexargfunc, + SQSLOT(__mul__, sq_repeat, NULL, wrap_indexargfunc, "__mul__($self, value, /)\n--\n\nReturn self*value."), - SQSLOT("__rmul__", sq_repeat, NULL, wrap_indexargfunc, + SQSLOT(__rmul__, sq_repeat, NULL, wrap_indexargfunc, "__rmul__($self, value, /)\n--\n\nReturn value*self."), - SQSLOT("__getitem__", sq_item, slot_sq_item, wrap_sq_item, + SQSLOT(__getitem__, sq_item, slot_sq_item, wrap_sq_item, "__getitem__($self, key, /)\n--\n\nReturn self[key]."), - SQSLOT("__setitem__", sq_ass_item, slot_sq_ass_item, wrap_sq_setitem, + SQSLOT(__setitem__, sq_ass_item, slot_sq_ass_item, wrap_sq_setitem, "__setitem__($self, key, value, /)\n--\n\nSet self[key] to value."), - SQSLOT("__delitem__", sq_ass_item, slot_sq_ass_item, wrap_sq_delitem, + SQSLOT(__delitem__, sq_ass_item, slot_sq_ass_item, wrap_sq_delitem, "__delitem__($self, key, /)\n--\n\nDelete self[key]."), - SQSLOT("__contains__", sq_contains, slot_sq_contains, wrap_objobjproc, + SQSLOT(__contains__, sq_contains, slot_sq_contains, wrap_objobjproc, "__contains__($self, key, /)\n--\n\nReturn key in self."), - SQSLOT("__iadd__", sq_inplace_concat, NULL, + SQSLOT(__iadd__, sq_inplace_concat, NULL, wrap_binaryfunc, "__iadd__($self, value, /)\n--\n\nImplement self+=value."), - SQSLOT("__imul__", sq_inplace_repeat, NULL, + SQSLOT(__imul__, sq_inplace_repeat, NULL, wrap_indexargfunc, "__imul__($self, value, /)\n--\n\nImplement self*=value."), @@ -8356,8 +8828,17 @@ update_one_slot(PyTypeObject *type, slotdef *p) { PyObject *descr; PyWrapperDescrObject *d; - void *generic = NULL, *specific = NULL; + + // The correct specialized C function, like "tp_repr of str" in the + // example above + void *specific = NULL; + + // A generic wrapper that uses method lookup (safe but slow) + void *generic = NULL; + + // Set to 1 if the generic wrapper is necessary int use_generic = 0; + int offset = p->offset; int error; void **ptr = slotptr(type, offset); @@ -8440,6 +8921,10 @@ update_one_slot(PyTypeObject *type, slotdef *p) else { use_generic = 1; generic = p->function; + if (p->function == slot_tp_call) { + /* A generic __call__ is incompatible with vectorcall */ + type->tp_flags &= ~Py_TPFLAGS_HAVE_VECTORCALL; + } } } while ((++p)->offset == offset); if (specific && !use_generic) @@ -8461,44 +8946,6 @@ update_slots_callback(PyTypeObject *type, void *data) return 0; } -static int slotdefs_initialized = 0; -/* Initialize the slotdefs table by adding interned string objects for the - names. */ -PyStatus -_PyTypes_InitSlotDefs(void) -{ - if (slotdefs_initialized) { - return _PyStatus_OK(); - } - - for (slotdef *p = slotdefs; p->name; p++) { - /* Slots must be ordered by their offset in the PyHeapTypeObject. */ - assert(!p[1].name || p->offset <= p[1].offset); -#ifdef INTERN_NAME_STRINGS - p->name_strobj = PyUnicode_InternFromString(p->name); - if (!p->name_strobj || !PyUnicode_CHECK_INTERNED(p->name_strobj)) { - return _PyStatus_NO_MEMORY(); - } -#else - p->name_strobj = PyUnicode_FromString(p->name); - if (!p->name_strobj) { - return _PyStatus_NO_MEMORY(); - } -#endif - } - slotdefs_initialized = 1; - return _PyStatus_OK(); -} - -/* Undo _PyTypes_InitSlotDefs(), releasing the interned strings. */ -static void clear_slotdefs(void) -{ - for (slotdef *p = slotdefs; p->name; p++) { - Py_CLEAR(p->name_strobj); - } - slotdefs_initialized = 0; -} - /* Update the slots after assignment to a class (type) attribute. */ static int update_slot(PyTypeObject *type, PyObject *name) @@ -8509,24 +8956,17 @@ update_slot(PyTypeObject *type, PyObject *name) int offset; assert(PyUnicode_CheckExact(name)); -#ifdef INTERN_NAME_STRINGS assert(PyUnicode_CHECK_INTERNED(name)); -#endif - assert(slotdefs_initialized); pp = ptrs; for (p = slotdefs; p->name; p++) { assert(PyUnicode_CheckExact(p->name_strobj)); + assert(PyUnicode_CHECK_INTERNED(p->name_strobj)); assert(PyUnicode_CheckExact(name)); -#ifdef INTERN_NAME_STRINGS + /* bpo-40521: Using interned strings. */ if (p->name_strobj == name) { *pp++ = p; } -#else - if (p->name_strobj == name || _PyUnicode_EQ(p->name_strobj, name)) { - *pp++ = p; - } -#endif } *pp = NULL; for (pp = ptrs; *pp; pp++) { @@ -8549,7 +8989,6 @@ static void fixup_slot_dispatchers(PyTypeObject *type) { assert(!PyErr_Occurred()); - assert(slotdefs_initialized); for (slotdef *p = slotdefs; p->name; ) { p = update_one_slot(type, p); } @@ -8563,7 +9002,6 @@ update_all_slots(PyTypeObject* type) /* Clear the VALID_VERSION flag of 'type' and all its subclasses. */ PyType_Modified(type); - assert(slotdefs_initialized); for (p = slotdefs; p->name; p++) { /* update_slot returns int but can't actually fail */ update_slot(type, p->name_strobj); @@ -8663,7 +9101,7 @@ recurse_down_subclasses(PyTypeObject *type, PyObject *attr_name, // It is safe to use a borrowed reference because update_subclasses() is // only used with update_slots_callback() which doesn't modify // tp_subclasses. - PyObject *subclasses = type->tp_subclasses; // borrowed ref + PyObject *subclasses = lookup_subclasses(type); // borrowed ref if (subclasses == NULL) { return 0; } @@ -8672,13 +9110,10 @@ recurse_down_subclasses(PyTypeObject *type, PyObject *attr_name, Py_ssize_t i = 0; PyObject *ref; while (PyDict_Next(subclasses, &i, NULL, &ref)) { - assert(PyWeakref_CheckRef(ref)); - PyObject *obj = PyWeakref_GET_OBJECT(ref); - assert(obj != NULL); - if (obj == Py_None) { + PyTypeObject *subclass = subclass_from_ref(ref); // borrowed + if (subclass == NULL) { continue; } - PyTypeObject *subclass = _PyType_CAST(obj); /* Avoid recursing down into unaffected classes */ PyObject *dict = subclass->tp_dict; @@ -8737,7 +9172,6 @@ add_operators(PyTypeObject *type) PyObject *descr; void **ptr; - assert(slotdefs_initialized); for (p = slotdefs; p->name; p++) { if (p->wrapper == NULL) continue; diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index f712fbfa71d368..bd169ed714212d 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -52,6 +52,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "pycore_pathconfig.h" // _Py_DumpPathConfig() #include "pycore_pylifecycle.h" // _Py_SetFileSystemEncoding() #include "pycore_pystate.h" // _PyInterpreterState_GET() +#include "pycore_runtime_init.h" // _PyUnicode_InitStaticStrings() #include "pycore_ucnhash.h" // _PyUnicode_Name_CAPI #include "pycore_unicodeobject.h" // struct _Py_unicode_state #include "stringlib/eq.h" // unicode_eq() @@ -190,23 +191,6 @@ extern "C" { # define OVERALLOCATE_FACTOR 4 #endif -/* bpo-40521: Interned strings are shared by all interpreters. */ -#ifndef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS -# define INTERNED_STRINGS -#endif - -/* This dictionary holds all interned unicode strings. Note that references - to strings in this dictionary are *not* counted in the string's ob_refcnt. - When the interned string reaches a refcnt of 0 the string deallocation - function will delete the reference from this dictionary. - - Another way to look at this is that to say that the actual reference - count of a string is: s->ob_refcnt + (s->state ? 2 : 0) -*/ -#ifdef INTERNED_STRINGS -static PyObject *interned = NULL; -#endif - /* Forward declaration */ static inline int _PyUnicodeWriter_WriteCharInline(_PyUnicodeWriter *writer, Py_UCS4 ch); @@ -241,6 +225,23 @@ static inline PyObject* unicode_new_empty(void) return empty; } +/* This dictionary holds all interned unicode strings. Note that references + to strings in this dictionary are *not* counted in the string's ob_refcnt. + When the interned string reaches a refcnt of 0 the string deallocation + function will delete the reference from this dictionary. + Another way to look at this is that to say that the actual reference + count of a string is: s->ob_refcnt + (s->state ? 2 : 0) +*/ +static inline PyObject *get_interned_dict(void) +{ + return _PyRuntime.global_objects.interned; +} + +static inline void set_interned_dict(PyObject *dict) +{ + _PyRuntime.global_objects.interned = dict; +} + #define _Py_RETURN_UNICODE_EMPTY() \ do { \ return unicode_new_empty(); \ @@ -1529,8 +1530,7 @@ unicode_dealloc(PyObject *unicode) _Py_FatalRefcountError("deallocating an Unicode singleton"); } #endif - -#ifdef INTERNED_STRINGS + PyObject *interned = get_interned_dict(); if (PyUnicode_CHECK_INTERNED(unicode)) { /* Revive the dead object temporarily. PyDict_DelItem() removes two references (key and value) which were ignored by @@ -1546,7 +1546,6 @@ unicode_dealloc(PyObject *unicode) assert(Py_REFCNT(unicode) == 1); Py_SET_REFCNT(unicode, 0); } -#endif if (_PyUnicode_HAS_UTF8_MEMORY(unicode)) { PyObject_Free(_PyUnicode_UTF8(unicode)); @@ -2363,6 +2362,13 @@ unicode_fromformat_arg(_PyUnicodeWriter *writer, p = f; f++; + if (*f == '%') { + if (_PyUnicodeWriter_WriteCharInline(writer, '%') < 0) + return NULL; + f++; + return f; + } + zeropad = 0; if (*f == '0') { zeropad = 1; @@ -2400,14 +2406,6 @@ unicode_fromformat_arg(_PyUnicodeWriter *writer, f++; } } - if (*f == '%') { - /* "%.3%s" => f points to "3" */ - f--; - } - } - if (*f == '\0') { - /* bogus format "%.123" => go backward, f points to "3" */ - f--; } /* Handle %ld, %lu, %lld and %llu. */ @@ -2431,7 +2429,7 @@ unicode_fromformat_arg(_PyUnicodeWriter *writer, ++f; } - if (f[1] == '\0') + if (f[0] != '\0' && f[1] == '\0') writer->overallocate = 0; switch (*f) { @@ -2490,21 +2488,34 @@ unicode_fromformat_arg(_PyUnicodeWriter *writer, } assert(len >= 0); - if (precision < len) - precision = len; + int negative = (buffer[0] == '-'); + len -= negative; + + precision = Py_MAX(precision, len); + width = Py_MAX(width, precision + negative); arglen = Py_MAX(precision, width); if (_PyUnicodeWriter_Prepare(writer, arglen, 127) == -1) return NULL; if (width > precision) { - Py_UCS4 fillchar; - fill = width - precision; - fillchar = zeropad?'0':' '; + if (negative && zeropad) { + if (_PyUnicodeWriter_WriteChar(writer, '-') == -1) + return NULL; + } + + Py_UCS4 fillchar = zeropad?'0':' '; + fill = width - precision - negative; if (PyUnicode_Fill(writer->buffer, writer->pos, fill, fillchar) == -1) return NULL; writer->pos += fill; + + if (negative && !zeropad) { + if (_PyUnicodeWriter_WriteChar(writer, '-') == -1) + return NULL; + } } + if (precision > len) { fill = precision - len; if (PyUnicode_Fill(writer->buffer, writer->pos, fill, '0') == -1) @@ -2512,7 +2523,7 @@ unicode_fromformat_arg(_PyUnicodeWriter *writer, writer->pos += fill; } - if (_PyUnicodeWriter_WriteASCIIString(writer, buffer, len) < 0) + if (_PyUnicodeWriter_WriteASCIIString(writer, &buffer[negative], len) < 0) return NULL; break; } @@ -2624,21 +2635,9 @@ unicode_fromformat_arg(_PyUnicodeWriter *writer, break; } - case '%': - if (_PyUnicodeWriter_WriteCharInline(writer, '%') < 0) - return NULL; - break; - default: - /* if we stumble upon an unknown formatting code, copy the rest - of the format string to the output string. (we cannot just - skip the code, since there's no way to know what's in the - argument list) */ - len = strlen(p); - if (_PyUnicodeWriter_WriteLatin1String(writer, p, len) == -1) - return NULL; - f = p+len; - return f; + PyErr_Format(PyExc_SystemError, "invalid format string: %s", p); + return NULL; } f++; @@ -2851,7 +2850,7 @@ PyUnicode_AsWideCharString(PyObject *unicode, } buflen = unicode_get_widechar_size(unicode); - buffer = (wchar_t *) PyMem_NEW(wchar_t, (buflen + 1)); + buffer = (wchar_t *) PyMem_New(wchar_t, (buflen + 1)); if (buffer == NULL) { PyErr_NoMemory(); return NULL; @@ -9704,41 +9703,48 @@ split(PyObject *self, const void *buf1, *buf2; Py_ssize_t len1, len2; PyObject* out; + len1 = PyUnicode_GET_LENGTH(self); + kind1 = PyUnicode_KIND(self); - if (maxcount < 0) - maxcount = PY_SSIZE_T_MAX; - - if (substring == NULL) - switch (PyUnicode_KIND(self)) { + if (substring == NULL) { + if (maxcount < 0) { + maxcount = (len1 - 1) / 2 + 1; + } + switch (kind1) { case PyUnicode_1BYTE_KIND: if (PyUnicode_IS_ASCII(self)) return asciilib_split_whitespace( self, PyUnicode_1BYTE_DATA(self), - PyUnicode_GET_LENGTH(self), maxcount + len1, maxcount ); else return ucs1lib_split_whitespace( self, PyUnicode_1BYTE_DATA(self), - PyUnicode_GET_LENGTH(self), maxcount + len1, maxcount ); case PyUnicode_2BYTE_KIND: return ucs2lib_split_whitespace( self, PyUnicode_2BYTE_DATA(self), - PyUnicode_GET_LENGTH(self), maxcount + len1, maxcount ); case PyUnicode_4BYTE_KIND: return ucs4lib_split_whitespace( self, PyUnicode_4BYTE_DATA(self), - PyUnicode_GET_LENGTH(self), maxcount + len1, maxcount ); default: Py_UNREACHABLE(); } + } - kind1 = PyUnicode_KIND(self); kind2 = PyUnicode_KIND(substring); - len1 = PyUnicode_GET_LENGTH(self); len2 = PyUnicode_GET_LENGTH(substring); + if (maxcount < 0) { + // if len2 == 0, it will raise ValueError. + maxcount = len2 == 0 ? 0 : (len1 / len2) + 1; + // handle expected overflow case: (Py_SSIZE_T_MAX / 1) + 1 + maxcount = maxcount < 0 ? len1 : maxcount; + } if (kind1 < kind2 || len1 < len2) { out = PyList_New(1); if (out == NULL) @@ -9791,40 +9797,47 @@ rsplit(PyObject *self, Py_ssize_t len1, len2; PyObject* out; - if (maxcount < 0) - maxcount = PY_SSIZE_T_MAX; + len1 = PyUnicode_GET_LENGTH(self); + kind1 = PyUnicode_KIND(self); - if (substring == NULL) - switch (PyUnicode_KIND(self)) { + if (substring == NULL) { + if (maxcount < 0) { + maxcount = (len1 - 1) / 2 + 1; + } + switch (kind1) { case PyUnicode_1BYTE_KIND: if (PyUnicode_IS_ASCII(self)) return asciilib_rsplit_whitespace( self, PyUnicode_1BYTE_DATA(self), - PyUnicode_GET_LENGTH(self), maxcount + len1, maxcount ); else return ucs1lib_rsplit_whitespace( self, PyUnicode_1BYTE_DATA(self), - PyUnicode_GET_LENGTH(self), maxcount + len1, maxcount ); case PyUnicode_2BYTE_KIND: return ucs2lib_rsplit_whitespace( self, PyUnicode_2BYTE_DATA(self), - PyUnicode_GET_LENGTH(self), maxcount + len1, maxcount ); case PyUnicode_4BYTE_KIND: return ucs4lib_rsplit_whitespace( self, PyUnicode_4BYTE_DATA(self), - PyUnicode_GET_LENGTH(self), maxcount + len1, maxcount ); default: Py_UNREACHABLE(); } - - kind1 = PyUnicode_KIND(self); + } kind2 = PyUnicode_KIND(substring); - len1 = PyUnicode_GET_LENGTH(self); len2 = PyUnicode_GET_LENGTH(substring); + if (maxcount < 0) { + // if len2 == 0, it will raise ValueError. + maxcount = len2 == 0 ? 0 : (len1 / len2) + 1; + // handle expected overflow case: (Py_SSIZE_T_MAX / 1) + 1 + maxcount = maxcount < 0 ? len1 : maxcount; + } if (kind1 < kind2 || len1 < len2) { out = PyList_New(1); if (out == NULL) @@ -10568,13 +10581,11 @@ _PyUnicode_EqualToASCIIId(PyObject *left, _Py_Identifier *right) if (PyUnicode_CHECK_INTERNED(left)) return 0; -#ifdef INTERNED_STRINGS assert(_PyUnicode_HASH(right_uni) != -1); Py_hash_t hash = _PyUnicode_HASH(left); if (hash != -1 && hash != _PyUnicode_HASH(right_uni)) { return 0; } -#endif return unicode_compare_eq(left, right_uni); } @@ -14587,6 +14598,14 @@ _PyUnicode_InitGlobalObjects(PyInterpreterState *interp) return _PyStatus_OK(); } + /* Intern statically allocated string identifiers and deepfreeze strings. + * This must be done before any module initialization so that statically + * allocated string identifiers are used instead of heap allocated strings. + * Deepfreeze uses the interned identifiers if present to save space + * else generates them and they are interned to speed up dict lookups. + */ + _PyUnicode_InitStaticStrings(); + #ifdef Py_DEBUG assert(_PyUnicode_CheckConsistency(&_Py_STR(empty), 1)); @@ -14606,13 +14625,13 @@ _PyUnicode_InitTypes(PyInterpreterState *interp) return _PyStatus_OK(); } - if (PyType_Ready(&EncodingMapType) < 0) { + if (_PyStaticType_InitBuiltin(&EncodingMapType) < 0) { goto error; } - if (PyType_Ready(&PyFieldNameIter_Type) < 0) { + if (_PyStaticType_InitBuiltin(&PyFieldNameIter_Type) < 0) { goto error; } - if (PyType_Ready(&PyFormatterIter_Type) < 0) { + if (_PyStaticType_InitBuiltin(&PyFormatterIter_Type) < 0) { goto error; } return _PyStatus_OK(); @@ -14645,13 +14664,14 @@ PyUnicode_InternInPlace(PyObject **p) return; } -#ifdef INTERNED_STRINGS + PyObject *interned = get_interned_dict(); if (interned == NULL) { interned = PyDict_New(); if (interned == NULL) { PyErr_Clear(); /* Don't leave an exception */ return; } + set_interned_dict(interned); } PyObject *t = PyDict_SetDefault(interned, s, s); @@ -14671,11 +14691,6 @@ PyUnicode_InternInPlace(PyObject **p) this. */ Py_SET_REFCNT(s, Py_REFCNT(s) - 2); _PyUnicode_STATE(s).interned = 1; -#else - // PyDict expects that interned strings have their hash - // (PyASCIIObject.hash) already computed. - (void)unicode_hash(s); -#endif } // Function kept for the stable ABI. @@ -14707,6 +14722,7 @@ _PyUnicode_ClearInterned(PyInterpreterState *interp) return; } + PyObject *interned = get_interned_dict(); if (interned == NULL) { return; } @@ -14742,7 +14758,8 @@ _PyUnicode_ClearInterned(PyInterpreterState *interp) #endif PyDict_Clear(interned); - Py_CLEAR(interned); + Py_DECREF(interned); + set_interned_dict(NULL); } @@ -15149,7 +15166,7 @@ _PyUnicode_EnableLegacyWindowsFSEncoding(void) static inline int unicode_is_finalizing(void) { - return (interned == NULL); + return (get_interned_dict() == NULL); } #endif @@ -15167,23 +15184,6 @@ _PyUnicode_FiniTypes(PyInterpreterState *interp) } -static void unicode_static_dealloc(PyObject *op) -{ - PyASCIIObject *ascii = _PyASCIIObject_CAST(op); - - assert(ascii->state.compact); - - if (!ascii->state.ascii) { - PyCompactUnicodeObject* compact = (PyCompactUnicodeObject*)op; - if (compact->utf8) { - PyObject_Free(compact->utf8); - compact->utf8 = NULL; - compact->utf8_length = 0; - } - } -} - - void _PyUnicode_Fini(PyInterpreterState *interp) { @@ -15191,7 +15191,7 @@ _PyUnicode_Fini(PyInterpreterState *interp) if (_Py_IsMainInterpreter(interp)) { // _PyUnicode_ClearInterned() must be called before _PyUnicode_Fini() - assert(interned == NULL); + assert(get_interned_dict() == NULL); // bpo-47182: force a unicodedata CAPI capsule re-import on // subsequent initialization of main interpreter. ucnhash_capi = NULL; @@ -15200,24 +15200,8 @@ _PyUnicode_Fini(PyInterpreterState *interp) _PyUnicode_FiniEncodings(&state->fs_codec); unicode_clear_identifiers(state); - - // Clear the single character singletons - for (int i = 0; i < 128; i++) { - unicode_static_dealloc((PyObject*)&_Py_SINGLETON(strings).ascii[i]); - } - for (int i = 0; i < 128; i++) { - unicode_static_dealloc((PyObject*)&_Py_SINGLETON(strings).latin1[i]); - } } - -void -_PyStaticUnicode_Dealloc(PyObject *op) -{ - unicode_static_dealloc(op); -} - - /* A _string module, to export formatter_parser and formatter_field_name_split to the string.Formatter class implemented in Python. */ diff --git a/Objects/unicodetype_db.h b/Objects/unicodetype_db.h index fb8bb9fc7ed98f..61116e4eafb303 100644 --- a/Objects/unicodetype_db.h +++ b/Objects/unicodetype_db.h @@ -1786,71 +1786,71 @@ static const unsigned short index1[] = { 143, 144, 145, 146, 147, 148, 149, 150, 34, 34, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 143, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 143, 175, 176, 143, 177, 178, 179, 180, - 143, 181, 182, 183, 184, 185, 186, 143, 143, 187, 188, 189, 190, 143, - 191, 143, 192, 34, 34, 34, 34, 34, 34, 34, 193, 194, 34, 195, 143, 143, + 143, 181, 182, 183, 184, 185, 186, 187, 143, 188, 189, 190, 191, 143, + 192, 193, 194, 34, 34, 34, 34, 34, 34, 34, 195, 196, 34, 197, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, - 143, 143, 143, 143, 196, 34, 34, 34, 34, 34, 34, 34, 34, 197, 143, 143, + 143, 143, 143, 143, 198, 34, 34, 34, 34, 34, 34, 34, 34, 199, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, - 143, 34, 34, 34, 34, 198, 143, 143, 143, 143, 143, 143, 143, 143, 143, + 143, 34, 34, 34, 34, 200, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, - 143, 143, 34, 34, 34, 34, 199, 200, 201, 202, 143, 143, 143, 143, 203, - 204, 205, 206, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 143, 143, 34, 34, 34, 34, 201, 202, 203, 204, 143, 143, 143, 143, 205, + 206, 207, 208, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 207, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 208, 209, 143, 143, 143, 143, 143, 143, 143, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 209, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 210, 211, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, - 143, 143, 143, 143, 143, 210, 34, 34, 211, 34, 34, 212, 143, 143, 143, + 143, 143, 143, 143, 143, 212, 34, 34, 213, 34, 34, 214, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, - 143, 213, 214, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, + 143, 215, 216, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, - 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 215, 216, 64, 217, - 218, 219, 220, 221, 222, 143, 223, 224, 225, 226, 227, 228, 229, 230, 64, - 64, 64, 64, 231, 232, 143, 143, 143, 143, 143, 143, 143, 143, 233, 143, - 234, 143, 235, 143, 143, 236, 143, 143, 143, 143, 143, 143, 143, 143, - 143, 237, 34, 238, 239, 143, 143, 143, 143, 143, 240, 241, 242, 143, 243, - 244, 143, 143, 245, 246, 247, 248, 249, 143, 64, 250, 64, 64, 64, 64, 64, - 251, 252, 253, 254, 255, 64, 64, 256, 257, 64, 258, 143, 143, 143, 143, - 143, 143, 143, 143, 259, 260, 261, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 86, 262, 34, 263, 264, 34, 34, 34, 34, 34, 34, + 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 217, 218, 64, 219, + 220, 221, 222, 223, 224, 143, 225, 226, 227, 228, 229, 230, 231, 232, 64, + 64, 64, 64, 233, 234, 143, 143, 143, 143, 143, 143, 143, 143, 235, 143, + 236, 237, 238, 143, 143, 239, 143, 143, 143, 240, 143, 143, 143, 143, + 143, 241, 34, 242, 243, 143, 143, 143, 143, 143, 244, 245, 246, 143, 247, + 248, 143, 143, 249, 250, 251, 252, 253, 143, 64, 254, 64, 64, 64, 64, 64, + 255, 256, 257, 258, 259, 64, 64, 260, 261, 64, 262, 143, 143, 143, 143, + 143, 143, 143, 143, 263, 264, 265, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 86, 266, 34, 267, 268, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 265, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 266, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 267, + 34, 34, 34, 34, 34, 34, 269, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 270, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 271, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 268, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 272, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 269, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 273, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 270, 34, 271, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 274, 34, 275, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 272, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 276, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 273, 143, 143, 143, 143, 143, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 277, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, - 143, 143, 143, 143, 143, 34, 265, 34, 34, 274, 143, 143, 143, 143, 143, + 143, 143, 143, 143, 143, 34, 269, 34, 34, 278, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 275, 143, 143, 143, 143, 143, 143, - 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, - 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 279, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 280, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, @@ -2247,8 +2247,8 @@ static const unsigned short index1[] = { 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, + 143, 143, 143, 143, 143, 143, 143, 281, 143, 282, 283, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, - 143, 276, 143, 277, 278, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, @@ -2284,7 +2284,7 @@ static const unsigned short index1[] = { 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, - 143, 143, 143, 143, 143, 143, 143, 143, 143, 125, 125, 125, 125, 125, + 143, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, @@ -2320,8 +2320,8 @@ static const unsigned short index1[] = { 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 284, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, - 125, 125, 279, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, @@ -2357,7 +2357,7 @@ static const unsigned short index1[] = { 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, - 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 279, + 125, 125, 284, }; static const unsigned short index2[] = { @@ -2538,31 +2538,31 @@ static const unsigned short index2[] = { 55, 55, 0, 55, 55, 55, 55, 55, 0, 0, 25, 55, 18, 25, 18, 18, 18, 18, 18, 0, 25, 18, 18, 0, 18, 18, 25, 25, 0, 0, 0, 0, 0, 0, 0, 18, 18, 0, 0, 0, 0, 0, 0, 55, 55, 0, 55, 55, 25, 25, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 0, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 18, 18, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 0, 55, 55, 55, 55, 55, + 15, 16, 0, 55, 55, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 18, + 18, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 25, 25, 55, 18, 18, 18, 25, 25, 25, 25, 0, 18, 18, 18, 0, 18, 18, 18, 25, - 55, 5, 0, 0, 0, 0, 55, 55, 55, 18, 27, 27, 27, 27, 27, 27, 27, 55, 55, - 55, 25, 25, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 5, 55, 55, 55, 55, 55, 55, 0, 25, 18, 18, 0, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 0, - 0, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 25, 0, 0, 0, 0, 18, 18, 18, 25, - 25, 25, 0, 25, 0, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, 0, 0, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 18, 18, 5, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 25, 25, 55, 18, 18, 18, 25, 25, 25, 25, 0, 18, 18, 18, 0, 18, 18, 18, + 25, 55, 5, 0, 0, 0, 0, 55, 55, 55, 18, 27, 27, 27, 27, 27, 27, 27, 55, + 55, 55, 25, 25, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 5, 55, 55, 55, 55, 55, 55, 0, 25, 18, 18, 0, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, + 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, + 0, 0, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 25, 0, 0, 0, 0, 18, 18, 18, + 25, 25, 25, 0, 25, 0, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, 0, 0, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 18, 18, 5, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 55, 139, - 25, 25, 25, 25, 25, 25, 25, 0, 0, 0, 0, 5, 55, 55, 55, 55, 55, 55, 103, - 25, 25, 25, 25, 25, 25, 25, 25, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 0, 55, 0, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 55, + 139, 25, 25, 25, 25, 25, 25, 25, 0, 0, 0, 0, 5, 55, 55, 55, 55, 55, 55, + 103, 25, 25, 25, 25, 25, 25, 25, 25, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 0, 55, 0, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 55, 139, 25, 25, 25, 25, 25, 25, 25, 25, 25, 55, 0, - 0, 55, 55, 55, 55, 55, 0, 103, 0, 25, 25, 25, 25, 25, 25, 0, 0, 7, 8, 9, + 0, 55, 55, 55, 55, 55, 0, 103, 0, 25, 25, 25, 25, 25, 25, 25, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, @@ -2592,7 +2592,7 @@ static const unsigned short index2[] = { 140, 0, 140, 0, 0, 0, 0, 0, 140, 0, 0, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 5, 103, 141, 141, 141, 55, 55, + 141, 141, 141, 141, 141, 141, 141, 141, 5, 102, 141, 141, 141, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, @@ -3152,7 +3152,7 @@ static const unsigned short index2[] = { 395, 392, 20, 396, 397, 398, 399, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 400, 401, 402, 30, 31, 30, 31, 0, 0, 0, 0, 0, 30, 31, 0, 20, 0, 20, 30, 31, 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 103, 103, 30, 31, 55, 102, 102, 20, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 102, 102, 30, 31, 55, 102, 102, 20, 55, 55, 55, 55, 55, 55, 55, 25, 55, 55, 55, 25, 55, 55, 55, 55, 25, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, 25, 25, 18, 5, 5, 5, 5, 25, 0, 0, 0, 27, 27, 27, @@ -3199,7 +3199,7 @@ static const unsigned short index2[] = { 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 403, 20, 20, 20, 20, 20, 20, 20, 6, 102, 102, 102, 102, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 103, 6, 6, 0, 0, 0, 0, 404, 405, 406, 407, 408, 409, + 20, 20, 20, 20, 20, 102, 6, 6, 0, 0, 0, 0, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, @@ -3487,129 +3487,129 @@ static const unsigned short index2[] = { 55, 55, 55, 55, 55, 55, 0, 25, 25, 5, 0, 0, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 55, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 27, 27, 27, 27, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 55, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 27, 27, 27, 27, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, 5, 5, + 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, 5, 5, 5, - 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 27, 27, 27, 27, - 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 27, 27, 27, + 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 25, 18, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 25, 18, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 5, 0, + 0, 0, 0, 26, 22, 23, 360, 361, 362, 363, 364, 365, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 25, 55, 55, + 25, 25, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25, 18, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, - 0, 26, 22, 23, 360, 361, 362, 363, 364, 365, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 25, 55, 55, 25, 25, - 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25, 18, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 18, 18, 18, 25, 25, 25, 25, 18, 18, 25, 25, 5, 5, 21, + 5, 5, 5, 5, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 18, 18, 18, 25, 25, 25, 25, 18, 18, 25, 25, 5, 5, 21, 5, 5, - 5, 5, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, + 0, 0, 0, 0, 0, 25, 25, 25, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, - 0, 0, 25, 25, 25, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, 25, 18, 25, 25, 25, 25, 25, + 25, 25, 25, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 5, 5, 5, 5, 55, 18, + 18, 55, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 25, 25, 25, 25, 25, 18, 25, 25, 25, 25, 25, 25, 25, 25, - 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 5, 5, 5, 5, 55, 18, 18, 55, 0, 0, - 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 25, 5, 5, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 18, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 25, 5, 5, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, + 25, 18, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, 18, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 18, 18, 55, 55, 55, 55, 5, 5, 5, 5, 25, + 25, 25, 25, 5, 18, 25, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 55, 5, 55, 5, + 5, 5, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, 18, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 18, 18, 55, 55, 55, 55, 5, 5, 5, 5, 25, 25, 25, 25, 5, - 18, 25, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 55, 5, 55, 5, 5, 5, 0, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, - 18, 18, 25, 25, 25, 18, 18, 25, 18, 25, 25, 5, 5, 5, 5, 5, 5, 25, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 55, 18, 18, 18, 25, 25, 25, 18, 18, 25, 18, 25, 25, 5, 5, 5, 5, 5, 5, + 25, 55, 55, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, - 0, 55, 0, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 5, 0, 0, 0, 0, - 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, + 55, 55, 55, 0, 55, 0, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 5, + 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 18, 18, 18, 25, 25, - 25, 25, 25, 25, 25, 25, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 0, 0, 0, 0, 0, 0, 25, 25, 18, 18, 0, 55, 55, 55, 55, 55, 55, 55, 55, - 0, 0, 55, 55, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 0, 55, - 55, 0, 55, 55, 55, 55, 55, 0, 25, 25, 55, 18, 18, 25, 18, 18, 18, 18, 0, - 0, 18, 18, 0, 0, 18, 18, 18, 0, 0, 55, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, - 0, 55, 55, 55, 55, 55, 18, 18, 0, 0, 25, 25, 25, 25, 25, 25, 25, 0, 0, 0, - 25, 25, 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 18, 18, + 18, 25, 25, 25, 25, 25, 25, 25, 25, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 25, 25, 18, 18, 0, 55, 55, 55, 55, 55, + 55, 55, 55, 0, 0, 55, 55, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, + 55, 55, 0, 55, 55, 0, 55, 55, 55, 55, 55, 0, 25, 25, 55, 18, 18, 25, 18, + 18, 18, 18, 0, 0, 18, 18, 0, 0, 18, 18, 18, 0, 0, 55, 0, 0, 0, 0, 0, 0, + 18, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 18, 18, 0, 0, 25, 25, 25, 25, 25, + 25, 25, 0, 0, 0, 25, 25, 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, 18, 25, 25, 25, - 25, 25, 25, 25, 25, 18, 18, 25, 25, 25, 18, 25, 55, 55, 55, 55, 5, 5, 5, - 5, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 5, 5, 0, 5, 25, 55, 55, 55, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, - 18, 25, 25, 25, 25, 25, 25, 18, 25, 18, 18, 18, 18, 25, 25, 18, 25, 25, - 55, 55, 5, 55, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, + 18, 25, 25, 25, 25, 25, 25, 25, 25, 18, 18, 25, 25, 25, 18, 25, 55, 55, + 55, 55, 5, 5, 5, 5, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 5, 5, 0, 5, + 25, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 18, 18, 18, 25, 25, 25, 25, 0, 0, 18, 18, 18, 18, 25, 25, - 18, 25, 25, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 55, 55, 55, 55, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, + 55, 55, 18, 18, 18, 25, 25, 25, 25, 25, 25, 18, 25, 18, 18, 18, 18, 25, + 25, 18, 25, 25, 55, 55, 5, 55, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, 18, 25, 25, 25, 25, 25, - 25, 25, 25, 18, 18, 25, 18, 25, 25, 5, 5, 5, 55, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, 18, 25, 25, 25, 25, 0, 0, 18, 18, + 18, 18, 25, 25, 18, 25, 25, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 55, 55, 55, 55, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, 18, 25, 25, + 25, 25, 25, 25, 25, 25, 18, 18, 25, 18, 25, 25, 5, 5, 5, 55, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, + 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 18, 25, 18, 18, 25, 25, - 25, 25, 25, 25, 18, 25, 55, 5, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 18, 25, 18, + 18, 25, 25, 25, 25, 25, 25, 18, 25, 55, 5, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 25, - 25, 25, 18, 18, 25, 25, 25, 25, 18, 25, 25, 25, 25, 25, 0, 0, 0, 0, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 27, 27, 5, 5, 5, 5, 55, 55, 55, 55, 55, - 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 0, 0, 25, 25, 25, 18, 18, 25, 25, 25, 25, 18, 25, 25, 25, 25, 25, 0, + 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 27, 27, 5, 5, 5, 5, 55, 55, + 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, - 18, 25, 25, 25, 25, 25, 25, 25, 25, 25, 18, 25, 25, 5, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 18, 18, 18, 25, 25, 25, 25, 25, 25, 25, 25, 25, 18, 25, 25, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 19, 19, 19, 19, 19, 19, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, - 55, 55, 55, 55, 55, 55, 55, 0, 0, 55, 0, 0, 55, 55, 55, 55, 55, 55, 55, - 55, 0, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, 18, 18, 18, 18, 0, 18, - 18, 0, 0, 25, 25, 18, 25, 55, 18, 55, 18, 25, 5, 5, 5, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 55, 0, 0, 55, 55, 55, 55, 55, + 55, 55, 55, 0, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, 18, 18, 18, 18, + 0, 18, 18, 0, 0, 25, 25, 18, 25, 55, 18, 55, 18, 25, 5, 5, 5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 0, - 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, + 55, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 18, 18, 18, 25, 25, 25, 25, 0, 0, 25, 25, 18, 18, 18, 18, - 25, 55, 5, 55, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 55, 55, 55, 55, 55, 18, 18, 18, 25, 25, 25, 25, 0, 0, 25, 25, 18, 18, 18, + 18, 25, 55, 5, 55, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, 25, 25, 18, 55, 25, 25, 25, 25, 5, 5, 5, @@ -3622,29 +3622,34 @@ static const unsigned short index2[] = { 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 25, 25, 25, 25, 25, 25, 25, - 0, 25, 25, 25, 25, 25, 25, 18, 25, 55, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, 0, 5, 5, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 0, 18, - 25, 25, 25, 25, 25, 25, 25, 18, 25, 25, 18, 25, 25, 0, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 25, + 25, 25, 25, 25, 25, 25, 0, 25, 25, 25, 25, 25, 25, 18, 25, 55, 5, 5, 5, + 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 0, 0, 0, 5, 5, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 0, 18, 25, 25, 25, 25, 25, 25, 25, 18, 25, 25, 18, 25, + 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, - 55, 55, 0, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 0, 0, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 0, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, + 25, 25, 0, 0, 0, 25, 0, 25, 25, 0, 25, 25, 25, 25, 25, 25, 25, 55, 25, 0, + 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, + 0, 55, 55, 55, 55, 55, 55, 0, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, 25, 25, 0, 0, 0, 25, 0, 25, - 25, 0, 25, 25, 25, 25, 25, 25, 25, 55, 25, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, - 0, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, - 18, 18, 18, 18, 0, 25, 25, 0, 18, 18, 25, 18, 25, 55, 0, 0, 0, 0, 0, 0, - 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 55, 55, 55, 18, 18, 18, 18, 18, 0, 25, 25, 0, 18, 18, 25, 18, + 25, 55, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3652,19 +3657,26 @@ static const unsigned short index2[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 25, 25, 18, 18, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 18, 18, 5, 5, 0, 0, 0, 0, + 0, 0, 0, 25, 25, 55, 18, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 18, 18, 25, 25, 25, 25, 25, 0, 0, 0, 18, 18, 25, 18, 25, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 5, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, @@ -3672,62 +3684,62 @@ static const unsigned short index2[] = { 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 0, 5, 5, - 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, + 243, 243, 243, 243, 243, 243, 243, 243, 0, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 5, 5, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 0, 21, 21, 21, 21, 21, 21, 21, 21, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 21, 21, 21, + 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 25, 55, 55, 55, 55, + 55, 55, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 5, 5, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 5, 5, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 25, 25, 25, 25, 25, - 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, + 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 25, 25, 25, 25, + 25, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 25, 25, 25, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 5, 5, 5, 103, 103, - 103, 103, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 0, 27, 27, 27, 27, 27, 27, 27, 0, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 25, 25, 25, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 5, 5, 5, 103, + 103, 103, 103, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 0, 27, 27, 27, 27, 27, 27, 27, 0, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, + 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 27, @@ -3776,10 +3788,10 @@ static const unsigned short index2[] = { 0, 0, 0, 0, 0, 103, 103, 103, 103, 0, 103, 103, 103, 103, 103, 103, 103, 0, 103, 103, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, - 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 0, 55, 55, 55, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, + 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, @@ -3787,106 +3799,110 @@ static const unsigned short index2[] = { 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, - 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 5, 25, 25, 5, - 21, 21, 21, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, + 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 5, 25, + 25, 5, 21, 21, 21, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 0, 0, 0, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 0, 0, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 0, 0, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 18, 18, 25, 25, 25, 5, 5, 5, 18, 18, 18, 18, 18, 18, 21, 21, - 21, 21, 21, 21, 21, 21, 25, 25, 25, 25, 25, 25, 25, 25, 5, 5, 25, 25, 25, - 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 18, 18, 25, 25, 25, 5, 5, 5, 18, 18, 18, 18, 18, 18, + 21, 21, 21, 21, 21, 21, 21, 21, 25, 25, 25, 25, 25, 25, 25, 25, 5, 5, 25, + 25, 25, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 25, 25, 25, - 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 25, + 25, 25, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 121, 121, 121, 121, - 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, - 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, + 0, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, 20, - 20, 20, 20, 20, 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, - 121, 121, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 121, 0, 121, 121, 0, 0, 121, 0, - 0, 121, 121, 0, 0, 121, 121, 121, 121, 0, 121, 121, 121, 121, 121, 121, - 121, 121, 20, 20, 20, 20, 0, 20, 0, 20, 20, 20, 20, 20, 20, 20, 0, 20, + 121, 121, 20, 20, 20, 20, 20, 20, 20, 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 121, 121, 0, - 121, 121, 121, 121, 0, 0, 121, 121, 121, 121, 121, 121, 121, 121, 0, 121, - 121, 121, 121, 121, 121, 121, 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 121, 121, - 0, 121, 121, 121, 121, 0, 121, 121, 121, 121, 121, 0, 121, 0, 0, 0, 121, - 121, 121, 121, 121, 121, 121, 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 121, 121, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 121, 0, 121, + 121, 0, 0, 121, 0, 0, 121, 121, 0, 0, 121, 121, 121, 121, 0, 121, 121, + 121, 121, 121, 121, 121, 121, 20, 20, 20, 20, 0, 20, 0, 20, 20, 20, 20, + 20, 20, 20, 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, - 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, 20, 20, 20, 20, + 121, 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, - 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, + 20, 121, 121, 0, 121, 121, 121, 121, 0, 0, 121, 121, 121, 121, 121, 121, + 121, 121, 0, 121, 121, 121, 121, 121, 121, 121, 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, + 20, 20, 20, 121, 121, 0, 121, 121, 121, 121, 0, 121, 121, 121, 121, 121, + 0, 121, 0, 0, 0, 121, 121, 121, 121, 121, 121, 121, 0, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, + 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, + 121, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 121, 121, 121, 121, 121, 121, 121, + 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, + 121, 121, 121, 121, 121, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 121, 121, 121, + 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, + 121, 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, + 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 121, 121, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 0, 0, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, - 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, 20, 20, 20, 20, + 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 5, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, - 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 0, 0, 121, 121, 121, 121, 121, 121, 121, + 20, 20, 20, 5, 20, 20, 20, 20, 20, 20, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 5, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 5, 20, 20, 20, 20, @@ -3900,201 +3916,210 @@ static const unsigned short index2[] = { 20, 20, 20, 20, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 5, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 5, 20, 20, 20, 20, 20, 20, 121, 121, 121, - 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, - 121, 121, 121, 121, 121, 121, 121, 121, 5, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 5, 20, 20, 20, 20, 20, 20, 121, 20, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 20, 20, 20, 20, 20, 20, 20, 5, 20, 20, 20, 20, 20, 20, 121, 20, 0, 0, 7, + 8, 9, 10, 11, 12, 13, 14, 15, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 7, + 8, 9, 10, 11, 12, 13, 14, 15, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 7, + 8, 9, 10, 11, 12, 13, 14, 15, 16, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 5, 5, 5, 5, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 5, 5, 5, 5, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 5, 5, 5, 5, 5, 5, 5, 5, 25, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 25, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 25, 25, 25, 25, 25, 0, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 25, 25, 25, 25, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 5, 5, 25, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 25, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25, 25, 25, 0, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 55, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 55, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 0, 0, 0, 0, 0, 0, 20, 20, 20, 20, + 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25, 25, 25, 25, 25, + 0, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 0, + 0, 25, 25, 25, 25, 25, 25, 25, 0, 25, 25, 0, 25, 25, 25, 25, 25, 0, 0, 0, + 0, 0, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, + 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, + 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, + 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, + 102, 102, 102, 102, 102, 102, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 25, 25, 25, 25, 25, 25, 25, 0, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 0, 0, 25, 25, 25, 25, 25, 25, - 25, 0, 25, 25, 0, 25, 25, 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 25, 25, 25, 25, 25, 25, - 25, 103, 103, 103, 103, 103, 103, 103, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 0, 0, 0, 0, 55, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 0, 0, 0, 25, 25, 25, 25, 25, 25, 25, 103, 103, 103, 103, 103, 103, + 103, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 55, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, - 25, 25, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 5, 0, 0, 0, + 55, 55, 55, 55, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 103, 25, 25, 25, 25, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, - 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 0, 55, 55, 0, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, + 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 0, 55, + 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 25, 25, 25, 25, 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 25, 25, 25, 25, 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, - 502, 502, 502, 502, 502, 502, 502, 503, 503, 503, 503, 503, 503, 503, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 503, 503, + 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, - 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 25, 25, - 25, 25, 25, 25, 25, 103, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 0, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 503, 503, 503, 503, 25, 25, 25, 25, 25, 25, 25, 103, 0, 0, 0, 0, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 5, 27, 27, 27, 5, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 5, + 27, 27, 27, 5, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 5, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 27, 5, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 0, 55, 55, 0, 55, 0, 0, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 0, 55, 55, 55, 55, 0, 55, 0, 55, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, - 55, 0, 55, 0, 55, 0, 55, 55, 55, 0, 55, 55, 0, 55, 0, 0, 55, 0, 55, 0, - 55, 0, 55, 0, 55, 0, 55, 55, 0, 55, 0, 0, 55, 55, 55, 55, 0, 55, 55, 55, - 55, 55, 55, 55, 0, 55, 55, 55, 55, 0, 55, 55, 55, 55, 0, 55, 0, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 55, 55, 55, 0, 55, 55, 55, - 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 0, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 0, 55, 0, 0, 55, 0, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 0, 55, 0, 55, 0, 0, 0, + 0, 0, 0, 55, 0, 0, 0, 0, 55, 0, 55, 0, 55, 0, 55, 55, 55, 0, 55, 55, 0, + 55, 0, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 55, 0, 55, 0, 0, 55, 55, + 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 0, 55, 55, 55, + 55, 0, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 55, + 55, 55, 0, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 5, 5, + 5, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 359, 359, + 26, 22, 23, 360, 361, 362, 363, 364, 365, 27, 27, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 359, 359, 26, 22, 23, 360, 361, - 362, 363, 364, 365, 27, 27, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 504, 504, - 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, - 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 5, 5, 5, 5, 5, 5, 504, - 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, - 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 5, 5, 5, 5, 5, 5, - 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, - 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 5, 5, 5, 5, + 5, 5, 5, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, + 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 5, 5, 5, + 5, 5, 5, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, + 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 5, 5, 5, + 5, 5, 5, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, + 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, - 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, + 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, + 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, - 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, - 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, - 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, + 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, + 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 5, 5, 0, 0, 0, 0, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 5, 5, 5, 5, 5, 0, - 0, 0, 5, 5, 5, 5, 5, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, - 0, 0, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, + 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, + 5, 0, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, + 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, - 0, 0, 0, 0, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, + 0, 0, 0, 0, 0, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, - 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, + 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, @@ -4105,16 +4130,16 @@ static const unsigned short index2[] = { 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, @@ -4122,14 +4147,14 @@ static const unsigned short index2[] = { 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, @@ -4141,31 +4166,31 @@ static const unsigned short index2[] = { 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, @@ -4175,27 +4200,34 @@ static const unsigned short index2[] = { 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 21, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, @@ -4208,13 +4240,13 @@ static const unsigned short index2[] = { 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 25, 25, 25, 25, 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 0, 0, }; /* Returns the numeric value as double for Unicode characters @@ -4291,10 +4323,12 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x11C50: case 0x11D50: case 0x11DA0: + case 0x11F50: case 0x16A60: case 0x16AC0: case 0x16B50: case 0x16E80: + case 0x1D2C0: case 0x1D2E0: case 0x1D7CE: case 0x1D7D8: @@ -4303,6 +4337,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x1D7F6: case 0x1E140: case 0x1E2F0: + case 0x1E4F0: case 0x1E950: case 0x1F100: case 0x1F101: @@ -4420,6 +4455,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x11C5A: case 0x11D51: case 0x11DA1: + case 0x11F51: case 0x12415: case 0x1241E: case 0x1242C: @@ -4431,6 +4467,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x16B51: case 0x16E81: case 0x16E94: + case 0x1D2C1: case 0x1D2E1: case 0x1D360: case 0x1D372: @@ -4442,6 +4479,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x1D7F7: case 0x1E141: case 0x1E2F1: + case 0x1E4F1: case 0x1E8C7: case 0x1E951: case 0x1EC71: @@ -4599,6 +4637,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x11C63: case 0x16B5B: case 0x16E8A: + case 0x1D2CA: case 0x1D2EA: case 0x1D369: case 0x1EC7A: @@ -4706,6 +4745,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x2492: case 0x24EB: case 0x16E8B: + case 0x1D2CB: case 0x1D2EB: return (double) 11.0; case 0x109BC: @@ -4719,6 +4759,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x2493: case 0x24EC: case 0x16E8C: + case 0x1D2CC: case 0x1D2EC: return (double) 12.0; case 0x246C: @@ -4726,6 +4767,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x2494: case 0x24ED: case 0x16E8D: + case 0x1D2CD: case 0x1D2ED: return (double) 13.0; case 0x0F30: @@ -4735,6 +4777,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x2495: case 0x24EE: case 0x16E8E: + case 0x1D2CE: case 0x1D2EE: return (double) 14.0; case 0x246E: @@ -4742,6 +4785,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x2496: case 0x24EF: case 0x16E8F: + case 0x1D2CF: case 0x1D2EF: return (double) 15.0; case 0x0F31: @@ -4752,6 +4796,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x2497: case 0x24F0: case 0x16E90: + case 0x1D2D0: case 0x1D2F0: return (double) 16.0; case 0x16EE: @@ -4760,6 +4805,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x2498: case 0x24F1: case 0x16E91: + case 0x1D2D1: case 0x1D2F1: return (double) 17.0; case 0x0F32: @@ -4770,6 +4816,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x2499: case 0x24F2: case 0x16E92: + case 0x1D2D2: case 0x1D2F2: return (double) 18.0; case 0x16F0: @@ -4778,6 +4825,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x249A: case 0x24F3: case 0x16E93: + case 0x1D2D3: case 0x1D2F3: return (double) 19.0; case 0x0032: @@ -4885,6 +4933,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x11C5B: case 0x11D52: case 0x11DA2: + case 0x11F52: case 0x12400: case 0x12416: case 0x1241F: @@ -4900,6 +4949,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x16B52: case 0x16E82: case 0x16E95: + case 0x1D2C2: case 0x1D2E2: case 0x1D361: case 0x1D373: @@ -4910,6 +4960,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x1D7F8: case 0x1E142: case 0x1E2F2: + case 0x1E4F2: case 0x1E8C8: case 0x1E952: case 0x1EC72: @@ -5111,6 +5162,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x11C5C: case 0x11D53: case 0x11DA3: + case 0x11F53: case 0x12401: case 0x12408: case 0x12417: @@ -5131,6 +5183,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x16B53: case 0x16E83: case 0x16E96: + case 0x1D2C3: case 0x1D2E3: case 0x1D362: case 0x1D374: @@ -5141,6 +5194,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x1D7F9: case 0x1E143: case 0x1E2F3: + case 0x1E4F3: case 0x1E8C9: case 0x1E953: case 0x1EC73: @@ -5334,6 +5388,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x11C5D: case 0x11D54: case 0x11DA4: + case 0x11F54: case 0x12402: case 0x12409: case 0x1240F: @@ -5354,6 +5409,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x16AC4: case 0x16B54: case 0x16E84: + case 0x1D2C4: case 0x1D2E4: case 0x1D363: case 0x1D375: @@ -5364,6 +5420,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x1D7FA: case 0x1E144: case 0x1E2F4: + case 0x1E4F4: case 0x1E8CA: case 0x1E954: case 0x1EC74: @@ -5533,6 +5590,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x11C5E: case 0x11D55: case 0x11DA5: + case 0x11F55: case 0x12403: case 0x1240A: case 0x12410: @@ -5549,6 +5607,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x16AC5: case 0x16B55: case 0x16E85: + case 0x1D2C5: case 0x1D2E5: case 0x1D364: case 0x1D376: @@ -5560,6 +5619,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x1D7FB: case 0x1E145: case 0x1E2F5: + case 0x1E4F5: case 0x1E8CB: case 0x1E955: case 0x1EC75: @@ -5729,6 +5789,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x11C5F: case 0x11D56: case 0x11DA6: + case 0x11F56: case 0x12404: case 0x1240B: case 0x12411: @@ -5741,6 +5802,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x16AC6: case 0x16B56: case 0x16E86: + case 0x1D2C6: case 0x1D2E6: case 0x1D365: case 0x1D7D4: @@ -5750,6 +5812,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x1D7FC: case 0x1E146: case 0x1E2F6: + case 0x1E4F6: case 0x1E8CC: case 0x1E956: case 0x1EC76: @@ -5878,6 +5941,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x11C60: case 0x11D57: case 0x11DA7: + case 0x11F57: case 0x12405: case 0x1240C: case 0x12412: @@ -5891,6 +5955,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x16AC7: case 0x16B57: case 0x16E87: + case 0x1D2C7: case 0x1D2E7: case 0x1D366: case 0x1D7D5: @@ -5900,6 +5965,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x1D7FD: case 0x1E147: case 0x1E2F7: + case 0x1E4F7: case 0x1E8CD: case 0x1E957: case 0x1EC77: @@ -6029,6 +6095,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x11C61: case 0x11D58: case 0x11DA8: + case 0x11F58: case 0x12406: case 0x1240D: case 0x12413: @@ -6041,6 +6108,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x16AC8: case 0x16B58: case 0x16E88: + case 0x1D2C8: case 0x1D2E8: case 0x1D367: case 0x1D7D6: @@ -6050,6 +6118,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x1D7FE: case 0x1E148: case 0x1E2F8: + case 0x1E4F8: case 0x1E8CE: case 0x1E958: case 0x1EC78: @@ -6174,6 +6243,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x11C62: case 0x11D59: case 0x11DA9: + case 0x11F59: case 0x12407: case 0x1240E: case 0x12414: @@ -6188,6 +6258,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x16AC9: case 0x16B59: case 0x16E89: + case 0x1D2C9: case 0x1D2E9: case 0x1D368: case 0x1D7D7: @@ -6197,6 +6268,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x1D7FF: case 0x1E149: case 0x1E2F9: + case 0x1E4F9: case 0x1E8CF: case 0x1E959: case 0x1EC79: diff --git a/Objects/weakrefobject.c b/Objects/weakrefobject.c index 1712533a39d802..cf89a9231d204d 100644 --- a/Objects/weakrefobject.c +++ b/Objects/weakrefobject.c @@ -371,7 +371,7 @@ static PyMethodDef weakref_methods[] = { PyTypeObject _PyWeakref_RefType = { PyVarObject_HEAD_INIT(&PyType_Type, 0) - .tp_name = "weakref", + .tp_name = "weakref.ReferenceType", .tp_basicsize = sizeof(PyWeakReference), .tp_dealloc = weakref_dealloc, .tp_vectorcall_offset = offsetof(PyWeakReference, vectorcall), @@ -558,6 +558,7 @@ proxy_bool(PyWeakReference *proxy) static void proxy_dealloc(PyWeakReference *self) { + PyObject_GC_UnTrack(self); if (self->wr_callback != NULL) PyObject_GC_UnTrack((PyObject *)self); clear_weakref(self); @@ -719,7 +720,7 @@ static PyMappingMethods proxy_as_mapping = { PyTypeObject _PyWeakref_ProxyType = { PyVarObject_HEAD_INIT(&PyType_Type, 0) - "weakproxy", + "weakref.ProxyType", sizeof(PyWeakReference), 0, /* methods */ @@ -754,7 +755,7 @@ _PyWeakref_ProxyType = { PyTypeObject _PyWeakref_CallableProxyType = { PyVarObject_HEAD_INIT(&PyType_Type, 0) - "weakcallableproxy", + "weakref.CallableProxyType", sizeof(PyWeakReference), 0, /* methods */ @@ -1018,3 +1019,22 @@ PyObject_ClearWeakRefs(PyObject *object) PyErr_Restore(err_type, err_value, err_tb); } } + +/* This function is called by _PyStaticType_Dealloc() to clear weak references. + * + * This is called at the end of runtime finalization, so we can just + * wipe out the type's weaklist. We don't bother with callbacks + * or anything else. + */ +void +_PyStaticType_ClearWeakRefs(PyTypeObject *type) +{ + static_builtin_state *state = _PyStaticType_GetState(type); + PyObject **list = _PyStaticType_GET_WEAKREFS_LISTPTR(state); + while (*list != NULL) { + /* Note that clear_weakref() pops the first ref off the type's + weaklist before clearing its wr_object and wr_callback. + That is how we're able to loop over the list. */ + clear_weakref((PyWeakReference *)*list); + } +} diff --git a/PC/_msi.c b/PC/_msi.c index 3f50f9b8845947..3686b9bb6f2a6d 100644 --- a/PC/_msi.c +++ b/PC/_msi.c @@ -360,7 +360,7 @@ msierror(int status) int code; char buf[2000]; char *res = buf; - DWORD size = sizeof(buf); + DWORD size = Py_ARRAY_LENGTH(buf); MSIHANDLE err = MsiGetLastErrorRecord(); if (err == 0) { @@ -484,7 +484,7 @@ _msi_Record_GetString_impl(msiobj *self, unsigned int field) unsigned int status; WCHAR buf[2000]; WCHAR *res = buf; - DWORD size = sizeof(buf); + DWORD size = Py_ARRAY_LENGTH(buf); PyObject* string; status = MsiRecordGetStringW(self->h, field, res, &size); diff --git a/PC/_wmimodule.cpp b/PC/_wmimodule.cpp new file mode 100644 index 00000000000000..de22049dd33f34 --- /dev/null +++ b/PC/_wmimodule.cpp @@ -0,0 +1,323 @@ +// +// Helper library for querying WMI using its COM-based query API. +// +// Copyright (c) Microsoft Corporation +// Licensed to PSF under a contributor agreement +// + +// Version history +// 2022-08: Initial contribution (Steve Dower) + +#define _WIN32_DCOM +#include <Windows.h> +#include <comdef.h> +#include <Wbemidl.h> +#include <propvarutil.h> + +#include <Python.h> + + +#if _MSC_VER >= 1929 +// We can use clinic directly when the C++ compiler supports C++20 +#include "clinic/_wmimodule.cpp.h" +#else +// Cannot use clinic because of missing C++20 support, so create a simpler +// API instead. This won't impact releases, so fine to omit the docstring. +static PyObject *_wmi_exec_query_impl(PyObject *module, PyObject *query); +#define _WMI_EXEC_QUERY_METHODDEF {"exec_query", _wmi_exec_query_impl, METH_O, NULL}, +#endif + + +/*[clinic input] +module _wmi +[clinic start generated code]*/ +/*[clinic end generated code: output=da39a3ee5e6b4b0d input=7ca95dad1453d10d]*/ + + + +struct _query_data { + LPCWSTR query; + HANDLE writePipe; + HANDLE readPipe; +}; + + +static DWORD WINAPI +_query_thread(LPVOID param) +{ + IWbemLocator *locator = NULL; + IWbemServices *services = NULL; + IEnumWbemClassObject* enumerator = NULL; + BSTR bstrQuery = NULL; + struct _query_data *data = (struct _query_data*)param; + + HRESULT hr = CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED); + if (FAILED(hr)) { + CloseHandle(data->writePipe); + return (DWORD)hr; + } + + hr = CoInitializeSecurity( + NULL, -1, NULL, NULL, + RPC_C_AUTHN_LEVEL_DEFAULT, + RPC_C_IMP_LEVEL_IMPERSONATE, + NULL, EOAC_NONE, NULL + ); + // gh-96684: CoInitializeSecurity will fail if another part of the app has + // already called it. Hopefully they passed lenient enough settings that we + // can complete the WMI query, so keep going. + if (hr == RPC_E_TOO_LATE) { + hr = 0; + } + if (SUCCEEDED(hr)) { + hr = CoCreateInstance( + CLSID_WbemLocator, 0, CLSCTX_INPROC_SERVER, + IID_IWbemLocator, (LPVOID *)&locator + ); + } + if (SUCCEEDED(hr)) { + hr = locator->ConnectServer( + bstr_t(L"ROOT\\CIMV2"), + NULL, NULL, 0, NULL, 0, 0, &services + ); + } + if (SUCCEEDED(hr)) { + hr = CoSetProxyBlanket( + services, RPC_C_AUTHN_WINNT, RPC_C_AUTHZ_NONE, NULL, + RPC_C_AUTHN_LEVEL_CALL, RPC_C_IMP_LEVEL_IMPERSONATE, + NULL, EOAC_NONE + ); + } + if (SUCCEEDED(hr)) { + bstrQuery = SysAllocString(data->query); + if (!bstrQuery) { + hr = HRESULT_FROM_WIN32(ERROR_NOT_ENOUGH_MEMORY); + } + } + if (SUCCEEDED(hr)) { + hr = services->ExecQuery( + bstr_t("WQL"), + bstrQuery, + WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY, + NULL, + &enumerator + ); + } + + // Okay, after all that, at this stage we should have an enumerator + // to the query results and can start writing them to the pipe! + IWbemClassObject *value = NULL; + int startOfEnum = TRUE; + int endOfEnum = FALSE; + while (SUCCEEDED(hr) && !endOfEnum) { + ULONG got = 0; + DWORD written; + hr = enumerator->Next(WBEM_INFINITE, 1, &value, &got); + if (hr == WBEM_S_FALSE) { + // Could be at the end, but still got a result this time + endOfEnum = TRUE; + hr = 0; + break; + } + if (FAILED(hr) || got != 1 || !value) { + continue; + } + if (!startOfEnum && !WriteFile(data->writePipe, (LPVOID)L"\0", 2, &written, NULL)) { + hr = HRESULT_FROM_WIN32(GetLastError()); + break; + } + startOfEnum = FALSE; + // Okay, now we have each resulting object it's time to + // enumerate its members + hr = value->BeginEnumeration(0); + if (FAILED(hr)) { + value->Release(); + break; + } + while (SUCCEEDED(hr)) { + BSTR propName; + VARIANT propValue; + long flavor; + hr = value->Next(0, &propName, &propValue, NULL, &flavor); + if (hr == WBEM_S_NO_MORE_DATA) { + hr = 0; + break; + } + if (SUCCEEDED(hr) && (flavor & WBEM_FLAVOR_MASK_ORIGIN) != WBEM_FLAVOR_ORIGIN_SYSTEM) { + WCHAR propStr[8192]; + hr = VariantToString(propValue, propStr, sizeof(propStr) / sizeof(propStr[0])); + if (SUCCEEDED(hr)) { + DWORD cbStr1, cbStr2; + cbStr1 = (DWORD)(wcslen(propName) * sizeof(propName[0])); + cbStr2 = (DWORD)(wcslen(propStr) * sizeof(propStr[0])); + if (!WriteFile(data->writePipe, propName, cbStr1, &written, NULL) || + !WriteFile(data->writePipe, (LPVOID)L"=", 2, &written, NULL) || + !WriteFile(data->writePipe, propStr, cbStr2, &written, NULL) || + !WriteFile(data->writePipe, (LPVOID)L"\0", 2, &written, NULL) + ) { + hr = HRESULT_FROM_WIN32(GetLastError()); + } + } + VariantClear(&propValue); + SysFreeString(propName); + } + } + value->EndEnumeration(); + value->Release(); + } + + if (bstrQuery) { + SysFreeString(bstrQuery); + } + if (enumerator) { + enumerator->Release(); + } + if (services) { + services->Release(); + } + if (locator) { + locator->Release(); + } + CoUninitialize(); + CloseHandle(data->writePipe); + return (DWORD)hr; +} + + +/*[clinic input] +_wmi.exec_query + + query: unicode + +Runs a WMI query against the local machine. + +This returns a single string with 'name=value' pairs in a flat array separated +by null characters. +[clinic start generated code]*/ + +static PyObject * +_wmi_exec_query_impl(PyObject *module, PyObject *query) +/*[clinic end generated code: output=a62303d5bb5e003f input=48d2d0a1e1a7e3c2]*/ + +/*[clinic end generated code]*/ +{ + PyObject *result = NULL; + HANDLE hThread = NULL; + int err = 0; + WCHAR buffer[8192]; + DWORD offset = 0; + DWORD bytesRead; + struct _query_data data = {0}; + + if (PySys_Audit("_wmi.exec_query", "O", query) < 0) { + return NULL; + } + + data.query = PyUnicode_AsWideCharString(query, NULL); + if (!data.query) { + return NULL; + } + + if (0 != _wcsnicmp(data.query, L"select ", 7)) { + PyMem_Free((void *)data.query); + PyErr_SetString(PyExc_ValueError, "only SELECT queries are supported"); + return NULL; + } + + Py_BEGIN_ALLOW_THREADS + + if (!CreatePipe(&data.readPipe, &data.writePipe, NULL, 0)) { + err = GetLastError(); + } else { + hThread = CreateThread(NULL, 0, _query_thread, (LPVOID*)&data, 0, NULL); + if (!hThread) { + err = GetLastError(); + // Normally the thread proc closes this handle, but since we never started + // we need to close it here. + CloseHandle(data.writePipe); + } + } + + while (!err) { + if (ReadFile( + data.readPipe, + (LPVOID)&buffer[offset / sizeof(buffer[0])], + sizeof(buffer) - offset, + &bytesRead, + NULL + )) { + offset += bytesRead; + if (offset >= sizeof(buffer)) { + err = ERROR_MORE_DATA; + } + } else { + err = GetLastError(); + } + } + + if (data.readPipe) { + CloseHandle(data.readPipe); + } + + // Allow the thread some time to clean up + switch (WaitForSingleObject(hThread, 1000)) { + case WAIT_OBJECT_0: + // Thread ended cleanly + if (!GetExitCodeThread(hThread, (LPDWORD)&err)) { + err = GetLastError(); + } + break; + case WAIT_TIMEOUT: + // Probably stuck - there's not much we can do, unfortunately + if (err == 0 || err == ERROR_BROKEN_PIPE) { + err = WAIT_TIMEOUT; + } + break; + default: + if (err == 0 || err == ERROR_BROKEN_PIPE) { + err = GetLastError(); + } + break; + } + + CloseHandle(hThread); + hThread = NULL; + + Py_END_ALLOW_THREADS + + PyMem_Free((void *)data.query); + + if (err == ERROR_MORE_DATA) { + PyErr_Format(PyExc_OSError, "Query returns more than %zd characters", Py_ARRAY_LENGTH(buffer)); + return NULL; + } else if (err) { + PyErr_SetFromWindowsErr(err); + return NULL; + } + + if (!offset) { + return PyUnicode_FromStringAndSize(NULL, 0); + } + return PyUnicode_FromWideChar(buffer, offset / sizeof(buffer[0]) - 1); +} + + +static PyMethodDef wmi_functions[] = { + _WMI_EXEC_QUERY_METHODDEF + { NULL, NULL, 0, NULL } +}; + +static PyModuleDef wmi_def = { + PyModuleDef_HEAD_INIT, + "_wmi", + NULL, // doc + 0, // m_size + wmi_functions +}; + +extern "C" { + PyMODINIT_FUNC PyInit__wmi(void) + { + return PyModuleDef_Init(&wmi_def); + } +} diff --git a/PC/clinic/_msi.c.h b/PC/clinic/_msi.c.h index ca1f8ad76a3126..1b7234aa03bedf 100644 --- a/PC/clinic/_msi.c.h +++ b/PC/clinic/_msi.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_msi_UuidCreate__doc__, "UuidCreate($module, /)\n" "--\n" @@ -689,4 +695,4 @@ _msi_CreateRecord(PyObject *module, PyObject *arg) exit: return return_value; } -/*[clinic end generated code: output=a592695c4315db22 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=583505220fadb52b input=a9049054013a1b77]*/ diff --git a/PC/clinic/_testconsole.c.h b/PC/clinic/_testconsole.c.h index b2fd515e77a121..b2f3b4ce8b08a2 100644 --- a/PC/clinic/_testconsole.c.h +++ b/PC/clinic/_testconsole.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + #if defined(MS_WINDOWS) PyDoc_STRVAR(_testconsole_write_input__doc__, @@ -21,8 +27,31 @@ static PyObject * _testconsole_write_input(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(file), &_Py_ID(s), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"file", "s", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "write_input", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "write_input", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; PyObject *file; PyBytesObject *s; @@ -63,8 +92,31 @@ static PyObject * _testconsole_read_output(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(file), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"file", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "read_output", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "read_output", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject *file; @@ -88,4 +140,4 @@ _testconsole_read_output(PyObject *module, PyObject *const *args, Py_ssize_t nar #ifndef _TESTCONSOLE_READ_OUTPUT_METHODDEF #define _TESTCONSOLE_READ_OUTPUT_METHODDEF #endif /* !defined(_TESTCONSOLE_READ_OUTPUT_METHODDEF) */ -/*[clinic end generated code: output=6e9f8b0766eb5a0e input=a9049054013a1b77]*/ +/*[clinic end generated code: output=208c72e2c873555b input=a9049054013a1b77]*/ diff --git a/PC/clinic/_wmimodule.cpp.h b/PC/clinic/_wmimodule.cpp.h new file mode 100644 index 00000000000000..e2b947f339da60 --- /dev/null +++ b/PC/clinic/_wmimodule.cpp.h @@ -0,0 +1,75 @@ +/*[clinic input] +preserve +[clinic start generated code]*/ + +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + +PyDoc_STRVAR(_wmi_exec_query__doc__, +"exec_query($module, /, query)\n" +"--\n" +"\n" +"Runs a WMI query against the local machine.\n" +"\n" +"This returns a single string with \'name=value\' pairs in a flat array separated\n" +"by null characters."); + +#define _WMI_EXEC_QUERY_METHODDEF \ + {"exec_query", _PyCFunction_CAST(_wmi_exec_query), METH_FASTCALL|METH_KEYWORDS, _wmi_exec_query__doc__}, + +static PyObject * +_wmi_exec_query_impl(PyObject *module, PyObject *query); + +static PyObject * +_wmi_exec_query(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) +{ + PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(query), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + + static const char * const _keywords[] = {"query", NULL}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "exec_query", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE + PyObject *argsbuf[1]; + PyObject *query; + + args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf); + if (!args) { + goto exit; + } + if (!PyUnicode_Check(args[0])) { + _PyArg_BadArgument("exec_query", "argument 'query'", "str", args[0]); + goto exit; + } + if (PyUnicode_READY(args[0]) == -1) { + goto exit; + } + query = args[0]; + return_value = _wmi_exec_query_impl(module, query); + +exit: + return return_value; +} +/*[clinic end generated code: output=7fdf0c0579ddb566 input=a9049054013a1b77]*/ diff --git a/PC/clinic/msvcrtmodule.c.h b/PC/clinic/msvcrtmodule.c.h index ea95897590fe47..d808ef0bbd0ffe 100644 --- a/PC/clinic/msvcrtmodule.c.h +++ b/PC/clinic/msvcrtmodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(msvcrt_heapmin__doc__, "heapmin($module, /)\n" "--\n" @@ -141,8 +147,15 @@ msvcrt_open_osfhandle(PyObject *module, PyObject *const *args, Py_ssize_t nargs) int flags; long _return_value; - if (!_PyArg_ParseStack(args, nargs, ""_Py_PARSE_UINTPTR"i:open_osfhandle", - &handle, &flags)) { + if (!_PyArg_CheckPositional("open_osfhandle", nargs, 2, 2)) { + goto exit; + } + handle = PyLong_AsVoidPtr(args[0]); + if (!handle && PyErr_Occurred()) { + goto exit; + } + flags = _PyLong_AsInt(args[1]); + if (flags == -1 && PyErr_Occurred()) { goto exit; } _return_value = msvcrt_open_osfhandle_impl(module, handle, flags); @@ -488,8 +501,15 @@ msvcrt_CrtSetReportFile(PyObject *module, PyObject *const *args, Py_ssize_t narg void *file; void *_return_value; - if (!_PyArg_ParseStack(args, nargs, "i"_Py_PARSE_UINTPTR":CrtSetReportFile", - &type, &file)) { + if (!_PyArg_CheckPositional("CrtSetReportFile", nargs, 2, 2)) { + goto exit; + } + type = _PyLong_AsInt(args[0]); + if (type == -1 && PyErr_Occurred()) { + goto exit; + } + file = PyLong_AsVoidPtr(args[1]); + if (!file && PyErr_Occurred()) { goto exit; } _return_value = msvcrt_CrtSetReportFile_impl(module, type, file); @@ -647,4 +667,4 @@ msvcrt_SetErrorMode(PyObject *module, PyObject *arg) #ifndef MSVCRT_SET_ERROR_MODE_METHODDEF #define MSVCRT_SET_ERROR_MODE_METHODDEF #endif /* !defined(MSVCRT_SET_ERROR_MODE_METHODDEF) */ -/*[clinic end generated code: output=b543933cad520f2b input=a9049054013a1b77]*/ +/*[clinic end generated code: output=204bae9fee7f6124 input=a9049054013a1b77]*/ diff --git a/PC/clinic/winreg.c.h b/PC/clinic/winreg.c.h index 6af24af539b0b9..dc78274e062b29 100644 --- a/PC/clinic/winreg.c.h +++ b/PC/clinic/winreg.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(winreg_HKEYType_Close__doc__, "Close($self, /)\n" "--\n" @@ -87,8 +93,31 @@ static PyObject * winreg_HKEYType___exit__(PyHKEYObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(exc_type), &_Py_ID(exc_value), &_Py_ID(traceback), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"exc_type", "exc_value", "traceback", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "__exit__", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "__exit__", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; PyObject *exc_type; PyObject *exc_value; @@ -286,18 +315,76 @@ static PyObject * winreg_CreateKeyEx(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 4 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(key), &_Py_ID(sub_key), &_Py_ID(reserved), &_Py_ID(access), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"key", "sub_key", "reserved", "access", NULL}; - static _PyArg_Parser _parser = {"O&O&|ii:CreateKeyEx", _keywords, 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "CreateKeyEx", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE + PyObject *argsbuf[4]; + Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; HKEY key; const Py_UNICODE *sub_key; int reserved = 0; REGSAM access = KEY_WRITE; HKEY _return_value; - if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser, - clinic_HKEY_converter, &key, _PyUnicode_WideCharString_Opt_Converter, &sub_key, &reserved, &access)) { + args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 4, 0, argsbuf); + if (!args) { goto exit; } + if (!clinic_HKEY_converter(args[0], &key)) { + goto exit; + } + if (args[1] == Py_None) { + sub_key = NULL; + } + else if (PyUnicode_Check(args[1])) { + sub_key = PyUnicode_AsWideCharString(args[1], NULL); + if (sub_key == NULL) { + goto exit; + } + } + else { + _PyArg_BadArgument("CreateKeyEx", "argument 'sub_key'", "str or None", args[1]); + goto exit; + } + if (!noptargs) { + goto skip_optional_pos; + } + if (args[2]) { + reserved = _PyLong_AsInt(args[2]); + if (reserved == -1 && PyErr_Occurred()) { + goto exit; + } + if (!--noptargs) { + goto skip_optional_pos; + } + } + access = _PyLong_AsInt(args[3]); + if (access == -1 && PyErr_Occurred()) { + goto exit; + } +skip_optional_pos: _return_value = winreg_CreateKeyEx_impl(module, key, sub_key, reserved, access); if (_return_value == NULL) { goto exit; @@ -370,7 +457,7 @@ PyDoc_STRVAR(winreg_DeleteKeyEx__doc__, " reserved=0)\n" "--\n" "\n" -"Deletes the specified key (64-bit OS only).\n" +"Deletes the specified key (intended for 64-bit OS).\n" "\n" " key\n" " An already open key, or any one of the predefined HKEY_* constants.\n" @@ -384,6 +471,9 @@ PyDoc_STRVAR(winreg_DeleteKeyEx__doc__, " reserved\n" " A reserved integer, and must be zero. Default is zero.\n" "\n" +"While this function is intended to be used for 64-bit OS, it is also\n" +" available on 32-bit systems.\n" +"\n" "This method can not delete keys with subkeys.\n" "\n" "If the function succeeds, the entire key, including all of its values,\n" @@ -402,17 +492,70 @@ static PyObject * winreg_DeleteKeyEx(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 4 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(key), &_Py_ID(sub_key), &_Py_ID(access), &_Py_ID(reserved), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"key", "sub_key", "access", "reserved", NULL}; - static _PyArg_Parser _parser = {"O&O&|ii:DeleteKeyEx", _keywords, 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "DeleteKeyEx", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE + PyObject *argsbuf[4]; + Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; HKEY key; const Py_UNICODE *sub_key; REGSAM access = KEY_WOW64_64KEY; int reserved = 0; - if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser, - clinic_HKEY_converter, &key, _PyUnicode_WideCharString_Converter, &sub_key, &access, &reserved)) { + args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 4, 0, argsbuf); + if (!args) { + goto exit; + } + if (!clinic_HKEY_converter(args[0], &key)) { goto exit; } + if (!PyUnicode_Check(args[1])) { + _PyArg_BadArgument("DeleteKeyEx", "argument 'sub_key'", "str", args[1]); + goto exit; + } + sub_key = PyUnicode_AsWideCharString(args[1], NULL); + if (sub_key == NULL) { + goto exit; + } + if (!noptargs) { + goto skip_optional_pos; + } + if (args[2]) { + access = _PyLong_AsInt(args[2]); + if (access == -1 && PyErr_Occurred()) { + goto exit; + } + if (!--noptargs) { + goto skip_optional_pos; + } + } + reserved = _PyLong_AsInt(args[3]); + if (reserved == -1 && PyErr_Occurred()) { + goto exit; + } +skip_optional_pos: return_value = winreg_DeleteKeyEx_impl(module, key, sub_key, access, reserved); exit: @@ -753,18 +896,76 @@ static PyObject * winreg_OpenKey(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 4 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(key), &_Py_ID(sub_key), &_Py_ID(reserved), &_Py_ID(access), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"key", "sub_key", "reserved", "access", NULL}; - static _PyArg_Parser _parser = {"O&O&|ii:OpenKey", _keywords, 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "OpenKey", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE + PyObject *argsbuf[4]; + Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; HKEY key; const Py_UNICODE *sub_key; int reserved = 0; REGSAM access = KEY_READ; HKEY _return_value; - if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser, - clinic_HKEY_converter, &key, _PyUnicode_WideCharString_Opt_Converter, &sub_key, &reserved, &access)) { + args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 4, 0, argsbuf); + if (!args) { + goto exit; + } + if (!clinic_HKEY_converter(args[0], &key)) { + goto exit; + } + if (args[1] == Py_None) { + sub_key = NULL; + } + else if (PyUnicode_Check(args[1])) { + sub_key = PyUnicode_AsWideCharString(args[1], NULL); + if (sub_key == NULL) { + goto exit; + } + } + else { + _PyArg_BadArgument("OpenKey", "argument 'sub_key'", "str or None", args[1]); + goto exit; + } + if (!noptargs) { + goto skip_optional_pos; + } + if (args[2]) { + reserved = _PyLong_AsInt(args[2]); + if (reserved == -1 && PyErr_Occurred()) { + goto exit; + } + if (!--noptargs) { + goto skip_optional_pos; + } + } + access = _PyLong_AsInt(args[3]); + if (access == -1 && PyErr_Occurred()) { goto exit; } +skip_optional_pos: _return_value = winreg_OpenKey_impl(module, key, sub_key, reserved, access); if (_return_value == NULL) { goto exit; @@ -808,18 +1009,76 @@ static PyObject * winreg_OpenKeyEx(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 4 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(key), &_Py_ID(sub_key), &_Py_ID(reserved), &_Py_ID(access), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"key", "sub_key", "reserved", "access", NULL}; - static _PyArg_Parser _parser = {"O&O&|ii:OpenKeyEx", _keywords, 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "OpenKeyEx", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE + PyObject *argsbuf[4]; + Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; HKEY key; const Py_UNICODE *sub_key; int reserved = 0; REGSAM access = KEY_READ; HKEY _return_value; - if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser, - clinic_HKEY_converter, &key, _PyUnicode_WideCharString_Opt_Converter, &sub_key, &reserved, &access)) { + args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 4, 0, argsbuf); + if (!args) { goto exit; } + if (!clinic_HKEY_converter(args[0], &key)) { + goto exit; + } + if (args[1] == Py_None) { + sub_key = NULL; + } + else if (PyUnicode_Check(args[1])) { + sub_key = PyUnicode_AsWideCharString(args[1], NULL); + if (sub_key == NULL) { + goto exit; + } + } + else { + _PyArg_BadArgument("OpenKeyEx", "argument 'sub_key'", "str or None", args[1]); + goto exit; + } + if (!noptargs) { + goto skip_optional_pos; + } + if (args[2]) { + reserved = _PyLong_AsInt(args[2]); + if (reserved == -1 && PyErr_Occurred()) { + goto exit; + } + if (!--noptargs) { + goto skip_optional_pos; + } + } + access = _PyLong_AsInt(args[3]); + if (access == -1 && PyErr_Occurred()) { + goto exit; + } +skip_optional_pos: _return_value = winreg_OpenKeyEx_impl(module, key, sub_key, reserved, access); if (_return_value == NULL) { goto exit; @@ -1086,10 +1345,36 @@ winreg_SetValue(PyObject *module, PyObject *const *args, Py_ssize_t nargs) DWORD type; PyObject *value_obj; - if (!_PyArg_ParseStack(args, nargs, "O&O&kU:SetValue", - clinic_HKEY_converter, &key, _PyUnicode_WideCharString_Opt_Converter, &sub_key, &type, &value_obj)) { + if (!_PyArg_CheckPositional("SetValue", nargs, 4, 4)) { + goto exit; + } + if (!clinic_HKEY_converter(args[0], &key)) { goto exit; } + if (args[1] == Py_None) { + sub_key = NULL; + } + else if (PyUnicode_Check(args[1])) { + sub_key = PyUnicode_AsWideCharString(args[1], NULL); + if (sub_key == NULL) { + goto exit; + } + } + else { + _PyArg_BadArgument("SetValue", "argument 2", "str or None", args[1]); + goto exit; + } + if (!_PyLong_UnsignedLong_Converter(args[2], &type)) { + goto exit; + } + if (!PyUnicode_Check(args[3])) { + _PyArg_BadArgument("SetValue", "argument 4", "str", args[3]); + goto exit; + } + if (PyUnicode_READY(args[3]) == -1) { + goto exit; + } + value_obj = args[3]; return_value = winreg_SetValue_impl(module, key, sub_key, type, value_obj); exit: @@ -1160,10 +1445,30 @@ winreg_SetValueEx(PyObject *module, PyObject *const *args, Py_ssize_t nargs) DWORD type; PyObject *value; - if (!_PyArg_ParseStack(args, nargs, "O&O&OkO:SetValueEx", - clinic_HKEY_converter, &key, _PyUnicode_WideCharString_Opt_Converter, &value_name, &reserved, &type, &value)) { + if (!_PyArg_CheckPositional("SetValueEx", nargs, 5, 5)) { + goto exit; + } + if (!clinic_HKEY_converter(args[0], &key)) { + goto exit; + } + if (args[1] == Py_None) { + value_name = NULL; + } + else if (PyUnicode_Check(args[1])) { + value_name = PyUnicode_AsWideCharString(args[1], NULL); + if (value_name == NULL) { + goto exit; + } + } + else { + _PyArg_BadArgument("SetValueEx", "argument 2", "str or None", args[1]); + goto exit; + } + reserved = args[2]; + if (!_PyLong_UnsignedLong_Converter(args[3], &type)) { goto exit; } + value = args[4]; return_value = winreg_SetValueEx_impl(module, key, value_name, reserved, type, value); exit: @@ -1274,4 +1579,4 @@ winreg_QueryReflectionKey(PyObject *module, PyObject *arg) exit: return return_value; } -/*[clinic end generated code: output=9782b1630b59e201 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=5dfd7dbce8ccb392 input=a9049054013a1b77]*/ diff --git a/PC/clinic/winsound.c.h b/PC/clinic/winsound.c.h index 9f99b8e400261d..241d547c267a4c 100644 --- a/PC/clinic/winsound.c.h +++ b/PC/clinic/winsound.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(winsound_PlaySound__doc__, "PlaySound($module, /, sound, flags)\n" "--\n" @@ -23,8 +29,31 @@ static PyObject * winsound_PlaySound(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(sound), &_Py_ID(flags), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"sound", "flags", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "PlaySound", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "PlaySound", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; PyObject *sound; int flags; @@ -66,8 +95,31 @@ static PyObject * winsound_Beep(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(frequency), &_Py_ID(duration), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"frequency", "duration", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "Beep", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "Beep", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; int frequency; int duration; @@ -108,8 +160,31 @@ static PyObject * winsound_MessageBeep(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(type), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"type", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "MessageBeep", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "MessageBeep", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int type = MB_OK; @@ -131,4 +206,4 @@ winsound_MessageBeep(PyObject *module, PyObject *const *args, Py_ssize_t nargs, exit: return return_value; } -/*[clinic end generated code: output=b7e53fab4f26aeaf input=a9049054013a1b77]*/ +/*[clinic end generated code: output=f70b7730127208d8 input=a9049054013a1b77]*/ diff --git a/PC/empty.c b/PC/empty.c deleted file mode 100644 index 846b4d0d646217..00000000000000 --- a/PC/empty.c +++ /dev/null @@ -1,6 +0,0 @@ -#include <windows.h> -int __stdcall -WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) -{ - return 0; -} \ No newline at end of file diff --git a/PC/launcher.c b/PC/launcher.c index de7abeb4e86abd..da566a180168c5 100644 --- a/PC/launcher.c +++ b/PC/launcher.c @@ -1926,27 +1926,35 @@ process(int argc, wchar_t ** argv) if (!cch) { error(0, L"Cannot determine memory for home path"); } - cch += (DWORD)wcslen(PYTHON_EXECUTABLE) + 1 + 1; /* include sep and null */ + cch += (DWORD)wcslen(PYTHON_EXECUTABLE) + 4; /* include sep, null and quotes */ executable = (wchar_t *)malloc(cch * sizeof(wchar_t)); if (executable == NULL) { error(RC_NO_MEMORY, L"A memory allocation failed"); } - cch_actual = MultiByteToWideChar(CP_UTF8, 0, start, len, executable, cch); + /* start with a quote - we'll skip this ahead, but want it for the final string */ + executable[0] = L'"'; + cch_actual = MultiByteToWideChar(CP_UTF8, 0, start, len, &executable[1], cch - 1); if (!cch_actual) { error(RC_BAD_VENV_CFG, L"Cannot decode home path in '%ls'", venv_cfg_path); } + cch_actual += 1; /* account for the first quote */ + executable[cch_actual] = L'\0'; if (executable[cch_actual - 1] != L'\\') { executable[cch_actual++] = L'\\'; executable[cch_actual] = L'\0'; } - if (wcscat_s(executable, cch, PYTHON_EXECUTABLE)) { + if (wcscat_s(&executable[1], cch - 1, PYTHON_EXECUTABLE)) { error(RC_BAD_VENV_CFG, L"Cannot create executable path from '%ls'", venv_cfg_path); } - if (GetFileAttributesW(executable) == INVALID_FILE_ATTRIBUTES) { + /* there's no trailing quote, so we only have to skip one character for the test */ + if (GetFileAttributesW(&executable[1]) == INVALID_FILE_ATTRIBUTES) { error(RC_NO_PYTHON, L"No Python at '%ls'", executable); } + /* now append the final quote */ + wcscat_s(executable, cch, L"\""); + /* smuggle our original path through */ if (!SetEnvironmentVariableW(L"__PYVENV_LAUNCHER__", argv0)) { error(0, L"Failed to set launcher environment"); } diff --git a/PC/launcher2.c b/PC/launcher2.c index ae11f4f024a904..23eaa19dde38e8 100644 --- a/PC/launcher2.c +++ b/PC/launcher2.c @@ -36,6 +36,7 @@ #define RC_DUPLICATE_ITEM 110 #define RC_INSTALLING 111 #define RC_NO_PYTHON_AT_ALL 112 +#define RC_NO_SHEBANG 113 static FILE * log_fp = NULL; @@ -392,12 +393,6 @@ typedef struct { // only currently possible high priority environment is an active virtual // environment bool lowPriorityTag; - // if true, we had an old-style tag with '-64' suffix, and so do not - // want to match tags like '3.x-32' - bool exclude32Bit; - // if true, we had an old-style tag with '-32' suffix, and so *only* - // want to match tags like '3.x-32' - bool only32Bit; // if true, allow PEP 514 lookup to override 'executable' bool allowExecutableOverride; // if true, allow a nearby pyvenv.cfg to locate the executable @@ -482,8 +477,6 @@ dumpSearchInfo(SearchInfo *search) DEBUG_2(tag, tagLength); DEBUG_BOOL(oldStyleTag); DEBUG_BOOL(lowPriorityTag); - DEBUG_BOOL(exclude32Bit); - DEBUG_BOOL(only32Bit); DEBUG_BOOL(allowDefaults); DEBUG_BOOL(allowExecutableOverride); DEBUG_BOOL(windowed); @@ -580,6 +573,9 @@ parseCommandLine(SearchInfo *search) break; } } + if (tail == search->originalCmdLine && tail[0] == L'"') { + ++tail; + } // Without special cases, we can now fill in the search struct int tailLen = (int)(end ? (end - tail) : wcsnlen_s(tail, MAXLEN)); search->executableLength = -1; @@ -645,17 +641,6 @@ parseCommandLine(SearchInfo *search) search->tagLength = argLen; search->oldStyleTag = true; search->restOfCmdLine = tail; - // If the tag ends with -64, we want to exclude 32-bit runtimes - // (If the tag ends with -32, it will be filtered later) - if (argLen > 3) { - if (0 == _compareArgument(&arg[argLen - 3], 3, L"-64", 3)) { - search->tagLength -= 3; - search->exclude32Bit = true; - } else if (0 == _compareArgument(&arg[argLen - 3], 3, L"-32", 3)) { - search->tagLength -= 3; - search->only32Bit = true; - } - } } else if (STARTSWITH(L"V:") || STARTSWITH(L"-version:")) { // Arguments starting with 'V:' specify company and/or tag const wchar_t *argStart = wcschr(arg, L':') + 1; @@ -747,6 +732,88 @@ _shebangStartsWith(const wchar_t *buffer, int bufferLength, const wchar_t *prefi } +int +searchPath(SearchInfo *search, const wchar_t *shebang, int shebangLength) +{ + if (isEnvVarSet(L"PYLAUNCHER_NO_SEARCH_PATH")) { + return RC_NO_SHEBANG; + } + + wchar_t *command; + if (!_shebangStartsWith(shebang, shebangLength, L"/usr/bin/env ", &command)) { + return RC_NO_SHEBANG; + } + + wchar_t filename[MAXLEN]; + int lastDot = 0; + int commandLength = 0; + while (commandLength < MAXLEN && command[commandLength] && !isspace(command[commandLength])) { + if (command[commandLength] == L'.') { + lastDot = commandLength; + } + filename[commandLength] = command[commandLength]; + commandLength += 1; + } + + if (!commandLength || commandLength == MAXLEN) { + return RC_BAD_VIRTUAL_PATH; + } + + filename[commandLength] = L'\0'; + + const wchar_t *ext = L".exe"; + // If the command already has an extension, we do not want to add it again + if (!lastDot || _comparePath(&filename[lastDot], -1, ext, -1)) { + if (wcscat_s(filename, MAXLEN, L".exe")) { + return RC_BAD_VIRTUAL_PATH; + } + } + + wchar_t pathVariable[MAXLEN]; + int n = GetEnvironmentVariableW(L"PATH", pathVariable, MAXLEN); + if (!n) { + if (GetLastError() == ERROR_ENVVAR_NOT_FOUND) { + return RC_NO_SHEBANG; + } + winerror(0, L"Failed to read PATH\n", filename); + return RC_INTERNAL_ERROR; + } + + wchar_t buffer[MAXLEN]; + n = SearchPathW(pathVariable, filename, NULL, MAXLEN, buffer, NULL); + if (!n) { + if (GetLastError() == ERROR_FILE_NOT_FOUND) { + debug(L"# Did not find %s on PATH\n", filename); + // If we didn't find it on PATH, let normal handling take over + return RC_NO_SHEBANG; + } + // Other errors should cause us to break + winerror(0, L"Failed to find %s on PATH\n", filename); + return RC_BAD_VIRTUAL_PATH; + } + + // Check that we aren't going to call ourselves again + // If we are, pretend there was no shebang and let normal handling take over + if (GetModuleFileNameW(NULL, filename, MAXLEN) && + 0 == _comparePath(filename, -1, buffer, -1)) { + debug(L"# ignoring recursive shebang command\n"); + return RC_NO_SHEBANG; + } + + wchar_t *buf = allocSearchInfoBuffer(search, n + 1); + if (!buf || wcscpy_s(buf, n + 1, buffer)) { + return RC_NO_MEMORY; + } + + search->executablePath = buf; + search->executableArgs = &command[commandLength]; + search->executableArgsLength = shebangLength - commandLength; + debug(L"# Found %s on PATH\n", buf); + + return 0; +} + + int _readIni(const wchar_t *section, const wchar_t *settingName, wchar_t *buffer, int bufferLength) { @@ -758,7 +825,7 @@ _readIni(const wchar_t *section, const wchar_t *settingName, wchar_t *buffer, in n = GetPrivateProfileStringW(section, settingName, NULL, buffer, bufferLength, iniPath); if (n) { debug(L"# Found %s in %s\n", settingName, iniPath); - return true; + return n; } else if (GetLastError() == ERROR_FILE_NOT_FOUND) { debug(L"# Did not find file %s\n", iniPath); } else { @@ -874,12 +941,20 @@ checkShebang(SearchInfo *search) while (--bytesRead > 0 && *++b != '\r' && *b != '\n') { } wchar_t *shebang; int shebangLength; - int exitCode = _decodeShebang(search, start, (int)(b - start + 1), onlyUtf8, &shebang, &shebangLength); + // We add 1 when bytesRead==0, as in that case we hit EOF and b points + // to the last character in the file, not the newline + int exitCode = _decodeShebang(search, start, (int)(b - start + (bytesRead == 0)), onlyUtf8, &shebang, &shebangLength); if (exitCode) { return exitCode; } debug(L"Shebang: %s\n", shebang); + // Handle shebangs that we should search PATH for + exitCode = searchPath(search, shebang, shebangLength); + if (exitCode != RC_NO_SHEBANG) { + return exitCode; + } + // Handle some known, case-sensitive shebang templates const wchar_t *command; int commandLength; @@ -890,6 +965,7 @@ checkShebang(SearchInfo *search) L"", NULL }; + for (const wchar_t **tmpl = shebangTemplates; *tmpl; ++tmpl) { if (_shebangStartsWith(shebang, shebangLength, *tmpl, &command)) { commandLength = 0; @@ -905,6 +981,22 @@ checkShebang(SearchInfo *search) } else if (_shebangStartsWith(command, commandLength, L"python", NULL)) { search->tag = &command[6]; search->tagLength = commandLength - 6; + // If we had 'python3.12.exe' then we want to strip the suffix + // off of the tag + if (search->tagLength > 4) { + const wchar_t *suffix = &search->tag[search->tagLength - 4]; + if (0 == _comparePath(suffix, 4, L".exe", -1)) { + search->tagLength -= 4; + } + } + // If we had 'python3_d' then we want to strip the '_d' (any + // '.exe' is already gone) + if (search->tagLength > 2) { + const wchar_t *suffix = &search->tag[search->tagLength - 2]; + if (0 == _comparePath(suffix, 2, L"_d", -1)) { + search->tagLength -= 2; + } + } search->oldStyleTag = true; search->executableArgs = &command[commandLength]; search->executableArgsLength = shebangLength - commandLength; @@ -941,13 +1033,17 @@ checkDefaults(SearchInfo *search) // If tag is only a major version number, expand it from the environment // or an ini file - const wchar_t *settingName = NULL; + const wchar_t *iniSettingName = NULL; + const wchar_t *envSettingName = NULL; if (!search->tag || !search->tagLength) { - settingName = L"py_python"; + iniSettingName = L"python"; + envSettingName = L"py_python"; } else if (0 == wcsncmp(search->tag, L"3", search->tagLength)) { - settingName = L"py_python3"; + iniSettingName = L"python3"; + envSettingName = L"py_python3"; } else if (0 == wcsncmp(search->tag, L"2", search->tagLength)) { - settingName = L"py_python2"; + iniSettingName = L"python2"; + envSettingName = L"py_python2"; } else { debug(L"# Cannot select defaults for tag '%.*s'\n", search->tagLength, search->tag); return 0; @@ -955,11 +1051,11 @@ checkDefaults(SearchInfo *search) // First, try to read an environment variable wchar_t buffer[MAXLEN]; - int n = GetEnvironmentVariableW(settingName, buffer, MAXLEN); + int n = GetEnvironmentVariableW(envSettingName, buffer, MAXLEN); // If none found, check in our two .ini files instead if (!n) { - n = _readIni(L"defaults", settingName, buffer, MAXLEN); + n = _readIni(L"defaults", iniSettingName, buffer, MAXLEN); } if (n) { @@ -972,6 +1068,7 @@ checkDefaults(SearchInfo *search) if (!slash) { search->tag = tag; search->tagLength = n; + search->oldStyleTag = true; } else { search->company = tag; search->companyLength = (int)(slash - tag); @@ -1851,10 +1948,25 @@ _selectEnvironment(const SearchInfo *search, EnvironmentInfo *env, EnvironmentIn } } else if (0 == _compare(env->company, -1, L"PythonCore", -1)) { // Old-style tags can only match PythonCore entries - if (_startsWith(env->tag, -1, search->tag, search->tagLength)) { - if (search->exclude32Bit && _is32Bit(env)) { + + // If the tag ends with -64, we want to exclude 32-bit runtimes + // (If the tag ends with -32, it will be filtered later) + int tagLength = search->tagLength; + bool exclude32Bit = false, only32Bit = false; + if (tagLength > 3) { + if (0 == _compareArgument(&search->tag[tagLength - 3], 3, L"-64", 3)) { + tagLength -= 3; + exclude32Bit = true; + } else if (0 == _compareArgument(&search->tag[tagLength - 3], 3, L"-32", 3)) { + tagLength -= 3; + only32Bit = true; + } + } + + if (_startsWith(env->tag, -1, search->tag, tagLength)) { + if (exclude32Bit && _is32Bit(env)) { debug(L"# Excluding %s/%s because it looks like 32bit\n", env->company, env->tag); - } else if (search->only32Bit && !_is32Bit(env)) { + } else if (only32Bit && !_is32Bit(env)) { debug(L"# Excluding %s/%s because it doesn't look 32bit\n", env->company, env->tag); } else { *best = env; diff --git a/PC/layout/main.py b/PC/layout/main.py index 8e69ecc2591214..923483ad4a3f71 100644 --- a/PC/layout/main.py +++ b/PC/layout/main.py @@ -8,11 +8,8 @@ __version__ = "3.8" import argparse -import functools import os -import re import shutil -import subprocess import sys import tempfile import zipfile diff --git a/PC/layout/support/appxmanifest.py b/PC/layout/support/appxmanifest.py index 427a36f31c8f9e..1fb03380278f43 100644 --- a/PC/layout/support/appxmanifest.py +++ b/PC/layout/support/appxmanifest.py @@ -6,13 +6,11 @@ __version__ = "3.8" -import collections import ctypes import io import os -import sys -from pathlib import Path, PureWindowsPath +from pathlib import PureWindowsPath from xml.etree import ElementTree as ET from .constants import * @@ -88,7 +86,8 @@ } APPXMANIFEST_TEMPLATE = """<?xml version="1.0" encoding="utf-8"?> -<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" +<Package IgnorableNamespaces="desktop4 desktop6" + xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities" xmlns:rescap4="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities/4" diff --git a/PC/layout/support/catalog.py b/PC/layout/support/catalog.py index 43121187ed180c..c9d87cb89484c2 100644 --- a/PC/layout/support/catalog.py +++ b/PC/layout/support/catalog.py @@ -6,8 +6,6 @@ __version__ = "3.8" -import sys - __all__ = ["PYTHON_CAT_NAME", "PYTHON_CDF_NAME"] diff --git a/PC/layout/support/constants.py b/PC/layout/support/constants.py index 6efd8bcd5cbb5e..8195c3dc30cdc7 100644 --- a/PC/layout/support/constants.py +++ b/PC/layout/support/constants.py @@ -6,7 +6,6 @@ __version__ = "3.8" import os -import re import struct import sys diff --git a/PC/msvcrtmodule.c b/PC/msvcrtmodule.c index 1f78d99c790ff9..988d9c95aaa22e 100644 --- a/PC/msvcrtmodule.c +++ b/PC/msvcrtmodule.c @@ -38,6 +38,14 @@ class HANDLE_converter(CConverter): type = 'void *' format_unit = '"_Py_PARSE_UINTPTR"' + def parse_arg(self, argname, displayname): + return """ + {paramname} = PyLong_AsVoidPtr({argname}); + if (!{paramname} && PyErr_Occurred()) {{{{ + goto exit; + }}}} + """.format(argname=argname, paramname=self.parser_name) + class HANDLE_return_converter(CReturnConverter): type = 'void *' @@ -66,7 +74,7 @@ class wchar_t_return_converter(CReturnConverter): data.return_conversion.append( 'return_value = PyUnicode_FromOrdinal(_return_value);\n') [python start generated code]*/ -/*[python end generated code: output=da39a3ee5e6b4b0d input=d102511df3cda2eb]*/ +/*[python end generated code: output=da39a3ee5e6b4b0d input=1e8e9fa3538ec08f]*/ /*[clinic input] module msvcrt diff --git a/PC/pyconfig.h b/PC/pyconfig.h index 2ddd5847f9c8a7..1a33d4c5a1e4fc 100644 --- a/PC/pyconfig.h +++ b/PC/pyconfig.h @@ -113,20 +113,30 @@ WIN32 is still required for the locale module. #define MS_WIN64 #endif -/* set the COMPILER */ +/* set the COMPILER and support tier + * + * win_amd64 MSVC (x86_64-pc-windows-msvc): 1 + * win32 MSVC (i686-pc-windows-msvc): 1 + * win_arm64 MSVC (aarch64-pc-windows-msvc): 3 + * other archs and ICC: 0 + */ #ifdef MS_WIN64 #if defined(_M_X64) || defined(_M_AMD64) #if defined(__INTEL_COMPILER) #define COMPILER ("[ICC v." _Py_STRINGIZE(__INTEL_COMPILER) " 64 bit (amd64) with MSC v." _Py_STRINGIZE(_MSC_VER) " CRT]") +#define PY_SUPPORT_TIER 0 #else #define COMPILER _Py_PASTE_VERSION("64 bit (AMD64)") +#define PY_SUPPORT_TIER 1 #endif /* __INTEL_COMPILER */ #define PYD_PLATFORM_TAG "win_amd64" #elif defined(_M_ARM64) #define COMPILER _Py_PASTE_VERSION("64 bit (ARM64)") +#define PY_SUPPORT_TIER 3 #define PYD_PLATFORM_TAG "win_arm64" #else #define COMPILER _Py_PASTE_VERSION("64 bit (Unknown)") +#define PY_SUPPORT_TIER 0 #endif #endif /* MS_WIN64 */ @@ -173,15 +183,19 @@ typedef _W64 int Py_ssize_t; #if defined(_M_IX86) #if defined(__INTEL_COMPILER) #define COMPILER ("[ICC v." _Py_STRINGIZE(__INTEL_COMPILER) " 32 bit (Intel) with MSC v." _Py_STRINGIZE(_MSC_VER) " CRT]") +#define PY_SUPPORT_TIER 0 #else #define COMPILER _Py_PASTE_VERSION("32 bit (Intel)") +#define PY_SUPPORT_TIER 1 #endif /* __INTEL_COMPILER */ #define PYD_PLATFORM_TAG "win32" #elif defined(_M_ARM) #define COMPILER _Py_PASTE_VERSION("32 bit (ARM)") #define PYD_PLATFORM_TAG "win_arm32" +#define PY_SUPPORT_TIER 0 #else #define COMPILER _Py_PASTE_VERSION("32 bit (Unknown)") +#define PY_SUPPORT_TIER 0 #endif #endif /* MS_WIN32 && !MS_WIN64 */ @@ -661,8 +675,28 @@ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */ /* Define to 1 if you have the `erfc' function. */ #define HAVE_ERFC 1 -/* Define if you have the 'inet_pton' function. */ +// netdb.h functions (provided by winsock.h) +#define HAVE_GETHOSTNAME 1 +#define HAVE_GETHOSTBYADDR 1 +#define HAVE_GETHOSTBYNAME 1 +#define HAVE_GETPROTOBYNAME 1 +#define HAVE_GETSERVBYNAME 1 +#define HAVE_GETSERVBYPORT 1 +// sys/socket.h functions (provided by winsock.h) #define HAVE_INET_PTON 1 +#define HAVE_INET_NTOA 1 +#define HAVE_ACCEPT 1 +#define HAVE_BIND 1 +#define HAVE_CONNECT 1 +#define HAVE_GETSOCKNAME 1 +#define HAVE_LISTEN 1 +#define HAVE_RECVFROM 1 +#define HAVE_SENDTO 1 +#define HAVE_SETSOCKOPT 1 +#define HAVE_SOCKET 1 + +/* Define to 1 if you have the `dup' function. */ +#define HAVE_DUP 1 /* framework name */ #define _PYTHONFRAMEWORK "" diff --git a/PC/python3dll.c b/PC/python3dll.c index 024ec49d68d797..89bbd05932b853 100755 --- a/PC/python3dll.c +++ b/PC/python3dll.c @@ -723,6 +723,8 @@ EXPORT_FUNC(PyUnicodeTranslateError_GetStart) EXPORT_FUNC(PyUnicodeTranslateError_SetEnd) EXPORT_FUNC(PyUnicodeTranslateError_SetReason) EXPORT_FUNC(PyUnicodeTranslateError_SetStart) +EXPORT_FUNC(PyVectorcall_Call) +EXPORT_FUNC(PyVectorcall_NARGS) EXPORT_FUNC(PyWeakref_GetObject) EXPORT_FUNC(PyWeakref_NewProxy) EXPORT_FUNC(PyWeakref_NewRef) diff --git a/PC/readme.txt b/PC/readme.txt index 4e6dcf98c937f4..bef5111c591825 100644 --- a/PC/readme.txt +++ b/PC/readme.txt @@ -51,12 +51,6 @@ config.c The list of C modules to include in the Python PC version. Manually edit this file to add or remove Python modules. -testpy.py A Python test program. Run this to test your - Python port. It should produce copious output, - ending in a report on how many tests were OK, how many - failed, and how many were skipped. Don't worry about - skipped tests (these test unavailable optional features). - Additional files and subdirectories for 32-bit Windows ====================================================== diff --git a/PC/testpy.py b/PC/testpy.py deleted file mode 100644 index 709f35c4525877..00000000000000 --- a/PC/testpy.py +++ /dev/null @@ -1,30 +0,0 @@ -import sys - -# This is a test module for Python. It looks in the standard -# places for various *.py files. If these are moved, you must -# change this module too. - -try: - import os -except: - print("""Could not import the standard "os" module. - Please check your PYTHONPATH environment variable.""") - sys.exit(1) - -try: - import symbol -except: - print("""Could not import the standard "symbol" module. If this is - a PC, you should add the dos_8x3 directory to your PYTHONPATH.""") - sys.exit(1) - -for dir in sys.path: - file = os.path.join(dir, "os.py") - if os.path.isfile(file): - test = os.path.join(dir, "test") - if os.path.isdir(test): - # Add the "test" directory to PYTHONPATH. - sys.path = sys.path + [test] - -import libregrtest # Standard Python tester. -libregrtest.main() diff --git a/PC/winreg.c b/PC/winreg.c index 92d05f5144a3ca..6ae0d8169cc56b 100644 --- a/PC/winreg.c +++ b/PC/winreg.c @@ -217,13 +217,11 @@ class winreg.HKEYType "PyHKEYObject *" "&PyHKEY_Type" /*[clinic end generated code: output=da39a3ee5e6b4b0d input=4c964eba3bf914d6]*/ /*[python input] -class REGSAM_converter(CConverter): +class REGSAM_converter(int_converter): type = 'REGSAM' - format_unit = 'i' -class DWORD_converter(CConverter): +class DWORD_converter(unsigned_long_converter): type = 'DWORD' - format_unit = 'k' class HKEY_converter(CConverter): type = 'HKEY' @@ -249,7 +247,7 @@ class self_return_converter(CReturnConverter): data.return_conversion.append( 'return_value = (PyObject *)_return_value;\n') [python start generated code]*/ -/*[python end generated code: output=da39a3ee5e6b4b0d input=22f7aedc6d68e80e]*/ +/*[python end generated code: output=da39a3ee5e6b4b0d input=2ebb7a4922d408d6]*/ #include "clinic/winreg.c.h" @@ -981,7 +979,9 @@ winreg_DeleteKey_impl(PyObject *module, HKEY key, const Py_UNICODE *sub_key) (Py_ssize_t)0) < 0) { return NULL; } - rc = RegDeleteKeyW(key, sub_key ); + Py_BEGIN_ALLOW_THREADS + rc = RegDeleteKeyW(key, sub_key); + Py_END_ALLOW_THREADS if (rc != ERROR_SUCCESS) return PyErr_SetFromWindowsErrWithFunction(rc, "RegDeleteKey"); Py_RETURN_NONE; @@ -1002,7 +1002,10 @@ winreg.DeleteKeyEx reserved: int = 0 A reserved integer, and must be zero. Default is zero. -Deletes the specified key (64-bit OS only). +Deletes the specified key (intended for 64-bit OS). + +While this function is intended to be used for 64-bit OS, it is also + available on 32-bit systems. This method can not delete keys with subkeys. @@ -1015,34 +1018,17 @@ static PyObject * winreg_DeleteKeyEx_impl(PyObject *module, HKEY key, const Py_UNICODE *sub_key, REGSAM access, int reserved) -/*[clinic end generated code: output=52a1c8b374ebc003 input=711d9d89e7ecbed7]*/ +/*[clinic end generated code: output=52a1c8b374ebc003 input=a3186db079b3bf85]*/ { - HMODULE hMod; - typedef LONG (WINAPI *RDKEFunc)(HKEY, const wchar_t*, REGSAM, int); - RDKEFunc pfn = NULL; long rc; - if (PySys_Audit("winreg.DeleteKey", "nun", (Py_ssize_t)key, sub_key, (Py_ssize_t)access) < 0) { return NULL; } - /* Only available on 64bit platforms, so we must load it - dynamically. */ Py_BEGIN_ALLOW_THREADS - hMod = GetModuleHandleW(L"advapi32.dll"); - if (hMod) - pfn = (RDKEFunc)GetProcAddress(hMod, "RegDeleteKeyExW"); + rc = RegDeleteKeyExW(key, sub_key, access, reserved); Py_END_ALLOW_THREADS - if (!pfn) { - PyErr_SetString(PyExc_NotImplementedError, - "not implemented on this platform"); - return NULL; - } - Py_BEGIN_ALLOW_THREADS - rc = (*pfn)(key, sub_key, access, reserved); - Py_END_ALLOW_THREADS - if (rc != ERROR_SUCCESS) return PyErr_SetFromWindowsErrWithFunction(rc, "RegDeleteKeyEx"); Py_RETURN_NONE; diff --git a/PCbuild/_freeze_module.vcxproj b/PCbuild/_freeze_module.vcxproj index 0a74f5850a1e8e..39939a7ba98345 100644 --- a/PCbuild/_freeze_module.vcxproj +++ b/PCbuild/_freeze_module.vcxproj @@ -120,7 +120,6 @@ <ClCompile Include="..\Modules\_io\textio.c" /> <ClCompile Include="..\Modules\_io\winconsoleio.c" /> <ClCompile Include="..\Objects\abstract.c" /> - <ClCompile Include="..\Objects\accu.c" /> <ClCompile Include="..\Objects\boolobject.c" /> <ClCompile Include="..\Objects\bytearrayobject.c" /> <ClCompile Include="..\Objects\bytes_methods.c" /> @@ -130,6 +129,7 @@ <ClCompile Include="..\Objects\cellobject.c" /> <ClCompile Include="..\Objects\classobject.c" /> <ClCompile Include="..\Objects\codeobject.c" /> + <ClCompile Include="..\Objects\perf_trampoline.c" /> <ClCompile Include="..\Objects\complexobject.c" /> <ClCompile Include="..\Objects\descrobject.c" /> <ClCompile Include="..\Objects\dictobject.c" /> @@ -200,6 +200,7 @@ <ClCompile Include="..\Python\getopt.c" /> <ClCompile Include="..\Python\getplatform.c" /> <ClCompile Include="..\Python\getversion.c" /> + <ClCompile Include="..\Python\ceval_gil.c" /> <ClCompile Include="..\Python\hamt.c" /> <ClCompile Include="..\Python\hashtable.c" /> <ClCompile Include="..\Python\import.c" /> @@ -424,6 +425,10 @@ <Target Name="_CleanFrozen" BeforeTargets="CoreClean" Condition="$(Configuration) != 'PGUpdate'"> <ItemGroup> <Clean Include="%(None.IntFile)" /> + <Clean Include="%(None.OutFile)" /> + <Clean Include="%(GetPath.IntFile)" /> + <Clean Include="%(GetPath.OutFile)" /> + <Clean Include="$(PySourcePath)Python\deepfreeze\deepfreeze.c" /> </ItemGroup> </Target> </Project> diff --git a/PCbuild/_freeze_module.vcxproj.filters b/PCbuild/_freeze_module.vcxproj.filters index d107849c856213..96ab2f2a4aac7d 100644 --- a/PCbuild/_freeze_module.vcxproj.filters +++ b/PCbuild/_freeze_module.vcxproj.filters @@ -25,9 +25,6 @@ <ClCompile Include="..\Objects\abstract.c"> <Filter>Source Files</Filter> </ClCompile> - <ClCompile Include="..\Objects\accu.c"> - <Filter>Source Files</Filter> - </ClCompile> <ClCompile Include="..\Python\asdl.c"> <Filter>Source Files</Filter> </ClCompile> @@ -88,6 +85,9 @@ <ClCompile Include="..\Objects\codeobject.c"> <Filter>Source Files</Filter> </ClCompile> + <ClCompile Include="..\Objects\perf_trampoline.c"> + <Filter>Source Files</Filter> + </ClCompile> <ClCompile Include="..\Python\compile.c"> <Filter>Source Files</Filter> </ClCompile> @@ -187,6 +187,9 @@ <ClCompile Include="..\Python\getversion.c"> <Filter>Source Files</Filter> </ClCompile> + <ClCompile Include="..\Python\ceval_gil.c"> + <Filter>Source Files</Filter> + </ClCompile> <ClCompile Include="..\Python\hamt.c"> <Filter>Source Files</Filter> </ClCompile> @@ -476,4 +479,4 @@ </None> <!-- END frozen modules --> </ItemGroup> -</Project> \ No newline at end of file +</Project> diff --git a/PCbuild/_sqlite3.vcxproj b/PCbuild/_sqlite3.vcxproj index 804aa07367a024..57c7413671e54e 100644 --- a/PCbuild/_sqlite3.vcxproj +++ b/PCbuild/_sqlite3.vcxproj @@ -94,7 +94,7 @@ <ItemDefinitionGroup> <ClCompile> <AdditionalIncludeDirectories>$(sqlite3Dir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>PY_SQLITE_HAVE_SERIALIZE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>PY_SQLITE_HAVE_SERIALIZE;PY_SQLITE_ENABLE_LOAD_EXTENSION;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> </ItemDefinitionGroup> <ItemGroup> diff --git a/PCbuild/_testcapi.vcxproj b/PCbuild/_testcapi.vcxproj index c1a19437253b7e..b7d40c8cdc30eb 100644 --- a/PCbuild/_testcapi.vcxproj +++ b/PCbuild/_testcapi.vcxproj @@ -94,6 +94,10 @@ </PropertyGroup> <ItemGroup> <ClCompile Include="..\Modules\_testcapimodule.c" /> + <ClCompile Include="..\Modules\_testcapi\vectorcall.c" /> + <ClCompile Include="..\Modules\_testcapi\vectorcall_limited.c" /> + <ClCompile Include="..\Modules\_testcapi\heaptype.c" /> + <ClCompile Include="..\Modules\_testcapi\unicode.c" /> </ItemGroup> <ItemGroup> <ResourceCompile Include="..\PC\python_nt.rc" /> @@ -103,6 +107,10 @@ <Project>{cf7ac3d1-e2df-41d2-bea6-1e2556cdea26}</Project> <ReferenceOutputAssembly>false</ReferenceOutputAssembly> </ProjectReference> + <ProjectReference Include="python3dll.vcxproj"> + <Project>{885d4898-d08d-4091-9c40-c700cfe3fc5a}</Project> + <ReferenceOutputAssembly>false</ReferenceOutputAssembly> + </ProjectReference> </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> diff --git a/PCbuild/_testcapi.vcxproj.filters b/PCbuild/_testcapi.vcxproj.filters index 53f64b7aa1e1a2..fc2c4345fe142e 100644 --- a/PCbuild/_testcapi.vcxproj.filters +++ b/PCbuild/_testcapi.vcxproj.filters @@ -12,6 +12,18 @@ <ClCompile Include="..\Modules\_testcapimodule.c"> <Filter>Source Files</Filter> </ClCompile> + <ClCompile Include="..\Modules\_testcapi\vectorcall.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\Modules\_testcapi\vectorcall_limited.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\Modules\_testcapi\heaptype.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\Modules\_testcapi\unicode.c"> + <Filter>Source Files</Filter> + </ClCompile> </ItemGroup> <ItemGroup> <ResourceCompile Include="..\PC\python_nt.rc"> diff --git a/PCbuild/_wmi.vcxproj b/PCbuild/_wmi.vcxproj new file mode 100644 index 00000000000000..c1914a3fa5a1bf --- /dev/null +++ b/PCbuild/_wmi.vcxproj @@ -0,0 +1,119 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|ARM"> + <Configuration>Debug</Configuration> + <Platform>ARM</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|ARM64"> + <Configuration>Debug</Configuration> + <Platform>ARM64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="PGInstrument|ARM"> + <Configuration>PGInstrument</Configuration> + <Platform>ARM</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="PGInstrument|ARM64"> + <Configuration>PGInstrument</Configuration> + <Platform>ARM64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="PGInstrument|Win32"> + <Configuration>PGInstrument</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="PGInstrument|x64"> + <Configuration>PGInstrument</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="PGUpdate|ARM"> + <Configuration>PGUpdate</Configuration> + <Platform>ARM</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="PGUpdate|ARM64"> + <Configuration>PGUpdate</Configuration> + <Platform>ARM64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="PGUpdate|Win32"> + <Configuration>PGUpdate</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="PGUpdate|x64"> + <Configuration>PGUpdate</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|ARM"> + <Configuration>Release</Configuration> + <Platform>ARM</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|ARM64"> + <Configuration>Release</Configuration> + <Platform>ARM64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{54B1431F-B86B-4ACB-B28C-88BCF93191D8}</ProjectGuid> + <RootNamespace>_wmi</RootNamespace> + <Keyword>Win32Proj</Keyword> + <SupportPGO>false</SupportPGO> + </PropertyGroup> + <Import Project="python.props" /> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>NotSet</CharacterSet> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <PropertyGroup> + <TargetExt>.pyd</TargetExt> + </PropertyGroup> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="pyproject.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion> + </PropertyGroup> + <ItemDefinitionGroup> + <ClCompile> + <AdditionalOptions>/std:c++20 %(AdditionalOptions)</AdditionalOptions> + </ClCompile> + <Link> + <AdditionalDependencies>wbemuuid.lib;propsys.lib;%(AdditionalDependencies)</AdditionalDependencies> + <DelayLoadDLLs>ole32.dll</DelayLoadDLLs> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="..\PC\_wmimodule.cpp" /> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="..\PC\python_nt.rc" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="pythoncore.vcxproj"> + <Project>{cf7ac3d1-e2df-41d2-bea6-1e2556cdea26}</Project> + <ReferenceOutputAssembly>false</ReferenceOutputAssembly> + </ProjectReference> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/PCbuild/_wmi.vcxproj.filters b/PCbuild/_wmi.vcxproj.filters new file mode 100644 index 00000000000000..fa8046237a0b71 --- /dev/null +++ b/PCbuild/_wmi.vcxproj.filters @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{4fa4dbfa-e069-4ab4-86a6-ad389b2ec407}</UniqueIdentifier> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\PC\_wmimodule.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="..\PC\python_nt.rc"> + <Filter>Resource Files</Filter> + </ResourceCompile> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/PCbuild/find_python.bat b/PCbuild/find_python.bat index fc1049c5508187..11d6cba7a172c9 100644 --- a/PCbuild/find_python.bat +++ b/PCbuild/find_python.bat @@ -39,10 +39,10 @@ @if exist "%_Py_EXTERNALS_DIR%\pythonx86\tools\python.exe" ("%_Py_EXTERNALS_DIR%\pythonx86\tools\python.exe" -Ec "import sys; assert sys.version_info[:2] >= (3, 8)" >nul 2>nul) && (set PYTHON="%_Py_EXTERNALS_DIR%\pythonx86\tools\python.exe") && (set _Py_Python_Source=found in externals directory) && goto :found || rmdir /Q /S "%_Py_EXTERNALS_DIR%\pythonx86" @rem If HOST_PYTHON is recent enough, use that -@if NOT "%HOST_PYTHON%"=="" @%HOST_PYTHON% -Ec "import sys; assert sys.version_info[:2] >= (3, 8)" >nul 2>nul && (set PYTHON="%HOST_PYTHON%") && (set _Py_Python_Source=found as HOST_PYTHON) && goto :found +@if NOT "%HOST_PYTHON%"=="" @%HOST_PYTHON% -Ec "import sys; assert sys.version_info[:2] >= (3, 9)" >nul 2>nul && (set PYTHON="%HOST_PYTHON%") && (set _Py_Python_Source=found as HOST_PYTHON) && goto :found @rem If py.exe finds a recent enough version, use that one -@for %%p in (3.10 3.9 3.8) do @py -%%p -EV >nul 2>&1 && (set PYTHON=py -%%p) && (set _Py_Python_Source=found %%p with py.exe) && goto :found +@for %%p in (3.10 3.9) do @py -%%p -EV >nul 2>&1 && (set PYTHON=py -%%p) && (set _Py_Python_Source=found %%p with py.exe) && goto :found @if NOT exist "%_Py_EXTERNALS_DIR%" mkdir "%_Py_EXTERNALS_DIR%" @set _Py_NUGET=%NUGET% diff --git a/PCbuild/get_externals.bat b/PCbuild/get_externals.bat index d2934451798858..cd211f13e355e5 100644 --- a/PCbuild/get_externals.bat +++ b/PCbuild/get_externals.bat @@ -53,7 +53,7 @@ echo.Fetching external libraries... set libraries= set libraries=%libraries% bzip2-1.0.8 if NOT "%IncludeLibffiSrc%"=="false" set libraries=%libraries% libffi-3.4.2 -if NOT "%IncludeSSLSrc%"=="false" set libraries=%libraries% openssl-1.1.1n +if NOT "%IncludeSSLSrc%"=="false" set libraries=%libraries% openssl-1.1.1q set libraries=%libraries% sqlite-3.38.4.0 if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tcl-core-8.6.12.1 if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tk-8.6.12.1 @@ -77,7 +77,7 @@ echo.Fetching external binaries... set binaries= if NOT "%IncludeLibffi%"=="false" set binaries=%binaries% libffi-3.4.2 -if NOT "%IncludeSSL%"=="false" set binaries=%binaries% openssl-bin-1.1.1n +if NOT "%IncludeSSL%"=="false" set binaries=%binaries% openssl-bin-1.1.1q if NOT "%IncludeTkinter%"=="false" set binaries=%binaries% tcltk-8.6.12.1 if NOT "%IncludeSSLSrc%"=="false" set binaries=%binaries% nasm-2.11.06 diff --git a/PCbuild/lib.pyproj b/PCbuild/lib.pyproj index 43c570f1dab37a..e8c99f6b246c82 100644 --- a/PCbuild/lib.pyproj +++ b/PCbuild/lib.pyproj @@ -83,59 +83,6 @@ <Compile Include="ctypes\macholib\dylib.py" /> <Compile Include="ctypes\macholib\framework.py" /> <Compile Include="ctypes\macholib\__init__.py" /> - <Compile Include="ctypes\test\test_anon.py" /> - <Compile Include="ctypes\test\test_arrays.py" /> - <Compile Include="ctypes\test\test_array_in_pointer.py" /> - <Compile Include="ctypes\test\test_as_parameter.py" /> - <Compile Include="ctypes\test\test_bitfields.py" /> - <Compile Include="ctypes\test\test_buffers.py" /> - <Compile Include="ctypes\test\test_bytes.py" /> - <Compile Include="ctypes\test\test_byteswap.py" /> - <Compile Include="ctypes\test\test_callbacks.py" /> - <Compile Include="ctypes\test\test_cast.py" /> - <Compile Include="ctypes\test\test_cfuncs.py" /> - <Compile Include="ctypes\test\test_checkretval.py" /> - <Compile Include="ctypes\test\test_delattr.py" /> - <Compile Include="ctypes\test\test_errno.py" /> - <Compile Include="ctypes\test\test_find.py" /> - <Compile Include="ctypes\test\test_frombuffer.py" /> - <Compile Include="ctypes\test\test_funcptr.py" /> - <Compile Include="ctypes\test\test_functions.py" /> - <Compile Include="ctypes\test\test_incomplete.py" /> - <Compile Include="ctypes\test\test_init.py" /> - <Compile Include="ctypes\test\test_internals.py" /> - <Compile Include="ctypes\test\test_keeprefs.py" /> - <Compile Include="ctypes\test\test_libc.py" /> - <Compile Include="ctypes\test\test_loading.py" /> - <Compile Include="ctypes\test\test_macholib.py" /> - <Compile Include="ctypes\test\test_memfunctions.py" /> - <Compile Include="ctypes\test\test_numbers.py" /> - <Compile Include="ctypes\test\test_objects.py" /> - <Compile Include="ctypes\test\test_parameters.py" /> - <Compile Include="ctypes\test\test_pep3118.py" /> - <Compile Include="ctypes\test\test_pickling.py" /> - <Compile Include="ctypes\test\test_pointers.py" /> - <Compile Include="ctypes\test\test_prototypes.py" /> - <Compile Include="ctypes\test\test_python_api.py" /> - <Compile Include="ctypes\test\test_random_things.py" /> - <Compile Include="ctypes\test\test_refcounts.py" /> - <Compile Include="ctypes\test\test_repr.py" /> - <Compile Include="ctypes\test\test_returnfuncptrs.py" /> - <Compile Include="ctypes\test\test_simplesubclasses.py" /> - <Compile Include="ctypes\test\test_sizes.py" /> - <Compile Include="ctypes\test\test_slicing.py" /> - <Compile Include="ctypes\test\test_stringptr.py" /> - <Compile Include="ctypes\test\test_strings.py" /> - <Compile Include="ctypes\test\test_structures.py" /> - <Compile Include="ctypes\test\test_struct_fields.py" /> - <Compile Include="ctypes\test\test_unaligned_structures.py" /> - <Compile Include="ctypes\test\test_unicode.py" /> - <Compile Include="ctypes\test\test_values.py" /> - <Compile Include="ctypes\test\test_varsize_struct.py" /> - <Compile Include="ctypes\test\test_win32.py" /> - <Compile Include="ctypes\test\test_wintypes.py" /> - <Compile Include="ctypes\test\__init__.py" /> - <Compile Include="ctypes\test\__main__.py" /> <Compile Include="ctypes\util.py" /> <Compile Include="ctypes\wintypes.py" /> <Compile Include="ctypes\_endian.py" /> @@ -614,33 +561,6 @@ <Compile Include="lib2to3\pygram.py" /> <Compile Include="lib2to3\pytree.py" /> <Compile Include="lib2to3\refactor.py" /> - <Compile Include="lib2to3\tests\data\bom.py" /> - <Compile Include="lib2to3\tests\data\crlf.py" /> - <Compile Include="lib2to3\tests\data\different_encoding.py" /> - <Compile Include="lib2to3\tests\data\false_encoding.py" /> - <Compile Include="lib2to3\tests\data\fixers\bad_order.py" /> - <Compile Include="lib2to3\tests\data\fixers\myfixes\fix_explicit.py" /> - <Compile Include="lib2to3\tests\data\fixers\myfixes\fix_first.py" /> - <Compile Include="lib2to3\tests\data\fixers\myfixes\fix_last.py" /> - <Compile Include="lib2to3\tests\data\fixers\myfixes\fix_parrot.py" /> - <Compile Include="lib2to3\tests\data\fixers\myfixes\fix_preorder.py" /> - <Compile Include="lib2to3\tests\data\fixers\myfixes\__init__.py" /> - <Compile Include="lib2to3\tests\data\fixers\no_fixer_cls.py" /> - <Compile Include="lib2to3\tests\data\fixers\parrot_example.py" /> - <Compile Include="lib2to3\tests\data\infinite_recursion.py" /> - <Compile Include="lib2to3\tests\data\py2_test_grammar.py" /> - <Compile Include="lib2to3\tests\data\py3_test_grammar.py" /> - <Compile Include="lib2to3\tests\pytree_idempotency.py" /> - <Compile Include="lib2to3\tests\support.py" /> - <Compile Include="lib2to3\tests\test_all_fixers.py" /> - <Compile Include="lib2to3\tests\test_fixers.py" /> - <Compile Include="lib2to3\tests\test_main.py" /> - <Compile Include="lib2to3\tests\test_parser.py" /> - <Compile Include="lib2to3\tests\test_pytree.py" /> - <Compile Include="lib2to3\tests\test_refactor.py" /> - <Compile Include="lib2to3\tests\test_util.py" /> - <Compile Include="lib2to3\tests\__init__.py" /> - <Compile Include="lib2to3\tests\__main__.py" /> <Compile Include="lib2to3\__init__.py" /> <Compile Include="lib2to3\__main__.py" /> <Compile Include="linecache.py" /> @@ -722,7 +642,6 @@ <Compile Include="shutil.py" /> <Compile Include="signal.py" /> <Compile Include="site.py" /> - <Compile Include="smtpd.py" /> <Compile Include="smtplib.py" /> <Compile Include="sndhdr.py" /> <Compile Include="socket.py" /> @@ -840,6 +759,7 @@ <Compile Include="test\sample_doctest_no_doctests.py" /> <Compile Include="test\seq_tests.py" /> <Compile Include="test\signalinterproctester.py" /> + <Compile Include="test\smtpd.py" /> <Compile Include="test\sortperf.py" /> <Compile Include="test\ssltests.py" /> <Compile Include="test\ssl_servers.py" /> @@ -944,7 +864,59 @@ <Compile Include="test\test_crashers.py" /> <Compile Include="test\test_crypt.py" /> <Compile Include="test\test_csv.py" /> - <Compile Include="test\test_ctypes.py" /> + <Compile Include="test\test_ctypes\test_anon.py" /> + <Compile Include="test\test_ctypes\test_arrays.py" /> + <Compile Include="test\test_ctypes\test_array_in_pointer.py" /> + <Compile Include="test\test_ctypes\test_as_parameter.py" /> + <Compile Include="test\test_ctypes\test_bitfields.py" /> + <Compile Include="test\test_ctypes\test_buffers.py" /> + <Compile Include="test\test_ctypes\test_bytes.py" /> + <Compile Include="test\test_ctypes\test_byteswap.py" /> + <Compile Include="test\test_ctypes\test_callbacks.py" /> + <Compile Include="test\test_ctypes\test_cast.py" /> + <Compile Include="test\test_ctypes\test_cfuncs.py" /> + <Compile Include="test\test_ctypes\test_checkretval.py" /> + <Compile Include="test\test_ctypes\test_delattr.py" /> + <Compile Include="test\test_ctypes\test_errno.py" /> + <Compile Include="test\test_ctypes\test_find.py" /> + <Compile Include="test\test_ctypes\test_frombuffer.py" /> + <Compile Include="test\test_ctypes\test_funcptr.py" /> + <Compile Include="test\test_ctypes\test_functions.py" /> + <Compile Include="test\test_ctypes\test_incomplete.py" /> + <Compile Include="test\test_ctypes\test_init.py" /> + <Compile Include="test\test_ctypes\test_internals.py" /> + <Compile Include="test\test_ctypes\test_keeprefs.py" /> + <Compile Include="test\test_ctypes\test_libc.py" /> + <Compile Include="test\test_ctypes\test_loading.py" /> + <Compile Include="test\test_ctypes\test_macholib.py" /> + <Compile Include="test\test_ctypes\test_memfunctions.py" /> + <Compile Include="test\test_ctypes\test_numbers.py" /> + <Compile Include="test\test_ctypes\test_objects.py" /> + <Compile Include="test\test_ctypes\test_parameters.py" /> + <Compile Include="test\test_ctypes\test_pep3118.py" /> + <Compile Include="test\test_ctypes\test_pickling.py" /> + <Compile Include="test\test_ctypes\test_pointers.py" /> + <Compile Include="test\test_ctypes\test_prototypes.py" /> + <Compile Include="test\test_ctypes\test_python_api.py" /> + <Compile Include="test\test_ctypes\test_random_things.py" /> + <Compile Include="test\test_ctypes\test_refcounts.py" /> + <Compile Include="test\test_ctypes\test_repr.py" /> + <Compile Include="test\test_ctypes\test_returnfuncptrs.py" /> + <Compile Include="test\test_ctypes\test_simplesubclasses.py" /> + <Compile Include="test\test_ctypes\test_sizes.py" /> + <Compile Include="test\test_ctypes\test_slicing.py" /> + <Compile Include="test\test_ctypes\test_stringptr.py" /> + <Compile Include="test\test_ctypes\test_strings.py" /> + <Compile Include="test\test_ctypes\test_structures.py" /> + <Compile Include="test\test_ctypes\test_struct_fields.py" /> + <Compile Include="test\test_ctypes\test_unaligned_structures.py" /> + <Compile Include="test\test_ctypes\test_unicode.py" /> + <Compile Include="test\test_ctypes\test_values.py" /> + <Compile Include="test\test_ctypes\test_varsize_struct.py" /> + <Compile Include="test\test_ctypes\test_win32.py" /> + <Compile Include="test\test_ctypes\test_wintypes.py" /> + <Compile Include="test\test_ctypes\__init__.py" /> + <Compile Include="test\test_ctypes\__main__.py" /> <Compile Include="test\test_curses.py" /> <Compile Include="test\test_datetime.py" /> <Compile Include="test\test_dbm.py" /> @@ -1158,7 +1130,33 @@ <Compile Include="test\test_keywordonlyarg.py" /> <Compile Include="test\test_kqueue.py" /> <Compile Include="test\test_largefile.py" /> - <Compile Include="test\test_lib2to3.py" /> + <Compile Include="test\test_lib2to3\data\bom.py" /> + <Compile Include="test\test_lib2to3\data\crlf.py" /> + <Compile Include="test\test_lib2to3\data\different_encoding.py" /> + <Compile Include="test\test_lib2to3\data\false_encoding.py" /> + <Compile Include="test\test_lib2to3\data\fixers\bad_order.py" /> + <Compile Include="test\test_lib2to3\data\fixers\myfixes\fix_explicit.py" /> + <Compile Include="test\test_lib2to3\data\fixers\myfixes\fix_first.py" /> + <Compile Include="test\test_lib2to3\data\fixers\myfixes\fix_last.py" /> + <Compile Include="test\test_lib2to3\data\fixers\myfixes\fix_parrot.py" /> + <Compile Include="test\test_lib2to3\data\fixers\myfixes\fix_preorder.py" /> + <Compile Include="test\test_lib2to3\data\fixers\myfixes\__init__.py" /> + <Compile Include="test\test_lib2to3\data\fixers\no_fixer_cls.py" /> + <Compile Include="test\test_lib2to3\data\fixers\parrot_example.py" /> + <Compile Include="test\test_lib2to3\data\infinite_recursion.py" /> + <Compile Include="test\test_lib2to3\data\py2_test_grammar.py" /> + <Compile Include="test\test_lib2to3\data\py3_test_grammar.py" /> + <Compile Include="test\test_lib2to3\pytree_idempotency.py" /> + <Compile Include="test\test_lib2to3\support.py" /> + <Compile Include="test\test_lib2to3\test_all_fixers.py" /> + <Compile Include="test\test_lib2to3\test_fixers.py" /> + <Compile Include="test\test_lib2to3\test_main.py" /> + <Compile Include="test\test_lib2to3\test_parser.py" /> + <Compile Include="test\test_lib2to3\test_pytree.py" /> + <Compile Include="test\test_lib2to3\test_refactor.py" /> + <Compile Include="test\test_lib2to3\test_util.py" /> + <Compile Include="test\test_lib2to3\__init__.py" /> + <Compile Include="test\test_lib2to3\__main__.py" /> <Compile Include="test\test_linecache.py" /> <Compile Include="test\test_list.py" /> <Compile Include="test\test_listcomps.py" /> @@ -1263,7 +1261,6 @@ <Compile Include="test\test_signal.py" /> <Compile Include="test\test_site.py" /> <Compile Include="test\test_slice.py" /> - <Compile Include="test\test_smtpd.py" /> <Compile Include="test\test_smtplib.py" /> <Compile Include="test\test_smtpnet.py" /> <Compile Include="test\test_sndhdr.py" /> @@ -1325,7 +1322,17 @@ <Compile Include="test\test_timeit.py" /> <Compile Include="test\test_timeout.py" /> <Compile Include="test\test_tix.py" /> - <Compile Include="test\test_tk.py" /> + <Compile Include="test\test_tkinter\__init__.py" /> + <Compile Include="test\test_tkinter\support.py" /> + <Compile Include="test\test_tkinter\test_font.py" /> + <Compile Include="test\test_tkinter\test_geometry_managers.py" /> + <Compile Include="test\test_tkinter\test_images.py" /> + <Compile Include="test\test_tkinter\test_loadtk.py" /> + <Compile Include="test\test_tkinter\test_misc.py" /> + <Compile Include="test\test_tkinter\test_text.py" /> + <Compile Include="test\test_tkinter\test_variables.py" /> + <Compile Include="test\test_tkinter\test_widgets.py" /> + <Compile Include="test\test_tkinter\widget_tests.py" /> <Compile Include="test\test_tokenize.py" /> <Compile Include="test\test_tools\test_fixcid.py" /> <Compile Include="test\test_tools\test_gprof2html.py" /> @@ -1341,8 +1348,11 @@ <Compile Include="test\test_trace.py" /> <Compile Include="test\test_traceback.py" /> <Compile Include="test\test_tracemalloc.py" /> - <Compile Include="test\test_ttk_guionly.py" /> <Compile Include="test\test_ttk_textonly.py" /> + <Compile Include="test\test_ttk\__init__.py" /> + <Compile Include="test\test_ttk\test_extensions.py" /> + <Compile Include="test\test_ttk\test_style.py" /> + <Compile Include="test\test_ttk\test_widgets.py" /> <Compile Include="test\test_tuple.py" /> <Compile Include="test\test_turtle.py" /> <Compile Include="test\test_typechecks.py" /> @@ -1355,7 +1365,33 @@ <Compile Include="test\test_unicode_file.py" /> <Compile Include="test\test_unicode_file_functions.py" /> <Compile Include="test\test_unicode_identifiers.py" /> - <Compile Include="test\test_unittest.py" /> + <Compile Include="test\test_unittest\dummy.py" /> + <Compile Include="test\test_unittest\support.py" /> + <Compile Include="test\test_unittest\testmock\support.py" /> + <Compile Include="test\test_unittest\testmock\testcallable.py" /> + <Compile Include="test\test_unittest\testmock\testhelpers.py" /> + <Compile Include="test\test_unittest\testmock\testmagicmethods.py" /> + <Compile Include="test\test_unittest\testmock\testmock.py" /> + <Compile Include="test\test_unittest\testmock\testpatch.py" /> + <Compile Include="test\test_unittest\testmock\testsentinel.py" /> + <Compile Include="test\test_unittest\testmock\testwith.py" /> + <Compile Include="test\test_unittest\testmock\__init__.py" /> + <Compile Include="test\test_unittest\testmock\__main__.py" /> + <Compile Include="test\test_unittest\test_assertions.py" /> + <Compile Include="test\test_unittest\test_break.py" /> + <Compile Include="test\test_unittest\test_case.py" /> + <Compile Include="test\test_unittest\test_discovery.py" /> + <Compile Include="test\test_unittest\test_functiontestcase.py" /> + <Compile Include="test\test_unittest\test_loader.py" /> + <Compile Include="test\test_unittest\test_program.py" /> + <Compile Include="test\test_unittest\test_result.py" /> + <Compile Include="test\test_unittest\test_runner.py" /> + <Compile Include="test\test_unittest\test_setups.py" /> + <Compile Include="test\test_unittest\test_skipping.py" /> + <Compile Include="test\test_unittest\test_suite.py" /> + <Compile Include="test\test_unittest\_test_warnings.py" /> + <Compile Include="test\test_unittest\__init__.py" /> + <Compile Include="test\test_unittest\__main__.py" /> <Compile Include="test\test_univnewlines.py" /> <Compile Include="test\test_unpack.py" /> <Compile Include="test\test_unpack_ex.py" /> @@ -1434,22 +1470,6 @@ <Compile Include="tkinter\messagebox.py" /> <Compile Include="tkinter\scrolledtext.py" /> <Compile Include="tkinter\simpledialog.py" /> - <Compile Include="tkinter\test\support.py" /> - <Compile Include="tkinter\test\test_tkinter\test_font.py" /> - <Compile Include="tkinter\test\test_tkinter\test_geometry_managers.py" /> - <Compile Include="tkinter\test\test_tkinter\test_images.py" /> - <Compile Include="tkinter\test\test_tkinter\test_loadtk.py" /> - <Compile Include="tkinter\test\test_tkinter\test_misc.py" /> - <Compile Include="tkinter\test\test_tkinter\test_text.py" /> - <Compile Include="tkinter\test\test_tkinter\test_variables.py" /> - <Compile Include="tkinter\test\test_tkinter\test_widgets.py" /> - <Compile Include="tkinter\test\test_tkinter\__init__.py" /> - <Compile Include="tkinter\test\test_ttk\test_extensions.py" /> - <Compile Include="tkinter\test\test_ttk\test_style.py" /> - <Compile Include="tkinter\test\test_ttk\test_widgets.py" /> - <Compile Include="tkinter\test\test_ttk\__init__.py" /> - <Compile Include="tkinter\test\widget_tests.py" /> - <Compile Include="tkinter\test\__init__.py" /> <Compile Include="tkinter\tix.py" /> <Compile Include="tkinter\ttk.py" /> <Compile Include="tkinter\__init__.py" /> @@ -1492,33 +1512,6 @@ <Compile Include="unittest\runner.py" /> <Compile Include="unittest\signals.py" /> <Compile Include="unittest\suite.py" /> - <Compile Include="unittest\test\dummy.py" /> - <Compile Include="unittest\test\support.py" /> - <Compile Include="unittest\test\testmock\support.py" /> - <Compile Include="unittest\test\testmock\testcallable.py" /> - <Compile Include="unittest\test\testmock\testhelpers.py" /> - <Compile Include="unittest\test\testmock\testmagicmethods.py" /> - <Compile Include="unittest\test\testmock\testmock.py" /> - <Compile Include="unittest\test\testmock\testpatch.py" /> - <Compile Include="unittest\test\testmock\testsentinel.py" /> - <Compile Include="unittest\test\testmock\testwith.py" /> - <Compile Include="unittest\test\testmock\__init__.py" /> - <Compile Include="unittest\test\testmock\__main__.py" /> - <Compile Include="unittest\test\test_assertions.py" /> - <Compile Include="unittest\test\test_break.py" /> - <Compile Include="unittest\test\test_case.py" /> - <Compile Include="unittest\test\test_discovery.py" /> - <Compile Include="unittest\test\test_functiontestcase.py" /> - <Compile Include="unittest\test\test_loader.py" /> - <Compile Include="unittest\test\test_program.py" /> - <Compile Include="unittest\test\test_result.py" /> - <Compile Include="unittest\test\test_runner.py" /> - <Compile Include="unittest\test\test_setups.py" /> - <Compile Include="unittest\test\test_skipping.py" /> - <Compile Include="unittest\test\test_suite.py" /> - <Compile Include="unittest\test\_test_warnings.py" /> - <Compile Include="unittest\test\__init__.py" /> - <Compile Include="unittest\test\__main__.py" /> <Compile Include="unittest\util.py" /> <Compile Include="unittest\__init__.py" /> <Compile Include="unittest\__main__.py" /> @@ -1725,7 +1718,6 @@ <Folder Include="concurrent\futures" /> <Folder Include="ctypes" /> <Folder Include="ctypes\macholib" /> - <Folder Include="ctypes\test" /> <Folder Include="curses" /> <Folder Include="dbm" /> <Folder Include="distutils" /> @@ -1745,10 +1737,6 @@ <Folder Include="lib2to3" /> <Folder Include="lib2to3\fixes" /> <Folder Include="lib2to3\pgen2" /> - <Folder Include="lib2to3\tests" /> - <Folder Include="lib2to3\tests\data" /> - <Folder Include="lib2to3\tests\data\fixers" /> - <Folder Include="lib2to3\tests\data\fixers\myfixes" /> <Folder Include="logging" /> <Folder Include="msilib" /> <Folder Include="multiprocessing" /> @@ -1769,6 +1757,7 @@ <Folder Include="test\subprocessdata" /> <Folder Include="test\support" /> <Folder Include="test\test_asyncio" /> + <Folder Include="test\test_ctypes" /> <Folder Include="test\test_email" /> <Folder Include="test\test_email\data" /> <Folder Include="test\test_import" /> @@ -1803,19 +1792,22 @@ <Folder Include="test\test_import\data\package" /> <Folder Include="test\test_import\data\package2" /> <Folder Include="test\test_json" /> + <Folder Include="test\test_lib2to3" /> + <Folder Include="test\test_lib2to3\data" /> + <Folder Include="test\test_lib2to3\data\fixers" /> + <Folder Include="test\test_lib2to3\data\fixers\myfixes" /> <Folder Include="test\test_peg_generator" /> + <Folder Include="test\test_tkinter" /> <Folder Include="test\test_tools" /> + <Folder Include="test\test_ttk" /> + <Folder Include="test\test_unittest" /> + <Folder Include="test\test_unittest\testmock" /> <Folder Include="test\test_warnings" /> <Folder Include="test\test_warnings\data" /> <Folder Include="test\tracedmodules" /> <Folder Include="tkinter" /> - <Folder Include="tkinter\test" /> - <Folder Include="tkinter\test\test_tkinter" /> - <Folder Include="tkinter\test\test_ttk" /> <Folder Include="turtledemo" /> <Folder Include="unittest" /> - <Folder Include="unittest\test" /> - <Folder Include="unittest\test\testmock" /> <Folder Include="urllib" /> <Folder Include="venv" /> <Folder Include="wsgiref" /> diff --git a/PCbuild/pcbuild.proj b/PCbuild/pcbuild.proj index 2ba0627b833695..d9e4d981aa2189 100644 --- a/PCbuild/pcbuild.proj +++ b/PCbuild/pcbuild.proj @@ -64,7 +64,7 @@ <!-- pyshellext.dll --> <Projects Include="pyshellext.vcxproj" /> <!-- Extension modules --> - <ExtensionModules Include="_asyncio;_zoneinfo;_decimal;_elementtree;_msi;_multiprocessing;_overlapped;pyexpat;_queue;select;unicodedata;winsound;_uuid" /> + <ExtensionModules Include="_asyncio;_zoneinfo;_decimal;_elementtree;_msi;_multiprocessing;_overlapped;pyexpat;_queue;select;unicodedata;winsound;_uuid;_wmi" /> <ExtensionModules Include="_ctypes" Condition="$(IncludeCTypes)" /> <!-- Extension modules that require external sources --> <ExternalModules Include="_bz2;_lzma;_sqlite3" /> @@ -125,6 +125,12 @@ StopOnFirstFailure="false" Condition="%(CleanTarget) != ''" Targets="%(CleanTarget)" /> + <MSBuild Projects="@(FreezeProjects)" + Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)" + BuildInParallel="%(BuildInParallel)" + StopOnFirstFailure="false" + Condition="%(CleanTarget) != ''" + Targets="%(CleanTarget)" /> </Target> <Target Name="CleanAll"> @@ -140,6 +146,12 @@ StopOnFirstFailure="false" Condition="%(CleanAllTarget) != ''" Targets="%(CleanAllTarget)" /> + <MSBuild Projects="@(FreezeProjects)" + Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)" + BuildInParallel="%(BuildInParallel)" + StopOnFirstFailure="false" + Condition="%(CleanTarget) != ''" + Targets="%(CleanTarget)" /> </Target> <Target Name="Rebuild" DependsOnTargets="Clean;Build" /> diff --git a/PCbuild/pcbuild.sln b/PCbuild/pcbuild.sln index 3629a8508a3a60..9f374abd152b17 100644 --- a/PCbuild/pcbuild.sln +++ b/PCbuild/pcbuild.sln @@ -108,6 +108,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythonw_uwp", "pythonw_uwp. EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_uuid", "_uuid.vcxproj", "{CB435430-EBB1-478B-8F4E-C256F6838F55}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_wmi", "_wmi.vcxproj", "{54B1431F-B86B-4ACB-B28C-88BCF93191D8}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|ARM = Debug|ARM @@ -1503,6 +1505,38 @@ Global {CB435430-EBB1-478B-8F4E-C256F6838F55}.Release|Win32.Build.0 = Release|Win32 {CB435430-EBB1-478B-8F4E-C256F6838F55}.Release|x64.ActiveCfg = Release|x64 {CB435430-EBB1-478B-8F4E-C256F6838F55}.Release|x64.Build.0 = Release|x64 + {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.Debug|ARM.ActiveCfg = Debug|ARM + {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.Debug|ARM.Build.0 = Debug|ARM + {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.Debug|ARM64.Build.0 = Debug|ARM64 + {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.Debug|Win32.ActiveCfg = Debug|Win32 + {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.Debug|Win32.Build.0 = Debug|Win32 + {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.Debug|x64.ActiveCfg = Debug|x64 + {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.Debug|x64.Build.0 = Debug|x64 + {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.PGInstrument|ARM.ActiveCfg = PGInstrument|ARM + {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.PGInstrument|ARM.Build.0 = PGInstrument|ARM + {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.PGInstrument|ARM64.ActiveCfg = PGInstrument|ARM64 + {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.PGInstrument|ARM64.Build.0 = PGInstrument|ARM64 + {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.PGUpdate|ARM.ActiveCfg = PGUpdate|ARM + {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.PGUpdate|ARM.Build.0 = PGUpdate|ARM + {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.PGUpdate|ARM64.ActiveCfg = PGUpdate|ARM64 + {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.PGUpdate|ARM64.Build.0 = PGUpdate|ARM64 + {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.Release|ARM.ActiveCfg = Release|ARM + {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.Release|ARM.Build.0 = Release|ARM + {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.Release|ARM64.ActiveCfg = Release|ARM64 + {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.Release|ARM64.Build.0 = Release|ARM64 + {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.Release|Win32.ActiveCfg = Release|Win32 + {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.Release|Win32.Build.0 = Release|Win32 + {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.Release|x64.ActiveCfg = Release|x64 + {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/PCbuild/pyproject.props b/PCbuild/pyproject.props index df3efc631d154f..e398b333572e9d 100644 --- a/PCbuild/pyproject.props +++ b/PCbuild/pyproject.props @@ -229,7 +229,7 @@ public override bool Execute() { </Target> <Target Name="FindPythonForBuild" Condition="$(PythonForBuild) == ''"> - <Exec Command="$(MSBuildThisFileDirectory)\find_python.bat -q" + <Exec Command="&quot;$(MSBuildThisFileDirectory)\find_python.bat&quot; -q" EchoOff="true" ConsoleToMsBuild="true"> <Output TaskParameter="ConsoleOutput" ItemName="_CmdExeLines" /> diff --git a/PCbuild/python.props b/PCbuild/python.props index 7f10e7c45ef7b7..efcb480976b6a2 100644 --- a/PCbuild/python.props +++ b/PCbuild/python.props @@ -67,8 +67,8 @@ <libffiDir>$(ExternalsDir)libffi-3.4.2\</libffiDir> <libffiOutDir>$(ExternalsDir)libffi-3.4.2\$(ArchName)\</libffiOutDir> <libffiIncludeDir>$(libffiOutDir)include</libffiIncludeDir> - <opensslDir>$(ExternalsDir)openssl-1.1.1n\</opensslDir> - <opensslOutDir>$(ExternalsDir)openssl-bin-1.1.1n\$(ArchName)\</opensslOutDir> + <opensslDir>$(ExternalsDir)openssl-1.1.1q\</opensslDir> + <opensslOutDir>$(ExternalsDir)openssl-bin-1.1.1q\$(ArchName)\</opensslOutDir> <opensslIncludeDir>$(opensslOutDir)include</opensslIncludeDir> <nasmDir>$(ExternalsDir)\nasm-2.11.06\</nasmDir> <zlibDir>$(ExternalsDir)\zlib-1.2.12\</zlibDir> diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj index be76f1bc55859a..ff17304032cded 100644 --- a/PCbuild/pythoncore.vcxproj +++ b/PCbuild/pythoncore.vcxproj @@ -167,6 +167,7 @@ <ClInclude Include="..\Include\cpython\pydebug.h" /> <ClInclude Include="..\Include\cpython\pyerrors.h" /> <ClInclude Include="..\Include\cpython\pyfpe.h" /> + <ClInclude Include="..\Include\cpython\pyframe.h" /> <ClInclude Include="..\Include\cpython\pylifecycle.h" /> <ClInclude Include="..\Include\cpython\pymem.h" /> <ClInclude Include="..\Include\cpython\pystate.h" /> @@ -192,7 +193,6 @@ <ClInclude Include="..\Include\frameobject.h" /> <ClInclude Include="..\Include\import.h" /> <ClInclude Include="..\Include\internal\pycore_abstract.h" /> - <ClInclude Include="..\Include\internal\pycore_accu.h" /> <ClInclude Include="..\Include\internal\pycore_asdl.h" /> <ClInclude Include="..\Include\internal\pycore_ast.h" /> <ClInclude Include="..\Include\internal\pycore_ast_state.h" /> @@ -207,6 +207,7 @@ <ClInclude Include="..\Include\internal\pycore_compile.h" /> <ClInclude Include="..\Include\internal\pycore_condvar.h" /> <ClInclude Include="..\Include\internal\pycore_context.h" /> + <ClInclude Include="..\Include\internal\pycore_descrobject.h" /> <ClInclude Include="..\Include\internal\pycore_dtoa.h" /> <ClInclude Include="..\Include\internal\pycore_exceptions.h" /> <ClInclude Include="..\Include\internal\pycore_fileutils.h" /> @@ -236,8 +237,10 @@ <ClInclude Include="..\Include\internal\pycore_pylifecycle.h" /> <ClInclude Include="..\Include\internal\pycore_pymem.h" /> <ClInclude Include="..\Include\internal\pycore_pystate.h" /> + <ClInclude Include="..\Include\internal\pycore_range.h" /> <ClInclude Include="..\Include\internal\pycore_runtime.h" /> <ClInclude Include="..\Include\internal\pycore_runtime_init.h" /> + <ClInclude Include="..\Include\internal\pycore_runtime_init_generated.h" /> <ClInclude Include="..\Include\internal\pycore_signal.h" /> <ClInclude Include="..\Include\internal\pycore_sliceobject.h" /> <ClInclude Include="..\Include\internal\pycore_strhex.h" /> @@ -324,7 +327,6 @@ <ClInclude Include="..\Parser\pegen.h" /> <ClInclude Include="..\PC\errmap.h" /> <ClInclude Include="..\PC\pyconfig.h" /> - <ClInclude Include="..\Python\ceval_gil.h" /> <ClInclude Include="..\Python\condvar.h" /> <ClInclude Include="..\Python\importdl.h" /> <ClInclude Include="..\Python\stdlib_module_names.h" /> @@ -418,7 +420,6 @@ <ClCompile Include="..\Modules\cjkcodecs\multibytecodec.c" /> <ClCompile Include="..\Modules\_winapi.c" /> <ClCompile Include="..\Objects\abstract.c" /> - <ClCompile Include="..\Objects\accu.c" /> <ClCompile Include="..\Objects\boolobject.c" /> <ClCompile Include="..\Objects\bytearrayobject.c" /> <ClCompile Include="..\Objects\bytes_methods.c" /> @@ -428,6 +429,7 @@ <ClCompile Include="..\Objects\cellobject.c" /> <ClCompile Include="..\Objects\classobject.c" /> <ClCompile Include="..\Objects\codeobject.c" /> + <ClCompile Include="..\Objects\perf_trampoline.c" /> <ClCompile Include="..\Objects\complexobject.c" /> <ClCompile Include="..\Objects\descrobject.c" /> <ClCompile Include="..\Objects\dictobject.c" /> @@ -500,6 +502,7 @@ <ClCompile Include="..\Python\getopt.c" /> <ClCompile Include="..\Python\getplatform.c" /> <ClCompile Include="..\Python\getversion.c" /> + <ClCompile Include="..\Python\ceval_gil.c" /> <ClCompile Include="..\Python\hamt.c" /> <ClCompile Include="..\Python\hashtable.c" /> <ClCompile Include="..\Python\import.c" /> diff --git a/PCbuild/pythoncore.vcxproj.filters b/PCbuild/pythoncore.vcxproj.filters index 5573e0020491a6..7d7fe7267c8ff0 100644 --- a/PCbuild/pythoncore.vcxproj.filters +++ b/PCbuild/pythoncore.vcxproj.filters @@ -312,9 +312,6 @@ <ClInclude Include="..\Python\condvar.h"> <Filter>Python</Filter> </ClInclude> - <ClInclude Include="..\Python\ceval_gil.h"> - <Filter>Python</Filter> - </ClInclude> <ClInclude Include="..\Include\pyhash.h"> <Filter>Include</Filter> </ClInclude> @@ -435,6 +432,9 @@ <ClInclude Include="..\Include\cpython\pymem.h"> <Filter>Include\cpython</Filter> </ClInclude> + <ClInclude Include="..\Include\cpython\pyframe.h"> + <Filter>Include\cpython</Filter> + </ClInclude> <ClInclude Include="..\Include\cpython\pylifecycle.h"> <Filter>Include\cpython</Filter> </ClInclude> @@ -483,9 +483,6 @@ <ClInclude Include="..\Include\internal\pycore_abstract.h"> <Filter>Include\internal</Filter> </ClInclude> - <ClInclude Include="..\Include\internal\pycore_accu.h"> - <Filter>Include\internal</Filter> - </ClInclude> <ClInclude Include="..\Include\internal\pycore_asdl.h"> <Filter>Include\internal</Filter> </ClInclude> @@ -528,6 +525,9 @@ <ClInclude Include="..\Include\internal\pycore_context.h"> <Filter>Include\internal</Filter> </ClInclude> + <ClInclude Include="..\Include\internal\pycore_descrobject.h"> + <Filter>Include\internal</Filter> + </ClInclude> <ClInclude Include="..\Include\internal\pycore_dtoa.h"> <Filter>Include\internal</Filter> </ClInclude> @@ -612,12 +612,18 @@ <ClInclude Include="..\Include\internal\pycore_pystate.h"> <Filter>Include\internal</Filter> </ClInclude> + <ClInclude Include="..\Include\internal\pycore_range.h"> + <Filter>Include\internal</Filter> + </ClInclude> <ClInclude Include="..\Include\internal\pycore_runtime.h"> <Filter>Include\internal</Filter> </ClInclude> <ClInclude Include="..\Include\internal\pycore_runtime_init.h"> <Filter>Include\internal</Filter> </ClInclude> + <ClInclude Include="..\Include\internal\pycore_runtime_init_generated.h"> + <Filter>Include\internal</Filter> + </ClInclude> <ClInclude Include="..\Include\internal\pycore_signal.h"> <Filter>Include\internal</Filter> </ClInclude> @@ -917,6 +923,9 @@ <ClCompile Include="..\Objects\codeobject.c"> <Filter>Objects</Filter> </ClCompile> + <ClCompile Include="..\Objects\perf_trampoline.c"> + <Filter>Objects</Filter> + </ClCompile> <ClCompile Include="..\Objects\complexobject.c"> <Filter>Objects</Filter> </ClCompile> @@ -1088,6 +1097,9 @@ <ClCompile Include="..\Python\getversion.c"> <Filter>Python</Filter> </ClCompile> + <ClCompile Include="..\Python\ceval_gil.c"> + <Filter>Python</Filter> + </ClCompile> <ClCompile Include="..\Python\hashtable.c"> <Filter>Modules</Filter> </ClCompile> diff --git a/PCbuild/readme.txt b/PCbuild/readme.txt index e4cad75189c972..c536fac94cc680 100644 --- a/PCbuild/readme.txt +++ b/PCbuild/readme.txt @@ -168,7 +168,7 @@ _lzma Homepage: https://tukaani.org/xz/ _ssl - Python wrapper for version 1.1.1k of the OpenSSL secure sockets + Python wrapper for version 1.1.1q of the OpenSSL secure sockets library, which is downloaded from our binaries repository at https://github.com/python/cpython-bin-deps. diff --git a/PCbuild/regen.targets b/PCbuild/regen.targets index 9073bb6ab2bd69..3938b66678eee0 100644 --- a/PCbuild/regen.targets +++ b/PCbuild/regen.targets @@ -82,9 +82,16 @@ WorkingDirectory="$(PySourcePath)" /> </Target> + <Target Name="_RegenGlobalObjects" + DependsOnTargets="FindPythonForBuild"> + <Message Text="Regenerate Global Objects" Importance="high" /> + <Exec Command="$(PythonForBuild) Tools\scripts\generate_global_objects.py" + WorkingDirectory="$(PySourcePath)" /> + </Target> + <Target Name="Regen" Condition="$(Configuration) != 'PGUpdate'" - DependsOnTargets="_TouchRegenSources;_RegenPegen;_RegenAST_H;_RegenOpcodes;_RegenTokens;_RegenKeywords"> + DependsOnTargets="_TouchRegenSources;_RegenPegen;_RegenAST_H;_RegenOpcodes;_RegenTokens;_RegenKeywords;_RegenGlobalObjects"> <Message Text="Generated sources are up to date" Importance="high" /> </Target> diff --git a/Parser/asdl_c.py b/Parser/asdl_c.py index 3bfe320fe3b70e..13dd44ca0cdc3f 100755 --- a/Parser/asdl_c.py +++ b/Parser/asdl_c.py @@ -1,7 +1,6 @@ #! /usr/bin/env python """Generate C code from an ASDL description.""" -import os import sys import textwrap import types @@ -488,6 +487,12 @@ def visitProduct(self, prod, name): class Obj2ModVisitor(PickleVisitor): + + attribute_special_defaults = { + "end_lineno": "lineno", + "end_col_offset": "col_offset", + } + @contextmanager def recursive_call(self, node, level): self.emit('if (_Py_EnterRecursiveCall(" while traversing \'%s\' node")) {' % node, level, reflow=False) @@ -637,7 +642,13 @@ def visitField(self, field, name, sum=None, prod=None, depth=0): self.emit("if (tmp == NULL || tmp == Py_None) {", depth) self.emit("Py_CLEAR(tmp);", depth+1) if self.isNumeric(field): - self.emit("%s = 0;" % field.name, depth+1) + if field.name in self.attribute_special_defaults: + self.emit( + "%s = %s;" % (field.name, self.attribute_special_defaults[field.name]), + depth+1, + ) + else: + self.emit("%s = 0;" % field.name, depth+1) elif not self.isSimpleType(field): self.emit("%s = NULL;" % field.name, depth+1) else: @@ -1101,6 +1112,8 @@ def visitModule(self, mod): for dfn in mod.dfns: self.visit(dfn) self.file.write(textwrap.dedent(''' + state->recursion_depth = 0; + state->recursion_limit = 0; state->initialized = 1; return 1; } @@ -1248,8 +1261,14 @@ def func_begin(self, name): self.emit('if (!o) {', 1) self.emit("Py_RETURN_NONE;", 2) self.emit("}", 1) + self.emit("if (++state->recursion_depth > state->recursion_limit) {", 1) + self.emit("PyErr_SetString(PyExc_RecursionError,", 2) + self.emit('"maximum recursion depth exceeded during ast construction");', 3) + self.emit("return 0;", 2) + self.emit("}", 1) def func_end(self): + self.emit("state->recursion_depth--;", 1) self.emit("return result;", 1) self.emit("failed:", 0) self.emit("Py_XDECREF(value);", 1) @@ -1360,7 +1379,32 @@ class PartingShots(StaticVisitor): if (state == NULL) { return NULL; } - return ast2obj_mod(state, t); + + int recursion_limit = Py_GetRecursionLimit(); + int starting_recursion_depth; + /* Be careful here to prevent overflow. */ + int COMPILER_STACK_FRAME_SCALE = 3; + PyThreadState *tstate = _PyThreadState_GET(); + if (!tstate) { + return 0; + } + state->recursion_limit = (recursion_limit < INT_MAX / COMPILER_STACK_FRAME_SCALE) ? + recursion_limit * COMPILER_STACK_FRAME_SCALE : recursion_limit; + int recursion_depth = tstate->recursion_limit - tstate->recursion_remaining; + starting_recursion_depth = (recursion_depth < INT_MAX / COMPILER_STACK_FRAME_SCALE) ? + recursion_depth * COMPILER_STACK_FRAME_SCALE : recursion_depth; + state->recursion_depth = starting_recursion_depth; + + PyObject *result = ast2obj_mod(state, t); + + /* Check that the recursion depth counting balanced correctly */ + if (result && state->recursion_depth != starting_recursion_depth) { + PyErr_Format(PyExc_SystemError, + "AST constructor recursion depth mismatch (before=%d, after=%d)", + starting_recursion_depth, state->recursion_depth); + return 0; + } + return result; } /* mode is 0 for "exec", 1 for "eval" and 2 for "single" input */ @@ -1426,6 +1470,8 @@ def visit(self, object): def generate_ast_state(module_state, f): f.write('struct ast_state {\n') f.write(' int initialized;\n') + f.write(' int recursion_depth;\n') + f.write(' int recursion_limit;\n') for s in module_state: f.write(' PyObject *' + s + ';\n') f.write('};') diff --git a/Parser/myreadline.c b/Parser/myreadline.c index b10d306255bb67..d55fcefbb6f206 100644 --- a/Parser/myreadline.c +++ b/Parser/myreadline.c @@ -247,7 +247,8 @@ PyOS_StdioReadline(FILE *sys_stdin, FILE *sys_stdout, const char *prompt) assert(tstate != NULL); #ifdef MS_WINDOWS - if (!Py_LegacyWindowsStdioFlag && sys_stdin == stdin) { + const PyConfig *config = _PyInterpreterState_GetConfig(tstate->interp); + if (!config->legacy_windows_stdio && sys_stdin == stdin) { HANDLE hStdIn, hStdErr; hStdIn = _Py_get_osfhandle_noraise(fileno(sys_stdin)); diff --git a/Parser/parser.c b/Parser/parser.c index 31ad9a0ce7a721..bec51fe4a90362 100644 --- a/Parser/parser.c +++ b/Parser/parser.c @@ -19,15 +19,15 @@ static KeywordToken *reserved_keywords[] = { (KeywordToken[]) { {"if", 634}, {"as", 632}, - {"in", 641}, + {"in", 643}, {"or", 574}, {"is", 582}, {NULL, -1}, }, (KeywordToken[]) { {"del", 603}, - {"def", 642}, - {"for", 640}, + {"def", 644}, + {"for", 642}, {"try", 618}, {"and", 575}, {"not", 581}, @@ -47,7 +47,7 @@ static KeywordToken *reserved_keywords[] = { {"raise", 522}, {"yield", 573}, {"break", 508}, - {"class", 643}, + {"class", 646}, {"while", 639}, {"False", 602}, {NULL, -1}, @@ -519,9 +519,9 @@ static char *soft_keywords[] = { #define _tmp_211_type 1439 #define _tmp_212_type 1440 #define _tmp_213_type 1441 -#define _loop0_215_type 1442 -#define _gather_214_type 1443 -#define _tmp_216_type 1444 +#define _tmp_214_type 1442 +#define _loop0_216_type 1443 +#define _gather_215_type 1444 #define _tmp_217_type 1445 #define _tmp_218_type 1446 #define _tmp_219_type 1447 @@ -551,8 +551,10 @@ static char *soft_keywords[] = { #define _tmp_243_type 1471 #define _tmp_244_type 1472 #define _tmp_245_type 1473 -#define _loop1_246_type 1474 -#define _loop1_247_type 1475 +#define _tmp_246_type 1474 +#define _tmp_247_type 1475 +#define _loop1_248_type 1476 +#define _loop1_249_type 1477 static mod_ty file_rule(Parser *p); static mod_ty interactive_rule(Parser *p); @@ -996,9 +998,9 @@ static void *_tmp_210_rule(Parser *p); static void *_tmp_211_rule(Parser *p); static void *_tmp_212_rule(Parser *p); static void *_tmp_213_rule(Parser *p); -static asdl_seq *_loop0_215_rule(Parser *p); -static asdl_seq *_gather_214_rule(Parser *p); -static void *_tmp_216_rule(Parser *p); +static void *_tmp_214_rule(Parser *p); +static asdl_seq *_loop0_216_rule(Parser *p); +static asdl_seq *_gather_215_rule(Parser *p); static void *_tmp_217_rule(Parser *p); static void *_tmp_218_rule(Parser *p); static void *_tmp_219_rule(Parser *p); @@ -1028,8 +1030,10 @@ static void *_tmp_242_rule(Parser *p); static void *_tmp_243_rule(Parser *p); static void *_tmp_244_rule(Parser *p); static void *_tmp_245_rule(Parser *p); -static asdl_seq *_loop1_246_rule(Parser *p); -static asdl_seq *_loop1_247_rule(Parser *p); +static void *_tmp_246_rule(Parser *p); +static void *_tmp_247_rule(Parser *p); +static asdl_seq *_loop1_248_rule(Parser *p); +static asdl_seq *_loop1_249_rule(Parser *p); // file: statements? $ @@ -4208,7 +4212,7 @@ class_def_rule(Parser *p) return _res; } -// class_def_raw: invalid_class_def_raw | 'class' NAME ['(' arguments? ')'] &&':' block +// class_def_raw: invalid_class_def_raw | 'class' NAME ['(' arguments? ')'] ':' block static stmt_ty class_def_raw_rule(Parser *p) { @@ -4250,30 +4254,30 @@ class_def_raw_rule(Parser *p) D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_class_def_raw")); } - { // 'class' NAME ['(' arguments? ')'] &&':' block + { // 'class' NAME ['(' arguments? ')'] ':' block if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block")); + D(fprintf(stderr, "%*c> class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block")); Token * _keyword; Token * _literal; expr_ty a; void *b; asdl_stmt_seq* c; if ( - (_keyword = _PyPegen_expect_token(p, 643)) // token='class' + (_keyword = _PyPegen_expect_token(p, 646)) // token='class' && (a = _PyPegen_name_token(p)) // NAME && (b = _tmp_33_rule(p), !p->error_indicator) // ['(' arguments? ')'] && - (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' + (_literal = _PyPegen_expect_token(p, 11)) // token=':' && (c = block_rule(p)) // block ) { - D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block")); + D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block")); Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); if (_token == NULL) { p->level--; @@ -4293,7 +4297,7 @@ class_def_raw_rule(Parser *p) } p->mark = _mark; D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block")); } _res = NULL; done: @@ -4428,7 +4432,7 @@ function_def_raw_rule(Parser *p) void *params; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 642)) // token='def' + (_keyword = _PyPegen_expect_token(p, 644)) // token='def' && (n = _PyPegen_name_token(p)) // NAME && @@ -4488,7 +4492,7 @@ function_def_raw_rule(Parser *p) if ( (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC' && - (_keyword = _PyPegen_expect_token(p, 642)) // token='def' + (_keyword = _PyPegen_expect_token(p, 644)) // token='def' && (n = _PyPegen_name_token(p)) // NAME && @@ -4633,7 +4637,7 @@ parameters_rule(Parser *p) ) { D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?")); - _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d ); + _res = CHECK_VERSION ( arguments_ty , 8 , "Positional-only parameters are" , _PyPegen_make_arguments ( p , a , NULL , b , c , d ) ); if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; p->level--; @@ -4663,7 +4667,7 @@ parameters_rule(Parser *p) ) { D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?")); - _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c ); + _res = CHECK_VERSION ( arguments_ty , 8 , "Positional-only parameters are" , _PyPegen_make_arguments ( p , NULL , a , NULL , b , c ) ); if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; p->level--; @@ -6229,8 +6233,8 @@ while_stmt_rule(Parser *p) // for_stmt: // | invalid_for_stmt -// | 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block? -// | ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block? +// | 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block? +// | ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block? // | invalid_for_target static stmt_ty for_stmt_rule(Parser *p) @@ -6273,12 +6277,12 @@ for_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_stmt")); } - { // 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block? + { // 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block? if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?")); + D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?")); int _cut_var = 0; Token * _keyword; Token * _keyword_1; @@ -6289,17 +6293,17 @@ for_stmt_rule(Parser *p) expr_ty t; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 640)) // token='for' + (_keyword = _PyPegen_expect_token(p, 642)) // token='for' && (t = star_targets_rule(p)) // star_targets && - (_keyword_1 = _PyPegen_expect_token(p, 641)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 643)) // token='in' && (_cut_var = 1) && (ex = star_expressions_rule(p)) // star_expressions && - (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' + (_literal = _PyPegen_expect_token(p, 11)) // token=':' && (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT? && @@ -6308,7 +6312,7 @@ for_stmt_rule(Parser *p) (el = else_block_rule(p), !p->error_indicator) // else_block? ) { - D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?")); + D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?")); Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); if (_token == NULL) { p->level--; @@ -6328,18 +6332,18 @@ for_stmt_rule(Parser *p) } p->mark = _mark; D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?")); if (_cut_var) { p->level--; return NULL; } } - { // ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block? + { // ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block? if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?")); + D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?")); int _cut_var = 0; Token * _keyword; Token * _keyword_1; @@ -6353,17 +6357,17 @@ for_stmt_rule(Parser *p) if ( (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC' && - (_keyword = _PyPegen_expect_token(p, 640)) // token='for' + (_keyword = _PyPegen_expect_token(p, 642)) // token='for' && (t = star_targets_rule(p)) // star_targets && - (_keyword_1 = _PyPegen_expect_token(p, 641)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 643)) // token='in' && (_cut_var = 1) && (ex = star_expressions_rule(p)) // star_expressions && - (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' + (_literal = _PyPegen_expect_token(p, 11)) // token=':' && (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT? && @@ -6372,7 +6376,7 @@ for_stmt_rule(Parser *p) (el = else_block_rule(p), !p->error_indicator) // else_block? ) { - D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?")); + D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?")); Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); if (_token == NULL) { p->level--; @@ -6392,7 +6396,7 @@ for_stmt_rule(Parser *p) } p->mark = _mark; D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?")); if (_cut_var) { p->level--; return NULL; @@ -6511,7 +6515,7 @@ with_stmt_rule(Parser *p) UNUSED(_end_lineno); // Only used by EXTRA macro int _end_col_offset = _token->end_col_offset; UNUSED(_end_col_offset); // Only used by EXTRA macro - _res = _PyAST_With ( a , b , NULL , EXTRA ); + _res = CHECK_VERSION ( stmt_ty , 9 , "Parenthesized context managers are" , _PyAST_With ( a , b , NULL , EXTRA ) ); if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; p->level--; @@ -6966,7 +6970,7 @@ try_stmt_rule(Parser *p) UNUSED(_end_lineno); // Only used by EXTRA macro int _end_col_offset = _token->end_col_offset; UNUSED(_end_col_offset); // Only used by EXTRA macro - _res = _PyAST_TryStar ( b , ex , el , f , EXTRA ); + _res = CHECK_VERSION ( stmt_ty , 11 , "Exception groups are" , _PyAST_TryStar ( b , ex , el , f , EXTRA ) ); if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; p->level--; @@ -7945,6 +7949,10 @@ closed_pattern_rule(Parser *p) return NULL; } pattern_ty _res = NULL; + if (_PyPegen_is_memoized(p, closed_pattern_type, &_res)) { + p->level--; + return _res; + } int _mark = p->mark; { // literal_pattern if (p->error_indicator) { @@ -8100,6 +8108,7 @@ closed_pattern_rule(Parser *p) } _res = NULL; done: + _PyPegen_insert_memo(p, _mark, closed_pattern_type, _res); p->level--; return _res; } @@ -9623,6 +9632,10 @@ star_pattern_rule(Parser *p) return NULL; } pattern_ty _res = NULL; + if (_PyPegen_is_memoized(p, star_pattern_type, &_res)) { + p->level--; + return _res; + } int _mark = p->mark; if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { p->error_indicator = 1; @@ -9707,6 +9720,7 @@ star_pattern_rule(Parser *p) } _res = NULL; done: + _PyPegen_insert_memo(p, _mark, star_pattern_type, _res); p->level--; return _res; } @@ -11209,7 +11223,7 @@ assignment_expression_rule(Parser *p) UNUSED(_end_lineno); // Only used by EXTRA macro int _end_col_offset = _token->end_col_offset; UNUSED(_end_col_offset); // Only used by EXTRA macro - _res = _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA ); + _res = CHECK_VERSION ( expr_ty , 8 , "Assignment expressions are" , _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA ) ); if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; p->level--; @@ -12189,7 +12203,7 @@ notin_bitwise_or_rule(Parser *p) if ( (_keyword = _PyPegen_expect_token(p, 581)) // token='not' && - (_keyword_1 = _PyPegen_expect_token(p, 641)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 643)) // token='in' && (a = bitwise_or_rule(p)) // bitwise_or ) @@ -12236,7 +12250,7 @@ in_bitwise_or_rule(Parser *p) Token * _keyword; expr_ty a; if ( - (_keyword = _PyPegen_expect_token(p, 641)) // token='in' + (_keyword = _PyPegen_expect_token(p, 643)) // token='in' && (a = bitwise_or_rule(p)) // bitwise_or ) @@ -14645,7 +14659,7 @@ lambda_parameters_rule(Parser *p) ) { D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?")); - _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d ); + _res = CHECK_VERSION ( arguments_ty , 8 , "Positional-only parameters are" , _PyPegen_make_arguments ( p , a , NULL , b , c , d ) ); if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; p->level--; @@ -14675,7 +14689,7 @@ lambda_parameters_rule(Parser *p) ) { D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?")); - _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c ); + _res = CHECK_VERSION ( arguments_ty , 8 , "Positional-only parameters are" , _PyPegen_make_arguments ( p , NULL , a , NULL , b , c ) ); if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; p->level--; @@ -16021,11 +16035,11 @@ for_if_clause_rule(Parser *p) if ( (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC' && - (_keyword = _PyPegen_expect_token(p, 640)) // token='for' + (_keyword = _PyPegen_expect_token(p, 642)) // token='for' && (a = star_targets_rule(p)) // star_targets && - (_keyword_1 = _PyPegen_expect_token(p, 641)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 643)) // token='in' && (_cut_var = 1) && @@ -16064,11 +16078,11 @@ for_if_clause_rule(Parser *p) expr_ty b; asdl_expr_seq* c; if ( - (_keyword = _PyPegen_expect_token(p, 640)) // token='for' + (_keyword = _PyPegen_expect_token(p, 642)) // token='for' && (a = star_targets_rule(p)) // star_targets && - (_keyword_1 = _PyPegen_expect_token(p, 641)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 643)) // token='in' && (_cut_var = 1) && @@ -21424,7 +21438,7 @@ invalid_for_target_rule(Parser *p) if ( (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC? && - (_keyword = _PyPegen_expect_token(p, 640)) // token='for' + (_keyword = _PyPegen_expect_token(p, 642)) // token='for' && (a = star_expressions_rule(p)) // star_expressions ) @@ -21582,8 +21596,8 @@ invalid_import_from_targets_rule(Parser *p) } // invalid_with_stmt: -// | ASYNC? 'with' ','.(expression ['as' star_target])+ &&':' -// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':' +// | ASYNC? 'with' ','.(expression ['as' star_target])+ NEWLINE +// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' NEWLINE static void * invalid_with_stmt_rule(Parser *p) { @@ -21597,17 +21611,17 @@ invalid_with_stmt_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - { // ASYNC? 'with' ','.(expression ['as' star_target])+ &&':' + { // ASYNC? 'with' ','.(expression ['as' star_target])+ NEWLINE if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'")); + D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ NEWLINE")); asdl_seq * _gather_194_var; Token * _keyword; - Token * _literal; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings + Token * newline_var; if ( (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC? && @@ -21615,32 +21629,37 @@ invalid_with_stmt_rule(Parser *p) && (_gather_194_var = _gather_194_rule(p)) // ','.(expression ['as' star_target])+ && - (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' + (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) { - D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'")); - _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _gather_194_var, _literal); + D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ NEWLINE")); + _res = RAISE_SYNTAX_ERROR ( "expected ':'" ); + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + p->level--; + return NULL; + } goto done; } p->mark = _mark; D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ NEWLINE")); } - { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':' + { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' NEWLINE if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'")); + D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' NEWLINE")); asdl_seq * _gather_196_var; Token * _keyword; Token * _literal; Token * _literal_1; - Token * _literal_2; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings void *_opt_var_1; UNUSED(_opt_var_1); // Silence compiler warnings + Token * newline_var; if ( (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC? && @@ -21654,16 +21673,21 @@ invalid_with_stmt_rule(Parser *p) && (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' && - (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' + (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) { - D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'")); - _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _literal, _gather_196_var, _opt_var_1, _literal_1, _literal_2); + D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' NEWLINE")); + _res = RAISE_SYNTAX_ERROR ( "expected ':'" ); + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + p->level--; + return NULL; + } goto done; } p->mark = _mark; D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' NEWLINE")); } _res = NULL; done: @@ -22276,7 +22300,7 @@ invalid_except_star_stmt_indent_rule(Parser *p) } // invalid_match_stmt: -// | "match" subject_expr !':' +// | "match" subject_expr NEWLINE // | "match" subject_expr ':' NEWLINE !INDENT static void * invalid_match_stmt_rule(Parser *p) @@ -22291,23 +22315,24 @@ invalid_match_stmt_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - { // "match" subject_expr !':' + { // "match" subject_expr NEWLINE if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'")); + D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr NEWLINE")); expr_ty _keyword; + Token * newline_var; expr_ty subject_expr_var; if ( (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"' && (subject_expr_var = subject_expr_rule(p)) // subject_expr && - _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':' + (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) { - D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'")); + D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr NEWLINE")); _res = CHECK_VERSION ( void* , 10 , "Pattern matching is" , RAISE_SYNTAX_ERROR ( "expected ':'" ) ); if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -22318,7 +22343,7 @@ invalid_match_stmt_rule(Parser *p) } p->mark = _mark; D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr !':'")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr NEWLINE")); } { // "match" subject_expr ':' NEWLINE !INDENT if (p->error_indicator) { @@ -22362,7 +22387,7 @@ invalid_match_stmt_rule(Parser *p) } // invalid_case_block: -// | "case" patterns guard? !':' +// | "case" patterns guard? NEWLINE // | "case" patterns guard? ':' NEWLINE !INDENT static void * invalid_case_block_rule(Parser *p) @@ -22377,15 +22402,16 @@ invalid_case_block_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - { // "case" patterns guard? !':' + { // "case" patterns guard? NEWLINE if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'")); + D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? NEWLINE")); expr_ty _keyword; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings + Token * newline_var; pattern_ty patterns_var; if ( (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"' @@ -22394,10 +22420,10 @@ invalid_case_block_rule(Parser *p) && (_opt_var = guard_rule(p), !p->error_indicator) // guard? && - _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':' + (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) { - D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'")); + D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? NEWLINE")); _res = RAISE_SYNTAX_ERROR ( "expected ':'" ); if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -22408,7 +22434,7 @@ invalid_case_block_rule(Parser *p) } p->mark = _mark; D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? !':'")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? NEWLINE")); } { // "case" patterns guard? ':' NEWLINE !INDENT if (p->error_indicator) { @@ -22955,7 +22981,9 @@ invalid_while_stmt_rule(Parser *p) return _res; } -// invalid_for_stmt: ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT +// invalid_for_stmt: +// | ASYNC? 'for' star_targets 'in' star_expressions NEWLINE +// | ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT static void * invalid_for_stmt_rule(Parser *p) { @@ -22969,6 +22997,46 @@ invalid_for_stmt_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + { // ASYNC? 'for' star_targets 'in' star_expressions NEWLINE + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> invalid_for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_targets 'in' star_expressions NEWLINE")); + Token * _keyword; + Token * _keyword_1; + void *_opt_var; + UNUSED(_opt_var); // Silence compiler warnings + Token * newline_var; + expr_ty star_expressions_var; + expr_ty star_targets_var; + if ( + (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC? + && + (_keyword = _PyPegen_expect_token(p, 642)) // token='for' + && + (star_targets_var = star_targets_rule(p)) // star_targets + && + (_keyword_1 = _PyPegen_expect_token(p, 643)) // token='in' + && + (star_expressions_var = star_expressions_rule(p)) // star_expressions + && + (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' + ) + { + D(fprintf(stderr, "%*c+ invalid_for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_targets 'in' star_expressions NEWLINE")); + _res = RAISE_SYNTAX_ERROR ( "expected ':'" ); + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + p->level--; + return NULL; + } + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s invalid_for_stmt[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_targets 'in' star_expressions NEWLINE")); + } { // ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT if (p->error_indicator) { p->level--; @@ -22986,11 +23054,11 @@ invalid_for_stmt_rule(Parser *p) if ( (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC? && - (a = _PyPegen_expect_token(p, 640)) // token='for' + (a = _PyPegen_expect_token(p, 642)) // token='for' && (star_targets_var = star_targets_rule(p)) // star_targets && - (_keyword = _PyPegen_expect_token(p, 641)) // token='in' + (_keyword = _PyPegen_expect_token(p, 643)) // token='in' && (star_expressions_var = star_expressions_rule(p)) // star_expressions && @@ -23056,7 +23124,7 @@ invalid_def_raw_rule(Parser *p) if ( (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC? && - (a = _PyPegen_expect_token(p, 642)) // token='def' + (a = _PyPegen_expect_token(p, 644)) // token='def' && (name_var = _PyPegen_name_token(p)) // NAME && @@ -23094,7 +23162,9 @@ invalid_def_raw_rule(Parser *p) return _res; } -// invalid_class_def_raw: 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT +// invalid_class_def_raw: +// | 'class' NAME ['(' arguments? ')'] NEWLINE +// | 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT static void * invalid_class_def_raw_rule(Parser *p) { @@ -23108,6 +23178,40 @@ invalid_class_def_raw_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + { // 'class' NAME ['(' arguments? ')'] NEWLINE + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> invalid_class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] NEWLINE")); + Token * _keyword; + void *_opt_var; + UNUSED(_opt_var); // Silence compiler warnings + expr_ty name_var; + Token * newline_var; + if ( + (_keyword = _PyPegen_expect_token(p, 646)) // token='class' + && + (name_var = _PyPegen_name_token(p)) // NAME + && + (_opt_var = _tmp_213_rule(p), !p->error_indicator) // ['(' arguments? ')'] + && + (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' + ) + { + D(fprintf(stderr, "%*c+ invalid_class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] NEWLINE")); + _res = RAISE_SYNTAX_ERROR ( "expected ':'" ); + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + p->level--; + return NULL; + } + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s invalid_class_def_raw[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] NEWLINE")); + } { // 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT if (p->error_indicator) { p->level--; @@ -23121,11 +23225,11 @@ invalid_class_def_raw_rule(Parser *p) expr_ty name_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 643)) // token='class' + (a = _PyPegen_expect_token(p, 646)) // token='class' && (name_var = _PyPegen_name_token(p)) // NAME && - (_opt_var = _tmp_213_rule(p), !p->error_indicator) // ['(' arguments? ')'] + (_opt_var = _tmp_214_rule(p), !p->error_indicator) // ['(' arguments? ')'] && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -23176,11 +23280,11 @@ invalid_double_starred_kvpairs_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair")); - asdl_seq * _gather_214_var; + asdl_seq * _gather_215_var; Token * _literal; void *invalid_kvpair_var; if ( - (_gather_214_var = _gather_214_rule(p)) // ','.double_starred_kvpair+ + (_gather_215_var = _gather_215_rule(p)) // ','.double_starred_kvpair+ && (_literal = _PyPegen_expect_token(p, 12)) // token=',' && @@ -23188,7 +23292,7 @@ invalid_double_starred_kvpairs_rule(Parser *p) ) { D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair")); - _res = _PyPegen_dummy_name(p, _gather_214_var, _literal, invalid_kvpair_var); + _res = _PyPegen_dummy_name(p, _gather_215_var, _literal, invalid_kvpair_var); goto done; } p->mark = _mark; @@ -23241,7 +23345,7 @@ invalid_double_starred_kvpairs_rule(Parser *p) && (a = _PyPegen_expect_token(p, 11)) // token=':' && - _PyPegen_lookahead(1, _tmp_216_rule, p) + _PyPegen_lookahead(1, _tmp_217_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')")); @@ -23263,7 +23367,10 @@ invalid_double_starred_kvpairs_rule(Parser *p) return _res; } -// invalid_kvpair: expression !(':') | expression ':' '*' bitwise_or | expression ':' +// invalid_kvpair: +// | expression !(':') +// | expression ':' '*' bitwise_or +// | expression ':' &('}' | ',') static void * invalid_kvpair_rule(Parser *p) { @@ -23336,21 +23443,23 @@ invalid_kvpair_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or")); } - { // expression ':' + { // expression ':' &('}' | ',') if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':'")); + D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')")); Token * a; expr_ty expression_var; if ( (expression_var = expression_rule(p)) // expression && (a = _PyPegen_expect_token(p, 11)) // token=':' + && + _PyPegen_lookahead(1, _tmp_218_rule, p) ) { - D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':'")); + D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')")); _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" ); if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -23361,7 +23470,7 @@ invalid_kvpair_rule(Parser *p) } p->mark = _mark; D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':'")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' &('}' | ',')")); } _res = NULL; done: @@ -23781,7 +23890,7 @@ _tmp_7_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 642)) // token='def' + (_keyword = _PyPegen_expect_token(p, 644)) // token='def' ) { D(fprintf(stderr, "%*c+ _tmp_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'")); @@ -23858,7 +23967,7 @@ _tmp_8_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 643)) // token='class' + (_keyword = _PyPegen_expect_token(p, 646)) // token='class' ) { D(fprintf(stderr, "%*c+ _tmp_8[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'")); @@ -23974,7 +24083,7 @@ _tmp_10_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 640)) // token='for' + (_keyword = _PyPegen_expect_token(p, 642)) // token='for' ) { D(fprintf(stderr, "%*c+ _tmp_10[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'")); @@ -24203,12 +24312,12 @@ _loop1_14_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')")); - void *_tmp_217_var; + void *_tmp_219_var; while ( - (_tmp_217_var = _tmp_217_rule(p)) // star_targets '=' + (_tmp_219_var = _tmp_219_rule(p)) // star_targets '=' ) { - _res = _tmp_217_var; + _res = _tmp_219_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -24785,12 +24894,12 @@ _loop0_24_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop0_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')")); - void *_tmp_218_var; + void *_tmp_220_var; while ( - (_tmp_218_var = _tmp_218_rule(p)) // '.' | '...' + (_tmp_220_var = _tmp_220_rule(p)) // '.' | '...' ) { - _res = _tmp_218_var; + _res = _tmp_220_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -24854,12 +24963,12 @@ _loop1_25_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')")); - void *_tmp_219_var; + void *_tmp_221_var; while ( - (_tmp_219_var = _tmp_219_rule(p)) // '.' | '...' + (_tmp_221_var = _tmp_221_rule(p)) // '.' | '...' ) { - _res = _tmp_219_var; + _res = _tmp_221_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -25262,12 +25371,12 @@ _loop1_32_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)")); - void *_tmp_220_var; + void *_tmp_222_var; while ( - (_tmp_220_var = _tmp_220_rule(p)) // '@' named_expression NEWLINE + (_tmp_222_var = _tmp_222_rule(p)) // '@' named_expression NEWLINE ) { - _res = _tmp_220_var; + _res = _tmp_222_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -28351,12 +28460,12 @@ _loop1_80_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_80[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)")); - void *_tmp_221_var; + void *_tmp_223_var; while ( - (_tmp_221_var = _tmp_221_rule(p)) // ',' expression + (_tmp_223_var = _tmp_223_rule(p)) // ',' expression ) { - _res = _tmp_221_var; + _res = _tmp_223_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -28425,12 +28534,12 @@ _loop1_81_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_81[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)")); - void *_tmp_222_var; + void *_tmp_224_var; while ( - (_tmp_222_var = _tmp_222_rule(p)) // ',' star_expression + (_tmp_224_var = _tmp_224_rule(p)) // ',' star_expression ) { - _res = _tmp_222_var; + _res = _tmp_224_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -28619,12 +28728,12 @@ _loop1_84_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)")); - void *_tmp_223_var; + void *_tmp_225_var; while ( - (_tmp_223_var = _tmp_223_rule(p)) // 'or' conjunction + (_tmp_225_var = _tmp_225_rule(p)) // 'or' conjunction ) { - _res = _tmp_223_var; + _res = _tmp_225_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -28693,12 +28802,12 @@ _loop1_85_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)")); - void *_tmp_224_var; + void *_tmp_226_var; while ( - (_tmp_224_var = _tmp_224_rule(p)) // 'and' inversion + (_tmp_226_var = _tmp_226_rule(p)) // 'and' inversion ) { - _res = _tmp_224_var; + _res = _tmp_226_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -28890,7 +28999,7 @@ _loop0_89_rule(Parser *p) while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_225_rule(p)) // slice | starred_expression + (elem = _tmp_227_rule(p)) // slice | starred_expression ) { _res = elem; @@ -28956,7 +29065,7 @@ _gather_88_rule(Parser *p) void *elem; asdl_seq * seq; if ( - (elem = _tmp_225_rule(p)) // slice | starred_expression + (elem = _tmp_227_rule(p)) // slice | starred_expression && (seq = _loop0_89_rule(p)) // _loop0_89 ) @@ -30660,12 +30769,12 @@ _loop0_114_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop0_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)")); - void *_tmp_226_var; + void *_tmp_228_var; while ( - (_tmp_226_var = _tmp_226_rule(p)) // 'if' disjunction + (_tmp_228_var = _tmp_228_rule(p)) // 'if' disjunction ) { - _res = _tmp_226_var; + _res = _tmp_228_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -30729,12 +30838,12 @@ _loop0_115_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop0_115[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)")); - void *_tmp_227_var; + void *_tmp_229_var; while ( - (_tmp_227_var = _tmp_227_rule(p)) // 'if' disjunction + (_tmp_229_var = _tmp_229_rule(p)) // 'if' disjunction ) { - _res = _tmp_227_var; + _res = _tmp_229_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -30863,7 +30972,7 @@ _loop0_118_rule(Parser *p) while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_228_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'=' + (elem = _tmp_230_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'=' ) { _res = elem; @@ -30930,7 +31039,7 @@ _gather_117_rule(Parser *p) void *elem; asdl_seq * seq; if ( - (elem = _tmp_228_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'=' + (elem = _tmp_230_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'=' && (seq = _loop0_118_rule(p)) // _loop0_118 ) @@ -31506,12 +31615,12 @@ _loop0_128_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop0_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)")); - void *_tmp_229_var; + void *_tmp_231_var; while ( - (_tmp_229_var = _tmp_229_rule(p)) // ',' star_target + (_tmp_231_var = _tmp_231_rule(p)) // ',' star_target ) { - _res = _tmp_229_var; + _res = _tmp_231_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -31695,12 +31804,12 @@ _loop1_131_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)")); - void *_tmp_230_var; + void *_tmp_232_var; while ( - (_tmp_230_var = _tmp_230_rule(p)) // ',' star_target + (_tmp_232_var = _tmp_232_rule(p)) // ',' star_target ) { - _res = _tmp_230_var; + _res = _tmp_232_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -33070,12 +33179,12 @@ _loop0_153_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop0_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')")); - void *_tmp_231_var; + void *_tmp_233_var; while ( - (_tmp_231_var = _tmp_231_rule(p)) // star_targets '=' + (_tmp_233_var = _tmp_233_rule(p)) // star_targets '=' ) { - _res = _tmp_231_var; + _res = _tmp_233_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -33139,12 +33248,12 @@ _loop0_154_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop0_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')")); - void *_tmp_232_var; + void *_tmp_234_var; while ( - (_tmp_232_var = _tmp_232_rule(p)) // star_targets '=' + (_tmp_234_var = _tmp_234_rule(p)) // star_targets '=' ) { - _res = _tmp_232_var; + _res = _tmp_234_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -34194,15 +34303,15 @@ _tmp_170_rule(Parser *p) } D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')")); Token * _literal; - void *_tmp_233_var; + void *_tmp_235_var; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (_tmp_233_var = _tmp_233_rule(p)) // ')' | '**' + (_tmp_235_var = _tmp_235_rule(p)) // ')' | '**' ) { D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')")); - _res = _PyPegen_dummy_name(p, _literal, _tmp_233_var); + _res = _PyPegen_dummy_name(p, _literal, _tmp_235_var); goto done; } p->mark = _mark; @@ -35378,15 +35487,15 @@ _tmp_188_rule(Parser *p) } D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')")); Token * _literal; - void *_tmp_234_var; + void *_tmp_236_var; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (_tmp_234_var = _tmp_234_rule(p)) // ':' | '**' + (_tmp_236_var = _tmp_236_rule(p)) // ':' | '**' ) { D(fprintf(stderr, "%*c+ _tmp_188[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')")); - _res = _PyPegen_dummy_name(p, _literal, _tmp_234_var); + _res = _PyPegen_dummy_name(p, _literal, _tmp_236_var); goto done; } p->mark = _mark; @@ -35773,7 +35882,7 @@ _loop0_195_rule(Parser *p) while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_235_rule(p)) // expression ['as' star_target] + (elem = _tmp_237_rule(p)) // expression ['as' star_target] ) { _res = elem; @@ -35839,7 +35948,7 @@ _gather_194_rule(Parser *p) void *elem; asdl_seq * seq; if ( - (elem = _tmp_235_rule(p)) // expression ['as' star_target] + (elem = _tmp_237_rule(p)) // expression ['as' star_target] && (seq = _loop0_195_rule(p)) // _loop0_195 ) @@ -35893,7 +36002,7 @@ _loop0_197_rule(Parser *p) while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_236_rule(p)) // expressions ['as' star_target] + (elem = _tmp_238_rule(p)) // expressions ['as' star_target] ) { _res = elem; @@ -35959,7 +36068,7 @@ _gather_196_rule(Parser *p) void *elem; asdl_seq * seq; if ( - (elem = _tmp_236_rule(p)) // expressions ['as' star_target] + (elem = _tmp_238_rule(p)) // expressions ['as' star_target] && (seq = _loop0_197_rule(p)) // _loop0_197 ) @@ -36013,7 +36122,7 @@ _loop0_199_rule(Parser *p) while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_237_rule(p)) // expression ['as' star_target] + (elem = _tmp_239_rule(p)) // expression ['as' star_target] ) { _res = elem; @@ -36079,7 +36188,7 @@ _gather_198_rule(Parser *p) void *elem; asdl_seq * seq; if ( - (elem = _tmp_237_rule(p)) // expression ['as' star_target] + (elem = _tmp_239_rule(p)) // expression ['as' star_target] && (seq = _loop0_199_rule(p)) // _loop0_199 ) @@ -36133,7 +36242,7 @@ _loop0_201_rule(Parser *p) while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_238_rule(p)) // expressions ['as' star_target] + (elem = _tmp_240_rule(p)) // expressions ['as' star_target] ) { _res = elem; @@ -36199,7 +36308,7 @@ _gather_200_rule(Parser *p) void *elem; asdl_seq * seq; if ( - (elem = _tmp_238_rule(p)) // expressions ['as' star_target] + (elem = _tmp_240_rule(p)) // expressions ['as' star_target] && (seq = _loop0_201_rule(p)) // _loop0_201 ) @@ -36365,13 +36474,13 @@ _tmp_204_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _tmp_204[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(except_block+ except_star_block)")); - void *_tmp_239_var; + void *_tmp_241_var; if ( - (_tmp_239_var = _tmp_239_rule(p)) // except_block+ except_star_block + (_tmp_241_var = _tmp_241_rule(p)) // except_block+ except_star_block ) { D(fprintf(stderr, "%*c+ _tmp_204[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(except_block+ except_star_block)")); - _res = _tmp_239_var; + _res = _tmp_241_var; goto done; } p->mark = _mark; @@ -36384,13 +36493,13 @@ _tmp_204_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _tmp_204[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(except_star_block+ except_block)")); - void *_tmp_240_var; + void *_tmp_242_var; if ( - (_tmp_240_var = _tmp_240_rule(p)) // except_star_block+ except_block + (_tmp_242_var = _tmp_242_rule(p)) // except_star_block+ except_block ) { D(fprintf(stderr, "%*c+ _tmp_204[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(except_star_block+ except_block)")); - _res = _tmp_240_var; + _res = _tmp_242_var; goto done; } p->mark = _mark; @@ -36828,9 +36937,55 @@ _tmp_213_rule(Parser *p) return _res; } -// _loop0_215: ',' double_starred_kvpair +// _tmp_214: '(' arguments? ')' +static void * +_tmp_214_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + void * _res = NULL; + int _mark = p->mark; + { // '(' arguments? ')' + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_214[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'")); + Token * _literal; + Token * _literal_1; + void *_opt_var; + UNUSED(_opt_var); // Silence compiler warnings + if ( + (_literal = _PyPegen_expect_token(p, 7)) // token='(' + && + (_opt_var = arguments_rule(p), !p->error_indicator) // arguments? + && + (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' + ) + { + D(fprintf(stderr, "%*c+ _tmp_214[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'")); + _res = _PyPegen_dummy_name(p, _literal, _opt_var, _literal_1); + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_214[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// _loop0_216: ',' double_starred_kvpair static asdl_seq * -_loop0_215_rule(Parser *p) +_loop0_216_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -36857,7 +37012,7 @@ _loop0_215_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_215[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair")); + D(fprintf(stderr, "%*c> _loop0_216[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair")); Token * _literal; KeyValuePair* elem; while ( @@ -36888,7 +37043,7 @@ _loop0_215_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_215[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_216[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -36901,14 +37056,14 @@ _loop0_215_rule(Parser *p) } for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); PyMem_Free(_children); - _PyPegen_insert_memo(p, _start_mark, _loop0_215_type, _seq); + _PyPegen_insert_memo(p, _start_mark, _loop0_216_type, _seq); p->level--; return _seq; } -// _gather_214: double_starred_kvpair _loop0_215 +// _gather_215: double_starred_kvpair _loop0_216 static asdl_seq * -_gather_214_rule(Parser *p) +_gather_215_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -36920,27 +37075,27 @@ _gather_214_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // double_starred_kvpair _loop0_215 + { // double_starred_kvpair _loop0_216 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_214[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_215")); + D(fprintf(stderr, "%*c> _gather_215[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_216")); KeyValuePair* elem; asdl_seq * seq; if ( (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair && - (seq = _loop0_215_rule(p)) // _loop0_215 + (seq = _loop0_216_rule(p)) // _loop0_216 ) { - D(fprintf(stderr, "%*c+ _gather_214[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_215")); + D(fprintf(stderr, "%*c+ _gather_215[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_216")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_214[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_215")); + D(fprintf(stderr, "%*c%s _gather_215[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_216")); } _res = NULL; done: @@ -36948,9 +37103,9 @@ _gather_214_rule(Parser *p) return _res; } -// _tmp_216: '}' | ',' +// _tmp_217: '}' | ',' static void * -_tmp_216_rule(Parser *p) +_tmp_217_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -36967,18 +37122,18 @@ _tmp_216_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_216[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c> _tmp_217[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 26)) // token='}' ) { - D(fprintf(stderr, "%*c+ _tmp_216[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c+ _tmp_217[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_216[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_217[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'")); } { // ',' @@ -36986,18 +37141,18 @@ _tmp_216_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_216[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_217[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_216[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_217[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_216[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_217[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } _res = NULL; @@ -37006,9 +37161,67 @@ _tmp_216_rule(Parser *p) return _res; } -// _tmp_217: star_targets '=' +// _tmp_218: '}' | ',' static void * -_tmp_217_rule(Parser *p) +_tmp_218_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + void * _res = NULL; + int _mark = p->mark; + { // '}' + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_218[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); + Token * _literal; + if ( + (_literal = _PyPegen_expect_token(p, 26)) // token='}' + ) + { + D(fprintf(stderr, "%*c+ _tmp_218[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); + _res = _literal; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_218[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'")); + } + { // ',' + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_218[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + Token * _literal; + if ( + (_literal = _PyPegen_expect_token(p, 12)) // token=',' + ) + { + D(fprintf(stderr, "%*c+ _tmp_218[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + _res = _literal; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_218[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// _tmp_219: star_targets '=' +static void * +_tmp_219_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37025,7 +37238,7 @@ _tmp_217_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_217[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c> _tmp_219[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); Token * _literal; expr_ty z; if ( @@ -37034,7 +37247,7 @@ _tmp_217_rule(Parser *p) (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_217[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c+ _tmp_219[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); _res = z; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -37044,7 +37257,7 @@ _tmp_217_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_217[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_219[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='")); } _res = NULL; @@ -37053,9 +37266,9 @@ _tmp_217_rule(Parser *p) return _res; } -// _tmp_218: '.' | '...' +// _tmp_220: '.' | '...' static void * -_tmp_218_rule(Parser *p) +_tmp_220_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37072,18 +37285,18 @@ _tmp_218_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_218[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'")); + D(fprintf(stderr, "%*c> _tmp_220[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 23)) // token='.' ) { - D(fprintf(stderr, "%*c+ _tmp_218[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'")); + D(fprintf(stderr, "%*c+ _tmp_220[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_218[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_220[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'")); } { // '...' @@ -37091,18 +37304,18 @@ _tmp_218_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_218[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'")); + D(fprintf(stderr, "%*c> _tmp_220[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 52)) // token='...' ) { - D(fprintf(stderr, "%*c+ _tmp_218[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'")); + D(fprintf(stderr, "%*c+ _tmp_220[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_218[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_220[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'")); } _res = NULL; @@ -37111,9 +37324,9 @@ _tmp_218_rule(Parser *p) return _res; } -// _tmp_219: '.' | '...' +// _tmp_221: '.' | '...' static void * -_tmp_219_rule(Parser *p) +_tmp_221_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37130,18 +37343,18 @@ _tmp_219_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_219[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'")); + D(fprintf(stderr, "%*c> _tmp_221[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 23)) // token='.' ) { - D(fprintf(stderr, "%*c+ _tmp_219[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'")); + D(fprintf(stderr, "%*c+ _tmp_221[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_219[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_221[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'")); } { // '...' @@ -37149,18 +37362,18 @@ _tmp_219_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_219[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'")); + D(fprintf(stderr, "%*c> _tmp_221[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 52)) // token='...' ) { - D(fprintf(stderr, "%*c+ _tmp_219[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'")); + D(fprintf(stderr, "%*c+ _tmp_221[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_219[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_221[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'")); } _res = NULL; @@ -37169,9 +37382,9 @@ _tmp_219_rule(Parser *p) return _res; } -// _tmp_220: '@' named_expression NEWLINE +// _tmp_222: '@' named_expression NEWLINE static void * -_tmp_220_rule(Parser *p) +_tmp_222_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37188,7 +37401,7 @@ _tmp_220_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_220[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE")); + D(fprintf(stderr, "%*c> _tmp_222[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE")); Token * _literal; expr_ty f; Token * newline_var; @@ -37200,7 +37413,7 @@ _tmp_220_rule(Parser *p) (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) { - D(fprintf(stderr, "%*c+ _tmp_220[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE")); + D(fprintf(stderr, "%*c+ _tmp_222[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE")); _res = f; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -37210,7 +37423,7 @@ _tmp_220_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_220[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_222[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE")); } _res = NULL; @@ -37219,9 +37432,9 @@ _tmp_220_rule(Parser *p) return _res; } -// _tmp_221: ',' expression +// _tmp_223: ',' expression static void * -_tmp_221_rule(Parser *p) +_tmp_223_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37238,7 +37451,7 @@ _tmp_221_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_221[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression")); + D(fprintf(stderr, "%*c> _tmp_223[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression")); Token * _literal; expr_ty c; if ( @@ -37247,7 +37460,7 @@ _tmp_221_rule(Parser *p) (c = expression_rule(p)) // expression ) { - D(fprintf(stderr, "%*c+ _tmp_221[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression")); + D(fprintf(stderr, "%*c+ _tmp_223[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -37257,7 +37470,7 @@ _tmp_221_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_221[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_223[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression")); } _res = NULL; @@ -37266,9 +37479,9 @@ _tmp_221_rule(Parser *p) return _res; } -// _tmp_222: ',' star_expression +// _tmp_224: ',' star_expression static void * -_tmp_222_rule(Parser *p) +_tmp_224_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37285,7 +37498,7 @@ _tmp_222_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_222[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression")); + D(fprintf(stderr, "%*c> _tmp_224[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression")); Token * _literal; expr_ty c; if ( @@ -37294,7 +37507,7 @@ _tmp_222_rule(Parser *p) (c = star_expression_rule(p)) // star_expression ) { - D(fprintf(stderr, "%*c+ _tmp_222[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression")); + D(fprintf(stderr, "%*c+ _tmp_224[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -37304,7 +37517,7 @@ _tmp_222_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_222[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_224[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression")); } _res = NULL; @@ -37313,9 +37526,9 @@ _tmp_222_rule(Parser *p) return _res; } -// _tmp_223: 'or' conjunction +// _tmp_225: 'or' conjunction static void * -_tmp_223_rule(Parser *p) +_tmp_225_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37332,7 +37545,7 @@ _tmp_223_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_223[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction")); + D(fprintf(stderr, "%*c> _tmp_225[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction")); Token * _keyword; expr_ty c; if ( @@ -37341,7 +37554,7 @@ _tmp_223_rule(Parser *p) (c = conjunction_rule(p)) // conjunction ) { - D(fprintf(stderr, "%*c+ _tmp_223[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction")); + D(fprintf(stderr, "%*c+ _tmp_225[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -37351,7 +37564,7 @@ _tmp_223_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_223[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_225[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction")); } _res = NULL; @@ -37360,9 +37573,9 @@ _tmp_223_rule(Parser *p) return _res; } -// _tmp_224: 'and' inversion +// _tmp_226: 'and' inversion static void * -_tmp_224_rule(Parser *p) +_tmp_226_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37379,7 +37592,7 @@ _tmp_224_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_224[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion")); + D(fprintf(stderr, "%*c> _tmp_226[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion")); Token * _keyword; expr_ty c; if ( @@ -37388,7 +37601,7 @@ _tmp_224_rule(Parser *p) (c = inversion_rule(p)) // inversion ) { - D(fprintf(stderr, "%*c+ _tmp_224[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion")); + D(fprintf(stderr, "%*c+ _tmp_226[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -37398,7 +37611,7 @@ _tmp_224_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_224[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_226[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion")); } _res = NULL; @@ -37407,9 +37620,9 @@ _tmp_224_rule(Parser *p) return _res; } -// _tmp_225: slice | starred_expression +// _tmp_227: slice | starred_expression static void * -_tmp_225_rule(Parser *p) +_tmp_227_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37426,18 +37639,18 @@ _tmp_225_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_225[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice")); + D(fprintf(stderr, "%*c> _tmp_227[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice")); expr_ty slice_var; if ( (slice_var = slice_rule(p)) // slice ) { - D(fprintf(stderr, "%*c+ _tmp_225[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice")); + D(fprintf(stderr, "%*c+ _tmp_227[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice")); _res = slice_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_225[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_227[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice")); } { // starred_expression @@ -37445,18 +37658,18 @@ _tmp_225_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_225[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression")); + D(fprintf(stderr, "%*c> _tmp_227[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression")); expr_ty starred_expression_var; if ( (starred_expression_var = starred_expression_rule(p)) // starred_expression ) { - D(fprintf(stderr, "%*c+ _tmp_225[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression")); + D(fprintf(stderr, "%*c+ _tmp_227[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression")); _res = starred_expression_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_225[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_227[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression")); } _res = NULL; @@ -37465,9 +37678,9 @@ _tmp_225_rule(Parser *p) return _res; } -// _tmp_226: 'if' disjunction +// _tmp_228: 'if' disjunction static void * -_tmp_226_rule(Parser *p) +_tmp_228_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37484,7 +37697,7 @@ _tmp_226_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_226[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); + D(fprintf(stderr, "%*c> _tmp_228[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); Token * _keyword; expr_ty z; if ( @@ -37493,7 +37706,7 @@ _tmp_226_rule(Parser *p) (z = disjunction_rule(p)) // disjunction ) { - D(fprintf(stderr, "%*c+ _tmp_226[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); + D(fprintf(stderr, "%*c+ _tmp_228[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); _res = z; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -37503,7 +37716,7 @@ _tmp_226_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_226[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_228[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction")); } _res = NULL; @@ -37512,9 +37725,9 @@ _tmp_226_rule(Parser *p) return _res; } -// _tmp_227: 'if' disjunction +// _tmp_229: 'if' disjunction static void * -_tmp_227_rule(Parser *p) +_tmp_229_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37531,7 +37744,7 @@ _tmp_227_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_227[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); + D(fprintf(stderr, "%*c> _tmp_229[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); Token * _keyword; expr_ty z; if ( @@ -37540,7 +37753,7 @@ _tmp_227_rule(Parser *p) (z = disjunction_rule(p)) // disjunction ) { - D(fprintf(stderr, "%*c+ _tmp_227[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); + D(fprintf(stderr, "%*c+ _tmp_229[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); _res = z; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -37550,7 +37763,7 @@ _tmp_227_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_227[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_229[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction")); } _res = NULL; @@ -37559,9 +37772,9 @@ _tmp_227_rule(Parser *p) return _res; } -// _tmp_228: starred_expression | (assignment_expression | expression !':=') !'=' +// _tmp_230: starred_expression | (assignment_expression | expression !':=') !'=' static void * -_tmp_228_rule(Parser *p) +_tmp_230_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37578,18 +37791,18 @@ _tmp_228_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_228[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression")); + D(fprintf(stderr, "%*c> _tmp_230[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression")); expr_ty starred_expression_var; if ( (starred_expression_var = starred_expression_rule(p)) // starred_expression ) { - D(fprintf(stderr, "%*c+ _tmp_228[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression")); + D(fprintf(stderr, "%*c+ _tmp_230[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression")); _res = starred_expression_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_228[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_230[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression")); } { // (assignment_expression | expression !':=') !'=' @@ -37597,20 +37810,20 @@ _tmp_228_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_228[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='")); - void *_tmp_241_var; + D(fprintf(stderr, "%*c> _tmp_230[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='")); + void *_tmp_243_var; if ( - (_tmp_241_var = _tmp_241_rule(p)) // assignment_expression | expression !':=' + (_tmp_243_var = _tmp_243_rule(p)) // assignment_expression | expression !':=' && _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_228[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='")); - _res = _tmp_241_var; + D(fprintf(stderr, "%*c+ _tmp_230[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='")); + _res = _tmp_243_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_228[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_230[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(assignment_expression | expression !':=') !'='")); } _res = NULL; @@ -37619,9 +37832,9 @@ _tmp_228_rule(Parser *p) return _res; } -// _tmp_229: ',' star_target +// _tmp_231: ',' star_target static void * -_tmp_229_rule(Parser *p) +_tmp_231_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37638,7 +37851,7 @@ _tmp_229_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_229[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target")); + D(fprintf(stderr, "%*c> _tmp_231[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target")); Token * _literal; expr_ty c; if ( @@ -37647,7 +37860,7 @@ _tmp_229_rule(Parser *p) (c = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_229[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target")); + D(fprintf(stderr, "%*c+ _tmp_231[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -37657,7 +37870,7 @@ _tmp_229_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_229[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_231[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target")); } _res = NULL; @@ -37666,9 +37879,9 @@ _tmp_229_rule(Parser *p) return _res; } -// _tmp_230: ',' star_target +// _tmp_232: ',' star_target static void * -_tmp_230_rule(Parser *p) +_tmp_232_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37685,7 +37898,7 @@ _tmp_230_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_230[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target")); + D(fprintf(stderr, "%*c> _tmp_232[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target")); Token * _literal; expr_ty c; if ( @@ -37694,7 +37907,7 @@ _tmp_230_rule(Parser *p) (c = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_230[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target")); + D(fprintf(stderr, "%*c+ _tmp_232[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -37704,7 +37917,7 @@ _tmp_230_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_230[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_232[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target")); } _res = NULL; @@ -37713,9 +37926,9 @@ _tmp_230_rule(Parser *p) return _res; } -// _tmp_231: star_targets '=' +// _tmp_233: star_targets '=' static void * -_tmp_231_rule(Parser *p) +_tmp_233_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37732,7 +37945,7 @@ _tmp_231_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_231[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c> _tmp_233[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); Token * _literal; expr_ty star_targets_var; if ( @@ -37741,12 +37954,12 @@ _tmp_231_rule(Parser *p) (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_231[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c+ _tmp_233[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); _res = _PyPegen_dummy_name(p, star_targets_var, _literal); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_231[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_233[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='")); } _res = NULL; @@ -37755,9 +37968,9 @@ _tmp_231_rule(Parser *p) return _res; } -// _tmp_232: star_targets '=' +// _tmp_234: star_targets '=' static void * -_tmp_232_rule(Parser *p) +_tmp_234_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37774,7 +37987,7 @@ _tmp_232_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_232[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c> _tmp_234[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); Token * _literal; expr_ty star_targets_var; if ( @@ -37783,12 +37996,12 @@ _tmp_232_rule(Parser *p) (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_232[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c+ _tmp_234[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); _res = _PyPegen_dummy_name(p, star_targets_var, _literal); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_232[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_234[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='")); } _res = NULL; @@ -37797,9 +38010,9 @@ _tmp_232_rule(Parser *p) return _res; } -// _tmp_233: ')' | '**' +// _tmp_235: ')' | '**' static void * -_tmp_233_rule(Parser *p) +_tmp_235_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37816,18 +38029,18 @@ _tmp_233_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_233[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c> _tmp_235[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 8)) // token=')' ) { - D(fprintf(stderr, "%*c+ _tmp_233[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c+ _tmp_235[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_233[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_235[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } { // '**' @@ -37835,18 +38048,18 @@ _tmp_233_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_233[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c> _tmp_235[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 35)) // token='**' ) { - D(fprintf(stderr, "%*c+ _tmp_233[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c+ _tmp_235[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_233[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_235[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'")); } _res = NULL; @@ -37855,9 +38068,9 @@ _tmp_233_rule(Parser *p) return _res; } -// _tmp_234: ':' | '**' +// _tmp_236: ':' | '**' static void * -_tmp_234_rule(Parser *p) +_tmp_236_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37874,18 +38087,18 @@ _tmp_234_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_234[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_236[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_234[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_236[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_234[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_236[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } { // '**' @@ -37893,18 +38106,18 @@ _tmp_234_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_234[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c> _tmp_236[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 35)) // token='**' ) { - D(fprintf(stderr, "%*c+ _tmp_234[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c+ _tmp_236[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_234[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_236[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'")); } _res = NULL; @@ -37913,9 +38126,9 @@ _tmp_234_rule(Parser *p) return _res; } -// _tmp_235: expression ['as' star_target] +// _tmp_237: expression ['as' star_target] static void * -_tmp_235_rule(Parser *p) +_tmp_237_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37932,22 +38145,22 @@ _tmp_235_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_235[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); + D(fprintf(stderr, "%*c> _tmp_237[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings expr_ty expression_var; if ( (expression_var = expression_rule(p)) // expression && - (_opt_var = _tmp_242_rule(p), !p->error_indicator) // ['as' star_target] + (_opt_var = _tmp_244_rule(p), !p->error_indicator) // ['as' star_target] ) { - D(fprintf(stderr, "%*c+ _tmp_235[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); + D(fprintf(stderr, "%*c+ _tmp_237[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); _res = _PyPegen_dummy_name(p, expression_var, _opt_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_235[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_237[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]")); } _res = NULL; @@ -37956,9 +38169,9 @@ _tmp_235_rule(Parser *p) return _res; } -// _tmp_236: expressions ['as' star_target] +// _tmp_238: expressions ['as' star_target] static void * -_tmp_236_rule(Parser *p) +_tmp_238_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37975,22 +38188,22 @@ _tmp_236_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_236[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); + D(fprintf(stderr, "%*c> _tmp_238[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings expr_ty expressions_var; if ( (expressions_var = expressions_rule(p)) // expressions && - (_opt_var = _tmp_243_rule(p), !p->error_indicator) // ['as' star_target] + (_opt_var = _tmp_245_rule(p), !p->error_indicator) // ['as' star_target] ) { - D(fprintf(stderr, "%*c+ _tmp_236[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); + D(fprintf(stderr, "%*c+ _tmp_238[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); _res = _PyPegen_dummy_name(p, expressions_var, _opt_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_236[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_238[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]")); } _res = NULL; @@ -37999,9 +38212,9 @@ _tmp_236_rule(Parser *p) return _res; } -// _tmp_237: expression ['as' star_target] +// _tmp_239: expression ['as' star_target] static void * -_tmp_237_rule(Parser *p) +_tmp_239_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38018,22 +38231,22 @@ _tmp_237_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_237[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); + D(fprintf(stderr, "%*c> _tmp_239[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings expr_ty expression_var; if ( (expression_var = expression_rule(p)) // expression && - (_opt_var = _tmp_244_rule(p), !p->error_indicator) // ['as' star_target] + (_opt_var = _tmp_246_rule(p), !p->error_indicator) // ['as' star_target] ) { - D(fprintf(stderr, "%*c+ _tmp_237[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); + D(fprintf(stderr, "%*c+ _tmp_239[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); _res = _PyPegen_dummy_name(p, expression_var, _opt_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_237[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_239[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]")); } _res = NULL; @@ -38042,9 +38255,9 @@ _tmp_237_rule(Parser *p) return _res; } -// _tmp_238: expressions ['as' star_target] +// _tmp_240: expressions ['as' star_target] static void * -_tmp_238_rule(Parser *p) +_tmp_240_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38061,22 +38274,22 @@ _tmp_238_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_238[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); + D(fprintf(stderr, "%*c> _tmp_240[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings expr_ty expressions_var; if ( (expressions_var = expressions_rule(p)) // expressions && - (_opt_var = _tmp_245_rule(p), !p->error_indicator) // ['as' star_target] + (_opt_var = _tmp_247_rule(p), !p->error_indicator) // ['as' star_target] ) { - D(fprintf(stderr, "%*c+ _tmp_238[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); + D(fprintf(stderr, "%*c+ _tmp_240[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); _res = _PyPegen_dummy_name(p, expressions_var, _opt_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_238[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_240[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]")); } _res = NULL; @@ -38085,9 +38298,9 @@ _tmp_238_rule(Parser *p) return _res; } -// _tmp_239: except_block+ except_star_block +// _tmp_241: except_block+ except_star_block static void * -_tmp_239_rule(Parser *p) +_tmp_241_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38104,21 +38317,21 @@ _tmp_239_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_239[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block+ except_star_block")); - asdl_seq * _loop1_246_var; + D(fprintf(stderr, "%*c> _tmp_241[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block+ except_star_block")); + asdl_seq * _loop1_248_var; excepthandler_ty except_star_block_var; if ( - (_loop1_246_var = _loop1_246_rule(p)) // except_block+ + (_loop1_248_var = _loop1_248_rule(p)) // except_block+ && (except_star_block_var = except_star_block_rule(p)) // except_star_block ) { - D(fprintf(stderr, "%*c+ _tmp_239[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "except_block+ except_star_block")); - _res = _PyPegen_dummy_name(p, _loop1_246_var, except_star_block_var); + D(fprintf(stderr, "%*c+ _tmp_241[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "except_block+ except_star_block")); + _res = _PyPegen_dummy_name(p, _loop1_248_var, except_star_block_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_239[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_241[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block+ except_star_block")); } _res = NULL; @@ -38127,9 +38340,9 @@ _tmp_239_rule(Parser *p) return _res; } -// _tmp_240: except_star_block+ except_block +// _tmp_242: except_star_block+ except_block static void * -_tmp_240_rule(Parser *p) +_tmp_242_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38146,21 +38359,21 @@ _tmp_240_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_240[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_star_block+ except_block")); - asdl_seq * _loop1_247_var; + D(fprintf(stderr, "%*c> _tmp_242[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_star_block+ except_block")); + asdl_seq * _loop1_249_var; excepthandler_ty except_block_var; if ( - (_loop1_247_var = _loop1_247_rule(p)) // except_star_block+ + (_loop1_249_var = _loop1_249_rule(p)) // except_star_block+ && (except_block_var = except_block_rule(p)) // except_block ) { - D(fprintf(stderr, "%*c+ _tmp_240[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "except_star_block+ except_block")); - _res = _PyPegen_dummy_name(p, _loop1_247_var, except_block_var); + D(fprintf(stderr, "%*c+ _tmp_242[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "except_star_block+ except_block")); + _res = _PyPegen_dummy_name(p, _loop1_249_var, except_block_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_240[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_242[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_star_block+ except_block")); } _res = NULL; @@ -38169,9 +38382,9 @@ _tmp_240_rule(Parser *p) return _res; } -// _tmp_241: assignment_expression | expression !':=' +// _tmp_243: assignment_expression | expression !':=' static void * -_tmp_241_rule(Parser *p) +_tmp_243_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38188,18 +38401,18 @@ _tmp_241_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_241[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression")); + D(fprintf(stderr, "%*c> _tmp_243[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression")); expr_ty assignment_expression_var; if ( (assignment_expression_var = assignment_expression_rule(p)) // assignment_expression ) { - D(fprintf(stderr, "%*c+ _tmp_241[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression")); + D(fprintf(stderr, "%*c+ _tmp_243[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression")); _res = assignment_expression_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_241[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_243[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression")); } { // expression !':=' @@ -38207,7 +38420,7 @@ _tmp_241_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_241[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='")); + D(fprintf(stderr, "%*c> _tmp_243[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='")); expr_ty expression_var; if ( (expression_var = expression_rule(p)) // expression @@ -38215,12 +38428,12 @@ _tmp_241_rule(Parser *p) _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':=' ) { - D(fprintf(stderr, "%*c+ _tmp_241[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='")); + D(fprintf(stderr, "%*c+ _tmp_243[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='")); _res = expression_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_241[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_243[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='")); } _res = NULL; @@ -38229,9 +38442,9 @@ _tmp_241_rule(Parser *p) return _res; } -// _tmp_242: 'as' star_target +// _tmp_244: 'as' star_target static void * -_tmp_242_rule(Parser *p) +_tmp_244_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38248,7 +38461,7 @@ _tmp_242_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_242[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c> _tmp_244[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); Token * _keyword; expr_ty star_target_var; if ( @@ -38257,12 +38470,12 @@ _tmp_242_rule(Parser *p) (star_target_var = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_242[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c+ _tmp_244[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); _res = _PyPegen_dummy_name(p, _keyword, star_target_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_242[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_244[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target")); } _res = NULL; @@ -38271,9 +38484,9 @@ _tmp_242_rule(Parser *p) return _res; } -// _tmp_243: 'as' star_target +// _tmp_245: 'as' star_target static void * -_tmp_243_rule(Parser *p) +_tmp_245_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38290,7 +38503,7 @@ _tmp_243_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_243[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c> _tmp_245[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); Token * _keyword; expr_ty star_target_var; if ( @@ -38299,12 +38512,12 @@ _tmp_243_rule(Parser *p) (star_target_var = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_243[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c+ _tmp_245[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); _res = _PyPegen_dummy_name(p, _keyword, star_target_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_243[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_245[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target")); } _res = NULL; @@ -38313,9 +38526,9 @@ _tmp_243_rule(Parser *p) return _res; } -// _tmp_244: 'as' star_target +// _tmp_246: 'as' star_target static void * -_tmp_244_rule(Parser *p) +_tmp_246_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38332,7 +38545,7 @@ _tmp_244_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_244[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c> _tmp_246[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); Token * _keyword; expr_ty star_target_var; if ( @@ -38341,12 +38554,12 @@ _tmp_244_rule(Parser *p) (star_target_var = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_244[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c+ _tmp_246[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); _res = _PyPegen_dummy_name(p, _keyword, star_target_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_244[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_246[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target")); } _res = NULL; @@ -38355,9 +38568,9 @@ _tmp_244_rule(Parser *p) return _res; } -// _tmp_245: 'as' star_target +// _tmp_247: 'as' star_target static void * -_tmp_245_rule(Parser *p) +_tmp_247_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38374,7 +38587,7 @@ _tmp_245_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_245[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c> _tmp_247[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); Token * _keyword; expr_ty star_target_var; if ( @@ -38383,12 +38596,12 @@ _tmp_245_rule(Parser *p) (star_target_var = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_245[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c+ _tmp_247[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); _res = _PyPegen_dummy_name(p, _keyword, star_target_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_245[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_247[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target")); } _res = NULL; @@ -38397,9 +38610,9 @@ _tmp_245_rule(Parser *p) return _res; } -// _loop1_246: except_block +// _loop1_248: except_block static asdl_seq * -_loop1_246_rule(Parser *p) +_loop1_248_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38426,7 +38639,7 @@ _loop1_246_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_246[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block")); + D(fprintf(stderr, "%*c> _loop1_248[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block")); excepthandler_ty except_block_var; while ( (except_block_var = except_block_rule(p)) // except_block @@ -38448,7 +38661,7 @@ _loop1_246_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_246[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_248[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block")); } if (_n == 0 || p->error_indicator) { @@ -38466,14 +38679,14 @@ _loop1_246_rule(Parser *p) } for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); PyMem_Free(_children); - _PyPegen_insert_memo(p, _start_mark, _loop1_246_type, _seq); + _PyPegen_insert_memo(p, _start_mark, _loop1_248_type, _seq); p->level--; return _seq; } -// _loop1_247: except_star_block +// _loop1_249: except_star_block static asdl_seq * -_loop1_247_rule(Parser *p) +_loop1_249_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38500,7 +38713,7 @@ _loop1_247_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_247[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_star_block")); + D(fprintf(stderr, "%*c> _loop1_249[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_star_block")); excepthandler_ty except_star_block_var; while ( (except_star_block_var = except_star_block_rule(p)) // except_star_block @@ -38522,7 +38735,7 @@ _loop1_247_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_247[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_249[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_star_block")); } if (_n == 0 || p->error_indicator) { @@ -38540,7 +38753,7 @@ _loop1_247_rule(Parser *p) } for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); PyMem_Free(_children); - _PyPegen_insert_memo(p, _start_mark, _loop1_247_type, _seq); + _PyPegen_insert_memo(p, _start_mark, _loop1_249_type, _seq); p->level--; return _seq; } diff --git a/Parser/pegen.c b/Parser/pegen.c index ec4fee3fc4b712..a5d123da51296c 100644 --- a/Parser/pegen.c +++ b/Parser/pegen.c @@ -1,5 +1,6 @@ #include <Python.h> #include "pycore_ast.h" // _PyAST_Validate(), +#include "pycore_pystate.h" // _PyThreadState_GET() #include <errcode.h> #include "tokenizer.h" @@ -77,13 +78,7 @@ init_normalization(Parser *p) if (p->normalize) { return 1; } - PyObject *m = PyImport_ImportModule("unicodedata"); - if (!m) - { - return 0; - } - p->normalize = PyObject_GetAttrString(m, "normalize"); - Py_DECREF(m); + p->normalize = _PyImport_GetModuleAttrString("unicodedata", "normalize"); if (!p->normalize) { return 0; @@ -651,6 +646,28 @@ _PyPegen_number_token(Parser *p) if (c == NULL) { p->error_indicator = 1; + PyThreadState *tstate = _PyThreadState_GET(); + // The only way a ValueError should happen in _this_ code is via + // PyLong_FromString hitting a length limit. + if (tstate->curexc_type == PyExc_ValueError && + tstate->curexc_value != NULL) { + PyObject *type, *value, *tb; + // This acts as PyErr_Clear() as we're replacing curexc. + PyErr_Fetch(&type, &value, &tb); + Py_XDECREF(tb); + Py_DECREF(type); + /* Intentionally omitting columns to avoid a wall of 1000s of '^'s + * on the error message. Nobody is going to overlook their huge + * numeric literal once given the line. */ + RAISE_ERROR_KNOWN_LOCATION( + p, PyExc_SyntaxError, + t->lineno, -1 /* col_offset */, + t->end_lineno, -1 /* end_col_offset */, + "%S - Consider hexadecimal for huge integer literals " + "to avoid decimal conversion limits.", + value); + Py_DECREF(value); + } return NULL; } @@ -744,7 +761,7 @@ _PyPegen_Parser_New(struct tok_state *tok, int start_rule, int flags, return (Parser *) PyErr_NoMemory(); } p->tokens[0] = PyMem_Calloc(1, sizeof(Token)); - if (!p->tokens) { + if (!p->tokens[0]) { PyMem_Free(p->tokens); PyMem_Free(p); return (Parser *) PyErr_NoMemory(); diff --git a/Parser/pegen_errors.c b/Parser/pegen_errors.c index 489699679633e9..95bbd43dc32621 100644 --- a/Parser/pegen_errors.c +++ b/Parser/pegen_errors.c @@ -245,7 +245,7 @@ get_error_line_from_tokenizer_buffers(Parser *p, Py_ssize_t lineno) * (multi-line) statement are stored in p->tok->interactive_src_start. * If not, we're parsing from a string, which means that the whole source * is stored in p->tok->str. */ - assert((p->tok->fp == NULL && p->tok->str != NULL) || p->tok->fp == stdin); + assert((p->tok->fp == NULL && p->tok->str != NULL) || p->tok->fp != NULL); char *cur_line = p->tok->fp_interactive ? p->tok->interactive_src_start : p->tok->str; if (cur_line == NULL) { @@ -259,15 +259,15 @@ get_error_line_from_tokenizer_buffers(Parser *p, Py_ssize_t lineno) const char* buf_end = p->tok->fp_interactive ? p->tok->interactive_src_end : p->tok->inp; for (int i = 0; i < relative_lineno - 1; i++) { - char *new_line = strchr(cur_line, '\n') + 1; + char *new_line = strchr(cur_line, '\n'); // The assert is here for debug builds but the conditional that // follows is there so in release builds we do not crash at the cost // to report a potentially wrong line. - assert(new_line != NULL && new_line <= buf_end); - if (new_line == NULL || new_line > buf_end) { + assert(new_line != NULL && new_line + 1 < buf_end); + if (new_line == NULL || new_line + 1 > buf_end) { break; } - cur_line = new_line; + cur_line = new_line + 1; } char *next_newline; @@ -371,7 +371,7 @@ _PyPegen_raise_error_known_location(Parser *p, PyObject *errtype, } } } - tmp = Py_BuildValue("(OiiNii)", p->tok->filename, lineno, col_number, error_line, end_lineno, end_col_number); + tmp = Py_BuildValue("(OnnNnn)", p->tok->filename, lineno, col_number, error_line, end_lineno, end_col_number); if (!tmp) { goto error; } diff --git a/Parser/string_parser.c b/Parser/string_parser.c index 9c12d8ca101d00..9bc3b082136be5 100644 --- a/Parser/string_parser.c +++ b/Parser/string_parser.c @@ -326,6 +326,9 @@ fstring_find_expr_location(Token *parent, const char* expr_start, char *expr_str start--; } *p_cols += (int)(expr_start - start); + if (*start == '\n') { + *p_cols -= 1; + } } /* adjust the start based on the number of newlines encountered before the f-string expression */ @@ -416,7 +419,7 @@ fstring_compile_expr(Parser *p, const char *expr_start, const char *expr_end, NULL, p->arena); p2->starting_lineno = t->lineno + lines; - p2->starting_col_offset = t->col_offset + cols; + p2->starting_col_offset = lines != 0 ? cols : t->col_offset + cols; expr = _PyPegen_run_parser(p2); @@ -756,7 +759,9 @@ fstring_find_expr(Parser *p, const char **str, const char *end, int raw, int rec while (Py_ISSPACE(**str)) { *str += 1; } - + if (*str >= end) { + goto unexpected_end_of_string; + } /* Set *expr_text to the text of the expression. */ *expr_text = PyUnicode_FromStringAndSize(expr_start, *str-expr_start); if (!*expr_text) { @@ -767,27 +772,43 @@ fstring_find_expr(Parser *p, const char **str, const char *end, int raw, int rec /* Check for a conversion char, if present. */ if (**str == '!') { *str += 1; - if (*str >= end) { - goto unexpected_end_of_string; + const char *conv_start = *str; + while (1) { + if (*str >= end) { + goto unexpected_end_of_string; + } + if (**str == '}' || **str == ':') { + break; + } + *str += 1; + } + if (*str == conv_start) { + RAISE_SYNTAX_ERROR( + "f-string: missed conversion character"); + goto error; } - conversion = (unsigned char)**str; - *str += 1; - + conversion = (unsigned char)*conv_start; /* Validate the conversion. */ - if (!(conversion == 's' || conversion == 'r' || conversion == 'a')) { - RAISE_SYNTAX_ERROR( - "f-string: invalid conversion character: " - "expected 's', 'r', or 'a'"); + if ((*str != conv_start + 1) || + !(conversion == 's' || conversion == 'r' || conversion == 'a')) + { + PyObject *conv_obj = PyUnicode_FromStringAndSize(conv_start, + *str-conv_start); + if (conv_obj) { + RAISE_SYNTAX_ERROR( + "f-string: invalid conversion character %R: " + "expected 's', 'r', or 'a'", + conv_obj); + Py_DECREF(conv_obj); + } goto error; } } /* Check for the format spec, if present. */ - if (*str >= end) { - goto unexpected_end_of_string; - } + assert(*str < end); if (**str == ':') { *str += 1; if (*str >= end) { diff --git a/Parser/tokenizer.c b/Parser/tokenizer.c index d5b549c8706ce5..b3b11855f4effa 100644 --- a/Parser/tokenizer.c +++ b/Parser/tokenizer.c @@ -308,6 +308,10 @@ tok_concatenate_interactive_new_line(struct tok_state *tok, const char *line) { Py_ssize_t current_size = tok->interactive_src_end - tok->interactive_src_start; Py_ssize_t line_size = strlen(line); + char last_char = line[line_size > 0 ? line_size - 1 : line_size]; + if (last_char != '\n') { + line_size += 1; + } char* new_str = tok->interactive_src_start; new_str = PyMem_Realloc(new_str, current_size + line_size + 1); @@ -321,7 +325,11 @@ tok_concatenate_interactive_new_line(struct tok_state *tok, const char *line) { return -1; } strcpy(new_str + current_size, line); - + if (last_char != '\n') { + /* Last line does not end in \n, fake one */ + new_str[current_size + line_size - 1] = '\n'; + new_str[current_size + line_size] = '\0'; + } tok->interactive_src_start = new_str; tok->interactive_src_end = new_str + current_size + line_size; return 0; @@ -421,7 +429,7 @@ tok_readline_recode(struct tok_state *tok) { static int fp_setreadl(struct tok_state *tok, const char* enc) { - PyObject *readline, *io, *stream; + PyObject *readline, *open, *stream; int fd; long pos; @@ -438,13 +446,13 @@ fp_setreadl(struct tok_state *tok, const char* enc) return 0; } - io = PyImport_ImportModule("io"); - if (io == NULL) { + open = _PyImport_GetModuleAttrString("io", "open"); + if (open == NULL) { return 0; } - stream = _PyObject_CallMethod(io, &_Py_ID(open), "isisOOO", + stream = PyObject_CallFunction(open, "isisOOO", fd, "r", -1, enc, Py_None, Py_None, Py_False); - Py_DECREF(io); + Py_DECREF(open); if (stream == NULL) { return 0; } @@ -481,25 +489,59 @@ static void fp_ungetc(int c, struct tok_state *tok) { /* Check whether the characters at s start a valid UTF-8 sequence. Return the number of characters forming - the sequence if yes, 0 if not. */ -static int valid_utf8(const unsigned char* s) + the sequence if yes, 0 if not. The special cases match + those in stringlib/codecs.h:utf8_decode. +*/ +static int +valid_utf8(const unsigned char* s) { int expected = 0; int length; - if (*s < 0x80) + if (*s < 0x80) { /* single-byte code */ return 1; - if (*s < 0xc0) - /* following byte */ - return 0; - if (*s < 0xE0) + } + else if (*s < 0xE0) { + /* \xC2\x80-\xDF\xBF -- 0080-07FF */ + if (*s < 0xC2) { + /* invalid sequence + \x80-\xBF -- continuation byte + \xC0-\xC1 -- fake 0000-007F */ + return 0; + } expected = 1; - else if (*s < 0xF0) + } + else if (*s < 0xF0) { + /* \xE0\xA0\x80-\xEF\xBF\xBF -- 0800-FFFF */ + if (*s == 0xE0 && *(s + 1) < 0xA0) { + /* invalid sequence + \xE0\x80\x80-\xE0\x9F\xBF -- fake 0000-0800 */ + return 0; + } + else if (*s == 0xED && *(s + 1) >= 0xA0) { + /* Decoding UTF-8 sequences in range \xED\xA0\x80-\xED\xBF\xBF + will result in surrogates in range D800-DFFF. Surrogates are + not valid UTF-8 so they are rejected. + See https://www.unicode.org/versions/Unicode5.2.0/ch03.pdf + (table 3-7) and http://www.rfc-editor.org/rfc/rfc3629.txt */ + return 0; + } expected = 2; - else if (*s < 0xF8) + } + else if (*s < 0xF5) { + /* \xF0\x90\x80\x80-\xF4\x8F\xBF\xBF -- 10000-10FFFF */ + if (*(s + 1) < 0x90 ? *s == 0xF0 : *s == 0xF4) { + /* invalid sequence -- one of: + \xF0\x80\x80\x80-\xF0\x8F\xBF\xBF -- fake 0000-FFFF + \xF4\x90\x80\x80- -- 110000- overflow */ + return 0; + } expected = 3; - else + } + else { + /* invalid start byte */ return 0; + } length = expected + 1; for (; expected; expected--) if (s[expected] < 0x80 || s[expected] >= 0xC0) @@ -520,14 +562,12 @@ ensure_utf8(char *line, struct tok_state *tok) } } if (badchar) { - /* Need to add 1 to the line number, since this line - has not been counted, yet. */ PyErr_Format(PyExc_SyntaxError, "Non-UTF-8 code starting with '\\x%.2x' " "in file %U on line %i, " "but no encoding declared; " "see https://peps.python.org/pep-0263/ for details", - badchar, tok->filename, tok->lineno + 1); + badchar, tok->filename, tok->lineno); return 0; } return 1; @@ -1493,7 +1533,7 @@ tok_get(struct tok_state *tok, const char **p_start, const char **p_end) } while (c == ' ' || c == '\t' || c == '\014'); /* Set start of current token */ - tok->start = tok->cur - 1; + tok->start = tok->cur == NULL ? NULL : tok->cur - 1; /* Skip comment, unless it's a type comment */ if (c == '#') { @@ -1928,6 +1968,8 @@ tok_get(struct tok_state *tok, const char **p_start, const char **p_end) /* Get rest of string */ while (end_quote_size != quote_size) { c = tok_nextc(tok); + if (tok->done == E_DECODE) + break; if (c == EOF || (quote_size == 1 && c == '\n')) { assert(tok->multi_line_start != NULL); // shift the tok_state's location into diff --git a/Programs/_testembed.c b/Programs/_testembed.c index 9d3d0cbddf0e53..a2a2ff40b2774b 100644 --- a/Programs/_testembed.c +++ b/Programs/_testembed.c @@ -279,7 +279,7 @@ static int test_pre_initialization_sys_options(void) * relying on the caller to keep the passed in strings alive. */ const wchar_t *static_warnoption = L"once"; - const wchar_t *static_xoption = L"utf8=1"; + const wchar_t *static_xoption = L"also_not_an_option=2"; size_t warnoption_len = wcslen(static_warnoption); size_t xoption_len = wcslen(static_xoption); wchar_t *dynamic_once_warnoption = \ @@ -298,7 +298,7 @@ static int test_pre_initialization_sys_options(void) PySys_AddWarnOption(L"module"); PySys_AddWarnOption(L"default"); _Py_EMBED_PREINIT_CHECK("Checking PySys_AddXOption\n"); - PySys_AddXOption(L"dev=2"); + PySys_AddXOption(L"not_an_option=1"); PySys_AddXOption(dynamic_xoption); /* Delete the dynamic options early */ @@ -368,6 +368,8 @@ static int test_bpo20891(void) PyThread_free_lock(lock); + Py_Finalize(); + return 0; } @@ -589,7 +591,7 @@ static int test_init_from_config(void) L"-W", L"cmdline_warnoption", L"-X", - L"dev", + L"cmdline_xoption", L"-c", L"pass", L"arg2", @@ -597,9 +599,10 @@ static int test_init_from_config(void) config_set_argv(&config, Py_ARRAY_LENGTH(argv), argv); config.parse_argv = 1; - wchar_t* xoptions[2] = { - L"dev=3", - L"utf8", + wchar_t* xoptions[3] = { + L"config_xoption1=3", + L"config_xoption2=", + L"config_xoption3", }; config_set_wide_string_list(&config, &config.xoptions, Py_ARRAY_LENGTH(xoptions), xoptions); @@ -1423,6 +1426,7 @@ static int test_init_read_set(void) static int test_init_sys_add(void) { + PySys_AddXOption(L"sysadd_xoption"); PySys_AddXOption(L"faulthandler"); PySys_AddWarnOption(L"ignore:::sysadd_warnoption"); @@ -1434,14 +1438,14 @@ static int test_init_sys_add(void) L"-W", L"ignore:::cmdline_warnoption", L"-X", - L"utf8", + L"cmdline_xoption", }; config_set_argv(&config, Py_ARRAY_LENGTH(argv), argv); config.parse_argv = 1; PyStatus status; status = PyWideStringList_Append(&config.xoptions, - L"dev"); + L"config_xoption"); if (PyStatus_Exception(status)) { goto fail; } @@ -1550,6 +1554,46 @@ static int test_init_setpythonhome(void) } +static int test_init_is_python_build(void) +{ + // gh-91985: in-tree builds fail to check for build directory landmarks + // under the effect of 'home' or PYTHONHOME environment variable. + char *env = getenv("TESTHOME"); + if (!env) { + error("missing TESTHOME env var"); + return 1; + } + wchar_t *home = Py_DecodeLocale(env, NULL); + if (home == NULL) { + error("failed to decode TESTHOME"); + return 1; + } + + PyConfig config; + _PyConfig_InitCompatConfig(&config); + config_set_program_name(&config); + config_set_string(&config, &config.home, home); + PyMem_RawFree(home); + putenv("TESTHOME="); + + // Use an impossible value so we can detect whether it isn't updated + // during initialization. + config._is_python_build = INT_MAX; + env = getenv("NEGATIVE_ISPYTHONBUILD"); + if (env && strcmp(env, "0") != 0) { + config._is_python_build = INT_MIN; + } + init_from_config_clear(&config); + Py_Finalize(); + // Second initialization + config._is_python_build = -1; + init_from_config_clear(&config); + dump_config(); // home and _is_python_build are cached in _Py_path_config + Py_Finalize(); + return 0; +} + + static int test_init_warnoptions(void) { putenv("PYTHONWARNINGS=ignore:::env1,ignore:::env2"); @@ -1965,6 +2009,7 @@ static struct TestCase TestCases[] = { {"test_init_setpath", test_init_setpath}, {"test_init_setpath_config", test_init_setpath_config}, {"test_init_setpythonhome", test_init_setpythonhome}, + {"test_init_is_python_build", test_init_is_python_build}, {"test_init_warnoptions", test_init_warnoptions}, {"test_init_set_config", test_init_set_config}, {"test_run_main", test_run_main}, diff --git a/Programs/test_frozenmain.h b/Programs/test_frozenmain.h index e6e2ef26b1c373..677ce180f95fdd 100644 --- a/Programs/test_frozenmain.h +++ b/Programs/test_frozenmain.h @@ -1,40 +1,42 @@ // Auto-generated by Programs/freeze_test_frozenmain.py unsigned char M_test_frozenmain[] = { 227,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0, - 0,0,0,0,0,115,160,0,0,0,151,0,100,0,100,1, + 0,0,0,0,0,243,182,0,0,0,151,0,100,0,100,1, 108,0,90,0,100,0,100,1,108,1,90,1,2,0,101,2, 100,2,171,1,0,0,0,0,0,0,0,0,1,0,2,0, - 101,2,100,3,101,0,106,3,0,0,0,0,0,0,0,0, - 171,2,0,0,0,0,0,0,0,0,1,0,2,0,101,1, - 106,4,0,0,0,0,0,0,0,0,171,0,0,0,0,0, - 0,0,0,0,100,4,25,0,0,0,0,0,0,0,0,0, - 90,5,100,5,68,0,93,23,90,6,2,0,101,2,100,6, - 101,6,155,0,100,7,101,5,101,6,25,0,0,0,0,0, - 0,0,0,0,155,0,157,4,171,1,0,0,0,0,0,0, - 0,0,1,0,140,24,100,1,83,0,41,8,233,0,0,0, - 0,78,122,18,70,114,111,122,101,110,32,72,101,108,108,111, - 32,87,111,114,108,100,122,8,115,121,115,46,97,114,103,118, - 218,6,99,111,110,102,105,103,41,5,218,12,112,114,111,103, - 114,97,109,95,110,97,109,101,218,10,101,120,101,99,117,116, - 97,98,108,101,218,15,117,115,101,95,101,110,118,105,114,111, - 110,109,101,110,116,218,17,99,111,110,102,105,103,117,114,101, - 95,99,95,115,116,100,105,111,218,14,98,117,102,102,101,114, - 101,100,95,115,116,100,105,111,122,7,99,111,110,102,105,103, - 32,122,2,58,32,41,7,218,3,115,121,115,218,17,95,116, - 101,115,116,105,110,116,101,114,110,97,108,99,97,112,105,218, - 5,112,114,105,110,116,218,4,97,114,103,118,218,11,103,101, - 116,95,99,111,110,102,105,103,115,114,2,0,0,0,218,3, - 107,101,121,169,0,243,0,0,0,0,250,18,116,101,115,116, - 95,102,114,111,122,101,110,109,97,105,110,46,112,121,250,8, - 60,109,111,100,117,108,101,62,114,17,0,0,0,1,0,0, - 0,115,140,0,0,0,248,240,6,0,1,11,128,10,128,10, - 128,10,216,0,24,208,0,24,208,0,24,208,0,24,224,0, - 5,128,5,208,6,26,212,0,27,208,0,27,216,0,5,128, - 5,128,106,144,35,148,40,212,0,27,208,0,27,216,9,38, - 208,9,26,212,9,38,212,9,40,168,24,212,9,50,128,6, - 240,2,6,12,2,240,0,7,1,42,240,0,7,1,42,128, - 67,240,14,0,5,10,128,69,208,10,40,144,67,208,10,40, - 208,10,40,152,54,160,35,156,59,208,10,40,208,10,40,212, - 4,41,208,4,41,208,4,41,240,15,7,1,42,240,0,7, - 1,42,114,15,0,0,0, + 101,2,100,3,101,0,106,6,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,171,2,0,0,0,0, + 0,0,0,0,1,0,2,0,101,1,106,8,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,0, + 0,0,0,0,0,0,0,0,100,4,25,0,0,0,0,0, + 0,0,0,0,90,5,100,5,68,0,93,23,0,0,90,6, + 2,0,101,2,100,6,101,6,155,0,100,7,101,5,101,6, + 25,0,0,0,0,0,0,0,0,0,155,0,157,4,171,1, + 0,0,0,0,0,0,0,0,1,0,140,25,100,1,83,0, + 41,8,233,0,0,0,0,78,122,18,70,114,111,122,101,110, + 32,72,101,108,108,111,32,87,111,114,108,100,122,8,115,121, + 115,46,97,114,103,118,218,6,99,111,110,102,105,103,41,5, + 218,12,112,114,111,103,114,97,109,95,110,97,109,101,218,10, + 101,120,101,99,117,116,97,98,108,101,218,15,117,115,101,95, + 101,110,118,105,114,111,110,109,101,110,116,218,17,99,111,110, + 102,105,103,117,114,101,95,99,95,115,116,100,105,111,218,14, + 98,117,102,102,101,114,101,100,95,115,116,100,105,111,122,7, + 99,111,110,102,105,103,32,122,2,58,32,41,7,218,3,115, + 121,115,218,17,95,116,101,115,116,105,110,116,101,114,110,97, + 108,99,97,112,105,218,5,112,114,105,110,116,218,4,97,114, + 103,118,218,11,103,101,116,95,99,111,110,102,105,103,115,114, + 3,0,0,0,218,3,107,101,121,169,0,243,0,0,0,0, + 250,18,116,101,115,116,95,102,114,111,122,101,110,109,97,105, + 110,46,112,121,250,8,60,109,111,100,117,108,101,62,114,18, + 0,0,0,1,0,0,0,115,149,0,0,0,240,3,1,1, + 1,240,8,0,1,11,128,10,128,10,128,10,216,0,24,208, + 0,24,208,0,24,208,0,24,224,0,5,128,5,208,6,26, + 212,0,27,208,0,27,216,0,5,128,5,128,106,144,35,151, + 40,145,40,212,0,27,208,0,27,216,9,38,208,9,26,215, + 9,38,209,9,38,212,9,40,168,24,212,9,50,128,6,240, + 2,6,12,2,240,0,7,1,42,241,0,7,1,42,128,67, + 240,14,0,5,10,128,69,208,10,40,144,67,208,10,40,208, + 10,40,152,54,160,35,156,59,208,10,40,208,10,40,212,4, + 41,208,4,41,208,4,41,240,15,7,1,42,240,0,7,1, + 42,114,16,0,0,0, }; diff --git a/Python/Python-ast.c b/Python/Python-ast.c index 3861eaf978a38f..f485af675ccff7 100644 --- a/Python/Python-ast.c +++ b/Python/Python-ast.c @@ -1851,6 +1851,8 @@ init_types(struct ast_state *state) "TypeIgnore(int lineno, string tag)"); if (!state->TypeIgnore_type) return 0; + state->recursion_depth = 0; + state->recursion_limit = 0; state->initialized = 1; return 1; } @@ -3610,6 +3612,11 @@ ast2obj_mod(struct ast_state *state, void* _o) if (!o) { Py_RETURN_NONE; } + if (++state->recursion_depth > state->recursion_limit) { + PyErr_SetString(PyExc_RecursionError, + "maximum recursion depth exceeded during ast construction"); + return 0; + } switch (o->kind) { case Module_kind: tp = (PyTypeObject *)state->Module_type; @@ -3665,6 +3672,7 @@ ast2obj_mod(struct ast_state *state, void* _o) Py_DECREF(value); break; } + state->recursion_depth--; return result; failed: Py_XDECREF(value); @@ -3681,6 +3689,11 @@ ast2obj_stmt(struct ast_state *state, void* _o) if (!o) { Py_RETURN_NONE; } + if (++state->recursion_depth > state->recursion_limit) { + PyErr_SetString(PyExc_RecursionError, + "maximum recursion depth exceeded during ast construction"); + return 0; + } switch (o->kind) { case FunctionDef_kind: tp = (PyTypeObject *)state->FunctionDef_type; @@ -4224,6 +4237,7 @@ ast2obj_stmt(struct ast_state *state, void* _o) if (PyObject_SetAttr(result, state->end_col_offset, value) < 0) goto failed; Py_DECREF(value); + state->recursion_depth--; return result; failed: Py_XDECREF(value); @@ -4240,6 +4254,11 @@ ast2obj_expr(struct ast_state *state, void* _o) if (!o) { Py_RETURN_NONE; } + if (++state->recursion_depth > state->recursion_limit) { + PyErr_SetString(PyExc_RecursionError, + "maximum recursion depth exceeded during ast construction"); + return 0; + } switch (o->kind) { case BoolOp_kind: tp = (PyTypeObject *)state->BoolOp_type; @@ -4701,6 +4720,7 @@ ast2obj_expr(struct ast_state *state, void* _o) if (PyObject_SetAttr(result, state->end_col_offset, value) < 0) goto failed; Py_DECREF(value); + state->recursion_depth--; return result; failed: Py_XDECREF(value); @@ -4843,6 +4863,11 @@ ast2obj_comprehension(struct ast_state *state, void* _o) if (!o) { Py_RETURN_NONE; } + if (++state->recursion_depth > state->recursion_limit) { + PyErr_SetString(PyExc_RecursionError, + "maximum recursion depth exceeded during ast construction"); + return 0; + } tp = (PyTypeObject *)state->comprehension_type; result = PyType_GenericNew(tp, NULL, NULL); if (!result) return NULL; @@ -4866,6 +4891,7 @@ ast2obj_comprehension(struct ast_state *state, void* _o) if (PyObject_SetAttr(result, state->is_async, value) == -1) goto failed; Py_DECREF(value); + state->recursion_depth--; return result; failed: Py_XDECREF(value); @@ -4882,6 +4908,11 @@ ast2obj_excepthandler(struct ast_state *state, void* _o) if (!o) { Py_RETURN_NONE; } + if (++state->recursion_depth > state->recursion_limit) { + PyErr_SetString(PyExc_RecursionError, + "maximum recursion depth exceeded during ast construction"); + return 0; + } switch (o->kind) { case ExceptHandler_kind: tp = (PyTypeObject *)state->ExceptHandler_type; @@ -4925,6 +4956,7 @@ ast2obj_excepthandler(struct ast_state *state, void* _o) if (PyObject_SetAttr(result, state->end_col_offset, value) < 0) goto failed; Py_DECREF(value); + state->recursion_depth--; return result; failed: Py_XDECREF(value); @@ -4941,6 +4973,11 @@ ast2obj_arguments(struct ast_state *state, void* _o) if (!o) { Py_RETURN_NONE; } + if (++state->recursion_depth > state->recursion_limit) { + PyErr_SetString(PyExc_RecursionError, + "maximum recursion depth exceeded during ast construction"); + return 0; + } tp = (PyTypeObject *)state->arguments_type; result = PyType_GenericNew(tp, NULL, NULL); if (!result) return NULL; @@ -4979,6 +5016,7 @@ ast2obj_arguments(struct ast_state *state, void* _o) if (PyObject_SetAttr(result, state->defaults, value) == -1) goto failed; Py_DECREF(value); + state->recursion_depth--; return result; failed: Py_XDECREF(value); @@ -4995,6 +5033,11 @@ ast2obj_arg(struct ast_state *state, void* _o) if (!o) { Py_RETURN_NONE; } + if (++state->recursion_depth > state->recursion_limit) { + PyErr_SetString(PyExc_RecursionError, + "maximum recursion depth exceeded during ast construction"); + return 0; + } tp = (PyTypeObject *)state->arg_type; result = PyType_GenericNew(tp, NULL, NULL); if (!result) return NULL; @@ -5033,6 +5076,7 @@ ast2obj_arg(struct ast_state *state, void* _o) if (PyObject_SetAttr(result, state->end_col_offset, value) < 0) goto failed; Py_DECREF(value); + state->recursion_depth--; return result; failed: Py_XDECREF(value); @@ -5049,6 +5093,11 @@ ast2obj_keyword(struct ast_state *state, void* _o) if (!o) { Py_RETURN_NONE; } + if (++state->recursion_depth > state->recursion_limit) { + PyErr_SetString(PyExc_RecursionError, + "maximum recursion depth exceeded during ast construction"); + return 0; + } tp = (PyTypeObject *)state->keyword_type; result = PyType_GenericNew(tp, NULL, NULL); if (!result) return NULL; @@ -5082,6 +5131,7 @@ ast2obj_keyword(struct ast_state *state, void* _o) if (PyObject_SetAttr(result, state->end_col_offset, value) < 0) goto failed; Py_DECREF(value); + state->recursion_depth--; return result; failed: Py_XDECREF(value); @@ -5098,6 +5148,11 @@ ast2obj_alias(struct ast_state *state, void* _o) if (!o) { Py_RETURN_NONE; } + if (++state->recursion_depth > state->recursion_limit) { + PyErr_SetString(PyExc_RecursionError, + "maximum recursion depth exceeded during ast construction"); + return 0; + } tp = (PyTypeObject *)state->alias_type; result = PyType_GenericNew(tp, NULL, NULL); if (!result) return NULL; @@ -5131,6 +5186,7 @@ ast2obj_alias(struct ast_state *state, void* _o) if (PyObject_SetAttr(result, state->end_col_offset, value) < 0) goto failed; Py_DECREF(value); + state->recursion_depth--; return result; failed: Py_XDECREF(value); @@ -5147,6 +5203,11 @@ ast2obj_withitem(struct ast_state *state, void* _o) if (!o) { Py_RETURN_NONE; } + if (++state->recursion_depth > state->recursion_limit) { + PyErr_SetString(PyExc_RecursionError, + "maximum recursion depth exceeded during ast construction"); + return 0; + } tp = (PyTypeObject *)state->withitem_type; result = PyType_GenericNew(tp, NULL, NULL); if (!result) return NULL; @@ -5160,6 +5221,7 @@ ast2obj_withitem(struct ast_state *state, void* _o) if (PyObject_SetAttr(result, state->optional_vars, value) == -1) goto failed; Py_DECREF(value); + state->recursion_depth--; return result; failed: Py_XDECREF(value); @@ -5176,6 +5238,11 @@ ast2obj_match_case(struct ast_state *state, void* _o) if (!o) { Py_RETURN_NONE; } + if (++state->recursion_depth > state->recursion_limit) { + PyErr_SetString(PyExc_RecursionError, + "maximum recursion depth exceeded during ast construction"); + return 0; + } tp = (PyTypeObject *)state->match_case_type; result = PyType_GenericNew(tp, NULL, NULL); if (!result) return NULL; @@ -5194,6 +5261,7 @@ ast2obj_match_case(struct ast_state *state, void* _o) if (PyObject_SetAttr(result, state->body, value) == -1) goto failed; Py_DECREF(value); + state->recursion_depth--; return result; failed: Py_XDECREF(value); @@ -5210,6 +5278,11 @@ ast2obj_pattern(struct ast_state *state, void* _o) if (!o) { Py_RETURN_NONE; } + if (++state->recursion_depth > state->recursion_limit) { + PyErr_SetString(PyExc_RecursionError, + "maximum recursion depth exceeded during ast construction"); + return 0; + } switch (o->kind) { case MatchValue_kind: tp = (PyTypeObject *)state->MatchValue_type; @@ -5349,6 +5422,7 @@ ast2obj_pattern(struct ast_state *state, void* _o) if (PyObject_SetAttr(result, state->end_col_offset, value) < 0) goto failed; Py_DECREF(value); + state->recursion_depth--; return result; failed: Py_XDECREF(value); @@ -5365,6 +5439,11 @@ ast2obj_type_ignore(struct ast_state *state, void* _o) if (!o) { Py_RETURN_NONE; } + if (++state->recursion_depth > state->recursion_limit) { + PyErr_SetString(PyExc_RecursionError, + "maximum recursion depth exceeded during ast construction"); + return 0; + } switch (o->kind) { case TypeIgnore_kind: tp = (PyTypeObject *)state->TypeIgnore_type; @@ -5382,6 +5461,7 @@ ast2obj_type_ignore(struct ast_state *state, void* _o) Py_DECREF(value); break; } + state->recursion_depth--; return result; failed: Py_XDECREF(value); @@ -5697,7 +5777,7 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); - end_lineno = 0; + end_lineno = lineno; } else { int res; @@ -5714,7 +5794,7 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); - end_col_offset = 0; + end_col_offset = col_offset; } else { int res; @@ -8114,7 +8194,7 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); - end_lineno = 0; + end_lineno = lineno; } else { int res; @@ -8131,7 +8211,7 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); - end_col_offset = 0; + end_col_offset = col_offset; } else { int res; @@ -10291,7 +10371,7 @@ obj2ast_excepthandler(struct ast_state *state, PyObject* obj, excepthandler_ty* } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); - end_lineno = 0; + end_lineno = lineno; } else { int res; @@ -10308,7 +10388,7 @@ obj2ast_excepthandler(struct ast_state *state, PyObject* obj, excepthandler_ty* } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); - end_col_offset = 0; + end_col_offset = col_offset; } else { int res; @@ -10755,7 +10835,7 @@ obj2ast_arg(struct ast_state *state, PyObject* obj, arg_ty* out, PyArena* arena) } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); - end_lineno = 0; + end_lineno = lineno; } else { int res; @@ -10772,7 +10852,7 @@ obj2ast_arg(struct ast_state *state, PyObject* obj, arg_ty* out, PyArena* arena) } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); - end_col_offset = 0; + end_col_offset = col_offset; } else { int res; @@ -10877,7 +10957,7 @@ obj2ast_keyword(struct ast_state *state, PyObject* obj, keyword_ty* out, } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); - end_lineno = 0; + end_lineno = lineno; } else { int res; @@ -10894,7 +10974,7 @@ obj2ast_keyword(struct ast_state *state, PyObject* obj, keyword_ty* out, } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); - end_col_offset = 0; + end_col_offset = col_offset; } else { int res; @@ -10999,7 +11079,7 @@ obj2ast_alias(struct ast_state *state, PyObject* obj, alias_ty* out, PyArena* } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); - end_lineno = 0; + end_lineno = lineno; } else { int res; @@ -11016,7 +11096,7 @@ obj2ast_alias(struct ast_state *state, PyObject* obj, alias_ty* out, PyArena* } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); - end_col_offset = 0; + end_col_offset = col_offset; } else { int res; @@ -12234,7 +12314,32 @@ PyObject* PyAST_mod2obj(mod_ty t) if (state == NULL) { return NULL; } - return ast2obj_mod(state, t); + + int recursion_limit = Py_GetRecursionLimit(); + int starting_recursion_depth; + /* Be careful here to prevent overflow. */ + int COMPILER_STACK_FRAME_SCALE = 3; + PyThreadState *tstate = _PyThreadState_GET(); + if (!tstate) { + return 0; + } + state->recursion_limit = (recursion_limit < INT_MAX / COMPILER_STACK_FRAME_SCALE) ? + recursion_limit * COMPILER_STACK_FRAME_SCALE : recursion_limit; + int recursion_depth = tstate->recursion_limit - tstate->recursion_remaining; + starting_recursion_depth = (recursion_depth < INT_MAX / COMPILER_STACK_FRAME_SCALE) ? + recursion_depth * COMPILER_STACK_FRAME_SCALE : recursion_depth; + state->recursion_depth = starting_recursion_depth; + + PyObject *result = ast2obj_mod(state, t); + + /* Check that the recursion depth counting balanced correctly */ + if (result && state->recursion_depth != starting_recursion_depth) { + PyErr_Format(PyExc_SystemError, + "AST constructor recursion depth mismatch (before=%d, after=%d)", + starting_recursion_depth, state->recursion_depth); + return 0; + } + return result; } /* mode is 0 for "exec", 1 for "eval" and 2 for "single" input */ diff --git a/Python/Python-tokenize.c b/Python/Python-tokenize.c index 6acfc2a7cfd268..c5124a6942e7f2 100644 --- a/Python/Python-tokenize.c +++ b/Python/Python-tokenize.c @@ -15,6 +15,7 @@ get_tokenize_state(PyObject *module) { #define _tokenize_get_state_by_type(type) \ get_tokenize_state(PyType_GetModuleByDef(type, &_tokenizemodule)) +#include "pycore_runtime.h" #include "clinic/Python-tokenize.c.h" /*[clinic input] diff --git a/Python/_warnings.c b/Python/_warnings.c index 085ca4506baaed..1b9e107ea30b13 100644 --- a/Python/_warnings.c +++ b/Python/_warnings.c @@ -4,7 +4,6 @@ #include "pycore_long.h" // _PyLong_GetZero() #include "pycore_pyerrors.h" #include "pycore_pystate.h" // _PyThreadState_GET() -#include "frameobject.h" // PyFrame_GetBack() #include "pycore_frame.h" #include "clinic/_warnings.c.h" @@ -1031,28 +1030,31 @@ get_source_line(PyInterpreterState *interp, PyObject *module_globals, int lineno return source_line; } +/*[clinic input] +warn_explicit as warnings_warn_explicit + + message: object + category: object + filename: unicode + lineno: int + module as mod: object = NULL + registry: object = None + module_globals: object = None + source as sourceobj: object = None + +Issue a warning, or maybe ignore it or raise an exception. +[clinic start generated code]*/ + static PyObject * -warnings_warn_explicit(PyObject *self, PyObject *args, PyObject *kwds) +warnings_warn_explicit_impl(PyObject *module, PyObject *message, + PyObject *category, PyObject *filename, + int lineno, PyObject *mod, PyObject *registry, + PyObject *module_globals, PyObject *sourceobj) +/*[clinic end generated code: output=c49c62b15a49a186 input=df6eeb8b45e712f1]*/ { - static char *kwd_list[] = {"message", "category", "filename", "lineno", - "module", "registry", "module_globals", - "source", 0}; - PyObject *message; - PyObject *category; - PyObject *filename; - int lineno; - PyObject *module = NULL; - PyObject *registry = NULL; - PyObject *module_globals = NULL; - PyObject *sourceobj = NULL; PyObject *source_line = NULL; PyObject *returned; - if (!PyArg_ParseTupleAndKeywords(args, kwds, "OOUi|OOOO:warn_explicit", - kwd_list, &message, &category, &filename, &lineno, &module, - &registry, &module_globals, &sourceobj)) - return NULL; - PyThreadState *tstate = get_current_tstate(); if (tstate == NULL) { return NULL; @@ -1071,8 +1073,8 @@ warnings_warn_explicit(PyObject *self, PyObject *args, PyObject *kwds) return NULL; } } - returned = warn_explicit(tstate, category, message, filename, lineno, module, - registry, source_line, sourceobj); + returned = warn_explicit(tstate, category, message, filename, lineno, + mod, registry, source_line, sourceobj); Py_XDECREF(source_line); return returned; } @@ -1332,13 +1334,9 @@ _PyErr_WarnUnawaitedCoroutine(PyObject *coro) } } -PyDoc_STRVAR(warn_explicit_doc, -"Low-level interface to warnings functionality."); - static PyMethodDef warnings_functions[] = { WARNINGS_WARN_METHODDEF - {"warn_explicit", _PyCFunction_CAST(warnings_warn_explicit), - METH_VARARGS | METH_KEYWORDS, warn_explicit_doc}, + WARNINGS_WARN_EXPLICIT_METHODDEF {"_filters_mutated", _PyCFunction_CAST(warnings_filters_mutated), METH_NOARGS, NULL}, /* XXX(brett.cannon): add showwarning? */ diff --git a/Python/ast.c b/Python/ast.c index 607281e2685535..a0321b58ba8cff 100644 --- a/Python/ast.c +++ b/Python/ast.c @@ -22,6 +22,27 @@ static int validate_stmt(struct validator *, stmt_ty); static int validate_expr(struct validator *, expr_ty, expr_context_ty); static int validate_pattern(struct validator *, pattern_ty, int); +#define VALIDATE_POSITIONS(node) \ + if (node->lineno > node->end_lineno) { \ + PyErr_Format(PyExc_ValueError, \ + "AST node line range (%d, %d) is not valid", \ + node->lineno, node->end_lineno); \ + return 0; \ + } \ + if ((node->lineno < 0 && node->end_lineno != node->lineno) || \ + (node->col_offset < 0 && node->col_offset != node->end_col_offset)) { \ + PyErr_Format(PyExc_ValueError, \ + "AST node column range (%d, %d) for line range (%d, %d) is not valid", \ + node->col_offset, node->end_col_offset, node->lineno, node->end_lineno); \ + return 0; \ + } \ + if (node->lineno == node->end_lineno && node->col_offset > node->end_col_offset) { \ + PyErr_Format(PyExc_ValueError, \ + "line %d, column %d-%d is not a valid range", \ + node->lineno, node->col_offset, node->end_col_offset); \ + return 0; \ + } + static int validate_name(PyObject *name) { @@ -75,6 +96,7 @@ validate_args(struct validator *state, asdl_arg_seq *args) Py_ssize_t i; for (i = 0; i < asdl_seq_LEN(args); i++) { arg_ty arg = asdl_seq_GET(args, i); + VALIDATE_POSITIONS(arg); if (arg->annotation && !validate_expr(state, arg->annotation, Load)) return 0; } @@ -183,6 +205,7 @@ validate_constant(struct validator *state, PyObject *value) static int validate_expr(struct validator *state, expr_ty exp, expr_context_ty ctx) { + VALIDATE_POSITIONS(exp); int ret = -1; if (++state->recursion_depth > state->recursion_limit) { PyErr_SetString(PyExc_RecursionError, @@ -505,6 +528,7 @@ validate_capture(PyObject *name) static int validate_pattern(struct validator *state, pattern_ty p, int star_ok) { + VALIDATE_POSITIONS(p); int ret = -1; if (++state->recursion_depth > state->recursion_limit) { PyErr_SetString(PyExc_RecursionError, @@ -674,6 +698,7 @@ validate_body(struct validator *state, asdl_stmt_seq *body, const char *owner) static int validate_stmt(struct validator *state, stmt_ty stmt) { + VALIDATE_POSITIONS(stmt); int ret = -1; Py_ssize_t i; if (++state->recursion_depth > state->recursion_limit) { @@ -807,6 +832,7 @@ validate_stmt(struct validator *state, stmt_ty stmt) } for (i = 0; i < asdl_seq_LEN(stmt->v.Try.handlers); i++) { excepthandler_ty handler = asdl_seq_GET(stmt->v.Try.handlers, i); + VALIDATE_POSITIONS(handler); if ((handler->v.ExceptHandler.type && !validate_expr(state, handler->v.ExceptHandler.type, Load)) || !validate_body(state, handler->v.ExceptHandler.body, "ExceptHandler")) diff --git a/Python/ceval.c b/Python/ceval.c index 6158524999a84b..8891d6cfa07a15 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -13,22 +13,21 @@ #include "pycore_ceval.h" // _PyEval_SignalAsyncExc() #include "pycore_code.h" #include "pycore_function.h" -#include "pycore_initconfig.h" // _PyStatus_OK() #include "pycore_long.h" // _PyLong_GetZero() #include "pycore_object.h" // _PyObject_GC_TRACK() #include "pycore_moduleobject.h" // PyModuleObject #include "pycore_opcode.h" // EXTRA_CASES #include "pycore_pyerrors.h" // _PyErr_Fetch() -#include "pycore_pylifecycle.h" // _PyErr_Print() #include "pycore_pymem.h" // _PyMem_IsPtrFreed() #include "pycore_pystate.h" // _PyInterpreterState_GET() +#include "pycore_range.h" // _PyRangeIterObject +#include "pycore_sliceobject.h" // _PyBuildSlice_ConsumeRefs #include "pycore_sysmodule.h" // _PySys_Audit() #include "pycore_tuple.h" // _PyTuple_ITEMS() #include "pycore_emscripten_signal.h" // _Py_CHECK_EMSCRIPTEN_SIGNALS #include "pycore_dict.h" #include "dictobject.h" -#include "frameobject.h" #include "pycore_frame.h" #include "opcode.h" #include "pydtrace.h" @@ -47,7 +46,7 @@ # error "ceval.c must be build with Py_BUILD_CORE define for best performance" #endif -#ifndef Py_DEBUG +#if !defined(Py_DEBUG) && !defined(Py_TRACE_REFS) // GH-89279: The MSVC compiler does not inline these static inline functions // in PGO build in _PyEval_EvalFrameDefault(), because this function is over // the limit of PGO, and that limit cannot be configured. @@ -97,6 +96,10 @@ #define _Py_atomic_load_relaxed_int32(ATOMIC_VAL) _Py_atomic_load_relaxed(ATOMIC_VAL) #endif +#define HEAD_LOCK(runtime) \ + PyThread_acquire_lock((runtime)->interpreters.mutex, WAIT_LOCK) +#define HEAD_UNLOCK(runtime) \ + PyThread_release_lock((runtime)->interpreters.mutex) /* Forward declarations */ static PyObject *trace_call_function( @@ -151,11 +154,12 @@ lltrace_instruction(_PyInterpreterFrame *frame, static void lltrace_resume_frame(_PyInterpreterFrame *frame) { - PyFunctionObject *f = frame->f_func; - if (f == NULL) { + PyObject *fobj = frame->f_funcobj; + if (fobj == NULL || !PyFunction_Check(fobj)) { printf("\nResuming frame."); return; } + PyFunctionObject *f = (PyFunctionObject *)fobj; PyObject *type, *value, *traceback; PyErr_Fetch(&type, &value, &traceback); PyObject *name = f->func_qualname; @@ -236,633 +240,9 @@ is_tstate_valid(PyThreadState *tstate) #endif -/* This can set eval_breaker to 0 even though gil_drop_request became - 1. We believe this is all right because the eval loop will release - the GIL eventually anyway. */ -static inline void -COMPUTE_EVAL_BREAKER(PyInterpreterState *interp, - struct _ceval_runtime_state *ceval, - struct _ceval_state *ceval2) -{ - _Py_atomic_store_relaxed(&ceval2->eval_breaker, - _Py_atomic_load_relaxed_int32(&ceval2->gil_drop_request) - | (_Py_atomic_load_relaxed_int32(&ceval->signals_pending) - && _Py_ThreadCanHandleSignals(interp)) - | (_Py_atomic_load_relaxed_int32(&ceval2->pending.calls_to_do) - && _Py_ThreadCanHandlePendingCalls()) - | ceval2->pending.async_exc); -} - - -static inline void -SET_GIL_DROP_REQUEST(PyInterpreterState *interp) -{ - struct _ceval_state *ceval2 = &interp->ceval; - _Py_atomic_store_relaxed(&ceval2->gil_drop_request, 1); - _Py_atomic_store_relaxed(&ceval2->eval_breaker, 1); -} - - -static inline void -RESET_GIL_DROP_REQUEST(PyInterpreterState *interp) -{ - struct _ceval_runtime_state *ceval = &interp->runtime->ceval; - struct _ceval_state *ceval2 = &interp->ceval; - _Py_atomic_store_relaxed(&ceval2->gil_drop_request, 0); - COMPUTE_EVAL_BREAKER(interp, ceval, ceval2); -} - - -static inline void -SIGNAL_PENDING_CALLS(PyInterpreterState *interp) -{ - struct _ceval_runtime_state *ceval = &interp->runtime->ceval; - struct _ceval_state *ceval2 = &interp->ceval; - _Py_atomic_store_relaxed(&ceval2->pending.calls_to_do, 1); - COMPUTE_EVAL_BREAKER(interp, ceval, ceval2); -} - - -static inline void -UNSIGNAL_PENDING_CALLS(PyInterpreterState *interp) -{ - struct _ceval_runtime_state *ceval = &interp->runtime->ceval; - struct _ceval_state *ceval2 = &interp->ceval; - _Py_atomic_store_relaxed(&ceval2->pending.calls_to_do, 0); - COMPUTE_EVAL_BREAKER(interp, ceval, ceval2); -} - - -static inline void -SIGNAL_PENDING_SIGNALS(PyInterpreterState *interp, int force) -{ - struct _ceval_runtime_state *ceval = &interp->runtime->ceval; - struct _ceval_state *ceval2 = &interp->ceval; - _Py_atomic_store_relaxed(&ceval->signals_pending, 1); - if (force) { - _Py_atomic_store_relaxed(&ceval2->eval_breaker, 1); - } - else { - /* eval_breaker is not set to 1 if thread_can_handle_signals() is false */ - COMPUTE_EVAL_BREAKER(interp, ceval, ceval2); - } -} - - -static inline void -UNSIGNAL_PENDING_SIGNALS(PyInterpreterState *interp) -{ - struct _ceval_runtime_state *ceval = &interp->runtime->ceval; - struct _ceval_state *ceval2 = &interp->ceval; - _Py_atomic_store_relaxed(&ceval->signals_pending, 0); - COMPUTE_EVAL_BREAKER(interp, ceval, ceval2); -} - - -static inline void -SIGNAL_ASYNC_EXC(PyInterpreterState *interp) -{ - struct _ceval_state *ceval2 = &interp->ceval; - ceval2->pending.async_exc = 1; - _Py_atomic_store_relaxed(&ceval2->eval_breaker, 1); -} - - -static inline void -UNSIGNAL_ASYNC_EXC(PyInterpreterState *interp) -{ - struct _ceval_runtime_state *ceval = &interp->runtime->ceval; - struct _ceval_state *ceval2 = &interp->ceval; - ceval2->pending.async_exc = 0; - COMPUTE_EVAL_BREAKER(interp, ceval, ceval2); -} - - #ifdef HAVE_ERRNO_H #include <errno.h> #endif -#include "ceval_gil.h" - -void _Py_NO_RETURN -_Py_FatalError_TstateNULL(const char *func) -{ - _Py_FatalErrorFunc(func, - "the function must be called with the GIL held, " - "but the GIL is released " - "(the current Python thread state is NULL)"); -} - -#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS -int -_PyEval_ThreadsInitialized(PyInterpreterState *interp) -{ - return gil_created(&interp->ceval.gil); -} - -int -PyEval_ThreadsInitialized(void) -{ - // Fatal error if there is no current interpreter - PyInterpreterState *interp = PyInterpreterState_Get(); - return _PyEval_ThreadsInitialized(interp); -} -#else -int -_PyEval_ThreadsInitialized(_PyRuntimeState *runtime) -{ - return gil_created(&runtime->ceval.gil); -} - -int -PyEval_ThreadsInitialized(void) -{ - _PyRuntimeState *runtime = &_PyRuntime; - return _PyEval_ThreadsInitialized(runtime); -} -#endif - -PyStatus -_PyEval_InitGIL(PyThreadState *tstate) -{ -#ifndef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS - if (!_Py_IsMainInterpreter(tstate->interp)) { - /* Currently, the GIL is shared by all interpreters, - and only the main interpreter is responsible to create - and destroy it. */ - return _PyStatus_OK(); - } -#endif - -#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS - struct _gil_runtime_state *gil = &tstate->interp->ceval.gil; -#else - struct _gil_runtime_state *gil = &tstate->interp->runtime->ceval.gil; -#endif - assert(!gil_created(gil)); - - PyThread_init_thread(); - create_gil(gil); - - take_gil(tstate); - - assert(gil_created(gil)); - return _PyStatus_OK(); -} - -void -_PyEval_FiniGIL(PyInterpreterState *interp) -{ -#ifndef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS - if (!_Py_IsMainInterpreter(interp)) { - /* Currently, the GIL is shared by all interpreters, - and only the main interpreter is responsible to create - and destroy it. */ - return; - } -#endif - -#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS - struct _gil_runtime_state *gil = &interp->ceval.gil; -#else - struct _gil_runtime_state *gil = &interp->runtime->ceval.gil; -#endif - if (!gil_created(gil)) { - /* First Py_InitializeFromConfig() call: the GIL doesn't exist - yet: do nothing. */ - return; - } - - destroy_gil(gil); - assert(!gil_created(gil)); -} - -void -PyEval_InitThreads(void) -{ - /* Do nothing: kept for backward compatibility */ -} - -void -_PyEval_Fini(void) -{ -#ifdef Py_STATS - _Py_PrintSpecializationStats(1); -#endif -} - -void -PyEval_AcquireLock(void) -{ - _PyRuntimeState *runtime = &_PyRuntime; - PyThreadState *tstate = _PyRuntimeState_GetThreadState(runtime); - _Py_EnsureTstateNotNULL(tstate); - - take_gil(tstate); -} - -void -PyEval_ReleaseLock(void) -{ - _PyRuntimeState *runtime = &_PyRuntime; - PyThreadState *tstate = _PyRuntimeState_GetThreadState(runtime); - /* This function must succeed when the current thread state is NULL. - We therefore avoid PyThreadState_Get() which dumps a fatal error - in debug mode. */ - struct _ceval_runtime_state *ceval = &runtime->ceval; - struct _ceval_state *ceval2 = &tstate->interp->ceval; - drop_gil(ceval, ceval2, tstate); -} - -void -_PyEval_ReleaseLock(PyThreadState *tstate) -{ - struct _ceval_runtime_state *ceval = &tstate->interp->runtime->ceval; - struct _ceval_state *ceval2 = &tstate->interp->ceval; - drop_gil(ceval, ceval2, tstate); -} - -void -PyEval_AcquireThread(PyThreadState *tstate) -{ - _Py_EnsureTstateNotNULL(tstate); - - take_gil(tstate); - - struct _gilstate_runtime_state *gilstate = &tstate->interp->runtime->gilstate; -#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS - (void)_PyThreadState_Swap(gilstate, tstate); -#else - if (_PyThreadState_Swap(gilstate, tstate) != NULL) { - Py_FatalError("non-NULL old thread state"); - } -#endif -} - -void -PyEval_ReleaseThread(PyThreadState *tstate) -{ - assert(is_tstate_valid(tstate)); - - _PyRuntimeState *runtime = tstate->interp->runtime; - PyThreadState *new_tstate = _PyThreadState_Swap(&runtime->gilstate, NULL); - if (new_tstate != tstate) { - Py_FatalError("wrong thread state"); - } - struct _ceval_runtime_state *ceval = &runtime->ceval; - struct _ceval_state *ceval2 = &tstate->interp->ceval; - drop_gil(ceval, ceval2, tstate); -} - -#ifdef HAVE_FORK -/* This function is called from PyOS_AfterFork_Child to destroy all threads - which are not running in the child process, and clear internal locks - which might be held by those threads. */ -PyStatus -_PyEval_ReInitThreads(PyThreadState *tstate) -{ - _PyRuntimeState *runtime = tstate->interp->runtime; - -#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS - struct _gil_runtime_state *gil = &tstate->interp->ceval.gil; -#else - struct _gil_runtime_state *gil = &runtime->ceval.gil; -#endif - if (!gil_created(gil)) { - return _PyStatus_OK(); - } - recreate_gil(gil); - - take_gil(tstate); - - struct _pending_calls *pending = &tstate->interp->ceval.pending; - if (_PyThread_at_fork_reinit(&pending->lock) < 0) { - return _PyStatus_ERR("Can't reinitialize pending calls lock"); - } - - /* Destroy all threads except the current one */ - _PyThreadState_DeleteExcept(runtime, tstate); - return _PyStatus_OK(); -} -#endif - -/* This function is used to signal that async exceptions are waiting to be - raised. */ - -void -_PyEval_SignalAsyncExc(PyInterpreterState *interp) -{ - SIGNAL_ASYNC_EXC(interp); -} - -PyThreadState * -PyEval_SaveThread(void) -{ - _PyRuntimeState *runtime = &_PyRuntime; -#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS - PyThreadState *old_tstate = _PyThreadState_GET(); - PyThreadState *tstate = _PyThreadState_Swap(&runtime->gilstate, old_tstate); -#else - PyThreadState *tstate = _PyThreadState_Swap(&runtime->gilstate, NULL); -#endif - _Py_EnsureTstateNotNULL(tstate); - - struct _ceval_runtime_state *ceval = &runtime->ceval; - struct _ceval_state *ceval2 = &tstate->interp->ceval; -#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS - assert(gil_created(&ceval2->gil)); -#else - assert(gil_created(&ceval->gil)); -#endif - drop_gil(ceval, ceval2, tstate); - return tstate; -} - -void -PyEval_RestoreThread(PyThreadState *tstate) -{ - _Py_EnsureTstateNotNULL(tstate); - - take_gil(tstate); - - struct _gilstate_runtime_state *gilstate = &tstate->interp->runtime->gilstate; - _PyThreadState_Swap(gilstate, tstate); -} - - -/* Mechanism whereby asynchronously executing callbacks (e.g. UNIX - signal handlers or Mac I/O completion routines) can schedule calls - to a function to be called synchronously. - The synchronous function is called with one void* argument. - It should return 0 for success or -1 for failure -- failure should - be accompanied by an exception. - - If registry succeeds, the registry function returns 0; if it fails - (e.g. due to too many pending calls) it returns -1 (without setting - an exception condition). - - Note that because registry may occur from within signal handlers, - or other asynchronous events, calling malloc() is unsafe! - - Any thread can schedule pending calls, but only the main thread - will execute them. - There is no facility to schedule calls to a particular thread, but - that should be easy to change, should that ever be required. In - that case, the static variables here should go into the python - threadstate. -*/ - -void -_PyEval_SignalReceived(PyInterpreterState *interp) -{ -#ifdef MS_WINDOWS - // bpo-42296: On Windows, _PyEval_SignalReceived() is called from a signal - // handler which can run in a thread different than the Python thread, in - // which case _Py_ThreadCanHandleSignals() is wrong. Ignore - // _Py_ThreadCanHandleSignals() and always set eval_breaker to 1. - // - // The next eval_frame_handle_pending() call will call - // _Py_ThreadCanHandleSignals() to recompute eval_breaker. - int force = 1; -#else - int force = 0; -#endif - /* bpo-30703: Function called when the C signal handler of Python gets a - signal. We cannot queue a callback using _PyEval_AddPendingCall() since - that function is not async-signal-safe. */ - SIGNAL_PENDING_SIGNALS(interp, force); -} - -/* Push one item onto the queue while holding the lock. */ -static int -_push_pending_call(struct _pending_calls *pending, - int (*func)(void *), void *arg) -{ - int i = pending->last; - int j = (i + 1) % NPENDINGCALLS; - if (j == pending->first) { - return -1; /* Queue full */ - } - pending->calls[i].func = func; - pending->calls[i].arg = arg; - pending->last = j; - return 0; -} - -/* Pop one item off the queue while holding the lock. */ -static void -_pop_pending_call(struct _pending_calls *pending, - int (**func)(void *), void **arg) -{ - int i = pending->first; - if (i == pending->last) { - return; /* Queue empty */ - } - - *func = pending->calls[i].func; - *arg = pending->calls[i].arg; - pending->first = (i + 1) % NPENDINGCALLS; -} - -/* This implementation is thread-safe. It allows - scheduling to be made from any thread, and even from an executing - callback. - */ - -int -_PyEval_AddPendingCall(PyInterpreterState *interp, - int (*func)(void *), void *arg) -{ - struct _pending_calls *pending = &interp->ceval.pending; - - /* Ensure that _PyEval_InitPendingCalls() was called - and that _PyEval_FiniPendingCalls() is not called yet. */ - assert(pending->lock != NULL); - - PyThread_acquire_lock(pending->lock, WAIT_LOCK); - int result = _push_pending_call(pending, func, arg); - PyThread_release_lock(pending->lock); - - /* signal main loop */ - SIGNAL_PENDING_CALLS(interp); - return result; -} - -int -Py_AddPendingCall(int (*func)(void *), void *arg) -{ - /* Best-effort to support subinterpreters and calls with the GIL released. - - First attempt _PyThreadState_GET() since it supports subinterpreters. - - If the GIL is released, _PyThreadState_GET() returns NULL . In this - case, use PyGILState_GetThisThreadState() which works even if the GIL - is released. - - Sadly, PyGILState_GetThisThreadState() doesn't support subinterpreters: - see bpo-10915 and bpo-15751. - - Py_AddPendingCall() doesn't require the caller to hold the GIL. */ - PyThreadState *tstate = _PyThreadState_GET(); - if (tstate == NULL) { - tstate = PyGILState_GetThisThreadState(); - } - - PyInterpreterState *interp; - if (tstate != NULL) { - interp = tstate->interp; - } - else { - /* Last resort: use the main interpreter */ - interp = _PyInterpreterState_Main(); - } - return _PyEval_AddPendingCall(interp, func, arg); -} - -static int -handle_signals(PyThreadState *tstate) -{ - assert(is_tstate_valid(tstate)); - if (!_Py_ThreadCanHandleSignals(tstate->interp)) { - return 0; - } - - UNSIGNAL_PENDING_SIGNALS(tstate->interp); - if (_PyErr_CheckSignalsTstate(tstate) < 0) { - /* On failure, re-schedule a call to handle_signals(). */ - SIGNAL_PENDING_SIGNALS(tstate->interp, 0); - return -1; - } - return 0; -} - -static int -make_pending_calls(PyInterpreterState *interp) -{ - /* only execute pending calls on main thread */ - if (!_Py_ThreadCanHandlePendingCalls()) { - return 0; - } - - /* don't perform recursive pending calls */ - static int busy = 0; - if (busy) { - return 0; - } - busy = 1; - - /* unsignal before starting to call callbacks, so that any callback - added in-between re-signals */ - UNSIGNAL_PENDING_CALLS(interp); - int res = 0; - - /* perform a bounded number of calls, in case of recursion */ - struct _pending_calls *pending = &interp->ceval.pending; - for (int i=0; i<NPENDINGCALLS; i++) { - int (*func)(void *) = NULL; - void *arg = NULL; - - /* pop one item off the queue while holding the lock */ - PyThread_acquire_lock(pending->lock, WAIT_LOCK); - _pop_pending_call(pending, &func, &arg); - PyThread_release_lock(pending->lock); - - /* having released the lock, perform the callback */ - if (func == NULL) { - break; - } - res = func(arg); - if (res) { - goto error; - } - } - - busy = 0; - return res; - -error: - busy = 0; - SIGNAL_PENDING_CALLS(interp); - return res; -} - -void -_Py_FinishPendingCalls(PyThreadState *tstate) -{ - assert(PyGILState_Check()); - assert(is_tstate_valid(tstate)); - - struct _pending_calls *pending = &tstate->interp->ceval.pending; - - if (!_Py_atomic_load_relaxed_int32(&(pending->calls_to_do))) { - return; - } - - if (make_pending_calls(tstate->interp) < 0) { - PyObject *exc, *val, *tb; - _PyErr_Fetch(tstate, &exc, &val, &tb); - PyErr_BadInternalCall(); - _PyErr_ChainExceptions(exc, val, tb); - _PyErr_Print(tstate); - } -} - -/* Py_MakePendingCalls() is a simple wrapper for the sake - of backward-compatibility. */ -int -Py_MakePendingCalls(void) -{ - assert(PyGILState_Check()); - - PyThreadState *tstate = _PyThreadState_GET(); - assert(is_tstate_valid(tstate)); - - /* Python signal handler doesn't really queue a callback: it only signals - that a signal was received, see _PyEval_SignalReceived(). */ - int res = handle_signals(tstate); - if (res != 0) { - return res; - } - - res = make_pending_calls(tstate->interp); - if (res != 0) { - return res; - } - - return 0; -} - -/* The interpreter's recursion limit */ - -void -_PyEval_InitRuntimeState(struct _ceval_runtime_state *ceval) -{ -#ifndef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS - _gil_initialize(&ceval->gil); -#endif -} - -void -_PyEval_InitState(struct _ceval_state *ceval, PyThread_type_lock pending_lock) -{ - struct _pending_calls *pending = &ceval->pending; - assert(pending->lock == NULL); - - pending->lock = pending_lock; - -#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS - _gil_initialize(&ceval->gil); -#endif -} - -void -_PyEval_FiniState(struct _ceval_state *ceval) -{ - struct _pending_calls *pending = &ceval->pending; - if (pending->lock != NULL) { - PyThread_free_lock(pending->lock); - pending->lock = NULL; - } -} int Py_GetRecursionLimit(void) @@ -1232,75 +612,6 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag) } -/* Handle signals, pending calls, GIL drop request - and asynchronous exception */ -static int -eval_frame_handle_pending(PyThreadState *tstate) -{ - _PyRuntimeState * const runtime = &_PyRuntime; - struct _ceval_runtime_state *ceval = &runtime->ceval; - - /* Pending signals */ - if (_Py_atomic_load_relaxed_int32(&ceval->signals_pending)) { - if (handle_signals(tstate) != 0) { - return -1; - } - } - - /* Pending calls */ - struct _ceval_state *ceval2 = &tstate->interp->ceval; - if (_Py_atomic_load_relaxed_int32(&ceval2->pending.calls_to_do)) { - if (make_pending_calls(tstate->interp) != 0) { - return -1; - } - } - - /* GIL drop request */ - if (_Py_atomic_load_relaxed_int32(&ceval2->gil_drop_request)) { - /* Give another thread a chance */ - if (_PyThreadState_Swap(&runtime->gilstate, NULL) != tstate) { - Py_FatalError("tstate mix-up"); - } - drop_gil(ceval, ceval2, tstate); - - /* Other threads may run now */ - - take_gil(tstate); - -#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS - (void)_PyThreadState_Swap(&runtime->gilstate, tstate); -#else - if (_PyThreadState_Swap(&runtime->gilstate, tstate) != NULL) { - Py_FatalError("orphan tstate"); - } -#endif - } - - /* Check for asynchronous exception. */ - if (tstate->async_exc != NULL) { - PyObject *exc = tstate->async_exc; - tstate->async_exc = NULL; - UNSIGNAL_ASYNC_EXC(tstate->interp); - _PyErr_SetNone(tstate, exc); - Py_DECREF(exc); - return -1; - } - -#ifdef MS_WINDOWS - // bpo-42296: On Windows, _PyEval_SignalReceived() can be called in a - // different thread than the Python thread, in which case - // _Py_ThreadCanHandleSignals() is wrong. Recompute eval_breaker in the - // current Python thread with the correct _Py_ThreadCanHandleSignals() - // value. It prevents to interrupt the eval loop at every instruction if - // the current Python thread cannot handle signals (if - // _Py_ThreadCanHandleSignals() is false). - COMPUTE_EVAL_BREAKER(tstate->interp, ceval, ceval2); -#endif - - return 0; -} - - /* Computed GOTOs, or the-optimization-commonly-but-improperly-known-as-"threaded code" using gcc's labels-as-values extension @@ -1365,7 +676,7 @@ eval_frame_handle_pending(PyThreadState *tstate) do { \ frame->prev_instr = next_instr++; \ OPCODE_EXE_INC(op); \ - _py_stats.opcode_stats[lastopcode].pair_count[op]++; \ + if (_py_stats) _py_stats->opcode_stats[lastopcode].pair_count[op]++; \ lastopcode = op; \ } while (0) #else @@ -1388,12 +699,6 @@ eval_frame_handle_pending(PyThreadState *tstate) #define PRE_DISPATCH_GOTO() ((void)0) #endif -#define NOTRACE_DISPATCH() \ - { \ - NEXTOPARG(); \ - PRE_DISPATCH_GOTO(); \ - DISPATCH_GOTO(); \ - } /* Do interpreter dispatch accounting for tracing and instrumentation */ #define DISPATCH() \ @@ -1405,10 +710,11 @@ eval_frame_handle_pending(PyThreadState *tstate) DISPATCH_GOTO(); \ } -#define NOTRACE_DISPATCH_SAME_OPARG() \ +#define DISPATCH_SAME_OPARG() \ { \ opcode = _Py_OPCODE(*next_instr); \ PRE_DISPATCH_GOTO(); \ + opcode |= cframe.use_tracing OR_DTRACE_LINE; \ DISPATCH_GOTO(); \ } @@ -1422,9 +728,15 @@ eval_frame_handle_pending(PyThreadState *tstate) /* Tuple access macros */ #ifndef Py_DEBUG -#define GETITEM(v, i) PyTuple_GET_ITEM((PyTupleObject *)(v), (i)) +#define GETITEM(v, i) PyTuple_GET_ITEM((v), (i)) #else -#define GETITEM(v, i) PyTuple_GetItem((v), (i)) +static inline PyObject * +GETITEM(PyObject *v, Py_ssize_t i) { + assert(PyTuple_Check(v)); + assert(i >= 0); + assert(i < PyTuple_GET_SIZE(v)); + return PyTuple_GET_ITEM(v, i); +} #endif /* Code access macros */ @@ -1557,22 +869,6 @@ eval_frame_handle_pending(PyThreadState *tstate) /* Shared opcode macros */ -// shared by LOAD_ATTR_MODULE and LOAD_METHOD_MODULE -#define LOAD_MODULE_ATTR_OR_METHOD(attr_or_method) \ - _PyAttrCache *cache = (_PyAttrCache *)next_instr; \ - DEOPT_IF(!PyModule_CheckExact(owner), LOAD_##attr_or_method); \ - PyDictObject *dict = (PyDictObject *)((PyModuleObject *)owner)->md_dict; \ - assert(dict != NULL); \ - DEOPT_IF(dict->ma_keys->dk_version != read_u32(cache->version), \ - LOAD_##attr_or_method); \ - assert(dict->ma_keys->dk_kind == DICT_KEYS_UNICODE); \ - assert(cache->index < dict->ma_keys->dk_nentries); \ - PyDictUnicodeEntry *ep = DK_UNICODE_ENTRIES(dict->ma_keys) + cache->index; \ - res = ep->me_value; \ - DEOPT_IF(res == NULL, LOAD_##attr_or_method); \ - STAT_INC(LOAD_##attr_or_method, hit); \ - Py_INCREF(res); - #define TRACE_FUNCTION_EXIT() \ if (cframe.use_tracing) { \ if (trace_function_exit(tstate, frame, retval)) { \ @@ -1616,7 +912,11 @@ eval_frame_handle_pending(PyThreadState *tstate) dtrace_function_entry(frame); \ } +#define ADAPTIVE_COUNTER_IS_ZERO(cache) \ + (cache)->counter < (1<<ADAPTIVE_BACKOFF_BITS) +#define DECREMENT_ADAPTIVE_COUNTER(cache) \ + (cache)->counter -= (1<<ADAPTIVE_BACKOFF_BITS) static int trace_function_entry(PyThreadState *tstate, _PyInterpreterFrame *frame) @@ -1816,7 +1116,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int * All loops should include a check of the eval breaker. * We also check on return from any builtin function. */ - if (eval_frame_handle_pending(tstate) != 0) { + if (_Py_HandlePending(tstate) != 0) { goto error; } DISPATCH(); @@ -1864,7 +1164,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int DISPATCH(); } - TARGET(LOAD_FAST) { + TARGET(LOAD_FAST_CHECK) { PyObject *value = GETLOCAL(oparg); if (value == NULL) { goto unbound_local_error; @@ -1874,6 +1174,14 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int DISPATCH(); } + TARGET(LOAD_FAST) { + PyObject *value = GETLOCAL(oparg); + assert(value != NULL); + Py_INCREF(value); + PUSH(value); + DISPATCH(); + } + TARGET(LOAD_CONST) { PREDICTED(LOAD_CONST); PyObject *value = GETITEM(consts, oparg); @@ -1883,7 +1191,6 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int } TARGET(STORE_FAST) { - PREDICTED(STORE_FAST); PyObject *value = POP(); SETLOCAL(oparg, value); DISPATCH(); @@ -1891,27 +1198,21 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int TARGET(LOAD_FAST__LOAD_FAST) { PyObject *value = GETLOCAL(oparg); - if (value == NULL) { - goto unbound_local_error; - } + assert(value != NULL); NEXTOPARG(); next_instr++; Py_INCREF(value); PUSH(value); value = GETLOCAL(oparg); - if (value == NULL) { - goto unbound_local_error; - } + assert(value != NULL); Py_INCREF(value); PUSH(value); - NOTRACE_DISPATCH(); + DISPATCH(); } TARGET(LOAD_FAST__LOAD_CONST) { PyObject *value = GETLOCAL(oparg); - if (value == NULL) { - goto unbound_local_error; - } + assert(value != NULL); NEXTOPARG(); next_instr++; Py_INCREF(value); @@ -1919,7 +1220,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int value = GETITEM(consts, oparg); Py_INCREF(value); PUSH(value); - NOTRACE_DISPATCH(); + DISPATCH(); } TARGET(STORE_FAST__LOAD_FAST) { @@ -1928,12 +1229,10 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int NEXTOPARG(); next_instr++; value = GETLOCAL(oparg); - if (value == NULL) { - goto unbound_local_error; - } + assert(value != NULL); Py_INCREF(value); PUSH(value); - NOTRACE_DISPATCH(); + DISPATCH(); } TARGET(STORE_FAST__STORE_FAST) { @@ -1943,7 +1242,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int next_instr++; value = POP(); SETLOCAL(oparg, value); - NOTRACE_DISPATCH(); + DISPATCH(); } TARGET(LOAD_CONST__LOAD_FAST) { @@ -1953,12 +1252,10 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int Py_INCREF(value); PUSH(value); value = GETLOCAL(oparg); - if (value == NULL) { - goto unbound_local_error; - } + assert(value != NULL); Py_INCREF(value); PUSH(value); - NOTRACE_DISPATCH(); + DISPATCH(); } TARGET(POP_TOP) { @@ -2037,7 +1334,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int goto error; } JUMPBY(INLINE_CACHE_ENTRIES_BINARY_OP); - NOTRACE_DISPATCH(); + DISPATCH(); } TARGET(BINARY_OP_MULTIPLY_FLOAT) { @@ -2058,7 +1355,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int goto error; } JUMPBY(INLINE_CACHE_ENTRIES_BINARY_OP); - NOTRACE_DISPATCH(); + DISPATCH(); } TARGET(BINARY_OP_SUBTRACT_INT) { @@ -2077,7 +1374,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int goto error; } JUMPBY(INLINE_CACHE_ENTRIES_BINARY_OP); - NOTRACE_DISPATCH(); + DISPATCH(); } TARGET(BINARY_OP_SUBTRACT_FLOAT) { @@ -2097,7 +1394,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int goto error; } JUMPBY(INLINE_CACHE_ENTRIES_BINARY_OP); - NOTRACE_DISPATCH(); + DISPATCH(); } TARGET(BINARY_OP_ADD_UNICODE) { @@ -2116,7 +1413,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int goto error; } JUMPBY(INLINE_CACHE_ENTRIES_BINARY_OP); - NOTRACE_DISPATCH(); + DISPATCH(); } TARGET(BINARY_OP_INPLACE_ADD_UNICODE) { @@ -2152,7 +1449,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int } // The STORE_FAST is already done. JUMPBY(INLINE_CACHE_ENTRIES_BINARY_OP + 1); - NOTRACE_DISPATCH(); + DISPATCH(); } TARGET(BINARY_OP_ADD_FLOAT) { @@ -2173,7 +1470,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int goto error; } JUMPBY(INLINE_CACHE_ENTRIES_BINARY_OP); - NOTRACE_DISPATCH(); + DISPATCH(); } TARGET(BINARY_OP_ADD_INT) { @@ -2192,7 +1489,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int goto error; } JUMPBY(INLINE_CACHE_ENTRIES_BINARY_OP); - NOTRACE_DISPATCH(); + DISPATCH(); } TARGET(BINARY_SUBSCR) { @@ -2209,20 +1506,60 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int DISPATCH(); } + TARGET(BINARY_SLICE) { + PyObject *stop = POP(); + PyObject *start = POP(); + PyObject *container = TOP(); + + PyObject *slice = _PyBuildSlice_ConsumeRefs(start, stop); + if (slice == NULL) { + goto error; + } + PyObject *res = PyObject_GetItem(container, slice); + Py_DECREF(slice); + if (res == NULL) { + goto error; + } + SET_TOP(res); + Py_DECREF(container); + DISPATCH(); + } + + TARGET(STORE_SLICE) { + PyObject *stop = POP(); + PyObject *start = POP(); + PyObject *container = TOP(); + PyObject *v = SECOND(); + + PyObject *slice = _PyBuildSlice_ConsumeRefs(start, stop); + if (slice == NULL) { + goto error; + } + int err = PyObject_SetItem(container, slice, v); + Py_DECREF(slice); + if (err) { + goto error; + } + STACK_SHRINK(2); + Py_DECREF(v); + Py_DECREF(container); + DISPATCH(); + } + TARGET(BINARY_SUBSCR_ADAPTIVE) { _PyBinarySubscrCache *cache = (_PyBinarySubscrCache *)next_instr; - if (cache->counter == 0) { + if (ADAPTIVE_COUNTER_IS_ZERO(cache)) { PyObject *sub = TOP(); PyObject *container = SECOND(); next_instr--; if (_Py_Specialize_BinarySubscr(container, sub, next_instr) < 0) { goto error; } - NOTRACE_DISPATCH_SAME_OPARG(); + DISPATCH_SAME_OPARG(); } else { STAT_INC(BINARY_SUBSCR, deferred); - cache->counter--; + DECREMENT_ADAPTIVE_COUNTER(cache); JUMP_TO_INSTRUCTION(BINARY_SUBSCR); } } @@ -2249,7 +1586,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int SET_TOP(res); Py_DECREF(list); JUMPBY(INLINE_CACHE_ENTRIES_BINARY_SUBSCR); - NOTRACE_DISPATCH(); + DISPATCH(); } TARGET(BINARY_SUBSCR_TUPLE_INT) { @@ -2274,7 +1611,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int SET_TOP(res); Py_DECREF(tuple); JUMPBY(INLINE_CACHE_ENTRIES_BINARY_SUBSCR); - NOTRACE_DISPATCH(); + DISPATCH(); } TARGET(BINARY_SUBSCR_DICT) { @@ -2285,7 +1622,10 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int PyObject *sub = TOP(); PyObject *res = PyDict_GetItemWithError(dict, sub); if (res == NULL) { - goto binary_subscr_dict_error; + if (!_PyErr_Occurred(tstate)) { + _PyErr_SetKeyError(sub); + } + goto error; } Py_INCREF(res); STACK_SHRINK(1); @@ -2309,16 +1649,11 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int PyFunctionObject *getitem = (PyFunctionObject *)cached; DEOPT_IF(getitem->func_version != cache->func_version, BINARY_SUBSCR); PyCodeObject *code = (PyCodeObject *)getitem->func_code; - size_t size = code->co_nlocalsplus + code->co_stacksize + FRAME_SPECIALS_SIZE; assert(code->co_argcount == 2); - _PyInterpreterFrame *new_frame = _PyThreadState_BumpFramePointer(tstate, size); - if (new_frame == NULL) { - goto error; - } - CALL_STAT_INC(frames_pushed); + DEOPT_IF(!_PyThreadState_HasStackSpace(tstate, code->co_framesize), BINARY_SUBSCR); + STAT_INC(BINARY_SUBSCR, hit); Py_INCREF(getitem); - _PyFrame_InitializeSpecials(new_frame, getitem, - NULL, code->co_nlocalsplus); + _PyInterpreterFrame *new_frame = _PyFrame_PushUnchecked(tstate, getitem); STACK_SHRINK(2); new_frame->localsplus[0] = container; new_frame->localsplus[1] = sub; @@ -2376,18 +1711,18 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int TARGET(STORE_SUBSCR_ADAPTIVE) { _PyStoreSubscrCache *cache = (_PyStoreSubscrCache *)next_instr; - if (cache->counter == 0) { + if (ADAPTIVE_COUNTER_IS_ZERO(cache)) { PyObject *sub = TOP(); PyObject *container = SECOND(); next_instr--; if (_Py_Specialize_StoreSubscr(container, sub, next_instr) < 0) { goto error; } - NOTRACE_DISPATCH_SAME_OPARG(); + DISPATCH_SAME_OPARG(); } else { STAT_INC(STORE_SUBSCR, deferred); - cache->counter--; + DECREMENT_ADAPTIVE_COUNTER(cache); JUMP_TO_INSTRUCTION(STORE_SUBSCR); } } @@ -2415,7 +1750,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int _Py_DECREF_SPECIALIZED(sub, (destructor)PyObject_Free); Py_DECREF(list); JUMPBY(INLINE_CACHE_ENTRIES_STORE_SUBSCR); - NOTRACE_DISPATCH(); + DISPATCH(); } TARGET(STORE_SUBSCR_DICT) { @@ -2701,6 +2036,9 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int } TARGET(YIELD_VALUE) { + // NOTE: It's important that YIELD_VALUE never raises an exception! + // The compiler treats any exception raised here as a failed close() + // or throw() call. assert(oparg == STACK_LEVEL()); assert(frame->is_entry); PyObject *retval = POP(); @@ -2779,6 +2117,26 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int } } + TARGET(CLEANUP_THROW) { + assert(throwflag); + PyObject *exc_value = TOP(); + assert(exc_value && PyExceptionInstance_Check(exc_value)); + if (PyErr_GivenExceptionMatches(exc_value, PyExc_StopIteration)) { + PyObject *value = ((PyStopIterationObject *)exc_value)->value; + Py_INCREF(value); + Py_DECREF(POP()); // The StopIteration. + Py_DECREF(POP()); // The last sent value. + Py_DECREF(POP()); // The delegated sub-iterator. + PUSH(value); + DISPATCH(); + } + Py_INCREF(exc_value); + PyObject *exc_type = Py_NewRef(Py_TYPE(exc_value)); + PyObject *exc_traceback = PyException_GetTraceback(exc_value); + _PyErr_Restore(tstate, exc_type, exc_value, exc_traceback); + goto exception_unwind; + } + TARGET(LOAD_ASSERTION_ERROR) { PyObject *value = PyExc_AssertionError; Py_INCREF(value); @@ -2870,15 +2228,15 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int TARGET(UNPACK_SEQUENCE_ADAPTIVE) { assert(cframe.use_tracing == 0); _PyUnpackSequenceCache *cache = (_PyUnpackSequenceCache *)next_instr; - if (cache->counter == 0) { + if (ADAPTIVE_COUNTER_IS_ZERO(cache)) { PyObject *seq = TOP(); next_instr--; _Py_Specialize_UnpackSequence(seq, next_instr, oparg); - NOTRACE_DISPATCH_SAME_OPARG(); + DISPATCH_SAME_OPARG(); } else { STAT_INC(UNPACK_SEQUENCE, deferred); - cache->counter--; + DECREMENT_ADAPTIVE_COUNTER(cache); JUMP_TO_INSTRUCTION(UNPACK_SEQUENCE); } } @@ -2892,7 +2250,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int PUSH(Py_NewRef(PyTuple_GET_ITEM(seq, 0))); Py_DECREF(seq); JUMPBY(INLINE_CACHE_ENTRIES_UNPACK_SEQUENCE); - NOTRACE_DISPATCH(); + DISPATCH(); } TARGET(UNPACK_SEQUENCE_TUPLE) { @@ -2907,7 +2265,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int } Py_DECREF(seq); JUMPBY(INLINE_CACHE_ENTRIES_UNPACK_SEQUENCE); - NOTRACE_DISPATCH(); + DISPATCH(); } TARGET(UNPACK_SEQUENCE_LIST) { @@ -2922,7 +2280,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int } Py_DECREF(seq); JUMPBY(INLINE_CACHE_ENTRIES_UNPACK_SEQUENCE); - NOTRACE_DISPATCH(); + DISPATCH(); } TARGET(UNPACK_EX) { @@ -3111,17 +2469,17 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int TARGET(LOAD_GLOBAL_ADAPTIVE) { assert(cframe.use_tracing == 0); _PyLoadGlobalCache *cache = (_PyLoadGlobalCache *)next_instr; - if (cache->counter == 0) { + if (ADAPTIVE_COUNTER_IS_ZERO(cache)) { PyObject *name = GETITEM(names, oparg>>1); next_instr--; if (_Py_Specialize_LoadGlobal(GLOBALS(), BUILTINS(), next_instr, name) < 0) { goto error; } - NOTRACE_DISPATCH_SAME_OPARG(); + DISPATCH_SAME_OPARG(); } else { STAT_INC(LOAD_GLOBAL, deferred); - cache->counter--; + DECREMENT_ADAPTIVE_COUNTER(cache); JUMP_TO_INSTRUCTION(LOAD_GLOBAL); } } @@ -3144,7 +2502,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int STACK_GROW(push_null+1); Py_INCREF(res); SET_TOP(res); - NOTRACE_DISPATCH(); + DISPATCH(); } TARGET(LOAD_GLOBAL_BUILTIN) { @@ -3169,7 +2527,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int STACK_GROW(push_null+1); Py_INCREF(res); SET_TOP(res); - NOTRACE_DISPATCH(); + DISPATCH(); } TARGET(DELETE_FAST) { @@ -3265,7 +2623,8 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int TARGET(COPY_FREE_VARS) { /* Copy closure variables to free variables */ PyCodeObject *co = frame->f_code; - PyObject *closure = frame->f_func->func_closure; + assert(PyFunction_Check(frame->f_funcobj)); + PyObject *closure = ((PyFunctionObject *)frame->f_funcobj)->func_closure; int offset = co->co_nlocals + co->co_nplaincellvars; assert(oparg == co->co_nfreevars); for (int i = 0; i < oparg; ++i) { @@ -3291,13 +2650,10 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int } TARGET(BUILD_TUPLE) { - PyObject *tup = PyTuple_New(oparg); + STACK_SHRINK(oparg); + PyObject *tup = _PyTuple_FromArraySteal(stack_pointer, oparg); if (tup == NULL) goto error; - while (--oparg >= 0) { - PyObject *item = POP(); - PyTuple_SET_ITEM(tup, oparg, item); - } PUSH(tup); DISPATCH(); } @@ -3520,8 +2876,43 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int TARGET(LOAD_ATTR) { PREDICTED(LOAD_ATTR); - PyObject *name = GETITEM(names, oparg); + PyObject *name = GETITEM(names, oparg >> 1); PyObject *owner = TOP(); + if (oparg & 1) { + /* Designed to work in tandem with CALL. */ + PyObject* meth = NULL; + + int meth_found = _PyObject_GetMethod(owner, name, &meth); + + if (meth == NULL) { + /* Most likely attribute wasn't found. */ + goto error; + } + + if (meth_found) { + /* We can bypass temporary bound method object. + meth is unbound method and obj is self. + + meth | self | arg1 | ... | argN + */ + SET_TOP(meth); + PUSH(owner); // self + } + else { + /* meth is not an unbound method (but a regular attr, or + something was returned by a descriptor protocol). Set + the second element of the stack to NULL, to signal + CALL that it's not a method call. + + NULL | meth | arg1 | ... | argN + */ + SET_TOP(NULL); + Py_DECREF(owner); + PUSH(meth); + } + JUMPBY(INLINE_CACHE_ENTRIES_LOAD_ATTR); + DISPATCH(); + } PyObject *res = PyObject_GetAttr(owner, name); if (res == NULL) { goto error; @@ -3535,18 +2926,18 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int TARGET(LOAD_ATTR_ADAPTIVE) { assert(cframe.use_tracing == 0); _PyAttrCache *cache = (_PyAttrCache *)next_instr; - if (cache->counter == 0) { + if (ADAPTIVE_COUNTER_IS_ZERO(cache)) { PyObject *owner = TOP(); - PyObject *name = GETITEM(names, oparg); + PyObject *name = GETITEM(names, oparg>>1); next_instr--; if (_Py_Specialize_LoadAttr(owner, next_instr, name) < 0) { goto error; } - NOTRACE_DISPATCH_SAME_OPARG(); + DISPATCH_SAME_OPARG(); } else { STAT_INC(LOAD_ATTR, deferred); - cache->counter--; + DECREMENT_ADAPTIVE_COUNTER(cache); JUMP_TO_INSTRUCTION(LOAD_ATTR); } } @@ -3562,28 +2953,43 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int DEOPT_IF(tp->tp_version_tag != type_version, LOAD_ATTR); assert(tp->tp_dictoffset < 0); assert(tp->tp_flags & Py_TPFLAGS_MANAGED_DICT); - PyDictValues *values = *_PyObject_ValuesPointer(owner); - DEOPT_IF(values == NULL, LOAD_ATTR); - res = values->values[cache->index]; + PyDictOrValues dorv = *_PyObject_DictOrValuesPointer(owner); + DEOPT_IF(!_PyDictOrValues_IsValues(dorv), LOAD_ATTR); + res = _PyDictOrValues_GetValues(dorv)->values[cache->index]; DEOPT_IF(res == NULL, LOAD_ATTR); STAT_INC(LOAD_ATTR, hit); Py_INCREF(res); + SET_TOP(NULL); + STACK_GROW((oparg & 1)); SET_TOP(res); Py_DECREF(owner); JUMPBY(INLINE_CACHE_ENTRIES_LOAD_ATTR); - NOTRACE_DISPATCH(); + DISPATCH(); } TARGET(LOAD_ATTR_MODULE) { assert(cframe.use_tracing == 0); - // shared with LOAD_METHOD_MODULE PyObject *owner = TOP(); PyObject *res; - LOAD_MODULE_ATTR_OR_METHOD(ATTR); + _PyAttrCache *cache = (_PyAttrCache *)next_instr; + DEOPT_IF(!PyModule_CheckExact(owner), LOAD_ATTR); + PyDictObject *dict = (PyDictObject *)((PyModuleObject *)owner)->md_dict; + assert(dict != NULL); + DEOPT_IF(dict->ma_keys->dk_version != read_u32(cache->version), + LOAD_ATTR); + assert(dict->ma_keys->dk_kind == DICT_KEYS_UNICODE); + assert(cache->index < dict->ma_keys->dk_nentries); + PyDictUnicodeEntry *ep = DK_UNICODE_ENTRIES(dict->ma_keys) + cache->index; + res = ep->me_value; + DEOPT_IF(res == NULL, LOAD_ATTR); + STAT_INC(LOAD_ATTR, hit); + Py_INCREF(res); + SET_TOP(NULL); + STACK_GROW((oparg & 1)); SET_TOP(res); Py_DECREF(owner); JUMPBY(INLINE_CACHE_ENTRIES_LOAD_ATTR); - NOTRACE_DISPATCH(); + DISPATCH(); } TARGET(LOAD_ATTR_WITH_HINT) { @@ -3596,10 +3002,12 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int assert(type_version != 0); DEOPT_IF(tp->tp_version_tag != type_version, LOAD_ATTR); assert(tp->tp_flags & Py_TPFLAGS_MANAGED_DICT); - PyDictObject *dict = *(PyDictObject **)_PyObject_ManagedDictPointer(owner); + PyDictOrValues dorv = *_PyObject_DictOrValuesPointer(owner); + DEOPT_IF(_PyDictOrValues_IsValues(dorv), LOAD_ATTR); + PyDictObject *dict = (PyDictObject *)_PyDictOrValues_GetDict(dorv); DEOPT_IF(dict == NULL, LOAD_ATTR); assert(PyDict_CheckExact((PyObject *)dict)); - PyObject *name = GETITEM(names, oparg); + PyObject *name = GETITEM(names, oparg>>1); uint16_t hint = cache->index; DEOPT_IF(hint >= (size_t)dict->ma_keys->dk_nentries, LOAD_ATTR); if (DK_IS_UNICODE(dict->ma_keys)) { @@ -3615,10 +3023,12 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int DEOPT_IF(res == NULL, LOAD_ATTR); STAT_INC(LOAD_ATTR, hit); Py_INCREF(res); + SET_TOP(NULL); + STACK_GROW((oparg & 1)); SET_TOP(res); Py_DECREF(owner); JUMPBY(INLINE_CACHE_ENTRIES_LOAD_ATTR); - NOTRACE_DISPATCH(); + DISPATCH(); } TARGET(LOAD_ATTR_SLOT) { @@ -3634,28 +3044,132 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int res = *(PyObject **)addr; DEOPT_IF(res == NULL, LOAD_ATTR); STAT_INC(LOAD_ATTR, hit); - Py_INCREF(res); - SET_TOP(res); - Py_DECREF(owner); + Py_INCREF(res); + SET_TOP(NULL); + STACK_GROW((oparg & 1)); + SET_TOP(res); + Py_DECREF(owner); + JUMPBY(INLINE_CACHE_ENTRIES_LOAD_ATTR); + DISPATCH(); + } + + TARGET(LOAD_ATTR_CLASS) { + assert(cframe.use_tracing == 0); + _PyLoadMethodCache *cache = (_PyLoadMethodCache *)next_instr; + + PyObject *cls = TOP(); + DEOPT_IF(!PyType_Check(cls), LOAD_ATTR); + uint32_t type_version = read_u32(cache->type_version); + DEOPT_IF(((PyTypeObject *)cls)->tp_version_tag != type_version, + LOAD_ATTR); + assert(type_version != 0); + + STAT_INC(LOAD_ATTR, hit); + PyObject *res = read_obj(cache->descr); + assert(res != NULL); + Py_INCREF(res); + SET_TOP(NULL); + STACK_GROW((oparg & 1)); + SET_TOP(res); + Py_DECREF(cls); + JUMPBY(INLINE_CACHE_ENTRIES_LOAD_ATTR); + DISPATCH(); + } + + TARGET(LOAD_ATTR_PROPERTY) { + assert(cframe.use_tracing == 0); + DEOPT_IF(tstate->interp->eval_frame, LOAD_ATTR); + _PyLoadMethodCache *cache = (_PyLoadMethodCache *)next_instr; + + PyObject *owner = TOP(); + PyTypeObject *cls = Py_TYPE(owner); + uint32_t type_version = read_u32(cache->type_version); + DEOPT_IF(cls->tp_version_tag != type_version, LOAD_ATTR); + assert(type_version != 0); + PyObject *fget = read_obj(cache->descr); + assert(Py_IS_TYPE(fget, &PyFunction_Type)); + PyFunctionObject *f = (PyFunctionObject *)fget; + uint32_t func_version = read_u32(cache->keys_version); + assert(func_version != 0); + DEOPT_IF(f->func_version != func_version, LOAD_ATTR); + PyCodeObject *code = (PyCodeObject *)f->func_code; + assert(code->co_argcount == 1); + DEOPT_IF(!_PyThreadState_HasStackSpace(tstate, code->co_framesize), LOAD_ATTR); + STAT_INC(LOAD_ATTR, hit); + Py_INCREF(fget); + _PyInterpreterFrame *new_frame = _PyFrame_PushUnchecked(tstate, f); + SET_TOP(NULL); + int shrink_stack = !(oparg & 1); + STACK_SHRINK(shrink_stack); + new_frame->localsplus[0] = owner; + for (int i = 1; i < code->co_nlocalsplus; i++) { + new_frame->localsplus[i] = NULL; + } + _PyFrame_SetStackPointer(frame, stack_pointer); + JUMPBY(INLINE_CACHE_ENTRIES_LOAD_ATTR); + frame->prev_instr = next_instr - 1; + new_frame->previous = frame; + frame = cframe.current_frame = new_frame; + CALL_STAT_INC(inlined_py_calls); + goto start_frame; + } + + TARGET(LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN) { + assert(cframe.use_tracing == 0); + DEOPT_IF(tstate->interp->eval_frame, LOAD_ATTR); + _PyLoadMethodCache *cache = (_PyLoadMethodCache *)next_instr; + PyObject *owner = TOP(); + PyTypeObject *cls = Py_TYPE(owner); + uint32_t type_version = read_u32(cache->type_version); + DEOPT_IF(cls->tp_version_tag != type_version, LOAD_ATTR); + assert(type_version != 0); + PyObject *getattribute = read_obj(cache->descr); + assert(Py_IS_TYPE(getattribute, &PyFunction_Type)); + PyFunctionObject *f = (PyFunctionObject *)getattribute; + uint32_t func_version = read_u32(cache->keys_version); + assert(func_version != 0); + DEOPT_IF(f->func_version != func_version, LOAD_ATTR); + PyCodeObject *code = (PyCodeObject *)f->func_code; + assert(code->co_argcount == 2); + DEOPT_IF(!_PyThreadState_HasStackSpace(tstate, code->co_framesize), CALL); + STAT_INC(LOAD_ATTR, hit); + + PyObject *name = GETITEM(names, oparg >> 1); + Py_INCREF(f); + _PyInterpreterFrame *new_frame = _PyFrame_PushUnchecked(tstate, f); + SET_TOP(NULL); + int shrink_stack = !(oparg & 1); + STACK_SHRINK(shrink_stack); + Py_INCREF(name); + new_frame->localsplus[0] = owner; + new_frame->localsplus[1] = name; + for (int i = 2; i < code->co_nlocalsplus; i++) { + new_frame->localsplus[i] = NULL; + } + _PyFrame_SetStackPointer(frame, stack_pointer); JUMPBY(INLINE_CACHE_ENTRIES_LOAD_ATTR); - NOTRACE_DISPATCH(); + frame->prev_instr = next_instr - 1; + new_frame->previous = frame; + frame = cframe.current_frame = new_frame; + CALL_STAT_INC(inlined_py_calls); + goto start_frame; } TARGET(STORE_ATTR_ADAPTIVE) { assert(cframe.use_tracing == 0); _PyAttrCache *cache = (_PyAttrCache *)next_instr; - if (cache->counter == 0) { + if (ADAPTIVE_COUNTER_IS_ZERO(cache)) { PyObject *owner = TOP(); PyObject *name = GETITEM(names, oparg); next_instr--; if (_Py_Specialize_StoreAttr(owner, next_instr, name) < 0) { goto error; } - NOTRACE_DISPATCH_SAME_OPARG(); + DISPATCH_SAME_OPARG(); } else { STAT_INC(STORE_ATTR, deferred); - cache->counter--; + DECREMENT_ADAPTIVE_COUNTER(cache); JUMP_TO_INSTRUCTION(STORE_ATTR); } } @@ -3669,12 +3183,13 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int assert(type_version != 0); DEOPT_IF(tp->tp_version_tag != type_version, STORE_ATTR); assert(tp->tp_flags & Py_TPFLAGS_MANAGED_DICT); - PyDictValues *values = *_PyObject_ValuesPointer(owner); - DEOPT_IF(values == NULL, STORE_ATTR); + PyDictOrValues dorv = *_PyObject_DictOrValuesPointer(owner); + DEOPT_IF(!_PyDictOrValues_IsValues(dorv), STORE_ATTR); STAT_INC(STORE_ATTR, hit); Py_ssize_t index = cache->index; STACK_SHRINK(1); PyObject *value = POP(); + PyDictValues *values = _PyDictOrValues_GetValues(dorv); PyObject *old_value = values->values[index]; values->values[index] = value; if (old_value == NULL) { @@ -3685,7 +3200,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int } Py_DECREF(owner); JUMPBY(INLINE_CACHE_ENTRIES_STORE_ATTR); - NOTRACE_DISPATCH(); + DISPATCH(); } TARGET(STORE_ATTR_WITH_HINT) { @@ -3697,7 +3212,9 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int assert(type_version != 0); DEOPT_IF(tp->tp_version_tag != type_version, STORE_ATTR); assert(tp->tp_flags & Py_TPFLAGS_MANAGED_DICT); - PyDictObject *dict = *(PyDictObject **)_PyObject_ManagedDictPointer(owner); + PyDictOrValues dorv = *_PyObject_DictOrValuesPointer(owner); + DEOPT_IF(_PyDictOrValues_IsValues(dorv), LOAD_ATTR); + PyDictObject *dict = (PyDictObject *)_PyDictOrValues_GetDict(dorv); DEOPT_IF(dict == NULL, STORE_ATTR); assert(PyDict_CheckExact((PyObject *)dict)); PyObject *name = GETITEM(names, oparg); @@ -3732,7 +3249,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int dict->ma_version_tag = DICT_NEXT_VERSION(); Py_DECREF(owner); JUMPBY(INLINE_CACHE_ENTRIES_STORE_ATTR); - NOTRACE_DISPATCH(); + DISPATCH(); } TARGET(STORE_ATTR_SLOT) { @@ -3752,7 +3269,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int Py_XDECREF(old_value); Py_DECREF(owner); JUMPBY(INLINE_CACHE_ENTRIES_STORE_ATTR); - NOTRACE_DISPATCH(); + DISPATCH(); } TARGET(COMPARE_OP) { @@ -3774,23 +3291,23 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int TARGET(COMPARE_OP_ADAPTIVE) { assert(cframe.use_tracing == 0); _PyCompareOpCache *cache = (_PyCompareOpCache *)next_instr; - if (cache->counter == 0) { + if (ADAPTIVE_COUNTER_IS_ZERO(cache)) { PyObject *right = TOP(); PyObject *left = SECOND(); next_instr--; _Py_Specialize_CompareOp(left, right, next_instr, oparg); - NOTRACE_DISPATCH_SAME_OPARG(); + DISPATCH_SAME_OPARG(); } else { STAT_INC(COMPARE_OP, deferred); - cache->counter--; + DECREMENT_ADAPTIVE_COUNTER(cache); JUMP_TO_INSTRUCTION(COMPARE_OP); } } TARGET(COMPARE_OP_FLOAT_JUMP) { assert(cframe.use_tracing == 0); - // Combined: COMPARE_OP (float ? float) + POP_JUMP_(direction)_IF_(true/false) + // Combined: COMPARE_OP (float ? float) + POP_JUMP_IF_(true/false) _PyCompareOpCache *cache = (_PyCompareOpCache *)next_instr; int when_to_jump_mask = cache->mask; PyObject *right = TOP(); @@ -3808,31 +3325,20 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int STACK_SHRINK(2); _Py_DECREF_SPECIALIZED(left, _PyFloat_ExactDealloc); _Py_DECREF_SPECIALIZED(right, _PyFloat_ExactDealloc); - assert(opcode == POP_JUMP_FORWARD_IF_FALSE || - opcode == POP_JUMP_BACKWARD_IF_FALSE || - opcode == POP_JUMP_FORWARD_IF_TRUE || - opcode == POP_JUMP_BACKWARD_IF_TRUE); - int jump = (9 << (sign + 1)) & when_to_jump_mask; + assert(opcode == POP_JUMP_IF_FALSE || opcode == POP_JUMP_IF_TRUE); + int jump = (1 << (sign + 1)) & when_to_jump_mask; if (!jump) { next_instr++; } - else if (jump >= 8) { - assert(opcode == POP_JUMP_BACKWARD_IF_TRUE || - opcode == POP_JUMP_BACKWARD_IF_FALSE); - JUMPBY(1 - oparg); - CHECK_EVAL_BREAKER(); - } else { - assert(opcode == POP_JUMP_FORWARD_IF_TRUE || - opcode == POP_JUMP_FORWARD_IF_FALSE); JUMPBY(1 + oparg); } - NOTRACE_DISPATCH(); + DISPATCH(); } TARGET(COMPARE_OP_INT_JUMP) { assert(cframe.use_tracing == 0); - // Combined: COMPARE_OP (int ? int) + POP_JUMP_(direction)_IF_(true/false) + // Combined: COMPARE_OP (int ? int) + POP_JUMP_IF_(true/false) _PyCompareOpCache *cache = (_PyCompareOpCache *)next_instr; int when_to_jump_mask = cache->mask; PyObject *right = TOP(); @@ -3851,33 +3357,22 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int STACK_SHRINK(2); _Py_DECREF_SPECIALIZED(left, (destructor)PyObject_Free); _Py_DECREF_SPECIALIZED(right, (destructor)PyObject_Free); - assert(opcode == POP_JUMP_FORWARD_IF_FALSE || - opcode == POP_JUMP_BACKWARD_IF_FALSE || - opcode == POP_JUMP_FORWARD_IF_TRUE || - opcode == POP_JUMP_BACKWARD_IF_TRUE); - int jump = (9 << (sign + 1)) & when_to_jump_mask; + assert(opcode == POP_JUMP_IF_FALSE || opcode == POP_JUMP_IF_TRUE); + int jump = (1 << (sign + 1)) & when_to_jump_mask; if (!jump) { next_instr++; } - else if (jump >= 8) { - assert(opcode == POP_JUMP_BACKWARD_IF_TRUE || - opcode == POP_JUMP_BACKWARD_IF_FALSE); - JUMPBY(1 - oparg); - CHECK_EVAL_BREAKER(); - } else { - assert(opcode == POP_JUMP_FORWARD_IF_TRUE || - opcode == POP_JUMP_FORWARD_IF_FALSE); JUMPBY(1 + oparg); } - NOTRACE_DISPATCH(); + DISPATCH(); } TARGET(COMPARE_OP_STR_JUMP) { assert(cframe.use_tracing == 0); - // Combined: COMPARE_OP (str == str or str != str) + POP_JUMP_(direction)_IF_(true/false) + // Combined: COMPARE_OP (str == str or str != str) + POP_JUMP_IF_(true/false) _PyCompareOpCache *cache = (_PyCompareOpCache *)next_instr; - int when_to_jump_mask = cache->mask; + int invert = cache->mask; PyObject *right = TOP(); PyObject *left = SECOND(); DEOPT_IF(!PyUnicode_CheckExact(left), COMPARE_OP); @@ -3890,31 +3385,20 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int assert(oparg == Py_EQ || oparg == Py_NE); JUMPBY(INLINE_CACHE_ENTRIES_COMPARE_OP); NEXTOPARG(); - assert(opcode == POP_JUMP_FORWARD_IF_FALSE || - opcode == POP_JUMP_BACKWARD_IF_FALSE || - opcode == POP_JUMP_FORWARD_IF_TRUE || - opcode == POP_JUMP_BACKWARD_IF_TRUE); + assert(opcode == POP_JUMP_IF_FALSE || opcode == POP_JUMP_IF_TRUE); STACK_SHRINK(2); _Py_DECREF_SPECIALIZED(left, _PyUnicode_ExactDealloc); _Py_DECREF_SPECIALIZED(right, _PyUnicode_ExactDealloc); assert(res == 0 || res == 1); - int sign = 1 - res; - int jump = (9 << (sign + 1)) & when_to_jump_mask; + assert(invert == 0 || invert == 1); + int jump = res ^ invert; if (!jump) { next_instr++; } - else if (jump >= 8) { - assert(opcode == POP_JUMP_BACKWARD_IF_TRUE || - opcode == POP_JUMP_BACKWARD_IF_FALSE); - JUMPBY(1 - oparg); - CHECK_EVAL_BREAKER(); - } else { - assert(opcode == POP_JUMP_FORWARD_IF_TRUE || - opcode == POP_JUMP_FORWARD_IF_FALSE); JUMPBY(1 + oparg); } - NOTRACE_DISPATCH(); + DISPATCH(); } TARGET(IS_OP) { @@ -4058,34 +3542,8 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int JUMP_TO_INSTRUCTION(JUMP_BACKWARD_QUICK); } - TARGET(POP_JUMP_BACKWARD_IF_FALSE) { - PREDICTED(POP_JUMP_BACKWARD_IF_FALSE); - PyObject *cond = POP(); - if (Py_IsTrue(cond)) { - _Py_DECREF_NO_DEALLOC(cond); - DISPATCH(); - } - if (Py_IsFalse(cond)) { - _Py_DECREF_NO_DEALLOC(cond); - JUMPBY(-oparg); - CHECK_EVAL_BREAKER(); - DISPATCH(); - } - int err = PyObject_IsTrue(cond); - Py_DECREF(cond); - if (err > 0) - ; - else if (err == 0) { - JUMPBY(-oparg); - CHECK_EVAL_BREAKER(); - } - else - goto error; - DISPATCH(); - } - - TARGET(POP_JUMP_FORWARD_IF_FALSE) { - PREDICTED(POP_JUMP_FORWARD_IF_FALSE); + TARGET(POP_JUMP_IF_FALSE) { + PREDICTED(POP_JUMP_IF_FALSE); PyObject *cond = POP(); if (Py_IsTrue(cond)) { _Py_DECREF_NO_DEALLOC(cond); @@ -4108,32 +3566,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int DISPATCH(); } - TARGET(POP_JUMP_BACKWARD_IF_TRUE) { - PyObject *cond = POP(); - if (Py_IsFalse(cond)) { - _Py_DECREF_NO_DEALLOC(cond); - DISPATCH(); - } - if (Py_IsTrue(cond)) { - _Py_DECREF_NO_DEALLOC(cond); - JUMPBY(-oparg); - CHECK_EVAL_BREAKER(); - DISPATCH(); - } - int err = PyObject_IsTrue(cond); - Py_DECREF(cond); - if (err > 0) { - JUMPBY(-oparg); - CHECK_EVAL_BREAKER(); - } - else if (err == 0) - ; - else - goto error; - DISPATCH(); - } - - TARGET(POP_JUMP_FORWARD_IF_TRUE) { + TARGET(POP_JUMP_IF_TRUE) { PyObject *cond = POP(); if (Py_IsFalse(cond)) { _Py_DECREF_NO_DEALLOC(cond); @@ -4156,19 +3589,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int DISPATCH(); } - TARGET(POP_JUMP_BACKWARD_IF_NOT_NONE) { - PyObject *value = POP(); - if (!Py_IsNone(value)) { - Py_DECREF(value); - JUMPBY(-oparg); - CHECK_EVAL_BREAKER(); - DISPATCH(); - } - _Py_DECREF_NO_DEALLOC(value); - DISPATCH(); - } - - TARGET(POP_JUMP_FORWARD_IF_NOT_NONE) { + TARGET(POP_JUMP_IF_NOT_NONE) { PyObject *value = POP(); if (!Py_IsNone(value)) { JUMPBY(oparg); @@ -4177,20 +3598,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int DISPATCH(); } - TARGET(POP_JUMP_BACKWARD_IF_NONE) { - PyObject *value = POP(); - if (Py_IsNone(value)) { - _Py_DECREF_NO_DEALLOC(value); - JUMPBY(-oparg); - CHECK_EVAL_BREAKER(); - } - else { - Py_DECREF(value); - } - DISPATCH(); - } - - TARGET(POP_JUMP_FORWARD_IF_NONE) { + TARGET(POP_JUMP_IF_NONE) { PyObject *value = POP(); if (Py_IsNone(value)) { _Py_DECREF_NO_DEALLOC(value); @@ -4317,8 +3725,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int PyObject *res = match ? Py_True : Py_False; Py_INCREF(res); PUSH(res); - PREDICT(POP_JUMP_FORWARD_IF_FALSE); - PREDICT(POP_JUMP_BACKWARD_IF_FALSE); + PREDICT(POP_JUMP_IF_FALSE); DISPATCH(); } @@ -4328,8 +3735,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int PyObject *res = match ? Py_True : Py_False; Py_INCREF(res); PUSH(res); - PREDICT(POP_JUMP_FORWARD_IF_FALSE); - PREDICT(POP_JUMP_BACKWARD_IF_FALSE); + PREDICT(POP_JUMP_IF_FALSE); DISPATCH(); } @@ -4353,7 +3759,6 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int SET_TOP(iter); if (iter == NULL) goto error; - PREDICT(FOR_ITER); DISPATCH(); } @@ -4390,16 +3795,10 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int PREDICTED(FOR_ITER); /* before: [iter]; after: [iter, iter()] *or* [] */ PyObject *iter = TOP(); -#ifdef Py_STATS - extern int _PySpecialization_ClassifyIterator(PyObject *); - _py_stats.opcode_stats[FOR_ITER].specialization.failure++; - _py_stats.opcode_stats[FOR_ITER].specialization.failure_kinds[_PySpecialization_ClassifyIterator(iter)]++; -#endif PyObject *next = (*Py_TYPE(iter)->tp_iternext)(iter); if (next != NULL) { PUSH(next); - PREDICT(STORE_FAST); - PREDICT(UNPACK_SEQUENCE); + JUMPBY(INLINE_CACHE_ENTRIES_FOR_ITER); DISPATCH(); } if (_PyErr_Occurred(tstate)) { @@ -4414,7 +3813,68 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int /* iterator ended normally */ STACK_SHRINK(1); Py_DECREF(iter); - JUMPBY(oparg); + JUMPBY(INLINE_CACHE_ENTRIES_FOR_ITER + oparg); + DISPATCH(); + } + + TARGET(FOR_ITER_ADAPTIVE) { + assert(cframe.use_tracing == 0); + _PyForIterCache *cache = (_PyForIterCache *)next_instr; + if (ADAPTIVE_COUNTER_IS_ZERO(cache)) { + next_instr--; + _Py_Specialize_ForIter(TOP(), next_instr); + DISPATCH_SAME_OPARG(); + } + else { + STAT_INC(FOR_ITER, deferred); + DECREMENT_ADAPTIVE_COUNTER(cache); + JUMP_TO_INSTRUCTION(FOR_ITER); + } + } + + TARGET(FOR_ITER_LIST) { + assert(cframe.use_tracing == 0); + _PyListIterObject *it = (_PyListIterObject *)TOP(); + DEOPT_IF(Py_TYPE(it) != &PyListIter_Type, FOR_ITER); + STAT_INC(FOR_ITER, hit); + PyListObject *seq = it->it_seq; + if (seq) { + if (it->it_index < PyList_GET_SIZE(seq)) { + PyObject *next = PyList_GET_ITEM(seq, it->it_index++); + Py_INCREF(next); + PUSH(next); + JUMPBY(INLINE_CACHE_ENTRIES_FOR_ITER); + DISPATCH(); + } + it->it_seq = NULL; + Py_DECREF(seq); + } + STACK_SHRINK(1); + Py_DECREF(it); + JUMPBY(INLINE_CACHE_ENTRIES_FOR_ITER + oparg); + DISPATCH(); + } + + TARGET(FOR_ITER_RANGE) { + assert(cframe.use_tracing == 0); + _PyRangeIterObject *r = (_PyRangeIterObject *)TOP(); + DEOPT_IF(Py_TYPE(r) != &PyRangeIter_Type, FOR_ITER); + STAT_INC(FOR_ITER, hit); + _Py_CODEUNIT next = next_instr[INLINE_CACHE_ENTRIES_FOR_ITER]; + assert(_PyOpcode_Deopt[_Py_OPCODE(next)] == STORE_FAST); + if (r->index >= r->len) { + STACK_SHRINK(1); + Py_DECREF(r); + JUMPBY(INLINE_CACHE_ENTRIES_FOR_ITER + oparg); + DISPATCH(); + } + long value = (long)(r->start + + (unsigned long)(r->index++) * r->step); + if (_PyLong_AssignValue(&GETLOCAL(_Py_OPARG(next)), value) < 0) { + goto error; + } + // The STORE_FAST is already done. + JUMPBY(INLINE_CACHE_ENTRIES_FOR_ITER + 1); DISPATCH(); } @@ -4539,198 +3999,100 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int DISPATCH(); } - TARGET(LOAD_METHOD) { - PREDICTED(LOAD_METHOD); - /* Designed to work in tandem with CALL. */ - PyObject *name = GETITEM(names, oparg); - PyObject *obj = TOP(); - PyObject *meth = NULL; - - int meth_found = _PyObject_GetMethod(obj, name, &meth); - - if (meth == NULL) { - /* Most likely attribute wasn't found. */ - goto error; - } - - if (meth_found) { - /* We can bypass temporary bound method object. - meth is unbound method and obj is self. - - meth | self | arg1 | ... | argN - */ - SET_TOP(meth); - PUSH(obj); // self - } - else { - /* meth is not an unbound method (but a regular attr, or - something was returned by a descriptor protocol). Set - the second element of the stack to NULL, to signal - CALL that it's not a method call. - - NULL | meth | arg1 | ... | argN - */ - SET_TOP(NULL); - Py_DECREF(obj); - PUSH(meth); - } - JUMPBY(INLINE_CACHE_ENTRIES_LOAD_METHOD); - DISPATCH(); - } - - TARGET(LOAD_METHOD_ADAPTIVE) { - assert(cframe.use_tracing == 0); - _PyLoadMethodCache *cache = (_PyLoadMethodCache *)next_instr; - if (cache->counter == 0) { - PyObject *owner = TOP(); - PyObject *name = GETITEM(names, oparg); - next_instr--; - if (_Py_Specialize_LoadMethod(owner, next_instr, name) < 0) { - goto error; - } - NOTRACE_DISPATCH_SAME_OPARG(); - } - else { - STAT_INC(LOAD_METHOD, deferred); - cache->counter--; - JUMP_TO_INSTRUCTION(LOAD_METHOD); - } - } - - TARGET(LOAD_METHOD_WITH_VALUES) { - /* LOAD_METHOD, with cached method object */ + TARGET(LOAD_ATTR_METHOD_WITH_VALUES) { + /* Cached method object */ assert(cframe.use_tracing == 0); PyObject *self = TOP(); PyTypeObject *self_cls = Py_TYPE(self); _PyLoadMethodCache *cache = (_PyLoadMethodCache *)next_instr; uint32_t type_version = read_u32(cache->type_version); assert(type_version != 0); - DEOPT_IF(self_cls->tp_version_tag != type_version, LOAD_METHOD); + DEOPT_IF(self_cls->tp_version_tag != type_version, LOAD_ATTR); assert(self_cls->tp_flags & Py_TPFLAGS_MANAGED_DICT); - PyDictObject *dict = *(PyDictObject**)_PyObject_ManagedDictPointer(self); - DEOPT_IF(dict != NULL, LOAD_METHOD); + PyDictOrValues dorv = *_PyObject_DictOrValuesPointer(self); + DEOPT_IF(!_PyDictOrValues_IsValues(dorv), LOAD_ATTR); PyHeapTypeObject *self_heap_type = (PyHeapTypeObject *)self_cls; DEOPT_IF(self_heap_type->ht_cached_keys->dk_version != - read_u32(cache->keys_version), LOAD_METHOD); - STAT_INC(LOAD_METHOD, hit); + read_u32(cache->keys_version), LOAD_ATTR); + STAT_INC(LOAD_ATTR, hit); PyObject *res = read_obj(cache->descr); assert(res != NULL); assert(_PyType_HasFeature(Py_TYPE(res), Py_TPFLAGS_METHOD_DESCRIPTOR)); Py_INCREF(res); SET_TOP(res); PUSH(self); - JUMPBY(INLINE_CACHE_ENTRIES_LOAD_METHOD); - NOTRACE_DISPATCH(); + JUMPBY(INLINE_CACHE_ENTRIES_LOAD_ATTR); + DISPATCH(); } - TARGET(LOAD_METHOD_WITH_DICT) { - /* LOAD_METHOD, with a dict - Can be either a managed dict, or a tp_dictoffset offset.*/ + TARGET(LOAD_ATTR_METHOD_WITH_DICT) { + /* Can be either a managed dict, or a tp_dictoffset offset.*/ assert(cframe.use_tracing == 0); PyObject *self = TOP(); PyTypeObject *self_cls = Py_TYPE(self); _PyLoadMethodCache *cache = (_PyLoadMethodCache *)next_instr; DEOPT_IF(self_cls->tp_version_tag != read_u32(cache->type_version), - LOAD_METHOD); + LOAD_ATTR); /* Treat index as a signed 16 bit value */ - int dictoffset = *(int16_t *)&cache->dict_offset; + Py_ssize_t dictoffset = self_cls->tp_dictoffset; + assert(dictoffset > 0); PyDictObject **dictptr = (PyDictObject**)(((char *)self)+dictoffset); - assert( - dictoffset == MANAGED_DICT_OFFSET || - (dictoffset == self_cls->tp_dictoffset && dictoffset > 0) - ); PyDictObject *dict = *dictptr; - DEOPT_IF(dict == NULL, LOAD_METHOD); + DEOPT_IF(dict == NULL, LOAD_ATTR); DEOPT_IF(dict->ma_keys->dk_version != read_u32(cache->keys_version), - LOAD_METHOD); - STAT_INC(LOAD_METHOD, hit); + LOAD_ATTR); + STAT_INC(LOAD_ATTR, hit); PyObject *res = read_obj(cache->descr); assert(res != NULL); assert(_PyType_HasFeature(Py_TYPE(res), Py_TPFLAGS_METHOD_DESCRIPTOR)); Py_INCREF(res); SET_TOP(res); PUSH(self); - JUMPBY(INLINE_CACHE_ENTRIES_LOAD_METHOD); - NOTRACE_DISPATCH(); + JUMPBY(INLINE_CACHE_ENTRIES_LOAD_ATTR); + DISPATCH(); } - TARGET(LOAD_METHOD_NO_DICT) { + TARGET(LOAD_ATTR_METHOD_NO_DICT) { assert(cframe.use_tracing == 0); PyObject *self = TOP(); PyTypeObject *self_cls = Py_TYPE(self); _PyLoadMethodCache *cache = (_PyLoadMethodCache *)next_instr; uint32_t type_version = read_u32(cache->type_version); - DEOPT_IF(self_cls->tp_version_tag != type_version, LOAD_METHOD); + DEOPT_IF(self_cls->tp_version_tag != type_version, LOAD_ATTR); assert(self_cls->tp_dictoffset == 0); - STAT_INC(LOAD_METHOD, hit); + STAT_INC(LOAD_ATTR, hit); PyObject *res = read_obj(cache->descr); assert(res != NULL); assert(_PyType_HasFeature(Py_TYPE(res), Py_TPFLAGS_METHOD_DESCRIPTOR)); Py_INCREF(res); SET_TOP(res); PUSH(self); - JUMPBY(INLINE_CACHE_ENTRIES_LOAD_METHOD); - NOTRACE_DISPATCH(); + JUMPBY(INLINE_CACHE_ENTRIES_LOAD_ATTR); + DISPATCH(); } - TARGET(LOAD_METHOD_LAZY_DICT) { + TARGET(LOAD_ATTR_METHOD_LAZY_DICT) { assert(cframe.use_tracing == 0); PyObject *self = TOP(); PyTypeObject *self_cls = Py_TYPE(self); _PyLoadMethodCache *cache = (_PyLoadMethodCache *)next_instr; uint32_t type_version = read_u32(cache->type_version); - DEOPT_IF(self_cls->tp_version_tag != type_version, LOAD_METHOD); - int dictoffset = cache->dict_offset; + DEOPT_IF(self_cls->tp_version_tag != type_version, LOAD_ATTR); + Py_ssize_t dictoffset = self_cls->tp_dictoffset; + assert(dictoffset > 0); PyObject *dict = *(PyObject **)((char *)self + dictoffset); - assert(dictoffset == self_cls->tp_dictoffset && dictoffset > 0); /* This object has a __dict__, just not yet created */ - DEOPT_IF(dict != NULL, LOAD_METHOD); - STAT_INC(LOAD_METHOD, hit); + DEOPT_IF(dict != NULL, LOAD_ATTR); + STAT_INC(LOAD_ATTR, hit); PyObject *res = read_obj(cache->descr); assert(res != NULL); assert(_PyType_HasFeature(Py_TYPE(res), Py_TPFLAGS_METHOD_DESCRIPTOR)); Py_INCREF(res); SET_TOP(res); PUSH(self); - JUMPBY(INLINE_CACHE_ENTRIES_LOAD_METHOD); - NOTRACE_DISPATCH(); - } - - TARGET(LOAD_METHOD_MODULE) { - /* LOAD_METHOD, for module methods */ - assert(cframe.use_tracing == 0); - PyObject *owner = TOP(); - PyObject *res; - LOAD_MODULE_ATTR_OR_METHOD(METHOD); - SET_TOP(NULL); - Py_DECREF(owner); - PUSH(res); - JUMPBY(INLINE_CACHE_ENTRIES_LOAD_METHOD); - NOTRACE_DISPATCH(); - } - - TARGET(LOAD_METHOD_CLASS) { - /* LOAD_METHOD, for class methods */ - assert(cframe.use_tracing == 0); - _PyLoadMethodCache *cache = (_PyLoadMethodCache *)next_instr; - - PyObject *cls = TOP(); - DEOPT_IF(!PyType_Check(cls), LOAD_METHOD); - uint32_t type_version = read_u32(cache->type_version); - DEOPT_IF(((PyTypeObject *)cls)->tp_version_tag != type_version, - LOAD_METHOD); - assert(type_version != 0); - - STAT_INC(LOAD_METHOD, hit); - PyObject *res = read_obj(cache->descr); - assert(res != NULL); - Py_INCREF(res); - SET_TOP(NULL); - Py_DECREF(cls); - PUSH(res); - JUMPBY(INLINE_CACHE_ENTRIES_LOAD_METHOD); - NOTRACE_DISPATCH(); + JUMPBY(INLINE_CACHE_ENTRIES_LOAD_ATTR); + DISPATCH(); } TARGET(CALL_BOUND_METHOD_EXACT_ARGS) { @@ -4745,7 +4107,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int PEEK(oparg + 1) = self; PEEK(oparg + 2) = meth; Py_DECREF(function); - goto call_exact_args; + JUMP_TO_INSTRUCTION(CALL_PY_EXACT_ARGS); } TARGET(KW_NAMES) { @@ -4756,8 +4118,8 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int } TARGET(CALL) { + PREDICTED(CALL); int total_args, is_meth; - call_function: is_meth = is_method(stack_pointer, oparg); PyObject *function = PEEK(oparg + 1); if (!is_meth && Py_TYPE(function) == &PyMethod_Type) { @@ -4774,9 +4136,12 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int function = PEEK(total_args + 1); int positional_args = total_args - KWNAMES_LEN(); // Check if the call can be inlined or not - if (Py_TYPE(function) == &PyFunction_Type && tstate->interp->eval_frame == NULL) { + if (Py_TYPE(function) == &PyFunction_Type && + tstate->interp->eval_frame == NULL && + ((PyFunctionObject *)function)->vectorcall == _PyFunction_Vectorcall) + { int code_flags = ((PyCodeObject*)PyFunction_GET_CODE(function))->co_flags; - PyObject *locals = code_flags & CO_OPTIMIZED ? NULL : PyFunction_GET_GLOBALS(function); + PyObject *locals = code_flags & CO_OPTIMIZED ? NULL : Py_NewRef(PyFunction_GET_GLOBALS(function)); STACK_SHRINK(total_args); _PyInterpreterFrame *new_frame = _PyEvalFramePushAndInit( tstate, (PyFunctionObject *)function, locals, @@ -4830,7 +4195,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int TARGET(CALL_ADAPTIVE) { _PyCallCache *cache = (_PyCallCache *)next_instr; - if (cache->counter == 0) { + if (ADAPTIVE_COUNTER_IS_ZERO(cache)) { next_instr--; int is_meth = is_method(stack_pointer, oparg); int nargs = oparg + is_meth; @@ -4840,17 +4205,17 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int if (err < 0) { goto error; } - NOTRACE_DISPATCH_SAME_OPARG(); + DISPATCH_SAME_OPARG(); } else { STAT_INC(CALL, deferred); - cache->counter--; - goto call_function; + DECREMENT_ADAPTIVE_COUNTER(cache); + JUMP_TO_INSTRUCTION(CALL); } } TARGET(CALL_PY_EXACT_ARGS) { - call_exact_args: + PREDICTED(CALL_PY_EXACT_ARGS); assert(call_shape.kwnames == NULL); DEOPT_IF(tstate->interp->eval_frame, CALL); _PyCallCache *cache = (_PyCallCache *)next_instr; @@ -4862,11 +4227,9 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int DEOPT_IF(func->func_version != read_u32(cache->func_version), CALL); PyCodeObject *code = (PyCodeObject *)func->func_code; DEOPT_IF(code->co_argcount != argcount, CALL); + DEOPT_IF(!_PyThreadState_HasStackSpace(tstate, code->co_framesize), CALL); STAT_INC(CALL, hit); - _PyInterpreterFrame *new_frame = _PyFrame_Push(tstate, func); - if (new_frame == NULL) { - goto error; - } + _PyInterpreterFrame *new_frame = _PyFrame_PushUnchecked(tstate, func); CALL_STAT_INC(inlined_py_calls); STACK_SHRINK(argcount); for (int i = 0; i < argcount; i++) { @@ -4898,11 +4261,9 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int DEOPT_IF(argcount > code->co_argcount, CALL); int minargs = cache->min_args; DEOPT_IF(argcount < minargs, CALL); + DEOPT_IF(!_PyThreadState_HasStackSpace(tstate, code->co_framesize), CALL); STAT_INC(CALL, hit); - _PyInterpreterFrame *new_frame = _PyFrame_Push(tstate, func); - if (new_frame == NULL) { - goto error; - } + _PyInterpreterFrame *new_frame = _PyFrame_PushUnchecked(tstate, func); CALL_STAT_INC(inlined_py_calls); STACK_SHRINK(argcount); for (int i = 0; i < argcount; i++) { @@ -4941,7 +4302,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int Py_DECREF(obj); STACK_SHRINK(2); SET_TOP(res); - NOTRACE_DISPATCH(); + DISPATCH(); } TARGET(CALL_NO_KW_STR_1) { @@ -5211,7 +4572,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int STACK_SHRINK(2); Py_DECREF(list); Py_DECREF(callable); - NOTRACE_DISPATCH(); + DISPATCH(); } TARGET(CALL_NO_KW_METHOD_DESCRIPTOR_O) { @@ -5361,19 +4722,8 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int PyObject *func, *callargs, *kwargs = NULL, *result; if (oparg & 0x01) { kwargs = POP(); - if (!PyDict_CheckExact(kwargs)) { - PyObject *d = PyDict_New(); - if (d == NULL) - goto error; - if (_PyDict_MergeEx(d, kwargs, 2) < 0) { - Py_DECREF(d); - format_kwargs_error(tstate, SECOND(), kwargs); - Py_DECREF(kwargs); - goto error; - } - Py_DECREF(kwargs); - kwargs = d; - } + // DICT_MERGE is called before this opcode if there are kwargs. + // It converts all dict subtypes in kwargs into regular dicts. assert(PyDict_CheckExact(kwargs)); } callargs = POP(); @@ -5437,7 +4787,9 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int } TARGET(RETURN_GENERATOR) { - PyGenObject *gen = (PyGenObject *)_Py_MakeCoro(frame->f_func); + assert(PyFunction_Check(frame->f_funcobj)); + PyFunctionObject *func = (PyFunctionObject *)frame->f_funcobj; + PyGenObject *gen = (PyGenObject *)_Py_MakeCoro(func); if (gen == NULL) { goto error; } @@ -5459,7 +4811,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int /* Make sure that frame is in a valid state */ frame->stacktop = 0; frame->f_locals = NULL; - Py_INCREF(frame->f_func); + Py_INCREF(frame->f_funcobj); Py_INCREF(frame->f_code); /* Restore previous cframe and return. */ tstate->cframe = cframe.previous; @@ -5576,16 +4928,16 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int TARGET(BINARY_OP_ADAPTIVE) { assert(cframe.use_tracing == 0); _PyBinaryOpCache *cache = (_PyBinaryOpCache *)next_instr; - if (cache->counter == 0) { + if (ADAPTIVE_COUNTER_IS_ZERO(cache)) { PyObject *lhs = SECOND(); PyObject *rhs = TOP(); next_instr--; _Py_Specialize_BinaryOp(lhs, rhs, next_instr, oparg, &GETLOCAL(0)); - NOTRACE_DISPATCH_SAME_OPARG(); + DISPATCH_SAME_OPARG(); } else { STAT_INC(BINARY_OP, deferred); - cache->counter--; + DECREMENT_ADAPTIVE_COUNTER(cache); JUMP_TO_INSTRUCTION(BINARY_OP); } } @@ -5602,16 +4954,26 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int assert(oparg); oparg <<= 8; oparg |= _Py_OPARG(*next_instr); + // We might be tracing. To avoid breaking tracing guarantees in + // quickened instructions, always deoptimize the next opcode: opcode = _PyOpcode_Deopt[_Py_OPCODE(*next_instr)]; PRE_DISPATCH_GOTO(); + // CPython hasn't traced the following instruction historically + // (DO_TRACING would clobber our extended oparg anyways), so just + // skip our usual cframe.use_tracing check before dispatch. Also, + // make sure the next instruction isn't a RESUME, since that needs + // to trace properly (and shouldn't have an extended arg anyways): + assert(opcode != RESUME); DISPATCH_GOTO(); } TARGET(EXTENDED_ARG_QUICK) { + assert(cframe.use_tracing == 0); assert(oparg); - oparg <<= 8; - oparg |= _Py_OPARG(*next_instr); - NOTRACE_DISPATCH_SAME_OPARG(); + int oldoparg = oparg; + NEXTOPARG(); + oparg |= oldoparg << 8; + DISPATCH_GOTO(); } TARGET(CACHE) { @@ -5624,57 +4986,56 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int case DO_TRACING: #endif { - if (tstate->tracing == 0) { + assert(cframe.use_tracing); + assert(tstate->tracing == 0); + if (INSTR_OFFSET() >= frame->f_code->_co_firsttraceable) { int instr_prev = _PyInterpreterFrame_LASTI(frame); frame->prev_instr = next_instr; TRACING_NEXTOPARG(); - switch(opcode) { - case COPY_FREE_VARS: - case MAKE_CELL: - case RETURN_GENERATOR: - /* Frame not fully initialized */ - break; - case RESUME: - if (oparg < 2) { - CHECK_EVAL_BREAKER(); - } - /* Call tracing */ - TRACE_FUNCTION_ENTRY(); - DTRACE_FUNCTION_ENTRY(); - break; - case POP_TOP: - if (_Py_OPCODE(next_instr[-1]) == RETURN_GENERATOR) { - /* Frame not fully initialized */ - break; - } - /* fall through */ - default: - /* line-by-line tracing support */ - if (PyDTrace_LINE_ENABLED()) { - maybe_dtrace_line(frame, &tstate->trace_info, instr_prev); - } - - if (cframe.use_tracing && - tstate->c_tracefunc != NULL && !tstate->tracing) { - int err; - /* see maybe_call_line_trace() - for expository comments */ - _PyFrame_SetStackPointer(frame, stack_pointer); - - err = maybe_call_line_trace(tstate->c_tracefunc, - tstate->c_traceobj, - tstate, frame, instr_prev); - if (err) { - /* trace function raised an exception */ - next_instr++; - goto error; - } - /* Reload possibly changed frame fields */ - next_instr = frame->prev_instr; + if (opcode == RESUME) { + if (oparg < 2) { + CHECK_EVAL_BREAKER(); + } + /* Call tracing */ + TRACE_FUNCTION_ENTRY(); + DTRACE_FUNCTION_ENTRY(); + } + else { + /* line-by-line tracing support */ + if (PyDTrace_LINE_ENABLED()) { + maybe_dtrace_line(frame, &tstate->trace_info, instr_prev); + } - stack_pointer = _PyFrame_GetStackPointer(frame); - frame->stacktop = -1; + if (cframe.use_tracing && + tstate->c_tracefunc != NULL && !tstate->tracing) { + int err; + /* see maybe_call_line_trace() + for expository comments */ + _PyFrame_SetStackPointer(frame, stack_pointer); + + err = maybe_call_line_trace(tstate->c_tracefunc, + tstate->c_traceobj, + tstate, frame, instr_prev); + // Reload possibly changed frame fields: + stack_pointer = _PyFrame_GetStackPointer(frame); + frame->stacktop = -1; + // next_instr is only reloaded if tracing *does not* raise. + // This is consistent with the behavior of older Python + // versions. If a trace function sets a new f_lineno and + // *then* raises, we use the *old* location when searching + // for an exception handler, displaying the traceback, and + // so on: + if (err) { + // next_instr wasn't incremented at the start of this + // instruction. Increment it before handling the error, + // so that it looks the same as a "normal" instruction: + next_instr++; + goto error; } + // Reload next_instr. Don't increment it, though, since + // we're going to re-dispatch to the "true" instruction now: + next_instr = frame->prev_instr; + } } } TRACING_NEXTOPARG(); @@ -5687,6 +5048,9 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int #else EXTRA_CASES // From opcode.h, a 'case' for each unused opcode #endif + /* Tell C compilers not to hold the opcode variable in the loop. + next_instr points the current instruction without TARGET(). */ + opcode = _Py_OPCODE(*next_instr); fprintf(stderr, "XXX lineno: %d, opcode: %d\n", _PyInterpreterFrame_GetLine(frame), opcode); _PyErr_SetString(tstate, PyExc_SystemError, "unknown opcode"); @@ -5713,22 +5077,12 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int assert(adaptive_opcode); _Py_SET_OPCODE(next_instr[-1], adaptive_opcode); STAT_INC(opcode, deopt); - *counter = ADAPTIVE_CACHE_BACKOFF; + *counter = adaptive_counter_start(); } next_instr--; DISPATCH_GOTO(); } -binary_subscr_dict_error: - { - PyObject *sub = POP(); - if (!_PyErr_Occurred(tstate)) { - _PyErr_SetKeyError(sub); - } - Py_DECREF(sub); - goto error; - } - unbound_local_error: { format_exc_check_arg(tstate, PyExc_UnboundLocalError, @@ -5751,9 +5105,11 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int #endif /* Log traceback info. */ - PyFrameObject *f = _PyFrame_GetFrameObject(frame); - if (f != NULL) { - PyTraceBack_Here(f); + if (!_PyFrame_IsIncomplete(frame)) { + PyFrameObject *f = _PyFrame_GetFrameObject(frame); + if (f != NULL) { + PyTraceBack_Here(f); + } } if (tstate->c_tracefunc != NULL) { @@ -6058,20 +5414,6 @@ positional_only_passed_as_keyword(PyThreadState *tstate, PyCodeObject *co, } -/* Exception table parsing code. - * See Objects/exception_table_notes.txt for details. - */ - -static inline unsigned char * -parse_varint(unsigned char *p, int *result) { - int val = p[0] & 63; - while (p[0] & 64) { - p++; - val = (val << 6) | (p[0] & 63); - } - *result = val; - return p+1; -} static inline unsigned char * scan_back_to_entry_start(unsigned char *p) { @@ -6184,7 +5526,13 @@ initialize_locals(PyThreadState *tstate, PyFunctionObject *func, /* Pack other positional arguments into the *args argument */ if (co->co_flags & CO_VARARGS) { PyObject *u = NULL; - u = _PyTuple_FromArraySteal(args + n, argcount - n); + if (argcount == n) { + u = Py_NewRef(&_Py_SINGLETON(tuple_empty)); + } + else { + assert(args != NULL); + u = _PyTuple_FromArraySteal(args + n, argcount - n); + } if (u == NULL) { goto fail_post_positional; } @@ -6360,27 +5708,26 @@ initialize_locals(PyThreadState *tstate, PyFunctionObject *func, return -1; } -/* Consumes references to func and all the args */ +/* Consumes references to func, locals and all the args */ static _PyInterpreterFrame * _PyEvalFramePushAndInit(PyThreadState *tstate, PyFunctionObject *func, PyObject *locals, PyObject* const* args, size_t argcount, PyObject *kwnames) { PyCodeObject * code = (PyCodeObject *)func->func_code; - size_t size = code->co_nlocalsplus + code->co_stacksize + FRAME_SPECIALS_SIZE; CALL_STAT_INC(frames_pushed); - _PyInterpreterFrame *frame = _PyThreadState_BumpFramePointer(tstate, size); + _PyInterpreterFrame *frame = _PyThreadState_PushFrame(tstate, code->co_framesize); if (frame == NULL) { goto fail; } - _PyFrame_InitializeSpecials(frame, func, locals, code->co_nlocalsplus); + _PyFrame_InitializeSpecials(frame, func, locals, code); PyObject **localsarray = &frame->localsplus[0]; for (int i = 0; i < code->co_nlocalsplus; i++) { localsarray[i] = NULL; } if (initialize_locals(tstate, func, localsarray, args, argcount, kwnames)) { assert(frame->owner != FRAME_OWNED_BY_GENERATOR); - _PyFrame_Clear(frame); + _PyEvalFrameClearAndPop(tstate, frame); return NULL; } return frame; @@ -6402,6 +5749,10 @@ _PyEvalFramePushAndInit(PyThreadState *tstate, PyFunctionObject *func, static void _PyEvalFrameClearAndPop(PyThreadState *tstate, _PyInterpreterFrame * frame) { + // Make sure that this is, indeed, the top frame. We can't check this in + // _PyThreadState_PopFrame, since f_code is already cleared at that point: + assert((PyObject **)frame + frame->f_code->co_framesize == + tstate->datastack_top); tstate->recursion_remaining--; assert(frame->frame_obj == NULL || frame->frame_obj->f_frame == frame); assert(frame->owner == FRAME_OWNED_BY_THREAD); @@ -6417,8 +5768,9 @@ _PyEval_Vector(PyThreadState *tstate, PyFunctionObject *func, PyObject *kwnames) { /* _PyEvalFramePushAndInit consumes the references - * to func and all its arguments */ + * to func, locals and all its arguments */ Py_INCREF(func); + Py_XINCREF(locals); for (size_t i = 0; i < argcount; i++) { Py_INCREF(args[i]); } @@ -6846,12 +6198,15 @@ void PyThreadState_EnterTracing(PyThreadState *tstate) { tstate->tracing++; + tstate->cframe->use_tracing = 0; } void PyThreadState_LeaveTracing(PyThreadState *tstate) { + assert(tstate->tracing > 0 && tstate->cframe->use_tracing == 0); tstate->tracing--; + _PyThreadState_UpdateTracingState(tstate); } static int @@ -6871,9 +6226,10 @@ call_trace(Py_tracefunc func, PyObject *obj, tstate->tracing_what = what; PyThreadState_EnterTracing(tstate); assert(_PyInterpreterFrame_LASTI(frame) >= 0); - initialize_trace_info(&tstate->trace_info, frame); - int addr = _PyInterpreterFrame_LASTI(frame) * sizeof(_Py_CODEUNIT); - f->f_lineno = _PyCode_CheckLineNumber(addr, &tstate->trace_info.bounds); + if (_PyCode_InitLineArray(frame->f_code)) { + return -1; + } + f->f_lineno = _PyCode_LineNumberFromArray(frame->f_code, _PyInterpreterFrame_LASTI(frame)); result = func(obj, f, what, arg); f->f_lineno = 0; PyThreadState_LeaveTracing(tstate); @@ -6910,21 +6266,17 @@ maybe_call_line_trace(Py_tracefunc func, PyObject *obj, represents a jump backwards, update the frame's line number and then call the trace function if we're tracing source lines. */ - initialize_trace_info(&tstate->trace_info, frame); - int entry_point = 0; - _Py_CODEUNIT *code = _PyCode_CODE(frame->f_code); - while (_PyOpcode_Deopt[_Py_OPCODE(code[entry_point])] != RESUME) { - entry_point++; + if (_PyCode_InitLineArray(frame->f_code)) { + return -1; } int lastline; - if (instr_prev <= entry_point) { + if (instr_prev <= frame->f_code->_co_firsttraceable) { lastline = -1; } else { - lastline = _PyCode_CheckLineNumber(instr_prev*sizeof(_Py_CODEUNIT), &tstate->trace_info.bounds); + lastline = _PyCode_LineNumberFromArray(frame->f_code, instr_prev); } - int addr = _PyInterpreterFrame_LASTI(frame) * sizeof(_Py_CODEUNIT); - int line = _PyCode_CheckLineNumber(addr, &tstate->trace_info.bounds); + int line = _PyCode_LineNumberFromArray(frame->f_code, _PyInterpreterFrame_LASTI(frame)); PyFrameObject *f = _PyFrame_GetFrameObject(frame); if (f == NULL) { return -1; @@ -6954,10 +6306,20 @@ _PyEval_SetProfile(PyThreadState *tstate, Py_tracefunc func, PyObject *arg) /* The caller must hold the GIL */ assert(PyGILState_Check()); + static int reentrant = 0; + if (reentrant) { + _PyErr_SetString(tstate, PyExc_RuntimeError, "Cannot install a profile function " + "while another profile function is being installed"); + reentrant = 0; + return -1; + } + reentrant = 1; + /* Call _PySys_Audit() in the context of the current thread state, even if tstate is not the current thread state. */ PyThreadState *current_tstate = _PyThreadState_GET(); if (_PySys_Audit(current_tstate, "sys.setprofile", NULL) < 0) { + reentrant = 0; return -1; } @@ -6975,6 +6337,7 @@ _PyEval_SetProfile(PyThreadState *tstate, Py_tracefunc func, PyObject *arg) /* Flag that tracing or profiling is turned on */ _PyThreadState_UpdateTracingState(tstate); + reentrant = 0; return 0; } @@ -6988,6 +6351,27 @@ PyEval_SetProfile(Py_tracefunc func, PyObject *arg) } } +void +PyEval_SetProfileAllThreads(Py_tracefunc func, PyObject *arg) +{ + PyThreadState *this_tstate = _PyThreadState_GET(); + PyInterpreterState* interp = this_tstate->interp; + + _PyRuntimeState *runtime = &_PyRuntime; + HEAD_LOCK(runtime); + PyThreadState* ts = PyInterpreterState_ThreadHead(interp); + HEAD_UNLOCK(runtime); + + while (ts) { + if (_PyEval_SetProfile(ts, func, arg) < 0) { + _PyErr_WriteUnraisableMsg("in PyEval_SetProfileAllThreads", NULL); + } + HEAD_LOCK(runtime); + ts = PyThreadState_Next(ts); + HEAD_UNLOCK(runtime); + } +} + int _PyEval_SetTrace(PyThreadState *tstate, Py_tracefunc func, PyObject *arg) { @@ -6995,10 +6379,21 @@ _PyEval_SetTrace(PyThreadState *tstate, Py_tracefunc func, PyObject *arg) /* The caller must hold the GIL */ assert(PyGILState_Check()); + static int reentrant = 0; + + if (reentrant) { + _PyErr_SetString(tstate, PyExc_RuntimeError, "Cannot install a trace function " + "while another trace function is being installed"); + reentrant = 0; + return -1; + } + reentrant = 1; + /* Call _PySys_Audit() in the context of the current thread state, even if tstate is not the current thread state. */ PyThreadState *current_tstate = _PyThreadState_GET(); if (_PySys_Audit(current_tstate, "sys.settrace", NULL) < 0) { + reentrant = 0; return -1; } @@ -7008,15 +6403,15 @@ _PyEval_SetTrace(PyThreadState *tstate, Py_tracefunc func, PyObject *arg) tstate->c_traceobj = NULL; /* Must make sure that profiling is not ignored if 'traceobj' is freed */ _PyThreadState_UpdateTracingState(tstate); - Py_XDECREF(traceobj); - Py_XINCREF(arg); + Py_XDECREF(traceobj); tstate->c_traceobj = arg; tstate->c_tracefunc = func; /* Flag that tracing or profiling is turned on */ _PyThreadState_UpdateTracingState(tstate); + reentrant = 0; return 0; } @@ -7030,6 +6425,26 @@ PyEval_SetTrace(Py_tracefunc func, PyObject *arg) } } +void +PyEval_SetTraceAllThreads(Py_tracefunc func, PyObject *arg) +{ + PyThreadState *this_tstate = _PyThreadState_GET(); + PyInterpreterState* interp = this_tstate->interp; + + _PyRuntimeState *runtime = &_PyRuntime; + HEAD_LOCK(runtime); + PyThreadState* ts = PyInterpreterState_ThreadHead(interp); + HEAD_UNLOCK(runtime); + + while (ts) { + if (_PyEval_SetTrace(ts, func, arg) < 0) { + _PyErr_WriteUnraisableMsg("in PyEval_SetTraceAllThreads", NULL); + } + HEAD_LOCK(runtime); + ts = PyThreadState_Next(ts); + HEAD_UNLOCK(runtime); + } +} int _PyEval_SetCoroutineOriginTrackingDepth(int depth) @@ -7815,7 +7230,7 @@ _Py_GetDXProfile(PyObject *self, PyObject *args) PyObject *l = PyList_New(257); if (l == NULL) return NULL; for (i = 0; i < 256; i++) { - PyObject *x = getarray(_py_stats.opcode_stats[i].pair_count); + PyObject *x = getarray(_py_stats_struct.opcode_stats[i].pair_count); if (x == NULL) { Py_DECREF(l); return NULL; @@ -7829,7 +7244,7 @@ _Py_GetDXProfile(PyObject *self, PyObject *args) } for (i = 0; i < 256; i++) { PyObject *x = PyLong_FromUnsignedLongLong( - _py_stats.opcode_stats[i].execution_count); + _py_stats_struct.opcode_stats[i].execution_count); if (x == NULL) { Py_DECREF(counts); Py_DECREF(l); diff --git a/Python/ceval_gil.c b/Python/ceval_gil.c new file mode 100644 index 00000000000000..a6790866766795 --- /dev/null +++ b/Python/ceval_gil.c @@ -0,0 +1,986 @@ + +#include "Python.h" +#include "pycore_atomic.h" // _Py_atomic_int +#include "pycore_ceval.h" // _PyEval_SignalReceived() +#include "pycore_pyerrors.h" // _PyErr_Fetch() +#include "pycore_pylifecycle.h" // _PyErr_Print() +#include "pycore_initconfig.h" // _PyStatus_OK() +#include "pycore_pymem.h" // _PyMem_IsPtrFreed() + +/* + Notes about the implementation: + + - The GIL is just a boolean variable (locked) whose access is protected + by a mutex (gil_mutex), and whose changes are signalled by a condition + variable (gil_cond). gil_mutex is taken for short periods of time, + and therefore mostly uncontended. + + - In the GIL-holding thread, the main loop (PyEval_EvalFrameEx) must be + able to release the GIL on demand by another thread. A volatile boolean + variable (gil_drop_request) is used for that purpose, which is checked + at every turn of the eval loop. That variable is set after a wait of + `interval` microseconds on `gil_cond` has timed out. + + [Actually, another volatile boolean variable (eval_breaker) is used + which ORs several conditions into one. Volatile booleans are + sufficient as inter-thread signalling means since Python is run + on cache-coherent architectures only.] + + - A thread wanting to take the GIL will first let pass a given amount of + time (`interval` microseconds) before setting gil_drop_request. This + encourages a defined switching period, but doesn't enforce it since + opcodes can take an arbitrary time to execute. + + The `interval` value is available for the user to read and modify + using the Python API `sys.{get,set}switchinterval()`. + + - When a thread releases the GIL and gil_drop_request is set, that thread + ensures that another GIL-awaiting thread gets scheduled. + It does so by waiting on a condition variable (switch_cond) until + the value of last_holder is changed to something else than its + own thread state pointer, indicating that another thread was able to + take the GIL. + + This is meant to prohibit the latency-adverse behaviour on multi-core + machines where one thread would speculatively release the GIL, but still + run and end up being the first to re-acquire it, making the "timeslices" + much longer than expected. + (Note: this mechanism is enabled with FORCE_SWITCHING above) +*/ + +// GH-89279: Force inlining by using a macro. +#if defined(_MSC_VER) && SIZEOF_INT == 4 +#define _Py_atomic_load_relaxed_int32(ATOMIC_VAL) (assert(sizeof((ATOMIC_VAL)->_value) == 4), *((volatile int*)&((ATOMIC_VAL)->_value))) +#else +#define _Py_atomic_load_relaxed_int32(ATOMIC_VAL) _Py_atomic_load_relaxed(ATOMIC_VAL) +#endif + +/* This can set eval_breaker to 0 even though gil_drop_request became + 1. We believe this is all right because the eval loop will release + the GIL eventually anyway. */ +static inline void +COMPUTE_EVAL_BREAKER(PyInterpreterState *interp, + struct _ceval_runtime_state *ceval, + struct _ceval_state *ceval2) +{ + _Py_atomic_store_relaxed(&ceval2->eval_breaker, + _Py_atomic_load_relaxed_int32(&ceval2->gil_drop_request) + | (_Py_atomic_load_relaxed_int32(&ceval->signals_pending) + && _Py_ThreadCanHandleSignals(interp)) + | (_Py_atomic_load_relaxed_int32(&ceval2->pending.calls_to_do) + && _Py_ThreadCanHandlePendingCalls()) + | ceval2->pending.async_exc); +} + + +static inline void +SET_GIL_DROP_REQUEST(PyInterpreterState *interp) +{ + struct _ceval_state *ceval2 = &interp->ceval; + _Py_atomic_store_relaxed(&ceval2->gil_drop_request, 1); + _Py_atomic_store_relaxed(&ceval2->eval_breaker, 1); +} + + +static inline void +RESET_GIL_DROP_REQUEST(PyInterpreterState *interp) +{ + struct _ceval_runtime_state *ceval = &interp->runtime->ceval; + struct _ceval_state *ceval2 = &interp->ceval; + _Py_atomic_store_relaxed(&ceval2->gil_drop_request, 0); + COMPUTE_EVAL_BREAKER(interp, ceval, ceval2); +} + + +static inline void +SIGNAL_PENDING_CALLS(PyInterpreterState *interp) +{ + struct _ceval_runtime_state *ceval = &interp->runtime->ceval; + struct _ceval_state *ceval2 = &interp->ceval; + _Py_atomic_store_relaxed(&ceval2->pending.calls_to_do, 1); + COMPUTE_EVAL_BREAKER(interp, ceval, ceval2); +} + + +static inline void +UNSIGNAL_PENDING_CALLS(PyInterpreterState *interp) +{ + struct _ceval_runtime_state *ceval = &interp->runtime->ceval; + struct _ceval_state *ceval2 = &interp->ceval; + _Py_atomic_store_relaxed(&ceval2->pending.calls_to_do, 0); + COMPUTE_EVAL_BREAKER(interp, ceval, ceval2); +} + + +static inline void +SIGNAL_PENDING_SIGNALS(PyInterpreterState *interp, int force) +{ + struct _ceval_runtime_state *ceval = &interp->runtime->ceval; + struct _ceval_state *ceval2 = &interp->ceval; + _Py_atomic_store_relaxed(&ceval->signals_pending, 1); + if (force) { + _Py_atomic_store_relaxed(&ceval2->eval_breaker, 1); + } + else { + /* eval_breaker is not set to 1 if thread_can_handle_signals() is false */ + COMPUTE_EVAL_BREAKER(interp, ceval, ceval2); + } +} + + +static inline void +UNSIGNAL_PENDING_SIGNALS(PyInterpreterState *interp) +{ + struct _ceval_runtime_state *ceval = &interp->runtime->ceval; + struct _ceval_state *ceval2 = &interp->ceval; + _Py_atomic_store_relaxed(&ceval->signals_pending, 0); + COMPUTE_EVAL_BREAKER(interp, ceval, ceval2); +} + + +static inline void +SIGNAL_ASYNC_EXC(PyInterpreterState *interp) +{ + struct _ceval_state *ceval2 = &interp->ceval; + ceval2->pending.async_exc = 1; + _Py_atomic_store_relaxed(&ceval2->eval_breaker, 1); +} + + +static inline void +UNSIGNAL_ASYNC_EXC(PyInterpreterState *interp) +{ + struct _ceval_runtime_state *ceval = &interp->runtime->ceval; + struct _ceval_state *ceval2 = &interp->ceval; + ceval2->pending.async_exc = 0; + COMPUTE_EVAL_BREAKER(interp, ceval, ceval2); +} + +#ifndef NDEBUG +/* Ensure that tstate is valid */ +static int +is_tstate_valid(PyThreadState *tstate) +{ + assert(!_PyMem_IsPtrFreed(tstate)); + assert(!_PyMem_IsPtrFreed(tstate->interp)); + return 1; +} +#endif + +/* + * Implementation of the Global Interpreter Lock (GIL). + */ + +#include <stdlib.h> +#include <errno.h> + +#include "pycore_atomic.h" + + +#include "condvar.h" + +#define MUTEX_INIT(mut) \ + if (PyMUTEX_INIT(&(mut))) { \ + Py_FatalError("PyMUTEX_INIT(" #mut ") failed"); }; +#define MUTEX_FINI(mut) \ + if (PyMUTEX_FINI(&(mut))) { \ + Py_FatalError("PyMUTEX_FINI(" #mut ") failed"); }; +#define MUTEX_LOCK(mut) \ + if (PyMUTEX_LOCK(&(mut))) { \ + Py_FatalError("PyMUTEX_LOCK(" #mut ") failed"); }; +#define MUTEX_UNLOCK(mut) \ + if (PyMUTEX_UNLOCK(&(mut))) { \ + Py_FatalError("PyMUTEX_UNLOCK(" #mut ") failed"); }; + +#define COND_INIT(cond) \ + if (PyCOND_INIT(&(cond))) { \ + Py_FatalError("PyCOND_INIT(" #cond ") failed"); }; +#define COND_FINI(cond) \ + if (PyCOND_FINI(&(cond))) { \ + Py_FatalError("PyCOND_FINI(" #cond ") failed"); }; +#define COND_SIGNAL(cond) \ + if (PyCOND_SIGNAL(&(cond))) { \ + Py_FatalError("PyCOND_SIGNAL(" #cond ") failed"); }; +#define COND_WAIT(cond, mut) \ + if (PyCOND_WAIT(&(cond), &(mut))) { \ + Py_FatalError("PyCOND_WAIT(" #cond ") failed"); }; +#define COND_TIMED_WAIT(cond, mut, microseconds, timeout_result) \ + { \ + int r = PyCOND_TIMEDWAIT(&(cond), &(mut), (microseconds)); \ + if (r < 0) \ + Py_FatalError("PyCOND_WAIT(" #cond ") failed"); \ + if (r) /* 1 == timeout, 2 == impl. can't say, so assume timeout */ \ + timeout_result = 1; \ + else \ + timeout_result = 0; \ + } \ + + +#define DEFAULT_INTERVAL 5000 + +static void _gil_initialize(struct _gil_runtime_state *gil) +{ + _Py_atomic_int uninitialized = {-1}; + gil->locked = uninitialized; + gil->interval = DEFAULT_INTERVAL; +} + +static int gil_created(struct _gil_runtime_state *gil) +{ + return (_Py_atomic_load_explicit(&gil->locked, _Py_memory_order_acquire) >= 0); +} + +static void create_gil(struct _gil_runtime_state *gil) +{ + MUTEX_INIT(gil->mutex); +#ifdef FORCE_SWITCHING + MUTEX_INIT(gil->switch_mutex); +#endif + COND_INIT(gil->cond); +#ifdef FORCE_SWITCHING + COND_INIT(gil->switch_cond); +#endif + _Py_atomic_store_relaxed(&gil->last_holder, 0); + _Py_ANNOTATE_RWLOCK_CREATE(&gil->locked); + _Py_atomic_store_explicit(&gil->locked, 0, _Py_memory_order_release); +} + +static void destroy_gil(struct _gil_runtime_state *gil) +{ + /* some pthread-like implementations tie the mutex to the cond + * and must have the cond destroyed first. + */ + COND_FINI(gil->cond); + MUTEX_FINI(gil->mutex); +#ifdef FORCE_SWITCHING + COND_FINI(gil->switch_cond); + MUTEX_FINI(gil->switch_mutex); +#endif + _Py_atomic_store_explicit(&gil->locked, -1, + _Py_memory_order_release); + _Py_ANNOTATE_RWLOCK_DESTROY(&gil->locked); +} + +#ifdef HAVE_FORK +static void recreate_gil(struct _gil_runtime_state *gil) +{ + _Py_ANNOTATE_RWLOCK_DESTROY(&gil->locked); + /* XXX should we destroy the old OS resources here? */ + create_gil(gil); +} +#endif + +static void +drop_gil(struct _ceval_runtime_state *ceval, struct _ceval_state *ceval2, + PyThreadState *tstate) +{ + struct _gil_runtime_state *gil = &ceval->gil; + if (!_Py_atomic_load_relaxed(&gil->locked)) { + Py_FatalError("drop_gil: GIL is not locked"); + } + + /* tstate is allowed to be NULL (early interpreter init) */ + if (tstate != NULL) { + /* Sub-interpreter support: threads might have been switched + under our feet using PyThreadState_Swap(). Fix the GIL last + holder variable so that our heuristics work. */ + _Py_atomic_store_relaxed(&gil->last_holder, (uintptr_t)tstate); + } + + MUTEX_LOCK(gil->mutex); + _Py_ANNOTATE_RWLOCK_RELEASED(&gil->locked, /*is_write=*/1); + _Py_atomic_store_relaxed(&gil->locked, 0); + COND_SIGNAL(gil->cond); + MUTEX_UNLOCK(gil->mutex); + +#ifdef FORCE_SWITCHING + if (_Py_atomic_load_relaxed(&ceval2->gil_drop_request) && tstate != NULL) { + MUTEX_LOCK(gil->switch_mutex); + /* Not switched yet => wait */ + if (((PyThreadState*)_Py_atomic_load_relaxed(&gil->last_holder)) == tstate) + { + assert(is_tstate_valid(tstate)); + RESET_GIL_DROP_REQUEST(tstate->interp); + /* NOTE: if COND_WAIT does not atomically start waiting when + releasing the mutex, another thread can run through, take + the GIL and drop it again, and reset the condition + before we even had a chance to wait for it. */ + COND_WAIT(gil->switch_cond, gil->switch_mutex); + } + MUTEX_UNLOCK(gil->switch_mutex); + } +#endif +} + + +/* Check if a Python thread must exit immediately, rather than taking the GIL + if Py_Finalize() has been called. + + When this function is called by a daemon thread after Py_Finalize() has been + called, the GIL does no longer exist. + + tstate must be non-NULL. */ +static inline int +tstate_must_exit(PyThreadState *tstate) +{ + /* bpo-39877: Access _PyRuntime directly rather than using + tstate->interp->runtime to support calls from Python daemon threads. + After Py_Finalize() has been called, tstate can be a dangling pointer: + point to PyThreadState freed memory. */ + PyThreadState *finalizing = _PyRuntimeState_GetFinalizing(&_PyRuntime); + return (finalizing != NULL && finalizing != tstate); +} + + +/* Take the GIL. + + The function saves errno at entry and restores its value at exit. + + tstate must be non-NULL. */ +static void +take_gil(PyThreadState *tstate) +{ + int err = errno; + + assert(tstate != NULL); + + if (tstate_must_exit(tstate)) { + /* bpo-39877: If Py_Finalize() has been called and tstate is not the + thread which called Py_Finalize(), exit immediately the thread. + + This code path can be reached by a daemon thread after Py_Finalize() + completes. In this case, tstate is a dangling pointer: points to + PyThreadState freed memory. */ + PyThread_exit_thread(); + } + + assert(is_tstate_valid(tstate)); + PyInterpreterState *interp = tstate->interp; + struct _ceval_runtime_state *ceval = &interp->runtime->ceval; + struct _ceval_state *ceval2 = &interp->ceval; + struct _gil_runtime_state *gil = &ceval->gil; + + /* Check that _PyEval_InitThreads() was called to create the lock */ + assert(gil_created(gil)); + + MUTEX_LOCK(gil->mutex); + + if (!_Py_atomic_load_relaxed(&gil->locked)) { + goto _ready; + } + + while (_Py_atomic_load_relaxed(&gil->locked)) { + unsigned long saved_switchnum = gil->switch_number; + + unsigned long interval = (gil->interval >= 1 ? gil->interval : 1); + int timed_out = 0; + COND_TIMED_WAIT(gil->cond, gil->mutex, interval, timed_out); + + /* If we timed out and no switch occurred in the meantime, it is time + to ask the GIL-holding thread to drop it. */ + if (timed_out && + _Py_atomic_load_relaxed(&gil->locked) && + gil->switch_number == saved_switchnum) + { + if (tstate_must_exit(tstate)) { + MUTEX_UNLOCK(gil->mutex); + PyThread_exit_thread(); + } + assert(is_tstate_valid(tstate)); + + SET_GIL_DROP_REQUEST(interp); + } + } + +_ready: +#ifdef FORCE_SWITCHING + /* This mutex must be taken before modifying gil->last_holder: + see drop_gil(). */ + MUTEX_LOCK(gil->switch_mutex); +#endif + /* We now hold the GIL */ + _Py_atomic_store_relaxed(&gil->locked, 1); + _Py_ANNOTATE_RWLOCK_ACQUIRED(&gil->locked, /*is_write=*/1); + + if (tstate != (PyThreadState*)_Py_atomic_load_relaxed(&gil->last_holder)) { + _Py_atomic_store_relaxed(&gil->last_holder, (uintptr_t)tstate); + ++gil->switch_number; + } + +#ifdef FORCE_SWITCHING + COND_SIGNAL(gil->switch_cond); + MUTEX_UNLOCK(gil->switch_mutex); +#endif + + if (tstate_must_exit(tstate)) { + /* bpo-36475: If Py_Finalize() has been called and tstate is not + the thread which called Py_Finalize(), exit immediately the + thread. + + This code path can be reached by a daemon thread which was waiting + in take_gil() while the main thread called + wait_for_thread_shutdown() from Py_Finalize(). */ + MUTEX_UNLOCK(gil->mutex); + drop_gil(ceval, ceval2, tstate); + PyThread_exit_thread(); + } + assert(is_tstate_valid(tstate)); + + if (_Py_atomic_load_relaxed(&ceval2->gil_drop_request)) { + RESET_GIL_DROP_REQUEST(interp); + } + else { + /* bpo-40010: eval_breaker should be recomputed to be set to 1 if there + is a pending signal: signal received by another thread which cannot + handle signals. + + Note: RESET_GIL_DROP_REQUEST() calls COMPUTE_EVAL_BREAKER(). */ + COMPUTE_EVAL_BREAKER(interp, ceval, ceval2); + } + + /* Don't access tstate if the thread must exit */ + if (tstate->async_exc != NULL) { + _PyEval_SignalAsyncExc(tstate->interp); + } + + MUTEX_UNLOCK(gil->mutex); + + errno = err; +} + +void _PyEval_SetSwitchInterval(unsigned long microseconds) +{ + struct _gil_runtime_state *gil = &_PyRuntime.ceval.gil; + gil->interval = microseconds; +} + +unsigned long _PyEval_GetSwitchInterval() +{ + struct _gil_runtime_state *gil = &_PyRuntime.ceval.gil; + return gil->interval; +} + + +int +_PyEval_ThreadsInitialized(_PyRuntimeState *runtime) +{ + return gil_created(&runtime->ceval.gil); +} + +int +PyEval_ThreadsInitialized(void) +{ + _PyRuntimeState *runtime = &_PyRuntime; + return _PyEval_ThreadsInitialized(runtime); +} + +PyStatus +_PyEval_InitGIL(PyThreadState *tstate) +{ + if (!_Py_IsMainInterpreter(tstate->interp)) { + /* Currently, the GIL is shared by all interpreters, + and only the main interpreter is responsible to create + and destroy it. */ + return _PyStatus_OK(); + } + + struct _gil_runtime_state *gil = &tstate->interp->runtime->ceval.gil; + assert(!gil_created(gil)); + + PyThread_init_thread(); + create_gil(gil); + + take_gil(tstate); + + assert(gil_created(gil)); + return _PyStatus_OK(); +} + +void +_PyEval_FiniGIL(PyInterpreterState *interp) +{ + if (!_Py_IsMainInterpreter(interp)) { + /* Currently, the GIL is shared by all interpreters, + and only the main interpreter is responsible to create + and destroy it. */ + return; + } + + struct _gil_runtime_state *gil = &interp->runtime->ceval.gil; + if (!gil_created(gil)) { + /* First Py_InitializeFromConfig() call: the GIL doesn't exist + yet: do nothing. */ + return; + } + + destroy_gil(gil); + assert(!gil_created(gil)); +} + +void +PyEval_InitThreads(void) +{ + /* Do nothing: kept for backward compatibility */ +} + +void +_PyEval_Fini(void) +{ +#ifdef Py_STATS + _Py_PrintSpecializationStats(1); +#endif +} +void +PyEval_AcquireLock(void) +{ + _PyRuntimeState *runtime = &_PyRuntime; + PyThreadState *tstate = _PyRuntimeState_GetThreadState(runtime); + _Py_EnsureTstateNotNULL(tstate); + + take_gil(tstate); +} + +void +PyEval_ReleaseLock(void) +{ + _PyRuntimeState *runtime = &_PyRuntime; + PyThreadState *tstate = _PyRuntimeState_GetThreadState(runtime); + /* This function must succeed when the current thread state is NULL. + We therefore avoid PyThreadState_Get() which dumps a fatal error + in debug mode. */ + struct _ceval_runtime_state *ceval = &runtime->ceval; + struct _ceval_state *ceval2 = &tstate->interp->ceval; + drop_gil(ceval, ceval2, tstate); +} + +void +_PyEval_ReleaseLock(PyThreadState *tstate) +{ + struct _ceval_runtime_state *ceval = &tstate->interp->runtime->ceval; + struct _ceval_state *ceval2 = &tstate->interp->ceval; + drop_gil(ceval, ceval2, tstate); +} + +void +PyEval_AcquireThread(PyThreadState *tstate) +{ + _Py_EnsureTstateNotNULL(tstate); + + take_gil(tstate); + + struct _gilstate_runtime_state *gilstate = &tstate->interp->runtime->gilstate; + if (_PyThreadState_Swap(gilstate, tstate) != NULL) { + Py_FatalError("non-NULL old thread state"); + } +} + +void +PyEval_ReleaseThread(PyThreadState *tstate) +{ + assert(is_tstate_valid(tstate)); + + _PyRuntimeState *runtime = tstate->interp->runtime; + PyThreadState *new_tstate = _PyThreadState_Swap(&runtime->gilstate, NULL); + if (new_tstate != tstate) { + Py_FatalError("wrong thread state"); + } + struct _ceval_runtime_state *ceval = &runtime->ceval; + struct _ceval_state *ceval2 = &tstate->interp->ceval; + drop_gil(ceval, ceval2, tstate); +} + +#ifdef HAVE_FORK +/* This function is called from PyOS_AfterFork_Child to destroy all threads + which are not running in the child process, and clear internal locks + which might be held by those threads. */ +PyStatus +_PyEval_ReInitThreads(PyThreadState *tstate) +{ + _PyRuntimeState *runtime = tstate->interp->runtime; + + struct _gil_runtime_state *gil = &runtime->ceval.gil; + if (!gil_created(gil)) { + return _PyStatus_OK(); + } + recreate_gil(gil); + + take_gil(tstate); + + struct _pending_calls *pending = &tstate->interp->ceval.pending; + if (_PyThread_at_fork_reinit(&pending->lock) < 0) { + return _PyStatus_ERR("Can't reinitialize pending calls lock"); + } + + /* Destroy all threads except the current one */ + _PyThreadState_DeleteExcept(runtime, tstate); + return _PyStatus_OK(); +} +#endif + +/* This function is used to signal that async exceptions are waiting to be + raised. */ + +void +_PyEval_SignalAsyncExc(PyInterpreterState *interp) +{ + SIGNAL_ASYNC_EXC(interp); +} + +PyThreadState * +PyEval_SaveThread(void) +{ + _PyRuntimeState *runtime = &_PyRuntime; + PyThreadState *tstate = _PyThreadState_Swap(&runtime->gilstate, NULL); + _Py_EnsureTstateNotNULL(tstate); + + struct _ceval_runtime_state *ceval = &runtime->ceval; + struct _ceval_state *ceval2 = &tstate->interp->ceval; + assert(gil_created(&ceval->gil)); + drop_gil(ceval, ceval2, tstate); + return tstate; +} + +void +PyEval_RestoreThread(PyThreadState *tstate) +{ + _Py_EnsureTstateNotNULL(tstate); + + take_gil(tstate); + + struct _gilstate_runtime_state *gilstate = &tstate->interp->runtime->gilstate; + _PyThreadState_Swap(gilstate, tstate); +} + + +/* Mechanism whereby asynchronously executing callbacks (e.g. UNIX + signal handlers or Mac I/O completion routines) can schedule calls + to a function to be called synchronously. + The synchronous function is called with one void* argument. + It should return 0 for success or -1 for failure -- failure should + be accompanied by an exception. + + If registry succeeds, the registry function returns 0; if it fails + (e.g. due to too many pending calls) it returns -1 (without setting + an exception condition). + + Note that because registry may occur from within signal handlers, + or other asynchronous events, calling malloc() is unsafe! + + Any thread can schedule pending calls, but only the main thread + will execute them. + There is no facility to schedule calls to a particular thread, but + that should be easy to change, should that ever be required. In + that case, the static variables here should go into the python + threadstate. +*/ + +void +_PyEval_SignalReceived(PyInterpreterState *interp) +{ +#ifdef MS_WINDOWS + // bpo-42296: On Windows, _PyEval_SignalReceived() is called from a signal + // handler which can run in a thread different than the Python thread, in + // which case _Py_ThreadCanHandleSignals() is wrong. Ignore + // _Py_ThreadCanHandleSignals() and always set eval_breaker to 1. + // + // The next eval_frame_handle_pending() call will call + // _Py_ThreadCanHandleSignals() to recompute eval_breaker. + int force = 1; +#else + int force = 0; +#endif + /* bpo-30703: Function called when the C signal handler of Python gets a + signal. We cannot queue a callback using _PyEval_AddPendingCall() since + that function is not async-signal-safe. */ + SIGNAL_PENDING_SIGNALS(interp, force); +} + +/* Push one item onto the queue while holding the lock. */ +static int +_push_pending_call(struct _pending_calls *pending, + int (*func)(void *), void *arg) +{ + int i = pending->last; + int j = (i + 1) % NPENDINGCALLS; + if (j == pending->first) { + return -1; /* Queue full */ + } + pending->calls[i].func = func; + pending->calls[i].arg = arg; + pending->last = j; + return 0; +} + +/* Pop one item off the queue while holding the lock. */ +static void +_pop_pending_call(struct _pending_calls *pending, + int (**func)(void *), void **arg) +{ + int i = pending->first; + if (i == pending->last) { + return; /* Queue empty */ + } + + *func = pending->calls[i].func; + *arg = pending->calls[i].arg; + pending->first = (i + 1) % NPENDINGCALLS; +} + +/* This implementation is thread-safe. It allows + scheduling to be made from any thread, and even from an executing + callback. + */ + +int +_PyEval_AddPendingCall(PyInterpreterState *interp, + int (*func)(void *), void *arg) +{ + struct _pending_calls *pending = &interp->ceval.pending; + /* Ensure that _PyEval_InitState() was called + and that _PyEval_FiniState() is not called yet. */ + assert(pending->lock != NULL); + + PyThread_acquire_lock(pending->lock, WAIT_LOCK); + int result = _push_pending_call(pending, func, arg); + PyThread_release_lock(pending->lock); + + /* signal main loop */ + SIGNAL_PENDING_CALLS(interp); + return result; +} + +int +Py_AddPendingCall(int (*func)(void *), void *arg) +{ + /* Best-effort to support subinterpreters and calls with the GIL released. + + First attempt _PyThreadState_GET() since it supports subinterpreters. + + If the GIL is released, _PyThreadState_GET() returns NULL . In this + case, use PyGILState_GetThisThreadState() which works even if the GIL + is released. + + Sadly, PyGILState_GetThisThreadState() doesn't support subinterpreters: + see bpo-10915 and bpo-15751. + + Py_AddPendingCall() doesn't require the caller to hold the GIL. */ + PyThreadState *tstate = _PyThreadState_GET(); + if (tstate == NULL) { + tstate = PyGILState_GetThisThreadState(); + } + + PyInterpreterState *interp; + if (tstate != NULL) { + interp = tstate->interp; + } + else { + /* Last resort: use the main interpreter */ + interp = _PyInterpreterState_Main(); + } + return _PyEval_AddPendingCall(interp, func, arg); +} + +static int +handle_signals(PyThreadState *tstate) +{ + assert(is_tstate_valid(tstate)); + if (!_Py_ThreadCanHandleSignals(tstate->interp)) { + return 0; + } + + UNSIGNAL_PENDING_SIGNALS(tstate->interp); + if (_PyErr_CheckSignalsTstate(tstate) < 0) { + /* On failure, re-schedule a call to handle_signals(). */ + SIGNAL_PENDING_SIGNALS(tstate->interp, 0); + return -1; + } + return 0; +} + +static int +make_pending_calls(PyInterpreterState *interp) +{ + /* only execute pending calls on main thread */ + if (!_Py_ThreadCanHandlePendingCalls()) { + return 0; + } + + /* don't perform recursive pending calls */ + static int busy = 0; + if (busy) { + return 0; + } + busy = 1; + + /* unsignal before starting to call callbacks, so that any callback + added in-between re-signals */ + UNSIGNAL_PENDING_CALLS(interp); + int res = 0; + + /* perform a bounded number of calls, in case of recursion */ + struct _pending_calls *pending = &interp->ceval.pending; + for (int i=0; i<NPENDINGCALLS; i++) { + int (*func)(void *) = NULL; + void *arg = NULL; + + /* pop one item off the queue while holding the lock */ + PyThread_acquire_lock(pending->lock, WAIT_LOCK); + _pop_pending_call(pending, &func, &arg); + PyThread_release_lock(pending->lock); + + /* having released the lock, perform the callback */ + if (func == NULL) { + break; + } + res = func(arg); + if (res) { + goto error; + } + } + + busy = 0; + return res; + +error: + busy = 0; + SIGNAL_PENDING_CALLS(interp); + return res; +} + +void +_Py_FinishPendingCalls(PyThreadState *tstate) +{ + assert(PyGILState_Check()); + assert(is_tstate_valid(tstate)); + + struct _pending_calls *pending = &tstate->interp->ceval.pending; + + if (!_Py_atomic_load_relaxed_int32(&(pending->calls_to_do))) { + return; + } + + if (make_pending_calls(tstate->interp) < 0) { + PyObject *exc, *val, *tb; + _PyErr_Fetch(tstate, &exc, &val, &tb); + PyErr_BadInternalCall(); + _PyErr_ChainExceptions(exc, val, tb); + _PyErr_Print(tstate); + } +} + +/* Py_MakePendingCalls() is a simple wrapper for the sake + of backward-compatibility. */ +int +Py_MakePendingCalls(void) +{ + assert(PyGILState_Check()); + + PyThreadState *tstate = _PyThreadState_GET(); + assert(is_tstate_valid(tstate)); + + /* Python signal handler doesn't really queue a callback: it only signals + that a signal was received, see _PyEval_SignalReceived(). */ + int res = handle_signals(tstate); + if (res != 0) { + return res; + } + + res = make_pending_calls(tstate->interp); + if (res != 0) { + return res; + } + + return 0; +} + +/* The interpreter's recursion limit */ + +void +_PyEval_InitRuntimeState(struct _ceval_runtime_state *ceval) +{ + _gil_initialize(&ceval->gil); +} + +void +_PyEval_InitState(struct _ceval_state *ceval, PyThread_type_lock pending_lock) +{ + struct _pending_calls *pending = &ceval->pending; + assert(pending->lock == NULL); + + pending->lock = pending_lock; +} + +void +_PyEval_FiniState(struct _ceval_state *ceval) +{ + struct _pending_calls *pending = &ceval->pending; + if (pending->lock != NULL) { + PyThread_free_lock(pending->lock); + pending->lock = NULL; + } +} + +/* Handle signals, pending calls, GIL drop request + and asynchronous exception */ +int +_Py_HandlePending(PyThreadState *tstate) +{ + _PyRuntimeState * const runtime = &_PyRuntime; + struct _ceval_runtime_state *ceval = &runtime->ceval; + + /* Pending signals */ + if (_Py_atomic_load_relaxed_int32(&ceval->signals_pending)) { + if (handle_signals(tstate) != 0) { + return -1; + } + } + + /* Pending calls */ + struct _ceval_state *ceval2 = &tstate->interp->ceval; + if (_Py_atomic_load_relaxed_int32(&ceval2->pending.calls_to_do)) { + if (make_pending_calls(tstate->interp) != 0) { + return -1; + } + } + + /* GIL drop request */ + if (_Py_atomic_load_relaxed_int32(&ceval2->gil_drop_request)) { + /* Give another thread a chance */ + if (_PyThreadState_Swap(&runtime->gilstate, NULL) != tstate) { + Py_FatalError("tstate mix-up"); + } + drop_gil(ceval, ceval2, tstate); + + /* Other threads may run now */ + + take_gil(tstate); + + if (_PyThreadState_Swap(&runtime->gilstate, tstate) != NULL) { + Py_FatalError("orphan tstate"); + } + } + + /* Check for asynchronous exception. */ + if (tstate->async_exc != NULL) { + PyObject *exc = tstate->async_exc; + tstate->async_exc = NULL; + UNSIGNAL_ASYNC_EXC(tstate->interp); + _PyErr_SetNone(tstate, exc); + Py_DECREF(exc); + return -1; + } + +#ifdef MS_WINDOWS + // bpo-42296: On Windows, _PyEval_SignalReceived() can be called in a + // different thread than the Python thread, in which case + // _Py_ThreadCanHandleSignals() is wrong. Recompute eval_breaker in the + // current Python thread with the correct _Py_ThreadCanHandleSignals() + // value. It prevents to interrupt the eval loop at every instruction if + // the current Python thread cannot handle signals (if + // _Py_ThreadCanHandleSignals() is false). + COMPUTE_EVAL_BREAKER(tstate->interp, ceval, ceval2); +#endif + + return 0; +} + diff --git a/Python/ceval_gil.h b/Python/ceval_gil.h deleted file mode 100644 index 9b8b43253f04d2..00000000000000 --- a/Python/ceval_gil.h +++ /dev/null @@ -1,349 +0,0 @@ -/* - * Implementation of the Global Interpreter Lock (GIL). - */ - -#include <stdlib.h> -#include <errno.h> - -#include "pycore_atomic.h" - - -/* - Notes about the implementation: - - - The GIL is just a boolean variable (locked) whose access is protected - by a mutex (gil_mutex), and whose changes are signalled by a condition - variable (gil_cond). gil_mutex is taken for short periods of time, - and therefore mostly uncontended. - - - In the GIL-holding thread, the main loop (PyEval_EvalFrameEx) must be - able to release the GIL on demand by another thread. A volatile boolean - variable (gil_drop_request) is used for that purpose, which is checked - at every turn of the eval loop. That variable is set after a wait of - `interval` microseconds on `gil_cond` has timed out. - - [Actually, another volatile boolean variable (eval_breaker) is used - which ORs several conditions into one. Volatile booleans are - sufficient as inter-thread signalling means since Python is run - on cache-coherent architectures only.] - - - A thread wanting to take the GIL will first let pass a given amount of - time (`interval` microseconds) before setting gil_drop_request. This - encourages a defined switching period, but doesn't enforce it since - opcodes can take an arbitrary time to execute. - - The `interval` value is available for the user to read and modify - using the Python API `sys.{get,set}switchinterval()`. - - - When a thread releases the GIL and gil_drop_request is set, that thread - ensures that another GIL-awaiting thread gets scheduled. - It does so by waiting on a condition variable (switch_cond) until - the value of last_holder is changed to something else than its - own thread state pointer, indicating that another thread was able to - take the GIL. - - This is meant to prohibit the latency-adverse behaviour on multi-core - machines where one thread would speculatively release the GIL, but still - run and end up being the first to re-acquire it, making the "timeslices" - much longer than expected. - (Note: this mechanism is enabled with FORCE_SWITCHING above) -*/ - -#include "condvar.h" - -#define MUTEX_INIT(mut) \ - if (PyMUTEX_INIT(&(mut))) { \ - Py_FatalError("PyMUTEX_INIT(" #mut ") failed"); }; -#define MUTEX_FINI(mut) \ - if (PyMUTEX_FINI(&(mut))) { \ - Py_FatalError("PyMUTEX_FINI(" #mut ") failed"); }; -#define MUTEX_LOCK(mut) \ - if (PyMUTEX_LOCK(&(mut))) { \ - Py_FatalError("PyMUTEX_LOCK(" #mut ") failed"); }; -#define MUTEX_UNLOCK(mut) \ - if (PyMUTEX_UNLOCK(&(mut))) { \ - Py_FatalError("PyMUTEX_UNLOCK(" #mut ") failed"); }; - -#define COND_INIT(cond) \ - if (PyCOND_INIT(&(cond))) { \ - Py_FatalError("PyCOND_INIT(" #cond ") failed"); }; -#define COND_FINI(cond) \ - if (PyCOND_FINI(&(cond))) { \ - Py_FatalError("PyCOND_FINI(" #cond ") failed"); }; -#define COND_SIGNAL(cond) \ - if (PyCOND_SIGNAL(&(cond))) { \ - Py_FatalError("PyCOND_SIGNAL(" #cond ") failed"); }; -#define COND_WAIT(cond, mut) \ - if (PyCOND_WAIT(&(cond), &(mut))) { \ - Py_FatalError("PyCOND_WAIT(" #cond ") failed"); }; -#define COND_TIMED_WAIT(cond, mut, microseconds, timeout_result) \ - { \ - int r = PyCOND_TIMEDWAIT(&(cond), &(mut), (microseconds)); \ - if (r < 0) \ - Py_FatalError("PyCOND_WAIT(" #cond ") failed"); \ - if (r) /* 1 == timeout, 2 == impl. can't say, so assume timeout */ \ - timeout_result = 1; \ - else \ - timeout_result = 0; \ - } \ - - -#define DEFAULT_INTERVAL 5000 - -static void _gil_initialize(struct _gil_runtime_state *gil) -{ - _Py_atomic_int uninitialized = {-1}; - gil->locked = uninitialized; - gil->interval = DEFAULT_INTERVAL; -} - -static int gil_created(struct _gil_runtime_state *gil) -{ - return (_Py_atomic_load_explicit(&gil->locked, _Py_memory_order_acquire) >= 0); -} - -static void create_gil(struct _gil_runtime_state *gil) -{ - MUTEX_INIT(gil->mutex); -#ifdef FORCE_SWITCHING - MUTEX_INIT(gil->switch_mutex); -#endif - COND_INIT(gil->cond); -#ifdef FORCE_SWITCHING - COND_INIT(gil->switch_cond); -#endif - _Py_atomic_store_relaxed(&gil->last_holder, 0); - _Py_ANNOTATE_RWLOCK_CREATE(&gil->locked); - _Py_atomic_store_explicit(&gil->locked, 0, _Py_memory_order_release); -} - -static void destroy_gil(struct _gil_runtime_state *gil) -{ - /* some pthread-like implementations tie the mutex to the cond - * and must have the cond destroyed first. - */ - COND_FINI(gil->cond); - MUTEX_FINI(gil->mutex); -#ifdef FORCE_SWITCHING - COND_FINI(gil->switch_cond); - MUTEX_FINI(gil->switch_mutex); -#endif - _Py_atomic_store_explicit(&gil->locked, -1, - _Py_memory_order_release); - _Py_ANNOTATE_RWLOCK_DESTROY(&gil->locked); -} - -static void recreate_gil(struct _gil_runtime_state *gil) -{ - _Py_ANNOTATE_RWLOCK_DESTROY(&gil->locked); - /* XXX should we destroy the old OS resources here? */ - create_gil(gil); -} - -static void -drop_gil(struct _ceval_runtime_state *ceval, struct _ceval_state *ceval2, - PyThreadState *tstate) -{ -#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS - struct _gil_runtime_state *gil = &ceval2->gil; -#else - struct _gil_runtime_state *gil = &ceval->gil; -#endif - if (!_Py_atomic_load_relaxed(&gil->locked)) { - Py_FatalError("drop_gil: GIL is not locked"); - } - - /* tstate is allowed to be NULL (early interpreter init) */ - if (tstate != NULL) { - /* Sub-interpreter support: threads might have been switched - under our feet using PyThreadState_Swap(). Fix the GIL last - holder variable so that our heuristics work. */ - _Py_atomic_store_relaxed(&gil->last_holder, (uintptr_t)tstate); - } - - MUTEX_LOCK(gil->mutex); - _Py_ANNOTATE_RWLOCK_RELEASED(&gil->locked, /*is_write=*/1); - _Py_atomic_store_relaxed(&gil->locked, 0); - COND_SIGNAL(gil->cond); - MUTEX_UNLOCK(gil->mutex); - -#ifdef FORCE_SWITCHING - if (_Py_atomic_load_relaxed(&ceval2->gil_drop_request) && tstate != NULL) { - MUTEX_LOCK(gil->switch_mutex); - /* Not switched yet => wait */ - if (((PyThreadState*)_Py_atomic_load_relaxed(&gil->last_holder)) == tstate) - { - assert(is_tstate_valid(tstate)); - RESET_GIL_DROP_REQUEST(tstate->interp); - /* NOTE: if COND_WAIT does not atomically start waiting when - releasing the mutex, another thread can run through, take - the GIL and drop it again, and reset the condition - before we even had a chance to wait for it. */ - COND_WAIT(gil->switch_cond, gil->switch_mutex); - } - MUTEX_UNLOCK(gil->switch_mutex); - } -#endif -} - - -/* Check if a Python thread must exit immediately, rather than taking the GIL - if Py_Finalize() has been called. - - When this function is called by a daemon thread after Py_Finalize() has been - called, the GIL does no longer exist. - - tstate must be non-NULL. */ -static inline int -tstate_must_exit(PyThreadState *tstate) -{ - /* bpo-39877: Access _PyRuntime directly rather than using - tstate->interp->runtime to support calls from Python daemon threads. - After Py_Finalize() has been called, tstate can be a dangling pointer: - point to PyThreadState freed memory. */ - PyThreadState *finalizing = _PyRuntimeState_GetFinalizing(&_PyRuntime); - return (finalizing != NULL && finalizing != tstate); -} - - -/* Take the GIL. - - The function saves errno at entry and restores its value at exit. - - tstate must be non-NULL. */ -static void -take_gil(PyThreadState *tstate) -{ - int err = errno; - - assert(tstate != NULL); - - if (tstate_must_exit(tstate)) { - /* bpo-39877: If Py_Finalize() has been called and tstate is not the - thread which called Py_Finalize(), exit immediately the thread. - - This code path can be reached by a daemon thread after Py_Finalize() - completes. In this case, tstate is a dangling pointer: points to - PyThreadState freed memory. */ - PyThread_exit_thread(); - } - - assert(is_tstate_valid(tstate)); - PyInterpreterState *interp = tstate->interp; - struct _ceval_runtime_state *ceval = &interp->runtime->ceval; - struct _ceval_state *ceval2 = &interp->ceval; -#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS - struct _gil_runtime_state *gil = &ceval2->gil; -#else - struct _gil_runtime_state *gil = &ceval->gil; -#endif - - /* Check that _PyEval_InitThreads() was called to create the lock */ - assert(gil_created(gil)); - - MUTEX_LOCK(gil->mutex); - - if (!_Py_atomic_load_relaxed(&gil->locked)) { - goto _ready; - } - - while (_Py_atomic_load_relaxed(&gil->locked)) { - unsigned long saved_switchnum = gil->switch_number; - - unsigned long interval = (gil->interval >= 1 ? gil->interval : 1); - int timed_out = 0; - COND_TIMED_WAIT(gil->cond, gil->mutex, interval, timed_out); - - /* If we timed out and no switch occurred in the meantime, it is time - to ask the GIL-holding thread to drop it. */ - if (timed_out && - _Py_atomic_load_relaxed(&gil->locked) && - gil->switch_number == saved_switchnum) - { - if (tstate_must_exit(tstate)) { - MUTEX_UNLOCK(gil->mutex); - PyThread_exit_thread(); - } - assert(is_tstate_valid(tstate)); - - SET_GIL_DROP_REQUEST(interp); - } - } - -_ready: -#ifdef FORCE_SWITCHING - /* This mutex must be taken before modifying gil->last_holder: - see drop_gil(). */ - MUTEX_LOCK(gil->switch_mutex); -#endif - /* We now hold the GIL */ - _Py_atomic_store_relaxed(&gil->locked, 1); - _Py_ANNOTATE_RWLOCK_ACQUIRED(&gil->locked, /*is_write=*/1); - - if (tstate != (PyThreadState*)_Py_atomic_load_relaxed(&gil->last_holder)) { - _Py_atomic_store_relaxed(&gil->last_holder, (uintptr_t)tstate); - ++gil->switch_number; - } - -#ifdef FORCE_SWITCHING - COND_SIGNAL(gil->switch_cond); - MUTEX_UNLOCK(gil->switch_mutex); -#endif - - if (tstate_must_exit(tstate)) { - /* bpo-36475: If Py_Finalize() has been called and tstate is not - the thread which called Py_Finalize(), exit immediately the - thread. - - This code path can be reached by a daemon thread which was waiting - in take_gil() while the main thread called - wait_for_thread_shutdown() from Py_Finalize(). */ - MUTEX_UNLOCK(gil->mutex); - drop_gil(ceval, ceval2, tstate); - PyThread_exit_thread(); - } - assert(is_tstate_valid(tstate)); - - if (_Py_atomic_load_relaxed(&ceval2->gil_drop_request)) { - RESET_GIL_DROP_REQUEST(interp); - } - else { - /* bpo-40010: eval_breaker should be recomputed to be set to 1 if there - is a pending signal: signal received by another thread which cannot - handle signals. - - Note: RESET_GIL_DROP_REQUEST() calls COMPUTE_EVAL_BREAKER(). */ - COMPUTE_EVAL_BREAKER(interp, ceval, ceval2); - } - - /* Don't access tstate if the thread must exit */ - if (tstate->async_exc != NULL) { - _PyEval_SignalAsyncExc(tstate->interp); - } - - MUTEX_UNLOCK(gil->mutex); - - errno = err; -} - -void _PyEval_SetSwitchInterval(unsigned long microseconds) -{ -#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS - PyInterpreterState *interp = PyInterpreterState_Get(); - struct _gil_runtime_state *gil = &interp->ceval.gil; -#else - struct _gil_runtime_state *gil = &_PyRuntime.ceval.gil; -#endif - gil->interval = microseconds; -} - -unsigned long _PyEval_GetSwitchInterval() -{ -#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS - PyInterpreterState *interp = PyInterpreterState_Get(); - struct _gil_runtime_state *gil = &interp->ceval.gil; -#else - struct _gil_runtime_state *gil = &_PyRuntime.ceval.gil; -#endif - return gil->interval; -} diff --git a/Python/clinic/Python-tokenize.c.h b/Python/clinic/Python-tokenize.c.h index 050b4d49448c36..6af93743f40dab 100644 --- a/Python/clinic/Python-tokenize.c.h +++ b/Python/clinic/Python-tokenize.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + static PyObject * tokenizeriter_new_impl(PyTypeObject *type, const char *source); @@ -9,8 +15,31 @@ static PyObject * tokenizeriter_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(source), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"source", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "tokenizeriter", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "tokenizeriter", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -38,4 +67,4 @@ tokenizeriter_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=dfcd64774e01bfe6 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=8c2c09f651961986 input=a9049054013a1b77]*/ diff --git a/Python/clinic/_warnings.c.h b/Python/clinic/_warnings.c.h index aa85c2a0d4d920..13ebbf45b8e168 100644 --- a/Python/clinic/_warnings.c.h +++ b/Python/clinic/_warnings.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(warnings_warn__doc__, "warn($module, /, message, category=None, stacklevel=1, source=None)\n" "--\n" @@ -19,8 +25,31 @@ static PyObject * warnings_warn(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 4 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(message), &_Py_ID(category), &_Py_ID(stacklevel), &_Py_ID(source), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"message", "category", "stacklevel", "source", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "warn", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "warn", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *message; @@ -66,4 +95,108 @@ warnings_warn(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec exit: return return_value; } -/*[clinic end generated code: output=0435c68611fa2fe9 input=a9049054013a1b77]*/ + +PyDoc_STRVAR(warnings_warn_explicit__doc__, +"warn_explicit($module, /, message, category, filename, lineno,\n" +" module=<unrepresentable>, registry=None,\n" +" module_globals=None, source=None)\n" +"--\n" +"\n" +"Issue a warning, or maybe ignore it or raise an exception."); + +#define WARNINGS_WARN_EXPLICIT_METHODDEF \ + {"warn_explicit", _PyCFunction_CAST(warnings_warn_explicit), METH_FASTCALL|METH_KEYWORDS, warnings_warn_explicit__doc__}, + +static PyObject * +warnings_warn_explicit_impl(PyObject *module, PyObject *message, + PyObject *category, PyObject *filename, + int lineno, PyObject *mod, PyObject *registry, + PyObject *module_globals, PyObject *sourceobj); + +static PyObject * +warnings_warn_explicit(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) +{ + PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 8 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(message), &_Py_ID(category), &_Py_ID(filename), &_Py_ID(lineno), &_Py_ID(module), &_Py_ID(registry), &_Py_ID(module_globals), &_Py_ID(source), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + + static const char * const _keywords[] = {"message", "category", "filename", "lineno", "module", "registry", "module_globals", "source", NULL}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "warn_explicit", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE + PyObject *argsbuf[8]; + Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 4; + PyObject *message; + PyObject *category; + PyObject *filename; + int lineno; + PyObject *mod = NULL; + PyObject *registry = Py_None; + PyObject *module_globals = Py_None; + PyObject *sourceobj = Py_None; + + args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 4, 8, 0, argsbuf); + if (!args) { + goto exit; + } + message = args[0]; + category = args[1]; + if (!PyUnicode_Check(args[2])) { + _PyArg_BadArgument("warn_explicit", "argument 'filename'", "str", args[2]); + goto exit; + } + if (PyUnicode_READY(args[2]) == -1) { + goto exit; + } + filename = args[2]; + lineno = _PyLong_AsInt(args[3]); + if (lineno == -1 && PyErr_Occurred()) { + goto exit; + } + if (!noptargs) { + goto skip_optional_pos; + } + if (args[4]) { + mod = args[4]; + if (!--noptargs) { + goto skip_optional_pos; + } + } + if (args[5]) { + registry = args[5]; + if (!--noptargs) { + goto skip_optional_pos; + } + } + if (args[6]) { + module_globals = args[6]; + if (!--noptargs) { + goto skip_optional_pos; + } + } + sourceobj = args[7]; +skip_optional_pos: + return_value = warnings_warn_explicit_impl(module, message, category, filename, lineno, mod, registry, module_globals, sourceobj); + +exit: + return return_value; +} +/*[clinic end generated code: output=2eac4fabc87a4d56 input=a9049054013a1b77]*/ diff --git a/Python/clinic/bltinmodule.c.h b/Python/clinic/bltinmodule.c.h index 48f65091164d04..abe5476b283b06 100644 --- a/Python/clinic/bltinmodule.c.h +++ b/Python/clinic/bltinmodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(builtin___import____doc__, "__import__($module, /, name, globals=None, locals=None, fromlist=(),\n" " level=0)\n" @@ -34,8 +40,31 @@ static PyObject * builtin___import__(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 5 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(name), &_Py_ID(globals), &_Py_ID(locals), &_Py_ID(fromlist), &_Py_ID(level), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"name", "globals", "locals", "fromlist", "level", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "__import__", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "__import__", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *name; @@ -253,8 +282,31 @@ static PyObject * builtin_compile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 7 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(source), &_Py_ID(filename), &_Py_ID(mode), &_Py_ID(flags), &_Py_ID(dont_inherit), &_Py_ID(optimize), &_Py_ID(_feature_version), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"source", "filename", "mode", "flags", "dont_inherit", "optimize", "_feature_version", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "compile", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "compile", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[7]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3; PyObject *source; @@ -432,8 +484,31 @@ static PyObject * builtin_exec(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(closure), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "", "", "closure", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "exec", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "exec", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *source; @@ -743,8 +818,31 @@ static PyObject * builtin_pow(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 3 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(base), &_Py_ID(exp), &_Py_ID(mod), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"base", "exp", "mod", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "pow", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "pow", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; PyObject *base; @@ -794,8 +892,31 @@ static PyObject * builtin_print(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 4 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(sep), &_Py_ID(end), &_Py_ID(file), &_Py_ID(flush), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"sep", "end", "file", "flush", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "print", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "print", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[5]; Py_ssize_t noptargs = 0 + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *__clinic_args = NULL; @@ -910,8 +1031,31 @@ static PyObject * builtin_round(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(number), &_Py_ID(ndigits), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"number", "ndigits", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "round", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "round", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *number; @@ -953,8 +1097,31 @@ static PyObject * builtin_sum(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(start), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "start", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "sum", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "sum", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *iterable; @@ -1045,4 +1212,4 @@ builtin_issubclass(PyObject *module, PyObject *const *args, Py_ssize_t nargs) exit: return return_value; } -/*[clinic end generated code: output=a2c5c53e8aead7c3 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=919725bf5d400acf input=a9049054013a1b77]*/ diff --git a/Python/clinic/context.c.h b/Python/clinic/context.c.h index 292d3f7f4ff49c..27c375717bff96 100644 --- a/Python/clinic/context.c.h +++ b/Python/clinic/context.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_contextvars_Context_get__doc__, "get($self, key, default=None, /)\n" "--\n" @@ -177,4 +183,4 @@ PyDoc_STRVAR(_contextvars_ContextVar_reset__doc__, #define _CONTEXTVARS_CONTEXTVAR_RESET_METHODDEF \ {"reset", (PyCFunction)_contextvars_ContextVar_reset, METH_O, _contextvars_ContextVar_reset__doc__}, -/*[clinic end generated code: output=2436b16a92452869 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=0c94d4b919500438 input=a9049054013a1b77]*/ diff --git a/Python/clinic/import.c.h b/Python/clinic/import.c.h index 0451d97a720dde..819fb1c75c15c3 100644 --- a/Python/clinic/import.c.h +++ b/Python/clinic/import.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(_imp_lock_held__doc__, "lock_held($module, /)\n" "--\n" @@ -193,8 +199,31 @@ static PyObject * _imp_find_frozen(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(withdata), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"", "withdata", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "find_frozen", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "find_frozen", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *name; @@ -526,8 +555,31 @@ static PyObject * _imp_source_hash(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(key), &_Py_ID(source), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"key", "source", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "source_hash", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "source_hash", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[2]; long key; Py_buffer source = {NULL, NULL}; @@ -565,4 +617,4 @@ _imp_source_hash(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb #ifndef _IMP_EXEC_DYNAMIC_METHODDEF #define _IMP_EXEC_DYNAMIC_METHODDEF #endif /* !defined(_IMP_EXEC_DYNAMIC_METHODDEF) */ -/*[clinic end generated code: output=8d0f4305b1d0714b input=a9049054013a1b77]*/ +/*[clinic end generated code: output=806352838c3f7008 input=a9049054013a1b77]*/ diff --git a/Python/clinic/marshal.c.h b/Python/clinic/marshal.c.h index 36f2afd5241b7e..a593b980544b72 100644 --- a/Python/clinic/marshal.c.h +++ b/Python/clinic/marshal.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(marshal_dump__doc__, "dump($module, value, file, version=version, /)\n" "--\n" @@ -155,4 +161,4 @@ marshal_loads(PyObject *module, PyObject *arg) return return_value; } -/*[clinic end generated code: output=b9e838edee43fe87 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=12082d61d2942473 input=a9049054013a1b77]*/ diff --git a/Python/clinic/sysmodule.c.h b/Python/clinic/sysmodule.c.h index 6ee3bb2a849aab..6864b8b0e03b2f 100644 --- a/Python/clinic/sysmodule.c.h +++ b/Python/clinic/sysmodule.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(sys_addaudithook__doc__, "addaudithook($module, /, hook)\n" "--\n" @@ -18,8 +24,31 @@ static PyObject * sys_addaudithook(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(hook), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"hook", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "addaudithook", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "addaudithook", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; PyObject *hook; @@ -263,6 +292,18 @@ sys_intern(PyObject *module, PyObject *arg) return return_value; } +PyDoc_STRVAR(sys__settraceallthreads__doc__, +"_settraceallthreads($module, arg, /)\n" +"--\n" +"\n" +"Set the global debug tracing function in all running threads belonging to the current interpreter.\n" +"\n" +"It will be called on each function call. See the debugger chapter\n" +"in the library manual."); + +#define SYS__SETTRACEALLTHREADS_METHODDEF \ + {"_settraceallthreads", (PyCFunction)sys__settraceallthreads, METH_O, sys__settraceallthreads__doc__}, + PyDoc_STRVAR(sys_gettrace__doc__, "gettrace($module, /)\n" "--\n" @@ -283,6 +324,18 @@ sys_gettrace(PyObject *module, PyObject *Py_UNUSED(ignored)) return sys_gettrace_impl(module); } +PyDoc_STRVAR(sys__setprofileallthreads__doc__, +"_setprofileallthreads($module, arg, /)\n" +"--\n" +"\n" +"Set the profiling function in all running threads belonging to the current interpreter.\n" +"\n" +"It will be called on each function call and return. See the profiler chapter\n" +"in the library manual."); + +#define SYS__SETPROFILEALLTHREADS_METHODDEF \ + {"_setprofileallthreads", (PyCFunction)sys__setprofileallthreads, METH_O, sys__setprofileallthreads__doc__}, + PyDoc_STRVAR(sys_getprofile__doc__, "getprofile($module, /)\n" "--\n" @@ -425,8 +478,31 @@ static PyObject * sys_set_coroutine_origin_tracking_depth(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(depth), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"depth", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "set_coroutine_origin_tracking_depth", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "set_coroutine_origin_tracking_depth", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[1]; int depth; @@ -669,6 +745,82 @@ sys_mdebug(PyObject *module, PyObject *arg) #endif /* defined(USE_MALLOPT) */ +PyDoc_STRVAR(sys_get_int_max_str_digits__doc__, +"get_int_max_str_digits($module, /)\n" +"--\n" +"\n" +"Set the maximum string digits limit for non-binary int<->str conversions."); + +#define SYS_GET_INT_MAX_STR_DIGITS_METHODDEF \ + {"get_int_max_str_digits", (PyCFunction)sys_get_int_max_str_digits, METH_NOARGS, sys_get_int_max_str_digits__doc__}, + +static PyObject * +sys_get_int_max_str_digits_impl(PyObject *module); + +static PyObject * +sys_get_int_max_str_digits(PyObject *module, PyObject *Py_UNUSED(ignored)) +{ + return sys_get_int_max_str_digits_impl(module); +} + +PyDoc_STRVAR(sys_set_int_max_str_digits__doc__, +"set_int_max_str_digits($module, /, maxdigits)\n" +"--\n" +"\n" +"Set the maximum string digits limit for non-binary int<->str conversions."); + +#define SYS_SET_INT_MAX_STR_DIGITS_METHODDEF \ + {"set_int_max_str_digits", _PyCFunction_CAST(sys_set_int_max_str_digits), METH_FASTCALL|METH_KEYWORDS, sys_set_int_max_str_digits__doc__}, + +static PyObject * +sys_set_int_max_str_digits_impl(PyObject *module, int maxdigits); + +static PyObject * +sys_set_int_max_str_digits(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) +{ + PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(maxdigits), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + + static const char * const _keywords[] = {"maxdigits", NULL}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "set_int_max_str_digits", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE + PyObject *argsbuf[1]; + int maxdigits; + + args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf); + if (!args) { + goto exit; + } + maxdigits = _PyLong_AsInt(args[0]); + if (maxdigits == -1 && PyErr_Occurred()) { + goto exit; + } + return_value = sys_set_int_max_str_digits_impl(module, maxdigits); + +exit: + return return_value; +} + PyDoc_STRVAR(sys_getrefcount__doc__, "getrefcount($module, object, /)\n" "--\n" @@ -965,6 +1117,94 @@ sys_is_finalizing(PyObject *module, PyObject *Py_UNUSED(ignored)) return sys_is_finalizing_impl(module); } +#if defined(Py_STATS) + +PyDoc_STRVAR(sys__stats_on__doc__, +"_stats_on($module, /)\n" +"--\n" +"\n" +"Turns on stats gathering (stats gathering is on by default)."); + +#define SYS__STATS_ON_METHODDEF \ + {"_stats_on", (PyCFunction)sys__stats_on, METH_NOARGS, sys__stats_on__doc__}, + +static PyObject * +sys__stats_on_impl(PyObject *module); + +static PyObject * +sys__stats_on(PyObject *module, PyObject *Py_UNUSED(ignored)) +{ + return sys__stats_on_impl(module); +} + +#endif /* defined(Py_STATS) */ + +#if defined(Py_STATS) + +PyDoc_STRVAR(sys__stats_off__doc__, +"_stats_off($module, /)\n" +"--\n" +"\n" +"Turns off stats gathering (stats gathering is on by default)."); + +#define SYS__STATS_OFF_METHODDEF \ + {"_stats_off", (PyCFunction)sys__stats_off, METH_NOARGS, sys__stats_off__doc__}, + +static PyObject * +sys__stats_off_impl(PyObject *module); + +static PyObject * +sys__stats_off(PyObject *module, PyObject *Py_UNUSED(ignored)) +{ + return sys__stats_off_impl(module); +} + +#endif /* defined(Py_STATS) */ + +#if defined(Py_STATS) + +PyDoc_STRVAR(sys__stats_clear__doc__, +"_stats_clear($module, /)\n" +"--\n" +"\n" +"Clears the stats."); + +#define SYS__STATS_CLEAR_METHODDEF \ + {"_stats_clear", (PyCFunction)sys__stats_clear, METH_NOARGS, sys__stats_clear__doc__}, + +static PyObject * +sys__stats_clear_impl(PyObject *module); + +static PyObject * +sys__stats_clear(PyObject *module, PyObject *Py_UNUSED(ignored)) +{ + return sys__stats_clear_impl(module); +} + +#endif /* defined(Py_STATS) */ + +#if defined(Py_STATS) + +PyDoc_STRVAR(sys__stats_dump__doc__, +"_stats_dump($module, /)\n" +"--\n" +"\n" +"Dump stats to file, and clears the stats."); + +#define SYS__STATS_DUMP_METHODDEF \ + {"_stats_dump", (PyCFunction)sys__stats_dump, METH_NOARGS, sys__stats_dump__doc__}, + +static PyObject * +sys__stats_dump_impl(PyObject *module); + +static PyObject * +sys__stats_dump(PyObject *module, PyObject *Py_UNUSED(ignored)) +{ + return sys__stats_dump_impl(module); +} + +#endif /* defined(Py_STATS) */ + #if defined(ANDROID_API_LEVEL) PyDoc_STRVAR(sys_getandroidapilevel__doc__, @@ -987,6 +1227,79 @@ sys_getandroidapilevel(PyObject *module, PyObject *Py_UNUSED(ignored)) #endif /* defined(ANDROID_API_LEVEL) */ +PyDoc_STRVAR(sys_activate_stack_trampoline__doc__, +"activate_stack_trampoline($module, backend, /)\n" +"--\n" +"\n" +"Activate the perf profiler trampoline."); + +#define SYS_ACTIVATE_STACK_TRAMPOLINE_METHODDEF \ + {"activate_stack_trampoline", (PyCFunction)sys_activate_stack_trampoline, METH_O, sys_activate_stack_trampoline__doc__}, + +static PyObject * +sys_activate_stack_trampoline_impl(PyObject *module, const char *backend); + +static PyObject * +sys_activate_stack_trampoline(PyObject *module, PyObject *arg) +{ + PyObject *return_value = NULL; + const char *backend; + + if (!PyUnicode_Check(arg)) { + _PyArg_BadArgument("activate_stack_trampoline", "argument", "str", arg); + goto exit; + } + Py_ssize_t backend_length; + backend = PyUnicode_AsUTF8AndSize(arg, &backend_length); + if (backend == NULL) { + goto exit; + } + if (strlen(backend) != (size_t)backend_length) { + PyErr_SetString(PyExc_ValueError, "embedded null character"); + goto exit; + } + return_value = sys_activate_stack_trampoline_impl(module, backend); + +exit: + return return_value; +} + +PyDoc_STRVAR(sys_deactivate_stack_trampoline__doc__, +"deactivate_stack_trampoline($module, /)\n" +"--\n" +"\n" +"Dectivate the perf profiler trampoline."); + +#define SYS_DEACTIVATE_STACK_TRAMPOLINE_METHODDEF \ + {"deactivate_stack_trampoline", (PyCFunction)sys_deactivate_stack_trampoline, METH_NOARGS, sys_deactivate_stack_trampoline__doc__}, + +static PyObject * +sys_deactivate_stack_trampoline_impl(PyObject *module); + +static PyObject * +sys_deactivate_stack_trampoline(PyObject *module, PyObject *Py_UNUSED(ignored)) +{ + return sys_deactivate_stack_trampoline_impl(module); +} + +PyDoc_STRVAR(sys_is_stack_trampoline_active__doc__, +"is_stack_trampoline_active($module, /)\n" +"--\n" +"\n" +"Returns *True* if the perf profiler trampoline is active."); + +#define SYS_IS_STACK_TRAMPOLINE_ACTIVE_METHODDEF \ + {"is_stack_trampoline_active", (PyCFunction)sys_is_stack_trampoline_active, METH_NOARGS, sys_is_stack_trampoline_active__doc__}, + +static PyObject * +sys_is_stack_trampoline_active_impl(PyObject *module); + +static PyObject * +sys_is_stack_trampoline_active(PyObject *module, PyObject *Py_UNUSED(ignored)) +{ + return sys_is_stack_trampoline_active_impl(module); +} + #ifndef SYS_GETWINDOWSVERSION_METHODDEF #define SYS_GETWINDOWSVERSION_METHODDEF #endif /* !defined(SYS_GETWINDOWSVERSION_METHODDEF) */ @@ -1011,7 +1324,23 @@ sys_getandroidapilevel(PyObject *module, PyObject *Py_UNUSED(ignored)) #define SYS_GETTOTALREFCOUNT_METHODDEF #endif /* !defined(SYS_GETTOTALREFCOUNT_METHODDEF) */ +#ifndef SYS__STATS_ON_METHODDEF + #define SYS__STATS_ON_METHODDEF +#endif /* !defined(SYS__STATS_ON_METHODDEF) */ + +#ifndef SYS__STATS_OFF_METHODDEF + #define SYS__STATS_OFF_METHODDEF +#endif /* !defined(SYS__STATS_OFF_METHODDEF) */ + +#ifndef SYS__STATS_CLEAR_METHODDEF + #define SYS__STATS_CLEAR_METHODDEF +#endif /* !defined(SYS__STATS_CLEAR_METHODDEF) */ + +#ifndef SYS__STATS_DUMP_METHODDEF + #define SYS__STATS_DUMP_METHODDEF +#endif /* !defined(SYS__STATS_DUMP_METHODDEF) */ + #ifndef SYS_GETANDROIDAPILEVEL_METHODDEF #define SYS_GETANDROIDAPILEVEL_METHODDEF #endif /* !defined(SYS_GETANDROIDAPILEVEL_METHODDEF) */ -/*[clinic end generated code: output=98efd34fd9b9b6ab input=a9049054013a1b77]*/ +/*[clinic end generated code: output=15318cdd96b62b06 input=a9049054013a1b77]*/ diff --git a/Python/clinic/traceback.c.h b/Python/clinic/traceback.c.h index 404a0c416d3469..3c344934971643 100644 --- a/Python/clinic/traceback.c.h +++ b/Python/clinic/traceback.c.h @@ -2,6 +2,12 @@ preserve [clinic start generated code]*/ +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif + + PyDoc_STRVAR(tb_new__doc__, "TracebackType(tb_next, tb_frame, tb_lasti, tb_lineno)\n" "--\n" @@ -16,8 +22,31 @@ static PyObject * tb_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 4 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(tb_next), &_Py_ID(tb_frame), &_Py_ID(tb_lasti), &_Py_ID(tb_lineno), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + static const char * const _keywords[] = {"tb_next", "tb_frame", "tb_lasti", "tb_lineno", NULL}; - static _PyArg_Parser _parser = {NULL, _keywords, "TracebackType", 0}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "TracebackType", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE PyObject *argsbuf[4]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -49,4 +78,4 @@ tb_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=403778d7af5ebef9 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=7bc9927e362fdfb7 input=a9049054013a1b77]*/ diff --git a/Python/compile.c b/Python/compile.c index 541fa4c9a12b98..777190526d2575 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -71,82 +71,94 @@ #define MAX_ALLOWED_STACK_USE (STACK_USE_GUIDELINE * 100) -/* Pseudo-instructions used in the compiler, - * but turned into NOPs or other instructions - * by the assembler. */ -#define SETUP_FINALLY -1 -#define SETUP_CLEANUP -2 -#define SETUP_WITH -3 -#define POP_BLOCK -4 -#define JUMP -5 -#define JUMP_NO_INTERRUPT -6 -#define POP_JUMP_IF_FALSE -7 -#define POP_JUMP_IF_TRUE -8 -#define POP_JUMP_IF_NONE -9 -#define POP_JUMP_IF_NOT_NONE -10 - -#define MIN_VIRTUAL_OPCODE -10 -#define MAX_ALLOWED_OPCODE 254 +#define MAX_REAL_OPCODE 254 #define IS_WITHIN_OPCODE_RANGE(opcode) \ - ((opcode) >= MIN_VIRTUAL_OPCODE && (opcode) <= MAX_ALLOWED_OPCODE) + (((opcode) >= 0 && (opcode) <= MAX_REAL_OPCODE) || \ + IS_PSEUDO_OPCODE(opcode)) -#define IS_VIRTUAL_OPCODE(opcode) ((opcode) < 0) +#define IS_JUMP_OPCODE(opcode) \ + is_bit_set_in_table(_PyOpcode_Jump, opcode) -#define IS_VIRTUAL_JUMP_OPCODE(opcode) \ - ((opcode) == JUMP || \ - (opcode) == JUMP_NO_INTERRUPT || \ - (opcode) == POP_JUMP_IF_NONE || \ - (opcode) == POP_JUMP_IF_NOT_NONE || \ - (opcode) == POP_JUMP_IF_FALSE || \ - (opcode) == POP_JUMP_IF_TRUE) +#define IS_BLOCK_PUSH_OPCODE(opcode) \ + ((opcode) == SETUP_FINALLY || \ + (opcode) == SETUP_WITH || \ + (opcode) == SETUP_CLEANUP) + +#define HAS_TARGET(opcode) \ + (IS_JUMP_OPCODE(opcode) || IS_BLOCK_PUSH_OPCODE(opcode)) + +/* opcodes that must be last in the basicblock */ +#define IS_TERMINATOR_OPCODE(opcode) \ + (IS_JUMP_OPCODE(opcode) || IS_SCOPE_EXIT_OPCODE(opcode)) /* opcodes which are not emitted in codegen stage, only by the assembler */ #define IS_ASSEMBLER_OPCODE(opcode) \ ((opcode) == JUMP_FORWARD || \ (opcode) == JUMP_BACKWARD || \ - (opcode) == JUMP_BACKWARD_NO_INTERRUPT || \ - (opcode) == POP_JUMP_FORWARD_IF_NONE || \ - (opcode) == POP_JUMP_BACKWARD_IF_NONE || \ - (opcode) == POP_JUMP_FORWARD_IF_NOT_NONE || \ - (opcode) == POP_JUMP_BACKWARD_IF_NOT_NONE || \ - (opcode) == POP_JUMP_FORWARD_IF_TRUE || \ - (opcode) == POP_JUMP_BACKWARD_IF_TRUE || \ - (opcode) == POP_JUMP_FORWARD_IF_FALSE || \ - (opcode) == POP_JUMP_BACKWARD_IF_FALSE) - + (opcode) == JUMP_BACKWARD_NO_INTERRUPT) #define IS_BACKWARDS_JUMP_OPCODE(opcode) \ ((opcode) == JUMP_BACKWARD || \ - (opcode) == JUMP_BACKWARD_NO_INTERRUPT || \ - (opcode) == POP_JUMP_BACKWARD_IF_NONE || \ - (opcode) == POP_JUMP_BACKWARD_IF_NOT_NONE || \ - (opcode) == POP_JUMP_BACKWARD_IF_TRUE || \ - (opcode) == POP_JUMP_BACKWARD_IF_FALSE) + (opcode) == JUMP_BACKWARD_NO_INTERRUPT) + +#define IS_UNCONDITIONAL_JUMP_OPCODE(opcode) \ + ((opcode) == JUMP || \ + (opcode) == JUMP_NO_INTERRUPT || \ + (opcode) == JUMP_FORWARD || \ + (opcode) == JUMP_BACKWARD || \ + (opcode) == JUMP_BACKWARD_NO_INTERRUPT) +#define IS_SCOPE_EXIT_OPCODE(opcode) \ + ((opcode) == RETURN_VALUE || \ + (opcode) == RAISE_VARARGS || \ + (opcode) == RERAISE) #define IS_TOP_LEVEL_AWAIT(c) ( \ (c->c_flags->cf_flags & PyCF_ALLOW_TOP_LEVEL_AWAIT) \ && (c->u->u_ste->ste_type == ModuleBlock)) +struct location { + int lineno; + int end_lineno; + int col_offset; + int end_col_offset; +}; + +#define LOCATION(LNO, END_LNO, COL, END_COL) \ + ((const struct location){(LNO), (END_LNO), (COL), (END_COL)}) + +static struct location NO_LOCATION = {-1, -1, -1, -1}; + +typedef struct jump_target_label_ { + int id; +} jump_target_label; + +static struct jump_target_label_ NO_LABEL = {-1}; + +#define SAME_LABEL(L1, L2) ((L1).id == (L2).id) +#define IS_LABEL(L) (!SAME_LABEL((L), (NO_LABEL))) + +#define NEW_JUMP_TARGET_LABEL(C, NAME) \ + jump_target_label NAME = cfg_new_label(CFG_BUILDER(C)); \ + if (!IS_LABEL(NAME)) { \ + return 0; \ + } + +#define USE_LABEL(C, LBL) \ + if (cfg_builder_use_label(CFG_BUILDER(C), LBL) < 0) { \ + return 0; \ + } + struct instr { int i_opcode; int i_oparg; - /* target block (if jump instruction) */ - struct basicblock_ *i_target; - /* target block when exception is raised, should not be set by front-end. */ - struct basicblock_ *i_except; - int i_lineno; - int i_end_lineno; - int i_col_offset; - int i_end_col_offset; + struct location i_loc; + /* The following fields should not be set by the front-end: */ + struct basicblock_ *i_target; /* target block (if jump instruction) */ + struct basicblock_ *i_except; /* target block when exception is raised */ }; -typedef struct excepthandler { - struct instr *setup; - int offset; -} ExceptHandler; - typedef struct exceptstack { struct basicblock_ *handlers[CO_MAXBLOCKS+1]; int depth; @@ -158,11 +170,11 @@ typedef struct exceptstack { static inline int is_bit_set_in_table(const uint32_t *table, int bitindex) { /* Is the relevant bit set in the relevant word? */ - /* 256 bits fit into 8 32-bits words. + /* 512 bits fit into 9 32-bits words. * Word is indexed by (bitindex>>ln(size of int in bits)). * Bit within word is the low bits of bitindex. */ - if (bitindex >= 0 && bitindex < 256) { + if (bitindex >= 0 && bitindex < 512) { uint32_t word = table[bitindex >> LOG_BITS_PER_INT]; return (word >> (bitindex & MASK_LOW_LOG_BITS)) & 1; } @@ -178,24 +190,22 @@ is_relative_jump(struct instr *i) } static inline int -is_block_push(struct instr *instr) +is_block_push(struct instr *i) { - int opcode = instr->i_opcode; - return opcode == SETUP_FINALLY || opcode == SETUP_WITH || opcode == SETUP_CLEANUP; + return IS_BLOCK_PUSH_OPCODE(i->i_opcode); } static inline int is_jump(struct instr *i) { - return IS_VIRTUAL_JUMP_OPCODE(i->i_opcode) || - is_bit_set_in_table(_PyOpcode_Jump, i->i_opcode); + return IS_JUMP_OPCODE(i->i_opcode); } static int instr_size(struct instr *instruction) { int opcode = instruction->i_opcode; - assert(!IS_VIRTUAL_OPCODE(opcode)); + assert(!IS_PSEUDO_OPCODE(opcode)); int oparg = HAS_ARG(opcode) ? instruction->i_oparg : 0; int extended_args = (0xFFFFFF < oparg) + (0xFFFF < oparg) + (0xFF < oparg); int caches = _PyOpcode_Caches[opcode]; @@ -206,18 +216,18 @@ static void write_instr(_Py_CODEUNIT *codestr, struct instr *instruction, int ilen) { int opcode = instruction->i_opcode; - assert(!IS_VIRTUAL_OPCODE(opcode)); + assert(!IS_PSEUDO_OPCODE(opcode)); int oparg = HAS_ARG(opcode) ? instruction->i_oparg : 0; int caches = _PyOpcode_Caches[opcode]; switch (ilen - caches) { case 4: - *codestr++ = _Py_MAKECODEUNIT(EXTENDED_ARG_QUICK, (oparg >> 24) & 0xFF); + *codestr++ = _Py_MAKECODEUNIT(EXTENDED_ARG, (oparg >> 24) & 0xFF); /* fall through */ case 3: - *codestr++ = _Py_MAKECODEUNIT(EXTENDED_ARG_QUICK, (oparg >> 16) & 0xFF); + *codestr++ = _Py_MAKECODEUNIT(EXTENDED_ARG, (oparg >> 16) & 0xFF); /* fall through */ case 2: - *codestr++ = _Py_MAKECODEUNIT(EXTENDED_ARG_QUICK, (oparg >> 8) & 0xFF); + *codestr++ = _Py_MAKECODEUNIT(EXTENDED_ARG, (oparg >> 8) & 0xFF); /* fall through */ case 1: *codestr++ = _Py_MAKECODEUNIT(opcode, oparg & 0xFF); @@ -235,6 +245,8 @@ typedef struct basicblock_ { reverse order that the block are allocated. b_list points to the next block, not to be confused with b_next, which is next by control flow. */ struct basicblock_ *b_list; + /* The label of this block if it is a jump target, -1 otherwise */ + int b_label; /* Exception stack at start of block, used by assembler to create the exception handling table */ ExceptStack *b_exceptstack; /* pointer to an array of instructions, initially NULL */ @@ -248,22 +260,56 @@ typedef struct basicblock_ { int b_ialloc; /* Number of predecssors that a block has. */ int b_predecessors; + /* Number of predecssors that a block has as an exception handler. */ + int b_except_predecessors; /* depth of stack upon entry of block, computed by stackdepth() */ int b_startdepth; /* instruction offset for block, computed by assemble_jump_offsets() */ int b_offset; - /* Basic block has no fall through (it ends with a return, raise or jump) */ - unsigned b_nofallthrough : 1; /* Basic block is an exception handler that preserves lasti */ unsigned b_preserve_lasti : 1; /* Used by compiler passes to mark whether they have visited a basic block. */ unsigned b_visited : 1; - /* Basic block exits scope (it ends with a return or raise) */ - unsigned b_exit : 1; - /* b_return is true if a RETURN_VALUE opcode is inserted. */ - unsigned b_return : 1; + /* b_cold is true if this block is not perf critical (like an exception handler) */ + unsigned b_cold : 1; + /* b_warm is used by the cold-detection algorithm to mark blocks which are definitely not cold */ + unsigned b_warm : 1; } basicblock; + +static struct instr * +basicblock_last_instr(const basicblock *b) { + assert(b->b_iused >= 0); + if (b->b_iused > 0) { + assert(b->b_instr != NULL); + return &b->b_instr[b->b_iused - 1]; + } + return NULL; +} + +static inline int +basicblock_returns(const basicblock *b) { + struct instr *last = basicblock_last_instr(b); + return last && last->i_opcode == RETURN_VALUE; +} + +static inline int +basicblock_exits_scope(const basicblock *b) { + struct instr *last = basicblock_last_instr(b); + return last && IS_SCOPE_EXIT_OPCODE(last->i_opcode); +} + +static inline int +basicblock_nofallthrough(const basicblock *b) { + struct instr *last = basicblock_last_instr(b); + return (last && + (IS_SCOPE_EXIT_OPCODE(last->i_opcode) || + IS_UNCONDITIONAL_JUMP_OPCODE(last->i_opcode))); +} + +#define BB_NO_FALLTHROUGH(B) (basicblock_nofallthrough(B)) +#define BB_HAS_FALLTHROUGH(B) (!basicblock_nofallthrough(B)) + /* fblockinfo tracks the current frame block. A frame block is used to handle loops, try/except, and try/finally. @@ -277,9 +323,9 @@ enum fblocktype { WHILE_LOOP, FOR_LOOP, TRY_EXCEPT, FINALLY_TRY, FINALLY_END, struct fblockinfo { enum fblocktype fb_type; - basicblock *fb_block; + jump_target_label fb_block; /* (optional) type-specific exit or cleanup block */ - basicblock *fb_exit; + jump_target_label fb_exit; /* (optional) additional information required for unwinding */ void *fb_datum; }; @@ -293,6 +339,21 @@ enum { COMPILER_SCOPE_COMPREHENSION, }; +typedef struct cfg_builder_ { + /* The entryblock, at which control flow begins. All blocks of the + CFG are reachable through the b_next links */ + basicblock *g_entryblock; + /* Pointer to the most recently allocated block. By following + b_list links, you can reach all allocated blocks. */ + basicblock *g_block_list; + /* pointer to the block currently being constructed */ + basicblock *g_curblock; + /* label for the next instruction to be placed */ + jump_target_label g_current_label; + /* next free label id */ + int g_next_free_label; +} cfg_builder; + /* The following items change on entry and exit of code blocks. They must be saved and restored when returning to a block. */ @@ -318,22 +379,14 @@ struct compiler_unit { Py_ssize_t u_argcount; /* number of arguments for block */ Py_ssize_t u_posonlyargcount; /* number of positional only arguments for block */ Py_ssize_t u_kwonlyargcount; /* number of keyword only arguments for block */ - /* Pointer to the most recently allocated block. By following b_list - members, you can reach all early allocated blocks. */ - basicblock *u_blocks; - basicblock *u_curblock; /* pointer to current block */ + + cfg_builder u_cfg_builder; /* The control flow graph */ int u_nfblocks; struct fblockinfo u_fblock[CO_MAXBLOCKS]; int u_firstlineno; /* the first lineno of the block */ - int u_lineno; /* the lineno for the current stmt */ - int u_col_offset; /* the offset of the current stmt */ - int u_end_lineno; /* the end line of the current stmt */ - int u_end_col_offset; /* the end offset of the current stmt */ - - /* true if we need to create an implicit basicblock before the next instr */ - int u_need_new_implicit_block; + struct location u_loc; /* line/column info of the current stmt */ }; /* This struct captures the global state of a compilation. @@ -364,6 +417,9 @@ struct compiler { PyArena *c_arena; /* pointer to memory allocation arena */ }; +#define CFG_BUILDER(c) (&((c)->u->u_cfg_builder)) +#define COMPILER_LOC(c) ((c)->u->u_loc) + typedef struct { // A list of strings corresponding to name captures. It is used to track: // - Repeated name assignments in the same pattern. @@ -380,7 +436,7 @@ typedef struct { // fail_pop[2]: POP_TOP // fail_pop[1]: POP_TOP // fail_pop[0]: NOP - basicblock **fail_pop; + jump_target_label *fail_pop; // The current length of fail_pop. Py_ssize_t fail_pop_size; // The number of items on top of the stack that need to *stay* on top of the @@ -389,14 +445,13 @@ typedef struct { Py_ssize_t on_top; } pattern_context; -static int compiler_enter_scope(struct compiler *, identifier, int, void *, int); +static int basicblock_next_instr(basicblock *); + +static basicblock *cfg_builder_new_block(cfg_builder *g); +static int cfg_builder_maybe_start_new_block(cfg_builder *g); +static int cfg_builder_addop_i(cfg_builder *g, int opcode, Py_ssize_t oparg, struct location loc); + static void compiler_free(struct compiler *); -static basicblock *compiler_new_block(struct compiler *); -static int compiler_next_instr(basicblock *); -static int compiler_addop(struct compiler *, int); -static int compiler_addop_i(struct compiler *, int, Py_ssize_t); -static int compiler_addop_j(struct compiler *, int, basicblock *); -static int compiler_addop_j_noline(struct compiler *, int, basicblock *); static int compiler_error(struct compiler *, const char *, ...); static int compiler_warn(struct compiler *, const char *, ...); static int compiler_nameop(struct compiler *, identifier, expr_context_ty); @@ -416,7 +471,6 @@ static int are_all_items_const(asdl_expr_seq *, Py_ssize_t, Py_ssize_t); static int compiler_with(struct compiler *, stmt_ty, int); static int compiler_async_with(struct compiler *, stmt_ty, int); static int compiler_async_for(struct compiler *, stmt_ty); -static int validate_keywords(struct compiler *c, asdl_keyword_seq *keywords); static int compiler_call_simple_kw_helper(struct compiler *c, asdl_keyword_seq *keywords, Py_ssize_t nkwelts); @@ -444,7 +498,7 @@ static int compiler_match(struct compiler *, stmt_ty); static int compiler_pattern_subpattern(struct compiler *, pattern_ty, pattern_context *); -static void clean_basic_block(basicblock *bb); +static void remove_redundant_nops(basicblock *bb); static PyCodeObject *assemble(struct compiler *, int addNone); @@ -688,10 +742,9 @@ dictbytype(PyObject *src, int scope_type, int flag, Py_ssize_t offset) } static void -compiler_unit_check(struct compiler_unit *u) +cfg_builder_check(cfg_builder *g) { - basicblock *block; - for (block = u->u_blocks; block != NULL; block = block->b_list) { + for (basicblock *block = g->g_block_list; block != NULL; block = block->b_list) { assert(!_PyMem_IsPtrFreed(block)); if (block->b_instr != NULL) { assert(block->b_ialloc > 0); @@ -705,20 +758,37 @@ compiler_unit_check(struct compiler_unit *u) } } -static void -compiler_unit_free(struct compiler_unit *u) +static int +cfg_builder_init(cfg_builder *g) { - basicblock *b, *next; + g->g_block_list = NULL; + basicblock *block = cfg_builder_new_block(g); + if (block == NULL) + return 0; + g->g_curblock = g->g_entryblock = block; + g->g_current_label = NO_LABEL; + return 1; +} - compiler_unit_check(u); - b = u->u_blocks; +static void +cfg_builder_fini(cfg_builder* g) +{ + cfg_builder_check(g); + basicblock *b = g->g_block_list; while (b != NULL) { - if (b->b_instr) + if (b->b_instr) { PyObject_Free((void *)b->b_instr); - next = b->b_list; + } + basicblock *next = b->b_list; PyObject_Free((void *)b); b = next; } +} + +static void +compiler_unit_free(struct compiler_unit *u) +{ + cfg_builder_fini(&u->u_cfg_builder); Py_CLEAR(u->u_ste); Py_CLEAR(u->u_name); Py_CLEAR(u->u_qualname); @@ -801,59 +871,65 @@ compiler_set_qualname(struct compiler *c) return 1; } +static jump_target_label +cfg_new_label(cfg_builder *g) +{ + jump_target_label lbl = {g->g_next_free_label++}; + return lbl; +} /* Allocate a new block and return a pointer to it. Returns NULL on error. */ - static basicblock * -compiler_new_block(struct compiler *c) +cfg_builder_new_block(cfg_builder *g) { - basicblock *b; - struct compiler_unit *u; - - u = c->u; - b = (basicblock *)PyObject_Calloc(1, sizeof(basicblock)); + basicblock *b = (basicblock *)PyObject_Calloc(1, sizeof(basicblock)); if (b == NULL) { PyErr_NoMemory(); return NULL; } /* Extend the singly linked list of blocks with new block. */ - b->b_list = u->u_blocks; - u->u_blocks = b; + b->b_list = g->g_block_list; + g->g_block_list = b; + b->b_label = -1; return b; } static basicblock * -compiler_use_next_block(struct compiler *c, basicblock *block) +cfg_builder_use_next_block(cfg_builder *g, basicblock *block) { assert(block != NULL); - c->u->u_curblock->b_next = block; - c->u->u_curblock = block; - c->u->u_need_new_implicit_block = 0; + g->g_curblock->b_next = block; + g->g_curblock = block; return block; } +static int +cfg_builder_use_label(cfg_builder *g, jump_target_label lbl) +{ + g->g_current_label = lbl; + return cfg_builder_maybe_start_new_block(g); +} + static basicblock * -compiler_copy_block(struct compiler *c, basicblock *block) +copy_basicblock(cfg_builder *g, basicblock *block) { /* Cannot copy a block if it has a fallthrough, since * a block can only have one fallthrough predecessor. */ - assert(block->b_nofallthrough); - basicblock *result = compiler_new_block(c); + assert(BB_NO_FALLTHROUGH(block)); + basicblock *result = cfg_builder_new_block(g); if (result == NULL) { return NULL; } for (int i = 0; i < block->b_iused; i++) { - int n = compiler_next_instr(result); + int n = basicblock_next_instr(result); if (n < 0) { return NULL; } result->b_instr[n] = block->b_instr[i]; } - result->b_exit = block->b_exit; - result->b_nofallthrough = 1; return result; } @@ -863,7 +939,7 @@ compiler_copy_block(struct compiler *c, basicblock *block) */ static int -compiler_next_instr(basicblock *b) +basicblock_next_instr(basicblock *b) { assert(b != NULL); if (b->b_instr == NULL) { @@ -912,24 +988,19 @@ compiler_next_instr(basicblock *b) - before the "except" and "finally" clauses */ -#define SET_LOC(c, x) \ - (c)->u->u_lineno = (x)->lineno; \ - (c)->u->u_col_offset = (x)->col_offset; \ - (c)->u->u_end_lineno = (x)->end_lineno; \ - (c)->u->u_end_col_offset = (x)->end_col_offset; +#define SET_LOC(c, x) \ + (c)->u->u_loc.lineno = (x)->lineno; \ + (c)->u->u_loc.end_lineno = (x)->end_lineno; \ + (c)->u->u_loc.col_offset = (x)->col_offset; \ + (c)->u->u_loc.end_col_offset = (x)->end_col_offset; // Artificial instructions -#define UNSET_LOC(c) \ - (c)->u->u_lineno = -1; \ - (c)->u->u_col_offset = -1; \ - (c)->u->u_end_lineno = -1; \ - (c)->u->u_end_col_offset = -1; - -#define COPY_INSTR_LOC(old, new) \ - (new).i_lineno = (old).i_lineno; \ - (new).i_col_offset = (old).i_col_offset; \ - (new).i_end_lineno = (old).i_end_lineno; \ - (new).i_end_col_offset = (old).i_end_col_offset; +#define UNSET_LOC(c) \ + (c)->u->u_loc.lineno = -1; \ + (c)->u->u_loc.end_lineno = -1; \ + (c)->u->u_loc.col_offset = -1; \ + (c)->u->u_loc.end_col_offset = -1; + /* Return the stack effect of opcode with argument oparg. @@ -971,8 +1042,12 @@ stack_effect(int opcode, int oparg, int jump) case BINARY_SUBSCR: return -1; + case BINARY_SLICE: + return -2; case STORE_SUBSCR: return -3; + case STORE_SLICE: + return -4; case DELETE_SUBSCR: return -2; @@ -1033,7 +1108,7 @@ stack_effect(int opcode, int oparg, int jump) case BUILD_CONST_KEY_MAP: return -oparg; case LOAD_ATTR: - return 0; + return (oparg & 1); case COMPARE_OP: case IS_OP: case CONTAINS_OP: @@ -1059,17 +1134,9 @@ stack_effect(int opcode, int oparg, int jump) case JUMP_IF_FALSE_OR_POP: return jump ? 0 : -1; - case POP_JUMP_BACKWARD_IF_NONE: - case POP_JUMP_FORWARD_IF_NONE: case POP_JUMP_IF_NONE: - case POP_JUMP_BACKWARD_IF_NOT_NONE: - case POP_JUMP_FORWARD_IF_NOT_NONE: case POP_JUMP_IF_NOT_NONE: - case POP_JUMP_FORWARD_IF_FALSE: - case POP_JUMP_BACKWARD_IF_FALSE: case POP_JUMP_IF_FALSE: - case POP_JUMP_FORWARD_IF_TRUE: - case POP_JUMP_BACKWARD_IF_TRUE: case POP_JUMP_IF_TRUE: return -1; @@ -1103,6 +1170,7 @@ stack_effect(int opcode, int oparg, int jump) return 1; case LOAD_FAST: + case LOAD_FAST_CHECK: return 1; case STORE_FAST: return -1; @@ -1161,6 +1229,8 @@ stack_effect(int opcode, int oparg, int jump) return 0; case END_ASYNC_FOR: return -2; + case CLEANUP_THROW: + return -2; case FORMAT_VALUE: /* If there's a fmt_spec on the stack, we go from 2->1, else 1->1. */ @@ -1206,89 +1276,74 @@ PyCompile_OpcodeStackEffect(int opcode, int oparg) return stack_effect(opcode, oparg, -1); } -static int is_end_of_basic_block(struct instr *instr) -{ - int opcode = instr->i_opcode; - - return is_jump(instr) || - opcode == RETURN_VALUE || - opcode == RAISE_VARARGS || - opcode == RERAISE; -} - -static int -compiler_use_new_implicit_block_if_needed(struct compiler *c) -{ - if (c->u->u_need_new_implicit_block) { - basicblock *b = compiler_new_block(c); - if (b == NULL) { - return -1; - } - compiler_use_next_block(c, b); - } - return 0; -} - -static void -compiler_check_if_end_of_block(struct compiler *c, struct instr *instr) -{ - if (is_end_of_basic_block(instr)) { - c->u->u_need_new_implicit_block = 1; - } -} - /* Add an opcode with no argument. Returns 0 on failure, 1 on success. */ static int -compiler_addop_line(struct compiler *c, int opcode, int line, - int end_line, int col_offset, int end_col_offset) +basicblock_addop(basicblock *b, int opcode, int oparg, struct location loc) { assert(IS_WITHIN_OPCODE_RANGE(opcode)); assert(!IS_ASSEMBLER_OPCODE(opcode)); - assert(!HAS_ARG(opcode) || IS_ARTIFICIAL(opcode)); - - if (compiler_use_new_implicit_block_if_needed(c) < 0) { - return -1; - } + assert(HAS_ARG(opcode) || HAS_TARGET(opcode) || oparg == 0); + assert(0 <= oparg && oparg < (1 << 30)); - basicblock *b = c->u->u_curblock; - int off = compiler_next_instr(b); + int off = basicblock_next_instr(b); if (off < 0) { return 0; } struct instr *i = &b->b_instr[off]; i->i_opcode = opcode; - i->i_oparg = 0; - if (opcode == RETURN_VALUE) { - b->b_return = 1; - } - i->i_lineno = line; - i->i_end_lineno = end_line; - i->i_col_offset = col_offset; - i->i_end_col_offset = end_col_offset; + i->i_oparg = oparg; + i->i_target = NULL; + i->i_loc = loc; - compiler_check_if_end_of_block(c, i); return 1; } +static bool +cfg_builder_current_block_is_terminated(cfg_builder *g) +{ + if (IS_LABEL(g->g_current_label)) { + return true; + } + struct instr *last = basicblock_last_instr(g->g_curblock); + return last && IS_TERMINATOR_OPCODE(last->i_opcode); +} + static int -compiler_addop(struct compiler *c, int opcode) +cfg_builder_maybe_start_new_block(cfg_builder *g) { - return compiler_addop_line(c, opcode, c->u->u_lineno, c->u->u_end_lineno, - c->u->u_col_offset, c->u->u_end_col_offset); + if (cfg_builder_current_block_is_terminated(g)) { + basicblock *b = cfg_builder_new_block(g); + if (b == NULL) { + return -1; + } + b->b_label = g->g_current_label.id; + g->g_current_label = NO_LABEL; + cfg_builder_use_next_block(g, b); + } + return 0; } static int -compiler_addop_noline(struct compiler *c, int opcode) +cfg_builder_addop(cfg_builder *g, int opcode, int oparg, struct location loc) { - return compiler_addop_line(c, opcode, -1, 0, 0, 0); + if (cfg_builder_maybe_start_new_block(g) != 0) { + return -1; + } + return basicblock_addop(g->g_curblock, opcode, oparg, loc); } +static int +cfg_builder_addop_noarg(cfg_builder *g, int opcode, struct location loc) +{ + assert(!HAS_ARG(opcode)); + return cfg_builder_addop(g, opcode, 0, loc); +} static Py_ssize_t -compiler_add_o(PyObject *dict, PyObject *o) +dict_add_o(PyObject *dict, PyObject *o) { PyObject *v; Py_ssize_t arg; @@ -1316,8 +1371,9 @@ compiler_add_o(PyObject *dict, PyObject *o) // Merge const *o* recursively and return constant key object. static PyObject* -merge_consts_recursive(struct compiler *c, PyObject *o) +merge_consts_recursive(PyObject *const_cache, PyObject *o) { + assert(PyDict_CheckExact(const_cache)); // None and Ellipsis are singleton, and key is the singleton. // No need to merge object and key. if (o == Py_None || o == Py_Ellipsis) { @@ -1331,22 +1387,22 @@ merge_consts_recursive(struct compiler *c, PyObject *o) } // t is borrowed reference - PyObject *t = PyDict_SetDefault(c->c_const_cache, key, key); + PyObject *t = PyDict_SetDefault(const_cache, key, key); if (t != key) { - // o is registered in c_const_cache. Just use it. + // o is registered in const_cache. Just use it. Py_XINCREF(t); Py_DECREF(key); return t; } - // We registered o in c_const_cache. + // We registered o in const_cache. // When o is a tuple or frozenset, we want to merge its // items too. if (PyTuple_CheckExact(o)) { Py_ssize_t len = PyTuple_GET_SIZE(o); for (Py_ssize_t i = 0; i < len; i++) { PyObject *item = PyTuple_GET_ITEM(o, i); - PyObject *u = merge_consts_recursive(c, item); + PyObject *u = merge_consts_recursive(const_cache, item); if (u == NULL) { Py_DECREF(key); return NULL; @@ -1389,7 +1445,7 @@ merge_consts_recursive(struct compiler *c, PyObject *o) PyObject *item; Py_hash_t hash; while (_PySet_NextEntry(o, &pos, &item, &hash)) { - PyObject *k = merge_consts_recursive(c, item); + PyObject *k = merge_consts_recursive(const_cache, item); if (k == NULL) { Py_DECREF(tuple); Py_DECREF(key); @@ -1427,12 +1483,12 @@ merge_consts_recursive(struct compiler *c, PyObject *o) static Py_ssize_t compiler_add_const(struct compiler *c, PyObject *o) { - PyObject *key = merge_consts_recursive(c, o); + PyObject *key = merge_consts_recursive(c->c_const_cache, o); if (key == NULL) { return -1; } - Py_ssize_t arg = compiler_add_o(c->u->u_consts, key); + Py_ssize_t arg = dict_add_o(c->u->u_consts, key); Py_DECREF(key); return arg; } @@ -1443,17 +1499,17 @@ compiler_addop_load_const(struct compiler *c, PyObject *o) Py_ssize_t arg = compiler_add_const(c, o); if (arg < 0) return 0; - return compiler_addop_i(c, LOAD_CONST, arg); + return cfg_builder_addop_i(CFG_BUILDER(c), LOAD_CONST, arg, COMPILER_LOC(c)); } static int compiler_addop_o(struct compiler *c, int opcode, PyObject *dict, PyObject *o) { - Py_ssize_t arg = compiler_add_o(dict, o); + Py_ssize_t arg = dict_add_o(dict, o); if (arg < 0) return 0; - return compiler_addop_i(c, opcode, arg); + return cfg_builder_addop_i(CFG_BUILDER(c), opcode, arg, COMPILER_LOC(c)); } static int @@ -1465,21 +1521,26 @@ compiler_addop_name(struct compiler *c, int opcode, PyObject *dict, PyObject *mangled = _Py_Mangle(c->u->u_private, o); if (!mangled) return 0; - arg = compiler_add_o(dict, mangled); + arg = dict_add_o(dict, mangled); Py_DECREF(mangled); if (arg < 0) return 0; - return compiler_addop_i(c, opcode, arg); + if (opcode == LOAD_ATTR) { + arg <<= 1; + } + if (opcode == LOAD_METHOD) { + opcode = LOAD_ATTR; + arg <<= 1; + arg |= 1; + } + return cfg_builder_addop_i(CFG_BUILDER(c), opcode, arg, COMPILER_LOC(c)); } /* Add an opcode with an integer argument. Returns 0 on failure, 1 on success. */ - static int -compiler_addop_i_line(struct compiler *c, int opcode, Py_ssize_t oparg, - int lineno, int end_lineno, - int col_offset, int end_col_offset) +cfg_builder_addop_i(cfg_builder *g, int opcode, Py_ssize_t oparg, struct location loc) { /* oparg value is unsigned, but a signed C int is usually used to store it in the C code (like Python/ceval.c). @@ -1489,103 +1550,31 @@ compiler_addop_i_line(struct compiler *c, int opcode, Py_ssize_t oparg, The argument of a concrete bytecode instruction is limited to 8-bit. EXTENDED_ARG is used for 16, 24, and 32-bit arguments. */ - assert(IS_WITHIN_OPCODE_RANGE(opcode)); - assert(!IS_ASSEMBLER_OPCODE(opcode)); - assert(HAS_ARG(opcode)); - assert(0 <= oparg && oparg <= 2147483647); - - if (compiler_use_new_implicit_block_if_needed(c) < 0) { - return -1; - } - - basicblock *b = c->u->u_curblock; - int off = compiler_next_instr(b); - if (off < 0) { - return 0; - } - struct instr *i = &b->b_instr[off]; - i->i_opcode = opcode; - i->i_oparg = Py_SAFE_DOWNCAST(oparg, Py_ssize_t, int); - i->i_lineno = lineno; - i->i_end_lineno = end_lineno; - i->i_col_offset = col_offset; - i->i_end_col_offset = end_col_offset; - - compiler_check_if_end_of_block(c, i); - return 1; -} - -static int -compiler_addop_i(struct compiler *c, int opcode, Py_ssize_t oparg) -{ - return compiler_addop_i_line(c, opcode, oparg, - c->u->u_lineno, c->u->u_end_lineno, - c->u->u_col_offset, c->u->u_end_col_offset); -} - -static int -compiler_addop_i_noline(struct compiler *c, int opcode, Py_ssize_t oparg) -{ - return compiler_addop_i_line(c, opcode, oparg, -1, 0, 0, 0); -} - -static int add_jump_to_block(struct compiler *c, int opcode, - int lineno, int end_lineno, - int col_offset, int end_col_offset, - basicblock *target) -{ - assert(IS_WITHIN_OPCODE_RANGE(opcode)); - assert(!IS_ASSEMBLER_OPCODE(opcode)); - assert(HAS_ARG(opcode) || IS_VIRTUAL_OPCODE(opcode)); - assert(target != NULL); - - if (compiler_use_new_implicit_block_if_needed(c) < 0) { - return -1; - } - - basicblock *b = c->u->u_curblock; - int off = compiler_next_instr(b); - struct instr *i = &b->b_instr[off]; - if (off < 0) { - return 0; - } - i->i_opcode = opcode; - i->i_target = target; - i->i_lineno = lineno; - i->i_end_lineno = end_lineno; - i->i_col_offset = col_offset; - i->i_end_col_offset = end_col_offset; - - compiler_check_if_end_of_block(c, i); - return 1; + int oparg_ = Py_SAFE_DOWNCAST(oparg, Py_ssize_t, int); + return cfg_builder_addop(g, opcode, oparg_, loc); } static int -compiler_addop_j(struct compiler *c, int opcode, basicblock *b) +cfg_builder_addop_j(cfg_builder *g, int opcode, jump_target_label target, struct location loc) { - return add_jump_to_block(c, opcode, c->u->u_lineno, - c->u->u_end_lineno, c->u->u_col_offset, - c->u->u_end_col_offset, b); + assert(IS_LABEL(target)); + assert(IS_JUMP_OPCODE(opcode) || IS_BLOCK_PUSH_OPCODE(opcode)); + return cfg_builder_addop(g, opcode, target.id, loc); } -static int -compiler_addop_j_noline(struct compiler *c, int opcode, basicblock *b) -{ - return add_jump_to_block(c, opcode, -1, 0, 0, 0, b); -} #define ADDOP(C, OP) { \ - if (!compiler_addop((C), (OP))) \ + if (!cfg_builder_addop_noarg(CFG_BUILDER(C), (OP), COMPILER_LOC(C))) \ return 0; \ } #define ADDOP_NOLINE(C, OP) { \ - if (!compiler_addop_noline((C), (OP))) \ + if (!cfg_builder_addop_noarg(CFG_BUILDER(C), (OP), NO_LOCATION)) \ return 0; \ } #define ADDOP_IN_SCOPE(C, OP) { \ - if (!compiler_addop((C), (OP))) { \ + if (!cfg_builder_addop_noarg(CFG_BUILDER(C), (OP), COMPILER_LOC(C))) { \ compiler_exit_scope(c); \ return 0; \ } \ @@ -1624,17 +1613,17 @@ compiler_addop_j_noline(struct compiler *c, int opcode, basicblock *b) } #define ADDOP_I(C, OP, O) { \ - if (!compiler_addop_i((C), (OP), (O))) \ + if (!cfg_builder_addop_i(CFG_BUILDER(C), (OP), (O), COMPILER_LOC(C))) \ return 0; \ } #define ADDOP_I_NOLINE(C, OP, O) { \ - if (!compiler_addop_i_noline((C), (OP), (O))) \ + if (!cfg_builder_addop_i(CFG_BUILDER(C), (OP), (O), NO_LOCATION)) \ return 0; \ } #define ADDOP_JUMP(C, OP, O) { \ - if (!compiler_addop_j((C), (OP), (O))) \ + if (!cfg_builder_addop_j(CFG_BUILDER(C), (OP), (O), COMPILER_LOC(C))) \ return 0; \ } @@ -1642,7 +1631,7 @@ compiler_addop_j_noline(struct compiler *c, int opcode, basicblock *b) * Used for artificial jumps that have no corresponding * token in the source code. */ #define ADDOP_JUMP_NOLINE(C, OP, O) { \ - if (!compiler_addop_j_noline((C), (OP), (O))) \ + if (!cfg_builder_addop_j(CFG_BUILDER(C), (OP), (O), NO_LOCATION)) \ return 0; \ } @@ -1714,7 +1703,6 @@ compiler_enter_scope(struct compiler *c, identifier name, int scope_type, void *key, int lineno) { struct compiler_unit *u; - basicblock *block; u = (struct compiler_unit *)PyObject_Calloc(1, sizeof( struct compiler_unit)); @@ -1759,13 +1747,9 @@ compiler_enter_scope(struct compiler *c, identifier name, return 0; } - u->u_blocks = NULL; u->u_nfblocks = 0; u->u_firstlineno = lineno; - u->u_lineno = lineno; - u->u_col_offset = 0; - u->u_end_lineno = lineno; - u->u_end_col_offset = 0; + u->u_loc = LOCATION(lineno, lineno, 0, 0); u->u_consts = PyDict_New(); if (!u->u_consts) { compiler_unit_free(u); @@ -1795,13 +1779,13 @@ compiler_enter_scope(struct compiler *c, identifier name, c->c_nestlevel++; - block = compiler_new_block(c); - if (block == NULL) + cfg_builder *g = CFG_BUILDER(c); + if (!cfg_builder_init(g)) { return 0; - c->u->u_curblock = block; + } if (u->u_scope_type == COMPILER_SCOPE_MODULE) { - c->u->u_lineno = -1; + c->u->u_loc.lineno = 0; } else { if (!compiler_set_qualname(c)) @@ -1809,6 +1793,9 @@ compiler_enter_scope(struct compiler *c, identifier name, } ADDOP_I(c, RESUME, 0); + if (u->u_scope_type == COMPILER_SCOPE_MODULE) { + c->u->u_loc.lineno = -1; + } return 1; } @@ -1832,7 +1819,7 @@ compiler_exit_scope(struct compiler *c) _PyErr_WriteUnraisableMsg("on removing the last compiler " "stack item", NULL); } - compiler_unit_check(c->u); + cfg_builder_check(CFG_BUILDER(c)); } else { c->u = NULL; @@ -1915,8 +1902,8 @@ find_ann(asdl_stmt_seq *stmts) */ static int -compiler_push_fblock(struct compiler *c, enum fblocktype t, basicblock *b, - basicblock *exit, void *datum) +compiler_push_fblock(struct compiler *c, enum fblocktype t, jump_target_label block_label, + jump_target_label exit, void *datum) { struct fblockinfo *f; if (c->u->u_nfblocks >= CO_MAXBLOCKS) { @@ -1924,20 +1911,20 @@ compiler_push_fblock(struct compiler *c, enum fblocktype t, basicblock *b, } f = &c->u->u_fblock[c->u->u_nfblocks++]; f->fb_type = t; - f->fb_block = b; + f->fb_block = block_label; f->fb_exit = exit; f->fb_datum = datum; return 1; } static void -compiler_pop_fblock(struct compiler *c, enum fblocktype t, basicblock *b) +compiler_pop_fblock(struct compiler *c, enum fblocktype t, jump_target_label block_label) { struct compiler_unit *u = c->u; assert(u->u_nfblocks > 0); u->u_nfblocks--; assert(u->u_fblock[u->u_nfblocks].fb_type == t); - assert(u->u_fblock[u->u_nfblocks].fb_block == b); + assert(SAME_LABEL(u->u_fblock[u->u_nfblocks].fb_block, block_label)); } static int @@ -1952,20 +1939,24 @@ compiler_call_exit_with_nones(struct compiler *c) { static int compiler_add_yield_from(struct compiler *c, int await) { - basicblock *start, *resume, *exit; - start = compiler_new_block(c); - resume = compiler_new_block(c); - exit = compiler_new_block(c); - if (start == NULL || resume == NULL || exit == NULL) { - return 0; - } - compiler_use_next_block(c, start); + NEW_JUMP_TARGET_LABEL(c, send); + NEW_JUMP_TARGET_LABEL(c, fail); + NEW_JUMP_TARGET_LABEL(c, exit); + + USE_LABEL(c, send); ADDOP_JUMP(c, SEND, exit); - compiler_use_next_block(c, resume); + // Set up a virtual try/except to handle when StopIteration is raised during + // a close or throw call. The only way YIELD_VALUE raises if they do! + ADDOP_JUMP(c, SETUP_FINALLY, fail); ADDOP_I(c, YIELD_VALUE, 0); + ADDOP_NOLINE(c, POP_BLOCK); ADDOP_I(c, RESUME, await ? 3 : 2); - ADDOP_JUMP(c, JUMP_NO_INTERRUPT, start); - compiler_use_next_block(c, exit); + ADDOP_JUMP(c, JUMP_NO_INTERRUPT, send); + + USE_LABEL(c, fail); + ADDOP(c, CLEANUP_THROW); + + USE_LABEL(c, exit); return 1; } @@ -2017,14 +2008,14 @@ compiler_unwind_fblock(struct compiler *c, struct fblockinfo *info, /* This POP_BLOCK gets the line number of the unwinding statement */ ADDOP(c, POP_BLOCK); if (preserve_tos) { - if (!compiler_push_fblock(c, POP_VALUE, NULL, NULL, NULL)) { + if (!compiler_push_fblock(c, POP_VALUE, NO_LABEL, NO_LABEL, NULL)) { return 0; } } /* Emit the finally block */ VISIT_SEQ(c, stmt, info->fb_datum); if (preserve_tos) { - compiler_pop_fblock(c, POP_VALUE, NULL); + compiler_pop_fblock(c, POP_VALUE, NO_LABEL); } /* The finally block should appear to execute after the * statement causing the unwinding, so make the unwinding @@ -2172,7 +2163,7 @@ compiler_mod(struct compiler *c, mod_ty mod) mod, 1)) { return NULL; } - c->u->u_lineno = 1; + c->u->u_loc.lineno = 1; switch (mod->kind) { case Module_kind: if (!compiler_body(c, mod->v.Module.body)) { @@ -2316,18 +2307,12 @@ compiler_apply_decorators(struct compiler *c, asdl_expr_seq* decos) if (!decos) return 1; - int old_lineno = c->u->u_lineno; - int old_end_lineno = c->u->u_end_lineno; - int old_col_offset = c->u->u_col_offset; - int old_end_col_offset = c->u->u_end_col_offset; + struct location old_loc = c->u->u_loc; for (Py_ssize_t i = asdl_seq_LEN(decos) - 1; i > -1; i--) { SET_LOC(c, (expr_ty)asdl_seq_GET(decos, i)); ADDOP_I(c, CALL, 0); } - c->u->u_lineno = old_lineno; - c->u->u_end_lineno = old_end_lineno; - c->u->u_col_offset = old_col_offset; - c->u->u_end_col_offset = old_end_col_offset; + c->u->u_loc = old_loc; return 1; } @@ -2874,7 +2859,7 @@ static int compiler_addcompare(struct compiler *c, cmpop_ty op) static int -compiler_jump_if(struct compiler *c, expr_ty e, basicblock *next, int cond) +compiler_jump_if(struct compiler *c, expr_ty e, jump_target_label next, int cond) { switch (e->kind) { case UnaryOp_kind: @@ -2887,11 +2872,10 @@ compiler_jump_if(struct compiler *c, expr_ty e, basicblock *next, int cond) Py_ssize_t i, n = asdl_seq_LEN(s) - 1; assert(n >= 0); int cond2 = e->v.BoolOp.op == Or; - basicblock *next2 = next; + jump_target_label next2 = next; if (!cond2 != !cond) { - next2 = compiler_new_block(c); - if (next2 == NULL) - return 0; + NEW_JUMP_TARGET_LABEL(c, new_next2); + next2 = new_next2; } for (i = 0; i < n; ++i) { if (!compiler_jump_if(c, (expr_ty)asdl_seq_GET(s, i), next2, cond2)) @@ -2899,27 +2883,25 @@ compiler_jump_if(struct compiler *c, expr_ty e, basicblock *next, int cond) } if (!compiler_jump_if(c, (expr_ty)asdl_seq_GET(s, n), next, cond)) return 0; - if (next2 != next) - compiler_use_next_block(c, next2); + if (!SAME_LABEL(next2, next)) { + USE_LABEL(c, next2); + } return 1; } case IfExp_kind: { - basicblock *end, *next2; - end = compiler_new_block(c); - if (end == NULL) - return 0; - next2 = compiler_new_block(c); - if (next2 == NULL) - return 0; + NEW_JUMP_TARGET_LABEL(c, end); + NEW_JUMP_TARGET_LABEL(c, next2); if (!compiler_jump_if(c, e->v.IfExp.test, next2, 0)) return 0; if (!compiler_jump_if(c, e->v.IfExp.body, next, cond)) return 0; ADDOP_JUMP_NOLINE(c, JUMP, end); - compiler_use_next_block(c, next2); + + USE_LABEL(c, next2); if (!compiler_jump_if(c, e->v.IfExp.orelse, next, cond)) return 0; - compiler_use_next_block(c, end); + + USE_LABEL(c, end); return 1; } case Compare_kind: { @@ -2928,9 +2910,7 @@ compiler_jump_if(struct compiler *c, expr_ty e, basicblock *next, int cond) if (!check_compare(c, e)) { return 0; } - basicblock *cleanup = compiler_new_block(c); - if (cleanup == NULL) - return 0; + NEW_JUMP_TARGET_LABEL(c, cleanup); VISIT(c, expr, e->v.Compare.left); for (i = 0; i < n; i++) { VISIT(c, expr, @@ -2943,16 +2923,16 @@ compiler_jump_if(struct compiler *c, expr_ty e, basicblock *next, int cond) VISIT(c, expr, (expr_ty)asdl_seq_GET(e->v.Compare.comparators, n)); ADDOP_COMPARE(c, asdl_seq_GET(e->v.Compare.ops, n)); ADDOP_JUMP(c, cond ? POP_JUMP_IF_TRUE : POP_JUMP_IF_FALSE, next); - basicblock *end = compiler_new_block(c); - if (end == NULL) - return 0; + NEW_JUMP_TARGET_LABEL(c, end); ADDOP_JUMP_NOLINE(c, JUMP, end); - compiler_use_next_block(c, cleanup); + + USE_LABEL(c, cleanup); ADDOP(c, POP_TOP); if (!cond) { ADDOP_JUMP_NOLINE(c, JUMP, next); } - compiler_use_next_block(c, end); + + USE_LABEL(c, end); return 1; } /* fallback to general implementation */ @@ -2972,22 +2952,19 @@ compiler_jump_if(struct compiler *c, expr_ty e, basicblock *next, int cond) static int compiler_ifexp(struct compiler *c, expr_ty e) { - basicblock *end, *next; - assert(e->kind == IfExp_kind); - end = compiler_new_block(c); - if (end == NULL) - return 0; - next = compiler_new_block(c); - if (next == NULL) - return 0; + NEW_JUMP_TARGET_LABEL(c, end); + NEW_JUMP_TARGET_LABEL(c, next); + if (!compiler_jump_if(c, e->v.IfExp.test, next, 0)) return 0; VISIT(c, expr, e->v.IfExp.body); ADDOP_JUMP_NOLINE(c, JUMP, end); - compiler_use_next_block(c, next); + + USE_LABEL(c, next); VISIT(c, expr, e->v.IfExp.orelse); - compiler_use_next_block(c, end); + + USE_LABEL(c, end); return 1; } @@ -3051,17 +3028,12 @@ compiler_lambda(struct compiler *c, expr_ty e) static int compiler_if(struct compiler *c, stmt_ty s) { - basicblock *end, *next; + jump_target_label next; assert(s->kind == If_kind); - end = compiler_new_block(c); - if (end == NULL) { - return 0; - } + NEW_JUMP_TARGET_LABEL(c, end); if (asdl_seq_LEN(s->v.If.orelse)) { - next = compiler_new_block(c); - if (next == NULL) { - return 0; - } + NEW_JUMP_TARGET_LABEL(c, orelse); + next = orelse; } else { next = end; @@ -3072,44 +3044,46 @@ compiler_if(struct compiler *c, stmt_ty s) VISIT_SEQ(c, stmt, s->v.If.body); if (asdl_seq_LEN(s->v.If.orelse)) { ADDOP_JUMP_NOLINE(c, JUMP, end); - compiler_use_next_block(c, next); + + USE_LABEL(c, next); VISIT_SEQ(c, stmt, s->v.If.orelse); } - compiler_use_next_block(c, end); + + USE_LABEL(c, end); return 1; } static int compiler_for(struct compiler *c, stmt_ty s) { - basicblock *start, *body, *cleanup, *end; + NEW_JUMP_TARGET_LABEL(c, start); + NEW_JUMP_TARGET_LABEL(c, body); + NEW_JUMP_TARGET_LABEL(c, cleanup); + NEW_JUMP_TARGET_LABEL(c, end); - start = compiler_new_block(c); - body = compiler_new_block(c); - cleanup = compiler_new_block(c); - end = compiler_new_block(c); - if (start == NULL || body == NULL || end == NULL || cleanup == NULL) { - return 0; - } if (!compiler_push_fblock(c, FOR_LOOP, start, end, NULL)) { return 0; } VISIT(c, expr, s->v.For.iter); ADDOP(c, GET_ITER); - compiler_use_next_block(c, start); + + USE_LABEL(c, start); ADDOP_JUMP(c, FOR_ITER, cleanup); - compiler_use_next_block(c, body); + + USE_LABEL(c, body); VISIT(c, expr, s->v.For.target); VISIT_SEQ(c, stmt, s->v.For.body); /* Mark jump as artificial */ UNSET_LOC(c); ADDOP_JUMP(c, JUMP, start); - compiler_use_next_block(c, cleanup); + + USE_LABEL(c, cleanup); compiler_pop_fblock(c, FOR_LOOP, start); VISIT_SEQ(c, stmt, s->v.For.orelse); - compiler_use_next_block(c, end); + + USE_LABEL(c, end); return 1; } @@ -3117,24 +3091,20 @@ compiler_for(struct compiler *c, stmt_ty s) static int compiler_async_for(struct compiler *c, stmt_ty s) { - basicblock *start, *except, *end; if (IS_TOP_LEVEL_AWAIT(c)){ c->u->u_ste->ste_coroutine = 1; } else if (c->u->u_scope_type != COMPILER_SCOPE_ASYNC_FUNCTION) { return compiler_error(c, "'async for' outside async function"); } - start = compiler_new_block(c); - except = compiler_new_block(c); - end = compiler_new_block(c); + NEW_JUMP_TARGET_LABEL(c, start); + NEW_JUMP_TARGET_LABEL(c, except); + NEW_JUMP_TARGET_LABEL(c, end); - if (start == NULL || except == NULL || end == NULL) { - return 0; - } VISIT(c, expr, s->v.AsyncFor.iter); ADDOP(c, GET_AITER); - compiler_use_next_block(c, start); + USE_LABEL(c, start); if (!compiler_push_fblock(c, FOR_LOOP, start, end, NULL)) { return 0; } @@ -3155,7 +3125,7 @@ compiler_async_for(struct compiler *c, stmt_ty s) compiler_pop_fblock(c, FOR_LOOP, start); /* Except block for __anext__ */ - compiler_use_next_block(c, except); + USE_LABEL(c, except); /* Use same line number as the iterator, * as the END_ASYNC_FOR succeeds the `for`, not the body. */ @@ -3165,23 +3135,19 @@ compiler_async_for(struct compiler *c, stmt_ty s) /* `else` block */ VISIT_SEQ(c, stmt, s->v.For.orelse); - compiler_use_next_block(c, end); - + USE_LABEL(c, end); return 1; } static int compiler_while(struct compiler *c, stmt_ty s) { - basicblock *loop, *body, *end, *anchor = NULL; - loop = compiler_new_block(c); - body = compiler_new_block(c); - anchor = compiler_new_block(c); - end = compiler_new_block(c); - if (loop == NULL || body == NULL || anchor == NULL || end == NULL) { - return 0; - } - compiler_use_next_block(c, loop); + NEW_JUMP_TARGET_LABEL(c, loop); + NEW_JUMP_TARGET_LABEL(c, body); + NEW_JUMP_TARGET_LABEL(c, end); + NEW_JUMP_TARGET_LABEL(c, anchor); + + USE_LABEL(c, loop); if (!compiler_push_fblock(c, WHILE_LOOP, loop, end, NULL)) { return 0; } @@ -3189,7 +3155,7 @@ compiler_while(struct compiler *c, stmt_ty s) return 0; } - compiler_use_next_block(c, body); + USE_LABEL(c, body); VISIT_SEQ(c, stmt, s->v.While.body); SET_LOC(c, s); if (!compiler_jump_if(c, s->v.While.test, body, 1)) { @@ -3198,12 +3164,12 @@ compiler_while(struct compiler *c, stmt_ty s) compiler_pop_fblock(c, WHILE_LOOP, loop); - compiler_use_next_block(c, anchor); + USE_LABEL(c, anchor); if (s->v.While.orelse) { VISIT_SEQ(c, stmt, s->v.While.orelse); } - compiler_use_next_block(c, end); + USE_LABEL(c, end); return 1; } @@ -3315,18 +3281,15 @@ compiler_continue(struct compiler *c) static int compiler_try_finally(struct compiler *c, stmt_ty s) { - basicblock *body, *end, *exit, *cleanup; + NEW_JUMP_TARGET_LABEL(c, body); + NEW_JUMP_TARGET_LABEL(c, end); + NEW_JUMP_TARGET_LABEL(c, exit); + NEW_JUMP_TARGET_LABEL(c, cleanup); - body = compiler_new_block(c); - end = compiler_new_block(c); - exit = compiler_new_block(c); - cleanup = compiler_new_block(c); - if (body == NULL || end == NULL || exit == NULL || cleanup == NULL) { - return 0; - } /* `try` block */ ADDOP_JUMP(c, SETUP_FINALLY, end); - compiler_use_next_block(c, body); + + USE_LABEL(c, body); if (!compiler_push_fblock(c, FINALLY_TRY, body, end, s->v.Try.finalbody)) return 0; if (s->v.Try.handlers && asdl_seq_LEN(s->v.Try.handlers)) { @@ -3341,44 +3304,36 @@ compiler_try_finally(struct compiler *c, stmt_ty s) VISIT_SEQ(c, stmt, s->v.Try.finalbody); ADDOP_JUMP_NOLINE(c, JUMP, exit); /* `finally` block */ - compiler_use_next_block(c, end); + + USE_LABEL(c, end); UNSET_LOC(c); ADDOP_JUMP(c, SETUP_CLEANUP, cleanup); ADDOP(c, PUSH_EXC_INFO); - if (!compiler_push_fblock(c, FINALLY_END, end, NULL, NULL)) + if (!compiler_push_fblock(c, FINALLY_END, end, NO_LABEL, NULL)) return 0; VISIT_SEQ(c, stmt, s->v.Try.finalbody); compiler_pop_fblock(c, FINALLY_END, end); ADDOP_I(c, RERAISE, 0); - compiler_use_next_block(c, cleanup); + + USE_LABEL(c, cleanup); POP_EXCEPT_AND_RERAISE(c); - compiler_use_next_block(c, exit); + + USE_LABEL(c, exit); return 1; } static int compiler_try_star_finally(struct compiler *c, stmt_ty s) { - basicblock *body = compiler_new_block(c); - if (body == NULL) { - return 0; - } - basicblock *end = compiler_new_block(c); - if (!end) { - return 0; - } - basicblock *exit = compiler_new_block(c); - if (!exit) { - return 0; - } - basicblock *cleanup = compiler_new_block(c); - if (!cleanup) { - return 0; - } + NEW_JUMP_TARGET_LABEL(c, body); + NEW_JUMP_TARGET_LABEL(c, end); + NEW_JUMP_TARGET_LABEL(c, exit); + NEW_JUMP_TARGET_LABEL(c, cleanup); /* `try` block */ ADDOP_JUMP(c, SETUP_FINALLY, end); - compiler_use_next_block(c, body); + + USE_LABEL(c, body); if (!compiler_push_fblock(c, FINALLY_TRY, body, end, s->v.TryStar.finalbody)) { return 0; } @@ -3394,21 +3349,24 @@ compiler_try_star_finally(struct compiler *c, stmt_ty s) compiler_pop_fblock(c, FINALLY_TRY, body); VISIT_SEQ(c, stmt, s->v.TryStar.finalbody); ADDOP_JUMP_NOLINE(c, JUMP, exit); + /* `finally` block */ - compiler_use_next_block(c, end); + USE_LABEL(c, end); UNSET_LOC(c); ADDOP_JUMP(c, SETUP_CLEANUP, cleanup); ADDOP(c, PUSH_EXC_INFO); - if (!compiler_push_fblock(c, FINALLY_END, end, NULL, NULL)) { + if (!compiler_push_fblock(c, FINALLY_END, end, NO_LABEL, NULL)) { return 0; } VISIT_SEQ(c, stmt, s->v.TryStar.finalbody); compiler_pop_fblock(c, FINALLY_END, end); ADDOP_I(c, RERAISE, 0); - compiler_use_next_block(c, cleanup); + + USE_LABEL(c, cleanup); POP_EXCEPT_AND_RERAISE(c); - compiler_use_next_block(c, exit); + + USE_LABEL(c, exit); return 1; } @@ -3444,18 +3402,17 @@ compiler_try_star_finally(struct compiler *c, stmt_ty s) static int compiler_try_except(struct compiler *c, stmt_ty s) { - basicblock *body, *except, *end, *cleanup; Py_ssize_t i, n; - body = compiler_new_block(c); - except = compiler_new_block(c); - end = compiler_new_block(c); - cleanup = compiler_new_block(c); - if (body == NULL || except == NULL || end == NULL || cleanup == NULL) - return 0; + NEW_JUMP_TARGET_LABEL(c, body); + NEW_JUMP_TARGET_LABEL(c, except); + NEW_JUMP_TARGET_LABEL(c, end); + NEW_JUMP_TARGET_LABEL(c, cleanup); + ADDOP_JUMP(c, SETUP_FINALLY, except); - compiler_use_next_block(c, body); - if (!compiler_push_fblock(c, TRY_EXCEPT, body, NULL, NULL)) + + USE_LABEL(c, body); + if (!compiler_push_fblock(c, TRY_EXCEPT, body, NO_LABEL, NULL)) return 0; VISIT_SEQ(c, stmt, s->v.Try.body); compiler_pop_fblock(c, TRY_EXCEPT, body); @@ -3465,13 +3422,14 @@ compiler_try_except(struct compiler *c, stmt_ty s) } ADDOP_JUMP_NOLINE(c, JUMP, end); n = asdl_seq_LEN(s->v.Try.handlers); - compiler_use_next_block(c, except); + + USE_LABEL(c, except); UNSET_LOC(c); ADDOP_JUMP(c, SETUP_CLEANUP, cleanup); ADDOP(c, PUSH_EXC_INFO); /* Runtime will push a block here, so we need to account for that */ - if (!compiler_push_fblock(c, EXCEPTION_HANDLER, NULL, NULL, NULL)) + if (!compiler_push_fblock(c, EXCEPTION_HANDLER, NO_LABEL, NO_LABEL, NULL)) return 0; for (i = 0; i < n; i++) { excepthandler_ty handler = (excepthandler_ty)asdl_seq_GET( @@ -3480,22 +3438,16 @@ compiler_try_except(struct compiler *c, stmt_ty s) if (!handler->v.ExceptHandler.type && i < n-1) { return compiler_error(c, "default 'except:' must be last"); } - except = compiler_new_block(c); - if (except == NULL) - return 0; + NEW_JUMP_TARGET_LABEL(c, next_except); + except = next_except; if (handler->v.ExceptHandler.type) { VISIT(c, expr, handler->v.ExceptHandler.type); ADDOP(c, CHECK_EXC_MATCH); ADDOP_JUMP(c, POP_JUMP_IF_FALSE, except); } if (handler->v.ExceptHandler.name) { - basicblock *cleanup_end, *cleanup_body; - - cleanup_end = compiler_new_block(c); - cleanup_body = compiler_new_block(c); - if (cleanup_end == NULL || cleanup_body == NULL) { - return 0; - } + NEW_JUMP_TARGET_LABEL(c, cleanup_end); + NEW_JUMP_TARGET_LABEL(c, cleanup_body); compiler_nameop(c, handler->v.ExceptHandler.name, Store); @@ -3512,8 +3464,9 @@ compiler_try_except(struct compiler *c, stmt_ty s) /* second try: */ ADDOP_JUMP(c, SETUP_CLEANUP, cleanup_end); - compiler_use_next_block(c, cleanup_body); - if (!compiler_push_fblock(c, HANDLER_CLEANUP, cleanup_body, NULL, handler->v.ExceptHandler.name)) + + USE_LABEL(c, cleanup_body); + if (!compiler_push_fblock(c, HANDLER_CLEANUP, cleanup_body, NO_LABEL, handler->v.ExceptHandler.name)) return 0; /* second # body */ @@ -3530,7 +3483,7 @@ compiler_try_except(struct compiler *c, stmt_ty s) ADDOP_JUMP(c, JUMP, end); /* except: */ - compiler_use_next_block(c, cleanup_end); + USE_LABEL(c, cleanup_end); /* name = None; del name; # Mark as artificial */ UNSET_LOC(c); @@ -3542,15 +3495,12 @@ compiler_try_except(struct compiler *c, stmt_ty s) ADDOP_I(c, RERAISE, 1); } else { - basicblock *cleanup_body; - - cleanup_body = compiler_new_block(c); - if (!cleanup_body) - return 0; + NEW_JUMP_TARGET_LABEL(c, cleanup_body); ADDOP(c, POP_TOP); /* exc_value */ - compiler_use_next_block(c, cleanup_body); - if (!compiler_push_fblock(c, HANDLER_CLEANUP, cleanup_body, NULL, NULL)) + + USE_LABEL(c, cleanup_body); + if (!compiler_push_fblock(c, HANDLER_CLEANUP, cleanup_body, NO_LABEL, NULL)) return 0; VISIT_SEQ(c, stmt, handler->v.ExceptHandler.body); compiler_pop_fblock(c, HANDLER_CLEANUP, cleanup_body); @@ -3559,15 +3509,18 @@ compiler_try_except(struct compiler *c, stmt_ty s) ADDOP(c, POP_EXCEPT); ADDOP_JUMP(c, JUMP, end); } - compiler_use_next_block(c, except); + + USE_LABEL(c, except); } /* Mark as artificial */ UNSET_LOC(c); - compiler_pop_fblock(c, EXCEPTION_HANDLER, NULL); + compiler_pop_fblock(c, EXCEPTION_HANDLER, NO_LABEL); ADDOP_I(c, RERAISE, 0); - compiler_use_next_block(c, cleanup); + + USE_LABEL(c, cleanup); POP_EXCEPT_AND_RERAISE(c); - compiler_use_next_block(c, end); + + USE_LABEL(c, end); return 1; } @@ -3623,34 +3576,17 @@ compiler_try_except(struct compiler *c, stmt_ty s) static int compiler_try_star_except(struct compiler *c, stmt_ty s) { - basicblock *body = compiler_new_block(c); - if (body == NULL) { - return 0; - } - basicblock *except = compiler_new_block(c); - if (except == NULL) { - return 0; - } - basicblock *orelse = compiler_new_block(c); - if (orelse == NULL) { - return 0; - } - basicblock *end = compiler_new_block(c); - if (end == NULL) { - return 0; - } - basicblock *cleanup = compiler_new_block(c); - if (cleanup == NULL) { - return 0; - } - basicblock *reraise_star = compiler_new_block(c); - if (reraise_star == NULL) { - return 0; - } + NEW_JUMP_TARGET_LABEL(c, body); + NEW_JUMP_TARGET_LABEL(c, except); + NEW_JUMP_TARGET_LABEL(c, orelse); + NEW_JUMP_TARGET_LABEL(c, end); + NEW_JUMP_TARGET_LABEL(c, cleanup); + NEW_JUMP_TARGET_LABEL(c, reraise_star); ADDOP_JUMP(c, SETUP_FINALLY, except); - compiler_use_next_block(c, body); - if (!compiler_push_fblock(c, TRY_EXCEPT, body, NULL, NULL)) { + + USE_LABEL(c, body); + if (!compiler_push_fblock(c, TRY_EXCEPT, body, NO_LABEL, NULL)) { return 0; } VISIT_SEQ(c, stmt, s->v.TryStar.body); @@ -3658,28 +3594,24 @@ compiler_try_star_except(struct compiler *c, stmt_ty s) ADDOP_NOLINE(c, POP_BLOCK); ADDOP_JUMP_NOLINE(c, JUMP, orelse); Py_ssize_t n = asdl_seq_LEN(s->v.TryStar.handlers); - compiler_use_next_block(c, except); + + USE_LABEL(c, except); UNSET_LOC(c); ADDOP_JUMP(c, SETUP_CLEANUP, cleanup); ADDOP(c, PUSH_EXC_INFO); /* Runtime will push a block here, so we need to account for that */ if (!compiler_push_fblock(c, EXCEPTION_GROUP_HANDLER, - NULL, NULL, "except handler")) { + NO_LABEL, NO_LABEL, "except handler")) { return 0; } for (Py_ssize_t i = 0; i < n; i++) { excepthandler_ty handler = (excepthandler_ty)asdl_seq_GET( s->v.TryStar.handlers, i); SET_LOC(c, handler); - except = compiler_new_block(c); - if (except == NULL) { - return 0; - } - basicblock *handle_match = compiler_new_block(c); - if (handle_match == NULL) { - return 0; - } + NEW_JUMP_TARGET_LABEL(c, next_except); + except = next_except; + NEW_JUMP_TARGET_LABEL(c, handle_match); if (i == 0) { /* Push the original EG into the stack */ /* @@ -3706,16 +3638,10 @@ compiler_try_star_except(struct compiler *c, stmt_ty s) ADDOP_JUMP(c, JUMP, except); } - compiler_use_next_block(c, handle_match); + USE_LABEL(c, handle_match); - basicblock *cleanup_end = compiler_new_block(c); - if (cleanup_end == NULL) { - return 0; - } - basicblock *cleanup_body = compiler_new_block(c); - if (cleanup_body == NULL) { - return 0; - } + NEW_JUMP_TARGET_LABEL(c, cleanup_end); + NEW_JUMP_TARGET_LABEL(c, cleanup_body); if (handler->v.ExceptHandler.name) { compiler_nameop(c, handler->v.ExceptHandler.name, Store); @@ -3736,8 +3662,9 @@ compiler_try_star_except(struct compiler *c, stmt_ty s) */ /* second try: */ ADDOP_JUMP(c, SETUP_CLEANUP, cleanup_end); - compiler_use_next_block(c, cleanup_body); - if (!compiler_push_fblock(c, HANDLER_CLEANUP, cleanup_body, NULL, handler->v.ExceptHandler.name)) + + USE_LABEL(c, cleanup_body); + if (!compiler_push_fblock(c, HANDLER_CLEANUP, cleanup_body, NO_LABEL, handler->v.ExceptHandler.name)) return 0; /* second # body */ @@ -3754,7 +3681,7 @@ compiler_try_star_except(struct compiler *c, stmt_ty s) ADDOP_JUMP(c, JUMP, except); /* except: */ - compiler_use_next_block(c, cleanup_end); + USE_LABEL(c, cleanup_end); /* name = None; del name; # Mark as artificial */ UNSET_LOC(c); @@ -3768,9 +3695,9 @@ compiler_try_star_except(struct compiler *c, stmt_ty s) /* add exception raised to the res list */ ADDOP_I(c, LIST_APPEND, 3); // exc ADDOP(c, POP_TOP); // lasti - ADDOP_JUMP(c, JUMP, except); - compiler_use_next_block(c, except); + + USE_LABEL(c, except); if (i == n - 1) { /* Add exc to the list (if not None it's the unhandled part of the EG) */ @@ -3780,13 +3707,10 @@ compiler_try_star_except(struct compiler *c, stmt_ty s) } /* Mark as artificial */ UNSET_LOC(c); - compiler_pop_fblock(c, EXCEPTION_GROUP_HANDLER, NULL); - basicblock *reraise = compiler_new_block(c); - if (!reraise) { - return 0; - } + compiler_pop_fblock(c, EXCEPTION_GROUP_HANDLER, NO_LABEL); + NEW_JUMP_TARGET_LABEL(c, reraise); - compiler_use_next_block(c, reraise_star); + USE_LABEL(c, reraise_star); ADDOP(c, PREP_RERAISE_STAR); ADDOP_I(c, COPY, 1); ADDOP_JUMP(c, POP_JUMP_IF_NOT_NONE, reraise); @@ -3796,16 +3720,20 @@ compiler_try_star_except(struct compiler *c, stmt_ty s) ADDOP(c, POP_BLOCK); ADDOP(c, POP_EXCEPT); ADDOP_JUMP(c, JUMP, end); - compiler_use_next_block(c, reraise); + + USE_LABEL(c, reraise); ADDOP(c, POP_BLOCK); ADDOP_I(c, SWAP, 2); ADDOP(c, POP_EXCEPT); ADDOP_I(c, RERAISE, 0); - compiler_use_next_block(c, cleanup); + + USE_LABEL(c, cleanup); POP_EXCEPT_AND_RERAISE(c); - compiler_use_next_block(c, orelse); + + USE_LABEL(c, orelse); VISIT_SEQ(c, stmt, s->v.TryStar.orelse); - compiler_use_next_block(c, end); + + USE_LABEL(c, end); return 1; } @@ -3975,8 +3903,6 @@ compiler_from_import(struct compiler *c, stmt_ty s) static int compiler_assert(struct compiler *c, stmt_ty s) { - basicblock *end; - /* Always emit a warning if the test is a non-zero length tuple */ if ((s->v.Assert.test->kind == Tuple_kind && asdl_seq_LEN(s->v.Assert.test->v.Tuple.elts) > 0) || @@ -3992,9 +3918,7 @@ compiler_assert(struct compiler *c, stmt_ty s) } if (c->c_optimize) return 1; - end = compiler_new_block(c); - if (end == NULL) - return 0; + NEW_JUMP_TARGET_LABEL(c, end); if (!compiler_jump_if(c, s->v.Assert.test, end, 1)) return 0; ADDOP(c, LOAD_ASSERTION_ERROR); @@ -4003,7 +3927,8 @@ compiler_assert(struct compiler *c, stmt_ty s) ADDOP_I(c, CALL, 0); } ADDOP_I(c, RAISE_VARARGS, 1); - compiler_use_next_block(c, end); + + USE_LABEL(c, end); return 1; } @@ -4287,7 +4212,7 @@ compiler_nameop(struct compiler *c, identifier name, expr_context_ty ctx) } assert(op); - arg = compiler_add_o(dict, mangled); + arg = dict_add_o(dict, mangled); Py_DECREF(mangled); if (arg < 0) { return 0; @@ -4295,13 +4220,12 @@ compiler_nameop(struct compiler *c, identifier name, expr_context_ty ctx) if (op == LOAD_GLOBAL) { arg <<= 1; } - return compiler_addop_i(c, op, arg); + return cfg_builder_addop_i(CFG_BUILDER(c), op, arg, COMPILER_LOC(c)); } static int compiler_boolop(struct compiler *c, expr_ty e) { - basicblock *end; int jumpi; Py_ssize_t i, n; asdl_expr_seq *s; @@ -4311,23 +4235,20 @@ compiler_boolop(struct compiler *c, expr_ty e) jumpi = JUMP_IF_FALSE_OR_POP; else jumpi = JUMP_IF_TRUE_OR_POP; - end = compiler_new_block(c); - if (end == NULL) - return 0; + NEW_JUMP_TARGET_LABEL(c, end); s = e->v.BoolOp.values; n = asdl_seq_LEN(s) - 1; assert(n >= 0); for (i = 0; i < n; ++i) { VISIT(c, expr, (expr_ty)asdl_seq_GET(s, i)); ADDOP_JUMP(c, jumpi, end); - basicblock *next = compiler_new_block(c); - if (next == NULL) { - return 0; - } - compiler_use_next_block(c, next); + NEW_JUMP_TARGET_LABEL(c, next); + + USE_LABEL(c, next); } VISIT(c, expr, (expr_ty)asdl_seq_GET(s, n)); - compiler_use_next_block(c, end); + + USE_LABEL(c, end); return 1; } @@ -4621,9 +4542,7 @@ compiler_compare(struct compiler *c, expr_ty e) ADDOP_COMPARE(c, asdl_seq_GET(e->v.Compare.ops, 0)); } else { - basicblock *cleanup = compiler_new_block(c); - if (cleanup == NULL) - return 0; + NEW_JUMP_TARGET_LABEL(c, cleanup); for (i = 0; i < n; i++) { VISIT(c, expr, (expr_ty)asdl_seq_GET(e->v.Compare.comparators, i)); @@ -4634,14 +4553,14 @@ compiler_compare(struct compiler *c, expr_ty e) } VISIT(c, expr, (expr_ty)asdl_seq_GET(e->v.Compare.comparators, n)); ADDOP_COMPARE(c, asdl_seq_GET(e->v.Compare.ops, n)); - basicblock *end = compiler_new_block(c); - if (end == NULL) - return 0; + NEW_JUMP_TARGET_LABEL(c, end); ADDOP_JUMP_NOLINE(c, JUMP, end); - compiler_use_next_block(c, cleanup); + + USE_LABEL(c, cleanup); ADDOP_I(c, SWAP, 2); ADDOP(c, POP_TOP); - compiler_use_next_block(c, end); + + USE_LABEL(c, end); } return 1; } @@ -4776,6 +4695,33 @@ is_import_originated(struct compiler *c, expr_ty e) return flags & DEF_IMPORT; } +// If an attribute access spans multiple lines, update the current start +// location to point to the attribute name. +static void +update_start_location_to_match_attr(struct compiler *c, expr_ty attr) +{ + assert(attr->kind == Attribute_kind); + struct location *loc = &c->u->u_loc; + if (loc->lineno != attr->end_lineno) { + loc->lineno = attr->end_lineno; + int len = (int)PyUnicode_GET_LENGTH(attr->v.Attribute.attr); + if (len <= attr->end_col_offset) { + loc->col_offset = attr->end_col_offset - len; + } + else { + // GH-94694: Somebody's compiling weird ASTs. Just drop the columns: + loc->col_offset = -1; + loc->end_col_offset = -1; + } + // Make sure the end position still follows the start position, even for + // weird ASTs: + loc->end_lineno = Py_MAX(loc->lineno, loc->end_lineno); + if (loc->lineno == loc->end_lineno) { + loc->end_col_offset = Py_MAX(loc->col_offset, loc->end_col_offset); + } + } +} + // Return 1 if the method call was optimized, -1 if not, and 0 on error. static int maybe_optimize_method_call(struct compiler *c, expr_ty e) @@ -4817,8 +4763,8 @@ maybe_optimize_method_call(struct compiler *c, expr_ty e) } /* Alright, we can optimize the code. */ VISIT(c, expr, meth->v.Attribute.value); - int old_lineno = c->u->u_lineno; - c->u->u_lineno = meth->end_lineno; + SET_LOC(c, meth); + update_start_location_to_match_attr(c, meth); ADDOP_NAME(c, LOAD_METHOD, meth->v.Attribute.attr, names); VISIT_SEQ(c, expr, e->v.Call.args); @@ -4828,8 +4774,9 @@ maybe_optimize_method_call(struct compiler *c, expr_ty e) return 0; }; } + SET_LOC(c, e); + update_start_location_to_match_attr(c, meth); ADDOP_I(c, CALL, argsl + kwdsl); - c->u->u_lineno = old_lineno; return 1; } @@ -4886,7 +4833,7 @@ compiler_joined_str(struct compiler *c, expr_ty e) Py_ssize_t value_count = asdl_seq_LEN(e->v.JoinedStr.values); if (value_count > STACK_USE_GUIDELINE) { _Py_DECLARE_STR(empty, ""); - ADDOP_LOAD_CONST_NEW(c, &_Py_STR(empty)); + ADDOP_LOAD_CONST_NEW(c, Py_NewRef(&_Py_STR(empty))); ADDOP_NAME(c, LOAD_METHOD, &_Py_ID(join), names); ADDOP_I(c, BUILD_LIST, 0); for (Py_ssize_t i = 0; i < asdl_seq_LEN(e->v.JoinedStr.values); i++) { @@ -5168,16 +5115,11 @@ compiler_sync_comprehension_generator(struct compiler *c, and then write to the element */ comprehension_ty gen; - basicblock *start, *anchor, *if_cleanup; Py_ssize_t i, n; - start = compiler_new_block(c); - if_cleanup = compiler_new_block(c); - anchor = compiler_new_block(c); - - if (start == NULL || if_cleanup == NULL || anchor == NULL) { - return 0; - } + NEW_JUMP_TARGET_LABEL(c, start); + NEW_JUMP_TARGET_LABEL(c, if_cleanup); + NEW_JUMP_TARGET_LABEL(c, anchor); gen = (comprehension_ty)asdl_seq_GET(generators, gen_index); @@ -5206,17 +5148,17 @@ compiler_sync_comprehension_generator(struct compiler *c, expr_ty elt = asdl_seq_GET(elts, 0); if (elt->kind != Starred_kind) { VISIT(c, expr, elt); - start = NULL; + start = NO_LABEL; } } - if (start) { + if (IS_LABEL(start)) { VISIT(c, expr, gen->iter); ADDOP(c, GET_ITER); } } - if (start) { + if (IS_LABEL(start)) { depth++; - compiler_use_next_block(c, start); + USE_LABEL(c, start); ADDOP_JUMP(c, FOR_ITER, anchor); } VISIT(c, expr, gen->target); @@ -5263,10 +5205,12 @@ compiler_sync_comprehension_generator(struct compiler *c, return 0; } } - compiler_use_next_block(c, if_cleanup); - if (start) { + + USE_LABEL(c, if_cleanup); + if (IS_LABEL(start)) { ADDOP_JUMP(c, JUMP, start); - compiler_use_next_block(c, anchor); + + USE_LABEL(c, anchor); } return 1; @@ -5279,15 +5223,10 @@ compiler_async_comprehension_generator(struct compiler *c, expr_ty elt, expr_ty val, int type) { comprehension_ty gen; - basicblock *start, *if_cleanup, *except; Py_ssize_t i, n; - start = compiler_new_block(c); - except = compiler_new_block(c); - if_cleanup = compiler_new_block(c); - - if (start == NULL || if_cleanup == NULL || except == NULL) { - return 0; - } + NEW_JUMP_TARGET_LABEL(c, start); + NEW_JUMP_TARGET_LABEL(c, except); + NEW_JUMP_TARGET_LABEL(c, if_cleanup); gen = (comprehension_ty)asdl_seq_GET(generators, gen_index); @@ -5302,10 +5241,10 @@ compiler_async_comprehension_generator(struct compiler *c, ADDOP(c, GET_AITER); } - compiler_use_next_block(c, start); + USE_LABEL(c, start); /* Runtime will push a block here, so we need to account for that */ if (!compiler_push_fblock(c, ASYNC_COMPREHENSION_GENERATOR, start, - NULL, NULL)) { + NO_LABEL, NULL)) { return 0; } @@ -5358,12 +5297,13 @@ compiler_async_comprehension_generator(struct compiler *c, return 0; } } - compiler_use_next_block(c, if_cleanup); + + USE_LABEL(c, if_cleanup); ADDOP_JUMP(c, JUMP, start); compiler_pop_fblock(c, ASYNC_COMPREHENSION_GENERATOR, start); - compiler_use_next_block(c, except); + USE_LABEL(c, except); //UNSET_LOC(c); ADDOP(c, END_ASYNC_FOR); @@ -5524,22 +5464,25 @@ compiler_visit_keyword(struct compiler *c, keyword_ty k) static int -compiler_with_except_finish(struct compiler *c, basicblock * cleanup) { +compiler_with_except_finish(struct compiler *c, jump_target_label cleanup) { UNSET_LOC(c); - basicblock *exit; - exit = compiler_new_block(c); - if (exit == NULL) - return 0; - ADDOP_JUMP(c, POP_JUMP_IF_TRUE, exit); + NEW_JUMP_TARGET_LABEL(c, suppress); + ADDOP_JUMP(c, POP_JUMP_IF_TRUE, suppress); ADDOP_I(c, RERAISE, 2); - compiler_use_next_block(c, cleanup); - POP_EXCEPT_AND_RERAISE(c); - compiler_use_next_block(c, exit); + + USE_LABEL(c, suppress); ADDOP(c, POP_TOP); /* exc_value */ ADDOP(c, POP_BLOCK); ADDOP(c, POP_EXCEPT); ADDOP(c, POP_TOP); ADDOP(c, POP_TOP); + NEW_JUMP_TARGET_LABEL(c, exit); + ADDOP_JUMP(c, JUMP, exit); + + USE_LABEL(c, cleanup); + POP_EXCEPT_AND_RERAISE(c); + + USE_LABEL(c, exit); return 1; } @@ -5570,7 +5513,6 @@ compiler_with_except_finish(struct compiler *c, basicblock * cleanup) { static int compiler_async_with(struct compiler *c, stmt_ty s, int pos) { - basicblock *block, *final, *exit, *cleanup; withitem_ty item = asdl_seq_GET(s->v.AsyncWith.items, pos); assert(s->kind == AsyncWith_kind); @@ -5580,12 +5522,10 @@ compiler_async_with(struct compiler *c, stmt_ty s, int pos) return compiler_error(c, "'async with' outside async function"); } - block = compiler_new_block(c); - final = compiler_new_block(c); - exit = compiler_new_block(c); - cleanup = compiler_new_block(c); - if (!block || !final || !exit || !cleanup) - return 0; + NEW_JUMP_TARGET_LABEL(c, block); + NEW_JUMP_TARGET_LABEL(c, final); + NEW_JUMP_TARGET_LABEL(c, exit); + NEW_JUMP_TARGET_LABEL(c, cleanup); /* Evaluate EXPR */ VISIT(c, expr, item->context_expr); @@ -5598,7 +5538,7 @@ compiler_async_with(struct compiler *c, stmt_ty s, int pos) ADDOP_JUMP(c, SETUP_WITH, final); /* SETUP_WITH pushes a finally block. */ - compiler_use_next_block(c, block); + USE_LABEL(c, block); if (!compiler_push_fblock(c, ASYNC_WITH, block, final, s)) { return 0; } @@ -5637,7 +5577,7 @@ compiler_async_with(struct compiler *c, stmt_ty s, int pos) ADDOP_JUMP(c, JUMP, exit); /* For exceptional outcome: */ - compiler_use_next_block(c, final); + USE_LABEL(c, final); ADDOP_JUMP(c, SETUP_CLEANUP, cleanup); ADDOP(c, PUSH_EXC_INFO); @@ -5647,7 +5587,7 @@ compiler_async_with(struct compiler *c, stmt_ty s, int pos) ADD_YIELD_FROM(c, 1); compiler_with_except_finish(c, cleanup); - compiler_use_next_block(c, exit); + USE_LABEL(c, exit); return 1; } @@ -5676,17 +5616,14 @@ compiler_async_with(struct compiler *c, stmt_ty s, int pos) static int compiler_with(struct compiler *c, stmt_ty s, int pos) { - basicblock *block, *final, *exit, *cleanup; withitem_ty item = asdl_seq_GET(s->v.With.items, pos); assert(s->kind == With_kind); - block = compiler_new_block(c); - final = compiler_new_block(c); - exit = compiler_new_block(c); - cleanup = compiler_new_block(c); - if (!block || !final || !exit || !cleanup) - return 0; + NEW_JUMP_TARGET_LABEL(c, block); + NEW_JUMP_TARGET_LABEL(c, final); + NEW_JUMP_TARGET_LABEL(c, exit); + NEW_JUMP_TARGET_LABEL(c, cleanup); /* Evaluate EXPR */ VISIT(c, expr, item->context_expr); @@ -5695,7 +5632,7 @@ compiler_with(struct compiler *c, stmt_ty s, int pos) ADDOP_JUMP(c, SETUP_WITH, final); /* SETUP_WITH pushes a finally block. */ - compiler_use_next_block(c, block); + USE_LABEL(c, block); if (!compiler_push_fblock(c, WITH, block, final, s)) { return 0; } @@ -5733,14 +5670,14 @@ compiler_with(struct compiler *c, stmt_ty s, int pos) ADDOP_JUMP(c, JUMP, exit); /* For exceptional outcome: */ - compiler_use_next_block(c, final); + USE_LABEL(c, final); ADDOP_JUMP(c, SETUP_CLEANUP, cleanup); ADDOP(c, PUSH_EXC_INFO); ADDOP(c, WITH_EXCEPT_START); compiler_with_except_finish(c, cleanup); - compiler_use_next_block(c, exit); + USE_LABEL(c, exit); return 1; } @@ -5834,23 +5771,18 @@ compiler_visit_expr1(struct compiler *c, expr_ty e) /* The following exprs can be assignment targets. */ case Attribute_kind: VISIT(c, expr, e->v.Attribute.value); + update_start_location_to_match_attr(c, e); switch (e->v.Attribute.ctx) { case Load: { - int old_lineno = c->u->u_lineno; - c->u->u_lineno = e->end_lineno; ADDOP_NAME(c, LOAD_ATTR, e->v.Attribute.attr, names); - c->u->u_lineno = old_lineno; break; } case Store: if (forbidden_name(c, e->v.Attribute.attr, e->v.Attribute.ctx)) { return 0; } - int old_lineno = c->u->u_lineno; - c->u->u_lineno = e->end_lineno; ADDOP_NAME(c, STORE_ATTR, e->v.Attribute.attr, names); - c->u->u_lineno = old_lineno; break; case Del: ADDOP_NAME(c, DELETE_ATTR, e->v.Attribute.attr, names); @@ -5872,7 +5804,14 @@ compiler_visit_expr1(struct compiler *c, expr_ty e) } break; case Slice_kind: - return compiler_slice(c, e); + { + int n = compiler_slice(c, e); + if (n == 0) { + return 0; + } + ADDOP_I(c, BUILD_SLICE, n); + break; + } case Name_kind: return compiler_nameop(c, e->v.Name.id, e->v.Name.ctx); /* child nodes of List and Tuple will have expr_context set */ @@ -5887,46 +5826,53 @@ compiler_visit_expr1(struct compiler *c, expr_ty e) static int compiler_visit_expr(struct compiler *c, expr_ty e) { - int old_lineno = c->u->u_lineno; - int old_end_lineno = c->u->u_end_lineno; - int old_col_offset = c->u->u_col_offset; - int old_end_col_offset = c->u->u_end_col_offset; + struct location old_loc = c->u->u_loc; SET_LOC(c, e); int res = compiler_visit_expr1(c, e); - c->u->u_lineno = old_lineno; - c->u->u_end_lineno = old_end_lineno; - c->u->u_col_offset = old_col_offset; - c->u->u_end_col_offset = old_end_col_offset; + c->u->u_loc = old_loc; return res; } +static bool +is_two_element_slice(expr_ty s) +{ + return s->kind == Slice_kind && + s->v.Slice.step == NULL; +} + static int compiler_augassign(struct compiler *c, stmt_ty s) { assert(s->kind == AugAssign_kind); expr_ty e = s->v.AugAssign.target; - int old_lineno = c->u->u_lineno; - int old_end_lineno = c->u->u_end_lineno; - int old_col_offset = c->u->u_col_offset; - int old_end_col_offset = c->u->u_end_col_offset; + struct location old_loc = c->u->u_loc; SET_LOC(c, e); switch (e->kind) { case Attribute_kind: VISIT(c, expr, e->v.Attribute.value); ADDOP_I(c, COPY, 1); - int old_lineno = c->u->u_lineno; - c->u->u_lineno = e->end_lineno; + update_start_location_to_match_attr(c, e); ADDOP_NAME(c, LOAD_ATTR, e->v.Attribute.attr, names); - c->u->u_lineno = old_lineno; break; case Subscript_kind: VISIT(c, expr, e->v.Subscript.value); - VISIT(c, expr, e->v.Subscript.slice); - ADDOP_I(c, COPY, 2); - ADDOP_I(c, COPY, 2); - ADDOP(c, BINARY_SUBSCR); + if (is_two_element_slice(e->v.Subscript.slice)) { + if (!compiler_slice(c, e->v.Subscript.slice)) { + return 0; + } + ADDOP_I(c, COPY, 3); + ADDOP_I(c, COPY, 3); + ADDOP_I(c, COPY, 3); + ADDOP(c, BINARY_SLICE); + } + else { + VISIT(c, expr, e->v.Subscript.slice); + ADDOP_I(c, COPY, 2); + ADDOP_I(c, COPY, 2); + ADDOP(c, BINARY_SUBSCR); + } break; case Name_kind: if (!compiler_nameop(c, e->v.Name.id, Load)) @@ -5939,10 +5885,7 @@ compiler_augassign(struct compiler *c, stmt_ty s) return 0; } - c->u->u_lineno = old_lineno; - c->u->u_end_lineno = old_end_lineno; - c->u->u_col_offset = old_col_offset; - c->u->u_end_col_offset = old_end_col_offset; + c->u->u_loc = old_loc; VISIT(c, expr, s->v.AugAssign.value); ADDOP_INPLACE(c, s->v.AugAssign.op); @@ -5951,14 +5894,22 @@ compiler_augassign(struct compiler *c, stmt_ty s) switch (e->kind) { case Attribute_kind: - c->u->u_lineno = e->end_lineno; + update_start_location_to_match_attr(c, e); ADDOP_I(c, SWAP, 2); ADDOP_NAME(c, STORE_ATTR, e->v.Attribute.attr, names); break; case Subscript_kind: - ADDOP_I(c, SWAP, 3); - ADDOP_I(c, SWAP, 2); - ADDOP(c, STORE_SUBSCR); + if (is_two_element_slice(e->v.Subscript.slice)) { + ADDOP_I(c, SWAP, 4); + ADDOP_I(c, SWAP, 3); + ADDOP_I(c, SWAP, 2); + ADDOP(c, STORE_SLICE); + } + else { + ADDOP_I(c, SWAP, 3); + ADDOP_I(c, SWAP, 2); + ADDOP(c, STORE_SUBSCR); + } break; case Name_kind: return compiler_nameop(c, e->v.Name.id, Store); @@ -6100,14 +6051,15 @@ compiler_error(struct compiler *c, const char *format, ...) if (msg == NULL) { return 0; } - PyObject *loc = PyErr_ProgramTextObject(c->c_filename, c->u->u_lineno); + PyObject *loc = PyErr_ProgramTextObject(c->c_filename, c->u->u_loc.lineno); if (loc == NULL) { Py_INCREF(Py_None); loc = Py_None; } + struct location u_loc = c->u->u_loc; PyObject *args = Py_BuildValue("O(OiiOii)", msg, c->c_filename, - c->u->u_lineno, c->u->u_col_offset + 1, loc, - c->u->u_end_lineno, c->u->u_end_col_offset + 1); + u_loc.lineno, u_loc.col_offset + 1, loc, + u_loc.end_lineno, u_loc.end_col_offset + 1); Py_DECREF(msg); if (args == NULL) { goto exit; @@ -6134,7 +6086,7 @@ compiler_warn(struct compiler *c, const char *format, ...) return 0; } if (PyErr_WarnExplicitObject(PyExc_SyntaxWarning, msg, c->c_filename, - c->u->u_lineno, NULL, NULL) < 0) + c->u->u_loc.lineno, NULL, NULL) < 0) { if (PyErr_ExceptionMatches(PyExc_SyntaxWarning)) { /* Replace the SyntaxWarning exception with a SyntaxError @@ -6165,18 +6117,34 @@ compiler_subscript(struct compiler *c, expr_ty e) } } - switch (ctx) { - case Load: op = BINARY_SUBSCR; break; - case Store: op = STORE_SUBSCR; break; - case Del: op = DELETE_SUBSCR; break; - } - assert(op); VISIT(c, expr, e->v.Subscript.value); - VISIT(c, expr, e->v.Subscript.slice); - ADDOP(c, op); + if (is_two_element_slice(e->v.Subscript.slice) && ctx != Del) { + if (!compiler_slice(c, e->v.Subscript.slice)) { + return 0; + } + if (ctx == Load) { + ADDOP(c, BINARY_SLICE); + } + else { + assert(ctx == Store); + ADDOP(c, STORE_SLICE); + } + } + else { + VISIT(c, expr, e->v.Subscript.slice); + switch (ctx) { + case Load: op = BINARY_SUBSCR; break; + case Store: op = STORE_SUBSCR; break; + case Del: op = DELETE_SUBSCR; break; + } + assert(op); + ADDOP(c, op); + } return 1; } +/* Returns the number of the values emitted, + * thus are needed to build the slice, or 0 if there is an error. */ static int compiler_slice(struct compiler *c, expr_ty s) { @@ -6202,8 +6170,7 @@ compiler_slice(struct compiler *c, expr_ty s) n++; VISIT(c, expr, s->v.Slice.step); } - ADDOP_I(c, BUILD_SLICE, n); - return 1; + return n; } @@ -6237,16 +6204,15 @@ ensure_fail_pop(struct compiler *c, pattern_context *pc, Py_ssize_t n) if (size <= pc->fail_pop_size) { return 1; } - Py_ssize_t needed = sizeof(basicblock*) * size; - basicblock **resized = PyObject_Realloc(pc->fail_pop, needed); + Py_ssize_t needed = sizeof(jump_target_label) * size; + jump_target_label *resized = PyObject_Realloc(pc->fail_pop, needed); if (resized == NULL) { PyErr_NoMemory(); return 0; } pc->fail_pop = resized; while (pc->fail_pop_size < size) { - basicblock *new_block; - RETURN_IF_FALSE(new_block = compiler_new_block(c)); + NEW_JUMP_TARGET_LABEL(c, new_block); pc->fail_pop[pc->fail_pop_size++] = new_block; } return 1; @@ -6273,15 +6239,15 @@ emit_and_reset_fail_pop(struct compiler *c, pattern_context *pc) return 1; } while (--pc->fail_pop_size) { - compiler_use_next_block(c, pc->fail_pop[pc->fail_pop_size]); - if (!compiler_addop(c, POP_TOP)) { + USE_LABEL(c, pc->fail_pop[pc->fail_pop_size]); + if (!cfg_builder_addop_noarg(CFG_BUILDER(c), POP_TOP, COMPILER_LOC(c))) { pc->fail_pop_size = 0; PyObject_Free(pc->fail_pop); pc->fail_pop = NULL; return 0; } } - compiler_use_next_block(c, pc->fail_pop[0]); + USE_LABEL(c, pc->fail_pop[0]); PyObject_Free(pc->fail_pop); pc->fail_pop = NULL; return 1; @@ -6683,8 +6649,7 @@ static int compiler_pattern_or(struct compiler *c, pattern_ty p, pattern_context *pc) { assert(p->kind == MatchOr_kind); - basicblock *end; - RETURN_IF_FALSE(end = compiler_new_block(c)); + NEW_JUMP_TARGET_LABEL(c, end); Py_ssize_t size = asdl_seq_LEN(p->v.MatchOr.patterns); assert(size > 1); // We're going to be messing with pc. Keep the original info handy: @@ -6708,7 +6673,8 @@ compiler_pattern_or(struct compiler *c, pattern_ty p, pattern_context *pc) pc->fail_pop = NULL; pc->fail_pop_size = 0; pc->on_top = 0; - if (!compiler_addop_i(c, COPY, 1) || !compiler_pattern(c, alt, pc)) { + if (!cfg_builder_addop_i(CFG_BUILDER(c), COPY, 1, COMPILER_LOC(c)) || + !compiler_pattern(c, alt, pc)) { goto error; } // Success! @@ -6771,7 +6737,7 @@ compiler_pattern_or(struct compiler *c, pattern_ty p, pattern_context *pc) } } assert(control); - if (!compiler_addop_j(c, JUMP, end) || + if (!cfg_builder_addop_j(CFG_BUILDER(c), JUMP, end, COMPILER_LOC(c)) || !emit_and_reset_fail_pop(c, pc)) { goto error; @@ -6783,10 +6749,11 @@ compiler_pattern_or(struct compiler *c, pattern_ty p, pattern_context *pc) // Need to NULL this for the PyObject_Free call in the error block. old_pc.fail_pop = NULL; // No match. Pop the remaining copy of the subject and fail: - if (!compiler_addop(c, POP_TOP) || !jump_to_fail_pop(c, pc, JUMP)) { + if (!cfg_builder_addop_noarg(CFG_BUILDER(c), POP_TOP, COMPILER_LOC(c)) || !jump_to_fail_pop(c, pc, JUMP)) { goto error; } - compiler_use_next_block(c, end); + + USE_LABEL(c, end); Py_ssize_t nstores = PyList_GET_SIZE(control); // There's a bunch of stuff on the stack between where the new stores // are and where they need to be: @@ -6945,8 +6912,7 @@ static int compiler_match_inner(struct compiler *c, stmt_ty s, pattern_context *pc) { VISIT(c, expr, s->v.Match.subject); - basicblock *end; - RETURN_IF_FALSE(end = compiler_new_block(c)); + NEW_JUMP_TARGET_LABEL(c, end); Py_ssize_t cases = asdl_seq_LEN(s->v.Match.cases); assert(cases > 0); match_case_ty m = asdl_seq_GET(s->v.Match.cases, cases - 1); @@ -7015,7 +6981,7 @@ compiler_match_inner(struct compiler *c, stmt_ty s, pattern_context *pc) } VISIT_SEQ(c, stmt, m->body); } - compiler_use_next_block(c, end); + USE_LABEL(c, end); return 1; } @@ -7032,36 +6998,25 @@ compiler_match(struct compiler *c, stmt_ty s) #undef WILDCARD_CHECK #undef WILDCARD_STAR_CHECK -/* End of the compiler section, beginning of the assembler section */ - -/* do depth-first search of basic block graph, starting with block. - post records the block indices in post-order. - XXX must handle implicit jumps from one block to next -*/ +/* End of the compiler section, beginning of the assembler section */ struct assembler { PyObject *a_bytecode; /* bytes containing bytecode */ - PyObject *a_except_table; /* bytes containing exception table */ - basicblock *a_entry; int a_offset; /* offset into bytecode */ + PyObject *a_except_table; /* bytes containing exception table */ int a_except_table_off; /* offset into exception table */ - int a_prevlineno; /* lineno of last emitted line in line table */ - int a_prev_end_lineno; /* end_lineno of last emitted line in line table */ - int a_lineno; /* lineno of last emitted instruction */ - int a_end_lineno; /* end_lineno of last emitted instruction */ - int a_lineno_start; /* bytecode start offset of current lineno */ - int a_end_lineno_start; /* bytecode start offset of current end_lineno */ /* Location Info */ + int a_lineno; /* lineno of last emitted instruction */ PyObject* a_linetable; /* bytes containing location info */ int a_location_off; /* offset of last written location info frame */ }; static basicblock** -make_cfg_traversal_stack(basicblock *entry) { +make_cfg_traversal_stack(basicblock *entryblock) { int nblocks = 0; - for (basicblock *b = entry; b != NULL; b = b->b_next) { + for (basicblock *b = entryblock; b != NULL; b = b->b_next) { b->b_visited = 0; nblocks++; } @@ -7087,22 +7042,22 @@ stackdepth_push(basicblock ***sp, basicblock *b, int depth) * cycles in the flow graph have no net effect on the stack depth. */ static int -stackdepth(struct compiler *c, basicblock *entry) +stackdepth(basicblock *entryblock, int code_flags) { - for (basicblock *b = entry; b != NULL; b = b->b_next) { + for (basicblock *b = entryblock; b != NULL; b = b->b_next) { b->b_startdepth = INT_MIN; } - basicblock **stack = make_cfg_traversal_stack(entry); + basicblock **stack = make_cfg_traversal_stack(entryblock); if (!stack) { return -1; } int maxdepth = 0; basicblock **sp = stack; - if (c->u->u_ste->ste_generator || c->u->u_ste->ste_coroutine) { - stackdepth_push(&sp, entry, 1); + if (code_flags & (CO_GENERATOR | CO_COROUTINE | CO_ASYNC_GENERATOR)) { + stackdepth_push(&sp, entryblock, 1); } else { - stackdepth_push(&sp, entry, 0); + stackdepth_push(&sp, entryblock, 0); } while (sp != stack) { @@ -7120,11 +7075,12 @@ stackdepth(struct compiler *c, basicblock *entry) return -1; } int new_depth = depth + effect; + assert(new_depth >= 0); /* invalid code or bug in stackdepth() */ if (new_depth > maxdepth) { maxdepth = new_depth; } assert(depth >= 0); /* invalid code or bug in stackdepth() */ - if (is_jump(instr) || is_block_push(instr)) { + if (HAS_TARGET(instr->i_opcode)) { effect = stack_effect(instr->i_opcode, instr->i_oparg, 1); assert(effect != PY_INVALID_STACK_EFFECT); int target_depth = depth + effect; @@ -7136,11 +7092,8 @@ stackdepth(struct compiler *c, basicblock *entry) } depth = new_depth; assert(!IS_ASSEMBLER_OPCODE(instr->i_opcode)); - if (instr->i_opcode == JUMP_NO_INTERRUPT || - instr->i_opcode == JUMP || - instr->i_opcode == RETURN_VALUE || - instr->i_opcode == RAISE_VARARGS || - instr->i_opcode == RERAISE) + if (IS_UNCONDITIONAL_JUMP_OPCODE(instr->i_opcode) || + IS_SCOPE_EXIT_OPCODE(instr->i_opcode)) { /* remaining code is dead */ next = NULL; @@ -7151,7 +7104,7 @@ stackdepth(struct compiler *c, basicblock *entry) } } if (next != NULL) { - assert(b->b_nofallthrough == 0); + assert(BB_HAS_FALLTHROUGH(b)); stackdepth_push(&sp, next, depth); } } @@ -7160,11 +7113,10 @@ stackdepth(struct compiler *c, basicblock *entry) } static int -assemble_init(struct assembler *a, int nblocks, int firstlineno) +assemble_init(struct assembler *a, int firstlineno) { memset(a, 0, sizeof(struct assembler)); - a->a_prevlineno = a->a_lineno = firstlineno; - a->a_prev_end_lineno = a->a_end_lineno = firstlineno; + a->a_lineno = firstlineno; a->a_linetable = NULL; a->a_location_off = 0; a->a_except_table = NULL; @@ -7180,10 +7132,6 @@ assemble_init(struct assembler *a, int nblocks, int firstlineno) if (a->a_except_table == NULL) { goto error; } - if ((size_t)nblocks > SIZE_MAX / sizeof(basicblock *)) { - PyErr_NoMemory(); - goto error; - } return 1; error: Py_XDECREF(a->a_bytecode); @@ -7203,10 +7151,8 @@ assemble_free(struct assembler *a) static int blocksize(basicblock *b) { - int i; int size = 0; - - for (i = 0; i < b->b_iused; i++) { + for (int i = 0; i < b->b_iused; i++) { size += instr_size(&b->b_instr[i]); } return size; @@ -7259,8 +7205,8 @@ copy_except_stack(ExceptStack *stack) { } static int -label_exception_targets(basicblock *entry) { - basicblock **todo_stack = make_cfg_traversal_stack(entry); +label_exception_targets(basicblock *entryblock) { + basicblock **todo_stack = make_cfg_traversal_stack(entryblock); if (todo_stack == NULL) { return -1; } @@ -7271,9 +7217,9 @@ label_exception_targets(basicblock *entry) { return -1; } except_stack->depth = 0; - todo_stack[0] = entry; - entry->b_visited = 1; - entry->b_exceptstack = except_stack; + todo_stack[0] = entryblock; + entryblock->b_visited = 1; + entryblock->b_exceptstack = except_stack; basicblock **todo = &todo_stack[1]; basicblock *handler = NULL; while (todo > todo_stack) { @@ -7306,7 +7252,7 @@ label_exception_targets(basicblock *entry) { instr->i_except = handler; assert(i == b->b_iused -1); if (!instr->i_target->b_visited) { - if (b->b_nofallthrough == 0) { + if (BB_HAS_FALLTHROUGH(b)) { ExceptStack *copy = copy_except_stack(except_stack); if (copy == NULL) { goto error; @@ -7326,7 +7272,7 @@ label_exception_targets(basicblock *entry) { instr->i_except = handler; } } - if (b->b_nofallthrough == 0 && !b->b_next->b_visited) { + if (BB_HAS_FALLTHROUGH(b) && !b->b_next->b_visited) { assert(except_stack != NULL); b->b_next->b_exceptstack = except_stack; todo[0] = b->b_next; @@ -7338,7 +7284,7 @@ label_exception_targets(basicblock *entry) { } } #ifdef Py_DEBUG - for (basicblock *b = entry; b != NULL; b = b->b_next) { + for (basicblock *b = entryblock; b != NULL; b = b->b_next) { assert(b->b_exceptstack == NULL); } #endif @@ -7350,10 +7296,171 @@ label_exception_targets(basicblock *entry) { return -1; } +static int +mark_warm(basicblock *entryblock) { + basicblock **stack = make_cfg_traversal_stack(entryblock); + if (stack == NULL) { + return -1; + } + basicblock **sp = stack; + + *sp++ = entryblock; + entryblock->b_visited = 1; + while (sp > stack) { + basicblock *b = *(--sp); + assert(!b->b_except_predecessors); + b->b_warm = 1; + basicblock *next = b->b_next; + if (next && BB_HAS_FALLTHROUGH(b) && !next->b_visited) { + *sp++ = next; + next->b_visited = 1; + } + for (int i=0; i < b->b_iused; i++) { + struct instr *instr = &b->b_instr[i]; + if (is_jump(instr) && !instr->i_target->b_visited) { + *sp++ = instr->i_target; + instr->i_target->b_visited = 1; + } + } + } + PyMem_Free(stack); + return 0; +} + +static int +mark_cold(basicblock *entryblock) { + for (basicblock *b = entryblock; b != NULL; b = b->b_next) { + assert(!b->b_cold && !b->b_warm); + } + if (mark_warm(entryblock) < 0) { + return -1; + } + + basicblock **stack = make_cfg_traversal_stack(entryblock); + if (stack == NULL) { + return -1; + } + + basicblock **sp = stack; + for (basicblock *b = entryblock; b != NULL; b = b->b_next) { + if (b->b_except_predecessors) { + assert(b->b_except_predecessors == b->b_predecessors); + assert(!b->b_warm); + *sp++ = b; + b->b_visited = 1; + } + } + + while (sp > stack) { + basicblock *b = *(--sp); + b->b_cold = 1; + basicblock *next = b->b_next; + if (next && BB_HAS_FALLTHROUGH(b)) { + if (!next->b_warm && !next->b_visited) { + *sp++ = next; + next->b_visited = 1; + } + } + for (int i = 0; i < b->b_iused; i++) { + struct instr *instr = &b->b_instr[i]; + if (is_jump(instr)) { + assert(i == b->b_iused - 1); + basicblock *target = b->b_instr[i].i_target; + if (!target->b_warm && !target->b_visited) { + *sp++ = target; + target->b_visited = 1; + } + } + } + } + PyMem_Free(stack); + return 0; +} + +static int +remove_redundant_jumps(cfg_builder *g); + +static int +push_cold_blocks_to_end(cfg_builder *g, int code_flags) { + basicblock *entryblock = g->g_entryblock; + if (entryblock->b_next == NULL) { + /* single basicblock, no need to reorder */ + return 0; + } + if (mark_cold(entryblock) < 0) { + return -1; + } + + /* If we have a cold block with fallthrough to a warm block, add */ + /* an explicit jump instead of fallthrough */ + for (basicblock *b = entryblock; b != NULL; b = b->b_next) { + if (b->b_cold && BB_HAS_FALLTHROUGH(b) && b->b_next && b->b_next->b_warm) { + basicblock *explicit_jump = cfg_builder_new_block(g); + if (explicit_jump == NULL) { + return -1; + } + basicblock_addop(explicit_jump, JUMP, b->b_next->b_label, NO_LOCATION); + explicit_jump->b_cold = 1; + explicit_jump->b_next = b->b_next; + b->b_next = explicit_jump; + + /* set target */ + struct instr *last = basicblock_last_instr(explicit_jump); + last->i_target = explicit_jump->b_next; + } + } + + assert(!entryblock->b_cold); /* First block can't be cold */ + basicblock *cold_blocks = NULL; + basicblock *cold_blocks_tail = NULL; + + basicblock *b = entryblock; + while(b->b_next) { + assert(!b->b_cold); + while (b->b_next && !b->b_next->b_cold) { + b = b->b_next; + } + if (b->b_next == NULL) { + /* no more cold blocks */ + break; + } + + /* b->b_next is the beginning of a cold streak */ + assert(!b->b_cold && b->b_next->b_cold); + + basicblock *b_end = b->b_next; + while (b_end->b_next && b_end->b_next->b_cold) { + b_end = b_end->b_next; + } + + /* b_end is the end of the cold streak */ + assert(b_end && b_end->b_cold); + assert(b_end->b_next == NULL || !b_end->b_next->b_cold); + + if (cold_blocks == NULL) { + cold_blocks = b->b_next; + } + else { + cold_blocks_tail->b_next = b->b_next; + } + cold_blocks_tail = b_end; + b->b_next = b_end->b_next; + b_end->b_next = NULL; + } + assert(b != NULL && b->b_next == NULL); + b->b_next = cold_blocks; + + if (cold_blocks != NULL) { + if (remove_redundant_jumps(g) < 0) { + return -1; + } + } + return 0; +} static void -convert_exception_handlers_to_nops(basicblock *entry) { - for (basicblock *b = entry; b != NULL; b = b->b_next) { +convert_exception_handlers_to_nops(basicblock *entryblock) { + for (basicblock *b = entryblock; b != NULL; b = b->b_next) { for (int i = 0; i < b->b_iused; i++) { struct instr *instr = &b->b_instr[i]; if (is_block_push(instr) || instr->i_opcode == POP_BLOCK) { @@ -7423,13 +7530,13 @@ assemble_emit_exception_table_entry(struct assembler *a, int start, int end, bas } static int -assemble_exception_table(struct assembler *a) +assemble_exception_table(struct assembler *a, basicblock *entryblock) { basicblock *b; int ioffset = 0; basicblock *handler = NULL; int start = -1; - for (b = a->a_entry; b != NULL; b = b->b_next) { + for (b = entryblock; b != NULL; b = b->b_next) { ioffset = b->b_offset; for (int i = 0; i < b->b_iused; i++) { struct instr *instr = &b->b_instr[i]; @@ -7497,6 +7604,7 @@ write_location_info_short_form(struct assembler* a, int length, int column, int int column_low_bits = column & 7; int column_group = column >> 3; assert(column < 80); + assert(end_column >= column); assert(end_column - column < 16); write_location_first_byte(a, PY_CODE_LOCATION_INFO_SHORT0 + column_group, length); write_location_byte(a, (column_low_bits << 4) | (end_column - column)); @@ -7519,11 +7627,11 @@ write_location_info_long_form(struct assembler* a, struct instr* i, int length) { assert(length > 0 && length <= 8); write_location_first_byte(a, PY_CODE_LOCATION_INFO_LONG, length); - write_location_signed_varint(a, i->i_lineno - a->a_lineno); - assert(i->i_end_lineno >= i->i_lineno); - write_location_varint(a, i->i_end_lineno - i->i_lineno); - write_location_varint(a, i->i_col_offset+1); - write_location_varint(a, i->i_end_col_offset+1); + write_location_signed_varint(a, i->i_loc.lineno - a->a_lineno); + assert(i->i_loc.end_lineno >= i->i_loc.lineno); + write_location_varint(a, i->i_loc.end_lineno - i->i_loc.lineno); + write_location_varint(a, i->i_loc.col_offset + 1); + write_location_varint(a, i->i_loc.end_col_offset + 1); } static void @@ -7551,35 +7659,35 @@ write_location_info_entry(struct assembler* a, struct instr* i, int isize) return 0; } } - if (i->i_lineno < 0) { + if (i->i_loc.lineno < 0) { write_location_info_none(a, isize); return 1; } - int line_delta = i->i_lineno - a->a_lineno; - int column = i->i_col_offset; - int end_column = i->i_end_col_offset; + int line_delta = i->i_loc.lineno - a->a_lineno; + int column = i->i_loc.col_offset; + int end_column = i->i_loc.end_col_offset; assert(column >= -1); assert(end_column >= -1); if (column < 0 || end_column < 0) { - if (i->i_end_lineno == i->i_lineno || i->i_end_lineno == -1) { + if (i->i_loc.end_lineno == i->i_loc.lineno || i->i_loc.end_lineno == -1) { write_location_info_no_column(a, isize, line_delta); - a->a_lineno = i->i_lineno; + a->a_lineno = i->i_loc.lineno; return 1; } } - else if (i->i_end_lineno == i->i_lineno) { - if (line_delta == 0 && column < 80 && end_column - column < 16) { + else if (i->i_loc.end_lineno == i->i_loc.lineno) { + if (line_delta == 0 && column < 80 && end_column - column < 16 && end_column >= column) { write_location_info_short_form(a, isize, column, end_column); return 1; } if (line_delta >= 0 && line_delta < 3 && column < 128 && end_column < 128) { write_location_info_oneline_form(a, isize, line_delta, column, end_column); - a->a_lineno = i->i_lineno; + a->a_lineno = i->i_loc.lineno; return 1; } } write_location_info_long_form(a, i, isize); - a->a_lineno = i->i_lineno; + a->a_lineno = i->i_loc.lineno; return 1; } @@ -7620,85 +7728,111 @@ assemble_emit(struct assembler *a, struct instr *i) return 1; } -static void -normalize_jumps(struct assembler *a) +static int +normalize_jumps_in_block(cfg_builder *g, basicblock *b) { + struct instr *last = basicblock_last_instr(b); + if (last == NULL || !is_jump(last)) { + return 0; + } + assert(!IS_ASSEMBLER_OPCODE(last->i_opcode)); + bool is_forward = last->i_target->b_visited == 0; + switch(last->i_opcode) { + case JUMP: + last->i_opcode = is_forward ? JUMP_FORWARD : JUMP_BACKWARD; + return 0; + case JUMP_NO_INTERRUPT: + last->i_opcode = is_forward ? + JUMP_FORWARD : JUMP_BACKWARD_NO_INTERRUPT; + return 0; + } + int reversed_opcode = 0; + switch(last->i_opcode) { + case POP_JUMP_IF_NOT_NONE: + reversed_opcode = POP_JUMP_IF_NONE; + break; + case POP_JUMP_IF_NONE: + reversed_opcode = POP_JUMP_IF_NOT_NONE; + break; + case POP_JUMP_IF_FALSE: + reversed_opcode = POP_JUMP_IF_TRUE; + break; + case POP_JUMP_IF_TRUE: + reversed_opcode = POP_JUMP_IF_FALSE; + break; + case JUMP_IF_TRUE_OR_POP: + case JUMP_IF_FALSE_OR_POP: + if (!is_forward) { + /* As far as we can tell, the compiler never emits + * these jumps with a backwards target. If/when this + * exception is raised, we have found a use case for + * a backwards version of this jump (or to replace + * it with the sequence (COPY 1, POP_JUMP_IF_T/F, POP) + */ + PyErr_Format(PyExc_SystemError, + "unexpected %s jumping backwards", + last->i_opcode == JUMP_IF_TRUE_OR_POP ? + "JUMP_IF_TRUE_OR_POP" : "JUMP_IF_FALSE_OR_POP"); + } + return 0; + } + if (is_forward) { + return 0; + } + + /* transform 'conditional jump T' to + * 'reversed_jump b_next' followed by 'jump_backwards T' + */ + + basicblock *target = last->i_target; + basicblock *backwards_jump = cfg_builder_new_block(g); + if (backwards_jump == NULL) { + return -1; + } + basicblock_addop(backwards_jump, JUMP, target->b_label, NO_LOCATION); + backwards_jump->b_instr[0].i_target = target; + last->i_opcode = reversed_opcode; + last->i_target = b->b_next; + + backwards_jump->b_cold = b->b_cold; + backwards_jump->b_next = b->b_next; + b->b_next = backwards_jump; + return 0; +} + +static int +normalize_jumps(cfg_builder *g) { - for (basicblock *b = a->a_entry; b != NULL; b = b->b_next) { + basicblock *entryblock = g->g_entryblock; + for (basicblock *b = entryblock; b != NULL; b = b->b_next) { b->b_visited = 0; } - for (basicblock *b = a->a_entry; b != NULL; b = b->b_next) { + for (basicblock *b = entryblock; b != NULL; b = b->b_next) { b->b_visited = 1; - if (b->b_iused == 0) { - continue; - } - struct instr *last = &b->b_instr[b->b_iused-1]; - assert(!IS_ASSEMBLER_OPCODE(last->i_opcode)); - if (is_jump(last)) { - bool is_forward = last->i_target->b_visited == 0; - switch(last->i_opcode) { - case JUMP: - last->i_opcode = is_forward ? JUMP_FORWARD : JUMP_BACKWARD; - break; - case JUMP_NO_INTERRUPT: - last->i_opcode = is_forward ? - JUMP_FORWARD : JUMP_BACKWARD_NO_INTERRUPT; - break; - case POP_JUMP_IF_NOT_NONE: - last->i_opcode = is_forward ? - POP_JUMP_FORWARD_IF_NOT_NONE : POP_JUMP_BACKWARD_IF_NOT_NONE; - break; - case POP_JUMP_IF_NONE: - last->i_opcode = is_forward ? - POP_JUMP_FORWARD_IF_NONE : POP_JUMP_BACKWARD_IF_NONE; - break; - case POP_JUMP_IF_FALSE: - last->i_opcode = is_forward ? - POP_JUMP_FORWARD_IF_FALSE : POP_JUMP_BACKWARD_IF_FALSE; - break; - case POP_JUMP_IF_TRUE: - last->i_opcode = is_forward ? - POP_JUMP_FORWARD_IF_TRUE : POP_JUMP_BACKWARD_IF_TRUE; - break; - case JUMP_IF_TRUE_OR_POP: - case JUMP_IF_FALSE_OR_POP: - if (!is_forward) { - /* As far as we can tell, the compiler never emits - * these jumps with a backwards target. If/when this - * exception is raised, we have found a use case for - * a backwards version of this jump (or to replace - * it with the sequence (COPY 1, POP_JUMP_IF_T/F, POP) - */ - PyErr_Format(PyExc_SystemError, - "unexpected %s jumping backwards", - last->i_opcode == JUMP_IF_TRUE_OR_POP ? - "JUMP_IF_TRUE_OR_POP" : "JUMP_IF_FALSE_OR_POP"); - } - break; - } + if (normalize_jumps_in_block(g, b) < 0) { + return -1; } } + return 0; } static void -assemble_jump_offsets(struct assembler *a, struct compiler *c) +assemble_jump_offsets(basicblock *entryblock) { - basicblock *b; int bsize, totsize, extended_arg_recompile; - int i; /* Compute the size of each block and fixup jump args. Replace block pointer with position in bytecode. */ do { totsize = 0; - for (basicblock *b = a->a_entry; b != NULL; b = b->b_next) { + for (basicblock *b = entryblock; b != NULL; b = b->b_next) { bsize = blocksize(b); b->b_offset = totsize; totsize += bsize; } extended_arg_recompile = 0; - for (b = c->u->u_blocks; b != NULL; b = b->b_list) { + for (basicblock *b = entryblock; b != NULL; b = b->b_next) { bsize = b->b_offset; - for (i = 0; i < b->b_iused; i++) { + for (int i = 0; i < b->b_iused; i++) { struct instr *instr = &b->b_instr[i]; int isize = instr_size(instr); /* Relative jumps are computed relative to @@ -7745,6 +7879,109 @@ assemble_jump_offsets(struct assembler *a, struct compiler *c) } while (extended_arg_recompile); } + +// Ensure each basicblock is only put onto the stack once. +#define MAYBE_PUSH(B) do { \ + if ((B)->b_visited == 0) { \ + *(*stack_top)++ = (B); \ + (B)->b_visited = 1; \ + } \ + } while (0) + +static void +scan_block_for_local(int target, basicblock *b, bool unsafe_to_start, + basicblock ***stack_top) +{ + bool unsafe = unsafe_to_start; + for (int i = 0; i < b->b_iused; i++) { + struct instr *instr = &b->b_instr[i]; + assert(instr->i_opcode != EXTENDED_ARG); + assert(instr->i_opcode != EXTENDED_ARG_QUICK); + assert(instr->i_opcode != LOAD_FAST__LOAD_FAST); + assert(instr->i_opcode != STORE_FAST__LOAD_FAST); + assert(instr->i_opcode != LOAD_CONST__LOAD_FAST); + assert(instr->i_opcode != STORE_FAST__STORE_FAST); + assert(instr->i_opcode != LOAD_FAST__LOAD_CONST); + if (unsafe && instr->i_except != NULL) { + MAYBE_PUSH(instr->i_except); + } + if (instr->i_oparg != target) { + continue; + } + switch (instr->i_opcode) { + case LOAD_FAST_CHECK: + // if this doesn't raise, then var is defined + unsafe = false; + break; + case LOAD_FAST: + if (unsafe) { + instr->i_opcode = LOAD_FAST_CHECK; + } + unsafe = false; + break; + case STORE_FAST: + unsafe = false; + break; + case DELETE_FAST: + unsafe = true; + break; + } + } + if (unsafe) { + // unsafe at end of this block, + // so unsafe at start of next blocks + if (b->b_next && BB_HAS_FALLTHROUGH(b)) { + MAYBE_PUSH(b->b_next); + } + struct instr *last = basicblock_last_instr(b); + if (last != NULL) { + if (is_jump(last)) { + assert(last->i_target != NULL); + MAYBE_PUSH(last->i_target); + } + } + } +} +#undef MAYBE_PUSH + +static int +add_checks_for_loads_of_unknown_variables(basicblock *entryblock, + struct compiler *c) +{ + basicblock **stack = make_cfg_traversal_stack(entryblock); + if (stack == NULL) { + return -1; + } + Py_ssize_t nparams = PyList_GET_SIZE(c->u->u_ste->ste_varnames); + int nlocals = (int)PyDict_GET_SIZE(c->u->u_varnames); + for (int target = 0; target < nlocals; target++) { + for (basicblock *b = entryblock; b != NULL; b = b->b_next) { + b->b_visited = 0; + } + basicblock **stack_top = stack; + + // First pass: find the relevant DFS starting points: + // the places where "being uninitialized" originates, + // which are the entry block and any DELETE_FAST statements. + if (target >= nparams) { + // only non-parameter locals start out uninitialized. + *(stack_top++) = entryblock; + entryblock->b_visited = 1; + } + for (basicblock *b = entryblock; b != NULL; b = b->b_next) { + scan_block_for_local(target, b, false, &stack_top); + } + + // Second pass: Depth-first search to propagate uncertainty + while (stack_top > stack) { + basicblock *b = *--stack_top; + scan_block_for_local(target, b, true, &stack_top); + } + } + PyMem_Free(stack); + return 0; +} + static PyObject * dict_keys_inorder(PyObject *dict, Py_ssize_t offset) { @@ -7776,7 +8013,7 @@ consts_dict_keys_inorder(PyObject *dict) while (PyDict_Next(dict, &pos, &k, &v)) { i = PyLong_AS_LONG(v); /* The keys of the dictionary can be tuples wrapping a constant. - * (see compiler_add_o and _PyCode_ConstantKey). In that case + * (see dict_add_o and _PyCode_ConstantKey). In that case * the object we want is always second. */ if (PyTuple_CheckExact(k)) { k = PyTuple_GET_ITEM(k, 1); @@ -7825,15 +8062,16 @@ compute_code_flags(struct compiler *c) // Merge *obj* with constant cache. // Unlike merge_consts_recursive(), this function doesn't work recursively. static int -merge_const_one(struct compiler *c, PyObject **obj) +merge_const_one(PyObject *const_cache, PyObject **obj) { + PyDict_CheckExact(const_cache); PyObject *key = _PyCode_ConstantKey(*obj); if (key == NULL) { return 0; } // t is borrowed reference - PyObject *t = PyDict_SetDefault(c->c_const_cache, key, key); + PyObject *t = PyDict_SetDefault(const_cache, key, key); Py_DECREF(key); if (t == NULL) { return 0; @@ -7904,7 +8142,7 @@ compute_localsplus_info(struct compiler *c, int nlocalsplus, static PyCodeObject * makecode(struct compiler *c, struct assembler *a, PyObject *constslist, - int maxdepth, int nlocalsplus) + int maxdepth, int nlocalsplus, int code_flags) { PyCodeObject *co = NULL; PyObject *names = NULL; @@ -7916,12 +8154,7 @@ makecode(struct compiler *c, struct assembler *a, PyObject *constslist, if (!names) { goto error; } - if (!merge_const_one(c, &names)) { - goto error; - } - - int flags = compute_code_flags(c); - if (flags < 0) { + if (!merge_const_one(c->c_const_cache, &names)) { goto error; } @@ -7929,7 +8162,7 @@ makecode(struct compiler *c, struct assembler *a, PyObject *constslist, if (consts == NULL) { goto error; } - if (!merge_const_one(c, &consts)) { + if (!merge_const_one(c->c_const_cache, &consts)) { goto error; } @@ -7955,7 +8188,7 @@ makecode(struct compiler *c, struct assembler *a, PyObject *constslist, .filename = c->c_filename, .name = c->u->u_name, .qualname = c->u->u_qualname ? c->u->u_qualname : c->u->u_name, - .flags = flags, + .flags = code_flags, .code = a->a_bytecode, .firstlineno = c->u->u_firstlineno, @@ -7980,7 +8213,7 @@ makecode(struct compiler *c, struct assembler *a, PyObject *constslist, goto error; } - if (!merge_const_one(c, &localsplusnames)) { + if (!merge_const_one(c->c_const_cache, &localsplusnames)) { goto error; } con.localsplusnames = localsplusnames; @@ -8013,16 +8246,20 @@ dump_instr(struct instr *i) if (HAS_ARG(i->i_opcode)) { sprintf(arg, "arg: %d ", i->i_oparg); } + if (HAS_TARGET(i->i_opcode)) { + sprintf(arg, "target: %p [%d] ", i->i_target, i->i_oparg); + } fprintf(stderr, "line: %d, opcode: %d %s%s%s\n", - i->i_lineno, i->i_opcode, arg, jabs, jrel); + i->i_loc.lineno, i->i_opcode, arg, jabs, jrel); } static void dump_basicblock(const basicblock *b) { - const char *b_return = b->b_return ? "return " : ""; - fprintf(stderr, "used: %d, depth: %d, offset: %d %s\n", - b->b_iused, b->b_startdepth, b->b_offset, b_return); + const char *b_return = basicblock_returns(b) ? "return " : ""; + fprintf(stderr, "%d: [%d %d %d %p] used: %d, depth: %d, offset: %d %s\n", + b->b_label, b->b_cold, b->b_warm, BB_NO_FALLTHROUGH(b), b, b->b_iused, + b->b_startdepth, b->b_offset, b_return); if (b->b_instr) { int i; for (i = 0; i < b->b_iused; i++) { @@ -8035,20 +8272,17 @@ dump_basicblock(const basicblock *b) static int -normalize_basic_block(basicblock *bb); +calculate_jump_targets(basicblock *entryblock); static int -optimize_cfg(struct compiler *c, struct assembler *a, PyObject *consts); +optimize_cfg(cfg_builder *g, PyObject *consts, PyObject *const_cache); static int -trim_unused_consts(struct assembler *a, PyObject *consts); +trim_unused_consts(basicblock *entryblock, PyObject *consts); /* Duplicates exit BBs, so that line numbers can be propagated to them */ static int -duplicate_exits_without_lineno(struct compiler *c); - -static int -extend_block(basicblock *bb); +duplicate_exits_without_lineno(cfg_builder *g); static int * build_cellfixedoffsets(struct compiler *c) @@ -8085,10 +8319,10 @@ build_cellfixedoffsets(struct compiler *c) static inline int insert_instruction(basicblock *block, int pos, struct instr *instr) { - if (compiler_next_instr(block) < 0) { + if (basicblock_next_instr(block) < 0) { return -1; } - for (int i = block->b_iused-1; i > pos; i--) { + for (int i = block->b_iused - 1; i > pos; i--) { block->b_instr[i] = block->b_instr[i-1]; } block->b_instr[pos] = *instr; @@ -8097,24 +8331,16 @@ insert_instruction(basicblock *block, int pos, struct instr *instr) { static int insert_prefix_instructions(struct compiler *c, basicblock *entryblock, - int *fixed, int nfreevars) + int *fixed, int nfreevars, int code_flags) { - - int flags = compute_code_flags(c); - if (flags < 0) { - return -1; - } assert(c->u->u_firstlineno > 0); /* Add the generator prefix instructions. */ - if (flags & (CO_GENERATOR | CO_COROUTINE | CO_ASYNC_GENERATOR)) { + if (code_flags & (CO_GENERATOR | CO_COROUTINE | CO_ASYNC_GENERATOR)) { struct instr make_gen = { .i_opcode = RETURN_GENERATOR, .i_oparg = 0, - .i_lineno = c->u->u_firstlineno, - .i_col_offset = -1, - .i_end_lineno = c->u->u_firstlineno, - .i_end_col_offset = -1, + .i_loc = LOCATION(c->u->u_firstlineno, c->u->u_firstlineno, -1, -1), .i_target = NULL, }; if (insert_instruction(entryblock, 0, &make_gen) < 0) { @@ -8123,10 +8349,7 @@ insert_prefix_instructions(struct compiler *c, basicblock *entryblock, struct instr pop_top = { .i_opcode = POP_TOP, .i_oparg = 0, - .i_lineno = -1, - .i_col_offset = -1, - .i_end_lineno = -1, - .i_end_col_offset = -1, + .i_loc = NO_LOCATION, .i_target = NULL, }; if (insert_instruction(entryblock, 1, &pop_top) < 0) { @@ -8158,10 +8381,7 @@ insert_prefix_instructions(struct compiler *c, basicblock *entryblock, .i_opcode = MAKE_CELL, // This will get fixed in offset_derefs(). .i_oparg = oldindex, - .i_lineno = -1, - .i_col_offset = -1, - .i_end_lineno = -1, - .i_end_col_offset = -1, + .i_loc = NO_LOCATION, .i_target = NULL, }; if (insert_instruction(entryblock, ncellsused, &make_cell) < 0) { @@ -8176,10 +8396,7 @@ insert_prefix_instructions(struct compiler *c, basicblock *entryblock, struct instr copy_frees = { .i_opcode = COPY_FREE_VARS, .i_oparg = nfreevars, - .i_lineno = -1, - .i_col_offset = -1, - .i_end_lineno = -1, - .i_end_col_offset = -1, + .i_loc = NO_LOCATION, .i_target = NULL, }; if (insert_instruction(entryblock, 0, &copy_frees) < 0) { @@ -8196,25 +8413,25 @@ insert_prefix_instructions(struct compiler *c, basicblock *entryblock, * The resulting line number may not be correct according to PEP 626, * but should be "good enough", and no worse than in older versions. */ static void -guarantee_lineno_for_exits(struct assembler *a, int firstlineno) { +guarantee_lineno_for_exits(basicblock *entryblock, int firstlineno) { int lineno = firstlineno; assert(lineno > 0); - for (basicblock *b = a->a_entry; b != NULL; b = b->b_next) { - if (b->b_iused == 0) { + for (basicblock *b = entryblock; b != NULL; b = b->b_next) { + struct instr *last = basicblock_last_instr(b); + if (last == NULL) { continue; } - struct instr *last = &b->b_instr[b->b_iused-1]; - if (last->i_lineno < 0) { + if (last->i_loc.lineno < 0) { if (last->i_opcode == RETURN_VALUE) { for (int i = 0; i < b->b_iused; i++) { - assert(b->b_instr[i].i_lineno < 0); + assert(b->b_instr[i].i_loc.lineno < 0); - b->b_instr[i].i_lineno = lineno; + b->b_instr[i].i_loc.lineno = lineno; } } } else { - lineno = last->i_lineno; + lineno = last->i_loc.lineno; } } } @@ -8266,45 +8483,83 @@ fix_cell_offsets(struct compiler *c, basicblock *entryblock, int *fixedmap) } static void -propagate_line_numbers(struct assembler *a); +propagate_line_numbers(basicblock *entryblock); + +#ifndef NDEBUG +static bool +no_redundant_jumps(cfg_builder *g) { + for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { + struct instr *last = basicblock_last_instr(b); + if (last != NULL) { + if (IS_UNCONDITIONAL_JUMP_OPCODE(last->i_opcode)) { + assert(last->i_target != b->b_next); + if (last->i_target == b->b_next) { + return false; + } + } + } + } + return true; +} + +static bool +no_empty_basic_blocks(cfg_builder *g) { + for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { + if (b->b_iused == 0) { + return false; + } + } + return true; +} +#endif + +static int +remove_redundant_jumps(cfg_builder *g) { + /* If a non-empty block ends with a jump instruction, check if the next + * non-empty block reached through normal flow control is the target + * of that jump. If it is, then the jump instruction is redundant and + * can be deleted. + */ + assert(no_empty_basic_blocks(g)); + for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { + struct instr *last = basicblock_last_instr(b); + assert(last != NULL); + assert(!IS_ASSEMBLER_OPCODE(last->i_opcode)); + if (IS_UNCONDITIONAL_JUMP_OPCODE(last->i_opcode)) { + if (last->i_target == NULL) { + PyErr_SetString(PyExc_SystemError, "jump with NULL target"); + return -1; + } + if (last->i_target == b->b_next) { + assert(b->b_next->b_iused); + last->i_opcode = NOP; + } + } + } + return 0; +} static PyCodeObject * assemble(struct compiler *c, int addNone) { - basicblock *b, *entryblock; - struct assembler a; - int j, nblocks; PyCodeObject *co = NULL; PyObject *consts = NULL; + struct assembler a; + memset(&a, 0, sizeof(struct assembler)); + + int code_flags = compute_code_flags(c); + if (code_flags < 0) { + return NULL; + } /* Make sure every block that falls off the end returns None. */ - if (!c->u->u_curblock->b_return) { + if (!basicblock_returns(CFG_BUILDER(c)->g_curblock)) { UNSET_LOC(c); if (addNone) ADDOP_LOAD_CONST(c, Py_None); ADDOP(c, RETURN_VALUE); } - for (basicblock *b = c->u->u_blocks; b != NULL; b = b->b_list) { - if (normalize_basic_block(b)) { - return NULL; - } - } - - for (basicblock *b = c->u->u_blocks; b != NULL; b = b->b_list) { - if (extend_block(b)) { - return NULL; - } - } - - nblocks = 0; - entryblock = NULL; - for (b = c->u->u_blocks; b != NULL; b = b->b_list) { - nblocks++; - entryblock = b; - } - assert(entryblock != NULL); - assert(PyDict_GET_SIZE(c->u->u_varnames) < INT_MAX); assert(PyDict_GET_SIZE(c->u->u_cellvars) < INT_MAX); assert(PyDict_GET_SIZE(c->u->u_freevars) < INT_MAX); @@ -8319,10 +8574,22 @@ assemble(struct compiler *c, int addNone) goto error; } + int nblocks = 0; + for (basicblock *b = CFG_BUILDER(c)->g_block_list; b != NULL; b = b->b_list) { + nblocks++; + } + if ((size_t)nblocks > SIZE_MAX / sizeof(basicblock *)) { + PyErr_NoMemory(); + goto error; + } + + cfg_builder *g = CFG_BUILDER(c); + assert(g->g_entryblock != NULL); + /* Set firstlineno if it wasn't explicitly set. */ if (!c->u->u_firstlineno) { - if (entryblock->b_instr && entryblock->b_instr->i_lineno) { - c->u->u_firstlineno = entryblock->b_instr->i_lineno; + if (g->g_entryblock->b_instr && g->g_entryblock->b_instr->i_loc.lineno) { + c->u->u_firstlineno = g->g_entryblock->b_instr->i_loc.lineno; } else { c->u->u_firstlineno = 1; @@ -8330,15 +8597,11 @@ assemble(struct compiler *c, int addNone) } // This must be called before fix_cell_offsets(). - if (insert_prefix_instructions(c, entryblock, cellfixedoffsets, nfreevars)) { + if (insert_prefix_instructions(c, g->g_entryblock, cellfixedoffsets, nfreevars, code_flags)) { goto error; } - if (!assemble_init(&a, nblocks, c->u->u_firstlineno)) - goto error; - a.a_entry = entryblock; - - int numdropped = fix_cell_offsets(c, entryblock, cellfixedoffsets); + int numdropped = fix_cell_offsets(c, g->g_entryblock, cellfixedoffsets); PyMem_Free(cellfixedoffsets); // At this point we're done with it. cellfixedoffsets = NULL; if (numdropped < 0) { @@ -8350,83 +8613,98 @@ assemble(struct compiler *c, int addNone) if (consts == NULL) { goto error; } - - if (optimize_cfg(c, &a, consts)) { + if (calculate_jump_targets(g->g_entryblock)) { goto error; } - if (duplicate_exits_without_lineno(c)) { - return NULL; + if (optimize_cfg(g, consts, c->c_const_cache)) { + goto error; + } + if (trim_unused_consts(g->g_entryblock, consts)) { + goto error; } - if (trim_unused_consts(&a, consts)) { + if (duplicate_exits_without_lineno(g) < 0) { goto error; } - propagate_line_numbers(&a); - guarantee_lineno_for_exits(&a, c->u->u_firstlineno); - int maxdepth = stackdepth(c, entryblock); + propagate_line_numbers(g->g_entryblock); + guarantee_lineno_for_exits(g->g_entryblock, c->u->u_firstlineno); + + int maxdepth = stackdepth(g->g_entryblock, code_flags); if (maxdepth < 0) { goto error; } - if (maxdepth > MAX_ALLOWED_STACK_USE) { - PyErr_Format(PyExc_SystemError, - "excessive stack use: stack is %d deep", - maxdepth); + /* TO DO -- For 3.12, make sure that `maxdepth <= MAX_ALLOWED_STACK_USE` */ + + if (label_exception_targets(g->g_entryblock)) { goto error; } + convert_exception_handlers_to_nops(g->g_entryblock); - if (label_exception_targets(entryblock)) { + if (push_cold_blocks_to_end(g, code_flags) < 0) { goto error; } - convert_exception_handlers_to_nops(entryblock); - for (basicblock *b = a.a_entry; b != NULL; b = b->b_next) { - clean_basic_block(b); + for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { + remove_redundant_nops(b); } /* Order of basic blocks must have been determined by now */ - normalize_jumps(&a); + if (normalize_jumps(g) < 0) { + goto error; + } + + if (add_checks_for_loads_of_unknown_variables(g->g_entryblock, c) < 0) { + goto error; + } + + assert(no_redundant_jumps(g)); /* Can't modify the bytecode after computing jump offsets. */ - assemble_jump_offsets(&a, c); + assemble_jump_offsets(g->g_entryblock); + + + /* Create assembler */ + if (!assemble_init(&a, c->u->u_firstlineno)) + goto error; /* Emit code. */ - for(b = entryblock; b != NULL; b = b->b_next) { - for (j = 0; j < b->b_iused; j++) + for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { + for (int j = 0; j < b->b_iused; j++) if (!assemble_emit(&a, &b->b_instr[j])) goto error; } /* Emit location info */ a.a_lineno = c->u->u_firstlineno; - for(b = entryblock; b != NULL; b = b->b_next) { - for (j = 0; j < b->b_iused; j++) + for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { + for (int j = 0; j < b->b_iused; j++) if (!assemble_emit_location(&a, &b->b_instr[j])) goto error; } - if (!assemble_exception_table(&a)) { + if (!assemble_exception_table(&a, g->g_entryblock)) { goto error; } if (_PyBytes_Resize(&a.a_except_table, a.a_except_table_off) < 0) { goto error; } - if (!merge_const_one(c, &a.a_except_table)) { + if (!merge_const_one(c->c_const_cache, &a.a_except_table)) { goto error; } if (_PyBytes_Resize(&a.a_linetable, a.a_location_off) < 0) { goto error; } - if (!merge_const_one(c, &a.a_linetable)) { + if (!merge_const_one(c->c_const_cache, &a.a_linetable)) { goto error; } if (_PyBytes_Resize(&a.a_bytecode, a.a_offset * sizeof(_Py_CODEUNIT)) < 0) { goto error; } - if (!merge_const_one(c, &a.a_bytecode)) { + if (!merge_const_one(c->c_const_cache, &a.a_bytecode)) { goto error; } - co = makecode(c, &a, consts, maxdepth, nlocalsplus); + co = makecode(c, &a, consts, maxdepth, nlocalsplus, code_flags); error: Py_XDECREF(consts); assemble_free(&a); @@ -8461,11 +8739,12 @@ get_const_value(int opcode, int oparg, PyObject *co_consts) Called with codestr pointing to the first LOAD_CONST. */ static int -fold_tuple_on_constants(struct compiler *c, +fold_tuple_on_constants(PyObject *const_cache, struct instr *inst, int n, PyObject *consts) { /* Pre-conditions */ + assert(PyDict_CheckExact(const_cache)); assert(PyList_CheckExact(consts)); assert(inst[n].i_opcode == BUILD_TUPLE); assert(inst[n].i_oparg == n); @@ -8490,7 +8769,7 @@ fold_tuple_on_constants(struct compiler *c, } PyTuple_SET_ITEM(newconst, i, constant); } - if (merge_const_one(c, &newconst) == 0) { + if (merge_const_one(const_cache, &newconst) == 0) { Py_DECREF(newconst); return -1; } @@ -8633,7 +8912,7 @@ next_swappable_instruction(basicblock *block, int i, int lineno) { while (++i < block->b_iused) { struct instr *instruction = &block->b_instr[i]; - if (0 <= lineno && instruction->i_lineno != lineno) { + if (0 <= lineno && instruction->i_loc.lineno != lineno) { // Optimizing across this instruction could cause user-visible // changes in the names bound between line tracing events! return -1; @@ -8672,7 +8951,7 @@ apply_static_swaps(basicblock *block, int i) return; } int k = j; - int lineno = block->b_instr[j].i_lineno; + int lineno = block->b_instr[j].i_loc.lineno; for (int count = swap->i_oparg - 1; 0 < count; count--) { k = next_swappable_instruction(block, k, lineno); if (k < 0) { @@ -8693,12 +8972,11 @@ apply_static_swaps(basicblock *block, int i) static bool jump_thread(struct instr *inst, struct instr *target, int opcode) { - assert(!IS_VIRTUAL_OPCODE(opcode) || IS_VIRTUAL_JUMP_OPCODE(opcode)); assert(is_jump(inst)); assert(is_jump(target)); // bpo-45773: If inst->i_target == target->i_target, then nothing actually // changes (and we fall into an infinite loop): - if ((inst->i_lineno == target->i_lineno || target->i_lineno == -1) && + if ((inst->i_loc.lineno == target->i_loc.lineno || target->i_loc.lineno == -1) && inst->i_target != target->i_target) { inst->i_target = target->i_target; @@ -8713,8 +8991,9 @@ jump_thread(struct instr *inst, struct instr *target, int opcode) /* Optimization */ static int -optimize_basic_block(struct compiler *c, basicblock *bb, PyObject *consts) +optimize_basic_block(PyObject *const_cache, basicblock *bb, PyObject *consts) { + assert(PyDict_CheckExact(const_cache)); assert(PyList_CheckExact(consts)); struct instr nop; nop.i_opcode = NOP; @@ -8723,11 +9002,8 @@ optimize_basic_block(struct compiler *c, basicblock *bb, PyObject *consts) struct instr *inst = &bb->b_instr[i]; int oparg = inst->i_oparg; int nextop = i+1 < bb->b_iused ? bb->b_instr[i+1].i_opcode : 0; - if (is_jump(inst) || is_block_push(inst)) { - /* Skip over empty basic blocks. */ - while (inst->i_target->b_iused == 0) { - inst->i_target = inst->i_target->b_next; - } + if (HAS_TARGET(inst->i_opcode)) { + assert(inst->i_target->b_iused > 0); target = &inst->i_target->b_instr[0]; assert(!IS_ASSEMBLER_OPCODE(target->i_opcode)); } @@ -8758,7 +9034,6 @@ optimize_basic_block(struct compiler *c, basicblock *bb, PyObject *consts) jump_if_true = nextop == POP_JUMP_IF_TRUE; if (is_true == jump_if_true) { bb->b_instr[i+1].i_opcode = JUMP; - bb->b_nofallthrough = 1; } else { bb->b_instr[i+1].i_opcode = NOP; @@ -8778,7 +9053,6 @@ optimize_basic_block(struct compiler *c, basicblock *bb, PyObject *consts) jump_if_true = nextop == JUMP_IF_TRUE_OR_POP; if (is_true == jump_if_true) { bb->b_instr[i+1].i_opcode = JUMP; - bb->b_nofallthrough = 1; } else { inst->i_opcode = NOP; @@ -8823,7 +9097,7 @@ optimize_basic_block(struct compiler *c, basicblock *bb, PyObject *consts) } } if (i >= oparg) { - if (fold_tuple_on_constants(c, inst-oparg, oparg, consts)) { + if (fold_tuple_on_constants(const_cache, inst-oparg, oparg, consts)) { goto error; } } @@ -8854,7 +9128,7 @@ optimize_basic_block(struct compiler *c, basicblock *bb, PyObject *consts) break; case JUMP_IF_TRUE_OR_POP: case POP_JUMP_IF_TRUE: - if (inst->i_lineno == target->i_lineno) { + if (inst->i_loc.lineno == target->i_loc.lineno) { // We don't need to bother checking for loops here, // since a block's b_next cannot point to itself: assert(inst->i_target != inst->i_target->b_next); @@ -8876,7 +9150,7 @@ optimize_basic_block(struct compiler *c, basicblock *bb, PyObject *consts) break; case JUMP_IF_FALSE_OR_POP: case POP_JUMP_IF_FALSE: - if (inst->i_lineno == target->i_lineno) { + if (inst->i_loc.lineno == target->i_loc.lineno) { // We don't need to bother checking for loops here, // since a block's b_next cannot point to itself: assert(inst->i_target != inst->i_target->b_next); @@ -8953,42 +9227,41 @@ optimize_basic_block(struct compiler *c, basicblock *bb, PyObject *consts) return -1; } -/* If this block ends with an unconditional jump to an exit block, - * then remove the jump and extend this block with the target. +/* If this block ends with an unconditional jump to a small exit block, then + * remove the jump and extend this block with the target. + * Returns 1 if extended, 0 if no change, and -1 on error. */ static int -extend_block(basicblock *bb) { - if (bb->b_iused == 0) { +inline_small_exit_blocks(basicblock *bb) { + struct instr *last = basicblock_last_instr(bb); + if (last == NULL) { return 0; } - struct instr *last = &bb->b_instr[bb->b_iused-1]; - if (last->i_opcode != JUMP && - last->i_opcode != JUMP_FORWARD && - last->i_opcode != JUMP_BACKWARD) { + if (!IS_UNCONDITIONAL_JUMP_OPCODE(last->i_opcode)) { return 0; } - if (last->i_target->b_exit && last->i_target->b_iused <= MAX_COPY_SIZE) { - basicblock *to_copy = last->i_target; + basicblock *target = last->i_target; + if (basicblock_exits_scope(target) && target->b_iused <= MAX_COPY_SIZE) { last->i_opcode = NOP; - for (int i = 0; i < to_copy->b_iused; i++) { - int index = compiler_next_instr(bb); + for (int i = 0; i < target->b_iused; i++) { + int index = basicblock_next_instr(bb); if (index < 0) { return -1; } - bb->b_instr[index] = to_copy->b_instr[i]; + bb->b_instr[index] = target->b_instr[i]; } - bb->b_exit = 1; + return 1; } return 0; } static void -clean_basic_block(basicblock *bb) { +remove_redundant_nops(basicblock *bb) { /* Remove NOPs when legal to do so. */ int dest = 0; int prev_lineno = -1; for (int src = 0; src < bb->b_iused; src++) { - int lineno = bb->b_instr[src].i_lineno; + int lineno = bb->b_instr[src].i_loc.lineno; if (bb->b_instr[src].i_opcode == NOP) { /* Eliminate no-op if it doesn't have a line number */ if (lineno < 0) { @@ -9000,9 +9273,12 @@ clean_basic_block(basicblock *bb) { } /* or, if the next instruction has same line number or no line number */ if (src < bb->b_iused - 1) { - int next_lineno = bb->b_instr[src+1].i_lineno; - if (next_lineno < 0 || next_lineno == lineno) { - COPY_INSTR_LOC(bb->b_instr[src], bb->b_instr[src+1]); + int next_lineno = bb->b_instr[src+1].i_loc.lineno; + if (next_lineno == lineno) { + continue; + } + if (next_lineno < 0) { + bb->b_instr[src+1].i_loc = bb->b_instr[src].i_loc; continue; } } @@ -9013,7 +9289,7 @@ clean_basic_block(basicblock *bb) { } /* or if last instruction in BB and next BB has same line number */ if (next) { - if (lineno == next->b_instr[0].i_lineno) { + if (lineno == next->b_instr[0].i_loc.lineno) { continue; } } @@ -9031,56 +9307,36 @@ clean_basic_block(basicblock *bb) { } static int -normalize_basic_block(basicblock *bb) { - /* Mark blocks as exit and/or nofallthrough. - Raise SystemError if CFG is malformed. */ - for (int i = 0; i < bb->b_iused; i++) { - assert(!IS_ASSEMBLER_OPCODE(bb->b_instr[i].i_opcode)); - switch(bb->b_instr[i].i_opcode) { - case RETURN_VALUE: - case RAISE_VARARGS: - case RERAISE: - bb->b_exit = 1; - bb->b_nofallthrough = 1; - break; - case JUMP: - case JUMP_NO_INTERRUPT: - bb->b_nofallthrough = 1; - /* fall through */ - case POP_JUMP_IF_NOT_NONE: - case POP_JUMP_IF_NONE: - case POP_JUMP_IF_FALSE: - case POP_JUMP_IF_TRUE: - case JUMP_IF_FALSE_OR_POP: - case JUMP_IF_TRUE_OR_POP: - case FOR_ITER: - if (i != bb->b_iused-1) { +check_cfg(cfg_builder *g) { + for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { + /* Raise SystemError if jump or exit is not last instruction in the block. */ + for (int i = 0; i < b->b_iused; i++) { + int opcode = b->b_instr[i].i_opcode; + assert(!IS_ASSEMBLER_OPCODE(opcode)); + if (IS_TERMINATOR_OPCODE(opcode)) { + if (i != b->b_iused - 1) { PyErr_SetString(PyExc_SystemError, "malformed control flow graph."); return -1; } - /* Skip over empty basic blocks. */ - while (bb->b_instr[i].i_target->b_iused == 0) { - bb->b_instr[i].i_target = bb->b_instr[i].i_target->b_next; - } - + } } } return 0; } static int -mark_reachable(struct assembler *a) { - basicblock **stack = make_cfg_traversal_stack(a->a_entry); +mark_reachable(basicblock *entryblock) { + basicblock **stack = make_cfg_traversal_stack(entryblock); if (stack == NULL) { return -1; } basicblock **sp = stack; - a->a_entry->b_predecessors = 1; - *sp++ = a->a_entry; + entryblock->b_predecessors = 1; + *sp++ = entryblock; while (sp > stack) { basicblock *b = *(--sp); b->b_visited = 1; - if (b->b_next && !b->b_nofallthrough) { + if (b->b_next && BB_HAS_FALLTHROUGH(b)) { if (!b->b_next->b_visited) { assert(b->b_next->b_predecessors == 0); *sp++ = b->b_next; @@ -9097,6 +9353,11 @@ mark_reachable(struct assembler *a) { *sp++ = target; } target->b_predecessors++; + if (is_block_push(instr)) { + target->b_except_predecessors++; + } + assert(target->b_except_predecessors == 0 || + target->b_except_predecessors == target->b_predecessors); } } } @@ -9105,29 +9366,29 @@ mark_reachable(struct assembler *a) { } static void -eliminate_empty_basic_blocks(basicblock *entry) { +eliminate_empty_basic_blocks(cfg_builder *g) { /* Eliminate empty blocks */ - for (basicblock *b = entry; b != NULL; b = b->b_next) { + for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { basicblock *next = b->b_next; - if (next) { - while (next->b_iused == 0 && next->b_next) { - next = next->b_next; - } - b->b_next = next; + while (next && next->b_iused == 0) { + next = next->b_next; } + b->b_next = next; } - for (basicblock *b = entry; b != NULL; b = b->b_next) { - if (b->b_iused == 0) { - continue; - } + while(g->g_entryblock && g->g_entryblock->b_iused == 0) { + g->g_entryblock = g->g_entryblock->b_next; + } + for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { + assert(b->b_iused > 0); for (int i = 0; i < b->b_iused; i++) { struct instr *instr = &b->b_instr[i]; - if (is_jump(instr) || is_block_push(instr)) { + if (HAS_TARGET(instr->i_opcode)) { basicblock *target = instr->i_target; while (target->b_iused == 0) { target = target->b_next; } instr->i_target = target; + assert(instr->i_target && instr->i_target->b_iused > 0); } } } @@ -9142,119 +9403,141 @@ eliminate_empty_basic_blocks(basicblock *entry) { * but has no impact on the generated line number events. */ static void -propagate_line_numbers(struct assembler *a) { - for (basicblock *b = a->a_entry; b != NULL; b = b->b_next) { - if (b->b_iused == 0) { +propagate_line_numbers(basicblock *entryblock) { + for (basicblock *b = entryblock; b != NULL; b = b->b_next) { + struct instr *last = basicblock_last_instr(b); + if (last == NULL) { continue; } - // Not a real instruction, only to store positions - // from previous instructions and propagate them. - struct instr prev_instr = { - .i_lineno = -1, - .i_col_offset = -1, - .i_end_lineno = -1, - .i_end_col_offset = -1, - }; + struct location prev_location = NO_LOCATION; for (int i = 0; i < b->b_iused; i++) { - if (b->b_instr[i].i_lineno < 0) { - COPY_INSTR_LOC(prev_instr, b->b_instr[i]); + if (b->b_instr[i].i_loc.lineno < 0) { + b->b_instr[i].i_loc = prev_location; } else { - COPY_INSTR_LOC(b->b_instr[i], prev_instr); + prev_location = b->b_instr[i].i_loc; } } - if (!b->b_nofallthrough && b->b_next->b_predecessors == 1) { + if (BB_HAS_FALLTHROUGH(b) && b->b_next->b_predecessors == 1) { assert(b->b_next->b_iused); - if (b->b_next->b_instr[0].i_lineno < 0) { - COPY_INSTR_LOC(prev_instr, b->b_next->b_instr[0]); + if (b->b_next->b_instr[0].i_loc.lineno < 0) { + b->b_next->b_instr[0].i_loc = prev_location; } } - if (is_jump(&b->b_instr[b->b_iused-1])) { - basicblock *target = b->b_instr[b->b_iused-1].i_target; + if (is_jump(last)) { + basicblock *target = last->i_target; if (target->b_predecessors == 1) { - if (target->b_instr[0].i_lineno < 0) { - COPY_INSTR_LOC(prev_instr, target->b_instr[0]); + if (target->b_instr[0].i_loc.lineno < 0) { + target->b_instr[0].i_loc = prev_location; } } } } } + +/* Calculate the actual jump target from the target_label */ +static int +calculate_jump_targets(basicblock *entryblock) +{ + int max_label = -1; + for (basicblock *b = entryblock; b != NULL; b = b->b_next) { + if (b->b_label > max_label) { + max_label = b->b_label; + } + } + size_t mapsize = sizeof(basicblock *) * (max_label + 1); + basicblock **label2block = (basicblock **)PyMem_Malloc(mapsize); + if (!label2block) { + PyErr_NoMemory(); + return -1; + } + memset(label2block, 0, mapsize); + for (basicblock *b = entryblock; b != NULL; b = b->b_next) { + if (b->b_label >= 0) { + label2block[b->b_label] = b; + } + } + for (basicblock *b = entryblock; b != NULL; b = b->b_next) { + for (int i = 0; i < b->b_iused; i++) { + struct instr *instr = &b->b_instr[i]; + assert(instr->i_target == NULL); + if (HAS_TARGET(instr->i_opcode)) { + int lbl = instr->i_oparg; + assert(lbl >= 0 && lbl <= max_label); + instr->i_target = label2block[lbl]; + assert(instr->i_target != NULL); + assert(instr->i_target->b_label == lbl); + } + } + } + PyMem_Free(label2block); + return 0; +} + /* Perform optimizations on a control flow graph. The consts object should still be in list form to allow new constants to be appended. - All transformations keep the code size the same or smaller. - For those that reduce size, the gaps are initially filled with + Code trasnformations that reduce code size initially fill the gaps with NOPs. Later those NOPs are removed. */ static int -optimize_cfg(struct compiler *c, struct assembler *a, PyObject *consts) +optimize_cfg(cfg_builder *g, PyObject *consts, PyObject *const_cache) { - for (basicblock *b = a->a_entry; b != NULL; b = b->b_next) { - if (optimize_basic_block(c, b, consts)) { + assert(PyDict_CheckExact(const_cache)); + if (check_cfg(g) < 0) { + return -1; + } + eliminate_empty_basic_blocks(g); + for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { + if (inline_small_exit_blocks(b) < 0) { + return -1; + } + } + assert(no_empty_basic_blocks(g)); + for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { + if (optimize_basic_block(const_cache, b, consts)) { return -1; } - clean_basic_block(b); + remove_redundant_nops(b); assert(b->b_predecessors == 0); } - for (basicblock *b = c->u->u_blocks; b != NULL; b = b->b_list) { - if (extend_block(b)) { + for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { + if (inline_small_exit_blocks(b) < 0) { return -1; } } - if (mark_reachable(a)) { + if (mark_reachable(g->g_entryblock)) { return -1; } /* Delete unreachable instructions */ - for (basicblock *b = a->a_entry; b != NULL; b = b->b_next) { + for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { if (b->b_predecessors == 0) { b->b_iused = 0; - b->b_nofallthrough = 0; } } - eliminate_empty_basic_blocks(a->a_entry); - for (basicblock *b = a->a_entry; b != NULL; b = b->b_next) { - clean_basic_block(b); - } - /* Delete jump instructions made redundant by previous step. If a non-empty - block ends with a jump instruction, check if the next non-empty block - reached through normal flow control is the target of that jump. If it - is, then the jump instruction is redundant and can be deleted. - */ - int maybe_empty_blocks = 0; - for (basicblock *b = a->a_entry; b != NULL; b = b->b_next) { - if (b->b_iused > 0) { - struct instr *b_last_instr = &b->b_instr[b->b_iused - 1]; - assert(!IS_ASSEMBLER_OPCODE(b_last_instr->i_opcode)); - if (b_last_instr->i_opcode == JUMP || - b_last_instr->i_opcode == JUMP_NO_INTERRUPT) { - if (b_last_instr->i_target == b->b_next) { - assert(b->b_next->b_iused); - b->b_nofallthrough = 0; - b_last_instr->i_opcode = NOP; - maybe_empty_blocks = 1; - } - } - } + eliminate_empty_basic_blocks(g); + for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { + remove_redundant_nops(b); } - if (maybe_empty_blocks) { - eliminate_empty_basic_blocks(a->a_entry); + if (remove_redundant_jumps(g) < 0) { + return -1; } return 0; } // Remove trailing unused constants. static int -trim_unused_consts(struct assembler *a, PyObject *consts) +trim_unused_consts(basicblock *entryblock, PyObject *consts) { assert(PyList_CheckExact(consts)); // The first constant may be docstring; keep it always. int max_const_index = 0; - for (basicblock *b = a->a_entry; b != NULL; b = b->b_next) { + for (basicblock *b = entryblock; b != NULL; b = b->b_next) { for (int i = 0; i < b->b_iused; i++) { if ((b->b_instr[i].i_opcode == LOAD_CONST || b->b_instr[i].i_opcode == KW_NAMES) && @@ -9276,11 +9559,11 @@ trim_unused_consts(struct assembler *a, PyObject *consts) static inline int is_exit_without_lineno(basicblock *b) { - if (!b->b_exit) { + if (!basicblock_exits_scope(b)) { return 0; } for (int i = 0; i < b->b_iused; i++) { - if (b->b_instr[i].i_lineno >= 0) { + if (b->b_instr[i].i_loc.lineno >= 0) { return 0; } } @@ -9297,20 +9580,22 @@ is_exit_without_lineno(basicblock *b) { * copy the line number from the sole predecessor block. */ static int -duplicate_exits_without_lineno(struct compiler *c) +duplicate_exits_without_lineno(cfg_builder *g) { /* Copy all exit blocks without line number that are targets of a jump. */ - for (basicblock *b = c->u->u_blocks; b != NULL; b = b->b_list) { - if (b->b_iused > 0 && is_jump(&b->b_instr[b->b_iused-1])) { - basicblock *target = b->b_instr[b->b_iused-1].i_target; + basicblock *entryblock = g->g_entryblock; + for (basicblock *b = entryblock; b != NULL; b = b->b_next) { + struct instr *last = basicblock_last_instr(b); + if (last != NULL && is_jump(last)) { + basicblock *target = last->i_target; if (is_exit_without_lineno(target) && target->b_predecessors > 1) { - basicblock *new_target = compiler_copy_block(c, target); + basicblock *new_target = copy_basicblock(g, target); if (new_target == NULL) { return -1; } - COPY_INSTR_LOC(b->b_instr[b->b_iused-1], new_target->b_instr[0]); - b->b_instr[b->b_iused-1].i_target = new_target; + new_target->b_instr[0].i_loc = last->i_loc; + last->i_target = new_target; target->b_predecessors--; new_target->b_predecessors = 1; new_target->b_next = target->b_next; @@ -9318,25 +9603,174 @@ duplicate_exits_without_lineno(struct compiler *c) } } } - /* Eliminate empty blocks */ - for (basicblock *b = c->u->u_blocks; b != NULL; b = b->b_list) { - while (b->b_next && b->b_next->b_iused == 0) { - b->b_next = b->b_next->b_next; - } - } + + assert(no_empty_basic_blocks(g)); + /* Any remaining reachable exit blocks without line number can only be reached by * fall through, and thus can only have a single predecessor */ - for (basicblock *b = c->u->u_blocks; b != NULL; b = b->b_list) { - if (!b->b_nofallthrough && b->b_next && b->b_iused > 0) { + for (basicblock *b = entryblock; b != NULL; b = b->b_next) { + if (BB_HAS_FALLTHROUGH(b) && b->b_next && b->b_iused > 0) { if (is_exit_without_lineno(b->b_next)) { - assert(b->b_next->b_iused > 0); - COPY_INSTR_LOC(b->b_instr[b->b_iused-1], b->b_next->b_instr[0]); + struct instr *last = basicblock_last_instr(b); + assert(last != NULL); + b->b_next->b_instr[0].i_loc = last->i_loc; + } + } + } + return 0; +} + + +/* Access to compiler optimizations for unit tests. + * + * _PyCompile_OptimizeCfg takes an instruction list, constructs + * a CFG, optimizes it and converts back to an instruction list. + * + * An instruction list is a PyList where each item is either + * a tuple describing a single instruction: + * (opcode, oparg, lineno, end_lineno, col, end_col), or + * a jump target label marking the beginning of a basic block. + */ + +static int +instructions_to_cfg(PyObject *instructions, cfg_builder *g) +{ + assert(PyList_Check(instructions)); + + Py_ssize_t instr_size = PyList_GET_SIZE(instructions); + for (Py_ssize_t i = 0; i < instr_size; i++) { + PyObject *item = PyList_GET_ITEM(instructions, i); + if (PyLong_Check(item)) { + int lbl_id = PyLong_AsLong(item); + if (PyErr_Occurred()) { + return -1; + } + if (lbl_id <= 0 || lbl_id > instr_size) { + /* expect label in a reasonable range */ + PyErr_SetString(PyExc_ValueError, "label out of range"); + return -1; + } + jump_target_label lbl = {lbl_id}; + if (cfg_builder_use_label(g, lbl) < 0) { + return -1; + } + } + else { + if (!PyTuple_Check(item) || PyTuple_GET_SIZE(item) != 6) { + PyErr_SetString(PyExc_ValueError, "expected a 6-tuple"); + return -1; + } + int opcode = PyLong_AsLong(PyTuple_GET_ITEM(item, 0)); + if (PyErr_Occurred()) { + return -1; + } + int oparg = PyLong_AsLong(PyTuple_GET_ITEM(item, 1)); + if (PyErr_Occurred()) { + return -1; + } + struct location loc; + loc.lineno = PyLong_AsLong(PyTuple_GET_ITEM(item, 2)); + if (PyErr_Occurred()) { + return -1; + } + loc.end_lineno = PyLong_AsLong(PyTuple_GET_ITEM(item, 3)); + if (PyErr_Occurred()) { + return -1; + } + loc.col_offset = PyLong_AsLong(PyTuple_GET_ITEM(item, 4)); + if (PyErr_Occurred()) { + return -1; + } + loc.end_col_offset = PyLong_AsLong(PyTuple_GET_ITEM(item, 5)); + if (PyErr_Occurred()) { + return -1; + } + if (!cfg_builder_addop(g, opcode, oparg, loc)) { + return -1; } } } return 0; } +static PyObject * +cfg_to_instructions(cfg_builder *g) +{ + PyObject *instructions = PyList_New(0); + if (instructions == NULL) { + return NULL; + } + int lbl = 1; + for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { + b->b_label = lbl++; + } + for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { + PyObject *lbl = PyLong_FromLong(b->b_label); + if (lbl == NULL) { + goto error; + } + if (PyList_Append(instructions, lbl) != 0) { + Py_DECREF(lbl); + goto error; + } + Py_DECREF(lbl); + for (int i = 0; i < b->b_iused; i++) { + struct instr *instr = &b->b_instr[i]; + struct location loc = instr->i_loc; + int arg = HAS_TARGET(instr->i_opcode) ? instr->i_target->b_label : instr->i_oparg; + PyObject *inst_tuple = Py_BuildValue( + "(iiiiii)", instr->i_opcode, arg, + loc.lineno, loc.end_lineno, + loc.col_offset, loc.end_col_offset); + if (inst_tuple == NULL) { + goto error; + } + + if (PyList_Append(instructions, inst_tuple) != 0) { + Py_DECREF(inst_tuple); + goto error; + } + Py_DECREF(inst_tuple); + } + } + + return instructions; +error: + Py_DECREF(instructions); + return NULL; +} + + +PyObject * +_PyCompile_OptimizeCfg(PyObject *instructions, PyObject *consts) +{ + PyObject *res = NULL; + PyObject *const_cache = NULL; + cfg_builder g; + memset(&g, 0, sizeof(cfg_builder)); + if (cfg_builder_init(&g) < 0) { + goto error; + } + if (instructions_to_cfg(instructions, &g) < 0) { + goto error; + } + const_cache = PyDict_New(); + if (const_cache == NULL) { + goto error; + } + if (calculate_jump_targets(g.g_entryblock)) { + goto error; + } + if (optimize_cfg(&g, consts, const_cache) < 0) { + goto error; + } + res = cfg_to_instructions(&g); +error: + Py_XDECREF(const_cache); + cfg_builder_fini(&g); + return res; +} + /* Retained for API compatibility. * Optimization is now done in optimize_cfg */ diff --git a/Python/condvar.h b/Python/condvar.h index e5df7ff132802f..4ddc5311cf8fad 100644 --- a/Python/condvar.h +++ b/Python/condvar.h @@ -68,9 +68,9 @@ void _PyThread_cond_after(long long us, struct timespec *abs); Py_LOCAL_INLINE(int) PyCOND_TIMEDWAIT(PyCOND_T *cond, PyMUTEX_T *mut, long long us) { - struct timespec abs; - _PyThread_cond_after(us, &abs); - int ret = pthread_cond_timedwait(cond, mut, &abs); + struct timespec abs_timeout; + _PyThread_cond_after(us, &abs_timeout); + int ret = pthread_cond_timedwait(cond, mut, &abs_timeout); if (ret == ETIMEDOUT) { return 1; } diff --git a/Python/dup2.c b/Python/dup2.c index 7c6bbfce11dbf8..a1df0492099163 100644 --- a/Python/dup2.c +++ b/Python/dup2.c @@ -11,6 +11,7 @@ * Return fd2 if all went well; return BADEXIT otherwise. */ +#include <errno.h> #include <fcntl.h> #include <unistd.h> @@ -20,12 +21,17 @@ int dup2(int fd1, int fd2) { if (fd1 != fd2) { +#ifdef F_DUPFD if (fcntl(fd1, F_GETFL) < 0) return BADEXIT; if (fcntl(fd2, F_GETFL) >= 0) close(fd2); if (fcntl(fd1, F_DUPFD, fd2) < 0) return BADEXIT; +#else + errno = ENOTSUP; + return BADEXIT; +#endif } return fd2; } diff --git a/Python/errors.c b/Python/errors.c index b6b5d9b046ce85..2aa748c60c3704 100644 --- a/Python/errors.c +++ b/Python/errors.c @@ -1229,8 +1229,8 @@ _PyErr_InitTypes(PyInterpreterState *interp) } if (UnraisableHookArgsType.tp_name == NULL) { - if (PyStructSequence_InitType2(&UnraisableHookArgsType, - &UnraisableHookArgs_desc) < 0) { + if (_PyStructSequence_InitBuiltin(&UnraisableHookArgsType, + &UnraisableHookArgs_desc) < 0) { return _PyStatus_ERR("failed to initialize UnraisableHookArgs type"); } } diff --git a/Python/fileutils.c b/Python/fileutils.c index 7e5d01f6e63d3b..fb1e5ef9a03026 100644 --- a/Python/fileutils.c +++ b/Python/fileutils.c @@ -2366,7 +2366,7 @@ _Py_dup(int fd) return -1; } -#else +#elif HAVE_DUP Py_BEGIN_ALLOW_THREADS _Py_BEGIN_SUPPRESS_IPH fd = dup(fd); @@ -2383,6 +2383,10 @@ _Py_dup(int fd) _Py_END_SUPPRESS_IPH return -1; } +#else + errno = ENOTSUP; + PyErr_SetFromErrno(PyExc_OSError); + return -1; #endif return fd; } diff --git a/Python/frame.c b/Python/frame.c index 3573f54ad63e9b..14464df0a8d506 100644 --- a/Python/frame.c +++ b/Python/frame.c @@ -3,7 +3,7 @@ #include "Python.h" #include "frameobject.h" -#include "pycore_code.h" // stats +#include "pycore_code.h" // stats #include "pycore_frame.h" #include "pycore_object.h" // _PyObject_GC_UNTRACK() #include "opcode.h" @@ -13,7 +13,7 @@ _PyFrame_Traverse(_PyInterpreterFrame *frame, visitproc visit, void *arg) { Py_VISIT(frame->frame_obj); Py_VISIT(frame->f_locals); - Py_VISIT(frame->f_func); + Py_VISIT(frame->f_funcobj); Py_VISIT(frame->f_code); /* locals */ PyObject **locals = _PyFrame_GetLocalsArray(frame); @@ -68,9 +68,13 @@ take_ownership(PyFrameObject *f, _PyInterpreterFrame *frame) f->f_frame = frame; frame->owner = FRAME_OWNED_BY_FRAME_OBJECT; assert(f->f_back == NULL); - if (frame->previous != NULL) { + _PyInterpreterFrame *prev = frame->previous; + while (prev && _PyFrame_IsIncomplete(prev)) { + prev = prev->previous; + } + if (prev) { /* Link PyFrameObjects.f_back and remove link through _PyInterpreterFrame.previous */ - PyFrameObject *back = _PyFrame_GetFrameObject(frame->previous); + PyFrameObject *back = _PyFrame_GetFrameObject(prev); if (back == NULL) { /* Memory error here. */ assert(PyErr_ExceptionMatches(PyExc_MemoryError)); @@ -110,26 +114,10 @@ _PyFrame_Clear(_PyInterpreterFrame *frame) } Py_XDECREF(frame->frame_obj); Py_XDECREF(frame->f_locals); - Py_DECREF(frame->f_func); + Py_DECREF(frame->f_funcobj); Py_DECREF(frame->f_code); } -/* Consumes reference to func */ -_PyInterpreterFrame * -_PyFrame_Push(PyThreadState *tstate, PyFunctionObject *func) -{ - PyCodeObject *code = (PyCodeObject *)func->func_code; - size_t size = code->co_nlocalsplus + code->co_stacksize + FRAME_SPECIALS_SIZE; - CALL_STAT_INC(frames_pushed); - _PyInterpreterFrame *new_frame = _PyThreadState_BumpFramePointer(tstate, size); - if (new_frame == NULL) { - Py_DECREF(func); - return NULL; - } - _PyFrame_InitializeSpecials(new_frame, func, NULL, code->co_nlocalsplus); - return new_frame; -} - int _PyInterpreterFrame_GetLine(_PyInterpreterFrame *frame) { diff --git a/Python/getargs.c b/Python/getargs.c index fb4a5124beab8a..f0b84b8338ddc3 100644 --- a/Python/getargs.c +++ b/Python/getargs.c @@ -1502,6 +1502,50 @@ _PyArg_VaParseTupleAndKeywordsFast_SizeT(PyObject *args, PyObject *keywords, return retval; } +static void +error_unexpected_keyword_arg(PyObject *kwargs, PyObject *kwnames, PyObject *kwtuple, const char *fname) +{ + /* make sure there are no extraneous keyword arguments */ + Py_ssize_t j = 0; + while (1) { + PyObject *keyword; + if (kwargs != NULL) { + if (!PyDict_Next(kwargs, &j, &keyword, NULL)) + break; + } + else { + if (j >= PyTuple_GET_SIZE(kwnames)) + break; + keyword = PyTuple_GET_ITEM(kwnames, j); + j++; + } + if (!PyUnicode_Check(keyword)) { + PyErr_SetString(PyExc_TypeError, + "keywords must be strings"); + return; + } + + int match = PySequence_Contains(kwtuple, keyword); + if (match <= 0) { + if (!match) { + PyErr_Format(PyExc_TypeError, + "'%S' is an invalid keyword " + "argument for %.200s%s", + keyword, + (fname == NULL) ? "this function" : fname, + (fname == NULL) ? "" : "()"); + } + return; + } + } + /* Something wrong happened. There are extraneous keyword arguments, + * but we don't know what. And we don't bother. */ + PyErr_Format(PyExc_TypeError, + "invalid keyword argument for %.200s%s", + (fname == NULL) ? "this function" : fname, + (fname == NULL) ? "" : "()"); +} + int PyArg_ValidateKeywordArguments(PyObject *kwargs) { @@ -1790,6 +1834,13 @@ vgetargskeywords(PyObject *args, PyObject *kwargs, const char *format, return cleanreturn(0, &freelist); } } + /* Something wrong happened. There are extraneous keyword arguments, + * but we don't know what. And we don't bother. */ + PyErr_Format(PyExc_TypeError, + "invalid keyword argument for %.200s%s", + (fname == NULL) ? "this function" : fname, + (fname == NULL) ? "" : "()"); + return cleanreturn(0, &freelist); } return cleanreturn(1, &freelist); @@ -1800,118 +1851,178 @@ vgetargskeywords(PyObject *args, PyObject *kwargs, const char *format, static struct _PyArg_Parser *static_arg_parsers = NULL; static int -parser_init(struct _PyArg_Parser *parser) +scan_keywords(const char * const *keywords, int *ptotal, int *pposonly) { - const char * const *keywords; - const char *format, *msg; - int i, len, min, max, nkw; - PyObject *kwtuple; - - assert(parser->keywords != NULL); - if (parser->kwtuple != NULL) { - return 1; - } - - keywords = parser->keywords; /* scan keywords and count the number of positional-only parameters */ + int i; for (i = 0; keywords[i] && !*keywords[i]; i++) { } - parser->pos = i; + *pposonly = i; + /* scan keywords and get greatest possible nbr of args */ for (; keywords[i]; i++) { if (!*keywords[i]) { PyErr_SetString(PyExc_SystemError, "Empty keyword parameter name"); - return 0; + return -1; } } - len = i; + *ptotal = i; + return 0; +} - format = parser->format; - if (format) { - /* grab the function name or custom error msg first (mutually exclusive) */ - parser->fname = strchr(parser->format, ':'); - if (parser->fname) { - parser->fname++; - parser->custom_msg = NULL; +static int +parse_format(const char *format, int total, int npos, + const char **pfname, const char **pcustommsg, + int *pmin, int *pmax) +{ + /* grab the function name or custom error msg first (mutually exclusive) */ + const char *custommsg; + const char *fname = strchr(format, ':'); + if (fname) { + fname++; + custommsg = NULL; + } + else { + custommsg = strchr(format,';'); + if (custommsg) { + custommsg++; } - else { - parser->custom_msg = strchr(parser->format,';'); - if (parser->custom_msg) - parser->custom_msg++; - } - - min = max = INT_MAX; - for (i = 0; i < len; i++) { - if (*format == '|') { - if (min != INT_MAX) { - PyErr_SetString(PyExc_SystemError, - "Invalid format string (| specified twice)"); - return 0; - } - if (max != INT_MAX) { - PyErr_SetString(PyExc_SystemError, - "Invalid format string ($ before |)"); - return 0; - } - min = i; - format++; + } + + int min = INT_MAX; + int max = INT_MAX; + for (int i = 0; i < total; i++) { + if (*format == '|') { + if (min != INT_MAX) { + PyErr_SetString(PyExc_SystemError, + "Invalid format string (| specified twice)"); + return -1; } - if (*format == '$') { - if (max != INT_MAX) { - PyErr_SetString(PyExc_SystemError, - "Invalid format string ($ specified twice)"); - return 0; - } - if (i < parser->pos) { - PyErr_SetString(PyExc_SystemError, - "Empty parameter name after $"); - return 0; - } - max = i; - format++; + if (max != INT_MAX) { + PyErr_SetString(PyExc_SystemError, + "Invalid format string ($ before |)"); + return -1; } - if (IS_END_OF_FORMAT(*format)) { - PyErr_Format(PyExc_SystemError, - "More keyword list entries (%d) than " - "format specifiers (%d)", len, i); - return 0; + min = i; + format++; + } + if (*format == '$') { + if (max != INT_MAX) { + PyErr_SetString(PyExc_SystemError, + "Invalid format string ($ specified twice)"); + return -1; } - - msg = skipitem(&format, NULL, 0); - if (msg) { - PyErr_Format(PyExc_SystemError, "%s: '%s'", msg, - format); - return 0; + if (i < npos) { + PyErr_SetString(PyExc_SystemError, + "Empty parameter name after $"); + return -1; } + max = i; + format++; } - parser->min = Py_MIN(min, len); - parser->max = Py_MIN(max, len); - - if (!IS_END_OF_FORMAT(*format) && (*format != '|') && (*format != '$')) { + if (IS_END_OF_FORMAT(*format)) { PyErr_Format(PyExc_SystemError, - "more argument specifiers than keyword list entries " - "(remaining format:'%s')", format); - return 0; + "More keyword list entries (%d) than " + "format specifiers (%d)", total, i); + return -1; + } + + const char *msg = skipitem(&format, NULL, 0); + if (msg) { + PyErr_Format(PyExc_SystemError, "%s: '%s'", msg, + format); + return -1; } } + min = Py_MIN(min, total); + max = Py_MIN(max, total); + + if (!IS_END_OF_FORMAT(*format) && (*format != '|') && (*format != '$')) { + PyErr_Format(PyExc_SystemError, + "more argument specifiers than keyword list entries " + "(remaining format:'%s')", format); + return -1; + } + + *pfname = fname; + *pcustommsg = custommsg; + *pmin = min; + *pmax = max; + return 0; +} - nkw = len - parser->pos; - kwtuple = PyTuple_New(nkw); +static PyObject * +new_kwtuple(const char * const *keywords, int total, int pos) +{ + int nkw = total - pos; + PyObject *kwtuple = PyTuple_New(nkw); if (kwtuple == NULL) { - return 0; + return NULL; } - keywords = parser->keywords + parser->pos; - for (i = 0; i < nkw; i++) { + keywords += pos; + for (int i = 0; i < nkw; i++) { PyObject *str = PyUnicode_FromString(keywords[i]); if (str == NULL) { Py_DECREF(kwtuple); - return 0; + return NULL; } PyUnicode_InternInPlace(&str); PyTuple_SET_ITEM(kwtuple, i, str); } + return kwtuple; +} + +static int +_parser_init(struct _PyArg_Parser *parser) +{ + const char * const *keywords = parser->keywords; + assert(keywords != NULL); + assert(parser->pos == 0 && + (parser->format == NULL || parser->fname == NULL) && + parser->custom_msg == NULL && + parser->min == 0 && + parser->max == 0); + + int len, pos; + if (scan_keywords(keywords, &len, &pos) < 0) { + return 0; + } + + const char *fname, *custommsg = NULL; + int min = 0, max = 0; + if (parser->format) { + assert(parser->fname == NULL); + if (parse_format(parser->format, len, pos, + &fname, &custommsg, &min, &max) < 0) { + return 0; + } + } + else { + assert(parser->fname != NULL); + fname = parser->fname; + } + + int owned; + PyObject *kwtuple = parser->kwtuple; + if (kwtuple == NULL) { + kwtuple = new_kwtuple(keywords, len, pos); + if (kwtuple == NULL) { + return 0; + } + owned = 1; + } + else { + owned = 0; + } + + parser->pos = pos; + parser->fname = fname; + parser->custom_msg = custommsg; + parser->min = min; + parser->max = max; parser->kwtuple = kwtuple; + parser->initialized = owned ? 1 : -1; assert(parser->next == NULL); parser->next = static_arg_parsers; @@ -1919,10 +2030,34 @@ parser_init(struct _PyArg_Parser *parser) return 1; } +static int +parser_init(struct _PyArg_Parser *parser) +{ + // volatile as it can be modified by other threads + // and should not be optimized or reordered by compiler + if (*((volatile int *)&parser->initialized)) { + assert(parser->kwtuple != NULL); + return 1; + } + PyThread_acquire_lock(_PyRuntime.getargs.mutex, WAIT_LOCK); + // Check again if another thread initialized the parser + // while we were waiting for the lock. + if (*((volatile int *)&parser->initialized)) { + assert(parser->kwtuple != NULL); + PyThread_release_lock(_PyRuntime.getargs.mutex); + return 1; + } + int ret = _parser_init(parser); + PyThread_release_lock(_PyRuntime.getargs.mutex); + return ret; +} + static void parser_clear(struct _PyArg_Parser *parser) { - Py_CLEAR(parser->kwtuple); + if (parser->initialized == 1) { + Py_CLEAR(parser->kwtuple); + } } static PyObject* @@ -2049,6 +2184,7 @@ vgetargskeywordsfast_impl(PyObject *const *args, Py_ssize_t nargs, } format = parser->format; + assert(format != NULL || len == 0); /* convert tuple args and keyword args in same loop, using kwtuple to drive process */ for (i = 0; i < len; i++) { if (*format == '|') { @@ -2132,7 +2268,6 @@ vgetargskeywordsfast_impl(PyObject *const *args, Py_ssize_t nargs, assert(IS_END_OF_FORMAT(*format) || (*format == '|') || (*format == '$')); if (nkwargs > 0) { - Py_ssize_t j; /* make sure there are no arguments given by name and position */ for (i = pos; i < nargs; i++) { keyword = PyTuple_GET_ITEM(kwtuple, i - pos); @@ -2156,34 +2291,9 @@ vgetargskeywordsfast_impl(PyObject *const *args, Py_ssize_t nargs, return cleanreturn(0, &freelist); } } - /* make sure there are no extraneous keyword arguments */ - j = 0; - while (1) { - int match; - if (kwargs != NULL) { - if (!PyDict_Next(kwargs, &j, &keyword, NULL)) - break; - } - else { - if (j >= PyTuple_GET_SIZE(kwnames)) - break; - keyword = PyTuple_GET_ITEM(kwnames, j); - j++; - } - match = PySequence_Contains(kwtuple, keyword); - if (match <= 0) { - if (!match) { - PyErr_Format(PyExc_TypeError, - "'%S' is an invalid keyword " - "argument for %.200s%s", - keyword, - (parser->fname == NULL) ? "this function" : parser->fname, - (parser->fname == NULL) ? "" : "()"); - } - return cleanreturn(0, &freelist); - } - } + error_unexpected_keyword_arg(kwargs, kwnames, kwtuple, parser->fname); + return cleanreturn(0, &freelist); } return cleanreturn(1, &freelist); @@ -2357,7 +2467,6 @@ _PyArg_UnpackKeywords(PyObject *const *args, Py_ssize_t nargs, } if (nkwargs > 0) { - Py_ssize_t j; /* make sure there are no arguments given by name and position */ for (i = posonly; i < nargs; i++) { keyword = PyTuple_GET_ITEM(kwtuple, i - posonly); @@ -2381,34 +2490,9 @@ _PyArg_UnpackKeywords(PyObject *const *args, Py_ssize_t nargs, return NULL; } } - /* make sure there are no extraneous keyword arguments */ - j = 0; - while (1) { - int match; - if (kwargs != NULL) { - if (!PyDict_Next(kwargs, &j, &keyword, NULL)) - break; - } - else { - if (j >= PyTuple_GET_SIZE(kwnames)) - break; - keyword = PyTuple_GET_ITEM(kwnames, j); - j++; - } - match = PySequence_Contains(kwtuple, keyword); - if (match <= 0) { - if (!match) { - PyErr_Format(PyExc_TypeError, - "'%S' is an invalid keyword " - "argument for %.200s%s", - keyword, - (parser->fname == NULL) ? "this function" : parser->fname, - (parser->fname == NULL) ? "" : "()"); - } - return NULL; - } - } + error_unexpected_keyword_arg(kwargs, kwnames, kwtuple, parser->fname); + return NULL; } return buf; @@ -2537,35 +2621,8 @@ _PyArg_UnpackKeywordsWithVararg(PyObject *const *args, Py_ssize_t nargs, } if (nkwargs > 0) { - Py_ssize_t j; - /* make sure there are no extraneous keyword arguments */ - j = 0; - while (1) { - int match; - if (kwargs != NULL) { - if (!PyDict_Next(kwargs, &j, &keyword, NULL)) - break; - } - else { - if (j >= PyTuple_GET_SIZE(kwnames)) - break; - keyword = PyTuple_GET_ITEM(kwnames, j); - j++; - } - - match = PySequence_Contains(kwtuple, keyword); - if (match <= 0) { - if (!match) { - PyErr_Format(PyExc_TypeError, - "'%S' is an invalid keyword " - "argument for %.200s%s", - keyword, - (parser->fname == NULL) ? "this function" : parser->fname, - (parser->fname == NULL) ? "" : "()"); - } - goto exit; - } - } + error_unexpected_keyword_arg(kwargs, kwnames, kwtuple, parser->fname); + goto exit; } return buf; @@ -2641,9 +2698,7 @@ skipitem(const char **p_format, va_list *p_va, int flags) if (*format == '#') { if (p_va != NULL) { if (!(flags & FLAG_SIZE_T)) { - PyErr_SetString(PyExc_SystemError, - "PY_SSIZE_T_CLEAN macro must be defined for '#' formats"); - return NULL; + return "PY_SSIZE_T_CLEAN macro must be defined for '#' formats"; } (void) va_arg(*p_va, Py_ssize_t *); } diff --git a/Python/getopt.c b/Python/getopt.c index fcea60759d12cd..4135bf1446ecfc 100644 --- a/Python/getopt.c +++ b/Python/getopt.c @@ -44,8 +44,12 @@ static const wchar_t *opt_ptr = L""; #define SHORT_OPTS L"bBc:dEhiIJm:OPqRsStuvVW:xX:?" static const _PyOS_LongOption longopts[] = { + /* name, has_arg, val (used in switch in initconfig.c) */ {L"check-hash-based-pycs", 1, 0}, - {NULL, 0, 0}, + {L"help-all", 0, 1}, + {L"help-env", 0, 2}, + {L"help-xoptions", 0, 3}, + {NULL, 0, -1}, /* sentinel */ }; diff --git a/Python/import.c b/Python/import.c index 4b6d6d16821a94..54c21fa4a56aa9 100644 --- a/Python/import.c +++ b/Python/import.c @@ -48,7 +48,7 @@ module _imp PyStatus _PyImportZip_Init(PyThreadState *tstate) { - PyObject *path_hooks, *zipimport; + PyObject *path_hooks; int err = 0; path_hooks = PySys_GetObject("path_hooks"); @@ -63,32 +63,22 @@ _PyImportZip_Init(PyThreadState *tstate) PySys_WriteStderr("# installing zipimport hook\n"); } - zipimport = PyImport_ImportModule("zipimport"); - if (zipimport == NULL) { - _PyErr_Clear(tstate); /* No zip import module -- okay */ + PyObject *zipimporter = _PyImport_GetModuleAttrString("zipimport", "zipimporter"); + if (zipimporter == NULL) { + _PyErr_Clear(tstate); /* No zipimporter object -- okay */ if (verbose) { - PySys_WriteStderr("# can't import zipimport\n"); + PySys_WriteStderr("# can't import zipimport.zipimporter\n"); } } else { - PyObject *zipimporter = PyObject_GetAttr(zipimport, &_Py_ID(zipimporter)); - Py_DECREF(zipimport); - if (zipimporter == NULL) { - _PyErr_Clear(tstate); /* No zipimporter object -- okay */ - if (verbose) { - PySys_WriteStderr("# can't import zipimport.zipimporter\n"); - } + /* sys.path_hooks.insert(0, zipimporter) */ + err = PyList_Insert(path_hooks, 0, zipimporter); + Py_DECREF(zipimporter); + if (err < 0) { + goto error; } - else { - /* sys.path_hooks.insert(0, zipimporter) */ - err = PyList_Insert(path_hooks, 0, zipimporter); - Py_DECREF(zipimporter); - if (err < 0) { - goto error; - } - if (verbose) { - PySys_WriteStderr("# installed zipimport hook\n"); - } + if (verbose) { + PySys_WriteStderr("# installed zipimport hook\n"); } } @@ -2632,6 +2622,37 @@ PyImport_AppendInittab(const char *name, PyObject* (*initfunc)(void)) return PyImport_ExtendInittab(newtab); } + +PyObject * +_PyImport_GetModuleAttr(PyObject *modname, PyObject *attrname) +{ + PyObject *mod = PyImport_Import(modname); + if (mod == NULL) { + return NULL; + } + PyObject *result = PyObject_GetAttr(mod, attrname); + Py_DECREF(mod); + return result; +} + +PyObject * +_PyImport_GetModuleAttrString(const char *modname, const char *attrname) +{ + PyObject *pmodname = PyUnicode_FromString(modname); + if (pmodname == NULL) { + return NULL; + } + PyObject *pattrname = PyUnicode_FromString(attrname); + if (pattrname == NULL) { + Py_DECREF(pmodname); + return NULL; + } + PyObject *result = _PyImport_GetModuleAttr(pmodname, pattrname); + Py_DECREF(pattrname); + Py_DECREF(pmodname); + return result; +} + #ifdef __cplusplus } #endif diff --git a/Python/initconfig.c b/Python/initconfig.c index 5c9c7ee41e7537..f18ec4068bc443 100644 --- a/Python/initconfig.c +++ b/Python/initconfig.c @@ -3,6 +3,7 @@ #include "pycore_getopt.h" // _PyOS_GetOpt() #include "pycore_initconfig.h" // _PyStatus_OK() #include "pycore_interp.h" // _PyInterpreterState.runtime +#include "pycore_long.h" // _PY_LONG_MAX_STR_DIGITS_THRESHOLD #include "pycore_pathconfig.h" // _Py_path_config #include "pycore_pyerrors.h" // _PyErr_Fetch() #include "pycore_pylifecycle.h" // _Py_PreInitializeFromConfig() @@ -28,9 +29,10 @@ static const char usage_line[] = "usage: %ls [option] ... [-c cmd | -m mod | file | -] [arg] ...\n"; -/* Long usage message, split into parts < 512 bytes */ -static const char usage_1[] = "\ -Options and arguments (and corresponding environment variables):\n\ +/* Long help message */ +/* Lines sorted by option name; keep in sync with usage_envvars* below */ +static const char usage_help[] = "\ +Options (and corresponding environment variables):\n\ -b : issue warnings about str(bytes_instance), str(bytearray_instance)\n\ and comparing bytes/bytearray with str. (-bb: issue errors)\n\ -B : don't write .pyc files on import; also PYTHONDONTWRITEBYTECODE=x\n\ @@ -39,8 +41,6 @@ Options and arguments (and corresponding environment variables):\n\ debug builds); also PYTHONDEBUG=x\n\ -E : ignore PYTHON* environment variables (such as PYTHONPATH)\n\ -h : print this help message and exit (also -? or --help)\n\ -"; -static const char usage_2[] = "\ -i : inspect interactively after running script; forces a prompt even\n\ if stdin does not appear to be a terminal; also PYTHONINSPECT=x\n\ -I : isolate Python from the user's environment (implies -E and -s)\n\ @@ -53,8 +53,6 @@ static const char usage_2[] = "\ -q : don't print version and copyright messages on interactive startup\n\ -s : don't add user site directory to sys.path; also PYTHONNOUSERSITE\n\ -S : don't imply 'import site' on initialization\n\ -"; -static const char usage_3[] = "\ -u : force the stdout and stderr streams to be unbuffered;\n\ this option has no effect on stdin; also PYTHONUNBUFFERED=x\n\ -v : verbose (trace import statements); also PYTHONVERBOSE=x\n\ @@ -64,55 +62,81 @@ static const char usage_3[] = "\ -W arg : warning control; arg is action:message:category:module:lineno\n\ also PYTHONWARNINGS=arg\n\ -x : skip first line of source, allowing use of non-Unix forms of #!cmd\n\ --X opt : set implementation-specific option. The following options are available:\n\ - -X faulthandler: enable faulthandler\n\ - -X showrefcount: output the total reference count and number of used\n\ - memory blocks when the program finishes or after each statement in the\n\ - interactive interpreter. This only works on debug builds\n\ - -X tracemalloc: start tracing Python memory allocations using the\n\ - tracemalloc module. By default, only the most recent frame is stored in a\n\ - traceback of a trace. Use -X tracemalloc=NFRAME to start tracing with a\n\ - traceback limit of NFRAME frames\n\ - -X importtime: show how long each import takes. It shows module name,\n\ - cumulative time (including nested imports) and self time (excluding\n\ - nested imports). Note that its output may be broken in multi-threaded\n\ - application. Typical usage is python3 -X importtime -c 'import asyncio'\n\ - -X dev: enable CPython's \"development mode\", introducing additional runtime\n\ - checks which are too expensive to be enabled by default. Effect of the\n\ - developer mode:\n\ - * Add default warning filter, as -W default\n\ - * Install debug hooks on memory allocators: see the PyMem_SetupDebugHooks()\n\ - C function\n\ - * Enable the faulthandler module to dump the Python traceback on a crash\n\ - * Enable asyncio debug mode\n\ - * Set the dev_mode attribute of sys.flags to True\n\ - * io.IOBase destructor logs close() exceptions\n\ - -X utf8: enable UTF-8 mode for operating system interfaces, overriding the default\n\ - locale-aware mode. -X utf8=0 explicitly disables UTF-8 mode (even when it would\n\ - otherwise activate automatically)\n\ - -X pycache_prefix=PATH: enable writing .pyc files to a parallel tree rooted at the\n\ - given directory instead of to the code tree\n\ - -X warn_default_encoding: enable opt-in EncodingWarning for 'encoding=None'\n\ - -X no_debug_ranges: disable the inclusion of the tables mapping extra location \n\ - information (end line, start column offset and end column offset) to every \n\ - instruction in code objects. This is useful when smaller code objects and pyc \n\ - files are desired as well as suppressing the extra visual location indicators \n\ - when the interpreter displays tracebacks.\n\ - -X frozen_modules=[on|off]: whether or not frozen modules should be used.\n\ - The default is \"on\" (or \"off\" if you are running a local build).\n\ +-X opt : set implementation-specific option\n\ --check-hash-based-pycs always|default|never:\n\ - control how Python invalidates hash-based .pyc files\n\ -"; -static const char usage_4[] = "\ + control how Python invalidates hash-based .pyc files\n\ +--help-env : print help about Python environment variables and exit\n\ +--help-xoptions : print help about implementation-specific -X options and exit\n\ +--help-all : print complete help information and exit\n\ +Arguments:\n\ file : program read from script file\n\ - : program read from stdin (default; interactive mode if a tty)\n\ -arg ...: arguments passed to program in sys.argv[1:]\n\n\ -Other environment variables:\n\ -PYTHONSTARTUP: file executed on interactive startup (no default)\n\ -PYTHONPATH : '%lc'-separated list of directories prefixed to the\n\ - default module search path. The result is sys.path.\n\ +arg ...: arguments passed to program in sys.argv[1:]\n\ "; -static const char usage_5[] = + +static const char usage_xoptions[] = "\ +The following implementation-specific options are available:\n\ +\n\ +-X faulthandler: enable faulthandler\n\ +\n\ +-X showrefcount: output the total reference count and number of used\n\ + memory blocks when the program finishes or after each statement in the\n\ + interactive interpreter. This only works on debug builds\n\ +\n\ +-X tracemalloc: start tracing Python memory allocations using the\n\ + tracemalloc module. By default, only the most recent frame is stored in a\n\ + traceback of a trace. Use -X tracemalloc=NFRAME to start tracing with a\n\ + traceback limit of NFRAME frames\n\ +\n\ +-X importtime: show how long each import takes. It shows module name,\n\ + cumulative time (including nested imports) and self time (excluding\n\ + nested imports). Note that its output may be broken in multi-threaded\n\ + application. Typical usage is python3 -X importtime -c 'import asyncio'\n\ +\n\ +-X dev: enable CPython's \"development mode\", introducing additional runtime\n\ + checks which are too expensive to be enabled by default. Effect of the\n\ + developer mode:\n\ + * Add default warning filter, as -W default\n\ + * Install debug hooks on memory allocators: see the PyMem_SetupDebugHooks()\n\ + C function\n\ + * Enable the faulthandler module to dump the Python traceback on a crash\n\ + * Enable asyncio debug mode\n\ + * Set the dev_mode attribute of sys.flags to True\n\ + * io.IOBase destructor logs close() exceptions\n\ +\n\ +-X utf8: enable UTF-8 mode for operating system interfaces, overriding the default\n\ + locale-aware mode. -X utf8=0 explicitly disables UTF-8 mode (even when it would\n\ + otherwise activate automatically)\n\ +\n\ +-X pycache_prefix=PATH: enable writing .pyc files to a parallel tree rooted at the\n\ + given directory instead of to the code tree\n\ +\n\ +-X warn_default_encoding: enable opt-in EncodingWarning for 'encoding=None'\n\ +\n\ +-X no_debug_ranges: disable the inclusion of the tables mapping extra location \n\ + information (end line, start column offset and end column offset) to every \n\ + instruction in code objects. This is useful when smaller code objects and pyc \n\ + files are desired as well as suppressing the extra visual location indicators \n\ + when the interpreter displays tracebacks.\n\ +\n\ +-X perf: activate support for the Linux \"perf\" profiler by activating the \"perf\"\n\ + trampoline. When this option is activated, the Linux \"perf\" profiler will be \n\ + able to report Python calls. This option is only available on some platforms and will \n\ + do nothing if is not supported on the current system. The default value is \"off\".\n\ +\n\ +-X frozen_modules=[on|off]: whether or not frozen modules should be used.\n\ + The default is \"on\" (or \"off\" if you are running a local build).\n\ +\n\ +-X int_max_str_digits=number: limit the size of int<->str conversions.\n\ + This helps avoid denial of service attacks when parsing untrusted data.\n\ + The default is sys.int_info.default_max_str_digits. 0 disables."; + +/* Envvars that don't have equivalent command-line options are listed first */ +static const char usage_envvars[] = +"Environment variables that change behavior:\n" +"PYTHONSTARTUP: file executed on interactive startup (no default)\n" +"PYTHONPATH : '%lc'-separated list of directories prefixed to the\n" +" default module search path. The result is sys.path.\n" "PYTHONSAFEPATH: don't prepend a potentially unsafe path to sys.path.\n" "PYTHONHOME : alternate <prefix> directory (or <prefix>%lc<exec_prefix>).\n" " The default module search path uses %s.\n" @@ -120,12 +144,15 @@ static const char usage_5[] = "PYTHONCASEOK : ignore case in 'import' statements (Windows).\n" "PYTHONUTF8: if set to 1, enable the UTF-8 mode.\n" "PYTHONIOENCODING: Encoding[:errors] used for stdin/stdout/stderr.\n" -"PYTHONFAULTHANDLER: dump the Python traceback on fatal errors.\n"; -static const char usage_6[] = +"PYTHONFAULTHANDLER: dump the Python traceback on fatal errors.\n" "PYTHONHASHSEED: if this variable is set to 'random', a random value is used\n" " to seed the hashes of str and bytes objects. It can also be set to an\n" " integer in the range [0,4294967295] to get hash values with a\n" " predictable seed.\n" +"PYTHONINTMAXSTRDIGITS: limits the maximum digit characters in an int value\n" +" when converting from a string and when converting an int back to a str.\n" +" A value of 0 disables the limit. Conversions to or from bases 2, 4, 8,\n" +" 16, and 32 are never limited.\n" "PYTHONMALLOC: set the Python memory allocators and/or install debug hooks\n" " on Python memory allocators. Use PYTHONMALLOC=debug to install debug\n" " hooks.\n" @@ -141,7 +168,16 @@ static const char usage_6[] = " tables mapping extra location information (end line, start column offset \n" " and end column offset) to every instruction in code objects. This is useful \n" " when smaller code objects and pyc files are desired as well as suppressing the \n" -" extra visual location indicators when the interpreter displays tracebacks.\n"; +" extra visual location indicators when the interpreter displays tracebacks.\n" +"These variables have equivalent command-line parameters (see --help for details):\n" +"PYTHONDEBUG : enable parser debug mode (-d)\n" +"PYTHONDONTWRITEBYTECODE : don't write .pyc files (-B)\n" +"PYTHONINSPECT : inspect interactively after running script (-i)\n" +"PYTHONNOUSERSITE : disable user site directory (-s)\n" +"PYTHONOPTIMIZE : enable level 1 optimizations (-O)\n" +"PYTHONUNBUFFERED : disable stdout/stderr buffering (-u)\n" +"PYTHONVERBOSE : trace import statements (-v)\n" +"PYTHONWARNINGS=arg : warning control (-W arg)\n"; #if defined(MS_WINDOWS) # define PYTHONHOMEHELP "<prefix>\\python{major}{minor}" @@ -158,7 +194,7 @@ int Py_UTF8Mode = 0; int Py_DebugFlag = 0; /* Needed by parser.c */ int Py_VerboseFlag = 0; /* Needed by import.c */ int Py_QuietFlag = 0; /* Needed by sysmodule.c */ -int Py_InteractiveFlag = 0; /* Needed by Py_FdIsInteractive() below */ +int Py_InteractiveFlag = 0; /* Previously, was used by Py_FdIsInteractive() */ int Py_InspectFlag = 0; /* Needed to determine whether to exit at SystemExit */ int Py_OptimizeFlag = 0; /* Needed by compile.c */ int Py_NoSiteFlag = 0; /* Suppress 'import site' */ @@ -179,6 +215,8 @@ int Py_LegacyWindowsStdioFlag = 0; /* Uses FileIO instead of WindowsConsoleIO */ static PyObject * _Py_GetGlobalVariablesAsDict(void) { +_Py_COMP_DIAG_PUSH +_Py_COMP_DIAG_IGNORE_DEPR_DECLS PyObject *dict, *obj; dict = PyDict_New(); @@ -245,15 +283,19 @@ _Py_GetGlobalVariablesAsDict(void) #undef SET_ITEM #undef SET_ITEM_INT #undef SET_ITEM_STR +_Py_COMP_DIAG_POP } char* Py_GETENV(const char *name) { +_Py_COMP_DIAG_PUSH +_Py_COMP_DIAG_IGNORE_DEPR_DECLS if (Py_IgnoreEnvironmentFlag) { return NULL; } return getenv(name); +_Py_COMP_DIAG_POP } /* --- PyStatus ----------------------------------------------- */ @@ -515,8 +557,11 @@ Py_SetStandardStreamEncoding(const char *encoding, const char *errors) } #ifdef MS_WINDOWS if (_Py_StandardStreamEncoding) { +_Py_COMP_DIAG_PUSH +_Py_COMP_DIAG_IGNORE_DEPR_DECLS /* Overriding the stream encoding implies legacy streams */ Py_LegacyWindowsStdioFlag = 1; +_Py_COMP_DIAG_POP } #endif @@ -714,6 +759,7 @@ _PyConfig_InitCompatConfig(PyConfig *config) config->use_hash_seed = -1; config->faulthandler = -1; config->tracemalloc = -1; + config->perf_profiling = -1; config->module_search_paths_set = 0; config->parse_argv = 0; config->site_import = -1; @@ -747,6 +793,10 @@ _PyConfig_InitCompatConfig(PyConfig *config) config->code_debug_ranges = 1; } +/* Excluded from public struct PyConfig for backporting reasons. */ +/* default to unconfigured, _PyLong_InitTypes() does the rest */ +int _Py_global_config_int_max_str_digits = -1; + static void config_init_defaults(PyConfig *config) @@ -798,6 +848,7 @@ PyConfig_InitIsolatedConfig(PyConfig *config) config->use_hash_seed = 0; config->faulthandler = 0; config->tracemalloc = 0; + config->perf_profiling = 0; config->safe_path = 1; config->pathconfig_warnings = 0; #ifdef MS_WINDOWS @@ -909,6 +960,7 @@ _PyConfig_Copy(PyConfig *config, const PyConfig *config2) COPY_ATTR(_install_importlib); COPY_ATTR(faulthandler); COPY_ATTR(tracemalloc); + COPY_ATTR(perf_profiling); COPY_ATTR(import_time); COPY_ATTR(code_debug_ranges); COPY_ATTR(show_ref_count); @@ -1019,6 +1071,7 @@ _PyConfig_AsDict(const PyConfig *config) SET_ITEM_UINT(hash_seed); SET_ITEM_INT(faulthandler); SET_ITEM_INT(tracemalloc); + SET_ITEM_INT(perf_profiling); SET_ITEM_INT(import_time); SET_ITEM_INT(code_debug_ranges); SET_ITEM_INT(show_ref_count); @@ -1300,6 +1353,7 @@ _PyConfig_FromDict(PyConfig *config, PyObject *dict) CHECK_VALUE("hash_seed", config->hash_seed <= MAX_HASH_SEED); GET_UINT(faulthandler); GET_UINT(tracemalloc); + GET_UINT(perf_profiling); GET_UINT(import_time); GET_UINT(code_debug_ranges); GET_UINT(show_ref_count); @@ -1421,6 +1475,8 @@ config_get_env_dup(PyConfig *config, static void config_get_global_vars(PyConfig *config) { +_Py_COMP_DIAG_PUSH +_Py_COMP_DIAG_IGNORE_DEPR_DECLS if (config->_config_init != _PyConfig_INIT_COMPAT) { /* Python and Isolated configuration ignore global variables */ return; @@ -1456,6 +1512,7 @@ config_get_global_vars(PyConfig *config) #undef COPY_FLAG #undef COPY_NOT_FLAG +_Py_COMP_DIAG_POP } @@ -1463,6 +1520,8 @@ config_get_global_vars(PyConfig *config) static void config_set_global_vars(const PyConfig *config) { +_Py_COMP_DIAG_PUSH +_Py_COMP_DIAG_IGNORE_DEPR_DECLS #define COPY_FLAG(ATTR, VAR) \ if (config->ATTR != -1) { \ VAR = config->ATTR; \ @@ -1497,6 +1556,7 @@ config_set_global_vars(const PyConfig *config) #undef COPY_FLAG #undef COPY_NOT_FLAG +_Py_COMP_DIAG_POP } @@ -1650,6 +1710,26 @@ config_read_env_vars(PyConfig *config) return _PyStatus_OK(); } +static PyStatus +config_init_perf_profiling(PyConfig *config) +{ + int active = 0; + const char *env = config_get_env(config, "PYTHONPERFSUPPORT"); + if (env) { + if (_Py_str_to_int(env, &active) != 0) { + active = 0; + } + if (active) { + config->perf_profiling = 1; + } + } + const wchar_t *xoption = config_get_xoption(config, L"perf"); + if (xoption) { + config->perf_profiling = 1; + } + return _PyStatus_OK(); + +} static PyStatus config_init_tracemalloc(PyConfig *config) @@ -1695,6 +1775,48 @@ config_init_tracemalloc(PyConfig *config) return _PyStatus_OK(); } +static PyStatus +config_init_int_max_str_digits(PyConfig *config) +{ + int maxdigits; + int valid = 0; + + const char *env = config_get_env(config, "PYTHONINTMAXSTRDIGITS"); + if (env) { + if (!_Py_str_to_int(env, &maxdigits)) { + valid = ((maxdigits == 0) || (maxdigits >= _PY_LONG_MAX_STR_DIGITS_THRESHOLD)); + } + if (!valid) { +#define STRINGIFY(VAL) _STRINGIFY(VAL) +#define _STRINGIFY(VAL) #VAL + return _PyStatus_ERR( + "PYTHONINTMAXSTRDIGITS: invalid limit; must be >= " + STRINGIFY(_PY_LONG_MAX_STR_DIGITS_THRESHOLD) + " or 0 for unlimited."); + } + _Py_global_config_int_max_str_digits = maxdigits; + } + + const wchar_t *xoption = config_get_xoption(config, L"int_max_str_digits"); + if (xoption) { + const wchar_t *sep = wcschr(xoption, L'='); + if (sep) { + if (!config_wstr_to_int(sep + 1, &maxdigits)) { + valid = ((maxdigits == 0) || (maxdigits >= _PY_LONG_MAX_STR_DIGITS_THRESHOLD)); + } + } + if (!valid) { + return _PyStatus_ERR( + "-X int_max_str_digits: invalid limit; must be >= " + STRINGIFY(_PY_LONG_MAX_STR_DIGITS_THRESHOLD) + " or 0 for unlimited."); +#undef _STRINGIFY +#undef STRINGIFY + } + _Py_global_config_int_max_str_digits = maxdigits; + } + return _PyStatus_OK(); +} static PyStatus config_init_pycache_prefix(PyConfig *config) @@ -1752,6 +1874,20 @@ config_read_complex_options(PyConfig *config) } } + if (config->perf_profiling < 0) { + status = config_init_perf_profiling(config); + if (_PyStatus_EXCEPTION(status)) { + return status; + } + } + + if (_Py_global_config_int_max_str_digits < 0) { + status = config_init_int_max_str_digits(config); + if (_PyStatus_EXCEPTION(status)) { + return status; + } + } + if (config->pycache_prefix == NULL) { status = config_init_pycache_prefix(config); if (_PyStatus_EXCEPTION(status)) { @@ -2024,49 +2160,6 @@ _PyConfig_InitImportConfig(PyConfig *config) return config_init_import(config, 1); } -// List of known xoptions to validate against the provided ones. Note that all -// options are listed, even if they are only available if a specific macro is -// set, like -X showrefcount which requires a debug build. In this case unknown -// options are silently ignored. -const wchar_t* known_xoptions[] = { - L"faulthandler", - L"showrefcount", - L"tracemalloc", - L"importtime", - L"dev", - L"utf8", - L"pycache_prefix", - L"warn_default_encoding", - L"no_debug_ranges", - L"frozen_modules", - NULL, -}; - -static const wchar_t* -_Py_check_xoptions(const PyWideStringList *xoptions, const wchar_t **names) -{ - for (Py_ssize_t i=0; i < xoptions->length; i++) { - const wchar_t *option = xoptions->items[i]; - size_t len; - wchar_t *sep = wcschr(option, L'='); - if (sep != NULL) { - len = (sep - option); - } - else { - len = wcslen(option); - } - int found = 0; - for (const wchar_t** name = names; *name != NULL; name++) { - if (wcsncmp(option, *name, len) == 0 && (*name)[len] == L'\0') { - found = 1; - } - } - if (found == 0) { - return option; - } - } - return NULL; -} static PyStatus config_read(PyConfig *config, int compute_path_config) @@ -2082,11 +2175,6 @@ config_read(PyConfig *config, int compute_path_config) } /* -X options */ - const wchar_t* option = _Py_check_xoptions(&config->xoptions, known_xoptions); - if (option != NULL) { - return PyStatus_Error("Unknown value for option -X"); - } - if (config_get_xoption(config, L"showrefcount")) { config->show_ref_count = 1; } @@ -2115,6 +2203,9 @@ config_read(PyConfig *config, int compute_path_config) if (config->tracemalloc < 0) { config->tracemalloc = 0; } + if (config->perf_profiling < 0) { + config->perf_profiling = 0; + } if (config->use_hash_seed < 0) { config->use_hash_seed = 0; config->hash_seed = 0; @@ -2237,15 +2328,32 @@ config_usage(int error, const wchar_t* program) if (error) fprintf(f, "Try `python -h' for more information.\n"); else { - fputs(usage_1, f); - fputs(usage_2, f); - fputs(usage_3, f); - fprintf(f, usage_4, (wint_t)DELIM); - fprintf(f, usage_5, (wint_t)DELIM, PYTHONHOMEHELP); - fputs(usage_6, f); + fputs(usage_help, f); } } +static void +config_envvars_usage() +{ + printf(usage_envvars, (wint_t)DELIM, (wint_t)DELIM, PYTHONHOMEHELP); +} + +static void +config_xoptions_usage() +{ + puts(usage_xoptions); +} + +static void +config_complete_usage(const wchar_t* program) +{ + config_usage(0, program); + puts("\n"); + config_envvars_usage(); + puts("\n"); + config_xoptions_usage(); +} + /* Parse the command line arguments */ static PyStatus @@ -2256,6 +2364,9 @@ config_parse_cmdline(PyConfig *config, PyWideStringList *warnoptions, const PyWideStringList *argv = &config->argv; int print_version = 0; const wchar_t* program = config->program_name; + if (!program && argv->length >= 1) { + program = argv->items[0]; + } _PyOS_ResetGetOpt(); do { @@ -2297,9 +2408,9 @@ config_parse_cmdline(PyConfig *config, PyWideStringList *warnoptions, } switch (c) { + // Integers represent long options, see Python/getopt.c case 0: - // Handle long option. - assert(longindex == 0); // Only one long option now. + // check-hash-based-pycs if (wcscmp(_PyOS_optarg, L"always") == 0 || wcscmp(_PyOS_optarg, L"never") == 0 || wcscmp(_PyOS_optarg, L"default") == 0) @@ -2317,6 +2428,21 @@ config_parse_cmdline(PyConfig *config, PyWideStringList *warnoptions, } break; + case 1: + // help-all + config_complete_usage(program); + return _PyStatus_EXIT(0); + + case 2: + // help-env + config_envvars_usage(); + return _PyStatus_EXIT(0); + + case 3: + // help-xoptions + config_xoptions_usage(); + return _PyStatus_EXIT(0); + case 'b': config->bytes_warning++; break; diff --git a/Python/makeopcodetargets.py b/Python/makeopcodetargets.py index 3bf2e35ccb6dab..33a4b4a76a1253 100755 --- a/Python/makeopcodetargets.py +++ b/Python/makeopcodetargets.py @@ -34,7 +34,8 @@ def write_contents(f): targets = ['_unknown_opcode'] * 256 targets[255] = "TARGET_DO_TRACING" for opname, op in opcode.opmap.items(): - targets[op] = "TARGET_%s" % opname + if not opcode.is_pseudo(op): + targets[op] = "TARGET_%s" % opname next_op = 1 for opname in opcode._specialized_instructions: while targets[next_op] != '_unknown_opcode': diff --git a/Python/opcode_targets.h b/Python/opcode_targets.h index 71b7a76a01aa83..c1ff367d4fd38d 100644 --- a/Python/opcode_targets.h +++ b/Python/opcode_targets.h @@ -25,18 +25,20 @@ static void *opcode_targets[256] = { &&TARGET_CALL_PY_EXACT_ARGS, &&TARGET_CALL_PY_WITH_DEFAULTS, &&TARGET_BINARY_SUBSCR, + &&TARGET_BINARY_SLICE, + &&TARGET_STORE_SLICE, &&TARGET_CALL_BOUND_METHOD_EXACT_ARGS, &&TARGET_CALL_BUILTIN_CLASS, - &&TARGET_CALL_BUILTIN_FAST_WITH_KEYWORDS, - &&TARGET_CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS, &&TARGET_GET_LEN, &&TARGET_MATCH_MAPPING, &&TARGET_MATCH_SEQUENCE, &&TARGET_MATCH_KEYS, - &&TARGET_CALL_NO_KW_BUILTIN_FAST, + &&TARGET_CALL_BUILTIN_FAST_WITH_KEYWORDS, &&TARGET_PUSH_EXC_INFO, &&TARGET_CHECK_EXC_MATCH, &&TARGET_CHECK_EG_MATCH, + &&TARGET_CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS, + &&TARGET_CALL_NO_KW_BUILTIN_FAST, &&TARGET_CALL_NO_KW_BUILTIN_O, &&TARGET_CALL_NO_KW_ISINSTANCE, &&TARGET_CALL_NO_KW_LEN, @@ -46,46 +48,44 @@ static void *opcode_targets[256] = { &&TARGET_CALL_NO_KW_METHOD_DESCRIPTOR_O, &&TARGET_CALL_NO_KW_STR_1, &&TARGET_CALL_NO_KW_TUPLE_1, - &&TARGET_CALL_NO_KW_TYPE_1, - &&TARGET_COMPARE_OP_ADAPTIVE, &&TARGET_WITH_EXCEPT_START, &&TARGET_GET_AITER, &&TARGET_GET_ANEXT, &&TARGET_BEFORE_ASYNC_WITH, &&TARGET_BEFORE_WITH, &&TARGET_END_ASYNC_FOR, + &&TARGET_CLEANUP_THROW, + &&TARGET_CALL_NO_KW_TYPE_1, + &&TARGET_COMPARE_OP_ADAPTIVE, &&TARGET_COMPARE_OP_FLOAT_JUMP, &&TARGET_COMPARE_OP_INT_JUMP, + &&TARGET_STORE_SUBSCR, + &&TARGET_DELETE_SUBSCR, &&TARGET_COMPARE_OP_STR_JUMP, &&TARGET_EXTENDED_ARG_QUICK, + &&TARGET_FOR_ITER_ADAPTIVE, + &&TARGET_FOR_ITER_LIST, + &&TARGET_FOR_ITER_RANGE, &&TARGET_JUMP_BACKWARD_QUICK, - &&TARGET_STORE_SUBSCR, - &&TARGET_DELETE_SUBSCR, - &&TARGET_LOAD_ATTR_ADAPTIVE, - &&TARGET_LOAD_ATTR_INSTANCE_VALUE, - &&TARGET_LOAD_ATTR_MODULE, - &&TARGET_LOAD_ATTR_SLOT, - &&TARGET_LOAD_ATTR_WITH_HINT, - &&TARGET_LOAD_CONST__LOAD_FAST, &&TARGET_GET_ITER, &&TARGET_GET_YIELD_FROM_ITER, &&TARGET_PRINT_EXPR, &&TARGET_LOAD_BUILD_CLASS, - &&TARGET_LOAD_FAST__LOAD_CONST, - &&TARGET_LOAD_FAST__LOAD_FAST, + &&TARGET_LOAD_ATTR_ADAPTIVE, + &&TARGET_LOAD_ATTR_CLASS, &&TARGET_LOAD_ASSERTION_ERROR, &&TARGET_RETURN_GENERATOR, - &&TARGET_LOAD_GLOBAL_ADAPTIVE, - &&TARGET_LOAD_GLOBAL_BUILTIN, - &&TARGET_LOAD_GLOBAL_MODULE, - &&TARGET_LOAD_METHOD_ADAPTIVE, - &&TARGET_LOAD_METHOD_CLASS, - &&TARGET_LOAD_METHOD_LAZY_DICT, + &&TARGET_LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN, + &&TARGET_LOAD_ATTR_INSTANCE_VALUE, + &&TARGET_LOAD_ATTR_MODULE, + &&TARGET_LOAD_ATTR_PROPERTY, + &&TARGET_LOAD_ATTR_SLOT, + &&TARGET_LOAD_ATTR_WITH_HINT, &&TARGET_LIST_TO_TUPLE, &&TARGET_RETURN_VALUE, &&TARGET_IMPORT_STAR, &&TARGET_SETUP_ANNOTATIONS, - &&TARGET_LOAD_METHOD_MODULE, + &&TARGET_LOAD_ATTR_METHOD_LAZY_DICT, &&TARGET_ASYNC_GEN_WRAP, &&TARGET_PREP_RERAISE_STAR, &&TARGET_POP_EXCEPT, @@ -112,23 +112,23 @@ static void *opcode_targets[256] = { &&TARGET_JUMP_FORWARD, &&TARGET_JUMP_IF_FALSE_OR_POP, &&TARGET_JUMP_IF_TRUE_OR_POP, - &&TARGET_LOAD_METHOD_NO_DICT, - &&TARGET_POP_JUMP_FORWARD_IF_FALSE, - &&TARGET_POP_JUMP_FORWARD_IF_TRUE, + &&TARGET_LOAD_ATTR_METHOD_NO_DICT, + &&TARGET_POP_JUMP_IF_FALSE, + &&TARGET_POP_JUMP_IF_TRUE, &&TARGET_LOAD_GLOBAL, &&TARGET_IS_OP, &&TARGET_CONTAINS_OP, &&TARGET_RERAISE, &&TARGET_COPY, - &&TARGET_LOAD_METHOD_WITH_DICT, + &&TARGET_LOAD_ATTR_METHOD_WITH_DICT, &&TARGET_BINARY_OP, &&TARGET_SEND, &&TARGET_LOAD_FAST, &&TARGET_STORE_FAST, &&TARGET_DELETE_FAST, - &&TARGET_LOAD_METHOD_WITH_VALUES, - &&TARGET_POP_JUMP_FORWARD_IF_NOT_NONE, - &&TARGET_POP_JUMP_FORWARD_IF_NONE, + &&TARGET_LOAD_FAST_CHECK, + &&TARGET_POP_JUMP_IF_NOT_NONE, + &&TARGET_POP_JUMP_IF_NONE, &&TARGET_RAISE_VARARGS, &&TARGET_GET_AWAITABLE, &&TARGET_MAKE_FUNCTION, @@ -140,9 +140,9 @@ static void *opcode_targets[256] = { &&TARGET_STORE_DEREF, &&TARGET_DELETE_DEREF, &&TARGET_JUMP_BACKWARD, - &&TARGET_RESUME_QUICK, + &&TARGET_LOAD_ATTR_METHOD_WITH_VALUES, &&TARGET_CALL_FUNCTION_EX, - &&TARGET_STORE_ATTR_ADAPTIVE, + &&TARGET_LOAD_CONST__LOAD_FAST, &&TARGET_EXTENDED_ARG, &&TARGET_LIST_APPEND, &&TARGET_SET_ADD, @@ -152,30 +152,32 @@ static void *opcode_targets[256] = { &&TARGET_YIELD_VALUE, &&TARGET_RESUME, &&TARGET_MATCH_CLASS, - &&TARGET_STORE_ATTR_INSTANCE_VALUE, - &&TARGET_STORE_ATTR_SLOT, + &&TARGET_LOAD_FAST__LOAD_CONST, + &&TARGET_LOAD_FAST__LOAD_FAST, &&TARGET_FORMAT_VALUE, &&TARGET_BUILD_CONST_KEY_MAP, &&TARGET_BUILD_STRING, - &&TARGET_STORE_ATTR_WITH_HINT, - &&TARGET_STORE_FAST__LOAD_FAST, - &&TARGET_LOAD_METHOD, - &&TARGET_STORE_FAST__STORE_FAST, + &&TARGET_LOAD_GLOBAL_ADAPTIVE, + &&TARGET_LOAD_GLOBAL_BUILTIN, + &&TARGET_LOAD_GLOBAL_MODULE, + &&TARGET_RESUME_QUICK, &&TARGET_LIST_EXTEND, &&TARGET_SET_UPDATE, &&TARGET_DICT_MERGE, &&TARGET_DICT_UPDATE, + &&TARGET_STORE_ATTR_ADAPTIVE, + &&TARGET_STORE_ATTR_INSTANCE_VALUE, + &&TARGET_STORE_ATTR_SLOT, + &&TARGET_STORE_ATTR_WITH_HINT, + &&TARGET_STORE_FAST__LOAD_FAST, + &&TARGET_CALL, + &&TARGET_KW_NAMES, + &&TARGET_STORE_FAST__STORE_FAST, &&TARGET_STORE_SUBSCR_ADAPTIVE, &&TARGET_STORE_SUBSCR_DICT, &&TARGET_STORE_SUBSCR_LIST_INT, &&TARGET_UNPACK_SEQUENCE_ADAPTIVE, &&TARGET_UNPACK_SEQUENCE_LIST, - &&TARGET_CALL, - &&TARGET_KW_NAMES, - &&TARGET_POP_JUMP_BACKWARD_IF_NOT_NONE, - &&TARGET_POP_JUMP_BACKWARD_IF_NONE, - &&TARGET_POP_JUMP_BACKWARD_IF_FALSE, - &&TARGET_POP_JUMP_BACKWARD_IF_TRUE, &&TARGET_UNPACK_SEQUENCE_TUPLE, &&TARGET_UNPACK_SEQUENCE_TWO_TUPLE, &&_unknown_opcode, @@ -252,7 +254,5 @@ static void *opcode_targets[256] = { &&_unknown_opcode, &&_unknown_opcode, &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, &&TARGET_DO_TRACING }; diff --git a/Python/pathconfig.c b/Python/pathconfig.c index 4271928571fa1f..69b7e10a3b0288 100644 --- a/Python/pathconfig.c +++ b/Python/pathconfig.c @@ -36,10 +36,11 @@ typedef struct _PyPathConfig { wchar_t *program_name; /* Set by Py_SetPythonHome() or PYTHONHOME environment variable */ wchar_t *home; + int _is_python_build; } _PyPathConfig; # define _PyPathConfig_INIT \ - {.module_search_path = NULL} + {.module_search_path = NULL, ._is_python_build = 0} _PyPathConfig _Py_path_config = _PyPathConfig_INIT; @@ -72,6 +73,7 @@ _PyPathConfig_ClearGlobal(void) CLEAR(calculated_module_search_path); CLEAR(program_name); CLEAR(home); + _Py_path_config._is_python_build = 0; #undef CLEAR @@ -99,15 +101,25 @@ _PyPathConfig_ReadGlobal(PyConfig *config) } \ } while (0) +#define COPY_INT(ATTR) \ + do { \ + assert(_Py_path_config.ATTR >= 0); \ + if ((_Py_path_config.ATTR >= 0) && (config->ATTR <= 0)) { \ + config->ATTR = _Py_path_config.ATTR; \ + } \ + } while (0) + COPY(prefix); COPY(exec_prefix); COPY(stdlib_dir); COPY(program_name); COPY(home); COPY2(executable, program_full_path); + COPY_INT(_is_python_build); // module_search_path must be initialised - not read #undef COPY #undef COPY2 +#undef COPY_INT done: return status; @@ -137,14 +149,23 @@ _PyPathConfig_UpdateGlobal(const PyConfig *config) } \ } while (0) +#define COPY_INT(ATTR) \ + do { \ + if (config->ATTR > 0) { \ + _Py_path_config.ATTR = config->ATTR; \ + } \ + } while (0) + COPY(prefix); COPY(exec_prefix); COPY(stdlib_dir); COPY(program_name); COPY(home); COPY2(program_full_path, executable); + COPY_INT(_is_python_build); #undef COPY #undef COPY2 +#undef COPY_INT PyMem_RawFree(_Py_path_config.module_search_path); _Py_path_config.module_search_path = NULL; diff --git a/Python/preconfig.c b/Python/preconfig.c index e7125cd2e3e0e3..77a86d651eb0f4 100644 --- a/Python/preconfig.c +++ b/Python/preconfig.c @@ -24,6 +24,8 @@ int _Py_HasFileSystemDefaultEncodeErrors = 0; void _Py_ClearFileSystemEncoding(void) { +_Py_COMP_DIAG_PUSH +_Py_COMP_DIAG_IGNORE_DEPR_DECLS if (!Py_HasFileSystemDefaultEncoding && Py_FileSystemDefaultEncoding) { PyMem_RawFree((char*)Py_FileSystemDefaultEncoding); Py_FileSystemDefaultEncoding = NULL; @@ -32,6 +34,7 @@ _Py_ClearFileSystemEncoding(void) PyMem_RawFree((char*)Py_FileSystemDefaultEncodeErrors); Py_FileSystemDefaultEncodeErrors = NULL; } +_Py_COMP_DIAG_POP } @@ -56,11 +59,14 @@ _Py_SetFileSystemEncoding(const char *encoding, const char *errors) _Py_ClearFileSystemEncoding(); +_Py_COMP_DIAG_PUSH +_Py_COMP_DIAG_IGNORE_DEPR_DECLS Py_FileSystemDefaultEncoding = encoding2; Py_HasFileSystemDefaultEncoding = 0; Py_FileSystemDefaultEncodeErrors = errors2; _Py_HasFileSystemDefaultEncodeErrors = 0; +_Py_COMP_DIAG_POP return 0; } @@ -294,17 +300,7 @@ _PyPreConfig_InitCompatConfig(PyPreConfig *config) config->coerce_c_locale_warn = 0; config->dev_mode = -1; -#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS - /* bpo-40512: pymalloc is not compatible with subinterpreters, - force usage of libc malloc() which is thread-safe. */ -#ifdef Py_DEBUG - config->allocator = PYMEM_ALLOCATOR_MALLOC_DEBUG; -#else - config->allocator = PYMEM_ALLOCATOR_MALLOC; -#endif -#else config->allocator = PYMEM_ALLOCATOR_NOT_SET; -#endif #ifdef MS_WINDOWS config->legacy_windows_fs_encoding = -1; #endif @@ -482,6 +478,8 @@ preconfig_get_global_vars(PyPreConfig *config) config->ATTR = !(VALUE); \ } +_Py_COMP_DIAG_PUSH +_Py_COMP_DIAG_IGNORE_DEPR_DECLS COPY_FLAG(isolated, Py_IsolatedFlag); COPY_NOT_FLAG(use_environment, Py_IgnoreEnvironmentFlag); if (Py_UTF8Mode > 0) { @@ -490,6 +488,7 @@ preconfig_get_global_vars(PyPreConfig *config) #ifdef MS_WINDOWS COPY_FLAG(legacy_windows_fs_encoding, Py_LegacyWindowsFSEncodingFlag); #endif +_Py_COMP_DIAG_POP #undef COPY_FLAG #undef COPY_NOT_FLAG @@ -508,12 +507,15 @@ preconfig_set_global_vars(const PyPreConfig *config) VAR = !config->ATTR; \ } +_Py_COMP_DIAG_PUSH +_Py_COMP_DIAG_IGNORE_DEPR_DECLS COPY_FLAG(isolated, Py_IsolatedFlag); COPY_NOT_FLAG(use_environment, Py_IgnoreEnvironmentFlag); #ifdef MS_WINDOWS COPY_FLAG(legacy_windows_fs_encoding, Py_LegacyWindowsFSEncodingFlag); #endif COPY_FLAG(utf8_mode, Py_UTF8Mode); +_Py_COMP_DIAG_POP #undef COPY_FLAG #undef COPY_NOT_FLAG diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c index 42a058181dd693..c550f13bc14820 100644 --- a/Python/pylifecycle.c +++ b/Python/pylifecycle.c @@ -695,11 +695,6 @@ pycore_init_types(PyInterpreterState *interp) { PyStatus status; - status = _PyTypes_InitState(interp); - if (_PyStatus_EXCEPTION(status)) { - return status; - } - status = _PyTypes_InitTypes(interp); if (_PyStatus_EXCEPTION(status)) { return status; @@ -787,6 +782,9 @@ pycore_init_builtins(PyThreadState *tstate) PyObject *list_append = _PyType_Lookup(&PyList_Type, &_Py_ID(append)); assert(list_append); interp->callable_cache.list_append = list_append; + PyObject *object__getattribute__ = _PyType_Lookup(&PyBaseObject_Type, &_Py_ID(__getattribute__)); + assert(object__getattribute__); + interp->callable_cache.object__getattribute__ = object__getattribute__; if (_PyBuiltins_AddExceptions(bimod) < 0) { return _PyStatus_ERR("failed to add exceptions to builtins"); @@ -1146,6 +1144,16 @@ init_interp_main(PyThreadState *tstate) if (_PyTraceMalloc_Init(config->tracemalloc) < 0) { return _PyStatus_ERR("can't initialize tracemalloc"); } + + +#ifdef PY_HAVE_PERF_TRAMPOLINE + if (config->perf_profiling) { + if (_PyPerfTrampoline_SetCallbacks(&_Py_perfmap_callbacks) < 0 || + _PyPerfTrampoline_Init(config->perf_profiling) < 0) { + return _PyStatus_ERR("can't initialize the perf trampoline"); + } + } +#endif } status = init_sys_streams(tstate); @@ -1462,7 +1470,7 @@ finalize_restore_builtins(PyThreadState *tstate) } PyDict_Clear(interp->builtins); if (PyDict_Update(interp->builtins, interp->builtins_copy)) { - _PyErr_Clear(tstate); + PyErr_WriteUnraisable(NULL); } Py_XDECREF(dict); } @@ -1672,9 +1680,10 @@ finalize_interp_types(PyInterpreterState *interp) _PyLong_FiniTypes(interp); _PyThread_FiniType(interp); _PyErr_FiniTypes(interp); - _PyTypes_Fini(interp); _PyTypes_FiniTypes(interp); + _PyTypes_Fini(interp); + // Call _PyUnicode_ClearInterned() before _PyDict_Fini() since it uses // a dict internally. _PyUnicode_ClearInterned(interp); @@ -1687,6 +1696,9 @@ finalize_interp_types(PyInterpreterState *interp) _PyUnicode_Fini(interp); _PyFloat_Fini(interp); +#ifdef Py_DEBUG + _PyStaticObjects_CheckRefcnt(); +#endif } @@ -1716,6 +1728,7 @@ finalize_interp_clear(PyThreadState *tstate) _PyArg_Fini(); _Py_ClearFileSystemEncoding(); _Py_Deepfreeze_Fini(); + _PyPerfTrampoline_Fini(); } finalize_interp_types(tstate->interp); @@ -1981,12 +1994,10 @@ new_interpreter(PyThreadState **tstate_p, int isolated_subinterpreter) /* Copy the current interpreter config into the new interpreter */ const PyConfig *config; -#ifndef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS if (save_tstate != NULL) { config = _PyInterpreterState_GetConfig(save_tstate->interp); } else -#endif { /* No current thread state, copy from the main interpreter */ PyInterpreterState *main_interp = _PyInterpreterState_Main(); @@ -2344,19 +2355,15 @@ create_stdio(const PyConfig *config, PyObject* io, static PyStatus init_set_builtins_open(void) { - PyObject *iomod = NULL, *wrapper; + PyObject *wrapper; PyObject *bimod = NULL; PyStatus res = _PyStatus_OK(); - if (!(iomod = PyImport_ImportModule("io"))) { - goto error; - } - if (!(bimod = PyImport_ImportModule("builtins"))) { goto error; } - if (!(wrapper = PyObject_GetAttrString(iomod, "open"))) { + if (!(wrapper = _PyImport_GetModuleAttrString("io", "open"))) { goto error; } @@ -2373,7 +2380,6 @@ init_set_builtins_open(void) done: Py_XDECREF(bimod); - Py_XDECREF(iomod); return res; } @@ -2945,28 +2951,30 @@ Py_Exit(int sts) int Py_FdIsInteractive(FILE *fp, const char *filename) { - if (isatty((int)fileno(fp))) + if (isatty(fileno(fp))) { return 1; - if (!Py_InteractiveFlag) + } + if (!_Py_GetConfig()->interactive) { return 0; - return (filename == NULL) || - (strcmp(filename, "<stdin>") == 0) || - (strcmp(filename, "???") == 0); + } + return ((filename == NULL) + || (strcmp(filename, "<stdin>") == 0) + || (strcmp(filename, "???") == 0)); } int _Py_FdIsInteractive(FILE *fp, PyObject *filename) { - if (isatty((int)fileno(fp))) { + if (isatty(fileno(fp))) { return 1; } - if (!Py_InteractiveFlag) { + if (!_Py_GetConfig()->interactive) { return 0; } - return (filename == NULL) || - (PyUnicode_CompareWithASCIIString(filename, "<stdin>") == 0) || - (PyUnicode_CompareWithASCIIString(filename, "???") == 0); + return ((filename == NULL) + || (PyUnicode_CompareWithASCIIString(filename, "<stdin>") == 0) + || (PyUnicode_CompareWithASCIIString(filename, "???") == 0)); } diff --git a/Python/pystate.c b/Python/pystate.c index 3e28a6ab69a989..23e9d24c591b63 100644 --- a/Python/pystate.c +++ b/Python/pystate.c @@ -57,7 +57,7 @@ _Py_COMP_DIAG_POP static int alloc_for_runtime(PyThread_type_lock *plock1, PyThread_type_lock *plock2, - PyThread_type_lock *plock3) + PyThread_type_lock *plock3, PyThread_type_lock *plock4) { /* Force default allocator, since _PyRuntimeState_Fini() must use the same allocator than this function. */ @@ -82,11 +82,20 @@ alloc_for_runtime(PyThread_type_lock *plock1, PyThread_type_lock *plock2, return -1; } + PyThread_type_lock lock4 = PyThread_allocate_lock(); + if (lock4 == NULL) { + PyThread_free_lock(lock1); + PyThread_free_lock(lock2); + PyThread_free_lock(lock3); + return -1; + } + PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc); *plock1 = lock1; *plock2 = lock2; *plock3 = lock3; + *plock4 = lock4; return 0; } @@ -97,7 +106,8 @@ init_runtime(_PyRuntimeState *runtime, Py_ssize_t unicode_next_index, PyThread_type_lock unicode_ids_mutex, PyThread_type_lock interpreters_mutex, - PyThread_type_lock xidregistry_mutex) + PyThread_type_lock xidregistry_mutex, + PyThread_type_lock getargs_mutex) { if (runtime->_initialized) { Py_FatalError("runtime already initialized"); @@ -119,6 +129,8 @@ init_runtime(_PyRuntimeState *runtime, runtime->xidregistry.mutex = xidregistry_mutex; + runtime->getargs.mutex = getargs_mutex; + // Set it to the ID of the main thread of the main interpreter. runtime->main_thread = PyThread_get_thread_ident(); @@ -141,8 +153,8 @@ _PyRuntimeState_Init(_PyRuntimeState *runtime) // is called multiple times. Py_ssize_t unicode_next_index = runtime->unicode_ids.next_index; - PyThread_type_lock lock1, lock2, lock3; - if (alloc_for_runtime(&lock1, &lock2, &lock3) != 0) { + PyThread_type_lock lock1, lock2, lock3, lock4; + if (alloc_for_runtime(&lock1, &lock2, &lock3, &lock4) != 0) { return _PyStatus_NO_MEMORY(); } @@ -152,7 +164,7 @@ _PyRuntimeState_Init(_PyRuntimeState *runtime) memcpy(runtime, &initial, sizeof(*runtime)); } init_runtime(runtime, open_code_hook, open_code_userdata, audit_hook_head, - unicode_next_index, lock1, lock2, lock3); + unicode_next_index, lock1, lock2, lock3, lock4); return _PyStatus_OK(); } @@ -172,6 +184,7 @@ _PyRuntimeState_Fini(_PyRuntimeState *runtime) FREE_LOCK(runtime->interpreters.mutex); FREE_LOCK(runtime->xidregistry.mutex); FREE_LOCK(runtime->unicode_ids.lock); + FREE_LOCK(runtime->getargs.mutex); #undef FREE_LOCK PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc); @@ -194,6 +207,7 @@ _PyRuntimeState_ReInitThreads(_PyRuntimeState *runtime) int reinit_interp = _PyThread_at_fork_reinit(&runtime->interpreters.mutex); int reinit_xidregistry = _PyThread_at_fork_reinit(&runtime->xidregistry.mutex); int reinit_unicode_ids = _PyThread_at_fork_reinit(&runtime->unicode_ids.lock); + int reinit_getargs = _PyThread_at_fork_reinit(&runtime->getargs.mutex); PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc); @@ -204,7 +218,8 @@ _PyRuntimeState_ReInitThreads(_PyRuntimeState *runtime) if (reinit_interp < 0 || reinit_main_id < 0 || reinit_xidregistry < 0 - || reinit_unicode_ids < 0) + || reinit_unicode_ids < 0 + || reinit_getargs < 0) { return _PyStatus_ERR("Failed to reinitialize runtime locks"); @@ -795,7 +810,15 @@ new_threadstate(PyInterpreterState *interp) { PyThreadState *tstate; _PyRuntimeState *runtime = interp->runtime; - + // We don't need to allocate a thread state for the main interpreter + // (the common case), but doing it later for the other case revealed a + // reentrancy problem (deadlock). So for now we always allocate before + // taking the interpreters lock. See GH-96071. + PyThreadState *new_tstate = alloc_threadstate(); + int used_newtstate; + if (new_tstate == NULL) { + return NULL; + } /* We serialize concurrent creation to protect global state. */ HEAD_LOCK(runtime); @@ -807,18 +830,15 @@ new_threadstate(PyInterpreterState *interp) if (old_head == NULL) { // It's the interpreter's initial thread state. assert(id == 1); - + used_newtstate = 0; tstate = &interp->_initial_thread; } else { // Every valid interpreter must have at least one thread. assert(id > 1); assert(old_head->prev == NULL); - - tstate = alloc_threadstate(); - if (tstate == NULL) { - goto error; - } + used_newtstate = 1; + tstate = new_tstate; // Set to _PyThreadState_INIT. memcpy(tstate, &initial._main_interpreter._initial_thread, @@ -829,11 +849,11 @@ new_threadstate(PyInterpreterState *interp) init_threadstate(tstate, interp, id, old_head); HEAD_UNLOCK(runtime); + if (!used_newtstate) { + // Must be called with lock unlocked to avoid re-entrancy deadlock. + PyMem_RawFree(new_tstate); + } return tstate; - -error: - HEAD_UNLOCK(runtime); - return NULL; } PyThreadState * @@ -1165,14 +1185,6 @@ _PyThreadState_DeleteExcept(_PyRuntimeState *runtime, PyThreadState *tstate) } -#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS -PyThreadState* -_PyThreadState_GetTSS(void) { - return PyThread_tss_get(&_PyRuntime.gilstate.autoTSSkey); -} -#endif - - PyThreadState * _PyThreadState_UncheckedGet(void) { @@ -1192,11 +1204,7 @@ PyThreadState_Get(void) PyThreadState * _PyThreadState_Swap(struct _gilstate_runtime_state *gilstate, PyThreadState *newts) { -#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS - PyThreadState *oldts = _PyThreadState_GetTSS(); -#else PyThreadState *oldts = _PyRuntimeGILState_GetThreadState(gilstate); -#endif _PyRuntimeGILState_SetThreadState(gilstate, newts); /* It should not be possible for more than one thread state @@ -1214,9 +1222,6 @@ _PyThreadState_Swap(struct _gilstate_runtime_state *gilstate, PyThreadState *new Py_FatalError("Invalid thread state for this thread"); errno = err; } -#endif -#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS - PyThread_tss_set(&gilstate->autoTSSkey, newts); #endif return oldts; } @@ -1270,10 +1275,14 @@ PyFrameObject* PyThreadState_GetFrame(PyThreadState *tstate) { assert(tstate != NULL); - if (tstate->cframe->current_frame == NULL) { + _PyInterpreterFrame *f = tstate->cframe->current_frame; + while (f && _PyFrame_IsIncomplete(f)) { + f = f->previous; + } + if (f == NULL) { return NULL; } - PyFrameObject *frame = _PyFrame_GetFrameObject(tstate->cframe->current_frame); + PyFrameObject *frame = _PyFrame_GetFrameObject(f); if (frame == NULL) { PyErr_Clear(); } @@ -1397,6 +1406,9 @@ _PyThread_CurrentFrames(void) PyThreadState *t; for (t = i->threads.head; t != NULL; t = t->next) { _PyInterpreterFrame *frame = t->cframe->current_frame; + while (frame && _PyFrame_IsIncomplete(frame)) { + frame = frame->previous; + } if (frame == NULL) { continue; } @@ -1404,7 +1416,12 @@ _PyThread_CurrentFrames(void) if (id == NULL) { goto fail; } - int stat = PyDict_SetItem(result, id, (PyObject *)_PyFrame_GetFrameObject(frame)); + PyObject *frameobj = (PyObject *)_PyFrame_GetFrameObject(frame); + if (frameobj == NULL) { + Py_DECREF(id); + goto fail; + } + int stat = PyDict_SetItem(result, id, frameobj); Py_DECREF(id); if (stat < 0) { goto fail; @@ -1665,9 +1682,7 @@ PyGILState_Ensure(void) /* Ensure that _PyEval_InitThreads() and _PyGILState_Init() have been called by Py_Initialize() */ -#ifndef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS assert(_PyEval_ThreadsInitialized(runtime)); -#endif assert(gilstate->autoInterpreterState); PyThreadState *tcur = (PyThreadState *)PyThread_tss_get(&gilstate->autoTSSkey); @@ -2153,6 +2168,7 @@ _Py_GetConfig(void) { assert(PyGILState_Check()); PyThreadState *tstate = _PyThreadState_GET(); + _Py_EnsureTstateNotNULL(tstate); return _PyInterpreterState_GetConfig(tstate->interp); } @@ -2184,18 +2200,15 @@ push_chunk(PyThreadState *tstate, int size) } _PyInterpreterFrame * -_PyThreadState_BumpFramePointerSlow(PyThreadState *tstate, size_t size) +_PyThreadState_PushFrame(PyThreadState *tstate, size_t size) { assert(size < INT_MAX/sizeof(PyObject *)); - PyObject **base = tstate->datastack_top; - PyObject **top = base + size; - if (top >= tstate->datastack_limit) { - base = push_chunk(tstate, (int)size); - } - else { - tstate->datastack_top = top; + if (_PyThreadState_HasStackSpace(tstate, (int)size)) { + _PyInterpreterFrame *res = (_PyInterpreterFrame *)tstate->datastack_top; + tstate->datastack_top += size; + return res; } - return (_PyInterpreterFrame *)base; + return (_PyInterpreterFrame *)push_chunk(tstate, (int)size); } void diff --git a/Python/pytime.c b/Python/pytime.c index f49a25bf7bce7c..01c07da074757e 100644 --- a/Python/pytime.c +++ b/Python/pytime.c @@ -406,6 +406,14 @@ _PyTime_FromNanoseconds(_PyTime_t ns) } +_PyTime_t +_PyTime_FromMicrosecondsClamp(_PyTime_t us) +{ + _PyTime_t ns = _PyTime_Mul(us, US_TO_NS); + return pytime_from_nanoseconds(ns); +} + + int _PyTime_FromNanosecondsObject(_PyTime_t *tp, PyObject *obj) { diff --git a/Python/specialize.c b/Python/specialize.c index a2fb460388055d..b7c321e4878b98 100644 --- a/Python/specialize.c +++ b/Python/specialize.c @@ -8,6 +8,7 @@ #include "pycore_object.h" #include "pycore_opcode.h" // _PyOpcode_Caches #include "structmember.h" // struct PyMemberDef, T_OFFSET_EX +#include "pycore_descrobject.h" #include <stdlib.h> // rand() @@ -20,7 +21,6 @@ uint8_t _PyOpcode_Adaptive[256] = { [LOAD_ATTR] = LOAD_ATTR_ADAPTIVE, [LOAD_GLOBAL] = LOAD_GLOBAL_ADAPTIVE, - [LOAD_METHOD] = LOAD_METHOD_ADAPTIVE, [BINARY_SUBSCR] = BINARY_SUBSCR_ADAPTIVE, [STORE_SUBSCR] = STORE_SUBSCR_ADAPTIVE, [CALL] = CALL_ADAPTIVE, @@ -28,11 +28,13 @@ uint8_t _PyOpcode_Adaptive[256] = { [BINARY_OP] = BINARY_OP_ADAPTIVE, [COMPARE_OP] = COMPARE_OP_ADAPTIVE, [UNPACK_SEQUENCE] = UNPACK_SEQUENCE_ADAPTIVE, + [FOR_ITER] = FOR_ITER_ADAPTIVE, }; Py_ssize_t _Py_QuickenedCount = 0; #ifdef Py_STATS -PyStats _py_stats = { 0 }; +PyStats _py_stats_struct = { 0 }; +PyStats *_py_stats = &_py_stats_struct; #define ADD_STAT_TO_DICT(res, field) \ do { \ @@ -92,7 +94,7 @@ add_stat_dict( int opcode, const char *name) { - SpecializationStats *stats = &_py_stats.opcode_stats[opcode].specialization; + SpecializationStats *stats = &_py_stats_struct.opcode_stats[opcode].specialization; PyObject *d = stats_to_dict(stats); if (d == NULL) { return -1; @@ -112,7 +114,6 @@ _Py_GetSpecializationStats(void) { int err = 0; err += add_stat_dict(stats, LOAD_ATTR, "load_attr"); err += add_stat_dict(stats, LOAD_GLOBAL, "load_global"); - err += add_stat_dict(stats, LOAD_METHOD, "load_method"); err += add_stat_dict(stats, BINARY_SUBSCR, "binary_subscr"); err += add_stat_dict(stats, STORE_SUBSCR, "store_subscr"); err += add_stat_dict(stats, STORE_ATTR, "store_attr"); @@ -120,6 +121,7 @@ _Py_GetSpecializationStats(void) { err += add_stat_dict(stats, BINARY_OP, "binary_op"); err += add_stat_dict(stats, COMPARE_OP, "compare_op"); err += add_stat_dict(stats, UNPACK_SEQUENCE, "unpack_sequence"); + err += add_stat_dict(stats, FOR_ITER, "for_iter"); if (err < 0) { Py_DECREF(stats); return NULL; @@ -139,7 +141,8 @@ print_spec_stats(FILE *out, OpcodeStats *stats) { /* Mark some opcodes as specializable for stats, * even though we don't specialize them yet. */ - fprintf(out, "opcode[%d].specializable : 1\n", FOR_ITER); + fprintf(out, "opcode[%d].specializable : 1\n", BINARY_SLICE); + fprintf(out, "opcode[%d].specializable : 1\n", STORE_SLICE); for (int i = 0; i < 256; i++) { if (_PyOpcode_Adaptive[i]) { fprintf(out, "opcode[%d].specializable : 1\n", i); @@ -209,9 +212,18 @@ print_stats(FILE *out, PyStats *stats) { print_object_stats(out, &stats->object_stats); } +void +_Py_StatsClear(void) +{ + _py_stats_struct = (PyStats) { 0 }; +} + void _Py_PrintSpecializationStats(int to_file) { + if (_py_stats == NULL) { + return; + } FILE *out = stderr; if (to_file) { /* Write to a file instead of stderr. */ @@ -242,7 +254,7 @@ _Py_PrintSpecializationStats(int to_file) else { fprintf(out, "Specialization stats:\n"); } - print_stats(out, &_py_stats); + print_stats(out, _py_stats); if (out != stderr) { fclose(out); } @@ -250,8 +262,12 @@ _Py_PrintSpecializationStats(int to_file) #ifdef Py_STATS -#define SPECIALIZATION_FAIL(opcode, kind) _py_stats.opcode_stats[opcode].specialization.failure_kinds[kind]++ - +#define SPECIALIZATION_FAIL(opcode, kind) \ +do { \ + if (_py_stats) { \ + _py_stats->opcode_stats[opcode].specialization.failure_kinds[kind]++; \ + } \ +} while (0) #endif #endif @@ -280,6 +296,9 @@ _PyCode_Quicken(PyCodeObject *code) else { assert(!_PyOpcode_Caches[opcode]); switch (opcode) { + case EXTENDED_ARG: + _Py_SET_OPCODE(instructions[i], EXTENDED_ARG_QUICK); + break; case JUMP_BACKWARD: _Py_SET_OPCODE(instructions[i], JUMP_BACKWARD_QUICK); break; @@ -321,7 +340,7 @@ _PyCode_Quicken(PyCodeObject *code) } static inline int -initial_counter_value(void) { +miss_counter_start(void) { /* Starting value for the counter. * This value needs to be not too low, otherwise * it would cause excessive de-optimization. @@ -333,6 +352,8 @@ initial_counter_value(void) { return 53; } +#define SIMPLE_FUNCTION 0 + /* Common */ #define SPEC_FAIL_OTHER 0 @@ -342,6 +363,8 @@ initial_counter_value(void) { #define SPEC_FAIL_OUT_OF_RANGE 4 #define SPEC_FAIL_EXPECTED_ERROR 5 #define SPEC_FAIL_WRONG_NUMBER_ARGUMENTS 6 +#define SPEC_FAIL_NOT_PY_FUNCTION 7 + #define SPEC_FAIL_LOAD_GLOBAL_NON_STRING_OR_SPLIT 18 @@ -360,24 +383,14 @@ initial_counter_value(void) { #define SPEC_FAIL_ATTR_NON_STRING_OR_SPLIT 18 #define SPEC_FAIL_ATTR_MODULE_ATTR_NOT_FOUND 19 -/* Methods */ - -#define SPEC_FAIL_LOAD_METHOD_OVERRIDING_DESCRIPTOR 8 -#define SPEC_FAIL_LOAD_METHOD_NON_OVERRIDING_DESCRIPTOR 9 -#define SPEC_FAIL_LOAD_METHOD_NOT_DESCRIPTOR 10 -#define SPEC_FAIL_LOAD_METHOD_METHOD 11 -#define SPEC_FAIL_LOAD_METHOD_MUTABLE_CLASS 12 -#define SPEC_FAIL_LOAD_METHOD_PROPERTY 13 -#define SPEC_FAIL_LOAD_METHOD_NON_OBJECT_SLOT 14 -#define SPEC_FAIL_LOAD_METHOD_IS_ATTR 15 -#define SPEC_FAIL_LOAD_METHOD_DICT_SUBCLASS 16 -#define SPEC_FAIL_LOAD_METHOD_BUILTIN_CLASS_METHOD 17 -#define SPEC_FAIL_LOAD_METHOD_CLASS_METHOD_OBJ 18 -#define SPEC_FAIL_LOAD_METHOD_OBJECT_SLOT 19 -#define SPEC_FAIL_LOAD_METHOD_HAS_DICT 20 -#define SPEC_FAIL_LOAD_METHOD_HAS_MANAGED_DICT 21 -#define SPEC_FAIL_LOAD_METHOD_INSTANCE_ATTRIBUTE 22 -#define SPEC_FAIL_LOAD_METHOD_METACLASS_ATTRIBUTE 23 +#define SPEC_FAIL_ATTR_SHADOWED 21 +#define SPEC_FAIL_ATTR_BUILTIN_CLASS_METHOD 22 +#define SPEC_FAIL_ATTR_CLASS_METHOD_OBJ 23 +#define SPEC_FAIL_ATTR_OBJECT_SLOT 24 +#define SPEC_FAIL_ATTR_HAS_MANAGED_DICT 25 +#define SPEC_FAIL_ATTR_INSTANCE_ATTRIBUTE 26 +#define SPEC_FAIL_ATTR_METACLASS_ATTRIBUTE 27 +#define SPEC_FAIL_ATTR_PROPERTY_NOT_PY_FUNCTION 28 /* Binary subscr and store subscr */ @@ -477,12 +490,21 @@ initial_counter_value(void) { #define SPEC_FAIL_FOR_ITER_DICT_ITEMS 21 #define SPEC_FAIL_FOR_ITER_DICT_VALUES 22 #define SPEC_FAIL_FOR_ITER_ENUMERATE 23 +#define SPEC_FAIL_FOR_ITER_MAP 24 +#define SPEC_FAIL_FOR_ITER_ZIP 25 +#define SPEC_FAIL_FOR_ITER_SEQ_ITER 26 +#define SPEC_FAIL_FOR_ITER_REVERSED_LIST 27 +#define SPEC_FAIL_FOR_ITER_CALLABLE 28 +#define SPEC_FAIL_FOR_ITER_ASCII_STRING 29 // UNPACK_SEQUENCE #define SPEC_FAIL_UNPACK_SEQUENCE_ITERATOR 8 #define SPEC_FAIL_UNPACK_SEQUENCE_SEQUENCE 9 +static int function_kind(PyCodeObject *code); +static bool function_check_args(PyObject *o, int expected_argcount, int opcode); +static uint32_t function_get_version(PyObject *o, int opcode); static int specialize_module_load_attr(PyObject *owner, _Py_CODEUNIT *instr, @@ -490,7 +512,6 @@ specialize_module_load_attr(PyObject *owner, _Py_CODEUNIT *instr, { _PyAttrCache *cache = (_PyAttrCache *)(instr + 1); PyModuleObject *m = (PyModuleObject *)owner; - PyObject *value = NULL; assert((owner->ob_type->tp_flags & Py_TPFLAGS_MANAGED_DICT) == 0); PyDictObject *dict = (PyDictObject *)m->md_dict; if (dict == NULL) { @@ -501,14 +522,13 @@ specialize_module_load_attr(PyObject *owner, _Py_CODEUNIT *instr, SPECIALIZATION_FAIL(opcode, SPEC_FAIL_ATTR_NON_STRING_OR_SPLIT); return -1; } - Py_ssize_t index = _PyDict_GetItemHint(dict, &_Py_ID(__getattr__), -1, - &value); + Py_ssize_t index = _PyDict_LookupIndex(dict, &_Py_ID(__getattr__)); assert(index != DKIX_ERROR); if (index != DKIX_EMPTY) { SPECIALIZATION_FAIL(opcode, SPEC_FAIL_ATTR_MODULE_ATTR_NOT_FOUND); return -1; } - index = _PyDict_GetItemHint(dict, name, -1, &value); + index = _PyDict_LookupIndex(dict, name); assert (index != DKIX_ERROR); if (index != (uint16_t)index) { SPECIALIZATION_FAIL(opcode, SPEC_FAIL_OUT_OF_RANGE); @@ -542,13 +562,15 @@ typedef enum { MUTABLE, /* Instance of a mutable class; might, or might not, be a descriptor */ ABSENT, /* Attribute is not present on the class */ DUNDER_CLASS, /* __class__ attribute */ - GETSET_OVERRIDDEN /* __getattribute__ or __setattr__ has been overridden */ + GETSET_OVERRIDDEN, /* __getattribute__ or __setattr__ has been overridden */ + GETATTRIBUTE_IS_PYTHON_FUNCTION /* Descriptor requires calling a Python __getattribute__ */ } DescriptorClassification; static DescriptorClassification analyze_descriptor(PyTypeObject *type, PyObject *name, PyObject **descr, int store) { + bool has_getattr = false; if (store) { if (type->tp_setattro != PyObject_GenericSetAttr) { *descr = NULL; @@ -556,7 +578,42 @@ analyze_descriptor(PyTypeObject *type, PyObject *name, PyObject **descr, int sto } } else { - if (type->tp_getattro != PyObject_GenericGetAttr) { + getattrofunc getattro_slot = type->tp_getattro; + if (getattro_slot == PyObject_GenericGetAttr) { + /* Normal attribute lookup; */ + has_getattr = false; + } + else if (getattro_slot == _Py_slot_tp_getattr_hook || + getattro_slot == _Py_slot_tp_getattro) { + /* One or both of __getattribute__ or __getattr__ may have been + overridden See typeobject.c for why these functions are special. */ + PyObject *getattribute = _PyType_Lookup(type, + &_Py_ID(__getattribute__)); + PyInterpreterState *interp = _PyInterpreterState_GET(); + bool has_custom_getattribute = getattribute != NULL && + getattribute != interp->callable_cache.object__getattribute__; + has_getattr = _PyType_Lookup(type, &_Py_ID(__getattr__)) != NULL; + if (has_custom_getattribute) { + if (getattro_slot == _Py_slot_tp_getattro && + !has_getattr && + Py_IS_TYPE(getattribute, &PyFunction_Type)) { + *descr = getattribute; + return GETATTRIBUTE_IS_PYTHON_FUNCTION; + } + /* Potentially both __getattr__ and __getattribute__ are set. + Too complicated */ + *descr = NULL; + return GETSET_OVERRIDDEN; + } + /* Potentially has __getattr__ but no custom __getattribute__. + Fall through to usual descriptor analysis. + Usual attribute lookup should only be allowed at runtime + if we can guarantee that there is no way an exception can be + raised. This means some specializations, e.g. specializing + for property() isn't safe. + */ + } + else { *descr = NULL; return GETSET_OVERRIDDEN; } @@ -580,14 +637,19 @@ analyze_descriptor(PyTypeObject *type, PyObject *name, PyObject **descr, int sto return OTHER_SLOT; } if (desc_cls == &PyProperty_Type) { - return PROPERTY; + /* We can't detect at runtime whether an attribute exists + with property. So that means we may have to call + __getattr__. */ + return has_getattr ? GETSET_OVERRIDDEN : PROPERTY; } if (PyUnicode_CompareWithASCIIString(name, "__class__") == 0) { if (descriptor == _PyType_Lookup(&PyBaseObject_Type, name)) { return DUNDER_CLASS; } } - return OVERRIDING; + if (store) { + return OVERRIDING; + } } if (desc_cls->tp_descr_get) { if (desc_cls->tp_flags & Py_TPFLAGS_METHOD_DESCRIPTOR) { @@ -618,9 +680,8 @@ specialize_dict_access( return 0; } _PyAttrCache *cache = (_PyAttrCache *)(instr + 1); - PyObject **dictptr = _PyObject_ManagedDictPointer(owner); - PyDictObject *dict = (PyDictObject *)*dictptr; - if (dict == NULL) { + PyDictOrValues dorv = *_PyObject_DictOrValuesPointer(owner); + if (_PyDictOrValues_IsValues(dorv)) { // Virtual dictionary PyDictKeysObject *keys = ((PyHeapTypeObject *)type)->ht_cached_keys; assert(PyUnicode_CheckExact(name)); @@ -635,25 +696,29 @@ specialize_dict_access( _Py_SET_OPCODE(*instr, values_op); } else { - if (!PyDict_CheckExact(dict)) { + PyDictObject *dict = (PyDictObject *)_PyDictOrValues_GetDict(dorv); + if (dict == NULL || !PyDict_CheckExact(dict)) { SPECIALIZATION_FAIL(base_op, SPEC_FAIL_NO_DICT); return 0; } // We found an instance with a __dict__. - PyObject *value = NULL; - Py_ssize_t hint = - _PyDict_GetItemHint(dict, name, -1, &value); - if (hint != (uint16_t)hint) { + Py_ssize_t index = + _PyDict_LookupIndex(dict, name); + if (index != (uint16_t)index) { SPECIALIZATION_FAIL(base_op, SPEC_FAIL_OUT_OF_RANGE); return 0; } - cache->index = (uint16_t)hint; + cache->index = (uint16_t)index; write_u32(cache->version, type->tp_version_tag); _Py_SET_OPCODE(*instr, hint_op); } return 1; } +static int specialize_attr_loadmethod(PyObject* owner, _Py_CODEUNIT* instr, PyObject* name, + PyObject* descr, DescriptorClassification kind); +static int specialize_class_load_attr(PyObject* owner, _Py_CODEUNIT* instr, PyObject* name); + int _Py_Specialize_LoadAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name) { @@ -667,24 +732,65 @@ _Py_Specialize_LoadAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name) } goto success; } + if (PyType_Check(owner)) { + int err = specialize_class_load_attr(owner, instr, name); + if (err) { + goto fail; + } + goto success; + } PyTypeObject *type = Py_TYPE(owner); if (type->tp_dict == NULL) { if (PyType_Ready(type) < 0) { return -1; } } - PyObject *descr; + PyObject *descr = NULL; DescriptorClassification kind = analyze_descriptor(type, name, &descr, 0); + assert(descr != NULL || kind == ABSENT || kind == GETSET_OVERRIDDEN); switch(kind) { case OVERRIDING: SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_ATTR_OVERRIDING_DESCRIPTOR); goto fail; case METHOD: + { + int oparg = _Py_OPARG(*instr); + if (oparg & 1) { + if (specialize_attr_loadmethod(owner, instr, name, descr, kind)) { + goto success; + } + } SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_ATTR_METHOD); goto fail; + } case PROPERTY: - SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_ATTR_PROPERTY); - goto fail; + { + _PyLoadMethodCache *lm_cache = (_PyLoadMethodCache *)(instr + 1); + assert(Py_TYPE(descr) == &PyProperty_Type); + PyObject *fget = ((_PyPropertyObject *)descr)->prop_get; + if (fget == NULL) { + SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_EXPECTED_ERROR); + goto fail; + } + if (!Py_IS_TYPE(fget, &PyFunction_Type)) { + SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_ATTR_PROPERTY_NOT_PY_FUNCTION); + goto fail; + } + if (!function_check_args(fget, 1, LOAD_ATTR)) { + goto fail; + } + uint32_t version = function_get_version(fget, LOAD_ATTR); + if (version == 0) { + goto fail; + } + write_u32(lm_cache->keys_version, version); + assert(type->tp_version_tag != 0); + write_u32(lm_cache->type_version, type->tp_version_tag); + /* borrowed */ + write_obj(lm_cache->descr, fget); + _Py_SET_OPCODE(*instr, LOAD_ATTR_PROPERTY); + goto success; + } case OBJECT_SLOT: { PyMemberDescrObject *member = (PyMemberDescrObject *)descr; @@ -723,6 +829,25 @@ _Py_Specialize_LoadAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name) case GETSET_OVERRIDDEN: SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_OVERRIDDEN); goto fail; + case GETATTRIBUTE_IS_PYTHON_FUNCTION: + { + assert(type->tp_getattro == _Py_slot_tp_getattro); + assert(Py_IS_TYPE(descr, &PyFunction_Type)); + _PyLoadMethodCache *lm_cache = (_PyLoadMethodCache *)(instr + 1); + if (!function_check_args(descr, 2, LOAD_ATTR)) { + goto fail; + } + uint32_t version = function_get_version(descr, LOAD_ATTR); + if (version == 0) { + goto fail; + } + write_u32(lm_cache->keys_version, version); + /* borrowed */ + write_obj(lm_cache->descr, descr); + write_u32(lm_cache->type_version, type->tp_version_tag); + _Py_SET_OPCODE(*instr, LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN); + goto success; + } case BUILTIN_CLASSMETHOD: case PYTHON_CLASSMETHOD: case NON_OVERRIDING: @@ -743,12 +868,12 @@ _Py_Specialize_LoadAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name) fail: STAT_INC(LOAD_ATTR, failure); assert(!PyErr_Occurred()); - cache->counter = ADAPTIVE_CACHE_BACKOFF; + cache->counter = adaptive_counter_backoff(cache->counter); return 0; success: STAT_INC(LOAD_ATTR, success); assert(!PyErr_Occurred()); - cache->counter = initial_counter_value(); + cache->counter = miss_counter_start(); return 0; } @@ -801,6 +926,7 @@ _Py_Specialize_StoreAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name) case MUTABLE: SPECIALIZATION_FAIL(STORE_ATTR, SPEC_FAIL_ATTR_MUTABLE_CLASS); goto fail; + case GETATTRIBUTE_IS_PYTHON_FUNCTION: case GETSET_OVERRIDDEN: SPECIALIZATION_FAIL(STORE_ATTR, SPEC_FAIL_OVERRIDDEN); goto fail; @@ -825,57 +951,62 @@ _Py_Specialize_StoreAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name) fail: STAT_INC(STORE_ATTR, failure); assert(!PyErr_Occurred()); - cache->counter = ADAPTIVE_CACHE_BACKOFF; + cache->counter = adaptive_counter_backoff(cache->counter); return 0; success: STAT_INC(STORE_ATTR, success); assert(!PyErr_Occurred()); - cache->counter = initial_counter_value(); + cache->counter = miss_counter_start(); return 0; } #ifdef Py_STATS static int -load_method_fail_kind(DescriptorClassification kind) +load_attr_fail_kind(DescriptorClassification kind) { switch (kind) { case OVERRIDING: - return SPEC_FAIL_LOAD_METHOD_OVERRIDING_DESCRIPTOR; + return SPEC_FAIL_ATTR_OVERRIDING_DESCRIPTOR; case METHOD: - return SPEC_FAIL_LOAD_METHOD_METHOD; + return SPEC_FAIL_ATTR_METHOD; case PROPERTY: - return SPEC_FAIL_LOAD_METHOD_PROPERTY; + return SPEC_FAIL_ATTR_PROPERTY; case OBJECT_SLOT: - return SPEC_FAIL_LOAD_METHOD_OBJECT_SLOT; + return SPEC_FAIL_ATTR_OBJECT_SLOT; case OTHER_SLOT: - return SPEC_FAIL_LOAD_METHOD_NON_OBJECT_SLOT; + return SPEC_FAIL_ATTR_NON_OBJECT_SLOT; case DUNDER_CLASS: return SPEC_FAIL_OTHER; case MUTABLE: - return SPEC_FAIL_LOAD_METHOD_MUTABLE_CLASS; + return SPEC_FAIL_ATTR_MUTABLE_CLASS; case GETSET_OVERRIDDEN: + case GETATTRIBUTE_IS_PYTHON_FUNCTION: return SPEC_FAIL_OVERRIDDEN; case BUILTIN_CLASSMETHOD: - return SPEC_FAIL_LOAD_METHOD_BUILTIN_CLASS_METHOD; + return SPEC_FAIL_ATTR_BUILTIN_CLASS_METHOD; case PYTHON_CLASSMETHOD: - return SPEC_FAIL_LOAD_METHOD_CLASS_METHOD_OBJ; + return SPEC_FAIL_ATTR_CLASS_METHOD_OBJ; case NON_OVERRIDING: - return SPEC_FAIL_LOAD_METHOD_NON_OVERRIDING_DESCRIPTOR; + return SPEC_FAIL_ATTR_NON_OVERRIDING_DESCRIPTOR; case NON_DESCRIPTOR: - return SPEC_FAIL_LOAD_METHOD_NOT_DESCRIPTOR; + return SPEC_FAIL_ATTR_NOT_DESCRIPTOR; case ABSENT: - return SPEC_FAIL_LOAD_METHOD_INSTANCE_ATTRIBUTE; + return SPEC_FAIL_ATTR_INSTANCE_ATTRIBUTE; } Py_UNREACHABLE(); } #endif static int -specialize_class_load_method(PyObject *owner, _Py_CODEUNIT *instr, +specialize_class_load_attr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name) { _PyLoadMethodCache *cache = (_PyLoadMethodCache *)(instr + 1); + if (!PyType_CheckExact(owner) || _PyType_Lookup(Py_TYPE(owner), name)) { + SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_ATTR_METACLASS_ATTRIBUTE); + return -1; + } PyObject *descr = NULL; DescriptorClassification kind = 0; kind = analyze_descriptor((PyTypeObject *)owner, name, &descr, 0); @@ -884,20 +1015,15 @@ specialize_class_load_method(PyObject *owner, _Py_CODEUNIT *instr, case NON_DESCRIPTOR: write_u32(cache->type_version, ((PyTypeObject *)owner)->tp_version_tag); write_obj(cache->descr, descr); - _Py_SET_OPCODE(*instr, LOAD_METHOD_CLASS); + _Py_SET_OPCODE(*instr, LOAD_ATTR_CLASS); return 0; #ifdef Py_STATS case ABSENT: - if (_PyType_Lookup(Py_TYPE(owner), name) != NULL) { - SPECIALIZATION_FAIL(LOAD_METHOD, SPEC_FAIL_LOAD_METHOD_METACLASS_ATTRIBUTE); - } - else { - SPECIALIZATION_FAIL(LOAD_METHOD, SPEC_FAIL_EXPECTED_ERROR); - } + SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_EXPECTED_ERROR); return -1; #endif default: - SPECIALIZATION_FAIL(LOAD_METHOD, load_method_fail_kind(kind)); + SPECIALIZATION_FAIL(LOAD_ATTR, load_attr_fail_kind(kind)); return -1; } } @@ -913,50 +1039,20 @@ typedef enum { // Please collect stats carefully before and after modifying. A subtle change // can cause a significant drop in cache hits. A possible test is // python.exe -m test_typing test_re test_dis test_zlib. -int -_Py_Specialize_LoadMethod(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name) +static int +specialize_attr_loadmethod(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name, +PyObject *descr, DescriptorClassification kind) { - assert(_PyOpcode_Caches[LOAD_METHOD] == INLINE_CACHE_ENTRIES_LOAD_METHOD); _PyLoadMethodCache *cache = (_PyLoadMethodCache *)(instr + 1); PyTypeObject *owner_cls = Py_TYPE(owner); - if (PyModule_CheckExact(owner)) { - assert(INLINE_CACHE_ENTRIES_LOAD_ATTR <= - INLINE_CACHE_ENTRIES_LOAD_METHOD); - int err = specialize_module_load_attr(owner, instr, name, LOAD_METHOD, - LOAD_METHOD_MODULE); - if (err) { - goto fail; - } - goto success; - } - if (owner_cls->tp_dict == NULL) { - if (PyType_Ready(owner_cls) < 0) { - return -1; - } - } - if (PyType_Check(owner)) { - int err = specialize_class_load_method(owner, instr, name); - if (err) { - goto fail; - } - goto success; - } - - PyObject *descr = NULL; - DescriptorClassification kind = 0; - kind = analyze_descriptor(owner_cls, name, &descr, 0); - assert(descr != NULL || kind == ABSENT || kind == GETSET_OVERRIDDEN); - if (kind != METHOD) { - SPECIALIZATION_FAIL(LOAD_METHOD, load_method_fail_kind(kind)); - goto fail; - } + assert(kind == METHOD && descr != NULL); ObjectDictKind dictkind; PyDictKeysObject *keys; if (owner_cls->tp_flags & Py_TPFLAGS_MANAGED_DICT) { - PyObject *dict = *_PyObject_ManagedDictPointer(owner); + PyDictOrValues dorv = *_PyObject_DictOrValuesPointer(owner); keys = ((PyHeapTypeObject *)owner_cls)->ht_cached_keys; - if (dict == NULL) { + if (_PyDictOrValues_IsValues(dorv)) { dictkind = MANAGED_VALUES; } else { @@ -966,7 +1062,7 @@ _Py_Specialize_LoadMethod(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name) else { Py_ssize_t dictoffset = owner_cls->tp_dictoffset; if (dictoffset < 0 || dictoffset > INT16_MAX) { - SPECIALIZATION_FAIL(LOAD_METHOD, SPEC_FAIL_OUT_OF_RANGE); + SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_OUT_OF_RANGE); goto fail; } if (dictoffset == 0) { @@ -986,39 +1082,36 @@ _Py_Specialize_LoadMethod(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name) } } } - if (dictkind == MANAGED_VALUES || dictkind == MANAGED_DICT || dictkind == OFFSET_DICT) { + if (dictkind == MANAGED_VALUES || dictkind == OFFSET_DICT) { Py_ssize_t index = _PyDictKeys_StringLookup(keys, name); if (index != DKIX_EMPTY) { - SPECIALIZATION_FAIL(LOAD_METHOD, SPEC_FAIL_LOAD_METHOD_IS_ATTR); + SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_ATTR_SHADOWED); goto fail; } uint32_t keys_version = _PyDictKeys_GetVersionForCurrentState(keys); if (keys_version == 0) { - SPECIALIZATION_FAIL(LOAD_METHOD, SPEC_FAIL_OUT_OF_VERSIONS); + SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_OUT_OF_VERSIONS); goto fail; } write_u32(cache->keys_version, keys_version); } switch(dictkind) { case NO_DICT: - _Py_SET_OPCODE(*instr, LOAD_METHOD_NO_DICT); + _Py_SET_OPCODE(*instr, LOAD_ATTR_METHOD_NO_DICT); break; case MANAGED_VALUES: - _Py_SET_OPCODE(*instr, LOAD_METHOD_WITH_VALUES); + _Py_SET_OPCODE(*instr, LOAD_ATTR_METHOD_WITH_VALUES); break; case MANAGED_DICT: - *(int16_t *)&cache->dict_offset = (int16_t)MANAGED_DICT_OFFSET; - _Py_SET_OPCODE(*instr, LOAD_METHOD_WITH_DICT); - break; + SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_ATTR_HAS_MANAGED_DICT); + goto fail; case OFFSET_DICT: assert(owner_cls->tp_dictoffset > 0 && owner_cls->tp_dictoffset <= INT16_MAX); - cache->dict_offset = (uint16_t)owner_cls->tp_dictoffset; - _Py_SET_OPCODE(*instr, LOAD_METHOD_WITH_DICT); + _Py_SET_OPCODE(*instr, LOAD_ATTR_METHOD_WITH_DICT); break; case LAZY_DICT: assert(owner_cls->tp_dictoffset > 0 && owner_cls->tp_dictoffset <= INT16_MAX); - cache->dict_offset = (uint16_t)owner_cls->tp_dictoffset; - _Py_SET_OPCODE(*instr, LOAD_METHOD_LAZY_DICT); + _Py_SET_OPCODE(*instr, LOAD_ATTR_METHOD_LAZY_DICT); break; } /* `descr` is borrowed. This is safe for methods (even inherited ones from @@ -1038,17 +1131,9 @@ _Py_Specialize_LoadMethod(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name) write_u32(cache->type_version, owner_cls->tp_version_tag); write_obj(cache->descr, descr); // Fall through. -success: - STAT_INC(LOAD_METHOD, success); - assert(!PyErr_Occurred()); - cache->counter = initial_counter_value(); - return 0; + return 1; fail: - STAT_INC(LOAD_METHOD, failure); - assert(!PyErr_Occurred()); - cache->counter = ADAPTIVE_CACHE_BACKOFF; return 0; - } int @@ -1124,12 +1209,12 @@ _Py_Specialize_LoadGlobal( fail: STAT_INC(LOAD_GLOBAL, failure); assert(!PyErr_Occurred()); - cache->counter = ADAPTIVE_CACHE_BACKOFF; + cache->counter = adaptive_counter_backoff(cache->counter); return 0; success: STAT_INC(LOAD_GLOBAL, success); assert(!PyErr_Occurred()); - cache->counter = initial_counter_value(); + cache->counter = miss_counter_start(); return 0; } @@ -1173,9 +1258,6 @@ binary_subscr_fail_kind(PyTypeObject *container_type, PyObject *sub) } #endif - -#define SIMPLE_FUNCTION 0 - static int function_kind(PyCodeObject *code) { int flags = code->co_flags; @@ -1188,6 +1270,39 @@ function_kind(PyCodeObject *code) { return SIMPLE_FUNCTION; } +/* Returning false indicates a failure. */ +static bool +function_check_args(PyObject *o, int expected_argcount, int opcode) +{ + assert(Py_IS_TYPE(o, &PyFunction_Type)); + PyFunctionObject *func = (PyFunctionObject *)o; + PyCodeObject *fcode = (PyCodeObject *)func->func_code; + int kind = function_kind(fcode); + if (kind != SIMPLE_FUNCTION) { + SPECIALIZATION_FAIL(opcode, kind); + return false; + } + if (fcode->co_argcount != expected_argcount) { + SPECIALIZATION_FAIL(opcode, SPEC_FAIL_WRONG_NUMBER_ARGUMENTS); + return false; + } + return true; +} + +/* Returning 0 indicates a failure. */ +static uint32_t +function_get_version(PyObject *o, int opcode) +{ + assert(Py_IS_TYPE(o, &PyFunction_Type)); + PyFunctionObject *func = (PyFunctionObject *)o; + uint32_t version = _PyFunction_GetVersionForCurrentState(func); + if (version == 0) { + SPECIALIZATION_FAIL(opcode, SPEC_FAIL_OUT_OF_VERSIONS); + return 0; + } + return version; +} + int _Py_Specialize_BinarySubscr( PyObject *container, PyObject *sub, _Py_CODEUNIT *instr) @@ -1240,7 +1355,8 @@ _Py_Specialize_BinarySubscr( write_u32(cache->type_version, cls->tp_version_tag); int version = _PyFunction_GetVersionForCurrentState(func); if (version == 0 || version != (uint16_t)version) { - SPECIALIZATION_FAIL(BINARY_SUBSCR, SPEC_FAIL_OUT_OF_VERSIONS); + SPECIALIZATION_FAIL(BINARY_SUBSCR, version == 0 ? + SPEC_FAIL_OUT_OF_VERSIONS : SPEC_FAIL_OUT_OF_RANGE); goto fail; } cache->func_version = version; @@ -1253,12 +1369,12 @@ _Py_Specialize_BinarySubscr( fail: STAT_INC(BINARY_SUBSCR, failure); assert(!PyErr_Occurred()); - cache->counter = ADAPTIVE_CACHE_BACKOFF; + cache->counter = adaptive_counter_backoff(cache->counter); return 0; success: STAT_INC(BINARY_SUBSCR, success); assert(!PyErr_Occurred()); - cache->counter = initial_counter_value(); + cache->counter = miss_counter_start(); return 0; } @@ -1357,12 +1473,12 @@ _Py_Specialize_StoreSubscr(PyObject *container, PyObject *sub, _Py_CODEUNIT *ins fail: STAT_INC(STORE_SUBSCR, failure); assert(!PyErr_Occurred()); - cache->counter = ADAPTIVE_CACHE_BACKOFF; + cache->counter = adaptive_counter_backoff(cache->counter); return 0; success: STAT_INC(STORE_SUBSCR, success); assert(!PyErr_Occurred()); - cache->counter = initial_counter_value(); + cache->counter = miss_counter_start(); return 0; } @@ -1674,12 +1790,12 @@ _Py_Specialize_Call(PyObject *callable, _Py_CODEUNIT *instr, int nargs, if (fail) { STAT_INC(CALL, failure); assert(!PyErr_Occurred()); - cache->counter = ADAPTIVE_CACHE_BACKOFF; + cache->counter = adaptive_counter_backoff(cache->counter); } else { STAT_INC(CALL, success); assert(!PyErr_Occurred()); - cache->counter = initial_counter_value(); + cache->counter = miss_counter_start(); } return 0; } @@ -1827,11 +1943,11 @@ _Py_Specialize_BinaryOp(PyObject *lhs, PyObject *rhs, _Py_CODEUNIT *instr, } SPECIALIZATION_FAIL(BINARY_OP, binary_op_fail_kind(oparg, lhs, rhs)); STAT_INC(BINARY_OP, failure); - cache->counter = ADAPTIVE_CACHE_BACKOFF; + cache->counter = adaptive_counter_backoff(cache->counter); return; success: STAT_INC(BINARY_OP, success); - cache->counter = initial_counter_value(); + cache->counter = miss_counter_start(); } @@ -1890,10 +2006,8 @@ _Py_Specialize_CompareOp(PyObject *lhs, PyObject *rhs, _Py_CODEUNIT *instr, assert(_PyOpcode_Caches[COMPARE_OP] == INLINE_CACHE_ENTRIES_COMPARE_OP); _PyCompareOpCache *cache = (_PyCompareOpCache *)(instr + 1); int next_opcode = _Py_OPCODE(instr[INLINE_CACHE_ENTRIES_COMPARE_OP + 1]); - if (next_opcode != POP_JUMP_FORWARD_IF_FALSE && - next_opcode != POP_JUMP_BACKWARD_IF_FALSE && - next_opcode != POP_JUMP_FORWARD_IF_TRUE && - next_opcode != POP_JUMP_BACKWARD_IF_TRUE) { + if (next_opcode != POP_JUMP_IF_FALSE && + next_opcode != POP_JUMP_IF_TRUE) { // Can't ever combine, so don't don't bother being adaptive (unless // we're collecting stats, where it's more important to get accurate hit // counts for the unadaptive version and each of the different failure @@ -1901,24 +2015,20 @@ _Py_Specialize_CompareOp(PyObject *lhs, PyObject *rhs, _Py_CODEUNIT *instr, #ifndef Py_STATS _Py_SET_OPCODE(*instr, COMPARE_OP); return; -#endif +#else if (next_opcode == EXTENDED_ARG) { SPECIALIZATION_FAIL(COMPARE_OP, SPEC_FAIL_COMPARE_OP_EXTENDED_ARG); goto failure; } SPECIALIZATION_FAIL(COMPARE_OP, SPEC_FAIL_COMPARE_OP_NOT_FOLLOWED_BY_COND_JUMP); goto failure; +#endif } assert(oparg <= Py_GE); int when_to_jump_mask = compare_masks[oparg]; - if (next_opcode == POP_JUMP_FORWARD_IF_FALSE || - next_opcode == POP_JUMP_BACKWARD_IF_FALSE) { + if (next_opcode == POP_JUMP_IF_FALSE) { when_to_jump_mask = (1 | 2 | 4) & ~when_to_jump_mask; } - if (next_opcode == POP_JUMP_BACKWARD_IF_TRUE || - next_opcode == POP_JUMP_BACKWARD_IF_FALSE) { - when_to_jump_mask <<= 3; - } if (Py_TYPE(lhs) != Py_TYPE(rhs)) { SPECIALIZATION_FAIL(COMPARE_OP, compare_op_fail_kind(lhs, rhs)); goto failure; @@ -1946,18 +2056,18 @@ _Py_Specialize_CompareOp(PyObject *lhs, PyObject *rhs, _Py_CODEUNIT *instr, } else { _Py_SET_OPCODE(*instr, COMPARE_OP_STR_JUMP); - cache->mask = when_to_jump_mask; + cache->mask = (when_to_jump_mask & 2) == 0; goto success; } } SPECIALIZATION_FAIL(COMPARE_OP, compare_op_fail_kind(lhs, rhs)); failure: STAT_INC(COMPARE_OP, failure); - cache->counter = ADAPTIVE_CACHE_BACKOFF; + cache->counter = adaptive_counter_backoff(cache->counter); return; success: STAT_INC(COMPARE_OP, success); - cache->counter = initial_counter_value(); + cache->counter = miss_counter_start(); } #ifdef Py_STATS @@ -2003,11 +2113,11 @@ _Py_Specialize_UnpackSequence(PyObject *seq, _Py_CODEUNIT *instr, int oparg) SPECIALIZATION_FAIL(UNPACK_SEQUENCE, unpack_sequence_fail_kind(seq)); failure: STAT_INC(UNPACK_SEQUENCE, failure); - cache->counter = ADAPTIVE_CACHE_BACKOFF; + cache->counter = adaptive_counter_backoff(cache->counter); return; success: STAT_INC(UNPACK_SEQUENCE, success); - cache->counter = initial_counter_value(); + cache->counter = miss_counter_start(); } #ifdef Py_STATS @@ -2055,11 +2165,59 @@ int if (t == &PyEnum_Type) { return SPEC_FAIL_FOR_ITER_ENUMERATE; } - - if (strncmp(t->tp_name, "itertools", 8) == 0) { + if (t == &PyMap_Type) { + return SPEC_FAIL_FOR_ITER_MAP; + } + if (t == &PyZip_Type) { + return SPEC_FAIL_FOR_ITER_ZIP; + } + if (t == &PySeqIter_Type) { + return SPEC_FAIL_FOR_ITER_SEQ_ITER; + } + if (t == &PyListRevIter_Type) { + return SPEC_FAIL_FOR_ITER_REVERSED_LIST; + } + if (t == &_PyUnicodeASCIIIter_Type) { + return SPEC_FAIL_FOR_ITER_ASCII_STRING; + } + const char *name = t->tp_name; + if (strncmp(name, "itertools", 9) == 0) { return SPEC_FAIL_FOR_ITER_ITERTOOLS; } + if (strncmp(name, "callable_iterator", 17) == 0) { + return SPEC_FAIL_FOR_ITER_CALLABLE; + } return SPEC_FAIL_OTHER; } #endif + +void +_Py_Specialize_ForIter(PyObject *iter, _Py_CODEUNIT *instr) +{ + assert(_PyOpcode_Caches[FOR_ITER] == INLINE_CACHE_ENTRIES_FOR_ITER); + _PyForIterCache *cache = (_PyForIterCache *)(instr + 1); + PyTypeObject *tp = Py_TYPE(iter); + _Py_CODEUNIT next = instr[1+INLINE_CACHE_ENTRIES_FOR_ITER]; + int next_op = _PyOpcode_Deopt[_Py_OPCODE(next)]; + if (tp == &PyListIter_Type) { + _Py_SET_OPCODE(*instr, FOR_ITER_LIST); + goto success; + } + else if (tp == &PyRangeIter_Type && next_op == STORE_FAST) { + _Py_SET_OPCODE(*instr, FOR_ITER_RANGE); + goto success; + } + else { + SPECIALIZATION_FAIL(FOR_ITER, + _PySpecialization_ClassifyIterator(iter)); + goto failure; + } +failure: + STAT_INC(FOR_ITER, failure); + cache->counter = adaptive_counter_backoff(cache->counter); + return; +success: + STAT_INC(FOR_ITER, success); + cache->counter = miss_counter_start(); +} diff --git a/Python/stdlib_module_names.h b/Python/stdlib_module_names.h index 553585a76a394a..b28156608d1b80 100644 --- a/Python/stdlib_module_names.h +++ b/Python/stdlib_module_names.h @@ -9,7 +9,6 @@ static const char* _Py_stdlib_module_names[] = { "_asyncio", "_bisect", "_blake2", -"_bootsubprocess", "_bz2", "_codecs", "_codecs_cn", @@ -242,7 +241,6 @@ static const char* _Py_stdlib_module_names[] = { "shutil", "signal", "site", -"smtpd", "smtplib", "sndhdr", "socket", diff --git a/Python/suggestions.c b/Python/suggestions.c index b84acaaed6b1fd..c336ec8ffffc9c 100644 --- a/Python/suggestions.c +++ b/Python/suggestions.c @@ -1,5 +1,4 @@ #include "Python.h" -#include "frameobject.h" #include "pycore_frame.h" #include "pycore_pyerrors.h" diff --git a/Python/sysmodule.c b/Python/sysmodule.c index b9cae15568d0f5..653b5a55e885e5 100644 --- a/Python/sysmodule.c +++ b/Python/sysmodule.c @@ -20,6 +20,7 @@ Data members: #include "pycore_code.h" // _Py_QuickenedCount #include "pycore_frame.h" // _PyInterpreterFrame #include "pycore_initconfig.h" // _PyStatus_EXCEPTION() +#include "pycore_long.h" // _PY_LONG_MAX_STR_DIGITS_THRESHOLD #include "pycore_namespace.h" // _PyNamespace_New() #include "pycore_object.h" // _PyObject_IS_GC() #include "pycore_pathconfig.h" // _PyPathConfig_ComputeSysPath0() @@ -28,10 +29,10 @@ Data members: #include "pycore_pymath.h" // _PY_SHORT_FLOAT_REPR #include "pycore_pymem.h" // _PyMem_SetDefaultAllocator() #include "pycore_pystate.h" // _PyThreadState_GET() -#include "pycore_structseq.h" // _PyStructSequence_InitType() +#include "pycore_structseq.h" // _PyStructSequence_InitBuiltinWithFlags() #include "pycore_tuple.h" // _PyTuple_FromArray() -#include "frameobject.h" // PyFrame_GetBack() +#include "frameobject.h" // PyFrame_FastToLocalsWithError() #include "pydtrace.h" #include "osdefs.h" // DELIM #include "stdlib_module_names.h" // _Py_stdlib_module_names @@ -1021,6 +1022,36 @@ Set the global debug tracing function. It will be called on each\n\ function call. See the debugger chapter in the library manual." ); +/*[clinic input] +sys._settraceallthreads + + arg: object + / + +Set the global debug tracing function in all running threads belonging to the current interpreter. + +It will be called on each function call. See the debugger chapter +in the library manual. +[clinic start generated code]*/ + +static PyObject * +sys__settraceallthreads(PyObject *module, PyObject *arg) +/*[clinic end generated code: output=161cca30207bf3ca input=5906aa1485a50289]*/ +{ + PyObject* argument = NULL; + Py_tracefunc func = NULL; + + if (arg != Py_None) { + func = trace_trampoline; + argument = arg; + } + + + PyEval_SetTraceAllThreads(func, argument); + + Py_RETURN_NONE; +} + /*[clinic input] sys.gettrace @@ -1066,6 +1097,35 @@ Set the profiling function. It will be called on each function call\n\ and return. See the profiler chapter in the library manual." ); +/*[clinic input] +sys._setprofileallthreads + + arg: object + / + +Set the profiling function in all running threads belonging to the current interpreter. + +It will be called on each function call and return. See the profiler chapter +in the library manual. +[clinic start generated code]*/ + +static PyObject * +sys__setprofileallthreads(PyObject *module, PyObject *arg) +/*[clinic end generated code: output=2d61319e27b309fe input=d1a356d3f4f9060a]*/ +{ + PyObject* argument = NULL; + Py_tracefunc func = NULL; + + if (arg != Py_None) { + func = profile_trampoline; + argument = arg; + } + + PyEval_SetProfileAllThreads(func, argument); + + Py_RETURN_NONE; +} + /*[clinic input] sys.getprofile @@ -1427,6 +1487,44 @@ static PyStructSequence_Desc windows_version_desc = { via indexing, the rest are name only */ }; +static PyObject * +_sys_getwindowsversion_from_kernel32() +{ + HANDLE hKernel32; + wchar_t kernel32_path[MAX_PATH]; + LPVOID verblock; + DWORD verblock_size; + VS_FIXEDFILEINFO *ffi; + UINT ffi_len; + DWORD realMajor, realMinor, realBuild; + + Py_BEGIN_ALLOW_THREADS + hKernel32 = GetModuleHandleW(L"kernel32.dll"); + Py_END_ALLOW_THREADS + if (!hKernel32 || !GetModuleFileNameW(hKernel32, kernel32_path, MAX_PATH)) { + PyErr_SetFromWindowsErr(0); + return NULL; + } + verblock_size = GetFileVersionInfoSizeW(kernel32_path, NULL); + if (!verblock_size) { + PyErr_SetFromWindowsErr(0); + return NULL; + } + verblock = PyMem_RawMalloc(verblock_size); + if (!verblock || + !GetFileVersionInfoW(kernel32_path, 0, verblock_size, verblock) || + !VerQueryValueW(verblock, L"", (LPVOID)&ffi, &ffi_len)) { + PyErr_SetFromWindowsErr(0); + return NULL; + } + + realMajor = HIWORD(ffi->dwProductVersionMS); + realMinor = LOWORD(ffi->dwProductVersionMS); + realBuild = HIWORD(ffi->dwProductVersionLS); + PyMem_RawFree(verblock); + return Py_BuildValue("(kkk)", realMajor, realMinor, realBuild); +} + /* Disable deprecation warnings about GetVersionEx as the result is being passed straight through to the caller, who is responsible for using it correctly. */ @@ -1456,11 +1554,13 @@ sys_getwindowsversion_impl(PyObject *module) PyObject *version; int pos = 0; OSVERSIONINFOEXW ver; - DWORD realMajor, realMinor, realBuild; - HANDLE hKernel32; - wchar_t kernel32_path[MAX_PATH]; - LPVOID verblock; - DWORD verblock_size; + + version = PyObject_GetAttrString(module, "_cached_windows_version"); + if (version && PyObject_TypeCheck(version, &WindowsVersionType)) { + return version; + } + Py_XDECREF(version); + PyErr_Clear(); ver.dwOSVersionInfoSize = sizeof(ver); if (!GetVersionExW((OSVERSIONINFOW*) &ver)) @@ -1480,41 +1580,34 @@ sys_getwindowsversion_impl(PyObject *module) PyStructSequence_SET_ITEM(version, pos++, PyLong_FromLong(ver.wSuiteMask)); PyStructSequence_SET_ITEM(version, pos++, PyLong_FromLong(ver.wProductType)); - realMajor = ver.dwMajorVersion; - realMinor = ver.dwMinorVersion; - realBuild = ver.dwBuildNumber; - // GetVersion will lie if we are running in a compatibility mode. // We need to read the version info from a system file resource // to accurately identify the OS version. If we fail for any reason, // just return whatever GetVersion said. - Py_BEGIN_ALLOW_THREADS - hKernel32 = GetModuleHandleW(L"kernel32.dll"); - Py_END_ALLOW_THREADS - if (hKernel32 && GetModuleFileNameW(hKernel32, kernel32_path, MAX_PATH) && - (verblock_size = GetFileVersionInfoSizeW(kernel32_path, NULL)) && - (verblock = PyMem_RawMalloc(verblock_size))) { - VS_FIXEDFILEINFO *ffi; - UINT ffi_len; - - if (GetFileVersionInfoW(kernel32_path, 0, verblock_size, verblock) && - VerQueryValueW(verblock, L"", (LPVOID)&ffi, &ffi_len)) { - realMajor = HIWORD(ffi->dwProductVersionMS); - realMinor = LOWORD(ffi->dwProductVersionMS); - realBuild = HIWORD(ffi->dwProductVersionLS); - } - PyMem_RawFree(verblock); + PyObject *realVersion = _sys_getwindowsversion_from_kernel32(); + if (!realVersion) { + PyErr_Clear(); + realVersion = Py_BuildValue("(kkk)", + ver.dwMajorVersion, + ver.dwMinorVersion, + ver.dwBuildNumber + ); + } + + if (realVersion) { + PyStructSequence_SET_ITEM(version, pos++, realVersion); } - PyStructSequence_SET_ITEM(version, pos++, Py_BuildValue("(kkk)", - realMajor, - realMinor, - realBuild - )); if (PyErr_Occurred()) { Py_DECREF(version); return NULL; } + + if (PyObject_SetAttrString(module, "_cached_windows_version", version) < 0) { + Py_DECREF(version); + return NULL; + } + return version; } @@ -1612,6 +1705,45 @@ sys_mdebug_impl(PyObject *module, int flag) } #endif /* USE_MALLOPT */ + +/*[clinic input] +sys.get_int_max_str_digits + +Set the maximum string digits limit for non-binary int<->str conversions. +[clinic start generated code]*/ + +static PyObject * +sys_get_int_max_str_digits_impl(PyObject *module) +/*[clinic end generated code: output=0042f5e8ae0e8631 input=8dab13e2023e60d5]*/ +{ + PyInterpreterState *interp = _PyInterpreterState_GET(); + return PyLong_FromSsize_t(interp->int_max_str_digits); +} + +/*[clinic input] +sys.set_int_max_str_digits + + maxdigits: int + +Set the maximum string digits limit for non-binary int<->str conversions. +[clinic start generated code]*/ + +static PyObject * +sys_set_int_max_str_digits_impl(PyObject *module, int maxdigits) +/*[clinic end generated code: output=734d4c2511f2a56d input=d7e3f325db6910c5]*/ +{ + PyThreadState *tstate = _PyThreadState_GET(); + if ((!maxdigits) || (maxdigits >= _PY_LONG_MAX_STR_DIGITS_THRESHOLD)) { + tstate->interp->int_max_str_digits = maxdigits; + Py_RETURN_NONE; + } else { + PyErr_Format( + PyExc_ValueError, "maxdigits must be 0 or larger than %d", + _PY_LONG_MAX_STR_DIGITS_THRESHOLD); + return NULL; + } +} + size_t _PySys_GetSizeOf(PyObject *o) { @@ -1772,20 +1904,30 @@ sys__getframe_impl(PyObject *module, int depth) PyThreadState *tstate = _PyThreadState_GET(); _PyInterpreterFrame *frame = tstate->cframe->current_frame; - if (_PySys_Audit(tstate, "sys._getframe", NULL) < 0) { - return NULL; - } - - while (depth > 0 && frame != NULL) { - frame = frame->previous; - --depth; + if (frame != NULL) { + while (depth > 0) { + frame = frame->previous; + if (frame == NULL) { + break; + } + if (_PyFrame_IsIncomplete(frame)) { + continue; + } + --depth; + } } if (frame == NULL) { _PyErr_SetString(tstate, PyExc_ValueError, "call stack is not deep enough"); return NULL; } - return _Py_XNewRef((PyObject *)_PyFrame_GetFrameObject(frame)); + + PyObject *pyFrame = Py_XNewRef((PyObject *)_PyFrame_GetFrameObject(frame)); + if (pyFrame && _PySys_Audit(tstate, "sys._getframe", "(O)", pyFrame) < 0) { + Py_DECREF(pyFrame); + return NULL; + } + return pyFrame; } /*[clinic input] @@ -1909,6 +2051,66 @@ sys_is_finalizing_impl(PyObject *module) return PyBool_FromLong(_Py_IsFinalizing()); } +#ifdef Py_STATS +/*[clinic input] +sys._stats_on + +Turns on stats gathering (stats gathering is on by default). +[clinic start generated code]*/ + +static PyObject * +sys__stats_on_impl(PyObject *module) +/*[clinic end generated code: output=aca53eafcbb4d9fe input=8ddc6df94e484f3a]*/ +{ + _py_stats = &_py_stats_struct; + Py_RETURN_NONE; +} + +/*[clinic input] +sys._stats_off + +Turns off stats gathering (stats gathering is on by default). +[clinic start generated code]*/ + +static PyObject * +sys__stats_off_impl(PyObject *module) +/*[clinic end generated code: output=1534c1ee63812214 input=b3e50e71ecf29f66]*/ +{ + _py_stats = NULL; + Py_RETURN_NONE; +} + +/*[clinic input] +sys._stats_clear + +Clears the stats. +[clinic start generated code]*/ + +static PyObject * +sys__stats_clear_impl(PyObject *module) +/*[clinic end generated code: output=fb65a2525ee50604 input=3e03f2654f44da96]*/ +{ + _Py_StatsClear(); + Py_RETURN_NONE; +} + +/*[clinic input] +sys._stats_dump + +Dump stats to file, and clears the stats. +[clinic start generated code]*/ + +static PyObject * +sys__stats_dump_impl(PyObject *module) +/*[clinic end generated code: output=79f796fb2b4ddf05 input=92346f16d64f6f95]*/ +{ + _Py_PrintSpecializationStats(1); + _Py_StatsClear(); + Py_RETURN_NONE; +} + +#endif + #ifdef ANDROID_API_LEVEL /*[clinic input] sys.getandroidapilevel @@ -1924,6 +2126,80 @@ sys_getandroidapilevel_impl(PyObject *module) } #endif /* ANDROID_API_LEVEL */ +/*[clinic input] +sys.activate_stack_trampoline + + backend: str + / + +Activate the perf profiler trampoline. +[clinic start generated code]*/ + +static PyObject * +sys_activate_stack_trampoline_impl(PyObject *module, const char *backend) +/*[clinic end generated code: output=5783cdeb51874b43 input=b09020e3a17c78c5]*/ +{ +#ifdef PY_HAVE_PERF_TRAMPOLINE + if (strcmp(backend, "perf") == 0) { + _PyPerf_Callbacks cur_cb; + _PyPerfTrampoline_GetCallbacks(&cur_cb); + if (cur_cb.init_state != _Py_perfmap_callbacks.init_state) { + if (_PyPerfTrampoline_SetCallbacks(&_Py_perfmap_callbacks) < 0 ) { + PyErr_SetString(PyExc_ValueError, "can't activate perf trampoline"); + return NULL; + } + } + } + else { + PyErr_Format(PyExc_ValueError, "invalid backend: %s", backend); + return NULL; + } + if (_PyPerfTrampoline_Init(1) < 0) { + return NULL; + } + Py_RETURN_NONE; +#else + PyErr_SetString(PyExc_ValueError, "perf trampoline not available"); + return NULL; +#endif +} + + +/*[clinic input] +sys.deactivate_stack_trampoline + +Dectivate the perf profiler trampoline. +[clinic start generated code]*/ + +static PyObject * +sys_deactivate_stack_trampoline_impl(PyObject *module) +/*[clinic end generated code: output=b50da25465df0ef1 input=491f4fc1ed615736]*/ +{ + if (_PyPerfTrampoline_Init(0) < 0) { + return NULL; + } + Py_RETURN_NONE; +} + +/*[clinic input] +sys.is_stack_trampoline_active + +Returns *True* if the perf profiler trampoline is active. +[clinic start generated code]*/ + +static PyObject * +sys_is_stack_trampoline_active_impl(PyObject *module) +/*[clinic end generated code: output=ab2746de0ad9d293 input=061fa5776ac9dd59]*/ +{ +#ifdef PY_HAVE_PERF_TRAMPOLINE + if (_PyIsPerfTrampolineActive()) { + Py_RETURN_TRUE; + } +#endif + Py_RETURN_FALSE; +} + + static PyMethodDef sys_methods[] = { /* Might as well keep this in alphabetic order */ SYS_ADDAUDITHOOK_METHODDEF @@ -1965,9 +2241,11 @@ static PyMethodDef sys_methods[] = { SYS_GETSWITCHINTERVAL_METHODDEF SYS_SETDLOPENFLAGS_METHODDEF {"setprofile", sys_setprofile, METH_O, setprofile_doc}, + SYS__SETPROFILEALLTHREADS_METHODDEF SYS_GETPROFILE_METHODDEF SYS_SETRECURSIONLIMIT_METHODDEF {"settrace", sys_settrace, METH_O, settrace_doc}, + SYS__SETTRACEALLTHREADS_METHODDEF SYS_GETTRACE_METHODDEF SYS_CALL_TRACING_METHODDEF SYS__DEBUGMALLOCSTATS_METHODDEF @@ -1977,7 +2255,18 @@ static PyMethodDef sys_methods[] = { METH_VARARGS | METH_KEYWORDS, set_asyncgen_hooks_doc}, SYS_GET_ASYNCGEN_HOOKS_METHODDEF SYS_GETANDROIDAPILEVEL_METHODDEF + SYS_ACTIVATE_STACK_TRAMPOLINE_METHODDEF + SYS_DEACTIVATE_STACK_TRAMPOLINE_METHODDEF + SYS_IS_STACK_TRAMPOLINE_ACTIVE_METHODDEF SYS_UNRAISABLEHOOK_METHODDEF + SYS_GET_INT_MAX_STR_DIGITS_METHODDEF + SYS_SET_INT_MAX_STR_DIGITS_METHODDEF +#ifdef Py_STATS + SYS__STATS_ON_METHODDEF + SYS__STATS_OFF_METHODDEF + SYS__STATS_CLEAR_METHODDEF + SYS__STATS_DUMP_METHODDEF +#endif {NULL, NULL} // sentinel }; @@ -2472,6 +2761,7 @@ static PyStructSequence_Field flags_fields[] = { {"utf8_mode", "-X utf8"}, {"warn_default_encoding", "-X warn_default_encoding"}, {"safe_path", "-P"}, + {"int_max_str_digits", "-X int_max_str_digits"}, {0} }; @@ -2479,7 +2769,7 @@ static PyStructSequence_Desc flags_desc = { "sys.flags", /* name */ flags__doc__, /* doc */ flags_fields, /* fields */ - 17 + 18 }; static int @@ -2520,6 +2810,7 @@ set_flags_from_config(PyInterpreterState *interp, PyObject *flags) SetFlag(preconfig->utf8_mode); SetFlag(config->warn_default_encoding); SetFlagObj(PyBool_FromLong(config->safe_path)); + SetFlag(_Py_global_config_int_max_str_digits); #undef SetFlagObj #undef SetFlag return 0; @@ -2713,14 +3004,18 @@ EM_JS(char *, _Py_emscripten_runtime, (void), { if (typeof navigator == 'object') { info = navigator.userAgent; } else if (typeof process == 'object') { - info = "Node.js ".concat(process.version) + info = "Node.js ".concat(process.version); } else { - info = "UNKNOWN" + info = "UNKNOWN"; } var len = lengthBytesUTF8(info) + 1; var res = _malloc(len); - stringToUTF8(info, res, len); + if (res) stringToUTF8(info, res, len); +#if __wasm64__ + return BigInt(res); +#else return res; +#endif }); static PyObject * @@ -2845,7 +3140,7 @@ _PySys_InitCore(PyThreadState *tstate, PyObject *sysdict) SET_SYS("int_info", PyLong_GetInfo()); /* initialize hash_info */ if (Hash_InfoType.tp_name == NULL) { - if (PyStructSequence_InitType2(&Hash_InfoType, &hash_info_desc) < 0) { + if (_PyStructSequence_InitBuiltin(&Hash_InfoType, &hash_info_desc) < 0) { goto type_init_failed; } } @@ -2867,14 +3162,18 @@ _PySys_InitCore(PyThreadState *tstate, PyObject *sysdict) SET_SYS_FROM_STRING("abiflags", ABIFLAGS); #endif +#define ENSURE_INFO_TYPE(TYPE, DESC) \ + do { \ + if (TYPE.tp_name == NULL) { \ + if (_PyStructSequence_InitBuiltinWithFlags( \ + &TYPE, &DESC, Py_TPFLAGS_DISALLOW_INSTANTIATION) < 0) { \ + goto type_init_failed; \ + } \ + } \ + } while (0) + /* version_info */ - if (VersionInfoType.tp_name == NULL) { - if (_PyStructSequence_InitType(&VersionInfoType, - &version_info_desc, - Py_TPFLAGS_DISALLOW_INSTANTIATION) < 0) { - goto type_init_failed; - } - } + ENSURE_INFO_TYPE(VersionInfoType, version_info_desc); version_info = make_version_info(tstate); SET_SYS("version_info", version_info); @@ -2882,27 +3181,18 @@ _PySys_InitCore(PyThreadState *tstate, PyObject *sysdict) SET_SYS("implementation", make_impl_info(version_info)); // sys.flags: updated in-place later by _PySys_UpdateConfig() - if (FlagsType.tp_name == 0) { - if (_PyStructSequence_InitType(&FlagsType, &flags_desc, - Py_TPFLAGS_DISALLOW_INSTANTIATION) < 0) { - goto type_init_failed; - } - } + ENSURE_INFO_TYPE(FlagsType, flags_desc); SET_SYS("flags", make_flags(tstate->interp)); #if defined(MS_WINDOWS) /* getwindowsversion */ - if (WindowsVersionType.tp_name == 0) { - if (_PyStructSequence_InitType(&WindowsVersionType, - &windows_version_desc, - Py_TPFLAGS_DISALLOW_INSTANTIATION) < 0) { - goto type_init_failed; - } - } + ENSURE_INFO_TYPE(WindowsVersionType, windows_version_desc); SET_SYS_FROM_STRING("_vpath", VPATH); #endif +#undef ENSURE_INFO_TYPE + /* float repr style: 0.03 (short) vs 0.029999999999999999 (legacy) */ #if _PY_SHORT_FLOAT_REPR == 1 SET_SYS_FROM_STRING("float_repr_style", "short"); @@ -2914,7 +3204,7 @@ _PySys_InitCore(PyThreadState *tstate, PyObject *sysdict) /* initialize asyncgen_hooks */ if (AsyncGenHooksType.tp_name == NULL) { - if (PyStructSequence_InitType2( + if (_PyStructSequence_InitBuiltin( &AsyncGenHooksType, &asyncgen_hooks_desc) < 0) { goto type_init_failed; } diff --git a/Python/thread.c b/Python/thread.c index 846f02545271cf..8c8a4e81895eb6 100644 --- a/Python/thread.c +++ b/Python/thread.c @@ -55,8 +55,15 @@ PyThread_init_thread(void) PyThread__init_thread(); } -#if defined(_POSIX_THREADS) -# define PYTHREAD_NAME "pthread" +#if defined(HAVE_PTHREAD_STUBS) +# define PYTHREAD_NAME "pthread-stubs" +# include "thread_pthread_stubs.h" +#elif defined(_POSIX_THREADS) +# if defined(__EMSCRIPTEN__) && !defined(__EMSCRIPTEN_PTHREADS__) +# define PYTHREAD_NAME "pthread-stubs" +# else +# define PYTHREAD_NAME "pthread" +# endif # include "thread_pthread.h" #elif defined(NT_THREADS) # define PYTHREAD_NAME "nt" @@ -155,7 +162,8 @@ PyThread_GetInfo(void) #endif if (ThreadInfoType.tp_name == 0) { - if (PyStructSequence_InitType2(&ThreadInfoType, &threadinfo_desc) < 0) + if (_PyStructSequence_InitBuiltin(&ThreadInfoType, + &threadinfo_desc) < 0) return NULL; } @@ -170,7 +178,9 @@ PyThread_GetInfo(void) } PyStructSequence_SET_ITEM(threadinfo, pos++, value); -#ifdef _POSIX_THREADS +#ifdef HAVE_PTHREAD_STUBS + value = Py_NewRef(Py_None); +#elif defined(_POSIX_THREADS) #ifdef USE_SEMAPHORES value = PyUnicode_FromString("semaphore"); #else @@ -181,8 +191,7 @@ PyThread_GetInfo(void) return NULL; } #else - Py_INCREF(Py_None); - value = Py_None; + value = Py_NewRef(Py_None); #endif PyStructSequence_SET_ITEM(threadinfo, pos++, value); diff --git a/Python/thread_pthread.h b/Python/thread_pthread.h index 1b2c28d0f39929..1c5b320813af83 100644 --- a/Python/thread_pthread.h +++ b/Python/thread_pthread.h @@ -7,7 +7,9 @@ #if defined(__APPLE__) || defined(HAVE_PTHREAD_DESTRUCTOR) #define destructor xxdestructor #endif -#include <pthread.h> +#ifndef HAVE_PTHREAD_STUBS +# include <pthread.h> +#endif #if defined(__APPLE__) || defined(HAVE_PTHREAD_DESTRUCTOR) #undef destructor #endif @@ -113,19 +115,6 @@ #endif -#define MICROSECONDS_TO_TIMESPEC(microseconds, ts) \ -do { \ - struct timeval tv; \ - gettimeofday(&tv, NULL); \ - tv.tv_usec += microseconds % 1000000; \ - tv.tv_sec += microseconds / 1000000; \ - tv.tv_sec += tv.tv_usec / 1000000; \ - tv.tv_usec %= 1000000; \ - ts.tv_sec = tv.tv_sec; \ - ts.tv_nsec = tv.tv_usec * 1000; \ -} while(0) - - /* * pthread_cond support */ @@ -156,23 +145,23 @@ _PyThread_cond_init(PyCOND_T *cond) return pthread_cond_init(cond, condattr_monotonic); } + void _PyThread_cond_after(long long us, struct timespec *abs) { + _PyTime_t timeout = _PyTime_FromMicrosecondsClamp(us); + _PyTime_t t; #ifdef CONDATTR_MONOTONIC if (condattr_monotonic) { - clock_gettime(CLOCK_MONOTONIC, abs); - abs->tv_sec += us / 1000000; - abs->tv_nsec += (us % 1000000) * 1000; - abs->tv_sec += abs->tv_nsec / 1000000000; - abs->tv_nsec %= 1000000000; - return; + t = _PyTime_GetMonotonicClock(); } + else #endif - - struct timespec ts; - MICROSECONDS_TO_TIMESPEC(us, ts); - *abs = ts; + { + t = _PyTime_GetSystemClock(); + } + t = _PyTime_Add(t, timeout); + _PyTime_AsTimespec_clamp(t, abs); } @@ -438,22 +427,15 @@ PyThread_acquire_lock_timed(PyThread_type_lock lock, PY_TIMEOUT_T microseconds, _PyTime_t timeout; // relative timeout if (microseconds >= 0) { - _PyTime_t ns; - if (microseconds <= _PyTime_MAX / 1000) { - ns = microseconds * 1000; - } - else { - // bpo-41710: PyThread_acquire_lock_timed() cannot report timeout - // overflow to the caller, so clamp the timeout to - // [_PyTime_MIN, _PyTime_MAX]. - // - // _PyTime_MAX nanoseconds is around 292.3 years. - // - // _thread.Lock.acquire() and _thread.RLock.acquire() raise an - // OverflowError if microseconds is greater than PY_TIMEOUT_MAX. - ns = _PyTime_MAX; - } - timeout = _PyTime_FromNanoseconds(ns); + // bpo-41710: PyThread_acquire_lock_timed() cannot report timeout + // overflow to the caller, so clamp the timeout to + // [_PyTime_MIN, _PyTime_MAX]. + // + // _PyTime_MAX nanoseconds is around 292.3 years. + // + // _thread.Lock.acquire() and _thread.RLock.acquire() raise an + // OverflowError if microseconds is greater than PY_TIMEOUT_MAX. + timeout = _PyTime_FromMicrosecondsClamp(microseconds); } else { timeout = _PyTime_FromNanoseconds(-1); @@ -504,7 +486,7 @@ PyThread_acquire_lock_timed(PyThread_type_lock lock, PY_TIMEOUT_T microseconds, #ifndef HAVE_SEM_CLOCKWAIT if (timeout > 0) { /* wait interrupted by a signal (EINTR): recompute the timeout */ - _PyTime_t timeout = _PyDeadline_Get(deadline); + timeout = _PyDeadline_Get(deadline); if (timeout < 0) { status = ETIMEDOUT; break; @@ -626,63 +608,79 @@ PyThread_acquire_lock_timed(PyThread_type_lock lock, PY_TIMEOUT_T microseconds, if (microseconds == 0) { status = pthread_mutex_trylock( &thelock->mut ); - if (status != EBUSY) + if (status != EBUSY) { CHECK_STATUS_PTHREAD("pthread_mutex_trylock[1]"); + } } else { status = pthread_mutex_lock( &thelock->mut ); CHECK_STATUS_PTHREAD("pthread_mutex_lock[1]"); } - if (status == 0) { - if (thelock->locked == 0) { - success = PY_LOCK_ACQUIRED; - } - else if (microseconds != 0) { - struct timespec abs; - if (microseconds > 0) { - _PyThread_cond_after(microseconds, &abs); + if (status != 0) { + goto done; + } + + if (thelock->locked == 0) { + success = PY_LOCK_ACQUIRED; + goto unlock; + } + if (microseconds == 0) { + goto unlock; + } + + struct timespec abs_timeout; + if (microseconds > 0) { + _PyThread_cond_after(microseconds, &abs_timeout); + } + // Continue trying until we get the lock + + // mut must be locked by me -- part of the condition protocol + while (1) { + if (microseconds > 0) { + status = pthread_cond_timedwait(&thelock->lock_released, + &thelock->mut, &abs_timeout); + if (status == 1) { + break; } - /* continue trying until we get the lock */ - - /* mut must be locked by me -- part of the condition - * protocol */ - while (success == PY_LOCK_FAILURE) { - if (microseconds > 0) { - status = pthread_cond_timedwait( - &thelock->lock_released, - &thelock->mut, &abs); - if (status == 1) { - break; - } - if (status == ETIMEDOUT) - break; - CHECK_STATUS_PTHREAD("pthread_cond_timedwait"); - } - else { - status = pthread_cond_wait( - &thelock->lock_released, - &thelock->mut); - CHECK_STATUS_PTHREAD("pthread_cond_wait"); - } - - if (intr_flag && status == 0 && thelock->locked) { - /* We were woken up, but didn't get the lock. We probably received - * a signal. Return PY_LOCK_INTR to allow the caller to handle - * it and retry. */ - success = PY_LOCK_INTR; - break; - } - else if (status == 0 && !thelock->locked) { - success = PY_LOCK_ACQUIRED; - } + if (status == ETIMEDOUT) { + break; } + CHECK_STATUS_PTHREAD("pthread_cond_timedwait"); + } + else { + status = pthread_cond_wait( + &thelock->lock_released, + &thelock->mut); + CHECK_STATUS_PTHREAD("pthread_cond_wait"); + } + + if (intr_flag && status == 0 && thelock->locked) { + // We were woken up, but didn't get the lock. We probably received + // a signal. Return PY_LOCK_INTR to allow the caller to handle + // it and retry. + success = PY_LOCK_INTR; + break; + } + + if (status == 0 && !thelock->locked) { + success = PY_LOCK_ACQUIRED; + break; } - if (success == PY_LOCK_ACQUIRED) thelock->locked = 1; - status = pthread_mutex_unlock( &thelock->mut ); - CHECK_STATUS_PTHREAD("pthread_mutex_unlock[1]"); + + // Wait got interrupted by a signal: retry } - if (error) success = PY_LOCK_FAILURE; +unlock: + if (success == PY_LOCK_ACQUIRED) { + thelock->locked = 1; + } + status = pthread_mutex_unlock( &thelock->mut ); + CHECK_STATUS_PTHREAD("pthread_mutex_unlock[1]"); + +done: + if (error) { + success = PY_LOCK_FAILURE; + } return success; } diff --git a/Python/thread_pthread_stubs.h b/Python/thread_pthread_stubs.h new file mode 100644 index 00000000000000..8b80c0f87e2509 --- /dev/null +++ b/Python/thread_pthread_stubs.h @@ -0,0 +1,185 @@ +#include "cpython/pthread_stubs.h" + +// mutex +int +pthread_mutex_init(pthread_mutex_t *restrict mutex, + const pthread_mutexattr_t *restrict attr) +{ + return 0; +} + +int +pthread_mutex_destroy(pthread_mutex_t *mutex) +{ + return 0; +} + +int +pthread_mutex_trylock(pthread_mutex_t *mutex) +{ + return 0; +} + +int +pthread_mutex_lock(pthread_mutex_t *mutex) +{ + return 0; +} + +int +pthread_mutex_unlock(pthread_mutex_t *mutex) +{ + return 0; +} + +// condition +int +pthread_cond_init(pthread_cond_t *restrict cond, + const pthread_condattr_t *restrict attr) +{ + return 0; +} + +PyAPI_FUNC(int)pthread_cond_destroy(pthread_cond_t *cond) +{ + return 0; +} + +int +pthread_cond_wait(pthread_cond_t *restrict cond, + pthread_mutex_t *restrict mutex) +{ + return 0; +} + +int +pthread_cond_timedwait(pthread_cond_t *restrict cond, + pthread_mutex_t *restrict mutex, + const struct timespec *restrict abstime) +{ + return 0; +} + +int +pthread_cond_signal(pthread_cond_t *cond) +{ + return 0; +} + +int +pthread_condattr_init(pthread_condattr_t *attr) +{ + return 0; +} + +int +pthread_condattr_setclock(pthread_condattr_t *attr, clockid_t clock_id) +{ + return 0; +} + +// pthread +int +pthread_create(pthread_t *restrict thread, + const pthread_attr_t *restrict attr, + void *(*start_routine)(void *), + void *restrict arg) +{ + return EAGAIN; +} + +int +pthread_detach(pthread_t thread) +{ + return 0; +} + +PyAPI_FUNC(pthread_t) pthread_self(void) +{ + return 0; +} + +int +pthread_exit(void *retval) +{ + exit(0); +} + +int +pthread_attr_init(pthread_attr_t *attr) +{ + return 0; +} + +int +pthread_attr_setstacksize( + pthread_attr_t *attr, size_t stacksize) +{ + return 0; +} + +int +pthread_attr_destroy(pthread_attr_t *attr) +{ + return 0; +} + +// pthread_key +typedef struct { + bool in_use; + void *value; +} py_tls_entry; + +static py_tls_entry py_tls_entries[PTHREAD_KEYS_MAX] = {0}; + +int +pthread_key_create(pthread_key_t *key, void (*destr_function)(void *)) +{ + if (!key) { + return EINVAL; + } + if (destr_function != NULL) { + Py_FatalError("pthread_key_create destructor is not supported"); + } + for (pthread_key_t idx = 0; idx < PTHREAD_KEYS_MAX; idx++) { + if (!py_tls_entries[idx].in_use) { + py_tls_entries[idx].in_use = true; + *key = idx; + return 0; + } + } + return EAGAIN; +} + +int +pthread_key_delete(pthread_key_t key) +{ + if (key < 0 || key >= PTHREAD_KEYS_MAX || !py_tls_entries[key].in_use) { + return EINVAL; + } + py_tls_entries[key].in_use = false; + py_tls_entries[key].value = NULL; + return 0; +} + + +void * +pthread_getspecific(pthread_key_t key) { + if (key < 0 || key >= PTHREAD_KEYS_MAX || !py_tls_entries[key].in_use) { + return NULL; + } + return py_tls_entries[key].value; +} + +int +pthread_setspecific(pthread_key_t key, const void *value) +{ + if (key < 0 || key >= PTHREAD_KEYS_MAX || !py_tls_entries[key].in_use) { + return EINVAL; + } + py_tls_entries[key].value = (void *)value; + return 0; +} + +// let thread_pthread define the Python API +#include "thread_pthread.h" diff --git a/Python/traceback.c b/Python/traceback.c index e76c9aa1a14c5e..de658b9103180e 100644 --- a/Python/traceback.c +++ b/Python/traceback.c @@ -3,7 +3,6 @@ #include "Python.h" -#include "frameobject.h" // PyFrame_GetBack() #include "pycore_ast.h" // asdl_seq_* #include "pycore_call.h" // _PyObject_CallMethodFormat() #include "pycore_compile.h" // _PyAST_Optimize @@ -15,7 +14,9 @@ #include "pycore_pyerrors.h" // _PyErr_Fetch() #include "pycore_pystate.h" // _PyThreadState_GET() #include "pycore_traceback.h" // EXCEPTION_TB_HEADER + #include "../Parser/pegen.h" // _PyPegen_byte_offset_to_character_offset() +#include "frameobject.h" // PyFrame_New() #include "structmember.h" // PyMemberDef #include "osdefs.h" // SEP #ifdef HAVE_FCNTL_H @@ -591,7 +592,6 @@ _Py_DisplaySourceLine(PyObject *f, PyObject *filename, int lineno, int indent, * Traceback (most recent call last): * File "/home/isidentical/cpython/cpython/t.py", line 10, in <module> * add_values(1, 2, 'x', 3, 4) - * ^^^^^^^^^^^^^^^^^^^^^^^^^^^ * File "/home/isidentical/cpython/cpython/t.py", line 2, in add_values * return a + b + c + d + e * ~~~~~~^~~ @@ -735,7 +735,7 @@ print_error_location_carets(PyObject *f, int offset, Py_ssize_t start_offset, Py int special_chars = (left_end_offset != -1 || right_start_offset != -1); const char *str; while (++offset <= end_offset) { - if (offset <= start_offset || offset > end_offset) { + if (offset <= start_offset) { str = " "; } else if (special_chars && left_end_offset < offset && offset <= right_start_offset) { str = secondary; @@ -791,6 +791,7 @@ tb_displayline(PyTracebackObject* tb, PyObject *f, PyObject *filename, int linen int code_offset = tb->tb_lasti; PyCodeObject* code = frame->f_frame->f_code; + const Py_ssize_t source_line_len = PyUnicode_GET_LENGTH(source_line); int start_line; int end_line; @@ -812,7 +813,7 @@ tb_displayline(PyTracebackObject* tb, PyObject *f, PyObject *filename, int linen // // ERROR LINE ERROR LINE ERROR LINE ERROR LINE ERROR LINE ERROR LINE ERROR LINE // ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~~~ - // | |-> left_end_offset | |-> left_offset + // | |-> left_end_offset | |-> end_offset // |-> start_offset |-> right_start_offset // // In general we will only have (start_offset, end_offset) but we can gather more information @@ -821,6 +822,9 @@ tb_displayline(PyTracebackObject* tb, PyObject *f, PyObject *filename, int linen // the different ranges (primary_error_char and secondary_error_char). If we cannot obtain the // AST information or we cannot identify special ranges within it, then left_end_offset and // right_end_offset will be set to -1. + // + // To keep the column indicators pertinent, they are not shown when the primary character + // spans the whole line. // Convert the utf-8 byte offset to the actual character offset so we print the right number of carets. assert(source_line); @@ -858,7 +862,7 @@ tb_displayline(PyTracebackObject* tb, PyObject *f, PyObject *filename, int linen goto done; } - Py_ssize_t i = PyUnicode_GET_LENGTH(source_line); + Py_ssize_t i = source_line_len; while (--i >= 0) { if (!IS_WHITESPACE(source_line_str[i])) { break; @@ -868,6 +872,13 @@ tb_displayline(PyTracebackObject* tb, PyObject *f, PyObject *filename, int linen end_offset = i + 1; } + // Elide indicators if primary char spans the frame line + Py_ssize_t stripped_line_len = source_line_len - truncation - _TRACEBACK_SOURCE_LINE_INDENT; + bool has_secondary_ranges = (left_end_offset != -1 || right_start_offset != -1); + if (end_offset - start_offset == stripped_line_len && !has_secondary_ranges) { + goto done; + } + if (_Py_WriteIndentedMargin(margin_indent, margin, f) < 0) { err = -1; goto done; diff --git a/README.rst b/README.rst index c3a83bddf05e04..4ae5dfd1bb2525 100644 --- a/README.rst +++ b/README.rst @@ -201,7 +201,7 @@ script) you must take care that your primary python executable is not overwritten by the installation of a different version. All files and directories installed using ``make altinstall`` contain the major and minor version and can thus live side-by-side. ``make install`` also creates -``${prefix}/bin/python3`` which refers to ``${prefix}/bin/pythonX.Y``. If you +``${prefix}/bin/python3`` which refers to ``${prefix}/bin/python3.X``. If you intend to install multiple versions using the same prefix you must decide which version (if any) is your "primary" version. Install that version using ``make install``. Install all other versions using ``make altinstall``. @@ -238,7 +238,7 @@ All current PEPs, as well as guidelines for submitting a new PEP, are listed at Release Schedule ---------------- -See :pep:`664` for Python 3.12 release details. +See :pep:`693` for Python 3.12 release details. Copyright and License Information diff --git a/Tools/c-analyzer/c_common/fsutil.py b/Tools/c-analyzer/c_common/fsutil.py index 120a140288fb72..a8cf8d0537e40d 100644 --- a/Tools/c-analyzer/c_common/fsutil.py +++ b/Tools/c-analyzer/c_common/fsutil.py @@ -104,6 +104,25 @@ def format_filename(filename, relroot=USE_CWD, *, return filename +def match_path_tail(path1, path2): + """Return True if one path ends the other.""" + if path1 == path2: + return True + if os.path.isabs(path1): + if os.path.isabs(path2): + return False + return _match_tail(path1, path2) + elif os.path.isabs(path2): + return _match_tail(path2, path1) + else: + return _match_tail(path1, path2) or _match_tail(path2, path1) + + +def _match_tail(path, tail): + assert not os.path.isabs(tail), repr(tail) + return path.endswith(os.path.sep + tail) + + ################################## # find files diff --git a/Tools/c-analyzer/c_common/tables.py b/Tools/c-analyzer/c_common/tables.py index 130be6beba5f81..fe8e8cf473de4f 100644 --- a/Tools/c-analyzer/c_common/tables.py +++ b/Tools/c-analyzer/c_common/tables.py @@ -1,3 +1,4 @@ +from collections import namedtuple import csv import re import textwrap @@ -225,7 +226,11 @@ def _normalize_table_file_props(header, sep): def resolve_columns(specs): if isinstance(specs, str): specs = specs.replace(',', ' ').strip().split() - return _resolve_colspecs(specs) + resolved = [] + for raw in specs: + column = ColumnSpec.from_raw(raw) + resolved.append(column) + return resolved def build_table(specs, *, sep=' ', defaultwidth=None): @@ -233,37 +238,145 @@ def build_table(specs, *, sep=' ', defaultwidth=None): return _build_table(columns, sep=sep, defaultwidth=defaultwidth) -_COLSPEC_RE = re.compile(textwrap.dedent(r''' - ^ - (?: - \[ - ( - (?: [^\s\]] [^\]]* )? - [^\s\]] - ) # <label> - ] - )? - ( \w+ ) # <field> - (?: +class ColumnSpec(namedtuple('ColumnSpec', 'field label fmt')): + + REGEX = re.compile(textwrap.dedent(r''' + ^ (?: - : - ( [<^>] ) # <align> - ( \d+ ) # <width1> - ) - | + \[ + ( + (?: [^\s\]] [^\]]* )? + [^\s\]] + ) # <label> + ] + )? + ( [-\w]+ ) # <field> (?: (?: : - ( \d+ ) # <width2> - )? + ( [<^>] ) # <align> + ( \d+ )? # <width1> + ) + | (?: - : - ( .*? ) # <fmt> - )? - ) - )? - $ -'''), re.VERBOSE) + (?: + : + ( \d+ ) # <width2> + )? + (?: + : + ( .*? ) # <fmt> + )? + ) + )? + $ + '''), re.VERBOSE) + + @classmethod + def from_raw(cls, raw): + if not raw: + raise ValueError('missing column spec') + elif isinstance(raw, cls): + return raw + + if isinstance(raw, str): + *values, _ = cls._parse(raw) + else: + *values, _ = cls._normalize(raw) + if values is None: + raise ValueError(f'unsupported column spec {raw!r}') + return cls(*values) + + @classmethod + def parse(cls, specstr): + parsed = cls._parse(specstr) + if not parsed: + return None + *values, _ = parsed + return cls(*values) + + @classmethod + def _parse(cls, specstr): + m = cls.REGEX.match(specstr) + if not m: + return None + (label, field, + align, width1, + width2, fmt, + ) = m.groups() + if not label: + label = field + if fmt: + assert not align and not width1, (specstr,) + _parsed = _parse_fmt(fmt) + if not _parsed: + raise NotImplementedError + elif width2: + width, _ = _parsed + if width != int(width2): + raise NotImplementedError(specstr) + elif width2: + fmt = width2 + width = int(width2) + else: + assert not fmt, (fmt, specstr) + if align: + width = int(width1) if width1 else len(label) + fmt = f'{align}{width}' + else: + width = None + return field, label, fmt, width + + @classmethod + def _normalize(cls, spec): + if len(spec) == 1: + raw, = spec + raise NotImplementedError + return _resolve_column(raw) + + if len(spec) == 4: + label, field, width, fmt = spec + if width: + if not fmt: + fmt = str(width) + elif _parse_fmt(fmt)[0] != width: + raise ValueError(f'width mismatch in {spec}') + elif len(raw) == 3: + label, field, fmt = spec + if not field: + label, field = None, label + elif not isinstance(field, str) or not field.isidentifier(): + # XXX This doesn't seem right... + fmt = f'{field}:{fmt}' if fmt else field + label, field = None, label + elif len(raw) == 2: + label = None + field, fmt = raw + if not field: + field, fmt = fmt, None + elif not field.isidentifier() or fmt.isidentifier(): + label, field = field, fmt + else: + raise NotImplementedError + + fmt = f':{fmt}' if fmt else '' + if label: + return cls._parse(f'[{label}]{field}{fmt}') + else: + return cls._parse(f'{field}{fmt}') + + @property + def width(self): + if not self.fmt: + return None + parsed = _parse_fmt(self.fmt) + if not parsed: + return None + width, _ = parsed + return width + + def resolve_width(self, default=None): + return _resolve_width(self.width, self.fmt, self.label, default) def _parse_fmt(fmt): @@ -272,100 +385,31 @@ def _parse_fmt(fmt): width = fmt[1:] if width.isdigit(): return int(width), align - return None, None + elif fmt.isdigit(): + return int(fmt), '<' + return None -def _parse_colspec(raw): - m = _COLSPEC_RE.match(raw) - if not m: - return None - label, field, align, width1, width2, fmt = m.groups() - if not label: - label = field - if width1: - width = None - fmt = f'{align}{width1}' - elif width2: - width = int(width2) - if fmt: - _width, _ = _parse_fmt(fmt) - if _width == width: - width = None - else: - width = None - return field, label, width, fmt - - -def _normalize_colspec(spec): - if len(spec) == 1: - raw, = spec - return _resolve_column(raw) - - if len(spec) == 4: - label, field, width, fmt = spec - if width: - fmt = f'{width}:{fmt}' if fmt else width - elif len(raw) == 3: - label, field, fmt = spec - if not field: - label, field = None, label - elif not isinstance(field, str) or not field.isidentifier(): - fmt = f'{field}:{fmt}' if fmt else field - label, field = None, label - elif len(raw) == 2: - label = None - field, fmt = raw - if not field: - field, fmt = fmt, None - elif not field.isidentifier() or fmt.isidentifier(): - label, field = field, fmt - else: - raise NotImplementedError - - fmt = f':{fmt}' if fmt else '' - if label: - return _parse_colspec(f'[{label}]{field}{fmt}') - else: - return _parse_colspec(f'{field}{fmt}') - - -def _resolve_colspec(raw): - if isinstance(raw, str): - spec = _parse_colspec(raw) - else: - spec = _normalize_colspec(raw) - if spec is None: - raise ValueError(f'unsupported column spec {raw!r}') - return spec - - -def _resolve_colspecs(columns): - parsed = [] - for raw in columns: - column = _resolve_colspec(raw) - parsed.append(column) - return parsed - - -def _resolve_width(spec, defaultwidth): - _, label, width, fmt = spec +def _resolve_width(width, fmt, label, default): if width: if not isinstance(width, int): raise NotImplementedError return width - elif width and fmt: - width, _ = _parse_fmt(fmt) - if width: - return width - - if not defaultwidth: + elif fmt: + parsed = _parse_fmt(fmt) + if parsed: + width, _ = parsed + if width: + return width + + if not default: return WIDTH - elif not hasattr(defaultwidth, 'get'): - return defaultwidth or WIDTH - - defaultwidths = defaultwidth - defaultwidth = defaultwidths.get(None) or WIDTH - return defaultwidths.get(label) or defaultwidth + elif hasattr(default, 'get'): + defaults = default + default = defaults.get(None) or WIDTH + return defaults.get(label) or default + else: + return default or WIDTH def _build_table(columns, *, sep=' ', defaultwidth=None): @@ -373,16 +417,13 @@ def _build_table(columns, *, sep=' ', defaultwidth=None): div = [] rowfmt = [] for spec in columns: - label, field, _, colfmt = spec - width = _resolve_width(spec, defaultwidth) - if colfmt: - colfmt = f':{colfmt}' - else: - colfmt = f':{width}' + width = spec.resolve_width(defaultwidth) + colfmt = spec.fmt + colfmt = f':{spec.fmt}' if spec.fmt else f':{width}' - header.append(f' {{:^{width}}} '.format(label)) + header.append(f' {{:^{width}}} '.format(spec.label)) div.append('-' * (width + 2)) - rowfmt.append(f' {{{field}{colfmt}}} ') + rowfmt.append(f' {{{spec.field}{colfmt}}} ') return ( sep.join(header), sep.join(div), diff --git a/Tools/c-analyzer/c_parser/__init__.py b/Tools/c-analyzer/c_parser/__init__.py index fc10aff94505da..c7316fcfb74ffd 100644 --- a/Tools/c-analyzer/c_parser/__init__.py +++ b/Tools/c-analyzer/c_parser/__init__.py @@ -22,8 +22,12 @@ def parse_files(filenames, *, if get_file_preprocessor is None: get_file_preprocessor = _get_preprocessor() for filename in filenames: - yield from _parse_file( - filename, match_kind, get_file_preprocessor, file_maxsizes) + try: + yield from _parse_file( + filename, match_kind, get_file_preprocessor, file_maxsizes) + except Exception: + print(f'# requested file: <{filename}>') + raise # re-raise def _parse_file(filename, match_kind, get_file_preprocessor, maxsizes): diff --git a/Tools/c-analyzer/c_parser/info.py b/Tools/c-analyzer/c_parser/info.py index a1d349dc0b0ddb..3fa9fefbd5ec0b 100644 --- a/Tools/c-analyzer/c_parser/info.py +++ b/Tools/c-analyzer/c_parser/info.py @@ -385,6 +385,9 @@ def get_parsed_vartype(decl): elif isinstance(decl, Variable): storage = decl.storage typequal, typespec, abstract = decl.vartype + elif isinstance(decl, Signature): + storage = None + typequal, typespec, abstract = decl.returntype elif isinstance(decl, Function): storage = decl.storage typequal, typespec, abstract = decl.signature.returntype @@ -789,6 +792,7 @@ def _from_row(cls, row): if kind is not cls.kind: raise TypeError(f'expected kind {cls.kind.value!r}, got {row!r}') fileinfo = FileInfo.from_raw(filename) + extra = None if isinstance(data, str): data, extra = cls._parse_data(data, fmt='row') if extra: @@ -1012,6 +1016,18 @@ def __str__(self): def returns(self): return self.returntype + @property + def typequal(self): + return self.returntype.typequal + + @property + def typespec(self): + return self.returntype.typespec + + @property + def abstract(self): + return self.returntype.abstract + class Function(Declaration): kind = KIND.FUNCTION @@ -1106,9 +1122,16 @@ class TypeDef(TypeDeclaration): def _resolve_data(cls, data): if not data: raise NotImplementedError(data) - vartype = dict(data) - del vartype['storage'] - return VarType(**vartype), None + kwargs = dict(data) + del kwargs['storage'] + if 'returntype' in kwargs: + vartype = kwargs['returntype'] + del vartype['storage'] + kwargs['returntype'] = VarType(**vartype) + datacls = Signature + else: + datacls = VarType + return datacls(**kwargs), None @classmethod def _raw_data(self, data): diff --git a/Tools/c-analyzer/c_parser/parser/__init__.py b/Tools/c-analyzer/c_parser/parser/__init__.py index b5eae2ed92d0da..4227e938d7f8da 100644 --- a/Tools/c-analyzer/c_parser/parser/__init__.py +++ b/Tools/c-analyzer/c_parser/parser/__init__.py @@ -12,7 +12,7 @@ * ... -(see: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf) +(see: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf) We have taken advantage of the elements of the C grammar that are used only in a few limited contexts, mostly as delimiters. They allow us to @@ -42,7 +42,7 @@ + (stmt) case: between expression and stmt + (stmt) default: between "default" and stmt * "=" - + (decl) delaration: between decl and initializer + + (decl) declaration: between decl and initializer + (decl) enumerator: between identifier and "initializer" + (expr) assignment: between "var" and expr @@ -92,7 +92,7 @@ * no "inline" type decls in function return types * no superfluous parentheses in declarators * var decls in for loops are always "simple" (e.g. no inline types) -* only inline struct/union/enum decls may be anonymouns (without a name) +* only inline struct/union/enum decls may be anonymous (without a name) * no function pointers in function pointer parameters * for loop "headers" do not have curly braces (e.g. compound init) * syntactically, variable decls do not overlap with stmts/exprs, except diff --git a/Tools/c-analyzer/c_parser/parser/_common.py b/Tools/c-analyzer/c_parser/parser/_common.py index 40c36039f3f47d..d468d5442a939f 100644 --- a/Tools/c-analyzer/c_parser/parser/_common.py +++ b/Tools/c-analyzer/c_parser/parser/_common.py @@ -9,7 +9,11 @@ def log_match(group, m): from . import _logger - _logger.debug(f'matched <{group}> ({m.group(0)})') + text = m.group(0) + if text.startswith(('(', ')')) or text.endswith(('(', ')')): + _logger.debug(f'matched <{group}> ({text!r})') + else: + _logger.debug(f'matched <{group}> ({text})') ############################# diff --git a/Tools/c-analyzer/c_parser/preprocessor/__init__.py b/Tools/c-analyzer/c_parser/preprocessor/__init__.py index e38176fee31fac..cdc1a4e1269059 100644 --- a/Tools/c-analyzer/c_parser/preprocessor/__init__.py +++ b/Tools/c-analyzer/c_parser/preprocessor/__init__.py @@ -1,7 +1,9 @@ import contextlib -import distutils.ccompiler import logging +import os import os.path +import re +import sys from c_common.fsutil import match_glob as _match_glob from c_common.tables import parse_table as _parse_table @@ -33,9 +35,11 @@ def preprocess(source, *, incldirs=None, + includes=None, macros=None, samefiles=None, filename=None, + cwd=None, tool=True, ): """... @@ -43,17 +47,27 @@ def preprocess(source, *, CWD should be the project root and "source" should be relative. """ if tool: - logger.debug(f'CWD: {os.getcwd()!r}') - logger.debug(f'incldirs: {incldirs!r}') - logger.debug(f'macros: {macros!r}') + if not cwd: + cwd = os.getcwd() + logger.debug(f'CWD: {cwd!r}') + logger.debug(f'incldirs: {incldirs!r}') + logger.debug(f'includes: {includes!r}') + logger.debug(f'macros: {macros!r}') logger.debug(f'samefiles: {samefiles!r}') _preprocess = _get_preprocessor(tool) with _good_file(source, filename) as source: - return _preprocess(source, incldirs, macros, samefiles) or () + return _preprocess( + source, + incldirs, + includes, + macros, + samefiles, + cwd, + ) or () else: source, filename = _resolve_source(source, filename) # We ignore "includes", "macros", etc. - return _pure.preprocess(source, filename) + return _pure.preprocess(source, filename, cwd) # if _run() returns just the lines: # text = _run(source) @@ -70,6 +84,7 @@ def preprocess(source, *, def get_preprocessor(*, file_macros=None, + file_includes=None, file_incldirs=None, file_same=None, ignore_exc=False, @@ -78,10 +93,12 @@ def get_preprocessor(*, _preprocess = preprocess if file_macros: file_macros = tuple(_parse_macros(file_macros)) + if file_includes: + file_includes = tuple(_parse_includes(file_includes)) if file_incldirs: file_incldirs = tuple(_parse_incldirs(file_incldirs)) if file_same: - file_same = tuple(file_same) + file_same = dict(file_same or ()) if not callable(ignore_exc): ignore_exc = (lambda exc, _ig=ignore_exc: _ig) @@ -89,16 +106,26 @@ def get_file_preprocessor(filename): filename = filename.strip() if file_macros: macros = list(_resolve_file_values(filename, file_macros)) + if file_includes: + # There's a small chance we could need to filter out any + # includes that import "filename". It isn't clear that it's + # a problem any longer. If we do end up filtering then + # it may make sense to use c_common.fsutil.match_path_tail(). + includes = [i for i, in _resolve_file_values(filename, file_includes)] if file_incldirs: incldirs = [v for v, in _resolve_file_values(filename, file_incldirs)] + if file_same: + samefiles = _resolve_samefiles(filename, file_same) def preprocess(**kwargs): if file_macros and 'macros' not in kwargs: kwargs['macros'] = macros + if file_includes and 'includes' not in kwargs: + kwargs['includes'] = includes if file_incldirs and 'incldirs' not in kwargs: - kwargs['incldirs'] = [v for v, in _resolve_file_values(filename, file_incldirs)] - if file_same and 'file_same' not in kwargs: - kwargs['samefiles'] = file_same + kwargs['incldirs'] = incldirs + if file_same and 'samefiles' not in kwargs: + kwargs['samefiles'] = samefiles kwargs.setdefault('filename', filename) with handling_errors(ignore_exc, log_err=log_err): return _preprocess(filename, **kwargs) @@ -118,6 +145,11 @@ def _parse_macros(macros): yield row +def _parse_includes(includes): + for row, srcfile in _parse_table(includes, '\t', 'glob\tinclude', default=None): + yield row + + def _parse_incldirs(incldirs): for row, srcfile in _parse_table(incldirs, '\t', 'glob\tdirname', default=None): glob, dirname = row @@ -128,6 +160,43 @@ def _parse_incldirs(incldirs): yield row +def _resolve_samefiles(filename, file_same): + assert '*' not in filename, (filename,) + assert os.path.normpath(filename) == filename, (filename,) + _, suffix = os.path.splitext(filename) + samefiles = [] + for patterns, in _resolve_file_values(filename, file_same.items()): + for pattern in patterns: + same = _resolve_samefile(filename, pattern, suffix) + if not same: + continue + samefiles.append(same) + return samefiles + + +def _resolve_samefile(filename, pattern, suffix): + if pattern == filename: + return None + if pattern.endswith(os.path.sep): + pattern += f'*{suffix}' + assert os.path.normpath(pattern) == pattern, (pattern,) + if '*' in os.path.dirname(pattern): + raise NotImplementedError((filename, pattern)) + if '*' not in os.path.basename(pattern): + return pattern + + common = os.path.commonpath([filename, pattern]) + relpattern = pattern[len(common) + len(os.path.sep):] + relpatterndir = os.path.dirname(relpattern) + relfile = filename[len(common) + len(os.path.sep):] + if os.path.basename(pattern) == '*': + return os.path.join(common, relpatterndir, relfile) + elif os.path.basename(relpattern) == '*' + suffix: + return os.path.join(common, relpatterndir, relfile) + else: + raise NotImplementedError((filename, pattern)) + + @contextlib.contextmanager def handling_errors(ignore_exc=None, *, log_err=None): try: @@ -168,9 +237,17 @@ def handling_errors(ignore_exc=None, *, log_err=None): } +def _get_default_compiler(): + if re.match('cygwin.*', sys.platform) is not None: + return 'unix' + if os.name == 'nt': + return 'msvc' + return 'unix' + + def _get_preprocessor(tool): if tool is True: - tool = distutils.ccompiler.get_default_compiler() + tool = _get_default_compiler() preprocess = _COMPILERS.get(tool) if preprocess is None: raise ValueError(f'unsupported tool {tool}') diff --git a/Tools/c-analyzer/c_parser/preprocessor/common.py b/Tools/c-analyzer/c_parser/preprocessor/common.py index 63681025c63d47..4291a066337545 100644 --- a/Tools/c-analyzer/c_parser/preprocessor/common.py +++ b/Tools/c-analyzer/c_parser/preprocessor/common.py @@ -44,7 +44,7 @@ def run_cmd(argv, *, return proc.stdout -def preprocess(tool, filename, **kwargs): +def preprocess(tool, filename, cwd=None, **kwargs): argv = _build_argv(tool, filename, **kwargs) logger.debug(' '.join(shlex.quote(v) for v in argv)) @@ -59,19 +59,24 @@ def preprocess(tool, filename, **kwargs): # distutil compiler object's preprocess() method, since that # one writes to stdout/stderr and it's simpler to do it directly # through subprocess. - return run_cmd(argv) + return run_cmd(argv, cwd=cwd) def _build_argv( tool, filename, incldirs=None, + includes=None, macros=None, preargs=None, postargs=None, executable=None, compiler=None, ): + if includes: + includes = tuple(f'-include{i}' for i in includes) + postargs = (includes + postargs) if postargs else includes + compiler = distutils.ccompiler.new_compiler( compiler=compiler or tool, ) diff --git a/Tools/c-analyzer/c_parser/preprocessor/gcc.py b/Tools/c-analyzer/c_parser/preprocessor/gcc.py index bb404a487b735d..770802253792d8 100644 --- a/Tools/c-analyzer/c_parser/preprocessor/gcc.py +++ b/Tools/c-analyzer/c_parser/preprocessor/gcc.py @@ -7,7 +7,12 @@ TOOL = 'gcc' # https://gcc.gnu.org/onlinedocs/cpp/Preprocessor-Output.html -LINE_MARKER_RE = re.compile(r'^# (\d+) "([^"]+)"(?: [1234])*$') +# flags: +# 1 start of a new file +# 2 returning to a file (after including another) +# 3 following text comes from a system header file +# 4 following text treated wrapped in implicit extern "C" block +LINE_MARKER_RE = re.compile(r'^# (\d+) "([^"]+)"((?: [1234])*)$') PREPROC_DIRECTIVE_RE = re.compile(r'^\s*#\s*(\w+)\b.*') COMPILER_DIRECTIVE_RE = re.compile(r''' ^ @@ -40,32 +45,112 @@ ) -def preprocess(filename, incldirs=None, macros=None, samefiles=None): +def preprocess(filename, + incldirs=None, + includes=None, + macros=None, + samefiles=None, + cwd=None, + ): + if not cwd or not os.path.isabs(cwd): + cwd = os.path.abspath(cwd or '.') + filename = _normpath(filename, cwd) text = _common.preprocess( TOOL, filename, incldirs=incldirs, + includes=includes, macros=macros, #preargs=PRE_ARGS, postargs=POST_ARGS, executable=['gcc'], compiler='unix', + cwd=cwd, ) - return _iter_lines(text, filename, samefiles) + return _iter_lines(text, filename, samefiles, cwd) -def _iter_lines(text, filename, samefiles, *, raw=False): +def _iter_lines(text, reqfile, samefiles, cwd, raw=False): lines = iter(text.splitlines()) - # Build the lines and filter out directives. + # The first line is special. + # The next two lines are consistent. + for expected in [ + f'# 1 "{reqfile}"', + '# 1 "<built-in>"', + '# 1 "<command-line>"', + ]: + line = next(lines) + if line != expected: + raise NotImplementedError((line, expected)) + + # Do all the CLI-provided includes. + filter_reqfile = (lambda f: _filter_reqfile(f, reqfile, samefiles)) + make_info = (lambda lno: _common.FileInfo(reqfile, lno)) + last = None + for line in lines: + assert last != reqfile, (last,) + lno, included, flags = _parse_marker_line(line, reqfile) + if not included: + raise NotImplementedError((line,)) + if included == reqfile: + # This will be the last one. + assert not flags, (line, flags) + else: + assert 1 in flags, (line, flags) + yield from _iter_top_include_lines( + lines, + _normpath(included, cwd), + cwd, + filter_reqfile, + make_info, + raw, + ) + last = included + # The last one is always the requested file. + assert included == reqfile, (line,) + + +def _iter_top_include_lines(lines, topfile, cwd, + filter_reqfile, make_info, + raw): partial = 0 # depth - origfile = None + files = [topfile] + # We start at 1 in case there are source lines (including blank onces) + # before the first marker line. Also, we already verified in + # _parse_marker_line() that the preprocessor reported lno as 1. + lno = 1 for line in lines: - m = LINE_MARKER_RE.match(line) - if m: - lno, origfile = m.groups() - lno = int(lno) - elif _filter_orig_file(origfile, filename, samefiles): + if line == '# 1 "<command-line>" 2': + # We're done with this top-level include. + return + + _lno, included, flags = _parse_marker_line(line) + if included: + lno = _lno + included = _normpath(included, cwd) + # We hit a marker line. + if 1 in flags: + # We're entering a file. + # XXX Cycles are unexpected? + #assert included not in files, (line, files) + files.append(included) + elif 2 in flags: + # We're returning to a file. + assert files and included in files, (line, files) + assert included != files[-1], (line, files) + while files[-1] != included: + files.pop() + # XXX How can a file return to line 1? + #assert lno > 1, (line, lno) + else: + # It's the next line from the file. + assert included == files[-1], (line, files) + assert lno > 1, (line, lno) + elif not files: + raise NotImplementedError((line,)) + elif filter_reqfile(files[-1]): + assert lno is not None, (line, files[-1]) if (m := PREPROC_DIRECTIVE_RE.match(line)): name, = m.groups() if name != 'pragma': @@ -74,7 +159,7 @@ def _iter_lines(text, filename, samefiles, *, raw=False): if not raw: line, partial = _strip_directives(line, partial=partial) yield _common.SourceLine( - _common.FileInfo(filename, lno), + make_info(lno), 'source', line or '', None, @@ -82,6 +167,34 @@ def _iter_lines(text, filename, samefiles, *, raw=False): lno += 1 +def _parse_marker_line(line, reqfile=None): + m = LINE_MARKER_RE.match(line) + if not m: + return None, None, None + lno, origfile, flags = m.groups() + lno = int(lno) + assert lno > 0, (line, lno) + assert origfile not in ('<built-in>', '<command-line>'), (line,) + flags = set(int(f) for f in flags.split()) if flags else () + + if 1 in flags: + # We're entering a file. + assert lno == 1, (line, lno) + assert 2 not in flags, (line,) + elif 2 in flags: + # We're returning to a file. + #assert lno > 1, (line, lno) + pass + elif reqfile and origfile == reqfile: + # We're starting the requested file. + assert lno == 1, (line, lno) + assert not flags, (line, flags) + else: + # It's the next line from the file. + assert lno > 1, (line, lno) + return lno, origfile, flags + + def _strip_directives(line, partial=0): # We assume there are no string literals with parens in directive bodies. while partial > 0: @@ -106,18 +219,16 @@ def _strip_directives(line, partial=0): return line, partial -def _filter_orig_file(origfile, current, samefiles): - if origfile == current: +def _filter_reqfile(current, reqfile, samefiles): + if current == reqfile: + return True + if current == '<stdin>': return True - if origfile == '<stdin>': + if current in samefiles: return True - if os.path.isabs(origfile): - return False + return False - for filename in samefiles or (): - if filename.endswith(os.path.sep): - filename += os.path.basename(current) - if origfile == filename: - return True - return False +def _normpath(filename, cwd): + assert cwd + return os.path.normpath(os.path.join(cwd, filename)) diff --git a/Tools/c-analyzer/c_parser/preprocessor/pure.py b/Tools/c-analyzer/c_parser/preprocessor/pure.py index e971389b1888dd..f94447ad819cc3 100644 --- a/Tools/c-analyzer/c_parser/preprocessor/pure.py +++ b/Tools/c-analyzer/c_parser/preprocessor/pure.py @@ -4,7 +4,7 @@ from . import common as _common -def preprocess(lines, filename=None): +def preprocess(lines, filename=None, cwd=None): if isinstance(lines, str): with _open_source(lines, filename) as (lines, filename): yield from preprocess(lines, filename) diff --git a/Tools/c-analyzer/check-c-globals.py b/Tools/c-analyzer/check-c-globals.py index b1364a612bb7d3..73742f70a388aa 100644 --- a/Tools/c-analyzer/check-c-globals.py +++ b/Tools/c-analyzer/check-c-globals.py @@ -1,7 +1,9 @@ +import sys + from cpython.__main__ import main, configure_logger -def parse_args(): +def parse_args(argv=sys.argv[1:]): import argparse from c_common.scriptutil import ( add_verbosity_cli, @@ -13,7 +15,8 @@ def parse_args(): processors = [ add_verbosity_cli(parser), add_traceback_cli(parser), - _cli_check(parser, checks='<globals>'), + #_cli_check(parser, checks='<globals>'), + _cli_check(parser), ] args = parser.parse_args() diff --git a/Tools/c-analyzer/cpython/__main__.py b/Tools/c-analyzer/cpython/__main__.py index be331d50427d53..2b9e4233b95ac4 100644 --- a/Tools/c-analyzer/cpython/__main__.py +++ b/Tools/c-analyzer/cpython/__main__.py @@ -20,7 +20,7 @@ import c_analyzer.__main__ as c_analyzer import c_analyzer as _c_analyzer from c_analyzer.info import UNKNOWN -from . import _analyzer, _capi, _files, _parser, REPO_ROOT +from . import _analyzer, _builtin_types, _capi, _files, _parser, REPO_ROOT logger = logging.getLogger(__name__) @@ -325,6 +325,47 @@ def cmd_capi(filenames=None, *, print(line) +def _cli_builtin_types(parser): + parser.add_argument('--format', dest='fmt', default='table') +# parser.add_argument('--summary', dest='format', +# action='store_const', const='summary') + def process_format(args, *, argv=None): + orig = args.fmt + args.fmt = _builtin_types.resolve_format(args.fmt) + if isinstance(args.fmt, str): + if args.fmt not in _builtin_types._FORMATS: + parser.error(f'unsupported format {orig!r}') + + parser.add_argument('--include-modules', dest='showmodules', + action='store_true') + def process_modules(args, *, argv=None): + pass + + return [ + process_format, + process_modules, + ] + + +def cmd_builtin_types(fmt, *, + showmodules=False, + verbosity=VERBOSITY, + ): + render = _builtin_types.get_renderer(fmt) + types = _builtin_types.iter_builtin_types() + match = _builtin_types.resolve_matcher(showmodules) + if match: + types = (t for t in types if match(t, log=lambda msg: logger.log(1, msg))) + + lines = render( + types, +# verbose=verbosity > VERBOSITY, + ) + print() + for line in lines: + print(line) + + # We do not define any other cmd_*() handlers here, # favoring those defined elsewhere. @@ -354,6 +395,11 @@ def cmd_capi(filenames=None, *, [_cli_capi], cmd_capi, ), + 'builtin-types': ( + 'show the builtin types', + [_cli_builtin_types], + cmd_builtin_types, + ), } diff --git a/Tools/c-analyzer/cpython/_analyzer.py b/Tools/c-analyzer/cpython/_analyzer.py index 741fbaddf16d95..4a11fc99a4064d 100644 --- a/Tools/c-analyzer/cpython/_analyzer.py +++ b/Tools/c-analyzer/cpython/_analyzer.py @@ -60,6 +60,46 @@ # {ID => reason} } +# XXX We should be handling these through known.tsv. +_OTHER_SUPPORTED_TYPES = { + # Holds tuple of strings, which we statically initialize: + '_PyArg_Parser', + # Uses of these should be const, but we don't worry about it. + 'PyModuleDef', + 'PyModuleDef_Slot[]', + 'PyType_Spec', + 'PyType_Slot[]', + 'PyMethodDef', + 'PyMethodDef[]', + 'PyMemberDef[]', + 'PyGetSetDef[]', + 'PyNumberMethods', + 'PySequenceMethods', + 'PyMappingMethods', + 'PyAsyncMethods', + 'PyBufferProcs', + 'PyStructSequence_Field[]', + 'PyStructSequence_Desc', +} + +# XXX We should normalize all cases to a single name, +# e.g. "kwlist" (currently the most common). +_KWLIST_VARIANTS = [ + ('*', 'kwlist'), + ('*', 'keywords'), + ('*', 'kwargs'), + ('Modules/_csv.c', 'dialect_kws'), + ('Modules/_datetimemodule.c', 'date_kws'), + ('Modules/_datetimemodule.c', 'datetime_kws'), + ('Modules/_datetimemodule.c', 'time_kws'), + ('Modules/_datetimemodule.c', 'timezone_kws'), + ('Modules/_lzmamodule.c', 'optnames'), + ('Modules/_lzmamodule.c', 'arg_names'), + ('Modules/cjkcodecs/multibytecodec.c', 'incnewkwarglist'), + ('Modules/cjkcodecs/multibytecodec.c', 'streamkwarglist'), + ('Modules/socketmodule.c', 'kwnames'), +] + KINDS = frozenset((*KIND.TYPES, KIND.VARIABLE)) @@ -202,6 +242,8 @@ def _check_typedep(decl, typedecl, types, knowntypes): # XXX Fail? return 'typespec (missing)' elif typedecl is _info.UNKNOWN: + if _has_other_supported_type(decl): + return None # XXX Is this right? return 'typespec (unknown)' elif not isinstance(typedecl, TypeDeclaration): @@ -216,12 +258,42 @@ def _check_typedep(decl, typedecl, types, knowntypes): elif decl.kind is KIND.VARIABLE: if not is_process_global(decl): return None + if _is_kwlist(decl): + return None + if _has_other_supported_type(decl): + return None checked = _check_vartype(decl, typedecl, types, knowntypes) return 'mutable' if checked is FIXED_TYPE else checked else: raise NotImplementedError(decl) +def _is_kwlist(decl): + # keywords for PyArg_ParseTupleAndKeywords() + # "static char *name[]" -> "static const char * const name[]" + # XXX These should be made const. + for relpath, name in _KWLIST_VARIANTS: + if decl.name == name: + if relpath == '*': + break + assert os.path.isabs(decl.file.filename) + relpath = os.path.normpath(relpath) + if decl.file.filename.endswith(os.path.sep + relpath): + break + else: + return False + vartype = ''.join(str(decl.vartype).split()) + return vartype == 'char*[]' + + +def _has_other_supported_type(decl): + vartype = str(decl.vartype).split() + if vartype[0] == 'struct': + vartype = vartype[1:] + vartype = ''.join(vartype) + return vartype in _OTHER_SUPPORTED_TYPES + + def _check_vartype(decl, typedecl, types, knowntypes): """Return failure reason.""" checked = _check_typespec(decl, typedecl, types, knowntypes) diff --git a/Tools/c-analyzer/cpython/_builtin_types.py b/Tools/c-analyzer/cpython/_builtin_types.py new file mode 100644 index 00000000000000..faa0b7a82a8bb4 --- /dev/null +++ b/Tools/c-analyzer/cpython/_builtin_types.py @@ -0,0 +1,365 @@ +from collections import namedtuple +import os.path +import re +import textwrap + +from c_common import tables +from . import REPO_ROOT +from ._files import iter_header_files, iter_filenames + + +CAPI_PREFIX = os.path.join('Include', '') +INTERNAL_PREFIX = os.path.join('Include', 'internal', '') + +REGEX = re.compile(textwrap.dedent(rf''' + (?: + ^ + (?: + (?: + (?: + (?: + (?: + ( static ) # <static> + \s+ + | + ( extern ) # <extern> + \s+ + )? + PyTypeObject \s+ + ) + | + (?: + ( PyAPI_DATA ) # <capi> + \s* [(] \s* PyTypeObject \s* [)] \s* + ) + ) + (\w+) # <name> + \s* + (?: + (?: + ( = \s* {{ ) # <def> + $ + ) + | + ( ; ) # <decl> + ) + ) + | + (?: + # These are specific to Objects/exceptions.c: + (?: + SimpleExtendsException + | + MiddlingExtendsException + | + ComplexExtendsException + ) + \( \w+ \s* , \s* + ( \w+ ) # <excname> + \s* , + ) + ) + ) +'''), re.VERBOSE) + + +def _parse_line(line): + m = re.match(REGEX, line) + if not m: + return None + (static, extern, capi, + name, + def_, decl, + excname, + ) = m.groups() + if def_: + isdecl = False + if extern or capi: + raise NotImplementedError(line) + kind = 'static' if static else None + elif excname: + name = f'_PyExc_{excname}' + isdecl = False + kind = 'static' + else: + isdecl = True + if static: + kind = 'static' + elif extern: + kind = 'extern' + elif capi: + kind = 'capi' + else: + kind = None + return name, isdecl, kind + + +class BuiltinTypeDecl(namedtuple('BuiltinTypeDecl', 'file lno name kind')): + + KINDS = { + 'static', + 'extern', + 'capi', + 'forward', + } + + @classmethod + def from_line(cls, line, filename, lno): + # This is similar to ._capi.CAPIItem.from_line(). + parsed = _parse_line(line) + if not parsed: + return None + name, isdecl, kind = parsed + if not isdecl: + return None + return cls.from_parsed(name, kind, filename, lno) + + @classmethod + def from_parsed(cls, name, kind, filename, lno): + if not kind: + kind = 'forward' + return cls.from_values(filename, lno, name, kind) + + @classmethod + def from_values(cls, filename, lno, name, kind): + if kind not in cls.KINDS: + raise ValueError(f'unsupported kind {kind!r}') + self = cls(filename, lno, name, kind) + if self.kind not in ('extern', 'capi') and self.api: + raise NotImplementedError(self) + elif self.kind == 'capi' and not self.api: + raise NotImplementedError(self) + return self + + @property + def relfile(self): + return self.file[len(REPO_ROOT) + 1:] + + @property + def api(self): + return self.relfile.startswith(CAPI_PREFIX) + + @property + def internal(self): + return self.relfile.startswith(INTERNAL_PREFIX) + + @property + def private(self): + if not self.name.startswith('_'): + return False + return self.api and not self.internal + + @property + def public(self): + if self.kind != 'capi': + return False + return not self.internal and not self.private + + +class BuiltinTypeInfo(namedtuple('BuiltinTypeInfo', 'file lno name static decl')): + + @classmethod + def from_line(cls, line, filename, lno, *, decls=None): + parsed = _parse_line(line) + if not parsed: + return None + name, isdecl, kind = parsed + if isdecl: + return None + return cls.from_parsed(name, kind, filename, lno, decls=decls) + + @classmethod + def from_parsed(cls, name, kind, filename, lno, *, decls=None): + if not kind: + static = False + elif kind == 'static': + static = True + else: + raise NotImplementedError((filename, line, kind)) + decl = decls.get(name) if decls else None + return cls(filename, lno, name, static, decl) + + @property + def relfile(self): + return self.file[len(REPO_ROOT) + 1:] + + @property + def exported(self): + return not self.static + + @property + def api(self): + if not self.decl: + return False + return self.decl.api + + @property + def internal(self): + if not self.decl: + return False + return self.decl.internal + + @property + def private(self): + if not self.decl: + return False + return self.decl.private + + @property + def public(self): + if not self.decl: + return False + return self.decl.public + + @property + def inmodule(self): + return self.relfile.startswith('Modules' + os.path.sep) + + def render_rowvalues(self, kinds): + row = { + 'name': self.name, + **{k: '' for k in kinds}, + 'filename': f'{self.relfile}:{self.lno}', + } + if self.static: + kind = 'static' + else: + if self.internal: + kind = 'internal' + elif self.private: + kind = 'private' + elif self.public: + kind = 'public' + else: + kind = 'global' + row['kind'] = kind + row[kind] = kind + return row + + +def _ensure_decl(decl, decls): + prev = decls.get(decl.name) + if prev: + if decl.kind == 'forward': + return None + if prev.kind != 'forward': + if decl.kind == prev.kind and decl.file == prev.file: + assert decl.lno != prev.lno, (decl, prev) + return None + raise NotImplementedError(f'duplicate {decl} (was {prev}') + decls[decl.name] = decl + + +def iter_builtin_types(filenames=None): + decls = {} + seen = set() + for filename in iter_header_files(): + seen.add(filename) + with open(filename) as infile: + for lno, line in enumerate(infile, 1): + decl = BuiltinTypeDecl.from_line(line, filename, lno) + if not decl: + continue + _ensure_decl(decl, decls) + srcfiles = [] + for filename in iter_filenames(): + if filename.endswith('.c'): + srcfiles.append(filename) + continue + if filename in seen: + continue + with open(filename) as infile: + for lno, line in enumerate(infile, 1): + decl = BuiltinTypeDecl.from_line(line, filename, lno) + if not decl: + continue + _ensure_decl(decl, decls) + + for filename in srcfiles: + with open(filename) as infile: + localdecls = {} + for lno, line in enumerate(infile, 1): + parsed = _parse_line(line) + if not parsed: + continue + name, isdecl, kind = parsed + if isdecl: + decl = BuiltinTypeDecl.from_parsed(name, kind, filename, lno) + if not decl: + raise NotImplementedError((filename, line)) + _ensure_decl(decl, localdecls) + else: + builtin = BuiltinTypeInfo.from_parsed( + name, kind, filename, lno, + decls=decls if name in decls else localdecls) + if not builtin: + raise NotImplementedError((filename, line)) + yield builtin + + +def resolve_matcher(showmodules=False): + def match(info, *, log=None): + if not info.inmodule: + return True + if log is not None: + log(f'ignored {info.name!r}') + return False + return match + + +################################## +# CLI rendering + +def resolve_format(fmt): + if not fmt: + return 'table' + elif isinstance(fmt, str) and fmt in _FORMATS: + return fmt + else: + raise NotImplementedError(fmt) + + +def get_renderer(fmt): + fmt = resolve_format(fmt) + if isinstance(fmt, str): + try: + return _FORMATS[fmt] + except KeyError: + raise ValueError(f'unsupported format {fmt!r}') + else: + raise NotImplementedError(fmt) + + +def render_table(types): + types = sorted(types, key=(lambda t: t.name)) + colspecs = tables.resolve_columns( + 'name:<33 static:^ global:^ internal:^ private:^ public:^ filename:<30') + header, div, rowfmt = tables.build_table(colspecs) + leader = ' ' * sum(c.width+2 for c in colspecs[:3]) + ' ' + yield leader + f'{"API":^29}' + yield leader + '-' * 29 + yield header + yield div + kinds = [c[0] for c in colspecs[1:-1]] + counts = {k: 0 for k in kinds} + base = {k: '' for k in kinds} + for t in types: + row = t.render_rowvalues(kinds) + kind = row['kind'] + yield rowfmt.format(**row) + counts[kind] += 1 + yield '' + yield f'total: {sum(counts.values()):>3}' + for kind in kinds: + yield f' {kind:>10}: {counts[kind]:>3}' + + +def render_repr(types): + for t in types: + yield repr(t) + + +_FORMATS = { + 'table': render_table, + 'repr': render_repr, +} diff --git a/Tools/c-analyzer/cpython/_parser.py b/Tools/c-analyzer/cpython/_parser.py index eaad7278ed79e3..78241f0ea08ac8 100644 --- a/Tools/c-analyzer/cpython/_parser.py +++ b/Tools/c-analyzer/cpython/_parser.py @@ -50,9 +50,6 @@ def clean_lines(text): EXCLUDED = clean_lines(''' # @begin=conf@ -# Rather than fixing for this one, we manually make sure it's okay. -Modules/_sha3/kcp/KeccakP-1600-opt64.c - # OSX #Modules/_ctypes/darwin/*.c #Modules/_ctypes/libffi_osx/*.c @@ -69,11 +66,11 @@ def clean_lines(text): Python/dynload_aix.c # sys/ldr.h Python/dynload_dl.c # dl.h Python/dynload_hpux.c # dl.h -Python/thread_pthread.h Python/emscripten_signal.c +Python/thread_pthread.h +Python/thread_pthread_stubs.h # only huge constants (safe but parsing is slow) -Modules/_blake2/impl/blake2-kat.h Modules/_ssl_data.h Modules/_ssl_data_300.h Modules/_ssl_data_111.h @@ -85,8 +82,6 @@ def clean_lines(text): # generated Python/deepfreeze/*.c Python/frozen_modules/*.h -Python/opcode_targets.h -Python/stdlib_module_names.h # @end=conf@ ''') @@ -94,23 +89,10 @@ def clean_lines(text): # XXX Fix the parser. EXCLUDED += clean_lines(''' # The tool should be able to parse these... - -Modules/hashlib.h -Objects/stringlib/codecs.h -Objects/stringlib/count.h -Objects/stringlib/ctype.h -Objects/stringlib/fastsearch.h -Objects/stringlib/find.h -Objects/stringlib/find_max_char.h -Objects/stringlib/partition.h -Objects/stringlib/replace.h -Objects/stringlib/split.h - -Modules/_dbmmodule.c -Modules/cjkcodecs/_codecs_*.c -Modules/expat/xmlrole.c +# The problem with xmlparse.c is that something +# has gone wrong where # we handle "maybe inline actual" +# in Tools/c-analyzer/c_parser/parser/_global.py. Modules/expat/xmlparse.c -Python/initconfig.c ''') INCL_DIRS = clean_lines(''' @@ -124,6 +106,44 @@ def clean_lines(text): Modules/_tkinter.c /usr/include/tcl8.6 Modules/tkappinit.c /usr/include/tcl Modules/_decimal/**/*.c Modules/_decimal/libmpdec +Objects/stringlib/*.h Objects + +# @end=tsv@ +''')[1:] + +INCLUDES = clean_lines(''' +# @begin=tsv@ + +glob include + +**/*.h Python.h +Include/**/*.h object.h + +# for Py_HAVE_CONDVAR +Include/internal/pycore_gil.h pycore_condvar.h +Python/thread_pthread.h pycore_condvar.h + +# other + +Objects/stringlib/join.h stringlib/stringdefs.h +Objects/stringlib/ctype.h stringlib/stringdefs.h +Objects/stringlib/transmogrify.h stringlib/stringdefs.h +#Objects/stringlib/fastsearch.h stringlib/stringdefs.h +#Objects/stringlib/count.h stringlib/stringdefs.h +#Objects/stringlib/find.h stringlib/stringdefs.h +#Objects/stringlib/partition.h stringlib/stringdefs.h +#Objects/stringlib/split.h stringlib/stringdefs.h +Objects/stringlib/fastsearch.h stringlib/ucs1lib.h +Objects/stringlib/count.h stringlib/ucs1lib.h +Objects/stringlib/find.h stringlib/ucs1lib.h +Objects/stringlib/partition.h stringlib/ucs1lib.h +Objects/stringlib/split.h stringlib/ucs1lib.h +Objects/stringlib/find_max_char.h Objects/stringlib/ucs1lib.h +Objects/stringlib/count.h Objects/stringlib/fastsearch.h +Objects/stringlib/find.h Objects/stringlib/fastsearch.h +Objects/stringlib/partition.h Objects/stringlib/fastsearch.h +Objects/stringlib/replace.h Objects/stringlib/fastsearch.h +Objects/stringlib/split.h Objects/stringlib/fastsearch.h # @end=tsv@ ''')[1:] @@ -135,10 +155,14 @@ def clean_lines(text): Include/internal/*.h Py_BUILD_CORE 1 Python/**/*.c Py_BUILD_CORE 1 +Python/**/*.h Py_BUILD_CORE 1 Parser/**/*.c Py_BUILD_CORE 1 +Parser/**/*.h Py_BUILD_CORE 1 Objects/**/*.c Py_BUILD_CORE 1 +Objects/**/*.h Py_BUILD_CORE 1 Modules/_asynciomodule.c Py_BUILD_CORE 1 +Modules/_codecsmodule.c Py_BUILD_CORE 1 Modules/_collectionsmodule.c Py_BUILD_CORE 1 Modules/_ctypes/_ctypes.c Py_BUILD_CORE 1 Modules/_ctypes/cfield.c Py_BUILD_CORE 1 @@ -171,12 +195,6 @@ def clean_lines(text): Modules/symtablemodule.c Py_BUILD_CORE 1 Modules/timemodule.c Py_BUILD_CORE 1 Modules/unicodedata.c Py_BUILD_CORE 1 -Objects/stringlib/codecs.h Py_BUILD_CORE 1 -Objects/stringlib/unicode_format.h Py_BUILD_CORE 1 -Parser/string_parser.h Py_BUILD_CORE 1 -Parser/pegen.h Py_BUILD_CORE 1 -Python/ceval_gil.h Py_BUILD_CORE 1 -Python/condvar.h Py_BUILD_CORE 1 Modules/_json.c Py_BUILD_CORE_BUILTIN 1 Modules/_pickle.c Py_BUILD_CORE_BUILTIN 1 @@ -204,44 +222,22 @@ def clean_lines(text): Include/cpython/traceback.h Py_CPYTHON_TRACEBACK_H 1 Include/cpython/tupleobject.h Py_CPYTHON_TUPLEOBJECT_H 1 Include/cpython/unicodeobject.h Py_CPYTHON_UNICODEOBJECT_H 1 -Include/internal/pycore_code.h SIZEOF_VOID_P 8 - -# implied include of pyport.h -Include/**/*.h PyAPI_DATA(RTYPE) extern RTYPE -Include/**/*.h PyAPI_FUNC(RTYPE) RTYPE -Include/**/*.h Py_DEPRECATED(VER) /* */ -Include/**/*.h _Py_NO_RETURN /* */ -Include/**/*.h PYLONG_BITS_IN_DIGIT 30 -Modules/**/*.c PyMODINIT_FUNC PyObject* -Objects/unicodeobject.c PyMODINIT_FUNC PyObject* -Python/marshal.c PyMODINIT_FUNC PyObject* -Python/_warnings.c PyMODINIT_FUNC PyObject* -Python/Python-ast.c PyMODINIT_FUNC PyObject* -Python/import.c PyMODINIT_FUNC PyObject* -Modules/_testcapimodule.c PyAPI_FUNC(RTYPE) RTYPE -Python/getargs.c PyAPI_FUNC(RTYPE) RTYPE -Objects/stringlib/unicode_format.h Py_LOCAL_INLINE(type) static inline type -Include/pymath.h _Py__has_builtin(x) 0 - -# implied include of pymacro.h -*/clinic/*.c.h PyDoc_VAR(name) static const char name[] -*/clinic/*.c.h PyDoc_STR(str) str -*/clinic/*.c.h PyDoc_STRVAR(name,str) PyDoc_VAR(name) = PyDoc_STR(str) - -# implied include of exports.h -#Modules/_io/bytesio.c Py_EXPORTED_SYMBOL /* */ - -# implied include of object.h -Include/**/*.h PyObject_HEAD PyObject ob_base; -Include/**/*.h PyObject_VAR_HEAD PyVarObject ob_base; - -# implied include of pyconfig.h -Include/**/*.h SIZEOF_WCHAR_T 4 # implied include of <unistd.h> Include/**/*.h _POSIX_THREADS 1 Include/**/*.h HAVE_PTHREAD_H 1 +# from pyconfig.h +Include/cpython/pthread_stubs.h HAVE_PTHREAD_STUBS 1 +Python/thread_pthread_stubs.h HAVE_PTHREAD_STUBS 1 + +# from Objects/bytesobject.c +Objects/stringlib/partition.h STRINGLIB_GET_EMPTY() bytes_get_empty() +Objects/stringlib/join.h STRINGLIB_MUTABLE 0 +Objects/stringlib/partition.h STRINGLIB_MUTABLE 0 +Objects/stringlib/split.h STRINGLIB_MUTABLE 0 +Objects/stringlib/transmogrify.h STRINGLIB_MUTABLE 0 + # from Makefile Modules/getpath.c PYTHONPATH 1 Modules/getpath.c PREFIX ... @@ -249,13 +245,9 @@ def clean_lines(text): Modules/getpath.c VERSION ... Modules/getpath.c VPATH ... Modules/getpath.c PLATLIBDIR ... - -# from Modules/_sha3/sha3module.c -Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c PLATFORM_BYTE_ORDER 4321 # force big-endian -Modules/_sha3/kcp/*.c KeccakOpt 64 -Modules/_sha3/kcp/*.c KeccakP200_excluded 1 -Modules/_sha3/kcp/*.c KeccakP400_excluded 1 -Modules/_sha3/kcp/*.c KeccakP800_excluded 1 +#Modules/_dbmmodule.c USE_GDBM_COMPAT 1 +Modules/_dbmmodule.c USE_NDBM 1 +#Modules/_dbmmodule.c USE_BERKDB 1 # See: setup.py Modules/_decimal/**/*.c CONFIG_64 1 @@ -264,11 +256,17 @@ def clean_lines(text): Modules/expat/xmlparse.c XML_POOR_ENTROPY 1 Modules/_dbmmodule.c HAVE_GDBM_DASH_NDBM_H 1 +# from Modules/_sha3/sha3module.c +Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c PLATFORM_BYTE_ORDER 4321 # force big-endian +Modules/_sha3/kcp/*.c KeccakOpt 64 +Modules/_sha3/kcp/*.c KeccakP200_excluded 1 +Modules/_sha3/kcp/*.c KeccakP400_excluded 1 +Modules/_sha3/kcp/*.c KeccakP800_excluded 1 + # others Modules/_sre/sre_lib.h LOCAL(type) static inline type Modules/_sre/sre_lib.h SRE(F) sre_ucs2_##F Objects/stringlib/codecs.h STRINGLIB_IS_UNICODE 1 -Include/internal/pycore_bitutils.h _Py__has_builtin(B) 0 # @end=tsv@ ''')[1:] @@ -285,12 +283,14 @@ def clean_lines(text): # -Wno-missing-field-initializers # -Werror=implicit-function-declaration -SAME = [ - './Include/cpython/', -] +SAME = { + _abs('Include/*.h'): [_abs('Include/cpython/')], +} MAX_SIZES = { - _abs('Include/**/*.h'): (5_000, 500), + # GLOB: (MAXTEXT, MAXLINES), + # default: (10_000, 200) + # First match wins. _abs('Modules/_ctypes/ctypes.h'): (5_000, 500), _abs('Modules/_datetimemodule.c'): (20_000, 300), _abs('Modules/posixmodule.c'): (20_000, 500), @@ -298,15 +298,37 @@ def clean_lines(text): _abs('Modules/_testcapimodule.c'): (20_000, 400), _abs('Modules/expat/expat.h'): (10_000, 400), _abs('Objects/stringlib/unicode_format.h'): (10_000, 400), - _abs('Objects/typeobject.c'): (20_000, 200), + _abs('Objects/typeobject.c'): (35_000, 200), _abs('Python/compile.c'): (20_000, 500), _abs('Python/pylifecycle.c'): (500_000, 5000), _abs('Python/pystate.c'): (500_000, 5000), + + # Generated files: + _abs('Include/internal/pycore_opcode.h'): (10_000, 1000), + _abs('Include/internal/pycore_global_strings.h'): (5_000, 1000), + _abs('Include/internal/pycore_runtime_init_generated.h'): (5_000, 1000), + _abs('Python/deepfreeze/*.c'): (20_000, 500), + _abs('Python/frozen_modules/*.h'): (20_000, 500), + _abs('Python/opcode_targets.h'): (10_000, 500), + _abs('Python/stdlib_module_names.h'): (5_000, 500), + + # These large files are currently ignored (see above). + _abs('Modules/_ssl_data.h'): (80_000, 10_000), + _abs('Modules/_ssl_data_300.h'): (80_000, 10_000), + _abs('Modules/_ssl_data_111.h'): (80_000, 10_000), + _abs('Modules/cjkcodecs/mappings_*.h'): (160_000, 2_000), + _abs('Modules/unicodedata_db.h'): (180_000, 3_000), + _abs('Modules/unicodename_db.h'): (1_200_000, 15_000), + _abs('Objects/unicodetype_db.h'): (240_000, 3_000), + + # Catch-alls: + _abs('Include/**/*.h'): (5_000, 500), } def get_preprocessor(*, file_macros=None, + file_includes=None, file_incldirs=None, file_same=None, **kwargs @@ -314,13 +336,20 @@ def get_preprocessor(*, macros = tuple(MACROS) if file_macros: macros += tuple(file_macros) + includes = tuple(INCLUDES) + if file_includes: + includes += tuple(file_includes) incldirs = tuple(INCL_DIRS) if file_incldirs: incldirs += tuple(file_incldirs) + samefiles = dict(SAME) + if file_same: + samefiles.update(file_same) return _get_preprocessor( file_macros=macros, + file_includes=includes, file_incldirs=incldirs, - file_same=file_same, + file_same=samefiles, **kwargs ) diff --git a/Tools/c-analyzer/cpython/globals-to-fix.tsv b/Tools/c-analyzer/cpython/globals-to-fix.tsv index c92f64df1c5de5..83da54fdd28c94 100644 --- a/Tools/c-analyzer/cpython/globals-to-fix.tsv +++ b/Tools/c-analyzer/cpython/globals-to-fix.tsv @@ -7,7 +7,7 @@ filename funcname name reason # global objects to fix in core code #----------------------- -# static types +# exported builtin types (C-API) Objects/boolobject.c - PyBool_Type - Objects/bytearrayobject.c - PyByteArrayIter_Type - @@ -18,8 +18,6 @@ Objects/capsule.c - PyCapsule_Type - Objects/cellobject.c - PyCell_Type - Objects/classobject.c - PyInstanceMethod_Type - Objects/classobject.c - PyMethod_Type - -Objects/codeobject.c - _PyLineIterator - -Objects/codeobject.c - _PyPositionsIterator - Objects/codeobject.c - PyCode_Type - Objects/complexobject.c - PyComplex_Type - Objects/descrobject.c - PyClassMethodDescr_Type - @@ -42,16 +40,12 @@ Objects/dictobject.c - PyDictValues_Type - Objects/dictobject.c - PyDict_Type - Objects/enumobject.c - PyEnum_Type - Objects/enumobject.c - PyReversed_Type - -Objects/exceptions.c - _PyExc_BaseExceptionGroup - -Objects/exceptions.c - _PyExc_EncodingWarning - Objects/fileobject.c - PyStdPrinter_Type - -Objects/floatobject.c - FloatInfoType - Objects/floatobject.c - PyFloat_Type - Objects/frameobject.c - PyFrame_Type - Objects/funcobject.c - PyClassMethod_Type - Objects/funcobject.c - PyFunction_Type - Objects/funcobject.c - PyStaticMethod_Type - -Objects/genericaliasobject.c - _Py_GenericAliasIterType - Objects/genericaliasobject.c - Py_GenericAliasType - Objects/genobject.c - PyAsyncGen_Type - Objects/genobject.c - PyCoro_Type - @@ -63,13 +57,10 @@ Objects/genobject.c - _PyCoroWrapper_Type - Objects/interpreteridobject.c - _PyInterpreterID_Type - Objects/iterobject.c - PyCallIter_Type - Objects/iterobject.c - PySeqIter_Type - -Objects/iterobject.c - _PyAnextAwaitable_Type - Objects/listobject.c - PyListIter_Type - Objects/listobject.c - PyListRevIter_Type - Objects/listobject.c - PyList_Type - -Objects/longobject.c - Int_InfoType - Objects/longobject.c - PyLong_Type - -Objects/memoryobject.c - _PyMemoryIter_Type - Objects/memoryobject.c - PyMemoryView_Type - Objects/memoryobject.c - _PyManagedBuffer_Type - Objects/methodobject.c - PyCFunction_Type - @@ -91,7 +82,6 @@ Objects/rangeobject.c - PyRange_Type - Objects/setobject.c - PyFrozenSet_Type - Objects/setobject.c - PySetIter_Type - Objects/setobject.c - PySet_Type - -Objects/setobject.c - _PySetDummy_Type - Objects/sliceobject.c - PyEllipsis_Type - Objects/sliceobject.c - PySlice_Type - Objects/tupleobject.c - PyTupleIter_Type - @@ -99,11 +89,8 @@ Objects/tupleobject.c - PyTuple_Type - Objects/typeobject.c - PyBaseObject_Type - Objects/typeobject.c - PySuper_Type - Objects/typeobject.c - PyType_Type - -Objects/unicodeobject.c - EncodingMapType - Objects/unicodeobject.c - PyUnicodeIter_Type - Objects/unicodeobject.c - PyUnicode_Type - -Objects/unionobject.c - _PyUnion_Type - -Objects/unionobject.c - _Py_UnionType - Objects/weakrefobject.c - _PyWeakref_CallableProxyType - Objects/weakrefobject.c - _PyWeakref_ProxyType - Objects/weakrefobject.c - _PyWeakref_RefType - @@ -113,8 +100,23 @@ Python/bltinmodule.c - PyZip_Type - Python/context.c - PyContextToken_Type - Python/context.c - PyContextVar_Type - Python/context.c - PyContext_Type - +Python/traceback.c - PyTraceBack_Type - + +#----------------------- +# other exported builtin types + +# Not in a .h file: +Objects/codeobject.c - _PyLineIterator - +# Not in a .h file: +Objects/codeobject.c - _PyPositionsIterator - +Objects/genericaliasobject.c - _Py_GenericAliasIterType - +# Not in a .h file: +Objects/iterobject.c - _PyAnextAwaitable_Type - +# Not in a .h file: +Objects/memoryobject.c - _PyMemoryIter_Type - +Objects/unicodeobject.c - _PyUnicodeASCIIIter_Type - +Objects/unionobject.c - _PyUnion_Type - Python/context.c - _PyContextTokenMissing_Type - -Python/errors.c - UnraisableHookArgsType - Python/hamt.c - _PyHamtItems_Type - Python/hamt.c - _PyHamtKeys_Type - Python/hamt.c - _PyHamtValues_Type - @@ -123,17 +125,34 @@ Python/hamt.c - _PyHamt_BitmapNode_Type - Python/hamt.c - _PyHamt_CollisionNode_Type - Python/hamt.c - _PyHamt_Type - Python/symtable.c - PySTEntry_Type - + +#----------------------- +# private static builtin types + +Objects/setobject.c - _PySetDummy_Type - +Objects/stringlib/unicode_format.h - PyFormatterIter_Type - +Objects/stringlib/unicode_format.h - PyFieldNameIter_Type - +Objects/unicodeobject.c - EncodingMapType - +#Objects/unicodeobject.c - PyFieldNameIter_Type - +#Objects/unicodeobject.c - PyFormatterIter_Type - + +#----------------------- +# static builtin structseq + +Objects/floatobject.c - FloatInfoType - +Objects/longobject.c - Int_InfoType - +Python/errors.c - UnraisableHookArgsType - Python/sysmodule.c - AsyncGenHooksType - Python/sysmodule.c - FlagsType - Python/sysmodule.c - Hash_InfoType - Python/sysmodule.c - VersionInfoType - Python/thread.c - ThreadInfoType - -Python/traceback.c - PyTraceBack_Type - #----------------------- # builtin exception types Objects/exceptions.c - _PyExc_BaseException - +Objects/exceptions.c - _PyExc_BaseExceptionGroup - Objects/exceptions.c - _PyExc_UnicodeEncodeError - Objects/exceptions.c - _PyExc_UnicodeDecodeError - Objects/exceptions.c - _PyExc_UnicodeTranslateError - @@ -197,9 +216,11 @@ Objects/exceptions.c - _PyExc_ImportWarning - Objects/exceptions.c - _PyExc_UnicodeWarning - Objects/exceptions.c - _PyExc_BytesWarning - Objects/exceptions.c - _PyExc_ResourceWarning - +Objects/exceptions.c - _PyExc_EncodingWarning - Objects/exceptions.c - PyExc_EnvironmentError - Objects/exceptions.c - PyExc_IOError - Objects/exceptions.c - PyExc_BaseException - +Objects/exceptions.c - PyExc_BaseExceptionGroup - Objects/exceptions.c - PyExc_Exception - Objects/exceptions.c - PyExc_TypeError - Objects/exceptions.c - PyExc_StopAsyncIteration - @@ -263,6 +284,7 @@ Objects/exceptions.c - PyExc_ImportWarning - Objects/exceptions.c - PyExc_UnicodeWarning - Objects/exceptions.c - PyExc_BytesWarning - Objects/exceptions.c - PyExc_ResourceWarning - +Objects/exceptions.c - PyExc_EncodingWarning - #----------------------- # singletons @@ -270,106 +292,100 @@ Objects/exceptions.c - PyExc_ResourceWarning - Objects/boolobject.c - _Py_FalseStruct - Objects/boolobject.c - _Py_TrueStruct - Objects/dictobject.c - empty_keys_struct - -Objects/dictobject.c - empty_values_struct - Objects/object.c - _Py_NoneStruct - Objects/object.c - _Py_NotImplementedStruct - Objects/setobject.c - _dummy_struct - Objects/setobject.c - _PySet_Dummy - Objects/sliceobject.c - _Py_EllipsisObject - +#----------------------- +# statically initialized + +# argument clinic +Objects/clinic/odictobject.c.h OrderedDict_fromkeys _kwtuple - +Objects/clinic/odictobject.c.h OrderedDict_setdefault _kwtuple - +Objects/clinic/odictobject.c.h OrderedDict_pop _kwtuple - +Objects/clinic/odictobject.c.h OrderedDict_popitem _kwtuple - +Objects/clinic/odictobject.c.h OrderedDict_move_to_end _kwtuple - +Objects/clinic/funcobject.c.h func_new _kwtuple - +Objects/clinic/longobject.c.h long_new _kwtuple - +Objects/clinic/longobject.c.h int_to_bytes _kwtuple - +Objects/clinic/longobject.c.h int_from_bytes _kwtuple - +Objects/clinic/listobject.c.h list_sort _kwtuple - +Objects/clinic/bytearrayobject.c.h bytearray___init__ _kwtuple - +Objects/clinic/bytearrayobject.c.h bytearray_translate _kwtuple - +Objects/clinic/bytearrayobject.c.h bytearray_split _kwtuple - +Objects/clinic/bytearrayobject.c.h bytearray_rsplit _kwtuple - +Objects/clinic/bytearrayobject.c.h bytearray_decode _kwtuple - +Objects/clinic/bytearrayobject.c.h bytearray_splitlines _kwtuple - +Objects/clinic/bytearrayobject.c.h bytearray_hex _kwtuple - +Objects/clinic/memoryobject.c.h memoryview _kwtuple - +Objects/clinic/memoryobject.c.h memoryview_cast _kwtuple - +Objects/clinic/memoryobject.c.h memoryview_tobytes _kwtuple - +Objects/clinic/memoryobject.c.h memoryview_hex _kwtuple - +Objects/clinic/enumobject.c.h enum_new _kwtuple - +Objects/clinic/structseq.c.h structseq_new _kwtuple - +Objects/clinic/descrobject.c.h mappingproxy_new _kwtuple - +Objects/clinic/descrobject.c.h property_init _kwtuple - +Objects/clinic/codeobject.c.h code_replace _kwtuple - +Objects/clinic/codeobject.c.h code__varname_from_oparg _kwtuple - +Objects/clinic/moduleobject.c.h module___init__ _kwtuple - +Objects/clinic/bytesobject.c.h bytes_split _kwtuple - +Objects/clinic/bytesobject.c.h bytes_rsplit _kwtuple - +Objects/clinic/bytesobject.c.h bytes_translate _kwtuple - +Objects/clinic/bytesobject.c.h bytes_decode _kwtuple - +Objects/clinic/bytesobject.c.h bytes_splitlines _kwtuple - +Objects/clinic/bytesobject.c.h bytes_hex _kwtuple - +Objects/clinic/bytesobject.c.h bytes_new _kwtuple - +Objects/clinic/unicodeobject.c.h unicode_encode _kwtuple - +Objects/clinic/unicodeobject.c.h unicode_expandtabs _kwtuple - +Objects/clinic/unicodeobject.c.h unicode_split _kwtuple - +Objects/clinic/unicodeobject.c.h unicode_rsplit _kwtuple - +Objects/clinic/unicodeobject.c.h unicode_splitlines _kwtuple - +Objects/clinic/unicodeobject.c.h unicode_new _kwtuple - +Objects/clinic/complexobject.c.h complex_new _kwtuple - +Python/clinic/traceback.c.h tb_new _kwtuple - +Python/clinic/_warnings.c.h warnings_warn _kwtuple - +Python/clinic/_warnings.c.h warnings_warn_explicit _kwtuple - +Python/clinic/bltinmodule.c.h builtin___import__ _kwtuple - +Python/clinic/bltinmodule.c.h builtin_compile _kwtuple - +Python/clinic/bltinmodule.c.h builtin_exec _kwtuple - +Python/clinic/bltinmodule.c.h builtin_pow _kwtuple - +Python/clinic/bltinmodule.c.h builtin_print _kwtuple - +Python/clinic/bltinmodule.c.h builtin_round _kwtuple - +Python/clinic/bltinmodule.c.h builtin_sum _kwtuple - +Python/clinic/import.c.h _imp_find_frozen _kwtuple - +Python/clinic/import.c.h _imp_source_hash _kwtuple - +Python/clinic/Python-tokenize.c.h tokenizeriter_new _kwtuple - +Python/clinic/sysmodule.c.h sys_addaudithook _kwtuple - +Python/clinic/sysmodule.c.h sys_set_coroutine_origin_tracking_depth _kwtuple - +Python/clinic/sysmodule.c.h sys_set_int_max_str_digits _kwtuple - + #----------------------- # cached - initialized once # manually cached PyUnicodeObject -# XXX This should have been found by the analyzer but wasn't: Python/ast_unparse.c - _str_replace_inf - -# _PyArg_Parser (holds tuple of strings) -Objects/clinic/bytearrayobject.c.h bytearray___init__ _parser - -Objects/clinic/bytearrayobject.c.h bytearray_decode _parser - -Objects/clinic/bytearrayobject.c.h bytearray_hex _parser - -Objects/clinic/bytearrayobject.c.h bytearray_rsplit _parser - -Objects/clinic/bytearrayobject.c.h bytearray_split _parser - -Objects/clinic/bytearrayobject.c.h bytearray_splitlines _parser - -Objects/clinic/bytearrayobject.c.h bytearray_translate _parser - -Objects/clinic/bytesobject.c.h bytes_decode _parser - -Objects/clinic/bytesobject.c.h bytes_hex _parser - -Objects/clinic/bytesobject.c.h bytes_new _parser - -Objects/clinic/bytesobject.c.h bytes_rsplit _parser - -Objects/clinic/bytesobject.c.h bytes_split _parser - -Objects/clinic/bytesobject.c.h bytes_splitlines _parser - -Objects/clinic/bytesobject.c.h bytes_translate _parser - -Objects/clinic/codeobject.c.h code__varname_from_oparg _parser - -Objects/clinic/codeobject.c.h code_replace _parser - -Objects/clinic/complexobject.c.h complex_new _parser - -Objects/clinic/descrobject.c.h mappingproxy_new _parser - -Objects/clinic/descrobject.c.h property_init _parser - -Objects/clinic/enumobject.c.h enum_new _parser - -Objects/clinic/funcobject.c.h func_new _parser - -Objects/clinic/listobject.c.h list_sort _parser - -Objects/clinic/longobject.c.h int_from_bytes _parser - -Objects/clinic/longobject.c.h int_to_bytes _parser - -Objects/clinic/longobject.c.h long_new _parser - -Objects/clinic/memoryobject.c.h memoryview _parser - -Objects/clinic/memoryobject.c.h memoryview_cast _parser - -Objects/clinic/memoryobject.c.h memoryview_hex _parser - -Objects/clinic/memoryobject.c.h memoryview_tobytes _parser - -Objects/clinic/moduleobject.c.h module___init__ _parser - -Objects/clinic/odictobject.c.h OrderedDict_fromkeys _parser - -Objects/clinic/odictobject.c.h OrderedDict_move_to_end _parser - -Objects/clinic/odictobject.c.h OrderedDict_pop _parser - -Objects/clinic/odictobject.c.h OrderedDict_popitem _parser - -Objects/clinic/odictobject.c.h OrderedDict_setdefault _parser - -Objects/clinic/structseq.c.h structseq_new _parser - -Objects/clinic/unicodeobject.c.h unicode_encode _parser - -Objects/clinic/unicodeobject.c.h unicode_expandtabs _parser - -Objects/clinic/unicodeobject.c.h unicode_new _parser - -Objects/clinic/unicodeobject.c.h unicode_rsplit _parser - -Objects/clinic/unicodeobject.c.h unicode_split _parser - -Objects/clinic/unicodeobject.c.h unicode_splitlines _parser - -Python/clinic/Python-tokenize.c.h tokenizeriter_new _parser - -Python/clinic/_warnings.c.h warnings_warn _parser - -Python/clinic/bltinmodule.c.h builtin_compile _parser - -Python/clinic/bltinmodule.c.h builtin_pow _parser - -Python/clinic/bltinmodule.c.h builtin_print _parser - -Python/clinic/bltinmodule.c.h builtin_round _parser - -Python/clinic/bltinmodule.c.h builtin_sum _parser - -Python/clinic/import.c.h _imp_find_frozen _parser - -Python/clinic/import.c.h _imp_source_hash _parser - -Python/clinic/sysmodule.c.h sys_addaudithook _parser - -Python/clinic/sysmodule.c.h sys_set_coroutine_origin_tracking_depth _parser - -Python/clinic/traceback.c.h tb_new _parser - - -# holds strings +# holds statically-initialized strings Objects/typeobject.c - slotdefs - # other -Objects/typeobject.c - method_cache - Objects/typeobject.c object___reduce_ex___impl objreduce - Objects/unicodeobject.c - _string_module - Objects/unicodeobject.c - interned - -Objects/unicodeobject.c - static_strings - #----------------------- # other # initialized once -Objects/exceptions.c - PyExc_BaseExceptionGroup - -Objects/exceptions.c - PyExc_EncodingWarning - -# XXX This should have been found by the analyzer but wasn't: Python/context.c - _token_missing - -# XXX This should have been found by the analyzer but wasn't: Python/fileutils.c - _Py_open_cloexec_works - -# XXX This should have been found by the analyzer but wasn't: Python/hamt.c - _empty_bitmap_node - -# XXX This should have been found by the analyzer but wasn't: Python/hamt.c - _empty_hamt - -# XXX This should have been found by the analyzer but wasn't: -Python/import.c PyImport_Import silly_list - # state Objects/typeobject.c resolve_slotdups pname - -# XXX This should have been found by the analyzer but wasn't: Python/import.c - extensions - @@ -383,38 +399,58 @@ Python/import.c - extensions - Modules/getbuildinfo.c Py_GetBuildInfo buildinfo - # during init -Objects/typeobject.c - slotdefs_initialized - Objects/unicodeobject.c - bloom_linebreak - -Parser/parser.c - Py_DebugFlag - Python/bootstrap_hash.c - _Py_HashSecret_Initialized - Python/bootstrap_hash.c py_getrandom getrandom_works - +Python/initconfig.c - _Py_global_config_int_max_str_digits - +Python/initconfig.c - Py_DebugFlag - +Python/initconfig.c - Py_UTF8Mode - +Python/initconfig.c - Py_DebugFlag - +Python/initconfig.c - Py_VerboseFlag - +Python/initconfig.c - Py_QuietFlag - +Python/initconfig.c - Py_InteractiveFlag - +Python/initconfig.c - Py_InspectFlag - +Python/initconfig.c - Py_OptimizeFlag - +Python/initconfig.c - Py_NoSiteFlag - +Python/initconfig.c - Py_BytesWarningFlag - +Python/initconfig.c - Py_FrozenFlag - +Python/initconfig.c - Py_IgnoreEnvironmentFlag - +Python/initconfig.c - Py_DontWriteBytecodeFlag - +Python/initconfig.c - Py_NoUserSiteDirectory - +Python/initconfig.c - Py_UnbufferedStdioFlag - +Python/initconfig.c - Py_HashRandomizationFlag - +Python/initconfig.c - Py_IsolatedFlag - +Python/initconfig.c - Py_LegacyWindowsFSEncodingFlag - +Python/initconfig.c - Py_LegacyWindowsStdioFlag - +Python/initconfig.c - orig_argv - Python/pyhash.c - _Py_HashSecret - Python/pylifecycle.c - runtime_initialized - Python/sysmodule.c - _PySys_ImplCacheTag - Python/sysmodule.c - _PySys_ImplName - Python/sysmodule.c - _preinit_warnoptions - Python/sysmodule.c - _preinit_xoptions - -Python/thread.c - thread_debug - Python/thread.c - initialized - +Python/thread_pthread.h - condattr_monotonic - +Python/thread_pthread.h init_condattr ca - + +# set by embedders during init +Python/initconfig.c - _Py_StandardStreamEncoding - +Python/initconfig.c - _Py_StandardStreamErrors - # lazy Objects/floatobject.c - double_format - Objects/floatobject.c - float_format - -Objects/floatobject.c - detected_double_format - -Objects/floatobject.c - detected_float_format - Objects/longobject.c PyLong_FromString log_base_BASE - Objects/longobject.c PyLong_FromString convwidth_base - Objects/longobject.c PyLong_FromString convmultmax_base - +Objects/perf_trampoline.c - perf_map_file - Objects/unicodeobject.c - ucnhash_capi - Parser/action_helpers.c _PyPegen_dummy_name cache - Python/dtoa.c - p5s - Python/fileutils.c - force_ascii - Python/fileutils.c set_inheritable ioctl_works - -# XXX This should have been found by the analyzer but wasn't: Python/import.c - import_lock - -# XXX This should have been found by the analyzer but wasn't: Python/import.c import_find_and_load header - -Python/specialize.c - _list_append - #----------------------- # unlikely to change after init (or main thread) @@ -480,35 +516,29 @@ Python/getargs.c - static_arg_parsers - # other Objects/dictobject.c - _pydict_global_version - Objects/dictobject.c - next_dict_keys_version - -Objects/dictobject.c - pydict_global_version - Objects/funcobject.c - next_func_version - Objects/moduleobject.c - max_module_number - Objects/object.c - _Py_RefTotal - +Objects/perf_trampoline.c - perf_status - +Objects/perf_trampoline.c - extra_code_index - +Objects/perf_trampoline.c - code_arena - +Objects/perf_trampoline.c - trampoline_api - Objects/typeobject.c - next_version_tag - Objects/typeobject.c resolve_slotdups ptrs - Parser/pegen.c - memo_statistics - -# XXX This should have been found by the analyzer but wasn't: Python/bootstrap_hash.c - urandom_cache - -# XXX This should have been found by the analyzer but wasn't: -Python/ceval.c - lltrace - -# XXX This should have been found by the analyzer but wasn't: -Python/ceval.c make_pending_calls busy - -Python/dynload_shlib.c - handles - -Python/dynload_shlib.c - nhandles - -# XXX This should have been found by the analyzer but wasn't: +Python/ceval_gil.c make_pending_calls busy - +Python/ceval.c _PyEval_SetProfile reentrant - +Python/ceval.c _PyEval_SetTrace reentrant - Python/import.c - import_lock_level - -# XXX This should have been found by the analyzer but wasn't: Python/import.c - import_lock_thread - -# XXX This should have been found by the analyzer but wasn't: Python/import.c import_find_and_load accumulated - -# XXX This should have been found by the analyzer but wasn't: Python/import.c import_find_and_load import_level - Python/modsupport.c - _Py_PackageContext - +Python/thread_pthread_stubs.h - py_tls_entries - Python/pyfpe.c - PyFPE_counter - Python/pylifecycle.c _Py_FatalErrorFormat reentrant - -# XXX This should have been found by the analyzer but wasn't: Python/pylifecycle.c - _Py_UnhandledKeyboardInterrupt - -# XXX This should have been found by the analyzer but wasn't: Python/pylifecycle.c fatal_error reentrant - Python/specialize.c - _Py_QuickenedCount - @@ -516,32 +546,6 @@ Python/specialize.c - _Py_QuickenedCount - ################################## # global objects to fix in builtin modules -#----------------------- -# modules - -Modules/_abc.c - _abcmodule - -Modules/_codecsmodule.c - codecsmodule - -Modules/_collectionsmodule.c - _collectionsmodule - -Modules/_functoolsmodule.c - _functools_module - -Modules/_io/_iomodule.c - _PyIO_Module - -Modules/_io/_iomodule.h - _PyIO_Module - -Modules/_localemodule.c - _localemodule - -Modules/_sre.c - sremodule - -Modules/_stat.c - statmodule - -Modules/_threadmodule.c - threadmodule - -Modules/_tracemalloc.c - module_def - -Modules/_weakref.c - weakrefmodule - -Modules/atexitmodule.c - atexitmodule - -Modules/errnomodule.c - errnomodule - -Modules/faulthandler.c - module_def - -Modules/gcmodule.c - gcmodule - -Modules/itertoolsmodule.c - itertoolsmodule - -Modules/posixmodule.c - posixmodule - -Modules/pwdmodule.c - pwdmodule - -Modules/signalmodule.c - signalmodule - -Modules/symtablemodule.c - symtablemodule - -Modules/timemodule.c - timemodule - - #----------------------- # static types @@ -550,10 +554,6 @@ Modules/_collectionsmodule.c - deque_type - Modules/_collectionsmodule.c - dequeiter_type - Modules/_collectionsmodule.c - dequereviter_type - Modules/_collectionsmodule.c - tuplegetter_type - -Modules/_functoolsmodule.c - keyobject_type - -Modules/_functoolsmodule.c - lru_cache_type - -Modules/_functoolsmodule.c - lru_list_elem_type - -Modules/_functoolsmodule.c - partial_type - Modules/_io/bufferedio.c - PyBufferedIOBase_Type - Modules/_io/bufferedio.c - PyBufferedRWPair_Type - Modules/_io/bufferedio.c - PyBufferedRandom_Type - @@ -568,11 +568,12 @@ Modules/_io/stringio.c - PyStringIO_Type - Modules/_io/textio.c - PyIncrementalNewlineDecoder_Type - Modules/_io/textio.c - PyTextIOBase_Type - Modules/_io/textio.c - PyTextIOWrapper_Type - +# XXX This should have been found by the analyzer but wasn't: Modules/_io/winconsoleio.c - PyWindowsConsoleIO_Type - -Modules/_threadmodule.c - Locktype - -Modules/_threadmodule.c - RLocktype - -Modules/_threadmodule.c - localdummytype - -Modules/_threadmodule.c - localtype - +Modules/_testcapi/vectorcall.c - MethodDescriptorBase_Type - +Modules/_testcapi/vectorcall.c - MethodDescriptorDerived_Type - +Modules/_testcapi/vectorcall.c - MethodDescriptorNopGet_Type - +Modules/_testcapi/vectorcall.c - MethodDescriptor2_Type - Modules/itertoolsmodule.c - _grouper_type - Modules/itertoolsmodule.c - accumulate_type - Modules/itertoolsmodule.c - chain_type - @@ -595,81 +596,19 @@ Modules/itertoolsmodule.c - tee_type - Modules/itertoolsmodule.c - teedataobject_type - Modules/itertoolsmodule.c - ziplongest_type - -#----------------------- -# non-static types - initialized once - -# structseq types -Modules/_threadmodule.c - ExceptHookArgsType - -Modules/signalmodule.c - SiginfoType - -Modules/timemodule.c - StructTimeType - - -# exception types -Modules/_threadmodule.c - ThreadError - -Modules/signalmodule.c - ItimerError - - -#----------------------- -# cached - initialized once - -# _PyArg_Parser -Modules/clinic/_codecsmodule.c.h _codecs_decode _parser - -Modules/clinic/_codecsmodule.c.h _codecs_encode _parser - -Modules/clinic/_sre.c.h _sre_SRE_Match_expand _parser - -Modules/clinic/_sre.c.h _sre_SRE_Match_groupdict _parser - -Modules/clinic/_sre.c.h _sre_SRE_Match_groups _parser - -Modules/clinic/_sre.c.h _sre_SRE_Pattern_findall _parser - -Modules/clinic/_sre.c.h _sre_SRE_Pattern_finditer _parser - -Modules/clinic/_sre.c.h _sre_SRE_Pattern_fullmatch _parser - -Modules/clinic/_sre.c.h _sre_SRE_Pattern_match _parser - -Modules/clinic/_sre.c.h _sre_SRE_Pattern_scanner _parser - -Modules/clinic/_sre.c.h _sre_SRE_Pattern_search _parser - -Modules/clinic/_sre.c.h _sre_SRE_Pattern_split _parser - -Modules/clinic/_sre.c.h _sre_SRE_Pattern_sub _parser - -Modules/clinic/_sre.c.h _sre_SRE_Pattern_subn _parser - -Modules/clinic/_sre.c.h _sre_SRE_Scanner_match _parser - -Modules/clinic/_sre.c.h _sre_SRE_Scanner_search _parser - -Modules/clinic/_sre.c.h _sre_compile _parser - -Modules/clinic/gcmodule.c.h gc_collect _parser - -Modules/clinic/gcmodule.c.h gc_get_objects _parser - -Modules/clinic/itertoolsmodule.c.h itertools_accumulate _parser - -Modules/clinic/itertoolsmodule.c.h itertools_combinations _parser - -Modules/clinic/itertoolsmodule.c.h itertools_combinations_with_replacement _parser - -Modules/clinic/itertoolsmodule.c.h itertools_compress _parser - -Modules/clinic/itertoolsmodule.c.h itertools_count _parser - -Modules/clinic/itertoolsmodule.c.h itertools_groupby _parser - -Modules/clinic/itertoolsmodule.c.h itertools_permutations _parser - -Modules/clinic/posixmodule.c.h os_DirEntry_is_dir _parser - -Modules/clinic/posixmodule.c.h os_DirEntry_is_file _parser - -Modules/clinic/posixmodule.c.h os_DirEntry_is_symlink _parser - -Modules/clinic/posixmodule.c.h os_DirEntry_stat _parser - -Modules/clinic/posixmodule.c.h os__exit _parser - -Modules/clinic/posixmodule.c.h os__path_normpath _parser - -Modules/clinic/posixmodule.c.h os_access _parser - -Modules/clinic/posixmodule.c.h os_chdir _parser - -Modules/clinic/posixmodule.c.h os_chmod _parser - -Modules/clinic/posixmodule.c.h os_close _parser - -Modules/clinic/posixmodule.c.h os_device_encoding _parser - -Modules/clinic/posixmodule.c.h os_dup2 _parser - -Modules/clinic/posixmodule.c.h os_fspath _parser - -Modules/clinic/posixmodule.c.h os_fstat _parser - -Modules/clinic/posixmodule.c.h os_listdir _parser - -Modules/clinic/posixmodule.c.h os_lstat _parser - -Modules/clinic/posixmodule.c.h os_mkdir _parser - -Modules/clinic/posixmodule.c.h os_open _parser - -Modules/clinic/posixmodule.c.h os_remove _parser - -Modules/clinic/posixmodule.c.h os_rename _parser - -Modules/clinic/posixmodule.c.h os_replace _parser - -Modules/clinic/posixmodule.c.h os_rmdir _parser - -Modules/clinic/posixmodule.c.h os_scandir _parser - -Modules/clinic/posixmodule.c.h os_stat _parser - -Modules/clinic/posixmodule.c.h os_unlink _parser - -Modules/clinic/posixmodule.c.h os_utime _parser - - #----------------------- # other +# statically initializd pointer to static type +# XXX should be const? +# XXX This should have been found by the analyzer but wasn't: +Modules/_io/winconsoleio.c - _PyWindowsConsoleIO_Type - + # initialized once Modules/_functoolsmodule.c - kwd_mark - Modules/_io/_iomodule.c - _PyIO_empty_bytes - +Modules/_testcapi/heaptype.c - _testcapimodule - +Modules/_testcapi/unicode.c - _testcapimodule - Modules/_tracemalloc.c - tracemalloc_empty_traceback - Modules/signalmodule.c - DefaultHandler - Modules/signalmodule.c - IgnoreHandler - @@ -691,13 +630,9 @@ Modules/signalmodule.c - Handlers - # initialized once Modules/_io/bufferedio.c _PyIO_trap_eintr eintr_int - -#Modules/cjkcodecs/cjkcodecs.h - codec_list - -#Modules/cjkcodecs/cjkcodecs.h - mapping_list - Modules/posixmodule.c os_dup2_impl dup3_works - Modules/posixmodule.c - structseq_new - Modules/posixmodule.c - ticks_per_second - -Modules/signalmodule.c - initialized - -Modules/timemodule.c - initialized - Modules/timemodule.c _PyTime_GetClockWithInfo initialized - Modules/timemodule.c _PyTime_GetProcessTimeWithInfo ticks_per_second - @@ -724,75 +659,6 @@ Modules/signalmodule.c - wakeup - ################################## # global objects to fix in extension modules -#----------------------- -# modules - -Modules/_asynciomodule.c - _asynciomodule - -Modules/_bisectmodule.c - _bisectmodule - -Modules/_blake2/blake2module.c - blake2_module - -Modules/_bz2module.c - _bz2module - -Modules/_contextvarsmodule.c - _contextvarsmodule - -Modules/_cryptmodule.c - cryptmodule - -Modules/_csv.c - _csvmodule - -Modules/_ctypes/_ctypes.c - _ctypesmodule - -Modules/_curses_panel.c - _curses_panelmodule - -Modules/_cursesmodule.c - _cursesmodule - -Modules/_datetimemodule.c - datetimemodule - -Modules/_decimal/_decimal.c - _decimal_module - -Modules/_elementtree.c - elementtreemodule - -Modules/_gdbmmodule.c - _gdbmmodule - -Modules/_hashopenssl.c - _hashlibmodule - -Modules/_heapqmodule.c - _heapqmodule - -Modules/_json.c - jsonmodule - -Modules/_lsprof.c - _lsprofmodule - -Modules/_lzmamodule.c - _lzmamodule - -Modules/_multiprocessing/multiprocessing.c - multiprocessing_module - -Modules/_multiprocessing/posixshmem.c - this_module - -Modules/_opcode.c - opcodemodule - -Modules/_operator.c - operatormodule - -Modules/_pickle.c - _picklemodule - -Modules/_posixsubprocess.c - _posixsubprocessmodule - -Modules/_queuemodule.c - queuemodule - -Modules/_randommodule.c - _randommodule - -Modules/_sha3/sha3module.c - _sha3module - -Modules/_sqlite/module.c - _sqlite3module - -Modules/_ssl.c - PySocketModule - -Modules/_ssl.c - _sslmodule - -Modules/_statisticsmodule.c - statisticsmodule - -Modules/_struct.c - _structmodule - -Modules/_tkinter.c - _tkintermodule - -Modules/_uuidmodule.c - uuidmodule - -Modules/_xxsubinterpretersmodule.c - interpretersmodule - -Modules/_zoneinfo.c - zoneinfomodule - -Modules/arraymodule.c - arraymodule - -Modules/audioop.c - audioopmodule - -Modules/binascii.c - binasciimodule - -Modules/cjkcodecs/multibytecodec.c - _multibytecodecmodule - -Modules/cmathmodule.c - cmathmodule - -Modules/fcntlmodule.c - fcntlmodule - -Modules/grpmodule.c - grpmodule - -Modules/mathmodule.c - mathmodule - -Modules/md5module.c - _md5module - -Modules/mmapmodule.c - mmapmodule - -Modules/nismodule.c - nismodule - -Modules/ossaudiodev.c - ossaudiodevmodule - -Modules/pyexpat.c - pyexpatmodule - -Modules/readline.c - readlinemodule - -Modules/resource.c - resourcemodule - -Modules/selectmodule.c - selectmodule - -Modules/sha1module.c - _sha1module - -Modules/sha256module.c - _sha256module - -Modules/sha512module.c - _sha512module - -Modules/socketmodule.c - socketmodule - -Modules/spwdmodule.c - spwdmodule - -Modules/syslogmodule.c - syslogmodule - -Modules/termios.c - termiosmodule - -Modules/unicodedata.c - unicodedata_module - -Modules/xxlimited.c - xxmodule - -Modules/xxmodule.c - xxmodule - -Modules/xxsubtype.c - xxsubtypemodule - -Modules/zlibmodule.c - zlibmodule - - #----------------------- # static types @@ -801,9 +667,6 @@ Modules/_asynciomodule.c - FutureType - Modules/_asynciomodule.c - PyRunningLoopHolder_Type - Modules/_asynciomodule.c - TaskStepMethWrapper_Type - Modules/_asynciomodule.c - TaskType - -Modules/_csv.c - Dialect_Type - -Modules/_csv.c - Reader_Type - -Modules/_csv.c - Writer_Type - Modules/_ctypes/_ctypes.c - DictRemover_Type - Modules/_ctypes/_ctypes.c - PyCArrayType_Type - Modules/_ctypes/_ctypes.c - PyCArray_Type - @@ -814,7 +677,6 @@ Modules/_ctypes/_ctypes.c - PyCPointerType_Type - Modules/_ctypes/_ctypes.c - PyCPointer_Type - Modules/_ctypes/_ctypes.c - PyCSimpleType_Type - Modules/_ctypes/_ctypes.c - PyCStructType_Type - -Modules/_ctypes/_ctypes.c - PyComError_Type - Modules/_ctypes/_ctypes.c - Simple_Type - Modules/_ctypes/_ctypes.c - StructParam_Type - Modules/_ctypes/_ctypes.c - Struct_Type - @@ -823,6 +685,24 @@ Modules/_ctypes/_ctypes.c - Union_Type - Modules/_ctypes/callbacks.c - PyCThunk_Type - Modules/_ctypes/callproc.c - PyCArg_Type - Modules/_ctypes/cfield.c - PyCField_Type - +Modules/_ctypes/ctypes.h - PyCArg_Type - +Modules/_ctypes/ctypes.h - PyCArrayType_Type - +Modules/_ctypes/ctypes.h - PyCArray_Type - +Modules/_ctypes/ctypes.h - PyCData_Type - +Modules/_ctypes/ctypes.h - PyCField_Type - +Modules/_ctypes/ctypes.h - PyCFuncPtrType_Type - +Modules/_ctypes/ctypes.h - PyCFuncPtr_Type - +Modules/_ctypes/ctypes.h - PyCPointerType_Type - +Modules/_ctypes/ctypes.h - PyCPointer_Type - +Modules/_ctypes/ctypes.h - PyCSimpleType_Type - +Modules/_ctypes/ctypes.h - PyCStgDict_Type - +Modules/_ctypes/ctypes.h - PyCStructType_Type - +Modules/_ctypes/ctypes.h - PyCThunk_Type - +Modules/_ctypes/ctypes.h - PyExc_ArgError - +Modules/_ctypes/ctypes.h - _ctypes_conversion_encoding - +Modules/_ctypes/ctypes.h - _ctypes_conversion_errors - +Modules/_ctypes/ctypes.h - _ctypes_ptrtype_cache - +Modules/_ctypes/ctypes.h - basespec_string - Modules/_ctypes/stgdict.c - PyCStgDict_Type - Modules/_cursesmodule.c - PyCursesWindow_Type - Modules/_datetimemodule.c - PyDateTime_DateTimeType - @@ -840,35 +720,16 @@ Modules/_elementtree.c - ElementIter_Type - Modules/_elementtree.c - Element_Type - Modules/_elementtree.c - TreeBuilder_Type - Modules/_elementtree.c - XMLParser_Type - -Modules/_multiprocessing/semaphore.c - _PyMp_SemLockType - Modules/_pickle.c - Pdata_Type - Modules/_pickle.c - PicklerMemoProxyType - Modules/_pickle.c - Pickler_Type - Modules/_pickle.c - UnpicklerMemoProxyType - Modules/_pickle.c - Unpickler_Type - -Modules/_queuemodule.c - PySimpleQueueType - -Modules/_sre.c - Match_Type - -Modules/_sre.c - Pattern_Type - -Modules/_sre.c - Scanner_Type - -Modules/_ssl.c - PySSLContext_Type - -Modules/_ssl.c - PySSLMemoryBIO_Type - -Modules/_ssl.c - PySSLSession_Type - -Modules/_ssl.c - PySSLSocket_Type - Modules/_xxsubinterpretersmodule.c - ChannelIDtype - Modules/_zoneinfo.c - PyZoneInfo_ZoneInfoType - -Modules/arraymodule.c - Arraytype - -Modules/arraymodule.c - PyArrayIter_Type - -Modules/cjkcodecs/multibytecodec.c - MultibyteCodec_Type - -Modules/cjkcodecs/multibytecodec.c - MultibyteIncrementalDecoder_Type - -Modules/cjkcodecs/multibytecodec.c - MultibyteIncrementalEncoder_Type - -Modules/cjkcodecs/multibytecodec.c - MultibyteStreamReader_Type - -Modules/cjkcodecs/multibytecodec.c - MultibyteStreamWriter_Type - -Modules/mmapmodule.c - mmap_object_type - Modules/ossaudiodev.c - OSSAudioType - Modules/ossaudiodev.c - OSSMixerType - -Modules/pyexpat.c - Xmlparsetype - Modules/socketmodule.c - sock_type - -Modules/xxlimited_35.c - Xxo_Type - Modules/xxmodule.c - Null_Type - Modules/xxmodule.c - Str_Type - Modules/xxmodule.c - Xxo_Type - @@ -878,31 +739,18 @@ Modules/xxsubtype.c - spamlist_type - #----------------------- # non-static types - initialized once -# structseq types -Modules/_cursesmodule.c - NcursesVersionType - -Modules/resource.c - StructRUsageType - -Modules/spwdmodule.c - StructSpwdType - - # heap types Modules/_decimal/_decimal.c - DecimalTuple - Modules/_decimal/_decimal.c - PyDecSignalDict_Type - Modules/_tkinter.c - PyTclObject_Type - Modules/_tkinter.c - Tkapp_Type - Modules/_tkinter.c - Tktt_Type - -Modules/xxlimited.c - Xxo_Type - +Modules/xxlimited_35.c - Xxo_Type - # exception types Modules/_ctypes/_ctypes.c - PyExc_ArgError - Modules/_cursesmodule.c - PyCursesError - Modules/_decimal/_decimal.c - DecimalException - -Modules/_queuemodule.c - EmptyError - -Modules/_ssl.c - PySSLErrorObject - -Modules/_ssl.c - PySSLCertVerificationErrorObject - -Modules/_ssl.c - PySSLZeroReturnErrorObject - -Modules/_ssl.c - PySSLWantReadErrorObject - -Modules/_ssl.c - PySSLWantWriteErrorObject - -Modules/_ssl.c - PySSLSyscallErrorObject - -Modules/_ssl.c - PySSLEOFErrorObject - Modules/_tkinter.c - Tkinter_TclError - Modules/_xxsubinterpretersmodule.c - ChannelError - Modules/_xxsubinterpretersmodule.c - ChannelNotFoundError - @@ -911,11 +759,9 @@ Modules/_xxsubinterpretersmodule.c - ChannelEmptyError - Modules/_xxsubinterpretersmodule.c - ChannelNotEmptyError - Modules/_xxsubinterpretersmodule.c - RunFailedError - Modules/ossaudiodev.c - OSSAudioError - -Modules/pyexpat.c - ErrorObject - Modules/socketmodule.c - socket_herror - Modules/socketmodule.c - socket_gaierror - -Modules/socketmodule.c - socket_timeout - -Modules/xxlimited.c - ErrorObject - +Modules/xxlimited_35.c - ErrorObject - Modules/xxmodule.c - ErrorObject - #----------------------- @@ -929,37 +775,12 @@ Modules/_asynciomodule.c - PyId_call_soon - Modules/_asynciomodule.c - PyId_cancel - Modules/_asynciomodule.c - PyId_get_event_loop - Modules/_asynciomodule.c - PyId_throw - -Modules/_bisectmodule.c - PyId_insert - Modules/_datetimemodule.c - PyId_as_integer_ratio - Modules/_datetimemodule.c - PyId_fromutc - Modules/_datetimemodule.c - PyId_isoformat - Modules/_datetimemodule.c - PyId_strftime - -Modules/_sqlite/connection.c - PyId_cursor - -Modules/cjkcodecs/multibytecodec.c - PyId_write - -Modules/unicodedata.c - PyId_NFC - -Modules/unicodedata.c - PyId_NFD - -Modules/unicodedata.c - PyId_NFKC - -Modules/unicodedata.c - PyId_NFKD - # _Py_IDENTIFIER (local) -Modules/_json.c _encoded_const PyId_false - -Modules/_json.c _encoded_const PyId_null - -Modules/_json.c _encoded_const PyId_true - -Modules/_json.c encoder_listencode_dict PyId_close_dict - -Modules/_json.c encoder_listencode_dict PyId_empty_dict - -Modules/_json.c encoder_listencode_dict PyId_open_dict - -Modules/_json.c encoder_listencode_list PyId_close_array - -Modules/_json.c encoder_listencode_list PyId_empty_array - -Modules/_json.c encoder_listencode_list PyId_open_array - -Modules/_json.c raise_errmsg PyId_JSONDecodeError - -Modules/_json.c raise_errmsg PyId_decoder - -Modules/_sqlite/connection.c final_callback PyId_finalize - -Modules/_sqlite/connection.c pysqlite_connection_execute_impl PyId_execute - -Modules/_sqlite/connection.c pysqlite_connection_executemany_impl PyId_executemany - -Modules/_sqlite/connection.c pysqlite_connection_executescript PyId_executescript - -Modules/_sqlite/connection.c pysqlite_connection_iterdump_impl PyId__iterdump - -Modules/_sqlite/module.c pysqlite_register_converter_impl PyId_upper - -Modules/pyexpat.c pyexpat_xmlparser_ParseFile_impl PyId_read - Modules/_asynciomodule.c FutureObj_finalize PyId_call_exception_handler - Modules/_asynciomodule.c FutureObj_finalize PyId_exception - Modules/_asynciomodule.c FutureObj_finalize PyId_future - @@ -968,7 +789,6 @@ Modules/_asynciomodule.c FutureObj_finalize PyId_source_traceback - Modules/_asynciomodule.c FutureObj_get_state PyId_CANCELLED - Modules/_asynciomodule.c FutureObj_get_state PyId_FINISHED - Modules/_asynciomodule.c FutureObj_get_state PyId_PENDING - -Modules/_asynciomodule.c FutureObj_repr PyId__repr_info - Modules/_asynciomodule.c TaskObj_finalize PyId_call_exception_handler - Modules/_asynciomodule.c TaskObj_finalize PyId_message - Modules/_asynciomodule.c TaskObj_finalize PyId_source_traceback - @@ -978,7 +798,6 @@ Modules/_asynciomodule.c get_future_loop PyId__loop - Modules/_asynciomodule.c get_future_loop PyId_get_loop - Modules/_asynciomodule.c register_task PyId_add - Modules/_asynciomodule.c unregister_task PyId_discard - -Modules/_csv.c csv_writer PyId_write - Modules/_ctypes/_ctypes.c CDataType_from_param PyId__as_parameter_ - Modules/_ctypes/_ctypes.c PyCArrayType_new PyId__length_ - Modules/_ctypes/_ctypes.c PyCArrayType_new PyId__type_ - @@ -1010,15 +829,12 @@ Modules/_cursesmodule.c _curses_getwin PyId_read - Modules/_cursesmodule.c _curses_window_putwin PyId_write - Modules/_cursesmodule.c update_lines_cols PyId_COLS - Modules/_cursesmodule.c update_lines_cols PyId_LINES - -Modules/_datetimemodule.c build_struct_time PyId_struct_time - Modules/_datetimemodule.c call_tzname PyId_tzname - Modules/_datetimemodule.c date_strftime PyId_timetuple - Modules/_datetimemodule.c date_today PyId_fromtimestamp - Modules/_datetimemodule.c datetime_strptime PyId__strptime_datetime - Modules/_datetimemodule.c make_Zreplacement PyId_replace - -Modules/_datetimemodule.c time_time PyId_time - Modules/_datetimemodule.c tzinfo_reduce PyId___getinitargs__ - -Modules/_datetimemodule.c tzinfo_reduce PyId___getstate__ - Modules/_elementtree.c _elementtree_Element_find_impl PyId_find - Modules/_elementtree.c _elementtree_Element_findall_impl PyId_findall - Modules/_elementtree.c _elementtree_Element_findtext_impl PyId_findtext - @@ -1027,223 +843,27 @@ Modules/_elementtree.c expat_start_doctype_handler PyId_doctype - Modules/_elementtree.c treebuilder_add_subelement PyId_append - Modules/_elementtree.c treebuilder_flush_data PyId_tail - Modules/_elementtree.c treebuilder_flush_data PyId_text - -Modules/_gdbmmodule.c gdbm__exit__ PyId_close - -Modules/_lzmamodule.c build_filter_spec PyId_dict_size - -Modules/_lzmamodule.c build_filter_spec PyId_dist - -Modules/_lzmamodule.c build_filter_spec PyId_id - -Modules/_lzmamodule.c build_filter_spec PyId_lc - -Modules/_lzmamodule.c build_filter_spec PyId_lp - -Modules/_lzmamodule.c build_filter_spec PyId_pb - -Modules/_lzmamodule.c build_filter_spec PyId_start_offset - -Modules/_operator.c methodcaller_reduce PyId_partial - -Modules/_pickle.c _Pickle_InitState PyId_getattr - -Modules/_pickle.c _Pickler_SetOutputStream PyId_write - -Modules/_pickle.c _Unpickler_SetInputStream PyId_peek - -Modules/_pickle.c _Unpickler_SetInputStream PyId_read - -Modules/_pickle.c _Unpickler_SetInputStream PyId_readinto - -Modules/_pickle.c _Unpickler_SetInputStream PyId_readline - -Modules/_pickle.c _pickle_Pickler___init___impl PyId_dispatch_table - -Modules/_pickle.c _pickle_Pickler___init___impl PyId_persistent_id - -Modules/_pickle.c _pickle_Unpickler___init___impl PyId_persistent_load - -Modules/_pickle.c do_append PyId_append - -Modules/_pickle.c do_append PyId_extend - -Modules/_pickle.c dump PyId_reducer_override - -Modules/_pickle.c find_class PyId_find_class - -Modules/_pickle.c get_class PyId___class__ - -Modules/_pickle.c instantiate PyId___getinitargs__ - -Modules/_pickle.c instantiate PyId___new__ - -Modules/_pickle.c load_additems PyId_add - -Modules/_pickle.c load_build PyId___dict__ - -Modules/_pickle.c load_build PyId___setstate__ - -Modules/_pickle.c save PyId___reduce__ - -Modules/_pickle.c save PyId___reduce_ex__ - -Modules/_pickle.c save_bytes PyId_latin1 - -Modules/_pickle.c save_dict PyId_items - -Modules/_pickle.c save_global PyId___name__ - -Modules/_pickle.c save_global PyId___qualname__ - -Modules/_pickle.c save_reduce PyId___name__ - -Modules/_pickle.c save_reduce PyId___new__ - -Modules/_pickle.c save_reduce PyId___newobj__ - -Modules/_pickle.c save_reduce PyId___newobj_ex__ - -Modules/_pickle.c whichmodule PyId___main__ - -Modules/_pickle.c whichmodule PyId___module__ - -Modules/_pickle.c whichmodule PyId_modules - -Modules/_sqlite/connection.c _pysqlite_final_callback PyId_finalize - -Modules/_sqlite/connection.c pysqlite_connection_create_collation PyId_upper - -Modules/_sqlite/connection.c pysqlite_connection_iterdump PyId__iterdump - -Modules/_sqlite/connection.c pysqlite_connection_set_isolation_level PyId_upper - -Modules/_sqlite/cursor.c _pysqlite_get_converter PyId_upper - -Modules/_sqlite/microprotocols.c pysqlite_microprotocols_adapt PyId___adapt__ - -Modules/_sqlite/microprotocols.c pysqlite_microprotocols_adapt PyId___conform__ - -Modules/_sqlite/module.c module_register_converter PyId_upper - -Modules/_ssl.c fill_and_set_sslerror PyId_library - -Modules/_ssl.c fill_and_set_sslerror PyId_reason - -Modules/_ssl.c fill_and_set_sslerror PyId_verify_code - -Modules/_ssl.c fill_and_set_sslerror PyId_verify_message - -Modules/arraymodule.c array_array___reduce_ex__ PyId___dict__ - -Modules/arraymodule.c array_array___reduce_ex__ PyId__array_reconstructor - -Modules/arraymodule.c array_array_fromfile_impl PyId_read - -Modules/arraymodule.c array_array_tofile PyId_write - -Modules/arraymodule.c array_arrayiterator___reduce___impl PyId_iter - -Modules/mathmodule.c math_ceil PyId___ceil__ - -Modules/mathmodule.c math_floor PyId___floor__ - -Modules/mathmodule.c math_trunc PyId___trunc__ - -Modules/mmapmodule.c mmap__exit__method PyId_close - +Modules/_json.c _encoded_const PyId_false - +Modules/_json.c _encoded_const PyId_null - +Modules/_json.c _encoded_const PyId_true - +Modules/_json.c raise_errmsg PyId_JSONDecodeError - +Modules/_json.c raise_errmsg PyId_decoder - Modules/ossaudiodev.c oss_exit PyId_close - -Modules/pyexpat.c pyexpat_xmlparser_ParseFile PyId_read - - -# _Py_static_string -Modules/_pickle.c get_dotted_path PyId_dot - # manually cached PyUnicodeOjbect Modules/_asynciomodule.c - context_kwname - Modules/_ctypes/callproc.c _ctypes_get_errobj error_object_name - Modules/_ctypes/_ctypes.c CreateSwappedType suffix - -Modules/_json.c _encoded_const s_null - -Modules/_json.c _encoded_const s_true - -Modules/_json.c _encoded_const s_false - -Modules/_json.c encoder_listencode_dict open_dict - -Modules/_json.c encoder_listencode_dict close_dict - -Modules/_json.c encoder_listencode_dict empty_dict - -Modules/_json.c encoder_listencode_list open_array - -Modules/_json.c encoder_listencode_list close_array - -Modules/_json.c encoder_listencode_list empty_array - - -# _PyArg_Parser -Modules/clinic/_asynciomodule.c.h _asyncio_Future___init__ _parser - -Modules/clinic/_asynciomodule.c.h _asyncio_Future_add_done_callback _parser - -Modules/clinic/_asynciomodule.c.h _asyncio_Future_cancel _parser - -Modules/clinic/_asynciomodule.c.h _asyncio_Task___init__ _parser - -Modules/clinic/_asynciomodule.c.h _asyncio_Task_cancel _parser - -Modules/clinic/_asynciomodule.c.h _asyncio_Task_get_stack _parser - -Modules/clinic/_asynciomodule.c.h _asyncio_Task_print_stack _parser - -Modules/clinic/_asynciomodule.c.h _asyncio__enter_task _parser - -Modules/clinic/_asynciomodule.c.h _asyncio__get_event_loop _parser - -Modules/clinic/_asynciomodule.c.h _asyncio__leave_task _parser - -Modules/clinic/_asynciomodule.c.h _asyncio__register_task _parser - -Modules/clinic/_asynciomodule.c.h _asyncio__unregister_task _parser - -Modules/clinic/_bisectmodule.c.h _bisect_bisect_left _parser - -Modules/clinic/_bisectmodule.c.h _bisect_bisect_right _parser - -Modules/clinic/_bisectmodule.c.h _bisect_insort_left _parser - -Modules/clinic/_bisectmodule.c.h _bisect_insort_right _parser - -Modules/clinic/_bz2module.c.h _bz2_BZ2Decompressor_decompress _parser - -Modules/clinic/_curses_panel.c.h _curses_panel_panel_bottom _parser - -Modules/clinic/_curses_panel.c.h _curses_panel_panel_hide _parser - -Modules/clinic/_curses_panel.c.h _curses_panel_panel_move _parser - -Modules/clinic/_curses_panel.c.h _curses_panel_panel_replace _parser - -Modules/clinic/_curses_panel.c.h _curses_panel_panel_set_userptr _parser - -Modules/clinic/_curses_panel.c.h _curses_panel_panel_show _parser - -Modules/clinic/_curses_panel.c.h _curses_panel_panel_top _parser - -Modules/clinic/_curses_panel.c.h _curses_panel_panel_userptr _parser - -Modules/clinic/_cursesmodule.c.h _curses_setupterm _parser - -Modules/clinic/_datetimemodule.c.h datetime_datetime_now _parser - -Modules/clinic/_datetimemodule.c.h iso_calendar_date_new _parser - -Modules/clinic/_dbmmodule.c.h _dbm_dbm_get _parser - -Modules/clinic/_dbmmodule.c.h _dbm_dbm_keys _parser - -Modules/clinic/_dbmmodule.c.h _dbm_dbm_setdefault _parser - -Modules/clinic/_elementtree.c.h _elementtree_Element_find _parser - -Modules/clinic/_elementtree.c.h _elementtree_Element_findall _parser - -Modules/clinic/_elementtree.c.h _elementtree_Element_findtext _parser - -Modules/clinic/_elementtree.c.h _elementtree_Element_get _parser - -Modules/clinic/_elementtree.c.h _elementtree_Element_iter _parser - -Modules/clinic/_elementtree.c.h _elementtree_Element_iterfind _parser - -Modules/clinic/_elementtree.c.h _elementtree_TreeBuilder___init__ _parser - -Modules/clinic/_elementtree.c.h _elementtree_XMLParser___init__ _parser - -Modules/clinic/_gdbmmodule.c.h _gdbm_gdbm_firstkey _parser - -Modules/clinic/_gdbmmodule.c.h _gdbm_gdbm_keys _parser - -Modules/clinic/_gdbmmodule.c.h _gdbm_gdbm_nextkey _parser - -Modules/clinic/_gdbmmodule.c.h _gdbm_gdbm_reorganize _parser - -Modules/clinic/_gdbmmodule.c.h _gdbm_gdbm_sync _parser - -Modules/clinic/_hashopenssl.c.h EVP_new _parser - -Modules/clinic/_hashopenssl.c.h _hashlib_HMAC_update _parser - -Modules/clinic/_hashopenssl.c.h _hashlib_hmac_new _parser - -Modules/clinic/_hashopenssl.c.h _hashlib_hmac_singleshot _parser - -Modules/clinic/_hashopenssl.c.h _hashlib_openssl_md5 _parser - -Modules/clinic/_hashopenssl.c.h _hashlib_openssl_sha1 _parser - -Modules/clinic/_hashopenssl.c.h _hashlib_openssl_sha224 _parser - -Modules/clinic/_hashopenssl.c.h _hashlib_openssl_sha256 _parser - -Modules/clinic/_hashopenssl.c.h _hashlib_openssl_sha384 _parser - -Modules/clinic/_hashopenssl.c.h _hashlib_openssl_sha512 _parser - -Modules/clinic/_hashopenssl.c.h pbkdf2_hmac _parser - -Modules/clinic/_lsprof.c.h _lsprof_Profiler_getstats _parser - -Modules/clinic/_lzmamodule.c.h _lzma_LZMADecompressor___init__ _parser - -Modules/clinic/_lzmamodule.c.h _lzma_LZMADecompressor_decompress _parser - -Modules/clinic/_opcode.c.h _opcode_stack_effect _parser - -Modules/clinic/_pickle.c.h _pickle_Pickler___init__ _parser - -Modules/clinic/_pickle.c.h _pickle_Unpickler___init__ _parser - -Modules/clinic/_pickle.c.h _pickle_dump _parser - -Modules/clinic/_pickle.c.h _pickle_dumps _parser - -Modules/clinic/_pickle.c.h _pickle_load _parser - -Modules/clinic/_pickle.c.h _pickle_loads _parser - -Modules/clinic/_queuemodule.c.h _queue_SimpleQueue_get _parser - -Modules/clinic/_queuemodule.c.h _queue_SimpleQueue_get_nowait _parser - -Modules/clinic/_queuemodule.c.h _queue_SimpleQueue_put _parser - -Modules/clinic/_queuemodule.c.h _queue_SimpleQueue_put_nowait _parser - -Modules/clinic/_ssl.c.h _ssl__SSLContext__wrap_bio _parser - -Modules/clinic/_ssl.c.h _ssl__SSLContext__wrap_socket _parser - -Modules/clinic/_ssl.c.h _ssl__SSLContext_get_ca_certs _parser - -Modules/clinic/_ssl.c.h _ssl__SSLContext_load_cert_chain _parser - -Modules/clinic/_ssl.c.h _ssl__SSLContext_load_verify_locations _parser - -Modules/clinic/_ssl.c.h _ssl__SSLSocket_get_channel_binding _parser - -Modules/clinic/_ssl.c.h _ssl_txt2obj _parser - -Modules/clinic/_struct.c.h Struct___init__ _parser - -Modules/clinic/_struct.c.h Struct_unpack_from _parser - -Modules/clinic/_struct.c.h unpack_from _parser - -Modules/clinic/_testmultiphase.c.h _testmultiphase_StateAccessType_get_count _parser - -Modules/clinic/_testmultiphase.c.h _testmultiphase_StateAccessType_get_defining_module _parser - -Modules/clinic/_testmultiphase.c.h _testmultiphase_StateAccessType_getmodulebydef_bad_def _parser - -Modules/clinic/_testmultiphase.c.h _testmultiphase_StateAccessType_increment_count_clinic _parser - -Modules/clinic/_winapi.c.h _winapi_ConnectNamedPipe _parser - -Modules/clinic/_winapi.c.h _winapi_GetFileType _parser - -Modules/clinic/_winapi.c.h _winapi_ReadFile _parser - -Modules/clinic/_winapi.c.h _winapi_WriteFile _parser - -Modules/clinic/_winapi.c.h _winapi__mimetypes_read_windows_registry _parser - -Modules/clinic/arraymodule.c.h array_array_extend _parser - -Modules/clinic/binascii.c.h binascii_a2b_base64 _parser - -Modules/clinic/binascii.c.h binascii_a2b_qp _parser - -Modules/clinic/binascii.c.h binascii_b2a_base64 _parser - -Modules/clinic/binascii.c.h binascii_b2a_hex _parser - -Modules/clinic/binascii.c.h binascii_b2a_qp _parser - -Modules/clinic/binascii.c.h binascii_b2a_uu _parser - -Modules/clinic/binascii.c.h binascii_hexlify _parser - -Modules/clinic/cmathmodule.c.h cmath_isclose _parser - -Modules/clinic/grpmodule.c.h grp_getgrgid _parser - -Modules/clinic/grpmodule.c.h grp_getgrnam _parser - -Modules/clinic/mathmodule.c.h math_isclose _parser - -Modules/clinic/mathmodule.c.h math_prod _parser - -Modules/clinic/md5module.c.h MD5Type_copy _parser - -Modules/clinic/md5module.c.h _md5_md5 _parser - -Modules/clinic/overlapped.c.h _overlapped_Overlapped _parser - -Modules/clinic/pyexpat.c.h pyexpat_ParserCreate _parser - -Modules/clinic/pyexpat.c.h pyexpat_xmlparser_ExternalEntityParserCreate _parser - -Modules/clinic/pyexpat.c.h pyexpat_xmlparser_Parse _parser - -Modules/clinic/pyexpat.c.h pyexpat_xmlparser_ParseFile _parser - -Modules/clinic/sha1module.c.h SHA1Type_copy _parser - -Modules/clinic/sha1module.c.h _sha1_sha1 _parser - -Modules/clinic/sha256module.c.h SHA256Type_copy _parser - -Modules/clinic/sha256module.c.h _sha256_sha224 _parser - -Modules/clinic/sha256module.c.h _sha256_sha256 _parser - -Modules/clinic/sha512module.c.h SHA512Type_copy _parser - -Modules/clinic/sha512module.c.h _sha512_sha384 _parser - -Modules/clinic/sha512module.c.h _sha512_sha512 _parser - -Modules/clinic/zlibmodule.c.h zlib_Compress_compress _parser - -Modules/clinic/zlibmodule.c.h zlib_Compress_flush _parser - -Modules/clinic/zlibmodule.c.h zlib_Decompress_decompress _parser - -Modules/clinic/zlibmodule.c.h zlib_Decompress_flush _parser - -Modules/clinic/zlibmodule.c.h zlib_compress _parser - -Modules/clinic/zlibmodule.c.h zlib_compressobj _parser - -Modules/clinic/zlibmodule.c.h zlib_decompress _parser - -Modules/clinic/zlibmodule.c.h zlib_decompressobj _parser - # other - during module init Modules/_asynciomodule.c - asyncio_mod - Modules/_asynciomodule.c - traceback_extract_stack - +Modules/_asynciomodule.c - asyncio_future_repr_func - Modules/_asynciomodule.c - asyncio_get_event_loop_policy - -Modules/_asynciomodule.c - asyncio_future_repr_info_func - Modules/_asynciomodule.c - asyncio_iscoroutine_func - Modules/_asynciomodule.c - asyncio_task_get_stack_func - Modules/_asynciomodule.c - asyncio_task_print_stack_func - -Modules/_asynciomodule.c - asyncio_task_repr_info_func - +Modules/_asynciomodule.c - asyncio_task_repr_func - Modules/_asynciomodule.c - asyncio_InvalidStateError - Modules/_asynciomodule.c - asyncio_CancelledError - Modules/_zoneinfo.c - io_open - @@ -1267,7 +887,6 @@ Modules/_datetimemodule.c - us_per_hour - Modules/_datetimemodule.c - us_per_day - Modules/_datetimemodule.c - us_per_week - Modules/_datetimemodule.c - seconds_per_day - -Modules/_decimal/_decimal.c PyInit__decimal capsule - Modules/_decimal/_decimal.c - basic_context_template - Modules/_decimal/_decimal.c - current_context_var - Modules/_decimal/_decimal.c - default_context_template - @@ -1275,17 +894,7 @@ Modules/_decimal/_decimal.c - extended_context_template - Modules/_decimal/_decimal.c - round_map - Modules/_decimal/_decimal.c - Rational - Modules/_decimal/_decimal.c - SignalTuple - -Modules/_json.c raise_errmsg JSONDecodeError - -Modules/_sqlite/microprotocols.c - psyco_adapters - -Modules/_sqlite/module.h - _pysqlite_converters - -Modules/_ssl.c - err_codes_to_names - -Modules/_ssl.c - err_names_to_codes - -Modules/_ssl.c - lib_codes_to_names - -# XXX This should have been found by the analyzer but wasn't: -Modules/_ssl.c - _ssl_locks - -Modules/_struct.c - cache - -Modules/arraymodule.c array_array___reduce_ex__ array_reconstructor - -Modules/cjkcodecs/cjkcodecs.h getmultibytecodec cofunc - +Modules/arraymodule.c array_array___reduce_ex___impl array_reconstructor - # state Modules/_asynciomodule.c - cached_running_holder - @@ -1295,6 +904,7 @@ Modules/_asynciomodule.c - all_tasks - Modules/_asynciomodule.c - current_tasks - Modules/_asynciomodule.c - iscoroutine_typecache - Modules/_ctypes/_ctypes.c - _ctypes_ptrtype_cache - +Modules/_testinternalcapi.c - record_list - Modules/_tkinter.c - tcl_lock - Modules/_tkinter.c - excInCmd - Modules/_tkinter.c - valInCmd - @@ -1302,7 +912,6 @@ Modules/_tkinter.c - trbInCmd - Modules/_zoneinfo.c - TIMEDELTA_CACHE - Modules/_zoneinfo.c - ZONEINFO_WEAK_CACHE - Modules/syslogmodule.c - S_ident_o - -Modules/xxlimited_35.c - ErrorObject - ################################## @@ -1324,32 +933,41 @@ Modules/_cursesmodule.c - initialised - Modules/_cursesmodule.c - initialised_setupterm - Modules/_cursesmodule.c - initialisedcolors - Modules/_cursesmodule.c - screen_encoding - -Modules/_cursesmodule.c PyInit__curses PyCurses_API - -Modules/_datetimemodule.c - CAPI - -Modules/_decimal/_decimal.c PyInit__decimal initialized - Modules/_decimal/_decimal.c - _py_long_multiply - Modules/_decimal/_decimal.c - _py_long_floor_divide - Modules/_decimal/_decimal.c - _py_long_power - Modules/_decimal/_decimal.c - _py_float_abs - Modules/_decimal/_decimal.c - _py_long_bit_length - Modules/_decimal/_decimal.c - _py_float_as_integer_ratio - -Modules/_decimal/_decimal.c - _decimal_api - Modules/_elementtree.c - expat_capi - -Modules/_sqlite/module.h - _pysqlite_enable_callback_tracebacks - -Modules/_sqlite/module.h - pysqlite_BaseTypeAdapted - -Modules/_ssl.c - _ssl_locks_count - +Modules/cjkcodecs/_codecs_hk.c - big5_encmap - +Modules/cjkcodecs/_codecs_hk.c - big5_decmap - +Modules/cjkcodecs/_codecs_hk.c big5hkscs_codec_init initialized - +Modules/cjkcodecs/_codecs_iso2022.c - cp949_encmap - +Modules/cjkcodecs/_codecs_iso2022.c - ksx1001_decmap - +Modules/cjkcodecs/_codecs_iso2022.c - jisxcommon_encmap - +Modules/cjkcodecs/_codecs_iso2022.c - jisx0208_decmap - +Modules/cjkcodecs/_codecs_iso2022.c - jisx0212_decmap - +Modules/cjkcodecs/_codecs_iso2022.c - jisx0213_bmp_encmap - +Modules/cjkcodecs/_codecs_iso2022.c - jisx0213_1_bmp_decmap - +Modules/cjkcodecs/_codecs_iso2022.c - jisx0213_2_bmp_decmap - +Modules/cjkcodecs/_codecs_iso2022.c - jisx0213_emp_encmap - +Modules/cjkcodecs/_codecs_iso2022.c - jisx0213_1_emp_decmap - +Modules/cjkcodecs/_codecs_iso2022.c - jisx0213_2_emp_decmap - +Modules/cjkcodecs/_codecs_iso2022.c - gbcommon_encmap - +Modules/cjkcodecs/_codecs_iso2022.c - gb2312_decmap - +Modules/cjkcodecs/_codecs_iso2022.c ksx1001_init initialized - +Modules/cjkcodecs/_codecs_iso2022.c jisx0208_init initialized - +Modules/cjkcodecs/_codecs_iso2022.c jisx0212_init initialized - +Modules/cjkcodecs/_codecs_iso2022.c jisx0213_init initialized - +Modules/cjkcodecs/_codecs_iso2022.c gb2312_init initialized - Modules/cjkcodecs/cjkcodecs.h - codec_list - Modules/cjkcodecs/cjkcodecs.h - mapping_list - -Modules/getaddrinfo.c - gai_afdl - -Modules/pyexpat.c PyInit_pyexpat capi - Modules/readline.c - libedit_append_replace_history_offset - Modules/readline.c - using_libedit_emulation - Modules/readline.c - libedit_history_start - -Modules/resource.c - initialized - Modules/socketmodule.c - accept4_works - Modules/socketmodule.c - sock_cloexec_works - -Modules/socketmodule.c - PySocketModuleAPI - -Modules/spwdmodule.c - initialized - #----------------------- # state diff --git a/Tools/c-analyzer/cpython/ignored.tsv b/Tools/c-analyzer/cpython/ignored.tsv index 63d0695bfb4a6e..28c2325c263d29 100644 --- a/Tools/c-analyzer/cpython/ignored.tsv +++ b/Tools/c-analyzer/cpython/ignored.tsv @@ -2,10 +2,18 @@ filename funcname name reason #??? - somevar ??? ################################## -# ignored by design +# mutable but known to be safe Python/pylifecycle.c - _PyRuntime - +# All uses of _PyArg_Parser are handled in c-analyzr/cpython/_analyzer.py. + +#----------------------- +# others + +# XXX The analyzer should have ignored these. +Modules/_io/_iomodule.c - _PyIO_Module - +Modules/_sqlite/module.c - _sqlite3module - ################################## # forward/extern references @@ -30,6 +38,7 @@ Modules/_io/_iomodule.h - PyBufferedRandom_Type - Modules/_io/_iomodule.h - PyTextIOWrapper_Type - Modules/_io/_iomodule.h - PyIncrementalNewlineDecoder_Type - Modules/_io/_iomodule.h - _PyBytesIOBuffer_Type - +Modules/_io/_iomodule.h - _PyIO_Module - Modules/_io/_iomodule.h - _PyIO_str_close - Modules/_io/_iomodule.h - _PyIO_str_closed - Modules/_io/_iomodule.h - _PyIO_str_decode - @@ -64,8 +73,66 @@ Modules/_sqlite/module.c - pysqlite_BaseTypeAdapted - Modules/_sqlite/module.h - pysqlite_global_state - Modules/_testcapimodule.c - _PyBytesIOBuffer_Type - Modules/posixmodule.c - _Py_open_cloexec_works - +Objects/object.c - _Py_GenericAliasIterType - +Objects/object.c - _PyMemoryIter_Type - +Objects/object.c - _PyLineIterator - +Objects/object.c - _PyPositionsIterator - +Objects/perf_trampoline.c - _Py_trampoline_func_start - +Objects/perf_trampoline.c - _Py_trampoline_func_end - Python/importdl.h - _PyImport_DynLoadFiletab - +Modules/expat/xmlrole.c - prolog0 - +Modules/expat/xmlrole.c - prolog1 - +Modules/expat/xmlrole.c - prolog2 - +Modules/expat/xmlrole.c - doctype0 - +Modules/expat/xmlrole.c - doctype1 - +Modules/expat/xmlrole.c - doctype2 - +Modules/expat/xmlrole.c - doctype3 - +Modules/expat/xmlrole.c - doctype4 - +Modules/expat/xmlrole.c - doctype5 - +Modules/expat/xmlrole.c - internalSubset - +Modules/expat/xmlrole.c - entity0 - +Modules/expat/xmlrole.c - entity1 - +Modules/expat/xmlrole.c - entity2 - +Modules/expat/xmlrole.c - entity3 - +Modules/expat/xmlrole.c - entity4 - +Modules/expat/xmlrole.c - entity5 - +Modules/expat/xmlrole.c - entity6 - +Modules/expat/xmlrole.c - entity7 - +Modules/expat/xmlrole.c - entity8 - +Modules/expat/xmlrole.c - entity9 - +Modules/expat/xmlrole.c - entity10 - +Modules/expat/xmlrole.c - notation0 - +Modules/expat/xmlrole.c - notation1 - +Modules/expat/xmlrole.c - notation2 - +Modules/expat/xmlrole.c - notation3 - +Modules/expat/xmlrole.c - notation4 - +Modules/expat/xmlrole.c - attlist0 - +Modules/expat/xmlrole.c - attlist1 - +Modules/expat/xmlrole.c - attlist2 - +Modules/expat/xmlrole.c - attlist3 - +Modules/expat/xmlrole.c - attlist4 - +Modules/expat/xmlrole.c - attlist5 - +Modules/expat/xmlrole.c - attlist6 - +Modules/expat/xmlrole.c - attlist7 - +Modules/expat/xmlrole.c - attlist8 - +Modules/expat/xmlrole.c - attlist9 - +Modules/expat/xmlrole.c - element0 - +Modules/expat/xmlrole.c - element1 - +Modules/expat/xmlrole.c - element2 - +Modules/expat/xmlrole.c - element3 - +Modules/expat/xmlrole.c - element4 - +Modules/expat/xmlrole.c - element5 - +Modules/expat/xmlrole.c - element6 - +Modules/expat/xmlrole.c - element7 - +Modules/expat/xmlrole.c - externalSubset0 - +Modules/expat/xmlrole.c - externalSubset1 - +Modules/expat/xmlrole.c - condSect0 - +Modules/expat/xmlrole.c - condSect1 - +Modules/expat/xmlrole.c - condSect2 - +Modules/expat/xmlrole.c - declClose - +Modules/expat/xmlrole.c - error - + ################################## # test code @@ -186,6 +253,7 @@ Modules/_testcapimodule.c - x - Modules/_testcapimodule.c getargs_keyword_only keywords - Modules/_testcapimodule.c getargs_keywords keywords - Modules/_testcapimodule.c getargs_positional_only_and_keywords keywords - +Modules/_testcapimodule.c getargs_s_hash_int2 keywords static char*[] Modules/_testcapimodule.c make_exception_with_doc kwlist - Modules/_testcapimodule.c raise_SIGINT_then_send_None PyId_send - Modules/_testcapimodule.c slot_tp_del PyId___tp_del__ - @@ -268,1144 +336,13 @@ Modules/_xxtestfuzz/fuzzer.c LLVMFuzzerTestOneInput AST_LITERAL_EVAL_INITIALIZED # These are all variables that we will be leaving global. -#----------------------- -# keywords for PyArg_ParseTupleAndKeywords() -# "static char *name[]" -> "static const char * const name[]" - -Modules/cjkcodecs/multibytecodec.c - incnewkwarglist - -Modules/cjkcodecs/multibytecodec.c - streamkwarglist - -Modules/_csv.c - dialect_kws - -Modules/_datetimemodule.c date_fromisocalendar keywords - -Modules/_datetimemodule.c - date_kws - -Modules/_datetimemodule.c date_strftime keywords - -Modules/_datetimemodule.c datetime_astimezone keywords - -Modules/_datetimemodule.c datetime_combine keywords - -Modules/_datetimemodule.c datetime_fromtimestamp keywords - -Modules/_datetimemodule.c datetime_isoformat keywords - -Modules/_datetimemodule.c - datetime_kws - -Modules/_datetimemodule.c delta_new keywords - -Modules/_datetimemodule.c time_isoformat keywords - -Modules/_datetimemodule.c - time_kws - -Modules/_datetimemodule.c time_strftime keywords - -Modules/_datetimemodule.c - timezone_kws - -Modules/_decimal/_decimal.c context_init kwlist - -Modules/_decimal/_decimal.c ctxmanager_new kwlist - -Modules/_decimal/_decimal.c ctx_mpd_qpow kwlist - -Modules/_decimal/_decimal.c dec_mpd_class kwlist - -Modules/_decimal/_decimal.c dec_mpd_compare_total kwlist - -Modules/_decimal/_decimal.c dec_mpd_compare_total_mag kwlist - -Modules/_decimal/_decimal.c dec_mpd_isnormal kwlist - -Modules/_decimal/_decimal.c dec_mpd_issubnormal kwlist - -Modules/_decimal/_decimal.c dec_mpd_qand kwlist - -Modules/_decimal/_decimal.c dec_mpd_qcompare kwlist - -Modules/_decimal/_decimal.c dec_mpd_qcompare_signal kwlist - -Modules/_decimal/_decimal.c dec_mpd_qcopy_sign kwlist - -Modules/_decimal/_decimal.c dec_mpd_qexp kwlist - -Modules/_decimal/_decimal.c dec_mpd_qfma kwlist - -Modules/_decimal/_decimal.c dec_mpd_qinvert kwlist - -Modules/_decimal/_decimal.c dec_mpd_qln kwlist - -Modules/_decimal/_decimal.c dec_mpd_qlog10 kwlist - -Modules/_decimal/_decimal.c dec_mpd_qlogb kwlist - -Modules/_decimal/_decimal.c dec_mpd_qmax kwlist - -Modules/_decimal/_decimal.c dec_mpd_qmax_mag kwlist - -Modules/_decimal/_decimal.c dec_mpd_qmin kwlist - -Modules/_decimal/_decimal.c dec_mpd_qmin_mag kwlist - -Modules/_decimal/_decimal.c dec_mpd_qnext_minus kwlist - -Modules/_decimal/_decimal.c dec_mpd_qnext_plus kwlist - -Modules/_decimal/_decimal.c dec_mpd_qnext_toward kwlist - -Modules/_decimal/_decimal.c dec_mpd_qor kwlist - -Modules/_decimal/_decimal.c dec_mpd_qquantize kwlist - -Modules/_decimal/_decimal.c dec_mpd_qreduce kwlist - -Modules/_decimal/_decimal.c dec_mpd_qrem_near kwlist - -Modules/_decimal/_decimal.c dec_mpd_qrotate kwlist - -Modules/_decimal/_decimal.c dec_mpd_qscaleb kwlist - -Modules/_decimal/_decimal.c dec_mpd_qshift kwlist - -Modules/_decimal/_decimal.c dec_mpd_qsqrt kwlist - -Modules/_decimal/_decimal.c dec_mpd_qxor kwlist - -Modules/_decimal/_decimal.c dec_mpd_same_quantum kwlist - -Modules/_decimal/_decimal.c dec_mpd_to_eng kwlist - -Modules/_decimal/_decimal.c dec_new kwlist - -Modules/_decimal/_decimal.c PyDec_ToIntegralExact kwlist - -Modules/_decimal/_decimal.c PyDec_ToIntegralValue kwlist - -Modules/_elementtree.c element_setstate_from_Python kwlist - -Modules/faulthandler.c faulthandler_dump_traceback_later kwlist - -Modules/faulthandler.c faulthandler_dump_traceback_py kwlist - -Modules/faulthandler.c faulthandler_py_enable kwlist - -Modules/faulthandler.c faulthandler_register_py kwlist - -Modules/_functoolsmodule.c functools_cmp_to_key kwargs - -Modules/_functoolsmodule.c keyobject_call kwargs - -Modules/_functoolsmodule.c lru_cache_new keywords - -Modules/itertoolsmodule.c repeat_new kwargs - -Modules/_json.c encoder_call kwlist - -Modules/_json.c encoder_new kwlist - -Modules/_json.c scanner_call kwlist - -Modules/_json.c scanner_new kwlist - -Modules/_lsprof.c profiler_enable kwlist - -Modules/_lsprof.c profiler_init kwlist - -Modules/_lzmamodule.c Compressor_init arg_names - -Modules/_lzmamodule.c parse_filter_spec_bcj optnames - -Modules/_lzmamodule.c parse_filter_spec_delta optnames - -Modules/_lzmamodule.c parse_filter_spec_lzma optnames - -Modules/mmapmodule.c new_mmap_object keywords - -Modules/nismodule.c nis_cat kwlist - -Modules/nismodule.c nis_maps kwlist - -Modules/nismodule.c nis_match kwlist - -Modules/signalmodule.c signal_set_wakeup_fd kwlist - -Modules/socketmodule.c sock_initobj keywords - -Modules/socketmodule.c sock_recvfrom_into kwlist - -Modules/socketmodule.c sock_recv_into kwlist - -Modules/socketmodule.c sock_sendmsg_afalg keywords - -Modules/socketmodule.c socket_getaddrinfo kwnames - -Modules/_sqlite/connection.c pysqlite_connection_backup keywords - -Modules/_sqlite/connection.c pysqlite_connection_create_aggregate kwlist - -Modules/_sqlite/connection.c pysqlite_connection_create_function kwlist - -Modules/_sqlite/connection.c pysqlite_connection_cursor kwlist - -Modules/_sqlite/connection.c pysqlite_connection_init kwlist - -Modules/_sqlite/connection.c pysqlite_connection_set_authorizer kwlist - -Modules/_sqlite/connection.c pysqlite_connection_set_progress_handler kwlist - -Modules/_sqlite/connection.c pysqlite_connection_set_trace_callback kwlist - -Modules/_sqlite/cursor.c pysqlite_cursor_fetchmany kwlist - -Modules/_sqlite/module.c module_complete kwlist - -Modules/_sqlite/module.c module_connect kwlist - -Modules/_sqlite/module.c module_enable_shared_cache kwlist - -Modules/syslogmodule.c syslog_openlog keywords - -Modules/_xxsubinterpretersmodule.c channel_close kwlist - -Modules/_xxsubinterpretersmodule.c channel_destroy kwlist - -Modules/_xxsubinterpretersmodule.c channelid_new kwlist - -Modules/_xxsubinterpretersmodule.c channel_list_interpreters kwlist - -Modules/_xxsubinterpretersmodule.c channel_recv kwlist - -Modules/_xxsubinterpretersmodule.c channel_release kwlist - -Modules/_xxsubinterpretersmodule.c channel_send kwlist - -Modules/_xxsubinterpretersmodule.c interp_create kwlist - -Modules/_xxsubinterpretersmodule.c interp_destroy kwlist - -Modules/_xxsubinterpretersmodule.c interp_is_running kwlist - -Modules/_xxsubinterpretersmodule.c interp_run_string kwlist - -Modules/_xxsubinterpretersmodule.c object_is_shareable kwlist - -Modules/_zoneinfo.c zoneinfo_clear_cache kwlist - -Modules/_zoneinfo.c zoneinfo_from_file kwlist - -Modules/_zoneinfo.c zoneinfo_new kwlist - -Modules/_zoneinfo.c zoneinfo_no_cache kwlist - -Objects/exceptions.c ImportError_init kwlist - -Objects/interpreteridobject.c interpid_new kwlist - -Objects/weakrefobject.c weakref_call kwlist - -Objects/exceptions.c NameError_init kwlist - -Objects/exceptions.c AttributeError_init kwlist - -Python/_warnings.c warnings_warn_explicit kwd_list - -Python/bltinmodule.c builtin___import__ kwlist - -Python/bltinmodule.c min_max kwlist - -Python/bltinmodule.c zip_new kwlist - -Python/context.c contextvar_tp_new kwlist - -Python/sysmodule.c sys_getsizeof kwlist - -Python/sysmodule.c sys_set_asyncgen_hooks keywords - - -#----------------------- -# PyModuleDef - -Modules/_multiprocessing/posixshmem.c - _posixshmemmodule - -Modules/_sqlite/module.h - _sqlite3module - -Modules/_ssl.c - _sslmodule_def - -Modules/_ssl.h - _sslmodule_def - -Modules/_testmultiphase.c - def_module_state_shared - -Modules/_threadmodule.c - thread_module - -Modules/_typingmodule.c - typingmodule - -Modules/signalmodule.c - signal_module - -Modules/xxlimited_35.c - xxmodule - -Python/Python-ast.c - _astmodule - -Python/Python-tokenize.c - _tokenizemodule - -Python/_warnings.c - warnings_module - -Python/bltinmodule.c - builtinsmodule - -Python/import.c - imp_module - -Python/marshal.c - marshalmodule - -Python/sysmodule.c - sysmodule - - -#----------------------- -# PyModuleDef_Slot - -Modules/_abc.c - _abcmodule_slots - -Modules/_blake2/blake2module.c - _blake2_slots - -Modules/_bz2module.c - _bz2_slots - -Modules/_codecsmodule.c - _codecs_slots - -Modules/_collectionsmodule.c - collections_slots - -Modules/_contextvarsmodule.c - _contextvars_slots - -Modules/_cryptmodule.c - _crypt_slots - -Modules/_csv.c - csv_slots - -Modules/_curses_panel.c - _curses_slots - -Modules/_dbmmodule.c - _dbmmodule_slots - -Modules/_functoolsmodule.c - _functools_slots - -Modules/_gdbmmodule.c - _gdbm_module_slots - -Modules/_hashopenssl.c - hashlib_slots - -Modules/_heapqmodule.c - heapq_slots - -Modules/_json.c - _json_slots - -Modules/_localemodule.c - _locale_slots - -Modules/_lsprof.c - _lsprofslots - -Modules/_lzmamodule.c - lzma_slots - -Modules/_multiprocessing/multiprocessing.c - multiprocessing_slots - -Modules/_operator.c - operator_slots - -Modules/_posixsubprocess.c - _posixsubprocess_slots - -Modules/_queuemodule.c - queuemodule_slots - -Modules/_randommodule.c - _random_slots - -Modules/_scproxy.c - _scproxy_slots - -Modules/_sha3/sha3module.c - _sha3_slots - -Modules/_sqlite/module.c - module_slots - -Modules/_sre.c - sre_slots - -Modules/_ssl.c - sslmodule_slots - -Modules/_stat.c - stat_slots - -Modules/_statisticsmodule.c - _statisticsmodule_slots - -Modules/_struct.c - _structmodule_slots - -Modules/_threadmodule.c - thread_module_slots - -Modules/_typingmodule.c - _typingmodule_slots - -Modules/_uuidmodule.c - uuid_slots - -Modules/_weakref.c - weakref_slots - -Modules/_winapi.c - winapi_slots - -Modules/_zoneinfo.c - zoneinfomodule_slots - -Modules/arraymodule.c - arrayslots - -Modules/atexitmodule.c - atexit_slots - -Modules/audioop.c - audioop_slots - -Modules/binascii.c - binascii_slots - -Modules/cjkcodecs/cjkcodecs.h - _cjk_slots - -Modules/cjkcodecs/multibytecodec.c - _multibytecodec_slots - -Modules/cmathmodule.c - cmath_slots - -Modules/errnomodule.c - errno_slots - -Modules/faulthandler.c - faulthandler_slots - -Modules/fcntlmodule.c - fcntl_slots - -Modules/gcmodule.c - gcmodule_slots - -Modules/gcmodule.c - gcmodule_slots - -Modules/grpmodule.c - grpmodule_slots - -Modules/itertoolsmodule.c - itertoolsmodule_slots - -Modules/mathmodule.c - math_slots - -Modules/md5module.c - _md5_slots - -Modules/mmapmodule.c - mmap_slots - -Modules/nismodule.c - nis_slots - -Modules/overlapped.c - overlapped_slots - -Modules/posixmodule.c - posixmodile_slots - -Modules/pwdmodule.c - pwdmodule_slots - -Modules/pyexpat.c - pyexpat_slots - -Modules/resource.c - resource_slots - -Modules/selectmodule.c - _select_slots - -Modules/sha1module.c - _sha1_slots - -Modules/sha256module.c - _sha256_slots - -Modules/sha512module.c - _sha512_slots - -Modules/signalmodule.c - signal_slots - -Modules/spwdmodule.c - spwdmodule_slots - -Modules/symtablemodule.c - symtable_slots - -Modules/syslogmodule.c - syslog_slots - -Modules/termios.c - termios_slots - -Modules/timemodule.c - time_slots - -Modules/unicodedata.c - unicodedata_slots - -Modules/xxlimited.c - xx_slots - -Modules/xxlimited_35.c - xx_slots - -Modules/xxmodule.c - xx_slots - -Modules/xxsubtype.c - xxsubtype_slots - -Modules/zlibmodule.c - zlib_slots - -Python/Python-ast.c - astmodule_slots - -Python/Python-tokenize.c - tokenizemodule_slots - -Python/_warnings.c - warnings_slots - -Python/marshal.c - marshalmodule_slots - - -#----------------------- -# PyMethodDef and PyMethodDef[], for static types and modules - -Modules/_abc.c - _abcmodule_methods - -Modules/_abc.c - _destroy_def - -Modules/_asynciomodule.c - FutureIter_methods - -Modules/_asynciomodule.c - FutureType_methods - -Modules/_asynciomodule.c - TaskType_methods - -Modules/_asynciomodule.c - TaskWakeupDef - -Modules/_asynciomodule.c - asyncio_methods - -Modules/_bisectmodule.c - bisect_methods - -Modules/_blake2/blake2b_impl.c - py_blake2b_methods - -Modules/_blake2/blake2module.c - blake2mod_functions - -Modules/_blake2/blake2s_impl.c - py_blake2s_methods - -Modules/_bz2module.c - BZ2Compressor_methods - -Modules/_bz2module.c - BZ2Decompressor_methods - -Modules/_codecsmodule.c - _codecs_functions - -Modules/_collectionsmodule.c - collections_methods - -Modules/_collectionsmodule.c - defdict_methods - -Modules/_collectionsmodule.c - deque_methods - -Modules/_collectionsmodule.c - dequeiter_methods - -Modules/_collectionsmodule.c - tuplegetter_methods - -Modules/_contextvarsmodule.c - _contextvars_methods - -Modules/_cryptmodule.c - crypt_methods - -Modules/_csv.c - Reader_methods - -Modules/_csv.c - Writer_methods - -Modules/_csv.c - csv_methods - -Modules/_csv.c - dialect_methods - -Modules/_ctypes/_ctypes.c - Array_methods - -Modules/_ctypes/_ctypes.c - CDataType_methods - -Modules/_ctypes/_ctypes.c - PyCData_methods - -Modules/_ctypes/_ctypes.c - PyCPointerType_methods - -Modules/_ctypes/_ctypes.c - PyCSimpleType_methods - -Modules/_ctypes/_ctypes.c - Simple_methods - -Modules/_ctypes/_ctypes.c - c_char_p_method - -Modules/_ctypes/_ctypes.c - c_void_p_method - -Modules/_ctypes/_ctypes.c - c_wchar_p_method - -Modules/_ctypes/callproc.c - _ctypes_module_methods - -Modules/_ctypes/stgdict.c - PyCStgDict_methods - -Modules/_curses_panel.c - PyCursesPanel_Methods - -Modules/_curses_panel.c - PyCurses_methods - -Modules/_cursesmodule.c - PyCursesWindow_Methods - -Modules/_cursesmodule.c - PyCurses_methods - -Modules/_datetimemodule.c - date_methods - -Modules/_datetimemodule.c - datetime_methods - -Modules/_datetimemodule.c - delta_methods - -Modules/_datetimemodule.c - iso_calendar_date_methods - -Modules/_datetimemodule.c - module_methods - -Modules/_datetimemodule.c - time_methods - -Modules/_datetimemodule.c - timezone_methods - -Modules/_datetimemodule.c - tzinfo_methods - -Modules/_dbmmodule.c - dbm_methods - -Modules/_dbmmodule.c - dbmmodule_methods - -Modules/_decimal/_decimal.c - _decimal_methods - -Modules/_decimal/_decimal.c - context_methods - -Modules/_decimal/_decimal.c - ctxmanager_methods - -Modules/_decimal/_decimal.c - dec_methods - -Modules/_decimal/_decimal.c - signaldict_methods - -Modules/_elementtree.c - _functions - -Modules/_elementtree.c - element_methods - -Modules/_elementtree.c - treebuilder_methods - -Modules/_elementtree.c - xmlparser_methods - -Modules/_functoolsmodule.c - _functools_methods - -Modules/_functoolsmodule.c - lru_cache_methods - -Modules/_functoolsmodule.c - partial_methods - -Modules/_gdbmmodule.c - _gdbm_module_methods - -Modules/_gdbmmodule.c - gdbm_methods - -Modules/_hashopenssl.c - EVPXOF_methods - -Modules/_hashopenssl.c - EVP_functions - -Modules/_hashopenssl.c - EVP_methods - -Modules/_hashopenssl.c - HMAC_methods - -Modules/_heapqmodule.c - heapq_methods - -Modules/_io/_iomodule.c - module_methods - -Modules/_io/bufferedio.c - bufferediobase_methods - -Modules/_io/bufferedio.c - bufferedrandom_methods - -Modules/_io/bufferedio.c - bufferedreader_methods - -Modules/_io/bufferedio.c - bufferedrwpair_methods - -Modules/_io/bufferedio.c - bufferedwriter_methods - -Modules/_io/bytesio.c - bytesio_methods - -Modules/_io/fileio.c - fileio_methods - -Modules/_io/iobase.c - iobase_methods - -Modules/_io/iobase.c - rawiobase_methods - -Modules/_io/stringio.c - stringio_methods - -Modules/_io/textio.c - incrementalnewlinedecoder_methods - -Modules/_io/textio.c - textiobase_methods - -Modules/_io/textio.c - textiowrapper_methods - -Modules/_io/winconsoleio.c - winconsoleio_methods - -Modules/_json.c - speedups_methods - -Modules/_localemodule.c - PyLocale_Methods - -Modules/_lsprof.c - moduleMethods - -Modules/_lsprof.c - profiler_methods - -Modules/_lzmamodule.c - Compressor_methods - -Modules/_lzmamodule.c - Decompressor_methods - -Modules/_lzmamodule.c - lzma_methods - -Modules/_multiprocessing/multiprocessing.c - module_methods - -Modules/_multiprocessing/posixshmem.c - module_methods - -Modules/_multiprocessing/semaphore.c - semlock_methods - -Modules/_opcode.c - opcode_functions - -Modules/_operator.c - attrgetter_methods - -Modules/_operator.c - itemgetter_methods - -Modules/_operator.c - methodcaller_methods - -Modules/_operator.c - operator_methods - -Modules/_pickle.c - Pickler_methods - -Modules/_pickle.c - Unpickler_methods - -Modules/_pickle.c - pickle_methods - -Modules/_pickle.c - picklerproxy_methods - -Modules/_pickle.c - unpicklerproxy_methods - -Modules/_posixsubprocess.c - module_methods - -Modules/_queuemodule.c - simplequeue_methods - -Modules/_randommodule.c - random_methods - -Modules/_scproxy.c - mod_methods - -Modules/_sha3/sha3module.c - SHA3_methods - -Modules/_sha3/sha3module.c - SHAKE_methods - -Modules/_sqlite/connection.c - connection_methods - -Modules/_sqlite/cursor.c - cursor_methods - -Modules/_sqlite/module.c - module_methods - -Modules/_sqlite/row.c - row_methods - -Modules/_sre.c - _functions - -Modules/_sre.c - match_methods - -Modules/_sre.c - pattern_methods - -Modules/_sre.c - scanner_methods - -Modules/_ssl.c - PySSLMethods - -Modules/_ssl.c - PySSL_methods - -Modules/_ssl.c - context_methods - -Modules/_ssl.c - memory_bio_methods - -Modules/_ssl/cert.c - certificate_methods - -Modules/_stat.c - stat_methods - -Modules/_statisticsmodule.c - statistics_methods - -Modules/_struct.c - module_functions - -Modules/_struct.c - s_methods - -Modules/_struct.c - unpackiter_methods - -Modules/_threadmodule.c - lock_methods - -Modules/_threadmodule.c - rlock_methods - -Modules/_threadmodule.c - thread_methods - -Modules/_threadmodule.c local_new wr_callback_def - -Modules/_tkinter.c - Tkapp_methods - -Modules/_tkinter.c - Tktt_methods - -Modules/_tkinter.c - moduleMethods - -Modules/_tracemalloc.c - module_methods - -Modules/_typingmodule.c - typing_methods - -Modules/_uuidmodule.c - uuid_methods - -Modules/_weakref.c - weakref_functions - -Modules/_winapi.c - overlapped_methods - -Modules/_winapi.c - winapi_functions - -Modules/_xxsubinterpretersmodule.c - module_functions - -Modules/_zoneinfo.c - module_methods - -Modules/_zoneinfo.c - zoneinfo_methods - -Modules/arraymodule.c - a_methods - -Modules/arraymodule.c - array_methods - -Modules/arraymodule.c - arrayiter_methods - -Modules/atexitmodule.c - atexit_methods - -Modules/audioop.c - audioop_methods - -Modules/binascii.c - binascii_module_methods - -Modules/cjkcodecs/cjkcodecs.h - __methods - -Modules/cjkcodecs/cjkcodecs.h - _cjk_methods - -Modules/cjkcodecs/multibytecodec.c - __methods - -Modules/cjkcodecs/multibytecodec.c - _multibytecodec_methods - -Modules/cjkcodecs/multibytecodec.c - mbidecoder_methods - -Modules/cjkcodecs/multibytecodec.c - mbiencoder_methods - -Modules/cjkcodecs/multibytecodec.c - mbstreamreader_methods - -Modules/cjkcodecs/multibytecodec.c - mbstreamwriter_methods - -Modules/cjkcodecs/multibytecodec.c - multibytecodec_methods - -Modules/cmathmodule.c - cmath_methods - -Modules/errnomodule.c - errno_methods - -Modules/faulthandler.c - module_methods - -Modules/fcntlmodule.c - fcntl_methods - -Modules/gcmodule.c - GcMethods - -Modules/getpath.c - getpath_methods - -Modules/getpath.c - getpath_nowarn_method - -Modules/getpath.c - getpath_warn_method - -Modules/grpmodule.c - grp_methods - -Modules/itertoolsmodule.c - _grouper_methods - -Modules/itertoolsmodule.c - accumulate_methods - -Modules/itertoolsmodule.c - chain_methods - -Modules/itertoolsmodule.c - combinations_methods - -Modules/itertoolsmodule.c - compress_methods - -Modules/itertoolsmodule.c - count_methods - -Modules/itertoolsmodule.c - cwr_methods - -Modules/itertoolsmodule.c - cycle_methods - -Modules/itertoolsmodule.c - dropwhile_methods - -Modules/itertoolsmodule.c - filterfalse_methods - -Modules/itertoolsmodule.c - groupby_methods - -Modules/itertoolsmodule.c - islice_methods - -Modules/itertoolsmodule.c - module_methods - -Modules/itertoolsmodule.c - permuations_methods - -Modules/itertoolsmodule.c - product_methods - -Modules/itertoolsmodule.c - repeat_methods - -Modules/itertoolsmodule.c - starmap_methods - -Modules/itertoolsmodule.c - takewhile_reduce_methods - -Modules/itertoolsmodule.c - tee_methods - -Modules/itertoolsmodule.c - teedataobject_methods - -Modules/itertoolsmodule.c - zip_longest_methods - -Modules/mathmodule.c - math_methods - -Modules/md5module.c - MD5_functions - -Modules/md5module.c - MD5_methods - -Modules/mmapmodule.c - mmap_object_methods - -Modules/nismodule.c - nis_methods - -Modules/ossaudiodev.c - oss_methods - -Modules/ossaudiodev.c - oss_mixer_methods - -Modules/ossaudiodev.c - ossaudiodev_methods - -Modules/overlapped.c - Overlapped_methods - -Modules/overlapped.c - overlapped_functions - -Modules/posixmodule.c - DirEntry_methods - -Modules/posixmodule.c - ScandirIterator_methods - -Modules/posixmodule.c - posix_methods - -Modules/pwdmodule.c - pwd_methods - -Modules/pyexpat.c - pyexpat_methods - -Modules/pyexpat.c - xmlparse_methods - -Modules/readline.c - readline_methods - -Modules/resource.c - resource_methods - -Modules/selectmodule.c - devpoll_methods - -Modules/selectmodule.c - kqueue_queue_methods - -Modules/selectmodule.c - poll_methods - -Modules/selectmodule.c - pyepoll_methods - -Modules/selectmodule.c - select_methods - -Modules/sha1module.c - SHA1_functions - -Modules/sha1module.c - SHA1_methods - -Modules/sha256module.c - SHA_functions - -Modules/sha256module.c - SHA_methods - -Modules/sha512module.c - SHA_functions - -Modules/sha512module.c - SHA_methods - -Modules/signalmodule.c - signal_methods - -Modules/socketmodule.c - sock_methods - -Modules/socketmodule.c - socket_methods - -Modules/spwdmodule.c - spwd_methods - -Modules/symtablemodule.c - symtable_methods - -Modules/syslogmodule.c - syslog_methods - -Modules/termios.c - termios_methods - -Modules/timemodule.c - time_methods - -Modules/unicodedata.c - unicodedata_functions - -Modules/xxlimited.c - Xxo_methods - -Modules/xxlimited.c - xx_methods - -Modules/xxlimited_35.c - Xxo_methods - -Modules/xxlimited_35.c - xx_methods - -Modules/xxmodule.c - Xxo_methods - -Modules/xxmodule.c - xx_methods - -Modules/xxsubtype.c - spamdict_methods - -Modules/xxsubtype.c - spamlist_methods - -Modules/xxsubtype.c - xxsubtype_functions - -Modules/zlibmodule.c - Decomp_methods - -Modules/zlibmodule.c - comp_methods - -Modules/zlibmodule.c - zlib_methods - -Objects/bytearrayobject.c - bytearray_methods - -Objects/bytearrayobject.c - bytearrayiter_methods - -Objects/bytesobject.c - bytes_methods - -Objects/bytesobject.c - striter_methods - -Objects/classobject.c - method_methods - -Objects/codeobject.c - code_methods - -Objects/complexobject.c - complex_methods - -Objects/descrobject.c - descr_methods - -Objects/descrobject.c - mappingproxy_methods - -Objects/descrobject.c - property_methods - -Objects/descrobject.c - wrapper_methods - -Objects/dictobject.c - dictitems_methods - -Objects/dictobject.c - dictiter_methods - -Objects/dictobject.c - dictkeys_methods - -Objects/dictobject.c - dictvalues_methods - -Objects/dictobject.c - mapp_methods - -Objects/enumobject.c - enum_methods - -Objects/enumobject.c - reversediter_methods - -Objects/exceptions.c - AttributeError_methods - -Objects/exceptions.c - BaseExceptionGroup_methods - -Objects/exceptions.c - BaseException_methods - -Objects/exceptions.c - ImportError_methods - -Objects/exceptions.c - NameError_methods - -Objects/exceptions.c - OSError_methods - -Objects/fileobject.c - stdprinter_methods - -Objects/floatobject.c - float_methods - -Objects/frameobject.c - frame_methods - -Objects/genericaliasobject.c - ga_methods - -Objects/genobject.c - async_gen_asend_methods - -Objects/genobject.c - async_gen_athrow_methods - -Objects/genobject.c - async_gen_methods - -Objects/genobject.c - coro_methods - -Objects/genobject.c - coro_wrapper_methods - -Objects/genobject.c - gen_methods - -Objects/iterobject.c - anextawaitable_methods - -Objects/iterobject.c - calliter_methods - -Objects/iterobject.c - seqiter_methods - -Objects/listobject.c - list_methods - -Objects/listobject.c - listiter_methods - -Objects/listobject.c - listreviter_methods - -Objects/longobject.c - long_methods - -Objects/memoryobject.c - memory_methods - -Objects/methodobject.c - meth_methods - -Objects/moduleobject.c - module_methods - -Objects/namespaceobject.c - namespace_methods - -Objects/object.c - notimplemented_methods - -Objects/odictobject.c - odict_methods - -Objects/odictobject.c - odictitems_methods - -Objects/odictobject.c - odictiter_methods - -Objects/odictobject.c - odictkeys_methods - -Objects/odictobject.c - odictvalues_methods - -Objects/picklebufobject.c - picklebuf_methods - -Objects/rangeobject.c - longrangeiter_methods - -Objects/rangeobject.c - range_methods - -Objects/rangeobject.c - rangeiter_methods - -Objects/setobject.c - frozenset_methods - -Objects/setobject.c - set_methods - -Objects/setobject.c - setiter_methods - -Objects/sliceobject.c - ellipsis_methods - -Objects/sliceobject.c - slice_methods - -Objects/stringlib/unicode_format.h - fieldnameiter_methods - -Objects/stringlib/unicode_format.h - formatteriter_methods - -Objects/structseq.c - structseq_methods - -Objects/tupleobject.c - tuple_methods - -Objects/tupleobject.c - tupleiter_methods - -Objects/typeobject.c - object_methods - -Objects/typeobject.c - tp_new_methoddef - -Objects/typeobject.c - type_methods - -Objects/unicodeobject.c - _string_methods - -Objects/unicodeobject.c - encoding_map_methods - -Objects/unicodeobject.c - unicode_methods - -Objects/unicodeobject.c - unicodeiter_methods - -Objects/unionobject.c - union_methods - -Objects/weakrefobject.c - proxy_methods - -Objects/weakrefobject.c - weakref_methods - -Python/Python-ast.c - ast_type_methods - -Python/Python-tokenize.c - tokenize_methods - -Python/_warnings.c - warnings_functions - -Python/bltinmodule.c - builtin_methods - -Python/bltinmodule.c - filter_methods - -Python/bltinmodule.c - map_methods - -Python/bltinmodule.c - zip_methods - -Python/context.c - PyContextTokenType_methods - -Python/context.c - PyContextVar_methods - -Python/context.c - PyContext_methods - -Python/hamt.c - PyHamt_methods - -Python/import.c - imp_slots - -Python/import.c - imp_methods - -Python/marshal.c - marshal_methods - -Python/sysmodule.c - sys_methods - -Python/traceback.c - tb_methods - - -#----------------------- -# PyMemberDef[], for static types and strucseq - -Modules/_bz2module.c - BZ2Decompressor_members - -Modules/_collectionsmodule.c - defdict_members - -Modules/_collectionsmodule.c - tuplegetter_members - -Modules/_csv.c - Dialect_memberlist - -Modules/_csv.c - Reader_memberlist - -Modules/_csv.c - Writer_memberlist - -Modules/_ctypes/_ctypes.c - PyCData_members - -Modules/_ctypes/callproc.c - PyCArgType_members - -Modules/_datetimemodule.c - delta_members - -Modules/_elementtree.c - xmlparser_members - -Modules/_functoolsmodule.c - keyobject_members - -Modules/_functoolsmodule.c - lru_cache_memberlist - -Modules/_functoolsmodule.c - partial_memberlist - -Modules/_io/bufferedio.c - bufferedrandom_members - -Modules/_io/bufferedio.c - bufferedreader_members - -Modules/_io/bufferedio.c - bufferedwriter_members - -Modules/_io/fileio.c - fileio_members - -Modules/_io/textio.c - textiowrapper_members - -Modules/_io/winconsoleio.c - winconsoleio_members - -Modules/_json.c - encoder_members - -Modules/_json.c - scanner_members - -Modules/_lzmamodule.c - Decompressor_members - -Modules/_multiprocessing/semaphore.c - semlock_members - -Modules/_pickle.c - Pickler_members - -Modules/_queuemodule.c - simplequeue_members - -Modules/_sqlite/connection.c - connection_members - -Modules/_sqlite/cursor.c - cursor_members - -Modules/_sqlite/statement.c - stmt_members - -Modules/_sre.c - match_members - -Modules/_sre.c - pattern_members - -Modules/_sre.c - scanner_members - -Modules/_struct.c - s_members - -Modules/_threadmodule.c - local_dummy_type_members - -Modules/_threadmodule.c - local_type_members - -Modules/_threadmodule.c - lock_type_members - -Modules/_threadmodule.c - rlock_type_members - -Modules/_winapi.c - overlapped_members - -Modules/_zoneinfo.c - zoneinfo_members - -Modules/arraymodule.c - array_members - -Modules/cjkcodecs/multibytecodec.c - mbstreamreader_members - -Modules/cjkcodecs/multibytecodec.c - mbstreamwriter_members - -Modules/mmapmodule.c - mmap_object_members - -Modules/ossaudiodev.c - oss_members - -Modules/overlapped.c - Overlapped_members - -Modules/posixmodule.c - DirEntry_members - -Modules/pyexpat.c - xmlparse_members - -Modules/selectmodule.c - kqueue_event_members - -Modules/sha256module.c - SHA_members - -Modules/sha512module.c - SHA_members - -Modules/socketmodule.c - sock_memberlist - -Modules/unicodedata.c - DB_members - -Modules/xxsubtype.c - spamdict_members - -Modules/zlibmodule.c - Decomp_members - -Objects/classobject.c - instancemethod_memberlist - -Objects/classobject.c - method_memberlist - -Objects/codeobject.c - code_memberlist - -Objects/complexobject.c - complex_members - -Objects/descrobject.c - descr_members - -Objects/descrobject.c - property_members - -Objects/descrobject.c - wrapper_members - -Objects/exceptions.c - AttributeError_members - -Objects/exceptions.c - BaseExceptionGroup_members - -Objects/exceptions.c - BaseException_members - -Objects/exceptions.c - ImportError_members - -Objects/exceptions.c - NameError_members - -Objects/exceptions.c - OSError_members - -Objects/exceptions.c - StopIteration_members - -Objects/exceptions.c - SyntaxError_members - -Objects/exceptions.c - SystemExit_members - -Objects/exceptions.c - UnicodeError_members - -Objects/frameobject.c - frame_memberlist - -Objects/funcobject.c - cm_memberlist - -Objects/funcobject.c - func_memberlist - -Objects/funcobject.c - sm_memberlist - -Objects/genericaliasobject.c - ga_members - -Objects/genobject.c - async_gen_memberlist - -Objects/genobject.c - coro_memberlist - -Objects/genobject.c - gen_memberlist - -Objects/methodobject.c - meth_members - -Objects/moduleobject.c - module_members - -Objects/namespaceobject.c - namespace_members - -Objects/rangeobject.c - range_members - -Objects/sliceobject.c - slice_members - -Objects/typeobject.c - super_members - -Objects/typeobject.c - type_members - -Objects/unionobject.c - union_members - -Objects/weakrefobject.c - weakref_members - -Python/Python-ast.c - ast_type_members - -Python/context.c - PyContextVar_members - -Python/symtable.c - ste_memberlist - -Python/traceback.c - tb_memberlist - - -#----------------------- -# for static types - -# PyNumberMethods -Modules/_collectionsmodule.c - deque_as_number - -Modules/_collectionsmodule.c - defdict_as_number - -Modules/_ctypes/_ctypes.c - PyCFuncPtr_as_number - -Modules/_ctypes/_ctypes.c - Simple_as_number - -Modules/_ctypes/_ctypes.c - Pointer_as_number - -Modules/_datetimemodule.c - delta_as_number - -Modules/_datetimemodule.c - date_as_number - -Modules/_datetimemodule.c - datetime_as_number - -Modules/_decimal/_decimal.c - dec_number_methods - -Modules/_xxsubinterpretersmodule.c - channelid_as_number - -Objects/boolobject.c - bool_as_number - -Objects/bytearrayobject.c - bytearray_as_number - -Objects/bytesobject.c - bytes_as_number - -Objects/complexobject.c - complex_as_number - -Objects/descrobject.c - mappingproxy_as_number - -Objects/dictobject.c - dict_as_number - -Objects/dictobject.c - dictviews_as_number - -Objects/floatobject.c - float_as_number - -Objects/genericaliasobject.c - ga_as_number - -Objects/interpreteridobject.c - interpid_as_number - -Objects/longobject.c - long_as_number - -Objects/object.c - none_as_number - -Objects/object.c - notimplemented_as_number - -Objects/odictobject.c - odict_as_number - -Objects/rangeobject.c - range_as_number - -Objects/setobject.c - set_as_number - -Objects/setobject.c - frozenset_as_number - -Objects/typeobject.c - type_as_number - -Objects/unicodeobject.c - unicode_as_number - -Objects/unionobject.c - union_as_number - -Objects/weakrefobject.c - proxy_as_number - - -# PySequenceMethods -Modules/arraymodule.c - array_as_sequence - -Modules/_collectionsmodule.c - deque_as_sequence - -Modules/_ctypes/_ctypes.c - CDataType_as_sequence - -Modules/_ctypes/_ctypes.c - Array_as_sequence - -Modules/_ctypes/_ctypes.c - Pointer_as_sequence - -Modules/_elementtree.c - element_as_sequence - -Modules/mmapmodule.c - mmap_as_sequence - -Objects/bytearrayobject.c - bytearray_as_sequence - -Objects/bytesobject.c - bytes_as_sequence - -Objects/descrobject.c - mappingproxy_as_sequence - -Objects/dictobject.c - dict_as_sequence - -Objects/dictobject.c - dictkeys_as_sequence - -Objects/dictobject.c - dictitems_as_sequence - -Objects/dictobject.c - dictvalues_as_sequence - -Objects/listobject.c - list_as_sequence - -Objects/memoryobject.c - memory_as_sequence - -Objects/rangeobject.c - range_as_sequence - -Objects/setobject.c - set_as_sequence - -Objects/tupleobject.c - tuple_as_sequence - -Objects/unicodeobject.c - unicode_as_sequence - -Objects/weakrefobject.c - proxy_as_sequence - -Python/context.c - PyContext_as_sequence - -Python/hamt.c - PyHamt_as_sequence - - -# PyMappingMethods -Modules/arraymodule.c - array_as_mapping - -Modules/_ctypes/_ctypes.c - Array_as_mapping - -Modules/_ctypes/_ctypes.c - Pointer_as_mapping - -Modules/_decimal/_decimal.c - signaldict_as_mapping - -Modules/_elementtree.c - element_as_mapping - -Modules/mmapmodule.c - mmap_as_mapping - -Modules/_sre.c - match_as_mapping - -Objects/bytearrayobject.c - bytearray_as_mapping - -Objects/bytesobject.c - bytes_as_mapping - -Objects/descrobject.c - mappingproxy_as_mapping - -Objects/dictobject.c - dict_as_mapping - -Objects/genericaliasobject.c - ga_as_mapping - -Objects/listobject.c - list_as_mapping - -Objects/memoryobject.c - memory_as_mapping - -Objects/odictobject.c - odict_as_mapping - -Objects/rangeobject.c - range_as_mapping - -Objects/tupleobject.c - tuple_as_mapping - -Objects/unicodeobject.c - unicode_as_mapping - -Objects/unionobject.c - union_as_mapping - -Objects/weakrefobject.c - proxy_as_mapping - -Python/context.c - PyContext_as_mapping - -Python/hamt.c - PyHamtIterator_as_mapping - -Python/hamt.c - PyHamt_as_mapping - - -# PyAsyncMethods -Modules/_asynciomodule.c - FutureIterType_as_async - -Modules/_asynciomodule.c - FutureType_as_async - -Objects/genobject.c - async_gen_as_async - -Objects/genobject.c - async_gen_asend_as_async - -Objects/genobject.c - async_gen_athrow_as_async - -Objects/genobject.c - coro_as_async - -Objects/genobject.c - gen_as_async - -Objects/iterobject.c - anextawaitable_as_async - - -# PyBufferProcs -Modules/arraymodule.c - array_as_buffer - -Modules/_ctypes/_ctypes.c - PyCData_as_buffer - -Modules/_io/bytesio.c - bytesiobuf_as_buffer - -Modules/mmapmodule.c - mmap_as_buffer - -Objects/bytearrayobject.c - bytearray_as_buffer - -Objects/bytesobject.c - bytes_as_buffer - -Objects/memoryobject.c - memory_as_buffer - -Objects/picklebufobject.c - picklebuf_as_buffer - - -# PyGetSetDef -Modules/_asynciomodule.c - FutureType_getsetlist - -Modules/_asynciomodule.c - TaskStepMethWrapper_getsetlist - -Modules/_asynciomodule.c - TaskType_getsetlist - -Modules/_blake2/blake2b_impl.c - py_blake2b_getsetters - -Modules/_blake2/blake2s_impl.c - py_blake2s_getsetters - -Modules/_collectionsmodule.c - deque_getset - -Modules/_csv.c - Dialect_getsetlist - -Modules/_ctypes/_ctypes.c - CharArray_getsets - -Modules/_ctypes/_ctypes.c - Pointer_getsets - -Modules/_ctypes/_ctypes.c - PyCFuncPtr_getsets - -Modules/_ctypes/_ctypes.c - Simple_getsets - -Modules/_ctypes/_ctypes.c - WCharArray_getsets - -Modules/_ctypes/cfield.c - PyCField_getset - -Modules/_cursesmodule.c - PyCursesWindow_getsets - -Modules/_datetimemodule.c - date_getset - -Modules/_datetimemodule.c - datetime_getset - -Modules/_datetimemodule.c - iso_calendar_date_getset - -Modules/_datetimemodule.c - time_getset - -Modules/_decimal/_decimal.c - context_getsets - -Modules/_decimal/_decimal.c - dec_getsets - -Modules/_elementtree.c - element_getsetlist - -Modules/_elementtree.c - xmlparser_getsetlist - -Modules/_functoolsmodule.c - lru_cache_getsetlist - -Modules/_functoolsmodule.c - partial_getsetlist - -Modules/_hashopenssl.c - EVPXOF_getseters - -Modules/_hashopenssl.c - EVP_getseters - -Modules/_hashopenssl.c - HMAC_getset - -Modules/_io/bufferedio.c - bufferedrandom_getset - -Modules/_io/bufferedio.c - bufferedreader_getset - -Modules/_io/bufferedio.c - bufferedrwpair_getset - -Modules/_io/bufferedio.c - bufferedwriter_getset - -Modules/_io/bytesio.c - bytesio_getsetlist - -Modules/_io/fileio.c - fileio_getsetlist - -Modules/_io/iobase.c - iobase_getset - -Modules/_io/stringio.c - stringio_getset - -Modules/_io/textio.c - incrementalnewlinedecoder_getset - -Modules/_io/textio.c - textiobase_getset - -Modules/_io/textio.c - textiowrapper_getset - -Modules/_io/winconsoleio.c - winconsoleio_getsetlist - -Modules/_pickle.c - Pickler_getsets - -Modules/_pickle.c - Unpickler_getsets - -Modules/_sha3/sha3module.c - SHA3_getseters - -Modules/_sqlite/connection.c - connection_getset - -Modules/_sre.c - match_getset - -Modules/_sre.c - pattern_getset - -Modules/_ssl.c - PySSLSession_getsetlist - -Modules/_ssl.c - context_getsetlist - -Modules/_ssl.c - memory_bio_getsetlist - -Modules/_ssl.c - ssl_getsetlist - -Modules/_struct.c - s_getsetlist - -Modules/_tkinter.c - PyTclObject_getsetlist - -Modules/_xxsubinterpretersmodule.c - channelid_getsets - -Modules/arraymodule.c - array_getsets - -Modules/cjkcodecs/multibytecodec.c - codecctx_getsets - -Modules/md5module.c - MD5_getseters - -Modules/mmapmodule.c - mmap_object_getset - -Modules/ossaudiodev.c - oss_getsetlist - -Modules/overlapped.c - Overlapped_getsets - -Modules/pyexpat.c - xmlparse_getsetlist - -Modules/selectmodule.c - devpoll_getsetlist - -Modules/selectmodule.c - kqueue_queue_getsetlist - -Modules/selectmodule.c - pyepoll_getsetlist - -Modules/sha1module.c - SHA1_getseters - -Modules/sha256module.c - SHA_getseters - -Modules/sha512module.c - SHA_getseters - -Modules/socketmodule.c - sock_getsetlist - -Modules/xxlimited.c - Xxo_getsetlist - -Modules/xxsubtype.c - spamlist_getsets - -Objects/cellobject.c - cell_getsetlist - -Objects/classobject.c - instancemethod_getset - -Objects/classobject.c - method_getset - -Objects/codeobject.c - code_getsetlist - -Objects/descrobject.c - getset_getset - -Objects/descrobject.c - member_getset - -Objects/descrobject.c - method_getset - -Objects/descrobject.c - property_getsetlist - -Objects/descrobject.c - wrapper_getsets - -Objects/descrobject.c - wrapperdescr_getset - -Objects/dictobject.c - dictview_getset - -Objects/exceptions.c - BaseException_getset - -Objects/exceptions.c - OSError_getset - -Objects/fileobject.c - stdprinter_getsetlist - -Objects/floatobject.c - float_getset - -Objects/frameobject.c - frame_getsetlist - -Objects/funcobject.c - cm_getsetlist - -Objects/funcobject.c - func_getsetlist - -Objects/funcobject.c - sm_getsetlist - -Objects/genericaliasobject.c - ga_properties - -Objects/genobject.c - async_gen_getsetlist - -Objects/genobject.c - coro_getsetlist - -Objects/genobject.c - gen_getsetlist - -Objects/longobject.c - long_getset - -Objects/memoryobject.c - memory_getsetlist - -Objects/methodobject.c - meth_getsets - -Objects/moduleobject.c - module_getsets - -Objects/odictobject.c - odict_getset - -Objects/typeobject.c - object_getsets - -Objects/typeobject.c - subtype_getsets_dict_only - -Objects/typeobject.c - subtype_getsets_full - -Objects/typeobject.c - subtype_getsets_weakref_only - -Objects/typeobject.c - type_getsets - -Objects/unionobject.c - union_properties - -Python/Python-ast.c - ast_type_getsets - -Python/context.c - PyContextTokenType_getsetlist - -Python/traceback.c - tb_getsetters - - -#----------------------- -# for heap types - -# PyType_Slot -Modules/_abc.c - _abc_data_type_spec_slots - -Modules/_blake2/blake2b_impl.c - blake2b_type_slots - -Modules/_blake2/blake2s_impl.c - blake2s_type_slots - -Modules/_bz2module.c - bz2_compressor_type_slots - -Modules/_bz2module.c - bz2_decompressor_type_slots - -Modules/_csv.c - Dialect_Type_slots - -Modules/_csv.c - Reader_Type_slots - -Modules/_csv.c - Writer_Type_slots - -Modules/_csv.c - error_slots - -Modules/_curses_panel.c - PyCursesPanel_Type_slots - -Modules/_dbmmodule.c - dbmtype_spec_slots - -Modules/_functoolsmodule.c - keyobject_type_slots - -Modules/_functoolsmodule.c - lru_cache_type_slots - -Modules/_functoolsmodule.c - lru_list_elem_type_slots - -Modules/_functoolsmodule.c - partial_type_slots - -Modules/_gdbmmodule.c - gdbmtype_spec_slots - -Modules/_hashopenssl.c - EVPXOFtype_slots - -Modules/_hashopenssl.c - EVPtype_slots - -Modules/_hashopenssl.c - HMACtype_slots - -Modules/_json.c - PyEncoderType_slots - -Modules/_json.c - PyScannerType_slots - -Modules/_lsprof.c - _lsprof_profiler_type_spec_slots - -Modules/_lzmamodule.c - lzma_compressor_type_slots - -Modules/_lzmamodule.c - lzma_decompressor_type_slots - -Modules/_operator.c - attrgetter_type_slots - -Modules/_operator.c - itemgetter_type_slots - -Modules/_operator.c - methodcaller_type_slots - -Modules/_queuemodule.c - simplequeue_slots - -Modules/_randommodule.c - Random_Type_slots - -Modules/_sha3/sha3module.c - SHAKE128slots - -Modules/_sha3/sha3module.c - SHAKE256slots - -Modules/_sha3/sha3module.c - sha3_224_slots - -Modules/_sha3/sha3module.c - sha3_256_slots - -Modules/_sha3/sha3module.c - sha3_384_slots - -Modules/_sha3/sha3module.c - sha3_512_slots - -Modules/_sha3/sha3module.c - type_slots_obj - -Modules/_sqlite/connection.c - connection_slots - -Modules/_sqlite/cursor.c - cursor_slots - -Modules/_sqlite/prepare_protocol.c - type_slots - -Modules/_sqlite/row.c - row_slots - -Modules/_sqlite/statement.c - stmt_slots - -Modules/_sre.c - match_slots - -Modules/_sre.c - pattern_slots - -Modules/_sre.c - scanner_slots - -Modules/_ssl.c - PySSLContext_slots - -Modules/_ssl.c - PySSLMemoryBIO_slots - -Modules/_ssl.c - PySSLSession_slots - -Modules/_ssl.c - PySSLSocket_slots - -Modules/_ssl.c - sslerror_type_slots - -Modules/_ssl/cert.c - PySSLCertificate_slots - -Modules/_struct.c - PyStructType_slots - -Modules/_struct.c - unpackiter_type_slots - -Modules/_testcapimodule.c - HeapTypeNameType_slots - -Modules/_testcapimodule.c - NullTpDocType_slots - -Modules/_threadmodule.c - local_dummy_type_slots - -Modules/_threadmodule.c - local_type_slots - -Modules/_threadmodule.c - lock_type_slots - -Modules/_threadmodule.c - rlock_type_slots - -Modules/_tkinter.c - PyTclObject_Type_slots - -Modules/_tkinter.c - Tkapp_Type_slots - -Modules/_tkinter.c - Tktt_Type_slots - -Modules/_winapi.c - winapi_overlapped_type_slots - -Modules/arraymodule.c - array_slots - -Modules/arraymodule.c - arrayiter_slots - -Modules/cjkcodecs/multibytecodec.c - decoder_slots - -Modules/cjkcodecs/multibytecodec.c - encoder_slots - -Modules/cjkcodecs/multibytecodec.c - multibytecodec_slots - -Modules/cjkcodecs/multibytecodec.c - reader_slots - -Modules/cjkcodecs/multibytecodec.c - writer_slots - -Modules/md5module.c - md5_type_slots - -Modules/mmapmodule.c - mmap_object_slots - -Modules/overlapped.c - overlapped_type_slots - -Modules/posixmodule.c - DirEntryType_slots - -Modules/posixmodule.c - ScandirIteratorType_slots - -Modules/pyexpat.c - _xml_parse_type_spec_slots - -Modules/selectmodule.c - devpoll_Type_slots - -Modules/selectmodule.c - kqueue_event_Type_slots - -Modules/selectmodule.c - kqueue_queue_Type_slots - -Modules/selectmodule.c - poll_Type_slots - -Modules/selectmodule.c - pyEpoll_Type_slots - -Modules/sha1module.c - sha1_type_slots - -Modules/sha256module.c - sha256_types_slots - -Modules/sha512module.c - sha512_sha384_type_slots - -Modules/sha512module.c - sha512_sha512_type_slots - -Modules/unicodedata.c - ucd_type_slots - -Modules/xxlimited.c - Null_Type_slots - -Modules/xxlimited.c - Str_Type_slots - -Modules/xxlimited.c - Xxo_Type_slots - -Modules/xxlimited_35.c - Null_Type_slots - -Modules/xxlimited_35.c - Str_Type_slots - -Modules/xxlimited_35.c - Xxo_Type_slots - -Modules/zlibmodule.c - Comptype_slots - -Modules/zlibmodule.c - Decomptype_slots - -Python/Python-ast.c - AST_type_slots - -Python/Python-tokenize.c - tokenizeriter_slots - - -# PyType_Spec -Modules/_abc.c - _abc_data_type_spec - -Modules/_blake2/blake2b_impl.c - blake2b_type_spec - -Modules/_blake2/blake2s_impl.c - blake2s_type_spec - -Modules/_bz2module.c - bz2_compressor_type_spec - -Modules/_bz2module.c - bz2_decompressor_type_spec - -Modules/_csv.c - Dialect_Type_spec - -Modules/_csv.c - Reader_Type_spec - -Modules/_csv.c - Writer_Type_spec - -Modules/_csv.c - error_spec - -Modules/_curses_panel.c - PyCursesPanel_Type_spec - -Modules/_dbmmodule.c - dbmtype_spec - -Modules/_functoolsmodule.c - keyobject_type_spec - -Modules/_functoolsmodule.c - lru_cache_type_spec - -Modules/_functoolsmodule.c - lru_list_elem_type_spec - -Modules/_functoolsmodule.c - partial_type_spec - -Modules/_gdbmmodule.c - gdbmtype_spec - -Modules/_hashopenssl.c - EVPXOFtype_spec - -Modules/_hashopenssl.c - EVPtype_spec - -Modules/_hashopenssl.c - HMACtype_spec - -Modules/_json.c - PyEncoderType_spec - -Modules/_json.c - PyScannerType_spec - -Modules/_lsprof.c - _lsprof_profiler_type_spec - -Modules/_lzmamodule.c - lzma_compressor_type_spec - -Modules/_lzmamodule.c - lzma_decompressor_type_spec - -Modules/_operator.c - attrgetter_type_spec - -Modules/_operator.c - itemgetter_type_spec - -Modules/_operator.c - methodcaller_type_spec - -Modules/_queuemodule.c - simplequeue_spec - -Modules/_randommodule.c - Random_Type_spec - -Modules/_sha3/sha3module.c - SHAKE128_spec - -Modules/_sha3/sha3module.c - SHAKE256_spec - -Modules/_sha3/sha3module.c - sha3_224_spec - -Modules/_sha3/sha3module.c - sha3_256_spec - -Modules/_sha3/sha3module.c - sha3_384_spec - -Modules/_sha3/sha3module.c - sha3_512_spec - -Modules/_sha3/sha3module.c - type_spec_obj - -Modules/_sqlite/connection.c - connection_spec - -Modules/_sqlite/cursor.c - cursor_spec - -Modules/_sqlite/prepare_protocol.c - type_spec - -Modules/_sqlite/row.c - row_spec - -Modules/_sqlite/statement.c - stmt_spec - -Modules/_sre.c - match_spec - -Modules/_sre.c - pattern_spec - -Modules/_sre.c - scanner_spec - -Modules/_ssl.c - PySSLContext_spec - -Modules/_ssl.c - PySSLMemoryBIO_spec - -Modules/_ssl.c - PySSLSession_spec - -Modules/_ssl.c - PySSLSocket_spec - -Modules/_ssl.c - sslerror_type_spec - -Modules/_ssl/cert.c - PySSLCertificate_spec - -Modules/_struct.c - PyStructType_spec - -Modules/_struct.c - unpackiter_type_spec - -Modules/_testcapimodule.c - HeapTypeNameType_Spec - -Modules/_testcapimodule.c - NullTpDocType_spec - -Modules/_threadmodule.c - local_dummy_type_spec - -Modules/_threadmodule.c - local_type_spec - -Modules/_threadmodule.c - lock_type_spec - -Modules/_threadmodule.c - rlock_type_spec - -Modules/_tkinter.c - PyTclObject_Type_spec - -Modules/_tkinter.c - Tkapp_Type_spec - -Modules/_tkinter.c - Tktt_Type_spec - -Modules/_winapi.c - winapi_overlapped_type_spec - -Modules/_zoneinfo.c - DAYS_BEFORE_MONTH - -Modules/_zoneinfo.c - DAYS_IN_MONTH - -Modules/arraymodule.c - array_spec - -Modules/arraymodule.c - arrayiter_spec - -Modules/cjkcodecs/multibytecodec.c - decoder_spec - -Modules/cjkcodecs/multibytecodec.c - encoder_spec - -Modules/cjkcodecs/multibytecodec.c - multibytecodec_spec - -Modules/cjkcodecs/multibytecodec.c - reader_spec - -Modules/cjkcodecs/multibytecodec.c - writer_spec - -Modules/md5module.c - md5_type_spec - -Modules/mmapmodule.c - mmap_object_spec - -Modules/overlapped.c - overlapped_type_spec - -Modules/posixmodule.c - DirEntryType_spec - -Modules/posixmodule.c - ScandirIteratorType_spec - -Modules/pyexpat.c - _xml_parse_type_spec - -Modules/selectmodule.c - devpoll_Type_spec - -Modules/selectmodule.c - kqueue_event_Type_spec - -Modules/selectmodule.c - kqueue_queue_Type_spec - -Modules/selectmodule.c - poll_Type_spec - -Modules/selectmodule.c - pyEpoll_Type_spec - -Modules/sha1module.c - sha1_type_spec - -Modules/sha256module.c - sha224_type_spec - -Modules/sha256module.c - sha256_type_spec - -Modules/sha512module.c - sha512_sha384_type_spec - -Modules/sha512module.c - sha512_sha512_type_spec - -Modules/unicodedata.c - ucd_type_spec - -Modules/xxlimited.c - Null_Type_spec - -Modules/xxlimited.c - Str_Type_spec - -Modules/xxlimited.c - Xxo_Type_spec - -Modules/xxlimited_35.c - Null_Type_spec - -Modules/xxlimited_35.c - Str_Type_spec - -Modules/xxlimited_35.c - Xxo_Type_spec - -Modules/zlibmodule.c - Comptype_spec - -Modules/zlibmodule.c - Decomptype_spec - -Python/Python-ast.c - AST_type_spec - -Python/Python-tokenize.c - tokenizeriter_spec - - -#----------------------- -# for structseq - -# PyStructSequence_Field[] -Modules/_cursesmodule.c - ncurses_version_fields - -Modules/grpmodule.c - struct_group_type_fields - -Modules/_lsprof.c - profiler_entry_fields - -Modules/_lsprof.c - profiler_subentry_fields - -Modules/posixmodule.c - stat_result_fields - -Modules/posixmodule.c - statvfs_result_fields - -Modules/posixmodule.c - waitid_result_fields - -Modules/posixmodule.c - uname_result_fields - -Modules/posixmodule.c - sched_param_fields - -Modules/posixmodule.c - times_result_fields - -Modules/posixmodule.c - TerminalSize_fields - -Modules/pwdmodule.c - struct_pwd_type_fields - -Modules/resource.c - struct_rusage_fields - -Modules/signalmodule.c - struct_siginfo_fields - -Modules/spwdmodule.c - struct_spwd_type_fields - -Modules/_threadmodule.c - ExceptHookArgs_fields - -Modules/timemodule.c - struct_time_type_fields - -Objects/floatobject.c - floatinfo_fields - -Objects/longobject.c - int_info_fields - -Python/errors.c - UnraisableHookArgs_fields - -Python/sysmodule.c - asyncgen_hooks_fields - -Python/sysmodule.c - hash_info_fields - -Python/sysmodule.c - windows_version_fields - -Python/sysmodule.c - flags_fields - -Python/sysmodule.c - version_info_fields - -Python/thread.c - threadinfo_fields - - -# PyStructSequence_Desc -Modules/_cursesmodule.c - ncurses_version_desc - -Modules/grpmodule.c - struct_group_type_desc - -Modules/_lsprof.c - profiler_entry_desc - -Modules/_lsprof.c - profiler_subentry_desc - -Modules/posixmodule.c - stat_result_desc - -Modules/posixmodule.c - statvfs_result_desc - -Modules/posixmodule.c - waitid_result_desc - -Modules/posixmodule.c - uname_result_desc - -Modules/posixmodule.c - sched_param_desc - -Modules/posixmodule.c - times_result_desc - -Modules/posixmodule.c - TerminalSize_desc - -Modules/pwdmodule.c - struct_pwd_type_desc - -Modules/resource.c - struct_rusage_desc - -Modules/signalmodule.c - struct_siginfo_desc - -Modules/spwdmodule.c - struct_spwd_type_desc - -Modules/_threadmodule.c - ExceptHookArgs_desc - -Modules/timemodule.c - struct_time_type_desc - -Objects/floatobject.c - floatinfo_desc - -Objects/longobject.c - int_info_desc - -Python/errors.c - UnraisableHookArgs_desc - -Python/sysmodule.c - asyncgen_hooks_desc - -Python/sysmodule.c - hash_info_desc - -Python/sysmodule.c - windows_version_desc - -Python/sysmodule.c - flags_desc - -Python/sysmodule.c - version_info_desc - -Python/thread.c - threadinfo_desc - +# All module defs, type defs, etc. are handled in c-analyzr/cpython/_analyzer.py. +# All kwlist arrays are handled in c-analyzr/cpython/_analyzer.py. #----------------------- # other vars that are actually constant +Include/internal/pycore_blocks_output_buffer.h - BUFFER_BLOCK_SIZE - Modules/_csv.c - quote_styles - Modules/_ctypes/cfield.c - ffi_type_double - Modules/_ctypes/cfield.c - ffi_type_float - @@ -1423,6 +360,7 @@ Modules/_ctypes/cfield.c - ffi_type_void - Modules/_datetimemodule.c - epoch - Modules/_datetimemodule.c - max_fold_seconds - Modules/_datetimemodule.c datetime_isoformat specs - +Modules/_datetimemodule.c parse_hh_mm_ss_ff correction - Modules/_datetimemodule.c time_isoformat specs - Modules/_decimal/_decimal.c - cond_map - Modules/_decimal/_decimal.c - dec_signal_string - @@ -1436,15 +374,54 @@ Modules/_elementtree.c - ExpatMemoryHandler - Modules/_io/_iomodule.c - static_types - Modules/_io/textio.c - encodefuncs - Modules/_localemodule.c - langinfo_constants - +Modules/_pickle.c - READ_WHOLE_LINE - Modules/_sqlite/module.c - error_codes - +Modules/_sre/sre.c pattern_repr flag_names - +# XXX I'm pretty sure this is actually constant: +Modules/_sre/sre_targets.h - sre_targets - Modules/_sre.c pattern_repr flag_names - Modules/_struct.c - bigendian_table - Modules/_struct.c - lilendian_table - Modules/_tkinter.c - state_key - Modules/_xxsubinterpretersmodule.c - _channelid_end_recv - Modules/_xxsubinterpretersmodule.c - _channelid_end_send - +Modules/_zoneinfo.c - DAYS_BEFORE_MONTH - +Modules/_zoneinfo.c - DAYS_IN_MONTH - Modules/arraymodule.c - descriptors - Modules/arraymodule.c - emptybuf - +Modules/cjkcodecs/_codecs_cn.c - _mapping_list - +Modules/cjkcodecs/_codecs_cn.c - mapping_list - +Modules/cjkcodecs/_codecs_cn.c - _codec_list - +Modules/cjkcodecs/_codecs_cn.c - codec_list - +Modules/cjkcodecs/_codecs_hk.c - big5hkscs_pairenc_table - +Modules/cjkcodecs/_codecs_hk.c - _mapping_list - +Modules/cjkcodecs/_codecs_hk.c - mapping_list - +Modules/cjkcodecs/_codecs_hk.c - _codec_list - +Modules/cjkcodecs/_codecs_hk.c - codec_list - +Modules/cjkcodecs/_codecs_iso2022.c - iso2022_kr_config - +Modules/cjkcodecs/_codecs_iso2022.c - iso2022_jp_config - +Modules/cjkcodecs/_codecs_iso2022.c - iso2022_jp_1_config - +Modules/cjkcodecs/_codecs_iso2022.c - iso2022_jp_2_config - +Modules/cjkcodecs/_codecs_iso2022.c - iso2022_jp_2004_config - +Modules/cjkcodecs/_codecs_iso2022.c - iso2022_jp_3_config - +Modules/cjkcodecs/_codecs_iso2022.c - iso2022_jp_ext_config - +Modules/cjkcodecs/_codecs_iso2022.c - _mapping_list - +Modules/cjkcodecs/_codecs_iso2022.c - mapping_list - +Modules/cjkcodecs/_codecs_iso2022.c - _codec_list - +Modules/cjkcodecs/_codecs_iso2022.c - codec_list - +Modules/cjkcodecs/_codecs_jp.c - _mapping_list - +Modules/cjkcodecs/_codecs_jp.c - mapping_list - +Modules/cjkcodecs/_codecs_jp.c - _codec_list - +Modules/cjkcodecs/_codecs_jp.c - codec_list - +Modules/cjkcodecs/_codecs_kr.c - u2johabjamo - +Modules/cjkcodecs/_codecs_kr.c - _mapping_list - +Modules/cjkcodecs/_codecs_kr.c - mapping_list - +Modules/cjkcodecs/_codecs_kr.c - _codec_list - +Modules/cjkcodecs/_codecs_kr.c - codec_list - +Modules/cjkcodecs/_codecs_tw.c - _mapping_list - +Modules/cjkcodecs/_codecs_tw.c - mapping_list - +Modules/cjkcodecs/_codecs_tw.c - _codec_list - +Modules/cjkcodecs/_codecs_tw.c - codec_list - Modules/cjkcodecs/cjkcodecs.h - __methods - Modules/cmathmodule.c - acos_special_values - Modules/cmathmodule.c - acosh_special_values - @@ -1464,6 +441,8 @@ Modules/nismodule.c - TIMEOUT - Modules/nismodule.c - aliases - Modules/ossaudiodev.c - control_labels - Modules/ossaudiodev.c - control_names - +Modules/posixmodule.c os_getxattr_impl buffer_sizes - +Modules/posixmodule.c os_listxattr_impl buffer_sizes - Modules/posixmodule.c - posix_constants_confstr - Modules/posixmodule.c - posix_constants_pathconf - Modules/posixmodule.c - posix_constants_sysconf - @@ -1486,6 +465,7 @@ Objects/obmalloc.c - _PyMem_Debug - Objects/obmalloc.c - _PyMem_Raw - Objects/obmalloc.c - _PyObject - Objects/obmalloc.c - usedpools - +Objects/perf_trampoline.c - _Py_perfmap_callbacks - Objects/typeobject.c - name_op - Objects/unicodeobject.c - stripfuncnames - Objects/unicodeobject.c - utf7_category - @@ -1497,9 +477,12 @@ Parser/parser.c - reserved_keywords - Parser/parser.c - soft_keywords - Parser/tokenizer.c - type_comment_prefix - Python/ast_opt.c fold_unaryop ops - +Python/ceval.c - binary_ops - Python/codecs.c - Py_hexdigits - Python/codecs.c - ucnhash_capi - Python/codecs.c _PyCodecRegistry_Init methods - +Python/compile.c - NO_LABEL - +Python/compile.c - NO_LOCATION - Python/dynload_shlib.c - _PyImport_DynLoadFiletab - Python/dynload_stub.c - _PyImport_DynLoadFiletab - Python/frozen.c - aliases - @@ -1514,7 +497,10 @@ Python/pyhash.c - PyHash_Func - Python/pylifecycle.c - _C_LOCALE_WARNING - Python/pylifecycle.c - _PyOS_mystrnicmp_hack - Python/pylifecycle.c - _TARGET_LOCALES - +Python/pystate.c - initial - Python/specialize.c - adaptive_opcodes - Python/specialize.c - cache_requirements - Python/specialize.c - compare_masks - +Python/specialize.c - _PyOpcode_Adaptive - +Python/stdlib_module_names.h - _Py_stdlib_module_names - Python/sysmodule.c - whatstrings - diff --git a/Tools/clinic/clinic.py b/Tools/clinic/clinic.py index 53e29df8a8e40f..805bdcb4365450 100755 --- a/Tools/clinic/clinic.py +++ b/Tools/clinic/clinic.py @@ -22,7 +22,6 @@ import shlex import string import sys -import tempfile import textwrap import traceback import types @@ -536,6 +535,65 @@ def normalize_snippet(s, *, indent=0): return s +def declare_parser(f, *, hasformat=False): + """ + Generates the code template for a static local PyArg_Parser variable, + with an initializer. For core code (incl. builtin modules) the + kwtuple field is also statically initialized. Otherwise + it is initialized at runtime. + """ + if hasformat: + fname = '' + format_ = '.format = "{format_units}:{name}",' + else: + fname = '.fname = "{name}",' + format_ = '' + + num_keywords = len([ + p for p in f.parameters.values() + if not p.is_positional_only() and not p.is_vararg() + ]) + if num_keywords == 0: + declarations = """ + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) + #else + # define KWTUPLE NULL + #endif + """ + else: + declarations = """ + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS %d + static struct {{ + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + }} _kwtuple = {{ + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = {{ {keywords_py} }}, + }}; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + """ % num_keywords + + declarations += """ + static const char * const _keywords[] = {{{keywords_c} NULL}}; + static _PyArg_Parser _parser = {{ + .keywords = _keywords, + %s + .kwtuple = KWTUPLE, + }}; + #undef KWTUPLE + """ % (format_ or fname) + return normalize_snippet(declarations) + + def wrap_declarations(text, length=78): """ A simple-minded text wrapper for C function declarations. @@ -968,11 +1026,8 @@ def parser_body(prototype, *fields, declarations=''): flags = "METH_FASTCALL|METH_KEYWORDS" parser_prototype = parser_prototype_fastcall_keywords argname_fmt = 'args[%d]' - declarations = normalize_snippet(""" - static const char * const _keywords[] = {{{keywords} NULL}}; - static _PyArg_Parser _parser = {{NULL, _keywords, "{name}", 0}}; - PyObject *argsbuf[%s]; - """ % len(converters)) + declarations = declare_parser(f) + declarations += "\nPyObject *argsbuf[%s];" % len(converters) if has_optional_kw: pre_buffer = "0" if vararg != NO_VARARG else "nargs" declarations += "\nPy_ssize_t noptargs = %s + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - %d;" % (pre_buffer, min_pos + min_kw_only) @@ -987,13 +1042,10 @@ def parser_body(prototype, *fields, declarations=''): flags = "METH_VARARGS|METH_KEYWORDS" parser_prototype = parser_prototype_keyword argname_fmt = 'fastargs[%d]' - declarations = normalize_snippet(""" - static const char * const _keywords[] = {{{keywords} NULL}}; - static _PyArg_Parser _parser = {{NULL, _keywords, "{name}", 0}}; - PyObject *argsbuf[%s]; - PyObject * const *fastargs; - Py_ssize_t nargs = PyTuple_GET_SIZE(args); - """ % len(converters)) + declarations = declare_parser(f) + declarations += "\nPyObject *argsbuf[%s];" % len(converters) + declarations += "\nPyObject * const *fastargs;" + declarations += "\nPy_ssize_t nargs = PyTuple_GET_SIZE(args);" if has_optional_kw: declarations += "\nPy_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - %d;" % (min_pos + min_kw_only) parser_code = [normalize_snippet(""" @@ -1070,9 +1122,7 @@ def parser_body(prototype, *fields, declarations=''): if add_label: parser_code.append("%s:" % add_label) else: - declarations = ( - 'static const char * const _keywords[] = {{{keywords} NULL}};\n' - 'static _PyArg_Parser _parser = {{"{format_units}:{name}", _keywords, 0}};') + declarations = declare_parser(f, hasformat=True) if not new_or_init: parser_code = [normalize_snippet(""" if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser{parse_arguments_comma} @@ -1395,7 +1445,11 @@ def render_function(self, clinic, f): template_dict['declarations'] = format_escape("\n".join(data.declarations)) template_dict['initializers'] = "\n\n".join(data.initializers) template_dict['modifications'] = '\n\n'.join(data.modifications) - template_dict['keywords'] = ' '.join('"' + k + '",' for k in data.keywords) + template_dict['keywords_c'] = ' '.join('"' + k + '",' + for k in data.keywords) + keywords = [k for k in data.keywords if k] + template_dict['keywords_py'] = ' '.join('&_Py_ID(' + k + '),' + for k in keywords) template_dict['format_units'] = ''.join(data.format_units) template_dict['parse_arguments'] = ', '.join(data.parse_arguments) if data.parse_arguments: @@ -1713,7 +1767,7 @@ def __init__(self, language, f=None): self.language = language self.f = f or io.StringIO() - def print_block(self, block): + def print_block(self, block, *, core_includes=False): input = block.input output = block.output dsl_name = block.dsl_name @@ -1740,8 +1794,18 @@ def print_block(self, block): write(self.language.stop_line.format(dsl_name=dsl_name)) write("\n") + output = '' + if core_includes: + output += textwrap.dedent(""" + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + # include "pycore_gc.h" // PyGC_Head + # include "pycore_runtime.h" // _Py_ID() + #endif + + """) + input = ''.join(block.input) - output = ''.join(block.output) + output += ''.join(block.output) if output: if not output.endswith('\n'): output += '\n' @@ -2074,7 +2138,7 @@ def parse(self, input): block.input = 'preserve\n' printer_2 = BlockPrinter(self.language) - printer_2.print_block(block) + printer_2.print_block(block, core_includes=True) write_file(destination.filename, printer_2.f.getvalue()) continue text = printer.f.getvalue() @@ -3827,17 +3891,6 @@ def render(self, function, data): add_c_return_converter(CReturnConverter, 'object') -class NoneType_return_converter(CReturnConverter): - def render(self, function, data): - self.declare(data) - data.return_conversion.append(''' -if (_return_value != Py_None) { - goto exit; -} -return_value = Py_None; -Py_INCREF(Py_None); -'''.strip()) - class bool_return_converter(CReturnConverter): type = 'int' @@ -4121,7 +4174,7 @@ def directive_output(self, command_or_name, destination=''): self.block.output.append('\n') return - d = self.clinic.get_destination(destination) + d = self.clinic.get_destination_buffer(destination) if command_or_name == "everything": for name in list(fd): @@ -4711,9 +4764,14 @@ def bad_node(self, node): p = Parameter(parameter_name, kind, function=self.function, converter=converter, default=value, group=self.group) - if parameter_name in self.function.parameters: + names = [k.name for k in self.function.parameters.values()] + if parameter_name in names[1:]: fail("You can't have two parameters named " + repr(parameter_name) + "!") - self.function.parameters[parameter_name] = p + elif names and parameter_name == names[0] and c_name is None: + fail(f"Parameter '{parameter_name}' requires a custom C name") + + key = f"{parameter_name}_as_{c_name}" if c_name else parameter_name + self.function.parameters[key] = p def parse_converter(self, annotation): if (hasattr(ast, 'Constant') and diff --git a/Tools/gdb/libpython.py b/Tools/gdb/libpython.py index 80563ea59ec4b5..303409cb0077d1 100755 --- a/Tools/gdb/libpython.py +++ b/Tools/gdb/libpython.py @@ -478,17 +478,23 @@ def get_attr_dict(self): dictoffset = int_from_int(typeobj.field('tp_dictoffset')) if dictoffset != 0: if dictoffset < 0: - type_PyVarObject_ptr = gdb.lookup_type('PyVarObject').pointer() - tsize = int_from_int(self._gdbval.cast(type_PyVarObject_ptr)['ob_size']) - if tsize < 0: - tsize = -tsize - size = _PyObject_VAR_SIZE(typeobj, tsize) - dictoffset += size - assert dictoffset % _sizeof_void_p() == 0 + if int_from_int(typeobj.field('tp_flags')) & Py_TPFLAGS_MANAGED_DICT: + assert dictoffset == -1 + dictoffset = -3 * _sizeof_void_p() + else: + type_PyVarObject_ptr = gdb.lookup_type('PyVarObject').pointer() + tsize = int_from_int(self._gdbval.cast(type_PyVarObject_ptr)['ob_size']) + if tsize < 0: + tsize = -tsize + size = _PyObject_VAR_SIZE(typeobj, tsize) + dictoffset += size + assert dictoffset % _sizeof_void_p() == 0 dictptr = self._gdbval.cast(_type_char_ptr()) + dictoffset PyObjectPtrPtr = PyObjectPtr.get_gdb_type().pointer() dictptr = dictptr.cast(PyObjectPtrPtr) + if int(dictptr.dereference()) & 1: + return None return PyObjectPtr.from_pyobject_ptr(dictptr.dereference()) except RuntimeError: # Corrupt data somewhere; fail safe @@ -502,12 +508,14 @@ def get_keys_values(self): has_values = int_from_int(typeobj.field('tp_flags')) & Py_TPFLAGS_MANAGED_DICT if not has_values: return None - PyDictValuesPtrPtr = gdb.lookup_type("PyDictValues").pointer().pointer() - valuesptr = self._gdbval.cast(PyDictValuesPtrPtr) - 4 - values = valuesptr.dereference() - if int(values) == 0: + charptrptr_t = _type_char_ptr().pointer() + ptr = self._gdbval.cast(charptrptr_t) - 3 + char_ptr = ptr.dereference() + if (int(char_ptr) & 1) == 0: return None - values = values['values'] + char_ptr += 1 + values_ptr = char_ptr.cast(gdb.lookup_type("PyDictValues").pointer()) + values = values_ptr['values'] return PyKeysValuesPair(self.get_cached_keys(), values) def get_cached_keys(self): @@ -527,14 +535,15 @@ def proxyval(self, visited): return ProxyAlreadyVisited('<...>') visited.add(self.as_address()) - pyop_attr_dict = self.get_attr_dict() keys_values = self.get_keys_values() if keys_values: attr_dict = keys_values.proxyval(visited) - elif pyop_attr_dict: - attr_dict = pyop_attr_dict.proxyval(visited) else: - attr_dict = {} + pyop_attr_dict = self.get_attr_dict() + if pyop_attr_dict: + attr_dict = pyop_attr_dict.proxyval(visited) + else: + attr_dict = {} tp_name = self.safe_tp_name() # Class: @@ -1743,7 +1752,7 @@ def is_other_python_frame(self): def is_waiting_for_gil(self): '''Is this frame waiting on the GIL?''' - # This assumes the _POSIX_THREADS version of Python/ceval_gil.h: + # This assumes the _POSIX_THREADS version of Python/ceval_gil.c: name = self._gdbframe.name() if name: return (name == 'take_gil') diff --git a/Tools/msi/build.bat b/Tools/msi/build.bat index 425558f99d5910..8771d004211ea9 100644 --- a/Tools/msi/build.bat +++ b/Tools/msi/build.bat @@ -12,15 +12,16 @@ set BUILDPACK= set REBUILD= :CheckOpts -if "%~1" EQU "-h" goto Help -if "%~1" EQU "-x86" (set BUILDX86=1) && shift && goto CheckOpts -if "%~1" EQU "-x64" (set BUILDX64=1) && shift && goto CheckOpts -if "%~1" EQU "-arm64" (set BUILDARM64=1) && shift && goto CheckOpts -if "%~1" EQU "--doc" (set BUILDDOC=1) && shift && goto CheckOpts -if "%~1" EQU "--no-test-marker" (set BUILDTEST=) && shift && goto CheckOpts -if "%~1" EQU "--test-marker" (set BUILDTEST=--test-marker) && shift && goto CheckOpts -if "%~1" EQU "--pack" (set BUILDPACK=1) && shift && goto CheckOpts -if "%~1" EQU "-r" (set REBUILD=-r) && shift && goto CheckOpts +if "%~1" EQU "-h" goto Help +if /I "%~1" EQU "-x86" (set BUILDX86=1) && shift && goto CheckOpts +if /I "%~1" EQU "-Win32" (set BUILDX86=1) && shift && goto CheckOpts +if /I "%~1" EQU "-x64" (set BUILDX64=1) && shift && goto CheckOpts +if /I "%~1" EQU "-arm64" (set BUILDARM64=1) && shift && goto CheckOpts +if "%~1" EQU "--doc" (set BUILDDOC=1) && shift && goto CheckOpts +if "%~1" EQU "--no-test-marker" (set BUILDTEST=) && shift && goto CheckOpts +if "%~1" EQU "--test-marker" (set BUILDTEST=--test-marker) && shift && goto CheckOpts +if "%~1" EQU "--pack" (set BUILDPACK=1) && shift && goto CheckOpts +if "%~1" EQU "-r" (set REBUILD=-r) && shift && goto CheckOpts if not defined BUILDX86 if not defined BUILDX64 if not defined BUILDARM64 (set BUILDX86=1) && (set BUILDX64=1) diff --git a/Tools/msi/buildrelease.bat b/Tools/msi/buildrelease.bat index 0373c9f7b836a7..839f6204d9e0b2 100644 --- a/Tools/msi/buildrelease.bat +++ b/Tools/msi/buildrelease.bat @@ -12,7 +12,9 @@ rem rem The following substitutions will be applied to the release URI: rem Variable Description Example rem {arch} architecture amd64, win32 -set RELEASE_URI=https://www.python.org/{arch} +rem Do not change the scheme to https. Otherwise, releases built with this +rem script will not be upgradable to/from official releases of Python. +set RELEASE_URI=http://www.python.org/{arch} rem This is the URL that will be used to download installation files. rem The files available from the default URL *will* conflict with your @@ -44,27 +46,28 @@ set BUILDZIP=1 :CheckOpts -if "%1" EQU "-h" goto Help -if "%1" EQU "-c" (set CERTNAME=%~2) && shift && shift && goto CheckOpts -if "%1" EQU "--certificate" (set CERTNAME=%~2) && shift && shift && goto CheckOpts -if "%1" EQU "-o" (set OUTDIR=%~2) && shift && shift && goto CheckOpts -if "%1" EQU "--out" (set OUTDIR=%~2) && shift && shift && goto CheckOpts -if "%1" EQU "-D" (set SKIPDOC=1) && shift && goto CheckOpts -if "%1" EQU "--skip-doc" (set SKIPDOC=1) && shift && goto CheckOpts -if "%1" EQU "-B" (set SKIPBUILD=1) && shift && goto CheckOpts -if "%1" EQU "--skip-build" (set SKIPBUILD=1) && shift && goto CheckOpts -if "%1" EQU "--download" (set DOWNLOAD_URL=%~2) && shift && shift && goto CheckOpts -if "%1" EQU "--test" (set TESTTARGETDIR=%~2) && shift && shift && goto CheckOpts -if "%1" EQU "-b" (set TARGET=Build) && shift && goto CheckOpts -if "%1" EQU "--build" (set TARGET=Build) && shift && goto CheckOpts -if "%1" EQU "-x86" (set BUILDX86=1) && shift && goto CheckOpts -if "%1" EQU "-x64" (set BUILDX64=1) && shift && goto CheckOpts -if "%1" EQU "-arm64" (set BUILDARM64=1) && shift && goto CheckOpts -if "%1" EQU "--pgo" (set PGO=%~2) && shift && shift && goto CheckOpts -if "%1" EQU "--skip-pgo" (set PGO=) && shift && goto CheckOpts -if "%1" EQU "--skip-nuget" (set BUILDNUGET=) && shift && goto CheckOpts -if "%1" EQU "--skip-zip" (set BUILDZIP=) && shift && goto CheckOpts -if "%1" EQU "--skip-msi" (set BUILDMSI=) && shift && goto CheckOpts +if "%1" EQU "-h" goto Help +if "%1" EQU "-c" (set CERTNAME=%~2) && shift && shift && goto CheckOpts +if "%1" EQU "--certificate" (set CERTNAME=%~2) && shift && shift && goto CheckOpts +if "%1" EQU "-o" (set OUTDIR=%~2) && shift && shift && goto CheckOpts +if "%1" EQU "--out" (set OUTDIR=%~2) && shift && shift && goto CheckOpts +if "%1" EQU "-D" (set SKIPDOC=1) && shift && goto CheckOpts +if "%1" EQU "--skip-doc" (set SKIPDOC=1) && shift && goto CheckOpts +if "%1" EQU "-B" (set SKIPBUILD=1) && shift && goto CheckOpts +if "%1" EQU "--skip-build" (set SKIPBUILD=1) && shift && goto CheckOpts +if "%1" EQU "--download" (set DOWNLOAD_URL=%~2) && shift && shift && goto CheckOpts +if "%1" EQU "--test" (set TESTTARGETDIR=%~2) && shift && shift && goto CheckOpts +if "%1" EQU "-b" (set TARGET=Build) && shift && goto CheckOpts +if "%1" EQU "--build" (set TARGET=Build) && shift && goto CheckOpts +if /I "%1" EQU "-x86" (set BUILDX86=1) && shift && goto CheckOpts +if /I "%1" EQU "-Win32" (set BUILDX86=1) && shift && goto CheckOpts +if /I "%1" EQU "-x64" (set BUILDX64=1) && shift && goto CheckOpts +if /I "%1" EQU "-arm64" (set BUILDARM64=1) && shift && goto CheckOpts +if "%1" EQU "--pgo" (set PGO=%~2) && shift && shift && goto CheckOpts +if "%1" EQU "--skip-pgo" (set PGO=) && shift && goto CheckOpts +if "%1" EQU "--skip-nuget" (set BUILDNUGET=) && shift && goto CheckOpts +if "%1" EQU "--skip-zip" (set BUILDZIP=) && shift && goto CheckOpts +if "%1" EQU "--skip-msi" (set BUILDMSI=) && shift && goto CheckOpts if "%1" NEQ "" echo Invalid option: "%1" && exit /B 1 diff --git a/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp b/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp index fdc2a21d83d5f3..3a17ffbaa0b655 100644 --- a/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp +++ b/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp @@ -724,6 +724,8 @@ class PythonBootstrapperApplication : public CBalBaseBootstrapperApplication { auto hr = LoadAssociateFilesStateFromKey(_engine, fPerMachine ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER); if (hr == S_OK) { _engine->SetVariableNumeric(L"AssociateFiles", 1); + } else if (hr == S_FALSE) { + _engine->SetVariableNumeric(L"AssociateFiles", 0); } else if (FAILED(hr)) { BalLog(BOOTSTRAPPER_LOG_LEVEL_ERROR, "Failed to load AssociateFiles state: error code 0x%08X", hr); } @@ -817,6 +819,8 @@ class PythonBootstrapperApplication : public CBalBaseBootstrapperApplication { auto hr = LoadAssociateFilesStateFromKey(_engine, hkey); if (hr == S_OK) { _engine->SetVariableNumeric(L"AssociateFiles", 1); + } else if (hr == S_FALSE) { + _engine->SetVariableNumeric(L"AssociateFiles", 0); } else if (FAILED(hr)) { BalLog(BOOTSTRAPPER_LOG_LEVEL_ERROR, "Failed to load AssociateFiles state: error code 0x%08X", hr); } @@ -834,7 +838,17 @@ class PythonBootstrapperApplication : public CBalBaseBootstrapperApplication { LONGLONG includeLauncher; if (SUCCEEDED(BalGetNumericVariable(L"Include_launcher", &includeLauncher)) && includeLauncher == -1) { - _engine->SetVariableNumeric(L"Include_launcher", 1); + if (BOOTSTRAPPER_ACTION_LAYOUT == _command.action || + (BOOTSTRAPPER_ACTION_INSTALL == _command.action && !_upgrading)) { + // When installing/downloading, we want to include the launcher + // by default. + _engine->SetVariableNumeric(L"Include_launcher", 1); + } else { + // Any other action, if we didn't detect the MSI then we want to + // keep it excluded + _engine->SetVariableNumeric(L"Include_launcher", 0); + _engine->SetVariableNumeric(L"AssociateFiles", 0); + } } } @@ -2812,6 +2826,17 @@ class PythonBootstrapperApplication : public CBalBaseBootstrapperApplication { return ::CompareStringW(LOCALE_NEUTRAL, 0, platform, -1, L"x64", -1) == CSTR_EQUAL; } + static bool IsTargetPlatformARM64(__in IBootstrapperEngine* pEngine) { + WCHAR platform[8]; + DWORD platformLen = 8; + + if (FAILED(pEngine->GetVariableString(L"TargetPlatform", platform, &platformLen))) { + return S_FALSE; + } + + return ::CompareStringW(LOCALE_NEUTRAL, 0, platform, -1, L"ARM64", -1) == CSTR_EQUAL; + } + static HRESULT LoadOptionalFeatureStatesFromKey( __in IBootstrapperEngine* pEngine, __in HKEY hkHive, @@ -2820,7 +2845,7 @@ class PythonBootstrapperApplication : public CBalBaseBootstrapperApplication { HKEY hKey; LRESULT res; - if (IsTargetPlatformx64(pEngine)) { + if (IsTargetPlatformx64(pEngine) || IsTargetPlatformARM64(pEngine)) { res = RegOpenKeyExW(hkHive, subkey, 0, KEY_READ | KEY_WOW64_64KEY, &hKey); } else { res = RegOpenKeyExW(hkHive, subkey, 0, KEY_READ | KEY_WOW64_32KEY, &hKey); @@ -2859,7 +2884,7 @@ class PythonBootstrapperApplication : public CBalBaseBootstrapperApplication { BYTE buffer[1024]; DWORD bufferLen = sizeof(buffer); - if (IsTargetPlatformx64(pEngine)) { + if (IsTargetPlatformx64(pEngine) || IsTargetPlatformARM64(pEngine)) { res = RegOpenKeyExW(hkHive, subkey, 0, KEY_READ | KEY_WOW64_64KEY, &hKey); } else { res = RegOpenKeyExW(hkHive, subkey, 0, KEY_READ | KEY_WOW64_32KEY, &hKey); @@ -2917,12 +2942,7 @@ class PythonBootstrapperApplication : public CBalBaseBootstrapperApplication { HRESULT hr; HKEY hkHive; - // The launcher installation is separate from the Python install, so we - // check its state later. For now, assume we don't want the launcher or - // file associations, and if they have already been installed then - // loading the state will reactivate these settings. - pEngine->SetVariableNumeric(L"Include_launcher", 0); - pEngine->SetVariableNumeric(L"AssociateFiles", 0); + BalLog(BOOTSTRAPPER_LOG_LEVEL_STANDARD, "Loading state of optional features"); // Get the registry key from the bundle, to save having to duplicate it // in multiple places. diff --git a/Tools/msi/bundle/packagegroups/launcher.wxs b/Tools/msi/bundle/packagegroups/launcher.wxs index 7dae8ca7a68c18..a6922758f31f14 100644 --- a/Tools/msi/bundle/packagegroups/launcher.wxs +++ b/Tools/msi/bundle/packagegroups/launcher.wxs @@ -11,7 +11,11 @@ EnableFeatureSelection="yes" Permanent="yes" Visible="yes" - InstallCondition="(InstallAllUsers or InstallLauncherAllUsers) and Include_launcher and not DetectedLauncher" /> + InstallCondition="(InstallAllUsers or InstallLauncherAllUsers) and Include_launcher and not DetectedLauncher"> + <?if $(var.Platform)~="ARM64" ?> + <MsiProperty Name="ARM64_SHELLEXT" Value="1" /> + <?endif ?> + </MsiPackage> <MsiPackage Id="launcher_JustForMe" SourceFile="!(bindpath.build32)en-us\launcher.msi" @@ -21,7 +25,11 @@ EnableFeatureSelection="yes" Permanent="yes" Visible="yes" - InstallCondition="not (InstallAllUsers or InstallLauncherAllUsers) and Include_launcher and not DetectedLauncher" /> + InstallCondition="not (InstallAllUsers or InstallLauncherAllUsers) and Include_launcher and not DetectedLauncher"> + <?if $(var.Platform)~="ARM64" ?> + <MsiProperty Name="ARM64_SHELLEXT" Value="1" /> + <?endif ?> + </MsiPackage> </PackageGroup> </Fragment> </Wix> \ No newline at end of file diff --git a/Tools/msi/doc/doc.wxs b/Tools/msi/doc/doc.wxs index e80fff43418bb9..49798c752633fb 100644 --- a/Tools/msi/doc/doc.wxs +++ b/Tools/msi/doc/doc.wxs @@ -17,6 +17,11 @@ <RegistryValue Key="Help\Main Python Documentation" Type="string" Value="[#Doc_html_index.html]" KeyPath="yes" /> </RegistryKey> </Component> + + <Component Id="doc_folder" Directory="Doc" Guid="{22FD42DB-EC66-4B1C-B1FC-44E0CF7B2462}"> + <CreateFolder /> + <RemoveFolder Id="Remove_doc_folder" On="uninstall" /> + </Component> </Feature> <Feature Id="Shortcuts" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)"> <ComponentGroupRef Id="doc_html" /> diff --git a/Tools/msi/launcher/launcher.wxs b/Tools/msi/launcher/launcher.wxs index d001fe53ea3811..b83058c63bf6d9 100644 --- a/Tools/msi/launcher/launcher.wxs +++ b/Tools/msi/launcher/launcher.wxs @@ -3,13 +3,18 @@ <Product Id="*" Language="!(loc.LCID)" Name="!(loc.Title)" Version="$(var.Version)" Manufacturer="!(loc.Manufacturer)" UpgradeCode="$(var.UpgradeCode)"> <Package InstallerVersion="500" Compressed="yes" InstallScope="perUser" /> <MediaTemplate EmbedCab="yes" CompressionLevel="high" /> - + <Property Id="Suppress_TARGETDIR_Check" Value="1" /> <Icon Id="ARPIcon" SourceFile="!(bindpath.src)PC\icons\launcher.ico" /> <Property Id="ARPPRODUCTICON" Value="ARPIcon" /> <Property Id="ARPNOMODIFY" Value="1" /> <Property Id="DISABLEADVTSHORTCUTS" Value="1" /> + <Property Id="ARM64_SHELLEXT"> + <ComponentSearch Id="RegistrySearch_ARM64_SHELLEXT_Detected" + Guid="{C591963D-7FC6-4FCE-8642-5E01E6B8848F}" /> + </Property> + <Feature Id="DefaultFeature" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)"> <ComponentGroupRef Id="launcher_exe" Primary="yes" /> </Feature> @@ -17,14 +22,14 @@ <ComponentGroupRef Id="launcher_exe" /> <ComponentGroupRef Id="launcher_reg" /> </Feature> - + <Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="LauncherInstallDirectory" /> </Directory> - + <CustomAction Id="SetLauncherInstallDirectoryLM" Property="LauncherInstallDirectory" Value="[WindowsFolder]" /> <CustomAction Id="SetLauncherInstallDirectoryCU" Property="LauncherInstallDirectory" Value="[LocalAppDataFolder]Programs\Python\Launcher" /> - + <InstallExecuteSequence> <Custom Before="SetLauncherInstallDirectoryLM" Action="SetLauncherInstallDirectoryCU">NOT Installed AND NOT ALLUSERS=1</Custom> <Custom Before="CostFinalize" Action="SetLauncherInstallDirectoryLM">NOT Installed AND ALLUSERS=1</Custom> diff --git a/Tools/msi/launcher/launcher_files.wxs b/Tools/msi/launcher/launcher_files.wxs index 2c6c808137a6ff..d9a230e2d35ace 100644 --- a/Tools/msi/launcher/launcher_files.wxs +++ b/Tools/msi/launcher/launcher_files.wxs @@ -22,26 +22,23 @@ </Component> <Component Id="pyshellext_amd64.dll" Directory="LauncherInstallDirectory" Guid="{E7411EFD-F1DD-40EB-B0C7-4BA02BF3E75F}" Win64="yes"> - <Condition>VersionNT64</Condition> + <Condition>VersionNT64 AND NOT ARM64_SHELLEXT</Condition> <File Id="pyshellext_amd64.dll" Name="pyshellext.amd64.dll" Source="!(bindpath.Build64)\pyshellext.dll"> <Class Id="{BEA218D2-6950-497B-9434-61683EC065FE}" Advertise="no" Context="InprocServer32" ThreadingModel="apartment" /> </File> </Component> <Component Id="pyshellext_win32.dll" Directory="LauncherInstallDirectory" Guid="{C5936696-9A5A-45A0-A830-D172C3329282}"> - <Condition>NOT VersionNT64</Condition> + <Condition>NOT VersionNT64 AND NOT ARM64_SHELLEXT</Condition> <File Id="pyshellext_win32.dll" Name="pyshellext.win32.dll" Source="!(bindpath.Build32)\pyshellext.dll"> <Class Id="{BEA218D2-6950-497B-9434-61683EC065FE}" Advertise="no" Context="InprocServer32" ThreadingModel="apartment" /> </File> </Component> - <!-- - Currently unclear how to detect ARM64 device at this point. - In any case, the shell extension doesn't appear to work, so installing a non-functional - pyshellext_amd64.dll for a different platform isn't any worse. - <Component Id="pyshellext_arm64.dll" Directory="LauncherInstallDirectory" Guid="{C591963D-7FC6-4FCE-8642-5E01E6B8848F}"> + <Component Id="pyshellext_arm64.dll" Directory="LauncherInstallDirectory" Guid="{C591963D-7FC6-4FCE-8642-5E01E6B8848F}" Win64="yes"> + <Condition>ARM64_SHELLEXT</Condition> <File Id="pyshellext_arm64.dll" Name="pyshellext.arm64.dll" Source="!(bindpath.BuildARM64)\pyshellext.dll"> <Class Id="{BEA218D2-6950-497B-9434-61683EC065FE}" Advertise="no" Context="InprocServer32" ThreadingModel="apartment" /> </File> - </Component>--> + </Component> </ComponentGroup> </Fragment> </Wix> diff --git a/Tools/msi/lib/lib_files.wxs b/Tools/msi/lib/lib_files.wxs index 64c046e6dd9108..73c0231352f35c 100644 --- a/Tools/msi/lib/lib_files.wxs +++ b/Tools/msi/lib/lib_files.wxs @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> - <?define exts=pyexpat;select;unicodedata;winsound;_bz2;_elementtree;_socket;_ssl;_msi;_ctypes;_hashlib;_multiprocessing;_lzma;_decimal;_overlapped;_sqlite3;_asyncio;_queue;_uuid;_zoneinfo ?> + <?define exts=pyexpat;select;unicodedata;winsound;_bz2;_elementtree;_socket;_ssl;_msi;_ctypes;_hashlib;_multiprocessing;_lzma;_decimal;_overlapped;_sqlite3;_asyncio;_queue;_uuid;_wmi;_zoneinfo ?> <Fragment> <DirectoryRef Id="Lib_venv_scripts_nt" /> diff --git a/Tools/peg_generator/Makefile b/Tools/peg_generator/Makefile index d010f19d58892c..084da154919e3e 100644 --- a/Tools/peg_generator/Makefile +++ b/Tools/peg_generator/Makefile @@ -88,7 +88,7 @@ time_stdlib: $(CPYTHON) venv -d $(CPYTHON) \ $(TESTFLAGS) \ --exclude "*/bad*" \ - --exclude "*/lib2to3/tests/data/*" + --exclude "*/test/test_lib2to3/data/*" mypy: regen-metaparser $(MYPY) # For list of files, see mypy.ini diff --git a/Tools/peg_generator/pegen/grammar.py b/Tools/peg_generator/pegen/grammar.py index fa47b98201c0fd..03d60d01026f85 100644 --- a/Tools/peg_generator/pegen/grammar.py +++ b/Tools/peg_generator/pegen/grammar.py @@ -1,23 +1,16 @@ from __future__ import annotations -from abc import abstractmethod from typing import ( - TYPE_CHECKING, AbstractSet, Any, - Dict, Iterable, Iterator, List, Optional, - Set, Tuple, Union, ) -if TYPE_CHECKING: - from pegen.parser_generator import ParserGenerator - class GrammarError(Exception): pass diff --git a/Tools/peg_generator/scripts/benchmark.py b/Tools/peg_generator/scripts/benchmark.py index 4a063bf10034c8..053f8ef06d42c5 100644 --- a/Tools/peg_generator/scripts/benchmark.py +++ b/Tools/peg_generator/scripts/benchmark.py @@ -78,7 +78,7 @@ def run_benchmark_stdlib(subcommand): verbose=False, excluded_files=[ "*/bad*", - "*/lib2to3/tests/data/*", + "*/test/test_lib2to3/data/*", ], short=True, mode=modes[subcommand], diff --git a/Tools/peg_generator/scripts/grammar_grapher.py b/Tools/peg_generator/scripts/grammar_grapher.py index 4a41dfaa3da0ff..e5271a0e4810f9 100755 --- a/Tools/peg_generator/scripts/grammar_grapher.py +++ b/Tools/peg_generator/scripts/grammar_grapher.py @@ -30,7 +30,6 @@ Alt, Cut, Forced, - Grammar, Group, Leaf, Lookahead, diff --git a/Tools/peg_generator/scripts/test_parse_directory.py b/Tools/peg_generator/scripts/test_parse_directory.py index a5e26f0a0feda5..f5cf198be8dabf 100755 --- a/Tools/peg_generator/scripts/test_parse_directory.py +++ b/Tools/peg_generator/scripts/test_parse_directory.py @@ -5,7 +5,6 @@ import os import sys import time -import traceback import tokenize from glob import glob, escape from pathlib import PurePath @@ -13,7 +12,6 @@ from typing import List, Optional, Any, Tuple sys.path.insert(0, os.getcwd()) -from pegen.ast_dump import ast_dump from pegen.testutil import print_memstats SUCCESS = "\033[92m" diff --git a/Tools/peg_generator/scripts/test_pypi_packages.py b/Tools/peg_generator/scripts/test_pypi_packages.py index e2eaef9de26f73..01ccc3d21ef5a5 100755 --- a/Tools/peg_generator/scripts/test_pypi_packages.py +++ b/Tools/peg_generator/scripts/test_pypi_packages.py @@ -9,11 +9,10 @@ import pathlib import sys -from typing import Generator, Any +from typing import Generator sys.path.insert(0, ".") -from pegen import build from scripts import test_parse_directory HERE = pathlib.Path(__file__).resolve().parent diff --git a/Tools/scripts/2to3 b/Tools/scripts/2to3 index fbd4aa6b838234..f27d18ecf67086 100755 --- a/Tools/scripts/2to3 +++ b/Tools/scripts/2to3 @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 import sys from lib2to3.main import main diff --git a/Tools/scripts/check_extension_modules.py b/Tools/scripts/check_extension_modules.py new file mode 100644 index 00000000000000..59239c62e2ef34 --- /dev/null +++ b/Tools/scripts/check_extension_modules.py @@ -0,0 +1,484 @@ +"""Check extension modules + +The script checks shared and built-in extension modules. It verifies that the +modules have been built and that they can be imported successfully. Missing +modules and failed imports are reported to the user. Shared extension +files are renamed on failed import. + +Module information is parsed from several sources: + +- core modules hard-coded in Modules/config.c.in +- Windows-specific modules that are hard-coded in PC/config.c +- MODULE_{name}_STATE entries in Makefile (provided through sysconfig) +- Various makesetup files: + - $(srcdir)/Modules/Setup + - Modules/Setup.[local|bootstrap|stdlib] files, which are generated + from $(srcdir)/Modules/Setup.*.in files + +See --help for more information +""" +import argparse +import collections +import enum +import logging +import os +import pathlib +import re +import sys +import sysconfig +import warnings + +from importlib._bootstrap import _load as bootstrap_load +from importlib.machinery import BuiltinImporter, ExtensionFileLoader, ModuleSpec +from importlib.util import spec_from_file_location, spec_from_loader +from typing import Iterable + +SRC_DIR = pathlib.Path(__file__).parent.parent.parent + +# core modules, hard-coded in Modules/config.h.in +CORE_MODULES = { + "_ast", + "_imp", + "_string", + "_tokenize", + "_warnings", + "builtins", + "gc", + "marshal", + "sys", +} + +# Windows-only modules +WINDOWS_MODULES = { + "_msi", + "_overlapped", + "_testconsole", + "_winapi", + "msvcrt", + "nt", + "winreg", + "winsound", +} + + +logger = logging.getLogger(__name__) + +parser = argparse.ArgumentParser( + prog="check_extension_modules", + description=__doc__, + formatter_class=argparse.RawDescriptionHelpFormatter, +) + +parser.add_argument( + "--verbose", + action="store_true", + help="Verbose, report builtin, shared, and unavailable modules", +) + +parser.add_argument( + "--debug", + action="store_true", + help="Enable debug logging", +) + +parser.add_argument( + "--strict", + action=argparse.BooleanOptionalAction, + help=( + "Strict check, fail when a module is missing or fails to import" + "(default: no, unless env var PYTHONSTRICTEXTENSIONBUILD is set)" + ), + default=bool(os.environ.get("PYTHONSTRICTEXTENSIONBUILD")), +) + +parser.add_argument( + "--cross-compiling", + action=argparse.BooleanOptionalAction, + help=( + "Use cross-compiling checks " + "(default: no, unless env var _PYTHON_HOST_PLATFORM is set)." + ), + default="_PYTHON_HOST_PLATFORM" in os.environ, +) + +parser.add_argument( + "--list-module-names", + action="store_true", + help="Print a list of module names to stdout and exit", +) + + +class ModuleState(enum.Enum): + # Makefile state "yes" + BUILTIN = "builtin" + SHARED = "shared" + + DISABLED = "disabled" + MISSING = "missing" + NA = "n/a" + # disabled by Setup / makesetup rule + DISABLED_SETUP = "disabled_setup" + + def __bool__(self): + return self.value in {"builtin", "shared"} + + +ModuleInfo = collections.namedtuple("ModuleInfo", "name state") + + +class ModuleChecker: + pybuilddir_txt = "pybuilddir.txt" + + setup_files = ( + # see end of configure.ac + "Modules/Setup.local", + "Modules/Setup.stdlib", + "Modules/Setup.bootstrap", + SRC_DIR / "Modules/Setup", + ) + + def __init__(self, cross_compiling: bool = False, strict: bool = False): + self.cross_compiling = cross_compiling + self.strict_extensions_build = strict + self.ext_suffix = sysconfig.get_config_var("EXT_SUFFIX") + self.platform = sysconfig.get_platform() + self.builddir = self.get_builddir() + self.modules = self.get_modules() + + self.builtin_ok = [] + self.shared_ok = [] + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] + self.disabled_setup = [] + self.notavailable = [] + + def check(self): + for modinfo in self.modules: + logger.debug("Checking '%s' (%s)", modinfo.name, self.get_location(modinfo)) + if modinfo.state == ModuleState.DISABLED: + self.disabled_configure.append(modinfo) + elif modinfo.state == ModuleState.DISABLED_SETUP: + self.disabled_setup.append(modinfo) + elif modinfo.state == ModuleState.MISSING: + self.missing.append(modinfo) + elif modinfo.state == ModuleState.NA: + self.notavailable.append(modinfo) + else: + try: + if self.cross_compiling: + self.check_module_cross(modinfo) + else: + self.check_module_import(modinfo) + except (ImportError, FileNotFoundError): + self.rename_module(modinfo) + self.failed_on_import.append(modinfo) + else: + if modinfo.state == ModuleState.BUILTIN: + self.builtin_ok.append(modinfo) + else: + assert modinfo.state == ModuleState.SHARED + self.shared_ok.append(modinfo) + + def summary(self, *, verbose: bool = False): + longest = max([len(e.name) for e in self.modules], default=0) + + def print_three_column(modinfos: list[ModuleInfo]): + names = [modinfo.name for modinfo in modinfos] + names.sort(key=str.lower) + # guarantee zip() doesn't drop anything + while len(names) % 3: + names.append("") + for l, m, r in zip(names[::3], names[1::3], names[2::3]): + print("%-*s %-*s %-*s" % (longest, l, longest, m, longest, r)) + + if verbose and self.builtin_ok: + print("The following *built-in* modules have been successfully built:") + print_three_column(self.builtin_ok) + print() + + if verbose and self.shared_ok: + print("The following *shared* modules have been successfully built:") + print_three_column(self.shared_ok) + print() + + if self.disabled_configure: + print("The following modules are *disabled* in configure script:") + print_three_column(self.disabled_configure) + print() + + if self.disabled_setup: + print("The following modules are *disabled* in Modules/Setup files:") + print_three_column(self.disabled_setup) + print() + + if verbose and self.notavailable: + print( + f"The following modules are not available on platform '{self.platform}':" + ) + print_three_column(self.notavailable) + print() + + if self.missing: + print("The necessary bits to build these optional modules were not found:") + print_three_column(self.missing) + print("To find the necessary bits, look in configure.ac and config.log.") + print() + + if self.failed_on_import: + print( + "Following modules built successfully " + "but were removed because they could not be imported:" + ) + print_three_column(self.failed_on_import) + print() + + if any( + modinfo.name == "_ssl" for modinfo in self.missing + self.failed_on_import + ): + print("Could not build the ssl module!") + print("Python requires a OpenSSL 1.1.1 or newer") + if sysconfig.get_config_var("OPENSSL_LDFLAGS"): + print("Custom linker flags may require --with-openssl-rpath=auto") + print() + + disabled = len(self.disabled_configure) + len(self.disabled_setup) + print( + f"Checked {len(self.modules)} modules (" + f"{len(self.builtin_ok)} built-in, " + f"{len(self.shared_ok)} shared, " + f"{len(self.notavailable)} n/a on {self.platform}, " + f"{disabled} disabled, " + f"{len(self.missing)} missing, " + f"{len(self.failed_on_import)} failed on import)" + ) + + def check_strict_build(self): + """Fail if modules are missing and it's a strict build""" + if self.strict_extensions_build and (self.failed_on_import or self.missing): + raise RuntimeError("Failed to build some stdlib modules") + + def list_module_names(self, *, all: bool = False) -> set: + names = {modinfo.name for modinfo in self.modules} + if all: + names.update(WINDOWS_MODULES) + return names + + def get_builddir(self) -> pathlib.Path: + try: + with open(self.pybuilddir_txt, encoding="utf-8") as f: + builddir = f.read() + except FileNotFoundError: + logger.error("%s must be run from the top build directory", __file__) + raise + builddir = pathlib.Path(builddir) + logger.debug("%s: %s", self.pybuilddir_txt, builddir) + return builddir + + def get_modules(self) -> list[ModuleInfo]: + """Get module info from sysconfig and Modules/Setup* files""" + seen = set() + modules = [] + # parsing order is important, first entry wins + for modinfo in self.get_core_modules(): + modules.append(modinfo) + seen.add(modinfo.name) + for setup_file in self.setup_files: + for modinfo in self.parse_setup_file(setup_file): + if modinfo.name not in seen: + modules.append(modinfo) + seen.add(modinfo.name) + for modinfo in self.get_sysconfig_modules(): + if modinfo.name not in seen: + modules.append(modinfo) + seen.add(modinfo.name) + logger.debug("Found %i modules in total", len(modules)) + modules.sort() + return modules + + def get_core_modules(self) -> Iterable[ModuleInfo]: + """Get hard-coded core modules""" + for name in CORE_MODULES: + modinfo = ModuleInfo(name, ModuleState.BUILTIN) + logger.debug("Found core module %s", modinfo) + yield modinfo + + def get_sysconfig_modules(self) -> Iterable[ModuleInfo]: + """Get modules defined in Makefile through sysconfig + + MODBUILT_NAMES: modules in *static* block + MODSHARED_NAMES: modules in *shared* block + MODDISABLED_NAMES: modules in *disabled* block + """ + moddisabled = set(sysconfig.get_config_var("MODDISABLED_NAMES").split()) + if self.cross_compiling: + modbuiltin = set(sysconfig.get_config_var("MODBUILT_NAMES").split()) + else: + modbuiltin = set(sys.builtin_module_names) + + for key, value in sysconfig.get_config_vars().items(): + if not key.startswith("MODULE_") or not key.endswith("_STATE"): + continue + if value not in {"yes", "disabled", "missing", "n/a"}: + raise ValueError(f"Unsupported value '{value}' for {key}") + + modname = key[7:-6].lower() + if modname in moddisabled: + # Setup "*disabled*" rule + state = ModuleState.DISABLED_SETUP + elif value in {"disabled", "missing", "n/a"}: + state = ModuleState(value) + elif modname in modbuiltin: + assert value == "yes" + state = ModuleState.BUILTIN + else: + assert value == "yes" + state = ModuleState.SHARED + + modinfo = ModuleInfo(modname, state) + logger.debug("Found %s in Makefile", modinfo) + yield modinfo + + def parse_setup_file(self, setup_file: pathlib.Path) -> Iterable[ModuleInfo]: + """Parse a Modules/Setup file""" + assign_var = re.compile(r"^\w+=") # EGG_SPAM=foo + # default to static module + state = ModuleState.BUILTIN + logger.debug("Parsing Setup file %s", setup_file) + with open(setup_file, encoding="utf-8") as f: + for line in f: + line = line.strip() + if not line or line.startswith("#") or assign_var.match(line): + continue + match line.split(): + case ["*shared*"]: + state = ModuleState.SHARED + case ["*static*"]: + state = ModuleState.BUILTIN + case ["*disabled*"]: + state = ModuleState.DISABLED + case ["*noconfig*"]: + state = None + case [*items]: + if state == ModuleState.DISABLED: + # *disabled* can disable multiple modules per line + for item in items: + modinfo = ModuleInfo(item, state) + logger.debug("Found %s in %s", modinfo, setup_file) + yield modinfo + elif state in {ModuleState.SHARED, ModuleState.BUILTIN}: + # *shared* and *static*, first item is the name of the module. + modinfo = ModuleInfo(items[0], state) + logger.debug("Found %s in %s", modinfo, setup_file) + yield modinfo + + def get_spec(self, modinfo: ModuleInfo) -> ModuleSpec: + """Get ModuleSpec for builtin or extension module""" + if modinfo.state == ModuleState.SHARED: + location = os.fspath(self.get_location(modinfo)) + loader = ExtensionFileLoader(modinfo.name, location) + return spec_from_file_location(modinfo.name, location, loader=loader) + elif modinfo.state == ModuleState.BUILTIN: + return spec_from_loader(modinfo.name, loader=BuiltinImporter) + else: + raise ValueError(modinfo) + + def get_location(self, modinfo: ModuleInfo) -> pathlib.Path: + """Get shared library location in build directory""" + if modinfo.state == ModuleState.SHARED: + return self.builddir / f"{modinfo.name}{self.ext_suffix}" + else: + return None + + def _check_file(self, modinfo: ModuleInfo, spec: ModuleSpec): + """Check that the module file is present and not empty""" + if spec.loader is BuiltinImporter: + return + try: + st = os.stat(spec.origin) + except FileNotFoundError: + logger.error("%s (%s) is missing", modinfo.name, spec.origin) + raise + if not st.st_size: + raise ImportError(f"{spec.origin} is an empty file") + + def check_module_import(self, modinfo: ModuleInfo): + """Attempt to import module and report errors""" + spec = self.get_spec(modinfo) + self._check_file(modinfo, spec) + try: + with warnings.catch_warnings(): + # ignore deprecation warning from deprecated modules + warnings.simplefilter("ignore", DeprecationWarning) + bootstrap_load(spec) + except ImportError as e: + logger.error("%s failed to import: %s", modinfo.name, e) + raise + except Exception as e: + logger.exception("Importing extension '%s' failed!", modinfo.name) + raise + + def check_module_cross(self, modinfo: ModuleInfo): + """Sanity check for cross compiling""" + spec = self.get_spec(modinfo) + self._check_file(modinfo, spec) + + def rename_module(self, modinfo: ModuleInfo) -> None: + """Rename module file""" + if modinfo.state == ModuleState.BUILTIN: + logger.error("Cannot mark builtin module '%s' as failed!", modinfo.name) + return + + failed_name = f"{modinfo.name}_failed{self.ext_suffix}" + builddir_path = self.get_location(modinfo) + if builddir_path.is_symlink(): + symlink = builddir_path + module_path = builddir_path.resolve().relative_to(os.getcwd()) + failed_path = module_path.parent / failed_name + else: + symlink = None + module_path = builddir_path + failed_path = self.builddir / failed_name + + # remove old failed file + failed_path.unlink(missing_ok=True) + # remove symlink + if symlink is not None: + symlink.unlink(missing_ok=True) + # rename shared extension file + try: + module_path.rename(failed_path) + except FileNotFoundError: + logger.debug("Shared extension file '%s' does not exist.", module_path) + else: + logger.debug("Rename '%s' -> '%s'", module_path, failed_path) + + +def main(): + args = parser.parse_args() + if args.debug: + args.verbose = True + logging.basicConfig( + level=logging.DEBUG if args.debug else logging.INFO, + format="[%(levelname)s] %(message)s", + ) + + checker = ModuleChecker( + cross_compiling=args.cross_compiling, + strict=args.strict, + ) + if args.list_module_names: + names = checker.list_module_names(all=True) + for name in sorted(names): + print(name) + else: + checker.check() + checker.summary(verbose=args.verbose) + try: + checker.check_strict_build() + except RuntimeError as e: + parser.exit(1, f"\nError: {e}\n") + + +if __name__ == "__main__": + main() diff --git a/Tools/scripts/deepfreeze.py b/Tools/scripts/deepfreeze.py index ac2076708a156f..d9c6030fc17c07 100644 --- a/Tools/scripts/deepfreeze.py +++ b/Tools/scripts/deepfreeze.py @@ -1,7 +1,9 @@ """Deep freeze -The script is executed by _bootstrap_python interpreter. Shared library -extension modules are not available. +The script may be executed by _bootstrap_python interpreter. +Shared library extension modules are not available in that case. +On Windows, and in cross-compilation cases, it is executed +by Python 3.10, and 3.11 features are not available. """ import argparse import ast @@ -20,6 +22,9 @@ verbose = False identifiers, strings = get_identifiers_and_strings() +# This must be kept in sync with opcode.py +RESUME = 151 + def isprintable(b: bytes) -> bool: return all(0x20 <= c < 0x7f for c in b) @@ -115,6 +120,7 @@ def __init__(self, file: TextIO) -> None: self.write('#include "Python.h"') self.write('#include "internal/pycore_gc.h"') self.write('#include "internal/pycore_code.h"') + self.write('#include "internal/pycore_frame.h"') self.write('#include "internal/pycore_long.h"') self.write("") @@ -189,7 +195,6 @@ def generate_unicode(self, name: str, s: str) -> str: else: self.write("PyCompactUnicodeObject _compact;") self.write(f"{datatype} _data[{len(s)+1}];") - self.deallocs.append(f"_PyStaticUnicode_Dealloc((PyObject *)&{name});") with self.block(f"{name} =", ";"): if ascii: with self.block("._ascii =", ","): @@ -212,6 +217,9 @@ def generate_unicode(self, name: str, s: str) -> str: self.write(f".kind = {kind},") self.write(".compact = 1,") self.write(".ascii = 0,") + utf8 = s.encode('utf-8') + self.write(f'.utf8 = {make_string_literal(utf8)},') + self.write(f'.utf8_length = {len(utf8)},') with self.block(f"._data =", ","): for i in range(0, len(s), 16): data = s[i:i+16] @@ -250,9 +258,11 @@ def generate_code(self, name: str, code: types.CodeType) -> str: self.write(f".co_exceptiontable = {co_exceptiontable},") self.field(code, "co_flags") self.write(".co_warmup = QUICKENING_INITIAL_WARMUP_VALUE,") + self.write("._co_linearray_entry_size = 0,") self.field(code, "co_argcount") self.field(code, "co_posonlyargcount") self.field(code, "co_kwonlyargcount") + self.write(f".co_framesize = {code.co_stacksize + len(localsplusnames)} + FRAME_SPECIALS_SIZE,") self.field(code, "co_stacksize") self.field(code, "co_firstlineno") self.write(f".co_nlocalsplus = {len(localsplusnames)},") @@ -266,7 +276,13 @@ def generate_code(self, name: str, code: types.CodeType) -> str: self.write(f".co_name = {co_name},") self.write(f".co_qualname = {co_qualname},") self.write(f".co_linetable = {co_linetable},") + self.write(f"._co_code = NULL,") + self.write("._co_linearray = NULL,") self.write(f".co_code_adaptive = {co_code_adaptive},") + for i, op in enumerate(code.co_code[::2]): + if op == RESUME: + self.write(f"._co_firsttraceable = {i},") + break name_as_code = f"(PyCodeObject *)&{name}" self.deallocs.append(f"_PyStaticCode_Dealloc({name_as_code});") self.interns.append(f"_PyStaticCode_InternStrings({name_as_code})") @@ -345,7 +361,12 @@ def generate_complex(self, name: str, z: complex) -> str: return f"&{name}.ob_base" def generate_frozenset(self, name: str, fs: FrozenSet[object]) -> str: - ret = self.generate_tuple(name, tuple(sorted(fs))) + try: + fs = sorted(fs) + except TypeError: + # frozen set with incompatible types, fallback to repr() + fs = sorted(fs, key=repr) + ret = self.generate_tuple(name, tuple(fs)) self.write("// TODO: The above tuple should be a frozenset") return ret diff --git a/Tools/scripts/freeze_modules.py b/Tools/scripts/freeze_modules.py index dd208c78471943..aa1e4fe2ea0f44 100644 --- a/Tools/scripts/freeze_modules.py +++ b/Tools/scripts/freeze_modules.py @@ -8,7 +8,6 @@ import os import ntpath import posixpath -import sys import argparse from update_file import updating_file_with_tmpfile diff --git a/Tools/scripts/generate_global_objects.py b/Tools/scripts/generate_global_objects.py index 2180acd7ea94bc..0432bf50cf9483 100644 --- a/Tools/scripts/generate_global_objects.py +++ b/Tools/scripts/generate_global_objects.py @@ -14,6 +14,7 @@ 'DUNDER', # Objects/typeobject.c 'RDUNDER', # Objects/typeobject.c 'SPECIAL', # Objects/weakrefobject.c + 'NAME', # Objects/typeobject.c } IDENTIFIERS = [ # from ADD() Python/_warnings.c @@ -42,11 +43,27 @@ # from SLOT* in Objects/typeobject.c '__abs__', '__add__', + '__aiter__', '__and__', - '__divmod__', + '__anext__', + '__await__', + '__bool__', + '__call__', + '__contains__', + '__del__', + '__delattr__', + '__delete__', + '__delitem__', + '__eq__', '__float__', '__floordiv__', + '__ge__', + '__get__', + '__getattr__', + '__getattribute__', '__getitem__', + '__gt__', + '__hash__', '__iadd__', '__iand__', '__ifloordiv__', @@ -54,24 +71,34 @@ '__imatmul__', '__imod__', '__imul__', + '__index__', + '__init__', '__int__', '__invert__', '__ior__', + '__ipow__', '__irshift__', '__isub__', + '__iter__', '__itruediv__', '__ixor__', + '__le__', + '__len__', '__lshift__', + '__lt__', '__matmul__', '__mod__', '__mul__', + '__ne__', '__neg__', + '__new__', + '__next__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', - '__rdivmod__', + '__repr__', '__rfloordiv__', '__rlshift__', '__rmatmul__', @@ -84,10 +111,15 @@ '__rsub__', '__rtruediv__', '__rxor__', + '__set__', + '__setattr__', + '__setitem__', '__str__', '__sub__', '__truediv__', '__xor__', + '__divmod__', + '__rdivmod__', ] @@ -237,7 +269,7 @@ def generate_runtime_init(identifiers, strings): assert nsmallposints and nsmallnegints # Then target the runtime initializer. - filename = os.path.join(INTERNAL, 'pycore_runtime_init.h') + filename = os.path.join(INTERNAL, 'pycore_runtime_init_generated.h') # Read the non-generated part of the file. with open(filename) as infile: @@ -250,6 +282,7 @@ def generate_runtime_init(identifiers, strings): # Generate the file. with open_for_changes(filename, orig) as outfile: + immortal_objects = [] printer = Printer(outfile) printer.write(before) printer.write(START) @@ -259,31 +292,62 @@ def generate_runtime_init(identifiers, strings): with printer.block('.small_ints =', ','): for i in range(-nsmallnegints, nsmallposints): printer.write(f'_PyLong_DIGIT_INIT({i}),') + immortal_objects.append(f'(PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + {i}]') printer.write('') # Global bytes objects. printer.write('.bytes_empty = _PyBytes_SIMPLE_INIT(0, 0),') + immortal_objects.append(f'(PyObject *)&_Py_SINGLETON(bytes_empty)') with printer.block('.bytes_characters =', ','): for i in range(256): printer.write(f'_PyBytes_CHAR_INIT({i}),') + immortal_objects.append(f'(PyObject *)&_Py_SINGLETON(bytes_characters)[{i}]') printer.write('') # Global strings. with printer.block('.strings =', ','): with printer.block('.literals =', ','): for literal, name in sorted(strings.items(), key=lambda x: x[1]): printer.write(f'INIT_STR({name}, "{literal}"),') + immortal_objects.append(f'(PyObject *)&_Py_STR({name})') with printer.block('.identifiers =', ','): for name in sorted(identifiers): assert name.isidentifier(), name printer.write(f'INIT_ID({name}),') + immortal_objects.append(f'(PyObject *)&_Py_ID({name})') with printer.block('.ascii =', ','): for i in range(128): printer.write(f'_PyASCIIObject_INIT("\\x{i:02x}"),') + immortal_objects.append(f'(PyObject *)&_Py_SINGLETON(strings).ascii[{i}]') with printer.block('.latin1 =', ','): for i in range(128, 256): - printer.write(f'_PyUnicode_LATIN1_INIT("\\x{i:02x}"),') + utf8 = ['"'] + for c in chr(i).encode('utf-8'): + utf8.append(f"\\x{c:02x}") + utf8.append('"') + printer.write(f'_PyUnicode_LATIN1_INIT("\\x{i:02x}", {"".join(utf8)}),') + immortal_objects.append(f'(PyObject *)&_Py_SINGLETON(strings).latin1[{i} - 128]') printer.write('') with printer.block('.tuple_empty =', ','): printer.write('.ob_base = _PyVarObject_IMMORTAL_INIT(&PyTuple_Type, 0)') + immortal_objects.append(f'(PyObject *)&_Py_SINGLETON(tuple_empty)') + printer.write('') + printer.write("static inline void") + with printer.block("_PyUnicode_InitStaticStrings(void)"): + printer.write(f'PyObject *string;') + for i in sorted(identifiers): + # This use of _Py_ID() is ignored by iter_global_strings() + # since iter_files() ignores .h files. + printer.write(f'string = &_Py_ID({i});') + printer.write(f'PyUnicode_InternInPlace(&string);') + printer.write('') + printer.write('#ifdef Py_DEBUG') + printer.write("static inline void") + with printer.block("_PyStaticObjects_CheckRefcnt(void)"): + for i in immortal_objects: + with printer.block(f'if (Py_REFCNT({i}) < _PyObject_IMMORTAL_REFCNT)', ';'): + printer.write(f'_PyObject_Dump({i});') + printer.write(f'Py_FatalError("immortal object has less refcnt than ' + 'expected _PyObject_IMMORTAL_REFCNT");') + printer.write('#endif') printer.write(END) printer.write(after) @@ -314,7 +378,4 @@ def main() -> None: if __name__ == '__main__': - import argparse - parser = argparse.ArgumentParser() - args = parser.parse_args() - main(**vars(args)) + main() diff --git a/Tools/scripts/generate_opcode_h.py b/Tools/scripts/generate_opcode_h.py index e1f4f01ae1de0c..9ff264af9cdc2b 100644 --- a/Tools/scripts/generate_opcode_h.py +++ b/Tools/scripts/generate_opcode_h.py @@ -20,11 +20,8 @@ """.lstrip() footer = """ -#define HAS_ARG(op) ((op) >= HAVE_ARGUMENT) -/* Reserve some bytecodes for internal use in the compiler. - * The value of 240 is arbitrary. */ -#define IS_ARTIFICIAL(op) ((op) > 240) +#define IS_PSEUDO_OPCODE(op) (((op) >= MIN_PSEUDO_OPCODE) && ((op) <= MAX_PSEUDO_OPCODE)) #ifdef __cplusplus } @@ -63,8 +60,8 @@ def write_int_array_from_ops(name, ops, out): bits = 0 for op in ops: bits |= 1<<op - out.write(f"static const uint32_t {name}[8] = {{\n") - for i in range(8): + out.write(f"static const uint32_t {name}[9] = {{\n") + for i in range(9): out.write(f" {bits & UINT32_MASK}U,\n") bits >>= 32 assert bits == 0 @@ -81,10 +78,19 @@ def main(opcode_py, outfile='Include/opcode.h', internaloutfile='Include/interna exec(code, opcode) opmap = opcode['opmap'] opname = opcode['opname'] + hasarg = opcode['hasarg'] hasconst = opcode['hasconst'] hasjrel = opcode['hasjrel'] hasjabs = opcode['hasjabs'] - used = [ False ] * 256 + is_pseudo = opcode['is_pseudo'] + _pseudo_ops = opcode['_pseudo_ops'] + + HAVE_ARGUMENT = opcode["HAVE_ARGUMENT"] + MIN_PSEUDO_OPCODE = opcode["MIN_PSEUDO_OPCODE"] + MAX_PSEUDO_OPCODE = opcode["MAX_PSEUDO_OPCODE"] + + NUM_OPCODES = len(opname) + used = [ False ] * len(opname) next_op = 1 for name, op in opmap.items(): @@ -108,16 +114,23 @@ def main(opcode_py, outfile='Include/opcode.h', internaloutfile='Include/interna for name in opname: if name in opmap: - fobj.write(DEFINE.format(name, opmap[name])) - if name == 'POP_EXCEPT': # Special entry for HAVE_ARGUMENT - fobj.write(DEFINE.format("HAVE_ARGUMENT", opcode["HAVE_ARGUMENT"])) + op = opmap[name] + if op == HAVE_ARGUMENT: + fobj.write(DEFINE.format("HAVE_ARGUMENT", HAVE_ARGUMENT)) + if op == MIN_PSEUDO_OPCODE: + fobj.write(DEFINE.format("MIN_PSEUDO_OPCODE", MIN_PSEUDO_OPCODE)) + + fobj.write(DEFINE.format(name, op)) + + if op == MAX_PSEUDO_OPCODE: + fobj.write(DEFINE.format("MAX_PSEUDO_OPCODE", MAX_PSEUDO_OPCODE)) + for name, op in specialized_opmap.items(): fobj.write(DEFINE.format(name, op)) iobj.write("\nextern const uint8_t _PyOpcode_Caches[256];\n") iobj.write("\nextern const uint8_t _PyOpcode_Deopt[256];\n") - iobj.write("\nextern const uint8_t _PyOpcode_Original[256];\n") iobj.write("\n#ifdef NEED_OPCODE_TABLES\n") write_int_array_from_ops("_PyOpcode_RelativeJump", opcode['hasjrel'], iobj) write_int_array_from_ops("_PyOpcode_Jump", opcode['hasjrel'] + opcode['hasjabs'], iobj) @@ -129,8 +142,9 @@ def main(opcode_py, outfile='Include/opcode.h', internaloutfile='Include/interna iobj.write("};\n") deoptcodes = {} - for basic in opmap: - deoptcodes[basic] = basic + for basic, op in opmap.items(): + if not is_pseudo(op): + deoptcodes[basic] = basic for basic, family in opcode["_specializations"].items(): for specialized in family: deoptcodes[specialized] = basic @@ -138,18 +152,19 @@ def main(opcode_py, outfile='Include/opcode.h', internaloutfile='Include/interna for opt, deopt in sorted(deoptcodes.items()): iobj.write(f" [{opt}] = {deopt},\n") iobj.write("};\n") - iobj.write("\nconst uint8_t _PyOpcode_Original[256] = {\n") - for opt, deopt in sorted(deoptcodes.items()): - if opt.startswith("EXTENDED_ARG"): - deopt = "EXTENDED_ARG_QUICK" - iobj.write(f" [{opt}] = {deopt},\n") - iobj.write("};\n") iobj.write("#endif // NEED_OPCODE_TABLES\n") + fobj.write("\n") + fobj.write("#define HAS_ARG(op) ((((op) >= HAVE_ARGUMENT) && (!IS_PSEUDO_OPCODE(op)))\\") + for op in _pseudo_ops: + if opmap[op] in hasarg: + fobj.write(f"\n || ((op) == {op}) \\") + fobj.write("\n )\n") + fobj.write("\n") fobj.write("#define HAS_CONST(op) (false\\") for op in hasconst: - fobj.write(f"\n || ((op) == {op}) \\") + fobj.write(f"\n || ((op) == {opname[op]}) \\") fobj.write("\n )\n") fobj.write("\n") @@ -158,7 +173,7 @@ def main(opcode_py, outfile='Include/opcode.h', internaloutfile='Include/interna iobj.write("\n") iobj.write("#ifdef Py_DEBUG\n") - iobj.write("static const char *const _PyOpcode_OpName[256] = {\n") + iobj.write(f"static const char *const _PyOpcode_OpName[{NUM_OPCODES}] = {{\n") for op, name in enumerate(opname_including_specialized): if name[0] != "<": op = name diff --git a/Tools/scripts/generate_re_casefix.py b/Tools/scripts/generate_re_casefix.py index 00b048b5d716c3..625b0658d97d1b 100755 --- a/Tools/scripts/generate_re_casefix.py +++ b/Tools/scripts/generate_re_casefix.py @@ -2,7 +2,6 @@ # This script generates Lib/re/_casefix.py. import collections -import re import sys import unicodedata diff --git a/Tools/scripts/generate_stdlib_module_names.py b/Tools/scripts/generate_stdlib_module_names.py index fe1e429ebce175..92100bd06509a5 100644 --- a/Tools/scripts/generate_stdlib_module_names.py +++ b/Tools/scripts/generate_stdlib_module_names.py @@ -7,11 +7,11 @@ import sys import sysconfig +from check_extension_modules import ModuleChecker + SRC_DIR = os.path.dirname(os.path.dirname(os.path.dirname(__file__))) STDLIB_PATH = os.path.join(SRC_DIR, 'Lib') -MODULES_SETUP = os.path.join(SRC_DIR, 'Modules', 'Setup') -SETUP_PY = os.path.join(SRC_DIR, 'setup.py') IGNORE = { '__init__', @@ -35,30 +35,12 @@ '_xxtestfuzz', 'distutils.tests', 'idlelib.idle_test', - 'lib2to3.tests', 'test', 'xxlimited', 'xxlimited_35', 'xxsubtype', } -# Windows extension modules -WINDOWS_MODULES = ( - '_msi', - '_overlapped', - '_testconsole', - '_winapi', - 'msvcrt', - 'nt', - 'winreg', - 'winsound' -) - -# macOS extension modules -MACOS_MODULES = ( - '_scproxy', -) - # Pure Python modules (Lib/*.py) def list_python_modules(names): for filename in os.listdir(STDLIB_PATH): @@ -81,37 +63,11 @@ def list_packages(names): names.add(name) -# Extension modules built by setup.py -def list_setup_extensions(names): - cmd = [sys.executable, SETUP_PY, "-q", "build", "--list-module-names"] - output = subprocess.check_output(cmd) - output = output.decode("utf8") - extensions = output.splitlines() - names |= set(extensions) - - -# Built-in and extension modules built by Modules/Setup +# Built-in and extension modules built by Modules/Setup* +# includes Windows and macOS extensions. def list_modules_setup_extensions(names): - assign_var = re.compile("^[A-Z]+=") - - with open(MODULES_SETUP, encoding="utf-8") as modules_fp: - for line in modules_fp: - # Strip comment - line = line.partition("#")[0] - line = line.rstrip() - if not line: - continue - if assign_var.match(line): - # Ignore "VAR=VALUE" - continue - if line in ("*disabled*", "*shared*"): - continue - parts = line.split() - if len(parts) < 2: - continue - # "errno errnomodule.c" => write "errno" - name = parts[0] - names.add(name) + checker = ModuleChecker() + names.update(checker.list_module_names(all=True)) # List frozen modules of the PyImport_FrozenModules list (Python/frozen.c). @@ -135,9 +91,8 @@ def list_frozen(names): def list_modules(): - names = set(sys.builtin_module_names) | set(WINDOWS_MODULES) | set(MACOS_MODULES) + names = set(sys.builtin_module_names) list_modules_setup_extensions(names) - list_setup_extensions(names) list_packages(names) list_python_modules(names) list_frozen(names) diff --git a/Tools/scripts/idle3 b/Tools/scripts/idle3 index d7332bca48b8ae..2b4f1b5c957209 100755 --- a/Tools/scripts/idle3 +++ b/Tools/scripts/idle3 @@ -1,4 +1,4 @@ -#! /usr/bin/env python3 +#!/usr/bin/env python3 from idlelib.pyshell import main if __name__ == '__main__': diff --git a/Tools/scripts/parse_html5_entities.py b/Tools/scripts/parse_html5_entities.py index c011328b0101bf..1e5bdad2165548 100755 --- a/Tools/scripts/parse_html5_entities.py +++ b/Tools/scripts/parse_html5_entities.py @@ -2,10 +2,14 @@ """ Utility for parsing HTML5 entity definitions available from: - http://dev.w3.org/html5/spec/entities.json + https://html.spec.whatwg.org/entities.json + https://html.spec.whatwg.org/multipage/named-characters.html -Written by Ezio Melotti and Iuliia Proskurnia. +The page now contains the following note: + + "This list is static and will not be expanded or changed in the future." +Written by Ezio Melotti and Iuliia Proskurnia. """ import os @@ -14,7 +18,9 @@ from urllib.request import urlopen from html.entities import html5 -entities_url = 'http://dev.w3.org/html5/spec/entities.json' +PAGE_URL = 'https://html.spec.whatwg.org/multipage/named-characters.html' +ENTITIES_URL = 'https://html.spec.whatwg.org/entities.json' +HTML5_SECTION_START = '# HTML5 named character references' def get_json(url): """Download the json file from the url and returns a decoded object.""" @@ -62,9 +68,15 @@ def write_items(entities, file=sys.stdout): # be before their equivalent lowercase version. keys = sorted(entities.keys()) keys = sorted(keys, key=str.lower) + print(HTML5_SECTION_START, file=file) + print(f'# Generated by {sys.argv[0]!r}\n' + f'# from {ENTITIES_URL} and\n' + f'# {PAGE_URL}.\n' + f'# Map HTML5 named character references to the ' + f'equivalent Unicode character(s).', file=file) print('html5 = {', file=file) for name in keys: - print(' {!r}: {!a},'.format(name, entities[name]), file=file) + print(f' {name!r}: {entities[name]!a},', file=file) print('}', file=file) @@ -72,11 +84,8 @@ def write_items(entities, file=sys.stdout): # without args print a diff between html.entities.html5 and new_html5 # with --create print the new html5 dict # with --patch patch the Lib/html/entities.py file - new_html5 = create_dict(get_json(entities_url)) + new_html5 = create_dict(get_json(ENTITIES_URL)) if '--create' in sys.argv: - print('# map the HTML5 named character references to the ' - 'equivalent Unicode character(s)') - print('# Generated by {}. Do not edit manually.'.format(__file__)) write_items(new_html5) elif '--patch' in sys.argv: fname = 'Lib/html/entities.py' @@ -84,7 +93,7 @@ def write_items(entities, file=sys.stdout): with open(fname) as f1, open(temp_fname, 'w') as f2: skip = False for line in f1: - if line.startswith('html5 = {'): + if line.startswith(HTML5_SECTION_START): write_items(new_html5, file=f2) skip = True continue diff --git a/Tools/scripts/parseentities.py b/Tools/scripts/parseentities.py deleted file mode 100755 index 0229d3af86ba78..00000000000000 --- a/Tools/scripts/parseentities.py +++ /dev/null @@ -1,64 +0,0 @@ -#!/usr/bin/env python3 -""" Utility for parsing HTML entity definitions available from: - - http://www.w3.org/ as e.g. - http://www.w3.org/TR/REC-html40/HTMLlat1.ent - - Input is read from stdin, output is written to stdout in form of a - Python snippet defining a dictionary "entitydefs" mapping literal - entity name to character or numeric entity. - - Marc-Andre Lemburg, mal@lemburg.com, 1999. - Use as you like. NO WARRANTIES. - -""" -import re,sys - -entityRE = re.compile(r'<!ENTITY +(\w+) +CDATA +"([^"]+)" +-- +((?:.|\n)+?) *-->') - -def parse(text,pos=0,endpos=None): - - pos = 0 - if endpos is None: - endpos = len(text) - d = {} - while 1: - m = entityRE.search(text,pos,endpos) - if not m: - break - name,charcode,comment = m.groups() - d[name] = charcode,comment - pos = m.end() - return d - -def writefile(f,defs): - - f.write("entitydefs = {\n") - items = sorted(defs.items()) - for name, (charcode,comment) in items: - if charcode[:2] == '&#': - code = int(charcode[2:-1]) - if code < 256: - charcode = r"'\%o'" % code - else: - charcode = repr(charcode) - else: - charcode = repr(charcode) - comment = ' '.join(comment.split()) - f.write(" '%s':\t%s, \t# %s\n" % (name,charcode,comment)) - f.write('\n}\n') - -if __name__ == '__main__': - if len(sys.argv) > 1: - with open(sys.argv[1]) as infile: - text = infile.read() - else: - text = sys.stdin.read() - - defs = parse(text) - - if len(sys.argv) > 2: - with open(sys.argv[2],'w') as outfile: - writefile(outfile, defs) - else: - writefile(sys.stdout, defs) diff --git a/Tools/scripts/pathfix.py b/Tools/scripts/pathfix.py index d252321a21a172..f957b11547179d 100755 --- a/Tools/scripts/pathfix.py +++ b/Tools/scripts/pathfix.py @@ -27,7 +27,6 @@ # into a program for a different change to Python programs... import sys -import re import os from stat import * import getopt diff --git a/Tools/scripts/run_tests.py b/Tools/scripts/run_tests.py index 48feb3f778ee8d..445a34ae3e8eee 100644 --- a/Tools/scripts/run_tests.py +++ b/Tools/scripts/run_tests.py @@ -8,7 +8,9 @@ """ import os +import shlex import sys +import sysconfig import test.support @@ -19,15 +21,37 @@ def is_multiprocess_flag(arg): def is_resource_use_flag(arg): return arg.startswith('-u') or arg.startswith('--use') +def is_python_flag(arg): + return arg.startswith('-p') or arg.startswith('--python') + def main(regrtest_args): args = [sys.executable, '-u', # Unbuffered stdout and stderr '-W', 'default', # Warnings set to 'default' '-bb', # Warnings about bytes/bytearray - '-E', # Ignore environment variables ] + cross_compile = '_PYTHON_HOST_PLATFORM' in os.environ + if (hostrunner := os.environ.get("_PYTHON_HOSTRUNNER")) is None: + hostrunner = sysconfig.get_config_var("HOSTRUNNER") + if cross_compile: + # emulate -E, but keep PYTHONPATH + cross compile env vars, so + # test executable can load correct sysconfigdata file. + keep = { + '_PYTHON_PROJECT_BASE', + '_PYTHON_HOST_PLATFORM', + '_PYTHON_SYSCONFIGDATA_NAME', + 'PYTHONPATH' + } + environ = { + name: value for name, value in os.environ.items() + if not name.startswith(('PYTHON', '_PYTHON')) or name in keep + } + else: + environ = os.environ.copy() + args.append("-E") + # Allow user-specified interpreter options to override our defaults. args.extend(test.support.args_from_interpreter_flags()) @@ -38,16 +62,30 @@ def main(regrtest_args): if sys.platform == 'win32': args.append('-n') # Silence alerts under Windows if not any(is_multiprocess_flag(arg) for arg in regrtest_args): - args.extend(['-j', '0']) # Use all CPU cores + if cross_compile and hostrunner: + # For now use only two cores for cross-compiled builds; + # hostrunner can be expensive. + args.extend(['-j', '2']) + else: + args.extend(['-j', '0']) # Use all CPU cores if not any(is_resource_use_flag(arg) for arg in regrtest_args): args.extend(['-u', 'all,-largefile,-audio,-gui']) + + if cross_compile and hostrunner: + # If HOSTRUNNER is set and -p/--python option is not given, then + # use hostrunner to execute python binary for tests. + if not any(is_python_flag(arg) for arg in regrtest_args): + buildpython = sysconfig.get_config_var("BUILDPYTHON") + args.extend(["--python", f"{hostrunner} {buildpython}"]) + args.extend(regrtest_args) - print(' '.join(args)) + + print(shlex.join(args)) if sys.platform == 'win32': from subprocess import call sys.exit(call(args)) else: - os.execv(sys.executable, args) + os.execve(sys.executable, args, environ) if __name__ == '__main__': diff --git a/Tools/scripts/stable_abi.py b/Tools/scripts/stable_abi.py index f5a9f8d2dd617b..d557e102ea8e69 100755 --- a/Tools/scripts/stable_abi.py +++ b/Tools/scripts/stable_abi.py @@ -16,7 +16,6 @@ import textwrap import tomllib import difflib -import shutil import pprint import sys import os diff --git a/Tools/scripts/summarize_stats.py b/Tools/scripts/summarize_stats.py index 04d18790f0d792..2e8261a4755b99 100644 --- a/Tools/scripts/summarize_stats.py +++ b/Tools/scripts/summarize_stats.py @@ -7,7 +7,6 @@ import opcode from datetime import date import itertools -import argparse import sys if os.name == "nt": @@ -61,12 +60,13 @@ def print_specialization_stats(name, family_stats, defines): for key in ("specialization.success", "specialization.failure"): total_attempts += family_stats.get(key, 0) rows = [] - for key in ("specialization.success", "specialization.failure"): - label = key[len("specialization."):] - label = label[0].upper() + label[1:] - val = family_stats.get(key, 0) - rows.append((label, val, f"{100*val/total_attempts:0.1f}%")) - emit_table(("", "Count:", "Ratio:"), rows) + if total_attempts: + for key in ("specialization.success", "specialization.failure"): + label = key[len("specialization."):] + label = label[0].upper() + label[1:] + val = family_stats.get(key, 0) + rows.append((label, val, f"{100*val/total_attempts:0.1f}%")) + emit_table(("", "Count:", "Ratio:"), rows) total_failures = family_stats.get("specialization.failure", 0) failure_kinds = [ 0 ] * 30 for key in family_stats: @@ -188,6 +188,12 @@ def __exit__(*args): print("</details>") print() +def to_str(x): + if isinstance(x, int): + return format(x, ",d") + else: + return str(x) + def emit_table(header, rows): width = len(header) header_line = "|" @@ -203,8 +209,8 @@ def emit_table(header, rows): print(under_line) for row in rows: if width is not None and len(row) != width: - raise ValueError("Wrong number of elements in row '" + str(rows) + "'") - print("|", " | ".join(str(i) for i in row), "|") + raise ValueError("Wrong number of elements in row '" + str(row) + "'") + print("|", " | ".join(to_str(i) for i in row), "|") print() def emit_execution_counts(opcode_stats, total): @@ -251,6 +257,18 @@ def emit_specialization_overview(opcode_stats, total): ("Not specialized", not_specialized, f"{not_specialized*100/total:0.1f}%"), ("Specialized", specialized, f"{specialized*100/total:0.1f}%"), )) + for title, field in (("Deferred", "specialization.deferred"), ("Misses", "specialization.miss")): + total = 0 + counts = [] + for i, opcode_stat in enumerate(opcode_stats): + value = opcode_stat.get(field, 0) + counts.append((value, opname[i])) + total += value + counts.sort(reverse=True) + if total: + with Section(f"{title} by instruction", 3): + rows = [ (name, count, f"{100*count/total:0.1f}%") for (count, name) in counts[:10] ] + emit_table(("Name", "Count:", "Ratio:"), rows) def emit_call_stats(stats): stats_path = os.path.join(os.path.dirname(__file__), "../../Include/pystats.h") @@ -278,7 +296,7 @@ def emit_call_stats(stats): def emit_object_stats(stats): with Section("Object stats", summary="allocations, frees and dict materializatons"): total_materializations = stats.get("Object new values") - total_allocations = stats.get("Object allocations") + total_allocations = stats.get("Object allocations") + stats.get("Object allocations from freelist") total_increfs = stats.get("Object interpreter increfs") + stats.get("Object increfs") total_decrefs = stats.get("Object interpreter decrefs") + stats.get("Object decrefs") rows = [] diff --git a/Tools/scripts/verify_ensurepip_wheels.py b/Tools/scripts/verify_ensurepip_wheels.py new file mode 100755 index 00000000000000..044d1fd6b3cf2d --- /dev/null +++ b/Tools/scripts/verify_ensurepip_wheels.py @@ -0,0 +1,98 @@ +#! /usr/bin/env python3 + +""" +Compare checksums for wheels in :mod:`ensurepip` against the Cheeseshop. + +When GitHub Actions executes the script, output is formatted accordingly. +https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-a-notice-message +""" + +import hashlib +import json +import os +import re +from pathlib import Path +from urllib.request import urlopen + +PACKAGE_NAMES = ("pip", "setuptools") +ENSURE_PIP_ROOT = Path(__file__).parent.parent.parent / "Lib/ensurepip" +WHEEL_DIR = ENSURE_PIP_ROOT / "_bundled" +ENSURE_PIP_INIT_PY_TEXT = (ENSURE_PIP_ROOT / "__init__.py").read_text(encoding="utf-8") +GITHUB_ACTIONS = os.getenv("GITHUB_ACTIONS") == "true" + + +def print_notice(file_path: str, message: str) -> None: + if GITHUB_ACTIONS: + message = f"::notice file={file_path}::{message}" + print(message, end="\n\n") + + +def print_error(file_path: str, message: str) -> None: + if GITHUB_ACTIONS: + message = f"::error file={file_path}::{message}" + print(message, end="\n\n") + + +def verify_wheel(package_name: str) -> bool: + # Find the package on disk + package_path = next(WHEEL_DIR.glob(f"{package_name}*.whl"), None) + if not package_path: + print_error("", f"Could not find a {package_name} wheel on disk.") + return False + + print(f"Verifying checksum for {package_path}.") + + # Find the version of the package used by ensurepip + package_version_match = re.search( + f'_{package_name.upper()}_VERSION = "([^"]+)', ENSURE_PIP_INIT_PY_TEXT + ) + if not package_version_match: + print_error( + package_path, + f"No {package_name} version found in Lib/ensurepip/__init__.py.", + ) + return False + package_version = package_version_match[1] + + # Get the SHA 256 digest from the Cheeseshop + try: + raw_text = urlopen(f"https://pypi.org/pypi/{package_name}/json").read() + except (OSError, ValueError): + print_error(package_path, f"Could not fetch JSON metadata for {package_name}.") + return False + + release_files = json.loads(raw_text)["releases"][package_version] + for release_info in release_files: + if package_path.name != release_info["filename"]: + continue + expected_digest = release_info["digests"].get("sha256", "") + break + else: + print_error(package_path, f"No digest for {package_name} found from PyPI.") + return False + + # Compute the SHA 256 digest of the wheel on disk + actual_digest = hashlib.sha256(package_path.read_bytes()).hexdigest() + + print(f"Expected digest: {expected_digest}") + print(f"Actual digest: {actual_digest}") + + if actual_digest != expected_digest: + print_error( + package_path, f"Failed to verify the checksum of the {package_name} wheel." + ) + return False + + print_notice( + package_path, + f"Successfully verified the checksum of the {package_name} wheel.", + ) + return True + + +if __name__ == "__main__": + exit_status = 0 + for package_name in PACKAGE_NAMES: + if not verify_wheel(package_name): + exit_status = 1 + raise SystemExit(exit_status) diff --git a/Tools/ssl/multissltests.py b/Tools/ssl/multissltests.py index 82076808bfd372..d64b4f66f5192b 100755 --- a/Tools/ssl/multissltests.py +++ b/Tools/ssl/multissltests.py @@ -35,7 +35,6 @@ from urllib2 import urlopen, HTTPError import re import shutil -import string import subprocess import sys import tarfile @@ -47,8 +46,8 @@ ] OPENSSL_RECENT_VERSIONS = [ - "1.1.1n", - "3.0.2" + "1.1.1q", + "3.0.5" ] LIBRESSL_OLD_VERSIONS = [ @@ -359,7 +358,7 @@ def recompile_pymods(self): env["LD_RUN_PATH"] = self.lib_dir log.info("Rebuilding Python modules") - cmd = [sys.executable, os.path.join(PYTHONROOT, "setup.py"), "build"] + cmd = ["make", "sharedmods", "checksharedmods"] self._subprocess_call(cmd, env=env) self.check_imports() @@ -473,7 +472,7 @@ def main(): start = datetime.now() if args.steps in {'modules', 'tests'}: - for name in ['setup.py', 'Modules/_ssl.c']: + for name in ['Makefile.pre.in', 'Modules/_ssl.c']: if not os.path.isfile(os.path.join(PYTHONROOT, name)): parser.error( "Must be executed from CPython build dir" diff --git a/Tools/unicode/genmap_tchinese.py b/Tools/unicode/genmap_tchinese.py new file mode 100644 index 00000000000000..a416cf3d1faf9b --- /dev/null +++ b/Tools/unicode/genmap_tchinese.py @@ -0,0 +1,239 @@ +# +# genmap_tchinese.py: Traditional Chinese Codecs Map Generator +# +# Original Author: Hye-Shik Chang <perky@FreeBSD.org> +# +import os + +from genmap_support import * + + +# ranges for (lead byte, follower byte) +BIG5_C1 = (0xa1, 0xfe) +BIG5_C2 = (0x40, 0xfe) +BIG5HKSCS_C1 = (0x87, 0xfe) +BIG5HKSCS_C2 = (0x40, 0xfe) + +MAPPINGS_BIG5 = 'https://unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/OTHER/BIG5.TXT' +MAPPINGS_CP950 = 'https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT' + +HKSCS_VERSION = '2004' +# The files for HKSCS mappings are available under a restrictive license. +# Users of the script need to download the files from the HKSARG CCLI website: +MAPPINGS_HKSCS = f'https://www.ccli.gov.hk/en/archive/terms_hkscs-{HKSCS_VERSION}-big5-iso.html' + + +def bh2s(code): + return ((code >> 8) - 0x87) * (0xfe - 0x40 + 1) + ((code & 0xff) - 0x40) + + +def split_bytes(code): + """Split 0xABCD into 0xAB, 0xCD""" + return code >> 8, code & 0xff + + +def parse_hkscs_map(fo): + fo.seek(0, 0) + table = [] + for line in fo: + line = line.split('#', 1)[0].strip() + # We expect 4 columns in supported HKSCS files: + # [1999]: unsupported + # [2001]: unsupported + # [2004]: Big-5; iso10646-1:1993; iso10646-1:2000; iso10646:2003+amd1 + # [2008]: Big-5; iso10646-1:1993; iso10646-1:2000; iso10646:2003+amd6 + # [2016]: not supported here--uses a json file instead + # + # In both supported cases, we only need the first and last column: + # * Big-5 is a hex string (always 4 digits) + # * iso10646:2003 is either a hex string (4 or 5 digits) or a sequence + # of hex strings like: `<code_point1,code_point2>` + try: + hkscs_col, _, _, uni_col = line.split() + hkscs = int(hkscs_col, 16) + seq = tuple(int(cp, 16) for cp in uni_col.strip('<>').split(',')) + except ValueError: + continue + table.append((hkscs, seq)) + return table + + +def make_hkscs_map(table): + decode_map = {} + encode_map_bmp, encode_map_notbmp = {}, {} + is_bmp_map = {} + sequences = [] + beginnings = {} + single_cp_table = [] + # Determine multi-codepoint sequences, and sequence beginnings that encode + # multiple multibyte (i.e. Big-5) codes. + for mbcode, cp_seq in table: + cp, *_ = cp_seq + if len(cp_seq) == 1: + single_cp_table.append((mbcode, cp)) + else: + sequences.append((mbcode, cp_seq)) + beginnings.setdefault(cp, []).append(mbcode) + # Decode table only cares about single code points (no sequences) currently + for mbcode, cp in single_cp_table: + b1, b2 = split_bytes(mbcode) + decode_map.setdefault(b1, {}) + decode_map[b1][b2] = cp & 0xffff + # Encode table needs to mark code points beginning a sequence as tuples. + for cp, mbcodes in beginnings.items(): + plane = cp >> 16 + if plane == 0: + encode_map = encode_map_bmp + elif plane == 2: + encode_map = encode_map_notbmp + is_bmp_map[bh2s(mbcodes[0])] = 1 + else: + assert False, 'only plane 0 (BMP) and plane 2 (SIP) allowed' + if len(mbcodes) == 1: + encode_value = mbcodes[0] + else: + encode_value = tuple(mbcodes) + uni_b1, uni_b2 = split_bytes(cp & 0xffff) + encode_map.setdefault(uni_b1, {}) + encode_map[uni_b1][uni_b2] = encode_value + + return decode_map, encode_map_bmp, encode_map_notbmp, is_bmp_map + + +def load_big5_map(): + mapfile = open_mapping_file('python-mappings/BIG5.txt', MAPPINGS_BIG5) + with mapfile: + big5decmap = loadmap(mapfile) + # big5 mapping fix: use the cp950 mapping for these characters as the file + # provided by unicode.org doesn't define a mapping. See notes in BIG5.txt. + # Since U+5341, U+5345, U+FF0F, U+FF3C already have a big5 mapping, no + # roundtrip compatibility is guaranteed for those. + for m in """\ + 0xA15A 0x2574 + 0xA1C3 0xFFE3 + 0xA1C5 0x02CD + 0xA1FE 0xFF0F + 0xA240 0xFF3C + 0xA2CC 0x5341 + 0xA2CE 0x5345""".splitlines(): + bcode, ucode = list(map(eval, m.split())) + big5decmap[bcode >> 8][bcode & 0xff] = ucode + # encoding map + big5encmap = {} + for c1, m in list(big5decmap.items()): + for c2, code in list(m.items()): + big5encmap.setdefault(code >> 8, {}) + if code & 0xff not in big5encmap[code >> 8]: + big5encmap[code >> 8][code & 0xff] = c1 << 8 | c2 + # fix unicode->big5 priority for the above-mentioned duplicate characters + big5encmap[0xFF][0x0F] = 0xA241 + big5encmap[0xFF][0x3C] = 0xA242 + big5encmap[0x53][0x41] = 0xA451 + big5encmap[0x53][0x45] = 0xA4CA + + return big5decmap, big5encmap + + +def load_cp950_map(): + mapfile = open_mapping_file('python-mappings/CP950.TXT', MAPPINGS_CP950) + with mapfile: + cp950decmap = loadmap(mapfile) + cp950encmap = {} + for c1, m in list(cp950decmap.items()): + for c2, code in list(m.items()): + cp950encmap.setdefault(code >> 8, {}) + if code & 0xff not in cp950encmap[code >> 8]: + cp950encmap[code >> 8][code & 0xff] = c1 << 8 | c2 + # fix unicode->big5 duplicated mapping priority + cp950encmap[0x53][0x41] = 0xA451 + cp950encmap[0x53][0x45] = 0xA4CA + return cp950decmap, cp950encmap + + +def main_tw(): + big5decmap, big5encmap = load_big5_map() + cp950decmap, cp950encmap = load_cp950_map() + + # CP950 extends Big5, and the codec can use the Big5 lookup tables + # for most entries. So the CP950 tables should only include entries + # that are not in Big5: + for c1, m in list(cp950encmap.items()): + for c2, code in list(m.items()): + if (c1 in big5encmap and c2 in big5encmap[c1] + and big5encmap[c1][c2] == code): + del cp950encmap[c1][c2] + for c1, m in list(cp950decmap.items()): + for c2, code in list(m.items()): + if (c1 in big5decmap and c2 in big5decmap[c1] + and big5decmap[c1][c2] == code): + del cp950decmap[c1][c2] + + with open('mappings_tw.h', 'w') as fp: + print_autogen(fp, os.path.basename(__file__)) + write_big5_maps(fp, 'BIG5', 'big5', big5decmap, big5encmap) + write_big5_maps(fp, 'CP950', 'cp950ext', cp950decmap, cp950encmap) + + +def write_big5_maps(fp, display_name, table_name, decode_map, encode_map): + print(f'Generating {display_name} decode map...') + writer = DecodeMapWriter(fp, table_name, decode_map) + writer.update_decode_map(BIG5_C1, BIG5_C2) + writer.generate() + print(f'Generating {display_name} encode map...') + writer = EncodeMapWriter(fp, table_name, encode_map) + writer.generate() + + +class HintsWriter: + filler_class = BufferedFiller + + def __init__(self, fp, prefix, isbmpmap): + self.fp = fp + self.prefix = prefix + self.isbmpmap = isbmpmap + self.filler = self.filler_class() + + def fillhints(self, hintfrom, hintto): + name = f'{self.prefix}_phint_{hintfrom}' + self.fp.write(f'static const unsigned char {name}[] = {{\n') + for msbcode in range(hintfrom, hintto+1, 8): + v = 0 + for c in range(msbcode, msbcode+8): + v |= self.isbmpmap.get(c, 0) << (c - msbcode) + self.filler.write('%d,' % v) + self.filler.printout(self.fp) + self.fp.write('};\n\n') + + +def main_hkscs(): + filename = f'python-mappings/hkscs-{HKSCS_VERSION}-big5-iso.txt' + with open_mapping_file(filename, MAPPINGS_HKSCS) as f: + table = parse_hkscs_map(f) + hkscsdecmap, hkscsencmap_bmp, hkscsencmap_nonbmp, isbmpmap = ( + make_hkscs_map(table) + ) + with open('mappings_hk.h', 'w') as fp: + print('Generating BIG5HKSCS decode map...') + print_autogen(fp, os.path.basename(__file__)) + writer = DecodeMapWriter(fp, 'big5hkscs', hkscsdecmap) + writer.update_decode_map(BIG5HKSCS_C1, BIG5HKSCS_C2) + writer.generate() + + print('Generating BIG5HKSCS decode map Unicode plane hints...') + writer = HintsWriter(fp, 'big5hkscs', isbmpmap) + writer.fillhints(bh2s(0x8740), bh2s(0xa0fe)) + writer.fillhints(bh2s(0xc6a1), bh2s(0xc8fe)) + writer.fillhints(bh2s(0xf9d6), bh2s(0xfefe)) + + print('Generating BIG5HKSCS encode map (BMP)...') + writer = EncodeMapWriter(fp, 'big5hkscs_bmp', hkscsencmap_bmp) + writer.generate() + + print('Generating BIG5HKSCS encode map (non-BMP)...') + writer = EncodeMapWriter(fp, 'big5hkscs_nonbmp', hkscsencmap_nonbmp) + writer.generate() + + +if __name__ == '__main__': + main_tw() + main_hkscs() diff --git a/Tools/unicode/makeunicodedata.py b/Tools/unicode/makeunicodedata.py index 489484443aab6e..554392c1c5c0e1 100644 --- a/Tools/unicode/makeunicodedata.py +++ b/Tools/unicode/makeunicodedata.py @@ -44,7 +44,7 @@ # * Doc/library/stdtypes.rst, and # * Doc/library/unicodedata.rst # * Doc/reference/lexical_analysis.rst (two occurrences) -UNIDATA_VERSION = "14.0.0" +UNIDATA_VERSION = "15.0.0" UNICODE_DATA = "UnicodeData%s.txt" COMPOSITION_EXCLUSIONS = "CompositionExclusions%s.txt" EASTASIAN_WIDTH = "EastAsianWidth%s.txt" @@ -77,7 +77,8 @@ "PDF", "EN", "ES", "ET", "AN", "CS", "NSM", "BN", "B", "S", "WS", "ON", "LRI", "RLI", "FSI", "PDI" ] -EASTASIANWIDTH_NAMES = [ "F", "H", "W", "Na", "A", "N" ] +# "N" needs to be the first entry, see the comment in makeunicodedata +EASTASIANWIDTH_NAMES = [ "N", "H", "W", "Na", "A", "F" ] MANDATORY_LINE_BREAKS = [ "BK", "CR", "LF", "NL" ] @@ -103,11 +104,12 @@ ('3400', '4DBF'), ('4E00', '9FFF'), ('20000', '2A6DF'), - ('2A700', '2B738'), + ('2A700', '2B739'), ('2B740', '2B81D'), ('2B820', '2CEA1'), ('2CEB0', '2EBE0'), ('30000', '3134A'), + ('31350', '323AF'), ] @@ -135,6 +137,14 @@ def maketables(trace=0): def makeunicodedata(unicode, trace): + # the default value of east_asian_width is "N", for unassigned code points + # not mentioned in EastAsianWidth.txt + # in addition there are some reserved but unassigned code points in CJK + # ranges that are classified as "W". code points in private use areas + # have a width of "A". both of these have entries in + # EastAsianWidth.txt + # see https://unicode.org/reports/tr11/#Unassigned + assert EASTASIANWIDTH_NAMES[0] == "N" dummy = (0, 0, 0, 0, 0, 0) table = [dummy] cache = {0: dummy} @@ -160,15 +170,24 @@ def makeunicodedata(unicode, trace): category, combining, bidirectional, mirrored, eastasianwidth, normalizationquickcheck ) - # add entry to index and item tables - i = cache.get(item) - if i is None: - cache[item] = i = len(table) - table.append(item) - index[char] = i + elif unicode.widths[char] is not None: + # an unassigned but reserved character, with a known + # east_asian_width + eastasianwidth = EASTASIANWIDTH_NAMES.index(unicode.widths[char]) + item = (0, 0, 0, 0, eastasianwidth, 0) + else: + continue + + # add entry to index and item tables + i = cache.get(item) + if i is None: + cache[item] = i = len(table) + table.append(item) + index[char] = i # 2) decomposition data + decomp_data_cache = {} decomp_data = [0] decomp_prefix = [""] decomp_index = [0] * len(unicode.chars) @@ -207,12 +226,15 @@ def makeunicodedata(unicode, trace): comp_first[l] = 1 comp_last[r] = 1 comp_pairs.append((l,r,char)) - try: - i = decomp_data.index(decomp) - except ValueError: + key = tuple(decomp) + i = decomp_data_cache.get(key, -1) + if i == -1: i = len(decomp_data) decomp_data.extend(decomp) decomp_size = decomp_size + len(decomp) * 2 + decomp_data_cache[key] = i + else: + assert decomp_data[i:i+len(decomp)] == decomp else: i = 0 decomp_index[char] = i @@ -1081,6 +1103,7 @@ def __init__(self, version, cjk_check=True): for i in range(0, 0x110000): if table[i] is not None: table[i].east_asian_width = widths[i] + self.widths = widths for char, (p,) in UcdFile(DERIVED_CORE_PROPERTIES, version).expanded(): if table[char]: diff --git a/Tools/wasm/.editorconfig b/Tools/wasm/.editorconfig new file mode 100644 index 00000000000000..da1aa6acaccc7e --- /dev/null +++ b/Tools/wasm/.editorconfig @@ -0,0 +1,7 @@ +root = false # This extends the root .editorconfig + +[*.{html,js}] +trim_trailing_whitespace = true +insert_final_newline = true +indent_style = space +indent_size = 4 diff --git a/Tools/wasm/README.md b/Tools/wasm/README.md index 239eb90d0743c2..fe9a1dc99b30f4 100644 --- a/Tools/wasm/README.md +++ b/Tools/wasm/README.md @@ -1,11 +1,16 @@ # Python WebAssembly (WASM) build -**WARNING: WASM support is highly experimental! Lots of features are not working yet.** +**WARNING: WASM support is work-in-progress! Lots of features are not working yet.** This directory contains configuration and helpers to facilitate cross -compilation of CPython to WebAssembly (WASM). For now we support -*wasm32-emscripten* builds for modern browser and for *Node.js*. WASI -(*wasm32-wasi*) is work-in-progress +compilation of CPython to WebAssembly (WASM). Python supports Emscripten +(*wasm32-emscripten*) and WASI (*wasm32-wasi*) targets. Emscripten builds +run in modern browsers and JavaScript runtimes like *Node.js*. WASI builds +use WASM runtimes such as *wasmtime*. + +Users and developers are encouraged to use the script +`Tools/wasm/wasm_build.py`. The tool automates the build process and provides +assistance with installation of SDKs. ## wasm32-emscripten build @@ -17,22 +22,32 @@ access the file system directly. Cross compiling to the wasm32-emscripten platform needs the [Emscripten](https://emscripten.org/) SDK and a build Python interpreter. -Emscripten 3.1.8 or newer are recommended. All commands below are relative +Emscripten 3.1.19 or newer are recommended. All commands below are relative to a repository checkout. Christian Heimes maintains a container image with Emscripten SDK, Python build dependencies, WASI-SDK, wasmtime, and several additional tools. +From within your local CPython repo clone, run one of the following commands: + ``` # Fedora, RHEL, CentOS -podman run --rm -ti -v $(pwd):/python-wasm/cpython:Z quay.io/tiran/cpythonbuild:emsdk3 +podman run --rm -ti -v $(pwd):/python-wasm/cpython:Z -w /python-wasm/cpython quay.io/tiran/cpythonbuild:emsdk3 # other -docker run --rm -ti -v $(pwd):/python-wasm/cpython quay.io/tiran/cpythonbuild:emsdk3 +docker run --rm -ti -v $(pwd):/python-wasm/cpython -w /python-wasm/cpython quay.io/tiran/cpythonbuild:emsdk3 ``` ### Compile a build Python interpreter +From within the container, run the following command: + +```shell +./Tools/wasm/wasm_build.py build +``` + +The command is roughly equivalent to: + ```shell mkdir -p builddir/build pushd builddir/build @@ -41,13 +56,13 @@ make -j$(nproc) popd ``` -### Fetch and build additional emscripten ports +### Cross-compile to wasm32-emscripten for browser ```shell -embuilder build zlib bzip2 +./Tools/wasm/wasm_build.py emscripten-browser ``` -### Cross compile to wasm32-emscripten for browser +The command is roughly equivalent to: ```shell mkdir -p builddir/emscripten-browser @@ -65,12 +80,9 @@ popd ``` Serve `python.html` with a local webserver and open the file in a browser. - -```shell -emrun builddir/emscripten-browser/python.html -``` - -or +Python comes with a minimal web server script that sets necessary HTTP +headers like COOP, COEP, and mimetypes. Run the script outside the container +and from the root of the CPython checkout. ```shell ./Tools/wasm/wasm_webserver.py @@ -80,17 +92,25 @@ and open http://localhost:8000/builddir/emscripten-browser/python.html . This directory structure enables the *C/C++ DevTools Support (DWARF)* to load C and header files with debug builds. + ### Cross compile to wasm32-emscripten for node ```shell -mkdir -p builddir/emscripten-node -pushd builddir/emscripten-node +./Tools/wasm/wasm_build.py emscripten-browser-dl +``` + +The command is roughly equivalent to: + +```shell +mkdir -p builddir/emscripten-node-dl +pushd builddir/emscripten-node-dl CONFIG_SITE=../../Tools/wasm/config.site-wasm32-emscripten \ emconfigure ../../configure -C \ --host=wasm32-unknown-emscripten \ --build=$(../../config.guess) \ --with-emscripten-target=node \ + --enable-wasm-dynamic-linking \ --with-build-python=$(pwd)/../build/python emmake make -j$(nproc) @@ -98,9 +118,11 @@ popd ``` ```shell -node --experimental-wasm-threads --experimental-wasm-bulk-memory builddir/emscripten-node/python.js +node --experimental-wasm-threads --experimental-wasm-bulk-memory --experimental-wasm-bigint builddir/emscripten-node-dl/python.js ``` +(``--experimental-wasm-bigint`` is not needed with recent NodeJS versions) + # wasm32-emscripten limitations and issues Emscripten before 3.1.8 has known bugs that can cause memory corruption and @@ -163,7 +185,7 @@ functions. - Heap memory and stack size are limited. Recursion or extensive memory consumption can crash Python. - Most stdlib modules with a dependency on external libraries are missing, - e.g. ``ctypes``, ``readline``, ``sqlite3``, ``ssl``, and more. + e.g. ``ctypes``, ``readline``, ``ssl``, and more. - Shared extension modules are not implemented yet. All extension modules are statically linked into the main binary. The experimental configure option ``--enable-wasm-dynamic-linking`` enables dynamic extensions @@ -173,6 +195,8 @@ functions. [bpo-46390](https://bugs.python.org/issue46390). - Python's object allocator ``obmalloc`` is disabled by default. - ``ensurepip`` is not available. +- Some ``ctypes`` features like ``c_longlong`` and ``c_longdouble`` may need + NodeJS option ``--experimental-wasm-bigint``. ## wasm32-emscripten in browsers @@ -193,6 +217,15 @@ Node builds use ``NODERAWFS``. - Node RawFS allows direct access to the host file system without need to perform ``FS.mount()`` call. +## wasm64-emscripten + +- wasm64 requires recent NodeJS and ``--experimental-wasm-memory64``. +- ``EM_JS`` functions must return ``BigInt()``. +- ``Py_BuildValue()`` format strings must match size of types. Confusing 32 + and 64 bits types leads to memory corruption, see + [gh-95876](https://github.com/python/cpython/issues/95876) and + [gh-95878](https://github.com/python/cpython/issues/95878). + # Hosting Python WASM builds The simple REPL terminal uses SharedArrayBuffer. For security reasons @@ -220,9 +253,33 @@ AddType application/wasm wasm # WASI (wasm32-wasi) -WASI builds require [WASI SDK](https://github.com/WebAssembly/wasi-sdk) 15.0+ -and currently [wasix](https://github.com/singlestore-labs/wasix) for POSIX -compatibility stubs. +WASI builds require [WASI SDK](https://github.com/WebAssembly/wasi-sdk) 16.0+. + +## Cross-compile to wasm32-wasi + +The script ``wasi-env`` sets necessary compiler and linker flags as well as +``pkg-config`` overrides. The script assumes that WASI-SDK is installed in +``/opt/wasi-sdk`` or ``$WASI_SDK_PATH``. + +```shell +./Tools/wasm/wasm_build.py wasi +``` + +The command is roughly equivalent to: + +```shell +mkdir -p builddir/wasi +pushd builddir/wasi + +CONFIG_SITE=../../Tools/wasm/config.site-wasm32-wasi \ + ../../Tools/wasm/wasi-env ../../configure -C \ + --host=wasm32-unknown-wasi \ + --build=$(../../config.guess) \ + --with-build-python=$(pwd)/../build/python + +make -j$(nproc) +popd +``` ## WASI limitations and issues (WASI SDK 15.0) @@ -235,15 +292,30 @@ are: call read/write/accept on a file descriptor that is passed into the process. - ``socket.gethostname()`` and host name resolution APIs like ``socket.gethostbyname()`` are not implemented and always fail. +- ``open(2)`` checks flags more strictly. Caller must pass either + ``O_RDONLY``, ``O_RDWR``, or ``O_WDONLY`` to ``os.open``. Directory file + descriptors must be created with flags ``O_RDONLY | O_DIRECTORY``. - ``chmod(2)`` is not available. It's not possible to modify file permissions, yet. A future version of WASI may provide a limited ``set_permissions`` API. +- User/group related features like ``os.chown()``, ``os.getuid``, etc. are + stubs or fail with ``ENOTSUP``. - File locking (``fcntl``) is not available. - ``os.pipe()``, ``os.mkfifo()``, and ``os.mknod()`` are not supported. - ``process_time`` does not work as expected because it's implemented using wall clock. -- ``os.umask`` is a stub. +- ``os.umask()`` is a stub. - ``sys.executable`` is empty. - ``/dev/null`` / ``os.devnull`` may not be available. +- ``os.utime*()`` is buggy in WASM SDK 15.0, see + [utimensat() with timespec=NULL sets wrong time](https://github.com/bytecodealliance/wasmtime/issues/4184) +- ``os.symlink()`` fails with ``PermissionError`` when attempting to create a + symlink with an absolute path with wasmtime 0.36.0. The wasmtime runtime + uses ``openat2(2)`` syscall with flag ``RESOLVE_BENEATH`` to open files. + The flag causes the syscall to reject symlinks with absolute paths. +- ``os.curdir`` (aka ``.``) seems to behave differently, which breaks some + ``importlib`` tests that add ``.`` to ``sys.path`` and indirectly + ``sys.path_importer_cache``. +- WASI runtime environments may not provide a dedicated temp directory. # Detect WebAssembly builds @@ -269,26 +341,46 @@ if os.name == "posix": ```python >>> import os, sys >>> os.uname() -posix.uname_result(sysname='Emscripten', nodename='emscripten', release='1.0', version='#1', machine='wasm32') +posix.uname_result( + sysname='Emscripten', + nodename='emscripten', + release='3.1.19', + version='#1', + machine='wasm32' +) >>> os.name 'posix' >>> sys.platform 'emscripten' >>> sys._emscripten_info sys._emscripten_info( - emscripten_version=(3, 1, 8), - runtime='Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:99.0) Gecko/20100101 Firefox/99.0', + emscripten_version=(3, 1, 10), + runtime='Mozilla/5.0 (X11; Linux x86_64; rv:104.0) Gecko/20100101 Firefox/104.0', pthreads=False, shared_memory=False ) +``` + +```python >>> sys._emscripten_info -sys._emscripten_info(emscripten_version=(3, 1, 8), runtime='Node.js v14.18.2', pthreads=True, shared_memory=True) +sys._emscripten_info( + emscripten_version=(3, 1, 19), + runtime='Node.js v14.18.2', + pthreads=True, + shared_memory=True +) ``` ```python >>> import os, sys >>> os.uname() -posix.uname_result(sysname='wasi', nodename='(none)', release='0.0.0', version='0.0.0', machine='wasm32') +posix.uname_result( + sysname='wasi', + nodename='(none)', + release='0.0.0', + version='0.0.0', + machine='wasm32' +) >>> os.name 'posix' >>> sys.platform @@ -323,3 +415,90 @@ Feature detection flags: * ``__wasm_bulk_memory__`` * ``__wasm_atomics__`` * ``__wasm_mutable_globals__`` + +## Install SDKs and dependencies manually + +In some cases (e.g. build bots) you may prefer to install build dependencies +directly on the system instead of using the container image. Total disk size +of SDKs and cached libraries is about 1.6 GB. + +### Install OS dependencies + +```shell +# Debian/Ubuntu +apt update +apt install -y git make xz-utils bzip2 curl python3-minimal ccache +``` + +```shell +# Fedora +dnf install -y git make xz bzip2 which ccache +``` + +### Install [Emscripten SDK](https://emscripten.org/docs/getting_started/downloads.html) + +**NOTE**: Follow the on-screen instructions how to add the SDK to ``PATH``. + +```shell +git clone https://github.com/emscripten-core/emsdk.git /opt/emsdk +/opt/emsdk/emsdk install latest +/opt/emsdk/emsdk activate latest +``` + +### Optionally: enable ccache for EMSDK + +The ``EM_COMPILER_WRAPPER`` must be set after the EMSDK environment is +sourced. Otherwise the source script removes the environment variable. + +``` +. /opt/emsdk/emsdk_env.sh +EM_COMPILER_WRAPPER=ccache +``` + +### Optionally: pre-build and cache static libraries + +Emscripten SDK provides static builds of core libraries without PIC +(position-independent code). Python builds with ``dlopen`` support require +PIC. To populate the build cache, run: + +```shell +. /opt/emsdk/emsdk_env.sh +embuilder build zlib bzip2 MINIMAL_PIC +embuilder build --pic zlib bzip2 MINIMAL_PIC +``` + +### Install [WASI-SDK](https://github.com/WebAssembly/wasi-sdk) + +**NOTE**: WASI-SDK's clang may show a warning on Fedora: +``/lib64/libtinfo.so.6: no version information available``, +[RHBZ#1875587](https://bugzilla.redhat.com/show_bug.cgi?id=1875587). The +warning can be ignored. + +```shell +export WASI_VERSION=16 +export WASI_VERSION_FULL=${WASI_VERSION}.0 +curl -sSf -L -O https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_VERSION}/wasi-sdk-${WASI_VERSION_FULL}-linux.tar.gz +mkdir -p /opt/wasi-sdk +tar --strip-components=1 -C /opt/wasi-sdk -xvf wasi-sdk-${WASI_VERSION_FULL}-linux.tar.gz +rm -f wasi-sdk-${WASI_VERSION_FULL}-linux.tar.gz +``` + +### Install [wasmtime](https://github.com/bytecodealliance/wasmtime) WASI runtime + +wasmtime 0.38 or newer is required. + +```shell +curl -sSf -L -o ~/install-wasmtime.sh https://wasmtime.dev/install.sh +chmod +x ~/install-wasmtime.sh +~/install-wasmtime.sh --version v0.38.0 +ln -srf -t /usr/local/bin/ ~/.wasmtime/bin/wasmtime +``` + + +### WASI debugging + +* ``wasmtime run -g`` generates debugging symbols for gdb and lldb. The + feature is currently broken, see + https://github.com/bytecodealliance/wasmtime/issues/4669 . +* The environment variable ``RUST_LOG=wasi_common`` enables debug and + trace logging. diff --git a/Tools/wasm/config.site-wasm32-emscripten b/Tools/wasm/config.site-wasm32-emscripten index 33636648eaa520..b695a7bf8f04da 100644 --- a/Tools/wasm/config.site-wasm32-emscripten +++ b/Tools/wasm/config.site-wasm32-emscripten @@ -43,6 +43,17 @@ ac_cv_func_symlinkat=no ac_cv_func_lchmod=no ac_cv_func_lchown=no +# geteuid / getegid are stubs and always return 0 (root). The stub breaks +# code that assume effective user root has special permissions. +ac_cv_func_geteuid=no +ac_cv_func_getegid=no +ac_cv_func_seteuid=no +ac_cv_func_setegid=no +ac_cv_func_getresuid=no +ac_cv_func_getresgid=no +ac_cv_func_setresuid=no +ac_cv_func_setresgid=no + # Syscalls not implemented in emscripten # [Errno 52] Function not implemented ac_cv_func_preadv2=no @@ -89,5 +100,8 @@ ac_cv_func_setresgid=no ac_cv_func_link=no ac_cv_func_linkat=no +# Emscripten's faccessat does not accept AT_* flags. +ac_cv_func_faccessat=no + # alarm signal is not delivered, may need a callback into the event loop? ac_cv_func_alarm=no diff --git a/Tools/wasm/config.site-wasm32-wasi b/Tools/wasm/config.site-wasm32-wasi index ee3fc830e3d8a3..893a0d132cda59 100644 --- a/Tools/wasm/config.site-wasm32-wasi +++ b/Tools/wasm/config.site-wasm32-wasi @@ -26,15 +26,17 @@ ac_cv_func_mkfifo=no ac_cv_func_mkfifoat=no ac_cv_func_mknod=no ac_cv_func_mknodat=no +ac_cv_func_makedev=no # fdopendir() fails on SDK 15.0, # OSError: [Errno 28] Invalid argument: '.' ac_cv_func_fdopendir=no -# WASIX stubs we don't want to use. -ac_cv_func_kill=no - # WASI sockets are limited to operations on given socket fd and inet sockets. # Disable AF_UNIX and AF_PACKET support, see socketmodule.h. ac_cv_header_sys_un_h=no ac_cv_header_netpacket_packet_h=no + +# disable accept for WASM runtimes without sock_accept +#ac_cv_func_accept=no +#ac_cv_func_accept4=no diff --git a/Tools/wasm/python.html b/Tools/wasm/python.html index c8d17488b2e70d..17ffa0ea8bfeff 100644 --- a/Tools/wasm/python.html +++ b/Tools/wasm/python.html @@ -7,7 +7,7 @@ <meta name="author" content="Katie Bell"> <meta name="description" content="Simple REPL for Python WASM"> <title>wasm-python terminal</title> - <link rel="stylesheet" href="https://unpkg.com/xterm@4.18.0/css/xterm.css" crossorigin/> + <link rel="stylesheet" href="https://unpkg.com/xterm@4.18.0/css/xterm.css" crossorigin integrity="sha384-4eEEn/eZgVHkElpKAzzPx/Kow/dTSgFk1BNe+uHdjHa+NkZJDh5Vqkq31+y7Eycd"/> <style> body { font-family: arial; @@ -32,7 +32,7 @@ padding: 6px 18px; } </style> - <script src="https://unpkg.com/xterm@4.18.0/lib/xterm.js" crossorigin></script> + <script src="https://unpkg.com/xterm@4.18.0/lib/xterm.js" crossorigin integrity="sha384-yYdNmem1ioP5Onm7RpXutin5A8TimLheLNQ6tnMi01/ZpxXdAwIm2t4fJMx1Djs+"/></script> <script type="module"> class WorkerManager { constructor(workerURL, standardIO, readyCallBack) { @@ -100,6 +100,7 @@ class WasmTerminal { constructor() { + this.inputBuffer = new BufferQueue(); this.input = '' this.resolveInput = null this.activeInput = false @@ -123,28 +124,47 @@ this.xterm.open(container); } - handleReadComplete(lastChar) { - this.resolveInput(this.input + lastChar) - this.activeInput = false - } - handleTermData = (data) => { - if (!this.activeInput) { - return - } const ord = data.charCodeAt(0); - let ofs; + data = data.replace(/\r(?!\n)/g, "\n") // Convert lone CRs to LF + // Handle pasted data + if (data.length > 1 && data.includes("\n")) { + let alreadyWrittenChars = 0; + // If line already had data on it, merge pasted data with it + if (this.input != '') { + this.inputBuffer.addData(this.input); + alreadyWrittenChars = this.input.length; + this.input = ''; + } + this.inputBuffer.addData(data); + // If input is active, write the first line + if (this.activeInput) { + let line = this.inputBuffer.nextLine(); + this.writeLine(line.slice(alreadyWrittenChars)); + this.resolveInput(line); + this.activeInput = false; + } + // When input isn't active, add to line buffer + } else if (!this.activeInput) { + // Skip non-printable characters + if (!(ord === 0x1b || ord == 0x7f || ord < 32)) { + this.inputBuffer.addData(data); + } // TODO: Handle ANSI escape sequences - if (ord === 0x1b) { + } else if (ord === 0x1b) { // Handle special characters } else if (ord < 32 || ord === 0x7f) { switch (data) { - case "\r": // ENTER + case "\x0c": // CTRL+L + this.clear(); + break; + case "\n": // ENTER case "\x0a": // CTRL+J case "\x0d": // CTRL+M - this.xterm.write('\r\n'); - this.handleReadComplete('\n'); + this.resolveInput(this.input + this.writeLine('\n')); + this.input = ''; + this.activeInput = false; break; case "\x7F": // BACKSPACE case "\x08": // CTRL+H @@ -157,6 +177,12 @@ } } + writeLine(line) { + this.xterm.write(line.slice(0, -1)) + this.xterm.write('\r\n'); + return line; + } + handleCursorInsert(data) { this.input += data; this.xterm.write(data) @@ -176,9 +202,19 @@ this.activeInput = true // Hack to allow stdout/stderr to finish before we figure out where input starts setTimeout(() => {this.inputStartCursor = this.xterm.buffer.active.cursorX}, 1) + // If line buffer has a line ready, send it immediately + if (this.inputBuffer.hasLineReady()) { + return new Promise((resolve, reject) => { + resolve(this.writeLine(this.inputBuffer.nextLine())); + this.activeInput = false; + }) + // If line buffer has an incomplete line, use it for the active line + } else if (this.inputBuffer.lastLineIsIncomplete()) { + // Hack to ensure cursor input start doesn't end up after user input + setTimeout(() => {this.handleCursorInsert(this.inputBuffer.nextLine())}, 1); + } return new Promise((resolve, reject) => { this.resolveInput = (value) => { - this.input = '' resolve(value) } }) @@ -188,9 +224,44 @@ this.xterm.clear(); } - print(message) { - const normInput = message.replace(/[\r\n]+/g, "\n").replace(/\n/g, "\r\n"); - this.xterm.write(normInput); + print(charCode) { + let array = [charCode]; + if (charCode == 10) { + array = [13, 10]; // Replace \n with \r\n + } + this.xterm.write(new Uint8Array(array)); + } +} + +class BufferQueue { + constructor(xterm) { + this.buffer = [] + } + + isEmpty() { + return this.buffer.length == 0 + } + + lastLineIsIncomplete() { + return !this.isEmpty() && !this.buffer[this.buffer.length-1].endsWith("\n") + } + + hasLineReady() { + return !this.isEmpty() && this.buffer[0].endsWith("\n") + } + + addData(data) { + let lines = data.match(/.*(\n|$)/g) + if (this.lastLineIsIncomplete()) { + this.buffer[this.buffer.length-1] += lines.shift() + } + for (let line of lines) { + this.buffer.push(line) + } + } + + nextLine() { + return this.buffer.shift() } } @@ -202,8 +273,8 @@ terminal.open(document.getElementById('terminal')) const stdio = { - stdout: (s) => { terminal.print(s) }, - stderr: (s) => { terminal.print(s) }, + stdout: (charCode) => { terminal.print(charCode) }, + stderr: (charCode) => { terminal.print(charCode) }, stdin: async () => { return await terminal.prompt() } diff --git a/Tools/wasm/python.worker.js b/Tools/wasm/python.worker.js index c3a8bdf7d2fc29..1b794608fffe7b 100644 --- a/Tools/wasm/python.worker.js +++ b/Tools/wasm/python.worker.js @@ -35,15 +35,11 @@ class StdinBuffer { } } -const stdoutBufSize = 128; -const stdoutBuf = new Int32Array() -let index = 0; - const stdout = (charCode) => { if (charCode) { postMessage({ type: 'stdout', - stdout: String.fromCharCode(charCode), + stdout: charCode, }) } else { console.log(typeof charCode, charCode) @@ -54,7 +50,7 @@ const stderr = (charCode) => { if (charCode) { postMessage({ type: 'stderr', - stderr: String.fromCharCode(charCode), + stderr: charCode, }) } else { console.log(typeof charCode, charCode) diff --git a/Tools/wasm/wasi-env b/Tools/wasm/wasi-env new file mode 100755 index 00000000000000..48908b02e60b96 --- /dev/null +++ b/Tools/wasm/wasi-env @@ -0,0 +1,76 @@ +#!/bin/sh +set -e + +# function +usage() { + echo "wasi-env - Run command with WASI-SDK" + echo "" + echo "wasi-env is a helper to set various environment variables to" + echo "run configure and make with WASI-SDK. A WASI-SDK must be either" + echo "installed at /opt/wasi-sdk or the env var 'WASI_SDK_PATH' must" + echo "set to the root of a WASI-SDK." + echo "" + echo "Usage: wasi-env command [...]" + echo "" + echo " -h --help display this help and exit" + echo "" +} + +case $1 in + -h|--help) + usage + exit + ;; +esac + +if test -z "$1"; then + echo "ERROR: command required" >&2 + usage + exit 1 +fi + +WASI_SDK_PATH="${WASI_SDK_PATH:-/opt/wasi-sdk}" +WASI_SYSROOT="${WASI_SDK_PATH}/share/wasi-sysroot" + +if ! test -x "${WASI_SDK_PATH}/bin/clang"; then + echo "Error: ${WASI_SDK_PATH}/bin/clang does not exist." >&2 + exit 2 +fi + +CC="${WASI_SDK_PATH}/bin/clang" +CPP="${WASI_SDK_PATH}/bin/clang-cpp" +CXX="${WASI_SDK_PATH}/bin/clang++" + +# --sysroot is required if WASI-SDK is not installed in /opt/wasi-sdk. +if test "${WASI_SDK_PATH}" != "/opt/wasi-sdk"; then + CC="${CC} --sysroot=${WASI_SYSROOT}" + CPP="${CPP} --sysroot=${WASI_SYSROOT}" + CXX="${CXX} --sysroot=${WASI_SYSROOT}" +fi + +# use ccache if available +if command -v ccache >/dev/null 2>&1; then + CC="ccache ${CC}" + CPP="ccache ${CPP}" + CXX="ccache ${CXX}" +fi + +LDSHARED="${WASI_SDK_PATH}/bin/wasm-ld" +AR="${WASI_SDK_PATH}/bin/llvm-ar" +RANLIB="${WASI_SDK_PATH}/bin/ranlib" + +# instruct pkg-config to use sysroot +PKG_CONFIG_PATH="" +PKG_CONFIG_LIBDIR="${WASI_SYSROOT}/lib/pkgconfig:${WASI_SYSROOT}/share/pkgconfig" +PKG_CONFIG_SYSROOT_DIR="${WASI_SYSROOT}" + +PATH="${WASI_SDK_PATH}/bin:${PATH}" + +export WASI_SDK_PATH WASI_SYSROOT +export CC CPP CXX LDSHARED AR RANLIB +export CFLAGS LDFLAGS +export PKG_CONFIG_PATH PKG_CONFIG_LIBDIR PKG_CONFIG_SYSROOT_DIR +export PATH + +# no exec, it makes arvg[0] path absolute. +"$@" diff --git a/Tools/wasm/wasm_assets.py b/Tools/wasm/wasm_assets.py index fba70b9c9d0426..a35acfd9387b41 100755 --- a/Tools/wasm/wasm_assets.py +++ b/Tools/wasm/wasm_assets.py @@ -13,18 +13,13 @@ import pathlib import shutil import sys +import sysconfig import zipfile # source directory SRCDIR = pathlib.Path(__file__).parent.parent.parent.absolute() SRCDIR_LIB = SRCDIR / "Lib" -# sysconfig data relative to build dir. -SYSCONFIGDATA = pathlib.PurePath( - "build", - f"lib.emscripten-wasm32-{sys.version_info.major}.{sys.version_info.minor}", - "_sysconfigdata__emscripten_wasm32-emscripten.py", -) # Library directory relative to $(prefix). WASM_LIB = pathlib.PurePath("lib") @@ -82,7 +77,6 @@ "mailcap.py", "nntplib.py", "poplib.py", - "smtpd.py", "smtplib.py", "socketserver.py", "telnetlib.py", @@ -114,22 +108,40 @@ "_zoneinfo": ["zoneinfo/"], } -# regression test sub directories -OMIT_SUBDIRS = ( - "ctypes/test/", - "tkinter/test/", - "unittest/test/", +SYSCONFIG_NAMES = ( + "_sysconfigdata__emscripten_wasm32-emscripten", + "_sysconfigdata__emscripten_wasm32-emscripten", + "_sysconfigdata__wasi_wasm32-wasi", + "_sysconfigdata__wasi_wasm64-wasi", ) +def get_builddir(args: argparse.Namespace) -> pathlib.Path: + """Get builddir path from pybuilddir.txt + """ + with open("pybuilddir.txt", encoding="utf-8") as f: + builddir = f.read() + return pathlib.Path(builddir) + + +def get_sysconfigdata(args: argparse.Namespace) -> pathlib.Path: + """Get path to sysconfigdata relative to build root + """ + data_name = sysconfig._get_sysconfigdata_name() + if not data_name.startswith(SYSCONFIG_NAMES): + raise ValueError( + f"Invalid sysconfig data name '{data_name}'.", + SYSCONFIG_NAMES + ) + filename = data_name + ".py" + return args.builddir / filename + + def create_stdlib_zip( args: argparse.Namespace, *, optimize: int = 0, ) -> None: - def filterfunc(name: str) -> bool: - return not name.startswith(args.omit_subdirs_absolute) - with zipfile.PyZipFile( args.wasm_stdlib_zip, mode="w", compression=args.compression, optimize=optimize ) as pzf: @@ -143,14 +155,14 @@ def filterfunc(name: str) -> bool: continue if entry.name.endswith(".py") or entry.is_dir(): # writepy() writes .pyc files (bytecode). - pzf.writepy(entry, filterfunc=filterfunc) + pzf.writepy(entry) def detect_extension_modules(args: argparse.Namespace): modules = {} # disabled by Modules/Setup.local ? - with open(args.builddir / "Makefile") as f: + with open(args.buildroot / "Makefile") as f: for line in f: if line.startswith("MODDISABLED_NAMES="): disabled = line.split("=", 1)[1].strip().split() @@ -164,14 +176,13 @@ def detect_extension_modules(args: argparse.Namespace): loc = {} exec(data, globals(), loc) - for name, value in loc["build_time_vars"].items(): - if value not in {"yes", "missing", "disabled", "n/a"}: - continue - if not name.startswith("MODULE_"): + for key, value in loc["build_time_vars"].items(): + if not key.startswith("MODULE_") or not key.endswith("_STATE"): continue - if name.endswith(("_CFLAGS", "_DEPS", "_LDFLAGS")): - continue - modname = name.removeprefix("MODULE_").lower() + if value not in {"yes", "disabled", "missing", "n/a"}: + raise ValueError(f"Unsupported value '{value}' for {key}") + + modname = key[7:-6].lower() if modname not in modules: modules[modname] = value == "yes" return modules @@ -183,8 +194,8 @@ def path(val: str) -> pathlib.Path: parser = argparse.ArgumentParser() parser.add_argument( - "--builddir", - help="absolute build directory", + "--buildroot", + help="absolute path to build root", default=pathlib.Path(".").absolute(), type=path, ) @@ -202,7 +213,7 @@ def main(): relative_prefix = args.prefix.relative_to(pathlib.Path("/")) args.srcdir = SRCDIR args.srcdir_lib = SRCDIR_LIB - args.wasm_root = args.builddir / relative_prefix + args.wasm_root = args.buildroot / relative_prefix args.wasm_stdlib_zip = args.wasm_root / WASM_STDLIB_ZIP args.wasm_stdlib = args.wasm_root / WASM_STDLIB args.wasm_dynload = args.wasm_root / WASM_DYNLOAD @@ -212,21 +223,20 @@ def main(): args.compression = zipfile.ZIP_DEFLATED args.compresslevel = 9 - args.sysconfig_data = args.builddir / SYSCONFIGDATA + args.builddir = get_builddir(args) + args.sysconfig_data = get_sysconfigdata(args) if not args.sysconfig_data.is_file(): - raise ValueError(f"sysconfigdata file {SYSCONFIGDATA} missing.") + raise ValueError(f"sysconfigdata file {args.sysconfig_data} missing.") extmods = detect_extension_modules(args) omit_files = list(OMIT_FILES) - omit_files.extend(OMIT_NETWORKING_FILES) + if sysconfig.get_platform().startswith("emscripten"): + omit_files.extend(OMIT_NETWORKING_FILES) for modname, modfiles in OMIT_MODULE_FILES.items(): if not extmods.get(modname): omit_files.extend(modfiles) args.omit_files_absolute = {args.srcdir_lib / name for name in omit_files} - args.omit_subdirs_absolute = tuple( - str(args.srcdir_lib / name) for name in OMIT_SUBDIRS - ) # Empty, unused directory for dynamic libs, but required for site initialization. args.wasm_dynload.mkdir(parents=True, exist_ok=True) diff --git a/Tools/wasm/wasm_build.py b/Tools/wasm/wasm_build.py new file mode 100755 index 00000000000000..63812c6f3153f2 --- /dev/null +++ b/Tools/wasm/wasm_build.py @@ -0,0 +1,907 @@ +#!/usr/bin/env python3 +"""Build script for Python on WebAssembly platforms. + + $ ./Tools/wasm/wasm_builder.py emscripten-browser build repl + $ ./Tools/wasm/wasm_builder.py emscripten-node-dl build test + $ ./Tools/wasm/wasm_builder.py wasi build test + +Primary build targets are "emscripten-node-dl" (NodeJS, dynamic linking), +"emscripten-browser", and "wasi". + +Emscripten builds require a recent Emscripten SDK. The tools looks for an +activated EMSDK environment (". /path/to/emsdk_env.sh"). System packages +(Debian, Homebrew) are not supported. + +WASI builds require WASI SDK and wasmtime. The tool looks for 'WASI_SDK_PATH' +and falls back to /opt/wasi-sdk. + +The 'build' Python interpreter must be rebuilt every time Python's byte code +changes. + + ./Tools/wasm/wasm_builder.py --clean build build + +""" +import argparse +import enum +import dataclasses +import logging +import os +import pathlib +import re +import shlex +import shutil +import socket +import subprocess +import sys +import sysconfig +import tempfile +import time +import warnings +import webbrowser + +# for Python 3.8 +from typing import Any, Callable, Dict, Iterable, List, Optional, Tuple, Union + +logger = logging.getLogger("wasm_build") + +SRCDIR = pathlib.Path(__file__).parent.parent.parent.absolute() +WASMTOOLS = SRCDIR / "Tools" / "wasm" +BUILDDIR = SRCDIR / "builddir" +CONFIGURE = SRCDIR / "configure" +SETUP_LOCAL = SRCDIR / "Modules" / "Setup.local" + +HAS_CCACHE = shutil.which("ccache") is not None + +# path to WASI-SDK root +WASI_SDK_PATH = pathlib.Path(os.environ.get("WASI_SDK_PATH", "/opt/wasi-sdk")) + +# path to Emscripten SDK config file. +# auto-detect's EMSDK in /opt/emsdk without ". emsdk_env.sh". +EM_CONFIG = pathlib.Path(os.environ.setdefault("EM_CONFIG", "/opt/emsdk/.emscripten")) +EMSDK_MIN_VERSION = (3, 1, 19) +EMSDK_BROKEN_VERSION = { + (3, 1, 14): "https://github.com/emscripten-core/emscripten/issues/17338", + (3, 1, 16): "https://github.com/emscripten-core/emscripten/issues/17393", + (3, 1, 20): "https://github.com/emscripten-core/emscripten/issues/17720", +} +_MISSING = pathlib.PurePath("MISSING") + +WASM_WEBSERVER = WASMTOOLS / "wasm_webserver.py" + +CLEAN_SRCDIR = f""" +Builds require a clean source directory. Please use a clean checkout or +run "make clean -C '{SRCDIR}'". +""" + +INSTALL_NATIVE = f""" +Builds require a C compiler (gcc, clang), make, pkg-config, and development +headers for dependencies like zlib. + +Debian/Ubuntu: sudo apt install build-essential git curl pkg-config zlib1g-dev +Fedora/CentOS: sudo dnf install gcc make git-core curl pkgconfig zlib-devel +""" + +INSTALL_EMSDK = """ +wasm32-emscripten builds need Emscripten SDK. Please follow instructions at +https://emscripten.org/docs/getting_started/downloads.html how to install +Emscripten and how to activate the SDK with "emsdk_env.sh". + + git clone https://github.com/emscripten-core/emsdk.git /path/to/emsdk + cd /path/to/emsdk + ./emsdk install latest + ./emsdk activate latest + source /path/to/emsdk_env.sh +""" + +INSTALL_WASI_SDK = """ +wasm32-wasi builds need WASI SDK. Please fetch the latest SDK from +https://github.com/WebAssembly/wasi-sdk/releases and install it to +"/opt/wasi-sdk". Alternatively you can install the SDK in a different location +and point the environment variable WASI_SDK_PATH to the root directory +of the SDK. The SDK is available for Linux x86_64, macOS x86_64, and MinGW. +""" + +INSTALL_WASMTIME = """ +wasm32-wasi tests require wasmtime on PATH. Please follow instructions at +https://wasmtime.dev/ to install wasmtime. +""" + + +def parse_emconfig( + emconfig: pathlib.Path = EM_CONFIG, +) -> Tuple[pathlib.PurePath, pathlib.PurePath]: + """Parse EM_CONFIG file and lookup EMSCRIPTEN_ROOT and NODE_JS. + + The ".emscripten" config file is a Python snippet that uses "EM_CONFIG" + environment variable. EMSCRIPTEN_ROOT is the "upstream/emscripten" + subdirectory with tools like "emconfigure". + """ + if not emconfig.exists(): + return _MISSING, _MISSING + with open(emconfig, encoding="utf-8") as f: + code = f.read() + # EM_CONFIG file is a Python snippet + local: Dict[str, Any] = {} + exec(code, globals(), local) + emscripten_root = pathlib.Path(local["EMSCRIPTEN_ROOT"]) + node_js = pathlib.Path(local["NODE_JS"]) + return emscripten_root, node_js + + +EMSCRIPTEN_ROOT, NODE_JS = parse_emconfig() + + +def read_python_version(configure: pathlib.Path = CONFIGURE) -> str: + """Read PACKAGE_VERSION from configure script + + configure and configure.ac are the canonical source for major and + minor version number. + """ + version_re = re.compile("^PACKAGE_VERSION='(\d\.\d+)'") + with configure.open(encoding="utf-8") as f: + for line in f: + mo = version_re.match(line) + if mo: + return mo.group(1) + raise ValueError(f"PACKAGE_VERSION not found in {configure}") + + +PYTHON_VERSION = read_python_version() + + +class ConditionError(ValueError): + def __init__(self, info: str, text: str): + self.info = info + self.text = text + + def __str__(self): + return f"{type(self).__name__}: '{self.info}'\n{self.text}" + + +class MissingDependency(ConditionError): + pass + + +class DirtySourceDirectory(ConditionError): + pass + + +@dataclasses.dataclass +class Platform: + """Platform-specific settings + + - CONFIG_SITE override + - configure wrapper (e.g. emconfigure) + - make wrapper (e.g. emmake) + - additional environment variables + - check function to verify SDK + """ + + name: str + pythonexe: str + config_site: Optional[pathlib.PurePath] + configure_wrapper: Optional[pathlib.PurePath] + make_wrapper: Optional[pathlib.PurePath] + environ: dict + check: Callable[[], None] + # Used for build_emports(). + ports: Optional[pathlib.PurePath] + cc: Optional[pathlib.PurePath] + + def getenv(self, profile: "BuildProfile") -> dict: + return self.environ.copy() + + +def _check_clean_src(): + candidates = [ + SRCDIR / "Programs" / "python.o", + SRCDIR / "Python" / "frozen_modules" / "importlib._bootstrap.h", + ] + for candidate in candidates: + if candidate.exists(): + raise DirtySourceDirectory(os.fspath(candidate), CLEAN_SRCDIR) + + +def _check_native(): + if not any(shutil.which(cc) for cc in ["cc", "gcc", "clang"]): + raise MissingDependency("cc", INSTALL_NATIVE) + if not shutil.which("make"): + raise MissingDependency("make", INSTALL_NATIVE) + if sys.platform == "linux": + # skip pkg-config check on macOS + if not shutil.which("pkg-config"): + raise MissingDependency("pkg-config", INSTALL_NATIVE) + # zlib is needed to create zip files + for devel in ["zlib"]: + try: + subprocess.check_call(["pkg-config", "--exists", devel]) + except subprocess.CalledProcessError: + raise MissingDependency(devel, INSTALL_NATIVE) from None + _check_clean_src() + + +NATIVE = Platform( + "native", + # macOS has python.exe + pythonexe=sysconfig.get_config_var("BUILDPYTHON") or "python", + config_site=None, + configure_wrapper=None, + ports=None, + cc=None, + make_wrapper=None, + environ={}, + check=_check_native, +) + + +def _check_emscripten(): + if EMSCRIPTEN_ROOT is _MISSING: + raise MissingDependency("Emscripten SDK EM_CONFIG", INSTALL_EMSDK) + # sanity check + emconfigure = EMSCRIPTEN.configure_wrapper + if not emconfigure.exists(): + raise MissingDependency(os.fspath(emconfigure), INSTALL_EMSDK) + # version check + version_txt = EMSCRIPTEN_ROOT / "emscripten-version.txt" + if not version_txt.exists(): + raise MissingDependency(os.fspath(version_txt), INSTALL_EMSDK) + with open(version_txt) as f: + version = f.read().strip().strip('"') + if version.endswith("-git"): + # git / upstream / tot-upstream installation + version = version[:-4] + version_tuple = tuple(int(v) for v in version.split(".")) + if version_tuple < EMSDK_MIN_VERSION: + raise ConditionError( + os.fspath(version_txt), + f"Emscripten SDK {version} in '{EMSCRIPTEN_ROOT}' is older than " + "minimum required version " + f"{'.'.join(str(v) for v in EMSDK_MIN_VERSION)}.", + ) + broken = EMSDK_BROKEN_VERSION.get(version_tuple) + if broken is not None: + raise ConditionError( + os.fspath(version_txt), + ( + f"Emscripten SDK {version} in '{EMSCRIPTEN_ROOT}' has known " + f"bugs, see {broken}." + ), + ) + if os.environ.get("PKG_CONFIG_PATH"): + warnings.warn( + "PKG_CONFIG_PATH is set and not empty. emconfigure overrides " + "this environment variable. Use EM_PKG_CONFIG_PATH instead." + ) + _check_clean_src() + + +EMSCRIPTEN = Platform( + "emscripten", + pythonexe="python.js", + config_site=WASMTOOLS / "config.site-wasm32-emscripten", + configure_wrapper=EMSCRIPTEN_ROOT / "emconfigure", + ports=EMSCRIPTEN_ROOT / "embuilder", + cc=EMSCRIPTEN_ROOT / "emcc", + make_wrapper=EMSCRIPTEN_ROOT / "emmake", + environ={ + # workaround for https://github.com/emscripten-core/emscripten/issues/17635 + "TZ": "UTC", + "EM_COMPILER_WRAPPER": "ccache" if HAS_CCACHE else None, + "PATH": [EMSCRIPTEN_ROOT, os.environ["PATH"]], + }, + check=_check_emscripten, +) + + +def _check_wasi(): + wasm_ld = WASI_SDK_PATH / "bin" / "wasm-ld" + if not wasm_ld.exists(): + raise MissingDependency(os.fspath(wasm_ld), INSTALL_WASI_SDK) + wasmtime = shutil.which("wasmtime") + if wasmtime is None: + raise MissingDependency("wasmtime", INSTALL_WASMTIME) + _check_clean_src() + + +WASI = Platform( + "wasi", + pythonexe="python.wasm", + config_site=WASMTOOLS / "config.site-wasm32-wasi", + configure_wrapper=WASMTOOLS / "wasi-env", + ports=None, + cc=WASI_SDK_PATH / "bin" / "clang", + make_wrapper=None, + environ={ + "WASI_SDK_PATH": WASI_SDK_PATH, + # workaround for https://github.com/python/cpython/issues/95952 + "HOSTRUNNER": ( + "wasmtime run " + "--env PYTHONPATH=/{relbuilddir}/build/lib.wasi-wasm32-{version}:/Lib " + "--mapdir /::{srcdir} --" + ), + "PATH": [WASI_SDK_PATH / "bin", os.environ["PATH"]], + }, + check=_check_wasi, +) + + +class Host(enum.Enum): + """Target host triplet""" + + wasm32_emscripten = "wasm32-unknown-emscripten" + wasm64_emscripten = "wasm64-unknown-emscripten" + wasm32_wasi = "wasm32-unknown-wasi" + wasm64_wasi = "wasm64-unknown-wasi" + # current platform + build = sysconfig.get_config_var("BUILD_GNU_TYPE") + + @property + def platform(self) -> Platform: + if self.is_emscripten: + return EMSCRIPTEN + elif self.is_wasi: + return WASI + else: + return NATIVE + + @property + def is_emscripten(self) -> bool: + cls = type(self) + return self in {cls.wasm32_emscripten, cls.wasm64_emscripten} + + @property + def is_wasi(self) -> bool: + cls = type(self) + return self in {cls.wasm32_wasi, cls.wasm64_wasi} + + def get_extra_paths(self) -> Iterable[pathlib.PurePath]: + """Host-specific os.environ["PATH"] entries. + + Emscripten's Node version 14.x works well for wasm32-emscripten. + wasm64-emscripten requires more recent v8 version, e.g. node 16.x. + Attempt to use system's node command. + """ + cls = type(self) + if self == cls.wasm32_emscripten: + return [NODE_JS.parent] + elif self == cls.wasm64_emscripten: + # TODO: look for recent node + return [] + else: + return [] + + @property + def emport_args(self) -> List[str]: + """Host-specific port args (Emscripten).""" + cls = type(self) + if self is cls.wasm64_emscripten: + return ["-sMEMORY64=1"] + elif self is cls.wasm32_emscripten: + return ["-sMEMORY64=0"] + else: + return [] + + @property + def embuilder_args(self) -> List[str]: + """Host-specific embuilder args (Emscripten).""" + cls = type(self) + if self is cls.wasm64_emscripten: + return ["--wasm64"] + else: + return [] + + +class EmscriptenTarget(enum.Enum): + """Emscripten-specific targets (--with-emscripten-target)""" + + browser = "browser" + browser_debug = "browser-debug" + node = "node" + node_debug = "node-debug" + + @property + def is_browser(self): + cls = type(self) + return self in {cls.browser, cls.browser_debug} + + @property + def emport_args(self) -> List[str]: + """Target-specific port args.""" + cls = type(self) + if self in {cls.browser_debug, cls.node_debug}: + # some libs come in debug and non-debug builds + return ["-O0"] + else: + return ["-O2"] + + +class SupportLevel(enum.Enum): + supported = "tier 3, supported" + working = "working, unsupported" + experimental = "experimental, may be broken" + broken = "broken / unavailable" + + def __bool__(self): + cls = type(self) + return self in {cls.supported, cls.working} + + +@dataclasses.dataclass +class BuildProfile: + name: str + support_level: SupportLevel + host: Host + target: Union[EmscriptenTarget, None] = None + dynamic_linking: Union[bool, None] = None + pthreads: Union[bool, None] = None + default_testopts: str = "-j2" + + @property + def is_browser(self) -> bool: + """Is this a browser build?""" + return self.target is not None and self.target.is_browser + + @property + def builddir(self) -> pathlib.Path: + """Path to build directory""" + return BUILDDIR / self.name + + @property + def python_cmd(self) -> pathlib.Path: + """Path to python executable""" + return self.builddir / self.host.platform.pythonexe + + @property + def makefile(self) -> pathlib.Path: + """Path to Makefile""" + return self.builddir / "Makefile" + + @property + def configure_cmd(self) -> List[str]: + """Generate configure command""" + # use relative path, so WASI tests can find lib prefix. + # pathlib.Path.relative_to() does not work here. + configure = os.path.relpath(CONFIGURE, self.builddir) + cmd = [configure, "-C"] + platform = self.host.platform + if platform.configure_wrapper: + cmd.insert(0, os.fspath(platform.configure_wrapper)) + + cmd.append(f"--host={self.host.value}") + cmd.append(f"--build={Host.build.value}") + + if self.target is not None: + assert self.host.is_emscripten + cmd.append(f"--with-emscripten-target={self.target.value}") + + if self.dynamic_linking is not None: + assert self.host.is_emscripten + opt = "enable" if self.dynamic_linking else "disable" + cmd.append(f"--{opt}-wasm-dynamic-linking") + + if self.pthreads is not None: + assert self.host.is_emscripten + opt = "enable" if self.pthreads else "disable" + cmd.append(f"--{opt}-wasm-pthreads") + + if self.host != Host.build: + cmd.append(f"--with-build-python={BUILD.python_cmd}") + + if platform.config_site is not None: + cmd.append(f"CONFIG_SITE={platform.config_site}") + + return cmd + + @property + def make_cmd(self) -> List[str]: + """Generate make command""" + cmd = ["make"] + platform = self.host.platform + if platform.make_wrapper: + cmd.insert(0, os.fspath(platform.make_wrapper)) + return cmd + + def getenv(self) -> dict: + """Generate environ dict for platform""" + env = os.environ.copy() + env.setdefault("MAKEFLAGS", f"-j{os.cpu_count()}") + platenv = self.host.platform.getenv(self) + for key, value in platenv.items(): + if value is None: + env.pop(key, None) + elif key == "PATH": + # list of path items, prefix with extra paths + new_path: List[pathlib.PurePath] = [] + new_path.extend(self.host.get_extra_paths()) + new_path.extend(value) + env[key] = os.pathsep.join(os.fspath(p) for p in new_path) + elif isinstance(value, str): + env[key] = value.format( + relbuilddir=self.builddir.relative_to(SRCDIR), + srcdir=SRCDIR, + version=PYTHON_VERSION, + ) + else: + env[key] = value + return env + + def _run_cmd( + self, + cmd: Iterable[str], + args: Iterable[str] = (), + cwd: Optional[pathlib.Path] = None, + ): + cmd = list(cmd) + cmd.extend(args) + if cwd is None: + cwd = self.builddir + logger.info('Running "%s" in "%s"', shlex.join(cmd), cwd) + return subprocess.check_call( + cmd, + cwd=os.fspath(cwd), + env=self.getenv(), + ) + + def _check_execute(self): + if self.is_browser: + raise ValueError(f"Cannot execute on {self.target}") + + def run_build(self, *args): + """Run configure (if necessary) and make""" + if not self.makefile.exists(): + logger.info("Makefile not found, running configure") + self.run_configure(*args) + self.run_make("all", *args) + + def run_configure(self, *args): + """Run configure script to generate Makefile""" + os.makedirs(self.builddir, exist_ok=True) + return self._run_cmd(self.configure_cmd, args) + + def run_make(self, *args): + """Run make (defaults to build all)""" + return self._run_cmd(self.make_cmd, args) + + def run_pythoninfo(self, *args): + """Run 'make pythoninfo'""" + self._check_execute() + return self.run_make("pythoninfo", *args) + + def run_test(self, target: str, testopts: Optional[str] = None): + """Run buildbottests""" + self._check_execute() + if testopts is None: + testopts = self.default_testopts + return self.run_make(target, f"TESTOPTS={testopts}") + + def run_py(self, *args): + """Run Python with hostrunner""" + self._check_execute() + self.run_make( + "--eval", f"run: all; $(HOSTRUNNER) ./$(PYTHON) {shlex.join(args)}", "run" + ) + + def run_browser(self, bind="127.0.0.1", port=8000): + """Run WASM webserver and open build in browser""" + relbuilddir = self.builddir.relative_to(SRCDIR) + url = f"http://{bind}:{port}/{relbuilddir}/python.html" + args = [ + sys.executable, + os.fspath(WASM_WEBSERVER), + "--bind", + bind, + "--port", + str(port), + ] + srv = subprocess.Popen(args, cwd=SRCDIR) + # wait for server + end = time.monotonic() + 3.0 + while time.monotonic() < end and srv.returncode is None: + try: + with socket.create_connection((bind, port), timeout=0.1) as s: + pass + except OSError: + time.sleep(0.01) + else: + break + + webbrowser.open(url) + + try: + srv.wait() + except KeyboardInterrupt: + pass + + def clean(self, all: bool = False): + """Clean build directory""" + if all: + if self.builddir.exists(): + shutil.rmtree(self.builddir) + elif self.makefile.exists(): + self.run_make("clean") + + def build_emports(self, force: bool = False): + """Pre-build emscripten ports.""" + platform = self.host.platform + if platform.ports is None or platform.cc is None: + raise ValueError("Need ports and CC command") + + embuilder_cmd = [os.fspath(platform.ports)] + embuilder_cmd.extend(self.host.embuilder_args) + if force: + embuilder_cmd.append("--force") + + ports_cmd = [os.fspath(platform.cc)] + ports_cmd.extend(self.host.emport_args) + if self.target: + ports_cmd.extend(self.target.emport_args) + + if self.dynamic_linking: + # Trigger PIC build. + ports_cmd.append("-sMAIN_MODULE") + embuilder_cmd.append("--pic") + + if self.pthreads: + # Trigger multi-threaded build. + ports_cmd.append("-sUSE_PTHREADS") + + # Pre-build libbz2, libsqlite3, libz, and some system libs. + ports_cmd.extend(["-sUSE_ZLIB", "-sUSE_BZIP2", "-sUSE_SQLITE3"]) + # Multi-threaded sqlite3 has different suffix + embuilder_cmd.extend( + ["build", "bzip2", "sqlite3-mt" if self.pthreads else "sqlite3", "zlib"] + ) + + self._run_cmd(embuilder_cmd, cwd=SRCDIR) + + with tempfile.TemporaryDirectory(suffix="-py-emport") as tmpdir: + tmppath = pathlib.Path(tmpdir) + main_c = tmppath / "main.c" + main_js = tmppath / "main.js" + with main_c.open("w") as f: + f.write("int main(void) { return 0; }\n") + args = [ + os.fspath(main_c), + "-o", + os.fspath(main_js), + ] + self._run_cmd(ports_cmd, args, cwd=tmppath) + + +# native build (build Python) +BUILD = BuildProfile( + "build", + support_level=SupportLevel.working, + host=Host.build, +) + +_profiles = [ + BUILD, + # wasm32-emscripten + BuildProfile( + "emscripten-browser", + support_level=SupportLevel.supported, + host=Host.wasm32_emscripten, + target=EmscriptenTarget.browser, + dynamic_linking=True, + ), + BuildProfile( + "emscripten-browser-debug", + support_level=SupportLevel.working, + host=Host.wasm32_emscripten, + target=EmscriptenTarget.browser_debug, + dynamic_linking=True, + ), + BuildProfile( + "emscripten-node-dl", + support_level=SupportLevel.supported, + host=Host.wasm32_emscripten, + target=EmscriptenTarget.node, + dynamic_linking=True, + ), + BuildProfile( + "emscripten-node-dl-debug", + support_level=SupportLevel.working, + host=Host.wasm32_emscripten, + target=EmscriptenTarget.node_debug, + dynamic_linking=True, + ), + BuildProfile( + "emscripten-node-pthreads", + support_level=SupportLevel.supported, + host=Host.wasm32_emscripten, + target=EmscriptenTarget.node, + pthreads=True, + ), + BuildProfile( + "emscripten-node-pthreads-debug", + support_level=SupportLevel.working, + host=Host.wasm32_emscripten, + target=EmscriptenTarget.node_debug, + pthreads=True, + ), + # Emscripten build with both pthreads and dynamic linking is crashing. + BuildProfile( + "emscripten-node-dl-pthreads-debug", + support_level=SupportLevel.broken, + host=Host.wasm32_emscripten, + target=EmscriptenTarget.node_debug, + dynamic_linking=True, + pthreads=True, + ), + # wasm64-emscripten (requires Emscripten >= 3.1.21) + BuildProfile( + "wasm64-emscripten-node-debug", + support_level=SupportLevel.experimental, + host=Host.wasm64_emscripten, + target=EmscriptenTarget.node_debug, + # MEMORY64 is not compatible with dynamic linking + dynamic_linking=False, + pthreads=False, + ), + # wasm32-wasi + BuildProfile( + "wasi", + support_level=SupportLevel.supported, + host=Host.wasm32_wasi, + ), + # no SDK available yet + # BuildProfile( + # "wasm64-wasi", + # support_level=SupportLevel.broken, + # host=Host.wasm64_wasi, + # ), +] + +PROFILES = {p.name: p for p in _profiles} + +parser = argparse.ArgumentParser( + "wasm_build.py", + description=__doc__, + formatter_class=argparse.RawTextHelpFormatter, +) + +parser.add_argument( + "--clean", + "-c", + help="Clean build directories first", + action="store_true", +) + +parser.add_argument( + "--verbose", + "-v", + help="Verbose logging", + action="store_true", +) + +parser.add_argument( + "--silent", + help="Run configure and make in silent mode", + action="store_true", +) + +parser.add_argument( + "--testopts", + help=( + "Additional test options for 'test' and 'hostrunnertest', e.g. " + "--testopts='-v test_os'." + ), + default=None, +) + +# Don't list broken and experimental variants in help +platforms_choices = list(p.name for p in _profiles) + ["cleanall"] +platforms_help = list(p.name for p in _profiles if p.support_level) + ["cleanall"] +parser.add_argument( + "platform", + metavar="PLATFORM", + help=f"Build platform: {', '.join(platforms_help)}", + choices=platforms_choices, +) + +ops = dict( + build="auto build (build 'build' Python, emports, configure, compile)", + configure="run ./configure", + compile="run 'make all'", + pythoninfo="run 'make pythoninfo'", + test="run 'make buildbottest TESTOPTS=...' (supports parallel tests)", + hostrunnertest="run 'make hostrunnertest TESTOPTS=...'", + repl="start interactive REPL / webserver + browser session", + clean="run 'make clean'", + cleanall="remove all build directories", + emports="build Emscripten port with embuilder (only Emscripten)", +) +ops_help = "\n".join(f"{op:16s} {help}" for op, help in ops.items()) +parser.add_argument( + "ops", + metavar="OP", + help=f"operation (default: build)\n\n{ops_help}", + choices=tuple(ops), + default="build", + nargs="*", +) + + +def main(): + args = parser.parse_args() + logging.basicConfig( + level=logging.INFO if args.verbose else logging.ERROR, + format="%(message)s", + ) + + if args.platform == "cleanall": + for builder in PROFILES.values(): + builder.clean(all=True) + parser.exit(0) + + # additional configure and make args + cm_args = ("--silent",) if args.silent else () + + # nargs=* with default quirk + if args.ops == "build": + args.ops = ["build"] + + builder = PROFILES[args.platform] + try: + builder.host.platform.check() + except ConditionError as e: + parser.error(str(e)) + + if args.clean: + builder.clean(all=False) + + # hack for WASI + if builder.host.is_wasi and not SETUP_LOCAL.exists(): + SETUP_LOCAL.touch() + + # auto-build + if "build" in args.ops: + # check and create build Python + if builder is not BUILD: + logger.info("Auto-building 'build' Python.") + try: + BUILD.host.platform.check() + except ConditionError as e: + parser.error(str(e)) + if args.clean: + BUILD.clean(all=False) + BUILD.run_build(*cm_args) + # build Emscripten ports with embuilder + if builder.host.is_emscripten and "emports" not in args.ops: + builder.build_emports() + + for op in args.ops: + logger.info("\n*** %s %s", args.platform, op) + if op == "build": + builder.run_build(*cm_args) + elif op == "configure": + builder.run_configure(*cm_args) + elif op == "compile": + builder.run_make("all", *cm_args) + elif op == "pythoninfo": + builder.run_pythoninfo(*cm_args) + elif op == "repl": + if builder.is_browser: + builder.run_browser() + else: + builder.run_py() + elif op == "test": + builder.run_test("buildbottest", testopts=args.testopts) + elif op == "hostrunnertest": + builder.run_test("hostrunnertest", testopts=args.testopts) + elif op == "clean": + builder.clean(all=False) + elif op == "cleanall": + builder.clean(all=True) + elif op == "emports": + builder.build_emports(force=args.clean) + else: + raise ValueError(op) + + print(builder.builddir) + parser.exit(0) + + +if __name__ == "__main__": + main() diff --git a/configure b/configure index 04f0c4e0e88428..08ec2161cba086 100755 --- a/configure +++ b/configure @@ -2,7 +2,7 @@ # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for python 3.12. # -# Report bugs to <https://bugs.python.org/>. +# Report bugs to <https://github.com/python/cpython/issues/>. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -267,10 +267,10 @@ fi $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and -$0: https://bugs.python.org/ about your system, including -$0: any error possibly output before this message. Then -$0: install a modern shell, or manually run the script -$0: under such a shell if you do have one." +$0: https://github.com/python/cpython/issues/ about your +$0: system, including any error possibly output before this +$0: message. Then install a modern shell, or manually run +$0: the script under such a shell if you do have one." fi exit 1 fi @@ -582,7 +582,7 @@ PACKAGE_NAME='python' PACKAGE_TARNAME='python' PACKAGE_VERSION='3.12' PACKAGE_STRING='python 3.12' -PACKAGE_BUGREPORT='https://bugs.python.org/' +PACKAGE_BUGREPORT='https://github.com/python/cpython/issues/' PACKAGE_URL='' ac_unique_file="Include/object.h" @@ -632,6 +632,8 @@ MODULE__CTYPES_TEST_FALSE MODULE__CTYPES_TEST_TRUE MODULE__XXTESTFUZZ_FALSE MODULE__XXTESTFUZZ_TRUE +MODULE_XXSUBTYPE_FALSE +MODULE_XXSUBTYPE_TRUE MODULE__TESTMULTIPHASE_FALSE MODULE__TESTMULTIPHASE_TRUE MODULE__TESTIMPORTMULTIPLE_FALSE @@ -660,12 +662,22 @@ MODULE__TKINTER_FALSE MODULE__TKINTER_TRUE MODULE__SQLITE3_FALSE MODULE__SQLITE3_TRUE +MODULE_READLINE_FALSE +MODULE_READLINE_TRUE MODULE_NIS_FALSE MODULE_NIS_TRUE MODULE__GDBM_FALSE MODULE__GDBM_TRUE +MODULE__DBM_FALSE +MODULE__DBM_TRUE MODULE__DECIMAL_FALSE MODULE__DECIMAL_TRUE +MODULE__CURSES_PANEL_FALSE +MODULE__CURSES_PANEL_TRUE +MODULE__CURSES_FALSE +MODULE__CURSES_TRUE +MODULE__CTYPES_FALSE +MODULE__CTYPES_TRUE MODULE__CRYPT_FALSE MODULE__CRYPT_TRUE MODULE__BLAKE2_FALSE @@ -776,18 +788,24 @@ MODULE_TIME_FALSE MODULE_TIME_TRUE MODULE__IO_FALSE MODULE__IO_TRUE -MODULES_SETUP_STDLIB MODULE_BUILDTYPE TEST_MODULES LIBB2_LIBS LIBB2_CFLAGS -OPENSSL_RPATH OPENSSL_LDFLAGS OPENSSL_LIBS OPENSSL_INCLUDES ENSUREPIP SRCDIRS THREADHEADERS +PANEL_LIBS +PANEL_CFLAGS +CURSES_LIBS +CURSES_CFLAGS +LIBEDIT_LIBS +LIBEDIT_CFLAGS +LIBREADLINE_LIBS +LIBREADLINE_CFLAGS WHEEL_PKG_DIR LIBPL PY_ENABLE_SHARED @@ -834,15 +852,16 @@ LIBSQLITE3_CFLAGS LIBNSL_LIBS LIBNSL_CFLAGS LIBMPDEC_INTERNAL -LIBMPDEC_LDFLAGS LIBMPDEC_CFLAGS -LIBFFI_INCLUDEDIR +MODULE__CTYPES_MALLOC_CLOSURE +LIBFFI_LIBS +LIBFFI_CFLAGS LIBEXPAT_INTERNAL -LIBEXPAT_LDFLAGS LIBEXPAT_CFLAGS TZPATH LIBUUID_LIBS LIBUUID_CFLAGS +PERF_TRAMPOLINE_OBJ SHLIBS CFLAGSFORSHARED LINKFORSHARED @@ -851,6 +870,8 @@ BLDSHARED LDCXXSHARED LDSHARED SHLIB_SUFFIX +DSYMUTIL_PATH +DSYMUTIL LIBTOOL_CRUFT OTHER_LIBTOOL_OPT UNIVERSAL_ARCH_FLAGS @@ -869,6 +890,9 @@ LLVM_PROF_FILE LLVM_PROF_MERGER PGO_PROF_USE_FLAG PGO_PROF_GEN_FLAG +MERGE_FDATA +LLVM_BOLT +PREBOLT_RULE LLVM_AR_FOUND LLVM_AR PROFILE_TASK @@ -888,6 +912,7 @@ AR LINK_PYTHON_OBJS LINK_PYTHON_DEPS LIBRARY_DEPS +NODE HOSTRUNNER STATIC_LIBPYTHON GNULD @@ -909,7 +934,6 @@ MULTIARCH_CPPFLAGS PLATFORM_TRIPLET MULTIARCH ac_ct_CXX -MAINCC CXX EGREP SED @@ -922,6 +946,7 @@ CPPFLAGS LDFLAGS CFLAGS CC +HAS_XCRUN EXPORT_MACOSX_DEPLOYMENT_TARGET CONFIGURE_MACOSX_DEPLOYMENT_TARGET _PYTHON_HOST_PLATFORM @@ -949,6 +974,7 @@ CONFIG_ARGS SOVERSION VERSION PYTHON_FOR_REGEN +PYTHON_FOR_BUILD_DEPS FREEZE_MODULE_DEPS FREEZE_MODULE FREEZE_MODULE_BOOTSTRAP_DEPS @@ -1016,7 +1042,6 @@ enable_universalsdk with_universal_archs with_framework_name enable_framework -with_cxx_main with_emscripten_target enable_wasm_dynamic_linking enable_wasm_pthreads @@ -1030,6 +1055,8 @@ enable_pystats with_assertions enable_optimizations with_lto +enable_bolt +with_dsymutil with_address_sanitizer with_memory_sanitizer with_undefined_behavior_sanitizer @@ -1061,7 +1088,6 @@ with_openssl with_openssl_rpath with_ssl_default_suites with_builtin_hashlib_hashes -with_experimental_isolated_subinterpreters enable_test_modules ' ac_precious_vars='build_alias @@ -1081,6 +1107,8 @@ HOSTRUNNER PROFILE_TASK LIBUUID_CFLAGS LIBUUID_LIBS +LIBFFI_CFLAGS +LIBFFI_LIBS LIBNSL_CFLAGS LIBNSL_LIBS LIBSQLITE3_CFLAGS @@ -1099,6 +1127,14 @@ LIBLZMA_CFLAGS LIBLZMA_LIBS LIBCRYPT_CFLAGS LIBCRYPT_LIBS +LIBREADLINE_CFLAGS +LIBREADLINE_LIBS +LIBEDIT_CFLAGS +LIBEDIT_LIBS +CURSES_CFLAGS +CURSES_LIBS +PANEL_CFLAGS +PANEL_LIBS LIBB2_CFLAGS LIBB2_LIBS' @@ -1746,6 +1782,8 @@ Optional Features: --enable-pystats enable internal statistics gathering (default is no) --enable-optimizations enable expensive, stable optimizations (PGO, etc.) (default is no) + --enable-bolt enable usage of the llvm-bolt post-link optimizer + (default is no) --enable-loadable-sqlite-extensions support loadable extensions in the sqlite3 module, see Doc/library/sqlite3.rst (default is no) @@ -1776,9 +1814,6 @@ Optional Packages: specify the name for the python framework on macOS only valid when --enable-framework is set. see Mac/README.rst (default is 'Python') - --with-cxx-main[=COMPILER] - compile main() and link Python executable with C++ - compiler specified in COMPILER (default is $CXX) --with-emscripten-target=[browser|node] Emscripten platform --with-suffix=SUFFIX set executable suffix to SUFFIX (default is empty, @@ -1793,6 +1828,8 @@ Optional Packages: --with-lto=[full|thin|no|yes] enable Link-Time-Optimization in any build (default is no) + --with-dsymutil link debug information into final executable with + dsymutil in macOS (default is no) --with-address-sanitizer enable AddressSanitizer memory error detector, 'asan' (default is no) @@ -1839,8 +1876,8 @@ Optional Packages: --with-wheel-pkg-dir=PATH Directory of wheel packages used by ensurepip (default: none) - --with(out)-readline[=editline] - use Editline for backend or disable readline module + --with(out)-readline[=editline|readline|no] + use libedit for backend or disable readline module --with-computed-gotos enable computed gotos in evaluation loop (enabled by default on supported compilers) --with-ensurepip[=install|upgrade|no] @@ -1861,9 +1898,6 @@ Optional Packages: --with-builtin-hashlib-hashes=md5,sha1,sha256,sha512,sha3,blake2 builtin hash modules, md5, sha1, sha256, sha512, sha3 (with shake), blake2 - --with-experimental-isolated-subinterpreters - better isolate subinterpreters, experimental build - mode (default is no) Some influential environment variables: PKG_CONFIG path to pkg-config utility @@ -1887,6 +1921,9 @@ Some influential environment variables: C compiler flags for LIBUUID, overriding pkg-config LIBUUID_LIBS linker flags for LIBUUID, overriding pkg-config + LIBFFI_CFLAGS + C compiler flags for LIBFFI, overriding pkg-config + LIBFFI_LIBS linker flags for LIBFFI, overriding pkg-config LIBNSL_CFLAGS C compiler flags for LIBNSL, overriding pkg-config LIBNSL_LIBS linker flags for LIBNSL, overriding pkg-config @@ -1914,6 +1951,20 @@ Some influential environment variables: C compiler flags for LIBCRYPT, overriding pkg-config LIBCRYPT_LIBS linker flags for LIBCRYPT, overriding pkg-config + LIBREADLINE_CFLAGS + C compiler flags for LIBREADLINE, overriding pkg-config + LIBREADLINE_LIBS + linker flags for LIBREADLINE, overriding pkg-config + LIBEDIT_CFLAGS + C compiler flags for LIBEDIT, overriding pkg-config + LIBEDIT_LIBS + linker flags for LIBEDIT, overriding pkg-config + CURSES_CFLAGS + C compiler flags for CURSES, overriding pkg-config + CURSES_LIBS linker flags for CURSES, overriding pkg-config + PANEL_CFLAGS + C compiler flags for PANEL, overriding pkg-config + PANEL_LIBS linker flags for PANEL, overriding pkg-config LIBB2_CFLAGS C compiler flags for LIBB2, overriding pkg-config LIBB2_LIBS linker flags for LIBB2, overriding pkg-config @@ -1921,7 +1972,7 @@ Some influential environment variables: Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. -Report bugs to <https://bugs.python.org/>. +Report bugs to <https://github.com/python/cpython/issues/>. _ACEOF ac_status=$? fi @@ -2143,9 +2194,9 @@ $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} -( $as_echo "## --------------------------------------- ## -## Report this to https://bugs.python.org/ ## -## --------------------------------------- ##" +( $as_echo "## -------------------------------------------------------- ## +## Report this to https://github.com/python/cpython/issues/ ## +## -------------------------------------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac @@ -3045,6 +3096,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + + + if test "$srcdir" != . -a "$srcdir" != "$(pwd)"; then # If we're building out-of-tree, we need to make sure the following # resources get picked up before their $srcdir counterparts. @@ -3286,6 +3343,7 @@ if test "x$cross_compiling" = xyes; then : FREEZE_MODULE_BOOTSTRAP_DEPS='$(srcdir)/Programs/_freeze_module.py' FREEZE_MODULE='$(FREEZE_MODULE_BOOTSTRAP)' FREEZE_MODULE_DEPS='$(FREEZE_MODULE_BOOTSTRAP_DEPS)' + PYTHON_FOR_BUILD_DEPS='' else @@ -3293,6 +3351,7 @@ else FREEZE_MODULE_BOOTSTRAP_DEPS="Programs/_freeze_module" FREEZE_MODULE='$(PYTHON_FOR_FREEZE) $(srcdir)/Programs/_freeze_module.py' FREEZE_MODULE_DEPS="_bootstrap_python \$(srcdir)/Programs/_freeze_module.py" + PYTHON_FOR_BUILD_DEPS='$(BUILDPYTHON)' fi @@ -3301,6 +3360,7 @@ fi + for ac_prog in python$PACKAGE_VERSION python3.10 python3.9 python3.8 python3.7 python3.6 python3 python do # Extract the first word of "$ac_prog", so it can be a program name with args. @@ -4032,8 +4092,68 @@ if test -z "$CFLAGS"; then CFLAGS= fi +case $host in #( + wasm64-*-emscripten) : + + as_fn_append CFLAGS " -sMEMORY64=1" + as_fn_append LDFLAGS " -sMEMORY64=1" + ;; #( + *) : + ;; +esac + if test "$ac_sys_system" = "Darwin" then + # Extract the first word of "xcrun", so it can be a program name with args. +set dummy xcrun; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_HAS_XCRUN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$HAS_XCRUN"; then + ac_cv_prog_HAS_XCRUN="$HAS_XCRUN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_HAS_XCRUN="yes" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_prog_HAS_XCRUN" && ac_cv_prog_HAS_XCRUN="missing" +fi +fi +HAS_XCRUN=$ac_cv_prog_HAS_XCRUN +if test -n "$HAS_XCRUN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAS_XCRUN" >&5 +$as_echo "$HAS_XCRUN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking macOS SDKROOT" >&5 +$as_echo_n "checking macOS SDKROOT... " >&6; } + if test -z "$SDKROOT"; then + if test "$HAS_XCRUN" = "yes"; then + SDKROOT=$(xcrun --show-sdk-path) + else + SDKROOT="/" + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SDKROOT" >&5 +$as_echo "$SDKROOT" >&6; } + # Compiler selection on MacOSX is more complicated than # AC_PROG_CC can handle, see Mac/README for more # information @@ -5217,6 +5337,39 @@ $as_echo "$ac_cv_path_EGREP" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CC compiler name" >&5 +$as_echo_n "checking for CC compiler name... " >&6; } +if ${ac_cv_cc_name+:} false; then : + $as_echo_n "(cached) " >&6 +else + +cat > conftest.c <<EOF +#if defined(__INTEL_COMPILER) || defined(__ICC) + icc +#elif defined(__ibmxl__) || defined(__xlc__) || defined(__xlC__) + xlc +#elif defined(_MSC_VER) + msvc +#elif defined(__clang__) + clang +#elif defined(__GNUC__) + gcc +#else +# error unknown compiler +#endif +EOF + +if $CPP $CPPFLAGS conftest.c >conftest.out 2>/dev/null; then + ac_cv_cc_name=`grep -v '^#' conftest.out | grep -v '^ *$' | tr -d ' '` +else + ac_cv_cc_name="unknown" +fi +rm -f conftest.c conftest.out + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cc_name" >&5 +$as_echo "$ac_cv_cc_name" >&6; } + # checks for UNIX variants that set C preprocessor variables # may set _GNU_SOURCE, __EXTENSIONS__, _POSIX_PTHREAD_SEMANTICS, # _POSIX_SOURCE, _POSIX_1_SOURCE, and more @@ -5415,35 +5568,6 @@ $as_echo "$ac_cv_safe_to_define___extensions__" >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-cxx-main=<compiler>" >&5 -$as_echo_n "checking for --with-cxx-main=<compiler>... " >&6; } - -# Check whether --with-cxx_main was given. -if test "${with_cxx_main+set}" = set; then : - withval=$with_cxx_main; - - case $withval in - no) with_cxx_main=no - MAINCC='$(CC)';; - yes) with_cxx_main=yes - MAINCC='$(CXX)';; - *) with_cxx_main=yes - MAINCC=$withval - if test -z "$CXX" - then - CXX=$withval - fi;; - esac -else - - with_cxx_main=no - MAINCC='$(CC)' - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_cxx_main" >&5 -$as_echo "$with_cxx_main" >&6; } - preset_cxx="$CXX" if test -z "$CXX" then @@ -6119,7 +6243,7 @@ cat > conftest.c <<EOF # error unknown wasm32 platform # endif #elif defined(__wasm64__) -# if defined(__EMSCRIPTEN) +# if defined(__EMSCRIPTEN__) wasm64-emscripten # elif defined(__wasi__) wasm64-wasi @@ -6176,6 +6300,70 @@ if test x$MULTIARCH != x; then fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PEP 11 support tier" >&5 +$as_echo_n "checking for PEP 11 support tier... " >&6; } +case $host/$ac_cv_cc_name in #( + x86_64-*-linux-gnu/gcc) : + PY_SUPPORT_TIER=1 ;; #( + x86_64-apple-darwin*/clang) : + PY_SUPPORT_TIER=1 ;; #( + i686-pc-windows-msvc/msvc) : + PY_SUPPORT_TIER=1 ;; #( + x86_64-pc-windows-msvc/msvc) : + PY_SUPPORT_TIER=1 ;; #( + + aarch64-apple-darwin*/clang) : + PY_SUPPORT_TIER=2 ;; #( + aarch64-*-linux-gnu/gcc) : + PY_SUPPORT_TIER=2 ;; #( + aarch64-*-linux-gnu/clang) : + PY_SUPPORT_TIER=2 ;; #( + powerpc64le-*-linux-gnu/gcc) : + PY_SUPPORT_TIER=2 ;; #( + x86_64-*-linux-gnu/clang) : + PY_SUPPORT_TIER=2 ;; #( + + aarch64-pc-windows-msvc/msvc) : + PY_SUPPORT_TIER=3 ;; #( + armv7l-*-linux-gnueabihf/gcc) : + PY_SUPPORT_TIER=3 ;; #( + powerpc64le-*-linux-gnu/clang) : + PY_SUPPORT_TIER=3 ;; #( + s390x-*-linux-gnu/gcc) : + PY_SUPPORT_TIER=3 ;; #( + wasm32-unknown-emscripten/clang) : + PY_SUPPORT_TIER=3 ;; #( + wasm32-unknown-wasi/clang) : + PY_SUPPORT_TIER=3 ;; #( + x86_64-*-freebsd*/clang) : + PY_SUPPORT_TIER=3 ;; #( + *) : + PY_SUPPORT_TIER=0 + ;; +esac + +case $PY_SUPPORT_TIER in #( + 1) : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $host/$ac_cv_cc_name has tier 1 (supported)" >&5 +$as_echo "$host/$ac_cv_cc_name has tier 1 (supported)" >&6; } ;; #( + 2) : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $host/$ac_cv_cc_name has tier 2 (supported)" >&5 +$as_echo "$host/$ac_cv_cc_name has tier 2 (supported)" >&6; } ;; #( + 3) : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $host/$ac_cv_cc_name has tier 3 (partially supported)" >&5 +$as_echo "$host/$ac_cv_cc_name has tier 3 (partially supported)" >&6; } ;; #( + *) : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $host/$ac_cv_cc_name is not supported" >&5 +$as_echo "$as_me: WARNING: $host/$ac_cv_cc_name is not supported" >&2;} + ;; +esac + + +cat >>confdefs.h <<_ACEOF +#define PY_SUPPORT_TIER $PY_SUPPORT_TIER +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -Wl,--no-as-needed" >&5 $as_echo_n "checking for -Wl,--no-as-needed... " >&6; } if ${ac_cv_wl_no_as_needed+:} false; then : @@ -6183,7 +6371,7 @@ if ${ac_cv_wl_no_as_needed+:} false; then : else save_LDFLAGS="$LDFLAGS" - as_fn_append LDFLAGS -Wl,--no-as-needed + as_fn_append LDFLAGS " -Wl,--no-as-needed" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -6462,7 +6650,7 @@ LDVERSION="$VERSION" $as_echo_n "checking LINKCC... " >&6; } if test -z "$LINKCC" then - LINKCC='$(PURIFY) $(MAINCC)' + LINKCC='$(PURIFY) $(CC)' case $ac_sys_system in QNX*) # qcc must be used because the other compilers do not @@ -6675,39 +6863,188 @@ if test "$cross_compiling" = yes; then fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking HOSTRUNNER" >&5 -$as_echo_n "checking HOSTRUNNER... " >&6; } if test -z "$HOSTRUNNER" then case $ac_sys_system/$ac_sys_emscripten_target in #( Emscripten/node*) : - if test "x$enable_wasm_pthreads" = xyes; then : + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}node", so it can be a program name with args. +set dummy ${ac_tool_prefix}node; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_NODE+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $NODE in + [\\/]* | ?:[\\/]*) + ac_cv_path_NODE="$NODE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_NODE="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +NODE=$ac_cv_path_NODE +if test -n "$NODE"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NODE" >&5 +$as_echo "$NODE" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_NODE"; then + ac_pt_NODE=$NODE + # Extract the first word of "node", so it can be a program name with args. +set dummy node; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_NODE+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_NODE in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_NODE="$ac_pt_NODE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_NODE="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_NODE=$ac_cv_path_ac_pt_NODE +if test -n "$ac_pt_NODE"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_NODE" >&5 +$as_echo "$ac_pt_NODE" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_NODE" = x; then + NODE="node" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + NODE=$ac_pt_NODE + fi +else + NODE="$ac_cv_path_NODE" +fi + + HOSTRUNNER="$NODE" + # bigint for ctypes c_longlong, c_longdouble + # no longer available in Node 16 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for node --experimental-wasm-bigint" >&5 +$as_echo_n "checking for node --experimental-wasm-bigint... " >&6; } +if ${ac_cv_tool_node_wasm_bigint+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if $NODE -v --experimental-wasm-bigint > /dev/null 2>&1; then + ac_cv_tool_node_wasm_bigint=yes + else + ac_cv_tool_node_wasm_bigint=no + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_tool_node_wasm_bigint" >&5 +$as_echo "$ac_cv_tool_node_wasm_bigint" >&6; } + if test "x$ac_cv_tool_node_wasm_bigint" = xyes; then : + + as_fn_append HOSTRUNNER " --experimental-wasm-bigint" - HOSTRUNNER='node --experimental-wasm-threads --experimental-wasm-bulk-memory' +fi + + if test "x$enable_wasm_pthreads" = xyes; then : + as_fn_append HOSTRUNNER " --experimental-wasm-threads" + # no longer available in Node 16 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for node --experimental-wasm-bulk-memory" >&5 +$as_echo_n "checking for node --experimental-wasm-bulk-memory... " >&6; } +if ${ac_cv_tool_node_wasm_bulk_memory+:} false; then : + $as_echo_n "(cached) " >&6 else - HOSTRUNNER='node' + if $NODE -v --experimental-wasm-bulk-memory > /dev/null 2>&1; then + ac_cv_tool_node_wasm_bulk_memory=yes + else + ac_cv_tool_node_wasm_bulk_memory=no + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_tool_node_wasm_bulk_memory" >&5 +$as_echo "$ac_cv_tool_node_wasm_bulk_memory" >&6; } + if test "x$ac_cv_tool_node_wasm_bulk_memory" = xyes; then : + + as_fn_append HOSTRUNNER " --experimental-wasm-bulk-memory" + +fi + +fi + if test "x$host_cpu" = xwasm64; then : + as_fn_append HOSTRUNNER " --experimental-wasm-memory64" fi ;; #( + WASI/*) : + HOSTRUNNER='wasmtime run --env PYTHONPATH=/$(shell realpath --relative-to $(abs_srcdir) $(abs_builddir))/$(shell cat pybuilddir.txt):/Lib --mapdir /::$(srcdir) --' ;; #( *) : HOSTRUNNER='' ;; esac fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking HOSTRUNNER" >&5 +$as_echo_n "checking HOSTRUNNER... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HOSTRUNNER" >&5 $as_echo "$HOSTRUNNER" >&6; } +if test -n "$HOSTRUNNER"; then + PYTHON_FOR_BUILD="_PYTHON_HOSTRUNNER='$HOSTRUNNER' $PYTHON_FOR_BUILD" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LDLIBRARY" >&5 $as_echo "$LDLIBRARY" >&6; } # LIBRARY_DEPS, LINK_PYTHON_OBJS and LINK_PYTHON_DEPS variable case $ac_sys_system/$ac_sys_emscripten_target in #( Emscripten/browser*) : - LIBRARY_DEPS='$(PY3LIBRARY) $(WASM_STDLIB)' ;; #( + LIBRARY_DEPS='$(PY3LIBRARY) $(WASM_STDLIB) python.html python.worker.js' ;; #( *) : LIBRARY_DEPS='$(PY3LIBRARY) $(EXPORTSYMS)' ;; @@ -7500,17 +7837,93 @@ $as_echo "$as_me: llvm-ar found via xcrun: ${LLVM_AR}" >&6;} # Any changes made here should be reflected in the GCC+Darwin case below if test $Py_LTO_POLICY = default then - LTOFLAGS="-flto -Wl,-export_dynamic" - LTOCFLAGS="-flto" + # Check that ThinLTO is accepted. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -flto=thin" >&5 +$as_echo_n "checking whether C compiler accepts -flto=thin... " >&6; } +if ${ax_cv_check_cflags___flto_thin+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -flto=thin" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags___flto_thin=yes +else + ax_cv_check_cflags___flto_thin=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___flto_thin" >&5 +$as_echo "$ax_cv_check_cflags___flto_thin" >&6; } +if test "x$ax_cv_check_cflags___flto_thin" = xyes; then : + + LTOFLAGS="-flto=thin -Wl,-export_dynamic -Wl,-object_path_lto,\"\$@\".lto" + LTOCFLAGS="-flto=thin" + +else + + LTOFLAGS="-flto -Wl,-export_dynamic -Wl,-object_path_lto,\"\$@\".lto" + LTOCFLAGS="-flto" + + +fi + else - LTOFLAGS="-flto=${Py_LTO_POLICY} -Wl,-export_dynamic" + LTOFLAGS="-flto=${Py_LTO_POLICY} -Wl,-export_dynamic -Wl,-object_path_lto,\"\$@\".lto" LTOCFLAGS="-flto=${Py_LTO_POLICY}" fi ;; *) if test $Py_LTO_POLICY = default then - LTOFLAGS="-flto" + # Check that ThinLTO is accepted + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -flto=thin" >&5 +$as_echo_n "checking whether C compiler accepts -flto=thin... " >&6; } +if ${ax_cv_check_cflags___flto_thin+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -flto=thin" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags___flto_thin=yes +else + ax_cv_check_cflags___flto_thin=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___flto_thin" >&5 +$as_echo "$ax_cv_check_cflags___flto_thin" >&6; } +if test "x$ax_cv_check_cflags___flto_thin" = xyes; then : + LTOFLAGS="-flto=thin" +else + LTOFLAGS="-flto" +fi + else LTOFLAGS="-flto=${Py_LTO_POLICY}" fi @@ -7532,7 +7945,7 @@ $as_echo "$as_me: llvm-ar found via xcrun: ${LLVM_AR}" >&6;} LDFLAGS_NOLTO="-fno-lto" case $ac_sys_system in Darwin*) - LTOFLAGS="-flto -Wl,-export_dynamic" + LTOFLAGS="-flto -Wl,-export_dynamic -Wl,-object_path_lto,\"\$@\".lto" LTOCFLAGS="-flto" ;; *) @@ -7553,16 +7966,271 @@ $as_echo "$as_me: llvm-ar found via xcrun: ${LLVM_AR}" >&6;} LDFLAGS_NODIST="$LDFLAGS_NODIST $LTOFLAGS" fi -# Enable PGO flags. +# Enable bolt flags +Py_BOLT='false' +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --enable-bolt" >&5 +$as_echo_n "checking for --enable-bolt... " >&6; } +# Check whether --enable-bolt was given. +if test "${enable_bolt+set}" = set; then : + enableval=$enable_bolt; +if test "$enableval" != no +then + Py_BOLT='true' + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; }; +else + Py_BOLT='false' + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; }; +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +if test "$Py_BOLT" = 'true' ; then + PREBOLT_RULE="${DEF_MAKE_ALL_RULE}" + DEF_MAKE_ALL_RULE="bolt-opt" + DEF_MAKE_RULE="build_all" + # These flags are required for bolt to work: + CFLAGS_NODIST="$CFLAGS_NODIST -fno-reorder-blocks-and-partition" + LDFLAGS_NODIST="$LDFLAGS_NODIST -Wl,--emit-relocs" + # These flags are required to get good performance from bolt: + CFLAGS_NODIST="$CFLAGS_NODIST -fno-pie" + # We want to add these no-pie flags to linking executables but not shared libraries: + LINKCC="$LINKCC -fno-pie -no-pie" + # Designate the DWARF version into 4 since the LLVM-BOLT does not support DWARF5 yet. + CFLAGS="$CFLAGS -gdwarf-4" + LDFLAGS="$LDFLAGS -gdwarf-4" -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}llvm-profdata", so it can be a program name with args. -set dummy ${ac_tool_prefix}llvm-profdata; ac_word=$2 + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}llvm-bolt", so it can be a program name with args. +set dummy ${ac_tool_prefix}llvm-bolt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_LLVM_BOLT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $LLVM_BOLT in + [\\/]* | ?:[\\/]*) + ac_cv_path_LLVM_BOLT="$LLVM_BOLT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in ${llvm_path} +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_LLVM_BOLT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +LLVM_BOLT=$ac_cv_path_LLVM_BOLT +if test -n "$LLVM_BOLT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_BOLT" >&5 +$as_echo "$LLVM_BOLT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_LLVM_BOLT"; then + ac_pt_LLVM_BOLT=$LLVM_BOLT + # Extract the first word of "llvm-bolt", so it can be a program name with args. +set dummy llvm-bolt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_LLVM_BOLT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_LLVM_BOLT in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_LLVM_BOLT="$ac_pt_LLVM_BOLT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in ${llvm_path} +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_LLVM_BOLT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_LLVM_BOLT=$ac_cv_path_ac_pt_LLVM_BOLT +if test -n "$ac_pt_LLVM_BOLT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_LLVM_BOLT" >&5 +$as_echo "$ac_pt_LLVM_BOLT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_LLVM_BOLT" = x; then + LLVM_BOLT="''" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LLVM_BOLT=$ac_pt_LLVM_BOLT + fi +else + LLVM_BOLT="$ac_cv_path_LLVM_BOLT" +fi + + if test -n "${LLVM_BOLT}" -a -x "${LLVM_BOLT}" + then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"Found llvm-bolt\"" >&5 +$as_echo "\"Found llvm-bolt\"" >&6; } + else + as_fn_error $? "llvm-bolt is required for a --enable-bolt build but could not be found." "$LINENO" 5 + fi + + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}merge-fdata", so it can be a program name with args. +set dummy ${ac_tool_prefix}merge-fdata; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_MERGE_FDATA+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MERGE_FDATA in + [\\/]* | ?:[\\/]*) + ac_cv_path_MERGE_FDATA="$MERGE_FDATA" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in ${llvm_path} +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_MERGE_FDATA="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +MERGE_FDATA=$ac_cv_path_MERGE_FDATA +if test -n "$MERGE_FDATA"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MERGE_FDATA" >&5 +$as_echo "$MERGE_FDATA" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_MERGE_FDATA"; then + ac_pt_MERGE_FDATA=$MERGE_FDATA + # Extract the first word of "merge-fdata", so it can be a program name with args. +set dummy merge-fdata; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_MERGE_FDATA+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_MERGE_FDATA in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_MERGE_FDATA="$ac_pt_MERGE_FDATA" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in ${llvm_path} +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_MERGE_FDATA="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_MERGE_FDATA=$ac_cv_path_ac_pt_MERGE_FDATA +if test -n "$ac_pt_MERGE_FDATA"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_MERGE_FDATA" >&5 +$as_echo "$ac_pt_MERGE_FDATA" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_MERGE_FDATA" = x; then + MERGE_FDATA="''" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + MERGE_FDATA=$ac_pt_MERGE_FDATA + fi +else + MERGE_FDATA="$ac_cv_path_MERGE_FDATA" +fi + + if test -n "${MERGE_FDATA}" -a -x "${MERGE_FDATA}" + then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"Found merge-fdata\"" >&5 +$as_echo "\"Found merge-fdata\"" >&6; } + else + as_fn_error $? "merge-fdata is required for a --enable-bolt build but could not be found." "$LINENO" 5 + fi +fi + +# Enable PGO flags. + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}llvm-profdata", so it can be a program name with args. +set dummy ${ac_tool_prefix}llvm-profdata; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_LLVM_PROFDATA+:} false; then : @@ -7856,6 +8524,8 @@ fi as_fn_append LDFLAGS_NODIST " -sALLOW_MEMORY_GROWTH -sTOTAL_MEMORY=20971520" + as_fn_append LDFLAGS_NODIST " -sWASM_BIGINT" + as_fn_append LDFLAGS_NODIST " -sFORCE_FILESYSTEM -lidbfs.js -lnodefs.js -lproxyfs.js -lworkerfs.js" if test "x$enable_wasm_dynamic_linking" = xyes; then : @@ -8851,8 +9521,9 @@ $as_echo "#define STDC_HEADERS 1" >>confdefs.h # checks for header files for ac_header in \ alloca.h asm/types.h bluetooth.h conio.h crypt.h direct.h dlfcn.h endian.h errno.h fcntl.h grp.h \ - ieeefp.h io.h langinfo.h libintl.h libutil.h linux/auxvec.h sys/auxv.h linux/memfd.h linux/random.h linux/soundcard.h \ - linux/tipc.h linux/wait.h netinet/in.h netpacket/packet.h poll.h process.h pthread.h pty.h \ + ieeefp.h io.h langinfo.h libintl.h libutil.h linux/auxvec.h sys/auxv.h linux/fs.h linux/memfd.h \ + linux/random.h linux/soundcard.h \ + linux/tipc.h linux/wait.h netdb.h netinet/in.h netpacket/packet.h poll.h process.h pthread.h pty.h \ sched.h setjmp.h shadow.h signal.h spawn.h stropts.h sys/audioio.h sys/bsdtty.h sys/devpoll.h \ sys/endian.h sys/epoll.h sys/event.h sys/eventfd.h sys/file.h sys/ioctl.h sys/kern_control.h \ sys/loadavg.h sys/lock.h sys/memfd.h sys/mkdev.h sys/mman.h sys/modem.h sys/param.h sys/poll.h \ @@ -10385,6 +11056,81 @@ else $as_echo "no" >&6; } fi +# Check for --with-dsymutil + + +DSYMUTIL= +DSYMUTIL_PATH= +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-dsymutil" >&5 +$as_echo_n "checking for --with-dsymutil... " >&6; } + +# Check whether --with-dsymutil was given. +if test "${with_dsymutil+set}" = set; then : + withval=$with_dsymutil; +if test "$withval" != no +then + if test "$MACHDEP" != "darwin"; then + as_fn_error $? "dsymutil debug linking is only available in macOS." "$LINENO" 5 + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; }; + DSYMUTIL='true' +else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; }; DSYMUTIL= +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +if test "$DSYMUTIL"; then + # Extract the first word of "dsymutil", so it can be a program name with args. +set dummy dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DSYMUTIL_PATH+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DSYMUTIL_PATH in + [\\/]* | ?:[\\/]*) + ac_cv_path_DSYMUTIL_PATH="$DSYMUTIL_PATH" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_DSYMUTIL_PATH="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_DSYMUTIL_PATH" && ac_cv_path_DSYMUTIL_PATH="not found" + ;; +esac +fi +DSYMUTIL_PATH=$ac_cv_path_DSYMUTIL_PATH +if test -n "$DSYMUTIL_PATH"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL_PATH" >&5 +$as_echo "$DSYMUTIL_PATH" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test "$DSYMUTIL_PATH" = "not found"; then + as_fn_error $? "dsymutil command not found on \$PATH" "$LINENO" 5 + fi +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dyld" >&5 $as_echo_n "checking for dyld... " >&6; } case $ac_sys_system/$ac_sys_release in @@ -10829,6 +11575,35 @@ esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SHLIBS" >&5 $as_echo "$SHLIBS" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking perf trampoline" >&5 +$as_echo_n "checking perf trampoline... " >&6; } +case $PLATFORM_TRIPLET in #( + x86_64-linux-gnu) : + perf_trampoline=yes ;; #( + aarch64-linux-gnu) : + perf_trampoline=yes ;; #( + *) : + perf_trampoline=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $perf_trampoline" >&5 +$as_echo "$perf_trampoline" >&6; } + +if test "x$perf_trampoline" = xyes; then : + + +$as_echo "#define PY_HAVE_PERF_TRAMPOLINE 1" >>confdefs.h + + PERF_TRAMPOLINE_OBJ=Objects/asm_trampoline.o + + if test "x$Py_DEBUG" = xtrue; then : + + as_fn_append BASECFLAGS " -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer" + +fi + +fi + # checks for libraries { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sendfile in -lsendfile" >&5 @@ -11065,7 +11840,15 @@ fi echo "$LIBUUID_PKG_ERRORS" >&5 - for ac_header in uuid/uuid.h + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS + + + CPPFLAGS="$CPPFLAGS $LIBUUID_CFLAGS" + LDFLAGS="$LDFLAGS $LIBUUID_LIBS" + for ac_header in uuid/uuid.h do : ac_fn_c_check_header_mongrel "$LINENO" "uuid/uuid.h" "ac_cv_header_uuid_uuid_h" "$ac_includes_default" if test "x$ac_cv_header_uuid_uuid_h" = xyes; then : @@ -11073,11 +11856,7 @@ if test "x$ac_cv_header_uuid_uuid_h" = xyes; then : #define HAVE_UUID_UUID_H 1 _ACEOF - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS - + py_check_lib_save_LIBS=$LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_generate_time in -luuid" >&5 $as_echo_n "checking for uuid_generate_time in -luuid... " >&6; } if ${ac_cv_lib_uuid_uuid_generate_time+:} false; then : @@ -11118,20 +11897,10 @@ if test "x$ac_cv_lib_uuid_uuid_generate_time" = xyes; then : have_uuid=yes fi +LIBS=$py_check_lib_save_LIBS -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS - - - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_generate_time_safe in -luuid" >&5 + py_check_lib_save_LIBS=$LIBS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_generate_time_safe in -luuid" >&5 $as_echo_n "checking for uuid_generate_time_safe in -luuid... " >&6; } if ${ac_cv_lib_uuid_uuid_generate_time_safe+:} false; then : $as_echo_n "(cached) " >&6 @@ -11168,30 +11937,31 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_uuid_uuid_generate_time_safe" >&5 $as_echo "$ac_cv_lib_uuid_uuid_generate_time_safe" >&6; } if test "x$ac_cv_lib_uuid_uuid_generate_time_safe" = xyes; then : - - have_uuid=yes + have_uuid=yes $as_echo "#define HAVE_UUID_GENERATE_TIME_SAFE 1" >>confdefs.h fi +LIBS=$py_check_lib_save_LIBS -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS +fi - if test "x$have_uuid" = xyes; then : +done + + if test "x$have_uuid" = xyes; then : LIBUUID_CFLAGS=${LIBUUID_CFLAGS-""} LIBUUID_LIBS=${LIBUUID_LIBS-"-luuid"} fi -fi +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS -done @@ -11199,7 +11969,15 @@ elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - for ac_header in uuid/uuid.h + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS + + + CPPFLAGS="$CPPFLAGS $LIBUUID_CFLAGS" + LDFLAGS="$LDFLAGS $LIBUUID_LIBS" + for ac_header in uuid/uuid.h do : ac_fn_c_check_header_mongrel "$LINENO" "uuid/uuid.h" "ac_cv_header_uuid_uuid_h" "$ac_includes_default" if test "x$ac_cv_header_uuid_uuid_h" = xyes; then : @@ -11207,11 +11985,7 @@ if test "x$ac_cv_header_uuid_uuid_h" = xyes; then : #define HAVE_UUID_UUID_H 1 _ACEOF - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS - + py_check_lib_save_LIBS=$LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_generate_time in -luuid" >&5 $as_echo_n "checking for uuid_generate_time in -luuid... " >&6; } if ${ac_cv_lib_uuid_uuid_generate_time+:} false; then : @@ -11252,20 +12026,10 @@ if test "x$ac_cv_lib_uuid_uuid_generate_time" = xyes; then : have_uuid=yes fi +LIBS=$py_check_lib_save_LIBS -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS - - - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_generate_time_safe in -luuid" >&5 + py_check_lib_save_LIBS=$LIBS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_generate_time_safe in -luuid" >&5 $as_echo_n "checking for uuid_generate_time_safe in -luuid... " >&6; } if ${ac_cv_lib_uuid_uuid_generate_time_safe+:} false; then : $as_echo_n "(cached) " >&6 @@ -11302,19 +12066,18 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_uuid_uuid_generate_time_safe" >&5 $as_echo "$ac_cv_lib_uuid_uuid_generate_time_safe" >&6; } if test "x$ac_cv_lib_uuid_uuid_generate_time_safe" = xyes; then : - - have_uuid=yes + have_uuid=yes $as_echo "#define HAVE_UUID_GENERATE_TIME_SAFE 1" >>confdefs.h fi +LIBS=$py_check_lib_save_LIBS -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS +fi + +done if test "x$have_uuid" = xyes; then : @@ -11323,9 +12086,11 @@ LIBS=$save_LIBS fi -fi +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS -done @@ -11826,7 +12591,6 @@ fi - # Check for use of the system libffi library { $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-system-ffi" >&5 $as_echo_n "checking for --with-system-ffi... " >&6; } @@ -11862,160 +12626,24 @@ $as_echo "$as_me: WARNING: --with(out)-system-ffi is ignored on this platform" > 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="" -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; } - -# Check whether --with-system_libmpdec was given. -if test "${with_system_libmpdec+set}" = set; then : - withval=$with_system_libmpdec; -else - with_system_libmpdec="no" -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_system_libmpdec" >&5 -$as_echo "$with_system_libmpdec" >&6; } - -if test "x$with_system_libmpdec" = xyes; then : - - LIBMPDEC_CFLAGS=${LIBMPDEC_CFLAGS-""} - LIBMPDEC_LDFLAGS=${LIBMPDEC_LDFLAGS-"-lmpdec"} - LIBMPDEC_INTERNAL= - -else - - LIBMPDEC_CFLAGS="-I\$(srcdir)/Modules/_decimal/libmpdec" - LIBMPDEC_LDFLAGS="-lm \$(LIBMPDEC_A)" - LIBMPDEC_INTERNAL="\$(LIBMPDEC_A)" - -fi - - - - - -# Check whether _decimal should use a coroutine-local or thread-local context -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-decimal-contextvar" >&5 -$as_echo_n "checking for --with-decimal-contextvar... " >&6; } - -# Check whether --with-decimal_contextvar was given. -if test "${with_decimal_contextvar+set}" = set; then : - withval=$with_decimal_contextvar; -else - with_decimal_contextvar="yes" -fi - - -if test "$with_decimal_contextvar" != "no" -then - -$as_echo "#define WITH_DECIMAL_CONTEXTVAR 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_decimal_contextvar" >&5 -$as_echo "$with_decimal_contextvar" >&6; } - -# Check for libmpdec machine flavor -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for decimal libmpdec machine" >&5 -$as_echo_n "checking for decimal libmpdec machine... " >&6; } -case $ac_sys_system in #( - Darwin*) : - libmpdec_system=Darwin ;; #( - SunOS*) : - libmpdec_system=sunos ;; #( - *) : - libmpdec_system=other - ;; -esac - -libmpdec_machine=unknown -if test "$libmpdec_system" = Darwin; then - # universal here means: build libmpdec with the same arch options - # the python interpreter was built with - libmpdec_machine=universal -elif test $ac_cv_sizeof_size_t -eq 8; then - if test "$ac_cv_gcc_asm_for_x64" = yes; then - libmpdec_machine=x64 - elif test "$ac_cv_type___uint128_t" = yes; then - libmpdec_machine=uint128 - else - libmpdec_machine=ansi64 - fi -elif test $ac_cv_sizeof_size_t -eq 4; then - if test "$ac_cv_gcc_asm_for_x87" = yes -a "$libmpdec_system" != sunos; then - case $CC in #( - *gcc*) : - libmpdec_machine=ppro ;; #( - *clang*) : - libmpdec_machine=ppro ;; #( - *) : - libmpdec_machine=ansi32 - ;; -esac - else - libmpdec_machine=ansi32 - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libmpdec_machine" >&5 -$as_echo "$libmpdec_machine" >&6; } - -case $libmpdec_machine in #( - x64) : - as_fn_append LIBMPDEC_CFLAGS " -DCONFIG_64=1 -DASM=1" ;; #( - uint128) : - as_fn_append LIBMPDEC_CFLAGS " -DCONFIG_64=1 -DANSI=1 -DHAVE_UINT128_T=1" ;; #( - ansi64) : - as_fn_append LIBMPDEC_CFLAGS " -DCONFIG_64=1 -DANSI=1" ;; #( - ppro) : - as_fn_append LIBMPDEC_CFLAGS " -DCONFIG_32=1 -DANSI=1 -DASM=1 -Wno-unknown-pragmas" ;; #( - ansi32) : - as_fn_append LIBMPDEC_CFLAGS " -DCONFIG_32=1 -DANSI=1" ;; #( - ansi-legacy) : - as_fn_append LIBMPDEC_CFLAGS " -DCONFIG_32=1 -DANSI=1 -DLEGACY_COMPILER=1" ;; #( - universal) : - as_fn_append LIBMPDEC_CFLAGS " -DUNIVERSAL=1" ;; #( - *) : - as_fn_error $? "_decimal: unsupported architecture" "$LINENO" 5 - ;; -esac - -if test "$have_ipa_pure_const_bug" = yes; then - # Some versions of gcc miscompile inline asm: - # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46491 - # https://gcc.gnu.org/ml/gcc/2010-11/msg00366.html - as_fn_append LIBMPDEC_CFLAGS " -fno-ipa-pure-const" -fi - -if test "$have_glibc_memmove_bug" = yes; then - # _FORTIFY_SOURCE wrappers for memmove and bcopy are incorrect: - # https://sourceware.org/ml/libc-alpha/2010-12/msg00009.html - as_fn_append LIBMPDEC_CFLAGS " -U_FORTIFY_SOURCE" -fi - +have_libffi=missing +if test "x$with_system_ffi" = xyes; then : pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBNSL" >&5 -$as_echo_n "checking for LIBNSL... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBFFI" >&5 +$as_echo_n "checking for LIBFFI... " >&6; } -if test -n "$LIBNSL_CFLAGS"; then - pkg_cv_LIBNSL_CFLAGS="$LIBNSL_CFLAGS" +if test -n "$LIBFFI_CFLAGS"; then + pkg_cv_LIBFFI_CFLAGS="$LIBFFI_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libnsl\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libnsl") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libffi\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libffi") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_LIBNSL_CFLAGS=`$PKG_CONFIG --cflags "libnsl" 2>/dev/null` + pkg_cv_LIBFFI_CFLAGS=`$PKG_CONFIG --cflags "libffi" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -12023,16 +12651,16 @@ fi else pkg_failed=untried fi -if test -n "$LIBNSL_LIBS"; then - pkg_cv_LIBNSL_LIBS="$LIBNSL_LIBS" +if test -n "$LIBFFI_LIBS"; then + pkg_cv_LIBFFI_LIBS="$LIBFFI_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libnsl\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libnsl") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libffi\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libffi") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_LIBNSL_LIBS=`$PKG_CONFIG --libs "libnsl" 2>/dev/null` + pkg_cv_LIBFFI_LIBS=`$PKG_CONFIG --libs "libffi" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -12053,27 +12681,32 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - LIBNSL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libnsl" 2>&1` + LIBFFI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libffi" 2>&1` else - LIBNSL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libnsl" 2>&1` + LIBFFI_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libffi" 2>&1` fi # Put the nasty error message in config.log where it belongs - echo "$LIBNSL_PKG_ERRORS" >&5 + echo "$LIBFFI_PKG_ERRORS" >&5 - LIBNSL_CFLAGS=${LIBNSL_CFLAGS-""} - save_CFLAGS=$CFLAGS + save_CFLAGS=$CFLAGS save_CPPFLAGS=$CPPFLAGS save_LDFLAGS=$LDFLAGS save_LIBS=$LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing yp_match" >&5 -$as_echo_n "checking for library containing yp_match... " >&6; } -if ${ac_cv_search_yp_match+:} false; then : + CPPFLAGS="$CPPFLAGS $LIBFFI_CFLAGS" + LDFLAGS="$LDFLAGS $LIBFFI_LIBS" + ac_fn_c_check_header_mongrel "$LINENO" "ffi.h" "ac_cv_header_ffi_h" "$ac_includes_default" +if test "x$ac_cv_header_ffi_h" = xyes; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ffi_call in -lffi" >&5 +$as_echo_n "checking for ffi_call in -lffi... " >&6; } +if ${ac_cv_lib_ffi_ffi_call+:} false; then : $as_echo_n "(cached) " >&6 else - ac_func_search_save_LIBS=$LIBS + ac_check_lib_save_LIBS=$LIBS +LIBS="-lffi $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -12083,84 +12716,70 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char yp_match (); +char ffi_call (); int main () { -return yp_match (); +return ffi_call (); ; return 0; } _ACEOF -for ac_lib in '' nsl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_yp_match=$ac_res +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ffi_ffi_call=yes +else + ac_cv_lib_ffi_ffi_call=no fi rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_yp_match+:} false; then : - break + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -done -if ${ac_cv_search_yp_match+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ffi_ffi_call" >&5 +$as_echo "$ac_cv_lib_ffi_ffi_call" >&6; } +if test "x$ac_cv_lib_ffi_ffi_call" = xyes; then : + + have_libffi=yes + LIBFFI_CFLAGS=${LIBFFI_CFLAGS-""} + LIBFFI_LIBS=${LIBFFI_LIBS-"-lffi"} else - ac_cv_search_yp_match=no + have_libffi=no fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_yp_match" >&5 -$as_echo "$ac_cv_search_yp_match" >&6; } -ac_res=$ac_cv_search_yp_match -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - have_nis=yes -else - have_nis=no + + fi + CFLAGS=$save_CFLAGS CPPFLAGS=$save_CPPFLAGS LDFLAGS=$save_LDFLAGS LIBS=$save_LIBS - case $ac_cv_search_yp_match in #( - no) : - libnsl="" ;; #( - "none required") : - libnsl="" ;; #( - *) : - libnsl="$ac_cv_search_yp_match" - ;; -esac - LIBNSL_LIBS=${LIBNSL_LIBS-$libnsl} elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - LIBNSL_CFLAGS=${LIBNSL_CFLAGS-""} - save_CFLAGS=$CFLAGS + save_CFLAGS=$CFLAGS save_CPPFLAGS=$CPPFLAGS save_LDFLAGS=$LDFLAGS save_LIBS=$LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing yp_match" >&5 -$as_echo_n "checking for library containing yp_match... " >&6; } -if ${ac_cv_search_yp_match+:} false; then : + CPPFLAGS="$CPPFLAGS $LIBFFI_CFLAGS" + LDFLAGS="$LDFLAGS $LIBFFI_LIBS" + ac_fn_c_check_header_mongrel "$LINENO" "ffi.h" "ac_cv_header_ffi_h" "$ac_includes_default" +if test "x$ac_cv_header_ffi_h" = xyes; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ffi_call in -lffi" >&5 +$as_echo_n "checking for ffi_call in -lffi... " >&6; } +if ${ac_cv_lib_ffi_ffi_call+:} false; then : $as_echo_n "(cached) " >&6 else - ac_func_search_save_LIBS=$LIBS + ac_check_lib_save_LIBS=$LIBS +LIBS="-lffi $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -12170,95 +12789,119 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char yp_match (); +char ffi_call (); int main () { -return yp_match (); +return ffi_call (); ; return 0; } _ACEOF -for ac_lib in '' nsl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_yp_match=$ac_res +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ffi_ffi_call=yes +else + ac_cv_lib_ffi_ffi_call=no fi rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_yp_match+:} false; then : - break + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -done -if ${ac_cv_search_yp_match+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ffi_ffi_call" >&5 +$as_echo "$ac_cv_lib_ffi_ffi_call" >&6; } +if test "x$ac_cv_lib_ffi_ffi_call" = xyes; then : + + have_libffi=yes + LIBFFI_CFLAGS=${LIBFFI_CFLAGS-""} + LIBFFI_LIBS=${LIBFFI_LIBS-"-lffi"} else - ac_cv_search_yp_match=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + have_libffi=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_yp_match" >&5 -$as_echo "$ac_cv_search_yp_match" >&6; } -ac_res=$ac_cv_search_yp_match -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - have_nis=yes -else - have_nis=no + + fi + CFLAGS=$save_CFLAGS CPPFLAGS=$save_CPPFLAGS LDFLAGS=$save_LDFLAGS LIBS=$save_LIBS - case $ac_cv_search_yp_match in #( - no) : - libnsl="" ;; #( - "none required") : - libnsl="" ;; #( - *) : - libnsl="$ac_cv_search_yp_match" - ;; -esac - LIBNSL_LIBS=${LIBNSL_LIBS-$libnsl} else - LIBNSL_CFLAGS=$pkg_cv_LIBNSL_CFLAGS - LIBNSL_LIBS=$pkg_cv_LIBNSL_LIBS + LIBFFI_CFLAGS=$pkg_cv_LIBFFI_CFLAGS + LIBFFI_LIBS=$pkg_cv_LIBFFI_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - have_nis=yes + have_libffi=yes fi -if test "x$have_nis" = xyes; then : +else - save_CFLAGS=$CFLAGS + if test "x$ac_sys_system" = xDarwin; then : + + save_CFLAGS=$CFLAGS save_CPPFLAGS=$CPPFLAGS save_LDFLAGS=$LDFLAGS save_LIBS=$LIBS - CPPFLAGS="$LIBNSL_CFLAGS $CFLAGS" - for ac_header in rpc/rpc.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "rpc/rpc.h" "ac_cv_header_rpc_rpc_h" "$ac_includes_default" -if test "x$ac_cv_header_rpc_rpc_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_RPC_RPC_H 1 + CFLAGS="-I${SDKROOT}/usr/include/ffi $CFLAGS" + ac_fn_c_check_header_mongrel "$LINENO" "ffi.h" "ac_cv_header_ffi_h" "$ac_includes_default" +if test "x$ac_cv_header_ffi_h" = xyes; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ffi_call in -lffi" >&5 +$as_echo_n "checking for ffi_call in -lffi... " >&6; } +if ${ac_cv_lib_ffi_ffi_call+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lffi $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ffi_call (); +int +main () +{ +return ffi_call (); + ; + return 0; +} _ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ffi_ffi_call=yes +else + ac_cv_lib_ffi_ffi_call=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ffi_ffi_call" >&5 +$as_echo "$ac_cv_lib_ffi_ffi_call" >&6; } +if test "x$ac_cv_lib_ffi_ffi_call" = xyes; then : + + have_libffi=yes + LIBFFI_CFLAGS="-I${SDKROOT}/usr/include/ffi -DUSING_APPLE_OS_LIBFFI=1" + LIBFFI_LIBS="-lffi" + +else + have_libffi=no +fi + fi -done CFLAGS=$save_CFLAGS @@ -12270,497 +12913,372 @@ LIBS=$save_LIBS fi -case $ac_sys_system in #( - NetBSD*) : - OSSAUDIODEV_LIBS="-lossaudio" ;; #( - *) : - OSSAUDIODEV_LIBS="" - ;; -esac - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBSQLITE3" >&5 -$as_echo_n "checking for LIBSQLITE3... " >&6; } - -if test -n "$LIBSQLITE3_CFLAGS"; then - pkg_cv_LIBSQLITE3_CFLAGS="$LIBSQLITE3_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sqlite3 >= 3.7.15\""; } >&5 - ($PKG_CONFIG --exists --print-errors "sqlite3 >= 3.7.15") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_LIBSQLITE3_CFLAGS=`$PKG_CONFIG --cflags "sqlite3 >= 3.7.15" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$LIBSQLITE3_LIBS"; then - pkg_cv_LIBSQLITE3_LIBS="$LIBSQLITE3_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sqlite3 >= 3.7.15\""; } >&5 - ($PKG_CONFIG --exists --print-errors "sqlite3 >= 3.7.15") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_LIBSQLITE3_LIBS=`$PKG_CONFIG --libs "sqlite3 >= 3.7.15" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no fi - if test $_pkg_short_errors_supported = yes; then - LIBSQLITE3_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "sqlite3 >= 3.7.15" 2>&1` - else - LIBSQLITE3_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "sqlite3 >= 3.7.15" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$LIBSQLITE3_PKG_ERRORS" >&5 - - - LIBSQLITE3_CFLAGS=${LIBSQLITE3_CFLAGS-""} - LIBSQLITE3_LIBS=${LIBSQLITE3_LIBS-"-lsqlite3"} +if test "x$have_libffi" = xyes; then : -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - LIBSQLITE3_CFLAGS=${LIBSQLITE3_CFLAGS-""} - LIBSQLITE3_LIBS=${LIBSQLITE3_LIBS-"-lsqlite3"} + ctypes_malloc_closure=no + case $ac_sys_system in #( + Darwin) : + as_fn_append LIBFFI_CFLAGS " -I\$(srcdir)/Modules/_ctypes/darwin -DMACOSX" + ctypes_malloc_closure=yes + ;; #( + sunos5) : + as_fn_append LIBFFI_LIBS " -mimpure-text" + ;; #( + *) : + ;; +esac + if test "x$ctypes_malloc_closure" = xyes; then : -else - LIBSQLITE3_CFLAGS=$pkg_cv_LIBSQLITE3_CFLAGS - LIBSQLITE3_LIBS=$pkg_cv_LIBSQLITE3_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + MODULE__CTYPES_MALLOC_CLOSURE=_ctypes/malloc_closure.c + as_fn_append LIBFFI_CFLAGS " -DUSING_MALLOC_CLOSURE_DOT_C=1" fi -as_fn_append LIBSQLITE3_CFLAGS ' -I$(srcdir)/Modules/_sqlite' + if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + as_fn_append LIBFFI_LIBS " -ldl" +fi -save_CFLAGS=$CFLAGS + save_CFLAGS=$CFLAGS save_CPPFLAGS=$CPPFLAGS save_LDFLAGS=$LDFLAGS save_LIBS=$LIBS - CPPFLAGS="$LIBSQLITE3_CFLAGS $CFLAGS" - LDFLAGS="$LIBSQLITE3_LIBS $LDFLAGS" + CFLAGS="$LIBFFI_CFLAGS $CFLAGS" + LDFLAGS="$LIBFFI_LIBS $LDFLAGS" - ac_fn_c_check_header_mongrel "$LINENO" "sqlite3.h" "ac_cv_header_sqlite3_h" "$ac_includes_default" -if test "x$ac_cv_header_sqlite3_h" = xyes; then : - have_sqlite3=yes - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ffi_prep_cif_var" >&5 +$as_echo_n "checking for ffi_prep_cif_var... " >&6; } +if ${ac_cv_func_ffi_prep_cif_var+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - - - #include <sqlite3.h> - #if SQLITE_VERSION_NUMBER < 3007015 - # error "SQLite 3.7.15 or higher required" - #endif - +#include <ffi.h> int main () { - +void *x=ffi_prep_cif_var ; return 0; } - _ACEOF if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_ffi_prep_cif_var=yes +else + ac_cv_func_ffi_prep_cif_var=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - have_supported_sqlite3=yes +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_ffi_prep_cif_var" >&5 +$as_echo "$ac_cv_func_ffi_prep_cif_var" >&6; } + if test "x$ac_cv_func_ffi_prep_cif_var" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_bind_double in -lsqlite3" >&5 -$as_echo_n "checking for sqlite3_bind_double in -lsqlite3... " >&6; } -if ${ac_cv_lib_sqlite3_sqlite3_bind_double+:} false; then : +$as_echo "#define HAVE_FFI_PREP_CIF_VAR 1" >>confdefs.h + +fi + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ffi_prep_closure_loc" >&5 +$as_echo_n "checking for ffi_prep_closure_loc... " >&6; } +if ${ac_cv_func_ffi_prep_closure_loc+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsqlite3 $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char sqlite3_bind_double (); +#include <ffi.h> int main () { -return sqlite3_bind_double (); +void *x=ffi_prep_closure_loc ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_sqlite3_sqlite3_bind_double=yes +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_ffi_prep_closure_loc=yes else - ac_cv_lib_sqlite3_sqlite3_bind_double=no + ac_cv_func_ffi_prep_closure_loc=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_bind_double" >&5 -$as_echo "$ac_cv_lib_sqlite3_sqlite3_bind_double" >&6; } -if test "x$ac_cv_lib_sqlite3_sqlite3_bind_double" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSQLITE3 1 -_ACEOF +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_ffi_prep_closure_loc" >&5 +$as_echo "$ac_cv_func_ffi_prep_closure_loc" >&6; } + if test "x$ac_cv_func_ffi_prep_closure_loc" = xyes; then : - LIBS="-lsqlite3 $LIBS" +$as_echo "#define HAVE_FFI_PREP_CLOSURE_LOC 1" >>confdefs.h -else +fi - have_supported_sqlite3=no -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_column_decltype in -lsqlite3" >&5 -$as_echo_n "checking for sqlite3_column_decltype in -lsqlite3... " >&6; } -if ${ac_cv_lib_sqlite3_sqlite3_column_decltype+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ffi_closure_alloc" >&5 +$as_echo_n "checking for ffi_closure_alloc... " >&6; } +if ${ac_cv_func_ffi_closure_alloc+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsqlite3 $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char sqlite3_column_decltype (); +#include <ffi.h> int main () { -return sqlite3_column_decltype (); +void *x=ffi_closure_alloc ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_sqlite3_sqlite3_column_decltype=yes +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_ffi_closure_alloc=yes else - ac_cv_lib_sqlite3_sqlite3_column_decltype=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + ac_cv_func_ffi_closure_alloc=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_column_decltype" >&5 -$as_echo "$ac_cv_lib_sqlite3_sqlite3_column_decltype" >&6; } -if test "x$ac_cv_lib_sqlite3_sqlite3_column_decltype" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSQLITE3 1 -_ACEOF - - LIBS="-lsqlite3 $LIBS" - -else - - have_supported_sqlite3=no +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_ffi_closure_alloc" >&5 +$as_echo "$ac_cv_func_ffi_closure_alloc" >&6; } + if test "x$ac_cv_func_ffi_closure_alloc" = xyes; then : +$as_echo "#define HAVE_FFI_CLOSURE_ALLOC 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_column_double in -lsqlite3" >&5 -$as_echo_n "checking for sqlite3_column_double in -lsqlite3... " >&6; } -if ${ac_cv_lib_sqlite3_sqlite3_column_double+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsqlite3 $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char sqlite3_column_double (); -int -main () -{ -return sqlite3_column_double (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_sqlite3_sqlite3_column_double=yes -else - ac_cv_lib_sqlite3_sqlite3_column_double=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_column_double" >&5 -$as_echo "$ac_cv_lib_sqlite3_sqlite3_column_double" >&6; } -if test "x$ac_cv_lib_sqlite3_sqlite3_column_double" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSQLITE3 1 -_ACEOF - - LIBS="-lsqlite3 $LIBS" -else - have_supported_sqlite3=no -fi +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_complete in -lsqlite3" >&5 -$as_echo_n "checking for sqlite3_complete in -lsqlite3... " >&6; } -if ${ac_cv_lib_sqlite3_sqlite3_complete+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsqlite3 $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char sqlite3_complete (); -int -main () -{ -return sqlite3_complete (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_sqlite3_sqlite3_complete=yes -else - ac_cv_lib_sqlite3_sqlite3_complete=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_complete" >&5 -$as_echo "$ac_cv_lib_sqlite3_sqlite3_complete" >&6; } -if test "x$ac_cv_lib_sqlite3_sqlite3_complete" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSQLITE3 1 -_ACEOF - LIBS="-lsqlite3 $LIBS" +# 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; } +# Check whether --with-system_libmpdec was given. +if test "${with_system_libmpdec+set}" = set; then : + withval=$with_system_libmpdec; else - - have_supported_sqlite3=no - + with_system_libmpdec="no" fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_system_libmpdec" >&5 +$as_echo "$with_system_libmpdec" >&6; } +if test "x$with_system_libmpdec" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_enable_shared_cache in -lsqlite3" >&5 -$as_echo_n "checking for sqlite3_enable_shared_cache in -lsqlite3... " >&6; } -if ${ac_cv_lib_sqlite3_sqlite3_enable_shared_cache+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsqlite3 $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + LIBMPDEC_CFLAGS=${LIBMPDEC_CFLAGS-""} + LIBMPDEC_LDFLAGS=${LIBMPDEC_LDFLAGS-"-lmpdec"} + LIBMPDEC_INTERNAL= -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char sqlite3_enable_shared_cache (); -int -main () -{ -return sqlite3_enable_shared_cache (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_sqlite3_sqlite3_enable_shared_cache=yes else - ac_cv_lib_sqlite3_sqlite3_enable_shared_cache=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_enable_shared_cache" >&5 -$as_echo "$ac_cv_lib_sqlite3_sqlite3_enable_shared_cache" >&6; } -if test "x$ac_cv_lib_sqlite3_sqlite3_enable_shared_cache" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSQLITE3 1 -_ACEOF - LIBS="-lsqlite3 $LIBS" + LIBMPDEC_CFLAGS="-I\$(srcdir)/Modules/_decimal/libmpdec" + LIBMPDEC_LDFLAGS="-lm \$(LIBMPDEC_A)" + LIBMPDEC_INTERNAL="\$(LIBMPDEC_A)" -else + if test "x$with_pydebug" = xyes; then : - have_supported_sqlite3=no + as_fn_append LIBMPDEC_CFLAGS " -DTEST_COVERAGE" fi +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_progress_handler in -lsqlite3" >&5 -$as_echo_n "checking for sqlite3_progress_handler in -lsqlite3... " >&6; } -if ${ac_cv_lib_sqlite3_sqlite3_progress_handler+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsqlite3 $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char sqlite3_progress_handler (); -int -main () -{ -return sqlite3_progress_handler (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_sqlite3_sqlite3_progress_handler=yes + +# Check whether _decimal should use a coroutine-local or thread-local context +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-decimal-contextvar" >&5 +$as_echo_n "checking for --with-decimal-contextvar... " >&6; } + +# Check whether --with-decimal_contextvar was given. +if test "${with_decimal_contextvar+set}" = set; then : + withval=$with_decimal_contextvar; else - ac_cv_lib_sqlite3_sqlite3_progress_handler=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + with_decimal_contextvar="yes" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_progress_handler" >&5 -$as_echo "$ac_cv_lib_sqlite3_sqlite3_progress_handler" >&6; } -if test "x$ac_cv_lib_sqlite3_sqlite3_progress_handler" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSQLITE3 1 -_ACEOF - LIBS="-lsqlite3 $LIBS" -else +if test "$with_decimal_contextvar" != "no" +then - have_supported_sqlite3=no +$as_echo "#define WITH_DECIMAL_CONTEXTVAR 1" >>confdefs.h fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_decimal_contextvar" >&5 +$as_echo "$with_decimal_contextvar" >&6; } +# Check for libmpdec machine flavor +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for decimal libmpdec machine" >&5 +$as_echo_n "checking for decimal libmpdec machine... " >&6; } +case $ac_sys_system in #( + Darwin*) : + libmpdec_system=Darwin ;; #( + SunOS*) : + libmpdec_system=sunos ;; #( + *) : + libmpdec_system=other + ;; +esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_result_double in -lsqlite3" >&5 -$as_echo_n "checking for sqlite3_result_double in -lsqlite3... " >&6; } -if ${ac_cv_lib_sqlite3_sqlite3_result_double+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsqlite3 $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +libmpdec_machine=unknown +if test "$libmpdec_system" = Darwin; then + # universal here means: build libmpdec with the same arch options + # the python interpreter was built with + libmpdec_machine=universal +elif test $ac_cv_sizeof_size_t -eq 8; then + if test "$ac_cv_gcc_asm_for_x64" = yes; then + libmpdec_machine=x64 + elif test "$ac_cv_type___uint128_t" = yes; then + libmpdec_machine=uint128 + else + libmpdec_machine=ansi64 + fi +elif test $ac_cv_sizeof_size_t -eq 4; then + if test "$ac_cv_gcc_asm_for_x87" = yes -a "$libmpdec_system" != sunos; then + case $CC in #( + *gcc*) : + libmpdec_machine=ppro ;; #( + *clang*) : + libmpdec_machine=ppro ;; #( + *) : + libmpdec_machine=ansi32 + ;; +esac + else + libmpdec_machine=ansi32 + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libmpdec_machine" >&5 +$as_echo "$libmpdec_machine" >&6; } -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char sqlite3_result_double (); -int -main () -{ -return sqlite3_result_double (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_sqlite3_sqlite3_result_double=yes -else - ac_cv_lib_sqlite3_sqlite3_result_double=no +case $libmpdec_machine in #( + x64) : + as_fn_append LIBMPDEC_CFLAGS " -DCONFIG_64=1 -DASM=1" ;; #( + uint128) : + as_fn_append LIBMPDEC_CFLAGS " -DCONFIG_64=1 -DANSI=1 -DHAVE_UINT128_T=1" ;; #( + ansi64) : + as_fn_append LIBMPDEC_CFLAGS " -DCONFIG_64=1 -DANSI=1" ;; #( + ppro) : + as_fn_append LIBMPDEC_CFLAGS " -DCONFIG_32=1 -DANSI=1 -DASM=1 -Wno-unknown-pragmas" ;; #( + ansi32) : + as_fn_append LIBMPDEC_CFLAGS " -DCONFIG_32=1 -DANSI=1" ;; #( + ansi-legacy) : + as_fn_append LIBMPDEC_CFLAGS " -DCONFIG_32=1 -DANSI=1 -DLEGACY_COMPILER=1" ;; #( + universal) : + as_fn_append LIBMPDEC_CFLAGS " -DUNIVERSAL=1" ;; #( + *) : + as_fn_error $? "_decimal: unsupported architecture" "$LINENO" 5 + ;; +esac + +if test "$have_ipa_pure_const_bug" = yes; then + # Some versions of gcc miscompile inline asm: + # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46491 + # https://gcc.gnu.org/ml/gcc/2010-11/msg00366.html + as_fn_append LIBMPDEC_CFLAGS " -fno-ipa-pure-const" fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + +if test "$have_glibc_memmove_bug" = yes; then + # _FORTIFY_SOURCE wrappers for memmove and bcopy are incorrect: + # https://sourceware.org/ml/libc-alpha/2010-12/msg00009.html + as_fn_append LIBMPDEC_CFLAGS " -U_FORTIFY_SOURCE" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_result_double" >&5 -$as_echo "$ac_cv_lib_sqlite3_sqlite3_result_double" >&6; } -if test "x$ac_cv_lib_sqlite3_sqlite3_result_double" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSQLITE3 1 -_ACEOF - LIBS="-lsqlite3 $LIBS" + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBNSL" >&5 +$as_echo_n "checking for LIBNSL... " >&6; } + +if test -n "$LIBNSL_CFLAGS"; then + pkg_cv_LIBNSL_CFLAGS="$LIBNSL_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libnsl\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libnsl") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBNSL_CFLAGS=`$PKG_CONFIG --cflags "libnsl" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$LIBNSL_LIBS"; then + pkg_cv_LIBNSL_LIBS="$LIBNSL_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libnsl\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libnsl") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBNSL_LIBS=`$PKG_CONFIG --libs "libnsl" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else + pkg_failed=yes +fi + else + pkg_failed=untried +fi - have_supported_sqlite3=no + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no fi + if test $_pkg_short_errors_supported = yes; then + LIBNSL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libnsl" 2>&1` + else + LIBNSL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libnsl" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$LIBNSL_PKG_ERRORS" >&5 + LIBNSL_CFLAGS=${LIBNSL_CFLAGS-""} + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_set_authorizer in -lsqlite3" >&5 -$as_echo_n "checking for sqlite3_set_authorizer in -lsqlite3... " >&6; } -if ${ac_cv_lib_sqlite3_sqlite3_set_authorizer+:} false; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing yp_match" >&5 +$as_echo_n "checking for library containing yp_match... " >&6; } +if ${ac_cv_search_yp_match+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsqlite3 $LIBS" + ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -12770,48 +13288,84 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char sqlite3_set_authorizer (); +char yp_match (); int main () { -return sqlite3_set_authorizer (); +return yp_match (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_sqlite3_sqlite3_set_authorizer=yes -else - ac_cv_lib_sqlite3_sqlite3_set_authorizer=no +for ac_lib in '' nsl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_yp_match=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + conftest$ac_exeext + if ${ac_cv_search_yp_match+:} false; then : + break fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_set_authorizer" >&5 -$as_echo "$ac_cv_lib_sqlite3_sqlite3_set_authorizer" >&6; } -if test "x$ac_cv_lib_sqlite3_sqlite3_set_authorizer" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSQLITE3 1 -_ACEOF - - LIBS="-lsqlite3 $LIBS" +done +if ${ac_cv_search_yp_match+:} false; then : else + ac_cv_search_yp_match=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_yp_match" >&5 +$as_echo "$ac_cv_search_yp_match" >&6; } +ac_res=$ac_cv_search_yp_match +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + have_nis=yes +else + have_nis=no +fi - have_supported_sqlite3=no -fi +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS + case $ac_cv_search_yp_match in #( + no) : + libnsl="" ;; #( + "none required") : + libnsl="" ;; #( + *) : + libnsl="$ac_cv_search_yp_match" + ;; +esac + LIBNSL_LIBS=${LIBNSL_LIBS-$libnsl} - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_trace_v2 in -lsqlite3" >&5 -$as_echo_n "checking for sqlite3_trace_v2 in -lsqlite3... " >&6; } -if ${ac_cv_lib_sqlite3_sqlite3_trace_v2+:} false; then : +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + LIBNSL_CFLAGS=${LIBNSL_CFLAGS-""} + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing yp_match" >&5 +$as_echo_n "checking for library containing yp_match... " >&6; } +if ${ac_cv_search_yp_match+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsqlite3 $LIBS" + ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -12821,40 +13375,249 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char sqlite3_trace_v2 (); +char yp_match (); int main () { -return sqlite3_trace_v2 (); +return yp_match (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_sqlite3_sqlite3_trace_v2=yes -else - ac_cv_lib_sqlite3_sqlite3_trace_v2=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_trace_v2" >&5 -$as_echo "$ac_cv_lib_sqlite3_sqlite3_trace_v2" >&6; } -if test "x$ac_cv_lib_sqlite3_sqlite3_trace_v2" = xyes; then : +for ac_lib in '' nsl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_yp_match=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_yp_match+:} false; then : + break +fi +done +if ${ac_cv_search_yp_match+:} false; then : + +else + ac_cv_search_yp_match=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_yp_match" >&5 +$as_echo "$ac_cv_search_yp_match" >&6; } +ac_res=$ac_cv_search_yp_match +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + have_nis=yes +else + have_nis=no +fi + + +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS + + + case $ac_cv_search_yp_match in #( + no) : + libnsl="" ;; #( + "none required") : + libnsl="" ;; #( + *) : + libnsl="$ac_cv_search_yp_match" + ;; +esac + LIBNSL_LIBS=${LIBNSL_LIBS-$libnsl} + +else + LIBNSL_CFLAGS=$pkg_cv_LIBNSL_CFLAGS + LIBNSL_LIBS=$pkg_cv_LIBNSL_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + have_nis=yes +fi + +if test "x$have_nis" = xyes; then : + + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS + + + CPPFLAGS="$CPPFLAGS $LIBNSL_CFLAGS" + for ac_header in rpc/rpc.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "rpc/rpc.h" "ac_cv_header_rpc_rpc_h" "$ac_includes_default" +if test "x$ac_cv_header_rpc_rpc_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSQLITE3 1 +#define HAVE_RPC_RPC_H 1 _ACEOF - LIBS="-lsqlite3 $LIBS" +fi + +done + + +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS + + + +fi + +case $ac_sys_system in #( + NetBSD*) : + OSSAUDIODEV_LIBS="-lossaudio" ;; #( + *) : + OSSAUDIODEV_LIBS="" + ;; +esac + + + + + if test "$ac_sys_system" = "Emscripten" -a -z "$LIBSQLITE3_CFLAGS" -a -z "$LIBSQLITE3_LIBS"; then : + + LIBSQLITE3_CFLAGS="-sUSE_SQLITE3" + LIBSQLITE3_LIBS="-sUSE_SQLITE3" + +fi + + + + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBSQLITE3" >&5 +$as_echo_n "checking for LIBSQLITE3... " >&6; } + +if test -n "$LIBSQLITE3_CFLAGS"; then + pkg_cv_LIBSQLITE3_CFLAGS="$LIBSQLITE3_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sqlite3 >= 3.7.15\""; } >&5 + ($PKG_CONFIG --exists --print-errors "sqlite3 >= 3.7.15") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBSQLITE3_CFLAGS=`$PKG_CONFIG --cflags "sqlite3 >= 3.7.15" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$LIBSQLITE3_LIBS"; then + pkg_cv_LIBSQLITE3_LIBS="$LIBSQLITE3_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sqlite3 >= 3.7.15\""; } >&5 + ($PKG_CONFIG --exists --print-errors "sqlite3 >= 3.7.15") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBSQLITE3_LIBS=`$PKG_CONFIG --libs "sqlite3 >= 3.7.15" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + LIBSQLITE3_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "sqlite3 >= 3.7.15" 2>&1` + else + LIBSQLITE3_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "sqlite3 >= 3.7.15" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$LIBSQLITE3_PKG_ERRORS" >&5 + + + LIBSQLITE3_CFLAGS=${LIBSQLITE3_CFLAGS-""} + LIBSQLITE3_LIBS=${LIBSQLITE3_LIBS-"-lsqlite3"} + + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + LIBSQLITE3_CFLAGS=${LIBSQLITE3_CFLAGS-""} + LIBSQLITE3_LIBS=${LIBSQLITE3_LIBS-"-lsqlite3"} + else + LIBSQLITE3_CFLAGS=$pkg_cv_LIBSQLITE3_CFLAGS + LIBSQLITE3_LIBS=$pkg_cv_LIBSQLITE3_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +fi +as_fn_append LIBSQLITE3_CFLAGS ' -I$(srcdir)/Modules/_sqlite' - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_trace in -lsqlite3" >&5 -$as_echo_n "checking for sqlite3_trace in -lsqlite3... " >&6; } -if ${ac_cv_lib_sqlite3_sqlite3_trace+:} false; then : + +save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS + + + CPPFLAGS="$CPPFLAGS $LIBSQLITE3_CFLAGS" + LDFLAGS="$LIBSQLITE3_LIBS $LDFLAGS" + + ac_fn_c_check_header_mongrel "$LINENO" "sqlite3.h" "ac_cv_header_sqlite3_h" "$ac_includes_default" +if test "x$ac_cv_header_sqlite3_h" = xyes; then : + + have_sqlite3=yes + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + #include <sqlite3.h> + #if SQLITE_VERSION_NUMBER < 3007015 + # error "SQLite 3.7.15 or higher required" + #endif + +int +main () +{ + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + have_supported_sqlite3=yes + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_bind_double in -lsqlite3" >&5 +$as_echo_n "checking for sqlite3_bind_double in -lsqlite3... " >&6; } +if ${ac_cv_lib_sqlite3_sqlite3_bind_double+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -12868,27 +13631,27 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char sqlite3_trace (); +char sqlite3_bind_double (); int main () { -return sqlite3_trace (); +return sqlite3_bind_double (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_sqlite3_sqlite3_trace=yes + ac_cv_lib_sqlite3_sqlite3_bind_double=yes else - ac_cv_lib_sqlite3_sqlite3_trace=no + ac_cv_lib_sqlite3_sqlite3_bind_double=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_trace" >&5 -$as_echo "$ac_cv_lib_sqlite3_sqlite3_trace" >&6; } -if test "x$ac_cv_lib_sqlite3_sqlite3_trace" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_bind_double" >&5 +$as_echo "$ac_cv_lib_sqlite3_sqlite3_bind_double" >&6; } +if test "x$ac_cv_lib_sqlite3_sqlite3_bind_double" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBSQLITE3 1 _ACEOF @@ -12903,14 +13666,9 @@ fi - -fi - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_value_double in -lsqlite3" >&5 -$as_echo_n "checking for sqlite3_value_double in -lsqlite3... " >&6; } -if ${ac_cv_lib_sqlite3_sqlite3_value_double+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_column_decltype in -lsqlite3" >&5 +$as_echo_n "checking for sqlite3_column_decltype in -lsqlite3... " >&6; } +if ${ac_cv_lib_sqlite3_sqlite3_column_decltype+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -12924,27 +13682,27 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char sqlite3_value_double (); +char sqlite3_column_decltype (); int main () { -return sqlite3_value_double (); +return sqlite3_column_decltype (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_sqlite3_sqlite3_value_double=yes + ac_cv_lib_sqlite3_sqlite3_column_decltype=yes else - ac_cv_lib_sqlite3_sqlite3_value_double=no + ac_cv_lib_sqlite3_sqlite3_column_decltype=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_value_double" >&5 -$as_echo "$ac_cv_lib_sqlite3_sqlite3_value_double" >&6; } -if test "x$ac_cv_lib_sqlite3_sqlite3_value_double" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_column_decltype" >&5 +$as_echo "$ac_cv_lib_sqlite3_sqlite3_column_decltype" >&6; } +if test "x$ac_cv_lib_sqlite3_sqlite3_column_decltype" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBSQLITE3 1 _ACEOF @@ -12958,9 +13716,10 @@ else fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_load_extension in -lsqlite3" >&5 -$as_echo_n "checking for sqlite3_load_extension in -lsqlite3... " >&6; } -if ${ac_cv_lib_sqlite3_sqlite3_load_extension+:} false; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_column_double in -lsqlite3" >&5 +$as_echo_n "checking for sqlite3_column_double in -lsqlite3... " >&6; } +if ${ac_cv_lib_sqlite3_sqlite3_column_double+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -12974,36 +13733,44 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char sqlite3_load_extension (); +char sqlite3_column_double (); int main () { -return sqlite3_load_extension (); +return sqlite3_column_double (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_sqlite3_sqlite3_load_extension=yes + ac_cv_lib_sqlite3_sqlite3_column_double=yes else - ac_cv_lib_sqlite3_sqlite3_load_extension=no + ac_cv_lib_sqlite3_sqlite3_column_double=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_load_extension" >&5 -$as_echo "$ac_cv_lib_sqlite3_sqlite3_load_extension" >&6; } -if test "x$ac_cv_lib_sqlite3_sqlite3_load_extension" = xyes; then : - have_sqlite3_load_extension=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_column_double" >&5 +$as_echo "$ac_cv_lib_sqlite3_sqlite3_column_double" >&6; } +if test "x$ac_cv_lib_sqlite3_sqlite3_column_double" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBSQLITE3 1 +_ACEOF + + LIBS="-lsqlite3 $LIBS" + else - have_sqlite3_load_extension=no + + have_supported_sqlite3=no fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_serialize in -lsqlite3" >&5 -$as_echo_n "checking for sqlite3_serialize in -lsqlite3... " >&6; } -if ${ac_cv_lib_sqlite3_sqlite3_serialize+:} false; then : + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_complete in -lsqlite3" >&5 +$as_echo_n "checking for sqlite3_complete in -lsqlite3... " >&6; } +if ${ac_cv_lib_sqlite3_sqlite3_complete+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -13017,386 +13784,357 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char sqlite3_serialize (); +char sqlite3_complete (); int main () { -return sqlite3_serialize (); +return sqlite3_complete (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_sqlite3_sqlite3_serialize=yes + ac_cv_lib_sqlite3_sqlite3_complete=yes else - ac_cv_lib_sqlite3_sqlite3_serialize=no + ac_cv_lib_sqlite3_sqlite3_complete=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_serialize" >&5 -$as_echo "$ac_cv_lib_sqlite3_sqlite3_serialize" >&6; } -if test "x$ac_cv_lib_sqlite3_sqlite3_serialize" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_complete" >&5 +$as_echo "$ac_cv_lib_sqlite3_sqlite3_complete" >&6; } +if test "x$ac_cv_lib_sqlite3_sqlite3_complete" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBSQLITE3 1 +_ACEOF + LIBS="-lsqlite3 $LIBS" -$as_echo "#define PY_SQLITE_HAVE_SERIALIZE 1" >>confdefs.h +else + have_supported_sqlite3=no fi -else - have_supported_sqlite3=no + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_enable_shared_cache in -lsqlite3" >&5 +$as_echo_n "checking for sqlite3_enable_shared_cache in -lsqlite3... " >&6; } +if ${ac_cv_lib_sqlite3_sqlite3_enable_shared_cache+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsqlite3 $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char sqlite3_enable_shared_cache (); +int +main () +{ +return sqlite3_enable_shared_cache (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_sqlite3_sqlite3_enable_shared_cache=yes +else + ac_cv_lib_sqlite3_sqlite3_enable_shared_cache=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_enable_shared_cache" >&5 +$as_echo "$ac_cv_lib_sqlite3_sqlite3_enable_shared_cache" >&6; } +if test "x$ac_cv_lib_sqlite3_sqlite3_enable_shared_cache" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBSQLITE3 1 +_ACEOF + LIBS="-lsqlite3 $LIBS" +else -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS + have_supported_sqlite3=no +fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --enable-loadable-sqlite-extensions" >&5 -$as_echo_n "checking for --enable-loadable-sqlite-extensions... " >&6; } -# Check whether --enable-loadable-sqlite-extensions was given. -if test "${enable_loadable_sqlite_extensions+set}" = set; then : - enableval=$enable_loadable_sqlite_extensions; - if test "x$have_sqlite3_load_extension" = xno; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: n/a" >&5 -$as_echo "n/a" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your version of SQLite does not support loadable extensions" >&5 -$as_echo "$as_me: WARNING: Your version of SQLite does not support loadable extensions" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_progress_handler in -lsqlite3" >&5 +$as_echo_n "checking for sqlite3_progress_handler in -lsqlite3... " >&6; } +if ${ac_cv_lib_sqlite3_sqlite3_progress_handler+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsqlite3 $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char sqlite3_progress_handler (); +int +main () +{ +return sqlite3_progress_handler (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_sqlite3_sqlite3_progress_handler=yes else + ac_cv_lib_sqlite3_sqlite3_progress_handler=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_progress_handler" >&5 +$as_echo "$ac_cv_lib_sqlite3_sqlite3_progress_handler" >&6; } +if test "x$ac_cv_lib_sqlite3_sqlite3_progress_handler" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBSQLITE3 1 +_ACEOF - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + LIBS="-lsqlite3 $LIBS" -$as_echo "#define PY_SQLITE_ENABLE_LOAD_EXTENSION 1" >>confdefs.h +else + have_supported_sqlite3=no fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_result_double in -lsqlite3" >&5 +$as_echo_n "checking for sqlite3_result_double in -lsqlite3... " >&6; } +if ${ac_cv_lib_sqlite3_sqlite3_result_double+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsqlite3 $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char sqlite3_result_double (); +int +main () +{ +return sqlite3_result_double (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_sqlite3_sqlite3_result_double=yes +else + ac_cv_lib_sqlite3_sqlite3_result_double=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_result_double" >&5 +$as_echo "$ac_cv_lib_sqlite3_sqlite3_result_double" >&6; } +if test "x$ac_cv_lib_sqlite3_sqlite3_result_double" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBSQLITE3 1 +_ACEOF + LIBS="-lsqlite3 $LIBS" -found_tcltk=no -for _QUERY in \ - "tcl >= 8.5.12 tk >= 8.5.12" \ - "tcl8.6 tk8.6" \ - "tcl86 tk86" \ - "tcl8.5 >= 8.5.12 tk8.5 >= 8.5.12" \ - "tcl85 >= 8.5.12 tk85 >= 8.5.12" \ -; do - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$_QUERY\""; } >&5 - ($PKG_CONFIG --exists --print-errors "$_QUERY") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then +else + have_supported_sqlite3=no -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TCLTK" >&5 -$as_echo_n "checking for TCLTK... " >&6; } +fi -if test -n "$TCLTK_CFLAGS"; then - pkg_cv_TCLTK_CFLAGS="$TCLTK_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$_QUERY\""; } >&5 - ($PKG_CONFIG --exists --print-errors "$_QUERY") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_TCLTK_CFLAGS=`$PKG_CONFIG --cflags "$_QUERY" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_set_authorizer in -lsqlite3" >&5 +$as_echo_n "checking for sqlite3_set_authorizer in -lsqlite3... " >&6; } +if ${ac_cv_lib_sqlite3_sqlite3_set_authorizer+:} false; then : + $as_echo_n "(cached) " >&6 else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$TCLTK_LIBS"; then - pkg_cv_TCLTK_LIBS="$TCLTK_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$_QUERY\""; } >&5 - ($PKG_CONFIG --exists --print-errors "$_QUERY") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_TCLTK_LIBS=`$PKG_CONFIG --libs "$_QUERY" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsqlite3 $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char sqlite3_set_authorizer (); +int +main () +{ +return sqlite3_set_authorizer (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_sqlite3_sqlite3_set_authorizer=yes else - pkg_failed=yes + ac_cv_lib_sqlite3_sqlite3_set_authorizer=no fi - else - pkg_failed=untried +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_set_authorizer" >&5 +$as_echo "$ac_cv_lib_sqlite3_sqlite3_set_authorizer" >&6; } +if test "x$ac_cv_lib_sqlite3_sqlite3_set_authorizer" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBSQLITE3 1 +_ACEOF + LIBS="-lsqlite3 $LIBS" - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - TCLTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$_QUERY" 2>&1` - else - TCLTK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$_QUERY" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$TCLTK_PKG_ERRORS" >&5 - found_tcltk=no -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - found_tcltk=no -else - TCLTK_CFLAGS=$pkg_cv_TCLTK_CFLAGS - TCLTK_LIBS=$pkg_cv_TCLTK_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - found_tcltk=yes -fi + have_supported_sqlite3=no fi - if test "x$found_tcltk" = xyes; then : - break -fi -done -if test "x$found_tcltk" = xno; then : - TCLTK_CFLAGS=${TCLTK_CFLAGS-""} - TCLTK_LIBS=${TCLTK_LIBS-""} + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_trace_v2 in -lsqlite3" >&5 +$as_echo_n "checking for sqlite3_trace_v2 in -lsqlite3... " >&6; } +if ${ac_cv_lib_sqlite3_sqlite3_trace_v2+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsqlite3 $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char sqlite3_trace_v2 (); +int +main () +{ +return sqlite3_trace_v2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_sqlite3_sqlite3_trace_v2=yes +else + ac_cv_lib_sqlite3_sqlite3_trace_v2=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_trace_v2" >&5 +$as_echo "$ac_cv_lib_sqlite3_sqlite3_trace_v2" >&6; } +if test "x$ac_cv_lib_sqlite3_sqlite3_trace_v2" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBSQLITE3 1 +_ACEOF -case $ac_sys_system in #( - FreeBSD*) : + LIBS="-lsqlite3 $LIBS" - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11\""; } >&5 - ($PKG_CONFIG --exists --print-errors "x11") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then +else -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for X11" >&5 -$as_echo_n "checking for X11... " >&6; } -if test -n "$X11_CFLAGS"; then - pkg_cv_X11_CFLAGS="$X11_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11\""; } >&5 - ($PKG_CONFIG --exists --print-errors "x11") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_X11_CFLAGS=`$PKG_CONFIG --cflags "x11" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_trace in -lsqlite3" >&5 +$as_echo_n "checking for sqlite3_trace in -lsqlite3... " >&6; } +if ${ac_cv_lib_sqlite3_sqlite3_trace+:} false; then : + $as_echo_n "(cached) " >&6 else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$X11_LIBS"; then - pkg_cv_X11_LIBS="$X11_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11\""; } >&5 - ($PKG_CONFIG --exists --print-errors "x11") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_X11_LIBS=`$PKG_CONFIG --libs "x11" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsqlite3 $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char sqlite3_trace (); +int +main () +{ +return sqlite3_trace (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_sqlite3_sqlite3_trace=yes else - pkg_failed=yes + ac_cv_lib_sqlite3_sqlite3_trace=no fi - else - pkg_failed=untried +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_trace" >&5 +$as_echo "$ac_cv_lib_sqlite3_sqlite3_trace" >&6; } +if test "x$ac_cv_lib_sqlite3_sqlite3_trace" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBSQLITE3 1 +_ACEOF + LIBS="-lsqlite3 $LIBS" +else -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + have_supported_sqlite3=no -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no fi - if test $_pkg_short_errors_supported = yes; then - X11_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "x11" 2>&1` - else - X11_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "x11" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$X11_PKG_ERRORS" >&5 - as_fn_error $? "Package requirements (x11) were not met: -$X11_PKG_ERRORS -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. -Alternatively, you may set the environment variables X11_CFLAGS -and X11_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details." "$LINENO" 5 -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "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 -path to pkg-config. +fi -Alternatively, you may set the environment variables X11_CFLAGS -and X11_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. -To get pkg-config, see <http://pkg-config.freedesktop.org/>. -See \`config.log' for more details" "$LINENO" 5; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_value_double in -lsqlite3" >&5 +$as_echo_n "checking for sqlite3_value_double in -lsqlite3... " >&6; } +if ${ac_cv_lib_sqlite3_sqlite3_value_double+:} false; then : + $as_echo_n "(cached) " >&6 else - X11_CFLAGS=$pkg_cv_X11_CFLAGS - X11_LIBS=$pkg_cv_X11_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - TCLTK_CFLAGS="$TCLTK_CFLAGS $X11_CFLAGS" - TCLTK_LIBS="$TCLTK_LIBS $X11_LIBS" - -fi - -fi - - ;; #( - *) : - ;; -esac - -save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS - - - CPPFLAGS="$TCLTK_CFLAGS $CFLAGS" - LIBS="$TCLTK_LIBS $LDFLAGS" - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - #include <tcl.h> - #include <tk.h> - #if defined(TK_HEX_VERSION) - # if TK_HEX_VERSION < 0x0805020c - # error "Tk older than 8.5.12 not supported" - # endif - #endif - #if (TCL_MAJOR_VERSION < 8) || \ - ((TCL_MAJOR_VERSION == 8) && (TCL_MINOR_VERSION < 5)) || \ - ((TCL_MAJOR_VERSION == 8) && (TCL_MINOR_VERSION == 5) && (TCL_RELEASE_SERIAL < 12)) - # error "Tcl older than 8.5.12 not supported" - #endif - #if (TK_MAJOR_VERSION < 8) || \ - ((TK_MAJOR_VERSION == 8) && (TK_MINOR_VERSION < 5)) || \ - ((TK_MAJOR_VERSION == 8) && (TK_MINOR_VERSION == 5) && (TK_RELEASE_SERIAL < 12)) - # error "Tk older than 8.5.12 not supported" - #endif - -int -main () -{ - - void *x1 = Tcl_Init; - void *x2 = Tk_Init; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - have_tcltk=yes - as_fn_append TCLTK_CFLAGS " -Wno-strict-prototypes -DWITH_APPINIT=1" - -else - - have_tcltk=no - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS - - - - - -save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS - - - CPPFLAGS="$GDBM_CFLAGS $CFLAGS" - LDFLAGS="$GDBM_LIBS $LDFLAGS" - for ac_header in gdbm.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "gdbm.h" "ac_cv_header_gdbm_h" "$ac_includes_default" -if test "x$ac_cv_header_gdbm_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_GDBM_H 1 -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gdbm_open in -lgdbm" >&5 -$as_echo_n "checking for gdbm_open in -lgdbm... " >&6; } -if ${ac_cv_lib_gdbm_gdbm_open+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lgdbm $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsqlite3 $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC @@ -13404,67 +14142,47 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char gdbm_open (); +char sqlite3_value_double (); int main () { -return gdbm_open (); +return sqlite3_value_double (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_gdbm_gdbm_open=yes + ac_cv_lib_sqlite3_sqlite3_value_double=yes else - ac_cv_lib_gdbm_gdbm_open=no + ac_cv_lib_sqlite3_sqlite3_value_double=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gdbm_gdbm_open" >&5 -$as_echo "$ac_cv_lib_gdbm_gdbm_open" >&6; } -if test "x$ac_cv_lib_gdbm_gdbm_open" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_value_double" >&5 +$as_echo "$ac_cv_lib_sqlite3_sqlite3_value_double" >&6; } +if test "x$ac_cv_lib_sqlite3_sqlite3_value_double" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBSQLITE3 1 +_ACEOF - have_gdbm=yes - GDBM_LIBS=${GDBM_LIBS-"-lgdbm"} + LIBS="-lsqlite3 $LIBS" else - have_gdbm=no -fi + have_supported_sqlite3=no -else - have_gdbm=no fi -done - - -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS - - - -# check for _dbmmodule.c dependencies -for ac_header in ndbm.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "ndbm.h" "ac_cv_header_ndbm_h" "$ac_includes_default" -if test "x$ac_cv_header_ndbm_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_NDBM_H 1 -_ACEOF - LIBS_SAVE="$LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dbm_open in -lndbm" >&5 -$as_echo_n "checking for dbm_open in -lndbm... " >&6; } -if ${ac_cv_lib_ndbm_dbm_open+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_load_extension in -lsqlite3" >&5 +$as_echo_n "checking for sqlite3_load_extension in -lsqlite3... " >&6; } +if ${ac_cv_lib_sqlite3_sqlite3_load_extension+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lndbm $LIBS" +LIBS="-lsqlite3 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -13474,43 +14192,40 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char dbm_open (); +char sqlite3_load_extension (); int main () { -return dbm_open (); +return sqlite3_load_extension (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_ndbm_dbm_open=yes + ac_cv_lib_sqlite3_sqlite3_load_extension=yes else - ac_cv_lib_ndbm_dbm_open=no + ac_cv_lib_sqlite3_sqlite3_load_extension=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ndbm_dbm_open" >&5 -$as_echo "$ac_cv_lib_ndbm_dbm_open" >&6; } -if test "x$ac_cv_lib_ndbm_dbm_open" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBNDBM 1 -_ACEOF - - LIBS="-lndbm $LIBS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_load_extension" >&5 +$as_echo "$ac_cv_lib_sqlite3_sqlite3_load_extension" >&6; } +if test "x$ac_cv_lib_sqlite3_sqlite3_load_extension" = xyes; then : + have_sqlite3_load_extension=yes +else + have_sqlite3_load_extension=no fi - LIBS="$LIBS_SAVE" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dbm_open in -lgdbm_compat" >&5 -$as_echo_n "checking for dbm_open in -lgdbm_compat... " >&6; } -if ${ac_cv_lib_gdbm_compat_dbm_open+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_serialize in -lsqlite3" >&5 +$as_echo_n "checking for sqlite3_serialize in -lsqlite3... " >&6; } +if ${ac_cv_lib_sqlite3_sqlite3_serialize+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lgdbm_compat $LIBS" +LIBS="-lsqlite3 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -13520,355 +14235,384 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char dbm_open (); +char sqlite3_serialize (); int main () { -return dbm_open (); +return sqlite3_serialize (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_gdbm_compat_dbm_open=yes + ac_cv_lib_sqlite3_sqlite3_serialize=yes else - ac_cv_lib_gdbm_compat_dbm_open=no + ac_cv_lib_sqlite3_sqlite3_serialize=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gdbm_compat_dbm_open" >&5 -$as_echo "$ac_cv_lib_gdbm_compat_dbm_open" >&6; } -if test "x$ac_cv_lib_gdbm_compat_dbm_open" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBGDBM_COMPAT 1 -_ACEOF +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_serialize" >&5 +$as_echo "$ac_cv_lib_sqlite3_sqlite3_serialize" >&6; } +if test "x$ac_cv_lib_sqlite3_sqlite3_serialize" = xyes; then : - LIBS="-lgdbm_compat $LIBS" -fi +$as_echo "#define PY_SQLITE_HAVE_SERIALIZE 1" >>confdefs.h - LIBS="$LIBS_SAVE" fi -done - -# "gdbm-ndbm.h" and "gdbm/ndbm.h" are both normalized to "gdbm_ndbm_h" -# unset ac_cv_header_gdbm_ndbm_h to prevent false positive cache hits. -{ ac_cv_header_gdbm_ndbm_h=; unset ac_cv_header_gdbm_ndbm_h;} -if ${ac_cv_header_gdbm_slash_ndbm_h+:} false; then : - $as_echo_n "(cached) " >&6 else - ac_fn_c_check_header_mongrel "$LINENO" "gdbm/ndbm.h" "ac_cv_header_gdbm_ndbm_h" "$ac_includes_default" -if test "x$ac_cv_header_gdbm_ndbm_h" = xyes; then : - ac_cv_header_gdbm_slash_ndbm_h=yes -else - ac_cv_header_gdbm_slash_ndbm_h=no + have_supported_sqlite3=no fi - - +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -if test "x$ac_cv_header_gdbm_slash_ndbm_h" = xyes; then : -$as_echo "#define HAVE_GDBM_NDBM_H 1" >>confdefs.h +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS -fi -{ ac_cv_header_gdbm_ndbm_h=; unset ac_cv_header_gdbm_ndbm_h;} -if ${ac_cv_header_gdbm_dash_ndbm_h+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --enable-loadable-sqlite-extensions" >&5 +$as_echo_n "checking for --enable-loadable-sqlite-extensions... " >&6; } +# Check whether --enable-loadable-sqlite-extensions was given. +if test "${enable_loadable_sqlite_extensions+set}" = set; then : + enableval=$enable_loadable_sqlite_extensions; + if test "x$have_sqlite3_load_extension" = xno; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: n/a" >&5 +$as_echo "n/a" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your version of SQLite does not support loadable extensions" >&5 +$as_echo "$as_me: WARNING: Your version of SQLite does not support loadable extensions" >&2;} - ac_fn_c_check_header_mongrel "$LINENO" "gdbm-ndbm.h" "ac_cv_header_gdbm_ndbm_h" "$ac_includes_default" -if test "x$ac_cv_header_gdbm_ndbm_h" = xyes; then : - ac_cv_header_gdbm_dash_ndbm_h=yes else - ac_cv_header_gdbm_dash_ndbm_h=no -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +$as_echo "#define PY_SQLITE_ENABLE_LOAD_EXTENSION 1" >>confdefs.h fi -if test "x$ac_cv_header_gdbm_dash_ndbm_h" = xyes; then : - +else -$as_echo "#define HAVE_GDBM_DASH_NDBM_H 1" >>confdefs.h + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -{ ac_cv_header_gdbm_ndbm_h=; unset ac_cv_header_gdbm_ndbm_h;} -if test "$ac_cv_header_gdbm_slash_ndbm_h" = yes -o "$ac_cv_header_gdbm_dash_ndbm_h" = yes; then - LIBS_SAVE="$LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dbm_open in -lgdbm_compat" >&5 -$as_echo_n "checking for dbm_open in -lgdbm_compat... " >&6; } -if ${ac_cv_lib_gdbm_compat_dbm_open+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lgdbm_compat $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dbm_open (); -int -main () -{ -return dbm_open (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_gdbm_compat_dbm_open=yes -else - ac_cv_lib_gdbm_compat_dbm_open=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +found_tcltk=no +for _QUERY in \ + "tcl >= 8.5.12 tk >= 8.5.12" \ + "tcl8.6 tk8.6" \ + "tcl86 tk86" \ + "tcl8.5 >= 8.5.12 tk8.5 >= 8.5.12" \ + "tcl85 >= 8.5.12 tk85 >= 8.5.12" \ +; do + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$_QUERY\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$_QUERY") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TCLTK" >&5 +$as_echo_n "checking for TCLTK... " >&6; } + +if test -n "$TCLTK_CFLAGS"; then + pkg_cv_TCLTK_CFLAGS="$TCLTK_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$_QUERY\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$_QUERY") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_TCLTK_CFLAGS=`$PKG_CONFIG --cflags "$_QUERY" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gdbm_compat_dbm_open" >&5 -$as_echo "$ac_cv_lib_gdbm_compat_dbm_open" >&6; } -if test "x$ac_cv_lib_gdbm_compat_dbm_open" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBGDBM_COMPAT 1 -_ACEOF + else + pkg_failed=untried +fi +if test -n "$TCLTK_LIBS"; then + pkg_cv_TCLTK_LIBS="$TCLTK_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$_QUERY\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$_QUERY") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_TCLTK_LIBS=`$PKG_CONFIG --libs "$_QUERY" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + - LIBS="-lgdbm_compat $LIBS" +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + TCLTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$_QUERY" 2>&1` + else + TCLTK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$_QUERY" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$TCLTK_PKG_ERRORS" >&5 + + found_tcltk=no +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + found_tcltk=no +else + TCLTK_CFLAGS=$pkg_cv_TCLTK_CFLAGS + TCLTK_LIBS=$pkg_cv_TCLTK_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + found_tcltk=yes fi - LIBS="$LIBS_SAVE" fi + if test "x$found_tcltk" = xyes; then : + break +fi +done -# Check for libdb >= 5 with dbm_open() -# db.h re-defines the name of the function -for ac_header in db.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "db.h" "ac_cv_header_db_h" "$ac_includes_default" -if test "x$ac_cv_header_db_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DB_H 1 -_ACEOF +if test "x$found_tcltk" = xno; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libdb" >&5 -$as_echo_n "checking for libdb... " >&6; } -if ${ac_cv_have_libdb+:} false; then : - $as_echo_n "(cached) " >&6 -else + TCLTK_CFLAGS=${TCLTK_CFLAGS-""} + TCLTK_LIBS=${TCLTK_LIBS-""} - LIBS_SAVE="$LIBS" - LIBS="$LIBS -ldb" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +fi - #define DB_DBM_HSEARCH 1 - #include <db.h> - #if DB_VERSION_MAJOR < 5 - #error "dh.h: DB_VERSION_MAJOR < 5 is not supported." - #endif +case $ac_sys_system in #( + FreeBSD*) : -int -main () -{ -DBM *dbm = dbm_open(NULL, 0, 0) - ; - return 0; -} + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11\""; } >&5 + ($PKG_CONFIG --exists --print-errors "x11") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_have_libdb=yes + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for X11" >&5 +$as_echo_n "checking for X11... " >&6; } + +if test -n "$X11_CFLAGS"; then + pkg_cv_X11_CFLAGS="$X11_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11\""; } >&5 + ($PKG_CONFIG --exists --print-errors "x11") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_X11_CFLAGS=`$PKG_CONFIG --cflags "x11" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - ac_cv_have_libdb=no + pkg_failed=yes fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LIBS="$LIBS_SAVE" - + else + pkg_failed=untried +fi +if test -n "$X11_LIBS"; then + pkg_cv_X11_LIBS="$X11_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11\""; } >&5 + ($PKG_CONFIG --exists --print-errors "x11") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_X11_LIBS=`$PKG_CONFIG --libs "x11" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_libdb" >&5 -$as_echo "$ac_cv_have_libdb" >&6; } - if test "x$ac_cv_have_libdb" = xyes; then : -$as_echo "#define HAVE_LIBDB 1" >>confdefs.h +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no fi + if test $_pkg_short_errors_supported = yes; then + X11_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "x11" 2>&1` + else + X11_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "x11" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$X11_PKG_ERRORS" >&5 -fi + as_fn_error $? "Package requirements (x11) were not met: -done +$X11_PKG_ERRORS +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. -# Check for --with-dbmliborder -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-dbmliborder" >&5 -$as_echo_n "checking for --with-dbmliborder... " >&6; } +Alternatively, you may set the environment variables X11_CFLAGS +and X11_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "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 +path to pkg-config. -# Check whether --with-dbmliborder was given. -if test "${with_dbmliborder+set}" = set; then : - withval=$with_dbmliborder; +Alternatively, you may set the environment variables X11_CFLAGS +and X11_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see <http://pkg-config.freedesktop.org/>. +See \`config.log' for more details" "$LINENO" 5; } else - with_dbmliborder=gdbm:ndbm:bdb + X11_CFLAGS=$pkg_cv_X11_CFLAGS + X11_LIBS=$pkg_cv_X11_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + TCLTK_CFLAGS="$TCLTK_CFLAGS $X11_CFLAGS" + TCLTK_LIBS="$TCLTK_LIBS $X11_LIBS" + fi +fi -have_gdbm_dbmliborder=no -as_save_IFS=$IFS -IFS=: -for db in $with_dbmliborder; do - case $db in #( - ndbm) : - ;; #( - gdbm) : - have_gdbm_dbmliborder=yes ;; #( - bdb) : - ;; #( + ;; #( *) : - with_dbmliborder=error ;; esac -done -IFS=$as_save_IFS -if test "x$with_dbmliborder" = xerror; then : - as_fn_error $? "proper usage is --with-dbmliborder=db1:db2:... (gdbm:ndbm:bdb)" "$LINENO" 5 +save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_dbmliborder" >&5 -$as_echo "$with_dbmliborder" >&6; } -# Templates for things AC_DEFINEd more than once. -# For a single AC_DEFINE, no template is needed. + CPPFLAGS="$CPPFLAGS $TCLTK_CFLAGS" + LIBS="$TCLTK_LIBS $LDFLAGS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -if test "$ac_cv_pthread_is_default" = yes -then - # Defining _REENTRANT on system with POSIX threads should not hurt. - $as_echo "#define _REENTRANT 1" >>confdefs.h - - posix_threads=yes - if test "$ac_sys_system" = "SunOS"; then - CFLAGS="$CFLAGS -D_REENTRANT" - fi -elif test "$ac_cv_kpthread" = "yes" -then - CC="$CC -Kpthread" - if test "$ac_cv_cxx_thread" = "yes"; then - CXX="$CXX -Kpthread" - fi - posix_threads=yes -elif test "$ac_cv_kthread" = "yes" -then - CC="$CC -Kthread" - if test "$ac_cv_cxx_thread" = "yes"; then - CXX="$CXX -Kthread" - fi - posix_threads=yes -elif test "$ac_cv_pthread" = "yes" -then - CC="$CC -pthread" - if test "$ac_cv_cxx_thread" = "yes"; then - CXX="$CXX -pthread" - fi - posix_threads=yes -else - if test ! -z "$withval" -a -d "$withval" - then LDFLAGS="$LDFLAGS -L$withval" - fi - - # According to the POSIX spec, a pthreads implementation must - # define _POSIX_THREADS in unistd.h. Some apparently don't - # (e.g. gnu pth with pthread emulation) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _POSIX_THREADS in unistd.h" >&5 -$as_echo_n "checking for _POSIX_THREADS in unistd.h... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include <unistd.h> -#ifdef _POSIX_THREADS -yes -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then : - unistd_defines_pthreads=yes -else - unistd_defines_pthreads=no -fi -rm -f conftest* - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $unistd_defines_pthreads" >&5 -$as_echo "$unistd_defines_pthreads" >&6; } - - $as_echo "#define _REENTRANT 1" >>confdefs.h - - # Just looking for pthread_create in libpthread is not enough: - # on HP/UX, pthread.h renames pthread_create to a different symbol name. - # So we really have to include pthread.h, and then link. - _libs=$LIBS - LIBS="$LIBS -lpthread" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthread" >&5 -$as_echo_n "checking for pthread_create in -lpthread... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <stdio.h> -#include <pthread.h> + #include <tcl.h> + #include <tk.h> + #if defined(TK_HEX_VERSION) + # if TK_HEX_VERSION < 0x0805020c + # error "Tk older than 8.5.12 not supported" + # endif + #endif + #if (TCL_MAJOR_VERSION < 8) || \ + ((TCL_MAJOR_VERSION == 8) && (TCL_MINOR_VERSION < 5)) || \ + ((TCL_MAJOR_VERSION == 8) && (TCL_MINOR_VERSION == 5) && (TCL_RELEASE_SERIAL < 12)) + # error "Tcl older than 8.5.12 not supported" + #endif + #if (TK_MAJOR_VERSION < 8) || \ + ((TK_MAJOR_VERSION == 8) && (TK_MINOR_VERSION < 5)) || \ + ((TK_MAJOR_VERSION == 8) && (TK_MINOR_VERSION == 5) && (TK_RELEASE_SERIAL < 12)) + # error "Tk older than 8.5.12 not supported" + #endif -void * start_routine (void *arg) { exit (0); } int main () { -pthread_create (NULL, NULL, start_routine, NULL) + void *x1 = Tcl_Init; + void *x2 = Tk_Init; + ; return 0; } + _ACEOF if ac_fn_c_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - posix_threads=yes + have_tcltk=yes + as_fn_append TCLTK_CFLAGS " -Wno-strict-prototypes -DWITH_APPINIT=1" else - LIBS=$_libs - ac_fn_c_check_func "$LINENO" "pthread_detach" "ac_cv_func_pthread_detach" -if test "x$ac_cv_func_pthread_detach" = xyes; then : + have_tcltk=no - posix_threads=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext -else +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthreads" >&5 -$as_echo_n "checking for pthread_create in -lpthreads... " >&6; } -if ${ac_cv_lib_pthreads_pthread_create+:} false; then : + + + + +save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS + + + CPPFLAGS="$CPPFLAGS $GDBM_CFLAGS" + LDFLAGS="$GDBM_LIBS $LDFLAGS" + for ac_header in gdbm.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "gdbm.h" "ac_cv_header_gdbm_h" "$ac_includes_default" +if test "x$ac_cv_header_gdbm_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GDBM_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gdbm_open in -lgdbm" >&5 +$as_echo_n "checking for gdbm_open in -lgdbm... " >&6; } +if ${ac_cv_lib_gdbm_gdbm_open+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lpthreads $LIBS" +LIBS="-lgdbm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -13878,83 +14622,70 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char pthread_create (); +char gdbm_open (); int main () { -return pthread_create (); +return gdbm_open (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_pthreads_pthread_create=yes + ac_cv_lib_gdbm_gdbm_open=yes else - ac_cv_lib_pthreads_pthread_create=no + ac_cv_lib_gdbm_gdbm_open=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthreads_pthread_create" >&5 -$as_echo "$ac_cv_lib_pthreads_pthread_create" >&6; } -if test "x$ac_cv_lib_pthreads_pthread_create" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gdbm_gdbm_open" >&5 +$as_echo "$ac_cv_lib_gdbm_gdbm_open" >&6; } +if test "x$ac_cv_lib_gdbm_gdbm_open" = xyes; then : - posix_threads=yes - LIBS="$LIBS -lpthreads" + have_gdbm=yes + GDBM_LIBS=${GDBM_LIBS-"-lgdbm"} else + have_gdbm=no +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lc_r" >&5 -$as_echo_n "checking for pthread_create in -lc_r... " >&6; } -if ${ac_cv_lib_c_r_pthread_create+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lc_r $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char pthread_create (); -int -main () -{ -return pthread_create (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_c_r_pthread_create=yes else - ac_cv_lib_c_r_pthread_create=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + have_gdbm=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_create" >&5 -$as_echo "$ac_cv_lib_c_r_pthread_create" >&6; } -if test "x$ac_cv_lib_c_r_pthread_create" = xyes; then : - posix_threads=yes - LIBS="$LIBS -lc_r" +done -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __pthread_create_system in -lpthread" >&5 -$as_echo_n "checking for __pthread_create_system in -lpthread... " >&6; } -if ${ac_cv_lib_pthread___pthread_create_system+:} false; then : +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS + + + +for ac_header in ndbm.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "ndbm.h" "ac_cv_header_ndbm_h" "$ac_includes_default" +if test "x$ac_cv_header_ndbm_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_NDBM_H 1 +_ACEOF + + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dbm_open" >&5 +$as_echo_n "checking for library containing dbm_open... " >&6; } +if ${ac_cv_search_dbm_open+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpthread $LIBS" + ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -13964,100 +14695,146 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char __pthread_create_system (); +char dbm_open (); int main () { -return __pthread_create_system (); +return dbm_open (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_pthread___pthread_create_system=yes -else - ac_cv_lib_pthread___pthread_create_system=no +for ac_lib in '' ndbm gdbm_compat; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_dbm_open=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + conftest$ac_exeext + if ${ac_cv_search_dbm_open+:} false; then : + break fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread___pthread_create_system" >&5 -$as_echo "$ac_cv_lib_pthread___pthread_create_system" >&6; } -if test "x$ac_cv_lib_pthread___pthread_create_system" = xyes; then : - - posix_threads=yes - LIBS="$LIBS -lpthread" +done +if ${ac_cv_search_dbm_open+:} false; then : else + ac_cv_search_dbm_open=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dbm_open" >&5 +$as_echo "$ac_cv_search_dbm_open" >&6; } +ac_res=$ac_cv_search_dbm_open +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lcma" >&5 -$as_echo_n "checking for pthread_create in -lcma... " >&6; } -if ${ac_cv_lib_cma_pthread_create+:} false; then : +fi + + +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS + + + +fi + +done + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ndbm presence and linker args" >&5 +$as_echo_n "checking for ndbm presence and linker args... " >&6; } +case $ac_cv_search_dbm_open in #( + *ndbm*|*gdbm_compat*) : + + dbm_ndbm="$ac_cv_search_dbm_open" + have_ndbm=yes + ;; #( + none*) : + + dbm_ndbm="" + have_ndbm=yes + ;; #( + no) : + have_ndbm=no + ;; #( + *) : + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_ndbm ($dbm_ndbm)" >&5 +$as_echo "$have_ndbm ($dbm_ndbm)" >&6; } + +{ ac_cv_header_gdbm_ndbm_h=; unset ac_cv_header_gdbm_ndbm_h;} +if ${ac_cv_header_gdbm_slash_ndbm_h+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcma $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char pthread_create (); -int -main () -{ -return pthread_create (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_cma_pthread_create=yes + ac_fn_c_check_header_mongrel "$LINENO" "gdbm/ndbm.h" "ac_cv_header_gdbm_ndbm_h" "$ac_includes_default" +if test "x$ac_cv_header_gdbm_ndbm_h" = xyes; then : + ac_cv_header_gdbm_slash_ndbm_h=yes else - ac_cv_lib_cma_pthread_create=no + ac_cv_header_gdbm_slash_ndbm_h=no + fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + + + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cma_pthread_create" >&5 -$as_echo "$ac_cv_lib_cma_pthread_create" >&6; } -if test "x$ac_cv_lib_cma_pthread_create" = xyes; then : - posix_threads=yes - LIBS="$LIBS -lcma" +if test "x$ac_cv_header_gdbm_slash_ndbm_h" = xyes; then : -else - as_fn_error $? "could not find pthreads on your system" "$LINENO" 5 +$as_echo "#define HAVE_GDBM_NDBM_H 1" >>confdefs.h + fi +{ ac_cv_header_gdbm_ndbm_h=; unset ac_cv_header_gdbm_ndbm_h;} +if ${ac_cv_header_gdbm_dash_ndbm_h+:} false; then : + $as_echo_n "(cached) " >&6 +else -fi + ac_fn_c_check_header_mongrel "$LINENO" "gdbm-ndbm.h" "ac_cv_header_gdbm_ndbm_h" "$ac_includes_default" +if test "x$ac_cv_header_gdbm_ndbm_h" = xyes; then : + ac_cv_header_gdbm_dash_ndbm_h=yes +else + ac_cv_header_gdbm_dash_ndbm_h=no fi -fi + fi +if test "x$ac_cv_header_gdbm_dash_ndbm_h" = xyes; then : + + +$as_echo "#define HAVE_GDBM_DASH_NDBM_H 1" >>confdefs.h + + fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +{ ac_cv_header_gdbm_ndbm_h=; unset ac_cv_header_gdbm_ndbm_h;} - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for usconfig in -lmpc" >&5 -$as_echo_n "checking for usconfig in -lmpc... " >&6; } -if ${ac_cv_lib_mpc_usconfig+:} false; then : +if test "$ac_cv_header_gdbm_slash_ndbm_h" = yes -o "$ac_cv_header_gdbm_dash_ndbm_h" = yes; then + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dbm_open" >&5 +$as_echo_n "checking for library containing dbm_open... " >&6; } +if ${ac_cv_search_dbm_open+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lmpc $LIBS" + ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -14067,617 +14844,1135 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char usconfig (); +char dbm_open (); int main () { -return usconfig (); +return dbm_open (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_mpc_usconfig=yes -else - ac_cv_lib_mpc_usconfig=no +for ac_lib in '' gdbm_compat; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_dbm_open=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + conftest$ac_exeext + if ${ac_cv_search_dbm_open+:} false; then : + break fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpc_usconfig" >&5 -$as_echo "$ac_cv_lib_mpc_usconfig" >&6; } -if test "x$ac_cv_lib_mpc_usconfig" = xyes; then : - - LIBS="$LIBS -lmpc" +done +if ${ac_cv_search_dbm_open+:} false; then : +else + ac_cv_search_dbm_open=no fi - +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dbm_open" >&5 +$as_echo "$ac_cv_search_dbm_open" >&6; } +ac_res=$ac_cv_search_dbm_open +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi -if test "$posix_threads" = "yes"; then - if test "$unistd_defines_pthreads" = "no"; then -$as_echo "#define _POSIX_THREADS 1" >>confdefs.h +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS - fi - # Bug 662787: Using semaphores causes unexplicable hangs on Solaris 8. - case $ac_sys_system/$ac_sys_release in - SunOS/5.6) -$as_echo "#define HAVE_PTHREAD_DESTRUCTOR 1" >>confdefs.h +fi - ;; - SunOS/5.8) -$as_echo "#define HAVE_BROKEN_POSIX_SEMAPHORES 1" >>confdefs.h +# Check for libdb >= 5 with dbm_open() +# db.h re-defines the name of the function +for ac_header in db.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "db.h" "ac_cv_header_db_h" "$ac_includes_default" +if test "x$ac_cv_header_db_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DB_H 1 +_ACEOF - ;; - AIX/*) -$as_echo "#define HAVE_BROKEN_POSIX_SEMAPHORES 1" >>confdefs.h + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libdb" >&5 +$as_echo_n "checking for libdb... " >&6; } +if ${ac_cv_have_libdb+:} false; then : + $as_echo_n "(cached) " >&6 +else - ;; - NetBSD/*) -$as_echo "#define HAVE_BROKEN_POSIX_SEMAPHORES 1" >>confdefs.h + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS - ;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if PTHREAD_SCOPE_SYSTEM is supported" >&5 -$as_echo_n "checking if PTHREAD_SCOPE_SYSTEM is supported... " >&6; } -if ${ac_cv_pthread_system_supported+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_pthread_system_supported=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + LIBS="$LIBS -ldb" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - #include <stdio.h> - #include <pthread.h> - void *foo(void *parm) { - return NULL; - } - main() { - pthread_attr_t attr; - pthread_t id; - if (pthread_attr_init(&attr)) return (-1); - if (pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM)) return (-1); - if (pthread_create(&id, &attr, foo, NULL)) return (-1); - return (0); - } + #define DB_DBM_HSEARCH 1 + #include <db.h> + #if DB_VERSION_MAJOR < 5 + #error "dh.h: DB_VERSION_MAJOR < 5 is not supported." + #endif + +int +main () +{ +DBM *dbm = dbm_open(NULL, 0, 0) + ; + return 0; +} + _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_pthread_system_supported=yes +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_have_libdb=yes else - ac_cv_pthread_system_supported=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_cv_have_libdb=no fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_pthread_system_supported" >&5 -$as_echo "$ac_cv_pthread_system_supported" >&6; } - if test "$ac_cv_pthread_system_supported" = "yes"; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_libdb" >&5 +$as_echo "$ac_cv_have_libdb" >&6; } + if test "x$ac_cv_have_libdb" = xyes; then : -$as_echo "#define PTHREAD_SYSTEM_SCHED_SUPPORTED 1" >>confdefs.h - fi - for ac_func in pthread_sigmask -do : - ac_fn_c_check_func "$LINENO" "pthread_sigmask" "ac_cv_func_pthread_sigmask" -if test "x$ac_cv_func_pthread_sigmask" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_PTHREAD_SIGMASK 1 -_ACEOF - case $ac_sys_system in - CYGWIN*) +$as_echo "#define HAVE_LIBDB 1" >>confdefs.h -$as_echo "#define HAVE_BROKEN_PTHREAD_SIGMASK 1" >>confdefs.h - ;; - esac fi + +fi + done - for ac_func in pthread_getcpuclockid -do : - ac_fn_c_check_func "$LINENO" "pthread_getcpuclockid" "ac_cv_func_pthread_getcpuclockid" -if test "x$ac_cv_func_pthread_getcpuclockid" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_PTHREAD_GETCPUCLOCKID 1 -_ACEOF +# Check for --with-dbmliborder +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-dbmliborder" >&5 +$as_echo_n "checking for --with-dbmliborder... " >&6; } + +# Check whether --with-dbmliborder was given. +if test "${with_dbmliborder+set}" = set; then : + withval=$with_dbmliborder; +else + with_dbmliborder=gdbm:ndbm:bdb fi + + +have_gdbm_dbmliborder=no +as_save_IFS=$IFS +IFS=: +for db in $with_dbmliborder; do + case $db in #( + ndbm) : + ;; #( + gdbm) : + have_gdbm_dbmliborder=yes ;; #( + bdb) : + ;; #( + *) : + with_dbmliborder=error + ;; +esac done +IFS=$as_save_IFS +if test "x$with_dbmliborder" = xerror; then : + + as_fn_error $? "proper usage is --with-dbmliborder=db1:db2:... (gdbm:ndbm:bdb)" "$LINENO" 5 fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_dbmliborder" >&5 +$as_echo "$with_dbmliborder" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _dbm module CFLAGS and LIBS" >&5 +$as_echo_n "checking for _dbm module CFLAGS and LIBS... " >&6; } +have_dbm=no +as_save_IFS=$IFS +IFS=: +for db in $with_dbmliborder; do + case "$db" in + ndbm) + if test "$have_ndbm" = yes; then + DBM_CFLAGS="-DUSE_NDBM" + DBM_LIBS="$dbm_ndbm" + have_dbm=yes + break + fi + ;; + gdbm) + if test "$have_gdbm_compat" = yes; then + DBM_CFLAGS="-DUSE_GDBM_COMPAT" + DBM_LIBS="-lgdbm_compat" + have_dbm=yes + break + fi + ;; + bdb) + if test "$ac_cv_have_libdb" = yes; then + DBM_CFLAGS="-DUSE_BERKDB" + DBM_LIBS="-ldb" + have_dbm=yes + break + fi + ;; + esac +done +IFS=$as_save_IFS +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $DBM_CFLAGS $DBM_LIBS" >&5 +$as_echo "$DBM_CFLAGS $DBM_LIBS" >&6; } -# Check for enable-ipv6 +# Templates for things AC_DEFINEd more than once. +# For a single AC_DEFINE, no template is needed. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if --enable-ipv6 is specified" >&5 -$as_echo_n "checking if --enable-ipv6 is specified... " >&6; } -# Check whether --enable-ipv6 was given. -if test "${enable_ipv6+set}" = set; then : - enableval=$enable_ipv6; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ipv6=no - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - $as_echo "#define ENABLE_IPV6 1" >>confdefs.h - ipv6=yes - ;; - esac +if test "$ac_cv_pthread_is_default" = yes +then + # Defining _REENTRANT on system with POSIX threads should not hurt. + $as_echo "#define _REENTRANT 1" >>confdefs.h + + posix_threads=yes + if test "$ac_sys_system" = "SunOS"; then + CFLAGS="$CFLAGS -D_REENTRANT" + fi +elif test "$ac_cv_kpthread" = "yes" +then + CC="$CC -Kpthread" + if test "$ac_cv_cxx_thread" = "yes"; then + CXX="$CXX -Kpthread" + fi + posix_threads=yes +elif test "$ac_cv_kthread" = "yes" +then + CC="$CC -Kthread" + if test "$ac_cv_cxx_thread" = "yes"; then + CXX="$CXX -Kthread" + fi + posix_threads=yes +elif test "$ac_cv_pthread" = "yes" +then + CC="$CC -pthread" + if test "$ac_cv_cxx_thread" = "yes"; then + CXX="$CXX -pthread" + fi + posix_threads=yes else + if test ! -z "$withval" -a -d "$withval" + then LDFLAGS="$LDFLAGS -L$withval" + fi - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + # According to the POSIX spec, a pthreads implementation must + # define _POSIX_THREADS in unistd.h. Some apparently don't + # (e.g. gnu pth with pthread emulation) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _POSIX_THREADS in unistd.h" >&5 +$as_echo_n "checking for _POSIX_THREADS in unistd.h... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - /* AF_INET6 available check */ -#include <sys/types.h> -#include <sys/socket.h> -int -main () -{ -int domain = AF_INET6; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ipv6=yes +#include <unistd.h> +#ifdef _POSIX_THREADS +yes +#endif +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + unistd_defines_pthreads=yes else - - ipv6=no - + unistd_defines_pthreads=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f conftest* -case $ac_sys_system in #( - WASI) : - ipv6=no - ;; #( - *) : - ;; -esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $unistd_defines_pthreads" >&5 +$as_echo "$unistd_defines_pthreads" >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ipv6" >&5 -$as_echo "$ipv6" >&6; } + $as_echo "#define _REENTRANT 1" >>confdefs.h -if test "$ipv6" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if RFC2553 API is available" >&5 -$as_echo_n "checking if RFC2553 API is available... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + # Just looking for pthread_create in libpthread is not enough: + # on HP/UX, pthread.h renames pthread_create to a different symbol name. + # So we really have to include pthread.h, and then link. + _libs=$LIBS + LIBS="$LIBS -lpthread" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthread" >&5 +$as_echo_n "checking for pthread_create in -lpthread... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - #include <sys/types.h> -#include <netinet/in.h> +#include <stdio.h> +#include <pthread.h> + +void * start_routine (void *arg) { exit (0); } int main () { -struct sockaddr_in6 x; - x.sin6_scope_id; + +pthread_create (NULL, NULL, start_routine, NULL) ; return 0; } - _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - ipv6=yes + posix_threads=yes else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ipv6=no + LIBS=$_libs + ac_fn_c_check_func "$LINENO" "pthread_detach" "ac_cv_func_pthread_detach" +if test "x$ac_cv_func_pthread_detach" = xyes; then : -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi + posix_threads=yes -if test "$ipv6" = "yes"; then - $as_echo "#define ENABLE_IPV6 1" >>confdefs.h +else -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthreads" >&5 +$as_echo_n "checking for pthread_create in -lpthreads... " >&6; } +if ${ac_cv_lib_pthreads_pthread_create+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthreads $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pthread_create (); +int +main () +{ +return pthread_create (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_pthreads_pthread_create=yes +else + ac_cv_lib_pthreads_pthread_create=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthreads_pthread_create" >&5 +$as_echo "$ac_cv_lib_pthreads_pthread_create" >&6; } +if test "x$ac_cv_lib_pthreads_pthread_create" = xyes; then : + posix_threads=yes + LIBS="$LIBS -lpthreads" -ipv6type=unknown -ipv6lib=none -ipv6trylibc=no +else -if test "$ipv6" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking ipv6 stack type" >&5 -$as_echo_n "checking ipv6 stack type... " >&6; } - for i in inria kame linux-glibc linux-inet6 solaris toshiba v6d zeta; - do - case $i in - inria) - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lc_r" >&5 +$as_echo_n "checking for pthread_create in -lc_r... " >&6; } +if ${ac_cv_lib_c_r_pthread_create+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lc_r $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <netinet/in.h> -#ifdef IPV6_INRIA_VERSION -yes -#endif -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then : - ipv6type=$i -fi -rm -f conftest* - - ;; - kame) - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include <netinet/in.h> -#ifdef __KAME__ -yes -#endif -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then : - ipv6type=$i; - ipv6lib=inet6 - ipv6libdir=/usr/local/v6/lib - ipv6trylibc=yes -fi -rm -f conftest* - - ;; - linux-glibc) - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include <features.h> -#if defined(__GLIBC__) && ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)) -yes -#endif -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then : - ipv6type=$i; - ipv6trylibc=yes -fi -rm -f conftest* - - ;; - linux-inet6) - if test -d /usr/inet6; then - ipv6type=$i - ipv6lib=inet6 - ipv6libdir=/usr/inet6/lib - BASECFLAGS="-I/usr/inet6/include $BASECFLAGS" - fi - ;; - solaris) - if test -f /etc/netconfig; then - if $GREP -q tcp6 /etc/netconfig; then - ipv6type=$i - ipv6trylibc=yes - fi - fi - ;; - toshiba) - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include <sys/param.h> -#ifdef _TOSHIBA_INET6 -yes -#endif -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then : - ipv6type=$i; - ipv6lib=inet6; - ipv6libdir=/usr/local/v6/lib -fi -rm -f conftest* - - ;; - v6d) - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include </usr/local/v6/include/sys/v6config.h> -#ifdef __V6D__ -yes -#endif -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then : - ipv6type=$i; - ipv6lib=v6; - ipv6libdir=/usr/local/v6/lib; - BASECFLAGS="-I/usr/local/v6/include $BASECFLAGS" -fi -rm -f conftest* - - ;; - zeta) - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include <sys/param.h> -#ifdef _ZETA_MINAMI_INET6 -yes +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" #endif +char pthread_create (); +int +main () +{ +return pthread_create (); + ; + return 0; +} _ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then : - ipv6type=$i; - ipv6lib=inet6; - ipv6libdir=/usr/local/v6/lib +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_c_r_pthread_create=yes +else + ac_cv_lib_c_r_pthread_create=no fi -rm -f conftest* - - ;; - esac - if test "$ipv6type" != "unknown"; then - break - fi - done - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ipv6type" >&5 -$as_echo "$ipv6type" >&6; } +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_create" >&5 +$as_echo "$ac_cv_lib_c_r_pthread_create" >&6; } +if test "x$ac_cv_lib_c_r_pthread_create" = xyes; then : -if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then - if test -d $ipv6libdir -a -f $ipv6libdir/lib$ipv6lib.a; then - LIBS="-L$ipv6libdir -l$ipv6lib $LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: using lib$ipv6lib" >&5 -$as_echo "$as_me: using lib$ipv6lib" >&6;} - else - if test "x$ipv6trylibc" = xyes; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: using libc" >&5 -$as_echo "$as_me: using libc" >&6;} + posix_threads=yes + LIBS="$LIBS -lc_r" else - as_fn_error $? "No $ipv6lib library found; cannot continue. You need to fetch lib$ipv6lib.a from appropriate ipv6 kit and compile beforehand." "$LINENO" 5 - -fi - fi -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CAN_RAW_FD_FRAMES" >&5 -$as_echo_n "checking CAN_RAW_FD_FRAMES... " >&6; } -if ${ac_cv_can_raw_fd_frames+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __pthread_create_system in -lpthread" >&5 +$as_echo_n "checking for __pthread_create_system in -lpthread... " >&6; } +if ${ac_cv_lib_pthread___pthread_create_system+:} false; then : $as_echo_n "(cached) " >&6 else - + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthread $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - /* CAN_RAW_FD_FRAMES available check */ -#include <linux/can/raw.h> + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char __pthread_create_system (); int main () { -int can_raw_fd_frames = CAN_RAW_FD_FRAMES; +return __pthread_create_system (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_can_raw_fd_frames=yes +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_pthread___pthread_create_system=yes else - ac_cv_can_raw_fd_frames=no + ac_cv_lib_pthread___pthread_create_system=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_can_raw_fd_frames" >&5 -$as_echo "$ac_cv_can_raw_fd_frames" >&6; } -if test "x$ac_cv_can_raw_fd_frames" = xyes; then : - - -$as_echo "#define HAVE_LINUX_CAN_RAW_FD_FRAMES 1" >>confdefs.h +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread___pthread_create_system" >&5 +$as_echo "$ac_cv_lib_pthread___pthread_create_system" >&6; } +if test "x$ac_cv_lib_pthread___pthread_create_system" = xyes; then : + posix_threads=yes + LIBS="$LIBS -lpthread" -fi +else -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CAN_RAW_JOIN_FILTERS" >&5 -$as_echo_n "checking for CAN_RAW_JOIN_FILTERS... " >&6; } -if ${ac_cv_can_raw_join_filters+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lcma" >&5 +$as_echo_n "checking for pthread_create in -lcma... " >&6; } +if ${ac_cv_lib_cma_pthread_create+:} false; then : $as_echo_n "(cached) " >&6 else - + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcma $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <linux/can/raw.h> +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pthread_create (); int main () { -int can_raw_join_filters = CAN_RAW_JOIN_FILTERS; +return pthread_create (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_can_raw_join_filters=yes +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_cma_pthread_create=yes else - ac_cv_can_raw_join_filters=no + ac_cv_lib_cma_pthread_create=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_can_raw_join_filters" >&5 -$as_echo "$ac_cv_can_raw_join_filters" >&6; } -if test "x$ac_cv_can_raw_join_filters" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cma_pthread_create" >&5 +$as_echo "$ac_cv_lib_cma_pthread_create" >&6; } +if test "x$ac_cv_lib_cma_pthread_create" = xyes; then : + posix_threads=yes + LIBS="$LIBS -lcma" -$as_echo "#define HAVE_LINUX_CAN_RAW_JOIN_FILTERS 1" >>confdefs.h +else + case $ac_sys_system in #( + WASI) : + posix_threads=stub ;; #( + *) : + as_fn_error $? "could not find pthreads on your system" "$LINENO" 5 + ;; +esac fi -# Check for --with-doc-strings -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-doc-strings" >&5 -$as_echo_n "checking for --with-doc-strings... " >&6; } +fi -# Check whether --with-doc-strings was given. -if test "${with_doc_strings+set}" = set; then : - withval=$with_doc_strings; fi +fi -if test -z "$with_doc_strings" -then with_doc_strings="yes" fi -if test "$with_doc_strings" != "no" -then - -$as_echo "#define WITH_DOC_STRINGS 1" >>confdefs.h fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_doc_strings" >&5 -$as_echo "$with_doc_strings" >&6; } +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext -# Check for Python-specific malloc support -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-pymalloc" >&5 -$as_echo_n "checking for --with-pymalloc... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for usconfig in -lmpc" >&5 +$as_echo_n "checking for usconfig in -lmpc... " >&6; } +if ${ac_cv_lib_mpc_usconfig+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lmpc $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -# Check whether --with-pymalloc was given. -if test "${with_pymalloc+set}" = set; then : - withval=$with_pymalloc; +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char usconfig (); +int +main () +{ +return usconfig (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_mpc_usconfig=yes +else + ac_cv_lib_mpc_usconfig=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpc_usconfig" >&5 +$as_echo "$ac_cv_lib_mpc_usconfig" >&6; } +if test "x$ac_cv_lib_mpc_usconfig" = xyes; then : + LIBS="$LIBS -lmpc" -if test -z "$with_pymalloc" -then - case $ac_sys_system in #( - Emscripten) : - with_pymalloc="no" ;; #( - WASI) : - with_pymalloc="no" ;; #( - *) : - with_pymalloc="yes" - ;; -esac fi -if test "$with_pymalloc" != "no" -then -$as_echo "#define WITH_PYMALLOC 1" >>confdefs.h fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_pymalloc" >&5 -$as_echo "$with_pymalloc" >&6; } -# Check whether objects such as float, tuple and dict are using -# freelists to optimization memory allocation. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-freelists" >&5 -$as_echo_n "checking for --with-freelists... " >&6; } +if test "$posix_threads" = "yes"; then + if test "$unistd_defines_pthreads" = "no"; then -# Check whether --with-freelists was given. -if test "${with_freelists+set}" = set; then : - withval=$with_freelists; -fi +$as_echo "#define _POSIX_THREADS 1" >>confdefs.h + fi -if test -z "$with_freelists" -then - with_freelists="yes" -fi -if test "$with_freelists" != "no" -then + # Bug 662787: Using semaphores causes unexplicable hangs on Solaris 8. + case $ac_sys_system/$ac_sys_release in + SunOS/5.6) +$as_echo "#define HAVE_PTHREAD_DESTRUCTOR 1" >>confdefs.h -$as_echo "#define WITH_FREELISTS 1" >>confdefs.h + ;; + SunOS/5.8) +$as_echo "#define HAVE_BROKEN_POSIX_SEMAPHORES 1" >>confdefs.h -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_freelists" >&5 -$as_echo "$with_freelists" >&6; } + ;; + AIX/*) +$as_echo "#define HAVE_BROKEN_POSIX_SEMAPHORES 1" >>confdefs.h -# Check for --with-c-locale-coercion -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-c-locale-coercion" >&5 -$as_echo_n "checking for --with-c-locale-coercion... " >&6; } + ;; + NetBSD/*) +$as_echo "#define HAVE_BROKEN_POSIX_SEMAPHORES 1" >>confdefs.h -# Check whether --with-c-locale-coercion was given. -if test "${with_c_locale_coercion+set}" = set; then : - withval=$with_c_locale_coercion; + ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if PTHREAD_SCOPE_SYSTEM is supported" >&5 +$as_echo_n "checking if PTHREAD_SCOPE_SYSTEM is supported... " >&6; } +if ${ac_cv_pthread_system_supported+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + ac_cv_pthread_system_supported=no +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include <stdio.h> + #include <pthread.h> + void *foo(void *parm) { + return NULL; + } + main() { + pthread_attr_t attr; + pthread_t id; + if (pthread_attr_init(&attr)) return (-1); + if (pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM)) return (-1); + if (pthread_create(&id, &attr, foo, NULL)) return (-1); + return (0); + } +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_pthread_system_supported=yes +else + ac_cv_pthread_system_supported=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi -if test -z "$with_c_locale_coercion" -then - with_c_locale_coercion="yes" fi -if test "$with_c_locale_coercion" != "no" -then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_pthread_system_supported" >&5 +$as_echo "$ac_cv_pthread_system_supported" >&6; } + if test "$ac_cv_pthread_system_supported" = "yes"; then -$as_echo "#define PY_COERCE_C_LOCALE 1" >>confdefs.h +$as_echo "#define PTHREAD_SYSTEM_SCHED_SUPPORTED 1" >>confdefs.h + + fi + for ac_func in pthread_sigmask +do : + ac_fn_c_check_func "$LINENO" "pthread_sigmask" "ac_cv_func_pthread_sigmask" +if test "x$ac_cv_func_pthread_sigmask" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_PTHREAD_SIGMASK 1 +_ACEOF + case $ac_sys_system in + CYGWIN*) + +$as_echo "#define HAVE_BROKEN_PTHREAD_SIGMASK 1" >>confdefs.h + ;; + esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_c_locale_coercion" >&5 -$as_echo "$with_c_locale_coercion" >&6; } +done -# Check for Valgrind support -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-valgrind" >&5 -$as_echo_n "checking for --with-valgrind... " >&6; } + for ac_func in pthread_getcpuclockid +do : + ac_fn_c_check_func "$LINENO" "pthread_getcpuclockid" "ac_cv_func_pthread_getcpuclockid" +if test "x$ac_cv_func_pthread_getcpuclockid" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_PTHREAD_GETCPUCLOCKID 1 +_ACEOF -# Check whether --with-valgrind was given. -if test "${with_valgrind+set}" = set; then : - withval=$with_valgrind; -else - with_valgrind=no fi +done -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_valgrind" >&5 -$as_echo "$with_valgrind" >&6; } -if test "$with_valgrind" != no; then - ac_fn_c_check_header_mongrel "$LINENO" "valgrind/valgrind.h" "ac_cv_header_valgrind_valgrind_h" "$ac_includes_default" -if test "x$ac_cv_header_valgrind_valgrind_h" = xyes; then : +fi -$as_echo "#define WITH_VALGRIND 1" >>confdefs.h +if test "x$posix_threads" = xstub; then : -else - as_fn_error $? "Valgrind support requested but headers not available" "$LINENO" 5 -fi +$as_echo "#define HAVE_PTHREAD_STUBS 1" >>confdefs.h - OPT="-DDYNAMIC_ANNOTATIONS_ENABLED=1 $OPT" fi -# Check for DTrace support -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-dtrace" >&5 -$as_echo_n "checking for --with-dtrace... " >&6; } +# Check for enable-ipv6 -# Check whether --with-dtrace was given. -if test "${with_dtrace+set}" = set; then : - withval=$with_dtrace; +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if --enable-ipv6 is specified" >&5 +$as_echo_n "checking if --enable-ipv6 is specified... " >&6; } +# Check whether --enable-ipv6 was given. +if test "${enable_ipv6+set}" = set; then : + enableval=$enable_ipv6; case "$enableval" in + no) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ipv6=no + ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + $as_echo "#define ENABLE_IPV6 1" >>confdefs.h + + ipv6=yes + ;; + esac else - with_dtrace=no -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_dtrace" >&5 -$as_echo "$with_dtrace" >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + /* AF_INET6 available check */ +#include <sys/types.h> +#include <sys/socket.h> +int +main () +{ +int domain = AF_INET6; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ipv6=yes +else + ipv6=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -DTRACE= -DTRACE_HEADERS= -DTRACE_OBJS= +case $ac_sys_system in #( + WASI) : + ipv6=no + ;; #( + *) : + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ipv6" >&5 +$as_echo "$ipv6" >&6; } + +if test "$ipv6" = "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if RFC2553 API is available" >&5 +$as_echo_n "checking if RFC2553 API is available... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include <sys/types.h> +#include <netinet/in.h> +int +main () +{ +struct sockaddr_in6 x; + x.sin6_scope_id; + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + ipv6=yes + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ipv6=no + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +if test "$ipv6" = "yes"; then + $as_echo "#define ENABLE_IPV6 1" >>confdefs.h + +fi + +fi + + +ipv6type=unknown +ipv6lib=none +ipv6trylibc=no + +if test "$ipv6" = "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking ipv6 stack type" >&5 +$as_echo_n "checking ipv6 stack type... " >&6; } + for i in inria kame linux-glibc linux-inet6 solaris toshiba v6d zeta; + do + case $i in + inria) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include <netinet/in.h> +#ifdef IPV6_INRIA_VERSION +yes +#endif +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + ipv6type=$i +fi +rm -f conftest* + + ;; + kame) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include <netinet/in.h> +#ifdef __KAME__ +yes +#endif +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + ipv6type=$i; + ipv6lib=inet6 + ipv6libdir=/usr/local/v6/lib + ipv6trylibc=yes +fi +rm -f conftest* + + ;; + linux-glibc) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include <features.h> +#if defined(__GLIBC__) && ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)) +yes +#endif +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + ipv6type=$i; + ipv6trylibc=yes +fi +rm -f conftest* + + ;; + linux-inet6) + if test -d /usr/inet6; then + ipv6type=$i + ipv6lib=inet6 + ipv6libdir=/usr/inet6/lib + BASECFLAGS="-I/usr/inet6/include $BASECFLAGS" + fi + ;; + solaris) + if test -f /etc/netconfig; then + if $GREP -q tcp6 /etc/netconfig; then + ipv6type=$i + ipv6trylibc=yes + fi + fi + ;; + toshiba) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include <sys/param.h> +#ifdef _TOSHIBA_INET6 +yes +#endif +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + ipv6type=$i; + ipv6lib=inet6; + ipv6libdir=/usr/local/v6/lib +fi +rm -f conftest* + + ;; + v6d) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include </usr/local/v6/include/sys/v6config.h> +#ifdef __V6D__ +yes +#endif +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + ipv6type=$i; + ipv6lib=v6; + ipv6libdir=/usr/local/v6/lib; + BASECFLAGS="-I/usr/local/v6/include $BASECFLAGS" +fi +rm -f conftest* + + ;; + zeta) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include <sys/param.h> +#ifdef _ZETA_MINAMI_INET6 +yes +#endif +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + ipv6type=$i; + ipv6lib=inet6; + ipv6libdir=/usr/local/v6/lib +fi +rm -f conftest* + + ;; + esac + if test "$ipv6type" != "unknown"; then + break + fi + done + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ipv6type" >&5 +$as_echo "$ipv6type" >&6; } +fi + +if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then + if test -d $ipv6libdir -a -f $ipv6libdir/lib$ipv6lib.a; then + LIBS="-L$ipv6libdir -l$ipv6lib $LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: using lib$ipv6lib" >&5 +$as_echo "$as_me: using lib$ipv6lib" >&6;} + else + if test "x$ipv6trylibc" = xyes; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: using libc" >&5 +$as_echo "$as_me: using libc" >&6;} + +else + + as_fn_error $? "No $ipv6lib library found; cannot continue. You need to fetch lib$ipv6lib.a from appropriate ipv6 kit and compile beforehand." "$LINENO" 5 + +fi + fi +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CAN_RAW_FD_FRAMES" >&5 +$as_echo_n "checking CAN_RAW_FD_FRAMES... " >&6; } +if ${ac_cv_can_raw_fd_frames+:} false; then : + $as_echo_n "(cached) " >&6 +else + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + /* CAN_RAW_FD_FRAMES available check */ +#include <linux/can/raw.h> +int +main () +{ +int can_raw_fd_frames = CAN_RAW_FD_FRAMES; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_can_raw_fd_frames=yes +else + ac_cv_can_raw_fd_frames=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_can_raw_fd_frames" >&5 +$as_echo "$ac_cv_can_raw_fd_frames" >&6; } +if test "x$ac_cv_can_raw_fd_frames" = xyes; then : + + +$as_echo "#define HAVE_LINUX_CAN_RAW_FD_FRAMES 1" >>confdefs.h + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CAN_RAW_JOIN_FILTERS" >&5 +$as_echo_n "checking for CAN_RAW_JOIN_FILTERS... " >&6; } +if ${ac_cv_can_raw_join_filters+:} false; then : + $as_echo_n "(cached) " >&6 +else + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include <linux/can/raw.h> +int +main () +{ +int can_raw_join_filters = CAN_RAW_JOIN_FILTERS; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_can_raw_join_filters=yes +else + ac_cv_can_raw_join_filters=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_can_raw_join_filters" >&5 +$as_echo "$ac_cv_can_raw_join_filters" >&6; } +if test "x$ac_cv_can_raw_join_filters" = xyes; then : + + +$as_echo "#define HAVE_LINUX_CAN_RAW_JOIN_FILTERS 1" >>confdefs.h + + +fi + +# Check for --with-doc-strings +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-doc-strings" >&5 +$as_echo_n "checking for --with-doc-strings... " >&6; } + +# Check whether --with-doc-strings was given. +if test "${with_doc_strings+set}" = set; then : + withval=$with_doc_strings; +fi + + +if test -z "$with_doc_strings" +then with_doc_strings="yes" +fi +if test "$with_doc_strings" != "no" +then + +$as_echo "#define WITH_DOC_STRINGS 1" >>confdefs.h + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_doc_strings" >&5 +$as_echo "$with_doc_strings" >&6; } + +# Check for Python-specific malloc support +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-pymalloc" >&5 +$as_echo_n "checking for --with-pymalloc... " >&6; } + +# Check whether --with-pymalloc was given. +if test "${with_pymalloc+set}" = set; then : + withval=$with_pymalloc; +fi + + +if test -z "$with_pymalloc" +then + case $ac_sys_system in #( + Emscripten) : + with_pymalloc="no" ;; #( + WASI) : + with_pymalloc="no" ;; #( + *) : + with_pymalloc="yes" + ;; +esac +fi +if test "$with_pymalloc" != "no" +then + +$as_echo "#define WITH_PYMALLOC 1" >>confdefs.h + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_pymalloc" >&5 +$as_echo "$with_pymalloc" >&6; } + +# Check whether objects such as float, tuple and dict are using +# freelists to optimization memory allocation. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-freelists" >&5 +$as_echo_n "checking for --with-freelists... " >&6; } + +# Check whether --with-freelists was given. +if test "${with_freelists+set}" = set; then : + withval=$with_freelists; +fi + + +if test -z "$with_freelists" +then + with_freelists="yes" +fi +if test "$with_freelists" != "no" +then + +$as_echo "#define WITH_FREELISTS 1" >>confdefs.h + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_freelists" >&5 +$as_echo "$with_freelists" >&6; } + +# Check for --with-c-locale-coercion +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-c-locale-coercion" >&5 +$as_echo_n "checking for --with-c-locale-coercion... " >&6; } + +# Check whether --with-c-locale-coercion was given. +if test "${with_c_locale_coercion+set}" = set; then : + withval=$with_c_locale_coercion; +fi + + +if test -z "$with_c_locale_coercion" +then + with_c_locale_coercion="yes" +fi +if test "$with_c_locale_coercion" != "no" +then + +$as_echo "#define PY_COERCE_C_LOCALE 1" >>confdefs.h + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_c_locale_coercion" >&5 +$as_echo "$with_c_locale_coercion" >&6; } + +# Check for Valgrind support +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-valgrind" >&5 +$as_echo_n "checking for --with-valgrind... " >&6; } + +# Check whether --with-valgrind was given. +if test "${with_valgrind+set}" = set; then : + withval=$with_valgrind; +else + with_valgrind=no +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_valgrind" >&5 +$as_echo "$with_valgrind" >&6; } +if test "$with_valgrind" != no; then + ac_fn_c_check_header_mongrel "$LINENO" "valgrind/valgrind.h" "ac_cv_header_valgrind_valgrind_h" "$ac_includes_default" +if test "x$ac_cv_header_valgrind_valgrind_h" = xyes; then : + +$as_echo "#define WITH_VALGRIND 1" >>confdefs.h + +else + as_fn_error $? "Valgrind support requested but headers not available" "$LINENO" 5 + +fi + + + OPT="-DDYNAMIC_ANNOTATIONS_ENABLED=1 $OPT" +fi + +# Check for DTrace support +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-dtrace" >&5 +$as_echo_n "checking for --with-dtrace... " >&6; } + +# Check whether --with-dtrace was given. +if test "${with_dtrace+set}" = set; then : + withval=$with_dtrace; +else + with_dtrace=no +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_dtrace" >&5 +$as_echo "$with_dtrace" >&6; } + + + + + +DTRACE= +DTRACE_HEADERS= +DTRACE_OBJS= if test "$with_dtrace" = "yes" then @@ -14685,254 +15980,2302 @@ then set dummy dtrace; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_DTRACE+:} false; then : +if ${ac_cv_path_DTRACE+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DTRACE in + [\\/]* | ?:[\\/]*) + ac_cv_path_DTRACE="$DTRACE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_DTRACE="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_DTRACE" && ac_cv_path_DTRACE="not found" + ;; +esac +fi +DTRACE=$ac_cv_path_DTRACE +if test -n "$DTRACE"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DTRACE" >&5 +$as_echo "$DTRACE" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test "$DTRACE" = "not found"; then + as_fn_error $? "dtrace command not found on \$PATH" "$LINENO" 5 + fi + +$as_echo "#define WITH_DTRACE 1" >>confdefs.h + + DTRACE_HEADERS="Include/pydtrace_probes.h" + + # On OS X, DTrace providers do not need to be explicitly compiled and + # linked into the binary. Correspondingly, dtrace(1) is missing the ELF + # generation flag '-G'. We check for presence of this flag, rather than + # hardcoding support by OS, in the interest of robustness. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether DTrace probes require linking" >&5 +$as_echo_n "checking whether DTrace probes require linking... " >&6; } +if ${ac_cv_dtrace_link+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_dtrace_link=no + echo 'BEGIN{}' > conftest.d + "$DTRACE" $DFLAGS -G -s conftest.d -o conftest.o > /dev/null 2>&1 && \ + ac_cv_dtrace_link=yes + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_dtrace_link" >&5 +$as_echo "$ac_cv_dtrace_link" >&6; } + if test "$ac_cv_dtrace_link" = "yes"; then + DTRACE_OBJS="Python/pydtrace.o" + fi +fi + +PLATFORM_HEADERS= +PLATFORM_OBJS= + +case $ac_sys_system in #( + Emscripten) : + + as_fn_append PLATFORM_OBJS ' Python/emscripten_signal.o' + as_fn_append PLATFORM_HEADERS ' $(srcdir)/Include/internal/pycore_emscripten_signal.h' + ;; #( + *) : + ;; +esac + + + +# -I${DLINCLDIR} is added to the compile rule for importdl.o + +DLINCLDIR=. + +# the dlopen() function means we might want to use dynload_shlib.o. some +# platforms have dlopen(), but don't want to use it. +for ac_func in dlopen +do : + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DLOPEN 1 +_ACEOF + +fi +done + + +# DYNLOADFILE specifies which dynload_*.o file we will use for dynamic +# loading of modules. + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking DYNLOADFILE" >&5 +$as_echo_n "checking DYNLOADFILE... " >&6; } +if test -z "$DYNLOADFILE" +then + case $ac_sys_system/$ac_sys_release in + hp*|HP*) DYNLOADFILE="dynload_hpux.o";; + *) + # use dynload_shlib.c and dlopen() if we have it; otherwise stub + # out any dynamic loading + if test "$ac_cv_func_dlopen" = yes + then DYNLOADFILE="dynload_shlib.o" + else DYNLOADFILE="dynload_stub.o" + fi + ;; + esac +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $DYNLOADFILE" >&5 +$as_echo "$DYNLOADFILE" >&6; } +if test "$DYNLOADFILE" != "dynload_stub.o" +then + +$as_echo "#define HAVE_DYNAMIC_LOADING 1" >>confdefs.h + +fi + +# MACHDEP_OBJS can be set to platform-specific object files needed by Python + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking MACHDEP_OBJS" >&5 +$as_echo_n "checking MACHDEP_OBJS... " >&6; } +if test -z "$MACHDEP_OBJS" +then + MACHDEP_OBJS=$extra_machdep_objs +else + MACHDEP_OBJS="$MACHDEP_OBJS $extra_machdep_objs" +fi +if test -z "$MACHDEP_OBJS"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MACHDEP_OBJS" >&5 +$as_echo "$MACHDEP_OBJS" >&6; } +fi + +# checks for library functions +for ac_func in \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ + copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ + getgrnam_r getgrouplist getgroups gethostname getitimer getloadavg getlogin \ + getpeername getpgid getpid getppid getpriority _getpty \ + getpwent getpwnam_r getpwuid getpwuid_r getresgid getresuid getrusage getsid getspent \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ + pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ + sched_setparam sched_setscheduler sem_clockwait sem_getvalue sem_open \ + sem_timedwait sem_unlink sendfile setegid seteuid setgid sethostname \ + setitimer setlocale setpgid setpgrp setpriority setregid setresgid \ + setresuid setreuid setsid setuid setvbuf shutdown sigaction sigaltstack \ + sigfillset siginterrupt sigpending sigrelse sigtimedwait sigwait \ + sigwaitinfo snprintf splice strftime strlcpy strsignal symlinkat sync \ + sysconf system tcgetpgrp tcsetpgrp tempnam timegm times tmpfile \ + tmpnam tmpnam_r truncate ttyname umask uname unlinkat utimensat utimes vfork \ + wait wait3 wait4 waitid waitpid wcscoll wcsftime wcsxfrm wmemcmp writev \ + +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + +# Force lchmod off for Linux. Linux disallows changing the mode of symbolic +# links. Some libc implementations have a stub lchmod implementation that always +# returns an error. +if test "$MACHDEP" != linux; then + for ac_func in lchmod +do : + ac_fn_c_check_func "$LINENO" "lchmod" "ac_cv_func_lchmod" +if test "x$ac_cv_func_lchmod" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LCHMOD 1 +_ACEOF + +fi +done + +fi + +ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include <sys/types.h> + #include <dirent.h> +" +if test "x$ac_cv_have_decl_dirfd" = xyes; then : + +$as_echo "#define HAVE_DIRFD 1" >>confdefs.h + +fi + + +# For some functions, having a definition is not sufficient, since +# we want to take their address. + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for chroot" >&5 +$as_echo_n "checking for chroot... " >&6; } +if ${ac_cv_func_chroot+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <unistd.h> +int +main () +{ +void *x=chroot + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_chroot=yes +else + ac_cv_func_chroot=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_chroot" >&5 +$as_echo "$ac_cv_func_chroot" >&6; } + if test "x$ac_cv_func_chroot" = xyes; then : + +$as_echo "#define HAVE_CHROOT 1" >>confdefs.h + +fi + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for link" >&5 +$as_echo_n "checking for link... " >&6; } +if ${ac_cv_func_link+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <unistd.h> +int +main () +{ +void *x=link + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_link=yes +else + ac_cv_func_link=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_link" >&5 +$as_echo "$ac_cv_func_link" >&6; } + if test "x$ac_cv_func_link" = xyes; then : + +$as_echo "#define HAVE_LINK 1" >>confdefs.h + +fi + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for symlink" >&5 +$as_echo_n "checking for symlink... " >&6; } +if ${ac_cv_func_symlink+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <unistd.h> +int +main () +{ +void *x=symlink + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_symlink=yes +else + ac_cv_func_symlink=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_symlink" >&5 +$as_echo "$ac_cv_func_symlink" >&6; } + if test "x$ac_cv_func_symlink" = xyes; then : + +$as_echo "#define HAVE_SYMLINK 1" >>confdefs.h + +fi + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fchdir" >&5 +$as_echo_n "checking for fchdir... " >&6; } +if ${ac_cv_func_fchdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <unistd.h> +int +main () +{ +void *x=fchdir + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_fchdir=yes +else + ac_cv_func_fchdir=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fchdir" >&5 +$as_echo "$ac_cv_func_fchdir" >&6; } + if test "x$ac_cv_func_fchdir" = xyes; then : + +$as_echo "#define HAVE_FCHDIR 1" >>confdefs.h + +fi + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fsync" >&5 +$as_echo_n "checking for fsync... " >&6; } +if ${ac_cv_func_fsync+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <unistd.h> +int +main () +{ +void *x=fsync + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_fsync=yes +else + ac_cv_func_fsync=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fsync" >&5 +$as_echo "$ac_cv_func_fsync" >&6; } + if test "x$ac_cv_func_fsync" = xyes; then : + +$as_echo "#define HAVE_FSYNC 1" >>confdefs.h + +fi + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fdatasync" >&5 +$as_echo_n "checking for fdatasync... " >&6; } +if ${ac_cv_func_fdatasync+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <unistd.h> +int +main () +{ +void *x=fdatasync + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_fdatasync=yes +else + ac_cv_func_fdatasync=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fdatasync" >&5 +$as_echo "$ac_cv_func_fdatasync" >&6; } + if test "x$ac_cv_func_fdatasync" = xyes; then : + +$as_echo "#define HAVE_FDATASYNC 1" >>confdefs.h + +fi + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for epoll_create" >&5 +$as_echo_n "checking for epoll_create... " >&6; } +if ${ac_cv_func_epoll_create+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/epoll.h> +int +main () +{ +void *x=epoll_create + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_epoll_create=yes +else + ac_cv_func_epoll_create=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_epoll_create" >&5 +$as_echo "$ac_cv_func_epoll_create" >&6; } + if test "x$ac_cv_func_epoll_create" = xyes; then : + +$as_echo "#define HAVE_EPOLL 1" >>confdefs.h + +fi + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for epoll_create1" >&5 +$as_echo_n "checking for epoll_create1... " >&6; } +if ${ac_cv_func_epoll_create1+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/epoll.h> +int +main () +{ +void *x=epoll_create1 + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_epoll_create1=yes +else + ac_cv_func_epoll_create1=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_epoll_create1" >&5 +$as_echo "$ac_cv_func_epoll_create1" >&6; } + if test "x$ac_cv_func_epoll_create1" = xyes; then : + +$as_echo "#define HAVE_EPOLL_CREATE1 1" >>confdefs.h + +fi + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kqueue" >&5 +$as_echo_n "checking for kqueue... " >&6; } +if ${ac_cv_func_kqueue+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include <sys/types.h> +#include <sys/event.h> + +int +main () +{ +void *x=kqueue + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_kqueue=yes +else + ac_cv_func_kqueue=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_kqueue" >&5 +$as_echo "$ac_cv_func_kqueue" >&6; } + if test "x$ac_cv_func_kqueue" = xyes; then : + +$as_echo "#define HAVE_KQUEUE 1" >>confdefs.h + +fi + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prlimit" >&5 +$as_echo_n "checking for prlimit... " >&6; } +if ${ac_cv_func_prlimit+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include <sys/time.h> +#include <sys/resource.h> + +int +main () +{ +void *x=prlimit + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_prlimit=yes +else + ac_cv_func_prlimit=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_prlimit" >&5 +$as_echo "$ac_cv_func_prlimit" >&6; } + if test "x$ac_cv_func_prlimit" = xyes; then : + +$as_echo "#define HAVE_PRLIMIT 1" >>confdefs.h + +fi + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _dyld_shared_cache_contains_path" >&5 +$as_echo_n "checking for _dyld_shared_cache_contains_path... " >&6; } +if ${ac_cv_func__dyld_shared_cache_contains_path+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <mach-o/dyld.h> +int +main () +{ +void *x=_dyld_shared_cache_contains_path + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func__dyld_shared_cache_contains_path=yes +else + ac_cv_func__dyld_shared_cache_contains_path=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func__dyld_shared_cache_contains_path" >&5 +$as_echo "$ac_cv_func__dyld_shared_cache_contains_path" >&6; } + if test "x$ac_cv_func__dyld_shared_cache_contains_path" = xyes; then : + +$as_echo "#define HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH 1" >>confdefs.h + +fi + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for memfd_create" >&5 +$as_echo_n "checking for memfd_create... " >&6; } +if ${ac_cv_func_memfd_create+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef HAVE_SYS_MMAN_H +#include <sys/mman.h> +#endif +#ifdef HAVE_SYS_MEMFD_H +#include <sys/memfd.h> +#endif + +int +main () +{ +void *x=memfd_create + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_memfd_create=yes +else + ac_cv_func_memfd_create=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_memfd_create" >&5 +$as_echo "$ac_cv_func_memfd_create" >&6; } + if test "x$ac_cv_func_memfd_create" = xyes; then : + +$as_echo "#define HAVE_MEMFD_CREATE 1" >>confdefs.h + +fi + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for eventfd" >&5 +$as_echo_n "checking for eventfd... " >&6; } +if ${ac_cv_func_eventfd+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef HAVE_SYS_EVENTFD_H +#include <sys/eventfd.h> +#endif + +int +main () +{ +void *x=eventfd + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_eventfd=yes +else + ac_cv_func_eventfd=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_eventfd" >&5 +$as_echo "$ac_cv_func_eventfd" >&6; } + if test "x$ac_cv_func_eventfd" = xyes; then : + +$as_echo "#define HAVE_EVENTFD 1" >>confdefs.h + +fi + + + + +# On some systems (eg. FreeBSD 5), we would find a definition of the +# functions ctermid_r, setgroups in the library, but no prototype +# (e.g. because we use _XOPEN_SOURCE). See whether we can take their +# address to avoid compiler warnings and potential miscompilations +# because of the missing prototypes. + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ctermid_r" >&5 +$as_echo_n "checking for ctermid_r... " >&6; } +if ${ac_cv_func_ctermid_r+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <stdio.h> +int +main () +{ +void *x=ctermid_r + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_ctermid_r=yes +else + ac_cv_func_ctermid_r=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_ctermid_r" >&5 +$as_echo "$ac_cv_func_ctermid_r" >&6; } + if test "x$ac_cv_func_ctermid_r" = xyes; then : + +$as_echo "#define HAVE_CTERMID_R 1" >>confdefs.h + +fi + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for flock declaration" >&5 +$as_echo_n "checking for flock declaration... " >&6; } +if ${ac_cv_flock_decl+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/file.h> +int +main () +{ +void* p = flock + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_flock_decl=yes +else + ac_cv_flock_decl=no + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_flock_decl" >&5 +$as_echo "$ac_cv_flock_decl" >&6; } +if test "x$ac_cv_flock_decl" = xyes; then : + for ac_func in flock +do : + ac_fn_c_check_func "$LINENO" "flock" "ac_cv_func_flock" +if test "x$ac_cv_func_flock" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_FLOCK 1 +_ACEOF + +fi +done + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for flock in -lbsd" >&5 +$as_echo_n "checking for flock in -lbsd... " >&6; } +if ${ac_cv_lib_bsd_flock+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lbsd $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char flock (); +int +main () +{ +return flock (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_bsd_flock=yes +else + ac_cv_lib_bsd_flock=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_flock" >&5 +$as_echo "$ac_cv_lib_bsd_flock" >&6; } +if test "x$ac_cv_lib_bsd_flock" = xyes; then : + FCNTL_LIBS="-lbsd" +fi + + +fi + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getpagesize" >&5 +$as_echo_n "checking for getpagesize... " >&6; } +if ${ac_cv_func_getpagesize+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <unistd.h> +int +main () +{ +void *x=getpagesize + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_getpagesize=yes +else + ac_cv_func_getpagesize=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getpagesize" >&5 +$as_echo "$ac_cv_func_getpagesize" >&6; } + if test "x$ac_cv_func_getpagesize" = xyes; then : + +$as_echo "#define HAVE_GETPAGESIZE 1" >>confdefs.h + +fi + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken unsetenv" >&5 +$as_echo_n "checking for broken unsetenv... " >&6; } +if ${ac_cv_broken_unsetenv+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <stdlib.h> +int +main () +{ +int res = unsetenv("DUMMY") + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_broken_unsetenv=no +else + ac_cv_broken_unsetenv=yes + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_unsetenv" >&5 +$as_echo "$ac_cv_broken_unsetenv" >&6; } +if test "x$ac_cv_broken_unsetenv" = xyes; then : + + +$as_echo "#define HAVE_BROKEN_UNSETENV 1" >>confdefs.h + + +fi + +for ac_prog in true +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_TRUE+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$TRUE"; then + ac_cv_prog_TRUE="$TRUE" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_TRUE="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +TRUE=$ac_cv_prog_TRUE +if test -n "$TRUE"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TRUE" >&5 +$as_echo "$TRUE" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$TRUE" && break +done +test -n "$TRUE" || TRUE="/bin/true" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_aton in -lc" >&5 +$as_echo_n "checking for inet_aton in -lc... " >&6; } +if ${ac_cv_lib_c_inet_aton+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lc $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char inet_aton (); +int +main () +{ +return inet_aton (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_c_inet_aton=yes +else + ac_cv_lib_c_inet_aton=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_inet_aton" >&5 +$as_echo "$ac_cv_lib_c_inet_aton" >&6; } +if test "x$ac_cv_lib_c_inet_aton" = xyes; then : + $ac_cv_prog_TRUE +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_aton in -lresolv" >&5 +$as_echo_n "checking for inet_aton in -lresolv... " >&6; } +if ${ac_cv_lib_resolv_inet_aton+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lresolv $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char inet_aton (); +int +main () +{ +return inet_aton (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_resolv_inet_aton=yes +else + ac_cv_lib_resolv_inet_aton=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_inet_aton" >&5 +$as_echo "$ac_cv_lib_resolv_inet_aton" >&6; } +if test "x$ac_cv_lib_resolv_inet_aton" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBRESOLV 1 +_ACEOF + + LIBS="-lresolv $LIBS" + +fi + + +fi + + +# On Tru64, chflags seems to be present, but calling it will +# exit Python +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for chflags" >&5 +$as_echo_n "checking for chflags... " >&6; } +if ${ac_cv_have_chflags+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + ac_cv_have_chflags=cross +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include <sys/stat.h> +#include <unistd.h> +int main(int argc, char*argv[]) +{ + if(chflags(argv[0], 0) != 0) + return 1; + return 0; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_have_chflags=yes +else + ac_cv_have_chflags=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_chflags" >&5 +$as_echo "$ac_cv_have_chflags" >&6; } +if test "$ac_cv_have_chflags" = cross ; then + ac_fn_c_check_func "$LINENO" "chflags" "ac_cv_func_chflags" +if test "x$ac_cv_func_chflags" = xyes; then : + ac_cv_have_chflags="yes" +else + ac_cv_have_chflags="no" +fi + +fi +if test "$ac_cv_have_chflags" = yes ; then + +$as_echo "#define HAVE_CHFLAGS 1" >>confdefs.h + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for lchflags" >&5 +$as_echo_n "checking for lchflags... " >&6; } +if ${ac_cv_have_lchflags+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + ac_cv_have_lchflags=cross +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include <sys/stat.h> +#include <unistd.h> +int main(int argc, char*argv[]) +{ + if(lchflags(argv[0], 0) != 0) + return 1; + return 0; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_have_lchflags=yes +else + ac_cv_have_lchflags=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_lchflags" >&5 +$as_echo "$ac_cv_have_lchflags" >&6; } +if test "$ac_cv_have_lchflags" = cross ; then + ac_fn_c_check_func "$LINENO" "lchflags" "ac_cv_func_lchflags" +if test "x$ac_cv_func_lchflags" = xyes; then : + ac_cv_have_lchflags="yes" +else + ac_cv_have_lchflags="no" +fi + +fi +if test "$ac_cv_have_lchflags" = yes ; then + +$as_echo "#define HAVE_LCHFLAGS 1" >>confdefs.h + +fi + + + + + + + if test "$ac_sys_system" = "Emscripten" -a -z "$ZLIB_CFLAGS" -a -z "$ZLIB_LIBS"; then : + + ZLIB_CFLAGS="-sUSE_ZLIB" + ZLIB_LIBS="-sUSE_ZLIB" + +fi + + + + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ZLIB" >&5 +$as_echo_n "checking for ZLIB... " >&6; } + +if test -n "$ZLIB_CFLAGS"; then + pkg_cv_ZLIB_CFLAGS="$ZLIB_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"zlib >= 1.2.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "zlib >= 1.2.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_ZLIB_CFLAGS=`$PKG_CONFIG --cflags "zlib >= 1.2.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$ZLIB_LIBS"; then + pkg_cv_ZLIB_LIBS="$ZLIB_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"zlib >= 1.2.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "zlib >= 1.2.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_ZLIB_LIBS=`$PKG_CONFIG --libs "zlib >= 1.2.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + ZLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "zlib >= 1.2.0" 2>&1` + else + ZLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "zlib >= 1.2.0" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$ZLIB_PKG_ERRORS" >&5 + + + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS + + + CPPFLAGS="$CPPFLAGS $ZLIB_CFLAGS" + LDFLAGS="$LDFLAGS $ZLIB_LIBS" + for ac_header in zlib.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" +if test "x$ac_cv_header_zlib_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_ZLIB_H 1 +_ACEOF + + py_check_lib_save_LIBS=$LIBS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gzread in -lz" >&5 +$as_echo_n "checking for gzread in -lz... " >&6; } +if ${ac_cv_lib_z_gzread+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lz $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gzread (); +int +main () +{ +return gzread (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_z_gzread=yes +else + ac_cv_lib_z_gzread=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_gzread" >&5 +$as_echo "$ac_cv_lib_z_gzread" >&6; } +if test "x$ac_cv_lib_z_gzread" = xyes; then : + have_zlib=yes +else + have_zlib=no +fi + +LIBS=$py_check_lib_save_LIBS + + +else + have_zlib=no +fi + +done + + if test "x$have_zlib" = xyes; then : + + ZLIB_CFLAGS=${ZLIB_CFLAGS-""} + ZLIB_LIBS=${ZLIB_LIBS-"-lz"} + py_check_lib_save_LIBS=$LIBS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inflateCopy in -lz" >&5 +$as_echo_n "checking for inflateCopy in -lz... " >&6; } +if ${ac_cv_lib_z_inflateCopy+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lz $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char inflateCopy (); +int +main () +{ +return inflateCopy (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_z_inflateCopy=yes +else + ac_cv_lib_z_inflateCopy=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_inflateCopy" >&5 +$as_echo "$ac_cv_lib_z_inflateCopy" >&6; } +if test "x$ac_cv_lib_z_inflateCopy" = xyes; then : + $as_echo "#define HAVE_ZLIB_COPY 1" >>confdefs.h + +fi + +LIBS=$py_check_lib_save_LIBS + + +fi + +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS + + + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS + + + CPPFLAGS="$CPPFLAGS $ZLIB_CFLAGS" + LDFLAGS="$LDFLAGS $ZLIB_LIBS" + for ac_header in zlib.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" +if test "x$ac_cv_header_zlib_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_ZLIB_H 1 +_ACEOF + + py_check_lib_save_LIBS=$LIBS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gzread in -lz" >&5 +$as_echo_n "checking for gzread in -lz... " >&6; } +if ${ac_cv_lib_z_gzread+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lz $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gzread (); +int +main () +{ +return gzread (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_z_gzread=yes +else + ac_cv_lib_z_gzread=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_gzread" >&5 +$as_echo "$ac_cv_lib_z_gzread" >&6; } +if test "x$ac_cv_lib_z_gzread" = xyes; then : + have_zlib=yes +else + have_zlib=no +fi + +LIBS=$py_check_lib_save_LIBS + + +else + have_zlib=no +fi + +done + + if test "x$have_zlib" = xyes; then : + + ZLIB_CFLAGS=${ZLIB_CFLAGS-""} + ZLIB_LIBS=${ZLIB_LIBS-"-lz"} + py_check_lib_save_LIBS=$LIBS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inflateCopy in -lz" >&5 +$as_echo_n "checking for inflateCopy in -lz... " >&6; } +if ${ac_cv_lib_z_inflateCopy+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lz $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char inflateCopy (); +int +main () +{ +return inflateCopy (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_z_inflateCopy=yes +else + ac_cv_lib_z_inflateCopy=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_inflateCopy" >&5 +$as_echo "$ac_cv_lib_z_inflateCopy" >&6; } +if test "x$ac_cv_lib_z_inflateCopy" = xyes; then : + $as_echo "#define HAVE_ZLIB_COPY 1" >>confdefs.h + +fi + +LIBS=$py_check_lib_save_LIBS + + +fi + +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS + + + +else + ZLIB_CFLAGS=$pkg_cv_ZLIB_CFLAGS + ZLIB_LIBS=$pkg_cv_ZLIB_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + have_zlib=yes + $as_echo "#define HAVE_ZLIB_COPY 1" >>confdefs.h + + +fi + +if test "x$have_zlib" = xyes; then : + + BINASCII_CFLAGS="-DUSE_ZLIB_CRC32 $ZLIB_CFLAGS" + BINASCII_LIBS="$ZLIB_LIBS" + +fi + + + + + if test "$ac_sys_system" = "Emscripten" -a -z "$BZIP2_CFLAGS" -a -z "$BZIP2_LIBS"; then : + + BZIP2_CFLAGS="-sUSE_BZIP2" + BZIP2_LIBS="-sUSE_BZIP2" + +fi + + + + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BZIP2" >&5 +$as_echo_n "checking for BZIP2... " >&6; } + +if test -n "$BZIP2_CFLAGS"; then + pkg_cv_BZIP2_CFLAGS="$BZIP2_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"bzip2\""; } >&5 + ($PKG_CONFIG --exists --print-errors "bzip2") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_BZIP2_CFLAGS=`$PKG_CONFIG --cflags "bzip2" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$BZIP2_LIBS"; then + pkg_cv_BZIP2_LIBS="$BZIP2_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"bzip2\""; } >&5 + ($PKG_CONFIG --exists --print-errors "bzip2") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_BZIP2_LIBS=`$PKG_CONFIG --libs "bzip2" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + BZIP2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "bzip2" 2>&1` + else + BZIP2_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "bzip2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$BZIP2_PKG_ERRORS" >&5 + + + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS + + + CPPFLAGS="$CPPFLAGS $BZIP2_CFLAGS" + LDFLAGS="$LDFLAGS $BZIP2_LIBS" + for ac_header in bzlib.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "bzlib.h" "ac_cv_header_bzlib_h" "$ac_includes_default" +if test "x$ac_cv_header_bzlib_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_BZLIB_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BZ2_bzCompress in -lbz2" >&5 +$as_echo_n "checking for BZ2_bzCompress in -lbz2... " >&6; } +if ${ac_cv_lib_bz2_BZ2_bzCompress+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lbz2 $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char BZ2_bzCompress (); +int +main () +{ +return BZ2_bzCompress (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_bz2_BZ2_bzCompress=yes +else + ac_cv_lib_bz2_BZ2_bzCompress=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bz2_BZ2_bzCompress" >&5 +$as_echo "$ac_cv_lib_bz2_BZ2_bzCompress" >&6; } +if test "x$ac_cv_lib_bz2_BZ2_bzCompress" = xyes; then : + have_bzip2=yes +else + have_bzip2=no +fi + + +else + have_bzip2=no +fi + +done + + if test "x$have_bzip2" = xyes; then : + + BZIP2_CFLAGS=${BZIP2_CFLAGS-""} + BZIP2_LIBS=${BZIP2_LIBS-"-lbz2"} + +fi + +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS + + + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS + + + CPPFLAGS="$CPPFLAGS $BZIP2_CFLAGS" + LDFLAGS="$LDFLAGS $BZIP2_LIBS" + for ac_header in bzlib.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "bzlib.h" "ac_cv_header_bzlib_h" "$ac_includes_default" +if test "x$ac_cv_header_bzlib_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_BZLIB_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BZ2_bzCompress in -lbz2" >&5 +$as_echo_n "checking for BZ2_bzCompress in -lbz2... " >&6; } +if ${ac_cv_lib_bz2_BZ2_bzCompress+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lbz2 $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char BZ2_bzCompress (); +int +main () +{ +return BZ2_bzCompress (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_bz2_BZ2_bzCompress=yes +else + ac_cv_lib_bz2_BZ2_bzCompress=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bz2_BZ2_bzCompress" >&5 +$as_echo "$ac_cv_lib_bz2_BZ2_bzCompress" >&6; } +if test "x$ac_cv_lib_bz2_BZ2_bzCompress" = xyes; then : + have_bzip2=yes +else + have_bzip2=no +fi + + +else + have_bzip2=no +fi + +done + + if test "x$have_bzip2" = xyes; then : + + BZIP2_CFLAGS=${BZIP2_CFLAGS-""} + BZIP2_LIBS=${BZIP2_LIBS-"-lbz2"} + +fi + +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS + + + +else + BZIP2_CFLAGS=$pkg_cv_BZIP2_CFLAGS + BZIP2_LIBS=$pkg_cv_BZIP2_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + have_bzip2=yes +fi + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBLZMA" >&5 +$as_echo_n "checking for LIBLZMA... " >&6; } + +if test -n "$LIBLZMA_CFLAGS"; then + pkg_cv_LIBLZMA_CFLAGS="$LIBLZMA_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"liblzma\""; } >&5 + ($PKG_CONFIG --exists --print-errors "liblzma") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBLZMA_CFLAGS=`$PKG_CONFIG --cflags "liblzma" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$LIBLZMA_LIBS"; then + pkg_cv_LIBLZMA_LIBS="$LIBLZMA_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"liblzma\""; } >&5 + ($PKG_CONFIG --exists --print-errors "liblzma") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBLZMA_LIBS=`$PKG_CONFIG --libs "liblzma" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + LIBLZMA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "liblzma" 2>&1` + else + LIBLZMA_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "liblzma" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$LIBLZMA_PKG_ERRORS" >&5 + + + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS + + + CPPFLAGS="$CPPFLAGS $LIBLZMA_CFLAGS" + LDFLAGS="$LDFLAGS $LIBLZMA_LIBS" + for ac_header in lzma.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "lzma.h" "ac_cv_header_lzma_h" "$ac_includes_default" +if test "x$ac_cv_header_lzma_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LZMA_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lzma_easy_encoder in -llzma" >&5 +$as_echo_n "checking for lzma_easy_encoder in -llzma... " >&6; } +if ${ac_cv_lib_lzma_lzma_easy_encoder+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-llzma $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char lzma_easy_encoder (); +int +main () +{ +return lzma_easy_encoder (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_lzma_lzma_easy_encoder=yes +else + ac_cv_lib_lzma_lzma_easy_encoder=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lzma_lzma_easy_encoder" >&5 +$as_echo "$ac_cv_lib_lzma_lzma_easy_encoder" >&6; } +if test "x$ac_cv_lib_lzma_lzma_easy_encoder" = xyes; then : + have_liblzma=yes +else + have_liblzma=no +fi + + +else + have_liblzma=no +fi + +done + + if test "x$have_liblzma" = xyes; then : + + LIBLZMA_CFLAGS=${LIBLZMA_CFLAGS-""} + LIBLZMA_LIBS=${LIBLZMA_LIBS-"-llzma"} + +fi + +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS + + + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS + + + CPPFLAGS="$CPPFLAGS $LIBLZMA_CFLAGS" + LDFLAGS="$LDFLAGS $LIBLZMA_LIBS" + for ac_header in lzma.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "lzma.h" "ac_cv_header_lzma_h" "$ac_includes_default" +if test "x$ac_cv_header_lzma_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LZMA_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lzma_easy_encoder in -llzma" >&5 +$as_echo_n "checking for lzma_easy_encoder in -llzma... " >&6; } +if ${ac_cv_lib_lzma_lzma_easy_encoder+:} false; then : $as_echo_n "(cached) " >&6 else - case $DTRACE in - [\\/]* | ?:[\\/]*) - ac_cv_path_DTRACE="$DTRACE" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_DTRACE="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi + ac_check_lib_save_LIBS=$LIBS +LIBS="-llzma $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char lzma_easy_encoder (); +int +main () +{ +return lzma_easy_encoder (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_lzma_lzma_easy_encoder=yes +else + ac_cv_lib_lzma_lzma_easy_encoder=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lzma_lzma_easy_encoder" >&5 +$as_echo "$ac_cv_lib_lzma_lzma_easy_encoder" >&6; } +if test "x$ac_cv_lib_lzma_lzma_easy_encoder" = xyes; then : + have_liblzma=yes +else + have_liblzma=no +fi + + +else + have_liblzma=no +fi + done - done -IFS=$as_save_IFS - test -z "$ac_cv_path_DTRACE" && ac_cv_path_DTRACE="not found" - ;; -esac + if test "x$have_liblzma" = xyes; then : + + LIBLZMA_CFLAGS=${LIBLZMA_CFLAGS-""} + LIBLZMA_LIBS=${LIBLZMA_LIBS-"-llzma"} + +fi + +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS + + + +else + LIBLZMA_CFLAGS=$pkg_cv_LIBLZMA_CFLAGS + LIBLZMA_LIBS=$pkg_cv_LIBLZMA_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + have_liblzma=yes +fi + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for hstrerror" >&5 +$as_echo_n "checking for hstrerror... " >&6; } +if ${ac_cv_func_hstrerror+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <netdb.h> +int +main () +{ +void *x=hstrerror + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_hstrerror=yes +else + ac_cv_func_hstrerror=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_hstrerror" >&5 +$as_echo "$ac_cv_func_hstrerror" >&6; } + if test "x$ac_cv_func_hstrerror" = xyes; then : + +$as_echo "#define HAVE_HSTRERROR 1" >>confdefs.h + +fi + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getservbyname" >&5 +$as_echo_n "checking for getservbyname... " >&6; } +if ${ac_cv_func_getservbyname+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <netdb.h> +int +main () +{ +void *x=getservbyname + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_getservbyname=yes +else + ac_cv_func_getservbyname=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getservbyname" >&5 +$as_echo "$ac_cv_func_getservbyname" >&6; } + if test "x$ac_cv_func_getservbyname" = xyes; then : + +$as_echo "#define HAVE_GETSERVBYNAME 1" >>confdefs.h + +fi + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getservbyport" >&5 +$as_echo_n "checking for getservbyport... " >&6; } +if ${ac_cv_func_getservbyport+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <netdb.h> +int +main () +{ +void *x=getservbyport + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_getservbyport=yes +else + ac_cv_func_getservbyport=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getservbyport" >&5 +$as_echo "$ac_cv_func_getservbyport" >&6; } + if test "x$ac_cv_func_getservbyport" = xyes; then : + +$as_echo "#define HAVE_GETSERVBYPORT 1" >>confdefs.h + +fi + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname" >&5 +$as_echo_n "checking for gethostbyname... " >&6; } +if ${ac_cv_func_gethostbyname+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <netdb.h> +int +main () +{ +void *x=gethostbyname + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_gethostbyname=yes +else + ac_cv_func_gethostbyname=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi -DTRACE=$ac_cv_path_DTRACE -if test -n "$DTRACE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DTRACE" >&5 -$as_echo "$DTRACE" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_gethostbyname" >&5 +$as_echo "$ac_cv_func_gethostbyname" >&6; } + if test "x$ac_cv_func_gethostbyname" = xyes; then : + +$as_echo "#define HAVE_GETHOSTBYNAME 1" >>confdefs.h + fi - if test "$DTRACE" = "not found"; then - as_fn_error $? "dtrace command not found on \$PATH" "$LINENO" 5 - fi -$as_echo "#define WITH_DTRACE 1" >>confdefs.h - DTRACE_HEADERS="Include/pydtrace_probes.h" - # On OS X, DTrace providers do not need to be explicitly compiled and - # linked into the binary. Correspondingly, dtrace(1) is missing the ELF - # generation flag '-G'. We check for presence of this flag, rather than - # hardcoding support by OS, in the interest of robustness. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether DTrace probes require linking" >&5 -$as_echo_n "checking whether DTrace probes require linking... " >&6; } -if ${ac_cv_dtrace_link+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyaddr" >&5 +$as_echo_n "checking for gethostbyaddr... " >&6; } +if ${ac_cv_func_gethostbyaddr+:} false; then : $as_echo_n "(cached) " >&6 else - ac_cv_dtrace_link=no - echo 'BEGIN{}' > conftest.d - "$DTRACE" $DFLAGS -G -s conftest.d -o conftest.o > /dev/null 2>&1 && \ - ac_cv_dtrace_link=yes - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_dtrace_link" >&5 -$as_echo "$ac_cv_dtrace_link" >&6; } - if test "$ac_cv_dtrace_link" = "yes"; then - DTRACE_OBJS="Python/pydtrace.o" - fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <netdb.h> +int +main () +{ +void *x=gethostbyaddr + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_gethostbyaddr=yes +else + ac_cv_func_gethostbyaddr=no fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -PLATFORM_HEADERS= -PLATFORM_OBJS= +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_gethostbyaddr" >&5 +$as_echo "$ac_cv_func_gethostbyaddr" >&6; } + if test "x$ac_cv_func_gethostbyaddr" = xyes; then : -case $ac_sys_system in #( - Emscripten) : +$as_echo "#define HAVE_GETHOSTBYADDR 1" >>confdefs.h - as_fn_append PLATFORM_OBJS ' Python/emscripten_signal.o' - as_fn_append PLATFORM_HEADERS ' $(srcdir)/Include/internal/pycore_emscripten_signal.h' - ;; #( - *) : - ;; -esac +fi -# -I${DLINCLDIR} is added to the compile rule for importdl.o -DLINCLDIR=. -# the dlopen() function means we might want to use dynload_shlib.o. some -# platforms have dlopen(), but don't want to use it. -for ac_func in dlopen -do : - ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" -if test "x$ac_cv_func_dlopen" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DLOPEN 1 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getprotobyname" >&5 +$as_echo_n "checking for getprotobyname... " >&6; } +if ${ac_cv_func_getprotobyname+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <netdb.h> +int +main () +{ +void *x=getprotobyname + ; + return 0; +} _ACEOF - +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_getprotobyname=yes +else + ac_cv_func_getprotobyname=no fi -done +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getprotobyname" >&5 +$as_echo "$ac_cv_func_getprotobyname" >&6; } + if test "x$ac_cv_func_getprotobyname" = xyes; then : -# DYNLOADFILE specifies which dynload_*.o file we will use for dynamic -# loading of modules. +$as_echo "#define HAVE_GETPROTOBYNAME 1" >>confdefs.h -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking DYNLOADFILE" >&5 -$as_echo_n "checking DYNLOADFILE... " >&6; } -if test -z "$DYNLOADFILE" -then - case $ac_sys_system/$ac_sys_release in - hp*|HP*) DYNLOADFILE="dynload_hpux.o";; - *) - # use dynload_shlib.c and dlopen() if we have it; otherwise stub - # out any dynamic loading - if test "$ac_cv_func_dlopen" = yes - then DYNLOADFILE="dynload_shlib.o" - else DYNLOADFILE="dynload_stub.o" - fi - ;; - esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $DYNLOADFILE" >&5 -$as_echo "$DYNLOADFILE" >&6; } -if test "$DYNLOADFILE" != "dynload_stub.o" -then -$as_echo "#define HAVE_DYNAMIC_LOADING 1" >>confdefs.h -fi -# MACHDEP_OBJS can be set to platform-specific object files needed by Python -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking MACHDEP_OBJS" >&5 -$as_echo_n "checking MACHDEP_OBJS... " >&6; } -if test -z "$MACHDEP_OBJS" -then - MACHDEP_OBJS=$extra_machdep_objs + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_aton" >&5 +$as_echo_n "checking for inet_aton... " >&6; } +if ${ac_cv_func_inet_aton+:} false; then : + $as_echo_n "(cached) " >&6 else - MACHDEP_OBJS="$MACHDEP_OBJS $extra_machdep_objs" -fi -if test -z "$MACHDEP_OBJS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 -$as_echo "none" >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include <sys/types.h> +#include <sys/socket.h> +#include <netinet/in.h> +#include <arpa/inet.h> + +int +main () +{ +void *x=inet_aton + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_inet_aton=yes else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MACHDEP_OBJS" >&5 -$as_echo "$MACHDEP_OBJS" >&6; } + ac_cv_func_inet_aton=no fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -# checks for library functions -for ac_func in \ - accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ - copy_file_range ctermid dup3 execv explicit_bzero explicit_memset \ - faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ - fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ - gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ - getgrnam_r getgrouplist getgroups getitimer getloadavg getlogin \ - getpeername getpgid getpid getppid getpriority _getpty \ - getpwent getpwnam_r getpwuid getpwuid_r getresgid getresuid getrusage getsid getspent \ - getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ - lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ - mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ - pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ - pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ - pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ - rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ - sched_setparam sched_setscheduler sem_clockwait sem_getvalue sem_open \ - sem_timedwait sem_unlink sendfile setegid seteuid setgid sethostname \ - setitimer setlocale setpgid setpgrp setpriority setregid setresgid \ - setresuid setreuid setsid setuid setvbuf shutdown sigaction sigaltstack \ - sigfillset siginterrupt sigpending sigrelse sigtimedwait sigwait \ - sigwaitinfo snprintf splice strftime strlcpy strsignal symlinkat sync \ - sysconf system tcgetpgrp tcsetpgrp tempnam timegm times tmpfile \ - tmpnam tmpnam_r truncate ttyname umask uname unlinkat utimensat utimes vfork \ - wait wait3 wait4 waitid waitpid wcscoll wcsftime wcsxfrm wmemcmp writev \ +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_inet_aton" >&5 +$as_echo "$ac_cv_func_inet_aton" >&6; } + if test "x$ac_cv_func_inet_aton" = xyes; then : -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF +$as_echo "#define HAVE_INET_ATON 1" >>confdefs.h fi -done -# Force lchmod off for Linux. Linux disallows changing the mode of symbolic -# links. Some libc implementations have a stub lchmod implementation that always -# returns an error. -if test "$MACHDEP" != linux; then - for ac_func in lchmod -do : - ac_fn_c_check_func "$LINENO" "lchmod" "ac_cv_func_lchmod" -if test "x$ac_cv_func_lchmod" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LCHMOD 1 -_ACEOF -fi -done -fi -ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include <sys/types.h> - #include <dirent.h> -" -if test "x$ac_cv_have_decl_dirfd" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_ntoa" >&5 +$as_echo_n "checking for inet_ntoa... " >&6; } +if ${ac_cv_func_inet_ntoa+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -$as_echo "#define HAVE_DIRFD 1" >>confdefs.h +#include <sys/types.h> +#include <sys/socket.h> +#include <netinet/in.h> +#include <arpa/inet.h> + +int +main () +{ +void *x=inet_ntoa + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_inet_ntoa=yes +else + ac_cv_func_inet_ntoa=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_inet_ntoa" >&5 +$as_echo "$ac_cv_func_inet_ntoa" >&6; } + if test "x$ac_cv_func_inet_ntoa" = xyes; then : +$as_echo "#define HAVE_INET_NTOA 1" >>confdefs.h +fi -# For some functions, having a definition is not sufficient, since -# we want to take their address. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for chroot" >&5 -$as_echo_n "checking for chroot... " >&6; } -if ${ac_cv_func_chroot+:} false; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_pton" >&5 +$as_echo_n "checking for inet_pton... " >&6; } +if ${ac_cv_func_inet_pton+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <unistd.h> + +#include <sys/types.h> +#include <sys/socket.h> +#include <netinet/in.h> +#include <arpa/inet.h> + int main () { -void *x=chroot +void *x=inet_pton ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_chroot=yes + ac_cv_func_inet_pton=yes else - ac_cv_func_chroot=no + ac_cv_func_inet_pton=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_chroot" >&5 -$as_echo "$ac_cv_func_chroot" >&6; } - if test "x$ac_cv_func_chroot" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_inet_pton" >&5 +$as_echo "$ac_cv_func_inet_pton" >&6; } + if test "x$ac_cv_func_inet_pton" = xyes; then : -$as_echo "#define HAVE_CHROOT 1" >>confdefs.h +$as_echo "#define HAVE_INET_PTON 1" >>confdefs.h fi @@ -14940,35 +18283,40 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for link" >&5 -$as_echo_n "checking for link... " >&6; } -if ${ac_cv_func_link+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getpeername" >&5 +$as_echo_n "checking for getpeername... " >&6; } +if ${ac_cv_func_getpeername+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <unistd.h> + +#include <sys/types.h> +#include <sys/socket.h> +#include <netinet/in.h> +#include <arpa/inet.h> + int main () { -void *x=link +void *x=getpeername ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_link=yes + ac_cv_func_getpeername=yes else - ac_cv_func_link=no + ac_cv_func_getpeername=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_link" >&5 -$as_echo "$ac_cv_func_link" >&6; } - if test "x$ac_cv_func_link" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getpeername" >&5 +$as_echo "$ac_cv_func_getpeername" >&6; } + if test "x$ac_cv_func_getpeername" = xyes; then : -$as_echo "#define HAVE_LINK 1" >>confdefs.h +$as_echo "#define HAVE_GETPEERNAME 1" >>confdefs.h fi @@ -14976,35 +18324,40 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for symlink" >&5 -$as_echo_n "checking for symlink... " >&6; } -if ${ac_cv_func_symlink+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getsockname" >&5 +$as_echo_n "checking for getsockname... " >&6; } +if ${ac_cv_func_getsockname+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <unistd.h> + +#include <sys/types.h> +#include <sys/socket.h> +#include <netinet/in.h> +#include <arpa/inet.h> + int main () { -void *x=symlink +void *x=getsockname ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_symlink=yes + ac_cv_func_getsockname=yes else - ac_cv_func_symlink=no + ac_cv_func_getsockname=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_symlink" >&5 -$as_echo "$ac_cv_func_symlink" >&6; } - if test "x$ac_cv_func_symlink" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getsockname" >&5 +$as_echo "$ac_cv_func_getsockname" >&6; } + if test "x$ac_cv_func_getsockname" = xyes; then : -$as_echo "#define HAVE_SYMLINK 1" >>confdefs.h +$as_echo "#define HAVE_GETSOCKNAME 1" >>confdefs.h fi @@ -15012,35 +18365,40 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fchdir" >&5 -$as_echo_n "checking for fchdir... " >&6; } -if ${ac_cv_func_fchdir+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for accept" >&5 +$as_echo_n "checking for accept... " >&6; } +if ${ac_cv_func_accept+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <unistd.h> + +#include <sys/types.h> +#include <sys/socket.h> +#include <netinet/in.h> +#include <arpa/inet.h> + int main () { -void *x=fchdir +void *x=accept ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_fchdir=yes + ac_cv_func_accept=yes else - ac_cv_func_fchdir=no + ac_cv_func_accept=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fchdir" >&5 -$as_echo "$ac_cv_func_fchdir" >&6; } - if test "x$ac_cv_func_fchdir" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_accept" >&5 +$as_echo "$ac_cv_func_accept" >&6; } + if test "x$ac_cv_func_accept" = xyes; then : -$as_echo "#define HAVE_FCHDIR 1" >>confdefs.h +$as_echo "#define HAVE_ACCEPT 1" >>confdefs.h fi @@ -15048,35 +18406,40 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fsync" >&5 -$as_echo_n "checking for fsync... " >&6; } -if ${ac_cv_func_fsync+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bind" >&5 +$as_echo_n "checking for bind... " >&6; } +if ${ac_cv_func_bind+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <unistd.h> + +#include <sys/types.h> +#include <sys/socket.h> +#include <netinet/in.h> +#include <arpa/inet.h> + int main () { -void *x=fsync +void *x=bind ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_fsync=yes + ac_cv_func_bind=yes else - ac_cv_func_fsync=no + ac_cv_func_bind=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fsync" >&5 -$as_echo "$ac_cv_func_fsync" >&6; } - if test "x$ac_cv_func_fsync" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_bind" >&5 +$as_echo "$ac_cv_func_bind" >&6; } + if test "x$ac_cv_func_bind" = xyes; then : -$as_echo "#define HAVE_FSYNC 1" >>confdefs.h +$as_echo "#define HAVE_BIND 1" >>confdefs.h fi @@ -15084,35 +18447,40 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fdatasync" >&5 -$as_echo_n "checking for fdatasync... " >&6; } -if ${ac_cv_func_fdatasync+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect" >&5 +$as_echo_n "checking for connect... " >&6; } +if ${ac_cv_func_connect+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <unistd.h> + +#include <sys/types.h> +#include <sys/socket.h> +#include <netinet/in.h> +#include <arpa/inet.h> + int main () { -void *x=fdatasync +void *x=connect ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_fdatasync=yes + ac_cv_func_connect=yes else - ac_cv_func_fdatasync=no + ac_cv_func_connect=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fdatasync" >&5 -$as_echo "$ac_cv_func_fdatasync" >&6; } - if test "x$ac_cv_func_fdatasync" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_connect" >&5 +$as_echo "$ac_cv_func_connect" >&6; } + if test "x$ac_cv_func_connect" = xyes; then : -$as_echo "#define HAVE_FDATASYNC 1" >>confdefs.h +$as_echo "#define HAVE_CONNECT 1" >>confdefs.h fi @@ -15120,35 +18488,40 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for epoll_create" >&5 -$as_echo_n "checking for epoll_create... " >&6; } -if ${ac_cv_func_epoll_create+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for listen" >&5 +$as_echo_n "checking for listen... " >&6; } +if ${ac_cv_func_listen+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <sys/epoll.h> + +#include <sys/types.h> +#include <sys/socket.h> +#include <netinet/in.h> +#include <arpa/inet.h> + int main () { -void *x=epoll_create +void *x=listen ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_epoll_create=yes + ac_cv_func_listen=yes else - ac_cv_func_epoll_create=no + ac_cv_func_listen=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_epoll_create" >&5 -$as_echo "$ac_cv_func_epoll_create" >&6; } - if test "x$ac_cv_func_epoll_create" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_listen" >&5 +$as_echo "$ac_cv_func_listen" >&6; } + if test "x$ac_cv_func_listen" = xyes; then : -$as_echo "#define HAVE_EPOLL 1" >>confdefs.h +$as_echo "#define HAVE_LISTEN 1" >>confdefs.h fi @@ -15156,35 +18529,40 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for epoll_create1" >&5 -$as_echo_n "checking for epoll_create1... " >&6; } -if ${ac_cv_func_epoll_create1+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for recvfrom" >&5 +$as_echo_n "checking for recvfrom... " >&6; } +if ${ac_cv_func_recvfrom+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <sys/epoll.h> + +#include <sys/types.h> +#include <sys/socket.h> +#include <netinet/in.h> +#include <arpa/inet.h> + int main () { -void *x=epoll_create1 +void *x=recvfrom ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_epoll_create1=yes + ac_cv_func_recvfrom=yes else - ac_cv_func_epoll_create1=no + ac_cv_func_recvfrom=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_epoll_create1" >&5 -$as_echo "$ac_cv_func_epoll_create1" >&6; } - if test "x$ac_cv_func_epoll_create1" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_recvfrom" >&5 +$as_echo "$ac_cv_func_recvfrom" >&6; } + if test "x$ac_cv_func_recvfrom" = xyes; then : -$as_echo "#define HAVE_EPOLL_CREATE1 1" >>confdefs.h +$as_echo "#define HAVE_RECVFROM 1" >>confdefs.h fi @@ -15192,38 +18570,40 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kqueue" >&5 -$as_echo_n "checking for kqueue... " >&6; } -if ${ac_cv_func_kqueue+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sendto" >&5 +$as_echo_n "checking for sendto... " >&6; } +if ${ac_cv_func_sendto+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> -#include <sys/event.h> +#include <sys/socket.h> +#include <netinet/in.h> +#include <arpa/inet.h> int main () { -void *x=kqueue +void *x=sendto ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_kqueue=yes + ac_cv_func_sendto=yes else - ac_cv_func_kqueue=no + ac_cv_func_sendto=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_kqueue" >&5 -$as_echo "$ac_cv_func_kqueue" >&6; } - if test "x$ac_cv_func_kqueue" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_sendto" >&5 +$as_echo "$ac_cv_func_sendto" >&6; } + if test "x$ac_cv_func_sendto" = xyes; then : -$as_echo "#define HAVE_KQUEUE 1" >>confdefs.h +$as_echo "#define HAVE_SENDTO 1" >>confdefs.h fi @@ -15231,38 +18611,40 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prlimit" >&5 -$as_echo_n "checking for prlimit... " >&6; } -if ${ac_cv_func_prlimit+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for setsockopt" >&5 +$as_echo_n "checking for setsockopt... " >&6; } +if ${ac_cv_func_setsockopt+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <sys/time.h> -#include <sys/resource.h> +#include <sys/types.h> +#include <sys/socket.h> +#include <netinet/in.h> +#include <arpa/inet.h> int main () { -void *x=prlimit +void *x=setsockopt ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_prlimit=yes + ac_cv_func_setsockopt=yes else - ac_cv_func_prlimit=no + ac_cv_func_setsockopt=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_prlimit" >&5 -$as_echo "$ac_cv_func_prlimit" >&6; } - if test "x$ac_cv_func_prlimit" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_setsockopt" >&5 +$as_echo "$ac_cv_func_setsockopt" >&6; } + if test "x$ac_cv_func_setsockopt" = xyes; then : -$as_echo "#define HAVE_PRLIMIT 1" >>confdefs.h +$as_echo "#define HAVE_SETSOCKOPT 1" >>confdefs.h fi @@ -15270,213 +18652,299 @@ fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _dyld_shared_cache_contains_path" >&5 -$as_echo_n "checking for _dyld_shared_cache_contains_path... " >&6; } -if ${ac_cv_func__dyld_shared_cache_contains_path+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket" >&5 +$as_echo_n "checking for socket... " >&6; } +if ${ac_cv_func_socket+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <mach-o/dyld.h> + +#include <sys/types.h> +#include <sys/socket.h> +#include <netinet/in.h> +#include <arpa/inet.h> + int main () { -void *x=_dyld_shared_cache_contains_path +void *x=socket ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func__dyld_shared_cache_contains_path=yes + ac_cv_func_socket=yes else - ac_cv_func__dyld_shared_cache_contains_path=no + ac_cv_func_socket=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func__dyld_shared_cache_contains_path" >&5 -$as_echo "$ac_cv_func__dyld_shared_cache_contains_path" >&6; } - if test "x$ac_cv_func__dyld_shared_cache_contains_path" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_socket" >&5 +$as_echo "$ac_cv_func_socket" >&6; } + if test "x$ac_cv_func_socket" = xyes; then : -$as_echo "#define HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH 1" >>confdefs.h +$as_echo "#define HAVE_SOCKET 1" >>confdefs.h fi +# On some systems, setgroups is in unistd.h, on others, in grp.h - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for memfd_create" >&5 -$as_echo_n "checking for memfd_create... " >&6; } -if ${ac_cv_func_memfd_create+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for setgroups" >&5 +$as_echo_n "checking for setgroups... " >&6; } +if ${ac_cv_func_setgroups+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#ifdef HAVE_SYS_MMAN_H -#include <sys/mman.h> -#endif -#ifdef HAVE_SYS_MEMFD_H -#include <sys/memfd.h> +#include <unistd.h> +#ifdef HAVE_GRP_H +#include <grp.h> #endif int main () { -void *x=memfd_create +void *x=setgroups ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_memfd_create=yes + ac_cv_func_setgroups=yes else - ac_cv_func_memfd_create=no + ac_cv_func_setgroups=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_memfd_create" >&5 -$as_echo "$ac_cv_func_memfd_create" >&6; } - if test "x$ac_cv_func_memfd_create" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_setgroups" >&5 +$as_echo "$ac_cv_func_setgroups" >&6; } + if test "x$ac_cv_func_setgroups" = xyes; then : -$as_echo "#define HAVE_MEMFD_CREATE 1" >>confdefs.h +$as_echo "#define HAVE_SETGROUPS 1" >>confdefs.h fi +# check for openpty, login_tty, and forkpty +for ac_func in openpty +do : + ac_fn_c_check_func "$LINENO" "openpty" "ac_cv_func_openpty" +if test "x$ac_cv_func_openpty" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_OPENPTY 1 +_ACEOF - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for eventfd" >&5 -$as_echo_n "checking for eventfd... " >&6; } -if ${ac_cv_func_eventfd+:} false; then : +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for openpty in -lutil" >&5 +$as_echo_n "checking for openpty in -lutil... " >&6; } +if ${ac_cv_lib_util_openpty+:} false; then : $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_check_lib_save_LIBS=$LIBS +LIBS="-lutil $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#ifdef HAVE_SYS_EVENTFD_H -#include <sys/eventfd.h> +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" #endif +char openpty (); +int +main () +{ +return openpty (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_util_openpty=yes +else + ac_cv_lib_util_openpty=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_util_openpty" >&5 +$as_echo "$ac_cv_lib_util_openpty" >&6; } +if test "x$ac_cv_lib_util_openpty" = xyes; then : + $as_echo "#define HAVE_OPENPTY 1" >>confdefs.h + LIBS="$LIBS -lutil" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for openpty in -lbsd" >&5 +$as_echo_n "checking for openpty in -lbsd... " >&6; } +if ${ac_cv_lib_bsd_openpty+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lbsd $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char openpty (); int main () { -void *x=eventfd +return openpty (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_eventfd=yes +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_bsd_openpty=yes else - ac_cv_func_eventfd=no + ac_cv_lib_bsd_openpty=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_eventfd" >&5 -$as_echo "$ac_cv_func_eventfd" >&6; } - if test "x$ac_cv_func_eventfd" = xyes; then : - -$as_echo "#define HAVE_EVENTFD 1" >>confdefs.h - +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_openpty" >&5 +$as_echo "$ac_cv_lib_bsd_openpty" >&6; } +if test "x$ac_cv_lib_bsd_openpty" = xyes; then : + $as_echo "#define HAVE_OPENPTY 1" >>confdefs.h + LIBS="$LIBS -lbsd" fi +fi -# On some systems (eg. FreeBSD 5), we would find a definition of the -# functions ctermid_r, setgroups in the library, but no prototype -# (e.g. because we use _XOPEN_SOURCE). See whether we can take their -# address to avoid compiler warnings and potential miscompilations -# because of the missing prototypes. - - +fi +done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ctermid_r" >&5 -$as_echo_n "checking for ctermid_r... " >&6; } -if ${ac_cv_func_ctermid_r+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing login_tty" >&5 +$as_echo_n "checking for library containing login_tty... " >&6; } +if ${ac_cv_search_login_tty+:} false; then : $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <stdio.h> + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char login_tty (); int main () { -void *x=ctermid_r +return login_tty (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_ctermid_r=yes -else - ac_cv_func_ctermid_r=no +for ac_lib in '' util; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_login_tty=$ac_res fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_login_tty+:} false; then : + break fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_ctermid_r" >&5 -$as_echo "$ac_cv_func_ctermid_r" >&6; } - if test "x$ac_cv_func_ctermid_r" = xyes; then : - -$as_echo "#define HAVE_CTERMID_R 1" >>confdefs.h +done +if ${ac_cv_search_login_tty+:} false; then : +else + ac_cv_search_login_tty=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_login_tty" >&5 +$as_echo "$ac_cv_search_login_tty" >&6; } +ac_res=$ac_cv_search_login_tty +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" +$as_echo "#define HAVE_LOGIN_TTY 1" >>confdefs.h +fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for flock declaration" >&5 -$as_echo_n "checking for flock declaration... " >&6; } -if ${ac_cv_flock_decl+:} false; then : +for ac_func in forkpty +do : + ac_fn_c_check_func "$LINENO" "forkpty" "ac_cv_func_forkpty" +if test "x$ac_cv_func_forkpty" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_FORKPTY 1 +_ACEOF + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for forkpty in -lutil" >&5 +$as_echo_n "checking for forkpty in -lutil... " >&6; } +if ${ac_cv_lib_util_forkpty+:} false; then : $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_check_lib_save_LIBS=$LIBS +LIBS="-lutil $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <sys/file.h> + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char forkpty (); int main () { -void* p = flock - +return forkpty (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_flock_decl=yes +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_util_forkpty=yes else - ac_cv_flock_decl=no - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - + ac_cv_lib_util_forkpty=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_flock_decl" >&5 -$as_echo "$ac_cv_flock_decl" >&6; } -if test "x$ac_cv_flock_decl" = xyes; then : - for ac_func in flock -do : - ac_fn_c_check_func "$LINENO" "flock" "ac_cv_func_flock" -if test "x$ac_cv_func_flock" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_FLOCK 1 -_ACEOF - +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -done - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for flock in -lbsd" >&5 -$as_echo_n "checking for flock in -lbsd... " >&6; } -if ${ac_cv_lib_bsd_flock+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_util_forkpty" >&5 +$as_echo "$ac_cv_lib_util_forkpty" >&6; } +if test "x$ac_cv_lib_util_forkpty" = xyes; then : + $as_echo "#define HAVE_FORKPTY 1" >>confdefs.h + LIBS="$LIBS -lutil" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for forkpty in -lbsd" >&5 +$as_echo_n "checking for forkpty in -lbsd... " >&6; } +if ${ac_cv_lib_bsd_forkpty+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -15490,156 +18958,198 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char flock (); +char forkpty (); int main () { -return flock (); +return forkpty (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_bsd_flock=yes + ac_cv_lib_bsd_forkpty=yes else - ac_cv_lib_bsd_flock=no + ac_cv_lib_bsd_forkpty=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_flock" >&5 -$as_echo "$ac_cv_lib_bsd_flock" >&6; } -if test "x$ac_cv_lib_bsd_flock" = xyes; then : - FCNTL_LIBS="-lbsd" +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_forkpty" >&5 +$as_echo "$ac_cv_lib_bsd_forkpty" >&6; } +if test "x$ac_cv_lib_bsd_forkpty" = xyes; then : + $as_echo "#define HAVE_FORKPTY 1" >>confdefs.h + LIBS="$LIBS -lbsd" fi fi +fi +done + + +# check for long file support functions +for ac_func in fseek64 fseeko fstatvfs ftell64 ftello statvfs +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + +ac_fn_c_check_func "$LINENO" "dup2" "ac_cv_func_dup2" +if test "x$ac_cv_func_dup2" = xyes; then : + $as_echo "#define HAVE_DUP2 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getpagesize" >&5 -$as_echo_n "checking for getpagesize... " >&6; } -if ${ac_cv_func_getpagesize+:} false; then : - $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + case " $LIBOBJS " in + *" dup2.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS dup2.$ac_objext" + ;; +esac + +fi + + +for ac_func in getpgrp +do : + ac_fn_c_check_func "$LINENO" "getpgrp" "ac_cv_func_getpgrp" +if test "x$ac_cv_func_getpgrp" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GETPGRP 1 +_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <unistd.h> int main () { -void *x=getpagesize +getpgrp(0); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_getpagesize=yes -else - ac_cv_func_getpagesize=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getpagesize" >&5 -$as_echo "$ac_cv_func_getpagesize" >&6; } - if test "x$ac_cv_func_getpagesize" = xyes; then : -$as_echo "#define HAVE_GETPAGESIZE 1" >>confdefs.h +$as_echo "#define GETPGRP_HAVE_ARG 1" >>confdefs.h fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +done - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken unsetenv" >&5 -$as_echo_n "checking for broken unsetenv... " >&6; } -if ${ac_cv_broken_unsetenv+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +for ac_func in setpgrp +do : + ac_fn_c_check_func "$LINENO" "setpgrp" "ac_cv_func_setpgrp" +if test "x$ac_cv_func_setpgrp" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SETPGRP 1 +_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <stdlib.h> +#include <unistd.h> int main () { -int res = unsetenv("DUMMY") +setpgrp(0,0); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_broken_unsetenv=no -else - ac_cv_broken_unsetenv=yes + +$as_echo "#define SETPGRP_HAVE_ARG 1" >>confdefs.h fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_unsetenv" >&5 -$as_echo "$ac_cv_broken_unsetenv" >&6; } -if test "x$ac_cv_broken_unsetenv" = xyes; then : +done -$as_echo "#define HAVE_BROKEN_UNSETENV 1" >>confdefs.h -fi -for ac_prog in true -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_TRUE+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$TRUE"; then - ac_cv_prog_TRUE="$TRUE" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_TRUE="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBCRYPT" >&5 +$as_echo_n "checking for LIBCRYPT... " >&6; } +if test -n "$LIBCRYPT_CFLAGS"; then + pkg_cv_LIBCRYPT_CFLAGS="$LIBCRYPT_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxcrypt >= 3.1.1\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libxcrypt >= 3.1.1") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBCRYPT_CFLAGS=`$PKG_CONFIG --cflags "libxcrypt >= 3.1.1" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes fi + else + pkg_failed=untried fi -TRUE=$ac_cv_prog_TRUE -if test -n "$TRUE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TRUE" >&5 -$as_echo "$TRUE" >&6; } +if test -n "$LIBCRYPT_LIBS"; then + pkg_cv_LIBCRYPT_LIBS="$LIBCRYPT_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxcrypt >= 3.1.1\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libxcrypt >= 3.1.1") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBCRYPT_LIBS=`$PKG_CONFIG --libs "libxcrypt >= 3.1.1" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no fi + if test $_pkg_short_errors_supported = yes; then + LIBCRYPT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libxcrypt >= 3.1.1" 2>&1` + else + LIBCRYPT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libxcrypt >= 3.1.1" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$LIBCRYPT_PKG_ERRORS" >&5 - test -n "$TRUE" && break -done -test -n "$TRUE" || TRUE="/bin/true" + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_aton in -lc" >&5 -$as_echo_n "checking for inet_aton in -lc... " >&6; } -if ${ac_cv_lib_c_inet_aton+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt_r" >&5 +$as_echo_n "checking for library containing crypt_r... " >&6; } +if ${ac_cv_search_crypt_r+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lc $LIBS" + ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -15649,36 +19159,80 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char inet_aton (); +char crypt_r (); int main () { -return inet_aton (); +return crypt_r (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_c_inet_aton=yes -else - ac_cv_lib_c_inet_aton=no +for ac_lib in '' crypt; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_crypt_r=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + conftest$ac_exeext + if ${ac_cv_search_crypt_r+:} false; then : + break fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_inet_aton" >&5 -$as_echo "$ac_cv_lib_c_inet_aton" >&6; } -if test "x$ac_cv_lib_c_inet_aton" = xyes; then : - $ac_cv_prog_TRUE +done +if ${ac_cv_search_crypt_r+:} false; then : + else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_aton in -lresolv" >&5 -$as_echo_n "checking for inet_aton in -lresolv... " >&6; } -if ${ac_cv_lib_resolv_inet_aton+:} false; then : + ac_cv_search_crypt_r=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt_r" >&5 +$as_echo "$ac_cv_search_crypt_r" >&6; } +ac_res=$ac_cv_search_crypt_r +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + + $as_echo "#define HAVE_CRYPT_R 1" >>confdefs.h + + if test "$ac_cv_search_crypt_r" = "none required"; then + libcrypt= + else + libcrypt="$ac_cv_search_crypt_r" + fi + LIBCRYPT_LIBS=${LIBCRYPT_LIBS-$libcrypt} + +fi + + +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS + + + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt_r" >&5 +$as_echo_n "checking for library containing crypt_r... " >&6; } +if ${ac_cv_search_crypt_r+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lresolv $LIBS" + ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -15688,222 +19242,210 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char inet_aton (); +char crypt_r (); int main () { -return inet_aton (); +return crypt_r (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_resolv_inet_aton=yes -else - ac_cv_lib_resolv_inet_aton=no +for ac_lib in '' crypt; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_crypt_r=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + conftest$ac_exeext + if ${ac_cv_search_crypt_r+:} false; then : + break fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_inet_aton" >&5 -$as_echo "$ac_cv_lib_resolv_inet_aton" >&6; } -if test "x$ac_cv_lib_resolv_inet_aton" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBRESOLV 1 -_ACEOF +done +if ${ac_cv_search_crypt_r+:} false; then : + +else + ac_cv_search_crypt_r=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt_r" >&5 +$as_echo "$ac_cv_search_crypt_r" >&6; } +ac_res=$ac_cv_search_crypt_r +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + + $as_echo "#define HAVE_CRYPT_R 1" >>confdefs.h + + if test "$ac_cv_search_crypt_r" = "none required"; then + libcrypt= + else + libcrypt="$ac_cv_search_crypt_r" + fi + LIBCRYPT_LIBS=${LIBCRYPT_LIBS-$libcrypt} + +fi + + +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS + - LIBS="-lresolv $LIBS" -fi +else + LIBCRYPT_CFLAGS=$pkg_cv_LIBCRYPT_CFLAGS + LIBCRYPT_LIBS=$pkg_cv_LIBCRYPT_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + $as_echo "#define HAVE_CRYPT_R 1" >>confdefs.h fi +save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS -# On Tru64, chflags seems to be present, but calling it will -# exit Python -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for chflags" >&5 -$as_echo_n "checking for chflags... " >&6; } -if ${ac_cv_have_chflags+:} false; then : + + CPPFLAGS="$CPPFLAGS $LIBCRYPT_CFLAGS" + LIBS="$LIBCRYPT_LIBS $LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for crypt or crypt_r" >&5 +$as_echo_n "checking for crypt or crypt_r... " >&6; } +if ${ac_cv_crypt_crypt+:} false; then : $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then : - ac_cv_have_chflags=cross -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <sys/stat.h> -#include <unistd.h> -int main(int argc, char*argv[]) + #ifdef HAVE_CRYPT_H + #include <crypt.h> + #endif + #include <unistd.h> + +int +main () { - if(chflags(argv[0], 0) != 0) - return 1; + + #ifdef HAVE_CRYPT_R + void *x = crypt_r; + #else + void *x = crypt; + #endif + + ; return 0; } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_have_chflags=yes +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_crypt_crypt=yes else - ac_cv_have_chflags=no + ac_cv_crypt_crypt=no fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_crypt_crypt" >&5 +$as_echo "$ac_cv_crypt_crypt" >&6; } +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_chflags" >&5 -$as_echo "$ac_cv_have_chflags" >&6; } -if test "$ac_cv_have_chflags" = cross ; then - ac_fn_c_check_func "$LINENO" "chflags" "ac_cv_func_chflags" -if test "x$ac_cv_func_chflags" = xyes; then : - ac_cv_have_chflags="yes" -else - ac_cv_have_chflags="no" -fi -fi -if test "$ac_cv_have_chflags" = yes ; then -$as_echo "#define HAVE_CHFLAGS 1" >>confdefs.h +for ac_func in clock_gettime +do : + ac_fn_c_check_func "$LINENO" "clock_gettime" "ac_cv_func_clock_gettime" +if test "x$ac_cv_func_clock_gettime" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_CLOCK_GETTIME 1 +_ACEOF -fi +else -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for lchflags" >&5 -$as_echo_n "checking for lchflags... " >&6; } -if ${ac_cv_have_lchflags+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_gettime in -lrt" >&5 +$as_echo_n "checking for clock_gettime in -lrt... " >&6; } +if ${ac_cv_lib_rt_clock_gettime+:} false; then : $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then : - ac_cv_have_lchflags=cross -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_check_lib_save_LIBS=$LIBS +LIBS="-lrt $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <sys/stat.h> -#include <unistd.h> -int main(int argc, char*argv[]) +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char clock_gettime (); +int +main () { - if(lchflags(argv[0], 0) != 0) - return 1; +return clock_gettime (); + ; return 0; } - _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_have_lchflags=yes -else - ac_cv_have_lchflags=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_lchflags" >&5 -$as_echo "$ac_cv_have_lchflags" >&6; } -if test "$ac_cv_have_lchflags" = cross ; then - ac_fn_c_check_func "$LINENO" "lchflags" "ac_cv_func_lchflags" -if test "x$ac_cv_func_lchflags" = xyes; then : - ac_cv_have_lchflags="yes" +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_rt_clock_gettime=yes else - ac_cv_have_lchflags="no" -fi - + ac_cv_lib_rt_clock_gettime=no fi -if test "$ac_cv_have_lchflags" = yes ; then - -$as_echo "#define HAVE_LCHFLAGS 1" >>confdefs.h - +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_gettime" >&5 +$as_echo "$ac_cv_lib_rt_clock_gettime" >&6; } +if test "x$ac_cv_lib_rt_clock_gettime" = xyes; then : + LIBS="$LIBS -lrt" + $as_echo "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h +$as_echo "#define TIMEMODULE_LIB rt" >>confdefs.h -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ZLIB" >&5 -$as_echo_n "checking for ZLIB... " >&6; } -if test -n "$ZLIB_CFLAGS"; then - pkg_cv_ZLIB_CFLAGS="$ZLIB_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"zlib >= 1.2.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "zlib >= 1.2.0") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_ZLIB_CFLAGS=`$PKG_CONFIG --cflags "zlib >= 1.2.0" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$ZLIB_LIBS"; then - pkg_cv_ZLIB_LIBS="$ZLIB_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"zlib >= 1.2.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "zlib >= 1.2.0") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_ZLIB_LIBS=`$PKG_CONFIG --libs "zlib >= 1.2.0" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried fi - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no fi - if test $_pkg_short_errors_supported = yes; then - ZLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "zlib >= 1.2.0" 2>&1` - else - ZLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "zlib >= 1.2.0" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$ZLIB_PKG_ERRORS" >&5 +done - for ac_header in zlib.h +for ac_func in clock_getres do : - ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" -if test "x$ac_cv_header_zlib_h" = xyes; then : + ac_fn_c_check_func "$LINENO" "clock_getres" "ac_cv_func_clock_getres" +if test "x$ac_cv_func_clock_getres" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_ZLIB_H 1 +#define HAVE_CLOCK_GETRES 1 _ACEOF - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS - +else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gzread in -lz" >&5 -$as_echo_n "checking for gzread in -lz... " >&6; } -if ${ac_cv_lib_z_gzread+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_getres in -lrt" >&5 +$as_echo_n "checking for clock_getres in -lrt... " >&6; } +if ${ac_cv_lib_rt_clock_getres+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lz $LIBS" +LIBS="-lrt $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -15913,38 +19455,55 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char gzread (); +char clock_getres (); int main () { -return gzread (); +return clock_getres (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_z_gzread=yes + ac_cv_lib_rt_clock_getres=yes else - ac_cv_lib_z_gzread=no + ac_cv_lib_rt_clock_getres=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_gzread" >&5 -$as_echo "$ac_cv_lib_z_gzread" >&6; } -if test "x$ac_cv_lib_z_gzread" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_getres" >&5 +$as_echo "$ac_cv_lib_rt_clock_getres" >&6; } +if test "x$ac_cv_lib_rt_clock_getres" = xyes; then : + + $as_echo "#define HAVE_CLOCK_GETRES 1" >>confdefs.h + + +fi + + +fi +done + + +for ac_func in clock_settime +do : + ac_fn_c_check_func "$LINENO" "clock_settime" "ac_cv_func_clock_settime" +if test "x$ac_cv_func_clock_settime" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_CLOCK_SETTIME 1 +_ACEOF - have_zlib=yes - ZLIB_CFLAGS=${ZLIB_CFLAGS-""} - ZLIB_LIBS=${ZLIB_LIBS-"-lz"} - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inflateCopy in -lz" >&5 -$as_echo_n "checking for inflateCopy in -lz... " >&6; } -if ${ac_cv_lib_z_inflateCopy+:} false; then : +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_settime in -lrt" >&5 +$as_echo_n "checking for clock_settime in -lrt... " >&6; } +if ${ac_cv_lib_rt_clock_settime+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lz $LIBS" +LIBS="-lrt $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -15954,78 +19513,55 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char inflateCopy (); +char clock_settime (); int main () { -return inflateCopy (); +return clock_settime (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_z_inflateCopy=yes + ac_cv_lib_rt_clock_settime=yes else - ac_cv_lib_z_inflateCopy=no + ac_cv_lib_rt_clock_settime=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_inflateCopy" >&5 -$as_echo "$ac_cv_lib_z_inflateCopy" >&6; } -if test "x$ac_cv_lib_z_inflateCopy" = xyes; then : - $as_echo "#define HAVE_ZLIB_COPY 1" >>confdefs.h - -fi - +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_settime" >&5 +$as_echo "$ac_cv_lib_rt_clock_settime" >&6; } +if test "x$ac_cv_lib_rt_clock_settime" = xyes; then : -else + $as_echo "#define HAVE_CLOCK_SETTIME 1" >>confdefs.h - have_zlib=no fi -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS - - - -else - have_zlib=no fi - done -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - for ac_header in zlib.h +for ac_func in clock_nanosleep do : - ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" -if test "x$ac_cv_header_zlib_h" = xyes; then : + ac_fn_c_check_func "$LINENO" "clock_nanosleep" "ac_cv_func_clock_nanosleep" +if test "x$ac_cv_func_clock_nanosleep" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_ZLIB_H 1 +#define HAVE_CLOCK_NANOSLEEP 1 _ACEOF - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS - +else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gzread in -lz" >&5 -$as_echo_n "checking for gzread in -lz... " >&6; } -if ${ac_cv_lib_z_gzread+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_nanosleep in -lrt" >&5 +$as_echo_n "checking for clock_nanosleep in -lrt... " >&6; } +if ${ac_cv_lib_rt_clock_nanosleep+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lz $LIBS" +LIBS="-lrt $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -16035,38 +19571,55 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char gzread (); +char clock_nanosleep (); int main () { -return gzread (); +return clock_nanosleep (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_z_gzread=yes + ac_cv_lib_rt_clock_nanosleep=yes else - ac_cv_lib_z_gzread=no + ac_cv_lib_rt_clock_nanosleep=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_gzread" >&5 -$as_echo "$ac_cv_lib_z_gzread" >&6; } -if test "x$ac_cv_lib_z_gzread" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_nanosleep" >&5 +$as_echo "$ac_cv_lib_rt_clock_nanosleep" >&6; } +if test "x$ac_cv_lib_rt_clock_nanosleep" = xyes; then : - have_zlib=yes - ZLIB_CFLAGS=${ZLIB_CFLAGS-""} - ZLIB_LIBS=${ZLIB_LIBS-"-lz"} - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inflateCopy in -lz" >&5 -$as_echo_n "checking for inflateCopy in -lz... " >&6; } -if ${ac_cv_lib_z_inflateCopy+:} false; then : + $as_echo "#define HAVE_CLOCK_NANOSLEEP 1" >>confdefs.h + + +fi + + +fi +done + + +for ac_func in nanosleep +do : + ac_fn_c_check_func "$LINENO" "nanosleep" "ac_cv_func_nanosleep" +if test "x$ac_cv_func_nanosleep" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_NANOSLEEP 1 +_ACEOF + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nanosleep in -lrt" >&5 +$as_echo_n "checking for nanosleep in -lrt... " >&6; } +if ${ac_cv_lib_rt_nanosleep+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lz $LIBS" +LIBS="-lrt $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -16076,1340 +19629,1016 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char inflateCopy (); +char nanosleep (); int main () { -return inflateCopy (); +return nanosleep (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_z_inflateCopy=yes + ac_cv_lib_rt_nanosleep=yes else - ac_cv_lib_z_inflateCopy=no + ac_cv_lib_rt_nanosleep=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_inflateCopy" >&5 -$as_echo "$ac_cv_lib_z_inflateCopy" >&6; } -if test "x$ac_cv_lib_z_inflateCopy" = xyes; then : - $as_echo "#define HAVE_ZLIB_COPY 1" >>confdefs.h - -fi - +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_nanosleep" >&5 +$as_echo "$ac_cv_lib_rt_nanosleep" >&6; } +if test "x$ac_cv_lib_rt_nanosleep" = xyes; then : -else + $as_echo "#define HAVE_NANOSLEEP 1" >>confdefs.h - have_zlib=no fi -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS - - - -else - have_zlib=no fi - done -else - ZLIB_CFLAGS=$pkg_cv_ZLIB_CFLAGS - ZLIB_LIBS=$pkg_cv_ZLIB_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - have_zlib=yes - $as_echo "#define HAVE_ZLIB_COPY 1" >>confdefs.h - - -fi - -if test "$have_zlib" = "yes" -a "$ac_sys_system" = "Emscripten" -a "$ZLIB_LIBS" = "-lz"; then - ZLIB_CFLAGS="-sUSE_ZLIB" - ZLIB_LIBS="-sUSE_ZLIB" -fi - -if test "x$have_zlib" = xyes; then : - - BINASCII_CFLAGS="-DUSE_ZLIB_CRC32 $ZLIB_CFLAGS" - BINASCII_LIBS="$ZLIB_LIBS" - -fi - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BZIP2" >&5 -$as_echo_n "checking for BZIP2... " >&6; } - -if test -n "$BZIP2_CFLAGS"; then - pkg_cv_BZIP2_CFLAGS="$BZIP2_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"bzip2\""; } >&5 - ($PKG_CONFIG --exists --print-errors "bzip2") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_BZIP2_CFLAGS=`$PKG_CONFIG --cflags "bzip2" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$BZIP2_LIBS"; then - pkg_cv_BZIP2_LIBS="$BZIP2_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"bzip2\""; } >&5 - ($PKG_CONFIG --exists --print-errors "bzip2") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_BZIP2_LIBS=`$PKG_CONFIG --libs "bzip2" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - BZIP2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "bzip2" 2>&1` - else - BZIP2_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "bzip2" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$BZIP2_PKG_ERRORS" >&5 - - - for ac_header in bzlib.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "bzlib.h" "ac_cv_header_bzlib_h" "$ac_includes_default" -if test "x$ac_cv_header_bzlib_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_BZLIB_H 1 -_ACEOF - - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BZ2_bzCompress in -lbz2" >&5 -$as_echo_n "checking for BZ2_bzCompress in -lbz2... " >&6; } -if ${ac_cv_lib_bz2_BZ2_bzCompress+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for major, minor, and makedev" >&5 +$as_echo_n "checking for major, minor, and makedev... " >&6; } +if ${ac_cv_device_macros+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lbz2 $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" +#if defined(MAJOR_IN_MKDEV) +#include <sys/mkdev.h> +#elif defined(MAJOR_IN_SYSMACROS) +#include <sys/sysmacros.h> +#else +#include <sys/types.h> #endif -char BZ2_bzCompress (); + int main () { -return BZ2_bzCompress (); + + makedev(major(0),minor(0)); + ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_bz2_BZ2_bzCompress=yes + ac_cv_device_macros=yes else - ac_cv_lib_bz2_BZ2_bzCompress=no + ac_cv_device_macros=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bz2_BZ2_bzCompress" >&5 -$as_echo "$ac_cv_lib_bz2_BZ2_bzCompress" >&6; } -if test "x$ac_cv_lib_bz2_BZ2_bzCompress" = xyes; then : - have_bzip2=yes - BZIP2_CFLAGS=${BZIP2_CFLAGS-""} - BZIP2_LIBS=${BZIP2_LIBS-"-lbz2"} - -else - have_bzip2=no fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_device_macros" >&5 +$as_echo "$ac_cv_device_macros" >&6; } +if test "x$ac_cv_device_macros" = xyes; then : -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS - +$as_echo "#define HAVE_DEVICE_MACROS 1" >>confdefs.h -else - have_bzip2=no fi -done - - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - for ac_header in bzlib.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "bzlib.h" "ac_cv_header_bzlib_h" "$ac_includes_default" -if test "x$ac_cv_header_bzlib_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_BZLIB_H 1 -_ACEOF - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS +$as_echo "#define SYS_SELECT_WITH_SYS_TIME 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BZ2_bzCompress in -lbz2" >&5 -$as_echo_n "checking for BZ2_bzCompress in -lbz2... " >&6; } -if ${ac_cv_lib_bz2_BZ2_bzCompress+:} false; then : +# On OSF/1 V5.1, getaddrinfo is available, but a define +# for [no]getaddrinfo in netdb.h. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo" >&5 +$as_echo_n "checking for getaddrinfo... " >&6; } +if ${ac_cv_func_getaddrinfo+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lbz2 $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char BZ2_bzCompress (); +#include <sys/types.h> +#include <sys/socket.h> +#include <netdb.h> +#include <stdio.h> + int main () { -return BZ2_bzCompress (); +getaddrinfo(NULL, NULL, NULL, NULL); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_bz2_BZ2_bzCompress=yes + ac_cv_func_getaddrinfo=yes else - ac_cv_lib_bz2_BZ2_bzCompress=no + ac_cv_func_getaddrinfo=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bz2_BZ2_bzCompress" >&5 -$as_echo "$ac_cv_lib_bz2_BZ2_bzCompress" >&6; } -if test "x$ac_cv_lib_bz2_BZ2_bzCompress" = xyes; then : - have_bzip2=yes - BZIP2_CFLAGS=${BZIP2_CFLAGS-""} - BZIP2_LIBS=${BZIP2_LIBS-"-lbz2"} - -else - have_bzip2=no fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getaddrinfo" >&5 +$as_echo "$ac_cv_func_getaddrinfo" >&6; } +if test "x$ac_cv_func_getaddrinfo" = xyes; then : -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS - - + { $as_echo "$as_me:${as_lineno-$LINENO}: checking getaddrinfo bug" >&5 +$as_echo_n "checking getaddrinfo bug... " >&6; } +if ${ac_cv_buggy_getaddrinfo+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : +if test "${enable_ipv6+set}" = set; then + ac_cv_buggy_getaddrinfo="no -- configured with --(en|dis)able-ipv6" else - have_bzip2=no + ac_cv_buggy_getaddrinfo=yes fi +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -done - +#include <stdio.h> +#include <sys/types.h> +#include <netdb.h> +#include <string.h> +#include <sys/socket.h> +#include <netinet/in.h> -else - BZIP2_CFLAGS=$pkg_cv_BZIP2_CFLAGS - BZIP2_LIBS=$pkg_cv_BZIP2_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - have_bzip2=yes -fi +int main() +{ + int passive, gaierr, inet4 = 0, inet6 = 0; + struct addrinfo hints, *ai, *aitop; + char straddr[INET6_ADDRSTRLEN], strport[16]; -if test "$have_bzip2" = "yes" -a "$ac_sys_system" = "Emscripten" -a "$BZIP2_LIBS" = "-lbz2"; then - BZIP2_CFLAGS="-sUSE_BZIP2" - BZIP2_LIBS="-sUSE_BZIP2" -fi + for (passive = 0; passive <= 1; passive++) { + memset(&hints, 0, sizeof(hints)); + hints.ai_family = AF_UNSPEC; + hints.ai_flags = passive ? AI_PASSIVE : 0; + hints.ai_socktype = SOCK_STREAM; + hints.ai_protocol = IPPROTO_TCP; + if ((gaierr = getaddrinfo(NULL, "54321", &hints, &aitop)) != 0) { + (void)gai_strerror(gaierr); + goto bad; + } + for (ai = aitop; ai; ai = ai->ai_next) { + if (ai->ai_addr == NULL || + ai->ai_addrlen == 0 || + getnameinfo(ai->ai_addr, ai->ai_addrlen, + straddr, sizeof(straddr), strport, sizeof(strport), + NI_NUMERICHOST|NI_NUMERICSERV) != 0) { + goto bad; + } + switch (ai->ai_family) { + case AF_INET: + if (strcmp(strport, "54321") != 0) { + goto bad; + } + if (passive) { + if (strcmp(straddr, "0.0.0.0") != 0) { + goto bad; + } + } else { + if (strcmp(straddr, "127.0.0.1") != 0) { + goto bad; + } + } + inet4++; + break; + case AF_INET6: + if (strcmp(strport, "54321") != 0) { + goto bad; + } + if (passive) { + if (strcmp(straddr, "::") != 0) { + goto bad; + } + } else { + if (strcmp(straddr, "::1") != 0) { + goto bad; + } + } + inet6++; + break; + case AF_UNSPEC: + goto bad; + break; + default: + /* another family support? */ + break; + } + } + freeaddrinfo(aitop); + aitop = NULL; + } + if (!(inet4 == 0 || inet4 == 2)) + goto bad; + if (!(inet6 == 0 || inet6 == 2)) + goto bad; + if (aitop) + freeaddrinfo(aitop); + return 0; -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBLZMA" >&5 -$as_echo_n "checking for LIBLZMA... " >&6; } + bad: + if (aitop) + freeaddrinfo(aitop); + return 1; +} -if test -n "$LIBLZMA_CFLAGS"; then - pkg_cv_LIBLZMA_CFLAGS="$LIBLZMA_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"liblzma\""; } >&5 - ($PKG_CONFIG --exists --print-errors "liblzma") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_LIBLZMA_CFLAGS=`$PKG_CONFIG --cflags "liblzma" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_buggy_getaddrinfo=no else - pkg_failed=yes -fi - else - pkg_failed=untried + ac_cv_buggy_getaddrinfo=yes fi -if test -n "$LIBLZMA_LIBS"; then - pkg_cv_LIBLZMA_LIBS="$LIBLZMA_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"liblzma\""; } >&5 - ($PKG_CONFIG --exists --print-errors "liblzma") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_LIBLZMA_LIBS=`$PKG_CONFIG --libs "liblzma" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi - else - pkg_failed=untried + fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_buggy_getaddrinfo" >&5 +$as_echo "$ac_cv_buggy_getaddrinfo" >&6; } +fi -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +if test "$ac_cv_func_getaddrinfo" = no -o "$ac_cv_buggy_getaddrinfo" = yes +then + if test "x$ipv6" = xyes; then : -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - LIBLZMA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "liblzma" 2>&1` - else - LIBLZMA_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "liblzma" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$LIBLZMA_PKG_ERRORS" >&5 + as_fn_error $? "You must get working getaddrinfo() function or pass the \"--disable-ipv6\" option to configure." "$LINENO" 5 +fi +else + +$as_echo "#define HAVE_GETADDRINFO 1" >>confdefs.h - for ac_header in lzma.h +fi + +for ac_func in getnameinfo do : - ac_fn_c_check_header_mongrel "$LINENO" "lzma.h" "ac_cv_header_lzma_h" "$ac_includes_default" -if test "x$ac_cv_header_lzma_h" = xyes; then : + ac_fn_c_check_func "$LINENO" "getnameinfo" "ac_cv_func_getnameinfo" +if test "x$ac_cv_func_getnameinfo" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_LZMA_H 1 +#define HAVE_GETNAMEINFO 1 _ACEOF - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS +fi +done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lzma_easy_encoder in -llzma" >&5 -$as_echo_n "checking for lzma_easy_encoder in -llzma... " >&6; } -if ${ac_cv_lib_lzma_lzma_easy_encoder+:} false; then : +if test "x$ac_cv_header_sys_time_h" = xyes; then : + + +$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h + + +fi + +# checks for structures +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 +$as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } +if ${ac_cv_struct_tm+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-llzma $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +#include <sys/types.h> +#include <time.h> -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char lzma_easy_encoder (); int main () { -return lzma_easy_encoder (); +struct tm tm; + int *p = &tm.tm_sec; + return !p; ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_lzma_lzma_easy_encoder=yes +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_struct_tm=time.h else - ac_cv_lib_lzma_lzma_easy_encoder=no + ac_cv_struct_tm=sys/time.h fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lzma_lzma_easy_encoder" >&5 -$as_echo "$ac_cv_lib_lzma_lzma_easy_encoder" >&6; } -if test "x$ac_cv_lib_lzma_lzma_easy_encoder" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 +$as_echo "$ac_cv_struct_tm" >&6; } +if test $ac_cv_struct_tm = sys/time.h; then - have_liblzma=yes - LIBLZMA_CFLAGS=${LIBLZMA_CFLAGS-""} - LIBLZMA_LIBS=${LIBLZMA_LIBS-"-llzma"} +$as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h -else - have_liblzma=no fi +ac_fn_c_check_member "$LINENO" "struct tm" "tm_zone" "ac_cv_member_struct_tm_tm_zone" "#include <sys/types.h> +#include <$ac_cv_struct_tm> -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS +" +if test "x$ac_cv_member_struct_tm_tm_zone" = xyes; then : +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_TM_TM_ZONE 1 +_ACEOF -else - have_liblzma=no fi -done +if test "$ac_cv_member_struct_tm_tm_zone" = yes; then +$as_echo "#define HAVE_TM_ZONE 1" >>confdefs.h -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +else + ac_fn_c_check_decl "$LINENO" "tzname" "ac_cv_have_decl_tzname" "#include <time.h> +" +if test "x$ac_cv_have_decl_tzname" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi - for ac_header in lzma.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "lzma.h" "ac_cv_header_lzma_h" "$ac_includes_default" -if test "x$ac_cv_header_lzma_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LZMA_H 1 +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_TZNAME $ac_have_decl _ACEOF - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lzma_easy_encoder in -llzma" >&5 -$as_echo_n "checking for lzma_easy_encoder in -llzma... " >&6; } -if ${ac_cv_lib_lzma_lzma_easy_encoder+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tzname" >&5 +$as_echo_n "checking for tzname... " >&6; } +if ${ac_cv_var_tzname+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-llzma $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" +#include <time.h> +#if !HAVE_DECL_TZNAME +extern char *tzname[]; #endif -char lzma_easy_encoder (); + int main () { -return lzma_easy_encoder (); +return tzname[0][0]; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_lzma_lzma_easy_encoder=yes + ac_cv_var_tzname=yes else - ac_cv_lib_lzma_lzma_easy_encoder=no + ac_cv_var_tzname=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lzma_lzma_easy_encoder" >&5 -$as_echo "$ac_cv_lib_lzma_lzma_easy_encoder" >&6; } -if test "x$ac_cv_lib_lzma_lzma_easy_encoder" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_var_tzname" >&5 +$as_echo "$ac_cv_var_tzname" >&6; } + if test $ac_cv_var_tzname = yes; then - have_liblzma=yes - LIBLZMA_CFLAGS=${LIBLZMA_CFLAGS-""} - LIBLZMA_LIBS=${LIBLZMA_LIBS-"-llzma"} +$as_echo "#define HAVE_TZNAME 1" >>confdefs.h -else - have_liblzma=no + fi fi +ac_fn_c_check_member "$LINENO" "struct stat" "st_rdev" "ac_cv_member_struct_stat_st_rdev" "$ac_includes_default" +if test "x$ac_cv_member_struct_stat_st_rdev" = xyes; then : -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS - +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_RDEV 1 +_ACEOF -else - have_liblzma=no fi -done +ac_fn_c_check_member "$LINENO" "struct stat" "st_blksize" "ac_cv_member_struct_stat_st_blksize" "$ac_includes_default" +if test "x$ac_cv_member_struct_stat_st_blksize" = xyes; then : +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_BLKSIZE 1 +_ACEOF -else - LIBLZMA_CFLAGS=$pkg_cv_LIBLZMA_CFLAGS - LIBLZMA_LIBS=$pkg_cv_LIBLZMA_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - have_liblzma=yes -fi +fi +ac_fn_c_check_member "$LINENO" "struct stat" "st_flags" "ac_cv_member_struct_stat_st_flags" "$ac_includes_default" +if test "x$ac_cv_member_struct_stat_st_flags" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for hstrerror" >&5 -$as_echo_n "checking for hstrerror... " >&6; } -if ${ac_cv_func_hstrerror+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <netdb.h> -int -main () -{ -void *x=hstrerror - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_FLAGS 1 _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_hstrerror=yes -else - ac_cv_func_hstrerror=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_hstrerror" >&5 -$as_echo "$ac_cv_func_hstrerror" >&6; } - if test "x$ac_cv_func_hstrerror" = xyes; then : -$as_echo "#define HAVE_HSTRERROR 1" >>confdefs.h +ac_fn_c_check_member "$LINENO" "struct stat" "st_gen" "ac_cv_member_struct_stat_st_gen" "$ac_includes_default" +if test "x$ac_cv_member_struct_stat_st_gen" = xyes; then : -fi +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_GEN 1 +_ACEOF +fi +ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtime" "ac_cv_member_struct_stat_st_birthtime" "$ac_includes_default" +if test "x$ac_cv_member_struct_stat_st_birthtime" = xyes; then : +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_BIRTHTIME 1 +_ACEOF - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_aton" >&5 -$as_echo_n "checking for inet_aton... " >&6; } -if ${ac_cv_func_inet_aton+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +fi -#include <sys/types.h> -#include <sys/socket.h> -#include <netinet/in.h> -#include <arpa/inet.h> +ac_fn_c_check_member "$LINENO" "struct stat" "st_blocks" "ac_cv_member_struct_stat_st_blocks" "$ac_includes_default" +if test "x$ac_cv_member_struct_stat_st_blocks" = xyes; then : -int -main () -{ -void *x=inet_aton - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_BLOCKS 1 _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_inet_aton=yes -else - ac_cv_func_inet_aton=no + + fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +ac_fn_c_check_member "$LINENO" "struct passwd" "pw_gecos" "ac_cv_member_struct_passwd_pw_gecos" " + #include <sys/types.h> + #include <pwd.h> + +" +if test "x$ac_cv_member_struct_passwd_pw_gecos" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_PASSWD_PW_GECOS 1 +_ACEOF + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_inet_aton" >&5 -$as_echo "$ac_cv_func_inet_aton" >&6; } - if test "x$ac_cv_func_inet_aton" = xyes; then : +ac_fn_c_check_member "$LINENO" "struct passwd" "pw_passwd" "ac_cv_member_struct_passwd_pw_passwd" " + #include <sys/types.h> + #include <pwd.h> + +" +if test "x$ac_cv_member_struct_passwd_pw_passwd" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_PASSWD_PW_PASSWD 1 +_ACEOF -$as_echo "#define HAVE_INET_ATON 1" >>confdefs.h fi +# Issue #21085: In Cygwin, siginfo_t does not have si_band field. +ac_fn_c_check_member "$LINENO" "siginfo_t" "si_band" "ac_cv_member_siginfo_t_si_band" "#include <signal.h> +" +if test "x$ac_cv_member_siginfo_t_si_band" = xyes; then : +cat >>confdefs.h <<_ACEOF +#define HAVE_SIGINFO_T_SI_BAND 1 +_ACEOF +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_pton" >&5 -$as_echo_n "checking for inet_pton... " >&6; } -if ${ac_cv_func_inet_pton+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for time.h that defines altzone" >&5 +$as_echo_n "checking for time.h that defines altzone... " >&6; } +if ${ac_cv_header_time_altzone+:} false; then : $as_echo_n "(cached) " >&6 else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -#include <sys/types.h> -#include <sys/socket.h> -#include <netinet/in.h> -#include <arpa/inet.h> - +#include <time.h> int main () { -void *x=inet_pton +return altzone; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_inet_pton=yes + ac_cv_header_time_altzone=yes else - ac_cv_func_inet_pton=no + ac_cv_header_time_altzone=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_inet_pton" >&5 -$as_echo "$ac_cv_func_inet_pton" >&6; } - if test "x$ac_cv_func_inet_pton" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time_altzone" >&5 +$as_echo "$ac_cv_header_time_altzone" >&6; } +if test $ac_cv_header_time_altzone = yes; then -$as_echo "#define HAVE_INET_PTON 1" >>confdefs.h +$as_echo "#define HAVE_ALTZONE 1" >>confdefs.h fi - - - -# On some systems, setgroups is in unistd.h, on others, in grp.h - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for setgroups" >&5 -$as_echo_n "checking for setgroups... " >&6; } -if ${ac_cv_func_setgroups+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for addrinfo" >&5 +$as_echo_n "checking for addrinfo... " >&6; } +if ${ac_cv_struct_addrinfo+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -#include <unistd.h> -#ifdef HAVE_GRP_H -#include <grp.h> -#endif - +#include <netdb.h> int main () { -void *x=setgroups +struct addrinfo a ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_setgroups=yes + ac_cv_struct_addrinfo=yes else - ac_cv_func_setgroups=no + ac_cv_struct_addrinfo=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_setgroups" >&5 -$as_echo "$ac_cv_func_setgroups" >&6; } - if test "x$ac_cv_func_setgroups" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_addrinfo" >&5 +$as_echo "$ac_cv_struct_addrinfo" >&6; } +if test $ac_cv_struct_addrinfo = yes; then -$as_echo "#define HAVE_SETGROUPS 1" >>confdefs.h +$as_echo "#define HAVE_ADDRINFO 1" >>confdefs.h fi - - - -# check for openpty, login_tty, and forkpty - -for ac_func in openpty -do : - ac_fn_c_check_func "$LINENO" "openpty" "ac_cv_func_openpty" -if test "x$ac_cv_func_openpty" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_OPENPTY 1 -_ACEOF - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for openpty in -lutil" >&5 -$as_echo_n "checking for openpty in -lutil... " >&6; } -if ${ac_cv_lib_util_openpty+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sockaddr_storage" >&5 +$as_echo_n "checking for sockaddr_storage... " >&6; } +if ${ac_cv_struct_sockaddr_storage+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lutil $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char openpty (); +# include <sys/types.h> +# include <sys/socket.h> int main () { -return openpty (); +struct sockaddr_storage s ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_util_openpty=yes +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_struct_sockaddr_storage=yes else - ac_cv_lib_util_openpty=no + ac_cv_struct_sockaddr_storage=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_util_openpty" >&5 -$as_echo "$ac_cv_lib_util_openpty" >&6; } -if test "x$ac_cv_lib_util_openpty" = xyes; then : - $as_echo "#define HAVE_OPENPTY 1" >>confdefs.h - LIBS="$LIBS -lutil" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for openpty in -lbsd" >&5 -$as_echo_n "checking for openpty in -lbsd... " >&6; } -if ${ac_cv_lib_bsd_openpty+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_sockaddr_storage" >&5 +$as_echo "$ac_cv_struct_sockaddr_storage" >&6; } +if test $ac_cv_struct_sockaddr_storage = yes; then + +$as_echo "#define HAVE_SOCKADDR_STORAGE 1" >>confdefs.h + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sockaddr_alg" >&5 +$as_echo_n "checking for sockaddr_alg... " >&6; } +if ${ac_cv_struct_sockaddr_alg+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lbsd $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char openpty (); +# include <sys/types.h> +# include <sys/socket.h> +# include <linux/if_alg.h> int main () { -return openpty (); +struct sockaddr_alg s ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_bsd_openpty=yes +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_struct_sockaddr_alg=yes else - ac_cv_lib_bsd_openpty=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + ac_cv_struct_sockaddr_alg=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_openpty" >&5 -$as_echo "$ac_cv_lib_bsd_openpty" >&6; } -if test "x$ac_cv_lib_bsd_openpty" = xyes; then : - $as_echo "#define HAVE_OPENPTY 1" >>confdefs.h - LIBS="$LIBS -lbsd" +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_sockaddr_alg" >&5 +$as_echo "$ac_cv_struct_sockaddr_alg" >&6; } +if test $ac_cv_struct_sockaddr_alg = yes; then +$as_echo "#define HAVE_SOCKADDR_ALG 1" >>confdefs.h fi +# checks for compiler characteristics -fi -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing login_tty" >&5 -$as_echo_n "checking for library containing login_tty... " >&6; } -if ${ac_cv_search_login_tty+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 +$as_echo_n "checking for an ANSI C-conforming const... " >&6; } +if ${ac_cv_c_const+:} false; then : $as_echo_n "(cached) " >&6 else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char login_tty (); int main () { -return login_tty (); + +#ifndef __cplusplus + /* Ultrix mips cc rejects this sort of thing. */ + typedef int charset[2]; + const charset cs = { 0, 0 }; + /* SunOS 4.1.1 cc rejects this. */ + char const *const *pcpcc; + char **ppc; + /* NEC SVR4.0.2 mips cc rejects this. */ + struct point {int x, y;}; + static struct point const zero = {0,0}; + /* AIX XL C 1.02.0.0 rejects this. + It does not let you subtract one const X* pointer from another in + an arm of an if-expression whose if-part is not a constant + expression */ + const char *g = "string"; + pcpcc = &g + (g ? g-g : 0); + /* HPUX 7.0 cc rejects these. */ + ++pcpcc; + ppc = (char**) pcpcc; + pcpcc = (char const *const *) ppc; + { /* SCO 3.2v4 cc rejects this sort of thing. */ + char tx; + char *t = &tx; + char const *s = 0 ? (char *) 0 : (char const *) 0; + + *t++ = 0; + if (s) return 0; + } + { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ + int x[] = {25, 17}; + const int *foo = &x[0]; + ++foo; + } + { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ + typedef const int *iptr; + iptr p = 0; + ++p; + } + { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying + "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ + struct s { int j; const int *ap[3]; } bx; + struct s *b = &bx; b->j = 5; + } + { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ + const int foo = 10; + if (!foo) return 0; + } + return !cs[0] && !zero.x; +#endif + ; return 0; } _ACEOF -for ac_lib in '' util; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_login_tty=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_login_tty+:} false; then : - break -fi -done -if ${ac_cv_search_login_tty+:} false; then : - +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_const=yes else - ac_cv_search_login_tty=no + ac_cv_c_const=no fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_login_tty" >&5 -$as_echo "$ac_cv_search_login_tty" >&6; } -ac_res=$ac_cv_search_login_tty -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - -$as_echo "#define HAVE_LOGIN_TTY 1" >>confdefs.h +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 +$as_echo "$ac_cv_c_const" >&6; } +if test $ac_cv_c_const = no; then +$as_echo "#define const /**/" >>confdefs.h fi -for ac_func in forkpty -do : - ac_fn_c_check_func "$LINENO" "forkpty" "ac_cv_func_forkpty" -if test "x$ac_cv_func_forkpty" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_FORKPTY 1 -_ACEOF -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for forkpty in -lutil" >&5 -$as_echo_n "checking for forkpty in -lutil... " >&6; } -if ${ac_cv_lib_util_forkpty+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working signed char" >&5 +$as_echo_n "checking for working signed char... " >&6; } +if ${ac_cv_working_signed_char_c+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lutil $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char forkpty (); int main () { -return forkpty (); +signed char c; ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_util_forkpty=yes +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_working_signed_char_c=yes else - ac_cv_lib_util_forkpty=no + ac_cv_working_signed_char_c=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_util_forkpty" >&5 -$as_echo "$ac_cv_lib_util_forkpty" >&6; } -if test "x$ac_cv_lib_util_forkpty" = xyes; then : - $as_echo "#define HAVE_FORKPTY 1" >>confdefs.h - LIBS="$LIBS -lutil" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for forkpty in -lbsd" >&5 -$as_echo_n "checking for forkpty in -lbsd... " >&6; } -if ${ac_cv_lib_bsd_forkpty+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_signed_char_c" >&5 +$as_echo "$ac_cv_working_signed_char_c" >&6; } +if test "x$ac_cv_working_signed_char_c" = xno; then : + + +$as_echo "#define signed /**/" >>confdefs.h + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for prototypes" >&5 +$as_echo_n "checking for prototypes... " >&6; } +if ${ac_cv_function_prototypes+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lbsd $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char forkpty (); +int foo(int x) { return 0; } int main () { -return forkpty (); +return foo(10); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_bsd_forkpty=yes +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_function_prototypes=yes else - ac_cv_lib_bsd_forkpty=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_forkpty" >&5 -$as_echo "$ac_cv_lib_bsd_forkpty" >&6; } -if test "x$ac_cv_lib_bsd_forkpty" = xyes; then : - $as_echo "#define HAVE_FORKPTY 1" >>confdefs.h - LIBS="$LIBS -lbsd" + ac_cv_function_prototypes=no fi - +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_function_prototypes" >&5 +$as_echo "$ac_cv_function_prototypes" >&6; } +if test "x$ac_cv_function_prototypes" = xyes; then : -fi -done - +$as_echo "#define HAVE_PROTOTYPES 1" >>confdefs.h -# check for long file support functions -for ac_func in fseek64 fseeko fstatvfs ftell64 ftello statvfs -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF fi -done - - -ac_fn_c_check_func "$LINENO" "dup2" "ac_cv_func_dup2" -if test "x$ac_cv_func_dup2" = xyes; then : - $as_echo "#define HAVE_DUP2 1" >>confdefs.h -else - case " $LIBOBJS " in - *" dup2.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS dup2.$ac_objext" - ;; -esac -fi +# check for socketpair -for ac_func in getpgrp -do : - ac_fn_c_check_func "$LINENO" "getpgrp" "ac_cv_func_getpgrp" -if test "x$ac_cv_func_getpgrp" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_GETPGRP 1 -_ACEOF - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socketpair" >&5 +$as_echo_n "checking for socketpair... " >&6; } +if ${ac_cv_func_socketpair+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <unistd.h> -int -main () -{ -getpgrp(0); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : -$as_echo "#define GETPGRP_HAVE_ARG 1" >>confdefs.h - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -done +#include <sys/types.h> +#include <sys/socket.h> -for ac_func in setpgrp -do : - ac_fn_c_check_func "$LINENO" "setpgrp" "ac_cv_func_setpgrp" -if test "x$ac_cv_func_setpgrp" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_SETPGRP 1 -_ACEOF - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <unistd.h> int main () { -setpgrp(0,0); +void *x=socketpair ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - -$as_echo "#define SETPGRP_HAVE_ARG 1" >>confdefs.h - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -done - - - - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBCRYPT" >&5 -$as_echo_n "checking for LIBCRYPT... " >&6; } - -if test -n "$LIBCRYPT_CFLAGS"; then - pkg_cv_LIBCRYPT_CFLAGS="$LIBCRYPT_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxcrypt >= 3.1.1\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libxcrypt >= 3.1.1") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_LIBCRYPT_CFLAGS=`$PKG_CONFIG --cflags "libxcrypt >= 3.1.1" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$LIBCRYPT_LIBS"; then - pkg_cv_LIBCRYPT_LIBS="$LIBCRYPT_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxcrypt >= 3.1.1\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libxcrypt >= 3.1.1") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_LIBCRYPT_LIBS=`$PKG_CONFIG --libs "libxcrypt >= 3.1.1" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes + ac_cv_func_socketpair=yes else - pkg_failed=yes -fi - else - pkg_failed=untried + ac_cv_func_socketpair=no fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_socketpair" >&5 +$as_echo "$ac_cv_func_socketpair" >&6; } + if test "x$ac_cv_func_socketpair" = xyes; then : +$as_echo "#define HAVE_SOCKETPAIR 1" >>confdefs.h -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no fi - if test $_pkg_short_errors_supported = yes; then - LIBCRYPT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libxcrypt >= 3.1.1" 2>&1` - else - LIBCRYPT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libxcrypt >= 3.1.1" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$LIBCRYPT_PKG_ERRORS" >&5 - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt_r" >&5 -$as_echo_n "checking for library containing crypt_r... " >&6; } -if ${ac_cv_search_crypt_r+:} false; then : +# check if sockaddr has sa_len member +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if sockaddr has sa_len member" >&5 +$as_echo_n "checking if sockaddr has sa_len member... " >&6; } +if ${ac_cv_struct_sockaddr_sa_len+:} false; then : $as_echo_n "(cached) " >&6 else - ac_func_search_save_LIBS=$LIBS + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char crypt_r (); +#include <sys/types.h> +#include <sys/socket.h> int main () { -return crypt_r (); +struct sockaddr x; +x.sa_len = 0; ; return 0; } _ACEOF -for ac_lib in '' crypt; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_crypt_r=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_crypt_r+:} false; then : - break -fi -done -if ${ac_cv_search_crypt_r+:} false; then : - +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_struct_sockaddr_sa_len=yes else - ac_cv_search_crypt_r=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + ac_cv_struct_sockaddr_sa_len=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt_r" >&5 -$as_echo "$ac_cv_search_crypt_r" >&6; } -ac_res=$ac_cv_search_crypt_r -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - - $as_echo "#define HAVE_CRYPT_R 1" >>confdefs.h - - if test "$ac_cv_search_crypt_r" = "none required"; then - libcrypt= - else - libcrypt="$ac_cv_search_crypt_r" - fi - LIBCRYPT_LIBS=${LIBCRYPT_LIBS-$libcrypt} +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_sockaddr_sa_len" >&5 +$as_echo "$ac_cv_struct_sockaddr_sa_len" >&6; } +if test "x$ac_cv_struct_sockaddr_sa_len" = xyes; then : -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS +$as_echo "#define HAVE_SOCKADDR_SA_LEN 1" >>confdefs.h + +fi +# sigh -- gethostbyname_r is a mess; it can have 3, 5 or 6 arguments :-( -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS +ac_fn_c_check_func "$LINENO" "gethostbyname_r" "ac_cv_func_gethostbyname_r" +if test "x$ac_cv_func_gethostbyname_r" = xyes; then : + $as_echo "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt_r" >&5 -$as_echo_n "checking for library containing crypt_r... " >&6; } -if ${ac_cv_search_crypt_r+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: checking gethostbyname_r with 6 args" >&5 +$as_echo_n "checking gethostbyname_r with 6 args... " >&6; } + OLD_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS $MY_CPPFLAGS $MY_THREAD_CPPFLAGS $MY_CFLAGS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char crypt_r (); +# include <netdb.h> + int main () { -return crypt_r (); + + char *name; + struct hostent *he, *res; + char buffer[2048]; + int buflen = 2048; + int h_errnop; + + (void) gethostbyname_r(name, he, buffer, buflen, &res, &h_errnop) + ; return 0; } _ACEOF -for ac_lib in '' crypt; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_crypt_r=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_crypt_r+:} false; then : - break -fi -done -if ${ac_cv_search_crypt_r+:} false; then : +if ac_fn_c_try_compile "$LINENO"; then : -else - ac_cv_search_crypt_r=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt_r" >&5 -$as_echo "$ac_cv_search_crypt_r" >&6; } -ac_res=$ac_cv_search_crypt_r -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + $as_echo "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h - $as_echo "#define HAVE_CRYPT_R 1" >>confdefs.h - if test "$ac_cv_search_crypt_r" = "none required"; then - libcrypt= - else - libcrypt="$ac_cv_search_crypt_r" - fi - LIBCRYPT_LIBS=${LIBCRYPT_LIBS-$libcrypt} +$as_echo "#define HAVE_GETHOSTBYNAME_R_6_ARG 1" >>confdefs.h -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking gethostbyname_r with 5 args" >&5 +$as_echo_n "checking gethostbyname_r with 5 args... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +# include <netdb.h> +int +main () +{ + char *name; + struct hostent *he; + char buffer[2048]; + int buflen = 2048; + int h_errnop; -else - LIBCRYPT_CFLAGS=$pkg_cv_LIBCRYPT_CFLAGS - LIBCRYPT_LIBS=$pkg_cv_LIBCRYPT_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + (void) gethostbyname_r(name, he, buffer, buflen, &h_errnop) - $as_echo "#define HAVE_CRYPT_R 1" >>confdefs.h + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + $as_echo "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h -fi -save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS +$as_echo "#define HAVE_GETHOSTBYNAME_R_5_ARG 1" >>confdefs.h + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - CPPFLAGS="$LIBCRYPT_CFLAGS $CFLAGS" - LIBS="$LIBCRYPT_LIBS $LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for crypt or crypt_r" >&5 -$as_echo_n "checking for crypt or crypt_r... " >&6; } -if ${ac_cv_crypt_crypt+:} false; then : - $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking gethostbyname_r with 3 args" >&5 +$as_echo_n "checking gethostbyname_r with 3 args... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - #ifdef HAVE_CRYPT_H - #include <crypt.h> - #endif - #include <unistd.h> +# include <netdb.h> int main () { - #ifdef HAVE_CRYPT_R - void *x = crypt_r; - #else - void *x = crypt; - #endif + char *name; + struct hostent *he; + struct hostent_data data; + + (void) gethostbyname_r(name, he, &data); ; return 0; } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + $as_echo "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h + + +$as_echo "#define HAVE_GETHOSTBYNAME_R_3_ARG 1" >>confdefs.h + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_crypt_crypt=yes else - ac_cv_crypt_crypt=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_crypt_crypt" >&5 -$as_echo "$ac_cv_crypt_crypt" >&6; } +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$OLD_CFLAGS +else -for ac_func in clock_gettime + for ac_func in gethostbyname do : - ac_fn_c_check_func "$LINENO" "clock_gettime" "ac_cv_func_clock_gettime" -if test "x$ac_cv_func_clock_gettime" = xyes; then : + ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" +if test "x$ac_cv_func_gethostbyname" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_CLOCK_GETTIME 1 +#define HAVE_GETHOSTBYNAME 1 _ACEOF -else +fi +done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_gettime in -lrt" >&5 -$as_echo_n "checking for clock_gettime in -lrt... " >&6; } -if ${ac_cv_lib_rt_clock_gettime+:} false; then : + +fi + + + + + + + +# checks for system services +# (none yet) + +# Linux requires this for correct f.p. operations +ac_fn_c_check_func "$LINENO" "__fpu_control" "ac_cv_func___fpu_control" +if test "x$ac_cv_func___fpu_control" = xyes; then : + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __fpu_control in -lieee" >&5 +$as_echo_n "checking for __fpu_control in -lieee... " >&6; } +if ${ac_cv_lib_ieee___fpu_control+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lrt $LIBS" +LIBS="-lieee $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -17419,1252 +20648,1515 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char clock_gettime (); +char __fpu_control (); int main () { -return clock_gettime (); +return __fpu_control (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_rt_clock_gettime=yes + ac_cv_lib_ieee___fpu_control=yes else - ac_cv_lib_rt_clock_gettime=no + ac_cv_lib_ieee___fpu_control=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_gettime" >&5 -$as_echo "$ac_cv_lib_rt_clock_gettime" >&6; } -if test "x$ac_cv_lib_rt_clock_gettime" = xyes; then : - - LIBS="$LIBS -lrt" - $as_echo "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ieee___fpu_control" >&5 +$as_echo "$ac_cv_lib_ieee___fpu_control" >&6; } +if test "x$ac_cv_lib_ieee___fpu_control" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBIEEE 1 +_ACEOF + LIBS="-lieee $LIBS" -$as_echo "#define TIMEMODULE_LIB rt" >>confdefs.h +fi fi +# check for --with-libm=... + +case $ac_sys_system in +Darwin) ;; +*) LIBM=-lm +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-libm=STRING" >&5 +$as_echo_n "checking for --with-libm=STRING... " >&6; } + +# Check whether --with-libm was given. +if test "${with_libm+set}" = set; then : + withval=$with_libm; +if test "$withval" = no +then LIBM= + { $as_echo "$as_me:${as_lineno-$LINENO}: result: force LIBM empty" >&5 +$as_echo "force LIBM empty" >&6; } +elif test "$withval" != yes +then LIBM=$withval + { $as_echo "$as_me:${as_lineno-$LINENO}: result: set LIBM=\"$withval\"" >&5 +$as_echo "set LIBM=\"$withval\"" >&6; } +else as_fn_error $? "proper usage is --with-libm=STRING" "$LINENO" 5 +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: default LIBM=\"$LIBM\"" >&5 +$as_echo "default LIBM=\"$LIBM\"" >&6; } fi -done -for ac_func in clock_getres -do : - ac_fn_c_check_func "$LINENO" "clock_getres" "ac_cv_func_clock_getres" -if test "x$ac_cv_func_clock_getres" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_CLOCK_GETRES 1 -_ACEOF +# check for --with-libc=... + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-libc=STRING" >&5 +$as_echo_n "checking for --with-libc=STRING... " >&6; } +# Check whether --with-libc was given. +if test "${with_libc+set}" = set; then : + withval=$with_libc; +if test "$withval" = no +then LIBC= + { $as_echo "$as_me:${as_lineno-$LINENO}: result: force LIBC empty" >&5 +$as_echo "force LIBC empty" >&6; } +elif test "$withval" != yes +then LIBC=$withval + { $as_echo "$as_me:${as_lineno-$LINENO}: result: set LIBC=\"$withval\"" >&5 +$as_echo "set LIBC=\"$withval\"" >&6; } +else as_fn_error $? "proper usage is --with-libc=STRING" "$LINENO" 5 +fi else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: default LIBC=\"$LIBC\"" >&5 +$as_echo "default LIBC=\"$LIBC\"" >&6; } +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_getres in -lrt" >&5 -$as_echo_n "checking for clock_getres in -lrt... " >&6; } -if ${ac_cv_lib_rt_clock_getres+:} false; then : + +# ************************************** +# * Check for gcc x64 inline assembler * +# ************************************** + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for x64 gcc inline assembler" >&5 +$as_echo_n "checking for x64 gcc inline assembler... " >&6; } +if ${ac_cv_gcc_asm_for_x64+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lrt $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char clock_getres (); int main () { -return clock_getres (); + + __asm__ __volatile__ ("movq %rcx, %rax"); + ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_rt_clock_getres=yes + ac_cv_gcc_asm_for_x64=yes else - ac_cv_lib_rt_clock_getres=no + ac_cv_gcc_asm_for_x64=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_getres" >&5 -$as_echo "$ac_cv_lib_rt_clock_getres" >&6; } -if test "x$ac_cv_lib_rt_clock_getres" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gcc_asm_for_x64" >&5 +$as_echo "$ac_cv_gcc_asm_for_x64" >&6; } - $as_echo "#define HAVE_CLOCK_GETRES 1" >>confdefs.h +if test "x$ac_cv_gcc_asm_for_x64" = xyes; then : + + +$as_echo "#define HAVE_GCC_ASM_FOR_X64 1" >>confdefs.h + + +fi + +# ************************************************** +# * Check for various properties of floating point * +# ************************************************** + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether float word ordering is bigendian" >&5 +$as_echo_n "checking whether float word ordering is bigendian... " >&6; } +if ${ax_cv_c_float_words_bigendian+:} false; then : + $as_echo_n "(cached) " >&6 +else + + +ax_cv_c_float_words_bigendian=unknown +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +double d = 90904234967036810337470478905505011476211692735615632014797120844053488865816695273723469097858056257517020191247487429516932130503560650002327564517570778480236724525140520121371739201496540132640109977779420565776568942592.0; + + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + +if grep noonsees conftest.$ac_objext >/dev/null ; then + ax_cv_c_float_words_bigendian=yes +fi +if grep seesnoon conftest.$ac_objext >/dev/null ; then + if test "$ax_cv_c_float_words_bigendian" = unknown; then + ax_cv_c_float_words_bigendian=no + else + ax_cv_c_float_words_bigendian=unknown + fi +fi fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_c_float_words_bigendian" >&5 +$as_echo "$ax_cv_c_float_words_bigendian" >&6; } + +case $ax_cv_c_float_words_bigendian in + yes) + +$as_echo "#define FLOAT_WORDS_BIGENDIAN 1" >>confdefs.h + ;; + no) + ;; + *) + as_fn_error $? " + +Unknown float word ordering. You need to manually preset +ax_cv_c_float_words_bigendian=no (or yes) according to your system. + + " "$LINENO" 5 ;; +esac + + +if test "$ax_cv_c_float_words_bigendian" = "yes" +then +$as_echo "#define DOUBLE_IS_BIG_ENDIAN_IEEE754 1" >>confdefs.h + +elif test "$ax_cv_c_float_words_bigendian" = "no" +then + +$as_echo "#define DOUBLE_IS_LITTLE_ENDIAN_IEEE754 1" >>confdefs.h + +else + # Some ARM platforms use a mixed-endian representation for doubles. + # While Python doesn't currently have full support for these platforms + # (see e.g., issue 1762561), we can at least make sure that float <-> string + # conversions work. + # FLOAT_WORDS_BIGENDIAN doesnt actually detect this case, but if it's not big + # or little, then it must be this? + +$as_echo "#define DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 1" >>confdefs.h fi -done - -for ac_func in clock_settime -do : - ac_fn_c_check_func "$LINENO" "clock_settime" "ac_cv_func_clock_settime" -if test "x$ac_cv_func_clock_settime" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_CLOCK_SETTIME 1 -_ACEOF +# The short float repr introduced in Python 3.1 requires the +# correctly-rounded string <-> double conversion functions from +# Python/dtoa.c, which in turn require that the FPU uses 53-bit +# rounding; this is a problem on x86, where the x87 FPU has a default +# rounding precision of 64 bits. For gcc/x86, we can fix this by +# using inline assembler to get and set the x87 FPU control word. -else +# This inline assembler syntax may also work for suncc and icc, +# so we try it on all platforms. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_settime in -lrt" >&5 -$as_echo_n "checking for clock_settime in -lrt... " >&6; } -if ${ac_cv_lib_rt_clock_settime+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can use gcc inline assembler to get and set x87 control word" >&5 +$as_echo_n "checking whether we can use gcc inline assembler to get and set x87 control word... " >&6; } +if ${ac_cv_gcc_asm_for_x87+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lrt $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char clock_settime (); int main () { -return clock_settime (); + + unsigned short cw; + __asm__ __volatile__ ("fnstcw %0" : "=m" (cw)); + __asm__ __volatile__ ("fldcw %0" : : "m" (cw)); + ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_rt_clock_settime=yes + ac_cv_gcc_asm_for_x87=yes else - ac_cv_lib_rt_clock_settime=no + ac_cv_gcc_asm_for_x87=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_settime" >&5 -$as_echo "$ac_cv_lib_rt_clock_settime" >&6; } -if test "x$ac_cv_lib_rt_clock_settime" = xyes; then : - - $as_echo "#define HAVE_CLOCK_SETTIME 1" >>confdefs.h - fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gcc_asm_for_x87" >&5 +$as_echo "$ac_cv_gcc_asm_for_x87" >&6; } +if test "x$ac_cv_gcc_asm_for_x87" = xyes; then : -fi -done - +$as_echo "#define HAVE_GCC_ASM_FOR_X87 1" >>confdefs.h -for ac_func in clock_nanosleep -do : - ac_fn_c_check_func "$LINENO" "clock_nanosleep" "ac_cv_func_clock_nanosleep" -if test "x$ac_cv_func_clock_nanosleep" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_CLOCK_NANOSLEEP 1 -_ACEOF -else +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_nanosleep in -lrt" >&5 -$as_echo_n "checking for clock_nanosleep in -lrt... " >&6; } -if ${ac_cv_lib_rt_clock_nanosleep+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can use gcc inline assembler to get and set mc68881 fpcr" >&5 +$as_echo_n "checking whether we can use gcc inline assembler to get and set mc68881 fpcr... " >&6; } +if ${ac_cv_gcc_asm_for_mc68881+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lrt $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char clock_nanosleep (); int main () { -return clock_nanosleep (); + + unsigned int fpcr; + __asm__ __volatile__ ("fmove.l %%fpcr,%0" : "=g" (fpcr)); + __asm__ __volatile__ ("fmove.l %0,%%fpcr" : : "g" (fpcr)); + ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_rt_clock_nanosleep=yes + ac_cv_gcc_asm_for_mc68881=yes else - ac_cv_lib_rt_clock_nanosleep=no + ac_cv_gcc_asm_for_mc68881=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_nanosleep" >&5 -$as_echo "$ac_cv_lib_rt_clock_nanosleep" >&6; } -if test "x$ac_cv_lib_rt_clock_nanosleep" = xyes; then : - - $as_echo "#define HAVE_CLOCK_NANOSLEEP 1" >>confdefs.h - fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gcc_asm_for_mc68881" >&5 +$as_echo "$ac_cv_gcc_asm_for_mc68881" >&6; } +if test "x$ac_cv_gcc_asm_for_mc68881" = xyes; then : -fi -done +$as_echo "#define HAVE_GCC_ASM_FOR_MC68881 1" >>confdefs.h -for ac_func in nanosleep -do : - ac_fn_c_check_func "$LINENO" "nanosleep" "ac_cv_func_nanosleep" -if test "x$ac_cv_func_nanosleep" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_NANOSLEEP 1 -_ACEOF +fi +# Detect whether system arithmetic is subject to x87-style double +# rounding issues. The result of this test has little meaning on non +# IEEE 754 platforms. On IEEE 754, test should return 1 if rounding +# mode is round-to-nearest and double rounding issues are present, and +# 0 otherwise. See https://github.com/python/cpython/issues/47186 for more info. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for x87-style double rounding" >&5 +$as_echo_n "checking for x87-style double rounding... " >&6; } +if ${ac_cv_x87_double_rounding+:} false; then : + $as_echo_n "(cached) " >&6 else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nanosleep in -lrt" >&5 -$as_echo_n "checking for nanosleep in -lrt... " >&6; } -if ${ac_cv_lib_rt_nanosleep+:} false; then : - $as_echo_n "(cached) " >&6 +# $BASECFLAGS may affect the result +ac_save_cc="$CC" +CC="$CC $BASECFLAGS" +if test "$cross_compiling" = yes; then : + ac_cv_x87_double_rounding=no else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lrt $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char nanosleep (); -int -main () -{ -return nanosleep (); - ; - return 0; +#include <stdlib.h> +#include <math.h> +int main() { + volatile double x, y, z; + /* 1./(1-2**-53) -> 1+2**-52 (correct), 1.0 (double rounding) */ + x = 0.99999999999999989; /* 1-2**-53 */ + y = 1./x; + if (y != 1.) + exit(0); + /* 1e16+2.99999 -> 1e16+2. (correct), 1e16+4. (double rounding) */ + x = 1e16; + y = 2.99999; + z = x + y; + if (z != 1e16+4.) + exit(0); + /* both tests show evidence of double rounding */ + exit(1); } + _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_rt_nanosleep=yes +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_x87_double_rounding=no else - ac_cv_lib_rt_nanosleep=no + ac_cv_x87_double_rounding=yes fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_nanosleep" >&5 -$as_echo "$ac_cv_lib_rt_nanosleep" >&6; } -if test "x$ac_cv_lib_rt_nanosleep" = xyes; then : - $as_echo "#define HAVE_NANOSLEEP 1" >>confdefs.h +CC="$ac_save_cc" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_x87_double_rounding" >&5 +$as_echo "$ac_cv_x87_double_rounding" >&6; } + +if test "x$ac_cv_x87_double_rounding" = xyes; then : + + +$as_echo "#define X87_DOUBLE_ROUNDING 1" >>confdefs.h fi +# ************************************ +# * Check for mathematical functions * +# ************************************ + +LIBS_SAVE=$LIBS +LIBS="$LIBS $LIBM" + +for ac_func in acosh asinh atanh erf erfc expm1 log1p log2 +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +else + as_fn_error $? "Python requires C99 compatible libm" "$LINENO" 5 fi done +LIBS=$LIBS_SAVE -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for major, minor, and makedev" >&5 -$as_echo_n "checking for major, minor, and makedev... " >&6; } -if ${ac_cv_device_macros+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether POSIX semaphores are enabled" >&5 +$as_echo_n "checking whether POSIX semaphores are enabled... " >&6; } +if ${ac_cv_posix_semaphores_enabled+:} false; then : $as_echo_n "(cached) " >&6 else - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if test "$cross_compiling" = yes; then : + ac_cv_posix_semaphores_enabled=yes +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#if defined(MAJOR_IN_MKDEV) -#include <sys/mkdev.h> -#elif defined(MAJOR_IN_SYSMACROS) -#include <sys/sysmacros.h> -#else -#include <sys/types.h> -#endif -int -main () -{ + #include <unistd.h> + #include <fcntl.h> + #include <stdio.h> + #include <semaphore.h> + #include <sys/stat.h> + + int main(void) { + sem_t *a = sem_open("/autoconf", O_CREAT, S_IRUSR|S_IWUSR, 0); + if (a == SEM_FAILED) { + perror("sem_open"); + return 1; + } + sem_close(a); + sem_unlink("/autoconf"); + return 0; + } - makedev(major(0),minor(0)); - ; - return 0; -} _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_device_macros=yes +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_posix_semaphores_enabled=yes else - ac_cv_device_macros=no + ac_cv_posix_semaphores_enabled=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_device_macros" >&5 -$as_echo "$ac_cv_device_macros" >&6; } -if test "x$ac_cv_device_macros" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_posix_semaphores_enabled" >&5 +$as_echo "$ac_cv_posix_semaphores_enabled" >&6; } +if test "x$ac_cv_posix_semaphores_enabled" = xno; then : -$as_echo "#define HAVE_DEVICE_MACROS 1" >>confdefs.h +$as_echo "#define POSIX_SEMAPHORES_NOT_ENABLED 1" >>confdefs.h fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken sem_getvalue" >&5 +$as_echo_n "checking for broken sem_getvalue... " >&6; } +if ${ac_cv_broken_sem_getvalue+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + ac_cv_broken_sem_getvalue=yes +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -$as_echo "#define SYS_SELECT_WITH_SYS_TIME 1" >>confdefs.h + #include <unistd.h> + #include <fcntl.h> + #include <stdio.h> + #include <semaphore.h> + #include <sys/stat.h> -# On OSF/1 V5.1, getaddrinfo is available, but a define -# for [no]getaddrinfo in netdb.h. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo" >&5 -$as_echo_n "checking for getaddrinfo... " >&6; } -if ${ac_cv_func_getaddrinfo+:} false; then : - $as_echo_n "(cached) " >&6 -else + int main(void){ + sem_t *a = sem_open("/autocftw", O_CREAT, S_IRUSR|S_IWUSR, 0); + int count; + int res; + if(a==SEM_FAILED){ + perror("sem_open"); + return 1; -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + } + res = sem_getvalue(a, &count); + sem_close(a); + sem_unlink("/autocftw"); + return res==-1 ? 1 : 0; + } -#include <sys/types.h> -#include <sys/socket.h> -#include <netdb.h> -#include <stdio.h> -int -main () -{ -getaddrinfo(NULL, NULL, NULL, NULL); - ; - return 0; -} _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_func_getaddrinfo=yes +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_broken_sem_getvalue=no else - ac_cv_func_getaddrinfo=no + ac_cv_broken_sem_getvalue=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getaddrinfo" >&5 -$as_echo "$ac_cv_func_getaddrinfo" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_sem_getvalue" >&5 +$as_echo "$ac_cv_broken_sem_getvalue" >&6; } +if test "x$ac_cv_broken_sem_getvalue" = xyes; then : -if test "x$ac_cv_func_getaddrinfo" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking getaddrinfo bug" >&5 -$as_echo_n "checking getaddrinfo bug... " >&6; } -if ${ac_cv_buggy_getaddrinfo+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : +$as_echo "#define HAVE_BROKEN_SEM_GETVALUE 1" >>confdefs.h + -if test "${enable_ipv6+set}" = set; then - ac_cv_buggy_getaddrinfo="no -- configured with --(en|dis)able-ipv6" -else - ac_cv_buggy_getaddrinfo=yes fi + +ac_fn_c_check_decl "$LINENO" "RTLD_LAZY" "ac_cv_have_decl_RTLD_LAZY" "#include <dlfcn.h> +" +if test "x$ac_cv_have_decl_RTLD_LAZY" = xyes; then : + ac_have_decl=1 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + ac_have_decl=0 +fi -#include <stdio.h> -#include <sys/types.h> -#include <netdb.h> -#include <string.h> -#include <sys/socket.h> -#include <netinet/in.h> +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_RTLD_LAZY $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "RTLD_NOW" "ac_cv_have_decl_RTLD_NOW" "#include <dlfcn.h> +" +if test "x$ac_cv_have_decl_RTLD_NOW" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi -int main() -{ - int passive, gaierr, inet4 = 0, inet6 = 0; - struct addrinfo hints, *ai, *aitop; - char straddr[INET6_ADDRSTRLEN], strport[16]; +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_RTLD_NOW $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "RTLD_GLOBAL" "ac_cv_have_decl_RTLD_GLOBAL" "#include <dlfcn.h> +" +if test "x$ac_cv_have_decl_RTLD_GLOBAL" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi - for (passive = 0; passive <= 1; passive++) { - memset(&hints, 0, sizeof(hints)); - hints.ai_family = AF_UNSPEC; - hints.ai_flags = passive ? AI_PASSIVE : 0; - hints.ai_socktype = SOCK_STREAM; - hints.ai_protocol = IPPROTO_TCP; - if ((gaierr = getaddrinfo(NULL, "54321", &hints, &aitop)) != 0) { - (void)gai_strerror(gaierr); - goto bad; - } - for (ai = aitop; ai; ai = ai->ai_next) { - if (ai->ai_addr == NULL || - ai->ai_addrlen == 0 || - getnameinfo(ai->ai_addr, ai->ai_addrlen, - straddr, sizeof(straddr), strport, sizeof(strport), - NI_NUMERICHOST|NI_NUMERICSERV) != 0) { - goto bad; - } - switch (ai->ai_family) { - case AF_INET: - if (strcmp(strport, "54321") != 0) { - goto bad; - } - if (passive) { - if (strcmp(straddr, "0.0.0.0") != 0) { - goto bad; - } - } else { - if (strcmp(straddr, "127.0.0.1") != 0) { - goto bad; - } - } - inet4++; - break; - case AF_INET6: - if (strcmp(strport, "54321") != 0) { - goto bad; - } - if (passive) { - if (strcmp(straddr, "::") != 0) { - goto bad; - } - } else { - if (strcmp(straddr, "::1") != 0) { - goto bad; - } - } - inet6++; - break; - case AF_UNSPEC: - goto bad; - break; - default: - /* another family support? */ - break; - } - } - freeaddrinfo(aitop); - aitop = NULL; - } +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_RTLD_GLOBAL $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "RTLD_LOCAL" "ac_cv_have_decl_RTLD_LOCAL" "#include <dlfcn.h> +" +if test "x$ac_cv_have_decl_RTLD_LOCAL" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi - if (!(inet4 == 0 || inet4 == 2)) - goto bad; - if (!(inet6 == 0 || inet6 == 2)) - goto bad; +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_RTLD_LOCAL $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "RTLD_NODELETE" "ac_cv_have_decl_RTLD_NODELETE" "#include <dlfcn.h> +" +if test "x$ac_cv_have_decl_RTLD_NODELETE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi - if (aitop) - freeaddrinfo(aitop); - return 0; +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_RTLD_NODELETE $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "RTLD_NOLOAD" "ac_cv_have_decl_RTLD_NOLOAD" "#include <dlfcn.h> +" +if test "x$ac_cv_have_decl_RTLD_NOLOAD" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi - bad: - if (aitop) - freeaddrinfo(aitop); - return 1; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_RTLD_NOLOAD $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "RTLD_DEEPBIND" "ac_cv_have_decl_RTLD_DEEPBIND" "#include <dlfcn.h> +" +if test "x$ac_cv_have_decl_RTLD_DEEPBIND" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_RTLD_DEEPBIND $ac_have_decl _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_buggy_getaddrinfo=no +ac_fn_c_check_decl "$LINENO" "RTLD_MEMBER" "ac_cv_have_decl_RTLD_MEMBER" "#include <dlfcn.h> +" +if test "x$ac_cv_have_decl_RTLD_MEMBER" = xyes; then : + ac_have_decl=1 else - ac_cv_buggy_getaddrinfo=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_have_decl=0 fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_buggy_getaddrinfo" >&5 -$as_echo "$ac_cv_buggy_getaddrinfo" >&6; } +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_RTLD_MEMBER $ac_have_decl +_ACEOF -fi +# determine what size digit to use for Python's longs +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking digit size for Python's longs" >&5 +$as_echo_n "checking digit size for Python's longs... " >&6; } +# Check whether --enable-big-digits was given. +if test "${enable_big_digits+set}" = set; then : + enableval=$enable_big_digits; case $enable_big_digits in +yes) + enable_big_digits=30 ;; +no) + enable_big_digits=15 ;; +15|30) + ;; +*) + as_fn_error $? "bad value $enable_big_digits for --enable-big-digits; value should be 15 or 30" "$LINENO" 5 ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_big_digits" >&5 +$as_echo "$enable_big_digits" >&6; } -if test "$ac_cv_func_getaddrinfo" = no -o "$ac_cv_buggy_getaddrinfo" = yes -then - if test "x$ipv6" = xyes; then : +cat >>confdefs.h <<_ACEOF +#define PYLONG_BITS_IN_DIGIT $enable_big_digits +_ACEOF - as_fn_error $? "You must get working getaddrinfo() function or pass the \"--disable-ipv6\" option to configure." "$LINENO" 5 -fi else - -$as_echo "#define HAVE_GETADDRINFO 1" >>confdefs.h - + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no value specified" >&5 +$as_echo "no value specified" >&6; } fi -for ac_func in getnameinfo -do : - ac_fn_c_check_func "$LINENO" "getnameinfo" "ac_cv_func_getnameinfo" -if test "x$ac_cv_func_getnameinfo" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_GETNAMEINFO 1 -_ACEOF - -fi -done +# check for wchar.h +ac_fn_c_check_header_mongrel "$LINENO" "wchar.h" "ac_cv_header_wchar_h" "$ac_includes_default" +if test "x$ac_cv_header_wchar_h" = xyes; then : -if test "x$ac_cv_header_sys_time_h" = xyes; then : +$as_echo "#define HAVE_WCHAR_H 1" >>confdefs.h -$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h + wchar_h="yes" +else + wchar_h="no" fi -# checks for structures -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 -$as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } -if ${ac_cv_struct_tm+:} false; then : + + +# determine wchar_t size +if test "$wchar_h" = yes +then + # The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of wchar_t" >&5 +$as_echo_n "checking size of wchar_t... " >&6; } +if ${ac_cv_sizeof_wchar_t+:} false; then : $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <sys/types.h> -#include <time.h> + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (wchar_t))" "ac_cv_sizeof_wchar_t" "#include <wchar.h> +"; then : -int -main () -{ -struct tm tm; - int *p = &tm.tm_sec; - return !p; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_struct_tm=time.h else - ac_cv_struct_tm=sys/time.h -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test "$ac_cv_type_wchar_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (wchar_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_wchar_t=0 + fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 -$as_echo "$ac_cv_struct_tm" >&6; } -if test $ac_cv_struct_tm = sys/time.h; then - -$as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_wchar_t" >&5 +$as_echo "$ac_cv_sizeof_wchar_t" >&6; } -ac_fn_c_check_member "$LINENO" "struct tm" "tm_zone" "ac_cv_member_struct_tm_tm_zone" "#include <sys/types.h> -#include <$ac_cv_struct_tm> -" -if test "x$ac_cv_member_struct_tm_tm_zone" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_TM_TM_ZONE 1 +#define SIZEOF_WCHAR_T $ac_cv_sizeof_wchar_t _ACEOF fi -if test "$ac_cv_member_struct_tm_tm_zone" = yes; then - -$as_echo "#define HAVE_TM_ZONE 1" >>confdefs.h - -else - ac_fn_c_check_decl "$LINENO" "tzname" "ac_cv_have_decl_tzname" "#include <time.h> -" -if test "x$ac_cv_have_decl_tzname" = xyes; then : - ac_have_decl=1 +# check whether wchar_t is signed or not +if test "$wchar_h" = yes +then + # check whether wchar_t is signed or not + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wchar_t is signed" >&5 +$as_echo_n "checking whether wchar_t is signed... " >&6; } +if ${ac_cv_wchar_t_signed+:} false; then : + $as_echo_n "(cached) " >&6 else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_TZNAME $ac_have_decl -_ACEOF - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tzname" >&5 -$as_echo_n "checking for tzname... " >&6; } -if ${ac_cv_var_tzname+:} false; then : - $as_echo_n "(cached) " >&6 + if test "$cross_compiling" = yes; then : + ac_cv_wchar_t_signed=yes else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <time.h> -#if !HAVE_DECL_TZNAME -extern char *tzname[]; -#endif -int -main () -{ -return tzname[0][0]; - ; - return 0; -} + #include <wchar.h> + int main() + { + /* Success: exit code 0 */ + return ((((wchar_t) -1) < ((wchar_t) 0)) ? 0 : 1); + } + _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_var_tzname=yes +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_wchar_t_signed=yes else - ac_cv_var_tzname=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + ac_cv_wchar_t_signed=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_var_tzname" >&5 -$as_echo "$ac_cv_var_tzname" >&6; } - if test $ac_cv_var_tzname = yes; then - -$as_echo "#define HAVE_TZNAME 1" >>confdefs.h - - fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi -ac_fn_c_check_member "$LINENO" "struct stat" "st_rdev" "ac_cv_member_struct_stat_st_rdev" "$ac_includes_default" -if test "x$ac_cv_member_struct_stat_st_rdev" = xyes; then : - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STAT_ST_RDEV 1 -_ACEOF - - fi - -ac_fn_c_check_member "$LINENO" "struct stat" "st_blksize" "ac_cv_member_struct_stat_st_blksize" "$ac_includes_default" -if test "x$ac_cv_member_struct_stat_st_blksize" = xyes; then : - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STAT_ST_BLKSIZE 1 -_ACEOF - - +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_wchar_t_signed" >&5 +$as_echo "$ac_cv_wchar_t_signed" >&6; } fi -ac_fn_c_check_member "$LINENO" "struct stat" "st_flags" "ac_cv_member_struct_stat_st_flags" "$ac_includes_default" -if test "x$ac_cv_member_struct_stat_st_flags" = xyes; then : - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STAT_ST_FLAGS 1 -_ACEOF +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wchar_t is usable" >&5 +$as_echo_n "checking whether wchar_t is usable... " >&6; } +# wchar_t is only usable if it maps to an unsigned type +if test "$ac_cv_sizeof_wchar_t" -ge 2 \ + -a "$ac_cv_wchar_t_signed" = "no" +then +$as_echo "#define HAVE_USABLE_WCHAR_T 1" >>confdefs.h + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -ac_fn_c_check_member "$LINENO" "struct stat" "st_gen" "ac_cv_member_struct_stat_st_gen" "$ac_includes_default" -if test "x$ac_cv_member_struct_stat_st_gen" = xyes; then : - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STAT_ST_GEN 1 -_ACEOF +case $ac_sys_system/$ac_sys_release in +SunOS/*) + if test -f /etc/os-release; then + OS_NAME=$(awk -F= '/^NAME=/ {print substr($2,2,length($2)-2)}' /etc/os-release) + if test "x$OS_NAME" = "xOracle Solaris"; then + # bpo-43667: In Oracle Solaris, the internal form of wchar_t in + # non-Unicode locales is not Unicode and hence cannot be used directly. + # https://docs.oracle.com/cd/E37838_01/html/E61053/gmwke.html +$as_echo "#define HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION 1" >>confdefs.h -fi + fi + fi + ;; +esac -ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtime" "ac_cv_member_struct_stat_st_birthtime" "$ac_includes_default" -if test "x$ac_cv_member_struct_stat_st_birthtime" = xyes; then : +# check for endianness + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 +$as_echo_n "checking whether byte ordering is bigendian... " >&6; } +if ${ac_cv_c_bigendian+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_bigendian=unknown + # See if we're dealing with a universal compiler. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STAT_ST_BIRTHTIME 1 _ACEOF +if ac_fn_c_try_compile "$LINENO"; then : - + # Check for potential -arch flags. It is not universal unless + # there are at least two -arch flags with different values. + ac_arch= + ac_prev= + for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do + if test -n "$ac_prev"; then + case $ac_word in + i?86 | x86_64 | ppc | ppc64) + if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then + ac_arch=$ac_word + else + ac_cv_c_bigendian=universal + break + fi + ;; + esac + ac_prev= + elif test "x$ac_word" = "x-arch"; then + ac_prev=arch + fi + done fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test $ac_cv_c_bigendian = unknown; then + # See if sys/param.h defines the BYTE_ORDER macro. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/types.h> + #include <sys/param.h> -ac_fn_c_check_member "$LINENO" "struct stat" "st_blocks" "ac_cv_member_struct_stat_st_blocks" "$ac_includes_default" -if test "x$ac_cv_member_struct_stat_st_blocks" = xyes; then : +int +main () +{ +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ + && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ + && LITTLE_ENDIAN) + bogus endian macros + #endif -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STAT_ST_BLOCKS 1 + ; + return 0; +} _ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/types.h> + #include <sys/param.h> +int +main () +{ +#if BYTE_ORDER != BIG_ENDIAN + not big endian + #endif -fi - -ac_fn_c_check_member "$LINENO" "struct passwd" "pw_gecos" "ac_cv_member_struct_passwd_pw_gecos" " - #include <sys/types.h> - #include <pwd.h> - -" -if test "x$ac_cv_member_struct_passwd_pw_gecos" = xyes; then : - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_PASSWD_PW_GECOS 1 + ; + return 0; +} _ACEOF - - +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no fi -ac_fn_c_check_member "$LINENO" "struct passwd" "pw_passwd" "ac_cv_member_struct_passwd_pw_passwd" " - #include <sys/types.h> - #include <pwd.h> +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <limits.h> -" -if test "x$ac_cv_member_struct_passwd_pw_passwd" = xyes; then : +int +main () +{ +#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) + bogus endian macros + #endif -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_PASSWD_PW_PASSWD 1 + ; + return 0; +} _ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to _BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <limits.h> +int +main () +{ +#ifndef _BIG_ENDIAN + not big endian + #endif + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # Compile a test program. + if test "$cross_compiling" = yes; then : + # Try to guess by grepping values from an object file. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +short int ascii_mm[] = + { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; + short int ascii_ii[] = + { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; + int use_ascii (int i) { + return ascii_mm[i] + ascii_ii[i]; + } + short int ebcdic_ii[] = + { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; + short int ebcdic_mm[] = + { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; + int use_ebcdic (int i) { + return ebcdic_mm[i] + ebcdic_ii[i]; + } + extern int foo; -# Issue #21085: In Cygwin, siginfo_t does not have si_band field. -ac_fn_c_check_member "$LINENO" "siginfo_t" "si_band" "ac_cv_member_siginfo_t_si_band" "#include <signal.h> -" -if test "x$ac_cv_member_siginfo_t_si_band" = xyes; then : - -cat >>confdefs.h <<_ACEOF -#define HAVE_SIGINFO_T_SI_BAND 1 +int +main () +{ +return use_ascii (foo) == use_ebcdic (foo); + ; + return 0; +} _ACEOF - - +if ac_fn_c_try_compile "$LINENO"; then : + if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then + ac_cv_c_bigendian=yes + fi + if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi + fi fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for time.h that defines altzone" >&5 -$as_echo_n "checking for time.h that defines altzone... " >&6; } -if ${ac_cv_header_time_altzone+:} false; then : - $as_echo_n "(cached) " >&6 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <time.h> +$ac_includes_default int main () { -return altzone; + + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; + ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_time_altzone=yes +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_c_bigendian=no else - ac_cv_header_time_altzone=no + ac_cv_c_bigendian=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time_altzone" >&5 -$as_echo "$ac_cv_header_time_altzone" >&6; } -if test $ac_cv_header_time_altzone = yes; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 +$as_echo "$ac_cv_c_bigendian" >&6; } + case $ac_cv_c_bigendian in #( + yes) + $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h +;; #( + no) + ;; #( + universal) + +$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h + + ;; #( + *) + as_fn_error $? "unknown endianness + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; + esac + + +# ABI version string for Python extension modules. This appears between the +# periods in shared library file names, e.g. foo.<SOABI>.so. It is calculated +# from the following attributes which affect the ABI of this Python build (in +# this order): +# +# * The Python implementation (always 'cpython-' for us) +# * The major and minor version numbers +# * --with-pydebug (adds a 'd') +# +# Thus for example, Python 3.2 built with wide unicode, pydebug, and pymalloc, +# would get a shared library ABI version tag of 'cpython-32dmu' and shared +# libraries would be named 'foo.cpython-32dmu.so'. +# +# In Python 3.2 and older, --with-wide-unicode added a 'u' flag. +# In Python 3.7 and older, --with-pymalloc added a 'm' flag. + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking ABIFLAGS" >&5 +$as_echo_n "checking ABIFLAGS... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ABIFLAGS" >&5 +$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} +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $SOABI" >&5 +$as_echo "$SOABI" >&6; } -$as_echo "#define HAVE_ALTZONE 1" >>confdefs.h +# 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 -fi + ALT_SOABI='cpython-'`echo $VERSION | tr -d .``echo $ABIFLAGS | tr -d d`${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET} -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for addrinfo" >&5 -$as_echo_n "checking for addrinfo... " >&6; } -if ${ac_cv_struct_addrinfo+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <netdb.h> -int -main () -{ -struct addrinfo a - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define ALT_SOABI "${ALT_SOABI}" _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_struct_addrinfo=yes -else - ac_cv_struct_addrinfo=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_addrinfo" >&5 -$as_echo "$ac_cv_struct_addrinfo" >&6; } -if test $ac_cv_struct_addrinfo = yes; then -$as_echo "#define HAVE_ADDRINFO 1" >>confdefs.h -fi +EXT_SUFFIX=.${SOABI}${SHLIB_SUFFIX} -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sockaddr_storage" >&5 -$as_echo_n "checking for sockaddr_storage... " >&6; } -if ${ac_cv_struct_sockaddr_storage+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking LDVERSION" >&5 +$as_echo_n "checking LDVERSION... " >&6; } +LDVERSION='$(VERSION)$(ABIFLAGS)' +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LDVERSION" >&5 +$as_echo "$LDVERSION" >&6; } -# include <sys/types.h> -# include <sys/socket.h> -int -main () -{ -struct sockaddr_storage s - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_struct_sockaddr_storage=yes +# On Android and Cygwin the shared libraries must be linked with libpython. + +if test -n "$ANDROID_API_LEVEL" -o "$MACHDEP" = "cygwin"; then + LIBPYTHON="-lpython${VERSION}${ABIFLAGS}" else - ac_cv_struct_sockaddr_storage=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + LIBPYTHON='' fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_sockaddr_storage" >&5 -$as_echo "$ac_cv_struct_sockaddr_storage" >&6; } -if test $ac_cv_struct_sockaddr_storage = yes; then -$as_echo "#define HAVE_SOCKADDR_STORAGE 1" >>confdefs.h -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sockaddr_alg" >&5 -$as_echo_n "checking for sockaddr_alg... " >&6; } -if ${ac_cv_struct_sockaddr_alg+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +BINLIBDEST='$(LIBDIR)/python$(VERSION)' -# include <sys/types.h> -# include <sys/socket.h> -# include <linux/if_alg.h> -int -main () -{ -struct sockaddr_alg s - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_struct_sockaddr_alg=yes + +# Check for --with-platlibdir +# /usr/$LIDIRNAME/python$VERSION + +PLATLIBDIR="lib" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-platlibdir" >&5 +$as_echo_n "checking for --with-platlibdir... " >&6; } + +# Check whether --with-platlibdir was given. +if test "${with_platlibdir+set}" = set; then : + withval=$with_platlibdir; +# ignore 3 options: +# --with-platlibdir +# --with-platlibdir= +# --without-platlibdir +if test -n "$withval" -a "$withval" != yes -a "$withval" != no +then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + PLATLIBDIR="$withval" + BINLIBDEST='${exec_prefix}/${PLATLIBDIR}/python$(VERSION)' else - ac_cv_struct_sockaddr_alg=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_sockaddr_alg" >&5 -$as_echo "$ac_cv_struct_sockaddr_alg" >&6; } -if test $ac_cv_struct_sockaddr_alg = yes; then -$as_echo "#define HAVE_SOCKADDR_ALG 1" >>confdefs.h -fi -# checks for compiler characteristics -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 -$as_echo_n "checking for an ANSI C-conforming const... " >&6; } -if ${ac_cv_c_const+:} false; then : - $as_echo_n "(cached) " >&6 +if test x$PLATFORM_TRIPLET = x; then + LIBPL='$(prefix)'"/${PLATLIBDIR}/python${VERSION}/config-${LDVERSION}" else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + LIBPL='$(prefix)'"/${PLATLIBDIR}/python${VERSION}/config-${LDVERSION}-${PLATFORM_TRIPLET}" +fi -int -main () -{ -#ifndef __cplusplus - /* Ultrix mips cc rejects this sort of thing. */ - typedef int charset[2]; - const charset cs = { 0, 0 }; - /* SunOS 4.1.1 cc rejects this. */ - char const *const *pcpcc; - char **ppc; - /* NEC SVR4.0.2 mips cc rejects this. */ - struct point {int x, y;}; - static struct point const zero = {0,0}; - /* AIX XL C 1.02.0.0 rejects this. - It does not let you subtract one const X* pointer from another in - an arm of an if-expression whose if-part is not a constant - expression */ - const char *g = "string"; - pcpcc = &g + (g ? g-g : 0); - /* HPUX 7.0 cc rejects these. */ - ++pcpcc; - ppc = (char**) pcpcc; - pcpcc = (char const *const *) ppc; - { /* SCO 3.2v4 cc rejects this sort of thing. */ - char tx; - char *t = &tx; - char const *s = 0 ? (char *) 0 : (char const *) 0; +# Check for --with-wheel-pkg-dir=PATH - *t++ = 0; - if (s) return 0; - } - { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ - int x[] = {25, 17}; - const int *foo = &x[0]; - ++foo; - } - { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ - typedef const int *iptr; - iptr p = 0; - ++p; - } - { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying - "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ - struct s { int j; const int *ap[3]; } bx; - struct s *b = &bx; b->j = 5; - } - { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ - const int foo = 10; - if (!foo) return 0; - } - return !cs[0] && !zero.x; -#endif +WHEEL_PKG_DIR="" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-wheel-pkg-dir" >&5 +$as_echo_n "checking for --with-wheel-pkg-dir... " >&6; } - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_const=yes +# Check whether --with-wheel-pkg-dir was given. +if test "${with_wheel_pkg_dir+set}" = set; then : + withval=$with_wheel_pkg_dir; +if test -n "$withval"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + WHEEL_PKG_DIR="$withval" else - ac_cv_c_const=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 -$as_echo "$ac_cv_c_const" >&6; } -if test $ac_cv_c_const = no; then - -$as_echo "#define const /**/" >>confdefs.h - +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working signed char" >&5 -$as_echo_n "checking for working signed char... " >&6; } -if ${ac_cv_working_signed_char_c+:} false; then : +# Check whether right shifting a negative integer extends the sign bit +# or fills with zeros (like the Cray J90, according to Tim Peters). +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether right shift extends the sign bit" >&5 +$as_echo_n "checking whether right shift extends the sign bit... " >&6; } +if ${ac_cv_rshift_extends_sign+:} false; then : $as_echo_n "(cached) " >&6 else -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +if test "$cross_compiling" = yes; then : + ac_cv_rshift_extends_sign=yes +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int -main () +int main() { -signed char c; - ; - return 0; + return (((-1)>>3 == -1) ? 0 : 1); } + _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_working_signed_char_c=yes +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_rshift_extends_sign=yes else - ac_cv_working_signed_char_c=no + ac_cv_rshift_extends_sign=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_signed_char_c" >&5 -$as_echo "$ac_cv_working_signed_char_c" >&6; } -if test "x$ac_cv_working_signed_char_c" = xno; then : - -$as_echo "#define signed /**/" >>confdefs.h +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_rshift_extends_sign" >&5 +$as_echo "$ac_cv_rshift_extends_sign" >&6; } +if test "$ac_cv_rshift_extends_sign" = no +then +$as_echo "#define SIGNED_RIGHT_SHIFT_ZERO_FILLS 1" >>confdefs.h fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for prototypes" >&5 -$as_echo_n "checking for prototypes... " >&6; } -if ${ac_cv_function_prototypes+:} false; then : +# check for getc_unlocked and related locking functions +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getc_unlocked() and friends" >&5 +$as_echo_n "checking for getc_unlocked() and friends... " >&6; } +if ${ac_cv_have_getc_unlocked+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int foo(int x) { return 0; } +#include <stdio.h> int main () { -return foo(10); + + FILE *f = fopen("/dev/null", "r"); + flockfile(f); + getc_unlocked(f); + funlockfile(f); + ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_function_prototypes=yes +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_have_getc_unlocked=yes else - ac_cv_function_prototypes=no + ac_cv_have_getc_unlocked=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_function_prototypes" >&5 -$as_echo "$ac_cv_function_prototypes" >&6; } -if test "x$ac_cv_function_prototypes" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_getc_unlocked" >&5 +$as_echo "$ac_cv_have_getc_unlocked" >&6; } +if test "$ac_cv_have_getc_unlocked" = yes +then +$as_echo "#define HAVE_GETC_UNLOCKED 1" >>confdefs.h -$as_echo "#define HAVE_PROTOTYPES 1" >>confdefs.h +fi -fi -# check for socketpair +# Check whether --with-readline was given. +if test "${with_readline+set}" = set; then : + withval=$with_readline; + case $with_readline in #( + editline|edit) : + with_readline=edit ;; #( + yes|readline) : + with_readline=readline ;; #( + no) : + ;; #( + *) : + as_fn_error $? "proper usage is --with(out)-readline[=editline|readline|no]" "$LINENO" 5 + ;; +esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socketpair" >&5 -$as_echo_n "checking for socketpair... " >&6; } -if ${ac_cv_func_socketpair+:} false; then : - $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + with_readline=readline -#include <sys/types.h> -#include <sys/socket.h> +fi -int -main () -{ -void *x=socketpair - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_socketpair=yes + +if test "x$with_readline" = xreadline; then : + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBREADLINE" >&5 +$as_echo_n "checking for LIBREADLINE... " >&6; } + +if test -n "$LIBREADLINE_CFLAGS"; then + pkg_cv_LIBREADLINE_CFLAGS="$LIBREADLINE_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"readline\""; } >&5 + ($PKG_CONFIG --exists --print-errors "readline") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBREADLINE_CFLAGS=`$PKG_CONFIG --cflags "readline" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - ac_cv_func_socketpair=no + pkg_failed=yes fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - + else + pkg_failed=untried +fi +if test -n "$LIBREADLINE_LIBS"; then + pkg_cv_LIBREADLINE_LIBS="$LIBREADLINE_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"readline\""; } >&5 + ($PKG_CONFIG --exists --print-errors "readline") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBREADLINE_LIBS=`$PKG_CONFIG --libs "readline" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_socketpair" >&5 -$as_echo "$ac_cv_func_socketpair" >&6; } - if test "x$ac_cv_func_socketpair" = xyes; then : -$as_echo "#define HAVE_SOCKETPAIR 1" >>confdefs.h + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no fi + if test $_pkg_short_errors_supported = yes; then + LIBREADLINE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "readline" 2>&1` + else + LIBREADLINE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "readline" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$LIBREADLINE_PKG_ERRORS" >&5 + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS -# check if sockaddr has sa_len member -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if sockaddr has sa_len member" >&5 -$as_echo_n "checking if sockaddr has sa_len member... " >&6; } -if ${ac_cv_struct_sockaddr_sa_len+:} false; then : + CPPFLAGS="$CPPFLAGS $LIBREADLINE_CFLAGS" + LDFLAGS="$LDFLAGS $LIBREADLINE_LIBS" + for ac_header in readline/readline.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "readline/readline.h" "ac_cv_header_readline_readline_h" "$ac_includes_default" +if test "x$ac_cv_header_readline_readline_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_READLINE_READLINE_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for readline in -lreadline" >&5 +$as_echo_n "checking for readline in -lreadline... " >&6; } +if ${ac_cv_lib_readline_readline+:} false; then : $as_echo_n "(cached) " >&6 else - + ac_check_lib_save_LIBS=$LIBS +LIBS="-lreadline $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <sys/types.h> -#include <sys/socket.h> + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char readline (); int main () { -struct sockaddr x; -x.sa_len = 0; +return readline (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_struct_sockaddr_sa_len=yes +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_readline_readline=yes else - ac_cv_struct_sockaddr_sa_len=no + ac_cv_lib_readline_readline=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_sockaddr_sa_len" >&5 -$as_echo "$ac_cv_struct_sockaddr_sa_len" >&6; } -if test "x$ac_cv_struct_sockaddr_sa_len" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_readline" >&5 +$as_echo "$ac_cv_lib_readline_readline" >&6; } +if test "x$ac_cv_lib_readline_readline" = xyes; then : + LIBREADLINE=readline + READLINE_CFLAGS=${LIBREADLINE_CFLAGS-""} + READLINE_LIBS=${LIBREADLINE_LIBS-"-lreadline"} -$as_echo "#define HAVE_SOCKADDR_SA_LEN 1" >>confdefs.h +else + with_readline=no +fi +else + with_readline=no fi -# sigh -- gethostbyname_r is a mess; it can have 3, 5 or 6 arguments :-( - +done -ac_fn_c_check_func "$LINENO" "gethostbyname_r" "ac_cv_func_gethostbyname_r" -if test "x$ac_cv_func_gethostbyname_r" = xyes; then : - $as_echo "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: checking gethostbyname_r with 6 args" >&5 -$as_echo_n "checking gethostbyname_r with 6 args... " >&6; } - OLD_CFLAGS=$CFLAGS - CFLAGS="$CFLAGS $MY_CPPFLAGS $MY_THREAD_CPPFLAGS $MY_CFLAGS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -# include <netdb.h> -int -main () -{ +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - char *name; - struct hostent *he, *res; - char buffer[2048]; - int buflen = 2048; - int h_errnop; + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS - (void) gethostbyname_r(name, he, buffer, buflen, &res, &h_errnop) - ; - return 0; -} + CPPFLAGS="$CPPFLAGS $LIBREADLINE_CFLAGS" + LDFLAGS="$LDFLAGS $LIBREADLINE_LIBS" + for ac_header in readline/readline.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "readline/readline.h" "ac_cv_header_readline_readline_h" "$ac_includes_default" +if test "x$ac_cv_header_readline_readline_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_READLINE_READLINE_H 1 _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - $as_echo "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h - - -$as_echo "#define HAVE_GETHOSTBYNAME_R_6_ARG 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for readline in -lreadline" >&5 +$as_echo_n "checking for readline in -lreadline... " >&6; } +if ${ac_cv_lib_readline_readline+:} false; then : + $as_echo_n "(cached) " >&6 else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking gethostbyname_r with 5 args" >&5 -$as_echo_n "checking gethostbyname_r with 5 args... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_check_lib_save_LIBS=$LIBS +LIBS="-lreadline $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -# include <netdb.h> - +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char readline (); int main () { - - char *name; - struct hostent *he; - char buffer[2048]; - int buflen = 2048; - int h_errnop; - - (void) gethostbyname_r(name, he, buffer, buflen, &h_errnop) - +return readline (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - $as_echo "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h - - -$as_echo "#define HAVE_GETHOSTBYNAME_R_5_ARG 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_readline_readline=yes else + ac_cv_lib_readline_readline=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_readline" >&5 +$as_echo "$ac_cv_lib_readline_readline" >&6; } +if test "x$ac_cv_lib_readline_readline" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking gethostbyname_r with 3 args" >&5 -$as_echo_n "checking gethostbyname_r with 3 args... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -# include <netdb.h> + LIBREADLINE=readline + READLINE_CFLAGS=${LIBREADLINE_CFLAGS-""} + READLINE_LIBS=${LIBREADLINE_LIBS-"-lreadline"} -int -main () -{ +else + with_readline=no +fi - char *name; - struct hostent *he; - struct hostent_data data; - (void) gethostbyname_r(name, he, &data); +else + with_readline=no +fi - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +done - $as_echo "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS -$as_echo "#define HAVE_GETHOSTBYNAME_R_3_ARG 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } else + LIBREADLINE_CFLAGS=$pkg_cv_LIBREADLINE_CFLAGS + LIBREADLINE_LIBS=$pkg_cv_LIBREADLINE_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + LIBREADLINE=readline + READLINE_CFLAGS=$LIBREADLINE_CFLAGS + READLINE_LIBS=$LIBREADLINE_LIBS fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS=$OLD_CFLAGS +if test "x$with_readline" = xedit; then : -else - for ac_func in gethostbyname -do : - ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" -if test "x$ac_cv_func_gethostbyname" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_GETHOSTBYNAME 1 -_ACEOF +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBEDIT" >&5 +$as_echo_n "checking for LIBEDIT... " >&6; } +if test -n "$LIBEDIT_CFLAGS"; then + pkg_cv_LIBEDIT_CFLAGS="$LIBEDIT_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libedit\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libedit") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBEDIT_CFLAGS=`$PKG_CONFIG --cflags "libedit" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes fi -done - - + else + pkg_failed=untried +fi +if test -n "$LIBEDIT_LIBS"; then + pkg_cv_LIBEDIT_LIBS="$LIBEDIT_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libedit\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libedit") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBEDIT_LIBS=`$PKG_CONFIG --libs "libedit" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried fi +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + LIBEDIT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libedit" 2>&1` + else + LIBEDIT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libedit" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$LIBEDIT_PKG_ERRORS" >&5 + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS -# checks for system services -# (none yet) -# Linux requires this for correct f.p. operations -ac_fn_c_check_func "$LINENO" "__fpu_control" "ac_cv_func___fpu_control" -if test "x$ac_cv_func___fpu_control" = xyes; then : + CPPFLAGS="$CPPFLAGS $LIBEDIT_CFLAGS" + LDFLAGS="$LDFLAGS $LIBEDIT_LIBS" + for ac_header in editline/readline.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "editline/readline.h" "ac_cv_header_editline_readline_h" "$ac_includes_default" +if test "x$ac_cv_header_editline_readline_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_EDITLINE_READLINE_H 1 +_ACEOF -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __fpu_control in -lieee" >&5 -$as_echo_n "checking for __fpu_control in -lieee... " >&6; } -if ${ac_cv_lib_ieee___fpu_control+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for readline in -ledit" >&5 +$as_echo_n "checking for readline in -ledit... " >&6; } +if ${ac_cv_lib_edit_readline+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lieee $LIBS" +LIBS="-ledit $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -18674,1214 +22166,895 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char __fpu_control (); +char readline (); int main () { -return __fpu_control (); +return readline (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_ieee___fpu_control=yes + ac_cv_lib_edit_readline=yes else - ac_cv_lib_ieee___fpu_control=no + ac_cv_lib_edit_readline=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ieee___fpu_control" >&5 -$as_echo "$ac_cv_lib_ieee___fpu_control" >&6; } -if test "x$ac_cv_lib_ieee___fpu_control" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBIEEE 1 -_ACEOF - - LIBS="-lieee $LIBS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_edit_readline" >&5 +$as_echo "$ac_cv_lib_edit_readline" >&6; } +if test "x$ac_cv_lib_edit_readline" = xyes; then : -fi + LIBREADLINE=edit + $as_echo "#define WITH_EDITLINE 1" >>confdefs.h + READLINE_CFLAGS=${LIBEDIT_CFLAGS-""} + READLINE_LIBS=${LIBEDIT_LIBS-"-ledit"} +else + with_readline=no fi -# check for --with-libm=... - -case $ac_sys_system in -Darwin) ;; -*) LIBM=-lm -esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-libm=STRING" >&5 -$as_echo_n "checking for --with-libm=STRING... " >&6; } - -# Check whether --with-libm was given. -if test "${with_libm+set}" = set; then : - withval=$with_libm; -if test "$withval" = no -then LIBM= - { $as_echo "$as_me:${as_lineno-$LINENO}: result: force LIBM empty" >&5 -$as_echo "force LIBM empty" >&6; } -elif test "$withval" != yes -then LIBM=$withval - { $as_echo "$as_me:${as_lineno-$LINENO}: result: set LIBM=\"$withval\"" >&5 -$as_echo "set LIBM=\"$withval\"" >&6; } -else as_fn_error $? "proper usage is --with-libm=STRING" "$LINENO" 5 -fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: default LIBM=\"$LIBM\"" >&5 -$as_echo "default LIBM=\"$LIBM\"" >&6; } + with_readline=no fi +done -# check for --with-libc=... -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-libc=STRING" >&5 -$as_echo_n "checking for --with-libc=STRING... " >&6; } +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS -# Check whether --with-libc was given. -if test "${with_libc+set}" = set; then : - withval=$with_libc; -if test "$withval" = no -then LIBC= - { $as_echo "$as_me:${as_lineno-$LINENO}: result: force LIBC empty" >&5 -$as_echo "force LIBC empty" >&6; } -elif test "$withval" != yes -then LIBC=$withval - { $as_echo "$as_me:${as_lineno-$LINENO}: result: set LIBC=\"$withval\"" >&5 -$as_echo "set LIBC=\"$withval\"" >&6; } -else as_fn_error $? "proper usage is --with-libc=STRING" "$LINENO" 5 -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: default LIBC=\"$LIBC\"" >&5 -$as_echo "default LIBC=\"$LIBC\"" >&6; } -fi -# ************************************** -# * Check for gcc x64 inline assembler * -# ************************************** +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for x64 gcc inline assembler" >&5 -$as_echo_n "checking for x64 gcc inline assembler... " >&6; } -if ${ac_cv_gcc_asm_for_x64+:} false; then : + CPPFLAGS="$CPPFLAGS $LIBEDIT_CFLAGS" + LDFLAGS="$LDFLAGS $LIBEDIT_LIBS" + for ac_header in editline/readline.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "editline/readline.h" "ac_cv_header_editline_readline_h" "$ac_includes_default" +if test "x$ac_cv_header_editline_readline_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_EDITLINE_READLINE_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for readline in -ledit" >&5 +$as_echo_n "checking for readline in -ledit... " >&6; } +if ${ac_cv_lib_edit_readline+:} false; then : $as_echo_n "(cached) " >&6 else - + ac_check_lib_save_LIBS=$LIBS +LIBS="-ledit $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char readline (); int main () { - - __asm__ __volatile__ ("movq %rcx, %rax"); - +return readline (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_gcc_asm_for_x64=yes + ac_cv_lib_edit_readline=yes else - ac_cv_gcc_asm_for_x64=no + ac_cv_lib_edit_readline=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - +LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gcc_asm_for_x64" >&5 -$as_echo "$ac_cv_gcc_asm_for_x64" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_edit_readline" >&5 +$as_echo "$ac_cv_lib_edit_readline" >&6; } +if test "x$ac_cv_lib_edit_readline" = xyes; then : -if test "x$ac_cv_gcc_asm_for_x64" = xyes; then : - - -$as_echo "#define HAVE_GCC_ASM_FOR_X64 1" >>confdefs.h + LIBREADLINE=edit + $as_echo "#define WITH_EDITLINE 1" >>confdefs.h + READLINE_CFLAGS=${LIBEDIT_CFLAGS-""} + READLINE_LIBS=${LIBEDIT_LIBS-"-ledit"} +else + with_readline=no fi -# ************************************************** -# * Check for various properties of floating point * -# ************************************************** -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether float word ordering is bigendian" >&5 -$as_echo_n "checking whether float word ordering is bigendian... " >&6; } -if ${ax_cv_c_float_words_bigendian+:} false; then : - $as_echo_n "(cached) " >&6 else + with_readline=no +fi +done -ax_cv_c_float_words_bigendian=unknown -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS -double d = 90904234967036810337470478905505011476211692735615632014797120844053488865816695273723469097858056257517020191247487429516932130503560650002327564517570778480236724525140520121371739201496540132640109977779420565776568942592.0; +else + LIBEDIT_CFLAGS=$pkg_cv_LIBEDIT_CFLAGS + LIBEDIT_LIBS=$pkg_cv_LIBEDIT_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : + $as_echo "#define WITH_EDITLINE 1" >>confdefs.h + LIBREADLINE=edit + READLINE_CFLAGS=$LIBEDIT_CFLAGS + READLINE_LIBS=$LIBEDIT_LIBS -if grep noonsees conftest.$ac_objext >/dev/null ; then - ax_cv_c_float_words_bigendian=yes fi -if grep seesnoon conftest.$ac_objext >/dev/null ; then - if test "$ax_cv_c_float_words_bigendian" = unknown; then - ax_cv_c_float_words_bigendian=no - else - ax_cv_c_float_words_bigendian=unknown - fi + fi +READLINE_CFLAGS=$(echo $READLINE_CFLAGS | sed 's/-D_XOPEN_SOURCE=600//g') + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link readline" >&5 +$as_echo_n "checking how to link readline... " >&6; } +if test "x$with_readline" = xno; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_readline (CFLAGS: $READLINE_CFLAGS, LIBS: $READLINE_LIBS)" >&5 +$as_echo "$with_readline (CFLAGS: $READLINE_CFLAGS, LIBS: $READLINE_LIBS)" >&6; } + + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS + + + CPPFLAGS="$CPPFLAGS $READLINE_CFLAGS" + LIBS="$READLINE_LIBS $LIBS" + LIBS_SAVE=$LIBS -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_c_float_words_bigendian" >&5 -$as_echo "$ax_cv_c_float_words_bigendian" >&6; } -case $ax_cv_c_float_words_bigendian in - yes) -$as_echo "#define FLOAT_WORDS_BIGENDIAN 1" >>confdefs.h - ;; - no) - ;; - *) - as_fn_error $? " + # check for readline 2.2 + ac_fn_c_check_decl "$LINENO" "rl_completion_append_character" "ac_cv_have_decl_rl_completion_append_character" " + #include <stdio.h> /* Must be first for Gnu Readline */ + #ifdef WITH_EDITLINE + # include <editline/readline.h> + #else + # include <readline/readline.h> + # include <readline/history.h> + #endif -Unknown float word ordering. You need to manually preset -ax_cv_c_float_words_bigendian=no (or yes) according to your system. +" +if test "x$ac_cv_have_decl_rl_completion_append_character" = xyes; then : - " "$LINENO" 5 ;; -esac +$as_echo "#define HAVE_RL_COMPLETION_APPEND_CHARACTER 1" >>confdefs.h -if test "$ax_cv_c_float_words_bigendian" = "yes" -then -$as_echo "#define DOUBLE_IS_BIG_ENDIAN_IEEE754 1" >>confdefs.h +fi -elif test "$ax_cv_c_float_words_bigendian" = "no" -then -$as_echo "#define DOUBLE_IS_LITTLE_ENDIAN_IEEE754 1" >>confdefs.h + ac_fn_c_check_decl "$LINENO" "rl_completion_suppress_append" "ac_cv_have_decl_rl_completion_suppress_append" " + #include <stdio.h> /* Must be first for Gnu Readline */ + #ifdef WITH_EDITLINE + # include <editline/readline.h> + #else + # include <readline/readline.h> + # include <readline/history.h> + #endif -else - # Some ARM platforms use a mixed-endian representation for doubles. - # While Python doesn't currently have full support for these platforms - # (see e.g., issue 1762561), we can at least make sure that float <-> string - # conversions work. - # FLOAT_WORDS_BIGENDIAN doesnt actually detect this case, but if it's not big - # or little, then it must be this? +" +if test "x$ac_cv_have_decl_rl_completion_suppress_append" = xyes; then : -$as_echo "#define DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 1" >>confdefs.h -fi +$as_echo "#define HAVE_RL_COMPLETION_SUPPRESS_APPEND 1" >>confdefs.h -# The short float repr introduced in Python 3.1 requires the -# correctly-rounded string <-> double conversion functions from -# Python/dtoa.c, which in turn require that the FPU uses 53-bit -# rounding; this is a problem on x86, where the x87 FPU has a default -# rounding precision of 64 bits. For gcc/x86, we can fix this by -# using inline assembler to get and set the x87 FPU control word. -# This inline assembler syntax may also work for suncc and icc, -# so we try it on all platforms. +fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can use gcc inline assembler to get and set x87 control word" >&5 -$as_echo_n "checking whether we can use gcc inline assembler to get and set x87 control word... " >&6; } -if ${ac_cv_gcc_asm_for_x87+:} false; then : + + # check for readline 4.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_pre_input_hook in -l$LIBREADLINE" >&5 +$as_echo_n "checking for rl_pre_input_hook in -l$LIBREADLINE... " >&6; } +if ${ac_cv_readline_rl_pre_input_hook+:} false; then : $as_echo_n "(cached) " >&6 else -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ + #include <stdio.h> /* Must be first for Gnu Readline */ + #ifdef WITH_EDITLINE + # include <editline/readline.h> + #else + # include <readline/readline.h> + # include <readline/history.h> + #endif + int main () { - - unsigned short cw; - __asm__ __volatile__ ("fnstcw %0" : "=m" (cw)); - __asm__ __volatile__ ("fldcw %0" : : "m" (cw)); - +void *x = rl_pre_input_hook ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_gcc_asm_for_x87=yes + ac_cv_readline_rl_pre_input_hook=yes else - ac_cv_gcc_asm_for_x87=no + ac_cv_readline_rl_pre_input_hook=no + fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gcc_asm_for_x87" >&5 -$as_echo "$ac_cv_gcc_asm_for_x87" >&6; } -if test "x$ac_cv_gcc_asm_for_x87" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_readline_rl_pre_input_hook" >&5 +$as_echo "$ac_cv_readline_rl_pre_input_hook" >&6; } + if test "x$ac_cv_readline_rl_pre_input_hook" = xyes; then : -$as_echo "#define HAVE_GCC_ASM_FOR_X87 1" >>confdefs.h +$as_echo "#define HAVE_RL_PRE_INPUT_HOOK 1" >>confdefs.h fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can use gcc inline assembler to get and set mc68881 fpcr" >&5 -$as_echo_n "checking whether we can use gcc inline assembler to get and set mc68881 fpcr... " >&6; } -if ${ac_cv_gcc_asm_for_mc68881+:} false; then : + # also in 4.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_completion_display_matches_hook in -l$LIBREADLINE" >&5 +$as_echo_n "checking for rl_completion_display_matches_hook in -l$LIBREADLINE... " >&6; } +if ${ac_cv_readline_rl_completion_display_matches_hook+:} false; then : $as_echo_n "(cached) " >&6 else -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ + #include <stdio.h> /* Must be first for Gnu Readline */ + #ifdef WITH_EDITLINE + # include <editline/readline.h> + #else + # include <readline/readline.h> + # include <readline/history.h> + #endif + int main () { - - unsigned int fpcr; - __asm__ __volatile__ ("fmove.l %%fpcr,%0" : "=g" (fpcr)); - __asm__ __volatile__ ("fmove.l %0,%%fpcr" : : "g" (fpcr)); - +void *x = rl_completion_display_matches_hook ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_gcc_asm_for_mc68881=yes + ac_cv_readline_rl_completion_display_matches_hook=yes else - ac_cv_gcc_asm_for_mc68881=no + ac_cv_readline_rl_completion_display_matches_hook=no + fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gcc_asm_for_mc68881" >&5 -$as_echo "$ac_cv_gcc_asm_for_mc68881" >&6; } -if test "x$ac_cv_gcc_asm_for_mc68881" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_readline_rl_completion_display_matches_hook" >&5 +$as_echo "$ac_cv_readline_rl_completion_display_matches_hook" >&6; } + if test "x$ac_cv_readline_rl_completion_display_matches_hook" = xyes; then : -$as_echo "#define HAVE_GCC_ASM_FOR_MC68881 1" >>confdefs.h +$as_echo "#define HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK 1" >>confdefs.h fi -# Detect whether system arithmetic is subject to x87-style double -# rounding issues. The result of this test has little meaning on non -# IEEE 754 platforms. On IEEE 754, test should return 1 if rounding -# mode is round-to-nearest and double rounding issues are present, and -# 0 otherwise. See http://bugs.python.org/issue2937 for more info. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for x87-style double rounding" >&5 -$as_echo_n "checking for x87-style double rounding... " >&6; } -if ${ac_cv_x87_double_rounding+:} false; then : + # also in 4.0, but not in editline + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_resize_terminal in -l$LIBREADLINE" >&5 +$as_echo_n "checking for rl_resize_terminal in -l$LIBREADLINE... " >&6; } +if ${ac_cv_readline_rl_resize_terminal+:} false; then : $as_echo_n "(cached) " >&6 else -# $BASECFLAGS may affect the result -ac_save_cc="$CC" -CC="$CC $BASECFLAGS" -if test "$cross_compiling" = yes; then : - ac_cv_x87_double_rounding=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <stdlib.h> -#include <math.h> -int main() { - volatile double x, y, z; - /* 1./(1-2**-53) -> 1+2**-52 (correct), 1.0 (double rounding) */ - x = 0.99999999999999989; /* 1-2**-53 */ - y = 1./x; - if (y != 1.) - exit(0); - /* 1e16+2.99999 -> 1e16+2. (correct), 1e16+4. (double rounding) */ - x = 1e16; - y = 2.99999; - z = x + y; - if (z != 1e16+4.) - exit(0); - /* both tests show evidence of double rounding */ - exit(1); -} + #include <stdio.h> /* Must be first for Gnu Readline */ + #ifdef WITH_EDITLINE + # include <editline/readline.h> + #else + # include <readline/readline.h> + # include <readline/history.h> + #endif +int +main () +{ +void *x = rl_resize_terminal + ; + return 0; +} _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_x87_double_rounding=no +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_readline_rl_resize_terminal=yes else - ac_cv_x87_double_rounding=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -CC="$ac_save_cc" + ac_cv_readline_rl_resize_terminal=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_x87_double_rounding" >&5 -$as_echo "$ac_cv_x87_double_rounding" >&6; } - -if test "x$ac_cv_x87_double_rounding" = xyes; then : - - -$as_echo "#define X87_DOUBLE_ROUNDING 1" >>confdefs.h - +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_readline_rl_resize_terminal" >&5 +$as_echo "$ac_cv_readline_rl_resize_terminal" >&6; } + if test "x$ac_cv_readline_rl_resize_terminal" = xyes; then : -# ************************************ -# * Check for mathematical functions * -# ************************************ - -LIBS_SAVE=$LIBS -LIBS="$LIBS $LIBM" -for ac_func in acosh asinh atanh erf erfc expm1 log1p log2 -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF +$as_echo "#define HAVE_RL_RESIZE_TERMINAL 1" >>confdefs.h -else - as_fn_error $? "Python requires C99 compatible libm" "$LINENO" 5 fi -done -LIBS=$LIBS_SAVE - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether POSIX semaphores are enabled" >&5 -$as_echo_n "checking whether POSIX semaphores are enabled... " >&6; } -if ${ac_cv_posix_semaphores_enabled+:} false; then : + # check for readline 4.2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_completion_matches in -l$LIBREADLINE" >&5 +$as_echo_n "checking for rl_completion_matches in -l$LIBREADLINE... " >&6; } +if ${ac_cv_readline_rl_completion_matches+:} false; then : $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then : - ac_cv_posix_semaphores_enabled=yes -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - #include <unistd.h> - #include <fcntl.h> - #include <stdio.h> - #include <semaphore.h> - #include <sys/stat.h> - - int main(void) { - sem_t *a = sem_open("/autoconf", O_CREAT, S_IRUSR|S_IWUSR, 0); - if (a == SEM_FAILED) { - perror("sem_open"); - return 1; - } - sem_close(a); - sem_unlink("/autoconf"); - return 0; - } - - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_posix_semaphores_enabled=yes -else - ac_cv_posix_semaphores_enabled=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_posix_semaphores_enabled" >&5 -$as_echo "$ac_cv_posix_semaphores_enabled" >&6; } -if test "x$ac_cv_posix_semaphores_enabled" = xno; then : - - -$as_echo "#define POSIX_SEMAPHORES_NOT_ENABLED 1" >>confdefs.h - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken sem_getvalue" >&5 -$as_echo_n "checking for broken sem_getvalue... " >&6; } -if ${ac_cv_broken_sem_getvalue+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_broken_sem_getvalue=yes -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ + #include <stdio.h> /* Must be first for Gnu Readline */ + #ifdef WITH_EDITLINE + # include <editline/readline.h> + #else + # include <readline/readline.h> + # include <readline/history.h> + #endif - #include <unistd.h> - #include <fcntl.h> - #include <stdio.h> - #include <semaphore.h> - #include <sys/stat.h> - - int main(void){ - sem_t *a = sem_open("/autocftw", O_CREAT, S_IRUSR|S_IWUSR, 0); - int count; - int res; - if(a==SEM_FAILED){ - perror("sem_open"); - return 1; - - } - res = sem_getvalue(a, &count); - sem_close(a); - sem_unlink("/autocftw"); - return res==-1 ? 1 : 0; - } - - +int +main () +{ +void *x = rl_completion_matches + ; + return 0; +} _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_broken_sem_getvalue=no +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_readline_rl_completion_matches=yes else - ac_cv_broken_sem_getvalue=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi + ac_cv_readline_rl_completion_matches=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_sem_getvalue" >&5 -$as_echo "$ac_cv_broken_sem_getvalue" >&6; } -if test "x$ac_cv_broken_sem_getvalue" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_readline_rl_completion_matches" >&5 +$as_echo "$ac_cv_readline_rl_completion_matches" >&6; } + if test "x$ac_cv_readline_rl_completion_matches" = xyes; then : -$as_echo "#define HAVE_BROKEN_SEM_GETVALUE 1" >>confdefs.h +$as_echo "#define HAVE_RL_COMPLETION_MATCHES 1" >>confdefs.h fi -ac_fn_c_check_decl "$LINENO" "RTLD_LAZY" "ac_cv_have_decl_RTLD_LAZY" "#include <dlfcn.h> -" -if test "x$ac_cv_have_decl_RTLD_LAZY" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi + # also in readline 4.2 + ac_fn_c_check_decl "$LINENO" "rl_catch_signals" "ac_cv_have_decl_rl_catch_signals" " + #include <stdio.h> /* Must be first for Gnu Readline */ + #ifdef WITH_EDITLINE + # include <editline/readline.h> + #else + # include <readline/readline.h> + # include <readline/history.h> + #endif -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_RTLD_LAZY $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "RTLD_NOW" "ac_cv_have_decl_RTLD_NOW" "#include <dlfcn.h> " -if test "x$ac_cv_have_decl_RTLD_NOW" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi +if test "x$ac_cv_have_decl_rl_catch_signals" = xyes; then : -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_RTLD_NOW $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "RTLD_GLOBAL" "ac_cv_have_decl_RTLD_GLOBAL" "#include <dlfcn.h> -" -if test "x$ac_cv_have_decl_RTLD_GLOBAL" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_RTLD_GLOBAL $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "RTLD_LOCAL" "ac_cv_have_decl_RTLD_LOCAL" "#include <dlfcn.h> -" -if test "x$ac_cv_have_decl_RTLD_LOCAL" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi +$as_echo "#define HAVE_RL_CATCH_SIGNAL 1" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_RTLD_LOCAL $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "RTLD_NODELETE" "ac_cv_have_decl_RTLD_NODELETE" "#include <dlfcn.h> -" -if test "x$ac_cv_have_decl_RTLD_NODELETE" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_RTLD_NODELETE $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "RTLD_NOLOAD" "ac_cv_have_decl_RTLD_NOLOAD" "#include <dlfcn.h> -" -if test "x$ac_cv_have_decl_RTLD_NOLOAD" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_RTLD_NOLOAD $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "RTLD_DEEPBIND" "ac_cv_have_decl_RTLD_DEEPBIND" "#include <dlfcn.h> -" -if test "x$ac_cv_have_decl_RTLD_DEEPBIND" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_RTLD_DEEPBIND $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "RTLD_MEMBER" "ac_cv_have_decl_RTLD_MEMBER" "#include <dlfcn.h> -" -if test "x$ac_cv_have_decl_RTLD_MEMBER" = xyes; then : - ac_have_decl=1 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for append_history in -l$LIBREADLINE" >&5 +$as_echo_n "checking for append_history in -l$LIBREADLINE... " >&6; } +if ${ac_cv_readline_append_history+:} false; then : + $as_echo_n "(cached) " >&6 else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_RTLD_MEMBER $ac_have_decl -_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -# determine what size digit to use for Python's longs -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking digit size for Python's longs" >&5 -$as_echo_n "checking digit size for Python's longs... " >&6; } -# Check whether --enable-big-digits was given. -if test "${enable_big_digits+set}" = set; then : - enableval=$enable_big_digits; case $enable_big_digits in -yes) - enable_big_digits=30 ;; -no) - enable_big_digits=15 ;; -15|30) - ;; -*) - as_fn_error $? "bad value $enable_big_digits for --enable-big-digits; value should be 15 or 30" "$LINENO" 5 ;; -esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_big_digits" >&5 -$as_echo "$enable_big_digits" >&6; } + #include <stdio.h> /* Must be first for Gnu Readline */ + #ifdef WITH_EDITLINE + # include <editline/readline.h> + #else + # include <readline/readline.h> + # include <readline/history.h> + #endif -cat >>confdefs.h <<_ACEOF -#define PYLONG_BITS_IN_DIGIT $enable_big_digits +int +main () +{ +void *x = append_history + ; + return 0; +} _ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_readline_append_history=yes +else + ac_cv_readline_append_history=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no value specified" >&5 -$as_echo "no value specified" >&6; } fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_readline_append_history" >&5 +$as_echo "$ac_cv_readline_append_history" >&6; } + if test "x$ac_cv_readline_append_history" = xyes; then : -# check for wchar.h -ac_fn_c_check_header_mongrel "$LINENO" "wchar.h" "ac_cv_header_wchar_h" "$ac_includes_default" -if test "x$ac_cv_header_wchar_h" = xyes; then : +$as_echo "#define HAVE_RL_APPEND_HISTORY 1" >>confdefs.h -$as_echo "#define HAVE_WCHAR_H 1" >>confdefs.h +fi - wchar_h="yes" -else - wchar_h="no" -fi +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS +fi -# determine wchar_t size -if test "$wchar_h" = yes -then - # The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of wchar_t" >&5 -$as_echo_n "checking size of wchar_t... " >&6; } -if ${ac_cv_sizeof_wchar_t+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken nice()" >&5 +$as_echo_n "checking for broken nice()... " >&6; } +if ${ac_cv_broken_nice+:} false; then : $as_echo_n "(cached) " >&6 else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (wchar_t))" "ac_cv_sizeof_wchar_t" "#include <wchar.h> -"; then : +if test "$cross_compiling" = yes; then : + ac_cv_broken_nice=no else - if test "$ac_cv_type_wchar_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (wchar_t) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_wchar_t=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_wchar_t" >&5 -$as_echo "$ac_cv_sizeof_wchar_t" >&6; } - + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <stdlib.h> +#include <unistd.h> +int main() +{ + int val1 = nice(1); + if (val1 != -1 && val1 == nice(2)) + exit(0); + exit(1); +} -cat >>confdefs.h <<_ACEOF -#define SIZEOF_WCHAR_T $ac_cv_sizeof_wchar_t _ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_broken_nice=yes +else + ac_cv_broken_nice=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_nice" >&5 +$as_echo "$ac_cv_broken_nice" >&6; } +if test "$ac_cv_broken_nice" = yes +then +$as_echo "#define HAVE_BROKEN_NICE 1" >>confdefs.h fi -# check whether wchar_t is signed or not -if test "$wchar_h" = yes -then - # check whether wchar_t is signed or not - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wchar_t is signed" >&5 -$as_echo_n "checking whether wchar_t is signed... " >&6; } -if ${ac_cv_wchar_t_signed+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken poll()" >&5 +$as_echo_n "checking for broken poll()... " >&6; } +if ${ac_cv_broken_poll+:} false; then : $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then : - ac_cv_wchar_t_signed=yes + ac_cv_broken_poll=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - #include <wchar.h> - int main() - { - /* Success: exit code 0 */ - return ((((wchar_t) -1) < ((wchar_t) 0)) ? 0 : 1); - } +#include <poll.h> +#include <unistd.h> + +int main() +{ + struct pollfd poll_struct = { 42, POLLIN|POLLPRI|POLLOUT, 0 }; + int poll_test; + + close (42); + + poll_test = poll(&poll_struct, 1, 0); + if (poll_test < 0) + return 0; + else if (poll_test == 0 && poll_struct.revents != POLLNVAL) + return 0; + else + return 1; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : - ac_cv_wchar_t_signed=yes + ac_cv_broken_poll=yes else - ac_cv_wchar_t_signed=no + ac_cv_broken_poll=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_wchar_t_signed" >&5 -$as_echo "$ac_cv_wchar_t_signed" >&6; } -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wchar_t is usable" >&5 -$as_echo_n "checking whether wchar_t is usable... " >&6; } -# wchar_t is only usable if it maps to an unsigned type -if test "$ac_cv_sizeof_wchar_t" -ge 2 \ - -a "$ac_cv_wchar_t_signed" = "no" +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_poll" >&5 +$as_echo "$ac_cv_broken_poll" >&6; } +if test "$ac_cv_broken_poll" = yes then -$as_echo "#define HAVE_USABLE_WCHAR_T 1" >>confdefs.h +$as_echo "#define HAVE_BROKEN_POLL 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } fi -case $ac_sys_system/$ac_sys_release in -SunOS/*) - if test -f /etc/os-release; then - OS_NAME=$(awk -F= '/^NAME=/ {print substr($2,2,length($2)-2)}' /etc/os-release) - if test "x$OS_NAME" = "xOracle Solaris"; then - # bpo-43667: In Oracle Solaris, the internal form of wchar_t in - # non-Unicode locales is not Unicode and hence cannot be used directly. - # https://docs.oracle.com/cd/E37838_01/html/E61053/gmwke.html - -$as_echo "#define HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION 1" >>confdefs.h - - fi - fi - ;; -esac - -# check for endianness - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 -$as_echo_n "checking whether byte ordering is bigendian... " >&6; } -if ${ac_cv_c_bigendian+:} false; then : +# check tzset(3) exists and works like we expect it to +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working tzset()" >&5 +$as_echo_n "checking for working tzset()... " >&6; } +if ${ac_cv_working_tzset+:} false; then : $as_echo_n "(cached) " >&6 else - ac_cv_c_bigendian=unknown - # See if we're dealing with a universal compiler. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + +if test "$cross_compiling" = yes; then : + ac_cv_working_tzset=no +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#ifndef __APPLE_CC__ - not a universal capable compiler - #endif - typedef int dummy; -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +#include <stdlib.h> +#include <time.h> +#include <string.h> - # Check for potential -arch flags. It is not universal unless - # there are at least two -arch flags with different values. - ac_arch= - ac_prev= - for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do - if test -n "$ac_prev"; then - case $ac_word in - i?86 | x86_64 | ppc | ppc64) - if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then - ac_arch=$ac_word - else - ac_cv_c_bigendian=universal - break - fi - ;; - esac - ac_prev= - elif test "x$ac_word" = "x-arch"; then - ac_prev=arch - fi - done -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test $ac_cv_c_bigendian = unknown; then - # See if sys/param.h defines the BYTE_ORDER macro. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <sys/types.h> - #include <sys/param.h> +#if HAVE_TZNAME +extern char *tzname[]; +#endif -int -main () +int main() { -#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ - && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ - && LITTLE_ENDIAN) - bogus endian macros - #endif + /* Note that we need to ensure that not only does tzset(3) + do 'something' with localtime, but it works as documented + in the library reference and as expected by the test suite. + This includes making sure that tzname is set properly if + tm->tm_zone does not exist since it is the alternative way + of getting timezone info. - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <sys/types.h> - #include <sys/param.h> + Red Hat 6.2 doesn't understand the southern hemisphere + after New Year's Day. + */ -int -main () -{ -#if BYTE_ORDER != BIG_ENDIAN - not big endian - #endif + time_t groundhogday = 1044144000; /* GMT-based */ + time_t midyear = groundhogday + (365 * 24 * 3600 / 2); - ; - return 0; + putenv("TZ=UTC+0"); + tzset(); + if (localtime(&groundhogday)->tm_hour != 0) + exit(1); +#if HAVE_TZNAME + /* For UTC, tzname[1] is sometimes "", sometimes " " */ + if (strcmp(tzname[0], "UTC") || + (tzname[1][0] != 0 && tzname[1][0] != ' ')) + exit(1); +#endif + + putenv("TZ=EST+5EDT,M4.1.0,M10.5.0"); + tzset(); + if (localtime(&groundhogday)->tm_hour != 19) + exit(1); +#if HAVE_TZNAME + if (strcmp(tzname[0], "EST") || strcmp(tzname[1], "EDT")) + exit(1); +#endif + + putenv("TZ=AEST-10AEDT-11,M10.5.0,M3.5.0"); + tzset(); + if (localtime(&groundhogday)->tm_hour != 11) + exit(1); +#if HAVE_TZNAME + if (strcmp(tzname[0], "AEST") || strcmp(tzname[1], "AEDT")) + exit(1); +#endif + +#if HAVE_STRUCT_TM_TM_ZONE + if (strcmp(localtime(&groundhogday)->tm_zone, "AEDT")) + exit(1); + if (strcmp(localtime(&midyear)->tm_zone, "AEST")) + exit(1); +#endif + + exit(0); } + _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_working_tzset=yes else - ac_cv_c_bigendian=no + ac_cv_working_tzset=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <limits.h> -int -main () -{ -#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) - bogus endian macros - #endif +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_tzset" >&5 +$as_echo "$ac_cv_working_tzset" >&6; } +if test "$ac_cv_working_tzset" = yes +then - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to _BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <limits.h> +$as_echo "#define HAVE_WORKING_TZSET 1" >>confdefs.h -int -main () -{ -#ifndef _BIG_ENDIAN - not big endian - #endif +fi - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes +# Look for subsecond timestamps in struct stat +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for tv_nsec in struct stat" >&5 +$as_echo_n "checking for tv_nsec in struct stat... " >&6; } +if ${ac_cv_stat_tv_nsec+:} false; then : + $as_echo_n "(cached) " >&6 else - ac_cv_c_bigendian=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # Compile a test program. - if test "$cross_compiling" = yes; then : - # Try to guess by grepping values from an object file. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -short int ascii_mm[] = - { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; - short int ascii_ii[] = - { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; - int use_ascii (int i) { - return ascii_mm[i] + ascii_ii[i]; - } - short int ebcdic_ii[] = - { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; - short int ebcdic_mm[] = - { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; - int use_ebcdic (int i) { - return ebcdic_mm[i] + ebcdic_ii[i]; - } - extern int foo; - +#include <sys/stat.h> int main () { -return use_ascii (foo) == use_ebcdic (foo); + +struct stat st; +st.st_mtim.tv_nsec = 1; + ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then - ac_cv_c_bigendian=yes - fi - if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then - if test "$ac_cv_c_bigendian" = unknown; then - ac_cv_c_bigendian=no - else - # finding both strings is unlikely to happen, but who knows? - ac_cv_c_bigendian=unknown - fi - fi + ac_cv_stat_tv_nsec=yes +else + ac_cv_stat_tv_nsec=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_stat_tv_nsec" >&5 +$as_echo "$ac_cv_stat_tv_nsec" >&6; } +if test "$ac_cv_stat_tv_nsec" = yes +then + +$as_echo "#define HAVE_STAT_TV_NSEC 1" >>confdefs.h + +fi + +# Look for BSD style subsecond timestamps in struct stat +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for tv_nsec2 in struct stat" >&5 +$as_echo_n "checking for tv_nsec2 in struct stat... " >&6; } +if ${ac_cv_stat_tv_nsec2+:} false; then : + $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -$ac_includes_default +#include <sys/stat.h> int main () { - /* Are we little or big endian? From Harbison&Steele. */ - union - { - long int l; - char c[sizeof (long int)]; - } u; - u.l = 1; - return u.c[sizeof (long int) - 1] == 1; +struct stat st; +st.st_mtimespec.tv_nsec = 1; ; return 0; } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_c_bigendian=no +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_stat_tv_nsec2=yes else - ac_cv_c_bigendian=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_cv_stat_tv_nsec2=no fi - - fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 -$as_echo "$ac_cv_c_bigendian" >&6; } - case $ac_cv_c_bigendian in #( - yes) - $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h -;; #( - no) - ;; #( - universal) - -$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h - - ;; #( - *) - as_fn_error $? "unknown endianness - presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; - esac - - -# ABI version string for Python extension modules. This appears between the -# periods in shared library file names, e.g. foo.<SOABI>.so. It is calculated -# from the following attributes which affect the ABI of this Python build (in -# this order): -# -# * The Python implementation (always 'cpython-' for us) -# * The major and minor version numbers -# * --with-pydebug (adds a 'd') -# -# Thus for example, Python 3.2 built with wide unicode, pydebug, and pymalloc, -# would get a shared library ABI version tag of 'cpython-32dmu' and shared -# libraries would be named 'foo.cpython-32dmu.so'. -# -# In Python 3.2 and older, --with-wide-unicode added a 'u' flag. -# In Python 3.7 and older, --with-pymalloc added a 'm' flag. - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking ABIFLAGS" >&5 -$as_echo_n "checking ABIFLAGS... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ABIFLAGS" >&5 -$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} -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $SOABI" >&5 -$as_echo "$SOABI" >&6; } - -# 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 - - ALT_SOABI='cpython-'`echo $VERSION | tr -d .``echo $ABIFLAGS | tr -d d`${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET} +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_stat_tv_nsec2" >&5 +$as_echo "$ac_cv_stat_tv_nsec2" >&6; } +if test "$ac_cv_stat_tv_nsec2" = yes +then -cat >>confdefs.h <<_ACEOF -#define ALT_SOABI "${ALT_SOABI}" -_ACEOF +$as_echo "#define HAVE_STAT_TV_NSEC2 1" >>confdefs.h fi +have_curses=no +have_panel=no -EXT_SUFFIX=.${SOABI}${SHLIB_SUFFIX} - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking LDVERSION" >&5 -$as_echo_n "checking LDVERSION... " >&6; } -LDVERSION='$(VERSION)$(ABIFLAGS)' -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LDVERSION" >&5 -$as_echo "$LDVERSION" >&6; } -# On Android and Cygwin the shared libraries must be linked with libpython. +for ac_header in curses.h ncurses.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF -if test -n "$ANDROID_API_LEVEL" -o "$MACHDEP" = "cygwin"; then - LIBPYTHON="-lpython${VERSION}${ABIFLAGS}" -else - LIBPYTHON='' fi +done -BINLIBDEST='$(LIBDIR)/python$(VERSION)' - +if test "x$ac_cv_header_ncurses_h" = xyes; then : -# Check for --with-platlibdir -# /usr/$LIDIRNAME/python$VERSION + if test "$ac_sys_system" != "Darwin"; then -PLATLIBDIR="lib" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-platlibdir" >&5 -$as_echo_n "checking for --with-platlibdir... " >&6; } +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CURSES" >&5 +$as_echo_n "checking for CURSES... " >&6; } -# Check whether --with-platlibdir was given. -if test "${with_platlibdir+set}" = set; then : - withval=$with_platlibdir; -# ignore 3 options: -# --with-platlibdir -# --with-platlibdir= -# --without-platlibdir -if test -n "$withval" -a "$withval" != yes -a "$withval" != no -then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - PLATLIBDIR="$withval" - BINLIBDEST='${exec_prefix}/${PLATLIBDIR}/python$(VERSION)' -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi +if test -n "$CURSES_CFLAGS"; then + pkg_cv_CURSES_CFLAGS="$CURSES_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ncursesw\""; } >&5 + ($PKG_CONFIG --exists --print-errors "ncursesw") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CURSES_CFLAGS=`$PKG_CONFIG --cflags "ncursesw" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + pkg_failed=yes fi - - - - -if test x$PLATFORM_TRIPLET = x; then - LIBPL='$(prefix)'"/${PLATLIBDIR}/python${VERSION}/config-${LDVERSION}" -else - LIBPL='$(prefix)'"/${PLATLIBDIR}/python${VERSION}/config-${LDVERSION}-${PLATFORM_TRIPLET}" + else + pkg_failed=untried fi - - -# Check for --with-wheel-pkg-dir=PATH - -WHEEL_PKG_DIR="" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-wheel-pkg-dir" >&5 -$as_echo_n "checking for --with-wheel-pkg-dir... " >&6; } - -# Check whether --with-wheel-pkg-dir was given. -if test "${with_wheel_pkg_dir+set}" = set; then : - withval=$with_wheel_pkg_dir; -if test -n "$withval"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - WHEEL_PKG_DIR="$withval" +if test -n "$CURSES_LIBS"; then + pkg_cv_CURSES_LIBS="$CURSES_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ncursesw\""; } >&5 + ($PKG_CONFIG --exists --print-errors "ncursesw") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CURSES_LIBS=`$PKG_CONFIG --libs "ncursesw" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + pkg_failed=yes fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + else + pkg_failed=untried fi -# Check whether right shifting a negative integer extends the sign bit -# or fills with zeros (like the Cray J90, according to Tim Peters). -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether right shift extends the sign bit" >&5 -$as_echo_n "checking whether right shift extends the sign bit... " >&6; } -if ${ac_cv_rshift_extends_sign+:} false; then : - $as_echo_n "(cached) " >&6 -else - -if test "$cross_compiling" = yes; then : - ac_cv_rshift_extends_sign=yes -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int main() -{ - return (((-1)>>3 == -1) ? 0 : 1); -} +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_rshift_extends_sign=yes +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes else - ac_cv_rshift_extends_sign=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - + _pkg_short_errors_supported=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_rshift_extends_sign" >&5 -$as_echo "$ac_cv_rshift_extends_sign" >&6; } -if test "$ac_cv_rshift_extends_sign" = no -then - -$as_echo "#define SIGNED_RIGHT_SHIFT_ZERO_FILLS 1" >>confdefs.h + if test $_pkg_short_errors_supported = yes; then + CURSES_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "ncursesw" 2>&1` + else + CURSES_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "ncursesw" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CURSES_PKG_ERRORS" >&5 -fi -# check for getc_unlocked and related locking functions -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getc_unlocked() and friends" >&5 -$as_echo_n "checking for getc_unlocked() and friends... " >&6; } -if ${ac_cv_have_getc_unlocked+:} false; then : + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for initscr in -lncursesw" >&5 +$as_echo_n "checking for initscr in -lncursesw... " >&6; } +if ${ac_cv_lib_ncursesw_initscr+:} false; then : $as_echo_n "(cached) " >&6 else - + ac_check_lib_save_LIBS=$LIBS +LIBS="-lncursesw $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <stdio.h> + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char initscr (); int main () { - - FILE *f = fopen("/dev/null", "r"); - flockfile(f); - getc_unlocked(f); - funlockfile(f); - +return initscr (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_have_getc_unlocked=yes + ac_cv_lib_ncursesw_initscr=yes else - ac_cv_have_getc_unlocked=no + ac_cv_lib_ncursesw_initscr=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_getc_unlocked" >&5 -$as_echo "$ac_cv_have_getc_unlocked" >&6; } -if test "$ac_cv_have_getc_unlocked" = yes -then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncursesw_initscr" >&5 +$as_echo "$ac_cv_lib_ncursesw_initscr" >&6; } +if test "x$ac_cv_lib_ncursesw_initscr" = xyes; then : -$as_echo "#define HAVE_GETC_UNLOCKED 1" >>confdefs.h + $as_echo "#define HAVE_NCURSESW 1" >>confdefs.h + + have_curses=ncursesw + CURSES_CFLAGS=${CURSES_CFLAGS-""} + CURSES_LIBS=${CURSES_LIBS-"-lncursesw"} fi -# Check whether --with-readline was given. -if test "${with_readline+set}" = set; then : - withval=$with_readline; -else - with_readline=yes -fi +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS -# check where readline lives -py_cv_lib_readline=no -# save the value of LIBS so we don't actually link Python with readline -LIBS_no_readline=$LIBS -if test "$with_readline" != no; then - case "$with_readline" in - editline|edit) - LIBREADLINE=edit +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } -$as_echo "#define WITH_EDITLINE 1" >>confdefs.h + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS - ;; - yes|readline) - LIBREADLINE=readline - ;; - *) - as_fn_error $? "proper usage is --with(out)-readline[=editline]" "$LINENO" 5 - ;; - esac - # On some systems we need to link readline to a termcap compatible - # library. NOTE: Keep the precedence of listed libraries synchronised - # with setup.py. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link readline libs" >&5 -$as_echo_n "checking how to link readline libs... " >&6; } - for py_libtermcap in "" tinfo ncursesw ncurses curses termcap; do - if test -z "$py_libtermcap"; then - READLINE_LIBS="-l$LIBREADLINE" - else - READLINE_LIBS="-l$LIBREADLINE -l$py_libtermcap" - fi - LIBS="$READLINE_LIBS $LIBS_no_readline" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for initscr in -lncursesw" >&5 +$as_echo_n "checking for initscr in -lncursesw... " >&6; } +if ${ac_cv_lib_ncursesw_initscr+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lncursesw $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -19890,81 +23063,132 @@ $as_echo_n "checking how to link readline libs... " >&6; } #ifdef __cplusplus extern "C" #endif -char readline (); +char initscr (); int main () { -return readline (); +return initscr (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - py_cv_lib_readline=yes + ac_cv_lib_ncursesw_initscr=yes +else + ac_cv_lib_ncursesw_initscr=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - if test $py_cv_lib_readline = yes; then - break - fi - done +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncursesw_initscr" >&5 +$as_echo "$ac_cv_lib_ncursesw_initscr" >&6; } +if test "x$ac_cv_lib_ncursesw_initscr" = xyes; then : - # Uncomment this line if you want to use READLINE_LIBS in Makefile or scripts - #AC_SUBST([READLINE_LIBS]) - if test $py_cv_lib_readline = no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 -$as_echo "none" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $READLINE_LIBS" >&5 -$as_echo "$READLINE_LIBS" >&6; } + $as_echo "#define HAVE_NCURSESW 1" >>confdefs.h -$as_echo "#define HAVE_LIBREADLINE 1" >>confdefs.h + have_curses=ncursesw + CURSES_CFLAGS=${CURSES_CFLAGS-""} + CURSES_LIBS=${CURSES_LIBS-"-lncursesw"} - fi fi -if test "$py_cv_lib_readline" = yes; then - # check for readline 2.2 - ac_fn_c_check_decl "$LINENO" "rl_completion_append_character" "ac_cv_have_decl_rl_completion_append_character" " -#include <stdio.h> /* Must be first for Gnu Readline */ -#ifdef WITH_EDITLINE -# include <editline/readline.h> -#else -# include <readline/readline.h> -#endif -" -if test "x$ac_cv_have_decl_rl_completion_append_character" = xyes; then : +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS -$as_echo "#define HAVE_RL_COMPLETION_APPEND_CHARACTER 1" >>confdefs.h + + +else + CURSES_CFLAGS=$pkg_cv_CURSES_CFLAGS + CURSES_LIBS=$pkg_cv_CURSES_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + $as_echo "#define HAVE_NCURSESW 1" >>confdefs.h + + have_curses=ncursesw fi + fi - ac_fn_c_check_decl "$LINENO" "rl_completion_suppress_append" "ac_cv_have_decl_rl_completion_suppress_append" " -#include <stdio.h> /* Must be first for Gnu Readline */ -#ifdef WITH_EDITLINE -# include <editline/readline.h> -#else -# include <readline/readline.h> -#endif + if test "x$have_curses" = xno; then : -" -if test "x$ac_cv_have_decl_rl_completion_suppress_append" = xyes; then : -$as_echo "#define HAVE_RL_COMPLETION_SUPPRESS_APPEND 1" >>confdefs.h +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CURSES" >&5 +$as_echo_n "checking for CURSES... " >&6; } +if test -n "$CURSES_CFLAGS"; then + pkg_cv_CURSES_CFLAGS="$CURSES_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ncurses\""; } >&5 + ($PKG_CONFIG --exists --print-errors "ncurses") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CURSES_CFLAGS=`$PKG_CONFIG --cflags "ncurses" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CURSES_LIBS"; then + pkg_cv_CURSES_LIBS="$CURSES_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ncurses\""; } >&5 + ($PKG_CONFIG --exists --print-errors "ncurses") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CURSES_LIBS=`$PKG_CONFIG --libs "ncurses" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried fi - # check for readline 4.0 - as_ac_Lib=`$as_echo "ac_cv_lib_$LIBREADLINE''_rl_pre_input_hook" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_pre_input_hook in -l$LIBREADLINE" >&5 -$as_echo_n "checking for rl_pre_input_hook in -l$LIBREADLINE... " >&6; } -if eval \${$as_ac_Lib+:} false; then : + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CURSES_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "ncurses" 2>&1` + else + CURSES_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "ncurses" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CURSES_PKG_ERRORS" >&5 + + + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for initscr in -lncurses" >&5 +$as_echo_n "checking for initscr in -lncurses... " >&6; } +if ${ac_cv_lib_ncurses_initscr+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-l$LIBREADLINE $READLINE_LIBS $LIBS" +LIBS="-lncurses $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -19974,43 +23198,59 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char rl_pre_input_hook (); +char initscr (); int main () { -return rl_pre_input_hook (); +return initscr (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - eval "$as_ac_Lib=yes" + ac_cv_lib_ncurses_initscr=yes else - eval "$as_ac_Lib=no" + ac_cv_lib_ncurses_initscr=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_initscr" >&5 +$as_echo "$ac_cv_lib_ncurses_initscr" >&6; } +if test "x$ac_cv_lib_ncurses_initscr" = xyes; then : -$as_echo "#define HAVE_RL_PRE_INPUT_HOOK 1" >>confdefs.h + have_curses=ncurses + CURSES_CFLAGS=${CURSES_CFLAGS-""} + CURSES_LIBS=${CURSES_LIBS-"-lncurses"} fi - # also in 4.0 - as_ac_Lib=`$as_echo "ac_cv_lib_$LIBREADLINE''_rl_completion_display_matches_hook" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_completion_display_matches_hook in -l$LIBREADLINE" >&5 -$as_echo_n "checking for rl_completion_display_matches_hook in -l$LIBREADLINE... " >&6; } -if eval \${$as_ac_Lib+:} false; then : +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS + + + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for initscr in -lncurses" >&5 +$as_echo_n "checking for initscr in -lncurses... " >&6; } +if ${ac_cv_lib_ncurses_initscr+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-l$LIBREADLINE $READLINE_LIBS $LIBS" +LIBS="-lncurses $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -20020,89 +23260,172 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char rl_completion_display_matches_hook (); +char initscr (); int main () { -return rl_completion_display_matches_hook (); +return initscr (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - eval "$as_ac_Lib=yes" + ac_cv_lib_ncurses_initscr=yes else - eval "$as_ac_Lib=no" + ac_cv_lib_ncurses_initscr=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_initscr" >&5 +$as_echo "$ac_cv_lib_ncurses_initscr" >&6; } +if test "x$ac_cv_lib_ncurses_initscr" = xyes; then : -$as_echo "#define HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK 1" >>confdefs.h + have_curses=ncurses + CURSES_CFLAGS=${CURSES_CFLAGS-""} + CURSES_LIBS=${CURSES_LIBS-"-lncurses"} fi - # also in 4.0, but not in editline - as_ac_Lib=`$as_echo "ac_cv_lib_$LIBREADLINE''_rl_resize_terminal" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_resize_terminal in -l$LIBREADLINE" >&5 -$as_echo_n "checking for rl_resize_terminal in -l$LIBREADLINE... " >&6; } -if eval \${$as_ac_Lib+:} false; then : - $as_echo_n "(cached) " >&6 +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS + + + else - ac_check_lib_save_LIBS=$LIBS -LIBS="-l$LIBREADLINE $READLINE_LIBS $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + CURSES_CFLAGS=$pkg_cv_CURSES_CFLAGS + CURSES_LIBS=$pkg_cv_CURSES_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char rl_resize_terminal (); -int -main () -{ -return rl_resize_terminal (); - ; - return 0; -} + have_curses=ncurses + +fi + +fi + + +fi +CURSES_CFLAGS=$(echo $CURSES_CFLAGS | sed 's/-D_XOPEN_SOURCE=600//g') + +if test "$have_curses" = no -a "$ac_sys_system" = "Darwin"; then + + as_fn_append CURSES_CFLAGS " -D_XOPEN_SOURCE_EXTENDED=1" + $as_echo "#define HAVE_NCURSESW 1" >>confdefs.h + +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking curses module flags" >&5 +$as_echo_n "checking curses module flags... " >&6; } +if test "x$have_curses" = xno; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_curses (CFLAGS: $CURSES_CFLAGS, LIBS: $CURSES_LIBS)" >&5 +$as_echo "$have_curses (CFLAGS: $CURSES_CFLAGS, LIBS: $CURSES_LIBS)" >&6; } + +fi + +for ac_header in panel.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "panel.h" "ac_cv_header_panel_h" "$ac_includes_default" +if test "x$ac_cv_header_panel_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_PANEL_H 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - eval "$as_ac_Lib=yes" + +fi + +done + + +if test "x$ac_cv_header_panel_h" = xyes; then : + + + if test "$ac_sys_system" != "Darwin"; then + if test "x$have_curses" = xncursesw; then : + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PANEL" >&5 +$as_echo_n "checking for PANEL... " >&6; } + +if test -n "$PANEL_CFLAGS"; then + pkg_cv_PANEL_CFLAGS="$PANEL_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"panelw\""; } >&5 + ($PKG_CONFIG --exists --print-errors "panelw") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_PANEL_CFLAGS=`$PKG_CONFIG --cflags "panelw" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - eval "$as_ac_Lib=no" + pkg_failed=yes fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + else + pkg_failed=untried +fi +if test -n "$PANEL_LIBS"; then + pkg_cv_PANEL_LIBS="$PANEL_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"panelw\""; } >&5 + ($PKG_CONFIG --exists --print-errors "panelw") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_PANEL_LIBS=`$PKG_CONFIG --libs "panelw" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no fi -eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + if test $_pkg_short_errors_supported = yes; then + PANEL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "panelw" 2>&1` + else + PANEL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "panelw" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$PANEL_PKG_ERRORS" >&5 -$as_echo "#define HAVE_RL_RESIZE_TERMINAL 1" >>confdefs.h -fi + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS - # check for readline 4.2 - as_ac_Lib=`$as_echo "ac_cv_lib_$LIBREADLINE''_rl_completion_matches" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_completion_matches in -l$LIBREADLINE" >&5 -$as_echo_n "checking for rl_completion_matches in -l$LIBREADLINE... " >&6; } -if eval \${$as_ac_Lib+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for update_panels in -lpanelw" >&5 +$as_echo_n "checking for update_panels in -lpanelw... " >&6; } +if ${ac_cv_lib_panelw_update_panels+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-l$LIBREADLINE $READLINE_LIBS $LIBS" +LIBS="-lpanelw $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -20112,59 +23435,59 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char rl_completion_matches (); +char update_panels (); int main () { -return rl_completion_matches (); +return update_panels (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - eval "$as_ac_Lib=yes" + ac_cv_lib_panelw_update_panels=yes else - eval "$as_ac_Lib=no" + ac_cv_lib_panelw_update_panels=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_panelw_update_panels" >&5 +$as_echo "$ac_cv_lib_panelw_update_panels" >&6; } +if test "x$ac_cv_lib_panelw_update_panels" = xyes; then : -$as_echo "#define HAVE_RL_COMPLETION_MATCHES 1" >>confdefs.h + have_panel=panelw + PANEL_CFLAGS=${PANEL_CFLAGS-""} + PANEL_LIBS=${PANEL_LIBS-"-lpanelw"} fi - # also in readline 4.2 - ac_fn_c_check_decl "$LINENO" "rl_catch_signals" "ac_cv_have_decl_rl_catch_signals" " -#include <stdio.h> /* Must be first for Gnu Readline */ -#ifdef WITH_EDITLINE -# include <editline/readline.h> -#else -# include <readline/readline.h> -#endif +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS -" -if test "x$ac_cv_have_decl_rl_catch_signals" = xyes; then : -$as_echo "#define HAVE_RL_CATCH_SIGNAL 1" >>confdefs.h -fi +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS - as_ac_Lib=`$as_echo "ac_cv_lib_$LIBREADLINE''_append_history" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for append_history in -l$LIBREADLINE" >&5 -$as_echo_n "checking for append_history in -l$LIBREADLINE... " >&6; } -if eval \${$as_ac_Lib+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for update_panels in -lpanelw" >&5 +$as_echo_n "checking for update_panels in -lpanelw... " >&6; } +if ${ac_cv_lib_panelw_update_panels+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-l$LIBREADLINE $READLINE_LIBS $LIBS" +LIBS="-lpanelw $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -20174,317 +23497,272 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char append_history (); +char update_panels (); int main () { -return append_history (); +return update_panels (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - eval "$as_ac_Lib=yes" + ac_cv_lib_panelw_update_panels=yes else - eval "$as_ac_Lib=no" + ac_cv_lib_panelw_update_panels=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : - -$as_echo "#define HAVE_RL_APPEND_HISTORY 1" >>confdefs.h +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_panelw_update_panels" >&5 +$as_echo "$ac_cv_lib_panelw_update_panels" >&6; } +if test "x$ac_cv_lib_panelw_update_panels" = xyes; then : -fi + have_panel=panelw + PANEL_CFLAGS=${PANEL_CFLAGS-""} + PANEL_LIBS=${PANEL_LIBS-"-lpanelw"} fi -# End of readline checks: restore LIBS -LIBS=$LIBS_no_readline -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken nice()" >&5 -$as_echo_n "checking for broken nice()... " >&6; } -if ${ac_cv_broken_nice+:} false; then : - $as_echo_n "(cached) " >&6 -else +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS -if test "$cross_compiling" = yes; then : - ac_cv_broken_nice=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <stdlib.h> -#include <unistd.h> -int main() -{ - int val1 = nice(1); - if (val1 != -1 && val1 == nice(2)) - exit(0); - exit(1); -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_broken_nice=yes else - ac_cv_broken_nice=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_nice" >&5 -$as_echo "$ac_cv_broken_nice" >&6; } -if test "$ac_cv_broken_nice" = yes -then + PANEL_CFLAGS=$pkg_cv_PANEL_CFLAGS + PANEL_LIBS=$pkg_cv_PANEL_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -$as_echo "#define HAVE_BROKEN_NICE 1" >>confdefs.h + have_panel=panelw fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken poll()" >&5 -$as_echo_n "checking for broken poll()... " >&6; } -if ${ac_cv_broken_poll+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_broken_poll=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include <poll.h> -#include <unistd.h> +fi + fi -int main() -{ - struct pollfd poll_struct = { 42, POLLIN|POLLPRI|POLLOUT, 0 }; - int poll_test; + if test "x$have_curses" = xncurses; then : - close (42); - poll_test = poll(&poll_struct, 1, 0); - if (poll_test < 0) - return 0; - else if (poll_test == 0 && poll_struct.revents != POLLNVAL) - return 0; - else - return 1; -} +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PANEL" >&5 +$as_echo_n "checking for PANEL... " >&6; } -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_broken_poll=yes +if test -n "$PANEL_CFLAGS"; then + pkg_cv_PANEL_CFLAGS="$PANEL_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"panel\""; } >&5 + ($PKG_CONFIG --exists --print-errors "panel") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_PANEL_CFLAGS=`$PKG_CONFIG --cflags "panel" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - ac_cv_broken_poll=no + pkg_failed=yes fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + else + pkg_failed=untried fi - +if test -n "$PANEL_LIBS"; then + pkg_cv_PANEL_LIBS="$PANEL_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"panel\""; } >&5 + ($PKG_CONFIG --exists --print-errors "panel") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_PANEL_LIBS=`$PKG_CONFIG --libs "panel" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_poll" >&5 -$as_echo "$ac_cv_broken_poll" >&6; } -if test "$ac_cv_broken_poll" = yes -then - -$as_echo "#define HAVE_BROKEN_POLL 1" >>confdefs.h - + else + pkg_failed=untried fi -# check tzset(3) exists and works like we expect it to -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working tzset()" >&5 -$as_echo_n "checking for working tzset()... " >&6; } -if ${ac_cv_working_tzset+:} false; then : - $as_echo_n "(cached) " >&6 -else - -if test "$cross_compiling" = yes; then : - ac_cv_working_tzset=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include <stdlib.h> -#include <time.h> -#include <string.h> - -#if HAVE_TZNAME -extern char *tzname[]; -#endif - -int main() -{ - /* Note that we need to ensure that not only does tzset(3) - do 'something' with localtime, but it works as documented - in the library reference and as expected by the test suite. - This includes making sure that tzname is set properly if - tm->tm_zone does not exist since it is the alternative way - of getting timezone info. - - Red Hat 6.2 doesn't understand the southern hemisphere - after New Year's Day. - */ - - time_t groundhogday = 1044144000; /* GMT-based */ - time_t midyear = groundhogday + (365 * 24 * 3600 / 2); - - putenv("TZ=UTC+0"); - tzset(); - if (localtime(&groundhogday)->tm_hour != 0) - exit(1); -#if HAVE_TZNAME - /* For UTC, tzname[1] is sometimes "", sometimes " " */ - if (strcmp(tzname[0], "UTC") || - (tzname[1][0] != 0 && tzname[1][0] != ' ')) - exit(1); -#endif - - putenv("TZ=EST+5EDT,M4.1.0,M10.5.0"); - tzset(); - if (localtime(&groundhogday)->tm_hour != 19) - exit(1); -#if HAVE_TZNAME - if (strcmp(tzname[0], "EST") || strcmp(tzname[1], "EDT")) - exit(1); -#endif - - putenv("TZ=AEST-10AEDT-11,M10.5.0,M3.5.0"); - tzset(); - if (localtime(&groundhogday)->tm_hour != 11) - exit(1); -#if HAVE_TZNAME - if (strcmp(tzname[0], "AEST") || strcmp(tzname[1], "AEDT")) - exit(1); -#endif -#if HAVE_STRUCT_TM_TM_ZONE - if (strcmp(localtime(&groundhogday)->tm_zone, "AEDT")) - exit(1); - if (strcmp(localtime(&midyear)->tm_zone, "AEST")) - exit(1); -#endif - exit(0); -} +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_working_tzset=yes +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes else - ac_cv_working_tzset=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + _pkg_short_errors_supported=no fi + if test $_pkg_short_errors_supported = yes; then + PANEL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "panel" 2>&1` + else + PANEL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "panel" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$PANEL_PKG_ERRORS" >&5 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_tzset" >&5 -$as_echo "$ac_cv_working_tzset" >&6; } -if test "$ac_cv_working_tzset" = yes -then -$as_echo "#define HAVE_WORKING_TZSET 1" >>confdefs.h + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS -fi -# Look for subsecond timestamps in struct stat -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for tv_nsec in struct stat" >&5 -$as_echo_n "checking for tv_nsec in struct stat... " >&6; } -if ${ac_cv_stat_tv_nsec+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for update_panels in -lpanel" >&5 +$as_echo_n "checking for update_panels in -lpanel... " >&6; } +if ${ac_cv_lib_panel_update_panels+:} false; then : $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpanel $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <sys/stat.h> + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char update_panels (); int main () { - -struct stat st; -st.st_mtim.tv_nsec = 1; - +return update_panels (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_stat_tv_nsec=yes +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_panel_update_panels=yes else - ac_cv_stat_tv_nsec=no + ac_cv_lib_panel_update_panels=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_stat_tv_nsec" >&5 -$as_echo "$ac_cv_stat_tv_nsec" >&6; } -if test "$ac_cv_stat_tv_nsec" = yes -then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_panel_update_panels" >&5 +$as_echo "$ac_cv_lib_panel_update_panels" >&6; } +if test "x$ac_cv_lib_panel_update_panels" = xyes; then : -$as_echo "#define HAVE_STAT_TV_NSEC 1" >>confdefs.h + have_panel=panel + PANEL_CFLAGS=${PANEL_CFLAGS-""} + PANEL_LIBS=${PANEL_LIBS-"-lpanel"} fi -# Look for BSD style subsecond timestamps in struct stat -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for tv_nsec2 in struct stat" >&5 -$as_echo_n "checking for tv_nsec2 in struct stat... " >&6; } -if ${ac_cv_stat_tv_nsec2+:} false; then : + +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS + + + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for update_panels in -lpanel" >&5 +$as_echo_n "checking for update_panels in -lpanel... " >&6; } +if ${ac_cv_lib_panel_update_panels+:} false; then : $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpanel $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <sys/stat.h> + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char update_panels (); int main () { - -struct stat st; -st.st_mtimespec.tv_nsec = 1; - +return update_panels (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_stat_tv_nsec2=yes +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_panel_update_panels=yes else - ac_cv_stat_tv_nsec2=no + ac_cv_lib_panel_update_panels=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_stat_tv_nsec2" >&5 -$as_echo "$ac_cv_stat_tv_nsec2" >&6; } -if test "$ac_cv_stat_tv_nsec2" = yes -then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_panel_update_panels" >&5 +$as_echo "$ac_cv_lib_panel_update_panels" >&6; } +if test "x$ac_cv_lib_panel_update_panels" = xyes; then : -$as_echo "#define HAVE_STAT_TV_NSEC2 1" >>confdefs.h + have_panel=panel + PANEL_CFLAGS=${PANEL_CFLAGS-""} + PANEL_LIBS=${PANEL_LIBS-"-lpanel"} + +fi + + +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS + + + +else + PANEL_CFLAGS=$pkg_cv_PANEL_CFLAGS + PANEL_LIBS=$pkg_cv_PANEL_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + have_panel=panel fi -# first curses header check -ac_save_cppflags="$CPPFLAGS" -if test "$cross_compiling" = no; then - CPPFLAGS="$CPPFLAGS -I/usr/include/ncursesw" fi -for ac_header in curses.h ncurses.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF fi +PANEL_CFLAGS=$(echo $PANEL_CFLAGS | sed 's/-D_XOPEN_SOURCE=600//g') -done +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking panel flags" >&5 +$as_echo_n "checking panel flags... " >&6; } +if test "x$have_panel" = xno; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_panel (CFLAGS: $PANEL_CFLAGS, LIBS: $PANEL_LIBS)" >&5 +$as_echo "$have_panel (CFLAGS: $PANEL_CFLAGS, LIBS: $PANEL_LIBS)" >&6; } + +fi + +# first curses header check +ac_save_cppflags="$CPPFLAGS" +if test "$cross_compiling" = no; then + CPPFLAGS="$CPPFLAGS -I/usr/include/ncursesw" +fi # On Solaris, term.h requires curses.h for ac_header in term.h @@ -21264,6 +24542,7 @@ SRCDIRS="\ Modules/_sha3 \ Modules/_sqlite \ Modules/_sre \ + Modules/_testcapi \ Modules/_xxtestfuzz \ Modules/cjkcodecs \ Modules/expat \ @@ -22026,7 +25305,6 @@ esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPENSSL_RPATH" >&5 $as_echo "$OPENSSL_RPATH" >&6; } - # This static linking is NOT OFFICIALLY SUPPORTED and not advertised. # Requires static OpenSSL build with position-independent code. Some features # like DSO engines or external OSSL providers don't work. Only tested with GCC @@ -22363,30 +25641,6 @@ fi fi -# --with-experimental-isolated-subinterpreters - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-experimental-isolated-subinterpreters" >&5 -$as_echo_n "checking for --with-experimental-isolated-subinterpreters... " >&6; } - -# Check whether --with-experimental-isolated-subinterpreters was given. -if test "${with_experimental_isolated_subinterpreters+set}" = set; then : - withval=$with_experimental_isolated_subinterpreters; -if test "$withval" != no -then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; }; - $as_echo "#define EXPERIMENTAL_ISOLATED_SUBINTERPRETERS 1" >>confdefs.h - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; }; -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - # Check whether to disable test modules. Once set, setup.py will not build # test extension modules and "make install" will not install test suites. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for --disable-test-modules" >&5 @@ -22476,6 +25730,7 @@ case $ac_sys_system in #( py_cv_module_nis=n/a py_cv_module_ossaudiodev=n/a py_cv_module_pwd=n/a + py_cv_module_resource=n/a py_cv_module_spwd=n/a py_cv_module_syslog=n/a py_cv_module_=n/a @@ -22486,7 +25741,6 @@ case $ac_sys_system in #( py_cv_module_fcntl=n/a - py_cv_module_resource=n/a py_cv_module_readline=n/a py_cv_module_termios=n/a py_cv_module_=n/a @@ -22500,6 +25754,8 @@ case $ac_sys_system in #( py_cv_module__ctypes_test=n/a py_cv_module_fcntl=n/a + py_cv_module_mmap=n/a + py_cv_module_termios=n/a py_cv_module_=n/a @@ -22526,22 +25782,6 @@ case $host_cpu in #( esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for additional Modules/Setup files" >&5 -$as_echo_n "checking for additional Modules/Setup files... " >&6; } -case $ac_sys_system in #( - Emscripten) : - MODULES_SETUP_STDLIB=Modules/Setup.stdlib ;; #( - WASI) : - MODULES_SETUP_STDLIB=Modules/Setup.stdlib ;; #( - *) : - MODULES_SETUP_STDLIB= - ;; -esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MODULES_SETUP_STDLIB" >&5 -$as_echo "$MODULES_SETUP_STDLIB" >&6; } - - - MODULE_BLOCK= @@ -22561,7 +25801,7 @@ else MODULE__IO_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__IO=$py_cv_module__io$as_nl" + as_fn_append MODULE_BLOCK "MODULE__IO_STATE=$py_cv_module__io$as_nl" if test "x$py_cv_module__io" = xyes; then : as_fn_append MODULE_BLOCK "MODULE__IO_CFLAGS=-I\$(srcdir)/Modules/_io$as_nl" @@ -22581,7 +25821,7 @@ else MODULE_TIME_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE_TIME=$py_cv_module_time$as_nl" + as_fn_append MODULE_BLOCK "MODULE_TIME_STATE=$py_cv_module_time$as_nl" if test "x$py_cv_module_time" = xyes; then : @@ -22602,7 +25842,7 @@ else MODULE_ARRAY_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE_ARRAY=$py_cv_module_array$as_nl" + as_fn_append MODULE_BLOCK "MODULE_ARRAY_STATE=$py_cv_module_array$as_nl" if test "x$py_cv_module_array" = xyes; then : @@ -22622,7 +25862,7 @@ else MODULE__ASYNCIO_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__ASYNCIO=$py_cv_module__asyncio$as_nl" + as_fn_append MODULE_BLOCK "MODULE__ASYNCIO_STATE=$py_cv_module__asyncio$as_nl" if test "x$py_cv_module__asyncio" = xyes; then : @@ -22642,7 +25882,7 @@ else MODULE__BISECT_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__BISECT=$py_cv_module__bisect$as_nl" + as_fn_append MODULE_BLOCK "MODULE__BISECT_STATE=$py_cv_module__bisect$as_nl" if test "x$py_cv_module__bisect" = xyes; then : @@ -22662,7 +25902,7 @@ else MODULE__CONTEXTVARS_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__CONTEXTVARS=$py_cv_module__contextvars$as_nl" + as_fn_append MODULE_BLOCK "MODULE__CONTEXTVARS_STATE=$py_cv_module__contextvars$as_nl" if test "x$py_cv_module__contextvars" = xyes; then : @@ -22682,7 +25922,7 @@ else MODULE__CSV_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__CSV=$py_cv_module__csv$as_nl" + as_fn_append MODULE_BLOCK "MODULE__CSV_STATE=$py_cv_module__csv$as_nl" if test "x$py_cv_module__csv" = xyes; then : @@ -22702,7 +25942,7 @@ else MODULE__HEAPQ_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__HEAPQ=$py_cv_module__heapq$as_nl" + as_fn_append MODULE_BLOCK "MODULE__HEAPQ_STATE=$py_cv_module__heapq$as_nl" if test "x$py_cv_module__heapq" = xyes; then : @@ -22722,7 +25962,7 @@ else MODULE__JSON_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__JSON=$py_cv_module__json$as_nl" + as_fn_append MODULE_BLOCK "MODULE__JSON_STATE=$py_cv_module__json$as_nl" if test "x$py_cv_module__json" = xyes; then : @@ -22742,7 +25982,7 @@ else MODULE__LSPROF_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__LSPROF=$py_cv_module__lsprof$as_nl" + as_fn_append MODULE_BLOCK "MODULE__LSPROF_STATE=$py_cv_module__lsprof$as_nl" if test "x$py_cv_module__lsprof" = xyes; then : @@ -22762,7 +26002,7 @@ else MODULE__OPCODE_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__OPCODE=$py_cv_module__opcode$as_nl" + as_fn_append MODULE_BLOCK "MODULE__OPCODE_STATE=$py_cv_module__opcode$as_nl" if test "x$py_cv_module__opcode" = xyes; then : @@ -22782,7 +26022,7 @@ else MODULE__PICKLE_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__PICKLE=$py_cv_module__pickle$as_nl" + as_fn_append MODULE_BLOCK "MODULE__PICKLE_STATE=$py_cv_module__pickle$as_nl" if test "x$py_cv_module__pickle" = xyes; then : @@ -22802,7 +26042,7 @@ else MODULE__POSIXSUBPROCESS_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__POSIXSUBPROCESS=$py_cv_module__posixsubprocess$as_nl" + as_fn_append MODULE_BLOCK "MODULE__POSIXSUBPROCESS_STATE=$py_cv_module__posixsubprocess$as_nl" if test "x$py_cv_module__posixsubprocess" = xyes; then : @@ -22822,7 +26062,7 @@ else MODULE__QUEUE_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__QUEUE=$py_cv_module__queue$as_nl" + as_fn_append MODULE_BLOCK "MODULE__QUEUE_STATE=$py_cv_module__queue$as_nl" if test "x$py_cv_module__queue" = xyes; then : @@ -22842,7 +26082,7 @@ else MODULE__RANDOM_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__RANDOM=$py_cv_module__random$as_nl" + as_fn_append MODULE_BLOCK "MODULE__RANDOM_STATE=$py_cv_module__random$as_nl" if test "x$py_cv_module__random" = xyes; then : @@ -22862,7 +26102,7 @@ else MODULE_SELECT_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE_SELECT=$py_cv_module_select$as_nl" + as_fn_append MODULE_BLOCK "MODULE_SELECT_STATE=$py_cv_module_select$as_nl" if test "x$py_cv_module_select" = xyes; then : @@ -22882,7 +26122,7 @@ else MODULE__STRUCT_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__STRUCT=$py_cv_module__struct$as_nl" + as_fn_append MODULE_BLOCK "MODULE__STRUCT_STATE=$py_cv_module__struct$as_nl" if test "x$py_cv_module__struct" = xyes; then : @@ -22902,7 +26142,7 @@ else MODULE__TYPING_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__TYPING=$py_cv_module__typing$as_nl" + as_fn_append MODULE_BLOCK "MODULE__TYPING_STATE=$py_cv_module__typing$as_nl" if test "x$py_cv_module__typing" = xyes; then : @@ -22922,7 +26162,7 @@ else MODULE__XXSUBINTERPRETERS_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__XXSUBINTERPRETERS=$py_cv_module__xxsubinterpreters$as_nl" + as_fn_append MODULE_BLOCK "MODULE__XXSUBINTERPRETERS_STATE=$py_cv_module__xxsubinterpreters$as_nl" if test "x$py_cv_module__xxsubinterpreters" = xyes; then : @@ -22942,7 +26182,7 @@ else MODULE__ZONEINFO_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__ZONEINFO=$py_cv_module__zoneinfo$as_nl" + as_fn_append MODULE_BLOCK "MODULE__ZONEINFO_STATE=$py_cv_module__zoneinfo$as_nl" if test "x$py_cv_module__zoneinfo" = xyes; then : @@ -22967,7 +26207,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__MULTIPROCESSING=$py_cv_module__multiprocessing$as_nl" + as_fn_append MODULE_BLOCK "MODULE__MULTIPROCESSING_STATE=$py_cv_module__multiprocessing$as_nl" if test "x$py_cv_module__multiprocessing" = xyes; then : as_fn_append MODULE_BLOCK "MODULE__MULTIPROCESSING_CFLAGS=-I\$(srcdir)/Modules/_multiprocessing$as_nl" @@ -23001,7 +26241,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__POSIXSHMEM=$py_cv_module__posixshmem$as_nl" + as_fn_append MODULE_BLOCK "MODULE__POSIXSHMEM_STATE=$py_cv_module__posixshmem$as_nl" if test "x$py_cv_module__posixshmem" = xyes; then : as_fn_append MODULE_BLOCK "MODULE__POSIXSHMEM_CFLAGS=$POSIXSHMEM_CFLAGS$as_nl" @@ -23032,7 +26272,7 @@ else MODULE_AUDIOOP_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE_AUDIOOP=$py_cv_module_audioop$as_nl" + as_fn_append MODULE_BLOCK "MODULE_AUDIOOP_STATE=$py_cv_module_audioop$as_nl" if test "x$py_cv_module_audioop" = xyes; then : @@ -23052,7 +26292,7 @@ else MODULE__STATISTICS_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__STATISTICS=$py_cv_module__statistics$as_nl" + as_fn_append MODULE_BLOCK "MODULE__STATISTICS_STATE=$py_cv_module__statistics$as_nl" if test "x$py_cv_module__statistics" = xyes; then : @@ -23072,7 +26312,7 @@ else MODULE_CMATH_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE_CMATH=$py_cv_module_cmath$as_nl" + as_fn_append MODULE_BLOCK "MODULE_CMATH_STATE=$py_cv_module_cmath$as_nl" if test "x$py_cv_module_cmath" = xyes; then : @@ -23092,7 +26332,7 @@ else MODULE_MATH_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE_MATH=$py_cv_module_math$as_nl" + as_fn_append MODULE_BLOCK "MODULE_MATH_STATE=$py_cv_module_math$as_nl" if test "x$py_cv_module_math" = xyes; then : @@ -23113,7 +26353,7 @@ else MODULE__DATETIME_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__DATETIME=$py_cv_module__datetime$as_nl" + as_fn_append MODULE_BLOCK "MODULE__DATETIME_STATE=$py_cv_module__datetime$as_nl" if test "x$py_cv_module__datetime" = xyes; then : @@ -23138,7 +26378,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE_FCNTL=$py_cv_module_fcntl$as_nl" + as_fn_append MODULE_BLOCK "MODULE_FCNTL_STATE=$py_cv_module_fcntl$as_nl" if test "x$py_cv_module_fcntl" = xyes; then : @@ -23172,7 +26412,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE_MMAP=$py_cv_module_mmap$as_nl" + as_fn_append MODULE_BLOCK "MODULE_MMAP_STATE=$py_cv_module_mmap$as_nl" if test "x$py_cv_module_mmap" = xyes; then : @@ -23206,7 +26446,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__SOCKET=$py_cv_module__socket$as_nl" + as_fn_append MODULE_BLOCK "MODULE__SOCKET_STATE=$py_cv_module__socket$as_nl" if test "x$py_cv_module__socket" = xyes; then : @@ -23241,7 +26481,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE_GRP=$py_cv_module_grp$as_nl" + as_fn_append MODULE_BLOCK "MODULE_GRP_STATE=$py_cv_module_grp$as_nl" if test "x$py_cv_module_grp" = xyes; then : @@ -23275,7 +26515,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE_OSSAUDIODEV=$py_cv_module_ossaudiodev$as_nl" + as_fn_append MODULE_BLOCK "MODULE_OSSAUDIODEV_STATE=$py_cv_module_ossaudiodev$as_nl" if test "x$py_cv_module_ossaudiodev" = xyes; then : @@ -23309,7 +26549,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE_PWD=$py_cv_module_pwd$as_nl" + as_fn_append MODULE_BLOCK "MODULE_PWD_STATE=$py_cv_module_pwd$as_nl" if test "x$py_cv_module_pwd" = xyes; then : @@ -23343,7 +26583,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE_RESOURCE=$py_cv_module_resource$as_nl" + as_fn_append MODULE_BLOCK "MODULE_RESOURCE_STATE=$py_cv_module_resource$as_nl" if test "x$py_cv_module_resource" = xyes; then : @@ -23377,7 +26617,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__SCPROXY=$py_cv_module__scproxy$as_nl" + as_fn_append MODULE_BLOCK "MODULE__SCPROXY_STATE=$py_cv_module__scproxy$as_nl" if test "x$py_cv_module__scproxy" = xyes; then : @@ -23411,7 +26651,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE_SPWD=$py_cv_module_spwd$as_nl" + as_fn_append MODULE_BLOCK "MODULE_SPWD_STATE=$py_cv_module_spwd$as_nl" if test "x$py_cv_module_spwd" = xyes; then : @@ -23445,7 +26685,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE_SYSLOG=$py_cv_module_syslog$as_nl" + as_fn_append MODULE_BLOCK "MODULE_SYSLOG_STATE=$py_cv_module_syslog$as_nl" if test "x$py_cv_module_syslog" = xyes; then : @@ -23479,7 +26719,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE_TERMIOS=$py_cv_module_termios$as_nl" + as_fn_append MODULE_BLOCK "MODULE_TERMIOS_STATE=$py_cv_module_termios$as_nl" if test "x$py_cv_module_termios" = xyes; then : @@ -23514,7 +26754,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE_PYEXPAT=$py_cv_module_pyexpat$as_nl" + as_fn_append MODULE_BLOCK "MODULE_PYEXPAT_STATE=$py_cv_module_pyexpat$as_nl" if test "x$py_cv_module_pyexpat" = xyes; then : as_fn_append MODULE_BLOCK "MODULE_PYEXPAT_CFLAGS=$LIBEXPAT_CFLAGS$as_nl" @@ -23548,7 +26788,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__ELEMENTTREE=$py_cv_module__elementtree$as_nl" + as_fn_append MODULE_BLOCK "MODULE__ELEMENTTREE_STATE=$py_cv_module__elementtree$as_nl" if test "x$py_cv_module__elementtree" = xyes; then : as_fn_append MODULE_BLOCK "MODULE__ELEMENTTREE_CFLAGS=$LIBEXPAT_CFLAGS$as_nl" @@ -23578,7 +26818,7 @@ else MODULE__CODECS_CN_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__CODECS_CN=$py_cv_module__codecs_cn$as_nl" + as_fn_append MODULE_BLOCK "MODULE__CODECS_CN_STATE=$py_cv_module__codecs_cn$as_nl" if test "x$py_cv_module__codecs_cn" = xyes; then : @@ -23598,7 +26838,7 @@ else MODULE__CODECS_HK_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__CODECS_HK=$py_cv_module__codecs_hk$as_nl" + as_fn_append MODULE_BLOCK "MODULE__CODECS_HK_STATE=$py_cv_module__codecs_hk$as_nl" if test "x$py_cv_module__codecs_hk" = xyes; then : @@ -23618,7 +26858,7 @@ else MODULE__CODECS_ISO2022_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__CODECS_ISO2022=$py_cv_module__codecs_iso2022$as_nl" + as_fn_append MODULE_BLOCK "MODULE__CODECS_ISO2022_STATE=$py_cv_module__codecs_iso2022$as_nl" if test "x$py_cv_module__codecs_iso2022" = xyes; then : @@ -23638,7 +26878,7 @@ else MODULE__CODECS_JP_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__CODECS_JP=$py_cv_module__codecs_jp$as_nl" + as_fn_append MODULE_BLOCK "MODULE__CODECS_JP_STATE=$py_cv_module__codecs_jp$as_nl" if test "x$py_cv_module__codecs_jp" = xyes; then : @@ -23658,7 +26898,7 @@ else MODULE__CODECS_KR_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__CODECS_KR=$py_cv_module__codecs_kr$as_nl" + as_fn_append MODULE_BLOCK "MODULE__CODECS_KR_STATE=$py_cv_module__codecs_kr$as_nl" if test "x$py_cv_module__codecs_kr" = xyes; then : @@ -23678,7 +26918,7 @@ else MODULE__CODECS_TW_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__CODECS_TW=$py_cv_module__codecs_tw$as_nl" + as_fn_append MODULE_BLOCK "MODULE__CODECS_TW_STATE=$py_cv_module__codecs_tw$as_nl" if test "x$py_cv_module__codecs_tw" = xyes; then : @@ -23698,7 +26938,7 @@ else MODULE__MULTIBYTECODEC_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__MULTIBYTECODEC=$py_cv_module__multibytecodec$as_nl" + as_fn_append MODULE_BLOCK "MODULE__MULTIBYTECODEC_STATE=$py_cv_module__multibytecodec$as_nl" if test "x$py_cv_module__multibytecodec" = xyes; then : @@ -23718,7 +26958,7 @@ else MODULE_UNICODEDATA_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE_UNICODEDATA=$py_cv_module_unicodedata$as_nl" + as_fn_append MODULE_BLOCK "MODULE_UNICODEDATA_STATE=$py_cv_module_unicodedata$as_nl" if test "x$py_cv_module_unicodedata" = xyes; then : @@ -23743,7 +26983,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__MD5=$py_cv_module__md5$as_nl" + as_fn_append MODULE_BLOCK "MODULE__MD5_STATE=$py_cv_module__md5$as_nl" if test "x$py_cv_module__md5" = xyes; then : @@ -23777,7 +27017,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__SHA1=$py_cv_module__sha1$as_nl" + as_fn_append MODULE_BLOCK "MODULE__SHA1_STATE=$py_cv_module__sha1$as_nl" if test "x$py_cv_module__sha1" = xyes; then : @@ -23811,7 +27051,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__SHA256=$py_cv_module__sha256$as_nl" + as_fn_append MODULE_BLOCK "MODULE__SHA256_STATE=$py_cv_module__sha256$as_nl" if test "x$py_cv_module__sha256" = xyes; then : @@ -23845,7 +27085,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__SHA512=$py_cv_module__sha512$as_nl" + as_fn_append MODULE_BLOCK "MODULE__SHA512_STATE=$py_cv_module__sha512$as_nl" if test "x$py_cv_module__sha512" = xyes; then : @@ -23879,7 +27119,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__SHA3=$py_cv_module__sha3$as_nl" + as_fn_append MODULE_BLOCK "MODULE__SHA3_STATE=$py_cv_module__sha3$as_nl" if test "x$py_cv_module__sha3" = xyes; then : @@ -23913,7 +27153,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__BLAKE2=$py_cv_module__blake2$as_nl" + as_fn_append MODULE_BLOCK "MODULE__BLAKE2_STATE=$py_cv_module__blake2$as_nl" if test "x$py_cv_module__blake2" = xyes; then : as_fn_append MODULE_BLOCK "MODULE__BLAKE2_CFLAGS=$LIBB2_CFLAGS$as_nl" @@ -23948,7 +27188,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__CRYPT=$py_cv_module__crypt$as_nl" + as_fn_append MODULE_BLOCK "MODULE__CRYPT_STATE=$py_cv_module__crypt$as_nl" if test "x$py_cv_module__crypt" = xyes; then : as_fn_append MODULE_BLOCK "MODULE__CRYPT_CFLAGS=$LIBCRYPT_CFLAGS$as_nl" @@ -23967,6 +27207,110 @@ fi $as_echo "$py_cv_module__crypt" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _ctypes" >&5 +$as_echo_n "checking for stdlib extension module _ctypes... " >&6; } + if test "$py_cv_module__ctypes" != "n/a"; then : + + if true; then : + if test "$have_libffi" = yes; then : + py_cv_module__ctypes=yes +else + py_cv_module__ctypes=missing +fi +else + py_cv_module__ctypes=disabled +fi + +fi + as_fn_append MODULE_BLOCK "MODULE__CTYPES_STATE=$py_cv_module__ctypes$as_nl" + if test "x$py_cv_module__ctypes" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE__CTYPES_CFLAGS=$LIBFFI_CFLAGS$as_nl" + as_fn_append MODULE_BLOCK "MODULE__CTYPES_LDFLAGS=$LIBFFI_LIBS$as_nl" + +fi + if test "$py_cv_module__ctypes" = yes; then + MODULE__CTYPES_TRUE= + MODULE__CTYPES_FALSE='#' +else + MODULE__CTYPES_TRUE='#' + MODULE__CTYPES_FALSE= +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__ctypes" >&5 +$as_echo "$py_cv_module__ctypes" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _curses" >&5 +$as_echo_n "checking for stdlib extension module _curses... " >&6; } + if test "$py_cv_module__curses" != "n/a"; then : + + if true; then : + if test "$have_curses" != "no"; then : + py_cv_module__curses=yes +else + py_cv_module__curses=missing +fi +else + py_cv_module__curses=disabled +fi + +fi + as_fn_append MODULE_BLOCK "MODULE__CURSES_STATE=$py_cv_module__curses$as_nl" + if test "x$py_cv_module__curses" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE__CURSES_CFLAGS=$CURSES_CFLAGS$as_nl" + as_fn_append MODULE_BLOCK "MODULE__CURSES_LDFLAGS=$CURSES_LIBS +$as_nl" + +fi + if test "$py_cv_module__curses" = yes; then + MODULE__CURSES_TRUE= + MODULE__CURSES_FALSE='#' +else + MODULE__CURSES_TRUE='#' + MODULE__CURSES_FALSE= +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__curses" >&5 +$as_echo "$py_cv_module__curses" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _curses_panel" >&5 +$as_echo_n "checking for stdlib extension module _curses_panel... " >&6; } + if test "$py_cv_module__curses_panel" != "n/a"; then : + + if true; then : + if test "$have_panel" != "no"; then : + py_cv_module__curses_panel=yes +else + py_cv_module__curses_panel=missing +fi +else + py_cv_module__curses_panel=disabled +fi + +fi + as_fn_append MODULE_BLOCK "MODULE__CURSES_PANEL_STATE=$py_cv_module__curses_panel$as_nl" + if test "x$py_cv_module__curses_panel" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE__CURSES_PANEL_CFLAGS=$PANEL_CFLAGS $CURSES_CFLAGS$as_nl" + as_fn_append MODULE_BLOCK "MODULE__CURSES_PANEL_LDFLAGS=$PANEL_LIBS $CURSES_LIBS +$as_nl" + +fi + if test "$py_cv_module__curses_panel" = yes; then + MODULE__CURSES_PANEL_TRUE= + MODULE__CURSES_PANEL_FALSE='#' +else + MODULE__CURSES_PANEL_TRUE='#' + MODULE__CURSES_PANEL_FALSE= +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__curses_panel" >&5 +$as_echo "$py_cv_module__curses_panel" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _decimal" >&5 $as_echo_n "checking for stdlib extension module _decimal... " >&6; } if test "$py_cv_module__decimal" != "n/a"; then : @@ -23982,7 +27326,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__DECIMAL=$py_cv_module__decimal$as_nl" + as_fn_append MODULE_BLOCK "MODULE__DECIMAL_STATE=$py_cv_module__decimal$as_nl" if test "x$py_cv_module__decimal" = xyes; then : as_fn_append MODULE_BLOCK "MODULE__DECIMAL_CFLAGS=$LIBMPDEC_CFLAGS$as_nl" @@ -24001,6 +27345,40 @@ fi $as_echo "$py_cv_module__decimal" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _dbm" >&5 +$as_echo_n "checking for stdlib extension module _dbm... " >&6; } + if test "$py_cv_module__dbm" != "n/a"; then : + + if test -n "$with_dbmliborder"; then : + if test "$have_dbm" != "no"; then : + py_cv_module__dbm=yes +else + py_cv_module__dbm=missing +fi +else + py_cv_module__dbm=disabled +fi + +fi + as_fn_append MODULE_BLOCK "MODULE__DBM_STATE=$py_cv_module__dbm$as_nl" + if test "x$py_cv_module__dbm" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE__DBM_CFLAGS=$DBM_CFLAGS$as_nl" + as_fn_append MODULE_BLOCK "MODULE__DBM_LDFLAGS=$DBM_LIBS$as_nl" + +fi + if test "$py_cv_module__dbm" = yes; then + MODULE__DBM_TRUE= + MODULE__DBM_FALSE='#' +else + MODULE__DBM_TRUE='#' + MODULE__DBM_FALSE= +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__dbm" >&5 +$as_echo "$py_cv_module__dbm" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _gdbm" >&5 $as_echo_n "checking for stdlib extension module _gdbm... " >&6; } if test "$py_cv_module__gdbm" != "n/a"; then : @@ -24016,7 +27394,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__GDBM=$py_cv_module__gdbm$as_nl" + as_fn_append MODULE_BLOCK "MODULE__GDBM_STATE=$py_cv_module__gdbm$as_nl" if test "x$py_cv_module__gdbm" = xyes; then : as_fn_append MODULE_BLOCK "MODULE__GDBM_CFLAGS=$GDBM_CFLAGS$as_nl" @@ -24050,7 +27428,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE_NIS=$py_cv_module_nis$as_nl" + as_fn_append MODULE_BLOCK "MODULE_NIS_STATE=$py_cv_module_nis$as_nl" if test "x$py_cv_module_nis" = xyes; then : as_fn_append MODULE_BLOCK "MODULE_NIS_CFLAGS=$LIBNSL_CFLAGS$as_nl" @@ -24069,6 +27447,40 @@ fi $as_echo "$py_cv_module_nis" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module readline" >&5 +$as_echo_n "checking for stdlib extension module readline... " >&6; } + if test "$py_cv_module_readline" != "n/a"; then : + + if true; then : + if test "$with_readline" != "no"; then : + py_cv_module_readline=yes +else + py_cv_module_readline=missing +fi +else + py_cv_module_readline=disabled +fi + +fi + as_fn_append MODULE_BLOCK "MODULE_READLINE_STATE=$py_cv_module_readline$as_nl" + if test "x$py_cv_module_readline" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE_READLINE_CFLAGS=$READLINE_CFLAGS$as_nl" + as_fn_append MODULE_BLOCK "MODULE_READLINE_LDFLAGS=$READLINE_LIBS$as_nl" + +fi + if test "$py_cv_module_readline" = yes; then + MODULE_READLINE_TRUE= + MODULE_READLINE_FALSE='#' +else + MODULE_READLINE_TRUE='#' + MODULE_READLINE_FALSE= +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module_readline" >&5 +$as_echo "$py_cv_module_readline" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _sqlite3" >&5 $as_echo_n "checking for stdlib extension module _sqlite3... " >&6; } if test "$py_cv_module__sqlite3" != "n/a"; then : @@ -24084,7 +27496,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__SQLITE3=$py_cv_module__sqlite3$as_nl" + as_fn_append MODULE_BLOCK "MODULE__SQLITE3_STATE=$py_cv_module__sqlite3$as_nl" if test "x$py_cv_module__sqlite3" = xyes; then : as_fn_append MODULE_BLOCK "MODULE__SQLITE3_CFLAGS=$LIBSQLITE3_CFLAGS$as_nl" @@ -24118,7 +27530,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__TKINTER=$py_cv_module__tkinter$as_nl" + as_fn_append MODULE_BLOCK "MODULE__TKINTER_STATE=$py_cv_module__tkinter$as_nl" if test "x$py_cv_module__tkinter" = xyes; then : as_fn_append MODULE_BLOCK "MODULE__TKINTER_CFLAGS=$TCLTK_CFLAGS$as_nl" @@ -24152,7 +27564,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__UUID=$py_cv_module__uuid$as_nl" + as_fn_append MODULE_BLOCK "MODULE__UUID_STATE=$py_cv_module__uuid$as_nl" if test "x$py_cv_module__uuid" = xyes; then : as_fn_append MODULE_BLOCK "MODULE__UUID_CFLAGS=$LIBUUID_CFLAGS$as_nl" @@ -24187,7 +27599,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE_ZLIB=$py_cv_module_zlib$as_nl" + as_fn_append MODULE_BLOCK "MODULE_ZLIB_STATE=$py_cv_module_zlib$as_nl" if test "x$py_cv_module_zlib" = xyes; then : as_fn_append MODULE_BLOCK "MODULE_ZLIB_CFLAGS=$ZLIB_CFLAGS$as_nl" @@ -24217,7 +27629,7 @@ else MODULE_BINASCII_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE_BINASCII=$py_cv_module_binascii$as_nl" + as_fn_append MODULE_BLOCK "MODULE_BINASCII_STATE=$py_cv_module_binascii$as_nl" if test "x$py_cv_module_binascii" = xyes; then : as_fn_append MODULE_BLOCK "MODULE_BINASCII_CFLAGS=$BINASCII_CFLAGS$as_nl" @@ -24241,7 +27653,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__BZ2=$py_cv_module__bz2$as_nl" + as_fn_append MODULE_BLOCK "MODULE__BZ2_STATE=$py_cv_module__bz2$as_nl" if test "x$py_cv_module__bz2" = xyes; then : as_fn_append MODULE_BLOCK "MODULE__BZ2_CFLAGS=$BZIP2_CFLAGS$as_nl" @@ -24275,7 +27687,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__LZMA=$py_cv_module__lzma$as_nl" + as_fn_append MODULE_BLOCK "MODULE__LZMA_STATE=$py_cv_module__lzma$as_nl" if test "x$py_cv_module__lzma" = xyes; then : as_fn_append MODULE_BLOCK "MODULE__LZMA_CFLAGS=$LIBLZMA_CFLAGS$as_nl" @@ -24310,7 +27722,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__SSL=$py_cv_module__ssl$as_nl" + as_fn_append MODULE_BLOCK "MODULE__SSL_STATE=$py_cv_module__ssl$as_nl" if test "x$py_cv_module__ssl" = xyes; then : as_fn_append MODULE_BLOCK "MODULE__SSL_CFLAGS=$OPENSSL_INCLUDES$as_nl" @@ -24344,7 +27756,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__HASHLIB=$py_cv_module__hashlib$as_nl" + as_fn_append MODULE_BLOCK "MODULE__HASHLIB_STATE=$py_cv_module__hashlib$as_nl" if test "x$py_cv_module__hashlib" = xyes; then : as_fn_append MODULE_BLOCK "MODULE__HASHLIB_CFLAGS=$OPENSSL_INCLUDES$as_nl" @@ -24379,7 +27791,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__TESTCAPI=$py_cv_module__testcapi$as_nl" + as_fn_append MODULE_BLOCK "MODULE__TESTCAPI_STATE=$py_cv_module__testcapi$as_nl" if test "x$py_cv_module__testcapi" = xyes; then : @@ -24413,7 +27825,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__TESTINTERNALCAPI=$py_cv_module__testinternalcapi$as_nl" + as_fn_append MODULE_BLOCK "MODULE__TESTINTERNALCAPI_STATE=$py_cv_module__testinternalcapi$as_nl" if test "x$py_cv_module__testinternalcapi" = xyes; then : @@ -24447,7 +27859,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__TESTBUFFER=$py_cv_module__testbuffer$as_nl" + as_fn_append MODULE_BLOCK "MODULE__TESTBUFFER_STATE=$py_cv_module__testbuffer$as_nl" if test "x$py_cv_module__testbuffer" = xyes; then : @@ -24481,7 +27893,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__TESTIMPORTMULTIPLE=$py_cv_module__testimportmultiple$as_nl" + as_fn_append MODULE_BLOCK "MODULE__TESTIMPORTMULTIPLE_STATE=$py_cv_module__testimportmultiple$as_nl" if test "x$py_cv_module__testimportmultiple" = xyes; then : @@ -24515,7 +27927,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__TESTMULTIPHASE=$py_cv_module__testmultiphase$as_nl" + as_fn_append MODULE_BLOCK "MODULE__TESTMULTIPHASE_STATE=$py_cv_module__testmultiphase$as_nl" if test "x$py_cv_module__testmultiphase" = xyes; then : @@ -24534,6 +27946,40 @@ fi $as_echo "$py_cv_module__testmultiphase" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module xxsubtype" >&5 +$as_echo_n "checking for stdlib extension module xxsubtype... " >&6; } + if test "$py_cv_module_xxsubtype" != "n/a"; then : + + if test "$TEST_MODULES" = yes; then : + if true; then : + py_cv_module_xxsubtype=yes +else + py_cv_module_xxsubtype=missing +fi +else + py_cv_module_xxsubtype=disabled +fi + +fi + as_fn_append MODULE_BLOCK "MODULE_XXSUBTYPE_STATE=$py_cv_module_xxsubtype$as_nl" + if test "x$py_cv_module_xxsubtype" = xyes; then : + + + + +fi + if test "$py_cv_module_xxsubtype" = yes; then + MODULE_XXSUBTYPE_TRUE= + MODULE_XXSUBTYPE_FALSE='#' +else + MODULE_XXSUBTYPE_TRUE='#' + MODULE_XXSUBTYPE_FALSE= +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module_xxsubtype" >&5 +$as_echo "$py_cv_module_xxsubtype" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _xxtestfuzz" >&5 $as_echo_n "checking for stdlib extension module _xxtestfuzz... " >&6; } if test "$py_cv_module__xxtestfuzz" != "n/a"; then : @@ -24549,7 +27995,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__XXTESTFUZZ=$py_cv_module__xxtestfuzz$as_nl" + as_fn_append MODULE_BLOCK "MODULE__XXTESTFUZZ_STATE=$py_cv_module__xxtestfuzz$as_nl" if test "x$py_cv_module__xxtestfuzz" = xyes; then : @@ -24573,7 +28019,7 @@ $as_echo_n "checking for stdlib extension module _ctypes_test... " >&6; } if test "$py_cv_module__ctypes_test" != "n/a"; then : if test "$TEST_MODULES" = yes; then : - if true; then : + if test "$have_libffi" = yes -a "$ac_cv_func_dlopen" = yes; then : py_cv_module__ctypes_test=yes else py_cv_module__ctypes_test=missing @@ -24583,11 +28029,11 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__CTYPES_TEST=$py_cv_module__ctypes_test$as_nl" + as_fn_append MODULE_BLOCK "MODULE__CTYPES_TEST_STATE=$py_cv_module__ctypes_test$as_nl" if test "x$py_cv_module__ctypes_test" = xyes; then : - as_fn_append MODULE_BLOCK "MODULE__CTYPES_TEST_LDFLAGS=-lm$as_nl" + as_fn_append MODULE_BLOCK "MODULE__CTYPES_TEST_LDFLAGS=$LIBM$as_nl" fi if test "$py_cv_module__ctypes_test" = yes; then @@ -24618,7 +28064,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE_XXLIMITED=$py_cv_module_xxlimited$as_nl" + as_fn_append MODULE_BLOCK "MODULE_XXLIMITED_STATE=$py_cv_module_xxlimited$as_nl" if test "x$py_cv_module_xxlimited" = xyes; then : @@ -24652,7 +28098,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE_XXLIMITED_35=$py_cv_module_xxlimited_35$as_nl" + as_fn_append MODULE_BLOCK "MODULE_XXLIMITED_35_STATE=$py_cv_module_xxlimited_35$as_nl" if test "x$py_cv_module_xxlimited_35" = xyes; then : @@ -25011,10 +28457,26 @@ if test -z "${MODULE__CRYPT_TRUE}" && test -z "${MODULE__CRYPT_FALSE}"; then as_fn_error $? "conditional \"MODULE__CRYPT\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${MODULE__CTYPES_TRUE}" && test -z "${MODULE__CTYPES_FALSE}"; then + as_fn_error $? "conditional \"MODULE__CTYPES\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__CURSES_TRUE}" && test -z "${MODULE__CURSES_FALSE}"; then + as_fn_error $? "conditional \"MODULE__CURSES\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__CURSES_PANEL_TRUE}" && test -z "${MODULE__CURSES_PANEL_FALSE}"; then + as_fn_error $? "conditional \"MODULE__CURSES_PANEL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${MODULE__DECIMAL_TRUE}" && test -z "${MODULE__DECIMAL_FALSE}"; then as_fn_error $? "conditional \"MODULE__DECIMAL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${MODULE__DBM_TRUE}" && test -z "${MODULE__DBM_FALSE}"; then + as_fn_error $? "conditional \"MODULE__DBM\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${MODULE__GDBM_TRUE}" && test -z "${MODULE__GDBM_FALSE}"; then as_fn_error $? "conditional \"MODULE__GDBM\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -25023,6 +28485,10 @@ if test -z "${MODULE_NIS_TRUE}" && test -z "${MODULE_NIS_FALSE}"; then as_fn_error $? "conditional \"MODULE_NIS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${MODULE_READLINE_TRUE}" && test -z "${MODULE_READLINE_FALSE}"; then + as_fn_error $? "conditional \"MODULE_READLINE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${MODULE__SQLITE3_TRUE}" && test -z "${MODULE__SQLITE3_FALSE}"; then as_fn_error $? "conditional \"MODULE__SQLITE3\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -25079,6 +28545,10 @@ if test -z "${MODULE__TESTMULTIPHASE_TRUE}" && test -z "${MODULE__TESTMULTIPHASE as_fn_error $? "conditional \"MODULE__TESTMULTIPHASE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${MODULE_XXSUBTYPE_TRUE}" && test -z "${MODULE_XXSUBTYPE_FALSE}"; then + as_fn_error $? "conditional \"MODULE_XXSUBTYPE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${MODULE__XXTESTFUZZ_TRUE}" && test -z "${MODULE__XXTESTFUZZ_FALSE}"; then as_fn_error $? "conditional \"MODULE__XXTESTFUZZ\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -25548,7 +29018,7 @@ $config_files Configuration headers: $config_headers -Report bugs to <https://bugs.python.org/>." +Report bugs to <https://github.com/python/cpython/issues/>." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 @@ -26298,7 +29768,11 @@ fi $as_echo "$as_me: creating Makefile" >&6;} $SHELL $srcdir/Modules/makesetup -c $srcdir/Modules/config.c.in \ -s Modules \ - Modules/Setup.local $MODULES_SETUP_STDLIB Modules/Setup.bootstrap $srcdir/Modules/Setup + Modules/Setup.local Modules/Setup.stdlib Modules/Setup.bootstrap $srcdir/Modules/Setup +if test $? -ne 0; then + as_fn_error $? "makesetup failed" "$LINENO" 5 +fi + mv config.c Modules if test -z "$PKG_CONFIG"; then @@ -26318,3 +29792,16 @@ If you want a release build with all stable optimizations active (PGO, etc), please run ./configure --enable-optimizations " >&6;} fi + +if test "x$PY_SUPPORT_TIER" = x0; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: + +Platform \"$host\" with compiler \"$ac_cv_cc_name\" is not supported by the +CPython core team, see https://peps.python.org/pep-0011/ for more information. +" >&5 +$as_echo "$as_me: WARNING: + +Platform \"$host\" with compiler \"$ac_cv_cc_name\" is not supported by the +CPython core team, see https://peps.python.org/pep-0011/ for more information. +" >&2;} +fi diff --git a/configure.ac b/configure.ac index 9b5926d79d44e9..7d2e83cac8197e 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ dnl *************************************************** dnl * Please run autoreconf -if to test your changes! * dnl *************************************************** dnl -dnl Python's configure script requires autoconf 2.69 and autoconf-archive. +dnl Python's configure.ac file requires autoconf 2.69 and autoconf-archive. dnl # Set VERSION so we only need to edit in one place (i.e., here) @@ -10,7 +10,7 @@ m4_define(PYTHON_VERSION, 3.12) AC_PREREQ([2.69]) -AC_INIT([python],[PYTHON_VERSION],[https://bugs.python.org/]) +AC_INIT([python],[PYTHON_VERSION],[https://github.com/python/cpython/issues/]) m4_ifdef( [AX_C_FLOAT_WORDS_BIGENDIAN], @@ -49,6 +49,48 @@ AC_DEFUN([WITH_SAVE_ENV], [RESTORE_ENV] )dnl +dnl PY_CHECK_FUNC(FUNCTION, [INCLUDES], [AC_DEFINE-VAR]) +AC_DEFUN([PY_CHECK_FUNC], +[ AS_VAR_PUSHDEF([py_var], [ac_cv_func_$1]) + AS_VAR_PUSHDEF([py_define], m4_ifblank([$3], [[HAVE_]m4_toupper($1)], [$3])) + AC_CACHE_CHECK( + [for $1], + [py_var], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([$2], [void *x=$1])], + [AS_VAR_SET([py_var], [yes])], + [AS_VAR_SET([py_var], [no])])] + ) + AS_VAR_IF( + [py_var], + [yes], + [AC_DEFINE([py_define], [1], [Define if you have the '$1' function.])]) + AS_VAR_POPDEF([py_var]) + AS_VAR_POPDEF([py_define]) +]) + +dnl PY_CHECK_LIB(LIBRARY, FUNCTION, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND], [OTHER-LIBRARIES]) +dnl Like AC_CHECK_LIB() but does not modify LIBS +AC_DEFUN([PY_CHECK_LIB], +[AS_VAR_COPY([py_check_lib_save_LIBS], [LIBS])] +[AC_CHECK_LIB($1, $2, $3, $4, $5)] +[AS_VAR_COPY([LIBS], [py_check_lib_save_LIBS])] +) + +dnl PY_CHECK_EMSCRIPTEN_PORT(PKG_VAR, [EMPORT_ARGS]) +dnl Use Emscripten port unless user passes ${PKG_VAR}_CFLAGS +dnl or ${PKG_VAR}_LIBS to configure. +AC_DEFUN([PY_CHECK_EMSCRIPTEN_PORT], [ + AS_VAR_PUSHDEF([py_cflags], [$1_CFLAGS]) + AS_VAR_PUSHDEF([py_libs], [$1_LIBS]) + AS_IF([test "$ac_sys_system" = "Emscripten" -a -z "$py_cflags" -a -z "$py_libs"], [ + py_cflags="$2" + py_libs="$2" + ]) + AS_VAR_POPDEF([py_cflags]) + AS_VAR_POPDEF([py_libs]) +]) + AC_SUBST(BASECPPFLAGS) if test "$srcdir" != . -a "$srcdir" != "$(pwd)"; then # If we're building out-of-tree, we need to make sure the following @@ -143,6 +185,7 @@ AS_VAR_IF([cross_compiling], [yes], FREEZE_MODULE_BOOTSTRAP_DEPS='$(srcdir)/Programs/_freeze_module.py' FREEZE_MODULE='$(FREEZE_MODULE_BOOTSTRAP)' FREEZE_MODULE_DEPS='$(FREEZE_MODULE_BOOTSTRAP_DEPS)' + PYTHON_FOR_BUILD_DEPS='' ], [ dnl internal build tools also depend on Programs/_freeze_module and _bootstrap_python. @@ -150,12 +193,14 @@ AS_VAR_IF([cross_compiling], [yes], FREEZE_MODULE_BOOTSTRAP_DEPS="Programs/_freeze_module" FREEZE_MODULE='$(PYTHON_FOR_FREEZE) $(srcdir)/Programs/_freeze_module.py' FREEZE_MODULE_DEPS="_bootstrap_python \$(srcdir)/Programs/_freeze_module.py" + PYTHON_FOR_BUILD_DEPS='$(BUILDPYTHON)' ] ) AC_SUBST([FREEZE_MODULE_BOOTSTRAP]) AC_SUBST([FREEZE_MODULE_BOOTSTRAP_DEPS]) AC_SUBST([FREEZE_MODULE]) AC_SUBST([FREEZE_MODULE_DEPS]) +AC_SUBST([PYTHON_FOR_BUILD_DEPS]) AC_CHECK_PROGS([PYTHON_FOR_REGEN], [python$PACKAGE_VERSION python3.10 python3.9 python3.8 python3.7 python3.6 python3 python], @@ -708,8 +753,33 @@ if test -z "$CFLAGS"; then CFLAGS= fi +dnl Emscripten SDK and WASI SDK default to wasm32. +dnl On Emscripten use MEMORY64 setting to build target wasm64-emscripten. +dnl for wasm64. +AS_CASE([$host], + [wasm64-*-emscripten], [ + AS_VAR_APPEND([CFLAGS], [" -sMEMORY64=1"]) + AS_VAR_APPEND([LDFLAGS], [" -sMEMORY64=1"]) + ], +) + if test "$ac_sys_system" = "Darwin" then + dnl look for SDKROOT + AC_CHECK_PROG([HAS_XCRUN], [xcrun], [yes], [missing]) + AC_MSG_CHECKING([macOS SDKROOT]) + if test -z "$SDKROOT"; then + dnl SDKROOT not set + if test "$HAS_XCRUN" = "yes"; then + dnl detect with Xcode + SDKROOT=$(xcrun --show-sdk-path) + else + dnl default to root + SDKROOT="/" + fi + fi + AC_MSG_RESULT([$SDKROOT]) + # Compiler selection on MacOSX is more complicated than # AC_PROG_CC can handle, see Mac/README for more # information @@ -770,35 +840,41 @@ AC_PROG_GREP AC_PROG_SED AC_PROG_EGREP +dnl detect compiler name +dnl check for xlc before clang, newer xlc's can use clang as frontend. +dnl check for GCC last, other compilers set __GNUC__, too. +dnl msvc is listed for completeness. +AC_CACHE_CHECK([for CC compiler name], [ac_cv_cc_name], [ +cat > conftest.c <<EOF +#if defined(__INTEL_COMPILER) || defined(__ICC) + icc +#elif defined(__ibmxl__) || defined(__xlc__) || defined(__xlC__) + xlc +#elif defined(_MSC_VER) + msvc +#elif defined(__clang__) + clang +#elif defined(__GNUC__) + gcc +#else +# error unknown compiler +#endif +EOF + +if $CPP $CPPFLAGS conftest.c >conftest.out 2>/dev/null; then + ac_cv_cc_name=`grep -v '^#' conftest.out | grep -v '^ *$' | tr -d ' '` +else + ac_cv_cc_name="unknown" +fi +rm -f conftest.c conftest.out +]) + # checks for UNIX variants that set C preprocessor variables # may set _GNU_SOURCE, __EXTENSIONS__, _POSIX_PTHREAD_SEMANTICS, # _POSIX_SOURCE, _POSIX_1_SOURCE, and more AC_USE_SYSTEM_EXTENSIONS AC_SUBST(CXX) -AC_SUBST(MAINCC) -AC_MSG_CHECKING(for --with-cxx-main=<compiler>) -AC_ARG_WITH(cxx_main, - AS_HELP_STRING([--with-cxx-main@<:@=COMPILER@:>@], - [compile main() and link Python executable with C++ compiler specified in COMPILER (default is $CXX)]), -[ - - case $withval in - no) with_cxx_main=no - MAINCC='$(CC)';; - yes) with_cxx_main=yes - MAINCC='$(CXX)';; - *) with_cxx_main=yes - MAINCC=$withval - if test -z "$CXX" - then - CXX=$withval - fi;; - esac], [ - with_cxx_main=no - MAINCC='$(CC)' -]) -AC_MSG_RESULT($with_cxx_main) preset_cxx="$CXX" if test -z "$CXX" @@ -982,7 +1058,7 @@ cat > conftest.c <<EOF # error unknown wasm32 platform # endif #elif defined(__wasm64__) -# if defined(__EMSCRIPTEN) +# if defined(__EMSCRIPTEN__) wasm64-emscripten # elif defined(__wasi__) wasm64-wasi @@ -1031,9 +1107,45 @@ if test x$MULTIARCH != x; then fi AC_SUBST(MULTIARCH_CPPFLAGS) +dnl Support tiers according to https://peps.python.org/pep-0011/ +dnl +dnl NOTE: Windows support tiers are defined in PC/pyconfig.h. +dnl +AC_MSG_CHECKING([for PEP 11 support tier]) +AS_CASE([$host/$ac_cv_cc_name], + [x86_64-*-linux-gnu/gcc], [PY_SUPPORT_TIER=1], dnl Linux on AMD64, any vendor, glibc, gcc + [x86_64-apple-darwin*/clang], [PY_SUPPORT_TIER=1], dnl macOS on Intel, any version + [i686-pc-windows-msvc/msvc], [PY_SUPPORT_TIER=1], dnl 32bit Windows on Intel, MSVC + [x86_64-pc-windows-msvc/msvc], [PY_SUPPORT_TIER=1], dnl 64bit Windows on AMD64, MSVC + + [aarch64-apple-darwin*/clang], [PY_SUPPORT_TIER=2], dnl macOS on M1, any version + [aarch64-*-linux-gnu/gcc], [PY_SUPPORT_TIER=2], dnl Linux ARM64, glibc, gcc+clang + [aarch64-*-linux-gnu/clang], [PY_SUPPORT_TIER=2], + [powerpc64le-*-linux-gnu/gcc], [PY_SUPPORT_TIER=2], dnl Linux on PPC64 little endian, glibc, gcc + [x86_64-*-linux-gnu/clang], [PY_SUPPORT_TIER=2], dnl Linux on AMD64, any vendor, glibc, clang + + [aarch64-pc-windows-msvc/msvc], [PY_SUPPORT_TIER=3], dnl Windows ARM64, MSVC + [armv7l-*-linux-gnueabihf/gcc], [PY_SUPPORT_TIER=3], dnl ARMv7 LE with hardware floats, any vendor, glibc, gcc + [powerpc64le-*-linux-gnu/clang], [PY_SUPPORT_TIER=3], dnl Linux on PPC64 little endian, glibc, clang + [s390x-*-linux-gnu/gcc], [PY_SUPPORT_TIER=3], dnl Linux on 64bit s390x (big endian), glibc, gcc + [wasm32-unknown-emscripten/clang], [PY_SUPPORT_TIER=3], dnl WebAssembly Emscripten + [wasm32-unknown-wasi/clang], [PY_SUPPORT_TIER=3], dnl WebAssembly System Interface + [x86_64-*-freebsd*/clang], [PY_SUPPORT_TIER=3], dnl FreeBSD on AMD64 + [PY_SUPPORT_TIER=0] +) + +AS_CASE([$PY_SUPPORT_TIER], + [1], [AC_MSG_RESULT([$host/$ac_cv_cc_name has tier 1 (supported)])], + [2], [AC_MSG_RESULT([$host/$ac_cv_cc_name has tier 2 (supported)])], + [3], [AC_MSG_RESULT([$host/$ac_cv_cc_name has tier 3 (partially supported)])], + [AC_MSG_WARN([$host/$ac_cv_cc_name is not supported])] +) + +AC_DEFINE_UNQUOTED([PY_SUPPORT_TIER], [$PY_SUPPORT_TIER], [PEP 11 Support tier (1, 2, 3 or 0 for unsupported)]) + AC_CACHE_CHECK([for -Wl,--no-as-needed], [ac_cv_wl_no_as_needed], [ save_LDFLAGS="$LDFLAGS" - AS_VAR_APPEND([LDFLAGS], [-Wl,--no-as-needed]) + AS_VAR_APPEND([LDFLAGS], [" -Wl,--no-as-needed"]) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])], [NO_AS_NEEDED="-Wl,--no-as-needed" ac_cv_wl_no_as_needed=yes], @@ -1233,7 +1345,7 @@ AC_SUBST(LINKCC) AC_MSG_CHECKING(LINKCC) if test -z "$LINKCC" then - LINKCC='$(PURIFY) $(MAINCC)' + LINKCC='$(PURIFY) $(CC)' case $ac_sys_system in QNX*) # qcc must be used because the other compilers do not @@ -1413,28 +1525,63 @@ if test "$cross_compiling" = yes; then fi AC_ARG_VAR([HOSTRUNNER], [Program to run CPython for the host platform]) -AC_MSG_CHECKING([HOSTRUNNER]) if test -z "$HOSTRUNNER" then AS_CASE([$ac_sys_system/$ac_sys_emscripten_target], [Emscripten/node*], [ + AC_PATH_TOOL([NODE], [node], [node]) + HOSTRUNNER="$NODE" + # bigint for ctypes c_longlong, c_longdouble + # no longer available in Node 16 + AC_CACHE_CHECK([for node --experimental-wasm-bigint], [ac_cv_tool_node_wasm_bigint], [ + if $NODE -v --experimental-wasm-bigint > /dev/null 2>&1; then + ac_cv_tool_node_wasm_bigint=yes + else + ac_cv_tool_node_wasm_bigint=no + fi + ]) + AS_VAR_IF([ac_cv_tool_node_wasm_bigint], [yes], [ + AS_VAR_APPEND([HOSTRUNNER], [" --experimental-wasm-bigint"]) + ]) + AS_VAR_IF([enable_wasm_pthreads], [yes], [ - HOSTRUNNER='node --experimental-wasm-threads --experimental-wasm-bulk-memory' - ], [ - HOSTRUNNER='node' + AS_VAR_APPEND([HOSTRUNNER], [" --experimental-wasm-threads"]) + # no longer available in Node 16 + AC_CACHE_CHECK([for node --experimental-wasm-bulk-memory], [ac_cv_tool_node_wasm_bulk_memory], [ + if $NODE -v --experimental-wasm-bulk-memory > /dev/null 2>&1; then + ac_cv_tool_node_wasm_bulk_memory=yes + else + ac_cv_tool_node_wasm_bulk_memory=no + fi + ]) + AS_VAR_IF([ac_cv_tool_node_wasm_bulk_memory], [yes], [ + AS_VAR_APPEND([HOSTRUNNER], [" --experimental-wasm-bulk-memory"]) + ]) ]) + + AS_VAR_IF([host_cpu], [wasm64], [AS_VAR_APPEND([HOSTRUNNER], [" --experimental-wasm-memory64"])]) ], + dnl TODO: support other WASI runtimes + dnl wasmtime starts the proces with "/" as CWD. For OOT builds add the + dnl directory containing _sysconfigdata to PYTHONPATH. + [WASI/*], [HOSTRUNNER='wasmtime run --env PYTHONPATH=/$(shell realpath --relative-to $(abs_srcdir) $(abs_builddir))/$(shell cat pybuilddir.txt):/Lib --mapdir /::$(srcdir) --'], [HOSTRUNNER=''] ) fi AC_SUBST([HOSTRUNNER]) +AC_MSG_CHECKING([HOSTRUNNER]) AC_MSG_RESULT([$HOSTRUNNER]) +if test -n "$HOSTRUNNER"; then + dnl Pass hostrunner variable as env var in order to expand shell expressions. + PYTHON_FOR_BUILD="_PYTHON_HOSTRUNNER='$HOSTRUNNER' $PYTHON_FOR_BUILD" +fi + AC_MSG_RESULT($LDLIBRARY) # LIBRARY_DEPS, LINK_PYTHON_OBJS and LINK_PYTHON_DEPS variable AS_CASE([$ac_sys_system/$ac_sys_emscripten_target], - [Emscripten/browser*], [LIBRARY_DEPS='$(PY3LIBRARY) $(WASM_STDLIB)'], + [Emscripten/browser*], [LIBRARY_DEPS='$(PY3LIBRARY) $(WASM_STDLIB) python.html python.worker.js'], [LIBRARY_DEPS='$(PY3LIBRARY) $(EXPORTSYMS)'] ) LINK_PYTHON_DEPS='$(LIBRARY_DEPS)' @@ -1716,17 +1863,25 @@ if test "$Py_LTO" = 'true' ; then # Any changes made here should be reflected in the GCC+Darwin case below if test $Py_LTO_POLICY = default then - LTOFLAGS="-flto -Wl,-export_dynamic" - LTOCFLAGS="-flto" + # Check that ThinLTO is accepted. + AX_CHECK_COMPILE_FLAG([-flto=thin],[ + LTOFLAGS="-flto=thin -Wl,-export_dynamic -Wl,-object_path_lto,\"\$@\".lto" + LTOCFLAGS="-flto=thin" + ],[ + LTOFLAGS="-flto -Wl,-export_dynamic -Wl,-object_path_lto,\"\$@\".lto" + LTOCFLAGS="-flto" + ] + ) else - LTOFLAGS="-flto=${Py_LTO_POLICY} -Wl,-export_dynamic" + LTOFLAGS="-flto=${Py_LTO_POLICY} -Wl,-export_dynamic -Wl,-object_path_lto,\"\$@\".lto" LTOCFLAGS="-flto=${Py_LTO_POLICY}" fi ;; *) if test $Py_LTO_POLICY = default then - LTOFLAGS="-flto" + # Check that ThinLTO is accepted + AX_CHECK_COMPILE_FLAG([-flto=thin],[LTOFLAGS="-flto=thin"],[LTOFLAGS="-flto"]) else LTOFLAGS="-flto=${Py_LTO_POLICY}" fi @@ -1749,7 +1904,7 @@ if test "$Py_LTO" = 'true' ; then LDFLAGS_NOLTO="-fno-lto" case $ac_sys_system in Darwin*) - LTOFLAGS="-flto -Wl,-export_dynamic" + LTOFLAGS="-flto -Wl,-export_dynamic -Wl,-object_path_lto,\"\$@\".lto" LTOCFLAGS="-flto" ;; *) @@ -1770,6 +1925,59 @@ if test "$Py_LTO" = 'true' ; then LDFLAGS_NODIST="$LDFLAGS_NODIST $LTOFLAGS" fi +# Enable bolt flags +Py_BOLT='false' +AC_MSG_CHECKING(for --enable-bolt) +AC_ARG_ENABLE(bolt, AS_HELP_STRING( + [--enable-bolt], + [enable usage of the llvm-bolt post-link optimizer (default is no)]), +[ +if test "$enableval" != no +then + Py_BOLT='true' + AC_MSG_RESULT(yes); +else + Py_BOLT='false' + AC_MSG_RESULT(no); +fi], +[AC_MSG_RESULT(no)]) + +AC_SUBST(PREBOLT_RULE) +if test "$Py_BOLT" = 'true' ; then + PREBOLT_RULE="${DEF_MAKE_ALL_RULE}" + DEF_MAKE_ALL_RULE="bolt-opt" + DEF_MAKE_RULE="build_all" + + # These flags are required for bolt to work: + CFLAGS_NODIST="$CFLAGS_NODIST -fno-reorder-blocks-and-partition" + LDFLAGS_NODIST="$LDFLAGS_NODIST -Wl,--emit-relocs" + + # These flags are required to get good performance from bolt: + CFLAGS_NODIST="$CFLAGS_NODIST -fno-pie" + # We want to add these no-pie flags to linking executables but not shared libraries: + LINKCC="$LINKCC -fno-pie -no-pie" + # Designate the DWARF version into 4 since the LLVM-BOLT does not support DWARF5 yet. + CFLAGS="$CFLAGS -gdwarf-4" + LDFLAGS="$LDFLAGS -gdwarf-4" + AC_SUBST(LLVM_BOLT) + AC_PATH_TOOL(LLVM_BOLT, llvm-bolt, '', ${llvm_path}) + if test -n "${LLVM_BOLT}" -a -x "${LLVM_BOLT}" + then + AC_MSG_RESULT("Found llvm-bolt") + else + AC_MSG_ERROR([llvm-bolt is required for a --enable-bolt build but could not be found.]) + fi + + AC_SUBST(MERGE_FDATA) + AC_PATH_TOOL(MERGE_FDATA, merge-fdata, '', ${llvm_path}) + if test -n "${MERGE_FDATA}" -a -x "${MERGE_FDATA}" + then + AC_MSG_RESULT("Found merge-fdata") + else + AC_MSG_ERROR([merge-fdata is required for a --enable-bolt build but could not be found.]) + fi +fi + # Enable PGO flags. AC_SUBST(PGO_PROF_GEN_FLAG) AC_SUBST(PGO_PROF_USE_FLAG) @@ -1951,6 +2159,9 @@ AS_CASE([$ac_sys_system], dnl Start with 20 MB and allow to grow AS_VAR_APPEND([LDFLAGS_NODIST], [" -sALLOW_MEMORY_GROWTH -sTOTAL_MEMORY=20971520"]) + dnl map int64_t and uint64_t to JS bigint + AS_VAR_APPEND([LDFLAGS_NODIST], [" -sWASM_BIGINT"]) + dnl Include file system support AS_VAR_APPEND([LDFLAGS_NODIST], [" -sFORCE_FILESYSTEM -lidbfs.js -lnodefs.js -lproxyfs.js -lworkerfs.js"]) @@ -2504,8 +2715,9 @@ AC_DEFINE(STDC_HEADERS, 1, [Define to 1 if you have the ANSI C header files.]) # checks for header files AC_CHECK_HEADERS([ \ alloca.h asm/types.h bluetooth.h conio.h crypt.h direct.h dlfcn.h endian.h errno.h fcntl.h grp.h \ - ieeefp.h io.h langinfo.h libintl.h libutil.h linux/auxvec.h sys/auxv.h linux/memfd.h linux/random.h linux/soundcard.h \ - linux/tipc.h linux/wait.h netinet/in.h netpacket/packet.h poll.h process.h pthread.h pty.h \ + ieeefp.h io.h langinfo.h libintl.h libutil.h linux/auxvec.h sys/auxv.h linux/fs.h linux/memfd.h \ + linux/random.h linux/soundcard.h \ + linux/tipc.h linux/wait.h netdb.h netinet/in.h netpacket/packet.h poll.h process.h pthread.h pty.h \ sched.h setjmp.h shadow.h signal.h spawn.h stropts.h sys/audioio.h sys/bsdtty.h sys/devpoll.h \ sys/endian.h sys/epoll.h sys/event.h sys/eventfd.h sys/file.h sys/ioctl.h sys/kern_control.h \ sys/loadavg.h sys/lock.h sys/memfd.h sys/mkdev.h sys/mman.h sys/modem.h sys/param.h sys/poll.h \ @@ -2849,6 +3061,33 @@ else AC_MSG_RESULT(no) fi +# Check for --with-dsymutil +AC_SUBST(DSYMUTIL) +AC_SUBST(DSYMUTIL_PATH) +DSYMUTIL= +DSYMUTIL_PATH= +AC_MSG_CHECKING(for --with-dsymutil) +AC_ARG_WITH(dsymutil, + AS_HELP_STRING([--with-dsymutil], [link debug information into final executable with dsymutil in macOS (default is no)]), +[ +if test "$withval" != no +then + if test "$MACHDEP" != "darwin"; then + AC_MSG_ERROR([dsymutil debug linking is only available in macOS.]) + fi + AC_MSG_RESULT(yes); + DSYMUTIL='true' +else AC_MSG_RESULT(no); DSYMUTIL= +fi], +[AC_MSG_RESULT(no)]) + +if test "$DSYMUTIL"; then + AC_PATH_PROG(DSYMUTIL_PATH, [dsymutil], [not found]) + if test "$DSYMUTIL_PATH" = "not found"; then + AC_MSG_ERROR([dsymutil command not found on \$PATH]) + fi +fi + AC_MSG_CHECKING(for dyld) case $ac_sys_system/$ac_sys_release in Darwin/*) @@ -3221,6 +3460,26 @@ case "$ac_sys_system" in esac AC_MSG_RESULT($SHLIBS) +dnl perf trampoline is Linux specific and requires an arch-specific +dnl trampoline in asssembly. +AC_MSG_CHECKING([perf trampoline]) +AS_CASE([$PLATFORM_TRIPLET], + [x86_64-linux-gnu], [perf_trampoline=yes], + [aarch64-linux-gnu], [perf_trampoline=yes], + [perf_trampoline=no] +) +AC_MSG_RESULT([$perf_trampoline]) + +AS_VAR_IF([perf_trampoline], [yes], [ + AC_DEFINE([PY_HAVE_PERF_TRAMPOLINE], [1], [Define to 1 if you have the perf trampoline.]) + PERF_TRAMPOLINE_OBJ=Objects/asm_trampoline.o + + dnl perf needs frame pointers for unwinding, include compiler option in debug builds + AS_VAR_IF([Py_DEBUG], [true], [ + AS_VAR_APPEND([BASECFLAGS], [" -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"]) + ]) +]) +AC_SUBST([PERF_TRAMPOLINE_OBJ]) # checks for libraries AC_CHECK_LIB(sendfile, sendfile) @@ -3255,12 +3514,12 @@ AS_VAR_IF([have_uuid], [missing], [ AC_DEFINE([HAVE_UUID_H], [1]) AC_DEFINE([HAVE_UUID_GENERATE_TIME_SAFE], [1]) ], [ - AC_CHECK_HEADERS([uuid/uuid.h], [ - WITH_SAVE_ENV( - [AC_CHECK_LIB([uuid], [uuid_generate_time], [have_uuid=yes]) - ]) - WITH_SAVE_ENV([ - AC_CHECK_LIB([uuid], [uuid_generate_time_safe], [ + WITH_SAVE_ENV([ + CPPFLAGS="$CPPFLAGS $LIBUUID_CFLAGS" + LDFLAGS="$LDFLAGS $LIBUUID_LIBS" + AC_CHECK_HEADERS([uuid/uuid.h], [ + PY_CHECK_LIB([uuid], [uuid_generate_time], [have_uuid=yes]) + PY_CHECK_LIB([uuid], [uuid_generate_time_safe], [ have_uuid=yes AC_DEFINE([HAVE_UUID_GENERATE_TIME_SAFE], [1]) ]) @@ -3453,7 +3712,6 @@ AS_VAR_IF([with_system_expat], [yes], [ ]) AC_SUBST([LIBEXPAT_CFLAGS]) -AC_SUBST([LIBEXPAT_LDFLAGS]) AC_SUBST([LIBEXPAT_INTERNAL]) # Check for use of the system libffi library @@ -3483,12 +3741,66 @@ else 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="" -fi -AC_SUBST(LIBFFI_INCLUDEDIR) +dnl detect libffi +have_libffi=missing +AS_VAR_IF([with_system_ffi], [yes], [ + PKG_CHECK_MODULES([LIBFFI], [libffi], [have_libffi=yes], [ + WITH_SAVE_ENV([ + CPPFLAGS="$CPPFLAGS $LIBFFI_CFLAGS" + LDFLAGS="$LDFLAGS $LIBFFI_LIBS" + AC_CHECK_HEADER([ffi.h], [ + AC_CHECK_LIB([ffi], [ffi_call], [ + have_libffi=yes + LIBFFI_CFLAGS=${LIBFFI_CFLAGS-""} + LIBFFI_LIBS=${LIBFFI_LIBS-"-lffi"} + ], [have_libffi=no]) + ]) + ]) + ]) +], [ + AS_VAR_IF([ac_sys_system], [Darwin], [ + WITH_SAVE_ENV([ + CFLAGS="-I${SDKROOT}/usr/include/ffi $CFLAGS" + AC_CHECK_HEADER([ffi.h], [ + AC_CHECK_LIB([ffi], [ffi_call], [ + dnl use ffi from SDK root + have_libffi=yes + LIBFFI_CFLAGS="-I${SDKROOT}/usr/include/ffi -DUSING_APPLE_OS_LIBFFI=1" + LIBFFI_LIBS="-lffi" + ], [have_libffi=no]) + ]) + ]) + ]) +]) + +AS_VAR_IF([have_libffi], [yes], [ + ctypes_malloc_closure=no + AS_CASE([$ac_sys_system], + [Darwin], [ + dnl when do we need USING_APPLE_OS_LIBFFI? + AS_VAR_APPEND([LIBFFI_CFLAGS], [" -I\$(srcdir)/Modules/_ctypes/darwin -DMACOSX"]) + ctypes_malloc_closure=yes + ], + [sunos5], [AS_VAR_APPEND([LIBFFI_LIBS], [" -mimpure-text"])] + ) + AS_VAR_IF([ctypes_malloc_closure], [yes], [ + MODULE__CTYPES_MALLOC_CLOSURE=_ctypes/malloc_closure.c + AS_VAR_APPEND([LIBFFI_CFLAGS], [" -DUSING_MALLOC_CLOSURE_DOT_C=1"]) + ]) + AC_SUBST([MODULE__CTYPES_MALLOC_CLOSURE]) + + dnl HAVE_LIBDL: for dlopen, see gh-76828 + AS_VAR_IF([ac_cv_lib_dl_dlopen], [yes], [AS_VAR_APPEND([LIBFFI_LIBS], [" -ldl"])]) + + WITH_SAVE_ENV([ + CFLAGS="$LIBFFI_CFLAGS $CFLAGS" + LDFLAGS="$LIBFFI_LIBS $LDFLAGS" + + PY_CHECK_FUNC([ffi_prep_cif_var], [#include <ffi.h>]) + PY_CHECK_FUNC([ffi_prep_closure_loc], [#include <ffi.h>]) + PY_CHECK_FUNC([ffi_closure_alloc], [#include <ffi.h>]) + ]) +]) # Check for use of the system libmpdec library AC_MSG_CHECKING(for --with-system-libmpdec) @@ -3506,10 +3818,14 @@ AS_VAR_IF([with_system_libmpdec], [yes], [ LIBMPDEC_CFLAGS="-I\$(srcdir)/Modules/_decimal/libmpdec" LIBMPDEC_LDFLAGS="-lm \$(LIBMPDEC_A)" LIBMPDEC_INTERNAL="\$(LIBMPDEC_A)" + + dnl Disable forced inlining in debug builds, see GH-94847 + AS_VAR_IF([with_pydebug], [yes], [ + AS_VAR_APPEND([LIBMPDEC_CFLAGS], [" -DTEST_COVERAGE"]) + ]) ]) AC_SUBST([LIBMPDEC_CFLAGS]) -AC_SUBST([LIBMPDEC_LDFLAGS]) AC_SUBST([LIBMPDEC_INTERNAL]) # Check whether _decimal should use a coroutine-local or thread-local context @@ -3603,7 +3919,7 @@ PKG_CHECK_MODULES([LIBNSL], [libnsl], [have_nis=yes], [ AS_VAR_IF([have_nis], [yes], [ WITH_SAVE_ENV([ - CPPFLAGS="$LIBNSL_CFLAGS $CFLAGS" + CPPFLAGS="$CPPFLAGS $LIBNSL_CFLAGS" AC_CHECK_HEADERS([rpc/rpc.h]) ]) ]) @@ -3614,6 +3930,9 @@ AS_CASE([$ac_sys_system], [OSSAUDIODEV_LIBS=""] ) +dnl detect sqlite3 from Emscripten emport +PY_CHECK_EMSCRIPTEN_PORT([LIBSQLITE3], [-sUSE_SQLITE3]) + dnl Check for SQLite library. Use pkg-config if available. PKG_CHECK_MODULES( [LIBSQLITE3], [sqlite3 >= 3.7.15], [], [ @@ -3633,7 +3952,7 @@ AC_DEFUN([PY_CHECK_SQLITE_FUNC], [ WITH_SAVE_ENV([ dnl bpo-45774/GH-29507: The CPP check in AC_CHECK_HEADER can fail on FreeBSD, dnl hence CPPFLAGS instead of CFLAGS. - CPPFLAGS="$LIBSQLITE3_CFLAGS $CFLAGS" + CPPFLAGS="$CPPFLAGS $LIBSQLITE3_CFLAGS" LDFLAGS="$LIBSQLITE3_LIBS $LDFLAGS" AC_CHECK_HEADER([sqlite3.h], [ @@ -3737,7 +4056,7 @@ AS_CASE([$ac_sys_system], ) WITH_SAVE_ENV([ - CPPFLAGS="$TCLTK_CFLAGS $CFLAGS" + CPPFLAGS="$CPPFLAGS $TCLTK_CFLAGS" LIBS="$TCLTK_LIBS $LDFLAGS" AC_LINK_IFELSE([ @@ -3779,7 +4098,7 @@ dnl NOTE: gdbm does not provide a pkgconf file. AC_ARG_VAR([GDBM_CFLAGS], [C compiler flags for gdbm]) AC_ARG_VAR([GDBM_LIBS], [additional linker flags for gdbm]) WITH_SAVE_ENV([ - CPPFLAGS="$GDBM_CFLAGS $CFLAGS" + CPPFLAGS="$CPPFLAGS $GDBM_CFLAGS" LDFLAGS="$GDBM_LIBS $LDFLAGS" AC_CHECK_HEADERS([gdbm.h], [ AC_CHECK_LIB([gdbm], [gdbm_open], [ @@ -3789,17 +4108,30 @@ WITH_SAVE_ENV([ ], [have_gdbm=no]) ]) -# check for _dbmmodule.c dependencies +dnl check for _dbmmodule.c dependencies +dnl ndbm, gdbm_compat, libdb AC_CHECK_HEADERS([ndbm.h], [ - LIBS_SAVE="$LIBS" - AC_CHECK_LIB([ndbm], [dbm_open]) - LIBS="$LIBS_SAVE" - AC_CHECK_LIB([gdbm_compat], [dbm_open]) - LIBS="$LIBS_SAVE" + WITH_SAVE_ENV([ + AC_SEARCH_LIBS([dbm_open], [ndbm gdbm_compat]) + ]) ]) -# "gdbm-ndbm.h" and "gdbm/ndbm.h" are both normalized to "gdbm_ndbm_h" -# unset ac_cv_header_gdbm_ndbm_h to prevent false positive cache hits. +AC_MSG_CHECKING([for ndbm presence and linker args]) +AS_CASE([$ac_cv_search_dbm_open], + [*ndbm*|*gdbm_compat*], [ + dbm_ndbm="$ac_cv_search_dbm_open" + have_ndbm=yes + ], + [none*], [ + dbm_ndbm="" + have_ndbm=yes + ], + [no], [have_ndbm=no] +) +AC_MSG_RESULT([$have_ndbm ($dbm_ndbm)]) + +dnl "gdbm-ndbm.h" and "gdbm/ndbm.h" are both normalized to "gdbm_ndbm_h" +dnl unset ac_cv_header_gdbm_ndbm_h to prevent false positive cache hits. AS_UNSET([ac_cv_header_gdbm_ndbm_h]) AC_CACHE_VAL([ac_cv_header_gdbm_slash_ndbm_h], [ AC_CHECK_HEADER( @@ -3824,26 +4156,26 @@ AS_VAR_IF([ac_cv_header_gdbm_dash_ndbm_h], [yes], [ AS_UNSET([ac_cv_header_gdbm_ndbm_h]) if test "$ac_cv_header_gdbm_slash_ndbm_h" = yes -o "$ac_cv_header_gdbm_dash_ndbm_h" = yes; then - LIBS_SAVE="$LIBS" - AC_CHECK_LIB([gdbm_compat], [dbm_open]) - LIBS="$LIBS_SAVE" + WITH_SAVE_ENV([ + AC_SEARCH_LIBS([dbm_open], [gdbm_compat]) + ]) fi # Check for libdb >= 5 with dbm_open() # db.h re-defines the name of the function AC_CHECK_HEADERS([db.h], [ AC_CACHE_CHECK([for libdb], [ac_cv_have_libdb], [ - LIBS_SAVE="$LIBS" - LIBS="$LIBS -ldb" - AC_LINK_IFELSE([AC_LANG_PROGRAM([ - #define DB_DBM_HSEARCH 1 - #include <db.h> - #if DB_VERSION_MAJOR < 5 - #error "dh.h: DB_VERSION_MAJOR < 5 is not supported." - #endif - ], [DBM *dbm = dbm_open(NULL, 0, 0)]) - ], [ac_cv_have_libdb=yes], [ac_cv_have_libdb=no]) - LIBS="$LIBS_SAVE" + WITH_SAVE_ENV([ + LIBS="$LIBS -ldb" + AC_LINK_IFELSE([AC_LANG_PROGRAM([ + #define DB_DBM_HSEARCH 1 + #include <db.h> + #if DB_VERSION_MAJOR < 5 + #error "dh.h: DB_VERSION_MAJOR < 5 is not supported." + #endif + ], [DBM *dbm = dbm_open(NULL, 0, 0)]) + ], [ac_cv_have_libdb=yes], [ac_cv_have_libdb=no]) + ]) ]) AS_VAR_IF([ac_cv_have_libdb], [yes], [ AC_DEFINE([HAVE_LIBDB], [1], [Define to 1 if you have the `db' library (-ldb).]) @@ -3851,7 +4183,7 @@ AC_CHECK_HEADERS([db.h], [ ]) # Check for --with-dbmliborder -AC_MSG_CHECKING(for --with-dbmliborder) +AC_MSG_CHECKING([for --with-dbmliborder]) AC_ARG_WITH(dbmliborder, AS_HELP_STRING([--with-dbmliborder=db1:db2:...], [override order to check db backends for dbm; a valid value is a colon separated string with the backend names `ndbm', `gdbm' and `bdb'.]), [], [with_dbmliborder=gdbm:ndbm:bdb]) @@ -3871,7 +4203,42 @@ IFS=$as_save_IFS AS_VAR_IF([with_dbmliborder], [error], [ AC_MSG_ERROR([proper usage is --with-dbmliborder=db1:db2:... (gdbm:ndbm:bdb)]) ]) -AC_MSG_RESULT($with_dbmliborder) +AC_MSG_RESULT([$with_dbmliborder]) + +AC_MSG_CHECKING([for _dbm module CFLAGS and LIBS]) +have_dbm=no +as_save_IFS=$IFS +IFS=: +for db in $with_dbmliborder; do + case "$db" in + ndbm) + if test "$have_ndbm" = yes; then + DBM_CFLAGS="-DUSE_NDBM" + DBM_LIBS="$dbm_ndbm" + have_dbm=yes + break + fi + ;; + gdbm) + if test "$have_gdbm_compat" = yes; then + DBM_CFLAGS="-DUSE_GDBM_COMPAT" + DBM_LIBS="-lgdbm_compat" + have_dbm=yes + break + fi + ;; + bdb) + if test "$ac_cv_have_libdb" = yes; then + DBM_CFLAGS="-DUSE_BERKDB" + DBM_LIBS="-ldb" + have_dbm=yes + break + fi + ;; + esac +done +IFS=$as_save_IFS +AC_MSG_RESULT([$DBM_CFLAGS $DBM_LIBS]) # Templates for things AC_DEFINEd more than once. # For a single AC_DEFINE, no template is needed. @@ -3961,9 +4328,11 @@ pthread_create (NULL, NULL, start_routine, NULL)]])],[ posix_threads=yes LIBS="$LIBS -lcma" ],[ - AC_MSG_ERROR([could not find pthreads on your system]) - ]) - ])])])])]) + AS_CASE([$ac_sys_system], + [WASI], [posix_threads=stub], + [AC_MSG_ERROR([could not find pthreads on your system])] + ) + ])])])])])]) AC_CHECK_LIB(mpc, usconfig, [ LIBS="$LIBS -lmpc" @@ -4026,6 +4395,9 @@ if test "$posix_threads" = "yes"; then AC_CHECK_FUNCS(pthread_getcpuclockid) fi +AS_VAR_IF([posix_threads], [stub], [ + AC_DEFINE([HAVE_PTHREAD_STUBS], [1], [Define if platform requires stubbed pthreads support]) +]) # Check for enable-ipv6 AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified]) @@ -4407,11 +4779,11 @@ fi # checks for library functions AC_CHECK_FUNCS([ \ accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ - copy_file_range ctermid dup3 execv explicit_bzero explicit_memset \ + copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ - getgrnam_r getgrouplist getgroups getitimer getloadavg getlogin \ + getgrnam_r getgrouplist getgroups gethostname getitimer getloadavg getlogin \ getpeername getpgid getpid getppid getpriority _getpty \ getpwent getpwnam_r getpwuid getpwuid_r getresgid getresuid getrusage getsid getspent \ getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ @@ -4445,26 +4817,6 @@ AC_CHECK_DECL(dirfd, [#include <sys/types.h> #include <dirent.h>]) -dnl PY_CHECK_FUNC(FUNCTION, [INCLUDES], [AC_DEFINE-VAR]) -AC_DEFUN([PY_CHECK_FUNC], -[ AS_VAR_PUSHDEF([py_var], [ac_cv_func_$1]) - AS_VAR_PUSHDEF([py_define], m4_ifblank([$3], [[HAVE_]m4_toupper($1)], [$3])) - AC_CACHE_CHECK( - [for $1], - [py_var], - [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([$2], [void *x=$1])], - [AS_VAR_SET([py_var], [yes])], - [AS_VAR_SET([py_var], [no])])] - ) - AS_VAR_IF( - [py_var], - [yes], - [AC_DEFINE([py_define], [1], [Define if you have the '$1' function.])]) - AS_VAR_POPDEF([py_var]) - AS_VAR_POPDEF([py_define]) -]) - # For some functions, having a definition is not sufficient, since # we want to take their address. PY_CHECK_FUNC([chroot], [#include <unistd.h>]) @@ -4595,81 +4947,98 @@ fi dnl Check for compression libraries AH_TEMPLATE([HAVE_ZLIB_COPY], [Define if the zlib library has inflateCopy]) +dnl detect zlib from Emscripten emport +PY_CHECK_EMSCRIPTEN_PORT([ZLIB], [-sUSE_ZLIB]) + PKG_CHECK_MODULES([ZLIB], [zlib >= 1.2.0], [ have_zlib=yes dnl zlib 1.2.0 (2003) added inflateCopy AC_DEFINE([HAVE_ZLIB_COPY], [1]) ], [ - AC_CHECK_HEADERS([zlib.h], [ - WITH_SAVE_ENV([ - AC_CHECK_LIB([z], [gzread], [ - have_zlib=yes - ZLIB_CFLAGS=${ZLIB_CFLAGS-""} - ZLIB_LIBS=${ZLIB_LIBS-"-lz"} - AC_CHECK_LIB([z], [inflateCopy], [AC_DEFINE([HAVE_ZLIB_COPY], [1])]) - ], [ - have_zlib=no - ]) + WITH_SAVE_ENV([ + CPPFLAGS="$CPPFLAGS $ZLIB_CFLAGS" + LDFLAGS="$LDFLAGS $ZLIB_LIBS" + AC_CHECK_HEADERS([zlib.h], [ + PY_CHECK_LIB([z], [gzread], [have_zlib=yes], [have_zlib=no]) + ], [have_zlib=no]) + AS_VAR_IF([have_zlib], [yes], [ + ZLIB_CFLAGS=${ZLIB_CFLAGS-""} + ZLIB_LIBS=${ZLIB_LIBS-"-lz"} + PY_CHECK_LIB([z], [inflateCopy], [AC_DEFINE([HAVE_ZLIB_COPY], [1])]) ]) - ], [have_zlib=no]) + ]) ]) -if test "$have_zlib" = "yes" -a "$ac_sys_system" = "Emscripten" -a "$ZLIB_LIBS" = "-lz"; then - ZLIB_CFLAGS="-sUSE_ZLIB" - ZLIB_LIBS="-sUSE_ZLIB" -fi - dnl binascii can use zlib for optimized crc32. AS_VAR_IF([have_zlib], [yes], [ BINASCII_CFLAGS="-DUSE_ZLIB_CRC32 $ZLIB_CFLAGS" BINASCII_LIBS="$ZLIB_LIBS" ]) +dnl detect bzip2 from Emscripten emport +PY_CHECK_EMSCRIPTEN_PORT([BZIP2], [-sUSE_BZIP2]) + PKG_CHECK_MODULES([BZIP2], [bzip2], [have_bzip2=yes], [ - AC_CHECK_HEADERS([bzlib.h], [ - WITH_SAVE_ENV([ - AC_CHECK_LIB([bz2], [BZ2_bzCompress], [ - have_bzip2=yes - BZIP2_CFLAGS=${BZIP2_CFLAGS-""} - BZIP2_LIBS=${BZIP2_LIBS-"-lbz2"} - ], [have_bzip2=no]) + WITH_SAVE_ENV([ + CPPFLAGS="$CPPFLAGS $BZIP2_CFLAGS" + LDFLAGS="$LDFLAGS $BZIP2_LIBS" + AC_CHECK_HEADERS([bzlib.h], [ + AC_CHECK_LIB([bz2], [BZ2_bzCompress], [have_bzip2=yes], [have_bzip2=no]) + ], [have_bzip2=no]) + AS_VAR_IF([have_bzip2], [yes], [ + BZIP2_CFLAGS=${BZIP2_CFLAGS-""} + BZIP2_LIBS=${BZIP2_LIBS-"-lbz2"} ]) - ], [have_bzip2=no]) + ]) ]) -if test "$have_bzip2" = "yes" -a "$ac_sys_system" = "Emscripten" -a "$BZIP2_LIBS" = "-lbz2"; then - BZIP2_CFLAGS="-sUSE_BZIP2" - BZIP2_LIBS="-sUSE_BZIP2" -fi - - PKG_CHECK_MODULES([LIBLZMA], [liblzma], [have_liblzma=yes], [ - AC_CHECK_HEADERS([lzma.h], [ - WITH_SAVE_ENV([ - AC_CHECK_LIB([lzma], [lzma_easy_encoder], [ - have_liblzma=yes - LIBLZMA_CFLAGS=${LIBLZMA_CFLAGS-""} - LIBLZMA_LIBS=${LIBLZMA_LIBS-"-llzma"} - ], [have_liblzma=no]) + WITH_SAVE_ENV([ + CPPFLAGS="$CPPFLAGS $LIBLZMA_CFLAGS" + LDFLAGS="$LDFLAGS $LIBLZMA_LIBS" + AC_CHECK_HEADERS([lzma.h], [ + AC_CHECK_LIB([lzma], [lzma_easy_encoder], [have_liblzma=yes], [have_liblzma=no]) + ], [have_liblzma=no]) + AS_VAR_IF([have_liblzma], [yes], [ + LIBLZMA_CFLAGS=${LIBLZMA_CFLAGS-""} + LIBLZMA_LIBS=${LIBLZMA_LIBS-"-llzma"} ]) - ], [have_liblzma=no]) + ]) ]) -PY_CHECK_FUNC([hstrerror], [#include <netdb.h>]) +dnl PY_CHECK_NETDB_FUNC(FUNCTION) +AC_DEFUN([PY_CHECK_NETDB_FUNC], [PY_CHECK_FUNC([$1], [#include <netdb.h>])]) -PY_CHECK_FUNC([inet_aton], [ -#include <sys/types.h> -#include <sys/socket.h> -#include <netinet/in.h> -#include <arpa/inet.h> -]) +PY_CHECK_NETDB_FUNC([hstrerror]) +dnl not available in WASI yet +PY_CHECK_NETDB_FUNC([getservbyname]) +PY_CHECK_NETDB_FUNC([getservbyport]) +PY_CHECK_NETDB_FUNC([gethostbyname]) +PY_CHECK_NETDB_FUNC([gethostbyaddr]) +PY_CHECK_NETDB_FUNC([getprotobyname]) -PY_CHECK_FUNC([inet_pton], [ +dnl PY_CHECK_SOCKET_FUNC(FUNCTION) +AC_DEFUN([PY_CHECK_SOCKET_FUNC], [PY_CHECK_FUNC([$1], [ #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> -]) +])]) + +PY_CHECK_SOCKET_FUNC([inet_aton]) +PY_CHECK_SOCKET_FUNC([inet_ntoa]) +PY_CHECK_SOCKET_FUNC([inet_pton]) +dnl not available in WASI yet +PY_CHECK_SOCKET_FUNC([getpeername]) +PY_CHECK_SOCKET_FUNC([getsockname]) +PY_CHECK_SOCKET_FUNC([accept]) +PY_CHECK_SOCKET_FUNC([bind]) +PY_CHECK_SOCKET_FUNC([connect]) +PY_CHECK_SOCKET_FUNC([listen]) +PY_CHECK_SOCKET_FUNC([recvfrom]) +PY_CHECK_SOCKET_FUNC([sendto]) +PY_CHECK_SOCKET_FUNC([setsockopt]) +PY_CHECK_SOCKET_FUNC([socket]) # On some systems, setgroups is in unistd.h, on others, in grp.h PY_CHECK_FUNC([setgroups], [ @@ -4735,7 +5104,7 @@ PKG_CHECK_MODULES([LIBCRYPT], [libxcrypt >= 3.1.1], [ ]) WITH_SAVE_ENV([ - CPPFLAGS="$LIBCRYPT_CFLAGS $CFLAGS" + CPPFLAGS="$CPPFLAGS $LIBCRYPT_CFLAGS" LIBS="$LIBCRYPT_LIBS $LIBS" AC_CACHE_CHECK([for crypt or crypt_r], [ac_cv_crypt_crypt], [ AC_LINK_IFELSE([AC_LANG_PROGRAM([ @@ -5241,7 +5610,7 @@ AS_VAR_IF([ac_cv_gcc_asm_for_mc68881], [yes], [ # rounding issues. The result of this test has little meaning on non # IEEE 754 platforms. On IEEE 754, test should return 1 if rounding # mode is round-to-nearest and double rounding issues are present, and -# 0 otherwise. See http://bugs.python.org/issue2937 for more info. +# 0 otherwise. See https://github.com/python/cpython/issues/47186 for more info. AC_CACHE_CHECK([for x87-style double rounding], [ac_cv_x87_double_rounding], [ # $BASECFLAGS may affect the result ac_save_cc="$CC" @@ -5585,127 +5954,171 @@ then [Define this if you have flockfile(), getc_unlocked(), and funlockfile()]) fi -AC_ARG_WITH([readline], - [AS_HELP_STRING([--with(out)-readline@<:@=editline@:>@], - [use Editline for backend or disable readline module])], - [], - [with_readline=yes]) +dnl Check for libreadline and libedit +dnl - libreadline provides "readline/readline.h" header and "libreadline" +dnl shared library. pkg-config file is readline.pc +dnl - libedit provides "editline/readline.h" header and "libedit" shared +dnl library. pkg-config file ins libedit.pc +dnl - editline is not supported ("readline.h" and "libeditline" shared library) +dnl +dnl NOTE: In the past we checked if readline needs an additional termcap +dnl library (tinfo ncursesw ncurses termcap). We now assume that libreadline +dnl or readline.pc provide correct linker information. -# check where readline lives -py_cv_lib_readline=no -# save the value of LIBS so we don't actually link Python with readline -LIBS_no_readline=$LIBS +AH_TEMPLATE([WITH_EDITLINE], [Define to build the readline module against libedit.]) -if test "$with_readline" != no; then - case "$with_readline" in - editline|edit) - LIBREADLINE=edit - AC_DEFINE(WITH_EDITLINE, 1, - [Define to build the readline module against Editline.]) - ;; - yes|readline) +AC_ARG_WITH( + [readline], + [AS_HELP_STRING([--with(out)-readline@<:@=editline|readline|no@:>@], + [use libedit for backend or disable readline module])], + [ + AS_CASE([$with_readline], + [editline|edit], [with_readline=edit], + [yes|readline], [with_readline=readline], + [no], [], + [AC_MSG_ERROR([proper usage is --with(out)-readline@<:@=editline|readline|no@:>@])] + ) + ], + [with_readline=readline] +) + +AS_VAR_IF([with_readline], [readline], [ + PKG_CHECK_MODULES([LIBREADLINE], [readline], [ LIBREADLINE=readline - ;; - *) - AC_MSG_ERROR([proper usage is --with(out)-readline@<:@=editline@:>@]) - ;; - esac + READLINE_CFLAGS=$LIBREADLINE_CFLAGS + READLINE_LIBS=$LIBREADLINE_LIBS + ], [ + WITH_SAVE_ENV([ + CPPFLAGS="$CPPFLAGS $LIBREADLINE_CFLAGS" + LDFLAGS="$LDFLAGS $LIBREADLINE_LIBS" + AC_CHECK_HEADERS([readline/readline.h], [ + AC_CHECK_LIB([readline], [readline], [ + LIBREADLINE=readline + READLINE_CFLAGS=${LIBREADLINE_CFLAGS-""} + READLINE_LIBS=${LIBREADLINE_LIBS-"-lreadline"} + ], [with_readline=no]) + ], [with_readline=no]) + ]) + ]) +]) - # On some systems we need to link readline to a termcap compatible - # library. NOTE: Keep the precedence of listed libraries synchronised - # with setup.py. - AC_MSG_CHECKING([how to link readline libs]) - for py_libtermcap in "" tinfo ncursesw ncurses curses termcap; do - if test -z "$py_libtermcap"; then - READLINE_LIBS="-l$LIBREADLINE" - else - READLINE_LIBS="-l$LIBREADLINE -l$py_libtermcap" - fi - LIBS="$READLINE_LIBS $LIBS_no_readline" - AC_LINK_IFELSE( - [AC_LANG_CALL([],[readline])], - [py_cv_lib_readline=yes]) - if test $py_cv_lib_readline = yes; then - break - fi - done +AS_VAR_IF([with_readline], [edit], [ + PKG_CHECK_MODULES([LIBEDIT], [libedit], [ + AC_DEFINE([WITH_EDITLINE], [1]) + LIBREADLINE=edit + READLINE_CFLAGS=$LIBEDIT_CFLAGS + READLINE_LIBS=$LIBEDIT_LIBS + ], [ + WITH_SAVE_ENV([ + CPPFLAGS="$CPPFLAGS $LIBEDIT_CFLAGS" + LDFLAGS="$LDFLAGS $LIBEDIT_LIBS" + AC_CHECK_HEADERS([editline/readline.h], [ + AC_CHECK_LIB([edit], [readline], [ + LIBREADLINE=edit + AC_DEFINE([WITH_EDITLINE], [1]) + READLINE_CFLAGS=${LIBEDIT_CFLAGS-""} + READLINE_LIBS=${LIBEDIT_LIBS-"-ledit"} + ], [with_readline=no]) + ], [with_readline=no]) + ]) + ]) +]) - # Uncomment this line if you want to use READLINE_LIBS in Makefile or scripts - #AC_SUBST([READLINE_LIBS]) - if test $py_cv_lib_readline = no; then - AC_MSG_RESULT([none]) - else - AC_MSG_RESULT([$READLINE_LIBS]) - AC_DEFINE(HAVE_LIBREADLINE, 1, - [Define to build the readline module.]) - fi -fi +dnl pyconfig.h defines _XOPEN_SOURCE=700 +READLINE_CFLAGS=$(echo $READLINE_CFLAGS | sed 's/-D_XOPEN_SOURCE=600//g') -if test "$py_cv_lib_readline" = yes; then - # check for readline 2.2 - AC_CHECK_DECL(rl_completion_append_character, - AC_DEFINE(HAVE_RL_COMPLETION_APPEND_CHARACTER, 1, - [Define if you have readline 2.2]),, - [ -#include <stdio.h> /* Must be first for Gnu Readline */ -#ifdef WITH_EDITLINE -# include <editline/readline.h> -#else -# include <readline/readline.h> -#endif +AC_MSG_CHECKING([how to link readline]) +AS_VAR_IF([with_readline], [no], [ + AC_MSG_RESULT([no]) +], [ + AC_MSG_RESULT([$with_readline (CFLAGS: $READLINE_CFLAGS, LIBS: $READLINE_LIBS)]) + + WITH_SAVE_ENV([ + CPPFLAGS="$CPPFLAGS $READLINE_CFLAGS" + LIBS="$READLINE_LIBS $LIBS" + LIBS_SAVE=$LIBS + + m4_define([readline_includes], [ + #include <stdio.h> /* Must be first for Gnu Readline */ + #ifdef WITH_EDITLINE + # include <editline/readline.h> + #else + # include <readline/readline.h> + # include <readline/history.h> + #endif ]) - AC_CHECK_DECL(rl_completion_suppress_append, - AC_DEFINE(HAVE_RL_COMPLETION_SUPPRESS_APPEND, 1, - [Define if you have rl_completion_suppress_append]),, - [ -#include <stdio.h> /* Must be first for Gnu Readline */ -#ifdef WITH_EDITLINE -# include <editline/readline.h> -#else -# include <readline/readline.h> -#endif + + # check for readline 2.2 + AC_CHECK_DECL([rl_completion_append_character], [ + AC_DEFINE([HAVE_RL_COMPLETION_APPEND_CHARACTER], [1], [Define if you have readline 2.2]) + ], [], [readline_includes]) + + AC_CHECK_DECL([rl_completion_suppress_append], [ + AC_DEFINE([HAVE_RL_COMPLETION_SUPPRESS_APPEND], [1], [Define if you have rl_completion_suppress_append]) + ], [], [readline_includes]) + + # check for readline 4.0 + AC_CACHE_CHECK([for rl_pre_input_hook in -l$LIBREADLINE], [ac_cv_readline_rl_pre_input_hook], [ + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([readline_includes], [void *x = rl_pre_input_hook])], + [ac_cv_readline_rl_pre_input_hook=yes], [ac_cv_readline_rl_pre_input_hook=no] + ) + ]) + AS_VAR_IF([ac_cv_readline_rl_pre_input_hook], [yes], [ + AC_DEFINE([HAVE_RL_PRE_INPUT_HOOK], [1], [Define if you have readline 4.0]) ]) - # check for readline 4.0 - AC_CHECK_LIB($LIBREADLINE, rl_pre_input_hook, - AC_DEFINE(HAVE_RL_PRE_INPUT_HOOK, 1, - [Define if you have readline 4.0]),,$READLINE_LIBS) - - # also in 4.0 - AC_CHECK_LIB($LIBREADLINE, rl_completion_display_matches_hook, - AC_DEFINE(HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK, 1, - [Define if you have readline 4.0]),,$READLINE_LIBS) - - # also in 4.0, but not in editline - AC_CHECK_LIB($LIBREADLINE, rl_resize_terminal, - AC_DEFINE(HAVE_RL_RESIZE_TERMINAL, 1, - [Define if you have readline 4.0]),,$READLINE_LIBS) - - # check for readline 4.2 - AC_CHECK_LIB($LIBREADLINE, rl_completion_matches, - AC_DEFINE(HAVE_RL_COMPLETION_MATCHES, 1, - [Define if you have readline 4.2]),,$READLINE_LIBS) - - # also in readline 4.2 - AC_CHECK_DECL(rl_catch_signals, - AC_DEFINE(HAVE_RL_CATCH_SIGNAL, 1, - [Define if you can turn off readline's signal handling.]),, - [ -#include <stdio.h> /* Must be first for Gnu Readline */ -#ifdef WITH_EDITLINE -# include <editline/readline.h> -#else -# include <readline/readline.h> -#endif + # also in 4.0 + AC_CACHE_CHECK([for rl_completion_display_matches_hook in -l$LIBREADLINE], [ac_cv_readline_rl_completion_display_matches_hook], [ + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([readline_includes], [void *x = rl_completion_display_matches_hook])], + [ac_cv_readline_rl_completion_display_matches_hook=yes], [ac_cv_readline_rl_completion_display_matches_hook=no] + ) + ]) + AS_VAR_IF([ac_cv_readline_rl_completion_display_matches_hook], [yes], [ + AC_DEFINE([HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK], [1], [Define if you have readline 4.0]) ]) - AC_CHECK_LIB($LIBREADLINE, append_history, - AC_DEFINE(HAVE_RL_APPEND_HISTORY, 1, - [Define if readline supports append_history]),,$READLINE_LIBS) -fi + # also in 4.0, but not in editline + AC_CACHE_CHECK([for rl_resize_terminal in -l$LIBREADLINE], [ac_cv_readline_rl_resize_terminal], [ + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([readline_includes], [void *x = rl_resize_terminal])], + [ac_cv_readline_rl_resize_terminal=yes], [ac_cv_readline_rl_resize_terminal=no] + ) + ]) + AS_VAR_IF([ac_cv_readline_rl_resize_terminal], [yes], [ + AC_DEFINE([HAVE_RL_RESIZE_TERMINAL], [1], [Define if you have readline 4.0]) + ]) -# End of readline checks: restore LIBS -LIBS=$LIBS_no_readline + # check for readline 4.2 + AC_CACHE_CHECK([for rl_completion_matches in -l$LIBREADLINE], [ac_cv_readline_rl_completion_matches], [ + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([readline_includes], [void *x = rl_completion_matches])], + [ac_cv_readline_rl_completion_matches=yes], [ac_cv_readline_rl_completion_matches=no] + ) + ]) + AS_VAR_IF([ac_cv_readline_rl_completion_matches], [yes], [ + AC_DEFINE([HAVE_RL_COMPLETION_MATCHES], [1], [Define if you have readline 4.2]) + ]) + + # also in readline 4.2 + AC_CHECK_DECL([rl_catch_signals], [ + AC_DEFINE([HAVE_RL_CATCH_SIGNAL], [1], [Define if you can turn off readline's signal handling.]) + ], [], [readline_includes]) + + AC_CACHE_CHECK([for append_history in -l$LIBREADLINE], [ac_cv_readline_append_history], [ + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([readline_includes], [void *x = append_history])], + [ac_cv_readline_append_history=yes], [ac_cv_readline_append_history=no] + ) + ]) + AS_VAR_IF([ac_cv_readline_append_history], [yes], [ + AC_DEFINE([HAVE_RL_APPEND_HISTORY], [1], [Define if readline supports append_history]) + ]) + + m4_undefine([readline_includes]) + ])dnl WITH_SAVE_ENV() +]) AC_CACHE_CHECK([for broken nice()], [ac_cv_broken_nice], [ AC_RUN_IFELSE([AC_LANG_SOURCE([[ @@ -5861,14 +6274,128 @@ then [Define if you have struct stat.st_mtimensec]) fi +dnl check for ncurses/ncursesw and panel/panelw +dnl NOTE: old curses is not detected. +dnl have_curses=[no, ncursesw, ncurses] +dnl have_panel=[no, panelw, panel] +have_curses=no +have_panel=no + +AH_TEMPLATE([HAVE_NCURSESW], [Define to 1 if you have the `ncursesw' library.]) +AC_CHECK_HEADERS([curses.h ncurses.h]) + +AS_VAR_IF([ac_cv_header_ncurses_h], [yes], [ + if test "$ac_sys_system" != "Darwin"; then + dnl On macOS, there is no separate /usr/lib/libncursesw nor libpanelw. + PKG_CHECK_MODULES([CURSES], [ncursesw], [ + AC_DEFINE([HAVE_NCURSESW], [1]) + have_curses=ncursesw + ], [ + WITH_SAVE_ENV([ + AC_CHECK_LIB([ncursesw], [initscr], [ + AC_DEFINE([HAVE_NCURSESW], [1]) + have_curses=ncursesw + CURSES_CFLAGS=${CURSES_CFLAGS-""} + CURSES_LIBS=${CURSES_LIBS-"-lncursesw"} + ]) + ]) + ]) + fi + + AS_VAR_IF([have_curses], [no], [ + PKG_CHECK_MODULES([CURSES], [ncurses], [ + have_curses=ncurses + ], [ + WITH_SAVE_ENV([ + AC_CHECK_LIB([ncurses], [initscr], [ + have_curses=ncurses + CURSES_CFLAGS=${CURSES_CFLAGS-""} + CURSES_LIBS=${CURSES_LIBS-"-lncurses"} + ]) + ]) + ]) + ]) + +])dnl ac_cv_header_ncurses_h = yes + +dnl remove _XOPEN_SOURCE macro from curses cflags. pyconfig.h sets +dnl the macro to 700. +CURSES_CFLAGS=$(echo $CURSES_CFLAGS | sed 's/-D_XOPEN_SOURCE=600//g') + +if test "$have_curses" = no -a "$ac_sys_system" = "Darwin"; then + dnl On macOS, there is no separate /usr/lib/libncursesw nor libpanelw. + dnl If we are here, we found a locally-supplied version of libncursesw. + dnl There should also be a libpanelw. + dnl _XOPEN_SOURCE defines are usually excluded for macOS, but we need + dnl _XOPEN_SOURCE_EXTENDED here for ncurses wide char support. + + AS_VAR_APPEND([CURSES_CFLAGS], [" -D_XOPEN_SOURCE_EXTENDED=1"]) + AC_DEFINE([HAVE_NCURSESW], [1]) +fi + +dnl TODO: detect "curses" and special cases tinfo, terminfo, or termcap + +AC_MSG_CHECKING([curses module flags]) +AS_VAR_IF([have_curses], [no], [ + AC_MSG_RESULT([no]) +], [ + AC_MSG_RESULT([$have_curses (CFLAGS: $CURSES_CFLAGS, LIBS: $CURSES_LIBS)]) +]) + +dnl check for ncurses' panel/panelw library +AC_CHECK_HEADERS([panel.h]) + +AS_VAR_IF([ac_cv_header_panel_h], [yes], [ + + if test "$ac_sys_system" != "Darwin"; then + dnl On macOS, there is no separate /usr/lib/libncursesw nor libpanelw. + AS_VAR_IF([have_curses], [ncursesw], [ + PKG_CHECK_MODULES([PANEL], [panelw], [ + have_panel=panelw + ], [ + WITH_SAVE_ENV([ + AC_CHECK_LIB([panelw], [update_panels], [ + have_panel=panelw + PANEL_CFLAGS=${PANEL_CFLAGS-""} + PANEL_LIBS=${PANEL_LIBS-"-lpanelw"} + ]) + ]) + ]) + ]) + fi + + AS_VAR_IF([have_curses], [ncurses], [ + PKG_CHECK_MODULES([PANEL], [panel], [ + have_panel=panel + ], [ + WITH_SAVE_ENV([ + AC_CHECK_LIB([panel], [update_panels], [ + have_panel=panel + PANEL_CFLAGS=${PANEL_CFLAGS-""} + PANEL_LIBS=${PANEL_LIBS-"-lpanel"} + ]) + ]) + ]) + ]) + +])dnl ac_cv_header_panel_h = yes + +dnl pyconfig.h defines _XOPEN_SOURCE=700 +PANEL_CFLAGS=$(echo $PANEL_CFLAGS | sed 's/-D_XOPEN_SOURCE=600//g') + +AC_MSG_CHECKING([panel flags]) +AS_VAR_IF([have_panel], [no], [ + AC_MSG_RESULT([no]) +], [ + AC_MSG_RESULT([$have_panel (CFLAGS: $PANEL_CFLAGS, LIBS: $PANEL_LIBS)]) +]) + # first curses header check ac_save_cppflags="$CPPFLAGS" if test "$cross_compiling" = no; then CPPFLAGS="$CPPFLAGS -I/usr/include/ncursesw" fi -AC_CHECK_HEADERS(curses.h ncurses.h) - # On Solaris, term.h requires curses.h AC_CHECK_HEADERS(term.h,,,[ #ifdef HAVE_CURSES_H @@ -6086,6 +6613,7 @@ SRCDIRS="\ Modules/_sha3 \ Modules/_sqlite \ Modules/_sre \ + Modules/_testcapi \ Modules/_xxtestfuzz \ Modules/cjkcodecs \ Modules/expat \ @@ -6382,7 +6910,6 @@ AS_CASE($with_openssl_rpath, ] ) AC_MSG_RESULT($OPENSSL_RPATH) -AC_SUBST([OPENSSL_RPATH]) # This static linking is NOT OFFICIALLY SUPPORTED and not advertised. # Requires static OpenSSL build with position-independent code. Some features @@ -6540,23 +7067,6 @@ AS_VAR_IF([with_builtin_blake2], [yes], [ ], [have_libb2=no]) ]) -# --with-experimental-isolated-subinterpreters -AH_TEMPLATE(EXPERIMENTAL_ISOLATED_SUBINTERPRETERS, - [Better isolate subinterpreters, experimental build mode.]) -AC_MSG_CHECKING(for --with-experimental-isolated-subinterpreters) -AC_ARG_WITH(experimental-isolated-subinterpreters, - AS_HELP_STRING([--with-experimental-isolated-subinterpreters], - [better isolate subinterpreters, experimental build mode (default is no)]), -[ -if test "$withval" != no -then - AC_MSG_RESULT(yes); - AC_DEFINE(EXPERIMENTAL_ISOLATED_SUBINTERPRETERS) -else - AC_MSG_RESULT(no); -fi], -[AC_MSG_RESULT(no)]) - # Check whether to disable test modules. Once set, setup.py will not build # test extension modules and "make install" will not install test suites. AC_MSG_CHECKING([for --disable-test-modules]) @@ -6593,6 +7103,7 @@ AS_CASE([$ac_sys_system], dnl curses and tkinter user interface are not available. dnl dbm and gdbm aren't available, too. dnl Emscripten and WASI provide only stubs for pwd, grp APIs. + dnl resource functions (get/setrusage) are stubs, too. PY_STDLIB_MOD_SET_NA( [_curses], [_curses_panel], @@ -6608,6 +7119,7 @@ AS_CASE([$ac_sys_system], [nis], [ossaudiodev], [pwd], + [resource], [spwd], [syslog], ) @@ -6616,17 +7128,18 @@ AS_CASE([$ac_sys_system], dnl These modules are not particularly useful in browsers. PY_STDLIB_MOD_SET_NA( [fcntl], - [resource], [readline], [termios], ) ], [Emscripten/node*], [], [WASI/*], [ - dnl WASI SDK 15.0 does not support file locking. + dnl WASI SDK 15.0 does not support file locking, mmap, and more. PY_STDLIB_MOD_SET_NA( [_ctypes_test], - [fcntl], + [fcntl], + [mmap], + [termios], ) ] ) @@ -6643,17 +7156,6 @@ AS_CASE([$host_cpu], ) AC_SUBST([MODULE_BUILDTYPE]) -dnl Use Modules/Setup.stdlib as additional provider? -AC_MSG_CHECKING([for additional Modules/Setup files]) -AS_CASE([$ac_sys_system], - [Emscripten], [MODULES_SETUP_STDLIB=Modules/Setup.stdlib], - [WASI], [MODULES_SETUP_STDLIB=Modules/Setup.stdlib], - [MODULES_SETUP_STDLIB=] -) -AC_MSG_RESULT([$MODULES_SETUP_STDLIB]) -AC_SUBST([MODULES_SETUP_STDLIB]) - - dnl _MODULE_BLOCK_ADD([VAR], [VALUE]) dnl internal: adds $1=quote($2) to MODULE_BLOCK AC_DEFUN([_MODULE_BLOCK_ADD], [AS_VAR_APPEND([MODULE_BLOCK], ["$1=_AS_QUOTE([$2])$as_nl"])]) @@ -6661,7 +7163,7 @@ MODULE_BLOCK= dnl Check for stdlib extension modules dnl PY_STDLIB_MOD([NAME], [ENABLED-TEST], [SUPPORTED-TEST], [CFLAGS], [LDFLAGS]) -dnl sets MODULE_$NAME based on PY_STDLIB_MOD_SET_NA(), ENABLED-TEST, +dnl sets MODULE_$NAME_STATE based on PY_STDLIB_MOD_SET_NA(), ENABLED-TEST, dnl and SUPPORTED_TEST. ENABLED-TEST and SUPPORTED-TEST default to true if dnl empty. dnl n/a: marked unavailable on platform by PY_STDLIB_MOD_SET_NA() @@ -6679,7 +7181,7 @@ AC_DEFUN([PY_STDLIB_MOD], [ [AS_IF([m4_ifblank([$3], [true], [$3])], [modstate=yes], [modstate=missing])], [modstate=disabled]) ]) - _MODULE_BLOCK_ADD(modcond, [$modstate]) + _MODULE_BLOCK_ADD(modcond[_STATE], [$modstate]) AS_VAR_IF([modstate], [yes], [ m4_ifblank([$4], [], [_MODULE_BLOCK_ADD([MODULE_]m4_toupper([$1])[_CFLAGS], [$4])]) m4_ifblank([$5], [], [_MODULE_BLOCK_ADD([MODULE_]m4_toupper([$1])[_LDFLAGS], [$5])]) @@ -6700,7 +7202,7 @@ AC_DEFUN([PY_STDLIB_MOD_SIMPLE], [ dnl Check if module has been disabled by PY_STDLIB_MOD_SET_NA() AS_IF([test "$modstate" != "n/a"], [modstate=yes]) AM_CONDITIONAL(modcond, [test "$modstate" = yes]) - _MODULE_BLOCK_ADD(modcond, [$modstate]) + _MODULE_BLOCK_ADD(modcond[_STATE], [$modstate]) AS_VAR_IF([modstate], [yes], [ m4_ifblank([$2], [], [_MODULE_BLOCK_ADD([MODULE_]m4_toupper([$1])[_CFLAGS], [$2])]) m4_ifblank([$3], [], [_MODULE_BLOCK_ADD([MODULE_]m4_toupper([$1])[_LDFLAGS], [$3])]) @@ -6801,18 +7303,30 @@ PY_STDLIB_MOD([_blake2], PY_STDLIB_MOD([_crypt], [], [test "$ac_cv_crypt_crypt" = yes], [$LIBCRYPT_CFLAGS], [$LIBCRYPT_LIBS]) -dnl PY_STDLIB_MOD([_ctypes], [], [], [], []) -dnl PY_STDLIB_MOD([_curses], [], [], [], []) -dnl PY_STDLIB_MOD([_curses_panel], [], [], [], []) +PY_STDLIB_MOD([_ctypes], + [], [test "$have_libffi" = yes], + [$LIBFFI_CFLAGS], [$LIBFFI_LIBS]) +PY_STDLIB_MOD([_curses], + [], [test "$have_curses" != "no"], + [$CURSES_CFLAGS], [$CURSES_LIBS] +) +PY_STDLIB_MOD([_curses_panel], + [], [test "$have_panel" != "no"], + [$PANEL_CFLAGS $CURSES_CFLAGS], [$PANEL_LIBS $CURSES_LIBS] +) PY_STDLIB_MOD([_decimal], [], [], [$LIBMPDEC_CFLAGS], [$LIBMPDEC_LDFLAGS]) -dnl PY_STDLIB_MOD([_dbm], [], [], [], []) +PY_STDLIB_MOD([_dbm], + [test -n "$with_dbmliborder"], [test "$have_dbm" != "no"], + [$DBM_CFLAGS], [$DBM_LIBS]) PY_STDLIB_MOD([_gdbm], [test "$have_gdbm_dbmliborder" = yes], [test "$have_gdbm" = yes], [$GDBM_CFLAGS], [$GDBM_LIBS]) PY_STDLIB_MOD([nis], [], [test "$have_nis" = yes -a "$ac_cv_header_rpc_rpc_h" = yes], [$LIBNSL_CFLAGS], [$LIBNSL_LIBS]) -dnl PY_STDLIB_MOD([readline], [], [], [], []) + PY_STDLIB_MOD([readline], + [], [test "$with_readline" != "no"], + [$READLINE_CFLAGS], [$READLINE_LIBS]) PY_STDLIB_MOD([_sqlite3], [test "$have_sqlite3" = "yes"], [test "$have_supported_sqlite3" = "yes"], @@ -6846,8 +7360,11 @@ PY_STDLIB_MOD([_testinternalcapi], [test "$TEST_MODULES" = yes]) PY_STDLIB_MOD([_testbuffer], [test "$TEST_MODULES" = yes]) PY_STDLIB_MOD([_testimportmultiple], [test "$TEST_MODULES" = yes], [test "$ac_cv_func_dlopen" = yes]) PY_STDLIB_MOD([_testmultiphase], [test "$TEST_MODULES" = yes], [test "$ac_cv_func_dlopen" = yes]) +PY_STDLIB_MOD([xxsubtype], [test "$TEST_MODULES" = yes]) PY_STDLIB_MOD([_xxtestfuzz], [test "$TEST_MODULES" = yes]) -PY_STDLIB_MOD([_ctypes_test], [test "$TEST_MODULES" = yes], [], [], [-lm]) +PY_STDLIB_MOD([_ctypes_test], + [test "$TEST_MODULES" = yes], [test "$have_libffi" = yes -a "$ac_cv_func_dlopen" = yes], + [], [$LIBM]) dnl Limited API template modules. dnl The limited C API is not compatible with the Py_TRACE_REFS macro. @@ -6873,7 +7390,11 @@ fi AC_MSG_NOTICE([creating Makefile]) $SHELL $srcdir/Modules/makesetup -c $srcdir/Modules/config.c.in \ -s Modules \ - Modules/Setup.local $MODULES_SETUP_STDLIB Modules/Setup.bootstrap $srcdir/Modules/Setup + Modules/Setup.local Modules/Setup.stdlib Modules/Setup.bootstrap $srcdir/Modules/Setup +if test $? -ne 0; then + AC_MSG_ERROR([makesetup failed]) +fi + mv config.c Modules if test -z "$PKG_CONFIG"; then @@ -6887,3 +7408,9 @@ If you want a release build with all stable optimizations active (PGO, etc), please run ./configure --enable-optimizations ]) fi + +AS_VAR_IF([PY_SUPPORT_TIER], [0], [AC_MSG_WARN([ + +Platform "$host" with compiler "$ac_cv_cc_name" is not supported by the +CPython core team, see https://peps.python.org/pep-0011/ for more information. +])]) diff --git a/pyconfig.h.in b/pyconfig.h.in index a3bbbb894fd566..1ce09855f5559d 100644 --- a/pyconfig.h.in +++ b/pyconfig.h.in @@ -44,9 +44,6 @@ /* Define if --enable-ipv6 is specified */ #undef ENABLE_IPV6 -/* Better isolate subinterpreters, experimental build mode. */ -#undef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS - /* Define to 1 if your system stores words within floats with the most significant word first */ #undef FLOAT_WORDS_BIGENDIAN @@ -54,6 +51,9 @@ /* Define if getpgrp() must be called as getpgrp(0). */ #undef GETPGRP_HAVE_ARG +/* Define if you have the 'accept' function. */ +#undef HAVE_ACCEPT + /* Define to 1 if you have the `accept4' function. */ #undef HAVE_ACCEPT4 @@ -84,6 +84,9 @@ /* Define to 1 if you have the `atanh' function. */ #undef HAVE_ATANH +/* Define if you have the 'bind' function. */ +#undef HAVE_BIND + /* Define to 1 if you have the `bind_textdomain_codeset' function. */ #undef HAVE_BIND_TEXTDOMAIN_CODESET @@ -163,6 +166,9 @@ /* Define to 1 if you have the <conio.h> header file. */ #undef HAVE_CONIO_H +/* Define if you have the 'connect' function. */ +#undef HAVE_CONNECT + /* Define to 1 if you have the `copy_file_range' function. */ #undef HAVE_COPY_FILE_RANGE @@ -281,6 +287,9 @@ /* Define to 1 if you have the `dlopen' function. */ #undef HAVE_DLOPEN +/* Define to 1 if you have the `dup' function. */ +#undef HAVE_DUP + /* Define to 1 if you have the `dup2' function. */ #undef HAVE_DUP2 @@ -293,6 +302,9 @@ /* Defined when any dynamic module loading is enabled. */ #undef HAVE_DYNAMIC_LOADING +/* Define to 1 if you have the <editline/readline.h> header file. */ +#undef HAVE_EDITLINE_READLINE_H + /* Define to 1 if you have the <endian.h> header file. */ #undef HAVE_ENDIAN_H @@ -359,6 +371,15 @@ /* Define to 1 if you have the `fexecve' function. */ #undef HAVE_FEXECVE +/* Define if you have the 'ffi_closure_alloc' function. */ +#undef HAVE_FFI_CLOSURE_ALLOC + +/* Define if you have the 'ffi_prep_cif_var' function. */ +#undef HAVE_FFI_PREP_CIF_VAR + +/* Define if you have the 'ffi_prep_closure_loc' function. */ +#undef HAVE_FFI_PREP_CLOSURE_LOC + /* Define to 1 if you have the `flock' function. */ #undef HAVE_FLOCK @@ -468,6 +489,9 @@ /* Define to 1 if you have the `getgroups' function. */ #undef HAVE_GETGROUPS +/* Define if you have the 'gethostbyaddr' function. */ +#undef HAVE_GETHOSTBYADDR + /* Define to 1 if you have the `gethostbyname' function. */ #undef HAVE_GETHOSTBYNAME @@ -483,6 +507,9 @@ /* Define this if you have the 6-arg version of gethostbyname_r(). */ #undef HAVE_GETHOSTBYNAME_R_6_ARG +/* Define to 1 if you have the `gethostname' function. */ +#undef HAVE_GETHOSTNAME + /* Define to 1 if you have the `getitimer' function. */ #undef HAVE_GETITIMER @@ -498,7 +525,7 @@ /* Define if you have the 'getpagesize' function. */ #undef HAVE_GETPAGESIZE -/* Define to 1 if you have the `getpeername' function. */ +/* Define if you have the 'getpeername' function. */ #undef HAVE_GETPEERNAME /* Define to 1 if you have the `getpgid' function. */ @@ -516,6 +543,9 @@ /* Define to 1 if you have the `getpriority' function. */ #undef HAVE_GETPRIORITY +/* Define if you have the 'getprotobyname' function. */ +#undef HAVE_GETPROTOBYNAME + /* Define to 1 if you have the `getpwent' function. */ #undef HAVE_GETPWENT @@ -543,9 +573,18 @@ /* Define to 1 if you have the `getrusage' function. */ #undef HAVE_GETRUSAGE +/* Define if you have the 'getservbyname' function. */ +#undef HAVE_GETSERVBYNAME + +/* Define if you have the 'getservbyport' function. */ +#undef HAVE_GETSERVBYPORT + /* Define to 1 if you have the `getsid' function. */ #undef HAVE_GETSID +/* Define if you have the 'getsockname' function. */ +#undef HAVE_GETSOCKNAME + /* Define to 1 if you have the `getspent' function. */ #undef HAVE_GETSPENT @@ -580,6 +619,9 @@ /* Define if you have the 'inet_aton' function. */ #undef HAVE_INET_ATON +/* Define if you have the 'inet_ntoa' function. */ +#undef HAVE_INET_NTOA + /* Define if you have the 'inet_pton' function. */ #undef HAVE_INET_PTON @@ -634,21 +676,12 @@ /* Define to 1 if you have the `dld' library (-ldld). */ #undef HAVE_LIBDLD -/* Define to 1 if you have the `gdbm_compat' library (-lgdbm_compat). */ -#undef HAVE_LIBGDBM_COMPAT - /* Define to 1 if you have the `ieee' library (-lieee). */ #undef HAVE_LIBIEEE /* Define to 1 if you have the <libintl.h> header file. */ #undef HAVE_LIBINTL_H -/* Define to 1 if you have the `ndbm' library (-lndbm). */ -#undef HAVE_LIBNDBM - -/* Define to build the readline module. */ -#undef HAVE_LIBREADLINE - /* Define to 1 if you have the `resolv' library (-lresolv). */ #undef HAVE_LIBRESOLV @@ -688,6 +721,9 @@ /* Define if compiling using Linux 4.1 or later. */ #undef HAVE_LINUX_CAN_RAW_JOIN_FILTERS +/* Define to 1 if you have the <linux/fs.h> header file. */ +#undef HAVE_LINUX_FS_H + /* Define to 1 if you have the <linux/memfd.h> header file. */ #undef HAVE_LINUX_MEMFD_H @@ -712,6 +748,9 @@ /* Define to 1 if you have the <linux/wait.h> header file. */ #undef HAVE_LINUX_WAIT_H +/* Define if you have the 'listen' function. */ +#undef HAVE_LISTEN + /* Define to 1 if you have the `lockf' function. */ #undef HAVE_LOCKF @@ -781,6 +820,9 @@ /* Define to 1 if you have the `nanosleep' function. */ #undef HAVE_NANOSLEEP +/* Define to 1 if you have the `ncursesw' library. */ +#undef HAVE_NCURSESW + /* Define to 1 if you have the <ncurses.h> header file. */ #undef HAVE_NCURSES_H @@ -793,6 +835,9 @@ /* Define to 1 if you have the <netcan/can.h> header file. */ #undef HAVE_NETCAN_CAN_H +/* Define to 1 if you have the <netdb.h> header file. */ +#undef HAVE_NETDB_H + /* Define to 1 if you have the <netinet/in.h> header file. */ #undef HAVE_NETINET_IN_H @@ -818,6 +863,9 @@ /* Define to 1 if you have the `openpty' function. */ #undef HAVE_OPENPTY +/* Define to 1 if you have the <panel.h> header file. */ +#undef HAVE_PANEL_H + /* Define to 1 if you have the `pathconf' function. */ #undef HAVE_PATHCONF @@ -890,6 +938,9 @@ /* Define to 1 if you have the `pthread_sigmask' function. */ #undef HAVE_PTHREAD_SIGMASK +/* Define if platform requires stubbed pthreads support */ +#undef HAVE_PTHREAD_STUBS + /* Define to 1 if you have the <pty.h> header file. */ #undef HAVE_PTY_H @@ -902,6 +953,9 @@ /* Define to 1 if you have the `pwritev2' function. */ #undef HAVE_PWRITEV2 +/* Define to 1 if you have the <readline/readline.h> header file. */ +#undef HAVE_READLINE_READLINE_H + /* Define to 1 if you have the `readlink' function. */ #undef HAVE_READLINK @@ -914,6 +968,9 @@ /* Define to 1 if you have the `realpath' function. */ #undef HAVE_REALPATH +/* Define if you have the 'recvfrom' function. */ +#undef HAVE_RECVFROM + /* Define to 1 if you have the `renameat' function. */ #undef HAVE_RENAMEAT @@ -983,6 +1040,9 @@ /* Define to 1 if you have the `sendfile' function. */ #undef HAVE_SENDFILE +/* Define if you have the 'sendto' function. */ +#undef HAVE_SENDTO + /* Define to 1 if you have the `setegid' function. */ #undef HAVE_SETEGID @@ -1031,6 +1091,9 @@ /* Define to 1 if you have the `setsid' function. */ #undef HAVE_SETSID +/* Define if you have the 'setsockopt' function. */ +#undef HAVE_SETSOCKOPT + /* Define to 1 if you have the `setuid' function. */ #undef HAVE_SETUID @@ -1094,6 +1157,9 @@ /* struct sockaddr_storage (sys/socket.h) */ #undef HAVE_SOCKADDR_STORAGE +/* Define if you have the 'socket' function. */ +#undef HAVE_SOCKET + /* Define if you have the 'socketpair' function. */ #undef HAVE_SOCKETPAIR @@ -1502,6 +1568,9 @@ /* Define if you want to coerce the C locale to a UTF-8 based locale */ #undef PY_COERCE_C_LOCALE +/* Define to 1 if you have the perf trampoline. */ +#undef PY_HAVE_PERF_TRAMPOLINE + /* Define to 1 to build the sqlite module with loadable extensions support. */ #undef PY_SQLITE_ENABLE_LOAD_EXTENSION @@ -1515,6 +1584,9 @@ /* Cipher suite string for PY_SSL_DEFAULT_CIPHERS=0 */ #undef PY_SSL_DEFAULT_CIPHER_STRING +/* PEP 11 Support tier (1, 2, 3 or 0 for unsupported) */ +#undef PY_SUPPORT_TIER + /* Define if you want to build an interpreter with many run-time checks. */ #undef Py_DEBUG @@ -1656,7 +1728,7 @@ Dyld is necessary to support frameworks. */ #undef WITH_DYLD -/* Define to build the readline module against Editline. */ +/* Define to build the readline module against libedit. */ #undef WITH_EDITLINE /* Define if you want to compile in object freelists optimization */ diff --git a/setup.py b/setup.py deleted file mode 100644 index 4c497346e8d7e2..00000000000000 --- a/setup.py +++ /dev/null @@ -1,1626 +0,0 @@ -# Autodetecting setup.py script for building the Python extensions - -import argparse -import importlib._bootstrap -import importlib.machinery -import importlib.util -import logging -import os -import re -import shlex -import sys -import sysconfig -import warnings -from glob import glob, escape -import _osx_support - - -try: - import subprocess - del subprocess - SUBPROCESS_BOOTSTRAP = False -except ImportError: - # Bootstrap Python: distutils.spawn uses subprocess to build C extensions, - # subprocess requires C extensions built by setup.py like _posixsubprocess. - # - # Use _bootsubprocess which only uses the os module. - # - # It is dropped from sys.modules as soon as all C extension modules - # are built. - import _bootsubprocess - sys.modules['subprocess'] = _bootsubprocess - del _bootsubprocess - SUBPROCESS_BOOTSTRAP = True - - -with warnings.catch_warnings(): - # bpo-41282 (PEP 632) deprecated distutils but setup.py still uses it - warnings.filterwarnings( - "ignore", - "The distutils package is deprecated", - DeprecationWarning - ) - warnings.filterwarnings( - "ignore", - "The distutils.sysconfig module is deprecated, use sysconfig instead", - DeprecationWarning - ) - - from distutils.command.build_ext import build_ext - from distutils.command.build_scripts import build_scripts - from distutils.command.install import install - from distutils.command.install_lib import install_lib - from distutils.core import Extension, setup - from distutils.errors import CCompilerError, DistutilsError - from distutils.spawn import find_executable - - -# This global variable is used to hold the list of modules to be disabled. -DISABLED_MODULE_LIST = [] - -# --list-module-names option used by Tools/scripts/generate_module_names.py -LIST_MODULE_NAMES = False - - -logging.basicConfig(format='%(message)s', level=logging.INFO) -log = logging.getLogger('setup') - - -def get_platform(): - # Cross compiling - if "_PYTHON_HOST_PLATFORM" in os.environ: - return os.environ["_PYTHON_HOST_PLATFORM"] - - # Get value of sys.platform - if sys.platform.startswith('osf1'): - return 'osf1' - return sys.platform - - -CROSS_COMPILING = ("_PYTHON_HOST_PLATFORM" in os.environ) -HOST_PLATFORM = get_platform() -MS_WINDOWS = (HOST_PLATFORM == 'win32') -CYGWIN = (HOST_PLATFORM == 'cygwin') -MACOS = (HOST_PLATFORM == 'darwin') -AIX = (HOST_PLATFORM.startswith('aix')) -VXWORKS = ('vxworks' in HOST_PLATFORM) -EMSCRIPTEN = HOST_PLATFORM == 'emscripten-wasm32' -CC = os.environ.get("CC") -if not CC: - CC = sysconfig.get_config_var("CC") - -if EMSCRIPTEN: - # emcc is a Python script from a different Python interpreter. - os.environ.pop("PYTHONPATH", None) - - -SUMMARY = """ -Python is an interpreted, interactive, object-oriented programming -language. It is often compared to Tcl, Perl, Scheme or Java. - -Python combines remarkable power with very clear syntax. It has -modules, classes, exceptions, very high level dynamic data types, and -dynamic typing. There are interfaces to many system calls and -libraries, as well as to various windowing systems (X11, Motif, Tk, -Mac, MFC). New built-in modules are easily written in C or C++. Python -is also usable as an extension language for applications that need a -programmable interface. - -The Python implementation is portable: it runs on many brands of UNIX, -on Windows, DOS, Mac, Amiga... If your favorite system isn't -listed here, it may still be supported, if there's a C compiler for -it. Ask around on comp.lang.python -- or just try compiling Python -yourself. -""" - -CLASSIFIERS = """ -Development Status :: 6 - Mature -License :: OSI Approved :: Python Software Foundation License -Natural Language :: English -Programming Language :: C -Programming Language :: Python -Topic :: Software Development -""" - - -def run_command(cmd): - status = os.system(cmd) - return os.waitstatus_to_exitcode(status) - - -# Set common compiler and linker flags derived from the Makefile, -# reserved for building the interpreter and the stdlib modules. -# See bpo-21121 and bpo-35257 -def set_compiler_flags(compiler_flags, compiler_py_flags_nodist): - flags = sysconfig.get_config_var(compiler_flags) - py_flags_nodist = sysconfig.get_config_var(compiler_py_flags_nodist) - sysconfig.get_config_vars()[compiler_flags] = flags + ' ' + py_flags_nodist - - -def add_dir_to_list(dirlist, dir): - """Add the directory 'dir' to the list 'dirlist' (after any relative - directories) if: - - 1) 'dir' is not already in 'dirlist' - 2) 'dir' actually exists, and is a directory. - """ - if dir is None or not os.path.isdir(dir) or dir in dirlist: - return - for i, path in enumerate(dirlist): - if not os.path.isabs(path): - dirlist.insert(i + 1, dir) - return - dirlist.insert(0, dir) - - -def sysroot_paths(make_vars, subdirs): - """Get the paths of sysroot sub-directories. - - * make_vars: a sequence of names of variables of the Makefile where - sysroot may be set. - * subdirs: a sequence of names of subdirectories used as the location for - headers or libraries. - """ - - dirs = [] - 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 - return dirs - - -MACOS_SDK_ROOT = None -MACOS_SDK_SPECIFIED = None - -def macosx_sdk_root(): - """Return the directory of the current macOS SDK. - - If no SDK was explicitly configured, call the compiler to find which - include files paths are being searched by default. Use '/' if the - compiler is searching /usr/include (meaning system header files are - installed) or use the root of an SDK if that is being searched. - (The SDK may be supplied via Xcode or via the Command Line Tools). - The SDK paths used by Apple-supplied tool chains depend on the - setting of various variables; see the xcrun man page for more info. - Also sets MACOS_SDK_SPECIFIED for use by macosx_sdk_specified(). - """ - global MACOS_SDK_ROOT, MACOS_SDK_SPECIFIED - - # If already called, return cached result. - if MACOS_SDK_ROOT: - return MACOS_SDK_ROOT - - cflags = sysconfig.get_config_var('CFLAGS') - m = re.search(r'-isysroot\s*(\S+)', cflags) - if m is not None: - MACOS_SDK_ROOT = m.group(1) - MACOS_SDK_SPECIFIED = MACOS_SDK_ROOT != '/' - else: - MACOS_SDK_ROOT = _osx_support._default_sysroot( - sysconfig.get_config_var('CC')) - MACOS_SDK_SPECIFIED = False - - return MACOS_SDK_ROOT - - -def is_macosx_sdk_path(path): - """ - Returns True if 'path' can be located in a macOS SDK - """ - return ( (path.startswith('/usr/') and not path.startswith('/usr/local')) - or path.startswith('/System/Library') - or path.startswith('/System/iOSSupport') ) - - -def grep_headers_for(function, headers): - for header in headers: - with open(header, 'r', errors='surrogateescape') as f: - if function in f.read(): - return True - return False - - -def find_file(filename, std_dirs, paths): - """Searches for the directory where a given file is located, - and returns a possibly-empty list of additional directories, or None - if the file couldn't be found at all. - - 'filename' is the name of a file, such as readline.h or libcrypto.a. - 'std_dirs' is the list of standard system directories; if the - file is found in one of them, no additional directives are needed. - 'paths' is a list of additional locations to check; if the file is - found in one of them, the resulting list will contain the directory. - """ - if MACOS: - # Honor the MacOSX SDK setting when one was specified. - # An SDK is a directory with the same structure as a real - # system, but with only header files and libraries. - sysroot = macosx_sdk_root() - - # Check the standard locations - for dir_ in std_dirs: - f = os.path.join(dir_, filename) - - if MACOS and is_macosx_sdk_path(dir_): - f = os.path.join(sysroot, dir_[1:], filename) - - if os.path.exists(f): return [] - - # Check the additional directories - for dir_ in paths: - f = os.path.join(dir_, filename) - - if MACOS and is_macosx_sdk_path(dir_): - f = os.path.join(sysroot, dir_[1:], filename) - - if os.path.exists(f): - return [dir_] - - # Not found anywhere - return None - - -def validate_tzpath(): - base_tzpath = sysconfig.get_config_var('TZPATH') - if not base_tzpath: - return - - tzpaths = base_tzpath.split(os.pathsep) - bad_paths = [tzpath for tzpath in tzpaths if not os.path.isabs(tzpath)] - if bad_paths: - raise ValueError('TZPATH must contain only absolute paths, ' - + f'found:\n{tzpaths!r}\nwith invalid paths:\n' - + f'{bad_paths!r}') - - -def find_module_file(module, dirlist): - """Find a module in a set of possible folders. If it is not found - return the unadorned filename""" - dirs = find_file(module, [], dirlist) - if not dirs: - return module - if len(dirs) > 1: - log.info(f"WARNING: multiple copies of {module} found") - return os.path.abspath(os.path.join(dirs[0], module)) - - -class PyBuildExt(build_ext): - - def __init__(self, dist): - build_ext.__init__(self, dist) - self.srcdir = None - self.lib_dirs = None - self.inc_dirs = None - self.config_h_vars = None - self.failed = [] - self.failed_on_import = [] - self.missing = [] - self.disabled_configure = [] - if '-j' in os.environ.get('MAKEFLAGS', ''): - self.parallel = True - - def add(self, ext): - self.extensions.append(ext) - - def addext(self, ext, *, update_flags=True): - """Add extension with Makefile MODULE_{name} support - """ - if update_flags: - self.update_extension_flags(ext) - - state = sysconfig.get_config_var(f"MODULE_{ext.name.upper()}") - if state == "yes": - self.extensions.append(ext) - elif state == "disabled": - self.disabled_configure.append(ext.name) - elif state == "missing": - self.missing.append(ext.name) - elif state == "n/a": - # not available on current platform - pass - else: - # not migrated to MODULE_{name} yet. - self.announce( - f'WARNING: Makefile is missing module variable for "{ext.name}"', - level=2 - ) - self.extensions.append(ext) - - def update_extension_flags(self, ext): - """Update extension flags with module CFLAGS and LDFLAGS - - Reads MODULE_{name}_CFLAGS and _LDFLAGS - - Distutils appends extra args to the compiler arguments. Some flags like - -I must appear earlier, otherwise the pre-processor picks up files - from system include directories. - """ - upper_name = ext.name.upper() - # Parse compiler flags (-I, -D, -U, extra args) - cflags = sysconfig.get_config_var(f"MODULE_{upper_name}_CFLAGS") - if cflags: - for token in shlex.split(cflags): - switch = token[0:2] - value = token[2:] - if switch == '-I': - ext.include_dirs.append(value) - elif switch == '-D': - key, _, val = value.partition("=") - if not val: - val = None - ext.define_macros.append((key, val)) - elif switch == '-U': - ext.undef_macros.append(value) - else: - ext.extra_compile_args.append(token) - - # Parse linker flags (-L, -l, extra objects, extra args) - ldflags = sysconfig.get_config_var(f"MODULE_{upper_name}_LDFLAGS") - if ldflags: - for token in shlex.split(ldflags): - switch = token[0:2] - value = token[2:] - if switch == '-L': - ext.library_dirs.append(value) - elif switch == '-l': - ext.libraries.append(value) - elif ( - token[0] != '-' and - token.endswith(('.a', '.o', '.so', '.sl', '.dylib')) - ): - ext.extra_objects.append(token) - else: - ext.extra_link_args.append(token) - - return ext - - def set_srcdir(self): - self.srcdir = sysconfig.get_config_var('srcdir') - if not self.srcdir: - # Maybe running on Windows but not using CYGWIN? - raise ValueError("No source directory; cannot proceed.") - self.srcdir = os.path.abspath(self.srcdir) - - def remove_disabled(self): - # Remove modules that are present on the disabled list - extensions = [ext for ext in self.extensions - if ext.name not in DISABLED_MODULE_LIST] - # move ctypes to the end, it depends on other modules - ext_map = dict((ext.name, i) for i, ext in enumerate(extensions)) - if "_ctypes" in ext_map: - ctypes = extensions.pop(ext_map["_ctypes"]) - extensions.append(ctypes) - self.extensions = extensions - - def update_sources_depends(self): - # Fix up the autodetected modules, prefixing all the source files - # with Modules/. - # Add dependencies from MODULE_{name}_DEPS variable - moddirlist = [ - # files in Modules/ directory - os.path.join(self.srcdir, 'Modules'), - # files relative to build base, e.g. libmpdec.a, libexpat.a - os.getcwd() - ] - - # Fix up the paths for scripts, too - self.distribution.scripts = [os.path.join(self.srcdir, filename) - for filename in self.distribution.scripts] - - # Python header files - include_dir = escape(sysconfig.get_path('include')) - headers = [sysconfig.get_config_h_filename()] - headers.extend(glob(os.path.join(include_dir, "*.h"))) - headers.extend(glob(os.path.join(include_dir, "cpython", "*.h"))) - headers.extend(glob(os.path.join(include_dir, "internal", "*.h"))) - - for ext in self.extensions: - ext.sources = [ find_module_file(filename, moddirlist) - for filename in ext.sources ] - # Update dependencies from Makefile - makedeps = sysconfig.get_config_var(f"MODULE_{ext.name.upper()}_DEPS") - if makedeps: - # remove backslashes from line break continuations - ext.depends.extend( - dep for dep in makedeps.split() if dep != "\\" - ) - ext.depends = [ - find_module_file(filename, moddirlist) for filename in ext.depends - ] - # re-compile extensions if a header file has been changed - ext.depends.extend(headers) - - def handle_configured_extensions(self): - # The sysconfig variables built by makesetup that list the already - # built modules and the disabled modules as configured by the Setup - # files. - sysconf_built = set(sysconfig.get_config_var('MODBUILT_NAMES').split()) - sysconf_shared = set(sysconfig.get_config_var('MODSHARED_NAMES').split()) - sysconf_dis = set(sysconfig.get_config_var('MODDISABLED_NAMES').split()) - - mods_built = [] - mods_disabled = [] - for ext in self.extensions: - # If a module has already been built or has been disabled in the - # Setup files, don't build it here. - if ext.name in sysconf_built: - mods_built.append(ext) - if ext.name in sysconf_dis: - mods_disabled.append(ext) - - mods_configured = mods_built + mods_disabled - if mods_configured: - self.extensions = [x for x in self.extensions if x not in - mods_configured] - # Remove the shared libraries built by a previous build. - for ext in mods_configured: - # Don't remove shared extensions which have been built - # by Modules/Setup - if ext.name in sysconf_shared: - continue - fullpath = self.get_ext_fullpath(ext.name) - if os.path.lexists(fullpath): - os.unlink(fullpath) - - return mods_built, mods_disabled - - def set_compiler_executables(self): - # When you run "make CC=altcc" or something similar, you really want - # those environment variables passed into the setup.py phase. Here's - # a small set of useful ones. - compiler = os.environ.get('CC') - args = {} - # unfortunately, distutils doesn't let us provide separate C and C++ - # compilers - if compiler is not None: - (ccshared,cflags) = sysconfig.get_config_vars('CCSHARED','CFLAGS') - args['compiler_so'] = compiler + ' ' + ccshared + ' ' + cflags - self.compiler.set_executables(**args) - - def build_extensions(self): - self.set_srcdir() - self.set_compiler_executables() - self.configure_compiler() - self.init_inc_lib_dirs() - - # Detect which modules should be compiled - self.detect_modules() - - if not LIST_MODULE_NAMES: - self.remove_disabled() - - self.update_sources_depends() - mods_built, mods_disabled = self.handle_configured_extensions() - - if LIST_MODULE_NAMES: - for ext in self.extensions: - print(ext.name) - for name in self.missing: - print(name) - return - - build_ext.build_extensions(self) - - if SUBPROCESS_BOOTSTRAP: - # Drop our custom subprocess module: - # use the newly built subprocess module - del sys.modules['subprocess'] - - for ext in self.extensions: - self.check_extension_import(ext) - - self.summary(mods_built, mods_disabled) - - def summary(self, mods_built, mods_disabled): - longest = max([len(e.name) for e in self.extensions], default=0) - if self.failed or self.failed_on_import: - all_failed = self.failed + self.failed_on_import - longest = max(longest, max([len(name) for name in all_failed])) - - def print_three_column(lst): - lst.sort(key=str.lower) - # guarantee zip() doesn't drop anything - while len(lst) % 3: - lst.append("") - for e, f, g in zip(lst[::3], lst[1::3], lst[2::3]): - print("%-*s %-*s %-*s" % (longest, e, longest, f, - longest, g)) - - if self.missing: - print() - print("Python build finished successfully!") - print("The necessary bits to build these optional modules were not " - "found:") - print_three_column(self.missing) - print("To find the necessary bits, look in setup.py in" - " detect_modules() for the module's name.") - print() - - if mods_built: - print() - print("The following modules found by detect_modules() in" - " setup.py, have been") - print("built by the Makefile instead, as configured by the" - " Setup files:") - print_three_column([ext.name for ext in mods_built]) - print() - - if mods_disabled: - print() - print("The following modules found by detect_modules() in" - " setup.py have not") - print("been built, they are *disabled* in the Setup files:") - print_three_column([ext.name for ext in mods_disabled]) - print() - - if self.disabled_configure: - print() - print("The following modules found by detect_modules() in" - " setup.py have not") - print("been built, they are *disabled* by configure:") - print_three_column(self.disabled_configure) - print() - - if self.failed: - failed = self.failed[:] - print() - print("Failed to build these modules:") - print_three_column(failed) - print() - - if self.failed_on_import: - failed = self.failed_on_import[:] - print() - print("Following modules built successfully" - " but were removed because they could not be imported:") - print_three_column(failed) - print() - - if any('_ssl' in l - for l in (self.missing, self.failed, self.failed_on_import)): - print() - print("Could not build the ssl module!") - print("Python requires a OpenSSL 1.1.1 or newer") - if sysconfig.get_config_var("OPENSSL_LDFLAGS"): - print("Custom linker flags may require --with-openssl-rpath=auto") - print() - - if os.environ.get("PYTHONSTRICTEXTENSIONBUILD") and ( - self.failed or self.failed_on_import or self.missing - ): - raise RuntimeError("Failed to build some stdlib modules") - - def build_extension(self, ext): - - if ext.name == '_ctypes': - if not self.configure_ctypes(ext): - self.failed.append(ext.name) - return - - try: - build_ext.build_extension(self, ext) - except (CCompilerError, DistutilsError) as why: - self.announce('WARNING: building of extension "%s" failed: %s' % - (ext.name, why)) - self.failed.append(ext.name) - return - - def check_extension_import(self, ext): - # Don't try to import an extension that has failed to compile - if ext.name in self.failed: - self.announce( - 'WARNING: skipping import check for failed build "%s"' % - ext.name, level=1) - return - - # Workaround for Mac OS X: The Carbon-based modules cannot be - # reliably imported into a command-line Python - if 'Carbon' in ext.extra_link_args: - self.announce( - 'WARNING: skipping import check for Carbon-based "%s"' % - ext.name) - return - - if MACOS and ( - sys.maxsize > 2**32 and '-arch' in ext.extra_link_args): - # Don't bother doing an import check when an extension was - # build with an explicit '-arch' flag on OSX. That's currently - # only used to build 32-bit only extensions in a 4-way - # universal build and loading 32-bit code into a 64-bit - # process will fail. - self.announce( - 'WARNING: skipping import check for "%s"' % - ext.name) - return - - # Workaround for Cygwin: Cygwin currently has fork issues when many - # modules have been imported - if CYGWIN: - self.announce('WARNING: skipping import check for Cygwin-based "%s"' - % ext.name) - return - ext_filename = os.path.join( - self.build_lib, - self.get_ext_filename(self.get_ext_fullname(ext.name))) - - # If the build directory didn't exist when setup.py was - # started, sys.path_importer_cache has a negative result - # cached. Clear that cache before trying to import. - sys.path_importer_cache.clear() - - # Don't try to load extensions for cross builds - if CROSS_COMPILING: - return - - loader = importlib.machinery.ExtensionFileLoader(ext.name, ext_filename) - spec = importlib.util.spec_from_file_location(ext.name, ext_filename, - loader=loader) - try: - importlib._bootstrap._load(spec) - except ImportError as why: - self.failed_on_import.append(ext.name) - self.announce('*** WARNING: renaming "%s" since importing it' - ' failed: %s' % (ext.name, why), level=3) - assert not self.inplace - basename, tail = os.path.splitext(ext_filename) - newname = basename + "_failed" + tail - if os.path.exists(newname): - os.remove(newname) - os.rename(ext_filename, newname) - - except: - exc_type, why, tb = sys.exc_info() - self.announce('*** WARNING: importing extension "%s" ' - 'failed with %s: %s' % (ext.name, exc_type, why), - level=3) - self.failed.append(ext.name) - - def add_multiarch_paths(self): - # Debian/Ubuntu multiarch support. - # https://wiki.ubuntu.com/MultiarchSpec - tmpfile = os.path.join(self.build_temp, 'multiarch') - if not os.path.exists(self.build_temp): - os.makedirs(self.build_temp) - ret = run_command( - '%s -print-multiarch > %s 2> /dev/null' % (CC, tmpfile)) - multiarch_path_component = '' - try: - if ret == 0: - with open(tmpfile) as fp: - multiarch_path_component = fp.readline().strip() - finally: - os.unlink(tmpfile) - - if multiarch_path_component != '': - add_dir_to_list(self.compiler.library_dirs, - '/usr/lib/' + multiarch_path_component) - add_dir_to_list(self.compiler.include_dirs, - '/usr/include/' + multiarch_path_component) - return - - if not find_executable('dpkg-architecture'): - return - opt = '' - if CROSS_COMPILING: - opt = '-t' + sysconfig.get_config_var('HOST_GNU_TYPE') - tmpfile = os.path.join(self.build_temp, 'multiarch') - if not os.path.exists(self.build_temp): - os.makedirs(self.build_temp) - ret = run_command( - 'dpkg-architecture %s -qDEB_HOST_MULTIARCH > %s 2> /dev/null' % - (opt, tmpfile)) - try: - if ret == 0: - with open(tmpfile) as fp: - multiarch_path_component = fp.readline().strip() - add_dir_to_list(self.compiler.library_dirs, - '/usr/lib/' + multiarch_path_component) - add_dir_to_list(self.compiler.include_dirs, - '/usr/include/' + multiarch_path_component) - finally: - os.unlink(tmpfile) - - def add_wrcc_search_dirs(self): - # add library search path by wr-cc, the compiler wrapper - - def convert_mixed_path(path): - # convert path like C:\folder1\folder2/folder3/folder4 - # to msys style /c/folder1/folder2/folder3/folder4 - drive = path[0].lower() - left = path[2:].replace("\\", "/") - return "/" + drive + left - - def add_search_path(line): - # On Windows building machine, VxWorks does - # cross builds under msys2 environment. - pathsep = (";" if sys.platform == "msys" else ":") - for d in line.strip().split("=")[1].split(pathsep): - d = d.strip() - if sys.platform == "msys": - # On Windows building machine, compiler - # returns mixed style path like: - # C:\folder1\folder2/folder3/folder4 - d = convert_mixed_path(d) - d = os.path.normpath(d) - add_dir_to_list(self.compiler.library_dirs, d) - - tmpfile = os.path.join(self.build_temp, 'wrccpaths') - os.makedirs(self.build_temp, exist_ok=True) - try: - ret = run_command('%s --print-search-dirs >%s' % (CC, tmpfile)) - if ret: - return - with open(tmpfile) as fp: - # Parse paths in libraries line. The line is like: - # On Linux, "libraries: = path1:path2:path3" - # On Windows, "libraries: = path1;path2;path3" - for line in fp: - if not line.startswith("libraries"): - continue - add_search_path(line) - finally: - try: - os.unlink(tmpfile) - except OSError: - pass - - def add_cross_compiling_paths(self): - tmpfile = os.path.join(self.build_temp, 'ccpaths') - if not os.path.exists(self.build_temp): - os.makedirs(self.build_temp) - # bpo-38472: With a German locale, GCC returns "gcc-Version 9.1.0 - # (GCC)", whereas it returns "gcc version 9.1.0" with the C locale. - ret = run_command('LC_ALL=C %s -E -v - </dev/null 2>%s 1>/dev/null' % (CC, tmpfile)) - is_gcc = False - is_clang = False - in_incdirs = False - try: - if ret == 0: - with open(tmpfile) as fp: - for line in fp.readlines(): - if line.startswith("gcc version"): - is_gcc = True - elif line.startswith("clang version"): - is_clang = True - elif line.startswith("#include <...>"): - in_incdirs = True - elif line.startswith("End of search list"): - in_incdirs = False - elif (is_gcc or is_clang) and line.startswith("LIBRARY_PATH"): - for d in line.strip().split("=")[1].split(":"): - d = os.path.normpath(d) - if '/gcc/' not in d: - add_dir_to_list(self.compiler.library_dirs, - d) - elif (is_gcc or is_clang) and in_incdirs and '/gcc/' not in line and '/clang/' not in line: - add_dir_to_list(self.compiler.include_dirs, - line.strip()) - finally: - os.unlink(tmpfile) - - if VXWORKS: - self.add_wrcc_search_dirs() - - def add_ldflags_cppflags(self): - # Add paths specified in the environment variables LDFLAGS and - # CPPFLAGS for header and library files. - # We must get the values from the Makefile and not the environment - # directly since an inconsistently reproducible issue comes up where - # the environment variable is not set even though the value were passed - # into configure and stored in the Makefile (issue found on OS X 10.3). - for env_var, arg_name, dir_list in ( - ('LDFLAGS', '-R', self.compiler.runtime_library_dirs), - ('LDFLAGS', '-L', self.compiler.library_dirs), - ('CPPFLAGS', '-I', self.compiler.include_dirs)): - env_val = sysconfig.get_config_var(env_var) - if env_val: - parser = argparse.ArgumentParser() - parser.add_argument(arg_name, dest="dirs", action="append") - - # To prevent argparse from raising an exception about any - # options in env_val that it mistakes for known option, we - # strip out all double dashes and any dashes followed by a - # character that is not for the option we are dealing with. - # - # Please note that order of the regex is important! We must - # strip out double-dashes first so that we don't end up with - # substituting "--Long" to "-Long" and thus lead to "ong" being - # used for a library directory. - env_val = re.sub(r'(^|\s+)-(-|(?!%s))' % arg_name[1], - ' ', env_val) - options, _ = parser.parse_known_args(env_val.split()) - if options.dirs: - for directory in reversed(options.dirs): - add_dir_to_list(dir_list, directory) - - def configure_compiler(self): - # Ensure that /usr/local is always used, but the local build - # directories (i.e. '.' and 'Include') must be first. See issue - # 10520. - if not CROSS_COMPILING: - add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') - add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') - # only change this for cross builds for 3.3, issues on Mageia - if CROSS_COMPILING: - self.add_cross_compiling_paths() - self.add_multiarch_paths() - self.add_ldflags_cppflags() - - def init_inc_lib_dirs(self): - if (not CROSS_COMPILING and - os.path.normpath(sys.base_prefix) != '/usr' and - not sysconfig.get_config_var('PYTHONFRAMEWORK')): - # OSX note: Don't add LIBDIR and INCLUDEDIR to building a framework - # (PYTHONFRAMEWORK is set) to avoid # linking problems when - # building a framework with different architectures than - # the one that is currently installed (issue #7473) - add_dir_to_list(self.compiler.library_dirs, - sysconfig.get_config_var("LIBDIR")) - add_dir_to_list(self.compiler.include_dirs, - sysconfig.get_config_var("INCLUDEDIR")) - - system_lib_dirs = ['/lib64', '/usr/lib64', '/lib', '/usr/lib'] - system_include_dirs = ['/usr/include'] - # lib_dirs and inc_dirs are used to search for files; - # if a file is found in one of those directories, it can - # be assumed that no additional -I,-L directives are needed. - if not CROSS_COMPILING: - self.lib_dirs = self.compiler.library_dirs + system_lib_dirs - self.inc_dirs = self.compiler.include_dirs + system_include_dirs - else: - # Add the sysroot paths. 'sysroot' is a compiler option used to - # set the logical path of the standard system headers and - # libraries. - self.lib_dirs = (self.compiler.library_dirs + - sysroot_paths(('LDFLAGS', 'CC'), system_lib_dirs)) - self.inc_dirs = (self.compiler.include_dirs + - sysroot_paths(('CPPFLAGS', 'CFLAGS', 'CC'), - system_include_dirs)) - - config_h = sysconfig.get_config_h_filename() - with open(config_h) as file: - self.config_h_vars = sysconfig.parse_config_h(file) - - # OSF/1 and Unixware have some stuff in /usr/ccs/lib (like -ldb) - if HOST_PLATFORM in ['osf1', 'unixware7', 'openunix8']: - self.lib_dirs += ['/usr/ccs/lib'] - - # HP-UX11iv3 keeps files in lib/hpux folders. - if HOST_PLATFORM == 'hp-ux11': - self.lib_dirs += ['/usr/lib/hpux64', '/usr/lib/hpux32'] - - if MACOS: - # This should work on any unixy platform ;-) - # If the user has bothered specifying additional -I and -L flags - # in OPT and LDFLAGS we might as well use them here. - # - # NOTE: using shlex.split would technically be more correct, but - # also gives a bootstrap problem. Let's hope nobody uses - # directories with whitespace in the name to store libraries. - cflags, ldflags = sysconfig.get_config_vars( - 'CFLAGS', 'LDFLAGS') - for item in cflags.split(): - if item.startswith('-I'): - self.inc_dirs.append(item[2:]) - - for item in ldflags.split(): - if item.startswith('-L'): - self.lib_dirs.append(item[2:]) - - def detect_simple_extensions(self): - # - # The following modules are all pretty straightforward, and compile - # on pretty much any POSIXish platform. - # - - # array objects - self.addext(Extension('array', ['arraymodule.c'])) - - # Context Variables - self.addext(Extension('_contextvars', ['_contextvarsmodule.c'])) - - # math library functions, e.g. sin() - self.addext(Extension('math', ['mathmodule.c'])) - - # complex math library functions - self.addext(Extension('cmath', ['cmathmodule.c'])) - - # libm is needed by delta_new() that uses round() and by accum() that - # uses modf(). - self.addext(Extension('_datetime', ['_datetimemodule.c'])) - self.addext(Extension('_zoneinfo', ['_zoneinfo.c'])) - # random number generator implemented in C - self.addext(Extension("_random", ["_randommodule.c"])) - self.addext(Extension("_bisect", ["_bisectmodule.c"])) - self.addext(Extension("_heapq", ["_heapqmodule.c"])) - # C-optimized pickle replacement - self.addext(Extension("_pickle", ["_pickle.c"])) - # _json speedups - self.addext(Extension("_json", ["_json.c"])) - - # profiler (_lsprof is for cProfile.py) - self.addext(Extension('_lsprof', ['_lsprof.c', 'rotatingtree.c'])) - # static Unicode character database - self.addext(Extension('unicodedata', ['unicodedata.c'])) - self.addext(Extension('_opcode', ['_opcode.c'])) - - # asyncio speedups - self.addext(Extension("_asyncio", ["_asynciomodule.c"])) - - self.addext(Extension("_queue", ["_queuemodule.c"])) - self.addext(Extension("_statistics", ["_statisticsmodule.c"])) - self.addext(Extension("_struct", ["_struct.c"])) - self.addext(Extension("_typing", ["_typingmodule.c"])) - - # Modules with some UNIX dependencies -- on by default: - # (If you have a really backward UNIX, select and socket may not be - # supported...) - - # fcntl(2) and ioctl(2) - self.addext(Extension('fcntl', ['fcntlmodule.c'])) - # grp(3) - self.addext(Extension('grp', ['grpmodule.c'])) - - self.addext(Extension('_socket', ['socketmodule.c'])) - self.addext(Extension('spwd', ['spwdmodule.c'])) - - # select(2); not on ancient System V - self.addext(Extension('select', ['selectmodule.c'])) - - # Memory-mapped files (also works on Win32). - self.addext(Extension('mmap', ['mmapmodule.c'])) - - # Lance Ellinghaus's syslog module - # syslog daemon interface - self.addext(Extension('syslog', ['syslogmodule.c'])) - - # Python interface to subinterpreter C-API. - self.addext(Extension('_xxsubinterpreters', ['_xxsubinterpretersmodule.c'])) - - # - # Here ends the simple stuff. From here on, modules need certain - # libraries, are platform-specific, or present other surprises. - # - - # Multimedia modules - # These don't work for 64-bit platforms!!! - # These represent audio samples or images as strings: - # - # Operations on audio samples - # According to #993173, this one should actually work fine on - # 64-bit platforms. - # - # audioop needs libm for floor() in multiple functions. - self.addext(Extension('audioop', ['audioop.c'])) - - # CSV files - self.addext(Extension('_csv', ['_csv.c'])) - - # POSIX subprocess module helper. - self.addext(Extension('_posixsubprocess', ['_posixsubprocess.c'])) - - def detect_test_extensions(self): - # Python C API test module - self.addext(Extension('_testcapi', ['_testcapimodule.c'])) - - # Python Internal C API test module - self.addext(Extension('_testinternalcapi', ['_testinternalcapi.c'])) - - # Python PEP-3118 (buffer protocol) test module - self.addext(Extension('_testbuffer', ['_testbuffer.c'])) - - # Test loading multiple modules from one compiled file (https://bugs.python.org/issue16421) - self.addext(Extension('_testimportmultiple', ['_testimportmultiple.c'])) - - # Test multi-phase extension module init (PEP 489) - self.addext(Extension('_testmultiphase', ['_testmultiphase.c'])) - - # Fuzz tests. - self.addext(Extension( - '_xxtestfuzz', - ['_xxtestfuzz/_xxtestfuzz.c', '_xxtestfuzz/fuzzer.c'] - )) - - def detect_readline_curses(self): - # readline - readline_termcap_library = "" - curses_library = "" - # Cannot use os.popen here in py3k. - tmpfile = os.path.join(self.build_temp, 'readline_termcap_lib') - if not os.path.exists(self.build_temp): - os.makedirs(self.build_temp) - # Determine if readline is already linked against curses or tinfo. - if sysconfig.get_config_var('HAVE_LIBREADLINE'): - if sysconfig.get_config_var('WITH_EDITLINE'): - readline_lib = 'edit' - else: - readline_lib = 'readline' - do_readline = self.compiler.find_library_file(self.lib_dirs, - readline_lib) - if CROSS_COMPILING: - ret = run_command("%s -d %s | grep '(NEEDED)' > %s" - % (sysconfig.get_config_var('READELF'), - do_readline, tmpfile)) - elif find_executable('ldd'): - ret = run_command("ldd %s > %s" % (do_readline, tmpfile)) - else: - ret = 1 - if ret == 0: - with open(tmpfile) as fp: - for ln in fp: - if 'curses' in ln: - readline_termcap_library = re.sub( - r'.*lib(n?cursesw?)\.so.*', r'\1', ln - ).rstrip() - break - # termcap interface split out from ncurses - if 'tinfo' in ln: - readline_termcap_library = 'tinfo' - break - if os.path.exists(tmpfile): - os.unlink(tmpfile) - else: - do_readline = False - # Issue 7384: If readline is already linked against curses, - # use the same library for the readline and curses modules. - if 'curses' in readline_termcap_library: - curses_library = readline_termcap_library - elif self.compiler.find_library_file(self.lib_dirs, 'ncursesw'): - curses_library = 'ncursesw' - # Issue 36210: OSS provided ncurses does not link on AIX - # Use IBM supplied 'curses' for successful build of _curses - elif AIX and self.compiler.find_library_file(self.lib_dirs, 'curses'): - curses_library = 'curses' - elif self.compiler.find_library_file(self.lib_dirs, 'ncurses'): - curses_library = 'ncurses' - elif self.compiler.find_library_file(self.lib_dirs, 'curses'): - curses_library = 'curses' - - if MACOS: - os_release = int(os.uname()[2].split('.')[0]) - dep_target = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET') - if (dep_target and - (tuple(int(n) for n in dep_target.split('.')[0:2]) - < (10, 5) ) ): - os_release = 8 - if os_release < 9: - # MacOSX 10.4 has a broken readline. Don't try to build - # the readline module unless the user has installed a fixed - # readline package - if find_file('readline/rlconf.h', self.inc_dirs, []) is None: - do_readline = False - if do_readline: - readline_libs = [readline_lib] - if readline_termcap_library: - pass # Issue 7384: Already linked against curses or tinfo. - elif curses_library: - readline_libs.append(curses_library) - elif self.compiler.find_library_file(self.lib_dirs + - ['/usr/lib/termcap'], - 'termcap'): - readline_libs.append('termcap') - self.add(Extension('readline', ['readline.c'], - library_dirs=['/usr/lib/termcap'], - libraries=readline_libs)) - else: - self.missing.append('readline') - - # Curses support, requiring the System V version of curses, often - # provided by the ncurses library. - curses_defines = [] - curses_includes = [] - panel_library = 'panel' - if curses_library == 'ncursesw': - curses_defines.append(('HAVE_NCURSESW', '1')) - if not CROSS_COMPILING: - curses_includes.append('/usr/include/ncursesw') - # Bug 1464056: If _curses.so links with ncursesw, - # _curses_panel.so must link with panelw. - panel_library = 'panelw' - if MACOS: - # On OS X, there is no separate /usr/lib/libncursesw nor - # libpanelw. If we are here, we found a locally-supplied - # version of libncursesw. There should also be a - # libpanelw. _XOPEN_SOURCE defines are usually excluded - # for OS X but we need _XOPEN_SOURCE_EXTENDED here for - # ncurses wide char support - curses_defines.append(('_XOPEN_SOURCE_EXTENDED', '1')) - elif MACOS and curses_library == 'ncurses': - # Building with the system-suppied combined libncurses/libpanel - curses_defines.append(('HAVE_NCURSESW', '1')) - curses_defines.append(('_XOPEN_SOURCE_EXTENDED', '1')) - - curses_enabled = True - if curses_library.startswith('ncurses'): - curses_libs = [curses_library] - self.add(Extension('_curses', ['_cursesmodule.c'], - include_dirs=curses_includes, - define_macros=curses_defines, - libraries=curses_libs)) - elif curses_library == 'curses' and not MACOS: - # OSX has an old Berkeley curses, not good enough for - # the _curses module. - if (self.compiler.find_library_file(self.lib_dirs, 'terminfo')): - curses_libs = ['curses', 'terminfo'] - elif (self.compiler.find_library_file(self.lib_dirs, 'termcap')): - curses_libs = ['curses', 'termcap'] - else: - curses_libs = ['curses'] - - self.add(Extension('_curses', ['_cursesmodule.c'], - define_macros=curses_defines, - libraries=curses_libs)) - else: - curses_enabled = False - self.missing.append('_curses') - - # If the curses module is enabled, check for the panel module - # _curses_panel needs some form of ncurses - skip_curses_panel = True if AIX else False - if (curses_enabled and not skip_curses_panel and - self.compiler.find_library_file(self.lib_dirs, panel_library)): - self.add(Extension('_curses_panel', ['_curses_panel.c'], - include_dirs=curses_includes, - define_macros=curses_defines, - libraries=[panel_library, *curses_libs])) - elif not skip_curses_panel: - self.missing.append('_curses_panel') - - def detect_crypt(self): - self.addext(Extension('_crypt', ['_cryptmodule.c'])) - - def detect_dbm_gdbm(self): - # Modules that provide persistent dictionary-like semantics. You will - # probably want to arrange for at least one of them to be available on - # your machine, though none are defined by default because of library - # dependencies. The Python module dbm/__init__.py provides an - # implementation independent wrapper for these; dbm/dumb.py provides - # similar functionality (but slower of course) implemented in Python. - - dbm_setup_debug = False # verbose debug prints from this script? - dbm_order = ['gdbm'] - - # libdb, gdbm and ndbm headers and libraries - have_ndbm_h = sysconfig.get_config_var("HAVE_NDBM_H") - have_gdbm_ndbm_h = sysconfig.get_config_var("HAVE_GDBM_NDBM_H") - have_gdbm_dash_ndbm_h = sysconfig.get_config_var("HAVE_GDBM_DASH_NDBM_H") - have_libndbm = sysconfig.get_config_var("HAVE_LIBNDBM") - have_libgdbm_compat = sysconfig.get_config_var("HAVE_LIBGDBM_COMPAT") - have_libdb = sysconfig.get_config_var("HAVE_LIBDB") - - # The standard Unix dbm module: - if not CYGWIN: - config_args = [arg.strip("'") - for arg in sysconfig.get_config_var("CONFIG_ARGS").split()] - dbm_args = [arg for arg in config_args - if arg.startswith('--with-dbmliborder=')] - if dbm_args: - dbm_order = [arg.split('=')[-1] for arg in dbm_args][-1].split(":") - else: - dbm_order = "gdbm:ndbm:bdb".split(":") - dbmext = None - for cand in dbm_order: - if cand == "ndbm": - if have_ndbm_h: - # Some systems have -lndbm, others have -lgdbm_compat, - # others don't have either - if have_libndbm: - ndbm_libs = ['ndbm'] - elif have_libgdbm_compat: - ndbm_libs = ['gdbm_compat'] - else: - ndbm_libs = [] - if dbm_setup_debug: print("building dbm using ndbm") - dbmext = Extension( - '_dbm', ['_dbmmodule.c'], - define_macros=[('USE_NDBM', None)], - libraries=ndbm_libs - ) - break - elif cand == "gdbm": - # dbm_open() is provided by libgdbm_compat, which wraps libgdbm - if have_libgdbm_compat and (have_gdbm_ndbm_h or have_gdbm_dash_ndbm_h): - if dbm_setup_debug: print("building dbm using gdbm") - dbmext = Extension( - '_dbm', ['_dbmmodule.c'], - define_macros=[('USE_GDBM_COMPAT', None)], - libraries=['gdbm_compat'] - ) - break - elif cand == "bdb": - if have_libdb: - if dbm_setup_debug: print("building dbm using bdb") - dbmext = Extension( - '_dbm', ['_dbmmodule.c'], - define_macros=[('USE_BERKDB', None)], - libraries=['db'] - ) - break - if dbmext is not None: - self.add(dbmext) - else: - self.missing.append('_dbm') - - # Anthony Baxter's gdbm module. GNU dbm(3) will require -lgdbm: - self.addext(Extension('_gdbm', ['_gdbmmodule.c'])) - - def detect_sqlite(self): - sources = [ - "_sqlite/blob.c", - "_sqlite/connection.c", - "_sqlite/cursor.c", - "_sqlite/microprotocols.c", - "_sqlite/module.c", - "_sqlite/prepare_protocol.c", - "_sqlite/row.c", - "_sqlite/statement.c", - "_sqlite/util.c", - ] - self.addext(Extension("_sqlite3", sources=sources)) - - def detect_platform_specific_exts(self): - # Unix-only modules - # Steen Lumholt's termios module - self.addext(Extension('termios', ['termios.c'])) - # Jeremy Hylton's rlimit interface - self.addext(Extension('resource', ['resource.c'])) - # linux/soundcard.h or sys/soundcard.h - self.addext(Extension('ossaudiodev', ['ossaudiodev.c'])) - - # macOS-only, needs SystemConfiguration and CoreFoundation framework - self.addext(Extension('_scproxy', ['_scproxy.c'])) - - def detect_compress_exts(self): - # Andrew Kuchling's zlib module. - self.addext(Extension('zlib', ['zlibmodule.c'])) - - # Helper module for various ascii-encoders. Uses zlib for an optimized - # crc32 if we have it. Otherwise binascii uses its own. - self.addext(Extension('binascii', ['binascii.c'])) - - # Gustavo Niemeyer's bz2 module. - self.addext(Extension('_bz2', ['_bz2module.c'])) - - # LZMA compression support. - self.addext(Extension('_lzma', ['_lzmamodule.c'])) - - def detect_expat_elementtree(self): - # Interface to the Expat XML parser - # - # Expat was written by James Clark and is now maintained by a group of - # developers on SourceForge; see www.libexpat.org for more information. - # The pyexpat module was written by Paul Prescod after a prototype by - # Jack Jansen. The Expat source is included in Modules/expat/. Usage - # of a system shared libexpat.so is possible with --with-system-expat - # configure option. - # - # More information on Expat can be found at www.libexpat.org. - # - self.addext(Extension('pyexpat', sources=['pyexpat.c'])) - - # Fredrik Lundh's cElementTree module. Note that this also - # uses expat (via the CAPI hook in pyexpat). - self.addext(Extension('_elementtree', sources=['_elementtree.c'])) - - def detect_multibytecodecs(self): - # Hye-Shik Chang's CJKCodecs modules. - self.addext(Extension('_multibytecodec', - ['cjkcodecs/multibytecodec.c'])) - for loc in ('kr', 'jp', 'cn', 'tw', 'hk', 'iso2022'): - self.addext(Extension( - f'_codecs_{loc}', [f'cjkcodecs/_codecs_{loc}.c'] - )) - - def detect_multiprocessing(self): - # Richard Oudkerk's multiprocessing module - multiprocessing_srcs = ['_multiprocessing/multiprocessing.c'] - if ( - sysconfig.get_config_var('HAVE_SEM_OPEN') and not - sysconfig.get_config_var('POSIX_SEMAPHORES_NOT_ENABLED') - ): - multiprocessing_srcs.append('_multiprocessing/semaphore.c') - self.addext(Extension('_multiprocessing', multiprocessing_srcs)) - self.addext(Extension('_posixshmem', ['_multiprocessing/posixshmem.c'])) - - def detect_uuid(self): - # Build the _uuid module if possible - self.addext(Extension('_uuid', ['_uuidmodule.c'])) - - def detect_modules(self): - # remove dummy extension - self.extensions = [] - - # Some C extensions are built by entries in Modules/Setup.bootstrap. - # These are extensions are required to bootstrap the interpreter or - # build process. - self.detect_simple_extensions() - self.detect_test_extensions() - self.detect_readline_curses() - self.detect_crypt() - self.detect_openssl_hashlib() - self.detect_hash_builtins() - self.detect_dbm_gdbm() - self.detect_sqlite() - self.detect_platform_specific_exts() - self.detect_nis() - self.detect_compress_exts() - self.detect_expat_elementtree() - self.detect_multibytecodecs() - self.detect_decimal() - self.detect_ctypes() - self.detect_multiprocessing() - self.detect_tkinter() - self.detect_uuid() - - # Uncomment the next line if you want to play with xxmodule.c -# self.add(Extension('xx', ['xxmodule.c'])) - - self.addext(Extension('xxlimited', ['xxlimited.c'])) - self.addext(Extension('xxlimited_35', ['xxlimited_35.c'])) - - def detect_tkinter(self): - self.addext(Extension('_tkinter', ['_tkinter.c', 'tkappinit.c'])) - - def configure_ctypes(self, ext): - return True - - def detect_ctypes(self): - # Thomas Heller's _ctypes module - - if (not sysconfig.get_config_var("LIBFFI_INCLUDEDIR") and MACOS): - self.use_system_libffi = True - else: - self.use_system_libffi = '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS") - - include_dirs = [] - extra_compile_args = [] - extra_link_args = [] - sources = ['_ctypes/_ctypes.c', - '_ctypes/callbacks.c', - '_ctypes/callproc.c', - '_ctypes/stgdict.c', - '_ctypes/cfield.c'] - - if MACOS: - sources.append('_ctypes/malloc_closure.c') - extra_compile_args.append('-DUSING_MALLOC_CLOSURE_DOT_C=1') - extra_compile_args.append('-DMACOSX') - 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 - # when it shouldn't. The proper fix would be to rewrite - # the assembler code to be PIC. - # This only works with GCC; the Sun compiler likely refuses - # this option. If you want to compile ctypes with the Sun - # compiler, please research a proper solution, instead of - # finding some -z option for the Sun compiler. - extra_link_args.append('-mimpure-text') - - ext = Extension('_ctypes', - include_dirs=include_dirs, - extra_compile_args=extra_compile_args, - extra_link_args=extra_link_args, - libraries=[], - sources=sources) - self.add(ext) - # function my_sqrt() needs libm for sqrt() - self.addext(Extension('_ctypes_test', ['_ctypes/_ctypes_test.c'])) - - ffi_inc = sysconfig.get_config_var("LIBFFI_INCLUDEDIR") - ffi_lib = None - - ffi_inc_dirs = self.inc_dirs.copy() - if MACOS: - ffi_in_sdk = os.path.join(macosx_sdk_root(), "usr/include/ffi") - - if not ffi_inc: - if os.path.exists(ffi_in_sdk): - ext.extra_compile_args.append("-DUSING_APPLE_OS_LIBFFI=1") - ffi_inc = ffi_in_sdk - ffi_lib = 'ffi' - else: - # OS X 10.5 comes with libffi.dylib; the include files are - # in /usr/include/ffi - ffi_inc_dirs.append('/usr/include/ffi') - - if not ffi_inc: - found = find_file('ffi.h', [], ffi_inc_dirs) - if found: - ffi_inc = found[0] - if ffi_inc: - ffi_h = ffi_inc + '/ffi.h' - if not os.path.exists(ffi_h): - ffi_inc = None - print('Header file {} does not exist'.format(ffi_h)) - if ffi_lib is None and ffi_inc: - for lib_name in ('ffi', 'ffi_pic'): - if (self.compiler.find_library_file(self.lib_dirs, lib_name)): - ffi_lib = lib_name - break - - if ffi_inc and ffi_lib: - ffi_headers = glob(os.path.join(ffi_inc, '*.h')) - if grep_headers_for('ffi_prep_cif_var', ffi_headers): - ext.extra_compile_args.append("-DHAVE_FFI_PREP_CIF_VAR=1") - if grep_headers_for('ffi_prep_closure_loc', ffi_headers): - ext.extra_compile_args.append("-DHAVE_FFI_PREP_CLOSURE_LOC=1") - if grep_headers_for('ffi_closure_alloc', ffi_headers): - ext.extra_compile_args.append("-DHAVE_FFI_CLOSURE_ALLOC=1") - - ext.include_dirs.append(ffi_inc) - ext.libraries.append(ffi_lib) - self.use_system_libffi = True - - if sysconfig.get_config_var('HAVE_LIBDL'): - # for dlopen, see bpo-32647 - ext.libraries.append('dl') - - def detect_decimal(self): - # Stefan Krah's _decimal module - self.addext( - Extension( - '_decimal', - ['_decimal/_decimal.c'], - # Uncomment for extra functionality: - # define_macros=[('EXTRA_FUNCTIONALITY', 1)] - ) - ) - - def detect_openssl_hashlib(self): - self.addext(Extension('_ssl', ['_ssl.c'])) - self.addext(Extension('_hashlib', ['_hashopenssl.c'])) - - def detect_hash_builtins(self): - # By default we always compile these even when OpenSSL is available - # (issue #14693). It's harmless and the object code is tiny - # (40-50 KiB per module, only loaded when actually used). Modules can - # be disabled via the --with-builtin-hashlib-hashes configure flag. - - self.addext(Extension('_md5', ['md5module.c'])) - self.addext(Extension('_sha1', ['sha1module.c'])) - self.addext(Extension('_sha256', ['sha256module.c'])) - self.addext(Extension('_sha512', ['sha512module.c'])) - self.addext(Extension('_sha3', ['_sha3/sha3module.c'])) - self.addext(Extension('_blake2', - [ - '_blake2/blake2module.c', - '_blake2/blake2b_impl.c', - '_blake2/blake2s_impl.c' - ] - )) - - def detect_nis(self): - self.addext(Extension('nis', ['nismodule.c'])) - - -class PyBuildInstall(install): - # Suppress the warning about installation into the lib_dynload - # directory, which is not in sys.path when running Python during - # installation: - def initialize_options (self): - install.initialize_options(self) - self.warn_dir=0 - - # Customize subcommands to not install an egg-info file for Python - sub_commands = [('install_lib', install.has_lib), - ('install_headers', install.has_headers), - ('install_scripts', install.has_scripts), - ('install_data', install.has_data)] - - -class PyBuildInstallLib(install_lib): - # Do exactly what install_lib does but make sure correct access modes get - # set on installed directories and files. All installed files with get - # mode 644 unless they are a shared library in which case they will get - # mode 755. All installed directories will get mode 755. - - # this is works for EXT_SUFFIX too, which ends with SHLIB_SUFFIX - shlib_suffix = sysconfig.get_config_var("SHLIB_SUFFIX") - - def install(self): - outfiles = install_lib.install(self) - self.set_file_modes(outfiles, 0o644, 0o755) - self.set_dir_modes(self.install_dir, 0o755) - return outfiles - - def set_file_modes(self, files, defaultMode, sharedLibMode): - if not files: return - - for filename in files: - if os.path.islink(filename): continue - mode = defaultMode - if filename.endswith(self.shlib_suffix): mode = sharedLibMode - log.info("changing mode of %s to %o", filename, mode) - if not self.dry_run: os.chmod(filename, mode) - - def set_dir_modes(self, dirname, mode): - for dirpath, dirnames, fnames in os.walk(dirname): - if os.path.islink(dirpath): - continue - log.info("changing mode of %s to %o", dirpath, mode) - if not self.dry_run: os.chmod(dirpath, mode) - - -class PyBuildScripts(build_scripts): - def copy_scripts(self): - outfiles, updated_files = build_scripts.copy_scripts(self) - fullversion = '-{0[0]}.{0[1]}'.format(sys.version_info) - minoronly = '.{0[1]}'.format(sys.version_info) - newoutfiles = [] - newupdated_files = [] - for filename in outfiles: - if filename.endswith('2to3'): - newfilename = filename + fullversion - else: - newfilename = filename + minoronly - log.info(f'renaming {filename} to {newfilename}') - os.rename(filename, newfilename) - newoutfiles.append(newfilename) - if filename in updated_files: - newupdated_files.append(newfilename) - return newoutfiles, newupdated_files - - -def main(): - global LIST_MODULE_NAMES - - if "--list-module-names" in sys.argv: - LIST_MODULE_NAMES = True - sys.argv.remove("--list-module-names") - - set_compiler_flags('CFLAGS', 'PY_CFLAGS_NODIST') - set_compiler_flags('LDFLAGS', 'PY_LDFLAGS_NODIST') - - class DummyProcess: - """Hack for parallel build""" - ProcessPoolExecutor = None - - sys.modules['concurrent.futures.process'] = DummyProcess - validate_tzpath() - - # turn off warnings when deprecated modules are imported - import warnings - warnings.filterwarnings("ignore",category=DeprecationWarning) - setup(# PyPI Metadata (PEP 301) - name = "Python", - version = sys.version.split()[0], - url = "https://www.python.org/%d.%d" % sys.version_info[:2], - maintainer = "Guido van Rossum and the Python community", - maintainer_email = "python-dev@python.org", - description = "A high-level object-oriented programming language", - long_description = SUMMARY.strip(), - license = "PSF license", - classifiers = [x for x in CLASSIFIERS.split("\n") if x], - platforms = ["Many"], - - # Build info - cmdclass = {'build_ext': PyBuildExt, - 'build_scripts': PyBuildScripts, - 'install': PyBuildInstall, - 'install_lib': PyBuildInstallLib}, - # A dummy module is defined here, because build_ext won't be - # called unless there's at least one extension module defined. - ext_modules=[Extension('_dummy', ['_dummy.c'])], - - # If you change the scripts installed here, you also need to - # check the PyBuildScripts command above, and change the links - # created by the bininstall target in Makefile.pre.in - scripts = ["Tools/scripts/pydoc3", "Tools/scripts/idle3", - "Tools/scripts/2to3"] - ) - -# --install-platlib -if __name__ == '__main__': - main() From a0a8ae3984f488b465c84950d73e102952d57e46 Mon Sep 17 00:00:00 2001 From: Ev2geny <ev2geny@gmail.com> Date: Mon, 19 Sep 2022 00:58:23 +0200 Subject: [PATCH 33/33] Revert "Merged with master and resolved merge conflicsts in Doc/whatsnew/3.12.rst and in Lib/tempfile.py" This reverts commit 07076e83126f246d1480418f46071d8e2cdedf80. --- .azure-pipelines/ci.yml | 4 +- .azure-pipelines/find-tools.yml | 26 + .azure-pipelines/libffi-build.yml | 86 + .azure-pipelines/openssl-build.yml | 110 + .azure-pipelines/pr.yml | 4 +- .azure-pipelines/tcltk-build.yml | 71 + .gitattributes | 51 +- .github/CODEOWNERS | 12 +- .github/CONTRIBUTING.rst | 8 +- .github/ISSUE_TEMPLATE/bug.md | 4 +- .github/ISSUE_TEMPLATE/crash.md | 6 +- .github/ISSUE_TEMPLATE/documentation.md | 2 +- .github/ISSUE_TEMPLATE/feature.md | 6 +- .github/workflows/build.yml | 6 +- .github/workflows/build_msi.yml | 37 +- .github/workflows/doc.yml | 46 +- .github/workflows/project-updater.yml | 27 - .github/workflows/regen-abidump.sh | 8 - .github/workflows/verify-ensurepip-wheels.yml | 28 - .gitignore | 5 - Doc/about.rst | 4 +- Doc/c-api/allocation.rst | 2 +- Doc/c-api/call.rst | 27 +- Doc/c-api/code.rst | 25 - Doc/c-api/datetime.rst | 19 - Doc/c-api/function.rst | 9 - Doc/c-api/init.rst | 24 - Doc/c-api/init_config.rst | 19 +- Doc/c-api/intro.rst | 4 +- Doc/c-api/long.rst | 17 +- Doc/c-api/memory.rst | 2 +- Doc/c-api/object.rst | 18 - Doc/c-api/structures.rst | 16 +- Doc/c-api/sys.rst | 8 +- Doc/c-api/type.rst | 42 +- Doc/c-api/typeobj.rst | 205 +- Doc/c-api/unicode.rst | 10 +- Doc/c-api/veryhigh.rst | 4 +- Doc/c-api/weakref.rst | 4 +- Doc/conf.py | 16 +- Doc/contents.rst | 1 + Doc/data/refcounts.dat | 8 - Doc/data/stable_abi.dat | 3 - Doc/distributing/index.rst | 12 +- Doc/distutils/_setuptools_disclaimer.rst | 5 + Doc/distutils/apiref.rst | 2041 + Doc/distutils/builtdist.rst | 392 + Doc/distutils/commandref.rst | 105 + Doc/distutils/configfile.rst | 144 + Doc/distutils/examples.rst | 340 + Doc/distutils/extending.rst | 98 + Doc/distutils/index.rst | 49 + Doc/distutils/introduction.rst | 203 + Doc/distutils/packageindex.rst | 16 + Doc/distutils/setupscript.rst | 713 + Doc/distutils/sourcedist.rst | 245 + Doc/distutils/uploading.rst | 8 + Doc/extending/building.rst | 128 +- Doc/extending/index.rst | 4 +- Doc/extending/newtypes.rst | 35 +- Doc/extending/windows.rst | 8 +- Doc/faq/design.rst | 13 +- Doc/faq/extending.rst | 8 +- Doc/faq/general.rst | 6 +- Doc/faq/library.rst | 12 +- Doc/faq/programming.rst | 15 +- Doc/glossary.rst | 8 +- Doc/howto/clinic.rst | 11 +- Doc/howto/cporting.rst | 2 +- Doc/howto/curses.rst | 6 +- Doc/howto/descriptor.rst | 22 +- Doc/howto/enum.rst | 19 +- Doc/howto/functional.rst | 37 +- Doc/howto/index.rst | 2 - Doc/howto/instrumentation.rst | 4 +- Doc/howto/isolating-extensions.rst | 536 - Doc/howto/logging-cookbook.rst | 449 +- Doc/howto/logging.rst | 12 +- Doc/howto/perf_profiling.rst | 203 - Doc/howto/pyporting.rst | 6 +- Doc/howto/regex.rst | 2 +- Doc/howto/sockets.rst | 19 +- Doc/howto/unicode.rst | 6 +- Doc/howto/urllib2.rst | 10 +- Doc/includes/email-headers.py | 3 +- Doc/includes/sqlite3/adapter_datetime.py | 17 + Doc/includes/sqlite3/adapter_point_1.py | 18 + Doc/includes/sqlite3/adapter_point_2.py | 19 + Doc/includes/sqlite3/blob.py | 19 + Doc/includes/sqlite3/collation_reverse.py | 20 + Doc/includes/sqlite3/complete_statement.py | 33 + Doc/includes/sqlite3/converter_point.py | 47 + Doc/includes/sqlite3/ctx_manager.py | 20 + Doc/includes/sqlite3/execute_1.py | 22 + Doc/includes/sqlite3/executemany_1.py | 26 + Doc/includes/sqlite3/executemany_2.py | 17 + Doc/includes/sqlite3/executescript.py | 25 + Doc/includes/sqlite3/load_extension.py | 28 + Doc/includes/sqlite3/md5func.py | 13 + Doc/includes/sqlite3/mysumaggr.py | 22 + Doc/includes/sqlite3/pysqlite_datetime.py | 22 + Doc/includes/sqlite3/row_factory.py | 15 + Doc/includes/sqlite3/rowclass.py | 14 + Doc/includes/sqlite3/shortcut_methods.py | 24 + Doc/includes/sqlite3/sumintwindow.py | 46 + Doc/includes/sqlite3/text_factory.py | 29 + Doc/includes/wasm-notavail.rst | 7 - Doc/install/index.rst | 10 +- Doc/installing/index.rst | 2 +- Doc/library/2to3.rst | 8 +- Doc/library/_thread.rst | 4 +- Doc/library/argparse.rst | 11 +- Doc/library/array.rst | 2 +- Doc/library/ast.rst | 13 +- Doc/library/asynchat.rst | 3 +- Doc/library/asyncio-api-index.rst | 29 +- Doc/library/asyncio-eventloop.rst | 22 +- Doc/library/asyncio-extending.rst | 6 + Doc/library/asyncio-future.rst | 2 +- Doc/library/asyncio-llapi-index.rst | 6 +- Doc/library/asyncio-runner.rst | 4 +- Doc/library/asyncio-stream.rst | 2 +- Doc/library/asyncio-sync.rst | 8 +- Doc/library/asyncio-task.rst | 275 +- Doc/library/asyncio.rst | 1 - Doc/library/asyncore.rst | 2 - Doc/library/base64.rst | 2 +- Doc/library/bdb.rst | 181 +- Doc/library/bisect.rst | 40 +- Doc/library/cgi.rst | 32 - Doc/library/codecs.rst | 2 +- Doc/library/collections.rst | 2 +- Doc/library/compileall.rst | 1 - Doc/library/concurrent.futures.rst | 10 +- Doc/library/configparser.rst | 29 +- Doc/library/contextlib.rst | 2 +- Doc/library/crypt.rst | 4 +- Doc/library/csv.rst | 4 - Doc/library/ctypes.rst | 49 +- Doc/library/custominterp.rst | 2 +- Doc/library/dataclasses.rst | 51 - Doc/library/datetime.rst | 26 +- Doc/library/decimal.rst | 10 +- Doc/library/difflib.rst | 10 +- Doc/library/dis.rst | 281 +- Doc/library/distribution.rst | 1 + Doc/library/distutils.rst | 49 + Doc/library/doctest.rst | 4 +- Doc/library/email.header.rst | 2 +- Doc/library/email.rst | 3 + Doc/library/ensurepip.rst | 1 - Doc/library/enum.rst | 11 +- Doc/library/errno.rst | 9 - Doc/library/exceptions.rst | 7 +- Doc/library/fcntl.rst | 8 - Doc/library/fractions.rst | 3 - Doc/library/ftplib.rst | 2 - Doc/library/functions.rst | 13 +- Doc/library/functools.rst | 8 +- Doc/library/getpass.rst | 3 +- Doc/library/gettext.rst | 2 +- Doc/library/glob.rst | 2 +- Doc/library/grp.rst | 9 +- Doc/library/gzip.rst | 4 - Doc/library/hashlib.rst | 20 +- Doc/library/hmac.rst | 4 +- Doc/library/html.entities.rst | 6 +- Doc/library/http.client.rst | 4 +- Doc/library/http.cookiejar.rst | 17 +- Doc/library/http.cookies.rst | 2 +- Doc/library/http.rst | 25 - Doc/library/http.server.rst | 15 +- Doc/library/idle.rst | 106 +- Doc/library/imaplib.rst | 2 - Doc/library/importlib.metadata.rst | 41 +- Doc/library/importlib.resources.abc.rst | 272 +- Doc/library/importlib.resources.rst | 104 +- Doc/library/importlib.rst | 255 +- Doc/library/inspect.rst | 4 +- Doc/library/intro.rst | 59 - Doc/library/io.rst | 10 +- Doc/library/itertools.rst | 55 +- Doc/library/json.rst | 58 +- Doc/library/locale.rst | 20 +- Doc/library/logging.config.rst | 89 - Doc/library/logging.handlers.rst | 40 +- Doc/library/logging.rst | 238 +- Doc/library/mailbox.rst | 2 +- Doc/library/mailcap.rst | 12 - Doc/library/math.rst | 8 +- Doc/library/mmap.rst | 4 +- Doc/library/modules.rst | 1 - Doc/library/multiprocessing.rst | 16 +- Doc/library/multiprocessing.shared_memory.rst | 4 +- Doc/library/nis.rst | 2 - Doc/library/nntplib.rst | 19 - Doc/library/numbers.rst | 9 +- Doc/library/optparse.rst | 8 +- Doc/library/os.path.rst | 4 +- Doc/library/os.rst | 347 +- Doc/library/pathlib.rst | 146 +- Doc/library/pipes.rst | 2 +- Doc/library/platform.rst | 2 +- Doc/library/poplib.rst | 2 - Doc/library/posix.rst | 2 +- Doc/library/pwd.rst | 2 - Doc/library/py_compile.rst | 5 +- Doc/library/queue.rst | 3 +- Doc/library/random.rst | 33 +- Doc/library/re.rst | 8 - Doc/library/reprlib.rst | 81 +- Doc/library/resource.rst | 22 +- Doc/library/secrets.rst | 8 +- Doc/library/security_warnings.rst | 2 +- Doc/library/select.rst | 5 +- Doc/library/selectors.rst | 1 - Doc/library/shlex.rst | 6 +- Doc/library/shutil.rst | 12 +- Doc/library/signal.rst | 61 +- Doc/library/smtpd.rst | 267 + Doc/library/smtplib.rst | 1 - Doc/library/socket.rst | 102 +- Doc/library/socketserver.rst | 2 - Doc/library/spwd.rst | 2 - Doc/library/sqlite3.rst | 2351 +- Doc/library/ssl.rst | 110 +- Doc/library/statistics.rst | 83 +- Doc/library/stdtypes.rst | 176 +- Doc/library/string.rst | 3 +- Doc/library/struct.rst | 11 +- Doc/library/subprocess.rst | 9 +- Doc/library/superseded.rst | 1 + Doc/library/symtable.rst | 3 +- Doc/library/sys.rst | 74 +- Doc/library/sysconfig.rst | 2 +- Doc/library/syslog.rst | 12 +- Doc/library/tarfile.rst | 9 +- Doc/library/telnetlib.rst | 1 - Doc/library/test.rst | 61 - Doc/library/threading.rst | 39 +- Doc/library/time.rst | 21 +- Doc/library/tkinter.rst | 6 +- Doc/library/tkinter.ttk.rst | 8 +- Doc/library/traceback.rst | 39 +- Doc/library/turtle.rst | 2 +- Doc/library/types.rst | 6 - Doc/library/typing.rst | 142 +- Doc/library/unicodedata.rst | 8 +- Doc/library/unittest.mock.rst | 2 +- Doc/library/unittest.rst | 59 +- Doc/library/urllib.request.rst | 3 +- Doc/library/uuid.rst | 2 +- Doc/library/venv.rst | 42 +- Doc/library/warnings.rst | 16 +- Doc/library/webbrowser.rst | 2 - Doc/library/winreg.rst | 18 +- Doc/library/wsgiref.rst | 4 +- Doc/library/xml.dom.minidom.rst | 4 +- Doc/library/xml.rst | 2 +- Doc/library/xmlrpc.client.rst | 8 +- Doc/library/xmlrpc.server.rst | 1 - Doc/library/zlib.rst | 2 +- Doc/library/zoneinfo.rst | 1 - Doc/license.rst | 8 +- Doc/reference/compound_stmts.rst | 6 +- Doc/reference/datamodel.rst | 4 +- Doc/reference/expressions.rst | 2 +- Doc/reference/import.rst | 28 +- Doc/reference/introduction.rst | 6 +- Doc/reference/lexical_analysis.rst | 43 +- Doc/tools/extensions/asdl_highlight.py | 3 +- Doc/tools/extensions/peg_highlight.py | 2 +- Doc/tools/extensions/pyspecific.py | 64 +- Doc/tools/extensions/suspicious.py | 41 +- Doc/tools/rstlint.py | 2 +- Doc/tools/susp-ignored.csv | 4 - Doc/tools/templates/download.html | 4 - Doc/tutorial/classes.rst | 2 +- Doc/tutorial/controlflow.rst | 6 +- Doc/tutorial/datastructures.rst | 8 +- Doc/tutorial/inputoutput.rst | 6 +- Doc/tutorial/modules.rst | 21 +- Doc/tutorial/stdlib.rst | 12 +- Doc/tutorial/stdlib2.rst | 3 +- Doc/tutorial/whatnow.rst | 9 +- Doc/using/cmdline.rst | 63 +- Doc/using/configure.rst | 64 +- Doc/using/mac.rst | 9 +- Doc/using/unix.rst | 2 +- Doc/using/venv-create.inc | 4 +- Doc/using/windows.rst | 72 +- Doc/whatsnew/2.0.rst | 4 +- Doc/whatsnew/2.1.rst | 7 +- Doc/whatsnew/2.3.rst | 4 +- Doc/whatsnew/2.4.rst | 6 +- Doc/whatsnew/2.5.rst | 20 +- Doc/whatsnew/2.6.rst | 22 +- Doc/whatsnew/2.7.rst | 20 +- Doc/whatsnew/3.0.rst | 8 +- Doc/whatsnew/3.1.rst | 3 +- Doc/whatsnew/3.10.rst | 57 +- Doc/whatsnew/3.11.rst | 320 +- Doc/whatsnew/3.12.rst | 419 +- Doc/whatsnew/3.2.rst | 24 +- Doc/whatsnew/3.3.rst | 14 +- Doc/whatsnew/3.4.rst | 6 +- Doc/whatsnew/3.5.rst | 4 +- Doc/whatsnew/3.6.rst | 9 +- Doc/whatsnew/3.7.rst | 15 +- Doc/whatsnew/3.8.rst | 3 - Doc/whatsnew/3.9.rst | 2 +- Grammar/python.gram | 42 +- Include/abstract.h | 26 +- Include/boolobject.h | 6 +- Include/bytearrayobject.h | 4 +- Include/bytesobject.h | 2 +- Include/ceval.h | 2 +- Include/complexobject.h | 4 +- Include/cpython/abstract.h | 12 +- Include/cpython/bytearrayobject.h | 8 +- Include/cpython/bytesobject.h | 8 +- Include/cpython/cellobject.h | 10 +- Include/cpython/ceval.h | 2 - Include/cpython/classobject.h | 10 +- Include/cpython/code.h | 21 +- Include/cpython/context.h | 6 +- Include/cpython/dictobject.h | 4 +- Include/cpython/frameobject.h | 13 + Include/cpython/funcobject.h | 61 +- Include/cpython/genobject.h | 8 +- Include/cpython/import.h | 3 - Include/cpython/initconfig.h | 1 - Include/cpython/listobject.h | 10 +- Include/cpython/methodobject.h | 20 +- Include/cpython/modsupport.h | 7 +- Include/cpython/object.h | 25 +- Include/cpython/odictobject.h | 12 +- Include/cpython/picklebufobject.h | 2 +- Include/cpython/pthread_stubs.h | 88 - Include/cpython/pydebug.h | 36 +- Include/cpython/pyerrors.h | 2 +- Include/cpython/pyframe.h | 17 - Include/cpython/pystate.h | 5 +- Include/cpython/pythonrun.h | 28 +- Include/cpython/pythread.h | 3 - Include/cpython/pytime.h | 4 - Include/cpython/tupleobject.h | 10 +- Include/cpython/unicodeobject.h | 60 +- Include/cpython/warnings.h | 2 +- Include/cpython/weakrefobject.h | 4 +- Include/datetime.h | 92 +- Include/dictobject.h | 8 +- Include/fileobject.h | 6 +- Include/floatobject.h | 2 +- Include/import.h | 2 +- Include/internal/pycore_accu.h | 39 + Include/internal/pycore_asdl.h | 4 +- Include/internal/pycore_ast_state.h | 2 - Include/internal/pycore_atomic.h | 2 +- Include/internal/pycore_ceval.h | 35 +- Include/internal/pycore_code.h | 219 +- Include/internal/pycore_compile.h | 5 - Include/internal/pycore_descrobject.h | 26 - Include/internal/pycore_dict.h | 17 +- Include/internal/pycore_frame.h | 78 +- Include/internal/pycore_global_objects.h | 2 - Include/internal/pycore_global_strings.h | 300 +- Include/internal/pycore_hamt.h | 2 +- Include/internal/pycore_hashtable.h | 4 +- Include/internal/pycore_initconfig.h | 10 +- Include/internal/pycore_interp.h | 10 +- Include/internal/pycore_list.h | 19 - Include/internal/pycore_long.h | 37 - Include/internal/pycore_object.h | 115 +- Include/internal/pycore_opcode.h | 333 +- Include/internal/pycore_pystate.h | 26 +- Include/internal/pycore_range.h | 22 - Include/internal/pycore_runtime.h | 6 +- Include/internal/pycore_runtime_init.h | 1147 +- .../internal/pycore_runtime_init_generated.h | 8200 --- Include/internal/pycore_sliceobject.h | 2 - Include/internal/pycore_structseq.h | 9 +- Include/internal/pycore_symtable.h | 2 +- Include/internal/pycore_typeobject.h | 35 +- Include/internal/pycore_unicodeobject.h | 1 + Include/internal/pycore_unionobject.h | 4 +- Include/iterobject.h | 4 +- Include/listobject.h | 2 +- Include/longobject.h | 2 +- Include/memoryobject.h | 2 +- Include/methodobject.h | 4 +- Include/modsupport.h | 14 +- Include/moduleobject.h | 4 +- Include/object.h | 38 +- Include/objimpl.h | 4 +- Include/opcode.h | 150 +- Include/py_curses.h | 2 +- Include/pycapsule.h | 2 +- Include/pyerrors.h | 4 +- Include/pyframe.h | 6 - Include/pymacro.h | 2 - Include/pymem.h | 14 +- Include/pyport.h | 43 +- Include/pystats.h | 13 +- Include/rangeobject.h | 2 +- Include/setobject.h | 10 +- Include/sliceobject.h | 2 +- Include/structseq.h | 4 +- Include/traceback.h | 2 +- Include/tupleobject.h | 2 +- Include/unicodeobject.h | 2 +- Include/weakrefobject.h | 8 +- Lib/__future__.py | 6 +- Lib/_bootsubprocess.py | 97 + Lib/_pyio.py | 16 + Lib/argparse.py | 9 +- Lib/ast.py | 11 +- Lib/asyncio/base_events.py | 5 +- Lib/asyncio/base_futures.py | 1 + Lib/asyncio/coroutines.py | 1 + Lib/asyncio/futures.py | 3 +- Lib/asyncio/locks.py | 1 + Lib/asyncio/runners.py | 18 +- Lib/asyncio/streams.py | 40 +- Lib/asyncio/taskgroups.py | 48 +- Lib/asyncio/tasks.py | 17 +- Lib/asyncio/timeouts.py | 8 +- Lib/base64.py | 16 +- Lib/bdb.py | 17 +- Lib/codecs.py | 10 + Lib/codeop.py | 26 +- Lib/concurrent/futures/_base.py | 16 +- Lib/configparser.py | 61 +- Lib/copy.py | 2 +- Lib/crypt.py | 2 +- Lib/csv.py | 4 - Lib/ctypes/__init__.py | 8 - .../test_ctypes => ctypes/test}/__init__.py | 0 Lib/ctypes/test/__main__.py | 4 + .../test_ctypes => ctypes/test}/test_anon.py | 0 .../test}/test_array_in_pointer.py | 0 .../test}/test_arrays.py | 2 +- .../test}/test_as_parameter.py | 3 +- .../test}/test_bitfields.py | 2 +- .../test}/test_buffers.py | 2 +- .../test_ctypes => ctypes/test}/test_bytes.py | 0 .../test}/test_byteswap.py | 0 .../test}/test_callbacks.py | 5 +- .../test_ctypes => ctypes/test}/test_cast.py | 2 +- .../test}/test_cfuncs.py | 8 +- .../test}/test_checkretval.py | 2 +- .../test}/test_delattr.py | 0 .../test_ctypes => ctypes/test}/test_errno.py | 0 .../test_ctypes => ctypes/test}/test_find.py | 0 .../test}/test_frombuffer.py | 0 .../test}/test_funcptr.py | 0 .../test}/test_functions.py | 5 +- .../test}/test_incomplete.py | 0 .../test_ctypes => ctypes/test}/test_init.py | 0 .../test}/test_internals.py | 0 .../test}/test_keeprefs.py | 0 .../test_ctypes => ctypes/test}/test_libc.py | 0 .../test}/test_loading.py | 2 +- .../test}/test_macholib.py | 0 .../test}/test_memfunctions.py | 2 +- .../test}/test_numbers.py | 0 .../test}/test_objects.py | 8 +- .../test}/test_parameters.py | 3 +- .../test}/test_pep3118.py | 0 .../test}/test_pickling.py | 0 .../test}/test_pointers.py | 0 .../test}/test_prototypes.py | 2 +- .../test}/test_python_api.py | 0 .../test}/test_random_things.py | 0 .../test}/test_refcounts.py | 0 .../test_ctypes => ctypes/test}/test_repr.py | 0 .../test}/test_returnfuncptrs.py | 0 .../test}/test_simplesubclasses.py | 0 .../test_ctypes => ctypes/test}/test_sizes.py | 3 - .../test}/test_slicing.py | 2 +- .../test}/test_stringptr.py | 0 .../test}/test_strings.py | 2 +- .../test}/test_struct_fields.py | 0 .../test}/test_structures.py | 2 +- .../test}/test_unaligned_structures.py | 0 .../test}/test_unicode.py | 2 +- .../test}/test_values.py | 0 .../test}/test_varsize_struct.py | 0 .../test_ctypes => ctypes/test}/test_win32.py | 0 .../test}/test_wintypes.py | 0 Lib/dataclasses.py | 48 +- Lib/datetime.py | 45 +- Lib/dis.py | 69 +- Lib/distutils/command/install.py | 2 +- Lib/distutils/sysconfig.py | 8 +- Lib/distutils/tests/test_bdist.py | 1 + Lib/distutils/tests/test_dir_util.py | 7 +- Lib/distutils/tests/test_sysconfig.py | 11 +- Lib/email/_parseaddr.py | 4 - Lib/ensurepip/__init__.py | 18 +- .../_bundled/pip-22.0.4-py3-none-any.whl | Bin 0 -> 2123599 bytes .../_bundled/pip-22.2.2-py3-none-any.whl | Bin 2044706 -> 0 bytes .../setuptools-58.1.0-py3-none-any.whl | Bin 0 -> 816725 bytes .../setuptools-63.2.0-py3-none-any.whl | Bin 1228000 -> 0 bytes Lib/enum.py | 303 +- Lib/filecmp.py | 8 +- Lib/fileinput.py | 9 +- Lib/fnmatch.py | 30 +- Lib/fractions.py | 81 +- Lib/functools.py | 5 +- Lib/gzip.py | 8 + Lib/hashlib.py | 70 +- Lib/html/entities.py | 9 +- Lib/html/parser.py | 3 +- Lib/http/__init__.py | 20 - Lib/http/client.py | 34 +- Lib/http/cookiejar.py | 4 +- Lib/http/server.py | 14 +- Lib/idlelib/CREDITS.txt | 12 +- Lib/idlelib/NEWS.txt | 17 - Lib/idlelib/README.txt | 142 +- Lib/idlelib/browser.py | 27 +- Lib/idlelib/config.py | 2 +- Lib/idlelib/configdialog.py | 4 +- Lib/idlelib/editor.py | 20 +- Lib/idlelib/help.html | 537 +- Lib/idlelib/help.py | 4 +- Lib/idlelib/help_about.py | 5 +- Lib/idlelib/history.py | 2 +- Lib/idlelib/hyperparser.py | 4 +- Lib/idlelib/idle_test/test_browser.py | 10 - Lib/idlelib/idle_test/test_debugger_r.py | 19 +- Lib/idlelib/idle_test/test_editor.py | 1 + Lib/idlelib/idle_test/test_iomenu.py | 13 +- Lib/idlelib/idle_test/test_parenmatch.py | 4 +- Lib/idlelib/idle_test/test_run.py | 13 +- Lib/idlelib/idle_test/test_sidebar.py | 11 +- Lib/idlelib/iomenu.py | 24 +- Lib/idlelib/mainmenu.py | 5 +- Lib/idlelib/pyshell.py | 49 +- Lib/idlelib/rpc.py | 4 +- Lib/idlelib/run.py | 2 +- Lib/idlelib/searchengine.py | 2 +- Lib/idlelib/util.py | 1 + Lib/importlib/_abc.py | 14 + Lib/importlib/_bootstrap.py | 6 + Lib/importlib/_bootstrap_external.py | 40 +- Lib/importlib/abc.py | 19 +- Lib/importlib/metadata/__init__.py | 48 +- Lib/importlib/resources/_common.py | 7 +- Lib/inspect.py | 8 +- Lib/io.py | 16 + Lib/json/__init__.py | 52 +- .../tests}/__init__.py | 0 .../tests}/__main__.py | 0 .../tests}/data/README | 0 .../tests}/data/bom.py | 0 .../tests}/data/crlf.py | 0 .../tests}/data/different_encoding.py | 0 .../tests}/data/false_encoding.py | 0 .../tests}/data/fixers/bad_order.py | 0 .../tests/data/fixers/myfixes}/__init__.py | 0 .../data/fixers/myfixes/fix_explicit.py | 0 .../tests}/data/fixers/myfixes/fix_first.py | 0 .../tests}/data/fixers/myfixes/fix_last.py | 0 .../tests}/data/fixers/myfixes/fix_parrot.py | 0 .../data/fixers/myfixes/fix_preorder.py | 0 .../tests}/data/fixers/no_fixer_cls.py | 0 .../tests}/data/fixers/parrot_example.py | 0 .../tests}/data/infinite_recursion.py | 0 .../tests}/data/py2_test_grammar.py | 2 +- .../tests}/data/py3_test_grammar.py | 2 +- .../tests}/pytree_idempotency.py | 6 +- .../test_lib2to3 => lib2to3/tests}/support.py | 21 +- .../tests}/test_all_fixers.py | 1 + .../tests}/test_fixers.py | 12 +- .../tests}/test_main.py | 0 .../tests}/test_parser.py | 2 +- .../tests}/test_pytree.py | 0 .../tests}/test_refactor.py | 0 .../tests}/test_util.py | 0 Lib/linecache.py | 2 +- Lib/locale.py | 17 +- Lib/logging/__init__.py | 96 +- Lib/logging/config.py | 93 +- Lib/logging/handlers.py | 25 +- Lib/mailcap.py | 26 +- Lib/multiprocessing/context.py | 14 - Lib/multiprocessing/pool.py | 3 - Lib/multiprocessing/process.py | 10 +- Lib/multiprocessing/shared_memory.py | 7 +- Lib/netrc.py | 2 +- Lib/ntpath.py | 55 +- Lib/numbers.py | 2 +- Lib/opcode.py | 118 +- Lib/pathlib.py | 186 +- Lib/pdb.py | 8 +- Lib/pickle.py | 2 +- Lib/platform.py | 150 +- Lib/posixpath.py | 2 +- Lib/pprint.py | 16 + Lib/pstats.py | 2 +- Lib/pydoc.py | 25 +- Lib/random.py | 99 +- Lib/re/_compiler.py | 59 +- Lib/re/_constants.py | 2 +- Lib/reprlib.py | 57 +- Lib/shlex.py | 4 +- Lib/shutil.py | 101 +- Lib/site.py | 4 +- Lib/{test => }/smtpd.py | 17 +- Lib/socket.py | 7 +- Lib/sqlite3/__init__.py | 13 - Lib/sqlite3/__main__.py | 120 - Lib/sqlite3/dbapi2.py | 23 +- Lib/sqlite3/dump.py | 14 +- Lib/ssl.py | 94 +- Lib/statistics.py | 86 +- Lib/subprocess.py | 23 +- Lib/symtable.py | 2 +- Lib/sysconfig.py | 55 +- Lib/tarfile.py | 32 +- Lib/tempfile.py | 79 +- Lib/test/_test_eintr.py | 14 +- Lib/test/_test_multiprocessing.py | 113 +- Lib/test/_testcppext.cpp | 135 +- Lib/test/audiodata/pluck-pcm24-ext.wav | Bin 19922 -> 0 bytes Lib/test/audit-tests.py | 22 - Lib/test/clinic.test | 685 +- Lib/test/crashers/infinite_loop_re.py | 2 +- Lib/test/datetimetester.py | 24 +- Lib/test/fork_wait.py | 6 +- Lib/test/leakers/test_ctypes.py | 2 +- Lib/test/libregrtest/cmdline.py | 8 +- Lib/test/libregrtest/main.py | 34 +- Lib/test/libregrtest/runtest.py | 5 - Lib/test/libregrtest/runtest_mp.py | 91 +- Lib/test/libregrtest/setup.py | 3 +- Lib/test/libregrtest/utils.py | 7 - Lib/test/list_tests.py | 3 +- Lib/test/lock_tests.py | 1 + Lib/test/mock_socket.py | 4 +- Lib/test/pickletester.py | 61 - Lib/test/pythoninfo.py | 8 +- Lib/test/setup_testcppext.py | 24 +- Lib/test/signalinterproctester.py | 13 +- Lib/test/string_tests.py | 48 - Lib/test/support/__init__.py | 181 +- Lib/test/support/bytecode_helper.py | 93 - Lib/test/support/os_helper.py | 103 +- Lib/test/support/socket_helper.py | 15 +- Lib/test/support/threading_helper.py | 18 +- Lib/test/test__opcode.py | 9 +- Lib/test/test__xxsubinterpreters.py | 11 +- Lib/test/test_argparse.py | 56 +- Lib/test/test_ast.py | 109 +- Lib/test/test_asyncio/test_base_events.py | 46 +- Lib/test/test_asyncio/test_events.py | 1 + Lib/test/test_asyncio/test_futures2.py | 31 +- Lib/test/test_asyncio/test_locks.py | 2 +- Lib/test/test_asyncio/test_runners.py | 81 +- Lib/test/test_asyncio/test_selector_events.py | 1 + Lib/test/test_asyncio/test_sock_lowlevel.py | 2 +- Lib/test/test_asyncio/test_ssl.py | 31 +- Lib/test/test_asyncio/test_streams.py | 19 - Lib/test/test_asyncio/test_subprocess.py | 48 +- Lib/test/test_asyncio/test_taskgroups.py | 117 +- Lib/test/test_asyncio/test_tasks.py | 15 +- Lib/test/test_asyncio/test_timeouts.py | 25 +- Lib/test/test_asyncio/test_unix_events.py | 43 +- Lib/test/test_asyncio/utils.py | 21 +- Lib/test/test_asyncore.py | 6 +- Lib/test/test_atexit.py | 1 + Lib/test/test_audit.py | 36 +- Lib/test/test_base64.py | 12 +- Lib/test/test_bdb.py | 10 - Lib/test/test_binascii.py | 2 +- Lib/test/test_bisect.py | 34 - Lib/test/test_bool.py | 7 - Lib/test/test_buffer.py | 20 +- Lib/test/test_bufio.py | 1 + Lib/test/test_builtin.py | 19 +- Lib/test/test_bytes.py | 35 - Lib/test/test_calendar.py | 13 - Lib/test/test_call.py | 156 +- Lib/test/test_capi.py | 210 +- Lib/test/test_check_c_globals.py | 7 +- Lib/test/test_cmd_line.py | 89 +- Lib/test/test_cmd_line_script.py | 4 +- Lib/test/test_code.py | 55 +- Lib/test/test_codecs.py | 1 + Lib/test/test_codeop.py | 20 - Lib/test/test_compile.py | 210 +- Lib/test/test_compileall.py | 3 - Lib/test/test_concurrent_futures.py | 40 +- Lib/test/test_configparser.py | 46 +- Lib/test/test_copy.py | 22 - Lib/test/test_coroutines.py | 24 - Lib/test/test_cppext.py | 71 +- Lib/test/test_csv.py | 56 - Lib/test/test_ctypes.py | 10 + Lib/test/test_ctypes/__main__.py | 4 - Lib/test/test_dataclasses.py | 161 +- Lib/test/test_dbm_dumb.py | 2 - Lib/test/test_dbm_gnu.py | 14 - Lib/test/test_dbm_ndbm.py | 14 - Lib/test/test_decimal.py | 21 +- Lib/test/test_decorators.py | 1 + Lib/test/test_defaultdict.py | 2 + Lib/test/test_descr.py | 12 +- Lib/test/test_descrtut.py | 4 +- Lib/test/test_dictviews.py | 18 - Lib/test/test_dis.py | 478 +- Lib/test/test_doctest.py | 10 +- Lib/test/test_dtrace.py | 5 - Lib/test/test_dynamic.py | 54 +- Lib/test/test_email/test_email.py | 60 +- Lib/test/test_email/test_utils.py | 21 +- Lib/test/test_embed.py | 114 +- Lib/test/test_enum.py | 579 +- Lib/test/test_except_star.py | 2 +- Lib/test/test_exception_group.py | 13 +- Lib/test/test_exception_hierarchy.py | 6 +- Lib/test/test_exceptions.py | 58 +- Lib/test/test_extcall.py | 23 +- Lib/test/test_file.py | 2 +- Lib/test/test_fileinput.py | 10 - Lib/test/test_fileio.py | 2 +- Lib/test/test_float.py | 10 +- Lib/test/test_flufl.py | 1 + Lib/test/test_fnmatch.py | 114 - Lib/test/test_fractions.py | 4 +- Lib/test/test_frame.py | 25 - Lib/test/test_fstring.py | 67 +- Lib/test/test_functools.py | 4 +- Lib/test/test_future.py | 1 + Lib/test/test_gc.py | 14 +- Lib/test/test_generators.py | 37 - Lib/test/test_getargs2.py | 43 +- Lib/test/test_getopt.py | 2 +- Lib/test/test_getpath.py | 1 + Lib/test/test_grammar.py | 2 +- Lib/test/test_grp.py | 4 +- Lib/test/test_hashlib.py | 10 +- Lib/test/test_heapq.py | 1 + Lib/test/test_htmlparser.py | 14 - Lib/test/test_http_cookiejar.py | 46 +- Lib/test/test_httplib.py | 45 - Lib/test/test_httpservers.py | 53 +- Lib/test/test_imaplib.py | 5 +- Lib/test/test_imp.py | 6 +- Lib/test/test_import/__init__.py | 29 +- .../subdirectory => data01}/__init__.py | 0 .../{resources => }/data01/binary.file | Bin .../subdirectory}/__init__.py | 0 .../data01/subdirectory/binary.file | Bin .../{resources => }/data01/utf-16.file | Bin .../{resources => }/data01/utf-8.file | 0 .../data02/one => data02}/__init__.py | 0 .../data02/two => data02/one}/__init__.py | 0 .../{resources => }/data02/one/resource1.txt | 0 .../data03 => data02/two}/__init__.py | 0 .../{resources => }/data02/two/resource2.txt | 0 .../namespace/portion1 => data03}/__init__.py | 0 .../namespace/portion1}/__init__.py | 0 .../namespace/portion2}/__init__.py | 0 .../data03/namespace/resource1.txt | 0 .../test_importlib/extension/test_finder.py | 6 +- .../test_importlib/extension/test_loader.py | 8 - Lib/test/test_importlib/fixtures.py | 16 - Lib/test/test_importlib/frozen/test_loader.py | 8 + Lib/test/test_importlib/import_/test_path.py | 15 +- .../namespacedata01/binary.file | Bin .../namespacedata01/utf-16.file | Bin .../namespacedata01/utf-8.file | 0 Lib/test/test_importlib/resources/util.py | 6 +- .../test_importlib/source/test_file_loader.py | 1 + Lib/test/test_importlib/test_abc.py | 29 + Lib/test/test_importlib/test_api.py | 3 +- .../test_compatibilty_files.py | 2 +- .../{resources => }/test_contents.py | 2 +- .../{resources => }/test_files.py | 4 +- Lib/test/test_importlib/test_main.py | 91 +- Lib/test/test_importlib/test_metadata_api.py | 6 +- .../test_importlib/test_namespace_pkgs.py | 7 + .../{resources => }/test_open.py | 2 +- .../{resources => }/test_path.py | 2 +- .../{resources => }/test_read.py | 2 +- .../{resources => }/test_reader.py | 0 .../{resources => }/test_resource.py | 2 +- Lib/test/test_importlib/test_spec.py | 95 + Lib/test/test_importlib/test_util.py | 2 +- .../{resources => }/update-zips.py | 0 .../zipdata02 => zipdata01}/__init__.py | 0 .../{resources => }/zipdata01/ziptestdata.zip | Bin .../zipdata02}/__init__.py | 0 .../{resources => }/zipdata02/ziptestdata.zip | Bin Lib/test/test_inspect.py | 14 - Lib/test/test_int.py | 198 - Lib/test/test_io.py | 8 + Lib/test/test_itertools.py | 1 - Lib/test/test_json/__init__.py | 1 - Lib/test/test_json/test_attrdict.py | 145 - Lib/test/test_json/test_decode.py | 9 - Lib/test/test_launcher.py | 105 +- Lib/test/test_lib2to3.py | 9 + Lib/test/test_linecache.py | 12 +- Lib/test/test_lltrace.py | 1 + Lib/test/test_locale.py | 118 +- Lib/test/test_logging.py | 316 +- Lib/test/test_mailcap.py | 9 +- Lib/test/test_memoryview.py | 110 - Lib/test/test_minidom.py | 16 +- Lib/test/test_module.py | 10 +- Lib/test/test_modulefinder.py | 75 +- .../test_multiprocessing_main_handling.py | 27 +- Lib/test/test_netrc.py | 1 - Lib/test/test_nis.py | 1 + Lib/test/test_ntpath.py | 27 - Lib/test/test_numeric_tower.py | 28 - Lib/test/test_opcache.py | 344 - Lib/test/test_os.py | 37 +- Lib/test/test_pathlib.py | 222 +- Lib/test/test_patma.py | 35 - Lib/test/test_pdb.py | 152 +- Lib/test/test_peepholer.py | 267 +- Lib/test/test_perf_profiler.py | 348 - Lib/test/test_pickle.py | 23 - Lib/test/test_platform.py | 41 +- Lib/test/test_posix.py | 18 +- Lib/test/test_posixpath.py | 33 +- Lib/test/test_property.py | 95 - Lib/test/test_pwd.py | 2 - Lib/test/test_py_compile.py | 4 +- Lib/test/test_pyclbr.py | 11 +- Lib/test/test_pydoc.py | 100 +- Lib/test/test_pyexpat.py | 2 +- Lib/test/test_queue.py | 5 +- Lib/test/test_random.py | 56 - Lib/test/test_re.py | 59 +- Lib/test/test_regrtest.py | 27 +- Lib/test/test_reprlib.py | 356 - Lib/test/test_select.py | 1 + Lib/test/test_set.py | 2 +- Lib/test/test_shelve.py | 2 + Lib/test/test_shlex.py | 5 +- Lib/test/test_shutil.py | 66 +- Lib/test/test_signal.py | 25 +- Lib/test/test_site.py | 9 +- Lib/test/test_smtpd.py | 1019 + Lib/test/test_smtplib.py | 2 +- Lib/test/test_socket.py | 120 +- Lib/test/test_socketserver.py | 4 +- Lib/test/test_sort.py | 6 - Lib/test/test_source_encoding.py | 99 +- Lib/test/test_sqlite3/__init__.py | 5 +- Lib/test/test_sqlite3/__main__.py | 3 +- Lib/test/test_sqlite3/test_cli.py | 155 - Lib/test/test_sqlite3/test_dbapi.py | 94 +- Lib/test/test_sqlite3/test_dump.py | 47 - Lib/test/test_sqlite3/test_factory.py | 20 - Lib/test/test_sqlite3/test_regression.py | 6 +- Lib/test/test_sqlite3/test_transactions.py | 73 +- Lib/test/test_sqlite3/test_types.py | 31 +- Lib/test/test_ssl.py | 357 +- Lib/test/test_stable_abi_ctypes.py | 2 - Lib/test/test_stat.py | 4 +- Lib/test/test_statistics.py | 23 +- Lib/test/test_struct.py | 29 - Lib/test/test_support.py | 12 +- Lib/test/test_syntax.py | 56 +- Lib/test/test_sys.py | 23 +- Lib/test/test_sys_setprofile.py | 39 - Lib/test/test_sys_settrace.py | 218 +- Lib/test/test_sysconfig.py | 16 +- Lib/test/test_tarfile.py | 88 - Lib/test/test_tcl.py | 3 + Lib/test/test_tempfile.py | 92 +- Lib/test/test_thread.py | 18 +- Lib/test/test_threading.py | 59 - Lib/test/test_threading_local.py | 1 + Lib/test/test_threadsignals.py | 2 - Lib/test/test_tk.py | 20 + Lib/test/test_tkinter/__init__.py | 18 - Lib/test/test_tkinter/__main__.py | 4 - Lib/test/test_tomllib/test_misc.py | 4 +- Lib/test/test_tools/test_md5sum.py | 1 + Lib/test/test_tools/test_pathfix.py | 1 + Lib/test/test_tools/test_pindent.py | 1 + Lib/test/test_traceback.py | 265 +- Lib/test/test_tracemalloc.py | 14 - Lib/test/test_ttk/__main__.py | 4 - .../__init__.py => test_ttk_guionly.py} | 15 +- Lib/test/test_type_comments.py | 3 +- Lib/test/test_types.py | 16 - Lib/test/test_typing.py | 269 +- Lib/test/test_unicode.py | 46 +- Lib/test/test_unicode_file_functions.py | 5 - Lib/test/test_unicodedata.py | 22 +- Lib/test/test_unittest.py | 16 + Lib/test/test_unittest/__init__.py | 6 - Lib/test/test_unittest/__main__.py | 4 - Lib/test/test_unittest/testmock/__init__.py | 6 - Lib/test/test_univnewlines.py | 1 + Lib/test/test_unparse.py | 6 - Lib/test/test_urllib2.py | 5 +- Lib/test/test_uu.py | 6 - Lib/test/test_venv.py | 92 +- Lib/test/test_wait3.py | 5 +- Lib/test/test_wait4.py | 5 +- Lib/test/test_warnings/__init__.py | 9 +- Lib/test/test_wave.py | 30 +- Lib/test/test_weakref.py | 11 - Lib/test/test_wmi.py | 75 - Lib/test/test_xml_etree.py | 59 +- Lib/test/test_xmlrpc.py | 10 - Lib/test/test_yield_from.py | 527 - Lib/test/test_zipapp.py | 2 - Lib/test/test_zipfile.py | 13 +- Lib/test/test_zipfile64.py | 11 +- Lib/test/test_zipimport.py | 24 +- Lib/threading.py | 41 +- Lib/tkinter/commondialog.py | 2 +- .../test_tkinter => tkinter/test}/README | 0 Lib/tkinter/test/__init__.py | 0 .../test_tkinter => tkinter/test}/support.py | 1 + Lib/tkinter/test/test_tkinter/__init__.py | 0 .../test/test_tkinter/test_colorchooser.py | 2 +- .../test/test_tkinter/test_font.py | 2 +- .../test_tkinter/test_geometry_managers.py | 4 +- .../test/test_tkinter/test_images.py | 2 +- .../test/test_tkinter/test_loadtk.py | 0 .../test/test_tkinter/test_messagebox.py | 2 +- .../test/test_tkinter/test_misc.py | 2 +- .../test/test_tkinter/test_simpledialog.py | 2 +- .../test/test_tkinter/test_text.py | 2 +- .../test/test_tkinter/test_variables.py | 2 +- .../test/test_tkinter/test_widgets.py | 4 +- Lib/tkinter/test/test_ttk/__init__.py | 0 .../test/test_ttk/test_extensions.py | 2 +- Lib/{ => tkinter}/test/test_ttk/test_style.py | 2 +- .../test/test_ttk/test_widgets.py | 4 +- .../test}/widget_tests.py | 3 +- Lib/traceback.py | 33 +- Lib/types.py | 2 +- Lib/typing.py | 136 +- Lib/unittest/__init__.py | 13 + Lib/unittest/async_case.py | 4 - Lib/unittest/case.py | 50 + Lib/unittest/loader.py | 24 +- Lib/unittest/mock.py | 4 - Lib/unittest/runner.py | 9 + Lib/unittest/test/__init__.py | 25 + Lib/unittest/test/__main__.py | 18 + .../test}/_test_warnings.py | 11 + .../test_unittest => unittest/test}/dummy.py | 0 .../test}/support.py | 0 .../test}/test_assertions.py | 9 + .../test}/test_async_case.py | 24 +- .../test}/test_break.py | 0 .../test}/test_case.py | 71 +- .../test}/test_discovery.py | 6 +- .../test}/test_functiontestcase.py | 2 +- .../test}/test_loader.py | 153 +- .../test}/test_program.py | 34 +- .../test}/test_result.py | 6 +- .../test}/test_runner.py | 12 +- .../test}/test_setups.py | 0 .../test}/test_skipping.py | 2 +- .../test}/test_suite.py | 2 +- Lib/unittest/test/testmock/__init__.py | 17 + .../test}/testmock/__main__.py | 2 +- .../test}/testmock/support.py | 0 .../test}/testmock/testasync.py | 0 .../test}/testmock/testcallable.py | 2 +- .../test}/testmock/testhelpers.py | 0 .../test}/testmock/testmagicmethods.py | 0 .../test}/testmock/testmock.py | 2 +- .../test}/testmock/testpatch.py | 24 +- .../test}/testmock/testsealable.py | 0 .../test}/testmock/testsentinel.py | 0 .../test}/testmock/testwith.py | 2 +- Lib/urllib/parse.py | 3 +- Lib/urllib/request.py | 23 +- Lib/uuid.py | 2 - Lib/venv/__init__.py | 1 - Lib/venv/scripts/posix/activate.fish | 9 +- Lib/wave.py | 22 +- Lib/wsgiref/types.py | 4 +- Lib/xml/dom/minidom.py | 2 - Lib/xml/etree/ElementPath.py | 4 +- Lib/xml/etree/ElementTree.py | 25 +- Lib/zipfile.py | 35 +- Lib/zipimport.py | 61 +- Mac/BuildScript/build-installer.py | 21 +- Mac/BuildScript/openssl1.1.1q-pr-18719.patch | 17 - Mac/BuildScript/scripts/postflight.framework | 4 +- Mac/IDLE/IDLE.app/Contents/Info.plist | 1 - Makefile.pre.in | 314 +- Misc/ACKS | 11 - Misc/HISTORY | 12 +- Misc/NEWS.d/3.10.0a1.rst | 2 +- Misc/NEWS.d/3.10.0a3.rst | 2 +- Misc/NEWS.d/3.10.0a4.rst | 2 +- Misc/NEWS.d/3.10.0b1.rst | 4 +- Misc/NEWS.d/3.11.0a1.rst | 4 +- Misc/NEWS.d/3.11.0a2.rst | 20 +- Misc/NEWS.d/3.11.0a4.rst | 2 +- Misc/NEWS.d/3.11.0a6.rst | 3 +- Misc/NEWS.d/3.11.0a7.rst | 2 +- Misc/NEWS.d/3.11.0b1.rst | 2 +- Misc/NEWS.d/3.5.1rc1.rst | 2 +- Misc/NEWS.d/3.5.3rc1.rst | 2 +- Misc/NEWS.d/3.6.0b2.rst | 2 +- Misc/NEWS.d/3.7.0a1.rst | 4 +- Misc/NEWS.d/3.8.0a1.rst | 10 +- Misc/NEWS.d/3.8.0a2.rst | 2 +- Misc/NEWS.d/3.8.0a4.rst | 4 +- Misc/NEWS.d/3.9.0a1.rst | 2 +- Misc/NEWS.d/3.9.0a5.rst | 4 +- ...2-05-31-18-04-58.gh-issue-69093.6lSa0C.rst | 1 - ...2-06-04-12-53-53.gh-issue-93491.ehM211.rst | 1 - ...2-06-08-14-28-03.gh-issue-93584.0xfHOK.rst | 2 - ...2-06-25-23-25-47.gh-issue-94280.YhEyW_.rst | 3 - ...2-06-27-11-57-15.gh-issue-93939.rv7s8W.rst | 2 - ...2-06-28-09-42-10.gh-issue-93939._VWxKW.rst | 2 - ...2-06-29-08-58-31.gh-issue-94404.3MadM6.rst | 3 - ...2-06-30-09-57-39.gh-issue-90005.9-pQyR.rst | 1 - ...2-06-30-17-00-54.gh-issue-90005.iiq5qD.rst | 1 - ...2-06-30-17-18-23.gh-issue-90005.EIOOla.rst | 5 - ...2-07-08-10-28-23.gh-issue-94682.ZtGt_0.rst | 1 - ...2-07-12-13-39-18.gh-issue-94773.koHKm5.rst | 2 - ...2-07-13-10-13-10.gh-issue-94801.3xUB24.rst | 2 - ...2-07-14-02-45-44.gh-issue-94841.lLRTdf.rst | 1 - ...2-07-14-11-13-26.gh-issue-94847.s3Kr5p.rst | 2 - ...2-07-21-09-17-01.gh-issue-95085.E9x2S_.rst | 2 - ...2-07-23-21-39-09.gh-issue-95174.7cYMZR.rst | 1 - ...2-07-25-08-59-35.gh-issue-95174.g8woUW.rst | 2 - ...2-07-25-09-48-43.gh-issue-95145.ZNS3dj.rst | 2 - ...2-07-26-18-13-34.gh-issue-94801.9fREfy.rst | 2 - ...2-08-04-15-29-35.gh-issue-93744.svRuqm.rst | 3 - ...2-08-12-13-06-03.gh-issue-90536.qMpF6p.rst | 2 - ...2-08-15-10-56-07.gh-issue-95973.Bsswsc.rst | 2 - ...2-08-26-11-09-11.gh-issue-84461.Nsdn_R.rst | 3 - ...2-08-26-11-50-03.gh-issue-96269.x_J5h0.rst | 3 - ...2-09-11-14-23-49.gh-issue-96729.W4uBWL.rst | 2 - ...2-09-12-18-34-51.gh-issue-85936.tX4VCU.rst | 2 - .../2021-10-05-21-59-43.bpo-45383.TVClgf.rst | 3 - ...2-04-13-16-10-55.gh-issue-59121.-B7mKp.rst | 1 - ...2-05-03-19-35-37.gh-issue-92193.61VoFL.rst | 5 - ...2-05-23-12-31-04.gh-issue-77782.ugC8dn.rst | 3 - ...2-06-03-14-54-41.gh-issue-93466.DDtH0X.rst | 3 - ...2-06-04-13-15-41.gh-issue-93442.4M4NDb.rst | 3 - ...2-06-06-16-04-14.gh-issue-93503.MHJTu8.rst | 7 - ...2-06-10-16-50-27.gh-issue-89546.mX1f10.rst | 4 - ...2-06-10-23-41-48.gh-issue-91731.fhYUQG.rst | 3 - ...2-06-13-21-37-31.gh-issue-91321.DgJFvS.rst | 2 - ...2-06-17-13-41-38.gh-issue-93937.uKVTEh.rst | 14 - ...2-07-12-17-39-32.gh-issue-94731.9CPJNU.rst | 3 - ...2-07-17-18-21-40.gh-issue-94930.gPFGDL.rst | 2 - ...2-07-19-22-37-40.gh-issue-94936.LGlmKv.rst | 3 - ...2-07-25-15-54-27.gh-issue-92678.ziZpxz.rst | 3 - ...2-07-29-10-41-59.gh-issue-95388.aiRSgr.rst | 2 - ...2-07-29-15-24-45.gh-issue-93012.-DdGEy.rst | 6 - ...2-07-31-21-58-27.gh-issue-95504.wy7B1F.rst | 3 - ...2-08-01-16-21-39.gh-issue-93274.QoDHEu.rst | 3 - ...2-08-03-13-01-57.gh-issue-92678.DLwONN.rst | 2 - ...2-08-03-14-39-08.gh-issue-92678.ozFTEx.rst | 2 - ...2-08-08-14-36-31.gh-issue-95781.W_G8YW.rst | 4 - ...2-08-16-16-54-42.gh-issue-95589.6xE1ar.rst | 4 - .../2022-01-02-14-53-59.bpo-46142.WayjgT.rst | 3 - .../2022-03-22-13-12-27.bpo-47091.tJcy-P.rst | 1 - ...2-04-24-02-22-10.gh-issue-91432.YPJAK6.rst | 1 - ...2-05-11-09-16-54.gh-issue-91102.lenv9h.rst | 1 - ...2-05-17-20-41-43.gh-issue-92858.eIXJTn.rst | 1 - ...2-05-18-18-34-45.gh-issue-92930.kpYPOb.rst | 1 - ...2-05-20-09-25-34.gh-issue-93021.k3Aji2.rst | 2 - ...2-05-23-18-36-07.gh-issue-93143.X1Yqxm.rst | 1 - ...2-05-25-12-30-12.gh-issue-84694.5sjy2w.rst | 2 - ...2-05-30-10-22-46.gh-issue-93345.gi1A4L.rst | 2 - ...2-05-30-14-50-03.gh-issue-93283.XDO2ZQ.rst | 2 - ...2-05-30-15-35-42.gh-issue-93354.RZk8gs.rst | 3 - ...2-05-30-15-51-11.gh-issue-93356.l5wnzW.rst | 1 - ...2-05-30-19-00-38.gh-issue-93359.zXV3A0.rst | 2 - ...2-05-31-16-36-30.gh-issue-93382.Jf6gAj.rst | 2 - ...2-06-01-17-47-40.gh-issue-93418.24dJuc.rst | 2 - ...2-06-02-08-28-55.gh-issue-93429.DZTWHx.rst | 1 - ...2-06-02-23-00-08.gh-issue-93444.m63DIs.rst | 1 - ...2-06-06-14-28-24.gh-issue-93533.lnC0CC.rst | 1 - ...2-06-09-09-08-29.gh-issue-93621.-_Pn1d.rst | 1 - ...2-06-09-19-19-02.gh-issue-93461.5DqP1e.rst | 6 - ...2-06-10-10-31-18.gh-issue-93662.-7RSC1.rst | 2 - ...2-06-10-12-03-17.gh-issue-93671.idkQqG.rst | 2 - ...2-06-10-16-57-35.gh-issue-93678.1WBnHt.rst | 1 - ...2-06-12-19-31-56.gh-issue-89828.bq02M7.rst | 2 - ...2-06-13-10-48-09.gh-issue-93516.yJSait.rst | 2 - ...2-06-13-13-55-34.gh-issue-93516.HILrDl.rst | 2 - ...2-06-15-11-16-13.gh-issue-93841.06zqX3.rst | 3 - ...2-06-15-16-45-53.gh-issue-93678.1I_ZT3.rst | 1 - ...2-06-16-16-53-22.gh-issue-93911.RDwIiK.rst | 1 - ...2-06-17-16-30-24.gh-issue-93955.LmiAe9.rst | 1 - ...2-06-18-17-00-33.gh-issue-93911.y286of.rst | 1 - ...2-06-20-13-48-57.gh-issue-94021.o78q3G.rst | 1 - ...2-06-23-12-10-39.gh-issue-94163.SqAfQq.rst | 5 - ...2-06-24-14-06-20.gh-issue-93883.8jVQQ4.rst | 1 - ...2-06-25-10-19-43.gh-issue-87995.aMDHnp.rst | 2 - ...2-06-26-14-37-03.gh-issue-94192.ab7tn7.rst | 1 - ...2-06-28-10-08-06.gh-issue-94262.m-HWUZ.rst | 3 - ...2-06-28-12-41-17.gh-issue-88116.A7fEl_.rst | 2 - ...2-06-28-14-20-36.gh-issue-94360.DiEnen.rst | 2 - ...2-06-29-15-45-04.gh-issue-94329.olUQyk.rst | 2 - ...2-06-29-22-18-36.gh-issue-91719.3APYYI.rst | 2 - ...2-06-30-15-07-26.gh-issue-94438.btzHSk.rst | 2 - ...2-07-01-20-00-19.gh-issue-94485.mo5st7.rst | 2 - ...2-07-06-14-02-26.gh-issue-92228.44Cbly.rst | 1 - ...2-07-07-21-13-25.gh-issue-94215._Sv9Ms.rst | 3 - ...2-07-08-11-44-45.gh-issue-93252.i2358c.rst | 2 - ...2-07-08-16-44-11.gh-issue-94694.VkL2CM.rst | 4 - ...2-07-14-10-07-53.gh-issue-90699.x3aG9m.rst | 1 - ...2-07-15-16-15-04.gh-issue-91153.HiBmtt.rst | 2 - ...2-07-15-22-16-08.gh-issue-94822.zRRzBN.rst | 2 - ...2-07-15-22-47-44.gh-issue-94893.YiJYcW.rst | 2 - ...2-07-16-08-14-17.gh-issue-94869.eRwMsX.rst | 2 - ...2-07-17-15-54-29.gh-issue-91256.z7i7Q5.rst | 1 - ...2-07-18-04-48-34.gh-issue-94947.df9gUw.rst | 1 - ...2-07-18-05-10-29.gh-issue-94949.OsZ7_s.rst | 1 - ...2-07-18-14-19-21.gh-issue-94739.NQJQi7.rst | 1 - ...2-07-19-04-34-56.gh-issue-94996.dV564A.rst | 1 - ...2-07-19-09-41-55.gh-issue-94938.xYBlM7.rst | 3 - ...2-07-19-16-30-59.gh-issue-94036._6Utkm.rst | 2 - ...2-07-20-13-46-01.gh-issue-91409.dhL8Zo.rst | 2 - ...2-07-21-17-54-52.gh-issue-95113.NnSLpT.rst | 4 - ...2-07-21-19-19-20.gh-issue-95060.4xdT1f.rst | 2 - ...2-07-22-12-53-34.gh-issue-94438.hNqACc.rst | 4 - ...2-07-23-19-16-25.gh-issue-93351.0Jyvu-.rst | 3 - ...2-07-24-00-27-47.gh-issue-95185.ghYTZx.rst | 3 - ...2-07-26-09-31-12.gh-issue-93678.W8vvgT.rst | 1 - ...2-07-26-12-59-03.gh-issue-95245.GHWczn.rst | 2 - ...2-07-27-14-05-07.gh-issue-95324.28Q5u7.rst | 2 - ...2-07-27-14-21-57.gh-issue-90081.HVAS5x.rst | 2 - ...2-07-28-08-33-31.gh-issue-95355.yN4XVk.rst | 1 - ...2-07-28-19-07-06.gh-issue-87092.73IPS1.rst | 1 - ...2-07-31-03-22-58.gh-issue-91146.Y2Hziy.rst | 2 - ...2-07-31-13-23-12.gh-issue-95150.67FXVo.rst | 3 - ...2-08-04-18-46-54.gh-issue-95605.FbpCoG.rst | 2 - ...2-08-11-09-19-55.gh-issue-95876.YpQfoV.rst | 4 - ...2-08-11-11-01-56.gh-issue-95818.iClLdl.rst | 1 - ...2-08-12-13-04-25.gh-issue-95922.YNCtyX.rst | 2 - ...2-08-14-10-04-44.gh-issue-95977.gCTZb9.rst | 1 - ...2-08-15-11-58-05.gh-issue-90997.bWwV8Q.rst | 3 - ...2-08-15-12-41-14.gh-issue-95245.N4gOUV.rst | 3 - ...2-08-15-20-52-41.gh-issue-93678.X7GuIJ.rst | 1 - ...2-08-15-21-08-11.gh-issue-96005.6eoc8k.rst | 4 - ...2-08-18-13-47-59.gh-issue-96046.5Hqbka.rst | 4 - ...2-08-19-06-51-17.gh-issue-96071.mVgPAo.rst | 1 - ...2-08-20-18-36-40.gh-issue-96143.nh3GFM.rst | 7 - ...2-08-22-21-33-28.gh-issue-96187.W_6SRG.rst | 2 - ...2-08-24-14-30-26.gh-issue-96237.msif5f.rst | 5 - ...2-08-25-10-19-34.gh-issue-96268.AbYrLB.rst | 2 - ...2-08-26-18-46-32.gh-issue-93554.QEaCcK.rst | 16 - ...2-08-28-10-51-19.gh-issue-96352.jTLD2d.rst | 2 - ...2-08-29-00-37-21.gh-issue-96364.c-IVyb.rst | 1 - ...2-09-02-16-47-52.gh-issue-93911.vF-GWe.rst | 2 - ...2-09-05-15-07-25.gh-issue-96582.HEsL5s.rst | 1 - ...2-09-05-16-43-44.gh-issue-96569.9lmTCC.rst | 1 - ...2-09-05-19-20-44.gh-issue-96587.bVxhX2.rst | 2 - ...2-09-06-11-19-03.gh-issue-90230.YOtzs5.rst | 2 - ...2-09-06-14-26-36.gh-issue-96612.P4ZbeY.rst | 1 - ...2-09-06-16-22-13.gh-issue-96611.14wIX8.rst | 2 - ...2-09-06-16-54-49.gh-issue-96572.8DRsaW.rst | 1 - ...2-09-07-12-02-11.gh-issue-96636.YvN-K6.rst | 3 - ...2-09-07-13-38-37.gh-issue-96641.wky0Fc.rst | 1 - ...2-09-09-13-13-27.gh-issue-96678.vMxi9F.rst | 1 - ...2-09-11-00-37-50.gh-issue-90751.VE8-zf.rst | 2 - ...2-09-11-12-43-43.gh-issue-96751.anRT6a.rst | 1 - ...2-09-12-15-15-04.gh-issue-90997.sZO8c9.rst | 2 - ...2-09-12-16-58-22.gh-issue-96754.0GRme5.rst | 3 - ...2-09-13-12-06-46.gh-issue-96678.NqGFyb.rst | 1 - ...2-09-16-19-02-40.gh-issue-95778.cJmnst.rst | 3 - .../2022-03-30-17-56-01.bpo-47161.gesHfS.rst | 2 - ...2-05-18-23-58-26.gh-issue-92240.bHvYiz.rst | 2 - ...2-05-26-11-33-23.gh-issue-86438.kEGGmK.rst | 3 - ...2-05-26-14-51-25.gh-issue-88831.5Cccr5.rst | 1 - ...2-05-29-21-22-54.gh-issue-86986.lFXw8j.rst | 1 - ...2-06-15-12-12-49.gh-issue-87260.epyI7D.rst | 1 - ...2-06-16-10-10-59.gh-issue-61162.1ypkG8.rst | 1 - ...2-06-19-18-18-22.gh-issue-86128.39DDTD.rst | 1 - ...2-07-07-08-42-05.gh-issue-94321.pmCIPb.rst | 2 - ...2-07-29-09-04-02.gh-issue-95415.LKTyw6.rst | 2 - ...2-07-29-23-02-19.gh-issue-95451.-tgB93.rst | 3 - ...2-07-30-00-23-11.gh-issue-95454.we7AFm.rst | 2 - ...2-08-03-13-35-08.gh-issue-91207.eJ4pPf.rst | 3 - ...2-08-13-20-34-51.gh-issue-95957.W9ZZAx.rst | 2 - ...2-08-19-17-07-45.gh-issue-96098.nDp43u.rst | 3 - ...2-09-01-17-03-04.gh-issue-96432.1EJ1-4.rst | 2 - ...2-07-28-18-56-57.gh-issue-89610.hcosiM.rst | 2 - ...2-07-29-11-08-52.gh-issue-95411.dazlqH.rst | 1 - ...2-07-30-15-10-39.gh-issue-95471.z3scVG.rst | 1 - ...2-07-31-22-15-14.gh-issue-95511.WX6PmB.rst | 2 - ...2-08-01-23-31-48.gh-issue-95191.U7vryB.rst | 1 - ...2-08-04-20-07-51.gh-issue-65802.xnThWe.rst | 1 - .../2017-07-31-13-35-28.bpo-26253.8v_sCs.rst | 2 - .../2018-09-23-07-47-29.bpo-32990.2FVVTU.rst | 2 - .../2018-09-28-22-18-03.bpo-34828.5Zyi_S.rst | 1 - .../2021-08-27-18-07-35.bpo-44173.oW92Ev.rst | 1 - .../2021-12-27-15-32-15.bpo-45924.0ZpHX2.rst | 1 - .../2022-01-03-15-07-06.bpo-46197.Z0djv6.rst | 1 - .../2022-02-05-18-46-54.bpo-46642.YI6nHQ.rst | 1 - .../2022-02-15-12-40-48.bpo-46755.zePJfx.rst | 2 - .../2022-02-21-01-37-00.bpo-42777.nWK3E6.rst | 1 - .../2022-03-16-14-24-14.bpo-47025.qtT3CE.rst | 1 - .../2022-03-19-04-41-42.bpo-47063.nwRfUo.rst | 1 - .../2022-04-01-09-43-54.bpo-32547.NIUiNC.rst | 1 - ...2-04-01-12-35-44.gh-issue-90005.pvaLHQ.rst | 1 - .../2022-04-03-11-25-02.bpo-41287.8CTdwf.rst | 1 - .../2022-04-08-22-12-11.bpo-47231.lvyglt.rst | 1 - ...2-04-11-16-55-41.gh-issue-91456.DK3KKl.rst | 3 - ...2-04-12-18-05-40.gh-issue-91447.N_Fs4H.rst | 2 - ...2-04-15-17-38-55.gh-issue-91577.Ah7cLL.rst | 1 - ...2-04-24-22-26-45.gh-issue-81790.M5Rvpm.rst | 2 - ...2-05-08-18-51-14.gh-issue-89336.TL6ip7.rst | 4 - ...2-05-09-21-31-41.gh-issue-92445.tJosdm.rst | 3 - ...2-05-09-22-27-11.gh-issue-92591.V7RCk2.rst | 3 - ...2-05-10-16-30-40.gh-issue-90385.1_wBRQ.rst | 1 - ...2-05-12-15-19-00.gh-issue-92734.d0wjDt.rst | 1 - ...2-05-14-09-01-38.gh-issue-89325.ys-2BZ.rst | 6 - ...2-05-16-14-35-39.gh-issue-92839.owSMyo.rst | 1 - ...2-05-17-06-27-39.gh-issue-92869.t8oBkw.rst | 2 - ...2-05-19-17-49-58.gh-issue-92932.o2peTh.rst | 3 - ...2-05-19-22-34-42.gh-issue-92986.e6uKxj.rst | 1 - ...2-05-22-16-08-01.gh-issue-89973.jc-Q4g.rst | 3 - ...2-05-24-11-19-04.gh-issue-74696.-cnf-A.rst | 2 - ...2-05-26-08-41-34.gh-issue-93243.uw6x5z.rst | 1 - ...2-05-26-09-24-41.gh-issue-93162.W1VuhU.rst | 4 - ...2-05-26-23-10-55.gh-issue-93156.4XfDVN.rst | 2 - ...2-05-27-10-52-06.gh-issue-85308.K6r-tJ.rst | 4 - ...2-05-27-13-18-18.gh-issue-93297.e2zuHz.rst | 1 - ...2-05-27-22-17-11.gh-issue-88123.mkYl5q.rst | 2 - ...2-05-28-08-02-55.gh-issue-93312.HY0Uzj.rst | 3 - ...2-05-30-21-42-50.gh-issue-83658.01Ntx0.rst | 1 - ...2-05-31-14-58-40.gh-issue-93353.9Hvm6o.rst | 3 - ...2-06-01-11-24-13.gh-issue-91162.NxvU_u.rst | 5 - ...2-06-02-08-40-58.gh-issue-91810.Gtk44w.rst | 2 - ...2-06-03-22-13-28.gh-issue-93370.tjfu9L.rst | 1 - ...2-06-04-00-11-54.gh-issue-93475.vffFw1.rst | 2 - ...2-06-05-22-22-42.gh-issue-93421.43UO_8.rst | 3 - ...2-06-06-12-58-27.gh-issue-79579.e8rB-M.rst | 2 - ...2-06-06-13-19-43.gh-issue-93521._vE8m9.rst | 4 - ...2-06-07-14-53-46.gh-issue-90549.T4FMKY.rst | 2 - ...2-06-08-20-11-02.gh-issue-90494.LIZT85.rst | 3 - ...2-06-09-10-12-55.gh-issue-90473.683m_C.rst | 2 - ...-06-09-14-44-21.gh-issue-93626.sfghs46.rst | 1 - ...2-06-09-17-15-26.gh-issue-91389.OE4vS5.rst | 2 - ...2-06-11-13-32-17.gh-issue-79512.A1KTDr.rst | 3 - ...2-06-15-21-20-02.gh-issue-93820.FAMLY8.rst | 2 - ...2-06-15-21-28-16.gh-issue-83499.u3DQJ-.rst | 1 - ...2-06-15-21-35-11.gh-issue-91404.39TZzW.rst | 3 - ...2-06-16-09-24-50.gh-issue-93847.kuv8bN.rst | 1 - ...2-06-16-11-16-53.gh-issue-93820.00X0Y5.rst | 1 - ...2-06-17-12-02-30.gh-issue-93858.R49ARc.rst | 1 - ...2-06-17-16-00-55.gh-issue-93963.8YYZ-2.rst | 2 - ...2-06-18-15-06-54.gh-issue-93973.4y6UQT.rst | 1 - ...2-06-20-23-14-43.gh-issue-94028.UofEcX.rst | 3 - ...2-06-21-11-40-31.gh-issue-84753.FW1pxO.rst | 7 - ...2-06-22-11-16-11.gh-issue-94101.V9vDG8.rst | 3 - ...2-06-23-13-12-05.gh-issue-91742.sNytVX.rst | 1 - ...2-06-23-14-35-10.gh-issue-94169.jeba90.rst | 4 - ...2-06-24-09-41-41.gh-issue-94196.r2KyfS.rst | 4 - ...2-06-24-10-18-59.gh-issue-94199.kYOo8g.rst | 5 - ...2-06-24-10-29-19.gh-issue-94199.pfehmz.rst | 3 - ...2-06-24-10-39-56.gh-issue-94199.MIuckY.rst | 7 - ...2-06-24-14-25-26.gh-issue-94214.03pXR5.rst | 1 - ...2-06-24-17-11-33.gh-issue-94199.7releN.rst | 4 - ...2-06-24-18-20-42.gh-issue-94226.8ZL4Fm.rst | 2 - ...2-06-24-19-16-09.gh-issue-93096.r1_oIc.rst | 3 - ...2-06-24-19-23-59.gh-issue-94207.VhS1eS.rst | 2 - ...2-06-24-19-40-40.gh-issue-93096.3RlK2d.rst | 2 - ...2-06-24-20-00-57.gh-issue-94216.hxnQPu.rst | 1 - ...2-06-25-13-38-53.gh-issue-93259.FAGw-2.rst | 2 - ...2-06-25-16-27-02.gh-issue-94254.beP16v.rst | 1 - ...2-06-25-23-44-44.gh-issue-90016.EB409s.rst | 2 - ...2-06-26-10-59-15.gh-issue-89988.K8rnmt.rst | 1 - ...2-06-27-10-33-18.gh-issue-94318.jR4_QV.rst | 1 - ...2-06-28-00-24-48.gh-issue-94352.JY1Ayt.rst | 3 - ...2-06-28-14-29-21.gh-issue-94379.RrgKfh.rst | 3 - ...2-06-28-14-41-22.gh-issue-94383.CXnquo.rst | 5 - ...2-06-29-04-42-56.gh-issue-94398.YOq_bJ.rst | 1 - ...2-06-29-09-48-37.gh-issue-92336.otA6c6.rst | 1 - ...2-07-02-19-46-30.gh-issue-94510.xOatDC.rst | 2 - ...2-07-03-16-41-03.gh-issue-94382.zuVZeM.rst | 1 - ...2-07-05-17-22-00.gh-issue-94343.kf4H5r.rst | 1 - ...2-07-06-06-02-02.gh-issue-93896.vIgWGr.rst | 1 - ...2-07-06-14-45-12.gh-issue-93910.iZcp67.rst | 3 - ...2-07-06-14-57-33.gh-issue-94619.PRqKVX.rst | 1 - ...2-07-06-16-01-08.gh-issue-94607.Q6RYfz.rst | 2 - ...2-07-06-21-24-03.gh-issue-92546.s5Upkh.rst | 2 - ...2-07-06-22-41-51.gh-issue-94309._XswsX.rst | 1 - ...2-07-07-15-46-55.gh-issue-94637.IYEiUM.rst | 3 - ...2-07-08-17-49-12.gh-issue-87822.F9dzkf.rst | 1 - ...2-07-09-08-55-04.gh-issue-74116.0XwYC1.rst | 1 - ...2-07-09-15-17-02.gh-issue-81620.L0O_bV.rst | 1 - ...2-07-11-10-41-48.gh-issue-94736.EbsgeK.rst | 1 - ...2-07-14-00-43-52.gh-issue-94821.e17ghU.rst | 2 - ...2-07-15-08-13-51.gh-issue-94857.9_KvZJ.rst | 1 - ...2-07-19-15-37-11.gh-issue-95005.iRmZ74.rst | 2 - ...2-07-20-00-23-58.gh-issue-77617.XGaqSQ.rst | 2 - ...2-07-20-22-49-48.gh-issue-95066.TuCu0E.rst | 1 - ...2-07-21-19-55-49.gh-issue-95105.BIX2Km.rst | 1 - ...2-07-21-22-59-22.gh-issue-95109.usxA9r.rst | 1 - ...2-07-22-00-58-49.gh-issue-95077.4Z6CNC.rst | 1 - ...2-07-22-17-19-57.gh-issue-93157.RXByAk.rst | 2 - ...2-07-22-21-18-17.gh-issue-95132.n9anlw.rst | 4 - ...2-07-23-10-42-05.gh-issue-95166.xw6p3C.rst | 1 - ...2-07-23-10-50-05.gh-issue-93899.VT34A5.rst | 1 - ...2-07-24-09-15-35.gh-issue-95194.ERVmqG.rst | 1 - ...2-07-24-12-00-06.gh-issue-95199.-5A64k.rst | 1 - ...2-07-24-12-59-02.gh-issue-95087.VvqXkN.rst | 1 - ...2-07-24-18-00-42.gh-issue-95097.lu5qNf.rst | 1 - ...2-07-25-15-45-06.gh-issue-95231.i807-g.rst | 3 - ...2-07-27-11-35-45.gh-issue-95045.iysT-Q.rst | 1 - ...2-07-27-19-43-07.gh-issue-95339.NuVQ68.rst | 1 - ...2-07-28-17-14-38.gh-issue-95385.6YlsDI.rst | 1 - ...2-07-29-20-58-37.gh-issue-94909.YjMusj.rst | 2 - ...2-08-03-16-52-32.gh-issue-95289.FMnHlV.rst | 1 - ...2-08-03-21-01-17.gh-issue-95609.xxyjyX.rst | 1 - ...2-08-07-14-56-23.gh-issue-95149.U0c6Ib.rst | 2 - ...2-08-08-01-42-11.gh-issue-95704.MOPFfX.rst | 2 - ...2-08-10-11-54-04.gh-issue-95804.i5FCFK.rst | 2 - ...2-08-10-17-34-07.gh-issue-95861.qv-T5s.rst | 2 - ...2-08-11-03-16-48.gh-issue-95865.0IOkFP.rst | 1 - ...2-08-11-18-22-29.gh-issue-95736.LzRZXe.rst | 1 - ...2-08-11-18-52-17.gh-issue-95899._Bi4uG.rst | 1 - ...2-08-14-18-59-54.gh-issue-69142.6is5Pq.rst | 1 - ...2-08-18-14-53-53.gh-issue-95463.GpP05c.rst | 2 - ...2-08-19-10-19-32.gh-issue-96019.b7uAVP.rst | 3 - ...2-08-19-18-21-01.gh-issue-96125.ODcF1Y.rst | 2 - ...2-08-20-10-31-01.gh-issue-96052.a6FhaD.rst | 4 - ...2-08-20-12-56-15.gh-issue-96145.8ah3pE.rst | 1 - ...2-08-22-13-54-20.gh-issue-96175.bH7zGU.rst | 1 - ...2-08-22-18-42-17.gh-issue-96159.3bFU39.rst | 1 - ...2-08-23-13-30-30.gh-issue-96172.7WTHer.rst | 3 - ...2-08-27-14-38-49.gh-issue-90467.VOOB0p.rst | 2 - ...2-08-27-21-26-52.gh-issue-96349.XyYLlO.rst | 1 - ...2-08-29-07-04-03.gh-issue-89258.ri7ncj.rst | 2 - ...2-08-29-15-28-39.gh-issue-96385.uLRTsf.rst | 3 - ...2-08-29-16-54-36.gh-issue-96388.dCpJcu.rst | 2 - ...2-08-30-11-46-36.gh-issue-95987.CV7_u4.rst | 1 - ...2-08-31-11-10-21.gh-issue-96079.uqrXdJ.rst | 1 - ...2-09-01-13-54-38.gh-issue-96465.0IJmrH.rst | 1 - ...2-09-03-18-39-05.gh-issue-96538.W156-D.rst | 1 - ...2-09-04-12-32-52.gh-issue-68163.h6TJCc.rst | 1 - ...2-09-07-22-49-37.gh-issue-96652.YqOKxI.rst | 3 - ...2-09-08-20-12-48.gh-issue-46412.r_cfTh.rst | 1 - ...2-09-13-15-12-31.gh-issue-96734.G08vjz.rst | 1 - ...2-09-15-00-37-33.gh-issue-96741.4b6czN.rst | 1 - ...2-04-27-18-25-30.gh-issue-68966.gjS8zs.rst | 4 - ...2-05-19-08-53-07.gh-issue-92888.TLtR9W.rst | 2 - ...2-06-03-12-52-53.gh-issue-79096.YVoxgC.rst | 1 - ...2-06-15-20-09-23.gh-issue-87389.QVaC3f.rst | 3 - ...08-07-16-53-38.gh-issue-95778.ch010gps.rst | 14 - .../2022-03-14-23-28-17.bpo-47016.K-t2QX.rst | 2 - ...2-05-25-23-00-35.gh-issue-92886.Y-vrWj.rst | 1 - ...2-05-25-23-07-15.gh-issue-92886.Aki63_.rst | 1 - ...2-06-03-12-22-44.gh-issue-89858.ftBvjE.rst | 1 - ...2-06-03-14-18-37.gh-issue-90473.7iXVRK.rst | 2 - ...2-06-03-16-26-04.gh-issue-57539.HxWgYO.rst | 1 - ...2-06-04-12-05-31.gh-issue-90473.RSpjF7.rst | 1 - ...2-06-05-10-16-45.gh-issue-90473.QMu7A8.rst | 2 - ...2-06-08-14-17-59.gh-issue-93575.Xb2LNB.rst | 4 - ...2-06-08-22-32-56.gh-issue-93616.e5Kkx2.rst | 2 - ...2-06-10-21-18-14.gh-issue-84461.9TAb26.rst | 2 - ...2-06-16-17-50-58.gh-issue-93353.JdpATx.rst | 2 - ...2-06-16-21-38-18.gh-issue-93852.U_Hl6s.rst | 4 - ...2-06-17-13-27-21.gh-issue-93884.5pvPvl.rst | 1 - ...2-06-17-13-55-11.gh-issue-93957.X4ovYV.rst | 2 - ...2-06-17-15-20-09.gh-issue-93951.CW1Vv4.rst | 1 - ...2-06-20-23-04-52.gh-issue-93839.OE3Ybk.rst | 2 - ...2-06-21-17-37-46.gh-issue-54781.BjVAVg.rst | 2 - ...2-06-27-08-53-40.gh-issue-94315.MoZT9t.rst | 2 - ...2-06-27-21-27-20.gh-issue-94208.VR6HX-.rst | 2 - ...2-07-05-17-53-13.gh-issue-91330.Qys5IL.rst | 2 - ...2-07-08-12-22-00.gh-issue-94675.IiTs5f.rst | 1 - ...2-07-24-16-28-31.gh-issue-93963.UB9azu.rst | 1 - ...2-07-24-17-24-42.gh-issue-95218.zfBLtu.rst | 1 - ...2-07-24-20-19-05.gh-issue-95212.fHiU4e.rst | 2 - ...2-07-26-15-22-19.gh-issue-95280.h8HvbP.rst | 2 - ...2-08-05-09-57-43.gh-issue-95573.edMdQB.rst | 6 - ...2-08-22-14-59-42.gh-issue-95243.DeD66V.rst | 3 - ...2-09-08-18-31-26.gh-issue-96624.5cANM1.rst | 1 - ...2-06-19-14-56-33.gh-issue-86087.R8MkRy.rst | 2 - ...2-06-29-22-47-11.gh-issue-94430.hdov8L.rst | 2 - ...2-07-04-01-37-42.gh-issue-94538.1rgy1Y.rst | 2 - ...2-07-04-10-02-02.gh-issue-93939.U6sW6H.rst | 3 - ...2-08-10-17-08-43.gh-issue-95853.HCjC2m.rst | 2 - ...2-08-29-17-25-13.gh-issue-95853.Ce17cT.rst | 2 - .../2022-03-20-15-47-35.bpo-42658.16eXtb.rst | 3 - ...2-05-28-19-36-13.gh-issue-43414.NGMJ3g.rst | 2 - ...2-06-15-01-03-52.gh-issue-93824.mR4mxu.rst | 2 - ...2-06-20-22-32-14.gh-issue-94018.bycC3A.rst | 1 - ...2-07-12-20-45-43.gh-issue-94772.uNMmdG.rst | 1 - ...2-07-16-16-18-32.gh-issue-90844.vwITT3.rst | 2 - ...2-07-26-20-33-12.gh-issue-95285.w6fa22.rst | 2 - ...2-07-28-20-21-38.gh-issue-95359.ywMrgu.rst | 3 - ...2-07-30-14-18-33.gh-issue-95445.mjrTaq.rst | 1 - ...2-08-03-00-49-46.gh-issue-94399.KvxHc0.rst | 3 - ...2-08-04-01-12-27.gh-issue-95587.Fvdv5q.rst | 2 - ...2-08-04-18-47-54.gh-issue-95656.VJ1d13.rst | 2 - ...2-08-10-22-46-48.gh-issue-95733.2_urOp.rst | 2 - ...2-08-26-00-11-18.gh-issue-89545.zmJMY_.rst | 1 - ...2-08-30-12-01-51.gh-issue-94781.OxO-Gr.rst | 2 - ...2-09-05-18-32-47.gh-issue-96559.561sUd.rst | 3 - ...2-09-07-00-11-33.gh-issue-96577.kV4K_1.rst | 1 - Misc/python.man | 27 +- Misc/rhel7/README.md | 19 - Misc/rhel7/openssl.pc | 3 - Misc/rhel7/tcl.pc | 4 - Misc/rhel7/tk.pc | 5 - Misc/stable_abi.toml | 9 - Modules/Setup | 2 +- Modules/Setup.stdlib.in | 21 +- Modules/_abc.c | 1 - Modules/_asynciomodule.c | 90 +- Modules/_bisectmodule.c | 164 +- Modules/_blake2/clinic/blake2b_impl.c.h | 33 +- Modules/_blake2/clinic/blake2s_impl.c.h | 33 +- Modules/_bz2module.c | 62 +- Modules/_codecsmodule.c | 1 - Modules/_ctypes/_ctypes.c | 1 - Modules/_ctypes/callbacks.c | 14 +- Modules/_ctypes/callproc.c | 3 - Modules/_ctypes/cfield.c | 1 - Modules/_ctypes/ctypes.h | 6 +- Modules/_ctypes/malloc_closure.c | 3 - Modules/_cursesmodule.c | 1 - Modules/_datetimemodule.c | 100 +- Modules/_dbmmodule.c | 32 - Modules/_elementtree.c | 8 +- Modules/_functoolsmodule.c | 5 +- Modules/_gdbmmodule.c | 30 - Modules/_hashopenssl.c | 2 +- Modules/_io/bufferedio.c | 2 +- Modules/_io/clinic/_iomodule.c.h | 58 +- Modules/_io/clinic/bufferedio.c.h | 83 +- Modules/_io/clinic/bytesio.c.h | 33 +- Modules/_io/clinic/fileio.c.h | 33 +- Modules/_io/clinic/iobase.c.h | 8 +- Modules/_io/clinic/stringio.c.h | 33 +- Modules/_io/clinic/textio.c.h | 108 +- Modules/_io/clinic/winconsoleio.c.h | 33 +- Modules/_io/stringio.c | 29 +- Modules/_io/textio.c | 13 +- Modules/_json.c | 341 +- Modules/_lsprof.c | 3 +- .../clinic/multiprocessing.c.h | 36 +- .../_multiprocessing/clinic/posixshmem.c.h | 58 +- Modules/_multiprocessing/clinic/semaphore.c.h | 83 +- Modules/_multiprocessing/multiprocessing.c | 61 +- Modules/_multiprocessing/multiprocessing.h | 2 +- Modules/_multiprocessing/semaphore.c | 75 +- Modules/_opcode.c | 7 +- Modules/_operator.c | 9 +- Modules/_pickle.c | 67 +- Modules/_randommodule.c | 1 - Modules/_sha3/clinic/sha3module.c.h | 33 +- Modules/_sqlite/clinic/blob.c.h | 8 +- Modules/_sqlite/clinic/connection.c.h | 321 +- Modules/_sqlite/clinic/cursor.c.h | 33 +- Modules/_sqlite/clinic/module.c.h | 147 +- Modules/_sqlite/clinic/row.c.h | 8 +- Modules/_sqlite/connection.c | 58 +- Modules/_sqlite/cursor.c | 69 +- Modules/_sqlite/microprotocols.c | 4 +- Modules/_sqlite/module.c | 91 +- Modules/_sqlite/prepare_protocol.c | 3 - Modules/_sqlite/statement.c | 120 +- Modules/_sqlite/statement.h | 1 + Modules/_sre/clinic/sre.c.h | 358 +- Modules/_sre/sre.c | 77 +- Modules/_sre/sre.h | 4 + Modules/_sre/sre_constants.h | 2 +- Modules/_sre/sre_lib.h | 30 +- Modules/_ssl.c | 43 +- Modules/_ssl/clinic/cert.c.h | 33 +- Modules/_statisticsmodule.c | 2 +- Modules/_struct.c | 26 +- Modules/_testcapi/README.txt | 3 - Modules/_testcapi/clinic/vectorcall.c.h | 113 - Modules/_testcapi/heaptype.c | 1095 - Modules/_testcapi/parts.h | 36 - Modules/_testcapi/unicode.c | 713 - Modules/_testcapi/vectorcall.c | 409 - Modules/_testcapi/vectorcall_limited.c | 82 - Modules/_testcapimodule.c | 1588 +- Modules/_testinternalcapi.c | 30 +- Modules/_threadmodule.c | 2 - Modules/_tracemalloc.c | 11 +- Modules/_winapi.c | 61 - Modules/_xxsubinterpretersmodule.c | 16 + Modules/_zoneinfo.c | 35 +- Modules/addrinfo.h | 2 - Modules/arraymodule.c | 21 +- Modules/atexitmodule.c | 2 +- Modules/cjkcodecs/cjkcodecs.h | 9 +- Modules/cjkcodecs/clinic/multibytecodec.c.h | 134 +- Modules/cjkcodecs/mappings_hk.h | 1 - Modules/cjkcodecs/mappings_tw.h | 2 - Modules/clinic/_abc.c.h | 8 +- Modules/clinic/_asynciomodule.c.h | 345 +- Modules/clinic/_bisectmodule.c.h | 108 +- Modules/clinic/_bz2module.c.h | 33 +- Modules/clinic/_codecsmodule.c.h | 58 +- Modules/clinic/_collectionsmodule.c.h | 8 +- Modules/clinic/_contextvarsmodule.c.h | 8 +- Modules/clinic/_cryptmodule.c.h | 8 +- Modules/clinic/_csv.c.h | 83 +- Modules/clinic/_curses_panel.c.h | 47 +- Modules/clinic/_cursesmodule.c.h | 33 +- Modules/clinic/_datetimemodule.c.h | 58 +- Modules/clinic/_dbmmodule.c.h | 34 +- Modules/clinic/_elementtree.c.h | 208 +- Modules/clinic/_gdbmmodule.c.h | 21 +- Modules/clinic/_hashopenssl.c.h | 508 +- Modules/clinic/_heapqmodule.c.h | 8 +- Modules/clinic/_localemodule.c.h | 8 +- Modules/clinic/_lsprof.c.h | 8 +- Modules/clinic/_lzmamodule.c.h | 58 +- Modules/clinic/_opcode.c.h | 33 +- Modules/clinic/_operator.c.h | 8 +- Modules/clinic/_pickle.c.h | 158 +- Modules/clinic/_queuemodule.c.h | 83 +- Modules/clinic/_randommodule.c.h | 8 +- Modules/clinic/_ssl.c.h | 264 +- Modules/clinic/_statisticsmodule.c.h | 8 +- Modules/clinic/_struct.c.h | 83 +- Modules/clinic/_testinternalcapi.c.h | 68 - Modules/clinic/_testmultiphase.c.h | 33 +- Modules/clinic/_tkinter.c.h | 8 +- Modules/clinic/_tracemalloc.c.h | 8 +- Modules/clinic/_typingmodule.c.h | 8 +- Modules/clinic/_weakref.c.h | 8 +- Modules/clinic/_winapi.c.h | 193 +- Modules/clinic/arraymodule.c.h | 60 +- Modules/clinic/audioop.c.h | 8 +- Modules/clinic/binascii.c.h | 183 +- Modules/clinic/cmathmodule.c.h | 33 +- Modules/clinic/fcntlmodule.c.h | 8 +- Modules/clinic/gcmodule.c.h | 58 +- Modules/clinic/grpmodule.c.h | 58 +- Modules/clinic/itertoolsmodule.c.h | 183 +- Modules/clinic/mathmodule.c.h | 58 +- Modules/clinic/md5module.c.h | 33 +- Modules/clinic/overlapped.c.h | 400 +- Modules/clinic/posixmodule.c.h | 2203 +- Modules/clinic/pwdmodule.c.h | 8 +- Modules/clinic/pyexpat.c.h | 85 +- Modules/clinic/readline.c.h | 8 +- Modules/clinic/resource.c.h | 55 +- Modules/clinic/selectmodule.c.h | 133 +- Modules/clinic/sha1module.c.h | 33 +- Modules/clinic/sha256module.c.h | 58 +- Modules/clinic/sha512module.c.h | 58 +- Modules/clinic/signalmodule.c.h | 8 +- Modules/clinic/socketmodule.c.h | 33 +- Modules/clinic/spwdmodule.c.h | 8 +- Modules/clinic/symtablemodule.c.h | 8 +- Modules/clinic/termios.c.h | 8 +- Modules/clinic/unicodedata.c.h | 8 +- Modules/clinic/zlibmodule.c.h | 198 +- Modules/errnomodule.c | 8 - Modules/faulthandler.c | 12 +- Modules/fcntlmodule.c | 9 - Modules/gc_weakref.txt | 2 +- Modules/gcmodule.c | 24 +- Modules/getaddrinfo.c | 5 - Modules/getnameinfo.c | 7 +- Modules/getpath.py | 11 +- Modules/main.c | 23 +- Modules/makesetup | 21 +- Modules/mathmodule.c | 74 +- Modules/mmapmodule.c | 54 +- Modules/overlapped.c | 85 +- Modules/posixmodule.c | 50 +- Modules/pyexpat.c | 3 +- Modules/resource.c | 20 +- Modules/selectmodule.c | 5 - Modules/signalmodule.c | 10 +- Modules/socketmodule.c | 126 +- Modules/syslogmodule.c | 65 +- Modules/timemodule.c | 9 +- Modules/unicodedata.c | 5 +- Modules/unicodedata_db.h | 4919 +- Modules/unicodename_db.h | 52038 ++++++++-------- Modules/xxlimited.c | 1 - Modules/xxlimited_35.c | 58 +- Modules/xxmodule.c | 39 +- Objects/abstract.c | 9 +- Objects/accu.c | 115 + Objects/asm_trampoline.S | 28 - Objects/boolobject.c | 3 +- Objects/bytearrayobject.c | 36 +- Objects/call.c | 13 +- Objects/clinic/bytearrayobject.c.h | 183 +- Objects/clinic/bytesobject.c.h | 183 +- Objects/clinic/classobject.c.h | 8 +- Objects/clinic/codeobject.c.h | 58 +- Objects/clinic/complexobject.c.h | 33 +- Objects/clinic/descrobject.c.h | 58 +- Objects/clinic/dictobject.c.h | 8 +- Objects/clinic/enumobject.c.h | 33 +- Objects/clinic/floatobject.c.h | 8 +- Objects/clinic/funcobject.c.h | 33 +- Objects/clinic/listobject.c.h | 33 +- Objects/clinic/longobject.c.h | 83 +- Objects/clinic/memoryobject.c.h | 108 +- Objects/clinic/moduleobject.c.h | 33 +- Objects/clinic/odictobject.c.h | 133 +- Objects/clinic/structseq.c.h | 33 +- Objects/clinic/tupleobject.c.h | 8 +- Objects/clinic/typeobject.c.h | 8 +- Objects/clinic/unicodeobject.c.h | 158 +- Objects/codeobject.c | 148 +- Objects/descrobject.c | 72 +- Objects/dictobject.c | 195 +- Objects/exception_handling_notes.txt | 53 +- Objects/exceptions.c | 28 +- Objects/fileobject.c | 20 +- Objects/floatobject.c | 14 +- Objects/frameobject.c | 325 +- Objects/funcobject.c | 11 - Objects/genericaliasobject.c | 104 +- Objects/genobject.c | 21 +- Objects/listobject.c | 193 +- Objects/longobject.c | 97 +- Objects/memoryobject.c | 101 +- Objects/object.c | 200 +- Objects/object_layout.md | 82 - Objects/object_layout_312.gv | 50 - Objects/object_layout_312.png | Bin 30688 -> 0 bytes Objects/object_layout_full_312.gv | 25 - Objects/object_layout_full_312.png | Bin 17092 -> 0 bytes Objects/obmalloc.c | 2 +- Objects/perf_trampoline.c | 531 - Objects/rangeobject.c | 23 +- Objects/sliceobject.c | 51 +- Objects/stringlib/clinic/transmogrify.h.h | 33 +- Objects/stringlib/fastsearch.h | 9 +- .../stringlib_find_two_way_notes.txt | 4 +- Objects/structseq.c | 124 +- Objects/tupleobject.c | 41 +- Objects/typeobject.c | 1322 +- Objects/unicodeobject.c | 222 +- Objects/unicodetype_db.h | 854 +- Objects/weakrefobject.c | 26 +- PC/_msi.c | 4 +- PC/_wmimodule.cpp | 323 - PC/clinic/_msi.c.h | 8 +- PC/clinic/_testconsole.c.h | 58 +- PC/clinic/_wmimodule.cpp.h | 75 - PC/clinic/msvcrtmodule.c.h | 30 +- PC/clinic/winreg.c.h | 343 +- PC/clinic/winsound.c.h | 83 +- PC/empty.c | 6 + PC/launcher.c | 16 +- PC/launcher2.c | 172 +- PC/layout/main.py | 3 + PC/layout/support/appxmanifest.py | 7 +- PC/layout/support/catalog.py | 2 + PC/layout/support/constants.py | 1 + PC/msvcrtmodule.c | 10 +- PC/pyconfig.h | 38 +- PC/python3dll.c | 2 - PC/readme.txt | 6 + PC/testpy.py | 30 + PC/winreg.c | 38 +- PCbuild/_freeze_module.vcxproj | 7 +- PCbuild/_freeze_module.vcxproj.filters | 11 +- PCbuild/_sqlite3.vcxproj | 2 +- PCbuild/_testcapi.vcxproj | 8 - PCbuild/_testcapi.vcxproj.filters | 12 - PCbuild/_wmi.vcxproj | 119 - PCbuild/_wmi.vcxproj.filters | 22 - PCbuild/find_python.bat | 4 +- PCbuild/get_externals.bat | 4 +- PCbuild/lib.pyproj | 272 +- PCbuild/pcbuild.proj | 14 +- PCbuild/pcbuild.sln | 34 - PCbuild/pyproject.props | 2 +- PCbuild/python.props | 4 +- PCbuild/pythoncore.vcxproj | 9 +- PCbuild/pythoncore.vcxproj.filters | 24 +- PCbuild/readme.txt | 2 +- PCbuild/regen.targets | 9 +- Parser/asdl_c.py | 52 +- Parser/myreadline.c | 3 +- Parser/parser.c | 965 +- Parser/pegen.c | 33 +- Parser/pegen_errors.c | 12 +- Parser/string_parser.c | 49 +- Parser/tokenizer.c | 82 +- Programs/_testembed.c | 61 +- Programs/test_frozenmain.h | 70 +- Python/Python-ast.c | 131 +- Python/Python-tokenize.c | 1 - Python/_warnings.c | 48 +- Python/ast.c | 26 - Python/ceval.c | 1883 +- Python/ceval_gil.c | 986 - Python/ceval_gil.h | 349 + Python/clinic/Python-tokenize.c.h | 33 +- Python/clinic/_warnings.c.h | 137 +- Python/clinic/bltinmodule.c.h | 183 +- Python/clinic/context.c.h | 8 +- Python/clinic/import.c.h | 58 +- Python/clinic/marshal.c.h | 8 +- Python/clinic/sysmodule.c.h | 335 +- Python/clinic/traceback.c.h | 33 +- Python/compile.c | 2644 +- Python/condvar.h | 6 +- Python/dup2.c | 6 - Python/errors.c | 4 +- Python/fileutils.c | 6 +- Python/frame.c | 30 +- Python/getargs.c | 393 +- Python/getopt.c | 6 +- Python/import.c | 65 +- Python/initconfig.c | 350 +- Python/makeopcodetargets.py | 3 +- Python/opcode_targets.h | 90 +- Python/pathconfig.c | 23 +- Python/preconfig.c | 22 +- Python/pylifecycle.c | 60 +- Python/pystate.c | 105 +- Python/pytime.c | 8 - Python/specialize.c | 482 +- Python/stdlib_module_names.h | 2 + Python/suggestions.c | 1 + Python/sysmodule.c | 422 +- Python/thread.c | 21 +- Python/thread_pthread.h | 172 +- Python/thread_pthread_stubs.h | 185 - Python/traceback.c | 21 +- README.rst | 4 +- Tools/c-analyzer/c_common/fsutil.py | 19 - Tools/c-analyzer/c_common/tables.py | 285 +- Tools/c-analyzer/c_parser/__init__.py | 8 +- Tools/c-analyzer/c_parser/info.py | 29 +- Tools/c-analyzer/c_parser/parser/__init__.py | 6 +- Tools/c-analyzer/c_parser/parser/_common.py | 6 +- .../c_parser/preprocessor/__init__.py | 99 +- .../c_parser/preprocessor/common.py | 9 +- Tools/c-analyzer/c_parser/preprocessor/gcc.py | 157 +- .../c-analyzer/c_parser/preprocessor/pure.py | 2 +- Tools/c-analyzer/check-c-globals.py | 7 +- Tools/c-analyzer/cpython/__main__.py | 48 +- Tools/c-analyzer/cpython/_analyzer.py | 72 - Tools/c-analyzer/cpython/_builtin_types.py | 365 - Tools/c-analyzer/cpython/_parser.py | 181 +- Tools/c-analyzer/cpython/globals-to-fix.tsv | 782 +- Tools/c-analyzer/cpython/ignored.tsv | 1256 +- Tools/clinic/clinic.py | 126 +- Tools/gdb/libpython.py | 43 +- Tools/msi/build.bat | 19 +- Tools/msi/buildrelease.bat | 47 +- .../PythonBootstrapperApplication.cpp | 38 +- Tools/msi/bundle/packagegroups/launcher.wxs | 12 +- Tools/msi/doc/doc.wxs | 5 - Tools/msi/launcher/launcher.wxs | 13 +- Tools/msi/launcher/launcher_files.wxs | 13 +- Tools/msi/lib/lib_files.wxs | 2 +- Tools/peg_generator/Makefile | 2 +- Tools/peg_generator/pegen/grammar.py | 7 + Tools/peg_generator/scripts/benchmark.py | 2 +- .../peg_generator/scripts/grammar_grapher.py | 1 + .../scripts/test_parse_directory.py | 2 + .../scripts/test_pypi_packages.py | 3 +- Tools/scripts/2to3 | 2 +- Tools/scripts/check_extension_modules.py | 484 - Tools/scripts/deepfreeze.py | 29 +- Tools/scripts/freeze_modules.py | 1 + Tools/scripts/generate_global_objects.py | 77 +- Tools/scripts/generate_opcode_h.py | 57 +- Tools/scripts/generate_re_casefix.py | 1 + Tools/scripts/generate_stdlib_module_names.py | 59 +- Tools/scripts/idle3 | 2 +- Tools/scripts/parse_html5_entities.py | 27 +- Tools/scripts/parseentities.py | 64 + Tools/scripts/pathfix.py | 1 + Tools/scripts/run_tests.py | 46 +- Tools/scripts/stable_abi.py | 1 + Tools/scripts/summarize_stats.py | 38 +- Tools/scripts/verify_ensurepip_wheels.py | 98 - Tools/ssl/multissltests.py | 9 +- Tools/unicode/genmap_tchinese.py | 239 - Tools/unicode/makeunicodedata.py | 47 +- Tools/wasm/.editorconfig | 7 - Tools/wasm/README.md | 237 +- Tools/wasm/config.site-wasm32-emscripten | 14 - Tools/wasm/config.site-wasm32-wasi | 8 +- Tools/wasm/python.html | 113 +- Tools/wasm/python.worker.js | 8 +- Tools/wasm/wasi-env | 76 - Tools/wasm/wasm_assets.py | 76 +- Tools/wasm/wasm_build.py | 907 - configure | 14981 ++--- configure.ac | 1145 +- pyconfig.h.in | 100 +- setup.py | 1626 + 1807 files changed, 64496 insertions(+), 99230 deletions(-) create mode 100644 .azure-pipelines/find-tools.yml create mode 100644 .azure-pipelines/libffi-build.yml create mode 100644 .azure-pipelines/openssl-build.yml create mode 100644 .azure-pipelines/tcltk-build.yml delete mode 100644 .github/workflows/project-updater.yml delete mode 100644 .github/workflows/regen-abidump.sh delete mode 100644 .github/workflows/verify-ensurepip-wheels.yml create mode 100644 Doc/distutils/_setuptools_disclaimer.rst create mode 100644 Doc/distutils/apiref.rst create mode 100644 Doc/distutils/builtdist.rst create mode 100644 Doc/distutils/commandref.rst create mode 100644 Doc/distutils/configfile.rst create mode 100644 Doc/distutils/examples.rst create mode 100644 Doc/distutils/extending.rst create mode 100644 Doc/distutils/index.rst create mode 100644 Doc/distutils/introduction.rst create mode 100644 Doc/distutils/packageindex.rst create mode 100644 Doc/distutils/setupscript.rst create mode 100644 Doc/distutils/sourcedist.rst create mode 100644 Doc/distutils/uploading.rst delete mode 100644 Doc/howto/isolating-extensions.rst delete mode 100644 Doc/howto/perf_profiling.rst create mode 100644 Doc/includes/sqlite3/adapter_datetime.py create mode 100644 Doc/includes/sqlite3/adapter_point_1.py create mode 100644 Doc/includes/sqlite3/adapter_point_2.py create mode 100644 Doc/includes/sqlite3/blob.py create mode 100644 Doc/includes/sqlite3/collation_reverse.py create mode 100644 Doc/includes/sqlite3/complete_statement.py create mode 100644 Doc/includes/sqlite3/converter_point.py create mode 100644 Doc/includes/sqlite3/ctx_manager.py create mode 100644 Doc/includes/sqlite3/execute_1.py create mode 100644 Doc/includes/sqlite3/executemany_1.py create mode 100644 Doc/includes/sqlite3/executemany_2.py create mode 100644 Doc/includes/sqlite3/executescript.py create mode 100644 Doc/includes/sqlite3/load_extension.py create mode 100644 Doc/includes/sqlite3/md5func.py create mode 100644 Doc/includes/sqlite3/mysumaggr.py create mode 100644 Doc/includes/sqlite3/pysqlite_datetime.py create mode 100644 Doc/includes/sqlite3/row_factory.py create mode 100644 Doc/includes/sqlite3/rowclass.py create mode 100644 Doc/includes/sqlite3/shortcut_methods.py create mode 100644 Doc/includes/sqlite3/sumintwindow.py create mode 100644 Doc/includes/sqlite3/text_factory.py delete mode 100644 Doc/includes/wasm-notavail.rst create mode 100644 Doc/library/distutils.rst create mode 100644 Doc/library/smtpd.rst mode change 100644 => 100755 Doc/library/socket.rst delete mode 100644 Include/cpython/pthread_stubs.h delete mode 100644 Include/cpython/pyframe.h create mode 100644 Include/internal/pycore_accu.h delete mode 100644 Include/internal/pycore_descrobject.h delete mode 100644 Include/internal/pycore_range.h delete mode 100644 Include/internal/pycore_runtime_init_generated.h create mode 100644 Lib/_bootsubprocess.py rename Lib/{test/test_ctypes => ctypes/test}/__init__.py (100%) create mode 100644 Lib/ctypes/test/__main__.py rename Lib/{test/test_ctypes => ctypes/test}/test_anon.py (100%) rename Lib/{test/test_ctypes => ctypes/test}/test_array_in_pointer.py (100%) rename Lib/{test/test_ctypes => ctypes/test}/test_arrays.py (99%) rename Lib/{test/test_ctypes => ctypes/test}/test_as_parameter.py (98%) rename Lib/{test/test_ctypes => ctypes/test}/test_bitfields.py (99%) rename Lib/{test/test_ctypes => ctypes/test}/test_buffers.py (98%) rename Lib/{test/test_ctypes => ctypes/test}/test_bytes.py (100%) rename Lib/{test/test_ctypes => ctypes/test}/test_byteswap.py (100%) rename Lib/{test/test_ctypes => ctypes/test}/test_callbacks.py (98%) rename Lib/{test/test_ctypes => ctypes/test}/test_cast.py (98%) rename Lib/{test/test_ctypes => ctypes/test}/test_cfuncs.py (97%) rename Lib/{test/test_ctypes => ctypes/test}/test_checkretval.py (95%) rename Lib/{test/test_ctypes => ctypes/test}/test_delattr.py (100%) rename Lib/{test/test_ctypes => ctypes/test}/test_errno.py (100%) rename Lib/{test/test_ctypes => ctypes/test}/test_find.py (100%) rename Lib/{test/test_ctypes => ctypes/test}/test_frombuffer.py (100%) rename Lib/{test/test_ctypes => ctypes/test}/test_funcptr.py (100%) rename Lib/{test/test_ctypes => ctypes/test}/test_functions.py (98%) rename Lib/{test/test_ctypes => ctypes/test}/test_incomplete.py (100%) rename Lib/{test/test_ctypes => ctypes/test}/test_init.py (100%) rename Lib/{test/test_ctypes => ctypes/test}/test_internals.py (100%) rename Lib/{test/test_ctypes => ctypes/test}/test_keeprefs.py (100%) rename Lib/{test/test_ctypes => ctypes/test}/test_libc.py (100%) rename Lib/{test/test_ctypes => ctypes/test}/test_loading.py (99%) rename Lib/{test/test_ctypes => ctypes/test}/test_macholib.py (100%) rename Lib/{test/test_ctypes => ctypes/test}/test_memfunctions.py (98%) rename Lib/{test/test_ctypes => ctypes/test}/test_numbers.py (100%) rename Lib/{test/test_ctypes => ctypes/test}/test_objects.py (87%) rename Lib/{test/test_ctypes => ctypes/test}/test_parameters.py (99%) rename Lib/{test/test_ctypes => ctypes/test}/test_pep3118.py (100%) rename Lib/{test/test_ctypes => ctypes/test}/test_pickling.py (100%) rename Lib/{test/test_ctypes => ctypes/test}/test_pointers.py (100%) rename Lib/{test/test_ctypes => ctypes/test}/test_prototypes.py (99%) rename Lib/{test/test_ctypes => ctypes/test}/test_python_api.py (100%) rename Lib/{test/test_ctypes => ctypes/test}/test_random_things.py (100%) rename Lib/{test/test_ctypes => ctypes/test}/test_refcounts.py (100%) rename Lib/{test/test_ctypes => ctypes/test}/test_repr.py (100%) rename Lib/{test/test_ctypes => ctypes/test}/test_returnfuncptrs.py (100%) rename Lib/{test/test_ctypes => ctypes/test}/test_simplesubclasses.py (100%) rename Lib/{test/test_ctypes => ctypes/test}/test_sizes.py (90%) rename Lib/{test/test_ctypes => ctypes/test}/test_slicing.py (99%) rename Lib/{test/test_ctypes => ctypes/test}/test_stringptr.py (100%) rename Lib/{test/test_ctypes => ctypes/test}/test_strings.py (99%) rename Lib/{test/test_ctypes => ctypes/test}/test_struct_fields.py (100%) rename Lib/{test/test_ctypes => ctypes/test}/test_structures.py (99%) rename Lib/{test/test_ctypes => ctypes/test}/test_unaligned_structures.py (100%) rename Lib/{test/test_ctypes => ctypes/test}/test_unicode.py (97%) rename Lib/{test/test_ctypes => ctypes/test}/test_values.py (100%) rename Lib/{test/test_ctypes => ctypes/test}/test_varsize_struct.py (100%) rename Lib/{test/test_ctypes => ctypes/test}/test_win32.py (100%) rename Lib/{test/test_ctypes => ctypes/test}/test_wintypes.py (100%) create mode 100644 Lib/ensurepip/_bundled/pip-22.0.4-py3-none-any.whl delete mode 100644 Lib/ensurepip/_bundled/pip-22.2.2-py3-none-any.whl create mode 100644 Lib/ensurepip/_bundled/setuptools-58.1.0-py3-none-any.whl delete mode 100644 Lib/ensurepip/_bundled/setuptools-63.2.0-py3-none-any.whl rename Lib/{test/test_lib2to3 => lib2to3/tests}/__init__.py (100%) rename Lib/{test/test_lib2to3 => lib2to3/tests}/__main__.py (100%) rename Lib/{test/test_lib2to3 => lib2to3/tests}/data/README (100%) rename Lib/{test/test_lib2to3 => lib2to3/tests}/data/bom.py (100%) rename Lib/{test/test_lib2to3 => lib2to3/tests}/data/crlf.py (100%) rename Lib/{test/test_lib2to3 => lib2to3/tests}/data/different_encoding.py (100%) rename Lib/{test/test_lib2to3 => lib2to3/tests}/data/false_encoding.py (100%) rename Lib/{test/test_lib2to3 => lib2to3/tests}/data/fixers/bad_order.py (100%) rename Lib/{test/test_importlib/resources/data01 => lib2to3/tests/data/fixers/myfixes}/__init__.py (100%) rename Lib/{test/test_lib2to3 => lib2to3/tests}/data/fixers/myfixes/fix_explicit.py (100%) rename Lib/{test/test_lib2to3 => lib2to3/tests}/data/fixers/myfixes/fix_first.py (100%) rename Lib/{test/test_lib2to3 => lib2to3/tests}/data/fixers/myfixes/fix_last.py (100%) rename Lib/{test/test_lib2to3 => lib2to3/tests}/data/fixers/myfixes/fix_parrot.py (100%) rename Lib/{test/test_lib2to3 => lib2to3/tests}/data/fixers/myfixes/fix_preorder.py (100%) rename Lib/{test/test_lib2to3 => lib2to3/tests}/data/fixers/no_fixer_cls.py (100%) rename Lib/{test/test_lib2to3 => lib2to3/tests}/data/fixers/parrot_example.py (100%) rename Lib/{test/test_lib2to3 => lib2to3/tests}/data/infinite_recursion.py (100%) rename Lib/{test/test_lib2to3 => lib2to3/tests}/data/py2_test_grammar.py (99%) rename Lib/{test/test_lib2to3 => lib2to3/tests}/data/py3_test_grammar.py (99%) rename Lib/{test/test_lib2to3 => lib2to3/tests}/pytree_idempotency.py (96%) rename Lib/{test/test_lib2to3 => lib2to3/tests}/support.py (77%) rename Lib/{test/test_lib2to3 => lib2to3/tests}/test_all_fixers.py (99%) rename Lib/{test/test_lib2to3 => lib2to3/tests}/test_fixers.py (99%) rename Lib/{test/test_lib2to3 => lib2to3/tests}/test_main.py (100%) rename Lib/{test/test_lib2to3 => lib2to3/tests}/test_parser.py (99%) rename Lib/{test/test_lib2to3 => lib2to3/tests}/test_pytree.py (100%) rename Lib/{test/test_lib2to3 => lib2to3/tests}/test_refactor.py (100%) rename Lib/{test/test_lib2to3 => lib2to3/tests}/test_util.py (100%) rename Lib/{test => }/smtpd.py (98%) mode change 100644 => 100755 Lib/socket.py delete mode 100644 Lib/sqlite3/__main__.py delete mode 100644 Lib/test/audiodata/pluck-pcm24-ext.wav create mode 100644 Lib/test/test_ctypes.py delete mode 100644 Lib/test/test_ctypes/__main__.py rename Lib/test/test_importlib/{resources/data01/subdirectory => data01}/__init__.py (100%) rename Lib/test/test_importlib/{resources => }/data01/binary.file (100%) rename Lib/test/test_importlib/{resources/data02 => data01/subdirectory}/__init__.py (100%) rename Lib/test/test_importlib/{resources => }/data01/subdirectory/binary.file (100%) rename Lib/test/test_importlib/{resources => }/data01/utf-16.file (100%) rename Lib/test/test_importlib/{resources => }/data01/utf-8.file (100%) rename Lib/test/test_importlib/{resources/data02/one => data02}/__init__.py (100%) rename Lib/test/test_importlib/{resources/data02/two => data02/one}/__init__.py (100%) rename Lib/test/test_importlib/{resources => }/data02/one/resource1.txt (100%) rename Lib/test/test_importlib/{resources/data03 => data02/two}/__init__.py (100%) rename Lib/test/test_importlib/{resources => }/data02/two/resource2.txt (100%) rename Lib/test/test_importlib/{resources/data03/namespace/portion1 => data03}/__init__.py (100%) rename Lib/test/test_importlib/{resources/data03/namespace/portion2 => data03/namespace/portion1}/__init__.py (100%) rename Lib/test/test_importlib/{resources/zipdata01 => data03/namespace/portion2}/__init__.py (100%) rename Lib/test/test_importlib/{resources => }/data03/namespace/resource1.txt (100%) rename Lib/test/test_importlib/{resources => }/namespacedata01/binary.file (100%) rename Lib/test/test_importlib/{resources => }/namespacedata01/utf-16.file (100%) rename Lib/test/test_importlib/{resources => }/namespacedata01/utf-8.file (100%) rename Lib/test/test_importlib/{resources => }/test_compatibilty_files.py (99%) rename Lib/test/test_importlib/{resources => }/test_contents.py (97%) rename Lib/test/test_importlib/{resources => }/test_files.py (94%) rename Lib/test/test_importlib/{resources => }/test_open.py (98%) rename Lib/test/test_importlib/{resources => }/test_path.py (98%) rename Lib/test/test_importlib/{resources => }/test_read.py (98%) rename Lib/test/test_importlib/{resources => }/test_reader.py (100%) rename Lib/test/test_importlib/{resources => }/test_resource.py (99%) rename Lib/test/test_importlib/{resources => }/update-zips.py (100%) rename Lib/test/test_importlib/{resources/zipdata02 => zipdata01}/__init__.py (100%) rename Lib/test/test_importlib/{resources => }/zipdata01/ziptestdata.zip (100%) rename Lib/test/{test_lib2to3/data/fixers/myfixes => test_importlib/zipdata02}/__init__.py (100%) rename Lib/test/test_importlib/{resources => }/zipdata02/ziptestdata.zip (100%) delete mode 100644 Lib/test/test_json/test_attrdict.py create mode 100644 Lib/test/test_lib2to3.py delete mode 100644 Lib/test/test_perf_profiler.py create mode 100644 Lib/test/test_smtpd.py mode change 100644 => 100755 Lib/test/test_socket.py delete mode 100644 Lib/test/test_sqlite3/test_cli.py create mode 100644 Lib/test/test_tk.py delete mode 100644 Lib/test/test_tkinter/__init__.py delete mode 100644 Lib/test/test_tkinter/__main__.py delete mode 100644 Lib/test/test_ttk/__main__.py rename Lib/test/{test_ttk/__init__.py => test_ttk_guionly.py} (68%) create mode 100644 Lib/test/test_unittest.py delete mode 100644 Lib/test/test_unittest/__init__.py delete mode 100644 Lib/test/test_unittest/__main__.py delete mode 100644 Lib/test/test_unittest/testmock/__init__.py delete mode 100644 Lib/test/test_wmi.py rename Lib/{test/test_tkinter => tkinter/test}/README (100%) create mode 100644 Lib/tkinter/test/__init__.py rename Lib/{test/test_tkinter => tkinter/test}/support.py (99%) create mode 100644 Lib/tkinter/test/test_tkinter/__init__.py rename Lib/{ => tkinter}/test/test_tkinter/test_colorchooser.py (96%) rename Lib/{ => tkinter}/test/test_tkinter/test_font.py (98%) rename Lib/{ => tkinter}/test/test_tkinter/test_geometry_managers.py (99%) rename Lib/{ => tkinter}/test/test_tkinter/test_images.py (99%) rename Lib/{ => tkinter}/test/test_tkinter/test_loadtk.py (100%) rename Lib/{ => tkinter}/test/test_tkinter/test_messagebox.py (94%) rename Lib/{ => tkinter}/test/test_tkinter/test_misc.py (99%) rename Lib/{ => tkinter}/test/test_tkinter/test_simpledialog.py (93%) rename Lib/{ => tkinter}/test/test_tkinter/test_text.py (96%) rename Lib/{ => tkinter}/test/test_tkinter/test_variables.py (99%) rename Lib/{ => tkinter}/test/test_tkinter/test_widgets.py (99%) create mode 100644 Lib/tkinter/test/test_ttk/__init__.py rename Lib/{ => tkinter}/test/test_ttk/test_extensions.py (99%) rename Lib/{ => tkinter}/test/test_ttk/test_style.py (98%) rename Lib/{ => tkinter}/test/test_ttk/test_widgets.py (99%) rename Lib/{test/test_tkinter => tkinter/test}/widget_tests.py (99%) create mode 100644 Lib/unittest/test/__init__.py create mode 100644 Lib/unittest/test/__main__.py rename Lib/{test/test_unittest => unittest/test}/_test_warnings.py (84%) rename Lib/{test/test_unittest => unittest/test}/dummy.py (100%) rename Lib/{test/test_unittest => unittest/test}/support.py (100%) rename Lib/{test/test_unittest => unittest/test}/test_assertions.py (97%) rename Lib/{test/test_unittest => unittest/test}/test_async_case.py (94%) rename Lib/{test/test_unittest => unittest/test}/test_break.py (100%) rename Lib/{test/test_unittest => unittest/test}/test_case.py (96%) rename Lib/{test/test_unittest => unittest/test}/test_discovery.py (99%) rename Lib/{test/test_unittest => unittest/test}/test_functiontestcase.py (99%) rename Lib/{test/test_unittest => unittest/test}/test_loader.py (90%) rename Lib/{test/test_unittest => unittest/test}/test_program.py (93%) rename Lib/{test/test_unittest => unittest/test}/test_result.py (99%) rename Lib/{test/test_unittest => unittest/test}/test_runner.py (99%) rename Lib/{test/test_unittest => unittest/test}/test_setups.py (100%) rename Lib/{test/test_unittest => unittest/test}/test_skipping.py (99%) rename Lib/{test/test_unittest => unittest/test}/test_suite.py (99%) create mode 100644 Lib/unittest/test/testmock/__init__.py rename Lib/{test/test_unittest => unittest/test}/testmock/__main__.py (86%) rename Lib/{test/test_unittest => unittest/test}/testmock/support.py (100%) rename Lib/{test/test_unittest => unittest/test}/testmock/testasync.py (100%) rename Lib/{test/test_unittest => unittest/test}/testmock/testcallable.py (98%) rename Lib/{test/test_unittest => unittest/test}/testmock/testhelpers.py (100%) rename Lib/{test/test_unittest => unittest/test}/testmock/testmagicmethods.py (100%) rename Lib/{test/test_unittest => unittest/test}/testmock/testmock.py (99%) rename Lib/{test/test_unittest => unittest/test}/testmock/testpatch.py (98%) rename Lib/{test/test_unittest => unittest/test}/testmock/testsealable.py (100%) rename Lib/{test/test_unittest => unittest/test}/testmock/testsentinel.py (100%) rename Lib/{test/test_unittest => unittest/test}/testmock/testwith.py (99%) delete mode 100644 Mac/BuildScript/openssl1.1.1q-pr-18719.patch delete mode 100644 Misc/NEWS.d/next/Build/2022-05-31-18-04-58.gh-issue-69093.6lSa0C.rst delete mode 100644 Misc/NEWS.d/next/Build/2022-06-04-12-53-53.gh-issue-93491.ehM211.rst delete mode 100644 Misc/NEWS.d/next/Build/2022-06-08-14-28-03.gh-issue-93584.0xfHOK.rst delete mode 100644 Misc/NEWS.d/next/Build/2022-06-25-23-25-47.gh-issue-94280.YhEyW_.rst delete mode 100644 Misc/NEWS.d/next/Build/2022-06-27-11-57-15.gh-issue-93939.rv7s8W.rst delete mode 100644 Misc/NEWS.d/next/Build/2022-06-28-09-42-10.gh-issue-93939._VWxKW.rst delete mode 100644 Misc/NEWS.d/next/Build/2022-06-29-08-58-31.gh-issue-94404.3MadM6.rst delete mode 100644 Misc/NEWS.d/next/Build/2022-06-30-09-57-39.gh-issue-90005.9-pQyR.rst delete mode 100644 Misc/NEWS.d/next/Build/2022-06-30-17-00-54.gh-issue-90005.iiq5qD.rst delete mode 100644 Misc/NEWS.d/next/Build/2022-06-30-17-18-23.gh-issue-90005.EIOOla.rst delete mode 100644 Misc/NEWS.d/next/Build/2022-07-08-10-28-23.gh-issue-94682.ZtGt_0.rst delete mode 100644 Misc/NEWS.d/next/Build/2022-07-12-13-39-18.gh-issue-94773.koHKm5.rst delete mode 100644 Misc/NEWS.d/next/Build/2022-07-13-10-13-10.gh-issue-94801.3xUB24.rst delete mode 100644 Misc/NEWS.d/next/Build/2022-07-14-02-45-44.gh-issue-94841.lLRTdf.rst delete mode 100644 Misc/NEWS.d/next/Build/2022-07-14-11-13-26.gh-issue-94847.s3Kr5p.rst delete mode 100644 Misc/NEWS.d/next/Build/2022-07-21-09-17-01.gh-issue-95085.E9x2S_.rst delete mode 100644 Misc/NEWS.d/next/Build/2022-07-23-21-39-09.gh-issue-95174.7cYMZR.rst delete mode 100644 Misc/NEWS.d/next/Build/2022-07-25-08-59-35.gh-issue-95174.g8woUW.rst delete mode 100644 Misc/NEWS.d/next/Build/2022-07-25-09-48-43.gh-issue-95145.ZNS3dj.rst delete mode 100644 Misc/NEWS.d/next/Build/2022-07-26-18-13-34.gh-issue-94801.9fREfy.rst delete mode 100644 Misc/NEWS.d/next/Build/2022-08-04-15-29-35.gh-issue-93744.svRuqm.rst delete mode 100644 Misc/NEWS.d/next/Build/2022-08-12-13-06-03.gh-issue-90536.qMpF6p.rst delete mode 100644 Misc/NEWS.d/next/Build/2022-08-15-10-56-07.gh-issue-95973.Bsswsc.rst delete mode 100644 Misc/NEWS.d/next/Build/2022-08-26-11-09-11.gh-issue-84461.Nsdn_R.rst delete mode 100644 Misc/NEWS.d/next/Build/2022-08-26-11-50-03.gh-issue-96269.x_J5h0.rst delete mode 100644 Misc/NEWS.d/next/Build/2022-09-11-14-23-49.gh-issue-96729.W4uBWL.rst delete mode 100644 Misc/NEWS.d/next/Build/2022-09-12-18-34-51.gh-issue-85936.tX4VCU.rst delete mode 100644 Misc/NEWS.d/next/C API/2021-10-05-21-59-43.bpo-45383.TVClgf.rst delete mode 100644 Misc/NEWS.d/next/C API/2022-04-13-16-10-55.gh-issue-59121.-B7mKp.rst delete mode 100644 Misc/NEWS.d/next/C API/2022-05-03-19-35-37.gh-issue-92193.61VoFL.rst delete mode 100644 Misc/NEWS.d/next/C API/2022-05-23-12-31-04.gh-issue-77782.ugC8dn.rst delete mode 100644 Misc/NEWS.d/next/C API/2022-06-03-14-54-41.gh-issue-93466.DDtH0X.rst delete mode 100644 Misc/NEWS.d/next/C API/2022-06-04-13-15-41.gh-issue-93442.4M4NDb.rst delete mode 100644 Misc/NEWS.d/next/C API/2022-06-06-16-04-14.gh-issue-93503.MHJTu8.rst delete mode 100644 Misc/NEWS.d/next/C API/2022-06-10-16-50-27.gh-issue-89546.mX1f10.rst delete mode 100644 Misc/NEWS.d/next/C API/2022-06-10-23-41-48.gh-issue-91731.fhYUQG.rst delete mode 100644 Misc/NEWS.d/next/C API/2022-06-13-21-37-31.gh-issue-91321.DgJFvS.rst delete mode 100644 Misc/NEWS.d/next/C API/2022-06-17-13-41-38.gh-issue-93937.uKVTEh.rst delete mode 100644 Misc/NEWS.d/next/C API/2022-07-12-17-39-32.gh-issue-94731.9CPJNU.rst delete mode 100644 Misc/NEWS.d/next/C API/2022-07-17-18-21-40.gh-issue-94930.gPFGDL.rst delete mode 100644 Misc/NEWS.d/next/C API/2022-07-19-22-37-40.gh-issue-94936.LGlmKv.rst delete mode 100644 Misc/NEWS.d/next/C API/2022-07-25-15-54-27.gh-issue-92678.ziZpxz.rst delete mode 100644 Misc/NEWS.d/next/C API/2022-07-29-10-41-59.gh-issue-95388.aiRSgr.rst delete mode 100644 Misc/NEWS.d/next/C API/2022-07-29-15-24-45.gh-issue-93012.-DdGEy.rst delete mode 100644 Misc/NEWS.d/next/C API/2022-07-31-21-58-27.gh-issue-95504.wy7B1F.rst delete mode 100644 Misc/NEWS.d/next/C API/2022-08-01-16-21-39.gh-issue-93274.QoDHEu.rst delete mode 100644 Misc/NEWS.d/next/C API/2022-08-03-13-01-57.gh-issue-92678.DLwONN.rst delete mode 100644 Misc/NEWS.d/next/C API/2022-08-03-14-39-08.gh-issue-92678.ozFTEx.rst delete mode 100644 Misc/NEWS.d/next/C API/2022-08-08-14-36-31.gh-issue-95781.W_G8YW.rst delete mode 100644 Misc/NEWS.d/next/C API/2022-08-16-16-54-42.gh-issue-95589.6xE1ar.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-01-02-14-53-59.bpo-46142.WayjgT.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-03-22-13-12-27.bpo-47091.tJcy-P.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-04-24-02-22-10.gh-issue-91432.YPJAK6.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-05-11-09-16-54.gh-issue-91102.lenv9h.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-05-17-20-41-43.gh-issue-92858.eIXJTn.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-05-18-18-34-45.gh-issue-92930.kpYPOb.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-05-20-09-25-34.gh-issue-93021.k3Aji2.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-05-23-18-36-07.gh-issue-93143.X1Yqxm.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-05-25-12-30-12.gh-issue-84694.5sjy2w.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-05-30-10-22-46.gh-issue-93345.gi1A4L.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-05-30-14-50-03.gh-issue-93283.XDO2ZQ.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-05-30-15-35-42.gh-issue-93354.RZk8gs.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-05-30-15-51-11.gh-issue-93356.l5wnzW.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-05-30-19-00-38.gh-issue-93359.zXV3A0.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-05-31-16-36-30.gh-issue-93382.Jf6gAj.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-01-17-47-40.gh-issue-93418.24dJuc.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-02-08-28-55.gh-issue-93429.DZTWHx.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-02-23-00-08.gh-issue-93444.m63DIs.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-06-14-28-24.gh-issue-93533.lnC0CC.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-09-09-08-29.gh-issue-93621.-_Pn1d.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-09-19-19-02.gh-issue-93461.5DqP1e.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-10-10-31-18.gh-issue-93662.-7RSC1.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-10-12-03-17.gh-issue-93671.idkQqG.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-10-16-57-35.gh-issue-93678.1WBnHt.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-12-19-31-56.gh-issue-89828.bq02M7.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-13-10-48-09.gh-issue-93516.yJSait.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-13-13-55-34.gh-issue-93516.HILrDl.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-15-11-16-13.gh-issue-93841.06zqX3.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-15-16-45-53.gh-issue-93678.1I_ZT3.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-16-16-53-22.gh-issue-93911.RDwIiK.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-17-16-30-24.gh-issue-93955.LmiAe9.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-18-17-00-33.gh-issue-93911.y286of.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-20-13-48-57.gh-issue-94021.o78q3G.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-23-12-10-39.gh-issue-94163.SqAfQq.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-24-14-06-20.gh-issue-93883.8jVQQ4.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-25-10-19-43.gh-issue-87995.aMDHnp.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-26-14-37-03.gh-issue-94192.ab7tn7.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-28-10-08-06.gh-issue-94262.m-HWUZ.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-28-12-41-17.gh-issue-88116.A7fEl_.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-28-14-20-36.gh-issue-94360.DiEnen.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-29-15-45-04.gh-issue-94329.olUQyk.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-29-22-18-36.gh-issue-91719.3APYYI.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-06-30-15-07-26.gh-issue-94438.btzHSk.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-01-20-00-19.gh-issue-94485.mo5st7.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-06-14-02-26.gh-issue-92228.44Cbly.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-07-21-13-25.gh-issue-94215._Sv9Ms.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-08-11-44-45.gh-issue-93252.i2358c.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-08-16-44-11.gh-issue-94694.VkL2CM.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-14-10-07-53.gh-issue-90699.x3aG9m.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-15-16-15-04.gh-issue-91153.HiBmtt.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-15-22-16-08.gh-issue-94822.zRRzBN.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-15-22-47-44.gh-issue-94893.YiJYcW.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-16-08-14-17.gh-issue-94869.eRwMsX.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-17-15-54-29.gh-issue-91256.z7i7Q5.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-18-04-48-34.gh-issue-94947.df9gUw.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-18-05-10-29.gh-issue-94949.OsZ7_s.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-18-14-19-21.gh-issue-94739.NQJQi7.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-19-04-34-56.gh-issue-94996.dV564A.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-19-09-41-55.gh-issue-94938.xYBlM7.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-19-16-30-59.gh-issue-94036._6Utkm.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-20-13-46-01.gh-issue-91409.dhL8Zo.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-21-17-54-52.gh-issue-95113.NnSLpT.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-21-19-19-20.gh-issue-95060.4xdT1f.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-22-12-53-34.gh-issue-94438.hNqACc.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-23-19-16-25.gh-issue-93351.0Jyvu-.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-24-00-27-47.gh-issue-95185.ghYTZx.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-26-09-31-12.gh-issue-93678.W8vvgT.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-26-12-59-03.gh-issue-95245.GHWczn.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-27-14-05-07.gh-issue-95324.28Q5u7.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-27-14-21-57.gh-issue-90081.HVAS5x.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-28-08-33-31.gh-issue-95355.yN4XVk.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-28-19-07-06.gh-issue-87092.73IPS1.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-31-03-22-58.gh-issue-91146.Y2Hziy.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-31-13-23-12.gh-issue-95150.67FXVo.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-04-18-46-54.gh-issue-95605.FbpCoG.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-11-09-19-55.gh-issue-95876.YpQfoV.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-11-11-01-56.gh-issue-95818.iClLdl.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-12-13-04-25.gh-issue-95922.YNCtyX.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-14-10-04-44.gh-issue-95977.gCTZb9.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-15-11-58-05.gh-issue-90997.bWwV8Q.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-15-12-41-14.gh-issue-95245.N4gOUV.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-15-20-52-41.gh-issue-93678.X7GuIJ.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-15-21-08-11.gh-issue-96005.6eoc8k.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-18-13-47-59.gh-issue-96046.5Hqbka.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-19-06-51-17.gh-issue-96071.mVgPAo.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-20-18-36-40.gh-issue-96143.nh3GFM.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-22-21-33-28.gh-issue-96187.W_6SRG.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-24-14-30-26.gh-issue-96237.msif5f.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-25-10-19-34.gh-issue-96268.AbYrLB.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-26-18-46-32.gh-issue-93554.QEaCcK.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-28-10-51-19.gh-issue-96352.jTLD2d.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-08-29-00-37-21.gh-issue-96364.c-IVyb.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-09-02-16-47-52.gh-issue-93911.vF-GWe.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-09-05-15-07-25.gh-issue-96582.HEsL5s.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-09-05-16-43-44.gh-issue-96569.9lmTCC.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-09-05-19-20-44.gh-issue-96587.bVxhX2.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-09-06-11-19-03.gh-issue-90230.YOtzs5.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-09-06-14-26-36.gh-issue-96612.P4ZbeY.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-09-06-16-22-13.gh-issue-96611.14wIX8.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-09-06-16-54-49.gh-issue-96572.8DRsaW.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-09-07-12-02-11.gh-issue-96636.YvN-K6.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-09-07-13-38-37.gh-issue-96641.wky0Fc.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-09-09-13-13-27.gh-issue-96678.vMxi9F.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-09-11-00-37-50.gh-issue-90751.VE8-zf.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-09-11-12-43-43.gh-issue-96751.anRT6a.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-09-12-15-15-04.gh-issue-90997.sZO8c9.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-09-12-16-58-22.gh-issue-96754.0GRme5.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-09-13-12-06-46.gh-issue-96678.NqGFyb.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-09-16-19-02-40.gh-issue-95778.cJmnst.rst delete mode 100644 Misc/NEWS.d/next/Documentation/2022-03-30-17-56-01.bpo-47161.gesHfS.rst delete mode 100644 Misc/NEWS.d/next/Documentation/2022-05-18-23-58-26.gh-issue-92240.bHvYiz.rst delete mode 100644 Misc/NEWS.d/next/Documentation/2022-05-26-11-33-23.gh-issue-86438.kEGGmK.rst delete mode 100644 Misc/NEWS.d/next/Documentation/2022-05-26-14-51-25.gh-issue-88831.5Cccr5.rst delete mode 100644 Misc/NEWS.d/next/Documentation/2022-05-29-21-22-54.gh-issue-86986.lFXw8j.rst delete mode 100644 Misc/NEWS.d/next/Documentation/2022-06-15-12-12-49.gh-issue-87260.epyI7D.rst delete mode 100644 Misc/NEWS.d/next/Documentation/2022-06-16-10-10-59.gh-issue-61162.1ypkG8.rst delete mode 100644 Misc/NEWS.d/next/Documentation/2022-06-19-18-18-22.gh-issue-86128.39DDTD.rst delete mode 100644 Misc/NEWS.d/next/Documentation/2022-07-07-08-42-05.gh-issue-94321.pmCIPb.rst delete mode 100644 Misc/NEWS.d/next/Documentation/2022-07-29-09-04-02.gh-issue-95415.LKTyw6.rst delete mode 100644 Misc/NEWS.d/next/Documentation/2022-07-29-23-02-19.gh-issue-95451.-tgB93.rst delete mode 100644 Misc/NEWS.d/next/Documentation/2022-07-30-00-23-11.gh-issue-95454.we7AFm.rst delete mode 100644 Misc/NEWS.d/next/Documentation/2022-08-03-13-35-08.gh-issue-91207.eJ4pPf.rst delete mode 100644 Misc/NEWS.d/next/Documentation/2022-08-13-20-34-51.gh-issue-95957.W9ZZAx.rst delete mode 100644 Misc/NEWS.d/next/Documentation/2022-08-19-17-07-45.gh-issue-96098.nDp43u.rst delete mode 100644 Misc/NEWS.d/next/Documentation/2022-09-01-17-03-04.gh-issue-96432.1EJ1-4.rst delete mode 100644 Misc/NEWS.d/next/IDLE/2022-07-28-18-56-57.gh-issue-89610.hcosiM.rst delete mode 100644 Misc/NEWS.d/next/IDLE/2022-07-29-11-08-52.gh-issue-95411.dazlqH.rst delete mode 100644 Misc/NEWS.d/next/IDLE/2022-07-30-15-10-39.gh-issue-95471.z3scVG.rst delete mode 100644 Misc/NEWS.d/next/IDLE/2022-07-31-22-15-14.gh-issue-95511.WX6PmB.rst delete mode 100644 Misc/NEWS.d/next/IDLE/2022-08-01-23-31-48.gh-issue-95191.U7vryB.rst delete mode 100644 Misc/NEWS.d/next/IDLE/2022-08-04-20-07-51.gh-issue-65802.xnThWe.rst delete mode 100644 Misc/NEWS.d/next/Library/2017-07-31-13-35-28.bpo-26253.8v_sCs.rst delete mode 100644 Misc/NEWS.d/next/Library/2018-09-23-07-47-29.bpo-32990.2FVVTU.rst delete mode 100644 Misc/NEWS.d/next/Library/2018-09-28-22-18-03.bpo-34828.5Zyi_S.rst delete mode 100644 Misc/NEWS.d/next/Library/2021-08-27-18-07-35.bpo-44173.oW92Ev.rst delete mode 100644 Misc/NEWS.d/next/Library/2021-12-27-15-32-15.bpo-45924.0ZpHX2.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-01-03-15-07-06.bpo-46197.Z0djv6.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-02-05-18-46-54.bpo-46642.YI6nHQ.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-02-15-12-40-48.bpo-46755.zePJfx.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-02-21-01-37-00.bpo-42777.nWK3E6.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-03-16-14-24-14.bpo-47025.qtT3CE.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-03-19-04-41-42.bpo-47063.nwRfUo.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-04-01-09-43-54.bpo-32547.NIUiNC.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-04-01-12-35-44.gh-issue-90005.pvaLHQ.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-04-03-11-25-02.bpo-41287.8CTdwf.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-04-08-22-12-11.bpo-47231.lvyglt.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-04-11-16-55-41.gh-issue-91456.DK3KKl.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-04-12-18-05-40.gh-issue-91447.N_Fs4H.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-04-15-17-38-55.gh-issue-91577.Ah7cLL.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-04-24-22-26-45.gh-issue-81790.M5Rvpm.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-05-08-18-51-14.gh-issue-89336.TL6ip7.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-05-09-21-31-41.gh-issue-92445.tJosdm.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-05-09-22-27-11.gh-issue-92591.V7RCk2.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-05-10-16-30-40.gh-issue-90385.1_wBRQ.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-05-12-15-19-00.gh-issue-92734.d0wjDt.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-05-14-09-01-38.gh-issue-89325.ys-2BZ.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-05-16-14-35-39.gh-issue-92839.owSMyo.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-05-17-06-27-39.gh-issue-92869.t8oBkw.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-05-19-17-49-58.gh-issue-92932.o2peTh.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-05-19-22-34-42.gh-issue-92986.e6uKxj.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-05-22-16-08-01.gh-issue-89973.jc-Q4g.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-05-24-11-19-04.gh-issue-74696.-cnf-A.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-05-26-08-41-34.gh-issue-93243.uw6x5z.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-05-26-09-24-41.gh-issue-93162.W1VuhU.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-05-26-23-10-55.gh-issue-93156.4XfDVN.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-05-27-10-52-06.gh-issue-85308.K6r-tJ.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-05-27-13-18-18.gh-issue-93297.e2zuHz.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-05-27-22-17-11.gh-issue-88123.mkYl5q.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-05-28-08-02-55.gh-issue-93312.HY0Uzj.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-05-30-21-42-50.gh-issue-83658.01Ntx0.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-05-31-14-58-40.gh-issue-93353.9Hvm6o.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-01-11-24-13.gh-issue-91162.NxvU_u.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-02-08-40-58.gh-issue-91810.Gtk44w.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-03-22-13-28.gh-issue-93370.tjfu9L.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-04-00-11-54.gh-issue-93475.vffFw1.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-05-22-22-42.gh-issue-93421.43UO_8.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-06-12-58-27.gh-issue-79579.e8rB-M.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-06-13-19-43.gh-issue-93521._vE8m9.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-07-14-53-46.gh-issue-90549.T4FMKY.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-08-20-11-02.gh-issue-90494.LIZT85.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-09-10-12-55.gh-issue-90473.683m_C.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-09-14-44-21.gh-issue-93626.sfghs46.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-09-17-15-26.gh-issue-91389.OE4vS5.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-11-13-32-17.gh-issue-79512.A1KTDr.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-15-21-20-02.gh-issue-93820.FAMLY8.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-15-21-28-16.gh-issue-83499.u3DQJ-.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-15-21-35-11.gh-issue-91404.39TZzW.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-16-09-24-50.gh-issue-93847.kuv8bN.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-16-11-16-53.gh-issue-93820.00X0Y5.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-17-12-02-30.gh-issue-93858.R49ARc.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-17-16-00-55.gh-issue-93963.8YYZ-2.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-18-15-06-54.gh-issue-93973.4y6UQT.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-20-23-14-43.gh-issue-94028.UofEcX.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-21-11-40-31.gh-issue-84753.FW1pxO.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-22-11-16-11.gh-issue-94101.V9vDG8.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-23-13-12-05.gh-issue-91742.sNytVX.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-23-14-35-10.gh-issue-94169.jeba90.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-24-09-41-41.gh-issue-94196.r2KyfS.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-24-10-18-59.gh-issue-94199.kYOo8g.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-24-10-29-19.gh-issue-94199.pfehmz.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-24-10-39-56.gh-issue-94199.MIuckY.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-24-14-25-26.gh-issue-94214.03pXR5.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-24-17-11-33.gh-issue-94199.7releN.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-24-18-20-42.gh-issue-94226.8ZL4Fm.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-24-19-16-09.gh-issue-93096.r1_oIc.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-24-19-23-59.gh-issue-94207.VhS1eS.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-24-19-40-40.gh-issue-93096.3RlK2d.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-24-20-00-57.gh-issue-94216.hxnQPu.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-25-13-38-53.gh-issue-93259.FAGw-2.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-25-16-27-02.gh-issue-94254.beP16v.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-25-23-44-44.gh-issue-90016.EB409s.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-26-10-59-15.gh-issue-89988.K8rnmt.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-27-10-33-18.gh-issue-94318.jR4_QV.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-28-00-24-48.gh-issue-94352.JY1Ayt.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-28-14-29-21.gh-issue-94379.RrgKfh.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-28-14-41-22.gh-issue-94383.CXnquo.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-29-04-42-56.gh-issue-94398.YOq_bJ.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-06-29-09-48-37.gh-issue-92336.otA6c6.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-02-19-46-30.gh-issue-94510.xOatDC.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-03-16-41-03.gh-issue-94382.zuVZeM.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-05-17-22-00.gh-issue-94343.kf4H5r.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-06-06-02-02.gh-issue-93896.vIgWGr.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-06-14-45-12.gh-issue-93910.iZcp67.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-06-14-57-33.gh-issue-94619.PRqKVX.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-06-16-01-08.gh-issue-94607.Q6RYfz.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-06-21-24-03.gh-issue-92546.s5Upkh.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-06-22-41-51.gh-issue-94309._XswsX.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-07-15-46-55.gh-issue-94637.IYEiUM.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-08-17-49-12.gh-issue-87822.F9dzkf.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-09-08-55-04.gh-issue-74116.0XwYC1.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-09-15-17-02.gh-issue-81620.L0O_bV.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-11-10-41-48.gh-issue-94736.EbsgeK.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-14-00-43-52.gh-issue-94821.e17ghU.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-15-08-13-51.gh-issue-94857.9_KvZJ.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-19-15-37-11.gh-issue-95005.iRmZ74.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-20-00-23-58.gh-issue-77617.XGaqSQ.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-20-22-49-48.gh-issue-95066.TuCu0E.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-21-19-55-49.gh-issue-95105.BIX2Km.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-21-22-59-22.gh-issue-95109.usxA9r.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-22-00-58-49.gh-issue-95077.4Z6CNC.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-22-17-19-57.gh-issue-93157.RXByAk.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-22-21-18-17.gh-issue-95132.n9anlw.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-23-10-42-05.gh-issue-95166.xw6p3C.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-23-10-50-05.gh-issue-93899.VT34A5.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-24-09-15-35.gh-issue-95194.ERVmqG.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-24-12-00-06.gh-issue-95199.-5A64k.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-24-12-59-02.gh-issue-95087.VvqXkN.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-24-18-00-42.gh-issue-95097.lu5qNf.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-25-15-45-06.gh-issue-95231.i807-g.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-27-11-35-45.gh-issue-95045.iysT-Q.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-27-19-43-07.gh-issue-95339.NuVQ68.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-28-17-14-38.gh-issue-95385.6YlsDI.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-07-29-20-58-37.gh-issue-94909.YjMusj.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-08-03-16-52-32.gh-issue-95289.FMnHlV.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-08-03-21-01-17.gh-issue-95609.xxyjyX.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-08-07-14-56-23.gh-issue-95149.U0c6Ib.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-08-08-01-42-11.gh-issue-95704.MOPFfX.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-08-10-11-54-04.gh-issue-95804.i5FCFK.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-08-10-17-34-07.gh-issue-95861.qv-T5s.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-08-11-03-16-48.gh-issue-95865.0IOkFP.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-08-11-18-22-29.gh-issue-95736.LzRZXe.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-08-11-18-52-17.gh-issue-95899._Bi4uG.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-08-14-18-59-54.gh-issue-69142.6is5Pq.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-08-18-14-53-53.gh-issue-95463.GpP05c.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-08-19-10-19-32.gh-issue-96019.b7uAVP.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-08-19-18-21-01.gh-issue-96125.ODcF1Y.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-08-20-10-31-01.gh-issue-96052.a6FhaD.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-08-20-12-56-15.gh-issue-96145.8ah3pE.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-08-22-13-54-20.gh-issue-96175.bH7zGU.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-08-22-18-42-17.gh-issue-96159.3bFU39.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-08-23-13-30-30.gh-issue-96172.7WTHer.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-08-27-14-38-49.gh-issue-90467.VOOB0p.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-08-27-21-26-52.gh-issue-96349.XyYLlO.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-08-29-07-04-03.gh-issue-89258.ri7ncj.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-08-29-15-28-39.gh-issue-96385.uLRTsf.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-08-29-16-54-36.gh-issue-96388.dCpJcu.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-08-30-11-46-36.gh-issue-95987.CV7_u4.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-08-31-11-10-21.gh-issue-96079.uqrXdJ.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-09-01-13-54-38.gh-issue-96465.0IJmrH.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-09-03-18-39-05.gh-issue-96538.W156-D.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-09-04-12-32-52.gh-issue-68163.h6TJCc.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-09-07-22-49-37.gh-issue-96652.YqOKxI.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-09-08-20-12-48.gh-issue-46412.r_cfTh.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-09-13-15-12-31.gh-issue-96734.G08vjz.rst delete mode 100644 Misc/NEWS.d/next/Library/2022-09-15-00-37-33.gh-issue-96741.4b6czN.rst delete mode 100644 Misc/NEWS.d/next/Security/2022-04-27-18-25-30.gh-issue-68966.gjS8zs.rst delete mode 100644 Misc/NEWS.d/next/Security/2022-05-19-08-53-07.gh-issue-92888.TLtR9W.rst delete mode 100644 Misc/NEWS.d/next/Security/2022-06-03-12-52-53.gh-issue-79096.YVoxgC.rst delete mode 100644 Misc/NEWS.d/next/Security/2022-06-15-20-09-23.gh-issue-87389.QVaC3f.rst delete mode 100644 Misc/NEWS.d/next/Security/2022-08-07-16-53-38.gh-issue-95778.ch010gps.rst delete mode 100644 Misc/NEWS.d/next/Tests/2022-03-14-23-28-17.bpo-47016.K-t2QX.rst delete mode 100644 Misc/NEWS.d/next/Tests/2022-05-25-23-00-35.gh-issue-92886.Y-vrWj.rst delete mode 100644 Misc/NEWS.d/next/Tests/2022-05-25-23-07-15.gh-issue-92886.Aki63_.rst delete mode 100644 Misc/NEWS.d/next/Tests/2022-06-03-12-22-44.gh-issue-89858.ftBvjE.rst delete mode 100644 Misc/NEWS.d/next/Tests/2022-06-03-14-18-37.gh-issue-90473.7iXVRK.rst delete mode 100644 Misc/NEWS.d/next/Tests/2022-06-03-16-26-04.gh-issue-57539.HxWgYO.rst delete mode 100644 Misc/NEWS.d/next/Tests/2022-06-04-12-05-31.gh-issue-90473.RSpjF7.rst delete mode 100644 Misc/NEWS.d/next/Tests/2022-06-05-10-16-45.gh-issue-90473.QMu7A8.rst delete mode 100644 Misc/NEWS.d/next/Tests/2022-06-08-14-17-59.gh-issue-93575.Xb2LNB.rst delete mode 100644 Misc/NEWS.d/next/Tests/2022-06-08-22-32-56.gh-issue-93616.e5Kkx2.rst delete mode 100644 Misc/NEWS.d/next/Tests/2022-06-10-21-18-14.gh-issue-84461.9TAb26.rst delete mode 100644 Misc/NEWS.d/next/Tests/2022-06-16-17-50-58.gh-issue-93353.JdpATx.rst delete mode 100644 Misc/NEWS.d/next/Tests/2022-06-16-21-38-18.gh-issue-93852.U_Hl6s.rst delete mode 100644 Misc/NEWS.d/next/Tests/2022-06-17-13-27-21.gh-issue-93884.5pvPvl.rst delete mode 100644 Misc/NEWS.d/next/Tests/2022-06-17-13-55-11.gh-issue-93957.X4ovYV.rst delete mode 100644 Misc/NEWS.d/next/Tests/2022-06-17-15-20-09.gh-issue-93951.CW1Vv4.rst delete mode 100644 Misc/NEWS.d/next/Tests/2022-06-20-23-04-52.gh-issue-93839.OE3Ybk.rst delete mode 100644 Misc/NEWS.d/next/Tests/2022-06-21-17-37-46.gh-issue-54781.BjVAVg.rst delete mode 100644 Misc/NEWS.d/next/Tests/2022-06-27-08-53-40.gh-issue-94315.MoZT9t.rst delete mode 100644 Misc/NEWS.d/next/Tests/2022-06-27-21-27-20.gh-issue-94208.VR6HX-.rst delete mode 100644 Misc/NEWS.d/next/Tests/2022-07-05-17-53-13.gh-issue-91330.Qys5IL.rst delete mode 100644 Misc/NEWS.d/next/Tests/2022-07-08-12-22-00.gh-issue-94675.IiTs5f.rst delete mode 100644 Misc/NEWS.d/next/Tests/2022-07-24-16-28-31.gh-issue-93963.UB9azu.rst delete mode 100644 Misc/NEWS.d/next/Tests/2022-07-24-17-24-42.gh-issue-95218.zfBLtu.rst delete mode 100644 Misc/NEWS.d/next/Tests/2022-07-24-20-19-05.gh-issue-95212.fHiU4e.rst delete mode 100644 Misc/NEWS.d/next/Tests/2022-07-26-15-22-19.gh-issue-95280.h8HvbP.rst delete mode 100644 Misc/NEWS.d/next/Tests/2022-08-05-09-57-43.gh-issue-95573.edMdQB.rst delete mode 100644 Misc/NEWS.d/next/Tests/2022-08-22-14-59-42.gh-issue-95243.DeD66V.rst delete mode 100644 Misc/NEWS.d/next/Tests/2022-09-08-18-31-26.gh-issue-96624.5cANM1.rst delete mode 100644 Misc/NEWS.d/next/Tools-Demos/2022-06-19-14-56-33.gh-issue-86087.R8MkRy.rst delete mode 100644 Misc/NEWS.d/next/Tools-Demos/2022-06-29-22-47-11.gh-issue-94430.hdov8L.rst delete mode 100644 Misc/NEWS.d/next/Tools-Demos/2022-07-04-01-37-42.gh-issue-94538.1rgy1Y.rst delete mode 100644 Misc/NEWS.d/next/Tools-Demos/2022-07-04-10-02-02.gh-issue-93939.U6sW6H.rst delete mode 100644 Misc/NEWS.d/next/Tools-Demos/2022-08-10-17-08-43.gh-issue-95853.HCjC2m.rst delete mode 100644 Misc/NEWS.d/next/Tools-Demos/2022-08-29-17-25-13.gh-issue-95853.Ce17cT.rst delete mode 100644 Misc/NEWS.d/next/Windows/2022-03-20-15-47-35.bpo-42658.16eXtb.rst delete mode 100644 Misc/NEWS.d/next/Windows/2022-05-28-19-36-13.gh-issue-43414.NGMJ3g.rst delete mode 100644 Misc/NEWS.d/next/Windows/2022-06-15-01-03-52.gh-issue-93824.mR4mxu.rst delete mode 100644 Misc/NEWS.d/next/Windows/2022-06-20-22-32-14.gh-issue-94018.bycC3A.rst delete mode 100644 Misc/NEWS.d/next/Windows/2022-07-12-20-45-43.gh-issue-94772.uNMmdG.rst delete mode 100644 Misc/NEWS.d/next/Windows/2022-07-16-16-18-32.gh-issue-90844.vwITT3.rst delete mode 100644 Misc/NEWS.d/next/Windows/2022-07-26-20-33-12.gh-issue-95285.w6fa22.rst delete mode 100644 Misc/NEWS.d/next/Windows/2022-07-28-20-21-38.gh-issue-95359.ywMrgu.rst delete mode 100644 Misc/NEWS.d/next/Windows/2022-07-30-14-18-33.gh-issue-95445.mjrTaq.rst delete mode 100644 Misc/NEWS.d/next/Windows/2022-08-03-00-49-46.gh-issue-94399.KvxHc0.rst delete mode 100644 Misc/NEWS.d/next/Windows/2022-08-04-01-12-27.gh-issue-95587.Fvdv5q.rst delete mode 100644 Misc/NEWS.d/next/Windows/2022-08-04-18-47-54.gh-issue-95656.VJ1d13.rst delete mode 100644 Misc/NEWS.d/next/Windows/2022-08-10-22-46-48.gh-issue-95733.2_urOp.rst delete mode 100644 Misc/NEWS.d/next/Windows/2022-08-26-00-11-18.gh-issue-89545.zmJMY_.rst delete mode 100644 Misc/NEWS.d/next/Windows/2022-08-30-12-01-51.gh-issue-94781.OxO-Gr.rst delete mode 100644 Misc/NEWS.d/next/Windows/2022-09-05-18-32-47.gh-issue-96559.561sUd.rst delete mode 100644 Misc/NEWS.d/next/Windows/2022-09-07-00-11-33.gh-issue-96577.kV4K_1.rst delete mode 100644 Misc/rhel7/README.md delete mode 100644 Misc/rhel7/openssl.pc delete mode 100644 Misc/rhel7/tcl.pc delete mode 100644 Misc/rhel7/tk.pc delete mode 100644 Modules/_testcapi/README.txt delete mode 100644 Modules/_testcapi/clinic/vectorcall.c.h delete mode 100644 Modules/_testcapi/heaptype.c delete mode 100644 Modules/_testcapi/parts.h delete mode 100644 Modules/_testcapi/unicode.c delete mode 100644 Modules/_testcapi/vectorcall.c delete mode 100644 Modules/_testcapi/vectorcall_limited.c delete mode 100644 Modules/clinic/_testinternalcapi.c.h create mode 100644 Objects/accu.c delete mode 100644 Objects/asm_trampoline.S delete mode 100644 Objects/object_layout.md delete mode 100644 Objects/object_layout_312.gv delete mode 100644 Objects/object_layout_312.png delete mode 100644 Objects/object_layout_full_312.gv delete mode 100644 Objects/object_layout_full_312.png delete mode 100644 Objects/perf_trampoline.c delete mode 100644 PC/_wmimodule.cpp delete mode 100644 PC/clinic/_wmimodule.cpp.h create mode 100644 PC/empty.c create mode 100644 PC/testpy.py delete mode 100644 PCbuild/_wmi.vcxproj delete mode 100644 PCbuild/_wmi.vcxproj.filters delete mode 100644 Python/ceval_gil.c create mode 100644 Python/ceval_gil.h delete mode 100644 Python/thread_pthread_stubs.h delete mode 100644 Tools/c-analyzer/cpython/_builtin_types.py delete mode 100644 Tools/scripts/check_extension_modules.py create mode 100755 Tools/scripts/parseentities.py delete mode 100755 Tools/scripts/verify_ensurepip_wheels.py delete mode 100644 Tools/unicode/genmap_tchinese.py delete mode 100644 Tools/wasm/.editorconfig delete mode 100755 Tools/wasm/wasi-env delete mode 100755 Tools/wasm/wasm_build.py create mode 100644 setup.py diff --git a/.azure-pipelines/ci.yml b/.azure-pipelines/ci.yml index bf164d19ef2234..9e9ce2108ed818 100644 --- a/.azure-pipelines/ci.yml +++ b/.azure-pipelines/ci.yml @@ -57,7 +57,7 @@ jobs: variables: testRunTitle: '$(build.sourceBranchName)-linux' testRunPlatform: linux - openssl_version: 1.1.1q + openssl_version: 1.1.1n steps: - template: ./posix-steps.yml @@ -83,7 +83,7 @@ jobs: variables: testRunTitle: '$(Build.SourceBranchName)-linux-coverage' testRunPlatform: linux-coverage - openssl_version: 1.1.1q + openssl_version: 1.1.1n steps: - template: ./posix-steps.yml diff --git a/.azure-pipelines/find-tools.yml b/.azure-pipelines/find-tools.yml new file mode 100644 index 00000000000000..9ad0f5622bb31e --- /dev/null +++ b/.azure-pipelines/find-tools.yml @@ -0,0 +1,26 @@ +# Locate a set of the tools used for builds + +steps: + - template: windows-release/find-sdk.yml + parameters: + toolname: 'signtool.exe' + + - powershell: | + $vcvarsall = (& "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" ` + -prerelease ` + -latest ` + -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 ` + -find VC\Auxiliary\Build\vcvarsall.bat) + Write-Host "Found vcvarsall at $vcvarsall" + Write-Host "##vso[task.setVariable variable=vcvarsall]$vcvarsall" + displayName: 'Find vcvarsall.bat' + + - powershell: | + $msbuild = (& "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" ` + -prerelease ` + -latest ` + -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 ` + -find MSBuild\Current\Bin\msbuild.exe) + Write-Host "Found MSBuild at $msbuild" + Write-Host "##vso[task.setVariable variable=msbuild]$msbuild" + displayName: 'Find MSBuild' diff --git a/.azure-pipelines/libffi-build.yml b/.azure-pipelines/libffi-build.yml new file mode 100644 index 00000000000000..dd26ff215a807a --- /dev/null +++ b/.azure-pipelines/libffi-build.yml @@ -0,0 +1,86 @@ +name: $(SourceTag)_$(Date:yyyyMMdd)$(Rev:.rr) + +variables: + IntDir: '$(Build.BinariesDirectory)' + OutDir: '$(Build.ArtifactStagingDirectory)' + + # MUST BE SET AT QUEUE TIME + # SigningCertificate: 'Python Software Foundation' + # SourcesRepo: 'https://github.com/python/cpython-source-deps' + # SourceTag: 'libffi-3.4.2' + +jobs: +- job: Build_LibFFI + displayName: LibFFI + pool: + vmImage: windows-latest + + workspace: + clean: all + + steps: + - checkout: none + + - template: ./find-tools.yml + + - powershell: | + mkdir -Force "$(IntDir)\script" + iwr "https://github.com/python/cpython/raw/main/PCbuild/prepare_libffi.bat" ` + -outfile "$(IntDir)\script\prepare_libffi.bat" + displayName: 'Download build script' + + - powershell: | + git clone $(SourcesRepo) -b $(SourceTag) --depth 1 -c core.autocrlf=false -c core.eol=lf . + displayName: 'Check out LibFFI sources' + + - script: 'prepare_libffi.bat --install-cygwin' + workingDirectory: '$(IntDir)\script' + displayName: 'Install Cygwin and build' + env: + VCVARSALL: '$(vcvarsall)' + LIBFFI_SOURCE: '$(Build.SourcesDirectory)' + LIBFFI_OUT: '$(OutDir)' + + - powershell: | + if ((gci *\*.dll).Count -lt 4) { + Write-Error "Did not generate enough DLL files" + } + if ((gci *\Include\ffi.h).Count -lt 4) { + Write-Error "Did not generate enough include files" + } + failOnStderr: true + workingDirectory: '$(OutDir)' + displayName: 'Verify files were created' + + - publish: '$(OutDir)' + artifact: 'unsigned' + displayName: 'Publish unsigned build' + +- job: Sign_LibFFI + displayName: Sign LibFFI + dependsOn: Build_LibFFI + pool: + name: 'Windows Release' + + workspace: + clean: all + + steps: + - checkout: none + - download: current + artifact: unsigned + + - template: ./find-tools.yml + + - powershell: | + signtool sign /q /a ` + /n "Python Software Foundation" ` + /fd sha256 ` + /tr http://timestamp.digicert.com/ /td sha256 ` + /d "LibFFI for Python" ` + (gci "$(Pipeline.Workspace)\unsigned\*.dll" -r) + displayName: 'Sign files' + + - publish: '$(Pipeline.Workspace)\unsigned' + artifact: 'libffi' + displayName: 'Publish libffi' diff --git a/.azure-pipelines/openssl-build.yml b/.azure-pipelines/openssl-build.yml new file mode 100644 index 00000000000000..8aab7ea0b94193 --- /dev/null +++ b/.azure-pipelines/openssl-build.yml @@ -0,0 +1,110 @@ +name: $(SourceTag)_$(Date:yyyyMMdd)$(Rev:.rr) + +variables: + IntDir: '$(Build.BinariesDirectory)' + OutDir: '$(Build.ArtifactStagingDirectory)' + + # MUST BE SET AT QUEUE TIME + # SigningCertificate: 'Python Software Foundation' + # SourcesRepo: 'https://github.com/python/cpython-source-deps' + # SourceTag: 'openssl-1.1.1k' + +jobs: +- job: Build_SSL + displayName: OpenSSL + pool: + name: 'Windows Release' + #vmImage: windows-latest + + strategy: + matrix: + win32: + Platform: 'win32' + VCPlatform: 'amd64_x86' + OpenSSLPlatform: 'VC-WIN32 no-asm' + amd64: + Platform: 'amd64' + VCPlatform: 'amd64' + OpenSSLPlatform: 'VC-WIN64A-masm' + arm32: + Platform: 'arm32' + VCPlatform: 'amd64_arm' + OpenSSLPlatform: 'VC-WIN32-ARM' + arm64: + Platform: 'arm64' + VCPlatform: 'amd64_arm64' + OpenSSLPlatform: 'VC-WIN64-ARM' + + workspace: + clean: all + + steps: + - checkout: none + + - template: ./find-tools.yml + + - powershell: | + git clone $(SourcesRepo) -b $(SourceTag) --depth 1 . + displayName: 'Check out OpenSSL sources' + + - powershell: | + $f = gi ms\uplink.c + $c1 = gc $f + $c2 = $c1 -replace '\(\(h = GetModuleHandle\(NULL\)\) == NULL\)', '((h = GetModuleHandleA("_ssl.pyd")) == NULL) if ((h = GetModuleHandleA("_ssl_d.pyd")) == NULL) if ((h = GetModuleHandle(NULL)) == NULL /*patched*/)' + if ($c2 -ne $c1) { + $c2 | Out-File $f -Encoding ASCII + } else { + Write-Host '##warning Failed to patch uplink.c' + } + displayName: 'Apply uplink.c patch' + + - script: | + call "$(vcvarsall)" $(VCPlatform) + perl "$(Build.SourcesDirectory)\Configure" $(OpenSSLPlatform) + nmake + workingDirectory: '$(IntDir)' + displayName: 'Build OpenSSL' + + - script: | + call "$(vcvarsall)" $(VCPlatform) + signtool sign /q /a /n "$(SigningCertificate)" /fd sha256 /tr http://timestamp.digicert.com/ /td sha256 /d "OpenSSL for Python" *.dll + workingDirectory: '$(IntDir)' + displayName: 'Sign OpenSSL Build' + condition: and(succeeded(), variables['SigningCertificate']) + + - task: CopyFiles@2 + displayName: 'Copy built libraries for upload' + inputs: + SourceFolder: '$(IntDir)' + Contents: | + lib*.dll + lib*.pdb + lib*.lib + include\openssl\*.h + TargetFolder: '$(OutDir)' + + - task: CopyFiles@2 + displayName: 'Copy header files for upload' + inputs: + SourceFolder: '$(Build.SourcesDirectory)' + Contents: | + include\openssl\* + TargetFolder: '$(OutDir)' + + - task: CopyFiles@2 + displayName: 'Copy applink files for upload' + inputs: + SourceFolder: '$(Build.SourcesDirectory)\ms' + Contents: applink.c + TargetFolder: '$(OutDir)\include' + + - task: CopyFiles@2 + displayName: 'Copy LICENSE for upload' + inputs: + SourceFolder: '$(Build.SourcesDirectory)' + Contents: LICENSE + TargetFolder: '$(OutDir)' + + - publish: '$(OutDir)' + artifact: '$(Platform)' + displayName: 'Publishing $(Platform)' diff --git a/.azure-pipelines/pr.yml b/.azure-pipelines/pr.yml index 3cbd19fda982f1..c3ecc670572802 100644 --- a/.azure-pipelines/pr.yml +++ b/.azure-pipelines/pr.yml @@ -57,7 +57,7 @@ jobs: variables: testRunTitle: '$(system.pullRequest.TargetBranch)-linux' testRunPlatform: linux - openssl_version: 1.1.1q + openssl_version: 1.1.1n steps: - template: ./posix-steps.yml @@ -83,7 +83,7 @@ jobs: variables: testRunTitle: '$(Build.SourceBranchName)-linux-coverage' testRunPlatform: linux-coverage - openssl_version: 1.1.1q + openssl_version: 1.1.1n steps: - template: ./posix-steps.yml diff --git a/.azure-pipelines/tcltk-build.yml b/.azure-pipelines/tcltk-build.yml new file mode 100644 index 00000000000000..f9e50d3711a460 --- /dev/null +++ b/.azure-pipelines/tcltk-build.yml @@ -0,0 +1,71 @@ +name: tcl$(TkSourceTag)_$(Date:yyyyMMdd)$(Rev:.rr) + +variables: + IntDir: '$(Build.BinariesDirectory)\obj' + ExternalsDir: '$(Build.BinariesDirectory)\externals' + OutDir: '$(Build.ArtifactStagingDirectory)' + Configuration: 'Release' + + # MUST BE SET AT QUEUE TIME + # SigningCertificate: 'Python Software Foundation' + # SourcesRepo: 'https://github.com/python/cpython-source-deps' + # TclSourceTag: 'tcl-core-8.6.12.0' + # TkSourceTag: 'tk-8.6.12.0' + # TixSourceTag: 'tix-8.4.3.6' + +jobs: +- job: Build_TclTk + displayName: 'Tcl/Tk' + pool: + name: 'Windows Release' + #vmImage: windows-latest + + workspace: + clean: all + + steps: + - template: ./find-tools.yml + + - powershell: | + git clone $(SourcesRepo) -b $(TclSourceTag) --depth 1 "$(ExternalsDir)\$(TclSourceTag)" + displayName: 'Check out Tcl sources' + + - powershell: | + git clone $(SourcesRepo) -b $(TkSourceTag) --depth 1 "$(ExternalsDir)\$(TkSourceTag)" + displayName: 'Check out Tk sources' + + - powershell: | + git clone $(SourcesRepo) -b $(TixSourceTag) --depth 1 "$(ExternalsDir)\$(TixSourceTag)" + displayName: 'Check out Tix sources' + + # This msbuild.rsp file will be used by the build to forcibly override these variables + - powershell: | + del -Force -EA 0 msbuild.rsp + "/p:IntDir=$(IntDir)\" >> msbuild.rsp + "/p:ExternalsDir=$(ExternalsDir)\" >> msbuild.rsp + "/p:tclDir=$(ExternalsDir)\$(TclSourceTag)\" >> msbuild.rsp + "/p:tkDir=$(ExternalsDir)\$(TkSourceTag)\" >> msbuild.rsp + "/p:tixDir=$(ExternalsDir)\$(TixSourceTag)\" >> msbuild.rsp + displayName: 'Generate msbuild.rsp' + + - powershell: | + & "$(msbuild)" PCbuild\tcl.vcxproj "@msbuild.rsp" /p:Platform=Win32 /p:tcltkDir="$(OutDir)\win32" + & "$(msbuild)" PCbuild\tk.vcxproj "@msbuild.rsp" /p:Platform=Win32 /p:tcltkDir="$(OutDir)\win32" + & "$(msbuild)" PCbuild\tix.vcxproj "@msbuild.rsp" /p:Platform=Win32 /p:tcltkDir="$(OutDir)\win32" + displayName: 'Build for win32' + + - powershell: | + & "$(msbuild)" PCbuild\tcl.vcxproj "@msbuild.rsp" /p:Platform=x64 /p:tcltkDir="$(OutDir)\amd64" + & "$(msbuild)" PCbuild\tk.vcxproj "@msbuild.rsp" /p:Platform=x64 /p:tcltkDir="$(OutDir)\amd64" + & "$(msbuild)" PCbuild\tix.vcxproj "@msbuild.rsp" /p:Platform=x64 /p:tcltkDir="$(OutDir)\amd64" + displayName: 'Build for amd64' + + - powershell: | + & "$(msbuild)" PCbuild\tcl.vcxproj "@msbuild.rsp" /p:Platform=ARM64 /p:tcltkDir="$(OutDir)\arm64" + & "$(msbuild)" PCbuild\tk.vcxproj "@msbuild.rsp" /p:Platform=ARM64 /p:tcltkDir="$(OutDir)\arm64" + & "$(msbuild)" PCbuild\tix.vcxproj "@msbuild.rsp" /p:Platform=ARM64 /p:tcltkDir="$(OutDir)\arm64" + displayName: 'Build for arm64' + + - publish: '$(OutDir)' + artifact: 'tcltk' + displayName: 'Publishing tcltk' diff --git a/.gitattributes b/.gitattributes index 79f7b712aa459e..6da587a4c6ea5a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -28,8 +28,8 @@ Lib/test/cjkencodings/* noeol Lib/test/coding20731.py noeol Lib/test/decimaltestdata/*.decTest noeol Lib/test/test_email/data/*.txt noeol -Lib/test/test_importlib/resources/data01/* noeol -Lib/test/test_importlib/resources/namespacedata01/* noeol +Lib/test/test_importlib/data01/* noeol +Lib/test/test_importlib/namespacedata01/* noeol Lib/test/xmltestdata/* noeol # CRLF files @@ -62,27 +62,26 @@ PCbuild/readme.txt dos # [attr]generated linguist-generated=true diff=generated -**/clinic/*.c.h generated -*_db.h generated -Doc/data/stable_abi.dat generated -Doc/library/token-list.inc generated -Include/internal/pycore_ast.h generated -Include/internal/pycore_ast_state.h generated -Include/internal/pycore_opcode.h generated -Include/internal/pycore_runtime_init_generated.h generated -Include/opcode.h generated -Include/token.h generated -Lib/keyword.py generated -Lib/test/test_stable_abi_ctypes.py generated -Lib/token.py generated -Objects/typeslots.inc generated -PC/python3dll.c generated -Parser/parser.c generated -Parser/token.c generated -Programs/test_frozenmain.h generated -Python/Python-ast.c generated -Python/opcode_targets.h generated -Python/stdlib_module_names.h generated -Tools/peg_generator/pegen/grammar_parser.py generated -aclocal.m4 generated -configure generated +**/clinic/*.c.h generated +*_db.h generated +Doc/data/stable_abi.dat generated +Doc/library/token-list.inc generated +Include/internal/pycore_ast.h generated +Include/internal/pycore_ast_state.h generated +Include/internal/pycore_opcode.h generated +Include/opcode.h generated +Include/token.h generated +Lib/keyword.py generated +Lib/test/test_stable_abi_ctypes.py generated +Lib/token.py generated +Objects/typeslots.inc generated +PC/python3dll.c generated +Parser/parser.c generated +Parser/token.c generated +Programs/test_frozenmain.h generated +Python/Python-ast.c generated +Python/opcode_targets.h generated +Python/stdlib_module_names.h generated +Tools/peg_generator/pegen/grammar_parser.py generated +aclocal.m4 generated +configure generated diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 2568560c074f64..0aea3983fa600d 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -5,11 +5,11 @@ # https://git-scm.com/docs/gitignore#_pattern_format # asyncio -**/*asyncio* @1st1 @asvetlov @gvanrossum +**/*asyncio* @1st1 @asvetlov # Core **/*context* @1st1 -**/*genobject* @markshannon +**/*genobject* @1st1 @markshannon **/*hamt* @1st1 Objects/set* @rhettinger Objects/dict* @methane @markshannon @@ -18,7 +18,7 @@ Objects/codeobject.c @markshannon Objects/frameobject.c @markshannon Objects/call.c @markshannon Python/ceval.c @markshannon -Python/compile.c @markshannon @iritkatriel +Python/compile.c @markshannon Python/ast_opt.c @isidentical Lib/test/test_patma.py @brandtbucher Lib/test/test_peepholer.py @brandtbucher @@ -29,6 +29,7 @@ Lib/test/test_except*.py @iritkatriel Lib/test/test_traceback.py @iritkatriel Objects/exceptions.c @iritkatriel Python/traceback.c @iritkatriel +Python/pythonrun.c @iritkatriel # Hashing **/*hashlib* @tiran @@ -52,7 +53,6 @@ Python/traceback.c @iritkatriel /Lib/html/ @ezio-melotti /Lib/_markupbase.py @ezio-melotti /Lib/test/test_html*.py @ezio-melotti -/Tools/scripts/*html5* @ezio-melotti # Import (including importlib). # Ignoring importlib.h so as to not get flagged on @@ -60,8 +60,6 @@ Python/traceback.c @iritkatriel # bytecode. **/*import*.c @brettcannon @encukou @ericsnowcurrently @ncoghlan @warsaw **/*import*.py @brettcannon @encukou @ericsnowcurrently @ncoghlan @warsaw -**/*importlib/resources/* @jaraco @warsaw @brettcannon -**/importlib/metadata/* @jaraco @warsaw # Dates and times **/*datetime* @pganssle @abalkin @@ -97,7 +95,7 @@ Lib/ast.py @isidentical # Mock /Lib/unittest/mock.py @cjw296 -/Lib/test/test_unittest/testmock/* @cjw296 +/Lib/unittest/test/testmock/* @cjw296 # SQLite 3 **/*sqlite* @berkerpeksag @erlend-aasland diff --git a/.github/CONTRIBUTING.rst b/.github/CONTRIBUTING.rst index 627f57070d200b..30a39a40494fde 100644 --- a/.github/CONTRIBUTING.rst +++ b/.github/CONTRIBUTING.rst @@ -6,19 +6,19 @@ Build Status - main - + `Stable buildbots <https://buildbot.python.org/3.x.stable/>`_ + + `Stable buildbots <http://buildbot.python.org/3.x.stable/>`_ - 3.9 - + `Stable buildbots <https://buildbot.python.org/3.9.stable/>`_ + + `Stable buildbots <http://buildbot.python.org/3.9.stable/>`_ - 3.8 - + `Stable buildbots <https://buildbot.python.org/3.8.stable/>`_ + + `Stable buildbots <http://buildbot.python.org/3.8.stable/>`_ - 3.7 - + `Stable buildbots <https://buildbot.python.org/3.7.stable/>`_ + + `Stable buildbots <http://buildbot.python.org/3.7.stable/>`_ Thank You diff --git a/.github/ISSUE_TEMPLATE/bug.md b/.github/ISSUE_TEMPLATE/bug.md index 1d93e0735e50f3..7bdca2112b287b 100644 --- a/.github/ISSUE_TEMPLATE/bug.md +++ b/.github/ISSUE_TEMPLATE/bug.md @@ -15,12 +15,12 @@ labels: "type-bug" your problem has already been reported --> -# Bug report +**Bug report** A clear and concise description of what the bug is. Include a minimal, reproducible example (https://stackoverflow.com/help/minimal-reproducible-example), if possible. -# Your environment +**Your environment** <!-- Include as many relevant details as possible about the environment you experienced the bug in --> diff --git a/.github/ISSUE_TEMPLATE/crash.md b/.github/ISSUE_TEMPLATE/crash.md index dad3423db03410..28d7bfec193814 100644 --- a/.github/ISSUE_TEMPLATE/crash.md +++ b/.github/ISSUE_TEMPLATE/crash.md @@ -13,15 +13,15 @@ labels: "type-crash" For CPython, a "crash" is when Python itself fails, leading to a traceback in the C stack. --> -# Crash report +**Crash report** Tell us what happened, ideally including a minimal, reproducible example (https://stackoverflow.com/help/minimal-reproducible-example). -# Error messages +**Error messages** Enter any relevant error message caused by the crash, including a core dump if there is one. -# Your environment +**Your environment** <!-- Include as many relevant details as possible about the environment you experienced the bug in --> diff --git a/.github/ISSUE_TEMPLATE/documentation.md b/.github/ISSUE_TEMPLATE/documentation.md index 174fd39171d47d..669c92adb47531 100644 --- a/.github/ISSUE_TEMPLATE/documentation.md +++ b/.github/ISSUE_TEMPLATE/documentation.md @@ -4,6 +4,6 @@ about: Report a problem with the documentation labels: "docs" --- -# Documentation +**Documentation** (A clear and concise description of the issue.) diff --git a/.github/ISSUE_TEMPLATE/feature.md b/.github/ISSUE_TEMPLATE/feature.md index ed051e945f8120..635ea43545f497 100644 --- a/.github/ISSUE_TEMPLATE/feature.md +++ b/.github/ISSUE_TEMPLATE/feature.md @@ -4,16 +4,16 @@ about: Submit a proposal for a new CPython feature or enhancement labels: "type-feature" --- -# Feature or enhancement +**Feature or enhancement** (A clear and concise description of your proposal.) -# Pitch +**Pitch** (Explain why this feature or enhancement should be implemented and how it would be used. Add examples, if applicable.) -# Previous discussion +**Previous discussion** <!-- New features to Python should first be discussed elsewhere before creating issues on GitHub, diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1db5c505149397..d800442ad07e36 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -175,7 +175,7 @@ jobs: needs: check_source if: needs.check_source.outputs.run_tests == 'true' env: - OPENSSL_VER: 1.1.1q + OPENSSL_VER: 1.1.1n PYTHONSTRICTEXTENSIONBUILD: 1 steps: - uses: actions/checkout@v3 @@ -234,7 +234,7 @@ jobs: strategy: fail-fast: false matrix: - openssl_ver: [1.1.1q, 3.0.5] + openssl_ver: [1.1.1n, 3.0.2] env: OPENSSL_VER: ${{ matrix.openssl_ver }} MULTISSL_DIR: ${{ github.workspace }}/multissl @@ -281,7 +281,7 @@ jobs: needs: check_source if: needs.check_source.outputs.run_tests == 'true' env: - OPENSSL_VER: 1.1.1q + OPENSSL_VER: 1.1.1n PYTHONSTRICTEXTENSIONBUILD: 1 ASAN_OPTIONS: detect_leaks=0:allocator_may_return_null=1:handle_segv=0 steps: diff --git a/.github/workflows/build_msi.yml b/.github/workflows/build_msi.yml index 528679c0ac6b37..6044ae0f7c29b4 100644 --- a/.github/workflows/build_msi.yml +++ b/.github/workflows/build_msi.yml @@ -5,13 +5,21 @@ on: push: branches: - 'main' - - '3.*' + - '3.11' + - '3.10' + - '3.9' + - '3.8' + - '3.7' paths: - 'Tools/msi/**' pull_request: branches: - 'main' - - '3.*' + - '3.11' + - '3.10' + - '3.9' + - '3.8' + - '3.7' paths: - 'Tools/msi/**' @@ -19,13 +27,26 @@ permissions: contents: read jobs: - build: - name: Windows Installer + build_win32: + name: 'Windows (x86) Installer' runs-on: windows-latest - strategy: - matrix: - type: [x86, x64, arm64] steps: - uses: actions/checkout@v3 - name: Build CPython installer - run: .\Tools\msi\build.bat -${{ matrix.type }} + run: .\Tools\msi\build.bat -x86 + + build_win_amd64: + name: 'Windows (x64) Installer' + runs-on: windows-latest + steps: + - uses: actions/checkout@v3 + - name: Build CPython installer + run: .\Tools\msi\build.bat -x64 + + build_win_arm64: + name: 'Windows (ARM64) Installer' + runs-on: windows-latest + steps: + - uses: actions/checkout@v3 + - name: Build CPython installer + run: .\Tools\msi\build.bat -arm64 diff --git a/.github/workflows/doc.yml b/.github/workflows/doc.yml index d95d089ed66755..9cd251648cdeaf 100644 --- a/.github/workflows/doc.yml +++ b/.github/workflows/doc.yml @@ -23,7 +23,6 @@ on: paths: - 'Doc/**' - 'Misc/**' - - '.github/workflows/doc.yml' permissions: contents: read @@ -36,38 +35,6 @@ jobs: - uses: actions/checkout@v3 - name: Register Sphinx problem matcher run: echo "::add-matcher::.github/problem-matchers/sphinx.json" - - name: 'Set up Python' - uses: actions/setup-python@v4 - with: - python-version: '3' - cache: 'pip' - cache-dependency-path: 'Doc/requirements.txt' - - name: 'Install build dependencies' - run: make -C Doc/ venv - - name: 'Check documentation' - run: make -C Doc/ check - - name: 'Build HTML documentation' - run: make -C Doc/ SPHINXOPTS="-q" SPHINXERRORHANDLING="-W --keep-going" html - - name: 'Upload' - uses: actions/upload-artifact@v3 - with: - name: doc-html - path: Doc/build/html - - # Run "doctest" on HEAD as new syntax doesn't exist in the latest stable release - doctest: - name: 'Doctest' - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Register Sphinx problem matcher - run: echo "::add-matcher::.github/problem-matchers/sphinx.json" - - uses: actions/cache@v3 - with: - path: ~/.cache/pip - key: ubuntu-doc-${{ hashFiles('Doc/requirements.txt') }} - restore-keys: | - ubuntu-doc- - name: 'Install Dependencies' run: sudo ./.github/workflows/posix-deps-apt.sh && sudo apt-get install wamerican - name: 'Configure CPython' @@ -76,6 +43,17 @@ jobs: run: make -j4 - name: 'Install build dependencies' run: make -C Doc/ PYTHON=../python venv + # Run "check doctest html" as 3 steps to get a more readable output + # in the web UI + - name: 'Check documentation' + run: make -C Doc/ PYTHON=../python SPHINXOPTS="-q -W --keep-going" check # Use "xvfb-run" since some doctest tests open GUI windows - name: 'Run documentation doctest' - run: xvfb-run make -C Doc/ PYTHON=../python SPHINXERRORHANDLING="-W --keep-going" doctest + run: xvfb-run make -C Doc/ PYTHON=../python SPHINXOPTS="-q -W --keep-going" doctest + - name: 'Build HTML documentation' + run: make -C Doc/ PYTHON=../python SPHINXOPTS="-q -W --keep-going" html + - name: 'Upload' + uses: actions/upload-artifact@v3 + with: + name: doc-html + path: Doc/build/html diff --git a/.github/workflows/project-updater.yml b/.github/workflows/project-updater.yml deleted file mode 100644 index ea98700e7fae9c..00000000000000 --- a/.github/workflows/project-updater.yml +++ /dev/null @@ -1,27 +0,0 @@ -name: Update GH projects - -on: - issues: - types: - - opened - - labeled - -jobs: - add-to-project: - name: Add issues to projects - runs-on: ubuntu-latest - strategy: - matrix: - include: - # if an issue has any of these labels, it will be added - # to the corresponding project - - { project: 2, label: "release-blocker, deferred-blocker" } - - { project: 3, label: expert-subinterpreters } - - { project: 29, label: expert-asyncio } - - steps: - - uses: actions/add-to-project@v0.1.0 - with: - project-url: https://github.com/orgs/python/projects/${{ matrix.project }} - github-token: ${{ secrets.ADD_TO_PROJECT_PAT }} - labeled: ${{ matrix.label }} diff --git a/.github/workflows/regen-abidump.sh b/.github/workflows/regen-abidump.sh deleted file mode 100644 index 251bb3857ecfcb..00000000000000 --- a/.github/workflows/regen-abidump.sh +++ /dev/null @@ -1,8 +0,0 @@ -set -ex - -export DEBIAN_FRONTEND=noninteractive -./.github/workflows/posix-deps-apt.sh -apt-get install -yq abigail-tools python3 -export CFLAGS="-g3 -O0" -./configure --enable-shared && make -make regen-abidump diff --git a/.github/workflows/verify-ensurepip-wheels.yml b/.github/workflows/verify-ensurepip-wheels.yml deleted file mode 100644 index 61e3d1adf534d5..00000000000000 --- a/.github/workflows/verify-ensurepip-wheels.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Verify bundled pip and setuptools - -on: - workflow_dispatch: - push: - paths: - - 'Lib/ensurepip/_bundled/**' - - '.github/workflows/verify-ensurepip-wheels.yml' - - 'Tools/scripts/verify_ensurepip_wheels.py' - pull_request: - paths: - - 'Lib/ensurepip/_bundled/**' - - '.github/workflows/verify-ensurepip-wheels.yml' - - 'Tools/scripts/verify_ensurepip_wheels.py' - -permissions: - contents: read - -jobs: - verify: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-python@v4 - with: - python-version: '3' - - name: Compare checksums of bundled pip and setuptools to ones published on PyPI - run: ./Tools/scripts/verify_ensurepip_wheels.py diff --git a/.gitignore b/.gitignore index 924c136ba9aa05..b3b22f471c2765 100644 --- a/.gitignore +++ b/.gitignore @@ -5,12 +5,10 @@ *.cover *.iml *.o -*.lto *.a *.so *.so.* *.dylib -*.dSYM *.dll *.wasm *.orig @@ -152,6 +150,3 @@ Python/frozen_modules/MANIFEST # Ignore ./python binary on Unix but still look into ./Python/ directory. /python !/Python/ - -# main branch only: ABI files are not checked/maintained -Doc/data/python*.abi diff --git a/Doc/about.rst b/Doc/about.rst index 0ce35667924b92..f0b908487b2d09 100644 --- a/Doc/about.rst +++ b/Doc/about.rst @@ -6,7 +6,7 @@ About these documents These documents are generated from `reStructuredText`_ sources by `Sphinx`_, a document processor specifically written for the Python documentation. -.. _reStructuredText: https://docutils.sourceforge.io/rst.html +.. _reStructuredText: http://docutils.sourceforge.net/rst.html .. _Sphinx: http://sphinx-doc.org/ .. In the online version of these documents, you can submit comments and suggest @@ -21,7 +21,7 @@ Many thanks go to: * Fred L. Drake, Jr., the creator of the original Python documentation toolset and writer of much of the content; -* the `Docutils <https://docutils.sourceforge.io/>`_ project for creating +* the `Docutils <http://docutils.sourceforge.net/>`_ project for creating reStructuredText and the Docutils suite; * Fredrik Lundh for his Alternative Python Reference project from which Sphinx got many good ideas. diff --git a/Doc/c-api/allocation.rst b/Doc/c-api/allocation.rst index 0a8fcc5ae5fcdf..33b0c06a9ebc2e 100644 --- a/Doc/c-api/allocation.rst +++ b/Doc/c-api/allocation.rst @@ -14,7 +14,7 @@ Allocating Objects on the Heap .. c:function:: PyObject* PyObject_Init(PyObject *op, PyTypeObject *type) - Initialize a newly allocated object *op* with its type and initial + Initialize a newly-allocated object *op* with its type and initial reference. Returns the initialized object. If *type* indicates that the object participates in the cyclic garbage detector, it is added to the detector's set of observed objects. Other fields of the object are not diff --git a/Doc/c-api/call.rst b/Doc/c-api/call.rst index 11d5c33a2d1560..cdf72bc1f4714a 100644 --- a/Doc/c-api/call.rst +++ b/Doc/c-api/call.rst @@ -57,15 +57,6 @@ This bears repeating: A class supporting vectorcall **must** also implement :c:member:`~PyTypeObject.tp_call` with the same semantics. -.. versionchanged:: 3.12 - - The :const:`Py_TPFLAGS_HAVE_VECTORCALL` flag is now removed from a class - when the class's :py:meth:`~object.__call__` method is reassigned. - (This internally sets :c:member:`~PyTypeObject.tp_call` only, and thus - may make it behave differently than the vectorcall function.) - In earlier Python versions, vectorcall should only be used with - :const:`immutable <Py_TPFLAGS_IMMUTABLETYPE>` or static types. - A class should not implement vectorcall if that would be slower than *tp_call*. For example, if the callee needs to convert the arguments to an args tuple and kwargs dict anyway, then there is no point @@ -153,6 +144,8 @@ Vectorcall Support API However, the function ``PyVectorcall_NARGS`` should be used to allow for future extensions. + This function is not part of the :ref:`limited API <stable>`. + .. versionadded:: 3.8 .. c:function:: vectorcallfunc PyVectorcall_Function(PyObject *op) @@ -165,6 +158,8 @@ Vectorcall Support API This is mostly useful to check whether or not *op* supports vectorcall, which can be done by checking ``PyVectorcall_Function(op) != NULL``. + This function is not part of the :ref:`limited API <stable>`. + .. versionadded:: 3.8 .. c:function:: PyObject* PyVectorcall_Call(PyObject *callable, PyObject *tuple, PyObject *dict) @@ -177,6 +172,8 @@ Vectorcall Support API It does not check the :const:`Py_TPFLAGS_HAVE_VECTORCALL` flag and it does not fall back to ``tp_call``. + This function is not part of the :ref:`limited API <stable>`. + .. versionadded:: 3.8 @@ -259,6 +256,8 @@ please see individual documentation for details. Return the result of the call on success, or raise an exception and return *NULL* on failure. + This function is not part of the :ref:`limited API <stable>`. + .. versionadded:: 3.9 @@ -344,6 +343,8 @@ please see individual documentation for details. Return the result of the call on success, or raise an exception and return *NULL* on failure. + This function is not part of the :ref:`limited API <stable>`. + .. versionadded:: 3.9 @@ -356,6 +357,8 @@ please see individual documentation for details. Return the result of the call on success, or raise an exception and return *NULL* on failure. + This function is not part of the :ref:`limited API <stable>`. + .. versionadded:: 3.9 @@ -369,6 +372,8 @@ please see individual documentation for details. Return the result of the call on success, or raise an exception and return *NULL* on failure. + This function is not part of the :ref:`limited API <stable>`. + .. versionadded:: 3.9 .. c:function:: PyObject* PyObject_VectorcallDict(PyObject *callable, PyObject *const *args, size_t nargsf, PyObject *kwdict) @@ -383,6 +388,8 @@ please see individual documentation for details. already has a dictionary ready to use for the keyword arguments, but not a tuple for the positional arguments. + This function is not part of the :ref:`limited API <stable>`. + .. versionadded:: 3.9 .. c:function:: PyObject* PyObject_VectorcallMethod(PyObject *name, PyObject *const *args, size_t nargsf, PyObject *kwnames) @@ -403,6 +410,8 @@ please see individual documentation for details. Return the result of the call on success, or raise an exception and return *NULL* on failure. + This function is not part of the :ref:`limited API <stable>`. + .. versionadded:: 3.9 diff --git a/Doc/c-api/code.rst b/Doc/c-api/code.rst index d4a3c4ae35fa09..7915b81b463773 100644 --- a/Doc/c-api/code.rst +++ b/Doc/c-api/code.rst @@ -90,28 +90,3 @@ bound into a function. .. versionadded:: 3.11 -.. c:function:: PyObject* PyCode_GetVarnames(PyCodeObject *co) - - Equivalent to the Python code ``getattr(co, 'co_varnames')``. - Returns a new reference to a :c:type:`PyTupleObject` containing the names of - the local variables. On error, ``NULL`` is returned and an exception - is raised. - - .. versionadded:: 3.11 - -.. c:function:: PyObject* PyCode_GetCellvars(PyCodeObject *co) - - Equivalent to the Python code ``getattr(co, 'co_cellvars')``. - Returns a new reference to a :c:type:`PyTupleObject` containing the names of - the local variables that are referenced by nested functions. On error, ``NULL`` - is returned and an exception is raised. - - .. versionadded:: 3.11 - -.. c:function:: PyObject* PyCode_GetFreevars(PyCodeObject *co) - - Equivalent to the Python code ``getattr(co, 'co_freevars')``. - Returns a new reference to a :c:type:`PyTupleObject` containing the names of - the free variables. On error, ``NULL`` is returned and an exception is raised. - - .. versionadded:: 3.11 diff --git a/Doc/c-api/datetime.rst b/Doc/c-api/datetime.rst index 72fc07afbf1f4d..4c4e4bcfa63335 100644 --- a/Doc/c-api/datetime.rst +++ b/Doc/c-api/datetime.rst @@ -132,7 +132,6 @@ Macros to create objects: resulting number of microseconds and seconds lie in the ranges documented for :class:`datetime.timedelta` objects. - .. c:function:: PyObject* PyTimeZone_FromOffset(PyDateTime_DeltaType* offset) Return a :class:`datetime.timezone` object with an unnamed fixed offset @@ -140,7 +139,6 @@ Macros to create objects: .. versionadded:: 3.7 - .. c:function:: PyObject* PyTimeZone_FromOffsetAndName(PyDateTime_DeltaType* offset, PyUnicode* name) Return a :class:`datetime.timezone` object with a fixed offset represented @@ -192,21 +190,12 @@ must not be ``NULL``, and the type is not checked: Return the microsecond, as an int from 0 through 999999. - -.. c:function:: int PyDateTime_DATE_GET_FOLD(PyDateTime_DateTime *o) - - Return the fold, as an int from 0 through 1. - - .. versionadded:: 3.6 - - .. c:function:: PyObject* PyDateTime_DATE_GET_TZINFO(PyDateTime_DateTime *o) Return the tzinfo (which may be ``None``). .. versionadded:: 3.10 - Macros to extract fields from time objects. The argument must be an instance of :c:data:`PyDateTime_Time`, including subclasses. The argument must not be ``NULL``, and the type is not checked: @@ -230,14 +219,6 @@ and the type is not checked: Return the microsecond, as an int from 0 through 999999. - -.. c:function:: int PyDateTime_TIME_GET_FOLD(PyDateTime_Time *o) - - Return the fold, as an int from 0 through 1. - - .. versionadded:: 3.6 - - .. c:function:: PyObject* PyDateTime_TIME_GET_TZINFO(PyDateTime_Time *o) Return the tzinfo (which may be ``None``). diff --git a/Doc/c-api/function.rst b/Doc/c-api/function.rst index df88e85e518829..56c18396d3221d 100644 --- a/Doc/c-api/function.rst +++ b/Doc/c-api/function.rst @@ -83,15 +83,6 @@ There are a few functions specific to Python functions. Raises :exc:`SystemError` and returns ``-1`` on failure. -.. c:function:: void PyFunction_SetVectorcall(PyFunctionObject *func, vectorcallfunc vectorcall) - - Set the vectorcall field of a given function object *func*. - - Warning: extensions using this API must preserve the behavior - of the unaltered (default) vectorcall function! - - .. versionadded:: 3.12 - .. c:function:: PyObject* PyFunction_GetClosure(PyObject *op) Return the closure associated with the function object *op*. This can be ``NULL`` diff --git a/Doc/c-api/init.rst b/Doc/c-api/init.rst index 2a9cf0ea702209..038498f325ceb3 100644 --- a/Doc/c-api/init.rst +++ b/Doc/c-api/init.rst @@ -1774,18 +1774,6 @@ Python-level trace functions in previous versions. The caller must hold the :term:`GIL`. -.. c:function:: void PyEval_SetProfileAllThreads(Py_tracefunc func, PyObject *obj) - - Like :c:func:`PyEval_SetProfile` but sets the profile function in all running threads - belonging to the current interpreter instead of the setting it only on the current thread. - - The caller must hold the :term:`GIL`. - - As :c:func:`PyEval_SetProfile`, this function ignores any exceptions raised while - setting the profile functions in all threads. - -.. versionadded:: 3.12 - .. c:function:: void PyEval_SetTrace(Py_tracefunc func, PyObject *obj) @@ -1800,18 +1788,6 @@ Python-level trace functions in previous versions. The caller must hold the :term:`GIL`. -.. c:function:: void PyEval_SetTraceAllThreads(Py_tracefunc func, PyObject *obj) - - Like :c:func:`PyEval_SetTrace` but sets the tracing function in all running threads - belonging to the current interpreter instead of the setting it only on the current thread. - - The caller must hold the :term:`GIL`. - - As :c:func:`PyEval_SetTrace`, this function ignores any exceptions raised while - setting the trace functions in all threads. - -.. versionadded:: 3.12 - .. _advanced-debugging: diff --git a/Doc/c-api/init_config.rst b/Doc/c-api/init_config.rst index c4a342ee811ca9..897705cec86fda 100644 --- a/Doc/c-api/init_config.rst +++ b/Doc/c-api/init_config.rst @@ -735,8 +735,9 @@ PyConfig * ``"utf-8"`` if :c:member:`PyPreConfig.utf8_mode` is non-zero. * ``"ascii"`` if Python detects that ``nl_langinfo(CODESET)`` announces - the ASCII encoding, whereas the ``mbstowcs()`` function - decodes from a different encoding (usually Latin1). + the ASCII encoding (or Roman8 encoding on HP-UX), whereas the + ``mbstowcs()`` function decodes from a different encoding (usually + Latin1). * ``"utf-8"`` if ``nl_langinfo(CODESET)`` returns an empty string. * Otherwise, use the :term:`locale encoding`: ``nl_langinfo(CODESET)`` result. @@ -1155,20 +1156,6 @@ PyConfig Default: ``-1`` in Python mode, ``0`` in isolated mode. - .. c:member:: int perf_profiling - - Enable compatibility mode with the perf profiler? - - If non-zero, initialize the perf trampoline. See :ref:`perf_profiling` - for more information. - - Set by :option:`-X perf <-X>` command line option and by the - :envvar:`PYTHONPERFSUPPORT` environment variable. - - Default: ``-1``. - - .. versionadded:: 3.12 - .. c:member:: int use_environment Use :ref:`environment variables <using-on-envvars>`? diff --git a/Doc/c-api/intro.rst b/Doc/c-api/intro.rst index 557ccfc052343e..e53c826c58d135 100644 --- a/Doc/c-api/intro.rst +++ b/Doc/c-api/intro.rst @@ -153,7 +153,7 @@ complete listing. .. c:macro:: Py_GETENV(s) Like ``getenv(s)``, but returns ``NULL`` if :option:`-E` was passed on the - command line (see :c:member:`PyConfig.use_environment`). + command line (i.e. if ``Py_IgnoreEnvironmentFlag`` is set). .. c:macro:: Py_MAX(x, y) @@ -779,7 +779,7 @@ A full list of the various types of debugging builds is in the file :file:`Misc/SpecialBuilds.txt` in the Python source distribution. Builds are available that support tracing of reference counts, debugging the memory allocator, or low-level profiling of the main interpreter loop. Only the most -frequently used builds will be described in the remainder of this section. +frequently-used builds will be described in the remainder of this section. Compiling the interpreter with the :c:macro:`Py_DEBUG` macro defined produces what is generally meant by :ref:`a debug build of Python <debug-build>`. diff --git a/Doc/c-api/long.rst b/Doc/c-api/long.rst index 56a7c069de908e..620344e71373b2 100644 --- a/Doc/c-api/long.rst +++ b/Doc/c-api/long.rst @@ -84,15 +84,14 @@ distinguished from a number. Use :c:func:`PyErr_Occurred` to disambiguate. .. c:function:: PyObject* PyLong_FromString(const char *str, char **pend, int base) Return a new :c:type:`PyLongObject` based on the string value in *str*, which - is interpreted according to the radix in *base*, or ``NULL`` on failure. If - *pend* is non-``NULL``, *\*pend* will point to the end of *str* on success or - to the first character that could not be processed on error. If *base* is ``0``, - *str* is interpreted using the :ref:`integers` definition; in this case, leading - zeros in a non-zero decimal number raises a :exc:`ValueError`. If *base* is not - ``0``, it must be between ``2`` and ``36``, inclusive. Leading and trailing - whitespace and single underscores after a base specifier and between digits are - ignored. If there are no digits or *str* is not NULL-terminated following the - digits and trailing whitespace, :exc:`ValueError` will be raised. + is interpreted according to the radix in *base*. If *pend* is non-``NULL``, + *\*pend* will point to the first character in *str* which follows the + representation of the number. If *base* is ``0``, *str* is interpreted using + the :ref:`integers` definition; in this case, leading zeros in a + non-zero decimal number raises a :exc:`ValueError`. If *base* is not ``0``, + it must be between ``2`` and ``36``, inclusive. Leading spaces and single + underscores after a base specifier and between digits are ignored. If there + are no digits, :exc:`ValueError` will be raised. .. c:function:: PyObject* PyLong_FromUnicodeObject(PyObject *u, int base) diff --git a/Doc/c-api/memory.rst b/Doc/c-api/memory.rst index 335ea00cff7cb8..987dea40dd674e 100644 --- a/Doc/c-api/memory.rst +++ b/Doc/c-api/memory.rst @@ -75,7 +75,7 @@ memory manager. For example, this is required when the interpreter is extended with new object types written in C. Another reason for using the Python heap is the desire to *inform* the Python memory manager about the memory needs of the extension module. Even when the requested memory is used exclusively for -internal, highly specific purposes, delegating all memory requests to the Python +internal, highly-specific purposes, delegating all memory requests to the Python memory manager causes the interpreter to have a more accurate image of its memory footprint as a whole. Consequently, under certain circumstances, the Python memory manager may or may not trigger appropriate actions, like garbage diff --git a/Doc/c-api/object.rst b/Doc/c-api/object.rst index fb03366056b0d2..07a625bac02fc4 100644 --- a/Doc/c-api/object.rst +++ b/Doc/c-api/object.rst @@ -126,14 +126,6 @@ Object Protocol A generic implementation for the getter of a ``__dict__`` descriptor. It creates the dictionary if necessary. - This function may also be called to get the :py:attr:`~object.__dict__` - of the object *o*. Pass ``NULL`` for *context* when calling it. - Since this function may need to allocate memory for the - dictionary, it may be more efficient to call :c:func:`PyObject_GetAttr` - when accessing an attribute on the object. - - On failure, returns ``NULL`` with an exception set. - .. versionadded:: 3.3 @@ -145,16 +137,6 @@ Object Protocol .. versionadded:: 3.3 -.. c:function:: PyObject** _PyObject_GetDictPtr(PyObject *obj) - - Return a pointer to :py:attr:`~object.__dict__` of the object *obj*. - If there is no ``__dict__``, return ``NULL`` without setting an exception. - - This function may need to allocate memory for the - dictionary, so it may be more efficient to call :c:func:`PyObject_GetAttr` - when accessing an attribute on the object. - - .. c:function:: PyObject* PyObject_RichCompare(PyObject *o1, PyObject *o2, int opid) Compare the values of *o1* and *o2* using the operation specified by *opid*, diff --git a/Doc/c-api/structures.rst b/Doc/c-api/structures.rst index f1eb09bb569168..ff5ecf24072c1a 100644 --- a/Doc/c-api/structures.rst +++ b/Doc/c-api/structures.rst @@ -321,6 +321,8 @@ There are these calling conventions: or possibly ``NULL`` if there are no keywords. The values of the keyword arguments are stored in the *args* array, after the positional arguments. + This is not part of the :ref:`limited API <stable>`. + .. versionadded:: 3.7 @@ -469,21 +471,19 @@ Accessing attributes of extension types .. _pymemberdef-offsets: Heap allocated types (created using :c:func:`PyType_FromSpec` or similar), - ``PyMemberDef`` may contain definitions for the special member - ``__vectorcalloffset__``, corresponding to + ``PyMemberDef`` may contain definitions for the special members + ``__dictoffset__``, ``__weaklistoffset__`` and ``__vectorcalloffset__``, + corresponding to + :c:member:`~PyTypeObject.tp_dictoffset`, + :c:member:`~PyTypeObject.tp_weaklistoffset` and :c:member:`~PyTypeObject.tp_vectorcall_offset` in type objects. These must be defined with ``T_PYSSIZET`` and ``READONLY``, for example:: static PyMemberDef spam_type_members[] = { - {"__vectorcalloffset__", T_PYSSIZET, offsetof(Spam_object, vectorcall), READONLY}, + {"__dictoffset__", T_PYSSIZET, offsetof(Spam_object, dict), READONLY}, {NULL} /* Sentinel */ }; - The legacy offsets :c:member:`~PyTypeObject.tp_dictoffset` and - :c:member:`~PyTypeObject.tp_weaklistoffset` are still supported, but extensions are - strongly encouraged to use ``Py_TPFLAGS_MANAGED_DICT`` and - ``Py_TPFLAGS_MANAGED_WEAKREF`` instead. - .. c:function:: PyObject* PyMember_GetOne(const char *obj_addr, struct PyMemberDef *m) diff --git a/Doc/c-api/sys.rst b/Doc/c-api/sys.rst index 11d5e0e03ec098..7b714678444be1 100644 --- a/Doc/c-api/sys.rst +++ b/Doc/c-api/sys.rst @@ -21,12 +21,10 @@ Operating System Utilities Return true (nonzero) if the standard I/O file *fp* with name *filename* is deemed interactive. This is the case for files for which ``isatty(fileno(fp))`` - is true. If the :c:member:`PyConfig.interactive` is non-zero, this function + is true. If the global flag :c:data:`Py_InteractiveFlag` is true, this function also returns true if the *filename* pointer is ``NULL`` or if the name is equal to one of the strings ``'<stdin>'`` or ``'???'``. - This function must not be called before Python is initialized. - .. c:function:: void PyOS_BeforeFork() @@ -167,7 +165,7 @@ Operating System Utilities .. versionchanged:: 3.8 The function now uses the UTF-8 encoding on Windows if - :c:member:`PyConfig.legacy_windows_fs_encoding` is zero; + :c:data:`Py_LegacyWindowsFSEncodingFlag` is zero; .. c:function:: char* Py_EncodeLocale(const wchar_t *text, size_t *error_pos) @@ -209,7 +207,7 @@ Operating System Utilities .. versionchanged:: 3.8 The function now uses the UTF-8 encoding on Windows if - :c:member:`PyConfig.legacy_windows_fs_encoding` is zero. + :c:data:`Py_LegacyWindowsFSEncodingFlag` is zero. .. _systemfunctions: diff --git a/Doc/c-api/type.rst b/Doc/c-api/type.rst index deb5502a4dff9e..99b3845237d868 100644 --- a/Doc/c-api/type.rst +++ b/Doc/c-api/type.rst @@ -193,12 +193,11 @@ The following functions and structs are used to create .. c:function:: PyObject* PyType_FromMetaclass(PyTypeObject *metaclass, PyObject *module, PyType_Spec *spec, PyObject *bases) Create and return a :ref:`heap type <heap-types>` from the *spec* - (see :const:`Py_TPFLAGS_HEAPTYPE`). + (:const:`Py_TPFLAGS_HEAPTYPE`). The metaclass *metaclass* is used to construct the resulting type object. - When *metaclass* is ``NULL``, the metaclass is derived from *bases* - (or *Py_tp_base[s]* slots if *bases* is ``NULL``, see below). - Note that metaclasses that override + When *metaclass* is ``NULL``, the default :c:type:`PyType_Type` is used + instead. Note that metaclasses that override :c:member:`~PyTypeObject.tp_new` are not supported. The *bases* argument can be used to specify base classes; it can either @@ -216,19 +215,6 @@ The following functions and structs are used to create This function calls :c:func:`PyType_Ready` on the new type. - Note that this function does *not* fully match the behavior of - calling :py:class:`type() <type>` or using the :keyword:`class` statement. - With user-provided base types or metaclasses, prefer - :ref:`calling <capi-call>` :py:class:`type` (or the metaclass) - over ``PyType_From*`` functions. - Specifically: - - * :py:meth:`~object.__new__` is not called on the new class - (and it must be set to ``type.__new__``). - * :py:meth:`~object.__init__` is not called on the new class. - * :py:meth:`~object.__init_subclass__` is not called on any bases. - * :py:meth:`~object.__set_name__` is not called on new descriptors. - .. versionadded:: 3.12 .. c:function:: PyObject* PyType_FromModuleAndSpec(PyObject *module, PyType_Spec *spec, PyObject *bases) @@ -242,11 +228,6 @@ The following functions and structs are used to create The function now accepts a single class as the *bases* argument and ``NULL`` as the ``tp_doc`` slot. - .. versionchanged:: 3.12 - - The function now finds and uses a metaclass corresponding to the provided - base classes. Previously, only :class:`type` instances were returned. - .. c:function:: PyObject* PyType_FromSpecWithBases(PyType_Spec *spec, PyObject *bases) @@ -254,21 +235,10 @@ The following functions and structs are used to create .. versionadded:: 3.3 - .. versionchanged:: 3.12 - - The function now finds and uses a metaclass corresponding to the provided - base classes. Previously, only :class:`type` instances were returned. - .. c:function:: PyObject* PyType_FromSpec(PyType_Spec *spec) Equivalent to ``PyType_FromMetaclass(NULL, NULL, spec, NULL)``. - .. versionchanged:: 3.12 - - The function now finds and uses a metaclass corresponding to the - base classes provided in *Py_tp_base[s]* slots. - Previously, only :class:`type` instances were returned. - .. c:type:: PyType_Spec Structure defining a type's behavior. @@ -296,8 +266,6 @@ The following functions and structs are used to create Array of :c:type:`PyType_Slot` structures. Terminated by the special slot value ``{0, NULL}``. - Each slot ID should be specified at most once. - .. c:type:: PyType_Slot Structure defining optional functionality of a type, containing a slot ID @@ -327,9 +295,9 @@ The following functions and structs are used to create * :c:member:`~PyTypeObject.tp_weaklist` * :c:member:`~PyTypeObject.tp_vectorcall` * :c:member:`~PyTypeObject.tp_weaklistoffset` - (use :const:`Py_TPFLAGS_MANAGED_WEAKREF` instead) + (see :ref:`PyMemberDef <pymemberdef-offsets>`) * :c:member:`~PyTypeObject.tp_dictoffset` - (use :const:`Py_TPFLAGS_MANAGED_DICT` instead) + (see :ref:`PyMemberDef <pymemberdef-offsets>`) * :c:member:`~PyTypeObject.tp_vectorcall_offset` (see :ref:`PyMemberDef <pymemberdef-offsets>`) diff --git a/Doc/c-api/typeobj.rst b/Doc/c-api/typeobj.rst index 2439f7c41b5665..df479046d4aeb7 100644 --- a/Doc/c-api/typeobj.rst +++ b/Doc/c-api/typeobj.rst @@ -96,7 +96,7 @@ Quick Reference | | | __gt__, | | | | | | | | __ge__ | | | | | +------------------------------------------------+-----------------------------------+-------------------+---+---+---+---+ - | (:c:member:`~PyTypeObject.tp_weaklistoffset`) | :c:type:`Py_ssize_t` | | | X | | ? | + | :c:member:`~PyTypeObject.tp_weaklistoffset` | :c:type:`Py_ssize_t` | | | X | | ? | +------------------------------------------------+-----------------------------------+-------------------+---+---+---+---+ | :c:member:`~PyTypeObject.tp_iter` | :c:type:`getiterfunc` | __iter__ | | | | X | +------------------------------------------------+-----------------------------------+-------------------+---+---+---+---+ @@ -117,7 +117,7 @@ Quick Reference | :c:member:`~PyTypeObject.tp_descr_set` | :c:type:`descrsetfunc` | __set__, | | | | X | | | | __delete__ | | | | | +------------------------------------------------+-----------------------------------+-------------------+---+---+---+---+ - | (:c:member:`~PyTypeObject.tp_dictoffset`) | :c:type:`Py_ssize_t` | | | X | | ? | + | :c:member:`~PyTypeObject.tp_dictoffset` | :c:type:`Py_ssize_t` | | | X | | ? | +------------------------------------------------+-----------------------------------+-------------------+---+---+---+---+ | :c:member:`~PyTypeObject.tp_init` | :c:type:`initproc` | __init__ | X | X | | X | +------------------------------------------------+-----------------------------------+-------------------+---+---+---+---+ @@ -135,7 +135,7 @@ Quick Reference +------------------------------------------------+-----------------------------------+-------------------+---+---+---+---+ | [:c:member:`~PyTypeObject.tp_cache`] | :c:type:`PyObject` * | | | | | +------------------------------------------------+-----------------------------------+-------------------+---+---+---+---+ - | [:c:member:`~PyTypeObject.tp_subclasses`] | void * | __subclasses__ | | | | + | [:c:member:`~PyTypeObject.tp_subclasses`] | :c:type:`PyObject` * | __subclasses__ | | | | +------------------------------------------------+-----------------------------------+-------------------+---+---+---+---+ | [:c:member:`~PyTypeObject.tp_weaklist`] | :c:type:`PyObject` * | | | | | +------------------------------------------------+-----------------------------------+-------------------+---+---+---+---+ @@ -529,7 +529,7 @@ type objects) *must* have the :attr:`ob_size` field. ``PyObject_HEAD_INIT`` macro. For :ref:`statically allocated objects <static-types>`, these fields always remain ``NULL``. For :ref:`dynamically allocated objects <heap-types>`, these two fields are used to link the - object into a doubly linked list of *all* live objects on the heap. + object into a doubly-linked list of *all* live objects on the heap. This could be used for various debugging purposes; currently the only uses are the :func:`sys.getobjects` function and to print the objects that are @@ -720,29 +720,35 @@ and :c:type:`PyType_Type` effectively act as defaults.) with the *vectorcallfunc* function. This can be done by setting *tp_call* to :c:func:`PyVectorcall_Call`. + .. warning:: + + It is not recommended for :ref:`mutable heap types <heap-types>` to implement + the vectorcall protocol. + When a user sets :attr:`__call__` in Python code, only *tp_call* is updated, + likely making it inconsistent with the vectorcall function. + + .. note:: + + The semantics of the ``tp_vectorcall_offset`` slot are provisional and + expected to be finalized in Python 3.9. + If you use vectorcall, plan for updating your code for Python 3.9. + .. versionchanged:: 3.8 Before version 3.8, this slot was named ``tp_print``. In Python 2.x, it was used for printing to a file. In Python 3.0 to 3.7, it was unused. - .. versionchanged:: 3.12 - - Before version 3.12, it was not recommended for - :ref:`mutable heap types <heap-types>` to implement the vectorcall - protocol. - When a user sets :attr:`~type.__call__` in Python code, only *tp_call* is - updated, likely making it inconsistent with the vectorcall function. - Since 3.12, setting ``__call__`` will disable vectorcall optimization - by clearing the :const:`Py_TPFLAGS_HAVE_VECTORCALL` flag. - **Inheritance:** This field is always inherited. However, the :const:`Py_TPFLAGS_HAVE_VECTORCALL` flag is not - always inherited. If it's not set, then the subclass won't use + always inherited. If it's not, then the subclass won't use :ref:`vectorcall <vectorcall>`, except when :c:func:`PyVectorcall_Call` is explicitly called. + This is in particular the case for types without the + :const:`Py_TPFLAGS_IMMUTABLETYPE` flag set (including subclasses defined in + Python). .. c:member:: getattrfunc PyTypeObject.tp_getattr @@ -1018,6 +1024,7 @@ and :c:type:`PyType_Type` effectively act as defaults.) :const:`Py_TPFLAGS_HAVE_GC` flag bit is clear in the subtype and the :c:member:`~PyTypeObject.tp_traverse` and :c:member:`~PyTypeObject.tp_clear` fields in the subtype exist and have ``NULL`` values. + .. XXX are most flag bits *really* inherited individually? **Default:** @@ -1134,33 +1141,6 @@ and :c:type:`PyType_Type` effectively act as defaults.) :const:`Py_TPFLAGS_IMMUTABLETYPE` flag set. For extension types, it is inherited whenever :c:member:`~PyTypeObject.tp_descr_get` is inherited. - .. data:: Py_TPFLAGS_MANAGED_DICT - - This bit indicates that instances of the class have a ``__dict___`` - attribute, and that the space for the dictionary is managed by the VM. - - If this flag is set, :const:`Py_TPFLAGS_HAVE_GC` should also be set. - - .. versionadded:: 3.12 - - **Inheritance:** - - This flag is inherited unless the - :c:member:`~PyTypeObject.tp_dictoffset` field is set in a superclass. - - - .. data:: Py_TPFLAGS_MANAGED_WEAKREF - - This bit indicates that instances of the class should be weakly - referenceable. - - .. versionadded:: 3.12 - - **Inheritance:** - - This flag is inherited unless the - :c:member:`~PyTypeObject.tp_weaklistoffset` field is set in a superclass. - .. XXX Document more flags here? @@ -1204,18 +1184,12 @@ and :c:type:`PyType_Type` effectively act as defaults.) **Inheritance:** - This bit is inherited if :c:member:`~PyTypeObject.tp_call` is also - inherited. + This bit is inherited for types with the + :const:`Py_TPFLAGS_IMMUTABLETYPE` flag set, if + :c:member:`~PyTypeObject.tp_call` is also inherited. .. versionadded:: 3.9 - .. versionchanged:: 3.12 - - This flag is now removed from a class when the class's - :py:meth:`~object.__call__` method is reassigned. - - This flag can now be inherited by mutable classes. - .. data:: Py_TPFLAGS_IMMUTABLETYPE This bit is set for type objects that are immutable: type attributes cannot be set nor deleted. @@ -1513,9 +1487,6 @@ and :c:type:`PyType_Type` effectively act as defaults.) .. c:member:: Py_ssize_t PyTypeObject.tp_weaklistoffset - While this field is still supported, :const:`Py_TPFLAGS_MANAGED_WEAKREF` - should be used instead, if at all possible. - If the instances of this type are weakly referenceable, this field is greater than zero and contains the offset in the instance structure of the weak reference list head (ignoring the GC header, if present); this offset is used by @@ -1526,9 +1497,6 @@ and :c:type:`PyType_Type` effectively act as defaults.) Do not confuse this field with :c:member:`~PyTypeObject.tp_weaklist`; that is the list head for weak references to the type object itself. - It is an error to set both the :const:`Py_TPFLAGS_MANAGED_WEAKREF` bit and - :c:member:`~PyTypeObject.tp_weaklist`. - **Inheritance:** This field is inherited by subtypes, but see the rules listed below. A subtype @@ -1536,12 +1504,19 @@ and :c:type:`PyType_Type` effectively act as defaults.) reference list head than the base type. Since the list head is always found via :c:member:`~PyTypeObject.tp_weaklistoffset`, this should not be a problem. - **Default:** + When a type defined by a class statement has no :attr:`~object.__slots__` declaration, + and none of its base types are weakly referenceable, the type is made weakly + referenceable by adding a weak reference list head slot to the instance layout + and setting the :c:member:`~PyTypeObject.tp_weaklistoffset` of that slot's offset. - If the :const:`Py_TPFLAGS_MANAGED_WEAKREF` bit is set in the - :c:member:`~PyTypeObject.tp_dict` field, then - :c:member:`~PyTypeObject.tp_weaklistoffset` will be set to a negative value, - to indicate that it is unsafe to use this field. + When a type's :attr:`__slots__` declaration contains a slot named + :attr:`__weakref__`, that slot becomes the weak reference list head for + instances of the type, and the slot's offset is stored in the type's + :c:member:`~PyTypeObject.tp_weaklistoffset`. + + When a type's :attr:`__slots__` declaration does not contain a slot named + :attr:`__weakref__`, the type inherits its :c:member:`~PyTypeObject.tp_weaklistoffset` from its + base type. .. c:member:: getiterfunc PyTypeObject.tp_iter @@ -1720,9 +1695,6 @@ and :c:type:`PyType_Type` effectively act as defaults.) .. c:member:: Py_ssize_t PyTypeObject.tp_dictoffset - While this field is still supported, :const:`Py_TPFLAGS_MANAGED_DICT` should be - used instead, if at all possible. - If the instances of this type have a dictionary containing instance variables, this field is non-zero and contains the offset in the instances of the type of the instance variable dictionary; this offset is used by @@ -1731,34 +1703,55 @@ and :c:type:`PyType_Type` effectively act as defaults.) Do not confuse this field with :c:member:`~PyTypeObject.tp_dict`; that is the dictionary for attributes of the type object itself. - The value specifies the offset of the dictionary from the start of the instance structure. + If the value of this field is greater than zero, it specifies the offset from + the start of the instance structure. If the value is less than zero, it + specifies the offset from the *end* of the instance structure. A negative + offset is more expensive to use, and should only be used when the instance + structure contains a variable-length part. This is used for example to add an + instance variable dictionary to subtypes of :class:`str` or :class:`tuple`. Note + that the :c:member:`~PyTypeObject.tp_basicsize` field should account for the dictionary added to + the end in that case, even though the dictionary is not included in the basic + object layout. On a system with a pointer size of 4 bytes, + :c:member:`~PyTypeObject.tp_dictoffset` should be set to ``-4`` to indicate that the dictionary is + at the very end of the structure. + + The real dictionary offset in an instance can be computed from a negative + :c:member:`~PyTypeObject.tp_dictoffset` as follows:: + + dictoffset = tp_basicsize + abs(ob_size)*tp_itemsize + tp_dictoffset + if dictoffset is not aligned on sizeof(void*): + round up to sizeof(void*) + + where :c:member:`~PyTypeObject.tp_basicsize`, :c:member:`~PyTypeObject.tp_itemsize` and :c:member:`~PyTypeObject.tp_dictoffset` are + taken from the type object, and :attr:`ob_size` is taken from the instance. The + absolute value is taken because ints use the sign of :attr:`ob_size` to + store the sign of the number. (There's never a need to do this calculation + yourself; it is done for you by :c:func:`_PyObject_GetDictPtr`.) - The :c:member:`~PyTypeObject.tp_dictoffset` should be regarded as write-only. - To get the pointer to the dictionary call :c:func:`PyObject_GenericGetDict`. - Calling :c:func:`PyObject_GenericGetDict` may need to allocate memory for the - dictionary, so it is may be more efficient to call :c:func:`PyObject_GetAttr` - when accessing an attribute on the object. + **Inheritance:** - It is an error to set both the :const:`Py_TPFLAGS_MANAGED_WEAKREF` bit and - :c:member:`~PyTypeObject.tp_dictoffset`. + This field is inherited by subtypes, but see the rules listed below. A subtype + may override this offset; this means that the subtype instances store the + dictionary at a difference offset than the base type. Since the dictionary is + always found via :c:member:`~PyTypeObject.tp_dictoffset`, this should not be a problem. - **Inheritance:** + When a type defined by a class statement has no :attr:`~object.__slots__` declaration, + and none of its base types has an instance variable dictionary, a dictionary + slot is added to the instance layout and the :c:member:`~PyTypeObject.tp_dictoffset` is set to + that slot's offset. - This field is inherited by subtypes. A subtype should not override this offset; - doing so could be unsafe, if C code tries to access the dictionary at the - previous offset. - To properly support inheritance, use :const:`Py_TPFLAGS_MANAGED_DICT`. + When a type defined by a class statement has a :attr:`__slots__` declaration, + the type inherits its :c:member:`~PyTypeObject.tp_dictoffset` from its base type. + + (Adding a slot named :attr:`~object.__dict__` to the :attr:`__slots__` declaration does + not have the expected effect, it just causes confusion. Maybe this should be + added as a feature just like :attr:`__weakref__` though.) **Default:** This slot has no default. For :ref:`static types <static-types>`, if the field is ``NULL`` then no :attr:`__dict__` gets created for instances. - If the :const:`Py_TPFLAGS_MANAGED_DICT` bit is set in the - :c:member:`~PyTypeObject.tp_dict` field, then - :c:member:`~PyTypeObject.tp_dictoffset` will be set to ``-1``, to indicate - that it is unsafe to use this field. - .. c:member:: initproc PyTypeObject.tp_init @@ -1941,17 +1934,9 @@ and :c:type:`PyType_Type` effectively act as defaults.) This field is not inherited. -.. c:member:: void* PyTypeObject.tp_subclasses - - A collection of subclasses. Internal use only. May be an invalid pointer. +.. c:member:: PyObject* PyTypeObject.tp_subclasses - To get a list of subclasses, call the Python method - :py:meth:`~class.__subclasses__`. - - .. versionchanged:: 3.12 - - For some types, this field does not hold a valid :c:expr:`PyObject*`. - The type was changed to :c:expr:`void*` to indicate this. + List of weak references to subclasses. Internal use only. **Inheritance:** @@ -1963,13 +1948,6 @@ and :c:type:`PyType_Type` effectively act as defaults.) Weak reference list head, for weak references to this type object. Not inherited. Internal use only. - .. versionchanged:: 3.12 - - Internals detail: For the static builtin types this is always ``NULL``, - even if weakrefs are added. Instead, the weakrefs for each are stored - on ``PyInterpreterState``. Use the public C-API or the internal - ``_PyObject_GET_WEAKREFS_LISTPTR()`` macro to avoid the distinction. - **Inheritance:** This field is not inherited. @@ -2019,6 +1997,9 @@ and :c:type:`PyType_Type` effectively act as defaults.) PyErr_Restore(error_type, error_value, error_traceback); } + For this field to be taken into account (even through inheritance), + you must also set the :const:`Py_TPFLAGS_HAVE_FINALIZE` flags bit. + Also, note that, in a garbage collected Python, :c:member:`~PyTypeObject.tp_dealloc` may be called from any Python thread, not just the thread which created the object (if the object @@ -2036,12 +2017,6 @@ and :c:type:`PyType_Type` effectively act as defaults.) .. versionadded:: 3.4 - .. versionchanged:: 3.8 - - Before version 3.8 it was necessary to set the - :const:`Py_TPFLAGS_HAVE_FINALIZE` flags bit in order for this field to be - used. This is no longer required. - .. seealso:: "Safe object finalization" (:pep:`442`) @@ -2079,9 +2054,9 @@ This results in types that are limited relative to types defined in Python: :ref:`sub-interpreters <sub-interpreter-support>`, so they should not include any subinterpreter-specific state. -Also, since :c:type:`PyTypeObject` is only part of the :ref:`Limited API -<stable>` as an opaque struct, any extension modules using static types must be -compiled for a specific Python minor version. +Also, since :c:type:`PyTypeObject` is not part of the :ref:`stable ABI <stable>`, +any extension modules using static types must be compiled for a specific +Python minor version. .. _heap-types: @@ -2554,11 +2529,11 @@ Slot Type typedefs .. c:type:: PyObject *(*descrgetfunc)(PyObject *, PyObject *, PyObject *) - See :c:member:`~PyTypeObject.tp_descr_get`. + See :c:member:`~PyTypeObject.tp_descrget`. .. c:type:: int (*descrsetfunc)(PyObject *, PyObject *, PyObject *) - See :c:member:`~PyTypeObject.tp_descr_set`. + See :c:member:`~PyTypeObject.tp_descrset`. .. c:type:: Py_hash_t (*hashfunc)(PyObject *) @@ -2677,6 +2652,8 @@ A type that supports weakrefs, instance dicts, and hashing:: typedef struct { PyObject_HEAD const char *data; + PyObject *inst_dict; + PyObject *weakreflist; } MyObject; static PyTypeObject MyObject_Type = { @@ -2684,9 +2661,9 @@ A type that supports weakrefs, instance dicts, and hashing:: .tp_name = "mymod.MyObject", .tp_basicsize = sizeof(MyObject), .tp_doc = PyDoc_STR("My objects"), - .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | - Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_MANAGED_DICT | - Py_TPFLAGS_MANAGED_WEAKREF, + .tp_weaklistoffset = offsetof(MyObject, weakreflist), + .tp_dictoffset = offsetof(MyObject, inst_dict), + .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC, .tp_new = myobj_new, .tp_traverse = (traverseproc)myobj_traverse, .tp_clear = (inquiry)myobj_clear, diff --git a/Doc/c-api/unicode.rst b/Doc/c-api/unicode.rst index 99afebd762a456..5d420bfa93cb27 100644 --- a/Doc/c-api/unicode.rst +++ b/Doc/c-api/unicode.rst @@ -477,6 +477,9 @@ APIs: | | | :c:func:`PyObject_Repr`. | +-------------------+---------------------+----------------------------------+ + An unrecognized format character causes all the rest of the format string to be + copied as-is to the result string, and any extra arguments discarded. + .. note:: The width formatter unit is number of characters rather than bytes. The precision formatter unit is number of bytes for ``"%s"`` and @@ -497,11 +500,6 @@ APIs: Support width and precision formatter for ``"%s"``, ``"%A"``, ``"%U"``, ``"%V"``, ``"%S"``, ``"%R"`` added. - .. versionchanged:: 3.12 - An unrecognized format character now sets a :exc:`SystemError`. - In previous versions it caused all the rest of the format string to be - copied as-is to the result string, and any extra arguments discarded. - .. c:function:: PyObject* PyUnicode_FromFormatV(const char *format, va_list vargs) @@ -821,7 +819,7 @@ wchar_t Support most C functions. If *size* is ``NULL`` and the :c:type:`wchar_t*` string contains null characters a :exc:`ValueError` is raised. - Returns a buffer allocated by :c:func:`PyMem_New` (use + Returns a buffer allocated by :c:func:`PyMem_Alloc` (use :c:func:`PyMem_Free` to free it) on success. On error, returns ``NULL`` and *\*size* is undefined. Raises a :exc:`MemoryError` if memory allocation is failed. diff --git a/Doc/c-api/veryhigh.rst b/Doc/c-api/veryhigh.rst index b17818e35ed9cf..7bd47bb9c660a6 100644 --- a/Doc/c-api/veryhigh.rst +++ b/Doc/c-api/veryhigh.rst @@ -39,7 +39,7 @@ the same library that the Python runtime is using. Note that if an otherwise unhandled :exc:`SystemExit` is raised, this function will not return ``1``, but exit the process, as long as - :c:member:`PyConfig.inspect` is zero. + ``Py_InspectFlag`` is not set. .. c:function:: int Py_BytesMain(int argc, char **argv) @@ -95,7 +95,7 @@ the same library that the Python runtime is using. Note that if an otherwise unhandled :exc:`SystemExit` is raised, this function will not return ``-1``, but exit the process, as long as - :c:member:`PyConfig.inspect` is zero. + ``Py_InspectFlag`` is not set. .. c:function:: int PyRun_SimpleFile(FILE *fp, const char *filename) diff --git a/Doc/c-api/weakref.rst b/Doc/c-api/weakref.rst index ace743ba01c5f5..7b32e17a239729 100644 --- a/Doc/c-api/weakref.rst +++ b/Doc/c-api/weakref.rst @@ -35,7 +35,7 @@ as much as it can. callable object that receives notification when *ob* is garbage collected; it should accept a single parameter, which will be the weak reference object itself. *callback* may also be ``None`` or ``NULL``. If *ob* is not a - weakly referencable object, or if *callback* is not callable, ``None``, or + weakly-referencable object, or if *callback* is not callable, ``None``, or ``NULL``, this will return ``NULL`` and raise :exc:`TypeError`. @@ -47,7 +47,7 @@ as much as it can. be a callable object that receives notification when *ob* is garbage collected; it should accept a single parameter, which will be the weak reference object itself. *callback* may also be ``None`` or ``NULL``. If *ob* - is not a weakly referencable object, or if *callback* is not callable, + is not a weakly-referencable object, or if *callback* is not callable, ``None``, or ``NULL``, this will return ``NULL`` and raise :exc:`TypeError`. diff --git a/Doc/conf.py b/Doc/conf.py index 0a436d7affcdb6..e539da539e6551 100644 --- a/Doc/conf.py +++ b/Doc/conf.py @@ -22,11 +22,6 @@ import _tkinter except ImportError: _tkinter = None -# Treat warnings as errors, done here to prevent warnings in Sphinx code from -# causing spurious test failures. -import warnings -warnings.simplefilter('error') -del warnings ''' manpages_url = 'https://manpages.debian.org/{path}' @@ -50,7 +45,7 @@ highlight_language = 'python3' # Minimum version of sphinx required -needs_sphinx = '3.2' +needs_sphinx = '1.8' # Ignore any .rst files in the venv/ directory. exclude_patterns = ['venv/*', 'README.rst'] @@ -79,13 +74,6 @@ 'root_include_title': False # We use the version switcher instead. } -# Override stylesheet fingerprinting for Windows CHM htmlhelp to fix GH-91207 -# https://github.com/python/cpython/issues/91207 -if any('htmlhelp' in arg for arg in sys.argv): - html_style = 'pydoctheme.css' - print("\nWARNING: Windows CHM Help is no longer supported.") - print("It may be removed in the future\n") - # Short title used e.g. for <title> HTML tags. html_short_title = '%s Documentation' % release @@ -249,3 +237,5 @@ # bpo-40204: Disable warnings on Sphinx 2 syntax of the C domain since the # documentation is built with -W (warnings treated as errors). c_warn_on_allowed_pre_v3 = False + +strip_signature_backslash = True diff --git a/Doc/contents.rst b/Doc/contents.rst index 464f93bdf85f95..8690de77bf3d82 100644 --- a/Doc/contents.rst +++ b/Doc/contents.rst @@ -27,4 +27,5 @@ .. toctree:: :hidden: + distutils/index.rst install/index.rst diff --git a/Doc/data/refcounts.dat b/Doc/data/refcounts.dat index 51ccacf13f9e3b..1694cad6f43ba7 100644 --- a/Doc/data/refcounts.dat +++ b/Doc/data/refcounts.dat @@ -796,18 +796,10 @@ PyEval_SetProfile:void::: PyEval_SetProfile:Py_tracefunc:func:: PyEval_SetProfile:PyObject*:obj:+1: -PyEval_SetProfileAllThreads:void::: -PyEval_SetProfileAllThreads:Py_tracefunc:func:: -PyEval_SetProfileAllThreads:PyObject*:obj:+1: - PyEval_SetTrace:void::: PyEval_SetTrace:Py_tracefunc:func:: PyEval_SetTrace:PyObject*:obj:+1: -PyEval_SetTraceAllThreads:void::: -PyEval_SetTraceAllThreads:Py_tracefunc:func:: -PyEval_SetTraceAllThreads:PyObject*:obj:+1: - PyEval_EvalCode:PyObject*::+1: PyEval_EvalCode:PyObject*:co:0: PyEval_EvalCode:PyObject*:globals:0: diff --git a/Doc/data/stable_abi.dat b/Doc/data/stable_abi.dat index fde62eacd00a7c..82cd5796efd27d 100644 --- a/Doc/data/stable_abi.dat +++ b/Doc/data/stable_abi.dat @@ -783,8 +783,6 @@ function,PyUnicode_WriteChar,3.7,, type,PyVarObject,3.2,,members member,PyVarObject.ob_base,3.2,, member,PyVarObject.ob_size,3.2,, -function,PyVectorcall_Call,3.12,, -function,PyVectorcall_NARGS,3.12,, type,PyWeakReference,3.2,,opaque function,PyWeakref_GetObject,3.2,, function,PyWeakref_NewProxy,3.2,, @@ -885,5 +883,4 @@ type,symtable,3.2,,opaque type,ternaryfunc,3.2,, type,traverseproc,3.2,, type,unaryfunc,3.2,, -type,vectorcallfunc,3.12,, type,visitproc,3.2,, diff --git a/Doc/distributing/index.rst b/Doc/distributing/index.rst index 2ae2726d4e4b92..136cf4e77b1543 100644 --- a/Doc/distributing/index.rst +++ b/Doc/distributing/index.rst @@ -41,21 +41,21 @@ Key terms file format standards. They maintain a variety of tools, documentation and issue trackers on both `GitHub <https://github.com/pypa>`__ and `Bitbucket <https://bitbucket.org/pypa/>`__. -* ``distutils`` is the original build and distribution system first added - to the Python standard library in 1998. While direct use of ``distutils`` +* :mod:`distutils` is the original build and distribution system first added + to the Python standard library in 1998. While direct use of :mod:`distutils` is being phased out, it still laid the foundation for the current packaging and distribution infrastructure, and it not only remains part of the standard library, but its name lives on in other ways (such as the name of the mailing list used to coordinate Python packaging standards development). -* `setuptools`_ is a (largely) drop-in replacement for ``distutils`` first +* `setuptools`_ is a (largely) drop-in replacement for :mod:`distutils` first published in 2004. Its most notable addition over the unmodified - ``distutils`` tools was the ability to declare dependencies on other + :mod:`distutils` tools was the ability to declare dependencies on other packages. It is currently recommended as a more regularly updated - alternative to ``distutils`` that offers consistent support for more + alternative to :mod:`distutils` that offers consistent support for more recent packaging standards across a wide range of Python versions. * `wheel`_ (in this context) is a project that adds the ``bdist_wheel`` - command to ``distutils``/`setuptools`_. This produces a cross platform + command to :mod:`distutils`/`setuptools`_. This produces a cross platform binary packaging format (called "wheels" or "wheel files" and defined in :pep:`427`) that allows Python libraries, even those including binary extensions, to be installed on a system without needing to be built diff --git a/Doc/distutils/_setuptools_disclaimer.rst b/Doc/distutils/_setuptools_disclaimer.rst new file mode 100644 index 00000000000000..cc75858326d44d --- /dev/null +++ b/Doc/distutils/_setuptools_disclaimer.rst @@ -0,0 +1,5 @@ +.. note:: + + This document is being retained solely until the ``setuptools`` documentation + at https://setuptools.readthedocs.io/en/latest/setuptools.html + independently covers all of the relevant information currently included here. diff --git a/Doc/distutils/apiref.rst b/Doc/distutils/apiref.rst new file mode 100644 index 00000000000000..18a4aac4f70895 --- /dev/null +++ b/Doc/distutils/apiref.rst @@ -0,0 +1,2041 @@ +.. _api-reference: + +************* +API Reference +************* + +.. seealso:: + + `New and changed setup.py arguments in setuptools`_ + The ``setuptools`` project adds new capabilities to the ``setup`` function + and other APIs, makes the API consistent across different Python versions, + and is hence recommended over using ``distutils`` directly. + +.. _New and changed setup.py arguments in setuptools: https://setuptools.readthedocs.io/en/latest/setuptools.html#new-and-changed-setup-keywords + +.. include:: ./_setuptools_disclaimer.rst + +:mod:`distutils.core` --- Core Distutils functionality +====================================================== + +.. module:: distutils.core + :synopsis: The core Distutils functionality + + +The :mod:`distutils.core` module is the only module that needs to be installed +to use the Distutils. It provides the :func:`setup` (which is called from the +setup script). Indirectly provides the :class:`distutils.dist.Distribution` and +:class:`distutils.cmd.Command` class. + + +.. function:: setup(arguments) + + The basic do-everything function that does most everything you could ever ask + for from a Distutils method. + + The setup function takes a large number of arguments. These are laid out in the + following table. + + .. tabularcolumns:: |l|L|L| + + +--------------------+--------------------------------+-------------------------------------------------------------+ + | argument name | value | type | + +====================+================================+=============================================================+ + | *name* | The name of the package | a string | + +--------------------+--------------------------------+-------------------------------------------------------------+ + | *version* | The version number of the | a string | + | | package; see | | + | | :mod:`distutils.version` | | + +--------------------+--------------------------------+-------------------------------------------------------------+ + | *description* | A single line describing the | a string | + | | package | | + +--------------------+--------------------------------+-------------------------------------------------------------+ + | *long_description* | Longer description of the | a string | + | | package | | + +--------------------+--------------------------------+-------------------------------------------------------------+ + | *author* | The name of the package author | a string | + +--------------------+--------------------------------+-------------------------------------------------------------+ + | *author_email* | The email address of the | a string | + | | package author | | + +--------------------+--------------------------------+-------------------------------------------------------------+ + | *maintainer* | The name of the current | a string | + | | maintainer, if different from | | + | | the author. Note that if | | + | | the maintainer is provided, | | + | | distutils will use it as the | | + | | author in :file:`PKG-INFO` | | + +--------------------+--------------------------------+-------------------------------------------------------------+ + | *maintainer_email* | The email address of the | a string | + | | current maintainer, if | | + | | different from the author | | + +--------------------+--------------------------------+-------------------------------------------------------------+ + | *url* | A URL for the package | a string | + | | (homepage) | | + +--------------------+--------------------------------+-------------------------------------------------------------+ + | *download_url* | A URL to download the package | a string | + +--------------------+--------------------------------+-------------------------------------------------------------+ + | *packages* | A list of Python packages that | a list of strings | + | | distutils will manipulate | | + +--------------------+--------------------------------+-------------------------------------------------------------+ + | *py_modules* | A list of Python modules that | a list of strings | + | | distutils will manipulate | | + +--------------------+--------------------------------+-------------------------------------------------------------+ + | *scripts* | A list of standalone script | a list of strings | + | | files to be built and | | + | | installed | | + +--------------------+--------------------------------+-------------------------------------------------------------+ + | *ext_modules* | A list of Python extensions to | a list of instances of | + | | be built | :class:`distutils.core.Extension` | + +--------------------+--------------------------------+-------------------------------------------------------------+ + | *classifiers* | A list of categories for the | a list of strings; valid classifiers are listed on `PyPI | + | | package | <https://pypi.org/classifiers>`_. | + +--------------------+--------------------------------+-------------------------------------------------------------+ + | *distclass* | the :class:`Distribution` | a subclass of | + | | class to use | :class:`distutils.core.Distribution` | + +--------------------+--------------------------------+-------------------------------------------------------------+ + | *script_name* | The name of the setup.py | a string | + | | script - defaults to | | + | | ``sys.argv[0]`` | | + +--------------------+--------------------------------+-------------------------------------------------------------+ + | *script_args* | Arguments to supply to the | a list of strings | + | | setup script | | + +--------------------+--------------------------------+-------------------------------------------------------------+ + | *options* | default options for the setup | a dictionary | + | | script | | + +--------------------+--------------------------------+-------------------------------------------------------------+ + | *license* | The license for the package | a string | + +--------------------+--------------------------------+-------------------------------------------------------------+ + | *keywords* | Descriptive meta-data, see | a list of strings or a comma-separated string | + | | :pep:`314` | | + +--------------------+--------------------------------+-------------------------------------------------------------+ + | *platforms* | | a list of strings or a comma-separated string | + +--------------------+--------------------------------+-------------------------------------------------------------+ + | *cmdclass* | A mapping of command names to | a dictionary | + | | :class:`Command` subclasses | | + +--------------------+--------------------------------+-------------------------------------------------------------+ + | *data_files* | A list of data files to | a list | + | | install | | + +--------------------+--------------------------------+-------------------------------------------------------------+ + | *package_dir* | A mapping of package to | a dictionary | + | | directory names | | + +--------------------+--------------------------------+-------------------------------------------------------------+ + + + +.. function:: run_setup(script_name[, script_args=None, stop_after='run']) + + Run a setup script in a somewhat controlled environment, and return the + :class:`distutils.dist.Distribution` instance that drives things. This is + useful if you need to find out the distribution meta-data (passed as keyword + args from *script* to :func:`setup`), or the contents of the config files or + command-line. + + *script_name* is a file that will be read and run with :func:`exec`. ``sys.argv[0]`` + will be replaced with *script* for the duration of the call. *script_args* is a + list of strings; if supplied, ``sys.argv[1:]`` will be replaced by *script_args* + for the duration of the call. + + *stop_after* tells :func:`setup` when to stop processing; possible values: + + .. tabularcolumns:: |l|L| + + +---------------+---------------------------------------------+ + | value | description | + +===============+=============================================+ + | *init* | Stop after the :class:`Distribution` | + | | instance has been created and populated | + | | with the keyword arguments to :func:`setup` | + +---------------+---------------------------------------------+ + | *config* | Stop after config files have been parsed | + | | (and their data stored in the | + | | :class:`Distribution` instance) | + +---------------+---------------------------------------------+ + | *commandline* | Stop after the command-line | + | | (``sys.argv[1:]`` or *script_args*) have | + | | been parsed (and the data stored in the | + | | :class:`Distribution` instance.) | + +---------------+---------------------------------------------+ + | *run* | Stop after all commands have been run (the | + | | same as if :func:`setup` had been called | + | | in the usual way). This is the default | + | | value. | + +---------------+---------------------------------------------+ + +In addition, the :mod:`distutils.core` module exposed a number of classes that +live elsewhere. + +* :class:`~distutils.extension.Extension` from :mod:`distutils.extension` + +* :class:`~distutils.cmd.Command` from :mod:`distutils.cmd` + +* :class:`~distutils.dist.Distribution` from :mod:`distutils.dist` + +A short description of each of these follows, but see the relevant module for +the full reference. + + +.. class:: Extension + + The Extension class describes a single C or C++ extension module in a setup + script. It accepts the following keyword arguments in its constructor: + + .. tabularcolumns:: |l|L|l| + + +------------------------+--------------------------------+---------------------------+ + | argument name | value | type | + +========================+================================+===========================+ + | *name* | the full name of the | a string | + | | extension, including any | | + | | packages --- ie. *not* a | | + | | filename or pathname, but | | + | | Python dotted name | | + +------------------------+--------------------------------+---------------------------+ + | *sources* | list of source filenames, | a list of strings | + | | relative to the distribution | | + | | root (where the setup script | | + | | lives), in Unix form | | + | | (slash-separated) for | | + | | portability. | | + | | Source files may be C, C++, | | + | | SWIG (.i), platform-specific | | + | | resource files, or whatever | | + | | else is recognized by the | | + | | :command:`build_ext` command | | + | | as source for a Python | | + | | extension. | | + +------------------------+--------------------------------+---------------------------+ + | *include_dirs* | list of directories to search | a list of strings | + | | for C/C++ header files (in | | + | | Unix form for portability) | | + +------------------------+--------------------------------+---------------------------+ + | *define_macros* | list of macros to define; each | a list of tuples | + | | macro is defined using a | | + | | 2-tuple ``(name, value)``, | | + | | where *value* is | | + | | either the string to define it | | + | | to or ``None`` to define it | | + | | without a particular value | | + | | (equivalent of ``#define FOO`` | | + | | in source or :option:`!-DFOO` | | + | | on Unix C compiler command | | + | | line) | | + +------------------------+--------------------------------+---------------------------+ + | *undef_macros* | list of macros to undefine | a list of strings | + | | explicitly | | + +------------------------+--------------------------------+---------------------------+ + | *library_dirs* | list of directories to search | a list of strings | + | | for C/C++ libraries at link | | + | | time | | + +------------------------+--------------------------------+---------------------------+ + | *libraries* | list of library names (not | a list of strings | + | | filenames or paths) to link | | + | | against | | + +------------------------+--------------------------------+---------------------------+ + | *runtime_library_dirs* | list of directories to search | a list of strings | + | | for C/C++ libraries at run | | + | | time (for shared extensions, | | + | | this is when the extension is | | + | | loaded) | | + +------------------------+--------------------------------+---------------------------+ + | *extra_objects* | list of extra files to link | a list of strings | + | | with (eg. object files not | | + | | implied by 'sources', static | | + | | library that must be | | + | | explicitly specified, binary | | + | | resource files, etc.) | | + +------------------------+--------------------------------+---------------------------+ + | *extra_compile_args* | any extra platform- and | a list of strings | + | | compiler-specific information | | + | | to use when compiling the | | + | | source files in 'sources'. For | | + | | platforms and compilers where | | + | | a command line makes sense, | | + | | this is typically a list of | | + | | command-line arguments, but | | + | | for other platforms it could | | + | | be anything. | | + +------------------------+--------------------------------+---------------------------+ + | *extra_link_args* | any extra platform- and | a list of strings | + | | compiler-specific information | | + | | to use when linking object | | + | | files together to create the | | + | | extension (or to create a new | | + | | static Python interpreter). | | + | | Similar interpretation as for | | + | | 'extra_compile_args'. | | + +------------------------+--------------------------------+---------------------------+ + | *export_symbols* | list of symbols to be exported | a list of strings | + | | from a shared extension. Not | | + | | used on all platforms, and not | | + | | generally necessary for Python | | + | | extensions, which typically | | + | | export exactly one symbol: | | + | | ``init`` + extension_name. | | + +------------------------+--------------------------------+---------------------------+ + | *depends* | list of files that the | a list of strings | + | | extension depends on | | + +------------------------+--------------------------------+---------------------------+ + | *language* | extension language (i.e. | a string | + | | ``'c'``, ``'c++'``, | | + | | ``'objc'``). Will be detected | | + | | from the source extensions if | | + | | not provided. | | + +------------------------+--------------------------------+---------------------------+ + | *optional* | specifies that a build failure | a boolean | + | | in the extension should not | | + | | abort the build process, but | | + | | simply skip the extension. | | + +------------------------+--------------------------------+---------------------------+ + + .. versionchanged:: 3.8 + + On Unix, C extensions are no longer linked to libpython except on + Android and Cygwin. + + +.. class:: Distribution + + A :class:`Distribution` describes how to build, install and package up a Python + software package. + + See the :func:`setup` function for a list of keyword arguments accepted by the + Distribution constructor. :func:`setup` creates a Distribution instance. + + .. versionchanged:: 3.7 + :class:`~distutils.core.Distribution` now warns if ``classifiers``, + ``keywords`` and ``platforms`` fields are not specified as a list or + a string. + +.. class:: Command + + A :class:`Command` class (or rather, an instance of one of its subclasses) + implement a single distutils command. + + +:mod:`distutils.ccompiler` --- CCompiler base class +=================================================== + +.. module:: distutils.ccompiler + :synopsis: Abstract CCompiler class + + +This module provides the abstract base class for the :class:`CCompiler` +classes. A :class:`CCompiler` instance can be used for all the compile and +link steps needed to build a single project. Methods are provided to set +options for the compiler --- macro definitions, include directories, link path, +libraries and the like. + +This module provides the following functions. + + +.. function:: gen_lib_options(compiler, library_dirs, runtime_library_dirs, libraries) + + Generate linker options for searching library directories and linking with + specific libraries. *libraries* and *library_dirs* are, respectively, lists of + library names (not filenames!) and search directories. Returns a list of + command-line options suitable for use with some compiler (depending on the two + format strings passed in). + + +.. function:: gen_preprocess_options(macros, include_dirs) + + Generate C pre-processor options (:option:`!-D`, :option:`!-U`, :option:`!-I`) as + used by at least two types of compilers: the typical Unix compiler and Visual + C++. *macros* is the usual thing, a list of 1- or 2-tuples, where ``(name,)`` + means undefine (:option:`!-U`) macro *name*, and ``(name, value)`` means define + (:option:`!-D`) macro *name* to *value*. *include_dirs* is just a list of + directory names to be added to the header file search path (:option:`!-I`). + Returns a list of command-line options suitable for either Unix compilers or + Visual C++. + + +.. function:: get_default_compiler(osname, platform) + + Determine the default compiler to use for the given platform. + + *osname* should be one of the standard Python OS names (i.e. the ones returned + by ``os.name``) and *platform* the common value returned by ``sys.platform`` for + the platform in question. + + The default values are ``os.name`` and ``sys.platform`` in case the parameters + are not given. + + +.. function:: new_compiler(plat=None, compiler=None, verbose=0, dry_run=0, force=0) + + Factory function to generate an instance of some CCompiler subclass for the + supplied platform/compiler combination. *plat* defaults to ``os.name`` (eg. + ``'posix'``, ``'nt'``), and *compiler* defaults to the default compiler for + that platform. Currently only ``'posix'`` and ``'nt'`` are supported, and the + default compilers are "traditional Unix interface" (:class:`UnixCCompiler` + class) and Visual C++ (:class:`MSVCCompiler` class). Note that it's perfectly + possible to ask for a Unix compiler object under Windows, and a Microsoft + compiler object under Unix---if you supply a value for *compiler*, *plat* is + ignored. + + .. % Is the posix/nt only thing still true? macOS seems to work, and + .. % returns a UnixCCompiler instance. How to document this... hmm. + + +.. function:: show_compilers() + + Print list of available compilers (used by the :option:`!--help-compiler` options + to :command:`build`, :command:`build_ext`, :command:`build_clib`). + + +.. class:: CCompiler([verbose=0, dry_run=0, force=0]) + + The abstract base class :class:`CCompiler` defines the interface that must be + implemented by real compiler classes. The class also has some utility methods + used by several compiler classes. + + The basic idea behind a compiler abstraction class is that each instance can be + used for all the compile/link steps in building a single project. Thus, + attributes common to all of those compile and link steps --- include + directories, macros to define, libraries to link against, etc. --- are + attributes of the compiler instance. To allow for variability in how individual + files are treated, most of those attributes may be varied on a per-compilation + or per-link basis. + + The constructor for each subclass creates an instance of the Compiler object. + Flags are *verbose* (show verbose output), *dry_run* (don't actually execute the + steps) and *force* (rebuild everything, regardless of dependencies). All of + these flags default to ``0`` (off). Note that you probably don't want to + instantiate :class:`CCompiler` or one of its subclasses directly - use the + :func:`distutils.CCompiler.new_compiler` factory function instead. + + The following methods allow you to manually alter compiler options for the + instance of the Compiler class. + + + .. method:: CCompiler.add_include_dir(dir) + + Add *dir* to the list of directories that will be searched for header files. + The compiler is instructed to search directories in the order in which they are + supplied by successive calls to :meth:`add_include_dir`. + + + .. method:: CCompiler.set_include_dirs(dirs) + + Set the list of directories that will be searched to *dirs* (a list of strings). + Overrides any preceding calls to :meth:`add_include_dir`; subsequent calls to + :meth:`add_include_dir` add to the list passed to :meth:`set_include_dirs`. + This does not affect any list of standard include directories that the compiler + may search by default. + + + .. method:: CCompiler.add_library(libname) + + Add *libname* to the list of libraries that will be included in all links driven + by this compiler object. Note that *libname* should \*not\* be the name of a + file containing a library, but the name of the library itself: the actual + filename will be inferred by the linker, the compiler, or the compiler class + (depending on the platform). + + The linker will be instructed to link against libraries in the order they were + supplied to :meth:`add_library` and/or :meth:`set_libraries`. It is perfectly + valid to duplicate library names; the linker will be instructed to link against + libraries as many times as they are mentioned. + + + .. method:: CCompiler.set_libraries(libnames) + + Set the list of libraries to be included in all links driven by this compiler + object to *libnames* (a list of strings). This does not affect any standard + system libraries that the linker may include by default. + + + .. method:: CCompiler.add_library_dir(dir) + + Add *dir* to the list of directories that will be searched for libraries + specified to :meth:`add_library` and :meth:`set_libraries`. The linker will be + instructed to search for libraries in the order they are supplied to + :meth:`add_library_dir` and/or :meth:`set_library_dirs`. + + + .. method:: CCompiler.set_library_dirs(dirs) + + Set the list of library search directories to *dirs* (a list of strings). This + does not affect any standard library search path that the linker may search by + default. + + + .. method:: CCompiler.add_runtime_library_dir(dir) + + Add *dir* to the list of directories that will be searched for shared libraries + at runtime. + + + .. method:: CCompiler.set_runtime_library_dirs(dirs) + + Set the list of directories to search for shared libraries at runtime to *dirs* + (a list of strings). This does not affect any standard search path that the + runtime linker may search by default. + + + .. method:: CCompiler.define_macro(name[, value=None]) + + Define a preprocessor macro for all compilations driven by this compiler object. + The optional parameter *value* should be a string; if it is not supplied, then + the macro will be defined without an explicit value and the exact outcome + depends on the compiler used. + + .. XXX true? does ANSI say anything about this? + + + .. method:: CCompiler.undefine_macro(name) + + Undefine a preprocessor macro for all compilations driven by this compiler + object. If the same macro is defined by :meth:`define_macro` and + undefined by :meth:`undefine_macro` the last call takes precedence + (including multiple redefinitions or undefinitions). If the macro is + redefined/undefined on a per-compilation basis (ie. in the call to + :meth:`compile`), then that takes precedence. + + + .. method:: CCompiler.add_link_object(object) + + Add *object* to the list of object files (or analogues, such as explicitly named + library files or the output of "resource compilers") to be included in every + link driven by this compiler object. + + + .. method:: CCompiler.set_link_objects(objects) + + Set the list of object files (or analogues) to be included in every link to + *objects*. This does not affect any standard object files that the linker may + include by default (such as system libraries). + + The following methods implement methods for autodetection of compiler options, + providing some functionality similar to GNU :program:`autoconf`. + + + .. method:: CCompiler.detect_language(sources) + + Detect the language of a given file, or list of files. Uses the instance + attributes :attr:`language_map` (a dictionary), and :attr:`language_order` (a + list) to do the job. + + + .. method:: CCompiler.find_library_file(dirs, lib[, debug=0]) + + Search the specified list of directories for a static or shared library file + *lib* and return the full path to that file. If *debug* is true, look for a + debugging version (if that makes sense on the current platform). Return + ``None`` if *lib* wasn't found in any of the specified directories. + + + .. method:: CCompiler.has_function(funcname [, includes=None, include_dirs=None, libraries=None, library_dirs=None]) + + Return a boolean indicating whether *funcname* is supported on the current + platform. The optional arguments can be used to augment the compilation + environment by providing additional include files and paths and libraries and + paths. + + + .. method:: CCompiler.library_dir_option(dir) + + Return the compiler option to add *dir* to the list of directories searched for + libraries. + + + .. method:: CCompiler.library_option(lib) + + Return the compiler option to add *lib* to the list of libraries linked into the + shared library or executable. + + + .. method:: CCompiler.runtime_library_dir_option(dir) + + Return the compiler option to add *dir* to the list of directories searched for + runtime libraries. + + + .. method:: CCompiler.set_executables(**args) + + Define the executables (and options for them) that will be run to perform the + various stages of compilation. The exact set of executables that may be + specified here depends on the compiler class (via the 'executables' class + attribute), but most will have: + + +--------------+------------------------------------------+ + | attribute | description | + +==============+==========================================+ + | *compiler* | the C/C++ compiler | + +--------------+------------------------------------------+ + | *linker_so* | linker used to create shared objects and | + | | libraries | + +--------------+------------------------------------------+ + | *linker_exe* | linker used to create binary executables | + +--------------+------------------------------------------+ + | *archiver* | static library creator | + +--------------+------------------------------------------+ + + On platforms with a command-line (Unix, DOS/Windows), each of these is a string + that will be split into executable name and (optional) list of arguments. + (Splitting the string is done similarly to how Unix shells operate: words are + delimited by spaces, but quotes and backslashes can override this. See + :func:`distutils.util.split_quoted`.) + + The following methods invoke stages in the build process. + + + .. method:: CCompiler.compile(sources[, output_dir=None, macros=None, include_dirs=None, debug=0, extra_preargs=None, extra_postargs=None, depends=None]) + + Compile one or more source files. Generates object files (e.g. transforms a + :file:`.c` file to a :file:`.o` file.) + + *sources* must be a list of filenames, most likely C/C++ files, but in reality + anything that can be handled by a particular compiler and compiler class (eg. + :class:`MSVCCompiler` can handle resource files in *sources*). Return a list of + object filenames, one per source filename in *sources*. Depending on the + implementation, not all source files will necessarily be compiled, but all + corresponding object filenames will be returned. + + If *output_dir* is given, object files will be put under it, while retaining + their original path component. That is, :file:`foo/bar.c` normally compiles to + :file:`foo/bar.o` (for a Unix implementation); if *output_dir* is *build*, then + it would compile to :file:`build/foo/bar.o`. + + *macros*, if given, must be a list of macro definitions. A macro definition is + either a ``(name, value)`` 2-tuple or a ``(name,)`` 1-tuple. The former defines + a macro; if the value is ``None``, the macro is defined without an explicit + value. The 1-tuple case undefines a macro. Later + definitions/redefinitions/undefinitions take precedence. + + *include_dirs*, if given, must be a list of strings, the directories to add to + the default include file search path for this compilation only. + + *debug* is a boolean; if true, the compiler will be instructed to output debug + symbols in (or alongside) the object file(s). + + *extra_preargs* and *extra_postargs* are implementation-dependent. On platforms + that have the notion of a command-line (e.g. Unix, DOS/Windows), they are most + likely lists of strings: extra command-line arguments to prepend/append to the + compiler command line. On other platforms, consult the implementation class + documentation. In any event, they are intended as an escape hatch for those + occasions when the abstract compiler framework doesn't cut the mustard. + + *depends*, if given, is a list of filenames that all targets depend on. If a + source file is older than any file in depends, then the source file will be + recompiled. This supports dependency tracking, but only at a coarse + granularity. + + Raises :exc:`CompileError` on failure. + + + .. method:: CCompiler.create_static_lib(objects, output_libname[, output_dir=None, debug=0, target_lang=None]) + + Link a bunch of stuff together to create a static library file. The "bunch of + stuff" consists of the list of object files supplied as *objects*, the extra + object files supplied to :meth:`add_link_object` and/or + :meth:`set_link_objects`, the libraries supplied to :meth:`add_library` and/or + :meth:`set_libraries`, and the libraries supplied as *libraries* (if any). + + *output_libname* should be a library name, not a filename; the filename will be + inferred from the library name. *output_dir* is the directory where the library + file will be put. + + .. XXX defaults to what? + + *debug* is a boolean; if true, debugging information will be included in the + library (note that on most platforms, it is the compile step where this matters: + the *debug* flag is included here just for consistency). + + *target_lang* is the target language for which the given objects are being + compiled. This allows specific linkage time treatment of certain languages. + + Raises :exc:`LibError` on failure. + + + .. method:: CCompiler.link(target_desc, objects, output_filename[, output_dir=None, libraries=None, library_dirs=None, runtime_library_dirs=None, export_symbols=None, debug=0, extra_preargs=None, extra_postargs=None, build_temp=None, target_lang=None]) + + Link a bunch of stuff together to create an executable or shared library file. + + The "bunch of stuff" consists of the list of object files supplied as *objects*. + *output_filename* should be a filename. If *output_dir* is supplied, + *output_filename* is relative to it (i.e. *output_filename* can provide + directory components if needed). + + *libraries* is a list of libraries to link against. These are library names, + not filenames, since they're translated into filenames in a platform-specific + way (eg. *foo* becomes :file:`libfoo.a` on Unix and :file:`foo.lib` on + DOS/Windows). However, they can include a directory component, which means the + linker will look in that specific directory rather than searching all the normal + locations. + + *library_dirs*, if supplied, should be a list of directories to search for + libraries that were specified as bare library names (ie. no directory + component). These are on top of the system default and those supplied to + :meth:`add_library_dir` and/or :meth:`set_library_dirs`. *runtime_library_dirs* + is a list of directories that will be embedded into the shared library and used + to search for other shared libraries that \*it\* depends on at run-time. (This + may only be relevant on Unix.) + + *export_symbols* is a list of symbols that the shared library will export. + (This appears to be relevant only on Windows.) + + *debug* is as for :meth:`compile` and :meth:`create_static_lib`, with the + slight distinction that it actually matters on most platforms (as opposed to + :meth:`create_static_lib`, which includes a *debug* flag mostly for form's + sake). + + *extra_preargs* and *extra_postargs* are as for :meth:`compile` (except of + course that they supply command-line arguments for the particular linker being + used). + + *target_lang* is the target language for which the given objects are being + compiled. This allows specific linkage time treatment of certain languages. + + Raises :exc:`LinkError` on failure. + + + .. method:: CCompiler.link_executable(objects, output_progname[, output_dir=None, libraries=None, library_dirs=None, runtime_library_dirs=None, debug=0, extra_preargs=None, extra_postargs=None, target_lang=None]) + + Link an executable. *output_progname* is the name of the file executable, while + *objects* are a list of object filenames to link in. Other arguments are as for + the :meth:`link` method. + + + .. method:: CCompiler.link_shared_lib(objects, output_libname[, output_dir=None, libraries=None, library_dirs=None, runtime_library_dirs=None, export_symbols=None, debug=0, extra_preargs=None, extra_postargs=None, build_temp=None, target_lang=None]) + + Link a shared library. *output_libname* is the name of the output library, + while *objects* is a list of object filenames to link in. Other arguments are + as for the :meth:`link` method. + + + .. method:: CCompiler.link_shared_object(objects, output_filename[, output_dir=None, libraries=None, library_dirs=None, runtime_library_dirs=None, export_symbols=None, debug=0, extra_preargs=None, extra_postargs=None, build_temp=None, target_lang=None]) + + Link a shared object. *output_filename* is the name of the shared object that + will be created, while *objects* is a list of object filenames to link in. + Other arguments are as for the :meth:`link` method. + + + .. method:: CCompiler.preprocess(source[, output_file=None, macros=None, include_dirs=None, extra_preargs=None, extra_postargs=None]) + + Preprocess a single C/C++ source file, named in *source*. Output will be written + to file named *output_file*, or *stdout* if *output_file* not supplied. + *macros* is a list of macro definitions as for :meth:`compile`, which will + augment the macros set with :meth:`define_macro` and :meth:`undefine_macro`. + *include_dirs* is a list of directory names that will be added to the default + list, in the same way as :meth:`add_include_dir`. + + Raises :exc:`PreprocessError` on failure. + + The following utility methods are defined by the :class:`CCompiler` class, for + use by the various concrete subclasses. + + + .. method:: CCompiler.executable_filename(basename[, strip_dir=0, output_dir='']) + + Returns the filename of the executable for the given *basename*. Typically for + non-Windows platforms this is the same as the basename, while Windows will get + a :file:`.exe` added. + + + .. method:: CCompiler.library_filename(libname[, lib_type='static', strip_dir=0, output_dir='']) + + Returns the filename for the given library name on the current platform. On Unix + a library with *lib_type* of ``'static'`` will typically be of the form + :file:`liblibname.a`, while a *lib_type* of ``'dynamic'`` will be of the form + :file:`liblibname.so`. + + + .. method:: CCompiler.object_filenames(source_filenames[, strip_dir=0, output_dir='']) + + Returns the name of the object files for the given source files. + *source_filenames* should be a list of filenames. + + + .. method:: CCompiler.shared_object_filename(basename[, strip_dir=0, output_dir='']) + + Returns the name of a shared object file for the given file name *basename*. + + + .. method:: CCompiler.execute(func, args[, msg=None, level=1]) + + Invokes :func:`distutils.util.execute`. This method invokes a Python function + *func* with the given arguments *args*, after logging and taking into account + the *dry_run* flag. + + + .. method:: CCompiler.spawn(cmd) + + Invokes :func:`distutils.util.spawn`. This invokes an external process to run + the given command. + + + .. method:: CCompiler.mkpath(name[, mode=511]) + + Invokes :func:`distutils.dir_util.mkpath`. This creates a directory and any + missing ancestor directories. + + + .. method:: CCompiler.move_file(src, dst) + + Invokes :meth:`distutils.file_util.move_file`. Renames *src* to *dst*. + + + .. method:: CCompiler.announce(msg[, level=1]) + + Write a message using :func:`distutils.log.debug`. + + + .. method:: CCompiler.warn(msg) + + Write a warning message *msg* to standard error. + + + .. method:: CCompiler.debug_print(msg) + + If the *debug* flag is set on this :class:`CCompiler` instance, print *msg* to + standard output, otherwise do nothing. + +.. % \subsection{Compiler-specific modules} +.. % +.. % The following modules implement concrete subclasses of the abstract +.. % \class{CCompiler} class. They should not be instantiated directly, but should +.. % be created using \function{distutils.ccompiler.new_compiler()} factory +.. % function. + + +:mod:`distutils.unixccompiler` --- Unix C Compiler +================================================== + +.. module:: distutils.unixccompiler + :synopsis: UNIX C Compiler + + +This module provides the :class:`UnixCCompiler` class, a subclass of +:class:`CCompiler` that handles the typical Unix-style command-line C compiler: + +* macros defined with :option:`!-Dname[=value]` + +* macros undefined with :option:`!-Uname` + +* include search directories specified with :option:`!-Idir` + +* libraries specified with :option:`!-llib` + +* library search directories specified with :option:`!-Ldir` + +* compile handled by :program:`cc` (or similar) executable with :option:`!-c` + option: compiles :file:`.c` to :file:`.o` + +* link static library handled by :program:`ar` command (possibly with + :program:`ranlib`) + +* link shared library handled by :program:`cc` :option:`!-shared` + + +:mod:`distutils.msvccompiler` --- Microsoft Compiler +==================================================== + +.. module:: distutils.msvccompiler + :synopsis: Microsoft Compiler + +.. XXX: This is *waaaaay* out of date! + +This module provides :class:`MSVCCompiler`, an implementation of the abstract +:class:`CCompiler` class for Microsoft Visual Studio. Typically, extension +modules need to be compiled with the same compiler that was used to compile +Python. For Python 2.3 and earlier, the compiler was Visual Studio 6. For Python +2.4 and 2.5, the compiler is Visual Studio .NET 2003. + +:class:`MSVCCompiler` will normally choose the right compiler, linker etc. on +its own. To override this choice, the environment variables *DISTUTILS_USE_SDK* +and *MSSdk* must be both set. *MSSdk* indicates that the current environment has +been setup by the SDK's ``SetEnv.Cmd`` script, or that the environment variables +had been registered when the SDK was installed; *DISTUTILS_USE_SDK* indicates +that the distutils user has made an explicit choice to override the compiler +selection by :class:`MSVCCompiler`. + + +:mod:`distutils.bcppcompiler` --- Borland Compiler +================================================== + +.. module:: distutils.bcppcompiler + + +This module provides :class:`BorlandCCompiler`, a subclass of the abstract +:class:`CCompiler` class for the Borland C++ compiler. + + +:mod:`distutils.cygwincompiler` --- Cygwin Compiler +=================================================== + +.. module:: distutils.cygwinccompiler + + +This module provides the :class:`CygwinCCompiler` class, a subclass of +:class:`UnixCCompiler` that handles the Cygwin port of the GNU C compiler to +Windows. It also contains the Mingw32CCompiler class which handles the mingw32 +port of GCC (same as cygwin in no-cygwin mode). + + +:mod:`distutils.archive_util` --- Archiving utilities +====================================================== + +.. module:: distutils.archive_util + :synopsis: Utility functions for creating archive files (tarballs, zip files, ...) + + +This module provides a few functions for creating archive files, such as +tarballs or zipfiles. + + +.. function:: make_archive(base_name, format[, root_dir=None, base_dir=None, verbose=0, dry_run=0]) + + Create an archive file (eg. ``zip`` or ``tar``). *base_name* is the name of + the file to create, minus any format-specific extension; *format* is the + archive format: one of ``zip``, ``tar``, ``gztar``, ``bztar``, ``xztar``, or + ``ztar``. *root_dir* is a directory that will be the root directory of the + archive; ie. we typically ``chdir`` into *root_dir* before creating the + archive. *base_dir* is the directory where we start archiving from; ie. + *base_dir* will be the common prefix of all files and directories in the + archive. *root_dir* and *base_dir* both default to the current directory. + Returns the name of the archive file. + + .. versionchanged:: 3.5 + Added support for the ``xztar`` format. + + +.. function:: make_tarball(base_name, base_dir[, compress='gzip', verbose=0, dry_run=0]) + + 'Create an (optional compressed) archive as a tar file from all files in and + under *base_dir*. *compress* must be ``'gzip'`` (the default), + ``'bzip2'``, ``'xz'``, ``'compress'``, or ``None``. For the ``'compress'`` + method the compression utility named by :program:`compress` must be on the + default program search path, so this is probably Unix-specific. The output + tar file will be named :file:`base_dir.tar`, possibly plus the appropriate + compression extension (``.gz``, ``.bz2``, ``.xz`` or ``.Z``). Return the + output filename. + + .. versionchanged:: 3.5 + Added support for the ``xz`` compression. + + +.. function:: make_zipfile(base_name, base_dir[, verbose=0, dry_run=0]) + + Create a zip file from all files in and under *base_dir*. The output zip file + will be named *base_name* + :file:`.zip`. Uses either the :mod:`zipfile` Python + module (if available) or the InfoZIP :file:`zip` utility (if installed and + found on the default search path). If neither tool is available, raises + :exc:`DistutilsExecError`. Returns the name of the output zip file. + + +:mod:`distutils.dep_util` --- Dependency checking +================================================= + +.. module:: distutils.dep_util + :synopsis: Utility functions for simple dependency checking + + +This module provides functions for performing simple, timestamp-based +dependency of files and groups of files; also, functions based entirely on such +timestamp dependency analysis. + + +.. function:: newer(source, target) + + Return true if *source* exists and is more recently modified than *target*, or + if *source* exists and *target* doesn't. Return false if both exist and *target* + is the same age or newer than *source*. Raise :exc:`DistutilsFileError` if + *source* does not exist. + + +.. function:: newer_pairwise(sources, targets) + + Walk two filename lists in parallel, testing if each source is newer than its + corresponding target. Return a pair of lists (*sources*, *targets*) where + source is newer than target, according to the semantics of :func:`newer`. + + .. % % equivalent to a listcomp... + + +.. function:: newer_group(sources, target[, missing='error']) + + Return true if *target* is out-of-date with respect to any file listed in + *sources*. In other words, if *target* exists and is newer than every file in + *sources*, return false; otherwise return true. *missing* controls what we do + when a source file is missing; the default (``'error'``) is to blow up with an + :exc:`OSError` from inside :func:`os.stat`; if it is ``'ignore'``, we silently + drop any missing source files; if it is ``'newer'``, any missing source files + make us assume that *target* is out-of-date (this is handy in "dry-run" mode: + it'll make you pretend to carry out commands that wouldn't work because inputs + are missing, but that doesn't matter because you're not actually going to run + the commands). + + +:mod:`distutils.dir_util` --- Directory tree operations +======================================================= + +.. module:: distutils.dir_util + :synopsis: Utility functions for operating on directories and directory trees + + +This module provides functions for operating on directories and trees of +directories. + + +.. function:: mkpath(name[, mode=0o777, verbose=0, dry_run=0]) + + Create a directory and any missing ancestor directories. If the directory + already exists (or if *name* is the empty string, which means the current + directory, which of course exists), then do nothing. Raise + :exc:`DistutilsFileError` if unable to create some directory along the way (eg. + some sub-path exists, but is a file rather than a directory). If *verbose* is + true, print a one-line summary of each mkdir to stdout. Return the list of + directories actually created. + + +.. function:: create_tree(base_dir, files[, mode=0o777, verbose=0, dry_run=0]) + + Create all the empty directories under *base_dir* needed to put *files* there. + *base_dir* is just the name of a directory which doesn't necessarily exist + yet; *files* is a list of filenames to be interpreted relative to *base_dir*. + *base_dir* + the directory portion of every file in *files* will be created if + it doesn't already exist. *mode*, *verbose* and *dry_run* flags are as for + :func:`mkpath`. + + +.. function:: copy_tree(src, dst[, preserve_mode=1, preserve_times=1, preserve_symlinks=0, update=0, verbose=0, dry_run=0]) + + Copy an entire directory tree *src* to a new location *dst*. Both *src* and + *dst* must be directory names. If *src* is not a directory, raise + :exc:`DistutilsFileError`. If *dst* does not exist, it is created with + :func:`mkpath`. The end result of the copy is that every file in *src* is + copied to *dst*, and directories under *src* are recursively copied to *dst*. + Return the list of files that were copied or might have been copied, using their + output name. The return value is unaffected by *update* or *dry_run*: it is + simply the list of all files under *src*, with the names changed to be under + *dst*. + + *preserve_mode* and *preserve_times* are the same as for + :func:`distutils.file_util.copy_file`; note that they only apply to + regular files, not to + directories. If *preserve_symlinks* is true, symlinks will be copied as + symlinks (on platforms that support them!); otherwise (the default), the + destination of the symlink will be copied. *update* and *verbose* are the same + as for :func:`copy_file`. + + Files in *src* that begin with :file:`.nfs` are skipped (more information on + these files is available in answer D2 of the `NFS FAQ page + <http://nfs.sourceforge.net/#section_d>`_). + + .. versionchanged:: 3.3.1 + NFS files are ignored. + +.. function:: remove_tree(directory[, verbose=0, dry_run=0]) + + Recursively remove *directory* and all files and directories underneath it. Any + errors are ignored (apart from being reported to ``sys.stdout`` if *verbose* is + true). + + +:mod:`distutils.file_util` --- Single file operations +===================================================== + +.. module:: distutils.file_util + :synopsis: Utility functions for operating on single files + + +This module contains some utility functions for operating on individual files. + + +.. function:: copy_file(src, dst[, preserve_mode=1, preserve_times=1, update=0, link=None, verbose=0, dry_run=0]) + + Copy file *src* to *dst*. If *dst* is a directory, then *src* is copied there + with the same name; otherwise, it must be a filename. (If the file exists, it + will be ruthlessly clobbered.) If *preserve_mode* is true (the default), the + file's mode (type and permission bits, or whatever is analogous on the + current platform) is copied. If *preserve_times* is true (the default), the + last-modified and last-access times are copied as well. If *update* is true, + *src* will only be copied if *dst* does not exist, or if *dst* does exist but + is older than *src*. + + *link* allows you to make hard links (using :func:`os.link`) or symbolic links + (using :func:`os.symlink`) instead of copying: set it to ``'hard'`` or + ``'sym'``; if it is ``None`` (the default), files are copied. Don't set *link* + on systems that don't support it: :func:`copy_file` doesn't check if hard or + symbolic linking is available. It uses :func:`_copy_file_contents` to copy file + contents. + + Return a tuple ``(dest_name, copied)``: *dest_name* is the actual name of the + output file, and *copied* is true if the file was copied (or would have been + copied, if *dry_run* true). + + .. % XXX if the destination file already exists, we clobber it if + .. % copying, but blow up if linking. Hmmm. And I don't know what + .. % macostools.copyfile() does. Should definitely be consistent, and + .. % should probably blow up if destination exists and we would be + .. % changing it (ie. it's not already a hard/soft link to src OR + .. % (not update) and (src newer than dst)). + + +.. function:: move_file(src, dst[, verbose, dry_run]) + + Move file *src* to *dst*. If *dst* is a directory, the file will be moved into + it with the same name; otherwise, *src* is just renamed to *dst*. Returns the + new full name of the file. + + .. warning:: + + Handles cross-device moves on Unix using :func:`copy_file`. What about + other systems? + + +.. function:: write_file(filename, contents) + + Create a file called *filename* and write *contents* (a sequence of strings + without line terminators) to it. + + +:mod:`distutils.util` --- Miscellaneous other utility functions +=============================================================== + +.. module:: distutils.util + :synopsis: Miscellaneous other utility functions + + +This module contains other assorted bits and pieces that don't fit into any +other utility module. + + +.. function:: get_platform() + + Return a string that identifies the current platform. This is used mainly to + distinguish platform-specific build directories and platform-specific built + distributions. Typically includes the OS name and version and the + architecture (as supplied by 'os.uname()'), although the exact information + included depends on the OS; e.g., on Linux, the kernel version isn't + particularly important. + + Examples of returned values: + + * ``linux-i586`` + * ``linux-alpha`` + * ``solaris-2.6-sun4u`` + + For non-POSIX platforms, currently just returns ``sys.platform``. + + For macOS systems the OS version reflects the minimal version on which + binaries will run (that is, the value of ``MACOSX_DEPLOYMENT_TARGET`` + during the build of Python), not the OS version of the current system. + + For universal binary builds on macOS the architecture value reflects + the universal binary status instead of the architecture of the current + processor. For 32-bit universal binaries the architecture is ``fat``, + for 64-bit universal binaries the architecture is ``fat64``, and + for 4-way universal binaries the architecture is ``universal``. Starting + from Python 2.7 and Python 3.2 the architecture ``fat3`` is used for + a 3-way universal build (ppc, i386, x86_64) and ``intel`` is used for + a universal build with the i386 and x86_64 architectures + + Examples of returned values on macOS: + + * ``macosx-10.3-ppc`` + + * ``macosx-10.3-fat`` + + * ``macosx-10.5-universal`` + + * ``macosx-10.6-intel`` + + For AIX, Python 3.9 and later return a string starting with "aix", followed + by additional fields (separated by ``'-'``) that represent the combined + values of AIX Version, Release and Technology Level (first field), Build Date + (second field), and bit-size (third field). Python 3.8 and earlier returned + only a single additional field with the AIX Version and Release. + + Examples of returned values on AIX: + + * ``aix-5307-0747-32`` # 32-bit build on AIX ``oslevel -s``: 5300-07-00-0000 + + * ``aix-7105-1731-64`` # 64-bit build on AIX ``oslevel -s``: 7100-05-01-1731 + + * ``aix-7.2`` # Legacy form reported in Python 3.8 and earlier + + .. versionchanged:: 3.9 + The AIX platform string format now also includes the technology level, + build date, and ABI bit-size. + + +.. function:: convert_path(pathname) + + Return 'pathname' as a name that will work on the native filesystem, i.e. split + it on '/' and put it back together again using the current directory separator. + Needed because filenames in the setup script are always supplied in Unix style, + and have to be converted to the local convention before we can actually use them + in the filesystem. Raises :exc:`ValueError` on non-Unix-ish systems if + *pathname* either starts or ends with a slash. + + +.. function:: change_root(new_root, pathname) + + Return *pathname* with *new_root* prepended. If *pathname* is relative, this is + equivalent to ``os.path.join(new_root,pathname)`` Otherwise, it requires making + *pathname* relative and then joining the two, which is tricky on DOS/Windows. + + +.. function:: check_environ() + + Ensure that 'os.environ' has all the environment variables we guarantee that + users can use in config files, command-line options, etc. Currently this + includes: + + * :envvar:`HOME` - user's home directory (Unix only) + * :envvar:`PLAT` - description of the current platform, including hardware and + OS (see :func:`get_platform`) + + +.. function:: subst_vars(s, local_vars) + + Perform shell/Perl-style variable substitution on *s*. Every occurrence of + ``$`` followed by a name is considered a variable, and variable is substituted + by the value found in the *local_vars* dictionary, or in ``os.environ`` if it's + not in *local_vars*. *os.environ* is first checked/augmented to guarantee that + it contains certain values: see :func:`check_environ`. Raise :exc:`ValueError` + for any variables not found in either *local_vars* or ``os.environ``. + + Note that this is not a fully-fledged string interpolation function. A valid + ``$variable`` can consist only of upper and lower case letters, numbers and an + underscore. No { } or ( ) style quoting is available. + + +.. function:: split_quoted(s) + + Split a string up according to Unix shell-like rules for quotes and backslashes. + In short: words are delimited by spaces, as long as those spaces are not escaped + by a backslash, or inside a quoted string. Single and double quotes are + equivalent, and the quote characters can be backslash-escaped. The backslash is + stripped from any two-character escape sequence, leaving only the escaped + character. The quote characters are stripped from any quoted string. Returns a + list of words. + + .. % Should probably be moved into the standard library. + + +.. function:: execute(func, args[, msg=None, verbose=0, dry_run=0]) + + Perform some action that affects the outside world (for instance, writing to the + filesystem). Such actions are special because they are disabled by the + *dry_run* flag. This method takes care of all that bureaucracy for you; all + you have to do is supply the function to call and an argument tuple for it (to + embody the "external action" being performed), and an optional message to print. + + +.. function:: strtobool(val) + + Convert a string representation of truth to true (1) or false (0). + + True values are ``y``, ``yes``, ``t``, ``true``, ``on`` and ``1``; false values + are ``n``, ``no``, ``f``, ``false``, ``off`` and ``0``. Raises + :exc:`ValueError` if *val* is anything else. + + +.. function:: byte_compile(py_files[, optimize=0, force=0, prefix=None, base_dir=None, verbose=1, dry_run=0, direct=None]) + + Byte-compile a collection of Python source files to :file:`.pyc` files in a + :file:`__pycache__` subdirectory (see :pep:`3147` and :pep:`488`). + *py_files* is a list of files to compile; any files that don't end in + :file:`.py` are silently skipped. *optimize* must be one of the following: + + * ``0`` - don't optimize + * ``1`` - normal optimization (like ``python -O``) + * ``2`` - extra optimization (like ``python -OO``) + + If *force* is true, all files are recompiled regardless of timestamps. + + The source filename encoded in each :term:`bytecode` file defaults to the filenames + listed in *py_files*; you can modify these with *prefix* and *basedir*. + *prefix* is a string that will be stripped off of each source filename, and + *base_dir* is a directory name that will be prepended (after *prefix* is + stripped). You can supply either or both (or neither) of *prefix* and + *base_dir*, as you wish. + + If *dry_run* is true, doesn't actually do anything that would affect the + filesystem. + + Byte-compilation is either done directly in this interpreter process with the + standard :mod:`py_compile` module, or indirectly by writing a temporary script + and executing it. Normally, you should let :func:`byte_compile` figure out to + use direct compilation or not (see the source for details). The *direct* flag + is used by the script generated in indirect mode; unless you know what you're + doing, leave it set to ``None``. + + .. versionchanged:: 3.2.3 + Create ``.pyc`` files with an :func:`import magic tag + <imp.get_tag>` in their name, in a :file:`__pycache__` subdirectory + instead of files without tag in the current directory. + + .. versionchanged:: 3.5 + Create ``.pyc`` files according to :pep:`488`. + + +.. function:: rfc822_escape(header) + + Return a version of *header* escaped for inclusion in an :rfc:`822` header, by + ensuring there are 8 spaces space after each newline. Note that it does no other + modification of the string. + + .. % this _can_ be replaced + +.. % \subsection{Distutils objects} + + +:mod:`distutils.dist` --- The Distribution class +================================================ + +.. module:: distutils.dist + :synopsis: Provides the Distribution class, which represents the module distribution being + built/installed/distributed + + +This module provides the :class:`~distutils.core.Distribution` class, which +represents the module distribution being built/installed/distributed. + + +:mod:`distutils.extension` --- The Extension class +================================================== + +.. module:: distutils.extension + :synopsis: Provides the Extension class, used to describe C/C++ extension modules in setup + scripts + + +This module provides the :class:`Extension` class, used to describe C/C++ +extension modules in setup scripts. + +.. % \subsection{Ungrouped modules} +.. % The following haven't been moved into a more appropriate section yet. + + +:mod:`distutils.debug` --- Distutils debug mode +=============================================== + +.. module:: distutils.debug + :synopsis: Provides the debug flag for distutils + + +This module provides the DEBUG flag. + + +:mod:`distutils.errors` --- Distutils exceptions +================================================ + +.. module:: distutils.errors + :synopsis: Provides standard distutils exceptions + + +Provides exceptions used by the Distutils modules. Note that Distutils modules +may raise standard exceptions; in particular, SystemExit is usually raised for +errors that are obviously the end-user's fault (eg. bad command-line arguments). + +This module is safe to use in ``from ... import *`` mode; it only exports +symbols whose names start with ``Distutils`` and end with ``Error``. + + +:mod:`distutils.fancy_getopt` --- Wrapper around the standard getopt module +=========================================================================== + +.. module:: distutils.fancy_getopt + :synopsis: Additional getopt functionality + + +This module provides a wrapper around the standard :mod:`getopt` module that +provides the following additional features: + +* short and long options are tied together + +* options have help strings, so :func:`fancy_getopt` could potentially create a + complete usage summary + +* options set attributes of a passed-in object + +* boolean options can have "negative aliases" --- eg. if :option:`!--quiet` is + the "negative alias" of :option:`!--verbose`, then :option:`!--quiet` on the + command line sets *verbose* to false. + +.. function:: fancy_getopt(options, negative_opt, object, args) + + Wrapper function. *options* is a list of ``(long_option, short_option, + help_string)`` 3-tuples as described in the constructor for + :class:`FancyGetopt`. *negative_opt* should be a dictionary mapping option names + to option names, both the key and value should be in the *options* list. + *object* is an object which will be used to store values (see the :meth:`getopt` + method of the :class:`FancyGetopt` class). *args* is the argument list. Will use + ``sys.argv[1:]`` if you pass ``None`` as *args*. + + +.. function:: wrap_text(text, width) + + Wraps *text* to less than *width* wide. + + +.. class:: FancyGetopt([option_table=None]) + + The option_table is a list of 3-tuples: ``(long_option, short_option, + help_string)`` + + If an option takes an argument, its *long_option* should have ``'='`` appended; + *short_option* should just be a single character, no ``':'`` in any case. + *short_option* should be ``None`` if a *long_option* doesn't have a + corresponding *short_option*. All option tuples must have long options. + +The :class:`FancyGetopt` class provides the following methods: + + +.. method:: FancyGetopt.getopt([args=None, object=None]) + + Parse command-line options in args. Store as attributes on *object*. + + If *args* is ``None`` or not supplied, uses ``sys.argv[1:]``. If *object* is + ``None`` or not supplied, creates a new :class:`OptionDummy` instance, stores + option values there, and returns a tuple ``(args, object)``. If *object* is + supplied, it is modified in place and :func:`getopt` just returns *args*; in + both cases, the returned *args* is a modified copy of the passed-in *args* list, + which is left untouched. + + .. % and args returned are? + + +.. method:: FancyGetopt.get_option_order() + + Returns the list of ``(option, value)`` tuples processed by the previous run of + :meth:`getopt` Raises :exc:`RuntimeError` if :meth:`getopt` hasn't been called + yet. + + +.. method:: FancyGetopt.generate_help([header=None]) + + Generate help text (a list of strings, one per suggested line of output) from + the option table for this :class:`FancyGetopt` object. + + If supplied, prints the supplied *header* at the top of the help. + + +:mod:`distutils.filelist` --- The FileList class +================================================ + +.. module:: distutils.filelist + :synopsis: The FileList class, used for poking about the file system and + building lists of files. + + +This module provides the :class:`FileList` class, used for poking about the +filesystem and building lists of files. + + +:mod:`distutils.log` --- Simple :pep:`282`-style logging +======================================================== + +.. module:: distutils.log + :synopsis: A simple logging mechanism, :pep:`282`-style + + +:mod:`distutils.spawn` --- Spawn a sub-process +============================================== + +.. module:: distutils.spawn + :synopsis: Provides the spawn() function + + +This module provides the :func:`spawn` function, a front-end to various +platform-specific functions for launching another program in a sub-process. +Also provides :func:`find_executable` to search the path for a given executable +name. + + +:mod:`distutils.sysconfig` --- System configuration information +=============================================================== + +.. module:: distutils.sysconfig + :synopsis: Low-level access to configuration information of the Python interpreter. +.. deprecated:: 3.10 + :mod:`distutils.sysconfig` has been merged into :mod:`sysconfig`. +.. moduleauthor:: Fred L. Drake, Jr. <fdrake@acm.org> +.. moduleauthor:: Greg Ward <gward@python.net> +.. sectionauthor:: Fred L. Drake, Jr. <fdrake@acm.org> + + +The :mod:`distutils.sysconfig` module provides access to Python's low-level +configuration information. The specific configuration variables available +depend heavily on the platform and configuration. The specific variables depend +on the build process for the specific version of Python being run; the variables +are those found in the :file:`Makefile` and configuration header that are +installed with Python on Unix systems. The configuration header is called +:file:`pyconfig.h` for Python versions starting with 2.2, and :file:`config.h` +for earlier versions of Python. + +Some additional functions are provided which perform some useful manipulations +for other parts of the :mod:`distutils` package. + + +.. data:: PREFIX + + The result of ``os.path.normpath(sys.prefix)``. + + +.. data:: EXEC_PREFIX + + The result of ``os.path.normpath(sys.exec_prefix)``. + + +.. function:: get_config_var(name) + + Return the value of a single variable. This is equivalent to + ``get_config_vars().get(name)``. + + +.. function:: get_config_vars(...) + + Return a set of variable definitions. If there are no arguments, this returns a + dictionary mapping names of configuration variables to values. If arguments are + provided, they should be strings, and the return value will be a sequence giving + the associated values. If a given name does not have a corresponding value, + ``None`` will be included for that variable. + + +.. function:: get_config_h_filename() + + Return the full path name of the configuration header. For Unix, this will be + the header generated by the :program:`configure` script; for other platforms the + header will have been supplied directly by the Python source distribution. The + file is a platform-specific text file. + + +.. function:: get_makefile_filename() + + Return the full path name of the :file:`Makefile` used to build Python. For + Unix, this will be a file generated by the :program:`configure` script; the + meaning for other platforms will vary. The file is a platform-specific text + file, if it exists. This function is only useful on POSIX platforms. + +The following functions are deprecated together with this module and they +have no direct replacement. + + +.. function:: get_python_inc([plat_specific[, prefix]]) + + Return the directory for either the general or platform-dependent C include + files. If *plat_specific* is true, the platform-dependent include directory is + returned; if false or omitted, the platform-independent directory is returned. + If *prefix* is given, it is used as either the prefix instead of + :const:`PREFIX`, or as the exec-prefix instead of :const:`EXEC_PREFIX` if + *plat_specific* is true. + + +.. function:: get_python_lib([plat_specific[, standard_lib[, prefix]]]) + + Return the directory for either the general or platform-dependent library + installation. If *plat_specific* is true, the platform-dependent include + directory is returned; if false or omitted, the platform-independent directory + is returned. If *prefix* is given, it is used as either the prefix instead of + :const:`PREFIX`, or as the exec-prefix instead of :const:`EXEC_PREFIX` if + *plat_specific* is true. If *standard_lib* is true, the directory for the + standard library is returned rather than the directory for the installation of + third-party extensions. + +The following function is only intended for use within the :mod:`distutils` +package. + + +.. function:: customize_compiler(compiler) + + Do any platform-specific customization of a + :class:`distutils.ccompiler.CCompiler` instance. + + This function is only needed on Unix at this time, but should be called + consistently to support forward-compatibility. It inserts the information that + varies across Unix flavors and is stored in Python's :file:`Makefile`. This + information includes the selected compiler, compiler and linker options, and the + extension used by the linker for shared objects. + +This function is even more special-purpose, and should only be used from +Python's own build procedures. + + +.. function:: set_python_build() + + Inform the :mod:`distutils.sysconfig` module that it is being used as part of + the build process for Python. This changes a lot of relative locations for + files, allowing them to be located in the build area rather than in an installed + Python. + + +:mod:`distutils.text_file` --- The TextFile class +================================================= + +.. module:: distutils.text_file + :synopsis: Provides the TextFile class, a simple interface to text files + + +This module provides the :class:`TextFile` class, which gives an interface to +text files that (optionally) takes care of stripping comments, ignoring blank +lines, and joining lines with backslashes. + + +.. class:: TextFile([filename=None, file=None, **options]) + + This class provides a file-like object that takes care of all the things you + commonly want to do when processing a text file that has some line-by-line + syntax: strip comments (as long as ``#`` is your comment character), skip blank + lines, join adjacent lines by escaping the newline (ie. backslash at end of + line), strip leading and/or trailing whitespace. All of these are optional and + independently controllable. + + The class provides a :meth:`warn` method so you can generate warning messages + that report physical line number, even if the logical line in question spans + multiple physical lines. Also provides :meth:`unreadline` for implementing + line-at-a-time lookahead. + + :class:`TextFile` instances are create with either *filename*, *file*, or both. + :exc:`RuntimeError` is raised if both are ``None``. *filename* should be a + string, and *file* a file object (or something that provides :meth:`readline` + and :meth:`close` methods). It is recommended that you supply at least + *filename*, so that :class:`TextFile` can include it in warning messages. If + *file* is not supplied, :class:`TextFile` creates its own using the + :func:`open` built-in function. + + The options are all boolean, and affect the values returned by :meth:`readline` + + .. tabularcolumns:: |l|L|l| + + +------------------+--------------------------------+---------+ + | option name | description | default | + +==================+================================+=========+ + | *strip_comments* | strip from ``'#'`` to | true | + | | end-of-line, as well as any | | + | | whitespace leading up to the | | + | | ``'#'``\ ---unless it is | | + | | escaped by a backslash | | + +------------------+--------------------------------+---------+ + | *lstrip_ws* | strip leading whitespace from | false | + | | each line before returning it | | + +------------------+--------------------------------+---------+ + | *rstrip_ws* | strip trailing whitespace | true | + | | (including line terminator!) | | + | | from each line before | | + | | returning it. | | + +------------------+--------------------------------+---------+ + | *skip_blanks* | skip lines that are empty | true | + | | \*after\* stripping comments | | + | | and whitespace. (If both | | + | | lstrip_ws and rstrip_ws are | | + | | false, then some lines may | | + | | consist of solely whitespace: | | + | | these will \*not\* be skipped, | | + | | even if *skip_blanks* is | | + | | true.) | | + +------------------+--------------------------------+---------+ + | *join_lines* | if a backslash is the last | false | + | | non-newline character on a | | + | | line after stripping comments | | + | | and whitespace, join the | | + | | following line to it to form | | + | | one logical line; if N | | + | | consecutive lines end with a | | + | | backslash, then N+1 physical | | + | | lines will be joined to form | | + | | one logical line. | | + +------------------+--------------------------------+---------+ + | *collapse_join* | strip leading whitespace from | false | + | | lines that are joined to their | | + | | predecessor; only matters if | | + | | ``(join_lines and not | | + | | lstrip_ws)`` | | + +------------------+--------------------------------+---------+ + + Note that since *rstrip_ws* can strip the trailing newline, the semantics of + :meth:`readline` must differ from those of the built-in file object's + :meth:`readline` method! In particular, :meth:`readline` returns ``None`` for + end-of-file: an empty string might just be a blank line (or an all-whitespace + line), if *rstrip_ws* is true but *skip_blanks* is not. + + + .. method:: TextFile.open(filename) + + Open a new file *filename*. This overrides any *file* or *filename* + constructor arguments. + + + .. method:: TextFile.close() + + Close the current file and forget everything we know about it (including the + filename and the current line number). + + + .. method:: TextFile.warn(msg[,line=None]) + + Print (to stderr) a warning message tied to the current logical line in the + current file. If the current logical line in the file spans multiple physical + lines, the warning refers to the whole range, such as ``"lines 3-5"``. If + *line* is supplied, it overrides the current line number; it may be a list or + tuple to indicate a range of physical lines, or an integer for a single + physical line. + + + .. method:: TextFile.readline() + + Read and return a single logical line from the current file (or from an internal + buffer if lines have previously been "unread" with :meth:`unreadline`). If the + *join_lines* option is true, this may involve reading multiple physical lines + concatenated into a single string. Updates the current line number, so calling + :meth:`warn` after :meth:`readline` emits a warning about the physical line(s) + just read. Returns ``None`` on end-of-file, since the empty string can occur + if *rstrip_ws* is true but *strip_blanks* is not. + + + .. method:: TextFile.readlines() + + Read and return the list of all logical lines remaining in the current file. + This updates the current line number to the last line of the file. + + + .. method:: TextFile.unreadline(line) + + Push *line* (a string) onto an internal buffer that will be checked by future + :meth:`readline` calls. Handy for implementing a parser with line-at-a-time + lookahead. Note that lines that are "unread" with :meth:`unreadline` are not + subsequently re-cleansed (whitespace stripped, or whatever) when read with + :meth:`readline`. If multiple calls are made to :meth:`unreadline` before a call + to :meth:`readline`, the lines will be returned most in most recent first order. + + +:mod:`distutils.version` --- Version number classes +=================================================== + +.. module:: distutils.version + :synopsis: Implements classes that represent module version numbers. + + +.. % todo +.. % \section{Distutils Commands} +.. % +.. % This part of Distutils implements the various Distutils commands, such +.. % as \code{build}, \code{install} \&c. Each command is implemented as a +.. % separate module, with the command name as the name of the module. + + +:mod:`distutils.cmd` --- Abstract base class for Distutils commands +=================================================================== + +.. module:: distutils.cmd + :synopsis: Provides the abstract base class :class:`~distutils.cmd.Command`. This class + is subclassed by the modules in the distutils.command subpackage. + + +This module supplies the abstract base class :class:`Command`. + + +.. class:: Command(dist) + + Abstract base class for defining command classes, the "worker bees" of the + Distutils. A useful analogy for command classes is to think of them as + subroutines with local variables called *options*. The options are declared + in :meth:`initialize_options` and defined (given their final values) in + :meth:`finalize_options`, both of which must be defined by every command + class. The distinction between the two is necessary because option values + might come from the outside world (command line, config file, ...), and any + options dependent on other options must be computed after these outside + influences have been processed --- hence :meth:`finalize_options`. The body + of the subroutine, where it does all its work based on the values of its + options, is the :meth:`run` method, which must also be implemented by every + command class. + + The class constructor takes a single argument *dist*, a + :class:`~distutils.core.Distribution` instance. + + +Creating a new Distutils command +================================ + +This section outlines the steps to create a new Distutils command. + +A new command lives in a module in the :mod:`distutils.command` package. There +is a sample template in that directory called :file:`command_template`. Copy +this file to a new module with the same name as the new command you're +implementing. This module should implement a class with the same name as the +module (and the command). So, for instance, to create the command +``peel_banana`` (so that users can run ``setup.py peel_banana``), you'd copy +:file:`command_template` to :file:`distutils/command/peel_banana.py`, then edit +it so that it's implementing the class :class:`peel_banana`, a subclass of +:class:`distutils.cmd.Command`. + +Subclasses of :class:`Command` must define the following methods. + +.. method:: Command.initialize_options() + + Set default values for all the options that this command supports. Note that + these defaults may be overridden by other commands, by the setup script, by + config files, or by the command-line. Thus, this is not the place to code + dependencies between options; generally, :meth:`initialize_options` + implementations are just a bunch of ``self.foo = None`` assignments. + + +.. method:: Command.finalize_options() + + Set final values for all the options that this command supports. This is + always called as late as possible, ie. after any option assignments from the + command-line or from other commands have been done. Thus, this is the place + to code option dependencies: if *foo* depends on *bar*, then it is safe to + set *foo* from *bar* as long as *foo* still has the same value it was + assigned in :meth:`initialize_options`. + + +.. method:: Command.run() + + A command's raison d'etre: carry out the action it exists to perform, controlled + by the options initialized in :meth:`initialize_options`, customized by other + commands, the setup script, the command-line, and config files, and finalized in + :meth:`finalize_options`. All terminal output and filesystem interaction should + be done by :meth:`run`. + + +.. attribute:: Command.sub_commands + + *sub_commands* formalizes the notion of a "family" of commands, + e.g. ``install`` as the parent with sub-commands ``install_lib``, + ``install_headers``, etc. The parent of a family of commands defines + *sub_commands* as a class attribute; it's a list of 2-tuples ``(command_name, + predicate)``, with *command_name* a string and *predicate* a function, a + string or ``None``. *predicate* is a method of the parent command that + determines whether the corresponding command is applicable in the current + situation. (E.g. ``install_headers`` is only applicable if we have any C + header files to install.) If *predicate* is ``None``, that command is always + applicable. + + *sub_commands* is usually defined at the *end* of a class, because + predicates can be methods of the class, so they must already have been + defined. The canonical example is the :command:`install` command. + + +:mod:`distutils.command` --- Individual Distutils commands +========================================================== + +.. module:: distutils.command + :synopsis: Contains one module for each standard Distutils command. + + +.. % \subsubsection{Individual Distutils commands} +.. % todo + + +:mod:`distutils.command.bdist` --- Build a binary installer +=========================================================== + +.. module:: distutils.command.bdist + :synopsis: Build a binary installer for a package + + +.. % todo + + +:mod:`distutils.command.bdist_packager` --- Abstract base class for packagers +============================================================================= + +.. module:: distutils.command.bdist_packager + :synopsis: Abstract base class for packagers + + +.. % todo + + +:mod:`distutils.command.bdist_dumb` --- Build a "dumb" installer +================================================================ + +.. module:: distutils.command.bdist_dumb + :synopsis: Build a "dumb" installer - a simple archive of files + + +.. % todo + + +:mod:`distutils.command.bdist_rpm` --- Build a binary distribution as a Redhat RPM and SRPM +=========================================================================================== + +.. module:: distutils.command.bdist_rpm + :synopsis: Build a binary distribution as a Redhat RPM and SRPM + + +.. % todo + + +:mod:`distutils.command.sdist` --- Build a source distribution +============================================================== + +.. module:: distutils.command.sdist + :synopsis: Build a source distribution + + +.. % todo + + +:mod:`distutils.command.build` --- Build all files of a package +=============================================================== + +.. module:: distutils.command.build + :synopsis: Build all files of a package + + +.. % todo + + +:mod:`distutils.command.build_clib` --- Build any C libraries in a package +========================================================================== + +.. module:: distutils.command.build_clib + :synopsis: Build any C libraries in a package + + +.. % todo + + +:mod:`distutils.command.build_ext` --- Build any extensions in a package +======================================================================== + +.. module:: distutils.command.build_ext + :synopsis: Build any extensions in a package + + +.. % todo + + +:mod:`distutils.command.build_py` --- Build the .py/.pyc files of a package +=========================================================================== + +.. module:: distutils.command.build_py + :synopsis: Build the .py/.pyc files of a package + + +.. class:: build_py + +.. class:: build_py_2to3 + + Alternative implementation of build_py which also runs the + 2to3 conversion library on each .py file that is going to be + installed. To use this in a setup.py file for a distribution + that is designed to run with both Python 2.x and 3.x, add:: + + try: + from distutils.command.build_py import build_py_2to3 as build_py + except ImportError: + from distutils.command.build_py import build_py + + to your setup.py, and later:: + + cmdclass = {'build_py': build_py} + + to the invocation of setup(). + + +:mod:`distutils.command.build_scripts` --- Build the scripts of a package +========================================================================= + +.. module:: distutils.command.build_scripts + :synopsis: Build the scripts of a package + + +.. % todo + + +:mod:`distutils.command.clean` --- Clean a package build area +============================================================= + +.. module:: distutils.command.clean + :synopsis: Clean a package build area + +This command removes the temporary files created by :command:`build` +and its subcommands, like intermediary compiled object files. With +the ``--all`` option, the complete build directory will be removed. + +Extension modules built :ref:`in place <distutils-build-ext-inplace>` +will not be cleaned, as they are not in the build directory. + + +:mod:`distutils.command.config` --- Perform package configuration +================================================================= + +.. module:: distutils.command.config + :synopsis: Perform package configuration + + +.. % todo + + +:mod:`distutils.command.install` --- Install a package +====================================================== + +.. module:: distutils.command.install + :synopsis: Install a package + + +.. % todo + + +:mod:`distutils.command.install_data` --- Install data files from a package +=========================================================================== + +.. module:: distutils.command.install_data + :synopsis: Install data files from a package + + +.. % todo + + +:mod:`distutils.command.install_headers` --- Install C/C++ header files from a package +====================================================================================== + +.. module:: distutils.command.install_headers + :synopsis: Install C/C++ header files from a package + + +.. % todo + + +:mod:`distutils.command.install_lib` --- Install library files from a package +============================================================================= + +.. module:: distutils.command.install_lib + :synopsis: Install library files from a package + + +.. % todo + + +:mod:`distutils.command.install_scripts` --- Install script files from a package +================================================================================ + +.. module:: distutils.command.install_scripts + :synopsis: Install script files from a package + + +.. % todo + + +:mod:`distutils.command.register` --- Register a module with the Python Package Index +===================================================================================== + +.. module:: distutils.command.register + :synopsis: Register a module with the Python Package Index + + +The ``register`` command registers the package with the Python Package Index. +This is described in more detail in :pep:`301`. + +.. % todo + + +:mod:`distutils.command.check` --- Check the meta-data of a package +=================================================================== + +.. module:: distutils.command.check + :synopsis: Check the meta-data of a package + + +The ``check`` command performs some tests on the meta-data of a package. +For example, it verifies that all required meta-data are provided as +the arguments passed to the :func:`setup` function. + +.. % todo diff --git a/Doc/distutils/builtdist.rst b/Doc/distutils/builtdist.rst new file mode 100644 index 00000000000000..c1d9ea533dab65 --- /dev/null +++ b/Doc/distutils/builtdist.rst @@ -0,0 +1,392 @@ +.. _built-dist: + +**************************** +Creating Built Distributions +**************************** + +.. include:: ./_setuptools_disclaimer.rst + +A "built distribution" is what you're probably used to thinking of either as a +"binary package" or an "installer" (depending on your background). It's not +necessarily binary, though, because it might contain only Python source code +and/or byte-code; and we don't call it a package, because that word is already +spoken for in Python. (And "installer" is a term specific to the world of +mainstream desktop systems.) + +A built distribution is how you make life as easy as possible for installers of +your module distribution: for users of RPM-based Linux systems, it's a binary +RPM; for Windows users, it's an executable installer; for Debian-based Linux +users, it's a Debian package; and so forth. Obviously, no one person will be +able to create built distributions for every platform under the sun, so the +Distutils are designed to enable module developers to concentrate on their +specialty---writing code and creating source distributions---while an +intermediary species called *packagers* springs up to turn source distributions +into built distributions for as many platforms as there are packagers. + +Of course, the module developer could be their own packager; or the packager could +be a volunteer "out there" somewhere who has access to a platform which the +original developer does not; or it could be software periodically grabbing new +source distributions and turning them into built distributions for as many +platforms as the software has access to. Regardless of who they are, a packager +uses the setup script and the :command:`bdist` command family to generate built +distributions. + +As a simple example, if I run the following command in the Distutils source +tree:: + + python setup.py bdist + +then the Distutils builds my module distribution (the Distutils itself in this +case), does a "fake" installation (also in the :file:`build` directory), and +creates the default type of built distribution for my platform. The default +format for built distributions is a "dumb" tar file on Unix, and a simple +executable installer on Windows. (That tar file is considered "dumb" because it +has to be unpacked in a specific location to work.) + +Thus, the above command on a Unix system creates +:file:`Distutils-1.0.{plat}.tar.gz`; unpacking this tarball from the right place +installs the Distutils just as though you had downloaded the source distribution +and run ``python setup.py install``. (The "right place" is either the root of +the filesystem or Python's :file:`{prefix}` directory, depending on the options +given to the :command:`bdist_dumb` command; the default is to make dumb +distributions relative to :file:`{prefix}`.) + +Obviously, for pure Python distributions, this isn't any simpler than just +running ``python setup.py install``\ ---but for non-pure distributions, which +include extensions that would need to be compiled, it can mean the difference +between someone being able to use your extensions or not. And creating "smart" +built distributions, such as an RPM package or an executable installer for +Windows, is far more convenient for users even if your distribution doesn't +include any extensions. + +The :command:`bdist` command has a :option:`!--formats` option, similar to the +:command:`sdist` command, which you can use to select the types of built +distribution to generate: for example, :: + + python setup.py bdist --format=zip + +would, when run on a Unix system, create +:file:`Distutils-1.0.{plat}.zip`\ ---again, this archive would be unpacked +from the root directory to install the Distutils. + +The available formats for built distributions are: + ++-------------+------------------------------+---------+ +| Format | Description | Notes | ++=============+==============================+=========+ +| ``gztar`` | gzipped tar file | \(1) | +| | (:file:`.tar.gz`) | | ++-------------+------------------------------+---------+ +| ``bztar`` | bzipped tar file | | +| | (:file:`.tar.bz2`) | | ++-------------+------------------------------+---------+ +| ``xztar`` | xzipped tar file | | +| | (:file:`.tar.xz`) | | ++-------------+------------------------------+---------+ +| ``ztar`` | compressed tar file | \(3) | +| | (:file:`.tar.Z`) | | ++-------------+------------------------------+---------+ +| ``tar`` | tar file (:file:`.tar`) | | ++-------------+------------------------------+---------+ +| ``zip`` | zip file (:file:`.zip`) | (2),(4) | ++-------------+------------------------------+---------+ +| ``rpm`` | RPM | \(5) | ++-------------+------------------------------+---------+ +| ``pkgtool`` | Solaris :program:`pkgtool` | | ++-------------+------------------------------+---------+ +| ``sdux`` | HP-UX :program:`swinstall` | | ++-------------+------------------------------+---------+ +| ``msi`` | Microsoft Installer. | | ++-------------+------------------------------+---------+ + +.. versionchanged:: 3.5 + Added support for the ``xztar`` format. + + +Notes: + +(1) + default on Unix + +(2) + default on Windows + +(3) + requires external :program:`compress` utility. + +(4) + requires either external :program:`zip` utility or :mod:`zipfile` module (part + of the standard Python library since Python 1.6) + +(5) + requires external :program:`rpm` utility, version 3.0.4 or better (use ``rpm + --version`` to find out which version you have) + +You don't have to use the :command:`bdist` command with the :option:`!--formats` +option; you can also use the command that directly implements the format you're +interested in. Some of these :command:`bdist` "sub-commands" actually generate +several similar formats; for instance, the :command:`bdist_dumb` command +generates all the "dumb" archive formats (``tar``, ``gztar``, ``bztar``, +``xztar``, ``ztar``, and ``zip``), and :command:`bdist_rpm` generates both +binary and source RPMs. The :command:`bdist` sub-commands, and the formats +generated by each, are: + ++--------------------------+-------------------------------------+ +| Command | Formats | ++==========================+=====================================+ +| :command:`bdist_dumb` | tar, gztar, bztar, xztar, ztar, zip | ++--------------------------+-------------------------------------+ +| :command:`bdist_rpm` | rpm, srpm | ++--------------------------+-------------------------------------+ + +The following sections give details on the individual :command:`bdist_\*` +commands. + + +.. .. _creating-dumb: + +.. Creating dumb built distributions +.. ================================= + +.. XXX Need to document absolute vs. prefix-relative packages here, but first + I have to implement it! + + +.. _creating-rpms: + +Creating RPM packages +===================== + +The RPM format is used by many popular Linux distributions, including Red Hat, +SuSE, and Mandrake. If one of these (or any of the other RPM-based Linux +distributions) is your usual environment, creating RPM packages for other users +of that same distribution is trivial. Depending on the complexity of your module +distribution and differences between Linux distributions, you may also be able +to create RPMs that work on different RPM-based distributions. + +The usual way to create an RPM of your module distribution is to run the +:command:`bdist_rpm` command:: + + python setup.py bdist_rpm + +or the :command:`bdist` command with the :option:`!--format` option:: + + python setup.py bdist --formats=rpm + +The former allows you to specify RPM-specific options; the latter allows you to +easily specify multiple formats in one run. If you need to do both, you can +explicitly specify multiple :command:`bdist_\*` commands and their options:: + + python setup.py bdist_rpm --packager="John Doe <jdoe@example.org>" + +Creating RPM packages is driven by a :file:`.spec` file, much as using the +Distutils is driven by the setup script. To make your life easier, the +:command:`bdist_rpm` command normally creates a :file:`.spec` file based on the +information you supply in the setup script, on the command line, and in any +Distutils configuration files. Various options and sections in the +:file:`.spec` file are derived from options in the setup script as follows: + ++------------------------------------------+----------------------------------------------+ +| RPM :file:`.spec` file option or section | Distutils setup script option | ++==========================================+==============================================+ +| Name | ``name`` | ++------------------------------------------+----------------------------------------------+ +| Summary (in preamble) | ``description`` | ++------------------------------------------+----------------------------------------------+ +| Version | ``version`` | ++------------------------------------------+----------------------------------------------+ +| Vendor | ``author`` and ``author_email``, | +| | or --- & ``maintainer`` and | +| | ``maintainer_email`` | ++------------------------------------------+----------------------------------------------+ +| Copyright | ``license`` | ++------------------------------------------+----------------------------------------------+ +| Url | ``url`` | ++------------------------------------------+----------------------------------------------+ +| %description (section) | ``long_description`` | ++------------------------------------------+----------------------------------------------+ + +Additionally, there are many options in :file:`.spec` files that don't have +corresponding options in the setup script. Most of these are handled through +options to the :command:`bdist_rpm` command as follows: + ++-------------------------------+-----------------------------+-------------------------+ +| RPM :file:`.spec` file option | :command:`bdist_rpm` option | default value | +| or section | | | ++===============================+=============================+=========================+ +| Release | ``release`` | "1" | ++-------------------------------+-----------------------------+-------------------------+ +| Group | ``group`` | "Development/Libraries" | ++-------------------------------+-----------------------------+-------------------------+ +| Vendor | ``vendor`` | (see above) | ++-------------------------------+-----------------------------+-------------------------+ +| Packager | ``packager`` | (none) | ++-------------------------------+-----------------------------+-------------------------+ +| Provides | ``provides`` | (none) | ++-------------------------------+-----------------------------+-------------------------+ +| Requires | ``requires`` | (none) | ++-------------------------------+-----------------------------+-------------------------+ +| Conflicts | ``conflicts`` | (none) | ++-------------------------------+-----------------------------+-------------------------+ +| Obsoletes | ``obsoletes`` | (none) | ++-------------------------------+-----------------------------+-------------------------+ +| Distribution | ``distribution_name`` | (none) | ++-------------------------------+-----------------------------+-------------------------+ +| BuildRequires | ``build_requires`` | (none) | ++-------------------------------+-----------------------------+-------------------------+ +| Icon | ``icon`` | (none) | ++-------------------------------+-----------------------------+-------------------------+ + +Obviously, supplying even a few of these options on the command-line would be +tedious and error-prone, so it's usually best to put them in the setup +configuration file, :file:`setup.cfg`\ ---see section :ref:`setup-config`. If +you distribute or package many Python module distributions, you might want to +put options that apply to all of them in your personal Distutils configuration +file (:file:`~/.pydistutils.cfg`). If you want to temporarily disable +this file, you can pass the :option:`!--no-user-cfg` option to :file:`setup.py`. + +There are three steps to building a binary RPM package, all of which are +handled automatically by the Distutils: + +#. create a :file:`.spec` file, which describes the package (analogous to the + Distutils setup script; in fact, much of the information in the setup script + winds up in the :file:`.spec` file) + +#. create the source RPM + +#. create the "binary" RPM (which may or may not contain binary code, depending + on whether your module distribution contains Python extensions) + +Normally, RPM bundles the last two steps together; when you use the Distutils, +all three steps are typically bundled together. + +If you wish, you can separate these three steps. You can use the +:option:`!--spec-only` option to make :command:`bdist_rpm` just create the +:file:`.spec` file and exit; in this case, the :file:`.spec` file will be +written to the "distribution directory"---normally :file:`dist/`, but +customizable with the :option:`!--dist-dir` option. (Normally, the :file:`.spec` +file winds up deep in the "build tree," in a temporary directory created by +:command:`bdist_rpm`.) + +.. % \XXX{this isn't implemented yet---is it needed?!} +.. % You can also specify a custom \file{.spec} file with the +.. % \longprogramopt{spec-file} option; used in conjunction with +.. % \longprogramopt{spec-only}, this gives you an opportunity to customize +.. % the \file{.spec} file manually: +.. % +.. % \ begin{verbatim} +.. % > python setup.py bdist_rpm --spec-only +.. % # ...edit dist/FooBar-1.0.spec +.. % > python setup.py bdist_rpm --spec-file=dist/FooBar-1.0.spec +.. % \ end{verbatim} +.. % +.. % (Although a better way to do this is probably to override the standard +.. % \command{bdist\_rpm} command with one that writes whatever else you want +.. % to the \file{.spec} file.) + + +.. _cross-compile-windows: + +Cross-compiling on Windows +========================== + +Starting with Python 2.6, distutils is capable of cross-compiling between +Windows platforms. In practice, this means that with the correct tools +installed, you can use a 32bit version of Windows to create 64bit extensions +and vice-versa. + +To build for an alternate platform, specify the :option:`!--plat-name` option +to the build command. Valid values are currently 'win32', and 'win-amd64'. +For example, on a 32bit version of Windows, you could execute:: + + python setup.py build --plat-name=win-amd64 + +to build a 64bit version of your extension. + +would create a 64bit installation executable on your 32bit version of Windows. + +To cross-compile, you must download the Python source code and cross-compile +Python itself for the platform you are targeting - it is not possible from a +binary installation of Python (as the .lib etc file for other platforms are +not included.) In practice, this means the user of a 32 bit operating +system will need to use Visual Studio 2008 to open the +:file:`PCbuild/PCbuild.sln` solution in the Python source tree and build the +"x64" configuration of the 'pythoncore' project before cross-compiling +extensions is possible. + +Note that by default, Visual Studio 2008 does not install 64bit compilers or +tools. You may need to reexecute the Visual Studio setup process and select +these tools (using Control Panel->[Add/Remove] Programs is a convenient way to +check or modify your existing install.) + +.. _postinstallation-script: + +The Postinstallation script +--------------------------- + +Starting with Python 2.3, a postinstallation script can be specified with the +:option:`!--install-script` option. The basename of the script must be +specified, and the script filename must also be listed in the scripts argument +to the setup function. + +This script will be run at installation time on the target system after all the +files have been copied, with ``argv[1]`` set to :option:`!-install`, and again at +uninstallation time before the files are removed with ``argv[1]`` set to +:option:`!-remove`. + +The installation script runs embedded in the windows installer, every output +(``sys.stdout``, ``sys.stderr``) is redirected into a buffer and will be +displayed in the GUI after the script has finished. + +Some functions especially useful in this context are available as additional +built-in functions in the installation script. + + +.. function:: directory_created(path) + file_created(path) + + These functions should be called when a directory or file is created by the + postinstall script at installation time. It will register *path* with the + uninstaller, so that it will be removed when the distribution is uninstalled. + To be safe, directories are only removed if they are empty. + + +.. function:: get_special_folder_path(csidl_string) + + This function can be used to retrieve special folder locations on Windows like + the Start Menu or the Desktop. It returns the full path to the folder. + *csidl_string* must be one of the following strings:: + + "CSIDL_APPDATA" + + "CSIDL_COMMON_STARTMENU" + "CSIDL_STARTMENU" + + "CSIDL_COMMON_DESKTOPDIRECTORY" + "CSIDL_DESKTOPDIRECTORY" + + "CSIDL_COMMON_STARTUP" + "CSIDL_STARTUP" + + "CSIDL_COMMON_PROGRAMS" + "CSIDL_PROGRAMS" + + "CSIDL_FONTS" + + If the folder cannot be retrieved, :exc:`OSError` is raised. + + Which folders are available depends on the exact Windows version, and probably + also the configuration. For details refer to Microsoft's documentation of the + :c:func:`SHGetSpecialFolderPath` function. + + +.. function:: create_shortcut(target, description, filename[, arguments[, workdir[, iconpath[, iconindex]]]]) + + This function creates a shortcut. *target* is the path to the program to be + started by the shortcut. *description* is the description of the shortcut. + *filename* is the title of the shortcut that the user will see. *arguments* + specifies the command line arguments, if any. *workdir* is the working directory + for the program. *iconpath* is the file containing the icon for the shortcut, + and *iconindex* is the index of the icon in the file *iconpath*. Again, for + details consult the Microsoft documentation for the :class:`IShellLink` + interface. diff --git a/Doc/distutils/commandref.rst b/Doc/distutils/commandref.rst new file mode 100644 index 00000000000000..3e247e68d3a05f --- /dev/null +++ b/Doc/distutils/commandref.rst @@ -0,0 +1,105 @@ +.. _reference: + +***************** +Command Reference +***************** + +.. include:: ./_setuptools_disclaimer.rst + +.. % \section{Building modules: the \protect\command{build} command family} +.. % \label{build-cmds} +.. % \subsubsection{\protect\command{build}} +.. % \label{build-cmd} +.. % \subsubsection{\protect\command{build\_py}} +.. % \label{build-py-cmd} +.. % \subsubsection{\protect\command{build\_ext}} +.. % \label{build-ext-cmd} +.. % \subsubsection{\protect\command{build\_clib}} +.. % \label{build-clib-cmd} + + +.. _install-cmd: + +Installing modules: the :command:`install` command family +========================================================= + +The install command ensures that the build commands have been run and then runs +the subcommands :command:`install_lib`, :command:`install_data` and +:command:`install_scripts`. + +.. % \subsubsection{\protect\command{install\_lib}} +.. % \label{install-lib-cmd} + + +.. _install-data-cmd: + +:command:`install_data` +----------------------- + +This command installs all data files provided with the distribution. + + +.. _install-scripts-cmd: + +:command:`install_scripts` +-------------------------- + +This command installs all (Python) scripts in the distribution. + +.. % \subsection{Cleaning up: the \protect\command{clean} command} +.. % \label{clean-cmd} + + +.. _sdist-cmd: + +Creating a source distribution: the :command:`sdist` command +============================================================ + +.. XXX fragment moved down from above: needs context! + +The manifest template commands are: + ++-------------------------------------------+-----------------------------------------------+ +| Command | Description | ++===========================================+===============================================+ +| :command:`include pat1 pat2 ...` | include all files matching any of the listed | +| | patterns | ++-------------------------------------------+-----------------------------------------------+ +| :command:`exclude pat1 pat2 ...` | exclude all files matching any of the listed | +| | patterns | ++-------------------------------------------+-----------------------------------------------+ +| :command:`recursive-include dir pat1 pat2 | include all files under *dir* matching any of | +| ...` | the listed patterns | ++-------------------------------------------+-----------------------------------------------+ +| :command:`recursive-exclude dir pat1 pat2 | exclude all files under *dir* matching any of | +| ...` | the listed patterns | ++-------------------------------------------+-----------------------------------------------+ +| :command:`global-include pat1 pat2 ...` | include all files anywhere in the source tree | +| | matching --- & any of the listed patterns | ++-------------------------------------------+-----------------------------------------------+ +| :command:`global-exclude pat1 pat2 ...` | exclude all files anywhere in the source tree | +| | matching --- & any of the listed patterns | ++-------------------------------------------+-----------------------------------------------+ +| :command:`prune dir` | exclude all files under *dir* | ++-------------------------------------------+-----------------------------------------------+ +| :command:`graft dir` | include all files under *dir* | ++-------------------------------------------+-----------------------------------------------+ + +The patterns here are Unix-style "glob" patterns: ``*`` matches any sequence of +regular filename characters, ``?`` matches any single regular filename +character, and ``[range]`` matches any of the characters in *range* (e.g., +``a-z``, ``a-zA-Z``, ``a-f0-9_.``). The definition of "regular filename +character" is platform-specific: on Unix it is anything except slash; on Windows +anything except backslash or colon. + +.. XXX Windows support not there yet + +.. % \section{Creating a built distribution: the +.. % \protect\command{bdist} command family} +.. % \label{bdist-cmds} + +.. % \subsection{\protect\command{bdist}} +.. % \subsection{\protect\command{bdist\_dumb}} +.. % \subsection{\protect\command{bdist\_rpm}} + + diff --git a/Doc/distutils/configfile.rst b/Doc/distutils/configfile.rst new file mode 100644 index 00000000000000..2a5c8329e318b7 --- /dev/null +++ b/Doc/distutils/configfile.rst @@ -0,0 +1,144 @@ +.. _setup-config: + +************************************ +Writing the Setup Configuration File +************************************ + +.. include:: ./_setuptools_disclaimer.rst + +Often, it's not possible to write down everything needed to build a distribution +*a priori*: you may need to get some information from the user, or from the +user's system, in order to proceed. As long as that information is fairly +simple---a list of directories to search for C header files or libraries, for +example---then providing a configuration file, :file:`setup.cfg`, for users to +edit is a cheap and easy way to solicit it. Configuration files also let you +provide default values for any command option, which the installer can then +override either on the command-line or by editing the config file. + +The setup configuration file is a useful middle-ground between the setup +script---which, ideally, would be opaque to installers [#]_---and the command-line to +the setup script, which is outside of your control and entirely up to the +installer. In fact, :file:`setup.cfg` (and any other Distutils configuration +files present on the target system) are processed after the contents of the +setup script, but before the command-line. This has several useful +consequences: + +.. % (If you have more advanced needs, such as determining which extensions +.. % to build based on what capabilities are present on the target system, +.. % then you need the Distutils ``auto-configuration'' facility. This +.. % started to appear in Distutils 0.9 but, as of this writing, isn't mature +.. % or stable enough yet for real-world use.) + +* installers can override some of what you put in :file:`setup.py` by editing + :file:`setup.cfg` + +* you can provide non-standard defaults for options that are not easily set in + :file:`setup.py` + +* installers can override anything in :file:`setup.cfg` using the command-line + options to :file:`setup.py` + +The basic syntax of the configuration file is simple: + +.. code-block:: ini + + [command] + option=value + ... + +where *command* is one of the Distutils commands (e.g. :command:`build_py`, +:command:`install`), and *option* is one of the options that command supports. +Any number of options can be supplied for each command, and any number of +command sections can be included in the file. Blank lines are ignored, as are +comments, which run from a ``'#'`` character until the end of the line. Long +option values can be split across multiple lines simply by indenting the +continuation lines. + +You can find out the list of options supported by a particular command with the +universal :option:`!--help` option, e.g. + +.. code-block:: shell-session + + $ python setup.py --help build_ext + [...] + Options for 'build_ext' command: + --build-lib (-b) directory for compiled extension modules + --build-temp (-t) directory for temporary files (build by-products) + --inplace (-i) ignore build-lib and put compiled extensions into the + source directory alongside your pure Python modules + --include-dirs (-I) list of directories to search for header files + --define (-D) C preprocessor macros to define + --undef (-U) C preprocessor macros to undefine + --swig-opts list of SWIG command line options + [...] + +Note that an option spelled :option:`!--foo-bar` on the command-line is spelled +``foo_bar`` in configuration files. + +.. _distutils-build-ext-inplace: + +For example, say you want your extensions to be built "in-place"---that is, you +have an extension :mod:`pkg.ext`, and you want the compiled extension file +(:file:`ext.so` on Unix, say) to be put in the same source directory as your +pure Python modules :mod:`pkg.mod1` and :mod:`pkg.mod2`. You can always use the +:option:`!--inplace` option on the command-line to ensure this: + +.. code-block:: sh + + python setup.py build_ext --inplace + +But this requires that you always specify the :command:`build_ext` command +explicitly, and remember to provide :option:`!--inplace`. An easier way is to +"set and forget" this option, by encoding it in :file:`setup.cfg`, the +configuration file for this distribution: + +.. code-block:: ini + + [build_ext] + inplace=1 + +This will affect all builds of this module distribution, whether or not you +explicitly specify :command:`build_ext`. If you include :file:`setup.cfg` in +your source distribution, it will also affect end-user builds---which is +probably a bad idea for this option, since always building extensions in-place +would break installation of the module distribution. In certain peculiar cases, +though, modules are built right in their installation directory, so this is +conceivably a useful ability. (Distributing extensions that expect to be built +in their installation directory is almost always a bad idea, though.) + +Another example: certain commands take a lot of options that don't change from +run to run; for example, :command:`bdist_rpm` needs to know everything required +to generate a "spec" file for creating an RPM distribution. Some of this +information comes from the setup script, and some is automatically generated by +the Distutils (such as the list of files installed). But some of it has to be +supplied as options to :command:`bdist_rpm`, which would be very tedious to do +on the command-line for every run. Hence, here is a snippet from the Distutils' +own :file:`setup.cfg`: + +.. code-block:: ini + + [bdist_rpm] + release = 1 + packager = Greg Ward <gward@python.net> + doc_files = CHANGES.txt + README.txt + USAGE.txt + doc/ + examples/ + +Note that the ``doc_files`` option is simply a whitespace-separated string +split across multiple lines for readability. + + +.. seealso:: + + :ref:`inst-config-syntax` in "Installing Python Modules" + More information on the configuration files is available in the manual for + system administrators. + + +.. rubric:: Footnotes + +.. [#] This ideal probably won't be achieved until auto-configuration is fully + supported by the Distutils. + diff --git a/Doc/distutils/examples.rst b/Doc/distutils/examples.rst new file mode 100644 index 00000000000000..e492b7f6057596 --- /dev/null +++ b/Doc/distutils/examples.rst @@ -0,0 +1,340 @@ +.. _distutils_examples: + +****************** +Distutils Examples +****************** + +.. include:: ./_setuptools_disclaimer.rst + +This chapter provides a number of basic examples to help get started with +distutils. Additional information about using distutils can be found in the +Distutils Cookbook. + + +.. seealso:: + + `Distutils Cookbook <https://wiki.python.org/moin/Distutils/Cookbook>`_ + Collection of recipes showing how to achieve more control over distutils. + + +.. _pure-mod: + +Pure Python distribution (by module) +==================================== + +If you're just distributing a couple of modules, especially if they don't live +in a particular package, you can specify them individually using the +``py_modules`` option in the setup script. + +In the simplest case, you'll have two files to worry about: a setup script and +the single module you're distributing, :file:`foo.py` in this example:: + + <root>/ + setup.py + foo.py + +(In all diagrams in this section, *<root>* will refer to the distribution root +directory.) A minimal setup script to describe this situation would be:: + + from distutils.core import setup + setup(name='foo', + version='1.0', + py_modules=['foo'], + ) + +Note that the name of the distribution is specified independently with the +``name`` option, and there's no rule that says it has to be the same as +the name of the sole module in the distribution (although that's probably a good +convention to follow). However, the distribution name is used to generate +filenames, so you should stick to letters, digits, underscores, and hyphens. + +Since ``py_modules`` is a list, you can of course specify multiple +modules, eg. if you're distributing modules :mod:`foo` and :mod:`bar`, your +setup might look like this:: + + <root>/ + setup.py + foo.py + bar.py + +and the setup script might be :: + + from distutils.core import setup + setup(name='foobar', + version='1.0', + py_modules=['foo', 'bar'], + ) + +You can put module source files into another directory, but if you have enough +modules to do that, it's probably easier to specify modules by package rather +than listing them individually. + + +.. _pure-pkg: + +Pure Python distribution (by package) +===================================== + +If you have more than a couple of modules to distribute, especially if they are +in multiple packages, it's probably easier to specify whole packages rather than +individual modules. This works even if your modules are not in a package; you +can just tell the Distutils to process modules from the root package, and that +works the same as any other package (except that you don't have to have an +:file:`__init__.py` file). + +The setup script from the last example could also be written as :: + + from distutils.core import setup + setup(name='foobar', + version='1.0', + packages=[''], + ) + +(The empty string stands for the root package.) + +If those two files are moved into a subdirectory, but remain in the root +package, e.g.:: + + <root>/ + setup.py + src/ foo.py + bar.py + +then you would still specify the root package, but you have to tell the +Distutils where source files in the root package live:: + + from distutils.core import setup + setup(name='foobar', + version='1.0', + package_dir={'': 'src'}, + packages=[''], + ) + +More typically, though, you will want to distribute multiple modules in the same +package (or in sub-packages). For example, if the :mod:`foo` and :mod:`bar` +modules belong in package :mod:`foobar`, one way to layout your source tree is +:: + + <root>/ + setup.py + foobar/ + __init__.py + foo.py + bar.py + +This is in fact the default layout expected by the Distutils, and the one that +requires the least work to describe in your setup script:: + + from distutils.core import setup + setup(name='foobar', + version='1.0', + packages=['foobar'], + ) + +If you want to put modules in directories not named for their package, then you +need to use the ``package_dir`` option again. For example, if the +:file:`src` directory holds modules in the :mod:`foobar` package:: + + <root>/ + setup.py + src/ + __init__.py + foo.py + bar.py + +an appropriate setup script would be :: + + from distutils.core import setup + setup(name='foobar', + version='1.0', + package_dir={'foobar': 'src'}, + packages=['foobar'], + ) + +Or, you might put modules from your main package right in the distribution +root:: + + <root>/ + setup.py + __init__.py + foo.py + bar.py + +in which case your setup script would be :: + + from distutils.core import setup + setup(name='foobar', + version='1.0', + package_dir={'foobar': ''}, + packages=['foobar'], + ) + +(The empty string also stands for the current directory.) + +If you have sub-packages, they must be explicitly listed in ``packages``, +but any entries in ``package_dir`` automatically extend to sub-packages. +(In other words, the Distutils does *not* scan your source tree, trying to +figure out which directories correspond to Python packages by looking for +:file:`__init__.py` files.) Thus, if the default layout grows a sub-package:: + + <root>/ + setup.py + foobar/ + __init__.py + foo.py + bar.py + subfoo/ + __init__.py + blah.py + +then the corresponding setup script would be :: + + from distutils.core import setup + setup(name='foobar', + version='1.0', + packages=['foobar', 'foobar.subfoo'], + ) + + +.. _single-ext: + +Single extension module +======================= + +Extension modules are specified using the ``ext_modules`` option. +``package_dir`` has no effect on where extension source files are found; +it only affects the source for pure Python modules. The simplest case, a +single extension module in a single C source file, is:: + + <root>/ + setup.py + foo.c + +If the :mod:`foo` extension belongs in the root package, the setup script for +this could be :: + + from distutils.core import setup + from distutils.extension import Extension + setup(name='foobar', + version='1.0', + ext_modules=[Extension('foo', ['foo.c'])], + ) + +If the extension actually belongs in a package, say :mod:`foopkg`, then + +With exactly the same source tree layout, this extension can be put in the +:mod:`foopkg` package simply by changing the name of the extension:: + + from distutils.core import setup + from distutils.extension import Extension + setup(name='foobar', + version='1.0', + ext_modules=[Extension('foopkg.foo', ['foo.c'])], + ) + +Checking a package +================== + +The ``check`` command allows you to verify if your package meta-data +meet the minimum requirements to build a distribution. + +To run it, just call it using your :file:`setup.py` script. If something is +missing, ``check`` will display a warning. + +Let's take an example with a simple script:: + + from distutils.core import setup + + setup(name='foobar') + +Running the ``check`` command will display some warnings: + +.. code-block:: shell-session + + $ python setup.py check + running check + warning: check: missing required meta-data: version, url + warning: check: missing meta-data: either (author and author_email) or + (maintainer and maintainer_email) should be supplied + + +If you use the reStructuredText syntax in the ``long_description`` field and +`docutils`_ is installed you can check if the syntax is fine with the +``check`` command, using the ``restructuredtext`` option. + +For example, if the :file:`setup.py` script is changed like this:: + + from distutils.core import setup + + desc = """\ + My description + ============== + + This is the description of the ``foobar`` package. + """ + + setup(name='foobar', version='1', author='tarek', + author_email='tarek@ziade.org', + url='http://example.com', long_description=desc) + +Where the long description is broken, ``check`` will be able to detect it +by using the :mod:`docutils` parser: + +.. code-block:: shell-session + + $ python setup.py check --restructuredtext + running check + warning: check: Title underline too short. (line 2) + warning: check: Could not finish the parsing. + +Reading the metadata +===================== + +The :func:`distutils.core.setup` function provides a command-line interface +that allows you to query the metadata fields of a project through the +``setup.py`` script of a given project: + +.. code-block:: shell-session + + $ python setup.py --name + distribute + +This call reads the ``name`` metadata by running the +:func:`distutils.core.setup` function. Although, when a source or binary +distribution is created with Distutils, the metadata fields are written +in a static file called :file:`PKG-INFO`. When a Distutils-based project is +installed in Python, the :file:`PKG-INFO` file is copied alongside the modules +and packages of the distribution under :file:`NAME-VERSION-pyX.X.egg-info`, +where ``NAME`` is the name of the project, ``VERSION`` its version as defined +in the Metadata, and ``pyX.X`` the major and minor version of Python like +``2.7`` or ``3.2``. + +You can read back this static file, by using the +:class:`distutils.dist.DistributionMetadata` class and its +:func:`read_pkg_file` method:: + + >>> from distutils.dist import DistributionMetadata + >>> metadata = DistributionMetadata() + >>> metadata.read_pkg_file(open('distribute-0.6.8-py2.7.egg-info')) + >>> metadata.name + 'distribute' + >>> metadata.version + '0.6.8' + >>> metadata.description + 'Easily download, build, install, upgrade, and uninstall Python packages' + +Notice that the class can also be instantiated with a metadata file path to +loads its values:: + + >>> pkg_info_path = 'distribute-0.6.8-py2.7.egg-info' + >>> DistributionMetadata(pkg_info_path).name + 'distribute' + + +.. % \section{Multiple extension modules} +.. % \label{multiple-ext} + +.. % \section{Putting it all together} + + +.. _docutils: http://docutils.sourceforge.net diff --git a/Doc/distutils/extending.rst b/Doc/distutils/extending.rst new file mode 100644 index 00000000000000..1075e81779a7ba --- /dev/null +++ b/Doc/distutils/extending.rst @@ -0,0 +1,98 @@ +.. _extending-distutils: + +******************* +Extending Distutils +******************* + +.. include:: ./_setuptools_disclaimer.rst + +Distutils can be extended in various ways. Most extensions take the form of new +commands or replacements for existing commands. New commands may be written to +support new types of platform-specific packaging, for example, while +replacements for existing commands may be made to modify details of how the +command operates on a package. + +Most extensions of the distutils are made within :file:`setup.py` scripts that +want to modify existing commands; many simply add a few file extensions that +should be copied into packages in addition to :file:`.py` files as a +convenience. + +Most distutils command implementations are subclasses of the +:class:`distutils.cmd.Command` class. New commands may directly inherit from +:class:`Command`, while replacements often derive from :class:`Command` +indirectly, directly subclassing the command they are replacing. Commands are +required to derive from :class:`Command`. + +.. % \section{Extending existing commands} +.. % \label{extend-existing} + +.. % \section{Writing new commands} +.. % \label{new-commands} +.. % \XXX{Would an uninstall command be a good example here?} + + +Integrating new commands +======================== + +There are different ways to integrate new command implementations into +distutils. The most difficult is to lobby for the inclusion of the new features +in distutils itself, and wait for (and require) a version of Python that +provides that support. This is really hard for many reasons. + +The most common, and possibly the most reasonable for most needs, is to include +the new implementations with your :file:`setup.py` script, and cause the +:func:`distutils.core.setup` function use them:: + + from distutils.command.build_py import build_py as _build_py + from distutils.core import setup + + class build_py(_build_py): + """Specialized Python source builder.""" + + # implement whatever needs to be different... + + setup(cmdclass={'build_py': build_py}, + ...) + +This approach is most valuable if the new implementations must be used to use a +particular package, as everyone interested in the package will need to have the +new command implementation. + +Beginning with Python 2.4, a third option is available, intended to allow new +commands to be added which can support existing :file:`setup.py` scripts without +requiring modifications to the Python installation. This is expected to allow +third-party extensions to provide support for additional packaging systems, but +the commands can be used for anything distutils commands can be used for. A new +configuration option, ``command_packages`` (command-line option +:option:`!--command-packages`), can be used to specify additional packages to be +searched for modules implementing commands. Like all distutils options, this +can be specified on the command line or in a configuration file. This option +can only be set in the ``[global]`` section of a configuration file, or before +any commands on the command line. If set in a configuration file, it can be +overridden from the command line; setting it to an empty string on the command +line causes the default to be used. This should never be set in a configuration +file provided with a package. + +This new option can be used to add any number of packages to the list of +packages searched for command implementations; multiple package names should be +separated by commas. When not specified, the search is only performed in the +:mod:`distutils.command` package. When :file:`setup.py` is run with the option +``--command-packages distcmds,buildcmds``, however, the packages +:mod:`distutils.command`, :mod:`distcmds`, and :mod:`buildcmds` will be searched +in that order. New commands are expected to be implemented in modules of the +same name as the command by classes sharing the same name. Given the example +command line option above, the command :command:`bdist_openpkg` could be +implemented by the class :class:`distcmds.bdist_openpkg.bdist_openpkg` or +:class:`buildcmds.bdist_openpkg.bdist_openpkg`. + + +Adding new distribution types +============================= + +Commands that create distributions (files in the :file:`dist/` directory) need +to add ``(command, filename)`` pairs to ``self.distribution.dist_files`` so that +:command:`upload` can upload it to PyPI. The *filename* in the pair contains no +path information, only the name of the file itself. In dry-run mode, pairs +should still be added to represent what would have been created. + + diff --git a/Doc/distutils/index.rst b/Doc/distutils/index.rst new file mode 100644 index 00000000000000..2ccddc38b5f26f --- /dev/null +++ b/Doc/distutils/index.rst @@ -0,0 +1,49 @@ +.. _distutils-index: + +############################################## + Distributing Python Modules (Legacy version) +############################################## + +:Authors: Greg Ward, Anthony Baxter +:Email: distutils-sig@python.org + +.. seealso:: + + :ref:`distributing-index` + The up to date module distribution documentations + +.. note:: + + The entire ``distutils`` package has been deprecated and will be + removed in Python 3.12. This documentation is retained as a + reference only, and will be removed with the package. See the + :ref:`What's New <distutils-deprecated>` entry for more information. + +.. include:: ./_setuptools_disclaimer.rst + +.. note:: + + This guide only covers the basic tools for building and distributing + extensions that are provided as part of this version of Python. Third party + tools offer easier to use and more secure alternatives. Refer to the `quick + recommendations section <https://packaging.python.org/guides/tool-recommendations/>`__ + in the Python Packaging User Guide for more information. + +This document describes the Python Distribution Utilities ("Distutils") from +the module developer's point of view, describing the underlying capabilities +that ``setuptools`` builds on to allow Python developers to make Python modules +and extensions readily available to a wider audience. + +.. toctree:: + :maxdepth: 2 + :numbered: + + introduction.rst + setupscript.rst + configfile.rst + sourcedist.rst + builtdist.rst + examples.rst + extending.rst + commandref.rst + apiref.rst diff --git a/Doc/distutils/introduction.rst b/Doc/distutils/introduction.rst new file mode 100644 index 00000000000000..87ed178e52bd45 --- /dev/null +++ b/Doc/distutils/introduction.rst @@ -0,0 +1,203 @@ +.. _distutils-intro: + +**************************** +An Introduction to Distutils +**************************** + +.. include:: ./_setuptools_disclaimer.rst + +This document covers using the Distutils to distribute your Python modules, +concentrating on the role of developer/distributor: if you're looking for +information on installing Python modules, you should refer to the +:ref:`install-index` chapter. + + +.. _distutils-concepts: + +Concepts & Terminology +====================== + +Using the Distutils is quite simple, both for module developers and for +users/administrators installing third-party modules. As a developer, your +responsibilities (apart from writing solid, well-documented and well-tested +code, of course!) are: + +* write a setup script (:file:`setup.py` by convention) + +* (optional) write a setup configuration file + +* create a source distribution + +* (optional) create one or more built (binary) distributions + +Each of these tasks is covered in this document. + +Not all module developers have access to a multitude of platforms, so it's not +always feasible to expect them to create a multitude of built distributions. It +is hoped that a class of intermediaries, called *packagers*, will arise to +address this need. Packagers will take source distributions released by module +developers, build them on one or more platforms, and release the resulting built +distributions. Thus, users on the most popular platforms will be able to +install most popular Python module distributions in the most natural way for +their platform, without having to run a single setup script or compile a line of +code. + + +.. _distutils-simple-example: + +A Simple Example +================ + +The setup script is usually quite simple, although since it's written in Python, +there are no arbitrary limits to what you can do with it, though you should be +careful about putting arbitrarily expensive operations in your setup script. +Unlike, say, Autoconf-style configure scripts, the setup script may be run +multiple times in the course of building and installing your module +distribution. + +If all you want to do is distribute a module called :mod:`foo`, contained in a +file :file:`foo.py`, then your setup script can be as simple as this:: + + from distutils.core import setup + setup(name='foo', + version='1.0', + py_modules=['foo'], + ) + +Some observations: + +* most information that you supply to the Distutils is supplied as keyword + arguments to the :func:`setup` function + +* those keyword arguments fall into two categories: package metadata (name, + version number) and information about what's in the package (a list of pure + Python modules, in this case) + +* modules are specified by module name, not filename (the same will hold true + for packages and extensions) + +* it's recommended that you supply a little more metadata, in particular your + name, email address and a URL for the project (see section :ref:`setup-script` + for an example) + +To create a source distribution for this module, you would create a setup +script, :file:`setup.py`, containing the above code, and run this command from a +terminal:: + + python setup.py sdist + +For Windows, open a command prompt window (:menuselection:`Start --> +Accessories`) and change the command to:: + + setup.py sdist + +:command:`sdist` will create an archive file (e.g., tarball on Unix, ZIP file on Windows) +containing your setup script :file:`setup.py`, and your module :file:`foo.py`. +The archive file will be named :file:`foo-1.0.tar.gz` (or :file:`.zip`), and +will unpack into a directory :file:`foo-1.0`. + +If an end-user wishes to install your :mod:`foo` module, all they have to do is +download :file:`foo-1.0.tar.gz` (or :file:`.zip`), unpack it, and---from the +:file:`foo-1.0` directory---run :: + + python setup.py install + +which will ultimately copy :file:`foo.py` to the appropriate directory for +third-party modules in their Python installation. + +This simple example demonstrates some fundamental concepts of the Distutils. +First, both developers and installers have the same basic user interface, i.e. +the setup script. The difference is which Distutils *commands* they use: the +:command:`sdist` command is almost exclusively for module developers, while +:command:`install` is more often for installers (although most developers will +want to install their own code occasionally). + +Other useful built distribution formats are RPM, implemented by the +:command:`bdist_rpm` command, Solaris :program:`pkgtool` +(:command:`bdist_pkgtool`), and HP-UX :program:`swinstall` +(:command:`bdist_sdux`). For example, the following command will create an RPM +file called :file:`foo-1.0.noarch.rpm`:: + + python setup.py bdist_rpm + +(The :command:`bdist_rpm` command uses the :command:`rpm` executable, therefore +this has to be run on an RPM-based system such as Red Hat Linux, SuSE Linux, or +Mandrake Linux.) + +You can find out what distribution formats are available at any time by running +:: + + python setup.py bdist --help-formats + + +.. _python-terms: + +General Python terminology +========================== + +If you're reading this document, you probably have a good idea of what modules, +extensions, and so forth are. Nevertheless, just to be sure that everyone is +operating from a common starting point, we offer the following glossary of +common Python terms: + +module + the basic unit of code reusability in Python: a block of code imported by some + other code. Three types of modules concern us here: pure Python modules, + extension modules, and packages. + +pure Python module + a module written in Python and contained in a single :file:`.py` file (and + possibly associated :file:`.pyc` files). Sometimes referred to as a + "pure module." + +extension module + a module written in the low-level language of the Python implementation: C/C++ + for Python, Java for Jython. Typically contained in a single dynamically + loadable pre-compiled file, e.g. a shared object (:file:`.so`) file for Python + extensions on Unix, a DLL (given the :file:`.pyd` extension) for Python + extensions on Windows, or a Java class file for Jython extensions. (Note that + currently, the Distutils only handles C/C++ extensions for Python.) + +package + a module that contains other modules; typically contained in a directory in the + filesystem and distinguished from other directories by the presence of a file + :file:`__init__.py`. + +root package + the root of the hierarchy of packages. (This isn't really a package, since it + doesn't have an :file:`__init__.py` file. But we have to call it something.) + The vast majority of the standard library is in the root package, as are many + small, standalone third-party modules that don't belong to a larger module + collection. Unlike regular packages, modules in the root package can be found in + many directories: in fact, every directory listed in ``sys.path`` contributes + modules to the root package. + + +.. _distutils-term: + +Distutils-specific terminology +============================== + +The following terms apply more specifically to the domain of distributing Python +modules using the Distutils: + +module distribution + a collection of Python modules distributed together as a single downloadable + resource and meant to be installed *en masse*. Examples of some well-known + module distributions are NumPy, SciPy, Pillow, + or mxBase. (This would be called a *package*, except that term is + already taken in the Python context: a single module distribution may contain + zero, one, or many Python packages.) + +pure module distribution + a module distribution that contains only pure Python modules and packages. + Sometimes referred to as a "pure distribution." + +non-pure module distribution + a module distribution that contains at least one extension module. Sometimes + referred to as a "non-pure distribution." + +distribution root + the top-level directory of your source tree (or source distribution); the + directory where :file:`setup.py` exists. Generally :file:`setup.py` will be + run from this directory. diff --git a/Doc/distutils/packageindex.rst b/Doc/distutils/packageindex.rst new file mode 100644 index 00000000000000..ccb9a598b2b7a2 --- /dev/null +++ b/Doc/distutils/packageindex.rst @@ -0,0 +1,16 @@ +:orphan: + +.. _package-index: + +******************************* +The Python Package Index (PyPI) +******************************* + +The `Python Package Index (PyPI)`_ stores metadata describing distributions +packaged with distutils and other publishing tools, as well the distribution +archives themselves. + +References to up to date PyPI documentation can be found at +:ref:`publishing-python-packages`. + +.. _Python Package Index (PyPI): https://pypi.org diff --git a/Doc/distutils/setupscript.rst b/Doc/distutils/setupscript.rst new file mode 100644 index 00000000000000..4386a60b664bfb --- /dev/null +++ b/Doc/distutils/setupscript.rst @@ -0,0 +1,713 @@ +.. _setup-script: + +************************ +Writing the Setup Script +************************ + +.. include:: ./_setuptools_disclaimer.rst + +The setup script is the centre of all activity in building, distributing, and +installing modules using the Distutils. The main purpose of the setup script is +to describe your module distribution to the Distutils, so that the various +commands that operate on your modules do the right thing. As we saw in section +:ref:`distutils-simple-example` above, the setup script consists mainly of a call to +:func:`setup`, and most information supplied to the Distutils by the module +developer is supplied as keyword arguments to :func:`setup`. + +Here's a slightly more involved example, which we'll follow for the next couple +of sections: the Distutils' own setup script. (Keep in mind that although the +Distutils are included with Python 1.6 and later, they also have an independent +existence so that Python 1.5.2 users can use them to install other module +distributions. The Distutils' own setup script, shown here, is used to install +the package into Python 1.5.2.) :: + + #!/usr/bin/env python + + from distutils.core import setup + + setup(name='Distutils', + version='1.0', + description='Python Distribution Utilities', + author='Greg Ward', + author_email='gward@python.net', + url='https://www.python.org/sigs/distutils-sig/', + packages=['distutils', 'distutils.command'], + ) + +There are only two differences between this and the trivial one-file +distribution presented in section :ref:`distutils-simple-example`: more metadata, and the +specification of pure Python modules by package, rather than by module. This is +important since the Distutils consist of a couple of dozen modules split into +(so far) two packages; an explicit list of every module would be tedious to +generate and difficult to maintain. For more information on the additional +meta-data, see section :ref:`meta-data`. + +Note that any pathnames (files or directories) supplied in the setup script +should be written using the Unix convention, i.e. slash-separated. The +Distutils will take care of converting this platform-neutral representation into +whatever is appropriate on your current platform before actually using the +pathname. This makes your setup script portable across operating systems, which +of course is one of the major goals of the Distutils. In this spirit, all +pathnames in this document are slash-separated. + +This, of course, only applies to pathnames given to Distutils functions. If +you, for example, use standard Python functions such as :func:`glob.glob` or +:func:`os.listdir` to specify files, you should be careful to write portable +code instead of hardcoding path separators:: + + glob.glob(os.path.join('mydir', 'subdir', '*.html')) + os.listdir(os.path.join('mydir', 'subdir')) + + +.. _listing-packages: + +Listing whole packages +====================== + +The ``packages`` option tells the Distutils to process (build, distribute, +install, etc.) all pure Python modules found in each package mentioned in the +``packages`` list. In order to do this, of course, there has to be a +correspondence between package names and directories in the filesystem. The +default correspondence is the most obvious one, i.e. package :mod:`distutils` is +found in the directory :file:`distutils` relative to the distribution root. +Thus, when you say ``packages = ['foo']`` in your setup script, you are +promising that the Distutils will find a file :file:`foo/__init__.py` (which +might be spelled differently on your system, but you get the idea) relative to +the directory where your setup script lives. If you break this promise, the +Distutils will issue a warning but still process the broken package anyway. + +If you use a different convention to lay out your source directory, that's no +problem: you just have to supply the ``package_dir`` option to tell the +Distutils about your convention. For example, say you keep all Python source +under :file:`lib`, so that modules in the "root package" (i.e., not in any +package at all) are in :file:`lib`, modules in the :mod:`foo` package are in +:file:`lib/foo`, and so forth. Then you would put :: + + package_dir = {'': 'lib'} + +in your setup script. The keys to this dictionary are package names, and an +empty package name stands for the root package. The values are directory names +relative to your distribution root. In this case, when you say ``packages = +['foo']``, you are promising that the file :file:`lib/foo/__init__.py` exists. + +Another possible convention is to put the :mod:`foo` package right in +:file:`lib`, the :mod:`foo.bar` package in :file:`lib/bar`, etc. This would be +written in the setup script as :: + + package_dir = {'foo': 'lib'} + +A ``package: dir`` entry in the ``package_dir`` dictionary implicitly +applies to all packages below *package*, so the :mod:`foo.bar` case is +automatically handled here. In this example, having ``packages = ['foo', +'foo.bar']`` tells the Distutils to look for :file:`lib/__init__.py` and +:file:`lib/bar/__init__.py`. (Keep in mind that although ``package_dir`` +applies recursively, you must explicitly list all packages in +``packages``: the Distutils will *not* recursively scan your source tree +looking for any directory with an :file:`__init__.py` file.) + + +.. _listing-modules: + +Listing individual modules +========================== + +For a small module distribution, you might prefer to list all modules rather +than listing packages---especially the case of a single module that goes in the +"root package" (i.e., no package at all). This simplest case was shown in +section :ref:`distutils-simple-example`; here is a slightly more involved example:: + + py_modules = ['mod1', 'pkg.mod2'] + +This describes two modules, one of them in the "root" package, the other in the +:mod:`pkg` package. Again, the default package/directory layout implies that +these two modules can be found in :file:`mod1.py` and :file:`pkg/mod2.py`, and +that :file:`pkg/__init__.py` exists as well. And again, you can override the +package/directory correspondence using the ``package_dir`` option. + + +.. _describing-extensions: + +Describing extension modules +============================ + +Just as writing Python extension modules is a bit more complicated than writing +pure Python modules, describing them to the Distutils is a bit more complicated. +Unlike pure modules, it's not enough just to list modules or packages and expect +the Distutils to go out and find the right files; you have to specify the +extension name, source file(s), and any compile/link requirements (include +directories, libraries to link with, etc.). + +.. XXX read over this section + +All of this is done through another keyword argument to :func:`setup`, the +``ext_modules`` option. ``ext_modules`` is just a list of +:class:`~distutils.core.Extension` instances, each of which describes a +single extension module. +Suppose your distribution includes a single extension, called :mod:`foo` and +implemented by :file:`foo.c`. If no additional instructions to the +compiler/linker are needed, describing this extension is quite simple:: + + Extension('foo', ['foo.c']) + +The :class:`Extension` class can be imported from :mod:`distutils.core` along +with :func:`setup`. Thus, the setup script for a module distribution that +contains only this one extension and nothing else might be:: + + from distutils.core import setup, Extension + setup(name='foo', + version='1.0', + ext_modules=[Extension('foo', ['foo.c'])], + ) + +The :class:`Extension` class (actually, the underlying extension-building +machinery implemented by the :command:`build_ext` command) supports a great deal +of flexibility in describing Python extensions, which is explained in the +following sections. + + +Extension names and packages +---------------------------- + +The first argument to the :class:`~distutils.core.Extension` constructor is +always the name of the extension, including any package names. For example, :: + + Extension('foo', ['src/foo1.c', 'src/foo2.c']) + +describes an extension that lives in the root package, while :: + + Extension('pkg.foo', ['src/foo1.c', 'src/foo2.c']) + +describes the same extension in the :mod:`pkg` package. The source files and +resulting object code are identical in both cases; the only difference is where +in the filesystem (and therefore where in Python's namespace hierarchy) the +resulting extension lives. + +If you have a number of extensions all in the same package (or all under the +same base package), use the ``ext_package`` keyword argument to +:func:`setup`. For example, :: + + setup(..., + ext_package='pkg', + ext_modules=[Extension('foo', ['foo.c']), + Extension('subpkg.bar', ['bar.c'])], + ) + +will compile :file:`foo.c` to the extension :mod:`pkg.foo`, and :file:`bar.c` to +:mod:`pkg.subpkg.bar`. + + +Extension source files +---------------------- + +The second argument to the :class:`~distutils.core.Extension` constructor is +a list of source +files. Since the Distutils currently only support C, C++, and Objective-C +extensions, these are normally C/C++/Objective-C source files. (Be sure to use +appropriate extensions to distinguish C++ source files: :file:`.cc` and +:file:`.cpp` seem to be recognized by both Unix and Windows compilers.) + +However, you can also include SWIG interface (:file:`.i`) files in the list; the +:command:`build_ext` command knows how to deal with SWIG extensions: it will run +SWIG on the interface file and compile the resulting C/C++ file into your +extension. + +.. XXX SWIG support is rough around the edges and largely untested! + +This warning notwithstanding, options to SWIG can be currently passed like +this:: + + setup(..., + ext_modules=[Extension('_foo', ['foo.i'], + swig_opts=['-modern', '-I../include'])], + py_modules=['foo'], + ) + +Or on the commandline like this:: + + > python setup.py build_ext --swig-opts="-modern -I../include" + +On some platforms, you can include non-source files that are processed by the +compiler and included in your extension. Currently, this just means Windows +message text (:file:`.mc`) files and resource definition (:file:`.rc`) files for +Visual C++. These will be compiled to binary resource (:file:`.res`) files and +linked into the executable. + + +Preprocessor options +-------------------- + +Three optional arguments to :class:`~distutils.core.Extension` will help if +you need to specify include directories to search or preprocessor macros to +define/undefine: ``include_dirs``, ``define_macros``, and ``undef_macros``. + +For example, if your extension requires header files in the :file:`include` +directory under your distribution root, use the ``include_dirs`` option:: + + Extension('foo', ['foo.c'], include_dirs=['include']) + +You can specify absolute directories there; if you know that your extension will +only be built on Unix systems with X11R6 installed to :file:`/usr`, you can get +away with :: + + Extension('foo', ['foo.c'], include_dirs=['/usr/include/X11']) + +You should avoid this sort of non-portable usage if you plan to distribute your +code: it's probably better to write C code like :: + + #include <X11/Xlib.h> + +If you need to include header files from some other Python extension, you can +take advantage of the fact that header files are installed in a consistent way +by the Distutils :command:`install_headers` command. For example, the Numerical +Python header files are installed (on a standard Unix installation) to +:file:`/usr/local/include/python1.5/Numerical`. (The exact location will differ +according to your platform and Python installation.) Since the Python include +directory---\ :file:`/usr/local/include/python1.5` in this case---is always +included in the search path when building Python extensions, the best approach +is to write C code like :: + + #include <Numerical/arrayobject.h> + +If you must put the :file:`Numerical` include directory right into your header +search path, though, you can find that directory using the Distutils +:mod:`distutils.sysconfig` module:: + + from distutils.sysconfig import get_python_inc + incdir = os.path.join(get_python_inc(plat_specific=1), 'Numerical') + setup(..., + Extension(..., include_dirs=[incdir]), + ) + +Even though this is quite portable---it will work on any Python installation, +regardless of platform---it's probably easier to just write your C code in the +sensible way. + +You can define and undefine pre-processor macros with the ``define_macros`` and +``undef_macros`` options. ``define_macros`` takes a list of ``(name, value)`` +tuples, where ``name`` is the name of the macro to define (a string) and +``value`` is its value: either a string or ``None``. (Defining a macro ``FOO`` +to ``None`` is the equivalent of a bare ``#define FOO`` in your C source: with +most compilers, this sets ``FOO`` to the string ``1``.) ``undef_macros`` is +just a list of macros to undefine. + +For example:: + + Extension(..., + define_macros=[('NDEBUG', '1'), + ('HAVE_STRFTIME', None)], + undef_macros=['HAVE_FOO', 'HAVE_BAR']) + +is the equivalent of having this at the top of every C source file:: + + #define NDEBUG 1 + #define HAVE_STRFTIME + #undef HAVE_FOO + #undef HAVE_BAR + + +Library options +--------------- + +You can also specify the libraries to link against when building your extension, +and the directories to search for those libraries. The ``libraries`` option is +a list of libraries to link against, ``library_dirs`` is a list of directories +to search for libraries at link-time, and ``runtime_library_dirs`` is a list of +directories to search for shared (dynamically loaded) libraries at run-time. + +For example, if you need to link against libraries known to be in the standard +library search path on target systems :: + + Extension(..., + libraries=['gdbm', 'readline']) + +If you need to link with libraries in a non-standard location, you'll have to +include the location in ``library_dirs``:: + + Extension(..., + library_dirs=['/usr/X11R6/lib'], + libraries=['X11', 'Xt']) + +(Again, this sort of non-portable construct should be avoided if you intend to +distribute your code.) + +.. XXX Should mention clib libraries here or somewhere else! + + +Other options +------------- + +There are still some other options which can be used to handle special cases. + +The ``optional`` option is a boolean; if it is true, +a build failure in the extension will not abort the build process, but +instead simply not install the failing extension. + +The ``extra_objects`` option is a list of object files to be passed to the +linker. These files must not have extensions, as the default extension for the +compiler is used. + +``extra_compile_args`` and ``extra_link_args`` can be used to +specify additional command line options for the respective compiler and linker +command lines. + +``export_symbols`` is only useful on Windows. It can contain a list of +symbols (functions or variables) to be exported. This option is not needed when +building compiled extensions: Distutils will automatically add ``initmodule`` +to the list of exported symbols. + +The ``depends`` option is a list of files that the extension depends on +(for example header files). The build command will call the compiler on the +sources to rebuild extension if any on this files has been modified since the +previous build. + +Relationships between Distributions and Packages +================================================ + +A distribution may relate to packages in three specific ways: + +#. It can require packages or modules. + +#. It can provide packages or modules. + +#. It can obsolete packages or modules. + +These relationships can be specified using keyword arguments to the +:func:`distutils.core.setup` function. + +Dependencies on other Python modules and packages can be specified by supplying +the *requires* keyword argument to :func:`setup`. The value must be a list of +strings. Each string specifies a package that is required, and optionally what +versions are sufficient. + +To specify that any version of a module or package is required, the string +should consist entirely of the module or package name. Examples include +``'mymodule'`` and ``'xml.parsers.expat'``. + +If specific versions are required, a sequence of qualifiers can be supplied in +parentheses. Each qualifier may consist of a comparison operator and a version +number. The accepted comparison operators are:: + + < > == + <= >= != + +These can be combined by using multiple qualifiers separated by commas (and +optional whitespace). In this case, all of the qualifiers must be matched; a +logical AND is used to combine the evaluations. + +Let's look at a bunch of examples: + ++-------------------------+----------------------------------------------+ +| Requires Expression | Explanation | ++=========================+==============================================+ +| ``==1.0`` | Only version ``1.0`` is compatible | ++-------------------------+----------------------------------------------+ +| ``>1.0, !=1.5.1, <2.0`` | Any version after ``1.0`` and before ``2.0`` | +| | is compatible, except ``1.5.1`` | ++-------------------------+----------------------------------------------+ + +Now that we can specify dependencies, we also need to be able to specify what we +provide that other distributions can require. This is done using the *provides* +keyword argument to :func:`setup`. The value for this keyword is a list of +strings, each of which names a Python module or package, and optionally +identifies the version. If the version is not specified, it is assumed to match +that of the distribution. + +Some examples: + ++---------------------+----------------------------------------------+ +| Provides Expression | Explanation | ++=====================+==============================================+ +| ``mypkg`` | Provide ``mypkg``, using the distribution | +| | version | ++---------------------+----------------------------------------------+ +| ``mypkg (1.1)`` | Provide ``mypkg`` version 1.1, regardless of | +| | the distribution version | ++---------------------+----------------------------------------------+ + +A package can declare that it obsoletes other packages using the *obsoletes* +keyword argument. The value for this is similar to that of the *requires* +keyword: a list of strings giving module or package specifiers. Each specifier +consists of a module or package name optionally followed by one or more version +qualifiers. Version qualifiers are given in parentheses after the module or +package name. + +The versions identified by the qualifiers are those that are obsoleted by the +distribution being described. If no qualifiers are given, all versions of the +named module or package are understood to be obsoleted. + +.. _distutils-installing-scripts: + +Installing Scripts +================== + +So far we have been dealing with pure and non-pure Python modules, which are +usually not run by themselves but imported by scripts. + +Scripts are files containing Python source code, intended to be started from the +command line. Scripts don't require Distutils to do anything very complicated. +The only clever feature is that if the first line of the script starts with +``#!`` and contains the word "python", the Distutils will adjust the first line +to refer to the current interpreter location. By default, it is replaced with +the current interpreter location. The :option:`!--executable` (or :option:`!-e`) +option will allow the interpreter path to be explicitly overridden. + +The ``scripts`` option simply is a list of files to be handled in this +way. From the PyXML setup script:: + + setup(..., + scripts=['scripts/xmlproc_parse', 'scripts/xmlproc_val'] + ) + +.. versionchanged:: 3.1 + All the scripts will also be added to the ``MANIFEST`` file if no template is + provided. See :ref:`manifest`. + + +.. _distutils-installing-package-data: + +Installing Package Data +======================= + +Often, additional files need to be installed into a package. These files are +often data that's closely related to the package's implementation, or text files +containing documentation that might be of interest to programmers using the +package. These files are called :dfn:`package data`. + +Package data can be added to packages using the ``package_data`` keyword +argument to the :func:`setup` function. The value must be a mapping from +package name to a list of relative path names that should be copied into the +package. The paths are interpreted as relative to the directory containing the +package (information from the ``package_dir`` mapping is used if appropriate); +that is, the files are expected to be part of the package in the source +directories. They may contain glob patterns as well. + +The path names may contain directory portions; any necessary directories will be +created in the installation. + +For example, if a package should contain a subdirectory with several data files, +the files can be arranged like this in the source tree:: + + setup.py + src/ + mypkg/ + __init__.py + module.py + data/ + tables.dat + spoons.dat + forks.dat + +The corresponding call to :func:`setup` might be:: + + setup(..., + packages=['mypkg'], + package_dir={'mypkg': 'src/mypkg'}, + package_data={'mypkg': ['data/*.dat']}, + ) + + +.. versionchanged:: 3.1 + All the files that match ``package_data`` will be added to the ``MANIFEST`` + file if no template is provided. See :ref:`manifest`. + + +.. _distutils-additional-files: + +Installing Additional Files +=========================== + +The ``data_files`` option can be used to specify additional files needed +by the module distribution: configuration files, message catalogs, data files, +anything which doesn't fit in the previous categories. + +``data_files`` specifies a sequence of (*directory*, *files*) pairs in the +following way:: + + setup(..., + data_files=[('bitmaps', ['bm/b1.gif', 'bm/b2.gif']), + ('config', ['cfg/data.cfg'])], + ) + +Each (*directory*, *files*) pair in the sequence specifies the installation +directory and the files to install there. + +Each file name in *files* is interpreted relative to the :file:`setup.py` +script at the top of the package source distribution. Note that you can +specify the directory where the data files will be installed, but you cannot +rename the data files themselves. + +The *directory* should be a relative path. It is interpreted relative to the +installation prefix (Python's ``sys.prefix`` for system installations; +``site.USER_BASE`` for user installations). Distutils allows *directory* to be +an absolute installation path, but this is discouraged since it is +incompatible with the wheel packaging format. No directory information from +*files* is used to determine the final location of the installed file; only +the name of the file is used. + +You can specify the ``data_files`` options as a simple sequence of files +without specifying a target directory, but this is not recommended, and the +:command:`install` command will print a warning in this case. To install data +files directly in the target directory, an empty string should be given as the +directory. + +.. versionchanged:: 3.1 + All the files that match ``data_files`` will be added to the ``MANIFEST`` + file if no template is provided. See :ref:`manifest`. + + +.. _meta-data: + +Additional meta-data +==================== + +The setup script may include additional meta-data beyond the name and version. +This information includes: + ++----------------------+---------------------------+-----------------+--------+ +| Meta-Data | Description | Value | Notes | ++======================+===========================+=================+========+ +| ``name`` | name of the package | short string | \(1) | ++----------------------+---------------------------+-----------------+--------+ +| ``version`` | version of this release | short string | (1)(2) | ++----------------------+---------------------------+-----------------+--------+ +| ``author`` | package author's name | short string | \(3) | ++----------------------+---------------------------+-----------------+--------+ +| ``author_email`` | email address of the | email address | \(3) | +| | package author | | | ++----------------------+---------------------------+-----------------+--------+ +| ``maintainer`` | package maintainer's name | short string | \(3) | ++----------------------+---------------------------+-----------------+--------+ +| ``maintainer_email`` | email address of the | email address | \(3) | +| | package maintainer | | | ++----------------------+---------------------------+-----------------+--------+ +| ``url`` | home page for the package | URL | \(1) | ++----------------------+---------------------------+-----------------+--------+ +| ``description`` | short, summary | short string | | +| | description of the | | | +| | package | | | ++----------------------+---------------------------+-----------------+--------+ +| ``long_description`` | longer description of the | long string | \(4) | +| | package | | | ++----------------------+---------------------------+-----------------+--------+ +| ``download_url`` | location where the | URL | | +| | package may be downloaded | | | ++----------------------+---------------------------+-----------------+--------+ +| ``classifiers`` | a list of classifiers | list of strings | (6)(7) | ++----------------------+---------------------------+-----------------+--------+ +| ``platforms`` | a list of platforms | list of strings | (6)(8) | ++----------------------+---------------------------+-----------------+--------+ +| ``keywords`` | a list of keywords | list of strings | (6)(8) | ++----------------------+---------------------------+-----------------+--------+ +| ``license`` | license for the package | short string | \(5) | ++----------------------+---------------------------+-----------------+--------+ + +Notes: + +(1) + These fields are required. + +(2) + It is recommended that versions take the form *major.minor[.patch[.sub]]*. + +(3) + Either the author or the maintainer must be identified. If maintainer is + provided, distutils lists it as the author in :file:`PKG-INFO`. + +(4) + The ``long_description`` field is used by PyPI when you publish a package, + to build its project page. + +(5) + The ``license`` field is a text indicating the license covering the + package where the license is not a selection from the "License" Trove + classifiers. See the ``Classifier`` field. Notice that + there's a ``licence`` distribution option which is deprecated but still + acts as an alias for ``license``. + +(6) + This field must be a list. + +(7) + The valid classifiers are listed on + `PyPI <https://pypi.org/classifiers>`_. + +(8) + To preserve backward compatibility, this field also accepts a string. If + you pass a comma-separated string ``'foo, bar'``, it will be converted to + ``['foo', 'bar']``, Otherwise, it will be converted to a list of one + string. + +'short string' + A single line of text, not more than 200 characters. + +'long string' + Multiple lines of plain text in reStructuredText format (see + http://docutils.sourceforge.net/). + +'list of strings' + See below. + +Encoding the version information is an art in itself. Python packages generally +adhere to the version format *major.minor[.patch][sub]*. The major number is 0 +for initial, experimental releases of software. It is incremented for releases +that represent major milestones in a package. The minor number is incremented +when important new features are added to the package. The patch number +increments when bug-fix releases are made. Additional trailing version +information is sometimes used to indicate sub-releases. These are +"a1,a2,...,aN" (for alpha releases, where functionality and API may change), +"b1,b2,...,bN" (for beta releases, which only fix bugs) and "pr1,pr2,...,prN" +(for final pre-release release testing). Some examples: + +0.1.0 + the first, experimental release of a package + +1.0.1a2 + the second alpha release of the first patch version of 1.0 + +``classifiers`` must be specified in a list:: + + setup(..., + classifiers=[ + 'Development Status :: 4 - Beta', + 'Environment :: Console', + 'Environment :: Web Environment', + 'Intended Audience :: End Users/Desktop', + 'Intended Audience :: Developers', + 'Intended Audience :: System Administrators', + 'License :: OSI Approved :: Python Software Foundation License', + 'Operating System :: MacOS :: MacOS X', + 'Operating System :: Microsoft :: Windows', + 'Operating System :: POSIX', + 'Programming Language :: Python', + 'Topic :: Communications :: Email', + 'Topic :: Office/Business', + 'Topic :: Software Development :: Bug Tracking', + ], + ) + +.. versionchanged:: 3.7 + :class:`~distutils.core.setup` now warns when ``classifiers``, ``keywords`` + or ``platforms`` fields are not specified as a list or a string. + +.. _debug-setup-script: + +Debugging the setup script +========================== + +Sometimes things go wrong, and the setup script doesn't do what the developer +wants. + +Distutils catches any exceptions when running the setup script, and print a +simple error message before the script is terminated. The motivation for this +behaviour is to not confuse administrators who don't know much about Python and +are trying to install a package. If they get a big long traceback from deep +inside the guts of Distutils, they may think the package or the Python +installation is broken because they don't read all the way down to the bottom +and see that it's a permission problem. + +On the other hand, this doesn't help the developer to find the cause of the +failure. For this purpose, the :envvar:`DISTUTILS_DEBUG` environment variable can be set +to anything except an empty string, and distutils will now print detailed +information about what it is doing, dump the full traceback when an exception +occurs, and print the whole command line when an external program (like a C +compiler) fails. diff --git a/Doc/distutils/sourcedist.rst b/Doc/distutils/sourcedist.rst new file mode 100644 index 00000000000000..b55d01157f3ee1 --- /dev/null +++ b/Doc/distutils/sourcedist.rst @@ -0,0 +1,245 @@ +.. _source-dist: + +****************************** +Creating a Source Distribution +****************************** + +.. include:: ./_setuptools_disclaimer.rst + +As shown in section :ref:`distutils-simple-example`, you use the :command:`sdist` command +to create a source distribution. In the simplest case, :: + + python setup.py sdist + +(assuming you haven't specified any :command:`sdist` options in the setup script +or config file), :command:`sdist` creates the archive of the default format for +the current platform. The default format is a gzip'ed tar file +(:file:`.tar.gz`) on Unix, and ZIP file on Windows. + +You can specify as many formats as you like using the :option:`!--formats` +option, for example:: + + python setup.py sdist --formats=gztar,zip + +to create a gzipped tarball and a zip file. The available formats are: + ++-----------+-------------------------+-------------+ +| Format | Description | Notes | ++===========+=========================+=============+ +| ``zip`` | zip file (:file:`.zip`) | (1),(3) | ++-----------+-------------------------+-------------+ +| ``gztar`` | gzip'ed tar file | \(2) | +| | (:file:`.tar.gz`) | | ++-----------+-------------------------+-------------+ +| ``bztar`` | bzip2'ed tar file | \(5) | +| | (:file:`.tar.bz2`) | | ++-----------+-------------------------+-------------+ +| ``xztar`` | xz'ed tar file | \(5) | +| | (:file:`.tar.xz`) | | ++-----------+-------------------------+-------------+ +| ``ztar`` | compressed tar file | (4),(5) | +| | (:file:`.tar.Z`) | | ++-----------+-------------------------+-------------+ +| ``tar`` | tar file (:file:`.tar`) | \(5) | ++-----------+-------------------------+-------------+ + +.. versionchanged:: 3.5 + Added support for the ``xztar`` format. + +Notes: + +(1) + default on Windows + +(2) + default on Unix + +(3) + requires either external :program:`zip` utility or :mod:`zipfile` module (part + of the standard Python library since Python 1.6) + +(4) + requires the :program:`compress` program. Notice that this format is now + pending for deprecation and will be removed in the future versions of Python. +(5) + deprecated by `PEP 527 <https://peps.python.org/pep-0527/>`_; + `PyPI <https://pypi.org>`_ only accepts ``.zip`` and ``.tar.gz`` files. + +When using any ``tar`` format (``gztar``, ``bztar``, ``xztar``, ``ztar`` or +``tar``), under Unix you can specify the ``owner`` and ``group`` names +that will be set for each member of the archive. + +For example, if you want all files of the archive to be owned by root:: + + python setup.py sdist --owner=root --group=root + + +.. _manifest: + +Specifying the files to distribute +================================== + +If you don't supply an explicit list of files (or instructions on how to +generate one), the :command:`sdist` command puts a minimal default set into the +source distribution: + +* all Python source files implied by the ``py_modules`` and + ``packages`` options + +* all C source files mentioned in the ``ext_modules`` or + ``libraries`` options + + .. XXX getting C library sources currently broken---no + :meth:`get_source_files` method in :file:`build_clib.py`! + +* scripts identified by the ``scripts`` option + See :ref:`distutils-installing-scripts`. + +* anything that looks like a test script: :file:`test/test\*.py` (currently, the + Distutils don't do anything with test scripts except include them in source + distributions, but in the future there will be a standard for testing Python + module distributions) + +* Any of the standard README files (:file:`README`, :file:`README.txt`, + or :file:`README.rst`), :file:`setup.py` (or whatever you called your setup + script), and :file:`setup.cfg`. + +* all files that matches the ``package_data`` metadata. + See :ref:`distutils-installing-package-data`. + +* all files that matches the ``data_files`` metadata. + See :ref:`distutils-additional-files`. + +Sometimes this is enough, but usually you will want to specify additional files +to distribute. The typical way to do this is to write a *manifest template*, +called :file:`MANIFEST.in` by default. The manifest template is just a list of +instructions for how to generate your manifest file, :file:`MANIFEST`, which is +the exact list of files to include in your source distribution. The +:command:`sdist` command processes this template and generates a manifest based +on its instructions and what it finds in the filesystem. + +If you prefer to roll your own manifest file, the format is simple: one filename +per line, regular files (or symlinks to them) only. If you do supply your own +:file:`MANIFEST`, you must specify everything: the default set of files +described above does not apply in this case. + +.. versionchanged:: 3.1 + An existing generated :file:`MANIFEST` will be regenerated without + :command:`sdist` comparing its modification time to the one of + :file:`MANIFEST.in` or :file:`setup.py`. + +.. versionchanged:: 3.1.3 + :file:`MANIFEST` files start with a comment indicating they are generated. + Files without this comment are not overwritten or removed. + +.. versionchanged:: 3.2.2 + :command:`sdist` will read a :file:`MANIFEST` file if no :file:`MANIFEST.in` + exists, like it used to do. + +.. versionchanged:: 3.7 + :file:`README.rst` is now included in the list of distutils standard READMEs. + + +The manifest template has one command per line, where each command specifies a +set of files to include or exclude from the source distribution. For an +example, again we turn to the Distutils' own manifest template: + +.. code-block:: none + + include *.txt + recursive-include examples *.txt *.py + prune examples/sample?/build + +The meanings should be fairly clear: include all files in the distribution root +matching :file:`\*.txt`, all files anywhere under the :file:`examples` directory +matching :file:`\*.txt` or :file:`\*.py`, and exclude all directories matching +:file:`examples/sample?/build`. All of this is done *after* the standard +include set, so you can exclude files from the standard set with explicit +instructions in the manifest template. (Or, you can use the +:option:`!--no-defaults` option to disable the standard set entirely.) There are +several other commands available in the manifest template mini-language; see +section :ref:`sdist-cmd`. + +The order of commands in the manifest template matters: initially, we have the +list of default files as described above, and each command in the template adds +to or removes from that list of files. Once we have fully processed the +manifest template, we remove files that should not be included in the source +distribution: + +* all files in the Distutils "build" tree (default :file:`build/`) + +* all files in directories named :file:`RCS`, :file:`CVS`, :file:`.svn`, + :file:`.hg`, :file:`.git`, :file:`.bzr` or :file:`_darcs` + +Now we have our complete list of files, which is written to the manifest for +future reference, and then used to build the source distribution archive(s). + +You can disable the default set of included files with the +:option:`!--no-defaults` option, and you can disable the standard exclude set +with :option:`!--no-prune`. + +Following the Distutils' own manifest template, let's trace how the +:command:`sdist` command builds the list of files to include in the Distutils +source distribution: + +#. include all Python source files in the :file:`distutils` and + :file:`distutils/command` subdirectories (because packages corresponding to + those two directories were mentioned in the ``packages`` option in the + setup script---see section :ref:`setup-script`) + +#. include :file:`README.txt`, :file:`setup.py`, and :file:`setup.cfg` (standard + files) + +#. include :file:`test/test\*.py` (standard files) + +#. include :file:`\*.txt` in the distribution root (this will find + :file:`README.txt` a second time, but such redundancies are weeded out later) + +#. include anything matching :file:`\*.txt` or :file:`\*.py` in the sub-tree + under :file:`examples`, + +#. exclude all files in the sub-trees starting at directories matching + :file:`examples/sample?/build`\ ---this may exclude files included by the + previous two steps, so it's important that the ``prune`` command in the manifest + template comes after the ``recursive-include`` command + +#. exclude the entire :file:`build` tree, and any :file:`RCS`, :file:`CVS`, + :file:`.svn`, :file:`.hg`, :file:`.git`, :file:`.bzr` and :file:`_darcs` + directories + +Just like in the setup script, file and directory names in the manifest template +should always be slash-separated; the Distutils will take care of converting +them to the standard representation on your platform. That way, the manifest +template is portable across operating systems. + + +.. _manifest-options: + +Manifest-related options +======================== + +The normal course of operations for the :command:`sdist` command is as follows: + +* if the manifest file (:file:`MANIFEST` by default) exists and the first line + does not have a comment indicating it is generated from :file:`MANIFEST.in`, + then it is used as is, unaltered + +* if the manifest file doesn't exist or has been previously automatically + generated, read :file:`MANIFEST.in` and create the manifest + +* if neither :file:`MANIFEST` nor :file:`MANIFEST.in` exist, create a manifest + with just the default file set + +* use the list of files now in :file:`MANIFEST` (either just generated or read + in) to create the source distribution archive(s) + +There are a couple of options that modify this behaviour. First, use the +:option:`!--no-defaults` and :option:`!--no-prune` to disable the standard +"include" and "exclude" sets. + +Second, you might just want to (re)generate the manifest, but not create a source +distribution:: + + python setup.py sdist --manifest-only + +:option:`!-o` is a shortcut for :option:`!--manifest-only`. diff --git a/Doc/distutils/uploading.rst b/Doc/distutils/uploading.rst new file mode 100644 index 00000000000000..4c391cab072ea6 --- /dev/null +++ b/Doc/distutils/uploading.rst @@ -0,0 +1,8 @@ +:orphan: + +*************************************** +Uploading Packages to the Package Index +*************************************** + +References to up to date PyPI documentation can be found at +:ref:`publishing-python-packages`. diff --git a/Doc/extending/building.rst b/Doc/extending/building.rst index 880bb33ee56718..69dffbd56abf11 100644 --- a/Doc/extending/building.rst +++ b/Doc/extending/building.rst @@ -11,13 +11,13 @@ A C extension for CPython is a shared library (e.g. a ``.so`` file on Linux, To be importable, the shared library must be available on :envvar:`PYTHONPATH`, and must be named after the module name, with an appropriate extension. -When using setuptools, the correct filename is generated automatically. +When using distutils, the correct filename is generated automatically. The initialization function has the signature: .. c:function:: PyObject* PyInit_modulename(void) -It returns either a fully initialized module, or a :c:type:`PyModuleDef` +It returns either a fully-initialized module, or a :c:type:`PyModuleDef` instance. See :ref:`initializing-modules` for details. .. highlight:: python @@ -45,12 +45,122 @@ See the *"Multiple modules in one library"* section in :pep:`489` for details. .. highlight:: c -.. _setuptools-index: +Building C and C++ Extensions with distutils +============================================ -Building C and C++ Extensions with setuptools -============================================= +.. sectionauthor:: Martin v. Löwis <martin@v.loewis.de> -Python 3.12 and newer no longer come with distutils. Please refer to the -``setuptools`` documentation at -https://setuptools.readthedocs.io/en/latest/setuptools.html -to learn more about how build and distribute C/C++ extensions with setuptools. +Extension modules can be built using distutils, which is included in Python. +Since distutils also supports creation of binary packages, users don't +necessarily need a compiler and distutils to install the extension. + +A distutils package contains a driver script, :file:`setup.py`. This is a plain +Python file, which, in the most simple case, could look like this: + +.. code-block:: python3 + + from distutils.core import setup, Extension + + module1 = Extension('demo', + sources = ['demo.c']) + + setup (name = 'PackageName', + version = '1.0', + description = 'This is a demo package', + ext_modules = [module1]) + + +With this :file:`setup.py`, and a file :file:`demo.c`, running :: + + python setup.py build + +will compile :file:`demo.c`, and produce an extension module named ``demo`` in +the :file:`build` directory. Depending on the system, the module file will end +up in a subdirectory :file:`build/lib.system`, and may have a name like +:file:`demo.so` or :file:`demo.pyd`. + +In the :file:`setup.py`, all execution is performed by calling the ``setup`` +function. This takes a variable number of keyword arguments, of which the +example above uses only a subset. Specifically, the example specifies +meta-information to build packages, and it specifies the contents of the +package. Normally, a package will contain additional modules, like Python +source modules, documentation, subpackages, etc. Please refer to the distutils +documentation in :ref:`distutils-index` to learn more about the features of +distutils; this section explains building extension modules only. + +It is common to pre-compute arguments to :func:`setup`, to better structure the +driver script. In the example above, the ``ext_modules`` argument to +:func:`~distutils.core.setup` is a list of extension modules, each of which is +an instance of +the :class:`~distutils.extension.Extension`. In the example, the instance +defines an extension named ``demo`` which is build by compiling a single source +file, :file:`demo.c`. + +In many cases, building an extension is more complex, since additional +preprocessor defines and libraries may be needed. This is demonstrated in the +example below. + +.. code-block:: python3 + + from distutils.core import setup, Extension + + module1 = Extension('demo', + define_macros = [('MAJOR_VERSION', '1'), + ('MINOR_VERSION', '0')], + include_dirs = ['/usr/local/include'], + libraries = ['tcl83'], + library_dirs = ['/usr/local/lib'], + sources = ['demo.c']) + + setup (name = 'PackageName', + version = '1.0', + description = 'This is a demo package', + author = 'Martin v. Loewis', + author_email = 'martin@v.loewis.de', + url = 'https://docs.python.org/extending/building', + long_description = ''' + This is really just a demo package. + ''', + ext_modules = [module1]) + + +In this example, :func:`~distutils.core.setup` is called with additional +meta-information, which +is recommended when distribution packages have to be built. For the extension +itself, it specifies preprocessor defines, include directories, library +directories, and libraries. Depending on the compiler, distutils passes this +information in different ways to the compiler. For example, on Unix, this may +result in the compilation commands :: + + gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -fPIC -DMAJOR_VERSION=1 -DMINOR_VERSION=0 -I/usr/local/include -I/usr/local/include/python2.2 -c demo.c -o build/temp.linux-i686-2.2/demo.o + + gcc -shared build/temp.linux-i686-2.2/demo.o -L/usr/local/lib -ltcl83 -o build/lib.linux-i686-2.2/demo.so + +These lines are for demonstration purposes only; distutils users should trust +that distutils gets the invocations right. + + +.. _distributing: + +Distributing your extension modules +=================================== + +When an extension has been successfully built, there are three ways to use it. + +End-users will typically want to install the module, they do so by running :: + + python setup.py install + +Module maintainers should produce source packages; to do so, they run :: + + python setup.py sdist + +In some cases, additional files need to be included in a source distribution; +this is done through a :file:`MANIFEST.in` file; see :ref:`manifest` for details. + +If the source distribution has been built successfully, maintainers can also +create binary distributions. Depending on the platform, one of the following +commands can be used to do so. :: + + python setup.py bdist_rpm + python setup.py bdist_dumb diff --git a/Doc/extending/index.rst b/Doc/extending/index.rst index 01b4df6d44acff..0994e3e8627dfa 100644 --- a/Doc/extending/index.rst +++ b/Doc/extending/index.rst @@ -27,8 +27,8 @@ Recommended third party tools This guide only covers the basic tools for creating extensions provided as part of this version of CPython. Third party tools like -`Cython <https://cython.org/>`_, `cffi <https://cffi.readthedocs.io>`_, -`SWIG <https://www.swig.org>`_ and `Numba <https://numba.pydata.org/>`_ +`Cython <http://cython.org/>`_, `cffi <https://cffi.readthedocs.io>`_, +`SWIG <http://www.swig.org>`_ and `Numba <https://numba.pydata.org/>`_ offer both simpler and more sophisticated approaches to creating C and C++ extensions for Python. diff --git a/Doc/extending/newtypes.rst b/Doc/extending/newtypes.rst index b797dc2817c83e..f75bee9e6f2a2b 100644 --- a/Doc/extending/newtypes.rst +++ b/Doc/extending/newtypes.rst @@ -175,7 +175,7 @@ example:: } If no :c:member:`~PyTypeObject.tp_repr` handler is specified, the interpreter will supply a -representation that uses the type's :c:member:`~PyTypeObject.tp_name` and a uniquely identifying +representation that uses the type's :c:member:`~PyTypeObject.tp_name` and a uniquely-identifying value for the object. The :c:member:`~PyTypeObject.tp_str` handler is to :func:`str` what the :c:member:`~PyTypeObject.tp_repr` handler @@ -570,28 +570,43 @@ performance-critical objects (such as numbers). .. seealso:: Documentation for the :mod:`weakref` module. -For an object to be weakly referencable, the extension type must set the -``Py_TPFLAGS_MANAGED_WEAKREF`` bit of the :c:member:`~PyTypeObject.tp_flags` -field. The legacy :c:member:`~PyTypeObject.tp_weaklistoffset` field should -be left as zero. +For an object to be weakly referencable, the extension type must do two things: -Concretely, here is how the statically declared type object would look:: +#. Include a :c:type:`PyObject\*` field in the C object structure dedicated to + the weak reference mechanism. The object's constructor should leave it + ``NULL`` (which is automatic when using the default + :c:member:`~PyTypeObject.tp_alloc`). + +#. Set the :c:member:`~PyTypeObject.tp_weaklistoffset` type member + to the offset of the aforementioned field in the C object structure, + so that the interpreter knows how to access and modify that field. + +Concretely, here is how a trivial object structure would be augmented +with the required field:: + + typedef struct { + PyObject_HEAD + PyObject *weakreflist; /* List of weak references */ + } TrivialObject; + +And the corresponding member in the statically-declared type object:: static PyTypeObject TrivialType = { PyVarObject_HEAD_INIT(NULL, 0) /* ... other members omitted for brevity ... */ - .tp_flags = Py_TPFLAGS_MANAGED_WEAKREF | ..., + .tp_weaklistoffset = offsetof(TrivialObject, weakreflist), }; - The only further addition is that ``tp_dealloc`` needs to clear any weak -references (by calling :c:func:`PyObject_ClearWeakRefs`):: +references (by calling :c:func:`PyObject_ClearWeakRefs`) if the field is +non-``NULL``:: static void Trivial_dealloc(TrivialObject *self) { /* Clear weakrefs first before calling any destructors */ - PyObject_ClearWeakRefs((PyObject *) self); + if (self->weakreflist != NULL) + PyObject_ClearWeakRefs((PyObject *) self); /* ... remainder of destruction code omitted for brevity ... */ Py_TYPE(self)->tp_free((PyObject *) self); } diff --git a/Doc/extending/windows.rst b/Doc/extending/windows.rst index 1129b0968bc4e6..28d0350f6f114d 100644 --- a/Doc/extending/windows.rst +++ b/Doc/extending/windows.rst @@ -34,10 +34,10 @@ A Cookbook Approach =================== There are two approaches to building extension modules on Windows, just as there -are on Unix: use the ``setuptools`` package to control the build process, or -do things manually. The setuptools approach works well for most extensions; -documentation on using ``setuptools`` to build and package extension modules -is available in :ref:`setuptools-index`. If you find you really need to do +are on Unix: use the :mod:`distutils` package to control the build process, or +do things manually. The distutils approach works well for most extensions; +documentation on using :mod:`distutils` to build and package extension modules +is available in :ref:`distutils-index`. If you find you really need to do things manually, it may be instructive to study the project file for the :source:`winsound <PCbuild/winsound.vcxproj>` standard library module. diff --git a/Doc/faq/design.rst b/Doc/faq/design.rst index 9da1d01abd6f51..ff83a1b8134b77 100644 --- a/Doc/faq/design.rst +++ b/Doc/faq/design.rst @@ -313,7 +313,7 @@ you're too lazy to define a function. Functions are already first class objects in Python, and can be declared in a local scope. Therefore the only advantage of using a lambda instead of a -locally defined function is that you don't need to invent a name for the +locally-defined function is that you don't need to invent a name for the function -- but that's just a local variable to which the function object (which is exactly the same type of object that a lambda expression yields) is assigned! @@ -321,10 +321,11 @@ is exactly the same type of object that a lambda expression yields) is assigned! Can Python be compiled to machine code, C or some other language? ----------------------------------------------------------------- -`Cython <https://cython.org/>`_ compiles a modified version of Python with -optional annotations into C extensions. `Nuitka <https://www.nuitka.net/>`_ is +`Cython <http://cython.org/>`_ compiles a modified version of Python with +optional annotations into C extensions. `Nuitka <http://www.nuitka.net/>`_ is an up-and-coming compiler of Python into C++ code, aiming to support the full -Python language. +Python language. For compiling to Java you can consider +`VOC <https://voc.readthedocs.io>`_. How does Python manage memory? @@ -338,8 +339,8 @@ cycles and deletes the objects involved. The :mod:`gc` module provides functions to perform a garbage collection, obtain debugging statistics, and tune the collector's parameters. -Other implementations (such as `Jython <https://www.jython.org>`_ or -`PyPy <https://www.pypy.org>`_), however, can rely on a different mechanism +Other implementations (such as `Jython <http://www.jython.org>`_ or +`PyPy <http://www.pypy.org>`_), however, can rely on a different mechanism such as a full-blown garbage collector. This difference can cause some subtle porting problems if your Python code depends on the behavior of the reference counting implementation. diff --git a/Doc/faq/extending.rst b/Doc/faq/extending.rst index 318e35508eae5b..1d2aca6f4c8d97 100644 --- a/Doc/faq/extending.rst +++ b/Doc/faq/extending.rst @@ -41,7 +41,7 @@ on what you're trying to do. .. XXX make sure these all work -`Cython <https://cython.org>`_ and its relative `Pyrex +`Cython <http://cython.org>`_ and its relative `Pyrex <https://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/>`_ are compilers that accept a slightly modified form of Python and generate the corresponding C code. Cython and Pyrex make it possible to write an extension without having @@ -49,10 +49,10 @@ to learn Python's C API. If you need to interface to some C or C++ library for which no Python extension currently exists, you can try wrapping the library's data types and functions -with a tool such as `SWIG <https://www.swig.org>`_. `SIP +with a tool such as `SWIG <http://www.swig.org>`_. `SIP <https://riverbankcomputing.com/software/sip/intro>`__, `CXX <http://cxx.sourceforge.net/>`_ `Boost -<https://www.boost.org/libs/python/doc/index.html>`_, or `Weave +<http://www.boost.org/libs/python/doc/index.html>`_, or `Weave <https://github.com/scipy/weave>`_ are also alternatives for wrapping C++ libraries. @@ -286,6 +286,6 @@ Can I create an object class with some methods implemented in C and others in Py Yes, you can inherit from built-in classes such as :class:`int`, :class:`list`, :class:`dict`, etc. -The Boost Python Library (BPL, https://www.boost.org/libs/python/doc/index.html) +The Boost Python Library (BPL, http://www.boost.org/libs/python/doc/index.html) provides a way of doing this from C++ (i.e. you can inherit from an extension class written in C++ using the BPL). diff --git a/Doc/faq/general.rst b/Doc/faq/general.rst index 6c7e4fc67c0a67..bc4130aaa45c89 100644 --- a/Doc/faq/general.rst +++ b/Doc/faq/general.rst @@ -113,8 +113,8 @@ to many different classes of problems. The language comes with a large standard library that covers areas such as string processing (regular expressions, Unicode, calculating differences between -files), internet protocols (HTTP, FTP, SMTP, XML-RPC, POP, IMAP), -software engineering (unit testing, logging, profiling, parsing +files), internet protocols (HTTP, FTP, SMTP, XML-RPC, POP, IMAP, CGI +programming), software engineering (unit testing, logging, profiling, parsing Python code), and operating system interfaces (system calls, filesystems, TCP/IP sockets). Look at the table of contents for :ref:`library-index` to get an idea of what's available. A wide variety of third-party extensions are also @@ -330,7 +330,7 @@ different companies and organizations. High-profile Python projects include `the Mailman mailing list manager <http://www.list.org>`_ and `the Zope application server -<https://www.zope.dev>`_. Several Linux distributions, most notably `Red Hat +<http://www.zope.org>`_. Several Linux distributions, most notably `Red Hat <https://www.redhat.com>`_, have written part or all of their installer and system administration software in Python. Companies that use Python internally include Google, Yahoo, and Lucasfilm Ltd. diff --git a/Doc/faq/library.rst b/Doc/faq/library.rst index 8167bf22f0b1ad..b9e541c150dc43 100644 --- a/Doc/faq/library.rst +++ b/Doc/faq/library.rst @@ -483,14 +483,8 @@ including :func:`~shutil.copyfile`, :func:`~shutil.copytree`, and How do I copy a file? --------------------- -The :mod:`shutil` module contains a :func:`~shutil.copyfile` function. -Note that on Windows NTFS volumes, it does not copy -`alternate data streams -<https://en.wikipedia.org/wiki/NTFS#Alternate_data_stream_(ADS)>`_ -nor `resource forks <https://en.wikipedia.org/wiki/Resource_fork>`__ -on macOS HFS+ volumes, though both are now rarely used. -It also doesn't copy file permissions and metadata, though using -:func:`shutil.copy2` instead will preserve most (though not all) of it. +The :mod:`shutil` module contains a :func:`~shutil.copyfile` function. Note +that on MacOS 9 it doesn't copy the resource fork and Finder info. How do I read (or write) binary data? @@ -670,7 +664,7 @@ A summary of available frameworks is maintained by Paul Boddie at https://wiki.python.org/moin/WebProgramming\ . Cameron Laird maintains a useful set of pages about Python web technologies at -https://web.archive.org/web/20210224183619/http://phaseit.net/claird/comp.lang.python/web_python. +http://phaseit.net/claird/comp.lang.python/web_python. How can I mimic CGI form submission (METHOD=POST)? diff --git a/Doc/faq/programming.rst b/Doc/faq/programming.rst index 6514c00d1114e2..f87eaff9531fce 100644 --- a/Doc/faq/programming.rst +++ b/Doc/faq/programming.rst @@ -56,7 +56,7 @@ Are there tools to help find bugs or perform static analysis? Yes. -`Pylint <https://pylint.pycqa.org/en/latest/index.html>`_ and +`Pylint <https://www.pylint.org/>`_ and `Pyflakes <https://github.com/PyCQA/pyflakes>`_ do basic checking that will help you catch bugs sooner. @@ -95,7 +95,7 @@ The following packages can help with the creation of console and GUI executables: * `Nuitka <https://nuitka.net/>`_ (Cross-platform) -* `PyInstaller <https://pyinstaller.org/>`_ (Cross-platform) +* `PyInstaller <http://www.pyinstaller.org/>`_ (Cross-platform) * `PyOxidizer <https://pyoxidizer.readthedocs.io/en/stable/>`_ (Cross-platform) * `cx_Freeze <https://marcelotduarte.github.io/cx_Freeze/>`_ (Cross-platform) * `py2app <https://github.com/ronaldoussoren/py2app>`_ (macOS only) @@ -294,7 +294,7 @@ It's good practice if you import modules in the following order: 1. standard library modules -- e.g. ``sys``, ``os``, ``getopt``, ``re`` 2. third-party library modules (anything installed in Python's site-packages directory) -- e.g. mx.DateTime, ZODB, PIL.Image, etc. -3. locally developed modules +3. locally-developed modules It is sometimes necessary to move imports to a function or class to avoid problems with circular imports. Gordon McMillan says: @@ -409,9 +409,8 @@ What is the difference between arguments and parameters? :term:`Parameters <parameter>` are defined by the names that appear in a function definition, whereas :term:`arguments <argument>` are the values -actually passed to a function when calling it. Parameters define what -:term:`kind of arguments <parameter>` a function can accept. For -example, given the function definition:: +actually passed to a function when calling it. Parameters define what types of +arguments a function can accept. For example, given the function definition:: def func(foo, bar=None, **kwargs): pass @@ -771,7 +770,7 @@ What does the slash(/) in the parameter list of a function mean? A slash in the argument list of a function denotes that the parameters prior to it are positional-only. Positional-only parameters are the ones without an -externally usable name. Upon calling a function that accepts positional-only +externally-usable name. Upon calling a function that accepts positional-only parameters, arguments are mapped to parameters based solely on their position. For example, :func:`divmod` is a function that accepts positional-only parameters. Its documentation looks like this:: @@ -1066,7 +1065,7 @@ performance levels: detrimental to readability). If you have reached the limit of what pure Python can allow, there are tools -to take you further away. For example, `Cython <https://cython.org>`_ can +to take you further away. For example, `Cython <http://cython.org>`_ can compile a slightly modified version of Python code into a C extension, and can be used on many different platforms. Cython can take advantage of compilation (and optional type annotations) to make your code significantly diff --git a/Doc/glossary.rst b/Doc/glossary.rst index e0dd4fc96760e7..27e06c9ffcf4e9 100644 --- a/Doc/glossary.rst +++ b/Doc/glossary.rst @@ -532,7 +532,7 @@ Glossary machines. However, some extension modules, either standard or third-party, - are designed so as to release the GIL when doing computationally intensive + are designed so as to release the GIL when doing computationally-intensive tasks such as compression or hashing. Also, the GIL is always released when doing I/O. @@ -566,9 +566,9 @@ Glossary from their :func:`id`. IDLE - An Integrated Development and Learning Environment for Python. - :ref:`idle` is a basic editor and interpreter environment - which ships with the standard distribution of Python. + An Integrated Development Environment for Python. IDLE is a basic editor + and interpreter environment which ships with the standard distribution of + Python. immutable An object with a fixed value. Immutable objects include numbers, strings and diff --git a/Doc/howto/clinic.rst b/Doc/howto/clinic.rst index d634c4b47db90e..7959bc3a5c5b3e 100644 --- a/Doc/howto/clinic.rst +++ b/Doc/howto/clinic.rst @@ -541,7 +541,7 @@ Let's dive in! 16. Compile, then run the relevant portions of the regression-test suite. This change should not introduce any new compile-time warnings or errors, - and there should be no externally visible change to Python's behavior. + and there should be no externally-visible change to Python's behavior. Well, except for one difference: ``inspect.signature()`` run on your function should now provide a valid signature! @@ -1070,6 +1070,11 @@ None of these take parameters. For the first three, return -1 to indicate error. For ``DecodeFSDefault``, the return type is ``const char *``; return a ``NULL`` pointer to indicate an error. +(There's also an experimental ``NoneType`` converter, which lets you +return ``Py_None`` on success or ``NULL`` on failure, without having +to increment the reference count on ``Py_None``. I'm not sure it adds +enough clarity to be worth using.) + To see all the return converters Argument Clinic supports, along with their parameters (if any), just run ``Tools/clinic/clinic.py --converters`` for the full list. @@ -1112,7 +1117,7 @@ Here's the syntax for cloning a function:: ``module.class`` in the sample just to illustrate that you must use the full path to *both* functions.) -Sorry, there's no syntax for partially cloning a function, or cloning a function +Sorry, there's no syntax for partially-cloning a function, or cloning a function then modifying it. Cloning is an all-or nothing proposition. Also, the function you are cloning from must have been previously defined @@ -1310,7 +1315,7 @@ to specify in your subclass. Here's the current list: there is no default, but not specifying a default may result in an "uninitialized variable" warning. This can easily happen when using option groups—although - properly written code will never actually use this value, + properly-written code will never actually use this value, the variable does get passed in to the impl, and the C compiler will complain about the "use" of the uninitialized value. This value should always be a diff --git a/Doc/howto/cporting.rst b/Doc/howto/cporting.rst index 7773620b40b973..ce7700fc599062 100644 --- a/Doc/howto/cporting.rst +++ b/Doc/howto/cporting.rst @@ -22,5 +22,5 @@ We recommend the following resources for porting extension modules to Python 3: .. _Migrating C extensions: http://python3porting.com/cextensions.html .. _Porting guide: https://py3c.readthedocs.io/en/latest/guide.html -.. _Cython: https://cython.org/ +.. _Cython: http://cython.org/ .. _CFFI: https://cffi.readthedocs.io/en/latest/ diff --git a/Doc/howto/curses.rst b/Doc/howto/curses.rst index 83d80471ffc8ee..26c4ece5ae6df4 100644 --- a/Doc/howto/curses.rst +++ b/Doc/howto/curses.rst @@ -536,12 +536,12 @@ Patches adding support for these would be welcome; see `the Python Developer's Guide <https://devguide.python.org/>`_ to learn more about submitting patches to Python. -* `Writing Programs with NCURSES <https://invisible-island.net/ncurses/ncurses-intro.html>`_: +* `Writing Programs with NCURSES <http://invisible-island.net/ncurses/ncurses-intro.html>`_: a lengthy tutorial for C programmers. * `The ncurses man page <https://linux.die.net/man/3/ncurses>`_ -* `The ncurses FAQ <https://invisible-island.net/ncurses/ncurses.faq.html>`_ +* `The ncurses FAQ <http://invisible-island.net/ncurses/ncurses.faq.html>`_ * `"Use curses... don't swear" <https://www.youtube.com/watch?v=eN1eZtjLEnU>`_: video of a PyCon 2013 talk on controlling terminals using curses or Urwid. -* `"Console Applications with Urwid" <https://pyvideo.org/video/1568/console-applications-with-urwid>`_: +* `"Console Applications with Urwid" <http://www.pyvideo.org/video/1568/console-applications-with-urwid>`_: video of a PyCon CA 2012 talk demonstrating some applications written using Urwid. diff --git a/Doc/howto/descriptor.rst b/Doc/howto/descriptor.rst index 91a6c31c33b8bd..5e9b110f0fe254 100644 --- a/Doc/howto/descriptor.rst +++ b/Doc/howto/descriptor.rst @@ -582,18 +582,11 @@ a pure Python equivalent: .. testcode:: - def find_name_in_mro(cls, name, default): - "Emulate _PyType_Lookup() in Objects/typeobject.c" - for base in cls.__mro__: - if name in vars(base): - return vars(base)[name] - return default - def object_getattribute(obj, name): "Emulate PyObject_GenericGetAttr() in Objects/object.c" null = object() objtype = type(obj) - cls_var = find_name_in_mro(objtype, name, null) + cls_var = getattr(objtype, name, null) descr_get = getattr(type(cls_var), '__get__', null) if descr_get is not null: if (hasattr(type(cls_var), '__set__') @@ -670,15 +663,6 @@ a pure Python equivalent: def __getattr__(self, name): return ('getattr_hook', self, name) - class D1: - def __get__(self, obj, objtype=None): - return type(self), obj, objtype - - class U1: - x = D1() - - class U2(U1): - pass .. doctest:: :hide: @@ -712,10 +696,6 @@ a pure Python equivalent: >>> b.g == b['g'] == ('getattr_hook', b, 'g') True - >>> u2 = U2() - >>> object_getattribute(u2, 'x') == u2.x == (D1, u2, U2) - True - Note, there is no :meth:`__getattr__` hook in the :meth:`__getattribute__` code. That is why calling :meth:`__getattribute__` directly or with ``super().__getattribute__`` will bypass :meth:`__getattr__` entirely. diff --git a/Doc/howto/enum.rst b/Doc/howto/enum.rst index 376934a0e79365..7b1cf75fa81f08 100644 --- a/Doc/howto/enum.rst +++ b/Doc/howto/enum.rst @@ -945,12 +945,23 @@ but remain normal attributes. """""""""""""""""""" Enum members are instances of their enum class, and are normally accessed as -``EnumClass.member``. In Python versions starting with ``3.5`` you could access -members from other members -- this practice is discouraged, is deprecated -in ``3.12``, and will be removed in ``3.14``. +``EnumClass.member``. In Python versions ``3.5`` to ``3.10`` you could access +members from other members -- this practice was discouraged, and in ``3.11`` +:class:`Enum` returns to not allowing it:: + + >>> class FieldTypes(Enum): + ... name = 0 + ... value = 1 + ... size = 2 + ... + >>> FieldTypes.value.size + Traceback (most recent call last): + ... + AttributeError: <enum 'FieldTypes'> member has no attribute 'size' + .. versionchanged:: 3.5 -.. versionchanged:: 3.12 +.. versionchanged:: 3.11 Creating members that are mixed with other data types diff --git a/Doc/howto/functional.rst b/Doc/howto/functional.rst index 7d30c343e372fe..695b9b31a762bd 100644 --- a/Doc/howto/functional.rst +++ b/Doc/howto/functional.rst @@ -315,15 +315,9 @@ line of a file like this:: Sets can take their contents from an iterable and let you iterate over the set's elements:: - >>> S = {2, 3, 5, 7, 11, 13} - >>> for i in S: - ... print(i) - 2 - 3 - 5 - 7 - 11 - 13 + S = {2, 3, 5, 7, 11, 13} + for i in S: + print(i) @@ -341,18 +335,18 @@ List comprehensions and generator expressions (short form: "listcomps" and functional programming language Haskell (https://www.haskell.org/). You can strip all the whitespace from a stream of strings with the following code:: - >>> line_list = [' line 1\n', 'line 2 \n', ' \n', ''] + line_list = [' line 1\n', 'line 2 \n', ...] - >>> # Generator expression -- returns iterator - >>> stripped_iter = (line.strip() for line in line_list) + # Generator expression -- returns iterator + stripped_iter = (line.strip() for line in line_list) - >>> # List comprehension -- returns list - >>> stripped_list = [line.strip() for line in line_list] + # List comprehension -- returns list + stripped_list = [line.strip() for line in line_list] You can select only certain elements by adding an ``"if"`` condition:: - >>> stripped_list = [line.strip() for line in line_list - ... if line != ""] + stripped_list = [line.strip() for line in line_list + if line != ""] With a list comprehension, you get back a Python list; ``stripped_list`` is a list containing the resulting lines, not an iterator. Generator expressions @@ -369,8 +363,7 @@ have the form:: if condition1 for expr2 in sequence2 if condition2 - for expr3 in sequence3 - ... + for expr3 in sequence3 ... if condition3 for exprN in sequenceN if conditionN ) @@ -741,7 +734,7 @@ further because you risk skipping a discarded element. The itertools module ==================== -The :mod:`itertools` module contains a number of commonly used iterators as well +The :mod:`itertools` module contains a number of commonly-used iterators as well as functions for combining several iterators. This section will introduce the module's contents by showing small examples. @@ -1215,7 +1208,7 @@ flow inside a program. The book uses Scheme for its examples, but many of the design approaches described in these chapters are applicable to functional-style Python code. -https://www.defmacro.org/ramblings/fp.html: A general introduction to functional +http://www.defmacro.org/ramblings/fp.html: A general introduction to functional programming that uses Java examples and has a lengthy historical introduction. https://en.wikipedia.org/wiki/Functional_programming: General Wikipedia entry @@ -1223,14 +1216,12 @@ describing functional programming. https://en.wikipedia.org/wiki/Coroutine: Entry for coroutines. -https://en.wikipedia.org/wiki/Partial_application: Entry for the concept of partial function application. - https://en.wikipedia.org/wiki/Currying: Entry for the concept of currying. Python-specific --------------- -https://gnosis.cx/TPiP/: The first chapter of David Mertz's book +http://gnosis.cx/TPiP/: The first chapter of David Mertz's book :title-reference:`Text Processing in Python` discusses functional programming for text processing, in the section titled "Utilizing Higher-Order Functions in Text Processing". diff --git a/Doc/howto/index.rst b/Doc/howto/index.rst index f521276a5a83c5..eae8f143ee206f 100644 --- a/Doc/howto/index.rst +++ b/Doc/howto/index.rst @@ -30,7 +30,5 @@ Currently, the HOWTOs are: ipaddress.rst clinic.rst instrumentation.rst - perf_profiling.rst annotations.rst - isolating-extensions.rst diff --git a/Doc/howto/instrumentation.rst b/Doc/howto/instrumentation.rst index 4ce15c69dac90b..4a59ae82f96e2d 100644 --- a/Doc/howto/instrumentation.rst +++ b/Doc/howto/instrumentation.rst @@ -123,7 +123,7 @@ Sufficiently modern readelf can print the metadata:: Arguments: 8@%rbp 8@%r12 -4@%eax The above metadata contains information for SystemTap describing how it -can patch strategically placed machine code instructions to enable the +can patch strategically-placed machine code instructions to enable the tracing hooks used by a SystemTap script. @@ -410,7 +410,7 @@ needing to directly name the static markers: The following script uses the tapset above to provide a top-like view of all -running CPython code, showing the top 20 most frequently entered bytecode +running CPython code, showing the top 20 most frequently-entered bytecode frames, each second, across the whole system: .. code-block:: none diff --git a/Doc/howto/isolating-extensions.rst b/Doc/howto/isolating-extensions.rst deleted file mode 100644 index 8ee7e5e28479a5..00000000000000 --- a/Doc/howto/isolating-extensions.rst +++ /dev/null @@ -1,536 +0,0 @@ -.. highlight:: c - -*************************** -Isolating Extension Modules -*************************** - -.. topic:: Abstract - - Traditionally, state belonging to Python extension modules was kept in C - ``static`` variables, which have process-wide scope. This document - describes problems of such per-process state and shows a safer way: - per-module state. - - The document also describes how to switch to per-module state where - possible. This transition involves allocating space for that state, potentially - switching from static types to heap types, and—perhaps most - importantly—accessing per-module state from code. - - -Who should read this -==================== - -This guide is written for maintainers of :ref:`C-API <c-api-index>` extensions -who would like to make that extension safer to use in applications where -Python itself is used as a library. - - -Background -========== - -An *interpreter* is the context in which Python code runs. It contains -configuration (e.g. the import path) and runtime state (e.g. the set of -imported modules). - -Python supports running multiple interpreters in one process. There are -two cases to think about—users may run interpreters: - -- in sequence, with several :c:func:`Py_InitializeEx`/:c:func:`Py_FinalizeEx` - cycles, and -- in parallel, managing "sub-interpreters" using - :c:func:`Py_NewInterpreter`/:c:func:`Py_EndInterpreter`. - -Both cases (and combinations of them) would be most useful when -embedding Python within a library. Libraries generally shouldn't make -assumptions about the application that uses them, which include -assuming a process-wide "main Python interpreter". - -Historically, Python extension modules don't handle this use case well. -Many extension modules (and even some stdlib modules) use *per-process* -global state, because C ``static`` variables are extremely easy to use. -Thus, data that should be specific to an interpreter ends up being shared -between interpreters. Unless the extension developer is careful, it is very -easy to introduce edge cases that lead to crashes when a module is loaded in -more than one interpreter in the same process. - -Unfortunately, *per-interpreter* state is not easy to achieve. Extension -authors tend to not keep multiple interpreters in mind when developing, -and it is currently cumbersome to test the behavior. - -Enter Per-Module State ----------------------- - -Instead of focusing on per-interpreter state, Python's C API is evolving -to better support the more granular *per-module* state. -This means that C-level data is be attached to a *module object*. -Each interpreter creates its own module object, keeping the data separate. -For testing the isolation, multiple module objects corresponding to a single -extension can even be loaded in a single interpreter. - -Per-module state provides an easy way to think about lifetime and -resource ownership: the extension module will initialize when a -module object is created, and clean up when it's freed. In this regard, -a module is just like any other :c:expr:`PyObject *`; there are no "on -interpreter shutdown" hooks to think—or forget—about. - -Note that there are use cases for different kinds of "globals": -per-process, per-interpreter, per-thread or per-task state. -With per-module state as the default, these are still possible, -but you should treat them as exceptional cases: -if you need them, you should give them additional care and testing. -(Note that this guide does not cover them.) - - -Isolated Module Objects ------------------------ - -The key point to keep in mind when developing an extension module is -that several module objects can be created from a single shared library. -For example: - -.. code-block:: pycon - - >>> import sys - >>> import binascii - >>> old_binascii = binascii - >>> del sys.modules['binascii'] - >>> import binascii # create a new module object - >>> old_binascii == binascii - False - -As a rule of thumb, the two modules should be completely independent. -All objects and state specific to the module should be encapsulated -within the module object, not shared with other module objects, and -cleaned up when the module object is deallocated. -Since this just is a rule of thumb, exceptions are possible -(see `Managing Global State`_), but they will need more -thought and attention to edge cases. - -While some modules could do with less stringent restrictions, isolated -modules make it easier to set clear expectations and guidelines that -work across a variety of use cases. - - -Surprising Edge Cases ---------------------- - -Note that isolated modules do create some surprising edge cases. Most -notably, each module object will typically not share its classes and -exceptions with other similar modules. Continuing from the -`example above <Isolated Module Objects_>`__, -note that ``old_binascii.Error`` and ``binascii.Error`` are -separate objects. In the following code, the exception is *not* caught: - -.. code-block:: pycon - - >>> old_binascii.Error == binascii.Error - False - >>> try: - ... old_binascii.unhexlify(b'qwertyuiop') - ... except binascii.Error: - ... print('boo') - ... - Traceback (most recent call last): - File "<stdin>", line 2, in <module> - binascii.Error: Non-hexadecimal digit found - -This is expected. Notice that pure-Python modules behave the same way: -it is a part of how Python works. - -The goal is to make extension modules safe at the C level, not to make -hacks behave intuitively. Mutating ``sys.modules`` "manually" counts -as a hack. - - -Making Modules Safe with Multiple Interpreters -============================================== - - -Managing Global State ---------------------- - -Sometimes, the state associated with a Python module is not specific to that module, but -to the entire process (or something else "more global" than a module). -For example: - -- The ``readline`` module manages *the* terminal. -- A module running on a circuit board wants to control *the* on-board - LED. - -In these cases, the Python module should provide *access* to the global -state, rather than *own* it. If possible, write the module so that -multiple copies of it can access the state independently (along with -other libraries, whether for Python or other languages). If that is not -possible, consider explicit locking. - -If it is necessary to use process-global state, the simplest way to -avoid issues with multiple interpreters is to explicitly prevent a -module from being loaded more than once per process—see -`Opt-Out: Limiting to One Module Object per Process`_. - - -Managing Per-Module State -------------------------- - -To use per-module state, use -:ref:`multi-phase extension module initialization <multi-phase-initialization>`. -This signals that your module supports multiple interpreters correctly. - -Set ``PyModuleDef.m_size`` to a positive number to request that many -bytes of storage local to the module. Usually, this will be set to the -size of some module-specific ``struct``, which can store all of the -module's C-level state. In particular, it is where you should put -pointers to classes (including exceptions, but excluding static types) -and settings (e.g. ``csv``'s :py:data:`~csv.field_size_limit`) -which the C code needs to function. - -.. note:: - Another option is to store state in the module's ``__dict__``, - but you must avoid crashing when users modify ``__dict__`` from - Python code. This usually means error- and type-checking at the C level, - which is easy to get wrong and hard to test sufficiently. - - However, if module state is not needed in C code, storing it in - ``__dict__`` only is a good idea. - -If the module state includes ``PyObject`` pointers, the module object -must hold references to those objects and implement the module-level hooks -``m_traverse``, ``m_clear`` and ``m_free``. These work like -``tp_traverse``, ``tp_clear`` and ``tp_free`` of a class. Adding them will -require some work and make the code longer; this is the price for -modules which can be unloaded cleanly. - -An example of a module with per-module state is currently available as -`xxlimited <https://github.com/python/cpython/blob/master/Modules/xxlimited.c>`__; -example module initialization shown at the bottom of the file. - - -Opt-Out: Limiting to One Module Object per Process --------------------------------------------------- - -A non-negative ``PyModuleDef.m_size`` signals that a module supports -multiple interpreters correctly. If this is not yet the case for your -module, you can explicitly make your module loadable only once per -process. For example:: - - static int loaded = 0; - - static int - exec_module(PyObject* module) - { - if (loaded) { - PyErr_SetString(PyExc_ImportError, - "cannot load module more than once per process"); - return -1; - } - loaded = 1; - // ... rest of initialization - } - - -Module State Access from Functions ----------------------------------- - -Accessing the state from module-level functions is straightforward. -Functions get the module object as their first argument; for extracting -the state, you can use ``PyModule_GetState``:: - - static PyObject * - func(PyObject *module, PyObject *args) - { - my_struct *state = (my_struct*)PyModule_GetState(module); - if (state == NULL) { - return NULL; - } - // ... rest of logic - } - -.. note:: - ``PyModule_GetState`` may return ``NULL`` without setting an - exception if there is no module state, i.e. ``PyModuleDef.m_size`` was - zero. In your own module, you're in control of ``m_size``, so this is - easy to prevent. - - -Heap Types -========== - -Traditionally, types defined in C code are *static*; that is, -``static PyTypeObject`` structures defined directly in code and -initialized using ``PyType_Ready()``. - -Such types are necessarily shared across the process. Sharing them -between module objects requires paying attention to any state they own -or access. To limit the possible issues, static types are immutable at -the Python level: for example, you can't set ``str.myattribute = 123``. - -.. impl-detail:: - Sharing truly immutable objects between interpreters is fine, - as long as they don't provide access to mutable objects. - However, in CPython, every Python object has a mutable implementation - detail: the reference count. Changes to the refcount are guarded by the GIL. - Thus, code that shares any Python objects across interpreters implicitly - depends on CPython's current, process-wide GIL. - -Because they are immutable and process-global, static types cannot access -"their" module state. -If any method of such a type requires access to module state, -the type must be converted to a *heap-allocated type*, or *heap type* -for short. These correspond more closely to classes created by Python's -``class`` statement. - -For new modules, using heap types by default is a good rule of thumb. - - -Changing Static Types to Heap Types ------------------------------------ - -Static types can be converted to heap types, but note that -the heap type API was not designed for "lossless" conversion -from static types—that is, creating a type that works exactly like a given -static type. -So, when rewriting the class definition in a new API, -you are likely to unintentionally change a few details (e.g. pickleability -or inherited slots). -Always test the details that are important to you. - -Watch out for the following two points in particular (but note that this is not -a comprehensive list): - -* Unlike static types, heap type objects are mutable by default. - Use the :c:data:`Py_TPFLAGS_IMMUTABLETYPE` flag to prevent mutability. -* Heap types inherit :c:member:`~PyTypeObject.tp_new` by default, - so it may become possible to instantiate them from Python code. - You can prevent this with the :c:data:`Py_TPFLAGS_DISALLOW_INSTANTIATION` flag. - - -Defining Heap Types -------------------- - -Heap types can be created by filling a :c:struct:`PyType_Spec` structure, a -description or "blueprint" of a class, and calling -:c:func:`PyType_FromModuleAndSpec` to construct a new class object. - -.. note:: - Other functions, like :c:func:`PyType_FromSpec`, can also create - heap types, but :c:func:`PyType_FromModuleAndSpec` associates the module - with the class, allowing access to the module state from methods. - -The class should generally be stored in *both* the module state (for -safe access from C) and the module's ``__dict__`` (for access from -Python code). - - -Garbage-Collection Protocol ---------------------------- - -Instances of heap types hold a reference to their type. -This ensures that the type isn't destroyed before all its instances are, -but may result in reference cycles that need to be broken by the -garbage collector. - -To avoid memory leaks, instances of heap types must implement the -garbage collection protocol. -That is, heap types should: - -- Have the :c:data:`Py_TPFLAGS_HAVE_GC` flag. -- Define a traverse function using ``Py_tp_traverse``, which - visits the type (e.g. using :c:expr:`Py_VISIT(Py_TYPE(self))`). - -Please refer to the :ref:`the documentation <type-structs>` of -:c:data:`Py_TPFLAGS_HAVE_GC` and :c:member:`~PyTypeObject.tp_traverse` -for additional considerations. - -If your traverse function delegates to the ``tp_traverse`` of its base class -(or another type), ensure that ``Py_TYPE(self)`` is visited only once. -Note that only heap type are expected to visit the type in ``tp_traverse``. - -For example, if your traverse function includes:: - - base->tp_traverse(self, visit, arg) - -...and ``base`` may be a static type, then it should also include:: - - if (base->tp_flags & Py_TPFLAGS_HEAPTYPE) { - // a heap type's tp_traverse already visited Py_TYPE(self) - } else { - Py_VISIT(Py_TYPE(self)); - } - -It is not necessary to handle the type's reference count in ``tp_new`` -and ``tp_clear``. - - -Module State Access from Classes --------------------------------- - -If you have a type object defined with :c:func:`PyType_FromModuleAndSpec`, -you can call :c:func:`PyType_GetModule` to get the associated module, and then -:c:func:`PyModule_GetState` to get the module's state. - -To save a some tedious error-handling boilerplate code, you can combine -these two steps with :c:func:`PyType_GetModuleState`, resulting in:: - - my_struct *state = (my_struct*)PyType_GetModuleState(type); - if (state === NULL) { - return NULL; - } - - -Module State Access from Regular Methods ----------------------------------------- - -Accessing the module-level state from methods of a class is somewhat more -complicated, but is possible thanks to API introduced in Python 3.9. -To get the state, you need to first get the *defining class*, and then -get the module state from it. - -The largest roadblock is getting *the class a method was defined in*, or -that method's "defining class" for short. The defining class can have a -reference to the module it is part of. - -Do not confuse the defining class with :c:expr:`Py_TYPE(self)`. If the method -is called on a *subclass* of your type, ``Py_TYPE(self)`` will refer to -that subclass, which may be defined in different module than yours. - -.. note:: - The following Python code can illustrate the concept. - ``Base.get_defining_class`` returns ``Base`` even - if ``type(self) == Sub``: - - .. code-block:: python - - class Base: - def get_type_of_self(self): - return type(self) - - def get_defining_class(self): - return __class__ - - class Sub(Base): - pass - -For a method to get its "defining class", it must use the -:c:data:`METH_METHOD | METH_FASTCALL | METH_KEYWORDS` -:c:type:`calling convention <PyMethodDef>` -and the corresponding :c:type:`PyCMethod` signature:: - - PyObject *PyCMethod( - PyObject *self, // object the method was called on - PyTypeObject *defining_class, // defining class - PyObject *const *args, // C array of arguments - Py_ssize_t nargs, // length of "args" - PyObject *kwnames) // NULL, or dict of keyword arguments - -Once you have the defining class, call :c:func:`PyType_GetModuleState` to get -the state of its associated module. - -For example:: - - static PyObject * - example_method(PyObject *self, - PyTypeObject *defining_class, - PyObject *const *args, - Py_ssize_t nargs, - PyObject *kwnames) - { - my_struct *state = (my_struct*)PyType_GetModuleState(defining_class); - if (state === NULL) { - return NULL; - } - ... // rest of logic - } - - PyDoc_STRVAR(example_method_doc, "..."); - - static PyMethodDef my_methods[] = { - {"example_method", - (PyCFunction)(void(*)(void))example_method, - METH_METHOD|METH_FASTCALL|METH_KEYWORDS, - example_method_doc} - {NULL}, - } - - -Module State Access from Slot Methods, Getters and Setters ----------------------------------------------------------- - -.. note:: - - This is new in Python 3.11. - - .. After adding to limited API: - - If you use the `limited API <https://docs.python.org/3/c-api/stable.html>__, - you must update ``Py_LIMITED_API`` to ``0x030b0000``, losing ABI - compatibility with earlier versions. - -Slot methods—the fast C equivalents for special methods, such as -:c:member:`~PyNumberMethods.nb_add` for :py:attr:`~object.__add__` or -:c:member:`~PyType.tp_new` for initialization—have a very simple API that -doesn't allow passing in the defining class, unlike with :c:type:`PyCMethod`. -The same goes for getters and setters defined with -:c:type:`PyGetSetDef`. - -To access the module state in these cases, use the -:c:func:`PyType_GetModuleByDef` function, and pass in the module definition. -Once you have the module, call :c:func:`PyModule_GetState` -to get the state:: - - PyObject *module = PyType_GetModuleByDef(Py_TYPE(self), &module_def); - my_struct *state = (my_struct*)PyModule_GetState(module); - if (state === NULL) { - return NULL; - } - -``PyType_GetModuleByDef`` works by searching the -:term:`method resolution order` (i.e. all superclasses) for the first -superclass that has a corresponding module. - -.. note:: - - In very exotic cases (inheritance chains spanning multiple modules - created from the same definition), ``PyType_GetModuleByDef`` might not - return the module of the true defining class. However, it will always - return a module with the same definition, ensuring a compatible - C memory layout. - - -Lifetime of the Module State ----------------------------- - -When a module object is garbage-collected, its module state is freed. -For each pointer to (a part of) the module state, you must hold a reference -to the module object. - -Usually this is not an issue, because types created with -:c:func:`PyType_FromModuleAndSpec`, and their instances, hold a reference -to the module. -However, you must be careful in reference counting when you reference -module state from other places, such as callbacks for external -libraries. - - -Open Issues -=========== - -Several issues around per-module state and heap types are still open. - -Discussions about improving the situation are best held on the `capi-sig -mailing list <https://mail.python.org/mailman3/lists/capi-sig.python.org/>`__. - - -Per-Class Scope ---------------- - -It is currently (as of Python 3.11) not possible to attach state to individual -*types* without relying on CPython implementation details (which may change -in the future—perhaps, ironically, to allow a proper solution for -per-class scope). - - -Lossless Conversion to Heap Types ---------------------------------- - -The heap type API was not designed for "lossless" conversion from static types; -that is, creating a type that works exactly like a given static type. diff --git a/Doc/howto/logging-cookbook.rst b/Doc/howto/logging-cookbook.rst index 16df3b730ac80e..704279240b357b 100644 --- a/Doc/howto/logging-cookbook.rst +++ b/Doc/howto/logging-cookbook.rst @@ -7,8 +7,7 @@ Logging Cookbook :Author: Vinay Sajip <vinay_sajip at red-dove dot com> This page contains a number of recipes related to logging, which have been found -useful in the past. For links to tutorial and reference information, please see -:ref:`cookbook-ref-links`. +useful in the past. .. currentmodule:: logging @@ -219,7 +218,7 @@ messages should not. Here's how you can achieve this:: logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s', datefmt='%m-%d %H:%M', - filename='/tmp/myapp.log', + filename='/temp/myapp.log', filemode='w') # define a Handler which writes INFO messages or higher to the sys.stderr console = logging.StreamHandler() @@ -270,11 +269,6 @@ are sent to both destinations. This example uses console and file handlers, but you can use any number and combination of handlers you choose. -Note that the above choice of log filename ``/tmp/myapp.log`` implies use of a -standard location for temporary files on POSIX systems. On Windows, you may need to -choose a different directory name for the log - just ensure that the directory exists -and that you have the permissions to create and update files in it. - Configuration server example ---------------------------- @@ -719,254 +713,6 @@ which, when run, produces something like: 2010-09-06 22:38:15,301 d.e.f DEBUG IP: 123.231.231.123 User: fred A message at DEBUG level with 2 parameters 2010-09-06 22:38:15,301 d.e.f INFO IP: 123.231.231.123 User: fred A message at INFO level with 2 parameters -Use of ``contextvars`` ----------------------- - -Since Python 3.7, the :mod:`contextvars` module has provided context-local storage -which works for both :mod:`threading` and :mod:`asyncio` processing needs. This type -of storage may thus be generally preferable to thread-locals. The following example -shows how, in a multi-threaded environment, logs can populated with contextual -information such as, for example, request attributes handled by web applications. - -For the purposes of illustration, say that you have different web applications, each -independent of the other but running in the same Python process and using a library -common to them. How can each of these applications have their own log, where all -logging messages from the library (and other request processing code) are directed to -the appropriate application's log file, while including in the log additional -contextual information such as client IP, HTTP request method and client username? - -Let's assume that the library can be simulated by the following code: - -.. code-block:: python - - # webapplib.py - import logging - import time - - logger = logging.getLogger(__name__) - - def useful(): - # Just a representative event logged from the library - logger.debug('Hello from webapplib!') - # Just sleep for a bit so other threads get to run - time.sleep(0.01) - -We can simulate the multiple web applications by means of two simple classes, -``Request`` and ``WebApp``. These simulate how real threaded web applications work - -each request is handled by a thread: - -.. code-block:: python - - # main.py - import argparse - from contextvars import ContextVar - import logging - import os - from random import choice - import threading - import webapplib - - logger = logging.getLogger(__name__) - root = logging.getLogger() - root.setLevel(logging.DEBUG) - - class Request: - """ - A simple dummy request class which just holds dummy HTTP request method, - client IP address and client username - """ - def __init__(self, method, ip, user): - self.method = method - self.ip = ip - self.user = user - - # A dummy set of requests which will be used in the simulation - we'll just pick - # from this list randomly. Note that all GET requests are from 192.168.2.XXX - # addresses, whereas POST requests are from 192.16.3.XXX addresses. Three users - # are represented in the sample requests. - - REQUESTS = [ - Request('GET', '192.168.2.20', 'jim'), - Request('POST', '192.168.3.20', 'fred'), - Request('GET', '192.168.2.21', 'sheila'), - Request('POST', '192.168.3.21', 'jim'), - Request('GET', '192.168.2.22', 'fred'), - Request('POST', '192.168.3.22', 'sheila'), - ] - - # Note that the format string includes references to request context information - # such as HTTP method, client IP and username - - formatter = logging.Formatter('%(threadName)-11s %(appName)s %(name)-9s %(user)-6s %(ip)s %(method)-4s %(message)s') - - # Create our context variables. These will be filled at the start of request - # processing, and used in the logging that happens during that processing - - ctx_request = ContextVar('request') - ctx_appname = ContextVar('appname') - - class InjectingFilter(logging.Filter): - """ - A filter which injects context-specific information into logs and ensures - that only information for a specific webapp is included in its log - """ - def __init__(self, app): - self.app = app - - def filter(self, record): - request = ctx_request.get() - record.method = request.method - record.ip = request.ip - record.user = request.user - record.appName = appName = ctx_appname.get() - return appName == self.app.name - - class WebApp: - """ - A dummy web application class which has its own handler and filter for a - webapp-specific log. - """ - def __init__(self, name): - self.name = name - handler = logging.FileHandler(name + '.log', 'w') - f = InjectingFilter(self) - handler.setFormatter(formatter) - handler.addFilter(f) - root.addHandler(handler) - self.num_requests = 0 - - def process_request(self, request): - """ - This is the dummy method for processing a request. It's called on a - different thread for every request. We store the context information into - the context vars before doing anything else. - """ - ctx_request.set(request) - ctx_appname.set(self.name) - self.num_requests += 1 - logger.debug('Request processing started') - webapplib.useful() - logger.debug('Request processing finished') - - def main(): - fn = os.path.splitext(os.path.basename(__file__))[0] - adhf = argparse.ArgumentDefaultsHelpFormatter - ap = argparse.ArgumentParser(formatter_class=adhf, prog=fn, - description='Simulate a couple of web ' - 'applications handling some ' - 'requests, showing how request ' - 'context can be used to ' - 'populate logs') - aa = ap.add_argument - aa('--count', '-c', default=100, help='How many requests to simulate') - options = ap.parse_args() - - # Create the dummy webapps and put them in a list which we can use to select - # from randomly - app1 = WebApp('app1') - app2 = WebApp('app2') - apps = [app1, app2] - threads = [] - # Add a common handler which will capture all events - handler = logging.FileHandler('app.log', 'w') - handler.setFormatter(formatter) - root.addHandler(handler) - - # Generate calls to process requests - for i in range(options.count): - try: - # Pick an app at random and a request for it to process - app = choice(apps) - request = choice(REQUESTS) - # Process the request in its own thread - t = threading.Thread(target=app.process_request, args=(request,)) - threads.append(t) - t.start() - except KeyboardInterrupt: - break - - # Wait for the threads to terminate - for t in threads: - t.join() - - for app in apps: - print('%s processed %s requests' % (app.name, app.num_requests)) - - if __name__ == '__main__': - main() - -If you run the above, you should find that roughly half the requests go -into :file:`app1.log` and the rest into :file:`app2.log`, and the all the requests are -logged to :file:`app.log`. Each webapp-specific log will contain only log entries for -only that webapp, and the request information will be displayed consistently in the -log (i.e. the information in each dummy request will always appear together in a log -line). This is illustrated by the following shell output: - -.. code-block:: shell - - ~/logging-contextual-webapp$ python main.py - app1 processed 51 requests - app2 processed 49 requests - ~/logging-contextual-webapp$ wc -l *.log - 153 app1.log - 147 app2.log - 300 app.log - 600 total - ~/logging-contextual-webapp$ head -3 app1.log - Thread-3 (process_request) app1 __main__ jim 192.168.3.21 POST Request processing started - Thread-3 (process_request) app1 webapplib jim 192.168.3.21 POST Hello from webapplib! - Thread-5 (process_request) app1 __main__ jim 192.168.3.21 POST Request processing started - ~/logging-contextual-webapp$ head -3 app2.log - Thread-1 (process_request) app2 __main__ sheila 192.168.2.21 GET Request processing started - Thread-1 (process_request) app2 webapplib sheila 192.168.2.21 GET Hello from webapplib! - Thread-2 (process_request) app2 __main__ jim 192.168.2.20 GET Request processing started - ~/logging-contextual-webapp$ head app.log - Thread-1 (process_request) app2 __main__ sheila 192.168.2.21 GET Request processing started - Thread-1 (process_request) app2 webapplib sheila 192.168.2.21 GET Hello from webapplib! - Thread-2 (process_request) app2 __main__ jim 192.168.2.20 GET Request processing started - Thread-3 (process_request) app1 __main__ jim 192.168.3.21 POST Request processing started - Thread-2 (process_request) app2 webapplib jim 192.168.2.20 GET Hello from webapplib! - Thread-3 (process_request) app1 webapplib jim 192.168.3.21 POST Hello from webapplib! - Thread-4 (process_request) app2 __main__ fred 192.168.2.22 GET Request processing started - Thread-5 (process_request) app1 __main__ jim 192.168.3.21 POST Request processing started - Thread-4 (process_request) app2 webapplib fred 192.168.2.22 GET Hello from webapplib! - Thread-6 (process_request) app1 __main__ jim 192.168.3.21 POST Request processing started - ~/logging-contextual-webapp$ grep app1 app1.log | wc -l - 153 - ~/logging-contextual-webapp$ grep app2 app2.log | wc -l - 147 - ~/logging-contextual-webapp$ grep app1 app.log | wc -l - 153 - ~/logging-contextual-webapp$ grep app2 app.log | wc -l - 147 - - -Imparting contextual information in handlers --------------------------------------------- - -Each :class:`~Handler` has its own chain of filters. -If you want to add contextual information to a :class:`LogRecord` without leaking -it to other handlers, you can use a filter that returns -a new :class:`~LogRecord` instead of modifying it in-place, as shown in the following script:: - - import copy - import logging - - def filter(record: logging.LogRecord): - record = copy.copy(record) - record.user = 'jim' - return record - - if __name__ == '__main__': - logger = logging.getLogger() - logger.setLevel(logging.INFO) - handler = logging.StreamHandler() - formatter = logging.Formatter('%(message)s from %(user)-8s') - handler.setFormatter(formatter) - handler.addFilter(filter) - logger.addHandler(handler) - - logger.info('A log message') .. _multiple-processes: @@ -2678,88 +2424,6 @@ You can of course use the conventional means of decoration:: ... -.. _buffered-smtp: - -Sending logging messages to email, with buffering -------------------------------------------------- - -To illustrate how you can send log messages via email, so that a set number of -messages are sent per email, you can subclass -:class:`~logging.handlers.BufferingHandler`. In the following example, which you can -adapt to suit your specific needs, a simple test harness is provided which allows you -to run the script with command line arguments specifying what you typically need to -send things via SMTP. (Run the downloaded script with the ``-h`` argument to see the -required and optional arguments.) - -.. code-block:: python - - import logging - import logging.handlers - import smtplib - - class BufferingSMTPHandler(logging.handlers.BufferingHandler): - def __init__(self, mailhost, port, username, password, fromaddr, toaddrs, - subject, capacity): - logging.handlers.BufferingHandler.__init__(self, capacity) - self.mailhost = mailhost - self.mailport = port - self.username = username - self.password = password - self.fromaddr = fromaddr - if isinstance(toaddrs, str): - toaddrs = [toaddrs] - self.toaddrs = toaddrs - self.subject = subject - self.setFormatter(logging.Formatter("%(asctime)s %(levelname)-5s %(message)s")) - - def flush(self): - if len(self.buffer) > 0: - try: - smtp = smtplib.SMTP(self.mailhost, self.mailport) - smtp.starttls() - smtp.login(self.username, self.password) - msg = "From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n" % (self.fromaddr, ','.join(self.toaddrs), self.subject) - for record in self.buffer: - s = self.format(record) - msg = msg + s + "\r\n" - smtp.sendmail(self.fromaddr, self.toaddrs, msg) - smtp.quit() - except Exception: - if logging.raiseExceptions: - raise - self.buffer = [] - - if __name__ == '__main__': - import argparse - - ap = argparse.ArgumentParser() - aa = ap.add_argument - aa('host', metavar='HOST', help='SMTP server') - aa('--port', '-p', type=int, default=587, help='SMTP port') - aa('user', metavar='USER', help='SMTP username') - aa('password', metavar='PASSWORD', help='SMTP password') - aa('to', metavar='TO', help='Addressee for emails') - aa('sender', metavar='SENDER', help='Sender email address') - aa('--subject', '-s', - default='Test Logging email from Python logging module (buffering)', - help='Subject of email') - options = ap.parse_args() - logger = logging.getLogger() - logger.setLevel(logging.DEBUG) - h = BufferingSMTPHandler(options.host, options.port, options.user, - options.password, options.sender, - options.to, options.subject, 10) - logger.addHandler(h) - for i in range(102): - logger.info("Info index = %d", i) - h.flush() - h.close() - -If you run this script and your SMTP server is correctly set up, you should find that -it sends eleven emails to the addressee you specify. The first ten emails will each -have ten log messages, and the eleventh will have two messages. That makes up 102 -messages as specified in the script. - .. _utc-formatting: Formatting times using UTC (GMT) via configuration @@ -3331,95 +2995,6 @@ refer to the comments in the code snippet for more detailed information. if __name__=='__main__': main() -Logging to syslog with RFC5424 support --------------------------------------- - -Although :rfc:`5424` dates from 2009, most syslog servers are configured by detault to -use the older :rfc:`3164`, which hails from 2001. When ``logging`` was added to Python -in 2003, it supported the earlier (and only existing) protocol at the time. Since -RFC5424 came out, as there has not been widespread deployment of it in syslog -servers, the :class:`~logging.handlers.SysLogHandler` functionality has not been -updated. - -RFC 5424 contains some useful features such as support for structured data, and if you -need to be able to log to a syslog server with support for it, you can do so with a -subclassed handler which looks something like this:: - - import datetime - import logging.handlers - import re - import socket - import time - - class SysLogHandler5424(logging.handlers.SysLogHandler): - - tz_offset = re.compile(r'([+-]\d{2})(\d{2})$') - escaped = re.compile(r'([\]"\\])') - - def __init__(self, *args, **kwargs): - self.msgid = kwargs.pop('msgid', None) - self.appname = kwargs.pop('appname', None) - super().__init__(*args, **kwargs) - - def format(self, record): - version = 1 - asctime = datetime.datetime.fromtimestamp(record.created).isoformat() - m = self.tz_offset.match(time.strftime('%z')) - has_offset = False - if m and time.timezone: - hrs, mins = m.groups() - if int(hrs) or int(mins): - has_offset = True - if not has_offset: - asctime += 'Z' - else: - asctime += f'{hrs}:{mins}' - try: - hostname = socket.gethostname() - except Exception: - hostname = '-' - appname = self.appname or '-' - procid = record.process - msgid = '-' - msg = super().format(record) - sdata = '-' - if hasattr(record, 'structured_data'): - sd = record.structured_data - # This should be a dict where the keys are SD-ID and the value is a - # dict mapping PARAM-NAME to PARAM-VALUE (refer to the RFC for what these - # mean) - # There's no error checking here - it's purely for illustration, and you - # can adapt this code for use in production environments - parts = [] - - def replacer(m): - g = m.groups() - return '\\' + g[0] - - for sdid, dv in sd.items(): - part = f'[{sdid}' - for k, v in dv.items(): - s = str(v) - s = self.escaped.sub(replacer, s) - part += f' {k}="{s}"' - part += ']' - parts.append(part) - sdata = ''.join(parts) - return f'{version} {asctime} {hostname} {appname} {procid} {msgid} {sdata} {msg}' - -You'll need to be familiar with RFC 5424 to fully understand the above code, and it -may be that you have slightly different needs (e.g. for how you pass structural data -to the log). Nevertheless, the above should be adaptable to your speciric needs. With -the above handler, you'd pass structured data using something like this:: - - sd = { - 'foo@12345': {'bar': 'baz', 'baz': 'bozz', 'fizz': r'buzz'}, - 'foo@54321': {'rab': 'baz', 'zab': 'bozz', 'zzif': r'buzz'} - } - extra = {'structured_data': sd} - i = 1 - logger.debug('Message %d', i, extra=extra) - .. patterns-to-avoid: @@ -3500,23 +3075,3 @@ the :ref:`existing mechanisms <context-info>` for passing contextual information into your logs and restrict the loggers created to those describing areas within your application (generally modules, but occasionally slightly more fine-grained than that). - -.. _cookbook-ref-links: - -Other resources ---------------- - -.. seealso:: - - Module :mod:`logging` - API reference for the logging module. - - Module :mod:`logging.config` - Configuration API for the logging module. - - Module :mod:`logging.handlers` - Useful handlers included with the logging module. - - :ref:`Basic Tutorial <logging-basic-tutorial>` - - :ref:`Advanced Tutorial <logging-advanced-tutorial>` diff --git a/Doc/howto/logging.rst b/Doc/howto/logging.rst index 0caff13bd15d82..125bde29152270 100644 --- a/Doc/howto/logging.rst +++ b/Doc/howto/logging.rst @@ -8,9 +8,6 @@ Logging HOWTO .. currentmodule:: logging -This page contains tutorial information. For links to reference information and a -logging cookbook, please see :ref:`tutorial-ref-links`. - Basic Logging Tutorial ---------------------- @@ -127,7 +124,7 @@ Logging to a file ^^^^^^^^^^^^^^^^^ A very common situation is that of recording logging events in a file, so let's -look at that next. Be sure to try the following in a newly started Python +look at that next. Be sure to try the following in a newly-started Python interpreter, and don't just continue from the session described above:: import logging @@ -339,7 +336,7 @@ favourite beverage and carry on. If your logging needs are simple, then use the above examples to incorporate logging into your own scripts, and if you run into problems or don't understand something, please post a question on the comp.lang.python Usenet -group (available at https://groups.google.com/g/comp.lang.python) and you +group (available at https://groups.google.com/forum/#!forum/comp.lang.python) and you should receive help before too long. Still here? You can carry on reading the next few sections, which provide a @@ -1112,11 +1109,6 @@ Also note that the core logging module only includes the basic handlers. If you don't import :mod:`logging.handlers` and :mod:`logging.config`, they won't take up any memory. -.. _tutorial-ref-links: - -Other resources ---------------- - .. seealso:: Module :mod:`logging` diff --git a/Doc/howto/perf_profiling.rst b/Doc/howto/perf_profiling.rst deleted file mode 100644 index ed8de888b3bc21..00000000000000 --- a/Doc/howto/perf_profiling.rst +++ /dev/null @@ -1,203 +0,0 @@ -.. highlight:: shell-session - -.. _perf_profiling: - -============================================== -Python support for the Linux ``perf`` profiler -============================================== - -:author: Pablo Galindo - -The Linux ``perf`` profiler is a very powerful tool that allows you to profile and -obtain information about the performance of your application. ``perf`` also has -a very vibrant ecosystem of tools that aid with the analysis of the data that it -produces. - -The main problem with using the ``perf`` profiler with Python applications is that -``perf`` only allows to get information about native symbols, this is, the names of -the functions and procedures written in C. This means that the names and file names -of the Python functions in your code will not appear in the output of the ``perf``. - -Since Python 3.12, the interpreter can run in a special mode that allows Python -functions to appear in the output of the ``perf`` profiler. When this mode is -enabled, the interpreter will interpose a small piece of code compiled on the -fly before the execution of every Python function and it will teach ``perf`` the -relationship between this piece of code and the associated Python function using -`perf map files`_. - -.. warning:: - - Support for the ``perf`` profiler is only currently available for Linux on - selected architectures. Check the output of the configure build step or - check the output of ``python -m sysconfig | grep HAVE_PERF_TRAMPOLINE`` - to see if your system is supported. - -For example, consider the following script: - -.. code-block:: python - - def foo(n): - result = 0 - for _ in range(n): - result += 1 - return result - - def bar(n): - foo(n) - - def baz(n): - bar(n) - - if __name__ == "__main__": - baz(1000000) - -We can run perf to sample CPU stack traces at 9999 Hertz: - - $ perf record -F 9999 -g -o perf.data python my_script.py - -Then we can use perf report to analyze the data: - -.. code-block:: shell-session - - $ perf report --stdio -n -g - - # Children Self Samples Command Shared Object Symbol - # ........ ........ ............ .......... .................. .......................................... - # - 91.08% 0.00% 0 python.exe python.exe [.] _start - | - ---_start - | - --90.71%--__libc_start_main - Py_BytesMain - | - |--56.88%--pymain_run_python.constprop.0 - | | - | |--56.13%--_PyRun_AnyFileObject - | | _PyRun_SimpleFileObject - | | | - | | |--55.02%--run_mod - | | | | - | | | --54.65%--PyEval_EvalCode - | | | _PyEval_EvalFrameDefault - | | | PyObject_Vectorcall - | | | _PyEval_Vector - | | | _PyEval_EvalFrameDefault - | | | PyObject_Vectorcall - | | | _PyEval_Vector - | | | _PyEval_EvalFrameDefault - | | | PyObject_Vectorcall - | | | _PyEval_Vector - | | | | - | | | |--51.67%--_PyEval_EvalFrameDefault - | | | | | - | | | | |--11.52%--_PyLong_Add - | | | | | | - | | | | | |--2.97%--_PyObject_Malloc - ... - -As you can see here, the Python functions are not shown in the output, only ``_Py_Eval_EvalFrameDefault`` appears -(the function that evaluates the Python bytecode) shows up. Unfortunately that's not very useful because all Python -functions use the same C function to evaluate bytecode so we cannot know which Python function corresponds to which -bytecode-evaluating function. - -Instead, if we run the same experiment with perf support activated we get: - -.. code-block:: shell-session - - $ perf report --stdio -n -g - - # Children Self Samples Command Shared Object Symbol - # ........ ........ ............ .......... .................. ..................................................................... - # - 90.58% 0.36% 1 python.exe python.exe [.] _start - | - ---_start - | - --89.86%--__libc_start_main - Py_BytesMain - | - |--55.43%--pymain_run_python.constprop.0 - | | - | |--54.71%--_PyRun_AnyFileObject - | | _PyRun_SimpleFileObject - | | | - | | |--53.62%--run_mod - | | | | - | | | --53.26%--PyEval_EvalCode - | | | py::<module>:/src/script.py - | | | _PyEval_EvalFrameDefault - | | | PyObject_Vectorcall - | | | _PyEval_Vector - | | | py::baz:/src/script.py - | | | _PyEval_EvalFrameDefault - | | | PyObject_Vectorcall - | | | _PyEval_Vector - | | | py::bar:/src/script.py - | | | _PyEval_EvalFrameDefault - | | | PyObject_Vectorcall - | | | _PyEval_Vector - | | | py::foo:/src/script.py - | | | | - | | | |--51.81%--_PyEval_EvalFrameDefault - | | | | | - | | | | |--13.77%--_PyLong_Add - | | | | | | - | | | | | |--3.26%--_PyObject_Malloc - - - -Enabling perf profiling mode ----------------------------- - -There are two main ways to activate the perf profiling mode. If you want it to be -active since the start of the Python interpreter, you can use the `-Xperf` option: - - $ python -Xperf my_script.py - -You can also set the :envvar:`PYTHONPERFSUPPORT` to a nonzero value to actiavate perf -profiling mode globally. - -There is also support for dynamically activating and deactivating the perf -profiling mode by using the APIs in the :mod:`sys` module: - -.. code-block:: python - - import sys - sys.activate_stack_trampoline("perf") - - # Run some code with Perf profiling active - - sys.deactivate_stack_trampoline() - - # Perf profiling is not active anymore - -These APIs can be handy if you want to activate/deactivate profiling mode in -response to a signal or other communication mechanism with your process. - - - -Now we can analyze the data with ``perf report``: - - $ perf report -g -i perf.data - - -How to obtain the best results -------------------------------- - -For the best results, Python should be compiled with -``CFLAGS="-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"`` as this allows -profilers to unwind using only the frame pointer and not on DWARF debug -information. This is because as the code that is interposed to allow perf -support is dynamically generated it doesn't have any DWARF debugging information -available. - -You can check if you system has been compiled with this flag by running: - - $ python -m sysconfig | grep 'no-omit-frame-pointer' - -If you don't see any output it means that your interpreter has not been compiled with -frame pointers and therefore it may not be able to show Python functions in the output -of ``perf``. - -.. _perf map files: https://github.com/torvalds/linux/blob/0513e464f9007b70b96740271a948ca5ab6e7dd7/tools/perf/Documentation/jit-interface.txt diff --git a/Doc/howto/pyporting.rst b/Doc/howto/pyporting.rst index add1c11be534e3..abcc34287e3d29 100644 --- a/Doc/howto/pyporting.rst +++ b/Doc/howto/pyporting.rst @@ -433,9 +433,9 @@ to make sure everything functions as expected in both versions of Python. .. _caniusepython3: https://pypi.org/project/caniusepython3 -.. _cheat sheet: https://python-future.org/compatible_idioms.html +.. _cheat sheet: http://python-future.org/compatible_idioms.html .. _coverage.py: https://pypi.org/project/coverage -.. _Futurize: https://python-future.org/automatic_conversion.html +.. _Futurize: http://python-future.org/automatic_conversion.html .. _importlib2: https://pypi.org/project/importlib2 .. _Modernize: https://python-modernize.readthedocs.io/ .. _mypy: http://mypy-lang.org/ @@ -445,7 +445,7 @@ to make sure everything functions as expected in both versions of Python. .. _Python 3 Q & A: https://ncoghlan-devs-python-notes.readthedocs.io/en/latest/python3/questions_and_answers.html .. _pytype: https://github.com/google/pytype -.. _python-future: https://python-future.org/ +.. _python-future: http://python-future.org/ .. _python-porting: https://mail.python.org/pipermail/python-porting/ .. _six: https://pypi.org/project/six .. _tox: https://pypi.org/project/tox diff --git a/Doc/howto/regex.rst b/Doc/howto/regex.rst index 5cd6140f19ca2e..c4eed8fb1fbe72 100644 --- a/Doc/howto/regex.rst +++ b/Doc/howto/regex.rst @@ -949,7 +949,7 @@ Additionally, you can retrieve named groups as a dictionary with >>> m.groupdict() {'first': 'Jane', 'last': 'Doe'} -Named groups are handy because they let you use easily remembered names, instead +Named groups are handy because they let you use easily-remembered names, instead of having to remember numbers. Here's an example RE from the :mod:`imaplib` module:: diff --git a/Doc/howto/sockets.rst b/Doc/howto/sockets.rst index 0bbf97da39768d..e58f78a7cb0245 100644 --- a/Doc/howto/sockets.rst +++ b/Doc/howto/sockets.rst @@ -252,25 +252,20 @@ Binary Data ----------- It is perfectly possible to send binary data over a socket. The major problem is -that not all machines use the same formats for binary data. For example, -`network byte order <https://en.wikipedia.org/wiki/Endianness#Networking>`_ -is big-endian, with the most significant byte first, -so a 16 bit integer with the value ``1`` would be the two hex bytes ``00 01``. -However, most common processors (x86/AMD64, ARM, RISC-V), are little-endian, -with the least significant byte first - that same ``1`` would be ``01 00``. - +that not all machines use the same formats for binary data. For example, a +Motorola chip will represent a 16 bit integer with the value 1 as the two hex +bytes 00 01. Intel and DEC, however, are byte-reversed - that same 1 is 01 00. Socket libraries have calls for converting 16 and 32 bit integers - ``ntohl, htonl, ntohs, htons`` where "n" means *network* and "h" means *host*, "s" means *short* and "l" means *long*. Where network order is host order, these do nothing, but where the machine is byte-reversed, these swap the bytes around appropriately. -In these days of 64-bit machines, the ASCII representation of binary data is +In these days of 32 bit machines, the ascii representation of binary data is frequently smaller than the binary representation. That's because a surprising -amount of the time, most integers have the value 0, or maybe 1. -The string ``"0"`` would be two bytes, while a full 64-bit integer would be 8. -Of course, this doesn't fit well with fixed-length messages. -Decisions, decisions. +amount of the time, all those longs have the value 0, or maybe 1. The string "0" +would be two bytes, while binary is four. Of course, this doesn't fit well with +fixed-length messages. Decisions, decisions. Disconnecting diff --git a/Doc/howto/unicode.rst b/Doc/howto/unicode.rst index 4969d2420d6ac9..535b21bd4a54f5 100644 --- a/Doc/howto/unicode.rst +++ b/Doc/howto/unicode.rst @@ -167,7 +167,7 @@ On the Computerphile Youtube channel, Tom Scott briefly (9 minutes 36 seconds). To help understand the standard, Jukka Korpela has written `an introductory -guide <https://jkorpela.fi/unicode/guide.html>`_ to reading the +guide <http://jkorpela.fi/unicode/guide.html>`_ to reading the Unicode character tables. Another `good introductory article <https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode-and-character-sets-no-excuses/>`_ @@ -735,7 +735,7 @@ References ---------- One section of `Mastering Python 3 Input/Output -<https://pyvideo.org/video/289/pycon-2010--mastering-python-3-i-o>`_, +<http://pyvideo.org/video/289/pycon-2010--mastering-python-3-i-o>`_, a PyCon 2010 talk by David Beazley, discusses text processing and binary data handling. The `PDF slides for Marc-André Lemburg's presentation "Writing Unicode-aware @@ -745,7 +745,7 @@ discuss questions of character encodings as well as how to internationalize and localize an application. These slides cover Python 2.x only. `The Guts of Unicode in Python -<https://pyvideo.org/video/1768/the-guts-of-unicode-in-python>`_ +<http://pyvideo.org/video/1768/the-guts-of-unicode-in-python>`_ is a PyCon 2013 talk by Benjamin Peterson that discusses the internal Unicode representation in Python 3.3. diff --git a/Doc/howto/urllib2.rst b/Doc/howto/urllib2.rst index 69af3c3a85c5d6..12d525771ddc28 100644 --- a/Doc/howto/urllib2.rst +++ b/Doc/howto/urllib2.rst @@ -4,13 +4,13 @@ HOWTO Fetch Internet Resources Using The urllib Package *********************************************************** -:Author: `Michael Foord <https://agileabstractions.com/>`_ +:Author: `Michael Foord <http://www.voidspace.org.uk/python/index.shtml>`_ .. note:: There is a French translation of an earlier revision of this HOWTO, available at `urllib2 - Le Manuel manquant - <https://web.archive.org/web/20200910051922/http://www.voidspace.org.uk/python/articles/urllib2_francais.shtml>`_. + <http://www.voidspace.org.uk/python/articles/urllib2_francais.shtml>`_. @@ -22,7 +22,7 @@ Introduction You may also find useful the following article on fetching web resources with Python: - * `Basic Authentication <https://web.archive.org/web/20201215133350/http://www.voidspace.org.uk/python/articles/authentication.shtml>`_ + * `Basic Authentication <http://www.voidspace.org.uk/python/articles/authentication.shtml>`_ A tutorial on *Basic Authentication*, with examples in Python. @@ -411,7 +411,7 @@ fetched, particularly the headers sent by the server. It is currently an :class:`http.client.HTTPMessage` instance. Typical headers include 'Content-length', 'Content-type', and so on. See the -`Quick Reference to HTTP Headers <https://jkorpela.fi/http.html>`_ +`Quick Reference to HTTP Headers <http://jkorpela.fi/http.html>`_ for a useful listing of HTTP headers with brief explanations of their meaning and use. @@ -420,7 +420,7 @@ Openers and Handlers ==================== When you fetch a URL you use an opener (an instance of the perhaps -confusingly named :class:`urllib.request.OpenerDirector`). Normally we have been using +confusingly-named :class:`urllib.request.OpenerDirector`). Normally we have been using the default opener - via ``urlopen`` - but you can create custom openers. Openers use handlers. All the "heavy lifting" is done by the handlers. Each handler knows how to open URLs for a particular URL scheme (http, diff --git a/Doc/includes/email-headers.py b/Doc/includes/email-headers.py index 5def0c90d28d9f..2c421451a8e5a8 100644 --- a/Doc/includes/email-headers.py +++ b/Doc/includes/email-headers.py @@ -1,6 +1,5 @@ # Import the email modules we'll need -#from email.parser import BytesParser -from email.parser import Parser +from email.parser import BytesParser, Parser from email.policy import default # If the e-mail headers are in a file, uncomment these two lines: diff --git a/Doc/includes/sqlite3/adapter_datetime.py b/Doc/includes/sqlite3/adapter_datetime.py new file mode 100644 index 00000000000000..d5221d80c35c8a --- /dev/null +++ b/Doc/includes/sqlite3/adapter_datetime.py @@ -0,0 +1,17 @@ +import sqlite3 +import datetime +import time + +def adapt_datetime(ts): + return time.mktime(ts.timetuple()) + +sqlite3.register_adapter(datetime.datetime, adapt_datetime) + +con = sqlite3.connect(":memory:") +cur = con.cursor() + +now = datetime.datetime.now() +cur.execute("select ?", (now,)) +print(cur.fetchone()[0]) + +con.close() diff --git a/Doc/includes/sqlite3/adapter_point_1.py b/Doc/includes/sqlite3/adapter_point_1.py new file mode 100644 index 00000000000000..77daf8f16d227b --- /dev/null +++ b/Doc/includes/sqlite3/adapter_point_1.py @@ -0,0 +1,18 @@ +import sqlite3 + +class Point: + def __init__(self, x, y): + self.x, self.y = x, y + + def __conform__(self, protocol): + if protocol is sqlite3.PrepareProtocol: + return "%f;%f" % (self.x, self.y) + +con = sqlite3.connect(":memory:") +cur = con.cursor() + +p = Point(4.0, -3.2) +cur.execute("select ?", (p,)) +print(cur.fetchone()[0]) + +con.close() diff --git a/Doc/includes/sqlite3/adapter_point_2.py b/Doc/includes/sqlite3/adapter_point_2.py new file mode 100644 index 00000000000000..cb86331692b61d --- /dev/null +++ b/Doc/includes/sqlite3/adapter_point_2.py @@ -0,0 +1,19 @@ +import sqlite3 + +class Point: + def __init__(self, x, y): + self.x, self.y = x, y + +def adapt_point(point): + return "%f;%f" % (point.x, point.y) + +sqlite3.register_adapter(Point, adapt_point) + +con = sqlite3.connect(":memory:") +cur = con.cursor() + +p = Point(4.0, -3.2) +cur.execute("select ?", (p,)) +print(cur.fetchone()[0]) + +con.close() diff --git a/Doc/includes/sqlite3/blob.py b/Doc/includes/sqlite3/blob.py new file mode 100644 index 00000000000000..ff58d6c352b652 --- /dev/null +++ b/Doc/includes/sqlite3/blob.py @@ -0,0 +1,19 @@ +import sqlite3 + +con = sqlite3.connect(":memory:") +con.execute("create table test(blob_col blob)") +con.execute("insert into test(blob_col) values (zeroblob(13))") + +# Write to our blob, using two write operations: +with con.blobopen("test", "blob_col", 1) as blob: + blob.write(b"hello, ") + blob.write(b"world.") + # Modify the first and last bytes of our blob + blob[0] = ord("H") + blob[-1] = ord("!") + +# Read the contents of our blob +with con.blobopen("test", "blob_col", 1) as blob: + greeting = blob.read() + +print(greeting) # outputs "b'Hello, world!'" diff --git a/Doc/includes/sqlite3/collation_reverse.py b/Doc/includes/sqlite3/collation_reverse.py new file mode 100644 index 00000000000000..3504a350a04ecb --- /dev/null +++ b/Doc/includes/sqlite3/collation_reverse.py @@ -0,0 +1,20 @@ +import sqlite3 + +def collate_reverse(string1, string2): + if string1 == string2: + return 0 + elif string1 < string2: + return 1 + else: + return -1 + +con = sqlite3.connect(":memory:") +con.create_collation("reverse", collate_reverse) + +cur = con.cursor() +cur.execute("create table test(x)") +cur.executemany("insert into test(x) values (?)", [("a",), ("b",)]) +cur.execute("select x from test order by x collate reverse") +for row in cur: + print(row) +con.close() diff --git a/Doc/includes/sqlite3/complete_statement.py b/Doc/includes/sqlite3/complete_statement.py new file mode 100644 index 00000000000000..a5c947969910d4 --- /dev/null +++ b/Doc/includes/sqlite3/complete_statement.py @@ -0,0 +1,33 @@ +# A minimal SQLite shell for experiments + +import sqlite3 + +con = sqlite3.connect(":memory:") +con.isolation_level = None +cur = con.cursor() + +buffer = "" + +print("Enter your SQL commands to execute in sqlite3.") +print("Enter a blank line to exit.") + +while True: + line = input() + if line == "": + break + buffer += line + if sqlite3.complete_statement(buffer): + try: + buffer = buffer.strip() + cur.execute(buffer) + + if buffer.lstrip().upper().startswith("SELECT"): + print(cur.fetchall()) + except sqlite3.Error as e: + err_msg = str(e) + err_code = e.sqlite_errorcode + err_name = e.sqlite_errorname + print(f"{err_name} ({err_code}): {err_msg}") + buffer = "" + +con.close() diff --git a/Doc/includes/sqlite3/converter_point.py b/Doc/includes/sqlite3/converter_point.py new file mode 100644 index 00000000000000..5df828e3361246 --- /dev/null +++ b/Doc/includes/sqlite3/converter_point.py @@ -0,0 +1,47 @@ +import sqlite3 + +class Point: + def __init__(self, x, y): + self.x, self.y = x, y + + def __repr__(self): + return "(%f;%f)" % (self.x, self.y) + +def adapt_point(point): + return ("%f;%f" % (point.x, point.y)).encode('ascii') + +def convert_point(s): + x, y = list(map(float, s.split(b";"))) + return Point(x, y) + +# Register the adapter +sqlite3.register_adapter(Point, adapt_point) + +# Register the converter +sqlite3.register_converter("point", convert_point) + +p = Point(4.0, -3.2) + +######################### +# 1) Using declared types +con = sqlite3.connect(":memory:", detect_types=sqlite3.PARSE_DECLTYPES) +cur = con.cursor() +cur.execute("create table test(p point)") + +cur.execute("insert into test(p) values (?)", (p,)) +cur.execute("select p from test") +print("with declared types:", cur.fetchone()[0]) +cur.close() +con.close() + +####################### +# 1) Using column names +con = sqlite3.connect(":memory:", detect_types=sqlite3.PARSE_COLNAMES) +cur = con.cursor() +cur.execute("create table test(p)") + +cur.execute("insert into test(p) values (?)", (p,)) +cur.execute('select p as "p [point]" from test') +print("with column names:", cur.fetchone()[0]) +cur.close() +con.close() diff --git a/Doc/includes/sqlite3/ctx_manager.py b/Doc/includes/sqlite3/ctx_manager.py new file mode 100644 index 00000000000000..2e1175ef44c641 --- /dev/null +++ b/Doc/includes/sqlite3/ctx_manager.py @@ -0,0 +1,20 @@ +import sqlite3 + +con = sqlite3.connect(":memory:") +con.execute("create table lang (id integer primary key, name varchar unique)") + +# Successful, con.commit() is called automatically afterwards +with con: + con.execute("insert into lang(name) values (?)", ("Python",)) + +# con.rollback() is called after the with block finishes with an exception, the +# exception is still raised and must be caught +try: + with con: + con.execute("insert into lang(name) values (?)", ("Python",)) +except sqlite3.IntegrityError: + print("couldn't add Python twice") + +# Connection object used as context manager only commits or rollbacks transactions, +# so the connection object should be closed manually +con.close() diff --git a/Doc/includes/sqlite3/execute_1.py b/Doc/includes/sqlite3/execute_1.py new file mode 100644 index 00000000000000..ee0000e2b94a32 --- /dev/null +++ b/Doc/includes/sqlite3/execute_1.py @@ -0,0 +1,22 @@ +import sqlite3 + +con = sqlite3.connect(":memory:") +cur = con.cursor() +cur.execute("create table lang (name, first_appeared)") + +# This is the qmark style: +cur.execute("insert into lang values (?, ?)", ("C", 1972)) + +# The qmark style used with executemany(): +lang_list = [ + ("Fortran", 1957), + ("Python", 1991), + ("Go", 2009), +] +cur.executemany("insert into lang values (?, ?)", lang_list) + +# And this is the named style: +cur.execute("select * from lang where first_appeared=:year", {"year": 1972}) +print(cur.fetchall()) + +con.close() diff --git a/Doc/includes/sqlite3/executemany_1.py b/Doc/includes/sqlite3/executemany_1.py new file mode 100644 index 00000000000000..edf6f8b7ebe61a --- /dev/null +++ b/Doc/includes/sqlite3/executemany_1.py @@ -0,0 +1,26 @@ +import sqlite3 + +class IterChars: + def __init__(self): + self.count = ord('a') + + def __iter__(self): + return self + + def __next__(self): + if self.count > ord('z'): + raise StopIteration + self.count += 1 + return (chr(self.count - 1),) # this is a 1-tuple + +con = sqlite3.connect(":memory:") +cur = con.cursor() +cur.execute("create table characters(c)") + +theIter = IterChars() +cur.executemany("insert into characters(c) values (?)", theIter) + +cur.execute("select c from characters") +print(cur.fetchall()) + +con.close() diff --git a/Doc/includes/sqlite3/executemany_2.py b/Doc/includes/sqlite3/executemany_2.py new file mode 100644 index 00000000000000..02a594c861e15b --- /dev/null +++ b/Doc/includes/sqlite3/executemany_2.py @@ -0,0 +1,17 @@ +import sqlite3 +import string + +def char_generator(): + for c in string.ascii_lowercase: + yield (c,) + +con = sqlite3.connect(":memory:") +cur = con.cursor() +cur.execute("create table characters(c)") + +cur.executemany("insert into characters(c) values (?)", char_generator()) + +cur.execute("select c from characters") +print(cur.fetchall()) + +con.close() diff --git a/Doc/includes/sqlite3/executescript.py b/Doc/includes/sqlite3/executescript.py new file mode 100644 index 00000000000000..aea8943fbee598 --- /dev/null +++ b/Doc/includes/sqlite3/executescript.py @@ -0,0 +1,25 @@ +import sqlite3 + +con = sqlite3.connect(":memory:") +cur = con.cursor() +cur.executescript(""" + create table person( + firstname, + lastname, + age + ); + + create table book( + title, + author, + published + ); + + insert into book(title, author, published) + values ( + 'Dirk Gently''s Holistic Detective Agency', + 'Douglas Adams', + 1987 + ); + """) +con.close() diff --git a/Doc/includes/sqlite3/load_extension.py b/Doc/includes/sqlite3/load_extension.py new file mode 100644 index 00000000000000..624cfe262f38b3 --- /dev/null +++ b/Doc/includes/sqlite3/load_extension.py @@ -0,0 +1,28 @@ +import sqlite3 + +con = sqlite3.connect(":memory:") + +# enable extension loading +con.enable_load_extension(True) + +# Load the fulltext search extension +con.execute("select load_extension('./fts3.so')") + +# alternatively you can load the extension using an API call: +# con.load_extension("./fts3.so") + +# disable extension loading again +con.enable_load_extension(False) + +# example from SQLite wiki +con.execute("create virtual table recipe using fts3(name, ingredients)") +con.executescript(""" + insert into recipe (name, ingredients) values ('broccoli stew', 'broccoli peppers cheese tomatoes'); + insert into recipe (name, ingredients) values ('pumpkin stew', 'pumpkin onions garlic celery'); + insert into recipe (name, ingredients) values ('broccoli pie', 'broccoli cheese onions flour'); + insert into recipe (name, ingredients) values ('pumpkin pie', 'pumpkin sugar flour butter'); + """) +for row in con.execute("select rowid, name, ingredients from recipe where name match 'pie'"): + print(row) + +con.close() diff --git a/Doc/includes/sqlite3/md5func.py b/Doc/includes/sqlite3/md5func.py new file mode 100644 index 00000000000000..16dc348bf001e2 --- /dev/null +++ b/Doc/includes/sqlite3/md5func.py @@ -0,0 +1,13 @@ +import sqlite3 +import hashlib + +def md5sum(t): + return hashlib.md5(t).hexdigest() + +con = sqlite3.connect(":memory:") +con.create_function("md5", 1, md5sum) +cur = con.cursor() +cur.execute("select md5(?)", (b"foo",)) +print(cur.fetchone()[0]) + +con.close() diff --git a/Doc/includes/sqlite3/mysumaggr.py b/Doc/includes/sqlite3/mysumaggr.py new file mode 100644 index 00000000000000..11f96395b6c485 --- /dev/null +++ b/Doc/includes/sqlite3/mysumaggr.py @@ -0,0 +1,22 @@ +import sqlite3 + +class MySum: + def __init__(self): + self.count = 0 + + def step(self, value): + self.count += value + + def finalize(self): + return self.count + +con = sqlite3.connect(":memory:") +con.create_aggregate("mysum", 1, MySum) +cur = con.cursor() +cur.execute("create table test(i)") +cur.execute("insert into test(i) values (1)") +cur.execute("insert into test(i) values (2)") +cur.execute("select mysum(i) from test") +print(cur.fetchone()[0]) + +con.close() diff --git a/Doc/includes/sqlite3/pysqlite_datetime.py b/Doc/includes/sqlite3/pysqlite_datetime.py new file mode 100644 index 00000000000000..5d843f906b3062 --- /dev/null +++ b/Doc/includes/sqlite3/pysqlite_datetime.py @@ -0,0 +1,22 @@ +import sqlite3 +import datetime + +con = sqlite3.connect(":memory:", detect_types=sqlite3.PARSE_DECLTYPES|sqlite3.PARSE_COLNAMES) +cur = con.cursor() +cur.execute("create table test(d date, ts timestamp)") + +today = datetime.date.today() +now = datetime.datetime.now() + +cur.execute("insert into test(d, ts) values (?, ?)", (today, now)) +cur.execute("select d, ts from test") +row = cur.fetchone() +print(today, "=>", row[0], type(row[0])) +print(now, "=>", row[1], type(row[1])) + +cur.execute('select current_date as "d [date]", current_timestamp as "ts [timestamp]"') +row = cur.fetchone() +print("current_date", row[0], type(row[0])) +print("current_timestamp", row[1], type(row[1])) + +con.close() diff --git a/Doc/includes/sqlite3/row_factory.py b/Doc/includes/sqlite3/row_factory.py new file mode 100644 index 00000000000000..9de6e7b1b9052a --- /dev/null +++ b/Doc/includes/sqlite3/row_factory.py @@ -0,0 +1,15 @@ +import sqlite3 + +def dict_factory(cursor, row): + d = {} + for idx, col in enumerate(cursor.description): + d[col[0]] = row[idx] + return d + +con = sqlite3.connect(":memory:") +con.row_factory = dict_factory +cur = con.cursor() +cur.execute("select 1 as a") +print(cur.fetchone()["a"]) + +con.close() diff --git a/Doc/includes/sqlite3/rowclass.py b/Doc/includes/sqlite3/rowclass.py new file mode 100644 index 00000000000000..fc60287069a854 --- /dev/null +++ b/Doc/includes/sqlite3/rowclass.py @@ -0,0 +1,14 @@ +import sqlite3 + +con = sqlite3.connect(":memory:") +con.row_factory = sqlite3.Row + +cur = con.cursor() +cur.execute("select 'John' as name, 42 as age") +for row in cur: + assert row[0] == row["name"] + assert row["name"] == row["nAmE"] + assert row[1] == row["age"] + assert row[1] == row["AgE"] + +con.close() diff --git a/Doc/includes/sqlite3/shortcut_methods.py b/Doc/includes/sqlite3/shortcut_methods.py new file mode 100644 index 00000000000000..48ea6fad15a898 --- /dev/null +++ b/Doc/includes/sqlite3/shortcut_methods.py @@ -0,0 +1,24 @@ +import sqlite3 + +langs = [ + ("C++", 1985), + ("Objective-C", 1984), +] + +con = sqlite3.connect(":memory:") + +# Create the table +con.execute("create table lang(name, first_appeared)") + +# Fill the table +con.executemany("insert into lang(name, first_appeared) values (?, ?)", langs) + +# Print the table contents +for row in con.execute("select name, first_appeared from lang"): + print(row) + +print("I just deleted", con.execute("delete from lang").rowcount, "rows") + +# close is not a shortcut method and it's not called automatically, +# so the connection object should be closed manually +con.close() diff --git a/Doc/includes/sqlite3/sumintwindow.py b/Doc/includes/sqlite3/sumintwindow.py new file mode 100644 index 00000000000000..0e915d6cc6ae68 --- /dev/null +++ b/Doc/includes/sqlite3/sumintwindow.py @@ -0,0 +1,46 @@ +# Example taken from https://www.sqlite.org/windowfunctions.html#udfwinfunc +import sqlite3 + + +class WindowSumInt: + def __init__(self): + self.count = 0 + + def step(self, value): + """Adds a row to the current window.""" + self.count += value + + def value(self): + """Returns the current value of the aggregate.""" + return self.count + + def inverse(self, value): + """Removes a row from the current window.""" + self.count -= value + + def finalize(self): + """Returns the final value of the aggregate. + + Any clean-up actions should be placed here. + """ + return self.count + + +con = sqlite3.connect(":memory:") +cur = con.execute("create table test(x, y)") +values = [ + ("a", 4), + ("b", 5), + ("c", 3), + ("d", 8), + ("e", 1), +] +cur.executemany("insert into test values(?, ?)", values) +con.create_window_function("sumint", 1, WindowSumInt) +cur.execute(""" + select x, sumint(y) over ( + order by x rows between 1 preceding and 1 following + ) as sum_y + from test order by x +""") +print(cur.fetchall()) diff --git a/Doc/includes/sqlite3/text_factory.py b/Doc/includes/sqlite3/text_factory.py new file mode 100644 index 00000000000000..c0d87cd559118c --- /dev/null +++ b/Doc/includes/sqlite3/text_factory.py @@ -0,0 +1,29 @@ +import sqlite3 + +con = sqlite3.connect(":memory:") +cur = con.cursor() + +AUSTRIA = "Österreich" + +# by default, rows are returned as str +cur.execute("select ?", (AUSTRIA,)) +row = cur.fetchone() +assert row[0] == AUSTRIA + +# but we can make sqlite3 always return bytestrings ... +con.text_factory = bytes +cur.execute("select ?", (AUSTRIA,)) +row = cur.fetchone() +assert type(row[0]) is bytes +# the bytestrings will be encoded in UTF-8, unless you stored garbage in the +# database ... +assert row[0] == AUSTRIA.encode("utf-8") + +# we can also implement a custom text_factory ... +# here we implement one that appends "foo" to all strings +con.text_factory = lambda x: x.decode("utf-8") + "foo" +cur.execute("select ?", ("bar",)) +row = cur.fetchone() +assert row[0] == "barfoo" + +con.close() diff --git a/Doc/includes/wasm-notavail.rst b/Doc/includes/wasm-notavail.rst deleted file mode 100644 index e680e1f9b43807..00000000000000 --- a/Doc/includes/wasm-notavail.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. include for modules that don't work on WASM - -.. availability:: not Emscripten, not WASI. - - This module does not work or is not available on WebAssembly platforms - ``wasm32-emscripten`` and ``wasm32-wasi``. See - :ref:`wasm-availability` for more information. diff --git a/Doc/install/index.rst b/Doc/install/index.rst index 3fc670b191424d..7f7be117009887 100644 --- a/Doc/install/index.rst +++ b/Doc/install/index.rst @@ -23,11 +23,7 @@ The up to date module installation documentation. For regular Python usage, you almost certainly want that document rather than this one. -.. note:: - - This document is being retained solely until the ``setuptools`` documentation - at https://setuptools.readthedocs.io/en/latest/setuptools.html - independently covers all of the relevant information currently included here. +.. include:: ../distutils/_setuptools_disclaimer.rst .. note:: @@ -69,7 +65,7 @@ If you download a module source distribution, you can tell pretty quickly if it was packaged and distributed in the standard way, i.e. using the Distutils. First, the distribution's name and version number will be featured prominently in the name of the downloaded archive, e.g. :file:`foo-1.0.tar.gz` or -:file:`widget-0.9.7.zip`. Next, the archive will unpack into a similarly named +:file:`widget-0.9.7.zip`. Next, the archive will unpack into a similarly-named directory: :file:`foo-1.0` or :file:`widget-0.9.7`. Additionally, the distribution will contain a setup script :file:`setup.py`, and a file named :file:`README.txt` or possibly just :file:`README`, which should explain that @@ -1066,7 +1062,7 @@ normal libraries do. .. seealso:: - `Building Python modules on MS Windows platform with MinGW <https://old.zope.dev/Members/als/tips/win32_mingw_modules>`_ + `Building Python modules on MS Windows platform with MinGW <http://old.zope.org/Members/als/tips/win32_mingw_modules>`_ Information about building the required libraries for the MinGW environment. diff --git a/Doc/installing/index.rst b/Doc/installing/index.rst index e158bf1c4c0c7f..4bacc7ba0c2cf2 100644 --- a/Doc/installing/index.rst +++ b/Doc/installing/index.rst @@ -214,7 +214,7 @@ It is possible that ``pip`` does not get installed by default. One potential fix python -m ensurepip --default-pip There are also additional resources for `installing pip. -<https://packaging.python.org/en/latest/tutorials/installing-packages/#ensure-pip-setuptools-and-wheel-are-up-to-date>`__ +<https://packaging.python.org/tutorials/installing-packages/#install-pip-setuptools-and-wheel>`__ Installing binary extensions diff --git a/Doc/library/2to3.rst b/Doc/library/2to3.rst index d85ad94e9b7fe4..fce02e28009330 100644 --- a/Doc/library/2to3.rst +++ b/Doc/library/2to3.rst @@ -1,7 +1,7 @@ .. _2to3-reference: -2to3 --- Automated Python 2 to 3 code translation -================================================= +2to3 - Automated Python 2 to 3 code translation +=============================================== .. sectionauthor:: Benjamin Peterson <benjamin@python.org> @@ -456,8 +456,8 @@ and off individually. They are described here in more detail. ``from future_builtins import zip`` appears. -:mod:`lib2to3` --- 2to3's library ---------------------------------- +:mod:`lib2to3` - 2to3's library +------------------------------- .. module:: lib2to3 :synopsis: The 2to3 library diff --git a/Doc/library/_thread.rst b/Doc/library/_thread.rst index d61ce9039349db..75b3834b9a339c 100644 --- a/Doc/library/_thread.rst +++ b/Doc/library/_thread.rst @@ -140,9 +140,7 @@ This module defines the following constants and functions: information (4 KiB pages are common; using multiples of 4096 for the stack size is the suggested approach in the absence of more specific information). - .. availability:: Windows, pthreads. - - Unix platforms with POSIX threads support. + .. availability:: Windows, systems with POSIX threads. .. data:: TIMEOUT_MAX diff --git a/Doc/library/argparse.rst b/Doc/library/argparse.rst index b2fa0b3c23c3a1..0e62e99d706d4c 100644 --- a/Doc/library/argparse.rst +++ b/Doc/library/argparse.rst @@ -562,7 +562,7 @@ at the command line. If the ``fromfile_prefix_chars=`` argument is given to the specified characters will be treated as files, and will be replaced by the arguments they contain. For example:: - >>> with open('args.txt', 'w', encoding=sys.getfilesystemencoding()) as fp: + >>> with open('args.txt', 'w') as fp: ... fp.write('-f\nbar') >>> parser = argparse.ArgumentParser(fromfile_prefix_chars='@') >>> parser.add_argument('-f') @@ -575,18 +575,9 @@ were in the same place as the original file referencing argument on the command line. So in the example above, the expression ``['-f', 'foo', '@args.txt']`` is considered equivalent to the expression ``['-f', 'foo', '-f', 'bar']``. -:class:`ArgumentParser` uses :term:`filesystem encoding and error handler` -to read the file containing arguments. - The ``fromfile_prefix_chars=`` argument defaults to ``None``, meaning that arguments will never be treated as file references. -.. versionchanged:: 3.12 - :class:`ArgumentParser` changed encoding and errors to read arguments files - from default (e.g. :func:`locale.getpreferredencoding(False)` and - ``"strict"``) to :term:`filesystem encoding and error handler`. - Arguments file should be encoded in UTF-8 instead of ANSI Codepage on Windows. - argument_default ^^^^^^^^^^^^^^^^ diff --git a/Doc/library/array.rst b/Doc/library/array.rst index 975670cc81a202..c7f137d15b4b86 100644 --- a/Doc/library/array.rst +++ b/Doc/library/array.rst @@ -52,7 +52,7 @@ Notes: .. versionchanged:: 3.9 ``array('u')`` now uses ``wchar_t`` as C type instead of deprecated - ``Py_UNICODE``. This change doesn't affect its behavior because + ``Py_UNICODE``. This change doesn't affect to its behavior because ``Py_UNICODE`` is alias of ``wchar_t`` since Python 3.3. .. deprecated-removed:: 3.3 4.0 diff --git a/Doc/library/ast.rst b/Doc/library/ast.rst index 9aa545d82007fa..b10aa7cd50d173 100644 --- a/Doc/library/ast.rst +++ b/Doc/library/ast.rst @@ -45,7 +45,7 @@ Node classes This is the base of all AST node classes. The actual node classes are derived from the :file:`Parser/Python.asdl` file, which is reproduced - :ref:`above <abstract-grammar>`. They are defined in the :mod:`_ast` C + :ref:`below <abstract-grammar>`. They are defined in the :mod:`_ast` C module and re-exported in :mod:`ast`. There is one class defined for each left-hand side symbol in the abstract @@ -1028,11 +1028,10 @@ Control flow .. class:: For(target, iter, body, orelse, type_comment) A ``for`` loop. ``target`` holds the variable(s) the loop assigns to, as a - single :class:`Name`, :class:`Tuple`, :class:`List`, :class:`Attribute` or - :class:`Subscript` node. ``iter`` holds the item to be looped over, again - as a single node. ``body`` and ``orelse`` contain lists of nodes to execute. - Those in ``orelse`` are executed if the loop finishes normally, rather than - via a ``break`` statement. + single :class:`Name`, :class:`Tuple` or :class:`List` node. ``iter`` holds + the item to be looped over, again as a single node. ``body`` and ``orelse`` + contain lists of nodes to execute. Those in ``orelse`` are executed if the + loop finishes normally, rather than via a ``break`` statement. .. attribute:: type_comment @@ -1951,7 +1950,7 @@ and classes for traversing abstract syntax trees: If source contains a null character ('\0'), :exc:`ValueError` is raised. - .. warning:: + .. warning:: Note that successfully parsing source code into an AST object doesn't guarantee that the source code provided is valid Python code that can be executed as the compilation step can raise further :exc:`SyntaxError` diff --git a/Doc/library/asynchat.rst b/Doc/library/asynchat.rst index 32e04ad6d19533..4eb6a79d4dfbf2 100644 --- a/Doc/library/asynchat.rst +++ b/Doc/library/asynchat.rst @@ -34,7 +34,6 @@ Typically an :class:`asyncore.dispatcher` server channel generates new :class:`asynchat.async_chat` channel objects as it receives incoming connection requests. -.. include:: ../includes/wasm-notavail.rst .. class:: async_chat() @@ -126,7 +125,7 @@ connection requests. .. method:: async_chat.push_with_producer(producer) Takes a producer object and adds it to the producer queue associated with - the channel. When all currently pushed producers have been exhausted the + the channel. When all currently-pushed producers have been exhausted the channel will consume this producer's data by calling its :meth:`more` method and send the data to the remote endpoint. diff --git a/Doc/library/asyncio-api-index.rst b/Doc/library/asyncio-api-index.rst index 54c1cd6582e494..a4e38e469d82f0 100644 --- a/Doc/library/asyncio-api-index.rst +++ b/Doc/library/asyncio-api-index.rst @@ -21,25 +21,8 @@ await on multiple things with timeouts. * - :func:`run` - Create event loop, run a coroutine, close the loop. - * - :class:`Runner` - - A context manager that simplifies multiple async function calls. - - * - :class:`Task` - - Task object. - - * - :class:`TaskGroup` - - A context manager that holds a group of tasks. Provides - a convenient and reliable way to wait for all tasks in the group to - finish. - * - :func:`create_task` - - Start an asyncio Task, then returns it. - - * - :func:`current_task` - - Return the current Task. - - * - :func:`all_tasks` - - Return all tasks that are not yet finished for an event loop. + - Start an asyncio Task. * - ``await`` :func:`sleep` - Sleep for a number of seconds. @@ -56,8 +39,14 @@ await on multiple things with timeouts. * - ``await`` :func:`wait` - Monitor for completion. - * - :func:`timeout` - - Run with a timeout. Useful in cases when `wait_for` is not suitable. + * - :func:`current_task` + - Return the current Task. + + * - :func:`all_tasks` + - Return all tasks for an event loop. + + * - :class:`Task` + - Task object. * - :func:`to_thread` - Asynchronously run a function in a separate OS thread. diff --git a/Doc/library/asyncio-eventloop.rst b/Doc/library/asyncio-eventloop.rst index ef0f6fc8e68cd4..4f0f8c06fee787 100644 --- a/Doc/library/asyncio-eventloop.rst +++ b/Doc/library/asyncio-eventloop.rst @@ -332,7 +332,7 @@ Creating Futures and Tasks .. method:: loop.create_task(coro, *, name=None, context=None) - Schedule the execution of :ref:`coroutine <coroutine>` *coro*. + Schedule the execution of a :ref:`coroutine`. Return a :class:`Task` object. Third-party event loops can use their own subclass of :class:`Task` @@ -377,8 +377,7 @@ Opening network connections local_addr=None, server_hostname=None, \ ssl_handshake_timeout=None, \ ssl_shutdown_timeout=None, \ - happy_eyeballs_delay=None, interleave=None, \ - all_errors=False) + happy_eyeballs_delay=None, interleave=None) Open a streaming transport connection to a given address specified by *host* and *port*. @@ -469,14 +468,6 @@ Opening network connections to complete before aborting the connection. ``30.0`` seconds if ``None`` (default). - * *all_errors* determines what exceptions are raised when a connection cannot - be created. By default, only a single ``Exception`` is raised: the first - exception if there is only one or all errors have same message, or a single - ``OSError`` with the error messages combined. When ``all_errors`` is ``True``, - an ``ExceptionGroup`` will be raised containing all exceptions (even if there - is only one). - - .. versionchanged:: 3.5 Added support for SSL/TLS in :class:`ProactorEventLoop`. @@ -509,9 +500,6 @@ Opening network connections Added the *ssl_shutdown_timeout* parameter. - .. versionchanged:: 3.12 - *all_errors* was added. - .. seealso:: The :func:`open_connection` function is a high-level alternative @@ -1675,7 +1663,7 @@ event loop:: print('Hello World') loop.stop() - loop = asyncio.new_event_loop() + loop = asyncio.get_event_loop() # Schedule a call to hello_world() loop.call_soon(hello_world, loop) @@ -1711,7 +1699,7 @@ after 5 seconds, and then stops the event loop:: else: loop.stop() - loop = asyncio.new_event_loop() + loop = asyncio.get_event_loop() # Schedule the first call to display_date() end_time = loop.time() + 5.0 @@ -1743,7 +1731,7 @@ Wait until a file descriptor received some data using the # Create a pair of connected file descriptors rsock, wsock = socketpair() - loop = asyncio.new_event_loop() + loop = asyncio.get_event_loop() def reader(): data = rsock.recv(100) diff --git a/Doc/library/asyncio-extending.rst b/Doc/library/asyncio-extending.rst index 8ffd356f2d1cc3..acbaa6f7faf745 100644 --- a/Doc/library/asyncio-extending.rst +++ b/Doc/library/asyncio-extending.rst @@ -63,6 +63,12 @@ For this purpose the following, *private* constructors are listed: *context* argument is added. +.. method:: Task._check_future(future) + + Return ``True`` if *future* is attached to the same loop as the task, ``False`` + otherwise. + + .. versionadded:: 3.11 Task lifetime support diff --git a/Doc/library/asyncio-future.rst b/Doc/library/asyncio-future.rst index 99a5d3a8287bf7..f74f2e6f8935ea 100644 --- a/Doc/library/asyncio-future.rst +++ b/Doc/library/asyncio-future.rst @@ -55,7 +55,7 @@ Future Functions preferred way for creating new Tasks. Save a reference to the result of this function, to avoid - a task disappearing mid-execution. + a task disappearing mid execution. .. versionchanged:: 3.5.1 The function accepts any :term:`awaitable` object. diff --git a/Doc/library/asyncio-llapi-index.rst b/Doc/library/asyncio-llapi-index.rst index 3cec4c69f86ea7..69b550e43f5aa9 100644 --- a/Doc/library/asyncio-llapi-index.rst +++ b/Doc/library/asyncio-llapi-index.rst @@ -267,7 +267,7 @@ See also the main documentation section about the .. rubric:: Examples -* :ref:`Using asyncio.new_event_loop() and loop.run_forever() +* :ref:`Using asyncio.get_event_loop() and loop.run_forever() <asyncio_example_lowlevel_helloworld>`. * :ref:`Using loop.call_later() <asyncio_example_call_later>`. @@ -358,10 +358,6 @@ pipes, etc). Returned from methods like * - :meth:`transport.get_write_buffer_size() <WriteTransport.get_write_buffer_size>` - - Return the current size of the output buffer. - - * - :meth:`transport.get_write_buffer_limits() - <WriteTransport.get_write_buffer_limits>` - Return high and low water marks for write flow control. * - :meth:`transport.set_write_buffer_limits() diff --git a/Doc/library/asyncio-runner.rst b/Doc/library/asyncio-runner.rst index 4abe7b6e087a60..d0df1db892f9ec 100644 --- a/Doc/library/asyncio-runner.rst +++ b/Doc/library/asyncio-runner.rst @@ -75,9 +75,7 @@ Runner context manager :ref:`asyncio-debug-mode` settings. *loop_factory* could be used for overriding the loop creation. - It is the responsibility of the *loop_factory* to set the created loop as the - current one. By default :func:`asyncio.new_event_loop` is used and set as - current event loop with :func:`asyncio.set_event_loop` if *loop_factory* is ``None``. + :func:`asyncio.new_event_loop` is used if ``None``. Basically, :func:`asyncio.run()` example can be rewritten with the runner usage:: diff --git a/Doc/library/asyncio-stream.rst b/Doc/library/asyncio-stream.rst index 9b468670a2521e..97431d103cf4ba 100644 --- a/Doc/library/asyncio-stream.rst +++ b/Doc/library/asyncio-stream.rst @@ -192,7 +192,7 @@ StreamReader can be read. Use the :attr:`IncompleteReadError.partial` attribute to get the partially read data. - .. coroutinemethod:: readuntil(separator=b'\n') + .. coroutinemethod:: readuntil(separator=b'\\n') Read data from the stream until *separator* is found. diff --git a/Doc/library/asyncio-sync.rst b/Doc/library/asyncio-sync.rst index 05bdf5488af143..141733ee2c8001 100644 --- a/Doc/library/asyncio-sync.rst +++ b/Doc/library/asyncio-sync.rst @@ -345,7 +345,7 @@ BoundedSemaphore Barrier ======= -.. class:: Barrier(parties) +.. class:: Barrier(parties, action=None) A barrier object. Not thread-safe. @@ -411,8 +411,8 @@ Barrier ... async with barrier as position: if position == 0: - # Only one task prints this - print('End of *draining phase*') + # Only one task print this + print('End of *draining phasis*') This method may raise a :class:`BrokenBarrierError` exception if the barrier is broken or reset while a task is waiting. @@ -429,7 +429,7 @@ Barrier Put the barrier into a broken state. This causes any active or future calls to :meth:`wait` to fail with the :class:`BrokenBarrierError`. - Use this for example if one of the tasks needs to abort, to avoid infinite + Use this for example if one of the taks needs to abort, to avoid infinite waiting tasks. .. attribute:: parties diff --git a/Doc/library/asyncio-task.rst b/Doc/library/asyncio-task.rst index 221197ea40ffd9..8e3d49dcf9d717 100644 --- a/Doc/library/asyncio-task.rst +++ b/Doc/library/asyncio-task.rst @@ -40,7 +40,7 @@ be executed:: >>> main() <coroutine object main at 0x1053bb7c8> -To actually run a coroutine, asyncio provides the following mechanisms: +To actually run a coroutine, asyncio provides three main mechanisms: * The :func:`asyncio.run` function to run the top-level entry point "main()" function (see the above example.) @@ -103,29 +103,6 @@ To actually run a coroutine, asyncio provides the following mechanisms: world finished at 17:14:34 -* The :class:`asyncio.TaskGroup` class provides a more modern - alternative to :func:`create_task`. - Using this API, the last example becomes:: - - async def main(): - async with asyncio.TaskGroup() as tg: - task1 = tg.create_task( - say_after(1, 'hello')) - - task2 = tg.create_task( - say_after(2, 'world')) - - print(f"started at {time.strftime('%X')}") - - # The wait is implicit when the context manager exits. - - print(f"finished at {time.strftime('%X')}") - - The timing and output should be the same as for the previous version. - - .. versionadded:: 3.11 - :class:`asyncio.TaskGroup`. - .. _asyncio-awaitables: @@ -246,32 +223,10 @@ Creating Tasks :exc:`RuntimeError` is raised if there is no running loop in current thread. - .. note:: - - :meth:`asyncio.TaskGroup.create_task` is a newer alternative - that allows for convenient waiting for a group of related tasks. - .. important:: Save a reference to the result of this function, to avoid - a task disappearing mid-execution. The event loop only keeps - weak references to tasks. A task that isn't referenced elsewhere - may get garbage collected at any time, even before it's done. - For reliable "fire-and-forget" background tasks, gather them in - a collection:: - - background_tasks = set() - - for i in range(10): - task = asyncio.create_task(some_coro(param=i)) - - # Add task to the set. This creates a strong reference. - background_tasks.add(task) - - # To prevent keeping references to finished tasks forever, - # make each task remove its own reference from the set after - # completion: - task.add_done_callback(background_tasks.discard) + a task disappearing mid execution. .. versionadded:: 3.7 @@ -282,95 +237,6 @@ Creating Tasks Added the *context* parameter. -Task Cancellation -================= - -Tasks can easily and safely be cancelled. -When a task is cancelled, :exc:`asyncio.CancelledError` will be raised -in the task at the next opportunity. - -It is recommended that coroutines use ``try/finally`` blocks to robustly -perform clean-up logic. In case :exc:`asyncio.CancelledError` -is explicitly caught, it should generally be propagated when -clean-up is complete. Most code can safely ignore :exc:`asyncio.CancelledError`. - -Important asyncio components, like :class:`asyncio.TaskGroup` and the -:func:`asyncio.timeout` context manager, are implemented using cancellation -internally and might misbehave if a coroutine swallows -:exc:`asyncio.CancelledError`. - - -Task Groups -=========== - -Task groups combine a task creation API with a convenient -and reliable way to wait for all tasks in the group to finish. - -.. class:: TaskGroup() - - An :ref:`asynchronous context manager <async-context-managers>` - holding a group of tasks. - Tasks can be added to the group using :meth:`create_task`. - All tasks are awaited when the context manager exits. - - .. versionadded:: 3.11 - - .. method:: create_task(coro, *, name=None, context=None) - - Create a task in this task group. - The signature matches that of :func:`asyncio.create_task`. - -Example:: - - async def main(): - async with asyncio.TaskGroup() as tg: - task1 = tg.create_task(some_coro(...)) - task2 = tg.create_task(another_coro(...)) - print("Both tasks have completed now.") - -The ``async with`` statement will wait for all tasks in the group to finish. -While waiting, new tasks may still be added to the group -(for example, by passing ``tg`` into one of the coroutines -and calling ``tg.create_task()`` in that coroutine). -Once the last task has finished and the ``async with`` block is exited, -no new tasks may be added to the group. - -The first time any of the tasks belonging to the group fails -with an exception other than :exc:`asyncio.CancelledError`, -the remaining tasks in the group are cancelled. -No further tasks can then be added to the group. -At this point, if the body of the ``async with`` statement is still active -(i.e., :meth:`~object.__aexit__` hasn't been called yet), -the task directly containing the ``async with`` statement is also cancelled. -The resulting :exc:`asyncio.CancelledError` will interrupt an ``await``, -but it will not bubble out of the containing ``async with`` statement. - -Once all tasks have finished, if any tasks have failed -with an exception other than :exc:`asyncio.CancelledError`, -those exceptions are combined in an -:exc:`ExceptionGroup` or :exc:`BaseExceptionGroup` -(as appropriate; see their documentation) -which is then raised. - -Two base exceptions are treated specially: -If any task fails with :exc:`KeyboardInterrupt` or :exc:`SystemExit`, -the task group still cancels the remaining tasks and waits for them, -but then the initial :exc:`KeyboardInterrupt` or :exc:`SystemExit` -is re-raised instead of :exc:`ExceptionGroup` or :exc:`BaseExceptionGroup`. - -If the body of the ``async with`` statement exits with an exception -(so :meth:`~object.__aexit__` is called with an exception set), -this is treated the same as if one of the tasks failed: -the remaining tasks are cancelled and then waited for, -and non-cancellation exceptions are grouped into an -exception group and raised. -The exception passed into :meth:`~object.__aexit__`, -unless it is :exc:`asyncio.CancelledError`, -is also included in the exception group. -The same special case is made for -:exc:`KeyboardInterrupt` and :exc:`SystemExit` as in the previous paragraph. - - Sleeping ======== @@ -444,9 +310,8 @@ Running Tasks Concurrently cancellation of one submitted Task/Future to cause other Tasks/Futures to be cancelled. - .. note:: - A more modern way to create and run tasks concurrently and - wait for their completion is :class:`asyncio.TaskGroup`. + .. versionchanged:: 3.10 + Removed the *loop* parameter. .. _asyncio_example_gather: @@ -520,8 +385,7 @@ Shielding From Cancellation The statement:: - task = asyncio.create_task(something()) - res = await shield(task) + res = await shield(something()) is equivalent to:: @@ -540,19 +404,11 @@ Shielding From Cancellation the ``shield()`` function should be combined with a try/except clause, as follows:: - task = asyncio.create_task(something()) try: - res = await shield(task) + res = await shield(something()) except CancelledError: res = None - .. important:: - - Save a reference to tasks passed to this function, to avoid - a task disappearing mid-execution. The event loop only keeps - weak references to tasks. A task that isn't referenced elsewhere - may get garbage collected at any time, even before it's done. - .. versionchanged:: 3.10 Removed the *loop* parameter. @@ -564,125 +420,6 @@ Shielding From Cancellation Timeouts ======== -.. coroutinefunction:: timeout(delay) - - An :ref:`asynchronous context manager <async-context-managers>` - that can be used to limit the amount of time spent waiting on - something. - - *delay* can either be ``None``, or a float/int number of - seconds to wait. If *delay* is ``None``, no time limit will - be applied; this can be useful if the delay is unknown when - the context manager is created. - - In either case, the context manager can be rescheduled after - creation using :meth:`Timeout.reschedule`. - - Example:: - - async def main(): - async with asyncio.timeout(10): - await long_running_task() - - If ``long_running_task`` takes more than 10 seconds to complete, - the context manager will cancel the current task and handle - the resulting :exc:`asyncio.CancelledError` internally, transforming it - into an :exc:`asyncio.TimeoutError` which can be caught and handled. - - .. note:: - - The :func:`asyncio.timeout` context manager is what transforms - the :exc:`asyncio.CancelledError` into an :exc:`asyncio.TimeoutError`, - which means the :exc:`asyncio.TimeoutError` can only be caught - *outside* of the context manager. - - Example of catching :exc:`asyncio.TimeoutError`:: - - async def main(): - try: - async with asyncio.timeout(10): - await long_running_task() - except TimeoutError: - print("The long operation timed out, but we've handled it.") - - print("This statement will run regardless.") - - The context manager produced by :func:`asyncio.timeout` can be - rescheduled to a different deadline and inspected. - - .. class:: Timeout() - - An :ref:`asynchronous context manager <async-context-managers>` - that limits time spent inside of it. - - .. versionadded:: 3.11 - - .. method:: when() -> float | None - - Return the current deadline, or ``None`` if the current - deadline is not set. - - The deadline is a float, consistent with the time returned by - :meth:`loop.time`. - - .. method:: reschedule(when: float | None) - - Change the time the timeout will trigger. - - If *when* is `None`, any current deadline will be removed, and the - context manager will wait indefinitely. - - If *when* is a float, it is set as the new deadline. - - if *when* is in the past, the timeout will trigger on the next - iteration of the event loop. - - .. method:: expired() -> bool - - Return whether the context manager has exceeded its deadline - (expired). - - Example:: - - async def main(): - try: - # We do not know the timeout when starting, so we pass ``None``. - async with asyncio.timeout(None) as cm: - # We know the timeout now, so we reschedule it. - new_deadline = get_running_loop().time() + 10 - cm.reschedule(new_deadline) - - await long_running_task() - except TimeoutError: - pass - - if cm.expired: - print("Looks like we haven't finished on time.") - - Timeout context managers can be safely nested. - - .. versionadded:: 3.11 - -.. coroutinefunction:: timeout_at(when) - - Similar to :func:`asyncio.timeout`, except *when* is the absolute time - to stop waiting, or ``None``. - - Example:: - - async def main(): - loop = get_running_loop() - deadline = loop.time() + 20 - try: - async with asyncio.timeout_at(deadline): - await long_running_task() - except TimeoutError: - print("The long operation timed out, but we've handled it.") - - print("This statement will run regardless.") - - .. versionadded:: 3.11 - .. coroutinefunction:: wait_for(aw, timeout) Wait for the *aw* :ref:`awaitable <asyncio-awaitables>` diff --git a/Doc/library/asyncio.rst b/Doc/library/asyncio.rst index b71006e32b2b89..66c7c4c24a9183 100644 --- a/Doc/library/asyncio.rst +++ b/Doc/library/asyncio.rst @@ -56,7 +56,6 @@ Additionally, there are **low-level** APIs for * :ref:`bridge <asyncio-futures>` callback-based libraries and code with async/await syntax. -.. include:: ../includes/wasm-notavail.rst .. We use the "rubric" directive here to avoid creating the "Reference" subsection in the TOC. diff --git a/Doc/library/asyncore.rst b/Doc/library/asyncore.rst index a3a4e90d05277e..0084d754419d09 100644 --- a/Doc/library/asyncore.rst +++ b/Doc/library/asyncore.rst @@ -28,8 +28,6 @@ This module provides the basic infrastructure for writing asynchronous socket service clients and servers. -.. include:: ../includes/wasm-notavail.rst - There are only two ways to have a program on a single processor do "more than one thing at a time." Multi-threaded programming is the simplest and most popular way to do it, but there is another very different technique, that lets diff --git a/Doc/library/base64.rst b/Doc/library/base64.rst index a02ba739146aaf..4ff038c8d29f1a 100644 --- a/Doc/library/base64.rst +++ b/Doc/library/base64.rst @@ -201,7 +201,7 @@ The modern interface provides: .. versionadded:: 3.4 -.. function:: a85decode(b, *, foldspaces=False, adobe=False, ignorechars=b' \t\n\r\v') +.. function:: a85decode(b, *, foldspaces=False, adobe=False, ignorechars=b' \\t\\n\\r\\v') Decode the Ascii85 encoded :term:`bytes-like object` or ASCII string *b* and return the decoded :class:`bytes`. diff --git a/Doc/library/bdb.rst b/Doc/library/bdb.rst index 7b74bbd652be38..7e4066cd436ad5 100644 --- a/Doc/library/bdb.rst +++ b/Doc/library/bdb.rst @@ -20,21 +20,20 @@ The following exception is defined: The :mod:`bdb` module also defines two classes: -.. class:: Breakpoint(self, file, line, temporary=False, cond=None, funcname=None) +.. class:: Breakpoint(self, file, line, temporary=0, cond=None, funcname=None) This class implements temporary breakpoints, ignore counts, disabling and (re-)enabling, and conditionals. Breakpoints are indexed by number through a list called :attr:`bpbynumber` - and by ``(file, line)`` pairs through :attr:`bplist`. The former points to - a single instance of class :class:`Breakpoint`. The latter points to a list - of such instances since there may be more than one breakpoint per line. + and by ``(file, line)`` pairs through :attr:`bplist`. The former points to a + single instance of class :class:`Breakpoint`. The latter points to a list of + such instances since there may be more than one breakpoint per line. - When creating a breakpoint, its associated :attr:`file name <file>` should - be in canonical form. If a :attr:`funcname` is defined, a breakpoint - :attr:`hit <hits>` will be counted when the first line of that function is - executed. A :attr:`conditional <cond>` breakpoint always counts a - :attr:`hit <hits>`. + When creating a breakpoint, its associated filename should be in canonical + form. If a *funcname* is defined, a breakpoint hit will be counted when the + first line of that function is executed. A conditional breakpoint always + counts a hit. :class:`Breakpoint` instances have the following methods: @@ -60,12 +59,12 @@ The :mod:`bdb` module also defines two classes: Return a string with all the information about the breakpoint, nicely formatted: - * Breakpoint number. - * Temporary status (del or keep). - * File/line position. - * Break condition. - * Number of times to ignore. - * Number of times hit. + * The breakpoint number. + * If it is temporary or not. + * Its file,line position. + * The condition that causes a break. + * If it must be ignored the next N times. + * The breakpoint hit count. .. versionadded:: 3.2 @@ -74,49 +73,6 @@ The :mod:`bdb` module also defines two classes: Print the output of :meth:`bpformat` to the file *out*, or if it is ``None``, to standard output. - :class:`Breakpoint` instances have the following attributes: - - .. attribute:: file - - File name of the :class:`Breakpoint`. - - .. attribute:: line - - Line number of the :class:`Breakpoint` within :attr:`file`. - - .. attribute:: temporary - - True if a :class:`Breakpoint` at (file, line) is temporary. - - .. attribute:: cond - - Condition for evaluating a :class:`Breakpoint` at (file, line). - - .. attribute:: funcname - - Function name that defines whether a :class:`Breakpoint` is hit upon - entering the function. - - .. attribute:: enabled - - True if :class:`Breakpoint` is enabled. - - .. attribute:: bpbynumber - - Numeric index for a single instance of a :class:`Breakpoint`. - - .. attribute:: bplist - - Dictionary of :class:`Breakpoint` instances indexed by - (:attr:`file`, :attr:`line`) tuples. - - .. attribute:: ignore - - Number of times to ignore a :class:`Breakpoint`. - - .. attribute:: hits - - Count of the number of times a :class:`Breakpoint` has been hit. .. class:: Bdb(skip=None) @@ -139,12 +95,9 @@ The :mod:`bdb` module also defines two classes: .. method:: canonic(filename) - Return canonical form of *filename*. - - For real file names, the canonical form is an operating-system-dependent, - :func:`case-normalized <os.path.normcase>` :func:`absolute path - <os.path.abspath>`. A *filename* with angle brackets, such as `"<stdin>"` - generated in interactive mode, is returned unchanged. + Auxiliary method for getting a filename in a canonical form, that is, as a + case-normalized (on case-insensitive filesystems) absolute path, stripped + of surrounding angle brackets. .. method:: reset() @@ -213,46 +166,45 @@ The :mod:`bdb` module also defines two classes: Normally derived classes don't override the following methods, but they may if they want to redefine the definition of stopping and breakpoints. - .. method:: is_skipped_line(module_name) - - Return True if *module_name* matches any skip pattern. - .. method:: stop_here(frame) - Return True if *frame* is below the starting frame in the stack. + This method checks if the *frame* is somewhere below :attr:`botframe` in + the call stack. :attr:`botframe` is the frame in which debugging started. .. method:: break_here(frame) - Return True if there is an effective breakpoint for this line. - - Check whether a line or function breakpoint exists and is in effect. Delete temporary - breakpoints based on information from :func:`effective`. + This method checks if there is a breakpoint in the filename and line + belonging to *frame* or, at least, in the current function. If the + breakpoint is a temporary one, this method deletes it. .. method:: break_anywhere(frame) - Return True if any breakpoint exists for *frame*'s filename. + This method checks if there is a breakpoint in the filename of the current + frame. Derived classes should override these methods to gain control over debugger operation. .. method:: user_call(frame, argument_list) - Called from :meth:`dispatch_call` if a break might stop inside the - called function. + This method is called from :meth:`dispatch_call` when there is the + possibility that a break might be necessary anywhere inside the called + function. .. method:: user_line(frame) - Called from :meth:`dispatch_line` when either :meth:`stop_here` or - :meth:`break_here` returns ``True``. + This method is called from :meth:`dispatch_line` when either + :meth:`stop_here` or :meth:`break_here` yields ``True``. .. method:: user_return(frame, return_value) - Called from :meth:`dispatch_return` when :meth:`stop_here` returns ``True``. + This method is called from :meth:`dispatch_return` when :meth:`stop_here` + yields ``True``. .. method:: user_exception(frame, exc_info) - Called from :meth:`dispatch_exception` when :meth:`stop_here` - returns ``True``. + This method is called from :meth:`dispatch_exception` when + :meth:`stop_here` yields ``True``. .. method:: do_clear(arg) @@ -276,9 +228,9 @@ The :mod:`bdb` module also defines two classes: Stop when returning from the given frame. - .. method:: set_until(frame, lineno=None) + .. method:: set_until(frame) - Stop when the line with the *lineno* greater than the current one is + Stop when the line with the line no greater than the current one is reached or when returning from current frame. .. method:: set_trace([frame]) @@ -301,7 +253,7 @@ The :mod:`bdb` module also defines two classes: breakpoints. These methods return a string containing an error message if something went wrong, or ``None`` if all is well. - .. method:: set_break(filename, lineno, temporary=False, cond=None, funcname=None) + .. method:: set_break(filename, lineno, temporary=0, cond, funcname) Set a new breakpoint. If the *lineno* line doesn't exist for the *filename* passed as argument, return an error message. The *filename* @@ -309,8 +261,8 @@ The :mod:`bdb` module also defines two classes: .. method:: clear_break(filename, lineno) - Delete the breakpoints in *filename* and *lineno*. If none were set, - return an error message. + Delete the breakpoints in *filename* and *lineno*. If none were set, an + error message is returned. .. method:: clear_bpbynumber(arg) @@ -320,13 +272,12 @@ The :mod:`bdb` module also defines two classes: .. method:: clear_all_file_breaks(filename) - Delete all breakpoints in *filename*. If none were set, return an error - message. + Delete all breakpoints in *filename*. If none were set, an error message + is returned. .. method:: clear_all_breaks() - Delete all existing breakpoints. If none were set, return an error - message. + Delete all existing breakpoints. .. method:: get_bpbynumber(arg) @@ -339,7 +290,7 @@ The :mod:`bdb` module also defines two classes: .. method:: get_break(filename, lineno) - Return True if there is a breakpoint for *lineno* in *filename*. + Check if there is a breakpoint for *lineno* of *filename*. .. method:: get_breaks(filename, lineno) @@ -360,18 +311,16 @@ The :mod:`bdb` module also defines two classes: .. method:: get_stack(f, t) - Return a list of (frame, lineno) tuples in a stack trace, and a size. - - The most recently called frame is last in the list. The size is the number - of frames below the frame where the debugger was invoked. + Get a list of records for a frame and all higher (calling) and lower + frames, and the size of the higher part. .. method:: format_stack_entry(frame_lineno, lprefix=': ') - Return a string with information about a stack entry, which is a - ``(frame, lineno)`` tuple. The return string contains: + Return a string with information about a stack entry, identified by a + ``(frame, lineno)`` tuple: - * The canonical filename which contains the frame. - * The function name or ``"<lambda>"``. + * The canonical form of the filename which contains the frame. + * The function name, or ``"<lambda>"``. * The input arguments. * The return value. * The line of code (if it exists). @@ -403,34 +352,20 @@ Finally, the module defines the following functions: .. function:: checkfuncname(b, frame) - Return True if we should break here, depending on the way the - :class:`Breakpoint` *b* was set. + Check whether we should break here, depending on the way the breakpoint *b* + was set. - If it was set via line number, it checks if - :attr:`b.line <bdb.Breakpoint.line>` is the same as the one in *frame*. - If the breakpoint was set via - :attr:`function name <bdb.Breakpoint.funcname>`, we have to check we are in - the right *frame* (the right function) and if we are on its first executable - line. + If it was set via line number, it checks if ``b.line`` is the same as the one + in the frame also passed as argument. If the breakpoint was set via function + name, we have to check we are in the right frame (the right function) and if + we are in its first executable line. .. function:: effective(file, line, frame) - Return ``(active breakpoint, delete temporary flag)`` or ``(None, None)`` as the - breakpoint to act upon. - - The *active breakpoint* is the first entry in - :attr:`bplist <bdb.Breakpoint.bplist>` for the - (:attr:`file <bdb.Breakpoint.file>`, :attr:`line <bdb.Breakpoint.line>`) - (which must exist) that is :attr:`enabled <bdb.Breakpoint.enabled>`, for - which :func:`checkfuncname` is True, and that has neither a False - :attr:`condition <bdb.Breakpoint.cond>` nor positive - :attr:`ignore <bdb.Breakpoint.ignore>` count. The *flag*, meaning that a - temporary breakpoint should be deleted, is False only when the - :attr:`cond <bdb.Breakpoint.cond>` cannot be evaluated (in which case, - :attr:`ignore <bdb.Breakpoint.ignore>` count is ignored). - - If no such entry exists, then (None, None) is returned. - + Determine if there is an effective (active) breakpoint at this line of code. + Return a tuple of the breakpoint and a boolean that indicates if it is ok + to delete a temporary breakpoint. Return ``(None, None)`` if there is no + matching breakpoint. .. function:: set_trace() diff --git a/Doc/library/bisect.rst b/Doc/library/bisect.rst index 7856bf67a7b829..513675d3685a52 100644 --- a/Doc/library/bisect.rst +++ b/Doc/library/bisect.rst @@ -13,16 +13,10 @@ This module provides support for maintaining a list in sorted order without having to sort the list after each insertion. For long lists of items with -expensive comparison operations, this can be an improvement over -linear searches or frequent resorting. - -The module is called :mod:`bisect` because it uses a basic bisection -algorithm to do its work. Unlike other bisection tools that search for a -specific value, the functions in this module are designed to locate an -insertion point. Accordingly, the functions never call an :meth:`__eq__` -method to determine whether a value has been found. Instead, the -functions only call the :meth:`__lt__` method and will return an insertion -point between values in an array. +expensive comparison operations, this can be an improvement over the more common +approach. The module is called :mod:`bisect` because it uses a basic bisection +algorithm to do its work. The source code may be most useful as a working +example of the algorithm (the boundary conditions are already right!). The following functions are provided: @@ -36,17 +30,16 @@ The following functions are provided: any existing entries. The return value is suitable for use as the first parameter to ``list.insert()`` assuming that *a* is already sorted. - The returned insertion point *ip* partitions the array *a* into two - slices such that ``all(elem < x for elem in a[lo : ip])`` is true for the - left slice and ``all(elem >= x for elem in a[ip : hi])`` is true for the - right slice. + The returned insertion point *i* partitions the array *a* into two halves so + that ``all(val < x for val in a[lo : i])`` for the left side and + ``all(val >= x for val in a[i : hi])`` for the right side. *key* specifies a :term:`key function` of one argument that is used to extract a comparison key from each element in the array. To support searching complex records, the key function is not applied to the *x* value. - If *key* is ``None``, the elements are compared directly and - no key function is called. + If *key* is ``None``, the elements are compared directly with no + intervening function call. .. versionchanged:: 3.10 Added the *key* parameter. @@ -58,9 +51,16 @@ The following functions are provided: Similar to :func:`bisect_left`, but returns an insertion point which comes after (to the right of) any existing entries of *x* in *a*. - The returned insertion point *ip* partitions the array *a* into two slices - such that ``all(elem <= x for elem in a[lo : ip])`` is true for the left slice and - ``all(elem > x for elem in a[ip : hi])`` is true for the right slice. + The returned insertion point *i* partitions the array *a* into two halves so + that ``all(val <= x for val in a[lo : i])`` for the left side and + ``all(val > x for val in a[i : hi])`` for the right side. + + *key* specifies a :term:`key function` of one argument that is used to + extract a comparison key from each element in the array. To support + searching complex records, the key function is not applied to the *x* value. + + If *key* is ``None``, the elements are compared directly with no + intervening function call. .. versionchanged:: 3.10 Added the *key* parameter. @@ -216,7 +216,7 @@ records in a table:: ... Movie('Aliens', 1986, 'Scott') ... ] - >>> # Find the first movie released after 1960 + >>> # Find the first movie released on or after 1960 >>> by_year = attrgetter('released') >>> movies.sort(key=by_year) >>> movies[bisect(movies, 1960, key=by_year)] diff --git a/Doc/library/cgi.rst b/Doc/library/cgi.rst index 295a601a7bf197..5976c90029c22a 100644 --- a/Doc/library/cgi.rst +++ b/Doc/library/cgi.rst @@ -19,12 +19,6 @@ The :mod:`cgi` module is deprecated (see :pep:`PEP 594 <594#cgi>` for details and alternatives). - The :class:`FieldStorage` class can typically be replaced with - :func:`urllib.parse.parse_qsl` for ``GET`` and ``HEAD`` requests, - and the :mod:`email.message` module or - `multipart <https://pypi.org/project/multipart/>`_ for ``POST`` and ``PUT``. - Most :ref:`utility functions <functions-in-cgi-module>` have replacements. - -------------- Support module for Common Gateway Interface (CGI) scripts. @@ -37,7 +31,6 @@ size of a POST request. POST requests larger than this size will result in a :exc:`ValueError` being raised during parsing. The default value of this variable is ``0``, meaning the request size is unlimited. -.. include:: ../includes/wasm-notavail.rst Introduction ------------ @@ -300,12 +293,6 @@ algorithms implemented in this module in other circumstances. ``sys.stdin``). The *keep_blank_values*, *strict_parsing* and *separator* parameters are passed to :func:`urllib.parse.parse_qs` unchanged. - .. deprecated-removed:: 3.11 3.13 - This function, like the rest of the :mod:`cgi` module, is deprecated. - It can be replaced by calling :func:`urllib.parse.parse_qs` directly - on the desired query string (except for ``multipart/form-data`` input, - which can be handled as described for :func:`parse_multipart`). - .. function:: parse_multipart(fp, pdict, encoding="utf-8", errors="replace", separator="&") @@ -329,31 +316,12 @@ algorithms implemented in this module in other circumstances. .. versionchanged:: 3.10 Added the *separator* parameter. - .. deprecated-removed:: 3.11 3.13 - This function, like the rest of the :mod:`cgi` module, is deprecated. - It can be replaced with the functionality in the :mod:`email` package - (e.g. :class:`email.message.EmailMessage`/:class:`email.message.Message`) - which implements the same MIME RFCs, or with the - `multipart <https://pypi.org/project/multipart/>`__ PyPI project. - .. function:: parse_header(string) Parse a MIME header (such as :mailheader:`Content-Type`) into a main value and a dictionary of parameters. - .. deprecated-removed:: 3.11 3.13 - This function, like the rest of the :mod:`cgi` module, is deprecated. - It can be replaced with the functionality in the :mod:`email` package, - which implements the same MIME RFCs. - - For example, with :class:`email.message.EmailMessage`:: - - from email.message import EmailMessage - msg = EmailMessage() - msg['content-type'] = 'application/json; charset="utf8"' - main, params = msg.get_content_type(), msg['content-type'].params - .. function:: test() diff --git a/Doc/library/codecs.rst b/Doc/library/codecs.rst index 4a665f2254f8a6..d131408175fd16 100644 --- a/Doc/library/codecs.rst +++ b/Doc/library/codecs.rst @@ -1530,7 +1530,7 @@ functions can be used directly if desired. This module implements the ANSI codepage (CP_ACP). -.. availability:: Windows. +.. availability:: Windows only. .. versionchanged:: 3.3 Support any error handler. diff --git a/Doc/library/collections.rst b/Doc/library/collections.rst index 20863837fa1b8f..67b64ddda7a2ca 100644 --- a/Doc/library/collections.rst +++ b/Doc/library/collections.rst @@ -664,7 +664,7 @@ added elements by appending to the right and popping to the left:: def moving_average(iterable, n=3): # moving_average([40, 30, 50, 46, 39, 44]) --> 40.0 42.0 45.0 43.0 - # https://en.wikipedia.org/wiki/Moving_average + # http://en.wikipedia.org/wiki/Moving_average it = iter(iterable) d = deque(itertools.islice(it, n-1)) d.appendleft(0) diff --git a/Doc/library/compileall.rst b/Doc/library/compileall.rst index 7af46cf3200878..de34664acb84ab 100644 --- a/Doc/library/compileall.rst +++ b/Doc/library/compileall.rst @@ -14,7 +14,6 @@ This module can be used to create the cached byte-code files at library installation time, which makes them available for use even by users who don't have write permission to the library directories. -.. include:: ../includes/wasm-notavail.rst Command-line use ---------------- diff --git a/Doc/library/concurrent.futures.rst b/Doc/library/concurrent.futures.rst index 95c9e50991423f..99703ff3051d47 100644 --- a/Doc/library/concurrent.futures.rst +++ b/Doc/library/concurrent.futures.rst @@ -19,7 +19,6 @@ The asynchronous execution can be performed with threads, using :class:`ProcessPoolExecutor`. Both implement the same interface, which is defined by the abstract :class:`Executor` class. -.. include:: ../includes/wasm-notavail.rst Executor Objects ---------------- @@ -150,13 +149,6 @@ And:: An :class:`Executor` subclass that uses a pool of at most *max_workers* threads to execute calls asynchronously. - All threads enqueued to ``ThreadPoolExecutor`` will be joined before the - interpreter can exit. Note that the exit handler which does this is - executed *before* any exit handlers added using `atexit`. This means - exceptions in the main thread must be caught and handled in order to - signal threads to exit gracefully. For this reason, it is recommended - that ``ThreadPoolExecutor`` not be used for long-running tasks. - *initializer* is an optional callable that is called at the start of each worker thread; *initargs* is a tuple of arguments passed to the initializer. Should *initializer* raise an exception, all currently @@ -265,7 +257,7 @@ to a :class:`ProcessPoolExecutor` will result in deadlock. replaced with a fresh worker process. By default *max_tasks_per_child* is ``None`` which means worker processes will live as long as the pool. When a max is specified, the "spawn" multiprocessing start method will be used by - default in absence of a *mp_context* parameter. This feature is incompatible + default in absense of a *mp_context* parameter. This feature is incompatible with the "fork" start method. .. versionchanged:: 3.3 diff --git a/Doc/library/configparser.rst b/Doc/library/configparser.rst index bf49f2bfbe1b43..72aa20d73d8bd3 100644 --- a/Doc/library/configparser.rst +++ b/Doc/library/configparser.rst @@ -1206,6 +1206,28 @@ ConfigParser Objects names is stripped before :meth:`optionxform` is called. + .. method:: readfp(fp, filename=None) + + .. deprecated:: 3.2 + Use :meth:`read_file` instead. + + .. versionchanged:: 3.2 + :meth:`readfp` now iterates on *fp* instead of calling ``fp.readline()``. + + For existing code calling :meth:`readfp` with arguments which don't + support iteration, the following generator may be used as a wrapper + around the file-like object:: + + def readline_generator(fp): + line = fp.readline() + while line: + yield line + line = fp.readline() + + Instead of ``parser.readfp(fp)`` use + ``parser.read_file(readline_generator(fp))``. + + .. data:: MAX_INTERPOLATION_DEPTH The maximum depth for recursive interpolation for :meth:`get` when the *raw* @@ -1339,9 +1361,10 @@ Exceptions Exception raised when errors occur attempting to parse a file. -.. versionchanged:: 3.12 - The ``filename`` attribute and :meth:`__init__` constructor argument were - removed. They have been available using the name ``source`` since 3.2. + .. versionchanged:: 3.2 + The ``filename`` attribute and :meth:`__init__` argument were renamed to + ``source`` for consistency. + .. rubric:: Footnotes diff --git a/Doc/library/contextlib.rst b/Doc/library/contextlib.rst index 2d28fb35a9e316..84c4ca098c6015 100644 --- a/Doc/library/contextlib.rst +++ b/Doc/library/contextlib.rst @@ -361,7 +361,7 @@ Functions and classes provided: As this changes a global state, the working directory, it is not suitable for use in most threaded or async contexts. It is also not suitable for most non-linear code execution, like generators, where the program execution is - temporarily relinquished -- unless explicitly desired, you should not yield + temporarily relinquished -- unless explicitely desired, you should not yield when this context manager is active. This is a simple wrapper around :func:`~os.chdir`, it changes the current diff --git a/Doc/library/crypt.rst b/Doc/library/crypt.rst index 740084b40c5ac9..efba4236bcbccc 100644 --- a/Doc/library/crypt.rst +++ b/Doc/library/crypt.rst @@ -36,9 +36,7 @@ the :manpage:`crypt(3)` routine in the running system. Therefore, any extensions available on the current implementation will also be available on this module. -.. availability:: Unix, not VxWorks. - -.. include:: ../includes/wasm-notavail.rst +.. availability:: Unix. Not available on VxWorks. Hashing Methods --------------- diff --git a/Doc/library/csv.rst b/Doc/library/csv.rst index 0cab95e1500a66..9dec7240d9c50f 100644 --- a/Doc/library/csv.rst +++ b/Doc/library/csv.rst @@ -167,8 +167,6 @@ The :mod:`csv` module defines the following classes: All other optional or keyword arguments are passed to the underlying :class:`reader` instance. - If the argument passed to *fieldnames* is an iterator, it will be coerced to a :class:`list`. - .. versionchanged:: 3.6 Returned rows are now of type :class:`OrderedDict`. @@ -211,8 +209,6 @@ The :mod:`csv` module defines the following classes: Note that unlike the :class:`DictReader` class, the *fieldnames* parameter of the :class:`DictWriter` class is not optional. - If the argument passed to *fieldnames* is an iterator, it will be coerced to a :class:`list`. - A short usage example:: import csv diff --git a/Doc/library/ctypes.rst b/Doc/library/ctypes.rst index 9546696e1c3d76..52950b551b7560 100644 --- a/Doc/library/ctypes.rst +++ b/Doc/library/ctypes.rst @@ -148,14 +148,15 @@ Calling functions ^^^^^^^^^^^^^^^^^ You can call these functions like any other Python callable. This example uses -the ``rand()`` function, which takes no arguments and returns a pseudo-random integer:: +the ``time()`` function, which returns system time in seconds since the Unix +epoch, and the ``GetModuleHandleA()`` function, which returns a win32 module +handle. - >>> print(libc.rand()) # doctest: +SKIP - 1804289383 - -On Windows, you can call the ``GetModuleHandleA()`` function, which returns a win32 module -handle (passing ``None`` as single argument to call it with a ``NULL`` pointer):: +This example calls both functions with a ``NULL`` pointer (``None`` should be used +as the ``NULL`` pointer):: + >>> print(libc.time(None)) # doctest: +SKIP + 1150640792 >>> print(hex(windll.kernel32.GetModuleHandleA(None))) # doctest: +WINDOWS 0x1d000000 >>> @@ -246,8 +247,6 @@ Fundamental data types | :class:`c_ssize_t` | :c:type:`ssize_t` or | int | | | :c:type:`Py_ssize_t` | | +----------------------+------------------------------------------+----------------------------+ -| :class:`c_time_t` | :c:type:`time_t` | int | -+----------------------+------------------------------------------+----------------------------+ | :class:`c_float` | :c:type:`float` | float | +----------------------+------------------------------------------+----------------------------+ | :class:`c_double` | :c:type:`double` | float | @@ -448,21 +447,6 @@ By default functions are assumed to return the C :c:type:`int` type. Other return types can be specified by setting the :attr:`restype` attribute of the function object. -The C prototype of ``time()`` is ``time_t time(time_t *)``. Because ``time_t`` -might be of a different type than the default return type ``int``, you should -specify the ``restype``:: - - >>> libc.time.restype = c_time_t - -The argument types can be specified using ``argtypes``:: - - >>> libc.time.argtypes = (POINTER(c_time_t),) - -To call the function with a ``NULL`` pointer as first argument, use ``None``:: - - >>> print(libc.time(None)) # doctest: +SKIP - 1150640792 - Here is a more advanced example, it uses the ``strchr`` function, which expects a string pointer and a char, and returns a pointer to a string:: @@ -1068,16 +1052,18 @@ Accessing values exported from dlls ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Some shared libraries not only export functions, they also export variables. An -example in the Python library itself is the :c:data:`Py_Version`, Python -runtime version number encoded in a single constant integer. +example in the Python library itself is the :c:data:`Py_OptimizeFlag`, an integer +set to 0, 1, or 2, depending on the :option:`-O` or :option:`-OO` flag given on +startup. :mod:`ctypes` can access values like this with the :meth:`in_dll` class methods of the type. *pythonapi* is a predefined symbol giving access to the Python C api:: - >>> version = ctypes.c_int.in_dll(ctypes.pythonapi, "Py_Version") - >>> print(hex(version.value)) - 0x30c00a0 + >>> opt_flag = c_int.in_dll(pythonapi, "Py_OptimizeFlag") + >>> print(opt_flag) + c_long(0) + >>> If the interpreter would have been started with :option:`-O`, the sample would have printed ``c_long(1)``, or ``c_long(2)`` if :option:`-OO` would have been @@ -2289,13 +2275,6 @@ These are the fundamental ctypes data types: .. versionadded:: 3.2 -.. class:: c_time_t - - Represents the C :c:type:`time_t` datatype. - - .. versionadded:: 3.12 - - .. class:: c_ubyte Represents the C :c:type:`unsigned char` datatype, it interprets the value as diff --git a/Doc/library/custominterp.rst b/Doc/library/custominterp.rst index 9ea9e901372ee4..5eeced20a9a594 100644 --- a/Doc/library/custominterp.rst +++ b/Doc/library/custominterp.rst @@ -8,7 +8,7 @@ The modules described in this chapter allow writing interfaces similar to Python's interactive interpreter. If you want a Python interpreter that supports some special feature in addition to the Python language, you should look at the :mod:`code` module. (The :mod:`codeop` module is lower-level, used -to support compiling a possibly incomplete chunk of Python code.) +to support compiling a possibly-incomplete chunk of Python code.) The full list of modules described in this chapter is: diff --git a/Doc/library/dataclasses.rst b/Doc/library/dataclasses.rst index 4364ac342471eb..ec50696ea89d40 100644 --- a/Doc/library/dataclasses.rst +++ b/Doc/library/dataclasses.rst @@ -749,54 +749,3 @@ mutable types as default values for fields:: ``dict``, or ``set``, unhashable objects are now not allowed as default values. Unhashability is used to approximate mutability. - -Descriptor-typed fields ------------------------ - -Fields that are assigned :ref:`descriptor objects <descriptors>` as their -default value have the following special behaviors: - -* The value for the field passed to the dataclass's ``__init__`` method is - passed to the descriptor's ``__set__`` method rather than overwriting the - descriptor object. -* Similarly, when getting or setting the field, the descriptor's - ``__get__`` or ``__set__`` method is called rather than returning or - overwriting the descriptor object. -* To determine whether a field contains a default value, ``dataclasses`` - will call the descriptor's ``__get__`` method using its class access - form (i.e. ``descriptor.__get__(obj=None, type=cls)``. If the - descriptor returns a value in this case, it will be used as the - field's default. On the other hand, if the descriptor raises - :exc:`AttributeError` in this situation, no default value will be - provided for the field. - -:: - - class IntConversionDescriptor: - def __init__(self, *, default): - self._default = default - - def __set_name__(self, owner, name): - self._name = "_" + name - - def __get__(self, obj, type): - if obj is None: - return self._default - - return getattr(obj, self._name, self._default) - - def __set__(self, obj, value): - setattr(obj, self._name, int(value)) - - @dataclass - class InventoryItem: - quantity_on_hand: IntConversionDescriptor = IntConversionDescriptor(default=100) - - i = InventoryItem() - print(i.quantity_on_hand) # 100 - i.quantity_on_hand = 2.5 # calls __set__ with 2.5 - print(i.quantity_on_hand) # 2 - -Note that if a field is annotated with a descriptor type, but is not assigned -a descriptor object as its default value, the field will act like a normal -field. diff --git a/Doc/library/datetime.rst b/Doc/library/datetime.rst index c3a66a4674b10a..bde24ec5f2e11e 100644 --- a/Doc/library/datetime.rst +++ b/Doc/library/datetime.rst @@ -589,8 +589,8 @@ Supported operations: +-------------------------------+----------------------------------------------+ | Operation | Result | +===============================+==============================================+ -| ``date2 = date1 + timedelta`` | *date2* will be ``timedelta.days`` days | -| | after *date1*. (1) | +| ``date2 = date1 + timedelta`` | *date2* is ``timedelta.days`` days removed | +| | from *date1*. (1) | +-------------------------------+----------------------------------------------+ | ``date2 = date1 - timedelta`` | Computes *date2* such that ``date2 + | | | timedelta == date1``. (2) | @@ -1370,8 +1370,8 @@ Instance methods: time and this method relies on the platform C :c:func:`mktime` function to perform the conversion. Since :class:`.datetime` supports wider range of values than :c:func:`mktime` on many - platforms, this method may raise :exc:`OverflowError` or :exc:`OSError` - for times far in the past or far in the future. + platforms, this method may raise :exc:`OverflowError` for times far + in the past or far in the future. For aware :class:`.datetime` instances, the return value is computed as:: @@ -2443,11 +2443,6 @@ convenience. These parameters all correspond to ISO 8601 date values. | | Week 01 is the week containing | | | | | Jan 4. | | | +-----------+--------------------------------+------------------------+-------+ -| ``%:z`` | UTC offset in the form | (empty), +00:00, | \(6) | -| | ``±HH:MM[:SS[.ffffff]]`` | -04:00, +10:30, | | -| | (empty string if the object is | +06:34:15, | | -| | naive). | -03:07:12.345216 | | -+-----------+--------------------------------+------------------------+-------+ These may not be available on all platforms when used with the :meth:`strftime` method. The ISO 8601 year and ISO 8601 week directives are not interchangeable @@ -2463,9 +2458,6 @@ differences between platforms in handling of unsupported format specifiers. .. versionadded:: 3.6 ``%G``, ``%u`` and ``%V`` were added. -.. versionadded:: 3.12 - ``%:z`` was added. - Technical Detail ^^^^^^^^^^^^^^^^ @@ -2538,8 +2530,8 @@ Notes: available). (6) - For a naive object, the ``%z``, ``%:z`` and ``%Z`` format codes are replaced - by empty strings. + For a naive object, the ``%z`` and ``%Z`` format codes are replaced by empty + strings. For an aware object: @@ -2565,10 +2557,6 @@ Notes: For example, ``'+01:00:00'`` will be parsed as an offset of one hour. In addition, providing ``'Z'`` is identical to ``'+00:00'``. - ``%:z`` - Behaves exactly as ``%z``, but has a colon separator added between - hours, minutes and seconds. - ``%Z`` In :meth:`strftime`, ``%Z`` is replaced by an empty string if :meth:`tzname` returns ``None``; otherwise ``%Z`` is replaced by the @@ -2615,7 +2603,7 @@ Notes: many other calendar systems. .. [#] See R. H. van Gent's `guide to the mathematics of the ISO 8601 calendar - <https://web.archive.org/web/20220531051136/https://webspace.science.uu.nl/~gent0113/calendar/isocalendar.htm>`_ + <https://www.staff.science.uu.nl/~gent0113/calendar/isocalendar.htm>`_ for a good explanation. .. [#] Passing ``datetime.strptime('Feb 29', '%b %d')`` will fail since ``1900`` is not a leap year. diff --git a/Doc/library/decimal.rst b/Doc/library/decimal.rst index e7d3950fd14387..d052581c970124 100644 --- a/Doc/library/decimal.rst +++ b/Doc/library/decimal.rst @@ -30,7 +30,7 @@ -------------- -The :mod:`decimal` module provides support for fast correctly rounded +The :mod:`decimal` module provides support for fast correctly-rounded decimal floating point arithmetic. It offers several advantages over the :class:`float` datatype: @@ -1371,16 +1371,16 @@ In addition to the three supplied contexts, new contexts can be created with the With two arguments, compute ``x**y``. If ``x`` is negative then ``y`` must be integral. The result will be inexact unless ``y`` is integral and the result is finite and can be expressed exactly in 'precision' digits. - The rounding mode of the context is used. Results are always correctly rounded + The rounding mode of the context is used. Results are always correctly-rounded in the Python version. ``Decimal(0) ** Decimal(0)`` results in ``InvalidOperation``, and if ``InvalidOperation`` is not trapped, then results in ``Decimal('NaN')``. .. versionchanged:: 3.3 - The C module computes :meth:`power` in terms of the correctly rounded + The C module computes :meth:`power` in terms of the correctly-rounded :meth:`exp` and :meth:`ln` functions. The result is well-defined but - only "almost always correctly rounded". + only "almost always correctly-rounded". With three arguments, compute ``(x**y) % modulo``. For the three argument form, the following restrictions on the arguments hold: @@ -2151,7 +2151,7 @@ Q. Is the CPython implementation fast for large numbers? A. Yes. In the CPython and PyPy3 implementations, the C/CFFI versions of the decimal module integrate the high speed `libmpdec <https://www.bytereef.org/mpdecimal/doc/libmpdec/index.html>`_ library for -arbitrary precision correctly rounded decimal floating point arithmetic [#]_. +arbitrary precision correctly-rounded decimal floating point arithmetic [#]_. ``libmpdec`` uses `Karatsuba multiplication <https://en.wikipedia.org/wiki/Karatsuba_algorithm>`_ for medium-sized numbers and the `Number Theoretic Transform diff --git a/Doc/library/difflib.rst b/Doc/library/difflib.rst index c5a279688a4491..10f8808d33b160 100644 --- a/Doc/library/difflib.rst +++ b/Doc/library/difflib.rst @@ -149,7 +149,7 @@ diffs. For comparing directories and files, see also, the :mod:`filecmp` module. contains a good example of its use. -.. function:: context_diff(a, b, fromfile='', tofile='', fromfiledate='', tofiledate='', n=3, lineterm='\n') +.. function:: context_diff(a, b, fromfile='', tofile='', fromfiledate='', tofiledate='', n=3, lineterm='\\n') Compare *a* and *b* (lists of strings); return a delta (a :term:`generator` generating the delta lines) in context diff format. @@ -279,7 +279,7 @@ diffs. For comparing directories and files, see also, the :mod:`filecmp` module. emu -.. function:: unified_diff(a, b, fromfile='', tofile='', fromfiledate='', tofiledate='', n=3, lineterm='\n') +.. function:: unified_diff(a, b, fromfile='', tofile='', fromfiledate='', tofiledate='', n=3, lineterm='\\n') Compare *a* and *b* (lists of strings); return a delta (a :term:`generator` generating the delta lines) in unified diff format. @@ -321,7 +321,7 @@ diffs. For comparing directories and files, see also, the :mod:`filecmp` module. See :ref:`difflib-interface` for a more detailed example. -.. function:: diff_bytes(dfunc, a, b, fromfile=b'', tofile=b'', fromfiledate=b'', tofiledate=b'', n=3, lineterm=b'\n') +.. function:: diff_bytes(dfunc, a, b, fromfile=b'', tofile=b'', fromfiledate=b'', tofiledate=b'', n=3, lineterm=b'\\n') Compare *a* and *b* (lists of bytes objects) using *dfunc*; yield a sequence of delta lines (also bytes) in the format returned by *dfunc*. @@ -353,9 +353,9 @@ diffs. For comparing directories and files, see also, the :mod:`filecmp` module. .. seealso:: - `Pattern Matching: The Gestalt Approach <https://www.drdobbs.com/database/pattern-matching-the-gestalt-approach/184407970>`_ + `Pattern Matching: The Gestalt Approach <http://www.drdobbs.com/database/pattern-matching-the-gestalt-approach/184407970>`_ Discussion of a similar algorithm by John W. Ratcliff and D. E. Metzener. This - was published in `Dr. Dobb's Journal <https://www.drdobbs.com/>`_ in July, 1988. + was published in `Dr. Dobb's Journal <http://www.drdobbs.com/>`_ in July, 1988. .. _sequence-matcher: diff --git a/Doc/library/dis.rst b/Doc/library/dis.rst index 47e4bf60072170..8bc3721109b1ea 100644 --- a/Doc/library/dis.rst +++ b/Doc/library/dis.rst @@ -6,12 +6,6 @@ **Source code:** :source:`Lib/dis.py` -.. testsetup:: - - import dis - def myfunc(alist): - return len(alist) - -------------- The :mod:`dis` module supports the analysis of CPython :term:`bytecode` by @@ -43,17 +37,16 @@ Example: Given the function :func:`myfunc`:: return len(alist) the following command can be used to display the disassembly of -:func:`myfunc`: - -.. doctest:: +:func:`myfunc`:: >>> dis.dis(myfunc) - 2 0 RESUME 0 - <BLANKLINE> - 3 2 LOAD_GLOBAL 1 (NULL + len) - 14 LOAD_FAST 0 (alist) - 16 CALL 1 - 26 RETURN_VALUE + 1 0 RESUME 0 + + 2 2 PUSH_NULL + 4 LOAD_GLOBAL 1 (NULL + len) + 6 LOAD_FAST 0 (alist) + 8 CALL 1 + 18 RETURN_VALUE (The "2" is a line number). @@ -115,15 +108,14 @@ code. .. versionchanged:: 3.11 Added the ``show_caches`` parameter. -Example: - -.. doctest:: +Example:: >>> bytecode = dis.Bytecode(myfunc) >>> for instr in bytecode: ... print(instr.opname) ... RESUME + PUSH_NULL LOAD_GLOBAL LOAD_FAST CALL @@ -266,17 +258,15 @@ operation is being performed, so the intermediate analysis object isn't useful: .. function:: findlinestarts(code) - This generator function uses the ``co_lines`` method - of the code object *code* to find the offsets which are starts of + This generator function uses the ``co_firstlineno`` and ``co_lnotab`` + attributes of the code object *code* to find the offsets which are starts of lines in the source code. They are generated as ``(offset, lineno)`` pairs. + See :source:`Objects/lnotab_notes.txt` for the ``co_lnotab`` format and + how to decode it. .. versionchanged:: 3.6 Line numbers can be decreasing. Before, they were always increasing. - .. versionchanged:: 3.10 - The :pep:`626` ``co_lines`` method is used instead of the ``co_firstlineno`` - and ``co_lnotab`` attributes of the code object. - .. function:: findlabels(code) @@ -408,24 +398,6 @@ The Python compiler currently generates the following bytecode instructions. .. versionadded:: 3.11 -.. opcode:: CACHE - - Rather than being an actual instruction, this opcode is used to mark extra - space for the interpreter to cache useful data directly in the bytecode - itself. It is automatically hidden by all ``dis`` utilities, but can be - viewed with ``show_caches=True``. - - Logically, this space is part of the preceding instruction. Many opcodes - expect to be followed by an exact number of caches, and will instruct the - interpreter to skip over them at runtime. - - Populated caches can look like arbitrary instructions, so great care should - be taken when reading or modifying raw, adaptive bytecode containing - quickened data. - - .. versionadded:: 3.11 - - **Unary operations** Unary operations take the top of the stack, apply the operation, and push the @@ -466,13 +438,12 @@ result back on the stack. **Binary and in-place operations** -In the following, TOS is the top-of-stack. -TOS1, TOS2, TOS3 are the second, third and fourth items on the stack, respectively. - -Binary operations remove the top two items from the stack (TOS and TOS1). -They perform the operation, then put the result back on the stack. +Binary operations remove the top of the stack (TOS) and the second top-most +stack item (TOS1) from the stack. They perform the operation, and put the +result back on the stack. -In-place operations are like binary operations, but the operation is done in-place +In-place operations are like binary operations, in that they remove TOS and +TOS1, and push the result back on the stack, but the operation is done in-place when TOS1 supports it, and the resulting TOS may be (but does not have to be) the original TOS1. @@ -481,7 +452,6 @@ the original TOS1. Implements the binary and in-place operators (depending on the value of *op*). - ``TOS = TOS1 op TOS``. .. versionadded:: 3.11 @@ -501,20 +471,6 @@ the original TOS1. Implements ``del TOS1[TOS]``. -.. opcode:: BINARY_SLICE - - Implements ``TOS = TOS2[TOS1:TOS]``. - - .. versionadded:: 3.12 - - -.. opcode:: STORE_SLICE - - Implements ``TOS2[TOS1:TOS] = TOS3``. - - .. versionadded:: 3.12 - - **Coroutine opcodes** .. opcode:: GET_AWAITABLE (where) @@ -548,8 +504,8 @@ the original TOS1. .. opcode:: GET_ANEXT - Pushes ``get_awaitable(TOS.__anext__())`` to the stack. See - ``GET_AWAITABLE`` for details about ``get_awaitable``. + Implements ``PUSH(get_awaitable(TOS.__anext__()))``. See ``GET_AWAITABLE`` + for details about ``get_awaitable`` .. versionadded:: 3.5 @@ -567,17 +523,6 @@ the original TOS1. .. versionchanged:: 3.11 Exception representation on the stack now consist of one, not three, items. - -.. opcode:: CLEANUP_THROW - - Handles an exception raised during a :meth:`~generator.throw` or - :meth:`~generator.close` call through the current frame. If TOS is an - instance of :exc:`StopIteration`, pop three values from the stack and push - its ``value`` member. Otherwise, re-raise TOS. - - .. versionadded:: 3.12 - - .. opcode:: BEFORE_ASYNC_WITH Resolves ``__aenter__`` and ``__aexit__`` from the object on top of the @@ -633,6 +578,12 @@ iterations of the loop. .. versionchanged:: 3.11 oparg set to be the stack depth, for efficient handling on frames. +.. opcode:: YIELD_FROM + + Pops TOS and delegates to it as a subiterator from a :term:`generator`. + + .. versionadded:: 3.3 + .. opcode:: SETUP_ANNOTATIONS @@ -928,20 +879,7 @@ iterations of the loop. .. opcode:: LOAD_ATTR (namei) - If the low bit of ``namei`` is not set, this replaces TOS with - ``getattr(TOS, co_names[namei>>1])``. - - If the low bit of ``namei`` is set, this will attempt to load a method named - ``co_names[namei>>1]`` from the TOS object. TOS is popped. - This bytecode distinguishes two cases: if TOS has a method with the correct - name, the bytecode pushes the unbound method and TOS. TOS will be used as - the first argument (``self``) by :opcode:`CALL` when calling the - unbound method. Otherwise, ``NULL`` and the object return by the attribute - lookup are pushed. - - .. versionchanged:: 3.12 - If the low bit of ``namei`` is set, then a ``NULL`` or ``self`` is - pushed to the stack before the attribute or unbound method respectively. + Replaces TOS with ``getattr(TOS, co_names[namei])``. .. opcode:: COMPARE_OP (opname) @@ -999,48 +937,60 @@ iterations of the loop. .. versionadded:: 3.11 -.. opcode:: POP_JUMP_IF_TRUE (delta) +.. opcode:: POP_JUMP_FORWARD_IF_TRUE (delta) If TOS is true, increments the bytecode counter by *delta*. TOS is popped. - .. versionchanged:: 3.11 - The oparg is now a relative delta rather than an absolute target. - This opcode is a pseudo-instruction, replaced in final bytecode by - the directed versions (forward/backward). + .. versionadded:: 3.11 + - .. versionchanged:: 3.12 - This is no longer a pseudo-instruction. +.. opcode:: POP_JUMP_BACKWARD_IF_TRUE (delta) + + If TOS is true, decrements the bytecode counter by *delta*. TOS is popped. + + .. versionadded:: 3.11 -.. opcode:: POP_JUMP_IF_FALSE (delta) + +.. opcode:: POP_JUMP_FORWARD_IF_FALSE (delta) If TOS is false, increments the bytecode counter by *delta*. TOS is popped. - .. versionchanged:: 3.11 - The oparg is now a relative delta rather than an absolute target. - This opcode is a pseudo-instruction, replaced in final bytecode by - the directed versions (forward/backward). + .. versionadded:: 3.11 + - .. versionchanged:: 3.12 - This is no longer a pseudo-instruction. +.. opcode:: POP_JUMP_BACKWARD_IF_FALSE (delta) -.. opcode:: POP_JUMP_IF_NOT_NONE (delta) + If TOS is false, decrements the bytecode counter by *delta*. TOS is popped. + + .. versionadded:: 3.11 + + +.. opcode:: POP_JUMP_FORWARD_IF_NOT_NONE (delta) If TOS is not ``None``, increments the bytecode counter by *delta*. TOS is popped. .. versionadded:: 3.11 - .. versionchanged:: 3.12 - This is no longer a pseudo-instruction. + +.. opcode:: POP_JUMP_BACKWARD_IF_NOT_NONE (delta) + + If TOS is not ``None``, decrements the bytecode counter by *delta*. TOS is popped. + + .. versionadded:: 3.11 -.. opcode:: POP_JUMP_IF_NONE (delta) +.. opcode:: POP_JUMP_FORWARD_IF_NONE (delta) If TOS is ``None``, increments the bytecode counter by *delta*. TOS is popped. .. versionadded:: 3.11 - .. versionchanged:: 3.12 - This is no longer a pseudo-instruction. + +.. opcode:: POP_JUMP_BACKWARD_IF_NONE (delta) + + If TOS is ``None``, decrements the bytecode counter by *delta*. TOS is popped. + + .. versionadded:: 3.11 .. opcode:: JUMP_IF_TRUE_OR_POP (delta) @@ -1084,17 +1034,6 @@ iterations of the loop. Pushes a reference to the local ``co_varnames[var_num]`` onto the stack. - .. versionchanged:: 3.12 - This opcode is now only used in situations where the local variable is - guaranteed to be initialized. It cannot raise :exc:`UnboundLocalError`. - -.. opcode:: LOAD_FAST_CHECK (var_num) - - Pushes a reference to the local ``co_varnames[var_num]`` onto the stack, - raising an :exc:`UnboundLocalError` if the local variable has not been - initialized. - - .. versionadded:: 3.12 .. opcode:: STORE_FAST (var_num) @@ -1231,6 +1170,18 @@ iterations of the loop. .. versionadded:: 3.6 +.. opcode:: LOAD_METHOD (namei) + + Loads a method named ``co_names[namei]`` from the TOS object. TOS is popped. + This bytecode distinguishes two cases: if TOS has a method with the correct + name, the bytecode pushes the unbound method and TOS. TOS will be used as + the first argument (``self``) by :opcode:`CALL` when calling the + unbound method. Otherwise, ``NULL`` and the object return by the attribute + lookup are pushed. + + .. versionadded:: 3.7 + + .. opcode:: PUSH_NULL Pushes a ``NULL`` to the stack. @@ -1343,14 +1294,10 @@ iterations of the loop. .. versionadded:: 3.11 -.. opcode:: SEND (delta) - - Equivalent to ``TOS = TOS1.send(TOS)``. Used in ``yield from`` and ``await`` - statements. +.. opcode:: SEND - If the call raises :exc:`StopIteration`, pop both items, push the - exception's ``value`` attribute, and increment the bytecode counter by - *delta*. + Sends ``None`` to the sub-generator of this generator. + Used in ``yield from`` and ``await`` statements. .. versionadded:: 3.11 @@ -1366,70 +1313,13 @@ iterations of the loop. .. opcode:: HAVE_ARGUMENT This is not really an opcode. It identifies the dividing line between - opcodes in the range [0,255] which don't use their argument and those - that do (``< HAVE_ARGUMENT`` and ``>= HAVE_ARGUMENT``, respectively). - - If your application uses pseudo instructions, use the :data:`hasarg` - collection instead. + opcodes which don't use their argument and those that do + (``< HAVE_ARGUMENT`` and ``>= HAVE_ARGUMENT``, respectively). .. versionchanged:: 3.6 Now every instruction has an argument, but opcodes ``< HAVE_ARGUMENT`` ignore it. Before, only opcodes ``>= HAVE_ARGUMENT`` had an argument. - .. versionchanged:: 3.12 - Pseudo instructions were added to the :mod:`dis` module, and for them - it is not true that comparison with ``HAVE_ARGUMENT`` indicates whether - they use their arg. - - -**Pseudo-instructions** - -These opcodes do not appear in python bytecode, they are used by the compiler -but are replaced by real opcodes or removed before bytecode is generated. - -.. opcode:: SETUP_FINALLY (target) - - Set up an exception handler for the following code block. If an exception - occurs, the value stack level is restored to its current state and control - is transferred to the exception handler at ``target``. - - -.. opcode:: SETUP_CLEANUP (target) - - Like ``SETUP_FINALLY``, but in case of exception also pushes the last - instruction (``lasti``) to the stack so that ``RERAISE`` can restore it. - If an exception occurs, the value stack level and the last instruction on - the frame are restored to their current state, and control is transferred - to the exception handler at ``target``. - - -.. opcode:: SETUP_WITH (target) - - Like ``SETUP_CLEANUP``, but in case of exception one more item is popped - from the stack before control is transferred to the exception handler at - ``target``. - - This variant is used in :keyword:`with` and :keyword:`async with` - constructs, which push the return value of the context manager's - :meth:`~object.__enter__` or :meth:`~object.__aenter__` to the stack. - - -.. opcode:: POP_BLOCK - - Marks the end of the code block associated with the last ``SETUP_FINALLY``, - ``SETUP_CLEANUP`` or ``SETUP_WITH``. - -.. opcode:: JUMP -.. opcode:: JUMP_NO_INTERRUPT - - Undirected relative jump instructions which are replaced by their - directed (forward/backward) counterparts by the assembler. - -.. opcode:: LOAD_METHOD - - Optimized unbound method lookup. Emitted as a ``LOAD_ATTR`` opcode - with a flag set in the arg. - .. _opcode_collections: @@ -1439,10 +1329,6 @@ Opcode collections These collections are provided for automatic introspection of bytecode instructions: - .. versionchanged:: 3.12 - The collections now contain pseudo instructions as well. These are - opcodes with values ``>= MIN_PSEUDO_OPCODE``. - .. data:: opname Sequence of operation names, indexable using the bytecode. @@ -1458,13 +1344,6 @@ instructions: Sequence of all compare operation names. -.. data:: hasarg - - Sequence of bytecodes that use their argument. - - .. versionadded:: 3.12 - - .. data:: hasconst Sequence of bytecodes that access a constant. @@ -1501,9 +1380,3 @@ instructions: .. data:: hascompare Sequence of bytecodes of Boolean operations. - -.. data:: hasexc - - Sequence of bytecodes that set an exception handler. - - .. versionadded:: 3.12 diff --git a/Doc/library/distribution.rst b/Doc/library/distribution.rst index bec1ca3cc39137..8d4befe41b329c 100644 --- a/Doc/library/distribution.rst +++ b/Doc/library/distribution.rst @@ -9,6 +9,7 @@ with a local index server, or without any index server at all. .. toctree:: + distutils.rst ensurepip.rst venv.rst zipapp.rst diff --git a/Doc/library/distutils.rst b/Doc/library/distutils.rst new file mode 100644 index 00000000000000..31c4ae5b23906b --- /dev/null +++ b/Doc/library/distutils.rst @@ -0,0 +1,49 @@ +:mod:`distutils` --- Building and installing Python modules +=========================================================== + +.. module:: distutils + :synopsis: Support for building and installing Python modules into an + existing Python installation. + +.. sectionauthor:: Fred L. Drake, Jr. <fdrake@acm.org> + +-------------- + +:mod:`distutils` is deprecated with removal planned for Python 3.12. +See the :ref:`What's New <distutils-deprecated>` entry for more information. + +-------------- + +The :mod:`distutils` package provides support for building and installing +additional modules into a Python installation. The new modules may be either +100%-pure Python, or may be extension modules written in C, or may be +collections of Python packages which include modules coded in both Python and C. + +Most Python users will *not* want to use this module directly, but instead +use the cross-version tools maintained by the Python Packaging Authority. In +particular, +`setuptools <https://setuptools.readthedocs.io/en/latest/>`__ is an +enhanced alternative to :mod:`distutils` that provides: + +* support for declaring project dependencies +* additional mechanisms for configuring which files to include in source + releases (including plugins for integration with version control systems) +* the ability to declare project "entry points", which can be used as the + basis for application plugin systems +* the ability to automatically generate Windows command line executables at + installation time rather than needing to prebuild them +* consistent behaviour across all supported Python versions + +The recommended `pip <https://pip.pypa.io/>`__ installer runs all +``setup.py`` scripts with ``setuptools``, even if the script itself only +imports ``distutils``. Refer to the +`Python Packaging User Guide <https://packaging.python.org>`_ for more +information. + +For the benefits of packaging tool authors and users seeking a deeper +understanding of the details of the current packaging and distribution +system, the legacy :mod:`distutils` based user documentation and API +reference remain available: + +* :ref:`install-index` +* :ref:`distutils-index` diff --git a/Doc/library/doctest.rst b/Doc/library/doctest.rst index 75c6ee289a91e9..2d50a49c6415e9 100644 --- a/Doc/library/doctest.rst +++ b/Doc/library/doctest.rst @@ -565,12 +565,12 @@ doctest decides whether actual output matches an example's expected output: When specified, doctests expecting exceptions pass so long as an exception of the expected type is raised, even if the details - (message and fully qualified exception name) don't match. + (message and fully-qualified exception name) don't match. For example, an example expecting ``ValueError: 42`` will pass if the actual exception raised is ``ValueError: 3*14``, but will fail if, say, a :exc:`TypeError` is raised instead. - It will also ignore any fully qualified name included before the + It will also ignore any fully-qualified name included before the exception class, which can vary between implementations and versions of Python and the code/libraries in use. Hence, all three of these variations will work with the flag specified: diff --git a/Doc/library/email.header.rst b/Doc/library/email.header.rst index e093f138936b36..07152c224f2ff0 100644 --- a/Doc/library/email.header.rst +++ b/Doc/library/email.header.rst @@ -116,7 +116,7 @@ Here is the :class:`Header` class description: if *s* is a byte string. - .. method:: encode(splitchars=';, \t', maxlinelen=None, linesep='\n') + .. method:: encode(splitchars=';, \\t', maxlinelen=None, linesep='\\n') Encode a message header into an RFC-compliant format, possibly wrapping long lines and encapsulating non-ASCII parts in base64 or quoted-printable diff --git a/Doc/library/email.rst b/Doc/library/email.rst index 816fae991d24cb..5eebcd9e896d93 100644 --- a/Doc/library/email.rst +++ b/Doc/library/email.rst @@ -147,3 +147,6 @@ Legacy API: Module :mod:`mailbox` Tools for creating, reading, and managing collections of messages on disk using a variety standard formats. + + Module :mod:`smtpd` + SMTP server framework (primarily useful for testing) diff --git a/Doc/library/ensurepip.rst b/Doc/library/ensurepip.rst index 34f45e20bae9d9..fa1b42cf484094 100644 --- a/Doc/library/ensurepip.rst +++ b/Doc/library/ensurepip.rst @@ -36,7 +36,6 @@ when creating a virtual environment) or after explicitly uninstalling :pep:`453`: Explicit bootstrapping of pip in Python installations The original rationale and specification for this module. -.. include:: ../includes/wasm-notavail.rst Command line interface ---------------------- diff --git a/Doc/library/enum.rst b/Doc/library/enum.rst index 01743b002ba96c..c3256c56c6366f 100644 --- a/Doc/library/enum.rst +++ b/Doc/library/enum.rst @@ -176,6 +176,13 @@ Data Types >>> dir(Color) ['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__'] + .. method:: EnumType.__getattr__(cls, name) + + Returns the Enum member in *cls* matching *name*, or raises an :exc:`AttributeError`:: + + >>> Color.GREEN + <Color.GREEN: 2> + .. method:: EnumType.__getitem__(cls, name) Returns the Enum member in *cls* matching *name*, or raises an :exc:`KeyError`:: @@ -754,10 +761,6 @@ Utilities and Decorators ``_generate_next_value_`` can be overridden to customize the values used by *auto*. - .. note:: in 3.13 the default ``"generate_next_value_`` will always return - the highest member value incremented by 1, and will fail if any - member is an incompatible type. - .. decorator:: property A decorator similar to the built-in *property*, but specifically for diff --git a/Doc/library/errno.rst b/Doc/library/errno.rst index 5122c69697ef91..035340e256874f 100644 --- a/Doc/library/errno.rst +++ b/Doc/library/errno.rst @@ -657,12 +657,3 @@ defined by the module. The specific list of defined symbols is available as Interface output queue is full .. versionadded:: 3.11 - -.. data:: ENOTCAPABLE - - Capabilities insufficient. This error is mapped to the exception - :exc:`PermissionError`. - - .. availability:: WASI, FreeBSD - - .. versionadded:: 3.11.1 diff --git a/Doc/library/exceptions.rst b/Doc/library/exceptions.rst index fc856277d67b2e..2eccbd17c482c0 100644 --- a/Doc/library/exceptions.rst +++ b/Doc/library/exceptions.rst @@ -746,12 +746,7 @@ depending on the system error code. Raised when trying to run an operation without the adequate access rights - for example filesystem permissions. - Corresponds to :c:data:`errno` :py:data:`~errno.EACCES`, - :py:data:`~errno.EPERM`, and :py:data:`~errno.ENOTCAPABLE`. - - .. versionchanged:: 3.11.1 - WASI's :py:data:`~errno.ENOTCAPABLE` is now mapped to - :exc:`PermissionError`. + Corresponds to :c:data:`errno` :py:data:`~errno.EACCES` and :py:data:`~errno.EPERM`. .. exception:: ProcessLookupError diff --git a/Doc/library/fcntl.rst b/Doc/library/fcntl.rst index 997c7ea571fc03..1ecd552fbd02cd 100644 --- a/Doc/library/fcntl.rst +++ b/Doc/library/fcntl.rst @@ -18,8 +18,6 @@ interface to the :c:func:`fcntl` and :c:func:`ioctl` Unix routines. For a complete description of these calls, see :manpage:`fcntl(2)` and :manpage:`ioctl(2)` Unix manual pages. -.. include:: ../includes/wasm-notavail.rst - All functions in this module take a file descriptor *fd* as their first argument. This can be an integer file descriptor, such as returned by ``sys.stdin.fileno()``, or an :class:`io.IOBase` object, such as ``sys.stdin`` @@ -52,12 +50,6 @@ descriptor. constants, which allow to duplicate a file descriptor, the latter setting ``FD_CLOEXEC`` flag in addition. -.. versionchanged:: 3.12 - On Linux >= 4.5, the :mod:`fcntl` module exposes the ``FICLONE`` and - ``FICLONERANGE`` constants, which allow to share some data of one file with - another file by reflinking on some filesystems (e.g., btrfs, OCFS2, and - XFS). This behavior is commonly referred to as "copy-on-write". - The module defines the following functions: diff --git a/Doc/library/fractions.rst b/Doc/library/fractions.rst index 3751800b3b1118..5f0ecf1f135ea5 100644 --- a/Doc/library/fractions.rst +++ b/Doc/library/fractions.rst @@ -98,9 +98,6 @@ another rational number, or from a string. :class:`Fraction` implements ``__int__`` now to satisfy ``typing.SupportsInt`` instance checks. - .. versionchanged:: 3.12 - Space is allowed around the slash for string inputs: `Fraction('2 / 3')`. - .. attribute:: numerator Numerator of the Fraction in lowest term. diff --git a/Doc/library/ftplib.rst b/Doc/library/ftplib.rst index e5ba9eef4074b9..2f94ac499285db 100644 --- a/Doc/library/ftplib.rst +++ b/Doc/library/ftplib.rst @@ -21,8 +21,6 @@ as mirroring other FTP servers. It is also used by the module The default encoding is UTF-8, following :rfc:`2640`. -.. include:: ../includes/wasm-notavail.rst - Here's a sample session using the :mod:`ftplib` module:: >>> from ftplib import FTP diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst index b9cf02e87eb614..f5e4c1a8640f45 100644 --- a/Doc/library/functions.rst +++ b/Doc/library/functions.rst @@ -164,8 +164,6 @@ are always available. They are listed here in alphabetical order. :func:`sys.breakpointhook` can be set to some other function and :func:`breakpoint` will automatically call that, allowing you to drop into the debugger of choice. - If :func:`sys.breakpointhook` is not accessible, this function will - raise :exc:`RuntimeError`. .. audit-event:: builtins.breakpoint breakpointhook breakpoint @@ -910,13 +908,6 @@ are always available. They are listed here in alphabetical order. .. versionchanged:: 3.11 The delegation to :meth:`__trunc__` is deprecated. - .. versionchanged:: 3.12 - :class:`int` string inputs and string representations can be limited to - help avoid denial of service attacks. A :exc:`ValueError` is raised when - the limit is exceeded while converting a string *x* to an :class:`int` or - when converting an :class:`int` into a string would exceed the limit. - See the :ref:`integer string conversion length limitation - <int_max_str_digits>` documentation. .. function:: isinstance(object, classinfo) @@ -1402,7 +1393,7 @@ are always available. They are listed here in alphabetical order. supported. -.. function:: print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False) +.. function:: print(*objects, sep=' ', end='\\n', file=sys.stdout, flush=False) Print *objects* to the text stream *file*, separated by *sep* and followed by *end*. *sep*, *end*, *file*, and *flush*, if present, must be given as keyword @@ -1522,8 +1513,6 @@ are always available. They are listed here in alphabetical order. of the type of the object together with additional information often including the name and address of the object. A class can control what this function returns for its instances by defining a :meth:`__repr__` method. - If :func:`sys.displayhook` is not accessible, this function will raise - :exc:`RuntimeError`. .. function:: reversed(seq) diff --git a/Doc/library/functools.rst b/Doc/library/functools.rst index 47cbe59fa49222..dd4d76ef670987 100644 --- a/Doc/library/functools.rst +++ b/Doc/library/functools.rst @@ -49,9 +49,6 @@ The :mod:`functools` module defines the following functions: >>> factorial(12) # makes two new recursive calls, the other 10 are cached 479001600 - The cache is threadsafe so the wrapped function can be used in multiple - threads. - .. versionadded:: 3.9 @@ -122,7 +119,7 @@ The :mod:`functools` module defines the following functions: tool for programs being converted from Python 2 which supported the use of comparison functions. - A comparison function is any callable that accepts two arguments, compares them, + A comparison function is any callable that accept two arguments, compares them, and returns a negative number for less-than, zero for equality, or a positive number for greater-than. A key function is a callable that accepts one argument and returns another value to be used as the sort key. @@ -143,9 +140,6 @@ The :mod:`functools` module defines the following functions: *maxsize* most recent calls. It can save time when an expensive or I/O bound function is periodically called with the same arguments. - The cache is threadsafe so the wrapped function can be used in multiple - threads. - Since a dictionary is used to cache results, the positional and keyword arguments to the function must be hashable. diff --git a/Doc/library/getpass.rst b/Doc/library/getpass.rst index d5bbe67fb30a62..82b11919a3d2bf 100644 --- a/Doc/library/getpass.rst +++ b/Doc/library/getpass.rst @@ -12,10 +12,9 @@ -------------- -.. include:: ../includes/wasm-notavail.rst - The :mod:`getpass` module provides two functions: + .. function:: getpass(prompt='Password: ', stream=None) Prompt the user for a password without echoing. The user is prompted using diff --git a/Doc/library/gettext.rst b/Doc/library/gettext.rst index 747f8703b750ec..624501952421cc 100644 --- a/Doc/library/gettext.rst +++ b/Doc/library/gettext.rst @@ -445,7 +445,7 @@ There are a few tools to extract the strings meant for translation. The original GNU :program:`gettext` only supported C or C++ source code but its extended version :program:`xgettext` scans code written in a number of languages, including Python, to find strings marked as -translatable. `Babel <https://babel.pocoo.org/>`__ is a Python +translatable. `Babel <http://babel.pocoo.org/>`__ is a Python internationalization library that includes a :file:`pybabel` script to extract and compile message catalogs. François Pinard's program called :program:`xpot` does a similar job and is available as part of diff --git a/Doc/library/glob.rst b/Doc/library/glob.rst index 0e4cfe7ebed797..d51fd0ebf9e408 100644 --- a/Doc/library/glob.rst +++ b/Doc/library/glob.rst @@ -42,7 +42,7 @@ For example, ``'[?]'`` matches the character ``'?'``. .. function:: glob(pathname, *, root_dir=None, dir_fd=None, recursive=False, \ include_hidden=False) - Return a possibly empty list of path names that match *pathname*, which must be + Return a possibly-empty list of path names that match *pathname*, which must be a string containing a path specification. *pathname* can be either absolute (like :file:`/usr/src/Python-1.5/Makefile`) or relative (like :file:`../../Tools/\*/\*.gif`), and can contain shell-style wildcards. Broken diff --git a/Doc/library/grp.rst b/Doc/library/grp.rst index 14af744e3ae8f4..fbfb922d3e0528 100644 --- a/Doc/library/grp.rst +++ b/Doc/library/grp.rst @@ -10,8 +10,6 @@ This module provides access to the Unix group database. It is available on all Unix versions. -.. include:: ../includes/wasm-notavail.rst - Group database entries are reported as a tuple-like object, whose attributes correspond to the members of the ``group`` structure (Attribute field below, see ``<grp.h>``): @@ -40,13 +38,14 @@ accessible via :func:`getgrnam` or :func:`getgrgid`.) It defines the following items: -.. function:: getgrgid(id) +.. function:: getgrgid(gid) Return the group database entry for the given numeric group ID. :exc:`KeyError` is raised if the entry asked for cannot be found. - .. versionchanged:: 3.10 - :exc:`TypeError` is raised for non-integer arguments like floats or strings. + .. deprecated:: 3.6 + Since Python 3.6 the support of non-integer arguments like floats or + strings in :func:`getgrgid` is deprecated. .. function:: getgrnam(name) diff --git a/Doc/library/gzip.rst b/Doc/library/gzip.rst index 1a2582d6a904b2..8cea2649ee6cb6 100644 --- a/Doc/library/gzip.rst +++ b/Doc/library/gzip.rst @@ -165,10 +165,6 @@ The module defines the following items: .. versionchanged:: 3.6 Accepts a :term:`path-like object`. - .. versionchanged:: 3.12 - Remove the ``filename`` attribute, use the :attr:`~GzipFile.name` - attribute instead. - .. deprecated:: 3.9 Opening :class:`GzipFile` for writing without specifying the *mode* argument is deprecated. diff --git a/Doc/library/hashlib.rst b/Doc/library/hashlib.rst index 386541acf510ac..57f270c8d711cf 100644 --- a/Doc/library/hashlib.rst +++ b/Doc/library/hashlib.rst @@ -300,17 +300,23 @@ include a `salt <https://en.wikipedia.org/wiki/Salt_%28cryptography%29>`_. >>> from hashlib import pbkdf2_hmac >>> our_app_iters = 500_000 # Application specific, read above. - >>> dk = pbkdf2_hmac('sha256', b'password', b'bad salt' * 2, our_app_iters) + >>> dk = pbkdf2_hmac('sha256', b'password', b'bad salt'*2, our_app_iters) >>> dk.hex() '15530bba69924174860db778f2c6f8104d3aaf9d26241840c8c4a641c8d000a9' - Function only available when Python is compiled with OpenSSL. - .. versionadded:: 3.4 - .. versionchanged:: 3.12 - Function now only available when Python is built with OpenSSL. The slow - pure Python implementation has been removed. + .. note:: + + A fast implementation of *pbkdf2_hmac* is available with OpenSSL. The + Python implementation uses an inline version of :mod:`hmac`. It is about + three times slower and doesn't release the GIL. + + .. deprecated:: 3.10 + + Slow Python implementation of *pbkdf2_hmac* is deprecated. In the + future the function will only be available when Python is compiled + with OpenSSL. .. function:: scrypt(password, *, salt, n, r, p, maxmem=0, dklen=64) @@ -662,7 +668,7 @@ function: hash function used in the protocol summarily stops this type of attack. (`The Skein Hash Function Family - <https://www.schneier.com/wp-content/uploads/2016/02/skein.pdf>`_, + <http://www.skein-hash.info/sites/default/files/skein1.3.pdf>`_, p. 21) BLAKE2 can be personalized by passing bytes to the *person* argument:: diff --git a/Doc/library/hmac.rst b/Doc/library/hmac.rst index b2ca0455d3745c..6f1b59b57ce580 100644 --- a/Doc/library/hmac.rst +++ b/Doc/library/hmac.rst @@ -69,7 +69,7 @@ An HMAC object has the following methods: .. warning:: - When comparing the output of :meth:`digest` to an externally supplied + When comparing the output of :meth:`digest` to an externally-supplied digest during a verification routine, it is recommended to use the :func:`compare_digest` function instead of the ``==`` operator to reduce the vulnerability to timing attacks. @@ -83,7 +83,7 @@ An HMAC object has the following methods: .. warning:: - When comparing the output of :meth:`hexdigest` to an externally supplied + When comparing the output of :meth:`hexdigest` to an externally-supplied digest during a verification routine, it is recommended to use the :func:`compare_digest` function instead of the ``==`` operator to reduce the vulnerability to timing attacks. diff --git a/Doc/library/html.entities.rst b/Doc/library/html.entities.rst index 10529561a92cd0..7d836fe7380245 100644 --- a/Doc/library/html.entities.rst +++ b/Doc/library/html.entities.rst @@ -34,14 +34,14 @@ This module defines four dictionaries, :data:`html5`, .. data:: name2codepoint - A dictionary that maps HTML4 entity names to the Unicode code points. + A dictionary that maps HTML entity names to the Unicode code points. .. data:: codepoint2name - A dictionary that maps Unicode code points to HTML4 entity names. + A dictionary that maps Unicode code points to HTML entity names. .. rubric:: Footnotes -.. [#] See https://html.spec.whatwg.org/multipage/named-characters.html#named-character-references +.. [#] See https://html.spec.whatwg.org/multipage/syntax.html#named-character-references diff --git a/Doc/library/http.client.rst b/Doc/library/http.client.rst index 16823ec67b0123..e605f7b8b14172 100644 --- a/Doc/library/http.client.rst +++ b/Doc/library/http.client.rst @@ -28,8 +28,6 @@ HTTPS protocols. It is normally not used directly --- the module HTTPS support is only available if Python was compiled with SSL support (through the :mod:`ssl` module). -.. include:: ../includes/wasm-notavail.rst - The module provides the following classes: @@ -591,7 +589,7 @@ Here is an example session that shows how to ``POST`` requests:: 302 Found >>> data = response.read() >>> data - b'Redirecting to <a href="https://bugs.python.org/issue12524">https://bugs.python.org/issue12524</a>' + b'Redirecting to <a href="http://bugs.python.org/issue12524">http://bugs.python.org/issue12524</a>' >>> conn.close() Client side ``HTTP PUT`` requests are very similar to ``POST`` requests. The diff --git a/Doc/library/http.cookiejar.rst b/Doc/library/http.cookiejar.rst index 53b3087a4b9997..51a8c53152b019 100644 --- a/Doc/library/http.cookiejar.rst +++ b/Doc/library/http.cookiejar.rst @@ -160,10 +160,11 @@ contained :class:`Cookie` objects. respectively), the :mailheader:`Cookie2` header is also added when appropriate. The *request* object (usually a :class:`urllib.request.Request` instance) - must support the methods :meth:`get_full_url`, :meth:`has_header`, + must support the methods :meth:`get_full_url`, :meth:`get_host`, + :meth:`get_type`, :meth:`unverifiable`, :meth:`has_header`, :meth:`get_header`, :meth:`header_items`, :meth:`add_unredirected_header` - and the attributes :attr:`host`, :attr:`!type`, :attr:`unverifiable` - and :attr:`origin_req_host` as documented by :mod:`urllib.request`. + and :attr:`origin_req_host` attribute as documented by + :mod:`urllib.request`. .. versionchanged:: 3.3 @@ -185,11 +186,11 @@ contained :class:`Cookie` objects. method, which returns an :class:`email.message.Message` instance. The *request* object (usually a :class:`urllib.request.Request` instance) - must support the method :meth:`get_full_url` and the attributes - :attr:`host`, :attr:`unverifiable` and :attr:`origin_req_host`, - as documented by :mod:`urllib.request`. The request is used to set - default values for cookie-attributes as well as for checking that the - cookie is allowed to be set. + must support the methods :meth:`get_full_url`, :meth:`get_host`, + :meth:`unverifiable`, and :attr:`origin_req_host` attribute, as documented + by :mod:`urllib.request`. The request is used to set default values for + cookie-attributes as well as for checking that the cookie is allowed to be + set. .. versionchanged:: 3.3 diff --git a/Doc/library/http.cookies.rst b/Doc/library/http.cookies.rst index a2c1eb00d8b33d..17792b200599bd 100644 --- a/Doc/library/http.cookies.rst +++ b/Doc/library/http.cookies.rst @@ -93,7 +93,7 @@ Cookie Objects :meth:`value_decode` are inverses on the range of *value_decode*. -.. method:: BaseCookie.output(attrs=None, header='Set-Cookie:', sep='\r\n') +.. method:: BaseCookie.output(attrs=None, header='Set-Cookie:', sep='\\r\\n') Return a string representation suitable to be sent as HTTP headers. *attrs* and *header* are sent to each :class:`Morsel`'s :meth:`output` method. *sep* is used diff --git a/Doc/library/http.rst b/Doc/library/http.rst index 9d002dc33ccb8d..5895a41d849bd1 100644 --- a/Doc/library/http.rst +++ b/Doc/library/http.rst @@ -137,31 +137,6 @@ equal to the constant name (i.e. ``http.HTTPStatus.OK`` is also available as .. versionadded:: 3.9 Added ``103 EARLY_HINTS``, ``418 IM_A_TEAPOT`` and ``425 TOO_EARLY`` status codes. -HTTP status category --------------------- - -.. versionadded:: 3.12 - -The enum values have several properties to indicate the HTTP status category: - -==================== ======================== =============================== -Property Indicates that Details -==================== ======================== =============================== -``is_informational`` ``100 <= status <= 199`` HTTP/1.1 :rfc:`7231`, Section 6 -``is_success`` ``200 <= status <= 299`` HTTP/1.1 :rfc:`7231`, Section 6 -``is_redirection`` ``300 <= status <= 399`` HTTP/1.1 :rfc:`7231`, Section 6 -``is_client_error`` ``400 <= status <= 499`` HTTP/1.1 :rfc:`7231`, Section 6 -``is_server_error`` ``500 <= status <= 599`` HTTP/1.1 :rfc:`7231`, Section 6 -==================== ======================== =============================== - - Usage:: - - >>> from http import HTTPStatus - >>> HTTPStatus.OK.is_success - True - >>> HTTPStatus.OK.is_client_error - False - .. class:: HTTPMethod .. versionadded:: 3.11 diff --git a/Doc/library/http.server.rst b/Doc/library/http.server.rst index 48f952daae12f5..9d5e5e3a75b197 100644 --- a/Doc/library/http.server.rst +++ b/Doc/library/http.server.rst @@ -20,9 +20,7 @@ This module defines classes for implementing HTTP servers. .. warning:: :mod:`http.server` is not recommended for production. It only implements - :ref:`basic security checks <http.server-security>`. - -.. include:: ../includes/wasm-notavail.rst + basic security checks. One class, :class:`HTTPServer`, is a :class:`socketserver.TCPServer` subclass. It creates and listens at the HTTP socket, dispatching the requests to a @@ -501,14 +499,3 @@ following command runs an HTTP/1.1 conformant server:: the ``--cgi`` option:: python -m http.server --cgi - -.. _http.server-security: - -Security Considerations ------------------------ - -.. index:: pair: http.server; security - -:class:`SimpleHTTPRequestHandler` will follow symbolic links when handling -requests, this makes it possible for files outside of the specified directory -to be served. diff --git a/Doc/library/idle.rst b/Doc/library/idle.rst index 3058bcead661f3..d6021042c61166 100644 --- a/Doc/library/idle.rst +++ b/Doc/library/idle.rst @@ -61,17 +61,17 @@ New File Open... Open an existing file with an Open dialog. -Open Module... - Open an existing module (searches sys.path). - Recent Files Open a list of recent files. Click one to open it. +Open Module... + Open an existing module (searches sys.path). + .. index:: - single: Module browser + single: Class browser single: Path browser -Module Browser +Class Browser Show functions, classes, and methods in the current Editor file in a tree structure. In the shell, open a module first. @@ -87,14 +87,11 @@ Save Save As... Save the current window with a Save As dialog. The file saved becomes the - new associated file for the window. (If your file namager is set to hide - extensions, the current extension will be omitted in the file name box. - If the new filename has no '.', '.py' and '.txt' will be added for Python - and text files, except that on macOS Aqua,'.py' is added for all files.) + new associated file for the window. Save Copy As... Save the current window to different file without changing the associated - file. (See Save As note above about filename extensions.) + file. Print Window Print the current window to the default printer. @@ -117,9 +114,6 @@ Undo Redo Redo the last undone change to the current window. -Select All - Select the entire contents of the current window. - Cut Copy selection into the system-wide clipboard; then delete the selection. @@ -131,6 +125,9 @@ Paste The clipboard functions are also available in context menus. +Select All + Select the entire contents of the current window. + Find... Open a search dialog with many options @@ -159,12 +156,12 @@ Expand Word Expand a prefix you have typed to match a full word in the same window; repeat to get a different expansion. -Show Call Tip +Show call tip After an unclosed parenthesis for a function, open a small window with function parameter hints. See :ref:`Calltips <calltips>` in the Editing and navigation section below. -Show Surrounding Parens +Show surrounding parens Highlight the surrounding parenthesis. .. _format-menu: @@ -172,11 +169,6 @@ Show Surrounding Parens Format menu (Editor window only) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Format Paragraph - Reformat the current blank-line-delimited paragraph in comment block or - multiline string or selected line in a string. All lines in the - paragraph will be formatted to less than N columns, where N defaults to 72. - Indent Region Shift selected lines right by the indent width (default 4 spaces). @@ -203,7 +195,12 @@ New Indent Width Open a dialog to change indent width. The accepted default by the Python community is 4 spaces. -Strip Trailing Chitespace +Format Paragraph + Reformat the current blank-line-delimited paragraph in comment block or + multiline string or selected line in a string. All lines in the + paragraph will be formatted to less than N columns, where N defaults to 72. + +Strip trailing whitespace Remove trailing space and other whitespace characters after the last non-whitespace character of a line by applying str.rstrip to each line, including lines within multiline strings. Except for Shell windows, @@ -360,7 +357,7 @@ for more on Help menu choices. single: Clear Breakpoint single: breakpoints -Context menus +Context Menus ^^^^^^^^^^^^^^^^^^^^^^^^^^ Open a context menu by right-clicking in a window (Control-click on macOS). @@ -401,7 +398,7 @@ Squeeze .. _editing-and-navigation: -Editing and Navigation +Editing and navigation ---------------------- Editor windows @@ -474,14 +471,6 @@ are restricted to four spaces due to Tcl/Tk limitations. See also the indent/dedent region commands on the :ref:`Format menu <format-menu>`. -Search and Replace -^^^^^^^^^^^^^^^^^^ - -Any selection becomes a search target. However, only selections within -a line work because searches are only performed within lines with the -terminal newline removed. If ``[x] Regular expresion`` is checked, the -target is interpreted according to the Python re module. - .. _completions: Completions @@ -587,29 +576,17 @@ line to the top of the editor. The text and background colors for the context pane can be configured under the Highlights tab in the Configure IDLE dialog. -Shell window -^^^^^^^^^^^^ - -In IDLE's Shell, enter, edit, and recall complete statements. (Most -consoles and terminals only work with a single physical line at a time). +Python Shell window +^^^^^^^^^^^^^^^^^^^ -Submit a single-line statement for execution by hitting :kbd:`Return` -with the cursor anywhere on the line. If a line is extended with -Backslash (:kbd:`\\`), the cursor must be on the last physical line. -Submit a multi-line compound statement by entering a blank line after -the statement. +With IDLE's Shell, one enters, edits, and recalls complete statements. +Most consoles and terminals only work with a single physical line at a time. When one pastes code into Shell, it is not compiled and possibly executed -until one hits :kbd:`Return`, as specified above. -One may edit pasted code first. -If one pastes more than one statement into Shell, the result will be a +until one hits :kbd:`Return`. One may edit pasted code first. +If one pastes more that one statement into Shell, the result will be a :exc:`SyntaxError` when multiple statements are compiled as if they were one. -Lines containing ``RESTART`` mean that the user execution process has been -re-started. This occurs when the user execution process has crashed, -when one requests a restart on the Shell menu, or when one runs code -in an editor window. - The editing features described in previous subsections work when entering code interactively. IDLE's Shell window also responds to the following keys. @@ -626,8 +603,7 @@ code interactively. IDLE's Shell window also responds to the following keys. * :kbd:`Alt-n` retrieves next. On macOS use :kbd:`C-n`. - * :kbd:`Return` while the cursor is on any previous command - retrieves that command + * :kbd:`Return` while on any previous command retrieves that command Text colors ^^^^^^^^^^^ @@ -651,7 +627,7 @@ Highlighting tab. The marking of debugger breakpoint lines in the editor and text in popups and dialogs is not user-configurable. -Startup and Code Execution +Startup and code execution -------------------------- Upon startup with the ``-s`` option, IDLE will execute the file referenced by @@ -786,9 +762,7 @@ IDLE's standard stream replacements are not inherited by subprocesses created in the execution process, whether directly by user code or by modules such as multiprocessing. If such subprocess use ``input`` from sys.stdin or ``print`` or ``write`` to sys.stdout or sys.stderr, -IDLE should be started in a command line window. (On Windows, -use ``python`` or ``py`` rather than ``pythonw`` or ``pyw``.) -The secondary subprocess +IDLE should be started in a command line window. The secondary subprocess will then be attached to that window for input and output. If ``sys`` is reset by user code, such as with ``importlib.reload(sys)``, @@ -920,7 +894,7 @@ with the default subprocess if at all possible. .. deprecated:: 3.4 -Help and Preferences +Help and preferences -------------------- .. _help-sources: @@ -983,23 +957,3 @@ changed with the Extensions tab of the preferences dialog. See the beginning of config-extensions.def in the idlelib directory for further information. The only current default extension is zzdummy, an example also used for testing. - - -idlelib -------- - -.. module:: idlelib - :synopsis: Implementation package for the IDLE shell/editor. - -**Source code:** :source:`Lib/idlelib` - --------------- - -The Lib/idlelib package implements the IDLE application. See the rest -of this page for how to use IDLE. - -The files in idlelib are described in idlelib/README.txt. Access it -either in idlelib or click Help => About IDLE on the IDLE menu. This -file also maps IDLE menu items to the code that implements the item. -Except for files listed under 'Startup', the idlelib code is 'private' in -sense that feature changes can be backported (see :pep:`434`). diff --git a/Doc/library/imaplib.rst b/Doc/library/imaplib.rst index 0c10e7afee401f..65681ec093598c 100644 --- a/Doc/library/imaplib.rst +++ b/Doc/library/imaplib.rst @@ -26,8 +26,6 @@ implement a large subset of the IMAP4rev1 client protocol as defined in :rfc:`2060`. It is backward compatible with IMAP4 (:rfc:`1730`) servers, but note that the ``STATUS`` command is not supported in IMAP4. -.. include:: ../includes/wasm-notavail.rst - Three classes are provided by the :mod:`imaplib` module, :class:`IMAP4` is the base class: diff --git a/Doc/library/importlib.metadata.rst b/Doc/library/importlib.metadata.rst index a1af7a754ba4ef..d40ed70d5cd83f 100644 --- a/Doc/library/importlib.metadata.rst +++ b/Doc/library/importlib.metadata.rst @@ -13,13 +13,13 @@ **Source code:** :source:`Lib/importlib/metadata/__init__.py` -``importlib.metadata`` is a library that provides access to installed -package metadata, such as its entry points or its -top-level name. Built in part on Python's import system, this library +``importlib.metadata`` is a library that provides for access to installed +package metadata. Built in part on Python's import system, this library intends to replace similar functionality in the `entry point API`_ and `metadata API`_ of ``pkg_resources``. Along with -:mod:`importlib.resources`, -this package can eliminate the need to use the older and less efficient +:mod:`importlib.resources` (with new features backported to the +`importlib_resources`_ package), this can eliminate the need to use the older +and less efficient ``pkg_resources`` package. By "installed package" we generally mean a third-party package installed into @@ -32,13 +32,6 @@ By default, package metadata can live on the file system or in zip archives on anywhere. -.. seealso:: - - https://importlib-metadata.readthedocs.io/ - The documentation for ``importlib_metadata``, which supplies a - backport of ``importlib.metadata``. - - Overview ======== @@ -61,9 +54,9 @@ You can get the version string for ``wheel`` by running the following: >>> version('wheel') # doctest: +SKIP '0.32.3' -You can also get a collection of entry points selectable by properties of the EntryPoint (typically 'group' or 'name'), such as +You can also get the set of entry points keyed by group, such as ``console_scripts``, ``distutils.commands`` and others. Each group contains a -collection of :ref:`EntryPoint <entry-points>` objects. +sequence of :ref:`EntryPoint <entry-points>` objects. You can get the :ref:`metadata for a distribution <metadata>`:: @@ -98,7 +91,7 @@ Query all entry points:: >>> eps = entry_points() # doctest: +SKIP The ``entry_points()`` function returns an ``EntryPoints`` object, -a collection of all ``EntryPoint`` objects with ``names`` and ``groups`` +a sequence of all ``EntryPoint`` objects with ``names`` and ``groups`` attributes for convenience:: >>> sorted(eps.groups) # doctest: +SKIP @@ -143,7 +136,7 @@ Inspect the resolved entry point:: The ``group`` and ``name`` are arbitrary values defined by the package author and usually a client will wish to resolve all entry points for a particular group. Read `the setuptools docs -<https://setuptools.pypa.io/en/latest/userguide/entry_point.html>`_ +<https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins>`_ for more information on entry points, their definition, and usage. *Compatibility Note* @@ -181,13 +174,6 @@ all the metadata in a JSON-compatible form per :PEP:`566`:: >>> wheel_metadata.json['requires_python'] '>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*' -.. note:: - - The actual type of the object returned by ``metadata()`` is an - implementation detail and should be accessed only through the interface - described by the - `PackageMetadata protocol <https://importlib-metadata.readthedocs.io/en/latest/api.html#importlib_metadata.PackageMetadata>`. - .. versionchanged:: 3.10 The ``Description`` is now included in the metadata when presented through the payload. Line continuation characters have been removed. @@ -309,15 +295,6 @@ The full set of available metadata is not described here. See :pep:`566` for additional details. -Distribution Discovery -====================== - -By default, this package provides built-in support for discovery of metadata for file system and zip file packages. This metadata finder search defaults to ``sys.path``, but varies slightly in how it interprets those values from how other import machinery does. In particular: - -- ``importlib.metadata`` does not honor :class:`bytes` objects on ``sys.path``. -- ``importlib.metadata`` will incidentally honor :py:class:`pathlib.Path` objects on ``sys.path`` even though such values will be ignored for imports. - - Extending the search algorithm ============================== diff --git a/Doc/library/importlib.resources.abc.rst b/Doc/library/importlib.resources.abc.rst index 57fffe0d905cbe..6b0e1e04c8852a 100644 --- a/Doc/library/importlib.resources.abc.rst +++ b/Doc/library/importlib.resources.abc.rst @@ -1,15 +1,3 @@ -:mod:`importlib.resources.abc` -- Abstract base classes for resources ---------------------------------------------------------------------- - -.. module:: importlib.resources.abc - :synopsis: Abstract base classes for resources - -**Source code:** :source:`Lib/importlib/resources/abc.py` - --------------- - -.. versionadded:: 3.11 - .. class:: ResourceReader *Superseded by TraversableResources* @@ -45,9 +33,6 @@ .. versionadded:: 3.7 - .. deprecated-removed:: 3.12 3.14 - Use :class:`importlib.resources.abc.TraversableResources` instead. - .. abstractmethod:: open_resource(resource) Returns an opened, :term:`file-like object` for binary reading @@ -87,6 +72,251 @@ The abstract method returns an iterable of no items. +.. class:: ResourceLoader + + An abstract base class for a :term:`loader` which implements the optional + :pep:`302` protocol for loading arbitrary resources from the storage + back-end. + + .. deprecated:: 3.7 + This ABC is deprecated in favour of supporting resource loading + through :class:`importlib.abc.ResourceReader`. + + .. abstractmethod:: get_data(path) + + An abstract method to return the bytes for the data located at *path*. + Loaders that have a file-like storage back-end + that allows storing arbitrary data + can implement this abstract method to give direct access + to the data stored. :exc:`OSError` is to be raised if the *path* cannot + be found. The *path* is expected to be constructed using a module's + :attr:`__file__` attribute or an item from a package's :attr:`__path__`. + + .. versionchanged:: 3.4 + Raises :exc:`OSError` instead of :exc:`NotImplementedError`. + + +.. class:: InspectLoader + + An abstract base class for a :term:`loader` which implements the optional + :pep:`302` protocol for loaders that inspect modules. + + .. method:: get_code(fullname) + + Return the code object for a module, or ``None`` if the module does not + have a code object (as would be the case, for example, for a built-in + module). Raise an :exc:`ImportError` if loader cannot find the + requested module. + + .. note:: + While the method has a default implementation, it is suggested that + it be overridden if possible for performance. + + .. index:: + single: universal newlines; importlib.abc.InspectLoader.get_source method + + .. versionchanged:: 3.4 + No longer abstract and a concrete implementation is provided. + + .. abstractmethod:: get_source(fullname) + + An abstract method to return the source of a module. It is returned as + a text string using :term:`universal newlines`, translating all + recognized line separators into ``'\n'`` characters. Returns ``None`` + if no source is available (e.g. a built-in module). Raises + :exc:`ImportError` if the loader cannot find the module specified. + + .. versionchanged:: 3.4 + Raises :exc:`ImportError` instead of :exc:`NotImplementedError`. + + .. method:: is_package(fullname) + + An optional method to return a true value if the module is a package, a + false value otherwise. :exc:`ImportError` is raised if the + :term:`loader` cannot find the module. + + .. versionchanged:: 3.4 + Raises :exc:`ImportError` instead of :exc:`NotImplementedError`. + + .. staticmethod:: source_to_code(data, path='<string>') + + Create a code object from Python source. + + The *data* argument can be whatever the :func:`compile` function + supports (i.e. string or bytes). The *path* argument should be + the "path" to where the source code originated from, which can be an + abstract concept (e.g. location in a zip file). + + With the subsequent code object one can execute it in a module by + running ``exec(code, module.__dict__)``. + + .. versionadded:: 3.4 + + .. versionchanged:: 3.5 + Made the method static. + + .. method:: exec_module(module) + + Implementation of :meth:`Loader.exec_module`. + + .. versionadded:: 3.4 + + .. method:: load_module(fullname) + + Implementation of :meth:`Loader.load_module`. + + .. deprecated:: 3.4 + use :meth:`exec_module` instead. + + +.. class:: ExecutionLoader + + An abstract base class which inherits from :class:`InspectLoader` that, + when implemented, helps a module to be executed as a script. The ABC + represents an optional :pep:`302` protocol. + + .. abstractmethod:: get_filename(fullname) + + An abstract method that is to return the value of :attr:`__file__` for + the specified module. If no path is available, :exc:`ImportError` is + raised. + + If source code is available, then the method should return the path to + the source file, regardless of whether a bytecode was used to load the + module. + + .. versionchanged:: 3.4 + Raises :exc:`ImportError` instead of :exc:`NotImplementedError`. + + +.. class:: FileLoader(fullname, path) + + An abstract base class which inherits from :class:`ResourceLoader` and + :class:`ExecutionLoader`, providing concrete implementations of + :meth:`ResourceLoader.get_data` and :meth:`ExecutionLoader.get_filename`. + + The *fullname* argument is a fully resolved name of the module the loader is + to handle. The *path* argument is the path to the file for the module. + + .. versionadded:: 3.3 + + .. attribute:: name + + The name of the module the loader can handle. + + .. attribute:: path + + Path to the file of the module. + + .. method:: load_module(fullname) + + Calls super's ``load_module()``. + + .. deprecated:: 3.4 + Use :meth:`Loader.exec_module` instead. + + .. abstractmethod:: get_filename(fullname) + + Returns :attr:`path`. + + .. abstractmethod:: get_data(path) + + Reads *path* as a binary file and returns the bytes from it. + + +.. class:: SourceLoader + + An abstract base class for implementing source (and optionally bytecode) + file loading. The class inherits from both :class:`ResourceLoader` and + :class:`ExecutionLoader`, requiring the implementation of: + + * :meth:`ResourceLoader.get_data` + * :meth:`ExecutionLoader.get_filename` + Should only return the path to the source file; sourceless + loading is not supported. + + The abstract methods defined by this class are to add optional bytecode + file support. Not implementing these optional methods (or causing them to + raise :exc:`NotImplementedError`) causes the loader to + only work with source code. Implementing the methods allows the loader to + work with source *and* bytecode files; it does not allow for *sourceless* + loading where only bytecode is provided. Bytecode files are an + optimization to speed up loading by removing the parsing step of Python's + compiler, and so no bytecode-specific API is exposed. + + .. method:: path_stats(path) + + Optional abstract method which returns a :class:`dict` containing + metadata about the specified path. Supported dictionary keys are: + + - ``'mtime'`` (mandatory): an integer or floating-point number + representing the modification time of the source code; + - ``'size'`` (optional): the size in bytes of the source code. + + Any other keys in the dictionary are ignored, to allow for future + extensions. If the path cannot be handled, :exc:`OSError` is raised. + + .. versionadded:: 3.3 + + .. versionchanged:: 3.4 + Raise :exc:`OSError` instead of :exc:`NotImplementedError`. + + .. method:: path_mtime(path) + + Optional abstract method which returns the modification time for the + specified path. + + .. deprecated:: 3.3 + This method is deprecated in favour of :meth:`path_stats`. You don't + have to implement it, but it is still available for compatibility + purposes. Raise :exc:`OSError` if the path cannot be handled. + + .. versionchanged:: 3.4 + Raise :exc:`OSError` instead of :exc:`NotImplementedError`. + + .. method:: set_data(path, data) + + Optional abstract method which writes the specified bytes to a file + path. Any intermediate directories which do not exist are to be created + automatically. + + When writing to the path fails because the path is read-only + (:attr:`errno.EACCES`/:exc:`PermissionError`), do not propagate the + exception. + + .. versionchanged:: 3.4 + No longer raises :exc:`NotImplementedError` when called. + + .. method:: get_code(fullname) + + Concrete implementation of :meth:`InspectLoader.get_code`. + + .. method:: exec_module(module) + + Concrete implementation of :meth:`Loader.exec_module`. + + .. versionadded:: 3.4 + + .. method:: load_module(fullname) + + Concrete implementation of :meth:`Loader.load_module`. + + .. deprecated:: 3.4 + Use :meth:`exec_module` instead. + + .. method:: get_source(fullname) + + Concrete implementation of :meth:`InspectLoader.get_source`. + + .. method:: is_package(fullname) + + Concrete implementation of :meth:`InspectLoader.is_package`. A module + is determined to be a package if its file path (as provided by + :meth:`ExecutionLoader.get_filename`) is a file named + ``__init__`` when the file extension is removed **and** the module name + itself does not end in ``__init__``. + + .. class:: Traversable An object with a subset of pathlib.Path methods suitable for @@ -94,9 +324,6 @@ .. versionadded:: 3.9 - .. deprecated-removed:: 3.12 3.14 - Use :class:`importlib.resources.abc.Traversable` instead. - .. attribute:: name Abstract. The base name of this object without any parent references. @@ -142,8 +369,8 @@ An abstract base class for resource readers capable of serving the :meth:`importlib.resources.files` interface. Subclasses - :class:`importlib.resources.abc.ResourceReader` and provides - concrete implementations of the :class:`importlib.resources.abc.ResourceReader`'s + :class:`importlib.abc.ResourceReader` and provides + concrete implementations of the :class:`importlib.abc.ResourceReader`'s abstract methods. Therefore, any loader supplying :class:`importlib.abc.TraversableReader` also supplies ResourceReader. @@ -152,10 +379,7 @@ .. versionadded:: 3.9 - .. deprecated-removed:: 3.12 3.14 - Use :class:`importlib.resources.abc.TraversableResources` instead. - .. abstractmethod:: files() - Returns a :class:`importlib.resources.abc.Traversable` object for the loaded + Returns a :class:`importlib.abc.Traversable` object for the loaded package. diff --git a/Doc/library/importlib.resources.rst b/Doc/library/importlib.resources.rst index 827e7d8d5aced4..f62d15dd6fdc9e 100644 --- a/Doc/library/importlib.resources.rst +++ b/Doc/library/importlib.resources.rst @@ -4,7 +4,7 @@ .. module:: importlib.resources :synopsis: Package resource reading, opening, and access -**Source code:** :source:`Lib/importlib/resources/__init__.py` +**Source code:** :source:`Lib/importlib/resources.py` -------------- @@ -17,54 +17,63 @@ text mode. Resources are roughly akin to files inside directories, though it's important to keep in mind that this is just a metaphor. Resources and packages **do -not** have to exist as physical files and directories on the file system: -for example, a package and its resources can be imported from a zip file using -:py:mod:`zipimport`. +not** have to exist as physical files and directories on the file system. .. note:: This module provides functionality similar to `pkg_resources <https://setuptools.readthedocs.io/en/latest/pkg_resources.html>`_ `Basic Resource Access - <https://setuptools.readthedocs.io/en/latest/pkg_resources.html#basic-resource-access>`_ + <http://setuptools.readthedocs.io/en/latest/pkg_resources.html#basic-resource-access>`_ without the performance overhead of that package. This makes reading resources included in packages easier, with more stable and consistent semantics. The standalone backport of this module provides more information on `using importlib.resources - <https://importlib-resources.readthedocs.io/en/latest/using.html>`_ and + <http://importlib-resources.readthedocs.io/en/latest/using.html>`_ and `migrating from pkg_resources to importlib.resources - <https://importlib-resources.readthedocs.io/en/latest/migration.html>`_. + <http://importlib-resources.readthedocs.io/en/latest/migration.html>`_ + and + `migrating legacy usage <https://importlib-resources.readthedocs.io/en/latest/using.html#migrating-from-legacy>`_. -:class:`Loaders <importlib.abc.Loader>` that wish to support resource reading should implement a +Loaders that wish to support resource reading should implement a ``get_resource_reader(fullname)`` method as specified by -:class:`importlib.resources.abc.ResourceReader`. +:class:`importlib.abc.ResourceReader`. + +The following types are defined. .. data:: Package - Whenever a function accepts a ``Package`` argument, you can pass in - either a :class:`module object <types.ModuleType>` or a module name - as a string. You can only pass module objects whose - ``__spec__.submodule_search_locations`` is not ``None``. + The ``Package`` type is defined as ``Union[str, ModuleType]``. This means + that where the function describes accepting a ``Package``, you can pass in + either a string or a module. Module objects must have a resolvable + ``__spec__.submodule_search_locations`` that is not ``None``. + +.. data:: Resource + + This type describes the resource names passed into the various functions + in this package. This is defined as ``Union[str, os.PathLike]``. + + +The following functions are available. - The ``Package`` type is defined as ``Union[str, ModuleType]``. .. function:: files(package) - Returns a :class:`~importlib.resources.abc.Traversable` object + Returns an :class:`importlib.resources.abc.Traversable` object representing the resource container for the package (think directory) and its resources (think files). A Traversable may contain other containers (think subdirectories). *package* is either a name or a module object which conforms to the - :data:`Package` requirements. + ``Package`` requirements. .. versionadded:: 3.9 .. function:: as_file(traversable) - Given a :class:`~importlib.resources.abc.Traversable` object representing + Given a :class:`importlib.resources.abc.Traversable` object representing a file, typically from :func:`importlib.resources.files`, return a context manager for use in a :keyword:`with` statement. The context manager provides a :class:`pathlib.Path` object. @@ -78,22 +87,6 @@ for example, a package and its resources can be imported from a zip file using .. versionadded:: 3.9 -Deprecated functions --------------------- - -An older, deprecated set of functions is still available, but is -scheduled for removal in a future version of Python. -The main drawback of these functions is that they do not support -directories: they assume all resources are located directly within a *package*. - -.. data:: Resource - - For *resource* arguments of the functions below, you can pass in - the name of a resource as a string or - a :class:`path-like object <os.PathLike>`. - - The ``Resource`` type is defined as ``Union[str, os.PathLike]``. - .. function:: open_binary(package, resource) Open for binary reading the *resource* within *package*. @@ -104,11 +97,7 @@ directories: they assume all resources are located directly within a *package*. sub-resources (i.e. it cannot be a directory). This function returns a ``typing.BinaryIO`` instance, a binary I/O stream open for reading. - .. deprecated:: 3.11 - - Calls to this function can be replaced by:: - - files(package).joinpath(resource).open('rb') + .. deprecated:: 3.11 .. function:: open_text(package, resource, encoding='utf-8', errors='strict') @@ -125,11 +114,7 @@ directories: they assume all resources are located directly within a *package*. This function returns a ``typing.TextIO`` instance, a text I/O stream open for reading. - .. deprecated:: 3.11 - - Calls to this function can be replaced by:: - - files(package).joinpath(resource).open('r', encoding=encoding) + .. deprecated:: 3.11 .. function:: read_binary(package, resource) @@ -143,11 +128,7 @@ directories: they assume all resources are located directly within a *package*. sub-resources (i.e. it cannot be a directory). This function returns the contents of the resource as :class:`bytes`. - .. deprecated:: 3.11 - - Calls to this function can be replaced by:: - - files(package).joinpath(resource).read_bytes() + .. deprecated:: 3.11 .. function:: read_text(package, resource, encoding='utf-8', errors='strict') @@ -162,11 +143,7 @@ directories: they assume all resources are located directly within a *package*. have the same meaning as with built-in :func:`open`. This function returns the contents of the resource as :class:`str`. - .. deprecated:: 3.11 - - Calls to this function can be replaced by:: - - files(package).joinpath(resource).read_text(encoding=encoding) + .. deprecated:: 3.11 .. function:: path(package, resource) @@ -183,26 +160,17 @@ directories: they assume all resources are located directly within a *package*. within *package*; it may not contain path separators and it may not have sub-resources (i.e. it cannot be a directory). - .. deprecated:: 3.11 - - Calls to this function can be replaced using :func:`as_file`:: - - as_file(files(package).joinpath(resource)) + .. deprecated:: 3.11 .. function:: is_resource(package, name) Return ``True`` if there is a resource named *name* in the package, - otherwise ``False``. - This function does not consider directories to be resources. + otherwise ``False``. Remember that directories are *not* resources! *package* is either a name or a module object which conforms to the ``Package`` requirements. - .. deprecated:: 3.11 - - Calls to this function can be replaced by:: - - files(package).joinpath(resource).is_file() + .. deprecated:: 3.11 .. function:: contents(package) @@ -214,8 +182,4 @@ directories: they assume all resources are located directly within a *package*. *package* is either a name or a module object which conforms to the ``Package`` requirements. - .. deprecated:: 3.11 - - Calls to this function can be replaced by:: - - (resource.name for resource in files(package).iterdir() if resource.is_file()) + .. deprecated:: 3.11 diff --git a/Doc/library/importlib.rst b/Doc/library/importlib.rst index 0fd765f5985f7c..aac556e2c68d94 100644 --- a/Doc/library/importlib.rst +++ b/Doc/library/importlib.rst @@ -401,7 +401,7 @@ ABC hierarchy:: Loaders that wish to support resource reading should implement a :meth:`get_resource_reader` method as specified by - :class:`importlib.resources.abc.ResourceReader`. + :class:`importlib.abc.ResourceReader`. .. versionchanged:: 3.7 Introduced the optional :meth:`get_resource_reader` method. @@ -450,7 +450,7 @@ ABC hierarchy:: reloaded): - :attr:`__name__` - The module's fully qualified name. + The module's fully-qualified name. It is ``'__main__'`` for an executed module. - :attr:`__file__` @@ -471,7 +471,7 @@ ABC hierarchy:: as an indicator that the module is a package. - :attr:`__package__` - The fully qualified name of the package the module is in (or the + The fully-qualified name of the package the module is in (or the empty string for a top-level module). If the module is a package then this is the same as :attr:`__name__`. @@ -493,251 +493,22 @@ ABC hierarchy:: other responsibilities of :meth:`load_module` when :meth:`exec_module` is implemented. + .. method:: module_repr(module) -.. class:: ResourceLoader - - An abstract base class for a :term:`loader` which implements the optional - :pep:`302` protocol for loading arbitrary resources from the storage - back-end. - - .. deprecated:: 3.7 - This ABC is deprecated in favour of supporting resource loading - through :class:`importlib.resources.abc.ResourceReader`. - - .. abstractmethod:: get_data(path) - - An abstract method to return the bytes for the data located at *path*. - Loaders that have a file-like storage back-end - that allows storing arbitrary data - can implement this abstract method to give direct access - to the data stored. :exc:`OSError` is to be raised if the *path* cannot - be found. The *path* is expected to be constructed using a module's - :attr:`__file__` attribute or an item from a package's :attr:`__path__`. - - .. versionchanged:: 3.4 - Raises :exc:`OSError` instead of :exc:`NotImplementedError`. - - -.. class:: InspectLoader - - An abstract base class for a :term:`loader` which implements the optional - :pep:`302` protocol for loaders that inspect modules. - - .. method:: get_code(fullname) - - Return the code object for a module, or ``None`` if the module does not - have a code object (as would be the case, for example, for a built-in - module). Raise an :exc:`ImportError` if loader cannot find the - requested module. - - .. note:: - While the method has a default implementation, it is suggested that - it be overridden if possible for performance. - - .. index:: - single: universal newlines; importlib.abc.InspectLoader.get_source method - - .. versionchanged:: 3.4 - No longer abstract and a concrete implementation is provided. - - .. abstractmethod:: get_source(fullname) - - An abstract method to return the source of a module. It is returned as - a text string using :term:`universal newlines`, translating all - recognized line separators into ``'\n'`` characters. Returns ``None`` - if no source is available (e.g. a built-in module). Raises - :exc:`ImportError` if the loader cannot find the module specified. - - .. versionchanged:: 3.4 - Raises :exc:`ImportError` instead of :exc:`NotImplementedError`. - - .. method:: is_package(fullname) - - An optional method to return a true value if the module is a package, a - false value otherwise. :exc:`ImportError` is raised if the - :term:`loader` cannot find the module. - - .. versionchanged:: 3.4 - Raises :exc:`ImportError` instead of :exc:`NotImplementedError`. - - .. staticmethod:: source_to_code(data, path='<string>') - - Create a code object from Python source. - - The *data* argument can be whatever the :func:`compile` function - supports (i.e. string or bytes). The *path* argument should be - the "path" to where the source code originated from, which can be an - abstract concept (e.g. location in a zip file). - - With the subsequent code object one can execute it in a module by - running ``exec(code, module.__dict__)``. - - .. versionadded:: 3.4 - - .. versionchanged:: 3.5 - Made the method static. - - .. method:: exec_module(module) - - Implementation of :meth:`Loader.exec_module`. - - .. versionadded:: 3.4 - - .. method:: load_module(fullname) - - Implementation of :meth:`Loader.load_module`. - - .. deprecated:: 3.4 - use :meth:`exec_module` instead. - - -.. class:: ExecutionLoader - - An abstract base class which inherits from :class:`InspectLoader` that, - when implemented, helps a module to be executed as a script. The ABC - represents an optional :pep:`302` protocol. - - .. abstractmethod:: get_filename(fullname) - - An abstract method that is to return the value of :attr:`__file__` for - the specified module. If no path is available, :exc:`ImportError` is - raised. - - If source code is available, then the method should return the path to - the source file, regardless of whether a bytecode was used to load the - module. - - .. versionchanged:: 3.4 - Raises :exc:`ImportError` instead of :exc:`NotImplementedError`. - - -.. class:: FileLoader(fullname, path) - - An abstract base class which inherits from :class:`ResourceLoader` and - :class:`ExecutionLoader`, providing concrete implementations of - :meth:`ResourceLoader.get_data` and :meth:`ExecutionLoader.get_filename`. - - The *fullname* argument is a fully resolved name of the module the loader is - to handle. The *path* argument is the path to the file for the module. - - .. versionadded:: 3.3 - - .. attribute:: name - - The name of the module the loader can handle. - - .. attribute:: path - - Path to the file of the module. - - .. method:: load_module(fullname) - - Calls super's ``load_module()``. - - .. deprecated:: 3.4 - Use :meth:`Loader.exec_module` instead. - - .. abstractmethod:: get_filename(fullname) - - Returns :attr:`path`. - - .. abstractmethod:: get_data(path) - - Reads *path* as a binary file and returns the bytes from it. - - -.. class:: SourceLoader - - An abstract base class for implementing source (and optionally bytecode) - file loading. The class inherits from both :class:`ResourceLoader` and - :class:`ExecutionLoader`, requiring the implementation of: - - * :meth:`ResourceLoader.get_data` - * :meth:`ExecutionLoader.get_filename` - Should only return the path to the source file; sourceless - loading is not supported. - - The abstract methods defined by this class are to add optional bytecode - file support. Not implementing these optional methods (or causing them to - raise :exc:`NotImplementedError`) causes the loader to - only work with source code. Implementing the methods allows the loader to - work with source *and* bytecode files; it does not allow for *sourceless* - loading where only bytecode is provided. Bytecode files are an - optimization to speed up loading by removing the parsing step of Python's - compiler, and so no bytecode-specific API is exposed. - - .. method:: path_stats(path) - - Optional abstract method which returns a :class:`dict` containing - metadata about the specified path. Supported dictionary keys are: - - - ``'mtime'`` (mandatory): an integer or floating-point number - representing the modification time of the source code; - - ``'size'`` (optional): the size in bytes of the source code. - - Any other keys in the dictionary are ignored, to allow for future - extensions. If the path cannot be handled, :exc:`OSError` is raised. + A legacy method which when implemented calculates and returns the given + module's representation, as a string. The module type's default + :meth:`__repr__` will use the result of this method as appropriate. .. versionadded:: 3.3 .. versionchanged:: 3.4 - Raise :exc:`OSError` instead of :exc:`NotImplementedError`. - - .. method:: path_mtime(path) - - Optional abstract method which returns the modification time for the - specified path. - - .. deprecated:: 3.3 - This method is deprecated in favour of :meth:`path_stats`. You don't - have to implement it, but it is still available for compatibility - purposes. Raise :exc:`OSError` if the path cannot be handled. - - .. versionchanged:: 3.4 - Raise :exc:`OSError` instead of :exc:`NotImplementedError`. - - .. method:: set_data(path, data) - - Optional abstract method which writes the specified bytes to a file - path. Any intermediate directories which do not exist are to be created - automatically. - - When writing to the path fails because the path is read-only - (:attr:`errno.EACCES`/:exc:`PermissionError`), do not propagate the - exception. - - .. versionchanged:: 3.4 - No longer raises :exc:`NotImplementedError` when called. - - .. method:: get_code(fullname) - - Concrete implementation of :meth:`InspectLoader.get_code`. + Made optional instead of an abstractmethod. - .. method:: exec_module(module) - - Concrete implementation of :meth:`Loader.exec_module`. - - .. versionadded:: 3.4 - - .. method:: load_module(fullname) - - Concrete implementation of :meth:`Loader.load_module`. - - .. deprecated:: 3.4 - Use :meth:`exec_module` instead. - - .. method:: get_source(fullname) - - Concrete implementation of :meth:`InspectLoader.get_source`. - - .. method:: is_package(fullname) + .. deprecated:: 3.4 + The import machinery now takes care of this automatically. - Concrete implementation of :meth:`InspectLoader.is_package`. A module - is determined to be a package if its file path (as provided by - :meth:`ExecutionLoader.get_filename`) is a file named - ``__init__`` when the file extension is removed **and** the module name - itself does not end in ``__init__``. +.. include:: importlib.resources.abc.rst :mod:`importlib.machinery` -- Importers and path hooks @@ -1128,7 +899,7 @@ find and load modules. (:attr:`__name__`) - The module's fully qualified name. + The module's fully-qualified name. The :term:`finder` should always set this attribute to a non-empty string. .. attribute:: loader @@ -1177,7 +948,7 @@ find and load modules. (:attr:`__package__`) - (Read-only) The fully qualified name of the package the module is in (or the + (Read-only) The fully-qualified name of the package the module is in (or the empty string for a top-level module). If the module is a package then this is the same as :attr:`name`. diff --git a/Doc/library/inspect.rst b/Doc/library/inspect.rst index 700cd9122cd34c..154d0f5dab0cd1 100644 --- a/Doc/library/inspect.rst +++ b/Doc/library/inspect.rst @@ -187,7 +187,7 @@ attributes: | | co_name | name with which this code | | | | object was defined | +-----------+-------------------+---------------------------+ -| | co_qualname | fully qualified name with | +| | co_qualname | fully-qualified name with | | | | which this code object | | | | was defined | +-----------+-------------------+---------------------------+ @@ -1130,7 +1130,7 @@ Classes and functions doesn't have its own annotations dict, returns an empty dict. * All accesses to object members and dict values are done using ``getattr()`` and ``dict.get()`` for safety. - * Always, always, always returns a freshly created dict. + * Always, always, always returns a freshly-created dict. ``eval_str`` controls whether or not values of type ``str`` are replaced with the result of calling :func:`eval()` on those values: diff --git a/Doc/library/intro.rst b/Doc/library/intro.rst index 1020924038e91f..5bb33b9c10cc03 100644 --- a/Doc/library/intro.rst +++ b/Doc/library/intro.rst @@ -60,62 +60,3 @@ Notes on availability * If not separately noted, all functions that claim "Availability: Unix" are supported on macOS, which builds on a Unix core. -* If an availability note contains both a minimum Kernel version and a minimum - libc version, then both conditions must hold. For example a feature with note - *Availability: Linux >= 3.17 with glibc >= 2.27* requires both Linux 3.17 or - newer and glibc 2.27 or newer. - -.. _wasm-availability: - -WebAssembly platforms ---------------------- - -The `WebAssembly`_ platforms ``wasm32-emscripten`` (`Emscripten`_) and -``wasm32-wasi`` (`WASI`_) provide a subset of POSIX APIs. WebAssembly runtimes -and browsers are sandboxed and have limited access to the host and external -resources. Any Python standard library module that uses processes, threading, -networking, signals, or other forms of inter-process communication (IPC), is -either not available or may not work as on other Unix-like systems. File I/O, -file system, and Unix permission-related functions are restricted, too. -Emscripten does not permit blocking I/O. Other blocking operations like -:func:`~time.sleep` block the browser event loop. - -The properties and behavior of Python on WebAssembly platforms depend on the -`Emscripten`_-SDK or `WASI`_-SDK version, WASM runtimes (browser, NodeJS, -`wasmtime`_), and Python build time flags. WebAssembly, Emscripten, and WASI -are evolving standards; some features like networking may be -supported in the future. - -For Python in the browser, users should consider `Pyodide`_ or `PyScript`_. -PyScript is built on top of Pyodide, which itself is built on top of -CPython and Emscripten. Pyodide provides access to browsers' JavaScript and -DOM APIs as well as limited networking capabilities with JavaScript's -``XMLHttpRequest`` and ``Fetch`` APIs. - -* Process-related APIs are not available or always fail with an error. That - includes APIs that spawn new processes (:func:`~os.fork`, - :func:`~os.execve`), wait for processes (:func:`~os.waitpid`), send signals - (:func:`~os.kill`), or otherwise interact with processes. The - :mod:`subprocess` is importable but does not work. - -* The :mod:`socket` module is available, but is limited and behaves - differently from other platforms. On Emscripten, sockets are always - non-blocking and require additional JavaScript code and helpers on the - server to proxy TCP through WebSockets; see `Emscripten Networking`_ - for more information. WASI snapshot preview 1 only permits sockets from an - existing file descriptor. - -* Some functions are stubs that either don't do anything and always return - hardcoded values. - -* Functions related to file descriptors, file permissions, file ownership, and - links are limited and don't support some operations. For example, WASI does - not permit symlinks with absolute file names. - -.. _WebAssembly: https://webassembly.org/ -.. _Emscripten: https://emscripten.org/ -.. _Emscripten Networking: https://emscripten.org/docs/porting/networking.html> -.. _WASI: https://wasi.dev/ -.. _wasmtime: https://wasmtime.dev/ -.. _Pyodide: https://pyodide.org/ -.. _PyScript: https://pyscript.net/ diff --git a/Doc/library/io.rst b/Doc/library/io.rst index 97a70646a93cab..d8e7b1621e2ea8 100644 --- a/Doc/library/io.rst +++ b/Doc/library/io.rst @@ -1042,7 +1042,7 @@ Text I/O The method supports ``encoding="locale"`` option. -.. class:: StringIO(initial_value='', newline='\n') +.. class:: StringIO(initial_value='', newline='\\n') A text stream using an in-memory text buffer. It inherits :class:`TextIOBase`. @@ -1052,12 +1052,8 @@ Text I/O The initial value of the buffer can be set by providing *initial_value*. If newline translation is enabled, newlines will be encoded as if by - :meth:`~TextIOBase.write`. The stream is positioned at the start of the - buffer which emulates opening an existing file in a `w+` mode, making it - ready for an immediate write from the beginning or for a write that - would overwrite the initial value. To emulate opening a file in an `a+` - mode ready for appending, use `f.seek(0, io.SEEK_END)` to reposition the - stream at the end of the buffer. + :meth:`~TextIOBase.write`. The stream is positioned at the start of + the buffer. The *newline* argument works like that of :class:`TextIOWrapper`, except that when writing output to the stream, if *newline* is ``None``, diff --git a/Doc/library/itertools.rst b/Doc/library/itertools.rst index 9a6e061fa0f2e6..416c4eca5eb48a 100644 --- a/Doc/library/itertools.rst +++ b/Doc/library/itertools.rst @@ -314,7 +314,7 @@ loops that truncate the stream. def count(start=0, step=1): # count(10) --> 10 11 12 13 14 ... - # count(2.5, 0.5) --> 2.5 3.0 3.5 ... + # count(2.5, 0.5) -> 2.5 3.0 3.5 ... n = start while True: yield n @@ -668,7 +668,7 @@ loops that truncate the stream. the tee objects being informed. ``tee`` iterators are not threadsafe. A :exc:`RuntimeError` may be - raised when simultaneously using iterators returned by the same :func:`tee` + raised when using simultaneously iterators returned by the same :func:`tee` call, even if the original *iterable* is threadsafe. This itertool may require significant auxiliary storage (depending on how @@ -739,7 +739,7 @@ which incur interpreter overhead. def prepend(value, iterator): "Prepend a single value in front of an iterator" - # prepend(1, [2, 3, 4]) --> 1 2 3 4 + # prepend(1, [2, 3, 4]) -> 1 2 3 4 return chain([value], iterator) def tabulate(function, start=0): @@ -800,28 +800,6 @@ which incur interpreter overhead. window.append(x) yield sum(map(operator.mul, kernel, window)) - def polynomial_from_roots(roots): - """Compute a polynomial's coefficients from its roots. - - (x - 5) (x + 4) (x - 3) expands to: x³ -4x² -17x + 60 - """ - # polynomial_from_roots([5, -4, 3]) --> [1, -4, -17, 60] - roots = list(map(operator.neg, roots)) - return [ - sum(map(math.prod, combinations(roots, k))) - for k in range(len(roots) + 1) - ] - - def sieve(n): - "Primes less than n" - # sieve(30) --> 2 3 5 7 11 13 17 19 23 29 - data = bytearray([1]) * n - data[:2] = 0, 0 - limit = math.isqrt(n) + 1 - for p in compress(count(), islice(data, limit)): - data[p+p : n : p] = bytearray(len(range(p+p, n, p))) - return compress(count(), data) - def flatten(list_of_lists): "Flatten one level of nesting" return chain.from_iterable(list_of_lists) @@ -852,12 +830,12 @@ which incur interpreter overhead. def triplewise(iterable): "Return overlapping triplets from an iterable" - # triplewise('ABCDEFG') --> ABC BCD CDE DEF EFG + # triplewise('ABCDEFG') -> ABC BCD CDE DEF EFG for (a, _), (b, c) in pairwise(pairwise(iterable)): yield a, b, c def sliding_window(iterable, n): - # sliding_window('ABCDEFG', 4) --> ABCD BCDE CDEF DEFG + # sliding_window('ABCDEFG', 4) -> ABCD BCDE CDEF DEFG it = iter(iterable) window = collections.deque(islice(it, n), maxlen=n) if len(window) == n: @@ -1089,7 +1067,6 @@ which incur interpreter overhead. >>> import operator >>> import collections >>> import math - >>> import random >>> take(10, count()) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] @@ -1139,6 +1116,7 @@ which incur interpreter overhead. >>> list(repeatfunc(pow, 5, 2, 3)) [8, 8, 8, 8, 8] + >>> import random >>> take(5, map(int, repeatfunc(random.random))) [0, 0, 0, 0, 0] @@ -1159,29 +1137,10 @@ which incur interpreter overhead. >>> list(convolve(data, [1, -2, 1])) [20, 0, -36, 24, -20, 20, -20, -4, 16] - >>> polynomial_from_roots([5, -4, 3]) - [1, -4, -17, 60] - >>> factored = lambda x: (x - 5) * (x + 4) * (x - 3) - >>> expanded = lambda x: x**3 -4*x**2 -17*x + 60 - >>> all(factored(x) == expanded(x) for x in range(-10, 11)) - True - - >>> list(sieve(30)) - [2, 3, 5, 7, 11, 13, 17, 19, 23, 29] - >>> len(list(sieve(100))) - 25 - >>> len(list(sieve(1_000))) - 168 - >>> len(list(sieve(10_000))) - 1229 - >>> len(list(sieve(100_000))) - 9592 - >>> len(list(sieve(1_000_000))) - 78498 - >>> list(flatten([('a', 'b'), (), ('c', 'd', 'e'), ('f',), ('g', 'h', 'i')])) ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'] + >>> import random >>> random.seed(85753098575309) >>> list(repeatfunc(random.random, 3)) [0.16370491282496968, 0.45889608687313455, 0.3747076837820118] diff --git a/Doc/library/json.rst b/Doc/library/json.rst index d05d62e78cc71e..1e203242327cad 100644 --- a/Doc/library/json.rst +++ b/Doc/library/json.rst @@ -9,11 +9,6 @@ **Source code:** :source:`Lib/json/__init__.py` -.. testsetup:: * - - import json - from json import AttrDict - -------------- `JSON (JavaScript Object Notation) <https://json.org>`_, specified by @@ -23,11 +18,6 @@ is a lightweight data interchange format inspired by `JavaScript <https://en.wikipedia.org/wiki/JavaScript>`_ object literal syntax (although it is not a strict subset of JavaScript [#rfc-errata]_ ). -.. warning:: - Be cautious when parsing JSON data from untrusted sources. A malicious - JSON string may cause the decoder to consume considerable CPU and memory - resources. Limiting the size of data to be parsed is recommended. - :mod:`json` exposes an API familiar to users of the standard library :mod:`marshal` and :mod:`pickle` modules. @@ -236,7 +226,7 @@ Basic Usage *object_hook* is an optional function that will be called with the result of any object literal decoded (a :class:`dict`). The return value of *object_hook* will be used instead of the :class:`dict`. This feature can be used - to implement custom decoders (e.g. `JSON-RPC <https://www.jsonrpc.org>`_ + to implement custom decoders (e.g. `JSON-RPC <http://www.jsonrpc.org>`_ class hinting). *object_pairs_hook* is an optional function that will be called with the @@ -258,12 +248,6 @@ Basic Usage be used to use another datatype or parser for JSON integers (e.g. :class:`float`). - .. versionchanged:: 3.12 - The default *parse_int* of :func:`int` now limits the maximum length of - the integer string via the interpreter's :ref:`integer string - conversion length limitation <int_max_str_digits>` to help avoid denial - of service attacks. - *parse_constant*, if specified, will be called with one of the following strings: ``'-Infinity'``, ``'Infinity'``, ``'NaN'``. This can be used to raise an exception if invalid JSON numbers @@ -342,7 +326,7 @@ Encoders and Decoders *object_hook*, if specified, will be called with the result of every JSON object decoded and its return value will be used in place of the given :class:`dict`. This can be used to provide custom deserializations (e.g. to - support `JSON-RPC <https://www.jsonrpc.org>`_ class hinting). + support `JSON-RPC <http://www.jsonrpc.org>`_ class hinting). *object_pairs_hook*, if specified will be called with the result of every JSON object decoded with an ordered list of pairs. The return value of @@ -548,44 +532,6 @@ Exceptions .. versionadded:: 3.5 -.. class:: AttrDict(**kwargs) - AttrDict(mapping, **kwargs) - AttrDict(iterable, **kwargs) - - Subclass of :class:`dict` object that also supports attribute style dotted access. - - This class is intended for use with the :attr:`object_hook` in - :func:`json.load` and :func:`json.loads`:: - - .. doctest:: - - >>> json_string = '{"mercury": 88, "venus": 225, "earth": 365, "mars": 687}' - >>> orbital_period = json.loads(json_string, object_hook=AttrDict) - >>> orbital_period['earth'] # Dict style lookup - 365 - >>> orbital_period.earth # Attribute style lookup - 365 - >>> orbital_period.keys() # All dict methods are present - dict_keys(['mercury', 'venus', 'earth', 'mars']) - - Attribute style access only works for keys that are valid attribute - names. In contrast, dictionary style access works for all keys. For - example, ``d.two words`` contains a space and is not syntactically - valid Python, so ``d["two words"]`` should be used instead. - - If a key has the same name as a dictionary method, then a dictionary - lookup finds the key and an attribute lookup finds the method: - - .. doctest:: - - >>> d = AttrDict(items=50) - >>> d['items'] # Lookup the key - 50 - >>> d.items() # Call the method - dict_items([('items', 50)]) - - .. versionadded:: 3.12 - Standard Compliance and Interoperability ---------------------------------------- diff --git a/Doc/library/locale.rst b/Doc/library/locale.rst index 5bb09b68ca138c..112f0bae78daf9 100644 --- a/Doc/library/locale.rst +++ b/Doc/library/locale.rst @@ -301,7 +301,7 @@ The :mod:`locale` module defines the following exception and functions: *language code* and *encoding* may be ``None`` if their values cannot be determined. - .. deprecated-removed:: 3.11 3.13 + .. deprecated:: 3.11 3.13 .. function:: getlocale(category=LC_CTYPE) @@ -375,7 +375,7 @@ The :mod:`locale` module defines the following exception and functions: The default setting is determined by calling :func:`getdefaultlocale`. *category* defaults to :const:`LC_ALL`. - .. deprecated-removed:: 3.11 3.13 + .. deprecated:: 3.11 3.13 .. function:: strcoll(string1, string2) @@ -412,6 +412,18 @@ The :mod:`locale` module defines the following exception and functions: The *monetary* keyword parameter was added. +.. function:: format(format, val, grouping=False, monetary=False) + + Please note that this function works like :meth:`format_string` but will + only work for exactly one ``%char`` specifier. For example, ``'%f'`` and + ``'%.0f'`` are both valid specifiers, but ``'%f KiB'`` is not. + + For whole format strings, use :func:`format_string`. + + .. deprecated:: 3.7 + Use :meth:`format_string` instead. + + .. function:: currency(val, symbol=True, grouping=False, international=False) Formats a number *val* according to the current :const:`LC_MONETARY` settings. @@ -495,7 +507,7 @@ The :mod:`locale` module defines the following exception and functions: .. data:: LC_NUMERIC - Locale category for formatting numbers. The functions :func:`format_string`, + Locale category for formatting numbers. The functions :func:`.format`, :func:`atoi`, :func:`atof` and :func:`.str` of the :mod:`locale` module are affected by that category. All other numeric formatting operations are not affected. @@ -557,7 +569,7 @@ document that your module is not compatible with non-\ ``C`` locale settings. The only way to perform numeric operations according to the locale is to use the special functions defined by this module: :func:`atof`, :func:`atoi`, -:func:`format_string`, :func:`.str`. +:func:`.format`, :func:`.str`. There is no way to perform case conversions and character classifications according to the locale. For (Unicode) text strings these are done according diff --git a/Doc/library/logging.config.rst b/Doc/library/logging.config.rst index 9b82c1f75e3f07..310796e7ac6b14 100644 --- a/Doc/library/logging.config.rst +++ b/Doc/library/logging.config.rst @@ -534,25 +534,6 @@ mnemonic that the corresponding value is a callable. The ``filters`` member of ``handlers`` and ``loggers`` can take filter instances in addition to ids. -You can also specify a special key ``'.'`` whose value is a dictionary is a -mapping of attribute names to values. If found, the specified attributes will -be set on the user-defined object before it is returned. Thus, with the -following configuration:: - - { - '()' : 'my.package.customFormatterFactory', - 'bar' : 'baz', - 'spam' : 99.9, - 'answer' : 42, - '.' { - 'foo': 'bar', - 'baz': 'bozz' - } - } - -the returned formatter will have attribute ``foo`` set to ``'bar'`` and -attribute ``baz`` set to ``'bozz'``. - .. _logging-config-dict-externalobj: @@ -680,76 +661,6 @@ it with :func:`staticmethod`. For example:: You don't need to wrap with :func:`staticmethod` if you're setting the import callable on a configurator *instance*. -.. _configure-queue: - -Configuring QueueHandler and QueueListener -"""""""""""""""""""""""""""""""""""""""""" - -If you want to configure a :class:`~logging.handlers.QueueHandler`, noting that this -is normally used in conjunction with a :class:`~logging.handlers.QueueListener`, you -can configure both together. After the configuration, the ``QueueListener`` instance -will be available as the :attr:`~logging.handlers.QueueHandler.listener` attribute of -the created handler, and that in turn will be available to you using -:func:`~logging.getHandlerByName` and passing the name you have used for the -``QueueHandler`` in your configuration. The dictionary schema for configuring the pair -is shown in the example YAML snippet below. - -.. code-block:: yaml - - handlers: - qhand: - class: logging.handlers.QueueHandler - queue: my.module.queue_factory - listener: my.package.CustomListener - handlers: - - hand_name_1 - - hand_name_2 - ... - -The ``queue`` and ``listener`` keys are optional. - -If the ``queue`` key is present, the corresponding value can be one of the following: - -* An actual instance of :class:`queue.Queue` or a subclass thereof. This is of course - only possible if you are constructing or modifying the configuration dictionary in - code. - -* A string that resolves to a callable which, when called with no arguments, returns - the :class:`queue.Queue` instance to use. That callable could be a - :class:`queue.Queue` subclass or a function which returns a suitable queue instance, - such as ``my.module.queue_factory()``. - -* A dict with a ``'()'`` key which is constructed in the usual way as discussed in - :ref:`logging-config-dict-userdef`. The result of this construction should be a - :class:`queue.Queue` instance. - -If the ``queue`` key is absent, a standard unbounded :class:`queue.Queue` instance is -created and used. - -If the ``listener`` key is present, the corresponding value can be one of the following: - -* A subclass of :class:`logging.handlers.QueueListener`. This is of course only - possible if you are constructing or modifying the configuration dictionary in - code. - -* A string which resolves to a class which is a subclass of ``QueueListener``, such as - ``'my.package.CustomListener'``. - -* A dict with a ``'()'`` key which is constructed in the usual way as discussed in - :ref:`logging-config-dict-userdef`. The result of this construction should be a - callable with the same signature as the ``QueueListener`` initializer. - -If the ``listener`` key is absent, :class:`logging.handlers.QueueListener` is used. - -The values under the ``handlers`` key are the names of other handlers in the -configuration (not shown in the above snippet) which will be passed to the queue -listener. - -Any custom queue handler and listener classes will need to be defined with the same -initialization signatures as :class:`~logging.handlers.QueueHandler` and -:class:`~logging.handlers.QueueListener`. - -.. versionadded:: 3.12 .. _logging-config-fileformat: diff --git a/Doc/library/logging.handlers.rst b/Doc/library/logging.handlers.rst index f3b26e726aafc7..f5ef80ea044c66 100644 --- a/Doc/library/logging.handlers.rst +++ b/Doc/library/logging.handlers.rst @@ -572,13 +572,6 @@ over UDP sockets. Returns a new instance of the :class:`DatagramHandler` class intended to communicate with a remote machine whose address is given by *host* and *port*. - .. note:: As UDP is not a streaming protocol, there is no persistent connection - between an instance of this handler and *host*. For this reason, when using a - network socket, a DNS lookup might have to be made each time an event is - logged, which can introduce some latency into the system. If this affects you, - you can do a lookup yourself and initialize this handler using the looked-up IP - address rather than the hostname. - .. versionchanged:: 3.4 If ``port`` is specified as ``None``, a Unix domain socket is created using the value in ``host`` - otherwise, a UDP socket is created. @@ -636,12 +629,6 @@ supports sending logging messages to a remote or local Unix syslog. application needs to run on several platforms). On Windows, you pretty much have to use the UDP option. - .. note:: On macOS 12.x (Monterey), Apple has changed the behaviour of their - syslog daemon - it no longer listens on a domain socket. Therefore, you cannot - expect :class:`SysLogHandler` to work on this system. - - See :gh:`91070` for more information. - .. versionchanged:: 3.2 *socktype* was added. @@ -1031,8 +1018,6 @@ possible, while any potentially slow operations (such as sending an email via have the task tracking API, which means that you can use :class:`~queue.SimpleQueue` instances for *queue*. - .. note:: If you are using :mod:`multiprocessing`, you should avoid using - :class:`~queue.SimpleQueue` and instead use :class:`multiprocessing.Queue`. .. method:: emit(record) @@ -1049,7 +1034,7 @@ possible, while any potentially slow operations (such as sending an email via method is enqueued. The base implementation formats the record to merge the message, - arguments, exception and stack information, if present. It also removes + arguments, and exception information, if present. It also removes unpickleable items from the record in-place. Specifically, it overwrites the record's :attr:`msg` and :attr:`message` attributes with the merged message (obtained by calling the handler's :meth:`format` method), and @@ -1060,33 +1045,13 @@ possible, while any potentially slow operations (such as sending an email via the record to a dict or JSON string, or send a modified copy of the record while leaving the original intact. - .. note:: The base implementation formats the message with arguments, sets - the ``message`` and ``msg`` attributes to the formatted message and - sets the ``args`` and ``exc_text`` attributes to ``None`` to allow - pickling and to prevent further attempts at formatting. This means - that a handler on the :class:`QueueListener` side won't have the - information to do custom formatting, e.g. of exceptions. You may wish - to subclass ``QueueHandler`` and override this method to e.g. avoid - setting ``exc_text`` to ``None``. Note that the ``message`` / ``msg`` - / ``args`` changes are related to ensuring the record is pickleable, - and you might or might not be able to avoid doing that depending on - whether your ``args`` are pickleable. (Note that you may have to - consider not only your own code but also code in any libraries that - you use.) - .. method:: enqueue(record) Enqueues the record on the queue using ``put_nowait()``; you may want to override this if you want to use blocking behaviour, or a timeout, or a customized queue implementation. - .. attribute:: listener - - When created via configuration using :func:`~logging.config.dictConfig`, this - attribute will contain a :class:`QueueListener` instance for use with this - handler. Otherwise, it will be ``None``. - .. versionadded:: 3.12 .. _queue-listener: @@ -1120,9 +1085,6 @@ possible, while any potentially slow operations (such as sending an email via task tracking API (though it's used if available), which means that you can use :class:`~queue.SimpleQueue` instances for *queue*. - .. note:: If you are using :mod:`multiprocessing`, you should avoid using - :class:`~queue.SimpleQueue` and instead use :class:`multiprocessing.Queue`. - If ``respect_handler_level`` is ``True``, a handler's level is respected (compared with the level for the message) when deciding whether to pass messages to that handler; otherwise, the behaviour is as in previous Python diff --git a/Doc/library/logging.rst b/Doc/library/logging.rst index 8793627e119100..ac86bc8077ef74 100644 --- a/Doc/library/logging.rst +++ b/Doc/library/logging.rst @@ -30,17 +30,9 @@ is that all Python modules can participate in logging, so your application log can include your own messages integrated with messages from third-party modules. -The simplest example: - -.. code-block:: none - - >>> import logging - >>> logging.warning('Watch out!') - WARNING:root:Watch out! - The module provides a lot of functionality and flexibility. If you are -unfamiliar with logging, the best way to get to grips with it is to view the -tutorials (**see the links above and on the right**). +unfamiliar with logging, the best way to get to grips with it is to see the +tutorials (see the links on the right). The basic classes defined by the module, together with their functions, are listed below. @@ -170,18 +162,6 @@ is the module's name in the Python package namespace. .. versionadded:: 3.2 - .. method:: Logger.getChildren() - - Returns a set of loggers which are immediate children of this logger. So for - example ``logging.getLogger().getChildren()`` might return a set containing - loggers named ``foo`` and ``bar``, but a logger named ``foo.bar`` wouldn't be - included in the set. Likewise, ``logging.getLogger('foo').getChildren()`` might - return a set including a logger named ``foo.bar``, but it wouldn't include one - named ``foo.bar.baz``. - - .. versionadded:: 3.12 - - .. method:: Logger.debug(msg, *args, **kwargs) Logs a message with level :const:`DEBUG` on this logger. The *msg* is the @@ -245,7 +225,7 @@ is the module's name in the Python package namespace. 2006-02-08 22:20:02,165 192.168.0.1 fbloggs Protocol problem: connection reset The keys in the dictionary passed in *extra* should not clash with the keys used - by the logging system. (See the section on :ref:`logrecord-attributes` for more + by the logging system. (See the :class:`Formatter` documentation for more information on which keys are used by the logging system.) If you choose to use these attributes in logged messages, you need to exercise @@ -543,53 +523,55 @@ Formatter Objects .. currentmodule:: logging +:class:`Formatter` objects have the following attributes and methods. They are +responsible for converting a :class:`LogRecord` to (usually) a string which can +be interpreted by either a human or an external system. The base +:class:`Formatter` allows a formatting string to be specified. If none is +supplied, the default value of ``'%(message)s'`` is used, which just includes +the message in the logging call. To have additional items of information in the +formatted output (such as a timestamp), keep reading. + +A Formatter can be initialized with a format string which makes use of knowledge +of the :class:`LogRecord` attributes - such as the default value mentioned above +making use of the fact that the user's message and arguments are pre-formatted +into a :class:`LogRecord`'s *message* attribute. This format string contains +standard Python %-style mapping keys. See section :ref:`old-string-formatting` +for more information on string formatting. + +The useful mapping keys in a :class:`LogRecord` are given in the section on +:ref:`logrecord-attributes`. + + .. class:: Formatter(fmt=None, datefmt=None, style='%', validate=True, *, defaults=None) - Responsible for converting a :class:`LogRecord` to an output string - to be interpreted by a human or external system. - - :param fmt: A format string in the given *style* for - the logged output as a whole. - The possible mapping keys are drawn from the :class:`LogRecord` object's - :ref:`logrecord-attributes`. - If not specified, ``'%(message)s'`` is used, - which is just the logged message. - :type fmt: str - - :param datefmt: A format string in the given *style* for - the date/time portion of the logged output. - If not specified, the default described in :meth:`formatTime` is used. - :type datefmt: str - - :param style: Can be one of ``'%'``, ``'{'`` or ``'$'`` and determines - how the format string will be merged with its data: using one of - :ref:`old-string-formatting` (``%``), :meth:`str.format` (``{``) - or :class:`string.Template` (``$``). This only applies to - *fmt* and *datefmt* (e.g. ``'%(message)s'`` versus ``'{message}'``), - not to the actual log messages passed to the logging methods. - However, there are :ref:`other ways <formatting-styles>` - to use ``{``- and ``$``-formatting for log messages. - :type style: str - - :param validate: If ``True`` (the default), incorrect or mismatched - *fmt* and *style* will raise a :exc:`ValueError`; for example, - ``logging.Formatter('%(asctime)s - %(message)s', style='{')``. - :type validate: bool - - :param defaults: A dictionary with default values to use in custom fields. - For example, - ``logging.Formatter('%(ip)s %(message)s', defaults={"ip": None})`` - :type defaults: dict[str, Any] + Returns a new instance of the :class:`Formatter` class. The instance is + initialized with a format string for the message as a whole, as well as a + format string for the date/time portion of a message. If no *fmt* is + specified, ``'%(message)s'`` is used. If no *datefmt* is specified, a format + is used which is described in the :meth:`formatTime` documentation. - .. versionadded:: 3.2 - The *style* parameter. + The *style* parameter can be one of '%', '{' or '$' and determines how + the format string will be merged with its data: using one of %-formatting, + :meth:`str.format` or :class:`string.Template`. This only applies to the + format string *fmt* (e.g. ``'%(message)s'`` or ``{message}``), not to the + actual log messages passed to ``Logger.debug`` etc; see + :ref:`formatting-styles` for more information on using {- and $-formatting + for log messages. - .. versionadded:: 3.8 - The *validate* parameter. + The *defaults* parameter can be a dictionary with default values to use in + custom fields. For example: + ``logging.Formatter('%(ip)s %(message)s', defaults={"ip": None})`` - .. versionadded:: 3.10 - The *defaults* parameter. + .. versionchanged:: 3.2 + The *style* parameter was added. + .. versionchanged:: 3.8 + The *validate* parameter was added. Incorrect or mismatched style and fmt + will raise a ``ValueError``. + For example: ``logging.Formatter('%(asctime)s - %(message)s', style='{')``. + + .. versionchanged:: 3.10 + The *defaults* parameter was added. .. method:: format(record) @@ -662,35 +644,6 @@ Formatter Objects :func:`traceback.print_stack`, but with the last newline removed) as a string. This default implementation just returns the input value. -.. class:: BufferingFormatter(linefmt=None) - - A base formatter class suitable for subclassing when you want to format a - number of records. You can pass a :class:`Formatter` instance which you want - to use to format each line (that corresponds to a single record). If not - specified, the default formatter (which just outputs the event message) is - used as the line formatter. - - .. method:: formatHeader(records) - - Return a header for a list of *records*. The base implementation just - returns the empty string. You will need to override this method if you - want specific behaviour, e.g. to show the count of records, a title or a - separator line. - - .. method:: formatFooter(records) - - Return a footer for a list of *records*. The base implementation just - returns the empty string. You will need to override this method if you - want specific behaviour, e.g. to show the count of records or a separator - line. - - .. method:: format(records) - - Return formatted text for a list of *records*. The base implementation - just returns the empty string if there are no records; otherwise, it - returns the concatenation of the header, each record formatted with the - line formatter, and the footer. - .. _filter: Filter Objects @@ -713,10 +666,9 @@ empty string, all events are passed. .. method:: filter(record) - Is the specified record to be logged? Returns false for no, true for - yes. Filters can either modify log records in-place or return a completely - different record instance which will replace the original - log record in any future processing of the event. + Is the specified record to be logged? Returns zero for no, nonzero for + yes. If deemed appropriate, the record may be modified in-place by this + method. Note that filters attached to handlers are consulted before an event is emitted by the handler, whereas filters attached to loggers are consulted @@ -738,12 +690,6 @@ which has a ``filter`` method with the same semantics. parameter. The returned value should conform to that returned by :meth:`~Filter.filter`. -.. versionchanged:: 3.12 - You can now return a :class:`LogRecord` instance from filters to replace - the log record rather than modifying it in place. This allows filters attached to - a :class:`Handler` to modify the log record before it is emitted, without - having side effects on other handlers. - Although filters are used primarily to filter records based on more sophisticated criteria than levels, they get to see every record which is processed by the handler or logger they're attached to: this can be useful if @@ -753,7 +699,6 @@ the :class:`LogRecord` being processed. Obviously changing the LogRecord needs to be done with some care, but it does allow the injection of contextual information into logs (see :ref:`filters-contextual`). - .. _log-record: LogRecord Objects @@ -769,54 +714,32 @@ wire). Contains all the information pertinent to the event being logged. - The primary information is passed in *msg* and *args*, - which are combined using ``msg % args`` to create - the :attr:`!message` attribute of the record. - - :param name: The name of the logger used to log the event - represented by this :class:`!LogRecord`. - Note that the logger name in the :class:`!LogRecord` - will always have this value, - even though it may be emitted by a handler - attached to a different (ancestor) logger. - :type name: str - - :param level: The :ref:`numeric level <levels>` of the logging event - (such as ``10`` for ``DEBUG``, ``20`` for ``INFO``, etc). - Note that this is converted to *two* attributes of the LogRecord: - :attr:`!levelno` for the numeric value - and :attr:`!levelname` for the corresponding level name. - :type level: int - - :param pathname: The full string path of the source file - where the logging call was made. - :type pathname: str - - :param lineno: The line number in the source file - where the logging call was made. - :type lineno: int - - :param msg: The event description message, - which can be a %-format string with placeholders for variable data. - :type msg: str - - :param args: Variable data to merge into the *msg* argument - to obtain the event description. - :type args: tuple | dict[str, typing.Any] - + The primary information is passed in :attr:`msg` and :attr:`args`, which + are combined using ``msg % args`` to create the :attr:`message` field of the + record. + + :param name: The name of the logger used to log the event represented by + this LogRecord. Note that this name will always have this + value, even though it may be emitted by a handler attached to + a different (ancestor) logger. + :param level: The numeric level of the logging event (one of DEBUG, INFO etc.) + Note that this is converted to *two* attributes of the LogRecord: + ``levelno`` for the numeric value and ``levelname`` for the + corresponding level name. + :param pathname: The full pathname of the source file where the logging call + was made. + :param lineno: The line number in the source file where the logging call was + made. + :param msg: The event description message, possibly a format string with + placeholders for variable data. + :param args: Variable data to merge into the *msg* argument to obtain the + event description. :param exc_info: An exception tuple with the current exception information, - as returned by :func:`sys.exc_info`, - or ``None`` if no exception information is available. - :type exc_info: tuple[type[BaseException], BaseException, types.TracebackType] | None - - :param func: The name of the function or method - from which the logging call was invoked. - :type func: str | None - - :param sinfo: A text string representing stack information - from the base of the stack in the current thread, - up to the logging call. - :type sinfo: str | None + or ``None`` if no exception information is available. + :param func: The name of the function or method from which the logging call + was invoked. + :param sinfo: A text string representing stack information from the base of + the stack in the current thread, up to the logging call. .. method:: getMessage() @@ -1241,19 +1164,6 @@ functions. This undocumented behaviour was considered a mistake, and was removed in Python 3.4, but reinstated in 3.4.2 due to retain backward compatibility. -.. function:: getHandlerByName(name) - - Returns a handler with the specified *name*, or ``None`` if there is no handler - with that name. - - .. versionadded:: 3.12 - -.. function:: getHandlerNames() - - Returns an immutable set of all known handler names. - - .. versionadded:: 3.12 - .. function:: makeLogRecord(attrdict) Creates and returns a new :class:`LogRecord` instance whose attributes are diff --git a/Doc/library/mailbox.rst b/Doc/library/mailbox.rst index d74fc8059fd538..94d95d10290b00 100644 --- a/Doc/library/mailbox.rst +++ b/Doc/library/mailbox.rst @@ -1510,7 +1510,7 @@ The following exception classes are defined in the :mod:`mailbox` module: Raised when some mailbox-related condition beyond the control of the program causes it to be unable to proceed, such as when failing to acquire a lock that - another program already holds a lock, or when a uniquely generated file name + another program already holds a lock, or when a uniquely-generated file name already exists. diff --git a/Doc/library/mailcap.rst b/Doc/library/mailcap.rst index bfaedb46091991..5490c8468d7cf7 100644 --- a/Doc/library/mailcap.rst +++ b/Doc/library/mailcap.rst @@ -60,18 +60,6 @@ standard. However, mailcap files are supported on most Unix systems. use) to determine whether or not the mailcap line applies. :func:`findmatch` will automatically check such conditions and skip the entry if the check fails. - .. versionchanged:: 3.11 - - To prevent security issues with shell metacharacters (symbols that have - special effects in a shell command line), ``findmatch`` will refuse - to inject ASCII characters other than alphanumerics and ``@+=:,./-_`` - into the returned command line. - - If a disallowed character appears in *filename*, ``findmatch`` will always - return ``(None, None)`` as if no entry was found. - If such a character appears elsewhere (a value in *plist* or in *MIMEtype*), - ``findmatch`` will ignore all mailcap entries which use that value. - A :mod:`warning <warnings>` will be raised in either case. .. function:: getcaps() diff --git a/Doc/library/math.rst b/Doc/library/math.rst index e338959ffbe4bf..5efcc7f6a6efc4 100644 --- a/Doc/library/math.rst +++ b/Doc/library/math.rst @@ -108,7 +108,7 @@ Number-theoretic and representation functions .. function:: fsum(iterable) Return an accurate floating point sum of values in the iterable. Avoids - loss of precision by tracking multiple intermediate partial sums: + loss of precision by tracking multiple intermediate partial sums:: >>> sum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1]) 0.9999999999999999 @@ -371,7 +371,7 @@ Power and logarithmic functions logarithms. For small floats *x*, the subtraction in ``exp(x) - 1`` can result in a `significant loss of precision <https://en.wikipedia.org/wiki/Loss_of_significance>`_\; the :func:`expm1` - function provides a way to compute this quantity to full precision: + function provides a way to compute this quantity to full precision:: >>> from math import exp, expm1 >>> exp(1e-5) - 1 # gives result accurate to 11 places @@ -578,7 +578,7 @@ Special functions The :func:`erf` function can be used to compute traditional statistical functions such as the `cumulative standard normal distribution - <https://en.wikipedia.org/wiki/Normal_distribution#Cumulative_distribution_functions>`_:: + <https://en.wikipedia.org/wiki/Normal_distribution#Cumulative_distribution_function>`_:: def phi(x): 'Cumulative distribution function for the standard normal distribution' @@ -654,7 +654,7 @@ Constants not considered to equal to any other numeric value, including themselves. To check whether a number is a NaN, use the :func:`isnan` function to test for NaNs instead of ``is`` or ``==``. - Example: + Example:: >>> import math >>> math.nan == math.nan diff --git a/Doc/library/mmap.rst b/Doc/library/mmap.rst index c4f8781f2ac993..d19580cd7ee5ce 100644 --- a/Doc/library/mmap.rst +++ b/Doc/library/mmap.rst @@ -6,8 +6,6 @@ -------------- -.. include:: ../includes/wasm-notavail.rst - Memory-mapped file objects behave like both :class:`bytearray` and like :term:`file objects <file object>`. You can use mmap objects in most places where :class:`bytearray` are expected; for example, you can use the :mod:`re` @@ -104,7 +102,7 @@ To map anonymous memory, -1 should be passed as the fileno along with the length To ensure validity of the created memory mapping the file specified by the descriptor *fileno* is internally automatically synchronized - with the physical backing store on macOS. + with physical backing store on macOS and OpenVMS. This example shows a simple way of using :class:`~mmap.mmap`:: diff --git a/Doc/library/modules.rst b/Doc/library/modules.rst index 8c5936a4d8de2b..6cf6eb28a1e058 100644 --- a/Doc/library/modules.rst +++ b/Doc/library/modules.rst @@ -18,6 +18,5 @@ The full list of modules described in this chapter is: runpy.rst importlib.rst importlib.resources.rst - importlib.resources.abc.rst importlib.metadata.rst sys_path_init.rst diff --git a/Doc/library/multiprocessing.rst b/Doc/library/multiprocessing.rst index caf24a35fdfc84..2a66b0f65c0882 100644 --- a/Doc/library/multiprocessing.rst +++ b/Doc/library/multiprocessing.rst @@ -8,8 +8,6 @@ -------------- -.. include:: ../includes/wasm-notavail.rst - Introduction ------------ @@ -45,16 +43,6 @@ will print to standard output :: [1, 4, 9] -.. seealso:: - - :class:`concurrent.futures.ProcessPoolExecutor` offers a higher level interface - to push tasks to a background process without blocking execution of the - calling process. Compared to using the :class:`~multiprocessing.pool.Pool` - interface directly, the :mod:`concurrent.futures` API more readily allows - the submission of work to the underlying process pool to be separated from - waiting for the results. - - The :class:`Process` class ~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -108,7 +96,7 @@ Depending on the platform, :mod:`multiprocessing` supports three ways to start a process. These *start methods* are *spawn* - The parent process starts a fresh Python interpreter process. The + The parent process starts a fresh python interpreter process. The child process will only inherit those resources necessary to run the process object's :meth:`~Process.run` method. In particular, unnecessary file descriptors and handles from the parent process @@ -1718,7 +1706,7 @@ their parent process exits. The manager classes are defined in the shutdown times out, the process is terminated. If terminating the process also times out, the process is killed. - .. versionchanged:: 3.11 + .. versionchanged: 3.11 Added the *shutdown_timeout* parameter. .. method:: start([initializer[, initargs]]) diff --git a/Doc/library/multiprocessing.shared_memory.rst b/Doc/library/multiprocessing.shared_memory.rst index 127a82d47aa195..2ba42b7e579a77 100644 --- a/Doc/library/multiprocessing.shared_memory.rst +++ b/Doc/library/multiprocessing.shared_memory.rst @@ -1,5 +1,5 @@ -:mod:`multiprocessing.shared_memory` --- Shared memory for direct access across processes -========================================================================================= +:mod:`multiprocessing.shared_memory` --- Provides shared memory for direct access across processes +=================================================================================================== .. module:: multiprocessing.shared_memory :synopsis: Provides shared memory for direct access across processes. diff --git a/Doc/library/nis.rst b/Doc/library/nis.rst index 3fa7916c37b6a5..fd3c3d9293d247 100644 --- a/Doc/library/nis.rst +++ b/Doc/library/nis.rst @@ -21,8 +21,6 @@ central administration of several hosts. Because NIS exists only on Unix systems, this module is only available for Unix. -.. include:: ../includes/wasm-notavail.rst - The :mod:`nis` module defines the following functions: diff --git a/Doc/library/nntplib.rst b/Doc/library/nntplib.rst index 143e4e0c427f9a..2a996e451bf7c5 100644 --- a/Doc/library/nntplib.rst +++ b/Doc/library/nntplib.rst @@ -14,23 +14,6 @@ .. deprecated:: 3.11 The :mod:`nntplib` module is deprecated (see :pep:`594` for details). -.. testsetup:: - - import warnings - with warnings.catch_warnings(): - warnings.simplefilter('ignore', category=DeprecationWarning) - import nntplib - -.. testcleanup:: - - try: - s.quit() - except NameError: - pass - import sys - # Force a warning if any other file imports nntplib - sys.modules.pop('nntplib') - -------------- This module defines the class :class:`NNTP` which implements the client side of @@ -38,8 +21,6 @@ the Network News Transfer Protocol. It can be used to implement a news reader or poster, or automated news processors. It is compatible with :rfc:`3977` as well as the older :rfc:`977` and :rfc:`2980`. -.. include:: ../includes/wasm-notavail.rst - Here are two small examples of how it can be used. To list some statistics about a newsgroup and print the subjects of the last 10 articles:: diff --git a/Doc/library/numbers.rst b/Doc/library/numbers.rst index b3dce151aee289..b12f82ed75a6f8 100644 --- a/Doc/library/numbers.rst +++ b/Doc/library/numbers.rst @@ -58,14 +58,11 @@ The numeric tower .. class:: Rational - Subtypes :class:`Real` and adds :attr:`~Rational.numerator` and - :attr:`~Rational.denominator` properties. It also provides a default for + Subtypes :class:`Real` and adds + :attr:`~Rational.numerator` and :attr:`~Rational.denominator` properties, which + should be in lowest terms. With these, it provides a default for :func:`float`. - The :attr:`~Rational.numerator` and :attr:`~Rational.denominator` values - should be instances of :class:`Integral` and should be in lowest terms with - :attr:`~Rational.denominator` positive. - .. attribute:: numerator Abstract. diff --git a/Doc/library/optparse.rst b/Doc/library/optparse.rst index 47e62553fb0358..0d686b10365a6d 100644 --- a/Doc/library/optparse.rst +++ b/Doc/library/optparse.rst @@ -529,7 +529,7 @@ help message: line-wrapping---\ :mod:`optparse` takes care of wrapping lines and making the help output look good. -* options that take a value indicate this fact in their automatically generated +* options that take a value indicate this fact in their automatically-generated help message, e.g. for the "mode" option:: -m MODE, --mode=MODE @@ -539,7 +539,7 @@ help message: :mod:`optparse` converts the destination variable name to uppercase and uses that for the meta-variable. Sometimes, that's not what you want---for example, the ``--filename`` option explicitly sets ``metavar="FILE"``, - resulting in this automatically generated option description:: + resulting in this automatically-generated option description:: -f FILE, --filename=FILE @@ -1449,7 +1449,7 @@ intelligently and add conflicting options to it:: parser.add_option("-n", "--dry-run", ..., help="do no harm") parser.add_option("-n", "--noisy", ..., help="be noisy") -At this point, :mod:`optparse` detects that a previously added option is already +At this point, :mod:`optparse` detects that a previously-added option is already using the ``-n`` option string. Since ``conflict_handler`` is ``"resolve"``, it resolves the situation by removing ``-n`` from the earlier option's list of option strings. Now ``--dry-run`` is the only way for the user to activate @@ -1460,7 +1460,7 @@ that option. If the user asks for help, the help message will reflect that:: ... -n, --noisy be noisy -It's possible to whittle away the option strings for a previously added option +It's possible to whittle away the option strings for a previously-added option until there are none left, and the user has no way of invoking that option from the command-line. In that case, :mod:`optparse` removes that option completely, so it doesn't show up in help text or anywhere else. Carrying on with our diff --git a/Doc/library/os.path.rst b/Doc/library/os.path.rst index 7c35f3cafd12e7..ce7913e3712d73 100644 --- a/Doc/library/os.path.rst +++ b/Doc/library/os.path.rst @@ -335,7 +335,7 @@ the :mod:`glob` module.) .. note:: On POSIX systems, in accordance with `IEEE Std 1003.1 2013 Edition; 4.13 - Pathname Resolution <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_13>`_, + Pathname Resolution <http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_13>`_, if a pathname begins with exactly two slashes, the first component following the leading characters may be interpreted in an implementation-defined manner, although more than two leading characters shall be treated as a @@ -469,7 +469,7 @@ the :mod:`glob` module.) ("c:", "/dir") If the path contains a UNC path, drive will contain the host name - and share:: + and share, up to but not including the fourth separator:: >>> splitdrive("//host/computer/dir") ("//host/computer", "/dir") diff --git a/Doc/library/os.rst b/Doc/library/os.rst index eb154633e71376..dc0f2e4158ac0e 100644 --- a/Doc/library/os.rst +++ b/Doc/library/os.rst @@ -34,14 +34,6 @@ Notes on the availability of these functions: * On VxWorks, os.popen, os.fork, os.execv and os.spawn*p* are not supported. -* On WebAssembly platforms ``wasm32-emscripten`` and ``wasm32-wasi``, large - parts of the :mod:`os` module are not available or behave differently. API - related to processes (e.g. :func:`~os.fork`, :func:`~os.execve`), signals - (e.g. :func:`~os.kill`, :func:`~os.wait`), and resources - (e.g. :func:`~os.nice`) are not available. Others like :func:`~os.getuid` - and :func:`~os.getpid` are emulated or stubs. - - .. note:: All functions in this module raise :exc:`OSError` (or subclasses thereof) in @@ -173,7 +165,7 @@ process and user. Return the filename corresponding to the controlling terminal of the process. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. data:: environ @@ -309,7 +301,7 @@ process and user. and ``'surrogateescape'`` error handler. Use :func:`os.getenvb` if you would like to use a different encoding. - .. availability:: Unix, Windows. + .. availability:: most flavors of Unix, Windows. .. function:: getenvb(key, default=None) @@ -324,7 +316,7 @@ process and user. :func:`getenvb` is only available if :data:`supports_bytes_environ` is ``True``. - .. availability:: Unix. + .. availability:: most flavors of Unix. .. versionadded:: 3.2 @@ -345,7 +337,7 @@ process and user. Return the effective group id of the current process. This corresponds to the "set id" bit on the file being executed in the current process. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. function:: geteuid() @@ -354,7 +346,7 @@ process and user. Return the current process's effective user id. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. function:: getgid() @@ -365,9 +357,6 @@ process and user. .. availability:: Unix. - The function is a stub on Emscripten and WASI, see - :ref:`wasm-availability` for more information. - .. function:: getgrouplist(user, group) @@ -376,7 +365,7 @@ process and user. field from the password record for *user*, because that group ID will otherwise be potentially omitted. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. versionadded:: 3.3 @@ -385,7 +374,7 @@ process and user. Return list of supplemental group ids associated with the current process. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. note:: @@ -413,7 +402,7 @@ process and user. falls back to ``pwd.getpwuid(os.getuid())[0]`` to get the login name of the current real user id. - .. availability:: Unix, Windows, not Emscripten, not WASI. + .. availability:: Unix, Windows. .. function:: getpgid(pid) @@ -421,7 +410,7 @@ process and user. Return the process group id of the process with process id *pid*. If *pid* is 0, the process group id of the current process is returned. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. function:: getpgrp() @@ -429,7 +418,7 @@ process and user. Return the id of the current process group. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. function:: getpid() @@ -438,8 +427,6 @@ process and user. Return the current process id. - The function is a stub on Emscripten and WASI, see - :ref:`wasm-availability` for more information. .. function:: getppid() @@ -449,7 +436,7 @@ process and user. the id returned is the one of the init process (1), on Windows it is still the same id, which may be already reused by another process. - .. availability:: Unix, Windows, not Emscripten, not WASI. + .. availability:: Unix, Windows. .. versionchanged:: 3.2 Added support for Windows. @@ -467,7 +454,7 @@ process and user. (respectively) the calling process, the process group of the calling process, or the real user ID of the calling process. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. versionadded:: 3.3 @@ -478,7 +465,7 @@ process and user. Parameters for the :func:`getpriority` and :func:`setpriority` functions. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. versionadded:: 3.3 @@ -488,7 +475,7 @@ process and user. Return a tuple (ruid, euid, suid) denoting the current process's real, effective, and saved user ids. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. versionadded:: 3.2 @@ -498,7 +485,7 @@ process and user. Return a tuple (rgid, egid, sgid) denoting the current process's real, effective, and saved group ids. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. versionadded:: 3.2 @@ -511,9 +498,6 @@ process and user. .. availability:: Unix. - The function is a stub on Emscripten and WASI, see - :ref:`wasm-availability` for more information. - .. function:: initgroups(username, gid) @@ -521,7 +505,7 @@ process and user. the groups of which the specified username is a member, plus the specified group id. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. versionadded:: 3.2 @@ -555,21 +539,21 @@ process and user. Set the current process's effective group id. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. function:: seteuid(euid) Set the current process's effective user id. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. function:: setgid(gid) Set the current process' group id. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. function:: setgroups(groups) @@ -578,7 +562,7 @@ process and user. *groups*. *groups* must be a sequence, and each element must be an integer identifying a group. This operation is typically available only to the superuser. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. note:: On macOS, the length of *groups* may not exceed the system-defined maximum number of effective group ids, typically 16. @@ -590,7 +574,7 @@ process and user. Call the system call :c:func:`setpgrp` or ``setpgrp(0, 0)`` depending on which version is implemented (if any). See the Unix manual for the semantics. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. function:: setpgid(pid, pgrp) @@ -599,7 +583,7 @@ process and user. process with id *pid* to the process group with id *pgrp*. See the Unix manual for the semantics. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. function:: setpriority(which, who, priority) @@ -616,7 +600,7 @@ process and user. *priority* is a value in the range -20 to 19. The default priority is 0; lower priorities cause more favorable scheduling. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. versionadded:: 3.3 @@ -625,14 +609,14 @@ process and user. Set the current process's real and effective group ids. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. function:: setresgid(rgid, egid, sgid) Set the current process's real, effective, and saved group ids. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. versionadded:: 3.2 @@ -641,7 +625,7 @@ process and user. Set the current process's real, effective, and saved user ids. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. versionadded:: 3.2 @@ -650,21 +634,21 @@ process and user. Set the current process's real and effective user ids. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. function:: getsid(pid) Call the system call :c:func:`getsid`. See the Unix manual for the semantics. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. function:: setsid() Call the system call :c:func:`setsid`. See the Unix manual for the semantics. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. function:: setuid(uid) @@ -673,7 +657,7 @@ process and user. Set the current process's user id. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. placed in this section since it relates to errno.... a little weak @@ -696,9 +680,6 @@ process and user. Set the current numeric umask and return the previous umask. - The function is a stub on Emscripten and WASI, see - :ref:`wasm-availability` for more information. - .. function:: uname() @@ -725,7 +706,7 @@ process and user. :func:`socket.gethostname` or even ``socket.gethostbyaddr(socket.gethostname())``. - .. availability:: Unix. + .. availability:: recent flavors of Unix. .. versionchanged:: 3.3 Return type changed from a tuple to a tuple-like object @@ -817,33 +798,19 @@ as internal buffering of data. Copy *count* bytes from file descriptor *src*, starting from offset *offset_src*, to file descriptor *dst*, starting from offset *offset_dst*. If *offset_src* is None, then *src* is read from the current position; - respectively for *offset_dst*. - - In Linux kernel older than 5.3, the files pointed by *src* and *dst* + respectively for *offset_dst*. The files pointed by *src* and *dst* must reside in the same filesystem, otherwise an :exc:`OSError` is raised with :attr:`~OSError.errno` set to :data:`errno.EXDEV`. This copy is done without the additional cost of transferring data from the kernel to user space and then back into the kernel. Additionally, - some filesystems could implement extra optimizations, such as the use of - reflinks (i.e., two or more inodes that share pointers to the same - copy-on-write disk blocks; supported file systems include btrfs and XFS) - and server-side copy (in the case of NFS). - - The function copies bytes between two file descriptors. Text options, like - the encoding and the line ending, are ignored. + some filesystems could implement extra optimizations. The copy is done as if + both files are opened as binary. The return value is the amount of bytes copied. This could be less than the amount requested. - .. note:: - - On Linux, :func:`os.copy_file_range` should not be used for copying a - range of a pseudo file from a special filesystem like procfs and sysfs. - It will always copy no bytes and return 0 as if the file was empty - because of a known Linux kernel issue. - - .. availability:: Linux >= 4.5 with glibc >= 2.27. + .. availability:: Linux kernel >= 4.5 or glibc >= 2.27. .. versionadded:: 3.8 @@ -869,8 +836,6 @@ as internal buffering of data. 2: stderr), the new file descriptor is :ref:`inheritable <fd_inheritance>`. - .. availability:: not WASI. - .. versionchanged:: 3.4 The new file descriptor is now non-inheritable. @@ -882,8 +847,6 @@ as internal buffering of data. <fd_inheritance>` by default or non-inheritable if *inheritable* is ``False``. - .. availability:: not WASI. - .. versionchanged:: 3.4 Add the optional *inheritable* parameter. @@ -901,9 +864,6 @@ as internal buffering of data. .. availability:: Unix. - The function is limited on Emscripten and WASI, see - :ref:`wasm-availability` for more information. - .. function:: fchown(fd, uid, gid) @@ -916,9 +876,6 @@ as internal buffering of data. .. availability:: Unix. - The function is limited on Emscripten and WASI, see - :ref:`wasm-availability` for more information. - .. function:: fdatasync(fd) @@ -1007,9 +964,6 @@ as internal buffering of data. .. availability:: Unix. - The function is limited on Emscripten and WASI, see - :ref:`wasm-availability` for more information. - .. versionadded:: 3.5 @@ -1052,7 +1006,7 @@ as internal buffering of data. Make the calling process a session leader; make the tty the controlling tty, the stdin, the stdout, and the stderr of the calling process; close fd. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. versionadded:: 3.11 @@ -1196,7 +1150,7 @@ or `the MSDN <https://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Windo descriptors are :ref:`non-inheritable <fd_inheritance>`. For a (slightly) more portable approach, use the :mod:`pty` module. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: some flavors of Unix. .. versionchanged:: 3.4 The new file descriptors are now non-inheritable. @@ -1222,7 +1176,7 @@ or `the MSDN <https://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Windo Return a pair of file descriptors ``(r, w)`` usable for reading and writing, respectively. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: some flavors of Unix. .. versionadded:: 3.3 @@ -1232,7 +1186,7 @@ or `the MSDN <https://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Windo Ensures that enough disk space is allocated for the file specified by *fd* starting from *offset* and continuing for *len* bytes. - .. availability:: Unix, not Emscripten. + .. availability:: Unix. .. versionadded:: 3.3 @@ -1301,9 +1255,9 @@ or `the MSDN <https://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Windo Combine the functionality of :func:`os.readv` and :func:`os.pread`. - .. availability:: Linux >= 2.6.30, FreeBSD >= 6.0, OpenBSD >= 2.7, AIX >= 7.1. - - Using flags requires Linux >= 4.6. + .. availability:: Linux 2.6.30 and newer, FreeBSD 6.0 and newer, + OpenBSD 2.7 and newer, AIX 7.1 and newer. Using flags requires + Linux 4.6 or newer. .. versionadded:: 3.7 @@ -1318,7 +1272,7 @@ or `the MSDN <https://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Windo If no bytes were read, it will return ``-1`` and set errno to :data:`errno.EAGAIN`. - .. availability:: Linux >= 4.14. + .. availability:: Linux 4.14 and newer. .. versionadded:: 3.7 @@ -1332,7 +1286,7 @@ or `the MSDN <https://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Windo Currently, on Linux, this feature is usable only on a file descriptor opened using the :data:`O_DIRECT` flag. - .. availability:: Linux >= 4.6. + .. availability:: Linux 4.6 and newer. .. versionadded:: 3.7 @@ -1371,9 +1325,9 @@ or `the MSDN <https://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Windo Combine the functionality of :func:`os.writev` and :func:`os.pwrite`. - .. availability:: Linux >= 2.6.30, FreeBSD >= 6.0, OpenBSD >= 2.7, AIX >= 7.1. - - Using flags requires Linux >= 4.6. + .. availability:: Linux 2.6.30 and newer, FreeBSD 6.0 and newer, + OpenBSD 2.7 and newer, AIX 7.1 and newer. Using flags requires + Linux 4.7 or newer. .. versionadded:: 3.7 @@ -1383,7 +1337,7 @@ or `the MSDN <https://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Windo Provide a per-write equivalent of the :data:`O_DSYNC` :func:`os.open` flag. This flag effect applies only to the data range written by the system call. - .. availability:: Linux >= 4.7. + .. availability:: Linux 4.7 and newer. .. versionadded:: 3.7 @@ -1393,7 +1347,7 @@ or `the MSDN <https://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Windo Provide a per-write equivalent of the :data:`O_SYNC` :func:`os.open` flag. This flag effect applies only to the data range written by the system call. - .. availability:: Linux >= 4.7. + .. availability:: Linux 4.7 and newer. .. versionadded:: 3.7 @@ -1407,7 +1361,7 @@ or `the MSDN <https://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Windo appended to the end of the file. However, if the *offset* argument is ``-1``, the current file *offset* is updated. - .. availability:: Linux >= 4.16. + .. availability:: Linux 4.16 and newer. .. versionadded:: 3.10 @@ -1459,7 +1413,7 @@ or `the MSDN <https://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Windo Cross-platform applications should not use *headers*, *trailers* and *flags* arguments. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. note:: @@ -1481,9 +1435,6 @@ or `the MSDN <https://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Windo .. availability:: Unix. - The function is limited on Emscripten and WASI, see - :ref:`wasm-availability` for more information. - .. versionadded:: 3.5 @@ -1494,7 +1445,7 @@ or `the MSDN <https://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Windo Parameters to the :func:`sendfile` function, if the implementation supports them. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. versionadded:: 3.3 @@ -1503,7 +1454,7 @@ or `the MSDN <https://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Windo Parameter to the :func:`sendfile` function, if the implementation supports it. The data won't be cached in the virtual memory and will be freed afterwards. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. versionadded:: 3.11 @@ -1530,7 +1481,7 @@ or `the MSDN <https://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Windo make sense to block because there are no writers connected to the write end of the pipe. - .. availability:: Linux >= 2.6.17 with glibc >= 2.5 + .. availability:: Linux kernel >= 2.6.17 and glibc >= 2.5 .. versionadded:: 3.10 @@ -1564,7 +1515,7 @@ or `the MSDN <https://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Windo Return the process group associated with the terminal given by *fd* (an open file descriptor as returned by :func:`os.open`). - .. availability:: Unix, not WASI. + .. availability:: Unix. .. function:: tcsetpgrp(fd, pg) @@ -1572,7 +1523,7 @@ or `the MSDN <https://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Windo Set the process group associated with the terminal given by *fd* (an open file descriptor as returned by :func:`os.open`) to *pg*. - .. availability:: Unix, not WASI. + .. availability:: Unix. .. function:: ttyname(fd) @@ -1680,9 +1631,6 @@ Using the :mod:`subprocess` module, all file descriptors except standard streams are closed, and inheritable handles are only inherited if the *close_fds* parameter is ``False``. -On WebAssembly platforms ``wasm32-emscripten`` and ``wasm32-wasi``, the file -descriptor cannot be modified. - .. function:: get_inheritable(fd) Get the "inheritable" flag of the specified file descriptor (a boolean). @@ -1867,7 +1815,7 @@ features: .. audit-event:: os.chflags path,flags os.chflags - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. versionadded:: 3.3 The *follow_symlinks* argument. @@ -1912,9 +1860,6 @@ features: read-only flag with it (via the ``stat.S_IWRITE`` and ``stat.S_IREAD`` constants or a corresponding integer value). All other bits are ignored. - The function is limited on Emscripten and WASI, see - :ref:`wasm-availability` for more information. - .. audit-event:: os.chmod path,mode,dir_fd os.chmod .. versionadded:: 3.3 @@ -1941,9 +1886,6 @@ features: .. availability:: Unix. - The function is limited on Emscripten and WASI, see - :ref:`wasm-availability` for more information. - .. versionadded:: 3.3 Added support for specifying *path* as an open file descriptor, and the *dir_fd* and *follow_symlinks* arguments. @@ -1956,7 +1898,7 @@ features: Change the root directory of the current process to *path*. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. versionchanged:: 3.6 Accepts a :term:`path-like object`. @@ -1996,7 +1938,7 @@ features: .. audit-event:: os.chflags path,flags os.lchflags - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. versionchanged:: 3.6 Accepts a :term:`path-like object`. @@ -2165,7 +2107,7 @@ features: The *mode* parameter is passed to :func:`mkdir` for creating the leaf directory; see :ref:`the mkdir() description <mkdir_modebits>` for how it - is interpreted. To set the file permission bits of any newly created parent + is interpreted. To set the file permission bits of any newly-created parent directories you can set the umask before invoking :func:`makedirs`. The file permission bits of existing parent directories are not changed. @@ -2196,7 +2138,7 @@ features: .. versionchanged:: 3.7 The *mode* argument no longer affects the file permission bits of - newly created intermediate-level directories. + newly-created intermediate-level directories. .. function:: mkfifo(path, mode=0o666, *, dir_fd=None) @@ -2213,7 +2155,7 @@ features: FIFO for reading, and the client opens it for writing. Note that :func:`mkfifo` doesn't open the FIFO --- it just creates the rendezvous point. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. versionadded:: 3.3 The *dir_fd* argument. @@ -2235,7 +2177,7 @@ features: This function can also support :ref:`paths relative to directory descriptors <dir_fd>`. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. versionadded:: 3.3 The *dir_fd* argument. @@ -2386,7 +2328,7 @@ features: :exc:`IsADirectoryError` or a :exc:`NotADirectoryError` will be raised respectively. If both are directories and *dst* is empty, *dst* will be silently replaced. If *dst* is a non-empty directory, an :exc:`OSError` - is raised. If both are files, *dst* will be replaced silently if the user + is raised. If both are files, *dst* it will be replaced silently if the user has permission. The operation may fail on some Unix flavors if *src* and *dst* are on different filesystems. If successful, the renaming will be an atomic operation (this is a POSIX requirement). @@ -2518,9 +2460,9 @@ features: .. note:: On Unix-based systems, :func:`scandir` uses the system's - `opendir() <https://pubs.opengroup.org/onlinepubs/009695399/functions/opendir.html>`_ + `opendir() <http://pubs.opengroup.org/onlinepubs/009695399/functions/opendir.html>`_ and - `readdir() <https://pubs.opengroup.org/onlinepubs/009695399/functions/readdir_r.html>`_ + `readdir() <http://pubs.opengroup.org/onlinepubs/009695399/functions/readdir_r.html>`_ functions. On Windows, it uses the Win32 `FindFirstFileW <https://msdn.microsoft.com/en-us/library/windows/desktop/aa364418(v=vs.85).aspx>`_ and @@ -3103,9 +3045,6 @@ features: .. availability:: Unix, Windows. - The function is limited on Emscripten and WASI, see - :ref:`wasm-availability` for more information. - .. versionchanged:: 3.2 Added support for Windows 6.0 (Vista) symbolic links. @@ -3381,7 +3320,7 @@ features: the file descriptor, and as such multiple files can have the same name without any side effects. - .. availability:: Linux >= 3.17 with glibc >= 2.27. + .. availability:: Linux 3.17 or newer with glibc 2.27 or newer. .. versionadded:: 3.8 @@ -3406,9 +3345,8 @@ features: These flags can be passed to :func:`memfd_create`. - .. availability:: Linux >= 3.17 with glibc >= 2.27 - - The ``MFD_HUGE*`` flags are only available since Linux 4.14. + .. availability:: Linux 3.17 or newer with glibc 2.27 or newer. The + ``MFD_HUGE*`` flags are only available since Linux 4.14. .. versionadded:: 3.8 @@ -3460,7 +3398,7 @@ features: finally: os.close(fd) - .. availability:: Linux >= 2.6.27 with glibc >= 2.8 + .. availability:: Linux 2.6.27 or newer with glibc 2.8 or newer. .. versionadded:: 3.10 @@ -3469,7 +3407,7 @@ features: Read value from an :func:`eventfd` file descriptor and return a 64 bit unsigned int. The function does not verify that *fd* is an :func:`eventfd`. - .. availability:: Linux >= 2.6.27 + .. availability:: See :func:`eventfd` .. versionadded:: 3.10 @@ -3478,7 +3416,7 @@ features: Add value to an :func:`eventfd` file descriptor. *value* must be a 64 bit unsigned int. The function does not verify that *fd* is an :func:`eventfd`. - .. availability:: Linux >= 2.6.27 + .. availability:: See :func:`eventfd` .. versionadded:: 3.10 @@ -3486,7 +3424,7 @@ features: Set close-on-exec flag for new :func:`eventfd` file descriptor. - .. availability:: Linux >= 2.6.27 + .. availability:: See :func:`eventfd` .. versionadded:: 3.10 @@ -3495,7 +3433,7 @@ features: Set :const:`O_NONBLOCK` status flag for new :func:`eventfd` file descriptor. - .. availability:: Linux >= 2.6.27 + .. availability:: See :func:`eventfd` .. versionadded:: 3.10 @@ -3504,7 +3442,7 @@ features: Provide semaphore-like semantics for reads from a :func:`eventfd` file descriptor. On read the internal counter is decremented by one. - .. availability:: Linux >= 2.6.30 + .. availability:: Linux 2.6.30 or newer with glibc 2.8 or newer. .. versionadded:: 3.10 @@ -3717,7 +3655,7 @@ to be ignored. .. audit-event:: os.exec path,args,env os.execl - .. availability:: Unix, Windows, not Emscripten, not WASI. + .. availability:: Unix, Windows. .. versionadded:: 3.3 Added support for specifying *path* as an open file descriptor @@ -3760,49 +3698,49 @@ written in Python, such as a mail server's external command delivery program. Exit code that means the command was used incorrectly, such as when the wrong number of arguments are given. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. data:: EX_DATAERR Exit code that means the input data was incorrect. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. data:: EX_NOINPUT Exit code that means an input file did not exist or was not readable. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. data:: EX_NOUSER Exit code that means a specified user did not exist. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. data:: EX_NOHOST Exit code that means a specified host did not exist. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. data:: EX_UNAVAILABLE Exit code that means that a required service is unavailable. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. data:: EX_SOFTWARE Exit code that means an internal software error was detected. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. data:: EX_OSERR @@ -3810,7 +3748,7 @@ written in Python, such as a mail server's external command delivery program. Exit code that means an operating system error was detected, such as the inability to fork or create a pipe. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. data:: EX_OSFILE @@ -3818,21 +3756,21 @@ written in Python, such as a mail server's external command delivery program. Exit code that means some system file did not exist, could not be opened, or had some other kind of error. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. data:: EX_CANTCREAT Exit code that means a user specified output file could not be created. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. data:: EX_IOERR Exit code that means that an error occurred while doing I/O on some file. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. data:: EX_TEMPFAIL @@ -3841,7 +3779,7 @@ written in Python, such as a mail server's external command delivery program. that may not really be an error, such as a network connection that couldn't be made during a retryable operation. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. data:: EX_PROTOCOL @@ -3849,7 +3787,7 @@ written in Python, such as a mail server's external command delivery program. Exit code that means that a protocol exchange was illegal, invalid, or not understood. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. data:: EX_NOPERM @@ -3857,21 +3795,21 @@ written in Python, such as a mail server's external command delivery program. Exit code that means that there were insufficient permissions to perform the operation (but not intended for file system problems). - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. data:: EX_CONFIG Exit code that means that some kind of configuration error occurred. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. data:: EX_NOTFOUND Exit code that means something like "an entry was not found". - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. function:: fork() @@ -3892,7 +3830,7 @@ written in Python, such as a mail server's external command delivery program. See :mod:`ssl` for applications that use the SSL module with fork(). - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. function:: forkpty() @@ -3909,7 +3847,7 @@ written in Python, such as a mail server's external command delivery program. Calling ``forkpty()`` in a subinterpreter is no longer supported (:exc:`RuntimeError` is raised). - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: some flavors of Unix. .. function:: kill(pid, sig) @@ -3933,8 +3871,6 @@ written in Python, such as a mail server's external command delivery program. .. audit-event:: os.kill pid,sig os.kill - .. availability:: Unix, Windows, not Emscripten, not WASI. - .. versionadded:: 3.2 Windows support. @@ -3949,44 +3885,35 @@ written in Python, such as a mail server's external command delivery program. .. audit-event:: os.killpg pgid,sig os.killpg - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. function:: nice(increment) Add *increment* to the process's "niceness". Return the new niceness. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. function:: pidfd_open(pid, flags=0) - Return a file descriptor referring to the process *pid* with *flags* set. - This descriptor can be used to perform process management without races - and signals. + Return a file descriptor referring to the process *pid*. This descriptor can + be used to perform process management without races and signals. The *flags* + argument is provided for future extensions; no flag values are currently + defined. See the :manpage:`pidfd_open(2)` man page for more details. - .. availability:: Linux >= 5.3 + .. availability:: Linux 5.3+ .. versionadded:: 3.9 - .. data:: PIDFD_NONBLOCK - - This flag indicates that the file descriptor will be non-blocking. - If the process referred to by the file descriptor has not yet terminated, - then an attempt to wait on the file descriptor using :manpage:`waitid(2)` - will immediately return the error :data:`~errno.EAGAIN` rather than blocking. - - .. availability:: Linux >= 5.10 - .. versionadded:: 3.12 - .. function:: plock(op) Lock program segments into memory. The value of *op* (defined in ``<sys/lock.h>``) determines which segments are locked. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. function:: popen(cmd, mode='r', buffering=-1) @@ -4018,8 +3945,6 @@ written in Python, such as a mail server's external command delivery program. documentation for more powerful ways to manage and communicate with subprocesses. - .. availability:: not Emscripten, not WASI. - .. note:: The :ref:`Python UTF-8 Mode <utf8-mode>` affects encodings used for *cmd* and pipe contents. @@ -4113,7 +4038,7 @@ written in Python, such as a mail server's external command delivery program. .. versionadded:: 3.8 - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. function:: posix_spawnp(path, argv, env, *, file_actions=None, \ setpgroup=None, resetids=False, setsid=False, setsigmask=(), \ @@ -4129,9 +4054,7 @@ written in Python, such as a mail server's external command delivery program. .. versionadded:: 3.8 - .. availability:: POSIX, not Emscripten, not WASI. - - See :func:`posix_spawn` documentation. + .. availability:: See :func:`posix_spawn` documentation. .. function:: register_at_fork(*, before=None, after_in_parent=None, \ @@ -4162,7 +4085,7 @@ written in Python, such as a mail server's external command delivery program. There is no way to unregister a function. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. versionadded:: 3.7 @@ -4231,9 +4154,7 @@ written in Python, such as a mail server's external command delivery program. .. audit-event:: os.spawn mode,path,args,env os.spawnl - .. availability:: Unix, Windows, not Emscripten, not WASI. - - :func:`spawnlp`, :func:`spawnlpe`, :func:`spawnvp` + .. availability:: Unix, Windows. :func:`spawnlp`, :func:`spawnlpe`, :func:`spawnvp` and :func:`spawnvpe` are not available on Windows. :func:`spawnle` and :func:`spawnve` are not thread-safe on Windows; we advise you to use the :mod:`subprocess` module instead. @@ -4280,13 +4201,13 @@ written in Python, such as a mail server's external command delivery program. Start a file with its associated application. - When *operation* is not specified, this acts like double-clicking + When *operation* is not specified or ``'open'``, this acts like double-clicking the file in Windows Explorer, or giving the file name as an argument to the :program:`start` command from the interactive command shell: the file is opened with whatever application (if any) its extension is associated. When another *operation* is given, it must be a "command verb" that specifies - what should be done with the file. Common verbs documented by Microsoft are ``'open'``, + what should be done with the file. Common verbs documented by Microsoft are ``'print'`` and ``'edit'`` (to be used on files) as well as ``'explore'`` and ``'find'`` (to be used on directories). @@ -4355,7 +4276,7 @@ written in Python, such as a mail server's external command delivery program. .. audit-event:: os.system command os.system - .. availability:: Unix, Windows, not Emscripten, not WASI. + .. availability:: Unix, Windows. .. function:: times() @@ -4374,7 +4295,7 @@ written in Python, such as a mail server's external command delivery program. :attr:`!children_system`, and :attr:`!elapsed` in that order. See the Unix manual page - :manpage:`times(2)` and `times(3) <https://www.freebsd.org/cgi/man.cgi?time(3)>`_ manual page on Unix or `the GetProcessTimes MSDN + :manpage:`times(2)` and :manpage:`times(3)` manual page on Unix or `the GetProcessTimes MSDN <https://docs.microsoft.com/windows/win32/api/processthreadsapi/nf-processthreadsapi-getprocesstimes>`_ on Windows. On Windows, only :attr:`!user` and :attr:`!system` are known; the other attributes are zero. @@ -4396,7 +4317,7 @@ written in Python, such as a mail server's external command delivery program. :func:`waitstatus_to_exitcode` can be used to convert the exit status into an exit code. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. seealso:: @@ -4417,7 +4338,7 @@ written in Python, such as a mail server's external command delivery program. :attr:`si_code` or ``None`` if :data:`WNOHANG` is specified and there are no children in a waitable state. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. versionadded:: 3.3 @@ -4428,7 +4349,7 @@ written in Python, such as a mail server's external command delivery program. These are the possible values for *idtype* in :func:`waitid`. They affect how *id* is interpreted. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. versionadded:: 3.3 @@ -4437,7 +4358,7 @@ written in Python, such as a mail server's external command delivery program. This is a Linux-specific *idtype* that indicates that *id* is a file descriptor that refers to a process. - .. availability:: Linux >= 5.4 + .. availability:: Linux 5.4+ .. versionadded:: 3.9 @@ -4448,7 +4369,7 @@ written in Python, such as a mail server's external command delivery program. Flags that can be used in *options* in :func:`waitid` that specify what child signal to wait for. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. versionadded:: 3.3 @@ -4463,7 +4384,7 @@ written in Python, such as a mail server's external command delivery program. These are the possible values for :attr:`si_code` in the result returned by :func:`waitid`. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. versionadded:: 3.3 @@ -4501,8 +4422,6 @@ written in Python, such as a mail server's external command delivery program. :func:`waitstatus_to_exitcode` can be used to convert the exit status into an exit code. - .. availability:: Unix, not Emscripten, not WASI. - .. versionchanged:: 3.5 If the system call is interrupted and the signal handler does not raise an exception, the function now retries the system call instead of raising an @@ -4521,7 +4440,7 @@ written in Python, such as a mail server's external command delivery program. :func:`waitstatus_to_exitcode` can be used to convert the exit status into an exitcode. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. function:: wait4(pid, options) @@ -4535,7 +4454,7 @@ written in Python, such as a mail server's external command delivery program. :func:`waitstatus_to_exitcode` can be used to convert the exit status into an exitcode. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. function:: waitstatus_to_exitcode(status) @@ -4565,8 +4484,6 @@ written in Python, such as a mail server's external command delivery program. :func:`WIFEXITED`, :func:`WEXITSTATUS`, :func:`WIFSIGNALED`, :func:`WTERMSIG`, :func:`WIFSTOPPED`, :func:`WSTOPSIG` functions. - .. availability:: Unix, Windows, not Emscripten, not WASI. - .. versionadded:: 3.9 @@ -4575,7 +4492,7 @@ written in Python, such as a mail server's external command delivery program. The option for :func:`waitpid` to return immediately if no child process status is available immediately. The function returns ``(0, 0)`` in this case. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. data:: WCONTINUED @@ -4583,9 +4500,7 @@ written in Python, such as a mail server's external command delivery program. This option causes child processes to be reported if they have been continued from a job control stop since their status was last reported. - .. availability:: Unix, not Emscripten, not WASI. - - Some Unix systems. + .. availability:: some Unix systems. .. data:: WUNTRACED @@ -4593,7 +4508,7 @@ written in Python, such as a mail server's external command delivery program. This option causes child processes to be reported if they have been stopped but their current state has not been reported since they were stopped. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. The following functions take a process status code as returned by @@ -4607,7 +4522,7 @@ used to determine the disposition of a process. This function should be employed only if :func:`WIFSIGNALED` is true. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. function:: WIFCONTINUED(status) @@ -4618,7 +4533,7 @@ used to determine the disposition of a process. See :data:`WCONTINUED` option. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. function:: WIFSTOPPED(status) @@ -4630,14 +4545,14 @@ used to determine the disposition of a process. done using :data:`WUNTRACED` option or when the process is being traced (see :manpage:`ptrace(2)`). - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. function:: WIFSIGNALED(status) Return ``True`` if the process was terminated by a signal, otherwise return ``False``. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. function:: WIFEXITED(status) @@ -4646,7 +4561,7 @@ used to determine the disposition of a process. by calling ``exit()`` or ``_exit()``, or by returning from ``main()``; otherwise return ``False``. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. function:: WEXITSTATUS(status) @@ -4655,7 +4570,7 @@ used to determine the disposition of a process. This function should be employed only if :func:`WIFEXITED` is true. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. function:: WSTOPSIG(status) @@ -4664,7 +4579,7 @@ used to determine the disposition of a process. This function should be employed only if :func:`WIFSTOPPED` is true. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. .. function:: WTERMSIG(status) @@ -4673,7 +4588,7 @@ used to determine the disposition of a process. This function should be employed only if :func:`WIFSIGNALED` is true. - .. availability:: Unix, not Emscripten, not WASI. + .. availability:: Unix. Interface to the scheduler @@ -4989,9 +4904,9 @@ Random numbers :py:data:`GRND_NONBLOCK`. See also the `Linux getrandom() manual page - <https://man7.org/linux/man-pages/man2/getrandom.2.html>`_. + <http://man7.org/linux/man-pages/man2/getrandom.2.html>`_. - .. availability:: Linux >= 3.17. + .. availability:: Linux 3.17 and newer. .. versionadded:: 3.6 diff --git a/Doc/library/pathlib.rst b/Doc/library/pathlib.rst index 1375ce1aef953a..e16097d00f60f3 100644 --- a/Doc/library/pathlib.rst +++ b/Doc/library/pathlib.rst @@ -133,13 +133,11 @@ we also call *flavours*: PureWindowsPath('c:/Program Files') Spurious slashes and single dots are collapsed, but double dots (``'..'``) - and leading double slashes (``'//'``) are not, since this would change the - meaning of a path for various reasons (e.g. symbolic links, UNC paths):: + are not, since this would change the meaning of a path in the face of + symbolic links:: >>> PurePath('foo//bar') PurePosixPath('foo/bar') - >>> PurePath('//foo/bar') - PurePosixPath('//foo/bar') >>> PurePath('foo/./bar') PurePosixPath('foo/bar') >>> PurePath('foo/../bar') @@ -168,17 +166,13 @@ we also call *flavours*: .. class:: PureWindowsPath(*pathsegments) A subclass of :class:`PurePath`, this path flavour represents Windows - filesystem paths, including `UNC paths`_:: + filesystem paths:: >>> PureWindowsPath('c:/Program Files/') PureWindowsPath('c:/Program Files') - >>> PureWindowsPath('//server/share/file') - PureWindowsPath('//server/share/file') *pathsegments* is specified similarly to :class:`PurePath`. - .. _unc paths: https://en.wikipedia.org/wiki/Path_(computing)#UNC - Regardless of the system you're running on, you can instantiate all of these classes, since they don't provide any operation that does system calls. @@ -315,26 +309,6 @@ Pure paths provide the following methods and properties: >>> PureWindowsPath('//host/share').root '\\' - If the path starts with more than two successive slashes, - :class:`~pathlib.PurePosixPath` collapses them:: - - >>> PurePosixPath('//etc').root - '//' - >>> PurePosixPath('///etc').root - '/' - >>> PurePosixPath('////etc').root - '/' - - .. note:: - - This behavior conforms to *The Open Group Base Specifications Issue 6*, - paragraph `4.11 Pathname Resolution - <https://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap04.html#tag_04_11>`_: - - *"A pathname that begins with two successive slashes may be interpreted in - an implementation-defined manner, although more than two leading slashes - shall be treated as a single slash."* - .. data:: PurePath.anchor The concatenation of the drive and root:: @@ -876,15 +850,10 @@ call fails (for example because the path doesn't exist). function checks whether *path*'s parent, :file:`path/..`, is on a different device than *path*, or whether :file:`path/..` and *path* point to the same i-node on the same device --- this should detect mount points for all Unix - and POSIX variants. On Windows, a mount point is considered to be a drive - letter root (e.g. ``c:\``), a UNC share (e.g. ``\\server\share``), or a - mounted filesystem directory. + and POSIX variants. Not implemented on Windows. .. versionadded:: 3.7 - .. versionchanged:: 3.12 - Windows support was added. - .. method:: Path.is_symlink() @@ -951,101 +920,6 @@ call fails (for example because the path doesn't exist). to the directory after creating the iterator, whether a path object for that file be included is unspecified. -.. method:: Path.walk(top_down=True, on_error=None, follow_symlinks=False) - - Generate the file names in a directory tree by walking the tree - either top-down or bottom-up. - - For each directory in the directory tree rooted at *self* (including - *self* but excluding '.' and '..'), the method yields a 3-tuple of - ``(dirpath, dirnames, filenames)``. - - *dirpath* is a :class:`Path` to the directory currently being walked, - *dirnames* is a list of strings for the names of subdirectories in *dirpath* - (excluding ``'.'`` and ``'..'``), and *filenames* is a list of strings for - the names of the non-directory files in *dirpath*. To get a full path - (which begins with *self*) to a file or directory in *dirpath*, do - ``dirpath / name``. Whether or not the lists are sorted is file - system-dependent. - - If the optional argument *top_down* is true (which is the default), the triple for a - directory is generated before the triples for any of its subdirectories - (directories are walked top-down). If *top_down* is false, the triple - for a directory is generated after the triples for all of its subdirectories - (directories are walked bottom-up). No matter the value of *top_down*, the - list of subdirectories is retrieved before the triples for the directory and - its subdirectories are walked. - - When *top_down* is true, the caller can modify the *dirnames* list in-place - (for example, using :keyword:`del` or slice assignment), and :meth:`Path.walk` - will only recurse into the subdirectories whose names remain in *dirnames*. - This can be used to prune the search, or to impose a specific order of visiting, - or even to inform :meth:`Path.walk` about directories the caller creates or - renames before it resumes :meth:`Path.walk` again. Modifying *dirnames* when - *top_down* is false has no effect on the behavior of :meth:`Path.walk()` since the - directories in *dirnames* have already been generated by the time *dirnames* - is yielded to the caller. - - By default, errors from :func:`os.scandir` are ignored. If the optional - argument *on_error* is specified, it should be a callable; it will be - called with one argument, an :exc:`OSError` instance. The callable can handle the - error to continue the walk or re-raise it to stop the walk. Note that the - filename is available as the ``filename`` attribute of the exception object. - - By default, :meth:`Path.walk` does not follow symbolic links, and instead adds them - to the *filenames* list. Set *follow_symlinks* to true to resolve symlinks - and place them in *dirnames* and *filenames* as appropriate for their targets, and - consequently visit directories pointed to by symlinks (where supported). - - .. note:: - - Be aware that setting *follow_symlinks* to true can lead to infinite - recursion if a link points to a parent directory of itself. :meth:`Path.walk` - does not keep track of the directories it has already visited. - - .. note:: - :meth:`Path.walk` assumes the directories it walks are not modified during - execution. For example, if a directory from *dirnames* has been replaced - with a symlink and *follow_symlinks* is false, :meth:`Path.walk` will - still try to descend into it. To prevent such behavior, remove directories - from *dirnames* as appropriate. - - .. note:: - - Unlike :func:`os.walk`, :meth:`Path.walk` lists symlinks to directories in - *filenames* if *follow_symlinks* is false. - - This example displays the number of bytes used by all files in each directory, - while ignoring ``__pycache__`` directories:: - - from pathlib import Path - for root, dirs, files in Path("cpython/Lib/concurrent").walk(on_error=print): - print( - root, - "consumes", - sum((root / file).stat().st_size for file in files), - "bytes in", - len(files), - "non-directory files" - ) - if '__pycache__' in dirs: - dirs.remove('__pycache__') - - This next example is a simple implementation of :func:`shutil.rmtree`. - Walking the tree bottom-up is essential as :func:`rmdir` doesn't allow - deleting a directory before it is empty:: - - # Delete everything reachable from the directory "top". - # CAUTION: This is dangerous! For example, if top == Path('/'), - # it could delete all of your files. - for root, dirs, files in top.walk(top_down=False): - for name in files: - (root / name).unlink() - for name in dirs: - (root / name).rmdir() - - .. versionadded:: 3.12 - .. method:: Path.lchmod(mode) Like :meth:`Path.chmod` but, if the path points to a symbolic link, the @@ -1222,8 +1096,8 @@ call fails (for example because the path doesn't exist). .. method:: Path.rglob(pattern) - Glob the given relative *pattern* recursively. This is like calling - :func:`Path.glob` with "``**/``" added in front of the *pattern*:: + This is like calling :func:`Path.glob` with "``**/``" added in front of the + given relative *pattern*:: >>> sorted(Path().rglob("*.py")) [PosixPath('build/lib/pathlib.py'), @@ -1385,14 +1259,13 @@ Below is a table mapping various :mod:`os` functions to their corresponding :func:`os.path.expanduser` :meth:`Path.expanduser` and :meth:`Path.home` :func:`os.listdir` :meth:`Path.iterdir` -:func:`os.walk` :meth:`Path.walk` :func:`os.path.isdir` :meth:`Path.is_dir` :func:`os.path.isfile` :meth:`Path.is_file` :func:`os.path.islink` :meth:`Path.is_symlink` :func:`os.link` :meth:`Path.hardlink_to` :func:`os.symlink` :meth:`Path.symlink_to` :func:`os.readlink` :meth:`Path.readlink` -:func:`os.path.relpath` :meth:`PurePath.relative_to` [#]_ +:func:`os.path.relpath` :meth:`Path.relative_to` [#]_ :func:`os.stat` :meth:`Path.stat`, :meth:`Path.owner`, :meth:`Path.group` @@ -1401,11 +1274,10 @@ Below is a table mapping various :mod:`os` functions to their corresponding :func:`os.path.basename` :data:`PurePath.name` :func:`os.path.dirname` :data:`PurePath.parent` :func:`os.path.samefile` :meth:`Path.samefile` -:func:`os.path.splitext` :data:`PurePath.stem` and - :data:`PurePath.suffix` +:func:`os.path.splitext` :data:`PurePath.suffix` ==================================== ============================== .. rubric:: Footnotes .. [#] :func:`os.path.abspath` normalizes the resulting path, which may change its meaning in the presence of symlinks, while :meth:`Path.absolute` does not. -.. [#] :meth:`PurePath.relative_to` requires ``self`` to be the subpath of the argument, but :func:`os.path.relpath` does not. +.. [#] :meth:`Path.relative_to` requires ``self`` to be the subpath of the argument, but :func:`os.path.relpath` does not. diff --git a/Doc/library/pipes.rst b/Doc/library/pipes.rst index 471ae0dbc9768a..245dd0d2520881 100644 --- a/Doc/library/pipes.rst +++ b/Doc/library/pipes.rst @@ -23,7 +23,7 @@ The :mod:`pipes` module defines a class to abstract the concept of a *pipeline* Because the module uses :program:`/bin/sh` command lines, a POSIX or compatible shell for :func:`os.system` and :func:`os.popen` is required. -.. availability:: Unix, not VxWorks. +.. availability:: Unix. Not available on VxWorks. The :mod:`pipes` module defines the following class: diff --git a/Doc/library/platform.rst b/Doc/library/platform.rst index dc2d871b47d5ef..346063d66afab9 100644 --- a/Doc/library/platform.rst +++ b/Doc/library/platform.rst @@ -53,7 +53,7 @@ Cross Platform .. function:: machine() - Returns the machine type, e.g. ``'AMD64'``. An empty string is returned if the + Returns the machine type, e.g. ``'i386'``. An empty string is returned if the value cannot be determined. diff --git a/Doc/library/poplib.rst b/Doc/library/poplib.rst index e22a2e1455e7fc..2f993f990de015 100644 --- a/Doc/library/poplib.rst +++ b/Doc/library/poplib.rst @@ -28,8 +28,6 @@ quality of POP3 servers varies widely, and too many are quite poor. If your mailserver supports IMAP, you would be better off using the :class:`imaplib.IMAP4` class, as IMAP servers tend to be better implemented. -.. include:: ../includes/wasm-notavail.rst - The :mod:`poplib` module provides two classes: diff --git a/Doc/library/posix.rst b/Doc/library/posix.rst index 90be191aa2f8d7..ad417a17879c1f 100644 --- a/Doc/library/posix.rst +++ b/Doc/library/posix.rst @@ -37,7 +37,7 @@ Large File Support .. sectionauthor:: Steve Clift <clift@mail.anacapa.net> -Several operating systems (including AIX and Solaris) provide +Several operating systems (including AIX, HP-UX and Solaris) provide support for files that are larger than 2 GiB from a C programming model where :c:type:`int` and :c:type:`long` are 32-bit values. This is typically accomplished by defining the relevant size and offset types as 64-bit values. Such files are diff --git a/Doc/library/pwd.rst b/Doc/library/pwd.rst index 98f3c45e29cbcb..03ebb02e4e5136 100644 --- a/Doc/library/pwd.rst +++ b/Doc/library/pwd.rst @@ -10,8 +10,6 @@ This module provides access to the Unix user account and password database. It is available on all Unix versions. -.. include:: ../includes/wasm-notavail.rst - Password database entries are reported as a tuple-like object, whose attributes correspond to the members of the ``passwd`` structure (Attribute field below, see ``<pwd.h>``): diff --git a/Doc/library/py_compile.rst b/Doc/library/py_compile.rst index 69b93a3bdfcb26..4fba4cba4d3568 100644 --- a/Doc/library/py_compile.rst +++ b/Doc/library/py_compile.rst @@ -35,9 +35,8 @@ byte-code cache files in the directory containing the source code. in ``.pyc``. For example, if *file* is ``/foo/bar/baz.py`` *cfile* will default to ``/foo/bar/__pycache__/baz.cpython-32.pyc`` for Python 3.2. If *dfile* is - specified, it is used instead of *file* as the name of the source file from - which source lines are obtained for display in exception tracebacks. - If *doraise* is true, a :exc:`PyCompileError` is raised + specified, it is used as the name of the source file in error messages + instead of *file*. If *doraise* is true, a :exc:`PyCompileError` is raised when an error is encountered while compiling *file*. If *doraise* is false (the default), an error string is written to ``sys.stderr``, but no exception is raised. This function returns the path to byte-compiled file, i.e. diff --git a/Doc/library/queue.rst b/Doc/library/queue.rst index c67f15e953bccc..540dde9e154e80 100644 --- a/Doc/library/queue.rst +++ b/Doc/library/queue.rst @@ -190,8 +190,7 @@ fully processed by daemon consumer threads. Example of how to wait for enqueued tasks to be completed:: - import threading - import queue + import threading, queue q = queue.Queue() diff --git a/Doc/library/random.rst b/Doc/library/random.rst index ad4a1ce7c31275..613fbce0fdf20d 100644 --- a/Doc/library/random.rst +++ b/Doc/library/random.rst @@ -258,28 +258,6 @@ Functions for sequences The *population* must be a sequence. Automatic conversion of sets to lists is no longer supported. -Discrete distributions ----------------------- - -The following function generates a discrete distribution. - -.. function:: binomialvariate(n=1, p=0.5) - - `Binomial distribution - <https://mathworld.wolfram.com/BinomialDistribution.html>`_. - Return the number of successes for *n* independent trials with the - probability of success in each trial being *p*: - - Mathematically equivalent to:: - - sum(random() < p for i in range(n)) - - The number of trials *n* should be a non-negative integer. - The probability of success *p* should be between ``0.0 <= p <= 1.0``. - The result is an integer in the range ``0 <= X <= n``. - - .. versionadded:: 3.12 - .. _real-valued-distributions: @@ -474,13 +452,16 @@ Simulations:: >>> # Deal 20 cards without replacement from a deck >>> # of 52 playing cards, and determine the proportion of cards >>> # with a ten-value: ten, jack, queen, or king. - >>> deal = sample(['tens', 'low cards'], counts=[16, 36], k=20) - >>> deal.count('tens') / 20 + >>> dealt = sample(['tens', 'low cards'], counts=[16, 36], k=20) + >>> dealt.count('tens') / 20 0.15 >>> # Estimate the probability of getting 5 or more heads from 7 spins >>> # of a biased coin that settles on heads 60% of the time. - >>> sum(binomialvariate(n=7, p=0.6) >= 5 for i in range(10_000)) / 10_000 + >>> def trial(): + ... return choices('HT', cum_weights=(0.60, 1.00), k=7).count('H') >= 5 + ... + >>> sum(trial() for i in range(10_000)) / 10_000 0.4169 >>> # Probability of the median of 5 samples being in middle two quartiles @@ -494,7 +475,7 @@ Example of `statistical bootstrapping <https://en.wikipedia.org/wiki/Bootstrapping_(statistics)>`_ using resampling with replacement to estimate a confidence interval for the mean of a sample:: - # https://www.thoughtco.com/example-of-bootstrapping-3126155 + # http://statistics.about.com/od/Applications/a/Example-Of-Bootstrapping.htm from statistics import fmean as mean from random import choices diff --git a/Doc/library/re.rst b/Doc/library/re.rst index 1b9a7b63ef5e1b..d099f383d12060 100644 --- a/Doc/library/re.rst +++ b/Doc/library/re.rst @@ -1327,14 +1327,6 @@ Match objects support the following methods and attributes: >>> m[2] # The second parenthesized subgroup. 'Newton' - Named groups are supported as well:: - - >>> m = re.match(r"(?P<first_name>\w+) (?P<last_name>\w+)", "Isaac Newton") - >>> m['first_name'] - 'Isaac' - >>> m['last_name'] - 'Newton' - .. versionadded:: 3.6 diff --git a/Doc/library/reprlib.rst b/Doc/library/reprlib.rst index 5ebb0a7780c37b..4b37c5ba60f4e6 100644 --- a/Doc/library/reprlib.rst +++ b/Doc/library/reprlib.rst @@ -17,31 +17,12 @@ debugger and may be useful in other contexts as well. This module provides a class, an instance, and a function: -.. class:: Repr(*, maxlevel=6, maxtuple=6, maxlist=6, maxarray=5, maxdict=4, \ - maxset=6, maxfrozenset=6, maxdeque=6, maxstring=30, maxlong=40, \ - maxother=30, fillvalue="...", indent=None) +.. class:: Repr() Class which provides formatting services useful in implementing functions similar to the built-in :func:`repr`; size limits for different object types are added to avoid the generation of representations which are excessively long. - The keyword arguments of the constructor can be used as a shortcut to set the - attributes of the :class:`Repr` instance. Which means that the following - initialization:: - - aRepr = reprlib.Repr(maxlevel=3) - - Is equivalent to:: - - aRepr = reprlib.Repr() - aRepr.maxlevel = 3 - - See section `Repr Objects`_ for more information about :class:`Repr` - attributes. - - .. versionchanged:: 3.12 - Allow attributes to be set via keyword arguments. - .. data:: aRepr @@ -142,66 +123,6 @@ which format specific object types. similar manner as :attr:`maxstring`. The default is ``20``. -.. attribute:: Repr.indent - - If this attribute is set to ``None`` (the default), the output is formatted - with no line breaks or indentation, like the standard :func:`repr`. - For example: - - .. code-block:: pycon - - >>> example = [ - 1, 'spam', {'a': 2, 'b': 'spam eggs', 'c': {3: 4.5, 6: []}}, 'ham'] - >>> import reprlib - >>> aRepr = reprlib.Repr() - >>> print(aRepr.repr(example)) - [1, 'spam', {'a': 2, 'b': 'spam eggs', 'c': {3: 4.5, 6: []}}, 'ham'] - - If :attr:`~Repr.indent` is set to a string, each recursion level - is placed on its own line, indented by that string: - - .. code-block:: pycon - - >>> aRepr.indent = '-->' - >>> print(aRepr.repr(example)) - [ - -->1, - -->'spam', - -->{ - -->-->'a': 2, - -->-->'b': 'spam eggs', - -->-->'c': { - -->-->-->3: 4.5, - -->-->-->6: [], - -->-->}, - -->}, - -->'ham', - ] - - Setting :attr:`~Repr.indent` to a positive integer value behaves as if it - was set to a string with that number of spaces: - - .. code-block:: pycon - - >>> aRepr.indent = 4 - >>> print(aRepr.repr(example)) - [ - 1, - 'spam', - { - 'a': 2, - 'b': 'spam eggs', - 'c': { - 3: 4.5, - 6: [], - }, - }, - 'ham', - ] - - .. versionadded:: 3.12 - - .. method:: Repr.repr(obj) The equivalent to the built-in :func:`repr` that uses the formatting imposed by diff --git a/Doc/library/resource.rst b/Doc/library/resource.rst index e7bf45d7d569fa..67e9b44fe48c46 100644 --- a/Doc/library/resource.rst +++ b/Doc/library/resource.rst @@ -13,8 +13,6 @@ This module provides basic mechanisms for measuring and controlling system resources utilized by a program. -.. include:: ../includes/wasm-notavail.rst - Symbolic constants are used to specify particular system resources and to request usage information about either the current process or its children. @@ -101,7 +99,7 @@ this module for those platforms. .. audit-event:: resource.prlimit pid,resource,limits resource.prlimit - .. availability:: Linux >= 2.6.36 with glibc >= 2.13. + .. availability:: Linux 2.6.36 or later with glibc 2.13 or later. .. versionadded:: 3.4 @@ -187,7 +185,7 @@ platform. The number of bytes that can be allocated for POSIX message queues. - .. availability:: Linux >= 2.6.8. + .. availability:: Linux 2.6.8 or later. .. versionadded:: 3.4 @@ -196,7 +194,7 @@ platform. The ceiling for the process's nice level (calculated as 20 - rlim_cur). - .. availability:: Linux >= 2.6.12. + .. availability:: Linux 2.6.12 or later. .. versionadded:: 3.4 @@ -205,7 +203,7 @@ platform. The ceiling of the real-time priority. - .. availability:: Linux >= 2.6.12. + .. availability:: Linux 2.6.12 or later. .. versionadded:: 3.4 @@ -215,7 +213,7 @@ platform. The time limit (in microseconds) on CPU time that a process can spend under real-time scheduling without making a blocking syscall. - .. availability:: Linux >= 2.6.25. + .. availability:: Linux 2.6.25 or later. .. versionadded:: 3.4 @@ -224,7 +222,7 @@ platform. The number of signals which the process may queue. - .. availability:: Linux >= 2.6.8. + .. availability:: Linux 2.6.8 or later. .. versionadded:: 3.4 @@ -234,7 +232,7 @@ platform. This limits the amount of network memory, and hence the amount of mbufs, that this user may hold at any time. - .. availability:: FreeBSD. + .. availability:: FreeBSD 9 or later. .. versionadded:: 3.4 @@ -247,7 +245,7 @@ platform. `tuning(7) <https://www.freebsd.org/cgi/man.cgi?query=tuning&sektion=7>`__ for a complete description of this sysctl. - .. availability:: FreeBSD. + .. availability:: FreeBSD 9 or later. .. versionadded:: 3.4 @@ -255,7 +253,7 @@ platform. The maximum number of pseudo-terminals created by this user id. - .. availability:: FreeBSD. + .. availability:: FreeBSD 9 or later. .. versionadded:: 3.4 @@ -263,7 +261,7 @@ platform. The maximum number of kqueues this user id is allowed to create. - .. availability:: FreeBSD >= 11. + .. availability:: FreeBSD 11 or later. .. versionadded:: 3.10 diff --git a/Doc/library/secrets.rst b/Doc/library/secrets.rst index dc8e5f46fb581e..c22da727b55c9b 100644 --- a/Doc/library/secrets.rst +++ b/Doc/library/secrets.rst @@ -44,7 +44,7 @@ randomness that your operating system provides. .. function:: choice(sequence) - Return a randomly chosen element from a non-empty sequence. + Return a randomly-chosen element from a non-empty sequence. .. function:: randbelow(n) @@ -129,7 +129,7 @@ Other functions .. function:: compare_digest(a, b) Return ``True`` if strings *a* and *b* are equal, otherwise ``False``, - using a "constant-time compare" to reduce the risk of + in such a way as to reduce the risk of `timing attacks <https://codahale.com/a-lesson-in-timing-attacks/>`_. See :func:`hmac.compare_digest` for additional details. @@ -153,9 +153,9 @@ Generate an eight-character alphanumeric password: .. note:: Applications should not - `store passwords in a recoverable format <https://cwe.mitre.org/data/definitions/257.html>`_, + `store passwords in a recoverable format <http://cwe.mitre.org/data/definitions/257.html>`_, whether plain text or encrypted. They should be salted and hashed - using a cryptographically strong one-way (irreversible) hash function. + using a cryptographically-strong one-way (irreversible) hash function. Generate a ten-character alphanumeric password with at least one diff --git a/Doc/library/security_warnings.rst b/Doc/library/security_warnings.rst index 284f3658320623..f985dc4acd11c1 100644 --- a/Doc/library/security_warnings.rst +++ b/Doc/library/security_warnings.rst @@ -14,7 +14,7 @@ The following modules have specific security considerations: argument disabling known insecure and blocked algorithms <hashlib-usedforsecurity>` * :mod:`http.server` is not suitable for production use, only implementing - basic security checks. See the :ref:`security considerations <http.server-security>`. + basic security checks * :mod:`logging`: :ref:`Logging configuration uses eval() <logging-eval-security>` * :mod:`multiprocessing`: :ref:`Connection.recv() uses pickle diff --git a/Doc/library/select.rst b/Doc/library/select.rst index a8df81f5bd1f07..46b5ff8b6d5863 100644 --- a/Doc/library/select.rst +++ b/Doc/library/select.rst @@ -22,7 +22,6 @@ it was last read. encouraged to use the :mod:`selectors` module instead, unless they want precise control over the OS-level primitives used. -.. include:: ../includes/wasm-notavail.rst The module defines the following: @@ -253,7 +252,7 @@ object. .. method:: devpoll.poll([timeout]) - Polls the set of registered file descriptors, and returns a possibly empty list + Polls the set of registered file descriptors, and returns a possibly-empty list containing ``(fd, event)`` 2-tuples for the descriptors that have events or errors to report. *fd* is the file descriptor, and *event* is a bitmask with bits set for the reported events for that descriptor --- :const:`POLLIN` for @@ -441,7 +440,7 @@ linearly scanned again. :c:func:`select` is O(highest file descriptor), while .. method:: poll.poll([timeout]) - Polls the set of registered file descriptors, and returns a possibly empty list + Polls the set of registered file descriptors, and returns a possibly-empty list containing ``(fd, event)`` 2-tuples for the descriptors that have events or errors to report. *fd* is the file descriptor, and *event* is a bitmask with bits set for the reported events for that descriptor --- :const:`POLLIN` for diff --git a/Doc/library/selectors.rst b/Doc/library/selectors.rst index 0deb15cf4c5037..6d864a836de075 100644 --- a/Doc/library/selectors.rst +++ b/Doc/library/selectors.rst @@ -38,7 +38,6 @@ users. :mod:`select` Low-level I/O multiplexing module. -.. include:: ../includes/wasm-notavail.rst Classes ------- diff --git a/Doc/library/shlex.rst b/Doc/library/shlex.rst index 0bad51833aae13..aab6a543792096 100644 --- a/Doc/library/shlex.rst +++ b/Doc/library/shlex.rst @@ -36,9 +36,9 @@ The :mod:`shlex` module defines the following functions: instance, passing ``None`` for *s* will read the string to split from standard input. - .. versionchanged:: 3.12 - Passing ``None`` for *s* argument now raises an exception, rather than - reading :data:`sys.stdin`. + .. deprecated:: 3.9 + Passing ``None`` for *s* will raise an exception in future Python + versions. .. function:: join(split_command) diff --git a/Doc/library/shutil.rst b/Doc/library/shutil.rst index 8f1668f76b9027..9a25b0d008bf5f 100644 --- a/Doc/library/shutil.rst +++ b/Doc/library/shutil.rst @@ -194,7 +194,7 @@ Directory and files operations When *follow_symlinks* is false, and *src* is a symbolic link, :func:`copy2` attempts to copy all metadata from the - *src* symbolic link to the newly created *dst* symbolic link. + *src* symbolic link to the newly-created *dst* symbolic link. However, this functionality is not available on all platforms. On platforms where some or all of this functionality is unavailable, :func:`copy2` will preserve all the metadata @@ -574,18 +574,12 @@ provided. They rely on the :mod:`zipfile` and :mod:`tarfile` modules. .. note:: - This function is not thread-safe when custom archivers registered - with :func:`register_archive_format` are used. In this case it - temporarily changes the current working directory of the process - to perform archiving. + This function is not thread-safe. .. versionchanged:: 3.8 The modern pax (POSIX.1-2001) format is now used instead of the legacy GNU format for archives created with ``format="tar"``. - .. versionchanged:: 3.10.6 - This function is now made thread-safe during creation of standard - ``.zip`` and tar archives. .. function:: get_archive_formats() @@ -801,4 +795,4 @@ Querying the size of the output terminal http://www.manpagez.com/man/3/copyfile/ .. _`Other Environment Variables`: - https://pubs.opengroup.org/onlinepubs/7908799/xbd/envvar.html#tag_002_003 + http://pubs.opengroup.org/onlinepubs/7908799/xbd/envvar.html#tag_002_003 diff --git a/Doc/library/signal.rst b/Doc/library/signal.rst index 2269f50cbaff99..678411d4f17056 100644 --- a/Doc/library/signal.rst +++ b/Doc/library/signal.rst @@ -24,9 +24,6 @@ explicitly reset (Python emulates the BSD style interface regardless of the underlying implementation), with the exception of the handler for :const:`SIGCHLD`, which follows the underlying implementation. -On WebAssembly platforms ``wasm32-emscripten`` and ``wasm32-wasi``, signals -are emulated and therefore behave differently. Several functions and signals -are not available on these platforms. Execution of Python signal handlers ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -98,10 +95,8 @@ The signal module defines three enums: :class:`enum.IntEnum` collection the constants :const:`SIG_BLOCK`, :const:`SIG_UNBLOCK` and :const:`SIG_SETMASK`. - .. availability:: Unix. - - See the man page :manpage:`sigprocmask(2)` and - :manpage:`pthread_sigmask(3)` for further information. + Availability: Unix. See the man page :manpage:`sigprocmask(3)` and + :manpage:`pthread_sigmask(3)` for further information. .. versionadded:: 3.5 @@ -210,9 +205,7 @@ The variables defined in the :mod:`signal` module are: Stack fault on coprocessor. The Linux kernel does not raise this signal: it can only be raised in user space. - .. availability:: Linux. - - On architectures where the signal is available. See + .. availability:: Linux, on architectures where the signal is available. See the man page :manpage:`signal(7)` for further information. .. versionadded:: 3.11 @@ -344,9 +337,8 @@ The :mod:`signal` module defines the following functions: delivered. If *time* is zero, no alarm is scheduled, and any scheduled alarm is canceled. If the return value is zero, no alarm is currently scheduled. - .. availability:: Unix. - - See the man page :manpage:`alarm(2)` for further information. + .. availability:: Unix. See the man page :manpage:`alarm(2)` for further + information. .. function:: getsignal(signalnum) @@ -383,9 +375,8 @@ The :mod:`signal` module defines the following functions: Cause the process to sleep until a signal is received; the appropriate handler will then be called. Returns nothing. - .. availability:: Unix. - - See the man page :manpage:`signal(2)` for further information. + .. availability:: Unix. See the man page :manpage:`signal(2)` for further + information. See also :func:`sigwait`, :func:`sigwaitinfo`, :func:`sigtimedwait` and :func:`sigpending`. @@ -407,7 +398,7 @@ The :mod:`signal` module defines the following functions: See the :manpage:`pidfd_send_signal(2)` man page for more information. - .. availability:: Linux >= 5.1 + .. availability:: Linux 5.1+ .. versionadded:: 3.9 @@ -430,9 +421,8 @@ The :mod:`signal` module defines the following functions: .. audit-event:: signal.pthread_kill thread_id,signalnum signal.pthread_kill - .. availability:: Unix. - - See the man page :manpage:`pthread_kill(3)` for further information. + .. availability:: Unix. See the man page :manpage:`pthread_kill(3)` for further + information. See also :func:`os.kill`. @@ -464,9 +454,7 @@ The :mod:`signal` module defines the following functions: :data:`SIGKILL` and :data:`SIGSTOP` cannot be blocked. - .. availability:: Unix. - - See the man page :manpage:`sigprocmask(2)` and + .. availability:: Unix. See the man page :manpage:`sigprocmask(2)` and :manpage:`pthread_sigmask(3)` for further information. See also :func:`pause`, :func:`sigpending` and :func:`sigwait`. @@ -554,9 +542,8 @@ The :mod:`signal` module defines the following functions: calls will be restarted when interrupted by signal *signalnum*, otherwise system calls will be interrupted. Returns nothing. - .. availability:: Unix. - - See the man page :manpage:`siginterrupt(3)` for further information. + .. availability:: Unix. See the man page :manpage:`siginterrupt(3)` + for further information. Note that installing a signal handler with :func:`signal` will reset the restart behaviour to interruptible by implicitly calling @@ -596,9 +583,8 @@ The :mod:`signal` module defines the following functions: thread (i.e., the signals which have been raised while blocked). Return the set of the pending signals. - .. availability:: Unix. - - See the man page :manpage:`sigpending(2)` for further information. + .. availability:: Unix. See the man page :manpage:`sigpending(2)` for further + information. See also :func:`pause`, :func:`pthread_sigmask` and :func:`sigwait`. @@ -611,9 +597,8 @@ The :mod:`signal` module defines the following functions: signals specified in the signal set *sigset*. The function accepts the signal (removes it from the pending list of signals), and returns the signal number. - .. availability:: Unix. - - See the man page :manpage:`sigwait(3)` for further information. + .. availability:: Unix. See the man page :manpage:`sigwait(3)` for further + information. See also :func:`pause`, :func:`pthread_sigmask`, :func:`sigpending`, :func:`sigwaitinfo` and :func:`sigtimedwait`. @@ -637,9 +622,8 @@ The :mod:`signal` module defines the following functions: :attr:`si_errno`, :attr:`si_pid`, :attr:`si_uid`, :attr:`si_status`, :attr:`si_band`. - .. availability:: Unix. - - See the man page :manpage:`sigwaitinfo(2)` for further information. + .. availability:: Unix. See the man page :manpage:`sigwaitinfo(2)` for further + information. See also :func:`pause`, :func:`sigwait` and :func:`sigtimedwait`. @@ -657,9 +641,8 @@ The :mod:`signal` module defines the following functions: specifying a timeout. If *timeout* is specified as :const:`0`, a poll is performed. Returns :const:`None` if a timeout occurs. - .. availability:: Unix. - - See the man page :manpage:`sigtimedwait(2)` for further information. + .. availability:: Unix. See the man page :manpage:`sigtimedwait(2)` for further + information. See also :func:`pause`, :func:`sigwait` and :func:`sigwaitinfo`. @@ -756,7 +739,7 @@ To illustrate this issue, consider the following code:: def __enter__(self): # If KeyboardInterrupt occurs here, everything is fine self.lock.acquire() - # If KeyboardInterrupt occurs here, __exit__ will not be called + # If KeyboardInterrupt occcurs here, __exit__ will not be called ... # KeyboardInterrupt could occur just before the function returns diff --git a/Doc/library/smtpd.rst b/Doc/library/smtpd.rst new file mode 100644 index 00000000000000..a0d1fb0aa51529 --- /dev/null +++ b/Doc/library/smtpd.rst @@ -0,0 +1,267 @@ +:mod:`smtpd` --- SMTP Server +============================ + +.. module:: smtpd + :synopsis: A SMTP server implementation in Python. + :deprecated: + +.. moduleauthor:: Barry Warsaw <barry@python.org> +.. sectionauthor:: Moshe Zadka <moshez@moshez.org> + +**Source code:** :source:`Lib/smtpd.py` + +-------------- + +This module offers several classes to implement SMTP (email) servers. + +.. deprecated-removed:: 3.6 3.12 + The :mod:`smtpd` module is deprecated + (see :pep:`PEP 594 <594#smtpd>` for details). + The `aiosmtpd <https://aiosmtpd.readthedocs.io/>`_ package is a recommended + replacement for this module. It is based on :mod:`asyncio` and provides a + more straightforward API. + +Several server implementations are present; one is a generic +do-nothing implementation, which can be overridden, while the other two offer +specific mail-sending strategies. + +Additionally the SMTPChannel may be extended to implement very specific +interaction behaviour with SMTP clients. + +The code supports :RFC:`5321`, plus the :rfc:`1870` SIZE and :rfc:`6531` +SMTPUTF8 extensions. + + +SMTPServer Objects +------------------ + + +.. class:: SMTPServer(localaddr, remoteaddr, data_size_limit=33554432,\ + map=None, enable_SMTPUTF8=False, decode_data=False) + + Create a new :class:`SMTPServer` object, which binds to local address + *localaddr*. It will treat *remoteaddr* as an upstream SMTP relayer. Both + *localaddr* and *remoteaddr* should be a :ref:`(host, port) <host_port>` + tuple. The object inherits from :class:`asyncore.dispatcher`, and so will + insert itself into :mod:`asyncore`'s event loop on instantiation. + + *data_size_limit* specifies the maximum number of bytes that will be + accepted in a ``DATA`` command. A value of ``None`` or ``0`` means no + limit. + + *map* is the socket map to use for connections (an initially empty + dictionary is a suitable value). If not specified the :mod:`asyncore` + global socket map is used. + + *enable_SMTPUTF8* determines whether the ``SMTPUTF8`` extension (as defined + in :RFC:`6531`) should be enabled. The default is ``False``. + When ``True``, ``SMTPUTF8`` is accepted as a parameter to the ``MAIL`` + command and when present is passed to :meth:`process_message` in the + ``kwargs['mail_options']`` list. *decode_data* and *enable_SMTPUTF8* + cannot be set to ``True`` at the same time. + + *decode_data* specifies whether the data portion of the SMTP transaction + should be decoded using UTF-8. When *decode_data* is ``False`` (the + default), the server advertises the ``8BITMIME`` + extension (:rfc:`6152`), accepts the ``BODY=8BITMIME`` parameter to + the ``MAIL`` command, and when present passes it to :meth:`process_message` + in the ``kwargs['mail_options']`` list. *decode_data* and *enable_SMTPUTF8* + cannot be set to ``True`` at the same time. + + .. method:: process_message(peer, mailfrom, rcpttos, data, **kwargs) + + Raise a :exc:`NotImplementedError` exception. Override this in subclasses to + do something useful with this message. Whatever was passed in the + constructor as *remoteaddr* will be available as the :attr:`_remoteaddr` + attribute. *peer* is the remote host's address, *mailfrom* is the envelope + originator, *rcpttos* are the envelope recipients and *data* is a string + containing the contents of the e-mail (which should be in :rfc:`5321` + format). + + If the *decode_data* constructor keyword is set to ``True``, the *data* + argument will be a unicode string. If it is set to ``False``, it + will be a bytes object. + + *kwargs* is a dictionary containing additional information. It is empty + if ``decode_data=True`` was given as an init argument, otherwise + it contains the following keys: + + *mail_options*: + a list of all received parameters to the ``MAIL`` + command (the elements are uppercase strings; example: + ``['BODY=8BITMIME', 'SMTPUTF8']``). + + *rcpt_options*: + same as *mail_options* but for the ``RCPT`` command. + Currently no ``RCPT TO`` options are supported, so for now + this will always be an empty list. + + Implementations of ``process_message`` should use the ``**kwargs`` + signature to accept arbitrary keyword arguments, since future feature + enhancements may add keys to the kwargs dictionary. + + Return ``None`` to request a normal ``250 Ok`` response; otherwise + return the desired response string in :RFC:`5321` format. + + .. attribute:: channel_class + + Override this in subclasses to use a custom :class:`SMTPChannel` for + managing SMTP clients. + + .. versionadded:: 3.4 + The *map* constructor argument. + + .. versionchanged:: 3.5 + *localaddr* and *remoteaddr* may now contain IPv6 addresses. + + .. versionadded:: 3.5 + The *decode_data* and *enable_SMTPUTF8* constructor parameters, and the + *kwargs* parameter to :meth:`process_message` when *decode_data* is + ``False``. + + .. versionchanged:: 3.6 + *decode_data* is now ``False`` by default. + + +DebuggingServer Objects +----------------------- + + +.. class:: DebuggingServer(localaddr, remoteaddr) + + Create a new debugging server. Arguments are as per :class:`SMTPServer`. + Messages will be discarded, and printed on stdout. + + +PureProxy Objects +----------------- + + +.. class:: PureProxy(localaddr, remoteaddr) + + Create a new pure proxy server. Arguments are as per :class:`SMTPServer`. + Everything will be relayed to *remoteaddr*. Note that running this has a good + chance to make you into an open relay, so please be careful. + + +SMTPChannel Objects +------------------- + +.. class:: SMTPChannel(server, conn, addr, data_size_limit=33554432,\ + map=None, enable_SMTPUTF8=False, decode_data=False) + + Create a new :class:`SMTPChannel` object which manages the communication + between the server and a single SMTP client. + + *conn* and *addr* are as per the instance variables described below. + + *data_size_limit* specifies the maximum number of bytes that will be + accepted in a ``DATA`` command. A value of ``None`` or ``0`` means no + limit. + + *enable_SMTPUTF8* determines whether the ``SMTPUTF8`` extension (as defined + in :RFC:`6531`) should be enabled. The default is ``False``. + *decode_data* and *enable_SMTPUTF8* cannot be set to ``True`` at the same + time. + + A dictionary can be specified in *map* to avoid using a global socket map. + + *decode_data* specifies whether the data portion of the SMTP transaction + should be decoded using UTF-8. The default is ``False``. + *decode_data* and *enable_SMTPUTF8* cannot be set to ``True`` at the same + time. + + To use a custom SMTPChannel implementation you need to override the + :attr:`SMTPServer.channel_class` of your :class:`SMTPServer`. + + .. versionchanged:: 3.5 + The *decode_data* and *enable_SMTPUTF8* parameters were added. + + .. versionchanged:: 3.6 + *decode_data* is now ``False`` by default. + + The :class:`SMTPChannel` has the following instance variables: + + .. attribute:: smtp_server + + Holds the :class:`SMTPServer` that spawned this channel. + + .. attribute:: conn + + Holds the socket object connecting to the client. + + .. attribute:: addr + + Holds the address of the client, the second value returned by + :func:`socket.accept <socket.socket.accept>` + + .. attribute:: received_lines + + Holds a list of the line strings (decoded using UTF-8) received from + the client. The lines have their ``"\r\n"`` line ending translated to + ``"\n"``. + + .. attribute:: smtp_state + + Holds the current state of the channel. This will be either + :attr:`COMMAND` initially and then :attr:`DATA` after the client sends + a "DATA" line. + + .. attribute:: seen_greeting + + Holds a string containing the greeting sent by the client in its "HELO". + + .. attribute:: mailfrom + + Holds a string containing the address identified in the "MAIL FROM:" line + from the client. + + .. attribute:: rcpttos + + Holds a list of strings containing the addresses identified in the + "RCPT TO:" lines from the client. + + .. attribute:: received_data + + Holds a string containing all of the data sent by the client during the + DATA state, up to but not including the terminating ``"\r\n.\r\n"``. + + .. attribute:: fqdn + + Holds the fully-qualified domain name of the server as returned by + :func:`socket.getfqdn`. + + .. attribute:: peer + + Holds the name of the client peer as returned by ``conn.getpeername()`` + where ``conn`` is :attr:`conn`. + + The :class:`SMTPChannel` operates by invoking methods named ``smtp_<command>`` + upon reception of a command line from the client. Built into the base + :class:`SMTPChannel` class are methods for handling the following commands + (and responding to them appropriately): + + ======== =================================================================== + Command Action taken + ======== =================================================================== + HELO Accepts the greeting from the client and stores it in + :attr:`seen_greeting`. Sets server to base command mode. + EHLO Accepts the greeting from the client and stores it in + :attr:`seen_greeting`. Sets server to extended command mode. + NOOP Takes no action. + QUIT Closes the connection cleanly. + MAIL Accepts the "MAIL FROM:" syntax and stores the supplied address as + :attr:`mailfrom`. In extended command mode, accepts the + :rfc:`1870` SIZE attribute and responds appropriately based on the + value of *data_size_limit*. + RCPT Accepts the "RCPT TO:" syntax and stores the supplied addresses in + the :attr:`rcpttos` list. + RSET Resets the :attr:`mailfrom`, :attr:`rcpttos`, and + :attr:`received_data`, but not the greeting. + DATA Sets the internal state to :attr:`DATA` and stores remaining lines + from the client in :attr:`received_data` until the terminator + ``"\r\n.\r\n"`` is received. + HELP Returns minimal information on command syntax + VRFY Returns code 252 (the server doesn't know if the address is valid) + EXPN Reports that the command is not implemented. + ======== =================================================================== diff --git a/Doc/library/smtplib.rst b/Doc/library/smtplib.rst index 4e50ad1568ed09..aaab6b11d3bbe5 100644 --- a/Doc/library/smtplib.rst +++ b/Doc/library/smtplib.rst @@ -19,7 +19,6 @@ to send mail to any internet machine with an SMTP or ESMTP listener daemon. For details of SMTP and ESMTP operation, consult :rfc:`821` (Simple Mail Transfer Protocol) and :rfc:`1869` (SMTP Service Extensions). -.. include:: ../includes/wasm-notavail.rst .. class:: SMTP(host='', port=0, local_hostname=None[, timeout], source_address=None) diff --git a/Doc/library/socket.rst b/Doc/library/socket.rst old mode 100644 new mode 100755 index f97c4f67001633..1b801955dff17e --- a/Doc/library/socket.rst +++ b/Doc/library/socket.rst @@ -16,9 +16,6 @@ all modern Unix systems, Windows, MacOS, and probably additional platforms. Some behavior may be platform dependent, since calls are made to the operating system socket APIs. - -.. include:: ../includes/wasm-notavail.rst - .. index:: object: socket The Python interface is a straightforward transliteration of the Unix system @@ -128,7 +125,7 @@ created. Socket addresses are represented as follows: - A string or a tuple ``(id, unit)`` is used for the :const:`SYSPROTO_CONTROL` protocol of the :const:`PF_SYSTEM` family. The string is the name of a - kernel control using a dynamically assigned ID. The tuple can be used if ID + kernel control using a dynamically-assigned ID. The tuple can be used if ID and unit number of the kernel control are known or if a registered ID is used. @@ -168,9 +165,7 @@ created. Socket addresses are represented as follows: - *feat* and *mask* are unsigned 32bit integers. - .. availability:: Linux >= 2.6.38. - - Some algorithm types require more recent Kernels. + .. availability:: Linux 2.6.38, some algorithm types require more recent Kernels. .. versionadded:: 3.6 @@ -178,9 +173,7 @@ created. Socket addresses are represented as follows: their hosts. The sockets are represented as a ``(CID, port)`` tuple where the context ID or CID and port are integers. - .. availability:: Linux >= 3.9 - - See :manpage:`vsock(7)` + .. availability:: Linux >= 4.8 QEMU >= 2.8 ESX >= 4.0 ESX Workstation >= 6.5. .. versionadded:: 3.7 @@ -228,7 +221,7 @@ created. Socket addresses are represented as follows: ``socket(AF_INET, SOCK_DGRAM, IPPROTO_UDPLITE)`` for IPv4 or ``socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDPLITE)`` for IPv6. - .. availability:: Linux >= 2.6.20, FreeBSD >= 10.1 + .. availability:: Linux >= 2.6.20, FreeBSD >= 10.1-RELEASE .. versionadded:: 3.9 @@ -249,7 +242,7 @@ created. Socket addresses are represented as follows: child partitions. - ``HV_GUID_LOOPBACK`` - Used as a target to itself. - ``HV_GUID_PARENT`` - When used as a bind accepts connection from the parent - partition. When used as an address target it will connect to the parent partition. + partition. When used as an address target it will connect to the parent parition. The ``service_id`` is the service identifier of the registered service. @@ -370,7 +363,7 @@ Constants .. seealso:: - `Secure File Descriptor Handling <https://udrepper.livejournal.com/20407.html>`_ + `Secure File Descriptor Handling <http://udrepper.livejournal.com/20407.html>`_ for a more thorough explanation. .. availability:: Linux >= 2.6.27. @@ -623,6 +616,7 @@ Constants HV_PROTOCOL_RAW HVSOCKET_CONNECT_TIMEOUT HVSOCKET_CONNECT_TIMEOUT_MAX + HVSOCKET_CONTAINER_PASSTHRU HVSOCKET_CONNECTED_SUSPEND HVSOCKET_ADDRESS_FLAG_PASSTHRU HV_GUID_ZERO @@ -921,8 +915,6 @@ The :mod:`socket` module also offers various network-related services: .. audit-event:: socket.gethostbyname hostname socket.gethostbyname - .. availability:: not WASI. - .. function:: gethostbyname_ex(hostname) @@ -937,8 +929,6 @@ The :mod:`socket` module also offers various network-related services: .. audit-event:: socket.gethostbyname hostname socket.gethostbyname_ex - .. availability:: not WASI. - .. function:: gethostname() @@ -950,8 +940,6 @@ The :mod:`socket` module also offers various network-related services: Note: :func:`gethostname` doesn't always return the fully qualified domain name; use :func:`getfqdn` for that. - .. availability:: not WASI. - .. function:: gethostbyaddr(ip_address) @@ -965,13 +953,11 @@ The :mod:`socket` module also offers various network-related services: .. audit-event:: socket.gethostbyaddr ip_address socket.gethostbyaddr - .. availability:: not WASI. - .. function:: getnameinfo(sockaddr, flags) Translate a socket address *sockaddr* into a 2-tuple ``(host, port)``. Depending - on the settings of *flags*, the result can contain a fully qualified domain name + on the settings of *flags*, the result can contain a fully-qualified domain name or numeric address representation in *host*. Similarly, *port* can contain a string port name or a numeric port number. @@ -982,9 +968,6 @@ The :mod:`socket` module also offers various network-related services: .. audit-event:: socket.getnameinfo sockaddr socket.getnameinfo - .. availability:: not WASI. - - .. function:: getprotobyname(protocolname) Translate an internet protocol name (for example, ``'icmp'``) to a constant @@ -993,8 +976,6 @@ The :mod:`socket` module also offers various network-related services: (:const:`SOCK_RAW`); for the normal socket modes, the correct protocol is chosen automatically if the protocol is omitted or zero. - .. availability:: not WASI. - .. function:: getservbyname(servicename[, protocolname]) @@ -1004,8 +985,6 @@ The :mod:`socket` module also offers various network-related services: .. audit-event:: socket.getservbyname servicename,protocolname socket.getservbyname - .. availability:: not WASI. - .. function:: getservbyport(port[, protocolname]) @@ -1015,8 +994,6 @@ The :mod:`socket` module also offers various network-related services: .. audit-event:: socket.getservbyport port,protocolname socket.getservbyport - .. availability:: not WASI. - .. function:: ntohl(x) @@ -1104,7 +1081,7 @@ The :mod:`socket` module also offers various network-related services: both the value of *address_family* and the underlying implementation of :c:func:`inet_pton`. - .. availability:: Unix, Windows. + .. availability:: Unix (maybe not all platforms), Windows. .. versionchanged:: 3.4 Windows support added @@ -1124,7 +1101,7 @@ The :mod:`socket` module also offers various network-related services: length for the specified address family, :exc:`ValueError` will be raised. :exc:`OSError` is raised for errors from the call to :func:`inet_ntop`. - .. availability:: Unix, Windows. + .. availability:: Unix (maybe not all platforms), Windows. .. versionchanged:: 3.4 Windows support added @@ -1150,9 +1127,7 @@ The :mod:`socket` module also offers various network-related services: buffer. Raises :exc:`OverflowError` if *length* is outside the permissible range of values. - .. availability:: Unix, not Emscripten, not WASI. - - Most Unix platforms. + .. availability:: most Unix platforms, possibly others. .. versionadded:: 3.3 @@ -1173,9 +1148,7 @@ The :mod:`socket` module also offers various network-related services: amount of ancillary data that can be received, since additional data may be able to fit into the padding area. - .. availability:: Unix, not Emscripten, not WASI. - - most Unix platforms. + .. availability:: most Unix platforms, possibly others. .. versionadded:: 3.3 @@ -1213,7 +1186,7 @@ The :mod:`socket` module also offers various network-related services: (index int, name string) tuples. :exc:`OSError` if the system call fails. - .. availability:: Unix, Windows, not Emscripten, not WASI. + .. availability:: Unix, Windows. .. versionadded:: 3.3 @@ -1240,7 +1213,7 @@ The :mod:`socket` module also offers various network-related services: interface name. :exc:`OSError` if no interface with the given name exists. - .. availability:: Unix, Windows, not Emscripten, not WASI. + .. availability:: Unix, Windows. .. versionadded:: 3.3 @@ -1257,7 +1230,7 @@ The :mod:`socket` module also offers various network-related services: interface index number. :exc:`OSError` if no interface with the given index exists. - .. availability:: Unix, Windows, not Emscripten, not WASI. + .. availability:: Unix, Windows. .. versionadded:: 3.3 @@ -1274,10 +1247,7 @@ The :mod:`socket` module also offers various network-related services: The *fds* parameter is a sequence of file descriptors. Consult :meth:`sendmsg` for the documentation of these parameters. - .. availability:: Unix, Windows, not Emscripten, not WASI. - - Unix platforms supporting :meth:`~socket.sendmsg` - and :const:`SCM_RIGHTS` mechanism. + .. availability:: Unix supporting :meth:`~socket.sendmsg` and :const:`SCM_RIGHTS` mechanism. .. versionadded:: 3.9 @@ -1288,10 +1258,7 @@ The :mod:`socket` module also offers various network-related services: Return ``(msg, list(fds), flags, addr)``. Consult :meth:`recvmsg` for the documentation of these parameters. - .. availability:: Unix, Windows, not Emscripten, not WASI. - - Unix platforms supporting :meth:`~socket.sendmsg` - and :const:`SCM_RIGHTS` mechanism. + .. availability:: Unix supporting :meth:`~socket.recvmsg` and :const:`SCM_RIGHTS` mechanism. .. versionadded:: 3.9 @@ -1339,9 +1306,6 @@ to sockets. .. audit-event:: socket.bind self,address socket.socket.bind - .. availability:: not WASI. - - .. method:: socket.close() Mark the socket closed. The underlying system resource (e.g. a file @@ -1386,8 +1350,6 @@ to sockets. signal, the signal handler doesn't raise an exception and the socket is blocking or has a timeout (see the :pep:`475` for the rationale). - .. availability:: not WASI. - .. method:: socket.connect_ex(address) @@ -1400,8 +1362,6 @@ to sockets. .. audit-event:: socket.connect self,address socket.socket.connect_ex - .. availability:: not WASI. - .. method:: socket.detach() Put the socket object into closed state without actually closing the @@ -1420,8 +1380,6 @@ to sockets. .. versionchanged:: 3.4 The socket is now non-inheritable. - .. availability:: not WASI. - .. method:: socket.fileno() @@ -1467,8 +1425,6 @@ to sockets. contents of the buffer (see the optional built-in module :mod:`struct` for a way to decode C structures encoded as byte strings). - .. availability:: not WASI. - .. method:: socket.getblocking() @@ -1512,12 +1468,9 @@ to sockets. unaccepted connections that the system will allow before refusing new connections. If not specified, a default reasonable value is chosen. - .. availability:: not WASI. - .. versionchanged:: 3.5 The *backlog* parameter is now optional. - .. method:: socket.makefile(mode='r', buffering=None, *, encoding=None, \ errors=None, newline=None) @@ -1640,9 +1593,7 @@ to sockets. fds.frombytes(cmsg_data[:len(cmsg_data) - (len(cmsg_data) % fds.itemsize)]) return msg, list(fds) - .. availability:: Unix. - - Most Unix platforms. + .. availability:: most Unix platforms, possibly others. .. versionadded:: 3.3 @@ -1684,9 +1635,7 @@ to sockets. >>> [b1, b2, b3] [bytearray(b'Mary'), bytearray(b'01 had a 9'), bytearray(b'little lamb---')] - .. availability:: Unix. - - Most Unix platforms. + .. availability:: most Unix platforms, possibly others. .. versionadded:: 3.3 @@ -1792,9 +1741,7 @@ to sockets. def send_fds(sock, msg, fds): return sock.sendmsg([msg], [(socket.SOL_SOCKET, socket.SCM_RIGHTS, array.array("i", fds))]) - .. availability:: Unix, not WASI. - - Most Unix platforms. + .. availability:: most Unix platforms, possibly others. .. audit-event:: socket.sendmsg self,address socket.socket.sendmsg @@ -1888,14 +1835,13 @@ to sockets. *optlen* argument is required. It's equivalent to call :c:func:`setsockopt` C function with ``optval=NULL`` and ``optlen=optlen``. + .. versionchanged:: 3.5 Writable :term:`bytes-like object` is now accepted. .. versionchanged:: 3.6 setsockopt(level, optname, None, optlen: int) form added. - .. availability:: not WASI. - .. method:: socket.shutdown(how) @@ -1904,8 +1850,6 @@ to sockets. are disallowed. If *how* is :const:`SHUT_RDWR`, further sends and receives are disallowed. - .. availability:: not WASI. - .. method:: socket.share(process_id) @@ -2132,10 +2076,10 @@ the interface:: # Include IP headers s.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1) - # receive all packets + # receive all packages s.ioctl(socket.SIO_RCVALL, socket.RCVALL_ON) - # receive a packet + # receive a package print(s.recvfrom(65565)) # disabled promiscuous mode diff --git a/Doc/library/socketserver.rst b/Doc/library/socketserver.rst index 70d56a1dad94f2..b65a3e8fb2b975 100644 --- a/Doc/library/socketserver.rst +++ b/Doc/library/socketserver.rst @@ -10,8 +10,6 @@ The :mod:`socketserver` module simplifies the task of writing network servers. -.. include:: ../includes/wasm-notavail.rst - There are four basic concrete server classes: diff --git a/Doc/library/spwd.rst b/Doc/library/spwd.rst index d1693ea67f0ceb..87e09167ada427 100644 --- a/Doc/library/spwd.rst +++ b/Doc/library/spwd.rst @@ -15,8 +15,6 @@ This module provides access to the Unix shadow password database. It is available on various Unix versions. -.. include:: ../includes/wasm-notavail.rst - You must have enough privileges to access the shadow password database (this usually means you have to be root). diff --git a/Doc/library/sqlite3.rst b/Doc/library/sqlite3.rst index e2774a502403e7..1843e22640f014 100644 --- a/Doc/library/sqlite3.rst +++ b/Doc/library/sqlite3.rst @@ -8,17 +8,7 @@ **Source code:** :source:`Lib/sqlite3/` -.. Make sure we always doctest the tutorial with an empty database. - -.. testsetup:: - - import sqlite3 - src = sqlite3.connect(":memory:", isolation_level=None) - dst = sqlite3.connect("tutorial.db", isolation_level=None) - src.backup(dst) - del src, dst - -.. _sqlite3-intro: +-------------- SQLite is a C library that provides a lightweight disk-based database that doesn't require a separate server process and allows accessing the database @@ -27,443 +17,107 @@ SQLite for internal data storage. It's also possible to prototype an application using SQLite and then port the code to a larger database such as PostgreSQL or Oracle. -The :mod:`!sqlite3` module was written by Gerhard Häring. It provides an SQL interface +The sqlite3 module was written by Gerhard Häring. It provides an SQL interface compliant with the DB-API 2.0 specification described by :pep:`249`, and requires SQLite 3.7.15 or newer. -This document includes four main sections: - -* :ref:`sqlite3-tutorial` teaches how to use the :mod:`!sqlite3` module. -* :ref:`sqlite3-reference` describes the classes and functions this module - defines. -* :ref:`sqlite3-howtos` details how to handle specific tasks. -* :ref:`sqlite3-explanation` provides in-depth background on - transaction control. - -.. seealso:: - - https://www.sqlite.org - The SQLite web page; the documentation describes the syntax and the - available data types for the supported SQL dialect. - - https://www.w3schools.com/sql/ - Tutorial, reference and examples for learning SQL syntax. - - :pep:`249` - Database API Specification 2.0 - PEP written by Marc-André Lemburg. - - -.. We use the following practises for SQL code: - - UPPERCASE for keywords - - snake_case for schema - - single quotes for string literals - - singular for table names - - if needed, use double quotes for table and column names - -.. _sqlite3-tutorial: - -Tutorial --------- - -In this tutorial, you will create a database of Monty Python movies -using basic :mod:`!sqlite3` functionality. -It assumes a fundamental understanding of database concepts, -including `cursors`_ and `transactions`_. - -First, we need to create a new database and open -a database connection to allow :mod:`!sqlite3` to work with it. -Call :func:`sqlite3.connect` to to create a connection to -the database :file:`tutorial.db` in the current working directory, -implicitly creating it if it does not exist: - -.. testcode:: +To use the module, start by creating a :class:`Connection` object that +represents the database. Here the data will be stored in the +:file:`example.db` file:: import sqlite3 - con = sqlite3.connect("tutorial.db") + con = sqlite3.connect('example.db') -The returned :class:`Connection` object ``con`` -represents the connection to the on-disk database. +The special path name ``:memory:`` can be provided to create a temporary +database in RAM. -In order to execute SQL statements and fetch results from SQL queries, -we will need to use a database cursor. -Call :meth:`con.cursor() <Connection.cursor>` to create the :class:`Cursor`: - -.. testcode:: +Once a :class:`Connection` has been established, create a :class:`Cursor` object +and call its :meth:`~Cursor.execute` method to perform SQL commands:: cur = con.cursor() -Now that we've got a database connection and a cursor, -we can create a database table ``movie`` with columns for title, -release year, and review score. -For simplicity, we can just use column names in the table declaration -- -thanks to the `flexible typing`_ feature of SQLite, -specifying the data types is optional. -Execute the ``CREATE TABLE`` statement -by calling :meth:`cur.execute(...) <Cursor.execute>`: + # Create table + cur.execute('''CREATE TABLE stocks + (date text, trans text, symbol text, qty real, price real)''') -.. testcode:: + # Insert a row of data + cur.execute("INSERT INTO stocks VALUES ('2006-01-05','BUY','RHAT',100,35.14)") - cur.execute("CREATE TABLE movie(title, year, score)") + # Save (commit) the changes + con.commit() -.. Ideally, we'd use sqlite_schema instead of sqlite_master below, - but SQLite versions older than 3.33.0 do not recognise that variant. + # We can also close the connection if we are done with it. + # Just be sure any changes have been committed or they will be lost. + con.close() -We can verify that the new table has been created by querying -the ``sqlite_master`` table built-in to SQLite, -which should now contain an entry for the ``movie`` table definition -(see `The Schema Table`_ for details). -Execute that query by calling :meth:`cur.execute(...) <Cursor.execute>`, -assign the result to ``res``, -and call :meth:`res.fetchone() <Cursor.fetchone>` to fetch the resulting row: +The saved data is persistent: it can be reloaded in a subsequent session even +after restarting the Python interpreter:: -.. doctest:: + import sqlite3 + con = sqlite3.connect('example.db') + cur = con.cursor() - >>> res = cur.execute("SELECT name FROM sqlite_master") - >>> res.fetchone() - ('movie',) +To retrieve data after executing a SELECT statement, either treat the cursor as +an :term:`iterator`, call the cursor's :meth:`~Cursor.fetchone` method to +retrieve a single matching row, or call :meth:`~Cursor.fetchall` to get a list +of the matching rows. -We can see that the table has been created, -as the query returns a :class:`tuple` containing the table's name. -If we query ``sqlite_master`` for a non-existent table ``spam``, -:meth:`!res.fetchone()` will return ``None``: +This example uses the iterator form:: -.. doctest:: + >>> for row in cur.execute('SELECT * FROM stocks ORDER BY price'): + print(row) - >>> res = cur.execute("SELECT name FROM sqlite_master WHERE name='spam'") - >>> res.fetchone() is None - True + ('2006-01-05', 'BUY', 'RHAT', 100, 35.14) + ('2006-03-28', 'BUY', 'IBM', 1000, 45.0) + ('2006-04-06', 'SELL', 'IBM', 500, 53.0) + ('2006-04-05', 'BUY', 'MSFT', 1000, 72.0) -Now, add two rows of data supplied as SQL literals -by executing an ``INSERT`` statement, -once again by calling :meth:`cur.execute(...) <Cursor.execute>`: -.. testcode:: +.. _sqlite3-placeholders: - cur.execute(""" - INSERT INTO movie VALUES - ('Monty Python and the Holy Grail', 1975, 8.2), - ('And Now for Something Completely Different', 1971, 7.5) - """) +SQL operations usually need to use values from Python variables. However, +beware of using Python's string operations to assemble queries, as they +are vulnerable to SQL injection attacks (see the `xkcd webcomic +<https://xkcd.com/327/>`_ for a humorous example of what can go wrong):: -The ``INSERT`` statement implicitly opens a transaction, -which needs to be committed before changes are saved in the database -(see :ref:`sqlite3-controlling-transactions` for details). -Call :meth:`con.commit() <Connection.commit>` on the connection object -to commit the transaction: + # Never do this -- insecure! + symbol = 'RHAT' + cur.execute("SELECT * FROM stocks WHERE symbol = '%s'" % symbol) -.. testcode:: +Instead, use the DB-API's parameter substitution. To insert a variable into a +query string, use a placeholder in the string, and substitute the actual values +into the query by providing them as a :class:`tuple` of values to the second +argument of the cursor's :meth:`~Cursor.execute` method. An SQL statement may +use one of two kinds of placeholders: question marks (qmark style) or named +placeholders (named style). For the qmark style, ``parameters`` must be a +:term:`sequence <sequence>`. For the named style, it can be either a +:term:`sequence <sequence>` or :class:`dict` instance. The length of the +:term:`sequence <sequence>` must match the number of placeholders, or a +:exc:`ProgrammingError` is raised. If a :class:`dict` is given, it must contain +keys for all named parameters. Any extra items are ignored. Here's an example of +both styles: - con.commit() +.. literalinclude:: ../includes/sqlite3/execute_1.py -We can verify that the data was inserted correctly -by executing a ``SELECT`` query. -Use the now-familiar :meth:`cur.execute(...) <Cursor.execute>` to -assign the result to ``res``, -and call :meth:`res.fetchall() <Cursor.fetchall>` to return all resulting rows: - -.. doctest:: - - >>> res = cur.execute("SELECT score FROM movie") - >>> res.fetchall() - [(8.2,), (7.5,)] - -The result is a :class:`list` of two :class:`!tuple`\s, one per row, -each containing that row's ``score`` value. - -Now, insert three more rows by calling -:meth:`cur.executemany(...) <Cursor.executemany>`: - -.. testcode:: - - data = [ - ("Monty Python Live at the Hollywood Bowl", 1982, 7.9), - ("Monty Python's The Meaning of Life", 1983, 7.5), - ("Monty Python's Life of Brian", 1979, 8.0), - ] - cur.executemany("INSERT INTO movie VALUES(?, ?, ?)", data) - con.commit() # Remember to commit the transaction after executing INSERT. - -Notice that ``?`` placeholders are used to bind ``data`` to the query. -Always use placeholders instead of :ref:`string formatting <tut-formatting>` -to bind Python values to SQL statements, -to avoid `SQL injection attacks`_ -(see :ref:`sqlite3-placeholders` for more details). - -We can verify that the new rows were inserted -by executing a ``SELECT`` query, -this time iterating over the results of the query: - -.. doctest:: - - >>> for row in cur.execute("SELECT year, title FROM movie ORDER BY year"): - ... print(row) - (1971, 'And Now for Something Completely Different') - (1975, 'Monty Python and the Holy Grail') - (1979, "Monty Python's Life of Brian") - (1982, 'Monty Python Live at the Hollywood Bowl') - (1983, "Monty Python's The Meaning of Life") - -Each row is a two-item :class:`tuple` of ``(year, title)``, -matching the columns selected in the query. - -Finally, verify that the database has been written to disk -by calling :meth:`con.close() <Connection.close>` -to close the existing connection, opening a new one, -creating a new cursor, then querying the database: - -.. doctest:: - - >>> con.close() - >>> new_con = sqlite3.connect("tutorial.db") - >>> new_cur = new_con.cursor() - >>> res = new_cur.execute("SELECT title, year FROM movie ORDER BY score DESC") - >>> title, year = res.fetchone() - >>> print(f'The highest scoring Monty Python movie is {title!r}, released in {year}') - The highest scoring Monty Python movie is 'Monty Python and the Holy Grail', released in 1975 - -You've now created an SQLite database using the :mod:`!sqlite3` module, -inserted data and retrieved values from it in multiple ways. - -.. _SQL injection attacks: https://en.wikipedia.org/wiki/SQL_injection -.. _The Schema Table: https://www.sqlite.org/schematab.html -.. _cursors: https://en.wikipedia.org/wiki/Cursor_(databases) -.. _flexible typing: https://www.sqlite.org/flextypegood.html -.. _sqlite_master: https://www.sqlite.org/schematab.html -.. _transactions: https://en.wikipedia.org/wiki/Database_transaction .. seealso:: - * :ref:`sqlite3-howtos` for further reading: - - * :ref:`sqlite3-placeholders` - * :ref:`sqlite3-adapters` - * :ref:`sqlite3-converters` - * :ref:`sqlite3-connection-context-manager` + https://www.sqlite.org + The SQLite web page; the documentation describes the syntax and the + available data types for the supported SQL dialect. - * :ref:`sqlite3-explanation` for in-depth background on transaction control. + https://www.w3schools.com/sql/ + Tutorial, reference and examples for learning SQL syntax. -.. _sqlite3-reference: + :pep:`249` - Database API Specification 2.0 + PEP written by Marc-André Lemburg. -Reference ---------- -.. We keep the old sqlite3-module-contents ref to prevent breaking links. .. _sqlite3-module-contents: -.. _sqlite3-module-functions: - -Module functions -^^^^^^^^^^^^^^^^ - -.. function:: connect(database, timeout=5.0, detect_types=0, \ - isolation_level="DEFERRED", check_same_thread=True, \ - factory=sqlite3.Connection, cached_statements=128, \ - uri=False) - - Open a connection to an SQLite database. - - :param database: - The path to the database file to be opened. - Pass ``":memory:"`` to open a connection to a database that is - in RAM instead of on disk. - :type database: :term:`path-like object` - - :param float timeout: - How many seconds the connection should wait before raising - an exception, if the database is locked by another connection. - If another connection opens a transaction to modify the database, - it will be locked until that transaction is committed. - Default five seconds. - - :param int detect_types: - Control whether and how data types not - :ref:`natively supported by SQLite <sqlite3-types>` - are looked up to be converted to Python types, - using the converters registered with :func:`register_converter`. - Set it to any combination (using ``|``, bitwise or) of - :const:`PARSE_DECLTYPES` and :const:`PARSE_COLNAMES` - to enable this. - Column names takes precedence over declared types if both flags are set. - Types cannot be detected for generated fields (for example ``max(data)``), - even when the *detect_types* parameter is set; :class:`str` will be - returned instead. - By default (``0``), type detection is disabled. - - :param isolation_level: - The :attr:`~Connection.isolation_level` of the connection, - controlling whether and how transactions are implicitly opened. - Can be ``"DEFERRED"`` (default), ``"EXCLUSIVE"`` or ``"IMMEDIATE"``; - or ``None`` to disable opening transactions implicitly. - See :ref:`sqlite3-controlling-transactions` for more. - :type isolation_level: str | None - - :param bool check_same_thread: - If ``True`` (default), only the creating thread may use the connection. - If ``False``, the connection may be shared across multiple threads; - if so, write operations should be serialized by the user to avoid data - corruption. - - :param Connection factory: - A custom subclass of :class:`Connection` to create the connection with, - if not the default :class:`Connection` class. - - :param int cached_statements: - The number of statements that :mod:`!sqlite3` - should internally cache for this connection, to avoid parsing overhead. - By default, 128 statements. - - :param bool uri: - If set to ``True``, *database* is interpreted as a - :abbr:`URI (Uniform Resource Identifier)` with a file path - and an optional query string. - The scheme part *must* be ``"file:"``, - and the path can be relative or absolute. - The query string allows passing parameters to SQLite, - enabling various :ref:`sqlite3-uri-tricks`. - - :rtype: Connection - - .. audit-event:: sqlite3.connect database sqlite3.connect - .. audit-event:: sqlite3.connect/handle connection_handle sqlite3.connect - - .. versionadded:: 3.4 - The *uri* parameter. - - .. versionchanged:: 3.7 - *database* can now also be a :term:`path-like object`, not only a string. - - .. versionadded:: 3.10 - The ``sqlite3.connect/handle`` auditing event. - -.. function:: complete_statement(statement) - - Return ``True`` if the string *statement* appears to contain - one or more complete SQL statements. - No syntactic verification or parsing of any kind is performed, - other than checking that there are no unclosed string literals - and the statement is terminated by a semicolon. - - For example: - - .. doctest:: - - >>> sqlite3.complete_statement("SELECT foo FROM bar;") - True - >>> sqlite3.complete_statement("SELECT foo") - False - - This function may be useful during command-line input - to determine if the entered text seems to form a complete SQL statement, - or if additional input is needed before calling :meth:`~Cursor.execute`. - - See :func:`!runsource` in :source:`Lib/sqlite3/__main__.py` - for real-world use. - -.. function:: enable_callback_tracebacks(flag, /) - - Enable or disable callback tracebacks. - By default you will not get any tracebacks in user-defined functions, - aggregates, converters, authorizer callbacks etc. If you want to debug them, - you can call this function with *flag* set to ``True``. Afterwards, you - will get tracebacks from callbacks on :data:`sys.stderr`. Use ``False`` - to disable the feature again. - - Register an :func:`unraisable hook handler <sys.unraisablehook>` for an - improved debug experience: - - .. testsetup:: sqlite3.trace - - import sqlite3 - - .. doctest:: sqlite3.trace - - >>> sqlite3.enable_callback_tracebacks(True) - >>> con = sqlite3.connect(":memory:") - >>> def evil_trace(stmt): - ... 5/0 - >>> con.set_trace_callback(evil_trace) - >>> def debug(unraisable): - ... print(f"{unraisable.exc_value!r} in callback {unraisable.object.__name__}") - ... print(f"Error message: {unraisable.err_msg}") - >>> import sys - >>> sys.unraisablehook = debug - >>> cur = con.execute("SELECT 1") - ZeroDivisionError('division by zero') in callback evil_trace - Error message: None - -.. function:: register_adapter(type, adapter, /) - - Register an *adapter* callable to adapt the Python type *type* into an - SQLite type. - The adapter is called with a Python object of type *type* as its sole - argument, and must return a value of a - :ref:`type that SQLite natively understands <sqlite3-types>`. - -.. function:: register_converter(typename, converter, /) - - Register the *converter* callable to convert SQLite objects of type - *typename* into a Python object of a specific type. - The converter is invoked for all SQLite values of type *typename*; - it is passed a :class:`bytes` object and should return an object of the - desired Python type. - Consult the parameter *detect_types* of - :func:`connect` for information regarding how type detection works. - - Note: *typename* and the name of the type in your query are matched - case-insensitively. - - -.. _sqlite3-module-constants: - -Module constants -^^^^^^^^^^^^^^^^ - -.. data:: PARSE_COLNAMES - - Pass this flag value to the *detect_types* parameter of - :func:`connect` to look up a converter function by - using the type name, parsed from the query column name, - as the converter dictionary key. - The type name must be wrapped in square brackets (``[]``). +Module functions and constants +------------------------------ - .. code-block:: sql - - SELECT p as "p [point]" FROM test; ! will look up converter "point" - - This flag may be combined with :const:`PARSE_DECLTYPES` using the ``|`` - (bitwise or) operator. - -.. data:: PARSE_DECLTYPES - - Pass this flag value to the *detect_types* parameter of - :func:`connect` to look up a converter function using - the declared types for each column. - The types are declared when the database table is created. - :mod:`!sqlite3` will look up a converter function using the first word of the - declared type as the converter dictionary key. - For example: - - .. code-block:: sql - - CREATE TABLE test( - i integer primary key, ! will look up a converter named "integer" - p point, ! will look up a converter named "point" - n number(10) ! will look up a converter named "number" - ) - - This flag may be combined with :const:`PARSE_COLNAMES` using the ``|`` - (bitwise or) operator. - -.. data:: SQLITE_OK - SQLITE_DENY - SQLITE_IGNORE - - Flags that should be returned by the *authorizer_callback* callable - passed to :meth:`Connection.set_authorizer`, to indicate whether: - - * Access is allowed (:const:`!SQLITE_OK`), - * The SQL statement should be aborted with an error (:const:`!SQLITE_DENY`) - * The column should be treated as a ``NULL`` value (:const:`!SQLITE_IGNORE`) .. data:: apilevel @@ -473,29 +127,42 @@ Module constants .. data:: paramstyle String constant stating the type of parameter marker formatting expected by - the :mod:`!sqlite3` module. Required by the DB-API. Hard-coded to + the :mod:`sqlite3` module. Required by the DB-API. Hard-coded to ``"qmark"``. .. note:: - The :mod:`!sqlite3` module supports both ``qmark`` and ``numeric`` DB-API + The :mod:`sqlite3` module supports both ``qmark`` and ``numeric`` DB-API parameter styles, because that is what the underlying SQLite library supports. However, the DB-API does not allow multiple values for the ``paramstyle`` attribute. +.. data:: version + + The version number of this module, as a string. This is not the version of + the SQLite library. + + +.. data:: version_info + + The version number of this module, as a tuple of integers. This is not the + version of the SQLite library. + + .. data:: sqlite_version - Version number of the runtime SQLite library as a :class:`string <str>`. + The version number of the run-time SQLite library, as a string. + .. data:: sqlite_version_info - Version number of the runtime SQLite library as a :class:`tuple` of - :class:`integers <int>`. + The version number of the run-time SQLite library, as a tuple of integers. + .. data:: threadsafety Integer constant required by the DB-API 2.0, stating the level of thread - safety the :mod:`!sqlite3` module supports. This attribute is set based on + safety the :mod:`sqlite3` module supports. This attribute is set based on the default `threading mode <https://sqlite.org/threadsafe.html>`_ the underlying SQLite library is compiled with. The SQLite threading modes are: @@ -530,80 +197,212 @@ Module constants .. versionchanged:: 3.11 Set *threadsafety* dynamically instead of hard-coding it to ``1``. -.. data:: version +.. data:: PARSE_DECLTYPES - Version number of this module as a :class:`string <str>`. - This is not the version of the SQLite library. + This constant is meant to be used with the *detect_types* parameter of the + :func:`connect` function. - .. deprecated-removed:: 3.12 3.14 - This constant used to reflect the version number of the ``pysqlite`` - package, a third-party library which used to upstream changes to - :mod:`!sqlite3`. Today, it carries no meaning or practical value. + Setting it makes the :mod:`sqlite3` module parse the declared type for each + column it returns. It will parse out the first word of the declared type, + i. e. for "integer primary key", it will parse out "integer", or for + "number(10)" it will parse out "number". Then for that column, it will look + into the converters dictionary and use the converter function registered for + that type there. -.. data:: version_info - Version number of this module as a :class:`tuple` of :class:`integers <int>`. - This is not the version of the SQLite library. +.. data:: PARSE_COLNAMES - .. deprecated-removed:: 3.12 3.14 - This constant used to reflect the version number of the ``pysqlite`` - package, a third-party library which used to upstream changes to - :mod:`!sqlite3`. Today, it carries no meaning or practical value. + This constant is meant to be used with the *detect_types* parameter of the + :func:`connect` function. + + Setting this makes the SQLite interface parse the column name for each column it + returns. It will look for a string formed [mytype] in there, and then decide + that 'mytype' is the type of the column. It will try to find an entry of + 'mytype' in the converters dictionary and then use the converter function found + there to return the value. The column name found in :attr:`Cursor.description` + does not include the type, i. e. if you use something like + ``'as "Expiration date [datetime]"'`` in your SQL, then we will parse out + everything until the first ``'['`` for the column name and strip + the preceding space: the column name would simply be "Expiration date". + + +.. function:: connect(database[, timeout, detect_types, isolation_level, check_same_thread, factory, cached_statements, uri]) + + Opens a connection to the SQLite database file *database*. By default returns a + :class:`Connection` object, unless a custom *factory* is given. + + *database* is a :term:`path-like object` giving the pathname (absolute or + relative to the current working directory) of the database file to be opened. + You can use ``":memory:"`` to open a database connection to a database that + resides in RAM instead of on disk. + + When a database is accessed by multiple connections, and one of the processes + modifies the database, the SQLite database is locked until that transaction is + committed. The *timeout* parameter specifies how long the connection should wait + for the lock to go away until raising an exception. The default for the timeout + parameter is 5.0 (five seconds). + + For the *isolation_level* parameter, please see the + :attr:`~Connection.isolation_level` property of :class:`Connection` objects. + + SQLite natively supports only the types TEXT, INTEGER, REAL, BLOB and NULL. If + you want to use other types you must add support for them yourself. The + *detect_types* parameter and the using custom **converters** registered with the + module-level :func:`register_converter` function allow you to easily do that. + + *detect_types* defaults to 0 (i. e. off, no type detection), you can set it to + any combination of :const:`PARSE_DECLTYPES` and :const:`PARSE_COLNAMES` to turn + type detection on. Due to SQLite behaviour, types can't be detected for generated + fields (for example ``max(data)``), even when *detect_types* parameter is set. In + such case, the returned type is :class:`str`. + + By default, *check_same_thread* is :const:`True` and only the creating thread may + use the connection. If set :const:`False`, the returned connection may be shared + across multiple threads. When using multiple threads with the same connection + writing operations should be serialized by the user to avoid data corruption. + + By default, the :mod:`sqlite3` module uses its :class:`Connection` class for the + connect call. You can, however, subclass the :class:`Connection` class and make + :func:`connect` use your class instead by providing your class for the *factory* + parameter. + + Consult the section :ref:`sqlite3-types` of this manual for details. + + The :mod:`sqlite3` module internally uses a statement cache to avoid SQL parsing + overhead. If you want to explicitly set the number of statements that are cached + for the connection, you can set the *cached_statements* parameter. The currently + implemented default is to cache 128 statements. + + If *uri* is :const:`True`, *database* is interpreted as a + :abbr:`URI (Uniform Resource Identifier)` with a file path and an optional + query string. The scheme part *must* be ``"file:"``. The path can be a + relative or absolute file path. The query string allows us to pass + parameters to SQLite. Some useful URI tricks include:: + + # Open a database in read-only mode. + con = sqlite3.connect("file:template.db?mode=ro", uri=True) + + # Don't implicitly create a new database file if it does not already exist. + # Will raise sqlite3.OperationalError if unable to open a database file. + con = sqlite3.connect("file:nosuchdb.db?mode=rw", uri=True) + + # Create a shared named in-memory database. + con1 = sqlite3.connect("file:mem1?mode=memory&cache=shared", uri=True) + con2 = sqlite3.connect("file:mem1?mode=memory&cache=shared", uri=True) + con1.executescript("create table t(t); insert into t values(28);") + rows = con2.execute("select * from t").fetchall() + + More information about this feature, including a list of recognized + parameters, can be found in the + `SQLite URI documentation <https://www.sqlite.org/uri.html>`_. + .. audit-event:: sqlite3.connect database sqlite3.connect + .. audit-event:: sqlite3.connect/handle connection_handle sqlite3.connect -.. _sqlite3-connection-objects: + .. versionchanged:: 3.4 + Added the *uri* parameter. -Connection objects -^^^^^^^^^^^^^^^^^^ + .. versionchanged:: 3.7 + *database* can now also be a :term:`path-like object`, not only a string. -.. class:: Connection + .. versionchanged:: 3.10 + Added the ``sqlite3.connect/handle`` auditing event. - Each open SQLite database is represented by a ``Connection`` object, - which is created using :func:`sqlite3.connect`. - Their main purpose is creating :class:`Cursor` objects, - and :ref:`sqlite3-controlling-transactions`. - .. seealso:: +.. function:: register_converter(typename, callable) - * :ref:`sqlite3-connection-shortcuts` - * :ref:`sqlite3-connection-context-manager` + Registers a callable to convert a bytestring from the database into a custom + Python type. The callable will be invoked for all database values that are of + the type *typename*. Confer the parameter *detect_types* of the :func:`connect` + function for how the type detection works. Note that *typename* and the name of + the type in your query are matched in case-insensitive manner. - An SQLite database connection has the following attributes and methods: - .. method:: cursor(factory=Cursor) +.. function:: register_adapter(type, callable) - Create and return a :class:`Cursor` object. - The cursor method accepts a single optional parameter *factory*. If - supplied, this must be a callable returning an instance of :class:`Cursor` - or its subclasses. + Registers a callable to convert the custom Python type *type* into one of + SQLite's supported types. The callable *callable* accepts as single parameter + the Python value, and must return a value of the following types: int, + float, str or bytes. + + +.. function:: complete_statement(sql) + + Returns :const:`True` if the string *sql* contains one or more complete SQL + statements terminated by semicolons. It does not verify that the SQL is + syntactically correct, only that there are no unclosed string literals and the + statement is terminated by a semicolon. + + This can be used to build a shell for SQLite, as in the following example: + + + .. literalinclude:: ../includes/sqlite3/complete_statement.py + + +.. function:: enable_callback_tracebacks(flag) + + By default you will not get any tracebacks in user-defined functions, + aggregates, converters, authorizer callbacks etc. If you want to debug them, + you can call this function with *flag* set to :const:`True`. Afterwards, you + will get tracebacks from callbacks on :data:`sys.stderr`. Use :const:`False` + to disable the feature again. - .. method:: blobopen(table, column, row, /, \*, readonly=False, name="main") + Register an :func:`unraisable hook handler <sys.unraisablehook>` for an + improved debug experience:: + + >>> import sqlite3 + >>> sqlite3.enable_callback_tracebacks(True) + >>> cx = sqlite3.connect(":memory:") + >>> cx.set_trace_callback(lambda stmt: 5/0) + >>> cx.execute("select 1") + Exception ignored in: <function <lambda> at 0x10b4e3ee0> + Traceback (most recent call last): + File "<stdin>", line 1, in <lambda> + ZeroDivisionError: division by zero + >>> import sys + >>> sys.unraisablehook = lambda unraisable: print(unraisable) + >>> cx.execute("select 1") + UnraisableHookArgs(exc_type=<class 'ZeroDivisionError'>, exc_value=ZeroDivisionError('division by zero'), exc_traceback=<traceback object at 0x10b559900>, err_msg=None, object=<function <lambda> at 0x10b4e3ee0>) + <sqlite3.Cursor object at 0x10b1fe840> + + +.. _sqlite3-connection-objects: + +Connection Objects +------------------ - Open a :class:`Blob` handle to an existing - :abbr:`BLOB (Binary Large OBject)`. +.. class:: Connection + + An SQLite database connection has the following attributes and methods: + + .. attribute:: isolation_level + + Get or set the current default isolation level. :const:`None` for autocommit mode or + one of "DEFERRED", "IMMEDIATE" or "EXCLUSIVE". See section + :ref:`sqlite3-controlling-transactions` for a more detailed explanation. - :param str table: - The name of the table where the blob is located. + .. attribute:: in_transaction - :param str column: - The name of the column where the blob is located. + :const:`True` if a transaction is active (there are uncommitted changes), + :const:`False` otherwise. Read-only attribute. - :param str row: - The name of the row where the blob is located. + .. versionadded:: 3.2 - :param bool readonly: - Set to ``True`` if the blob should be opened without write - permissions. - Defaults to ``False``. + .. method:: cursor(factory=Cursor) - :param str name: - The name of the database where the blob is located. - Defaults to ``"main"``. + The cursor method accepts a single optional parameter *factory*. If + supplied, this must be a callable returning an instance of :class:`Cursor` + or its subclasses. - :raises OperationalError: - When trying to open a blob in a ``WITHOUT ROWID`` table. + .. method:: blobopen(table, column, row, /, *, readonly=False, name="main") - :rtype: Blob + Open a :class:`Blob` handle to the :abbr:`BLOB (Binary Large OBject)` + located in table name *table*, column name *column*, and row index *row* + of database *name*. + When *readonly* is :const:`True` the blob is opened without write + permissions. + Trying to open a blob in a ``WITHOUT ROWID`` table will raise + :exc:`OperationalError`. .. note:: @@ -614,221 +413,108 @@ Connection objects .. method:: commit() - Commit any pending transaction to the database. - If there is no open transaction, this method is a no-op. + This method commits the current transaction. If you don't call this method, + anything you did since the last call to ``commit()`` is not visible from + other database connections. If you wonder why you don't see the data you've + written to the database, please check you didn't forget to call this method. .. method:: rollback() - Roll back to the start of any pending transaction. - If there is no open transaction, this method is a no-op. + This method rolls back any changes to the database since the last call to + :meth:`commit`. .. method:: close() - Close the database connection. - Any pending transaction is not committed implicitly; - make sure to :meth:`commit` before closing - to avoid losing pending changes. + This closes the database connection. Note that this does not automatically + call :meth:`commit`. If you just close your database connection without + calling :meth:`commit` first, your changes will be lost! - .. method:: execute(sql, parameters=(), /) + .. method:: execute(sql[, parameters]) Create a new :class:`Cursor` object and call :meth:`~Cursor.execute` on it with the given *sql* and *parameters*. Return the new cursor object. - .. method:: executemany(sql, parameters, /) + .. method:: executemany(sql[, parameters]) Create a new :class:`Cursor` object and call :meth:`~Cursor.executemany` on it with the given *sql* and *parameters*. Return the new cursor object. - .. method:: executescript(sql_script, /) + .. method:: executescript(sql_script) Create a new :class:`Cursor` object and call :meth:`~Cursor.executescript` on it with the given *sql_script*. Return the new cursor object. - .. method:: create_function(name, narg, func, \*, deterministic=False) - - Create or remove a user-defined SQL function. - - :param str name: - The name of the SQL function. - - :param int narg: - The number of arguments the SQL function can accept. - If ``-1``, it may take any number of arguments. - - :param func: - A callable that is called when the SQL function is invoked. - The callable must return :ref:`a type natively supported by SQLite - <sqlite3-types>`. - Set to ``None`` to remove an existing SQL function. - :type func: :term:`callback` | None + .. method:: create_function(name, num_params, func, *, deterministic=False) - :param bool deterministic: - If ``True``, the created SQL function is marked as - `deterministic <https://sqlite.org/deterministic.html>`_, - which allows SQLite to perform additional optimizations. + Creates a user-defined function that you can later use from within SQL + statements under the function name *name*. *num_params* is the number of + parameters the function accepts (if *num_params* is -1, the function may + take any number of arguments), and *func* is a Python callable that is + called as the SQL function. If *deterministic* is true, the created function + is marked as `deterministic <https://sqlite.org/deterministic.html>`_, which + allows SQLite to perform additional optimizations. This flag is supported by + SQLite 3.8.3 or higher, :exc:`NotSupportedError` will be raised if used + with older versions. - :raises NotSupportedError: - If *deterministic* is used with SQLite versions older than 3.8.3. + The function can return any of the types supported by SQLite: bytes, str, int, + float and ``None``. - .. versionadded:: 3.8 - The *deterministic* parameter. + .. versionchanged:: 3.8 + The *deterministic* parameter was added. Example: - .. doctest:: + .. literalinclude:: ../includes/sqlite3/md5func.py - >>> import hashlib - >>> def md5sum(t): - ... return hashlib.md5(t).hexdigest() - >>> con = sqlite3.connect(":memory:") - >>> con.create_function("md5", 1, md5sum) - >>> for row in con.execute("SELECT md5(?)", (b"foo",)): - ... print(row) - ('acbd18db4cc2f85cedef654fccc4a4d8',) - - - .. method:: create_aggregate(name, /, n_arg, aggregate_class) - - Create or remove a user-defined SQL aggregate function. - :param str name: - The name of the SQL aggregate function. + .. method:: create_aggregate(name, num_params, aggregate_class) - :param int n_arg: - The number of arguments the SQL aggregate function can accept. - If ``-1``, it may take any number of arguments. + Creates a user-defined aggregate function. - :param aggregate_class: - A class must implement the following methods: + The aggregate class must implement a ``step`` method, which accepts the number + of parameters *num_params* (if *num_params* is -1, the function may take + any number of arguments), and a ``finalize`` method which will return the + final result of the aggregate. - * ``step()``: Add a row to the aggregate. - * ``finalize()``: Return the final result of the aggregate as - :ref:`a type natively supported by SQLite <sqlite3-types>`. - - The number of arguments that the ``step()`` method must accept - is controlled by *n_arg*. - - Set to ``None`` to remove an existing SQL aggregate function. - :type aggregate_class: :term:`class` | None + The ``finalize`` method can return any of the types supported by SQLite: + bytes, str, int, float and ``None``. Example: - .. testcode:: - - class MySum: - def __init__(self): - self.count = 0 - - def step(self, value): - self.count += value - - def finalize(self): - return self.count - - con = sqlite3.connect(":memory:") - con.create_aggregate("mysum", 1, MySum) - cur = con.execute("CREATE TABLE test(i)") - cur.execute("INSERT INTO test(i) VALUES(1)") - cur.execute("INSERT INTO test(i) VALUES(2)") - cur.execute("SELECT mysum(i) FROM test") - print(cur.fetchone()[0]) - - con.close() - - .. testoutput:: - :hide: - - 3 + .. literalinclude:: ../includes/sqlite3/mysumaggr.py .. method:: create_window_function(name, num_params, aggregate_class, /) - Create or remove a user-defined aggregate window function. - - :param str name: - The name of the SQL aggregate window function to create or remove. + Creates user-defined aggregate window function *name*. - :param int num_params: - The number of arguments the SQL aggregate window function can accept. - If ``-1``, it may take any number of arguments. + *aggregate_class* must implement the following methods: - :param aggregate_class: - A class that must implement the following methods: + * ``step``: adds a row to the current window + * ``value``: returns the current value of the aggregate + * ``inverse``: removes a row from the current window + * ``finalize``: returns the final value of the aggregate - * ``step()``: Add a row to the current window. - * ``value()``: Return the current value of the aggregate. - * ``inverse()``: Remove a row from the current window. - * ``finalize()``: Return the final result of the aggregate as - :ref:`a type natively supported by SQLite <sqlite3-types>`. + ``step`` and ``value`` accept *num_params* number of parameters, + unless *num_params* is ``-1``, in which case they may take any number of + arguments. ``finalize`` and ``value`` can return any of the types + supported by SQLite: + :class:`bytes`, :class:`str`, :class:`int`, :class:`float`, and + :const:`None`. Call :meth:`create_window_function` with + *aggregate_class* set to :const:`None` to clear window function *name*. - The number of arguments that the ``step()`` and ``value()`` methods - must accept is controlled by *num_params*. - - Set to ``None`` to remove an existing SQL aggregate window function. - - :raises NotSupportedError: - If used with a version of SQLite older than 3.25.0, - which does not support aggregate window functions. - - :type aggregate_class: :term:`class` | None + Aggregate window functions are supported by SQLite 3.25.0 and higher. + :exc:`NotSupportedError` will be raised if used with older versions. .. versionadded:: 3.11 Example: - .. testcode:: - - # Example taken from https://www.sqlite.org/windowfunctions.html#udfwinfunc - class WindowSumInt: - def __init__(self): - self.count = 0 - - def step(self, value): - """Add a row to the current window.""" - self.count += value - - def value(self): - """Return the current value of the aggregate.""" - return self.count - - def inverse(self, value): - """Remove a row from the current window.""" - self.count -= value - - def finalize(self): - """Return the final value of the aggregate. + .. literalinclude:: ../includes/sqlite3/sumintwindow.py - Any clean-up actions should be placed here. - """ - return self.count - - - con = sqlite3.connect(":memory:") - cur = con.execute("CREATE TABLE test(x, y)") - values = [ - ("a", 4), - ("b", 5), - ("c", 3), - ("d", 8), - ("e", 1), - ] - cur.executemany("INSERT INTO test VALUES(?, ?)", values) - con.create_window_function("sumint", 1, WindowSumInt) - cur.execute(""" - SELECT x, sumint(y) OVER ( - ORDER BY x ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING - ) AS sum_y - FROM test ORDER BY x - """) - print(cur.fetchall()) - - .. testoutput:: - :hide: - - [('a', 9), ('b', 12), ('c', 16), ('d', 12), ('e', 9)] .. method:: create_collation(name, callable) @@ -842,33 +528,9 @@ Connection objects The following example shows a reverse sorting collation: - .. testcode:: - - def collate_reverse(string1, string2): - if string1 == string2: - return 0 - elif string1 < string2: - return 1 - else: - return -1 - - con = sqlite3.connect(":memory:") - con.create_collation("reverse", collate_reverse) - - cur = con.execute("CREATE TABLE test(x)") - cur.executemany("INSERT INTO test(x) VALUES(?)", [("a",), ("b",)]) - cur.execute("SELECT x FROM test ORDER BY x COLLATE reverse") - for row in cur: - print(row) - con.close() - - .. testoutput:: - :hide: - - ('b',) - ('a',) + .. literalinclude:: ../includes/sqlite3/collation_reverse.py - Remove a collation function by setting *callable* to ``None``. + Remove a collation function by setting *callable* to :const:`None`. .. versionchanged:: 3.11 The collation name can contain any Unicode character. Earlier, only @@ -877,65 +539,66 @@ Connection objects .. method:: interrupt() - Call this method from a different thread to abort any queries that might - be executing on the connection. - Aborted queries will raise an exception. + You can call this method from a different thread to abort any queries that might + be executing on the connection. The query will then abort and the caller will + get an exception. .. method:: set_authorizer(authorizer_callback) - Register callable *authorizer_callback* to be invoked for each attempt to + This routine registers a callback. The callback is invoked for each attempt to access a column of a table in the database. The callback should return - one of :const:`SQLITE_OK`, :const:`SQLITE_DENY`, or :const:`SQLITE_IGNORE` - to signal how access to the column should be handled - by the underlying SQLite library. + :const:`SQLITE_OK` if access is allowed, :const:`SQLITE_DENY` if the entire SQL + statement should be aborted with an error and :const:`SQLITE_IGNORE` if the + column should be treated as a NULL value. These constants are available in the + :mod:`sqlite3` module. The first argument to the callback signifies what kind of operation is to be - authorized. The second and third argument will be arguments or ``None`` + authorized. The second and third argument will be arguments or :const:`None` depending on the first argument. The 4th argument is the name of the database ("main", "temp", etc.) if applicable. The 5th argument is the name of the inner-most trigger or view that is responsible for the access attempt or - ``None`` if this access attempt is directly from input SQL code. + :const:`None` if this access attempt is directly from input SQL code. Please consult the SQLite documentation about the possible values for the first argument and the meaning of the second and third argument depending on the first - one. All necessary constants are available in the :mod:`!sqlite3` module. + one. All necessary constants are available in the :mod:`sqlite3` module. - Passing ``None`` as *authorizer_callback* will disable the authorizer. + Passing :const:`None` as *authorizer_callback* will disable the authorizer. .. versionchanged:: 3.11 - Added support for disabling the authorizer using ``None``. + Added support for disabling the authorizer using :const:`None`. - .. method:: set_progress_handler(progress_handler, n) + .. method:: set_progress_handler(handler, n) - Register callable *progress_handler* to be invoked for every *n* + This routine registers a callback. The callback is invoked for every *n* instructions of the SQLite virtual machine. This is useful if you want to get called from SQLite during long-running operations, for example to update a GUI. If you want to clear any previously installed progress handler, call the - method with ``None`` for *progress_handler*. + method with :const:`None` for *handler*. Returning a non-zero value from the handler function will terminate the - currently executing query and cause it to raise a :exc:`DatabaseError` + currently executing query and cause it to raise an :exc:`OperationalError` exception. .. method:: set_trace_callback(trace_callback) - Register callable *trace_callback* to be invoked for each SQL statement - that is actually executed by the SQLite backend. + Registers *trace_callback* to be called for each SQL statement that is + actually executed by the SQLite backend. The only argument passed to the callback is the statement (as :class:`str`) that is being executed. The return value of the callback is ignored. Note that the backend does not only run statements passed to the :meth:`Cursor.execute` methods. Other sources include the :ref:`transaction management <sqlite3-controlling-transactions>` of the - :mod:`!sqlite3` module and the execution of triggers defined in the current + sqlite3 module and the execution of triggers defined in the current database. - Passing ``None`` as *trace_callback* will disable the trace callback. + Passing :const:`None` as *trace_callback* will disable the trace callback. .. note:: Exceptions raised in the trace callback are not propagated. As a @@ -946,242 +609,195 @@ Connection objects .. versionadded:: 3.3 - .. method:: enable_load_extension(enabled, /) + .. method:: enable_load_extension(enabled) - Enable the SQLite engine to load SQLite extensions from shared libraries - if *enabled* is ``True``; - else, disallow loading SQLite extensions. - SQLite extensions can define new functions, + This routine allows/disallows the SQLite engine to load SQLite extensions + from shared libraries. SQLite extensions can define new functions, aggregates or whole new virtual table implementations. One well-known extension is the fulltext-search extension distributed with SQLite. - .. note:: - - The :mod:`!sqlite3` module is not built with loadable extension support by - default, because some platforms (notably macOS) have SQLite - libraries which are compiled without this feature. - To get loadable extension support, - you must pass the :option:`--enable-loadable-sqlite-extensions` option - to :program:`configure`. + Loadable extensions are disabled by default. See [#f1]_. - .. audit-event:: sqlite3.enable_load_extension connection,enabled sqlite3.Connection.enable_load_extension + .. audit-event:: sqlite3.enable_load_extension connection,enabled sqlite3.enable_load_extension .. versionadded:: 3.2 .. versionchanged:: 3.10 Added the ``sqlite3.enable_load_extension`` auditing event. - .. testsetup:: sqlite3.loadext + .. literalinclude:: ../includes/sqlite3/load_extension.py - import sqlite3 - con = sqlite3.connect(":memory:") + .. method:: load_extension(path) + + This routine loads an SQLite extension from a shared library. You have to + enable extension loading with :meth:`enable_load_extension` before you can + use this routine. + + Loadable extensions are disabled by default. See [#f1]_. - .. testcode:: sqlite3.loadext - :skipif: True # not testable at the moment + .. audit-event:: sqlite3.load_extension connection,path sqlite3.load_extension - con.enable_load_extension(True) + .. versionadded:: 3.2 - # Load the fulltext search extension - con.execute("select load_extension('./fts3.so')") + .. versionchanged:: 3.10 + Added the ``sqlite3.load_extension`` auditing event. - # alternatively you can load the extension using an API call: - # con.load_extension("./fts3.so") + .. attribute:: row_factory - # disable extension loading again - con.enable_load_extension(False) + You can change this attribute to a callable that accepts the cursor and the + original row as a tuple and will return the real result row. This way, you can + implement more advanced ways of returning results, such as returning an object + that can also access columns by name. - # example from SQLite wiki - con.execute("CREATE VIRTUAL TABLE recipe USING fts3(name, ingredients)") - con.executescript(""" - INSERT INTO recipe (name, ingredients) VALUES('broccoli stew', 'broccoli peppers cheese tomatoes'); - INSERT INTO recipe (name, ingredients) VALUES('pumpkin stew', 'pumpkin onions garlic celery'); - INSERT INTO recipe (name, ingredients) VALUES('broccoli pie', 'broccoli cheese onions flour'); - INSERT INTO recipe (name, ingredients) VALUES('pumpkin pie', 'pumpkin sugar flour butter'); - """) - for row in con.execute("SELECT rowid, name, ingredients FROM recipe WHERE name MATCH 'pie'"): - print(row) + Example: - con.close() + .. literalinclude:: ../includes/sqlite3/row_factory.py - .. testoutput:: sqlite3.loadext - :hide: + If returning a tuple doesn't suffice and you want name-based access to + columns, you should consider setting :attr:`row_factory` to the + highly-optimized :class:`sqlite3.Row` type. :class:`Row` provides both + index-based and case-insensitive name-based access to columns with almost no + memory overhead. It will probably be better than your own custom + dictionary-based approach or even a db_row based solution. - (2, 'broccoli pie', 'broccoli cheese onions flour') - (3, 'pumpkin pie', 'pumpkin sugar flour butter') + .. XXX what's a db_row-based solution? - .. method:: load_extension(path, /) - Load an SQLite extension from a shared library located at *path*. - Enable extension loading with :meth:`enable_load_extension` before - calling this method. + .. attribute:: text_factory - .. audit-event:: sqlite3.load_extension connection,path sqlite3.Connection.load_extension + Using this attribute you can control what objects are returned for the ``TEXT`` + data type. By default, this attribute is set to :class:`str` and the + :mod:`sqlite3` module will return :class:`str` objects for ``TEXT``. + If you want to return :class:`bytes` instead, you can set it to :class:`bytes`. - .. versionadded:: 3.2 + You can also set it to any other callable that accepts a single bytestring + parameter and returns the resulting object. + + See the following example code for illustration: + + .. literalinclude:: ../includes/sqlite3/text_factory.py + + + .. attribute:: total_changes + + Returns the total number of database rows that have been modified, inserted, or + deleted since the database connection was opened. - .. versionchanged:: 3.10 - Added the ``sqlite3.load_extension`` auditing event. .. method:: iterdump - Return an :term:`iterator` to dump the database as SQL source code. - Useful when saving an in-memory database for later restoration. - Similar to the ``.dump`` command in the :program:`sqlite3` shell. + Returns an iterator to dump the database in an SQL text format. Useful when + saving an in-memory database for later restoration. This function provides + the same capabilities as the :kbd:`.dump` command in the :program:`sqlite3` + shell. - Example: + Example:: - .. testcode:: + # Convert file existing_db.db to SQL dump file dump.sql + import sqlite3 - # Convert file example.db to SQL dump file dump.sql - con = sqlite3.connect('example.db') + con = sqlite3.connect('existing_db.db') with open('dump.sql', 'w') as f: for line in con.iterdump(): f.write('%s\n' % line) con.close() - .. method:: backup(target, \*, pages=-1, progress=None, name="main", sleep=0.250) - - Create a backup of an SQLite database. + .. method:: backup(target, *, pages=-1, progress=None, name="main", sleep=0.250) - Works even if the database is being accessed by other clients - or concurrently by the same connection. + This method makes a backup of an SQLite database even while it's being accessed + by other clients, or concurrently by the same connection. The copy will be + written into the mandatory argument *target*, that must be another + :class:`Connection` instance. - :param Connection target: - The database connection to save the backup to. + By default, or when *pages* is either ``0`` or a negative integer, the entire + database is copied in a single step; otherwise the method performs a loop + copying up to *pages* pages at a time. - :param int pages: - The number of pages to copy at a time. - If equal to or less than ``0``, - the entire database is copied in a single step. - Defaults to ``-1``. + If *progress* is specified, it must either be ``None`` or a callable object that + will be executed at each iteration with three integer arguments, respectively + the *status* of the last iteration, the *remaining* number of pages still to be + copied and the *total* number of pages. - :param progress: - If set to a callable, it is invoked with three integer arguments for - every backup iteration: - the *status* of the last iteration, - the *remaining* number of pages still to be copied, - and the *total* number of pages. - Defaults to ``None``. - :type progress: :term:`callback` | None - - :param str name: - The name of the database to back up. - Either ``"main"`` (the default) for the main database, - ``"temp"`` for the temporary database, - or the name of a custom database as attached using the - ``ATTACH DATABASE`` SQL statement. + The *name* argument specifies the database name that will be copied: it must be + a string containing either ``"main"``, the default, to indicate the main + database, ``"temp"`` to indicate the temporary database or the name specified + after the ``AS`` keyword in an ``ATTACH DATABASE`` statement for an attached + database. - :param float sleep: - The number of seconds to sleep between successive attempts - to back up remaining pages. + The *sleep* argument specifies the number of seconds to sleep by between + successive attempts to backup remaining pages, can be specified either as an + integer or a floating point value. - Example 1, copy an existing database into another: + Example 1, copy an existing database into another:: - .. testcode:: + import sqlite3 def progress(status, remaining, total): print(f'Copied {total-remaining} of {total} pages...') - src = sqlite3.connect('example.db') - dst = sqlite3.connect('backup.db') - with dst: - src.backup(dst, pages=1, progress=progress) - dst.close() - src.close() - - .. testoutput:: - :hide: - - Copied 0 of 0 pages... + con = sqlite3.connect('existing_db.db') + bck = sqlite3.connect('backup.db') + with bck: + con.backup(bck, pages=1, progress=progress) + bck.close() + con.close() - Example 2, copy an existing database into a transient copy: + Example 2, copy an existing database into a transient copy:: - .. testcode:: + import sqlite3 - src = sqlite3.connect('example.db') - dst = sqlite3.connect(':memory:') - src.backup(dst) + source = sqlite3.connect('existing_db.db') + dest = sqlite3.connect(':memory:') + source.backup(dest) .. versionadded:: 3.7 - .. method:: getlimit(category, /) - - Get a connection runtime limit. - - :param int category: - The `SQLite limit category`_ to be queried. - :rtype: int - - :raises ProgrammingError: - If *category* is not recognised by the underlying SQLite library. + .. method:: getlimit(category, /) - Example, query the maximum length of an SQL statement - for :class:`Connection` ``con`` (the default is 1000000000): + Get a connection run-time limit. *category* is the limit category to be + queried. - .. testsetup:: sqlite3.limits + Example, query the maximum length of an SQL statement:: import sqlite3 con = sqlite3.connect(":memory:") - con.setlimit(sqlite3.SQLITE_LIMIT_SQL_LENGTH, 1_000_000_000) - con.setlimit(sqlite3.SQLITE_LIMIT_ATTACHED, 10) - - .. doctest:: sqlite3.limits - - >>> con.getlimit(sqlite3.SQLITE_LIMIT_SQL_LENGTH) - 1000000000 + lim = con.getlimit(sqlite3.SQLITE_LIMIT_SQL_LENGTH) + print(f"SQLITE_LIMIT_SQL_LENGTH={lim}") .. versionadded:: 3.11 .. method:: setlimit(category, limit, /) - Set a connection runtime limit. + Set a connection run-time limit. *category* is the limit category to be + set. *limit* is the new limit. If the new limit is a negative number, the + limit is unchanged. + Attempts to increase a limit above its hard upper bound are silently truncated to the hard upper bound. Regardless of whether or not the limit was changed, the prior value of the limit is returned. - :param int category: - The `SQLite limit category`_ to be set. - - :param int limit: - The value of the new limit. - If negative, the current limit is unchanged. - - :rtype: int - - :raises ProgrammingError: - If *category* is not recognised by the underlying SQLite library. + Example, limit the number of attached databases to 1:: - Example, limit the number of attached databases to 1 - for :class:`Connection` ``con`` (the default limit is 10): - - .. doctest:: sqlite3.limits - - >>> con.setlimit(sqlite3.SQLITE_LIMIT_ATTACHED, 1) - 10 - >>> con.getlimit(sqlite3.SQLITE_LIMIT_ATTACHED) - 1 + import sqlite3 + con = sqlite3.connect(":memory:") + con.setlimit(sqlite3.SQLITE_LIMIT_ATTACHED, 1) .. versionadded:: 3.11 - .. _SQLite limit category: https://www.sqlite.org/c3ref/c_limit_attached.html + .. method:: serialize(*, name="main") - .. method:: serialize(\*, name="main") - - Serialize a database into a :class:`bytes` object. For an + This method serializes a database into a :class:`bytes` object. For an ordinary on-disk database file, the serialization is just a copy of the disk file. For an in-memory database or a "temp" database, the serialization is the same sequence of bytes which would be written to disk if that database were backed up to disk. - :param str name: - The database name to be serialized. - Defaults to ``"main"``. - - :rtype: bytes + *name* is the database to be serialized, and defaults to the main + database. .. note:: @@ -1191,30 +807,16 @@ Connection objects .. versionadded:: 3.11 - .. method:: deserialize(data, /, \*, name="main") + .. method:: deserialize(data, /, *, name="main") - Deserialize a :meth:`serialized <serialize>` database into a - :class:`Connection`. This method causes the database connection to disconnect from database *name*, and reopen *name* as an in-memory database based on the - serialization contained in *data*. - - :param bytes data: - A serialized database. - - :param str name: - The database name to deserialize into. - Defaults to ``"main"``. - - :raises OperationalError: - If the database connection is currently involved in a read - transaction or a backup operation. - - :raises DatabaseError: - If *data* does not contain a valid SQLite database. - - :raises OverflowError: - If :func:`len(data) <len>` is larger than ``2**63 - 1``. + serialization contained in *data*. Deserialization will raise + :exc:`OperationalError` if the database connection is currently involved + in a read transaction or a backup operation. :exc:`DataError` will be + raised if ``len(data)`` is larger than ``2**63 - 1``, and + :exc:`DatabaseError` will be raised if *data* does not contain a valid + SQLite database. .. note:: @@ -1223,137 +825,11 @@ Connection objects .. versionadded:: 3.11 - .. attribute:: in_transaction - - This read-only attribute corresponds to the low-level SQLite - `autocommit mode`_. - - ``True`` if a transaction is active (there are uncommitted changes), - ``False`` otherwise. - - .. versionadded:: 3.2 - - .. attribute:: isolation_level - - This attribute controls the :ref:`transaction handling - <sqlite3-controlling-transactions>` performed by :mod:`!sqlite3`. - If set to ``None``, transactions are never implicitly opened. - If set to one of ``"DEFERRED"``, ``"IMMEDIATE"``, or ``"EXCLUSIVE"``, - corresponding to the underlying `SQLite transaction behaviour`_, - implicit :ref:`transaction management - <sqlite3-controlling-transactions>` is performed. - - If not overridden by the *isolation_level* parameter of :func:`connect`, - the default is ``""``, which is an alias for ``"DEFERRED"``. - - .. attribute:: row_factory - - A callable that accepts two arguments, - a :class:`Cursor` object and the raw row results as a :class:`tuple`, - and returns a custom object representing an SQLite row. - - Example: - - .. doctest:: - - >>> def dict_factory(cursor, row): - ... col_names = [col[0] for col in cursor.description] - ... return {key: value for key, value in zip(col_names, row)} - >>> con = sqlite3.connect(":memory:") - >>> con.row_factory = dict_factory - >>> for row in con.execute("SELECT 1 AS a, 2 AS b"): - ... print(row) - {'a': 1, 'b': 2} - - If returning a tuple doesn't suffice and you want name-based access to - columns, you should consider setting :attr:`row_factory` to the - highly optimized :class:`sqlite3.Row` type. :class:`Row` provides both - index-based and case-insensitive name-based access to columns with almost no - memory overhead. It will probably be better than your own custom - dictionary-based approach or even a db_row based solution. - - .. XXX what's a db_row-based solution? - - .. attribute:: text_factory - - A callable that accepts a :class:`bytes` parameter and returns a text - representation of it. - The callable is invoked for SQLite values with the ``TEXT`` data type. - By default, this attribute is set to :class:`str`. - If you want to return ``bytes`` instead, set *text_factory* to ``bytes``. - - Example: - - .. testcode:: - - con = sqlite3.connect(":memory:") - cur = con.cursor() - - AUSTRIA = "Österreich" - - # by default, rows are returned as str - cur.execute("SELECT ?", (AUSTRIA,)) - row = cur.fetchone() - assert row[0] == AUSTRIA - - # but we can make sqlite3 always return bytestrings ... - con.text_factory = bytes - cur.execute("SELECT ?", (AUSTRIA,)) - row = cur.fetchone() - assert type(row[0]) is bytes - # the bytestrings will be encoded in UTF-8, unless you stored garbage in the - # database ... - assert row[0] == AUSTRIA.encode("utf-8") - - # we can also implement a custom text_factory ... - # here we implement one that appends "foo" to all strings - con.text_factory = lambda x: x.decode("utf-8") + "foo" - cur.execute("SELECT ?", ("bar",)) - row = cur.fetchone() - assert row[0] == "barfoo" - - con.close() - - .. attribute:: total_changes - - Return the total number of database rows that have been modified, inserted, or - deleted since the database connection was opened. - .. _sqlite3-cursor-objects: -Cursor objects -^^^^^^^^^^^^^^ - - A ``Cursor`` object represents a `database cursor`_ - which is used to execute SQL statements, - and manage the context of a fetch operation. - Cursors are created using :meth:`Connection.cursor`, - or by using any of the :ref:`connection shortcut methods - <sqlite3-connection-shortcuts>`. - - Cursor objects are :term:`iterators <iterator>`, - meaning that if you :meth:`~Cursor.execute` a ``SELECT`` query, - you can simply iterate over the cursor to fetch the resulting rows: - - .. testsetup:: sqlite3.cursor - - import sqlite3 - con = sqlite3.connect(":memory:", isolation_level=None) - cur = con.execute("CREATE TABLE data(t)") - cur.execute("INSERT INTO data VALUES(1)") - - .. testcode:: sqlite3.cursor - - for row in cur.execute("SELECT t FROM data"): - print(row) - - .. testoutput:: sqlite3.cursor - :hide: - - (1,) - - .. _database cursor: https://en.wikipedia.org/wiki/Cursor_(databases) +Cursor Objects +-------------- .. class:: Cursor @@ -1362,83 +838,61 @@ Cursor objects .. index:: single: ? (question mark); in SQL statements .. index:: single: : (colon); in SQL statements - .. method:: execute(sql, parameters=(), /) + .. method:: execute(sql[, parameters]) - Execute SQL statement *sql*. - Bind values to the statement using :ref:`placeholders - <sqlite3-placeholders>` that map to the :term:`sequence` or :class:`dict` - *parameters*. + Executes an SQL statement. Values may be bound to the statement using + :ref:`placeholders <sqlite3-placeholders>`. :meth:`execute` will only execute a single SQL statement. If you try to execute - more than one statement with it, it will raise a :exc:`ProgrammingError`. Use + more than one statement with it, it will raise a :exc:`.Warning`. Use :meth:`executescript` if you want to execute multiple SQL statements with one call. - If :attr:`~Connection.isolation_level` is not ``None``, - *sql* is an ``INSERT``, ``UPDATE``, ``DELETE``, or ``REPLACE`` statement, - and there is no open transaction, - a transaction is implicitly opened before executing *sql*. + .. method:: executemany(sql, seq_of_parameters) - .. method:: executemany(sql, parameters, /) - - Execute :ref:`parameterized <sqlite3-placeholders>` SQL statement *sql* + Executes a :ref:`parameterized <sqlite3-placeholders>` SQL command against all parameter sequences or mappings found in the sequence - *parameters*. It is also possible to use an + *seq_of_parameters*. The :mod:`sqlite3` module also allows using an :term:`iterator` yielding parameters instead of a sequence. - Uses the same implicit transaction handling as :meth:`~Cursor.execute`. - Example: + .. literalinclude:: ../includes/sqlite3/executemany_1.py - .. testcode:: sqlite3.cursor + Here's a shorter example using a :term:`generator`: - rows = [ - ("row1",), - ("row2",), - ] - # cur is an sqlite3.Cursor object - cur.executemany("INSERT INTO data VALUES(?)", rows) + .. literalinclude:: ../includes/sqlite3/executemany_2.py - .. method:: executescript(sql_script, /) - Execute the SQL statements in *sql_script*. - If there is a pending transaction, - an implicit ``COMMIT`` statement is executed first. - No other implicit transaction control is performed; - any transaction control must be added to *sql_script*. + .. method:: executescript(sql_script) - *sql_script* must be a :class:`string <str>`. + This is a nonstandard convenience method for executing multiple SQL statements + at once. It issues a ``COMMIT`` statement first, then executes the SQL script it + gets as a parameter. This method disregards :attr:`isolation_level`; any + transaction control must be added to *sql_script*. - Example: + *sql_script* can be an instance of :class:`str`. - .. testcode:: sqlite3.cursor + Example: - # cur is an sqlite3.Cursor object - cur.executescript(""" - BEGIN; - CREATE TABLE person(firstname, lastname, age); - CREATE TABLE book(title, author, published); - CREATE TABLE publisher(name, address); - COMMIT; - """) + .. literalinclude:: ../includes/sqlite3/executescript.py .. method:: fetchone() - Return the next row of a query result set as a :class:`tuple`. - Return ``None`` if no more data is available. + Fetches the next row of a query result set, returning a single sequence, + or :const:`None` when no more data is available. .. method:: fetchmany(size=cursor.arraysize) - Return the next set of rows of a query result as a :class:`list`. - Return an empty list if no more rows are available. + Fetches the next set of rows of a query result, returning a list. An empty + list is returned when no more rows are available. The number of rows to fetch per call is specified by the *size* parameter. - If *size* is not given, :attr:`arraysize` determines the number of rows - to be fetched. - If fewer than *size* rows are available, - as many rows as are available are returned. + If it is not given, the cursor's arraysize determines the number of rows + to be fetched. The method should try to fetch as many rows as indicated by + the size parameter. If this is not possible due to the specified number of + rows not being available, fewer rows may be returned. Note there are performance considerations involved with the *size* parameter. For optimal performance, it is usually best to use the arraysize attribute. @@ -1447,10 +901,9 @@ Cursor objects .. method:: fetchall() - Return all (remaining) rows of a query result as a :class:`list`. - Return an empty list if no rows are available. - Note that the :attr:`arraysize` attribute can affect the performance of - this operation. + Fetches all (remaining) rows of a query result, returning a list. Note that + the cursor's arraysize attribute can affect the performance of this operation. + An empty list is returned when no rows are available. .. method:: close() @@ -1459,49 +912,37 @@ Cursor objects The cursor will be unusable from this point forward; a :exc:`ProgrammingError` exception will be raised if any operation is attempted with the cursor. - .. method:: setinputsizes(sizes, /) + .. method:: setinputsizes(sizes) - Required by the DB-API. Does nothing in :mod:`!sqlite3`. + Required by the DB-API. Does nothing in :mod:`sqlite3`. - .. method:: setoutputsize(size, column=None, /) + .. method:: setoutputsize(size [, column]) - Required by the DB-API. Does nothing in :mod:`!sqlite3`. + Required by the DB-API. Does nothing in :mod:`sqlite3`. - .. attribute:: arraysize - - Read/write attribute that controls the number of rows returned by :meth:`fetchmany`. - The default value is 1 which means a single row would be fetched per call. - - .. attribute:: connection - - Read-only attribute that provides the SQLite database :class:`Connection` - belonging to the cursor. A :class:`Cursor` object created by - calling :meth:`con.cursor() <Connection.cursor>` will have a - :attr:`connection` attribute that refers to *con*: + .. attribute:: rowcount - .. doctest:: + Although the :class:`Cursor` class of the :mod:`sqlite3` module implements this + attribute, the database engine's own support for the determination of "rows + affected"/"rows selected" is quirky. - >>> con = sqlite3.connect(":memory:") - >>> cur = con.cursor() - >>> cur.connection == con - True + For :meth:`executemany` statements, the number of modifications are summed up + into :attr:`rowcount`. - .. attribute:: description - - Read-only attribute that provides the column names of the last query. To - remain compatible with the Python DB API, it returns a 7-tuple for each - column where the last six items of each tuple are ``None``. - - It is set for ``SELECT`` statements without any matching rows as well. + As required by the Python DB API Spec, the :attr:`rowcount` attribute "is -1 in + case no ``executeXX()`` has been performed on the cursor or the rowcount of the + last operation is not determinable by the interface". This includes ``SELECT`` + statements because we cannot determine the number of rows a query produced + until all rows were fetched. .. attribute:: lastrowid - Read-only attribute that provides the row id of the last inserted row. It + This read-only attribute provides the row id of the last inserted row. It is only updated after successful ``INSERT`` or ``REPLACE`` statements using the :meth:`execute` method. For other statements, after :meth:`executemany` or :meth:`executescript`, or if the insertion failed, the value of ``lastrowid`` is left unchanged. The initial value of - ``lastrowid`` is ``None``. + ``lastrowid`` is :const:`None`. .. note:: Inserts into ``WITHOUT ROWID`` tables are not recorded. @@ -1509,63 +950,99 @@ Cursor objects .. versionchanged:: 3.6 Added support for the ``REPLACE`` statement. - .. attribute:: rowcount + .. attribute:: arraysize + + Read/write attribute that controls the number of rows returned by :meth:`fetchmany`. + The default value is 1 which means a single row would be fetched per call. + + .. attribute:: description - Read-only attribute that provides the number of modified rows for - ``INSERT``, ``UPDATE``, ``DELETE``, and ``REPLACE`` statements; - is ``-1`` for other statements, - including :abbr:`CTE (Common Table Expression)` queries. - It is only updated by the :meth:`execute` and :meth:`executemany` methods. + This read-only attribute provides the column names of the last query. To + remain compatible with the Python DB API, it returns a 7-tuple for each + column where the last six items of each tuple are :const:`None`. + It is set for ``SELECT`` statements without any matching rows as well. -.. The sqlite3.Row example used to be a how-to. It has now been incorporated - into the Row reference. We keep the anchor here in order not to break - existing links. + .. attribute:: connection + + This read-only attribute provides the SQLite database :class:`Connection` + used by the :class:`Cursor` object. A :class:`Cursor` object created by + calling :meth:`con.cursor() <Connection.cursor>` will have a + :attr:`connection` attribute that refers to *con*:: + + >>> con = sqlite3.connect(":memory:") + >>> cur = con.cursor() + >>> cur.connection == con + True -.. _sqlite3-columns-by-name: .. _sqlite3-row-objects: -Row objects -^^^^^^^^^^^ +Row Objects +----------- .. class:: Row - A :class:`!Row` instance serves as a highly optimized + A :class:`Row` instance serves as a highly optimized :attr:`~Connection.row_factory` for :class:`Connection` objects. - It supports iteration, equality testing, :func:`len`, - and :term:`mapping` access by column name and index. + It tries to mimic a tuple in most of its features. - Two row objects compare equal if have equal columns and equal members. + It supports mapping access by column name and index, iteration, + representation, equality testing and :func:`len`. + + If two :class:`Row` objects have exactly the same columns and their + members are equal, they compare equal. .. method:: keys - Return a :class:`list` of column names as :class:`strings <str>`. - Immediately after a query, + This method returns a list of column names. Immediately after a query, it is the first member of each tuple in :attr:`Cursor.description`. .. versionchanged:: 3.5 Added support of slicing. - Example: - - .. doctest:: +Let's assume we initialize a table as in the example given above:: - >>> con = sqlite3.connect(":memory:") - >>> con.row_factory = sqlite3.Row - >>> res = con.execute("SELECT 'Earth' AS name, 6378 AS radius") - >>> row = res.fetchone() - >>> row.keys() - ['name', 'radius'] - >>> row[0], row["name"] # Access by index and name. - ('Earth', 'Earth') - >>> row["RADIUS"] # Column names are case-insensitive. - 6378 - - -.. _sqlite3-blob-objects: + con = sqlite3.connect(":memory:") + cur = con.cursor() + cur.execute('''create table stocks + (date text, trans text, symbol text, + qty real, price real)''') + cur.execute("""insert into stocks + values ('2006-01-05','BUY','RHAT',100,35.14)""") + con.commit() + cur.close() -Blob objects -^^^^^^^^^^^^ +Now we plug :class:`Row` in:: + + >>> con.row_factory = sqlite3.Row + >>> cur = con.cursor() + >>> cur.execute('select * from stocks') + <sqlite3.Cursor object at 0x7f4e7dd8fa80> + >>> r = cur.fetchone() + >>> type(r) + <class 'sqlite3.Row'> + >>> tuple(r) + ('2006-01-05', 'BUY', 'RHAT', 100.0, 35.14) + >>> len(r) + 5 + >>> r[2] + 'RHAT' + >>> r.keys() + ['date', 'trans', 'symbol', 'qty', 'price'] + >>> r['qty'] + 100.0 + >>> for member in r: + ... print(member) + ... + 2006-01-05 + BUY + RHAT + 100.0 + 35.14 + + +Blob Objects +------------ .. versionadded:: 3.11 @@ -1579,30 +1056,7 @@ Blob objects Use the :class:`Blob` as a :term:`context manager` to ensure that the blob handle is closed after use. - .. testcode:: - - con = sqlite3.connect(":memory:") - con.execute("CREATE TABLE test(blob_col blob)") - con.execute("INSERT INTO test(blob_col) VALUES(zeroblob(13))") - - # Write to our blob, using two write operations: - with con.blobopen("test", "blob_col", 1) as blob: - blob.write(b"hello, ") - blob.write(b"world.") - # Modify the first and last bytes of our blob - blob[0] = ord("H") - blob[-1] = ord("!") - - # Read the contents of our blob - with con.blobopen("test", "blob_col", 1) as blob: - greeting = blob.read() - - print(greeting) # outputs "b'Hello, world!'" - - .. testoutput:: - :hide: - - b'Hello, world!' + .. literalinclude:: ../includes/sqlite3/blob.py .. method:: close() @@ -1639,38 +1093,19 @@ Blob objects end). -PrepareProtocol objects -^^^^^^^^^^^^^^^^^^^^^^^ - -.. class:: PrepareProtocol - - The PrepareProtocol type's single purpose is to act as a :pep:`246` style - adaption protocol for objects that can :ref:`adapt themselves - <sqlite3-conform>` to :ref:`native SQLite types <sqlite3-types>`. - - .. _sqlite3-exceptions: Exceptions -^^^^^^^^^^ - -The exception hierarchy is defined by the DB-API 2.0 (:pep:`249`). +---------- .. exception:: Warning - This exception is not currently raised by the :mod:`!sqlite3` module, - but may be raised by applications using :mod:`!sqlite3`, - for example if a user-defined function truncates data while inserting. - ``Warning`` is a subclass of :exc:`Exception`. + A subclass of :exc:`Exception`. .. exception:: Error - The base class of the other exceptions in this module. - Use this to catch all errors with one single :keyword:`except` statement. - ``Error`` is a subclass of :exc:`Exception`. - - If the exception originated from within the SQLite library, - the following two attributes are added to the exception: + The base class of the other exceptions in this module. It is a subclass + of :exc:`Exception`. .. attribute:: sqlite_errorcode @@ -1686,66 +1121,46 @@ The exception hierarchy is defined by the DB-API 2.0 (:pep:`249`). .. versionadded:: 3.11 -.. exception:: InterfaceError - - Exception raised for misuse of the low-level SQLite C API. - In other words, if this exception is raised, it probably indicates a bug in the - :mod:`!sqlite3` module. - ``InterfaceError`` is a subclass of :exc:`Error`. - .. exception:: DatabaseError Exception raised for errors that are related to the database. - This serves as the base exception for several types of database errors. - It is only raised implicitly through the specialised subclasses. - ``DatabaseError`` is a subclass of :exc:`Error`. - -.. exception:: DataError - - Exception raised for errors caused by problems with the processed data, - like numeric values out of range, and strings which are too long. - ``DataError`` is a subclass of :exc:`DatabaseError`. - -.. exception:: OperationalError - - Exception raised for errors that are related to the database's operation, - and not necessarily under the control of the programmer. - For example, the database path is not found, - or a transaction could not be processed. - ``OperationalError`` is a subclass of :exc:`DatabaseError`. .. exception:: IntegrityError Exception raised when the relational integrity of the database is affected, e.g. a foreign key check fails. It is a subclass of :exc:`DatabaseError`. -.. exception:: InternalError +.. exception:: ProgrammingError - Exception raised when SQLite encounters an internal error. - If this is raised, it may indicate that there is a problem with the runtime - SQLite library. - ``InternalError`` is a subclass of :exc:`DatabaseError`. + Exception raised for programming errors, e.g. table not found or already + exists, syntax error in the SQL statement, wrong number of parameters + specified, etc. It is a subclass of :exc:`DatabaseError`. -.. exception:: ProgrammingError +.. exception:: OperationalError - Exception raised for :mod:`!sqlite3` API programming errors, - for example supplying the wrong number of bindings to a query, - or trying to operate on a closed :class:`Connection`. - ``ProgrammingError`` is a subclass of :exc:`DatabaseError`. + Exception raised for errors that are related to the database's operation + and not necessarily under the control of the programmer, e.g. an unexpected + disconnect occurs, the data source name is not found, a transaction could + not be processed, etc. It is a subclass of :exc:`DatabaseError`. .. exception:: NotSupportedError - Exception raised in case a method or database API is not supported by the - underlying SQLite library. For example, setting *deterministic* to - ``True`` in :meth:`~Connection.create_function`, if the underlying SQLite library - does not support deterministic functions. - ``NotSupportedError`` is a subclass of :exc:`DatabaseError`. + Exception raised in case a method or database API was used which is not + supported by the database, e.g. calling the :meth:`~Connection.rollback` + method on a connection that does not support transaction or has + transactions turned off. It is a subclass of :exc:`DatabaseError`. +.. _sqlite3-blob-objects: + .. _sqlite3-types: SQLite and Python types -^^^^^^^^^^^^^^^^^^^^^^^ +----------------------- + + +Introduction +^^^^^^^^^^^^ SQLite natively supports the following types: ``NULL``, ``INTEGER``, ``REAL``, ``TEXT``, ``BLOB``. @@ -1755,7 +1170,7 @@ The following Python types can thus be sent to SQLite without any problem: +-------------------------------+-------------+ | Python type | SQLite type | +===============================+=============+ -| ``None`` | ``NULL`` | +| :const:`None` | ``NULL`` | +-------------------------------+-------------+ | :class:`int` | ``INTEGER`` | +-------------------------------+-------------+ @@ -1772,7 +1187,7 @@ This is how SQLite types are converted to Python types by default: +-------------+----------------------------------------------+ | SQLite type | Python type | +=============+==============================================+ -| ``NULL`` | ``None`` | +| ``NULL`` | :const:`None` | +-------------+----------------------------------------------+ | ``INTEGER`` | :class:`int` | +-------------+----------------------------------------------+ @@ -1784,523 +1199,211 @@ This is how SQLite types are converted to Python types by default: | ``BLOB`` | :class:`bytes` | +-------------+----------------------------------------------+ -The type system of the :mod:`!sqlite3` module is extensible in two ways: you can -store additional Python types in an SQLite database via -:ref:`object adapters <sqlite3-adapters>`, -and you can let the :mod:`!sqlite3` module convert SQLite types to -Python types via :ref:`converters <sqlite3-converters>`. - - -.. _sqlite3-default-converters: - -Default adapters and converters (deprecated) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +The type system of the :mod:`sqlite3` module is extensible in two ways: you can +store additional Python types in an SQLite database via object adaptation, and +you can let the :mod:`sqlite3` module convert SQLite types to different Python +types via converters. -.. note:: - - The default adapters and converters are deprecated as of Python 3.12. - Instead, use the :ref:`sqlite3-adapter-converter-recipes` - and tailor them to your needs. - -The deprecated default adapters and converters consist of: - -* An adapter for :class:`datetime.date` objects to :class:`strings <str>` in - `ISO 8601`_ format. -* An adapter for :class:`datetime.datetime` objects to strings in - ISO 8601 format. -* A converter for :ref:`declared <sqlite3-converters>` "date" types to - :class:`datetime.date` objects. -* A converter for declared "timestamp" types to - :class:`datetime.datetime` objects. - Fractional parts will be truncated to 6 digits (microsecond precision). - -.. note:: - - The default "timestamp" converter ignores UTC offsets in the database and - always returns a naive :class:`datetime.datetime` object. To preserve UTC - offsets in timestamps, either leave converters disabled, or register an - offset-aware converter with :func:`register_converter`. - -.. deprecated:: 3.12 - -.. _ISO 8601: https://en.wikipedia.org/wiki/ISO_8601 - - -.. _sqlite3-cli: - -Command-line interface -^^^^^^^^^^^^^^^^^^^^^^ - -The :mod:`!sqlite3` module can be invoked as a script -in order to provide a simple SQLite shell. -Type ``.quit`` or CTRL-D to exit the shell. -.. program:: python -m sqlite3 [-h] [-v] [filename] [sql] +Using adapters to store additional Python types in SQLite databases +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. option:: -h, --help +As described before, SQLite supports only a limited set of types natively. To +use other Python types with SQLite, you must **adapt** them to one of the +sqlite3 module's supported types for SQLite: one of NoneType, int, float, +str, bytes. - Print CLI help. +There are two ways to enable the :mod:`sqlite3` module to adapt a custom Python +type to one of the supported ones. -.. option:: -v, --version - Print underlying SQLite library version. +Letting your object adapt itself +"""""""""""""""""""""""""""""""" -.. versionadded:: 3.12 - - -.. _sqlite3-howtos: - -How-to guides -------------- - -.. _sqlite3-placeholders: - -How to use placeholders to bind values in SQL queries -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -SQL operations usually need to use values from Python variables. However, -beware of using Python's string operations to assemble queries, as they -are vulnerable to `SQL injection attacks`_ (see the `xkcd webcomic -<https://xkcd.com/327/>`_ for a humorous example of what can go wrong):: - - # Never do this -- insecure! - symbol = 'RHAT' - cur.execute("SELECT * FROM stocks WHERE symbol = '%s'" % symbol) - -Instead, use the DB-API's parameter substitution. To insert a variable into a -query string, use a placeholder in the string, and substitute the actual values -into the query by providing them as a :class:`tuple` of values to the second -argument of the cursor's :meth:`~Cursor.execute` method. An SQL statement may -use one of two kinds of placeholders: question marks (qmark style) or named -placeholders (named style). For the qmark style, ``parameters`` must be a -:term:`sequence <sequence>`. For the named style, it can be either a -:term:`sequence <sequence>` or :class:`dict` instance. The length of the -:term:`sequence <sequence>` must match the number of placeholders, or a -:exc:`ProgrammingError` is raised. If a :class:`dict` is given, it must contain -keys for all named parameters. Any extra items are ignored. Here's an example of -both styles: - -.. testcode:: - - con = sqlite3.connect(":memory:") - cur = con.execute("CREATE TABLE lang(name, first_appeared)") - - # This is the qmark style: - cur.execute("INSERT INTO lang VALUES(?, ?)", ("C", 1972)) - - # The qmark style used with executemany(): - lang_list = [ - ("Fortran", 1957), - ("Python", 1991), - ("Go", 2009), - ] - cur.executemany("INSERT INTO lang VALUES(?, ?)", lang_list) - - # And this is the named style: - cur.execute("SELECT * FROM lang WHERE first_appeared = :year", {"year": 1972}) - print(cur.fetchall()) - -.. testoutput:: - :hide: - - [('C', 1972)] - - -.. _sqlite3-adapters: - -How to adapt custom Python types to SQLite values -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -SQLite supports only a limited set of data types natively. -To store custom Python types in SQLite databases, *adapt* them to one of the -:ref:`Python types SQLite natively understands <sqlite3-types>`. - -There are two ways to adapt Python objects to SQLite types: -letting your object adapt itself, or using an *adapter callable*. -The latter will take precedence above the former. -For a library that exports a custom type, -it may make sense to enable that type to adapt itself. -As an application developer, it may make more sense to take direct control by -registering custom adapter functions. - - -.. _sqlite3-conform: - -How to write adaptable objects -"""""""""""""""""""""""""""""" - -Suppose we have a :class:`!Point` class that represents a pair of coordinates, -``x`` and ``y``, in a Cartesian coordinate system. -The coordinate pair will be stored as a text string in the database, -using a semicolon to separate the coordinates. -This can be implemented by adding a ``__conform__(self, protocol)`` -method which returns the adapted value. -The object passed to *protocol* will be of type :class:`PrepareProtocol`. - -.. testcode:: +This is a good approach if you write the class yourself. Let's suppose you have +a class like this:: class Point: def __init__(self, x, y): self.x, self.y = x, y - def __conform__(self, protocol): - if protocol is sqlite3.PrepareProtocol: - return f"{self.x};{self.y}" +Now you want to store the point in a single SQLite column. First you'll have to +choose one of the supported types to be used for representing the point. +Let's just use str and separate the coordinates using a semicolon. Then you need +to give your class a method ``__conform__(self, protocol)`` which must return +the converted value. The parameter *protocol* will be :class:`PrepareProtocol`. - con = sqlite3.connect(":memory:") - cur = con.cursor() +.. literalinclude:: ../includes/sqlite3/adapter_point_1.py - cur.execute("SELECT ?", (Point(4.0, -3.2),)) - print(cur.fetchone()[0]) -.. testoutput:: - :hide: +Registering an adapter callable +""""""""""""""""""""""""""""""" - 4.0;-3.2 +The other possibility is to create a function that converts the type to the +string representation and register the function with :meth:`register_adapter`. +.. literalinclude:: ../includes/sqlite3/adapter_point_2.py -How to register adapter callables -""""""""""""""""""""""""""""""""" +The :mod:`sqlite3` module has two default adapters for Python's built-in +:class:`datetime.date` and :class:`datetime.datetime` types. Now let's suppose +we want to store :class:`datetime.datetime` objects not in ISO representation, +but as a Unix timestamp. -The other possibility is to create a function that converts the Python object -to an SQLite-compatible type. -This function can then be registered using :func:`register_adapter`. +.. literalinclude:: ../includes/sqlite3/adapter_datetime.py -.. testcode:: - class Point: - def __init__(self, x, y): - self.x, self.y = x, y +Converting SQLite values to custom Python types +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - def adapt_point(point): - return f"{point.x};{point.y}" +Writing an adapter lets you send custom Python types to SQLite. But to make it +really useful we need to make the Python to SQLite to Python roundtrip work. - sqlite3.register_adapter(Point, adapt_point) +Enter converters. - con = sqlite3.connect(":memory:") - cur = con.cursor() - - cur.execute("SELECT ?", (Point(1.0, 2.5),)) - print(cur.fetchone()[0]) - -.. testoutput:: - :hide: - - 1.0;2.5 - - -.. _sqlite3-converters: - -How to convert SQLite values to custom Python types -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Writing an adapter lets you convert *from* custom Python types *to* SQLite -values. -To be able to convert *from* SQLite values *to* custom Python types, -we use *converters*. - -Let's go back to the :class:`!Point` class. We stored the x and y coordinates +Let's go back to the :class:`Point` class. We stored the x and y coordinates separated via semicolons as strings in SQLite. First, we'll define a converter function that accepts the string as a parameter -and constructs a :class:`!Point` object from it. +and constructs a :class:`Point` object from it. .. note:: - Converter functions are **always** passed a :class:`bytes` object, - no matter the underlying SQLite data type. + Converter functions **always** get called with a :class:`bytes` object, no + matter under which data type you sent the value to SQLite. -.. testcode:: +:: def convert_point(s): x, y = map(float, s.split(b";")) return Point(x, y) -We now need to tell :mod:`!sqlite3` when it should convert a given SQLite value. -This is done when connecting to a database, using the *detect_types* parameter -of :func:`connect`. There are three options: +Now you need to make the :mod:`sqlite3` module know that what you select from +the database is actually a point. There are two ways of doing this: -* Implicit: set *detect_types* to :const:`PARSE_DECLTYPES` -* Explicit: set *detect_types* to :const:`PARSE_COLNAMES` -* Both: set *detect_types* to - ``sqlite3.PARSE_DECLTYPES | sqlite3.PARSE_COLNAMES``. - Column names take precedence over declared types. +* Implicitly via the declared type -The following example illustrates the implicit and explicit approaches: +* Explicitly via the column name -.. testcode:: +Both ways are described in section :ref:`sqlite3-module-contents`, in the entries +for the constants :const:`PARSE_DECLTYPES` and :const:`PARSE_COLNAMES`. - class Point: - def __init__(self, x, y): - self.x, self.y = x, y - - def __repr__(self): - return f"Point({self.x}, {self.y})" - - def adapt_point(point): - return f"{point.x};{point.y}".encode("utf-8") - - def convert_point(s): - x, y = list(map(float, s.split(b";"))) - return Point(x, y) +The following example illustrates both approaches. - # Register the adapter and converter - sqlite3.register_adapter(Point, adapt_point) - sqlite3.register_converter("point", convert_point) +.. literalinclude:: ../includes/sqlite3/converter_point.py - # 1) Parse using declared types - p = Point(4.0, -3.2) - con = sqlite3.connect(":memory:", detect_types=sqlite3.PARSE_DECLTYPES) - cur = con.execute("CREATE TABLE test(p point)") - cur.execute("INSERT INTO test(p) VALUES(?)", (p,)) - cur.execute("SELECT p FROM test") - print("with declared types:", cur.fetchone()[0]) - cur.close() - con.close() +Default adapters and converters +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - # 2) Parse using column names - con = sqlite3.connect(":memory:", detect_types=sqlite3.PARSE_COLNAMES) - cur = con.execute("CREATE TABLE test(p)") +There are default adapters for the date and datetime types in the datetime +module. They will be sent as ISO dates/ISO timestamps to SQLite. - cur.execute("INSERT INTO test(p) VALUES(?)", (p,)) - cur.execute('SELECT p AS "p [point]" FROM test') - print("with column names:", cur.fetchone()[0]) +The default converters are registered under the name "date" for +:class:`datetime.date` and under the name "timestamp" for +:class:`datetime.datetime`. -.. testoutput:: - :hide: +This way, you can use date/timestamps from Python without any additional +fiddling in most cases. The format of the adapters is also compatible with the +experimental SQLite date/time functions. - with declared types: Point(4.0, -3.2) - with column names: Point(4.0, -3.2) +The following example demonstrates this. +.. literalinclude:: ../includes/sqlite3/pysqlite_datetime.py -.. _sqlite3-adapter-converter-recipes: +If a timestamp stored in SQLite has a fractional part longer than 6 +numbers, its value will be truncated to microsecond precision by the +timestamp converter. -Adapter and converter recipes -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. note:: -This section shows recipes for common adapters and converters. + The default "timestamp" converter ignores UTC offsets in the database and + always returns a naive :class:`datetime.datetime` object. To preserve UTC + offsets in timestamps, either leave converters disabled, or register an + offset-aware converter with :func:`register_converter`. -.. testcode:: +.. _sqlite3-controlling-transactions: - import datetime - import sqlite3 +Controlling Transactions +------------------------ - def adapt_date_iso(val): - """Adapt datetime.date to ISO 8601 date.""" - return val.isoformat() +The underlying ``sqlite3`` library operates in ``autocommit`` mode by default, +but the Python :mod:`sqlite3` module by default does not. - def adapt_datetime_iso(val): - """Adapt datetime.datetime to timezone-naive ISO 8601 date.""" - return val.isoformat() +``autocommit`` mode means that statements that modify the database take effect +immediately. A ``BEGIN`` or ``SAVEPOINT`` statement disables ``autocommit`` +mode, and a ``COMMIT``, a ``ROLLBACK``, or a ``RELEASE`` that ends the +outermost transaction, turns ``autocommit`` mode back on. - def adapt_datetime_epoch(val): - """Adapt datetime.datetime to Unix timestamp.""" - return int(val.timestamp()) +The Python :mod:`sqlite3` module by default issues a ``BEGIN`` statement +implicitly before a Data Modification Language (DML) statement (i.e. +``INSERT``/``UPDATE``/``DELETE``/``REPLACE``). - sqlite3.register_adapter(datetime.date, adapt_date_iso) - sqlite3.register_adapter(datetime.datetime, adapt_datetime_iso) - sqlite3.register_adapter(datetime.datetime, adapt_datetime_epoch) +You can control which kind of ``BEGIN`` statements :mod:`sqlite3` implicitly +executes via the *isolation_level* parameter to the :func:`connect` +call, or via the :attr:`isolation_level` property of connections. +If you specify no *isolation_level*, a plain ``BEGIN`` is used, which is +equivalent to specifying ``DEFERRED``. Other possible values are ``IMMEDIATE`` +and ``EXCLUSIVE``. - def convert_date(val): - """Convert ISO 8601 date to datetime.date object.""" - return datetime.date.fromisoformat(val) +You can disable the :mod:`sqlite3` module's implicit transaction management by +setting :attr:`isolation_level` to ``None``. This will leave the underlying +``sqlite3`` library operating in ``autocommit`` mode. You can then completely +control the transaction state by explicitly issuing ``BEGIN``, ``ROLLBACK``, +``SAVEPOINT``, and ``RELEASE`` statements in your code. - def convert_datetime(val): - """Convert ISO 8601 datetime to datetime.datetime object.""" - return datetime.datetime.fromisoformat(val) +Note that :meth:`~Cursor.executescript` disregards +:attr:`isolation_level`; any transaction control must be added explicitly. - def convert_timestamp(val): - """Convert Unix epoch timestamp to datetime.datetime object.""" - return datetime.datetime.fromtimestamp(val) +.. versionchanged:: 3.6 + :mod:`sqlite3` used to implicitly commit an open transaction before DDL + statements. This is no longer the case. - sqlite3.register_converter("date", convert_date) - sqlite3.register_converter("datetime", convert_datetime) - sqlite3.register_converter("timestamp", convert_timestamp) +Using :mod:`sqlite3` efficiently +-------------------------------- -.. _sqlite3-connection-shortcuts: -How to use connection shortcut methods -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Using shortcut methods +^^^^^^^^^^^^^^^^^^^^^^ -Using the :meth:`~Connection.execute`, -:meth:`~Connection.executemany`, and :meth:`~Connection.executescript` -methods of the :class:`Connection` class, your code can +Using the nonstandard :meth:`execute`, :meth:`executemany` and +:meth:`executescript` methods of the :class:`Connection` object, your code can be written more concisely because you don't have to create the (often superfluous) :class:`Cursor` objects explicitly. Instead, the :class:`Cursor` objects are created implicitly and these shortcut methods return the cursor objects. This way, you can execute a ``SELECT`` statement and iterate over it directly using only a single call on the :class:`Connection` object. -.. testcode:: - - # Create and fill the table. - con = sqlite3.connect(":memory:") - con.execute("CREATE TABLE lang(name, first_appeared)") - data = [ - ("C++", 1985), - ("Objective-C", 1984), - ] - con.executemany("INSERT INTO lang(name, first_appeared) VALUES(?, ?)", data) - - # Print the table contents - for row in con.execute("SELECT name, first_appeared FROM lang"): - print(row) +.. literalinclude:: ../includes/sqlite3/shortcut_methods.py - print("I just deleted", con.execute("DELETE FROM lang").rowcount, "rows") - # close() is not a shortcut method and it's not called automatically; - # the connection object should be closed manually - con.close() +Accessing columns by name instead of by index +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. testoutput:: - :hide: +One useful feature of the :mod:`sqlite3` module is the built-in +:class:`sqlite3.Row` class designed to be used as a row factory. - ('C++', 1985) - ('Objective-C', 1984) - I just deleted 2 rows +Rows wrapped with this class can be accessed both by index (like tuples) and +case-insensitively by name: +.. literalinclude:: ../includes/sqlite3/rowclass.py -.. _sqlite3-connection-context-manager: -How to use the connection context manager +Using the connection as a context manager ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -A :class:`Connection` object can be used as a context manager that -automatically commits or rolls back open transactions when leaving the body of -the context manager. -If the body of the :keyword:`with` statement finishes without exceptions, -the transaction is committed. -If this commit fails, -or if the body of the ``with`` statement raises an uncaught exception, -the transaction is rolled back. - -If there is no open transaction upon leaving the body of the ``with`` statement, -the context manager is a no-op. +Connection objects can be used as context managers +that automatically commit or rollback transactions. In the event of an +exception, the transaction is rolled back; otherwise, the transaction is +committed: -.. note:: - - The context manager neither implicitly opens a new transaction - nor closes the connection. - -.. testcode:: - - con = sqlite3.connect(":memory:") - con.execute("CREATE TABLE lang(id INTEGER PRIMARY KEY, name VARCHAR UNIQUE)") - - # Successful, con.commit() is called automatically afterwards - with con: - con.execute("INSERT INTO lang(name) VALUES(?)", ("Python",)) - - # con.rollback() is called after the with block finishes with an exception, - # the exception is still raised and must be caught - try: - with con: - con.execute("INSERT INTO lang(name) VALUES(?)", ("Python",)) - except sqlite3.IntegrityError: - print("couldn't add Python twice") - - # Connection object used as context manager only commits or rollbacks transactions, - # so the connection object should be closed manually - con.close() - -.. testoutput:: - :hide: - - couldn't add Python twice - - -.. _sqlite3-uri-tricks: - -How to work with SQLite URIs -^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Some useful URI tricks include: - -* Open a database in read-only mode: - -.. doctest:: - - >>> con = sqlite3.connect("file:tutorial.db?mode=ro", uri=True) - >>> con.execute("CREATE TABLE readonly(data)") - Traceback (most recent call last): - OperationalError: attempt to write a readonly database - -* Do not implicitly create a new database file if it does not already exist; - will raise :exc:`~sqlite3.OperationalError` if unable to create a new file: - -.. doctest:: +.. literalinclude:: ../includes/sqlite3/ctx_manager.py - >>> con = sqlite3.connect("file:nosuchdb.db?mode=rw", uri=True) - Traceback (most recent call last): - OperationalError: unable to open database file - - -* Create a shared named in-memory database: - -.. testcode:: - - db = "file:mem1?mode=memory&cache=shared" - con1 = sqlite3.connect(db, uri=True) - con2 = sqlite3.connect(db, uri=True) - with con1: - con1.execute("CREATE TABLE shared(data)") - con1.execute("INSERT INTO shared VALUES(28)") - res = con2.execute("SELECT data FROM shared") - assert res.fetchone() == (28,) - - -More information about this feature, including a list of parameters, -can be found in the `SQLite URI documentation`_. - -.. _SQLite URI documentation: https://www.sqlite.org/uri.html - - -.. _sqlite3-explanation: - -Explanation ------------ - -.. _sqlite3-controlling-transactions: - -Transaction control -^^^^^^^^^^^^^^^^^^^ - -The :mod:`!sqlite3` module does not adhere to the transaction handling recommended -by :pep:`249`. - -If the connection attribute :attr:`~Connection.isolation_level` -is not ``None``, -new transactions are implicitly opened before -:meth:`~Cursor.execute` and :meth:`~Cursor.executemany` executes -``INSERT``, ``UPDATE``, ``DELETE``, or ``REPLACE`` statements; -for other statements, no implicit transaction handling is performed. -Use the :meth:`~Connection.commit` and :meth:`~Connection.rollback` methods -to respectively commit and roll back pending transactions. -You can choose the underlying `SQLite transaction behaviour`_ — -that is, whether and what type of ``BEGIN`` statements :mod:`!sqlite3` -implicitly executes – -via the :attr:`~Connection.isolation_level` attribute. - -If :attr:`~Connection.isolation_level` is set to ``None``, -no transactions are implicitly opened at all. -This leaves the underlying SQLite library in `autocommit mode`_, -but also allows the user to perform their own transaction handling -using explicit SQL statements. -The underlying SQLite library autocommit mode can be queried using the -:attr:`~Connection.in_transaction` attribute. - -The :meth:`~Cursor.executescript` method implicitly commits -any pending transaction before execution of the given SQL script, -regardless of the value of :attr:`~Connection.isolation_level`. - -.. versionchanged:: 3.6 - :mod:`!sqlite3` used to implicitly commit an open transaction before DDL - statements. This is no longer the case. -.. _autocommit mode: - https://www.sqlite.org/lang_transaction.html#implicit_versus_explicit_transactions +.. rubric:: Footnotes -.. _SQLite transaction behaviour: - https://www.sqlite.org/lang_transaction.html#deferred_immediate_and_exclusive_transactions +.. [#f1] The sqlite3 module is not built with loadable extension support by + default, because some platforms (notably macOS) have SQLite + libraries which are compiled without this feature. To get loadable + extension support, you must pass the + :option:`--enable-loadable-sqlite-extensions` option to configure. diff --git a/Doc/library/ssl.rst b/Doc/library/ssl.rst index f5d5a7c4d28205..c7ca4395ed96c9 100644 --- a/Doc/library/ssl.rst +++ b/Doc/library/ssl.rst @@ -33,7 +33,6 @@ probably additional platforms, as long as OpenSSL is installed on that platform. may lead to a false sense of security, as the default settings of the ssl module are not necessarily appropriate for your application. -.. include:: ../includes/wasm-notavail.rst This section documents the objects and functions in the ``ssl`` module; for more general information about TLS, SSL, and certificates, the reader is referred to @@ -312,6 +311,27 @@ Random generation .. versionadded:: 3.3 +.. function:: RAND_pseudo_bytes(num) + + Return (bytes, is_cryptographic): bytes are *num* pseudo-random bytes, + is_cryptographic is ``True`` if the bytes generated are cryptographically + strong. Raises an :class:`SSLError` if the operation is not supported by the + current RAND method. + + Generated pseudo-random byte sequences will be unique if they are of + sufficient length, but are not necessarily unpredictable. They can be used + for non-cryptographic purposes and for certain purposes in cryptographic + protocols, but usually not for key generation etc. + + For almost all applications :func:`os.urandom` is preferable. + + .. versionadded:: 3.3 + + .. deprecated:: 3.6 + + OpenSSL has deprecated :func:`ssl.RAND_pseudo_bytes`, use + :func:`ssl.RAND_bytes` instead. + .. function:: RAND_status() Return ``True`` if the SSL pseudo-random number generator has been seeded @@ -336,6 +356,49 @@ Certificate handling import ssl +.. function:: match_hostname(cert, hostname) + + Verify that *cert* (in decoded format as returned by + :meth:`SSLSocket.getpeercert`) matches the given *hostname*. The rules + applied are those for checking the identity of HTTPS servers as outlined + in :rfc:`2818`, :rfc:`5280` and :rfc:`6125`. In addition to HTTPS, this + function should be suitable for checking the identity of servers in + various SSL-based protocols such as FTPS, IMAPS, POPS and others. + + :exc:`CertificateError` is raised on failure. On success, the function + returns nothing:: + + >>> cert = {'subject': ((('commonName', 'example.com'),),)} + >>> ssl.match_hostname(cert, "example.com") + >>> ssl.match_hostname(cert, "example.org") + Traceback (most recent call last): + File "<stdin>", line 1, in <module> + File "/home/py3k/Lib/ssl.py", line 130, in match_hostname + ssl.CertificateError: hostname 'example.org' doesn't match 'example.com' + + .. versionadded:: 3.2 + + .. versionchanged:: 3.3.3 + The function now follows :rfc:`6125`, section 6.4.3 and does neither + match multiple wildcards (e.g. ``*.*.com`` or ``*a*.example.org``) nor + a wildcard inside an internationalized domain names (IDN) fragment. + IDN A-labels such as ``www*.xn--pthon-kva.org`` are still supported, + but ``x*.python.org`` no longer matches ``xn--tda.python.org``. + + .. versionchanged:: 3.5 + Matching of IP addresses, when present in the subjectAltName field + of the certificate, is now supported. + + .. versionchanged:: 3.7 + The function is no longer used to TLS connections. Hostname matching + is now performed by OpenSSL. + + Allow wildcard when it is the leftmost and the only character + in that segment. Partial wildcards like ``www*.example.com`` are no + longer supported. + + .. deprecated:: 3.7 + .. function:: cert_time_to_seconds(cert_time) Return the time in seconds since the Epoch, given the ``cert_time`` @@ -411,6 +474,9 @@ Certificate handling * :attr:`openssl_capath_env` - OpenSSL's environment key that points to a capath, * :attr:`openssl_capath` - hard coded path to a capath directory + .. availability:: LibreSSL ignores the environment vars + :attr:`openssl_cafile_env` and :attr:`openssl_capath_env`. + .. versionadded:: 3.4 .. function:: enum_certificates(store_name) @@ -643,6 +709,21 @@ Constants Use :data:`PROTOCOL_TLS` instead. +.. data:: PROTOCOL_SSLv2 + + Selects SSL version 2 as the channel encryption protocol. + + This protocol is not available if OpenSSL is compiled with the + ``no-ssl2`` option. + + .. warning:: + + SSL version 2 is insecure. Its use is highly discouraged. + + .. deprecated:: 3.6 + + OpenSSL has removed support for SSLv2. + .. data:: PROTOCOL_SSLv3 Selects SSL version 3 as the channel encryption protocol. @@ -1191,6 +1272,11 @@ SSL sockets also have the following additional methods and attributes: 'subjectAltName': (('DNS', '*.eff.org'), ('DNS', 'eff.org')), 'version': 3} + .. note:: + + To validate a certificate for a particular service, you can use the + :func:`match_hostname` function. + If the ``binary_form`` parameter is :const:`True`, and a certificate was provided, this method returns the DER-encoded form of the entire certificate as a sequence of bytes, or :const:`None` if the peer did not provide a @@ -1205,8 +1291,6 @@ SSL sockets also have the following additional methods and attributes: :const:`None` if you used :const:`CERT_NONE` (rather than :const:`CERT_OPTIONAL` or :const:`CERT_REQUIRED`). - See also :attr:`SSLContext.check_hostname`. - .. versionchanged:: 3.2 The returned dictionary includes additional items such as ``issuer`` and ``notBefore``. @@ -1421,10 +1505,11 @@ to speed up repeated connections from the same clients. The context is created with secure default values. The options :data:`OP_NO_COMPRESSION`, :data:`OP_CIPHER_SERVER_PREFERENCE`, :data:`OP_SINGLE_DH_USE`, :data:`OP_SINGLE_ECDH_USE`, - :data:`OP_NO_SSLv2`, + :data:`OP_NO_SSLv2` (except for :data:`PROTOCOL_SSLv2`), and :data:`OP_NO_SSLv3` (except for :data:`PROTOCOL_SSLv3`) are set by default. The initial cipher suite list contains only ``HIGH`` - ciphers, no ``NULL`` ciphers and no ``MD5`` ciphers. + ciphers, no ``NULL`` ciphers and no ``MD5`` ciphers (except for + :data:`PROTOCOL_SSLv2`). .. deprecated:: 3.10 @@ -1825,7 +1910,7 @@ to speed up repeated connections from the same clients. .. method:: SSLContext.session_stats() Get statistics about the SSL sessions created or managed by this context. - A dictionary is returned which maps the names of each `piece of information <https://www.openssl.org/docs/man1.1.1/man3/SSL_CTX_sess_number.html>`_ to their + A dictionary is returned which maps the names of each `piece of information <https://www.openssl.org/docs/man1.1.1/ssl/SSL_CTX_sess_number.html>`_ to their numeric values. For example, here is the total number of hits and misses in the session cache since the context was created:: @@ -2575,9 +2660,10 @@ Therefore, when in client mode, it is highly recommended to use :const:`CERT_REQUIRED`. However, it is in itself not sufficient; you also have to check that the server certificate, which can be obtained by calling :meth:`SSLSocket.getpeercert`, matches the desired service. For many -protocols and applications, the service can be identified by the hostname. -This common check is automatically performed when -:attr:`SSLContext.check_hostname` is enabled. +protocols and applications, the service can be identified by the hostname; +in this case, the :func:`match_hostname` function can be used. This common +check is automatically performed when :attr:`SSLContext.check_hostname` is +enabled. .. versionchanged:: 3.7 Hostname matchings is now performed by OpenSSL. Python no longer uses @@ -2618,7 +2704,7 @@ enabled when negotiating a SSL session is possible through the :meth:`SSLContext.set_ciphers` method. Starting from Python 3.2.3, the ssl module disables certain weak ciphers by default, but you may want to further restrict the cipher choice. Be sure to read OpenSSL's documentation -about the `cipher list format <https://www.openssl.org/docs/man1.1.1/man1/ciphers.html#CIPHER-LIST-FORMAT>`_. +about the `cipher list format <https://www.openssl.org/docs/manmaster/man1/ciphers.html#CIPHER-LIST-FORMAT>`_. If you want to check which ciphers are enabled by a given cipher list, use :meth:`SSLContext.get_ciphers` or the ``openssl ciphers`` command on your system. @@ -2631,8 +2717,8 @@ for example the :mod:`multiprocessing` or :mod:`concurrent.futures` modules), be aware that OpenSSL's internal random number generator does not properly handle forked processes. Applications must change the PRNG state of the parent process if they use any SSL feature with :func:`os.fork`. Any -successful call of :func:`~ssl.RAND_add` or :func:`~ssl.RAND_bytes` is -sufficient. +successful call of :func:`~ssl.RAND_add`, :func:`~ssl.RAND_bytes` or +:func:`~ssl.RAND_pseudo_bytes` is sufficient. .. _ssl-tlsv1_3: diff --git a/Doc/library/statistics.rst b/Doc/library/statistics.rst index c3f9c1f5239e8b..4cd983bb25468a 100644 --- a/Doc/library/statistics.rst +++ b/Doc/library/statistics.rst @@ -35,35 +35,6 @@ and implementation-dependent. If your input data consists of mixed types, you may be able to use :func:`map` to ensure a consistent result, for example: ``map(float, input_data)``. -Some datasets use ``NaN`` (not a number) values to represent missing data. -Since NaNs have unusual comparison semantics, they cause surprising or -undefined behaviors in the statistics functions that sort data or that count -occurrences. The functions affected are ``median()``, ``median_low()``, -``median_high()``, ``median_grouped()``, ``mode()``, ``multimode()``, and -``quantiles()``. The ``NaN`` values should be stripped before calling these -functions:: - - >>> from statistics import median - >>> from math import isnan - >>> from itertools import filterfalse - - >>> data = [20.7, float('NaN'),19.2, 18.3, float('NaN'), 14.4] - >>> sorted(data) # This has surprising behavior - [20.7, nan, 14.4, 18.3, 19.2, nan] - >>> median(data) # This result is unexpected - 16.35 - - >>> sum(map(isnan, data)) # Number of missing values - 2 - >>> clean = list(filterfalse(isnan, data)) # Strip NaN values - >>> clean - [20.7, 19.2, 18.3, 14.4] - >>> sorted(clean) # Sorting now works as expected - [14.4, 18.3, 19.2, 20.7] - >>> median(clean) # This result is now well defined - 18.75 - - Averages and measures of central location ----------------------------------------- @@ -104,7 +75,7 @@ These functions calculate statistics regarding relations between two inputs. ========================= ===================================================== :func:`covariance` Sample covariance for two variables. -:func:`correlation` Pearson and Spearman's correlation coefficients. +:func:`correlation` Pearson's correlation coefficient for two variables. :func:`linear_regression` Slope and intercept for simple linear regression. ========================= ===================================================== @@ -648,57 +619,31 @@ However, for reading convenience, most of the examples show sorted sequences. .. versionadded:: 3.10 -.. function:: correlation(x, y, /, *, method='linear') +.. function:: correlation(x, y, /) Return the `Pearson's correlation coefficient <https://en.wikipedia.org/wiki/Pearson_correlation_coefficient>`_ for two inputs. Pearson's correlation coefficient *r* takes values - between -1 and +1. It measures the strength and direction of a linear - relationship. - - If *method* is "ranked", computes `Spearman's rank correlation coefficient - <https://en.wikipedia.org/wiki/Spearman%27s_rank_correlation_coefficient>`_ - for two inputs. The data is replaced by ranks. Ties are averaged so that - equal values receive the same rank. The resulting coefficient measures the - strength of a monotonic relationship. - - Spearman's correlation coefficient is appropriate for ordinal data or for - continuous data that doesn't meet the linear proportion requirement for - Pearson's correlation coefficient. + between -1 and +1. It measures the strength and direction of the linear + relationship, where +1 means very strong, positive linear relationship, + -1 very strong, negative linear relationship, and 0 no linear relationship. Both inputs must be of the same length (no less than two), and need not to be constant, otherwise :exc:`StatisticsError` is raised. - Example with `Kepler's laws of planetary motion - <https://en.wikipedia.org/wiki/Kepler's_laws_of_planetary_motion>`_: + Examples: .. doctest:: - >>> # Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, and Neptune - >>> orbital_period = [88, 225, 365, 687, 4331, 10_756, 30_687, 60_190] # days - >>> dist_from_sun = [58, 108, 150, 228, 778, 1_400, 2_900, 4_500] # million km - - >>> # Show that a perfect monotonic relationship exists - >>> correlation(orbital_period, dist_from_sun, method='ranked') - 1.0 - - >>> # Observe that a linear relationship is imperfect - >>> round(correlation(orbital_period, dist_from_sun), 4) - 0.9882 - - >>> # Demonstrate Kepler's third law: There is a linear correlation - >>> # between the square of the orbital period and the cube of the - >>> # distance from the sun. - >>> period_squared = [p * p for p in orbital_period] - >>> dist_cubed = [d * d * d for d in dist_from_sun] - >>> round(correlation(period_squared, dist_cubed), 4) + >>> x = [1, 2, 3, 4, 5, 6, 7, 8, 9] + >>> y = [9, 8, 7, 6, 5, 4, 3, 2, 1] + >>> correlation(x, x) 1.0 + >>> correlation(x, y) + -1.0 .. versionadded:: 3.10 - .. versionchanged:: 3.12 - Added support for Spearman's rank correlation coefficient. - .. function:: linear_regression(x, y, /, *, proportional=False) Return the slope and intercept of `simple linear regression @@ -853,7 +798,7 @@ of applications in statistics. Compute the inverse cumulative distribution function, also known as the `quantile function <https://en.wikipedia.org/wiki/Quantile_function>`_ or the `percent-point - <https://web.archive.org/web/20190203145224/https://www.statisticshowto.datasciencecentral.com/inverse-distribution-function/>`_ + <https://www.statisticshowto.datasciencecentral.com/inverse-distribution-function/>`_ function. Mathematically, it is written ``x : P(X <= x) = p``. Finds the value *x* of the random variable *X* such that the @@ -964,7 +909,7 @@ Carlo simulation <https://en.wikipedia.org/wiki/Monte_Carlo_method>`_: [1.4591308524824727, 1.8035946855390597, 2.175091447274739] Normal distributions can be used to approximate `Binomial -distributions <https://mathworld.wolfram.com/BinomialDistribution.html>`_ +distributions <http://mathworld.wolfram.com/BinomialDistribution.html>`_ when the sample size is large and when the probability of a successful trial is near 50%. @@ -1002,7 +947,7 @@ probability that the Python room will stay within its capacity limits? Normal distributions commonly arise in machine learning problems. Wikipedia has a `nice example of a Naive Bayesian Classifier -<https://en.wikipedia.org/wiki/Naive_Bayes_classifier#Person_classification>`_. +<https://en.wikipedia.org/wiki/Naive_Bayes_classifier#Sex_classification>`_. The challenge is to predict a person's gender from measurements of normally distributed features including height, weight, and foot size. diff --git a/Doc/library/stdtypes.rst b/Doc/library/stdtypes.rst index be092364047852..33fd2831228f88 100644 --- a/Doc/library/stdtypes.rst +++ b/Doc/library/stdtypes.rst @@ -353,7 +353,7 @@ Notes: The numeric literals accepted include the digits ``0`` to ``9`` or any Unicode equivalent (code points with the ``Nd`` property). - See https://www.unicode.org/Public/15.0.0/ucd/extracted/DerivedNumericType.txt + See https://www.unicode.org/Public/14.0.0/ucd/extracted/DerivedNumericType.txt for a complete list of code points with the ``Nd`` property. @@ -1453,7 +1453,7 @@ objects that compare equal might have different :attr:`~range.start`, .. seealso:: - * The `linspace recipe <https://code.activestate.com/recipes/579000/>`_ + * The `linspace recipe <http://code.activestate.com/recipes/579000/>`_ shows how to implement a lazy version of range suitable for floating point applications. @@ -2548,10 +2548,9 @@ data and are closely related to string objects in a variety of other ways. If you want to make the hex string easier to read, you can specify a single character separator *sep* parameter to include in the output. - By default, this separator will be included between each byte. - A second optional *bytes_per_sep* parameter controls the spacing. - Positive values calculate the separator position from the right, - negative values from the left. + By default between each byte. A second optional *bytes_per_sep* + parameter controls the spacing. Positive values calculate the + separator position from the right, negative values from the left. >>> value = b'\xf0\xf1\xf2' >>> value.hex('-') @@ -4694,9 +4693,7 @@ values are hashable, so that ``(key, value)`` pairs are unique and hashable, then the items view is also set-like. (Values views are not treated as set-like since the entries are generally not unique.) For set-like views, all of the operations defined for the abstract base class :class:`collections.abc.Set` are -available (for example, ``==``, ``<``, or ``^``). While using set operators, -set-like views accept any iterable as the other operand, unlike sets which only -accept sets as the input. +available (for example, ``==``, ``<``, or ``^``). An example of dictionary view usage:: @@ -4728,8 +4725,6 @@ An example of dictionary view usage:: {'bacon'} >>> keys ^ {'sausage', 'juice'} {'juice', 'sausage', 'bacon', 'spam'} - >>> keys | ['juice', 'juice', 'juice'] - {'juice', 'sausage', 'bacon', 'spam', 'eggs'} >>> # get back a read-only proxy for the original dictionary >>> values.mapping @@ -5460,165 +5455,6 @@ types, where they are relevant. Some of these are not reported by the [<class 'bool'>] -.. _int_max_str_digits: - -Integer string conversion length limitation -=========================================== - -CPython has a global limit for converting between :class:`int` and :class:`str` -to mitigate denial of service attacks. This limit *only* applies to decimal or -other non-power-of-two number bases. Hexadecimal, octal, and binary conversions -are unlimited. The limit can be configured. - -The :class:`int` type in CPython is an abitrary length number stored in binary -form (commonly known as a "bignum"). There exists no algorithm that can convert -a string to a binary integer or a binary integer to a string in linear time, -*unless* the base is a power of 2. Even the best known algorithms for base 10 -have sub-quadratic complexity. Converting a large value such as ``int('1' * -500_000)`` can take over a second on a fast CPU. - -Limiting conversion size offers a practical way to avoid `CVE-2020-10735 -<https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-10735>`_. - -The limit is applied to the number of digit characters in the input or output -string when a non-linear conversion algorithm would be involved. Underscores -and the sign are not counted towards the limit. - -When an operation would exceed the limit, a :exc:`ValueError` is raised: - -.. doctest:: - - >>> import sys - >>> sys.set_int_max_str_digits(4300) # Illustrative, this is the default. - >>> _ = int('2' * 5432) - Traceback (most recent call last): - ... - ValueError: Exceeds the limit (4300) for integer string conversion: value has 5432 digits; use sys.set_int_max_str_digits() to increase the limit. - >>> i = int('2' * 4300) - >>> len(str(i)) - 4300 - >>> i_squared = i*i - >>> len(str(i_squared)) - Traceback (most recent call last): - ... - ValueError: Exceeds the limit (4300) for integer string conversion: value has 8599 digits; use sys.set_int_max_str_digits() to increase the limit. - >>> len(hex(i_squared)) - 7144 - >>> assert int(hex(i_squared), base=16) == i*i # Hexadecimal is unlimited. - -The default limit is 4300 digits as provided in -:data:`sys.int_info.default_max_str_digits <sys.int_info>`. -The lowest limit that can be configured is 640 digits as provided in -:data:`sys.int_info.str_digits_check_threshold <sys.int_info>`. - -Verification: - -.. doctest:: - - >>> import sys - >>> assert sys.int_info.default_max_str_digits == 4300, sys.int_info - >>> assert sys.int_info.str_digits_check_threshold == 640, sys.int_info - >>> msg = int('578966293710682886880994035146873798396722250538762761564' - ... '9252925514383915483333812743580549779436104706260696366600' - ... '571186405732').to_bytes(53, 'big') - ... - -.. versionadded:: 3.12 - -Affected APIs -------------- - -The limitation only applies to potentially slow conversions between :class:`int` -and :class:`str` or :class:`bytes`: - -* ``int(string)`` with default base 10. -* ``int(string, base)`` for all bases that are not a power of 2. -* ``str(integer)``. -* ``repr(integer)`` -* any other string conversion to base 10, for example ``f"{integer}"``, - ``"{}".format(integer)``, or ``b"%d" % integer``. - -The limitations do not apply to functions with a linear algorithm: - -* ``int(string, base)`` with base 2, 4, 8, 16, or 32. -* :func:`int.from_bytes` and :func:`int.to_bytes`. -* :func:`hex`, :func:`oct`, :func:`bin`. -* :ref:`formatspec` for hex, octal, and binary numbers. -* :class:`str` to :class:`float`. -* :class:`str` to :class:`decimal.Decimal`. - -Configuring the limit ---------------------- - -Before Python starts up you can use an environment variable or an interpreter -command line flag to configure the limit: - -* :envvar:`PYTHONINTMAXSTRDIGITS`, e.g. - ``PYTHONINTMAXSTRDIGITS=640 python3`` to set the limit to 640 or - ``PYTHONINTMAXSTRDIGITS=0 python3`` to disable the limitation. -* :option:`-X int_max_str_digits <-X>`, e.g. - ``python3 -X int_max_str_digits=640`` -* :data:`sys.flags.int_max_str_digits` contains the value of - :envvar:`PYTHONINTMAXSTRDIGITS` or :option:`-X int_max_str_digits <-X>`. - If both the env var and the ``-X`` option are set, the ``-X`` option takes - precedence. A value of *-1* indicates that both were unset, thus a value of - :data:`sys.int_info.default_max_str_digits` was used during initilization. - -From code, you can inspect the current limit and set a new one using these -:mod:`sys` APIs: - -* :func:`sys.get_int_max_str_digits` and :func:`sys.set_int_max_str_digits` are - a getter and setter for the interpreter-wide limit. Subinterpreters have - their own limit. - -Information about the default and minimum can be found in :attr:`sys.int_info`: - -* :data:`sys.int_info.default_max_str_digits <sys.int_info>` is the compiled-in - default limit. -* :data:`sys.int_info.str_digits_check_threshold <sys.int_info>` is the lowest - accepted value for the limit (other than 0 which disables it). - -.. versionadded:: 3.12 - -.. caution:: - - Setting a low limit *can* lead to problems. While rare, code exists that - contains integer constants in decimal in their source that exceed the - minimum threshold. A consequence of setting the limit is that Python source - code containing decimal integer literals longer than the limit will - encounter an error during parsing, usually at startup time or import time or - even at installation time - anytime an up to date ``.pyc`` does not already - exist for the code. A workaround for source that contains such large - constants is to convert them to ``0x`` hexadecimal form as it has no limit. - - Test your application thoroughly if you use a low limit. Ensure your tests - run with the limit set early via the environment or flag so that it applies - during startup and even during any installation step that may invoke Python - to precompile ``.py`` sources to ``.pyc`` files. - -Recommended configuration -------------------------- - -The default :data:`sys.int_info.default_max_str_digits` is expected to be -reasonable for most applications. If your application requires a different -limit, set it from your main entry point using Python version agnostic code as -these APIs were added in security patch releases in versions before 3.12. - -Example:: - - >>> import sys - >>> if hasattr(sys, "set_int_max_str_digits"): - ... upper_bound = 68000 - ... lower_bound = 4004 - ... current_limit = sys.get_int_max_str_digits() - ... if current_limit == 0 or current_limit > upper_bound: - ... sys.set_int_max_str_digits(upper_bound) - ... elif current_limit < lower_bound: - ... sys.set_int_max_str_digits(lower_bound) - -If you need to disable it entirely, set it to ``0``. - - .. rubric:: Footnotes .. [1] Additional information on these special methods may be found in the Python diff --git a/Doc/library/string.rst b/Doc/library/string.rst index 3b96813e683864..35e9bc116803ff 100644 --- a/Doc/library/string.rst +++ b/Doc/library/string.rst @@ -8,7 +8,6 @@ -------------- - .. seealso:: :ref:`textseq` @@ -739,7 +738,7 @@ internationalization (i18n) since in that context, the simpler syntax and functionality makes it easier to translate than other built-in string formatting facilities in Python. As an example of a library built on template strings for i18n, see the -`flufl.i18n <https://flufli18n.readthedocs.io/en/latest/>`_ package. +`flufl.i18n <http://flufli18n.readthedocs.io/en/latest/>`_ package. .. index:: single: $ (dollar); in template strings diff --git a/Doc/library/struct.rst b/Doc/library/struct.rst index c1888d4a94fe0c..eccba20fb8fe7e 100644 --- a/Doc/library/struct.rst +++ b/Doc/library/struct.rst @@ -82,7 +82,7 @@ The module defines the following exception and functions: Iteratively unpack from the buffer *buffer* according to the format string *format*. This function returns an iterator which will read - equally sized chunks from the buffer until all its contents have been + equally-sized chunks from the buffer until all its contents have been consumed. The buffer's size in bytes must be a multiple of the size required by the format, as reflected by :func:`calcsize`. @@ -146,10 +146,9 @@ If the first character is not one of these, ``'@'`` is assumed. Native byte order is big-endian or little-endian, depending on the host system. For example, Intel x86 and AMD64 (x86-64) are little-endian; -IBM z and most legacy architectures are big-endian; -and ARM, RISC-V and IBM Power feature switchable endianness -(bi-endian, though the former two are nearly always little-endian in practice). -Use ``sys.byteorder`` to check the endianness of your system. +Motorola 68000 and PowerPC G5 are big-endian; ARM and Intel Itanium feature +switchable endianness (bi-endian). Use ``sys.byteorder`` to check the +endianness of your system. Native size and alignment are determined using the C compiler's ``sizeof`` expression. This is always combined with native byte order. @@ -467,6 +466,6 @@ The :mod:`struct` module also defines the following type: .. _half precision format: https://en.wikipedia.org/wiki/Half-precision_floating-point_format -.. _ieee 754 standard: https://en.wikipedia.org/wiki/IEEE_754-2008_revision +.. _ieee 754 standard: https://en.wikipedia.org/wiki/IEEE_floating_point#IEEE_754-2008 .. _IETF RFC 1700: https://tools.ietf.org/html/rfc1700 diff --git a/Doc/library/subprocess.rst b/Doc/library/subprocess.rst index 43d6ffceee8fc8..4031a5f62167f0 100644 --- a/Doc/library/subprocess.rst +++ b/Doc/library/subprocess.rst @@ -25,7 +25,6 @@ modules and functions can be found in the following sections. :pep:`324` -- PEP proposing the subprocess module -.. include:: ../includes/wasm-notavail.rst Using the :mod:`subprocess` Module ---------------------------------- @@ -360,7 +359,7 @@ functions. .. warning:: - For maximum reliability, use a fully qualified path for the executable. + For maximum reliability, use a fully-qualified path for the executable. To search for an unqualified name on :envvar:`PATH`, use :meth:`shutil.which`. On all platforms, passing :data:`sys.executable` is the recommended way to launch the current Python interpreter again, @@ -1474,7 +1473,7 @@ handling consistency are valid for these functions. >>> subprocess.getstatusoutput('/bin/kill $$') (-15, '') - .. availability:: Unix, Windows. + .. availability:: POSIX & Windows. .. versionchanged:: 3.3.4 Windows support was added. @@ -1496,7 +1495,7 @@ handling consistency are valid for these functions. >>> subprocess.getoutput('ls /bin/ls') '/bin/ls' - .. availability:: Unix, Windows. + .. availability:: POSIX & Windows. .. versionchanged:: 3.3.4 Windows support added @@ -1554,7 +1553,7 @@ On Linux, :mod:`subprocess` defaults to using the ``vfork()`` system call internally when it is safe to do so rather than ``fork()``. This greatly improves performance. -If you ever encounter a presumed highly unusual situation where you need to +If you ever encounter a presumed highly-unusual situation where you need to prevent ``vfork()`` from being used by Python, you can set the :attr:`subprocess._USE_VFORK` attribute to a false value. diff --git a/Doc/library/superseded.rst b/Doc/library/superseded.rst index 57ef9638d058d4..b38f16691f6ea9 100644 --- a/Doc/library/superseded.rst +++ b/Doc/library/superseded.rst @@ -27,6 +27,7 @@ backwards compatibility. They have been superseded by other modules. optparse.rst ossaudiodev.rst pipes.rst + smtpd.rst sndhdr.rst spwd.rst sunau.rst diff --git a/Doc/library/symtable.rst b/Doc/library/symtable.rst index 65ff5bfe7abd61..0264f891cc8c06 100644 --- a/Doc/library/symtable.rst +++ b/Doc/library/symtable.rst @@ -69,8 +69,7 @@ Examining Symbol Tables .. method:: get_identifiers() - Return a view object containing the names of symbols in the table. - See the :ref:`documentation of view objects <dict-views>`. + Return a list of names of symbols in this table. .. method:: lookup(name) diff --git a/Doc/library/sys.rst b/Doc/library/sys.rst index c6be12c14b550a..5f3b9b5776cb82 100644 --- a/Doc/library/sys.rst +++ b/Doc/library/sys.rst @@ -338,7 +338,7 @@ always available. | | memory support. | +-----------------------------+----------------------------------------------+ - .. availability:: Emscripten. + .. availability:: WebAssembly Emscripten platform (*wasm32-emscripten*). .. versionadded:: 3.11 @@ -502,9 +502,9 @@ always available. The :term:`named tuple` *flags* exposes the status of command line flags. The attributes are read only. - ============================= ============================================================================================================== + ============================= ================================================================ attribute flag - ============================= ============================================================================================================== + ============================= ================================================================ :const:`debug` :option:`-d` :const:`inspect` :option:`-i` :const:`interactive` :option:`-i` @@ -521,8 +521,7 @@ always available. :const:`dev_mode` :option:`-X dev <-X>` (:ref:`Python Development Mode <devmode>`) :const:`utf8_mode` :option:`-X utf8 <-X>` :const:`safe_path` :option:`-P` - :const:`int_max_str_digits` :option:`-X int_max_str_digits <-X>` (:ref:`integer string conversion length limitation <int_max_str_digits>`) - ============================= ============================================================================================================== + ============================= ================================================================ .. versionchanged:: 3.2 Added ``quiet`` attribute for the new :option:`-q` flag. @@ -544,9 +543,6 @@ always available. .. versionchanged:: 3.11 Added the ``safe_path`` attribute for :option:`-P` option. - .. versionchanged:: 3.12 - Added the ``int_max_str_digits`` attribute. - .. data:: float_info @@ -727,13 +723,6 @@ always available. .. versionadded:: 3.6 -.. function:: get_int_max_str_digits() - - Returns the current value for the :ref:`integer string conversion length - limitation <int_max_str_digits>`. See also :func:`set_int_max_str_digits`. - - .. versionadded:: 3.12 - .. function:: getrefcount(object) Return the reference count of the *object*. The count returned is generally one @@ -785,7 +774,7 @@ always available. that is deeper than the call stack, :exc:`ValueError` is raised. The default for *depth* is zero, returning the frame at the top of the call stack. - .. audit-event:: sys._getframe frame sys._getframe + .. audit-event:: sys._getframe "" sys._getframe .. impl-detail:: @@ -1007,31 +996,19 @@ always available. .. tabularcolumns:: |l|L| - +----------------------------------------+-----------------------------------------------+ - | Attribute | Explanation | - +========================================+===============================================+ - | :const:`bits_per_digit` | number of bits held in each digit. Python | - | | integers are stored internally in base | - | | ``2**int_info.bits_per_digit`` | - +----------------------------------------+-----------------------------------------------+ - | :const:`sizeof_digit` | size in bytes of the C type used to | - | | represent a digit | - +----------------------------------------+-----------------------------------------------+ - | :const:`default_max_str_digits` | default value for | - | | :func:`sys.get_int_max_str_digits` when it | - | | is not otherwise explicitly configured. | - +----------------------------------------+-----------------------------------------------+ - | :const:`str_digits_check_threshold` | minimum non-zero value for | - | | :func:`sys.set_int_max_str_digits`, | - | | :envvar:`PYTHONINTMAXSTRDIGITS`, or | - | | :option:`-X int_max_str_digits <-X>`. | - +----------------------------------------+-----------------------------------------------+ + +-------------------------+----------------------------------------------+ + | Attribute | Explanation | + +=========================+==============================================+ + | :const:`bits_per_digit` | number of bits held in each digit. Python | + | | integers are stored internally in base | + | | ``2**int_info.bits_per_digit`` | + +-------------------------+----------------------------------------------+ + | :const:`sizeof_digit` | size in bytes of the C type used to | + | | represent a digit | + +-------------------------+----------------------------------------------+ .. versionadded:: 3.1 - .. versionchanged:: 3.12 - Added ``default_max_str_digits`` and ``str_digits_check_threshold``. - .. data:: __interactivehook__ @@ -1110,8 +1087,7 @@ always available. A list of :term:`meta path finder` objects that have their :meth:`~importlib.abc.MetaPathFinder.find_spec` methods called to see if one - of the objects can find the module to be imported. By default, it holds entries - that implement Python's default import semantics. The + of the objects can find the module to be imported. The :meth:`~importlib.abc.MetaPathFinder.find_spec` method is called with at least the absolute name of the module being imported. If the module to be imported is contained in a package, then the parent package's :attr:`__path__` @@ -1181,7 +1157,7 @@ always available. line option or the :envvar:`PYTHONSAFEPATH` environment variable? A program is free to modify this list for its own purposes. Only strings - should be added to :data:`sys.path`; all other data types are + and bytes should be added to :data:`sys.path`; all other data types are ignored during import. @@ -1331,14 +1307,6 @@ always available. .. availability:: Unix. -.. function:: set_int_max_str_digits(maxdigits) - - Set the :ref:`integer string conversion length limitation - <int_max_str_digits>` used by this interpreter. See also - :func:`get_int_max_str_digits`. - - .. versionadded:: 3.12 - .. function:: setprofile(profilefunc) .. index:: @@ -1689,8 +1657,6 @@ always available. | | | | | * ``'nt'``: Windows threads | | | * ``'pthread'``: POSIX threads | - | | * ``'pthread-stubs'``: stub POSIX threads | - | | (on WebAssembly platforms without threading support) | | | * ``'solaris'``: Solaris threads | +------------------+---------------------------------------------------------+ | :const:`lock` | Name of the lock implementation: | @@ -1811,13 +1777,13 @@ always available. .. code-block:: shell-session - $ ./python -Xa=b -Xc + $ ./python -Xpycache_prefix=some_path -Xdev Python 3.2a3+ (py3k, Oct 16 2010, 20:14:50) [GCC 4.4.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys._xoptions - {'a': 'b', 'c': True} + {'pycache_prefix': 'some_path', 'dev': True} .. impl-detail:: @@ -1830,4 +1796,4 @@ always available. .. rubric:: Citations -.. [C99] ISO/IEC 9899:1999. "Programming languages -- C." A public draft of this standard is available at https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf\ . +.. [C99] ISO/IEC 9899:1999. "Programming languages -- C." A public draft of this standard is available at http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf\ . diff --git a/Doc/library/sysconfig.rst b/Doc/library/sysconfig.rst index 024988777030f8..fa18d62d22af51 100644 --- a/Doc/library/sysconfig.rst +++ b/Doc/library/sysconfig.rst @@ -25,7 +25,7 @@ Configuration variables A Python distribution contains a :file:`Makefile` and a :file:`pyconfig.h` header file that are necessary to build both the Python binary itself and -third-party C extensions compiled using ``setuptools``. +third-party C extensions compiled using :mod:`distutils`. :mod:`sysconfig` puts all variables found in these files in a dictionary that can be accessed using :func:`get_config_vars` or :func:`get_config_var`. diff --git a/Doc/library/syslog.rst b/Doc/library/syslog.rst index 766ff57cc66d69..d264a3340c98b0 100644 --- a/Doc/library/syslog.rst +++ b/Doc/library/syslog.rst @@ -15,8 +15,6 @@ This module wraps the system ``syslog`` family of routines. A pure Python library that can speak to a syslog server is available in the :mod:`logging.handlers` module as :class:`SysLogHandler`. -.. include:: ../includes/wasm-notavail.rst - The module defines the following functions: @@ -31,15 +29,10 @@ The module defines the following functions: value given in the :func:`openlog` call is used. If :func:`openlog` has not been called prior to the call to :func:`syslog`, - :func:`openlog` will be called with no arguments. + ``openlog()`` will be called with no arguments. .. audit-event:: syslog.syslog priority,message syslog.syslog - .. versionchanged:: 3.2 - In previous versions, :func:`openlog` would not be called automatically if - it wasn't called prior to the call to :func:`syslog`, deferring to the syslog - implementation to call ``openlog()``. - .. function:: openlog([ident[, logoption[, facility]]]) @@ -58,7 +51,8 @@ The module defines the following functions: .. versionchanged:: 3.2 In previous versions, keyword arguments were not allowed, and *ident* was - required. + required. The default for *ident* was dependent on the system libraries, + and often was ``python`` instead of the name of the Python program file. .. function:: closelog() diff --git a/Doc/library/tarfile.rst b/Doc/library/tarfile.rst index 6e8baba04fb92d..f5c49b0ac4f738 100644 --- a/Doc/library/tarfile.rst +++ b/Doc/library/tarfile.rst @@ -98,8 +98,8 @@ Some facts and figures: If *fileobj* is specified, it is used as an alternative to a :term:`file object` opened in binary mode for *name*. It is supposed to be at position 0. - For modes ``'w:gz'``, ``'x:gz'``, ``'w|gz'``, ``'w:bz2'``, ``'x:bz2'``, - ``'w|bz2'``, :func:`tarfile.open` accepts the keyword argument + For modes ``'w:gz'``, ``'r:gz'``, ``'w:bz2'``, ``'r:bz2'``, ``'x:gz'``, + ``'x:bz2'``, :func:`tarfile.open` accepts the keyword argument *compresslevel* (default ``9``) to specify the compression level of the file. For modes ``'w:xz'`` and ``'x:xz'``, :func:`tarfile.open` accepts the @@ -152,9 +152,6 @@ Some facts and figures: .. versionchanged:: 3.6 The *name* parameter accepts a :term:`path-like object`. - .. versionchanged:: 3.12 - The *compresslevel* keyword argument also works for streams. - .. class:: TarFile :noindex: @@ -839,7 +836,7 @@ There are three tar formats that can be created with the :mod:`tarfile` module: files and stores pathnames in a portable way. Modern tar implementations, including GNU tar, bsdtar/libarchive and star, fully support extended *pax* features; some old or unmaintained libraries may not, but should treat - *pax* archives as if they were in the universally supported *ustar* format. + *pax* archives as if they were in the universally-supported *ustar* format. It is the current default format for new archives. It extends the existing *ustar* format with extra headers for information diff --git a/Doc/library/telnetlib.rst b/Doc/library/telnetlib.rst index 5a993dc42a5ab2..70b8c7d1511d09 100644 --- a/Doc/library/telnetlib.rst +++ b/Doc/library/telnetlib.rst @@ -30,7 +30,6 @@ SE (Subnegotiation End), NOP (No Operation), DM (Data Mark), BRK (Break), IP (Interrupt process), AO (Abort output), AYT (Are You There), EC (Erase Character), EL (Erase Line), GA (Go Ahead), SB (Subnegotiation Begin). -.. include:: ../includes/wasm-notavail.rst .. class:: Telnet(host=None, port=0[, timeout]) diff --git a/Doc/library/test.rst b/Doc/library/test.rst index eff375132318a9..5c458bf3ec2f26 100644 --- a/Doc/library/test.rst +++ b/Doc/library/test.rst @@ -413,51 +413,6 @@ The :mod:`test.support` module defines the following constants: The :mod:`test.support` module defines the following functions: -.. function:: busy_retry(timeout, err_msg=None, /, *, error=True) - - Run the loop body until ``break`` stops the loop. - - After *timeout* seconds, raise an :exc:`AssertionError` if *error* is true, - or just stop the loop if *error* is false. - - Example:: - - for _ in support.busy_retry(support.SHORT_TIMEOUT): - if check(): - break - - Example of error=False usage:: - - for _ in support.busy_retry(support.SHORT_TIMEOUT, error=False): - if check(): - break - else: - raise RuntimeError('my custom error') - -.. function:: sleeping_retry(timeout, err_msg=None, /, *, init_delay=0.010, max_delay=1.0, error=True) - - Wait strategy that applies exponential backoff. - - Run the loop body until ``break`` stops the loop. Sleep at each loop - iteration, but not at the first iteration. The sleep delay is doubled at - each iteration (up to *max_delay* seconds). - - See :func:`busy_retry` documentation for the parameters usage. - - Example raising an exception after SHORT_TIMEOUT seconds:: - - for _ in support.sleeping_retry(support.SHORT_TIMEOUT): - if check(): - break - - Example of error=False usage:: - - for _ in support.sleeping_retry(support.SHORT_TIMEOUT, error=False): - if check(): - break - else: - raise RuntimeError('my custom error') - .. function:: is_resource_enabled(resource) Return ``True`` if *resource* is enabled and available. The list of @@ -794,12 +749,6 @@ The :mod:`test.support` module defines the following functions: Decorator for only running the test if :data:`HAVE_DOCSTRINGS`. -.. decorator:: requires_limited_api - - Decorator for only running the test if :ref:`Limited C API <stable>` - is available. - - .. decorator:: cpython_only Decorator for tests only applicable to CPython. @@ -1011,16 +960,6 @@ The :mod:`test.support` module defines the following functions: .. versionadded:: 3.10 -.. function:: adjust_int_max_str_digits(max_digits) - - This function returns a context manager that will change the global - :func:`sys.set_int_max_str_digits` setting for the duration of the - context to allow execution of test code that needs a different limit - on the number of digits when converting between an integer and string. - - .. versionadded:: 3.12 - - The :mod:`test.support` module defines the following classes: diff --git a/Doc/library/threading.rst b/Doc/library/threading.rst index b352125551fa79..58e4ad786fe17f 100644 --- a/Doc/library/threading.rst +++ b/Doc/library/threading.rst @@ -9,23 +9,11 @@ -------------- This module constructs higher-level threading interfaces on top of the lower -level :mod:`_thread` module. +level :mod:`_thread` module. See also the :mod:`queue` module. .. versionchanged:: 3.7 This module used to be optional, it is now always available. -.. seealso:: - - :class:`concurrent.futures.ThreadPoolExecutor` offers a higher level interface - to push tasks to a background thread without blocking execution of the - calling thread, while still being able to retrieve their results when needed. - - :mod:`queue` provides a thread-safe interface for exchanging data between - running threads. - - :mod:`asyncio` offers an alternative approach to achieving task level - concurrency without requiring the use of multiple operating system threads. - .. note:: In the Python 2.x series, this module contained ``camelCase`` names @@ -45,7 +33,6 @@ level :mod:`_thread` module. However, threading is still an appropriate model if you want to run multiple I/O-bound tasks simultaneously. -.. include:: ../includes/wasm-notavail.rst This module defines the following functions: @@ -158,15 +145,6 @@ This module defines the following functions: The *func* will be passed to :func:`sys.settrace` for each thread, before its :meth:`~Thread.run` method is called. -.. function:: settrace_all_threads(func) - - Set a trace function for all threads started from the :mod:`threading` module - and all Python threads that are currently executing. - - The *func* will be passed to :func:`sys.settrace` for each thread, before its - :meth:`~Thread.run` method is called. - - .. versionadded:: 3.12 .. function:: gettrace() @@ -187,15 +165,6 @@ This module defines the following functions: The *func* will be passed to :func:`sys.setprofile` for each thread, before its :meth:`~Thread.run` method is called. -.. function:: setprofile_all_threads(func) - - Set a profile function for all threads started from the :mod:`threading` module - and all Python threads that are currently executing. - - The *func* will be passed to :func:`sys.setprofile` for each thread, before its - :meth:`~Thread.run` method is called. - - .. versionadded:: 3.12 .. function:: getprofile() @@ -223,9 +192,7 @@ This module defines the following functions: information (4 KiB pages are common; using multiples of 4096 for the stack size is the suggested approach in the absence of more specific information). - .. availability:: Windows, pthreads. - - Unix platforms with POSIX threads support. + .. availability:: Windows, systems with POSIX threads. This module also defines the following constant: @@ -462,7 +429,7 @@ since it is impossible to detect the termination of alien threads. system-wide) from the time the thread is created until the thread has been terminated. - .. availability:: Windows, FreeBSD, Linux, macOS, OpenBSD, NetBSD, AIX, DragonFlyBSD. + .. availability:: Requires :func:`get_native_id` function. .. versionadded:: 3.8 diff --git a/Doc/library/time.rst b/Doc/library/time.rst index 9f23a6fc7d5341..be17fa68eb7b58 100644 --- a/Doc/library/time.rst +++ b/Doc/library/time.rst @@ -144,10 +144,8 @@ Functions Passing an invalid or expired *thread_id* may result in undefined behavior, such as segmentation fault. - .. availability:: Unix - - See the man page for :manpage:`pthread_getcpuclockid(3)` for - further information. + .. availability:: Unix (see the man page for :manpage:`pthread_getcpuclockid(3)` for + further information). .. versionadded:: 3.7 @@ -653,9 +651,8 @@ Functions Use :func:`thread_time_ns` to avoid the precision loss caused by the :class:`float` type. - .. availability:: Linux, Unix, Windows. - - Unix systems supporting ``CLOCK_THREAD_CPUTIME_ID``. + .. availability:: Windows, Linux, Unix systems supporting + ``CLOCK_THREAD_CPUTIME_ID``. .. versionadded:: 3.7 @@ -773,7 +770,7 @@ These constants are used as parameters for :func:`clock_getres` and have discontinuities if the time is changed using ``settimeofday()`` or similar. - .. availability:: Linux >= 2.6.39. + .. availability:: Linux 2.6.39 or later. .. versionadded:: 3.7 @@ -804,7 +801,7 @@ These constants are used as parameters for :func:`clock_getres` and Similar to :data:`CLOCK_MONOTONIC`, but provides access to a raw hardware-based time that is not subject to NTP adjustments. - .. availability:: Linux >= 2.6.28, macOS >= 10.12. + .. availability:: Linux 2.6.28 and newer, macOS 10.12 and newer. .. versionadded:: 3.3 @@ -822,7 +819,7 @@ These constants are used as parameters for :func:`clock_getres` and High-resolution per-process timer from the CPU. - .. availability:: FreeBSD, NetBSD >= 7, OpenBSD. + .. availability:: FreeBSD, NetBSD 7 or later, OpenBSD. .. versionadded:: 3.7 @@ -852,7 +849,7 @@ These constants are used as parameters for :func:`clock_getres` and suspended, providing accurate uptime measurement, both absolute and interval. - .. availability:: FreeBSD, OpenBSD >= 5.5. + .. availability:: FreeBSD, OpenBSD 5.5 or later. .. versionadded:: 3.7 @@ -863,7 +860,7 @@ These constants are used as parameters for :func:`clock_getres` and point, unaffected by frequency or time adjustments and not incremented while the system is asleep. - .. availability:: macOS >= 10.12. + .. availability:: macOS 10.12 and newer. .. versionadded:: 3.8 diff --git a/Doc/library/tkinter.rst b/Doc/library/tkinter.rst index 0d2b344d24f269..096a343bd95589 100644 --- a/Doc/library/tkinter.rst +++ b/Doc/library/tkinter.rst @@ -61,7 +61,7 @@ details that are unchanged. * `Python and Tkinter Programming <https://www.packtpub.com/product/python-gui-programming-with-tkinter/9781788835886>`_ By Alan Moore. (ISBN 978-1788835886) - * `Programming Python <https://learning-python.com/about-pp4e.html>`_ + * `Programming Python <http://learning-python.com/about-pp4e.html>`_ By Mark Lutz; has excellent coverage of Tkinter. (ISBN 978-0596158101) * `Tcl and the Tk Toolkit (2nd edition) <https://www.amazon.com/exec/obidos/ASIN/032133633X>`_ @@ -90,7 +90,7 @@ Tcl (see `Threading model`_ for details). Tk - Tk is a `Tcl package <https://wiki.tcl-lang.org/37432>`_ implemented in C + Tk is a `Tcl package <http://wiki.tcl.tk/37432>`_ implemented in C that adds custom commands to create and manipulate GUI widgets. Each :class:`Tk` object embeds its own Tcl interpreter instance with Tk loaded into it. Tk's widgets are very customizable, though at the cost of a dated appearance. @@ -988,7 +988,7 @@ wherever the image was used. .. seealso:: - The `Pillow <https://python-pillow.org/>`_ package adds support for + The `Pillow <http://python-pillow.org/>`_ package adds support for formats such as BMP, JPEG, TIFF, and WebP, among others. .. _tkinter-file-handlers: diff --git a/Doc/library/tkinter.ttk.rst b/Doc/library/tkinter.ttk.rst index b05799ef601eb6..d50ea99aa46eed 100644 --- a/Doc/library/tkinter.ttk.rst +++ b/Doc/library/tkinter.ttk.rst @@ -286,7 +286,7 @@ methods :meth:`tkinter.Widget.cget` and :meth:`tkinter.Widget.configure`. Modify or inquire widget state. If *statespec* is specified, sets the widget state according to it and return a new *statespec* indicating which flags were changed. If *statespec* is not specified, returns - the currently enabled state flags. + the currently-enabled state flags. *statespec* will usually be a list or a tuple. @@ -465,7 +465,7 @@ Notebook Ttk Notebook widget manages a collection of windows and displays a single one at a time. Each child window is associated with a tab, which the user -may select to change the currently displayed window. +may select to change the currently-displayed window. Options @@ -543,7 +543,7 @@ of the following forms: * An integer between zero and the number of tabs * The name of a child window * A positional specification of the form "@x,y", which identifies the tab -* The literal string "current", which identifies the currently selected tab +* The literal string "current", which identifies the currently-selected tab * The literal string "end", which returns the number of tabs (only valid for :meth:`Notebook.index`) @@ -613,7 +613,7 @@ ttk.Notebook Selects the specified *tab_id*. The associated child window will be displayed, and the - previously selected window (if different) is unmapped. If *tab_id* is + previously-selected window (if different) is unmapped. If *tab_id* is omitted, returns the widget name of the currently selected pane. diff --git a/Doc/library/traceback.rst b/Doc/library/traceback.rst index f8c1eabadacf9f..796309c6cf0bb9 100644 --- a/Doc/library/traceback.rst +++ b/Doc/library/traceback.rst @@ -341,10 +341,6 @@ capture data for later printing in a lightweight fashion. local variables in each :class:`FrameSummary` are captured as object representations. - .. versionchanged:: 3.12 - Exceptions raised from :func:`repr` on a local variable (when - *capture_locals* is ``True``) are no longer propagated to the caller. - .. classmethod:: from_list(a_list) Construct a :class:`StackSummary` object from a supplied list of @@ -429,9 +425,9 @@ exception and traceback: import sys, traceback def lumberjack(): - bright_side_of_life() + bright_side_of_death() - def bright_side_of_life(): + def bright_side_of_death(): return tuple()[0] try: @@ -441,7 +437,9 @@ exception and traceback: print("*** print_tb:") traceback.print_tb(exc_traceback, limit=1, file=sys.stdout) print("*** print_exception:") - traceback.print_exception(exc_value, limit=2, file=sys.stdout) + # exc_type below is ignored on 3.5 and later + traceback.print_exception(exc_type, exc_value, exc_traceback, + limit=2, file=sys.stdout) print("*** print_exc:") traceback.print_exc(limit=2, file=sys.stdout) print("*** format_exc, first and last line:") @@ -449,7 +447,9 @@ exception and traceback: print(formatted_lines[0]) print(formatted_lines[-1]) print("*** format_exception:") - print(repr(traceback.format_exception(exc_value))) + # exc_type below is ignored on 3.5 and later + print(repr(traceback.format_exception(exc_type, exc_value, + exc_traceback))) print("*** extract_tb:") print(repr(traceback.extract_tb(exc_traceback))) print("*** format_tb:") @@ -464,37 +464,42 @@ The output for the example would look similar to this: *** print_tb: File "<doctest...>", line 10, in <module> lumberjack() + ^^^^^^^^^^^^ *** print_exception: Traceback (most recent call last): File "<doctest...>", line 10, in <module> lumberjack() + ^^^^^^^^^^^^ File "<doctest...>", line 4, in lumberjack - bright_side_of_life() + bright_side_of_death() + ^^^^^^^^^^^^^^^^^^^^^^ IndexError: tuple index out of range *** print_exc: Traceback (most recent call last): File "<doctest...>", line 10, in <module> lumberjack() + ^^^^^^^^^^^^ File "<doctest...>", line 4, in lumberjack - bright_side_of_life() + bright_side_of_death() + ^^^^^^^^^^^^^^^^^^^^^^ IndexError: tuple index out of range *** format_exc, first and last line: Traceback (most recent call last): IndexError: tuple index out of range *** format_exception: ['Traceback (most recent call last):\n', - ' File "<doctest default[0]>", line 10, in <module>\n lumberjack()\n', - ' File "<doctest default[0]>", line 4, in lumberjack\n bright_side_of_life()\n', - ' File "<doctest default[0]>", line 7, in bright_side_of_life\n return tuple()[0]\n ~~~~~~~^^^\n', + ' File "<doctest default[0]>", line 10, in <module>\n lumberjack()\n ^^^^^^^^^^^^\n', + ' File "<doctest default[0]>", line 4, in lumberjack\n bright_side_of_death()\n ^^^^^^^^^^^^^^^^^^^^^^\n', + ' File "<doctest default[0]>", line 7, in bright_side_of_death\n return tuple()[0]\n ~~~~~~~^^^\n', 'IndexError: tuple index out of range\n'] *** extract_tb: [<FrameSummary file <doctest...>, line 10 in <module>>, <FrameSummary file <doctest...>, line 4 in lumberjack>, - <FrameSummary file <doctest...>, line 7 in bright_side_of_life>] + <FrameSummary file <doctest...>, line 7 in bright_side_of_death>] *** format_tb: - [' File "<doctest default[0]>", line 10, in <module>\n lumberjack()\n', - ' File "<doctest default[0]>", line 4, in lumberjack\n bright_side_of_life()\n', - ' File "<doctest default[0]>", line 7, in bright_side_of_life\n return tuple()[0]\n ~~~~~~~^^^\n'] + [' File "<doctest default[0]>", line 10, in <module>\n lumberjack()\n ^^^^^^^^^^^^\n', + ' File "<doctest default[0]>", line 4, in lumberjack\n bright_side_of_death()\n ^^^^^^^^^^^^^^^^^^^^^^\n', + ' File "<doctest default[0]>", line 7, in bright_side_of_death\n return tuple()[0]\n ~~~~~~~^^^\n'] *** tb_lineno: 10 diff --git a/Doc/library/turtle.rst b/Doc/library/turtle.rst index 5add61c759ea8e..17bf8829a9fed1 100644 --- a/Doc/library/turtle.rst +++ b/Doc/library/turtle.rst @@ -1279,7 +1279,7 @@ Appearance (direction of movement). .. doctest:: - :skipif: _tkinter is None or 'always; deprecated method' + :skipif: _tkinter is None >>> turtle.reset() >>> turtle.shape("circle") diff --git a/Doc/library/types.rst b/Doc/library/types.rst index cce0ad960edf97..e0e77dfbfe7ed2 100644 --- a/Doc/library/types.rst +++ b/Doc/library/types.rst @@ -417,12 +417,6 @@ Standard names are defined for the following types: .. versionadded:: 3.9 - .. describe:: hash(proxy) - - Return a hash of the underlying mapping. - - .. versionadded:: 3.12 - Additional Utility Classes and Functions ---------------------------------------- diff --git a/Doc/library/typing.rst b/Doc/library/typing.rst index 0939973cf24e62..7ddc84ac5e4518 100644 --- a/Doc/library/typing.rst +++ b/Doc/library/typing.rst @@ -78,14 +78,10 @@ annotations. These include: *Introducing* :data:`TypeVarTuple` * :pep:`647`: User-Defined Type Guards *Introducing* :data:`TypeGuard` -* :pep:`655`: Marking individual TypedDict items as required or potentially missing - *Introducing* :data:`Required` and :data:`NotRequired` * :pep:`673`: Self type *Introducing* :data:`Self` * :pep:`675`: Arbitrary Literal String Type *Introducing* :data:`LiteralString` -* :pep:`681`: Data Class Transforms - *Introducing* the :func:`@dataclass_transform<dataclass_transform>` decorator .. _type-aliases: @@ -683,7 +679,7 @@ These can be used as types in annotations and do not support ``[]``. from typing import Self class Foo: - def return_self(self) -> Self: + def returns_self(self) -> Self: ... return self @@ -696,7 +692,7 @@ These can be used as types in annotations and do not support ``[]``. Self = TypeVar("Self", bound="Foo") class Foo: - def return_self(self: Self) -> Self: + def returns_self(self: Self) -> Self: ... return self @@ -707,7 +703,7 @@ These can be used as types in annotations and do not support ``[]``. ... return self - You should use :data:`Self` as calls to ``SubclassOfFoo.return_self`` would have + You should use use :data:`Self` as calls to ``SubclassOfFoo.returns_self`` would have ``Foo`` as the return type and not ``SubclassOfFoo``. Other common use cases include: @@ -1026,18 +1022,6 @@ These can be used as types in annotations using ``[]``, each having a unique syn .. versionadded:: 3.8 -.. data:: Required - -.. data:: NotRequired - - Special typing constructs that mark individual keys of a :class:`TypedDict` - as either required or non-required respectively. - - For more information, see :class:`TypedDict` and - :pep:`655` ("Marking individual TypedDict items as required or potentially missing"). - - .. versionadded:: 3.11 - .. data:: Annotated A type, introduced in :pep:`593` (``Flexible function and variable @@ -1305,25 +1289,20 @@ These are not used in annotations. They are building blocks for creating generic T = TypeVar('T') Ts = TypeVarTuple('Ts') - def move_first_element_to_last(tup: tuple[T, *Ts]) -> tuple[*Ts, T]: - return (*tup[1:], tup[0]) + def remove_first_element(tup: tuple[T, *Ts]) -> tuple[*Ts]: + return tup[1:] # T is bound to int, Ts is bound to () - # Return value is (1,), which has type tuple[int] - move_first_element_to_last(tup=(1,)) + # Return value is (), which has type tuple[()] + remove_first_element(tup=(1,)) # T is bound to int, Ts is bound to (str,) - # Return value is ('spam', 1), which has type tuple[str, int] - move_first_element_to_last(tup=(1, 'spam')) + # Return value is ('spam',), which has type tuple[str] + remove_first_element(tup=(1, 'spam')) # T is bound to int, Ts is bound to (str, float) - # Return value is ('spam', 3.0, 1), which has type tuple[str, float, int] - move_first_element_to_last(tup=(1, 'spam', 3.0)) - - # This fails to type check (and fails at runtime) - # because tuple[()] is not compatible with tuple[T, *Ts] - # (at least one element is required) - move_first_element_to_last(tup=()) + # Return value is ('spam', 3.0), which has type tuple[str, float] + remove_first_element(tup=(1, 'spam', 3.0)) Note the use of the unpacking operator ``*`` in ``tuple[T, *Ts]``. Conceptually, you can think of ``Ts`` as a tuple of type variables @@ -1727,21 +1706,8 @@ These are not used in annotations. They are building blocks for declaring types. Point2D = TypedDict('Point2D', {'in': int, 'x-y': int}) By default, all keys must be present in a ``TypedDict``. It is possible to - mark individual keys as non-required using :data:`NotRequired`:: - - class Point2D(TypedDict): - x: int - y: int - label: NotRequired[str] - - # Alternative syntax - Point2D = TypedDict('Point2D', {'x': int, 'y': int, 'label': NotRequired[str]}) - - This means that a ``Point2D`` ``TypedDict`` can have the ``label`` - key omitted. - - It is also possible to mark all keys as non-required by default - by specifying a totality of ``False``:: + override this by specifying totality. + Usage:: class Point2D(TypedDict, total=False): x: int @@ -1755,21 +1721,6 @@ These are not used in annotations. They are building blocks for declaring types. ``True`` as the value of the ``total`` argument. ``True`` is the default, and makes all items defined in the class body required. - Individual keys of a ``total=False`` ``TypedDict`` can be marked as - required using :data:`Required`:: - - class Point2D(TypedDict, total=False): - x: Required[int] - y: Required[int] - label: str - - # Alternative syntax - Point2D = TypedDict('Point2D', { - 'x': Required[int], - 'y': Required[int], - 'label': str - }, total=False) - It is possible for a ``TypedDict`` type to inherit from one or more other ``TypedDict`` types using the class-based syntax. Usage:: @@ -1830,23 +1781,15 @@ These are not used in annotations. They are building blocks for declaring types. True .. attribute:: __required_keys__ - - .. versionadded:: 3.9 - .. attribute:: __optional_keys__ ``Point2D.__required_keys__`` and ``Point2D.__optional_keys__`` return :class:`frozenset` objects containing required and non-required keys, respectively. - - Keys marked with :data:`Required` will always appear in ``__required_keys__`` - and keys marked with :data:`NotRequired` will always appear in ``__optional_keys__``. - - For backwards compatibility with Python 3.10 and below, - it is also possible to use inheritance to declare both required and - non-required keys in the same ``TypedDict`` . This is done by declaring a - ``TypedDict`` with one value for the ``total`` argument and then - inheriting from it in another ``TypedDict`` with a different value for - ``total``:: + Currently the only way to declare both required and non-required keys in the + same ``TypedDict`` is mixed inheritance, declaring a ``TypedDict`` with one value + for the ``total`` argument and then inheriting it from another ``TypedDict`` with + a different value for ``total``. + Usage:: >>> class Point2D(TypedDict, total=False): ... x: int @@ -1860,16 +1803,10 @@ These are not used in annotations. They are building blocks for declaring types. >>> Point3D.__optional_keys__ == frozenset({'x', 'y'}) True - .. versionadded:: 3.9 - See :pep:`589` for more examples and detailed rules of using ``TypedDict``. .. versionadded:: 3.8 - .. versionchanged:: 3.11 - Added support for marking individual keys as :data:`Required` or :data:`NotRequired`. - See :pep:`655`. - .. versionchanged:: 3.11 Added support for generic ``TypedDict``\ s. @@ -2225,9 +2162,6 @@ Corresponding to other types in :mod:`collections.abc` An alias to :class:`collections.abc.Hashable`. - .. deprecated:: 3.12 - Use :class:`collections.abc.Hashable` directly instead. - .. class:: Reversible(Iterable[T_co]) A generic version of :class:`collections.abc.Reversible`. @@ -2240,9 +2174,6 @@ Corresponding to other types in :mod:`collections.abc` An alias to :class:`collections.abc.Sized`. - .. deprecated:: 3.12 - Use :class:`collections.abc.Sized` directly instead. - Asynchronous programming """""""""""""""""""""""" @@ -2546,17 +2477,7 @@ Functions and decorators For example, type checkers will assume these classes have ``__init__`` methods that accept ``id`` and ``name``. - The decorated class, metaclass, or function may accept the following bool - arguments which type checkers will assume have the same effect as they - would have on the - :func:`@dataclasses.dataclass<dataclasses.dataclass>` decorator: ``init``, - ``eq``, ``order``, ``unsafe_hash``, ``frozen``, ``match_args``, - ``kw_only``, and ``slots``. It must be possible for the value of these - arguments (``True`` or ``False``) to be statically evaluated. - - The arguments to the ``dataclass_transform`` decorator can be used to - customize the default behaviors of the decorated class, metaclass, or - function: + The arguments to this decorator can be used to customize this behavior: * ``eq_default`` indicates whether the ``eq`` parameter is assumed to be ``True`` or ``False`` if it is omitted by the caller. @@ -2569,28 +2490,6 @@ Functions and decorators * Arbitrary other keyword arguments are accepted in order to allow for possible future extensions. - Type checkers recognize the following optional arguments on field - specifiers: - - * ``init`` indicates whether the field should be included in the - synthesized ``__init__`` method. If unspecified, ``init`` defaults to - ``True``. - * ``default`` provides the default value for the field. - * ``default_factory`` provides a runtime callback that returns the - default value for the field. If neither ``default`` nor - ``default_factory`` are specified, the field is assumed to have no - default value and must be provided a value when the class is - instantiated. - * ``factory`` is an alias for ``default_factory``. - * ``kw_only`` indicates whether the field should be marked as - keyword-only. If ``True``, the field will be keyword-only. If - ``False``, it will not be keyword-only. If unspecified, the value of - the ``kw_only`` parameter on the object decorated with - ``dataclass_transform`` will be used, or if that is unspecified, the - value of ``kw_only_default`` on ``dataclass_transform`` will be used. - * ``alias`` provides an alternative name for the field. This alternative - name is used in the synthesized ``__init__`` method. - At runtime, this decorator records its arguments in the ``__dataclass_transform__`` attribute on the decorated object. It has no other runtime effect. @@ -2865,6 +2764,3 @@ convenience. This is subject to change, and not all deprecations are listed. +----------------------------------+---------------+-------------------+----------------+ | ``typing.Text`` | 3.11 | Undecided | :gh:`92332` | +----------------------------------+---------------+-------------------+----------------+ -| ``typing.Hashable`` and | 3.12 | Undecided | :gh:`94309` | -| ``typing.Sized`` | | | | -+----------------------------------+---------------+-------------------+----------------+ diff --git a/Doc/library/unicodedata.rst b/Doc/library/unicodedata.rst index 3a094f9c64d4a0..6276f6382a06ea 100644 --- a/Doc/library/unicodedata.rst +++ b/Doc/library/unicodedata.rst @@ -17,8 +17,8 @@ This module provides access to the Unicode Character Database (UCD) which defines character properties for all Unicode characters. The data contained in -this database is compiled from the `UCD version 15.0.0 -<https://www.unicode.org/Public/15.0.0/ucd>`_. +this database is compiled from the `UCD version 14.0.0 +<https://www.unicode.org/Public/14.0.0/ucd>`_. The module uses the same names and symbols as defined by Unicode Standard Annex #44, `"Unicode Character Database" @@ -175,6 +175,6 @@ Examples: .. rubric:: Footnotes -.. [#] https://www.unicode.org/Public/15.0.0/ucd/NameAliases.txt +.. [#] https://www.unicode.org/Public/14.0.0/ucd/NameAliases.txt -.. [#] https://www.unicode.org/Public/15.0.0/ucd/NamedSequences.txt +.. [#] https://www.unicode.org/Public/14.0.0/ucd/NamedSequences.txt diff --git a/Doc/library/unittest.mock.rst b/Doc/library/unittest.mock.rst index b768557e6075f6..acc0d67541ae82 100644 --- a/Doc/library/unittest.mock.rst +++ b/Doc/library/unittest.mock.rst @@ -1944,7 +1944,7 @@ Both patch_ and patch.object_ correctly patch and restore descriptors: class methods, static methods and properties. You should patch these on the *class* rather than an instance. They also work with *some* objects that proxy attribute access, like the `django settings object -<https://web.archive.org/web/20200603181648/http://www.voidspace.org.uk/python/weblog/arch_d7_2010_12_04.shtml#e1198>`_. +<http://www.voidspace.org.uk/python/weblog/arch_d7_2010_12_04.shtml#e1198>`_. MagicMock and magic method support diff --git a/Doc/library/unittest.rst b/Doc/library/unittest.rst index 38be6b82b492d4..e07a32b88b1c30 100644 --- a/Doc/library/unittest.rst +++ b/Doc/library/unittest.rst @@ -1150,8 +1150,8 @@ Test cases Example:: with self.assertLogs('foo', level='INFO') as cm: - logging.getLogger('foo').info('first message') - logging.getLogger('foo.bar').error('second message') + logging.getLogger('foo').info('first message') + logging.getLogger('foo.bar').error('second message') self.assertEqual(cm.output, ['INFO:foo:first message', 'ERROR:foo.bar:second message']) @@ -1261,6 +1261,9 @@ Test cases :meth:`.assertRegex`. .. versionadded:: 3.2 :meth:`.assertNotRegex`. + .. versionadded:: 3.5 + The name ``assertNotRegexpMatches`` is a deprecated alias + for :meth:`.assertNotRegex`. .. method:: assertCountEqual(first, second, msg=None) @@ -1657,6 +1660,40 @@ Test cases :mod:`unittest`-based test framework. +.. _deprecated-aliases: + +Deprecated aliases +################## + +For historical reasons, some of the :class:`TestCase` methods had one or more +aliases that are now deprecated. The following table lists the correct names +along with their deprecated aliases: + + ============================== ====================== ======================= + Method Name Deprecated alias Deprecated alias + ============================== ====================== ======================= + :meth:`.assertEqual` failUnlessEqual assertEquals + :meth:`.assertNotEqual` failIfEqual assertNotEquals + :meth:`.assertTrue` failUnless assert\_ + :meth:`.assertFalse` failIf + :meth:`.assertRaises` failUnlessRaises + :meth:`.assertAlmostEqual` failUnlessAlmostEqual assertAlmostEquals + :meth:`.assertNotAlmostEqual` failIfAlmostEqual assertNotAlmostEquals + :meth:`.assertRegex` assertRegexpMatches + :meth:`.assertNotRegex` assertNotRegexpMatches + :meth:`.assertRaisesRegex` assertRaisesRegexp + ============================== ====================== ======================= + + .. deprecated:: 3.1 + The fail* aliases listed in the second column have been deprecated. + .. deprecated:: 3.2 + The assert* aliases listed in the third column have been deprecated. + .. deprecated:: 3.2 + ``assertRegexpMatches`` and ``assertRaisesRegexp`` have been renamed to + :meth:`.assertRegex` and :meth:`.assertRaisesRegex`. + .. deprecated:: 3.5 + The ``assertNotRegexpMatches`` name is deprecated in favor of :meth:`.assertNotRegex`. + .. _testsuite-objects: Grouping tests @@ -1782,7 +1819,7 @@ Loading and running tests case is created for that method instead. - .. method:: loadTestsFromModule(module, *, pattern=None) + .. method:: loadTestsFromModule(module, pattern=None) Return a suite of all test cases contained in the given module. This method searches *module* for classes derived from :class:`TestCase` and @@ -1806,11 +1843,10 @@ Loading and running tests Support for ``load_tests`` added. .. versionchanged:: 3.5 - Support for a keyword-only argument *pattern* has been added. - - .. versionchanged:: 3.12 - The undocumented and unofficial *use_load_tests* parameter has been - removed. + The undocumented and unofficial *use_load_tests* default argument is + deprecated and ignored, although it is still accepted for backward + compatibility. The method also now accepts a keyword-only argument + *pattern* which is passed to ``load_tests`` as the third argument. .. method:: loadTestsFromName(name, module=None) @@ -2167,6 +2203,8 @@ Loading and running tests :class:`TextTestRunner`. .. versionadded:: 3.2 + This class was previously named ``_TextTestResult``. The old name still + exists as an alias but is deprecated. .. data:: defaultTestLoader @@ -2189,7 +2227,10 @@ Loading and running tests By default this runner shows :exc:`DeprecationWarning`, :exc:`PendingDeprecationWarning`, :exc:`ResourceWarning` and :exc:`ImportWarning` even if they are :ref:`ignored by default - <warning-ignored>`. This behavior can + <warning-ignored>`. Deprecation warnings caused by :ref:`deprecated unittest + methods <deprecated-aliases>` are also special-cased and, when the warning + filters are ``'default'`` or ``'always'``, they will appear only once + per-module, in order to avoid too many warning messages. This behavior can be overridden using Python's :option:`!-Wd` or :option:`!-Wa` options (see :ref:`Warning control <using-on-warnings>`) and leaving *warnings* to ``None``. diff --git a/Doc/library/urllib.request.rst b/Doc/library/urllib.request.rst index 59e1f2da828a83..491ef022a1fadc 100644 --- a/Doc/library/urllib.request.rst +++ b/Doc/library/urllib.request.rst @@ -21,7 +21,6 @@ authentication, redirections, cookies and more. The `Requests package <https://requests.readthedocs.io/en/master/>`_ is recommended for a higher-level HTTP client interface. -.. include:: ../includes/wasm-notavail.rst The :mod:`urllib.request` module defines the following functions: @@ -1280,7 +1279,7 @@ involved. For example, the :envvar:`http_proxy` environment variable is read to obtain the HTTP proxy's URL. This example replaces the default :class:`ProxyHandler` with one that uses -programmatically supplied proxy URLs, and adds proxy authorization support with +programmatically-supplied proxy URLs, and adds proxy authorization support with :class:`ProxyBasicAuthHandler`. :: proxy_handler = urllib.request.ProxyHandler({'http': 'http://www.example.com:3128/'}) diff --git a/Doc/library/uuid.rst b/Doc/library/uuid.rst index a71fe7abf5b547..ddfbbda279e35d 100644 --- a/Doc/library/uuid.rst +++ b/Doc/library/uuid.rst @@ -211,7 +211,7 @@ The :mod:`uuid` module defines the following namespace identifiers for use with .. data:: NAMESPACE_DNS - When this namespace is specified, the *name* string is a fully qualified domain + When this namespace is specified, the *name* string is a fully-qualified domain name. diff --git a/Doc/library/venv.rst b/Doc/library/venv.rst index 06810612acba54..b40bd4102c2593 100644 --- a/Doc/library/venv.rst +++ b/Doc/library/venv.rst @@ -29,7 +29,6 @@ See :pep:`405` for more information about Python virtual environments. `Python Packaging User Guide: Creating and using virtual environments <https://packaging.python.org/guides/installing-using-pip-and-virtual-environments/#creating-a-virtual-environment>`__ -.. include:: ../includes/wasm-notavail.rst Creating virtual environments ----------------------------- @@ -65,7 +64,7 @@ Creating virtual environments Python installation). When a virtual environment is active, any options that change the - installation path will be ignored from all ``setuptools`` configuration + installation path will be ignored from all :mod:`distutils` configuration files to prevent projects being inadvertently installed outside of the virtual environment. @@ -178,45 +177,6 @@ creation according to their needs, the :class:`EnvBuilder` class. ``clear=True``, contents of the environment directory will be cleared and then all necessary subdirectories will be recreated. - The returned context object is a :class:`types.SimpleNamespace` with the - following attributes: - - * ``env_dir`` - The location of the virtual environment. Used for - ``__VENV_DIR__`` in activation scripts (see :meth:`install_scripts`). - - * ``env_name`` - The name of the virtual environment. Used for - ``__VENV_NAME__`` in activation scripts (see :meth:`install_scripts`). - - * ``prompt`` - The prompt to be used by the activation scripts. Used for - ``__VENV_PROMPT__`` in activation scripts (see :meth:`install_scripts`). - - * ``executable`` - The underlying Python executable used by the virtual - environment. This takes into account the case where a virtual environment - is created from another virtual environment. - - * ``inc_path`` - The include path for the virtual environment. - - * ``lib_path`` - The purelib path for the virtual environment. - - * ``bin_path`` - The script path for the virtual environment. - - * ``bin_name`` - The name of the script path relative to the virtual - environment location. Used for ``__VENV_BIN_NAME__`` in activation - scripts (see :meth:`install_scripts`). - - * ``env_exe`` - The name of the Python interpreter in the virtual - environment. Used for ``__VENV_PYTHON__`` in activation scripts - (see :meth:`install_scripts`). - - * ``env_exec_cmd`` - The name of the Python interpreter, taking into - account filesystem redirections. This can be used to run Python in - the virtual environment. - - - .. versionchanged:: 3.12 - The attribute ``lib_path`` was added to the context, and the context - object was documented. - .. versionchanged:: 3.11 The *venv* :ref:`sysconfig installation scheme <installation_paths>` diff --git a/Doc/library/warnings.rst b/Doc/library/warnings.rst index 28579ce8df4a62..f7a1f70833b7f5 100644 --- a/Doc/library/warnings.rst +++ b/Doc/library/warnings.rst @@ -154,19 +154,14 @@ the disposition of the match. Each entry is a tuple of the form (*action*, +---------------+----------------------------------------------+ * *message* is a string containing a regular expression that the start of - the warning message must match, case-insensitively. In :option:`-W` and - :envvar:`PYTHONWARNINGS`, *message* is a literal string that the start of the - warning message must contain (case-insensitively), ignoring any whitespace at - the start or end of *message*. + the warning message must match. The expression is compiled to always be + case-insensitive. * *category* is a class (a subclass of :exc:`Warning`) of which the warning category must be a subclass in order to match. -* *module* is a string containing a regular expression that the start of the - fully qualified module name must match, case-sensitively. In :option:`-W` and - :envvar:`PYTHONWARNINGS`, *module* is a literal string that the - fully qualified module name must be equal to (case-sensitively), ignoring any - whitespace at the start or end of *module*. +* *module* is a string containing a regular expression that the module name must + match. The expression is compiled to be case-sensitive. * *lineno* is an integer that the line number where the warning occurred must match, or ``0`` to match all line numbers. @@ -212,7 +207,8 @@ Some examples:: error::ResourceWarning # Treat ResourceWarning messages as errors default::DeprecationWarning # Show DeprecationWarning messages ignore,default:::mymodule # Only report warnings triggered by "mymodule" - error:::mymodule # Convert warnings to errors in "mymodule" + error:::mymodule[.*] # Convert warnings to errors in "mymodule" + # and any subpackages of "mymodule" .. _default-warning-filter: diff --git a/Doc/library/webbrowser.rst b/Doc/library/webbrowser.rst index 734b6321e5a7e7..1dc59306164ecd 100644 --- a/Doc/library/webbrowser.rst +++ b/Doc/library/webbrowser.rst @@ -41,8 +41,6 @@ naturally, mutually exclusive. Usage example:: python -m webbrowser -t "https://www.python.org" -.. include:: ../includes/wasm-notavail.rst - The following exception is defined: diff --git a/Doc/library/winreg.rst b/Doc/library/winreg.rst index 4ab671817710dd..487856a3ac6c60 100644 --- a/Doc/library/winreg.rst +++ b/Doc/library/winreg.rst @@ -144,6 +144,12 @@ This module offers the following functions: Deletes the specified key. + .. note:: + The :func:`DeleteKeyEx` function is implemented with the RegDeleteKeyEx + Windows API function, which is specific to 64-bit versions of Windows. + See the `RegDeleteKeyEx documentation + <https://msdn.microsoft.com/en-us/library/ms724847%28VS.85%29.aspx>`__. + *key* is an already open key, or one of the predefined :ref:`HKEY_* constants <hkey-constants>`. @@ -153,10 +159,9 @@ This module offers the following functions: *reserved* is a reserved integer, and must be zero. The default is zero. - *access* is an integer that specifies an access mask that describes the - desired security access for the key. Default is :const:`KEY_WOW64_64KEY`. - On 32-bit Windows, the WOW64 constants are ignored. - See :ref:`Access Rights <access-rights>` for other allowed values. + *access* is an integer that specifies an access mask that describes the desired + security access for the key. Default is :const:`KEY_WOW64_64KEY`. See + :ref:`Access Rights <access-rights>` for other allowed values. *This method can not delete keys with subkeys.* @@ -653,12 +658,13 @@ For more information, see `Accessing an Alternate Registry View .. data:: KEY_WOW64_64KEY Indicates that an application on 64-bit Windows should operate on - the 64-bit registry view. On 32-bit Windows, this constant is ignored. + the 64-bit registry view. .. data:: KEY_WOW64_32KEY Indicates that an application on 64-bit Windows should operate on - the 32-bit registry view. On 32-bit Windows, this constant is ignored. + the 32-bit registry view. + .. _value-types: diff --git a/Doc/library/wsgiref.rst b/Doc/library/wsgiref.rst index 06223e667a450a..6a2d47891b4733 100644 --- a/Doc/library/wsgiref.rst +++ b/Doc/library/wsgiref.rst @@ -333,7 +333,7 @@ request. (E.g., using the :func:`shift_path_info` function from .. method:: WSGIServer.get_app() - Returns the currently set application callable. + Returns the currently-set application callable. Normally, however, you do not need to use these additional methods, as :meth:`set_app` is normally called by :func:`make_server`, and the @@ -642,7 +642,7 @@ input, output, and error streams. .. method:: BaseHandler.setup_environ() - Set the :attr:`environ` attribute to a fully populated WSGI environment. The + Set the :attr:`environ` attribute to a fully-populated WSGI environment. The default implementation uses all of the above methods and attributes, plus the :meth:`get_stdin`, :meth:`get_stderr`, and :meth:`add_cgi_vars` methods and the :attr:`wsgi_file_wrapper` attribute. It also inserts a ``SERVER_SOFTWARE`` key diff --git a/Doc/library/xml.dom.minidom.rst b/Doc/library/xml.dom.minidom.rst index 82e5d6aea2310e..20984b98b1778c 100644 --- a/Doc/library/xml.dom.minidom.rst +++ b/Doc/library/xml.dom.minidom.rst @@ -95,7 +95,7 @@ document: the one that holds all others. Here is an example program:: When you are finished with a DOM tree, you may optionally call the :meth:`unlink` method to encourage early cleanup of the now-unneeded objects. :meth:`unlink` is an :mod:`xml.dom.minidom`\ -specific -extension to the DOM API that renders the node and its descendants +extension to the DOM API that renders the node and its descendants are essentially useless. Otherwise, Python's garbage collector will eventually take care of the objects in the tree. @@ -180,7 +180,7 @@ module documentation. This section lists the differences between the API and .. versionchanged:: 3.9 The *standalone* parameter was added. -.. method:: Node.toprettyxml(indent="\t", newl="\n", encoding=None, \ +.. method:: Node.toprettyxml(indent="\\t", newl="\\n", encoding=None, \ standalone=None) Return a pretty-printed version of the document. *indent* specifies the diff --git a/Doc/library/xml.rst b/Doc/library/xml.rst index 20b0905bb1093a..e3b35162961147 100644 --- a/Doc/library/xml.rst +++ b/Doc/library/xml.rst @@ -95,7 +95,7 @@ quadratic blowup entity expansion entity expansion, too. Instead of nested entities it repeats one large entity with a couple of thousand chars over and over again. The attack isn't as efficient as the exponential case but it avoids triggering parser countermeasures - that forbid deeply nested entities. + that forbid deeply-nested entities. external entity expansion Entity declarations can contain more than just text for replacement. They can diff --git a/Doc/library/xmlrpc.client.rst b/Doc/library/xmlrpc.client.rst index 2dcf3984cf42f2..8d9db53ef1f0da 100644 --- a/Doc/library/xmlrpc.client.rst +++ b/Doc/library/xmlrpc.client.rst @@ -32,8 +32,6 @@ between conformable Python objects and XML on the wire. For HTTPS URIs, :mod:`xmlrpc.client` now performs all the necessary certificate and hostname checks by default. -.. include:: ../includes/wasm-notavail.rst - .. class:: ServerProxy(uri, transport=None, encoding=None, verbose=False, \ allow_none=False, use_datetime=False, \ use_builtin_types=False, *, headers=(), context=None) @@ -49,7 +47,7 @@ between conformable Python objects and XML on the wire. The following parameters govern the use of the returned proxy instance. If *allow_none* is true, the Python constant ``None`` will be translated into XML; the default behaviour is for ``None`` to raise a :exc:`TypeError`. This is - a commonly used extension to the XML-RPC specification, but isn't supported by + a commonly-used extension to the XML-RPC specification, but isn't supported by all clients and servers; see `http://ontosys.com/xml-rpc/extensions.php <https://web.archive.org/web/20130120074804/http://ontosys.com/xml-rpc/extensions.php>`_ for a description. @@ -156,12 +154,12 @@ between conformable Python objects and XML on the wire. Added support of unmarshalling additional types used by Apache XML-RPC implementation for numerics: ``i1``, ``i2``, ``i8``, ``biginteger``, ``float`` and ``bigdecimal``. - See https://ws.apache.org/xmlrpc/types.html for a description. + See http://ws.apache.org/xmlrpc/types.html for a description. .. seealso:: - `XML-RPC HOWTO <https://www.tldp.org/HOWTO/XML-RPC-HOWTO/index.html>`_ + `XML-RPC HOWTO <http://www.tldp.org/HOWTO/XML-RPC-HOWTO/index.html>`_ A good description of XML-RPC operation and client software in several languages. Contains pretty much everything an XML-RPC client developer needs to know. diff --git a/Doc/library/xmlrpc.server.rst b/Doc/library/xmlrpc.server.rst index 9778a859da1fbf..7d561e2303f898 100644 --- a/Doc/library/xmlrpc.server.rst +++ b/Doc/library/xmlrpc.server.rst @@ -23,7 +23,6 @@ servers written in Python. Servers can either be free standing, using constructed data. If you need to parse untrusted or unauthenticated data see :ref:`xml-vulnerabilities`. -.. include:: ../includes/wasm-notavail.rst .. class:: SimpleXMLRPCServer(addr, requestHandler=SimpleXMLRPCRequestHandler,\ logRequests=True, allow_none=False, encoding=None,\ diff --git a/Doc/library/zlib.rst b/Doc/library/zlib.rst index ac179722dee2be..30eb99817a8590 100644 --- a/Doc/library/zlib.rst +++ b/Doc/library/zlib.rst @@ -265,7 +265,7 @@ Decompression objects support the following methods and attributes: A boolean indicating whether the end of the compressed data stream has been reached. - This makes it possible to distinguish between a properly formed compressed + This makes it possible to distinguish between a properly-formed compressed stream, and an incomplete or truncated one. .. versionadded:: 3.3 diff --git a/Doc/library/zoneinfo.rst b/Doc/library/zoneinfo.rst index 2f1879dc056a88..1b2ba2af2ae6fb 100644 --- a/Doc/library/zoneinfo.rst +++ b/Doc/library/zoneinfo.rst @@ -27,7 +27,6 @@ first-party `tzdata`_ package available on PyPI. First-party package maintained by the CPython core developers to supply time zone data via PyPI. -.. include:: ../includes/wasm-notavail.rst Using ``ZoneInfo`` ------------------ diff --git a/Doc/license.rst b/Doc/license.rst index 00691b30ba6d3e..e0ca5f2662dc1c 100644 --- a/Doc/license.rst +++ b/Doc/license.rst @@ -353,7 +353,7 @@ Sockets The :mod:`socket` module uses the functions, :func:`getaddrinfo`, and :func:`getnameinfo`, which are coded in separate source files from the WIDE -Project, https://www.wide.ad.jp/. :: +Project, http://www.wide.ad.jp/. :: Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. All rights reserved. @@ -626,9 +626,9 @@ strtod and dtoa The file :file:`Python/dtoa.c`, which supplies C functions dtoa and strtod for conversion of C doubles to and from strings, is derived from the file of the same name by David M. Gay, currently available -from https://web.archive.org/web/20220517033456/http://www.netlib.org/fp/dtoa.c. -The original file, as retrieved on March 16, 2009, contains the following -copyright and licensing notice:: +from http://www.netlib.org/fp/. The original file, as retrieved on +March 16, 2009, contains the following copyright and licensing +notice:: /**************************************************************** * diff --git a/Doc/reference/compound_stmts.rst b/Doc/reference/compound_stmts.rst index 751c7c2dbcf257..688407195f05dd 100644 --- a/Doc/reference/compound_stmts.rst +++ b/Doc/reference/compound_stmts.rst @@ -1122,7 +1122,7 @@ subject value: These classes accept a single positional argument, and the pattern there is matched against the whole object rather than an attribute. For example ``int(0|1)`` matches - the value ``0``, but not the value ``0.0``. + the value ``0``, but not the values ``0.0`` or ``False``. In simple terms ``CLS(P1, attr=P2)`` matches only if the following happens: @@ -1495,7 +1495,7 @@ Is semantically equivalent to:: else: SUITE2 -See also :meth:`~object.__aiter__` and :meth:`~object.__anext__` for details. +See also :meth:`__aiter__` and :meth:`__anext__` for details. It is a :exc:`SyntaxError` to use an ``async for`` statement outside the body of a coroutine function. @@ -1537,7 +1537,7 @@ is semantically equivalent to:: if not hit_except: await aexit(manager, None, None, None) -See also :meth:`~object.__aenter__` and :meth:`~object.__aexit__` for details. +See also :meth:`__aenter__` and :meth:`__aexit__` for details. It is a :exc:`SyntaxError` to use an ``async with`` statement outside the body of a coroutine function. diff --git a/Doc/reference/datamodel.rst b/Doc/reference/datamodel.rst index 758f3aef3ee34d..8ac9a8c0566bf7 100644 --- a/Doc/reference/datamodel.rst +++ b/Doc/reference/datamodel.rst @@ -1270,7 +1270,7 @@ Basic customization Typical implementations create a new instance of the class by invoking the superclass's :meth:`__new__` method using ``super().__new__(cls[, ...])`` - with appropriate arguments and then modifying the newly created instance + with appropriate arguments and then modifying the newly-created instance as necessary before returning it. If :meth:`__new__` is invoked during object construction and it returns an @@ -1560,7 +1560,7 @@ Basic customization predictable between repeated invocations of Python. This is intended to provide protection against a denial-of-service caused - by carefully chosen inputs that exploit the worst case performance of a + by carefully-chosen inputs that exploit the worst case performance of a dict insertion, O(n\ :sup:`2`) complexity. See http://www.ocert.org/advisories/ocert-2011-003.html for details. diff --git a/Doc/reference/expressions.rst b/Doc/reference/expressions.rst index 6bf21a7dde49a0..1f461e3fed8e57 100644 --- a/Doc/reference/expressions.rst +++ b/Doc/reference/expressions.rst @@ -573,7 +573,7 @@ is already executing raises a :exc:`ValueError` exception. In typical use, this is called with a single exception instance similar to the way the :keyword:`raise` keyword is used. - For backwards compatibility, however, the second signature is + For backwards compatability, however, the second signature is supported, following a convention from older versions of Python. The *type* argument should be an exception class, and *value* should be an exception instance. If the *value* is not provided, the diff --git a/Doc/reference/import.rst b/Doc/reference/import.rst index 507f2b3763cae4..3a41403c6476b4 100644 --- a/Doc/reference/import.rst +++ b/Doc/reference/import.rst @@ -541,7 +541,7 @@ the module. .. attribute:: __name__ - The ``__name__`` attribute must be set to the fully qualified name of + The ``__name__`` attribute must be set to the fully-qualified name of the module. This name is used to uniquely identify the module in the import system. @@ -676,10 +676,22 @@ Here are the exact rules used: * Otherwise, just use the module's ``__name__`` in the repr. -.. versionchanged:: 3.12 - Use of :meth:`module_repr`, having been deprecated since Python 3.4, was - removed in Python 3.12 and is no longer called during the resolution of a - module's repr. +.. versionchanged:: 3.4 + Use of :meth:`loader.module_repr() <importlib.abc.Loader.module_repr>` + has been deprecated and the module spec is now used by the import + machinery to generate a module repr. + + For backward compatibility with Python 3.3, the module repr will be + generated by calling the loader's + :meth:`~importlib.abc.Loader.module_repr` method, if defined, before + trying either approach described above. However, the method is deprecated. + +.. versionchanged:: 3.10 + + Calling :meth:`~importlib.abc.Loader.module_repr` now occurs after trying to + use a module's ``__spec__`` attribute but before falling back on + ``__file__``. Use of :meth:`~importlib.abc.Loader.module_repr` is slated to + stop in Python 3.12. .. _pyc-invalidation: @@ -788,8 +800,10 @@ environment variable and various other installation- and implementation-specific defaults. Entries in :data:`sys.path` can name directories on the file system, zip files, and potentially other "locations" (see the :mod:`site` module) that should be searched for modules, such as -URLs, or database queries. Only strings should be present on -:data:`sys.path`; all other data types are ignored. +URLs, or database queries. Only strings and bytes should be present on +:data:`sys.path`; all other data types are ignored. The encoding of bytes +entries is determined by the individual :term:`path entry finders <path entry +finder>`. The :term:`path based finder` is a :term:`meta path finder`, so the import machinery begins the :term:`import path` search by calling the path diff --git a/Doc/reference/introduction.rst b/Doc/reference/introduction.rst index 914a11556c94e6..72e874ee98e466 100644 --- a/Doc/reference/introduction.rst +++ b/Doc/reference/introduction.rst @@ -54,7 +54,7 @@ Jython Python implemented in Java. This implementation can be used as a scripting language for Java applications, or can be used to create applications using the Java class libraries. It is also often used to create tests for Java libraries. - More information can be found at `the Jython website <https://www.jython.org/>`_. + More information can be found at `the Jython website <http://www.jython.org/>`_. Python for .NET This implementation actually uses the CPython implementation, but is a managed @@ -66,7 +66,7 @@ IronPython An alternate Python for .NET. Unlike Python.NET, this is a complete Python implementation that generates IL, and compiles Python code directly to .NET assemblies. It was created by Jim Hugunin, the original creator of Jython. For - more information, see `the IronPython website <https://ironpython.net/>`_. + more information, see `the IronPython website <http://ironpython.net/>`_. PyPy An implementation of Python written completely in Python. It supports several @@ -74,7 +74,7 @@ PyPy and a Just in Time compiler. One of the goals of the project is to encourage experimentation with the language itself by making it easier to modify the interpreter (since it is written in Python). Additional information is - available on `the PyPy project's home page <https://pypy.org/>`_. + available on `the PyPy project's home page <http://pypy.org/>`_. Each of these implementations varies in some way from the language as documented in this manual, or introduces specific information beyond what's covered in the diff --git a/Doc/reference/lexical_analysis.rst b/Doc/reference/lexical_analysis.rst index 4ab6e90a623449..1cf0a5b15cbbb9 100644 --- a/Doc/reference/lexical_analysis.rst +++ b/Doc/reference/lexical_analysis.rst @@ -315,7 +315,7 @@ The Unicode category codes mentioned above stand for: * *Nd* - decimal numbers * *Pc* - connector punctuations * *Other_ID_Start* - explicit list of characters in `PropList.txt - <https://www.unicode.org/Public/15.0.0/ucd/PropList.txt>`_ to support backwards + <https://www.unicode.org/Public/14.0.0/ucd/PropList.txt>`_ to support backwards compatibility * *Other_ID_Continue* - likewise @@ -323,8 +323,8 @@ All identifiers are converted into the normal form NFKC while parsing; compariso of identifiers is based on NFKC. A non-normative HTML file listing all valid identifier characters for Unicode -15.0.0 can be found at -https://www.unicode.org/Public/15.0.0/ucd/DerivedCoreProperties.txt +14.0.0 can be found at +https://www.unicode.org/Public/14.0.0/ucd/DerivedCoreProperties.txt .. _keywords: @@ -552,7 +552,7 @@ Standard C. The recognized escape sequences are: +-----------------+---------------------------------+-------+ | Escape Sequence | Meaning | Notes | +=================+=================================+=======+ -| ``\``\ <newline>| Backslash and newline ignored | \(1) | +| ``\newline`` | Backslash and newline ignored | | +-----------------+---------------------------------+-------+ | ``\\`` | Backslash (``\``) | | +-----------------+---------------------------------+-------+ @@ -574,10 +574,10 @@ Standard C. The recognized escape sequences are: +-----------------+---------------------------------+-------+ | ``\v`` | ASCII Vertical Tab (VT) | | +-----------------+---------------------------------+-------+ -| ``\ooo`` | Character with octal value | (2,4) | +| ``\ooo`` | Character with octal value | (1,3) | | | *ooo* | | +-----------------+---------------------------------+-------+ -| ``\xhh`` | Character with hex value *hh* | (3,4) | +| ``\xhh`` | Character with hex value *hh* | (2,3) | +-----------------+---------------------------------+-------+ Escape sequences only recognized in string literals are: @@ -585,30 +585,19 @@ Escape sequences only recognized in string literals are: +-----------------+---------------------------------+-------+ | Escape Sequence | Meaning | Notes | +=================+=================================+=======+ -| ``\N{name}`` | Character named *name* in the | \(5) | +| ``\N{name}`` | Character named *name* in the | \(4) | | | Unicode database | | +-----------------+---------------------------------+-------+ -| ``\uxxxx`` | Character with 16-bit hex value | \(6) | +| ``\uxxxx`` | Character with 16-bit hex value | \(5) | | | *xxxx* | | +-----------------+---------------------------------+-------+ -| ``\Uxxxxxxxx`` | Character with 32-bit hex value | \(7) | +| ``\Uxxxxxxxx`` | Character with 32-bit hex value | \(6) | | | *xxxxxxxx* | | +-----------------+---------------------------------+-------+ Notes: (1) - A backslash can be added at the end of a line to ignore the newline:: - - >>> 'This string will not include \ - ... backslashes or newline characters.' - 'This string will not include backslashes or newline characters.' - - The same result can be achieved using :ref:`triple-quoted strings <strings>`, - or parentheses and :ref:`string literal concatenation <string-concatenation>`. - - -(2) As in Standard C, up to three octal digits are accepted. .. versionchanged:: 3.11 @@ -616,22 +605,22 @@ Notes: In a future Python version they will be a :exc:`SyntaxWarning` and eventually a :exc:`SyntaxError`. -(3) +(2) Unlike in Standard C, exactly two hex digits are required. -(4) +(3) In a bytes literal, hexadecimal and octal escapes denote the byte with the given value. In a string literal, these escapes denote a Unicode character with the given value. -(5) +(4) .. versionchanged:: 3.3 Support for name aliases [#]_ has been added. -(6) +(5) Exactly four hex digits are required. -(7) +(6) Any Unicode character can be encoded this way. Exactly eight hex digits are required. @@ -768,7 +757,7 @@ the final value of the whole string. Top-level format specifiers may include nested replacement fields. These nested fields may include their own conversion fields and :ref:`format specifiers -<formatspec>`, but may not include more deeply nested replacement fields. The +<formatspec>`, but may not include more deeply-nested replacement fields. The :ref:`format specifier mini-language <formatspec>` is the same as that used by the :meth:`str.format` method. @@ -1013,4 +1002,4 @@ occurrence outside string literals and comments is an unconditional error: .. rubric:: Footnotes -.. [#] https://www.unicode.org/Public/15.0.0/ucd/NameAliases.txt +.. [#] https://www.unicode.org/Public/11.0.0/ucd/NameAliases.txt diff --git a/Doc/tools/extensions/asdl_highlight.py b/Doc/tools/extensions/asdl_highlight.py index 42863a4b3bcd6a..b1989e53957072 100644 --- a/Doc/tools/extensions/asdl_highlight.py +++ b/Doc/tools/extensions/asdl_highlight.py @@ -1,3 +1,4 @@ +import os import sys from pathlib import Path @@ -5,7 +6,7 @@ sys.path.append(str(CPYTHON_ROOT / "Parser")) from pygments.lexer import RegexLexer, bygroups, include, words -from pygments.token import (Comment, Keyword, Name, Operator, +from pygments.token import (Comment, Generic, Keyword, Name, Operator, Punctuation, Text) from asdl import builtin_types diff --git a/Doc/tools/extensions/peg_highlight.py b/Doc/tools/extensions/peg_highlight.py index 4bdc2ee1861334..27f54cdf593c87 100644 --- a/Doc/tools/extensions/peg_highlight.py +++ b/Doc/tools/extensions/peg_highlight.py @@ -1,5 +1,5 @@ from pygments.lexer import RegexLexer, bygroups, include -from pygments.token import Comment, Keyword, Name, Operator, Punctuation, Text +from pygments.token import Comment, Generic, Keyword, Name, Operator, Punctuation, Text from sphinx.highlighting import lexers diff --git a/Doc/tools/extensions/pyspecific.py b/Doc/tools/extensions/pyspecific.py index da15abdf637260..2e122b5607936e 100644 --- a/Doc/tools/extensions/pyspecific.py +++ b/Doc/tools/extensions/pyspecific.py @@ -30,6 +30,7 @@ from sphinx.util import status_iterator, logging from sphinx.util.nodes import split_explicit_title from sphinx.writers.text import TextWriter, TextTranslator +from sphinx.writers.latex import LaTeXTranslator try: from sphinx.domains.python import PyFunction, PyMethod @@ -134,22 +135,11 @@ def run(self): class Availability(Directive): - has_content = True + has_content = False required_arguments = 1 optional_arguments = 0 final_argument_whitespace = True - # known platform, libc, and threading implementations - known_platforms = frozenset({ - "AIX", "Android", "BSD", "DragonFlyBSD", "Emscripten", "FreeBSD", - "Linux", "NetBSD", "OpenBSD", "POSIX", "Solaris", "Unix", "VxWorks", - "WASI", "Windows", "macOS", - # libc - "BSD libc", "glibc", "musl", - # POSIX platforms with pthreads - "pthreads", - }) - def run(self): availability_ref = ':ref:`Availability <availability>`: ' pnode = nodes.paragraph(availability_ref + self.arguments[0], @@ -158,51 +148,8 @@ def run(self): pnode.extend(n + m) n, m = self.state.inline_text(self.arguments[0], self.lineno) pnode.extend(n + m) - if self.content: - self.state.nested_parse(self.content, self.content_offset, pnode) - - self.parse_platforms() - return [pnode] - def parse_platforms(self): - """Parse platform information from arguments - - Arguments is a comma-separated string of platforms. A platform may - be prefixed with "not " to indicate that a feature is not available. - - Example:: - - .. availability:: Windows, Linux >= 4.2, not Emscripten, not WASI - - Arguments like "Linux >= 3.17 with glibc >= 2.27" are currently not - parsed into separate tokens. - """ - platforms = {} - for arg in self.arguments[0].rstrip(".").split(","): - arg = arg.strip() - platform, _, version = arg.partition(" >= ") - if platform.startswith("not "): - version = False - platform = platform[4:] - elif not version: - version = True - platforms[platform] = version - - unknown = set(platforms).difference(self.known_platforms) - if unknown: - cls = type(self) - logger = logging.getLogger(cls.__qualname__) - logger.warn( - f"Unknown platform(s) or syntax '{' '.join(sorted(unknown))}' " - f"in '.. availability:: {self.arguments[0]}', see " - f"{__file__}:{cls.__qualname__}.known_platforms for a set " - "known platforms." - ) - - return platforms - - # Support for documenting audit event @@ -471,7 +418,12 @@ def run(self): translatable=False) node.append(para) env = self.state.document.settings.env - env.get_domain('changeset').note_changeset(node) + # deprecated pre-Sphinx-2 method + if hasattr(env, 'note_versionchange'): + env.note_versionchange('deprecated', version[0], node, self.lineno) + # new method + else: + env.get_domain('changeset').note_changeset(node) return [node] + messages diff --git a/Doc/tools/extensions/suspicious.py b/Doc/tools/extensions/suspicious.py index 2d581a8a6c3db6..c3de4d79c83f87 100644 --- a/Doc/tools/extensions/suspicious.py +++ b/Doc/tools/extensions/suspicious.py @@ -44,6 +44,7 @@ import os import re import csv +import sys from docutils import nodes from sphinx.builders import Builder @@ -54,7 +55,9 @@ :[a-zA-Z][a-zA-Z0-9]+| # :foo `| # ` (seldom used by itself) (?<!\.)\.\.[ \t]*\w+: # .. foo: (but NOT ... else:) - ''', re.VERBOSE).finditer + ''', re.UNICODE | re.VERBOSE).finditer + +py3 = sys.version_info >= (3, 0) class Rule: @@ -149,15 +152,32 @@ def is_ignored(self, line, lineno, issue): def report_issue(self, text, lineno, issue): self.any_issue = True self.write_log_entry(lineno, issue, text) - self.logger.warning('[%s:%d] "%s" found in "%-.120s"' % + if py3: + self.logger.warning('[%s:%d] "%s" found in "%-.120s"' % (self.docname, lineno, issue, text)) + else: + self.logger.warning( + '[%s:%d] "%s" found in "%-.120s"' % ( + self.docname.encode(sys.getdefaultencoding(),'replace'), + lineno, + issue.encode(sys.getdefaultencoding(),'replace'), + text.strip().encode(sys.getdefaultencoding(),'replace'))) self.app.statuscode = 1 def write_log_entry(self, lineno, issue, text): - f = open(self.log_file_name, 'a') - writer = csv.writer(f, dialect) - writer.writerow([self.docname, lineno, issue, text.strip()]) - f.close() + if py3: + f = open(self.log_file_name, 'a') + writer = csv.writer(f, dialect) + writer.writerow([self.docname, lineno, issue, text.strip()]) + f.close() + else: + f = open(self.log_file_name, 'ab') + writer = csv.writer(f, dialect) + writer.writerow([self.docname.encode('utf-8'), + lineno, + issue.encode('utf-8'), + text.strip().encode('utf-8')]) + f.close() def load_rules(self, filename): """Load database of previously ignored issues. @@ -168,7 +188,10 @@ def load_rules(self, filename): self.logger.info("loading ignore rules... ", nonl=1) self.rules = rules = [] try: - f = open(filename, 'r') + if py3: + f = open(filename, 'r') + else: + f = open(filename, 'rb') except IOError: return for i, row in enumerate(csv.reader(f)): @@ -180,6 +203,10 @@ def load_rules(self, filename): lineno = int(lineno) else: lineno = None + if not py3: + docname = docname.decode('utf-8') + issue = issue.decode('utf-8') + text = text.decode('utf-8') rule = Rule(docname, lineno, issue, text) rules.append(rule) f.close() diff --git a/Doc/tools/rstlint.py b/Doc/tools/rstlint.py index 4ea68ef3b030c8..d1c53dcb1a698e 100644 --- a/Doc/tools/rstlint.py +++ b/Doc/tools/rstlint.py @@ -130,7 +130,7 @@ # Find role glued with another word like: # the:c:func:`PyThreadState_LeaveTracing` function. -# instead of: +# instad of: # the :c:func:`PyThreadState_LeaveTracing` function. role_glued_with_word = re.compile(r"[a-zA-Z]%s" % all_roles) diff --git a/Doc/tools/susp-ignored.csv b/Doc/tools/susp-ignored.csv index 0dba0744b5fe4b..932c3800c9fa19 100644 --- a/Doc/tools/susp-ignored.csv +++ b/Doc/tools/susp-ignored.csv @@ -172,8 +172,6 @@ library/itertools,,:step,elements from seq[start:stop:step] library/itertools,,::,kernel = tuple(kernel)[::-1] library/itertools,,:stop,elements from seq[start:stop:step] library/logging.handlers,,:port,host:port -library/logging,,:root,WARNING:root:Watch out! -library/logging,,:Watch,WARNING:root:Watch out! library/mmap,,:i2,obj[i1:i2] library/multiprocessing,,`,# Add more tasks using `put()` library/multiprocessing,,:queue,">>> QueueManager.register('get_queue', callable=lambda:queue)" @@ -396,5 +394,3 @@ library/typing,,`,"assert_type(name, str) # OK, inferred type of `name` is `str library/typing,,`,# after which we hope the inferred type will be `int` whatsnew/changelog,,:company,-V:company/tag library/typing,,`,# are located in the `typing_extensions` backports package. -library/dis,490,:TOS,TOS = TOS2[TOS1:TOS] -library/dis,497,:TOS,TOS2[TOS1:TOS] = TOS3 diff --git a/Doc/tools/templates/download.html b/Doc/tools/templates/download.html index 7920e0619f9337..2456625043416c 100644 --- a/Doc/tools/templates/download.html +++ b/Doc/tools/templates/download.html @@ -3,10 +3,6 @@ {% if daily is defined %} {% set dlbase = pathto('archives', 1) %} {% else %} - {# - The link below returns HTTP 404 until the first related alpha release. - This is expected; use daily documentation builds for CPython development. - #} {% set dlbase = 'https://docs.python.org/ftp/python/doc/' + release %} {% endif %} diff --git a/Doc/tutorial/classes.rst b/Doc/tutorial/classes.rst index f27abe48b2d4ed..58b06eb5f25356 100644 --- a/Doc/tutorial/classes.rst +++ b/Doc/tutorial/classes.rst @@ -297,7 +297,7 @@ initial state. Therefore a class may define a special method named self.data = [] When a class defines an :meth:`__init__` method, class instantiation -automatically invokes :meth:`__init__` for the newly created class instance. So +automatically invokes :meth:`__init__` for the newly-created class instance. So in this example, a new, initialized instance can be obtained by:: x = MyClass() diff --git a/Doc/tutorial/controlflow.rst b/Doc/tutorial/controlflow.rst index 99a77e7addd774..f6e013b23e7e58 100644 --- a/Doc/tutorial/controlflow.rst +++ b/Doc/tutorial/controlflow.rst @@ -253,10 +253,8 @@ at a more abstract level. The :keyword:`!pass` is silently ignored:: A :keyword:`match` statement takes an expression and compares its value to successive patterns given as one or more case blocks. This is superficially similar to a switch statement in C, Java or JavaScript (and many -other languages), but it's more similar to pattern matching in -languages like Rust or Haskell. Only the first pattern that matches -gets executed and it can also extract components (sequence elements -or object attributes) from the value into variables. +other languages), but it can also extract components (sequence elements or +object attributes) from the value into variables. The simplest form compares a subject value against one or more literals:: diff --git a/Doc/tutorial/datastructures.rst b/Doc/tutorial/datastructures.rst index 12b00be3793e14..f847ee325e0d79 100644 --- a/Doc/tutorial/datastructures.rst +++ b/Doc/tutorial/datastructures.rst @@ -106,7 +106,7 @@ An example that uses most of the list methods:: 0 >>> fruits.index('banana') 3 - >>> fruits.index('banana', 4) # Find next banana starting at position 4 + >>> fruits.index('banana', 4) # Find next banana starting a position 4 6 >>> fruits.reverse() >>> fruits @@ -268,10 +268,10 @@ it must be parenthesized. :: [(0, 0), (1, 1), (2, 4), (3, 9), (4, 16), (5, 25)] >>> # the tuple must be parenthesized, otherwise an error is raised >>> [x, x**2 for x in range(6)] - File "<stdin>", line 1 + File "<stdin>", line 1, in <module> [x, x**2 for x in range(6)] - ^^^^^^^ - SyntaxError: did you forget parentheses around the comprehension target? + ^ + SyntaxError: invalid syntax >>> # flatten a list using a listcomp with two 'for' >>> vec = [[1,2,3], [4,5,6], [7,8,9]] >>> [num for elem in vec for num in elem] diff --git a/Doc/tutorial/inputoutput.rst b/Doc/tutorial/inputoutput.rst index d3414005a53435..b50063654e2628 100644 --- a/Doc/tutorial/inputoutput.rst +++ b/Doc/tutorial/inputoutput.rst @@ -166,7 +166,7 @@ are referred to by using the name of the argument. :: Positional and keyword arguments can be arbitrarily combined:: >>> print('The story of {0}, {1}, and {other}.'.format('Bill', 'Manfred', - ... other='Georg')) + other='Georg')) The story of Bill, Manfred, and Georg. If you have a really long format string that you don't want to split up, it @@ -179,7 +179,7 @@ square brackets ``'[]'`` to access the keys. :: ... 'Dcab: {0[Dcab]:d}'.format(table)) Jack: 4098; Sjoerd: 4127; Dcab: 8637678 -This could also be done by passing the ``table`` dictionary as keyword arguments with the ``**`` +This could also be done by passing the table as keyword arguments with the '**' notation. :: >>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 8637678} @@ -189,7 +189,7 @@ notation. :: This is particularly useful in combination with the built-in function :func:`vars`, which returns a dictionary containing all local variables. -As an example, the following lines produce a tidily aligned +As an example, the following lines produce a tidily-aligned set of columns giving integers and their squares and cubes:: >>> for x in range(1, 11): diff --git a/Doc/tutorial/modules.rst b/Doc/tutorial/modules.rst index ad70d92994af49..d6f2464ae0829c 100644 --- a/Doc/tutorial/modules.rst +++ b/Doc/tutorial/modules.rst @@ -47,9 +47,8 @@ command:: >>> import fibo -This does not add the names of the functions defined in ``fibo`` directly to -the current :term:`namespace` (see :ref:`tut-scopes` for more details); -it only adds the module name ``fibo`` there. Using +This does not enter the names of the functions defined in ``fibo`` directly in +the current symbol table; it only enters the module name ``fibo`` there. Using the module name you can access the functions:: >>> fibo.fib(1000) @@ -76,8 +75,8 @@ These statements are intended to initialize the module. They are executed only the *first* time the module name is encountered in an import statement. [#]_ (They are also run if the file is executed as a script.) -Each module has its own private namespace, which is used as the global namespace -by all functions defined in the module. Thus, the author of a module can +Each module has its own private symbol table, which is used as the global symbol +table by all functions defined in the module. Thus, the author of a module can use global variables in the module without worrying about accidental clashes with a user's global variables. On the other hand, if you know what you are doing you can touch a module's global variables with the same notation used to @@ -85,18 +84,18 @@ refer to its functions, ``modname.itemname``. Modules can import other modules. It is customary but not required to place all :keyword:`import` statements at the beginning of a module (or script, for that -matter). The imported module names, if placed at the top level of a module -(outside any functions or classes), are added to the module's global namespace. +matter). The imported module names are placed in the importing module's global +symbol table. There is a variant of the :keyword:`import` statement that imports names from a -module directly into the importing module's namespace. For example:: +module directly into the importing module's symbol table. For example:: >>> from fibo import fib, fib2 >>> fib(500) 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 This does not introduce the module name from which the imports are taken in the -local namespace (so in the example, ``fibo`` is not defined). +local symbol table (so in the example, ``fibo`` is not defined). There is even a variant to import all names that a module defines:: @@ -581,5 +580,5 @@ modules found in a package. .. rubric:: Footnotes .. [#] In fact function definitions are also 'statements' that are 'executed'; the - execution of a module-level function definition adds the function name to - the module's global namespace. + execution of a module-level function definition enters the function name in + the module's global symbol table. diff --git a/Doc/tutorial/stdlib.rst b/Doc/tutorial/stdlib.rst index 4f5ada90eb57bc..b32a552d5570cf 100644 --- a/Doc/tutorial/stdlib.rst +++ b/Doc/tutorial/stdlib.rst @@ -65,15 +65,11 @@ Command Line Arguments Common utility scripts often need to process command line arguments. These arguments are stored in the :mod:`sys` module's *argv* attribute as a list. For -instance, let's take the following :file:`demo.py` file:: - - # File demo.py - import sys - print(sys.argv) - -Here is the output from running ``python demo.py one two three`` at the command -line:: +instance the following output results from running ``python demo.py one two +three`` at the command line:: + >>> import sys + >>> print(sys.argv) ['demo.py', 'one', 'two', 'three'] The :mod:`argparse` module provides a more sophisticated mechanism to process diff --git a/Doc/tutorial/stdlib2.rst b/Doc/tutorial/stdlib2.rst index 0c101c1f207235..2e45ebc8dd7f45 100644 --- a/Doc/tutorial/stdlib2.rst +++ b/Doc/tutorial/stdlib2.rst @@ -59,7 +59,7 @@ formatting numbers with group separators:: 'English_United States.1252' >>> conv = locale.localeconv() # get a mapping of conventions >>> x = 1234567.8 - >>> locale.format_string("%d", x, grouping=True) + >>> locale.format("%d", x, grouping=True) '1,234,567' >>> locale.format_string("%s%.*f", (conv['currency_symbol'], ... conv['frac_digits'], x), grouping=True) @@ -108,7 +108,6 @@ placeholders such as the current date, image sequence number, or file format:: >>> photofiles = ['img_1074.jpg', 'img_1076.jpg', 'img_1077.jpg'] >>> class BatchRename(Template): ... delimiter = '%' - ... >>> fmt = input('Enter rename style (%d-date %n-seqnum %f-format): ') Enter rename style (%d-date %n-seqnum %f-format): Ashley_%n%f diff --git a/Doc/tutorial/whatnow.rst b/Doc/tutorial/whatnow.rst index dbe2d7fc09927e..18805da90e5001 100644 --- a/Doc/tutorial/whatnow.rst +++ b/Doc/tutorial/whatnow.rst @@ -17,7 +17,7 @@ the set are: reference material about types, functions, and the modules in the standard library. The standard Python distribution includes a *lot* of additional code. There are modules to read Unix mailboxes, retrieve documents via HTTP, generate - random numbers, parse command-line options, compress data, + random numbers, parse command-line options, write CGI programs, compress data, and many other tasks. Skimming through the Library Reference will give you an idea of what's available. @@ -31,7 +31,10 @@ the set are: More Python resources: * https://www.python.org: The major Python web site. It contains code, - documentation, and pointers to Python-related pages around the web. + documentation, and pointers to Python-related pages around the web. This web + site is mirrored in various places around the world, such as Europe, Japan, and + Australia; a mirror may be faster than the main site, depending on your + geographical location. * https://docs.python.org: Fast access to Python's documentation. @@ -45,7 +48,7 @@ More Python resources: Particularly notable contributions are collected in a book also titled Python Cookbook (O'Reilly & Associates, ISBN 0-596-00797-3.) -* https://pyvideo.org collects links to Python-related videos from +* http://www.pyvideo.org collects links to Python-related videos from conferences and user-group meetings. * https://scipy.org: The Scientific Python project includes modules for fast diff --git a/Doc/using/cmdline.rst b/Doc/using/cmdline.rst index 6a33d98a059a09..07c05a94b99f98 100644 --- a/Doc/using/cmdline.rst +++ b/Doc/using/cmdline.rst @@ -183,8 +183,6 @@ automatically enabled, if available on your platform (see Automatic enabling of tab-completion and history editing. -.. _using-on-generic-options: - Generic options ~~~~~~~~~~~~~~~ @@ -192,28 +190,8 @@ Generic options -h --help - Print a short description of all command line options and corresponding - environment variables and exit. - -.. cmdoption:: --help-env - - Print a short description of Python-specific environment variables - and exit. - - .. versionadded:: 3.11 - -.. cmdoption:: --help-xoptions - - Print a description of implementation-specific :option:`-X` options - and exit. - - .. versionadded:: 3.11 - -.. cmdoption:: --help-all + Print a short description of all command line options. - Print complete usage information and exit. - - .. versionadded:: 3.11 .. cmdoption:: -V --version @@ -234,7 +212,6 @@ Generic options .. versionadded:: 3.6 The ``-VV`` option. - .. _using-on-misc-options: Miscellaneous options @@ -368,7 +345,7 @@ Miscellaneous options between repeated invocations of Python. Hash randomization is intended to provide protection against a - denial-of-service caused by carefully chosen inputs that exploit the worst + denial-of-service caused by carefully-chosen inputs that exploit the worst case performance of a dict construction, O(n\ :sup:`2`) complexity. See http://www.ocert.org/advisories/ocert-2011-003.html for details. @@ -464,7 +441,7 @@ Miscellaneous options whether the actual warning category of the message is a subclass of the specified warning category. - The *module* field matches the (fully qualified) module name; this match is + The *module* field matches the (fully-qualified) module name; this match is case-sensitive. The *lineno* field matches the line number, where zero matches all line @@ -483,7 +460,6 @@ Miscellaneous options See :ref:`warning-filter` and :ref:`describing-warning-filters` for more details. - .. cmdoption:: -x Skip the first line of the source, allowing use of non-Unix forms of @@ -505,9 +481,6 @@ Miscellaneous options stored in a traceback of a trace. Use ``-X tracemalloc=NFRAME`` to start tracing with a traceback limit of *NFRAME* frames. See the :func:`tracemalloc.start` for more information. - * ``-X int_max_str_digits`` configures the :ref:`integer string conversion - length limitation <int_max_str_digits>`. See also - :envvar:`PYTHONINTMAXSTRDIGITS`. * ``-X importtime`` to show how long each import takes. It shows module name, cumulative time (including nested imports) and self time (excluding nested imports). Note that its output may be broken in multi-threaded @@ -538,12 +511,6 @@ Miscellaneous options development (running from the source tree) then the default is "off". Note that the "importlib_bootstrap" and "importlib_bootstrap_external" frozen modules are always used, even if this flag is set to "off". - * ``-X perf`` to activate compatibility mode with the ``perf`` profiler. - When this option is activated, the Linux ``perf`` profiler will be able to - report Python calls. This option is only available on some platforms and - will do nothing if is not supported on the current system. The default value - is "off". See also :envvar:`PYTHONPERFSUPPORT` and :ref:`perf_profiling` - for more information. It also allows passing arbitrary values and retrieving them through the :data:`sys._xoptions` dictionary. @@ -585,12 +552,6 @@ Miscellaneous options .. versionadded:: 3.11 The ``-X frozen_modules`` option. - .. versionadded:: 3.12 - The ``-X int_max_str_digits`` option. - - .. versionadded:: 3.12 - The ``-X perf`` option. - Options you shouldn't use ~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -599,7 +560,7 @@ Options you shouldn't use Reserved for use by Jython_. -.. _Jython: https://www.jython.org/ +.. _Jython: http://www.jython.org/ .. _using-on-envvars: @@ -769,13 +730,6 @@ conflict. .. versionadded:: 3.2.3 -.. envvar:: PYTHONINTMAXSTRDIGITS - - If this variable is set to an integer, it is used to configure the - interpreter's global :ref:`integer string conversion length limitation - <int_max_str_digits>`. - - .. versionadded:: 3.12 .. envvar:: PYTHONIOENCODING @@ -1002,7 +956,7 @@ conflict. order to force the interpreter to use ``ASCII`` instead of ``UTF-8`` for system interfaces. - .. availability:: Unix. + .. availability:: \*nix. .. versionadded:: 3.7 See :pep:`538` for more details. @@ -1046,13 +1000,6 @@ conflict. .. versionadded:: 3.11 -.. envvar:: PYTHONPERFSUPPORT - - If this variable is set to a nonzero value, it activates compatibility mode - with the ``perf`` profiler so Python calls can be detected by it. See the - :ref:`perf_profiling` section for more information. - - .. versionadded:: 3.12 Debug-mode variables diff --git a/Doc/using/configure.rst b/Doc/using/configure.rst index ec57c880ee7ad0..8cbeb496f2df5f 100644 --- a/Doc/using/configure.rst +++ b/Doc/using/configure.rst @@ -41,6 +41,12 @@ General Options See :data:`sys.int_info.bits_per_digit <sys.int_info>`. +.. cmdoption:: --with-cxx-main +.. cmdoption:: --with-cxx-main=COMPILER + + Compile the Python ``main()`` function and link Python executable with C++ + compiler: ``$CXX``, or *COMPILER* if specified. + .. cmdoption:: --with-suffix=SUFFIX Set the Python executable suffix to *SUFFIX*. @@ -191,8 +197,7 @@ Performance options ------------------- Configuring Python using ``--enable-optimizations --with-lto`` (PGO + LTO) is -recommended for best performance. The experimental ``--enable-bolt`` flag can -also be used to improve performance. +recommended for best performance. .. cmdoption:: --enable-optimizations @@ -232,27 +237,6 @@ also be used to improve performance. .. versionadded:: 3.11 To use ThinLTO feature, use ``--with-lto=thin`` on Clang. - .. versionchanged:: 3.12 - Use ThinLTO as the default optimization policy on Clang if the compiler accepts the flag. - -.. cmdoption:: --enable-bolt - - Enable usage of the `BOLT post-link binary optimizer - <https://github.com/llvm/llvm-project/tree/main/bolt>`_ (disabled by - default). - - BOLT is part of the LLVM project but is not always included in their binary - distributions. This flag requires that ``llvm-bolt`` and ``merge-fdata`` - are available. - - BOLT is still a fairly new project so this flag should be considered - experimental for now. Because this tool operates on machine code its success - is dependent on a combination of the build environment + the other - optimization configure args + the CPU architecture, and not all combinations - are supported. - - .. versionadded:: 3.12 - .. cmdoption:: --with-computed-gotos Enable computed gotos in evaluation loop (enabled by default on supported @@ -615,7 +599,7 @@ Main files of the build system * :file:`pyconfig.h` (created by :file:`configure`); * :file:`Modules/Setup`: C extensions built by the Makefile using :file:`Module/makesetup` shell script; -* :file:`setup.py`: C extensions built using the ``setuptools`` package. +* :file:`setup.py`: C extensions built using the :mod:`distutils` module. Main build steps ---------------- @@ -737,10 +721,22 @@ Compiler flags Example: ``gcc -pthread``. +.. envvar:: MAINCC + + C compiler command used to build the ``main()`` function of programs like + ``python``. + + Variable set by the :option:`--with-cxx-main` option of the configure + script. + + Default: ``$(CC)``. + .. envvar:: CXX C++ compiler command. + Used if the :option:`--with-cxx-main` option is used. + Example: ``g++ -pthread``. .. envvar:: CFLAGS @@ -753,17 +749,6 @@ Compiler flags extensions. Use it when a compiler flag should *not* be part of the distutils :envvar:`CFLAGS` once Python is installed (:issue:`21121`). - In particular, :envvar:`CFLAGS` should not contain: - - * the compiler flag `-I` (for setting the search path for include files). - The `-I` flags are processed from left to right, and any flags in - :envvar:`CFLAGS` would take precedence over user- and package-supplied `-I` - flags. - - * hardening flags such as `-Werror` because distributions cannot control - whether packages installed by users conform to such heightened - standards. - .. versionadded:: 3.5 .. envvar:: EXTRA_CFLAGS @@ -858,7 +843,7 @@ Linker flags Linker command used to build programs like ``python`` and ``_testembed``. - Default: ``$(PURIFY) $(CC)``. + Default: ``$(PURIFY) $(MAINCC)``. .. envvar:: CONFIGURE_LDFLAGS @@ -876,13 +861,6 @@ Linker flags :envvar:`CFLAGS_NODIST`. Use it when a linker flag should *not* be part of the distutils :envvar:`LDFLAGS` once Python is installed (:issue:`35257`). - In particular, :envvar:`LDFLAGS` should not contain: - - * the compiler flag `-L` (for setting the search path for libraries). - The `-L` flags are processed from left to right, and any flags in - :envvar:`LDFLAGS` would take precedence over user- and package-supplied `-L` - flags. - .. envvar:: CONFIGURE_LDFLAGS_NODIST Value of :envvar:`LDFLAGS_NODIST` variable passed to the ``./configure`` diff --git a/Doc/using/mac.rst b/Doc/using/mac.rst index 9ae0270eaee7ab..f7db038430b6d3 100644 --- a/Doc/using/mac.rst +++ b/Doc/using/mac.rst @@ -17,16 +17,15 @@ the IDE and the Package Manager that are worth pointing out. Getting and Installing MacPython ================================ -macOS used to come with Python 2.7 pre-installed between versions -10.8 and `12.3 <https://developer.apple.com/documentation/macos-release-notes/macos-12_3-release-notes#Python>`_. -You are invited to install the most recent version of Python 3 from the Python +macOS since version 10.8 comes with Python 2.7 pre-installed by Apple. If you wish, you +are invited to install the most recent version of Python 3 from the Python website (https://www.python.org). A current "universal binary" build of Python, which runs natively on the Mac's new Intel and legacy PPC CPU's, is available there. What you get after installing is a number of things: -* A :file:`Python 3.12` folder in your :file:`Applications` folder. In here +* A :file:`Python 3.9` folder in your :file:`Applications` folder. In here you find IDLE, the development environment that is a standard part of official Python distributions; and PythonLauncher, which handles double-clicking Python scripts from the Finder. @@ -66,7 +65,7 @@ number of standard Unix command line editors, :program:`vim` and :program:`BBEdit` or :program:`TextWrangler` from Bare Bones Software (see http://www.barebones.com/products/bbedit/index.html) are good choices, as is :program:`TextMate` (see https://macromates.com/). Other editors include -:program:`Gvim` (https://macvim-dev.github.io/macvim/) and :program:`Aquamacs` +:program:`Gvim` (http://macvim-dev.github.io/macvim/) and :program:`Aquamacs` (http://aquamacs.org/). To run your script from the Terminal window you must make sure that diff --git a/Doc/using/unix.rst b/Doc/using/unix.rst index 3f9f1364c8ae87..0a1834453a0ee8 100644 --- a/Doc/using/unix.rst +++ b/Doc/using/unix.rst @@ -69,7 +69,7 @@ Building Python If you want to compile CPython yourself, first thing you should do is get the `source <https://www.python.org/downloads/source/>`_. You can download either the latest release's source or just grab a fresh `clone -<https://devguide.python.org/setup/#get-the-source-code>`_. (If you want +<https://devguide.python.org/setup/#getting-the-source-code>`_. (If you want to contribute patches, you will need a clone.) The build process consists of the usual commands:: diff --git a/Doc/using/venv-create.inc b/Doc/using/venv-create.inc index c2a9f521a148b6..ddb36f94667d9f 100644 --- a/Doc/using/venv-create.inc +++ b/Doc/using/venv-create.inc @@ -17,7 +17,7 @@ re-used. .. deprecated:: 3.6 ``pyvenv`` was the recommended tool for creating virtual environments for Python 3.3 and 3.4, and is `deprecated in Python 3.6 - <https://docs.python.org/dev/whatsnew/3.6.html#id8>`_. + <https://docs.python.org/dev/whatsnew/3.6.html#deprecated-features>`_. .. versionchanged:: 3.5 The use of ``venv`` is now recommended for creating virtual environments. @@ -26,7 +26,7 @@ re-used. On Windows, invoke the ``venv`` command as follows:: - c:\>Python35\python -m venv c:\path\to\myenv + c:\>c:\Python35\python -m venv c:\path\to\myenv Alternatively, if you configured the ``PATH`` and ``PATHEXT`` variables for your :ref:`Python installation <using-on-windows>`:: diff --git a/Doc/using/windows.rst b/Doc/using/windows.rst index a289435a2f51db..dcc533726813ca 100644 --- a/Doc/using/windows.rst +++ b/Doc/using/windows.rst @@ -34,7 +34,7 @@ developers using Python for any kind of project. :ref:`windows-store` is a simple installation of Python that is suitable for running scripts and packages, and using IDLE or other development environments. -It requires Windows 10 and above, but can be safely installed without corrupting other +It requires Windows 10, but can be safely installed without corrupting other programs. It also provides many convenient commands for launching Python and its tools. @@ -194,22 +194,18 @@ of available options is shown below. | Include_debug | Install debug binaries | 0 | +---------------------------+--------------------------------------+--------------------------+ | Include_dev | Install developer headers and | 1 | -| | libraries. Omitting this may lead to | | -| | an unusable installation. | | +| | libraries | | +---------------------------+--------------------------------------+--------------------------+ | Include_exe | Install :file:`python.exe` and | 1 | -| | related files. Omitting this may | | -| | lead to an unusable installation. | | +| | related files | | +---------------------------+--------------------------------------+--------------------------+ | Include_launcher | Install :ref:`launcher`. | 1 | +---------------------------+--------------------------------------+--------------------------+ -| InstallLauncherAllUsers | Installs the launcher for all | 1 | -| | users. Also requires | | -| | ``Include_launcher`` to be set to 1 | | +| InstallLauncherAllUsers | Installs :ref:`launcher` for all | 1 | +| | users. | | +---------------------------+--------------------------------------+--------------------------+ | Include_lib | Install standard library and | 1 | -| | extension modules. Omitting this may | | -| | lead to an unusable installation. | | +| | extension modules | | +---------------------------+--------------------------------------+--------------------------+ | Include_pip | Install bundled pip and setuptools | 1 | +---------------------------+--------------------------------------+--------------------------+ @@ -352,42 +348,14 @@ Python in Start and right-click to select Uninstall. Uninstalling will remove all packages you installed directly into this Python installation, but will not remove any virtual environments -Known issues +Known Issues ------------ -Redirection of local data, registry, and temporary paths -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Because of restrictions on Microsoft Store apps, Python scripts may not have -full write access to shared locations such as :envvar:`TEMP` and the registry. +full write access to shared locations such as ``TEMP`` and the registry. Instead, it will write to a private copy. If your scripts must modify the shared locations, you will need to install the full installer. -At runtime, Python will use a private copy of well-known Windows folders and the registry. -For example, if the environment variable :envvar:`%APPDATA%` is :file:`c:\\Users\\<user>\\AppData\\`, -then when writing to :file:`C:\\Users\\<user>\\AppData\\Local` will write to -:file:`C:\\Users\\<user>\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\\LocalCache\\Local\\`. - -When reading files, Windows will return the file from the private folder, or if that does not exist, the -real Windows directory. For example reading :file:`C:\\Windows\\System32` returns the contents of :file:`C:\\Windows\\System32` -plus the contents of :file:`C:\\Program Files\\WindowsApps\\package_name\\VFS\\SystemX86`. - -You can find the real path of any existing file using :func:`os.path.realpath`: - -.. code-block:: python - - >>> import os - >>> test_file = 'C:\\Users\\example\\AppData\\Local\\test.txt' - >>> os.path.realpath(test_file) - 'C:\\Users\\example\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\\LocalCache\\Local\\test.txt' - -When writing to the Windows Registry, the following behaviors exist: - -* Reading from ``HKLM\\Software`` is allowed and results are merged with the :file:`registry.dat` file in the package. -* Writing to ``HKLM\\Software`` is not allowed if the corresponding key/value exists, i.e. modifying existing keys. -* Writing to ``HKLM\\Software`` is allowed as long as a corresponding key/value does not exist in the package - and the user has the correct access permissions. - For more detail on the technical basis for these limitations, please consult Microsoft's documentation on packaged full-trust apps, currently available at `docs.microsoft.com/en-us/windows/msix/desktop/desktop-to-uwp-behind-the-scenes @@ -545,11 +513,9 @@ key features: Popular scientific modules (such as numpy, scipy and pandas) and the ``conda`` package manager. -`Enthought Deployment Manager <https://www.enthought.com/edm/>`_ - "The Next Generation Python Environment and Package Manager". - - Previously Enthought provided Canopy, but it `reached end of life in 2016 - <https://support.enthought.com/hc/en-us/articles/360038600051-Canopy-GUI-end-of-life-transition-to-the-Enthought-Deployment-Manager-EDM-and-Visual-Studio-Code>`_. +`Canopy <https://www.enthought.com/product/canopy/>`_ + A "comprehensive Python analysis environment" with editors and other + development tools. `WinPython <https://winpython.github.io/>`_ Windows-specific distribution with prebuilt scientific packages and @@ -868,11 +834,6 @@ The ``/usr/bin/env`` form of shebang line has one further special property. Before looking for installed Python interpreters, this form will search the executable :envvar:`PATH` for a Python executable. This corresponds to the behaviour of the Unix ``env`` program, which performs a :envvar:`PATH` search. -If an executable matching the first argument after the ``env`` command cannot -be found, it will be handled as described below. Additionally, the environment -variable :envvar:`PYLAUNCHER_NO_SEARCH_PATH` may be set (to any value) to skip -this additional search. - Arguments in shebang lines -------------------------- @@ -1196,10 +1157,11 @@ shipped with PyWin32. It is an embeddable IDE with a built-in debugger. cx_Freeze --------- -`cx_Freeze <https://cx-freeze.readthedocs.io/en/latest/>`_ is a ``distutils`` -extension which wraps Python scripts into executable Windows programs -(:file:`{*}.exe` files). When you have done this, you can distribute your -application without requiring your users to install Python. +`cx_Freeze <https://cx-freeze.readthedocs.io/en/latest/>`_ is a :mod:`distutils` +extension (see :ref:`extending-distutils`) which wraps Python scripts into +executable Windows programs (:file:`{*}.exe` files). When you have done this, +you can distribute your application without requiring your users to install +Python. Compiling Python on Windows @@ -1208,7 +1170,7 @@ Compiling Python on Windows If you want to compile CPython yourself, first thing you should do is get the `source <https://www.python.org/downloads/source/>`_. You can download either the latest release's source or just grab a fresh `checkout -<https://devguide.python.org/setup/#get-the-source-code>`_. +<https://devguide.python.org/setup/#getting-the-source-code>`_. The source tree contains a build solution and project files for Microsoft Visual Studio, which is the compiler used to build the official Python diff --git a/Doc/whatsnew/2.0.rst b/Doc/whatsnew/2.0.rst index 9b28dbc190337d..325def51c274e0 100644 --- a/Doc/whatsnew/2.0.rst +++ b/Doc/whatsnew/2.0.rst @@ -21,7 +21,7 @@ Python's development never completely stops between releases, and a steady flow of bug fixes and improvements are always being submitted. A host of minor fixes, a few optimizations, additional docstrings, and better error messages went into 2.0; to list them all would be impossible, but they're certainly significant. -Consult the publicly available CVS logs if you want to see the full list. This +Consult the publicly-available CVS logs if you want to see the full list. This progress is due to the five developers working for PythonLabs are now getting paid to spend their days fixing bugs, and also due to the improved communication resulting from moving to SourceForge. @@ -820,7 +820,7 @@ packages, which made administering a Python installation something of a chore. The SIG for distribution utilities, shepherded by Greg Ward, has created the Distutils, a system to make package installation much easier. They form the -``distutils`` package, a new part of Python's standard library. In the best +:mod:`distutils` package, a new part of Python's standard library. In the best case, installing a Python module from source will require the same steps: first you simply mean unpack the tarball or zip archive, and the run "``python setup.py install``". The platform will be automatically detected, the compiler diff --git a/Doc/whatsnew/2.1.rst b/Doc/whatsnew/2.1.rst index 0136de58774038..b690f90cf6636b 100644 --- a/Doc/whatsnew/2.1.rst +++ b/Doc/whatsnew/2.1.rst @@ -542,11 +542,8 @@ PEP 241: Metadata in Python Packages A common complaint from Python users is that there's no single catalog of all the Python modules in existence. T. Middleton's Vaults of Parnassus at -``www.vex.net/parnassus/`` (retired in February 2009, `available in the -Internet Archive Wayback Machine -<https://web.archive.org/web/20090130140102/http://www.vex.net/parnassus/>`_) -was the largest catalog of Python modules, but -registering software at the Vaults is optional, and many people did not bother. +http://www.vex.net/parnassus/ are the largest catalog of Python modules, but +registering software at the Vaults is optional, and many people don't bother. As a first small step toward fixing the problem, Python software packaged using the Distutils :command:`sdist` command will include a file named diff --git a/Doc/whatsnew/2.3.rst b/Doc/whatsnew/2.3.rst index 55061d2a46bde0..cf5552064cf4a6 100644 --- a/Doc/whatsnew/2.3.rst +++ b/Doc/whatsnew/2.3.rst @@ -527,7 +527,7 @@ creates a :class:`LogRecord` instance that is sent to any number of different of filters, and each filter can cause the :class:`LogRecord` to be ignored or can modify the record before passing it along. When they're finally output, :class:`LogRecord` instances are converted to text by a :class:`Formatter` -class. All of these classes can be replaced by your own specially written +class. All of these classes can be replaced by your own specially-written classes. With all of these features the :mod:`logging` package should provide enough @@ -1082,7 +1082,7 @@ Here are all of the changes that Python 2.3 makes to the core Python language. hierarchy. Classic classes are unaffected by this change. Python 2.2 originally used a topological sort of a class's ancestors, but 2.3 now uses the C3 algorithm as described in the paper `"A Monotonic Superclass Linearization - for Dylan" <https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.19.3910>`_. To + for Dylan" <http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.19.3910>`_. To understand the motivation for this change, read Michele Simionato's article `"Python 2.3 Method Resolution Order" <http://www.phyast.pitt.edu/~micheles/mro.html>`_, or read the thread on python-dev starting with the message at diff --git a/Doc/whatsnew/2.4.rst b/Doc/whatsnew/2.4.rst index ddfac1a3f4e63a..7e11c98399cc18 100644 --- a/Doc/whatsnew/2.4.rst +++ b/Doc/whatsnew/2.4.rst @@ -120,7 +120,7 @@ having the entire data set in memory at one time. List comprehensions don't fit into this picture very well because they produce a Python list object containing all of the items. This unavoidably pulls all of the objects into memory, which can be a problem if your data set is very large. When trying to write a -functionally styled program, it would be natural to write something like:: +functionally-styled program, it would be natural to write something like:: links = [link for link in get_all_links() if not link.followed] for link in links: @@ -918,7 +918,7 @@ Here are all of the changes that Python 2.4 makes to the core Python language. (Contributed by Raymond Hettinger.) -* Encountering a failure while importing a module no longer leaves a partially initialized +* Encountering a failure while importing a module no longer leaves a partially-initialized module object in ``sys.modules``. The incomplete module object left behind would fool further imports of the same module into succeeding, leading to confusing errors. (Fixed by Tim Peters.) @@ -1541,7 +1541,7 @@ code: * The :mod:`tarfile` module now generates GNU-format tar files by default. * Encountering a failure while importing a module no longer leaves a - partially initialized module object in ``sys.modules``. + partially-initialized module object in ``sys.modules``. * :const:`None` is now a constant; code that binds a new value to the name ``None`` is now a syntax error. diff --git a/Doc/whatsnew/2.5.rst b/Doc/whatsnew/2.5.rst index 6c216826fee047..5816380e102f99 100644 --- a/Doc/whatsnew/2.5.rst +++ b/Doc/whatsnew/2.5.rst @@ -11,11 +11,11 @@ This article explains the new features in Python 2.5. The final release of Python 2.5 is scheduled for August 2006; :pep:`356` describes the planned -release schedule. Python 2.5 was released on September 19, 2006. +release schedule. The changes in Python 2.5 are an interesting mix of language and library improvements. The library enhancements will be more important to Python's user -community, I think, because several widely useful packages were added. New +community, I think, because several widely-useful packages were added. New modules include ElementTree for XML processing (:mod:`xml.etree`), the SQLite database module (:mod:`sqlite`), and the :mod:`ctypes` module for calling C functions. @@ -551,7 +551,7 @@ exhausted. https://en.wikipedia.org/wiki/Coroutine The Wikipedia entry for coroutines. - https://web.archive.org/web/20160321211320/http://www.sidhe.org/~dan/blog/archives/000178.html + http://www.sidhe.org/~dan/blog/archives/000178.html An explanation of coroutines from a Perl point of view, written by Dan Sugalski. .. ====================================================================== @@ -882,7 +882,7 @@ in an :c:type:`int`. The C compilers for most 64-bit platforms still define :c:type:`int` as a 32-bit type, so that meant that lists could only hold up to ``2**31 - 1`` = 2147483647 items. (There are actually a few different programming models that 64-bit C compilers can use -- see -https://unix.org/version2/whatsnew/lp64_wp.html for a discussion -- but the +http://www.unix.org/version2/whatsnew/lp64_wp.html for a discussion -- but the most commonly available model leaves :c:type:`int` as 32 bits.) A limit of 2147483647 items doesn't really matter on a 32-bit platform because @@ -1293,7 +1293,7 @@ complete list of changes, or look through the SVN logs for all the details. received several enhancements and a number of bugfixes. You can now set the maximum size in bytes of a field by calling the ``csv.field_size_limit(new_limit)`` function; omitting the *new_limit* - argument will return the currently set limit. The :class:`reader` class now has + argument will return the currently-set limit. The :class:`reader` class now has a :attr:`line_num` attribute that counts the number of physical lines read from the source; records can span multiple physical lines, so :attr:`line_num` is not the same as the number of records read. @@ -1746,8 +1746,8 @@ modules, now that :mod:`ctypes` is included with core Python. .. seealso:: - https://web.archive.org/web/20180410025338/http://starship.python.net/crew/theller/ctypes/ - The pre-stdlib ctypes web page, with a tutorial, reference, and FAQ. + http://starship.python.net/crew/theller/ctypes/ + The ctypes web page, with a tutorial, reference, and FAQ. The documentation for the :mod:`ctypes` module. @@ -1930,7 +1930,7 @@ with the same digest state. The sqlite3 package ------------------- -The pysqlite module (https://www.pysqlite.org), a wrapper for the SQLite embedded +The pysqlite module (http://www.pysqlite.org), a wrapper for the SQLite embedded database, has been added to the standard library under the package name :mod:`sqlite3`. @@ -2019,7 +2019,7 @@ https://www.sqlite.org. .. seealso:: - https://www.pysqlite.org + http://www.pysqlite.org The pysqlite web page. https://www.sqlite.org @@ -2065,7 +2065,7 @@ up a server takes only a few lines of code:: .. seealso:: - https://web.archive.org/web/20160331090247/http://wsgi.readthedocs.org/en/latest/ + http://www.wsgi.org A central web site for WSGI-related resources. :pep:`333` - Python Web Server Gateway Interface v1.0 diff --git a/Doc/whatsnew/2.6.rst b/Doc/whatsnew/2.6.rst index 3d0d18746a21cc..b6174a19a178b6 100644 --- a/Doc/whatsnew/2.6.rst +++ b/Doc/whatsnew/2.6.rst @@ -49,7 +49,7 @@ This saves the maintainer some effort going through the SVN logs when researching a change. -This article explains the new features in Python 2.6, released on October 1, +This article explains the new features in Python 2.6, released on October 1 2008. The release schedule is described in :pep:`361`. The major theme of Python 2.6 is preparing the migration path to @@ -155,7 +155,7 @@ up different products and import some of the bugs and patches from SourceForge. Four different trackers were examined: `Jira <https://www.atlassian.com/software/jira/>`__, `Launchpad <https://launchpad.net/>`__, -`Roundup <https://roundup.sourceforge.io/>`__, and +`Roundup <http://roundup.sourceforge.net/>`__, and `Trac <https://trac.edgewall.org/>`__. The committee eventually settled on Jira and Roundup as the two candidates. Jira is a commercial product that @@ -176,7 +176,7 @@ Hosting of the Python bug tracker is kindly provided by of Stellenbosch, South Africa. Martin von Löwis put a lot of effort into importing existing bugs and patches from SourceForge; his scripts for this import operation are at -``https://svn.python.org/view/tracker/importer/`` and may be useful to +http://svn.python.org/view/tracker/importer/ and may be useful to other projects wishing to move from SourceForge to Roundup. .. seealso:: @@ -184,13 +184,13 @@ other projects wishing to move from SourceForge to Roundup. https://bugs.python.org The Python bug tracker. - https://bugs.jython.org: + http://bugs.jython.org: The Jython bug tracker. - https://roundup.sourceforge.io/ + http://roundup.sourceforge.net/ Roundup downloads and documentation. - https://svn.python.org/view/tracker/importer/ + http://svn.python.org/view/tracker/importer/ Martin von Löwis's conversion scripts. New Documentation Format: reStructuredText Using Sphinx @@ -238,7 +238,7 @@ have adopted Sphinx as their documentation tool. `Sphinx <http://sphinx-doc.org/>`__ Documentation and code for the Sphinx toolchain. - `Docutils <https://docutils.sourceforge.io>`__ + `Docutils <http://docutils.sourceforge.net>`__ The underlying reStructuredText parser and toolset. @@ -523,7 +523,7 @@ PEP 370: Per-user ``site-packages`` Directory When you run Python, the module search path ``sys.path`` usually includes a directory whose path ends in ``"site-packages"``. This -directory is intended to hold locally installed packages available to +directory is intended to hold locally-installed packages available to all users using a machine or a particular site installation. Python 2.6 introduces a convention for user-specific site directories. @@ -1433,7 +1433,7 @@ one, :func:`math.trunc`, that's been backported to Python 2.6. `Scheme's numerical tower <https://www.gnu.org/software/guile/manual/html_node/Numerical-Tower.html#Numerical-Tower>`__, from the Guile manual. - `Scheme's number datatypes <https://schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-9.html#%_sec_6.2>`__ from the R5RS Scheme specification. + `Scheme's number datatypes <http://schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-9.html#%_sec_6.2>`__ from the R5RS Scheme specification. The :mod:`fractions` Module @@ -2460,7 +2460,7 @@ changes, or look through the Subversion logs for all the details. The function must take a filename and return true if the file should be excluded or false if it should be archived. The function is applied to both the name initially passed to :meth:`add` - and to the names of files in recursively added directories. + and to the names of files in recursively-added directories. (All changes contributed by Lars Gustäbel). @@ -2513,7 +2513,7 @@ changes, or look through the Subversion logs for all the details. (Contributed by Brett Cannon.) * The :mod:`textwrap` module can now preserve existing whitespace - at the beginnings and ends of the newly created lines + at the beginnings and ends of the newly-created lines by specifying ``drop_whitespace=False`` as an argument:: diff --git a/Doc/whatsnew/2.7.rst b/Doc/whatsnew/2.7.rst index 01f140dac8ae9c..297ce0647130e5 100644 --- a/Doc/whatsnew/2.7.rst +++ b/Doc/whatsnew/2.7.rst @@ -279,7 +279,7 @@ Comparing an :class:`~collections.OrderedDict` with a regular dictionary ignores the insertion order and just compares the keys and values. How does the :class:`~collections.OrderedDict` work? It maintains a -doubly linked list of keys, appending new keys to the list as they're inserted. +doubly-linked list of keys, appending new keys to the list as they're inserted. A secondary dictionary maps keys to their corresponding list node, so deletion doesn't have to traverse the entire linked list and therefore remains O(1). @@ -299,7 +299,7 @@ modules. constructor was extended with an *object_pairs_hook* parameter to allow :class:`OrderedDict` instances to be built by the decoder. Support was also added for third-party tools like - `PyYAML <https://pyyaml.org/>`_. + `PyYAML <http://pyyaml.org/>`_. .. seealso:: @@ -1048,7 +1048,7 @@ changes, or look through the Subversion logs for all the details. The new version features better Python 3.x compatibility, various bug fixes, and adds several new BerkeleyDB flags and methods. (Updated by Jesús Cea Avión; :issue:`8156`. The pybsddb - changelog can be read at https://hg.jcea.es/pybsddb/file/tip/ChangeLog.) + changelog can be read at http://hg.jcea.es/pybsddb/file/tip/ChangeLog.) * The :mod:`bz2` module's :class:`~bz2.BZ2File` now supports the context management protocol, so you can write ``with bz2.BZ2File(...) as f:``. @@ -1545,7 +1545,7 @@ changes, or look through the Subversion logs for all the details. *ciphers* argument that's a string listing the encryption algorithms to be allowed; the format of the string is described `in the OpenSSL documentation - <https://www.openssl.org/docs/man1.0.2/man1/ciphers.html>`__. + <https://www.openssl.org/docs/manmaster/man1/ciphers.html#CIPHER-LIST-FORMAT>`__. (Added by Antoine Pitrou; :issue:`8322`.) Another change makes the extension load all of OpenSSL's ciphers and @@ -1831,7 +1831,7 @@ packaged as the :mod:`unittest2` package, from https://pypi.org/project/unittest2. When used from the command line, the module can automatically discover -tests. It's not as fancy as `py.test <https://pytest.org>`__ or +tests. It's not as fancy as `py.test <http://pytest.org>`__ or `nose <https://nose.readthedocs.io/>`__, but provides a simple way to run tests kept within a set of package directories. For example, the following command will search the :file:`test/` subdirectory for @@ -1968,7 +1968,7 @@ GvR worked on merging them into Python's version of :mod:`unittest`. * :meth:`~unittest.TestCase.assertAlmostEqual` and :meth:`~unittest.TestCase.assertNotAlmostEqual` test whether *first* and *second* are approximately equal. This method - can either round their difference to an optionally specified number + can either round their difference to an optionally-specified number of *places* (the default is 7) and compare it to zero, or require the difference to be smaller than a supplied *delta* value. @@ -2001,7 +2001,7 @@ module is imported or used. .. seealso:: - https://web.archive.org/web/20210619163128/http://www.voidspace.org.uk/python/articles/unittest2.shtml + http://www.voidspace.org.uk/python/articles/unittest2.shtml Describes the new features, how to use them, and the rationale for various design decisions. (By Michael Foord.) @@ -2333,7 +2333,7 @@ Port-Specific Changes: Windows * The :mod:`_winreg` module for accessing the registry now implements the :func:`~_winreg.CreateKeyEx` and :func:`~_winreg.DeleteKeyEx` - functions, extended versions of previously supported functions that + functions, extended versions of previously-supported functions that take several extra arguments. The :func:`~_winreg.DisableReflectionKey`, :func:`~_winreg.EnableReflectionKey`, and :func:`~_winreg.QueryReflectionKey` were also tested and documented. @@ -2692,12 +2692,12 @@ As part of this change, the :ref:`installing-index` and completely redesigned as short getting started and FAQ documents. Most packaging documentation has now been moved out to the Python Packaging Authority maintained `Python Packaging User Guide -<https://packaging.python.org>`__ and the documentation of the individual +<http://packaging.python.org>`__ and the documentation of the individual projects. However, as this migration is currently still incomplete, the legacy versions of those guides remaining available as :ref:`install-index` -and :ref:`setuptools-index`. +and :ref:`distutils-index`. .. seealso:: diff --git a/Doc/whatsnew/3.0.rst b/Doc/whatsnew/3.0.rst index 63b24748d8aab6..880958d3edb900 100644 --- a/Doc/whatsnew/3.0.rst +++ b/Doc/whatsnew/3.0.rst @@ -53,9 +53,9 @@ This article explains the new features in Python 3.0, compared to 2.6. Python 3.0, also known as "Python 3000" or "Py3K", is the first ever -*intentionally backwards incompatible* Python release. Python 3.0 was released on December 3, 2008. -There are more changes than in a typical release, and more that are important for all -Python users. Nevertheless, after digesting the changes, you'll find +*intentionally backwards incompatible* Python release. There are more +changes than in a typical release, and more that are important for all +Python users. Nevertheless, after digesting the changes, you'll find that Python really hasn't changed all that much -- by and large, we're mostly fixing well-known annoyances and warts, and removing a lot of old cruft. @@ -663,7 +663,7 @@ Some other changes to standard library modules, not covered by :data:`string.ascii_letters` etc. instead. (The reason for the removal is that :data:`string.letters` and friends had locale-specific behavior, which is a bad idea for such - attractively named global "constants".) + attractively-named global "constants".) * Renamed module :mod:`__builtin__` to :mod:`builtins` (removing the underscores, adding an 's'). The :data:`__builtins__` variable diff --git a/Doc/whatsnew/3.1.rst b/Doc/whatsnew/3.1.rst index 6ce6358d49fbca..f1e6d0c4f3dd68 100644 --- a/Doc/whatsnew/3.1.rst +++ b/Doc/whatsnew/3.1.rst @@ -47,7 +47,6 @@ when researching a change. This article explains the new features in Python 3.1, compared to 3.0. -Python 3.1 was released on June 27, 2009. PEP 372: Ordered Dictionaries @@ -72,7 +71,7 @@ order. The *_asdict()* method for :func:`collections.namedtuple` now returns an ordered dictionary with the values appearing in the same order as the underlying tuple indices. The :mod:`json` module is being built-out with an *object_pairs_hook* to allow OrderedDicts to be built by the decoder. -Support was also added for third-party tools like `PyYAML <https://pyyaml.org/>`_. +Support was also added for third-party tools like `PyYAML <http://pyyaml.org/>`_. .. seealso:: diff --git a/Doc/whatsnew/3.10.rst b/Doc/whatsnew/3.10.rst index db8d9281b1f2ed..f93523a4c50a89 100644 --- a/Doc/whatsnew/3.10.rst +++ b/Doc/whatsnew/3.10.rst @@ -47,7 +47,7 @@ when researching a change. This article explains the new features in Python 3.10, compared to 3.9. -Python 3.10 was released on October 4, 2021. + For full details, see the :ref:`changelog <changelog>`. Summary -- Release highlights @@ -230,7 +230,7 @@ have been incorporated. Some of the most notable ones are as follows: ^ SyntaxError: expected ':' - (Contributed by Pablo Galindo in :issue:`42997`.) + (Contributed by Pablo Galindo in :issue:`42997`) * Unparenthesised tuples in comprehensions targets: @@ -242,7 +242,7 @@ have been incorporated. Some of the most notable ones are as follows: ^ SyntaxError: did you forget parentheses around the comprehension target? - (Contributed by Pablo Galindo in :issue:`43017`.) + (Contributed by Pablo Galindo in :issue:`43017`) * Missing commas in collection literals and between expressions: @@ -257,7 +257,7 @@ have been incorporated. Some of the most notable ones are as follows: ^ SyntaxError: invalid syntax. Perhaps you forgot a comma? - (Contributed by Pablo Galindo in :issue:`43822`.) + (Contributed by Pablo Galindo in :issue:`43822`) * Multiple Exception types without parentheses: @@ -271,7 +271,7 @@ have been incorporated. Some of the most notable ones are as follows: ^ SyntaxError: multiple exception types must be parenthesized - (Contributed by Pablo Galindo in :issue:`43149`.) + (Contributed by Pablo Galindo in :issue:`43149`) * Missing ``:`` and values in dictionary literals: @@ -293,7 +293,7 @@ have been incorporated. Some of the most notable ones are as follows: ^ SyntaxError: ':' expected after dictionary key - (Contributed by Pablo Galindo in :issue:`43823`.) + (Contributed by Pablo Galindo in :issue:`43823`) * ``try`` blocks without ``except`` or ``finally`` blocks: @@ -307,7 +307,7 @@ have been incorporated. Some of the most notable ones are as follows: ^^^^^^^^^ SyntaxError: expected 'except' or 'finally' block - (Contributed by Pablo Galindo in :issue:`44305`.) + (Contributed by Pablo Galindo in :issue:`44305`) * Usage of ``=`` instead of ``==`` in comparisons: @@ -319,7 +319,7 @@ have been incorporated. Some of the most notable ones are as follows: ^ SyntaxError: cannot assign to attribute here. Maybe you meant '==' instead of '='? - (Contributed by Pablo Galindo in :issue:`43797`.) + (Contributed by Pablo Galindo in :issue:`43797`) * Usage of ``*`` in f-strings: @@ -331,7 +331,7 @@ have been incorporated. Some of the most notable ones are as follows: ^ SyntaxError: f-string: cannot use starred expression here - (Contributed by Pablo Galindo in :issue:`41064`.) + (Contributed by Pablo Galindo in :issue:`41064`) IndentationErrors ~~~~~~~~~~~~~~~~~ @@ -1048,7 +1048,7 @@ keyword-only. This will probably be the most common usage: Here, ``z`` and ``t`` are keyword-only parameters, while ``x`` and ``y`` are not. -(Contributed by Eric V. Smith in :issue:`43532`.) +(Contributed by Eric V. Smith in :issue:`43532`) .. _distutils-deprecated: @@ -1186,9 +1186,6 @@ New in 3.10 maintenance releases. Apply syntax highlighting to `.pyi` files. (Contributed by Alex Waygood and Terry Jan Reedy in :issue:`45447`.) -Include prompts when saving Shell with inputs and outputs. -(Contributed by Terry Jan Reedy in :gh:`95191`.) - importlib.metadata ------------------ @@ -1269,11 +1266,11 @@ pathlib ------- Add slice support to :attr:`PurePath.parents <pathlib.PurePath.parents>`. -(Contributed by Joshua Cannon in :issue:`35498`.) +(Contributed by Joshua Cannon in :issue:`35498`) Add negative indexing support to :attr:`PurePath.parents <pathlib.PurePath.parents>`. -(Contributed by Yaroslav Pankovych in :issue:`21041`.) +(Contributed by Yaroslav Pankovych in :issue:`21041`) Add :meth:`Path.hardlink_to <pathlib.Path.hardlink_to>` method that supersedes :meth:`~pathlib.Path.link_to`. The new method has the same argument @@ -1291,7 +1288,7 @@ platform Add :func:`platform.freedesktop_os_release()` to retrieve operation system identification from `freedesktop.org os-release <https://www.freedesktop.org/software/systemd/man/os-release.html>`_ standard file. -(Contributed by Christian Heimes in :issue:`28468`.) +(Contributed by Christian Heimes in :issue:`28468`) pprint ------ @@ -1476,7 +1473,7 @@ and to match the behavior of static type checkers specified in the PEP. Add new function :func:`typing.is_typeddict` to introspect if an annotation is a :class:`typing.TypedDict`. -(Contributed by Patrick Reader in :issue:`41792`.) +(Contributed by Patrick Reader in :issue:`41792`) Subclasses of ``typing.Protocol`` which only have data variables declared will now raise a ``TypeError`` when checked with ``isinstance`` unless they @@ -1484,14 +1481,14 @@ are decorated with :func:`runtime_checkable`. Previously, these checks passed silently. Users should decorate their subclasses with the :func:`runtime_checkable` decorator if they want runtime protocols. -(Contributed by Yurii Karabas in :issue:`38908`.) +(Contributed by Yurii Karabas in :issue:`38908`) Importing from the ``typing.io`` and ``typing.re`` submodules will now emit :exc:`DeprecationWarning`. These submodules have been deprecated since Python 3.8 and will be removed in a future version of Python. Anything belonging to those submodules should be imported directly from :mod:`typing` instead. -(Contributed by Sebastian Rittau in :issue:`38291`.) +(Contributed by Sebastian Rittau in :issue:`38291`) unittest -------- @@ -1569,7 +1566,7 @@ Optimizations strings, and the function object lazily converts this into the annotations dict on demand. This optimization cuts the CPU time needed to define an annotated function by half. - (Contributed by Yurii Karabas and Inada Naoki in :issue:`42202`.) + (Contributed by Yurii Karabas and Inada Naoki in :issue:`42202`) * Substring search functions such as ``str1 in str2`` and ``str2.find(str1)`` now sometimes use Crochemore & Perrin's "Two-Way" string searching @@ -1578,16 +1575,16 @@ Optimizations * Add micro-optimizations to ``_PyType_Lookup()`` to improve type attribute cache lookup performance in the common case of cache hits. This makes the interpreter 1.04 times faster - on average. (Contributed by Dino Viehland in :issue:`43452`.) + on average. (Contributed by Dino Viehland in :issue:`43452`) * The following built-in functions now support the faster :pep:`590` vectorcall calling convention: :func:`map`, :func:`filter`, :func:`reversed`, :func:`bool` and :func:`float`. - (Contributed by Dong-hee Na and Jeroen Demeyer in :issue:`43575`, :issue:`43287`, :issue:`41922`, :issue:`41873` and :issue:`41870`.) + (Contributed by Dong-hee Na and Jeroen Demeyer in :issue:`43575`, :issue:`43287`, :issue:`41922`, :issue:`41873` and :issue:`41870`) * :class:`BZ2File` performance is improved by removing internal ``RLock``. This makes :class:`BZ2File` thread unsafe in the face of multiple simultaneous readers or writers, just like its equivalent classes in :mod:`gzip` and - :mod:`lzma` have always been. (Contributed by Inada Naoki in :issue:`43785`.) + :mod:`lzma` have always been. (Contributed by Inada Naoki in :issue:`43785`). .. _whatsnew310-deprecated: @@ -1603,7 +1600,7 @@ Deprecated :keyword:`for`, :keyword:`if`, :keyword:`in`, :keyword:`is` and :keyword:`or`. In future releases it will be changed to syntax warning, and finally to syntax error. - (Contributed by Serhiy Storchaka in :issue:`43833`.) + (Contributed by Serhiy Storchaka in :issue:`43833`). * Starting in this release, there will be a concerted effort to begin cleaning up old import semantics that were kept for Python 2.7 @@ -1749,7 +1746,7 @@ Deprecated * ``threading.Thread.setDaemon`` => :attr:`threading.Thread.daemon` - (Contributed by Jelle Zijlstra in :gh:`87889`.) + (Contributed by Jelle Zijlstra in :issue:`21574`.) * :meth:`pathlib.Path.link_to` is deprecated and slated for removal in Python 3.12. Use :meth:`pathlib.Path.hardlink_to` instead. @@ -1791,7 +1788,7 @@ Deprecated :exc:`DeprecationWarning`. These submodules will be removed in a future version of Python. Anything belonging to these submodules should be imported directly from :mod:`typing` instead. - (Contributed by Sebastian Rittau in :issue:`38291`.) + (Contributed by Sebastian Rittau in :issue:`38291`) .. _whatsnew310-removed: @@ -1874,7 +1871,7 @@ Changes in the Python syntax syntax error. To get rid of the warning and make the code compatible with future releases just add a space between the numeric literal and the following keyword. - (Contributed by Serhiy Storchaka in :issue:`43833`.) + (Contributed by Serhiy Storchaka in :issue:`43833`). .. _changes-python-api: @@ -1984,7 +1981,7 @@ CPython bytecode changes * The ``MAKE_FUNCTION`` instruction now accepts either a dict or a tuple of strings as the function's annotations. - (Contributed by Yurii Karabas and Inada Naoki in :issue:`42202`.) + (Contributed by Yurii Karabas and Inada Naoki in :issue:`42202`) Build Changes ============= @@ -2200,7 +2197,7 @@ Porting to Python 3.10 directory. These files must not be included directly, as they are already included in ``Python.h``: :ref:`Include Files <api-includes>`. If they have been included directly, consider including ``Python.h`` instead. - (Contributed by Nicholas Sim in :issue:`35134`.) + (Contributed by Nicholas Sim in :issue:`35134`) * Use the :c:data:`Py_TPFLAGS_IMMUTABLETYPE` type flag to create immutable type objects. Do not rely on :c:data:`Py_TPFLAGS_HEAPTYPE` to decide if a type @@ -2210,7 +2207,7 @@ Porting to Python 3.10 * The undocumented function ``Py_FrozenMain`` has been removed from the limited API. The function is mainly useful for custom builds of Python. - (Contributed by Petr Viktorin in :issue:`26241`.) + (Contributed by Petr Viktorin in :issue:`26241`) Deprecated ---------- diff --git a/Doc/whatsnew/3.11.rst b/Doc/whatsnew/3.11.rst index e3580c5a36fbb4..24d1343689c98f 100644 --- a/Doc/whatsnew/3.11.rst +++ b/Doc/whatsnew/3.11.rst @@ -49,6 +49,12 @@ This article explains the new features in Python 3.11, compared to 3.10. For full details, see the :ref:`changelog <changelog>`. +.. note:: + + Prerelease users should be aware that this document is currently in draft + form. It will be updated substantially as Python 3.11 moves towards release, + so it's worth checking back even after reading earlier versions. + Summary -- Release highlights ============================= @@ -56,7 +62,7 @@ Summary -- Release highlights .. This section singles out the most important changes in Python 3.11. Brevity is key. -- Python 3.11 is between 10-60% faster than Python 3.10. On average, we measured a +- Python 3.11 is up to 10-60% faster than Python 3.10. On average, we measured a 1.25x speedup on the standard benchmark suite. See `Faster CPython`_ for details. .. PEP-sized items next. @@ -64,36 +70,20 @@ Summary -- Release highlights New syntax features: * :pep:`654`: Exception Groups and ``except*``. - -New built-in features: - -* :pep:`678`: Enriching Exceptions with Notes. - -New standard library modules: - -* :pep:`680`: ``tomllib`` — Support for Parsing TOML in the Standard Library. - -Interpreter improvements: - -* :pep:`657`: Include Fine Grained Error Locations in Tracebacks. -* New :option:`-P` command line option and :envvar:`PYTHONSAFEPATH` environment - variable to disable automatically prepending a potentially unsafe path - (the working dir or script directory, depending on invocation) - to :data:`sys.path`. + (Contributed by Irit Katriel in :issue:`45292`.) New typing features: * :pep:`646`: Variadic generics. -* :pep:`655`: Marking individual TypedDict items as required or potentially missing. +* :pep:`655`: Marking individual TypedDict items as required or potentially-missing. * :pep:`673`: ``Self`` type. * :pep:`675`: Arbitrary literal string type. -* :pep:`681`: Data Class Transforms. -Important deprecations, removals or restrictions: +Security improvements: -* :pep:`594`: Removing dead batteries from the standard library. -* :pep:`624`: Remove ``Py_UNICODE`` encoder APIs. -* :pep:`670`: Convert macros to functions in the Python C API. +* New :option:`-P` command line option and :envvar:`PYTHONSAFEPATH` environment + variable to not prepend a potentially unsafe path to :data:`sys.path` such as + the current directory, the script's directory or an empty string. New Features @@ -127,6 +117,7 @@ when dealing with deeply nested dictionary objects and multiple function calls, Traceback (most recent call last): File "query.py", line 37, in <module> magic_arithmetic('foo') + ^^^^^^^^^^^^^^^^^^^^^^^ File "query.py", line 18, in magic_arithmetic return add_counts(x) / 25 ^^^^^^^^^^^^^ @@ -175,25 +166,8 @@ The :option:`-X` ``no_debug_ranges`` option and the environment variable See :pep:`657` for more details. (Contributed by Pablo Galindo, Batuhan Taskaya and Ammar Askar in :issue:`43950`.) - -PEP 654: Exception Groups and ``except*`` ------------------------------------------ - -:pep:`654` introduces language features that enable a program -to raise and handle multiple unrelated exceptions simultaneously. -The builtin types :exc:`ExceptionGroup` and :exc:`BaseExceptionGroup` -make it possible to group exceptions and raise them together, -and the new :keyword:`except* <except_star>` syntax generalizes -:keyword:`except` to match subgroups of exception groups. - -See :pep:`654` for more details. - -(Contributed by Irit Katriel in :issue:`45292`. PEP written by -Irit Katriel, Yury Selivanov and Guido van Rossum.) - - -PEP 678: Exceptions can be enriched with notes -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Exceptions can be enriched with notes (PEP 678) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The :meth:`add_note` method was added to :exc:`BaseException`. It can be used to enrich exceptions with context information which is not available @@ -362,35 +336,6 @@ See :pep:`681` for more details. (Contributed by Jelle Zijlstra in :gh:`91860`. PEP written by Erik De Bonte and Eric Traut.) -PEP 563 May Not Be the Future ------------------------------ - -* :pep:`563` Postponed Evaluation of Annotations, ``__future__.annotations`` - that was planned for this release has been indefinitely postponed. - See `this message <https://mail.python.org/archives/list/python-dev@python.org/message/VIZEBX5EYMSYIJNDBF6DMUMZOCWHARSO/>`_ for more information. - -Windows py.exe launcher improvements ------------------------------------- - -The copy of :ref:`launcher` included with Python 3.11 has been significantly -updated. It now supports company/tag syntax as defined in :pep:`514` using the -``-V:<company>/<tag>`` argument instead of the limited ``-x.y`` argument. This -allows launching distributions other than ``PythonCore``, which is the one -obtained from `python.org <https://python.org>`_. - -When using ``-V:`` selectors, either company or tag can be omitted, but all -installs will be searched. For example, ``-V:OtherPython/`` will select the -"best" tag registered for ``OtherPython``, while ``-V:3.11`` or ``-V:/3.11`` -will select the "best" distribution with tag ``3.11``. - -When using legacy ``-x``, ``-x.y``, ``-x-ZZ`` or ``-x.y-ZZ`` arguments, all -existing behaviour should be preserved from past versions. Only releases from -``PythonCore`` will be selected. However, the ``-64`` suffix now implies "not -32-bit", as there are multiple supported 64-bit platforms. 32-bit runtimes are -detected by checking its tag for a ``-32`` suffix. All releases of Python -since 3.5 have included this in their 32-bit builds. - - Other Language Changes ====================== @@ -428,16 +373,6 @@ Other Language Changes the current directory, the script's directory or an empty string. (Contributed by Victor Stinner in :gh:`57684`.) -* A ``"z"`` option was added to the format specification mini-language that - coerces negative zero to zero after rounding to the format precision. See - :pep:`682` for more details. (Contributed by John Belmonte in :gh:`90153`.) - -* Bytes are no longer accepted on :attr:`sys.path`. Support broke sometime - between Python 3.2 and 3.6 with no one noticing until after Python 3.10.0 - was released. Bringing back support would also be problematic due to - interactions between :option:`-b` and :attr:`sys.path_importer_cache` when - there is a mixture of strings and bytes keys. - (Contributed by Thomas Grainger in :gh:`91181`.) Other CPython Implementation Changes ==================================== @@ -473,12 +408,6 @@ Other CPython Implementation Changes :data:`sys.path`. Otherwise, initialization will recalculate the path and replace any values added to ``module_search_paths``. -* The output of the :option:`--help` option is changed to fit inside 50 lines and 80 - columns. Information about :ref:`Python environment variables <using-on-envvars>` - and :option:`-X options <-X>` is available with the new :option:`--help-env` or - :option:`--help-xoptions` flags, and with :option:`--help-all`. - (Contributed by Éric Araujo in :issue:`46142`.) - New Modules =========== @@ -511,26 +440,6 @@ asyncio the asyncio library. (Contributed by Yves Duprat and Andrew Svetlov in :gh:`87518`.) -* Add :class:`~asyncio.TaskGroup` class, - an :ref:`asynchronous context manager <async-context-managers>` - holding a group of tasks that will wait for all of them upon exit. - (Contributed by Yury Seliganov and others.) - -contextlib ----------- - -Added non parallel-safe :func:`~contextlib.chdir` context manager to change -the current working directory and then restore it on exit. Simple wrapper -around :func:`~os.chdir`. (Contributed by Filipe Laíns in :issue:`25625`) - -dataclasses ------------ - -* Change field default mutability check, allowing only defaults which are - :term:`hashable` instead of any object which is not an instance of - :class:`dict`, :class:`list` or :class:`set`. (Contributed by Eric V. Smith in - :issue:`44674`.) - datetime -------- @@ -541,49 +450,6 @@ datetime formats (barring only those that support fractional hours and minutes). (Contributed by Paul Ganssle in :gh:`80010`.) -enum ----- - -* ``EnumMeta`` renamed to ``EnumType`` (``EnumMeta`` kept as alias). - -* ``StrEnum`` added -- enum members are and must be strings. - -* ``ReprEnum`` added -- causes only the ``__repr__`` to be modified, not the - ``__str__`` nor the ``__format__``. - -* ``FlagBoundary`` added -- controls behavior when invalid values are given to - a flag. - -* ``EnumCheck`` added -- used by ``verify`` to ensure various constraints. - -* ``verify`` added -- function to ensure given ``EnumCheck`` constraints. - -* ``member`` added -- decorator to ensure given object is converted to an enum - member. - -* ``nonmember`` added -- decorator to ensure given object is not converted to - an enum member. - -* ``property`` added -- use instead of ``types.DynamicClassAttribute``. - -* ``global_enum`` added -- enum decorator to adjust ``__repr__`` and ``__str__`` - to show members in the global context -- see ``re.RegexFlag`` for an example. - -* ``Flag`` enhancements: members support length, iteration, and containment - checks. - -* ``Enum``/``Flag`` fixes: members are now defined before ``__init_subclass__`` - is called; ``dir()`` now includes methods, etc., from mixed-in data types. - -* ``Flag`` fixes: only primary values (power of two) are considered canonical - while composite values (3, 6, 10, etc.) are considered aliases; inverted - flags are coerced to their positive equivalent. - -* ``IntEnum`` / ``IntFlag`` / ``StrEnum`` fixes: these now inherit from - ``ReprEnum`` so the ``str()`` output now matches ``format()`` output, - which is the data types' (so both ``str(AnIntEnum.ONE)`` and - ``format(AnIntEnum.ONE)`` is equal to ``'1'``). - fractions --------- @@ -638,19 +504,12 @@ hashlib OpenSSL support. (Contributed by Christian Heimes in :issue:`47098`.) -* Add :func:`hashlib.file_digest`, a helper function for efficient hashing - of files or file-like objects. - (Contributed by Christian Heimes in :gh:`89313`.) - IDLE and idlelib ---------------- * Apply syntax highlighting to `.pyi` files. (Contributed by Alex Waygood and Terry Jan Reedy in :issue:`45447`.) -* Include prompts when saving Shell with inputs and outputs. - (Contributed by Terry Jan Reedy in :gh:`95191`.) - inspect ------- * Add :func:`inspect.getmembers_static`: return all members without @@ -666,7 +525,7 @@ inspect line number, column and end column). The affected functions are: :func:`inspect.getframeinfo`, :func:`inspect.getouterframes`, :func:`inspect.getinnerframes`, :func:`inspect.stack` and :func:`inspect.trace`. (Contributed by Pablo Galindo in - :gh:`88116`.) + :gh:`88116`) locale ------ @@ -741,7 +600,7 @@ socket * :meth:`~socket.create_connection` has an option to raise, in case of failure to connect, an :exc:`ExceptionGroup` containing all errors instead of only raising the last error. - (Contributed by Irit Katriel in :issue:`29980`.) + (Contributed by Irit Katriel in :issue:`29980`). sqlite3 ------- @@ -791,7 +650,7 @@ sqlite3 * Add :meth:`~sqlite3.Connection.blobopen` to :class:`sqlite3.Connection`. :class:`sqlite3.Blob` allows incremental I/O operations on blobs. - (Contributed by Aviv Palivoda and Erlend E. Aasland in :issue:`24905`.) + (Contributed by Aviv Palivoda and Erlend E. Aasland in :issue:`24905`) sys @@ -814,7 +673,7 @@ sys sysconfig --------- -* Three new :ref:`installation schemes <installation_paths>` +* Two new :ref:`installation schemes <installation_paths>` (*posix_venv*, *nt_venv* and *venv*) were added and are used when Python creates new virtual environments or when it is running from a virtual environment. @@ -855,20 +714,6 @@ time it had a resolution of 1 millisecond (10\ :sup:`-3` seconds). (Contributed by Benjamin Szőke, Dong-hee Na, Eryk Sun and Victor Stinner in :issue:`21302` and :issue:`45429`.) - -traceback ---------- - -* Add :func:`traceback.StackSummary.format_frame_summary` to allow users - to override which frames appear in the traceback, and how they are - formatted. - (Contributed by Ammar Askar in :issue:`44569`.) - -* Add :func:`traceback.TracebackException.print`, which prints the - formatted :exc:`~traceback.TracebackException` instance to a file. - (Contributed by Irit Katriel in :issue:`33809`.) - - typing ------ @@ -891,7 +736,7 @@ For major changes, see :ref:`new-feat-related-type-hints-311`. (Contributed by Jelle Zijlstra in :gh:`90638`.) * :data:`typing.TypedDict` types can now be generic. (Contributed by - Samodya Abeysiriwardane in :gh:`89026`.) + Samodya Abey in :gh:`89026`.) * :class:`~typing.NamedTuple` types can now be generic. (Contributed by Serhiy Storchaka in :issue:`43923`.) @@ -949,7 +794,7 @@ tkinter unicodedata ----------- -* The Unicode database has been updated to version 14.0.0. (Contributed by Benjamin Peterson in :issue:`45190`). +* The Unicode database has been updated to version 14.0.0. (:issue:`45190`). unittest @@ -1034,7 +879,7 @@ Optimizations Faster CPython ============== -CPython 3.11 is on average `25% faster <https://github.com/faster-cpython/ideas#published-results>`_ +CPython 3.11 is on average `25% faster <https://github.com/faster-cpython/ideas/blob/main/main-vs-310.rst>`_ than CPython 3.10 when measured with the `pyperformance <https://github.com/python/pyperformance>`_ benchmark suite, and compiled with GCC on Ubuntu Linux. Depending on your workload, the speedup @@ -1253,13 +1098,6 @@ contributors are volunteers from the community. CPython bytecode changes ======================== -* The bytecode now contains inline cache entries, which take the form of - :opcode:`CACHE` instructions. Many opcodes expect to be followed by an exact - number of caches, and instruct the interpreter to skip over them at runtime. - Populated caches can look like arbitrary instructions, so great care should be - taken when reading or modifying raw, adaptive bytecode containing quickened - data. - * Replaced all numeric ``BINARY_*`` and ``INPLACE_*`` instructions with a single :opcode:`BINARY_OP` implementation. @@ -1303,8 +1141,6 @@ CPython bytecode changes * :opcode:`JUMP_IF_TRUE_OR_POP` and :opcode:`JUMP_IF_FALSE_OR_POP` are now relative rather than absolute. -* :opcode:`RESUME` has been added. It is a no-op. Performs internal tracing, - debugging and optimization checks. Deprecated ========== @@ -1616,6 +1452,13 @@ Changes in the Python API the ``'utf-8'`` encoding. (Contributed by Srinivas Reddy Thatiparthy (శ్రీనివాస్ రెడ్డి తాటిపర్తి) in :issue:`41137`.) +* When sorting using tuples as keys, the order of the result may differ + from earlier releases if the tuple elements don't define a total + ordering (see :ref:`expressions-value-comparisons` for + information on total ordering). It's generally true that the result + of sorting simply isn't well-defined in the absence of a total ordering + on list elements. + * :mod:`calendar`: The :class:`calendar.LocaleTextCalendar` and :class:`calendar.LocaleHTMLCalendar` classes now use :func:`locale.getlocale`, instead of using :func:`locale.getdefaultlocale`, @@ -1637,20 +1480,11 @@ Changes in the Python API is larger than the population size, a :exc:`ValueError` is raised. (Contributed by Raymond Hettinger in :issue:`40465`.) -* :class:`ast.AST` node positions are now validated when provided to - :func:`compile` and other related functions. If invalid positions are detected, - a :exc:`ValueError` will be raised. (Contributed by Pablo Galindo in :gh:`93351`) - -* :c:member:`~PyTypeObject.tp_dictoffset` should be treated as write-only. - It can be set to describe C extension clases to the VM, but should be regarded - as meaningless when read. To get the pointer to the object's dictionary call - :c:func:`PyObject_GenericGetDict` instead. Build Changes ============= -* Building Python now requires a C11 compiler. Optional C11 features are not - required. +* Building Python now requires a C11 compiler without optional C11 features. (Contributed by Victor Stinner in :issue:`46656`.) * Building Python now requires support of IEEE 754 floating point numbers. @@ -1678,7 +1512,7 @@ Build Changes * Freelists for object structs can now be disabled. A new :program:`configure` option :option:`!--without-freelists` can be used to disable all freelists except empty tuple singleton. - (Contributed by Christian Heimes in :issue:`45522`.) + (Contributed by Christian Heimes in :issue:`45522`) * ``Modules/Setup`` and ``Modules/makesetup`` have been improved and tied up. Extension modules can now be built through ``makesetup``. All except some @@ -1688,37 +1522,21 @@ Build Changes * Build dependencies, compiler flags, and linker flags for most stdlib extension modules are now detected by :program:`configure`. libffi, libnsl, - libsqlite3, zlib, bzip2, liblzma, libcrypt, Tcl/Tk, and uuid flags - are detected by ``pkg-config`` (when available). :mod:`tkinter` now - requires ``pkg-config`` command to detect development settings for Tcl/Tk - headers and libraries. + libsqlite3, zlib, bzip2, liblzma, libcrypt, Tcl/Tk libs, and uuid flags + are detected by ``pkg-config`` (when available). (Contributed by Christian Heimes and Erlend Egeberg Aasland in :issue:`45847`, :issue:`45747`, and :issue:`45763`.) .. note:: - Use the environment variables :envvar:`TCLTK_CFLAGS` and - :envvar:`TCLTK_LIBS` to manually specify the location of Tcl/Tk headers - and libraries. The :program:`configure` options ``--with-tcltk-includes`` - and ``--with-tcltk-libs`` have been removed. - - On RHEL 7 and CentOS 7 the development packages do not provide ``tcl.pc`` - and ``tk.pc``, use :envvar:`TCLTK_LIBS="-ltk8.5 -ltkstub8.5 -ltcl8.5"`. - The directory ``Misc/rhel7`` contains ``.pc`` files and instructions - how to build Python with RHEL 7's and CentOS 7's Tcl/Tk and OpenSSL. - -* CPython now has :pep:`11` tier 3 support for cross compiling to WebAssembly - platform ``wasm32-unknown-emscripten`` (Python in the browser). The effort - is inspired by previous work like `Pyodide <https://pyodide.org/>`_. - Emscripten provides a limited subset of POSIX APIs. Python standard - libraries features and modules related to networking, processes, threading, - signals, mmap, and users/groups are not available or don't work. - (Contributed by Christian Heimes and Ethan Smith in :gh:`84461`, - promoted in :gh:`95085`) - -* CPython now has :pep:`11` tier 3 support for cross compiling to WebAssembly - platform ``wasm32-unknown-wasi`` (WebAssembly System Interface). Like on - Emscripten, only a subset of Python's standard library is available on WASI. - (Contributed by Christian Heimes in :gh:`90473`, promoted in :gh:`95085`) + Use the environment variables ``TCLTK_CFLAGS`` and ``TCLTK_LIBS`` to + manually specify the location of Tcl/Tk headers and libraries. + The :program:`configure` options ``--with-tcltk-includes`` and + ``--with-tcltk-libs`` have been removed. + +* CPython now has experimental support for cross compiling to WebAssembly + platform ``wasm32-emscripten``. The effort is inspired by previous work + like Pyodide. + (Contributed by Christian Heimes and Ethan Smith in :issue:`40280`.) * CPython will now use 30-bit digits by default for the Python :class:`int` implementation. Previously, the default was to use 30-bit digits on platforms @@ -1828,13 +1646,10 @@ Porting to Python 3.11 To get a custom code object: create a code object using the compiler, then get a modified version with the ``replace`` method. -* :c:type:`PyCodeObject` no longer has the ``co_code``, ``co_varnames``, - ``co_cellvars`` and ``co_freevars`` fields. Instead, use - :c:func:`PyCode_GetCode`, :c:func:`PyCode_GetVarnames`, - :c:func:`PyCode_GetCellvars` and :c:func:`PyCode_GetFreevars` respectively - to access them via the C API. - (Contributed by Brandt Bucher in :issue:`46841` and Ken Jin in :gh:`92154` - and :gh:`94936`.) +* :c:type:`PyCodeObject` no longer has a ``co_code`` field. Instead, + use ``PyObject_GetAttrString(code_object, "co_code")`` or + :c:func:`PyCode_GetCode` to get the underlying bytes object. + (Contributed by Brandt Bucher in :issue:`46841` and Ken Jin in :gh:`92154`.) * The old trashcan macros (``Py_TRASHCAN_SAFE_BEGIN``/``Py_TRASHCAN_SAFE_END``) are now deprecated. They should be replaced by the new macros @@ -1934,21 +1749,6 @@ Porting to Python 3.11 which are not available in the limited C API. (Contributed by Victor Stinner in :issue:`46007`.) -* The following frame functions and type are now directly available with - ``#include <Python.h>``, it's no longer needed to add - ``#include <frameobject.h>``: - - * :c:func:`PyFrame_Check` - * :c:func:`PyFrame_GetBack` - * :c:func:`PyFrame_GetBuiltins` - * :c:func:`PyFrame_GetGenerator` - * :c:func:`PyFrame_GetGlobals` - * :c:func:`PyFrame_GetLasti` - * :c:func:`PyFrame_GetLocals` - * :c:type:`PyFrame_Type` - - (Contributed by Victor Stinner in :gh:`93937`.) - .. _pyframeobject-3.11-hiding: * The :c:type:`PyFrameObject` structure members have been removed from the @@ -2085,6 +1885,7 @@ Porting to Python 3.11 paths and then modify them, finish initialization and use :c:func:`PySys_GetObject` to retrieve :data:`sys.path` as a Python list object and modify it directly. + Deprecated ---------- @@ -2167,30 +1968,5 @@ Removed API). (Contributed by Victor Stinner in :issue:`45412`.) -* Remove the :c:type:`Py_UNICODE` encoder APIs, - as they have been deprecated since Python 3.3, - are little used - and are inefficient relative to the recommended alternatives. - - The removed functions are: - - * :func:`!PyUnicode_Encode` - * :func:`!PyUnicode_EncodeASCII` - * :func:`!PyUnicode_EncodeLatin1` - * :func:`!PyUnicode_EncodeUTF7` - * :func:`!PyUnicode_EncodeUTF8` - * :func:`!PyUnicode_EncodeUTF16` - * :func:`!PyUnicode_EncodeUTF32` - * :func:`!PyUnicode_EncodeUnicodeEscape` - * :func:`!PyUnicode_EncodeRawUnicodeEscape` - * :func:`!PyUnicode_EncodeCharmap` - * :func:`!PyUnicode_TranslateCharmap` - * :func:`!PyUnicode_EncodeDecimal` - * :func:`!PyUnicode_TransformDecimalToASCII` - - See :pep:`624` for details and - :pep:`migration guidance <624#alternative-apis>`. - (Contributed by Inada Naoki in :issue:`44029`.) - .. _libb2: https://www.blake2.net/ diff --git a/Doc/whatsnew/3.12.rst b/Doc/whatsnew/3.12.rst index e459a3db1f50a8..f98e27079cf475 100644 --- a/Doc/whatsnew/3.12.rst +++ b/Doc/whatsnew/3.12.rst @@ -43,8 +43,8 @@ module. (Contributed by P.Y. Developer in :issue:`12345`.) - This saves the maintainer the effort of going through the VCS log when - researching a change. + This saves the maintainer the effort of going through the Mercurial log + when researching a change. This article explains the new features in Python 3.12, compared to 3.11. @@ -79,23 +79,6 @@ New Features Other Language Changes ====================== -* :class:`types.MappingProxyType` instances are now hashable if the underlying - mapping is hashable. - (Contributed by Serhiy Storchaka in :gh:`87995`.) - -* Converting between :class:`int` and :class:`str` in bases other than 2 - (binary), 4, 8 (octal), 16 (hexadecimal), or 32 such as base 10 (decimal) - now raises a :exc:`ValueError` if the number of digits in string form is - above a limit to avoid potential denial of service attacks due to the - algorithmic complexity. This is a mitigation for `CVE-2020-10735 - <https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-10735>`_. - This limit can be configured or disabled by environment variable, command - line flag, or :mod:`sys` APIs. See the :ref:`integer string conversion - length limitation <int_max_str_digits>` documentation. The default limit - is 4300 digits in string form. - -* :class:`memoryview` now supports the half-float type (the "e" format code). - (Contributed by Dong-hee Na and Antoine Pitrou in :gh:`90751`.) New Modules @@ -107,59 +90,12 @@ New Modules Improved Modules ================ -pathlib -------- - -* Add :meth:`~pathlib.Path.walk` for walking the directory trees and generating - all file or directory names within them, similar to :func:`os.walk`. - (Contributed by Stanislav Zmiev in :gh:`90385`.) - -dis ---- - -* Pseudo instruction opcodes (which are used by the compiler but - do not appear in executable bytecode) are now exposed in the - :mod:`dis` module. - :data:`~dis.HAVE_ARGUMENT` is still relevant to real opcodes, - but it is not useful for pseudo instructions. Use the new - :data:`~dis.hasarg` collection instead. - (Contributed by Irit Katriel in :gh:`94216`.) - -os --- - -* Add :data:`os.PIDFD_NONBLOCK` to open a file descriptor - for a process with :func:`os.pidfd_open` in non-blocking mode. - (Contributed by Kumar Aditya in :gh:`93312`.) - - -sqlite3 -------- - -* Add a :ref:`command-line interface <sqlite3-cli>`. - (Contributed by Erlend E. Aasland in :gh:`77617`.) - -threading ---------- - -* Add :func:`threading.settrace_all_threads` and - :func:`threading.setprofile_all_threads` that allow to set tracing and - profiling functions in all running threads in addition to the calling one. - (Contributed by Pablo Galindo in :gh:`93503`.) - -unicodedata ------------ - -* The Unicode database has been updated to version 15.0.0. (Contributed by - Benjamin Peterson in :gh:`96734`). - tempfile -------- -The :class:`tempfile.NamedTemporaryFile` class has a new optional parameter +The :class:`tempfile.NamedTemporaryFile` class has a new optional parameter *delete_on_close* (Contributed by Evgeny Zorin in :gh:`58451`.) - Optimizations ============= @@ -167,242 +103,22 @@ Optimizations It reduces object size by 8 or 16 bytes on 64bit platform. (:pep:`623`) (Contributed by Inada Naoki in :gh:`92536`.) -* Added experimental support for using the BOLT binary optimizer in the build - process, which improves performance by 1-5%. - (Contributed by Kevin Modzelewski in :gh:`90536`.) - - -CPython bytecode changes -======================== - -* Removed the :opcode:`LOAD_METHOD` instruction. It has been merged into - :opcode:`LOAD_ATTR`. :opcode:`LOAD_ATTR` will now behave like the old - :opcode:`LOAD_METHOD` instruction if the low bit of its oparg is set. - (Contributed by Ken Jin in :gh:`93429`.) - Deprecated ========== -* :class:`typing.Hashable` and :class:`typing.Sized` aliases for :class:`collections.abc.Hashable` - and :class:`collections.abc.Sized`. (:gh:`94309`.) - -* The :mod:`sqlite3` :ref:`default adapters and converters - <sqlite3-default-converters>` are now deprecated. - Instead, use the :ref:`sqlite3-adapter-converter-recipes` - and tailor them to your needs. - (Contributed by Erlend E. Aasland in :gh:`90016`.) - - -Pending Removal in Python 3.13 ------------------------------- - -The following modules and APIs have been deprecated in earlier Python releases, -and will be removed in Python 3.13. - -Modules (see :pep:`594`): - -* :mod:`aifc` -* :mod:`audioop` -* :mod:`cgi` -* :mod:`cgitb` -* :mod:`chunk` -* :mod:`crypt` -* :mod:`imghdr` -* :mod:`mailcap` -* :mod:`msilib` -* :mod:`nis` -* :mod:`nntplib` -* :mod:`ossaudiodev` -* :mod:`pipes` -* :mod:`sndhdr` -* :mod:`spwd` -* :mod:`sunau` -* :mod:`telnetlib` -* :mod:`uu` -* :mod:`xdrlib` - -APIs: - -* :class:`configparser.LegacyInterpolation` (:gh:`90765`) -* :func:`locale.getdefaultlocale` (:gh:`90817`) -* :meth:`turtle.RawTurtle.settiltangle` (:gh:`50096`) -* :func:`unittest.findTestCases` (:gh:`50096`) -* :func:`unittest.makeSuite` (:gh:`50096`) -* :func:`unittest.getTestCaseNames` (:gh:`50096`) -* :class:`webbrowser.MacOSX` (:gh:`86421`) - -Pending Removal in Python 3.14 -============================== - -* Deprecated the following :mod:`importlib.abc` classes, scheduled for removal in - Python 3.14: - - * :class:`importlib.abc.ResourceReader` - * :class:`importlib.abc.Traversable` - * :class:`importlib.abc.TraversableResources` - - Use :mod:`importlib.resources.abc` classes instead: - - * :class:`importlib.resources.abc.TraversableResources` - * :class:`importlib.resources.abc.Traversable` - * :class:`importlib.resources.abc.TraversableResources` - - (Contributed by Jason R. Coombs and Hugo van Kemenade in :gh:`93963`.) - -* Creating :c:data:`immutable types <Py_TPFLAGS_IMMUTABLETYPE>` with mutable - bases using the C API. - - -Pending Removal in Future Versions ----------------------------------- - -The following APIs were deprecated in earlier Python versions and will be removed, -although there is currently no date scheduled for their removal. - -* :class:`typing.Text` (:gh:`92332`) - -* Currently Python accepts numeric literals immediately followed by keywords, - for example ``0in x``, ``1or x``, ``0if 1else 2``. It allows confusing - and ambiguous expressions like ``[0x1for x in y]`` (which can be - interpreted as ``[0x1 for x in y]`` or ``[0x1f or x in y]``). - A syntax warning is raised if the numeric literal is - immediately followed by one of keywords :keyword:`and`, :keyword:`else`, - :keyword:`for`, :keyword:`if`, :keyword:`in`, :keyword:`is` and :keyword:`or`. - In a future release it will be changed to a syntax error. (:gh:`87999`) Removed ======= -* Removed many old deprecated :mod:`unittest` features: - - - A number of :class:`~unittest.TestCase` method aliases: - - ============================ =============================== =============== - Deprecated alias Method Name Deprecated in - ============================ =============================== =============== - ``failUnless`` :meth:`.assertTrue` 3.1 - ``failIf`` :meth:`.assertFalse` 3.1 - ``failUnlessEqual`` :meth:`.assertEqual` 3.1 - ``failIfEqual`` :meth:`.assertNotEqual` 3.1 - ``failUnlessAlmostEqual`` :meth:`.assertAlmostEqual` 3.1 - ``failIfAlmostEqual`` :meth:`.assertNotAlmostEqual` 3.1 - ``failUnlessRaises`` :meth:`.assertRaises` 3.1 - ``assert_`` :meth:`.assertTrue` 3.2 - ``assertEquals`` :meth:`.assertEqual` 3.2 - ``assertNotEquals`` :meth:`.assertNotEqual` 3.2 - ``assertAlmostEquals`` :meth:`.assertAlmostEqual` 3.2 - ``assertNotAlmostEquals`` :meth:`.assertNotAlmostEqual` 3.2 - ``assertRegexpMatches`` :meth:`.assertRegex` 3.2 - ``assertRaisesRegexp`` :meth:`.assertRaisesRegex` 3.2 - ``assertNotRegexpMatches`` :meth:`.assertNotRegex` 3.5 - ============================ =============================== =============== - - You can use https://github.com/isidentical/teyit to automatically modernise - your unit tests. - - - Undocumented and broken :class:`~unittest.TestCase` method - ``assertDictContainsSubset`` (deprecated in Python 3.2). - - - Undocumented :meth:`TestLoader.loadTestsFromModule - <unittest.TestLoader.loadTestsFromModule>` parameter *use_load_tests* - (deprecated and ignored since Python 3.2). - - - An alias of the :class:`~unittest.TextTestResult` class: - ``_TextTestResult`` (deprecated in Python 3.2). - - (Contributed by Serhiy Storchaka in :issue:`45162`.) - -* Several names deprecated in the :mod:`configparser` way back in 3.2 have - been removed per :gh:`89336`: - - * :class:`configparser.ParsingError` no longer has a ``filename`` attribute - or argument. Use the ``source`` attribute and argument instead. - * :mod:`configparser` no longer has a ``SafeConfigParser`` class. Use the - shorter :class:`~configparser.ConfigParser` name instead. - * :class:`configparser.ConfigParser` no longer has a ``readfp`` method. - Use :meth:`~configparser.ConfigParser.read_file` instead. - * The following undocumented :mod:`sqlite3` features, deprecated in Python 3.10, are now removed: * ``sqlite3.enable_shared_cache()`` * ``sqlite3.OptimizedUnicode`` - If a shared cache must be used, open the database in URI mode using the - ``cache=shared`` query parameter. - - The ``sqlite3.OptimizedUnicode`` text factory has been an alias for - :class:`str` since Python 3.3. Code that previously set the text factory to - ``OptimizedUnicode`` can either use ``str`` explicitly, or rely on the - default value which is also ``str``. - - (Contributed by Erlend E. Aasland in :gh:`92548`.) - -* The ``--experimental-isolated-subinterpreters`` configure flag - (and corresponding ``EXPERIMENTAL_ISOLATED_SUBINTERPRETERS``) - have been removed. - -* ``smtpd`` has been removed according to the schedule in :pep:`594`, - having been deprecated in Python 3.4.7 and 3.5.4. - Use aiosmtpd_ PyPI module or any other - :mod:`asyncio`-based server instead. - (Contributed by Oleg Iarygin in :gh:`93243`.) - -.. _aiosmtpd: https://pypi.org/project/aiosmtpd/ - -* Remove ``io.OpenWrapper`` and ``_pyio.OpenWrapper``, deprecated in Python - 3.10: just use :func:`open` instead. The :func:`open` (:func:`io.open`) - function is a built-in function. Since Python 3.10, :func:`_pyio.open` is - also a static method. - (Contributed by Victor Stinner in :gh:`94169`.) - -* Remove the :func:`ssl.RAND_pseudo_bytes` function, deprecated in Python 3.6: - use :func:`os.urandom` or :func:`ssl.RAND_bytes` instead. - (Contributed by Victor Stinner in :gh:`94199`.) - -* :mod:`gzip`: Remove the ``filename`` attribute of :class:`gzip.GzipFile`, - deprecated since Python 2.6, use the :attr:`~gzip.GzipFile.name` attribute - instead. In write mode, the ``filename`` attribute added ``'.gz'`` file - extension if it was not present. - (Contributed by Victor Stinner in :gh:`94196`.) - -* Remove the :func:`ssl.match_hostname` function. The - :func:`ssl.match_hostname` was deprecated in Python 3.7. OpenSSL performs - hostname matching since Python 3.7, Python no longer uses the - :func:`ssl.match_hostname` function. - (Contributed by Victor Stinner in :gh:`94199`.) - -* Remove the :func:`locale.format` function, deprecated in Python 3.7: - use :func:`locale.format_string` instead. - (Contributed by Victor Stinner in :gh:`94226`.) - -* :mod:`hashlib`: Remove the pure Python implementation of - :func:`hashlib.pbkdf2_hmac()`, deprecated in Python 3.10. Python 3.10 and - newer requires OpenSSL 1.1.1 (:pep:`644`): this OpenSSL version provides - a C implementation of :func:`~hashlib.pbkdf2_hmac()` which is faster. - (Contributed by Victor Stinner in :gh:`94199`.) - -* :mod:`xml.etree`: Remove the ``ElementTree.Element.copy()`` method of the - pure Python implementation, deprecated in Python 3.10, use the - :func:`copy.copy` function instead. The C implementation of :mod:`xml.etree` - has no ``copy()`` method, only a ``__copy__()`` method. - (Contributed by Victor Stinner in :gh:`94383`.) - -* :mod:`zipimport`: Remove ``find_loader()`` and ``find_module()`` methods, - deprecated in Python 3.10: use the ``find_spec()`` method instead. See - :pep:`451` for the rationale. - (Contributed by Victor Stinner in :gh:`94379`.) - -* Remove the :func:`ssl.wrap_socket` function, deprecated in Python 3.7: - instead, create a :class:`ssl.SSLContext` object and call its - :class:`ssl.SSLContext.wrap_socket` method. Any package that still uses - :func:`ssl.wrap_socket` is broken and insecure. The function neither sends a - SNI TLS extension nor validates server hostname. Code is subject to `CWE-295 - <https://cwe.mitre.org/data/definitions/295.html>`_: Improper Certificate - Validation. - (Contributed by Victor Stinner in :gh:`94199`.) + (Contributed by Erlend E. Aasland in :gh:`92548`) Porting to Python 3.12 @@ -429,40 +145,15 @@ Changes in the Python API select from a larger range than ``randrange(10**25)``. (Originally suggested by Serhiy Storchaka gh-86388.) -* :class:`argparse.ArgumentParser` changed encoding and error handler - for reading arguments from file (e.g. ``fromfile_prefix_chars`` option) - from default text encoding (e.g. :func:`locale.getpreferredencoding(False) <locale.getpreferredencoding>`) - to :term:`filesystem encoding and error handler`. - Argument files should be encoded in UTF-8 instead of ANSI Codepage on Windows. - -* Removed the ``asyncore``-based ``smtpd`` module deprecated in Python 3.4.7 - and 3.5.4. A recommended replacement is the - :mod:`asyncio`-based aiosmtpd_ PyPI module. - -* :func:`shlex.split`: Passing ``None`` for *s* argument now raises an - exception, rather than reading :data:`sys.stdin`. The feature was deprecated - in Python 3.9. - (Contributed by Victor Stinner in :gh:`94352`.) - Build Changes ============= -* Python no longer uses ``setup.py`` to build shared C extension modules. - Build parameters like headers and libraries are detected in ``configure`` - script. Extensions are built by ``Makefile``. Most extensions use - ``pkg-config`` and fall back to manual detection. - (Contributed by Christian Heimes in :gh:`93939`.) - * ``va_start()`` with two parameters, like ``va_start(args, format),`` is now required to build Python. ``va_start()`` is no longer called with a single parameter. (Contributed by Kumar Aditya in :gh:`93207`.) -* CPython now uses the ThinLTO option as the default link time optimization policy - if the Clang compiler accepts the flag. - (Contributed by Dong-hee Na in :gh:`89536`.) - C API Changes ============= @@ -475,38 +166,6 @@ New Features an additional metaclass argument. (Contributed by Wenzel Jakob in :gh:`93012`.) -* API for creating objects that can be called using - :ref:`the vectorcall protocol <vectorcall>` was added to the - :ref:`Limited API <stable>`: - - * :const:`Py_TPFLAGS_HAVE_VECTORCALL` - * :c:func:`PyVectorcall_NARGS` - * :c:func:`PyVectorcall_Call` - * :c:type:`vectorcallfunc` - - The :const:`Py_TPFLAGS_HAVE_VECTORCALL` flag is now removed from a class - when the class's :py:meth:`~object.__call__` method is reassigned. - This makes vectorcall safe to use with mutable types (i.e. heap types - without the :const:`immutable <Py_TPFLAGS_IMMUTABLETYPE>` flag). - Mutable types that do not override :c:member:`~PyTypeObject.tp_call` now - inherit the ``Py_TPFLAGS_HAVE_VECTORCALL`` flag. - (Contributed by Petr Viktorin in :gh:`93274`.) - - The :const:`Py_TPFLAGS_MANAGED_DICT` and :const:`Py_TPFLAGS_MANAGED_WEAKREF` - flags have been added. This allows extensions classes to support object - ``__dict__`` and weakrefs with less bookkeeping, - using less memory and with faster access. - -* Added two new public functions, - :c:func:`PyEval_SetProfileAllThreads` and - :c:func:`PyEval_SetTraceAllThreads`, that allow to set tracing and profiling - functions in all running threads in addition to the calling one. (Contributed - by Pablo Galindo in :gh:`93503`.) - -* Added new function :c:func:`PyFunction_SetVectorcall` to the C API - which sets the vectorcall field of a given :c:type:`PyFunctionObject`. - (Contributed by Andrew Frost in :gh:`92257`.) - Porting to Python 3.12 ---------------------- @@ -517,79 +176,9 @@ Porting to Python 3.12 ``Py_UNICODE*`` based format (e.g. ``u``, ``Z``) anymore. Please migrate to other formats for Unicode like ``s``, ``z``, ``es``, and ``U``. -* ``tp_weaklist`` for all static builtin types is always ``NULL``. - This is an internal-only field on ``PyTypeObject`` - but we're pointing out the change in case someone happens to be - accessing the field directly anyway. To avoid breakage, consider - using the existing public C-API instead, or, if necessary, the - (internal-only) ``_PyObject_GET_WEAKREFS_LISTPTR()`` macro. - -* This internal-only :c:member:`PyTypeObject.tp_subclasses` may now not be - a valid object pointer. Its type was changed to :c:expr:`void *` to - reflect this. We mention this in case someone happens to be accessing the - internal-only field directly. - - To get a list of subclasses, call the Python method - :py:meth:`~class.__subclasses__` (using :c:func:`PyObject_CallMethod`, - for example). - -* An unrecognized format character in :c:func:`PyUnicode_FromFormat` and - :c:func:`PyUnicode_FromFormatV` now sets a :exc:`SystemError`. - In previous versions it caused all the rest of the format string to be - copied as-is to the result string, and any extra arguments discarded. - (Contributed by Serhiy Storchaka in :gh:`95781`.) - -* Fixed wrong sign placement in :c:func:`PyUnicode_FromFormat` and - :c:func:`PyUnicode_FromFormatV`. - (Contributed by Philip Georgi in :gh:`95504`.) - -* Extension classes wanting to add a ``__dict__`` or weak reference slot - should use :const:`Py_TPFLAGS_MANAGED_DICT` and - :const:`Py_TPFLAGS_MANAGED_WEAKREF` instead of ``tp_dictoffset`` and - ``tp_weaklistoffset``, respectively. - The use of ``tp_dictoffset`` and ``tp_weaklistoffset`` is still - supported, but does not fully support multiple inheritance - (:gh: `95589`), and performance may be worse. - Classes declaring :const:`Py_TPFLAGS_MANAGED_DICT` should call - :c:func:`_PyObject_VisitManagedDict` and :c:func:`_PyObject_ClearManagedDict` - to traverse and clear their instance's dictionaries. - To clear weakrefs, call :c:func:`PyObject_ClearWeakRefs`, as before. - Deprecated ---------- -* Deprecate global configuration variable: - - * :c:var:`Py_DebugFlag`: use :c:member:`PyConfig.parser_debug` - * :c:var:`Py_VerboseFlag`: use :c:member:`PyConfig.verbose` - * :c:var:`Py_QuietFlag`: use :c:member:`PyConfig.quiet` - * :c:var:`Py_InteractiveFlag`: use :c:member:`PyConfig.interactive` - * :c:var:`Py_InspectFlag`: use :c:member:`PyConfig.inspect` - * :c:var:`Py_OptimizeFlag`: use :c:member:`PyConfig.optimization_level` - * :c:var:`Py_NoSiteFlag`: use :c:member:`PyConfig.site_import` - * :c:var:`Py_BytesWarningFlag`: use :c:member:`PyConfig.bytes_warning` - * :c:var:`Py_FrozenFlag`: use :c:member:`PyConfig.pathconfig_warnings` - * :c:var:`Py_IgnoreEnvironmentFlag`: use :c:member:`PyConfig.use_environment` - * :c:var:`Py_DontWriteBytecodeFlag`: use :c:member:`PyConfig.write_bytecode` - * :c:var:`Py_NoUserSiteDirectory`: use :c:member:`PyConfig.user_site_directory` - * :c:var:`Py_UnbufferedStdioFlag`: use :c:member:`PyConfig.buffered_stdio` - * :c:var:`Py_HashRandomizationFlag`: use :c:member:`PyConfig.use_hash_seed` - and :c:member:`PyConfig.hash_seed` - * :c:var:`Py_IsolatedFlag`: use :c:member:`PyConfig.isolated` - * :c:var:`Py_LegacyWindowsFSEncodingFlag`: use :c:member:`PyConfig.legacy_windows_fs_encoding` - * :c:var:`Py_LegacyWindowsStdioFlag`: use :c:member:`PyConfig.legacy_windows_stdio` - * :c:var:`Py_FileSystemDefaultEncoding`: use :c:member:`PyConfig.filesystem_encoding` - * :c:var:`Py_FileSystemDefaultEncodeErrors`: use :c:member:`PyConfig.filesystem_errors` - * :c:var:`Py_UTF8Mode`: use :c:member:`PyPreConfig.utf8_mode` (see :c:func:`Py_PreInitialize`) - - The :c:func:`Py_InitializeFromConfig` API should be used with - :c:type:`PyConfig` instead. - (Contributed by Victor Stinner in :gh:`77782`.) - -* Creating :c:data:`immutable types <Py_TPFLAGS_IMMUTABLETYPE>` with mutable - bases is deprecated and will be disabled in Python 3.14. - - Removed ------- diff --git a/Doc/whatsnew/3.2.rst b/Doc/whatsnew/3.2.rst index e2681bc983a8af..ec01a70f8ae0af 100644 --- a/Doc/whatsnew/3.2.rst +++ b/Doc/whatsnew/3.2.rst @@ -48,11 +48,10 @@ This saves the maintainer the effort of going through the SVN log when researching a change. -This article explains the new features in Python 3.2 as compared to 3.1. -Python 3.2 was released on February 20, 2011. It +This article explains the new features in Python 3.2 as compared to 3.1. It focuses on a few highlights and gives a few examples. For full details, see the `Misc/NEWS -<https://github.com/python/cpython/blob/076ca6c3c8df3030307e548d9be792ce3c1c6eea/Misc/NEWS>`__ +<https://github.com/python/cpython/blob/076ca6c3c8df3030307e548d9be792ce3c1c6eea/Misc/NEWS>`_ file. .. seealso:: @@ -322,7 +321,7 @@ aspects that are visible to the programmer: * The tag that is unique to each interpreter is accessible from the :mod:`imp` module: - >>> import imp # doctest: +SKIP + >>> import imp >>> imp.get_tag() # doctest: +SKIP 'cpython-32' @@ -330,7 +329,7 @@ aspects that are visible to the programmer: be smarter. It is no longer sufficient to simply strip the "c" from a ".pyc" filename. Instead, use the new functions in the :mod:`imp` module: - >>> imp.source_from_cache('c:/py32/lib/__pycache__/collections.cpython-32.pyc') # doctest: +SKIP + >>> imp.source_from_cache('c:/py32/lib/__pycache__/collections.cpython-32.pyc') 'c:/py32/lib/collections.py' >>> imp.cache_from_source('c:/py32/lib/collections.py') # doctest: +SKIP 'c:/py32/lib/__pycache__/collections.cpython-32.pyc' @@ -1647,7 +1646,7 @@ for secure (encrypted, authenticated) internet connections: * The :func:`ssl.wrap_socket` constructor function now takes a *ciphers* argument. The *ciphers* string lists the allowed encryption algorithms using the format described in the `OpenSSL documentation - <https://www.openssl.org/docs/man1.0.2/man1/ciphers.html#CIPHER-LIST-FORMAT>`__. + <https://www.openssl.org/docs/manmaster/man1/ciphers.html#CIPHER-LIST-FORMAT>`__. * When linked against recent versions of OpenSSL, the :mod:`ssl` module now supports the Server Name Indication extension to the TLS protocol, allowing @@ -1817,7 +1816,8 @@ names. =============================== ============================== Likewise, the ``TestCase.fail*`` methods deprecated in Python 3.1 are expected - to be removed in Python 3.3. + to be removed in Python 3.3. Also see the :ref:`deprecated-aliases` section in + the :mod:`unittest` documentation. (Contributed by Ezio Melotti; :issue:`9424`.) @@ -2056,7 +2056,7 @@ information: such as "3.2". It also provides access to the paths and variables corresponding to one of -seven named schemes used by ``distutils``. Those include *posix_prefix*, +seven named schemes used by :mod:`distutils`. Those include *posix_prefix*, *posix_home*, *posix_user*, *nt*, *nt_user*, *os2*, *os2_home*: * :func:`~sysconfig.get_paths` makes a dictionary containing installation paths @@ -2506,7 +2506,7 @@ IDLE Code Repository =============== -In addition to the existing Subversion code repository at https://svn.python.org +In addition to the existing Subversion code repository at http://svn.python.org there is now a `Mercurial <https://www.mercurial-scm.org/>`_ repository at https://hg.python.org/\ . @@ -2592,12 +2592,10 @@ Changes to Python's build process and to the C API include: longer used and it had never been documented (:issue:`8837`). There were a number of other small changes to the C-API. See the -`Misc/NEWS <https://github.com/python/cpython/blob/v3.2.6/Misc/NEWS>`__ -file for a complete list. +:source:`Misc/NEWS` file for a complete list. Also, there were a number of updates to the Mac OS X build, see -`Mac/BuildScript/README.txt <https://github.com/python/cpython/blob/v3.2.6/Mac/BuildScript/README.txt>`_ -for details. For users running a 32/64-bit +:source:`Mac/BuildScript/README.txt` for details. For users running a 32/64-bit build, there is a known problem with the default Tcl/Tk on Mac OS X 10.6. Accordingly, we recommend installing an updated alternative such as `ActiveState Tcl/Tk 8.5.9 <https://www.activestate.com/activetcl/downloads>`_\. diff --git a/Doc/whatsnew/3.3.rst b/Doc/whatsnew/3.3.rst index 1b5b6831e4305c..361e6db07c3cdb 100644 --- a/Doc/whatsnew/3.3.rst +++ b/Doc/whatsnew/3.3.rst @@ -101,7 +101,7 @@ PEP 405: Virtual Environments Virtual environments help create separate Python setups while sharing a system-wide base install, for ease of maintenance. Virtual environments -have their own set of private site packages (i.e. locally installed +have their own set of private site packages (i.e. locally-installed libraries), and are optionally segregated from the system-wide site packages. Their concept and implementation are inspired by the popular ``virtualenv`` third-party package, but benefit from tighter integration @@ -898,7 +898,7 @@ an IP address associated with a specific IP subnet). lzma ---- -The newly added :mod:`lzma` module provides data compression and decompression +The newly-added :mod:`lzma` module provides data compression and decompression using the LZMA algorithm, including support for the ``.xz`` and ``.lzma`` file formats. @@ -1096,7 +1096,7 @@ decimal C-module and libmpdec written by Stefan Krah. The new C version of the decimal module integrates the high speed libmpdec -library for arbitrary precision correctly rounded decimal floating point +library for arbitrary precision correctly-rounded decimal floating point arithmetic. libmpdec conforms to IBM's General Decimal Arithmetic Specification. Performance gains range from 10x for database applications to 100x for @@ -1106,7 +1106,7 @@ the precision is user configurable, the exact figures may vary. For example, in integer bignum arithmetic the differences can be significantly higher. The following table is meant as an illustration. Benchmarks are available -at https://www.bytereef.org/mpdecimal/quickstart.html. +at http://www.bytereef.org/mpdecimal/quickstart.html. +---------+-------------+--------------+-------------+ | | decimal.py | _decimal | speedup | @@ -1158,8 +1158,8 @@ API changes in order to obtain a rounded or inexact value. -* The power function in decimal.py is always correctly rounded. In the - C version, it is defined in terms of the correctly rounded +* The power function in decimal.py is always correctly-rounded. In the + C version, it is defined in terms of the correctly-rounded :meth:`~decimal.Decimal.exp` and :meth:`~decimal.Decimal.ln` functions, but the final result is only "almost always correctly rounded". @@ -2137,7 +2137,7 @@ zlib ---- New attribute :attr:`zlib.Decompress.eof` makes it possible to distinguish -between a properly formed compressed stream and an incomplete or truncated one. +between a properly-formed compressed stream and an incomplete or truncated one. (Contributed by Nadeem Vawda in :issue:`12646`.) New attribute :attr:`zlib.ZLIB_RUNTIME_VERSION` reports the version string of diff --git a/Doc/whatsnew/3.4.rst b/Doc/whatsnew/3.4.rst index 95e86550bc0323..023736134b2ca9 100644 --- a/Doc/whatsnew/3.4.rst +++ b/Doc/whatsnew/3.4.rst @@ -247,7 +247,7 @@ projects. However, as this migration is currently still incomplete, the legacy versions of those guides remaining available as :ref:`install-index` -and :ref:`setuptools-index`. +and :ref:`distutils-index`. .. seealso:: @@ -1659,7 +1659,7 @@ The :class:`~unittest.TestCase` class has a new method, :keyword:`with` block becomes a "sub-test". This context manager allows a test method to dynamically generate subtests by, say, calling the ``subTest`` context manager inside a loop. A single test method can thereby produce an -indefinite number of separately identified and separately counted tests, all of +indefinite number of separately-identified and separately-counted tests, all of which will run even if one or more of them fail. For example:: class NumbersTest(unittest.TestCase): @@ -2056,7 +2056,7 @@ Significant Optimizations ``malloc`` in ``obmalloc``. Artificial benchmarks show about a 3% memory savings. -* :func:`os.urandom` now uses a lazily opened persistent file descriptor +* :func:`os.urandom` now uses a lazily-opened persistent file descriptor so as to avoid using many file descriptors when run in parallel from multiple threads. (Contributed by Antoine Pitrou in :issue:`18756`.) diff --git a/Doc/whatsnew/3.5.rst b/Doc/whatsnew/3.5.rst index a5c2d9bb0874e2..1defee4090f288 100644 --- a/Doc/whatsnew/3.5.rst +++ b/Doc/whatsnew/3.5.rst @@ -1079,7 +1079,7 @@ Both the ``build`` and ``build_ext`` commands now accept a ``-j`` option to enable parallel building of extension modules. (Contributed by Antoine Pitrou in :issue:`5309`.) -The ``distutils`` module now supports ``xz`` compression, and can be +The :mod:`distutils` module now supports ``xz`` compression, and can be enabled by passing ``xztar`` as an argument to ``bdist --format``. (Contributed by Serhiy Storchaka in :issue:`16314`.) @@ -1253,7 +1253,7 @@ imghdr ------ The :func:`~imghdr.what` function now recognizes the -`OpenEXR <https://www.openexr.com>`_ format +`OpenEXR <http://www.openexr.com>`_ format (contributed by Martin Vignali and Claudiu Popa in :issue:`20295`), and the `WebP <https://en.wikipedia.org/wiki/WebP>`_ format (contributed by Fabrice Aneche and Claudiu Popa in :issue:`20197`.) diff --git a/Doc/whatsnew/3.6.rst b/Doc/whatsnew/3.6.rst index a587086ea77632..d35a0fd9d9da38 100644 --- a/Doc/whatsnew/3.6.rst +++ b/Doc/whatsnew/3.6.rst @@ -1012,7 +1012,7 @@ distutils --------- The ``default_format`` attribute has been removed from -``distutils.command.sdist.sdist`` and the ``formats`` +:class:`distutils.command.sdist.sdist` and the ``formats`` attribute defaults to ``['gztar']``. Although not anticipated, any code relying on the presence of ``default_format`` may need to be adapted. See :issue:`27819` for more details. @@ -1986,7 +1986,7 @@ distutils ~~~~~~~~~ The undocumented ``extra_path`` argument to the -``distutils.Distribution`` constructor is now considered deprecated +:class:`~distutils.Distribution` constructor is now considered deprecated and will raise a warning if set. Support for this parameter will be removed in a future Python release. See :issue:`27919` for details. @@ -2117,8 +2117,7 @@ API and Feature Removals platform specific ``Lib/plat-*/`` directories, but were chronically out of date, inconsistently available across platforms, and unmaintained. The script that created these modules is still available in the source - distribution at `Tools/scripts/h2py.py - <https://github.com/python/cpython/blob/v3.6.15/Tools/scripts/h2py.py>`_. + distribution at :source:`Tools/scripts/h2py.py`. * The deprecated ``asynchat.fifo`` class has been removed. @@ -2243,7 +2242,7 @@ Changes in the Python API accepting additional keyword arguments will need to adjust their calls to :meth:`type.__new__` (whether direct or via :class:`super`) accordingly. -* In ``distutils.command.sdist.sdist``, the ``default_format`` +* In :class:`distutils.command.sdist.sdist`, the ``default_format`` attribute has been removed and is no longer honored. Instead, the gzipped tarfile format is the default on all platforms and no platform-specific selection is made. diff --git a/Doc/whatsnew/3.7.rst b/Doc/whatsnew/3.7.rst index 2e9738721a77e9..49246be57639d1 100644 --- a/Doc/whatsnew/3.7.rst +++ b/Doc/whatsnew/3.7.rst @@ -291,7 +291,7 @@ PEP 539: New C API for Thread-Local Storage While Python provides a C API for thread-local storage support; the existing :ref:`Thread Local Storage (TLS) API <thread-local-storage-api>` has used :c:type:`int` to represent TLS keys across all platforms. This has not -generally been a problem for officially support platforms, but that is neither +generally been a problem for officially-support platforms, but that is neither POSIX-compliant, nor portable in any practical sense. :pep:`539` changes this by providing a new :ref:`Thread Specific Storage (TSS) @@ -611,7 +611,7 @@ Contributed by Barry Warsaw and Brett Cannon in :issue:`32248`. .. seealso:: - `importlib_resources <https://importlib-resources.readthedocs.io/en/latest/>`_ + `importlib_resources <http://importlib-resources.readthedocs.io/en/latest/>`_ -- a PyPI backport for earlier Python versions. @@ -1175,7 +1175,7 @@ of :func:`os.writev` and :func:`os.pwrite`). (Contributed by Pablo Galindo in :issue:`31368`.) The mode argument of :func:`os.makedirs` no longer affects the file -permission bits of newly created intermediate-level directories. +permission bits of newly-created intermediate-level directories. (Contributed by Serhiy Storchaka in :issue:`19930`.) :func:`os.dup2` now returns the new file descriptor. Previously, ``None`` @@ -1906,7 +1906,7 @@ Other CPython Implementation Changes variables were defined. Previously, the order was undefined. (Contributed by Raymond Hettinger in :issue:`32690`.) -* The ``distutils`` ``upload`` command no longer tries to change CR +* The :mod:`distutils` ``upload`` command no longer tries to change CR end-of-line characters to CRLF. This fixes a corruption issue with sdists that ended with a byte equivalent to CR. (Contributed by Bo Bayles in :issue:`32304`.) @@ -2120,8 +2120,7 @@ Platform Support Removals of other LTS Linux releases (e.g. RHEL/CentOS 7.5, SLES 12-SP3), use OpenSSL 1.0.2 or later, and remain supported in the default build configuration. - CPython's own `CI configuration file - <https://github.com/python/cpython/blob/v3.7.13/.travis.yml>`_ provides an + CPython's own :source:`CI configuration file <.travis.yml>` provides an example of using the SSL :source:`compatibility testing infrastructure <Tools/ssl/multissltests.py>` in CPython's test suite to build and link against OpenSSL 1.1.0 rather than an @@ -2181,7 +2180,7 @@ The following features and APIs have been removed from Python 3.7: :func:`ssl.wrap_socket` or :class:`ssl.SSLContext`. (Contributed by Christian Heimes in :issue:`32951`.) -* The unused ``distutils`` ``install_misc`` command has been removed. +* The unused :mod:`distutils` ``install_misc`` command has been removed. (Contributed by Eric N. Vander Weele in :issue:`29218`.) @@ -2296,7 +2295,7 @@ Changes in the Python API (Contributed by Serhiy Storchaka in :issue:`29192`.) * The *mode* argument of :func:`os.makedirs` no longer affects the file - permission bits of newly created intermediate-level directories. + permission bits of newly-created intermediate-level directories. To set their file permission bits you can set the umask before invoking ``makedirs()``. (Contributed by Serhiy Storchaka in :issue:`19930`.) diff --git a/Doc/whatsnew/3.8.rst b/Doc/whatsnew/3.8.rst index 077de05f34c93e..c2f78f1531317a 100644 --- a/Doc/whatsnew/3.8.rst +++ b/Doc/whatsnew/3.8.rst @@ -45,7 +45,6 @@ :Editor: Raymond Hettinger This article explains the new features in Python 3.8, compared to 3.7. -Python 3.8 was released on October 14, 2019. For full details, see the :ref:`changelog <changelog>`. .. testsetup:: @@ -2008,8 +2007,6 @@ Changes in the Python API ``replace()`` method of :class:`types.CodeType` can be used to make the code future-proof. -* The parameter ``digestmod`` for :func:`hmac.new` no longer uses the MD5 digest - by default. Changes in the C API -------------------- diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst index 6deaede4953bdc..6dee55e5a0e555 100644 --- a/Doc/whatsnew/3.9.rst +++ b/Doc/whatsnew/3.9.rst @@ -45,7 +45,7 @@ when researching a change. This article explains the new features in Python 3.9, compared to 3.8. -Python 3.9 was released on October 5, 2020. +Python 3.9 was released on October 5th, 2020. For full details, see the :ref:`changelog <changelog>`. diff --git a/Grammar/python.gram b/Grammar/python.gram index 51f846a57f404b..15c40b6bbbacdc 100644 --- a/Grammar/python.gram +++ b/Grammar/python.gram @@ -249,7 +249,7 @@ class_def[stmt_ty]: class_def_raw[stmt_ty]: | invalid_class_def_raw - | 'class' a=NAME b=['(' z=[arguments] ')' { z }] ':' c=block { + | 'class' a=NAME b=['(' z=[arguments] ')' { z }] &&':' c=block { _PyAST_ClassDef(a->v.Name.id, (b) ? ((expr_ty) b)->v.Call.args : NULL, (b) ? ((expr_ty) b)->v.Call.keywords : NULL, @@ -287,9 +287,9 @@ params[arguments_ty]: parameters[arguments_ty]: | a=slash_no_default b[asdl_arg_seq*]=param_no_default* c=param_with_default* d=[star_etc] { - CHECK_VERSION(arguments_ty, 8, "Positional-only parameters are", _PyPegen_make_arguments(p, a, NULL, b, c, d)) } + _PyPegen_make_arguments(p, a, NULL, b, c, d) } | a=slash_with_default b=param_with_default* c=[star_etc] { - CHECK_VERSION(arguments_ty, 8, "Positional-only parameters are", _PyPegen_make_arguments(p, NULL, a, NULL, b, c)) } + _PyPegen_make_arguments(p, NULL, a, NULL, b, c) } | a[asdl_arg_seq*]=param_no_default+ b=param_with_default* c=[star_etc] { _PyPegen_make_arguments(p, NULL, NULL, a, b, c) } | a=param_with_default+ b=[star_etc] { _PyPegen_make_arguments(p, NULL, NULL, NULL, a, b)} @@ -379,9 +379,9 @@ while_stmt[stmt_ty]: for_stmt[stmt_ty]: | invalid_for_stmt - | 'for' t=star_targets 'in' ~ ex=star_expressions ':' tc=[TYPE_COMMENT] b=block el=[else_block] { + | 'for' t=star_targets 'in' ~ ex=star_expressions &&':' tc=[TYPE_COMMENT] b=block el=[else_block] { _PyAST_For(t, ex, b, el, NEW_TYPE_COMMENT(p, tc), EXTRA) } - | ASYNC 'for' t=star_targets 'in' ~ ex=star_expressions ':' tc=[TYPE_COMMENT] b=block el=[else_block] { + | ASYNC 'for' t=star_targets 'in' ~ ex=star_expressions &&':' tc=[TYPE_COMMENT] b=block el=[else_block] { CHECK_VERSION(stmt_ty, 5, "Async for loops are", _PyAST_AsyncFor(t, ex, b, el, NEW_TYPE_COMMENT(p, tc), EXTRA)) } | invalid_for_target @@ -391,7 +391,7 @@ for_stmt[stmt_ty]: with_stmt[stmt_ty]: | invalid_with_stmt_indent | 'with' '(' a[asdl_withitem_seq*]=','.with_item+ ','? ')' ':' b=block { - CHECK_VERSION(stmt_ty, 9, "Parenthesized context managers are", _PyAST_With(a, b, NULL, EXTRA)) } + _PyAST_With(a, b, NULL, EXTRA) } | 'with' a[asdl_withitem_seq*]=','.with_item+ ':' tc=[TYPE_COMMENT] b=block { _PyAST_With(a, b, NEW_TYPE_COMMENT(p, tc), EXTRA) } | ASYNC 'with' '(' a[asdl_withitem_seq*]=','.with_item+ ','? ')' ':' b=block { @@ -412,9 +412,7 @@ try_stmt[stmt_ty]: | invalid_try_stmt | 'try' &&':' b=block f=finally_block { _PyAST_Try(b, NULL, NULL, f, EXTRA) } | 'try' &&':' b=block ex[asdl_excepthandler_seq*]=except_block+ el=[else_block] f=[finally_block] { _PyAST_Try(b, ex, el, f, EXTRA) } - | 'try' &&':' b=block ex[asdl_excepthandler_seq*]=except_star_block+ el=[else_block] f=[finally_block] { - CHECK_VERSION(stmt_ty, 11, "Exception groups are", - _PyAST_TryStar(b, ex, el, f, EXTRA)) } + | 'try' &&':' b=block ex[asdl_excepthandler_seq*]=except_star_block+ el=[else_block] f=[finally_block] { _PyAST_TryStar(b, ex, el, f, EXTRA) } # Except statement @@ -473,7 +471,7 @@ or_pattern[pattern_ty]: | patterns[asdl_pattern_seq*]='|'.closed_pattern+ { asdl_seq_LEN(patterns) == 1 ? asdl_seq_GET(patterns, 0) : _PyAST_MatchOr(patterns, EXTRA) } -closed_pattern[pattern_ty] (memo): +closed_pattern[pattern_ty]: | literal_pattern | capture_pattern | wildcard_pattern @@ -560,7 +558,7 @@ maybe_star_pattern[pattern_ty]: | star_pattern | pattern -star_pattern[pattern_ty] (memo): +star_pattern[pattern_ty]: | '*' target=pattern_capture_target { _PyAST_MatchStar(target->v.Name.id, EXTRA) } | '*' wildcard_pattern { @@ -662,9 +660,7 @@ star_named_expression[expr_ty]: | named_expression assignment_expression[expr_ty]: - | a=NAME ':=' ~ b=expression { - CHECK_VERSION(expr_ty, 8, "Assignment expressions are", - _PyAST_NamedExpr(CHECK(expr_ty, _PyPegen_set_expr_context(p, a, Store)), b, EXTRA)) } + | a=NAME ':=' ~ b=expression { _PyAST_NamedExpr(CHECK(expr_ty, _PyPegen_set_expr_context(p, a, Store)), b, EXTRA) } named_expression[expr_ty]: | assignment_expression @@ -832,9 +828,9 @@ lambda_params[arguments_ty]: # lambda_parameters[arguments_ty]: | a=lambda_slash_no_default b[asdl_arg_seq*]=lambda_param_no_default* c=lambda_param_with_default* d=[lambda_star_etc] { - CHECK_VERSION(arguments_ty, 8, "Positional-only parameters are", _PyPegen_make_arguments(p, a, NULL, b, c, d)) } + _PyPegen_make_arguments(p, a, NULL, b, c, d) } | a=lambda_slash_with_default b=lambda_param_with_default* c=[lambda_star_etc] { - CHECK_VERSION(arguments_ty, 8, "Positional-only parameters are", _PyPegen_make_arguments(p, NULL, a, NULL, b, c)) } + _PyPegen_make_arguments(p, NULL, a, NULL, b, c) } | a[asdl_arg_seq*]=lambda_param_no_default+ b=lambda_param_with_default* c=[lambda_star_etc] { _PyPegen_make_arguments(p, NULL, NULL, a, b, c) } | a=lambda_param_with_default+ b=[lambda_star_etc] { _PyPegen_make_arguments(p, NULL, NULL, NULL, a, b)} @@ -1235,8 +1231,8 @@ invalid_import_from_targets: RAISE_SYNTAX_ERROR("trailing comma not allowed without surrounding parentheses") } invalid_with_stmt: - | [ASYNC] 'with' ','.(expression ['as' star_target])+ NEWLINE { RAISE_SYNTAX_ERROR("expected ':'") } - | [ASYNC] 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' NEWLINE { RAISE_SYNTAX_ERROR("expected ':'") } + | [ASYNC] 'with' ','.(expression ['as' star_target])+ &&':' + | [ASYNC] 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':' invalid_with_stmt_indent: | [ASYNC] a='with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT { RAISE_INDENTATION_ERROR("expected an indented block after 'with' statement on line %d", a->lineno) } @@ -1266,11 +1262,11 @@ invalid_except_star_stmt_indent: | a='except' '*' expression ['as' NAME ] ':' NEWLINE !INDENT { RAISE_INDENTATION_ERROR("expected an indented block after 'except*' statement on line %d", a->lineno) } invalid_match_stmt: - | "match" subject_expr NEWLINE { CHECK_VERSION(void*, 10, "Pattern matching is", RAISE_SYNTAX_ERROR("expected ':'") ) } + | "match" subject_expr !':' { CHECK_VERSION(void*, 10, "Pattern matching is", RAISE_SYNTAX_ERROR("expected ':'") ) } | a="match" subject=subject_expr ':' NEWLINE !INDENT { RAISE_INDENTATION_ERROR("expected an indented block after 'match' statement on line %d", a->lineno) } invalid_case_block: - | "case" patterns guard? NEWLINE { RAISE_SYNTAX_ERROR("expected ':'") } + | "case" patterns guard? !':' { RAISE_SYNTAX_ERROR("expected ':'") } | a="case" patterns guard? ':' NEWLINE !INDENT { RAISE_INDENTATION_ERROR("expected an indented block after 'case' statement on line %d", a->lineno) } invalid_as_pattern: @@ -1299,15 +1295,13 @@ invalid_while_stmt: | a='while' named_expression ':' NEWLINE !INDENT { RAISE_INDENTATION_ERROR("expected an indented block after 'while' statement on line %d", a->lineno) } invalid_for_stmt: - | [ASYNC] 'for' star_targets 'in' star_expressions NEWLINE { RAISE_SYNTAX_ERROR("expected ':'") } | [ASYNC] a='for' star_targets 'in' star_expressions ':' NEWLINE !INDENT { RAISE_INDENTATION_ERROR("expected an indented block after 'for' statement on line %d", a->lineno) } invalid_def_raw: | [ASYNC] a='def' NAME '(' [params] ')' ['->' expression] ':' NEWLINE !INDENT { RAISE_INDENTATION_ERROR("expected an indented block after function definition on line %d", a->lineno) } invalid_class_def_raw: - | 'class' NAME ['(' [arguments] ')'] NEWLINE { RAISE_SYNTAX_ERROR("expected ':'") } - | a='class' NAME ['(' [arguments] ')'] ':' NEWLINE !INDENT { + | a='class' NAME ['('[arguments] ')'] ':' NEWLINE !INDENT { RAISE_INDENTATION_ERROR("expected an indented block after class definition on line %d", a->lineno) } invalid_double_starred_kvpairs: @@ -1318,4 +1312,4 @@ invalid_kvpair: | a=expression !(':') { RAISE_ERROR_KNOWN_LOCATION(p, PyExc_SyntaxError, a->lineno, a->end_col_offset - 1, a->end_lineno, -1, "':' expected after dictionary key") } | expression ':' a='*' bitwise_or { RAISE_SYNTAX_ERROR_STARTING_FROM(a, "cannot use a starred expression in a dictionary value") } - | expression a=':' &('}'|',') {RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "expression expected after dictionary key and ':'") } + | expression a=':' {RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "expression expected after dictionary key and ':'") } \ No newline at end of file diff --git a/Include/abstract.h b/Include/abstract.h index 784ff7e928676f..9e06fbbb749138 100644 --- a/Include/abstract.h +++ b/Include/abstract.h @@ -14,9 +14,9 @@ extern "C" { Print an object 'o' on file 'fp'. Returns -1 on error. The flags argument is used to enable certain printing options. The only option currently - supported is Py_PRINT_RAW. By default (flags=0), PyObject_Print() formats - the object by calling PyObject_Repr(). If flags equals to Py_PRINT_RAW, it - formats the object by calling PyObject_Str(). */ + supported is Py_Print_RAW. + + (What should be said about Py_Print_RAW?). */ /* Implemented elsewhere: @@ -88,7 +88,7 @@ extern "C" { -1 on failure. This is the equivalent of the Python statement: del o.attr_name. */ -#define PyObject_DelAttrString(O, A) PyObject_SetAttrString((O), (A), NULL) +#define PyObject_DelAttrString(O,A) PyObject_SetAttrString((O),(A), NULL) /* Implemented as a macro: @@ -98,7 +98,7 @@ extern "C" { Delete attribute named attr_name, for object o. Returns -1 on failure. This is the equivalent of the Python statement: del o.attr_name. */ -#define PyObject_DelAttr(O, A) PyObject_SetAttr((O), (A), NULL) +#define PyObject_DelAttr(O,A) PyObject_SetAttr((O),(A), NULL) /* Implemented elsewhere: @@ -228,16 +228,6 @@ PyAPI_FUNC(PyObject *) PyObject_CallMethodObjArgs( PyObject *name, ...); -/* Given a vectorcall nargsf argument, return the actual number of arguments. - * (For use outside the limited API, this is re-defined as a static inline - * function in cpython/abstract.h) - */ -PyAPI_FUNC(Py_ssize_t) PyVectorcall_NARGS(size_t nargsf); - -/* Call "callable" (which must support vectorcall) with positional arguments - "tuple" and keyword arguments "dict". "dict" may also be NULL */ -PyAPI_FUNC(PyObject *) PyVectorcall_Call(PyObject *callable, PyObject *tuple, PyObject *dict); - /* Implemented elsewhere: @@ -732,7 +722,7 @@ PyAPI_FUNC(PyObject *) PySequence_Fast(PyObject *o, const char* m); /* Return the 'i'-th element of the sequence 'o', assuming that o was returned by PySequence_Fast, and that i is within bounds. */ #define PySequence_Fast_GET_ITEM(o, i)\ - (PyList_Check(o) ? PyList_GET_ITEM((o), (i)) : PyTuple_GET_ITEM((o), (i))) + (PyList_Check(o) ? PyList_GET_ITEM(o, i) : PyTuple_GET_ITEM(o, i)) /* Return a pointer to the underlying item array for an object returned by PySequence_Fast */ @@ -812,7 +802,7 @@ PyAPI_FUNC(Py_ssize_t) PyMapping_Length(PyObject *o); failure. This is equivalent to the Python statement: del o[key]. */ -#define PyMapping_DelItemString(O, K) PyObject_DelItemString((O), (K)) +#define PyMapping_DelItemString(O,K) PyObject_DelItemString((O),(K)) /* Implemented as a macro: @@ -822,7 +812,7 @@ PyAPI_FUNC(Py_ssize_t) PyMapping_Length(PyObject *o); Returns -1 on failure. This is equivalent to the Python statement: del o[key]. */ -#define PyMapping_DelItem(O, K) PyObject_DelItem((O), (K)) +#define PyMapping_DelItem(O,K) PyObject_DelItem((O),(K)) /* On success, return 1 if the mapping object 'o' has the key 'key', and 0 otherwise. diff --git a/Include/boolobject.h b/Include/boolobject.h index ca21fbfad8e827..28068d1cbe5939 100644 --- a/Include/boolobject.h +++ b/Include/boolobject.h @@ -9,7 +9,7 @@ extern "C" { PyAPI_DATA(PyTypeObject) PyBool_Type; -#define PyBool_Check(x) Py_IS_TYPE((x), &PyBool_Type) +#define PyBool_Check(x) Py_IS_TYPE(x, &PyBool_Type) /* Py_False and Py_True are the only two bools in existence. Don't forget to apply Py_INCREF() when returning either!!! */ @@ -19,8 +19,8 @@ PyAPI_DATA(PyLongObject) _Py_FalseStruct; PyAPI_DATA(PyLongObject) _Py_TrueStruct; /* Use these macros */ -#define Py_False _PyObject_CAST(&_Py_FalseStruct) -#define Py_True _PyObject_CAST(&_Py_TrueStruct) +#define Py_False ((PyObject *) &_Py_FalseStruct) +#define Py_True ((PyObject *) &_Py_TrueStruct) // Test if an object is the True singleton, the same as "x is True" in Python. PyAPI_FUNC(int) Py_IsTrue(PyObject *x); diff --git a/Include/bytearrayobject.h b/Include/bytearrayobject.h index 3d53fdba643267..ae2bde1c303565 100644 --- a/Include/bytearrayobject.h +++ b/Include/bytearrayobject.h @@ -21,8 +21,8 @@ PyAPI_DATA(PyTypeObject) PyByteArray_Type; PyAPI_DATA(PyTypeObject) PyByteArrayIter_Type; /* Type check macros */ -#define PyByteArray_Check(self) PyObject_TypeCheck((self), &PyByteArray_Type) -#define PyByteArray_CheckExact(self) Py_IS_TYPE((self), &PyByteArray_Type) +#define PyByteArray_Check(self) PyObject_TypeCheck(self, &PyByteArray_Type) +#define PyByteArray_CheckExact(self) Py_IS_TYPE(self, &PyByteArray_Type) /* Direct API functions */ PyAPI_FUNC(PyObject *) PyByteArray_FromObject(PyObject *); diff --git a/Include/bytesobject.h b/Include/bytesobject.h index ee448cd02bdab3..4c4dc40d705d71 100644 --- a/Include/bytesobject.h +++ b/Include/bytesobject.h @@ -29,7 +29,7 @@ PyAPI_DATA(PyTypeObject) PyBytesIter_Type; #define PyBytes_Check(op) \ PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_BYTES_SUBCLASS) -#define PyBytes_CheckExact(op) Py_IS_TYPE((op), &PyBytes_Type) +#define PyBytes_CheckExact(op) Py_IS_TYPE(op, &PyBytes_Type) PyAPI_FUNC(PyObject *) PyBytes_FromStringAndSize(const char *, Py_ssize_t); PyAPI_FUNC(PyObject *) PyBytes_FromString(const char *); diff --git a/Include/ceval.h b/Include/ceval.h index ad4d909d6f2b14..1b57f6ea20f6f0 100644 --- a/Include/ceval.h +++ b/Include/ceval.h @@ -31,7 +31,7 @@ Py_DEPRECATED(3.9) PyAPI_FUNC(PyObject *) PyEval_CallObjectWithKeywords( /* Deprecated since PyEval_CallObjectWithKeywords is deprecated */ #define PyEval_CallObject(callable, arg) \ - PyEval_CallObjectWithKeywords((callable), (arg), _PyObject_CAST(_Py_NULL)) + PyEval_CallObjectWithKeywords(callable, arg, (PyObject *)NULL) Py_DEPRECATED(3.9) PyAPI_FUNC(PyObject *) PyEval_CallFunction( PyObject *callable, const char *format, ...); diff --git a/Include/complexobject.h b/Include/complexobject.h index ebe49a832f7414..c7764e43803d65 100644 --- a/Include/complexobject.h +++ b/Include/complexobject.h @@ -10,8 +10,8 @@ extern "C" { PyAPI_DATA(PyTypeObject) PyComplex_Type; -#define PyComplex_Check(op) PyObject_TypeCheck((op), &PyComplex_Type) -#define PyComplex_CheckExact(op) Py_IS_TYPE((op), &PyComplex_Type) +#define PyComplex_Check(op) PyObject_TypeCheck(op, &PyComplex_Type) +#define PyComplex_CheckExact(op) Py_IS_TYPE(op, &PyComplex_Type) PyAPI_FUNC(PyObject *) PyComplex_FromDoubles(double real, double imag); diff --git a/Include/cpython/abstract.h b/Include/cpython/abstract.h index 6da29cde9f6092..d276669312ee2f 100644 --- a/Include/cpython/abstract.h +++ b/Include/cpython/abstract.h @@ -53,12 +53,8 @@ PyAPI_FUNC(PyObject *) _PyObject_MakeTpCall( #define PY_VECTORCALL_ARGUMENTS_OFFSET \ (_Py_STATIC_CAST(size_t, 1) << (8 * sizeof(size_t) - 1)) -// PyVectorcall_NARGS() is exported as a function for the stable ABI. -// Here (when we are not using the stable ABI), the name is overridden to -// call a static inline function for best performance. -#define PyVectorcall_NARGS(n) _PyVectorcall_NARGS(n) static inline Py_ssize_t -_PyVectorcall_NARGS(size_t n) +PyVectorcall_NARGS(size_t n) { return n & ~PY_VECTORCALL_ARGUMENTS_OFFSET; } @@ -88,6 +84,10 @@ PyAPI_FUNC(PyObject *) PyObject_VectorcallDict( size_t nargsf, PyObject *kwargs); +/* Call "callable" (which must support vectorcall) with positional arguments + "tuple" and keyword arguments "dict". "dict" may also be NULL */ +PyAPI_FUNC(PyObject *) PyVectorcall_Call(PyObject *callable, PyObject *tuple, PyObject *dict); + // Same as PyObject_Vectorcall(), except without keyword arguments PyAPI_FUNC(PyObject *) _PyObject_FastCall( PyObject *func, @@ -176,7 +176,7 @@ PyAPI_FUNC(Py_ssize_t) PyObject_LengthHint(PyObject *o, Py_ssize_t); /* Assume tp_as_sequence and sq_item exist and that 'i' does not need to be corrected for a negative index. */ #define PySequence_ITEM(o, i)\ - ( Py_TYPE(o)->tp_as_sequence->sq_item((o), (i)) ) + ( Py_TYPE(o)->tp_as_sequence->sq_item(o, i) ) #define PY_ITERSEARCH_COUNT 1 #define PY_ITERSEARCH_INDEX 2 diff --git a/Include/cpython/bytearrayobject.h b/Include/cpython/bytearrayobject.h index 9ba176eb2d3ac2..5114169c280915 100644 --- a/Include/cpython/bytearrayobject.h +++ b/Include/cpython/bytearrayobject.h @@ -25,10 +25,14 @@ static inline char* PyByteArray_AS_STRING(PyObject *op) } return _PyByteArray_empty_string; } -#define PyByteArray_AS_STRING(self) PyByteArray_AS_STRING(_PyObject_CAST(self)) +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define PyByteArray_AS_STRING(self) PyByteArray_AS_STRING(_PyObject_CAST(self)) +#endif static inline Py_ssize_t PyByteArray_GET_SIZE(PyObject *op) { PyByteArrayObject *self = _PyByteArray_CAST(op); return Py_SIZE(self); } -#define PyByteArray_GET_SIZE(self) PyByteArray_GET_SIZE(_PyObject_CAST(self)) +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define PyByteArray_GET_SIZE(self) PyByteArray_GET_SIZE(_PyObject_CAST(self)) +#endif diff --git a/Include/cpython/bytesobject.h b/Include/cpython/bytesobject.h index e982031c107de2..53343661f0ec43 100644 --- a/Include/cpython/bytesobject.h +++ b/Include/cpython/bytesobject.h @@ -36,13 +36,17 @@ static inline char* PyBytes_AS_STRING(PyObject *op) { return _PyBytes_CAST(op)->ob_sval; } -#define PyBytes_AS_STRING(op) PyBytes_AS_STRING(_PyObject_CAST(op)) +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define PyBytes_AS_STRING(op) PyBytes_AS_STRING(_PyObject_CAST(op)) +#endif static inline Py_ssize_t PyBytes_GET_SIZE(PyObject *op) { PyBytesObject *self = _PyBytes_CAST(op); return Py_SIZE(self); } -#define PyBytes_GET_SIZE(self) PyBytes_GET_SIZE(_PyObject_CAST(self)) +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define PyBytes_GET_SIZE(self) PyBytes_GET_SIZE(_PyObject_CAST(self)) +#endif /* _PyBytes_Join(sep, x) is like sep.join(x). sep must be PyBytesObject*, x must be an iterable object. */ diff --git a/Include/cpython/cellobject.h b/Include/cpython/cellobject.h index 47a6a491497ea0..344238a533563d 100644 --- a/Include/cpython/cellobject.h +++ b/Include/cpython/cellobject.h @@ -15,7 +15,7 @@ typedef struct { PyAPI_DATA(PyTypeObject) PyCell_Type; -#define PyCell_Check(op) Py_IS_TYPE((op), &PyCell_Type) +#define PyCell_Check(op) Py_IS_TYPE(op, &PyCell_Type) PyAPI_FUNC(PyObject *) PyCell_New(PyObject *); PyAPI_FUNC(PyObject *) PyCell_Get(PyObject *); @@ -27,7 +27,9 @@ static inline PyObject* PyCell_GET(PyObject *op) { cell = _Py_CAST(PyCellObject*, op); return cell->ob_ref; } -#define PyCell_GET(op) PyCell_GET(_PyObject_CAST(op)) +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030c0000 +# define PyCell_GET(op) PyCell_GET(_PyObject_CAST(op)) +#endif static inline void PyCell_SET(PyObject *op, PyObject *value) { PyCellObject *cell; @@ -35,7 +37,9 @@ static inline void PyCell_SET(PyObject *op, PyObject *value) { cell = _Py_CAST(PyCellObject*, op); cell->ob_ref = value; } -#define PyCell_SET(op, value) PyCell_SET(_PyObject_CAST(op), (value)) +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030c0000 +# define PyCell_SET(op, value) PyCell_SET(_PyObject_CAST(op), (value)) +#endif #ifdef __cplusplus } diff --git a/Include/cpython/ceval.h b/Include/cpython/ceval.h index 74665c9fa10580..9d4eeafb427eb2 100644 --- a/Include/cpython/ceval.h +++ b/Include/cpython/ceval.h @@ -3,10 +3,8 @@ #endif PyAPI_FUNC(void) PyEval_SetProfile(Py_tracefunc, PyObject *); -PyAPI_FUNC(void) PyEval_SetProfileAllThreads(Py_tracefunc, PyObject *); PyAPI_DATA(int) _PyEval_SetProfile(PyThreadState *tstate, Py_tracefunc func, PyObject *arg); PyAPI_FUNC(void) PyEval_SetTrace(Py_tracefunc, PyObject *); -PyAPI_FUNC(void) PyEval_SetTraceAllThreads(Py_tracefunc, PyObject *); PyAPI_FUNC(int) _PyEval_SetTrace(PyThreadState *tstate, Py_tracefunc func, PyObject *arg); /* Helper to look up a builtin object */ diff --git a/Include/cpython/classobject.h b/Include/cpython/classobject.h index 051041965002a3..80df8842eb4f78 100644 --- a/Include/cpython/classobject.h +++ b/Include/cpython/classobject.h @@ -19,7 +19,7 @@ typedef struct { PyAPI_DATA(PyTypeObject) PyMethod_Type; -#define PyMethod_Check(op) Py_IS_TYPE((op), &PyMethod_Type) +#define PyMethod_Check(op) Py_IS_TYPE(op, &PyMethod_Type) PyAPI_FUNC(PyObject *) PyMethod_New(PyObject *, PyObject *); @@ -29,9 +29,9 @@ PyAPI_FUNC(PyObject *) PyMethod_Self(PyObject *); /* Macros for direct access to these values. Type checks are *not* done, so use with care. */ #define PyMethod_GET_FUNCTION(meth) \ - (((PyMethodObject *)(meth)) -> im_func) + (((PyMethodObject *)meth) -> im_func) #define PyMethod_GET_SELF(meth) \ - (((PyMethodObject *)(meth)) -> im_self) + (((PyMethodObject *)meth) -> im_self) typedef struct { PyObject_HEAD @@ -40,7 +40,7 @@ typedef struct { PyAPI_DATA(PyTypeObject) PyInstanceMethod_Type; -#define PyInstanceMethod_Check(op) Py_IS_TYPE((op), &PyInstanceMethod_Type) +#define PyInstanceMethod_Check(op) Py_IS_TYPE(op, &PyInstanceMethod_Type) PyAPI_FUNC(PyObject *) PyInstanceMethod_New(PyObject *); PyAPI_FUNC(PyObject *) PyInstanceMethod_Function(PyObject *); @@ -48,7 +48,7 @@ PyAPI_FUNC(PyObject *) PyInstanceMethod_Function(PyObject *); /* Macros for direct access to these values. Type checks are *not* done, so use with care. */ #define PyInstanceMethod_GET_FUNCTION(meth) \ - (((PyInstanceMethodObject *)(meth)) -> func) + (((PyInstanceMethodObject *)meth) -> func) #ifdef __cplusplus } diff --git a/Include/cpython/code.h b/Include/cpython/code.h index 7ce69022557af0..ba7324b48d8675 100644 --- a/Include/cpython/code.h +++ b/Include/cpython/code.h @@ -29,8 +29,7 @@ typedef uint16_t _Py_CODEUNIT; #endif // Use "unsigned char" instead of "uint8_t" here to avoid illegal aliasing: -#define _Py_SET_OPCODE(word, opcode) \ - do { ((unsigned char *)&(word))[0] = (opcode); } while (0) +#define _Py_SET_OPCODE(word, opcode) (((unsigned char *)&(word))[0] = (opcode)) // To avoid repeating ourselves in deepfreeze.py, all PyCodeObject members are // defined in this macro: @@ -63,8 +62,7 @@ typedef uint16_t _Py_CODEUNIT; PyObject *co_exceptiontable; /* Byte string encoding exception handling \ table */ \ int co_flags; /* CO_..., see below */ \ - short co_warmup; /* Warmup counter for quickening */ \ - short _co_linearray_entry_size; /* Size of each entry in _co_linearray */ \ + int co_warmup; /* Warmup counter for quickening */ \ \ /* The rest are not so impactful on performance. */ \ int co_argcount; /* #arguments, except *args */ \ @@ -75,8 +73,8 @@ typedef uint16_t _Py_CODEUNIT; \ /* redundant values (derived from co_localsplusnames and \ co_localspluskinds) */ \ - int co_nlocalsplus; /* number of local + cell + free variables */ \ - int co_framesize; /* Size of frame in words */ \ + int co_nlocalsplus; /* number of local + cell + free variables \ + */ \ int co_nlocals; /* number of local variables */ \ int co_nplaincellvars; /* number of non-arg cell variables */ \ int co_ncellvars; /* total number of cell variables */ \ @@ -90,9 +88,6 @@ typedef uint16_t _Py_CODEUNIT; PyObject *co_qualname; /* unicode (qualname, for reference) */ \ PyObject *co_linetable; /* bytes object that holds location info */ \ PyObject *co_weakreflist; /* to support weakrefs to code objects */ \ - PyObject *_co_code; /* cached co_code object/attribute */ \ - int _co_firsttraceable; /* index of first traceable instruction */ \ - char *_co_linearray; /* array of line offsets */ \ /* Scratch space for extra data relating to the code object. \ Type is a void* to keep the format private in codeobject.c to force \ people to go through the proper APIs. */ \ @@ -140,7 +135,7 @@ struct PyCodeObject _PyCode_DEF(1); PyAPI_DATA(PyTypeObject) PyCode_Type; -#define PyCode_Check(op) Py_IS_TYPE((op), &PyCode_Type) +#define PyCode_Check(op) Py_IS_TYPE(op, &PyCode_Type) #define PyCode_GetNumFree(op) ((op)->co_nfreevars) #define _PyCode_CODE(CO) ((_Py_CODEUNIT *)(CO)->co_code_adaptive) #define _PyCode_NBYTES(CO) (Py_SIZE(CO) * (Py_ssize_t)sizeof(_Py_CODEUNIT)) @@ -210,12 +205,6 @@ PyAPI_FUNC(int) _PyCode_SetExtra(PyObject *code, Py_ssize_t index, /* Equivalent to getattr(code, 'co_code') in Python. Returns a strong reference to a bytes object. */ PyAPI_FUNC(PyObject *) PyCode_GetCode(PyCodeObject *code); -/* Equivalent to getattr(code, 'co_varnames') in Python. */ -PyAPI_FUNC(PyObject *) PyCode_GetVarnames(PyCodeObject *code); -/* Equivalent to getattr(code, 'co_cellvars') in Python. */ -PyAPI_FUNC(PyObject *) PyCode_GetCellvars(PyCodeObject *code); -/* Equivalent to getattr(code, 'co_freevars') in Python. */ -PyAPI_FUNC(PyObject *) PyCode_GetFreevars(PyCodeObject *code); typedef enum _PyCodeLocationInfoKind { /* short forms are 0 to 9 */ diff --git a/Include/cpython/context.h b/Include/cpython/context.h index 9879fc7192ebb8..4db079f7633f48 100644 --- a/Include/cpython/context.h +++ b/Include/cpython/context.h @@ -15,9 +15,9 @@ PyAPI_DATA(PyTypeObject) PyContextToken_Type; typedef struct _pycontexttokenobject PyContextToken; -#define PyContext_CheckExact(o) Py_IS_TYPE((o), &PyContext_Type) -#define PyContextVar_CheckExact(o) Py_IS_TYPE((o), &PyContextVar_Type) -#define PyContextToken_CheckExact(o) Py_IS_TYPE((o), &PyContextToken_Type) +#define PyContext_CheckExact(o) Py_IS_TYPE(o, &PyContext_Type) +#define PyContextVar_CheckExact(o) Py_IS_TYPE(o, &PyContextVar_Type) +#define PyContextToken_CheckExact(o) Py_IS_TYPE(o, &PyContextToken_Type) PyAPI_FUNC(PyObject *) PyContext_New(void); diff --git a/Include/cpython/dictobject.h b/Include/cpython/dictobject.h index 565ad791a6cb28..5788012ab159b9 100644 --- a/Include/cpython/dictobject.h +++ b/Include/cpython/dictobject.h @@ -52,7 +52,9 @@ static inline Py_ssize_t PyDict_GET_SIZE(PyObject *op) { mp = _Py_CAST(PyDictObject*, op); return mp->ma_used; } -#define PyDict_GET_SIZE(op) PyDict_GET_SIZE(_PyObject_CAST(op)) +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030c0000 +# define PyDict_GET_SIZE(op) PyDict_GET_SIZE(_PyObject_CAST(op)) +#endif PyAPI_FUNC(int) _PyDict_Contains_KnownHash(PyObject *, PyObject *, Py_hash_t); PyAPI_FUNC(int) _PyDict_ContainsId(PyObject *, _Py_Identifier *); diff --git a/Include/cpython/frameobject.h b/Include/cpython/frameobject.h index 4e19535c656f2c..9cd711e43559a6 100644 --- a/Include/cpython/frameobject.h +++ b/Include/cpython/frameobject.h @@ -6,6 +6,10 @@ /* Standard object interface */ +PyAPI_DATA(PyTypeObject) PyFrame_Type; + +#define PyFrame_Check(op) Py_IS_TYPE(op, &PyFrame_Type) + PyAPI_FUNC(PyFrameObject *) PyFrame_New(PyThreadState *, PyCodeObject *, PyObject *, PyObject *); @@ -27,3 +31,12 @@ PyAPI_FUNC(int) _PyFrame_IsEntryFrame(PyFrameObject *frame); PyAPI_FUNC(int) PyFrame_FastToLocalsWithError(PyFrameObject *f); PyAPI_FUNC(void) PyFrame_FastToLocals(PyFrameObject *); + +PyAPI_FUNC(PyFrameObject *) PyFrame_GetBack(PyFrameObject *frame); +PyAPI_FUNC(PyObject *) PyFrame_GetLocals(PyFrameObject *frame); + +PyAPI_FUNC(PyObject *) PyFrame_GetGlobals(PyFrameObject *frame); +PyAPI_FUNC(PyObject *) PyFrame_GetBuiltins(PyFrameObject *frame); + +PyAPI_FUNC(PyObject *) PyFrame_GetGenerator(PyFrameObject *frame); +PyAPI_FUNC(int) PyFrame_GetLasti(PyFrameObject *frame); diff --git a/Include/cpython/funcobject.h b/Include/cpython/funcobject.h index dd8f20b2c20b39..99ac6008f8b611 100644 --- a/Include/cpython/funcobject.h +++ b/Include/cpython/funcobject.h @@ -48,8 +48,7 @@ typedef struct { * defaults * kwdefaults (only if the object changes, not the contents of the dict) * code - * annotations - * vectorcall function pointer */ + * annotations */ uint32_t func_version; /* Invariant: @@ -61,7 +60,7 @@ typedef struct { PyAPI_DATA(PyTypeObject) PyFunction_Type; -#define PyFunction_Check(op) Py_IS_TYPE((op), &PyFunction_Type) +#define PyFunction_Check(op) Py_IS_TYPE(op, &PyFunction_Type) PyAPI_FUNC(PyObject *) PyFunction_New(PyObject *, PyObject *); PyAPI_FUNC(PyObject *) PyFunction_NewWithQualName(PyObject *, PyObject *, PyObject *); @@ -70,7 +69,6 @@ PyAPI_FUNC(PyObject *) PyFunction_GetGlobals(PyObject *); PyAPI_FUNC(PyObject *) PyFunction_GetModule(PyObject *); PyAPI_FUNC(PyObject *) PyFunction_GetDefaults(PyObject *); PyAPI_FUNC(int) PyFunction_SetDefaults(PyObject *, PyObject *); -PyAPI_FUNC(void) PyFunction_SetVectorcall(PyFunctionObject *, vectorcallfunc); PyAPI_FUNC(PyObject *) PyFunction_GetKwDefaults(PyObject *); PyAPI_FUNC(int) PyFunction_SetKwDefaults(PyObject *, PyObject *); PyAPI_FUNC(PyObject *) PyFunction_GetClosure(PyObject *); @@ -84,45 +82,22 @@ PyAPI_FUNC(PyObject *) _PyFunction_Vectorcall( size_t nargsf, PyObject *kwnames); -#define _PyFunction_CAST(func) \ - (assert(PyFunction_Check(func)), _Py_CAST(PyFunctionObject*, func)) - -/* Static inline functions for direct access to these values. - Type checks are *not* done, so use with care. */ -static inline PyObject* PyFunction_GET_CODE(PyObject *func) { - return _PyFunction_CAST(func)->func_code; -} -#define PyFunction_GET_CODE(func) PyFunction_GET_CODE(_PyObject_CAST(func)) - -static inline PyObject* PyFunction_GET_GLOBALS(PyObject *func) { - return _PyFunction_CAST(func)->func_globals; -} -#define PyFunction_GET_GLOBALS(func) PyFunction_GET_GLOBALS(_PyObject_CAST(func)) - -static inline PyObject* PyFunction_GET_MODULE(PyObject *func) { - return _PyFunction_CAST(func)->func_module; -} -#define PyFunction_GET_MODULE(func) PyFunction_GET_MODULE(_PyObject_CAST(func)) - -static inline PyObject* PyFunction_GET_DEFAULTS(PyObject *func) { - return _PyFunction_CAST(func)->func_defaults; -} -#define PyFunction_GET_DEFAULTS(func) PyFunction_GET_DEFAULTS(_PyObject_CAST(func)) - -static inline PyObject* PyFunction_GET_KW_DEFAULTS(PyObject *func) { - return _PyFunction_CAST(func)->func_kwdefaults; -} -#define PyFunction_GET_KW_DEFAULTS(func) PyFunction_GET_KW_DEFAULTS(_PyObject_CAST(func)) - -static inline PyObject* PyFunction_GET_CLOSURE(PyObject *func) { - return _PyFunction_CAST(func)->func_closure; -} -#define PyFunction_GET_CLOSURE(func) PyFunction_GET_CLOSURE(_PyObject_CAST(func)) - -static inline PyObject* PyFunction_GET_ANNOTATIONS(PyObject *func) { - return _PyFunction_CAST(func)->func_annotations; -} -#define PyFunction_GET_ANNOTATIONS(func) PyFunction_GET_ANNOTATIONS(_PyObject_CAST(func)) +/* Macros for direct access to these values. Type checks are *not* + done, so use with care. */ +#define PyFunction_GET_CODE(func) \ + (((PyFunctionObject *)func) -> func_code) +#define PyFunction_GET_GLOBALS(func) \ + (((PyFunctionObject *)func) -> func_globals) +#define PyFunction_GET_MODULE(func) \ + (((PyFunctionObject *)func) -> func_module) +#define PyFunction_GET_DEFAULTS(func) \ + (((PyFunctionObject *)func) -> func_defaults) +#define PyFunction_GET_KW_DEFAULTS(func) \ + (((PyFunctionObject *)func) -> func_kwdefaults) +#define PyFunction_GET_CLOSURE(func) \ + (((PyFunctionObject *)func) -> func_closure) +#define PyFunction_GET_ANNOTATIONS(func) \ + (((PyFunctionObject *)func) -> func_annotations) /* The classmethod and staticmethod types lives here, too */ PyAPI_DATA(PyTypeObject) PyClassMethod_Type; diff --git a/Include/cpython/genobject.h b/Include/cpython/genobject.h index 6127ba7babb80f..40eaa19d3fad94 100644 --- a/Include/cpython/genobject.h +++ b/Include/cpython/genobject.h @@ -37,8 +37,8 @@ typedef struct { PyAPI_DATA(PyTypeObject) PyGen_Type; -#define PyGen_Check(op) PyObject_TypeCheck((op), &PyGen_Type) -#define PyGen_CheckExact(op) Py_IS_TYPE((op), &PyGen_Type) +#define PyGen_Check(op) PyObject_TypeCheck(op, &PyGen_Type) +#define PyGen_CheckExact(op) Py_IS_TYPE(op, &PyGen_Type) PyAPI_FUNC(PyObject *) PyGen_New(PyFrameObject *); PyAPI_FUNC(PyObject *) PyGen_NewWithQualName(PyFrameObject *, @@ -57,7 +57,7 @@ typedef struct { PyAPI_DATA(PyTypeObject) PyCoro_Type; PyAPI_DATA(PyTypeObject) _PyCoroWrapper_Type; -#define PyCoro_CheckExact(op) Py_IS_TYPE((op), &PyCoro_Type) +#define PyCoro_CheckExact(op) Py_IS_TYPE(op, &PyCoro_Type) PyAPI_FUNC(PyObject *) PyCoro_New(PyFrameObject *, PyObject *name, PyObject *qualname); @@ -76,7 +76,7 @@ PyAPI_DATA(PyTypeObject) _PyAsyncGenAThrow_Type; PyAPI_FUNC(PyObject *) PyAsyncGen_New(PyFrameObject *, PyObject *name, PyObject *qualname); -#define PyAsyncGen_CheckExact(op) Py_IS_TYPE((op), &PyAsyncGen_Type) +#define PyAsyncGen_CheckExact(op) Py_IS_TYPE(op, &PyAsyncGen_Type) #undef _PyGenObject_HEAD diff --git a/Include/cpython/import.h b/Include/cpython/import.h index a69b4f34def342..ef6be689468ee5 100644 --- a/Include/cpython/import.h +++ b/Include/cpython/import.h @@ -40,6 +40,3 @@ struct _frozen { collection of frozen modules: */ PyAPI_DATA(const struct _frozen *) PyImport_FrozenModules; - -PyAPI_DATA(PyObject *) _PyImport_GetModuleAttr(PyObject *, PyObject *); -PyAPI_DATA(PyObject *) _PyImport_GetModuleAttrString(const char *, const char *); diff --git a/Include/cpython/initconfig.h b/Include/cpython/initconfig.h index c6057a4c3ed945..3b6d59389f26b9 100644 --- a/Include/cpython/initconfig.h +++ b/Include/cpython/initconfig.h @@ -142,7 +142,6 @@ typedef struct PyConfig { unsigned long hash_seed; int faulthandler; int tracemalloc; - int perf_profiling; int import_time; int code_debug_ranges; int show_ref_count; diff --git a/Include/cpython/listobject.h b/Include/cpython/listobject.h index 8fa82122d8d248..1add8213e0c092 100644 --- a/Include/cpython/listobject.h +++ b/Include/cpython/listobject.h @@ -34,14 +34,18 @@ static inline Py_ssize_t PyList_GET_SIZE(PyObject *op) { PyListObject *list = _PyList_CAST(op); return Py_SIZE(list); } -#define PyList_GET_SIZE(op) PyList_GET_SIZE(_PyObject_CAST(op)) +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define PyList_GET_SIZE(op) PyList_GET_SIZE(_PyObject_CAST(op)) +#endif -#define PyList_GET_ITEM(op, index) (_PyList_CAST(op)->ob_item[(index)]) +#define PyList_GET_ITEM(op, index) (_PyList_CAST(op)->ob_item[index]) static inline void PyList_SET_ITEM(PyObject *op, Py_ssize_t index, PyObject *value) { PyListObject *list = _PyList_CAST(op); list->ob_item[index] = value; } +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 #define PyList_SET_ITEM(op, index, value) \ - PyList_SET_ITEM(_PyObject_CAST(op), (index), _PyObject_CAST(value)) + PyList_SET_ITEM(_PyObject_CAST(op), index, _PyObject_CAST(value)) +#endif diff --git a/Include/cpython/methodobject.h b/Include/cpython/methodobject.h index d541e154948041..54a61cfd077be9 100644 --- a/Include/cpython/methodobject.h +++ b/Include/cpython/methodobject.h @@ -31,8 +31,8 @@ typedef struct { PyAPI_DATA(PyTypeObject) PyCMethod_Type; -#define PyCMethod_CheckExact(op) Py_IS_TYPE((op), &PyCMethod_Type) -#define PyCMethod_Check(op) PyObject_TypeCheck((op), &PyCMethod_Type) +#define PyCMethod_CheckExact(op) Py_IS_TYPE(op, &PyCMethod_Type) +#define PyCMethod_Check(op) PyObject_TypeCheck(op, &PyCMethod_Type) /* Static inline functions for direct access to these values. @@ -40,7 +40,9 @@ PyAPI_DATA(PyTypeObject) PyCMethod_Type; static inline PyCFunction PyCFunction_GET_FUNCTION(PyObject *func) { return _PyCFunctionObject_CAST(func)->m_ml->ml_meth; } -#define PyCFunction_GET_FUNCTION(func) PyCFunction_GET_FUNCTION(_PyObject_CAST(func)) +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define PyCFunction_GET_FUNCTION(func) PyCFunction_GET_FUNCTION(_PyObject_CAST(func)) +#endif static inline PyObject* PyCFunction_GET_SELF(PyObject *func_obj) { PyCFunctionObject *func = _PyCFunctionObject_CAST(func_obj); @@ -49,12 +51,16 @@ static inline PyObject* PyCFunction_GET_SELF(PyObject *func_obj) { } return func->m_self; } -#define PyCFunction_GET_SELF(func) PyCFunction_GET_SELF(_PyObject_CAST(func)) +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define PyCFunction_GET_SELF(func) PyCFunction_GET_SELF(_PyObject_CAST(func)) +#endif static inline int PyCFunction_GET_FLAGS(PyObject *func) { return _PyCFunctionObject_CAST(func)->m_ml->ml_flags; } -#define PyCFunction_GET_FLAGS(func) PyCFunction_GET_FLAGS(_PyObject_CAST(func)) +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define PyCFunction_GET_FLAGS(func) PyCFunction_GET_FLAGS(_PyObject_CAST(func)) +#endif static inline PyTypeObject* PyCFunction_GET_CLASS(PyObject *func_obj) { PyCFunctionObject *func = _PyCFunctionObject_CAST(func_obj); @@ -63,4 +69,6 @@ static inline PyTypeObject* PyCFunction_GET_CLASS(PyObject *func_obj) { } return _Py_NULL; } -#define PyCFunction_GET_CLASS(func) PyCFunction_GET_CLASS(_PyObject_CAST(func)) +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define PyCFunction_GET_CLASS(func) PyCFunction_GET_CLASS(_PyObject_CAST(func)) +#endif diff --git a/Include/cpython/modsupport.h b/Include/cpython/modsupport.h index d8458923b3fab8..769eb52bf6e3ae 100644 --- a/Include/cpython/modsupport.h +++ b/Include/cpython/modsupport.h @@ -34,13 +34,11 @@ PyAPI_FUNC(int) _PyArg_NoPositional(const char *funcname, PyObject *args); #define _PyArg_NoPositional(funcname, args) \ ((args) == NULL || _PyArg_NoPositional((funcname), (args))) -#define _Py_ANY_VARARGS(n) ((n) == PY_SSIZE_T_MAX) - PyAPI_FUNC(void) _PyArg_BadArgument(const char *, const char *, const char *, PyObject *); PyAPI_FUNC(int) _PyArg_CheckPositional(const char *, Py_ssize_t, Py_ssize_t, Py_ssize_t); #define _PyArg_CheckPositional(funcname, nargs, min, max) \ - ((!_Py_ANY_VARARGS(max) && (min) <= (nargs) && (nargs) <= (max)) \ + ((!ANY_VARARGS(max) && (min) <= (nargs) && (nargs) <= (max)) \ || _PyArg_CheckPositional((funcname), (nargs), (min), (max))) PyAPI_FUNC(PyObject **) _Py_VaBuildStack( @@ -51,7 +49,6 @@ PyAPI_FUNC(PyObject **) _Py_VaBuildStack( Py_ssize_t *p_nargs); typedef struct _PyArg_Parser { - int initialized; const char *format; const char * const *keywords; const char *fname; @@ -101,7 +98,7 @@ PyAPI_FUNC(PyObject * const *) _PyArg_UnpackKeywordsWithVararg( #define _PyArg_UnpackKeywords(args, nargs, kwargs, kwnames, parser, minpos, maxpos, minkw, buf) \ (((minkw) == 0 && (kwargs) == NULL && (kwnames) == NULL && \ - (minpos) <= (nargs) && (nargs) <= (maxpos) && (args) != NULL) ? (args) : \ + (minpos) <= (nargs) && (nargs) <= (maxpos) && args != NULL) ? (args) : \ _PyArg_UnpackKeywords((args), (nargs), (kwargs), (kwnames), (parser), \ (minpos), (maxpos), (minkw), (buf))) diff --git a/Include/cpython/object.h b/Include/cpython/object.h index c80fc1df0e0ba4..b018dabf9d862f 100644 --- a/Include/cpython/object.h +++ b/Include/cpython/object.h @@ -45,7 +45,7 @@ typedef struct _Py_Identifier { // For now we are keeping _Py_IDENTIFIER for continued use // in non-builtin extensions (and naughty PyPI modules). -#define _Py_static_string_init(value) { .string = (value), .index = -1 } +#define _Py_static_string_init(value) { .string = value, .index = -1 } #define _Py_static_string(varname, value) static _Py_Identifier varname = _Py_static_string_init(value) #define _Py_IDENTIFIER(varname) _Py_static_string(PyId_##varname, #varname) @@ -54,6 +54,9 @@ typedef struct _Py_Identifier { typedef int (*getbufferproc)(PyObject *, Py_buffer *, int); typedef void (*releasebufferproc)(PyObject *, Py_buffer *); +typedef PyObject *(*vectorcallfunc)(PyObject *callable, PyObject *const *args, + size_t nargsf, PyObject *kwnames); + typedef struct { /* Number implementations must check *both* @@ -214,9 +217,9 @@ struct _typeobject { inquiry tp_is_gc; /* For PyObject_IS_GC */ PyObject *tp_bases; PyObject *tp_mro; /* method resolution order */ - PyObject *tp_cache; /* no longer used */ - void *tp_subclasses; /* for static builtin types this is an index */ - PyObject *tp_weaklist; /* not used for static builtin types */ + PyObject *tp_cache; + PyObject *tp_subclasses; + PyObject *tp_weaklist; destructor tp_del; /* Type attribute cache version tag. Added in version 2.6 */ @@ -382,9 +385,9 @@ _PyObject_DebugTypeStats(FILE *out); #endif #define _PyObject_ASSERT_WITH_MSG(obj, expr, msg) \ - _PyObject_ASSERT_FROM((obj), expr, (msg), __FILE__, __LINE__, __func__) + _PyObject_ASSERT_FROM(obj, expr, msg, __FILE__, __LINE__, __func__) #define _PyObject_ASSERT(obj, expr) \ - _PyObject_ASSERT_WITH_MSG((obj), expr, NULL) + _PyObject_ASSERT_WITH_MSG(obj, expr, NULL) #define _PyObject_ASSERT_FAILED_MSG(obj, msg) \ _PyObject_AssertFailed((obj), NULL, (msg), __FILE__, __LINE__, __func__) @@ -490,8 +493,8 @@ PyAPI_FUNC(int) _PyTrash_cond(PyObject *op, destructor dealloc); } while (0); #define Py_TRASHCAN_BEGIN(op, dealloc) \ - Py_TRASHCAN_BEGIN_CONDITION((op), \ - _PyTrash_cond(_PyObject_CAST(op), (destructor)(dealloc))) + Py_TRASHCAN_BEGIN_CONDITION(op, \ + _PyTrash_cond(_PyObject_CAST(op), (destructor)dealloc)) /* The following two macros, Py_TRASHCAN_SAFE_BEGIN and * Py_TRASHCAN_SAFE_END, are deprecated since version 3.11 and @@ -502,11 +505,7 @@ Py_DEPRECATED(3.11) typedef int UsingDeprecatedTrashcanMacro; #define Py_TRASHCAN_SAFE_BEGIN(op) \ do { \ UsingDeprecatedTrashcanMacro cond=1; \ - Py_TRASHCAN_BEGIN_CONDITION((op), cond); + Py_TRASHCAN_BEGIN_CONDITION(op, cond); #define Py_TRASHCAN_SAFE_END(op) \ Py_TRASHCAN_END; \ } while(0); - - -PyAPI_FUNC(int) _PyObject_VisitManagedDict(PyObject *obj, visitproc visit, void *arg); -PyAPI_FUNC(void) _PyObject_ClearManagedDict(PyObject *obj); diff --git a/Include/cpython/odictobject.h b/Include/cpython/odictobject.h index 3822d554868c10..e070413017d801 100644 --- a/Include/cpython/odictobject.h +++ b/Include/cpython/odictobject.h @@ -18,8 +18,8 @@ PyAPI_DATA(PyTypeObject) PyODictKeys_Type; PyAPI_DATA(PyTypeObject) PyODictItems_Type; PyAPI_DATA(PyTypeObject) PyODictValues_Type; -#define PyODict_Check(op) PyObject_TypeCheck((op), &PyODict_Type) -#define PyODict_CheckExact(op) Py_IS_TYPE((op), &PyODict_Type) +#define PyODict_Check(op) PyObject_TypeCheck(op, &PyODict_Type) +#define PyODict_CheckExact(op) Py_IS_TYPE(op, &PyODict_Type) #define PyODict_SIZE(op) PyDict_GET_SIZE((op)) PyAPI_FUNC(PyObject *) PyODict_New(void); @@ -27,13 +27,13 @@ PyAPI_FUNC(int) PyODict_SetItem(PyObject *od, PyObject *key, PyObject *item); PyAPI_FUNC(int) PyODict_DelItem(PyObject *od, PyObject *key); /* wrappers around PyDict* functions */ -#define PyODict_GetItem(od, key) PyDict_GetItem(_PyObject_CAST(od), (key)) +#define PyODict_GetItem(od, key) PyDict_GetItem(_PyObject_CAST(od), key) #define PyODict_GetItemWithError(od, key) \ - PyDict_GetItemWithError(_PyObject_CAST(od), (key)) -#define PyODict_Contains(od, key) PyDict_Contains(_PyObject_CAST(od), (key)) + PyDict_GetItemWithError(_PyObject_CAST(od), key) +#define PyODict_Contains(od, key) PyDict_Contains(_PyObject_CAST(od), key) #define PyODict_Size(od) PyDict_Size(_PyObject_CAST(od)) #define PyODict_GetItemString(od, key) \ - PyDict_GetItemString(_PyObject_CAST(od), (key)) + PyDict_GetItemString(_PyObject_CAST(od), key) #endif diff --git a/Include/cpython/picklebufobject.h b/Include/cpython/picklebufobject.h index f3cbaeef919518..0df2561dceaea0 100644 --- a/Include/cpython/picklebufobject.h +++ b/Include/cpython/picklebufobject.h @@ -12,7 +12,7 @@ extern "C" { PyAPI_DATA(PyTypeObject) PyPickleBuffer_Type; -#define PyPickleBuffer_Check(op) Py_IS_TYPE((op), &PyPickleBuffer_Type) +#define PyPickleBuffer_Check(op) Py_IS_TYPE(op, &PyPickleBuffer_Type) /* Create a PickleBuffer redirecting to the given buffer-enabled object */ PyAPI_FUNC(PyObject *) PyPickleBuffer_FromObject(PyObject *); diff --git a/Include/cpython/pthread_stubs.h b/Include/cpython/pthread_stubs.h deleted file mode 100644 index d95ee03d8308ce..00000000000000 --- a/Include/cpython/pthread_stubs.h +++ /dev/null @@ -1,88 +0,0 @@ -#ifndef Py_CPYTHON_PTRHEAD_STUBS_H -#define Py_CPYTHON_PTRHEAD_STUBS_H - -#if !defined(HAVE_PTHREAD_STUBS) -# error "this header file requires stubbed pthreads." -#endif - -#ifndef _POSIX_THREADS -# define _POSIX_THREADS 1 -#endif - -/* Minimal pthread stubs for CPython. - * - * The stubs implement the minimum pthread API for CPython. - * - pthread_create() fails. - * - pthread_exit() calls exit(0). - * - pthread_key_*() functions implement minimal TSS without destructor. - * - all other functions do nothing and return 0. - */ - -#ifdef __wasi__ -// WASI's bits/alltypes.h provides type definitions when __NEED_ is set. -// The header file can be included multiple times. -# define __NEED_pthread_cond_t 1 -# define __NEED_pthread_condattr_t 1 -# define __NEED_pthread_mutex_t 1 -# define __NEED_pthread_mutexattr_t 1 -# define __NEED_pthread_key_t 1 -# define __NEED_pthread_t 1 -# define __NEED_pthread_attr_t 1 -# include <bits/alltypes.h> -#else -typedef struct { void *__x; } pthread_cond_t; -typedef struct { unsigned __attr; } pthread_condattr_t; -typedef struct { void *__x; } pthread_mutex_t; -typedef struct { unsigned __attr; } pthread_mutexattr_t; -typedef unsigned pthread_key_t; -typedef unsigned pthread_t; -typedef struct { unsigned __attr; } pthread_attr_t; -#endif - -// mutex -PyAPI_FUNC(int) pthread_mutex_init(pthread_mutex_t *restrict mutex, - const pthread_mutexattr_t *restrict attr); -PyAPI_FUNC(int) pthread_mutex_destroy(pthread_mutex_t *mutex); -PyAPI_FUNC(int) pthread_mutex_trylock(pthread_mutex_t *mutex); -PyAPI_FUNC(int) pthread_mutex_lock(pthread_mutex_t *mutex); -PyAPI_FUNC(int) pthread_mutex_unlock(pthread_mutex_t *mutex); - -// condition -PyAPI_FUNC(int) pthread_cond_init(pthread_cond_t *restrict cond, - const pthread_condattr_t *restrict attr); -PyAPI_FUNC(int) pthread_cond_destroy(pthread_cond_t *cond); -PyAPI_FUNC(int) pthread_cond_wait(pthread_cond_t *restrict cond, - pthread_mutex_t *restrict mutex); -PyAPI_FUNC(int) pthread_cond_timedwait(pthread_cond_t *restrict cond, - pthread_mutex_t *restrict mutex, - const struct timespec *restrict abstime); -PyAPI_FUNC(int) pthread_cond_signal(pthread_cond_t *cond); -PyAPI_FUNC(int) pthread_condattr_init(pthread_condattr_t *attr); -PyAPI_FUNC(int) pthread_condattr_setclock( - pthread_condattr_t *attr, clockid_t clock_id); - -// pthread -PyAPI_FUNC(int) pthread_create(pthread_t *restrict thread, - const pthread_attr_t *restrict attr, - void *(*start_routine)(void *), - void *restrict arg); -PyAPI_FUNC(int) pthread_detach(pthread_t thread); -PyAPI_FUNC(pthread_t) pthread_self(void); -PyAPI_FUNC(int) pthread_exit(void *retval) __attribute__ ((__noreturn__)); -PyAPI_FUNC(int) pthread_attr_init(pthread_attr_t *attr); -PyAPI_FUNC(int) pthread_attr_setstacksize(pthread_attr_t *attr, size_t stacksize); -PyAPI_FUNC(int) pthread_attr_destroy(pthread_attr_t *attr); - - -// pthread_key -#ifndef PTHREAD_KEYS_MAX -# define PTHREAD_KEYS_MAX 128 -#endif - -PyAPI_FUNC(int) pthread_key_create(pthread_key_t *key, - void (*destr_function)(void *)); -PyAPI_FUNC(int) pthread_key_delete(pthread_key_t key); -PyAPI_FUNC(void *) pthread_getspecific(pthread_key_t key); -PyAPI_FUNC(int) pthread_setspecific(pthread_key_t key, const void *value); - -#endif // Py_CPYTHON_PTRHEAD_STUBS_H diff --git a/Include/cpython/pydebug.h b/Include/cpython/pydebug.h index f6ebd99ed7e2ff..cab799f0b38e0c 100644 --- a/Include/cpython/pydebug.h +++ b/Include/cpython/pydebug.h @@ -5,31 +5,31 @@ extern "C" { #endif -Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_DebugFlag; -Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_VerboseFlag; -Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_QuietFlag; -Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_InteractiveFlag; -Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_InspectFlag; -Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_OptimizeFlag; -Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_NoSiteFlag; -Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_BytesWarningFlag; -Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_FrozenFlag; -Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_IgnoreEnvironmentFlag; -Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_DontWriteBytecodeFlag; -Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_NoUserSiteDirectory; -Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_UnbufferedStdioFlag; -Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_HashRandomizationFlag; -Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_IsolatedFlag; +PyAPI_DATA(int) Py_DebugFlag; +PyAPI_DATA(int) Py_VerboseFlag; +PyAPI_DATA(int) Py_QuietFlag; +PyAPI_DATA(int) Py_InteractiveFlag; +PyAPI_DATA(int) Py_InspectFlag; +PyAPI_DATA(int) Py_OptimizeFlag; +PyAPI_DATA(int) Py_NoSiteFlag; +PyAPI_DATA(int) Py_BytesWarningFlag; +PyAPI_DATA(int) Py_FrozenFlag; +PyAPI_DATA(int) Py_IgnoreEnvironmentFlag; +PyAPI_DATA(int) Py_DontWriteBytecodeFlag; +PyAPI_DATA(int) Py_NoUserSiteDirectory; +PyAPI_DATA(int) Py_UnbufferedStdioFlag; +PyAPI_DATA(int) Py_HashRandomizationFlag; +PyAPI_DATA(int) Py_IsolatedFlag; #ifdef MS_WINDOWS -Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_LegacyWindowsFSEncodingFlag; -Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_LegacyWindowsStdioFlag; +PyAPI_DATA(int) Py_LegacyWindowsFSEncodingFlag; +PyAPI_DATA(int) Py_LegacyWindowsStdioFlag; #endif /* this is a wrapper around getenv() that pays attention to Py_IgnoreEnvironmentFlag. It should be used for getting variables like PYTHONPATH and PYTHONHOME from the environment */ -PyAPI_FUNC(char*) Py_GETENV(const char *name); +PyAPI_DATA(char*) Py_GETENV(const char *name); #ifdef __cplusplus } diff --git a/Include/cpython/pyerrors.h b/Include/cpython/pyerrors.h index f33d3caaa2082e..47d80e3242302d 100644 --- a/Include/cpython/pyerrors.h +++ b/Include/cpython/pyerrors.h @@ -176,4 +176,4 @@ PyAPI_FUNC(void) _Py_NO_RETURN _Py_FatalErrorFormat( const char *format, ...); -#define Py_FatalError(message) _Py_FatalErrorFunc(__func__, (message)) +#define Py_FatalError(message) _Py_FatalErrorFunc(__func__, message) diff --git a/Include/cpython/pyframe.h b/Include/cpython/pyframe.h deleted file mode 100644 index 1dc634ccee9a27..00000000000000 --- a/Include/cpython/pyframe.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef Py_CPYTHON_PYFRAME_H -# error "this header file must not be included directly" -#endif - -PyAPI_DATA(PyTypeObject) PyFrame_Type; - -#define PyFrame_Check(op) Py_IS_TYPE((op), &PyFrame_Type) - -PyAPI_FUNC(PyFrameObject *) PyFrame_GetBack(PyFrameObject *frame); -PyAPI_FUNC(PyObject *) PyFrame_GetLocals(PyFrameObject *frame); - -PyAPI_FUNC(PyObject *) PyFrame_GetGlobals(PyFrameObject *frame); -PyAPI_FUNC(PyObject *) PyFrame_GetBuiltins(PyFrameObject *frame); - -PyAPI_FUNC(PyObject *) PyFrame_GetGenerator(PyFrameObject *frame); -PyAPI_FUNC(int) PyFrame_GetLasti(PyFrameObject *frame); - diff --git a/Include/cpython/pystate.h b/Include/cpython/pystate.h index cc3c3eae941933..2bd46067cbbe18 100644 --- a/Include/cpython/pystate.h +++ b/Include/cpython/pystate.h @@ -279,10 +279,7 @@ PyAPI_FUNC(const PyConfig*) _PyInterpreterState_GetConfig(PyInterpreterState *in for example. Python must be preinitialized to call this method. - The caller must hold the GIL. - - Once done with the configuration, PyConfig_Clear() must be called to clear - it. */ + The caller must hold the GIL. */ PyAPI_FUNC(int) _PyInterpreterState_GetConfigCopy( struct PyConfig *config); diff --git a/Include/cpython/pythonrun.h b/Include/cpython/pythonrun.h index fb617655374026..2e72d0820d34f5 100644 --- a/Include/cpython/pythonrun.h +++ b/Include/cpython/pythonrun.h @@ -66,8 +66,8 @@ PyAPI_FUNC(PyObject *) Py_CompileStringObject( PyCompilerFlags *flags, int optimize); -#define Py_CompileString(str, p, s) Py_CompileStringExFlags((str), (p), (s), NULL, -1) -#define Py_CompileStringFlags(str, p, s, f) Py_CompileStringExFlags((str), (p), (s), (f), -1) +#define Py_CompileString(str, p, s) Py_CompileStringExFlags(str, p, s, NULL, -1) +#define Py_CompileStringFlags(str, p, s, f) Py_CompileStringExFlags(str, p, s, f, -1) PyAPI_FUNC(const char *) _Py_SourceAsString( @@ -96,23 +96,23 @@ PyAPI_FUNC(PyObject *) PyRun_FileEx(FILE *fp, const char *p, int s, PyObject *g, PyAPI_FUNC(PyObject *) PyRun_FileFlags(FILE *fp, const char *p, int s, PyObject *g, PyObject *l, PyCompilerFlags *flags); /* Use macros for a bunch of old variants */ -#define PyRun_String(str, s, g, l) PyRun_StringFlags((str), (s), (g), (l), NULL) -#define PyRun_AnyFile(fp, name) PyRun_AnyFileExFlags((fp), (name), 0, NULL) +#define PyRun_String(str, s, g, l) PyRun_StringFlags(str, s, g, l, NULL) +#define PyRun_AnyFile(fp, name) PyRun_AnyFileExFlags(fp, name, 0, NULL) #define PyRun_AnyFileEx(fp, name, closeit) \ - PyRun_AnyFileExFlags((fp), (name), (closeit), NULL) + PyRun_AnyFileExFlags(fp, name, closeit, NULL) #define PyRun_AnyFileFlags(fp, name, flags) \ - PyRun_AnyFileExFlags((fp), (name), 0, (flags)) -#define PyRun_SimpleString(s) PyRun_SimpleStringFlags((s), NULL) -#define PyRun_SimpleFile(f, p) PyRun_SimpleFileExFlags((f), (p), 0, NULL) -#define PyRun_SimpleFileEx(f, p, c) PyRun_SimpleFileExFlags((f), (p), (c), NULL) -#define PyRun_InteractiveOne(f, p) PyRun_InteractiveOneFlags((f), (p), NULL) -#define PyRun_InteractiveLoop(f, p) PyRun_InteractiveLoopFlags((f), (p), NULL) + PyRun_AnyFileExFlags(fp, name, 0, flags) +#define PyRun_SimpleString(s) PyRun_SimpleStringFlags(s, NULL) +#define PyRun_SimpleFile(f, p) PyRun_SimpleFileExFlags(f, p, 0, NULL) +#define PyRun_SimpleFileEx(f, p, c) PyRun_SimpleFileExFlags(f, p, c, NULL) +#define PyRun_InteractiveOne(f, p) PyRun_InteractiveOneFlags(f, p, NULL) +#define PyRun_InteractiveLoop(f, p) PyRun_InteractiveLoopFlags(f, p, NULL) #define PyRun_File(fp, p, s, g, l) \ - PyRun_FileExFlags((fp), (p), (s), (g), (l), 0, NULL) + PyRun_FileExFlags(fp, p, s, g, l, 0, NULL) #define PyRun_FileEx(fp, p, s, g, l, c) \ - PyRun_FileExFlags((fp), (p), (s), (g), (l), (c), NULL) + PyRun_FileExFlags(fp, p, s, g, l, c, NULL) #define PyRun_FileFlags(fp, p, s, g, l, flags) \ - PyRun_FileExFlags((fp), (p), (s), (g), (l), 0, (flags)) + PyRun_FileExFlags(fp, p, s, g, l, 0, flags) /* Stuff with no proper home (yet) */ diff --git a/Include/cpython/pythread.h b/Include/cpython/pythread.h index ce4ec8f65b15ea..1fd86a6a90f9af 100644 --- a/Include/cpython/pythread.h +++ b/Include/cpython/pythread.h @@ -20,9 +20,6 @@ PyAPI_FUNC(int) _PyThread_at_fork_reinit(PyThread_type_lock *lock); but hardcode the unsigned long to avoid errors for include directive. */ # define NATIVE_TSS_KEY_T unsigned long -#elif defined(HAVE_PTHREAD_STUBS) -# include "cpython/pthread_stubs.h" -# define NATIVE_TSS_KEY_T pthread_key_t #else # error "Require native threads. See https://bugs.python.org/issue31370" #endif diff --git a/Include/cpython/pytime.h b/Include/cpython/pytime.h index e64f3b13e75ca1..23d4f16a8fd847 100644 --- a/Include/cpython/pytime.h +++ b/Include/cpython/pytime.h @@ -130,10 +130,6 @@ PyAPI_FUNC(_PyTime_t) _PyTime_FromSeconds(int seconds); /* Create a timestamp from a number of nanoseconds. */ PyAPI_FUNC(_PyTime_t) _PyTime_FromNanoseconds(_PyTime_t ns); -/* Create a timestamp from a number of microseconds. - * Clamp to [_PyTime_MIN; _PyTime_MAX] on overflow. */ -PyAPI_FUNC(_PyTime_t) _PyTime_FromMicrosecondsClamp(_PyTime_t us); - /* Create a timestamp from nanoseconds (Python int). */ PyAPI_FUNC(int) _PyTime_FromNanosecondsObject(_PyTime_t *t, PyObject *obj); diff --git a/Include/cpython/tupleobject.h b/Include/cpython/tupleobject.h index f6a1f076e03330..3d9c1aff588634 100644 --- a/Include/cpython/tupleobject.h +++ b/Include/cpython/tupleobject.h @@ -23,9 +23,11 @@ static inline Py_ssize_t PyTuple_GET_SIZE(PyObject *op) { PyTupleObject *tuple = _PyTuple_CAST(op); return Py_SIZE(tuple); } -#define PyTuple_GET_SIZE(op) PyTuple_GET_SIZE(_PyObject_CAST(op)) +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define PyTuple_GET_SIZE(op) PyTuple_GET_SIZE(_PyObject_CAST(op)) +#endif -#define PyTuple_GET_ITEM(op, index) (_PyTuple_CAST(op)->ob_item[(index)]) +#define PyTuple_GET_ITEM(op, index) (_PyTuple_CAST(op)->ob_item[index]) /* Function *only* to be used to fill in brand new tuples */ static inline void @@ -33,7 +35,9 @@ PyTuple_SET_ITEM(PyObject *op, Py_ssize_t index, PyObject *value) { PyTupleObject *tuple = _PyTuple_CAST(op); tuple->ob_item[index] = value; } +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 #define PyTuple_SET_ITEM(op, index, value) \ - PyTuple_SET_ITEM(_PyObject_CAST(op), (index), _PyObject_CAST(value)) + PyTuple_SET_ITEM(_PyObject_CAST(op), index, _PyObject_CAST(value)) +#endif PyAPI_FUNC(void) _PyTuple_DebugMallocStats(FILE *out); diff --git a/Include/cpython/unicodeobject.h b/Include/cpython/unicodeobject.h index 3ca6ace24c5f74..3adfcb7a8c1f0e 100644 --- a/Include/cpython/unicodeobject.h +++ b/Include/cpython/unicodeobject.h @@ -188,13 +188,17 @@ PyAPI_FUNC(int) _PyUnicode_CheckConsistency( static inline unsigned int PyUnicode_CHECK_INTERNED(PyObject *op) { return _PyASCIIObject_CAST(op)->state.interned; } -#define PyUnicode_CHECK_INTERNED(op) PyUnicode_CHECK_INTERNED(_PyObject_CAST(op)) +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define PyUnicode_CHECK_INTERNED(op) PyUnicode_CHECK_INTERNED(_PyObject_CAST(op)) +#endif /* For backward compatibility */ static inline unsigned int PyUnicode_IS_READY(PyObject* Py_UNUSED(op)) { return 1; } -#define PyUnicode_IS_READY(op) PyUnicode_IS_READY(_PyObject_CAST(op)) +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define PyUnicode_IS_READY(op) PyUnicode_IS_READY(_PyObject_CAST(op)) +#endif /* Return true if the string contains only ASCII characters, or 0 if not. The string may be compact (PyUnicode_IS_COMPACT_ASCII) or not, but must be @@ -202,21 +206,27 @@ static inline unsigned int PyUnicode_IS_READY(PyObject* Py_UNUSED(op)) { static inline unsigned int PyUnicode_IS_ASCII(PyObject *op) { return _PyASCIIObject_CAST(op)->state.ascii; } -#define PyUnicode_IS_ASCII(op) PyUnicode_IS_ASCII(_PyObject_CAST(op)) +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define PyUnicode_IS_ASCII(op) PyUnicode_IS_ASCII(_PyObject_CAST(op)) +#endif /* Return true if the string is compact or 0 if not. No type checks or Ready calls are performed. */ static inline unsigned int PyUnicode_IS_COMPACT(PyObject *op) { return _PyASCIIObject_CAST(op)->state.compact; } -#define PyUnicode_IS_COMPACT(op) PyUnicode_IS_COMPACT(_PyObject_CAST(op)) +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define PyUnicode_IS_COMPACT(op) PyUnicode_IS_COMPACT(_PyObject_CAST(op)) +#endif /* Return true if the string is a compact ASCII string (use PyASCIIObject structure), or 0 if not. No type checks or Ready calls are performed. */ static inline int PyUnicode_IS_COMPACT_ASCII(PyObject *op) { return (_PyASCIIObject_CAST(op)->state.ascii && PyUnicode_IS_COMPACT(op)); } -#define PyUnicode_IS_COMPACT_ASCII(op) PyUnicode_IS_COMPACT_ASCII(_PyObject_CAST(op)) +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define PyUnicode_IS_COMPACT_ASCII(op) PyUnicode_IS_COMPACT_ASCII(_PyObject_CAST(op)) +#endif enum PyUnicode_Kind { /* Return values of the PyUnicode_KIND() function: */ @@ -226,14 +236,22 @@ enum PyUnicode_Kind { }; // PyUnicode_KIND(): Return one of the PyUnicode_*_KIND values defined above. -// +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030c0000 // gh-89653: Converting this macro to a static inline function would introduce // new compiler warnings on "kind < PyUnicode_KIND(str)" (compare signed and // unsigned numbers) where kind type is an int or on // "unsigned int kind = PyUnicode_KIND(str)" (cast signed to unsigned). // Only declare the function as static inline function in the limited C API // version 3.12 which is stricter. -#define PyUnicode_KIND(op) (_PyASCIIObject_CAST(op)->state.kind) +#define PyUnicode_KIND(op) \ + (_PyASCIIObject_CAST(op)->state.kind) +#else +// Limited C API 3.12 and newer +static inline int PyUnicode_KIND(PyObject *op) { + assert(PyUnicode_IS_READY(op)); + return _PyASCIIObject_CAST(op)->state.kind; +} +#endif /* Return a void pointer to the raw unicode buffer. */ static inline void* _PyUnicode_COMPACT_DATA(PyObject *op) { @@ -257,7 +275,9 @@ static inline void* PyUnicode_DATA(PyObject *op) { } return _PyUnicode_NONCOMPACT_DATA(op); } -#define PyUnicode_DATA(op) PyUnicode_DATA(_PyObject_CAST(op)) +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define PyUnicode_DATA(op) PyUnicode_DATA(_PyObject_CAST(op)) +#endif /* Return pointers to the canonical representation cast to unsigned char, Py_UCS2, or Py_UCS4 for direct character access. @@ -272,7 +292,9 @@ static inline void* PyUnicode_DATA(PyObject *op) { static inline Py_ssize_t PyUnicode_GET_LENGTH(PyObject *op) { return _PyASCIIObject_CAST(op)->length; } -#define PyUnicode_GET_LENGTH(op) PyUnicode_GET_LENGTH(_PyObject_CAST(op)) +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define PyUnicode_GET_LENGTH(op) PyUnicode_GET_LENGTH(_PyObject_CAST(op)) +#endif /* Write into the canonical representation, this function does not do any sanity checks and is intended for usage in loops. The caller should cache the @@ -297,9 +319,11 @@ static inline void PyUnicode_WRITE(int kind, void *data, _Py_STATIC_CAST(Py_UCS4*, data)[index] = value; } } +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 #define PyUnicode_WRITE(kind, data, index, value) \ PyUnicode_WRITE(_Py_STATIC_CAST(int, kind), _Py_CAST(void*, data), \ (index), _Py_STATIC_CAST(Py_UCS4, value)) +#endif /* Read a code point from the string's canonical representation. No checks or ready calls are performed. */ @@ -316,10 +340,12 @@ static inline Py_UCS4 PyUnicode_READ(int kind, assert(kind == PyUnicode_4BYTE_KIND); return _Py_STATIC_CAST(const Py_UCS4*, data)[index]; } +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 #define PyUnicode_READ(kind, data, index) \ PyUnicode_READ(_Py_STATIC_CAST(int, kind), \ _Py_STATIC_CAST(const void*, data), \ (index)) +#endif /* PyUnicode_READ_CHAR() is less efficient than PyUnicode_READ() because it calls PyUnicode_KIND() and might call it twice. For single reads, use @@ -343,8 +369,10 @@ static inline Py_UCS4 PyUnicode_READ_CHAR(PyObject *unicode, Py_ssize_t index) assert(kind == PyUnicode_4BYTE_KIND); return PyUnicode_4BYTE_DATA(unicode)[index]; } -#define PyUnicode_READ_CHAR(unicode, index) \ - PyUnicode_READ_CHAR(_PyObject_CAST(unicode), (index)) +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define PyUnicode_READ_CHAR(unicode, index) \ + PyUnicode_READ_CHAR(_PyObject_CAST(unicode), (index)) +#endif /* Return a maximum character value which is suitable for creating another string based on op. This is always an approximation but more efficient @@ -367,8 +395,10 @@ static inline Py_UCS4 PyUnicode_MAX_CHAR_VALUE(PyObject *op) assert(kind == PyUnicode_4BYTE_KIND); return 0x10ffffU; } -#define PyUnicode_MAX_CHAR_VALUE(op) \ - PyUnicode_MAX_CHAR_VALUE(_PyObject_CAST(op)) +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define PyUnicode_MAX_CHAR_VALUE(op) \ + PyUnicode_MAX_CHAR_VALUE(_PyObject_CAST(op)) +#endif /* === Public API ========================================================= */ @@ -387,7 +417,9 @@ static inline int PyUnicode_READY(PyObject* Py_UNUSED(op)) { return 0; } -#define PyUnicode_READY(op) PyUnicode_READY(_PyObject_CAST(op)) +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define PyUnicode_READY(op) PyUnicode_READY(_PyObject_CAST(op)) +#endif /* Get a copy of a Unicode string. */ PyAPI_FUNC(PyObject*) _PyUnicode_Copy( diff --git a/Include/cpython/warnings.h b/Include/cpython/warnings.h index 4e3eb88e8ff447..2ef8e3ce9435f4 100644 --- a/Include/cpython/warnings.h +++ b/Include/cpython/warnings.h @@ -17,4 +17,4 @@ PyAPI_FUNC(int) PyErr_WarnExplicitFormat( const char *format, ...); // DEPRECATED: Use PyErr_WarnEx() instead. -#define PyErr_Warn(category, msg) PyErr_WarnEx((category), (msg), 1) +#define PyErr_Warn(category, msg) PyErr_WarnEx(category, msg, 1) diff --git a/Include/cpython/weakrefobject.h b/Include/cpython/weakrefobject.h index fd79fdc2dcc468..26b364f41d4d7e 100644 --- a/Include/cpython/weakrefobject.h +++ b/Include/cpython/weakrefobject.h @@ -53,4 +53,6 @@ static inline PyObject* PyWeakref_GET_OBJECT(PyObject *ref_obj) { } return Py_None; } -#define PyWeakref_GET_OBJECT(ref) PyWeakref_GET_OBJECT(_PyObject_CAST(ref)) +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define PyWeakref_GET_OBJECT(ref) PyWeakref_GET_OBJECT(_PyObject_CAST(ref)) +#endif diff --git a/Include/datetime.h b/Include/datetime.h index b78cc0e8e2e5ac..bb565201a164d7 100644 --- a/Include/datetime.h +++ b/Include/datetime.h @@ -119,39 +119,39 @@ typedef struct // o is a pointer to a time or a datetime object. #define _PyDateTime_HAS_TZINFO(o) (((_PyDateTime_BaseTZInfo *)(o))->hastzinfo) -#define PyDateTime_GET_YEAR(o) ((((PyDateTime_Date*)(o))->data[0] << 8) | \ - ((PyDateTime_Date*)(o))->data[1]) -#define PyDateTime_GET_MONTH(o) (((PyDateTime_Date*)(o))->data[2]) -#define PyDateTime_GET_DAY(o) (((PyDateTime_Date*)(o))->data[3]) - -#define PyDateTime_DATE_GET_HOUR(o) (((PyDateTime_DateTime*)(o))->data[4]) -#define PyDateTime_DATE_GET_MINUTE(o) (((PyDateTime_DateTime*)(o))->data[5]) -#define PyDateTime_DATE_GET_SECOND(o) (((PyDateTime_DateTime*)(o))->data[6]) +#define PyDateTime_GET_YEAR(o) ((((PyDateTime_Date*)o)->data[0] << 8) | \ + ((PyDateTime_Date*)o)->data[1]) +#define PyDateTime_GET_MONTH(o) (((PyDateTime_Date*)o)->data[2]) +#define PyDateTime_GET_DAY(o) (((PyDateTime_Date*)o)->data[3]) + +#define PyDateTime_DATE_GET_HOUR(o) (((PyDateTime_DateTime*)o)->data[4]) +#define PyDateTime_DATE_GET_MINUTE(o) (((PyDateTime_DateTime*)o)->data[5]) +#define PyDateTime_DATE_GET_SECOND(o) (((PyDateTime_DateTime*)o)->data[6]) #define PyDateTime_DATE_GET_MICROSECOND(o) \ - ((((PyDateTime_DateTime*)(o))->data[7] << 16) | \ - (((PyDateTime_DateTime*)(o))->data[8] << 8) | \ - ((PyDateTime_DateTime*)(o))->data[9]) -#define PyDateTime_DATE_GET_FOLD(o) (((PyDateTime_DateTime*)(o))->fold) -#define PyDateTime_DATE_GET_TZINFO(o) (_PyDateTime_HAS_TZINFO((o)) ? \ + ((((PyDateTime_DateTime*)o)->data[7] << 16) | \ + (((PyDateTime_DateTime*)o)->data[8] << 8) | \ + ((PyDateTime_DateTime*)o)->data[9]) +#define PyDateTime_DATE_GET_FOLD(o) (((PyDateTime_DateTime*)o)->fold) +#define PyDateTime_DATE_GET_TZINFO(o) (_PyDateTime_HAS_TZINFO(o) ? \ ((PyDateTime_DateTime *)(o))->tzinfo : Py_None) /* Apply for time instances. */ -#define PyDateTime_TIME_GET_HOUR(o) (((PyDateTime_Time*)(o))->data[0]) -#define PyDateTime_TIME_GET_MINUTE(o) (((PyDateTime_Time*)(o))->data[1]) -#define PyDateTime_TIME_GET_SECOND(o) (((PyDateTime_Time*)(o))->data[2]) +#define PyDateTime_TIME_GET_HOUR(o) (((PyDateTime_Time*)o)->data[0]) +#define PyDateTime_TIME_GET_MINUTE(o) (((PyDateTime_Time*)o)->data[1]) +#define PyDateTime_TIME_GET_SECOND(o) (((PyDateTime_Time*)o)->data[2]) #define PyDateTime_TIME_GET_MICROSECOND(o) \ - ((((PyDateTime_Time*)(o))->data[3] << 16) | \ - (((PyDateTime_Time*)(o))->data[4] << 8) | \ - ((PyDateTime_Time*)(o))->data[5]) -#define PyDateTime_TIME_GET_FOLD(o) (((PyDateTime_Time*)(o))->fold) + ((((PyDateTime_Time*)o)->data[3] << 16) | \ + (((PyDateTime_Time*)o)->data[4] << 8) | \ + ((PyDateTime_Time*)o)->data[5]) +#define PyDateTime_TIME_GET_FOLD(o) (((PyDateTime_Time*)o)->fold) #define PyDateTime_TIME_GET_TZINFO(o) (_PyDateTime_HAS_TZINFO(o) ? \ ((PyDateTime_Time *)(o))->tzinfo : Py_None) /* Apply for time delta instances */ -#define PyDateTime_DELTA_GET_DAYS(o) (((PyDateTime_Delta*)(o))->days) -#define PyDateTime_DELTA_GET_SECONDS(o) (((PyDateTime_Delta*)(o))->seconds) +#define PyDateTime_DELTA_GET_DAYS(o) (((PyDateTime_Delta*)o)->days) +#define PyDateTime_DELTA_GET_SECONDS(o) (((PyDateTime_Delta*)o)->seconds) #define PyDateTime_DELTA_GET_MICROSECONDS(o) \ - (((PyDateTime_Delta*)(o))->microseconds) + (((PyDateTime_Delta*)o)->microseconds) /* Define structure for C API. */ @@ -203,60 +203,60 @@ static PyDateTime_CAPI *PyDateTimeAPI = NULL; #define PyDateTime_TimeZone_UTC PyDateTimeAPI->TimeZone_UTC /* Macros for type checking when not building the Python core. */ -#define PyDate_Check(op) PyObject_TypeCheck((op), PyDateTimeAPI->DateType) -#define PyDate_CheckExact(op) Py_IS_TYPE((op), PyDateTimeAPI->DateType) +#define PyDate_Check(op) PyObject_TypeCheck(op, PyDateTimeAPI->DateType) +#define PyDate_CheckExact(op) Py_IS_TYPE(op, PyDateTimeAPI->DateType) -#define PyDateTime_Check(op) PyObject_TypeCheck((op), PyDateTimeAPI->DateTimeType) -#define PyDateTime_CheckExact(op) Py_IS_TYPE((op), PyDateTimeAPI->DateTimeType) +#define PyDateTime_Check(op) PyObject_TypeCheck(op, PyDateTimeAPI->DateTimeType) +#define PyDateTime_CheckExact(op) Py_IS_TYPE(op, PyDateTimeAPI->DateTimeType) -#define PyTime_Check(op) PyObject_TypeCheck((op), PyDateTimeAPI->TimeType) -#define PyTime_CheckExact(op) Py_IS_TYPE((op), PyDateTimeAPI->TimeType) +#define PyTime_Check(op) PyObject_TypeCheck(op, PyDateTimeAPI->TimeType) +#define PyTime_CheckExact(op) Py_IS_TYPE(op, PyDateTimeAPI->TimeType) -#define PyDelta_Check(op) PyObject_TypeCheck((op), PyDateTimeAPI->DeltaType) -#define PyDelta_CheckExact(op) Py_IS_TYPE((op), PyDateTimeAPI->DeltaType) +#define PyDelta_Check(op) PyObject_TypeCheck(op, PyDateTimeAPI->DeltaType) +#define PyDelta_CheckExact(op) Py_IS_TYPE(op, PyDateTimeAPI->DeltaType) -#define PyTZInfo_Check(op) PyObject_TypeCheck((op), PyDateTimeAPI->TZInfoType) -#define PyTZInfo_CheckExact(op) Py_IS_TYPE((op), PyDateTimeAPI->TZInfoType) +#define PyTZInfo_Check(op) PyObject_TypeCheck(op, PyDateTimeAPI->TZInfoType) +#define PyTZInfo_CheckExact(op) Py_IS_TYPE(op, PyDateTimeAPI->TZInfoType) /* Macros for accessing constructors in a simplified fashion. */ #define PyDate_FromDate(year, month, day) \ - PyDateTimeAPI->Date_FromDate((year), (month), (day), PyDateTimeAPI->DateType) + PyDateTimeAPI->Date_FromDate(year, month, day, PyDateTimeAPI->DateType) #define PyDateTime_FromDateAndTime(year, month, day, hour, min, sec, usec) \ - PyDateTimeAPI->DateTime_FromDateAndTime((year), (month), (day), (hour), \ - (min), (sec), (usec), Py_None, PyDateTimeAPI->DateTimeType) + PyDateTimeAPI->DateTime_FromDateAndTime(year, month, day, hour, \ + min, sec, usec, Py_None, PyDateTimeAPI->DateTimeType) #define PyDateTime_FromDateAndTimeAndFold(year, month, day, hour, min, sec, usec, fold) \ - PyDateTimeAPI->DateTime_FromDateAndTimeAndFold((year), (month), (day), (hour), \ - (min), (sec), (usec), Py_None, (fold), PyDateTimeAPI->DateTimeType) + PyDateTimeAPI->DateTime_FromDateAndTimeAndFold(year, month, day, hour, \ + min, sec, usec, Py_None, fold, PyDateTimeAPI->DateTimeType) #define PyTime_FromTime(hour, minute, second, usecond) \ - PyDateTimeAPI->Time_FromTime((hour), (minute), (second), (usecond), \ + PyDateTimeAPI->Time_FromTime(hour, minute, second, usecond, \ Py_None, PyDateTimeAPI->TimeType) #define PyTime_FromTimeAndFold(hour, minute, second, usecond, fold) \ - PyDateTimeAPI->Time_FromTimeAndFold((hour), (minute), (second), (usecond), \ - Py_None, (fold), PyDateTimeAPI->TimeType) + PyDateTimeAPI->Time_FromTimeAndFold(hour, minute, second, usecond, \ + Py_None, fold, PyDateTimeAPI->TimeType) #define PyDelta_FromDSU(days, seconds, useconds) \ - PyDateTimeAPI->Delta_FromDelta((days), (seconds), (useconds), 1, \ + PyDateTimeAPI->Delta_FromDelta(days, seconds, useconds, 1, \ PyDateTimeAPI->DeltaType) #define PyTimeZone_FromOffset(offset) \ - PyDateTimeAPI->TimeZone_FromTimeZone((offset), NULL) + PyDateTimeAPI->TimeZone_FromTimeZone(offset, NULL) #define PyTimeZone_FromOffsetAndName(offset, name) \ - PyDateTimeAPI->TimeZone_FromTimeZone((offset), (name)) + PyDateTimeAPI->TimeZone_FromTimeZone(offset, name) /* Macros supporting the DB API. */ #define PyDateTime_FromTimestamp(args) \ PyDateTimeAPI->DateTime_FromTimestamp( \ - (PyObject*) (PyDateTimeAPI->DateTimeType), (args), NULL) + (PyObject*) (PyDateTimeAPI->DateTimeType), args, NULL) #define PyDate_FromTimestamp(args) \ PyDateTimeAPI->Date_FromTimestamp( \ - (PyObject*) (PyDateTimeAPI->DateType), (args)) + (PyObject*) (PyDateTimeAPI->DateType), args) #endif /* !defined(_PY_DATETIME_IMPL) */ diff --git a/Include/dictobject.h b/Include/dictobject.h index e7fcb44d0cf9a9..a6233d8ae2512a 100644 --- a/Include/dictobject.h +++ b/Include/dictobject.h @@ -16,7 +16,7 @@ PyAPI_DATA(PyTypeObject) PyDict_Type; #define PyDict_Check(op) \ PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_DICT_SUBCLASS) -#define PyDict_CheckExact(op) Py_IS_TYPE((op), &PyDict_Type) +#define PyDict_CheckExact(op) Py_IS_TYPE(op, &PyDict_Type) PyAPI_FUNC(PyObject *) PyDict_New(void); PyAPI_FUNC(PyObject *) PyDict_GetItem(PyObject *mp, PyObject *key); @@ -67,9 +67,9 @@ PyAPI_DATA(PyTypeObject) PyDictKeys_Type; PyAPI_DATA(PyTypeObject) PyDictValues_Type; PyAPI_DATA(PyTypeObject) PyDictItems_Type; -#define PyDictKeys_Check(op) PyObject_TypeCheck((op), &PyDictKeys_Type) -#define PyDictValues_Check(op) PyObject_TypeCheck((op), &PyDictValues_Type) -#define PyDictItems_Check(op) PyObject_TypeCheck((op), &PyDictItems_Type) +#define PyDictKeys_Check(op) PyObject_TypeCheck(op, &PyDictKeys_Type) +#define PyDictValues_Check(op) PyObject_TypeCheck(op, &PyDictValues_Type) +#define PyDictItems_Check(op) PyObject_TypeCheck(op, &PyDictItems_Type) /* This excludes Values, since they are not sets. */ # define PyDictViewSet_Check(op) \ (PyDictKeys_Check(op) || PyDictItems_Check(op)) diff --git a/Include/fileobject.h b/Include/fileobject.h index 02bd7c915a23f7..4c983e7b5daa8a 100644 --- a/Include/fileobject.h +++ b/Include/fileobject.h @@ -19,14 +19,14 @@ PyAPI_FUNC(int) PyObject_AsFileDescriptor(PyObject *); /* The default encoding used by the platform file system APIs If non-NULL, this is different than the default encoding for strings */ -Py_DEPRECATED(3.12) PyAPI_DATA(const char *) Py_FileSystemDefaultEncoding; +PyAPI_DATA(const char *) Py_FileSystemDefaultEncoding; #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03060000 -Py_DEPRECATED(3.12) PyAPI_DATA(const char *) Py_FileSystemDefaultEncodeErrors; +PyAPI_DATA(const char *) Py_FileSystemDefaultEncodeErrors; #endif PyAPI_DATA(int) Py_HasFileSystemDefaultEncoding; #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03070000 -Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_UTF8Mode; +PyAPI_DATA(int) Py_UTF8Mode; #endif /* A routine to check if a file descriptor can be select()-ed. */ diff --git a/Include/floatobject.h b/Include/floatobject.h index 999441ac536e1d..9d2fff3097e8ec 100644 --- a/Include/floatobject.h +++ b/Include/floatobject.h @@ -14,7 +14,7 @@ extern "C" { PyAPI_DATA(PyTypeObject) PyFloat_Type; #define PyFloat_Check(op) PyObject_TypeCheck(op, &PyFloat_Type) -#define PyFloat_CheckExact(op) Py_IS_TYPE((op), &PyFloat_Type) +#define PyFloat_CheckExact(op) Py_IS_TYPE(op, &PyFloat_Type) #define Py_RETURN_NAN return PyFloat_FromDouble(Py_NAN) diff --git a/Include/import.h b/Include/import.h index 5d5f3425b8e715..a87677bb10c7f4 100644 --- a/Include/import.h +++ b/Include/import.h @@ -67,7 +67,7 @@ PyAPI_FUNC(PyObject *) PyImport_ImportModuleLevelObject( #endif #define PyImport_ImportModuleEx(n, g, l, f) \ - PyImport_ImportModuleLevel((n), (g), (l), (f), 0) + PyImport_ImportModuleLevel(n, g, l, f, 0) PyAPI_FUNC(PyObject *) PyImport_GetImporter(PyObject *path); PyAPI_FUNC(PyObject *) PyImport_Import(PyObject *name); diff --git a/Include/internal/pycore_accu.h b/Include/internal/pycore_accu.h new file mode 100644 index 00000000000000..d346222e4dd0c9 --- /dev/null +++ b/Include/internal/pycore_accu.h @@ -0,0 +1,39 @@ +#ifndef Py_LIMITED_API +#ifndef Py_INTERNAL_ACCU_H +#define Py_INTERNAL_ACCU_H +#ifdef __cplusplus +extern "C" { +#endif + +/*** This is a private API for use by the interpreter and the stdlib. + *** Its definition may be changed or removed at any moment. + ***/ + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +/* + * A two-level accumulator of unicode objects that avoids both the overhead + * of keeping a huge number of small separate objects, and the quadratic + * behaviour of using a naive repeated concatenation scheme. + */ + +#undef small /* defined by some Windows headers */ + +typedef struct { + PyObject *large; /* A list of previously accumulated large strings */ + PyObject *small; /* Pending small strings */ +} _PyAccu; + +PyAPI_FUNC(int) _PyAccu_Init(_PyAccu *acc); +PyAPI_FUNC(int) _PyAccu_Accumulate(_PyAccu *acc, PyObject *unicode); +PyAPI_FUNC(PyObject *) _PyAccu_FinishAsList(_PyAccu *acc); +PyAPI_FUNC(PyObject *) _PyAccu_Finish(_PyAccu *acc); +PyAPI_FUNC(void) _PyAccu_Destroy(_PyAccu *acc); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_ACCU_H */ +#endif /* !Py_LIMITED_API */ diff --git a/Include/internal/pycore_asdl.h b/Include/internal/pycore_asdl.h index afeada88d13e24..5b01c7a66599e9 100644 --- a/Include/internal/pycore_asdl.h +++ b/Include/internal/pycore_asdl.h @@ -91,7 +91,7 @@ asdl_ ## NAME ## _seq *_Py_asdl_ ## NAME ## _seq_new(Py_ssize_t size, PyArena *a (S)->typed_elements[_asdl_i] = (V); \ } while (0) #else -# define asdl_seq_SET(S, I, V) _Py_RVALUE((S)->typed_elements[(I)] = (V)) +# define asdl_seq_SET(S, I, V) _Py_RVALUE((S)->typed_elements[I] = (V)) #endif #ifdef Py_DEBUG @@ -103,7 +103,7 @@ asdl_ ## NAME ## _seq *_Py_asdl_ ## NAME ## _seq_new(Py_ssize_t size, PyArena *a (S)->elements[_asdl_i] = (V); \ } while (0) #else -# define asdl_seq_SET_UNTYPED(S, I, V) _Py_RVALUE((S)->elements[(I)] = (V)) +# define asdl_seq_SET_UNTYPED(S, I, V) _Py_RVALUE((S)->elements[I] = (V)) #endif #ifdef __cplusplus diff --git a/Include/internal/pycore_ast_state.h b/Include/internal/pycore_ast_state.h index f15b4905eed14b..da78bba3b69bdf 100644 --- a/Include/internal/pycore_ast_state.h +++ b/Include/internal/pycore_ast_state.h @@ -12,8 +12,6 @@ extern "C" { struct ast_state { int initialized; - int recursion_depth; - int recursion_limit; PyObject *AST_type; PyObject *Add_singleton; PyObject *Add_type; diff --git a/Include/internal/pycore_atomic.h b/Include/internal/pycore_atomic.h index 425d69f868b52b..3d42e54464c4c7 100644 --- a/Include/internal/pycore_atomic.h +++ b/Include/internal/pycore_atomic.h @@ -236,7 +236,7 @@ _Py_ANNOTATE_MEMORY_ORDER(const volatile void *address, _Py_memory_order order) in hardware they will fall back to a full memory barrier as well. This might affect performance but likely only in some very specific and - hard to measure scenario. + hard to meassure scenario. */ #if defined(_M_IX86) || defined(_M_X64) typedef enum _Py_memory_order { diff --git a/Include/internal/pycore_ceval.h b/Include/internal/pycore_ceval.h index 4914948c6ca744..972eb926b3fa26 100644 --- a/Include/internal/pycore_ceval.h +++ b/Include/internal/pycore_ceval.h @@ -12,12 +12,11 @@ extern "C" { struct pyruntimestate; struct _ceval_runtime_state; -/* WASI has limited call stack. Python's recursion limit depends on code - layout, optimization, and WASI runtime. Wasmtime can handle about 700-750 - recursions, sometimes less. 600 is a more conservative limit. */ +/* WASI has limited call stack. wasmtime 0.36 can handle sufficient amount of + C stack frames for little more than 750 recursions. */ #ifndef Py_DEFAULT_RECURSION_LIMIT # ifdef __wasi__ -# define Py_DEFAULT_RECURSION_LIMIT 600 +# define Py_DEFAULT_RECURSION_LIMIT 750 # else # define Py_DEFAULT_RECURSION_LIMIT 1000 # endif @@ -65,27 +64,6 @@ extern PyObject* _PyEval_BuiltinsFromGlobals( PyThreadState *tstate, PyObject *globals); -// Trampoline API - -typedef struct { - // Callback to initialize the trampoline state - void* (*init_state)(void); - // Callback to register every trampoline being created - void (*write_state)(void* state, const void *code_addr, - unsigned int code_size, PyCodeObject* code); - // Callback to free the trampoline state - int (*free_state)(void* state); -} _PyPerf_Callbacks; - -extern int _PyPerfTrampoline_SetCallbacks(_PyPerf_Callbacks *); -extern void _PyPerfTrampoline_GetCallbacks(_PyPerf_Callbacks *); -extern int _PyPerfTrampoline_Init(int activate); -extern int _PyPerfTrampoline_Fini(void); -extern int _PyIsPerfTrampolineActive(void); -extern PyStatus _PyPerfTrampoline_AfterFork_Child(void); -#ifdef PY_HAVE_PERF_TRAMPOLINE -extern _PyPerf_Callbacks _Py_perfmap_callbacks; -#endif static inline PyObject* _PyEval_EvalFrame(PyThreadState *tstate, struct _PyInterpreterFrame *frame, int throwflag) @@ -103,7 +81,11 @@ _PyEval_Vector(PyThreadState *tstate, PyObject* const* args, size_t argcount, PyObject *kwnames); +#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS +extern int _PyEval_ThreadsInitialized(PyInterpreterState *interp); +#else extern int _PyEval_ThreadsInitialized(struct pyruntimestate *runtime); +#endif extern PyStatus _PyEval_InitGIL(PyThreadState *tstate); extern void _PyEval_FiniGIL(PyInterpreterState *interp); @@ -154,9 +136,6 @@ extern struct _PyInterpreterFrame* _PyEval_GetFrame(void); extern PyObject* _Py_MakeCoro(PyFunctionObject *func); -extern int _Py_HandlePending(PyThreadState *tstate); - - #ifdef __cplusplus } #endif diff --git a/Include/internal/pycore_code.h b/Include/internal/pycore_code.h index bf5945435c1774..2cfa319f2d2902 100644 --- a/Include/internal/pycore_code.h +++ b/Include/internal/pycore_code.h @@ -58,18 +58,19 @@ typedef struct { _Py_CODEUNIT index; } _PyAttrCache; +#define INLINE_CACHE_ENTRIES_LOAD_ATTR CACHE_ENTRIES(_PyAttrCache) + +#define INLINE_CACHE_ENTRIES_STORE_ATTR CACHE_ENTRIES(_PyAttrCache) + typedef struct { _Py_CODEUNIT counter; _Py_CODEUNIT type_version[2]; + _Py_CODEUNIT dict_offset; _Py_CODEUNIT keys_version[2]; _Py_CODEUNIT descr[4]; } _PyLoadMethodCache; - -// MUST be the max(_PyAttrCache, _PyLoadMethodCache) -#define INLINE_CACHE_ENTRIES_LOAD_ATTR CACHE_ENTRIES(_PyLoadMethodCache) - -#define INLINE_CACHE_ENTRIES_STORE_ATTR CACHE_ENTRIES(_PyAttrCache) +#define INLINE_CACHE_ENTRIES_LOAD_METHOD CACHE_ENTRIES(_PyLoadMethodCache) typedef struct { _Py_CODEUNIT counter; @@ -85,12 +86,6 @@ typedef struct { #define INLINE_CACHE_ENTRIES_STORE_SUBSCR CACHE_ENTRIES(_PyStoreSubscrCache) -typedef struct { - _Py_CODEUNIT counter; -} _PyForIterCache; - -#define INLINE_CACHE_ENTRIES_FOR_ITER CACHE_ENTRIES(_PyForIterCache) - #define QUICKENING_WARMUP_DELAY 8 /* We want to compare to zero for efficiency, so we offset values accordingly */ @@ -118,7 +113,6 @@ struct callable_cache { PyObject *isinstance; PyObject *len; PyObject *list_append; - PyObject *object__getattribute__; }; /* "Locals plus" for a code object is the set of locals + cell vars + @@ -233,6 +227,9 @@ extern void _PyLineTable_InitAddressRange( extern int _PyLineTable_NextAddressRange(PyCodeAddressRange *range); extern int _PyLineTable_PreviousAddressRange(PyCodeAddressRange *range); + +#define ADAPTIVE_CACHE_BACKOFF 64 + /* Specialization functions */ extern int _Py_Specialize_LoadAttr(PyObject *owner, _Py_CODEUNIT *instr, @@ -240,6 +237,8 @@ extern int _Py_Specialize_LoadAttr(PyObject *owner, _Py_CODEUNIT *instr, extern int _Py_Specialize_StoreAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name); extern int _Py_Specialize_LoadGlobal(PyObject *globals, PyObject *builtins, _Py_CODEUNIT *instr, PyObject *name); +extern int _Py_Specialize_LoadMethod(PyObject *owner, _Py_CODEUNIT *instr, + PyObject *name); extern int _Py_Specialize_BinarySubscr(PyObject *sub, PyObject *container, _Py_CODEUNIT *instr); extern int _Py_Specialize_StoreSubscr(PyObject *container, PyObject *sub, _Py_CODEUNIT *instr); extern int _Py_Specialize_Call(PyObject *callable, _Py_CODEUNIT *instr, @@ -250,7 +249,6 @@ extern void _Py_Specialize_CompareOp(PyObject *lhs, PyObject *rhs, _Py_CODEUNIT *instr, int oparg); extern void _Py_Specialize_UnpackSequence(PyObject *seq, _Py_CODEUNIT *instr, int oparg); -extern void _Py_Specialize_ForIter(PyObject *iter, _Py_CODEUNIT *instr); /* Deallocator function for static codeobjects used in deepfreeze.py */ extern void _PyStaticCode_Dealloc(PyCodeObject *co); @@ -260,16 +258,16 @@ extern int _PyStaticCode_InternStrings(PyCodeObject *co); #ifdef Py_STATS -#define STAT_INC(opname, name) do { if (_py_stats) _py_stats->opcode_stats[opname].specialization.name++; } while (0) -#define STAT_DEC(opname, name) do { if (_py_stats) _py_stats->opcode_stats[opname].specialization.name--; } while (0) -#define OPCODE_EXE_INC(opname) do { if (_py_stats) _py_stats->opcode_stats[opname].execution_count++; } while (0) -#define CALL_STAT_INC(name) do { if (_py_stats) _py_stats->call_stats.name++; } while (0) -#define OBJECT_STAT_INC(name) do { if (_py_stats) _py_stats->object_stats.name++; } while (0) +#define STAT_INC(opname, name) _py_stats.opcode_stats[opname].specialization.name++ +#define STAT_DEC(opname, name) _py_stats.opcode_stats[opname].specialization.name-- +#define OPCODE_EXE_INC(opname) _py_stats.opcode_stats[opname].execution_count++ +#define CALL_STAT_INC(name) _py_stats.call_stats.name++ +#define OBJECT_STAT_INC(name) _py_stats.object_stats.name++ #define OBJECT_STAT_INC_COND(name, cond) \ - do { if (_py_stats && cond) _py_stats->object_stats.name++; } while (0) -#define EVAL_CALL_STAT_INC(name) do { if (_py_stats) _py_stats->call_stats.eval_calls[name]++; } while (0) + do { if (cond) _py_stats.object_stats.name++; } while (0) +#define EVAL_CALL_STAT_INC(name) _py_stats.call_stats.eval_calls[name]++ #define EVAL_CALL_STAT_INC_IF_FUNCTION(name, callable) \ - do { if (_py_stats && PyFunction_Check(callable)) _py_stats->call_stats.eval_calls[name]++; } while (0) + do { if (PyFunction_Check(callable)) _py_stats.call_stats.eval_calls[name]++; } while (0) // Used by the _opcode extension which is built as a shared library PyAPI_FUNC(PyObject*) _Py_GetSpecializationStats(void); @@ -285,68 +283,110 @@ PyAPI_FUNC(PyObject*) _Py_GetSpecializationStats(void); #define EVAL_CALL_STAT_INC_IF_FUNCTION(name, callable) ((void)0) #endif // !Py_STATS -// Utility functions for reading/writing 32/64-bit values in the inline caches. -// Great care should be taken to ensure that these functions remain correct and -// performant! They should compile to just "move" instructions on all supported -// compilers and platforms. - -// We use memcpy to let the C compiler handle unaligned accesses and endianness -// issues for us. It also seems to produce better code than manual copying for -// most compilers (see https://blog.regehr.org/archives/959 for more info). +// Cache values are only valid in memory, so use native endianness. +#ifdef WORDS_BIGENDIAN static inline void write_u32(uint16_t *p, uint32_t val) { - memcpy(p, &val, sizeof(val)); + p[0] = (uint16_t)(val >> 16); + p[1] = (uint16_t)(val >> 0); } static inline void write_u64(uint16_t *p, uint64_t val) { - memcpy(p, &val, sizeof(val)); + p[0] = (uint16_t)(val >> 48); + p[1] = (uint16_t)(val >> 32); + p[2] = (uint16_t)(val >> 16); + p[3] = (uint16_t)(val >> 0); +} + +static inline uint32_t +read_u32(uint16_t *p) +{ + uint32_t val = 0; + val |= (uint32_t)p[0] << 16; + val |= (uint32_t)p[1] << 0; + return val; } +static inline uint64_t +read_u64(uint16_t *p) +{ + uint64_t val = 0; + val |= (uint64_t)p[0] << 48; + val |= (uint64_t)p[1] << 32; + val |= (uint64_t)p[2] << 16; + val |= (uint64_t)p[3] << 0; + return val; +} + +#else + static inline void -write_obj(uint16_t *p, PyObject *val) +write_u32(uint16_t *p, uint32_t val) { - memcpy(p, &val, sizeof(val)); + p[0] = (uint16_t)(val >> 0); + p[1] = (uint16_t)(val >> 16); +} + +static inline void +write_u64(uint16_t *p, uint64_t val) +{ + p[0] = (uint16_t)(val >> 0); + p[1] = (uint16_t)(val >> 16); + p[2] = (uint16_t)(val >> 32); + p[3] = (uint16_t)(val >> 48); } static inline uint32_t read_u32(uint16_t *p) { - uint32_t val; - memcpy(&val, p, sizeof(val)); + uint32_t val = 0; + val |= (uint32_t)p[0] << 0; + val |= (uint32_t)p[1] << 16; return val; } static inline uint64_t read_u64(uint16_t *p) { - uint64_t val; - memcpy(&val, p, sizeof(val)); + uint64_t val = 0; + val |= (uint64_t)p[0] << 0; + val |= (uint64_t)p[1] << 16; + val |= (uint64_t)p[2] << 32; + val |= (uint64_t)p[3] << 48; return val; } -static inline PyObject * -read_obj(uint16_t *p) +#endif + +static inline void +write_obj(uint16_t *p, PyObject *obj) { - PyObject *val; - memcpy(&val, p, sizeof(val)); - return val; + uintptr_t val = (uintptr_t)obj; +#if SIZEOF_VOID_P == 8 + write_u64(p, val); +#elif SIZEOF_VOID_P == 4 + write_u32(p, val); +#else + #error "SIZEOF_VOID_P must be 4 or 8" +#endif } -/* See Objects/exception_handling_notes.txt for details. - */ -static inline unsigned char * -parse_varint(unsigned char *p, int *result) { - int val = p[0] & 63; - while (p[0] & 64) { - p++; - val = (val << 6) | (p[0] & 63); - } - *result = val; - return p+1; +static inline PyObject * +read_obj(uint16_t *p) +{ + uintptr_t val; +#if SIZEOF_VOID_P == 8 + val = read_u64(p); +#elif SIZEOF_VOID_P == 4 + val = read_u32(p); +#else + #error "SIZEOF_VOID_P must be 4 or 8" +#endif + return (PyObject *)val; } static inline int @@ -383,79 +423,6 @@ write_location_entry_start(uint8_t *ptr, int code, int length) } -/** Counters - * The first 16-bit value in each inline cache is a counter. - * When counting misses, the counter is treated as a simple unsigned value. - * - * When counting executions until the next specialization attempt, - * exponential backoff is used to reduce the number of specialization failures. - * The high 12 bits store the counter, the low 4 bits store the backoff exponent. - * On a specialization failure, the backoff exponent is incremented and the - * counter set to (2**backoff - 1). - * Backoff == 6 -> starting counter == 63, backoff == 10 -> starting counter == 1023. - */ - -/* With a 16-bit counter, we have 12 bits for the counter value, and 4 bits for the backoff */ -#define ADAPTIVE_BACKOFF_BITS 4 -/* The initial counter value is 31 == 2**ADAPTIVE_BACKOFF_START - 1 */ -#define ADAPTIVE_BACKOFF_START 5 - -#define MAX_BACKOFF_VALUE (16 - ADAPTIVE_BACKOFF_BITS) - - -static inline uint16_t -adaptive_counter_bits(int value, int backoff) { - return (value << ADAPTIVE_BACKOFF_BITS) | - (backoff & ((1<<ADAPTIVE_BACKOFF_BITS)-1)); -} - -static inline uint16_t -adaptive_counter_start(void) { - unsigned int value = (1 << ADAPTIVE_BACKOFF_START) - 1; - return adaptive_counter_bits(value, ADAPTIVE_BACKOFF_START); -} - -static inline uint16_t -adaptive_counter_backoff(uint16_t counter) { - unsigned int backoff = counter & ((1<<ADAPTIVE_BACKOFF_BITS)-1); - backoff++; - if (backoff > MAX_BACKOFF_VALUE) { - backoff = MAX_BACKOFF_VALUE; - } - unsigned int value = (1 << backoff) - 1; - return adaptive_counter_bits(value, backoff); -} - - -/* Line array cache for tracing */ - -extern int _PyCode_CreateLineArray(PyCodeObject *co); - -static inline int -_PyCode_InitLineArray(PyCodeObject *co) -{ - if (co->_co_linearray) { - return 0; - } - return _PyCode_CreateLineArray(co); -} - -static inline int -_PyCode_LineNumberFromArray(PyCodeObject *co, int index) -{ - assert(co->_co_linearray != NULL); - assert(index >= 0); - assert(index < Py_SIZE(co)); - if (co->_co_linearray_entry_size == 2) { - return ((int16_t *)co->_co_linearray)[index]; - } - else { - assert(co->_co_linearray_entry_size == 4); - return ((int32_t *)co->_co_linearray)[index]; - } -} - - #ifdef __cplusplus } #endif diff --git a/Include/internal/pycore_compile.h b/Include/internal/pycore_compile.h index 1a628a08ca4ebf..06a6082cddae6a 100644 --- a/Include/internal/pycore_compile.h +++ b/Include/internal/pycore_compile.h @@ -38,11 +38,6 @@ extern int _PyAST_Optimize( struct _arena *arena, _PyASTOptimizeState *state); -/* Access compiler internals for unit testing */ -PyAPI_FUNC(PyObject*) _PyCompile_OptimizeCfg( - PyObject *instructions, - PyObject *consts); - #ifdef __cplusplus } #endif diff --git a/Include/internal/pycore_descrobject.h b/Include/internal/pycore_descrobject.h deleted file mode 100644 index 76378569df90e3..00000000000000 --- a/Include/internal/pycore_descrobject.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef Py_INTERNAL_DESCROBJECT_H -#define Py_INTERNAL_DESCROBJECT_H -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef Py_BUILD_CORE -# error "this header requires Py_BUILD_CORE define" -#endif - -typedef struct { - PyObject_HEAD - PyObject *prop_get; - PyObject *prop_set; - PyObject *prop_del; - PyObject *prop_doc; - PyObject *prop_name; - int getter_doc; -} propertyobject; - -typedef propertyobject _PyPropertyObject; - -#ifdef __cplusplus -} -#endif -#endif /* !Py_INTERNAL_DESCROBJECT_H */ diff --git a/Include/internal/pycore_dict.h b/Include/internal/pycore_dict.h index 464092996cae00..24d2a711878ced 100644 --- a/Include/internal/pycore_dict.h +++ b/Include/internal/pycore_dict.h @@ -62,7 +62,7 @@ extern Py_ssize_t _PyDict_KeysSize(PyDictKeysObject *keys); */ extern Py_ssize_t _Py_dict_lookup(PyDictObject *mp, PyObject *key, Py_hash_t hash, PyObject **value_addr); -extern Py_ssize_t _PyDict_LookupIndex(PyDictObject *, PyObject *); +extern Py_ssize_t _PyDict_GetItemHint(PyDictObject *, PyObject *, Py_ssize_t, PyObject **); extern Py_ssize_t _PyDictKeys_StringLookup(PyDictKeysObject* dictkeys, PyObject *key); extern PyObject *_PyDict_LoadGlobal(PyDictObject *, PyDictObject *, PyObject *); @@ -141,15 +141,22 @@ struct _dictvalues { #define DK_LOG_SIZE(dk) ((dk)->dk_log2_size) #if SIZEOF_VOID_P > 4 #define DK_SIZE(dk) (((int64_t)1)<<DK_LOG_SIZE(dk)) +#define DK_IXSIZE(dk) \ + (DK_LOG_SIZE(dk) <= 7 ? \ + 1 : DK_LOG_SIZE(dk) <= 15 ? \ + 2 : DK_LOG_SIZE(dk) <= 31 ? \ + 4 : sizeof(int64_t)) #else #define DK_SIZE(dk) (1<<DK_LOG_SIZE(dk)) +#define DK_IXSIZE(dk) \ + (DK_LOG_SIZE(dk) <= 7 ? \ + 1 : DK_LOG_SIZE(dk) <= 15 ? \ + 2 : sizeof(int32_t)) #endif #define DK_ENTRIES(dk) \ - (assert((dk)->dk_kind == DICT_KEYS_GENERAL), \ - (PyDictKeyEntry*)(&((int8_t*)((dk)->dk_indices))[(size_t)1 << (dk)->dk_log2_index_bytes])) + (assert(dk->dk_kind == DICT_KEYS_GENERAL), (PyDictKeyEntry*)(&((int8_t*)((dk)->dk_indices))[(size_t)1 << (dk)->dk_log2_index_bytes])) #define DK_UNICODE_ENTRIES(dk) \ - (assert((dk)->dk_kind != DICT_KEYS_GENERAL), \ - (PyDictUnicodeEntry*)(&((int8_t*)((dk)->dk_indices))[(size_t)1 << (dk)->dk_log2_index_bytes])) + (assert(dk->dk_kind != DICT_KEYS_GENERAL), (PyDictUnicodeEntry*)(&((int8_t*)((dk)->dk_indices))[(size_t)1 << (dk)->dk_log2_index_bytes])) #define DK_IS_UNICODE(dk) ((dk)->dk_kind != DICT_KEYS_GENERAL) extern uint64_t _pydict_global_version; diff --git a/Include/internal/pycore_frame.h b/Include/internal/pycore_frame.h index 5bd0a7f2f517ef..405afd67d2274a 100644 --- a/Include/internal/pycore_frame.h +++ b/Include/internal/pycore_frame.h @@ -6,7 +6,6 @@ extern "C" { #include <stdbool.h> #include <stddef.h> -#include "pycore_code.h" // STATS /* See Objects/frame_layout.md for an explanation of the frame stack * including explanation of the PyFrameObject and _PyInterpreterFrame @@ -47,7 +46,7 @@ enum _frameowner { typedef struct _PyInterpreterFrame { /* "Specials" section */ - PyObject *f_funcobj; /* Strong reference */ + PyFunctionObject *f_func; /* Strong reference */ PyObject *f_globals; /* Borrowed reference */ PyObject *f_builtins; /* Borrowed reference */ PyObject *f_locals; /* Strong reference, may be NULL */ @@ -95,20 +94,20 @@ static inline void _PyFrame_StackPush(_PyInterpreterFrame *f, PyObject *value) { void _PyFrame_Copy(_PyInterpreterFrame *src, _PyInterpreterFrame *dest); -/* Consumes reference to func and locals */ +/* Consumes reference to func */ static inline void _PyFrame_InitializeSpecials( _PyInterpreterFrame *frame, PyFunctionObject *func, - PyObject *locals, PyCodeObject *code) + PyObject *locals, int nlocalsplus) { - frame->f_funcobj = (PyObject *)func; - frame->f_code = (PyCodeObject *)Py_NewRef(code); + frame->f_func = func; + frame->f_code = (PyCodeObject *)Py_NewRef(func->func_code); frame->f_builtins = func->func_builtins; frame->f_globals = func->func_globals; - frame->f_locals = locals; - frame->stacktop = code->co_nlocalsplus; + frame->f_locals = Py_XNewRef(locals); + frame->stacktop = nlocalsplus; frame->frame_obj = NULL; - frame->prev_instr = _PyCode_CODE(code) - 1; + frame->prev_instr = _PyCode_CODE(frame->f_code) - 1; frame->is_entry = false; frame->owner = FRAME_OWNED_BY_THREAD; } @@ -134,21 +133,6 @@ _PyFrame_SetStackPointer(_PyInterpreterFrame *frame, PyObject **stack_pointer) frame->stacktop = (int)(stack_pointer - frame->localsplus); } -/* Determine whether a frame is incomplete. - * A frame is incomplete if it is part way through - * creating cell objects or a generator or coroutine. - * - * Frames on the frame stack are incomplete until the - * first RESUME instruction. - * Frames owned by a generator are always complete. - */ -static inline bool -_PyFrame_IsIncomplete(_PyInterpreterFrame *frame) -{ - return frame->owner != FRAME_OWNED_BY_GENERATOR && - frame->prev_instr < _PyCode_CODE(frame->f_code) + frame->f_code->_co_firsttraceable; -} - /* For use by _PyFrame_GetFrameObject Do not call directly. */ PyFrameObject * @@ -160,8 +144,6 @@ _PyFrame_MakeAndSetFrameObject(_PyInterpreterFrame *frame); static inline PyFrameObject * _PyFrame_GetFrameObject(_PyInterpreterFrame *frame) { - - assert(!_PyFrame_IsIncomplete(frame)); PyFrameObject *res = frame->frame_obj; if (res != NULL) { return res; @@ -190,38 +172,30 @@ _PyFrame_FastToLocalsWithError(_PyInterpreterFrame *frame); void _PyFrame_LocalsToFast(_PyInterpreterFrame *frame, int clear); -static inline bool -_PyThreadState_HasStackSpace(PyThreadState *tstate, int size) -{ - assert( - (tstate->datastack_top == NULL && tstate->datastack_limit == NULL) - || - (tstate->datastack_top != NULL && tstate->datastack_limit != NULL) - ); - return tstate->datastack_top != NULL && - size < tstate->datastack_limit - tstate->datastack_top; -} - extern _PyInterpreterFrame * -_PyThreadState_PushFrame(PyThreadState *tstate, size_t size); - -void _PyThreadState_PopFrame(PyThreadState *tstate, _PyInterpreterFrame *frame); +_PyThreadState_BumpFramePointerSlow(PyThreadState *tstate, size_t size); -/* Pushes a frame without checking for space. - * Must be guarded by _PyThreadState_HasStackSpace() - * Consumes reference to func. */ static inline _PyInterpreterFrame * -_PyFrame_PushUnchecked(PyThreadState *tstate, PyFunctionObject *func) +_PyThreadState_BumpFramePointer(PyThreadState *tstate, size_t size) { - CALL_STAT_INC(frames_pushed); - PyCodeObject *code = (PyCodeObject *)func->func_code; - _PyInterpreterFrame *new_frame = (_PyInterpreterFrame *)tstate->datastack_top; - tstate->datastack_top += code->co_framesize; - assert(tstate->datastack_top < tstate->datastack_limit); - _PyFrame_InitializeSpecials(new_frame, func, NULL, code); - return new_frame; + PyObject **base = tstate->datastack_top; + if (base) { + PyObject **top = base + size; + assert(tstate->datastack_limit); + if (top < tstate->datastack_limit) { + tstate->datastack_top = top; + return (_PyInterpreterFrame *)base; + } + } + return _PyThreadState_BumpFramePointerSlow(tstate, size); } +void _PyThreadState_PopFrame(PyThreadState *tstate, _PyInterpreterFrame *frame); + +/* Consume reference to func */ +_PyInterpreterFrame * +_PyFrame_Push(PyThreadState *tstate, PyFunctionObject *func); + int _PyInterpreterFrame_GetLine(_PyInterpreterFrame *frame); static inline diff --git a/Include/internal/pycore_global_objects.h b/Include/internal/pycore_global_objects.h index 82e89db7b1b750..98673d4efcedcc 100644 --- a/Include/internal/pycore_global_objects.h +++ b/Include/internal/pycore_global_objects.h @@ -45,8 +45,6 @@ struct _Py_global_objects { _PyGC_Head_UNUSED _tuple_empty_gc_not_used; PyTupleObject tuple_empty; } singletons; - - PyObject *interned; }; diff --git a/Include/internal/pycore_global_strings.h b/Include/internal/pycore_global_strings.h index 1523eef73931c9..cfa8ae99d1b6d9 100644 --- a/Include/internal/pycore_global_strings.h +++ b/Include/internal/pycore_global_strings.h @@ -90,7 +90,6 @@ struct _Py_global_strings { STRUCT_FOR_ID(__delete__) STRUCT_FOR_ID(__delitem__) STRUCT_FOR_ID(__dict__) - STRUCT_FOR_ID(__dictoffset__) STRUCT_FOR_ID(__dir__) STRUCT_FOR_ID(__divmod__) STRUCT_FOR_ID(__doc__) @@ -203,11 +202,9 @@ struct _Py_global_strings { STRUCT_FOR_ID(__truediv__) STRUCT_FOR_ID(__trunc__) STRUCT_FOR_ID(__typing_is_unpacked_typevartuple__) - STRUCT_FOR_ID(__typing_prepare_subst__) STRUCT_FOR_ID(__typing_subst__) STRUCT_FOR_ID(__typing_unpacked_tuple_args__) STRUCT_FOR_ID(__warningregistry__) - STRUCT_FOR_ID(__weaklistoffset__) STRUCT_FOR_ID(__weakref__) STRUCT_FOR_ID(__xor__) STRUCT_FOR_ID(_abc_impl) @@ -215,7 +212,6 @@ struct _Py_global_strings { STRUCT_FOR_ID(_blksize) STRUCT_FOR_ID(_bootstrap) STRUCT_FOR_ID(_dealloc_warn) - STRUCT_FOR_ID(_feature_version) STRUCT_FOR_ID(_finalizing) STRUCT_FOR_ID(_find_and_load) STRUCT_FOR_ID(_fix_up_module) @@ -227,309 +223,99 @@ struct _Py_global_strings { STRUCT_FOR_ID(_showwarnmsg) STRUCT_FOR_ID(_shutdown) STRUCT_FOR_ID(_slotnames) + STRUCT_FOR_ID(_strptime_time) STRUCT_FOR_ID(_uninitialized_submodules) STRUCT_FOR_ID(_warn_unawaited_coroutine) STRUCT_FOR_ID(_xoptions) - STRUCT_FOR_ID(a) - STRUCT_FOR_ID(abs_tol) - STRUCT_FOR_ID(access) STRUCT_FOR_ID(add) - STRUCT_FOR_ID(after_in_child) - STRUCT_FOR_ID(after_in_parent) - STRUCT_FOR_ID(aggregate_class) STRUCT_FOR_ID(append) - STRUCT_FOR_ID(argdefs) - STRUCT_FOR_ID(arguments) - STRUCT_FOR_ID(argv) - STRUCT_FOR_ID(attribute) - STRUCT_FOR_ID(authorizer_callback) - STRUCT_FOR_ID(b) - STRUCT_FOR_ID(backtick) - STRUCT_FOR_ID(base) - STRUCT_FOR_ID(before) STRUCT_FOR_ID(big) - STRUCT_FOR_ID(binary_form) - STRUCT_FOR_ID(block) STRUCT_FOR_ID(buffer) - STRUCT_FOR_ID(buffer_callback) - STRUCT_FOR_ID(buffer_size) - STRUCT_FOR_ID(buffering) - STRUCT_FOR_ID(buffers) - STRUCT_FOR_ID(bufsize) STRUCT_FOR_ID(builtins) - STRUCT_FOR_ID(byteorder) - STRUCT_FOR_ID(bytes) - STRUCT_FOR_ID(bytes_per_sep) STRUCT_FOR_ID(c_call) STRUCT_FOR_ID(c_exception) STRUCT_FOR_ID(c_return) - STRUCT_FOR_ID(cached_statements) - STRUCT_FOR_ID(cadata) - STRUCT_FOR_ID(cafile) STRUCT_FOR_ID(call) - STRUCT_FOR_ID(capath) - STRUCT_FOR_ID(category) - STRUCT_FOR_ID(cb_type) - STRUCT_FOR_ID(certfile) - STRUCT_FOR_ID(check_same_thread) STRUCT_FOR_ID(clear) STRUCT_FOR_ID(close) STRUCT_FOR_ID(closed) - STRUCT_FOR_ID(closefd) - STRUCT_FOR_ID(closure) - STRUCT_FOR_ID(co_argcount) - STRUCT_FOR_ID(co_cellvars) - STRUCT_FOR_ID(co_code) - STRUCT_FOR_ID(co_consts) - STRUCT_FOR_ID(co_exceptiontable) - STRUCT_FOR_ID(co_filename) - STRUCT_FOR_ID(co_firstlineno) - STRUCT_FOR_ID(co_flags) - STRUCT_FOR_ID(co_freevars) - STRUCT_FOR_ID(co_kwonlyargcount) - STRUCT_FOR_ID(co_linetable) - STRUCT_FOR_ID(co_name) - STRUCT_FOR_ID(co_names) - STRUCT_FOR_ID(co_nlocals) - STRUCT_FOR_ID(co_posonlyargcount) - STRUCT_FOR_ID(co_qualname) - STRUCT_FOR_ID(co_stacksize) - STRUCT_FOR_ID(co_varnames) STRUCT_FOR_ID(code) - STRUCT_FOR_ID(command) - STRUCT_FOR_ID(comment_factory) - STRUCT_FOR_ID(consts) - STRUCT_FOR_ID(context) - STRUCT_FOR_ID(cookie) STRUCT_FOR_ID(copy) STRUCT_FOR_ID(copyreg) - STRUCT_FOR_ID(coro) - STRUCT_FOR_ID(count) - STRUCT_FOR_ID(cwd) - STRUCT_FOR_ID(data) - STRUCT_FOR_ID(database) STRUCT_FOR_ID(decode) - STRUCT_FOR_ID(decoder) STRUCT_FOR_ID(default) STRUCT_FOR_ID(defaultaction) - STRUCT_FOR_ID(delete) - STRUCT_FOR_ID(depth) - STRUCT_FOR_ID(detect_types) - STRUCT_FOR_ID(deterministic) - STRUCT_FOR_ID(device) - STRUCT_FOR_ID(dict) STRUCT_FOR_ID(dictcomp) STRUCT_FOR_ID(difference_update) - STRUCT_FOR_ID(digest) - STRUCT_FOR_ID(digest_size) - STRUCT_FOR_ID(digestmod) - STRUCT_FOR_ID(dir_fd) STRUCT_FOR_ID(dispatch_table) STRUCT_FOR_ID(displayhook) - STRUCT_FOR_ID(dklen) - STRUCT_FOR_ID(doc) - STRUCT_FOR_ID(dont_inherit) - STRUCT_FOR_ID(dst) - STRUCT_FOR_ID(dst_dir_fd) - STRUCT_FOR_ID(duration) - STRUCT_FOR_ID(effective_ids) - STRUCT_FOR_ID(element_factory) + STRUCT_FOR_ID(enable) STRUCT_FOR_ID(encode) STRUCT_FOR_ID(encoding) - STRUCT_FOR_ID(end) STRUCT_FOR_ID(end_lineno) STRUCT_FOR_ID(end_offset) - STRUCT_FOR_ID(endpos) - STRUCT_FOR_ID(env) STRUCT_FOR_ID(errors) - STRUCT_FOR_ID(event) - STRUCT_FOR_ID(eventmask) - STRUCT_FOR_ID(exc_type) - STRUCT_FOR_ID(exc_value) STRUCT_FOR_ID(excepthook) STRUCT_FOR_ID(exception) - STRUCT_FOR_ID(exp) STRUCT_FOR_ID(extend) - STRUCT_FOR_ID(factory) - STRUCT_FOR_ID(family) - STRUCT_FOR_ID(fanout) - STRUCT_FOR_ID(fd) - STRUCT_FOR_ID(fd2) - STRUCT_FOR_ID(fdel) - STRUCT_FOR_ID(fget) - STRUCT_FOR_ID(file) - STRUCT_FOR_ID(file_actions) STRUCT_FOR_ID(filename) STRUCT_FOR_ID(fileno) - STRUCT_FOR_ID(filepath) STRUCT_FOR_ID(fillvalue) STRUCT_FOR_ID(filters) - STRUCT_FOR_ID(final) STRUCT_FOR_ID(find_class) - STRUCT_FOR_ID(fix_imports) - STRUCT_FOR_ID(flags) STRUCT_FOR_ID(flush) - STRUCT_FOR_ID(follow_symlinks) - STRUCT_FOR_ID(format) - STRUCT_FOR_ID(frequency) - STRUCT_FOR_ID(fromlist) - STRUCT_FOR_ID(fset) - STRUCT_FOR_ID(func) - STRUCT_FOR_ID(generation) STRUCT_FOR_ID(genexpr) STRUCT_FOR_ID(get) STRUCT_FOR_ID(get_source) STRUCT_FOR_ID(getattr) STRUCT_FOR_ID(getstate) - STRUCT_FOR_ID(gid) - STRUCT_FOR_ID(globals) - STRUCT_FOR_ID(groupindex) - STRUCT_FOR_ID(groups) - STRUCT_FOR_ID(handle) - STRUCT_FOR_ID(hash_name) - STRUCT_FOR_ID(header) - STRUCT_FOR_ID(headers) - STRUCT_FOR_ID(hi) - STRUCT_FOR_ID(hook) - STRUCT_FOR_ID(id) STRUCT_FOR_ID(ignore) - STRUCT_FOR_ID(imag) STRUCT_FOR_ID(importlib) - STRUCT_FOR_ID(in_fd) - STRUCT_FOR_ID(incoming) - STRUCT_FOR_ID(indexgroup) STRUCT_FOR_ID(inf) - STRUCT_FOR_ID(inheritable) - STRUCT_FOR_ID(initial) - STRUCT_FOR_ID(initial_bytes) - STRUCT_FOR_ID(initial_value) - STRUCT_FOR_ID(initval) - STRUCT_FOR_ID(inner_size) - STRUCT_FOR_ID(input) - STRUCT_FOR_ID(insert_comments) - STRUCT_FOR_ID(insert_pis) - STRUCT_FOR_ID(instructions) - STRUCT_FOR_ID(intern) STRUCT_FOR_ID(intersection) STRUCT_FOR_ID(isatty) STRUCT_FOR_ID(isinstance) - STRUCT_FOR_ID(isolation_level) - STRUCT_FOR_ID(istext) - STRUCT_FOR_ID(item) STRUCT_FOR_ID(items) STRUCT_FOR_ID(iter) - STRUCT_FOR_ID(iterable) - STRUCT_FOR_ID(iterations) STRUCT_FOR_ID(join) - STRUCT_FOR_ID(jump) - STRUCT_FOR_ID(keepends) - STRUCT_FOR_ID(key) - STRUCT_FOR_ID(keyfile) STRUCT_FOR_ID(keys) - STRUCT_FOR_ID(kind) STRUCT_FOR_ID(lambda) - STRUCT_FOR_ID(last) - STRUCT_FOR_ID(last_node) STRUCT_FOR_ID(last_traceback) STRUCT_FOR_ID(last_type) STRUCT_FOR_ID(last_value) STRUCT_FOR_ID(latin1) - STRUCT_FOR_ID(leaf_size) STRUCT_FOR_ID(len) - STRUCT_FOR_ID(length) - STRUCT_FOR_ID(level) - STRUCT_FOR_ID(limit) STRUCT_FOR_ID(line) - STRUCT_FOR_ID(line_buffering) STRUCT_FOR_ID(lineno) STRUCT_FOR_ID(listcomp) STRUCT_FOR_ID(little) - STRUCT_FOR_ID(lo) STRUCT_FOR_ID(locale) - STRUCT_FOR_ID(locals) - STRUCT_FOR_ID(loop) - STRUCT_FOR_ID(mapping) STRUCT_FOR_ID(match) - STRUCT_FOR_ID(max_length) - STRUCT_FOR_ID(maxdigits) - STRUCT_FOR_ID(maxevents) - STRUCT_FOR_ID(maxmem) - STRUCT_FOR_ID(maxsplit) - STRUCT_FOR_ID(maxvalue) - STRUCT_FOR_ID(memLevel) - STRUCT_FOR_ID(memlimit) - STRUCT_FOR_ID(message) STRUCT_FOR_ID(metaclass) - STRUCT_FOR_ID(method) - STRUCT_FOR_ID(mod) STRUCT_FOR_ID(mode) - STRUCT_FOR_ID(module) - STRUCT_FOR_ID(module_globals) STRUCT_FOR_ID(modules) STRUCT_FOR_ID(mro) STRUCT_FOR_ID(msg) - STRUCT_FOR_ID(n) - STRUCT_FOR_ID(n_arg) STRUCT_FOR_ID(n_fields) STRUCT_FOR_ID(n_sequence_fields) STRUCT_FOR_ID(n_unnamed_fields) STRUCT_FOR_ID(name) - STRUCT_FOR_ID(namespace_separator) - STRUCT_FOR_ID(namespaces) - STRUCT_FOR_ID(narg) - STRUCT_FOR_ID(ndigits) - STRUCT_FOR_ID(new_limit) - STRUCT_FOR_ID(newline) STRUCT_FOR_ID(newlines) STRUCT_FOR_ID(next) - STRUCT_FOR_ID(node_depth) - STRUCT_FOR_ID(node_offset) - STRUCT_FOR_ID(ns) - STRUCT_FOR_ID(number) STRUCT_FOR_ID(obj) - STRUCT_FOR_ID(object) STRUCT_FOR_ID(offset) - STRUCT_FOR_ID(offset_dst) - STRUCT_FOR_ID(offset_src) - STRUCT_FOR_ID(on_type_read) STRUCT_FOR_ID(onceregistry) - STRUCT_FOR_ID(oparg) STRUCT_FOR_ID(opcode) STRUCT_FOR_ID(open) - STRUCT_FOR_ID(opener) - STRUCT_FOR_ID(operation) - STRUCT_FOR_ID(optimize) - STRUCT_FOR_ID(options) - STRUCT_FOR_ID(order) - STRUCT_FOR_ID(out_fd) - STRUCT_FOR_ID(outgoing) - STRUCT_FOR_ID(overlapped) - STRUCT_FOR_ID(owner) - STRUCT_FOR_ID(p) - STRUCT_FOR_ID(pages) STRUCT_FOR_ID(parent) - STRUCT_FOR_ID(password) + STRUCT_FOR_ID(partial) STRUCT_FOR_ID(path) - STRUCT_FOR_ID(pattern) STRUCT_FOR_ID(peek) STRUCT_FOR_ID(persistent_id) STRUCT_FOR_ID(persistent_load) - STRUCT_FOR_ID(person) - STRUCT_FOR_ID(pi_factory) - STRUCT_FOR_ID(pid) - STRUCT_FOR_ID(policy) - STRUCT_FOR_ID(pos) STRUCT_FOR_ID(print_file_and_line) - STRUCT_FOR_ID(priority) - STRUCT_FOR_ID(progress) - STRUCT_FOR_ID(progress_handler) - STRUCT_FOR_ID(proto) - STRUCT_FOR_ID(protocol) STRUCT_FOR_ID(ps1) STRUCT_FOR_ID(ps2) - STRUCT_FOR_ID(query) - STRUCT_FOR_ID(quotetabs) - STRUCT_FOR_ID(r) STRUCT_FOR_ID(raw) STRUCT_FOR_ID(read) STRUCT_FOR_ID(read1) @@ -538,115 +324,37 @@ struct _Py_global_strings { STRUCT_FOR_ID(readinto) STRUCT_FOR_ID(readinto1) STRUCT_FOR_ID(readline) - STRUCT_FOR_ID(readonly) - STRUCT_FOR_ID(real) STRUCT_FOR_ID(reducer_override) - STRUCT_FOR_ID(registry) - STRUCT_FOR_ID(rel_tol) STRUCT_FOR_ID(reload) - STRUCT_FOR_ID(repl) STRUCT_FOR_ID(replace) - STRUCT_FOR_ID(reserved) STRUCT_FOR_ID(reset) - STRUCT_FOR_ID(resetids) STRUCT_FOR_ID(return) - STRUCT_FOR_ID(reverse) STRUCT_FOR_ID(reversed) - STRUCT_FOR_ID(s) - STRUCT_FOR_ID(salt) - STRUCT_FOR_ID(sched_priority) - STRUCT_FOR_ID(scheduler) STRUCT_FOR_ID(seek) STRUCT_FOR_ID(seekable) - STRUCT_FOR_ID(selectors) STRUCT_FOR_ID(send) - STRUCT_FOR_ID(sep) - STRUCT_FOR_ID(sequence) - STRUCT_FOR_ID(server_hostname) - STRUCT_FOR_ID(server_side) - STRUCT_FOR_ID(session) STRUCT_FOR_ID(setcomp) - STRUCT_FOR_ID(setpgroup) - STRUCT_FOR_ID(setsid) - STRUCT_FOR_ID(setsigdef) - STRUCT_FOR_ID(setsigmask) STRUCT_FOR_ID(setstate) - STRUCT_FOR_ID(shape) - STRUCT_FOR_ID(show_cmd) - STRUCT_FOR_ID(signed) - STRUCT_FOR_ID(size) - STRUCT_FOR_ID(sizehint) - STRUCT_FOR_ID(sleep) - STRUCT_FOR_ID(sock) STRUCT_FOR_ID(sort) - STRUCT_FOR_ID(sound) - STRUCT_FOR_ID(source) - STRUCT_FOR_ID(src) - STRUCT_FOR_ID(src_dir_fd) - STRUCT_FOR_ID(stacklevel) - STRUCT_FOR_ID(start) - STRUCT_FOR_ID(statement) - STRUCT_FOR_ID(status) STRUCT_FOR_ID(stderr) STRUCT_FOR_ID(stdin) STRUCT_FOR_ID(stdout) - STRUCT_FOR_ID(step) - STRUCT_FOR_ID(store_name) - STRUCT_FOR_ID(strategy) STRUCT_FOR_ID(strict) - STRUCT_FOR_ID(strict_mode) - STRUCT_FOR_ID(string) - STRUCT_FOR_ID(sub_key) STRUCT_FOR_ID(symmetric_difference_update) - STRUCT_FOR_ID(tabsize) - STRUCT_FOR_ID(tag) - STRUCT_FOR_ID(target) - STRUCT_FOR_ID(target_is_directory) - STRUCT_FOR_ID(task) - STRUCT_FOR_ID(tb_frame) - STRUCT_FOR_ID(tb_lasti) - STRUCT_FOR_ID(tb_lineno) - STRUCT_FOR_ID(tb_next) STRUCT_FOR_ID(tell) - STRUCT_FOR_ID(template) - STRUCT_FOR_ID(term) STRUCT_FOR_ID(text) STRUCT_FOR_ID(threading) STRUCT_FOR_ID(throw) - STRUCT_FOR_ID(timeout) - STRUCT_FOR_ID(times) STRUCT_FOR_ID(top) - STRUCT_FOR_ID(trace_callback) - STRUCT_FOR_ID(traceback) - STRUCT_FOR_ID(trailers) - STRUCT_FOR_ID(translate) STRUCT_FOR_ID(truncate) - STRUCT_FOR_ID(twice) - STRUCT_FOR_ID(txt) - STRUCT_FOR_ID(type) - STRUCT_FOR_ID(tz) - STRUCT_FOR_ID(uid) - STRUCT_FOR_ID(unlink) STRUCT_FOR_ID(unraisablehook) - STRUCT_FOR_ID(uri) - STRUCT_FOR_ID(usedforsecurity) - STRUCT_FOR_ID(value) STRUCT_FOR_ID(values) STRUCT_FOR_ID(version) STRUCT_FOR_ID(warnings) STRUCT_FOR_ID(warnoptions) - STRUCT_FOR_ID(wbits) - STRUCT_FOR_ID(week) - STRUCT_FOR_ID(weekday) - STRUCT_FOR_ID(which) - STRUCT_FOR_ID(who) - STRUCT_FOR_ID(withdata) STRUCT_FOR_ID(writable) STRUCT_FOR_ID(write) - STRUCT_FOR_ID(write_through) - STRUCT_FOR_ID(x) - STRUCT_FOR_ID(year) - STRUCT_FOR_ID(zdict) + STRUCT_FOR_ID(zipimporter) } identifiers; struct { PyASCIIObject _ascii; diff --git a/Include/internal/pycore_hamt.h b/Include/internal/pycore_hamt.h index 7a674b4ee4ac0e..4d64288bbab494 100644 --- a/Include/internal/pycore_hamt.h +++ b/Include/internal/pycore_hamt.h @@ -35,7 +35,7 @@ void _PyHamt_Fini(PyInterpreterState *); /* other API */ -#define PyHamt_Check(o) Py_IS_TYPE((o), &_PyHamt_Type) +#define PyHamt_Check(o) Py_IS_TYPE(o, &_PyHamt_Type) /* Abstract tree node. */ diff --git a/Include/internal/pycore_hashtable.h b/Include/internal/pycore_hashtable.h index 2aa23a24c2830a..18757abc28c195 100644 --- a/Include/internal/pycore_hashtable.h +++ b/Include/internal/pycore_hashtable.h @@ -18,9 +18,9 @@ typedef struct { _Py_slist_item_t *head; } _Py_slist_t; -#define _Py_SLIST_ITEM_NEXT(ITEM) (((_Py_slist_item_t *)(ITEM))->next) +#define _Py_SLIST_ITEM_NEXT(ITEM) (((_Py_slist_item_t *)ITEM)->next) -#define _Py_SLIST_HEAD(SLIST) (((_Py_slist_t *)(SLIST))->head) +#define _Py_SLIST_HEAD(SLIST) (((_Py_slist_t *)SLIST)->head) /* _Py_hashtable: table entry */ diff --git a/Include/internal/pycore_initconfig.h b/Include/internal/pycore_initconfig.h index 6e491261d55ca6..a2f4cd182e8e92 100644 --- a/Include/internal/pycore_initconfig.h +++ b/Include/internal/pycore_initconfig.h @@ -36,13 +36,13 @@ struct pyruntimestate; ._type = _PyStatus_TYPE_EXIT, \ .exitcode = (EXITCODE)} #define _PyStatus_IS_ERROR(err) \ - ((err)._type == _PyStatus_TYPE_ERROR) + (err._type == _PyStatus_TYPE_ERROR) #define _PyStatus_IS_EXIT(err) \ - ((err)._type == _PyStatus_TYPE_EXIT) + (err._type == _PyStatus_TYPE_EXIT) #define _PyStatus_EXCEPTION(err) \ - ((err)._type != _PyStatus_TYPE_OK) + (err._type != _PyStatus_TYPE_OK) #define _PyStatus_UPDATE_FUNC(err) \ - do { (err).func = _PyStatus_GET_FUNC(); } while (0) + do { err.func = _PyStatus_GET_FUNC(); } while (0) PyObject* _PyErr_SetFromPyStatus(PyStatus status); @@ -170,8 +170,6 @@ extern void _Py_DumpPathConfig(PyThreadState *tstate); PyAPI_FUNC(PyObject*) _Py_Get_Getpath_CodeObject(void); -extern int _Py_global_config_int_max_str_digits; // TODO(gpshead): move this into PyConfig in 3.12 after the backports ship. - /* --- Function used for testing ---------------------------------- */ diff --git a/Include/internal/pycore_interp.h b/Include/internal/pycore_interp.h index e7f914ec2fe521..d55627908a28f8 100644 --- a/Include/internal/pycore_interp.h +++ b/Include/internal/pycore_interp.h @@ -18,6 +18,7 @@ extern "C" { #include "pycore_exceptions.h" // struct _Py_exc_state #include "pycore_floatobject.h" // struct _Py_float_state #include "pycore_genobject.h" // struct _Py_async_gen_state +#include "pycore_gil.h" // struct _gil_runtime_state #include "pycore_gc.h" // struct _gc_runtime_state #include "pycore_list.h" // struct _Py_list_state #include "pycore_tuple.h" // struct _Py_tuple_state @@ -50,6 +51,9 @@ struct _ceval_state { /* Request for dropping the GIL */ _Py_atomic_int gil_drop_request; struct _pending_calls pending; +#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS + struct _gil_runtime_state gil; +#endif }; @@ -72,7 +76,7 @@ struct atexit_state { /* PyInterpreterState holds the global state for one of the runtime's interpreters. Typically the initial (main) interpreter is the only one. - The PyInterpreterState typedef is in Include/pytypedefs.h. + The PyInterpreterState typedef is in Include/pystate.h. */ struct _is { @@ -172,11 +176,9 @@ struct _is { struct _Py_exc_state exc_state; struct ast_state ast; - struct types_state types; + struct type_cache type_cache; struct callable_cache callable_cache; - int int_max_str_digits; - /* The following fields are here to avoid allocation during init. The data is exposed through PyInterpreterState pointer fields. These fields should not be accessed directly outside of init. diff --git a/Include/internal/pycore_list.h b/Include/internal/pycore_list.h index 691d13bc8d9ffa..860dce1fd5d393 100644 --- a/Include/internal/pycore_list.h +++ b/Include/internal/pycore_list.h @@ -56,25 +56,6 @@ _PyList_AppendTakeRef(PyListObject *self, PyObject *newitem) return _PyList_AppendTakeRefListResize(self, newitem); } -// Repeat the bytes of a buffer in place -static inline void -_Py_memory_repeat(char* dest, Py_ssize_t len_dest, Py_ssize_t len_src) -{ - assert(len_src > 0); - Py_ssize_t copied = len_src; - while (copied < len_dest) { - Py_ssize_t bytes_to_copy = Py_MIN(copied, len_dest - copied); - memcpy(dest + copied, dest, bytes_to_copy); - copied += bytes_to_copy; - } -} - -typedef struct { - PyObject_HEAD - Py_ssize_t it_index; - PyListObject *it_seq; /* Set to NULL when iterator is exhausted */ -} _PyListIterObject; - #ifdef __cplusplus } #endif diff --git a/Include/internal/pycore_long.h b/Include/internal/pycore_long.h index 30c97b7edc98e1..a33762402491b7 100644 --- a/Include/internal/pycore_long.h +++ b/Include/internal/pycore_long.h @@ -11,41 +11,6 @@ extern "C" { #include "pycore_global_objects.h" // _PY_NSMALLNEGINTS #include "pycore_runtime.h" // _PyRuntime -/* - * Default int base conversion size limitation: Denial of Service prevention. - * - * Chosen such that this isn't wildly slow on modern hardware and so that - * everyone's existing deployed numpy test suite passes before - * https://github.com/numpy/numpy/issues/22098 is widely available. - * - * $ python -m timeit -s 's = "1"*4300' 'int(s)' - * 2000 loops, best of 5: 125 usec per loop - * $ python -m timeit -s 's = "1"*4300; v = int(s)' 'str(v)' - * 1000 loops, best of 5: 311 usec per loop - * (zen2 cloud VM) - * - * 4300 decimal digits fits a ~14284 bit number. - */ -#define _PY_LONG_DEFAULT_MAX_STR_DIGITS 4300 -/* - * Threshold for max digits check. For performance reasons int() and - * int.__str__() don't checks values that are smaller than this - * threshold. Acts as a guaranteed minimum size limit for bignums that - * applications can expect from CPython. - * - * % python -m timeit -s 's = "1"*640; v = int(s)' 'str(int(s))' - * 20000 loops, best of 5: 12 usec per loop - * - * "640 digits should be enough for anyone." - gps - * fits a ~2126 bit decimal number. - */ -#define _PY_LONG_MAX_STR_DIGITS_THRESHOLD 640 - -#if ((_PY_LONG_DEFAULT_MAX_STR_DIGITS != 0) && \ - (_PY_LONG_DEFAULT_MAX_STR_DIGITS < _PY_LONG_MAX_STR_DIGITS_THRESHOLD)) -# error "_PY_LONG_DEFAULT_MAX_STR_DIGITS smaller than threshold." -#endif - /* runtime lifecycle */ @@ -82,8 +47,6 @@ PyObject *_PyLong_Add(PyLongObject *left, PyLongObject *right); PyObject *_PyLong_Multiply(PyLongObject *left, PyLongObject *right); PyObject *_PyLong_Subtract(PyLongObject *left, PyLongObject *right); -int _PyLong_AssignValue(PyObject **target, Py_ssize_t value); - /* Used by Python/mystrtoul.c, _PyBytes_FromHex(), _PyBytes_DecodeEscape(), etc. */ PyAPI_DATA(unsigned char) _PyLong_DigitValue[256]; diff --git a/Include/internal/pycore_object.h b/Include/internal/pycore_object.h index 8b78f79e950e92..cc50418e2ef40f 100644 --- a/Include/internal/pycore_object.h +++ b/Include/internal/pycore_object.h @@ -14,15 +14,10 @@ extern "C" { #include "pycore_pystate.h" // _PyInterpreterState_GET() #include "pycore_runtime.h" // _PyRuntime -/* This value provides *effective* immortality, meaning the object should never - be deallocated (until runtime finalization). See PEP 683 for more details about - immortality, as well as a proposed mechanism for proper immortality. */ -#define _PyObject_IMMORTAL_REFCNT 999999999 - #define _PyObject_IMMORTAL_INIT(type) \ { \ - .ob_refcnt = _PyObject_IMMORTAL_REFCNT, \ - .ob_type = (type), \ + .ob_refcnt = 999999999, \ + .ob_type = type, \ } #define _PyVarObject_IMMORTAL_INIT(type, size) \ { \ @@ -34,18 +29,7 @@ PyAPI_FUNC(void) _Py_NO_RETURN _Py_FatalRefcountErrorFunc( const char *func, const char *message); -#define _Py_FatalRefcountError(message) \ - _Py_FatalRefcountErrorFunc(__func__, (message)) - -// Increment reference count by n -static inline void _Py_RefcntAdd(PyObject* op, Py_ssize_t n) -{ -#ifdef Py_REF_DEBUG - _Py_RefTotal += n; -#endif - op->ob_refcnt += n; -} -#define _Py_RefcntAdd(op, n) _Py_RefcntAdd(_PyObject_CAST(op), n) +#define _Py_FatalRefcountError(message) _Py_FatalRefcountErrorFunc(__func__, message) static inline void _Py_DECREF_SPECIALIZED(PyObject *op, const destructor destruct) @@ -217,52 +201,13 @@ extern void _Py_PrintReferences(FILE *); extern void _Py_PrintReferenceAddresses(FILE *); #endif - -/* Return the *address* of the object's weaklist. The address may be - * dereferenced to get the current head of the weaklist. This is useful - * for iterating over the linked list of weakrefs, especially when the - * list is being modified externally (e.g. refs getting removed). - * - * The returned pointer should not be used to change the head of the list - * nor should it be used to add, remove, or swap any refs in the list. - * That is the sole responsibility of the code in weakrefobject.c. - */ static inline PyObject ** _PyObject_GET_WEAKREFS_LISTPTR(PyObject *op) { - if (PyType_Check(op) && - ((PyTypeObject *)op)->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN) { - static_builtin_state *state = _PyStaticType_GetState( - (PyTypeObject *)op); - return _PyStaticType_GET_WEAKREFS_LISTPTR(state); - } - // Essentially _PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET(): Py_ssize_t offset = Py_TYPE(op)->tp_weaklistoffset; return (PyObject **)((char *)op + offset); } -/* This is a special case of _PyObject_GET_WEAKREFS_LISTPTR(). - * Only the most fundamental lookup path is used. - * Consequently, static types should not be used. - * - * For static builtin types the returned pointer will always point - * to a NULL tp_weaklist. This is fine for any deallocation cases, - * since static types are never deallocated and static builtin types - * are only finalized at the end of runtime finalization. - * - * If the weaklist for static types is actually needed then use - * _PyObject_GET_WEAKREFS_LISTPTR(). - */ -static inline PyWeakReference ** -_PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET(PyObject *op) -{ - assert(!PyType_Check(op) || - ((PyTypeObject *)op)->tp_flags & Py_TPFLAGS_HEAPTYPE); - Py_ssize_t offset = Py_TYPE(op)->tp_weaklistoffset; - return (PyWeakReference **)((char *)op + offset); -} - - // Fast inlined version of PyObject_IS_GC() static inline int _PyObject_IS_GC(PyObject *obj) @@ -279,7 +224,7 @@ static inline size_t _PyType_PreHeaderSize(PyTypeObject *tp) { return _PyType_IS_GC(tp) * sizeof(PyGC_Head) + - _PyType_HasFeature(tp, Py_TPFLAGS_PREHEADER) * 2 * sizeof(PyObject *); + _PyType_HasFeature(tp, Py_TPFLAGS_MANAGED_DICT) * 2 * sizeof(PyObject *); } void _PyObject_GC_Link(PyObject *op); @@ -296,7 +241,7 @@ extern int _Py_CheckSlotResult( // Test if a type supports weak references static inline int _PyType_SUPPORTS_WEAKREFS(PyTypeObject *type) { - return (type->tp_weaklistoffset != 0); + return (type->tp_weaklistoffset > 0); } extern PyObject* _PyType_AllocNoTrack(PyTypeObject *type, Py_ssize_t nitems); @@ -307,56 +252,30 @@ extern int _PyObject_StoreInstanceAttribute(PyObject *obj, PyDictValues *values, PyObject * _PyObject_GetInstanceAttribute(PyObject *obj, PyDictValues *values, PyObject *name); -typedef union { - PyObject *dict; - /* Use a char* to generate a warning if directly assigning a PyDictValues */ - char *values; -} PyDictOrValues; - -static inline PyDictOrValues * -_PyObject_DictOrValuesPointer(PyObject *obj) +static inline PyDictValues **_PyObject_ValuesPointer(PyObject *obj) { assert(Py_TYPE(obj)->tp_flags & Py_TPFLAGS_MANAGED_DICT); - return ((PyDictOrValues *)obj)-3; -} - -static inline int -_PyDictOrValues_IsValues(PyDictOrValues dorv) -{ - return ((uintptr_t)dorv.values) & 1; + return ((PyDictValues **)obj)-4; } -static inline PyDictValues * -_PyDictOrValues_GetValues(PyDictOrValues dorv) +static inline PyObject **_PyObject_ManagedDictPointer(PyObject *obj) { - assert(_PyDictOrValues_IsValues(dorv)); - return (PyDictValues *)(dorv.values + 1); -} - -static inline PyObject * -_PyDictOrValues_GetDict(PyDictOrValues dorv) -{ - assert(!_PyDictOrValues_IsValues(dorv)); - return dorv.dict; -} - -static inline void -_PyDictOrValues_SetValues(PyDictOrValues *ptr, PyDictValues *values) -{ - ptr->values = ((char *)values) - 1; + assert(Py_TYPE(obj)->tp_flags & Py_TPFLAGS_MANAGED_DICT); + return ((PyObject **)obj)-3; } -#define MANAGED_WEAKREF_OFFSET (((Py_ssize_t)sizeof(PyObject *))*-4) +#define MANAGED_DICT_OFFSET (((int)sizeof(PyObject *))*-3) -extern PyObject ** _PyObject_ComputedDictPointer(PyObject *); -extern void _PyObject_FreeInstanceAttributes(PyObject *obj); +extern PyObject ** _PyObject_DictPointer(PyObject *); +extern int _PyObject_VisitInstanceAttributes(PyObject *self, visitproc visit, void *arg); +extern void _PyObject_ClearInstanceAttributes(PyObject *self); +extern void _PyObject_FreeInstanceAttributes(PyObject *self); extern int _PyObject_IsInstanceDictEmpty(PyObject *); -extern int _PyType_HasSubclasses(PyTypeObject *); extern PyObject* _PyType_GetSubclasses(PyTypeObject *); // Access macro to the members which are floating "behind" the object #define _PyHeapType_GET_MEMBERS(etype) \ - ((PyMemberDef *)(((char *)(etype)) + Py_TYPE(etype)->tp_basicsize)) + ((PyMemberDef *)(((char *)etype) + Py_TYPE(etype)->tp_basicsize)) PyAPI_FUNC(PyObject *) _PyObject_LookupSpecial(PyObject *, PyObject *); @@ -377,7 +296,7 @@ PyAPI_FUNC(PyObject *) _PyObject_LookupSpecial(PyObject *, PyObject *); #if defined(__EMSCRIPTEN__) && defined(PY_CALL_TRAMPOLINE) #define _PyCFunction_TrampolineCall(meth, self, args) \ _PyCFunctionWithKeywords_TrampolineCall( \ - (*(PyCFunctionWithKeywords)(void(*)(void))(meth)), (self), (args), NULL) + (*(PyCFunctionWithKeywords)(void(*)(void))meth), self, args, NULL) extern PyObject* _PyCFunctionWithKeywords_TrampolineCall( PyCFunctionWithKeywords meth, PyObject *, PyObject *, PyObject *); #else diff --git a/Include/internal/pycore_opcode.h b/Include/internal/pycore_opcode.h index 15925511cc1f41..c693fe3c5eca6a 100644 --- a/Include/internal/pycore_opcode.h +++ b/Include/internal/pycore_opcode.h @@ -16,40 +16,40 @@ extern const uint8_t _PyOpcode_Caches[256]; extern const uint8_t _PyOpcode_Deopt[256]; +extern const uint8_t _PyOpcode_Original[256]; + #ifdef NEED_OPCODE_TABLES -static const uint32_t _PyOpcode_RelativeJump[9] = { +static const uint32_t _PyOpcode_RelativeJump[8] = { 0U, 0U, 536870912U, 135118848U, 4163U, + 122880U, 0U, 0U, - 0U, - 48U, }; -static const uint32_t _PyOpcode_Jump[9] = { +static const uint32_t _PyOpcode_Jump[8] = { 0U, 0U, 536870912U, 135118848U, 4163U, + 122880U, 0U, 0U, - 0U, - 48U, }; const uint8_t _PyOpcode_Caches[256] = { [BINARY_SUBSCR] = 4, [STORE_SUBSCR] = 1, [UNPACK_SEQUENCE] = 1, - [FOR_ITER] = 1, [STORE_ATTR] = 4, - [LOAD_ATTR] = 9, + [LOAD_ATTR] = 4, [COMPARE_OP] = 2, [LOAD_GLOBAL] = 5, [BINARY_OP] = 1, + [LOAD_METHOD] = 10, [CALL] = 4, }; @@ -67,7 +67,6 @@ const uint8_t _PyOpcode_Deopt[256] = { [BINARY_OP_MULTIPLY_INT] = BINARY_OP, [BINARY_OP_SUBTRACT_FLOAT] = BINARY_OP, [BINARY_OP_SUBTRACT_INT] = BINARY_OP, - [BINARY_SLICE] = BINARY_SLICE, [BINARY_SUBSCR] = BINARY_SUBSCR, [BINARY_SUBSCR_ADAPTIVE] = BINARY_SUBSCR, [BINARY_SUBSCR_DICT] = BINARY_SUBSCR, @@ -104,7 +103,6 @@ const uint8_t _PyOpcode_Deopt[256] = { [CALL_PY_WITH_DEFAULTS] = CALL, [CHECK_EG_MATCH] = CHECK_EG_MATCH, [CHECK_EXC_MATCH] = CHECK_EXC_MATCH, - [CLEANUP_THROW] = CLEANUP_THROW, [COMPARE_OP] = COMPARE_OP, [COMPARE_OP_ADAPTIVE] = COMPARE_OP, [COMPARE_OP_FLOAT_JUMP] = COMPARE_OP, @@ -126,9 +124,6 @@ const uint8_t _PyOpcode_Deopt[256] = { [EXTENDED_ARG_QUICK] = EXTENDED_ARG, [FORMAT_VALUE] = FORMAT_VALUE, [FOR_ITER] = FOR_ITER, - [FOR_ITER_ADAPTIVE] = FOR_ITER, - [FOR_ITER_LIST] = FOR_ITER, - [FOR_ITER_RANGE] = FOR_ITER, [GET_AITER] = GET_AITER, [GET_ANEXT] = GET_ANEXT, [GET_AWAITABLE] = GET_AWAITABLE, @@ -152,15 +147,8 @@ const uint8_t _PyOpcode_Deopt[256] = { [LOAD_ASSERTION_ERROR] = LOAD_ASSERTION_ERROR, [LOAD_ATTR] = LOAD_ATTR, [LOAD_ATTR_ADAPTIVE] = LOAD_ATTR, - [LOAD_ATTR_CLASS] = LOAD_ATTR, - [LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN] = LOAD_ATTR, [LOAD_ATTR_INSTANCE_VALUE] = LOAD_ATTR, - [LOAD_ATTR_METHOD_LAZY_DICT] = LOAD_ATTR, - [LOAD_ATTR_METHOD_NO_DICT] = LOAD_ATTR, - [LOAD_ATTR_METHOD_WITH_DICT] = LOAD_ATTR, - [LOAD_ATTR_METHOD_WITH_VALUES] = LOAD_ATTR, [LOAD_ATTR_MODULE] = LOAD_ATTR, - [LOAD_ATTR_PROPERTY] = LOAD_ATTR, [LOAD_ATTR_SLOT] = LOAD_ATTR, [LOAD_ATTR_WITH_HINT] = LOAD_ATTR, [LOAD_BUILD_CLASS] = LOAD_BUILD_CLASS, @@ -170,13 +158,202 @@ const uint8_t _PyOpcode_Deopt[256] = { [LOAD_CONST__LOAD_FAST] = LOAD_CONST, [LOAD_DEREF] = LOAD_DEREF, [LOAD_FAST] = LOAD_FAST, - [LOAD_FAST_CHECK] = LOAD_FAST_CHECK, [LOAD_FAST__LOAD_CONST] = LOAD_FAST, [LOAD_FAST__LOAD_FAST] = LOAD_FAST, [LOAD_GLOBAL] = LOAD_GLOBAL, [LOAD_GLOBAL_ADAPTIVE] = LOAD_GLOBAL, [LOAD_GLOBAL_BUILTIN] = LOAD_GLOBAL, [LOAD_GLOBAL_MODULE] = LOAD_GLOBAL, + [LOAD_METHOD] = LOAD_METHOD, + [LOAD_METHOD_ADAPTIVE] = LOAD_METHOD, + [LOAD_METHOD_CLASS] = LOAD_METHOD, + [LOAD_METHOD_LAZY_DICT] = LOAD_METHOD, + [LOAD_METHOD_MODULE] = LOAD_METHOD, + [LOAD_METHOD_NO_DICT] = LOAD_METHOD, + [LOAD_METHOD_WITH_DICT] = LOAD_METHOD, + [LOAD_METHOD_WITH_VALUES] = LOAD_METHOD, + [LOAD_NAME] = LOAD_NAME, + [MAKE_CELL] = MAKE_CELL, + [MAKE_FUNCTION] = MAKE_FUNCTION, + [MAP_ADD] = MAP_ADD, + [MATCH_CLASS] = MATCH_CLASS, + [MATCH_KEYS] = MATCH_KEYS, + [MATCH_MAPPING] = MATCH_MAPPING, + [MATCH_SEQUENCE] = MATCH_SEQUENCE, + [NOP] = NOP, + [POP_EXCEPT] = POP_EXCEPT, + [POP_JUMP_BACKWARD_IF_FALSE] = POP_JUMP_BACKWARD_IF_FALSE, + [POP_JUMP_BACKWARD_IF_NONE] = POP_JUMP_BACKWARD_IF_NONE, + [POP_JUMP_BACKWARD_IF_NOT_NONE] = POP_JUMP_BACKWARD_IF_NOT_NONE, + [POP_JUMP_BACKWARD_IF_TRUE] = POP_JUMP_BACKWARD_IF_TRUE, + [POP_JUMP_FORWARD_IF_FALSE] = POP_JUMP_FORWARD_IF_FALSE, + [POP_JUMP_FORWARD_IF_NONE] = POP_JUMP_FORWARD_IF_NONE, + [POP_JUMP_FORWARD_IF_NOT_NONE] = POP_JUMP_FORWARD_IF_NOT_NONE, + [POP_JUMP_FORWARD_IF_TRUE] = POP_JUMP_FORWARD_IF_TRUE, + [POP_TOP] = POP_TOP, + [PREP_RERAISE_STAR] = PREP_RERAISE_STAR, + [PRINT_EXPR] = PRINT_EXPR, + [PUSH_EXC_INFO] = PUSH_EXC_INFO, + [PUSH_NULL] = PUSH_NULL, + [RAISE_VARARGS] = RAISE_VARARGS, + [RERAISE] = RERAISE, + [RESUME] = RESUME, + [RESUME_QUICK] = RESUME, + [RETURN_GENERATOR] = RETURN_GENERATOR, + [RETURN_VALUE] = RETURN_VALUE, + [SEND] = SEND, + [SETUP_ANNOTATIONS] = SETUP_ANNOTATIONS, + [SET_ADD] = SET_ADD, + [SET_UPDATE] = SET_UPDATE, + [STORE_ATTR] = STORE_ATTR, + [STORE_ATTR_ADAPTIVE] = STORE_ATTR, + [STORE_ATTR_INSTANCE_VALUE] = STORE_ATTR, + [STORE_ATTR_SLOT] = STORE_ATTR, + [STORE_ATTR_WITH_HINT] = STORE_ATTR, + [STORE_DEREF] = STORE_DEREF, + [STORE_FAST] = STORE_FAST, + [STORE_FAST__LOAD_FAST] = STORE_FAST, + [STORE_FAST__STORE_FAST] = STORE_FAST, + [STORE_GLOBAL] = STORE_GLOBAL, + [STORE_NAME] = STORE_NAME, + [STORE_SUBSCR] = STORE_SUBSCR, + [STORE_SUBSCR_ADAPTIVE] = STORE_SUBSCR, + [STORE_SUBSCR_DICT] = STORE_SUBSCR, + [STORE_SUBSCR_LIST_INT] = STORE_SUBSCR, + [SWAP] = SWAP, + [UNARY_INVERT] = UNARY_INVERT, + [UNARY_NEGATIVE] = UNARY_NEGATIVE, + [UNARY_NOT] = UNARY_NOT, + [UNARY_POSITIVE] = UNARY_POSITIVE, + [UNPACK_EX] = UNPACK_EX, + [UNPACK_SEQUENCE] = UNPACK_SEQUENCE, + [UNPACK_SEQUENCE_ADAPTIVE] = UNPACK_SEQUENCE, + [UNPACK_SEQUENCE_LIST] = UNPACK_SEQUENCE, + [UNPACK_SEQUENCE_TUPLE] = UNPACK_SEQUENCE, + [UNPACK_SEQUENCE_TWO_TUPLE] = UNPACK_SEQUENCE, + [WITH_EXCEPT_START] = WITH_EXCEPT_START, + [YIELD_VALUE] = YIELD_VALUE, +}; + +const uint8_t _PyOpcode_Original[256] = { + [ASYNC_GEN_WRAP] = ASYNC_GEN_WRAP, + [BEFORE_ASYNC_WITH] = BEFORE_ASYNC_WITH, + [BEFORE_WITH] = BEFORE_WITH, + [BINARY_OP] = BINARY_OP, + [BINARY_OP_ADAPTIVE] = BINARY_OP, + [BINARY_OP_ADD_FLOAT] = BINARY_OP, + [BINARY_OP_ADD_INT] = BINARY_OP, + [BINARY_OP_ADD_UNICODE] = BINARY_OP, + [BINARY_OP_INPLACE_ADD_UNICODE] = BINARY_OP, + [BINARY_OP_MULTIPLY_FLOAT] = BINARY_OP, + [BINARY_OP_MULTIPLY_INT] = BINARY_OP, + [BINARY_OP_SUBTRACT_FLOAT] = BINARY_OP, + [BINARY_OP_SUBTRACT_INT] = BINARY_OP, + [BINARY_SUBSCR] = BINARY_SUBSCR, + [BINARY_SUBSCR_ADAPTIVE] = BINARY_SUBSCR, + [BINARY_SUBSCR_DICT] = BINARY_SUBSCR, + [BINARY_SUBSCR_GETITEM] = BINARY_SUBSCR, + [BINARY_SUBSCR_LIST_INT] = BINARY_SUBSCR, + [BINARY_SUBSCR_TUPLE_INT] = BINARY_SUBSCR, + [BUILD_CONST_KEY_MAP] = BUILD_CONST_KEY_MAP, + [BUILD_LIST] = BUILD_LIST, + [BUILD_MAP] = BUILD_MAP, + [BUILD_SET] = BUILD_SET, + [BUILD_SLICE] = BUILD_SLICE, + [BUILD_STRING] = BUILD_STRING, + [BUILD_TUPLE] = BUILD_TUPLE, + [CACHE] = CACHE, + [CALL] = CALL, + [CALL_ADAPTIVE] = CALL, + [CALL_BOUND_METHOD_EXACT_ARGS] = CALL, + [CALL_BUILTIN_CLASS] = CALL, + [CALL_BUILTIN_FAST_WITH_KEYWORDS] = CALL, + [CALL_FUNCTION_EX] = CALL_FUNCTION_EX, + [CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS] = CALL, + [CALL_NO_KW_BUILTIN_FAST] = CALL, + [CALL_NO_KW_BUILTIN_O] = CALL, + [CALL_NO_KW_ISINSTANCE] = CALL, + [CALL_NO_KW_LEN] = CALL, + [CALL_NO_KW_LIST_APPEND] = CALL, + [CALL_NO_KW_METHOD_DESCRIPTOR_FAST] = CALL, + [CALL_NO_KW_METHOD_DESCRIPTOR_NOARGS] = CALL, + [CALL_NO_KW_METHOD_DESCRIPTOR_O] = CALL, + [CALL_NO_KW_STR_1] = CALL, + [CALL_NO_KW_TUPLE_1] = CALL, + [CALL_NO_KW_TYPE_1] = CALL, + [CALL_PY_EXACT_ARGS] = CALL, + [CALL_PY_WITH_DEFAULTS] = CALL, + [CHECK_EG_MATCH] = CHECK_EG_MATCH, + [CHECK_EXC_MATCH] = CHECK_EXC_MATCH, + [COMPARE_OP] = COMPARE_OP, + [COMPARE_OP_ADAPTIVE] = COMPARE_OP, + [COMPARE_OP_FLOAT_JUMP] = COMPARE_OP, + [COMPARE_OP_INT_JUMP] = COMPARE_OP, + [COMPARE_OP_STR_JUMP] = COMPARE_OP, + [CONTAINS_OP] = CONTAINS_OP, + [COPY] = COPY, + [COPY_FREE_VARS] = COPY_FREE_VARS, + [DELETE_ATTR] = DELETE_ATTR, + [DELETE_DEREF] = DELETE_DEREF, + [DELETE_FAST] = DELETE_FAST, + [DELETE_GLOBAL] = DELETE_GLOBAL, + [DELETE_NAME] = DELETE_NAME, + [DELETE_SUBSCR] = DELETE_SUBSCR, + [DICT_MERGE] = DICT_MERGE, + [DICT_UPDATE] = DICT_UPDATE, + [END_ASYNC_FOR] = END_ASYNC_FOR, + [EXTENDED_ARG] = EXTENDED_ARG_QUICK, + [EXTENDED_ARG_QUICK] = EXTENDED_ARG_QUICK, + [FORMAT_VALUE] = FORMAT_VALUE, + [FOR_ITER] = FOR_ITER, + [GET_AITER] = GET_AITER, + [GET_ANEXT] = GET_ANEXT, + [GET_AWAITABLE] = GET_AWAITABLE, + [GET_ITER] = GET_ITER, + [GET_LEN] = GET_LEN, + [GET_YIELD_FROM_ITER] = GET_YIELD_FROM_ITER, + [IMPORT_FROM] = IMPORT_FROM, + [IMPORT_NAME] = IMPORT_NAME, + [IMPORT_STAR] = IMPORT_STAR, + [IS_OP] = IS_OP, + [JUMP_BACKWARD] = JUMP_BACKWARD, + [JUMP_BACKWARD_NO_INTERRUPT] = JUMP_BACKWARD_NO_INTERRUPT, + [JUMP_BACKWARD_QUICK] = JUMP_BACKWARD, + [JUMP_FORWARD] = JUMP_FORWARD, + [JUMP_IF_FALSE_OR_POP] = JUMP_IF_FALSE_OR_POP, + [JUMP_IF_TRUE_OR_POP] = JUMP_IF_TRUE_OR_POP, + [KW_NAMES] = KW_NAMES, + [LIST_APPEND] = LIST_APPEND, + [LIST_EXTEND] = LIST_EXTEND, + [LIST_TO_TUPLE] = LIST_TO_TUPLE, + [LOAD_ASSERTION_ERROR] = LOAD_ASSERTION_ERROR, + [LOAD_ATTR] = LOAD_ATTR, + [LOAD_ATTR_ADAPTIVE] = LOAD_ATTR, + [LOAD_ATTR_INSTANCE_VALUE] = LOAD_ATTR, + [LOAD_ATTR_MODULE] = LOAD_ATTR, + [LOAD_ATTR_SLOT] = LOAD_ATTR, + [LOAD_ATTR_WITH_HINT] = LOAD_ATTR, + [LOAD_BUILD_CLASS] = LOAD_BUILD_CLASS, + [LOAD_CLASSDEREF] = LOAD_CLASSDEREF, + [LOAD_CLOSURE] = LOAD_CLOSURE, + [LOAD_CONST] = LOAD_CONST, + [LOAD_CONST__LOAD_FAST] = LOAD_CONST, + [LOAD_DEREF] = LOAD_DEREF, + [LOAD_FAST] = LOAD_FAST, + [LOAD_FAST__LOAD_CONST] = LOAD_FAST, + [LOAD_FAST__LOAD_FAST] = LOAD_FAST, + [LOAD_GLOBAL] = LOAD_GLOBAL, + [LOAD_GLOBAL_ADAPTIVE] = LOAD_GLOBAL, + [LOAD_GLOBAL_BUILTIN] = LOAD_GLOBAL, + [LOAD_GLOBAL_MODULE] = LOAD_GLOBAL, + [LOAD_METHOD] = LOAD_METHOD, + [LOAD_METHOD_ADAPTIVE] = LOAD_METHOD, + [LOAD_METHOD_CLASS] = LOAD_METHOD, + [LOAD_METHOD_LAZY_DICT] = LOAD_METHOD, + [LOAD_METHOD_MODULE] = LOAD_METHOD, + [LOAD_METHOD_NO_DICT] = LOAD_METHOD, + [LOAD_METHOD_WITH_DICT] = LOAD_METHOD, + [LOAD_METHOD_WITH_VALUES] = LOAD_METHOD, [LOAD_NAME] = LOAD_NAME, [MAKE_CELL] = MAKE_CELL, [MAKE_FUNCTION] = MAKE_FUNCTION, @@ -187,10 +364,14 @@ const uint8_t _PyOpcode_Deopt[256] = { [MATCH_SEQUENCE] = MATCH_SEQUENCE, [NOP] = NOP, [POP_EXCEPT] = POP_EXCEPT, - [POP_JUMP_IF_FALSE] = POP_JUMP_IF_FALSE, - [POP_JUMP_IF_NONE] = POP_JUMP_IF_NONE, - [POP_JUMP_IF_NOT_NONE] = POP_JUMP_IF_NOT_NONE, - [POP_JUMP_IF_TRUE] = POP_JUMP_IF_TRUE, + [POP_JUMP_BACKWARD_IF_FALSE] = POP_JUMP_BACKWARD_IF_FALSE, + [POP_JUMP_BACKWARD_IF_NONE] = POP_JUMP_BACKWARD_IF_NONE, + [POP_JUMP_BACKWARD_IF_NOT_NONE] = POP_JUMP_BACKWARD_IF_NOT_NONE, + [POP_JUMP_BACKWARD_IF_TRUE] = POP_JUMP_BACKWARD_IF_TRUE, + [POP_JUMP_FORWARD_IF_FALSE] = POP_JUMP_FORWARD_IF_FALSE, + [POP_JUMP_FORWARD_IF_NONE] = POP_JUMP_FORWARD_IF_NONE, + [POP_JUMP_FORWARD_IF_NOT_NONE] = POP_JUMP_FORWARD_IF_NOT_NONE, + [POP_JUMP_FORWARD_IF_TRUE] = POP_JUMP_FORWARD_IF_TRUE, [POP_TOP] = POP_TOP, [PREP_RERAISE_STAR] = PREP_RERAISE_STAR, [PRINT_EXPR] = PRINT_EXPR, @@ -217,7 +398,6 @@ const uint8_t _PyOpcode_Deopt[256] = { [STORE_FAST__STORE_FAST] = STORE_FAST, [STORE_GLOBAL] = STORE_GLOBAL, [STORE_NAME] = STORE_NAME, - [STORE_SLICE] = STORE_SLICE, [STORE_SUBSCR] = STORE_SUBSCR, [STORE_SUBSCR_ADAPTIVE] = STORE_SUBSCR, [STORE_SUBSCR_DICT] = STORE_SUBSCR, @@ -239,7 +419,7 @@ const uint8_t _PyOpcode_Deopt[256] = { #endif // NEED_OPCODE_TABLES #ifdef Py_DEBUG -static const char *const _PyOpcode_OpName[263] = { +static const char *const _PyOpcode_OpName[256] = { [CACHE] = "CACHE", [POP_TOP] = "POP_TOP", [PUSH_NULL] = "PUSH_NULL", @@ -266,20 +446,18 @@ static const char *const _PyOpcode_OpName[263] = { [CALL_PY_EXACT_ARGS] = "CALL_PY_EXACT_ARGS", [CALL_PY_WITH_DEFAULTS] = "CALL_PY_WITH_DEFAULTS", [BINARY_SUBSCR] = "BINARY_SUBSCR", - [BINARY_SLICE] = "BINARY_SLICE", - [STORE_SLICE] = "STORE_SLICE", [CALL_BOUND_METHOD_EXACT_ARGS] = "CALL_BOUND_METHOD_EXACT_ARGS", [CALL_BUILTIN_CLASS] = "CALL_BUILTIN_CLASS", + [CALL_BUILTIN_FAST_WITH_KEYWORDS] = "CALL_BUILTIN_FAST_WITH_KEYWORDS", + [CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS] = "CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS", [GET_LEN] = "GET_LEN", [MATCH_MAPPING] = "MATCH_MAPPING", [MATCH_SEQUENCE] = "MATCH_SEQUENCE", [MATCH_KEYS] = "MATCH_KEYS", - [CALL_BUILTIN_FAST_WITH_KEYWORDS] = "CALL_BUILTIN_FAST_WITH_KEYWORDS", + [CALL_NO_KW_BUILTIN_FAST] = "CALL_NO_KW_BUILTIN_FAST", [PUSH_EXC_INFO] = "PUSH_EXC_INFO", [CHECK_EXC_MATCH] = "CHECK_EXC_MATCH", [CHECK_EG_MATCH] = "CHECK_EG_MATCH", - [CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS] = "CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS", - [CALL_NO_KW_BUILTIN_FAST] = "CALL_NO_KW_BUILTIN_FAST", [CALL_NO_KW_BUILTIN_O] = "CALL_NO_KW_BUILTIN_O", [CALL_NO_KW_ISINSTANCE] = "CALL_NO_KW_ISINSTANCE", [CALL_NO_KW_LEN] = "CALL_NO_KW_LEN", @@ -289,44 +467,46 @@ static const char *const _PyOpcode_OpName[263] = { [CALL_NO_KW_METHOD_DESCRIPTOR_O] = "CALL_NO_KW_METHOD_DESCRIPTOR_O", [CALL_NO_KW_STR_1] = "CALL_NO_KW_STR_1", [CALL_NO_KW_TUPLE_1] = "CALL_NO_KW_TUPLE_1", + [CALL_NO_KW_TYPE_1] = "CALL_NO_KW_TYPE_1", + [COMPARE_OP_ADAPTIVE] = "COMPARE_OP_ADAPTIVE", [WITH_EXCEPT_START] = "WITH_EXCEPT_START", [GET_AITER] = "GET_AITER", [GET_ANEXT] = "GET_ANEXT", [BEFORE_ASYNC_WITH] = "BEFORE_ASYNC_WITH", [BEFORE_WITH] = "BEFORE_WITH", [END_ASYNC_FOR] = "END_ASYNC_FOR", - [CLEANUP_THROW] = "CLEANUP_THROW", - [CALL_NO_KW_TYPE_1] = "CALL_NO_KW_TYPE_1", - [COMPARE_OP_ADAPTIVE] = "COMPARE_OP_ADAPTIVE", [COMPARE_OP_FLOAT_JUMP] = "COMPARE_OP_FLOAT_JUMP", [COMPARE_OP_INT_JUMP] = "COMPARE_OP_INT_JUMP", - [STORE_SUBSCR] = "STORE_SUBSCR", - [DELETE_SUBSCR] = "DELETE_SUBSCR", [COMPARE_OP_STR_JUMP] = "COMPARE_OP_STR_JUMP", [EXTENDED_ARG_QUICK] = "EXTENDED_ARG_QUICK", - [FOR_ITER_ADAPTIVE] = "FOR_ITER_ADAPTIVE", - [FOR_ITER_LIST] = "FOR_ITER_LIST", - [FOR_ITER_RANGE] = "FOR_ITER_RANGE", [JUMP_BACKWARD_QUICK] = "JUMP_BACKWARD_QUICK", + [STORE_SUBSCR] = "STORE_SUBSCR", + [DELETE_SUBSCR] = "DELETE_SUBSCR", + [LOAD_ATTR_ADAPTIVE] = "LOAD_ATTR_ADAPTIVE", + [LOAD_ATTR_INSTANCE_VALUE] = "LOAD_ATTR_INSTANCE_VALUE", + [LOAD_ATTR_MODULE] = "LOAD_ATTR_MODULE", + [LOAD_ATTR_SLOT] = "LOAD_ATTR_SLOT", + [LOAD_ATTR_WITH_HINT] = "LOAD_ATTR_WITH_HINT", + [LOAD_CONST__LOAD_FAST] = "LOAD_CONST__LOAD_FAST", [GET_ITER] = "GET_ITER", [GET_YIELD_FROM_ITER] = "GET_YIELD_FROM_ITER", [PRINT_EXPR] = "PRINT_EXPR", [LOAD_BUILD_CLASS] = "LOAD_BUILD_CLASS", - [LOAD_ATTR_ADAPTIVE] = "LOAD_ATTR_ADAPTIVE", - [LOAD_ATTR_CLASS] = "LOAD_ATTR_CLASS", + [LOAD_FAST__LOAD_CONST] = "LOAD_FAST__LOAD_CONST", + [LOAD_FAST__LOAD_FAST] = "LOAD_FAST__LOAD_FAST", [LOAD_ASSERTION_ERROR] = "LOAD_ASSERTION_ERROR", [RETURN_GENERATOR] = "RETURN_GENERATOR", - [LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN] = "LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN", - [LOAD_ATTR_INSTANCE_VALUE] = "LOAD_ATTR_INSTANCE_VALUE", - [LOAD_ATTR_MODULE] = "LOAD_ATTR_MODULE", - [LOAD_ATTR_PROPERTY] = "LOAD_ATTR_PROPERTY", - [LOAD_ATTR_SLOT] = "LOAD_ATTR_SLOT", - [LOAD_ATTR_WITH_HINT] = "LOAD_ATTR_WITH_HINT", + [LOAD_GLOBAL_ADAPTIVE] = "LOAD_GLOBAL_ADAPTIVE", + [LOAD_GLOBAL_BUILTIN] = "LOAD_GLOBAL_BUILTIN", + [LOAD_GLOBAL_MODULE] = "LOAD_GLOBAL_MODULE", + [LOAD_METHOD_ADAPTIVE] = "LOAD_METHOD_ADAPTIVE", + [LOAD_METHOD_CLASS] = "LOAD_METHOD_CLASS", + [LOAD_METHOD_LAZY_DICT] = "LOAD_METHOD_LAZY_DICT", [LIST_TO_TUPLE] = "LIST_TO_TUPLE", [RETURN_VALUE] = "RETURN_VALUE", [IMPORT_STAR] = "IMPORT_STAR", [SETUP_ANNOTATIONS] = "SETUP_ANNOTATIONS", - [LOAD_ATTR_METHOD_LAZY_DICT] = "LOAD_ATTR_METHOD_LAZY_DICT", + [LOAD_METHOD_MODULE] = "LOAD_METHOD_MODULE", [ASYNC_GEN_WRAP] = "ASYNC_GEN_WRAP", [PREP_RERAISE_STAR] = "PREP_RERAISE_STAR", [POP_EXCEPT] = "POP_EXCEPT", @@ -353,23 +533,23 @@ static const char *const _PyOpcode_OpName[263] = { [JUMP_FORWARD] = "JUMP_FORWARD", [JUMP_IF_FALSE_OR_POP] = "JUMP_IF_FALSE_OR_POP", [JUMP_IF_TRUE_OR_POP] = "JUMP_IF_TRUE_OR_POP", - [LOAD_ATTR_METHOD_NO_DICT] = "LOAD_ATTR_METHOD_NO_DICT", - [POP_JUMP_IF_FALSE] = "POP_JUMP_IF_FALSE", - [POP_JUMP_IF_TRUE] = "POP_JUMP_IF_TRUE", + [LOAD_METHOD_NO_DICT] = "LOAD_METHOD_NO_DICT", + [POP_JUMP_FORWARD_IF_FALSE] = "POP_JUMP_FORWARD_IF_FALSE", + [POP_JUMP_FORWARD_IF_TRUE] = "POP_JUMP_FORWARD_IF_TRUE", [LOAD_GLOBAL] = "LOAD_GLOBAL", [IS_OP] = "IS_OP", [CONTAINS_OP] = "CONTAINS_OP", [RERAISE] = "RERAISE", [COPY] = "COPY", - [LOAD_ATTR_METHOD_WITH_DICT] = "LOAD_ATTR_METHOD_WITH_DICT", + [LOAD_METHOD_WITH_DICT] = "LOAD_METHOD_WITH_DICT", [BINARY_OP] = "BINARY_OP", [SEND] = "SEND", [LOAD_FAST] = "LOAD_FAST", [STORE_FAST] = "STORE_FAST", [DELETE_FAST] = "DELETE_FAST", - [LOAD_FAST_CHECK] = "LOAD_FAST_CHECK", - [POP_JUMP_IF_NOT_NONE] = "POP_JUMP_IF_NOT_NONE", - [POP_JUMP_IF_NONE] = "POP_JUMP_IF_NONE", + [LOAD_METHOD_WITH_VALUES] = "LOAD_METHOD_WITH_VALUES", + [POP_JUMP_FORWARD_IF_NOT_NONE] = "POP_JUMP_FORWARD_IF_NOT_NONE", + [POP_JUMP_FORWARD_IF_NONE] = "POP_JUMP_FORWARD_IF_NONE", [RAISE_VARARGS] = "RAISE_VARARGS", [GET_AWAITABLE] = "GET_AWAITABLE", [MAKE_FUNCTION] = "MAKE_FUNCTION", @@ -381,9 +561,9 @@ static const char *const _PyOpcode_OpName[263] = { [STORE_DEREF] = "STORE_DEREF", [DELETE_DEREF] = "DELETE_DEREF", [JUMP_BACKWARD] = "JUMP_BACKWARD", - [LOAD_ATTR_METHOD_WITH_VALUES] = "LOAD_ATTR_METHOD_WITH_VALUES", + [RESUME_QUICK] = "RESUME_QUICK", [CALL_FUNCTION_EX] = "CALL_FUNCTION_EX", - [LOAD_CONST__LOAD_FAST] = "LOAD_CONST__LOAD_FAST", + [STORE_ATTR_ADAPTIVE] = "STORE_ATTR_ADAPTIVE", [EXTENDED_ARG] = "EXTENDED_ARG", [LIST_APPEND] = "LIST_APPEND", [SET_ADD] = "SET_ADD", @@ -393,34 +573,34 @@ static const char *const _PyOpcode_OpName[263] = { [YIELD_VALUE] = "YIELD_VALUE", [RESUME] = "RESUME", [MATCH_CLASS] = "MATCH_CLASS", - [LOAD_FAST__LOAD_CONST] = "LOAD_FAST__LOAD_CONST", - [LOAD_FAST__LOAD_FAST] = "LOAD_FAST__LOAD_FAST", + [STORE_ATTR_INSTANCE_VALUE] = "STORE_ATTR_INSTANCE_VALUE", + [STORE_ATTR_SLOT] = "STORE_ATTR_SLOT", [FORMAT_VALUE] = "FORMAT_VALUE", [BUILD_CONST_KEY_MAP] = "BUILD_CONST_KEY_MAP", [BUILD_STRING] = "BUILD_STRING", - [LOAD_GLOBAL_ADAPTIVE] = "LOAD_GLOBAL_ADAPTIVE", - [LOAD_GLOBAL_BUILTIN] = "LOAD_GLOBAL_BUILTIN", - [LOAD_GLOBAL_MODULE] = "LOAD_GLOBAL_MODULE", - [RESUME_QUICK] = "RESUME_QUICK", + [STORE_ATTR_WITH_HINT] = "STORE_ATTR_WITH_HINT", + [STORE_FAST__LOAD_FAST] = "STORE_FAST__LOAD_FAST", + [LOAD_METHOD] = "LOAD_METHOD", + [STORE_FAST__STORE_FAST] = "STORE_FAST__STORE_FAST", [LIST_EXTEND] = "LIST_EXTEND", [SET_UPDATE] = "SET_UPDATE", [DICT_MERGE] = "DICT_MERGE", [DICT_UPDATE] = "DICT_UPDATE", - [STORE_ATTR_ADAPTIVE] = "STORE_ATTR_ADAPTIVE", - [STORE_ATTR_INSTANCE_VALUE] = "STORE_ATTR_INSTANCE_VALUE", - [STORE_ATTR_SLOT] = "STORE_ATTR_SLOT", - [STORE_ATTR_WITH_HINT] = "STORE_ATTR_WITH_HINT", - [STORE_FAST__LOAD_FAST] = "STORE_FAST__LOAD_FAST", - [CALL] = "CALL", - [KW_NAMES] = "KW_NAMES", - [STORE_FAST__STORE_FAST] = "STORE_FAST__STORE_FAST", [STORE_SUBSCR_ADAPTIVE] = "STORE_SUBSCR_ADAPTIVE", [STORE_SUBSCR_DICT] = "STORE_SUBSCR_DICT", [STORE_SUBSCR_LIST_INT] = "STORE_SUBSCR_LIST_INT", [UNPACK_SEQUENCE_ADAPTIVE] = "UNPACK_SEQUENCE_ADAPTIVE", [UNPACK_SEQUENCE_LIST] = "UNPACK_SEQUENCE_LIST", + [CALL] = "CALL", + [KW_NAMES] = "KW_NAMES", + [POP_JUMP_BACKWARD_IF_NOT_NONE] = "POP_JUMP_BACKWARD_IF_NOT_NONE", + [POP_JUMP_BACKWARD_IF_NONE] = "POP_JUMP_BACKWARD_IF_NONE", + [POP_JUMP_BACKWARD_IF_FALSE] = "POP_JUMP_BACKWARD_IF_FALSE", + [POP_JUMP_BACKWARD_IF_TRUE] = "POP_JUMP_BACKWARD_IF_TRUE", [UNPACK_SEQUENCE_TUPLE] = "UNPACK_SEQUENCE_TUPLE", [UNPACK_SEQUENCE_TWO_TUPLE] = "UNPACK_SEQUENCE_TWO_TUPLE", + [179] = "<179>", + [180] = "<180>", [181] = "<181>", [182] = "<182>", [183] = "<183>", @@ -496,17 +676,12 @@ static const char *const _PyOpcode_OpName[263] = { [253] = "<253>", [254] = "<254>", [DO_TRACING] = "DO_TRACING", - [SETUP_FINALLY] = "SETUP_FINALLY", - [SETUP_CLEANUP] = "SETUP_CLEANUP", - [SETUP_WITH] = "SETUP_WITH", - [POP_BLOCK] = "POP_BLOCK", - [JUMP] = "JUMP", - [JUMP_NO_INTERRUPT] = "JUMP_NO_INTERRUPT", - [LOAD_METHOD] = "LOAD_METHOD", }; #endif #define EXTRA_CASES \ + case 179: \ + case 180: \ case 181: \ case 182: \ case 183: \ diff --git a/Include/internal/pycore_pystate.h b/Include/internal/pycore_pystate.h index 3d6d400f74dd1d..c4bc53c707fdaf 100644 --- a/Include/internal/pycore_pystate.h +++ b/Include/internal/pycore_pystate.h @@ -64,10 +64,18 @@ _Py_ThreadCanHandlePendingCalls(void) /* Variable and macro for in-line access to current thread and interpreter state */ +#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS +PyAPI_FUNC(PyThreadState*) _PyThreadState_GetTSS(void); +#endif + static inline PyThreadState* _PyRuntimeState_GetThreadState(_PyRuntimeState *runtime) { +#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS + return _PyThreadState_GetTSS(); +#else return (PyThreadState*)_Py_atomic_load_relaxed(&runtime->gilstate.tstate_current); +#endif } /* Get the current Python thread state. @@ -82,23 +90,26 @@ _PyRuntimeState_GetThreadState(_PyRuntimeState *runtime) static inline PyThreadState* _PyThreadState_GET(void) { +#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS + return _PyThreadState_GetTSS(); +#else return _PyRuntimeState_GetThreadState(&_PyRuntime); +#endif } +PyAPI_FUNC(void) _Py_NO_RETURN _Py_FatalError_TstateNULL(const char *func); + static inline void _Py_EnsureFuncTstateNotNULL(const char *func, PyThreadState *tstate) { if (tstate == NULL) { - _Py_FatalErrorFunc(func, - "the function must be called with the GIL held, " - "after Python initialization and before Python finalization, " - "but the GIL is released (the current Python thread state is NULL)"); + _Py_FatalError_TstateNULL(func); } } // Call Py_FatalError() if tstate is NULL #define _Py_EnsureTstateNotNULL(tstate) \ - _Py_EnsureFuncTstateNotNULL(__func__, (tstate)) + _Py_EnsureFuncTstateNotNULL(__func__, tstate) /* Get the current interpreter state. @@ -132,9 +143,8 @@ PyAPI_FUNC(void) _PyThreadState_DeleteExcept( static inline void _PyThreadState_UpdateTracingState(PyThreadState *tstate) { - bool use_tracing = - (tstate->tracing == 0) && - (tstate->c_tracefunc != NULL || tstate->c_profilefunc != NULL); + int use_tracing = (tstate->c_tracefunc != NULL + || tstate->c_profilefunc != NULL); tstate->cframe->use_tracing = (use_tracing ? 255 : 0); } diff --git a/Include/internal/pycore_range.h b/Include/internal/pycore_range.h deleted file mode 100644 index 809e89a1e01b60..00000000000000 --- a/Include/internal/pycore_range.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef Py_INTERNAL_RANGE_H -#define Py_INTERNAL_RANGE_H -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef Py_BUILD_CORE -# error "this header requires Py_BUILD_CORE define" -#endif - -typedef struct { - PyObject_HEAD - long index; - long start; - long step; - long len; -} _PyRangeIterObject; - -#ifdef __cplusplus -} -#endif -#endif /* !Py_INTERNAL_RANGE_H */ diff --git a/Include/internal/pycore_runtime.h b/Include/internal/pycore_runtime.h index 2c04ead45869fc..18191c3771dfcc 100644 --- a/Include/internal/pycore_runtime.h +++ b/Include/internal/pycore_runtime.h @@ -14,9 +14,6 @@ extern "C" { #include "pycore_interp.h" // PyInterpreterState #include "pycore_unicodeobject.h" // struct _Py_unicode_runtime_ids -struct _getargs_runtime_state { - PyThread_type_lock mutex; -}; /* ceval state */ @@ -26,7 +23,9 @@ struct _ceval_runtime_state { the main thread of the main interpreter can handle signals: see _Py_ThreadCanHandleSignals(). */ _Py_atomic_int signals_pending; +#ifndef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS struct _gil_runtime_state gil; +#endif }; /* GIL state */ @@ -117,7 +116,6 @@ typedef struct pyruntimestate { struct _ceval_runtime_state ceval; struct _gilstate_runtime_state gilstate; - struct _getargs_runtime_state getargs; PyPreConfig preconfig; diff --git a/Include/internal/pycore_runtime_init.h b/Include/internal/pycore_runtime_init.h index 621d5cc864255d..737507f07eacce 100644 --- a/Include/internal/pycore_runtime_init.h +++ b/Include/internal/pycore_runtime_init.h @@ -84,13 +84,13 @@ extern "C" { #define _PyBytes_SIMPLE_INIT(CH, LEN) \ { \ - _PyVarObject_IMMORTAL_INIT(&PyBytes_Type, (LEN)), \ + _PyVarObject_IMMORTAL_INIT(&PyBytes_Type, LEN), \ .ob_shash = -1, \ - .ob_sval = { (CH) }, \ + .ob_sval = { CH }, \ } #define _PyBytes_CHAR_INIT(CH) \ { \ - _PyBytes_SIMPLE_INIT((CH), 1) \ + _PyBytes_SIMPLE_INIT(CH, 1) \ } #define _PyUnicode_ASCII_BASE_INIT(LITERAL, ASCII) \ @@ -101,29 +101,1152 @@ extern "C" { .state = { \ .kind = 1, \ .compact = 1, \ - .ascii = (ASCII), \ + .ascii = ASCII, \ }, \ } #define _PyASCIIObject_INIT(LITERAL) \ { \ - ._ascii = _PyUnicode_ASCII_BASE_INIT((LITERAL), 1), \ - ._data = (LITERAL) \ + ._ascii = _PyUnicode_ASCII_BASE_INIT(LITERAL, 1), \ + ._data = LITERAL \ } #define INIT_STR(NAME, LITERAL) \ ._ ## NAME = _PyASCIIObject_INIT(LITERAL) #define INIT_ID(NAME) \ ._ ## NAME = _PyASCIIObject_INIT(#NAME) -#define _PyUnicode_LATIN1_INIT(LITERAL, UTF8) \ +#define _PyUnicode_LATIN1_INIT(LITERAL) \ { \ ._latin1 = { \ - ._base = _PyUnicode_ASCII_BASE_INIT((LITERAL), 0), \ - .utf8 = (UTF8), \ - .utf8_length = sizeof(UTF8) - 1, \ + ._base = _PyUnicode_ASCII_BASE_INIT(LITERAL, 0), \ }, \ - ._data = (LITERAL), \ + ._data = LITERAL, \ } -#include "pycore_runtime_init_generated.h" +/* The following is auto-generated by Tools/scripts/generate_global_objects.py. */ +#define _Py_global_objects_INIT { \ + .singletons = { \ + .small_ints = { \ + _PyLong_DIGIT_INIT(-5), \ + _PyLong_DIGIT_INIT(-4), \ + _PyLong_DIGIT_INIT(-3), \ + _PyLong_DIGIT_INIT(-2), \ + _PyLong_DIGIT_INIT(-1), \ + _PyLong_DIGIT_INIT(0), \ + _PyLong_DIGIT_INIT(1), \ + _PyLong_DIGIT_INIT(2), \ + _PyLong_DIGIT_INIT(3), \ + _PyLong_DIGIT_INIT(4), \ + _PyLong_DIGIT_INIT(5), \ + _PyLong_DIGIT_INIT(6), \ + _PyLong_DIGIT_INIT(7), \ + _PyLong_DIGIT_INIT(8), \ + _PyLong_DIGIT_INIT(9), \ + _PyLong_DIGIT_INIT(10), \ + _PyLong_DIGIT_INIT(11), \ + _PyLong_DIGIT_INIT(12), \ + _PyLong_DIGIT_INIT(13), \ + _PyLong_DIGIT_INIT(14), \ + _PyLong_DIGIT_INIT(15), \ + _PyLong_DIGIT_INIT(16), \ + _PyLong_DIGIT_INIT(17), \ + _PyLong_DIGIT_INIT(18), \ + _PyLong_DIGIT_INIT(19), \ + _PyLong_DIGIT_INIT(20), \ + _PyLong_DIGIT_INIT(21), \ + _PyLong_DIGIT_INIT(22), \ + _PyLong_DIGIT_INIT(23), \ + _PyLong_DIGIT_INIT(24), \ + _PyLong_DIGIT_INIT(25), \ + _PyLong_DIGIT_INIT(26), \ + _PyLong_DIGIT_INIT(27), \ + _PyLong_DIGIT_INIT(28), \ + _PyLong_DIGIT_INIT(29), \ + _PyLong_DIGIT_INIT(30), \ + _PyLong_DIGIT_INIT(31), \ + _PyLong_DIGIT_INIT(32), \ + _PyLong_DIGIT_INIT(33), \ + _PyLong_DIGIT_INIT(34), \ + _PyLong_DIGIT_INIT(35), \ + _PyLong_DIGIT_INIT(36), \ + _PyLong_DIGIT_INIT(37), \ + _PyLong_DIGIT_INIT(38), \ + _PyLong_DIGIT_INIT(39), \ + _PyLong_DIGIT_INIT(40), \ + _PyLong_DIGIT_INIT(41), \ + _PyLong_DIGIT_INIT(42), \ + _PyLong_DIGIT_INIT(43), \ + _PyLong_DIGIT_INIT(44), \ + _PyLong_DIGIT_INIT(45), \ + _PyLong_DIGIT_INIT(46), \ + _PyLong_DIGIT_INIT(47), \ + _PyLong_DIGIT_INIT(48), \ + _PyLong_DIGIT_INIT(49), \ + _PyLong_DIGIT_INIT(50), \ + _PyLong_DIGIT_INIT(51), \ + _PyLong_DIGIT_INIT(52), \ + _PyLong_DIGIT_INIT(53), \ + _PyLong_DIGIT_INIT(54), \ + _PyLong_DIGIT_INIT(55), \ + _PyLong_DIGIT_INIT(56), \ + _PyLong_DIGIT_INIT(57), \ + _PyLong_DIGIT_INIT(58), \ + _PyLong_DIGIT_INIT(59), \ + _PyLong_DIGIT_INIT(60), \ + _PyLong_DIGIT_INIT(61), \ + _PyLong_DIGIT_INIT(62), \ + _PyLong_DIGIT_INIT(63), \ + _PyLong_DIGIT_INIT(64), \ + _PyLong_DIGIT_INIT(65), \ + _PyLong_DIGIT_INIT(66), \ + _PyLong_DIGIT_INIT(67), \ + _PyLong_DIGIT_INIT(68), \ + _PyLong_DIGIT_INIT(69), \ + _PyLong_DIGIT_INIT(70), \ + _PyLong_DIGIT_INIT(71), \ + _PyLong_DIGIT_INIT(72), \ + _PyLong_DIGIT_INIT(73), \ + _PyLong_DIGIT_INIT(74), \ + _PyLong_DIGIT_INIT(75), \ + _PyLong_DIGIT_INIT(76), \ + _PyLong_DIGIT_INIT(77), \ + _PyLong_DIGIT_INIT(78), \ + _PyLong_DIGIT_INIT(79), \ + _PyLong_DIGIT_INIT(80), \ + _PyLong_DIGIT_INIT(81), \ + _PyLong_DIGIT_INIT(82), \ + _PyLong_DIGIT_INIT(83), \ + _PyLong_DIGIT_INIT(84), \ + _PyLong_DIGIT_INIT(85), \ + _PyLong_DIGIT_INIT(86), \ + _PyLong_DIGIT_INIT(87), \ + _PyLong_DIGIT_INIT(88), \ + _PyLong_DIGIT_INIT(89), \ + _PyLong_DIGIT_INIT(90), \ + _PyLong_DIGIT_INIT(91), \ + _PyLong_DIGIT_INIT(92), \ + _PyLong_DIGIT_INIT(93), \ + _PyLong_DIGIT_INIT(94), \ + _PyLong_DIGIT_INIT(95), \ + _PyLong_DIGIT_INIT(96), \ + _PyLong_DIGIT_INIT(97), \ + _PyLong_DIGIT_INIT(98), \ + _PyLong_DIGIT_INIT(99), \ + _PyLong_DIGIT_INIT(100), \ + _PyLong_DIGIT_INIT(101), \ + _PyLong_DIGIT_INIT(102), \ + _PyLong_DIGIT_INIT(103), \ + _PyLong_DIGIT_INIT(104), \ + _PyLong_DIGIT_INIT(105), \ + _PyLong_DIGIT_INIT(106), \ + _PyLong_DIGIT_INIT(107), \ + _PyLong_DIGIT_INIT(108), \ + _PyLong_DIGIT_INIT(109), \ + _PyLong_DIGIT_INIT(110), \ + _PyLong_DIGIT_INIT(111), \ + _PyLong_DIGIT_INIT(112), \ + _PyLong_DIGIT_INIT(113), \ + _PyLong_DIGIT_INIT(114), \ + _PyLong_DIGIT_INIT(115), \ + _PyLong_DIGIT_INIT(116), \ + _PyLong_DIGIT_INIT(117), \ + _PyLong_DIGIT_INIT(118), \ + _PyLong_DIGIT_INIT(119), \ + _PyLong_DIGIT_INIT(120), \ + _PyLong_DIGIT_INIT(121), \ + _PyLong_DIGIT_INIT(122), \ + _PyLong_DIGIT_INIT(123), \ + _PyLong_DIGIT_INIT(124), \ + _PyLong_DIGIT_INIT(125), \ + _PyLong_DIGIT_INIT(126), \ + _PyLong_DIGIT_INIT(127), \ + _PyLong_DIGIT_INIT(128), \ + _PyLong_DIGIT_INIT(129), \ + _PyLong_DIGIT_INIT(130), \ + _PyLong_DIGIT_INIT(131), \ + _PyLong_DIGIT_INIT(132), \ + _PyLong_DIGIT_INIT(133), \ + _PyLong_DIGIT_INIT(134), \ + _PyLong_DIGIT_INIT(135), \ + _PyLong_DIGIT_INIT(136), \ + _PyLong_DIGIT_INIT(137), \ + _PyLong_DIGIT_INIT(138), \ + _PyLong_DIGIT_INIT(139), \ + _PyLong_DIGIT_INIT(140), \ + _PyLong_DIGIT_INIT(141), \ + _PyLong_DIGIT_INIT(142), \ + _PyLong_DIGIT_INIT(143), \ + _PyLong_DIGIT_INIT(144), \ + _PyLong_DIGIT_INIT(145), \ + _PyLong_DIGIT_INIT(146), \ + _PyLong_DIGIT_INIT(147), \ + _PyLong_DIGIT_INIT(148), \ + _PyLong_DIGIT_INIT(149), \ + _PyLong_DIGIT_INIT(150), \ + _PyLong_DIGIT_INIT(151), \ + _PyLong_DIGIT_INIT(152), \ + _PyLong_DIGIT_INIT(153), \ + _PyLong_DIGIT_INIT(154), \ + _PyLong_DIGIT_INIT(155), \ + _PyLong_DIGIT_INIT(156), \ + _PyLong_DIGIT_INIT(157), \ + _PyLong_DIGIT_INIT(158), \ + _PyLong_DIGIT_INIT(159), \ + _PyLong_DIGIT_INIT(160), \ + _PyLong_DIGIT_INIT(161), \ + _PyLong_DIGIT_INIT(162), \ + _PyLong_DIGIT_INIT(163), \ + _PyLong_DIGIT_INIT(164), \ + _PyLong_DIGIT_INIT(165), \ + _PyLong_DIGIT_INIT(166), \ + _PyLong_DIGIT_INIT(167), \ + _PyLong_DIGIT_INIT(168), \ + _PyLong_DIGIT_INIT(169), \ + _PyLong_DIGIT_INIT(170), \ + _PyLong_DIGIT_INIT(171), \ + _PyLong_DIGIT_INIT(172), \ + _PyLong_DIGIT_INIT(173), \ + _PyLong_DIGIT_INIT(174), \ + _PyLong_DIGIT_INIT(175), \ + _PyLong_DIGIT_INIT(176), \ + _PyLong_DIGIT_INIT(177), \ + _PyLong_DIGIT_INIT(178), \ + _PyLong_DIGIT_INIT(179), \ + _PyLong_DIGIT_INIT(180), \ + _PyLong_DIGIT_INIT(181), \ + _PyLong_DIGIT_INIT(182), \ + _PyLong_DIGIT_INIT(183), \ + _PyLong_DIGIT_INIT(184), \ + _PyLong_DIGIT_INIT(185), \ + _PyLong_DIGIT_INIT(186), \ + _PyLong_DIGIT_INIT(187), \ + _PyLong_DIGIT_INIT(188), \ + _PyLong_DIGIT_INIT(189), \ + _PyLong_DIGIT_INIT(190), \ + _PyLong_DIGIT_INIT(191), \ + _PyLong_DIGIT_INIT(192), \ + _PyLong_DIGIT_INIT(193), \ + _PyLong_DIGIT_INIT(194), \ + _PyLong_DIGIT_INIT(195), \ + _PyLong_DIGIT_INIT(196), \ + _PyLong_DIGIT_INIT(197), \ + _PyLong_DIGIT_INIT(198), \ + _PyLong_DIGIT_INIT(199), \ + _PyLong_DIGIT_INIT(200), \ + _PyLong_DIGIT_INIT(201), \ + _PyLong_DIGIT_INIT(202), \ + _PyLong_DIGIT_INIT(203), \ + _PyLong_DIGIT_INIT(204), \ + _PyLong_DIGIT_INIT(205), \ + _PyLong_DIGIT_INIT(206), \ + _PyLong_DIGIT_INIT(207), \ + _PyLong_DIGIT_INIT(208), \ + _PyLong_DIGIT_INIT(209), \ + _PyLong_DIGIT_INIT(210), \ + _PyLong_DIGIT_INIT(211), \ + _PyLong_DIGIT_INIT(212), \ + _PyLong_DIGIT_INIT(213), \ + _PyLong_DIGIT_INIT(214), \ + _PyLong_DIGIT_INIT(215), \ + _PyLong_DIGIT_INIT(216), \ + _PyLong_DIGIT_INIT(217), \ + _PyLong_DIGIT_INIT(218), \ + _PyLong_DIGIT_INIT(219), \ + _PyLong_DIGIT_INIT(220), \ + _PyLong_DIGIT_INIT(221), \ + _PyLong_DIGIT_INIT(222), \ + _PyLong_DIGIT_INIT(223), \ + _PyLong_DIGIT_INIT(224), \ + _PyLong_DIGIT_INIT(225), \ + _PyLong_DIGIT_INIT(226), \ + _PyLong_DIGIT_INIT(227), \ + _PyLong_DIGIT_INIT(228), \ + _PyLong_DIGIT_INIT(229), \ + _PyLong_DIGIT_INIT(230), \ + _PyLong_DIGIT_INIT(231), \ + _PyLong_DIGIT_INIT(232), \ + _PyLong_DIGIT_INIT(233), \ + _PyLong_DIGIT_INIT(234), \ + _PyLong_DIGIT_INIT(235), \ + _PyLong_DIGIT_INIT(236), \ + _PyLong_DIGIT_INIT(237), \ + _PyLong_DIGIT_INIT(238), \ + _PyLong_DIGIT_INIT(239), \ + _PyLong_DIGIT_INIT(240), \ + _PyLong_DIGIT_INIT(241), \ + _PyLong_DIGIT_INIT(242), \ + _PyLong_DIGIT_INIT(243), \ + _PyLong_DIGIT_INIT(244), \ + _PyLong_DIGIT_INIT(245), \ + _PyLong_DIGIT_INIT(246), \ + _PyLong_DIGIT_INIT(247), \ + _PyLong_DIGIT_INIT(248), \ + _PyLong_DIGIT_INIT(249), \ + _PyLong_DIGIT_INIT(250), \ + _PyLong_DIGIT_INIT(251), \ + _PyLong_DIGIT_INIT(252), \ + _PyLong_DIGIT_INIT(253), \ + _PyLong_DIGIT_INIT(254), \ + _PyLong_DIGIT_INIT(255), \ + _PyLong_DIGIT_INIT(256), \ + }, \ + \ + .bytes_empty = _PyBytes_SIMPLE_INIT(0, 0), \ + .bytes_characters = { \ + _PyBytes_CHAR_INIT(0), \ + _PyBytes_CHAR_INIT(1), \ + _PyBytes_CHAR_INIT(2), \ + _PyBytes_CHAR_INIT(3), \ + _PyBytes_CHAR_INIT(4), \ + _PyBytes_CHAR_INIT(5), \ + _PyBytes_CHAR_INIT(6), \ + _PyBytes_CHAR_INIT(7), \ + _PyBytes_CHAR_INIT(8), \ + _PyBytes_CHAR_INIT(9), \ + _PyBytes_CHAR_INIT(10), \ + _PyBytes_CHAR_INIT(11), \ + _PyBytes_CHAR_INIT(12), \ + _PyBytes_CHAR_INIT(13), \ + _PyBytes_CHAR_INIT(14), \ + _PyBytes_CHAR_INIT(15), \ + _PyBytes_CHAR_INIT(16), \ + _PyBytes_CHAR_INIT(17), \ + _PyBytes_CHAR_INIT(18), \ + _PyBytes_CHAR_INIT(19), \ + _PyBytes_CHAR_INIT(20), \ + _PyBytes_CHAR_INIT(21), \ + _PyBytes_CHAR_INIT(22), \ + _PyBytes_CHAR_INIT(23), \ + _PyBytes_CHAR_INIT(24), \ + _PyBytes_CHAR_INIT(25), \ + _PyBytes_CHAR_INIT(26), \ + _PyBytes_CHAR_INIT(27), \ + _PyBytes_CHAR_INIT(28), \ + _PyBytes_CHAR_INIT(29), \ + _PyBytes_CHAR_INIT(30), \ + _PyBytes_CHAR_INIT(31), \ + _PyBytes_CHAR_INIT(32), \ + _PyBytes_CHAR_INIT(33), \ + _PyBytes_CHAR_INIT(34), \ + _PyBytes_CHAR_INIT(35), \ + _PyBytes_CHAR_INIT(36), \ + _PyBytes_CHAR_INIT(37), \ + _PyBytes_CHAR_INIT(38), \ + _PyBytes_CHAR_INIT(39), \ + _PyBytes_CHAR_INIT(40), \ + _PyBytes_CHAR_INIT(41), \ + _PyBytes_CHAR_INIT(42), \ + _PyBytes_CHAR_INIT(43), \ + _PyBytes_CHAR_INIT(44), \ + _PyBytes_CHAR_INIT(45), \ + _PyBytes_CHAR_INIT(46), \ + _PyBytes_CHAR_INIT(47), \ + _PyBytes_CHAR_INIT(48), \ + _PyBytes_CHAR_INIT(49), \ + _PyBytes_CHAR_INIT(50), \ + _PyBytes_CHAR_INIT(51), \ + _PyBytes_CHAR_INIT(52), \ + _PyBytes_CHAR_INIT(53), \ + _PyBytes_CHAR_INIT(54), \ + _PyBytes_CHAR_INIT(55), \ + _PyBytes_CHAR_INIT(56), \ + _PyBytes_CHAR_INIT(57), \ + _PyBytes_CHAR_INIT(58), \ + _PyBytes_CHAR_INIT(59), \ + _PyBytes_CHAR_INIT(60), \ + _PyBytes_CHAR_INIT(61), \ + _PyBytes_CHAR_INIT(62), \ + _PyBytes_CHAR_INIT(63), \ + _PyBytes_CHAR_INIT(64), \ + _PyBytes_CHAR_INIT(65), \ + _PyBytes_CHAR_INIT(66), \ + _PyBytes_CHAR_INIT(67), \ + _PyBytes_CHAR_INIT(68), \ + _PyBytes_CHAR_INIT(69), \ + _PyBytes_CHAR_INIT(70), \ + _PyBytes_CHAR_INIT(71), \ + _PyBytes_CHAR_INIT(72), \ + _PyBytes_CHAR_INIT(73), \ + _PyBytes_CHAR_INIT(74), \ + _PyBytes_CHAR_INIT(75), \ + _PyBytes_CHAR_INIT(76), \ + _PyBytes_CHAR_INIT(77), \ + _PyBytes_CHAR_INIT(78), \ + _PyBytes_CHAR_INIT(79), \ + _PyBytes_CHAR_INIT(80), \ + _PyBytes_CHAR_INIT(81), \ + _PyBytes_CHAR_INIT(82), \ + _PyBytes_CHAR_INIT(83), \ + _PyBytes_CHAR_INIT(84), \ + _PyBytes_CHAR_INIT(85), \ + _PyBytes_CHAR_INIT(86), \ + _PyBytes_CHAR_INIT(87), \ + _PyBytes_CHAR_INIT(88), \ + _PyBytes_CHAR_INIT(89), \ + _PyBytes_CHAR_INIT(90), \ + _PyBytes_CHAR_INIT(91), \ + _PyBytes_CHAR_INIT(92), \ + _PyBytes_CHAR_INIT(93), \ + _PyBytes_CHAR_INIT(94), \ + _PyBytes_CHAR_INIT(95), \ + _PyBytes_CHAR_INIT(96), \ + _PyBytes_CHAR_INIT(97), \ + _PyBytes_CHAR_INIT(98), \ + _PyBytes_CHAR_INIT(99), \ + _PyBytes_CHAR_INIT(100), \ + _PyBytes_CHAR_INIT(101), \ + _PyBytes_CHAR_INIT(102), \ + _PyBytes_CHAR_INIT(103), \ + _PyBytes_CHAR_INIT(104), \ + _PyBytes_CHAR_INIT(105), \ + _PyBytes_CHAR_INIT(106), \ + _PyBytes_CHAR_INIT(107), \ + _PyBytes_CHAR_INIT(108), \ + _PyBytes_CHAR_INIT(109), \ + _PyBytes_CHAR_INIT(110), \ + _PyBytes_CHAR_INIT(111), \ + _PyBytes_CHAR_INIT(112), \ + _PyBytes_CHAR_INIT(113), \ + _PyBytes_CHAR_INIT(114), \ + _PyBytes_CHAR_INIT(115), \ + _PyBytes_CHAR_INIT(116), \ + _PyBytes_CHAR_INIT(117), \ + _PyBytes_CHAR_INIT(118), \ + _PyBytes_CHAR_INIT(119), \ + _PyBytes_CHAR_INIT(120), \ + _PyBytes_CHAR_INIT(121), \ + _PyBytes_CHAR_INIT(122), \ + _PyBytes_CHAR_INIT(123), \ + _PyBytes_CHAR_INIT(124), \ + _PyBytes_CHAR_INIT(125), \ + _PyBytes_CHAR_INIT(126), \ + _PyBytes_CHAR_INIT(127), \ + _PyBytes_CHAR_INIT(128), \ + _PyBytes_CHAR_INIT(129), \ + _PyBytes_CHAR_INIT(130), \ + _PyBytes_CHAR_INIT(131), \ + _PyBytes_CHAR_INIT(132), \ + _PyBytes_CHAR_INIT(133), \ + _PyBytes_CHAR_INIT(134), \ + _PyBytes_CHAR_INIT(135), \ + _PyBytes_CHAR_INIT(136), \ + _PyBytes_CHAR_INIT(137), \ + _PyBytes_CHAR_INIT(138), \ + _PyBytes_CHAR_INIT(139), \ + _PyBytes_CHAR_INIT(140), \ + _PyBytes_CHAR_INIT(141), \ + _PyBytes_CHAR_INIT(142), \ + _PyBytes_CHAR_INIT(143), \ + _PyBytes_CHAR_INIT(144), \ + _PyBytes_CHAR_INIT(145), \ + _PyBytes_CHAR_INIT(146), \ + _PyBytes_CHAR_INIT(147), \ + _PyBytes_CHAR_INIT(148), \ + _PyBytes_CHAR_INIT(149), \ + _PyBytes_CHAR_INIT(150), \ + _PyBytes_CHAR_INIT(151), \ + _PyBytes_CHAR_INIT(152), \ + _PyBytes_CHAR_INIT(153), \ + _PyBytes_CHAR_INIT(154), \ + _PyBytes_CHAR_INIT(155), \ + _PyBytes_CHAR_INIT(156), \ + _PyBytes_CHAR_INIT(157), \ + _PyBytes_CHAR_INIT(158), \ + _PyBytes_CHAR_INIT(159), \ + _PyBytes_CHAR_INIT(160), \ + _PyBytes_CHAR_INIT(161), \ + _PyBytes_CHAR_INIT(162), \ + _PyBytes_CHAR_INIT(163), \ + _PyBytes_CHAR_INIT(164), \ + _PyBytes_CHAR_INIT(165), \ + _PyBytes_CHAR_INIT(166), \ + _PyBytes_CHAR_INIT(167), \ + _PyBytes_CHAR_INIT(168), \ + _PyBytes_CHAR_INIT(169), \ + _PyBytes_CHAR_INIT(170), \ + _PyBytes_CHAR_INIT(171), \ + _PyBytes_CHAR_INIT(172), \ + _PyBytes_CHAR_INIT(173), \ + _PyBytes_CHAR_INIT(174), \ + _PyBytes_CHAR_INIT(175), \ + _PyBytes_CHAR_INIT(176), \ + _PyBytes_CHAR_INIT(177), \ + _PyBytes_CHAR_INIT(178), \ + _PyBytes_CHAR_INIT(179), \ + _PyBytes_CHAR_INIT(180), \ + _PyBytes_CHAR_INIT(181), \ + _PyBytes_CHAR_INIT(182), \ + _PyBytes_CHAR_INIT(183), \ + _PyBytes_CHAR_INIT(184), \ + _PyBytes_CHAR_INIT(185), \ + _PyBytes_CHAR_INIT(186), \ + _PyBytes_CHAR_INIT(187), \ + _PyBytes_CHAR_INIT(188), \ + _PyBytes_CHAR_INIT(189), \ + _PyBytes_CHAR_INIT(190), \ + _PyBytes_CHAR_INIT(191), \ + _PyBytes_CHAR_INIT(192), \ + _PyBytes_CHAR_INIT(193), \ + _PyBytes_CHAR_INIT(194), \ + _PyBytes_CHAR_INIT(195), \ + _PyBytes_CHAR_INIT(196), \ + _PyBytes_CHAR_INIT(197), \ + _PyBytes_CHAR_INIT(198), \ + _PyBytes_CHAR_INIT(199), \ + _PyBytes_CHAR_INIT(200), \ + _PyBytes_CHAR_INIT(201), \ + _PyBytes_CHAR_INIT(202), \ + _PyBytes_CHAR_INIT(203), \ + _PyBytes_CHAR_INIT(204), \ + _PyBytes_CHAR_INIT(205), \ + _PyBytes_CHAR_INIT(206), \ + _PyBytes_CHAR_INIT(207), \ + _PyBytes_CHAR_INIT(208), \ + _PyBytes_CHAR_INIT(209), \ + _PyBytes_CHAR_INIT(210), \ + _PyBytes_CHAR_INIT(211), \ + _PyBytes_CHAR_INIT(212), \ + _PyBytes_CHAR_INIT(213), \ + _PyBytes_CHAR_INIT(214), \ + _PyBytes_CHAR_INIT(215), \ + _PyBytes_CHAR_INIT(216), \ + _PyBytes_CHAR_INIT(217), \ + _PyBytes_CHAR_INIT(218), \ + _PyBytes_CHAR_INIT(219), \ + _PyBytes_CHAR_INIT(220), \ + _PyBytes_CHAR_INIT(221), \ + _PyBytes_CHAR_INIT(222), \ + _PyBytes_CHAR_INIT(223), \ + _PyBytes_CHAR_INIT(224), \ + _PyBytes_CHAR_INIT(225), \ + _PyBytes_CHAR_INIT(226), \ + _PyBytes_CHAR_INIT(227), \ + _PyBytes_CHAR_INIT(228), \ + _PyBytes_CHAR_INIT(229), \ + _PyBytes_CHAR_INIT(230), \ + _PyBytes_CHAR_INIT(231), \ + _PyBytes_CHAR_INIT(232), \ + _PyBytes_CHAR_INIT(233), \ + _PyBytes_CHAR_INIT(234), \ + _PyBytes_CHAR_INIT(235), \ + _PyBytes_CHAR_INIT(236), \ + _PyBytes_CHAR_INIT(237), \ + _PyBytes_CHAR_INIT(238), \ + _PyBytes_CHAR_INIT(239), \ + _PyBytes_CHAR_INIT(240), \ + _PyBytes_CHAR_INIT(241), \ + _PyBytes_CHAR_INIT(242), \ + _PyBytes_CHAR_INIT(243), \ + _PyBytes_CHAR_INIT(244), \ + _PyBytes_CHAR_INIT(245), \ + _PyBytes_CHAR_INIT(246), \ + _PyBytes_CHAR_INIT(247), \ + _PyBytes_CHAR_INIT(248), \ + _PyBytes_CHAR_INIT(249), \ + _PyBytes_CHAR_INIT(250), \ + _PyBytes_CHAR_INIT(251), \ + _PyBytes_CHAR_INIT(252), \ + _PyBytes_CHAR_INIT(253), \ + _PyBytes_CHAR_INIT(254), \ + _PyBytes_CHAR_INIT(255), \ + }, \ + \ + .strings = { \ + .literals = { \ + INIT_STR(anon_dictcomp, "<dictcomp>"), \ + INIT_STR(anon_genexpr, "<genexpr>"), \ + INIT_STR(anon_lambda, "<lambda>"), \ + INIT_STR(anon_listcomp, "<listcomp>"), \ + INIT_STR(anon_module, "<module>"), \ + INIT_STR(anon_setcomp, "<setcomp>"), \ + INIT_STR(anon_string, "<string>"), \ + INIT_STR(anon_unknown, "<unknown>"), \ + INIT_STR(close_br, "}"), \ + INIT_STR(comma_sep, ", "), \ + INIT_STR(dbl_close_br, "}}"), \ + INIT_STR(dbl_open_br, "{{"), \ + INIT_STR(dbl_percent, "%%"), \ + INIT_STR(dot, "."), \ + INIT_STR(dot_locals, ".<locals>"), \ + INIT_STR(empty, ""), \ + INIT_STR(list_err, "list index out of range"), \ + INIT_STR(newline, "\n"), \ + INIT_STR(open_br, "{"), \ + INIT_STR(percent, "%"), \ + INIT_STR(utf_8, "utf-8"), \ + }, \ + .identifiers = { \ + INIT_ID(False), \ + INIT_ID(Py_Repr), \ + INIT_ID(TextIOWrapper), \ + INIT_ID(True), \ + INIT_ID(WarningMessage), \ + INIT_ID(_), \ + INIT_ID(__IOBase_closed), \ + INIT_ID(__abc_tpflags__), \ + INIT_ID(__abs__), \ + INIT_ID(__abstractmethods__), \ + INIT_ID(__add__), \ + INIT_ID(__aenter__), \ + INIT_ID(__aexit__), \ + INIT_ID(__aiter__), \ + INIT_ID(__all__), \ + INIT_ID(__and__), \ + INIT_ID(__anext__), \ + INIT_ID(__annotations__), \ + INIT_ID(__args__), \ + INIT_ID(__await__), \ + INIT_ID(__bases__), \ + INIT_ID(__bool__), \ + INIT_ID(__build_class__), \ + INIT_ID(__builtins__), \ + INIT_ID(__bytes__), \ + INIT_ID(__call__), \ + INIT_ID(__cantrace__), \ + INIT_ID(__class__), \ + INIT_ID(__class_getitem__), \ + INIT_ID(__classcell__), \ + INIT_ID(__complex__), \ + INIT_ID(__contains__), \ + INIT_ID(__copy__), \ + INIT_ID(__del__), \ + INIT_ID(__delattr__), \ + INIT_ID(__delete__), \ + INIT_ID(__delitem__), \ + INIT_ID(__dict__), \ + INIT_ID(__dir__), \ + INIT_ID(__divmod__), \ + INIT_ID(__doc__), \ + INIT_ID(__enter__), \ + INIT_ID(__eq__), \ + INIT_ID(__exit__), \ + INIT_ID(__file__), \ + INIT_ID(__float__), \ + INIT_ID(__floordiv__), \ + INIT_ID(__format__), \ + INIT_ID(__fspath__), \ + INIT_ID(__ge__), \ + INIT_ID(__get__), \ + INIT_ID(__getattr__), \ + INIT_ID(__getattribute__), \ + INIT_ID(__getinitargs__), \ + INIT_ID(__getitem__), \ + INIT_ID(__getnewargs__), \ + INIT_ID(__getnewargs_ex__), \ + INIT_ID(__getstate__), \ + INIT_ID(__gt__), \ + INIT_ID(__hash__), \ + INIT_ID(__iadd__), \ + INIT_ID(__iand__), \ + INIT_ID(__ifloordiv__), \ + INIT_ID(__ilshift__), \ + INIT_ID(__imatmul__), \ + INIT_ID(__imod__), \ + INIT_ID(__import__), \ + INIT_ID(__imul__), \ + INIT_ID(__index__), \ + INIT_ID(__init__), \ + INIT_ID(__init_subclass__), \ + INIT_ID(__instancecheck__), \ + INIT_ID(__int__), \ + INIT_ID(__invert__), \ + INIT_ID(__ior__), \ + INIT_ID(__ipow__), \ + INIT_ID(__irshift__), \ + INIT_ID(__isabstractmethod__), \ + INIT_ID(__isub__), \ + INIT_ID(__iter__), \ + INIT_ID(__itruediv__), \ + INIT_ID(__ixor__), \ + INIT_ID(__le__), \ + INIT_ID(__len__), \ + INIT_ID(__length_hint__), \ + INIT_ID(__lltrace__), \ + INIT_ID(__loader__), \ + INIT_ID(__lshift__), \ + INIT_ID(__lt__), \ + INIT_ID(__main__), \ + INIT_ID(__matmul__), \ + INIT_ID(__missing__), \ + INIT_ID(__mod__), \ + INIT_ID(__module__), \ + INIT_ID(__mro_entries__), \ + INIT_ID(__mul__), \ + INIT_ID(__name__), \ + INIT_ID(__ne__), \ + INIT_ID(__neg__), \ + INIT_ID(__new__), \ + INIT_ID(__newobj__), \ + INIT_ID(__newobj_ex__), \ + INIT_ID(__next__), \ + INIT_ID(__notes__), \ + INIT_ID(__or__), \ + INIT_ID(__orig_class__), \ + INIT_ID(__origin__), \ + INIT_ID(__package__), \ + INIT_ID(__parameters__), \ + INIT_ID(__path__), \ + INIT_ID(__pos__), \ + INIT_ID(__pow__), \ + INIT_ID(__prepare__), \ + INIT_ID(__qualname__), \ + INIT_ID(__radd__), \ + INIT_ID(__rand__), \ + INIT_ID(__rdivmod__), \ + INIT_ID(__reduce__), \ + INIT_ID(__reduce_ex__), \ + INIT_ID(__repr__), \ + INIT_ID(__reversed__), \ + INIT_ID(__rfloordiv__), \ + INIT_ID(__rlshift__), \ + INIT_ID(__rmatmul__), \ + INIT_ID(__rmod__), \ + INIT_ID(__rmul__), \ + INIT_ID(__ror__), \ + INIT_ID(__round__), \ + INIT_ID(__rpow__), \ + INIT_ID(__rrshift__), \ + INIT_ID(__rshift__), \ + INIT_ID(__rsub__), \ + INIT_ID(__rtruediv__), \ + INIT_ID(__rxor__), \ + INIT_ID(__set__), \ + INIT_ID(__set_name__), \ + INIT_ID(__setattr__), \ + INIT_ID(__setitem__), \ + INIT_ID(__setstate__), \ + INIT_ID(__sizeof__), \ + INIT_ID(__slotnames__), \ + INIT_ID(__slots__), \ + INIT_ID(__spec__), \ + INIT_ID(__str__), \ + INIT_ID(__sub__), \ + INIT_ID(__subclasscheck__), \ + INIT_ID(__subclasshook__), \ + INIT_ID(__truediv__), \ + INIT_ID(__trunc__), \ + INIT_ID(__typing_is_unpacked_typevartuple__), \ + INIT_ID(__typing_subst__), \ + INIT_ID(__typing_unpacked_tuple_args__), \ + INIT_ID(__warningregistry__), \ + INIT_ID(__weakref__), \ + INIT_ID(__xor__), \ + INIT_ID(_abc_impl), \ + INIT_ID(_annotation), \ + INIT_ID(_blksize), \ + INIT_ID(_bootstrap), \ + INIT_ID(_dealloc_warn), \ + INIT_ID(_finalizing), \ + INIT_ID(_find_and_load), \ + INIT_ID(_fix_up_module), \ + INIT_ID(_get_sourcefile), \ + INIT_ID(_handle_fromlist), \ + INIT_ID(_initializing), \ + INIT_ID(_is_text_encoding), \ + INIT_ID(_lock_unlock_module), \ + INIT_ID(_showwarnmsg), \ + INIT_ID(_shutdown), \ + INIT_ID(_slotnames), \ + INIT_ID(_strptime_time), \ + INIT_ID(_uninitialized_submodules), \ + INIT_ID(_warn_unawaited_coroutine), \ + INIT_ID(_xoptions), \ + INIT_ID(add), \ + INIT_ID(append), \ + INIT_ID(big), \ + INIT_ID(buffer), \ + INIT_ID(builtins), \ + INIT_ID(c_call), \ + INIT_ID(c_exception), \ + INIT_ID(c_return), \ + INIT_ID(call), \ + INIT_ID(clear), \ + INIT_ID(close), \ + INIT_ID(closed), \ + INIT_ID(code), \ + INIT_ID(copy), \ + INIT_ID(copyreg), \ + INIT_ID(decode), \ + INIT_ID(default), \ + INIT_ID(defaultaction), \ + INIT_ID(dictcomp), \ + INIT_ID(difference_update), \ + INIT_ID(dispatch_table), \ + INIT_ID(displayhook), \ + INIT_ID(enable), \ + INIT_ID(encode), \ + INIT_ID(encoding), \ + INIT_ID(end_lineno), \ + INIT_ID(end_offset), \ + INIT_ID(errors), \ + INIT_ID(excepthook), \ + INIT_ID(exception), \ + INIT_ID(extend), \ + INIT_ID(filename), \ + INIT_ID(fileno), \ + INIT_ID(fillvalue), \ + INIT_ID(filters), \ + INIT_ID(find_class), \ + INIT_ID(flush), \ + INIT_ID(genexpr), \ + INIT_ID(get), \ + INIT_ID(get_source), \ + INIT_ID(getattr), \ + INIT_ID(getstate), \ + INIT_ID(ignore), \ + INIT_ID(importlib), \ + INIT_ID(inf), \ + INIT_ID(intersection), \ + INIT_ID(isatty), \ + INIT_ID(isinstance), \ + INIT_ID(items), \ + INIT_ID(iter), \ + INIT_ID(join), \ + INIT_ID(keys), \ + INIT_ID(lambda), \ + INIT_ID(last_traceback), \ + INIT_ID(last_type), \ + INIT_ID(last_value), \ + INIT_ID(latin1), \ + INIT_ID(len), \ + INIT_ID(line), \ + INIT_ID(lineno), \ + INIT_ID(listcomp), \ + INIT_ID(little), \ + INIT_ID(locale), \ + INIT_ID(match), \ + INIT_ID(metaclass), \ + INIT_ID(mode), \ + INIT_ID(modules), \ + INIT_ID(mro), \ + INIT_ID(msg), \ + INIT_ID(n_fields), \ + INIT_ID(n_sequence_fields), \ + INIT_ID(n_unnamed_fields), \ + INIT_ID(name), \ + INIT_ID(newlines), \ + INIT_ID(next), \ + INIT_ID(obj), \ + INIT_ID(offset), \ + INIT_ID(onceregistry), \ + INIT_ID(opcode), \ + INIT_ID(open), \ + INIT_ID(parent), \ + INIT_ID(partial), \ + INIT_ID(path), \ + INIT_ID(peek), \ + INIT_ID(persistent_id), \ + INIT_ID(persistent_load), \ + INIT_ID(print_file_and_line), \ + INIT_ID(ps1), \ + INIT_ID(ps2), \ + INIT_ID(raw), \ + INIT_ID(read), \ + INIT_ID(read1), \ + INIT_ID(readable), \ + INIT_ID(readall), \ + INIT_ID(readinto), \ + INIT_ID(readinto1), \ + INIT_ID(readline), \ + INIT_ID(reducer_override), \ + INIT_ID(reload), \ + INIT_ID(replace), \ + INIT_ID(reset), \ + INIT_ID(return), \ + INIT_ID(reversed), \ + INIT_ID(seek), \ + INIT_ID(seekable), \ + INIT_ID(send), \ + INIT_ID(setcomp), \ + INIT_ID(setstate), \ + INIT_ID(sort), \ + INIT_ID(stderr), \ + INIT_ID(stdin), \ + INIT_ID(stdout), \ + INIT_ID(strict), \ + INIT_ID(symmetric_difference_update), \ + INIT_ID(tell), \ + INIT_ID(text), \ + INIT_ID(threading), \ + INIT_ID(throw), \ + INIT_ID(top), \ + INIT_ID(truncate), \ + INIT_ID(unraisablehook), \ + INIT_ID(values), \ + INIT_ID(version), \ + INIT_ID(warnings), \ + INIT_ID(warnoptions), \ + INIT_ID(writable), \ + INIT_ID(write), \ + INIT_ID(zipimporter), \ + }, \ + .ascii = { \ + _PyASCIIObject_INIT("\x00"), \ + _PyASCIIObject_INIT("\x01"), \ + _PyASCIIObject_INIT("\x02"), \ + _PyASCIIObject_INIT("\x03"), \ + _PyASCIIObject_INIT("\x04"), \ + _PyASCIIObject_INIT("\x05"), \ + _PyASCIIObject_INIT("\x06"), \ + _PyASCIIObject_INIT("\x07"), \ + _PyASCIIObject_INIT("\x08"), \ + _PyASCIIObject_INIT("\x09"), \ + _PyASCIIObject_INIT("\x0a"), \ + _PyASCIIObject_INIT("\x0b"), \ + _PyASCIIObject_INIT("\x0c"), \ + _PyASCIIObject_INIT("\x0d"), \ + _PyASCIIObject_INIT("\x0e"), \ + _PyASCIIObject_INIT("\x0f"), \ + _PyASCIIObject_INIT("\x10"), \ + _PyASCIIObject_INIT("\x11"), \ + _PyASCIIObject_INIT("\x12"), \ + _PyASCIIObject_INIT("\x13"), \ + _PyASCIIObject_INIT("\x14"), \ + _PyASCIIObject_INIT("\x15"), \ + _PyASCIIObject_INIT("\x16"), \ + _PyASCIIObject_INIT("\x17"), \ + _PyASCIIObject_INIT("\x18"), \ + _PyASCIIObject_INIT("\x19"), \ + _PyASCIIObject_INIT("\x1a"), \ + _PyASCIIObject_INIT("\x1b"), \ + _PyASCIIObject_INIT("\x1c"), \ + _PyASCIIObject_INIT("\x1d"), \ + _PyASCIIObject_INIT("\x1e"), \ + _PyASCIIObject_INIT("\x1f"), \ + _PyASCIIObject_INIT("\x20"), \ + _PyASCIIObject_INIT("\x21"), \ + _PyASCIIObject_INIT("\x22"), \ + _PyASCIIObject_INIT("\x23"), \ + _PyASCIIObject_INIT("\x24"), \ + _PyASCIIObject_INIT("\x25"), \ + _PyASCIIObject_INIT("\x26"), \ + _PyASCIIObject_INIT("\x27"), \ + _PyASCIIObject_INIT("\x28"), \ + _PyASCIIObject_INIT("\x29"), \ + _PyASCIIObject_INIT("\x2a"), \ + _PyASCIIObject_INIT("\x2b"), \ + _PyASCIIObject_INIT("\x2c"), \ + _PyASCIIObject_INIT("\x2d"), \ + _PyASCIIObject_INIT("\x2e"), \ + _PyASCIIObject_INIT("\x2f"), \ + _PyASCIIObject_INIT("\x30"), \ + _PyASCIIObject_INIT("\x31"), \ + _PyASCIIObject_INIT("\x32"), \ + _PyASCIIObject_INIT("\x33"), \ + _PyASCIIObject_INIT("\x34"), \ + _PyASCIIObject_INIT("\x35"), \ + _PyASCIIObject_INIT("\x36"), \ + _PyASCIIObject_INIT("\x37"), \ + _PyASCIIObject_INIT("\x38"), \ + _PyASCIIObject_INIT("\x39"), \ + _PyASCIIObject_INIT("\x3a"), \ + _PyASCIIObject_INIT("\x3b"), \ + _PyASCIIObject_INIT("\x3c"), \ + _PyASCIIObject_INIT("\x3d"), \ + _PyASCIIObject_INIT("\x3e"), \ + _PyASCIIObject_INIT("\x3f"), \ + _PyASCIIObject_INIT("\x40"), \ + _PyASCIIObject_INIT("\x41"), \ + _PyASCIIObject_INIT("\x42"), \ + _PyASCIIObject_INIT("\x43"), \ + _PyASCIIObject_INIT("\x44"), \ + _PyASCIIObject_INIT("\x45"), \ + _PyASCIIObject_INIT("\x46"), \ + _PyASCIIObject_INIT("\x47"), \ + _PyASCIIObject_INIT("\x48"), \ + _PyASCIIObject_INIT("\x49"), \ + _PyASCIIObject_INIT("\x4a"), \ + _PyASCIIObject_INIT("\x4b"), \ + _PyASCIIObject_INIT("\x4c"), \ + _PyASCIIObject_INIT("\x4d"), \ + _PyASCIIObject_INIT("\x4e"), \ + _PyASCIIObject_INIT("\x4f"), \ + _PyASCIIObject_INIT("\x50"), \ + _PyASCIIObject_INIT("\x51"), \ + _PyASCIIObject_INIT("\x52"), \ + _PyASCIIObject_INIT("\x53"), \ + _PyASCIIObject_INIT("\x54"), \ + _PyASCIIObject_INIT("\x55"), \ + _PyASCIIObject_INIT("\x56"), \ + _PyASCIIObject_INIT("\x57"), \ + _PyASCIIObject_INIT("\x58"), \ + _PyASCIIObject_INIT("\x59"), \ + _PyASCIIObject_INIT("\x5a"), \ + _PyASCIIObject_INIT("\x5b"), \ + _PyASCIIObject_INIT("\x5c"), \ + _PyASCIIObject_INIT("\x5d"), \ + _PyASCIIObject_INIT("\x5e"), \ + _PyASCIIObject_INIT("\x5f"), \ + _PyASCIIObject_INIT("\x60"), \ + _PyASCIIObject_INIT("\x61"), \ + _PyASCIIObject_INIT("\x62"), \ + _PyASCIIObject_INIT("\x63"), \ + _PyASCIIObject_INIT("\x64"), \ + _PyASCIIObject_INIT("\x65"), \ + _PyASCIIObject_INIT("\x66"), \ + _PyASCIIObject_INIT("\x67"), \ + _PyASCIIObject_INIT("\x68"), \ + _PyASCIIObject_INIT("\x69"), \ + _PyASCIIObject_INIT("\x6a"), \ + _PyASCIIObject_INIT("\x6b"), \ + _PyASCIIObject_INIT("\x6c"), \ + _PyASCIIObject_INIT("\x6d"), \ + _PyASCIIObject_INIT("\x6e"), \ + _PyASCIIObject_INIT("\x6f"), \ + _PyASCIIObject_INIT("\x70"), \ + _PyASCIIObject_INIT("\x71"), \ + _PyASCIIObject_INIT("\x72"), \ + _PyASCIIObject_INIT("\x73"), \ + _PyASCIIObject_INIT("\x74"), \ + _PyASCIIObject_INIT("\x75"), \ + _PyASCIIObject_INIT("\x76"), \ + _PyASCIIObject_INIT("\x77"), \ + _PyASCIIObject_INIT("\x78"), \ + _PyASCIIObject_INIT("\x79"), \ + _PyASCIIObject_INIT("\x7a"), \ + _PyASCIIObject_INIT("\x7b"), \ + _PyASCIIObject_INIT("\x7c"), \ + _PyASCIIObject_INIT("\x7d"), \ + _PyASCIIObject_INIT("\x7e"), \ + _PyASCIIObject_INIT("\x7f"), \ + }, \ + .latin1 = { \ + _PyUnicode_LATIN1_INIT("\x80"), \ + _PyUnicode_LATIN1_INIT("\x81"), \ + _PyUnicode_LATIN1_INIT("\x82"), \ + _PyUnicode_LATIN1_INIT("\x83"), \ + _PyUnicode_LATIN1_INIT("\x84"), \ + _PyUnicode_LATIN1_INIT("\x85"), \ + _PyUnicode_LATIN1_INIT("\x86"), \ + _PyUnicode_LATIN1_INIT("\x87"), \ + _PyUnicode_LATIN1_INIT("\x88"), \ + _PyUnicode_LATIN1_INIT("\x89"), \ + _PyUnicode_LATIN1_INIT("\x8a"), \ + _PyUnicode_LATIN1_INIT("\x8b"), \ + _PyUnicode_LATIN1_INIT("\x8c"), \ + _PyUnicode_LATIN1_INIT("\x8d"), \ + _PyUnicode_LATIN1_INIT("\x8e"), \ + _PyUnicode_LATIN1_INIT("\x8f"), \ + _PyUnicode_LATIN1_INIT("\x90"), \ + _PyUnicode_LATIN1_INIT("\x91"), \ + _PyUnicode_LATIN1_INIT("\x92"), \ + _PyUnicode_LATIN1_INIT("\x93"), \ + _PyUnicode_LATIN1_INIT("\x94"), \ + _PyUnicode_LATIN1_INIT("\x95"), \ + _PyUnicode_LATIN1_INIT("\x96"), \ + _PyUnicode_LATIN1_INIT("\x97"), \ + _PyUnicode_LATIN1_INIT("\x98"), \ + _PyUnicode_LATIN1_INIT("\x99"), \ + _PyUnicode_LATIN1_INIT("\x9a"), \ + _PyUnicode_LATIN1_INIT("\x9b"), \ + _PyUnicode_LATIN1_INIT("\x9c"), \ + _PyUnicode_LATIN1_INIT("\x9d"), \ + _PyUnicode_LATIN1_INIT("\x9e"), \ + _PyUnicode_LATIN1_INIT("\x9f"), \ + _PyUnicode_LATIN1_INIT("\xa0"), \ + _PyUnicode_LATIN1_INIT("\xa1"), \ + _PyUnicode_LATIN1_INIT("\xa2"), \ + _PyUnicode_LATIN1_INIT("\xa3"), \ + _PyUnicode_LATIN1_INIT("\xa4"), \ + _PyUnicode_LATIN1_INIT("\xa5"), \ + _PyUnicode_LATIN1_INIT("\xa6"), \ + _PyUnicode_LATIN1_INIT("\xa7"), \ + _PyUnicode_LATIN1_INIT("\xa8"), \ + _PyUnicode_LATIN1_INIT("\xa9"), \ + _PyUnicode_LATIN1_INIT("\xaa"), \ + _PyUnicode_LATIN1_INIT("\xab"), \ + _PyUnicode_LATIN1_INIT("\xac"), \ + _PyUnicode_LATIN1_INIT("\xad"), \ + _PyUnicode_LATIN1_INIT("\xae"), \ + _PyUnicode_LATIN1_INIT("\xaf"), \ + _PyUnicode_LATIN1_INIT("\xb0"), \ + _PyUnicode_LATIN1_INIT("\xb1"), \ + _PyUnicode_LATIN1_INIT("\xb2"), \ + _PyUnicode_LATIN1_INIT("\xb3"), \ + _PyUnicode_LATIN1_INIT("\xb4"), \ + _PyUnicode_LATIN1_INIT("\xb5"), \ + _PyUnicode_LATIN1_INIT("\xb6"), \ + _PyUnicode_LATIN1_INIT("\xb7"), \ + _PyUnicode_LATIN1_INIT("\xb8"), \ + _PyUnicode_LATIN1_INIT("\xb9"), \ + _PyUnicode_LATIN1_INIT("\xba"), \ + _PyUnicode_LATIN1_INIT("\xbb"), \ + _PyUnicode_LATIN1_INIT("\xbc"), \ + _PyUnicode_LATIN1_INIT("\xbd"), \ + _PyUnicode_LATIN1_INIT("\xbe"), \ + _PyUnicode_LATIN1_INIT("\xbf"), \ + _PyUnicode_LATIN1_INIT("\xc0"), \ + _PyUnicode_LATIN1_INIT("\xc1"), \ + _PyUnicode_LATIN1_INIT("\xc2"), \ + _PyUnicode_LATIN1_INIT("\xc3"), \ + _PyUnicode_LATIN1_INIT("\xc4"), \ + _PyUnicode_LATIN1_INIT("\xc5"), \ + _PyUnicode_LATIN1_INIT("\xc6"), \ + _PyUnicode_LATIN1_INIT("\xc7"), \ + _PyUnicode_LATIN1_INIT("\xc8"), \ + _PyUnicode_LATIN1_INIT("\xc9"), \ + _PyUnicode_LATIN1_INIT("\xca"), \ + _PyUnicode_LATIN1_INIT("\xcb"), \ + _PyUnicode_LATIN1_INIT("\xcc"), \ + _PyUnicode_LATIN1_INIT("\xcd"), \ + _PyUnicode_LATIN1_INIT("\xce"), \ + _PyUnicode_LATIN1_INIT("\xcf"), \ + _PyUnicode_LATIN1_INIT("\xd0"), \ + _PyUnicode_LATIN1_INIT("\xd1"), \ + _PyUnicode_LATIN1_INIT("\xd2"), \ + _PyUnicode_LATIN1_INIT("\xd3"), \ + _PyUnicode_LATIN1_INIT("\xd4"), \ + _PyUnicode_LATIN1_INIT("\xd5"), \ + _PyUnicode_LATIN1_INIT("\xd6"), \ + _PyUnicode_LATIN1_INIT("\xd7"), \ + _PyUnicode_LATIN1_INIT("\xd8"), \ + _PyUnicode_LATIN1_INIT("\xd9"), \ + _PyUnicode_LATIN1_INIT("\xda"), \ + _PyUnicode_LATIN1_INIT("\xdb"), \ + _PyUnicode_LATIN1_INIT("\xdc"), \ + _PyUnicode_LATIN1_INIT("\xdd"), \ + _PyUnicode_LATIN1_INIT("\xde"), \ + _PyUnicode_LATIN1_INIT("\xdf"), \ + _PyUnicode_LATIN1_INIT("\xe0"), \ + _PyUnicode_LATIN1_INIT("\xe1"), \ + _PyUnicode_LATIN1_INIT("\xe2"), \ + _PyUnicode_LATIN1_INIT("\xe3"), \ + _PyUnicode_LATIN1_INIT("\xe4"), \ + _PyUnicode_LATIN1_INIT("\xe5"), \ + _PyUnicode_LATIN1_INIT("\xe6"), \ + _PyUnicode_LATIN1_INIT("\xe7"), \ + _PyUnicode_LATIN1_INIT("\xe8"), \ + _PyUnicode_LATIN1_INIT("\xe9"), \ + _PyUnicode_LATIN1_INIT("\xea"), \ + _PyUnicode_LATIN1_INIT("\xeb"), \ + _PyUnicode_LATIN1_INIT("\xec"), \ + _PyUnicode_LATIN1_INIT("\xed"), \ + _PyUnicode_LATIN1_INIT("\xee"), \ + _PyUnicode_LATIN1_INIT("\xef"), \ + _PyUnicode_LATIN1_INIT("\xf0"), \ + _PyUnicode_LATIN1_INIT("\xf1"), \ + _PyUnicode_LATIN1_INIT("\xf2"), \ + _PyUnicode_LATIN1_INIT("\xf3"), \ + _PyUnicode_LATIN1_INIT("\xf4"), \ + _PyUnicode_LATIN1_INIT("\xf5"), \ + _PyUnicode_LATIN1_INIT("\xf6"), \ + _PyUnicode_LATIN1_INIT("\xf7"), \ + _PyUnicode_LATIN1_INIT("\xf8"), \ + _PyUnicode_LATIN1_INIT("\xf9"), \ + _PyUnicode_LATIN1_INIT("\xfa"), \ + _PyUnicode_LATIN1_INIT("\xfb"), \ + _PyUnicode_LATIN1_INIT("\xfc"), \ + _PyUnicode_LATIN1_INIT("\xfd"), \ + _PyUnicode_LATIN1_INIT("\xfe"), \ + _PyUnicode_LATIN1_INIT("\xff"), \ + }, \ + }, \ + \ + .tuple_empty = { \ + .ob_base = _PyVarObject_IMMORTAL_INIT(&PyTuple_Type, 0) \ + }, \ + }, \ +} +/* End auto-generated code */ + #ifdef __cplusplus } diff --git a/Include/internal/pycore_runtime_init_generated.h b/Include/internal/pycore_runtime_init_generated.h deleted file mode 100644 index 32ff57b731e1a0..00000000000000 --- a/Include/internal/pycore_runtime_init_generated.h +++ /dev/null @@ -1,8200 +0,0 @@ -#ifndef Py_INTERNAL_RUNTIME_INIT_GENERATED_H -#define Py_INTERNAL_RUNTIME_INIT_GENERATED_H -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef Py_BUILD_CORE -# error "this header requires Py_BUILD_CORE define" -#endif - -/* The following is auto-generated by Tools/scripts/generate_global_objects.py. */ -#define _Py_global_objects_INIT { \ - .singletons = { \ - .small_ints = { \ - _PyLong_DIGIT_INIT(-5), \ - _PyLong_DIGIT_INIT(-4), \ - _PyLong_DIGIT_INIT(-3), \ - _PyLong_DIGIT_INIT(-2), \ - _PyLong_DIGIT_INIT(-1), \ - _PyLong_DIGIT_INIT(0), \ - _PyLong_DIGIT_INIT(1), \ - _PyLong_DIGIT_INIT(2), \ - _PyLong_DIGIT_INIT(3), \ - _PyLong_DIGIT_INIT(4), \ - _PyLong_DIGIT_INIT(5), \ - _PyLong_DIGIT_INIT(6), \ - _PyLong_DIGIT_INIT(7), \ - _PyLong_DIGIT_INIT(8), \ - _PyLong_DIGIT_INIT(9), \ - _PyLong_DIGIT_INIT(10), \ - _PyLong_DIGIT_INIT(11), \ - _PyLong_DIGIT_INIT(12), \ - _PyLong_DIGIT_INIT(13), \ - _PyLong_DIGIT_INIT(14), \ - _PyLong_DIGIT_INIT(15), \ - _PyLong_DIGIT_INIT(16), \ - _PyLong_DIGIT_INIT(17), \ - _PyLong_DIGIT_INIT(18), \ - _PyLong_DIGIT_INIT(19), \ - _PyLong_DIGIT_INIT(20), \ - _PyLong_DIGIT_INIT(21), \ - _PyLong_DIGIT_INIT(22), \ - _PyLong_DIGIT_INIT(23), \ - _PyLong_DIGIT_INIT(24), \ - _PyLong_DIGIT_INIT(25), \ - _PyLong_DIGIT_INIT(26), \ - _PyLong_DIGIT_INIT(27), \ - _PyLong_DIGIT_INIT(28), \ - _PyLong_DIGIT_INIT(29), \ - _PyLong_DIGIT_INIT(30), \ - _PyLong_DIGIT_INIT(31), \ - _PyLong_DIGIT_INIT(32), \ - _PyLong_DIGIT_INIT(33), \ - _PyLong_DIGIT_INIT(34), \ - _PyLong_DIGIT_INIT(35), \ - _PyLong_DIGIT_INIT(36), \ - _PyLong_DIGIT_INIT(37), \ - _PyLong_DIGIT_INIT(38), \ - _PyLong_DIGIT_INIT(39), \ - _PyLong_DIGIT_INIT(40), \ - _PyLong_DIGIT_INIT(41), \ - _PyLong_DIGIT_INIT(42), \ - _PyLong_DIGIT_INIT(43), \ - _PyLong_DIGIT_INIT(44), \ - _PyLong_DIGIT_INIT(45), \ - _PyLong_DIGIT_INIT(46), \ - _PyLong_DIGIT_INIT(47), \ - _PyLong_DIGIT_INIT(48), \ - _PyLong_DIGIT_INIT(49), \ - _PyLong_DIGIT_INIT(50), \ - _PyLong_DIGIT_INIT(51), \ - _PyLong_DIGIT_INIT(52), \ - _PyLong_DIGIT_INIT(53), \ - _PyLong_DIGIT_INIT(54), \ - _PyLong_DIGIT_INIT(55), \ - _PyLong_DIGIT_INIT(56), \ - _PyLong_DIGIT_INIT(57), \ - _PyLong_DIGIT_INIT(58), \ - _PyLong_DIGIT_INIT(59), \ - _PyLong_DIGIT_INIT(60), \ - _PyLong_DIGIT_INIT(61), \ - _PyLong_DIGIT_INIT(62), \ - _PyLong_DIGIT_INIT(63), \ - _PyLong_DIGIT_INIT(64), \ - _PyLong_DIGIT_INIT(65), \ - _PyLong_DIGIT_INIT(66), \ - _PyLong_DIGIT_INIT(67), \ - _PyLong_DIGIT_INIT(68), \ - _PyLong_DIGIT_INIT(69), \ - _PyLong_DIGIT_INIT(70), \ - _PyLong_DIGIT_INIT(71), \ - _PyLong_DIGIT_INIT(72), \ - _PyLong_DIGIT_INIT(73), \ - _PyLong_DIGIT_INIT(74), \ - _PyLong_DIGIT_INIT(75), \ - _PyLong_DIGIT_INIT(76), \ - _PyLong_DIGIT_INIT(77), \ - _PyLong_DIGIT_INIT(78), \ - _PyLong_DIGIT_INIT(79), \ - _PyLong_DIGIT_INIT(80), \ - _PyLong_DIGIT_INIT(81), \ - _PyLong_DIGIT_INIT(82), \ - _PyLong_DIGIT_INIT(83), \ - _PyLong_DIGIT_INIT(84), \ - _PyLong_DIGIT_INIT(85), \ - _PyLong_DIGIT_INIT(86), \ - _PyLong_DIGIT_INIT(87), \ - _PyLong_DIGIT_INIT(88), \ - _PyLong_DIGIT_INIT(89), \ - _PyLong_DIGIT_INIT(90), \ - _PyLong_DIGIT_INIT(91), \ - _PyLong_DIGIT_INIT(92), \ - _PyLong_DIGIT_INIT(93), \ - _PyLong_DIGIT_INIT(94), \ - _PyLong_DIGIT_INIT(95), \ - _PyLong_DIGIT_INIT(96), \ - _PyLong_DIGIT_INIT(97), \ - _PyLong_DIGIT_INIT(98), \ - _PyLong_DIGIT_INIT(99), \ - _PyLong_DIGIT_INIT(100), \ - _PyLong_DIGIT_INIT(101), \ - _PyLong_DIGIT_INIT(102), \ - _PyLong_DIGIT_INIT(103), \ - _PyLong_DIGIT_INIT(104), \ - _PyLong_DIGIT_INIT(105), \ - _PyLong_DIGIT_INIT(106), \ - _PyLong_DIGIT_INIT(107), \ - _PyLong_DIGIT_INIT(108), \ - _PyLong_DIGIT_INIT(109), \ - _PyLong_DIGIT_INIT(110), \ - _PyLong_DIGIT_INIT(111), \ - _PyLong_DIGIT_INIT(112), \ - _PyLong_DIGIT_INIT(113), \ - _PyLong_DIGIT_INIT(114), \ - _PyLong_DIGIT_INIT(115), \ - _PyLong_DIGIT_INIT(116), \ - _PyLong_DIGIT_INIT(117), \ - _PyLong_DIGIT_INIT(118), \ - _PyLong_DIGIT_INIT(119), \ - _PyLong_DIGIT_INIT(120), \ - _PyLong_DIGIT_INIT(121), \ - _PyLong_DIGIT_INIT(122), \ - _PyLong_DIGIT_INIT(123), \ - _PyLong_DIGIT_INIT(124), \ - _PyLong_DIGIT_INIT(125), \ - _PyLong_DIGIT_INIT(126), \ - _PyLong_DIGIT_INIT(127), \ - _PyLong_DIGIT_INIT(128), \ - _PyLong_DIGIT_INIT(129), \ - _PyLong_DIGIT_INIT(130), \ - _PyLong_DIGIT_INIT(131), \ - _PyLong_DIGIT_INIT(132), \ - _PyLong_DIGIT_INIT(133), \ - _PyLong_DIGIT_INIT(134), \ - _PyLong_DIGIT_INIT(135), \ - _PyLong_DIGIT_INIT(136), \ - _PyLong_DIGIT_INIT(137), \ - _PyLong_DIGIT_INIT(138), \ - _PyLong_DIGIT_INIT(139), \ - _PyLong_DIGIT_INIT(140), \ - _PyLong_DIGIT_INIT(141), \ - _PyLong_DIGIT_INIT(142), \ - _PyLong_DIGIT_INIT(143), \ - _PyLong_DIGIT_INIT(144), \ - _PyLong_DIGIT_INIT(145), \ - _PyLong_DIGIT_INIT(146), \ - _PyLong_DIGIT_INIT(147), \ - _PyLong_DIGIT_INIT(148), \ - _PyLong_DIGIT_INIT(149), \ - _PyLong_DIGIT_INIT(150), \ - _PyLong_DIGIT_INIT(151), \ - _PyLong_DIGIT_INIT(152), \ - _PyLong_DIGIT_INIT(153), \ - _PyLong_DIGIT_INIT(154), \ - _PyLong_DIGIT_INIT(155), \ - _PyLong_DIGIT_INIT(156), \ - _PyLong_DIGIT_INIT(157), \ - _PyLong_DIGIT_INIT(158), \ - _PyLong_DIGIT_INIT(159), \ - _PyLong_DIGIT_INIT(160), \ - _PyLong_DIGIT_INIT(161), \ - _PyLong_DIGIT_INIT(162), \ - _PyLong_DIGIT_INIT(163), \ - _PyLong_DIGIT_INIT(164), \ - _PyLong_DIGIT_INIT(165), \ - _PyLong_DIGIT_INIT(166), \ - _PyLong_DIGIT_INIT(167), \ - _PyLong_DIGIT_INIT(168), \ - _PyLong_DIGIT_INIT(169), \ - _PyLong_DIGIT_INIT(170), \ - _PyLong_DIGIT_INIT(171), \ - _PyLong_DIGIT_INIT(172), \ - _PyLong_DIGIT_INIT(173), \ - _PyLong_DIGIT_INIT(174), \ - _PyLong_DIGIT_INIT(175), \ - _PyLong_DIGIT_INIT(176), \ - _PyLong_DIGIT_INIT(177), \ - _PyLong_DIGIT_INIT(178), \ - _PyLong_DIGIT_INIT(179), \ - _PyLong_DIGIT_INIT(180), \ - _PyLong_DIGIT_INIT(181), \ - _PyLong_DIGIT_INIT(182), \ - _PyLong_DIGIT_INIT(183), \ - _PyLong_DIGIT_INIT(184), \ - _PyLong_DIGIT_INIT(185), \ - _PyLong_DIGIT_INIT(186), \ - _PyLong_DIGIT_INIT(187), \ - _PyLong_DIGIT_INIT(188), \ - _PyLong_DIGIT_INIT(189), \ - _PyLong_DIGIT_INIT(190), \ - _PyLong_DIGIT_INIT(191), \ - _PyLong_DIGIT_INIT(192), \ - _PyLong_DIGIT_INIT(193), \ - _PyLong_DIGIT_INIT(194), \ - _PyLong_DIGIT_INIT(195), \ - _PyLong_DIGIT_INIT(196), \ - _PyLong_DIGIT_INIT(197), \ - _PyLong_DIGIT_INIT(198), \ - _PyLong_DIGIT_INIT(199), \ - _PyLong_DIGIT_INIT(200), \ - _PyLong_DIGIT_INIT(201), \ - _PyLong_DIGIT_INIT(202), \ - _PyLong_DIGIT_INIT(203), \ - _PyLong_DIGIT_INIT(204), \ - _PyLong_DIGIT_INIT(205), \ - _PyLong_DIGIT_INIT(206), \ - _PyLong_DIGIT_INIT(207), \ - _PyLong_DIGIT_INIT(208), \ - _PyLong_DIGIT_INIT(209), \ - _PyLong_DIGIT_INIT(210), \ - _PyLong_DIGIT_INIT(211), \ - _PyLong_DIGIT_INIT(212), \ - _PyLong_DIGIT_INIT(213), \ - _PyLong_DIGIT_INIT(214), \ - _PyLong_DIGIT_INIT(215), \ - _PyLong_DIGIT_INIT(216), \ - _PyLong_DIGIT_INIT(217), \ - _PyLong_DIGIT_INIT(218), \ - _PyLong_DIGIT_INIT(219), \ - _PyLong_DIGIT_INIT(220), \ - _PyLong_DIGIT_INIT(221), \ - _PyLong_DIGIT_INIT(222), \ - _PyLong_DIGIT_INIT(223), \ - _PyLong_DIGIT_INIT(224), \ - _PyLong_DIGIT_INIT(225), \ - _PyLong_DIGIT_INIT(226), \ - _PyLong_DIGIT_INIT(227), \ - _PyLong_DIGIT_INIT(228), \ - _PyLong_DIGIT_INIT(229), \ - _PyLong_DIGIT_INIT(230), \ - _PyLong_DIGIT_INIT(231), \ - _PyLong_DIGIT_INIT(232), \ - _PyLong_DIGIT_INIT(233), \ - _PyLong_DIGIT_INIT(234), \ - _PyLong_DIGIT_INIT(235), \ - _PyLong_DIGIT_INIT(236), \ - _PyLong_DIGIT_INIT(237), \ - _PyLong_DIGIT_INIT(238), \ - _PyLong_DIGIT_INIT(239), \ - _PyLong_DIGIT_INIT(240), \ - _PyLong_DIGIT_INIT(241), \ - _PyLong_DIGIT_INIT(242), \ - _PyLong_DIGIT_INIT(243), \ - _PyLong_DIGIT_INIT(244), \ - _PyLong_DIGIT_INIT(245), \ - _PyLong_DIGIT_INIT(246), \ - _PyLong_DIGIT_INIT(247), \ - _PyLong_DIGIT_INIT(248), \ - _PyLong_DIGIT_INIT(249), \ - _PyLong_DIGIT_INIT(250), \ - _PyLong_DIGIT_INIT(251), \ - _PyLong_DIGIT_INIT(252), \ - _PyLong_DIGIT_INIT(253), \ - _PyLong_DIGIT_INIT(254), \ - _PyLong_DIGIT_INIT(255), \ - _PyLong_DIGIT_INIT(256), \ - }, \ - \ - .bytes_empty = _PyBytes_SIMPLE_INIT(0, 0), \ - .bytes_characters = { \ - _PyBytes_CHAR_INIT(0), \ - _PyBytes_CHAR_INIT(1), \ - _PyBytes_CHAR_INIT(2), \ - _PyBytes_CHAR_INIT(3), \ - _PyBytes_CHAR_INIT(4), \ - _PyBytes_CHAR_INIT(5), \ - _PyBytes_CHAR_INIT(6), \ - _PyBytes_CHAR_INIT(7), \ - _PyBytes_CHAR_INIT(8), \ - _PyBytes_CHAR_INIT(9), \ - _PyBytes_CHAR_INIT(10), \ - _PyBytes_CHAR_INIT(11), \ - _PyBytes_CHAR_INIT(12), \ - _PyBytes_CHAR_INIT(13), \ - _PyBytes_CHAR_INIT(14), \ - _PyBytes_CHAR_INIT(15), \ - _PyBytes_CHAR_INIT(16), \ - _PyBytes_CHAR_INIT(17), \ - _PyBytes_CHAR_INIT(18), \ - _PyBytes_CHAR_INIT(19), \ - _PyBytes_CHAR_INIT(20), \ - _PyBytes_CHAR_INIT(21), \ - _PyBytes_CHAR_INIT(22), \ - _PyBytes_CHAR_INIT(23), \ - _PyBytes_CHAR_INIT(24), \ - _PyBytes_CHAR_INIT(25), \ - _PyBytes_CHAR_INIT(26), \ - _PyBytes_CHAR_INIT(27), \ - _PyBytes_CHAR_INIT(28), \ - _PyBytes_CHAR_INIT(29), \ - _PyBytes_CHAR_INIT(30), \ - _PyBytes_CHAR_INIT(31), \ - _PyBytes_CHAR_INIT(32), \ - _PyBytes_CHAR_INIT(33), \ - _PyBytes_CHAR_INIT(34), \ - _PyBytes_CHAR_INIT(35), \ - _PyBytes_CHAR_INIT(36), \ - _PyBytes_CHAR_INIT(37), \ - _PyBytes_CHAR_INIT(38), \ - _PyBytes_CHAR_INIT(39), \ - _PyBytes_CHAR_INIT(40), \ - _PyBytes_CHAR_INIT(41), \ - _PyBytes_CHAR_INIT(42), \ - _PyBytes_CHAR_INIT(43), \ - _PyBytes_CHAR_INIT(44), \ - _PyBytes_CHAR_INIT(45), \ - _PyBytes_CHAR_INIT(46), \ - _PyBytes_CHAR_INIT(47), \ - _PyBytes_CHAR_INIT(48), \ - _PyBytes_CHAR_INIT(49), \ - _PyBytes_CHAR_INIT(50), \ - _PyBytes_CHAR_INIT(51), \ - _PyBytes_CHAR_INIT(52), \ - _PyBytes_CHAR_INIT(53), \ - _PyBytes_CHAR_INIT(54), \ - _PyBytes_CHAR_INIT(55), \ - _PyBytes_CHAR_INIT(56), \ - _PyBytes_CHAR_INIT(57), \ - _PyBytes_CHAR_INIT(58), \ - _PyBytes_CHAR_INIT(59), \ - _PyBytes_CHAR_INIT(60), \ - _PyBytes_CHAR_INIT(61), \ - _PyBytes_CHAR_INIT(62), \ - _PyBytes_CHAR_INIT(63), \ - _PyBytes_CHAR_INIT(64), \ - _PyBytes_CHAR_INIT(65), \ - _PyBytes_CHAR_INIT(66), \ - _PyBytes_CHAR_INIT(67), \ - _PyBytes_CHAR_INIT(68), \ - _PyBytes_CHAR_INIT(69), \ - _PyBytes_CHAR_INIT(70), \ - _PyBytes_CHAR_INIT(71), \ - _PyBytes_CHAR_INIT(72), \ - _PyBytes_CHAR_INIT(73), \ - _PyBytes_CHAR_INIT(74), \ - _PyBytes_CHAR_INIT(75), \ - _PyBytes_CHAR_INIT(76), \ - _PyBytes_CHAR_INIT(77), \ - _PyBytes_CHAR_INIT(78), \ - _PyBytes_CHAR_INIT(79), \ - _PyBytes_CHAR_INIT(80), \ - _PyBytes_CHAR_INIT(81), \ - _PyBytes_CHAR_INIT(82), \ - _PyBytes_CHAR_INIT(83), \ - _PyBytes_CHAR_INIT(84), \ - _PyBytes_CHAR_INIT(85), \ - _PyBytes_CHAR_INIT(86), \ - _PyBytes_CHAR_INIT(87), \ - _PyBytes_CHAR_INIT(88), \ - _PyBytes_CHAR_INIT(89), \ - _PyBytes_CHAR_INIT(90), \ - _PyBytes_CHAR_INIT(91), \ - _PyBytes_CHAR_INIT(92), \ - _PyBytes_CHAR_INIT(93), \ - _PyBytes_CHAR_INIT(94), \ - _PyBytes_CHAR_INIT(95), \ - _PyBytes_CHAR_INIT(96), \ - _PyBytes_CHAR_INIT(97), \ - _PyBytes_CHAR_INIT(98), \ - _PyBytes_CHAR_INIT(99), \ - _PyBytes_CHAR_INIT(100), \ - _PyBytes_CHAR_INIT(101), \ - _PyBytes_CHAR_INIT(102), \ - _PyBytes_CHAR_INIT(103), \ - _PyBytes_CHAR_INIT(104), \ - _PyBytes_CHAR_INIT(105), \ - _PyBytes_CHAR_INIT(106), \ - _PyBytes_CHAR_INIT(107), \ - _PyBytes_CHAR_INIT(108), \ - _PyBytes_CHAR_INIT(109), \ - _PyBytes_CHAR_INIT(110), \ - _PyBytes_CHAR_INIT(111), \ - _PyBytes_CHAR_INIT(112), \ - _PyBytes_CHAR_INIT(113), \ - _PyBytes_CHAR_INIT(114), \ - _PyBytes_CHAR_INIT(115), \ - _PyBytes_CHAR_INIT(116), \ - _PyBytes_CHAR_INIT(117), \ - _PyBytes_CHAR_INIT(118), \ - _PyBytes_CHAR_INIT(119), \ - _PyBytes_CHAR_INIT(120), \ - _PyBytes_CHAR_INIT(121), \ - _PyBytes_CHAR_INIT(122), \ - _PyBytes_CHAR_INIT(123), \ - _PyBytes_CHAR_INIT(124), \ - _PyBytes_CHAR_INIT(125), \ - _PyBytes_CHAR_INIT(126), \ - _PyBytes_CHAR_INIT(127), \ - _PyBytes_CHAR_INIT(128), \ - _PyBytes_CHAR_INIT(129), \ - _PyBytes_CHAR_INIT(130), \ - _PyBytes_CHAR_INIT(131), \ - _PyBytes_CHAR_INIT(132), \ - _PyBytes_CHAR_INIT(133), \ - _PyBytes_CHAR_INIT(134), \ - _PyBytes_CHAR_INIT(135), \ - _PyBytes_CHAR_INIT(136), \ - _PyBytes_CHAR_INIT(137), \ - _PyBytes_CHAR_INIT(138), \ - _PyBytes_CHAR_INIT(139), \ - _PyBytes_CHAR_INIT(140), \ - _PyBytes_CHAR_INIT(141), \ - _PyBytes_CHAR_INIT(142), \ - _PyBytes_CHAR_INIT(143), \ - _PyBytes_CHAR_INIT(144), \ - _PyBytes_CHAR_INIT(145), \ - _PyBytes_CHAR_INIT(146), \ - _PyBytes_CHAR_INIT(147), \ - _PyBytes_CHAR_INIT(148), \ - _PyBytes_CHAR_INIT(149), \ - _PyBytes_CHAR_INIT(150), \ - _PyBytes_CHAR_INIT(151), \ - _PyBytes_CHAR_INIT(152), \ - _PyBytes_CHAR_INIT(153), \ - _PyBytes_CHAR_INIT(154), \ - _PyBytes_CHAR_INIT(155), \ - _PyBytes_CHAR_INIT(156), \ - _PyBytes_CHAR_INIT(157), \ - _PyBytes_CHAR_INIT(158), \ - _PyBytes_CHAR_INIT(159), \ - _PyBytes_CHAR_INIT(160), \ - _PyBytes_CHAR_INIT(161), \ - _PyBytes_CHAR_INIT(162), \ - _PyBytes_CHAR_INIT(163), \ - _PyBytes_CHAR_INIT(164), \ - _PyBytes_CHAR_INIT(165), \ - _PyBytes_CHAR_INIT(166), \ - _PyBytes_CHAR_INIT(167), \ - _PyBytes_CHAR_INIT(168), \ - _PyBytes_CHAR_INIT(169), \ - _PyBytes_CHAR_INIT(170), \ - _PyBytes_CHAR_INIT(171), \ - _PyBytes_CHAR_INIT(172), \ - _PyBytes_CHAR_INIT(173), \ - _PyBytes_CHAR_INIT(174), \ - _PyBytes_CHAR_INIT(175), \ - _PyBytes_CHAR_INIT(176), \ - _PyBytes_CHAR_INIT(177), \ - _PyBytes_CHAR_INIT(178), \ - _PyBytes_CHAR_INIT(179), \ - _PyBytes_CHAR_INIT(180), \ - _PyBytes_CHAR_INIT(181), \ - _PyBytes_CHAR_INIT(182), \ - _PyBytes_CHAR_INIT(183), \ - _PyBytes_CHAR_INIT(184), \ - _PyBytes_CHAR_INIT(185), \ - _PyBytes_CHAR_INIT(186), \ - _PyBytes_CHAR_INIT(187), \ - _PyBytes_CHAR_INIT(188), \ - _PyBytes_CHAR_INIT(189), \ - _PyBytes_CHAR_INIT(190), \ - _PyBytes_CHAR_INIT(191), \ - _PyBytes_CHAR_INIT(192), \ - _PyBytes_CHAR_INIT(193), \ - _PyBytes_CHAR_INIT(194), \ - _PyBytes_CHAR_INIT(195), \ - _PyBytes_CHAR_INIT(196), \ - _PyBytes_CHAR_INIT(197), \ - _PyBytes_CHAR_INIT(198), \ - _PyBytes_CHAR_INIT(199), \ - _PyBytes_CHAR_INIT(200), \ - _PyBytes_CHAR_INIT(201), \ - _PyBytes_CHAR_INIT(202), \ - _PyBytes_CHAR_INIT(203), \ - _PyBytes_CHAR_INIT(204), \ - _PyBytes_CHAR_INIT(205), \ - _PyBytes_CHAR_INIT(206), \ - _PyBytes_CHAR_INIT(207), \ - _PyBytes_CHAR_INIT(208), \ - _PyBytes_CHAR_INIT(209), \ - _PyBytes_CHAR_INIT(210), \ - _PyBytes_CHAR_INIT(211), \ - _PyBytes_CHAR_INIT(212), \ - _PyBytes_CHAR_INIT(213), \ - _PyBytes_CHAR_INIT(214), \ - _PyBytes_CHAR_INIT(215), \ - _PyBytes_CHAR_INIT(216), \ - _PyBytes_CHAR_INIT(217), \ - _PyBytes_CHAR_INIT(218), \ - _PyBytes_CHAR_INIT(219), \ - _PyBytes_CHAR_INIT(220), \ - _PyBytes_CHAR_INIT(221), \ - _PyBytes_CHAR_INIT(222), \ - _PyBytes_CHAR_INIT(223), \ - _PyBytes_CHAR_INIT(224), \ - _PyBytes_CHAR_INIT(225), \ - _PyBytes_CHAR_INIT(226), \ - _PyBytes_CHAR_INIT(227), \ - _PyBytes_CHAR_INIT(228), \ - _PyBytes_CHAR_INIT(229), \ - _PyBytes_CHAR_INIT(230), \ - _PyBytes_CHAR_INIT(231), \ - _PyBytes_CHAR_INIT(232), \ - _PyBytes_CHAR_INIT(233), \ - _PyBytes_CHAR_INIT(234), \ - _PyBytes_CHAR_INIT(235), \ - _PyBytes_CHAR_INIT(236), \ - _PyBytes_CHAR_INIT(237), \ - _PyBytes_CHAR_INIT(238), \ - _PyBytes_CHAR_INIT(239), \ - _PyBytes_CHAR_INIT(240), \ - _PyBytes_CHAR_INIT(241), \ - _PyBytes_CHAR_INIT(242), \ - _PyBytes_CHAR_INIT(243), \ - _PyBytes_CHAR_INIT(244), \ - _PyBytes_CHAR_INIT(245), \ - _PyBytes_CHAR_INIT(246), \ - _PyBytes_CHAR_INIT(247), \ - _PyBytes_CHAR_INIT(248), \ - _PyBytes_CHAR_INIT(249), \ - _PyBytes_CHAR_INIT(250), \ - _PyBytes_CHAR_INIT(251), \ - _PyBytes_CHAR_INIT(252), \ - _PyBytes_CHAR_INIT(253), \ - _PyBytes_CHAR_INIT(254), \ - _PyBytes_CHAR_INIT(255), \ - }, \ - \ - .strings = { \ - .literals = { \ - INIT_STR(anon_dictcomp, "<dictcomp>"), \ - INIT_STR(anon_genexpr, "<genexpr>"), \ - INIT_STR(anon_lambda, "<lambda>"), \ - INIT_STR(anon_listcomp, "<listcomp>"), \ - INIT_STR(anon_module, "<module>"), \ - INIT_STR(anon_setcomp, "<setcomp>"), \ - INIT_STR(anon_string, "<string>"), \ - INIT_STR(anon_unknown, "<unknown>"), \ - INIT_STR(close_br, "}"), \ - INIT_STR(comma_sep, ", "), \ - INIT_STR(dbl_close_br, "}}"), \ - INIT_STR(dbl_open_br, "{{"), \ - INIT_STR(dbl_percent, "%%"), \ - INIT_STR(dot, "."), \ - INIT_STR(dot_locals, ".<locals>"), \ - INIT_STR(empty, ""), \ - INIT_STR(list_err, "list index out of range"), \ - INIT_STR(newline, "\n"), \ - INIT_STR(open_br, "{"), \ - INIT_STR(percent, "%"), \ - INIT_STR(utf_8, "utf-8"), \ - }, \ - .identifiers = { \ - INIT_ID(False), \ - INIT_ID(Py_Repr), \ - INIT_ID(TextIOWrapper), \ - INIT_ID(True), \ - INIT_ID(WarningMessage), \ - INIT_ID(_), \ - INIT_ID(__IOBase_closed), \ - INIT_ID(__abc_tpflags__), \ - INIT_ID(__abs__), \ - INIT_ID(__abstractmethods__), \ - INIT_ID(__add__), \ - INIT_ID(__aenter__), \ - INIT_ID(__aexit__), \ - INIT_ID(__aiter__), \ - INIT_ID(__all__), \ - INIT_ID(__and__), \ - INIT_ID(__anext__), \ - INIT_ID(__annotations__), \ - INIT_ID(__args__), \ - INIT_ID(__await__), \ - INIT_ID(__bases__), \ - INIT_ID(__bool__), \ - INIT_ID(__build_class__), \ - INIT_ID(__builtins__), \ - INIT_ID(__bytes__), \ - INIT_ID(__call__), \ - INIT_ID(__cantrace__), \ - INIT_ID(__class__), \ - INIT_ID(__class_getitem__), \ - INIT_ID(__classcell__), \ - INIT_ID(__complex__), \ - INIT_ID(__contains__), \ - INIT_ID(__copy__), \ - INIT_ID(__del__), \ - INIT_ID(__delattr__), \ - INIT_ID(__delete__), \ - INIT_ID(__delitem__), \ - INIT_ID(__dict__), \ - INIT_ID(__dictoffset__), \ - INIT_ID(__dir__), \ - INIT_ID(__divmod__), \ - INIT_ID(__doc__), \ - INIT_ID(__enter__), \ - INIT_ID(__eq__), \ - INIT_ID(__exit__), \ - INIT_ID(__file__), \ - INIT_ID(__float__), \ - INIT_ID(__floordiv__), \ - INIT_ID(__format__), \ - INIT_ID(__fspath__), \ - INIT_ID(__ge__), \ - INIT_ID(__get__), \ - INIT_ID(__getattr__), \ - INIT_ID(__getattribute__), \ - INIT_ID(__getinitargs__), \ - INIT_ID(__getitem__), \ - INIT_ID(__getnewargs__), \ - INIT_ID(__getnewargs_ex__), \ - INIT_ID(__getstate__), \ - INIT_ID(__gt__), \ - INIT_ID(__hash__), \ - INIT_ID(__iadd__), \ - INIT_ID(__iand__), \ - INIT_ID(__ifloordiv__), \ - INIT_ID(__ilshift__), \ - INIT_ID(__imatmul__), \ - INIT_ID(__imod__), \ - INIT_ID(__import__), \ - INIT_ID(__imul__), \ - INIT_ID(__index__), \ - INIT_ID(__init__), \ - INIT_ID(__init_subclass__), \ - INIT_ID(__instancecheck__), \ - INIT_ID(__int__), \ - INIT_ID(__invert__), \ - INIT_ID(__ior__), \ - INIT_ID(__ipow__), \ - INIT_ID(__irshift__), \ - INIT_ID(__isabstractmethod__), \ - INIT_ID(__isub__), \ - INIT_ID(__iter__), \ - INIT_ID(__itruediv__), \ - INIT_ID(__ixor__), \ - INIT_ID(__le__), \ - INIT_ID(__len__), \ - INIT_ID(__length_hint__), \ - INIT_ID(__lltrace__), \ - INIT_ID(__loader__), \ - INIT_ID(__lshift__), \ - INIT_ID(__lt__), \ - INIT_ID(__main__), \ - INIT_ID(__matmul__), \ - INIT_ID(__missing__), \ - INIT_ID(__mod__), \ - INIT_ID(__module__), \ - INIT_ID(__mro_entries__), \ - INIT_ID(__mul__), \ - INIT_ID(__name__), \ - INIT_ID(__ne__), \ - INIT_ID(__neg__), \ - INIT_ID(__new__), \ - INIT_ID(__newobj__), \ - INIT_ID(__newobj_ex__), \ - INIT_ID(__next__), \ - INIT_ID(__notes__), \ - INIT_ID(__or__), \ - INIT_ID(__orig_class__), \ - INIT_ID(__origin__), \ - INIT_ID(__package__), \ - INIT_ID(__parameters__), \ - INIT_ID(__path__), \ - INIT_ID(__pos__), \ - INIT_ID(__pow__), \ - INIT_ID(__prepare__), \ - INIT_ID(__qualname__), \ - INIT_ID(__radd__), \ - INIT_ID(__rand__), \ - INIT_ID(__rdivmod__), \ - INIT_ID(__reduce__), \ - INIT_ID(__reduce_ex__), \ - INIT_ID(__repr__), \ - INIT_ID(__reversed__), \ - INIT_ID(__rfloordiv__), \ - INIT_ID(__rlshift__), \ - INIT_ID(__rmatmul__), \ - INIT_ID(__rmod__), \ - INIT_ID(__rmul__), \ - INIT_ID(__ror__), \ - INIT_ID(__round__), \ - INIT_ID(__rpow__), \ - INIT_ID(__rrshift__), \ - INIT_ID(__rshift__), \ - INIT_ID(__rsub__), \ - INIT_ID(__rtruediv__), \ - INIT_ID(__rxor__), \ - INIT_ID(__set__), \ - INIT_ID(__set_name__), \ - INIT_ID(__setattr__), \ - INIT_ID(__setitem__), \ - INIT_ID(__setstate__), \ - INIT_ID(__sizeof__), \ - INIT_ID(__slotnames__), \ - INIT_ID(__slots__), \ - INIT_ID(__spec__), \ - INIT_ID(__str__), \ - INIT_ID(__sub__), \ - INIT_ID(__subclasscheck__), \ - INIT_ID(__subclasshook__), \ - INIT_ID(__truediv__), \ - INIT_ID(__trunc__), \ - INIT_ID(__typing_is_unpacked_typevartuple__), \ - INIT_ID(__typing_prepare_subst__), \ - INIT_ID(__typing_subst__), \ - INIT_ID(__typing_unpacked_tuple_args__), \ - INIT_ID(__warningregistry__), \ - INIT_ID(__weaklistoffset__), \ - INIT_ID(__weakref__), \ - INIT_ID(__xor__), \ - INIT_ID(_abc_impl), \ - INIT_ID(_annotation), \ - INIT_ID(_blksize), \ - INIT_ID(_bootstrap), \ - INIT_ID(_dealloc_warn), \ - INIT_ID(_feature_version), \ - INIT_ID(_finalizing), \ - INIT_ID(_find_and_load), \ - INIT_ID(_fix_up_module), \ - INIT_ID(_get_sourcefile), \ - INIT_ID(_handle_fromlist), \ - INIT_ID(_initializing), \ - INIT_ID(_is_text_encoding), \ - INIT_ID(_lock_unlock_module), \ - INIT_ID(_showwarnmsg), \ - INIT_ID(_shutdown), \ - INIT_ID(_slotnames), \ - INIT_ID(_uninitialized_submodules), \ - INIT_ID(_warn_unawaited_coroutine), \ - INIT_ID(_xoptions), \ - INIT_ID(a), \ - INIT_ID(abs_tol), \ - INIT_ID(access), \ - INIT_ID(add), \ - INIT_ID(after_in_child), \ - INIT_ID(after_in_parent), \ - INIT_ID(aggregate_class), \ - INIT_ID(append), \ - INIT_ID(argdefs), \ - INIT_ID(arguments), \ - INIT_ID(argv), \ - INIT_ID(attribute), \ - INIT_ID(authorizer_callback), \ - INIT_ID(b), \ - INIT_ID(backtick), \ - INIT_ID(base), \ - INIT_ID(before), \ - INIT_ID(big), \ - INIT_ID(binary_form), \ - INIT_ID(block), \ - INIT_ID(buffer), \ - INIT_ID(buffer_callback), \ - INIT_ID(buffer_size), \ - INIT_ID(buffering), \ - INIT_ID(buffers), \ - INIT_ID(bufsize), \ - INIT_ID(builtins), \ - INIT_ID(byteorder), \ - INIT_ID(bytes), \ - INIT_ID(bytes_per_sep), \ - INIT_ID(c_call), \ - INIT_ID(c_exception), \ - INIT_ID(c_return), \ - INIT_ID(cached_statements), \ - INIT_ID(cadata), \ - INIT_ID(cafile), \ - INIT_ID(call), \ - INIT_ID(capath), \ - INIT_ID(category), \ - INIT_ID(cb_type), \ - INIT_ID(certfile), \ - INIT_ID(check_same_thread), \ - INIT_ID(clear), \ - INIT_ID(close), \ - INIT_ID(closed), \ - INIT_ID(closefd), \ - INIT_ID(closure), \ - INIT_ID(co_argcount), \ - INIT_ID(co_cellvars), \ - INIT_ID(co_code), \ - INIT_ID(co_consts), \ - INIT_ID(co_exceptiontable), \ - INIT_ID(co_filename), \ - INIT_ID(co_firstlineno), \ - INIT_ID(co_flags), \ - INIT_ID(co_freevars), \ - INIT_ID(co_kwonlyargcount), \ - INIT_ID(co_linetable), \ - INIT_ID(co_name), \ - INIT_ID(co_names), \ - INIT_ID(co_nlocals), \ - INIT_ID(co_posonlyargcount), \ - INIT_ID(co_qualname), \ - INIT_ID(co_stacksize), \ - INIT_ID(co_varnames), \ - INIT_ID(code), \ - INIT_ID(command), \ - INIT_ID(comment_factory), \ - INIT_ID(consts), \ - INIT_ID(context), \ - INIT_ID(cookie), \ - INIT_ID(copy), \ - INIT_ID(copyreg), \ - INIT_ID(coro), \ - INIT_ID(count), \ - INIT_ID(cwd), \ - INIT_ID(data), \ - INIT_ID(database), \ - INIT_ID(decode), \ - INIT_ID(decoder), \ - INIT_ID(default), \ - INIT_ID(defaultaction), \ - INIT_ID(delete), \ - INIT_ID(depth), \ - INIT_ID(detect_types), \ - INIT_ID(deterministic), \ - INIT_ID(device), \ - INIT_ID(dict), \ - INIT_ID(dictcomp), \ - INIT_ID(difference_update), \ - INIT_ID(digest), \ - INIT_ID(digest_size), \ - INIT_ID(digestmod), \ - INIT_ID(dir_fd), \ - INIT_ID(dispatch_table), \ - INIT_ID(displayhook), \ - INIT_ID(dklen), \ - INIT_ID(doc), \ - INIT_ID(dont_inherit), \ - INIT_ID(dst), \ - INIT_ID(dst_dir_fd), \ - INIT_ID(duration), \ - INIT_ID(effective_ids), \ - INIT_ID(element_factory), \ - INIT_ID(encode), \ - INIT_ID(encoding), \ - INIT_ID(end), \ - INIT_ID(end_lineno), \ - INIT_ID(end_offset), \ - INIT_ID(endpos), \ - INIT_ID(env), \ - INIT_ID(errors), \ - INIT_ID(event), \ - INIT_ID(eventmask), \ - INIT_ID(exc_type), \ - INIT_ID(exc_value), \ - INIT_ID(excepthook), \ - INIT_ID(exception), \ - INIT_ID(exp), \ - INIT_ID(extend), \ - INIT_ID(factory), \ - INIT_ID(family), \ - INIT_ID(fanout), \ - INIT_ID(fd), \ - INIT_ID(fd2), \ - INIT_ID(fdel), \ - INIT_ID(fget), \ - INIT_ID(file), \ - INIT_ID(file_actions), \ - INIT_ID(filename), \ - INIT_ID(fileno), \ - INIT_ID(filepath), \ - INIT_ID(fillvalue), \ - INIT_ID(filters), \ - INIT_ID(final), \ - INIT_ID(find_class), \ - INIT_ID(fix_imports), \ - INIT_ID(flags), \ - INIT_ID(flush), \ - INIT_ID(follow_symlinks), \ - INIT_ID(format), \ - INIT_ID(frequency), \ - INIT_ID(fromlist), \ - INIT_ID(fset), \ - INIT_ID(func), \ - INIT_ID(generation), \ - INIT_ID(genexpr), \ - INIT_ID(get), \ - INIT_ID(get_source), \ - INIT_ID(getattr), \ - INIT_ID(getstate), \ - INIT_ID(gid), \ - INIT_ID(globals), \ - INIT_ID(groupindex), \ - INIT_ID(groups), \ - INIT_ID(handle), \ - INIT_ID(hash_name), \ - INIT_ID(header), \ - INIT_ID(headers), \ - INIT_ID(hi), \ - INIT_ID(hook), \ - INIT_ID(id), \ - INIT_ID(ignore), \ - INIT_ID(imag), \ - INIT_ID(importlib), \ - INIT_ID(in_fd), \ - INIT_ID(incoming), \ - INIT_ID(indexgroup), \ - INIT_ID(inf), \ - INIT_ID(inheritable), \ - INIT_ID(initial), \ - INIT_ID(initial_bytes), \ - INIT_ID(initial_value), \ - INIT_ID(initval), \ - INIT_ID(inner_size), \ - INIT_ID(input), \ - INIT_ID(insert_comments), \ - INIT_ID(insert_pis), \ - INIT_ID(instructions), \ - INIT_ID(intern), \ - INIT_ID(intersection), \ - INIT_ID(isatty), \ - INIT_ID(isinstance), \ - INIT_ID(isolation_level), \ - INIT_ID(istext), \ - INIT_ID(item), \ - INIT_ID(items), \ - INIT_ID(iter), \ - INIT_ID(iterable), \ - INIT_ID(iterations), \ - INIT_ID(join), \ - INIT_ID(jump), \ - INIT_ID(keepends), \ - INIT_ID(key), \ - INIT_ID(keyfile), \ - INIT_ID(keys), \ - INIT_ID(kind), \ - INIT_ID(lambda), \ - INIT_ID(last), \ - INIT_ID(last_node), \ - INIT_ID(last_traceback), \ - INIT_ID(last_type), \ - INIT_ID(last_value), \ - INIT_ID(latin1), \ - INIT_ID(leaf_size), \ - INIT_ID(len), \ - INIT_ID(length), \ - INIT_ID(level), \ - INIT_ID(limit), \ - INIT_ID(line), \ - INIT_ID(line_buffering), \ - INIT_ID(lineno), \ - INIT_ID(listcomp), \ - INIT_ID(little), \ - INIT_ID(lo), \ - INIT_ID(locale), \ - INIT_ID(locals), \ - INIT_ID(loop), \ - INIT_ID(mapping), \ - INIT_ID(match), \ - INIT_ID(max_length), \ - INIT_ID(maxdigits), \ - INIT_ID(maxevents), \ - INIT_ID(maxmem), \ - INIT_ID(maxsplit), \ - INIT_ID(maxvalue), \ - INIT_ID(memLevel), \ - INIT_ID(memlimit), \ - INIT_ID(message), \ - INIT_ID(metaclass), \ - INIT_ID(method), \ - INIT_ID(mod), \ - INIT_ID(mode), \ - INIT_ID(module), \ - INIT_ID(module_globals), \ - INIT_ID(modules), \ - INIT_ID(mro), \ - INIT_ID(msg), \ - INIT_ID(n), \ - INIT_ID(n_arg), \ - INIT_ID(n_fields), \ - INIT_ID(n_sequence_fields), \ - INIT_ID(n_unnamed_fields), \ - INIT_ID(name), \ - INIT_ID(namespace_separator), \ - INIT_ID(namespaces), \ - INIT_ID(narg), \ - INIT_ID(ndigits), \ - INIT_ID(new_limit), \ - INIT_ID(newline), \ - INIT_ID(newlines), \ - INIT_ID(next), \ - INIT_ID(node_depth), \ - INIT_ID(node_offset), \ - INIT_ID(ns), \ - INIT_ID(number), \ - INIT_ID(obj), \ - INIT_ID(object), \ - INIT_ID(offset), \ - INIT_ID(offset_dst), \ - INIT_ID(offset_src), \ - INIT_ID(on_type_read), \ - INIT_ID(onceregistry), \ - INIT_ID(oparg), \ - INIT_ID(opcode), \ - INIT_ID(open), \ - INIT_ID(opener), \ - INIT_ID(operation), \ - INIT_ID(optimize), \ - INIT_ID(options), \ - INIT_ID(order), \ - INIT_ID(out_fd), \ - INIT_ID(outgoing), \ - INIT_ID(overlapped), \ - INIT_ID(owner), \ - INIT_ID(p), \ - INIT_ID(pages), \ - INIT_ID(parent), \ - INIT_ID(password), \ - INIT_ID(path), \ - INIT_ID(pattern), \ - INIT_ID(peek), \ - INIT_ID(persistent_id), \ - INIT_ID(persistent_load), \ - INIT_ID(person), \ - INIT_ID(pi_factory), \ - INIT_ID(pid), \ - INIT_ID(policy), \ - INIT_ID(pos), \ - INIT_ID(print_file_and_line), \ - INIT_ID(priority), \ - INIT_ID(progress), \ - INIT_ID(progress_handler), \ - INIT_ID(proto), \ - INIT_ID(protocol), \ - INIT_ID(ps1), \ - INIT_ID(ps2), \ - INIT_ID(query), \ - INIT_ID(quotetabs), \ - INIT_ID(r), \ - INIT_ID(raw), \ - INIT_ID(read), \ - INIT_ID(read1), \ - INIT_ID(readable), \ - INIT_ID(readall), \ - INIT_ID(readinto), \ - INIT_ID(readinto1), \ - INIT_ID(readline), \ - INIT_ID(readonly), \ - INIT_ID(real), \ - INIT_ID(reducer_override), \ - INIT_ID(registry), \ - INIT_ID(rel_tol), \ - INIT_ID(reload), \ - INIT_ID(repl), \ - INIT_ID(replace), \ - INIT_ID(reserved), \ - INIT_ID(reset), \ - INIT_ID(resetids), \ - INIT_ID(return), \ - INIT_ID(reverse), \ - INIT_ID(reversed), \ - INIT_ID(s), \ - INIT_ID(salt), \ - INIT_ID(sched_priority), \ - INIT_ID(scheduler), \ - INIT_ID(seek), \ - INIT_ID(seekable), \ - INIT_ID(selectors), \ - INIT_ID(send), \ - INIT_ID(sep), \ - INIT_ID(sequence), \ - INIT_ID(server_hostname), \ - INIT_ID(server_side), \ - INIT_ID(session), \ - INIT_ID(setcomp), \ - INIT_ID(setpgroup), \ - INIT_ID(setsid), \ - INIT_ID(setsigdef), \ - INIT_ID(setsigmask), \ - INIT_ID(setstate), \ - INIT_ID(shape), \ - INIT_ID(show_cmd), \ - INIT_ID(signed), \ - INIT_ID(size), \ - INIT_ID(sizehint), \ - INIT_ID(sleep), \ - INIT_ID(sock), \ - INIT_ID(sort), \ - INIT_ID(sound), \ - INIT_ID(source), \ - INIT_ID(src), \ - INIT_ID(src_dir_fd), \ - INIT_ID(stacklevel), \ - INIT_ID(start), \ - INIT_ID(statement), \ - INIT_ID(status), \ - INIT_ID(stderr), \ - INIT_ID(stdin), \ - INIT_ID(stdout), \ - INIT_ID(step), \ - INIT_ID(store_name), \ - INIT_ID(strategy), \ - INIT_ID(strict), \ - INIT_ID(strict_mode), \ - INIT_ID(string), \ - INIT_ID(sub_key), \ - INIT_ID(symmetric_difference_update), \ - INIT_ID(tabsize), \ - INIT_ID(tag), \ - INIT_ID(target), \ - INIT_ID(target_is_directory), \ - INIT_ID(task), \ - INIT_ID(tb_frame), \ - INIT_ID(tb_lasti), \ - INIT_ID(tb_lineno), \ - INIT_ID(tb_next), \ - INIT_ID(tell), \ - INIT_ID(template), \ - INIT_ID(term), \ - INIT_ID(text), \ - INIT_ID(threading), \ - INIT_ID(throw), \ - INIT_ID(timeout), \ - INIT_ID(times), \ - INIT_ID(top), \ - INIT_ID(trace_callback), \ - INIT_ID(traceback), \ - INIT_ID(trailers), \ - INIT_ID(translate), \ - INIT_ID(truncate), \ - INIT_ID(twice), \ - INIT_ID(txt), \ - INIT_ID(type), \ - INIT_ID(tz), \ - INIT_ID(uid), \ - INIT_ID(unlink), \ - INIT_ID(unraisablehook), \ - INIT_ID(uri), \ - INIT_ID(usedforsecurity), \ - INIT_ID(value), \ - INIT_ID(values), \ - INIT_ID(version), \ - INIT_ID(warnings), \ - INIT_ID(warnoptions), \ - INIT_ID(wbits), \ - INIT_ID(week), \ - INIT_ID(weekday), \ - INIT_ID(which), \ - INIT_ID(who), \ - INIT_ID(withdata), \ - INIT_ID(writable), \ - INIT_ID(write), \ - INIT_ID(write_through), \ - INIT_ID(x), \ - INIT_ID(year), \ - INIT_ID(zdict), \ - }, \ - .ascii = { \ - _PyASCIIObject_INIT("\x00"), \ - _PyASCIIObject_INIT("\x01"), \ - _PyASCIIObject_INIT("\x02"), \ - _PyASCIIObject_INIT("\x03"), \ - _PyASCIIObject_INIT("\x04"), \ - _PyASCIIObject_INIT("\x05"), \ - _PyASCIIObject_INIT("\x06"), \ - _PyASCIIObject_INIT("\x07"), \ - _PyASCIIObject_INIT("\x08"), \ - _PyASCIIObject_INIT("\x09"), \ - _PyASCIIObject_INIT("\x0a"), \ - _PyASCIIObject_INIT("\x0b"), \ - _PyASCIIObject_INIT("\x0c"), \ - _PyASCIIObject_INIT("\x0d"), \ - _PyASCIIObject_INIT("\x0e"), \ - _PyASCIIObject_INIT("\x0f"), \ - _PyASCIIObject_INIT("\x10"), \ - _PyASCIIObject_INIT("\x11"), \ - _PyASCIIObject_INIT("\x12"), \ - _PyASCIIObject_INIT("\x13"), \ - _PyASCIIObject_INIT("\x14"), \ - _PyASCIIObject_INIT("\x15"), \ - _PyASCIIObject_INIT("\x16"), \ - _PyASCIIObject_INIT("\x17"), \ - _PyASCIIObject_INIT("\x18"), \ - _PyASCIIObject_INIT("\x19"), \ - _PyASCIIObject_INIT("\x1a"), \ - _PyASCIIObject_INIT("\x1b"), \ - _PyASCIIObject_INIT("\x1c"), \ - _PyASCIIObject_INIT("\x1d"), \ - _PyASCIIObject_INIT("\x1e"), \ - _PyASCIIObject_INIT("\x1f"), \ - _PyASCIIObject_INIT("\x20"), \ - _PyASCIIObject_INIT("\x21"), \ - _PyASCIIObject_INIT("\x22"), \ - _PyASCIIObject_INIT("\x23"), \ - _PyASCIIObject_INIT("\x24"), \ - _PyASCIIObject_INIT("\x25"), \ - _PyASCIIObject_INIT("\x26"), \ - _PyASCIIObject_INIT("\x27"), \ - _PyASCIIObject_INIT("\x28"), \ - _PyASCIIObject_INIT("\x29"), \ - _PyASCIIObject_INIT("\x2a"), \ - _PyASCIIObject_INIT("\x2b"), \ - _PyASCIIObject_INIT("\x2c"), \ - _PyASCIIObject_INIT("\x2d"), \ - _PyASCIIObject_INIT("\x2e"), \ - _PyASCIIObject_INIT("\x2f"), \ - _PyASCIIObject_INIT("\x30"), \ - _PyASCIIObject_INIT("\x31"), \ - _PyASCIIObject_INIT("\x32"), \ - _PyASCIIObject_INIT("\x33"), \ - _PyASCIIObject_INIT("\x34"), \ - _PyASCIIObject_INIT("\x35"), \ - _PyASCIIObject_INIT("\x36"), \ - _PyASCIIObject_INIT("\x37"), \ - _PyASCIIObject_INIT("\x38"), \ - _PyASCIIObject_INIT("\x39"), \ - _PyASCIIObject_INIT("\x3a"), \ - _PyASCIIObject_INIT("\x3b"), \ - _PyASCIIObject_INIT("\x3c"), \ - _PyASCIIObject_INIT("\x3d"), \ - _PyASCIIObject_INIT("\x3e"), \ - _PyASCIIObject_INIT("\x3f"), \ - _PyASCIIObject_INIT("\x40"), \ - _PyASCIIObject_INIT("\x41"), \ - _PyASCIIObject_INIT("\x42"), \ - _PyASCIIObject_INIT("\x43"), \ - _PyASCIIObject_INIT("\x44"), \ - _PyASCIIObject_INIT("\x45"), \ - _PyASCIIObject_INIT("\x46"), \ - _PyASCIIObject_INIT("\x47"), \ - _PyASCIIObject_INIT("\x48"), \ - _PyASCIIObject_INIT("\x49"), \ - _PyASCIIObject_INIT("\x4a"), \ - _PyASCIIObject_INIT("\x4b"), \ - _PyASCIIObject_INIT("\x4c"), \ - _PyASCIIObject_INIT("\x4d"), \ - _PyASCIIObject_INIT("\x4e"), \ - _PyASCIIObject_INIT("\x4f"), \ - _PyASCIIObject_INIT("\x50"), \ - _PyASCIIObject_INIT("\x51"), \ - _PyASCIIObject_INIT("\x52"), \ - _PyASCIIObject_INIT("\x53"), \ - _PyASCIIObject_INIT("\x54"), \ - _PyASCIIObject_INIT("\x55"), \ - _PyASCIIObject_INIT("\x56"), \ - _PyASCIIObject_INIT("\x57"), \ - _PyASCIIObject_INIT("\x58"), \ - _PyASCIIObject_INIT("\x59"), \ - _PyASCIIObject_INIT("\x5a"), \ - _PyASCIIObject_INIT("\x5b"), \ - _PyASCIIObject_INIT("\x5c"), \ - _PyASCIIObject_INIT("\x5d"), \ - _PyASCIIObject_INIT("\x5e"), \ - _PyASCIIObject_INIT("\x5f"), \ - _PyASCIIObject_INIT("\x60"), \ - _PyASCIIObject_INIT("\x61"), \ - _PyASCIIObject_INIT("\x62"), \ - _PyASCIIObject_INIT("\x63"), \ - _PyASCIIObject_INIT("\x64"), \ - _PyASCIIObject_INIT("\x65"), \ - _PyASCIIObject_INIT("\x66"), \ - _PyASCIIObject_INIT("\x67"), \ - _PyASCIIObject_INIT("\x68"), \ - _PyASCIIObject_INIT("\x69"), \ - _PyASCIIObject_INIT("\x6a"), \ - _PyASCIIObject_INIT("\x6b"), \ - _PyASCIIObject_INIT("\x6c"), \ - _PyASCIIObject_INIT("\x6d"), \ - _PyASCIIObject_INIT("\x6e"), \ - _PyASCIIObject_INIT("\x6f"), \ - _PyASCIIObject_INIT("\x70"), \ - _PyASCIIObject_INIT("\x71"), \ - _PyASCIIObject_INIT("\x72"), \ - _PyASCIIObject_INIT("\x73"), \ - _PyASCIIObject_INIT("\x74"), \ - _PyASCIIObject_INIT("\x75"), \ - _PyASCIIObject_INIT("\x76"), \ - _PyASCIIObject_INIT("\x77"), \ - _PyASCIIObject_INIT("\x78"), \ - _PyASCIIObject_INIT("\x79"), \ - _PyASCIIObject_INIT("\x7a"), \ - _PyASCIIObject_INIT("\x7b"), \ - _PyASCIIObject_INIT("\x7c"), \ - _PyASCIIObject_INIT("\x7d"), \ - _PyASCIIObject_INIT("\x7e"), \ - _PyASCIIObject_INIT("\x7f"), \ - }, \ - .latin1 = { \ - _PyUnicode_LATIN1_INIT("\x80", "\xc2\x80"), \ - _PyUnicode_LATIN1_INIT("\x81", "\xc2\x81"), \ - _PyUnicode_LATIN1_INIT("\x82", "\xc2\x82"), \ - _PyUnicode_LATIN1_INIT("\x83", "\xc2\x83"), \ - _PyUnicode_LATIN1_INIT("\x84", "\xc2\x84"), \ - _PyUnicode_LATIN1_INIT("\x85", "\xc2\x85"), \ - _PyUnicode_LATIN1_INIT("\x86", "\xc2\x86"), \ - _PyUnicode_LATIN1_INIT("\x87", "\xc2\x87"), \ - _PyUnicode_LATIN1_INIT("\x88", "\xc2\x88"), \ - _PyUnicode_LATIN1_INIT("\x89", "\xc2\x89"), \ - _PyUnicode_LATIN1_INIT("\x8a", "\xc2\x8a"), \ - _PyUnicode_LATIN1_INIT("\x8b", "\xc2\x8b"), \ - _PyUnicode_LATIN1_INIT("\x8c", "\xc2\x8c"), \ - _PyUnicode_LATIN1_INIT("\x8d", "\xc2\x8d"), \ - _PyUnicode_LATIN1_INIT("\x8e", "\xc2\x8e"), \ - _PyUnicode_LATIN1_INIT("\x8f", "\xc2\x8f"), \ - _PyUnicode_LATIN1_INIT("\x90", "\xc2\x90"), \ - _PyUnicode_LATIN1_INIT("\x91", "\xc2\x91"), \ - _PyUnicode_LATIN1_INIT("\x92", "\xc2\x92"), \ - _PyUnicode_LATIN1_INIT("\x93", "\xc2\x93"), \ - _PyUnicode_LATIN1_INIT("\x94", "\xc2\x94"), \ - _PyUnicode_LATIN1_INIT("\x95", "\xc2\x95"), \ - _PyUnicode_LATIN1_INIT("\x96", "\xc2\x96"), \ - _PyUnicode_LATIN1_INIT("\x97", "\xc2\x97"), \ - _PyUnicode_LATIN1_INIT("\x98", "\xc2\x98"), \ - _PyUnicode_LATIN1_INIT("\x99", "\xc2\x99"), \ - _PyUnicode_LATIN1_INIT("\x9a", "\xc2\x9a"), \ - _PyUnicode_LATIN1_INIT("\x9b", "\xc2\x9b"), \ - _PyUnicode_LATIN1_INIT("\x9c", "\xc2\x9c"), \ - _PyUnicode_LATIN1_INIT("\x9d", "\xc2\x9d"), \ - _PyUnicode_LATIN1_INIT("\x9e", "\xc2\x9e"), \ - _PyUnicode_LATIN1_INIT("\x9f", "\xc2\x9f"), \ - _PyUnicode_LATIN1_INIT("\xa0", "\xc2\xa0"), \ - _PyUnicode_LATIN1_INIT("\xa1", "\xc2\xa1"), \ - _PyUnicode_LATIN1_INIT("\xa2", "\xc2\xa2"), \ - _PyUnicode_LATIN1_INIT("\xa3", "\xc2\xa3"), \ - _PyUnicode_LATIN1_INIT("\xa4", "\xc2\xa4"), \ - _PyUnicode_LATIN1_INIT("\xa5", "\xc2\xa5"), \ - _PyUnicode_LATIN1_INIT("\xa6", "\xc2\xa6"), \ - _PyUnicode_LATIN1_INIT("\xa7", "\xc2\xa7"), \ - _PyUnicode_LATIN1_INIT("\xa8", "\xc2\xa8"), \ - _PyUnicode_LATIN1_INIT("\xa9", "\xc2\xa9"), \ - _PyUnicode_LATIN1_INIT("\xaa", "\xc2\xaa"), \ - _PyUnicode_LATIN1_INIT("\xab", "\xc2\xab"), \ - _PyUnicode_LATIN1_INIT("\xac", "\xc2\xac"), \ - _PyUnicode_LATIN1_INIT("\xad", "\xc2\xad"), \ - _PyUnicode_LATIN1_INIT("\xae", "\xc2\xae"), \ - _PyUnicode_LATIN1_INIT("\xaf", "\xc2\xaf"), \ - _PyUnicode_LATIN1_INIT("\xb0", "\xc2\xb0"), \ - _PyUnicode_LATIN1_INIT("\xb1", "\xc2\xb1"), \ - _PyUnicode_LATIN1_INIT("\xb2", "\xc2\xb2"), \ - _PyUnicode_LATIN1_INIT("\xb3", "\xc2\xb3"), \ - _PyUnicode_LATIN1_INIT("\xb4", "\xc2\xb4"), \ - _PyUnicode_LATIN1_INIT("\xb5", "\xc2\xb5"), \ - _PyUnicode_LATIN1_INIT("\xb6", "\xc2\xb6"), \ - _PyUnicode_LATIN1_INIT("\xb7", "\xc2\xb7"), \ - _PyUnicode_LATIN1_INIT("\xb8", "\xc2\xb8"), \ - _PyUnicode_LATIN1_INIT("\xb9", "\xc2\xb9"), \ - _PyUnicode_LATIN1_INIT("\xba", "\xc2\xba"), \ - _PyUnicode_LATIN1_INIT("\xbb", "\xc2\xbb"), \ - _PyUnicode_LATIN1_INIT("\xbc", "\xc2\xbc"), \ - _PyUnicode_LATIN1_INIT("\xbd", "\xc2\xbd"), \ - _PyUnicode_LATIN1_INIT("\xbe", "\xc2\xbe"), \ - _PyUnicode_LATIN1_INIT("\xbf", "\xc2\xbf"), \ - _PyUnicode_LATIN1_INIT("\xc0", "\xc3\x80"), \ - _PyUnicode_LATIN1_INIT("\xc1", "\xc3\x81"), \ - _PyUnicode_LATIN1_INIT("\xc2", "\xc3\x82"), \ - _PyUnicode_LATIN1_INIT("\xc3", "\xc3\x83"), \ - _PyUnicode_LATIN1_INIT("\xc4", "\xc3\x84"), \ - _PyUnicode_LATIN1_INIT("\xc5", "\xc3\x85"), \ - _PyUnicode_LATIN1_INIT("\xc6", "\xc3\x86"), \ - _PyUnicode_LATIN1_INIT("\xc7", "\xc3\x87"), \ - _PyUnicode_LATIN1_INIT("\xc8", "\xc3\x88"), \ - _PyUnicode_LATIN1_INIT("\xc9", "\xc3\x89"), \ - _PyUnicode_LATIN1_INIT("\xca", "\xc3\x8a"), \ - _PyUnicode_LATIN1_INIT("\xcb", "\xc3\x8b"), \ - _PyUnicode_LATIN1_INIT("\xcc", "\xc3\x8c"), \ - _PyUnicode_LATIN1_INIT("\xcd", "\xc3\x8d"), \ - _PyUnicode_LATIN1_INIT("\xce", "\xc3\x8e"), \ - _PyUnicode_LATIN1_INIT("\xcf", "\xc3\x8f"), \ - _PyUnicode_LATIN1_INIT("\xd0", "\xc3\x90"), \ - _PyUnicode_LATIN1_INIT("\xd1", "\xc3\x91"), \ - _PyUnicode_LATIN1_INIT("\xd2", "\xc3\x92"), \ - _PyUnicode_LATIN1_INIT("\xd3", "\xc3\x93"), \ - _PyUnicode_LATIN1_INIT("\xd4", "\xc3\x94"), \ - _PyUnicode_LATIN1_INIT("\xd5", "\xc3\x95"), \ - _PyUnicode_LATIN1_INIT("\xd6", "\xc3\x96"), \ - _PyUnicode_LATIN1_INIT("\xd7", "\xc3\x97"), \ - _PyUnicode_LATIN1_INIT("\xd8", "\xc3\x98"), \ - _PyUnicode_LATIN1_INIT("\xd9", "\xc3\x99"), \ - _PyUnicode_LATIN1_INIT("\xda", "\xc3\x9a"), \ - _PyUnicode_LATIN1_INIT("\xdb", "\xc3\x9b"), \ - _PyUnicode_LATIN1_INIT("\xdc", "\xc3\x9c"), \ - _PyUnicode_LATIN1_INIT("\xdd", "\xc3\x9d"), \ - _PyUnicode_LATIN1_INIT("\xde", "\xc3\x9e"), \ - _PyUnicode_LATIN1_INIT("\xdf", "\xc3\x9f"), \ - _PyUnicode_LATIN1_INIT("\xe0", "\xc3\xa0"), \ - _PyUnicode_LATIN1_INIT("\xe1", "\xc3\xa1"), \ - _PyUnicode_LATIN1_INIT("\xe2", "\xc3\xa2"), \ - _PyUnicode_LATIN1_INIT("\xe3", "\xc3\xa3"), \ - _PyUnicode_LATIN1_INIT("\xe4", "\xc3\xa4"), \ - _PyUnicode_LATIN1_INIT("\xe5", "\xc3\xa5"), \ - _PyUnicode_LATIN1_INIT("\xe6", "\xc3\xa6"), \ - _PyUnicode_LATIN1_INIT("\xe7", "\xc3\xa7"), \ - _PyUnicode_LATIN1_INIT("\xe8", "\xc3\xa8"), \ - _PyUnicode_LATIN1_INIT("\xe9", "\xc3\xa9"), \ - _PyUnicode_LATIN1_INIT("\xea", "\xc3\xaa"), \ - _PyUnicode_LATIN1_INIT("\xeb", "\xc3\xab"), \ - _PyUnicode_LATIN1_INIT("\xec", "\xc3\xac"), \ - _PyUnicode_LATIN1_INIT("\xed", "\xc3\xad"), \ - _PyUnicode_LATIN1_INIT("\xee", "\xc3\xae"), \ - _PyUnicode_LATIN1_INIT("\xef", "\xc3\xaf"), \ - _PyUnicode_LATIN1_INIT("\xf0", "\xc3\xb0"), \ - _PyUnicode_LATIN1_INIT("\xf1", "\xc3\xb1"), \ - _PyUnicode_LATIN1_INIT("\xf2", "\xc3\xb2"), \ - _PyUnicode_LATIN1_INIT("\xf3", "\xc3\xb3"), \ - _PyUnicode_LATIN1_INIT("\xf4", "\xc3\xb4"), \ - _PyUnicode_LATIN1_INIT("\xf5", "\xc3\xb5"), \ - _PyUnicode_LATIN1_INIT("\xf6", "\xc3\xb6"), \ - _PyUnicode_LATIN1_INIT("\xf7", "\xc3\xb7"), \ - _PyUnicode_LATIN1_INIT("\xf8", "\xc3\xb8"), \ - _PyUnicode_LATIN1_INIT("\xf9", "\xc3\xb9"), \ - _PyUnicode_LATIN1_INIT("\xfa", "\xc3\xba"), \ - _PyUnicode_LATIN1_INIT("\xfb", "\xc3\xbb"), \ - _PyUnicode_LATIN1_INIT("\xfc", "\xc3\xbc"), \ - _PyUnicode_LATIN1_INIT("\xfd", "\xc3\xbd"), \ - _PyUnicode_LATIN1_INIT("\xfe", "\xc3\xbe"), \ - _PyUnicode_LATIN1_INIT("\xff", "\xc3\xbf"), \ - }, \ - }, \ - \ - .tuple_empty = { \ - .ob_base = _PyVarObject_IMMORTAL_INIT(&PyTuple_Type, 0) \ - }, \ - }, \ -} - -static inline void -_PyUnicode_InitStaticStrings(void) { - PyObject *string; - string = &_Py_ID(False); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(Py_Repr); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(TextIOWrapper); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(True); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(WarningMessage); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(_); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__IOBase_closed); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__abc_tpflags__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__abs__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__abstractmethods__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__add__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__aenter__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__aexit__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__aiter__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__all__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__and__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__anext__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__annotations__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__args__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__await__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__bases__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__bool__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__build_class__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__builtins__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__bytes__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__call__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__cantrace__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__class__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__class_getitem__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__classcell__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__complex__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__contains__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__copy__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__del__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__delattr__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__delete__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__delitem__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__dict__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__dictoffset__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__dir__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__divmod__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__doc__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__enter__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__eq__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__exit__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__file__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__float__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__floordiv__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__format__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__fspath__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__ge__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__get__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__getattr__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__getattribute__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__getinitargs__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__getitem__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__getnewargs__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__getnewargs_ex__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__getstate__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__gt__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__hash__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__iadd__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__iand__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__ifloordiv__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__ilshift__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__imatmul__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__imod__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__import__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__imul__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__index__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__init__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__init_subclass__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__instancecheck__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__int__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__invert__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__ior__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__ipow__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__irshift__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__isabstractmethod__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__isub__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__iter__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__itruediv__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__ixor__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__le__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__len__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__length_hint__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__lltrace__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__loader__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__lshift__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__lt__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__main__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__matmul__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__missing__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__mod__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__module__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__mro_entries__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__mul__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__name__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__ne__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__neg__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__new__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__newobj__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__newobj_ex__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__next__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__notes__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__or__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__orig_class__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__origin__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__package__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__parameters__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__path__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__pos__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__pow__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__prepare__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__qualname__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__radd__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__rand__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__rdivmod__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__reduce__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__reduce_ex__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__repr__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__reversed__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__rfloordiv__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__rlshift__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__rmatmul__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__rmod__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__rmul__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__ror__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__round__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__rpow__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__rrshift__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__rshift__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__rsub__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__rtruediv__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__rxor__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__set__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__set_name__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__setattr__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__setitem__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__setstate__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__sizeof__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__slotnames__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__slots__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__spec__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__str__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__sub__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__subclasscheck__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__subclasshook__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__truediv__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__trunc__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__typing_is_unpacked_typevartuple__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__typing_prepare_subst__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__typing_subst__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__typing_unpacked_tuple_args__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__warningregistry__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__weaklistoffset__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__weakref__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(__xor__); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(_abc_impl); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(_annotation); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(_blksize); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(_bootstrap); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(_dealloc_warn); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(_feature_version); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(_finalizing); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(_find_and_load); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(_fix_up_module); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(_get_sourcefile); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(_handle_fromlist); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(_initializing); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(_is_text_encoding); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(_lock_unlock_module); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(_showwarnmsg); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(_shutdown); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(_slotnames); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(_uninitialized_submodules); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(_warn_unawaited_coroutine); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(_xoptions); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(a); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(abs_tol); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(access); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(add); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(after_in_child); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(after_in_parent); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(aggregate_class); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(append); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(argdefs); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(arguments); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(argv); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(attribute); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(authorizer_callback); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(b); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(backtick); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(base); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(before); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(big); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(binary_form); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(block); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(buffer); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(buffer_callback); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(buffer_size); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(buffering); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(buffers); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(bufsize); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(builtins); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(byteorder); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(bytes); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(bytes_per_sep); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(c_call); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(c_exception); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(c_return); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(cached_statements); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(cadata); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(cafile); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(call); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(capath); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(category); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(cb_type); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(certfile); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(check_same_thread); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(clear); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(close); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(closed); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(closefd); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(closure); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(co_argcount); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(co_cellvars); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(co_code); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(co_consts); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(co_exceptiontable); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(co_filename); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(co_firstlineno); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(co_flags); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(co_freevars); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(co_kwonlyargcount); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(co_linetable); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(co_name); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(co_names); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(co_nlocals); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(co_posonlyargcount); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(co_qualname); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(co_stacksize); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(co_varnames); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(code); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(command); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(comment_factory); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(consts); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(context); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(cookie); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(copy); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(copyreg); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(coro); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(count); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(cwd); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(data); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(database); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(decode); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(decoder); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(default); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(defaultaction); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(delete); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(depth); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(detect_types); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(deterministic); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(device); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(dict); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(dictcomp); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(difference_update); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(digest); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(digest_size); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(digestmod); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(dir_fd); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(dispatch_table); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(displayhook); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(dklen); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(doc); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(dont_inherit); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(dst); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(dst_dir_fd); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(duration); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(effective_ids); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(element_factory); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(encode); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(encoding); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(end); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(end_lineno); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(end_offset); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(endpos); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(env); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(errors); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(event); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(eventmask); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(exc_type); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(exc_value); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(excepthook); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(exception); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(exp); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(extend); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(factory); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(family); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(fanout); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(fd); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(fd2); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(fdel); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(fget); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(file); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(file_actions); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(filename); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(fileno); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(filepath); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(fillvalue); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(filters); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(final); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(find_class); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(fix_imports); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(flags); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(flush); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(follow_symlinks); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(format); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(frequency); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(fromlist); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(fset); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(func); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(generation); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(genexpr); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(get); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(get_source); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(getattr); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(getstate); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(gid); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(globals); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(groupindex); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(groups); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(handle); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(hash_name); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(header); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(headers); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(hi); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(hook); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(id); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(ignore); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(imag); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(importlib); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(in_fd); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(incoming); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(indexgroup); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(inf); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(inheritable); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(initial); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(initial_bytes); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(initial_value); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(initval); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(inner_size); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(input); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(insert_comments); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(insert_pis); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(instructions); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(intern); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(intersection); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(isatty); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(isinstance); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(isolation_level); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(istext); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(item); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(items); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(iter); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(iterable); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(iterations); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(join); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(jump); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(keepends); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(key); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(keyfile); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(keys); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(kind); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(lambda); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(last); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(last_node); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(last_traceback); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(last_type); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(last_value); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(latin1); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(leaf_size); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(len); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(length); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(level); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(limit); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(line); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(line_buffering); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(lineno); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(listcomp); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(little); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(lo); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(locale); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(locals); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(loop); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(mapping); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(match); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(max_length); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(maxdigits); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(maxevents); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(maxmem); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(maxsplit); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(maxvalue); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(memLevel); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(memlimit); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(message); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(metaclass); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(method); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(mod); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(mode); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(module); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(module_globals); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(modules); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(mro); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(msg); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(n); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(n_arg); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(n_fields); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(n_sequence_fields); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(n_unnamed_fields); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(name); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(namespace_separator); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(namespaces); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(narg); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(ndigits); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(new_limit); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(newline); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(newlines); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(next); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(node_depth); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(node_offset); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(ns); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(number); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(obj); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(object); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(offset); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(offset_dst); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(offset_src); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(on_type_read); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(onceregistry); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(oparg); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(opcode); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(open); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(opener); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(operation); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(optimize); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(options); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(order); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(out_fd); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(outgoing); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(overlapped); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(owner); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(p); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(pages); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(parent); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(password); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(path); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(pattern); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(peek); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(persistent_id); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(persistent_load); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(person); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(pi_factory); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(pid); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(policy); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(pos); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(print_file_and_line); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(priority); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(progress); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(progress_handler); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(proto); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(protocol); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(ps1); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(ps2); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(query); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(quotetabs); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(r); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(raw); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(read); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(read1); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(readable); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(readall); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(readinto); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(readinto1); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(readline); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(readonly); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(real); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(reducer_override); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(registry); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(rel_tol); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(reload); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(repl); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(replace); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(reserved); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(reset); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(resetids); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(return); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(reverse); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(reversed); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(s); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(salt); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(sched_priority); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(scheduler); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(seek); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(seekable); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(selectors); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(send); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(sep); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(sequence); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(server_hostname); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(server_side); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(session); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(setcomp); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(setpgroup); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(setsid); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(setsigdef); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(setsigmask); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(setstate); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(shape); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(show_cmd); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(signed); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(size); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(sizehint); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(sleep); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(sock); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(sort); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(sound); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(source); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(src); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(src_dir_fd); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(stacklevel); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(start); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(statement); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(status); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(stderr); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(stdin); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(stdout); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(step); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(store_name); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(strategy); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(strict); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(strict_mode); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(string); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(sub_key); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(symmetric_difference_update); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(tabsize); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(tag); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(target); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(target_is_directory); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(task); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(tb_frame); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(tb_lasti); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(tb_lineno); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(tb_next); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(tell); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(template); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(term); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(text); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(threading); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(throw); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(timeout); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(times); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(top); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(trace_callback); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(traceback); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(trailers); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(translate); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(truncate); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(twice); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(txt); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(type); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(tz); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(uid); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(unlink); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(unraisablehook); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(uri); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(usedforsecurity); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(value); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(values); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(version); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(warnings); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(warnoptions); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(wbits); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(week); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(weekday); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(which); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(who); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(withdata); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(writable); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(write); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(write_through); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(x); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(year); - PyUnicode_InternInPlace(&string); - string = &_Py_ID(zdict); - PyUnicode_InternInPlace(&string); -} - -#ifdef Py_DEBUG -static inline void -_PyStaticObjects_CheckRefcnt(void) { - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -5]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -5]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -4]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -4]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -3]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -3]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -2]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -2]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -1]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -1]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 0]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 0]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 1]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 1]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 2]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 2]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 3]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 3]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 4]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 4]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 5]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 5]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 6]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 6]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 7]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 7]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 8]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 8]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 9]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 9]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 10]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 10]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 11]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 11]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 12]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 12]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 13]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 13]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 14]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 14]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 15]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 15]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 16]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 16]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 17]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 17]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 18]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 18]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 19]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 19]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 20]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 20]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 21]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 21]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 22]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 22]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 23]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 23]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 24]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 24]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 25]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 25]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 26]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 26]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 27]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 27]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 28]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 28]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 29]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 29]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 30]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 30]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 31]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 31]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 32]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 32]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 33]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 33]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 34]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 34]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 35]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 35]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 36]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 36]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 37]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 37]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 38]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 38]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 39]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 39]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 40]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 40]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 41]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 41]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 42]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 42]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 43]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 43]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 44]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 44]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 45]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 45]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 46]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 46]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 47]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 47]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 48]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 48]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 49]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 49]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 50]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 50]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 51]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 51]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 52]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 52]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 53]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 53]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 54]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 54]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 55]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 55]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 56]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 56]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 57]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 57]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 58]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 58]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 59]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 59]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 60]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 60]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 61]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 61]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 62]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 62]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 63]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 63]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 64]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 64]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 65]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 65]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 66]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 66]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 67]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 67]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 68]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 68]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 69]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 69]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 70]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 70]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 71]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 71]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 72]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 72]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 73]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 73]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 74]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 74]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 75]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 75]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 76]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 76]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 77]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 77]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 78]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 78]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 79]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 79]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 80]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 80]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 81]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 81]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 82]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 82]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 83]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 83]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 84]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 84]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 85]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 85]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 86]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 86]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 87]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 87]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 88]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 88]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 89]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 89]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 90]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 90]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 91]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 91]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 92]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 92]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 93]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 93]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 94]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 94]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 95]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 95]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 96]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 96]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 97]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 97]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 98]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 98]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 99]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 99]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 100]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 100]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 101]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 101]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 102]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 102]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 103]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 103]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 104]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 104]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 105]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 105]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 106]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 106]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 107]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 107]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 108]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 108]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 109]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 109]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 110]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 110]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 111]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 111]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 112]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 112]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 113]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 113]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 114]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 114]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 115]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 115]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 116]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 116]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 117]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 117]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 118]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 118]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 119]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 119]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 120]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 120]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 121]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 121]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 122]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 122]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 123]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 123]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 124]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 124]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 125]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 125]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 126]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 126]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 127]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 127]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 129]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 129]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 130]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 130]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 131]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 131]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 132]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 132]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 133]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 133]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 134]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 134]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 135]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 135]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 136]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 136]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 137]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 137]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 138]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 138]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 139]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 139]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 140]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 140]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 141]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 141]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 142]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 142]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 143]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 143]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 144]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 144]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 145]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 145]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 146]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 146]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 147]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 147]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 148]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 148]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 149]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 149]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 150]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 150]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 151]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 151]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 152]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 152]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 153]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 153]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 154]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 154]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 155]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 155]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 156]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 156]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 157]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 157]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 158]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 158]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 159]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 159]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 160]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 160]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 161]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 161]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 162]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 162]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 163]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 163]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 164]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 164]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 165]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 165]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 166]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 166]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 167]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 167]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 168]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 168]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 169]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 169]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 170]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 170]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 171]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 171]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 172]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 172]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 173]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 173]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 174]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 174]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 175]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 175]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 176]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 176]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 177]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 177]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 178]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 178]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 179]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 179]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 180]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 180]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 181]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 181]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 182]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 182]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 183]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 183]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 184]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 184]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 185]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 185]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 186]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 186]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 187]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 187]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 188]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 188]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 189]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 189]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 190]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 190]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 191]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 191]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 192]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 192]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 193]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 193]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 194]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 194]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 195]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 195]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 196]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 196]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 197]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 197]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 198]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 198]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 199]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 199]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 200]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 200]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 201]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 201]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 202]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 202]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 203]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 203]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 204]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 204]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 205]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 205]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 206]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 206]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 207]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 207]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 208]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 208]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 209]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 209]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 210]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 210]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 211]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 211]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 212]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 212]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 213]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 213]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 214]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 214]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 215]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 215]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 216]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 216]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 217]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 217]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 218]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 218]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 219]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 219]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 220]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 220]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 221]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 221]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 222]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 222]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 223]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 223]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 224]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 224]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 225]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 225]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 226]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 226]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 227]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 227]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 228]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 228]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 229]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 229]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 230]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 230]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 231]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 231]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 232]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 232]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 233]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 233]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 234]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 234]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 235]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 235]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 236]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 236]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 237]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 237]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 238]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 238]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 239]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 239]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 240]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 240]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 241]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 241]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 242]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 242]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 243]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 243]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 244]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 244]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 245]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 245]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 246]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 246]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 247]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 247]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 248]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 248]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 249]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 249]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 250]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 250]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 251]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 251]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 252]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 252]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 253]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 253]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 254]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 254]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 255]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 255]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 256]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 256]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_empty)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_empty)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[0]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[0]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[1]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[1]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[2]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[2]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[3]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[3]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[4]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[4]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[5]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[5]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[6]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[6]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[7]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[7]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[8]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[8]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[9]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[9]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[10]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[10]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[11]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[11]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[12]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[12]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[13]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[13]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[14]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[14]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[15]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[15]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[16]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[16]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[17]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[17]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[18]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[18]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[19]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[19]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[20]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[20]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[21]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[21]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[22]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[22]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[23]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[23]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[24]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[24]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[25]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[25]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[26]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[26]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[27]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[27]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[28]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[28]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[29]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[29]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[30]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[30]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[31]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[31]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[32]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[32]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[33]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[33]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[34]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[34]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[35]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[35]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[36]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[36]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[37]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[37]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[38]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[38]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[39]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[39]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[40]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[40]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[41]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[41]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[42]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[42]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[43]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[43]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[44]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[44]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[45]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[45]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[46]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[46]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[47]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[47]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[48]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[48]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[49]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[49]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[50]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[50]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[51]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[51]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[52]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[52]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[53]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[53]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[54]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[54]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[55]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[55]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[56]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[56]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[57]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[57]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[58]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[58]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[59]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[59]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[60]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[60]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[61]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[61]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[62]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[62]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[63]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[63]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[64]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[64]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[65]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[65]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[66]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[66]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[67]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[67]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[68]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[68]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[69]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[69]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[70]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[70]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[71]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[71]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[72]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[72]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[73]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[73]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[74]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[74]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[75]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[75]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[76]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[76]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[77]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[77]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[78]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[78]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[79]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[79]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[80]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[80]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[81]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[81]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[82]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[82]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[83]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[83]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[84]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[84]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[85]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[85]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[86]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[86]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[87]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[87]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[88]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[88]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[89]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[89]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[90]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[90]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[91]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[91]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[92]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[92]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[93]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[93]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[94]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[94]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[95]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[95]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[96]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[96]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[97]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[97]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[98]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[98]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[99]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[99]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[100]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[100]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[101]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[101]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[102]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[102]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[103]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[103]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[104]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[104]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[105]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[105]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[106]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[106]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[107]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[107]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[108]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[108]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[109]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[109]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[110]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[110]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[111]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[111]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[112]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[112]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[113]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[113]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[114]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[114]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[115]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[115]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[116]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[116]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[117]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[117]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[118]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[118]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[119]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[119]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[120]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[120]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[121]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[121]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[122]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[122]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[123]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[123]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[124]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[124]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[125]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[125]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[126]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[126]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[127]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[127]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[129]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[129]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[130]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[130]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[131]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[131]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[132]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[132]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[133]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[133]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[134]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[134]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[135]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[135]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[136]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[136]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[137]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[137]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[138]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[138]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[139]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[139]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[140]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[140]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[141]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[141]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[142]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[142]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[143]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[143]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[144]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[144]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[145]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[145]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[146]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[146]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[147]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[147]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[148]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[148]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[149]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[149]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[150]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[150]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[151]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[151]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[152]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[152]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[153]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[153]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[154]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[154]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[155]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[155]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[156]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[156]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[157]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[157]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[158]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[158]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[159]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[159]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[160]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[160]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[161]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[161]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[162]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[162]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[163]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[163]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[164]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[164]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[165]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[165]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[166]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[166]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[167]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[167]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[168]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[168]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[169]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[169]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[170]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[170]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[171]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[171]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[172]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[172]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[173]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[173]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[174]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[174]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[175]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[175]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[176]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[176]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[177]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[177]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[178]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[178]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[179]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[179]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[180]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[180]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[181]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[181]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[182]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[182]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[183]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[183]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[184]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[184]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[185]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[185]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[186]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[186]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[187]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[187]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[188]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[188]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[189]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[189]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[190]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[190]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[191]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[191]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[192]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[192]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[193]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[193]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[194]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[194]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[195]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[195]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[196]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[196]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[197]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[197]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[198]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[198]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[199]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[199]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[200]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[200]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[201]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[201]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[202]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[202]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[203]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[203]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[204]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[204]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[205]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[205]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[206]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[206]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[207]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[207]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[208]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[208]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[209]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[209]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[210]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[210]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[211]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[211]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[212]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[212]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[213]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[213]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[214]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[214]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[215]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[215]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[216]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[216]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[217]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[217]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[218]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[218]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[219]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[219]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[220]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[220]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[221]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[221]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[222]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[222]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[223]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[223]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[224]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[224]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[225]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[225]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[226]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[226]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[227]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[227]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[228]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[228]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[229]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[229]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[230]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[230]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[231]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[231]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[232]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[232]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[233]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[233]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[234]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[234]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[235]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[235]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[236]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[236]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[237]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[237]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[238]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[238]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[239]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[239]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[240]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[240]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[241]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[241]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[242]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[242]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[243]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[243]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[244]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[244]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[245]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[245]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[246]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[246]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[247]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[247]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[248]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[248]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[249]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[249]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[250]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[250]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[251]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[251]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[252]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[252]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[253]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[253]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[254]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[254]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(bytes_characters)[255]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(bytes_characters)[255]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_STR(anon_dictcomp)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_STR(anon_dictcomp)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_STR(anon_genexpr)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_STR(anon_genexpr)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_STR(anon_lambda)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_STR(anon_lambda)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_STR(anon_listcomp)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_STR(anon_listcomp)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_STR(anon_module)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_STR(anon_module)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_STR(anon_setcomp)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_STR(anon_setcomp)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_STR(anon_string)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_STR(anon_string)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_STR(anon_unknown)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_STR(anon_unknown)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_STR(close_br)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_STR(close_br)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_STR(comma_sep)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_STR(comma_sep)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_STR(dbl_close_br)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_STR(dbl_close_br)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_STR(dbl_open_br)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_STR(dbl_open_br)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_STR(dbl_percent)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_STR(dbl_percent)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_STR(dot)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_STR(dot)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_STR(dot_locals)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_STR(dot_locals)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_STR(empty)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_STR(empty)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_STR(list_err)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_STR(list_err)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_STR(newline)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_STR(newline)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_STR(open_br)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_STR(open_br)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_STR(percent)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_STR(percent)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_STR(utf_8)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_STR(utf_8)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(False)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(False)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(Py_Repr)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(Py_Repr)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(TextIOWrapper)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(TextIOWrapper)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(True)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(True)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(WarningMessage)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(WarningMessage)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(_)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(_)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__IOBase_closed)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__IOBase_closed)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__abc_tpflags__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__abc_tpflags__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__abs__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__abs__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__abstractmethods__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__abstractmethods__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__add__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__add__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__aenter__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__aenter__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__aexit__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__aexit__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__aiter__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__aiter__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__all__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__all__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__and__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__and__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__anext__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__anext__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__annotations__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__annotations__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__args__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__args__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__await__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__await__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__bases__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__bases__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__bool__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__bool__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__build_class__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__build_class__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__builtins__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__builtins__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__bytes__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__bytes__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__call__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__call__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__cantrace__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__cantrace__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__class__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__class__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__class_getitem__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__class_getitem__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__classcell__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__classcell__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__complex__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__complex__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__contains__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__contains__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__copy__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__copy__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__del__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__del__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__delattr__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__delattr__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__delete__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__delete__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__delitem__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__delitem__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__dict__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__dict__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__dictoffset__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__dictoffset__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__dir__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__dir__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__divmod__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__divmod__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__doc__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__doc__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__enter__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__enter__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__eq__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__eq__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__exit__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__exit__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__file__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__file__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__float__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__float__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__floordiv__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__floordiv__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__format__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__format__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__fspath__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__fspath__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__ge__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__ge__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__get__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__get__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__getattr__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__getattr__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__getattribute__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__getattribute__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__getinitargs__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__getinitargs__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__getitem__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__getitem__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__getnewargs__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__getnewargs__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__getnewargs_ex__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__getnewargs_ex__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__getstate__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__getstate__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__gt__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__gt__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__hash__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__hash__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__iadd__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__iadd__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__iand__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__iand__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__ifloordiv__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__ifloordiv__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__ilshift__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__ilshift__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__imatmul__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__imatmul__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__imod__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__imod__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__import__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__import__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__imul__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__imul__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__index__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__index__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__init__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__init__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__init_subclass__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__init_subclass__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__instancecheck__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__instancecheck__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__int__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__int__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__invert__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__invert__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__ior__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__ior__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__ipow__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__ipow__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__irshift__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__irshift__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__isabstractmethod__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__isabstractmethod__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__isub__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__isub__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__iter__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__iter__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__itruediv__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__itruediv__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__ixor__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__ixor__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__le__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__le__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__len__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__len__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__length_hint__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__length_hint__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__lltrace__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__lltrace__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__loader__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__loader__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__lshift__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__lshift__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__lt__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__lt__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__main__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__main__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__matmul__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__matmul__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__missing__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__missing__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__mod__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__mod__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__module__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__module__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__mro_entries__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__mro_entries__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__mul__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__mul__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__name__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__name__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__ne__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__ne__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__neg__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__neg__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__new__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__new__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__newobj__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__newobj__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__newobj_ex__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__newobj_ex__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__next__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__next__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__notes__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__notes__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__or__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__or__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__orig_class__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__orig_class__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__origin__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__origin__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__package__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__package__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__parameters__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__parameters__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__path__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__path__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__pos__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__pos__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__pow__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__pow__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__prepare__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__prepare__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__qualname__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__qualname__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__radd__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__radd__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__rand__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__rand__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__rdivmod__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__rdivmod__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__reduce__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__reduce__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__reduce_ex__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__reduce_ex__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__repr__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__repr__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__reversed__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__reversed__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__rfloordiv__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__rfloordiv__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__rlshift__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__rlshift__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__rmatmul__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__rmatmul__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__rmod__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__rmod__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__rmul__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__rmul__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__ror__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__ror__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__round__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__round__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__rpow__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__rpow__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__rrshift__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__rrshift__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__rshift__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__rshift__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__rsub__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__rsub__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__rtruediv__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__rtruediv__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__rxor__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__rxor__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__set__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__set__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__set_name__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__set_name__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__setattr__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__setattr__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__setitem__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__setitem__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__setstate__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__setstate__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__sizeof__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__sizeof__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__slotnames__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__slotnames__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__slots__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__slots__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__spec__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__spec__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__str__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__str__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__sub__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__sub__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__subclasscheck__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__subclasscheck__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__subclasshook__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__subclasshook__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__truediv__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__truediv__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__trunc__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__trunc__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__typing_is_unpacked_typevartuple__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__typing_is_unpacked_typevartuple__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__typing_prepare_subst__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__typing_prepare_subst__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__typing_subst__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__typing_subst__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__typing_unpacked_tuple_args__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__typing_unpacked_tuple_args__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__warningregistry__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__warningregistry__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__weaklistoffset__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__weaklistoffset__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__weakref__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__weakref__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(__xor__)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(__xor__)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(_abc_impl)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(_abc_impl)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(_annotation)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(_annotation)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(_blksize)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(_blksize)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(_bootstrap)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(_bootstrap)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(_dealloc_warn)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(_dealloc_warn)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(_feature_version)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(_feature_version)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(_finalizing)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(_finalizing)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(_find_and_load)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(_find_and_load)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(_fix_up_module)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(_fix_up_module)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(_get_sourcefile)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(_get_sourcefile)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(_handle_fromlist)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(_handle_fromlist)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(_initializing)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(_initializing)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(_is_text_encoding)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(_is_text_encoding)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(_lock_unlock_module)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(_lock_unlock_module)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(_showwarnmsg)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(_showwarnmsg)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(_shutdown)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(_shutdown)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(_slotnames)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(_slotnames)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(_uninitialized_submodules)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(_uninitialized_submodules)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(_warn_unawaited_coroutine)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(_warn_unawaited_coroutine)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(_xoptions)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(_xoptions)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(a)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(a)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(abs_tol)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(abs_tol)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(access)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(access)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(add)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(add)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(after_in_child)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(after_in_child)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(after_in_parent)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(after_in_parent)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(aggregate_class)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(aggregate_class)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(append)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(append)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(argdefs)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(argdefs)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(arguments)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(arguments)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(argv)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(argv)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(attribute)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(attribute)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(authorizer_callback)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(authorizer_callback)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(b)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(b)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(backtick)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(backtick)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(base)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(base)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(before)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(before)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(big)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(big)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(binary_form)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(binary_form)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(block)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(block)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(buffer)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(buffer)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(buffer_callback)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(buffer_callback)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(buffer_size)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(buffer_size)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(buffering)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(buffering)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(buffers)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(buffers)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(bufsize)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(bufsize)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(builtins)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(builtins)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(byteorder)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(byteorder)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(bytes)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(bytes)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(bytes_per_sep)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(bytes_per_sep)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(c_call)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(c_call)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(c_exception)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(c_exception)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(c_return)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(c_return)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(cached_statements)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(cached_statements)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(cadata)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(cadata)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(cafile)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(cafile)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(call)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(call)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(capath)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(capath)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(category)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(category)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(cb_type)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(cb_type)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(certfile)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(certfile)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(check_same_thread)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(check_same_thread)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(clear)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(clear)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(close)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(close)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(closed)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(closed)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(closefd)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(closefd)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(closure)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(closure)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(co_argcount)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(co_argcount)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(co_cellvars)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(co_cellvars)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(co_code)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(co_code)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(co_consts)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(co_consts)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(co_exceptiontable)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(co_exceptiontable)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(co_filename)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(co_filename)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(co_firstlineno)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(co_firstlineno)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(co_flags)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(co_flags)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(co_freevars)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(co_freevars)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(co_kwonlyargcount)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(co_kwonlyargcount)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(co_linetable)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(co_linetable)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(co_name)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(co_name)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(co_names)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(co_names)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(co_nlocals)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(co_nlocals)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(co_posonlyargcount)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(co_posonlyargcount)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(co_qualname)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(co_qualname)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(co_stacksize)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(co_stacksize)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(co_varnames)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(co_varnames)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(code)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(code)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(command)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(command)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(comment_factory)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(comment_factory)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(consts)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(consts)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(context)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(context)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(cookie)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(cookie)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(copy)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(copy)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(copyreg)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(copyreg)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(coro)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(coro)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(count)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(count)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(cwd)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(cwd)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(data)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(data)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(database)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(database)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(decode)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(decode)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(decoder)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(decoder)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(default)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(default)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(defaultaction)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(defaultaction)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(delete)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(delete)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(depth)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(depth)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(detect_types)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(detect_types)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(deterministic)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(deterministic)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(device)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(device)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(dict)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(dict)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(dictcomp)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(dictcomp)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(difference_update)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(difference_update)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(digest)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(digest)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(digest_size)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(digest_size)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(digestmod)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(digestmod)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(dir_fd)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(dir_fd)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(dispatch_table)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(dispatch_table)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(displayhook)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(displayhook)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(dklen)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(dklen)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(doc)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(doc)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(dont_inherit)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(dont_inherit)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(dst)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(dst)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(dst_dir_fd)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(dst_dir_fd)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(duration)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(duration)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(effective_ids)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(effective_ids)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(element_factory)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(element_factory)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(encode)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(encode)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(encoding)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(encoding)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(end)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(end)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(end_lineno)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(end_lineno)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(end_offset)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(end_offset)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(endpos)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(endpos)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(env)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(env)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(errors)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(errors)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(event)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(event)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(eventmask)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(eventmask)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(exc_type)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(exc_type)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(exc_value)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(exc_value)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(excepthook)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(excepthook)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(exception)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(exception)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(exp)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(exp)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(extend)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(extend)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(factory)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(factory)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(family)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(family)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(fanout)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(fanout)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(fd)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(fd)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(fd2)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(fd2)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(fdel)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(fdel)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(fget)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(fget)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(file)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(file)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(file_actions)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(file_actions)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(filename)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(filename)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(fileno)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(fileno)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(filepath)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(filepath)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(fillvalue)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(fillvalue)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(filters)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(filters)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(final)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(final)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(find_class)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(find_class)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(fix_imports)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(fix_imports)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(flags)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(flags)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(flush)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(flush)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(follow_symlinks)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(follow_symlinks)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(format)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(format)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(frequency)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(frequency)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(fromlist)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(fromlist)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(fset)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(fset)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(func)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(func)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(generation)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(generation)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(genexpr)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(genexpr)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(get)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(get)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(get_source)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(get_source)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(getattr)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(getattr)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(getstate)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(getstate)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(gid)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(gid)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(globals)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(globals)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(groupindex)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(groupindex)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(groups)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(groups)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(handle)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(handle)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(hash_name)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(hash_name)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(header)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(header)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(headers)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(headers)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(hi)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(hi)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(hook)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(hook)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(id)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(id)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(ignore)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(ignore)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(imag)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(imag)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(importlib)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(importlib)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(in_fd)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(in_fd)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(incoming)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(incoming)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(indexgroup)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(indexgroup)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(inf)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(inf)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(inheritable)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(inheritable)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(initial)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(initial)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(initial_bytes)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(initial_bytes)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(initial_value)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(initial_value)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(initval)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(initval)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(inner_size)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(inner_size)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(input)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(input)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(insert_comments)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(insert_comments)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(insert_pis)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(insert_pis)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(instructions)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(instructions)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(intern)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(intern)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(intersection)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(intersection)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(isatty)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(isatty)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(isinstance)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(isinstance)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(isolation_level)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(isolation_level)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(istext)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(istext)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(item)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(item)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(items)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(items)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(iter)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(iter)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(iterable)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(iterable)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(iterations)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(iterations)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(join)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(join)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(jump)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(jump)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(keepends)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(keepends)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(key)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(key)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(keyfile)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(keyfile)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(keys)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(keys)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(kind)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(kind)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(lambda)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(lambda)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(last)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(last)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(last_node)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(last_node)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(last_traceback)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(last_traceback)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(last_type)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(last_type)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(last_value)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(last_value)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(latin1)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(latin1)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(leaf_size)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(leaf_size)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(len)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(len)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(length)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(length)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(level)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(level)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(limit)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(limit)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(line)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(line)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(line_buffering)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(line_buffering)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(lineno)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(lineno)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(listcomp)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(listcomp)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(little)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(little)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(lo)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(lo)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(locale)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(locale)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(locals)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(locals)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(loop)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(loop)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(mapping)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(mapping)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(match)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(match)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(max_length)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(max_length)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(maxdigits)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(maxdigits)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(maxevents)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(maxevents)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(maxmem)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(maxmem)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(maxsplit)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(maxsplit)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(maxvalue)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(maxvalue)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(memLevel)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(memLevel)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(memlimit)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(memlimit)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(message)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(message)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(metaclass)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(metaclass)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(method)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(method)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(mod)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(mod)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(mode)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(mode)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(module)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(module)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(module_globals)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(module_globals)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(modules)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(modules)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(mro)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(mro)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(msg)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(msg)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(n)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(n)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(n_arg)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(n_arg)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(n_fields)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(n_fields)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(n_sequence_fields)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(n_sequence_fields)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(n_unnamed_fields)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(n_unnamed_fields)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(name)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(name)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(namespace_separator)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(namespace_separator)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(namespaces)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(namespaces)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(narg)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(narg)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(ndigits)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(ndigits)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(new_limit)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(new_limit)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(newline)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(newline)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(newlines)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(newlines)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(next)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(next)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(node_depth)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(node_depth)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(node_offset)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(node_offset)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(ns)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(ns)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(number)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(number)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(obj)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(obj)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(object)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(object)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(offset)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(offset)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(offset_dst)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(offset_dst)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(offset_src)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(offset_src)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(on_type_read)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(on_type_read)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(onceregistry)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(onceregistry)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(oparg)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(oparg)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(opcode)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(opcode)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(open)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(open)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(opener)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(opener)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(operation)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(operation)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(optimize)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(optimize)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(options)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(options)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(order)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(order)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(out_fd)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(out_fd)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(outgoing)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(outgoing)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(overlapped)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(overlapped)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(owner)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(owner)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(p)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(p)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(pages)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(pages)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(parent)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(parent)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(password)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(password)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(path)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(path)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(pattern)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(pattern)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(peek)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(peek)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(persistent_id)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(persistent_id)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(persistent_load)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(persistent_load)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(person)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(person)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(pi_factory)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(pi_factory)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(pid)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(pid)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(policy)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(policy)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(pos)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(pos)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(print_file_and_line)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(print_file_and_line)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(priority)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(priority)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(progress)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(progress)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(progress_handler)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(progress_handler)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(proto)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(proto)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(protocol)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(protocol)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(ps1)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(ps1)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(ps2)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(ps2)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(query)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(query)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(quotetabs)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(quotetabs)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(r)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(r)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(raw)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(raw)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(read)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(read)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(read1)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(read1)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(readable)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(readable)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(readall)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(readall)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(readinto)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(readinto)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(readinto1)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(readinto1)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(readline)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(readline)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(readonly)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(readonly)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(real)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(real)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(reducer_override)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(reducer_override)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(registry)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(registry)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(rel_tol)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(rel_tol)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(reload)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(reload)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(repl)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(repl)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(replace)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(replace)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(reserved)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(reserved)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(reset)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(reset)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(resetids)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(resetids)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(return)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(return)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(reverse)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(reverse)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(reversed)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(reversed)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(s)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(s)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(salt)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(salt)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(sched_priority)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(sched_priority)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(scheduler)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(scheduler)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(seek)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(seek)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(seekable)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(seekable)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(selectors)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(selectors)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(send)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(send)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(sep)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(sep)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(sequence)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(sequence)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(server_hostname)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(server_hostname)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(server_side)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(server_side)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(session)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(session)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(setcomp)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(setcomp)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(setpgroup)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(setpgroup)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(setsid)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(setsid)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(setsigdef)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(setsigdef)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(setsigmask)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(setsigmask)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(setstate)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(setstate)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(shape)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(shape)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(show_cmd)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(show_cmd)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(signed)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(signed)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(size)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(size)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(sizehint)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(sizehint)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(sleep)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(sleep)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(sock)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(sock)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(sort)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(sort)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(sound)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(sound)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(source)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(source)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(src)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(src)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(src_dir_fd)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(src_dir_fd)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(stacklevel)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(stacklevel)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(start)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(start)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(statement)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(statement)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(status)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(status)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(stderr)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(stderr)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(stdin)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(stdin)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(stdout)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(stdout)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(step)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(step)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(store_name)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(store_name)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(strategy)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(strategy)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(strict)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(strict)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(strict_mode)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(strict_mode)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(string)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(string)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(sub_key)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(sub_key)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(symmetric_difference_update)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(symmetric_difference_update)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(tabsize)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(tabsize)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(tag)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(tag)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(target)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(target)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(target_is_directory)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(target_is_directory)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(task)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(task)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(tb_frame)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(tb_frame)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(tb_lasti)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(tb_lasti)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(tb_lineno)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(tb_lineno)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(tb_next)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(tb_next)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(tell)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(tell)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(template)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(template)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(term)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(term)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(text)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(text)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(threading)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(threading)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(throw)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(throw)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(timeout)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(timeout)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(times)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(times)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(top)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(top)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(trace_callback)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(trace_callback)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(traceback)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(traceback)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(trailers)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(trailers)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(translate)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(translate)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(truncate)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(truncate)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(twice)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(twice)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(txt)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(txt)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(type)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(type)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(tz)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(tz)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(uid)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(uid)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(unlink)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(unlink)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(unraisablehook)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(unraisablehook)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(uri)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(uri)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(usedforsecurity)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(usedforsecurity)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(value)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(value)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(values)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(values)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(version)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(version)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(warnings)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(warnings)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(warnoptions)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(warnoptions)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(wbits)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(wbits)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(week)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(week)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(weekday)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(weekday)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(which)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(which)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(who)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(who)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(withdata)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(withdata)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(writable)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(writable)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(write)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(write)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(write_through)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(write_through)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(x)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(x)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(year)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(year)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_ID(zdict)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_ID(zdict)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[0]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[0]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[1]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[1]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[2]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[2]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[3]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[3]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[4]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[4]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[5]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[5]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[6]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[6]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[7]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[7]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[8]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[8]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[9]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[9]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[10]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[10]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[11]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[11]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[12]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[12]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[13]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[13]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[14]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[14]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[15]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[15]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[16]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[16]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[17]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[17]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[18]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[18]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[19]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[19]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[20]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[20]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[21]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[21]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[22]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[22]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[23]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[23]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[24]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[24]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[25]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[25]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[26]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[26]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[27]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[27]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[28]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[28]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[29]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[29]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[30]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[30]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[31]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[31]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[32]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[32]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[33]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[33]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[34]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[34]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[35]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[35]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[36]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[36]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[37]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[37]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[38]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[38]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[39]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[39]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[40]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[40]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[41]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[41]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[42]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[42]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[43]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[43]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[44]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[44]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[45]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[45]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[46]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[46]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[47]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[47]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[48]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[48]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[49]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[49]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[50]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[50]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[51]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[51]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[52]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[52]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[53]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[53]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[54]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[54]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[55]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[55]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[56]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[56]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[57]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[57]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[58]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[58]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[59]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[59]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[60]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[60]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[61]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[61]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[62]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[62]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[63]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[63]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[64]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[64]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[65]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[65]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[66]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[66]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[67]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[67]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[68]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[68]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[69]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[69]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[70]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[70]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[71]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[71]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[72]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[72]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[73]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[73]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[74]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[74]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[75]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[75]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[76]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[76]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[77]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[77]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[78]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[78]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[79]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[79]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[80]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[80]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[81]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[81]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[82]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[82]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[83]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[83]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[84]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[84]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[85]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[85]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[86]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[86]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[87]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[87]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[88]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[88]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[89]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[89]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[90]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[90]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[91]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[91]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[92]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[92]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[93]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[93]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[94]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[94]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[95]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[95]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[96]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[96]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[97]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[97]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[98]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[98]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[99]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[99]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[100]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[100]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[101]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[101]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[102]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[102]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[103]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[103]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[104]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[104]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[105]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[105]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[106]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[106]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[107]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[107]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[108]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[108]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[109]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[109]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[110]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[110]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[111]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[111]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[112]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[112]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[113]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[113]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[114]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[114]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[115]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[115]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[116]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[116]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[117]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[117]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[118]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[118]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[119]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[119]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[120]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[120]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[121]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[121]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[122]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[122]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[123]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[123]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[124]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[124]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[125]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[125]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[126]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[126]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).ascii[127]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).ascii[127]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[128 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[128 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[129 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[129 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[130 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[130 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[131 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[131 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[132 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[132 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[133 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[133 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[134 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[134 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[135 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[135 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[136 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[136 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[137 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[137 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[138 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[138 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[139 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[139 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[140 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[140 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[141 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[141 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[142 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[142 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[143 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[143 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[144 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[144 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[145 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[145 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[146 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[146 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[147 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[147 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[148 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[148 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[149 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[149 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[150 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[150 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[151 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[151 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[152 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[152 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[153 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[153 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[154 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[154 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[155 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[155 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[156 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[156 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[157 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[157 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[158 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[158 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[159 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[159 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[160 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[160 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[161 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[161 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[162 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[162 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[163 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[163 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[164 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[164 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[165 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[165 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[166 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[166 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[167 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[167 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[168 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[168 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[169 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[169 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[170 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[170 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[171 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[171 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[172 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[172 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[173 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[173 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[174 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[174 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[175 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[175 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[176 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[176 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[177 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[177 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[178 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[178 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[179 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[179 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[180 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[180 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[181 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[181 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[182 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[182 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[183 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[183 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[184 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[184 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[185 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[185 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[186 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[186 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[187 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[187 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[188 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[188 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[189 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[189 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[190 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[190 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[191 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[191 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[192 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[192 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[193 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[193 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[194 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[194 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[195 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[195 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[196 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[196 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[197 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[197 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[198 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[198 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[199 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[199 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[200 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[200 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[201 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[201 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[202 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[202 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[203 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[203 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[204 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[204 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[205 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[205 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[206 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[206 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[207 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[207 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[208 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[208 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[209 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[209 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[210 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[210 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[211 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[211 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[212 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[212 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[213 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[213 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[214 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[214 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[215 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[215 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[216 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[216 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[217 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[217 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[218 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[218 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[219 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[219 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[220 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[220 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[221 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[221 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[222 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[222 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[223 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[223 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[224 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[224 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[225 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[225 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[226 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[226 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[227 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[227 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[228 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[228 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[229 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[229 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[230 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[230 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[231 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[231 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[232 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[232 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[233 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[233 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[234 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[234 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[235 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[235 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[236 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[236 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[237 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[237 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[238 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[238 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[239 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[239 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[240 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[240 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[241 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[241 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[242 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[242 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[243 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[243 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[244 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[244 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[245 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[245 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[246 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[246 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[247 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[247 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[248 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[248 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[249 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[249 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[250 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[250 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[251 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[251 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[252 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[252 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[253 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[253 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[254 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[254 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(strings).latin1[255 - 128]) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(strings).latin1[255 - 128]); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; - if (Py_REFCNT((PyObject *)&_Py_SINGLETON(tuple_empty)) < _PyObject_IMMORTAL_REFCNT) { - _PyObject_Dump((PyObject *)&_Py_SINGLETON(tuple_empty)); - Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT"); - }; -} -#endif -/* End auto-generated code */ -#ifdef __cplusplus -} -#endif -#endif /* !Py_INTERNAL_RUNTIME_INIT_GENERATED_H */ diff --git a/Include/internal/pycore_sliceobject.h b/Include/internal/pycore_sliceobject.h index 98665c3859d574..e81834c041e415 100644 --- a/Include/internal/pycore_sliceobject.h +++ b/Include/internal/pycore_sliceobject.h @@ -13,8 +13,6 @@ extern "C" { extern void _PySlice_Fini(PyInterpreterState *); -extern PyObject * -_PyBuildSlice_ConsumeRefs(PyObject *start, PyObject *stop); #ifdef __cplusplus } diff --git a/Include/internal/pycore_structseq.h b/Include/internal/pycore_structseq.h index d10a921c55ff8b..0199c790e24cec 100644 --- a/Include/internal/pycore_structseq.h +++ b/Include/internal/pycore_structseq.h @@ -15,18 +15,11 @@ PyAPI_FUNC(PyTypeObject *) _PyStructSequence_NewType( PyStructSequence_Desc *desc, unsigned long tp_flags); -PyAPI_FUNC(int) _PyStructSequence_InitBuiltinWithFlags( +PyAPI_FUNC(int) _PyStructSequence_InitType( PyTypeObject *type, PyStructSequence_Desc *desc, unsigned long tp_flags); -static inline int -_PyStructSequence_InitBuiltin(PyTypeObject *type, - PyStructSequence_Desc *desc) -{ - return _PyStructSequence_InitBuiltinWithFlags(type, desc, 0); -} - extern void _PyStructSequence_FiniType(PyTypeObject *type); #ifdef __cplusplus diff --git a/Include/internal/pycore_symtable.h b/Include/internal/pycore_symtable.h index 2d64aba22ff905..28935f4ed55012 100644 --- a/Include/internal/pycore_symtable.h +++ b/Include/internal/pycore_symtable.h @@ -77,7 +77,7 @@ typedef struct _symtable_entry { extern PyTypeObject PySTEntry_Type; -#define PySTEntry_Check(op) Py_IS_TYPE((op), &PySTEntry_Type) +#define PySTEntry_Check(op) Py_IS_TYPE(op, &PySTEntry_Type) extern long _PyST_GetSymbol(PySTEntryObject *, PyObject *); extern int _PyST_GetScope(PySTEntryObject *, PyObject *); diff --git a/Include/internal/pycore_typeobject.h b/Include/internal/pycore_typeobject.h index 5e7aca1b9f5ae9..c480a3a57b436c 100644 --- a/Include/internal/pycore_typeobject.h +++ b/Include/internal/pycore_typeobject.h @@ -11,6 +11,7 @@ extern "C" { /* runtime lifecycle */ +extern PyStatus _PyTypes_InitState(PyInterpreterState *); extern PyStatus _PyTypes_InitTypes(PyInterpreterState *); extern void _PyTypes_FiniTypes(PyInterpreterState *); extern void _PyTypes_Fini(PyInterpreterState *); @@ -38,43 +39,11 @@ struct type_cache { #endif }; -/* For now we hard-code this to a value for which we are confident - all the static builtin types will fit (for all builds). */ -#define _Py_MAX_STATIC_BUILTIN_TYPES 200 +extern PyStatus _PyTypes_InitSlotDefs(void); -typedef struct { - PyTypeObject *type; - PyObject *tp_subclasses; - /* We never clean up weakrefs for static builtin types since - they will effectively never get triggered. However, there - are also some diagnostic uses for the list of weakrefs, - so we still keep it. */ - PyObject *tp_weaklist; -} static_builtin_state; - -static inline PyObject ** -_PyStaticType_GET_WEAKREFS_LISTPTR(static_builtin_state *state) -{ - assert(state != NULL); - return &state->tp_weaklist; -} - -struct types_state { - struct type_cache type_cache; - size_t num_builtins_initialized; - static_builtin_state builtins[_Py_MAX_STATIC_BUILTIN_TYPES]; -}; - - -extern int _PyStaticType_InitBuiltin(PyTypeObject *type); -extern static_builtin_state * _PyStaticType_GetState(PyTypeObject *); -extern void _PyStaticType_ClearWeakRefs(PyTypeObject *type); extern void _PyStaticType_Dealloc(PyTypeObject *type); -PyObject *_Py_slot_tp_getattro(PyObject *self, PyObject *name); -PyObject *_Py_slot_tp_getattr_hook(PyObject *self, PyObject *name); - #ifdef __cplusplus } #endif diff --git a/Include/internal/pycore_unicodeobject.h b/Include/internal/pycore_unicodeobject.h index 63bf04b3e1b872..4bee2419fbd98a 100644 --- a/Include/internal/pycore_unicodeobject.h +++ b/Include/internal/pycore_unicodeobject.h @@ -19,6 +19,7 @@ extern PyStatus _PyUnicode_InitGlobalObjects(PyInterpreterState *); extern PyStatus _PyUnicode_InitTypes(PyInterpreterState *); extern void _PyUnicode_Fini(PyInterpreterState *); extern void _PyUnicode_FiniTypes(PyInterpreterState *); +extern void _PyStaticUnicode_Dealloc(PyObject *); extern PyTypeObject _PyUnicodeASCIIIter_Type; diff --git a/Include/internal/pycore_unionobject.h b/Include/internal/pycore_unionobject.h index 87264635b6e1cf..a9ed5651a410e8 100644 --- a/Include/internal/pycore_unionobject.h +++ b/Include/internal/pycore_unionobject.h @@ -9,10 +9,10 @@ extern "C" { #endif extern PyTypeObject _PyUnion_Type; -#define _PyUnion_Check(op) Py_IS_TYPE((op), &_PyUnion_Type) +#define _PyUnion_Check(op) Py_IS_TYPE(op, &_PyUnion_Type) extern PyObject *_Py_union_type_or(PyObject *, PyObject *); -#define _PyGenericAlias_Check(op) PyObject_TypeCheck((op), &Py_GenericAliasType) +#define _PyGenericAlias_Check(op) PyObject_TypeCheck(op, &Py_GenericAliasType) extern PyObject *_Py_subs_parameters(PyObject *, PyObject *, PyObject *, PyObject *); extern PyObject *_Py_make_parameters(PyObject *); extern PyObject *_Py_union_args(PyObject *self); diff --git a/Include/iterobject.h b/Include/iterobject.h index fff30f7176fdeb..6454611aebef8a 100644 --- a/Include/iterobject.h +++ b/Include/iterobject.h @@ -11,12 +11,12 @@ PyAPI_DATA(PyTypeObject) PyCallIter_Type; extern PyTypeObject _PyAnextAwaitable_Type; #endif -#define PySeqIter_Check(op) Py_IS_TYPE((op), &PySeqIter_Type) +#define PySeqIter_Check(op) Py_IS_TYPE(op, &PySeqIter_Type) PyAPI_FUNC(PyObject *) PySeqIter_New(PyObject *); -#define PyCallIter_Check(op) Py_IS_TYPE((op), &PyCallIter_Type) +#define PyCallIter_Check(op) Py_IS_TYPE(op, &PyCallIter_Type) PyAPI_FUNC(PyObject *) PyCallIter_New(PyObject *, PyObject *); diff --git a/Include/listobject.h b/Include/listobject.h index 6b7041ba0b05d5..eff42c188f1ff1 100644 --- a/Include/listobject.h +++ b/Include/listobject.h @@ -23,7 +23,7 @@ PyAPI_DATA(PyTypeObject) PyListRevIter_Type; #define PyList_Check(op) \ PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_LIST_SUBCLASS) -#define PyList_CheckExact(op) Py_IS_TYPE((op), &PyList_Type) +#define PyList_CheckExact(op) Py_IS_TYPE(op, &PyList_Type) PyAPI_FUNC(PyObject *) PyList_New(Py_ssize_t size); PyAPI_FUNC(Py_ssize_t) PyList_Size(PyObject *); diff --git a/Include/longobject.h b/Include/longobject.h index e559e238ae5a35..81ba1239a69ecf 100644 --- a/Include/longobject.h +++ b/Include/longobject.h @@ -11,7 +11,7 @@ PyAPI_DATA(PyTypeObject) PyLong_Type; #define PyLong_Check(op) \ PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_LONG_SUBCLASS) -#define PyLong_CheckExact(op) Py_IS_TYPE((op), &PyLong_Type) +#define PyLong_CheckExact(op) Py_IS_TYPE(op, &PyLong_Type) PyAPI_FUNC(PyObject *) PyLong_FromLong(long); PyAPI_FUNC(PyObject *) PyLong_FromUnsignedLong(unsigned long); diff --git a/Include/memoryobject.h b/Include/memoryobject.h index 19aec679a5fad1..154397ce1e56d2 100644 --- a/Include/memoryobject.h +++ b/Include/memoryobject.h @@ -11,7 +11,7 @@ PyAPI_DATA(PyTypeObject) _PyManagedBuffer_Type; #endif PyAPI_DATA(PyTypeObject) PyMemoryView_Type; -#define PyMemoryView_Check(op) Py_IS_TYPE((op), &PyMemoryView_Type) +#define PyMemoryView_Check(op) Py_IS_TYPE(op, &PyMemoryView_Type) #ifndef Py_LIMITED_API /* Get a pointer to the memoryview's private copy of the exporter's buffer. */ diff --git a/Include/methodobject.h b/Include/methodobject.h index 72af5ad933df7f..c971d78a640a68 100644 --- a/Include/methodobject.h +++ b/Include/methodobject.h @@ -13,8 +13,8 @@ extern "C" { PyAPI_DATA(PyTypeObject) PyCFunction_Type; -#define PyCFunction_CheckExact(op) Py_IS_TYPE((op), &PyCFunction_Type) -#define PyCFunction_Check(op) PyObject_TypeCheck((op), &PyCFunction_Type) +#define PyCFunction_CheckExact(op) Py_IS_TYPE(op, &PyCFunction_Type) +#define PyCFunction_Check(op) PyObject_TypeCheck(op, &PyCFunction_Type) typedef PyObject *(*PyCFunction)(PyObject *, PyObject *); typedef PyObject *(*_PyCFunctionFast) (PyObject *, PyObject *const *, Py_ssize_t); diff --git a/Include/modsupport.h b/Include/modsupport.h index 4e369bd56b4d20..0e96a5c988846e 100644 --- a/Include/modsupport.h +++ b/Include/modsupport.h @@ -37,6 +37,8 @@ PyAPI_FUNC(PyObject *) Py_BuildValue(const char *, ...); PyAPI_FUNC(PyObject *) _Py_BuildValue_SizeT(const char *, ...); +#define ANY_VARARGS(n) (n == PY_SSIZE_T_MAX) + PyAPI_FUNC(PyObject *) Py_VaBuildValue(const char *, va_list); // Add an attribute with name 'name' and value 'obj' to the module 'mod. @@ -56,8 +58,8 @@ PyAPI_FUNC(int) PyModule_AddStringConstant(PyObject *, const char *, const char PyAPI_FUNC(int) PyModule_AddType(PyObject *module, PyTypeObject *type); #endif /* Py_LIMITED_API */ -#define PyModule_AddIntMacro(m, c) PyModule_AddIntConstant((m), #c, (c)) -#define PyModule_AddStringMacro(m, c) PyModule_AddStringConstant((m), #c, (c)) +#define PyModule_AddIntMacro(m, c) PyModule_AddIntConstant(m, #c, c) +#define PyModule_AddStringMacro(m, c) PyModule_AddStringConstant(m, #c, c) #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 /* New in 3.5 */ @@ -132,10 +134,10 @@ PyAPI_FUNC(PyObject *) PyModule_Create2(PyModuleDef*, int apiver); #ifdef Py_LIMITED_API #define PyModule_Create(module) \ - PyModule_Create2((module), PYTHON_ABI_VERSION) + PyModule_Create2(module, PYTHON_ABI_VERSION) #else #define PyModule_Create(module) \ - PyModule_Create2((module), PYTHON_API_VERSION) + PyModule_Create2(module, PYTHON_API_VERSION) #endif #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 @@ -146,10 +148,10 @@ PyAPI_FUNC(PyObject *) PyModule_FromDefAndSpec2(PyModuleDef *def, #ifdef Py_LIMITED_API #define PyModule_FromDefAndSpec(module, spec) \ - PyModule_FromDefAndSpec2((module), (spec), PYTHON_ABI_VERSION) + PyModule_FromDefAndSpec2(module, spec, PYTHON_ABI_VERSION) #else #define PyModule_FromDefAndSpec(module, spec) \ - PyModule_FromDefAndSpec2((module), (spec), PYTHON_API_VERSION) + PyModule_FromDefAndSpec2(module, spec, PYTHON_API_VERSION) #endif /* Py_LIMITED_API */ #endif /* New in 3.5 */ diff --git a/Include/moduleobject.h b/Include/moduleobject.h index fbb2c5ae79444b..75abd2cf2b9050 100644 --- a/Include/moduleobject.h +++ b/Include/moduleobject.h @@ -9,8 +9,8 @@ extern "C" { PyAPI_DATA(PyTypeObject) PyModule_Type; -#define PyModule_Check(op) PyObject_TypeCheck((op), &PyModule_Type) -#define PyModule_CheckExact(op) Py_IS_TYPE((op), &PyModule_Type) +#define PyModule_Check(op) PyObject_TypeCheck(op, &PyModule_Type) +#define PyModule_CheckExact(op) Py_IS_TYPE(op, &PyModule_Type) #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 PyAPI_FUNC(PyObject *) PyModule_NewObject( diff --git a/Include/object.h b/Include/object.h index 75624fe8c77a51..a3c6bd4fa984d5 100644 --- a/Include/object.h +++ b/Include/object.h @@ -80,10 +80,10 @@ whose size is determined when the object is allocated. #define PyObject_HEAD_INIT(type) \ { _PyObject_EXTRA_INIT \ - 1, (type) }, + 1, type }, #define PyVarObject_HEAD_INIT(type, size) \ - { PyObject_HEAD_INIT(type) (size) }, + { PyObject_HEAD_INIT(type) size }, /* PyObject_VAR_HEAD defines the initial segment of all variable-size * container objects. These end with a declaration of an array with 1 @@ -152,7 +152,7 @@ static inline int Py_IS_TYPE(PyObject *ob, PyTypeObject *type) { return Py_TYPE(ob) == type; } #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define Py_IS_TYPE(ob, type) Py_IS_TYPE(_PyObject_CAST(ob), (type)) +# define Py_IS_TYPE(ob, type) Py_IS_TYPE(_PyObject_CAST(ob), type) #endif @@ -160,7 +160,7 @@ static inline void Py_SET_REFCNT(PyObject *ob, Py_ssize_t refcnt) { ob->ob_refcnt = refcnt; } #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define Py_SET_REFCNT(ob, refcnt) Py_SET_REFCNT(_PyObject_CAST(ob), (refcnt)) +# define Py_SET_REFCNT(ob, refcnt) Py_SET_REFCNT(_PyObject_CAST(ob), refcnt) #endif @@ -176,7 +176,7 @@ static inline void Py_SET_SIZE(PyVarObject *ob, Py_ssize_t size) { ob->ob_size = size; } #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define Py_SET_SIZE(ob, size) Py_SET_SIZE(_PyVarObject_CAST(ob), (size)) +# define Py_SET_SIZE(ob, size) Py_SET_SIZE(_PyVarObject_CAST(ob), size) #endif @@ -228,11 +228,6 @@ typedef int (*initproc)(PyObject *, PyObject *, PyObject *); typedef PyObject *(*newfunc)(PyTypeObject *, PyObject *, PyObject *); typedef PyObject *(*allocfunc)(PyTypeObject *, Py_ssize_t); -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030c0000 // 3.12 -typedef PyObject *(*vectorcallfunc)(PyObject *callable, PyObject *const *args, - size_t nargsf, PyObject *kwnames); -#endif - typedef struct{ int slot; /* slot id, see below */ void *pfunc; /* function pointer */ @@ -273,7 +268,7 @@ static inline int PyObject_TypeCheck(PyObject *ob, PyTypeObject *type) { return Py_IS_TYPE(ob, type) || PyType_IsSubtype(Py_TYPE(ob), type); } #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyObject_TypeCheck(ob, type) PyObject_TypeCheck(_PyObject_CAST(ob), (type)) +# define PyObject_TypeCheck(ob, type) PyObject_TypeCheck(_PyObject_CAST(ob), type) #endif PyAPI_DATA(PyTypeObject) PyType_Type; /* built-in 'type' */ @@ -357,21 +352,12 @@ given type object has a specified feature. #ifndef Py_LIMITED_API -/* Track types initialized using _PyStaticType_InitBuiltin(). */ -#define _Py_TPFLAGS_STATIC_BUILTIN (1 << 1) - -/* Placement of weakref pointers are managed by the VM, not by the type. - * The VM will automatically set tp_weaklistoffset. - */ -#define Py_TPFLAGS_MANAGED_WEAKREF (1 << 3) - /* Placement of dict (and values) pointers are managed by the VM, not by the type. - * The VM will automatically set tp_dictoffset. + * The VM will automatically set tp_dictoffset. Should not be used for variable sized + * classes, such as classes that extend tuple. */ #define Py_TPFLAGS_MANAGED_DICT (1 << 4) -#define Py_TPFLAGS_PREHEADER (Py_TPFLAGS_MANAGED_WEAKREF | Py_TPFLAGS_MANAGED_DICT) - /* Set if instances of the type object are treated as sequences for pattern matching */ #define Py_TPFLAGS_SEQUENCE (1 << 5) /* Set if instances of the type object are treated as mappings for pattern matching */ @@ -392,13 +378,11 @@ given type object has a specified feature. #define Py_TPFLAGS_BASETYPE (1UL << 10) /* Set if the type implements the vectorcall protocol (PEP 590) */ -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030C0000 -#define Py_TPFLAGS_HAVE_VECTORCALL (1UL << 11) #ifndef Py_LIMITED_API +#define Py_TPFLAGS_HAVE_VECTORCALL (1UL << 11) // Backwards compatibility alias for API that was provisional in Python 3.8 #define _Py_TPFLAGS_HAVE_VECTORCALL Py_TPFLAGS_HAVE_VECTORCALL #endif -#endif /* Set if the type is 'ready' -- fully initialized */ #define Py_TPFLAGS_READY (1UL << 12) @@ -511,11 +495,11 @@ PyAPI_FUNC(void) _Py_DecRef(PyObject *); static inline void Py_INCREF(PyObject *op) { + _Py_INCREF_STAT_INC(); #if defined(Py_REF_DEBUG) && defined(Py_LIMITED_API) && Py_LIMITED_API+0 >= 0x030A0000 // Stable ABI for Python 3.10 built in debug mode. _Py_IncRef(op); #else - _Py_INCREF_STAT_INC(); // Non-limited C API and limited C API for Python 3.9 and older access // directly PyObject.ob_refcnt. #ifdef Py_REF_DEBUG @@ -795,7 +779,7 @@ PyType_HasFeature(PyTypeObject *type, unsigned long feature) return ((flags & feature) != 0); } -#define PyType_FastSubclass(type, flag) PyType_HasFeature((type), (flag)) +#define PyType_FastSubclass(type, flag) PyType_HasFeature(type, flag) static inline int PyType_Check(PyObject *op) { return PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_TYPE_SUBCLASS); diff --git a/Include/objimpl.h b/Include/objimpl.h index dde8df34835328..4fa670e71ab46f 100644 --- a/Include/objimpl.h +++ b/Include/objimpl.h @@ -135,14 +135,14 @@ PyAPI_FUNC(PyVarObject *) _PyObject_NewVar(PyTypeObject *, Py_ssize_t); // Alias to PyObject_New(). In Python 3.8, PyObject_NEW() called directly // PyObject_MALLOC() with _PyObject_SIZE(). -#define PyObject_NEW(type, typeobj) PyObject_New(type, (typeobj)) +#define PyObject_NEW(type, typeobj) PyObject_New(type, typeobj) #define PyObject_NewVar(type, typeobj, n) \ ( (type *) _PyObject_NewVar((typeobj), (n)) ) // Alias to PyObject_NewVar(). In Python 3.8, PyObject_NEW_VAR() called // directly PyObject_MALLOC() with _PyObject_VAR_SIZE(). -#define PyObject_NEW_VAR(type, typeobj, n) PyObject_NewVar(type, (typeobj), (n)) +#define PyObject_NEW_VAR(type, typeobj, n) PyObject_NewVar(type, typeobj, n) /* diff --git a/Include/opcode.h b/Include/opcode.h index 42825df6217b46..f76ca946be3ad4 100644 --- a/Include/opcode.h +++ b/Include/opcode.h @@ -17,8 +17,6 @@ extern "C" { #define UNARY_NOT 12 #define UNARY_INVERT 15 #define BINARY_SUBSCR 25 -#define BINARY_SLICE 26 -#define STORE_SLICE 27 #define GET_LEN 30 #define MATCH_MAPPING 31 #define MATCH_SEQUENCE 32 @@ -32,7 +30,6 @@ extern "C" { #define BEFORE_ASYNC_WITH 52 #define BEFORE_WITH 53 #define END_ASYNC_FOR 54 -#define CLEANUP_THROW 55 #define STORE_SUBSCR 60 #define DELETE_SUBSCR 61 #define GET_ITER 68 @@ -72,8 +69,8 @@ extern "C" { #define JUMP_FORWARD 110 #define JUMP_IF_FALSE_OR_POP 111 #define JUMP_IF_TRUE_OR_POP 112 -#define POP_JUMP_IF_FALSE 114 -#define POP_JUMP_IF_TRUE 115 +#define POP_JUMP_FORWARD_IF_FALSE 114 +#define POP_JUMP_FORWARD_IF_TRUE 115 #define LOAD_GLOBAL 116 #define IS_OP 117 #define CONTAINS_OP 118 @@ -84,9 +81,8 @@ extern "C" { #define LOAD_FAST 124 #define STORE_FAST 125 #define DELETE_FAST 126 -#define LOAD_FAST_CHECK 127 -#define POP_JUMP_IF_NOT_NONE 128 -#define POP_JUMP_IF_NONE 129 +#define POP_JUMP_FORWARD_IF_NOT_NONE 128 +#define POP_JUMP_FORWARD_IF_NONE 129 #define RAISE_VARARGS 130 #define GET_AWAITABLE 131 #define MAKE_FUNCTION 132 @@ -111,21 +107,17 @@ extern "C" { #define FORMAT_VALUE 155 #define BUILD_CONST_KEY_MAP 156 #define BUILD_STRING 157 +#define LOAD_METHOD 160 #define LIST_EXTEND 162 #define SET_UPDATE 163 #define DICT_MERGE 164 #define DICT_UPDATE 165 #define CALL 171 #define KW_NAMES 172 -#define MIN_PSEUDO_OPCODE 256 -#define SETUP_FINALLY 256 -#define SETUP_CLEANUP 257 -#define SETUP_WITH 258 -#define POP_BLOCK 259 -#define JUMP 260 -#define JUMP_NO_INTERRUPT 261 -#define LOAD_METHOD 262 -#define MAX_PSEUDO_OPCODE 262 +#define POP_JUMP_BACKWARD_IF_NOT_NONE 173 +#define POP_JUMP_BACKWARD_IF_NONE 174 +#define POP_JUMP_BACKWARD_IF_FALSE 175 +#define POP_JUMP_BACKWARD_IF_TRUE 176 #define BINARY_OP_ADAPTIVE 3 #define BINARY_OP_ADD_FLOAT 4 #define BINARY_OP_ADD_INT 5 @@ -143,73 +135,64 @@ extern "C" { #define CALL_ADAPTIVE 22 #define CALL_PY_EXACT_ARGS 23 #define CALL_PY_WITH_DEFAULTS 24 -#define CALL_BOUND_METHOD_EXACT_ARGS 28 -#define CALL_BUILTIN_CLASS 29 -#define CALL_BUILTIN_FAST_WITH_KEYWORDS 34 -#define CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS 38 -#define CALL_NO_KW_BUILTIN_FAST 39 -#define CALL_NO_KW_BUILTIN_O 40 -#define CALL_NO_KW_ISINSTANCE 41 -#define CALL_NO_KW_LEN 42 -#define CALL_NO_KW_LIST_APPEND 43 -#define CALL_NO_KW_METHOD_DESCRIPTOR_FAST 44 -#define CALL_NO_KW_METHOD_DESCRIPTOR_NOARGS 45 -#define CALL_NO_KW_METHOD_DESCRIPTOR_O 46 -#define CALL_NO_KW_STR_1 47 -#define CALL_NO_KW_TUPLE_1 48 -#define CALL_NO_KW_TYPE_1 56 -#define COMPARE_OP_ADAPTIVE 57 -#define COMPARE_OP_FLOAT_JUMP 58 -#define COMPARE_OP_INT_JUMP 59 -#define COMPARE_OP_STR_JUMP 62 -#define EXTENDED_ARG_QUICK 63 -#define FOR_ITER_ADAPTIVE 64 -#define FOR_ITER_LIST 65 -#define FOR_ITER_RANGE 66 -#define JUMP_BACKWARD_QUICK 67 -#define LOAD_ATTR_ADAPTIVE 72 -#define LOAD_ATTR_CLASS 73 -#define LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN 76 -#define LOAD_ATTR_INSTANCE_VALUE 77 -#define LOAD_ATTR_MODULE 78 -#define LOAD_ATTR_PROPERTY 79 -#define LOAD_ATTR_SLOT 80 -#define LOAD_ATTR_WITH_HINT 81 -#define LOAD_ATTR_METHOD_LAZY_DICT 86 -#define LOAD_ATTR_METHOD_NO_DICT 113 -#define LOAD_ATTR_METHOD_WITH_DICT 121 -#define LOAD_ATTR_METHOD_WITH_VALUES 141 -#define LOAD_CONST__LOAD_FAST 143 -#define LOAD_FAST__LOAD_CONST 153 -#define LOAD_FAST__LOAD_FAST 154 -#define LOAD_GLOBAL_ADAPTIVE 158 -#define LOAD_GLOBAL_BUILTIN 159 -#define LOAD_GLOBAL_MODULE 160 -#define RESUME_QUICK 161 -#define STORE_ATTR_ADAPTIVE 166 -#define STORE_ATTR_INSTANCE_VALUE 167 -#define STORE_ATTR_SLOT 168 -#define STORE_ATTR_WITH_HINT 169 -#define STORE_FAST__LOAD_FAST 170 -#define STORE_FAST__STORE_FAST 173 -#define STORE_SUBSCR_ADAPTIVE 174 -#define STORE_SUBSCR_DICT 175 -#define STORE_SUBSCR_LIST_INT 176 -#define UNPACK_SEQUENCE_ADAPTIVE 177 -#define UNPACK_SEQUENCE_LIST 178 -#define UNPACK_SEQUENCE_TUPLE 179 -#define UNPACK_SEQUENCE_TWO_TUPLE 180 +#define CALL_BOUND_METHOD_EXACT_ARGS 26 +#define CALL_BUILTIN_CLASS 27 +#define CALL_BUILTIN_FAST_WITH_KEYWORDS 28 +#define CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS 29 +#define CALL_NO_KW_BUILTIN_FAST 34 +#define CALL_NO_KW_BUILTIN_O 38 +#define CALL_NO_KW_ISINSTANCE 39 +#define CALL_NO_KW_LEN 40 +#define CALL_NO_KW_LIST_APPEND 41 +#define CALL_NO_KW_METHOD_DESCRIPTOR_FAST 42 +#define CALL_NO_KW_METHOD_DESCRIPTOR_NOARGS 43 +#define CALL_NO_KW_METHOD_DESCRIPTOR_O 44 +#define CALL_NO_KW_STR_1 45 +#define CALL_NO_KW_TUPLE_1 46 +#define CALL_NO_KW_TYPE_1 47 +#define COMPARE_OP_ADAPTIVE 48 +#define COMPARE_OP_FLOAT_JUMP 55 +#define COMPARE_OP_INT_JUMP 56 +#define COMPARE_OP_STR_JUMP 57 +#define EXTENDED_ARG_QUICK 58 +#define JUMP_BACKWARD_QUICK 59 +#define LOAD_ATTR_ADAPTIVE 62 +#define LOAD_ATTR_INSTANCE_VALUE 63 +#define LOAD_ATTR_MODULE 64 +#define LOAD_ATTR_SLOT 65 +#define LOAD_ATTR_WITH_HINT 66 +#define LOAD_CONST__LOAD_FAST 67 +#define LOAD_FAST__LOAD_CONST 72 +#define LOAD_FAST__LOAD_FAST 73 +#define LOAD_GLOBAL_ADAPTIVE 76 +#define LOAD_GLOBAL_BUILTIN 77 +#define LOAD_GLOBAL_MODULE 78 +#define LOAD_METHOD_ADAPTIVE 79 +#define LOAD_METHOD_CLASS 80 +#define LOAD_METHOD_LAZY_DICT 81 +#define LOAD_METHOD_MODULE 86 +#define LOAD_METHOD_NO_DICT 113 +#define LOAD_METHOD_WITH_DICT 121 +#define LOAD_METHOD_WITH_VALUES 127 +#define RESUME_QUICK 141 +#define STORE_ATTR_ADAPTIVE 143 +#define STORE_ATTR_INSTANCE_VALUE 153 +#define STORE_ATTR_SLOT 154 +#define STORE_ATTR_WITH_HINT 158 +#define STORE_FAST__LOAD_FAST 159 +#define STORE_FAST__STORE_FAST 161 +#define STORE_SUBSCR_ADAPTIVE 166 +#define STORE_SUBSCR_DICT 167 +#define STORE_SUBSCR_LIST_INT 168 +#define UNPACK_SEQUENCE_ADAPTIVE 169 +#define UNPACK_SEQUENCE_LIST 170 +#define UNPACK_SEQUENCE_TUPLE 177 +#define UNPACK_SEQUENCE_TWO_TUPLE 178 #define DO_TRACING 255 -#define HAS_ARG(op) ((((op) >= HAVE_ARGUMENT) && (!IS_PSEUDO_OPCODE(op)))\ - || ((op) == JUMP) \ - || ((op) == JUMP_NO_INTERRUPT) \ - || ((op) == LOAD_METHOD) \ - ) - #define HAS_CONST(op) (false\ - || ((op) == LOAD_CONST) \ - || ((op) == KW_NAMES) \ + || ((op) == 100) \ + || ((op) == 172) \ ) #define NB_ADD 0 @@ -239,8 +222,11 @@ extern "C" { #define NB_INPLACE_TRUE_DIVIDE 24 #define NB_INPLACE_XOR 25 +#define HAS_ARG(op) ((op) >= HAVE_ARGUMENT) -#define IS_PSEUDO_OPCODE(op) (((op) >= MIN_PSEUDO_OPCODE) && ((op) <= MAX_PSEUDO_OPCODE)) +/* Reserve some bytecodes for internal use in the compiler. + * The value of 240 is arbitrary. */ +#define IS_ARTIFICIAL(op) ((op) > 240) #ifdef __cplusplus } diff --git a/Include/py_curses.h b/Include/py_curses.h index e46b08e9cc414e..b2c7f1bb4309c6 100644 --- a/Include/py_curses.h +++ b/Include/py_curses.h @@ -64,7 +64,7 @@ typedef struct { char *encoding; } PyCursesWindowObject; -#define PyCursesWindow_Check(v) Py_IS_TYPE((v), &PyCursesWindow_Type) +#define PyCursesWindow_Check(v) Py_IS_TYPE(v, &PyCursesWindow_Type) #define PyCurses_CAPSULE_NAME "_curses._C_API" diff --git a/Include/pycapsule.h b/Include/pycapsule.h index 929a9a685259fb..fb5d503fea73f1 100644 --- a/Include/pycapsule.h +++ b/Include/pycapsule.h @@ -22,7 +22,7 @@ PyAPI_DATA(PyTypeObject) PyCapsule_Type; typedef void (*PyCapsule_Destructor)(PyObject *); -#define PyCapsule_CheckExact(op) Py_IS_TYPE((op), &PyCapsule_Type) +#define PyCapsule_CheckExact(op) Py_IS_TYPE(op, &PyCapsule_Type) PyAPI_FUNC(PyObject *) PyCapsule_New( diff --git a/Include/pyerrors.h b/Include/pyerrors.h index d5ac6af5b32c6c..34e3de3328f410 100644 --- a/Include/pyerrors.h +++ b/Include/pyerrors.h @@ -62,10 +62,10 @@ PyAPI_FUNC(void) PyException_SetContext(PyObject *, PyObject *); PyAPI_FUNC(const char *) PyExceptionClass_Name(PyObject *); -#define PyExceptionInstance_Class(x) _PyObject_CAST(Py_TYPE(x)) +#define PyExceptionInstance_Class(x) ((PyObject*)Py_TYPE(x)) #define _PyBaseExceptionGroup_Check(x) \ - PyObject_TypeCheck((x), (PyTypeObject *)PyExc_BaseExceptionGroup) + PyObject_TypeCheck(x, (PyTypeObject *)PyExc_BaseExceptionGroup) /* Predefined exceptions */ diff --git a/Include/pyframe.h b/Include/pyframe.h index 13d52312ea966e..feac16f69de698 100644 --- a/Include/pyframe.h +++ b/Include/pyframe.h @@ -14,12 +14,6 @@ PyAPI_FUNC(int) PyFrame_GetLineNumber(PyFrameObject *); PyAPI_FUNC(PyCodeObject *) PyFrame_GetCode(PyFrameObject *frame); -#ifndef Py_LIMITED_API -# define Py_CPYTHON_PYFRAME_H -# include "cpython/pyframe.h" -# undef Py_CPYTHON_PYFRAME_H -#endif - #ifdef __cplusplus } #endif diff --git a/Include/pymacro.h b/Include/pymacro.h index e37cda44c5ebf1..0a2c342e2c8aee 100644 --- a/Include/pymacro.h +++ b/Include/pymacro.h @@ -12,10 +12,8 @@ // static_assert is defined in glibc from version 2.16. Before it requires // compiler support (gcc >= 4.6) and is called _Static_assert. -// In C++ 11 static_assert is a keyword, redefining is undefined behaviour. #if (defined(__GLIBC__) \ && (__GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ <= 16)) \ - && !(defined(__cplusplus) && __cplusplus >= 201103L) \ && !defined(static_assert)) # define static_assert _Static_assert #endif diff --git a/Include/pymem.h b/Include/pymem.h index e882645757bfd3..c15ad10dfcf831 100644 --- a/Include/pymem.h +++ b/Include/pymem.h @@ -82,13 +82,13 @@ PyAPI_FUNC(void) PyMem_Free(void *ptr); // Deprecated aliases only kept for backward compatibility. // PyMem_Del and PyMem_DEL are defined with no parameter to be able to use // them as function pointers (ex: dealloc = PyMem_Del). -#define PyMem_MALLOC(n) PyMem_Malloc((n)) -#define PyMem_NEW(type, n) PyMem_New(type, (n)) -#define PyMem_REALLOC(p, n) PyMem_Realloc((p), (n)) -#define PyMem_RESIZE(p, type, n) PyMem_Resize((p), type, (n)) -#define PyMem_FREE(p) PyMem_Free((p)) -#define PyMem_Del(p) PyMem_Free((p)) -#define PyMem_DEL(p) PyMem_Free((p)) +#define PyMem_MALLOC(n) PyMem_Malloc(n) +#define PyMem_NEW(type, n) PyMem_New(type, n) +#define PyMem_REALLOC(p, n) PyMem_Realloc(p, n) +#define PyMem_RESIZE(p, type, n) PyMem_Resize(p, type, n) +#define PyMem_FREE(p) PyMem_Free(p) +#define PyMem_Del PyMem_Free +#define PyMem_DEL PyMem_Free #ifndef Py_LIMITED_API diff --git a/Include/pyport.h b/Include/pyport.h index b3ff2f4882e90f..6ea2bba232b3dd 100644 --- a/Include/pyport.h +++ b/Include/pyport.h @@ -14,19 +14,50 @@ #endif -// Macro to use C++ static_cast<> in the Python C API. +// Macro to use C++ static_cast<>, reinterpret_cast<> and const_cast<> +// in the Python C API. +// +// In C++, _Py_CAST(type, expr) converts a constant expression to a +// non constant type using const_cast<type>. For example, +// _Py_CAST(PyObject*, op) can convert a "const PyObject*" to +// "PyObject*". +// +// The type argument must not be a constant type. #ifdef __cplusplus # define _Py_STATIC_CAST(type, expr) static_cast<type>(expr) +extern "C++" { + namespace { + template <typename type, typename expr_type> + inline type _Py_CAST_impl(expr_type *expr) { + return reinterpret_cast<type>(expr); + } + + template <typename type, typename expr_type> + inline type _Py_CAST_impl(expr_type const *expr) { + return reinterpret_cast<type>(const_cast<expr_type *>(expr)); + } + + template <typename type, typename expr_type> + inline type _Py_CAST_impl(expr_type &expr) { + return static_cast<type>(expr); + } + + template <typename type, typename expr_type> + inline type _Py_CAST_impl(expr_type const &expr) { + return static_cast<type>(const_cast<expr_type &>(expr)); + } + } +} +# define _Py_CAST(type, expr) _Py_CAST_impl<type>(expr) + #else # define _Py_STATIC_CAST(type, expr) ((type)(expr)) +# define _Py_CAST(type, expr) ((type)(expr)) #endif -// Macro to use the more powerful/dangerous C-style cast even in C++. -#define _Py_CAST(type, expr) ((type)(expr)) // Static inline functions should use _Py_NULL rather than using directly NULL -// to prevent C++ compiler warnings. On C++11 and newer, _Py_NULL is defined as -// nullptr. -#if defined(__cplusplus) && __cplusplus >= 201103 +// to prevent C++ compiler warnings. In C++, _Py_NULL uses nullptr. +#ifdef __cplusplus # define _Py_NULL nullptr #else # define _Py_NULL NULL diff --git a/Include/pystats.h b/Include/pystats.h index 87e92aa4f05fa6..bea471bfc1de94 100644 --- a/Include/pystats.h +++ b/Include/pystats.h @@ -73,22 +73,19 @@ typedef struct _stats { ObjectStats object_stats; } PyStats; +PyAPI_DATA(PyStats) _py_stats; -PyAPI_DATA(PyStats) _py_stats_struct; -PyAPI_DATA(PyStats *) _py_stats; - -extern void _Py_StatsClear(void); extern void _Py_PrintSpecializationStats(int to_file); #ifdef _PY_INTERPRETER -#define _Py_INCREF_STAT_INC() do { if (_py_stats) _py_stats->object_stats.interpreter_increfs++; } while (0) -#define _Py_DECREF_STAT_INC() do { if (_py_stats) _py_stats->object_stats.interpreter_decrefs++; } while (0) +#define _Py_INCREF_STAT_INC() _py_stats.object_stats.interpreter_increfs++ +#define _Py_DECREF_STAT_INC() _py_stats.object_stats.interpreter_decrefs++ #else -#define _Py_INCREF_STAT_INC() do { if (_py_stats) _py_stats->object_stats.increfs++; } while (0) -#define _Py_DECREF_STAT_INC() do { if (_py_stats) _py_stats->object_stats.decrefs++; } while (0) +#define _Py_INCREF_STAT_INC() _py_stats.object_stats.increfs++ +#define _Py_DECREF_STAT_INC() _py_stats.object_stats.decrefs++ #endif diff --git a/Include/rangeobject.h b/Include/rangeobject.h index d46ce7cd41b741..d6af8473f9e8d3 100644 --- a/Include/rangeobject.h +++ b/Include/rangeobject.h @@ -19,7 +19,7 @@ PyAPI_DATA(PyTypeObject) PyRange_Type; PyAPI_DATA(PyTypeObject) PyRangeIter_Type; PyAPI_DATA(PyTypeObject) PyLongRangeIter_Type; -#define PyRange_Check(op) Py_IS_TYPE((op), &PyRange_Type) +#define PyRange_Check(op) Py_IS_TYPE(op, &PyRange_Type) #ifdef __cplusplus } diff --git a/Include/setobject.h b/Include/setobject.h index 62c9e6b13f8901..fdad70644c545c 100644 --- a/Include/setobject.h +++ b/Include/setobject.h @@ -20,21 +20,21 @@ PyAPI_FUNC(int) PySet_Discard(PyObject *set, PyObject *key); PyAPI_FUNC(PyObject *) PySet_Pop(PyObject *set); PyAPI_FUNC(Py_ssize_t) PySet_Size(PyObject *anyset); -#define PyFrozenSet_CheckExact(ob) Py_IS_TYPE((ob), &PyFrozenSet_Type) +#define PyFrozenSet_CheckExact(ob) Py_IS_TYPE(ob, &PyFrozenSet_Type) #define PyFrozenSet_Check(ob) \ - (Py_IS_TYPE((ob), &PyFrozenSet_Type) || \ + (Py_IS_TYPE(ob, &PyFrozenSet_Type) || \ PyType_IsSubtype(Py_TYPE(ob), &PyFrozenSet_Type)) #define PyAnySet_CheckExact(ob) \ - (Py_IS_TYPE((ob), &PySet_Type) || Py_IS_TYPE((ob), &PyFrozenSet_Type)) + (Py_IS_TYPE(ob, &PySet_Type) || Py_IS_TYPE(ob, &PyFrozenSet_Type)) #define PyAnySet_Check(ob) \ - (Py_IS_TYPE((ob), &PySet_Type) || Py_IS_TYPE((ob), &PyFrozenSet_Type) || \ + (Py_IS_TYPE(ob, &PySet_Type) || Py_IS_TYPE(ob, &PyFrozenSet_Type) || \ PyType_IsSubtype(Py_TYPE(ob), &PySet_Type) || \ PyType_IsSubtype(Py_TYPE(ob), &PyFrozenSet_Type)) #define PySet_CheckExact(op) Py_IS_TYPE(op, &PySet_Type) #define PySet_Check(ob) \ - (Py_IS_TYPE((ob), &PySet_Type) || \ + (Py_IS_TYPE(ob, &PySet_Type) || \ PyType_IsSubtype(Py_TYPE(ob), &PySet_Type)) #ifndef Py_LIMITED_API diff --git a/Include/sliceobject.h b/Include/sliceobject.h index c13863f27c2e63..2c889508b4b495 100644 --- a/Include/sliceobject.h +++ b/Include/sliceobject.h @@ -28,7 +28,7 @@ typedef struct { PyAPI_DATA(PyTypeObject) PySlice_Type; PyAPI_DATA(PyTypeObject) PyEllipsis_Type; -#define PySlice_Check(op) Py_IS_TYPE((op), &PySlice_Type) +#define PySlice_Check(op) Py_IS_TYPE(op, &PySlice_Type) PyAPI_FUNC(PyObject *) PySlice_New(PyObject* start, PyObject* stop, PyObject* step); diff --git a/Include/structseq.h b/Include/structseq.h index 96871155611958..4f5c09f7ba05ef 100644 --- a/Include/structseq.h +++ b/Include/structseq.h @@ -35,9 +35,9 @@ PyAPI_FUNC(PyObject *) PyStructSequence_New(PyTypeObject* type); typedef PyTupleObject PyStructSequence; /* Macro, *only* to be used to fill in brand new objects */ -#define PyStructSequence_SET_ITEM(op, i, v) PyTuple_SET_ITEM((op), (i), (v)) +#define PyStructSequence_SET_ITEM(op, i, v) PyTuple_SET_ITEM(op, i, v) -#define PyStructSequence_GET_ITEM(op, i) PyTuple_GET_ITEM((op), (i)) +#define PyStructSequence_GET_ITEM(op, i) PyTuple_GET_ITEM(op, i) #endif PyAPI_FUNC(void) PyStructSequence_SetItem(PyObject*, Py_ssize_t, PyObject*); diff --git a/Include/traceback.h b/Include/traceback.h index 2b40cc9fc32617..2dfa2ada4f2c37 100644 --- a/Include/traceback.h +++ b/Include/traceback.h @@ -11,7 +11,7 @@ PyAPI_FUNC(int) PyTraceBack_Print(PyObject *, PyObject *); /* Reveal traceback type so we can typecheck traceback objects */ PyAPI_DATA(PyTypeObject) PyTraceBack_Type; -#define PyTraceBack_Check(v) Py_IS_TYPE((v), &PyTraceBack_Type) +#define PyTraceBack_Check(v) Py_IS_TYPE(v, &PyTraceBack_Type) #ifndef Py_LIMITED_API diff --git a/Include/tupleobject.h b/Include/tupleobject.h index 1f9ab54be65f87..dc68e3fc5c6d88 100644 --- a/Include/tupleobject.h +++ b/Include/tupleobject.h @@ -25,7 +25,7 @@ PyAPI_DATA(PyTypeObject) PyTupleIter_Type; #define PyTuple_Check(op) \ PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_TUPLE_SUBCLASS) -#define PyTuple_CheckExact(op) Py_IS_TYPE((op), &PyTuple_Type) +#define PyTuple_CheckExact(op) Py_IS_TYPE(op, &PyTuple_Type) PyAPI_FUNC(PyObject *) PyTuple_New(Py_ssize_t size); PyAPI_FUNC(Py_ssize_t) PyTuple_Size(PyObject *); diff --git a/Include/unicodeobject.h b/Include/unicodeobject.h index 74474f5bb8f976..27fde229022a1c 100644 --- a/Include/unicodeobject.h +++ b/Include/unicodeobject.h @@ -113,7 +113,7 @@ PyAPI_DATA(PyTypeObject) PyUnicodeIter_Type; #define PyUnicode_Check(op) \ PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_UNICODE_SUBCLASS) -#define PyUnicode_CheckExact(op) Py_IS_TYPE((op), &PyUnicode_Type) +#define PyUnicode_CheckExact(op) Py_IS_TYPE(op, &PyUnicode_Type) /* --- Constants ---------------------------------------------------------- */ diff --git a/Include/weakrefobject.h b/Include/weakrefobject.h index 8e1fa1b9286a77..f071e9c759a641 100644 --- a/Include/weakrefobject.h +++ b/Include/weakrefobject.h @@ -12,12 +12,12 @@ PyAPI_DATA(PyTypeObject) _PyWeakref_RefType; PyAPI_DATA(PyTypeObject) _PyWeakref_ProxyType; PyAPI_DATA(PyTypeObject) _PyWeakref_CallableProxyType; -#define PyWeakref_CheckRef(op) PyObject_TypeCheck((op), &_PyWeakref_RefType) +#define PyWeakref_CheckRef(op) PyObject_TypeCheck(op, &_PyWeakref_RefType) #define PyWeakref_CheckRefExact(op) \ - Py_IS_TYPE((op), &_PyWeakref_RefType) + Py_IS_TYPE(op, &_PyWeakref_RefType) #define PyWeakref_CheckProxy(op) \ - (Py_IS_TYPE((op), &_PyWeakref_ProxyType) \ - || Py_IS_TYPE((op), &_PyWeakref_CallableProxyType)) + (Py_IS_TYPE(op, &_PyWeakref_ProxyType) || \ + Py_IS_TYPE(op, &_PyWeakref_CallableProxyType)) #define PyWeakref_Check(op) \ (PyWeakref_CheckRef(op) || PyWeakref_CheckProxy(op)) diff --git a/Lib/__future__.py b/Lib/__future__.py index 39720a5e4126cd..97dc90c6e4644a 100644 --- a/Lib/__future__.py +++ b/Lib/__future__.py @@ -33,7 +33,7 @@ to use the feature in question, but may continue to use such imports. MandatoryRelease may also be None, meaning that a planned feature got -dropped or that the release version is undetermined. +dropped. Instances of class _Feature have two corresponding methods, .getOptionalRelease() and .getMandatoryRelease(). @@ -96,7 +96,7 @@ def getMandatoryRelease(self): """Return release in which this feature will become mandatory. This is a 5-tuple, of the same form as sys.version_info, or, if - the feature was dropped, or the release date is undetermined, is None. + the feature was dropped, is None. """ return self.mandatory @@ -143,5 +143,5 @@ def __repr__(self): CO_FUTURE_GENERATOR_STOP) annotations = _Feature((3, 7, 0, "beta", 1), - None, + (3, 11, 0, "alpha", 0), CO_FUTURE_ANNOTATIONS) diff --git a/Lib/_bootsubprocess.py b/Lib/_bootsubprocess.py new file mode 100644 index 00000000000000..014782f616c823 --- /dev/null +++ b/Lib/_bootsubprocess.py @@ -0,0 +1,97 @@ +""" +Basic subprocess implementation for POSIX which only uses os functions. Only +implement features required by setup.py to build C extension modules when +subprocess is unavailable. setup.py is not used on Windows. +""" +import os + + +# distutils.spawn used by distutils.command.build_ext +# calls subprocess.Popen().wait() +class Popen: + def __init__(self, cmd, env=None): + self._cmd = cmd + self._env = env + self.returncode = None + + def wait(self): + pid = os.fork() + if pid == 0: + # Child process + try: + if self._env is not None: + os.execve(self._cmd[0], self._cmd, self._env) + else: + os.execv(self._cmd[0], self._cmd) + finally: + os._exit(1) + else: + # Parent process + _, status = os.waitpid(pid, 0) + self.returncode = os.waitstatus_to_exitcode(status) + + return self.returncode + + +def _check_cmd(cmd): + # Use regex [a-zA-Z0-9./-]+: reject empty string, space, etc. + safe_chars = [] + for first, last in (("a", "z"), ("A", "Z"), ("0", "9")): + for ch in range(ord(first), ord(last) + 1): + safe_chars.append(chr(ch)) + safe_chars.append("./-") + safe_chars = ''.join(safe_chars) + + if isinstance(cmd, (tuple, list)): + check_strs = cmd + elif isinstance(cmd, str): + check_strs = [cmd] + else: + return False + + for arg in check_strs: + if not isinstance(arg, str): + return False + if not arg: + # reject empty string + return False + for ch in arg: + if ch not in safe_chars: + return False + + return True + + +# _aix_support used by distutil.util calls subprocess.check_output() +def check_output(cmd, **kwargs): + if kwargs: + raise NotImplementedError(repr(kwargs)) + + if not _check_cmd(cmd): + raise ValueError(f"unsupported command: {cmd!r}") + + tmp_filename = "check_output.tmp" + if not isinstance(cmd, str): + cmd = " ".join(cmd) + cmd = f"{cmd} >{tmp_filename}" + + try: + # system() spawns a shell + status = os.system(cmd) + exitcode = os.waitstatus_to_exitcode(status) + if exitcode: + raise ValueError(f"Command {cmd!r} returned non-zero " + f"exit status {exitcode!r}") + + try: + with open(tmp_filename, "rb") as fp: + stdout = fp.read() + except FileNotFoundError: + stdout = b'' + finally: + try: + os.unlink(tmp_filename) + except OSError: + pass + + return stdout diff --git a/Lib/_pyio.py b/Lib/_pyio.py index 12510784c8b926..0bfdeaafae274b 100644 --- a/Lib/_pyio.py +++ b/Lib/_pyio.py @@ -303,6 +303,22 @@ def _open_code_with_warning(path): open_code = _open_code_with_warning +def __getattr__(name): + if name == "OpenWrapper": + # bpo-43680: Until Python 3.9, _pyio.open was not a static method and + # builtins.open was set to OpenWrapper to not become a bound method + # when set to a class variable. _io.open is a built-in function whereas + # _pyio.open is a Python function. In Python 3.10, _pyio.open() is now + # a static method, and builtins.open() is now io.open(). + import warnings + warnings.warn('OpenWrapper is deprecated, use open instead', + DeprecationWarning, stacklevel=2) + global OpenWrapper + OpenWrapper = open + return OpenWrapper + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + + # In normal operation, both `UnsupportedOperation`s should be bound to the # same object. try: diff --git a/Lib/argparse.py b/Lib/argparse.py index d2dcfdf5682f7c..1c5520c4b41bd1 100644 --- a/Lib/argparse.py +++ b/Lib/argparse.py @@ -2161,9 +2161,7 @@ def _read_args_from_files(self, arg_strings): # replace arguments referencing files with the file content else: try: - with open(arg_string[1:], - encoding=_sys.getfilesystemencoding(), - errors=_sys.getfilesystemencodeerrors()) as args_file: + with open(arg_string[1:]) as args_file: arg_strings = [] for arg_line in args_file.read().splitlines(): for arg in self.convert_arg_line_to_args(arg_line): @@ -2477,11 +2475,9 @@ def _get_values(self, action, arg_strings): not action.option_strings): if action.default is not None: value = action.default - self._check_value(action, value) else: - # since arg_strings is always [] at this point - # there is no need to use self._check_value(action, value) value = arg_strings + self._check_value(action, value) # single argument or optional argument produces a single value elif len(arg_strings) == 1 and action.nargs in [None, OPTIONAL]: @@ -2523,6 +2519,7 @@ def _get_value(self, action, arg_string): # ArgumentTypeErrors indicate errors except ArgumentTypeError as err: + name = getattr(action.type, '__name__', repr(action.type)) msg = str(err) raise ArgumentError(action, msg) diff --git a/Lib/ast.py b/Lib/ast.py index 8adb61fed45388..4e2ae859245f99 100644 --- a/Lib/ast.py +++ b/Lib/ast.py @@ -40,13 +40,12 @@ def parse(source, filename='<unknown>', mode='exec', *, flags = PyCF_ONLY_AST if type_comments: flags |= PyCF_TYPE_COMMENTS - if feature_version is None: - feature_version = -1 - elif isinstance(feature_version, tuple): + if isinstance(feature_version, tuple): major, minor = feature_version # Should be a 2-tuple. - if major != 3: - raise ValueError(f"Unsupported major version: {major}") + assert major == 3 feature_version = minor + elif feature_version is None: + feature_version = -1 # Else it should be an int giving the minor version for 3.x. return compile(source, filename, mode, flags, _feature_version=feature_version) @@ -853,7 +852,7 @@ def visit_Import(self, node): def visit_ImportFrom(self, node): self.fill("from ") - self.write("." * (node.level or 0)) + self.write("." * node.level) if node.module: self.write(node.module) self.write(" import ") diff --git a/Lib/asyncio/base_events.py b/Lib/asyncio/base_events.py index a675fff1688d27..fa00bf9a2ca090 100644 --- a/Lib/asyncio/base_events.py +++ b/Lib/asyncio/base_events.py @@ -980,8 +980,7 @@ async def create_connection( local_addr=None, server_hostname=None, ssl_handshake_timeout=None, ssl_shutdown_timeout=None, - happy_eyeballs_delay=None, interleave=None, - all_errors=False): + happy_eyeballs_delay=None, interleave=None): """Connect to a TCP server. Create a streaming transport connection to a given internet host and @@ -1070,8 +1069,6 @@ async def create_connection( if sock is None: exceptions = [exc for sub in exceptions for exc in sub] - if all_errors: - raise ExceptionGroup("create_connection failed", exceptions) if len(exceptions) == 1: raise exceptions[0] else: diff --git a/Lib/asyncio/base_futures.py b/Lib/asyncio/base_futures.py index 7987963bd99349..cd811a788cb6df 100644 --- a/Lib/asyncio/base_futures.py +++ b/Lib/asyncio/base_futures.py @@ -1,6 +1,7 @@ __all__ = () import reprlib +from _thread import get_ident from . import format_helpers diff --git a/Lib/asyncio/coroutines.py b/Lib/asyncio/coroutines.py index 7fda0e449d500a..0e4b489f30fd7c 100644 --- a/Lib/asyncio/coroutines.py +++ b/Lib/asyncio/coroutines.py @@ -4,6 +4,7 @@ import inspect import os import sys +import traceback import types diff --git a/Lib/asyncio/futures.py b/Lib/asyncio/futures.py index 4bd9629e9eb62b..08c79e7b5109bf 100644 --- a/Lib/asyncio/futures.py +++ b/Lib/asyncio/futures.py @@ -206,7 +206,7 @@ def result(self): raise exceptions.InvalidStateError('Result is not ready.') self.__log_traceback = False if self._exception is not None: - raise self._exception.with_traceback(self._exception_tb) + raise self._exception return self._result def exception(self): @@ -282,7 +282,6 @@ def set_exception(self, exception): raise TypeError("StopIteration interacts badly with generators " "and cannot be raised into a Future") self._exception = exception - self._exception_tb = exception.__traceback__ self._state = _FINISHED self.__schedule_callbacks() self.__log_traceback = True diff --git a/Lib/asyncio/locks.py b/Lib/asyncio/locks.py index 42177f1c079948..e71130274dd6f3 100644 --- a/Lib/asyncio/locks.py +++ b/Lib/asyncio/locks.py @@ -8,6 +8,7 @@ from . import exceptions from . import mixins +from . import tasks class _ContextManagerMixin: async def __aenter__(self): diff --git a/Lib/asyncio/runners.py b/Lib/asyncio/runners.py index 840b133df83ee6..065691bed99285 100644 --- a/Lib/asyncio/runners.py +++ b/Lib/asyncio/runners.py @@ -5,6 +5,7 @@ import functools import threading import signal +import sys from . import coroutines from . import events from . import exceptions @@ -52,7 +53,6 @@ def __init__(self, *, debug=None, loop_factory=None): self._loop = None self._context = None self._interrupt_count = 0 - self._set_event_loop = False def __enter__(self): self._lazy_init() @@ -71,8 +71,6 @@ def close(self): loop.run_until_complete(loop.shutdown_asyncgens()) loop.run_until_complete(loop.shutdown_default_executor()) finally: - if self._set_event_loop: - events.set_event_loop(None) loop.close() self._loop = None self._state = _State.CLOSED @@ -116,11 +114,10 @@ def run(self, coro, *, context=None): try: return self._loop.run_until_complete(task) except exceptions.CancelledError: - if self._interrupt_count > 0: - uncancel = getattr(task, "uncancel", None) - if uncancel is not None and uncancel() == 0: - raise KeyboardInterrupt() - raise # CancelledError + if self._interrupt_count > 0 and task.uncancel() == 0: + raise KeyboardInterrupt() + else: + raise # CancelledError finally: if (sigint_handler is not None and signal.getsignal(signal.SIGINT) is sigint_handler @@ -134,11 +131,6 @@ def _lazy_init(self): return if self._loop_factory is None: self._loop = events.new_event_loop() - if not self._set_event_loop: - # Call set_event_loop only once to avoid calling - # attach_loop multiple times on child watchers - events.set_event_loop(self._loop) - self._set_event_loop = True else: self._loop = self._loop_factory() if self._debug is not None: diff --git a/Lib/asyncio/streams.py b/Lib/asyncio/streams.py index c4d837a1170819..a568c4e4b295f0 100644 --- a/Lib/asyncio/streams.py +++ b/Lib/asyncio/streams.py @@ -2,9 +2,9 @@ 'StreamReader', 'StreamWriter', 'StreamReaderProtocol', 'open_connection', 'start_server') -import collections import socket import sys +import warnings import weakref if hasattr(socket, 'AF_UNIX'): @@ -129,7 +129,7 @@ def __init__(self, loop=None): else: self._loop = loop self._paused = False - self._drain_waiters = collections.deque() + self._drain_waiter = None self._connection_lost = False def pause_writing(self): @@ -144,34 +144,38 @@ def resume_writing(self): if self._loop.get_debug(): logger.debug("%r resumes writing", self) - for waiter in self._drain_waiters: + waiter = self._drain_waiter + if waiter is not None: + self._drain_waiter = None if not waiter.done(): waiter.set_result(None) def connection_lost(self, exc): self._connection_lost = True - # Wake up the writer(s) if currently paused. + # Wake up the writer if currently paused. if not self._paused: return - - for waiter in self._drain_waiters: - if not waiter.done(): - if exc is None: - waiter.set_result(None) - else: - waiter.set_exception(exc) + waiter = self._drain_waiter + if waiter is None: + return + self._drain_waiter = None + if waiter.done(): + return + if exc is None: + waiter.set_result(None) + else: + waiter.set_exception(exc) async def _drain_helper(self): if self._connection_lost: raise ConnectionResetError('Connection lost') if not self._paused: return + waiter = self._drain_waiter + assert waiter is None or waiter.cancelled() waiter = self._loop.create_future() - self._drain_waiters.append(waiter) - try: - await waiter - finally: - self._drain_waiters.remove(waiter) + self._drain_waiter = waiter + await waiter def _get_close_waiter(self, stream): raise NotImplementedError @@ -202,7 +206,6 @@ def __init__(self, stream_reader, client_connected_cb=None, loop=None): self._strong_reader = stream_reader self._reject_connection = False self._stream_writer = None - self._task = None self._transport = None self._client_connected_cb = client_connected_cb self._over_ssl = False @@ -245,7 +248,7 @@ def connection_made(self, transport): res = self._client_connected_cb(reader, self._stream_writer) if coroutines.iscoroutine(res): - self._task = self._loop.create_task(res) + self._loop.create_task(res) self._strong_reader = None def connection_lost(self, exc): @@ -263,7 +266,6 @@ def connection_lost(self, exc): super().connection_lost(exc) self._stream_reader_wr = None self._stream_writer = None - self._task = None self._transport = None def data_received(self, data): diff --git a/Lib/asyncio/taskgroups.py b/Lib/asyncio/taskgroups.py index 5d5e2a8a85dd48..6af21f3a15d93a 100644 --- a/Lib/asyncio/taskgroups.py +++ b/Lib/asyncio/taskgroups.py @@ -1,9 +1,10 @@ -# Adapted with permission from the EdgeDB project; -# license: PSFL. +# Adapted with permission from the EdgeDB project. __all__ = ["TaskGroup"] +import weakref + from . import events from . import exceptions from . import tasks @@ -18,7 +19,8 @@ def __init__(self): self._loop = None self._parent_task = None self._parent_cancel_requested = False - self._tasks = set() + self._tasks = weakref.WeakSet() + self._unfinished_tasks = 0 self._errors = [] self._base_error = None self._on_completed_fut = None @@ -27,6 +29,8 @@ def __repr__(self): info = [''] if self._tasks: info.append(f'tasks={len(self._tasks)}') + if self._unfinished_tasks: + info.append(f'unfinished={self._unfinished_tasks}') if self._errors: info.append(f'errors={len(self._errors)}') if self._aborting: @@ -55,22 +59,21 @@ async def __aenter__(self): async def __aexit__(self, et, exc, tb): self._exiting = True + propagate_cancellation_error = None if (exc is not None and self._is_base_error(exc) and self._base_error is None): self._base_error = exc - propagate_cancellation_error = \ - exc if et is exceptions.CancelledError else None - if self._parent_cancel_requested: - # If this flag is set we *must* call uncancel(). - if self._parent_task.uncancel() == 0: - # If there are no pending cancellations left, - # don't propagate CancelledError. - propagate_cancellation_error = None - if et is not None: + if et is exceptions.CancelledError: + if self._parent_cancel_requested and not self._parent_task.uncancel(): + # Do nothing, i.e. swallow the error. + pass + else: + propagate_cancellation_error = exc + if not self._aborting: # Our parent task is being cancelled: # @@ -90,7 +93,7 @@ async def __aexit__(self, et, exc, tb): # can be cancelled multiple times if our parent task # is being cancelled repeatedly (or even once, when # our own cancellation is already in progress) - while self._tasks: + while self._unfinished_tasks: if self._on_completed_fut is None: self._on_completed_fut = self._loop.create_future() @@ -111,14 +114,15 @@ async def __aexit__(self, et, exc, tb): self._on_completed_fut = None - assert not self._tasks + assert self._unfinished_tasks == 0 if self._base_error is not None: raise self._base_error - # Propagate CancelledError if there is one, except if there - # are other errors -- those have priority. - if propagate_cancellation_error and not self._errors: + if propagate_cancellation_error is not None: + # The wrapping task was cancelled; since we're done with + # closing all child tasks, just propagate the cancellation + # request now. raise propagate_cancellation_error if et is not None and et is not exceptions.CancelledError: @@ -137,16 +141,15 @@ async def __aexit__(self, et, exc, tb): def create_task(self, coro, *, name=None, context=None): if not self._entered: raise RuntimeError(f"TaskGroup {self!r} has not been entered") - if self._exiting and not self._tasks: + if self._exiting and self._unfinished_tasks == 0: raise RuntimeError(f"TaskGroup {self!r} is finished") - if self._aborting: - raise RuntimeError(f"TaskGroup {self!r} is shutting down") if context is None: task = self._loop.create_task(coro) else: task = self._loop.create_task(coro, context=context) tasks._set_task_name(task, name) task.add_done_callback(self._on_task_done) + self._unfinished_tasks += 1 self._tasks.add(task) return task @@ -166,9 +169,10 @@ def _abort(self): t.cancel() def _on_task_done(self, task): - self._tasks.discard(task) + self._unfinished_tasks -= 1 + assert self._unfinished_tasks >= 0 - if self._on_completed_fut is not None and not self._tasks: + if self._on_completed_fut is not None and not self._unfinished_tasks: if not self._on_completed_fut.done(): self._on_completed_fut.set_result(True) diff --git a/Lib/asyncio/tasks.py b/Lib/asyncio/tasks.py index 56a355cbdc70c8..3952b5f2a7743d 100644 --- a/Lib/asyncio/tasks.py +++ b/Lib/asyncio/tasks.py @@ -252,6 +252,10 @@ def uncancel(self): self._num_cancels_requested -= 1 return self._num_cancels_requested + def _check_future(self, future): + """Return False if task and future loops are not compatible.""" + return futures._get_loop(future) is self._loop + def __step(self, exc=None): if self.done(): raise exceptions.InvalidStateError( @@ -292,7 +296,7 @@ def __step(self, exc=None): blocking = getattr(result, '_asyncio_future_blocking', None) if blocking is not None: # Yielded Future must come from Future.__iter__(). - if futures._get_loop(result) is not self._loop: + if not self._check_future(result): new_exc = RuntimeError( f'Task {self!r} got Future ' f'{result!r} attached to a different loop') @@ -848,8 +852,7 @@ def shield(arg): The statement - task = asyncio.create_task(something()) - res = await shield(task) + res = await shield(something()) is exactly equivalent to the statement @@ -865,16 +868,10 @@ def shield(arg): If you want to completely ignore cancellation (not recommended) you can combine shield() with a try/except clause, as follows: - task = asyncio.create_task(something()) try: - res = await shield(task) + res = await shield(something()) except CancelledError: res = None - - Save a reference to tasks passed to this function, to avoid - a task disappearing mid-execution. The event loop only keeps - weak references to tasks. A task that isn't referenced elsewhere - may get garbage collected at any time, even before it's done. """ inner = _ensure_future(arg) if inner.done(): diff --git a/Lib/asyncio/timeouts.py b/Lib/asyncio/timeouts.py index 94d25535fbc059..a89205348ff24c 100644 --- a/Lib/asyncio/timeouts.py +++ b/Lib/asyncio/timeouts.py @@ -52,10 +52,10 @@ def reschedule(self, when: Optional[float]) -> None: self._timeout_handler = None else: loop = events.get_running_loop() - if when <= loop.time(): - self._timeout_handler = loop.call_soon(self._on_timeout) - else: - self._timeout_handler = loop.call_at(when, self._on_timeout) + self._timeout_handler = loop.call_at( + when, + self._on_timeout, + ) def expired(self) -> bool: """Is timeout expired during execution?""" diff --git a/Lib/base64.py b/Lib/base64.py index 30796a6fd6d05a..7e9c2a2ca477ff 100755 --- a/Lib/base64.py +++ b/Lib/base64.py @@ -567,10 +567,11 @@ def decodebytes(s): def main(): """Small main program""" import sys, getopt - usage = f"""usage: {sys.argv[0]} [-h|-d|-e|-u|-t] [file|-] + usage = """usage: %s [-h|-d|-e|-u|-t] [file|-] -h: print this help message and exit -d, -u: decode - -e: encode (default)""" + -e: encode (default) + -t: encode and decode string 'Aladdin:open sesame'"""%sys.argv[0] try: opts, args = getopt.getopt(sys.argv[1:], 'hdeut') except getopt.error as msg: @@ -583,6 +584,7 @@ def main(): if o == '-e': func = encode if o == '-d': func = decode if o == '-u': func = decode + if o == '-t': test(); return if o == '-h': print(usage); return if args and args[0] != '-': with open(args[0], 'rb') as f: @@ -591,5 +593,15 @@ def main(): func(sys.stdin.buffer, sys.stdout.buffer) +def test(): + s0 = b"Aladdin:open sesame" + print(repr(s0)) + s1 = encodebytes(s0) + print(repr(s1)) + s2 = decodebytes(s1) + print(repr(s2)) + assert s0 == s2 + + if __name__ == '__main__': main() diff --git a/Lib/bdb.py b/Lib/bdb.py index 81fbb8514acb6f..75d6113576372e 100644 --- a/Lib/bdb.py +++ b/Lib/bdb.py @@ -805,18 +805,15 @@ def checkfuncname(b, frame): return True +# Determines if there is an effective (active) breakpoint at this +# line of code. Returns breakpoint number or 0 if none def effective(file, line, frame): - """Return (active breakpoint, delete temporary flag) or (None, None) as - breakpoint to act upon. + """Determine which breakpoint for this file:line is to be acted upon. - The "active breakpoint" is the first entry in bplist[line, file] (which - must exist) that is enabled, for which checkfuncname is True, and that - has neither a False condition nor a positive ignore count. The flag, - meaning that a temporary breakpoint should be deleted, is False only - when the condiion cannot be evaluated (in which case, ignore count is - ignored). - - If no such entry exists, then (None, None) is returned. + Called only if we know there is a breakpoint at this location. Return + the breakpoint that was triggered and a boolean that indicates if it is + ok to delete a temporary breakpoint. Return (None, None) if there is no + matching breakpoint. """ possibles = Breakpoint.bplist[file, line] for b in possibles: diff --git a/Lib/codecs.py b/Lib/codecs.py index 5a1e7ec804009c..e6ad6e3a052364 100644 --- a/Lib/codecs.py +++ b/Lib/codecs.py @@ -1114,3 +1114,13 @@ def make_encoding_map(decoding_map): _false = 0 if _false: import encodings + +### Tests + +if __name__ == '__main__': + + # Make stdout translate Latin-1 output into UTF-8 output + sys.stdout = EncodedFile(sys.stdout, 'latin-1', 'utf-8') + + # Have stdin translate Latin-1 input into UTF-8 input + sys.stdin = EncodedFile(sys.stdin, 'utf-8', 'latin-1') diff --git a/Lib/codeop.py b/Lib/codeop.py index 2213b69f231f92..45a378baba4337 100644 --- a/Lib/codeop.py +++ b/Lib/codeop.py @@ -56,22 +56,22 @@ def _maybe_compile(compiler, source, filename, symbol): if symbol != "eval": source = "pass" # Replace it with a 'pass' statement - # Disable compiler warnings when checking for incomplete input. + try: + return compiler(source, filename, symbol) + except SyntaxError: # Let other compile() errors propagate. + pass + + # Catch syntax warnings after the first compile + # to emit warnings (SyntaxWarning, DeprecationWarning) at most once. with warnings.catch_warnings(): - warnings.simplefilter("ignore", (SyntaxWarning, DeprecationWarning)) + warnings.simplefilter("error") + try: - compiler(source, filename, symbol) - except SyntaxError: # Let other compile() errors propagate. - try: - compiler(source + "\n", filename, symbol) + compiler(source + "\n", filename, symbol) + except SyntaxError as e: + if "incomplete input" in str(e): return None - except SyntaxError as e: - if "incomplete input" in str(e): - return None - # fallthrough - - return compiler(source, filename, symbol) - + raise def _is_syntax_error(err1, err2): rep1 = repr(err1) diff --git a/Lib/concurrent/futures/_base.py b/Lib/concurrent/futures/_base.py index 6742a07753c921..d7e7e41967cc21 100644 --- a/Lib/concurrent/futures/_base.py +++ b/Lib/concurrent/futures/_base.py @@ -310,18 +310,6 @@ def wait(fs, timeout=None, return_when=ALL_COMPLETED): done.update(waiter.finished_futures) return DoneAndNotDoneFutures(done, fs - done) - -def _result_or_cancel(fut, timeout=None): - try: - try: - return fut.result(timeout) - finally: - fut.cancel() - finally: - # Break a reference cycle with the exception in self._exception - del fut - - class Future(object): """Represents the result of an asynchronous computation.""" @@ -616,9 +604,9 @@ def result_iterator(): while fs: # Careful not to keep a reference to the popped future if timeout is None: - yield _result_or_cancel(fs.pop()) + yield fs.pop().result() else: - yield _result_or_cancel(fs.pop(), end_time - time.monotonic()) + yield fs.pop().result(end_time - time.monotonic()) finally: for future in fs: future.cancel() diff --git a/Lib/configparser.py b/Lib/configparser.py index f98e6fb01f97cc..de9ee537ac1884 100644 --- a/Lib/configparser.py +++ b/Lib/configparser.py @@ -148,14 +148,14 @@ import sys import warnings -__all__ = ("NoSectionError", "DuplicateOptionError", "DuplicateSectionError", +__all__ = ["NoSectionError", "DuplicateOptionError", "DuplicateSectionError", "NoOptionError", "InterpolationError", "InterpolationDepthError", "InterpolationMissingOptionError", "InterpolationSyntaxError", "ParsingError", "MissingSectionHeaderError", - "ConfigParser", "RawConfigParser", + "ConfigParser", "SafeConfigParser", "RawConfigParser", "Interpolation", "BasicInterpolation", "ExtendedInterpolation", "LegacyInterpolation", "SectionProxy", "ConverterMapping", - "DEFAULTSECT", "MAX_INTERPOLATION_DEPTH") + "DEFAULTSECT", "MAX_INTERPOLATION_DEPTH"] _default_dict = dict DEFAULTSECT = "DEFAULT" @@ -297,12 +297,41 @@ def __init__(self, option, section, rawval): class ParsingError(Error): """Raised when a configuration file does not follow legal syntax.""" - def __init__(self, source): - super().__init__(f'Source contains parsing errors: {source!r}') + def __init__(self, source=None, filename=None): + # Exactly one of `source'/`filename' arguments has to be given. + # `filename' kept for compatibility. + if filename and source: + raise ValueError("Cannot specify both `filename' and `source'. " + "Use `source'.") + elif not filename and not source: + raise ValueError("Required argument `source' not given.") + elif filename: + source = filename + Error.__init__(self, 'Source contains parsing errors: %r' % source) self.source = source self.errors = [] self.args = (source, ) + @property + def filename(self): + """Deprecated, use `source'.""" + warnings.warn( + "The 'filename' attribute will be removed in Python 3.12. " + "Use 'source' instead.", + DeprecationWarning, stacklevel=2 + ) + return self.source + + @filename.setter + def filename(self, value): + """Deprecated, user `source'.""" + warnings.warn( + "The 'filename' attribute will be removed in Python 3.12. " + "Use 'source' instead.", + DeprecationWarning, stacklevel=2 + ) + self.source = value + def append(self, lineno, line): self.errors.append((lineno, line)) self.message += '\n\t[line %2d]: %s' % (lineno, line) @@ -739,6 +768,15 @@ def read_dict(self, dictionary, source='<dict>'): elements_added.add((section, key)) self.set(section, key, value) + def readfp(self, fp, filename=None): + """Deprecated, use read_file instead.""" + warnings.warn( + "This method will be removed in Python 3.12. " + "Use 'parser.read_file()' instead.", + DeprecationWarning, stacklevel=2 + ) + self.read_file(fp, source=filename) + def get(self, section, option, *, raw=False, vars=None, fallback=_UNSET): """Get an option value for a given section. @@ -1201,6 +1239,19 @@ def _read_defaults(self, defaults): self._interpolation = hold_interpolation +class SafeConfigParser(ConfigParser): + """ConfigParser alias for backwards compatibility purposes.""" + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + warnings.warn( + "The SafeConfigParser class has been renamed to ConfigParser " + "in Python 3.2. This alias will be removed in Python 3.12." + " Use ConfigParser directly instead.", + DeprecationWarning, stacklevel=2 + ) + + class SectionProxy(MutableMapping): """A proxy for a single section from a parser.""" diff --git a/Lib/copy.py b/Lib/copy.py index 1b276afe08121e..69bac980be2054 100644 --- a/Lib/copy.py +++ b/Lib/copy.py @@ -258,7 +258,7 @@ def _keep_alive(x, memo): def _reconstruct(x, memo, func, args, state=None, listiter=None, dictiter=None, - *, deepcopy=deepcopy): + deepcopy=deepcopy): deep = memo is not None if deep and args: args = (deepcopy(arg, memo) for arg in args) diff --git a/Lib/crypt.py b/Lib/crypt.py index de4a14a3884762..46c3de8474bf1c 100644 --- a/Lib/crypt.py +++ b/Lib/crypt.py @@ -98,7 +98,7 @@ def _add_method(name, *args, rounds=None): result = crypt('', salt) except OSError as e: # Not all libc libraries support all encryption methods. - if e.errno in {errno.EINVAL, errno.EPERM, errno.ENOSYS}: + if e.errno == errno.EINVAL: return False raise if result and len(result) == method.total_size: diff --git a/Lib/csv.py b/Lib/csv.py index 0de5656a4eed7b..bfc850ee96dab6 100644 --- a/Lib/csv.py +++ b/Lib/csv.py @@ -81,8 +81,6 @@ class unix_dialect(Dialect): class DictReader: def __init__(self, f, fieldnames=None, restkey=None, restval=None, dialect="excel", *args, **kwds): - if fieldnames is not None and iter(fieldnames) is fieldnames: - fieldnames = list(fieldnames) self._fieldnames = fieldnames # list of keys for the dict self.restkey = restkey # key to catch long rows self.restval = restval # default value for short rows @@ -135,8 +133,6 @@ def __next__(self): class DictWriter: def __init__(self, f, fieldnames, restval="", extrasaction="raise", dialect="excel", *args, **kwds): - if fieldnames is not None and iter(fieldnames) is fieldnames: - fieldnames = list(fieldnames) self.fieldnames = fieldnames # list of keys for the dict self.restval = restval # for writing short dicts if extrasaction.lower() not in ("raise", "ignore"): diff --git a/Lib/ctypes/__init__.py b/Lib/ctypes/__init__.py index b94b337a3157b7..26135ad96296ac 100644 --- a/Lib/ctypes/__init__.py +++ b/Lib/ctypes/__init__.py @@ -11,7 +11,6 @@ from _ctypes import __version__ as _ctypes_version from _ctypes import RTLD_LOCAL, RTLD_GLOBAL from _ctypes import ArgumentError -from _ctypes import SIZEOF_TIME_T from struct import calcsize as _calcsize @@ -564,11 +563,4 @@ def DllCanUnloadNow(): elif sizeof(kind) == 8: c_uint64 = kind del(kind) -if SIZEOF_TIME_T == 8: - c_time_t = c_int64 -elif SIZEOF_TIME_T == 4: - c_time_t = c_int32 -else: - raise SystemError(f"Unexpected sizeof(time_t): {SIZEOF_TIME_T=}") - _reset_cache() diff --git a/Lib/test/test_ctypes/__init__.py b/Lib/ctypes/test/__init__.py similarity index 100% rename from Lib/test/test_ctypes/__init__.py rename to Lib/ctypes/test/__init__.py diff --git a/Lib/ctypes/test/__main__.py b/Lib/ctypes/test/__main__.py new file mode 100644 index 00000000000000..362a9ec8cff6c0 --- /dev/null +++ b/Lib/ctypes/test/__main__.py @@ -0,0 +1,4 @@ +from ctypes.test import load_tests +import unittest + +unittest.main() diff --git a/Lib/test/test_ctypes/test_anon.py b/Lib/ctypes/test/test_anon.py similarity index 100% rename from Lib/test/test_ctypes/test_anon.py rename to Lib/ctypes/test/test_anon.py diff --git a/Lib/test/test_ctypes/test_array_in_pointer.py b/Lib/ctypes/test/test_array_in_pointer.py similarity index 100% rename from Lib/test/test_ctypes/test_array_in_pointer.py rename to Lib/ctypes/test/test_array_in_pointer.py diff --git a/Lib/test/test_ctypes/test_arrays.py b/Lib/ctypes/test/test_arrays.py similarity index 99% rename from Lib/test/test_ctypes/test_arrays.py rename to Lib/ctypes/test/test_arrays.py index 415a5785a9c1bb..14603b7049c92c 100644 --- a/Lib/test/test_ctypes/test_arrays.py +++ b/Lib/ctypes/test/test_arrays.py @@ -3,7 +3,7 @@ import sys from ctypes import * -from test.test_ctypes import need_symbol +from ctypes.test import need_symbol formats = "bBhHiIlLqQfd" diff --git a/Lib/test/test_ctypes/test_as_parameter.py b/Lib/ctypes/test/test_as_parameter.py similarity index 98% rename from Lib/test/test_ctypes/test_as_parameter.py rename to Lib/ctypes/test/test_as_parameter.py index e9ec9ad847b487..f9d27cb89d341b 100644 --- a/Lib/test/test_ctypes/test_as_parameter.py +++ b/Lib/ctypes/test/test_as_parameter.py @@ -1,6 +1,6 @@ import unittest from ctypes import * -from test.test_ctypes import need_symbol +from ctypes.test import need_symbol import _ctypes_test dll = CDLL(_ctypes_test.__file__) @@ -122,7 +122,6 @@ def callback(value): result = f(self.wrap(-10), self.wrap(cb)) self.assertEqual(result, -18) - @need_symbol('c_longlong') def test_longlong_callbacks(self): f = dll._testfunc_callback_q_qf diff --git a/Lib/test/test_ctypes/test_bitfields.py b/Lib/ctypes/test/test_bitfields.py similarity index 99% rename from Lib/test/test_ctypes/test_bitfields.py rename to Lib/ctypes/test/test_bitfields.py index dad71a0ba7ee4a..66acd62e6851a1 100644 --- a/Lib/test/test_ctypes/test_bitfields.py +++ b/Lib/ctypes/test/test_bitfields.py @@ -1,5 +1,5 @@ from ctypes import * -from test.test_ctypes import need_symbol +from ctypes.test import need_symbol from test import support import unittest import os diff --git a/Lib/test/test_ctypes/test_buffers.py b/Lib/ctypes/test/test_buffers.py similarity index 98% rename from Lib/test/test_ctypes/test_buffers.py rename to Lib/ctypes/test/test_buffers.py index a9be2023aa0fa0..15782be757c853 100644 --- a/Lib/test/test_ctypes/test_buffers.py +++ b/Lib/ctypes/test/test_buffers.py @@ -1,5 +1,5 @@ from ctypes import * -from test.test_ctypes import need_symbol +from ctypes.test import need_symbol import unittest class StringBufferTestCase(unittest.TestCase): diff --git a/Lib/test/test_ctypes/test_bytes.py b/Lib/ctypes/test/test_bytes.py similarity index 100% rename from Lib/test/test_ctypes/test_bytes.py rename to Lib/ctypes/test/test_bytes.py diff --git a/Lib/test/test_ctypes/test_byteswap.py b/Lib/ctypes/test/test_byteswap.py similarity index 100% rename from Lib/test/test_ctypes/test_byteswap.py rename to Lib/ctypes/test/test_byteswap.py diff --git a/Lib/test/test_ctypes/test_callbacks.py b/Lib/ctypes/test/test_callbacks.py similarity index 98% rename from Lib/test/test_ctypes/test_callbacks.py rename to Lib/ctypes/test/test_callbacks.py index b5bef04e14d208..1099cf9a69c6b1 100644 --- a/Lib/test/test_ctypes/test_callbacks.py +++ b/Lib/ctypes/test/test_callbacks.py @@ -3,7 +3,7 @@ from test import support from ctypes import * -from test.test_ctypes import need_symbol +from ctypes.test import need_symbol from _ctypes import CTYPES_MAX_ARGCOUNT import _ctypes_test @@ -65,12 +65,10 @@ def test_long(self): def test_ulong(self): self.check_type(c_ulong, 42) - @need_symbol('c_longlong') def test_longlong(self): self.check_type(c_longlong, 42) self.check_type(c_longlong, -42) - @need_symbol('c_ulonglong') def test_ulonglong(self): self.check_type(c_ulonglong, 42) @@ -84,7 +82,6 @@ def test_double(self): self.check_type(c_double, 3.14) self.check_type(c_double, -3.14) - @need_symbol('c_longdouble') def test_longdouble(self): self.check_type(c_longdouble, 3.14) self.check_type(c_longdouble, -3.14) diff --git a/Lib/test/test_ctypes/test_cast.py b/Lib/ctypes/test/test_cast.py similarity index 98% rename from Lib/test/test_ctypes/test_cast.py rename to Lib/ctypes/test/test_cast.py index 7ee23b16f1b00b..6878f9732826f1 100644 --- a/Lib/test/test_ctypes/test_cast.py +++ b/Lib/ctypes/test/test_cast.py @@ -1,5 +1,5 @@ from ctypes import * -from test.test_ctypes import need_symbol +from ctypes.test import need_symbol import unittest import sys diff --git a/Lib/test/test_ctypes/test_cfuncs.py b/Lib/ctypes/test/test_cfuncs.py similarity index 97% rename from Lib/test/test_ctypes/test_cfuncs.py rename to Lib/ctypes/test/test_cfuncs.py index 7cba4b0e527f4d..ac2240fa197d3f 100644 --- a/Lib/test/test_ctypes/test_cfuncs.py +++ b/Lib/ctypes/test/test_cfuncs.py @@ -3,7 +3,7 @@ import unittest from ctypes import * -from test.test_ctypes import need_symbol +from ctypes.test import need_symbol import _ctypes_test @@ -111,28 +111,24 @@ def test_ulong_plus(self): self.assertEqual(self._dll.tf_bL(b' ', 4294967295), 1431655765) self.assertEqual(self.U(), 4294967295) - @need_symbol('c_longlong') def test_longlong(self): self._dll.tf_q.restype = c_longlong self._dll.tf_q.argtypes = (c_longlong, ) self.assertEqual(self._dll.tf_q(-9223372036854775806), -3074457345618258602) self.assertEqual(self.S(), -9223372036854775806) - @need_symbol('c_longlong') def test_longlong_plus(self): self._dll.tf_bq.restype = c_longlong self._dll.tf_bq.argtypes = (c_byte, c_longlong) self.assertEqual(self._dll.tf_bq(0, -9223372036854775806), -3074457345618258602) self.assertEqual(self.S(), -9223372036854775806) - @need_symbol('c_ulonglong') def test_ulonglong(self): self._dll.tf_Q.restype = c_ulonglong self._dll.tf_Q.argtypes = (c_ulonglong, ) self.assertEqual(self._dll.tf_Q(18446744073709551615), 6148914691236517205) self.assertEqual(self.U(), 18446744073709551615) - @need_symbol('c_ulonglong') def test_ulonglong_plus(self): self._dll.tf_bQ.restype = c_ulonglong self._dll.tf_bQ.argtypes = (c_byte, c_ulonglong) @@ -163,14 +159,12 @@ def test_double_plus(self): self.assertEqual(self._dll.tf_bd(0, 42.), 14.) self.assertEqual(self.S(), 42) - @need_symbol('c_longdouble') def test_longdouble(self): self._dll.tf_D.restype = c_longdouble self._dll.tf_D.argtypes = (c_longdouble,) self.assertEqual(self._dll.tf_D(42.), 14.) self.assertEqual(self.S(), 42) - @need_symbol('c_longdouble') def test_longdouble_plus(self): self._dll.tf_bD.restype = c_longdouble self._dll.tf_bD.argtypes = (c_byte, c_longdouble) diff --git a/Lib/test/test_ctypes/test_checkretval.py b/Lib/ctypes/test/test_checkretval.py similarity index 95% rename from Lib/test/test_ctypes/test_checkretval.py rename to Lib/ctypes/test/test_checkretval.py index 1492099f4b9e99..e9567dc3912585 100644 --- a/Lib/test/test_ctypes/test_checkretval.py +++ b/Lib/ctypes/test/test_checkretval.py @@ -1,7 +1,7 @@ import unittest from ctypes import * -from test.test_ctypes import need_symbol +from ctypes.test import need_symbol class CHECKED(c_int): def _check_retval_(value): diff --git a/Lib/test/test_ctypes/test_delattr.py b/Lib/ctypes/test/test_delattr.py similarity index 100% rename from Lib/test/test_ctypes/test_delattr.py rename to Lib/ctypes/test/test_delattr.py diff --git a/Lib/test/test_ctypes/test_errno.py b/Lib/ctypes/test/test_errno.py similarity index 100% rename from Lib/test/test_ctypes/test_errno.py rename to Lib/ctypes/test/test_errno.py diff --git a/Lib/test/test_ctypes/test_find.py b/Lib/ctypes/test/test_find.py similarity index 100% rename from Lib/test/test_ctypes/test_find.py rename to Lib/ctypes/test/test_find.py diff --git a/Lib/test/test_ctypes/test_frombuffer.py b/Lib/ctypes/test/test_frombuffer.py similarity index 100% rename from Lib/test/test_ctypes/test_frombuffer.py rename to Lib/ctypes/test/test_frombuffer.py diff --git a/Lib/test/test_ctypes/test_funcptr.py b/Lib/ctypes/test/test_funcptr.py similarity index 100% rename from Lib/test/test_ctypes/test_funcptr.py rename to Lib/ctypes/test/test_funcptr.py diff --git a/Lib/test/test_ctypes/test_functions.py b/Lib/ctypes/test/test_functions.py similarity index 98% rename from Lib/test/test_ctypes/test_functions.py rename to Lib/ctypes/test/test_functions.py index 95633dfa8b38fd..f9e92e1cc6b068 100644 --- a/Lib/test/test_ctypes/test_functions.py +++ b/Lib/ctypes/test/test_functions.py @@ -6,7 +6,7 @@ """ from ctypes import * -from test.test_ctypes import need_symbol +from ctypes.test import need_symbol import sys, unittest try: @@ -128,7 +128,6 @@ def test_doubleresult(self): self.assertEqual(result, -21) self.assertEqual(type(result), float) - @need_symbol('c_longdouble') def test_longdoubleresult(self): f = dll._testfunc_D_bhilfD f.argtypes = [c_byte, c_short, c_int, c_long, c_float, c_longdouble] @@ -371,7 +370,7 @@ class S8I(Structure): (9*2, 8*3, 7*4, 6*5, 5*6, 4*7, 3*8, 2*9)) def test_sf1651235(self): - # see https://bugs.python.org/issue1651235 + # see https://www.python.org/sf/1651235 proto = CFUNCTYPE(c_int, RECT, POINT) def callback(*args): diff --git a/Lib/test/test_ctypes/test_incomplete.py b/Lib/ctypes/test/test_incomplete.py similarity index 100% rename from Lib/test/test_ctypes/test_incomplete.py rename to Lib/ctypes/test/test_incomplete.py diff --git a/Lib/test/test_ctypes/test_init.py b/Lib/ctypes/test/test_init.py similarity index 100% rename from Lib/test/test_ctypes/test_init.py rename to Lib/ctypes/test/test_init.py diff --git a/Lib/test/test_ctypes/test_internals.py b/Lib/ctypes/test/test_internals.py similarity index 100% rename from Lib/test/test_ctypes/test_internals.py rename to Lib/ctypes/test/test_internals.py diff --git a/Lib/test/test_ctypes/test_keeprefs.py b/Lib/ctypes/test/test_keeprefs.py similarity index 100% rename from Lib/test/test_ctypes/test_keeprefs.py rename to Lib/ctypes/test/test_keeprefs.py diff --git a/Lib/test/test_ctypes/test_libc.py b/Lib/ctypes/test/test_libc.py similarity index 100% rename from Lib/test/test_ctypes/test_libc.py rename to Lib/ctypes/test/test_libc.py diff --git a/Lib/test/test_ctypes/test_loading.py b/Lib/ctypes/test/test_loading.py similarity index 99% rename from Lib/test/test_ctypes/test_loading.py rename to Lib/ctypes/test/test_loading.py index 8d8632a4eb64d3..ea892277c4eae9 100644 --- a/Lib/test/test_ctypes/test_loading.py +++ b/Lib/ctypes/test/test_loading.py @@ -93,7 +93,7 @@ def test_1703286_A(self): # NOT fit into a 32-bit integer. FreeLibrary must be able # to accept this address. - # These are tests for https://bugs.python.org/issue1703286 + # These are tests for https://www.python.org/sf/1703286 handle = LoadLibrary("advapi32") FreeLibrary(handle) diff --git a/Lib/test/test_ctypes/test_macholib.py b/Lib/ctypes/test/test_macholib.py similarity index 100% rename from Lib/test/test_ctypes/test_macholib.py rename to Lib/ctypes/test/test_macholib.py diff --git a/Lib/test/test_ctypes/test_memfunctions.py b/Lib/ctypes/test/test_memfunctions.py similarity index 98% rename from Lib/test/test_ctypes/test_memfunctions.py rename to Lib/ctypes/test/test_memfunctions.py index d5c973521177c8..e784b9a7068422 100644 --- a/Lib/test/test_ctypes/test_memfunctions.py +++ b/Lib/ctypes/test/test_memfunctions.py @@ -2,7 +2,7 @@ from test import support import unittest from ctypes import * -from test.test_ctypes import need_symbol +from ctypes.test import need_symbol class MemFunctionsTest(unittest.TestCase): @unittest.skip('test disabled') diff --git a/Lib/test/test_ctypes/test_numbers.py b/Lib/ctypes/test/test_numbers.py similarity index 100% rename from Lib/test/test_ctypes/test_numbers.py rename to Lib/ctypes/test/test_numbers.py diff --git a/Lib/test/test_ctypes/test_objects.py b/Lib/ctypes/test/test_objects.py similarity index 87% rename from Lib/test/test_ctypes/test_objects.py rename to Lib/ctypes/test/test_objects.py index 44a3c61ad79267..19e3dc1f2d7621 100644 --- a/Lib/test/test_ctypes/test_objects.py +++ b/Lib/ctypes/test/test_objects.py @@ -42,7 +42,7 @@ of 'x' ('_b_base_' is either None, or the root object owning the memory block): >>> print(x.array._b_base_) # doctest: +ELLIPSIS -<test.test_ctypes.test_objects.X object at 0x...> +<ctypes.test.test_objects.X object at 0x...> >>> >>> x.array[0] = b'spam spam spam' @@ -56,12 +56,12 @@ import unittest, doctest -import test.test_ctypes.test_objects +import ctypes.test.test_objects class TestCase(unittest.TestCase): def test(self): - failures, tests = doctest.testmod(test.test_ctypes.test_objects) + failures, tests = doctest.testmod(ctypes.test.test_objects) self.assertFalse(failures, 'doctests failed, see output above') if __name__ == '__main__': - doctest.testmod(test.test_ctypes.test_objects) + doctest.testmod(ctypes.test.test_objects) diff --git a/Lib/test/test_ctypes/test_parameters.py b/Lib/ctypes/test/test_parameters.py similarity index 99% rename from Lib/test/test_ctypes/test_parameters.py rename to Lib/ctypes/test/test_parameters.py index 84839d9c6a96d9..38af7ac13d756c 100644 --- a/Lib/test/test_ctypes/test_parameters.py +++ b/Lib/ctypes/test/test_parameters.py @@ -1,10 +1,11 @@ import unittest -from test.test_ctypes import need_symbol +from ctypes.test import need_symbol import test.support class SimpleTypesTestCase(unittest.TestCase): def setUp(self): + import ctypes try: from _ctypes import set_conversion_mode except ImportError: diff --git a/Lib/test/test_ctypes/test_pep3118.py b/Lib/ctypes/test/test_pep3118.py similarity index 100% rename from Lib/test/test_ctypes/test_pep3118.py rename to Lib/ctypes/test/test_pep3118.py diff --git a/Lib/test/test_ctypes/test_pickling.py b/Lib/ctypes/test/test_pickling.py similarity index 100% rename from Lib/test/test_ctypes/test_pickling.py rename to Lib/ctypes/test/test_pickling.py diff --git a/Lib/test/test_ctypes/test_pointers.py b/Lib/ctypes/test/test_pointers.py similarity index 100% rename from Lib/test/test_ctypes/test_pointers.py rename to Lib/ctypes/test/test_pointers.py diff --git a/Lib/test/test_ctypes/test_prototypes.py b/Lib/ctypes/test/test_prototypes.py similarity index 99% rename from Lib/test/test_ctypes/test_prototypes.py rename to Lib/ctypes/test/test_prototypes.py index bf27561487ac81..cd0c649de3e31b 100644 --- a/Lib/test/test_ctypes/test_prototypes.py +++ b/Lib/ctypes/test/test_prototypes.py @@ -1,5 +1,5 @@ from ctypes import * -from test.test_ctypes import need_symbol +from ctypes.test import need_symbol import unittest # IMPORTANT INFO: diff --git a/Lib/test/test_ctypes/test_python_api.py b/Lib/ctypes/test/test_python_api.py similarity index 100% rename from Lib/test/test_ctypes/test_python_api.py rename to Lib/ctypes/test/test_python_api.py diff --git a/Lib/test/test_ctypes/test_random_things.py b/Lib/ctypes/test/test_random_things.py similarity index 100% rename from Lib/test/test_ctypes/test_random_things.py rename to Lib/ctypes/test/test_random_things.py diff --git a/Lib/test/test_ctypes/test_refcounts.py b/Lib/ctypes/test/test_refcounts.py similarity index 100% rename from Lib/test/test_ctypes/test_refcounts.py rename to Lib/ctypes/test/test_refcounts.py diff --git a/Lib/test/test_ctypes/test_repr.py b/Lib/ctypes/test/test_repr.py similarity index 100% rename from Lib/test/test_ctypes/test_repr.py rename to Lib/ctypes/test/test_repr.py diff --git a/Lib/test/test_ctypes/test_returnfuncptrs.py b/Lib/ctypes/test/test_returnfuncptrs.py similarity index 100% rename from Lib/test/test_ctypes/test_returnfuncptrs.py rename to Lib/ctypes/test/test_returnfuncptrs.py diff --git a/Lib/test/test_ctypes/test_simplesubclasses.py b/Lib/ctypes/test/test_simplesubclasses.py similarity index 100% rename from Lib/test/test_ctypes/test_simplesubclasses.py rename to Lib/ctypes/test/test_simplesubclasses.py diff --git a/Lib/test/test_ctypes/test_sizes.py b/Lib/ctypes/test/test_sizes.py similarity index 90% rename from Lib/test/test_ctypes/test_sizes.py rename to Lib/ctypes/test/test_sizes.py index bf8d6ea35aa399..4ceacbc2900802 100644 --- a/Lib/test/test_ctypes/test_sizes.py +++ b/Lib/ctypes/test/test_sizes.py @@ -28,9 +28,6 @@ def test_size_t(self): def test_ssize_t(self): self.assertEqual(sizeof(c_void_p), sizeof(c_ssize_t)) - def test_time_t(self): - self.assertEqual(sizeof(c_time_t), SIZEOF_TIME_T) - if __name__ == "__main__": unittest.main() diff --git a/Lib/test/test_ctypes/test_slicing.py b/Lib/ctypes/test/test_slicing.py similarity index 99% rename from Lib/test/test_ctypes/test_slicing.py rename to Lib/ctypes/test/test_slicing.py index b3e68f9a822d94..a3932f176728af 100644 --- a/Lib/test/test_ctypes/test_slicing.py +++ b/Lib/ctypes/test/test_slicing.py @@ -1,6 +1,6 @@ import unittest from ctypes import * -from test.test_ctypes import need_symbol +from ctypes.test import need_symbol import _ctypes_test diff --git a/Lib/test/test_ctypes/test_stringptr.py b/Lib/ctypes/test/test_stringptr.py similarity index 100% rename from Lib/test/test_ctypes/test_stringptr.py rename to Lib/ctypes/test/test_stringptr.py diff --git a/Lib/test/test_ctypes/test_strings.py b/Lib/ctypes/test/test_strings.py similarity index 99% rename from Lib/test/test_ctypes/test_strings.py rename to Lib/ctypes/test/test_strings.py index a9003be3f506e2..12e208828a70db 100644 --- a/Lib/test/test_ctypes/test_strings.py +++ b/Lib/ctypes/test/test_strings.py @@ -1,6 +1,6 @@ import unittest from ctypes import * -from test.test_ctypes import need_symbol +from ctypes.test import need_symbol class StringArrayTestCase(unittest.TestCase): def test(self): diff --git a/Lib/test/test_ctypes/test_struct_fields.py b/Lib/ctypes/test/test_struct_fields.py similarity index 100% rename from Lib/test/test_ctypes/test_struct_fields.py rename to Lib/ctypes/test/test_struct_fields.py diff --git a/Lib/test/test_ctypes/test_structures.py b/Lib/ctypes/test/test_structures.py similarity index 99% rename from Lib/test/test_ctypes/test_structures.py rename to Lib/ctypes/test/test_structures.py index 13c0470ba2238c..97ad2b8ed8a50d 100644 --- a/Lib/test/test_ctypes/test_structures.py +++ b/Lib/ctypes/test/test_structures.py @@ -2,7 +2,7 @@ import sys import unittest from ctypes import * -from test.test_ctypes import need_symbol +from ctypes.test import need_symbol from struct import calcsize import _ctypes_test from test import support diff --git a/Lib/test/test_ctypes/test_unaligned_structures.py b/Lib/ctypes/test/test_unaligned_structures.py similarity index 100% rename from Lib/test/test_ctypes/test_unaligned_structures.py rename to Lib/ctypes/test/test_unaligned_structures.py diff --git a/Lib/test/test_ctypes/test_unicode.py b/Lib/ctypes/test/test_unicode.py similarity index 97% rename from Lib/test/test_ctypes/test_unicode.py rename to Lib/ctypes/test/test_unicode.py index 319cb3b1dcac21..60c75424b767fa 100644 --- a/Lib/test/test_ctypes/test_unicode.py +++ b/Lib/ctypes/test/test_unicode.py @@ -1,6 +1,6 @@ import unittest import ctypes -from test.test_ctypes import need_symbol +from ctypes.test import need_symbol import _ctypes_test diff --git a/Lib/test/test_ctypes/test_values.py b/Lib/ctypes/test/test_values.py similarity index 100% rename from Lib/test/test_ctypes/test_values.py rename to Lib/ctypes/test/test_values.py diff --git a/Lib/test/test_ctypes/test_varsize_struct.py b/Lib/ctypes/test/test_varsize_struct.py similarity index 100% rename from Lib/test/test_ctypes/test_varsize_struct.py rename to Lib/ctypes/test/test_varsize_struct.py diff --git a/Lib/test/test_ctypes/test_win32.py b/Lib/ctypes/test/test_win32.py similarity index 100% rename from Lib/test/test_ctypes/test_win32.py rename to Lib/ctypes/test/test_win32.py diff --git a/Lib/test/test_ctypes/test_wintypes.py b/Lib/ctypes/test/test_wintypes.py similarity index 100% rename from Lib/test/test_ctypes/test_wintypes.py rename to Lib/ctypes/test/test_wintypes.py diff --git a/Lib/dataclasses.py b/Lib/dataclasses.py index a567a33d646f44..4645ebfa71e71c 100644 --- a/Lib/dataclasses.py +++ b/Lib/dataclasses.py @@ -230,7 +230,7 @@ def __init__(self, type): self.type = type def __repr__(self): - if isinstance(self.type, type): + if isinstance(self.type, type) and not isinstance(self.type, GenericAlias): type_name = self.type.__name__ else: # typing objects, e.g. List[int] @@ -1156,16 +1156,11 @@ def _add_slots(cls, is_frozen, weakref_slot): itertools.chain.from_iterable(map(_get_slots, cls.__mro__[1:-1])) ) # The slots for our class. Remove slots from our base classes. Add - # '__weakref__' if weakref_slot was given, unless it is already present. + # '__weakref__' if weakref_slot was given. cls_dict["__slots__"] = tuple( - itertools.filterfalse( - inherited_slots.__contains__, - itertools.chain( - # gh-93521: '__weakref__' also needs to be filtered out if - # already present in inherited_slots - field_names, ('__weakref__',) if weakref_slot else () - ) - ), + itertools.chain( + itertools.filterfalse(inherited_slots.__contains__, field_names), + ("__weakref__",) if weakref_slot else ()) ) for field_name in field_names: @@ -1193,18 +1188,19 @@ def _add_slots(cls, is_frozen, weakref_slot): def dataclass(cls=None, /, *, init=True, repr=True, eq=True, order=False, unsafe_hash=False, frozen=False, match_args=True, kw_only=False, slots=False, weakref_slot=False): - """Add dunder methods based on the fields defined in the class. + """Returns the same class as was passed in, with dunder methods + added based on the fields defined in the class. Examines PEP 526 __annotations__ to determine fields. - If init is true, an __init__() method is added to the class. If repr - is true, a __repr__() method is added. If order is true, rich + If init is true, an __init__() method is added to the class. If + repr is true, a __repr__() method is added. If order is true, rich comparison dunder methods are added. If unsafe_hash is true, a - __hash__() method is added. If frozen is true, fields may not be - assigned to after instance creation. If match_args is true, the - __match_args__ tuple is added. If kw_only is true, then by default - all fields are keyword-only. If slots is true, a new class with a - __slots__ attribute is returned. + __hash__() method function is added. If frozen is true, fields may + not be assigned to after instance creation. If match_args is true, + the __match_args__ tuple is added. If kw_only is true, then by + default all fields are keyword-only. If slots is true, an + __slots__ attribute is added. """ def wrap(cls): @@ -1247,7 +1243,7 @@ def _is_dataclass_instance(obj): def is_dataclass(obj): """Returns True if obj is a dataclass or an instance of a dataclass.""" - cls = obj if isinstance(obj, type) else type(obj) + cls = obj if isinstance(obj, type) and not isinstance(obj, GenericAlias) else type(obj) return hasattr(cls, _FIELDS) @@ -1255,7 +1251,7 @@ def asdict(obj, *, dict_factory=dict): """Return the fields of a dataclass instance as a new dictionary mapping field names to field values. - Example usage:: + Example usage: @dataclass class C: @@ -1326,8 +1322,8 @@ class C: x: int y: int - c = C(1, 2) - assert astuple(c) == (1, 2) + c = C(1, 2) + assert astuple(c) == (1, 2) If given, 'tuple_factory' will be used instead of built-in tuple. The function applies recursively to field values that are @@ -1376,11 +1372,11 @@ def make_dataclass(cls_name, fields, *, bases=(), namespace=None, init=True, The dataclass name will be 'cls_name'. 'fields' is an iterable of either (name), (name, type) or (name, type, Field) objects. If type is omitted, use the string 'typing.Any'. Field objects are created by - the equivalent of calling 'field(name, type [, Field-info])'.:: + the equivalent of calling 'field(name, type [, Field-info])'. C = make_dataclass('C', ['x', ('y', int), ('z', int, field(init=False))], bases=(Base,)) - is equivalent to:: + is equivalent to: @dataclass class C(Base): @@ -1444,7 +1440,7 @@ def exec_body_callback(ns): def replace(obj, /, **changes): """Return a new object replacing specified fields with new values. - This is especially useful for frozen classes. Example usage:: + This is especially useful for frozen classes. Example usage: @dataclass(frozen=True) class C: @@ -1454,7 +1450,7 @@ class C: c = C(1, 2) c1 = replace(c, x=3) assert c1.x == 3 and c1.y == 2 - """ + """ # We're going to mutate 'changes', but that's okay because it's a # new dict, even if called with 'replace(obj, **my_changes)'. diff --git a/Lib/datetime.py b/Lib/datetime.py index 007114ae622031..00ded32cc3e3cb 100644 --- a/Lib/datetime.py +++ b/Lib/datetime.py @@ -179,7 +179,7 @@ def _format_time(hh, mm, ss, us, timespec='auto'): else: return fmt.format(hh, mm, ss, us) -def _format_offset(off, sep=':'): +def _format_offset(off): s = '' if off is not None: if off.days < 0: @@ -189,9 +189,9 @@ def _format_offset(off, sep=':'): sign = "+" hh, mm = divmod(off, timedelta(hours=1)) mm, ss = divmod(mm, timedelta(minutes=1)) - s += "%s%02d%s%02d" % (sign, hh, sep, mm) + s += "%s%02d:%02d" % (sign, hh, mm) if ss or ss.microseconds: - s += "%s%02d" % (sep, ss.seconds) + s += ":%02d" % ss.seconds if ss.microseconds: s += '.%06d' % ss.microseconds @@ -202,10 +202,9 @@ def _wrap_strftime(object, format, timetuple): # Don't call utcoffset() or tzname() unless actually needed. freplace = None # the string to use for %f zreplace = None # the string to use for %z - colonzreplace = None # the string to use for %:z Zreplace = None # the string to use for %Z - # Scan format for %z, %:z and %Z escapes, replacing as needed. + # Scan format for %z and %Z escapes, replacing as needed. newformat = [] push = newformat.append i, n = 0, len(format) @@ -223,28 +222,26 @@ def _wrap_strftime(object, format, timetuple): newformat.append(freplace) elif ch == 'z': if zreplace is None: + zreplace = "" if hasattr(object, "utcoffset"): - zreplace = _format_offset(object.utcoffset(), sep="") - else: - zreplace = "" + offset = object.utcoffset() + if offset is not None: + sign = '+' + if offset.days < 0: + offset = -offset + sign = '-' + h, rest = divmod(offset, timedelta(hours=1)) + m, rest = divmod(rest, timedelta(minutes=1)) + s = rest.seconds + u = offset.microseconds + if u: + zreplace = '%c%02d%02d%02d.%06d' % (sign, h, m, s, u) + elif s: + zreplace = '%c%02d%02d%02d' % (sign, h, m, s) + else: + zreplace = '%c%02d%02d' % (sign, h, m) assert '%' not in zreplace newformat.append(zreplace) - elif ch == ':': - if i < n: - ch2 = format[i] - i += 1 - if ch2 == 'z': - if colonzreplace is None: - if hasattr(object, "utcoffset"): - colonzreplace = _format_offset(object.utcoffset(), sep=":") - else: - colonzreplace = "" - assert '%' not in colonzreplace - newformat.append(colonzreplace) - else: - push('%') - push(ch) - push(ch2) elif ch == 'Z': if Zreplace is None: Zreplace = "" diff --git a/Lib/dis.py b/Lib/dis.py index a045d18241b465..046013120b000d 100644 --- a/Lib/dis.py +++ b/Lib/dis.py @@ -37,8 +37,6 @@ LOAD_GLOBAL = opmap['LOAD_GLOBAL'] BINARY_OP = opmap['BINARY_OP'] JUMP_BACKWARD = opmap['JUMP_BACKWARD'] -FOR_ITER = opmap['FOR_ITER'] -LOAD_ATTR = opmap['LOAD_ATTR'] CACHE = opmap["CACHE"] @@ -394,7 +392,7 @@ def _get_name_info(name_index, get_name, **extrainfo): else: return UNKNOWN, '' -def _parse_varint(iterator): +def parse_varint(iterator): b = next(iterator) val = b & 63 while b&64: @@ -403,16 +401,16 @@ def _parse_varint(iterator): val |= b&63 return val -def _parse_exception_table(code): +def parse_exception_table(code): iterator = iter(code.co_exceptiontable) entries = [] try: while True: - start = _parse_varint(iterator)*2 - length = _parse_varint(iterator)*2 + start = parse_varint(iterator)*2 + length = parse_varint(iterator)*2 end = start + length - target = _parse_varint(iterator)*2 - dl = _parse_varint(iterator) + target = parse_varint(iterator)*2 + dl = parse_varint(iterator) depth = dl >> 1 lasti = bool(dl&1) entries.append(_ExceptionTableEntry(start, end, target, depth, lasti)) @@ -465,10 +463,6 @@ def _get_instructions_bytes(code, varname_from_oparg=None, argval, argrepr = _get_name_info(arg//2, get_name) if (arg & 1) and argrepr: argrepr = "NULL + " + argrepr - elif deop == LOAD_ATTR: - argval, argrepr = _get_name_info(arg//2, get_name) - if (arg & 1) and argrepr: - argrepr = "NULL|self + " + argrepr else: argval, argrepr = _get_name_info(arg, get_name) elif deop in hasjabs: @@ -477,8 +471,6 @@ def _get_instructions_bytes(code, varname_from_oparg=None, elif deop in hasjrel: signed_arg = -arg if _is_backward_jump(deop) else arg argval = offset + 2 + signed_arg*2 - if deop == FOR_ITER: - argval += 2 argrepr = "to " + repr(argval) elif deop in haslocal or deop in hasfree: argval, argrepr = _get_name_info(arg, varname_from_oparg) @@ -500,34 +492,22 @@ def _get_instructions_bytes(code, varname_from_oparg=None, yield Instruction(_all_opname[op], op, arg, argval, argrepr, offset, starts_line, is_jump_target, positions) - caches = _inline_cache_entries[deop] - if not caches: - continue - if not show_caches: - # We still need to advance the co_positions iterator: - for _ in range(caches): - next(co_positions, ()) - continue - for name, size in _cache_format[opname[deop]].items(): - for i in range(size): - offset += 2 - # Only show the fancy argrepr for a CACHE instruction when it's - # the first entry for a particular cache value and the - # instruction using it is actually quickened: - if i == 0 and op != deop: - data = code[offset: offset + 2 * size] - argrepr = f"{name}: {int.from_bytes(data, sys.byteorder)}" - else: + if show_caches and _inline_cache_entries[deop]: + for name, caches in _cache_format[opname[deop]].items(): + data = code[offset + 2: offset + 2 + caches * 2] + argrepr = f"{name}: {int.from_bytes(data, sys.byteorder)}" + for _ in range(caches): + offset += 2 + yield Instruction( + "CACHE", 0, 0, None, argrepr, offset, None, False, None + ) + # Only show the actual value for the first cache entry: argrepr = "" - yield Instruction( - "CACHE", CACHE, 0, None, argrepr, offset, None, False, - Positions(*next(co_positions, ())) - ) def disassemble(co, lasti=-1, *, file=None, show_caches=False, adaptive=False): """Disassemble a code object.""" linestarts = dict(findlinestarts(co)) - exception_entries = _parse_exception_table(co) + exception_entries = parse_exception_table(co) _disassemble_bytes(_get_code_array(co, adaptive), lasti, co._varname_from_oparg, co.co_names, co.co_consts, linestarts, file=file, @@ -610,9 +590,9 @@ def _unpack_opargs(code): op = code[i] deop = _deoptop(op) caches = _inline_cache_entries[deop] - if deop in hasarg: + if deop >= HAVE_ARGUMENT: arg = code[i+1] | extended_arg - extended_arg = (arg << 8) if deop == EXTENDED_ARG else 0 + extended_arg = (arg << 8) if op == EXTENDED_ARG else 0 # The oparg is stored as a signed integer # If the value exceeds its upper limit, it will overflow and wrap # to a negative integer @@ -632,14 +612,11 @@ def findlabels(code): labels = [] for offset, op, arg in _unpack_opargs(code): if arg is not None: - deop = _deoptop(op) - if deop in hasjrel: - if _is_backward_jump(deop): + if op in hasjrel: + if _is_backward_jump(op): arg = -arg label = offset + 2 + arg*2 - if deop == FOR_ITER: - label += 2 - elif deop in hasjabs: + elif op in hasjabs: label = arg*2 else: continue @@ -717,7 +694,7 @@ def __init__(self, x, *, first_line=None, current_offset=None, show_caches=False self._linestarts = dict(findlinestarts(co)) self._original_object = x self.current_offset = current_offset - self.exception_entries = _parse_exception_table(co) + self.exception_entries = parse_exception_table(co) self.show_caches = show_caches self.adaptive = adaptive diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py index a22a5d094d7678..01d5331a63069b 100644 --- a/Lib/distutils/command/install.py +++ b/Lib/distutils/command/install.py @@ -323,7 +323,7 @@ def finalize_options(self): self.config_vars['userbase'] = self.install_userbase self.config_vars['usersite'] = self.install_usersite - if sysconfig.is_python_build(): + if sysconfig.is_python_build(True): self.config_vars['srcdir'] = sysconfig.get_config_var('srcdir') self.expand_basedirs() diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py index 8eada987c13819..3414a761e76b99 100644 --- a/Lib/distutils/sysconfig.py +++ b/Lib/distutils/sysconfig.py @@ -9,6 +9,7 @@ Email: <fdrake@acm.org> """ +import _imp import os import re import sys @@ -29,6 +30,8 @@ parse_config_h as sysconfig_parse_config_h, _init_non_posix, + _is_python_source_dir, + _sys_home, _variable_rx, _findvar1_rx, @@ -49,6 +52,9 @@ # which might not be true in the time of import. _config_vars = get_config_vars() +if os.name == "nt": + from sysconfig import _fix_pcbuild + warnings.warn( 'The distutils.sysconfig module is deprecated, use sysconfig instead', DeprecationWarning, @@ -281,7 +287,7 @@ def get_python_inc(plat_specific=0, prefix=None): # must use "srcdir" from the makefile to find the "Include" # directory. if plat_specific: - return project_base + return _sys_home or project_base else: incdir = os.path.join(get_config_var('srcdir'), 'Include') return os.path.normpath(incdir) diff --git a/Lib/distutils/tests/test_bdist.py b/Lib/distutils/tests/test_bdist.py index 5676f7f34d4292..241fc9ad75f34b 100644 --- a/Lib/distutils/tests/test_bdist.py +++ b/Lib/distutils/tests/test_bdist.py @@ -1,4 +1,5 @@ """Tests for distutils.command.bdist.""" +import os import unittest from test.support import run_unittest diff --git a/Lib/distutils/tests/test_dir_util.py b/Lib/distutils/tests/test_dir_util.py index ebd89f320dca89..f3ba0ee33b4bc1 100644 --- a/Lib/distutils/tests/test_dir_util.py +++ b/Lib/distutils/tests/test_dir_util.py @@ -11,7 +11,7 @@ from distutils import log from distutils.tests import support -from test.support import run_unittest, is_emscripten, is_wasi +from test.support import run_unittest, is_emscripten class DirUtilTestCase(support.TempdirManager, unittest.TestCase): @@ -55,10 +55,7 @@ def test_mkpath_remove_tree_verbosity(self): @unittest.skipIf(sys.platform.startswith('win'), "This test is only appropriate for POSIX-like systems.") - @unittest.skipIf( - is_emscripten or is_wasi, - "Emscripten's/WASI's umask is a stub." - ) + @unittest.skipIf(is_emscripten, "Emscripten's umask is a stub.") def test_mkpath_with_custom_mode(self): # Get and set the current umask value for testing mode bits. umask = os.umask(0o002) diff --git a/Lib/distutils/tests/test_sysconfig.py b/Lib/distutils/tests/test_sysconfig.py index ae0eca897bc7bd..e7d435f412db79 100644 --- a/Lib/distutils/tests/test_sysconfig.py +++ b/Lib/distutils/tests/test_sysconfig.py @@ -10,8 +10,9 @@ from distutils import sysconfig from distutils.ccompiler import get_default_compiler from distutils.tests import support -from test.support import run_unittest, swap_item, requires_subprocess, is_wasi +from test.support import run_unittest, swap_item, requires_subprocess from test.support.os_helper import TESTFN +from test.support.warnings_helper import check_warnings class SysconfigTestCase(support.EnvironGuard, unittest.TestCase): @@ -31,7 +32,6 @@ def cleanup_testfn(self): elif os.path.isdir(TESTFN): shutil.rmtree(TESTFN) - @unittest.skipIf(is_wasi, "Incompatible with WASI mapdir and OOT builds") def test_get_config_h_filename(self): config_h = sysconfig.get_config_h_filename() self.assertTrue(os.path.isfile(config_h), config_h) @@ -48,7 +48,6 @@ def test_get_config_vars(self): self.assertIsInstance(cvars, dict) self.assertTrue(cvars) - @unittest.skipIf(is_wasi, "Incompatible with WASI mapdir and OOT builds") def test_srcdir(self): # See Issues #15322, #15364. srcdir = sysconfig.get_config_var('srcdir') @@ -61,11 +60,7 @@ def test_srcdir(self): # should be a full source checkout. Python_h = os.path.join(srcdir, 'Include', 'Python.h') self.assertTrue(os.path.exists(Python_h), Python_h) - # <srcdir>/PC/pyconfig.h always exists even if unused on POSIX. - pyconfig_h = os.path.join(srcdir, 'PC', 'pyconfig.h') - self.assertTrue(os.path.exists(pyconfig_h), pyconfig_h) - pyconfig_h_in = os.path.join(srcdir, 'pyconfig.h.in') - self.assertTrue(os.path.exists(pyconfig_h_in), pyconfig_h_in) + self.assertTrue(sysconfig._is_python_source_dir(srcdir)) elif os.name == 'posix': self.assertEqual( os.path.dirname(sysconfig.get_makefile_filename()), diff --git a/Lib/email/_parseaddr.py b/Lib/email/_parseaddr.py index febe411355d6be..ba5ad5a36d06b7 100644 --- a/Lib/email/_parseaddr.py +++ b/Lib/email/_parseaddr.py @@ -95,8 +95,6 @@ def _parsedate_tz(data): return None data = data[:5] [dd, mm, yy, tm, tz] = data - if not (dd and mm and yy): - return None mm = mm.lower() if mm not in _monthnames: dd, mm = mm, dd.lower() @@ -112,8 +110,6 @@ def _parsedate_tz(data): yy, tm = tm, yy if yy[-1] == ',': yy = yy[:-1] - if not yy: - return None if not yy[0].isdigit(): yy, tz = tz, yy if tm[-1] == ',': diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py index 33c91801b0aa85..a198a86e1f9af9 100644 --- a/Lib/ensurepip/__init__.py +++ b/Lib/ensurepip/__init__.py @@ -10,8 +10,8 @@ __all__ = ["version", "bootstrap"] _PACKAGE_NAMES = ('setuptools', 'pip') -_SETUPTOOLS_VERSION = "63.2.0" -_PIP_VERSION = "22.2.2" +_SETUPTOOLS_VERSION = "58.1.0" +_PIP_VERSION = "22.0.4" _PROJECTS = [ ("setuptools", _SETUPTOOLS_VERSION, "py3"), ("pip", _PIP_VERSION, "py3"), @@ -89,18 +89,8 @@ def _run_pip(args, additional_paths=None): sys.argv[1:] = {args} runpy.run_module("pip", run_name="__main__", alter_sys=True) """ - - cmd = [ - sys.executable, - '-W', - 'ignore::DeprecationWarning', - '-c', - code, - ] - if sys.flags.isolated: - # run code in isolated mode if currently running isolated - cmd.insert(1, '-I') - return subprocess.run(cmd, check=True).returncode + return subprocess.run([sys.executable, '-W', 'ignore::DeprecationWarning', + "-c", code], check=True).returncode def version(): diff --git a/Lib/ensurepip/_bundled/pip-22.0.4-py3-none-any.whl b/Lib/ensurepip/_bundled/pip-22.0.4-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..7ba048e245227d3325413220e1eb8da42c66dead GIT binary patch literal 2123599 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%0D?x&>Q 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%0A9>WXd4tEQ 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%0D=-oE7Y>73@u z%2-OsoR}IbnQn>R&=!;uH0o6H>g_6}SO3w-uTHU>bg4at=Sg~U3F^8{^6O3)%!+Cb z_N4#5Sme1I_Qh@4(@}k@6pLet6YSYmH=UeZLGPTo&ierVsItZ*CaiFIqj!xxMNr}| z;c*?DClxA;A3y9JvyO->;9v2d_xR6W!eMv}{~v^H{Op0$wf7zuvZ#Qh`S{_lANIfh z5cWoz&M1TLXcLpg-{H5Ho15KT4}PaK5>%?>$yXzR(E7emL5F9`SO8Nz=qZ$->x%)| zZ%C6%tz*XeU79EJn%-^NFQ$l@IzXzsyTI%ZYGVg*xv|{rW=2cI`Hv$h<1dlinIzzn zSVz6J5#pXZ@L*t2W@I2M@Sn(9BCO7PbMiRk0ccAWO^06C^tuJX*fc376-8O=TS6vP zmrnQ;huopOL1XIl3$AWlPC(}?eY@ahRTzMdHHI%tIOW`v_tP94buQRL39GHd$iQu~ zPkX0O*SdyE*=#ZE$*{+5$kcPNB9_4cYFVYH4fusOWF?oKM1J~e1J5;&BCbQ2yumX^ z?{)F$s~dd%wO!X`ryD2*4aA$l^PnB<bv=6q!A78|Yd-I3@Y(BW@a!2XyEn_c97q+` zoyJqVBn#tEm`T-7n@Ev*j5BkSlWY5?Z#zdv8r449eEszn{nwIbjcD68Wgh=svn#K! zZ_$6tXxk<bLCH`z)dfk1@Y&m~XYaS39l-)XZ!YP=D&56_XXj*@e`xo3`|)h0lU9b` zz&qOn(y4w$yx3|TCl?Lo)AK*zKXkza>OH2o>(ZcY56}$k_8#P8h19yeUC_<|EeC-q z=&}>v_<J<I##(9om_NGHCeVw#Oqz%13m4xoR@1hm7jD!*iI)SIq}~BiZZ0`xB~CXZ zpQba_nnC~W+dNG>*CzVt-NWl3N**&M`eco_dz7c9$jH-5npF2VC&T?C%CgPwICdS( zQelInpNX?3CCIV*&l^lkrTQWg;ye6HUY>UkZ65CJydD4L-Tt55BkHF=MJNCG<?Q+3 z6y1|!x-DURxV!W5@CY4=zA7jG*f>2M{&aTw{Pg+H_zyq$<*Wtpe(&i0_AxYhw0rDU z|HsKcemZ-8`peI!KT*rS*QqG7OTeAndt?088Ws9fDn33py`m}!^_=cU51v0K3H(zz zZ(a`JpI7+L>tA9cWtg{%D$|48Hh%cxHh>`4PY@EpvuX>v1$<JYr+^-<K7YO%%rG~a zI--^2AUdo7P2a6;e7_4f>tJcp@z>!v%W66*Px19BD%aID7~0`abO}@VOZas3)Nwm^ zxMUPN&*fBbHn|$>hk&hSN#n*GdS@oeLEF!+i5W3oc9cb5IS>Y~hfce?UMq$gBdujm zVM;>N@NLC4UJkA^HG0AZ<$ePpLn!`zE%y+P&Y<Osf8%T4=}r**Y0D})#s9obT%=I# z;-T?vradFlZ8TG77rPCcG^>(nHc4{vvJ*%}62Q&Mvm`jT*@nZg+jzSc$DM^(x8<+e zq7piZHF_3KJS-^Uf-Y=b0#UxjIVX3}R~|pE^y#TnTrmf^B0Qdm&N(|xp2WKCN*~_y zU&GO!Ta#h8ya|ke;OgT({4g_I6e}yZzSa^eL}ye<j^lO#>mSkE<Ku&)w|s;ieJ_7b z>ePIOmOe<I@l{!qyK_kr?j4xNoM4rO56Tl<&<Na)4!V&GE^pEbQ$*Imq^(wOP-F0L zTF%g2h$|n0X8(l)D8gW!JUfq_=LS(G$#{}-hIvxtRa{G^BlcAaJBkCKqU7?7;(2P^ zmB^l2MoP>+fK?WJ5&D$8#;PeZ-ISr^7chE!(<^yT4@5oMrafz2PA;+M;0jw+!cSdN zq!9iADaHv3jd-Srl^+}{l{p;-c_81>7AO}@XKt%p_-rPH<7NTyavE`v1#Zx`Muj{B zEk6DN0xWVO8^o!q?v?@;g@%ug-ch=RyT*5y)LQT@OpI6YUFVI`A=L=<INRaXxJp0K zzI2_(JG+O+phWz?k9&u^-*js9-{9kg^I`wP?s5u2$=fQKk9p`K{3FA1o$}R<@{{1x z@BW##46Tv=_A~&1p~^%wLTnEX_mB5?_TP<RSZ-duej+w96eDY3JRyb;Zh{ds<_aNW z%O;Tr&#pY>yUh$f+dqKu;^IC=Gg^#GirlI(a}Ks;)a>U%HGaz>V`2=V%6M{>sN=@% z*xRhp?Nr}IZWboX=Yt?Za`;}|_4x42=yXB=sKlgoG)WNWWkYXZs)Y{?&D-sx@zIC9 zC1S@Wz)1+oBOsucC%RBh3&EvRQgxy`E&T_eT(Y*VB6D@{xCDF=g!r)+)=1-q8&Y5^ zSJ+CVgf|xJ3p6uNKD{mLMy;(=$&9iDfCMSJOZVgErA5&gPn}Q8+ai+H>FDi8V54uo zKlG#BR&;L|Ha}$0baVjGO(IuWG4Gu0ZeFN?8(Pb`d;S|gF5K8Yn`JM_7Eg?HE1p8O z5@G(d!*gjxA7e@iwJ7%=&%}>u0pf=;lwgt)J~!T`GERb4S7?)gfT~hq5bu3(UoJx1 zIY);Zt!g|BxWihGaaVoFiJcot7>~KzlS#86Xw<<@jC;ZmIAb~`BIh(n)Qnu?5C_{e z@HM7zsZrlQPp=X%(y25C|62e7H_+G@xCbaP_E>mGc7je;vj11w{{}QMR$N_NrY^y< z;6c6T=mdDKJJ0yureU6IN*2M#qE0SSSGlFaHat>y33pIFYg?BDI+CQ*p{PV%N)t~< zT8EvhSteIyi78VED(bYx5mXtHcqw;iPnoMuFFpSG@S-BYa>i7!D)g4OXGLeGIJkG* z*7(6mLy4TI`!Z)LE5$5+ypq`5j}iLGIk$EeGB8_vVZr(F@Er+ECykXswa~C{STNsH z6h%7aOEF;WOELXcUG}B(V5g2NqRmX@0+!c8)1V3-n~|12A?MSg%ya3dz7?ZaGd5)P z8vh#{(;-tnD}IRvT@%bOJIEz59}Gxx0f=%m0I_2brFRK#bk~@T@_kaQ?-lFESLwO{ ze4kCHybFGJFCiZU2}6t0f+ADMuKnz@*OZ{2k{;pNg&7opp+t*~$W#l!x5w|_spu5W z86`(R?(TmKF!Gj<0)gOYg^9`;21N!#fdirw#1|!M=44VOrY1#*lAlhC5t_ItEcvV& zWiU0V5nB}8!-GTBbxp_Uiz^st%CteYJl0aC`#Q?9^F@|ViG@>?g(QtJg^9pYnBXu| zi&;aQZZv2tvim?Qwb0rg0i#`K#YM_2pM%WIYT8&?@CYSId>4?PATg<)z`#uw)dM^o zwoBDk%gf?g|J(a_>xTzBl0%BkVe&Dc5=$Xf!KfQ$we{+Z94SVjQ4qZv2A@mcTB2Dl ziRIb|&aM##Z6Lo&Xl>8>j{Y}fYT6v3k=zVsX#(ty+(xf9`4(;S&KG>%bwv@J?%8@d zDg?4{Zb(0-<Cyvvu~z{B7>J^eM^My$CWnt~H;vP^-$s~!GjWy?=(iGy336NkV)!<? zo8{Gff@IOp`Y#m}R>i9xD0N?o4@PF>jp^W#ePQ^fUwc}Moi<F+Mlc4hf2N129V4Ul zt6`AB|95XT|648Lc&rsm(S(WYrDWM$QXfl8iLNvaMt)b8Hx;WsH*0hN7X`$IPGvjq zPBuLUVYm=Q;*Hzvp=sCe+-YePFgKX|Z+b6#A{{zdy)<u=vh*Kw)=7Q|P)U7EW<6gn zm>y=fM=+etbXMz+V7w<WpTU6IEAk)<8XO`CULNgYQJx3sa_e#M(cm$xZjHW(Okx~I z_B~>E<ln{gdW0Xt_-)|_nBVf<OZT4SR_y)wX@s9gO)D<wyZZHrRO$m%H_h49KJ6FU ziz@RjT>hB@-?${5j?>J=RBF4m#y9BTy<0rv)0(#-Cgn`Rbmw_;&oS99L$0AyK;O+} zierUDZ%Eu)P=irM5zMqvhyl+L^l(6TR;QrkQ!-FAgWBBAuj4OmnV~=|s+@A*69o5E zuPF~&s!%p&^A(WBlSDvTP>Fp#8;;E+M?SVh(j#V;RP$HSB0;?+p+KVx)gr${wdI~g zC*lwV3!!)xa)Spu64l~7R(*GlzO#c$VsxF;VkTUWMWZiC#~s_YZQHhO+qP}nwr#6p z+s6EJIT!O1b?Q{@TI-s0@%82WY8!cNE^S%n0&7Aj>O^L}nw&`x2QxgV?U;sBW&E)4 z;X-za*o;Lha^aaSedopA&FuFMYlkPsh11bI^g1*uP|n1;6fX8g=oD`};u{29&o-(l zOfg0=;UGcM6(vkGI@fgTC6bH&0=i#UOWRot+xdM9@v&HPyB9bhPO6-eAL8L&GIJNY zni;k{k@mkj*rWdxjk@fk%cE@BM2zPX_A@0LNU`i?!LcM0y2LzZn*LukCKLk$7lu*M zBVW)9VjEJUG;qkOO&i6S>-g7f=_tO|yw?B+uw4OyfNxHMcDMZ0hesWHlbu#>p3&lG z=jH}U*N_w7q8SvZFGY_mo2D}@_l)!a>ipB(Juo2uF`Ldfw=!Z|n_tV2_A$-QTM*$r z&aoP@{e9_g_J_X>0hAOkUJi7BP4g$G{2>P>rB~v9Wt<0P*vP*~^|Fi3LM~>&HAQ2^ z+fUYm_8>vKvlg_A>_{8UF2w(W$#yo(Y_@}`a`~jY&hALem|v)}Nlfl-r}Kf!i#rRs zdFBiiIYqE9dIsiIYP7^jU5a*0v4HpbTRle$6Lx&ofjCyo^9&sklzW1_0{mqCn#=2` zX9mklvd!ZV%?Qq0PvK<(;uL7IidSWv=|`Qr+hr^}cCwt|6fX|PiB@NavQ63JayXyY zw7#-Gt3(JE7w8#oEh#J#Xp(%va^8smbiWv`%*bLazqpAgB`&m~6hbi&1xym)o1jBW zoK=D4PibVETyV|y7{CcHTY)j=&01&B6i~b4Fg0d75YYA^k&c4&U)LMux!@;mAt+<7 z>GHV4L^udyM?;^mcfBA`CFJ1Z$Lsnr#L*)_C~I4mFkp-n0M)*PLW0T}J42HbK3Q8e zx0mLKF3j<-TiSxsdtdij0cd%AO2E00-^`oOMU=qOtoC``0#a<8&Ti1WU+sc6iQ4mW zltl2om<H_h1mjf*<4@Y&;vjnm?;(#bDbtsC^!N686wD%{lmbt#z1O@K>waOt=^*;X zUNk9O1zDwx^kCkuKJYg#(YY0b`&9#s+p@1!Kfy4@zxh9<xe1Hn+L)x}Nlo*z-6CQV zIzGabj-AO#sf^3H*kwJ{u!Ks!;>qa?&+>7gZBaoC=3|L?hE2h*>36ZUF;dGdRH4I= z0x!gkSx>k64>Ueba*6YT4_b>>Da(tefFpVolsdg;pH2<m>QDf(ICOB0$+C;*?Gkx3 zg)@lA>@*zul8S+VQz~75D#u0F<Rn1y{!8lg3Y5ZDr47b{`rkoux6NZ!Rn^6TA<dji zp>=t0OG7}i-K0du*ommiDQDbKcdYi=o5Dum=Z&rXB3P0HB_~Y<=2I^7bV2KcsAY$U z+h|A;m~$Ol=NU<|BO%S~vE?d>8qquz?@c#3)I=%WiXt3qCh?<b0V0A43Mo!Tlvmkn zBUop~DRwm4Y%kX`L^u}}(W3OE;OkM=w<aDht_8iRqH;|LJZMRxM7)X}>N8l~ssNXk zj$ZjEw&ZIvMIe|s6JxPTyU?Ox0X`)#mhgti<wfBzZSiCCX_>;zP?MB1cnL9Vy=^`y z&%|m>tyb|oKyxu8*&3scOiH!pnwXI=9z9`A=K5aV4IZx{I|=UP{bBlMPo&E-8n=PB za=CZA1GmpXN`iMAE^0-|*<bd1vqhzIKAIEly|9;2{0#H%EqdKWLBFw1L$N%2C~0Ha zszkrBAeHVAG!aV~J+qjG;_!H9;0Bb}X0%CZqREnl&S9iSu(zL!C+-}pG|zv<*mylB zyTBXSK(UB|15@b7FtO63g0|KMujd2h4%jUeUXS{%j`QyH-X>84w%7RGdc`rfoWCgS zeVr0D#GM#rr4XSg6eiXR-o<mHb*dKZtodwn*ogyQMZR16g=lx*at9a!@i53U;vfPi z(lI7;I}P(l!oJ=Mp?kx-25eeWUsq_Xh5Y)Axo0E2>=E-<V>cKR%c}GKoU<fVg8`v> z5q%v>x%1h<`z7#JG<6&4!ceK3MNJPV!fjgxi3heA$x0w<O-~t9zFzQ7v4Asv&{`{h z2$pH6KT(+Ka^QO)w>5|zTfI<fGs|cK^uI`htXDJ4*(g6#g`$fx;5M+P@ev?+O*Ioq zoF=9X=jPf@QsEx~E6qOWW)<nLnq$s6pTTs-K|-|<#kTTg`nq);cT2DRq5o@s>;8Lp z8{klZPd=58KP+yFDcc+CPUKu^+vgS6Qm@{p;-w%?JzO~XuLbK7fbx?x`!A|yIqtsz zP|mRNkir|C^KvM|W6-4=L)`%FmD)!kpBC)db9zNr2G}_&N;d*+qvqu>=sXQxdV=Y4 zYYp6qTi5`v9bt9>4Bn=9<-yQVDi1Kk)0T$Yi0I;XL|2*y6ApWdy_HG@**_QV<?hJ_ zKgIde%9$n7>hnpdY`P0ul-RpR;;>Tb_J`JyVAh#U*03}FfWS+|`6g;CdfB(CPK*pD zKF8pKQ)&-7)(idpirZTFFkacH^e@UQ(v1Ngml)E{qc2Y|+z!j-hK&M*=7DI@lF}+T z2$0d&&jVUxU0OUky!Uopv~S;;vBLV$=lC+vvJ~u~{+$2dCa<~8F0%GiEsGGOFs}O_ z{S=-4PR>(b)c|jP(h1N`>ay1ZEY_E$&w^5RXZpxNSJf&bsDByU?uOAof-(;pX!zk9 zWkZ5mptoNNKdB^Qig!sAZ2I0Q`pk{NHS{tzMSZtLUuxDBUZLRs<+v8-48E_&+o`dv zqJ;o5_1gUxd~#CLqAn@&kxMJC*lH~veUV>%onX2(fl9Q)xhNDeV$AQtq#?ng`4aOy zE^6Ou^8m+bXa9ndo)G%oDCznHO?xij7ah*?6o`!0FsU$*8v<~J$GJUk9R4GXk&pg( zMJx(^#!m{1ihvs-p38wzkcaXcXPnmHyuFs(w6y#LzUG6JcV)&`_ij6GQ#j$>$$7rd zY1tRsL=4GLIr2>WT>SN}$tj}HPLdilQ>y$n-1uGJj5SGCKcDZ;x?X`OnxZhCk{m!K z8mZ(BP2AB<GTSZxohMn1wrwQl5dZU3_cMXJG;40zMLgOEdz2zJj(oLdCR<gdPGD-7 z$)GTycD4*CZ5W#?$MJUR-4Cj-iKD1g>M=?*i@eg@OSxuOD{fr{e~NKfqL-)inApZi zxVV|KcHt53u!;ZlWU%by)+z}r$prpe>A)&_Grq<NPKJZIh(eaR7>qkPvTphb&ohDP zGF~~D1Bmb=+OO@oa8{ME^{GVA0}ZD2+4%Ac#*<ZUMbxm%*Y?y5`v%OL<_SSk=O}-l zhH5fOzm4tEQKzbcGH!il{>7l=Q&<B8MiPHHPT^)Z1cCg@;R`vz$Zx(8NuOGqv)udQ z8epfX%(6Oa%4JYY!5MQwntT1nF($O^>H#wg{6p>x-#}IRVMIB8n-7r>%3rBN52?34 zwO@X430!leh%n(!ESJG6Sl@wm+=7WeiftlbHfoBhm*|W(gSk{Iy<cKW3C3|4d0s#R z64MWIaSGk9cPcVOcuEHpt+->9Y6vs|47^w*Ne0zJ(ZEl9llVh*RfpptI5WPNHK}f4 zd5L^XbhU|1&)1eu;^AEdQCRQtk4D<OxN2QrB%fX#+K3sn?V;D+)I;mZWt=iOMro^+ z*@ca2HCfa7X&zwVG%v?2rWTZE!}k}KSFSc`?`CRlEYFV><|UGJ=6>qtbB>P-7u;g$ zMgydLtuCLvS){=({Xh+t1MWP2+cpv_en7czWV2rz9-AfXPmn{*SC(n6XE{5Hxx^`D zha+rNG%ySD1!hH&{?kSRaHjA=a4INCacxuTqG%9#TgGMdp0aMHVF7?bvT|cjjla^g zPS1tF=VzlX$i%S3Fbn2kT%c!<{8;!PsdBiwk=@3MJ5lOA?a@o5bLGD?%DCMdKlHwT ze4My=-CMjruD^HRl}CLNQCZcDb?pk+rFuC}K<ru$5D+!K%A_~s11TA##nleah9#rg zJ-;t)efI_pN7zB>4uqMCdzX7d42|dv)Pvij98AnW-EySlYWdTjbA8>Tgb)y1!wdID z;_lP3044mLer#&AdbpDbSaG||O}r>+L=QnZ_l7<6cgh*1o$90gk!-H?J1U&|TUp{% zOWQCvMH&mp86-JrNI1P;lwhoa1d}W|Z6$Svy*#LTPdH6k9N}@0DhNoBihzKl=M~C1 zGtpG}g6fq)?|M@Z0)CM|Q+;jWbA;)jgpXBJ==ybbXR2B%c+h*GR{O^1P}=f862l=U z@^(tO_PluFj&4DsDcwKI+Tlgw5kBrtfX<d)TT9QnzOQYJ4LDE+Kd}EW9bwY|y)JEp zYTl~<f-zO;gK{w?m`pb?82qws{MczNG%m(xB<4)sNVXVAm~<AD`oX*U*F>q80XZJR zaWdqNe9pok0b{Ror47XP!2>ayt`PW{dRDmH9xcaUlhuG-sWUd5a_AOEec1-cqBkKN z{A_lF*{Q~W5uS|0^6XOzbJSfWX$BL_JmyJ~Fg26I2Kh2hPjH3H3N)5-Fy^{i@~fIw zxz3?Xl{?gHxjJ3nmk~3)-k+}~y4Jz9x;=pXreB}u^T#t<9jl(-&vDjV@7uvlTGm~n zYUezwE(-jA`(^|g{=B`XJQ6pTmm-I)HBI{fDjg@421W%#s6)d{WhIO}mx7zlK<)jA z2u!9|OOYYN^tEYv2~$VDiclkWR@L{pVe0`gO;V0*%U-0zVaszTTMI|OKU1L#>Qm|u zlR(*VRm}8Bg5c@O56+WbvUll?cWu_pMT6>8rS9${KB@amPH0Rc9ZheDXPkP0-13{E zx@U~ERx(uu2AKW$jVSw1tMS7%=u82_rMPi)g<@SuJT*wnKb)b@g|WGNIafmJ#d2A# zE;&EYG6KgHO^m!dykAo{_iyfbsixO1kOEuKK{Se#{2UmQLdwal(%)jb{+kQE_%5dH z4^xs>IqjhlO;=i+8BYU7%kqC0)kdfNnWIL#9cH9T&2hRxAO0=Oe%g)B58U7D#g4g; zD3(7ey#ywJ#lRWh#^g>mSg7%xTisY6|APKs=uue-<DoAG5YUDe5D@PF13hvzadfh< zv;B{I^pD%hZL2kL_n8Wzi-XuGGQqgaqS;}Q`SQh7?($>U_Vs46l2$~J5i3$zLb6qp zt<T2{9OzGcvh}OOR+Ft|lKcN+kGkpicrSU+8}VU_jCqZ#3|GHlq&Powd|p^}Y#Yse zRp>u!hQND%@}c{3o1&;@XIV#7GV33mRkc4c%=AjDh@Ya!Ww_5gW;s4T{%s{KJtEb$ zQ>5nwUtPDAq22EK-2WSCyPa!5*mQY$dEvZ8ol2*3SCqF)olT!JW$242WiYeKJ(h<W zZ{ThZG_}qsxg;+RTye}W1!R?AaB*>5;^I7S%g#ovG>R{=--4eT{-OU16Px!Kl83C2 zKkx(@Alr=3?!cKRRNy(|UdA-F2zUg;C!KmE3{p)pY&z<&uBR+iSE2i+K23`LZH{Ej zR4rr5cyr*+s5fG5lwGpkA6uB?{?g4i=#ZxR8l}_E%s6&ce>U=&IrXhy;0zCZ89jB( z)pSx>-r4UGR%{$TC!Sh_;hObe`0Ly@ngfRzZblC)K>=UcSIX$cDDefzlg^ecLmKwY zZK9FCzWsI|IbXm)#H<HHQ&X7T%gd`*S&^Yh4vPw=NdsyNrVH3Se-gt*MpPX)vu2D) zEKird${u4%J8p#Xs~^q^2LxLjz4e9FNo`fI1e#FS>wcFgYHD%SZGsSDuX0Zo5z~DU z@3FSHVbB{)V_h5OhJ(X-jd<oDn*3=CusadsFe|fAxcQ3<MX7mrBcxMIsh-^5JE5jj z7<;VTPgd_c5GK)rb;NH0T%8Y#I)nbeyux|4(BNLxRyp74Zy6!IM<$_3j|pNta2U<H zeK>6xm%)%3yBhqfOsnXF+yD+cEYcLoUBA{etX*#eEY*8CMB;sEkBBfU0EE;&vCoX| za6eY`<w!O9cwJ<HzJ+KqDAR0&|2GSX!OW42<pz4S|E*X4^fic*c|t{jI!rDv)FR$X zYLQDfb0*K!dz1+->xP0H*DoQIdk1Y1h+pUZeZ{!2fD{VMjjeuAQcDZjND)KNRLkpz zXV&JD!MdGi<dUBKdSGH$NpXRNI1U&)vUPBkD}pyK=tV1#cq191(7SQkABGqX)4p{o zt_k(MpcrC~rwZ{%(IP!iHPVzp2_de`VsIs~Mq#js{q!#_Nq7m+Q(l}WdMailx}pgA z2O#Virs5FH>;%ms^v;*!RKKS=l==m2Y2M5#4M3{}w}I&@BX7ZQsbZC-CYqHtRujW- z2o|medZaTWb2he>g;jI2WSu9&*53X@NvmC&!7x_0US(7V@_KK;&TDD+Q;z+m))E|| zIPMsro;i%AT3j-7JO-FU<hQE1N5HV}I0zg!qo|h<9nGw`aDFV8x&HHFXJKibQ)7wC zjA4V5Bw@fgUSd;O-6$~`lR)QzFvH3Z{3nEBq_T5oDt#Pgset!Cqf_$HhEDr{?C3v~ z5TOd~M@-J<hFA?zc+(Y#UWIo3611|l`U;!|b#p-o`fJ*C2JQ(WO|^pABJCQAA25ex zH1qLTmm?<ngaIIs;3PsevIf1)k^LvWyEF*Y53tO@nj>_YzhTaQs3Ho@A%t57apeZT zFomOSJmjd$HpE$_(}cBwEDvd2Eby!?c4S|q(DxPz$??biZ3zghYyb;y4gJK6q`^{Y zv^lFkXRb8|@iGHe1eZ(?hlvn2H#0m8Z$M--wRMGimeAQ&^gkthAmHXB6Z{9sK6~C1 zg@VfBC`;g`urmS!(}h?^xeN7N=v`NYTK6<TKWk8LpkM$DL42`(J54gdWQ0>nV$Ci# zx0)W=OydKG*{wDBs}QQfom34yP_>|>zsB2i^Hkd)!Wxgl7Ru@?s_hU7nMva~X+Gzm zt1&yxdE9;-V5Y4$#=lUhO*3Q!r-P-nnf%)Mxv7itaCHtH4+VFpG&QiBpK6nNwcRwp zVW*BeBy*lQjlT#8_h^+v@dv<_Y}7o!`aj!ZjFKvZe>Bf)2|UqI!kq|21Ga?-H}3Qn z`##mA^n7R+q+fe0TUN85Hg(m~TWgaEwKs&sNet54F?l8daWGap*p{W>71mf!88*+R zjjbFh8?zGRXFxM_k<zrE)xZcQtJNDW2}P5Q3e*YK)zd@QiZg<W+@u>OYRDUg_nb32 zUH{Ml)|-FpR+}W=Py@xg2DU94<AqmIu`+kx1Q-&GSZwaGr|C@&EYS;@>bhXeU7t;g zE2wdvNAKj+c+Ejpzb#mVYmEG~^Fqwu$39+4enm!yh>rOWw?O~>Xt#gA_bptLRf!fv z)3JQ~dH@Ib^;tnJIjs-eKB?fD`Sq4<a&U2QabC#u@_G3E+-xmPd?GbVaEvGrsn1P+ z7<_N`!ocHlJdO1}?X^7)H`x5TdSY#x1_T|)K7PnzQ8nea^+*e#OwzvLK0F8EW3LnS zeLiO0{OX1p35$6->4L_~jpLDWQolO}CIzk3rzqQQ{y>vk$PXk@YBDDX+A6rMwE<)& zKI$|SggUl}$30SOQ^ThRk>U`uj9bdDz~c*EHVH;rMF)sA1MBY}Ot4Y(WwaDMgB<?I zl1*}e`7=ln?B3ZdU&lE(JySj%lPhxtU&Qjta7fx|x13HPUx5J$kd!KvT_9{UQVF1x z2f*=PlUc@w=0QnBSj(gE;q{_R{phHbeDBorAsjnk`rGKNV8^12g5e?)PkN^j_l-Up zT1#jm*(d<|fVI-%$IL>QK}ccR1X17Gf>2%F%0Oc2Fr72cSoZ><YU)K$zGw*!o50oO zEB6JcKw62YYgA@bgmZ@sjkzwW8npk}fC(XTFQ6bKXG88$=86O;vT|&`)S=@d0nWJ} z)Ak@bruE7c)Psm*+~{cq-09RIZ`|aEvC?GJ0MQ8k)}cBgT0-thj_cjPWJ9@oBK}gU zPN{^ER>-=^|LMg~mJGAzn*$VmIvnpbn-VsAFjwkM7mGGR#H+g@nlx!*)*lrW#I+sx zK=f3DuB+t#B@ZDM$n|$I7M~S*&_^KxkxGe!y)^}zJ--1O$X7vLm(!a5Y-C5QE2YAd zDz@D!bNe5u=6vgt;9(9cBKWpymtm?3;CnB4tue?KR1)`qdzRp(>&35uqPh#*OZW)p z3h<Ph+iF=6j_$D4hjN_jz;2H7So{qrXkw;G#drt@fUCT!Sjcr`DyLNwwb1>MN&}<Q z7^5{fB6L=x2O+PMP{d`F6{Z$fGcjpybKte`vwKV2^XdT>2}$Usq$Thfs#|2PK3RPQ z-~2GzgH}cp%`}jC$zQy@KDX(~{W*D!=@jzQ@0GK97P$V$MY&7Y`#onD)<0PPauiic zWx?;af4Od1-8_e?fJmbXt*TunzDgmz)L&~^!74Jn#%&56?W_H6g-lUN3ef?e(l4wt z*Vt6kiUUfqlh@+o@ov|v3l^DM2!aSA6rFfwnp2c@U@^Y^_}LnpKY?oFbk7TjZ&RH` zoMoVvPa67t`hie^`MUQ!4r+D%yuv$YnFrAps`o>$PjgJ3coVQjpvPB&k-+nR4Ef2& z{chz8Bs<3OnCs3}3MCpe7iD!J09nw)GFKS^cg4~@{y5+~uEGaWo~+%fCj0seUR%5^ zJb%fiu52iRRlB|Mne<AgCrA6=g`=#lzCoNgqNdUp%3fWx?@(;(=&T(VG~&?5#3*gC zlw{K4SgE}lO`$-qk;OM60hyu5HCCF<5hU^(CF7^)v=fmYTghyPfawPFJOxpNBIk}j zN=%WWw%d|$-@`S7e^BZ9C_)HZQSh`PzDJa}l9<NB?P^nXCgfKVT<h7>Xd-dVwvH5E z)1u~Zhzi%eB8yYeNeSF4*sEk+CYH*WC(7@HCAMY-CtsE*zItPf3ZI4|4I<!8ZN}$m z2+v?nMjR_cV3I44YY;PxQR!b&6N`dstc!jHz8@f(xouINv2t<6kWvN<WE$E2zRh1> z-*r`!jlBd$^+dPkyek8aRoEdKQc8#5B!C;}g(bdVwF9|dB^!l+7!^VKuCOhLolvxB zbd}rzE#NM>Bv84C4~Vu4YD`a}3p8HY2f{dd!N6>t#V&jd^<=(X;yN6{;XlG6<B4hg zDXl%H!*a4Njup*iLC<Quu}sWam656{>j{hqbvVoI7_;QnU&%G`v+QuV>1f+SaGr!e z(&sv}i2Pizo3p>9%|7qH@vSE5FLn7f9evUttQ~uH!RJ*u=?{57n!YK#E<$oCFI_rN z{64rS(WR`F(!Z`dmO+iz+4-eic*0aDhaoxzv19g#Z?#48c+~Gy9;X6S4`%~ZjYea9 z-YS@7Y<>;nJiSUsn5Vy;^}Tu3JG+gNpKh?vTESi16--tXsXAlz;9JxPe{ELYUM-_@ zHbJmgo9cGEdEQTso<P0@vOKpofg@QS;5rZGs3EikzgAv?3L-?HR!uMf>a~ga<5>NS zmthHPt#m>V0w$_+T~})XH%zz4MhZM{helA`>ya|mK(cP#NEJ|2`Eu=86;fL-x$J4P zWFR%H#l+MwkYxIRs&HM{`OQ?t%V(3HVA&Aj;eg<E{>rNbaN4GKPpWc=z@QN9Uq*XB zl0uJb<sowsZDI7hSyhSH8xqepnQ7XxR=l|{EkBQAt~8~<^RYX{!I6H|Tsn{F2x<8R zI547OWglp{C;WVui*yb7+YF*+{Wv&<GcyBXHWM3euSsaV+QyK%S54Dx($ig^_v0?V z9iz4{dQ9IZ(t0B}SNc;QjwQ?vxfg6NXAh2@flHER6~}8OT@m|ZGn;u{ICxTN+bkMv z{`u4fJbTm;hP<MxcEBdygzSzju+Y8>i53D_?Zmm;Zg#idtE=P757=s{@0Atyi>g@V zyCv^we(f@B4kbzv6z9@^b5PO(MK5V>B{xt02U_tj)%VOd)snH4AoGMp#wH}CQF=8v z`VbT?#%NxH;_CK7DM3ysmD*6wTa}DtWg6Lb{=S320#f?*CX#CCm>zGImWCdxsF)y3 zh2=#gFqSW~ioN9u&S8G!Ws3}X`r7Hp{^puMqgB05N_1VFL?01lcDiBZ*W1bUVRS2- z5|iK-fZw%umvn+sc~zu03lhqr;9%qEK&83Dh^ZJ4Pw%ER$6$SRZL)|=$#B)7jRj1= zx8pjyav+q;;40HJNe@xFbW3gvMGR_sttHox&VE_roa>Mv3_B-w>{vQ<BTBo#pA8Fl zc3X`|uFys6G(?_z{Ua{@@^Hx(p^;DGpFrk^$L+kRy;LymRaQ5psOeonAt$2<!!dD* zaw6?(iA)b@v_VwCL>C$`fdO|1o50ZFQuOd`aQIZ{PrUILPEv)~M)=``P5!RMIm_8# z3c;*J8MMOFlD+Cpi}z~^X`o@M+F@?Z$I0i^dme!vH>OqzHA+Vd*1u-Le?>{Fgao-B z+Sd?O#Pk`XCl1a)p-3Sh<RE_nX>$!xnMc=vYdFU2t9|3mjaE4gY2tt^%MywAhck9z zTs&OlC0=1Ez%Qo`d6a`VN(54i|F&UB2Zn2OT0@QYK;9h2tXRx8xp;V~#O5~Xr%XIj z>LWf;<o{SZz04Zv{iV+fsTx7-M94pYn$Qb%Qxl$Tn$dE{c=Dvvc4dCM;usub25%_T zVP(I9PyfD}_i}hs$4zMgD^bWP7=|b!$e@}FcgCKb)<dCq0<$5=5U-I*!@=d@Gkh`g zsdG~f>>CAW9ve0UM5~awoCxIbp>Ygyd;-j0sJxQu$*rj452!Bi-#E=?4v!PB>URiR zNHSF<xsCw;J&b`*$EA(5jMu{!W5AV>_VN4=M)jUUG7%y1plrZ;s9TOrPsM54C+Mbx z6w(+Fic5-|5Hy7Gv8DXk4R?I@2r&<ZfMaa4h3-VJR+~Rb*zmv;f}tRcsps+WJ24-j zHMD-#RjX3jRN#ok(?a+~c3k1KkjyJqVpQi~Qugu(ERvmj*z*Z%I79~tf%N7S6NTQU zn0KH1wJnP!)U>LpUW?PMR2OMfVVJZcaALD#Rb++`2H+5u6w{sUp)<&#^>tn-5dPm% zn&$AD-i;9S_XT0_iNDjTK(ft&5G$2}K;ZZdS_FcQPIj9(R|KeDy%6w>Q2_ho13?h- zAs9t*ql;hU@jiobq+0twI-^niuHhUfz~%HH{xIKPP-B0V3IT3jM{+?7q;|2iU1`XQ z?DoUfw4Z69POSJ!o%Cb2u5aCO2>|!kJ)9lmpxiYy*xWvZgfQM!KEDOVdTh8P-jT!0 zs}|PwHSBMiI|D{zQ1s<jI33UQ7ajEDkhM?pBnitPcf7H>5#$`H+m>uqs&yB5gW69< z8W1}1<ByKkme$N}whQ<%@a)CEEuQsI_y7~aNajTm%_&M?Dl}EhCwJVC?kO`SX~iLx z(JDdOEzo0!v*%oo9yBjR&I|lWhsm(3cPCRnY=3(QRCx@YlWw}Q9#F#4?~etOGwVFI z$2{3Qa6>g>3lH{j*}KU_T!f+Bp^)OTo!qh6DLNMa;H(OmEFVeLdrf&9Y#yT*r`wIP zu6hya5lo5EtiG$hN*m%M<0$pZr>AAZ5I(fmBzvkMDJ<CTHCC7Qkli%hP?&rs^wd>$ zYW&1Kd7TnQgP1cxMAOO;?pRcXPwY-Y=*^7|KX1}zTyu$J6vNN3^x$SOwd{U-#0%bG z@1f+siT}BZd%e1+Xs>g%F6v||-Nw@4u^`dKqmPpnZ(;?+)uSr@h$z5O1S_tyLb-IJ zTwBn3odCIOO-xchL`0x;4uf*!-bN|&rgVgqG$Mg6*dM+2RPQEjp{i@78sz<_hJ734 z;=X#xg9i_)BuI@&RoAu4u2|K=V#8qUy54ccst)hbEWw$<SVH2jl%EgVPDA<79m3>< zusP#*LULIjQ)gvgh9oRuN4}Wp_E1i~c4f}`$^N$jv+N%?<k?ujk1#nM+PSTd_c`Z@ ze;n&7$<Z)m2fU=ke~62vjkqGD6~2+lC!!lxpV03HOzQ&E2tgx^ho8&{sxWPV@brxO zFMm?rniWVAIM`*l4xmH)9OxS9js2AI?~(T(&1(P%(4*>L&ow3p1<(MeyULcjz}M3O zC{$<mHI3cN^7RBcQ`^em951<pUQ+^Qwl#TX&PjJ;*^O0&nMalq?C2+Nj!*>MRWdGQ zx+L)2#AU+}<afe(<=!S)DE8SJg%aG{PIsR<7~j3(#M>TfsXMeI!f<{FY3b|ixp_q- z@*4T$F#TX`hDyM6dE=2Kx`~cAQN@~yi2lkYjeXV7=jjEG?sy!co$mWb6%^Spv)5rP zbn4-$Ke^1ft&BpA*@x1wC|N}GT8gd$jT~+em5buM&qT?TWm^dYRrRwbJGxZ*Qav{8 zr;&HPuKKlFh(mqJE7J*JE05<WmLbGHSN+PL2J1Nx*+jH=$)c`47n05R^p8VMHHpNQ z8Zd<+dPWS_{d!=JvE|*#l`y|@Y}AE9DB7_K-bO=LNWNp_l(R<Hx*ytl?w3Wt7F1Kp zc%nZcfm%p`3V8YbceSSA=gpCogQk^r*lxNH7249Y>LANMpAdA^nN?fB?y@ZaiO25Z zGPVR(bI06j*V9AQaNV=RFVo?7h}D**+`A83%SZ%FB!+o|9tsK|*u`_btQkum;TnzA zm?27)KbaISF^c7efK{eoN#ducJ3918puAuB#V;1oJgLp*WP|BJ3yswICZFYYZT6PJ zwdJX$vka&y@ly~Tej<0$Irw7V{WgF$V7KBRi*u?<VV2zrhCN|)x_%B`2!|uFFk)Vk zb)uu1^SQ_<?RuoLe}sDW-T6Ytr?`7evg7~HpsY@^bhNniYh8w9{z+T;srxG8k%yey zWn|ofqo#OHd+`#Rmy8-TzqHa3kf>?-bIe`IRd!L#kJGrC!ZnIdCg^)Yt6s|?2bEOQ z<|9-lU5=QutwW)F{Q5+{v*79*#`k&EcP@mZ>e7MDCqNL(An|ofm@d1U&s{9%HLbdj z9fx4)Uy21q?yNAkbd2P|DB1DF;W}M3LRmT&uuO}=%KNGyt1NG!oB=QRnY#8ntTErH zxWRmBiWy&f<M4QSSs^F}-$~>>#<LglOXS-G+->#MRNS-cC{KA?2lF3^6lJDe^4uQs z-?0_}@I2V0(t8M+%aOqA&XLT7dbwz1w5*x}HX$!c+=Kw!7;T{Qc50`Y`s*+wa`!(* zh_Mw>iWP-xuJk^E>$TR&+YZ+vzl{R9ykK|d=to<9FTQ7uEUoXN^wXz_SuVbqKTD3s z-;`g8VeI4k8xGe8^)K(_-4y1?Q#;MgPsXZg^yka!yl&2u3ofpQTUaNW=)8J9>(_0N z(btybIiDY4;K8eMk;_XQQybz}xSUyius<nqd3$W3nkNN*0jFKszVK3y3HSaWaiBh5 zUw|wTZn($Q*#jy}h1@#!ty{cj?iT>=%c%Y?Nl3dy2#^s?%-`V0!8%7U%RCUL%hnos zR?(NzUNWpG)BhR}L!rDO{g=b-ggiC!3gQj-F|$+3(%l-`82HI6aaPuV)@-fHknHTf z@39FsvQw3}{Ky3VI6J5?&97k_-J~tgNY$S!ajtkX`&9d!%px_~6e~`++7H13;yVO$ zY6A+7?ch==%Qjl6+sv`mFQza;!pKS@Dc{5d?AS`>qI-2rjTN&bn<JtLqVnm4sv{8= zKtb)+Gu>QGBD{oWPPv`l5}U_S*)L?h#iK-Yz3KKl-~Zj*V57s0veo~$veEzlbro(* zjI<{1CRaT^?#Lpo?AwnC#YxhOpv36CL||yJmd=ogIDtVE!~%cdV5Z|oz<QuJ9GrDn zok45C5V?vhHWl3Hc6L2)J?p4Dqq=T%UTVGDp{D86C6HP0qcj9!Y*nqUs=*^B_ys@Q zWL@Tn^Kbs0`sBWP{CaqZyQ!^ID5;dm=5Ur>D9b#*<{C@G45jbOsbHMo7kxX?|9<xI zzD?!cmsy{bJh9dBnyY`DtWf#9+D`Az-xc98Z$A!w-R?g2gYq3b{+jss2Ho-h^uQmb z?Viv6?#Hdx^bt@|74eVVABuH6kK}DL@!h{x@t~c|1--(;_we$C^{%|{mfW(Pqz!oO z`}uP8g%9rV?8+VPuI`6Dz0&*CwZDGy4!fD;=*Wg@Sc)64`kgN7M6}zEnvXLZ(@$3+ zxT{7{bz$JDzFjU?1ni22N*KT}^W2-hV3Obed;>s<xiTs62T6A)(7w&i&C)}VO9DJ* zpJ9c4R{N1lhAzQ|q`x7Wckf0}e88T&x9+a**zPXd?*2QTk@F0xuQ{1AcmN)Og}uDl zzXgu(@Z7TV@0&lim#;kphmAfjKxQ>(=ljLfJ_`+vf!z(W+f+4YY696I+V!t9`2OYt z;ol>b1dW_CX-B+iwX@s*{k{F2=u>g58*95`f+#wny>_N|+@<}`6G4iAND2Udd+((b zzc24liEq}D+9UgfGi8j<yVoe#@|iPK4R~hyudj!TSM_fWxv(VC6YDmiKIj_7-+7P; zXZr#jp6M}7HE_+y7>T}Snc$#iZH%U;J8SM#9zcYFfv>ET15}&{!MP=@BZn>+>KOM_ zRvt8P_X*6H)N8H`wX#XjM1RBKG`!;x;C5o)+mncJ2Z#T%Kfs31{26v+xooKzh%`WR zV<$=ONq3+jV~a6DzfT8f@*bN+CoWxA>n9%$PzGHYLk|r+6dD}caCD}&YFy=9-haS> zs07X$WL-SU023=7)-SJ%eaT1H4B;NThWZfrtII~_XZRMWp@dE-&3k(Pa>p6ure+hH zq^~yfYpzgn9KM(rNmxdM8e<1|W7f~X5Y5@yCtY{I9HxGX{~^)p<(bqYc|{SGo^9tl zKF`!YtazLQm3)^n*)l+HG==v_F+!i%pcCSt7l2vu?g>Y(frOWrJR@6jVpxV3$qu!g z@M(?riT9#B;)0%u57tGi7&AAsD`?uy0~uKbx?3tbPIQGvbg0$-XH<Ff!nCG}q~iZO zbN~VK9yifkOtg+p*Lniakt}<yBp8M<G63W1p-qf(w>FglQ6>l`UxNFAFH(7}q&mr2 zfy=xp=sOys(x)RN?ob1v?TB58m4jFq4yRLS44XP9pK|57@xf?V-4=JaRC$#UlSf55 zu@NRth`(xLrZ=<M30I>>gZm5Hf8Gi#5uPOH-(Y3wPgd&Tja5ps%02@+K@X<BM<u>b zm5k@*^A6=G*azJ{AhJnjrCbcAEBH=1#!E>3hx4$ONCYS%JO3z7;2bkbaa@4EE)3m? zTxxSGSSfOXRX*VC!a#ntI%TW*!t;oig$>>@VvXLnXm`(yJAAU_q_((-n;u_%dD{^z zybLN7YP{?}g<tV~7pu7t56+*=EV-~|A*tI4w%1&l*b5^?DFL*oV8eg7=p4Fr%DVI_ zGdkfR&VVWCYT93LcN>TIrGJ(;+%b%(4psp!LGd8sC}%9YAm$xW$S_rwk4AtR@|(!` zPG+*Y<7R%@T}!C2!*xB~(|}<QU9|TNMoG~Kx^yBmE}&_?{9IRo1I|Tw>%S~$)&(27 zLDv3{R5S}>J1dB8i^DvchJC5-eD6uA?P;WwnuP;xyki5xQ_weq9?CN=0vbTsVH_u& z-Mad0b!x{2ik7x;#T!L}6{3c>Q|l>HL0r&~%{C*BX=`DRrI}n13eCvQOzR8Y0=aca z9{#~}gi)FdqO^46_P3)q@=nk|m<RsdRSg-HFFYz$p(`bTQ^Eo$&xV~_?O{)$W|btD zv4Y=JA-0K<S|qrW6iOgRP`UD3Law{0Kosh5#Ty_ccpYY;=(!`ZPYpB;ZrMZU0g(P7 z%=$Yx<MBi*jfR+%Fhe`RZ-TwHH&sGe#8O9E1Q3qX7n?H?0kuCae|VF}aKu6PqX5$U z+kQ<KMdSlew!2cz7aqwVs0^0D*pRs~d!H`$`%9kps-n0@WDXFD4Eq_vAj;$FdWn?Y zm1NDtQ2I6no)jpGJx8K@Ot1QBb!d{Ag&!F!GkFL0pcW^DbGrG-b!gX2Ay)WN?dGLf zTNn?=zc^OU^u?C$`Ia`K42Ho_9~^nNx9b;di%5^d(Vq7O=S=V2U?A~HHOK>okvkwM zL##SMEMMtMR_S64RLuo;q=ZZb=&+h^%C4Hlgz2Uit7lI73Y+U32%M@jEJAE+QP8Fj zrhdJN2YD2s(=1au#sM4)VGI2g?Ul2jtV&RUSkaU0)U`KRkx4HE#iYsbhtwwl9K3De zsPd8jiAAZdxuEGKRhj+m_=F>e$@xNnwZ!f+Y~9zSQnxmnE0Vk64LYV!p|S-MofQ(d zfgD%_{zf&xE|1%-cd?$_pszVIM71&NOz$nBZf#-p%11wNjI;W0e3-Wm2prki(a*yl zY_FtFBImxge^=AF{ux^Vp**xE*uwbqm}Yu*nnuD{?yM8(mu6uZ@Oi7H^8nYA(ACV% z(Z`sSS_+Y~V4HnV0Y=;dpm~I+UbEG%a8mIl5DYPg4>yT{2{vh8ZzYZ^iZq$u`Do~c z!Gm}D!_me)!SqI8sUwrs_(!(*C9Lv>to8<jd~_l(FkYd7^1Io_Y)NIrE0+?$qw@dS z6lRLi&qsA4D6War&X&Mbj_ga@gM2!EK4l0N>~@l>XWZtU6Kec-9CuFM(8GBs1v=iw zkt`H+(n5<PLO<^mV5kY39vDWCFBU{=)H5APVC0i8^j3Ly7SX;<wxkJBg+C&xBr7QS zCaewROeiIP^X^%>O{-*Eg8pbei2++w@eg@8+t(<*FXB1=)W1&*gX$Ez`Z2E$L?`^A zUa~{^Uzp3?M<xEsp+i#KnLUkTl2!iZ*o2+`(b%;Hdp6kNyLhz~p}8umo&uiybDt@Y zQ>CI&91WP^><<Al$RJPHHpsmKI1t9ejx*373V7gP{esHBXZm<R1Cpo~yJQn16y=T$ z@k~+LnXw!KOGe3X@^F_@SAx6*OGsy5L;_}cQ(-9thjpbrrB{LPTTsuv>0t&{M^_P? z3bzUpoRNBF@Dw2z!u<J3pTNbWgjLG$2<q``NZ~N!-$<9mgpNes6E>0obrAwK!%&n= z7;?{|QOQu&7NM@i2`rE!{)+qy{a?Ctb&cfKJ>M?A+|B?u|B;{TD!PUT{5BW*-FqZ+ z@$EX9$Bte#g0sbH2;>L$4d;t|^*LAa7I31L^NG1cC#HszyMdYI%sqlnQz9YHaZ-0L z$c(@_mZz>j-s`424SMK`L^ZZeOLG9kVLzoA1gCqEr=T^{7C=hKu2918eB(U|BQ)=5 zhz)}>7{oz-@k3u3HUq+;m()CH4g$Urx++T1nZ*1pPE}xf=Mw#7?_a#DI}W$yQG1UK z5m^~9X3-{v=*&w(sFR@uTWV8lY~H~T-GfpOaTFd46F%A~;h*n!UbIH71?Dr#)Gt`h zUQunn=uS0>$dn+8$`a^K>ox$d8+%Qk@jeZ!COYjM^^5U6ML!Xm9Y4)}^ESzfEBNdk zZ%aE;Aps#ROKzg&oMep7e<FgnR(O_e0aY}5X$j0<H%Mwly8-LrKMIPOAF-kEMTq2* zmUB=PB(t=<Soh1WlC!jtDz(?jzF00V%|Ni3SYEloYoiYR@r*@CgBwPwyb+vTZi@al zd6z){ih%wh^BbLdn@6vkn*>`GHLtX{10A)4ZO2R(QryMQHX(dcjEaui<X2n$gAx|; zO8&~#luO+-t_C*BlN~M;y)p|g4q<@&dqn0Le?kC1YeHUGG(W|{ixT#JTM#(L@&YW9 z(Wl$w9hEUro_C*_n0rdFRE9riIhhyL4bb$9NzT;oK3*@wZHCZ4BJkbS4i;T8;2)=Q zfO|w5|BMG@BxDD|*DH{uQockqoF&Y)sHoT1-&%dE3{0xLN^Ll%$Z49UHeG8#&_rSQ zc4xN`fFi$F!U|$$FyZYf9z!+pm`HIF%O(>jG3JoO?fAP-BXI4l>mxf3SHg;t59b?? zQ|r5?GyJU%E;1D*;;%z_VzG-@nry*dL*_@AOPZLTkSKWDBu2;OZ@6yQCFCz6$$!8L zOh`tmz9}lDTUR?s#THf9ej{+}w?;dR!fG6Tdu1JZN|?hr3$o~gXAupb9X?aW!~rRh zs%d>Ve$Efx(X_igB$@<CPTK}fiu$TZH^8q#m32zkMOJdCIJb<4eR#x3X9762IzjCD zX&JOvIHXq`E*)L8yU&G6S*<w}2MhB$(;WWA4X!}b+Kh%RAbh55)K_dQF?)DQrQA)c zqQST4rR9d8nd~hT$@vd#cjLcrMFX{jD$pZq*u(h_S+lk<SkE|6H)Vc=obXV_G9Y2Q z+#lA-_B(!vB9#DvK@cZg8?w)sV>|=AA>zR*J_8gFFy#PQH5}i^G})jjCm#W=w2#?U zR7+F@O7Kq2lAbIhlynCs4Mdq|PG`Bvr&H!j!Dfp%tS4$aA^`4hg!tQ1%IfGn%~!8Q zZM(OJ@-PXq>S{Ws14tbxYWJU!+fE?BW!e4$-^E7+^=m?<@+L)e8gj4W{tpjo^?{(L zx)e5<+>+n_un~a`H%{Q)K^j=^m&9akhpiwc+L}QdeyY5+b)ew%C>A|1KkYWv1`qmF zorU77$Zi@U2kniS^3pP}wak*RXG3Il?-9Wpwx5BnD!+SAXpn{0{mZNTC*6#j9KaG` z(B)lS3;S_~QTNSF4$P*PlCCZXN;Q0fSw4Rkzcf;QvXNsglv%p*i-GK(k$}UIf2Tv$ z7GOCc7hs{>?cZ$=>_L#NN2f4TK`i%{MT7i_PJZb6sWSH$IZ*$y6S!;}?lD^#r>zf| zy4{ZOrQc<JrY|EL$@QvlzpFU&AA2mSq-!B26O$@*w}qdPRz}~JtK;(?2ZOD3JBfPk zY-*uFrw2%d=<wLpUth~)4!9x>j8j6nqC^;la|Q5of>3pI97i;m2Wmx5hK0vTqGpY$ zhD==-A-MN%ZcZdnnz0TF0^cM76!Z?chIr)aSr-=k+1U;Wp!N<?Tj<(bK$fUhxECby z%<%jrpth~BSRA0ERBP%WUR3)4WIVL5sg#6Whx3P`E-p!JxnYp+Y+5K4%~2F$@vx#f zv1OtVh%cHH8htEA6~9)Q3#QSsaXo$LjwAn6TjXY32JU6f!GluxnqFfZRKf7?mde(| zzyPAzY-!a9K}uWuxBla(6ibl3KYSdB_0HILFN0bApkV-Q3g+h#yoYM-cvAMaq~`KQ z+$Bi<b6YnA;GEx^1JVZHjAHGBL^6-SOD*WHa?Gf~&4L>KVAZVHkajo{G_w0OYm-4j z0fX)v0c4~VR@m`quR2ivRm(T5TSUw^4Bw#%vT|$EOP{r5+E9>SAGYe^5u~p$R2*f7 za_mMIE7o!NKaOq>SOlIM0xnb#t}gNUTzW@5#6!xy*}Z5qSDj02RVePG(?@xOfOQl? zXLvp&PBE8JE!g>PF6H#0?C<<Mh}r^2KC&0e$wtwrNuxY-Cs$_z5n0}B|7LL5_z0c= z`KkXBHqG=P$jH?Vs5GOMPl2Ajz|SP$pGN$Mo|0fxent`TLwah2M}O9ouCVpTTsRKa z68N|YHWHf1^u-dBu`Ah56Y2qEmc=GJCfg6RI*ij8MUG|Wlx>1dI*r6D*T$@Ukr;hq z@APB@0&oYjIzACeDEwnL;n>3pF#|F5R2&A3yr}@r9pFbp6HH48U!nPlPWuASs#5jz z+R<Z-ud3E*s7vlXZC6bPllU)F??#=K!v-Ckzw$ve&IP5J0Nh;CrsSk7F<@wN{VNCX z(`g6YY+u_wIO;&_=l-9=WAmQxvvraGv<a3N;gCYZ?9EF*+H|S(iqG_Y2*p5d`oQau z=}c){_DH6-pzB3IR?AF&X@BXNOc7-%oMlFV49r2q!A|WB-0Q6*%~PG+ZFCeN)wk)1 z4Zs`VflIbVNveG5YI9qw8lL%u;?l@T%7p|@N2FFWv1ArCn|AkJ;?bH3APKi{_i?cX zbsq<XhXqLkXsVgVOo!64|C@VE>V)_uSbjppX6DnB4WTI=WtZjVz(T!{F%9Mw!zJ%p z+k&K=2lqG?soYq7*oNwpcg^^A?o*8iZPQ98448s_(U7%y3zU*wVt66rf~KH?u00^q z{DV<8s?%M;^UA%DcF+h%3zZQY5~7e-w7+0dCsmJVj7Zf4E8!Kd0Yl$0V}T15pg5XJ z!H>~U>Pp;c#uuWmkX<!^XUoQ`Zr*#zKj_C+CjIg(;MK>I26m)?hC8?+zuPvg@-8#M zpMJQ~M<)Z`AyzwC2y9ShiX%6W3@)JI`jna7=Uk4^ALfZ5x^bX-fYk@yLiJ=#)3%dw zl_nG863qw#-4i?SgbfO~l;80S`iEJ6;d&``J`q6ta?;h)%H*5QWfd61qiFN`zMHyy z0tAnJoG4PW78%(i*&;>N*yR(R2essg`yQuIFT%Ml3n`q_)6PcmM;Ng)s{r+)CTnrP zwV+eWa^9P2Sq`NXJm+5~f_+7mx~0wO`rIR~m+_^IrOR9@485-Aqq12WBOJbtt)e5S z><js)si7yPj2yA73~8zVo)W(eZN+s(+GJad{amoHVKtTtn?WzIrEhvp_2<w=^G(a& z^ql&DYP1tQs`9*5!~w$Suz@HfUYG~wN?mBxhbiNe^k{V7)EKA<<r<Ec0-3c5=*ex| zT}Hg8L%Eh2dWQdg{sgav3ecudEygt7641#hj=5?OPceIuxU~NyrP^ZfzliAvl;cTR zdDh&<ThgiIGT^FNXI2&HOo-A`qUU5Gof_$)Siwzaj|lm9P>>$gG-E8quH8EZ8^yr5 z>&!?tL$;qm8$O}S0|YATAvbUzSj!>7%S5#8Of0#NzM=NQprmA^&IDAiaKX_{4sb#F zeBr0e`uwM9i$$m&?D5S3UgJ?C&aR&le`vK2FKo4sbD<#6s`4#Cmu^K${Wve7O7-Gd zDu1<_E&ov(o!(&_ga^p|6^kD9S}*rfdREw5(Bcr%vwi<icc+)agZ5Gs8xuTt&=$BG zAGyC8ftkgbG^MNWhb0;DK^XY;@Al#vx|#*m%E;CV3_T1wKf?VW*e);$<fJJ@t;&HD z7OzS;oWw@U2*`UmE1ht(>}j``s-T~Z+7d4Aq-2<LGR)GD1t^m#oCd^7z^2+UP=52L z$`Vfv%{%*Hb^zM`*rVdMhVbieiP>*d!Jd@drw03W^C3a##tllf^;-ic1u0O11VX7o zP5xqZupzCfAJKk7eC7Q+GAI|e4;rw0iZAlP99guk<bkq&wKNq3Ch;2=9zip&kaqCW z9-cK<WTe!NDG_c!u3(Tj`@>mK6VG-q;&<c@ZZkmFKBYR-T@*x_rff!v=|BsrHb+iy zHk=h$`5pFfJ}9e=m_#jVbDYHXkHR|^x_yvBd8mp0SGw|*vMv^tptnYl?<9VXDKYy= z>1{fi@)#5aH9>EW;Bd0x^zdk8%OPXRdMISONvd2%%H(6Kl2NxdJu>Q*_JK|hDCMFI zq-jM9y?KTF^~HcKM}VfgQ)~nvnM!-3h<hR?)k`UKxKB;KIbf!M%wH}?z<EG0mxahJ zjar#D<)9pzti*Wnp_e&of32+D{a0~ZMyc5)IZs+Ly%-IJS)#zP%4gL{zC%P_bpG8b zEpsc<D+ZKg<huV}uypK@&3$<rHJn@hn@2fSalR*5PJlJD&x*jC4R09T84Z!wizA6r zxyA#5C>sU-;cj;4DYmA_n9jg{fSX$7HJ-`YMnwNxDFRDNF!ki@uc{+f%vn}=G^g~B zJrj;}wI9^`)or_S##XQ|!k9gZ-6JEqBM1A@Pnl+z;RHi4VTjw=-}9q5^nJE?oOS&@ zhkA;<5_+%v{{enLfxkNkoW~4&Drj@<ipif*v)twJVOz+Cn5s(7?h>I#NOh5G0G?FC zL%BhA_R6fBE>)j(EhkfP<N~eN6WMtdz{SQM2H`CTKNlW)_rO#{W`TH#kTp={7_NBH z{%P)=1D&;djurHctO9)I=HqkPRD2fa;j=Ucp7oFAI_N8F9(_%-(pQRwzGk!Zb-fv0 zzjz{L0lZ`<vwJRmn|Bw%8`Rj{3o#t%275Z1vV|_{8JJy|xO*;yqAB_COgA&3Xi9;; z<VUS-DbNL3cCqyHEPSfDKgTZE06;+20%%bUE}`zkUC$o6`1~a9X_q1ZsCWRwAdC-j zYa8OgWRJlM)Nd<bjqD1|$E~fLI^cjbsvIe)_O`|}xotP5_{}boi5O~jKX(oFi<#~> zd!%AaBVSgJO-S)iUR?)9%FBpXN!f+bC=bH<xHNI$N#kN>>u3IvI)KOr2(NrJ98ZzW z0o3^9i{hs<!k?zf<}}n3SYQ<}`2?eM6J)=w`9c$9*!tF5Tc|EVBxqSvDK7rPKp@{+ zhD*O#7FmZ(HY&hq`|N!UGn+>?K-rro%WoC7hcBdvVe4|z3IeHlnT2VB7AP5FTRsf4 zUjSLgEclD@oW_Y_$m$|%P{KMb%~cvaiav`N%6Dm5Msv`XgBm)clopuRe78m2uBwG$ zXedQgl0ma;d7mAVx0*$i7jhaW=y_-*Grk2J?DbvqrYvS`C*7#?fp#yg>X%l<rB!{3 z33u(pMfp7Lt%>n__#!dhz|RunoB6BABPmH~cWnwaeeQt{f5iX;LCLb65vzv{O8P75 z1{9UUM$PWAbu9LR8N{`mhUnmf+y8|AZGjH1WvT(KrjQtSb5Hy$u54`=Nj}#yfb$Q@ z<X2SjWg^MruNO%Mf3--=Tws?0Rqr?#I8HUuII_9;hBX#}cjkvwjU9+MxWMmdyo0Wq zMxA{K7JHf|8o9uebOIX||2hJyjrfK!GYajGHPJ=$I3w^$y!pxlB3a3QPbAsAvkK?{ zmC6-KDi@dp0D}>97ZjYC?<tkIEFjpM*AJ^lP;B&Le&r?_J3D>Va3W@go@ZS18^{L= zcaW}Dbn#|ehhog^O4^BB;4C%n`xveTw<i4gYqfqUS;WWvCXcTdw^LTF)Kv^FfIc5$ zTk0qf^kAtVB(tRW`XPsh_&%dr0E`SUN;9Aupv)<Y{j85UiOEaGCR;Jt$S5=YX}%nq zd|fhmirAKo$p&T&zt~hPY&^Nglw=Y!GR9P26J67@2A${v0m{)sZt8NP@0I0)Qm>|z zk6%m|>Z>erwME)umKI1`SZT{tsme-Miu_hz5l(e(KxsQecN0N48PJVLsvSnfsoPGa z3Kx7Gr5}#ypm}de9=`?`4N(WKdI8BUEDly&664m*<AW72q%Nh>rCP3KXCjw6Z?A{k zf-9FbG%TC<4md!Wu(&+raT;Br{1i8CdX(?`7Z6f~%3v0iR^~t0Bm6Sovz(3!vTB3x zIl2Nt<Ae!N0EvGBh%^y5b+0ld35Wtg%ertclpw7|i)>=^52)k-t6W;kN;9OjQ^h;2 zi3y5iB1cEbHY4ugP_m30RenLN?5+aZ>O)_fwZ^Q(%C(?I4XJ#Zn@q%(h|l9B!}ym5 z13mEJ2X$$~b?E+w(b{wp3>00`v`IRpNP%t$O2M=Ee5wnd&z!>NzD|4|I*v{Pk3AKq zuV62IJ=0EKfn)Ube2Bh&_bR-8@kF5S63)8jV6|BaqH95vmWMN*6d;(kWLOIJ;0JI@ z5bGsZTOo$lr8har`58H`&1^whZI?E;;hrX_l@`6xS65>9RS&PVy}5=g{773q1-0q$ zRWRdu{6_Mcwx{K}Z1&UlN!4N`t(v<*+n_bos@+$vebF5+TgZj~NK{+TO7@Jc!)|^P zCpLb<V)4TD4d;SYe-|%|+nnvsS`8g$esiZ0doHCM-5j%P(4%iwSPZeX5t5rum9Er- zaTCnK5EmiFMAWbrrSHRe$j2&O0A4P!<Y8(b^pRKLEfv)zHywOUb_cUgEk@@txxBzC z-Ctl0!e3#x+vBC|a+7n|_L@stPgEfe@>6F%$r%qi`_}Eod=a_2Z=IBdpEYZ7N&0WK z%M<wZc_)u963ZJ|Td|qW;i+v-mC*%c@F6RhynL3t%xrqwW?4Xf_aW4KnMJN(weT|- zcCrHwbG;^nq2Gh6h~yrY*T5`Br0QOAXoO!ITmnOXjlA@coM8DQR>|3i=1m-oiX8b} zf<-~0hCpbGV|%6SjLThUXus9es4{$koO*c`uG6dFp;h=UnM|wDueC0M3(nLB0jS$t z^8JlJ>=v#SOP{?4Rf~KdzR6#y<0h^@bMh+Cr&hpB4DsSI7PuE;$W8-Q4oX&A`0+lC zDDTMa<lnStxjK#_@rqjQ{NVChwR}ML0_7?e8h9P#ME^Ur#BJeP?o`o#g`$0fEQX}m zB;-hRV_R8Zg|5z#mlou$TH#v0-1ls0k_Qs*iRA_CI%&4f6-DxD7NF<aCdnHt;>ZYZ z2ORUnizB?*{^h0{g7Y>7@A{)v&V(9^51AR^xX*yCC}WB7PKJ3I`xpZ`5K#86djjnq z+(iIlMgXmOaIqQW7IP5ccpH?*LW6AW<X7*jz&*Y^b%RCSV8uO>Mf&~(g@I;B#)G&E z7Fh*oSovD@$5YiG=czxQLvnS%qh@B6$Lp3qL!TzwN!x%;RZpy;R_JH)IXMh6bL}!z zXdtx%(pB{n+#mFK{mcqq#Uk{;d;BqULRf=doc9;7E0(K#K@Qoc?}r~{8IT%Y+rSYQ z2n2EAS7tNXZqtJ1uNe4}7SK6CEfS-7iOGPsREQ%5Ti>yT9Bb<$VgUt2ADDBp>XxVN z1t8C1jPuHi0xCa2+-5fLSzh%WFL|XKO1%bTbsO6}lAi*q?O6)B7S|d0bc7U4F7=(! z^iS$Wcj?r5uOV<kBLoB2g%j(=Ayu`hmFT5&reqp!Zwh&2zlCmwGMNd>v*~@D06{wr z&Z8ABna-Q#sPaR99{F%FT@|qp2^^^fWQm<k#pTZ+s~K&gE}1SAQd)QubP%rclFvRw zn{G}rlT_QIWJ-&aG%tA@ldfFl`B#990M={Oq{fcB`a!K_;v$%2U1Sy}QoD2<xeu|Z z^OHI{s5~36(J6q4l%e;NV+)XOB3)|jRMMbR&@xPvyM8G&eL5EE;~Z!t?Li~z*$Io8 z(Mk3>2<_g3j~DT=cf#T^n!TKLia>vsxXd61&fPa)F$pXPXnR{j?|mH>Q#D&>4{uDt zWa<p079$RAUO~5(C$X+I7qNp-DQN7X8`qiJ@8EOgh~HRK80Kff9}9o*EtHW#^g;s_ zr3+@d99+9y34`h|R&f_TlvV2HyX1EWZfn*AH?VT5vRsacgyU}p1((0N3e>oNzkt0# z)wojlR9-%eb=rjwW#VCM=q`LH8Hcf{yYLZp_TbocX%z>X+7=QUyA7cF<EE;!TS)Vp z$cw;1CC(l+<;!qE+ZMtD2tzEN0WIQF#38dVMZWWHsrr;uc{juhi{v}kN!6Xv%5{&S zynvXwa#lN#6YO|7>o|OvXt1REY~v)k`YaGs_TD9xk7HHmS>=6#`vy{KqAPQC95d9- z>)h(9?iyth5L0gKLi?X*{R}yUI$ngPU0$tmvNKVqRN2`nRj#vz2n)0sWrBm3_4@8t zFAs)BgKBYT!Whkgqpn>EPu|)Hb!XD~ETZNfgctQ2@u<ZGDVXoogctf0wYWWrN$yJm zgfQ4v7ukj5A8q1^F15Hb38{99S(u{kD$vujq1%q3?Vm*v#5SRuIP2SstoH$)G$}Zl z@J)l^AFa4+0nl8mXBiY4+j69B8`>Ue2jZ5sJ#q(dL0PoI=K@6jEOHkTl#Z-TJ~g); z5F|Qd5gIoZVn+a}aTq;xEAGc3y9@nq;9K2vKluXJ6~}fT*$LH&K(SB{Kwp6F<sin$ zlp#$Tpd&AO4ync1LOD*3Vb)Gcu4TR)BOdu6n@Z`1S507m|E@=aREv*~p%1zg`@!mo zk5Di0+)kv;GP5eBD(N1w;0&_v0F-nb;_=u3b++4%niiIWi(v!r(f#>4lr~*R#{V+_ zsdV+QC61D;q5ukkaiCDZin&_oeJwOk3%#v{7HXle7IJ8zKWd?JE%dw=s?tLLM+@Cm zirs_}k6;9l>#d7=Z^+wxxJM67IHd_<u35z%<3Z}yyf;SbdbM79>Y^4$r}1s~L*7|l z@)0`k+DoasR8F(noe6J?cq=0SlDe@SH=V)tR|DcDr@m5EWM|ra>o3q=gKrC|(Y{sh zSY|`_nshSn61wlMjd<i@bcgiaeG*T5oc686_wHlZai@J%G|;XE95g_?^t4!t5R6=m z!(ulM1CaHl2*~hRV(D@Efh$G@yKrPt6uWRVL{l*1tG9u)q1>@s8$viBck3gEYY8*B zhJ<-s>S?qk_ac{WKMn0J#_V$O9_m!6!RVFMxJ|FDHZ=9h(lW@4z~s=C-<L~~AAODG z$j~(FyK3j|#HcP$@bj;}o8;%B%lY|T%F9!bm*);&$;)_dAdS3>bAPCAt-dAh_GoU9 z-h>aM=D~<Qk;Cd~xzB!{dzd<MjT8<AE6rlu+#tBgdsXN}4B;Ak*T$-Y44CHdVU#1L zh&|H4(UV0>zpFdaPYjk>A$Adsov+98H-=TCD>(0<KEcw$1y(Ml<a-y-ADBJrySr&+ zoGc!A(7Z^%U^Dyk$uCO~4+_E2{1g}lWQsp;HK<wF;Nd#dd6+L@K&GAt&V20@XjA$Y z>+rX1vCag*2zl;QLe?Yf0RX`L_Q9^2DwOJ;gZX_9<}g0I-{{G@mdc2Oa}a9I{{rO& z74*OyD#@`a(xdnd5TZJ#;ghv>$z?x%S>J#wDNu>U3r*qX1#~t43)@M3J-;fC+j&$z zdYOY+QZcDoXlmyUEY5LzxC1{<wVm_^%USfvnIbn@<SL8(LPI)e{ieUzhZ-_&6GL<C zryB?*`xX9b)PHEimk(ssY{^}y-MhqIcGQ53g8`Ye7A2});g_~*e;rlT(NJ0m^}3$! zN@yuAnu6YC-<2H&VKQT|Q|vY*mgmRVoSIQaSNUxxn{lrrL|Z;am9vGuAp_PO6Ii?D zwZ8X2TxK}L_{4_KDM`(*^}pvBT|PnacbOxbz<NCdU4rDe?M#hy$PC5Uhq#ve@o1rm zEL=jJdO!(E(;^C&Xug3Ub{Ied33!~ic?3zpwaf<~-`ul6#2m0_j&#8Q_L4n4`obF* zz;o;LIKttKoW+dCUB7$$#Kro#l2?X|bOB(7Z}^OZaeK&yL_Xe<Sb@m@LWODS-nl?n zsMW$v*LlcY5D1!`J5f-z7rx~;ow(rZ2Ly$Gal6RgN`0wLIOOYv$irAIkC)7<)E6Ix z=hc1KWQgOEaX<B0^YPH^89a^km{W7WuXE$S*n_y1(XZw@sJ>!9&x0AH@{4Vu9hS=0 z$5L24r&uzzl4l*IXsS05cQAkjxPk#pbG6nEk^e5o?Pfg!Mthfb5_N4IF5+x{8y9ha z(&0*t^n5M^UaHi{K0_zFFwr+meV9h@tSf#^p%Xo*UG#7nYF}q@GY!vSJr&-K29X?2 zj=MkyNL0-k(C)Ns<j8%Wk6Jvn5$^ZZ7LR-m<c^^Nl;Dx>%@aI+cC6PZROM!|6dgtx zeyWFj`juv^oTR&=d}`8o%95+CP*`fzfDvH2T>l*O06$YCX8tOXWbu|N-ee0!4&sU4 z$ieaSiN}T`2gjMIQ#V-pebf-ggSk_^F7oU|#LOLNm&4LFv$Tzswpqd-Su?}IZPwrZ z_O~yi5`gDiDy9~`bp$i+$T7599d`<Y!AGVc>oGKrg}7zHU_ux*_fAc@Y-o6c0df(S z-8Pxk+-_(x^}@vIahNu(wS}HLb=ac~{W}7m187?SBl259d{OY3FCc>3-_Gqf+1ocy zEDSqb!JS!{?$2LA-q()e>?kvc5o1e8I1Syk2~RFVCMeGZWh1DIdZk;I;F7T$;vp8) z2yZgk3z^*H2<6*y9bkAYfR8#kAke>4paP`ZV@@n)AZ*~Xo0g_dv+j5-1<@+w2Es-@ z7o+kq3J|qEmWl*Z(prB(Kd`Mwloc8oqk$ek^Is^GI<BSP@>BQ>wq#?nsWbS!d~s;f z=8UGL+0(4S<@rjMcyZEZ3kLIp%ez~xim45F+5UDzTVet8q2rYIEj|ZMZ{O)f+x06H zO}nV0dgTUwnz;RbhQCVQ?4w$0K5=zYEtTBbi#Bx@`R~4jez@5u2|e~=>g_%sri96! zF{<K-rYd^K4VZry0!fuVnL<N0&*h3f-Qs>+7J8rn{)?p1F7{g8&@<?ydJmwHrkP<p zh$ADy^k@oxqN=Ip5<s+|c9?hS-m1z%apaOPek@22fGB6gkzrvxu7f$uqlwBf%$p`V z<Ko>LF3D|4U!mUo%a*|{RFso-nj{~P&<8`vmLud(!#HikaPtWoW($=ZY)Z$oBtONH zojqcxs1$DqY525RC6`c!^8neb#^|??ZgNGzw(6yn<61np4dx`kdvs7>)Ga9Vai9gu zrg~h2LAT12x8VZ&LuP5CrDPT19>Fow)c84|d<U0Gg)eqww{&nVZ8&S}uYi%#5qp8T z49&~qae=f4(A?KiBnjQYKRl`RjZ(Oy!T^KpT5kU$ZhuGtl6CKB+6swmxqTX7GgR8+ zn?92p@dRJfB1Y(hj#Hi8VjBzQycsYw#N;T{En0?-fDE}8O~q8H%mPYXP-+20->a8z zs+WqyFuHTxE}WCkQynw*68au5HBB=+?BPuVh<=;OZ~;8a5G<SiGG3U`#IlYh!Ueg^ zOvXVLz$&>}#UyQHb(y7!s)tZiDZef$#(w4kD{&#NT}@5`4IOkK<oNE!fiOJ=sny*o zS^XvUuGDyz;EsU2)(3q~evI1`PS###=32bi75OmeiS<TY&gu%B;aVyn@@3p(gCQXg zoqt}OMGyXxm*_D_$=QuFGj@<HoTWCdK1#;P6~0n!oVZBpo2XjW`P_18J5^@~DmECo zz-PEGnS!I!zy;n%ODl^M{yi}S%gnoTaN;RrcjwW!W%ty{c-jecR56~?Xswr*mRaj1 zi<5<DheBvdDKbH0){dolQ(Id%q+vo#OTZD)2m&h)B}{AU78cV!QR%2nR(k>+&B=;a zAIFMM!#KD4Zem0macC7mWuK?J=E`iaMuhz4AuX4iT!p#Fs!tP(NQzlp-_4*i#c7C( zh^1ZVlO>GzUm_lyc%vy8VW2aEemVoJ5Tq3PuY#o~KZ;fr?y|TraBytkrLlp~Xdt-O z6?L+>sNDQeoCg~7>9R>r6CWA|MGq*P2uG}HH7fvuQvjdx5?#nTJ?d+R)j-d35fZR! zr>KGS|53F-amD*G5_AF^=@H!h#xoTW{zs(?(5=lUKY~?*h`N$I;d}BU2er^u5Srj3 zn_h=*+>g0PW(BpI9(n09fK{Ua%}xYR_fxyJbTt0v*Xe5TBOxtgIb?Lmj~s*0^*EGW zWE=p<kKlIw5!_)fjJn832S#=3p}r18hWW|gI_TjX`4Mbr=@ul*l#-ugov=2K0=KC9 zF^Rm|K~EoVOA>LrM#OP)8dM?^DuL@C2vo9mm>(}!nn$CXFj|aKnnpe3#~8e<kMWF^ zT|3J%&m$Mv2l+W(X#w%$P)D=KLq5mN&qYiPPJ(p3117<Z^e9HOj+&%&O}z=_&aXfL zCp~}1H6d*RuGj#Y+cubhr;;}@dc*ztEc|-AHVePpgR`)O%!wt|%!+YsMQpp@Luyn_ z-1J;F1`h-D)dX`3Jz6WMo4nYYgRb#h%cGQE@m`neUNY2<D^R`ivK-qP`x`<oG&ERs zq+Yx*X|uUrJ4>b9LH+9e2I^Tq9p&7%PO6-ulYI?8SAP6Bopj6wB|o@oc!l2(T*a<% zEhk?Y^ph(H$eYpCenD*<51I7iv|Tr5=KU7m<ZJ$#TyyUDm<se5b=OGxCQq`T7jlXE zaT4s88klk)J#_)JvBx)?q{dMnWZhv|6>=njxL_I_>yTV*k8J%0hvVNGE^|2MsKasV zU5nIj@i+d_Xnn?O_4x<>#=l`M_cy*dnVI^!lbN_%`*nX~=YIk}9UApFt|S*eg1~~A zLJj!>zN7_;i~1W=z?~XkTlpfD8S8EQnx1Dic?I+2DN_TX2dA{9GMcaPuRg-MP+#LE zAJK;VBVXeSm-!k4r2?UCnRv>YOlGLOpsjEvGpM<JqdrLJ32fOk9!x1b&A_KSKvw`u zs^OfruCP3~w16#a7eC@m;VB)N;hNZ=TzCbD9-Eek#rw9jMJwbG5B1cOoEG$6-t#at z_*6Hx2$ym26bv%djnKJ!9DEjexjWHV<*%TH?lJHar8@H-t2SihWvtjeB4tYzhzz}@ z+l}xI5K`^%3wW+bm`g5n0R=+&_CDT1{!YIg_C6sCPgxzQ(d<nS4)@{bV1)&hB`?>~ zM3;V9c~P*+AZ5$T@(SZiq-AFN(6(t_dO+(3s}qMVlxnd(A4)|Ie^9Qrh!<3Tig;m! zpD2gL?iuol@WqsHcdE%uk6I`x2ivn2GXoBDKA+<^y4}l3F_350Q9Qp1%sd-P-BHc9 zvdTo8TIt2pF<4yOn<%cNahOln>7?N4h1qBruU(TkO`;!$&n4SFOfvk{@EN;En`GG| zaxGslNM0`RDZY(-rq%#@v_ou1cXN$)=^nCjHTuq_K&7NqbyJ?YiS>|mY1EJW2dP?> z@Z1*Hf^PV9o%LbVl`1R`3(Gy^yJ`AisUk2zwC@qV!0RDbLm(Va@dOuA&p<K`uXO01 zQG;|!t68fPX@|pH@bJQig*0^H%ZE8+8}(-gi3rWO+|AtzZOc}dnYsOj#ZtDCgKK_b zw^a;T)1hbT&FJ)-JQUwMRbEBMy?<o2<m{DJ^#DUmA$NZO%#qI!=Lbo41XgSWv&fBi zY;0xi#Vt_Th8bl32RJUt)FdD|^1dbsm!+WRG&IeNCtbAG$!XzFQg<vZGJ`cL<d6&R z)65^fpUABEn$aTOzImBc+i!n|Ye@wpV5V|`OVGZOS_@yiqr9lV80w6-I!Cy}p(?+* zhM!aghR@N#P8<^A$0O1zE0{-kS=3LoSYZ-*LMuslKgkGr@Tts~kDee>wbdSOFiB24 zfJoYB;j(ZIWCuw&os_+wSSKNO&`(w;#sg-YbP~tU2bV%FPAboygTi`c_FS1Wy*04d zTqQ^NpX^wY(sUt%Z=k2x?^mm>O^qW=Yo^Qv%M7|NNn3e#N(S$exgAThXCtta0^i!o z%A7;XfuKeWbasX?n}S}0ppz+RP68CbOd8lV8Ga^MO_oEmTymN^FICO$*G;%BCN#E4 zpo44uA$;1at=yyQFfPqd-5)GZH4iXNTnlcGLdiz11y}6@9ehTUJwr%oV$F)FDSt?= z?Zd-D5vdmDr+#}EC!S!algkdn!pU6A?;)@-i?_6z$`%8SV?U*f)BRQU_KkVL#Rfdc zgr~zGsm+w32ta@3hpN-+r{*S}hEp%EwUD9hlff5IhX8ftv;nAU6`#}8sAljlx0$l! zv>nxI>(bN|WwyPxPe`Q+&q6<`+6lco@1U;qG};XCWl$kJ=>2d7u$_`Cr)h0>U?Yu6 z$_@imUXBzx`>+F`kzAmY(H4bp@9>TtnJpb#Qp;kGP&>c@R;|K`ar5>GP<TW39o+s* zN7Kt83oe?G9TT|yuXBeb3<f%cEJEHxe!|1N%1;*C+Xb_!OL55DK>1D3q}gSyD{o2> z<HoJ&J0{3n>&ooeWn$bUBtqAe6?Q4(2fLp38&=>=UqrZ_woG>R6xQ~gASf!q=<D+{ zWA4boBbgy#UgDyHAntC7)xGG819KS~Pu3%-nK^qwI&lG+`t<b2MC~nKW$Um<xTnG< zu+93Vr4x&kHsFcOdhs7K1$C+c8sph#V2i)t0J@OHkE@q5@tA(d2t6O$M>(fo43F5u z8>i#tFk(rDkR^u9km}E%XBLr(S}?cMYSg*Jh&QBt8<(u1T(T;`C3EV<#&`z*KmM%M z^^yrWC61he9~a<bww%^ho_bA&avgF`ng$%8tTTcH&e2X`Xz}S95~zQIfhHpZO@cAa zXPXC7k%6*}N_xG_XkgGOAktz#Lq(X@&!19fZ-W{C<F2IS{HzO|++u#zQ{q450^h@r z^}S5&t`WMKh!dON>U$Pd^&x<zUKJxCuK&=biR*vs8Y`~%Bd4C(!rG@%Sv{HT(7}E* zTI6{6R8Gnf5Yq_}eO@~PDW`FV%Ztonw}EfdjtD!gQ$h}yP0MsNbGnko@&PwdJ^FzW zBzKY7!0VcqoBZrT;`Ebp6*>QIvh1OEDIPqflCTggjJALEFI~8ERm-|brFX1rC_Tfn z_uZrrcfYHvud>5BdWI|qCVlkOy@%dzH-T&iDD5=QEclY!lqxDQCxVLGFwR4($rAsy z+OmH%c|3UzLt`lHD*(GOn-n7^{anxg_$RJTIwZ;~3oPgp7C6b@YYXitFJN0j!o=o_ zs5~`fi=|s<Q}_MY0#G8n@&)mtx#6b4zla~1cuV1l)-*9{5Mu^mKyD9rv!*b<tnhkW z{MZzZ8Tr)nzXik@8r)|H2L-H+z|)+V$CrA7&X@E9HGYRbzs^I-rlD2~V>T?X$PXOI z@Zgg;f$gTJPU#eGKe}<g7)lYVhSd6~LuE3gDieInU^3bqS3|(oT6LpbOi#v!96{Gm za~s_#J>Br8+go2!{R!8SO@}wJhq)FLe&*3JJ8X&^Mo7G9@`J5L`GXS5g^l+ec@AD! zL$Z6SzKyzEOu@ALU@Og$1`^;Vy-woYCZ_4`8BOBdHb$!-Jo7W4ayP<!3so|`1(mX& zXgDcG%~}y#f2pL(^vk9O&TMNymr1(!d>5)*Ub%XBM>;NsR}X|)0rdaeVa=zdR2~G* zm!mKgfc;JLw9$Z>rBvBDyn|`2FjH5sV1*^=BF(kn!h%}Ciq5#XQgsg7hqgX$J0qV* z6qIb}3#o!$31z1?Ei*SMKW?iqH-m1G;vZP8WCY9TrmPtH%BAly#YI)+Zv(S_kvCa4 z8`W&3MKB)-h{d6#<78llPxfnd;^#trlnexm;x(FTnK)$P9`oVpSK8-lZX9=tG=YM; z^FUHv_K>$$Xo@PRLY1e+h!dsS3vu+y1t^I*q1P16Bot@3l7Jg`E^^B$oK+yh6srB{ zCtft662ueE`Iq#gYF1weMOo3QF{12~cQoPh#yew0+0H9P*%2M=xg;2=eCMALWp3hG z@oj=?U}TJ-x_uP$ig&(MP`&(4LQwtZilm?#a9A9Cs<?$^_{nr`KDZP){bhO`0F1^I zF&jjdnwq#LV4%$6@W_2~8VnmgOMD1~78v*zL#k3HeurN9w5=F~A9sLJt1T`$LjDbR zn4PRqT%^_roOtVX&@s0{{5D*1LHO;R=+lw{Y%8TDtfA)KE#@m+>2tJ;v#?{qyblIn z!UgPor||hq4?Y7g(r27LyXdo@KF`wUUi$1rr^Mw4;4$$ehJOKJkidl`?PO9=|K^0M zHXRB<3a%CgUWE_b-oU>7JKi2SU?1V%<_=sX?IW}fz4UpEKJl_n>8Wmb*4s~WEzjZc zO=FGef^_Ivh%2EvxW~5OnZnz;>&5u$%^Y{&D7U|9Z_ELv6o;%SQ(X6j(z*RDMV%1u zXT!u?Cj~It-lq8-i}5t>(Ja8D76d-uh$BP{VsoKQKOfWHt}zsdCn*r?PRFg2qaw-Y zt3+br=M}c`1%+Wg2LfDRKcuGbL-5!EyooM|pXS(ali!Bef5CS%{l-}%_9W(@!B_x3 z>&1)L357D~66QqbU`0R#N%f-$2cN;n*h+|zY5IMk4DP_|!E&}!gO8OU@blO#CU$)S z@9fL)_Um}FDPBr}n2}=azXBtMW1q5G!{bXplE;0#LyX_g=ZW#nT;MpHXc9{H*dZ3n zyY+ryoaurd4c2PxS8SsG*4V!%zw={{Q^aXve7-QLUfgb+CyWOvuV(}r#eRsuahsNU zvzGcirs9#Z*qt<W9oJGpKknsPO6kXsxR!bJL*QBp>BknXWhVVt&9zLzkLQsspuIR0 zRs<=BMQJb7{iCbUEh*NQrZ;;X_ry&`+&nvCL>zAJ2|Ox>$HNx$R$zedX|AqZ;3F_* z#iRLA%1ww#<7%0bSZlN+cnI&ir3VwGLw&S6a4dkKCOvM%O<07*Rpi(Q5FDfoScG&6 zbTFfoJH(7l6Vmi}`4BA$q;|>?Bog%b0ENoex?Wy0EIosTaxE9kC~<|%UC(CYSxk%+ zpYNqq*@uCE$~`^~+Os3I1t!5X_|n7&w?DMpMRwk<Pwj?^3Y9jX<Pbi$cE-+{@w^-m z`a`HcP^IN5tT##HTJZW_B-5YFNLXY@+dxI4e)~GdNTuh7aEfdVv=8Cw9xT=+(-+ty zSVeX3iwvFtYS(V9)NTUrtV*1s=A?Z%l9jZ2iKb}~S|c^l6Pu4d)}v#B`tnqn!P>ED zWJPx7jxbUX^YG)JE<8HQAF*>LWT8$v#6HF2OQSS&kze9Xhp|osiErSZ_#1Axw!Dc; z(ed@%V~1({54gua#Z~+Gz5D}W`~kiInKtlCNYlvCB<(}S;r~S+3wVmvldLTCB6+h? zvr@O<&c8-N-cm0Ikdwh6QCRI$GDWFSqtzZXCm6^P4IuuEBp2am<654^ZT=7BvbgLX zj{O;z#m0m5_<`WnxRUN(-(hdx#%h8=Zg0MTu2b7?3I3rLuWcds;}$RF`5Gy(N29BC zEZya}lA$5PjIv4d>k}h@@kvZB8<qk)M>}2Jha-tQd{o`npJWe+?WG`?!|PIu9Vyf& zuv2~pn<5^Y+Wc1(u>3TU4hKfa(b0L;;-xxlO-;Rc2rK#nArFSZ7>KGQMANO;3*+=2 zfaX<d<JB9RG=k0Pr!oWQ&orb<fk-xTEe{P-7H|0lY8p5#yhR-=5b8TjvUfG=<1a06 zEnCrpqzG)yz;Pr11r<ZfA^g@5J;jFH>IERZqpT<jFg!Z8`Kj86L!%F$${i^iR?OUi zvf-zdtMoJ=EpK`nrpl8Vlpf7b37p)1)mC#Lv~k>Emw1vHd~dYHdXY~;PhFI|1fxyW zDcWcm!x583Dv}4an`mhKwp5)%BAHPk^=dko2KNo&5jh&K2DK?@dn!Wk*UOY3Pp@!! z!J4c9E)5q+&pd_*y5x)Eg_3QlrXUigHG7$IC>TIQg>4mj^-z)qG<|{&);e@JmfM;Z z6!C7Aj$fH_peCo<m?C8%6@1Sn2d$PqI>43mJL|;-44-NW2UOvFAx*~HZ4rTZ2nQ5& z!X7k+XchK2_`(;EV7%FXy^_7h0PjL2b&rwH@#ojnOTpt5{aGEod<ZA%LMku|4^cgX zvf>_#P@qiLCMAEqHY?ppc6^0p;<sAEn*-|h57d2_M?QplnEcEsIu?#=k`TejqhBSu zm#wMcZ`3}`!Zk82MVag`(s0X>JIUNDv41QcqJmAhPkx3@OlP*;BU8q|Ob{m|@N;ww z-a*`D+AX$$$7siHD^T}6M=49IM~fq&epNLcLV%jUneBU(8^j<jSedPjXstym?Zrg9 zXvY2hxY4Lpli6z18^m9yH|T35^Y&j!GVu^fBZi-#Qf-r@zlhTvjjNHVnkmy!0osUd zKniHOXdAFmXY9vcp$>}r0;ukX@SVm53}1btx~mD@q|-;^uhHovxP%GZ2X@=N4(0&- zjrTj4I{5R$-(L9pHKdK%H?OeB?M)w<Y-gG-7zM`*xJSd6$Q7(tUQ`$lsN3dxT^{o0 z=g=}2d23PPY7`FgwZOzDc3;BVank6f$s6ig$cQ@vQfi$XSyOx2u1UIw;K{lg<wg(L zsvS+@>6KD51}iLhCZ5mnkaeHqly*HH#2xIanG!-(8!fvWUpHEIp0?x>ptF7hF}<Ok zo4D-sGx{eaPd_i<>tu$WUiLsU{sk8!YiuWPlU5BU&L_)NmVvOy-&nGW6~?*9?bPA{ z1ADp(R@<bKMpno{w>Hj2Zq$<mQ@ZmkluB^rzCvlSsj|>LdUE<cT1X^e*o{YRq>(j% zamSlv=UMXZYq-O0AV2J&$2JV~GM_R2U~;V$#6_Ad6iYSGtc)<3WWAQOeD)p#b&g(& z`U!(qyWkaV0HGX9LOh;?z>5LAR5P=GxG9%JM`8T%8GAz87)JNAk6+MEP&)8Vn%m`7 zY~g9{fcfSt?jLPejB-1@7vYNgN85~d;O(Owc>8EO{~C9olRFSDJgVH{_MoSb&tOGw zh#M;P4RT>Bu^-cJVbtm~>Yo->tYT;cQ$}x7t-JC%RW9&TCP|xfkz}iOMiMP=q07H` zlj?_uF``7UZptBTqoDUj=*rz%V9x(nu3DXY`Bkg*0_@RS&7JItcvbRZP;{rko0x28 zq}pLQ6@6G-aw#sb<L#X;w_AM|m%SqVV!zQvUd3C^YUq`8e32@|U4B)ak1#Nxt_y-4 z?xGi1p}M>!mtMYPj|ltqqXKkwrlfY5AHahL4InUT6h&5{0(kwC*M^4nWVE86VbHXS zm-2>65B*t~njl}1xX14kx8GdpB{!$jt*shq8oeXxj6lcpdJUIS>>&oohgUJw1h*LY znSP^}sPuPFB=q)K?D4wDoBI=YDl7p7BRFpx-Vi9frcxB-<gXxgHhwbVEGC+AJn14; zvu15wM5T9Akrycxe$sWNo`kRWyfD3N8Grud1ijC{!+s9eaqA-WCD}Z^D!zmj;`+PK zUDy^}Z3K;ABK{yryauM?EXZrdywSC5>LPBBm+YLNt?GU<dI^(<D7Wf+v94WoX==nE zqz^P93mSw>yv1wkfTP^NPxKo}=vLh2ljG#Tt@L`=C^|p?7QbEE&vJ}zIDqa78jy#i z-Ky_<Ubga8(^g(&W&$d2@sixIzCvcyuGsQhee8Mke+`dW2zx)It#BO;ja>+9xpE<F zzYg{vNieb~^v^AXRo{BWLYT!({;VG;Q8=<>wBT=8_zHy*3t!LQdf7c%bYGpHzK7)} ztD9JI<T+JsuD1*h;SNTPlqyxQQiXZUFq4_)1@t8Pb>bGQNhpvVIi>k2|2m1!Exj6F z*`+h_l~&3)p2pjy&K*NcctYCu@lPE3T|fyRJP-L@yLO_DYq=TquVr_EY?Q;^5-ZHk zAxrRO^v|(J8@^}`)35MGvv#9BRSI2f;3O60Uty~+rU(}CZWcH8Vm&m%pxww0g32w| z-7PJ<8*D=H0?P$(tHobXBX7G)Tvx(^erjpHfcUrmU1sEM>q;MIn2?YjtyqV%owBX; z$wU~BB`FV-{xlKB{#EKq|1}ZDt6Y_3rNKlPT?&*%rB5WnxbdjmQ2Mh(cn5~3m+mv_ z;UI>yOJBlp8ia8hP2IH4&#EVDq;2a!6MzOT$3WfPYpDNBt$v)RgnB#z!40@)QhZE5 zmUQ^WZU-3s3-dR#Eg}8}VCaH{Glg_pM?mFvhUE)j|GP+cxpw6}SpUj90Gd{T%LKw# z^xR>>l`@6=`m~CYEGH?+@{q-Gs#vJWu}v^~L5`&wX!g&j5c{E-j`kX<6h$zU|AvOa zt=K%o2^pGDeyv9NWpI;Q=`W#3cx35T4@la{GZJS$D#fVTbROM>+f|By<opulQVx|~ z-}xr#g$0t&cOg{Y*QD2`R})voFPE#WZd=GBrO98)t1MC6|HLae`E(rIPSz|<fZ3pF z(M$oahI9`9aVEDjRDtd@3)M83rq~^+twzv!EIX!i`y;Lj^3yVnoD<YET-*hXvf8pE zRdrfg4HZxT6xVWwznNZ3`a;uCKA+MwlrH=iU^2JerZPCfp_yDujA3Zc@#cl;LTZI_ zewp%Dn$W3F&QL+8Rza(3u$?KxYkn#gH!Zr0zks#92Awu$(7S#u!3smuf|-I@?o+bx z76NDnGy>XiA_jB#_$9P(<6XBwgF1wB*cRwPeif}F3stydVLD$KIK!86heIv^o<&}~ zO>1P<j#Ox#);Kk7w53WGk#rCfBtX(COGV6scH2olt<A_F#V~_4mQAlgW9!x+EC@%{ zFy?w$+Zm6yWSY*~vrp;2mU4K`WIUeKI&JP0+#j*PB(e)xUMgmQA7JLjwfO~kf=LpF z<yFJD>+E(18~aHH{T;M8@Kh;YF1qn{+{C`1ZoEy7hd(t2&73{lFyBQQ4D`68{XBoI zp4~L!^&o<dO9=#3yL-^&EGDR0gcOtJ&Nim%iJ7s>HemliyBD&)#HP=TMf%KGB=mXZ zQY+q{<na_nJSXA~m)ql!oc)?s(#9`vk-ws5k19zUf1SsJN{K4;0~9JHs1FU3wEx11 zKp1xGGb(Ury8fL!#i(D+g*yu3`Z#4YxA(}hPaLnjg1=e{lVw&Q!lw^*?#2t<l=U8L zx0;)e_=I7b5La`jBECNDgeSi9XqaC8ots0;?YBAmY<>1YA?@&;fLXBy&I=Z~Eo&So zr{QjEW}if_W*Iy!6=NyX*-@O`g!`@foZz($poaJIv$(#5YQlF)Qi`CPH_ZTo7T{0W zJVMY1MvFwU%YA4!ysm9iC6Oer8~-(W31g4_^SB~c;L<U@eXAzS0MXnMr-lC~v4y{e zEuqF1IuM~&HNa^7XE7d1ZpqC-P2?HS%2B(;%bBVVAt%%h`%P=5#%_Blnr)3M<w0sf zl}z2sI}<lffzj3YJKY{L;ZYMcXX~8HFP7SyxGxGXmD>G_F_%hJD!Z;c#d_C4&Gh>6 zl`$6AJQ%?PPHU4#?vrZIw$_eFwehI)xONRkC!a3Wo@#TdRwX0qJcWX{wN?!}&$>w8 zV(sFrzz3=LbGl8SM>(y+_(7+YailT$Lnmi>b5ph2Bs;BQx2Z7lGGq?n&$2f0WmWu~ zDn6eqIe=bdVzx@=9!R(pbnZvPB=!OIPw7{tK;1ynBU%Q~_G(w|I24n#s$X{I_^o*P z#Vzo69sEs$KdVR_!t*7o`l<ZvRi;Osz39KC<iZE_n6|(NU3M}_wV*Ls{{)DcSx4!Q z%z5b{HG6owjh_QjssMipvJ{uR_?4yj1H!`fQK#m2y%IjmbcGf^XaTpCGARH!uap6b zK-Q!Dwd4o;6D_=bf1-t-@52_-F&}kmN2Ai<gDzD$tx;zmuBHZ}{6smc8${ROiCNWo zEgf6Z^sDUlIQa3+)p+E{++5v{m#~S|z2+BirII(LH}>tx=hL-xR>|CB<<qo)m2AYH z@_0j)&>p&)yt$7my3%yAcONRI_+v`sd8`@}yIT|Za_O8C4(gEC7u6102_)z|4zjHm z#2bzfkbvEQZ375tJY5i))oyPW3Zcsk{OsoS{b+g8?2rrcem&zY^89bx)E-HARo$`= zPm*NPnt{NL)tj**-HE+?q5OZvfj@tA?j`zLN!_}YF(CYo9DE7ejYol%XEjHFYBlKy zP_42EJ)flA4Be6{cZ%IJMsGDoZ_=6_z}y{%)}==C*U}+5SZ*w6%5Q3|zSOk-QdMiU zDr_GJH*qa{jCgaY)yQw~8{L5a#D}`@vkwWA$SqK(<^`zL@-9gHw=Y#Src$@1E(Trr zx-j;qe@+;Ulk3ICuF1j#Ir{VpO!-Xvc>&<uqtugfK56)n!a~g60jCP(&w=uf;1GS8 zUc}gF6*$>>c2-nKNw2mlrgWzjm~d9q9_GtSk-7M5OYsMd`I)779Uu)EwUC*iR)m=m zrnfmq3`!p83J38nNXi8n5NA}(@MQGC%eA~nPoY9R98zNs7kEbVgQJ3BR=5<$wRU$x zDU}jGwuiaEgSt0NlzZd>x~XH_lr6^1n+nBv3Kv*|yFG`UBQ~{)Yncv#DlSloTL8`; zbp*GyW8?8GgVE~+QtX~d*Gw~y^2fb2;%75;?`V63Yk3?u224R`57P0*Q##eSmQB=q z%*gwJFSr1%!ZtVdeDTT=Mp%ulrk>4u1@U(r0hD{>Ub^{h<{tH`^!I78u-S>yxfWbx z(`sPVB4-_ik^*Q;#L}q#(=!`=8%jsuAxs9i$MH}mN&6pNgh)a>wiX&zij5Sec>P9z zX?;Ig=cAwlQSvXMr97aeDE|&*!J7L`Yvf2_)D<i*rL7&%T(zi=^`ns06t{o4{e2J> zz}I-=scZ?-kp&!%d~GP$!QNaw()7{xBKF%L&}r2gj#)z=r8RxLJ>&JJ#!E~qD_l*b z`4r5Bu*r;CE^`x`f0-oNMkUFX<giW162A#W39!y=lrZ#npmI@Efka6<V={kG)o(2a zB*T32-*~TlY!|K|&zIjC(+Vm<By%>Xk+D@5Rh1rGCx81r7$p82UlmU1$M@<hv3MVJ zp8kV%!UVEzZ$iqmd+7pO4ak15N*Y=HC+$iar}8l1a%OKI(XNkh@UKga!($ItAP>rI z<gU2>s~O#6FTasNZbm^1hZ!ZfmtKPd<(D+}@N-HUyEV$<9ksM0^!ALl`1Tu<OAGY( zyvANuNUm1L9_OIHAf{a^fff;qi+;J>0R#T<W>&r3D6n|A^Qckz1R}Wu8HM4?E`-o- zPg{jT$k!^<pSUJVK{=~U+_`Y&eQ!6@tLUnRZS7?L6ZF0}tL&PyLUt9bAUQa$j<H|6 z?hP-oD=)CFa`{JmPs&%`U5CFbYu4_X0H`^5cOBkZr}Ezww-(G*`BXb!Fn81S!Fiix z%O9ns1s1%vZtEXGoL!~eTUY)^mMmfPkF_{W9KdSpw@2s~*V#hrWEyUM(2R8utnzY; zyuwnloE1`N(<1KWuUKIoS2Fbv8OyqZmCDT0eU??rU8`$qYt|e!Giqmq7+<2BxU7F7 zG2@IikdhBMjQlvi!3W*%@SDiI7wKq*uX}z59GRrI7uUjJ+{uls9F|X*+Uz5nSbLm% z7=LCSuRvy)hN%h9$q8PM_$eoT!r4da)(R=HI~Op_V3hupR8BZ%6hAhJ7ubet&p)pg zJmq>ER{;NniDJy$U;%B;)UFl;)&-$o3xan;@{{oHf#8!oJf4NWWAHcY1Q_0FJ1PvV zm4+P^MnKzIX%yQ`Vw563o<ts8G73wf4EXD?Q6obADhc(Z1|zm13_5N?YU@}WmGGJe ze{<ol0RE=JUk?0P;LnV0D1W?1Du1E}-UQwR-o5bdg?Ask`{3OV?|yj4;T?zfFuaF@ z|ChZt0jR2I|Hp?N6}^~NZskpJDN<2fKu|6MDkO%Yps5kcMIi))dtFKey^!J+m-lVa z)Y7!w$`-Xv1vQtl)NC=^wDk25m6WDd==`70bI!RO5X}1ae!t(}|N9<z?#!9>d7gP@ z=9!r@GoG0B5gt_@7j<q(5Iu#!Mz9brG(1k(ziSyVG}=|_H5bCM7DtF3de~B1&+5|I zq19R$1k{v4(@STctfqXwUy6J$d`6sJy_D(I%j8$JOaf6RRZF-`5O|rOp8$ek1d9fH zbUeIph==1x=H40R-YbTrftwblrmTLXkX#B24I!5q!cm}_GW*fPaRw-x=3^G2cG_#n zc!ppT!RrKN1p5dM5q!Ip%cdRix*eIV$ZSPsOEO!M=})FVnSNyYk?BjOFPWZXde$x* zl}FX|>$!}|o}lY8L)i@WAgm2#!SA)p!RS`2>|B=?+OJm%o^vguba+ntV7k^#hPNN) zlNH^Svr912!uQN*@5=cCw}3@%j&kh3AFevs&+tK*r5geahSTj$zMJikqe=$vbd-~R zkE_`fXJj?S>{WEq7Vs>o!Bmm4>tEX3E8j1Tl*lEpd{=4YWtZ)e%T}$~v~gcR&6kU~ zeVn=(XN+G`atVzS=fA9eC+`>#LZezzx)uAJDd82E9DWVzG;fOcM-w@K&*BQIz)jen z;`<oh3C71=CCE>vnBlP=iO5g!?#J)puJ<Yh?-u=i{m{02ZMy%IqY9@8w`g)(haYFW zqJF+Ys_Br>rU+|`NWkG#usSc|s?B0)yS?~xTUTBTYF!%t#fVJ5()g+onQjU42+mbG zA9K;oPQxQoNX?=$cpY#Fi&1R1^2uGc4)PF<84-7#Me{MKKE4>cz*F{Ndf?{IJ?BZN zC-CI&BK5WCpBB1qV!PrtjEHA+CE?qr)uAADh&blOu3dHarSlV9_GI&>4)#v_Iil)x z;9+#WC7z9O{}bln^!qV(;(m-Dp04?h{yB9eV6-oPkgD!K{m||oI-2*N@`g^#@TthO zP+oajM<$7psr*u1eoZfNuRLVH%DwU<=T67(q%t^v#)=`3X{I65g^;Q2;QT4@XVX?c zZ|xF3oLY0I&EpPxC0538qYd`Y7ti8Tn2?aaGu|&VA-yCz?(&!loV!7pC>?7ksmPSt zT?>5R&di$~zq-%$bNuRIZ@CV4V@%k^MoClkMNyt|RZHhn`aTBZq?#)1qg(NuW!RCq z?MV-Fz8f3T%I0ecd(VE}v0plO29^&E+d0S0QWDduWWvSJ2?6#dysCm5JYxc!eL{G7 zBy>X8#6;o+X?0jZ_IyV@_|hJr-V|F!gE_2wj3j6M*1!wet$`7)TLW)=hv=(wYv82P zy0-@6YCDgT3Fks5oU?6A=J7MMHYjib>Tz?&xzbhfdZ`+KHOWtS(NsO2jwd&YNr$`D z8DoayMxmaizjVEdcspZ6-W}web204qxq}SI_XYA{<uh(jChR86tHXY`P1)-M%pH4u zE88R}Pc6RU%0phnqks|8evz`MGUS5#mY5hi!EE<TOsw>lb~Eo7zL=Z{%C5(hD^ZZF ztSRN8`#I&oQl8o!TWUS&y7922xb}^QzF5s~xd?lxyOzdOAtf!{8dWzzImHK<2h>_- z*Dr)K-ct!dVJT>5l!A6OQecJ@v}7spuaSawkOC3`Oeq)44WB2gum`iZvFzLKy0Yvi zJFj3LHMO=kOFbhJGDV_t`T%Qw;14K)1hiu|Hpf2eL>>ms=51*g6P3w}b!OFE4>`W5 z9%h|h2xbK^v+A&^k{9vY)yJkJ?I6oZ9#{bLRJtIQ>Ap&PHvN<v+4NUTY_?Q<*leZ9 z1!VSBF2a~@R;t(xP!u-1D#zKpT{+5TkaCF4-pW2U+bLyihA6MI8Ln(v01Pd1x<z@C zouZXBYz|c(Vsn^M%4UL6%;qR%4x3{XJDcN`schb(SlLWdCa^h08O>&v63=F?62qoV z8NlXDr4O64m2MgeTcBYp?curw%Z^G*w&L6vr4d_keywu(0a&q^shnji_F^asTUWsP zC0kd+`XO7_!n&8O8(@8#t<S*v@&m53IG%dIb&|#^w&EBLWf@zsw^Au)E6#3E?t4H( z87oyv7JFdSt)#LQQyNMVTfczy4z{9|Q7ml5>aEg;tqQESvGseVpRIgOM@zO=G5u^k z$MhG&dXed8D<8wAuoaVx%9m`#B9ihUTk%bnvbR`68QaH|H`oIzi1H#^Tf(}Yt*u~P z!B%`Xu9ULX4C{Qh2EaOltzBWwVk<75RZ`g+1Zxsod&7DMTSH*Aur(akK5VtXdK+7# zVQtUWp|G~pQ67djZ}v!l_4guJaU`=+#nv&fo?`2GSdX#w9#{_+@u>XnS|5|y#yY*j zy!ezCp9E!N5g+yH8RiwPxjd@6_=b5|G?#^{OHi2C6wPHiyG-vL)+ei(dWcCHTxw@z zD#H0h&cS|RUeQ{-foe+rVO~Qum)ljBmSJAQG?zB2ORF%i1kJ@)b!ivoHA-_i?_d{m znAaH1<)rEo5au;rbNNtp2?_Jc)m+L{m+&wzo96PO>S77=nyI<00D?e$zgAtM!@Oo| zE{jx`p<!Nyn#)XfnLaG6PmxA_x<jSjHJ(n=R-)-~j`qWN!M!m~SKsModfqdj@+V>t zDGcOJ+WaDK_S)lSTJIT<|D&_qvD@srZ+x^bX<-J9%kr46ah+Vl8dtD-6`JQl_sVZb zxvE;^yU@?uQpA^_Q5~^2-{UTn#*fvgcze|ET#V;$jtcO^;rH5g(BV$^{%-c}gjDDL zsc!a8jZfNcDp&mbN4ncvlVkJ#sUCKJ8dW%UdNw|3|IkSq*{)@6%MKrRl)3G?u#;zG zS}k%XS}B>+L?A`_;=)cWeAqUmJ2CM?9v_hF9;E*crN51I!ODe(`JZdxpHnj9{B*|s zR61CyoI4-MTfS!b(s)V6dd_U(Y`)N4y5YDoKht(>iST}#KT_rI5xsXw??2r8HBjIC z6+}JxB5eI~zNb7$6-~zYItEI6Gwk~^Ip5n9!TY{=+t<hSZTl*8ue0sTPuuq8oP(aT zv~;84_7mJwQd0a3|5owuKK@ns_W=KH;9uN@qTDr)e%i0*ZC{tPZD0PYU3%@StMDD{ z>zB0eU~vGMzU?cu2_KGOvEQAf+(hcx*f(*`1(pumVz1;4&V7y(?VVNSm%YkQczgJ5 z<`YBQo$sEH3@EU#Lb%ol*HWJ`<#R<!wNN|HTLKDA#nYg>pAY-WR5Y1vi&~Uy=1X5T z^QAAF-{#-7^t<q(GxS^Zp{eMV#zI7utic5@p&Zz>xJ2Dp7LILY+v{#CD@7vewlZJi zwlX+lTiF@R())}JD>p4Ls~gM4KBsOh14D^xiwzvzXW(&_i^mnGv9WA>osDHfhiV(k z_VdOv1h3f6`?X;8ta!y`cdK}cH<rPUF2CXtmzR5mlkA1R-DbbtvDZ^Ad}l#*$u?j@ zgP)SDniMba9XJ(t@jkG9m(+b=+qHdQ>=nT~%RrZ?2-ec=TsvJwOSdJb%Pgqy<rI}V zDdN522VbNTYa3no+Z0=L;cr>CR)xRKFcp97s}scA%Jv{wSeE^UD9w>Z%W4@`JnyR$ z;9v2$%WkgtC)pQyg!i@ITzJ1*Z+k1pE_W?%p(}0<g$WPl5WUn8Pa=dYz)lkm5swgQ zrlJ^_+WxZe98*yrn08Z9H<&X`MV(-dF%{j!d&?jj*kT5wv>25y!L(&(f|7DQuTU>4 zhA@t`b#RuVN|v%1Dyx1c0rt>D6I-qx!hwLs5VNoo<SidnR<J2;D{n0tt#3-hQnqav zZ%QNKfdKgq9cn6m#*3JTO=*iSsoM|K%21KW+si<(y1nc%QH$sJ7P-dT-nhog$>r+! zRocDy=5dk$HK0E>ch|@QZecPN{f=>-bZxgd&U-+P^DRodHH0em>s!X!QD;GT7hns` zt5`iF{IRI*<W%d)$QESUI;2`X7PYh(mop`l7NhnjDAoXNJD9EgUao(<#NJ}jkm`lS z>Mc%3HAgj~id)4jWas0OYKk7NZVc<A=Iz=ThS0W_D+6~PzGxt&x2MpHzM`wAYirnX zMrpzK*jI>SaCvK3U*1&M!Cl)LCiSghukx~8hHWOchTX<n!@lLMVO+yiUZ`!HElVpF zY!JK0Q4AkXCmYV(YUP>c>L#%`-Xz8qgExsmoG`89t6EFEYZz29(96YcPTHdK30uXS z>~Nu6-7NMcHj7<$4!P(|uC8e0UMH4=n*vd~2CP+gJFektxr$fNFZK_?AImM3nfB&| zzfHDJQk}Szl0(^!ZA38VabmpHY=Cn!yX;Xnoc;be)f$%Pu_eW8FX<c3IH%3X$$1nT z&h+R`A8o_gUf+`9LU<3UE-5ZT9aHP6+>Bbn8_pD0cZqFi90V~EjT_FkfmUodJB@}H z8_t+&Y$xO75{(<q3bz4I>^GCf0EYc$VZ7gr3)GFfDbSHvv74!3d`i)ASKh{Z&1}>_ zPz5O(r|&h}?xq*QUhd%49cL^wY9XpS&iYXJMI69$#GYc@j25)8_+yTRt_eC-Mf1yC z(7f5~#>-sw&X=2QtyG4bFSlTm*%01jHl%uGWeegX9JLK*u0Zu|F4M`=s#C4aWz0QY zIP}eBEOgrDGNV-Jo6CT7sr{_l#Yk?Pj62IfxVp0}#9!N4rV55@XBk+b?ktNr%iGHI zDpgXfDiU1PC-E1=9~6cL*~Un&{Z9Vf;}&G8w8Zj;F&{^nd+~nz&w(s~hc8xk<)&|K zou;qSC$^A6ds%qzfhw(>m17&~A@Ljwb!v438~adEU>{H;wYa)fw!!%p+FM|yA2!4^ zSKrKPA@a97+-nDN!hxFBv4T_dvv+b{th~wCyKFMwskGv~V0e?fYwByc8L^z(p!qr1 zaA3}a+F0(9+WexoE7)k(UA1~r;@gl<WotEQ(qMz`RNgvQJMnKF+qjif3&>_KE}J{e zxmjh!GStDX-m(;ygiP<!m~)inLcBQkxGT<^wU*u9H<Vp%-R0(mbur~QjAlM(jkLtr zvG%7bJ39DoKv~&FjX?GLIMc?VW3<g?coDOEX++s>)rh)+Yu}u$!!^e?G(^1D3>IaL z9ed5#ZLE{K_eCBHSqCV>C2U+-g3m8HRFTH~XYB!7&0z5{6_=i?SH)JFZrAkwb<?!1 zW+&EJ#8;17g#TKL$Rc>1U^hWyau0vPBDC=kPA>Ee+}F13!l91)oVz=TD$-~7<u!Je zkA2W7N<0I0b>quGMP-FH3yIYj8dj9VT%^%qauSU+6bJ5#KPbnB?X@>oep{+<Cvfg{ zep(sF8=0y{@VBRYoCs!r_u5<Nr#IOeB`Du7#eSEA4WA=InT;k2`Q+p&_|D-Z#lSaX z6TT>!aGWo-y=-r%EMKZ_l9*nD!!GBMigg10-%Q^yFKshLh8AwPE1dGv5-QZg{E<Rw zI1ewJRoZ3>8V(HW>FGG(X4{jXh-P&*Q?#pf_T;DP_M(!QFG@xquWYS+zr>Zpxh3j{ zZH#j5Z5CfRM;}*`2pPU2KD?RhYlzoRwxO8V=4)IPQ;!4>rW(@w6gsC6{tcqv&^i7* zzyG2)c0btLD+Nn%1gBzM;u@;?E>Vx|b9(FBS1u=(wo|u{c&N7(FB%pS;J*LRuO({& zD9weX5%gR5tGmss@K-l`7iYZxg~Rwn{3hiVl_bTxCi!PeNqM@7(mo#@;%T;-GTrg5 zMUt|edr1EzWuT9CvFS?a3LfX9eLM?IMT>E?^~gs^k}X-m`$LCP$7rTpO%IkQI6Y)< zALmc<`ri0vct6e`x`#rC{bchCVbn}T2{;Y^`XGEqyoOoAk%P-hif;!~V*E`Hbo4?y zZaIZM50OZ<E}l%y<Dw?c%>f*^@YlxpG_$zfDSV*gvDYz^+UDyQCG=i6`rN|!UmW*@ z2pmIpE}`-c)AsTN<xnH_EA{@)Qsf!<o=3cYaG51+pXq@o`QxtA;^<RQ6cn7&p?}Bp z57PRgBqLJUHq$Lp4V0h+8N%SmK}=F)dX>hX8<FW&T8c0usC@!iT5NS8Lfry00B01E z{t9Xnl7OSL7(_V*u}-~)0vvA)ot7gzOCc>D<t4?CozTsQXj*(8n&&pqkE05NAx(VZ zSCi<Tm~%~QCHyi+L`XN&;!T)&FGl*3Q?I~RgW+yA&v1A9EvBu(!TTMTiPPmc6ONH_ zFWC(GN=lKl7I36wH)VG#Vsd&IGs#pOi+ngycMVV5t(i^7B$Tkf@<^?~?HG>`#sk<; za}~<@ndbj`3FA>5gV=0Q3pLEbQKsI`W+l<4kcu-TO~LyinjsL)b@W=e4KhR8zM3@V zxK&9DjVIZ<1WA4`_<SG>LTT|(`VEWs&+ojbMO0+T8WdXLZ;kCuR6O>Grk24A{Vjv% zU6w6`$otq?rA7&?0>8VeWymh|7h@E%<8W?_de|P*;xM@F3giYM49C=EVaVOdg}S?` z`2E^Q55;)nN$`VkS22gkBHO!xe3WTx3y-fnK2Y&@5dLl4HUt06rsL8}S~=O-V~^Wr zB%%JMm-u_^nYRtr%b@J_KTBDL+m)21y49g<2q?RQL#lQCcAX?UYfE_52s4oNt43Cs z^C1@Yt=GA+)O&mY(weD6HAv1g)S%^+1)on!nlid6jzFoZqzYMDiev-JdGMFuEKf+% z&S2!4c@*<ek7%`sX(uxFB$O8QLFD=vVDt0XjDTTZ6}(sJr*@F4Xp_r$CleZ|5gnql zqX{&a2*L$1aRjK`j1aPSh%4FaRh~MYjAkL`xV6)Fa33P<S&nTS#?~#<>+Vplg7%iY zhNg95Jr?5V!paD(dIm2<$K6w>1&z6dbQ#96Fr*DHGzKWA7a)E+#6Pn@Jz{GgA>d?0 z0=ZI*Q*R2nTNyEhFG%p8vJl<;r3HqalCP?9l@$xFdSuvQE!Z?yFkbPxmYtFvy&F0* zEc>G2$gmr0Qf|MX!6U;SSfKBmytn4sYxP2LzR5=!jGGsn@xCRIIMuzWBi7G%ZzP}V zTiKjmJWC^6k{3B)DCUgxb)<TV61SQimC$)i%AyB!Wbjd>LCv{N$#Hop*O9gIt1G`c zCF<RXdP{v@B;X(dKTO>wn~MALFnhv_gz;PY{B8FnW!Q_n4dk+|Ly}@4yYYbIAbPJk z;JDJ=xoeRnAfO=J-Bg6dxg^E(qPB;G67n!4bm4{C37vkS{)F62MUQhrdtRtX=*<^u z5_+*tLXTaM(0Pkzp=|<x+j=h33zvW;D7~-KCyadf#QMq!!K7DJ%?*;nJ!f9$B<*Ox zxrM&YX4<*S&4`5q&Lt%%O*d#0|F(TY!sb-XK9r8T;LMJ}o|k7fbvDCJ^Ab0Qw|iw% zoI_6$Zo7`JH_%o0WGf_J-DS1Ujg%m-QEejyHe0&Bjq>Lr!O6_F>q95_+x$ar#>Fze zVY_VVhb+Nm*u9~h9q?2JpB)f7rltL6HITPyOEU^(ym$r|?Y#%OO<TMZ6s*nic}{b1 z=)l5_{28Cy+)mWI&Nc^s7&^h%^w7?c#IF%anT=$wr+VCMaT$fiXEXj`93{^ja<`kU zt+Nm>l$oh09be3->+}_Op^|*$(9gs*B7^!I#^2#^PGvY$kCM)GtDT#vxIY@bH`Nb@ z4V(KvR<-X5hEECbnU%773J$D_@pZ;mIZLqUY})D>*$MMk^?gF1o(hUN&9P%^-zIn9 zKoUL&Zc=9N>Kw+mRQm;gc;P4KQG5YRW|ec-g*0;C=iCF+<8b8=vX3Vh92-hu4p$uh z{P1^&k2cwFKX>7*vx-8sq!7^o{uln`aX7D87=@eRn`a86u+tk24<wJaqXJq6e@-@E zviV&&cHyYwm~g)9JmUNe`P{wJU$`zBPNwQVR;~W|Bh(MztN2iEbwFdH2G0@ROxpWs zmyKbK$bPd!5jKC!65CrOW}d6`P0akI(jzhRJh2=7m`_PN@8Gg=l{YBu=eydIF7x$v z+_gcCS~B$mruSx#3v0?aBs$A6!1$@o!Qg7!+Sd^tByB<Zy=ONCzGw4~wfV+2fQ7@) zo8+SMdS&H27Z&U0@h&FgbpTqs*h(p$r*;FG^9;R3tp>7<lB$InT$5x)AxYN9S8g6S zAMHyxzwh+)<!dyaLGP48(ePC>juPcVMQhFz)vg>4{yg+<Uwfa-#>$yub$1=!TVHXM zr`@Au!bv&USMNiD@D<dAleU{UZFN+p4U9{pLl6%aMx&Q8&%?*|pA#CC$;(B?d#CH& zV}Q8Y1>3Er>;n}m3vmh2N!~W_MP?JlQKa2Z&8v49$uv=V7ON+^l*~EmkQP&E7&NWk z+mI~AAJ{2VVn6QmWEU?!Ikw8=co-9pgFW5s;~aB+g*}8YRFHV^=TXE7c58bjE4*lg zT<L+MR;eRa59gipg|OdPdbeMqN;lH9wM|qBaqO{FI-GNkI_<|P{g<#>zKbLLYYzo; zG?RfUp5>RliJ8Z}JgQ3UCmpznW7d$0+p!M@XVl7fTvsO9QcL|f2DR4ed9}{w^L8># zJM(YcWAPLYU%AKP)fijq9c31ZRQYB3X|IwwCsj!}=s3~7{DfX!dmuQ;3g+OzRZpX; zpl^U2SAY$WO_ZPJ1N(H-nX(ayxJki85el3;9p4m`D?YY<+BdlArUEyDNPqm8@e_m} z3w{#ta}R!UOG_{rJ=A`v_(NMi=gxA)(`KslD2?U#rLq1)?dKiem~8EwJA*$j|IXd! zThh8T)-%q2(Q(|v=Do0W<WT!><HqcA9=-6nW0!y6k>IkC&LfU*;O7<@XaB9d5^*Rc z&pYfF@2VILRyLN`hf{4`kB|9-%b><pLB#sbb*XVJl+WfE)wgxE)wk=EH(lP!1hQ5h zYfx?TX0`2uL?uhV$XPuB+|AZAQ8|O-rEt{lVHT<;nzl>&o2SEiQt++Xt(AM`pkF#! z;;Tf>x!NfhKuXo+9<O#)G4%xMxlM7hw6bFrUpZ9ejA^G`H_}RZp51Um9qw?4Q<CA* zk!ZrK@&@Mzf&1)UneJmMn*^5??>DV1D~%RzHD9~%Q7V-I$$Y--(%1D3cK%Lp>ceK@ zAefu+rE6<GP=-7{aqbE9LY(r8?iY?CotpQ`Ds>Jo*?BRz%z3a_+J=St*cv&?JuQw< zVZV@M$@EN6&h5m>8e_33oG$@tq`Y$v6jhw9aDCwA1m$0iad9~^^y~+b{=v~1`^Ia& zM*rR)oe@rdIv2Kw_;C7u*Ywb$`_<Veh-RX*RWh{$VPDy-nFB~mp1}LI$A(?DjSl<T zHX^tzJ#>aU@0Pu|4itoWRnxD%vC@}{W<9&?vCmwGBN{^OezxGSJ+>ao2I{xh^C30c zU&jK#tYoD-TWrIX6c--oGH@tzsQn_<G3>0}V{e=3sl194Th>=`(zatIL7~ikdkgYf z!Cq>vwjCuwPCi_RkbgB0+oY-wQ}bD+48F`ngk3f*zJxYB*i?iwMoN3XCHpF?QuuHb zeBR0%_DJ<BX@&uSTkv^MFeB4_Tp~8*r*5UZJa#20Q_5XDxr;pD7o+(lE4Svju3tUH za#|I<ztnRGDR`vMc<j3HS=;>=4tLx)B3WKPMY|r+5r0l9WA4*+uVlqH1=ms8FWQ<R z?ceU^{k3C>x|nkn$3V+)&mkqv2>noR``LN;C?&$=7>=s$nXDc2b9cFpMo}NVU@8L1 zM#<U<^EvJpzAhc&9=6xCxR_ELpr&yjUxVqXrO`%B17A|4BG=K?rGBrMG%uOv3HJ0< z)BFtAx#CfNo{3LGtCctxzQJV`ftR(fvTHse-EcSSeSXgPbBji|EE?r@6KOj*=KZ=_ znqbEmf9+Un4^oHgRS7*=Da;hgqq3HYiH#RcuuClpb!5UW?cA@XsI40(psy>dj8Co% z;u}|!YHh|y(=QRfJJbvJt=cR}%FIIb0JfVPmyb_>FG-n#cjf7sHFvl|-BKQ&i7Kk^ zC>%T!owIl4H_F^v?%h>)=ibV9H3bc)VuZanz2=5k|9q1YYe>B^()3cie^RpZCsM#| zO+dve9;F@y?uxHe#gST$mSJDz`v;y)$`l@7Cn~4ba{1wKfpISFyH#QmuG4bEr^vn~ zd@q8s^)&7@RCsr5$>{GfS{jQhfjFnrI7_tSySNtUS80pHwy`<>fmLmPGcCk@k_EnD zXH9&c+*=qVCuUM3I-YlQ@XfU}VkHs3QJFQvb(2f>49rUKj`k_g_L0l=Zt5{z#QE8c z3p~Tl=6O1I(O7U#0#`6!#i1}QK&|ge<UZ58;0Tr9K_|Wvzlb1*g?f)vHE!e8P_W_4 z>(BXy5T(%!TxaEFZ=!rZUEj;?_&`#7Sh+3i_kwA&Dck&e6Ke)8YyTysejk#lC>r$) zhdlhE_F?x>(&~-gLsyo>RCU~0GWr}oFuPSLbtSJnG`*(msnG3J9qs2Fmnk)zcAm&P z+!Z9+r&d;<@r@H)wba80wXeo_WuUaB+UYjdRND_0MFzN+C7ZU)@-%HPQy04rU!3<l zpAwirCOOy!k%{fuong8Q+s!aNg?&I_tY@LKap|z00gIX!elxG|UAKkJE4$QoonQE_ zd!<sC>RC|Pw8p3KmcnAF_;w#Y&tbwYFr$+w6QpWdgs9Q{`PztCc2{rH&W<k{$54Q# z_t01x<KqdtlAU{4voaN91A_Cg<3vIEcRn_2rFZEnRlUmbCKyiYRZbGAS2=e>z49Tr z6B<`CG_DkK%1I}UD<_*YuAJ$lapla-C6CF_!g8R6&43nGkXy>1UzhSVgK_rt#rtis z&co&3;R1;pjrkS$luq|AE%1-CpK+Wp*#c<fRN-!G>b#-k#?tAYr3Id`_Otj@&coIS zd-VnniM3xCb9c&wU2kGFKk!iCyCa-C^#C_4ypaQxE47jsYCk)+0`rA+rW2B>nuVRU zHxK)LdQ)|xz`djuH3s*qFCL`ta?@Why@k@&rhg>5BcDGKrG}vu+S-t@`fP)#7+;a6 zJ7ZeDf!hqy!^)@k4LfTyQSwca6O)wJS91kZ4(03pkn#@F(xw6ohYM1y&SAgLFe^{y z<0Dh#8cQ~WE7qnA_}=b?-rD?zdK?5#IfP5~yd8w$dtBrFMkFRDWxAEdw;YjJGQp20 z6#RL2wykC81V2+T@9T;84SUbFt;DVJ4Ye*gF5YJ<##Qgs_!Q+!zC`_jd&vYTKdfR> zD#qzdt#cLKKY2o;rGBEIW56cr$S&Kx6f3^f#0%=NI?uF!7jAK?#(Gb@?+B{)Ls@mT zeS>)<eG`a!o7~5bq7~I|lWVO!kY~J2j#H}`;HKRtmyzeXPwvDsZnhh75GZbw!v@7V zx5?qsFdXia>FzjwW?Yk9u4~b5SDwnOxl-=Y%vx8<WmT#}8=oYl6|6N^%3<Y4yHd_w zyHYOjy^`Uc#ZtdhuElrSylQpjaP3OA0bB}y;!e5i6S2fNLOFh-re(8rL%tJy(@R=a z-h^elYGmj9ot-9BE2}E>d~vy46BpYmeVn^G!BTU(9QB#h8S+$iWKuFpb>|BtPPuNG z?n#P!lIxTVTYK_LN>=`1)s=Kl>U#auP5PExzS#%8W3Bll-XERljQ4M{-xiN{caGoI z$XD;$V#asLog1HA<YVj7xXjkkvB%A^*RB8QJn#PB&Tx1CSO2|a+eNlL{g2z5;7*yt z!Tb9kw>84FmCSR$@R_rG95ixXNA#foDO47gDYt)z-I6$yU_GR7mo9@gKg^l>Xonrv z;K*CshXwdI*@xZX_C~mh=E8}c{vz?h32oXdEuf``YCGX^WE^?PP8%tW|2)_7JVT>{ zEd=`rJ|U<gxJ=-GUWfpK{sc(`c?3lSj}mMmI6&|X!FdAj3qssL(3K#BAc0^a!H?AO zenoJIU<<+9<aUVQIKlS>7YQ0)6rvqLFM?=-F$6Y(e-J!Hu$|x&g3AQWeifn(K`(+q z1j7l&6J!$D2o@8pCU}M5U4l;tP7+iR{6^sYn-HxCx)Ssz7)&sVApJLd{Y$hFY$Di0 zaGaouz?<+k6Lcl$OE8FFBtaU1jbItU1_Dv7^7BEWX)eLq3s>@bY_LUqIm9BCC0fJ> zZ(Bsb{T7#B;ky>mxVPoXNc7C;a%ntFEW^YTyncq@Yaya?@?vIY*b?$`CRy|Ig_tVx z#Uzm<@`RQCx{EZCMSp}pjYek@Ork#uCPs@<VzB5YLJanvqOTYxVmQCiVz`JEQQ}S! z%`SJ)??`fsp%B5M7o{9cwqYE0a8~}{JgXIEqScm^nq_DE5Q9B3D=TLb!sZFP$QCw{ zL6};FnIMn;fUlX;YAPDDIf~N0QzX)#F^uY)NSF;5L+bG%`Jq_xB9cSY=Z|M3(HTTk z1hZ>53P%GU`m+*Fxn!CNa_HAioC1#VoZ~REfwO7smd@!;<*-wTntZaQ(r-SeGLd*b zi(JwujXd(r7L(~Mn?iu{>6}7MTJX<cpHzyMA@0+{<&b-0;)I?)!llvgB=)yzd73FV zJEsqSGv%AZxxz1({<2&#)D*juPb^cZraF~e^Z6Yi@1=BA+(8$x%j2Bv<ccskM7f#M z%i{1VWvQIA&Zlln8+e&PVXTC+S#%XW$Tf>nyOp^IDVXHK$;i*tdO4NNI6`_Rap~kS zE_t<LMl(+F6gPwE)XQ8i?_RF*&ZZbPmXB=a)?}j9OgZFI+(}ybs;Os@sZy(#l<G6p zz|p$-^!x+4y0W~j27X6TI-|65$#eOr9L`~`p<e$x<f1MeK`uIUoOHg`M?qSh_`RrY z(c{~>L?>!oyc!q41K@XMeeEUs{l)T|!4zJ-p4FFM-@lL_q%`d>=GVuSUoMvv(w$D> z^C*^`)2OfJ=ykCsMLoUVe*ym#PSq-AGUh!riBjKCa(XFViGNQKde!pIq1>z*#%g`e z(frX0PG@PXKi%4L1Z<GfB*rYwATw8Q?|T~Lr~Y)NYOP!b*SI`RHO<uq-1~>={}p+u zol_d~J5@_vPq(HXf~Pqw4_&z(ox*(%YP!|MTU8patdBv4^0{{W5JHtfl-X2%x7ETg z$WT7lo^C4rPNoogiuqT_Z;+wAPUkXEYmeIF<kEWv$24>Al*=x8{H|l6#!0Ki3tfj= zcFe-JD~FJYG3)WqEF5A5nV8J5kl7sWM=b)^G^`-A1>DKRX^@9LwTRYa7Lth@-TldI zOXk{7Ec}sC0+~0%oy_)R4*l4|8qV>LEaDb2t3I@l{E-e#<}5Ndk$E4P50VKraxs~h zxX2<ip6f;)_tWTqL0b~H{d%hqB?9TsOq{E&T@54KM2ZP+&tlpeYkcU=e?o*4-;nZT z4mDNld)3%T>t5#O4Ei0Yl}+s&Vq7)i7EU{%R%-p3=Arc0pWg7E&)O&H&f4GYtT(8C zW|zw>?N6|K4|eaNxe#wz1ICKIYDRM{R`o8_P&~s4i|KXT?$mS#-6fICT&;iB-6C0P z?c9#ziQ_h5mdlQIL(MyvHM=av5&WGbFuEN~{u5bGso{AX_ue%wD!w|7I$k<HIu3f? zdcJBtvs`)W`RaM<`5>KC?lJPXJyCHO%-GhvLwi7oe1lsu*OYA5AavJJ6w3G>&+R}> zoJ7XW_@2tNsQKyn=xOWe>FMb4vAeGS)T#aRSvb<@x!oL3j~SL(^oaQQ9%*SkW^pD7 zRP2!i(bh@UsS~YSxWjX%yX<#PvgN><Xw9|hj*<4s_Iw+rKeITEID0l1WMpn$2A5%K z-XtzR>%=^JYMvS<HJh!J57I}vNE2xx9i&0=W+4s4M_j}aiK#YwURo-rF*q-SZKI~x z^YS&fWNTWsReKp_S8ee*+3b*L*UVHK;vycxBOJoOU%0t@czSvJ_%>?X#II>HlYjH; zTC}|Wh8tV8Zqv5iO*gkU-_oIDK&Q@Ky54$Q;O*VI_Xz6QE4X)`zWqW%`-g=O7#LxR z926BDGkD0**tk1}#SgzTVZ_M9QKOTR$Beye-1rH1r`(e|aZ;K!ee#ry%zLw@X6NKi z%geXfr_Y!<>%RME&zV~w{;xmgEB?B={;u@9@^2{hFjxC4s^_nEh<S!Tw`=?}#-DHa zbHBzvJ+AqGn*IL^o-50A%73>6xYhh!>r+bt+-m;Zuko)&0{*Lie?&k2TGF5K&FFW{ zBx`ine!o_FYv``)!nbUQ!g=!@Ma2&+SXi>ixwv%6(q+s4@y`bzdiaqQD<568dd*{x zuU+@V`VCJ$_4G5(KKJ~_7hZg6)61{C`r76#TVH?U&9~m(wtYug`OaOt-`TTw-~M;s zJMjJo2M-<o@W@9WfAZ<k&yIcm#g|`wef-2X-<~}6uhUA!ca`7&@Z*`PpME}j?w9iy zF8=!4@70$s%l~pm&~QV4O&!7iH2we6`TyHH;)ebISMc9Uh_WVHi+B^+JvIBo20Jbj z^40814ECi4`!a)lxxxMqgZ-ZdJ1!W~?VAmDobJ;|O^-jl7-H4u#gj9#({g4c+EQ&9 zq(hPW=zMG5of9*ylWeis={b2**&|tvGb}aV7CFh5G2NPwlWWgqH}zdjM#NK!sgtdP za%Lur(WJp*X1wm4cvsf=F%rL3eb2UMWvN!&fZ&ZaVt?V`Exg_RJ!4{Gyzul1qOlDE zn?n-D`1p!`K|#q0KGfZqnMB`vrrbl15HoXU(&I}Zgpcs`CBv8gd~`l|7ZyHHIIoa0 z@OYr`f%%0ky}T%g;^JZ|u%MvAgu;asx@(t^gycesPnjen;2<`0*TRK`6iZMxQ>IMu z_4S#Vn>!;nw^sUC5g1N@H3NJIY9~ep_v)UOMM`uHUq)q2wdUAuk@dJGV{D+#a%9yS zKkD<8!^lUS<C>z4$p)v|QnSo4d3iZ`=8SCfuvB~Yq$yU!o5=JIPR+=&rkQOy=A2w> zw%Iz<I>~NJotOm$e{?o1@Jpw{GpA;oQ*$X$8ij|(Pleju5GK!>nr2SV%b7}{IlAb0 z3&xv~MD0+*bqtw8glT+^%b7^{xWvai&2G(`m61K!oX!Yc;h%4{*$mzy-<C$?q}g+` zGA5}ZbRYI3X4UUWe%8Fa1|ovydS>4yX|qf=c2mdvlXzs8FVvL|eP*SL=tME|$;9Yg zwHtXn*=i#eXV}b>a?-5koOE-pzV_6e=hW2kaSu*2kIadjau01L2~W(-T&j3#YHF!a zT2rT{l8s6R93r-K=}zU?1-ASt)`_X)n3a)j?Qiasm0xcfGp1zNtogaAldR^{belEL z+@*&-Kd;BcjO-rP?CD+fh;`(lMplp$1<c6H$)0M>wz)E@m6tVdYDRV{7a|o8#p*WA zo@29`sf_C+RUgvf#LL>Uox*d)d19cz;@&7j@@l#>GHg>I2KlzsJcIMKWoIZerd115 z5ASrk)cR#it5(=FD;K%Z-)zqZTBAn|?iO-ox?MVUF{f(SLsDv`Tn`>yZs|g_Wo6~e zK%$6U7o98PG|Y#3<ScKp9fg~3?rNP*Ek#DU**Z1XHtW`_=QEK+N)wt?tYfB95$FQT zOqgn&nv*w6bkJ%`2Uoo@*W-ryu)qFbXO@4Jh5NdZiP4GeKl)|k+@Hc@itqh(?7vox zEr((n)qgztxBT%*RH(DYQy++qE`NM}#?;&_Yf6^ZevVJe$hVE3L9KUg+C*a>h19^U z9YFo4vwj@#RXWU%G*f@SwVkDwe_0)WQ+vx*<FDv)b^jB$UETkOZddoer^nU(p9re$ zztG_C)ypDU_p0rGs7`z(<m%}kiKy*=)ZpL4ViCcXtMjkjpoZha{4mN=!z+WmZny_y zYW&t3>~-;t9@=nzm9Z2r_UiN&-&x!LKpp?&#H+{uJn8EE_MCKe{}(1-J^!V4)gR9| zyQRT&p1SYq`80N1J)h4OUESY*<JHqY{_55FH2BTh{`>0qH+j2;&LM9#Oy|aJ7BTdk zE2zlD_bZ2}Uj9<!wh7<%92WIH|M`yS-}@a=Yd7PkJ`3DvToR>rL&K;SN)|VHCR(A? zCZyV?B#UYEW*ps+HmZ(z#6&lIt}`rSVjgC<pAk`{_S&raP>I?dPT8K9M_r|!+pnI< zsTsDxIeCfHHD_71lqOTiY-=9Hj>^f-&&jez+48btsB5)RDT>Ja{EW%jS_-3bY7h{2 zyA5Wvw9x_O`8Dzcc~PWdxV~m;=}xZkIcfGR>tNDlhNn(N*e5+kK+~?5w#gpx_AFb* zpjkHSsGQ`CG;7q9)I9N!Mx!enjZD&zcA_n9DDe-vzPr0N_TzyDX#nop_%SjqEswDY z_ZXIwnx^rMQs@Q_8wgiZ$`gu+)>Lz=miR~!m6emPzugfta(K)zebnR>D6f&ELQH2O z6G`z%7BOy#wmkZeC3^dF2rBA{T+AYI=&<C-gjkN=s)j>q>g4|}RxH5AoQ!Nz?ZiR% zq1Mz~{zOZ>$9DB|tPGU{c~qjKX5}L019fC7QXJv%wIxZ2Noq_|>+HGkNTvb5uD#Zj z-Vx8y*;5#)w3wNbthtCw6appjBzV`bw?}M#v~{9=@?>jX0x=%~^`nRZHBosPHezj7 zB9$WJ66!I`nmXNjh5NVevDxI5nw4>1UC+quw8Y$u?5G?&rTZPFYvfid&ylvQ(b=Se zrisJE$t<hwio_#~l0bZW$8(hH8@Ii%yS{zfhd0+(aeMH_1#yP3queOQz1FnY>`8gn zsa$LF!54!RzGJA1qo!bd8cV~xN@Hv)Y&~`-uVliM#Ynu*C8x?gwYi*50t!n^fju%R zL5O}R$2()<VQ)-4CoD74xCT<K6x}?AMa5I$vxJ~s@EA$?bK)Wgc&ZYovQeBxs_=v? ziFEkmO=qh}<yI%AW{9PxOAXF3uKV?Ph!$7Yf2w!Qz4VGbD#umZ#nWo5kYLSYLCv0| zB1T#N6RC{Km~^j(Y5A4y8!>ej%k->#n{_ItDkAfl7P5&~JQK65)?BevYenFZEIv|e z21ysS_G-ORTLR+cM#DRyPazh7ABNV(len$ros&1%iWNhvF6qf`gR|`UQ;^LddwM!) z@>nmYYMGmwXLXfEGEy{fEh#lG1H+VL@gZY2(y9t%q8cvk&UCfp;@oTI#So7AW>so5 ze3R?%-2e0Z|MtQ6Ft|wh<<>i*@m|(BQs}0-(xE;6^~ZI)(z%wu``?A=f1dvn59A43 z=XBZe&`hi;;M*%)35M;4II$P={XRmS@AuWrMw;1J^J`-8yFrT!)1;;AuesrSuj@2` z`z@M#AMHI-dymrI6SO!ZHTOi#OxDsLtL2@gxla{>SI_Z{555u0({T0H!WU{d&(qBL zn!iKyFVfOkPJpF^$F%o#8a^Ae{GQg_w`%x(p!t8Q`M2^>d7<-6=ef}of6~1n|34eP zA^-o$M{194nMGU+{Cgk&1|QYm+~D(XM(n@oX?Rgu^>295^nVubzw`OOE(6;0|F|e5 zc#(eP?&-UMI=Fl0&zgUW=Kj>zs=4k-)tvYEah?&f%q?W|846#%{@8kR1L@AYteO_h z+<cAUBQ<jig+KVj$tT)~Q%@*QjB7akx$D?Af;!|8$L>C67AeOvkM+7T{E?$y9sgB` zo^#chm~TWMy76m^c!ppD!CHdV1S<$0Bv?#PL@=8mmmrN`JV64%FoK~3(F7KPaDotm z-ULAew-a<F2p}*Mv?A~$@Fb}IN)3OG%<l<K5*#HsM6jFSb%NIjHW6$fSVmAp(8#l< zPnu2dHi9gIG=lL2qX>o}ZGzhg+7b8?ocogUAUH&@kD!d;b%IR<&k(F7SV6FiU?D*v z!Ayc&f_n&t5m*R%YvH>Rv?K5%xcG%dC<Gr7lo7m6u!&$bfsNoE0zCh&zSPz@@^5{2 z6IbGjd%W}~=mgPtipu&l@rdFcZxShbe{1<mxc_f@{^<KP_d1V<_UQ4!mtMpN=qQDa zua?ubJ!Y?ewl==k9lv$gAc)FlSld5_0`2Kd;S<_63@B?iEp4M5q*YM;BG4awy~6d} z;pP2br}{sS`puRHkGHzgaHN^wu}UGvTnp9Vi6NX1m(f~shkU$FCgL3;6aEUBe08&% zC`943A`@e=Ah){dxbYVwL+f!z`uEi1j%TJpK#cAS8*pFIfcrBIxWC?j`@RO;k2c`0 z)Z>o6<RZEI4ssI;G4G`Iv0PQOo4}=u`g^OvZsHl=n)kBdZeog8&3o5T<lm|0{m?9W z_pf=MxroAh*1R8I;>LSa^!K4l-Napn{BX>nnZUwW>R<5H|8(!(T?`pAL?kCCi;Rp6 zVYl1Wf+{Se|3a~1#R~EC(@%>x-grZlm6eH4KmAl(zI<6|Rkx4>(+h6Eq=D$t1BHIV zw0FjggZz3>o~bVMtDZ4q_G|<=BM(#`lm{-5_g;GUrI#}lm)>X0z`Jtrz<~q&jwVpx zgs3yJI-UJz%&zkNo+8UV+WU-yz84WcJ-u3eFF^PM2h-CJ?$zF_Reu~`UX6E3znc8< zP?!QWef2%-0*60v;NTwB;R2`sHS$;ADSs)Q2eIf2H{e%&@Yk>D?L7P$|M}I64pbjF zk2LUpdF1$53Q(Oz>C?N{+xuJIy86IDA|W08@jd#&ycTEFF)8i}^}STwtNE}42Pwp2 zu*<jl*++YZr~&x>;`;|Tbl7-+!ve_t`^a#4k)rb)0O9|^`cVfiRv#=Z<M0Qiyfk{p z#cK9Oc;aux>Wh-Sng2*aQN0nK&*?a-dUN`Wo9Zom7iy2{Evnm>6&&{{j35zcZvYPh zw?d&dG!1~87S0$iq5&u%kcGmHz=Obtz(mkqLeBj)S^pzB@7=q%h>wpKiHV8gzWeU0 zCF9GMEfdc@_ndg`wbxk2Kl$Vnaq845mz?Kfx@8l!p_{h)pd{|ky<cug-ysTioY|3n zZ;mLSB1+#OWx<Zh6q1B{3x511WeZsf9y>Ko%HPxH>_0Vn^ynSw!+JkYX3D*B)9#dV zbBdf>(q+fE(J7)puHUhFG}3!x3DPf+@`no-HVKyE`-Pa>zP<GKX)lF`2I4B9hw;(C zr1A+ovM`@~8)gzcojP?Afq{V{C@4q_7%)IYMn;O**jVP>h!G=1Qc{u_J9ey?Fkyn2 zn>JWXo;+D(W@d`1Q>Ti&ygY6{=FFKR*4ZP(^Y;x9ug(n<j>$1%@x4*v!JJ63D$gR` zn%7^vP#7y7oi|ZzU6CvHEWJY<T7R$Tx?PIfcS_N7j}#HRrRejn6yYC8G5&oiqCS%1 zj$=}c_*#m5g3;edG48Y!la5O<@p~!e&6_7mN=n4?<;%q*k31q)u3RZruU;+Iu3amh zeDX;y-%Xn~iOrigb6fWI+i!~_yEcjWKS{B<N{V;hc}MKuzhAun{`=za;ltvik3JH| zjvW(Ue)*+1bLyx#^0O2tPMl!5sHmtA=gxd5zWr5-s;Vk+;lc%$6+G@esDDTh!kdJ~ zcbO24Np6}@Wp73m*etIT17uGzPL2?><TSBDE*G2S%i<$>SZ_~7ON!rt;s;Uu0Th22 z#UD%YCsX{Hvbk79@mEv)7b$)j#s84vpEShpOz|xg|1OGeqxefG{<9Q+C&fQZ@sCpc zuPFYv6u*MvpP~5Y4e@()rtvJP>bW#rTxJtu(-Im(K1+StE~<ndHW%_}Pa(e?A>_$v zLVmYg$f}oxJa35KlHzxu_(2qZAjOZT_>@*v2F0I6@fT72H5C6PieFCgKcx7l4Dm_% zNT8~mOUlNwMiig);DgluRFM)R&DRMzkm8T0`1eu#M=1UlivN)zzGx;A#En#EZxPEx zAXVGG;vh+Wm53Fx`CUTx%oTFP142$)E#&f7gnW6QkcYoE#5Ys?z7&5L#h*y=XHxtn z6n_K7f0g2Ir}%p*KIOUm3yOb=;#axi-%csqK`CTV3JWNOCn<&9l)?#0p{ltQKlha4 z+z2VoPm|)paw&d&S&H8eOIQ516u%qAkD&M?DgGpiKb_()r1&c-{!<kHHHyEJ;vb~= zUr_u?LwsM21J_ghwiN#sir<;y-%jxdQv5L#e;UPKO!1$h_&X^6F+=>?Pm1~&ouZ-! zMGlJO^(8UvwyvE5I&|nf#N`_~C@wZOIyx>YA|f(6rCZl7T{;B}8PZWtAv%`4=|7e% z(a|Y^w<5rhA!f}#E<P$IE`pMeiHeLE6q#~60(9!s;TFw5Hr^5$7a0{DMe%`G_uB&l z2d2~@85bX?KZD!0x-q4DcQu884!4*)4ncfMKQ1mdA}-~o7Oh*6KLzNj1?ZeY@gpJ; zIVvutZHpGIRe#1Ypo5u^jCG}-a(&AdE$$e=0RlO|EoQ`ziiU3_{9CrT=?)FGVYeX% zik}h@89zKOE+#Ie4H9VG>c$&y@bmL)Hw-zzKb{{-zfG+GDPRNqqhjJ?<Kp6D;@j5> zK>l5B<Mao`N5{p)N5>Doxy|)j0Qle9wc9YErXR&w=v+$)M*xj~oPN)+cw%vUOk6w@ z!8z#sC;U^Qds=`(9Hr4_@Zc6LT2KI&e@b8P6ibg7%3wJ8-#mCQqtMRfA7%0~g)|F_ ziHnXWE)Q<cMBFr36OV}gk&(STOkP0|De)=su`wE!@w#-yM)e*P)x*=R@o>!pyo!x> z%`C*Gg!b@n<n89xd?;ZE6yxI}NRVp$Bm4CU3U1`#dtEGfMhzla?%g{os>VMhWl-du zVa<HJ`jRy&1*ykI*W{lPg&=o^HFfu~z&|R2#5GRT_=7(rV3sD$o86fb6(12svL=Kv zef1gY-#j!vlK2>F@J9O4>`m_df}_G>YkRBmL+MA8AjZb@>0ig&kUp^{HnM*mZxL7f ziLc`=Wm&;RQ(?q$QY6a$9(}H$9;jEBD-;oR^tr3+DY`y4a^y(XN9J0GxO9)FXATq# zGh)PwyeRS7{1~z6(Yd1EKGG?uog4b86iMHxI>SsdAAa~@v1-*Sv1ZL0v2NWuv0=jo z))iiT^;Omf-+c2;))hW3ds?g_ePa{p3cGjj79V`@0qX`Qzxi5x^UXKn<jIqwva(Wq z|NZyk=bz57Zt%-5zlckhE{WwAq<ER$5C3jxXM12nN<Zr8s9r9cL>=8M>gbkINB5Ly zE?*Np<#sVb?i17G5wTo;AzqfJsQ<1q#HS81fkyPX)Y&e(o#OYU_!f#ENAbr|{Am<_ z0mWZK@n50%`zd}+KldL!<v)7L|EqdR8?6m!)20nCwY270&Ni(&_2|(9C&0Ebw`tR= z%`LaJ_ixthW|Fhk9lCbv)TL98=KiKzo6>umTRL{>LSdWxx9<_yBT%&Ka9h_NH#P3j zoB}j!+Vtjjw{+^-qe<hgH){@NbJyE?`1<;Fr8u`<*Q{xqRyW?(qlvF?<3?Uyez%%T zZ9Ki(+;&qF-^Ot0;otsxA2**4J@DMr$P4M;(8|39y*26BxKX1(s$aKsYU|OCd@0IJ z^iKH)wrkm?V_=USfw*6n^1m%GFd#7SmO!Sj9X(j{yX6*jWvRd<L^vklJTz!%VZhB0 z2I29cM0<692$zD~!$HhfZD+6H(Ld?%Hh`Cw>wm}dSC&P9FFv8TzJ2@lU@8FHAUii| z)QDOZKH-))#YX{AOTnLE=p6sM9uF;DziSK+zM^}C_?sVp{PAS!ciuX4=FGo-{PD-r z)c1Vz!w)~4BJ=BW=gys>ap}n~zWCzhy?ggM-Q3&)!^6XSXf(Cb(!nPw;KQHcAIcgX z^L3p&ckW0gc-8D0<F*<%Zd^oPddS}P(@#HLO5<p`W5*78`t)f@{i*!qlTR=~CBOdq zYf0m834fwNQa}5pq9_$a>xmCP{P3~z^74W~g9Zf)wVdz?&W%F-L<YE^TpMcuyZ%WK zKE1gKVW&==8hr8M#oq*)!E49AHSzl()xq9KqhG&%oq-?W#rVJb?z{4hH{OthpM3rG z*BS3qr%uU#{p(-y(4j-}@ZrN84sl3Ffcr^`^Z3gzzdUE_)~$0$Ws7k*9CzmC=0-1B zvLu1@YT$;?g92~7@y6hil9Ic6_38!QwTh08?uvB(EdFQDo|UA_EbrK{V;|z-lJCCz zPL`FGx%hnW;6eG>XP+^iR6dM5?8lEEm!E(BIlqG@9Z2V4lVtAPPe1*1k>u`oN>lmm zx8LN?KmUC8<Bvan<J)h){hIRn72$}^e^PzxLpUr!+&_yy=~Kwd1;Aei(4Yg#L<iun z)1ljSs7s3ugtH5%%w1q~2mBTMckSA>n98vO$wU!o*tv5j;}7{bcI+6J!HE+m_#HT+ zPEZ|Y^T?4S45%9@511%7)E&fm@4fdJf0QBBe~EIqeEG68KJ@-OxmUxV>Ts_=ga7&S z=OuMREdL=PA)O(|0O0@r`|r!Q-g-+?nM=}{xekN>D3AU7_cH+Zef#!tT{(L6DBD2; z+5pHK>IupSxNZ4SO6xHxBR-I__kJmRyo1XzrR-iN<;ZuXeD0K#znnjRgz8GWKZF1F z?c0|J1O)UU9exS5mnaXW0r-OF;4A1sSpav~QTAVb^%Vo`;5qmWd?5#*1$cx1DB~x- zmooYjDJ>sL8Fo<0eg~us-bXa-mhv{Dq4PE=JG?37k}ssJuC8AFXYi-C-UYy42fZwG z_$&1U^#Jmc{FRhLj!GHzG4UTXP#N@nPs(0IL-waqp0AcN{jiil+g(c&*M$Ft3l|{E zi-UuMJCH0Cfd(pvD`){OkR#w&A06O3c#blH+(7=(?$Vfz5xSG`zvFY2hCv@mIgoJe zPc-x)xye1M;-7Iu%7C}kI&rP|Q=cLA_8;<3{gDLJEfZbN!B><8<O;H((}6k;IfLAz zUg#$31)jtcQVu5?;z<4nf2z_j;E<G|@2fNfQC+xwr<7fH{CWJTEneQKQ>Q*u4ogta z(6-b^2V}h=`2zppkA4C1(9Rg2q?1%fLBp3)#u5!NM8l>Z<h49M5j@%u{=feEtE7IW z7JvpFbUNxQlltiR{rBJH;WyUECuhgWN2f)|hjT29#9jZAa`d-SjyNu5JZSh#tIs4e z;d*`EuhwU@Nu9T=^|{;IYMrJQ_drAVQ#mj0-Me=OYR`*+Kjfq?9gus-bzM4iS|IC? zqpuIVCZC=WF4x-!$j9;rG7WepR7g2iqaopIDTfhGLq9XrXV9S4=k92es7>ueZPG17 zL;Kg&ww0cF_2J*4LkE}qQy-6h{)+NI{Y8JEmj&tr-gO#)Kec<Z?2$D2{H$>K)Qkc0 z38G;Q(SRqF+RyPs!x+M2)Hf;(dVK~BdVNNl)N?QKeV3HCf(GKh`3<W7`#6~o>cgMf zdzOEyYfGRHq0Z@a=(K<a^al;e7Vt+qxp`iseDVG;`5e*kB+;<WrsAJ}M#_6Ci3UZ= z<Wp*WMw=A(c};x=4SIbB4SIb>o7D9!PNwdu^Q}?O(7%wL<pR*4LtQ%Rt0Ousc(xXV z%2#IhmoMHICZC;2G)x~Lf2sOTe)^kALkiI_?ljS0sLyd)eU3b$wn-uHtNpXyCUqei zI=)qJyTtgDe!sX+pFSN(M=1jSXcu8ZW<UdU9-S7rp|92TGWemth0cKI&B9Q*Wp1c^ znP_-{Xn2Nbczb1zJa?wzni`u5qH`*hNr+ybH65eN_WJQhd!fsJ|Ni|uqbzhleFfgY z4Y=#HpzTL{k8us!P4rdh+wg3kA0po%8aB`EFE`B&lN*VKy7l=XYLk{vjg*V;9V8cK zL`lcwC|QseEuHqe<X4{_Vj7G(Mt4oeXb695?^*r{pC!N>c)<itz#H`ec<W_?Hr}Wo zqyGhskpEo^2g+?k!|O!DYjcPOstc&kpy3IPhLsu(%RocsAh}=)(U2Z3=cdIl4S3Kd z^*87kecq{G{?TTj4}%^7c;=aB<nzxzFQFIdU@ViX)sst?F3CfWrOI+gKl%1NqJiqd zt3<;~T75>Fw9Y<IuE`rHSL8;>2eU15X;!3k5)BU!4fBbHIYa}Vx;n<)N9u2XfIrCs z%Rk9=5omeffd}NqjT@PsYoSA@1#y+bugaZ8{bU)@@D|a)^_gfuo21w0wbUl9&Wn(b z<XYrEiH0Ra!y=-gnB-`ll`jY5HYw7eW4u~ffBO&ob@>kq3+oIVfZxJ}3tcqSrQ>R} zT)I>(Pn16@-&q_bcQ``iTUvd7#ZaF&Xf&+SX!r-o(UN;3Wl4rg10L2fsDB<tu;w)P zzwe1FpVlaI>VKDy7%?I)J3ISb;EMW)Ixu(cT&BS&Uw>34Fj1%Kj<M={KHdGIOUFQc zF4gLDo#(3h5Aa9X4;?xb<shGZ_F2}wpv#n$l*sARr@Lsl8XZ?F6Fg{>UYmOj^_gg> zr=4l&X$?LtTehs6+D_S}OBb1vk|Lh~azKs0eDX<&emOrsU)pRoxp?tnuGe3F`6ahI z(1q%w1$d)xKwAY}2>K|-19(uM4?bm=)xXhrWBqhjeb#l1m0EpXMs?wj@PGU5w@sw$ zjMDM%)~#FL^z`)Xw6wHJYDc*oo_OL3dFP#X%EZJ(Sz1~uAAa~@`QU>OGCmmJ17Fa9 zz5xA%P6x&?paJbE<Pd!!^4RT+mLEP1{LjmGH%zb5F{Z0J2I@1~q(^7Q1N}c7e}#vK zm&C`%&x8DstS_f=f1k~pH*cgmEXhyKoH<icosf9H<BmI6M|kI*cUT^PJ8(rA>2jr) z2k3+BVVncK4rPJ*fI7|fnaaUfpP#K$pAT$(9D3lYYZ0E%(9j20u3X9UAjn&*%d)Vr z5chb>jvYJ7TW`Hpl5Wko01wm+BY*}S>e2#$OzCN(ZGC^uMEQ2Hh5Bbz$3Xx5{G2Gc z^`DdF=kINi=YRR-2$lCW&p)hKu|gIV6`ftae7T%IfBr9b-F27D%F1HC)3}ml2{fQy zfKK2BI_lDbISBN_kbCses4JL{z&H|a(2-DfprxLN$p7^#@aWIZ{~$8e-L<*7xnJLZ z|NWPNXL52f1M0L+!)>?SCTGl;!R3HHL!aBx=>WdKU!U{E*Z?N#1L_FsL*4q0KHE6< z!1!7G$@w?bEyzE~(z<!`=6!^E8W$HQXV0F^<p3Ih|DZvG<d`vI*d1j68gu{+`nVTk zG3eKjd*BHZG6dR;vIU(A;i)b8M?gS8-`8GyZ7IeOe+7TYCIGU8`DVBQFU&dH?RKue zQBhISVzJ2X-Me!+z#nny(ovsm>2*UlAxCHrAXjLQQFi+L2H}L|wrgF#VEl>h#eMts z?La&%LVe!0Z5z`7{$Spa>Ic)1nwlzy4I9R?wPC{s#vi-}&tV7Ns0V0&;11ms@&jEP z^#FAMbpq+44JO<#Q#wVhTD7uJxj(Uc_ija~Yd${Lia+u->OVSP0T?d=A1Yf(x&^)} z=K4V8ElJ*32GB==$9f!nJ`wFGc#8J_l~-PoFTVI9_kl0H^b*GduZd3zwQUoqkDN`o z?<BVcLS6T`*7Y0K-=P1X{ipi41n;PCFo6ro8+DfCly!-zQ>Sv<N_Cz4H?%d7Z(R;i z4^S^rCXf@90or7vJ_I|`MH!(y(4P~%*b#?z)9V^>cj0f8Rig|WWgEDGF31q-!h!`0 zB(+)GPa7ZLrUT-jok3fK2l9h45dgS@uE!sL9CM6o-QC^)EbcD+b^V|CT?88RcCkJ> zz;Coc)OYhZ0WyWYww^hC#vf&)>kwGif!sruz;o2075JF{&-1+&{zmyn8&S89txF3` z%(0IjKVCla$RjM@M!xHSaF8X)I^NL-0C#<Tg!I}q{{`F`f8+R<`kp0_OY}jYL!a+Q z`+>F&{gIIl@OI0VE%MPvA7y#g>o5Rx>vQwaoA3^q(bo^C&3xL!!{fh#y9<9~zi8B9 zjJnO$$^@`>?OKixx)2_;0bj@#+D_1-<4*eNQ-4w3ufQL;Q2k>0r~bQ0AAenq7JbfB zU%x}yzzyY~ugRgz&=z4W0c%j81-Mflf2EzdD*nd#AAKx!wK9Qz5B&%4SeFApwqWkr zvxnPV@BsA{@(%n_4@e$2{EfIX{>J%FYA0OtKcE49C-fJze~<(8N9a4jV~jb$dz6Dd zzl(CfJKB7-wP?p^Ou_3KMDyQ`JL3=8y_%diB=5$y2>$xK1^5gaA?qYZmq|xZsI1Vh zw)vZJ$AjZYZumC?^1ycwf6GxlvXDBL9W!QB3m<toV#bW)LPS)lCfWXG(?c`eG*kRd zrdyr#4fz&oX4&6?e}QI7)pXNL56$$^Op|7|*USjbEYM7;nr<*_@7pnpzwqGu9v=<7 z#8q@f%=Z!OCpcecyoh(KsMMVgZ0JE=tw{F`qCP*)YPF6aeLtGoe0+wD&(5H8UoQ-D zinPDHDCP8Tq#XK*y2ggNV5}+h+9l=q52XC$XU64fIDpo6US3}PXlyr)>hwjlXQXrf zLhWq@wM*YqyL627^Cw8R%_JQddl-5WbRd1>%;b~mIvM6dvCbE!&E<Y{R?34vNg1)5 z^Z)TG`QJos_<G9oqH#T4|JFpGKi72r%LHes%{@Zx=9@?uYo=Il#5xz&S1>1zx!8}- zNqOk!Yg+4Vk9K<g{Q0R5KKNh~aDeWF@dNrtwCm`L&{jj2g`NUG*zt^0YSs&}#)I`v z%xPnN2XpdRWBa50F$SP9Xf}-(GWGF2#<|EBdNg>Vk9nXs86T{d-E~@B@55TzYgP44 zUDSHc)R70y-}voA-ESVi6ZBs{oH{0-b|mpU<`QiVaN-YArhKQan<jpvuKViW4;bYU z>qA&)3@7vB+A`T5eF}|VQ%TQFGJc1F@`nx#T+si#wQ?%Yfnh!vbMkurfV;m_*FCY` z#`1VnU2DS{59ASRR9Nf8I^o#&IO;w<fAr%t-p`&hXHKSZy<693VM4clac&gPC1O4o z^N7a$vG$7f<K#N>XwlYau-1n)CdgypHnn}w^N0RpTq~`+{tjI5Y|_>z)=yXGW6z!W zPR{$OHV%--q&o5#p{<z)Yw}oUosRRTaZ>8al`E5scpz`cIZQlQZ^N7_))z1*yycPH zKU_2X?l&p(2$une)wMR%39NS-^M_tBYu2pnf`Wof<Jv25z`O}~fd}*JSZjJgTkpd< z6Xru9k62^E+J-}0Uz$Bhg@@;7Fb*t_hicZo>*il~Ex7I)Fv`DtK?JXNVXX*rnwT5c z<q`AZSYN@~1g~*v`Oirk%y|tl$m4(mwaXtmSxHGr>gv_2lTa5i-iLk;x`7LL0Q1B3 z8N6<Y^(xG(KCjJfKd!AWpiW?Y1Z#zb)@T<G@EF@@tlb*rA9d@#`|iu8_CHf!AHcW( zV>|E!Z4Y>HPWeo}`_BYkC&2vlCT)IwgP~4foyn=KlND$<;9+^Be8&@faiMno*T-k5 zhtT<r>nz5#JMig`){Ktqe2LdsuvS+@ILy`78V%1C?H}@YI-RMHJ@!}<)`p;u0}p*% zt$#NNJirUINASag_1hQktEm(9$)iEm>TUm_W6z#FJA1)`1yjL?rAwD`yN7lceIMF? z$O8BQSw!B(HK!lH`AGio%_meR>d0eOq-(A0YWbs2!8`}%birecuc$7%=F;n~h3RF3 zvUq2Cf~-3Ekv#M5CpGeDtC7c5bH^h4di#G$-(Al?DJkhhL_`G7yJBrRBO^mDTC|AA zcfd(+3-q=U<pbWFRgTFI*4-=La76OA0J=OrF>A1V<)K_zdGZS>8_<6S4jdS4u~=q- zj=6K^=1iP8ac@viki7TadwCvs$&w{JccG7cz;l@3zy56__))h{#)C8|+=nDvSJnTz zb?Y{o>OGGG(br>L25U>CXUTEn#xdOu%{A988@(UbzpbR?@!j*)H~16(kvHid-(f8g z^Tx5Uu{{3@9Hvd1#(YP6ps$hWGN8{P>+(STM0HkH)?||9eA1Dyu^VIlKN?fD2d{|t z%ce}3vIlECn4=#(dbC7YV114HW!HKE_^!*L{*8!kQeX8O@$-I4>v0;N{~**Y8-Mh) z*XQ_=26Q{{8*{mkLCmFNT?6&QxQ>7_K)Zl=zy-WOyNxyzc<$J-W2v~dH43i(ix)3W zUAJysl0N1}IRl5ulPAl-z(6^C_;AKepZC+(hY${Oqqi6MF7cIDUcr%=*Iz^4oImnJ z`{QspGLatU<k9D&&B5Bjgb5RPjT!X<Vex<m`W!FxWvr<{Zzmd7|B1X^`PZGpGR{e$ zKg!F?<F*0cs_OHKC@=6DbfZl^a^%QUe=={*ANf#Q!|i{4c<4It%P+qy*Q{B?bH!*I zG3TVODgMR0Ie+A%_rH)O(5vg<sC)XlByfO?VT}XxPg}Qc)xQ(`t9iTVzm_>rv@>Y? zP|lk+ZG!y$K)fgs>io%HeX!TW|1SdS*B`ZS4L;TF3nPxZ)!KUt_@h0$#=X0)ctVA` z=db*UeY@rc@udE+eM5dEk5P|5{`hN8Jn_VNYNLL9^2sOv@zhgK)oOP(Zrpf=(#U!4 zx#!rO!g#J<zdm;D+O^wXc;N*uPrVOAIa8hf#26pzY31eRm}mW+(l}1?cMkOsV`Iqc zi!=sF{9OGGDuVRuRo`$@TlM$|3z>!vr|UC%okCldQlXBSpr3w7YEAFGwe(|wJ{WnS zuIXbUqb`{GgE|J@`tudt@Gk^g&^DnS0aty0$Dy}3$mKbzZa7IBJ7N5Y@hip(7^?)) zSZO8Ug|$|U$$>lMANf8zH<oprvor=<bxutKV{weVF!sZ^597`d8h1j6fldXy(Qe_v z7zX;{s}D`%G>lK>@9LZm<`FPv1OHG?=!5icP~UnWhV?Dzd(icuYeLt>cw^)05>5kS zj-iAH%5Uu0vAoWWHVk|?zI&bAQaFIelhECvw`1IZvC|yu5Y8j<Ybl>0zN}iciuFN! zBZ74`lqKY)t}cG4d=u;ab0)cTZV<Z}{G)z>+byig;rju-FU9ln+=24D<42gE7(*3j zaQ?2Fcp!Ud>mjEo%aJ2TGEdP?qb$GL`GkCB{t*8DbIr^<<hyS^jrg1O_}jN{XI)MI z9tZ6<bS{(!+EXJgu%j<G%0I&E<*$E}gtX94B7gKp7$+cYw9C}@7Z~HCod(`W2fV;q z5oki6jrk<R#W)*%_wL=hYsJMg*Jop-KY{SjKwJg%Fg_ZX;O-`TgxT!Rr#<1sH8-4~ z%WpVu&0XMJT$~($)7Cr$PSM31&RX*nK|yNkgp=01w2)>#XU$s+Y35Vbd_;I^e!g|; z#H?B7nNzc}^9OXW=VkZLpESifH8sE6)Qm}aIr%y1wr-PhruI+GpW1zT&kp9Pso5Fn z)_hx%H7`FSCwoALp522w3~buiY!0{O+4K3<m1|5bSdB+9^R1KYc^S4@+B>=AS*O`4 z7i(HVUdHr{EbC-zzRT0-9mALD5hBB^)2&(NEc_1WkeVNxJw4}MYhDMlJtJ}wE{+(` zAw4xK-`Zhdc#j4m*JR$K;oQS})WS8qhl^->5AUJ#b6`SbLS%Gw?C>FD#%PxRy#Iag z=!E^L9(V;c3A!$*eNgA1z#vOdLeSkoX+ie}%?v6CDhgT|^lZ@ELB9uG-*Z$?Th9eO zU+Vcr&%-@e^t#xqQSi9n)xjHs-w6IT_)M@2?$bN2cT(@1-m`oEqxVa__w@d<x9H>5 zr%RvkK4be#?^E38pM75H^G2Uf`kd}_xsPYxW_{cAy|r)mzLvhj`zH2%y6>BPEBYq( zySraOzcu~J`n3+}5;8obAY@_4(vS@yJ3@|xG!E?^Ixy4`x+Sza)YQL2|KR?k`p@kD zSpVC@;=-nc%?$e`?CJ0q!ncHP3;#NN)PV5=at7QtpkToA0jmbA9q{&mJp;ZNaC(5- zK)-=42L=qhZD80y+rYU4Hw=7!;5!2k47@P#v4{;3TOy!}gbUo28xj;BG$v?P&knst z^h)lP-m5tH#(t;zUFv5Ktq3jYKO+3T@VNsn5AYs%<G_xT)<XjYuT=OFFT;ag3;HZb z391UZ6x68a^*!76?AEhSPYZEwanFZ)p8o&ZJKv|Ojx&y5m0C({j1I|AN2+Bov4-l| zpJ&hRo?SFF!GtEpqD89#k|38#476&lmPSmdA(l+3!Ag`SV2t4fwpcMRh7zz&!lY=a z5`UmXw2UDs>Wx7L332*d(&>x-2c6-WJ9A&%d-nTzp69z~&%LvYR^UvWgV*9h{2YEB z{~DL!SMhFKgKKd;Zo;j&1Am0OaWDQ1e}Qk~7&4X2B8g-kama(@M<kuBB<snGq<oD0 zA##+QAm@SoG&&0=DMO#8yXbzPe~M0I)7S|faA&#3t#OaJSKQCt`-Cg9#m|B3Ht~B= zD-MXS#8mIPcgveBQ{*EuLp~w*$VS;MugdQ!qjso#y<V5;xAkp3$49<4d8WW@Hf82b zbI>%JZga_um^*E(jkk_Xw-vVEMt*!+71`qwDr&Lwn3L{2>Et^3PNB2asdwISTAXj7 z7?gq*qa|n=T7|OFv#1lDLl;pl-UvK);7Z(xTkwat6JNlW@xSorcmz)-Q%EeCLGC3< z#3K)o#pK6i1KCdMNtg_g+4NqTL>JMOw3v?2c&NEdmdondJFJ8KgPmg+*%daxzF@c5 z1Rl-5&F|*l<@5LgPPycUr|`x6F`mw!;+yyu{t_?a75p_`!}s$8yqUN04|pdJ^C5nx zi(KI*yY=p2x5Yi~hTWU)h&xT>h@Xkyh;ngQyery7(0j();{Cxp=rwxZms&n5cgh36 z^dwO2mDgl~TA)(Y24MTKnxdIrs9(~r=v_L=&-07@u$f?$O|?sHmd&%juy5Nx+h+Tb zy=ZUPz}UePkuxOjf$Dt0*$E^Q&|1`uZlQH}GkyiXfsf#$K<*L{y9erK4w+8~Sw!;4 z4)P{xB$Mb;x|?332Z6{>cp-m*zsuXiXJVVzD?gDpVLW^FDV+fsjk6v0yp3%50I$GO zC)1(GppVf^{3v9plXx_f=Fs2LE_$AZsmm6!d{)BtviI2#i{_lK;F-J{_#Nk;@b9<_ z-Id~p-fC~Fw_Ts`zh%>G$nK8l0Wl$Xdl6kDHz1EA<TjZ|C({_(M*HY>I-O;+c3$Hi zauY<RSSJpOX7Ro_BQA^ELV7{(E$>g>2VU4qkPpi_>V8$Cf2Vir9zCEF{rO`KP~z`| z{?D?7c9Y#=OYC+#WJhge5z`CTjRUtUb1I!W=kLyiv7Q}vqW;sbStt)}Ky~OaYC|Jv z5}u0F@G_hYocG{;_;2_u?t$8D1nqm-Vb%o|c8lG?AK`0xviGF7$2;m>_6EF3axV1M zuq;xS)K!(Ex9C!RM928rPxpW7KjjDge80ed&417D@%#LKf4~p>gZ{8T>IcljW{F8R z8D^C^YL1(JbKMM@VKZvt?L(lZ7}S*7GFuK^S81#46+2+VcF+z-xR!stRtq}ooLJ<d zMJN?zpw(y{+K7tKwlOEFLi@qXkD&KZJ35JaP#ngfu#=o2J!Aqn`9J9)_5;2IT)9hL z0R=H?rdp)Z)f({H?W#)sQMIa*s!t86Xgxze4r7~c1&pJ?cH7A2z+eM`8~9VQnf--* z%3}CccZFOnvt^FVlh4RPxj|l+qw;P=)U#@rnx|ie4oCxs$uTV^vUg?$d_KvUj83C( z;&}W7{uQ1<(!l#}kmYm}eU&!Q({vUKvgte?dUS!iOa#Ry@wzxC21JyX=soAX;Wc?( z-UK;cdNLQT_q=S8opOpo;B0GDrK*MwJgLv<OZpD~em~n^>woDdnB``TnQP};X&<o5 z?M_=`>!AZ-Fs)yo-<t~#cFLKE?n5`xmoPSim*Zse5cw<lkj#Pps-}6Y*nJ(`;VXBh zpq}yy<VN{RxmE6vr)6MlqvXi<<f8(ZPeYK8QpiUi>PLgXBT7wCu|PUeB`K;jI7J#T zU!|T_`D(o?QYETPRRI0KSOG`=NLvTv3xoq>=aZ*8L8sKIb=skpqfsK73waNs61YMw zWVs84(J17ZVu3So2z<5)s(2Vjk=Z1fWRYT0O<GAW86eS-r<ZVl8w);umlNmAWl79o zlnI#2lUWK&Woazrg=CQ|mL;-OmdSEiAuDB-td{#^t*n#vvOzY<X4xu_$#&TR+`Hsi zc>x@-Pxi|J8J2@kQ=>AVqEs|!z6(^xf$rJL0o?+WCxiA>P`?E9X8?gLU=Rcf1;8N$ zB#MDWDbOef9+g0(TJ2M{s!r9b2GyjRp*oMLcGaOeRhK%egih5NI;casO4sT-U9TH- zlWx|n{xM$|ZIVrjNi}Kz?YN-Hhna4@37H~OY)VY2sfN3S|6QMq$9Rm#c#Ow*{6EIO z0Z>Z=1QY-O00;m;J!e!}Gg{O~DFFZgiUI&10001RX>c!Jc4cm4Z*nhWX>)XJX<{#T zHZ(0^a&0bUcxCLp33!v&l|OvnSCTEs3tnU!%p#eDR2C!+U;}Q___aw|votBT({*Mr zkhU_UP0Z3@vRH;LB5pbeJ7o&(7(zQ^yX_2VOedPA#X$e_htMTJl6E@N0YlQ-IBg+7 zun0!q?|1JjOO|bt&UEH`zV8`7h<Cfox#ygFmV3{=_d}o9CM-e-D}K?a5YG$sXNY(H z%hH6%bpLav=yv?9=y`4F&x&gO_3JzjuYKq<Ygc^MvuefXKKIai&&p4E)^7Nmr~Y%E zyYH*<eD<LSK6P70hVy2#j8&hx?f83AjLos%+|MrDGDBYP+47vc-o0fOt{c|fv&AZ} zcW;>|uM4-_Ccjr~nJ)8IY_7z0`?{(vx5(>(&9}(+zuc^zE9Lv@`c;0`GhUlMe2)+h zbft)nx<xBu@6L<qB2CYnDmJ6R(=_?cJDUhlsFH7ZuM3gF|3v&M&g%-f@^f8tEK}?< z`gz2yxcxo4xRW;lUA**RTp!lOk+g&ar**M31=oCC)ZTzrb@;wOOL(zc6VL18r@w9e zr#7y~^$P(_0mQajN2c+h*xS}Vuwp$hwR)Q>Q*6ieOWKHZ2L9cql8J33yn%|-ah<3q zr|Y@xVU<v}@nJLF&7;y8x2;{bb`|a=PJkOxjqB}WrTf%_4<Vt%5pX5!Y|E&0mE&XL z|KES;!{@Vf5z5kyh+AY0R0vVqV_E*{(4#-@9J1iO`8^xg+0#|J+4!CRpw{`tRM95H zT`#ko=oWF@@~yy$Rde>fdDbF2d(*T|ybG}`{$llAtoi58%b(ObudLELBWo<3Z?Cg< z4n1n?99pP_)_vIM-0-oA&PVDhI~)BAJ0E@c?#>lnBVvehz;h4M-i<s9k+%|MRCHdf z`Iios{ohe$3|@=Sjx`B=;ILEF9@a#6kqAVVd&C8_v1>ZI+)9x(&*O<^)OikMtQ7Wn z9)WwodogdiFv@T(ODr$>uQDJmSZtz}*Hu<gTjU8uDus68utn6CryFmgE7UgOTBnIx zkLT3VoAE0$0+FJ+K%~yozVre7DusSwdNf+QQons3x~j`#HNH1Jz2bW}yDGnT%an!R zD-wEWIFD6)Z)Ljny$4+S_dY$v^1W5~#{4U<Bfq$P9_wJaD}{HSXE*M5^WHPh^Dyoo z=KVz8r{g~TzuI>G0k)Q+^X-GgsRj4wnzhfM+@dUTd=-8kPaVqlWITiNi|lxZpGV-G z@ThvOEnl$mntQ=`^$@RTP5ctiMdx=762BJfNc{EyzePerea2E=Z|3#<j=`eyt%IxZ zT;~x>d3^v^;_DgUYXWc$_>U9E#5HhvoOmbxV|j^V;+i-o?qj%q2DoNDtIRrC{xiUN zQ2=ek&$AovcJrNQUXg)!_<0`2yNCI1;=Cdc-g)FZ&_bmDXK@xitQ{YER0H4Z;C~DH zfffD1hJKOKStN`|uSG;Ig4Zuuw64n*z3VNDrRxlS)@XFcX-jTbuf>JuysopB{H_}G zwfoW6K8n8farCuMqObiW`kFvrV;R@4n|US};PJqTi{|s&>pp-w??K&n1BQiwr4s$O zq7$%%-id#7tFduqx+r-a<r`Kpe~;N$o|$EAU*1!G;iurI-Rq5|T1Ug@ri)vqP1i)p zw+#{c_8X6FcY7?a>|TFr_}eqlXequOKd6guh`*`3S4=6oS9Co5IUV0B?V@_O5XTH_ zpoK7zCcUZ6$DX;_*my{Yk|L|P@Llx5H=@x3zB|LRfOqB**D6|>ClywK4N4SzE~p_1 zGk9WtIe7mj@Z(;S4`Z-@1@B1rvlh#-#5U+}M^WFFW8W5*7Uo@uHr{k?VQXSr4n?9R zkS7;b0Hz|l$=~3YUW<0@+g9yZV%n91(GsXf*B&9d347($sBBLM@+QJBVM*O0+dMs@ z(uhd3mi0V{w7)^yp^Q%?(hT%jusKc9hqN(N``%>x(jnt^Kg@Q`R_#il&F+U!4Zn}k zWrd`R$E3^ciZ1D*`rD8jgp>7t+p2IrOe3`S8JDr3G8!GGQ9t0EkeQL5=5*LoQ*2fX zDkgm8#wa>SI3G-;Ljt^;Ne5w3bTDFcxVtqGcH(lF4ly}n!u4(Fmc+DY66pY#pNWj5 z!!Qj1hx|UMz6S>5H29As8blY0<5G7+XJ1$~``Cq45lN&EznxDtb^5B?kGb{i0T`*Z z$S3<A`^afaRu?QL7t>Q#4B^|GL(v`VqsjeqnG@x#d+)&cx!ZQKtc9jMk@fTS+h?a3 z$IDSqxt=w!2e9(}IpE!suHCCm*?q5$p9R0=kk#K!5w)85^xp<yqB!bTF0eZsEkbj@ z>dViWGAS=R<L07ilP9{e(u;3N`b&}zMnikLQFI`~C=wa0Z}?gBjCiill&(_GiQf|P zCFF^x7wNoKfi8B<*&-UmQoLI_mfW)U1ge({`@lKyz@lsSv=-aM1!GV9(w_nsm08C2 z&4bbX?<DW4GK@FD3$^wNalFrBKUOL1$Bc&H(nZ%k&`Me*|70CSW*shLd*$2FZsK?5 z<!CMIrd~XFNzr1g`j&&QADk#^7fusde*ek^tL*k;b;2FDkGuyvyf+{0aBG$UZHlN} zoYC{^V*CuvF>pGyy-?g7_yo(ge8Cv>;>UES0spG>o?qLMt`7JZk?wBec`ts$>Fh}7 z7$Y6{-;3X<_kZqsAnUyNHSs;uS&`26|2{n9!4d2Ge`>ws)@PP8ZvJ;$&wmv^@6hf) zwVeMfJ!Rj~r9F8(k@q2oYnOxPi=fjI-><N!_bXJM3#(!K;TmGU`t0kthfYp}y%(|p z@1!jET$0~ItMrk5Z@fM>UYis9bMWWex*z-1&L6LT@GlmB>CCr|ykWlgYGR)#${Dt| zF4p|G^KzPq3_W^4`hl0F4QT1QXt8!(hV2K*8u=}3HyilvHQ0b>n*t~FK;T3#Y{77W zXtRqzj$1$)J{u?;dh}q&<uoI5vF1=my!;<3pDkBJUMsM4{?<*OP1W_5X>VSHy?GgR zUa@GQUk%q;AnQDfy3e5AUf7+lq0VoNQRkIhBcgn||I_hq+I8R^+BN%KwQFSgc1>&( znjShT#6EAC5n;Q8R{m-!@ZB+|QrgybUF?4jz9rLY6=vEB*v&}ShwmM8^hlo&`{ny( zMuavqzoD;JJD`^x$T$6<C1iV~x!Q_%H)&!b?Q+Tjrb~vCdLc`wF`8s}`#9XC;N6x4 z@3xM4BjIIQZI78Y5#D*j@NOFm-hSkpuKnlW9eVVI&NCCV&esZb@Qg*m{C{DKL@l1< zu=`72+u{kG1<a@M{yxyNm)~(c0$A*ejED#Iu@0mU9h5fAPde0i$LMmOmE~rc<z@|+ z`;b}g7so6&EA*X&axd2WXn1TQk>}n*Sraw!QbBHC**Wmmp&W5MSCG#Ne5WnWu98oP zwo6FY20U+;?}49OZ)gg9rYBQGs6%%ib7=W3<i+XP;&`jxy7K~TKjK>Q{_uFl;gN9U zlGZ;OrnO#V4MjnJ@X-09ielOKPQ$({K%EacL>tSObgr<5P8YNn{(yd8n)KhQHT<?Y zMH`=QM_L`vuE&g4K5xyjE-TkW!`waXg}s(s-<Oc?EZ%SS1Wpv8?9=GC_e~OQy{r%S zEZ1NkxY_6&SS3QvEF<inAv*m}7_DgMvDMikJXaGfH`5N?y!*t%$m`g=yLzkcSi*XU zQ`TD|>vQ=COTAgAj`XU|yskOJb>?+_9d*jK9khnX*G;;(K)Lxi-urJ+aIDTT!c0q8 zf)bWI6PDbTE070$e}8u|>tfwr&7QWd(tC{UT|7p6b5ZwY)VF7)Ed;z?IK892a3$)x zgm=v+Y@tds-Cpodoe-s0a6b+0tp_eyKHFJ@_OZS>W0e2)MA62whuebk7qcyTeoL-R z98X1Atb=utPqv~S*pemdQpE8lJ%4~>NVM~>;2Z0^6*N5!c{}vz;RIPaK0h6_1*)SH zM1-_(v9H@iTR!+|H|Q$+Nrn-jT>Z)B*&$0HP^}9kS7ZIY$0|xnkdHK$yxD6D^==U% z^5eC9&<!x4Z9c*l0PbrnqLlX+k#@!Ol+YQ_YXR_L=%V|VsIM>6h@1f|iFGE{2mN2l zJj}~?#mHNCJ-VMbC^2dJ1nOzmMZ*!~7uoGQ$HIk@qX&ljw`^-3Wv75%QSwv1D>fn@ zK)IkzWCpI3eM*lBIgY|~Y#-WFD$|!Lnd(J4_e9Z<tF;z_Za((!i!}#Lxuxoacr5i& z*EHN6CQW7j`;CZZ$|cGt=1YV(YMF67=FiFW_b8Y(;>X01eD5$KuYnGhoIv%Ny?Urf z3sjTG_?>n2-DHGWzPmziFa)O|0@X@pq=dR4uljyygcI}HZLT@wzrG)euq@wZ>JHf# zQ$pWlo?I>Deq3~VH0ayMwNCfrI(`=XtoYeF-77@co`HH6im=o(lT;bK3-!=9WBs}! zHT2|lQ%2*vfwE+pReGpxxbLTiniJC0#nNoiLoLJQ*h3qU#_o~&Ynw+a2=z6Yuxm!7 z$i#8qUdUAV*Yf>`j7UH1mQ>&|1;2iaAn${>1JxEh>oJ*b;yIv?q`ADGE&12S{5J6J zYiF&JhZTJ`SI2Q?51qxgGpfAm`NZEHMz|RK;BBxfIHwws-h#L;mhaw==gA56&A@Yk z<e8k|cOO^p*bj&6D{_WPuE%xXY0zKkck)%DTuA5-_g6%y^R6I&?;&UClF2{hqjl)7 zuOLlbj?oBNQQ{7Y296VH;1!=8G6?;l<0BOj=Bt~o;9$O1^wm}&y4OvoPIYxHFy)4( zrG++Yl!>mc4#*Apt~re|w}CjK9<u`er&o&5Zry0?0S~jT38)Klw}iZ`#yd<t-jgnI zdj<0HIVW`QZN|nUW}ed)yH7(tBN{FBqpXXNFMSE$uBOT|OZ~{>N18gM;kQfbeF<bi z<2sZ{9rK;*CciajNE_h*WVnPEI_X!aJBYmQt)ihBxM5xV#%IN&nNmOh9O+_Zw&Azm zsr0<IVnXPQiIY{p32d5@;9aUbF;;n6R*3cfGj&k{j{YSHZstpD?~l#zvG$&XtYh0o z+T)3GGj1P6EmI+nM4V@`6>r*wf|GMoB1?pLzu1bth+l=aweTT}XbZsJB;5J4Q$kMA zF5iwal3?3m!gj=j4fghV7i=C`SCQ1E)rozQ_;x&IoMe5-S9=BDEGT;i+Fk4r$L&t& zyG_L#ov`Dovb|-e_hyCuZYU-*vPakye!O3uV+}Rw&Vf9X--mu!3A{V<dKQ$IiU#1f zw!Bz0pdGbt%{j2p)Wvzw+vEeqhuM-Q_YawU?^YwSSI=F7?`2;E?5{zWok6*5ujfbY zarv+!hp_knO9S)YgZ%y{np)jO_6wV{MQuOwx$BEJUc|L;?ns<1PNFC2P5Zs5C^zJO z3gv<4W}`eCV2$N@|9E+Nk>`sl&&^4BZcob73!Ox}l=5mI)-MjahWiEEk&7}0p`%rw z$qTtH>V1Yu17Y$!b^hPwi8f({z6TAPVKbfH0-1?AB_5YmMEFd6b)Zl5BM)i52lS}` zkL}(pLa*wk96>*e(UtQatnb1#)#n^~;DnO>6_ICB94);l^YmetEcY_59ePh=KW$00 z(|c>r#y;|(rKj;$*p%li6Xp9V^L-!EF4ZO;>xcc7nEnXf&(sQ#K7T~|D%i-5p^8?Y zt)-;`{I$gPm6r9kr&<D#jZ0EuGBAGxPaeLe@MKw05c(a;qi_8>;GjRf8Tp#03u!0j zT~qTk7lGGI!8u?0VM?~&;u38|_+?7pS&cWtM~WDbops`_mt*6|aXW?jPqf8s5i>n( zY$KeQ{^A7pU@Q;IN`W2rkD6%9nk?EnaV0+=#(l03()NHtY_m@hH60dFGFzvgF7^q{ z6Z!<ww&V9}<nMuwg??!ZYf@g6$TTbRLX+@qx0!A`ehrh=mE~0--P5q!zk=uE_`%*O z6{an9F|}flu%5>A_qCCD*)E^sHdpNZ8N6>~{gdN380m+rd3Uzyi)Nd=X`+Po^nrz< z>;b&X#k)MnoQ}$S!)_a7laulr_8-!8RAx$hsHiAi$~CbfE%f)3RNp%74pdj7&+)xh zktY3i4|L@ge6KR|T1?xw8+Fmv{1xh3r|{i{ejMq5E#Gd!RRtZg4)6X5-sk`y+5fUa z%4^y-6|{+Pt<%e2{Y*lB)ZP8pW`6Q7bW5bMP_#XOG`V+*nmYjtY+~OT(+&l1gN`Ef z0QieEUu)9E4m!ioEM1Abv~h{A9}4;_xjv3DFzsi|w0(fHW1&$7T9#H9sx(879vU&m zKpIwPv^4_N<(f*f!c6<2Lefgn@8_uF=_vjCk#s$RJasy3VM|U|x+eBLSyUEEgI!xS zwET!)6Z@A8IgWI)zXP@=%|5_6N~V$DMg04LJ1no*qtX3|yd!OQIj<AvFX)_oRoRVY zv}ua*y;uttF3K(|I|KNBp%3F%@+#}xI7Ph+n(rvjA}Dh#zaUnJ3v~qbO=ZNTAHG&o zifBOps(p(5OWMQduyfq7qAc_ulU3i4&wI*3zn-kpu&xZ$&-ZqubKqKx?@kfe?kpCa zKKz^x5dqO6<lmtFzOoohF&}3)o_{?ocU1rATGUca-avUFuLk=-bFR^BqITB%jj-?F ztd_K{V0D#dgxy-&nhL9^t(uKAx7r)v``4xk$FX9h@fI76cFob^TmgNafqPrv#H?cb zt}gV$<y!gxZO}y-M!2b>cwjH|a+SjfJ2XccpSR$7@gCTnz#-alVl`;Uw$k>fnqh?f zVsIXxIiKf|zMirtV|FF^FImp9U(W+>X=^=a;?fQtaSyd0AzviQoWy)G9e9EHi%pr; ziTvbU>lDSqp8&l*NpeflJE0uX##{VBImQRM@+@N`YC%WB-ito&0sYoaR%1eSI(^}I zS+O$SK;MvK8@cVD7|mBdO5iIavMxn@%&p}PRDf<$ejK!fIDX(5I(6hUY!MIbmkCA$ zZ8=}O#}euTUA*`v?Hcr5+GfR?{Y9C#*%IncQ+YiJ-%rDD8BVieWSV~XEd$UueXvWN z&5jrQk*7*?ylB_bUUdA(*j^6Uf|~f4UE8`d2s^gl;_V`?9X878!^8Z^@yR*QoVxYv zGliIIUP<Fv-&HsW%B$)x?+dX_-d;;c!Qvi{k&@q=-#0uCAH(a!tI-`>t$`D;g(KkE zF7)XL$Km<x(3-vvnHNdKx8#XD^1rgT65gK|T6~;eKKEu1KT`)QdOokl2!S8^;iu(w z3_pCfh)CQPSwq9Pzt0Hw?`5A9YpZCBW(Nz09z7yq`{yJ%Ci7OPywn%WzZ?D_ZT?R5 zaku7JQ>2Sp`<+IZecIXMZCQkVU5<XeLW}onjrU(fd&@*aC;MuIeQ=~NHv&J@jTKWA z9W?7O9TMdqebiR)X|Y92gzgFx7U_Ex;yzn66yd&px)H9@#YC@WU*dL%2K1p?=$nb< zntjb~b1WoLmeEdt%@S!%F(UiT`&-ecR;~N&X^*XSk}$rm4ci0oixS4=U$U>56@nf8 zQfc$7P;L?WJ$`O2Z-9Qp573VFUor-}p<j>uRRwgi8czy9|2FA)12@5+kmKso|4N## zNUmp(S<k^gUp?eA`-Zy}Kc*(|Bj|i9^#1Q{qVz~6Y_c~V+n%NMyg$7HIxb!0WI#`3 z?X0^u+gW$-%)2Ju+oeyOUwoJSUVHk~nvNMqcEb5SN8fBwcF(VAyZCW+Xj*o^zF^)q z+rc}tk@xoZ?faY^d4kbs_iU8o<vr{e2hvhERTYV4j)ti<oimQ^^lEA6jO)=_JH9zl z&en{@EtKJ2)Xnt8c;|iGIJq^Ws>M?wjxS=JN~fOq0Pdg5(C<x08@8bh4!}=6mqYl! zy6$t;sGIfQi?ZH}Uq9Nyb}Rxsi_sRsm8LnL^lDDoCa2k^BPJ|sfb)9uU7y*`<>1Mg z*P^wzqK^Qs)<8y3j*)xKHZ4Y*s<a7DF48ie1Wyhexf-oK#P|WT%q22UOA9)s3ywqR zVH0OrfH!B_v-d6o?g&>Ea7Xy7aF6y%+)*!7CE=wWc$o>jtcFfru4SyL)7p2c@!}tj zjM2O)K5l%)V(IGpw9z@h7_(_cWDxys0CL)?O*+=0D_!bnG`5#&lUn-cRFqX^i{qCT zQwE5JPiVoN_EaN$G(A9BvHGB0)DE_2oy^y++t*ZPDcv%8g*617dj1F1B`rr%jPUY> z-hnMCqV|YW-B0IzjuGy&iIO9khP10a;P<mWBQkxVx24yT)<vE4;mgq-b+*Cz)PbLc zU15jcQk*F!QZ^i<Z1{dfguGR^IV1FTHFPfRB)p5+$A2`(-#BJ?8on0oW7azz&ljP8 zJhHCbu34yu@6RBO#lks=+^*NB8<E%YjYtvF_@hb>79$<oHGsTqb6bkYX1g~75C2ES z0!f>{FUN>{7vFP%({??5&E`~5d(M*X`v>5o-{SNgu_-*<L_9du{UPXO;x<K_ytYo- zO@Znz*tq|QJb#bh_o`>MbRb_-C2)zhcR1Ajblmr68{v*@B{TPc-}=+>oS~jM#<9jG zvYTMDogIqS_5+S4EqzTdc$n=t!n_<~LRmkt8=ENq)6j+>+D3ZxEf(RUD2p_qe4oCs zxFvcix`XXwS;PU$Y1bWV&RHD3vxCuEW&0fNc>5+JGBVy*%?(rjChDbMi;*@o=T5$z z@D6ga?dllz^RP{3rh~j}`;Ca(USruqd*EvYtfIT$Dkef6N*rnAt%*v{>;dlW9@w7z zt~sQhv0LQ#$PwsD2WZewe|Cxy(GC{32$vDbN1cpM&6Kvc5e{mec@DfU(fAYHw7+s4 zqkT7y50WR7?VFf>@|dwdv3BOrE)R%MvOkp0_q*foVbgX?n?$=K<QDb;&J(;RTey<( z23bpAwL6xtZIZJ4ll4?S$~sag`|0czO3$9)_^)is9&OkbQFf)3y4=@;^s)DH94SRS z%Rc_JRqU7Pdaa>Y8u*mknT}((9Iu<qv8pWCC%C@?y&X$WTRE18bK=rY=3ExXY(yZ( zze$8I;~nRA?J@X9)+246JUNG#+jS<(EW26RB%p`SBk7{XP)F(SL_dHw4SXwU)9i`c zW74LaB*Jd1n9cY@KIeiCF<6)`2KVj+xIJ>NLbz-qK9(_-|B<VSZFQst%10-nynV^8 z+2ZxHyh2r8vi~tMPU8K9{Uz@Tm6!9J+NI`dkD9A1fzP|Gs{TG%4s7u3MfDTH$?%OD zS5BCR0MBeYx%$5FNyuc@=R$piHLuwgDuC|?e`Hzb^;1Xcstb0p&Lc>RdX^nsJs~_7 zzIhD(@#p`PZ%Uqc4*F{@{C>!Rwj;Xq!NVM{0-QPY{bGHKG{2&Jv@Z15w!TM=@3VjW z40w!8j^}kDAMIH3G1H!xd0f8VoAz{~-OBne!XNEV$p0->_x7bIgZV#={C?;cmRAM+ z+LR-t4$>qax_qC&_urwM&s>lGlRw`G)Bkka3fD3=l=)8gc#oA)CO=`cuGZ;;h<&rP z)KJ>c2U;`ojP1e3HG`Rsz=_VH%w2xiy3=3pDZ5XzAFDUZDz}NXu=8t|Ta_Kn^i1o! zY?O5g`@CLDY8T-I(DXN5!{2**%AN$gD|Dmtk5a}>X!#8AeA+UhE04CAS-#z&*T7~e z?MT2u4{#Ox4rgQD8RUu81HZkE<I#kN^9+9+syKOCOKnNC-4&k4vSZ?OXS__rqIYEi ze^-FpJ{dD0_T2&86aqI6;Ku*xra>ogLtk`ek#iUN+lfW^Z3K?osiI*XY#QR&FMW7d z7is2zokl$Rh(qAp4?NtjIa)fz;QWt()&cl!otdxhyi3jTn{+Jj^+|u-CF9TPQaGPD z(Wi+##!I&m7pb_PfS<%!o~_0Y`^O%&WILvc8qlc0hjOa;YYy)Gqp-K!g!0)hIZwj! zUt;-IHC90WD#G^zy8Xg~w1r}{n3Ph(IfdcpBD>U$6AaFS3fDu^1K~JM;BNsZzFwou zsb$R@7Z%Ol5^HyV#;ZHM6JFiv&>Y7+nyZEVYdk$a^ym+9ui>4JZx+zdDrxrv*bfst zffFy`8eR9^V;9XBoo`H5{bZ11V3HpBU9|b(_jMLJ<UB6zIA1a7;u~7jVsBFPo(p>C zf!;3Cd((!&j}BF|Zk=AZt7wuD*}^jME`mCq#Jfd!S8j0(RHT@)^Pnwc<Qa0D!YX6k zL`WB#t9x%!V<G}HQZ&f#V%-m+ygKXPKlQ;*jKXG0hwadhw6iL_E$47eqt4P*d|4*s z@>4c(oa0-S;E5^?JXb2D{|tLw+HO@gyek$B2RX)N6Cv99cF^GH(Y^(XVPC*@3pHs4 z1N?Rn_FEt7s6zV%>~quC-X2XgLiNC9WX;{c^FrXe5_qqGj8b%{nj&%?LzZkG%6$WP zSPuGnMfx#2V1mpI`OyE`HErMzTb|rW_~8eh_yg>M;0$Bq_wb$Yt;uWIc|gk?U~GL| zr0FDV4j1$EZwc<CJ-~6fe&)&RS+Lm5BV2)<G9J^6KmY!9B|o>B*QIV1=bk(sAB*L< zY|(wSkT=^4<8p=L!>liPO!?yVXgBA+I<7}cIF|_8mVO~2-$lry-3vwNlWx(r7x}h; zpC7|_yCqOPh;Iib2=v!HA9XY3z?VI09Q`@GUx&22k>>&A<@LeIN{5_^>4OCQd{M?b zX^?fg)C;Q;V3=0Oc@Y(tr)LGK4@EiOD<Ygv{kUwG5l$RG8P@+}=$j8ElxtTw$(d-% zWa=;3_e(QsK;sg^day{wxJi9Btw_P&gM80<Xaf$;V;;)nI`}-a3D@C$Q@)xLyv42b z-)Q+fwjRDE0k+;rqxJBxY?_^3!}2+Hlz}?l;#v_Cw}%<4Wx|^^S=Il?5%^a1I_?xT zebM%6jseZZJ@8puu2~zT->osurXu2Ktl#L-a-AH1I13)=e~)OS{*B%w8he+h`Jcl@ zYM!d^CZkaxZQ|H*oDL)TG}h+Jp!X&4Y7N@{yGil3Ka<e*L|$!oiiRWCqqS_?N#N=X z+QxZPJ}(h*I-Mv~?LI$_-9i1g+z#J4H7@@hf1`Z!KuY|b+vZ-Yr6^m1V?yZDwX`8+ z`p1k`<twB@4t$`s7&6q}xOy-R@^)rX+OB%&zGCa(d_VMMpGB1Fx+sm=F1G<b!!r0! zEcYwdn@&1lr?lvfW5q*FkSEIb^viqu8Vz*01RruWWVu6g9xK;e15$4xZ~Gz0QOZK- z6F>SxeU6H8@@lRne%MMQ`b5oG^LTNbu+1@g#QFg2kJ9D@x{xOHUshL((4wK`!Q#d# zIg5tu!47jyD3Km}IqpmU(k4pVQ{W$>O?>~e>(L#YC(MIB=W{>$3vCA4cCrm7?!B;$ zfZvkgx;9K3QCCKS9aU@xe44}QwrLH$B0;B{I^1pqs{PYNI7Yh|oIjnU>;ksSNEioA zj+ZV1t?vUb#qh<sgPSKBS79&ImL=fl(nKYvfOOYN$Qq<;q>StbeisXItg60#qj!eb z=vQm;jyFf6`=Qfhy7zE?)2hljgK`Y(=rLiyxZmK|x-c3!U+Ba24bY5ZBk(&)25{}S zr1_e_H{_wMw;CG<EDm2ia8^&>dzP^=c%AcmMkCiWRYArTn`QJNT`|hYz%%po$#ODe zIYC*D-N%>*&dsqLKguC|?wiF%w{X%|ju_c$9Bp_W8Sq}17{||dCn_DpvC4{Qv>Wnr ze-+x(2OV^D#C+uoBkUiR^~jsBc@F0sXY8-Zr_gnlu0e}U%Jp9+)U#dHlT(g*K-BJ1 z)YWUTc5$9%vM$<wsW-hDZPlLtmeaTzJ*jQ%D`+o_Hi@#nRidn)@o|iQt`VKkN1?ut z>Ji3x^hd3o(KR9*J)ANaU6?u;wP=meRy^0}WzqYPrbdsv1v~rVSzBlHIcxa;>T3S~ zY1lL$(ZoE!v45Ralyc6;jXun{jpww%`R#}14y?re6u|mXi|BU2KVJvE!gv|#l~{Vi zB5Dt;_AWSGQyKa7H27d=jWX8BF{pF!^{P4-h8>OQBb^qG!})-#&>Y}wq+O%pz1IU4 z`1(2Y%VOmh!A6>kcOAN`#eKoO;J1?BN7Eti9q6zjfeyEubTG!C1LGV1Jahp5Q*TU* zOaFCRG>)RhChtbl;*obri(g#$PtYO-wCHtj{OzzFOIo)f&Tn_amZaTBy`2wy2en~Y zT|G&TM^;AW4mO?S{C$(2bzv*}vtAi#((MCyC&wHonEv)@*b*Fb+Mr;P^TGk-zYA@A zIz^AP>Uw0Z88cBfEf%BjF4mWb!4Yu2Q7{gim!5c6aQ<K%I9+4FIpGFy(gxsI)ADrD zaQDQen>fz4yhM$ud!f4=Pif1}O=YZwb2aCKtmZs<OfDyuW9X_JmREJVSjMsWdX@v* zDos4`rYviyy_)67^0=m76BlHh=Q!m$Zm*005BnW;S_nGq1jmu=vnnHY_#KQ1NQaN) zhmVqevxsD9qPpLb-eq5)Y!%P1j7=Q7u-n8k`vMWJgxsbd>a!mzT=YeKaxZj+_n^p5 zn<{dfUKb5dQE%pDq`{BPo{4w%n~g}CCdwSR7NZ`=&Fp*8f~}fkiQ~f}?8N&j_$&6C z<7;(C!0SnbxALUdW^YM%+!)@|?*`uYiyFe)nE)^Rv)m<kPgwo9_iCb%@H-p|?%x6K zApCB|o)LEQTgYL;{!Vz#F!7v$^qCUwjIR40GfpPJezhk7_WMkqf2RExJL|tVVHf8B zynxFI_?P0^ZsI$bmnq?&W#T(M3EzEyyYs(*Z^D@27!7+O+`{q>a09OrZd}_<yvN`s z-j|wq4~~I%%B_wY;C-y|Puibc%Rv1yA8>PR9sBra(U%y@sMa3kcdfIFHqIq+Y@IgB zx)hP!q`TG(Tvv0uH;m)`Q|h}*)Udus{xkI@`L|6gMOicSp!a5@)Bks(bFzv#+GhXD z3dX;4zUI8WcS6WfY;@LliOyWkcfvkiF<pe{@7k-t-zg&ExZ8--J4Ix15#zax$cjq% z=eXyXn-{vLL)horHTN7JeF5m8)hlJ3TvzhAwwG}kkJFy)Df4MYWU1CuMw`1IwjS-l zaxGojfA%Ro3;Ip_FU<<Q47<^9rv3e7$nmM*fjn(lxt6h-bHe_qJqwt&9(?RWy5$E& z1IJ{2L#Gz-z9$;3^{VlmHM6pVJN<b*3&1}Mjvx<VyA^Py1Ezo2D*3AB=u!WI@~1T! zfBYT5nLb6Puc`l6|HjT}!TjMgy_y^sO}7I!y9n_)Ei1UQ18w}Qjj=-<o9roDjegdV z$2O(=z6)FD4YX~mS@+0!ocOp(tJ9Ec16t8X?#x$X9Ic?i2Jl3a4tWKA7R)pvv6x_i z_LWSN@tom+Q;rSnzYX~U$Rp>^%$RoO>6h!K>@r?!Yo>@K>H@#6##rx%ZLtAmNuPM! z_=vIL&3ZTRqR+aL;MM=z;2r6Y`{z|gIA8D2lyTDgU(1WzknMTOhJ2j<-rBo4*O6Vn z)*3E%h=$XdYAn)q&>Cv07U8DbM0h2~p+W1_J|kQY*t*gO=RcTouq@bYj?va@Tsu%3 zeB5YtG>hXiCp~`h$s7^#*RSSQV=g=AZ8Gd>{@b`V#h&KF_a*h~pI?Krn~ESa-;UNc zO%)A(T<g<BmUq#27I+<Yx$lD}$60f`rkF9EM<UUZ6{vgVGw8q1WQRVGD%#$s>d0w& zBBj{>L~3!9u9Y=aYh@*-ZS#r{ZSUn6VW((dY|e@kD!%!X@Q;e=d*=XwKz_dfM;7NX zht1gT)0{0!ibQBlj)*+iy!`nG=ZWx7VXyk<7~yl4^d+nD?9isosh=alj9V;ZT<7~l zc#>H@`|64_=+BVT<CW`2xel%;hQ9D4Z}GFi!g^faFxPQf&{j*#el*)1d^1`?S~}3z z>Ql5b-q&A@mXa={331Evtdl;tY0vp+Z8BZ=T!_}zfqseO7M;(9UpVpd>wWKre`*u> zXM)K;o5tXuz!?0qoc!a6^Uq@N&zdh8jrMEp)qe1U<Nb<<j!@2lf1Kctt>B-f_4Sf} z(%A>lzO5PQX)*p;3jTQzWw)FB({A#QL-Nmehxv!{n!K_a`~cnSBhUP6$~*JS118Tj zCGpJF>wjLJY5Ftq%x^`UXJ(jjz<t9!V>H%(Ni_2QD0#*)nrE~Nqj^Sqb2QI<*W?+y z^<bI18MuLs#`PeA*YBY%kZ11wYF&#PdWmCg_S+dhJ9Q4n>DB$TIga6bF(+mCe)1g4 z@V$GE<90Q7EaNA?U^M<u)|YH&Q09<7%B^Dd0QodU;x$4YzvN$6Z1ii{IWbwsaio}h zng(8zG=OeY{T4Pq?QmDTKi%O{^VquSvy2sA>j1vXCuwrNhOwW)^ojHPDOYES@Gm(J z4tj%+T;*k2!wNHvKW*ZCho;gzkWio7tgn{v-f4ur(9`9eTEiPDqLyQ|<uhOxaO`@v zCVjB-Wm>~-lv%z<Yhav}Bb{rWd&=B+<`|@xHgvj(FdqH=D0306cQEFG{^*?|%=u!% zF^|`DWiKrMnVM(va?a_fXy82JVok-{EdN(EH!Qy$SLs&cn-_fRM0u=>v2Il>v}IEN zfG_M;QCn{nAM?&Qva`b?<`rwIpLGBh&W)5mYqsIICVkQJ-)OR5m-lN8j59idbgxLC zCQyBn<BMiY_i$UE9og2cCcWxOgFE9f4zaiyEo-w!ONeuDfPWL|*O5TKGELEMMH2mj z3G};^8>int<|_K#pF}@<s;J%l4)p6CrXTuKjDC(d{q8d9cV`0q-e=Np{xJQF#yI^@ z&bai$w?z77$LTkNuwQPku8PTjlZI8Gp?${DQ8fIIcS*ySO&XpUMMJ>y?8x@sh=wux zjWy5Whb(Z~v}MbGBN~F)z-JD0&d0l+cj&k#*)4;R#W$OBIRrWvnfF~*(KgMzKZW=7 zTc|G_+7ziLDm1xHUY2p6MaB!e>haynxq8OxXp`pnk&f%=I9Da-LBJoEaIc%|MjUwd z<9q$|)Z#%?PyChDw4>7CZ|D_eRcWI1L6j@wz2R$e&eiP@Wx;G~O$XPCPD+vWb=VYb z9~5Gq-=@|z1Z^7Em6X`6ay@q0OyvD6aB~j+O9%az74%=6tM^F%R>6IniStZhrU4$A z9=gtXFXUpECQADOi#-Lf*B381utJk-BM;cX-xC7W^hNAxf$IJb(!MNSu!g#99_Lxo zeEw=9+-{q;7B<3?5-o2D`EJ!STpQ`~X@HUPc)_*kjtAh|srPw4+Uk5?YlE*x{AO6> z90})2=synUPf_{3$RDHa?|@4`^rKfBoG)pIJV(*S<T@uK&&YW6k#lgMRkV@3W?uOm z`|<hR{;rOZeu8<ua)YuG>lb6xFUH6-QK&6-U1QX5NqCoI=4Z@fY}}ju=wollbzNP4 z*nzRW<bQ|0^vQ(2#5l}YUrJ5rOKtDam(u@?eW}G_u01sSk{5kx4f~Qs_NA~>^`%C? z*_ZrDeQ8ZXU-BpRC5vce%*%toP5;~N)j{+l&ZF*;<8un;TTOn-;MytRkLetm!}%fb zY$yAWMfD+Xqi<uo*@xPb`%sz)@%v)454~k^%0AR&_MuWOKcNrh4fFGsx1&4O<I32C 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%0AxU$zt5sn{*1=Le~LZV#-6^|^O_WTR!)y~ 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%0Ao(X`HLiH|nDeTeD)ezaNdx>6<r#3PWQo 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%0DPCo9Pbf^{joKwV_Jc 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 literal 0 HcmV?d00001 diff --git a/Lib/ensurepip/_bundled/pip-22.2.2-py3-none-any.whl b/Lib/ensurepip/_bundled/pip-22.2.2-py3-none-any.whl deleted file mode 100644 index 03099718b0bcf4f776d916e5a594d9cd0047067e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2044706 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%0DpNSS`sMxDa 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%0D#9ptuFPCq4KPB{sKc3MPF9&zma2D5eYC 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%0A?Y`X>dj<-tJWEK~K>9FB`y;d1`eS=@S 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%0DrO8QsD<b3D^85r(Z#T11&LNe6yk+V+w^E9JSz2 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 XoW6{W0sKdwdp?^GL4LP}c}0H%&R7D* diff --git a/Lib/ensurepip/_bundled/setuptools-58.1.0-py3-none-any.whl b/Lib/ensurepip/_bundled/setuptools-58.1.0-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..18c8c22958f1f1bc9d50afc4c9c3d585c14246e3 GIT binary patch literal 816725 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%0AaCsRM0n%G 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%0AbCZO>=Ghbfsf0QOwtUnzl^2 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%0A!BiC;$j#xeP}>7e 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%0DLf-#EdD z@D(luKhk9XvCjWP$$-cGC(k-h$&vwPUy>B9KJWi(TjVeEYCF4bonPHgETx*YJB6lC znjo`ynrx8<u+^*kJTI!zoNeaF7&fWi)X6%~AXXx>pdHZmWTNa}*s95Erm=?#Zfu$~ z&uqNKmZWHVmP!DS?)~l!B_WPSWKl{QShtxQ<wadXmxSFhA`H#yZ`$HK+1<#eX;q=7 zmjkAjMktbfPUe2IiZAm$9ZNN7y{5oCHsiR89g~!SjoPq-ee3j;jSA+$e$eT6n&rxT zR3@V=ck@iQw9^XMgk-`A+PMirT97=(Jm)&S#+pl1ct&NFw7aHc%wLUHPRkb8fs_-^ zrhH!Ey+SU!ekY9D&9{iO(>bZd$lF6%ktsXM8t`Z`NBd>6M4Z(gQ`|tCAB&9X!0Eg> zut^eMCUrj3W#fCsLFssOm<p9*48ZuVGzb+erZytPKv8OCm2%@!gLIM7Ed!ObTl}yF zb%3f2U1u=RQ;u21B?Ud(lfv&4!@G?fw6xLbG#}6LqVZ(T35ib<vPNc8#xe)8st3?7 z(IB7Hqbf*b8-khCtc<YD)V}RWuj^WrDOPzDAhOE#Id}zpzDUP131XpUPQb`cJG(-U zZHFK#Qzx*+(7`rDy-1#M<3E{YR~x+*KWQ1&)gxA;)wgCCzl$Rn?Yt+?tDBOIcVoQV z6jD@F;KmCvO?5?MEw;K+(Fy8BQc(>=xjyQkT8UB$+Cd=M8AJ8YSPKius?}es1*04t zAPiO#{v?&UnF~B83ts{<4#H$`Ho!cyQ_;M#%ltU!pdPd=odLp|Z`IloEY`up$+B5| zMnyB9DCnq;cP@ugm6KV!V&29A6YBuh>YFrkKXR>#p{x@?>SPlC5<I-GyLbO#Fexv7 z8Fza+9u*dG<579w%9M-_s_RLz!{9z%`%%#4=c}1zHpK5X>056XwvM<7Q3=?pLPNGz zH=it-uawu^Eux&?R9{p%&ko*J)!6?Cifr#eFKBAkJxuzUk;hD}E^<iXXORj(sD5hu z14)6|?%hp6Gtp0WHi;>^c%4al3IO9X4BOLOcY3)kWFKbwHHuJQcNrJlP&g?iVKauf zEHj-oSPKxpxCJN|Q3f#W;bMU6`3ATub5!%FCh&9;pEV=>|8CQBK#?f1(K-qxMV`ba zBHl8IL$Y|ais;|){YH_OC3Jd#4qL8>t^zx6)uOmj4SxD6!I-8{1KRs7XxMMzr*R~q zb82Rw3r}-bW4HeUJt+;}wwiTg>vn{{PJA*7);Asn@2>wDeErRu*<a&a<~4SI!H!D` zKLO`m57xr<XuantiYGf=SXl4KW&ABb9|6!W9H5Qt**XGYT|LC8*&reWU-Y6N#E3qd z>y+_*^GjbBn+^XN8vc5<(Etip9L@SV;>guh+-f{f+ZoXMqt!;V{v|g4)dw~HWux)0 zEV4VSk89<5ewA@hgP7v3j^`t`VKfD9=07StYCjl(1es5r$Lx@4a4r?8P5jA7!(r|) zHv{z3V8K=b-&?L(mT&LQ`>XMdA;d+}L5EF2InMbRJjSwk7Ji~o`#5_NK1Q@Wi5>%1 zp7c6~wg<hP5Elc)PNqD@*q4|#f@EAqq!QFQMQ?PYs&a&kJw|0pBh9YamRoHQY@-cl zmP<@yF;XRjkuHcZRAR_f=)w7X8fSg9awMiriURSGHqcYI#@PbU2%t3ZMIrBWA2pLt z;xgq>ycle{K<Nk84{<dm3q>Yr)Xh*oMg?axAg?Z(HRQhLyy-k5wH8Q^lGFyBpEkqo zr#sIEg8@uX+rAI;gIkO@yqGJ;wC?|lHuQ!2bFhMRruOXB&WOVy2&!I%rm3t!96MU@ zWVWyxM>#9aoKPeq)FITGRoxhF{zEeqcms{Y%U1h-vqe}jql-73MGAAlvTQ=@OSB;r z|JCe=nKBSTNTvyW?o+=H(XDpt=(t_J*}=xOs>Lv=CPL**6fmCohyxN+UxnsRG1XmS z<i8>)sT+X0DU`YcK5}j_I2ad*R9a4h?`W5Te=|x@|54(hOYm)01|w|bQK}6)gm$c- zTah+{(8vK23k*&UXt0^8j$ckCQ1c6C5>)&a<Rg!qWHiakTIC?RiZ(QQg0&!uB=QZV z=yp&xz?RGyDB@1OU4cAx0x0rjsuW-4Bnz7}&?!1SR9T;Tj&F_5G+JMrf!P%FELio# z|KS+lbc`PklV4jMLcD4K3lS~JoQVk{$<i5~m_ku9-$b)F`qey_-%{&f&b~wrS>>>= zs?9M{hcy_=YTn!0^0-W8Nh^{B9x5u>By&qFmYoYNIBA`GvQJBOd>f`?e(m1PE|?+{ z;al2N+N%A*eOJh3##+I29JnbaC`@`AL*>khv;+J)Pmw?q&WJ+{kYIqEcZP~kye7uC zO3fO4mrG3wXOkG`v^1NLPB0x6IaVQulyZJzZAg5|#vmtSxd549#5W19U$kAhz4oR< z>KkLnA31kb^_(thjI9ED9W(MQAPQ-AA|<*4#7s&kh#_p;ua%FBsY@1Raxv$~&ouP5 zV|9xLfV{BGqrCkZFD8qMO6i5wSzoix%S*PF21{nism5Q=ARZ5YHi**}mRcFNf0aAp zqKzTS!#2+j5rYPCmkwQPW%gG0UN@rr3(w}$nY<%)fm|5MBTTLdk`KXM5<X;^tbx%% zij<wLjCFw_#^I=g^Pj{fd10BThE`_;W6O-fYze!G5w`yitw}n;#N~Bx6<=H7<N!lD z9HSY!M6Xx8>87<uw5ED^m!*Y=VFMn=lt`R`^Qyv|09yZI5aQtH_g-+`q2W<pH1AeR zKsMBn!yD3UoQ^ovn+`>;u1%D88I8%MUmoMP++j+NRx1E?4?qUuTVJbxig;U4F~(Oq ziCoE3VTQ<3?@*qjPG-<SzD>s2_}1+zZ0WQBBEEJd_)-O7+tXyMByay%Gsid)g$rKT zRpWeaLoyej4M}3yDBR;1PQ?;}=auXslr{)`P5@LLN4{?54I8^`0xgE3*^U%;ddfMK zSDd^y+9d4|rAwnWMImBl$qVsRLF*Gcxbxl|5uNO5!;N$_A2ly>p=hikoEBmq$S4Av zQ*=wgqfZaovUjkL;!w5_ErSk`?(%HFuN^xG_2FJ((BK-#Ky%=3x9gLP=NW2h<hs70 zLdFklO}>iSRjIXNzoq8sB#$K+ZaKp2Rd8?{p_D}S70nu74c0c2jYmFEN^!nAu=S+B zzR`RP*ztxn>WH?bgM`8eM&CUYe1pz&BB9SZA7>^ois*HH3GJPT|MFFwrX^?WgcBY9 z9j9k$rH-xLfv2(lpk->RJm+kj-fE8q>t77kzx>9FK4)X574#t(wQ4mk43-gYV|+*O z<k+33WmMdx;G@1D&TVMgOV3C2^ufj>5AfSjxrf4!=vf1@%tV`b%Z)E2OD{<}NgAGS z@9q0jI@PxTkK9XuFFautZ%5}I8eiP8_eBC{d~p(QLv`?5U>5r=u!-=d9@1LlUc(nD zvUR<+ueCd%*L!2tLJP(gg<F~-_G#}?mYg|UB|;t8c>~qKO;w})xSYipg+feB>PBb- zjYJo(j;E9KBB28xF8k);O0m+g=u~2V#ueYbH9|L+X2baA5jW<)mkiBRI|^nIU+F;4 zZ0l@fLsd~MP(V;5*)6(*1xY>4pvHU@YS+K8@Ulgc2E_t~VyMSXXL61j6!a_Xal}0u zo1HP-Zc#+nMQtkSb}NuzYpRj~6a*_JMcSdbwQy}eR`QuISsI6Vz`-;%f~qfuSt)B} z`MEwiS8`3?!=sDt1D3>Uz7W=`(4wf%DCwn{CuM3oP+tX!{oH+<bvdZBHr#?qJoX~r z#UFnBX-yC`CS0L_Fkyj>MEH+qI9ecSXb!67ngSV!LKnjt;9(=g1J9N^_4wSP>)BV| z)XbRDg1f{QXpd(;1@CEG0Z-lvI^px}!|nZE$07Y$B8t`LSg_7qFH%RR2@&ceDv3T@ zJfaPh(B0H58E}R@A0C_vm=6kQVWKKkz5aTS^GU(KG@RSHXFISN>{5V6tq$)a7z+_q zNwZ}2*=(Ol{AkjfxypK;<|TInzHat+f8N=BeYp4PW!+(@`O$l9DD%|^vmqJ>X}_nw zS`aJDm2a_1$}r6{DC)c0k(v!FSh$qA>pkxdr#16(oUS35us{8T6O12X1oO~)8=-f# z?GqFZM^(dA92La`CL%V^w~%;`U*%H}rnCjRV??R}E617C?>57i3)DltR2UeA<I4oM z%sTrL{>NkDjFVKaIhHIyn~rM^-5#++Nj$lVuS@Rlo%%>Ex_xvF=I9O+m=_gxZ)T_Q zH7i5tt^al#%Ism5U%D`?Z}IDazs$)Dq;2Su--U!98h4glCdCH~TiRQ7;8Oe}4&5q~ z6vebe>xRyc8I6fFc{Juu<B}V_u$mbJh_R1zvC?Q7DDvf>ozN?EsvCXb9~NyYfy+Nd zhde=OQxEHHB8i1i#MbxTmgPME>(Mc(X1XVn_}op=%g=OnU;24`i@K+I{(&I6i;@9% zuu{hy;ByrDKtkvPs<m&3;w}-HChfo9fdUiYcq)GIz=d#;T$4?jW=kPQ4x@)Ba4@-0 zhfLf%IG;jgq$UzsTFeW$(H|Hl#jUHmpq?&YR1rfzX!>LF3X{PsTVYHlTP84HiG7_j z&?vajHh}6<#2{L_=wo6xV}+xZt-fBVi+w#a%)u?^F7e~T2+%xa^3Br8gT>gRv&5!( zbstX&#zKp7I8<qh{fw*I`Mm6OgU=1aCB~;a4K)X<iCKcjikXx%Cl2HDakW;ak0tH} zuakn(8Bu2PISzZ154Ht}6L_<8mQ<zk2Z@9Glf1gG>ZYg08CcHwS^*@iN2W)s$T@nH zQ%Yy{x`!8PMb#gr#b}Pv`%Av722O@DeO{I+8C=r>yUf$Ewz%UIBdCrMNdF4{IxBLt zLHQ`08-q*L5z+Gzg@W@@x10Dq2(9(AwY46I-68Sey5B}Q%qidNHQX^oGQ%`|7R<<4 zq94B34EO7E{imNSb>%h-t4&Jy*N1LWoR~q_Zlt3+ViG!0F)_dt4#eX$t`dM{UX#Ue zfXw=eZEKpt3~%{#hIdTjj9dqezfma1xR+`d>ZGTgp7;*e#=A<Fv-7^2o^~nZDt+C~ z#;>x;^&UJM7{C-xOki-n{T4?<Kj><1Ir!k+)_V6Q;y|bHJG|Zk=F}BS-0cz0bQx4v zd7WEglxJ)Rh?lmKQi84x<MB9Enf<U$g(^nBiHdX#b;v{TMwYw2@HJdRSu#}FCfEd# zYT~RGMoEhe%e`RAS^8p<r)TGJ2K_A3QHf#phaFn-o&VJ_`ZSW=@<zqMU9iO~qi?dt zb)C&yr64_Lv`RaUAA>y9LJa*jrI;0}!?#XDmQmdKR$@z=%<ydY`Sy?dhr=Is|Nhgf zH_wJU-*3M;fJLitTt4Uw|5wL0R%(?nqM#;(EshAPX2E06$s&k!Y=H=ZN*E2cC9tPa zU`ru(;2qol!=jCh`*##=ykd)QclmeAD^?jrbLiPDUoC1<4}CMH-g)Rk<qcavdG(KG zVfJ4%OP5I%)(@JN(svd`tdTTz;-Mj{P<G>n$PgT>{%bkLLQJnI$IvIFjLA;k@V*V& z5O0ne4cF~jKBYC17B!6VLtXIw_2nRaK|XIMO!?zT-ccf?@!VM|^n?50dAZ$uESiqr zaT@NfKf&7MvVkTsuJ!MT^uEo_O4-loa)Y~ULo!6IBmQfNcf=#kR95$lTzp7M5x5dl z!W&J(A4B2?L)2{xAhEF1b*Km>$~#&SrBG-W>f40*h=T&)hDP}u(I|>jI*P=C7pt3= z!bF)<nL1X=V#Xm!1d4V9VKC;gGYVe5I&2i?;1787t^IU8vS01O>Y|{t^Ws^j=SXv- z={SJr!OnENzShy6{_qI>{Ea_`Ou*m5ojj`w%p|~xTevHv5cf!Ty$@CiIm2ma#yuON z=^Az~c+Clu6GeKgvzL>hVQ@+dk%?bAvq%b4N?wer-BCh^S^L(q$H&@iZ@-n&tJ@vk z{Ug0Qzq41bI*G{N#_Cn&0$?kpL=~%*leb$Y`qXo`WpcOmp_R6`Tpx`C&4LBfa*$~Q zXB>@~sy-e?{yy^Ezd^S9@6l-K)qswAi*L9t<06%~dYO?+Q2QHmde;uQ{B^YQvQ|wo z9A#L<Vd|=2ngjJxYUQ-lw+BWTp<w5I-M5>dBDdyQ!$iMNNk^f`u#|vCeQi5M(SKy) zw2HrbA#Gy#yFRR@_sR}?{if&1c{0_-S*^k+&rv?lD%QstlOkKcVfjoxa<RHR#?WZ& zvOrt7GK)6%crrkvT5fQsT4hWsJ$!<EU5f=4R;)4BX4m9qk(cb*O4DIBFK844abw_D ziAsHKv;nfqS(+g+^f@-1{I+4K)XgK&FxGBK_UKFmQfNVQ2&iFG_slpH31_G~9$dv- z0u`v%{c9_qmY7P$66kCn?!f=P+ulC>?z?Tvl-7-DR2Ti3iZa^{kGj@#OyB&zTaTl= z85|vba|}<r3Rn23Yqi@wzFFGx&u+`UTR#VE5YpnC&u}u<jmhn;Y<hXm#P3SjIc&ks zVH<W<LXO!ZVmwO5R?C71xnT_Q7W2+&Xmw3X8?@qd$WVV?NC;m<!RoZ&-@c9Ad#ISc z-T8IT?yX0@qM3mS-=`^5D}6~xqgzze_`O_`{k*W~_w%tyz$hJujs8TQhMU*C%XMpQ zO1h6CyO3T3^{n~G5NNRaMC)I*=uww|L6N>e>OY`z4Gc80?r^QgTe<~D`f#SR0kFL^ z_r@_BpPCcynr6BL(VQ&Tatj4qr_HDwPEoE(=xzj~M*K6KSxTr)9`te498J%sekqGl z1ck6e!)fz1sv3(?@EOs1i<w$IY-M5Q^t#2&F+F8<yTO^C*l22L5I<yYVZUy%dgQ5c zC+|V9?$bpndu5U_#p*3Q(g-H<Lt*>aO<QJEKdL$0@p7uNDjF;ktNQqPT}MgI+TqP4 zpbs}R`f1q(uBJ~Cp`dh0LJ!5lK$mh69_y?AGSNxqpGnjbcAww{DAFNGex&c=`V^N0 zFEQQALy&*;4W}0bUjygkYx9aS#F&N>yjiofn5JDWK^qNX$HmFdY;y_)L3ECk+KB{d zD)tc5Ws&Fr1b$YX4_HQ4S~^a##SyXr2#I^^Ae9Ip1}mi=!yB<|r|Z<-x0b?>3Y7|0 z{O%^;NUGGjTnVETx&|9%5))#wTnqh9H<6A2kHotNXy~YhDmnsyN}ddI4Xn>66eNoz zZucs9nx37LCkV;X$hjC)Ee!9x#|aXM%A>Xpsw@#lW45tks$#oWiek*r<Z2C(fCqT= z7r4qzda)usS%UKZ`?83$GY-=v&03bI5){m$1%14;N-89|v7yRHLWNO7wSy3yd724P z{p&>?PuaZ_83UdXDa2V$mw~F?rUG`PG;>-fN@-NB{(@XL9%BbOy_-SsCYdI58kCHk z40*0%Vyn}c7!uUeB!?LceFc-5OT-Fxhc?c-hfaV7win=DV?RJ5?QCyvtNYB(c)LjO zAw?m(mS84gh&N79LXv}?L4DnAR3}l^`vU(-y1ah7Wp|)>m_n2~M!9I>>vgRGAazqi zBW6Z_p~X=K=gDM-vu6;Aj(mZrG!Cx&?>YA4jqwDp<Zs*(?!)usowr>1^+{Txa~b|P zNh+9qJ978-!Oq^EkmCBr*Zqwzzr+JGoYpf6XJ0`_@$Y;(iRbhrsYcpW3EROC=h6yV z*W9ut$)I`-8_xCgB%fdi1r*cEQIXEj(P^B<@D;$t_^#2oUivslpa$%M6FHl@&|9Fg zyr=kyxm}Typm~ez3AKqQLM!ntubs8^jYnU6`PHAl{-#6DMf8;U3cT#YQ?H%9?uH~Y zPzFDvc$QY^L52kT&!or^CZ)f{9j!n$o^d0^g@**liYKacaZw<@sdm_N4wUD4S#cNv z(pDITH<GGBb&FofD(V|fhzfw+dSuv_K=Bp?01L!~z9h^}ke-w`AS_1?4HFS<&d6Me z?TM!8JKO5W3<6B>q$8cZzx}+w^X!G+kMABaliG@@jgZR7++VtpG4fG)IpkehTCAy) zD(Ss)s}prr(M#hmQ61}DQLJo0D%e`5)9%(<#0(3+#7Zf>CGj1sW?S^xKP|P!F`>A( z-l~siAflYr2sa~K_4R8s!%%u)6J9f;r5>wCde`s#&DF10XpXhfs)MgUNJoPX^}DT{ zGUHIcZA{f2@Y$N^x6+vYy{N1-sDG~zmeFm;GpN>f%z-tP7zg?mmvk6#LR)L*wnZt` zRqVH=b!DjpZ8MdiE5awhV7n%r|CH8LuZN8w8|+I#Vs$Bc_!TV2cRW2$GdAdgFHNlg zj>3mVcqO&scgvBkOAlXc|2*7#dFV96QpK{SsFbgO8i5q>>#D3sm{x(?n`SN53~6SA z)`RN1Gw3e-XI=i7%k6=OSSg(|a<{E@`i>lKYfU1#BA44*^F*chQT>*u#kK(TMWSz{ zJ4c_F#}81aHcU#`PT|;pmb`m|yEhwPG@&{yj6&vVjg(!oExl}`7oV5dkNen<x9w^V z`x6$)fcxxgdRh2({aG|_3&*{vF><fU#f#!Q3~%)b`8SMJQJtpz6$V~(-kx+GSWh3& zGrOwaZCk1#m}G#Wst&7KH{s5Q<0`ulDo42eC~94Wo1z)z(ex*WanPBoRzx+mgW@{R z72BeD-q`|7eOM_d9_pyF^as5&v}=R2BA?GfSH}!}wXfoX<0kKG+<JfT7`%FP(ra#+ zip}Mkb)@-`mIlm4ut586>|mZ!z|2GW71cd3+T>`Eq?%W?C_$lRODV$L$Riil<E)=o z=S6;1yNEY7FyzostuJGEY;Lk{Kn)j^?M|v_-4c$l|2!Z);9Cu8#Wve`51NF~z@Dtx z?b1Uu$u!%hLn<13JYKQ0zKesF9$S63%Y5`jU@lURihi|7<n7^%n`b44(Trc*HbfQc zyE&1i#2K%B9qgJMTpVz-T^^u-=bHf~bo8El(Q;9uMsl?I1xPr9!N3#1VnM73RoxTY zAoLxkK66<JJ@wu?nK%IX;HS;-^D_Eet~RZad-nRqdwb(<Y>Eqn6t@r5fyK>xD9{9D zUZIebVc($?i!M==%8+&EqQ>PI=S@ZNf}0dMW2KTY&7)+d*o5f!i80{wvn>5*ogX93 zP+eICudl0f%=C~*@;zyA&#<^f(8;?xe;V88&`w!WyhrL9tG{>Nhktqfm~vNO7KEE# zBoQAaC1)@bvr<aN$!#$_wjh#Au0^(p7;!6`W3n5@e9<|2&_Djm+wp_9gSX@RrXmPK z?APVG*tP2<E}py{zyIQ<*T>&e7}YsEcsu?JKN!c?^3&93-GgRNH-q!4nr%LONNzRx zWm23@@+*|u9{xJVFv}n|J>2-}&yT+O=HYpM)gR~m>wMm)Iqsw5U!Rm)eNtfcMIl!9 zaZ>wnUna0$PheB!rAGYX{aW<JO}O*ox1DFdJ^RZJ{CsrN3xD4E?dSd9_W$y;{NDTd zx4pmp_P4+6@$ZIuO61M)n_WtqyT$o&4MDVXwB7%&W3Afssk0<%2PbPP?Q<M7bjTra z#m0?N^-+0shefq+NG(}=Kym&JqaVGS;1rW?a$uN#S`LDPgiVu$fU)?E&@e}XMh($y z5@$MrE|z9Jqm{FcW58fH26ie0+8PMs9zB}H?akmq3LWinwM6)pk{+hDl9w2D?AAVF zi~Ykq8VZ#zYpa=0P?sU(VHyGa>q5E3vBzvMGC=zx`8a1Vv#R&BR2Gz_0A~r<OY(o) zd(-YVZe(Hj`#tCWhfaGOHmxQt%61k-Qm!o9iJz<39$UGyPzq0rY)Oo`g-u#kB+YMs zYr#@Lqe;q3mU)LWk;!hLP$&R}LZOy`Z(e}%S{tp2fP05O1h|)IoWpcqJ=_3(R3ZbZ znW~s!)O^!j!~R^ebgmvgJH&^<%9h9&3W^Jd;v{&}K)zq7XDe$Fsb`d>lH8>+Ri$=r z&dp7V*6L%3YE6Xb^;4DKBcLw)J+x^RQENWRdHi<A?nOuL50}yx9kqM*4G9gses?C{ zgM8&1<G81Bw-^4g2$}sk$~qxk4Zv=nqm@k${s|r`;Oj>@L%18o`yL`hKP!$9vX(F1 zzRrz!i`kVNhI$*3_OJ6XOnzkz`ks<4?&v+>UBmv2rOsafsAmz+kOCsEYY<+xk&p1A z7y*)I&l<?XF0YJ3=qgp*RT~Qq1Wh$Hb{2C9JTJNmv^CYhU>2lUWB}+9a5=#{Y~)eE z)C(ZqnT&vrLnaNM2`mv8QAYVa8z^Lo97IS8&te)O<8T$LUKQeAVi5E*l%L=Hb-z}C zlvPnFt}jN$2KH}6$K&xJ&qgv({>52NRv6q_vj4&GsWvk(hdVDve3xy^M^xR0nqSaR z$zz~6(@`cAm|i(jy+hqm@2~GYDRit{e}33NB|b5u?Hx?SkaGYV)vkjOY+G<j5E;au z(kK=7l^VC6%nY9FUDXa}82$sljPMJYNKoJm%sfAEN|z~8d3O2*_h)By*J63h;b4Qm z6wLyTN!r~hsSS#sdnZw>)4LlI#ZfWn{d`iB92&RcLH@22XzJ>!mO5j!UAws{H*X;X z(YU&jc*Kmz%}oH6;+H`PjTo^|>u|dk2ME9wS0n;+tT@)o4wfUY7@s=j*yZhZtpu)i zbW~YDb#_q^iITxcA!O<;v`;WIIn_*1Stl5pDPslAJ+xJVyVO;F7H7CsERl*uQA%vY z8><|=g$FS_qYvR!&WnSS%d-I<6NNS4jpzc7{CK~Nc~~wlG7-+p?kL;#JBL|L%A%Ah zu{g+w1*$H`kNM!rjz7#=;?zAPEI1>utj5JzT=q|+4i^jy4o(r#*M)MrS4sXX(@4-s z7F>Sja$5N)6kCC6BnSmZzp9LlBopHNd>+C85kWFLF=JS;uBPpRk`@X1v~;XdqRh5l z&*k?llWdzM?v?O1@ojIZd!;Kkz3s}S?^|zZ))EZHqmG$y;Q8Ul{e$QG&tE*HK>W=o zFAsM2_ZOaUr?tC9^6h5(r@O`7;;0tBs7@m9%H0le@QA<Yx>*hk40{+rqKC*2Z(ade z6{jnnTCKiHPFGE}^;OApI69pEdy+`naX9NH+9_FaIP_WDj*>ENwQHal#?`LX=^LA` zp{WN@@rdp^JX$#&-t1TOc;RPddIIzc&m8|l=JR-tW}DV9i5jhRJ#Dn=6rQ{u$O_|` z7%G0UjH**2A{<?7bad6!($(uFsDZtt5@@pwmHHCWVX1eoIgI`*yD+>FR3O&kq*?bP z6}vdp@7*oj_RCat_M(ayWbdggT}@HCvXb;Y6{HTb<w>);hP0#|{rA@FEr>j2#RcSo z3siu}0o^>;zn?0QRecL>Z2|&E>EfL75cSa|<U}29N{TsZX4WnVZJUjd6je%w<f_~O zQd)hV!x*W|8-eqDxisaIIHY_Mh^iUDD)Fe|>i(kW46_OJ^s1V}Pf?Q)ZASRdf^CNK zg;254l42)Z>|{x?DHoeo6}t&P#!cv=81!f9MbV}0ex$nD1ey$sBt(4EtR8lg28BUI z46Ag(g`e`kS^ZFO;3WUAHmP7<UCfV@>TM-O%fZvF)=rG(XR{U23(a>Awa}JZO(Un4 zUfk|+BB(fzK9=S@c)<UC6zEFHXngHe@K)BR+%522CVpBMeW5d1iGEdzcaq{>jAzeB zAL5iNG@Q?`fYaZwB?udHplf4-)))*>=dBV7MJTMbumY0WG|&T-{B=3%%5?m;kE&*J z#vr2;gx`R_xsKsfU)>uR^Q!s|#YM>{m%(Yr+<!Zt+=V`E##I)5M6-rY+uLg}(iAY} za(33&iPlsPvTC0uG3B64Nfm08;QN?)%vAIOe)Y}=MLH;Y=RcpMMQbB^@G$+K&+eof ztq1V}?Pm?Eq2ngk#BW>~zd?Qc2SC(T(ON<;l~YyFi7FKE%XEBM$dKZ^Ke2mqg*>Pc zfY<u#Z{|ZI#<1*3L)$3HTL1B<`S|Aq_Y9D@Xkg^j6{E9!lyid&W2o(WoyqxonW#hi zj{Uh^A-V*bi0iqRFxWLQ=BaDizR1vA89JAgR$dri<-epc^X1Br`S~r(%l{m9&w>R; zzpdaUb#Qtzp#Cjn<m?M+pOFzSnwJ{Yf(C&$&@O-#?SenEhQZzhT`Ie&Kq|ODR0wTv z)J?w)3P@F4DbDOKO$?Gd9iml1>WF0p$JW)6|Bf$3T!PbS2J!#~Uf{?J+yYi%`3}#c zDEy6wj;O~rRr9GnP@u$uIczbaL^hf=wbbU>TnVuaWul-*H3utHk`;@S-?#}H;^^>j zc6c~FJRHS0(A4gr7^|p=Cj1J^X{nO2Qb)+LSuS*}7<Ho$y`_AjWJS8qku7eRB!1om zLLH=-!aYUD@W0I{-g@(DZ%3L_#)q>QpC9Z#_MVUE`TjHS@su9#z4jiT(Bo%r>6?Ib z!#lu5u?@tU0jWlDg@6-q0LQMaloE<c0s$`kn;ekkt=z*JW*}Y3Kby)DC0PQJUfNzO zZjj-B@#{gJz0GYyRUz9F-82<#nxSh0H+OLn?FF{qrD^0=4LWRr{+kL;A1;n8@|+W+ z^pSQ?)1}p<k`HltTUi{b@_X}0@Fx^M^w!sTrDCsgmQZI8Tq!}M3t*K1j@$IjBxZwe z__Wh`kHuaok8|g~8y}4K#)J8A<e^y|8$av4&6Fjdh|km|AgG?Pk?FsY(WqwGF*)!| z^T`;7x9Co@N#EpfTzL2e*rRcPuon4cL<I<RJr8i4#Xrqy5(U@3zt%B>G0qpeEVQo} zMqTyfzokB_3MkcQxd)hWFnWku!!#rCsQw&FQ-GGlN7$__muj_>WV2tWZAoPu2TtfL zi^%DyA0k9!=&~NWygm}I#T0#J5K9O;<D`r3R1Hp$d-%A-2WX*bVzH=wl4p6Gs--SY zfcXWF6USvV)M{vS9NNgMFA9CG>z8e~`GwI&+YG8B5DtJ{EnBufs9>Eqfhla&%*2wW z2+bVS`8YrAk4DOxG$YGb8EBfF*Q6D3P=_amD=)B<wOUP_Q+IcFIo0BzFR$zHF-OTR zz2cY0a~=pP;N0{*HkH}bm6GR$ivlW={}V^Tp-n6$>CztnqOk*NEMK1BySi&9i9Pf8 zb5<qJ>XHht0{TFNoklg=Q<*2gzIKRFJ7Sni*<>(ps_NP@_85=|c@xI`CIIAPWeyfx zG_q_o5M4xW&oT(@hX&6_iaZ_lKF*?17S*dPm)nmUV7XLp8#unWnJ#sDoWFhl{NO1k z$1(R}c&1C^xL(rW1tx>)=|`Rl=)CXjj%6iE$v}WkqU9Y(q+o!fBNkdoP4c0FI0wz) zBvOld;-V)fbfv%8`_FM^RG(^d_!#qBVE7@N2}R70I~`Hb@ei1H=(3OOj%WR;aZ=%! z=9F^*DD^XDaus?alCnsu6Cqy9ZBZAk5Ngp~52qRX!0GC9Rd>dGY`*yMX37e@u$pOo zf?2Y)c(MNhn2Lh1vm$^`&XZ6_d0UP|(QsE5St-Ve%?G3|hGA`W^PWniJQ6XqeUpJP zW-l@M>XfQdxE_g^t@S3x-OYz^nw{lJ3wwBc0|=dEZ~J4)KU0oYp_RBc&N0)&L>R@O z#p1<{P8e617{BFyGe{B7_&8S%g#|{vMc?5{`F`QSTj^yrJ<z|}5Fi|jb0uyr0b<xj z^SgREzrgGLnd+lr{2X$&Vo`rQ&hO{OR3V7Go{XnuMjgD0bL;(<{2j;VcHDi*+B1@G zc-1-S%l}}j4(SkBbMUxw#c^*}UTe;=;3KcH6?Vdv*VsyCAHjuadiXJy;Zlv6J`TWZ z6(LMU|5~zk-)H6eSzv$TwX0XJf~lu;;vDhH+24+#NxUj4=EqzgM#`zenFPAy;jywz z14_agpEV}aG3Gn7vl=8^;1i`w#gK{?mmG#c&)(*gL_y7_fJo<c$Dhs`f;aHiSXnpK zIn76yK4v^Uz~Daqm{2L4Ola3dKNdu_(J-wMbO|1hodVkS&e<ImcAv%7JtVt=8Py|S zFblN%9BX6Ho|Sqb3*2EPvU0A6q1HhPwCN)7muWWP3vQJLptMr5!5|S>VLMKMADS@u zROv#)D?sBq%qGcF@~9aT^if&V=YVXwAOepAN)L!nVKV=~ITXrh9~gT6=6g6|n1ol; zoDVz!v!@Qs*BRP)i%997Q-n3YpeEXV#|lQJB~o=cfrPWVOhui+NEh<?zA+1N-6jMA zvR(i7x_ndv#_;sr3|d612e0^zF<HP^jF`W;%fnAbuejCrM{mby6A`F7cEkB(Hv1x( z<eE+13v9Le=4QuKWy$85Za98vr~|M46}#xVzk<Z9DX1P=k7-bWG<q|i5Cuw11Cs+0 z3@3*5!aF8r&Hh%St)?`7rTMfvSuA;EXC+o`+-{e6dcHrFt6{i0b`>M}-ll3*yW;QT zCvdkg=3<Hz<-6!q*qJgx>lFl&)?}Jc@F>rQC?Qwse!?UX73=<m&a#zRRre0wN({0I zaHmmD_W!%1UaindEDABXiwxEN$<kwt;R*lsC~k><n0C{in`j(wuPDqHAFD7w$rLjv zDcxAc0x_N+RB*@_l*nYvR|ygy2{jq?&+`iuIkDp}r!|iAM@P74=s#EUay%r$DVPUq zdpp`F@eW=*+j1LPKPs`8B*c&0c@l+^Gt&ocW~d6=*z<{?vNV?zq|sA&0eDrZmmkj; zgl^T`p9^zeH;<w<*bYSRVc8#50I1qXokE_C#<gzGeO_Hz7;iY0?Q`F+Dlmk=y#Bq% zQ1o>ZIrW-1s(+pltkPzqg<jCGf9al7<g?e7^v0nCzNaJ@?+yk^^Rrz(v$3(lLWb;u zC%7)y@~+^y){z4eCIVHs>E8!%kj=N-NA5;CM3+#f2n_HVxx(I3QZwxW%#y{>S>8Q= zop<L`I&?>EXZyFfliWy@xE0k{+;nPKadeS1TDA~T#N@+1?n7RSB^AMI%>Omz)aXhX zw|C`Lx={wsHtC^_mpq>KU<NZRTce<Wmd6<CO*w6$`cK$>Yb9eT;3bDvW|dxTtp;-c zgb((j3LO;|)oX})smgRu`n*Dm$r!>8RU_wYb*Awzd7*`prrEb7{Loo=J9;_FUrv8O zc~K+{bE6%ok~l1F1vrWOy||tlKuL^W;fZ;lox;x}M~a}(Zh2PpL6EqZqK6Yk3f?R= z<g@`SqtpsKbK4P<gTE@PN8(IxX5&dh{7p{pfD-dwHa&$?-MxF~7x=BDJ)xxlRA^eb zzUIdV5fD+8rL>c}&AbepyKbYeDyMnYIQxitb(fl8qk1Lx9|xB9D)t?YTqcdumuh$2 zn(phxx{Qw)`QZ*7P?T;kD<YU`7)tXLnN5e=L&8u52si;MeI=}O=)whN_5%UFcj>^J z<_)c_6nQ-h#F8!;#`7sIKU2^Ngeh{PsA=GmiE%0!2bvzj5rAn$>{IWbVpZzNUe-Va zCP2Hjc@(gL5t_L)a@SB$4=37m4TALtl_>p@{{~GQbkzXZu$s*f5j()@VzjbfO1O{~ zK^<+0lq!_jf*e5jQQ=Y+0eYMXg*?rRs?Y%wz`BDQM2<TJNWWE5p=mjYYO{ke`8v6| z1eoO2eYG;+q8<j@k(Ued!esF^1GQb5WBh}MksLJ)1f?}rw+OH|p68e05Eo(zu5F7- zC1J-~upW!gdOfovt*S;_p!3%!sTGv{C8d+pe|Y-X=niQM+K#@D#7iModg3P+rO{A$ zpu@ViUmZh*J*>FTyv#2ykGHqgYL*c4TC0eS=xuv}p+5$ee!iLx4S>QV%4X^ilq!*? zLa(L;h7VVVUE$#?j+A>ApThE>bdKUxd=twimxRQ4Svnz9%j+C?8lx)Uwu$HGvfPec zBAH!eI=L82Z8=|Vr+kxZv#Hp8Eh<I!U_3fSGj6pwbcT~TY_%)O@;|w<e5J&F$ASQQ zC>T)NR1TeXK`uY`Qyc#j?a{TS63F@CT2yPINw<AeiUPr~Ttn};wecW&&}=<yeGySs z<V9g_p=|9ajoLM?z~7<PY9VP?zdU_8U0oP85px3Txk6AKUEWqut#;@8bm7B>v<vQ& zyG5hrKR3C&+|66h>}|)?Z8_%)i#>qi25pe=x@5c=aK(`li6f1`HXRn>R+L3pXlt^u zpCL?zFyRphDlRI=1Xj?4-B~ETC>MBZ=6`Gas*EXIaVOWJPC(KLb!dS<R)t`6hgO%i z2^x-7G#@piQarl=lb>E1jtLKnv+)#NMas}rH7yjNGsFh409S25p0!lY!$;RH0DJ=C z)b=179`~~7-DcEyhtWmd;yAxMsfc+Ly7j7-?A6}&;o|%XbDpZKJnt2eR-gM!yw&Ev zE$giTZ-4|e5w^87V&ZJTT3sQad!h?T`?AJDPP>ZDQ9K%(EBI`HaoMt2|7}j{J(?1+ zFxGXpsCVP(pF)@h32Lz{{f8AOfBLv0rS9*a@$6s)Vta-8dkV&^fkH?+A{-0F_=H*` zahNKsC=6e}hcIkup@rh>#X|9&=z?}BLKW5Yr~#8*)T@569DV&s<!HbX1l<1Mv#7D- z3eWscS%P*He)Ab?!(qbZUF2o*6hq?{=-g`kfsTiC{<rPi;~WEEmU{PTj|O(G{O5@9 zen*7&Jq++|-}?zk@(xcvzoqc>pJTuW9s?wYA#0sekmlIC4>ehm#i(dcsS>}8qSpqz z(z=u$)MktMllc_$#LgD3iq&OGpGwQ*O8hL6Eh`YR)jpz(i9i*n`;!QmLL&K-3Yypd z5j4w!=F_Zu_6ckyQnL6%N2k%{r!|%Md_{?}J04KzADAvLPm=ic(<jl(*Sjyidm8=Y z>Hhx9zeV4@e){x9^mzZrr_rk)U%%Ra3g374{x_nq0ny{vFaP#JrkyU%vPs@iDU}t_ zH-G(c_x00g@A>OJsDAMJIlzZ6Zw_`}N8dmF`|fuyUqmnW4)9+IYO$>aH-xJO=Q91; zq)253frOt*kdtvSGIj6=Rr!vB@f*vBcVq}rOKZ{`;u6HSgsMn*L_GtLei20amhc0I zI{jY-&hUdun?~?S>}@!d<QQgSl<@fKL5*ODRaQLOXc1~3W*7SCiTUNo{|OO9JN1mn z*mTO1xR<J_Kmqvy4|=I%5titVp`CD3v4ilrAnxZjJg=otT|PF1a3iW3*v;vDbO6k} zNGLXo!^UW+BQ>d*=4wvTh(@jT^)za2_}PBAnwo?}`{>cStq=2?t3O&#zw+vGAzleo zb7Nh>Gn1L>Zmg#dy{aYjD{l(kqhIYBSHj3JTo1o-Rs2S^@e2W{(fMh89Ur9l2Vgnr z^cqg9@;M_As4e@}Kt&^zaGzanx;Qu7j#|yqhYXS=1Xrej+E^dIJX-hZ^5avNERSrz zzN#e3k55B1@v4?6@~BLZuR`=-yqy=S|1OObI$}0PW;#ahe2lya*%maQ`VN&gs3Vq; z8kS3`4cpy^6_g^-AyRpDOQhN;lj>oJR2s7~u{4BRo|`M|yO8hxZU$byjaDFjAEJbk z18rc%$2}#R_;XGhA(0X`i5BN#q3qU4zXu)0KEc5&>@?*YF6nK-PfLZ6l?xV`Fy0E5 zZ<-IlHW*kHoYFAiUPyjY!3K`Pw4j&dJAl})QM(}x2j=;c#c$Qif9BIMo0pdQX`$<_ z{njMZrmJDtF4!uFCAuY=Z~}SJ)RMN=wgVjtR46S8&$4bdob2mZe9lu4=6lh$+p6On z0A-*DkuGC~&M8DE+Lt7FZ7Wx8{pvi=CqL+r*Zy+maE!8uuU#5Wo+=Y?jqI96X)QRT z)|L|NB!fnK-mN#i&_k+Qz178_A#wNyT)kfPQm~>C#$BJsgI085odtgEC}{waku^{A z88I>BUlrOS<Q9rRI2H@;6;+8Q=jRP#%Ge5!FsO?mLV+rPN~gy3sp~jFdLTpgb>75u zypt8ga5sm24hR5enY3Dopz3;PE><1k<`n;+z{>>Yh94;V-y+h!h#DF1_>}c}bQqeC zbY36Lh6>ybqb|A~!<qRqI>UQ>FU5^gTm{$n8aiX#a!bMuMKNMC(nqdRMVK20jZrKH z-e@4rrY1|R(KtIaHT%6k8m3vjAQU9mjj|7&u!(Ss`7p5+Qyxt9I%zw(H>H85gz~3Q zkbV9i1zA}^_DVGTbaX~D{XK$@D1Di(bo0sLk64L4;K(MOv79cwUjUMYnrJGoNw7*R z3@09wGh*!3vs|T3viM30{gpwgXdw)`6rhWt;6MJMroyLEnT9X8)zF74Ctf+$@x3KO zmE04Vu2t!vS?ORyHN$>2ww`}(qe@jSHMSbetldJbYOZ3Q1d4lJI8;GC3rWT{U;&KK zjKn6aCZ5+n^4W38nEFvoKHQ^bMKh>4rrl8bLX@tcmWMV84|i285$Qfu^6*@dU>3li zK8}dXX88tic`T6?=~SlI#|kWRd$ezX^6k;B^6FkSfJSJua|2=AvKzJwVK5a4zlSWO z5W>0VmkY801^sRQ9jA*D(f$4U%3s`Zn|yD{>(+!@Net73`xM^sx5oJPuJWr${VN5< z2}^6AC@_vqR=o;oJ~U*`DiL$EH2zEl)qH#zqDx5>-ye_9v$H(w*&J*toDJV%vshux zTAC3E>b4D?tZST`B)cZ>i;C+^a=MNUDx%+W{ujNw_c{6vgL|7#`zL*Euu1;9oIeI+ zeIFs?v7t(;aHI@Kx9ejaWrK_CvQV^yy3uGp81OlQEIAijUgAZpg=WlGFqUU_oDWPK zpZ<)kNky2`sJ1C?0b!|R9gG*LZ?;uz09%3qZi|v@a)<$%D2(S~9dv+ivbp-2*}SO& z{I($p3}DRjJf6H9ZBrcz*zw8+ZAofTjgG!j#JArpJcEOm8+YlQCSV9#<{&?r#ZZ-P zDHr)t5kPU>Nd}Vy*WP#1GX#&1Yy+#?R0g(7Oa0J&(9%nwk9aR*+3pJNMb&{rUyNtF zquX)|nDaVKwaDIx(Ic1e4sPuaz&B*uP8{DV4uXjpQ`-Xv0LuQ+_$|$^jFY2_OqO1+ zmolFvHa)d})mAd-dH*@i=q{PxtL7~XpNlAs_c(g-@_^WB7!pqZQEe7oWFvBynoP%& z?35xqv#q6{s_}Mt4WCian)wL9Yc*0D#cTfd`w7m%a6})`ihBVEaMw`sV<!qIuY5Zj z{%CsEe_go&td#h(szO!8r1=3ax?nNTRmLL5wm?P5dm*A6$kgXFV3P(f*asY?jyoyy z5#JGVlU2uXD&>UR^|iJN%nC|CEa@W%Y^<X}{ENR(G86h@#alWSE0x_x+r&s-=x7a= zuLSbSB0K5yO>(;^ob%3BqGN~Yn%7s+Gl%e^QrWh@BWdLVG&^xfNV*dZG5-tjb;k!O zK|@e>BvL74F4*Lb1J&T9fEO5wB_Dhvq2UsP9SQIE>hFWS$99C!iDPEMdw3)C{yMqx zF%EdlbF0#Twh|l-{Lfc+c&Ze>B=^&SE$#m8$RI$vh*m%a(ZVKS^yldk&u{!JxTZFs zOU@Pe;qihUZ-pUaNK4#J_@38>XE8q(MrR?)a-FqpTc>pPPTajLwL1G!#ysydF1Iot zxQUcujv_9b4%lo@Fw{26f*AivTrE2%U?IP9J^l-QfE^E0d~2K=EKN1a(K2w=vxq5M zne~T;Pc`&HZ^*nB$d+#EE=0T(%OYrZ*hlvX5D7JJkfclK2x_j#RjLkMGP)Sg2R*b3 z1{hO}6*n~QfKy8q3D9Ctw+|P{o`0m1?ZUIHU{9FI(-@HJld69>b&jqgocPicFoL%S zTjbyD+=!vdltpTda<>E8v|jN!%)}9*#l2-uLGR$p2$lRFNvP&IW$eK@2(U(!EXLoC z`#nMdXA-wkj*W)%0@3>YG!3_<?j6^;GN>yE=><YMgd@pgEP=bUhIGJ58*I^*vA9O} zqNJ797ojYe(;rztua?i7&F1PNy0!aT#-+8zjATqOC4U6~zX88?n)&x**iq3R_AwO_ zu!8+7v&e2%)Eq21CJE!tzzNAz=6_aHoVhFUL$gIMzE=?Vt0SImtE!RmO~dNa&Y$U^ z-mc;UN4Mewofq@LfXrHw@$t`jcjlhVkH_PI^8F0tKoR%r9T4Y7xL7F`jILNFU<D-R zx*csX`(ix%L750{OBCxy#?;PBt0+wk2Mgb@H~>ySvA_K46Y(l-%a|B1E_g_WjmjmF z>0lX;E+^YFS=%@`My2R?C;IUXS!!jNhozUpsc=Mx-sn-I*FWvgqF?(HIEW19g>C1d zdiBdZ8=%5gnD0R8P-F&VL0NaU{fMLtJs`D)6RSZNdRUjz1VCKiRdxsX0?0!Ov41{) zMZIv#v^E|*eB?gzfk4Hzhm;h;ui9E~HP+YHTZ`-WM|7EraNJj4fA!@Tj~ebX=tSjR z$+G@<eW6ek4<FS$c{0?UP*<?Je(J*rb}7`I=qLO8+3xfGP4tQ_rE5h2i;@OLkLoF= zx&W@#BIm`;FY4YRtlq-(?j2hFfyjE=bHUruDl7{ZX#s_SM8Lj_-YVSwk5=loMs>BF z@)PZlW!=z6GT6H9ZmIVzhenD=1;#S0Dzf;Cv=fU}8{3|Ba{voJyqXK49c=VSQ&U2^ zm5#{Z7evXeQvt?;DCZAwlrDcx(PVYG<jr}1axh+LdneI=q<qx)O=y3|i$IJ706V3M zcR~DW4$}O9_E+tJ;BK$(*1A9nm}S$`eCAp~OwaZGph&Du$^_ox2|MG!(13;79n4{O zb`CJKEa3zLlt*5`L9WWJVTxBg_$vEr=O9Dp7H*4sjixeX5bSWSq>c=4K{p!8lY=fn z>rIO(X<maTtvQ>2EANcxlnuHHz~XY!M}~6=62+L)!E?ex#75%V9S_NSq^{(t{^{9F zr;m$Hh)bDhx8pE545FxsuQ(Da1Z^c9jf|2!&7w@%i11iR1l2g1<QkT?#q1j#C{Dd` zoS%%<ok4KCRL}_t8O!oS*L*Y6QNJpMJ2-8Qr?`8S#HN??8D3S9BI$WipwG-}F5HM( z(f<P(aASRa-OoZ4p<Hksy~*+J9@FMTPx7KW?Q>|G#h>dadV&|}FDJPdq^5zNwTAhK zuS-9&tcNSeH5l^@5XHF#U!RZYT#uTcSyWsWvwRqJr&)0p!c~91@G0>1LyDwUz+&%r zkr<PFFhDX=oPA93wLd<E(NAiF@#*!bRu4dJJ@lb|`8B-$p+CZWLRj(*qgSBC#>E-1 zERcZ7v0^qx`=!yP8rwoZefVWb%oN;tVNi}YPhY_ss|~!C>ReV&s=0?@Q2Q{?v{D17 z!sUz(O7n@}nWP8>uo8@64(=)kL2Rtn7sbMpnWc+<56>b_1-9kD72rj^!xm%$Hjd|q zjD@#C+&TIaoq`8rb7;=4j0yV9yvba&C+79>SZ1eS96H3SxAoQo9Zgl|wi(wqek@v1 z&)1<+>px_Z1j;au^85qS>^z@o{jCjmg5D^32L_VDp5O?EC5;F@N^RpwT;y+WTLsCn zLLGx!4^}#eb@?a`TcF_p%+ARGU3AY4!^ac6bjgG#Cal}+&4-f(HfJ?h{}fh2F#!Bt z$pP@?7d0m)g6YDh<N*zu8JpF-L>4t8gyA(>@(m2ZreRGI>8~FW&WgRj_joCPi7}?f z!%E~OuhG~qg;~*yuOF5>p-`2b`0{J)1aUJ`<FCrgD89s(l|7OC&Gckd*cCnc^6OHM z2=5gRq{`Dm?f85~GE4vkiByRg^doRORm>w*!nin|hI9Pd3wGcG{Nr|NSY5{P#R~bo zs6NqQ4BO(LUZG4MjXemiB@B~bktqxTQ^MFP1~FW8g;<mZCV%nJw}xdev_&w>X2_d9 znN=B3WjYHO2k4CV)v?TdUnKX<s`fZcijK5r)0Oy@W9nwkbc&P}rbSK*c9wRud5vzt zzA~0KHe89F+)G*!J0lE1nUrj8qTX$78`6d~5<!YAcK5l%=}kzQXS$RP+$;4Lq4p9d z$U?xVP=8cfmC&nj=R$+AtaIA5cY-EQN?;Qwp>maK^B(+E$D5$HdI+n~Ez>3ptTH{+ zg2n^nbbp0$7p6Ksa&qmf4WX<^3#XCrb!kzxG7Ud>Fo3CwZLLQPDTyw9gi=6X#I#=9 zjyz>{Wr_qX9^)xi+3=E)Z$Q=MWc;ZBdMBD@cprS?D?X%^I9ZR6=QDc&<Ft;;$J0r@ zr^T&2HyqFVgB~7Wl%9#hNZ1lQN11?v-yvemL3Mj=&EPlTzazIO>koaEqy`d{lWj03 zyCH{Eyg)1EO}sFAM7ne`3Or$+0N5&nE?ZD~GfgkDX>TP(oGJ_ZDb$^2+EO5Mm?`U5 zv{r7Ak&Ot~CtcDBCD>N}fkvMM$j#9~0M%Zn`7z87Toxz&cgXjsC8e$U8w!kG#w6g5 z=cDn(C{_MI&@bRhtn1+roeJ|Cm?YCaS_?{J|E;Znwf_q^5N<}Z>>O{`fSZz_%79r^ zl~9p4!xPj>4#wkiGy&}9y&Ts!8onvmI)1_%c9|gMSxTqpGg8l?erhV~!ufhc=$X^D zJT0AE^l0nd+Jd^*(J}m|<~bdq;W#}f^&E^wj%$O$n`X{|E0HkjE)YtQetb#3+1TS_ zQtWjjT;^=K1SdbFqzp9NjH2f>1kedm`}HUtB+T^7@tonpxDEQ<{tQDqqg@k?feHZw zD<GdzkpEF>=qkFNn7*r3u{R#UFwE2-%{k%>QgPdkva$YRN|A}y><rMJOvlirp_v75 z@;utVl51a?6Wy@Y3C?`d;L$n|^P0#rh2v$O8P^hppXt#m;WX$}QFRzmfJ!%II)`}a zs!X;sD9-vPeoMbq;AbjX5z2zzd9SKsSp-i<R-CQ~R}nsUIn{#kDj1bT$zb0v5$xh5 zu(!R^48)$WwZaD9j;FYO=uAp8Tf}4un0e5t7*?eiLks33MR|B1KYSG<PtPS)(7&?u zUzZN!3Y49#tHv0(m4p7R{LHm$z6uTDl=WQ`R&z;z?@r#rHNAcGiQ~10-jw~o@y>EH z^6jbaz+9RiAH(?LUWa@hgbR$gO3WN~>Wh>4AR6Yw@sz_>0x#x3L%HuQ*O{WOeMU^r z_|a%I{IdEvnnWqq{$k8DlR*_r=bKv$7LbG4Ft$<BmdKJ-SqKDx7#k4=+7xVT;A2<n zTZu5Y8!fzhHdr`uEilfDZ+>>m=s1CG)ej#NihDzON3<ke3imbxj=1eHSJ5b?95Lp4 z{=jQ&T(iBZ<)W?a^ps|xbb+qqqHr{aTLln%Y9wzHLd=L<>b_c;U3|oVVQwFS#z9g2 zjtDfo&@#xxUF5!L(>J$~5>d<>lq{jsU0??z^p!PP2wCbR6A!fg$Asyp1Dy<AQRDHY zHZw}Cr2^9q4eBu|0h%0YyLZYFemWn|izwiq{f!pZVQwocK=c|v9&j`S_RhXU=zCYS ztoJkU{E;GZ?M4GMPSA_Joq_!goV&<C<|bR3t?sdoW0SA5FHwRf^c|=@z$=6%MLDOm zOp+0^e2$dBTaQr=RB%kQIr4*}IjL?pTH0`_ukV+AYn4tn%bnHAAwFx;`HQR<@P=-R zmW3n`6}RuI)vH-6zrSrJ>#dCkz$jKX<U^kkZeu%+QH7<ZQ$<8?MZAi&>g=~V@|E@J zZ_u488T(-5P&O9{L>VYJ&Bruvz*5BHD8(z_vm>_;Ph8#$dxAziv{x<jw%2tr-nja@ zOo9zu=~!CAd;7x|o7~WIzTM#pamE~!z3#f_GzClw_zQPEbs?rlSsCzG#^<UKcF~Mk zMb-%3%Mdpm_yMT^81QNe(5&B=HtJqJ(B+)4(Yo$h$<8oVu}3Y;PFC=^;J%S~1BYR> z(`Y#EWrJ-#QsURwfnctB9E3F@362VtN}o?fv$nzcXyJ%hfdUKL?T!7%ZnL>5NYao_ zZELKl!trRJas?$}*63jcvHg*_uzzJeJZ^5N%lOc`!Q9A|ylC&~_jtvHJsp7!R~X6Q zjX$b-sroe*6!PkP)HUyfg*!}~{t#Agj|LqflvzC1b;IwRjG`<(PFw5in0!$4`4e)0 z%ka-J?KJD_?ndJw!9%qWl@G(E?IZI6fqDqprR=>deU;3o-<JpQ;;^re?3{ms=@H&z z%4f#i%gtwL<~{E>B$LoH%)@|#HNDj7rO-%88(N}FrX{&)ega!MNZT^h42LD)&@}y$ zW*b_7-75m-pn(5qm)tBno}*`(G8inn(`>?Vag>IfL3hW4`EaC#LsG#L-hH&eV8E5D z?%&?WctFOe$K<9173Wi^ay*|7vPm39`!|dCbw^oEiBwalbswP7Ea}Zla^Q*{yljG1 z(WdZ<w%`boiV&%0F0C$Gf(Mhz)zR?@Un|*tJ{vdq+9bkLymQ!BS8G9Fwhtkv-m(mg zuom|Xb9Vt_KrDK&Hu6D_NQ&z>f~7j`V+wh+teVdze8+*W!Yyfs=c9VLB?qIdpx$Ym zLN;%{>$J)M<T+03oJ#n`&RYDXCN6Pxn!4@=^WM(cq7`}(XeX4A$X1gt{RJrBc{!@= z3vWr<SANkeh4rRS8|vhyPe|R9P16&diwPeoA}JSLya5`rIR&vt3WMlg3Ej};PgjRb zS5xcwQfonI%B`vj32d`CgMPPN7I&I{3h!`t%0Yg@8?@Yt$N{Gz%7HOHr+gUe0UaV~ zG)5)8I_yO(&$rjh+GueRg$2|8sMN9m!m3RMRo528m3VG%hwNZX58DV7orgMd(Erw- zoxMCc0iKQ#uKOkJsRMr_l-&r?YaOK$XsAo8<DmeSaS3X2k-5E9Zf{Ui9iO5*&Y8%E zMHONHGnGqYC1`63)j!*gTF6=x(S7sQr2tXNyt5~xh2d~kB9Cn_)T?D~U$<)l$U?0w zJOWl7_8fV30e<?Bri;svlSVvQSp=qqj)!+GnQHDuH`_|D8*rr#h>gW~J|(?JoPo5Q zM%}b0#HovFY4W1i!H!@avI~?XMGy;45qi-pZT-5ABP1{eu4H%zdNM<g0ez^N3J)Q5 zl<m!@T8m8)THwvksElRF+|f*Cmr(}r*dnIE?iN~&1;+_Y^n-PVbcv*FrW6%f!YFln zBhYOtW~L-&Ruf>Of&iwVCw62eJ>aqV)-~UHQZ*^hj9uq#g4-jVZ}zX8v+7Myt@vRF zJtts;RvA`bf@n>X4O=z1e2JXLje}qi{M$4mDFGLP^hhaEiiJ5U=2Mluh_ba}G!azK z;dqX^i}!c#>@c65jeC1gr*!9yfJl1@yafm{>}2Sxm53UF3Uom&F2}h^e50Ez(m^__ zx(8<vC7xn34oSQch7{128br!B<whN)(hr&EA>%)6AlB)7u_sV1pOx<Of}Q{G|H2A* zUzN)P)=6oIpXA*!8vx-T_wwWU>8ZK3(!<?Uvb>rV`ZVo0DbZ~UB9ZddOV0qNQx6~A z_O9Zc9Xwj(#8jSN@o+X!9K2y?`sY_F7H)?ZYzLp-q)?Wc>%giY<2QPwG;tl)u-(+- z=FK7;yJO_bGd$I>cT^a~t*!XRiJ;BAU-^ylh8dBq)1@+dHK8#|P149N3|$dm{`Ten z_(Ld_xi}**30tQ(M*}htLOWfuzF~4ys7`Bq#s+?fc4Y}pDg8**tGm0zMGq&xJ&j(J z6%S!N0(`mf0(1|~dp{RZG3eoc@TUii3;z6k5?3?oogFiQD*8_o3C=H-(1ByGr%}>Y zMd+|I=&67BUnr~oh2n79ySkC5=&dbn1Q<pk0+P%Ch2F`}=Yv9OeA@b%uVp;(INga@ z`M)OjCfV-v)EQG;X3tnxdSWaB1Ybb@M42M6V!QD`YW$Tvs(|i1@a<wOXjOgvC~SVf zH-EakX#KK)Q${bJPMa8}47RsejN4r^Mt70;cY$f#oz@RWl%hZbOUXEBkQQ~~w2Py9 zvcbWLp_333z2pn1#(-!3)lC^+JH~fmJac<vc(*8_3UBLvP)l0+3n}8ZKr<#l26!Gy z#z00AWn%nlN2fe56fJhO292x$MdgXHJyDJPij3e6{69J!jE}QHbe0c5A}Ht~&P-Pw zZ^E0v!|gbYQ<Y0C_ly|Kr2n4432*w$LgYJ@@rmQW-cX!d$*bCKfCNmC(<%%K2$IR! zNaral@uD7>vM<uD^4ommhEh+lJcHGK`>gPm76xeNJni>-u<O8nfn;O@1KoWT1uBdS z5b*O8TlNOGQsA#_P)!v*s|bDXRElPxY%AzJ1J<&niIOk+t)2Y8;hV{eevvP4h{4(` zFBIdcRJaW-lP=x@-AN?(LNB31mZitXX&0S%)eTO@aySd(T`8gmfS%>==rT;t&>H3x zmqX+=x4XOf`0?i6-sY1hn@^wGM&0KnPTm{Pb*5Ijkji!~j@sHCj~d4(`hhB;!k8)k ztneyJ@!A4|6<*HSi2DW4SQi%2MvcfMjFaLb-pN_P4FWW$Ed{#15IFOM?s$%|?RTfs z>{7D?SX*c$<=Sm8Vgm|DhzY1gbAaoQ`H`wt(6O9MhV=OogGV{HrYe8{^}+lB!gG-e zGBF{Rq2iP33bTALfaWOm1j&7>s%A_qFB;TJx5PU00>aLaGP+ZtYh;N45kg;wc`FLr z5*$PknK_8gLP0Jd#Tf;2q=;yfOMRI41G`P8<KDcBWE`1(v(jn7;&n#5dhOOWqU<>8 z_M-fxW-nkfUbww-)Gp<HK=v4Ea75nf=t~^a4yqhuq{_=w0;;vvYw)UvvKgy!pr0Gs zyMk?r?3mb^3~Fyox;b;rUR!U~O2Y3T8y@$v2sUq&ac8LLiZ-OMSV<wfEZpWi%C**) zk<M96)Dz`j?O9-&)%grH^0E`9b20kx&KzB)g^NxmBics!W@>lTOWHV@j_!@>bvzoW z>o0T`2qfawk)BYC%>)R9S<-K$6+<QIHRbDJ4rgJhZ;ok<ex})3Og-Jlun%s5tmn`y zNJ(~;d_r2YgXtx2D~?Q+7<ASIO)WRAB_NvDqne2*rGrV;fKAm5m+hPkkkyTneLZX} z18d@v_7Z3Jex(CTKMmbi02u8hVcO`+Q4A|yb?WB6+goMJix?9}d^OGA_Q&(WN#VMD zKNyvmRllHhJ<Yr5IHkSoPNrjJ&q7g&n6+wF+(%=Ei9$dCOf^K}mFTZlSQ=(g4ecMY zSxxDE%k`V&2&nJF9JeeoI0zf!6gdcjc=!*}g=&h@R7g!?hKjb|X!^}?)c)1icDJa= zXl=IQ8x~ek$3;&z;u}Esao)|?5v*UBSW}rkajOn0FQru2oLW0m&5d<4NL>ED9^Y88 zmKso2=DobYK*K3%hWD<VZqvS{sy!L&6h~N)#7Ypv&!@OU>79!#8+*Qr5eBM?=}j(4 z?|(3UO@o<F%PbG$kXGE?(al}xP7GTFb~r2D`c!%&t0fi9O4$VTXNE;keAKINrlM3h z7x^9r$b<FVnawyj(2Uje2xi&xB^cz~rOB2DIbMm33;EqdFg2W3C9dZ4ib;@H;N<uZ zqu34*<#*r`$Cq|~7=vSi=p;5<$|Jt9)R%HJie%O~m->)$I6qYBq6Rl39#V|CKEjJh z;??h%W8ibki9Rw*$u}aM^;*agyo%t(#w{5SQS3m+!CbuTX>q^;A}4w{XB0VCEJIb) z)df~!D8TQWI-hMz<U;(fBEj{#y}A&rK=P7cFGAcT`a>|JPF{4gN&Xs+9`9afqf_PR zYBaKU{skCP5hftTe=9blpBh3Qqreu^_z)h(@(KqpmzvPn0Ilo0Y3H~YWX0K<cHnm3 z$A_aho#Nk$*E4!Oi`~8`=Qblhg0%heBtZ=kQN73qump9uk9om8bsZT3Z1<OWzk6=j zD(aweI<5;B_(*L_1+U{_cAn!gmXm?>)G{87fuzN(p^QJ_t2Er4(m4;60;7`w+WtVN zPGLPF%5L-xV4pAr7$$o`=!A!8W=+%W88&gl?&`<T5IHN3r^AfzEV*td5Gs-i{>gNR z4``SjGo;E=ca=7T?szcByE-a_s;0{rxSIIku&9j)J!L6cr>Tm{0$t01(PQR<Aq65r z$>>;*L5hd{Uo$?c5ZgY@M`XbS_)>kj$oXQ}(GdD|_9RtRg(&HhMpMr!rNxvU=d9zx zo{?Drl%~dSn4=WDkt>E$U#NZ<PB5|>`N`9ij<?|J4#rH{*#-tC+0fg}oF_vT^T(Bu zC6&=U*1uLIT@<ouzZj3SO)M2(6S%F>BcW)g`!KJf8#pk241ii2QM9|ez40J=ytTc% z3*UEI8w>8n+U?q7R10jAG5ZFaDemr?M;j0L5f$2^NAOmZ+R+t#tpbjg8cr!P7db}H zM>F6^9mcctcr(hHWM7z&+<a_)IFd?1-YRZAQ?yADXbRk^69dcvFcChR+M9S!VW>Dx zSQk)*GNHN(iW0S@C>c}~uf7}}j|Vc`wR<Edb{vi}XRBhNW-$S7U<8su08I28n+BmK z3}rwLJTr4o>(L419lQxCn)oG&pQ||f+4OWycKjIK1=kxHX|e~M=8My)uUd{%x#Icr z=5jR4-u;ciqeVCfVuSo`KG@!<8<LPs2BTWmRKFN=mQBMK`p}(qt--}GUj1l`4sHrW zy&=zT-8sd?;8*RwIJn`K@N>$JT8?q2DZJL&JPH_iCVE;WDkccDQ7=UU!4KLBT4+D7 zwF1_Hfrwr-zzI*u1b}OQwD)d9y>D`WnWUfk{%tO`ybvT6m<EoPeHE$88CkRAp+KPb zEm0AKDYnMoi5xd};xvk{l`~q@cBC;Sh+Pi(&<kHEd>HrdC~|_(h9U*Xd9uBYzqHqz zej1{&nu>%$62<Mi#SvcH>Z(=ZVi-$#nNoutrslQ3l4`-jNK<Q?HyM`?Z`{91_mJ>7 zhP`n&+dRuBClsueSO-Nc!#7rj2(b+OEM^;eg53dLU7*;9<}E3kD&mpP!gqvX`#32v z?@D?tp_aNB2Qd}pYc$PPR}~Ay=sYVh!xqJpf>ZNUO4Qb!%JW}WCaK7LIlvM-%iH4y z7C`fF1k3k0QFK7!HwEw-pKv1@7D~uyS$}hrmOK?x<EluieGs3e_DbEMV5)5B56R$7 zz6HbP^_5(gu9Y|gfD)OpX-p%4cg1LAI3Hn*E)q@|GDxj>G{Aq2p`pD3OG`1iC|W&6 zB*SQ8z(BBlbZ$`SytNrFLRhgUj55!&0lk?xL>glbSgt0n-Pz$`(XH8^+bQc~xmQs= z?J!6GdhfJ3{zvSF7uUunqa&vhIy6#fc#KtsXD&J#3e#lcq@`B4?L#VX{s0fHuvb+@ zZF)_Yg6iaD6K^W-E}+dhn#YVQAT0OC`u~Bu)XMHtzE9LGJgWQ*hiVHV>N_?U#9<@a zI$)}+y(6keR&_J&pJHU818C#fc&btxYR7!mcvbH;!joMCN-^aDvakNHI)e&pv`gvY zjKA${ta|~=PT5Q-V}9lC#c?pdKlovv<3&fa?9_%aoMspFfEwd?6r?n<aM24RDlpOm zDjJlAo>aGCL#^l-Bmy1aQuoXlGwF>Al|;NDNFy<$CQ?Tj6<tH`C<dD9q1sW*eBm$8 zy*ze%S9(Zp?6HZA8VcoethGETYqzbPu{CbUBCY54T<mTnk{lx5`qn8wjtkVBY2<a7 z7~D2-GuM!%)mUZ6jWr9+jp=w;in{~!cr!+MI;7XveI}c>{VQ(*+rAXeT>uTXy09^` z&Gs?H5Skns2(^xq+#HOQXp1Oexr>Ystq2}x4`4Xf_L&l_vJF}2%`-*I*jV3fqP8;H zI^Kyu0_;Uw{T(FI*8ToYv~?ezj&K7RFy&-yFmhO@ST0F?9H()=6vPb^2EbvmI~W(F znL^bmuBU_Sv`C<?cP>DQ29IhUcVH+e3viYX28X+-`sP8Q%>iM#`Y7mh9W5*>w~1OM z30%(^@wQ~UG8lJ%AaM}-p>889Y(5H#2|U}3Y%uM7)RXnicjuBu7V?A12+t9Dk!H## zaYqxkLo6*e=5T8cU|A5J$5yYQr>Gzt&;sL%9k4`byN8`C+OwwD=B9iCz>k938{8%Y z;ELO!_9pu7wXv1Sc#_n-rfT)g(hF#@R@eKsp^`sHqUpL{R0Q1Aw`k&#vp1Sbdgq&u zPOW48W>mSy%}2elHFT>LCL1YLSIYa{QO~`_ge_-eM+#&=6b8{?kuzqE8f4H^z9A%B zy^wM&4OiJK&3Gkor^uxx@2z&rO)e`r1?5ntzs$IKV+0;XBgcCJWv-+v2jw&q444)$ zr_6f2!i^^8a$b8U0+2^MS$Lsv2y8Z^3?!U8&S4f6Zta}zwwKq1a<-=N(>=>oTxT!P zo@U>VIa)P}EPZ)VMC{n?I(t`J2fL4VZfw>jy}M+WX6Ha|;cdnyR1`Iiey<1FG3?E^ z^Y_uOa7*CZ^Zv-073^{&F9!xc7rm3##)H9m(fj#l{&xQJ&#jG(jnX#49Gw6!5c1bi zVn?VTy*`qHdAt1;zT$@9Wy^cp;@8kRyxe$Dx;dbZj9235#LwMpOBEG`VL-pld^5Z^ ziD@#>Z&gll{Bqzj1%P<6(i+|2V2z_b1sLxt6U>609>;~wVe90MAU>c7;B<@a2kA93 zee_^?LyIG#s{r*&mNi9m`KPcPB2ylI`K6!ohQf>Yjaqtd>@Qhf6tZ==1zpE$!4!#! zK1z?-d&S;BG;bqyKb_)LcKfJtulbj?pT14%|B7Or`*<T-Jj%%b+AU;(x`FRmkqd3G z0uw+Vu7BHp_xGdrdgJS?akATZcC;2R20I`1yJyoxTZ1+S9Oz(LJ6wNPtEa6m$hA#3 z`La7JHwmqMdE0i{t<9tKD~8R|w1VqU?>h4PYM*FSt|QVDzZlP+j}Yynnx<$Afg^V! zZL$d$B-<0(p148FLA=H4)BG_oxAR;Z!)kl6xE(tQt>d4#|F5lQeiD!JQ{YEbkee1t zm`GrDEnC%Y0uCh1L>G(fsN}pn#md&4Vp^>vRf<t{QlomjT2apnj1%Xm^|9eY>*Mis zI=(3M9UN+s`4lt7k)K4h_EF7&s5GOrX}Y36;ThwkJc=>aO=BmD*C~DV7hit$bsQ*~ zHGZ{4v*Rv+K0WLId_EYC#*<&B#ccle;@#!16;=Pz!ODxP{-vW6!}@7R=yZhn4n`#G zlW80DwJ<hSR*q0L`h`BbWtgjg;o4+|c+x^Wnoda&j_7K1t%cJv0>;*9TRqOL7-688 zhU}}6va9I{EJ)hPjDZ=R{D~z+iB6iacXimfL4^W*Il8Hbz@6pqszL5u)ehg)ZlVP0 zzuRcR5&hz<k2^EllGHw{31OiwGwxuG^>=sf+?bTLsIVq)Tedj?WYL&RS**?a$NfQn zc4=TZIF7rN(tZ(^>k7;Dhs&@O<mO3EDw<1eL6aSi-%`{{R=JSta~Ac8tQae|@oNnl z$Y<TAB<H2_R5Hm=3@EOZ_s8?g8eJ(Mh~36NVd-@K;(;>Dy`v|dJqt}Xqlvyb6nESc zFH8z0+0w4eibHqn!tRRJ6mDP>l)h8`2Aj}YODjL!`#~K#+Fa==%<!s6S=iz?gzd6c zH||8ei44yeu~lB7ndTfDSd7uIJKGx%l2O&UfSu@-1HZb@as2mL88pp*nfIr{y^m6r zDnB9Rx~oFtIj00tc6lvRQ2u<{Ke<HAVChqeo)JbxDm;^F0GZG`ELBH~LjT?{9R0w+ zj2%xZ&KYci_}%T{t?S5@84YHdlFBv?<#SBPiHSE>ASSwdlIp5NN|ig-1V~hNS>}@M zDNz+wZVX$+QXz9TiZ`fCRQIpom^>=*ih*a#mV2u3-tOEa^_xYCDL?9G)%g=fNqH+_ zC|K(@LohOHN%i9XZuDZeEDT9{!swheN11a!q|Bv8nIB-(ezU>@#qe|;FCT0?gp<U> z2-}B$jprpi$0G*(fd=WDf7sB;otz^@TaEdVoe$`=|5r?L>lx1a)4>Vmz+qjXDy|+( zkjp#|FE9%hC)63#%?!L~#O@%IHEL)dCi|z^T-^Q<S3{A>dR<D^UW_mFmi{-=n^XR! z`80acFYx#a)2wFbyJB(ASr6qdNm0tKjDq(<8ZGWbFu(+ZuYZDmuTVO!m}=?(&}f<2 zWfCD{7}_+tmx;g)i(Fovxps`&dXDy;QApgGN+pJRDdWmcjs|iYB&)9GbKcjpUQZui zxlzP~CKapWQ+ua=!Upa(Lm1!un1<1M)I!s@83hM?vKoJtfjTSL)E^|Qj+e4q`(RgQ zkB0JTgeNs4%y9l|)~wl}Q)(Jf25TgXby?+roM=P`aQwv=DXUB6<(pBcS(CF0-Q}(p z@?a<Hmg=7yAI0hB3jHjDYfk5*gS?m(Nh#y~`g+uAMH?GYmPOB=MeA9#-iun9TL@|e zuiNQ{G7!9WVJ2^?B(bzTHSp>SFdkk;=Rmg}tbD#xJR3XNTP(s0bYu%Lob_jeJd9x= zR*f+PSb+1$vV#kU9rO%4fYsT{F)GHCe0+-ea0taHSP*$>lPG*So}O0?O<4!GbZk*a z*ZMMza06_82|qR-J%Vre^a1?%!r{xy=-#gV@DIGG{@>>>zI*cW2mJc%<!iDC#y{V` zeEsIB>z4g#sM01@{k)(vqhh`<PokF&^NoH$xZi2GZy4_5OV(Py0k}}*9{{%;jDa#8 zm+wEcD>8C8oK7RnsQF?J9*`7l2;d$KuogvDfq8nG&nO!cbNiZ(xB^6Uhu;5`>Z$NL zwYrJgvi#5>5h)ZfJ;5?36pSvYJERCO$?(B^f+m^9QOGPW>)WmZh}MlQ_J98u&^URL zV|GS7E!Kk~6Q_k?&TX>5u%!gH*o-Uyr1weoc1+W1|H|CnbXX2=N*r%ubxayxj8?{+ zvPpgz=A4l7wwSwE-k7<mJd5yJS6}JECX+_*h65olJlDxi&Wy-lv|DsVtS@^|&q5dX z*{OT4#d~>1FDP4>FzT1#SGoDH^*KOO(~OG=VV{1(i~r3paWgR8Fzz3CWWzoMZz_Gj zO*u*75e6$#@l?c)kkUW6#jeGj#-_MoO$7A>i2qX;M!n;~U!~NjZVG(oG)JBlTMN<~ z#!8x`#apDzWbBg|{-xiC<<(E7KEl#R=}~1Tr4Dyn!?pNhF!3O0tGm4)r`r3cO&8in zWeu#lpjfJ+-`=j>Cwn`K)J_~8M%vEM<iFU5a<6xfQ5}L-5=wj0wTc*9l=K5SQJ)1J z7`9(-J!Ww9r1=s=?6(_HA4``PEE~-wv*C|4A4to~gwzp=I{QG%`+}CJ^WTY$sAoy9 zzLgN;o4&Q!*s>F^u)dC)aT-T}IEjEbCD<vZE-tjT?iM?!BT{wC*y^uks*HLc*!2Bi z+q$zeYF@o_(F(m&8@8&QnzB}1=voIYP;%XN3!$}(u*-W%lWpjA8UuJtXTQ8pPBgsJ zLuI>hrZRy8>A}dPfD(BT4)jcEQ1Dh~q`oh=%Th+wwXIoi2bUw}%N|F{fO`uh;Awuc z9iPo+lg<10%`V-%=%4qwec&v^c*nfix}WVt_!cCC(|qebfE5RYI}XK-31KL_Qen*T zD~PSaKW#K-bLf+8BTF-7AK{E{yenDdpg%g-hToaB^P-w{x-&lSAZchJ($mo45HZA} zWP6|?x>g5d#_TC?@5td)dgHC#9hx7>pnsl6F_JyT5L6eV2#q`Hq;cSUF`OfSl4cjK z`Mui=+b|$rP17F`nj7e^NKdhm%9E8Hlg3W8Wc<Tg9xJ3pTD%cCr1kRq`=?ude_wU+ zQ5a@55L})X;e8>x`b$V!!S7$mnO0%59H55w)MsMg8a7cT6FOL>_wM0L!5woEVJM?4 zbWx?w_3tvUj857^jKY`}7do{#gESg;F)laiLeT5uO%sip;kkqL4ZF7k8Yh?J^R3LP zX4$D|A=B3?Jz;sTLIk5$iV~@x&`i+*G&m43-YgK->cWy?q8-wc9fjuBljr}pWA*(Q z^tz0s!lKAATMOv}4H|3+Y@C0JX7q-ghfGXNwI7{CCw=tSmrL2N3@F;`+H;oltsc;- z{6IeMpN_WUDVoj4b?No3eb952@17IQsDZk7@5UsfPx+<<6Gb_lF&C;?^y+eUCZi$K zIRedkdl5T>XngM7yNc;x4IB0zoCL?ie2UJ5geE*=Ja29+jwa+FHrZf9Gh)l8mr0bw zqoTFRZ~>SBTu<rM#wLSLH5v2~0;9k91EfaK?1E^aeA0g>teZIoORfXKpfa)<*(k0I zS`C=6okQ2oQNek;^r_or1I{M!{Dj@*bnt}}nuOHHn<ybH$9w^e@%shBbsf=ZpC%_c z&)wL0doWfPa@Lv3k|2Kv#8v@SHE7}Dmg%)*Bhz{-pt<|vAD#c(-T(3FjdBuO9<uOk zHbjS`lG<;p*MGa?K6(SgN^(WHWHh^+<lFJ-wBL(&TG7L3J!(bkTldRAoYL9k42q`@ zq7C@3mA0xX?2yXr47bHGRSp&mJhLN;AE%R0IEDX$A_Y8;>+Z!4Z6$1wNIigE=ZxL# zGQvoVBTWxpD@+lm(GET$m#MeqbDO(Y2%<`rE<VsQjsa*y9mMWBQa!6{3nN#yAqZ!A z)??pp1JD(5aB76@Cq;dEq3=@rj@a2Vox7IS_vmsN4MRaqgukLDB|z#>#ns7Kv0$9A zLP$GHUem~}NQ`eSg*C`k32bXi`j&+`v()5d6%WlLyT&|m1FgG3A`vig5Kw)Hk4<V+ zPs3r#C@H3i`2q{=SD@dvlk@Z~E0N&~MH0g|M`dkvDM<f`+8prkm}cgbuR)YO*L7j7 zL7CkuN)zRm&>5E59z?HZ3>c<?mm@@3)IQseD&`iOmk~Z~4e1EWo65IB)1rnE<B2OW zv*7^p+R6=o!FhYJ-rfHshUO)NQ;V(_84A_rRbAg!zL<$44zo`=ZKoq@%<P}rwOUCc zeuEY!6u%cY&qA42=`GgEe>W^DnK8txT4FSu;iW+rGHUMiPfq$>bb>fmaox=BPUd2c z0EN?uWvt&|BPA?W-$_mJ+ij(v4`$!MkIzqM-{@_XApJJ`swld2H{_{O-UR=2+u^GF z6?gbQ+my=#Xm%n4LN)r`LLE2I+|3*n`X}NC89=JTj>D|H)A+qB3wbj#9O*`6?)>ln z8c%kMVvIKb9UYdM_B!>vx&QRpfy3$ai`UP;`~D!n1N$R5)VxskKna;=JSD&7@noNp z2oK<#zil1;lNy{WrtY(PtzH>L!!g{`#^1mZflUmDn3BcIBtbXT^9ejQT3I@Lvd26J z8s{jU-MmM>A!mIk0aN6%iTZV2noXIbIR)s@XI&MEoV>vscx<9`Af|mCcl#6-uc?yF z8^c1G7a4{o!y}wh>x>O@P8fW;G1rmUdMZ}B2-XXjk5AF1n?y-u_~yKi1~4OvQ%KjE zDt$$6+p*m)qNK=8vQNMcPLOpc_B;$~zNy`8MIMiQV&QR~Xzfvj07cY2*nf(-R$?h5 zNge<(Wtx<D)VI#zsGYAkmM6#bQw9^mynB|7`o)l(e#dA<Ko*%1?5tC?PQFCb1x2(~ zLjdYo3txq2+B7Gp;?YdIO%KN?k7Px^Ytmk81@H(?*Lq+93QvA?h11zIl%@gQ4zW&- zxw8Yq5>f0MFAbl-Nlp827yv=VZC<2B(3O($gcssyK0L^$Luj04>psj~TGA@fG4tzs z${u=_(_trc40nnG5Xvtg^xxEzZzOBQDPg9*%~@iNzm9W#7taQ2nRZ=qz#ubJT|itO zqyn)_kpTODF?O%V6>bs~maz;$S;XtneL(iDg&=@zmIj$)31VaPm|H;d>w!#AWR)#K z7h5T81jsBN)CFvJEOZMhr2#5r&T_hHk<^7!j%tiTSd3Ln8Nq~7k#^k-Tf_0V=Z|%Z z+q-fY{f&wXB)5f|ra)gz9Wz17`dp2Z((1~lU7oEo(>TNw^DOZO(rt^Tz%Zx5QG9zm z?9b2!<QwfCDr-2i%LZ=Hb7^W;t+taaQWNnU)xvN_;ZS)FErAQM?}jG{-8&i8Z=%F! zac(K$%7PoF%ZQ8vDLMV(-Xj^khzja#vjXIFF-YFUmcpzv%*tcK9Tj26Y$`}W;KmJW zZaRfo0L&K{sE+udmC@5arG@lTr&}x2lJyOSgUWl_4%JoxP|EP6R0Xy|VCHc8nhIf7 zXaW#BEr+^tjmG0zgZHADwcVddt$`l3$f?Als(Y0ZHpj2si|(UPv|)?ma;qx67ByBV zeH0YjZ4Vb%Nj_S8aPJGRZFpAqA2v1`jaJKj2Ec&v&M{E)aKcfCD<x^Kop$?C8r9aI zej8YP?H+vj;^@e+R4k#<wv`?n*-EmGk0n&0!P&s__=SJAT1O=hXHLA~#Rx~!V&!LP zq=svZB|0HjO{}xV>rGYQyyD2zo{+dK!cVf4AkQOe&!$v?skdEE(1Rn<fYzb}GpnTa zdVBMsaNNe7N!eAw;evkR*+OrbCo~5xqb=C(_+W9jC>0ayPnX}`j{Izb@Xl_;lmLph zqLC6j$R}u{QXNFv7fMu@#Jt1Pp1N(fcdh*i@MUkWk3D4;188YT8)S*%b`06MpG?PC zcxW2d9YT0J_V%{300U|~O}J2k2^omwnaWA}_%boGYc0}LG=90_op8}r#44pJq{yNM zh0r)S<A<t7FH_I^po_lx>e;H8+ZyFga7QZhl`p|+ZB<lkxrIdZ7r<=@(~|vMGZWJ# zSHR#)e#%`~5q7y-;Yg#Ug=s`Fy%za6oU~vA;<Ip+Y}7fx7aFtT?+10c9EpO}D~I;Q zTP~eDXtZr_;rCzb6on|AVSpOC>I}|z&(&0)khE1@C?G6;)J)yB=67mwt~?*Od{e~~ z(#%K9OS2dZWBQ}4=K!)x*0b%x$6e32L8cmqkGrN#J96DgEI(jPFNFQOuIX~7p(V|z zb8TLEX6?@$eQqChS!KQ;-NdsLPK78Kq$Cyuqd8Xwvbs0PR-<1f1P6c_6wDKoxRqRq z0%XMyR~AyGhGk_?1gZ--3SgClO_TbS)gpQ4m$GXF2tDX(LnkG51Lf4f(7;+p)0>Vb z6P-TkWRCGKq3J=6#wOZf!!^Gb#=<HFOD#^m-E999AC3;EhlfYk@GFk%_|M@Xy?J+Z z{Z592sn_fGYW1~RTq{Mfabi#O#&bM3k})X>g2m|)RN@*nSQDt!YRgcG>uYf>UW|&0 zbzxEY<x`R5x{|4U)IK`+vr0+z5wBZ(!eeZPaW5}*x3izr=44(Tu=W?Nsrp_%mDt=g zu!@xeXL0Pq?Kp{*y)=BUQ(9_rE2DI@X=KCCZHHREMc4&yn)r+x`6OWG$-qRi<OI;9 z0)S$qJyex`rM^%ttwKCDOfxoM2>bpCyrjwo8oa50<6b=k^|z)a6^pWAY*klnsebF0 zl;>Yb8%1UpB+4l(SBL1LO&naI+p?n^fQj$u{ybogD~HHJmovp`yU6oeLRTUdUODu8 zDgum30#4o2CX{LEc0d4O59n+{92Lz#ZPZ(ld`N>l&Sw{SJ`#8{KqqUr39Rdx)&Hn$ z4fn1ry>6VWAL@oj>Sf8W4;88^pq{x=BU<8(oIhK1APvq-j1+<yF=GQ>L{!yPfPw&! zk|VZNOtlrQ!#Q*gCQ91w(-gziDr?vw3}~O#k+w_B#j+9YcrT~cbXew)648!yfJqqd zeRpoKaU&fnN}29h`^}W@Da{;(0!CGHq^7XFKG4IkFqt|AL{}H?DvSpme=wZ}kb64g zfci+t=wvX4L0|^$7%Al4K}Q18EZRO3;lemIGVD0=rk+%&uFu|D4V_}G;~xB!aYuCi zrII$*&$k3rF!9ekOxL(w0e1h@?(6h5{2{}PNussXX%r`Q*WeL1l@8wNW9SmQht#gn zANr=|>=TJI(XONJo7v?c-{ZMfcfodyT6;V45KdzJ8`mpcg;j@=nEW;arzBkr`zZ&- zum#HV2P6YYy?s>2<i@83d4dp8ssS2mXd{Yxs7oqzYvT4lq*5-%^JzEl(9Rt&8R}DP z?9RB?Lmhhbt{z<lkkcuY-`(AS-Nb!=Q!ZX^0?6N)jXP%``_KwF!@uFS(3g~6V;-^E zdM*0=b1sgl#cE&I!nGup6bOPEXmIv$SRy{wggI+imw{`oulW#n5n>2nC21VOBV)ml zL<vQVsT=p%j$7CuCcc}Ha~tfAcgfzgUewvXGP;|POFbE_D9`jNB|ndSgoCeZx7#)N zg^TZ<lPSQCp<f&+gXM`t!5n5vQrcE-e^cp*96FkogaH-P2PGN3YoTSnSe+E}ig)5b zR`U~AuS5a9g~v6uB}y=s6+YPtAgj_55~nF982C`d_uk$PX~z%~D-kW%1nE8j57WDW zRipe%fLdFu$j~1V=#r6NV|3Tt+s`LYpY8s*f6)2c_s<WWcJ{vCef=iY5iu*-q5Uil z!QABdp!E=>1?ne33XTZP2Zgow@6xC0NJS?;-PkXQd7(f5(xFH7yj`=8OnmxV&!a!p z%n1<k-;pS*>HtfO*2b99`bW)rS(MhKbkADk@hCFimhWX(nfqFqrj)M6vcV3F%-15o zT~pO-gPh|lug9<|4#sWT^qX1G4ivQ+%hXw!?s6^VYOp`+%}CXD&E1s(k?lB9AkBM^ z2jlK}a*Ti9%;4CDW5u^5T;dHTXwyFy=A;QJQv9<mgW*_m)Mk;oo|BZ#gZ)D78I?++ z>*h?wOEXsON*pCAcd^A^se`Wez+%i%g(=UkDotlxZ@WfE@kwqholK-nCMq{)RTh?# z+C)$}xnfKuG$dlL*<m)yPIHGylpoJ+J23}cgCRz6d@cvHlz)YExk{O*Yzked>Ih$) zkyE#JZ55c;z3w1U$Kydx5!*=H-{(}%WX8rrrkA{>OMW@#fW>a>q)M4j(IAN}BEO*s z#Xu8w&!&L81af@B7ExrIX{UroB0q7mo*KLCkSx(tx(<vlfGTdz6tQ>ZPMC$^Iw^LY zcNW4WwwwIwig~+^^$aBjUSF4wzJo`*8%`DX*8}_OvD?_=$4QnRr(L(j$B&&Rx!`W% zOP|NbS*!G9qx3|yzGuHaaS?$fKTO`Gm!<m|%4KqTTKH5^AL|;5A0nnae#<qq9kpdH z)M7UDHV99D!6smC;32EPkZuKVxOoC6d)(OL9)>$ulMu`uBx-oYAw6<W>9$6lb`I17 z)4!Xs*OpdOxXc*)lZKX_!SKW=PAtl60-{5LsZO%t?VuVQIizcNPH(+#y1itub=ARo zslBbOC^6u#B^j?pXj@Sa#viueA<I=EY_<^_)vP!A*qEWswFKp~?9gR6?#%~AQ)J~g z1n3kbQ__QJjx-dNoJgg}1L}b)%?Y2bE3M+-xC;}l=9u$g=sx+oT}$vd{44&c*N)t> zn_k&=ZMQ{<`kWl%>+5iirib5|hr1j6jK0vn58#0V9zlqoAzU9n4kDXTen9-wT@h{I zRSIuv1R?K|y<VaLP%SKg{EAUVK4rcU`hE}goQ7&omUajkSg=d)@XzIHy)m6Yj%R!E zYpE;9_7vJjej+5~nBB9yd;TiVr@X(HBOs#Y099L*|G2)XL_MM8n@{(~xWFlbcPiN( zsyO)VXWNqBv>UCXvVKAp-C0r+Kf(j_87z!}=LXsbf#)<EXtlqu4_)NuivHLWphg53 zOfRkC*O2PX{J4rzD^X%u_r%*~HUU|?m*}di9G9wlRm_j8`t;+d|49ZP8cyWCO6NAN zvE`G&dFjoTjZ!Z4C7m5bbJZos2t<$;)0G)Qyx4abw3ATBrUl~E-0|TI!+GiC!X_c= z^A}H^zCeezMCJK`y`&<MkvosXm357Q=<AMGPoKVyyv#u*ICkj@I2yu_8mUDP^yrKF zKfZ7=>Fe{HOmQ+)1|~Yqi{8dx?3eTpcm5>}pUP*YQUyiLwMgham>yb23IcJFAlZRQ z5I#%arVAg4h(e%TSl^7OWJ!2Mqo<#Hwq|7Q7`bOb4vfsQ=U2yl6me8`m}%TTTz}VH zZ@}N)7x?EZ{Ca|4Px$M}5iS$VsvWADwXo3f30D0Qi+_2<JR}=kzEn}>;Om|ZmFIXi zS4HF86qX@1jC(Q5PHU7K37u-6f=D&H{2`k}oIyGHwLeMXQ#eDx@*Ym2(Q(0X<D+ac zE@B;4FRkrteICV!HG;&4OvHr2nG{a7&y#OoZRPZErv@~yU8{s3ZsX1K{1TUVv=-OD zk(Mm#_)1x884Qv{<dCq9CNhqdj37G|zD=rDRD#>rk$>O>+n+`%VT8EfF2&q(J8+uM z5_EsW-*wJo)}Pf1Op-)4uctYM+9`5<0UohS?0kw1Pw@)4LE+zPaBP2@PcIdUl=Yk( z@}O8g7|@tw!C{oW&H4j$zJURd*L?xYsr!fb$a?7B(KUYi>^@ly;dtD;FYUDU0ISP^ z!4YX4YpB9i5suaO??ugKGrD*GhV00Y7`A!c?AB+EM*FZhd~<Z~+eTwY4lGfAc{2!s z8iMNF5+*o)d4g+KG}MINl(Wm(*02(39H1IapyR<C<N{@s@82g|tHaTC`=`Uv5t7M* zxqp8Z%G@V}6AWVyTdiuf&e(S+lMflH>&U}gj@{bY;?YwvAQhVXSI(rd1{GclH;nkt zFxx!Ly}m$WZ_p}{l05-*_pJgmA#I-rNO%2C)1kK346ZmM?<^oYnJ#2SK0#w8L3A%m zfQ?OyY2GN$2MHr^%BroX>$kcDf*41K6z6fZYXbc-*9>tQt7`|fRdM2RRP5*35IdN7 z%rbipJ&YAk&fe(UQRLOU?ddlJvH?3g%p51lmTH@t?KoCx<V3ShOEgNJ;p(ett{hpV zx)z41g%fXx;Xw`gDdb6k&)v)|UNS7kj*Wf}*o#2kJ@i%%2u^@H26hKEyEocI_6~4h zG`8gcs+>7UYGoVBHi;s+H87H!3id)ay6_6Nn+wia3xkFp@7l??ufmL)kP$FyRMSVW ztf-$dK*CJzWzc?uozR1(U>v29@~)1epXb9#!-P;&yJQb5k0(PRev&J7KJ8Pq=wX4* zu*##d*iv71Zc-pA_N>^#zx=!C_E}j&;iO3gz6H-ZT*9iL749%5(=n;DDb9dV^gt`- z`;LtXILc=j6arJAU`KO8?1$aGtzp*fsE3Tl^H*;lZuKW`AC?|}fsenik1bBm-@N?l zi}e;1>%nXQ6pAtaMk}FwhaIf>)vQ0vowxWvpt*nb<B!juY|ZEWp7WHZTf<IeoNim8 zIjCznktyuh5SwK`{Dbjx9u5&X(Ruw0P0OlYKFKh2QT03Qm-n8o7H!B*=be)oz<uR~ z-d~iMx5DmhfdlLv3hRbuMU)r{6%$k?wMi9KNJ2R9PshM+(BKkHWL!9&G9Pd+Jy|O~ zdC+V<Y(4tgefULleIws^;DOH@El(%!CtNA@{p2Hco-7Ri@VymziWc@5O^&#i#gaZf zdv;rbPkFg5Y+o1hTfgshxbfir!&|mL?7y>4@(Yoml9j038nf1NWcx!*pBW)vThIf1 zU706{ULtpt7YAVwi~8=OK<KN?uMPataKGtyq25vZC8hqy;3&>qY{M_t&E0+7@ZYa3 zu3lP)ZS}+{Ra%&Bda}0hz$xY})i(Y1lFPjZlPUF}xs(LWWkhKH&SVI39v91vM{WWr z$%5eJBM)L=0XwU;z20=Ixa+jtSZ{vm!>nWtGOj|)?fi$e>2Z&CtBjPpW^cD%+sHDK z+A5W5b!l$OUwvUoCMfC~J82_kOR-A_GQ;{tX71@YCls|yomczXxgpdriD9x?S}X6- zu$p|LU9sv!%U-%alk1O<Zt870)re0ii=jAU(b<CVDflXYL%ZlUHB%^5GC+aVl0<}z z9ImlS1f9HnHf`Sm1hLVqmv{TaY_I}~ZkQUYrKq*n8b{wA_SPK#MyKN+hn%`)j`Xcg z>L$}PwzvR$z2@<rjGaS}D6pbL$F^<Twr$(CZQHi)*tYGNJGO1}-&gfFZ}(D_N+qja zWzp&M8NQa>a~jOdDY5E|@7&N{K|Y$V8Eeh|P-MG{`z`v@!}n=on0KjY5aAJ(t!gB~ z!Z8GDOF)T!_KmsYh50^`Se3vPrnLH#5IqI@Sh`X^!A;4sqVO#IO+Ev5ZvfhaSP-M! zzhL?IX(-IHG)-+f9H~V|tK*<Vyxxe9<*87%hi4r=JG{r6RlL}W?H6?EJ9BEADxHi_ zddoIuF!X_UFxk!G?k|w)MF>EvB)7j;iN6l=&1~^U+jCTJISHES^$7W833pClT6)61 zoJmTcSQUvv|0PhG!aouOV(f=*MriQ;+m^>8rg+`3!V{O$Z#(tiU+yfpVu|v<BCV#} z$m=~$P;=ymh_Y%e#));QdzxU$4_BY9JRwdX@^;+F>S)HIP68Wp)YJ1qy)H)CtS!Tx z;XAKg9wQ-m8bEeM=`4c6Fpw{iovWfZ?RF|<8xU~Vva0Ky@l6W;kOySg@f(-1;^M2= zcXLC;E>!%TcD~ZTdM%5w*<Ma-I(p@P&wFAosH}EcjOJd{_+k?~sN=V9{024z5bPuV z?5@nXTqXJ023(ko#MPJFEWh)Xnh>a+`*2|_mlC4*v(A8?v{F{t?d$92&))iznV<kf zD(D}+7YUDMkge;KX{<@rfAs4Ywol58bKA5;DSZ;q&!aeqZg+=F|2fU|;3Tv!Hpgqv zD3e3{3EDjWELJ(D;9UNVsNO}{%G^<6XqN{NzGY=jd{K4}d>Gdu;4*sqr2aEKaKv^v z#lhUBqJ>FxHzt2Wa%QjFva5;gjc>fy+s-DaP^(TOKKm__>lw4d@*CbSx5xTpzDoTL z=HGw!8dBPU=F`n~*_(e#20)$p`X)~CIpV3sN=S64ZuoET==wLEH|QNPlSLBL!I25a zX58&hv7`H1`(|`0YNDao8zf0u77hPpft9X!di^PGjf4FGy5}%STOg4Y1S>p*f-sBA zpMpW=<CB`f@FMRZFwj_;yJ%#p0hi0sg&<Is6%p)!Qe(w5V9ls0AlDf+#V(ZAG9Po& z^ILA{inTMaEEdODZGHc5R-6oMc&#{eN6qih{8r&pkjpX$EBRt@THirBSmv4dwx-#M za+~uoe0I;KABv%<MFSFw(LWqPuA>9)m4`0VD}j*gw{2|_7KpG)QY&986I!+N`+i$y zj0m%{K^*O$-zVGnY`49ZJG}2G(ZOX`2cSXve$k=_F0L)0%-WV63QGf|%-->!!p15M z7G}`t(*vWyGvfL~zu9+ZE0^ILsn!&+Y<MLL#dYue9u2*{Kbv(`yY_+;glU84ZFQ}5 zk2amoYr#FWaNY*M_yZiXvwQ1?b37NO>0bbFuCti}`iDd&UGCB06cKuZe;9Gtym$#c zKbC5-=<zAhi(dp?Lf~irl~3}ompptg_@q_o%_GZ^h|42!)fnkt>>gCD*Kz-Lj|#*0 zZhfUusk$L2!n&oVS6$r<tgoLqv_k?JCVoA7)%?>1iF{iYr)I%WiGrBD5VVi;0v_D^ zE?N-+uvdq|r50JUt8g<vF&#PE>#oXOPB~PhrP9TSB8KY_it_YVb}^wZaMEGW0k4G( z=N#O1ux#}W*!x4y7b}qegBTv$qJO1O`WiC#x_YKm<yA*~5J0(Gqn(pO{n*MirAd|( zdRq}7d7Y?i(ac$NQpuAE7rr?9D}!nO!TF^?CvbnqFs2=i%vyC%Z2T2Gr)Bk!y3dkG z->M;f)@$I47hK+l9heF8f&#~!=oU_x;v8fWapD*tlY|wcso~V@bVS}_svd)*3+(vx zxSB=aX;e;y8gVXci|MFbbs94FywZitxy%k(?Y6w1R)=_ivw5Wk%B6#G3+S_nl|R~h zT&cEOQN_395jWG$D!L=}dJ92n-0dV;t4p-@K5qWPhl`oLkTMyJ%|euJEv^Tn!TfU; zhut_MD#dAe6j;E8SFAXMWF%iEOG!?FioxO9!!8&&b7C6_Jds3o|8Dp9FMlK#ZgbA1 z3&W(;);UbmPx(?Ldu$K~{?Rt3VFbTnk@;IW#q`w)lGjrLWY*%qgT`Rzvx5ZfV}+Bn zD60G^eXEu`PX@d=%0+G!XpY<xg`JXyh*suR&21ASC*%d6h3RcYu+s#XO<^Z<&AlZe zcLD=Zwh$6<lwt_*deAwttoc%D{02F2R;S7Wxw3>?<a_c>V(;G}-1`~*SJon<r1BQt z3&go56olczPdr}f6`d`UU@g|&U|;S<FdC|QATJQ&p%RYhp~LRgVvRsyWJJJX18TKB zLR(wIoZNjlG6ez5-20<`5Q@_0QRc~cV<wk1uC3cMJo|6^pZl`+SO2fa{9lK<i!Lj` z^683to<nx|*ZdpYVH(guZ-I9V-C2Xwi(?Z)2g7X$)&#Mx_}48p7YLD1Ud<sUpOw-? z$r_+iCf#VVcKoic^TV<8oxF=#(}k;<ra*Jp!Xer_j#R^vg+rDHfszHlv>gY*XK@_A z{t+k>b5!4b5E2XRpIhj?PX|LHfGFnH3sEeUev_Ob4M-unTD<S4CHaWiE&?uwF`IyT z)6tCC5EmFjokzUYls_hI%1jIQF^(j1ZERv%cB=2(Pe!bVV^+f@nu#IWOpBiaz&)g+ zo^(NNOc#dLzx)c)z#u39000mGC<tuIgo+%2g8z0(|0eCf>1^ua>fmB;Z{tj_?`CRe zV(&z6Ywu*LZ|P#{^#8~DmUfmd`ucPZp3>BlbE@-GGxSob<I}X`^i+!TN(u^U<5To9 zM^eC3sHJ4)XeDUIQqCh|>7{6><|n5kW7KO@<=SVOXPD*AfB^rkWyEmQV$%}<V1619 zfbxIR@*ipcbX@g(x^IdlQG9j%Ld7_r+#yCGl5)dekGtcHtxs&*B+2spdzcmv2a!|= z5(R<*&{A@G=-c&jb$2ZmRFq@V_j_|e$^!Y&)crT+e41#h$U0=Ji0ErC$mP{kJ0#JL zy>e-@x@j&*PLb*+br($jQfQi0xwP4(y%!DO^ItbACe5PPL>YTnQ2hpsM2VU~p+@Vf znu;>(U1#a0uFLJ{sB3n9)zYli-8PQYQc~A8Y@kMi<!uCQHd{To@JdzMbZGZO*j2e` zJMUl8Z2y=**)?83=^ZxtxX$TU+H}dGKe%Yyb!fpgJ${_=OYYe_=AMj1^rc~!Yp<T5 z1BmqQ(63<n>#7~Uyl}De*Ht>T<?cSlck7)(djcAdD^=*RTee8HeHBaEGyN4vo=DGs zymrw=Q`dxT0pmH6-O$NiFmvBjY?K0&K?O8xp_A6AarGQAH3W3ar2O(~vIW5S4V`;) zO+}Li0qQ%|C;mYH5r?>m@=;a8rqi`+q6*EE@eJ5Lp|XbHXX8HW*_jcaKqVOO+{b$E z3B7c6d!?(g>PMu=+4=iE#}r1kyM|~tS!6Rwqz@q$S7noE-{jy3Fz1FHIB%6Z2w_sw zYN@w<($c+=);4dv!h!I}o`KSDnzir2RL$k_V8SK4dU?*mDNk1}b9;=#Wiox`*rM0z z0}Y|V^78t@)>HQ<Lg?Hl7c`#QieH`nq-#Xh%$mMn$g{J(@Z)9wxwd`6CO*1b>uSZ4 zwWjV-Re5u)eiz`L`PRMI4~_Mv_)C|KRHgbEJ0Ry0u0b<C7f%MVX{K0KYg?wt$P!!g zq)Jt7f7DI>f-Jm;E3}7cE;@xm@RHPE&TO?=U+vvzwY+ubSo)K?3wTR!S04J&Ahixq zXX(l=(H8r)zVaG=-De3*p<V2VmEOR8-OQ=P>XHT&V&cWB?>=u?TLkSh;)Nv!h{66m zEt+9KmK0u%x$X}uL8^DXoNnKxQ(<K-B8_$%2>ZHACau(l-_1E&05G57qD3Cc%yV;f zStqeiN!p;dPO8Fss)))2x^fZdiJ@kB-KF=VZ#Eq&L4<-gH0-9shF|AQBX+Ex41Ui( z)OstwFNZ2#PNgnmsA#WMt!>-6*=1H;@Xa*f^RB0x^%TI1EOWmDIJlM#H@nWDr83Zd zmm7A)PVJ*v7TdtBDl%H8c|cO;@72o&AsIhl3iUQJv<U}OZLLbQ*NuSpJ$uf{HTnDw zQ`giLHc7{lYwrXq9h9QYq-7di?e<c>E_&NMOu};MCoD&C#VS8EfJNtz6ok=tXC+SO zfudO5bFfoOC9Wh3E&*<!sWpnEuDoZ!$wZe6Y;mda1`)C`z5EIyi*(`_x)t;qdb$G~ zLB|vo2l(W>c7GsW4y=5@yQB&ID{KossY3#x5Bkh|`g!LpnECSE(jR&LaN$ET%&ep# zkaT8E;EJkbr&NZ2*#aYvmypW6-Dq_Ba*^F9XGTm?^5P?x6dr8SIq`|H^gCmQdQ>_Y zKo38|C>^KZ{9W>ZoG^3j1^6xH3E#XL!)zt_3EN&h@>PMeBvmkQ(iACZ9Mz<nCRiM2 z)+T!D+S%Z+{Y%fkkU6W6Nj6+(N$=mqe^{mXFiG?Am^k00L`{?ICr#ANCA0by>-i?5 zLll4vblDxuhBizvW4~b5$D1&5p*2~hGfFX>iS>E?+#nsqClb{0pcT2B*0ZhBXUsq@ zf&6~h;ll3x*^DLTm<_4}*fq&yfUhbQfSZZti>ni0;1eRz3lV28b9!Gw5pR&?gCiv5 zXXe3y0sbEM)8NCa(n1wErvh5#uZzEd2OH6VV{G7k6D<-2M5DVTd>!*pZkXQ1lVx*o zJb9b>D2}5Y?iBom6AT7F4ucooRplAvlMTK!tp}eo3U$D0jEq!N(AIDp@3``63++3- zXctil_t3@X7lZ7#rl5sEq`|wn%SbrH``ip1b8zI5f{E+$#2=FaIv6T!YWUO~nDDn# z)QXKFge^hrs3hH|%hRs6-}@~p@%-Dq$Ds<HL2d`=tCH3+o>v4oTaUaJS+&hIkWAA- z?=GXZctk}F;t1&Cpgs|Wm9bb{#uM~h;k1`f!MV}F3VXvwi}mINf0%vRKdAZ&>40;1 zM7@DqFQYCnvwHbi(krGGRgq>h0QA<-+lPFG1b?+QlV?@=iPkBig>Xc~NBv$%+2+!@ z-;h}1TEqZ{An-Am2qpHeUED&d1u<7`;}76aj@(VypJgZyTAZX!2!vLxU$-5C3A!X~ zGfwlnM$ap8mXsQ*kN{>fM-b_Clvdbu^18{$67&|v8H@7ee4Q?r5_}H)9K1vY3a0|N z#!w3Ax&i__sf!~^cl`;Ugg<ow76#GwkJP-)viWgU9DmYP<<;F|Upr-_qo$63?AkLW z$M5U+u%$M=!Vq=Y97gR@8aAIjd5x;kU}-O)aMlIQgY<pab+~jWA0OYx6BnQCmSjn? zCA-x^wu<*M@b%Y#?Ho6U{WLi+x6x+wM}52%u|Rwx`_q<8zekqqt%sdre{KJB=_%rv z*t^Br{AM@lLhbaiINW9y2s78}makOH`_;-N|HAP68tS(lGWV+P06otIJuGO<e<PNz zY7|;zRlG-TB79;vSLXC2Bxpoe0G43YNw%fx)i~7-af}8VVimH#=YdT#{aDru_KQvy zz%)m*A%r^rc;7TqPw@W82H1V236qUqxOya0RWtSs5_T{&E$^-YaLnrPO)X2VwWKUS zJ^2v-_01-yy93N%CruO{?&g@g#0<`CSkNoF9Taaxrrv)++PgmDF^}k6#Ue)Z!-{t) zFCI!lul2|K;~p1iKHDPe4V*}(g{cehgyI!+3$VQwfP0^ehbc&g=Yh@3s2TRAb_tiI z9_KdO)W@yoQpcF)>wry$*C1lW6%tq*Fgtle@*Zmr=}U8v_w<EJUx!@Y5Kr^(vOK0^ zMPUm1lUCUuM9<rz=6Fp^R`>1vJ+V-s<m7=J(M+6M{pHBMp7Xr&N__|XxVVr#&Hl8E z!&vxGZ0SA3dugYbOCsm(;d=}Rji!c>F=9LNOpm{kLBg>NqGQhqpR?Fa>H(kIL~4em z)CTs@mJ?5%66mY&1QF|CcMbjVrq;qbIRDJXu<OtR(1O$<w@LPO)hHsPKz-Sex*gj# zk|G?^N8R9JdHW@)aX^{7JabXy!Cj$iHp{pul6;Gm<65ouYa<5N<Q?JId^b+FbbZu! zs_@VwZ3o!nMQUfxaBM!8ruKoF@McW5K)}qlS1~0TdxPUj+#LI6x?5q7y`0TFLSa*G zpc@HW$}jBru_t?IecNoqWS7OanTvb=t%uUC&UthbpfcqEPv+d0OPe07_1qc^JRioq zlh{P8H6lSsy&32IZZJJ`3Y$|pu$oOIzQ3WTrX6<ZFBy89mI6>luT>Q85=E^J1Qgzm zz=dU)6pnrp0u>%bY!&^shi9PM$wxuwc1dsKvD0RYs5mGzjL@8suB}$1<G~)Hk<bmX zn06*6nlXC_O1Ri+z`r0P%T^!t*0h54FNZGDA-N~!^=5m~#&~*!m=nT0t-9PfMwhbv zw_x#qGZG0pNz;=f)qN!pUeQ0p$v~k1L$cI?$Dec7QMAq)0X|k+Hu@nq)6AGddzg*< zm@FGz$B#m5$e2j>=HIm;n_H^W0I)<$?rsx?*3ve;39^+4zsLAp8M2KCCkFcBfH8hG zaGGeXlXhbhC{?D(0Zl>#{Gz^0RZXK$D#~`+|Dvpz-#$30*WJbjxZv-M6`}yj+Z@<e zx+E4ZvYy*dVzF~vIG+=VPk#`Is1}UxAlvJFsvY%*zWo|4D<TzD09LUk8hEmMtSRlR z2MF6Hd!ul;FBHDe;n`2oy0TbIxceHFaD_!rrrfGHJrMpDiQNf4$ZFayy8Z)dIZ$m1 z|D0HzK4Gz(lL@nA?G=13PiNo(TKNN$7zzkQ4fouUMS|*+j18=>l%VFdjp-%7(d>|Q zLtdnF5HTj)VNrICs&+ai@`Q`MwACi!%KB~2e~6noh&x34#v`^4^U?AG(qhO1a|rXS z2UP#$sG7<fPJnx)nQ`8SHczskwx`~6L;#N+s<!Lw@ipOHr4s>v0EI->%d?WX?~`>? z5Hd@rU{T-quUUakovN=oTnt9?u4F8n7WPBIIPmylA^b$u3+}`zuib#X(9R;*Y6U@7 zJEdvdQAE()mE30$eR-ZEYZ>rQbz6*jqZJDrO-1unGs+u_+~E|A4{lt)Ek}L`wQ#G5 zjwEEI>mzie9F25T)#sBVW*pg75nCwuI2~nSG@pazns_0ggQQE#b_RqH2s%$Y3kU(N z)AZurUyPOJZsiioY~^8Z2r>-HS%PkQzapp<_RPV$0KX#uIAhoE!2@V98-op3Q<*!L z^rm6}(KF!e^ou@J+C`Eqh1eRcnaSJo8&qiU0^;r+V#OD^<d#@BPjvDhSS@E=T3}Sd zNxae=p7;1XkNl2MZ%BW9?f%}o%3tPq)1Tw|bq~hVmm~Onf&2Ny;{T@egJddPz~%UU zIQRDAld@~Jir#?F7~xn?2$8cR%WAN#msQ`4P4I^zqIrhIxPxJPh-j@}#Z7C7_1~#j zEPx15$Jy=U$ubBF5CnuYv2y!KB6X<ll;>3wu*in7uYV`V(kPa|mo)B}LAS>oJ_{=g zjIB=!l}3Xqh!9g)OLe+8;V`y438P2cotyQBnDPm8NBHpy2t5JEVYc+z7!506EzpAH zHLgp&3h6zOwZkPJ;$eY4$(@aX_zT3J-u1OrtGtL%NlcLEedzDQOAC4waqb9Tgfg_a zKow{TCc}i%VhvtZ;1>VHYw=|W@{>1(M`o}92>bd(rd2O5a;~fv`^kYJ{ZX+C672!R zKCfM;+iV6SyQZLDuG|+n%WGf~79Y6^o24mGS>CD@D7^wApMthH8remga4+GMk{g@j z7YP9XSr|_moYg(GlzpT0kS1$49-L5Ex1xz1dmFJ-&4Y4yBg#pj)Dt!9<**T0x3PkC z5jVLh{P5svy!J^1JnSKOc@e*f+=b1f@Dfcu5Sc)tV~f8!^ua0p7}VHlh#=TzJqG*G zO2E?+*#SsA>RR2!&E@0ftjzXa+m$!9tO2;H*rE4<H~9qPN>yx*fF9mVdpaF1>t9(? zSJW}IGEYY1#t{&>`>{LOgG_aBf=ydt!x!5~A@1Aol3E!j(X?Fc@3Rf<>UcfDdIhsN z<fPfsx7Hc&TRGHwP&a@Um&_;QP>86>9#4j!`->{EtK~p7UNc$neR_yBSEH9ooBFkd z4KWcwjnX+vRr~PKSw$A<-w@FMEWXF!h~B`Px(8@qy6FTS{V#3W%!WXXPYA!r%BQcu zO7JIOc4IcY_bZoX1M`=rFK8~{;Wa#>s-_s_w>F}wU#mu_6($x2s?{a>?kaMJd@=V5 zvN`J-d~igda6F-j96^Eb4>ipEKU<8r$T1vrqPdx$vy8t}b_?(#hwL;UNop$Ie@=uV zCPgBl`vtBN(XQ|k#l99Yi)=9IA4)ZxZ|{R)pmKN#<8NdC7z1PuFr*+B^IX&jYgDaO zGgHS%azWtdAy?nTn@M_^n!~G_dRTT*H|@MqZX`1{7d9!3W=DE^nkVoXTN;_)c;nIT z;|YG3=VCuCeyHgLIQbv^_`AmpY1%b#V6=?hXIP_x`j=CmDwb#^Cxg_JF+4yL7zWen zhsFse!>tH<#TwDPnKMqUwi&Y!6CF8T1^IKvn`3gbg~K?sY4;5w7d0zgN*F1Q@UEsK z69^a%Dp~R|AsG<{u<)ZlcPIdEP<?!UVL;R#4i7kaJoz~~U}Fj)<&3Z|w_PWV)n%l2 zjcj!Q5&?(0%%DO!dX~Cfe`-+W=s^VxRo8y!b%Y^=-k`45jdWK6CP}H}gnbXvvp$Q3 zGoI-+M5~t&HeV~rT4Ef-xxG7Q6?Y)rJ-?XB%)bF`rF;SoU6*Lu>W#gtkmz<#;O-jR z<xO59r}bR8V=P+uy?L<q@%pCIJr?UkvL^2e__WG2yS;ti$g0CDa*VcU^F$eZD4|u+ zv`*nN*h!-soKfWO?2p*aPKC|<m%G`F4<?XeLcIrp0Y<ZnngQ1Q`OYPKU|?gCZzV?q z)rd$$$?>SH6a#^PmpN?L1XxB+JmM9E^PX|L7h2t26ag9|s+$<7tWZr{Sa;<niITyz zCBh&kyi|GeMYQG0yf*X-hN(fS&AH?ajRYd8c+K${QhUw@#tkS`Jum5q5HVt2vghKG ze+Bu_?D%~Q0nuV0i`q+BpvFTahWE8WFb;6{(KrqQ)X7=bL+d(?af+a)8g&S2_@(*2 zE_VCgUp`ltR)0_bUf%BbJYTaf(d+ejzW-f~%jM9~s^Y|BKV%-3+tPTw5oozwYfH$5 z@e!@dC7d486npkwTcheaZuJTt2YG&}-~C~2asxir+zfm;_)4&UaMjws-q@u_%k7C3 zQY}6cuDKR21fB;!A4$O42p5E~?>0U7c>cjTd)g?7@le)Ou$(pu{YBO3_XKMt&4bM5 z?-z80{h}1~-5TTrK?vCMHed+YES%+Th>fUwf2aeDWT*4`kX?_k3?{2MlZSALNC_D& zkSx@5jutZT5FchU)}>EAOXx)MCYN2^^j;>($`^BGEiM+GMn3`=YCU@z!sgRau|^SQ z`D+&#WaEA4+zV*?&9`J!^IUppGdWo9Y<%idZ_7M&=4&k>Zf~Hb<#T&|Xm@Z-k=P<^ z2j3M&t=_=nvsFtLCDNWjezdb3QS>9@6~9H$_f`7gN|N8ZZC2MJ>1B+vRw}Dc+drP2 z79<Q{-}T1_U<d_lCsdY|c3OV<RH;E&wg2@C{;|Jn1gIX?Hb@3I(ym{}rTWQoS2o_% z;`>b^!IRutp7!CQX@bJ(-Pe;||9(|K<NaR?x>E*~oyQtydA$9{g64y$NP<bn=HLv_ z+niQ4Q^qR#FNpQ8<~}T4kL>N(Fv`F}aE`g2jk|^JfZICj<NjG}y|6Qx^TeE5l}}=^ zH#htf^inDOP&1KkoWqq7sZn^_Q-F1C77qY3BO4cl{r2pY08dg>9|=C`ch~t5{RBft zcHSO8h3^3Vh&~vziE+cPCL=SMz3h64^=jiWw>2JMJ|M|R-nOi>c5H3RAQDzLV^_Ex zsm42`y?I#S!7r83*SMYCk;v)Yn?z0{(3xpq^zz{ytm1D;s0-L3OeZWIynPla#-HGu zwD^UR_1i$d{PA1l8^#3XZXNwp)I0oaX6t!>?%o;uhxi}rnHmcVsGQ%<U!`1+25P#t z@$8)85j&s>TQMS<I-1=|EP+Xw4L_vj$I=C!#g}@oF`V-;R{THo^bb=<_HXbPiF7?+ zcX>(N>+$7DfDq!yUwx+20#OYG1MQ*<INx-^14MDCr0}t0ncIcLWm{#eBp}%n6gyj; z)B4)VQU2Yha3OP>M^K~YI%#|6AUgJ&1zwv#r~#Dx07~|+LX;Sf@NMU6n*QmFaSZ*I zL-IR%QU1k<w(P5#^9k$wJ|)@DM4_xywHmZ;Rr@!r0X=c$<Q%0P!an~}Mb}4|>72ke zTv8Bh<^ZYE8$3EkR}TkQFg;=$-d4(VlB>tf@8{hqwgT8w?HauyvDcXCUjcX<6Vh%M zu1P^s6sA__yS&XUbrZ~}c68QwUZRgxvs)mN+596;qn6lG4-e|yFO9M`uq^qRM#(i$ z6xJi?TJE3T$>2Da(L!GVNX#h0Z)Hft=FJ8$2M)#%>Vjq$5e|aJF^SJ$xwa;^2KTaF z>Gp2e;q@*7geLKCWC2m~yD(PSebky233a@`lwZy!6)ivuzG0vqRf<jFN+i5+mIpnM zve?rR(6kh71Sl-R**vL6c(F{*BvbAM2!|Z5R)z*B1|Y6$tMoEWjtLV}iM0N9y|G0A zmtg<8ZMTW&yG&#~0{?a5N^}S_<K+~?w-+>UH1@*p9avvQd;>yIFqHb?g;jv7E1z!p zY{IL9Zvx=$PGR<^W^Qdj9^M=d0k7V`NUG;g!hGpj4Ea$A8%pVMGS&VoGq?flU&Zg# z%)@-*Y&vsJ+ryyITY%>f%%i}2-D2<>;LVCdYuz-Y9w!I-p3LZ~h-PXHDvXuMG$ue$ zePH+7Xe=;)iPa`uYJg(ZH!&VTb9uo)O5T|4dtYej<KG)l0DWV{(m0Nb)>)bpyC93c zNqKpAP5qa3M`@hY5lS*-lUbCN1UjD9J!_%C5kAH+hK-5q4?WRz&IT+NNC)j($Ow(Y zv$&=2Q9KBbysM483yaDb@B8y`%l!WOehiFT4@PhXXy}CG0$kTYgMM&32P~Icy`i9s zDJ9)3Q4-K)Bx@E!pLCcPscujy$Kt(z0RPO1C5PX$Mk_@oPLG5!vW;Sgx*pLdceIO4 zd;KARV&m%}!EVty6><T;%DQG6v;Gn{&WeZF=J9CAgW<>%o;B)}SjY(z3o#nBdprQi z$I-)MBL>b+FfdpT3JwJdQdwLDagir|)XLX<;}CKh=(X-<laZFT?XnGK1%SrR+7$ae z&odcBTG`$R1TyC}yEBv;ia;G%2_r8~YD+Ou#zuj&B%aiSVbBTn7O<i?zsaV%RibWT zB>X)kI6)seBF605PI2VWNy+&^-*Y|l*JY7A*xn@a)e}C{=It&7&u{j`^JKrm`%UzA zRli09FkHnHd+$s#jr@=?i+h{fvTJ-H$%nmu^1*-I&5RifzUyLK8~gCM^nQ;qOj<PT zfjLIgQRM2+<BjBHr_K?{9-)Cl7x|G65x?9*t_UTMS(Ew}AEfB~6}mmOnm5(6CK+?K zFCy(_79Vs9DxjRDg*5^9+QlA^LI%vO-aWtm6CLkkvqHJ3Ias6$Z%))6{vqCOdQRK^ z7IH#nQWqGO@SnLF$1=k76soGGi`=^BIGML|vO4Q8`>vV%IHV8Fo64^W_BmQPzo{mY znprr0Dt3J>6OFBHFxT7zlJm^dcd>kk^vmX6GR{2z1e+-&`%rWrJ=W@Y^Gn$-=*(Y2 zPwYk9$l3Kj3>wB;w`>@O{>gTq7@r9ntY{iAAk`nyoClJ&G`oe=mfZRiZP1?XlHh;q zvflR+odkM&n|bo&Vy*1BMud$DP6LHIn!`|VE}_BRkw@qRm?Wy3%g+{m^#6sx^gMEt z1<Be3#8}^xfUQXD`KhlXtVPQB=nOa*Yhw%Qi7gvI{`9t{oK#&{8Rn~?dg8GK>X%Xy zZ+|YVS&q*?ZbW2Ux2)h23PUFpTD(KPQexpPovR8-z!VtpA7wmST05n4G>?xTPctgH zk!`X_Z3K%UhOKGPP=)Ub>-@18uY+rsqG0aX8*W?h${!9ZBZSoFw8B`%Y?m;IK+Z&- zz@T`sI*bl;(;e-`a-WK6@s@TT<mQZJ2~6Ke3sQHx?>NEp)nwe*e;2f5U^0@6T7V9@ zGi8$b0Og#!0>q4MpjYKJn}SXz>!$Hfs@Lr0N_37$O}D*ywg+dfJ5BSBt?$vIL22YK zi+dxJeR&o)RY^xad?9|bz)2k$mDQkaHafOT*pZny!<8UdMFdw@>HaR+=1C&<4Mbtz z*y<B89?E-E=TN^X^3`OSn_0e}*>!1V*@mF!P{+iyTe?Ab@hbG*7ud$TbIKh0J!=RS z7U@;C1j5j95LbhR1^9kAgScXe;OW{+L_Cy7LoG^><&ak2h$lgw-;UO^|7sl`c&HGF z3B0HXpKQ)ULezO;^Vm!Cxfm1|D?@$iDgjUBsd!6#PsK!s{c}J+c@V*^L{o3}V?co8 z!=^&pAfAX_7HNxYMejLwZ-zWFCqnI0qNTn1I2uO4lSSddAY{tVIYh!Im8-|4gI!_p z)zNT9pkd?1fmPn>`R-`0VK|<m>NTo){wFZC0Q*mq%#kri(O?CIoLDE{q<0ErP~Ds2 zaU2QRtfoo4;4QjmP*EX#@<C&0u9(QEO~`#21dtP#k7@)}&_9wY`-x6b9=b!GDL-s% zMMI)zMtf!$t}Lbn*tcX0V>V=5g4YSHWxjol?YPY-y<~5&GMBfv<u%@}#}4Z7&~B1- zVs%?@on#2ygIIA>;Ic#oq%frJUTKg~`pO2Fx}hA1SK}jwkx}s++7Dd#M>8g5#WDNM zP$cZy@*i3+qxCYrYc(zxneQa*dQ^)|IThHAesaCksLPyAE==`BQzp768HDHXe#tSe zv%OdEs<ZN?*d(ik8YAiPg!@pVui@Q_RMi?8F*j?36Rkvo*K=r)8f4ewOk-~1lwPri zI(o>!GwS4tI?I3Hudx?@5YQ_O9Tdtqwi|6yYGyJKf8$I|h(U%h$B`@#H}gT7Jh|vg zpB@#C$d`N^Alf?$XxLxW+hyqqQfs+<=nt6*{{O5$epniFgjKV`%1&rcuTE+Q?&xFb zCekmQslw`wkoAZTt!n2*6F$}~h%Zcz_zErl=?EJ0l}qdI1D;=urOK>zSkhoy1RK;H zLR?UDBuHiCdJn_&6TrQ9#;ZCIET?d8X(6eqa)Qj;SQ<>DGQ8S-N3ysgjeGr~kXbV| z+o?Ep^)8s1O%-ARh)D3&#FO#}`=^iI=p`D{H{)I%D1Tu3sq~zDh8wZ56-@IIZBv+U zQG(rfeK$RYiQiAX7d50Kb3o4!c8X%XG&yPTC~pzg(LivKS#9W6ye#^|9l8gz>2I<b z&a9U~gXH=QvNhP@iK<IRsMIjd$(=i0UCx86ps_EO^?>uHNbMqz>L!lXc9Bc6^njG! zd^gX*VF5<oO@%_fI6<v{uGAl-!vPhrTbexL?Nl#QIGuQNHtl~%&qCtJKgZ!;iW7cC zihqcMh!-@TI8rciesHlEBMV{j2b|F*C(NYJmrO}*1cv^hs4W2D9*&SI{~VD}Gtsu< zKW(k(;t*`w@Y96(>v52NmZ4HaXoNYVM;``lD9!uN^~>6#mcNjl%7sLi-VscPf}~Fp z+#tX2KEmAw#KU<!#M|^7m%~lNQ^Y&Jl#^;ZTq+2YAClPy0KsZf6vwR99JYAaJ8?dc zgmuc9MRq{T+%>0E$Kn7PTCQ!;EG*?kd(CgJV3%Cn^fZZNALw(%J76Md1E^qJDBh&5 zlfk2I&pH8^wwgS=(vc_gf#byy>=jQ^HHO*xHt%0(S6vegybUb?GT1yp<61PfsCaml zpi<$b0&=mZF%ifl6d}rzpnsF;S-~wVyVnH0M~7`T8bG<F;13U6eicM$pU6*W8tG~w zTS@l^Z5FB<9{=TJzklldaN{m-lGs8DE9+>@IFv}c<TE-p`{@QiX&o%}|NJX1#FCNg z&YT2li98Uz_qrB|!v_d%I$KpT=t0nQ0e%f#oc;A;EOZ6aX%s*)NKJO_B)hv~ook_z z<?l4CZn=P{ga^WTHr;DtRKl!`!CJ&7A|O<1e57@X>pBHoR28bc2J#7P%&?vHCJ3Vy zrs#?cRrR_2cI(w9G9r=e&cQlN5=j}|vsz3Sv+OjR9{>lGbG*gWx9xPI$E7b&Nc{`d zZx-@#Q3$|mf%;s_^aCoIB5OD!A)rL;qrE?t+M$oZPlZx<3#HNo^=p?42D@jIqB|Lk zG@UUGAs)PvbM^EpLlqM?nTIwyW+b1jS7MoMU)ZE;H`kN*x`kS08xudt(9Ie_Z(4q0 z`8k~po%RpN(k<}mRXL;>y!Gd`U@XtA3xTx!AX2*X&4MY9`%j3C@1*VlHtYW7eNl)b zyjV^|oxRyHCR@YvFrIZpicBmmO@yD8^Mo1$UbWG~&_HOqBsghidA4t1Ual`9JcW#I z@NX6kdtl%K^P)-a-N?nFrbbC*WHY^tsT#31q^=D^x}w<-(j_97zqK#+ED3VlS?`AD zoY1bdW=Mt<W-u&;LmT=~^Sd~Wly7jQ7e$0$!>H5Vyl4Zk_wEQG%I^~sS?zJNGE#KV zEEbz=|BzULoF`_bQyx0=3lVUVByFaLobzPSI2WSP)<SvV=(tzTV^R_T7rTGF7ekKc zP$ZuxLMKF0tdff$v2+=06PZITeY*-Ek5k+_;r^4XBQAuEwzarV3c6hOXU)Px-F}S5 zY9RMUx()R)XZ@06Z{QG<xLsfsAxKm;S*9XCwtlR5STMp*|H&2+9<VKqqHs(Wfq4j! zam6bHb<N93P)bh#J$ejldU`NKq>XHct#bL(9ua7;tnPM`5RfsI1}vy|rDAikPv(NC z(nL!+on$eINYVMGO&Gg_yqEfk^kYzwhGV}-&eQm0Z<w2^kZ3P`tEgYWt~LX6{e@vx z#m-;WpUK@K+3BJAc?bdP1JR2pmx2xSg<eeNVgSik%E2OxHN;4QhYYgl>Y@Y~m8WS+ z;qGTrweXROWzO$GfU9)*m$^{WQT-bRs1z5v`!l2aEqsgVn-EC$&l*RPvay91%jren zSPn9XF4<M~?;@QnxG(E~Tky@>sn(?J>6g@$uTb%OAu!C4urd!~HZ3Ce6>`zFuigow z(of%L(Cc0;+4aWC!tzRlXmLAw?_q7(RMRl=feqS@G+FA$j2|0p+H=4^8pNKSg1PP! z;%6)+EyV|o9@QtFNYp2HXKOpXI%Lw2w}()PHRmX>P$6*6%~bD#pX3D-`lz>)*)*6& z(!wfl8BJb?+9Bk=C?=Dag_q{znu!&hLoaYLR6J9l8C7Wt3{Z3|O``-A+^*{@a2(?s zplFPMevH}~juFRGb;PO85C6IeQk5U!JrR=D;!kD`0i>gV5^HViS}xI^5!ebCJdbv~ zb4^kvHb_6GYRq{(^Xoq{&r#|pGW5_}RwWX6$$vAohBMJKLW`bL)YVIXcWn2e;_raX zj-ZlNhsr9fCfh)-l$>pYS*1MCwj9lrP)2Uf-PBEu3$g3iJ%wvZQK~J}$+20id!Xt_ za$+~27yo^$LMfP{hr{Li3sn1%8A<f&+d6KrF?E!#Uo*rb$^W$()x2SE+^T_pCgI#V zbNEsmDZ*J2vVzmJq~VOc1=A#6;>j91d+C;f;jgzmok?vU!g;6bL?(9CyMe6qo?OjY zWRA1ywQKh`ZophH;PGu5gT#r2DXCnEqJkL4iELwU&FZvN_C`)-QhoP_EC!%H(=CX= zpHJZyrfdt*IV-pBYq4=c##7mA^>gepUBCOM7rky|^Oi?5mNHMR|7}m`_N-ugL9*A{ z(!Xl~u|-cv@f}}S`JA~Q;CyF$C|9eP+A)Wa>gMVR9?7pRxbl=*^l{Tq`VAcm{XMbO zh7u+c4INi}xL;Sizy#BlTdrMD?5K2^-M+~8l<X9`6e@>iF*p}tn{Ix=I{P_YnO__G z*rQiJGA~dx7^F|m(8#sTM85>a+2hxl{rfJc;EI>mTI2C!-lq?z{mU2m=O6-q{P}ZF z<}L1f-e->*^|5#xk0XVjjFCRLHZ^lK9Z-RL#qJWIi5A@>b{eSx9?i2|x;<%QoDEWx zRc(2ukwr<mP;-8qoq~!k_Z%S`4X3#9tY5Q?k4W%NWzSI{%z*Br9A!X$frv2=_sw!O z?bJ>y3-aI`KND}w#8LgpLc0(I7I^ot%h{!OjAM6+YqLy+RSu?lPp~5O8zQJ2lK^ks z#81yGDRJ9`-1vM<Y_dq6yKo#KoTa%C4K_&JR&B;d;-n|z(6Ee_dv@+V>Ed`>3>Hw2 zJa^fD0A9(vFUH-Fr~}RheMD1<#9vl!+<EvC1Xy1`Cjll-l=3c+vY%cCojyB+$Qu@R zFT9(L23gZdY%kT1R>IgggZL6UnpCF_ww3rs3&J89Z~=0uJvxK>Uus1q!)cM#SQb7J z*_malcsB@+t|}`L?0CeeN4piLFoeqVgtvE7qTLDKm^XO*RXlq|3_>_VTPMrCV3}u_ z<~Y@05968fOhN4I^2evmDaR|FXz<j7hYpY(vx&1Io4@&nHx!DGq4Vas<fI4Y@?t`+ zvl6SXe&sUaWH-C#y{X4T4&D|HmZ}YQe7l>q0)@{RzT>MV1krwULc8~O(_<ry>ENS5 zbx(M?!CQF>#cLOBJ$rM}(91V%`LH`}ubofNKUzYkUMfZ54c4#ER6Uf}MCs##gb3+% zgBa()3ZSPwx<FO4e|7F>i{-JN(tT;hcgg&M^6dGP7-u+M$Qc|dAvgkH3Etr1hrkM9 z`_p58c`0HEsF&k=p(J2N1ZwCPZxZ*KbJ=o@cMUK3q?N}K5uni#7E+)B0>BK#kZPWS zN`O-Q#ZhMYx|m|16k4kg1M&;29?4%$%3(g{m096>y=|?WADT46js$ZJUz+F#VA25t zP~iE=@H1by{Cs}5JZ<{~gKxkyh2tcx_NTcab0$?*Pd{4)%W)(i$~>w_LDV|tg@puJ z?9C80q!t=XQg3aZZCqcx_(|HX)oKh;c|w<~MmG*osoTi7ml9Jzp04sLhClllXGw4q zt|Gl0W<z|<f-`6GeR++^VG)E!309t8>L#(qKheW8Sw*$8dwkuSNb4?{pS{J?;ia`` zR>JsaBjKDxW?Ny<&d<McSu}zN@!m*X*4fm;M`Qd5;+`3n^Hq8Bqa*&6QB|z=tkAuD zNP}SW3cnwG<g6`Q4Bh9vYh@~|1o1qZD3)TUR{N%6)JfE21mlHz7K;*-nSl^z0Jxn* zEWT(WL2D2C!EB_qNb`Pq93WC&>`$?I@o91VdroM6I$svFns;?LeOZk=cG`kcdWs?) z%tkp$N7Mqdx1K~}zRV8wWoB1K#8`Zej<?kS=wYE|Xlu^BWJ3gRn;|LDdEqwTo*W&F zfe^X)US-FIssw5UrCCl*8K$$D3$hSAn49DNW!~}MB917{pmS>lRU_T#34%q>Dhd_s zNb1n(B!`X8vrHVy?&hu<$ks&EDTBfqM%*$^mP{3mVh*>+;CZHp{))qgcs@*Dt`8d* z8ViOZ4;*jDfi4>(EWW@f*o%M8`=n=bY$yz#NPM2EXBh@UZwp2a`8cMzQ|0lnZx@kx z=o^QpCI+4`Q~V6GW!M9>>M`w-MF}dUgMf%-^}tq<&Mh0LmZ(AqiHtMi5dw)tT_Xxw zoVX~OYeq}<;?jE5)w?HqC;m5&fbnReYoL28Xf5x3zu>7f=HMDPBELWmKo0yi+emW| zr?BmczVi=HHohTY`T+bIQ0<<A48!1-6%`t#>HeXN2-1V@=-*79Kp93!Rjs=R4{+T! zBv*L&p90r}T5BZ3Sdxoy9C8fA(WUe-#bl^Q`ck>1zwwt88v_SCAF4(2Ai+wZL|7g5 zf4l2p#R5=XVaUtH+8W`ibTWfFr=Ne&!)#-)q!y{)99TThW?~>3m+sFqB;)uN6>?PB zTTrm}vXw%J-Bt-?slp5?8rE1csOe_qh3CVS9BVLK7rdXoOyp$jU*{l)*z29|1T6(Y zyrbDJ{&7;9+r_7$i|5bgnMZ^beRP%yqKS~P-<6F0Y7b*Mv~z2tTd-@)EfAWY3dg27 z^A2*1={u5wkLn;v4<FQGjVnG#dlF@Jalke`Ql?t^lVPVBa*Mn)uZ<SIK*-$bYf}9a zNT)JiidP0S=Lii+dVYHqs$?{uIAoxL1?!<}A`yR1okeHGcFC>}-r-ECgh7x;dm`-e zW(5m$&ekP463jhvAAamTvk>U%PEHXAWGrTo3=q~MIr?l50V11{*+>g}Dhghrw@K%R z1&;MAoH%es21sEFo<e==a;Ajn@_}!Oco}?}Ti_tj(lo$gj3)Kv9LVfI$PMeYO}2@} zEEc2WtK<&LOcxWWrr3AlxoO#XV8rkM6M$jKgs9{8xc0Q})}+jJ3++MPk?LflU2yks z*5}nyh*bxUS%A==hVBK26yeZuB25Rxq_?u5lu3Vx@+}biEkDDSLE&!mjs^r4A;z0w zYcDI@w*U^5{c1zXZ&_ulM$4juddc6w7`dk{EPdi=4tGp4^q@Vy<IV`CVWdM4kPCu! zd+V5y50$x%TG_z#D5|TtSy!X{4m4LB`s>mRXFl`oeP$f{!ztT_fU*IyqNa)kWWtCk zNG!<sjT?-`Di#^3D=mEuiVa!M|EB)&rc|%uvc7oyNt7-jiQ}7w4vR64W+(B-Y}YsN z(VrqoQe<JpMWQzM15km6H&~ml&Kxn#I&LZ+#f(mt3h(h-U{Awlkqn4=mM+;*C__az zhd@X%tj5oe6|72n_}6n!Y%<F-8IGJ)r#X%%om0thJQo@AgR((ch@Kzmnhm0e>4M>_ zK`pqk;X&QXr|%<z`A$!&-AK?p%*0A54J>}l_yM$^N=fgQ`CxA{ci~pt4XwhLqfu<6 zL*#L+nJNPRy#~eE4D)^zzB&cgLIPs8#}&r~W<)*Akg`<DQCeSV=DPpamoo82gvGG# zf-E@ISw!iJlO;57{%B|{Pwk0_fIjyKu;#=B0(h4kjraL2)_EN>%MC|uvJbBEp>F3U zj(9{&r@P)C?O#mfJC(3h<`icF83{46wrQH-j}R`{(!Po}?<PTZUMEks57x@;6xMhx z%U|2P=vX6>shv!cBaSkk4yVSShs(Z+!+(X!`LAH3bp@o9cv63MpiQ}SZ^uDQY|LjM z-y)vm91S7tl&Ll9p{+!^T}sljJtMi#9P*|4MMk)J2BGZ8A><nl($myqkKzjtse1<v z10*g4%goKupU-k<_IO8^n;MRFDYu~2G3@|fJW3H2M%HP#;HrGO*a-&|%}hWgyAx>n zXU>Pij-Z2Bhq{oRfyKC6^+NtV%@3uCsgReP_B4}=fXk9*o;;zkz1)4mn0mfx{GfU& z`ufK*me$13Eod&bq}ysY{?Wc#c6Bq?*<g&g+djXaIy_9ruQF({40S*AiqQvZ8%E=L zrKwNR$TfOwqH$>vCM<I;0)N=HZVP<maaxl5p~U=q+U2u-C-xU?r`*Ppod^!l!y^*| z-MDYf;OP4cXrvq(>Fsx1+3gmbXxvBi++hF6TwmAqhza_{76t|WK}+nR=cB^99Wo~I zOj>h;ri_|rK!?lFM6GV!4FbpKGu@drgiY{a2(U%8Q1FI~DsB{j*e4?CC0DP8SdWh1 zEt#8>_1>vV&9!jTeEZQ>%BjD*Y${|jrZGGr%eelQOfHc}G{E|E7y#^SUAs1@C3QlI z3U)_|OdA!(!Ls{}LS$8Jjl(8V7B&Xaq3yDAf~)y=Ua47M1I|~jMI#3M205OS<cMmo z=|?3+D>)!Jz5}&f@+pp-{11wC%0b_gkDlKF^Fz;J9_brzobu$Z{8~h2Z+;`-n!s*A zOElU3JXVwEwporbj4~+-rI!a$)!Pu!?+sooeyany9Oo_z!}}|Lv=g;0g*nu=+dGqJ zOzBw?O;(ACK!aSJf$wTg>Jt|Gkg+{Rg8~s(KiCYTS1f``gu0DBatQ1hn}Gjt<#mSu zj}@%#+1F0xD|s(hgmvs@wS>iUi(&lu!8!YNJt0XfqcHl1Fv)F2r1@NWs|_X?A-?09 zJxQJI1p)~6BQuQ03>Go;3Rm;t4n8Wd9B~mGwAI5%uq@TNlp!-!hnf~3h4!<o4iN|! zv1W9N*H*VJq1U#R?wJbcr5yyfgOx>5*rlu+|45DFtl<e`5mm9Z_^@*-Jk|8auwy*x zG3kz(g%^gDiIkP4_HhQovmVisLhFR%gHsP22hv^;8}<%-Z_d&|Zy~J(+=?LG#B&CO zBBdoQ?5n7ZZqEpFeeY~zm`U*L(TD<WRgqZd)P@-j@S-A_A4Y2`4ANeCnT8a}!DK0J zF;N>}+;hn$3Zbo_AVF7^EJ^VCmB$ILaiPxe-!Tc2xtLrmNuCWx5hBY9;_)KM0%UvT zXz5K1)@&`Q@cTt&SJt+G!9A+8)(ko{(-xN6gU}KP=0#Gw;7F{r1}l~r*$e{|ok<{9 z-5oMny8bNnV_CH;@bL=d4;*PU59A`znLU7vGguZ#oO96#lM<ORyth*7TuZP4#=cdu zKZE0;V5pNQXvfq@1i6yskV$fhR5mz}JJQ}+LS5ldLn8f%L(zt&rDhXC5oivQ0u~={ zC^`b~D`BNE4l~~J@2O|c&I9tdtV(nko*V2m)Tyub*;y7?zZP_D=HGM{cf`zmmhHVZ zwB*VnIKg889ub2;gUG4L!lq^$*$e?`I2Q9vRr^A+0qp01FEP4Pl)x#jCfUY3U4-t} zzYOLOoH^TV&u{n<2qRf@MwIB&TLe+8b&2bd`@)5rfG;0WgGuY*5H8w}I;m%yOT=Y+ zuVX1-!b}}mw(W9^MElkOcgU5r=BzZUfZI3?TW0K@hh$c6vsb138i3?XiZ7zW0MEdI z?<(RHssrY0N2zX|nV|AStgl%GoP1{M);e|K9OQLaZ~}Icr*13`#rCL5mn5Up{f;(G zq?wf~<{D*n`8w@s^skPRxCZqo{O;$iIRC=F3Q)i3&1R3~5~97QTV_JcmnIO*75E|0 zVg)0L$4L`y*zEYwC9Umim;XG<-Qc-9#FO>c=^sb1C;=hE!{g0;PA9@&IGtMfS@_Bh zhcS>wb_R1xFo@_$<hnx%$mUMB%+>x#wRP0or4Nvz)+3aIiq<9W9zr$pS54gTfB$Q2 zm*6%W;vYyB6BqSbTvW-3@rcCE-#X;F0F41mPFm;>@D=sS1|IY7@I?mXY0;l)meG)E z0e_;R!JCn*r9RWBU0=kuW6wxR!^<Tz(?kk%0nL$*yGUpALKxxJDa03Y?7(p->tBv! z3WI0KHdFq7XE<5KCS(iS;6#qeN`K4Cx?}^etab@Eg=7fVF}K=c*eC+&7<>A{B<6+~ zO^x@W0y-JSVhZI)m)L{2&!@YhOWk8RlTe)4s9B@SsS9l>aXlCx3Z7_ewr;>n!>ORy zi}pK>NbXa6>dfwf8LeAvd1ivAz%h46=iE^*r;8eG-8Y|F#)7drh#iyAnpPx7O+~h~ zO7Lo>sl}jwy&f*?IU!UGEK<faOlylP12lN(8Mb=t!vO48mM*G&#sap|kDsJd1DTv1 z2>lpnoD)fq(zlH7Z7~pS347BdaZJOsT0@L$NzS8Fz>>UK_O7cPvsD3PY@H~FqZCU( z{~rKjK%BoQ>W2M@@qUxV4)(+*#+9k^bas-nJVwN1%G(-$9jOU0W%4RGZ3N$KY$BnO z=ReenydvY%haaby!+eY$UXx_!K^?@vS=FJjPM1X;zT0cl%tQ?B=`f~ljUHXOi8Ifq zPlTzDn%2=Uev?@p89#KD)n;{mq}V^PSslUTcQ&buMQZLesSC|gJ)^qf_cp1c>Hf>i z=~!4F%Wowit9Uvb9@{goW9eJuXhi_ptl1P-hT`<4MH3jv8RNkjlPJlcUS<+SlE}t( zCn`y|0E%JweU0n<Sa{Ok#hIM4-O4YW?9%7T{96u}vx+Brj;SSi**E3VX5J%vK11f5 ze4L^Y8&mcmY2RejN_ENly>qIj9zq)*o+m$HVKPTf{&t>-74lD-;wmrmio$+TduQ0d zWne@E{|F^b*SG0??E--Vcc3FPd%=5M1Xv(9P>?8%V_sYi!Q8m$P!evNPA(KkK@**V zCdshf8eGJILU~M>K@k?W21dLZD+`0G32qmv93SH3@k5IY$~kg4NcoItv~#TVaQ}f) z<07KCnm<0ccpMzPRar(d5k3GCs-?i<B8?M`#su|}tW-twf!m@B0`21_Tv-%KE6@E~ z%Dg2$V8MjOvHAQ0x2-di(*EHok@B7}Jabv*QMBEw+xa3RNBaX?4qM_*-XP0IE!V6; z-W4iE*M%9j7F;TzlIT)Ym5qu2jur<bH%l@8W3gPDgQB6nWC5tX@9vvx42CN}ti9{a zUW`2)Kf){kKEBxaDP^w}+y{GV$vmSuiZHnOVL`?N{OV{IOATTtkS>LY^1vw+ZIo&9 z@@<OtT7C4QhqD^**p8avIgG=N<xo<$F~ZDQe-3wT&cr;JIa_XVIZg07zL}W_nae7@ zE!xf}a><!tQ!_NGq#@PDEQtXjez_aCIW>8`%0+lIv{M*zaCkep#CmgX5}Vs(Ula{v z1(jRZLa!-6_R|h?V++q9bls_m7X7hr@*#FCq+*iqBm+YFB0?bkdg{JDQ-yt9f>|%x zk&A2W5ayCf&QIRiGQe?k=E7`+vu|$8gbWVgC%Q(9yDx*`{h*+b>!cGRJm13r!e5^c z0%?@;j3)2hyJnZJ^Pg4rJvgvxwn8@v{A@De7J{ILcZt+~1Gl-nM*n%hRJggKq0Mc| z_`x@q6>7!`iNwm{8I)r1sw`OoMoHl7T}7!{a7a?4B(DS-;Jch$`sJ#D%2H}e=AvYw z7W-oXV&@#JibC8hG8?=>TiAPdlCeRmjK?T^Io%ZJ_tOSeu|~`0*~o^%b1HR_WvHtJ z@7t2Evy1}TE#1qRCVM|-hw=d$0hG56bB^gYy=F^+Msl(UeIUiWB*`(W%;{XxZQn}l zOjEwGNc(PJ%eAfu$L5NVqy6kjAZO!_&~29;K`#isFO#9|nYnk9?^jah^rgm#MyqKv zZU%YDZJWI|ZOW-?2J68IjM~d$i7wTB^AdKE>YnZeo`Vp|CS#4_?98#zLIgiMHm<vv ziqJZ$-!K(e68k{;onoYcCM%5bY)gnMea?7+5#itx0&8!_z*cAm*KAY+00$aln7j+5 z5a)anq!_fj1vm9hG7zB3hjTBswu(EhOnY{UVT&xIHp3GYT|w9Qofl?B5Ko_k<b`Wu zIhdXt@E+=lhRoZ|>@%K!E7jl2m-Ej*U%YzNv#$j{PCs>XmfVabCZ#Q9XYI<pJ4@b; z(SKi;b7OV|ug;QQZ~V3dM89$+oiJ)YW+|l7_+&$T_g<39J7x8I?{iXb%*7<{73nz^ zPPzRWA!U<pSmm5tWopAa5KV8C(%0m(G@9YD7o($1Db-;_#*a2mhc>%VTotv(3KTq< zD8y^#F~*{sBsZ&NNfdXa^=-Zp2NMfmZj@aJV-n#G>^)3ZUq?K&C~1gBbH|2xwL~;6 z)k5}&c!qK-w{^+S5Rohk29hm~SjL$DPRxIS6qB=ns>GGoxql~62#?ean-?UieNg}t z43xU;!$T!bJ|1{Kb;N0s$n|eV3e{OM2am3hl1OJtHpi|XbL;y7ld;|(Fe_tD(#tLO zqE^i4!i=-3%J0~gPdcF-vp1CT$#S=j<ujzyS?pm96n2i~eAC44z!AgzJh1!BeQ+e1 z5vRH5Kz4N*Mp}tjQM5Axx>ab?0DFL2tn_X>DC<Gc<0+_!MYsY`(l+D>Nwg*Ry0wnf zN?YW`4sN7b$QM)QdjUVkKZr#xaFg)sA8CE<D;2_n&~rGL&A6cf+_W8^M-H>jpvy$3 zK{f@={t+t(>@pb2#3u0m5m_SQ5r-(f8#;nE!Y66f3_V&%)`ceNLAGUD;1`(8W~@Ay zIEseL17=hu1jidPg}B0AW0wdYa;IZIO2ilm1Ad&~$LaX^GBO_;y^OUzHyC}#$f>0R zM~{8PNZk^;+TbbAl<o`u>6J4=Sb5j)os1`ek(`KiZHect5)oKYyCbTrVdi%;a*dt_ zzn|f64NsZoNZ>e9>z^pwsHS_(<;ZZ5o6UIkA12sL>l#TQT;bV58L$M1U&@0h6wOOE z&coZn5A+6T<K&~07*uVI=cdMMJnEX{d8>T3jrQ=$xSfYR>|d1;wW!y|Z+hf)HPOFM zgZE^(r$n8+C_w3d&Z=@0rXGRkoONWJe1mp3c+12ZVoJ=K<7|1rb{t{wO!$B7#S1>Q zJCgS1vE7!RXDB(Stp5=O*kpzsAFbA<q!OdBUt(?YZ*oN!1MAc-y)<GH%^33+)Ied- z)Lpf$P}XJ)sAn^{0Ax+R$;Rf3jVV{R@|(5k#t6>`Med08R*mAvGFvyPZ8bD7X7n`` zqUhTiV*liL@)@%}QJS!)!f99`^D5Z!_Lu2BCVvc>C1cH2JpzTv?3crSdPZsc=0)t? z@o#G5#I#|#2l_I7{h!~x`Jd@OUjFb8w1|O2*2MZ5QG{!AY=vIsWca7VvG8*tPKWfy zzQCML^sZ&I+2{211f&7f#d=-=^Pblo38Jbp=qq^W(zJv@;p9j+Ht4IBB!?9<!jrSE z0gMvW+McogmflYf>V4$*<&DH^F7Uu%S&bEXNBnj@90uNM%Q6xx!HIa-P7-GZc?GvT zl_3y^5t>}OafX(wzh!jfP8}KCsblpH8lC;g0LFtMT+GbJJM^bji*c@M#-`^f(LI7O zz@a9mEHx9u4s1p7Fx)gS`nN10Qysrh{RZV})8el5wlaziWh?v6U|uJ|6qsk%oAPf8 zE%&W$yXFgBQw_|RrCK_Jm*j(osFs6<cTUy4VRo9}^{J@8Q<J}TF7KY{2BUZ(qj+)9 zD0Iyuo;{4Bf20sF7|4^L2@;%Ym}Wm&Xp(1;4^FLX<NK?JnSl`_>BdpgiLsgqPXUt{ zk0RyR5lI!~{zGV~Mp209s&;}&)j;k;_eMHe^!HyumuS+A@BFc~R!lEI>jnOKC(${B zQGQ3u<Dh)Zu~o9|12xcqeSSZsKq>vB$w1W(U$t7=OJO_E0~$px!s5tHcHfC1@D77v zHG@4H+#4h|=ATYsYn+BIboQj9O+k>|8piycRm^N{W1kLH@h2gMaVcCqQyIk)_8|}o z*<e5^+o)k}fE*SC2<3J0!jwFyv2xo+PDEliAfR7rsIKh?nhw{28yIxJrrfqc1J53s zOS#=Q72W!SF!q{igSZ<k*!W(ksFou@0ao%!44WU~=zkAphE;s5zt3u`GmG#t5;?xc z)!|&GBO<Gcr6EQIH{5tSMc2IPG|J%cu18M4lLLtEZn_)j^J&yUur!0Z*QeVf8}1(B z-8tZH)gGpmV|&NthZsFplL3}K7A~{qAi}xr<8@r#PP9qR({=yKW5ow;;dtjP+ik78 z+EViegl<pYgBzl}t6<r^N3nJf5xD*PyhW||0OJAb_W%`;o{l12Sv4)2Y9b@&Rrgfb z-F&*EE;`z=r9QTa7s)Xn+01?)pTVMB?a-Si+b!1lGD{0F@(x_#d|Or1UPw~Hp<ue~ zp9X;8_@%<A5^e$>zOeMY6J<P_HcDc<IlN*9&2J;yv2_cYM0dbbpQ8Tq>j<dV;Av;% zH|$K0a4_;8mD@*LFZT@Lw+|zD60T$bLUQ?AcCHbLlf3%=pxX!B15}u=5^iv#=mzp3 zsD{j>lX*i9mC+tD6kscWoXL`Qm7)Q~t3UQO$9?R-&iNaRYk0RhAGyQosNmXnk&n#$ zr+tXmz6|n^_TL8mN%#wCLa+S(vvAAW3QqIOuhxXyQW0ie?8Y%c=pC+mD9IR*2Um-B z?3o-5>)YI%DNGiNd)QJQy7QXrKlNEHlOTn{P?ns$jOWpEF7$beJh)*zv3p~>xL>Tj zIKqL&&MSPMG}l$RyV73tp;aemTtOEo6y4S%8#<mEYP<|vXoR!QPyj}~*GY<jZrE_k zn&FI9%7Rjo61d<oCAr&iP@g)MtiY-?^fY@fKkw;0@u-P^*^}@bz0a*m{-yo)xmC@- zwBJ5&$4qdh2Qe=Yu_AFc&LIjL`(k`1nQzcYjQKt<uL55jnV9+^pZon>>~e#g?9f&$ zV!g5Q!oZ$WOn@12^X7=nr$=JvD;gQxGs$e$&+94KkU+OJMcOxZ!Lx7;TpzFkuX+~# zY|bghpaNm}WgdR6A9DHLE4u(3SuwBK+GbsrWNbsG%G!1rEyaL^wU+9sL{}-umxLxk z%>h^R5d}PxxWpy{Q0T|q`$v{8vkHB=k5LzfAH6Tj5{igrIo4>(hC=@z+b6URaj4<a zbS{O7azY{quI|5J#F6M}s1&`)x3pH*G|)&R*z<vHtY~6hS)SU591X!vZ(AWTrgyx; zr^m;^KIzDb<JrB>-#@pUAE?sX2K_)zlR__Z?@6m)^Cu}CB#o%xV*2EOvH3L_eN)+Z z>vEx;Q8}&UIosE>JtqZvj0aI?BSSm}R$Z2h%In2XT}w>`LGq-8wv-SfGqTjR(KArj zUz4pUz<SqQ-+TMS+w?NOi({n*6lLIL+w1C?HgV^{kQKgoCp#O+lD+FkY{YK?k+GLg zN*=iR0<SZMG;d;o0L|#azzCE%zMYaj7_jycQ)@M}vF4RisLaMU*mkzsc<RX+iRvJ< z<sp!c*}6R|B(@rvtyAnWl%nkBM<(cB2z*VbTs(9G{_wkRWVhvTd@_I1lb(^54#BX; zu`Z6woTpXe@@W9a=a^sDk#gbyOainlyTP_*)?ve}vpA5D309S7Vnd(SbqU11agMhw zv?QLz+8P^$y`O@|mh)p5o5E&PUirG*Rdjprp8}&*7{|&!CLcZ-n2bLkeUzN+5$f>L zkpO|a=yS7!JqvWlDMTm7$9^*csB=eS)QSXMTB665!U2tOIQ=}TzIP8N#~-&`an-ta zdR8GPSOF*37jQUJc;$)j{H}D95BT|VQH~hg?eR+hx5o1heN{)X_~}pfP64@YJq_!J zwMGxgZLmwCq&=Rt9KA`X39|U3*JL-CUFC%hHPA)%Ly8}I2632cGDB{H)ahjROIHcs zdbykMNW@b)D)|Rf5B`4Yy?YSFVZZ$1wb<)LoGattZJji+5ky_%DQ+2DO|HsaEzy7s zZEC79_cj}e(_aE8z?oIo_rgmiw-tI&GyC20bXZp9mSn17iWtEw`##(bCf(N`gG`zD zhy6ilB!O%Hyhs!Wt3slO26YfBDLmp1LnK%LPnS8zfBHFPe|)?d;!knUSMTA9n^yKU z{jzI$7tdB^QY+sD+_CNuUhWYR>HL0JDbfs$q#xs{?`)o-KLD4hx+RXRY%i971ZK0c z9xiTwZrpwpeS9n)N72~W%5%?g0xkboV|os*JSFq^Wwt!rcZ@5F>zJ6i*1)TX2`p=< z?1nH_pVsWznLBq!aHG4cbwG(3X$PZMlRbKdrnH_%de)<;;P7!}A{qQZ`cdYDgQ2^4 zW*EsEw-yOIR;{go5)q!Ky)~sb7~z%Ne9L5$7x@MmqsC>`f@V0Tis@w;+Xm?GVR9s- zZhWLWp&=vk7c7diQ9Is~3y*@+GFg)e++jZZ3_$967SrR&@u&FlF@8M5j}sEq2!#Jf z=0HBL6d0Yd`4%PH9w$qf{GwThF?tjhAah4?OuCu)E;JZiOpeb^;J-*52hC7l^d=Nz zenJuDC(r2fWBUBGr=*YcC1T?0&@MD~?aJOt@5lhN_6fY$;<@QhWpdZqdP~iSAxxjU z+8YTyY%6ab)|e}iwk}L*RXdf1cti1f^E6qHHXMqX`WW$Tu+{;5{84aMEq#Tvx9A1U zjn!bC=c2vR@W6UDYgA-yWYkuDJ$Bk<qq81cZ8qwB#zq&q*ISwjMFv!q#SxjGirEKh zJ@8B!3%N8ZckTsVPVD{8YNTzqX3)oUq4vz6<YLW}(MxBHjRNHiI&x4BZ;G$ZbW%cg z9ZAFFL96Q+Hf)KqmcEW4#~vG-^lqIM=SO0mq^qL!LoR}RY~|u;a(Quli38+TY4pcW zf-$~aN|Zeu5YTD>>9(wMB(q-0oaoS9-*)q1A{xTuL1&xgc5jobMB7rewQg_ONS^xh zUXrzxvAH^qSA;{S&-!`OL|}CpwQPJFn<h5Wo+X`}w5Dx76zve+V$S7o!Ud{kBO}&A zW%K7H&J<+|6F%yYq-up&L$q6rWR@nd^$pDZFfx6y4Lcr$Sp0JNj?6g3{hcv|7c{Wf zU@?u#_ipUK*b;y_%b@iiQLtu*BnSM+#^=P4BWVR(!V#BY4=}u@2JP_SZ-f%&&)-jK zXh&j;;5Jmtv@HUDy&)qYr`|Y#vb_~;OJHPHO>i5*zg+bFXgJ-bf9<7It;c&-@zXZ@ z178!+=@P-K$<{gLmK?UsUUh4L%2d=_uc4pX2fVtC#TMQ-01Tqj38_7rJc8Cf8hblw zaGUrRWG=-9QIkDr)Jc|$--RN7wTi6@t(Ikg8%ZuGL1RoX*PtayFvi3f7iXM&i^kEn zc(lsPv`zm_FF|Wo49-opNqO`Xq_-oYs|qU)pu|#%$v9hc7=Y5fhUv+JTb6b52=2i} ze)jeZvGMXiYT4d6Em{bx6D5V}Y>Q|A#J`O(!22-3H~b5U=?4DmBBG`%vvrMMz1>r7 z#NmK>26-Y&eVe&_)fMHtSvir&qgLN6eS3;wbU=SLWPiY$K&Ii%4+co6OQYn2fs8_e z*4&vzm@y7e??EOcj}6j{-Wa@0f=)kY+KPMEj$hMOnm}X|hog&bjE4tw)ZS!Nvz!0G zzZef<D4)6<a~i5afP|q~4mKO_H9t-#Tl8Tx--!7~hs4EL0fv$mFKrQ7cvC}fIkGH9 zFJQ4-j<N*KNkQ@ZzqeyR*V+o6nCJ=cds~%Fxj^xbe;sFAgJF9bcTU`CQl_da=}9s% z6#lDrVBd6&LF(@l*Iby+z{m=Xc#(rnMS#;E%*L@UaG$H@sgb4~k(bxmPcRUV_hF8i zdm|*>aJULd&VXSdjQ0M)nE0~pJg7)0LOVHMbnswILR(Md98R$(mS{ztEq1sOryN;C zC!EI_!1T|RyfYLHb0sz{vrQQqMA3CR15LT~@<Y>;($#y}yd-JrZ5az0D7ocbv}7op zSN1UK$eC!m^dzjbykRJ!u?cp^cj#T-(CQ<uqjDVE;9Q+6<0-$#ECB5>P)>&bVz3<y zu7UrfWdmyXF~s(<FQLMYIMh^L>|3x%ZYJKUF7Q(j*VcWvLsAb<)Hp8uL8=$ejBxME z2t4c>*;E=BwBO}YJKMm@0&d`OG)wSD$y<u!1yWR7{4UjF;!G(dvdpwz<oT3hWO)pF zD=gQ1v0Po{>rGK^{a8j8FV4fp#x%_LS{k>P9=S;Sl80P4`L%nLd%xCLV1plpjljC? z>Bw9*hFN?2lE%RWfaVkD8nzzBj5U@Q)`mtUkl{;JO8-f`5&;s%$0W9K$(wKs<S9pm zhIvm-6(y%;tdjIyny+cicEuXaPSI%42J~WvVT++r`fQj)0m?CU1VVE*8|+C4!x|U6 z5AkOp8Lr{Rx0IE1`oP~|SL%k%O;s;HU)Hww(!Q6qCpI{@;4~|YI4_$SBhmBB0<+mx zoUFM@iquZmAo+{bIe@pfBa7AjJ0K^LzbG`p3lc=&b>+$>f8gYV3vIwe!3*o%e3W2h zkRnITeqf5%QjImytVr(6Nf(RVX19hp0dL@r0+xO@a`01t!c0YIbHfYLG7tr$%F>ew zyf%h$M`P`@v@UK$T`1~G^gU~`XP1N_Hu@&NJEg1)6W<((uqpy%FVvIQwAdta<hqDW zqBl`V@JxrZSq&5Lg%3*`y${d%duxD)ktK6Zro1XK=BO7?{^cn7e3ZNzC0~qa&m0}S zz-JU33|_n($ag65x%m!7Uk#{uT!p+W5nxwnE|gP}dv>zge^Q?iOixgebrK%RUcg1T zW#6MR_@j@K`-2vMM;(cP&lxuSbQnX~1Vh|}x3K4Il=XHnK?C9Xh7-h~bvCu-!f)0) z%9z7oFe7W{&LS8Xz5sJ+etd~&$FYeOYPysjX0J|;BidOH2wvIFGysNJr6V#BZpVG~ zZH@^JFlZ7N%m-fTh`k2Ptdqk$QA`h3W^{3xh3)9li%Q3VWyQeU7@~1pJPe8m<SZQw zoUYwmwEjEKZu{m(I}AAG?mD7?YZ$87h#qXlZ*fc+LVrMDjsE<M`Z$~EPFzGL;-0lF z0mp~$)iw?uj{?KhW7y7$`+iC>O={W7u$w43Pns<6i*%DO?D$eUx}Ic<;Jel)OA8x7 z*d-`8Gudr1`cO^s0LnyS!ZU{%IVqLL1t$WZ;KxZ2nx6)8?n4+;d$bDK2VT*j=|R}L zIkJ1Fz4vPpK2CcE+e|sCUEAzZ#A{N7Vw5z{7nGk!W*n%3>EdN6(gh!6HrMhFDpzaD z+FRRbh_Vw%)WQ)aQ;PNshyoW<3Mu-eH649RfZ<2ppB?FoM0`QevlvS|a6OAoUXnCp z4A+#H&vXqtvk-Y5W~txaGbm~`57~r#x$bXvi|YXgPK{)oqc0JqJ#U{N!#O$*IbAdt z870A9wWP#XCfj$cgXYRe#OTXDeK@Urm)ka1zo0UghkAS)$8J;o0N-4x+56?!{x81{ zY^(roWlGd#I<)}<JV#dP!%;e8Rc&e8k5#($uNI}?A{p32am3tty12Pbt0mz*yuj~# z6{mL8X%4iJgf=cotCiKrEybSeM%Ji!lqx$yUZAmNH?L5dCO1<Y%uLzWpppu6z`<jd ze5XzU==UkCr5Er0O_@B!SbNP=J^hhwj)H%_r_GLUz>Y>T{UQ>{AZ|@QihQ#L`yTO% zTdBu`%)NiRt-?StBQ`_?IKhn;E4LROETB9&4k2PD6!I|b0Zop>Ajn)3+9aL0pz$`9 z>|SDjtFf{sDvYQMW88SHwat<)I{=TJeUC^*%pI_YH#OyplNjgMdD9qiOQ!T<@4ZZ| zJ+h@e(%_}Nyh&2Zl8O2X(mUbSL4R4k_nU!q*r)kx)|;H1K5OF}cGuVI5Xnyy*mJ34 z7e1c#TA-vh<+gL)qu5WXV|idAZBlMFJqwa+G%TAamYn@sNj^E@0(m?#doJ1qY|R?J zCNF8V{37t0j7nQXApq3#k3ab|02IZ|(qO=T9s<;J1P__IeS#mK27qd{se(e`wnQN} z@m^#Jf*CYawtE(<+gucaJ4Uu)gnvdRoHkb8pT@aaOco-YL1AGYlXTaVn5clVo4yZ4 zn6xOuZ>D8dUWGPyWAm#YFZ3QPX_QvJZ`&Sk8p_Oh4KeCMZ35(n2dp`kg^{0U5|x(P zBd-kH8SgT<Q>>9uAjf>qY!y{l<K%}OC7&3wJpp+nQcPQ`{vr1w54ZZH%pp<c4&^{p zzQ&Zs$ttagpRiW6hz6l_@OM6Gtu4gK;rR3*X3_G*Y@an^=`C$m^tYbc(UEDI3LnoO zJj6flJ;r`k;HN}?wD25F!8rbP+tYIOxH_8~30yt!ugh@Ow|l{?p4@yGXp>pQb7hh7 zyV=*;m>}For#(e9W3*UesmWZZ#vYwRIx<<Wg{Zn-SNiZgV(8(-F&ky-#3NT`#i4hm znpE8ItJUtlaHcKrQS$-Uv0tpD`s5=rct~fl9SAkexNlex<L$U-R9K6gQ7m8{GdhfG z#eE?jNp}%jOuW>_rlsZQ(q4d@U3<>pjJuSwNm6tl9ce6)u6g1Pe3tIT_f{YUQXSeB zYPSI4<=Y>#uK;B8fF)VA$#A=8MHw(m`4^$x$%0MuWDvHXyF*vIV#=}~dyA%jjp>7Z zJ%+iK%WP(yW3yVjMKJ>g#Z97nDo&x?vAM4rR@&4`ug{TQtYMMm;1<St1rJzqo~Q6L zbid})KBFAQTsz>!VAN)OOV-EE7mLLb{vzCbYj%BI-OFxA`cg`0M@m!5XGfY-N@v$w z_Ar~B2u|9tTV@P9{5J|c7F`1CV-%O-ajGWM319_WC#GNqMleye(&5JD0qx+~?gJ=K zxgQ6o(mp#CwEI|wAE9^5-)nU2Stz|eZCGBzh=SC{)4742h+8R|(nsa1F{W4Xj%04# z9g)a>jC`L<Wy%PPBPeX&MJ#$xc9){B(zMVaoJKBBAjK1D3G{7h+uXJQ&kB4Hw=t?R zTZfuT7mKnYBMY&-)Ok6BWItxn-B2$$5Q>WabBTD<eM@|x>Lk1jcGUHhjGXxW)DQOY zHyz!=9guG{Fs%Aej0k{?H2E6ghlYok99IQKA<!YNQ6Q#l$x4XYq|Y^%bl~R8&~uKi zAW?TpL`wAN>r;;upaA*LNOo7aMxq^iVGOPEiXx*->+5{g#3DXfjSp^7y2ePAgsb=} zXcgxvY??2!&vd9Q6Fy{QBZ)``P#2R#a$iZ|fuE&!O$smHgiM2lK!UJ=f&-Nkkz;@H zL-Tsz!e8BFQ{1B@MCqH$;nXCaL-Rg9de4s|V6rt6GU;PG$)VTE(3sz~llf6|8=%aT z-&WE1F{S}@T@Q_QfiLBSW56`m6T7hdsz_mInaas)5%<a^#3j>(bq4E+cTseLbXU%j zH~&*s?Ne_kP<oo=V;Gm}(~vmQQ(6l(5{vGxSPyJ+mbL6BjYN(zrHVj~+H(`4EUX=h zbTK>VS^zmz7uUN2xU{G+J09LeYWT+;J*&tO$-@;X+`<yC_TQy?UlA5GC!p|>cpWpb z+}aj8S}$x$d5y$w;I_rj^ciYMAKKzL;&<`!DEVZRd}{1+-jtkFi`5_=8Dmcb9#M;r zqLR}(t9F|<l$baLKnk+a{9Uy`8K&E?!lzkUOfdm$zZ+OG(H^n_Nzb~&BPqY!4?4dC z-yDFN;x_DgAUL+QVTw>g)QVjsAwX(^3Z3LzO6s(bEMXQ-QM1B0l5S%$h|I&O-D<6s zFhv5`w`%s=(61YVR-rp_0Dlrh-3>w;?9ekfTmhD5*-j>Glllmmm68WdtUM?b1x4ic zpY)<#cm=#eh;%B+b<=F?vyVPPja@yyD$6UN*}%TigOBF(^d1iHj|kU4vI{U>!OEkD z{Yo^mAE4|cBZ`aH7Y<~Is*|zDJ@V?gLj_?uN`~$MYAC%$!J0r_fffk<^;dzSn4{Yk zs>IMV+iK1HiLLv2vT7A>mGuTYHOIF1^r1@Qya0j#_XI^a3>j(H75wu~-T-FP7|?vL z2^&*ZK}NZ1^IH$Hp7o7gEz4YNC93t_1h)@mO?KRdvxSjpaoa%Mtjq(+RkO*iN;J}N zXEiXa^Lv*Vb`<0;W@VX91Us@W2JCIN+icP*|2dQ5^Lx|Hy;M~Rj7@Ywl|5OT^F=M) z$@GaNLc2mG-o<t>++L6#S(QPT6Fa<A#l4`c_5pou<v&LL-^+h&N?Np6t0|&_UXZHP zRH-S!o?z~n7N_q^2rzpw-fS;z_Tme3#l5sCj4!;q?xhhK{6G^X!x|0PAP2Qs`=5=_ z<h=n9NdgUJCyxh`LizWC*F-@J?Ew{}Bz<rcMjB&$?ERMmNoC1~k^CkIdRejG1DX>H z%M%O6(}9YSf{Ij1|4Z=~k%<!nXG#4jNq$)qO<CHFVjX7i5f6?UqiD@bxReCI1vYb< zOCCaT)jAFjY<_#8oVr{spc9j0^q;%KkCS7v4E>Tu`tTxRXhuo~`YtPwJEO=5$N!d; z%O#N}f8`t@^%sZ@3r!E_`-p*SBDN&QBe8QucK|f?MKkJ8kqx?(`|^b~fqf4D1KU3N z>@pCm334AcNbkIXn$bbq7CXlL*|Ci7ljrSZ)#4A>Ay2wW(PA6-9lJ}Az+rCf8u&Wv z5p$0Jf1oRy<<rfb#YRsjWj_3X`(e4pNVaG%K9*w%PuQ6iFH<A4nY=Un+iXT5z{pez z59--$gyziGJnI~1fqwcmn?k1ItIsE}J-`FWjwT;{?de8N_U^6kk8ht_E`*eWb|&P| z!Alkk0q$5l%+Y;rFeK1ham@d7*I8SybpbUmjn<1}>02viMfBo^%$%}GDBG0Kfb(q| zoNKAHs5>MYE?u{)?6P!^gLTt7LNAFog;V@<gkzRi4dfDNVkTDk)ip;S*p%<^4F<6I z<Ki|~`vW&ik~(YxlP;4W56AY*QHE#i)$|8Obnf<;$W4T{d2soQM9t&S&fO63aluQ0 z?56kshk)J(w1;9qe?~E&CpLjJ8tQ~T*SBORE;|;0(^we91m<Q<+{VLv*vg@MHj|;w zX2#5oUAA%w@j+mw?PqR1yaiRXj*+#IQ>8hU3G7X3#t5Z3Tmx=S#@@g;du%p|l_<&J zi0y(ovSX77KiOw#!8x^qBjllw%Pr--iid(?@wWMjB9txw(@~ORJQf#SU)H_t8{XPB z-G1Wuw@vH%iBFuh*LW1YJj`-J{VJm?U#l?enHuhzJM!=#os3+)HGWPW5qOk4QU;}) zx<%*Jlw6Ear@>Y&dpy!m4R%jN$_q`R-IslP+R#4VOHXx&JV@6re;BfX?9>vR@Vla) zv=jm5RQY10Q?_3;w37_$TB7KOA%mybZv@T-hm3w7;25+!X+y~dfepSNs{r}_Nkh&k zMN^gQ0AP$$xS`m+(Wa6%;aC_m<$NJ=KjSTJG7~J<AvaFI95s7T(H<$!)$#J&2b3mJ z=gH|Kjvk{FL<Z#4pCW050<}%BWaL+h(%UVCiQ^kdodsd19=DX5YIt<WV-%hdJba(Z z4w`*XO#A5rG3{ZFCQ6uwftyL47i28k!{8X%lC%uSdSF7Fg}HcX;BihPy~RyWFPBSL zgXK~@I^_!FBO{L*@7RrXj}fyJWq9&|9iT9I7^RDx8Qs7y#6;{e876%V3^<Pj=%zC- zs=t3q@Yr3FM55P-5K`Bzzz4?nb+M}|_G_i20%j)Vu5y+ZNnfHg;oT1zmg~GxEn(SB zdY5l@n-0o`nFBO(>P1iu*|1+?uEqLQ@?R#`3jqKv1SUdSr(1K_pkZ>MVj6wm>s9l1 zw3@zWGBF;H2knt0I@JQyIdRbf`$nff5h)X$Dq8ttLG0jYp<CGcHuhDS{0!6K#~f&G z;;D&DIP>A{pk->vv4h<W8m8XIM7;DkqV6c-=AkOEQfz_DpE0JB_3%)T@HJM0axXn; z0SDFjDc+qKHc1~bHtW4Z&XR%<3YTedi4VuYNVR0c1BvG_T~IC8!GjxXINmaRZz)0^ zU)<XUp$;HePPi|+uMvmZnNkczL))?@j-2`6BeeX=s(0+IWE$u+H&Mq9UiNzS1*up$ zy4aq9_)$+TdcE=65=f0?-QAkX;^S~ZU0j;)B&Jut#VXBzZ=Q)9ibD4!yQ0e0WX9<3 z>2{D|>~!ms9JP5Vto5omf;uS=jUMC0)LGNF3e{rJ3W{-IDq|$RORkJj{-8cOi^Ddf zw5=n|YY2N~G#HpAhL)!h=#G+`Kt96KWQ%(!H|ttm76cA&hExK*FZ{xAGvt{ACWa{U zSj^}g|H=Cz$OA}0KT|>o%k|z2&BhY0HzSV}4@SfjX9Wd9S^iG5{1@y2H{H%XVUXkN z{rLU$z%WWTarq&=`CBV(Z^%5g$nDctDW1{_(uEFb4<Mi**6yrkW8|k^LprQ04dg`< zwZPYA-g-?;obIn-=cw%&Ox{kjot{`W^4FLCKng5+6D@jC^G+wJ{MY+@PB3`<f5J$< z_MTegh|lCdVJ39Gb;b0&xImN5;r8;etwvh3<c_Hvf^0j8lykjrFV6Bypk_D<_-A{O zU&_Cfwd?HiiHB|xQMK~Y8*#3$=y}KtLib`nX~X=$ipClr4c({q7K{z}^foH85M$LL z)tlBCFdfT!$lMxVrmO@F={5EtE^pc0Hpi%2M&W0bJ5+a`0Y^#`kf>VJ%4~)WET`qJ z!BCEAm2NPgo{JA-)F@u!6>I)Py_>{q>r4_p<7?bWLKb0f2Lz4bIEg$v@t#qW{o}Fl zkABh97^&4Dhl+pzY7hfkBSOwNCRVG>v4s!w3D)A+Y0>O5pl#)Kwm^RySp%hMs2%Vr zAC+;qVNRkcx1=t0jR707B@=&ivOwR6if@1cVo(Und%U|~EozLh0qRW>F2(Ve&?%CP zEl%Vy=_1V06=OW9HGSb2`KF>Qo81+(?OdxkJv;??nT$C2fan_D%#?|=ca(UA+VOMS zcXGdixs{u^vPuU*4mp15bH6*ksGlVx>RzalJWpv=&*3f)uqlgt(GQAQM1w-gWBT{= z3v4;awa1I@kZyc_W^<mviwKw^{#$x7p0j{kBhT%uWx|z{6CSa$Xz{8TK;!(z61b); zrx*n=;A(yS!gX4+-K>c>Fml~kY6|-U%W+~1R>(`Cp>#P6%WAodZI~uUVH8N1jvIxz zM>6U%!yWR?&zhajW)5Y65YMegwW7EL2Xra55ePPUjS=Pqhwaaxh6%Yh37;duBVpaL zT%b|yS@Pjm|NhOl-@l%|{y(o?fA{9AZ@-y-@%qinuf7)A2bWiJkM3{E8udLCvlCTh z6d>LadHUB)=q!1Cx6KxKt1`YUHt>T|b~Bl}Dn)0>7=gqDPS$I*qeF0yTeD-MX^RI| zck#!~%th}BP68AB4hA+$(x$<H5JY9g6U8(ByUjT)dREjswy2QnQyw7e*i$~$+k1+^ z+_G*)Su>tKPh_(*X|nMZC@$s_U{RsVz&pyrE}KPa#K{<)2~%TYAm+Cg2V>cxnJR=; zgrC~$a!Lv&D(10Wn;OHc`WJ-WBT?#?zf`}D<g@3u)J8EA$4Je6<W0*_Ol4)k8(;7c zmq?vLFa>A!fHXxlEo3eiZw2iq<_Oy7zysX0?&7FowwhHj?kt8blmzl0yv!!lrSZ5x zEF<fez!Ssr3gUxkTW2IG>W1RBtcZm&ss`aj{n4c4)|sODkO^{4RMCvh6D=?`BsKD! zvIMZ*kz_p69Phnr7>^fdMH+7f^K7z=rnwUZgiAW(Lc?O9e~fbI?0pUi@nCG@2xt_r z!>pane)h~Un~N#XsKxXIKTgetaMg{C{N5)%=L(Gxb%U0BD$uRt^Eva$zhQ^H+RD4} z74y2R@j&O2%dlmUdtQXr2dapu9WOo|C7+o%)q%{QEAE0h^?))VTc9QRuaJ02)GQmz z`!?%Uq(bQkjifaaLiZe#LuE#ZmlK!@tt?L-b!iX7`oq}PNL^INNHYw7n^-4aiuUj5 zp!83a6{AwJw&Vi)z8uMGrHYb_8aicw9)r!Kv1j_$L0q~nTm;>^$$@R3F3Qb3FVaw| zR>f56rc$CS(Y~#Q#_I@f6h(N2jb(F>4*;<Y(TBWC1ItA+TqHe$2}J$VE(d~{6>=p- z;c0X_g8`ap$x*Z1u|0-RB$M;NitI#5QkAzwlHR8GV^X<L(3wh1X{~0JH8eTiBGAII zlmk0kt@1?<<7(S`RQ?U6eLJb_jRdo@8R1sXNFS&PKhF`PiMl<gI8j@mS5_V9pX2r( zOv=_>k;9y(Y`>8eDnk!8A#t2@9gbNnSw+!C%UD`XdooPe^lJ?*uC3yZH@fS2kEsi^ zJI$AOqhxEgud9Y>fF2XI!qvoNQb8gq9^p}_II_AOH6S<93#x?{jayAcxGfY*!4g$5 zArr5J*Orz@h5|h`a<SF)UgKZ5a;*Z?vbUTU0$dTGjS}@+si5><Yx&#7e6YrVOxii7 zKWv^p<+Vdw(0s`;4IK#@+WS&{uzim*<smCR+px|MQD!Dyd?OnWiMcsQjBkqWUwg%v z_Q-LTi~+IF4ii!v9;3c4ck3mmTl5@?(J?>6TLGo&F}WGZm;;AKKE`$+hKh*UG9Otu z4H{Qm*`VXt0a?p36L-m(#8{&2uL^LKdOaMK8o3*f@fKH|JnK0-Aw77pi?i2bcL`R2 zCeuHh_|oL(P%s~fmyr}8c9l)F{j1A<%jp)Wu^ohY-<Ytt(M7D^Y}t-1+e&PK_Wc4` zg8>hs`y1mSq!27bdFJv>lS9Rd_$hBjCK-Y%D>!yA{=1qE{n0BdGR%kf0b{<0_`e;6 z6_g)?zs%Y``+YIjLhBDgTv0z5C*a3puVkRD$(&@mD{eEin)R-nMv3!5@|8&f#l9VY zFHc{t(LbiS-Xvc?b*2fE&pvww?ZXusVe}vQ=I9?gxB!2ho0gt_Pg>wIua17euF-<P zHbo5O8x$?RDzV2q^fdgoU-Ty*uFI?bHy;&)!QkoG*fV{JGH1+M##X!BELx5jM-gm} zCs+@h4JS*sXE!tR&TJHE;GAPq+$gED>G9u<gdC85Sz6m5q{%(8l|p8bogz|cA4hSM z{1f=s$-t!hk@mip(sXT2C?XB8#)~uSvYZv;+x#ZqX3IPsm(|rr`0Jx@vG~*$r^bGS zac6hiJ_3qI*B=a$k4Oi_oxSl4z3fd9Z&}cTQB&v`4+<#ch{NqlbJ7$CItFf~++<Ca zFX*OF<?|g!nfQT00DFK__?V$_X!7z(Y`{rOZDMBK05h^$mq3)m$>8rva+LgNqWGws zg(jUrkZDvSvv=#`&dycW;muFxet{!kCF0Eh`9A5%D=py7Zebzv15hEEmFwm7$C-~2 z=I_U3*twdzoB|s#SP#OCa_wo!lbvHg4r0Ur4ZHAZy_YH+y}sN2Z$%JJj*mZf1mX1x z$lxYlqMro1oQ)Gp7k-p3&DN?7br1xzLv{QA>+<Tz9X}LJ6W1NXHQ-*F=WFs*Ci^QI zxo}<Rg$DF@{SmDY-%hB&6j)udrw(DruT@iIfhgeky~vR?!_6MiP;ir&jVc~0*IByF zSNDuzu+_$$)C;YG)Vy?@A*v%S^=;h_O7V8L+17`X2jHoy+)5%ou#wOKo#6m2C`rb9 z(Fj^I*ich9sZlZ|&oZ-9#aLWcX4;ffB5mhMxS)}?96{k{9z}7m>{LbyV!SvHyFZH& zic&TW*$W~=1*bFsh3!@aGicke5cXCCp+Qq*4XE&i96YX$>TSB<_$70?v&Hs>pDgom z*qT2mDkqLid>Csaa8H?@KpnWX;)d-*IkF6ed05T!Kh0CGo@>u6B?>*ww)Bc3QX6w{ zJN8l1*YlEf9SnXW2;L9POzrlyA#Cr+ppw~_zSQf&;HSe`Z+>K;W4+5|i(hK;e}T|K zv50$rF=2zFsk5B9afXDnQKN@KR}hTh&Cp0hO^`Cnc`Pu^Xo1Gz99~M<#EQPjoFY0? z+}BD|!LT0lxI|yU;p|JtMf1@L9q)>p0!4cg$1r-|Fd@B<otV8f>*s+w@rVET>N~zl zd<u7okI~cmV|EHRmx`BRIL)DeZAiY+l$c;Hmy5GQ$7K#RIInWpeQXmI7+GP3a3<)r z(VmlANpr4sP4bh^V3MDVl24w&zo<9(R0Uc}?X|#WT$pE8?PB-2VKB^@0fcU|YmBFy zX^iY|Ihi_<7|&l<W&324^m1;Fe36k*J19F#t2#kTUSq4TdQ(`iOq&!y^Ar<3W~-~~ zrx8e7TQam>!wSSxwQvRBpn0t=bvSf6fQU1}%s64AiI{nfAFG}pYtNV)YU#4<aAP93 z*F43ZUUl1yP8xdPqWGju(HzjIN6RgBG`yeXG<wl`DilqX%I<AQ9ukC}lf_I(i)t^9 zrWa1t0tY!mOEirx(ZtiSi4|BRfR3eOip;}em!b47=6NJfN#Q2zrLd9=L=1GsMUy|v z>h!7eSs0g-$bp@GBtZp5(7F_1y&<61+$O00ocx<kZJ0R&IV{gLmDSOkSV%wz4bB;2 zqh=c3kl9)w>qq74h(Ku&aWi(F60C;tiW!5O(7PqOyH0m?V{9I+@fhd-Cd2!NLm05b zF2!89viTa%Rb#89kGzB*o&j^O(edf;4M9_sw5G*<-(+c%UPr*B<%A1p)}S&Ny_^H6 z-&~_^y8n4vXRnPcM(|Q(FkBd=X=rjnR#+BqUzM1hvS~?;cPO?qRoJA&Wd;&-`5N8$ zIfza~?##A-X)-gd%xs!KCygU4a2`kMSRx@l#&Iy!_2F*}GsQn)fp~s_6ccEgI28e5 zlhC0+>;{*9J)uXY>Gn%nb9vjx9(;pPS+8eLoFC?FMrW=EWs<`VW-~sO8ZWmLI${X} zE;g{tLfG5mGF!u`REYreI<rly&Dzx^+8N|c8&({njpLlL46r?QHvV_v*bG?thd`Ep z2yi1iI0$Dz(g_?RTFkTh6L6N&#9=TMikO0jE1a3ly%4UYC{c}OUQFN?B(!5Y97=8L zQ?F*cGyy%F=`0)2nVPl9G`ZTX*R&ODv!HB3WW)KIEWetR&Sos_Rs;6?=hyV)nX}h2 z@fe22cEy5<c3NEm6%V%ujG@k#8PY+!hbXWNMplv|ZfIBk=5{G!@S#i?BO%n+4pNw* z4w+Yx5^D+ch=k>}Nq{YlN9HOvxYp*7jvw2M-#;uDT7krd;q|8ad17!-dL!l>vD`u* zf1ttQx?J4o!OUjgqapjom^A+8q4<N4fx#JqOY*>2QVTynT<2I3Y^c`)+jo+?a(J6+ zQ+%@Ldy86o${ACUbpTqR@#%#}%(gU|LO0Out~tO4ngc&+EIRL*UvS>*k(?iowPypH z>Pmzn3OVGz(QTsZuKF32Oy|rDod?0XO%D{lI7sKg@AUA{!#C};o#quUQFg@(@Exqk zYkAn;q<2%i(*YIMk!Y3KGFRmXSe?SXDWGP>V=Sgo>tL4v@L-B5O!=Ew|24)$v;}bo zEzi)|pXRu}-Ze|Oi29@a9n887uM(JbL!Tz-y+_E&7zh@wGi!`2Z!|T>zGNl3HWB@P zXaBsVBO^eDi`rSXyQZD2X-dEMrJ>o^DXYcrGk2^kd&+t$HbxnRUJpT}U|^U>_P=)7 z&d$h`w;aj-$gCE$f+-#OQ#|$&_I$C()*K2Hj-;v=#6kUO4D_Vm*Brz^6$!R#h>W}W zCU1Px5l237BEPh0#+jY(uePG<F=o_<fBVu5{WJzPtdA=S^zpn+LVRJJXgFVEmc4e9 zo_d~&N0STvG;Y%RW-168zST;6Z@jA*ez#knqm`~kJIv66XPK8g>b*fVElLDW|1ogk zA^lds*qOvLC;h~psi7?+u?x1U+~-Z$hpE}Aaf4_2m(71>v;I80%8P;+giXF&Vp$jk z@$zV4h2Hykx3pZ{YZMv5c~51b6jBJZjE-6n`E_hpQq74CT<k+M3m}f&b>TMxgKJgi zOLIqU#j*zSzfYW`sjvZAj3aRzE-qHaelYtE#vL%`yTw3-cj?=hDId#Q^h39i$C7^d z5+(kUL*f~H3*LEc!ncn{{!72j#86@9c7Y4qinekr@%S+5{ZG4eZLV$queqz~ZR3cc z_xuV0MWL19I8u|eP7xJodg`G-4*_~G3`>>dcx7oVYn4|1_nAj>IOOcEti&}?0}&$a z$IR>wIUJJjQHf3Xh2=@BA3d=dj7V`pWCWSGc{{}=-A8FI?Q|yG?;{DJl@8^Xac>ya zK36ku%j*=L9$^|ttd13+TH)AnZM{!-=-V)R@+u20MvkY|Nkgm5J;1wqjAxM?D0@GX zySg%f=4!47!vSD>z5ZyQk)lVC9nZ;-EsnuVkF>c10q*GrByf>&x_z&x!qoYfJ$MN^ z0C*=RR$d>{^sE2thu=OJgrRY;A>~LsiHTOb?is4=$X{n%=~SYCy-;PH_~klUw)~2X zf<29M!E3oaTY;6LwZp9*!6~-N;k)QL_WvP~S)QCmr3BWK%Iu)dmBXz}!z(6s&Y(1J zRKz}4`jwSv5U>|K@93%U4!Vg-1&D;kLen_Ei<e5I(bfyD)*07U`R!^t=P63x&cZi6 zN|7yH*5fbc0t(dgYN_&MqI6ByBf0b!5A2ydA|0%}c2Pg>V_Q*x7Nb2IV-drnNj48M z0XCb)Xuq=U_`H1MuJ$1bdbPW`l2SK?<o(zh7vVML$N<U=jF(7diwmw`sTlT;96!P- zEc!U@L@K^>8~~|%VP`nI`?Q^IZn#*mLsOZaaV0&X<JzS=V>zm+B1kL?bRy+~B>qWv z<13@fBi4-5-epp5AIJG=tWZ8U{6ABELx^Glu;3d{CaHvHWZXn48Foua;DmD^WAA~2 zs3Zy5iqeMgQe#ccENI2jSi_wCn9`fdow)+P3SA%fF*79)F4mt{!D^|~>c;s`ZYkB2 zs99PA?_dYKAM5F}d^JoXk2zAp@h);rtQW*ET*Z_S>Lc~WZo-MlU2J2@x#uRo59{3^ z>*A|dRPW17c3#)@AxQ;|ft~*;dTCKRz7l1pB$z;}!~7(nm?WXFRD#)>sLpWU|JaTK z6o@NXNgzjnf&`hH5{UK@fpWr>dO9(pAwp$()-71`V2uF}dU}kA9iUCjpL+k(O}T^% z4vdMmnhix~%f1Se19E4=^t)iEYDZ(^_#KjsO83j?wVpv<53~Ca97qLf8~sA)HUX0i z^k#cXA{)e*>AcJ7s;CT*Nu?2>sH)p8l`HHfm0X(Ura^}6_h6T9pI<j1Le(B|XZaoE zDrA^&QLx^*p_9fyW)Ub>$<nXoW1)TK2kC6?LH#ujlm4Ie-Mk3j<__ja1H|K*hub$$ zj_BtF9Yuy~X)nCb28uu9+;HQD_Qo^;*h<U)MCHY_?~HuRR_#PIm)K7eU8u9^BHtpS z8=_|_#{JOED8x>6WQ8F|GWs=gQ|{otAu)&>I7+N!SLuSIf29yWQ<rmfKq6uXqoj)w zOnaFT#-=KkILLSVP*Q0if*daPD29O8xgrxeBajuP+iB8fV_oicLZLdXUzV-Z@V1Bj z5$6iLp+Yrpf5exc&ik&P_8fDH1XBM9Z?Z(1CgHhgHK-Of)6YteuUFtXsFeE5LK`@I zSJHbha0G~G4J0{SoQ3$;QI;$i^AAK%+y;AKsJ#8X0om&UOl&DZ)n0zsy0r}oVItdG zoOT`U)o(IG&)h8rcHw=hHR?K<*`vbj6DuH`Nc&H*L;W)W7@V?7Bn3@v&$ni}z4_so zMbfWe+S8IkhB2Fq8`mY09#`gU5oEzIxij``VTvV3JPoKNsPB`#>DQq<^zvKktB1br z4Q{+A=3zIKyy0_6TVl>H(XB!l2HLldeh25>xT=e;)_7P{bgc$g8k8}=mc3`4;H5=M z%_it{KCiQ6=dP*Ui6uWY%fH^d^g=*4>b4>qqsjz9MIeUNSu%8*soB^i4R+9(L^Pjh ze>%UW)ILrxG!B{3@X4Z(P<&B(JxD(@8>3vr2{<;88Mgz!J?%Y25VlT<g46BDx8?~S zTT=&Rbg@i`?x$o%H^DlI9W~gGdnQP|TV;Y5Y?9mu!VScoSLGuYyY=R{v6xoEHSNJq z{2d!ixrNlOH!YUz5emV)NSmn`6+^`t>fj|RcxxK@po&TdMQ483`|}~p<w^?g)(|7q zjeUJ~ju?!+1CwY`w<K7$ZQHhS%eHOXwr$(yE!($j+qSFg%}m6^`=UEu|An>o+Gn54 zm6;3}^$D%*x!1PxSPyn(Y+~<1L<iQM78Qvg{NDj6!<bqN&TB>sPG@Mo7{!yRZsO`> ztkG%480cqVj=L}?q><V%UA9dhfEeRzxVCSjN!B~|+yMVFmZD4-USd2Oyn450qke*X z+>E+tx$UZ0onqED9mtn3Yn+Uv+l%e&<XP}|rcPIuYwJgbPPhDO1Z{TUEM|>0W>s>$ z%n@^a9&s??l*!iIIR|<Lg~~8^0c#=KV!a$BsQC@aE3&t}8wxMzTGMK%dr9&JVDmO7 z4fOp&GWG`W4OSdF)vd+x15$8vJq(xQTH<K75EiDVVys-43X*DfPje73u?%|AswpgA z?Z}e$f}@zymaMZdGOV*>^4w}@ozao|>5`ujECY^Hpb{QYMz;o*DBc1qHav&ausGG% z-NToBlTlj}D-7CnVrZ^!`#b5qvkwk*e(uA2VnVrC^=?1xij!LeRtyVgiKkL3x{by7 zsqszRKBh<$Sw$kS^!_6ux?#fqhT}K9+Mgc)fad=yA==Tz$im*l={F?$AGej$0bAnE z7qz{tPK2U)49Sc!d#!uraYp8P%|BJLHa9Q2Jcxw&XjV~6$cfbB6+Ql2B2ll#zuxT? zB4~p7b9T<`nkOeGd99rt7Al0xGTo?GIY==RPqLT>%G>81NKcueE>)SWwNk{9Tsw9u zzfUM$UT!a?RKxB%^H#)~F14jzfSSdsKWt*bmeaP!ZIfqfC!SS9lE*J`jg)lvo}EE8 zswGHX#A+RjR|=<BwH5d%g$6@8-u`b;ty>d9fPWS$0L1reZQRu8bqNm7u2;7KTV0ww z4BWi;9MZR2Htw;b&eqo6-rh3ES|J4T=a)vZ5qUjyQYR8E$WhMoyoT+7C7ypBPIvWu z$z4+JS3EoCQ5*iXC-^L_*Nt{5f4VFzer%nO!LKKCwb5g>D9ul^*I2hYj>6Y8GWVQr zHC9)}FfrI%j+MJrCfIB-6vk9T4W;eu{U*35R4_Pp0^<N2VYTvbYtfl#(53BbZX(<w z@&WZX;@sI5;ZOkTgyZ3#-}m#QyFeRKJ$wAFD0VPjHQGG;PIn~RR8hT%H&>1D5-Fvf z$5-WmD<GCd`&r)<)=h?w+PafRRn{s$wqNpH94lm<{<Uy1^Z6>rD&hg+MiEwN7uywE zI)9quW%e=>NsYr|2vRATk}%23UH1acUcKJvXV>XzG|fkSN0hJm%{Q#awm7ncpHkh^ zNZb49#^3q9x;!iJ;?D^%xj*B&Ev{~_*48u%mW}TvQW8PM>lf}&YXG?4HCjHvx&S40 zq$?q1*D_ZjcfAQ?;&&mWp<Aghdspi8n0F_Y<9*2<*4!`kcBT{=<%aiD)x3$qVf_Pt zR-iz@W*Q@(7gfw=l>M2sL|WS?urT(kA_;kpnZw487Toi1ApFBigK0S+xz*~o9b!cj zIesz{b=p>%knw;RK>(-J{ZFi_-B>>wNkdIB2gJ?aI40H2@A6+&r|v}k>;Z!oDoWe~ z>&ON+mp&Q+@}L|Y$_a(F2%VZmR~vwIRcqD($QsvX0~nqf(-G|TyAf5kpqhYpI+pDx z%$+l=B*fcV(q)FpZyT{h8id?Egr5PCQ>JcKTP!$Wx(?$#0jQ$DHIB#~ne?LweykKG zt}5gA?MdMbnGmC<Y2Z(}Zu8Vi_xByWsov5m^pGLHKa{&j)@DLY;HNo}s69NXa|nEN z_^jB2nCMM*Qpw=@hVFwH$nW)m>+|Na+HSV}USAK)FZGg4TR**--x&fW@b3;r=NMSq zMTN?AipR7(C{$c<AJ=lhBL=aYzuxKdsRA0=Y5qc(HE<zuma1?wlU`MbJ2k?j6^>}u z`-21k!p_A|#ig#pU$jiK!la57z_}seDu=n8`d;{0Nd!D-^Ncyx={LOyqF;GLWADKn zJ|5`kfOSg^L+Jx-dWI3DkdCmpsJK6YyW$AOKqCAh?*QNhBc*>rTg(-_v7TC-6N^`N zM6l|6^tZL_+t_QC#O+H9ZqPWXIq{~V%hP*tbl-Z2^0nAK9f+4E*;pr_b}Hr&Baei# z0G;~bv((>sgD<6ZetPEt1@mtL5C&ZLT^(ppsa)}WK55<dA%X)oGStHxaswX)?sQ&u zzePk)Y=|fEa+$H+cZoCtsiYRXF{hdHd10gppUlM}lI?x}8Duf5-3k9;pn@BnvjG1v z_~Y-<ypP*qatKJbV5Ly-uV5Iox(BeQ2o5-G?U;yMJHS-xPL%Zt^wnR+%go52jqM)Q zm}gmSDxJ5ICC8^)Sj?$lt4}^Qa9V~BL1Eqhp_UCLGh(97q*P3drW2RPM2TqhjVv7Q zfSJPuTwzAA;es_7jD|1=S)kteVa-D%w-u!2j_pFsp>rPl;8)ZJ=rH((4w^B>IfF4b zXg>RvJ9{clu*gdqtB7ApUPcc6<-%gRMvo9-h8c;UlBlk?UJWIu7#Jwjf1tjIVfbWC zcFCG}YlmXxR}5RGq&Bx0hqPEA^#+!1`H(L#3@OJ(X~PWGrY&E*_Xo1@AS`N@cv}!g zPrHsli<{Fa0o?70_|(d!cy~}8z6dHuxZGbg@J*^10Ph=?$cWu+$`<ovIA6V=3^^JJ z!4(CRqgkhriC|b=0u~Ev9Zm#D&>c0y#-t4@j1q&c5A0<v6nJq?uz$LW#rhI=*P?5( zV>FM=5MZ=vJMEBf32l(dEw&cL_!P?s<N30xn{ETz-dgRntd?n4@K`5x_^c^#wTY!A z3z#FoZ>BUTx)_H$k<LsQQUly^!PGxrF_z^7nIr9T=y-;C%?Tq2MKNv+QD6E<U^`pt zcK@X6LCYD4ZZ;9asOI+IaKnC6v{;7GPLGQOSxUDv%$k=%EL$yjh}%P+a}1gfeK5IS z+2DlhtvRk`<qz_i2gnmxQ^6aId8eRUYr2N0A7>VC)p;!vBPb|gHI6NulNOwKd>Vhv z4@}<iTK(#@n2IoDT6~M5rW&R2JGkaZ1u5LV-hz@RQs%}}=wenmP{r0Z9M$*HRehwP zhxm1Lp#RgI>@WENr~s`2&|L%O!5B&=bcdO8J<fX^VWKwnLAfHXL0Y%QMvjp2XVWW; zZkx;<1L@%-BBUVlKK&12qY=~b3EfLQgyJ+NsaG?3$R*#LR3{`KsP1k3FcY}F&6Z=} zc4AhGzFXu4-Ek!~A(bZQu!9M;J-E(}XzqIl`W8_D0|e!4l~RFN7qEG%ORQDG?oT?@ z$IcbPzwM@6#c1-xGSBcza!H4v<UKm!p#a6{lQQ4WP8QYJ@`)8v<e<93X|37eDm(t4 zvjsiiEoe#mA8||gJbEuUC_}J6S0vWXY%{2mRq4wXqElb%EK!wiuu^IjUdIBL##8RW zLbICo+wqB5K_S-y-3#&swb<Q&fGG;+)=9p-_~bX&7+n&xsQ$e&v-rDu&QP!DkC#WQ zjb~+&pDC8p`;J_Ba{)AJ{(zdHWTk+$jf?4<0FBFG!I{k)U4DlWW5SFrYL)2d3a3qu zjP$WMEmSrJKT+GH?MNPLY+}b7_G{}l(JGuj^AF$AQ4N7NuzV~sTMP`nmzp9;lv8Cd zICC)2^<kH1wTKlt|4JuGDd<zm)4mw1SX=WqW3pECb5KTJ0)O1J_s~PENy|8_eB?tW z?e9B%T<jRI)l*!4wfixL3Y)q;+lhr2n7Ds*o&MO}*84@_-~1_ODtdX{TGlfMQ0qt1 zb+dF@KZTMmJue3Gw;Ymmvtk^kmq<1OB8V!K2e)6UIa}2KE8UqCvq^;!dVACzxXMz- z^1zQ-9)^ZvtlSU8DdKJFV?ysD3`#;jqQ%&7Q-dB(N0&%|`}6OO+U@df-*q2aVou`4 zZISc@rnOo*xqoO$?^V+wx<m1bcpJ}v(w%}U+*NqI&|KXTU+j*vzY+G{`y$HnM%(@c zI<tqq+>yZq83tGy{i$cmAYt6yPaZI{BoThXfxL(dMR3p)c?@ZD6wRWK8C55u|AJWu zkboE|-0xI~ILyB*pgnjTWy!Zw@svoT1_$~KW=ANSA@_L_ihtoLeT)&_@^Af9QDs&P zQr^*5H=A`@B~^UU3c_))|0W1{NTmRvqv4YQ%yA@rUnrv6mf_H{7Q`G%d1?sm;^qhA z3p^kJ4TxZtiyk<=a4nPgbVswSN=fJ9oD1Nn&539nne3begG*GQ_p~m}6LQbqp?2gj zXvnL3JSZe;<sAH-53R(yT)HN&(sE{;H541$+Ik?uR=O$Xen8-A?C=w7S&ar7!Rq^Q zFF@cV<X2;+#<J*K)x=MydbnTbH7X-9`#f!VJ0t?Pnv`26I;dYs^K?ThdsMoY<uu?J z#}VSMOQS5q_6fu(cl0L#X?hZS*yk&J#p|~#j-lXT|4@iv1+z{yoiRrTds)heK>0uF z!c0I87-uY?>_1(mG0Zr3>H!$}xrpwe&k*6neE#POb_!TAG<Rt1eOBI%R96&J=iq@X zp0x4ET|x!SC(!oQEs2CA;C+V-a3(8s@3fbjbk;-2H8(@?d+|+A8z8J{ef!-z+2>iT zs6tT=@1KXDvaw{I4=pQwz;k8Xb_9nzOC$1ifopa8_v1Pzvv2!^JMAFMe5y#XES%Ga z6wI-_Cv4BojOCzvMBr+C4O+(8>Go`(xuo|k&%SjEOXa9)9+WYEC+s07SHW=ez2fgW zk{OeQH=n3DiPr~nZOfc!dEk1^`mz+~)(h7=eWyimgGMSJglnK16j1+KVke^PQdaP- z%;3emlWVSR>MZg8^GSaL*?Dt1e!VvQ(YT@axx%FNJhRz~4{<rT#LJl>Sk4*`hch~N z$bJ$QW8vtD#j7lZOTpfEO#wOFu8(2cvjl<nU@na^F(dWS79Mh`i|sbg`cAxBHPIC< z7qC)(5OB#U<)Gw7CjILEW4F7r(Pp>P?Iq_2UdW8?p_I**4_$@;sQC?M#I?Y-fJA!F zn%~Mc^dvNxf=1c;?q9nro5>B=MoqHL-$*?gI48LV4BS7<c|9QN=4Ao_3vpFynHhOm zR{Wkf%we?mD5%-`1!G;}A7{-o8NUicWAy|t2~@v`U(<y!>M1t{KxXWPjIcdqs>{Zm zUxg(PEWAgqBW;utV;jO@Ezu5D8dK(Zd9AS)Oq!s$7)Q=txaV%1cS`N(jYMk;9@|>R z5@&^zXHZ7aMmMWh0HMQ5_KtBaX0f}p5U+v#s4D#GBOTFz(aJv&=^lcs6qy}x;`>LI z9ReIR{5JsM8kX%{RE5QaiZ5`ise0C<nIMKNEPRq)3QlQ0+L$Ml6*uPM9a?lj5TxB4 zCytgh#Oc}MT+-oHnhW6ixs@4-HlOa-^J6u=v~OCf4`qA5><Ya=5j~CKmMI`d2nQ<| z;UHIy%yk|E-VPkO3f}f<K?9hky-WwNhxClaE}TN{dX&75v*y&!<RMZomKzmSGIt%F zlew$GXm7>s`c;3W;;9<GwLr={HmNs+!cl1n_FeCGP&0K7a-+)gvCV4&7T#UTT4t|d zqpsh39x>0~XW?!LScfw`ucXikH-N060EMf6q1*34JRAE%nC@J%*+j}WUlxC&GxYD} zdJ6?rI9HVrD4y}kITAHG9ubx(u}l4|+a)uD@Q`XCw5B8CztPNo&3hY9ZG<QKSNpf7 z9x*%N2o5EK+tgk~(v}E=HfZ(4GeTg8{6x@Pllhqwfo`-&J6utXmCo+~T*aJW|K1o* zO<A`mI@G*MA>1+BePlPrRmUYpO9q;0A7Z<CRvIm<AqfRc|4EpK{t9*Bwj5~d#av>A zR$#=Y&f$BT+61WKFR*7YPXfHio8xpCkU<&nFR~GPaHXXj3w5P!BiVymKXTWHae?J? zcNEjG?!UgFHO%g*8%ZV<C+NH$VmKJ5W|@92wI=e~OzyZZ8{RL}1RSAptyqbTmdscn z?>+$M<a}Ep4a@2rmumL1nhYH}9pk|_%&XINCxVAJ*l(v7$&D`PLIs9r^P{o}Wqx66 z8#W|rZ)2=gJs^jFex6=_@OYh;lA;~8Dnl&<g)wyI5qI=OYdUse@b{8$bL=eICz}$g zV^la<fw8Irh%Q$mD7ci>uW55hLFgCy#iH%cjyNhigam5)xll%RYP!m#WJm3btj+lM zES`8eqR%EAnELa`tVc9{98JX_@!Yw3vPQ*XC-1PgL<c>qeVAz*T<@T4yYbb<<3H9> zI|dJq!}>!@1<s2zAiVMr0qrBvz=6npN{Uf{b-Fi`vENxM9ze`Sx_g`%ZhKlUy@7h` zpb&kk!Rm55>x(bgIj~>j-@c6T>%*}{GY!s+3Mx0!`h{9a9nfg9<zuQ+9g^3xD}jEn zf>d{HdDq0oJ-{pUh+U~<LP`tjBD={`-L1&cSX#|Unh0+0@7<Cl%2@8SOcaNi8bm3@ zOHLcNX5$L8VbUe7DXcr(R{E#x9%=RT<ueEDbJ5nu>4m=Qm~c|@%K{OIm*X~}mCSGV zSLaVofN#_a{=BFJ<Plwa4%K5nTY#o}bbj*6FslZgXuNY@gxHk<lt37sB<vIub?4Cy zx0fw8x<P2(6$~=b9h1mu4!wq^?s&q@{*#@}-KK}|MooV&QD2e2vM%s<6dtbds(|CF zV~^Psw1$v$&F(<5jmw1bdjq?R>O6~9Udasz#e&y%x(Q|oT@Yp`@UfP1#QlUBeL@vN zc+S7zMNc+L^t9YGvpsC);@vDSNywUL>@{GKp%hPjyT?8;ywfOW19$<<0FEGDS3u@k z$Or+cdy#_OCNkzM(=vblhwYD>9@tHc8m_m2v}dPu+9Hm17nB}@Xz}{K&d!&3zW+@m zKl3>j()l%1IH?LutmN-Qcv)xY=?XC7D_61yfKGUb@I}%NrFY)oekXLw9ELI%?k>89 z1M33~{Z&0AXY}}X$12TPKv@4Wg+*$*TOc&dsi&MVUcq175Y85^JFGnI@Jb}9<8HIs zrM6vg2R+1%_ve)nJ=38}v@iFzIfUsM58WwU;csVKtlQq&cVVPoUi#_?WZL&jC8D9w z4LRi)EIh<)+tOWxI)Lhn5uhwf-LN^^dGv=NaJ@UrsN@t7KV4Yml^h`!`l?xb2Xt7s z`qe2+P0D8#9*t4?f-hCa-fn00tgR?@>gW02<$df-ckCaysh`~l-@8nV?h4}wmqIXT z3I#Dlxl>ngS@({s!OI>)2p``EAe!(EXue1nFMff&lCgKGOcs3ocO?ul>E6TI-n38Z zkYTsauau)ty>nF^QHcsEpf{`l=u80^2DmPNn^wkav;c7<?vbea8mi_YS?8Z5oDK}e zzP+TtX7X5<?Lr?X7Z-zZXWQu>gAXv~YWzLWADkmF?$ockWpDVzUQbgC?&($Cp$yh( zhfPCK`y3xUpoex{md)#_@Df)>`%gbWc`0C!U&s*v0ssYpO-VD$Dlrxi0ALpg0D$s; zk3iZR7+D#ZS=gG<>**O7+POIE>HWfwGK&3?n+!1BC)6UT-6l*;gSwg&%{g1b1{zRJ zmnA3%63G$eM&MeyV>@cDOf^pRb5XgEkJa4n*pz(&V1n0tmcXH0&46Cvtzz&zL=5kg z{@9MUHp@BM^j5z#(kU>f)>eN5FH62n-a=1ao-HSBHX`%u{lVj>r|&k_dbG!hdkrlV z&omtZcdvMNzsKn&3$}4E-mm?N4XZnQfTHl>sRCubg=?;$ULbRVLX873ua7*^a^K~6 zBZBp)gn3Ca+n;p3T{Y1AB}vAH1Va}mV4-ZXt2Cs@+=*MGoX%k9!?`!4ehHDZzGGWR z7h7E(9kJ=%n_{~pVkj$zkGP)1?q!t%sxMB?ID`xsMuRciFKrS3kdz=og~sz_KBk$y z2VXx@yn_-{qn8J!3!k}ss#3}1g94waQ=57aKF%r`c(d5SzPG>QWOWbs&eM%$QpxC3 zTWxR1bu(Rcgb$jIe{cD@6+^41uG_gWae)J+n{3x*m#I>ytToGaggEf<@Z21|13%;k zc|X&%zCizbQ%$fDMNod5%Jkb*ivPK(7Pc1uUr*y@tOgliLT}zs3%jim23CE-d>$Dn zI-M_>LLHDx5LZ>>kA!}{Hc4VGqTKPv>-bu4dF6w1afD)Z8sTtSFo;~^g~EWi2q+@s z`o2hX#Ws%X^Cm4{1tW$E)(4y(l!IWml%HK++m~4E1+sU)AADY1R%u}ehk`ZCZg>KA z#}bl{62Cmr%-7=JPz!`x4h@x_2JoWKlE?&&{6EJE_2UwB6j_>T3yPR^z^e>UpfdS` zRqKML;bIt{$0VW#g+bp;vYquAOLd(m4@6H{%mq&$XhiAAsR_t#YP6x`72VS0ghaDX zfOY$gRF1ysv<9I+W#9h2dnoPnS?bLmsvn+f%-YllrP4yFzfhdozQO!d`u+FHVo3sf z3jJ2q90UM>{C}*hk)4gbf%EUMxF{)DZ7?ACuGDcPrn$S97Sj{Q3#NtER3{5b76cP0 ze`JS`CsL1}O|AOvNHjK?I(sI#@cF!Kx#gAK+Q-9LRv?(yaTN%RBee`dap@F*`U%{c zV}qB*hE=I1H*b|T<KWG4S+HacbhVEOo>G<itZBz_f?6XO-9DSP^lVgz1#*p4Gx8ZA z14q?3%wumL>)OyHms+5D219knPoP$}mI6*+OuM0Rg0D4?cp}V9mroPRo#0S;BnPO& z)ugO1fa<&pB*U_6->3^wx8G=0ybv!BE_`Ly_0*{C*j@K1`ugB$07yeBUt%`^*n}S- z(gJHDUg2CwzHn+!CSve9FGAV)L`64zlyTAkN9?Dg94fAudNl+cAss({-2e2_Ys8C1 z;J;EbxFaTz=xB&wO)HIl%%X4sWz7A;Y*b-4KYnO%O40KeRrR52XYgHw|D;H>vqI`{ z_=bjP0;GkD+Wj?7&7^FuL*d%&fJ7B8nO<Kx#}Mpf$dcOYXrMAH{Q)2w#H%F|l$Q1{ zM_4?T_NB;a?@Ftfu)zIVCCw2{JHum%#5Dq|<w2CZfMFp;-&9suzWiONkaSF00tbjI z{nG{%x#^qJ5YzNS;E$CHi|6OLl_iQ4ps1)N@waFAACcGpCa&$*c{|p{45wqM&gMGB z)Md{|9y!hy63zsV_7}YyUm5@$c-kQt><_Xi5^&gKcVkSO5o4x_dMa=!=9E;H1x9yE zKrBTj98@&mkl_U#h5X{V(vImSoS*MG4gCN87@q5VuH^m>_%S#D0QLWP44s@EU5uPv z9RDBM=qh>Ka*zQ*;O0A$@bA!W@Vrre2puJe5FKPU)G*!#Rpg=Mfxvf<ky*cka0f@4 zkV^t-T<#w%{uhG`YWRwIh)wd6#e9|M5hI`yiCMrSh+x~R{?e!2f_O%^CLMK<y3?*k zveUt<Q!*fnM6OGRJMVDJexQcjY?(Z=hhgL1f{K&umS!U-FgWN7RE;(hT}#{{R~>Vb zU=RtaD>1?IORQjVDJonjKuaBUF#@&i^F;Z}5kwNpqRJs6ifpDKXlZGcLO}$pGhS(# z%ILx?N3Gqy+HHnXdmMl^5T)$^CkG)Io^xk@y%s)%(KrKyfm=MDzX#Z1*$DyL0UOX* z_1f>B)EH)Kp(>MLDny+r2FMi_@X>wuq8(0~Ukz066PjBiz2aAQ!4WHF`(9>b==1K0 zWXD1(;Sf~Y;^7^MLfM;9XTD&Ad53Y&QynXYXA?<QlO6a)F)ZmiuVC2qoTiD3U|EsP zdsi6G=eH1UWsV_YC({9SXWO^%<14k(sGC;AKT985^cPUqK8C(pJyP?m##U8B^EoZl zFns?(56+&=+3EoU0HFM~`G3A`oIUJ+Khpno+bHWqZHOay=jqLv<7Wf=#e-b;$A=Lg zMhQR|=*1q?j~2DERu?NA55|7`RGL}Wp{x$mw6f^v=&10jsQ5VNdM-EMj=Ks^;=as1 zlS3(pSy99WeKzvKuJfEB`&Or{yB#oGTZlI7jZ2ViUAV%q$vfAUKr2B-8@=M+ule+E zD4m=y-Y3$<u*P6@ac^LmML$T7E@qkI=3C<&snvv}*ak?>dmvt$LFLJ9Hm%rj)8%n% zYg<}z)khzBA7(m}<T2=w^H>q8OzJoEM-{=r?wXfalh_y%#K1q<9)<ElTY;B$M=hQ< z@n9ZZQT4i-J;Pc(;-Vfml;K@|LxRkvd*hFlaO{~wPiK6rd-#}(Qsew{1jTD!L45Bx zgvG<jQQH|^^*_q`_cXb|%F9Mc!x)VEWXWevVe6b1@V3%Nc6=>cjKKp=@mDnt?){Z~ zep_%`yL)OLN!dBgaQWXy^$zM@UyNu#X<P?v7gh>(q{=<sEe7cex93U(jp1zGyM&_Z zh>M}+m^M5oMGH{q2^`V!H}4>Uv=1>c<^)M|0A7EjZp%|T!d^{Mn(7Ll{Fed>C1a6S z56Ia>wyeYl4#284EO3$7^tl&GAobkr1i%JqzC{#<rZH{PbG3{xEOBE-JDpJBOWJq` zjp+PEVs&kzr)>*Kqd0V3mX<m*<#^?5PR%Nn=<8%4-_5SA?eszK4*%u0-}mkJMVein zWB~7Up6$Z|_hOfCH`oQf_ogE90YYomzwr?=+~s-;=EG_m5<F~dq5XP~kK?DE%1Wvd zSMKPxjXCc3y3D7lRAo$D!>3+FcyY>^GlFVf5kXB$J|RVo42$#H>HfjX6%t_qZj$Ir z<jJSGRO@()Ri2{@fTWX5+Bx9rl`>ho2DsDkD`k2L2DSJS9{ijnU$uCXLdBkVfG}|b z5hmaM)jY_E<S-lR)1yVMJP$mB4D!Aw^-f<zKvzUUgu;zlRLdDqtM}-1+LEDX^@!^p zWE0zG!Z4M5_dUC`T>ndQl;^~%uP1D_xrcM#Gr0;nAb(rxsFW46DAuVeNAnyHswhA^ z`~JNVx^0<pW8~vIues>33zcEAe|BeS)kvYpVR*XLqK&^QtpS_1;wD?<pB7qLzw-|v z_teS1U8=qR@qo@T{@(V21^^%>{lAz|8v{ox6UYBz?_02}oHp9;I(<Qj{1`Y@Ib_$f zI_E?(6dXIMPH;9_aOJdOLIX&}4TTVS{F{rouI+B<bU`R4B%IWI;>Gp#)M=hUapNys z$i|r_F#~o)Wt<YtoK(eI30xZV1C_1*P?51E-j;Y`ra8m$mtk28*rvy0(tCm*nmF<h zG^<n8v#arIr3Y&>mV(L2ZOcyAl7$)+jDVb^l)@rGs5)k-Xj=ztCqgrwWHFhc5<{!b z(WFV(QND&2pEcH6_Rl99XC+2O&T5T6bQo6n;>U}+rWNP|D@InA0~DmIQJBx@-zGvr zRd04S%bCbh>-RL=I8u9M))}klsAdNdTr!uJh)>u^2m%gIKsf@|S>Jn1Pe?kb-K0q` zdys;Qs1i(_R~Awf`evX+*^zzIlfC|R9|fiOR_niT6!6{K&y5`R|Li_S)zYTS+>yRz z336C<p&F+o1TWt0Rccx$5j|R%2(+|Vu+(C*Alw}$cKw=(l6Zf%OKR)Q$^NnwFdjc% zV*(~_kXLgx7LbkP&NPE&2l8rysen-^SDal6g%jkc590<PzEwCB{ys3|Ca|-}UD&`u zd30g}C(ScO>X})xo%I%|y+9)0L7za2pa07U!sIx%Kv}J7Gy7X=!JsDHy0lUTXf$>r zrH~c&{obN|WaO^^Ja70>(+pJWJG2&Zrtzqp3JHfaNL_1ng`7FqrUybo{}O!`N-KW@ zDA0@(Wl1FaI9qewrU(S>A>o*vo2nfLKyn$u#26sbm-;m+xKS?w%Lr`Zm9A-Y``1+W zUCzJh+VS|Yev&x2lZ{3;J45RDtn%&qGF6c_lJzP;z{#70fE?fY7SPki4iKfPX_mrG z=a871lHNiHihbTutTYd)d++G5Rt)u#^)vbm1b?T{re1kOhc`lX3Z`EJML(a3v(!R4 zAs}_Bs2izdh{x}b1n3u~4^9C7rNK&oxMC-r)CEZPZ_@0OXtEQ>tUo{mnP7G3fS|Gh zI4}e81W?#hSe}mX3Ep<?2siwk@4Yg5y5C9jjMRNVddg^8;8|2UCzaj?W5<^QlM7tl zfgw-zNq+zP20vy=f>~6_(Rc2n1$64mal>{5UXB3g9LTwAJ@iTs>4@UR%OB#8>o>qx zUgLjsS-s_=|KX?pi>a3zy^}55H$nvJhV{f;rR-w7z>T~6(UAEQh`=ULdeo{3EFQim z+-hEc3lhxo-3T`Nj)LFs_=of&+Y8DL_%GCJ<TPja`7R7s@fiU`eTC@b=-*8Zq_haU zfgAw2_fLAiFG7N3mS8TyOXvMVcdV(JJBxZ=t)-Y|e6#_uyp{Jc4@j`_waDo<SV(aW z5SuY!j<ezJyR-3EOGnU==X{-VmF0L2mCRFg3QO?;Tm}a2OsqtmCi6i}m$!P?YS@h$ zaQr6hf%!MvM=>`B<k<#E!ci)(7{`vkI`TjjB!^5(^$yN|+QuVQ6j*sfyFh!59-G;d zCaaPjnjWt@p?|XD{t&O`)4$L0b-T*dZ7wjsJm!H-2L#*!$GII$?vSOOaXQ|<QDQ__ zX&5lxRs{U41NA?gg>c}pA1u6_)_(@GpW{>A_pciKFu=w4)Ji{|rfy|DJSer`#bZuj zQS+hu=%q?&*FP2Nh0jb2=4i`p1Ex=`62m`)vsiLl%F`R+-&qN%rO$E|$kC6aB{9=F zFUBEDmw+TOMS7)eE91y&_$K*j?|MqhAaZh!tepHR!#MS(9ASjXdx#uFSeiHpKF?9_ z&Tu`Bq>Ynt;~g9Ut?KO8_m&nFx^pK?kFz5<r5ctE5V-4~BOl{f0_H&_RKTSNiD0Ed zDM?J4GN1~sRSbkefLu%nsWqoEO0ZHrbQ#zP-PS1;(W-s}#uQf(=6TfV*5F`)4OYq* zf|XAm6TUG8OlXZ+JJ9IntZ9{NMAKL+5i$)`83`m3r>y@PNtIModTApSlnYV~Fwonf z=wpigt!$#w(Rphr{PzSmhPqQvwINXGGc%UC%{cZA*qCcXDR+N~OuRrD$wd5eVcj#5 z3nBnOYK<;XPc}A$(5c5<&<Vu{pl^&y#(wKW0ohBBA`7&XIQ?)E|A*kiOH&}{j*_}2 zwH~$Kcp<X>3yA3N2uLyL=s5@vjly1yephO`+1)@2BzW)&>M~qJOX`@7aoD<i`zoOR z1BqEkM$EXmh%QJHH%fBRiwnM$WhdFH1;Z(eC$1@O_)7dlWS~I?PD_Nw;73T{k!96( zzDiaI3rH$fJ>i+eD*4wT@l2$6gGKzn!Y;9h562fR3r@txF@{T>B(<fOaO|ve63g1t zw593YH*+Ony_$ZfRHK9|Q}ow}*NN3FrXg+EYw<Kcj5z}`&5QrJ2K*<gfTpR0?%JFJ z!_?F*1%_#F)}C3vy+MH<_#ibqPBhTy=*U0)8POM6Yc&&7T(qD<<VB>4r(4CEimPIn zQb&S`hkSTNf|OOZ^^sDf)1{}F!k#To-FK}r_o=A_{Yvt-1t-h$)ZMLTJKB5cV;o18 zdUEYxPL6WO_>wjIlz<S&p?^p@ZZ?lbaG^xW5=)@B?Ny3xRd-0);iYXNc(DZ-Vrj*d zjz?^Gx&uo46HdxKEtSXV8Bgg)g)9od%?mz|ow$-N`cExMhKB(o%OC>3KzwAE?t}oV z*}Cg&dP1zkGLAK?)d!KU64+8~GgvX=pi)<?Uu0>L_43gNiVZx)b|>Z)oN_y{C%)^u zB*=_lO{YQ6tF2oy-}7bU889n26a?czNXeaDy$Rk{tEmnXGeJS(;6dxaCY;ZTGt}H_ z0k!p0Ng{9&{}F+U-JFNSn)y{632f&^6FCd3kX&AGI%zYFMnm}X8HI8JzGV-s;qK^* zQ9i}RyH9+4x={U-W>h+1y5`_D9~FRsmYa?79w9U|n!r`)9NR({a-B@K7Ry}tGp&~) zkf0@8mO_zlOdizNNII5NR^__2Ks{YnON(6}LEOOE){@m(wef<6`?`5UjCrnDx<;n5 z&QW?uf0OS&5@BC-=)?rlod{d440V5HKoC9|Isedp7ZU9EgrJ#`vTA!dr+)mLB6$>) z^RjAzxG3NVi<G0w*rVmniZ?R>j7_wEyu9kUV#J`pXZdtxC^pFb`+a~J8+_fjvDA^} z-R3PLvrFm?%gXamSqWMk7+<b!<2UBH)dJw|3qcm|;EP5OUxIqN3>>DGdGYKSb!(r< zM6|cQ0bYk}8;(`kOp7>~REIC(Si|GCR$X>1YKYS|dgZFH9vPqEC1QID$S#7{O_ntw zUf*4tJ)d{L8pqBlEPR);CXhO*jh$E<GxvpRp-|@2CSqEsR);#0mZedW?v2szUkBf6 z>bp5%W^nLuT}=zzmxWBLQ47s?@_6vm&tQZ%i?G6Wwq+6QBv-olB!RfMt!0<}Sp~N4 z3-r%@PvY#(O{uPFOu;wi{$3OYVjWovJ#+^PI#YC%U2K+yNawtX#T{oTa$)pld<FSZ z+$6rpYQnr7(({{IzE|^8%JH}>*lgr5w*LZ|0QujkCPe(Ab#-Dewqzw2)6a0RdUPq~ zkA&U3<6e$y0EUD6HaK~x$@{x6<jszO3s(tnIH+#9sbt(_eaJ=DP=-)0X~y5OVIsbH ziTFbp>7`+ud$4p-u;2FieX~|Afj~09ovzVh#w6{&pA1K73uPXo*W3{;g2Cp8S5gcO zoGncTCTc&vA`0Zn*CL9?o#<M+PQMXj=7fH@`%T};Y-{?e)*jPme}zdY7ub{wcN2g= zqEG$xBn$UQRI2A-VDt@lKL|i|m4pg}U2_HzF^UgqIiQ1nx8;pA?Zd8pD*%i8Cwr%U zngC;6Xh3B$6f~fD%#_G_GS_Q;?-hVJ5!1o_a*tYy`q6L~d%Vp_9ooCs9~M4#qxx=@ z0ez<6I>86q{|SIwD4}FA{Qh6FBL5#(aQ}Y*+|k6r#lq3V#>Ce7zaH@^YBo+AY)IeJ zdI9tJLb0f^PDxp3<tH7{Q^lF5S0tP^vPF*ih>01BB+&k@-ZtMKya3{n@r$~Z^h6Dv zGjz|temHOOP>nLoe{S=XS%@_{4F2jvR@?_W5aDAaMBjk^a@wRcXJCHBgUiJD80Z!W z+~|k+{VH*@Jag7|Xl<}^0%*}^gLC!>GH41l3@c_`6vh3apxG%Q;wJrh0d2G#YbYN~ zMu`c*5}Bq%_N`s3NgUg%jr%mQ5*_r=zkm<AsHy~7)(f7*{HQYKGBK%~6J&rlaY}(K zEg{LY+dpix*Z?$X)e;)0Q^P!m2Of$%sYvc)ZbJz=5*5!Wsbq3q#arjJV-_u;Tbq6_ zV=zuMpY3`@t8dNE9|m3NxAtB88#z$$du8C+YO!PMQNEY4{MDT@&JW8mg-9onG$<yb z!@$E~yF~~!p2_)-P`L=k;Si%QZ7<UBBd4`~E#GX>yWLUqTVD<jwWdqTAJp;L`sl&8 z4|6;*{+VN5rsd{Lg=Fg_+Xc9r@T=2fkGbrZvA?6BNf6u1%Ufz~l$={v7Wi#K13W_T z{c;zLHFzaJ2-9RmLh%OQ;!P|WO*@szO}vvOF9D{gQ5^K`J1ZEq7w10=VjY&QB$AVI zxx3{y3KgqrLONnRC@Q7yt(DGDOi`wXd1^agwCM-IMQd?;hqltSF4nwB{D7!gEHMe^ zihJ727N{g+6qMehnB5s+K`(PihQu>Ee|-rm8xN%+X55a^9Bh!qn(XmpV8*!<FXFwk zSkhxh3kn{sCy21%!58M5Q$MClLt7B}S4XEWZJE@!LnaGS7uenOMglIl2RF<cae8no zwKFyYS3OVR_i-irF9=@k<p-BQ{q1!ybfF#BD9LA*j|OWcIARH03EXXEUtnBC`RPvz zL>;p`-w?<<z<94~eF-n5R$jDGph2#WiA}zcsQOPZ{6%@N=#u4NvQ1*{?n(%kpwRW7 z*7fyTQ*K;l7oW1?g}E(rl>mXW;pe;oUxvgxSL*6Cr8c0T3~S*GNz~vau>61ip?tl< zKQVc;XG|9fwugVBnWJ<=gX3%E7cqTVwxii`DNOS*J)j#_S^XW|J2WCM?g;M?H_KTw zxb-?zO8Cv%kz5%wiY_}u9+ppBv9kz02D=%~<{Pdg?hkMv?n)O0Hn+{W@o+)Ky=`#_ z58``qIHBw3AAp)Id}4rjg1Kkv=#`^D<PA)v`w#)E!AvJQMZwKmYQ=#?pBWhCT`xU< zpWadI_G}4lm2KlIsuq6oreLnY%j60+66Mk!U7y0a9fD%FO(yVTkcfB|@*24ZF>QfD zL;S>{E1PI<1zZxr$+6dQ9i8b<+dE{l4WR*dqx#2i>e&ja9FVuSz<bD+EB4caJzd1u z0qX9e$4RND@^>5Yn$QU@44`F?iyE9j7F8GT8NpiC?=M35XUI_NFs4j+zE-s=>Pj$A z3gw?ozluexB#JTQa8L<S1Lslq=V;*(|2!xKM#sDJbC;DV0eYCyb)J_8%bLb^yw)vB ztxZ2eY>)JM<|Zd+a;sf)L*ccOIGQ%Hy1%s6sS|t!&u9@O$V<n9HuRMt2Q@lGELfkm z&q@mnz)WQo`X^|BiifkFa!HqOq^+~OO(Q*ERVNPy^;KcejoI6>AI1VsN8IBeuEF4; ztZ9QeUOed#`cmT!)5m>2l1l|XA6ZyapP^c)kzxB1!vi8BeDWT`wog{m{y_BRCeGl> zginUJ)Z|0zHMA_<Ggi#IrR1q+De|~{nY`bjpCI<t3!*0a=QY>Io1jjwe@vp+u2Xt~ z{GKji?xY4<)z?%4ha1S%Td!Q|u(9=)Aq^Jw?Tma1Q;GAsK69m^E<0dV?oWWL-T|dz z%K68Km@_pkO5Glccy&C2aV_LC9Bqx7+ZS&_#x+V)#eu{+di8t;d)s~PKdR{Ifl{O& zqm_N4h`H5h#v);{ir#ujc51!cx1+Wo{cl$7uBz@`^NF2mSWZV%!%Z}E415~us<zUG zIKq@4ND)}zb!m+*K$Zn*5MKW%bJayu@jY*TM-1=Y5UKs`=hJ^Z%({3u{@N*Tf6BOC z?eJ)CZJ-Hy$HC9tuJ}h4#9hXjWZzRaa&NJTGUO3V94Xik<m_2d*MXpTb{@4+tcVQ# z;mdVS=FK`tc+~Ln_!GTW$?Rk6S&}I*MNySSj(To1@sNd6`G&%!QR9PMY%^r(>Be`$ zqA$gR#1vE3Blx9AUA5E9WaC&ineTi~=2Tm7Y73N_S_lrFT)i%&fxo(hs<x}ky_I<O zdQ@yp!lRU`u6r93%22bxVekR7$aD_r9o{%};s4rmlSgH~b&t-apJ~RNC(Na`jmzy< ze_xSsD_7ZxoV+mALKxvS675vjy6RSzicxS~!{LgZYjlj|W(m@p1(2QMM-7bC=jQ?~ z>t^%w5yaS1W-$KqAL#bS7-a}HHUPkwHvj<D|3qRq+5ZY(OfCLj@a&5B#%<%jq%Ud= z_dV$23huJDz1j4R>@r)mJ4cCKWGh`hv1(FE^+TFuEhHwxF$=w4zf1|7fPCsc%a(1` zi>4R}LpmmmDOgayIlCwGWaTMORu#mzZ0a~qrdh=VHETrbn@EZRuaZK|#3U8f^x5Qs zXyQQL$)+{NSN;SQ^?lCPsY4fkbfUM=zaHPO7z<>vx|G7OnYcXMZg-zz@ToHm4HVWv zFc`@eippxb2`hg$-DCw#?cZHr)j5$R3AVcZoQKBt=#hg5lWv+NcN~+nsKV-^!)mJI zNzItI4~9%*HB2J5Xf%`5m03bLD-q|>XYqghXF3W~)DHx}i8<gU>w5_YjD^XIrkj;u zrwa}~-SSHenkG-y-jL;`55<+z@a~W{(sAs5UM?)Y&nrb{KTe<f+*`&Pz&53VnTMje zCF49F5;1iwUVn4GO*JjI;fqczGmBTAFNi3q1vt3fz`4T<b$0(SbxXq)b^#m%b>%?t zfozF3$<g0F@Kl`_d_BvgM%w+P9r!<AFy7K~W>McjN}E3%9s!jRX0XfUl0N+1xcKKt z*z2o>#$WN-G7k*zdOAa0>{u8P`zLx*BAvX9JNn8nicdIO``Vnr`>(!bewl}}<Nj`c zPUsw__{`b#G#sRmbGBZ;v#c(?a%PTM<>gQORN8qtO_Za(0P&+I@B0S|SsJ!jiUn>B zl6o;H&6q)RwSIPaChFuHNbx;RnmJ-OmnZ7i+ssD;s0r9NSA{ZjC3UWkI^f+xUEUWx z55}M2wK%F8a9|`Pl#?KetYc6JzJX8Z)(}?JGzm@MU=7BC6J!^-C`7!t(J#q=Gpwwy zjPmb6r+b8s!##}6`zKzY7aVosr~=rF040^my5tn3s*LJb0{l7@G1k)OlY#TnoJw%< z)Fv!yz{FLEE31O$z)WTmter8k@~l>8(nP^XI(wf<p<2S*t*;e+mY4c$0lQ4W#kr;; zsG^T(+6@ts_n`&l1ggv-v%~^?;9D|ihAQqX>iRqc0MshQ-;ijgR*jBN^s;DdJK@cu z8vZ~Pb+ir)-W32Tk}4O&6BPfDm#Htt9!~uU@iG|;K`QkA`FjfCD62OBDfzj|7_L^6 z2s?!n1UP9|bS#sRh)l;H@ra<#3nq6{IHDGVFMiR>O=0y*LC@lA*irzd?K)CW;t(Da z&I7E^X4O9hzQqW^Q%?qzMyo8LEUL;17wVNV0<OykB<+C6@u$$)_vp8WQn9UKE0|7w zM3{-o1wFd9!ZGd1I0iUnY9-6t5Q9_QQ({^*BBv>+^y%I9M|%6#Y*d?Sa5eSG<Js<I z5;J4MUEC>X&E7f0){?xB#1OhnQQ1d&#zJ4=D(~WXzpmcG>XafULOD_dTTb3rw@$z+ zU_W`fAv2kA>X7{gVi=FD$4IfN+!&0LnQ&bk=mT#c48f(Lx7dLV%4Ha*SborV8|_GN zhF|-w{<!y|2Ppt^@c2J3nqwlty`mtTa~sXp-!;>uM)}S#G_Z%ywdp>B4_=R~<HNP! zvP==#&F29eA6sEaw5aqNCAR1#6jx|2Iy&;K4`CB1v?4Rdl9^%aLH0Gj9z~3WeR&;? zhTeonx%1k042ZNPfLbP4i#gvG9Wy)`MntaBjIWAxlQW!r!N&mvz{l~!!RgS97-<R} zFn&_Y(e+0!fH2&N3<@-wO3}~f17LW&FV6O^K&<y^(#%}OUZF*;*WfFO$F*q*7;rt^ zS%mVhfp=r9Pd$ldiIu^@x4JMs<*&*JyGS_s?+o*U^aory>n=&;R`R*vb7k!WRI#7m zulxAppPN1<B)~12z&PweRe8!$Ppk3Sv}Z!oN4{eWf~M`xRYcg79BX!iLf9kRi9-m( z&a_QFnX?#bexW<EUGFb{Gh$nr1s(6^<^ab%D5+>E*^uea85l)8eP8#kft-RfOl|_T zL(V2)sh<+e6g_gdDpxX|(#WZ3?(7w-XR}44t5zdJ%XmU#3OZ_*Gr2s$zaD?miu^rk zKt#`G2)p47AMav1Z@3Xvf?=>Ttg~ha9bx$b=kp;$S}s_~!Q2}0=YZ;j?l{~e2l88l z{H*O1Fsn}8xr?%070QJVh|iq9EUxYmPV?CcbaKuqp1vN35Mmx7zgglDyxDGxsCDfO z9iW#O#TC`j2bj2|UM+||vb@8g7n#z5r(^bUlO?(bLWST$>rx6XKyDhdH@16AP?HK* znQI(aZaS2Nw1@QUFv+2_f|C9^!0#Tt^M!x;GjPL?!+Xst#mtT&JrW$qNS51!*o3OT zCmAuT)1s~aiV4gFSN3_81u!CwXDOc)h>{q301&`y6f4t5#$2J0nR3Qd1zPXH_)l>= zbkLq{JGKDqZ>;v$2?OCYRRe+fL!~f!soQM5Pu3JQsmCKrjlm2g_NIg&BVa482Iy(u zrVI%<<ceyuKwl#FuBp+1l-XGJop-CWsddlRu)q`Vv;}-0mcL&~d`O6QPQ@EY>a+Mv zx`*tYha7TlxGy?&G}NO=&~^azKJAu1n@Ja<mlEBQn3#Y-ie8`?*t`Hwg-S3uSNn*B zzBs(varVDZ6?p=KYLedANT+dz=<3;P&oPntBy|LJwu=JD1^0=lb~amUPkH=yW}4K* zszV+9L36tsLss*TU*3x`{l{djMf2@<L+eZOOrKU=a6Yvh26%UfC4XJHoaGu=i5d#c zxEk-I?*<7YVV?**zrLpwP@TnPNJUX#uRUkiU&<+r?ySud=_ce6Adq(QH$1UE@njA8 zkVAt;na_gT6gEW+^NLg*zG1h68Q_)067LG`)H4N~z#(~9?Z=ysb5M7IW@gVN%VX?} zLG)kZFze#hkP9Pb9{O;kQ49f)+5}BAWE~6WPiJWceg{+r_Ju=9M2P6<q@(#VVSUJ} zAdeAe$<3;Aqkpg+5-s|5B56?TgaB6=!7Ou%G(@CMpVcongeeTD>bI_=>sj@ax(t|l zZcoKc8Y7GdRk!X>B}&6c2co1lq3`fhr6w26$$1&~hyCRbyWAi4u-l(3;RZV&wJS~^ z7Pc_BMsh#=@0U(X`;M?X0rlC52?wO7<6yfwjTV{6!IU;sNB&Mve%Wm>4mN%|>M2f& zRE~dt%vCknAtcU0%3gLj5UVi93|hn$7j5ci>6^kV80j57Ju;HfF<Okl%~v7mBj!C6 z<|KhfQF(}nbdXgrn^j_KC`7g)A+JE1NCoMSnC9vm-}&xm!(~eJ39=jhz-47LilOtI zaqLn3Nh1g5FSz`|HEl%ajVHPT5CO{lu3#T3<;U^)d74}in}hY`{JtKZyot-@_3>eW z2szFY6eDIB;N|MPV9h??DjKa98mUo}J6+ONS;E*FcMTG@WS~V|4~u1!!@-cX>uvIV zyOYiGh}HyaL>W7BaD~jWzQ}>g@$x7`9ZrS`y<mUN6oN}aIA95=w;Ev$2Y>fgMj~p- z>7DzVhjPoHjsB?g2~pWUDLI1PceS0`?os##%HaJgL%nLb1C8hTRA%#q1oP$k=>a)e zHf$3vPhp7Bu+YO&UX$aU0Y#EoU%VJ8bT#|6W@aHp6Tlgjm3I{uz=3M|-3hIfMpOCG z_G%Ib;nOG|XT#Cqc4V-;p;R$Tu9tKf0Nx&axPCMHJ9oumu?+dqb-glEggpZsbVFQl z!p&RvtyZwLiM?4P%RpV$6N@z{)5&^o-^Z+=l1VeG^yehv%jq@%xQ`5!)i1A@Oijs4 zn~QQvz52oslAsdvs?@>r_~9ANDDA;yd}|~F<R|>aD&4uz={6b}{u`OCVIy!>7hK!h zej6$O*BwhG@B?f6+?cEFU!vUEUyYOjHuj82T2bIj7#ykFj$<k3(*%#*3_YdT=*b#3 zm9M(oX!`+#38|@aeJ}?{O?@g&fZ{Y8KJwj$05O^J?xpRzn{&89KAW(-@%q&!ZHEc? zBR>K9b$TL%Y=d<3phl^xPKWL_d87|c8i__loqdRXhJZ6V4}4boc@mQF<%VO3hBY~9 zhK%9MH;P)fSTAvXZ_zh1Kyg^O^`eo8&|0dpSGd~HT8U5<F8crvWZ7U<w%I;CH@3{X zsyd(`yzEQ<&$<Qh7cjkX!KFfkajxS*nSz<l^dHXEqGiu0%)o2@NaxqmCis{K`%gMP z8zU)(q^zc_$5Ls##5Y4QJ>{HD0D;dNDy1sd+XJ?65y>pAAcD4mM--LrRD#o2d8bP- zjp^0Lh8@^^A0@a);*k;=U;^a$rrrR_MNR97esZ~4<oG3On9KMfx9iY;bu=Z}IzWlC zE?hWPLuoAkO@#W%L!r9^Au$tSA{@9ImfxIvx{{d1E2P#o`@5~6q{BVAKQNfdK1>4k zowyg+{OtW@H~Vg0#UQi~l^0#I+eLtpb}3PE3mV>{gheD=Mgq-IU{;;6@sO-0ZL*CP zs#zEg0GSays+N)D*9P79O;yT;aKcD^=V}Wy@Hpp%-&)8nQF!rhqa0Y$@<^bnlQ+UQ zuX*&vVL%LadYe|NFVE1YlpOzyv3H6QC0e+3+qPHRwr$()UTtf&ZQHhO+qP}n#_64t z^XHzOo80?Q&s8rom5e#Y_qk+ZE?{WdGq3KGDKv2xAcMrlpt@)8B`qAWNr$h#?oi;| z2)tN2Sgbh_?v<`KL&pt39ViI~6h(h#o8AD=nrSGGcg#ts*y-;Ww&>E@+8>)0&7S%y zj{~~v9^m-TeY5MraPU*v1;o+UgDlk(JJ@wGv`WP7u;G$UW`+OQX@1M&=E%8yuKS(m zP?T?~%l~2eo&u?3X$Ik<n5l1<9=Bxc{Yt5pSLA|OrZ>!pooZ)~GW)8$Q@Mo9<V_xs zQE*P0?86aEIi{YtQfV4M<Y*{ByxvAmQ;k=_E_!u)WcQBT0YQ*=4|#QE_y4&$i|UbH zjI)!zF5oQ~-<oK%YPr-<A@NK@Kxn_#I9TJbyOmU7aEs}zFagfX*Y@-4i!#qkkn%O2 zP@YG_WKW*-tZ4FRcqlOgea<K#8c(BYiyVO|6EQ?1es-jaLxr-}qTU|QezY`HEI`0C ze4WKDP(#ATRYaxo;6}Z5T8r)XzZ~j%9U+|9dU$bDUAjVc^9W+E?#r(-DaG{<x6Rhh zmWe<80&ItIdgQG>FRY~6#C`G*H@4M#Ik=X}?PS9UlzY8=FGJh)wQFqNnqSHfNC*gt zkqw$gwsPl8gD3%t(=V&x;E*^vq%%YV6I=5<=Hb7-dg4TK&iW)=<PGrlU_nL~yb@d8 z&Ko?td=m($VwqYtMZuy>YjJn_qZaNkL(V{#Gf7hu)nVdckPqV+=69xv<lCUT>dMA> z3@Y+QG1LYxU5(V0zd8nU{g^qxh+LYighH2W`aq52%HAouchJ$58Xpz1V|seI%=rTt zTaJoT^1w(_1}7khz6qE)I%(*N43l%v=Gdi33H}Q%&pGc6)V>sOH&aNR5cewrg5JBM z02S_0OBq5{qXTeAnu>F(wZ17-vL7EzX2ahIIAPpF9(~@e()Z_T;-x!RoW9qaCB$AJ zSJ{@}yipbhh?hcONRneXSJFtkMWm5#h9$vw)rgkV-eHo^C114q;+F4AyJf@;gO&DA zcdaz5J2?cnyJ4$mVt-n@gOa(5r=|>2E4Rw0jCTAg1c)z+X|^!cW8oOI;5h6v^memk zNRtN85Y{v6c1?hgyW-H1I$?W-A87QTt$kR^ga-@8k(jh9aaKj+RO8Sa(avWng*U0! zE~fXWFIS9Hc@_EyZ3OhWj2JJJ&rB#5;*QR5_~T8Z7Ld2sr(i&L92`iQrY7PVDWjUl zi;@U3yx4}5v8oLXeljWLiU4e5jmSp<Xplgp7)3>9eqYwm*r#)nsg>&;@)-&{^&U|J zpMS!rS1?nsN;Kk7fljw046SVCG?fw~bY|4ScmhK_83yRL;tD1;VPsD80P|O#yNo!3 zB`-jDMhafs_Oih{N?pHLOz+6L@3W)G`}6wE$5rinCw<8uFoMfEgJ<e`Q-Z-9UdSUn zLStzdS_kzAG)>afVORxMb8@~q;}9(G8lOq&3{<c>QM06{FM+@N_9-^`uYsJ6Av1NO zmhcryyQrWIMwa75A*@+<JTXfNbOKOSwmW<@i8z7{XstS6ZC+C8g)wv=A6tje{V-|f zg*Xk8lufg<a4>x>>Gr?sQvT=w7GpH!<*WMdrmb46o~gk4E2p<)IZC*JskPWN=x|9C zw+2eA%y-J{;kksLNW3#{d%zhqy3k!Gn2&ugIQ-K<hX;!sU0BV_qAg{vC0$y9ld1_% z03^*u)7ja|Q9w;?ipuMaX|Bd9NFLU<qlJ9Zo{rqJK`n+vf&2k!9D``M5`g7o_YGJ0 z(;dsgtt@*SEBnu-Et5<zZK*be?=PLmVLbPVH2JCYo$zzcPjq=55f$6g4v<Ls8tcRq zfFX;^S_Q-C`}LTArM1uQlQ+wybgo^pJ}fmpJfO~r7Y#fqd+%mTPj#IrJQKR6_Bx{Q zZ3qZM8!DU=Pk$=3$%J@~9ToRZuXTht3J7d=zcR=_bK6%%Poz#T4mdW>JjE(DfOD;# z0kEubzkW-)E_D;UGLT6*0=vh1SvQ9t#eoIztg&U=7Z}+NDN;+#&p8eQ2rRX}pt?T1 zfOkWWRBTl@&78afI2#K1z9a6sDCntJfh}S(#628h`vGWd7%nm%6pA$}$D710A*s*F zS__*uoB~3G7$i;ALycZyYum1MF48y)DOnMVYuucDO#TE}mT+gU4&q|vLcG!3Pr%Bq zP{l&TR?4%w7F<9Vf*}59%N!zR4AUneH<1y&T7s+O*$ZQ+uf$bYkx2R&n0F-Gf1tZ* zmt%5*vEKip^xKS(O-Qz#Sh@Sxw_mMWvc#$2CI-{JCn_c%S;ifyKB=FGLn~M(2D_3c z9@MBT8kkNJoJ0@&bWiJ@zVvX?OZ)-;x|HMb(CLS*?-0#XfdQVl$zGLgEGkcaNWV^I zv)&>t)tHPcN5sP|LzkLkSlYvmm-b?(UBfSCP{xY33+sa(yy(lP*IGhf`?-Rsy)LOi zWg|K>KVAt|V@&2zJK23sT60wW*sQ0<VBJJG>JY3+(}GAK6BIh88{Et5>g&PsDtYxC z;d7_R>^MmRUqFyB9n2%zJAQoOp@x+lxr7e}(a%jIuYFgxn`CtGBnm5IEe6QW+<g;! zI5)ym_q1CN`=z|`?iXDZDsW6wH9Yh`06R=mAdHrZ{2)$>+V;3$UindX-`v0#ARLA$ zV2uFat@J;VdtzXk?QYlJnG$D_Xl(CT;=|f023UjW`JeC1xmBI3c1aYR1ECVH>G@=H z#^-b7*!lYryu86+k41=+oSJVy3)>?nD=9!_Y4kPm^v;UEAYQOoK(xC?HOKqXOZNGw zQ*CU*#C@1KgcjkTs8=UZ0F9{$$bW?eqErEfbOCb66;~<2#utEYIRYYTI|N*37#S}a zQSYOz>!+~9xwhb55*v3Bch<>$THX?_1S;^CfT>n{NuxkMH)GTabg_Zq3=mq<RzJ}M z%2hp+=DxdpkXW@flo-%AZilIo>4dd9$Ube4$rNYC97_I$s|{icBvwCx5AyXOyuoN? zqDTKIj0>_pQQXW74EM(6+@R0U-WjN9B=X%uEmRemT?Tx(X=N-e=!HmtkI6*J%jrTo zl{Yn2aV_Q911w}TBR1ZJae2wlfKl!TY3u6hB-)uwi9|wwI5Ip7wN`nZTXc0K4Y)&u z(=-(kU9<j097fgOgW)x11SZ#LFSFIh8j=`QNtu+HAz8p}*%rvu^N;A%SmV=PEYoJN zm|6J=dYpJegB2jG=jhiaQ^_6WW&CY0E6I4wzC&e{O;U-bKV8JwyhO}lKc$w{cel1v zcP$xgOked{Qx%YTRH>Yp(FJa~`391{6?`I%U{rQ~Lf1&E8c$TzJpG{4EPCGY`}@-V z2C5Y#M^BQdwyZB<H(-Y){y@b=_MBobD;R05RxvHD!{c%|qgJp8Z_GB-^B992XjnLB z%rHmmf{dG#*Y_JHlj>+tmmJT>Aau=O<MAvnk=&)n(abKjRyU7kTKRR0LE+N2r3#JF zvmI`P;**Pe3}g}L91e{yyP|+DZnB>Z$igpXBC<Ga5`0~I-;j*IKqYlldySaJX|u?G ziUvg@w#ZHy;qa6^kl=pO>mlAQQ2uIMm1a4m03g03-)r@6uG!RHoxQ?}=``S4fMcSd z4#pdJHjUH53%69vujbsPbc4W5AK5BNt0rdcXWyFJ8(yT|VT%)^@e7~-Nse!?s1P|x z0m7wJe8G}o)KAYJaZ@;T%|p!KW*y*cYVIc~bV3~9lt_FCr`Xa`>Yxq0nTHpL8szp~ z(W#ieTI2u8SYs?=22he*P!Tp=nd>B{ZS{-%Y-EP~n&16Qw<X$(X){}YUC||XBM?(% zYZvl8u<*?PuJQ@)8|#`Da4?ag0n$NYAtUiWTxFqBhp!+0i_!-;baz1{OXH4Gbs6@Z z_6dr)C<pot7emGOnV0j)iEWNCrhz#Xjv5AmU&j~}2N-DX0A?K=^1+!k_LoCe#DaU% ze2I9Q8t{N7ozO0{y6$$;ANmUA+p~^O_#|t4OXtSmvAP+3->&@$nCJa;j)v=^)^m(( zZWbXE7E?tU$Q>yq;(c9v+D2L_;z+rVEUhN~Vw{D)`M%&*Qm-aXM&WaTI<+orRk@nh zxv46$t&&MSf3eQc6mur8%*)EDnOtKtuLG-Oh7Ax%I=9htlt1-cD<kqfWV@?i8x^kM z#>(9Vt+YR-u1))Rjq0q<GIgK_Y<S3<ep<#rexqLXy<Mn3WiH<B@o|Vv!CvD~iHynb z7bzRqyn}PgECaKF{Ov5hHs33DTc?Y>*S|wv<JHy=MsQ{F4u<Xi&$1w3>=>%j`P{9i zPkhXmo&*;WnWe(1N^OLCys}C0EC)Ui&W*5zO~$fbNno^_2vtS}PB^@u<H`=!rQ{)K z`RxwuJ;0Pf`NY#fohFW6Y-!Jbe-fU~62{sbBpbAd5EJgUE=>j6=y^TgiS1_IQ`305 zsOOCBnpS!XC;&jPD7D)OG+f;TdFzn@s%qViMNOcKn)ftG?XTMElIQHWaogmSS?u9K z603K$(DJVa7}{@s186titt@_w1seOh=wH-mhG#p3cCCSH=wp;*MGcL46=0mgJQc+z z1YefZVoMSdQ{u*sIpsY_nvPqZj=6&VjEYb{x2%@SwiV7@kt}+=*Vb3^M6?~nKZi4? zF8#q63ac|Ah;1{bfa}ly+6mnp)scbzUa<k|0ss*Ie_gRT>YM(j)N;jb?y$l6AFdp| zV;5vnoEc7ZR$=}mdvsRoa2-?KL-bQSMtC9dFiP2NXqCiKkDLoIK0y3^T*_8?m1dF@ z+L&m;oY`X#7~9$#_xKufxDeP+z<h)T_M3iu2q0Ag{-insyau94L}rmv`>K{Z?<d!> zp3bvn>XAaal~sM-!VM!GB*f*?nkD2xZ3BJb@2dO*oXiwFe<1MM*j&?YlV1Rhc7dC6 z-U{@!*nIfYu`Y6e&`3btRUwlL3u}Q|hkhk1StKo}dLn;_aSG~K=AM~0V)keS3v1sS z;YdV7Pw8`emAroG0Tv9ef530wY@b?BT>;62D(rUm#R32M^l^~q!`0RG@uP1|)b$`_ z!XF2*S0K4)&0&~zjq$+*`i4VFG50rOL3H;6{kEQULdL;rh{%ZeCV_nfdjss9rl#KP z%#<z2pl{(yS!9JU6ePAAKC?n2VRB15zF%Q{hT?CIUC|)-ITBHQ7jbGDZ_4pbmo9+X zXi6dR<wlQm-ZW?mwB*Qs;M>M){ji09{&91>FP`wE6H}F&`nYHlWS5C#<>{Td7^Q1p zTGCJc=8~Qkyjq?sd&Vl9&luFdf*Xx)cYtxIsg_Lvg(yd_;4<AyVU+fS9dT=0RPdJ0 z1?{=KHTUeHJT@l`#5Ix6Zw-z2ms{qVQHz1Z<GrYd+Jz0>puxw&V(+Pa9JbF_AdNoD zzG@F^0Vo5vh?bp(=k5Hl1K7D<+gN}<xgOi*iZ8cajA|lQtU7s}INwj~gcRr{+S!}& z0^Oyns<r~@T`g=!Ha5@4FF5}`Io~$r@43U_@=b%yS>V?79duH-wBx@vJMHG=bYY42 zlSbfCcVcsUyov3?Xdv+TOpOW#xE|5XZg8+QDM^^g`|J4X-$WhpeUq0y+RrTw1#hZs zQQV(VM;PIo(U{Ne%mY8Ly7%Cmco+o!kjO*_Er6fE4fF(NL90nU4g@MuS{*Mm+2tAS zg5!J(x@e$WiBZb)1GR!fV+#=Rka%>2RKyOG87}(1*Y1{y#&Jrfev}N&gk{3d>^Y#U zUd<ME+M`{!d=#vHreuamqOjNQj61A^1hs~;ctL!wI-z|F$`}9CY{cc|q<%xfC6Q3; zFO(Q93maRa!|~4@R&lwkPpAd}e8)0d${#@dyAmJr5pRN8Cs?Dd9IVVq^1uoUIu3rI zG#kJ*jbuuo@&bhXTi|fk9!HU*A8%0m%*?ubfNsgE1b<8eOSKLK;e}Y{01Cj-76^@b zoQPnLHScu)eeTxGF|%+8QF95DI+uR6G{GFpI+R*W<~CJHed`Qkwl&Zd8tD%t4En_` zj6&k=y3A5_fdfoR$?n=Z1pxI^oj%is&8VE(lzR)S3{HVo>QaZhb(-tN#tZJ323-DQ zc!)wSvTyp07`f{mY=)=lkKW@zl>ZGKti`bQ=itCUlw0212UsL`x(Ok4=1Lu9gQ5%U z^Va%RbbODL;A!ueD+k4e+T3pcYgqBW8+l9)t0hMki&Fe@Pn||jWdTen{@>Y1-Q2`K z2=a^+`)%^)cxH~LQm!z4qXD0aqNOVVNYsMk9?}oo>B5DB5p8P9%Rou&1cGeH)RMHN zK-$p)yqlAA20=lyUh9iTg-H%Y$%sgp>~Bc!jaAu08M!j^ML1tPun{0G)Yb-L(S4FY z>X!wmqWxpnI)T+@8XLlJ6L<c-qFNo>)2%qXKm^iDjk(l^ih|mX*jp8LPFW^?(Dy*z zP?Rs`X|IQkj%%pC`~k&}jw~sFNgG9F$A{FN_nyLthdh~dwO<CZH3bH=*h~<D&i~fC zFfQR;feHBiT)74JaT(}L{d;xO2dNyQg9wj=d24ENg=(KSBZC?EhxH92_G(kCdVPP; zp7sA3XEM*;TAHTOTEnf93{);+af7u<^k?)($J*ut&O+<+i}e}nCWc&MyNUsZmQ@KX z_`;<ELh1qmYP&XoWB>}%h(={4mOihw^cYEEnJa++v=1*~^q#ft4*ngN7%>YPfxlLx zYv4cv`GY*5d4hS8M4H-ZdHpsIYy_c(^|uQn`9@uYOjb$^hr=2h6OD-wf5RVzeA~fi z9kO47qvFmoM;<7cnh@`Hj_!?UP&wbzrAYp&i<7Xc_Ey!(KdvIj<c}R1DI%n~DTV^c zTOxjm;jQCbps(=y=MJX~rAq4~HpD965uS(Mu0BJ-jhWM8R(31VN5B)8eHTfkS14iI z%eD6rfmoLuQNH<K*P4GMboiX2HU;-6o`@Jl$e9J}7?4|^-@80mJX^tKy&yu#O61g8 zaM}bwBcp%PFXSWtsHsQUX__Av8ICS`a+*AsP6VSO3;PC4@{@{>Zh$Q61(TLzNa)Hl z2kb(jm%9r@5`xTTNudU&YxKu2kLPpCyoScn!oUYks$r0j#-`)bFfXFdgrwl?!TM4c zbaZLz@$r6Ae|chkL(=BUI+7@RrD@)%U0(#K;q9nrqGOY>i|ziE{%QmPWf+#KA@Ak- z>u22nAQXqDOAQ#Puwm3AA`z>5LM=YP?e^Q@O+MAvDN$J!u0)9U2g?d2lEEF?4Ys$+ z{qAkV$3iogAKqmY-n2{&#226txsCSCLLXxE>26{P$V)~Br?(b(Jh!GPI8seKF;2CO z5|tCnc*M%iKYar0DA=36o^H@*F*-$BI|iG!M^z_Jqe;WdGiR>u*R#4(T;Xl*lK?>3 za%4uPE*XZRyeN=Zf{s5d!Q^%-nsPRj^x@+4x#<2m*xJ6kJL_hs;k-fx%N_3|0Mp}y z)C^hfpRZ#H#aa4{U<~_Y2Ji~m^Xh=`=H^)E^YYrw#`#(i2r!t72{V~&4!eVu8wOZ7 z5hVUI=rB0j^XCzM&v4i5U-Y3nC5`d3`Lbir2aC)>VdOr(DKCbOB-CITI(@{2X9dMV zbntGAJj(;WJURjCB=2?3lUd;s2t*H>u{sM`4nm`6DoFDYT~F8_g=C#g45_8XvPZZ< zb&kNM@C2`<r+Edh0s@~OQpmS&*tdLl`c>77>WMd&;u{;5<hsu}65N<OsWkaC>j7JR zs94>+g(69@nFX|V^%fw*%-3qgQ^pe)ee&mta9GPdWB0hk?%DVG5^wQ>k(joF!rZa; z<*Voeb|X_GxQ0IhUx-2EhJ=n|BH@;Q)fIR`2Ci<}Knk_dDQ75d8o;GJ_3f{WZ$RmR zyN?k5R)+{9`_S=+pR5DugYL5PpWpOGeR4$oL+^iNn_bl=J3aojZv9$zF<FCgc_;b+ zql*!Xzj{4BD*qVj5x0)kg1M{kL)qv?O9q5^_V$Re2aCDlb@g13N6&o)i29vBAtHT2 ztd#o>U*=sVW8(w@)WmZJ)~E!T1t~$%>k@cGG7dL^6?h>OA}3)CqYzqU1vZfP#jZG} z%e&+!>mUbeytmhti%Z9NNMBRns2xzsZAgNXNETCYl3+dMVxW?lAr_Hg@<v4`ePYI) zgcfhoS*#KvIyJop7GI<3s%(8MXf0XGKxFGt#X}cS(Br^Qj1KS2zaToqC>6@^3hVqk z6ax*#gKz_wh6N5A4hpNX+meJ(8+>jK3Y`rSqjoRUy;403^xNnW?+I>>7R7?uDSSsA zfbSMFPIs(j#46@Z5K?0E9j5#lbg~vBVQ35tOe-^+;ZNO4m~7~{hgC$nMjRQPrpN)V zw8~BHR9UqpXkHMd$=z=4z)EiqaVcp3RWk`mCz~v-2jVi)r7aN^MD&r6ZwsLRxCeNc zMyKN{IC!yP|GxNBd_#Ky(24OQMaO|ZOBPt?VH(rVV!B;YW0n-deyut~e*sMG4tM8A zJtMMqTDDJE9Y@Az>7*qMAeUuAA|8dJL=<aW(^RPB`ll0*Nd1<c?>Go-YrkK4>TSM| zI-0pl*Ebmbn39rQ$PZ0^VPl@eH8pPOq;6}}0>m;n%0>}rdNZm(YuzLRK)F~w1l7fQ z+<MWU&tXe*`h;2X61r-~2KJ?hc7mo^eO=v<=Brl0oULZIEtNe^kp(sy@x!j+t;ZrS zkkyY}JqNVR=O)L>(jsGBvh1Uq-wolIHxes>65oGGaV-Na-vImzR-H1bBj9E9tEkiE z2zUj1uH2n$ZvhBiU;S@E<D|+<;~Ly_>7EQ5<JqQ?)<MxfIIW4Lci*RH6pS46pkOlv z@l*TCrZXzH?xfoB!t>%reNhi<=f^$6dRU;KvkPS|8~X?%I3LN{5B!LGJ?OiVNq$;M zGx0|Gg#^z#M%Xdn?vaDB-tih?jP={OZEM=(iV;hH#f8|>C~<6f7?7gl1h8Akr95+d z=FQpaZnSSt$ESjD6*=Aj;Tk2?7WPzlrPQQubIyVIKUHXUS@2}F>b=Srrje&;k|KD5 z6?ELS=4pH_chHfB*U`ZVr5G(Jj9cA9By9HOl(5mIbzPxfrLX9;nVq-wgkp6qRY&tH z0fKF1F)eJ5!fB{c+1Kjt_@oN^##AYm`P#4>f0LPeIiJd1Wl#~)Jn(=}!A6kAiiowh zdzmYo9vnxu)|w*$bfx~lzw0z_>E;sV+f=cI*q8cw>F-&Mu>V!60l54eF*DN%e*`Qt zhvf_<`w39yKlvP?VeXawQ@Lt%Qc@$A(~y8b1*dpi(ELDZu2DNz3l7x3-LrE7jiBW( zIyrC8Y8ueZ^y#r7uX~@zeMWEX$L;DlpS9oFWzBpAgQ|SVotanVS(%_hiuimul&lfc z+ZVW6u&5S3&PqcP?d!cf)Lm~W`Q1l|6@2GCjhU1&YCu8L4OlKaBj1L;C)l8z1LBpV zjw&jz07X^3pbJv#>7tO@h05u<nIvSTLdrzqc^DC}vvRq!=e2igi9=BT^@111Fq;)a zvh>pTLJ4ZAtv_DJK1OvQh_=}qXne*PQOmLehQ1&n_r*9-3npMMWLm)NRVcDmP3lr! zk6`*rwTxB{8ELZ16{HBO0+x^4OwJVHG|^mSf+ZYtb3of!B!dcxNumi0>%zxnpnq7^ zIz*?F(IPDGDL+21jM)a-0zgVcz|ltfRFJuZCYJP}WD~Gxa$aO%fQcaSZ>loY^^No5 zG-69QU@;v-)64vne9BgPZ)?DZ7~vaB##Vyoj=r}LR%{(ac+ja=06KT>VYQXfZ!T_i z(7hFONr3xLB(_aLAE3H#38I*U+X3Z^D$4X^Eu*K-skoG24Gx<n3+o!MO`}7Bz|!1i zf$CS-m00&~<Y0a2;0iyWPQ3RW=1|^h77sLZIgI>mCtUDXl*W24b(^fK;QDg3jN=+E zekiGNpVFcz%>e;e_WZt|Xj+Id7%c?*m$D=Ppk=0Rg^YaCEE;pW!;NL>+#ZtF)d;Ce zg=4O_8tIAVgZ~t}xso#evFEWe4~+g<K233y+1^(Y2c;d56O8|cSuP0CXX9954WPii z{l{`0Irj^el1g2g2=s5VzNf;aQst#ZXJBQ19eOR@)Lq6Spz~S;VhL;l$CE`-Y9OiQ z3V8r*uZxGrrDus3hUu|RA6ZaAuRBIinA)6bbf%I@uNchnd~^FCJqxLxy%rADX5S4d z=4Y};;+F#IYZ>3S3Q|AbeRg3e^E-+~(=sqMw?ryQs4C;b0r~niW8BJq2LI~*p+4oq zf-7E7sNH}E57?`|fhGMV$RC*1tE|-?Sv<JbeiXWJyK-7oi)HCFH~AcQbG)76;&rXN z`0%{?22rSrjl#YE!fj&(Cinf>9l<)1H3^&AFfUFoL?3}toZ$y4B>Q(2PyJ3VZ_n)X zN?TRyDIuz=8Adn*I3W?`+AvL#H*FR|p<MO-SR!WRrb>lK+w<27X!D#ZssVehr9b68 zjIvlJONLe$6}w43mLd!&u^Pw5GF$;&TsWf-7FkSLlr?b4VXmsA)GBX6s<an#kl|5| z0+OrM-NA}kiTd^&y)Q=gG{tC2(RnTh&YQ;|PsRW+ggSvjsH6L0B9-i(t`cHKMsTvD z9$OQ}@gRitoRha<mK(&1%*B*A<;Bq;zNpPMtDHAL335SRb*Tj*#2Wj9%c7{W{MalZ zVePM~R#|E$!-Tr;;GD0a7L|K>HZPbv1ZkL~Oimevc1de>W{7T=%n*x7H1`+9u7YHF zTvwQt_giKe^Oqzvdk2wxj!SEN{i%Z_(n8dwV+m<62<D-V1o#6n84$-M9|g-kJ<r}+ zV`dMXGg_=BZ>cHDq@~c296K*ovsn3c2q!^H=&Bl)4C04X>hxR#C^%zHe%(&}oqA97 zcvQ6X`)>HaNYMgJIhKc3cwZr`NF4^w%cawK4}lS0T3X=Rl!w{-l{fDWbPg#`t)Tep z2&dyxCPBT=mBCif-C~pE<~}y0QRM|ZqOO5&X`-J5<g*1S_=EFo8~65n;YP}~76gGr zDNodcrEpY^4Cn$SELvR@y2HCih}4h}6Z&BQ9^#d5M>L!k#j;H1DI?6<_VX04p=d|_ zM-sQJGitc8l^$J=^}@2m7BJVu?o9A)qBwx&^!SDqg0!7GrJ3Nw1kk2?Q}ME?fw{v1 zYN~#Ct(e^*^7v^hx`GNe2uHl`NQ_$@VS8!-oA27BY6bzs=~K{|s{DVgCvUev+nU{Z zy5l)cGw-p1aL$QqeCt58de5mue00zL{c}CW7>IpTs4f{iYwK0s@55SPnxYEBd-fRk z*4y|4Q~8T;;K_IqmCNQmvg$|n(tto@lQ%F;{(5<#GwavYee{^2{aJpq4YAqFJ*1g{ z$coyU2~wS=l>Ni?TA-TXgD*#uD$8;O0ArrjYaoY@L86F#-esA_ehV|`@GNCh_ct=r zAMhzpI@}ELd)QoIhSTXPAI^t)del#N9oiJEZ+yNv6d%HaUdlwW)jlLXcNuJKgq3dO zm~wTu5aK77r`T<l(c-T_@wPfL+!7;IwcWu~;xMPlmxeWexWuJ@{@yMYr6;f`$4#q- zzaM)zR3$H`;Eh<SDbPT6VqMDIT@8wz09WekS@=o$<6;WCL}rq*0r)Y+<ItX-dJG4x z@lL?e;t}f~dC+qs;XZ%V)X`BgB0i12(oTMpOULuqKdwtt!^O;X{U5nJnhHO_=&k(> zgU7=ai6^IU(eNVY3y5UJI;~C+*|S=w?30rN3zXTA$S0ib;mP_4ZnEi9&9@d8xtQh9 zgy(`OYL5TJd8`OEU1VJ$vrccx0e#q@CcU+~EY1}7P2nF@7GvRocEI}nJuDEKr-4Mz z#nS>Td$qhAo9*zty<Vf@5Zvrs;@a@7ZSQQyA$*K@n3@(4aARS#IM*h7klS``bM0W^ z=5)>Xoo;irlkIM|6_jw<am1&X7MOZ@YV+)T+`?72eB8ggtUvf_aRD772yAw#iQPO; ze@lSi;Xa=!c|`jSAp@QAnS--)^KNmu>|A@fPW9b3!0Lgl*xO*Qtvic8o<17X137rD zapOd*OWsy}QF*kJTWEX^6Oep)(s*Mwg}(x#CZ+tFyV~6*?F#Hi<YDH&1KzS9$I<3# zHUpFz9~t+~FE1jmtUi=R*h_@c)^8w2;`>z3YV*%@eq*hJCK(ASyEk?WW^<HS^3}`` zaTE@T*>tCf7`g?vXaaquGxTnueQe4~!pmDfjiNIWS+CF{Kd8;eJjo!It8ArZvbnVK z`B^Ij)7{%jPz0(%rbO?`SEhZ-ku8VHUN2?gU&vHL--d+HgXix6A#<**D%2sugQwgY z!U4S)(yGXEJ7B1Ih+-v4eY&qw5ko~RF9<2%w8(uIEd746Q~t5Y)g%Na_PeUD+)D@! zn3XU%??gq+U5xXOi=sfdL23s#G8850gB8c;)MD99hHX9K&XT<WOxZ!U!F*`AahYdB zC+oV#ytj{@{_xUIu>S|&`U%MX;Bf#F5eLF%ox6T!>Z#waO&*~2;8@JtW>x%`yf^O? z9Sx9Tr(vSf%D{;pm6ZiG=^RVPMTtqqGJ~$<>Cn_Eu+xK1Wu=m@%#<0GC7w^=`aX-6 zPHVE{>T^!;jYD{`%RJNnBf6<Q)hlB*qsNt9{cY-$Ib1&ju0y)q&bIyd<v11WDGUF} z0sJ&C(3?4?H*9@7-P#Q|mJgG2La%+!$l5F4n7dG5iws*39dNcxRmQ21M@dq`_IqXd zS&=J!swld%%B!eia`<p#d7UC<s<)SA@Nd*{@XiF$nmc^)#RqcxJojOTd!@j#XKVVc zD3_eeb?nwp3R-C5azlM~r@Yp#`tNKsgw!xHe4suS=psh%$$KlR3hV*%y?73(<i6S2 zv;4^~)AXDK4qFrzou`nxwj9DL8Q~7+<=?~~#D}dQ$IC+Z4`s0=W!7-0y6H5cAO?qW ztR+|XnPkkaBAQM#X59LFT5bbxSFpNt3%AD}PL&g9V|{4AQA(_p^Ljr{Kxf;vxf9GS zZw=p7)P-o4Z2xx~5+NOp3^JcVWteoKTpz=we*a;4BYjP#(<Vyw$!Z``to?#M8ye@L zRwq2P!?Qmd#w%LV*4vC3=c3s>7n_z=d|~t5g^sS!MO<J-LIP*kxeq527@^-eoAY1D zT_0rmFMXv8wAMDn+y6qq9WmupWd2Eg!7{ev<Pg~M$<Gt<bxwyt`#h1NxBqsZ7~1Il z_^&0+l9=jJU7ZMU=u`&hhv|;t9B`npndu__4GgbBDipZfFztKHSNbi@Y*Bo<%`CWF z$j)x%;T!?tG|+#0>y#5>j5F3$Tog`Wt!G9U%5|j+SA5k#@w(O($nb_etxr@J6q<)l zuB&K3wxYov1!+xcY{@nyp{N##O=%!zTH*>@9%OBfCmJS$DvZ*v$JG=qMge=f3lX6p zneNfUF-BluyU#Z#Y;`|%K8rMZ60b`QM1HB2$cCx53YkJnmtRKT8A$hSu+W)_2prwi z7#N&2(QDfzj2fm`ZiQ{U)>uPqTS8rP?yL&xU8NRCnlf*{<jZp1J;?0`(XA_pH1#a1 zszfZYt6b?SWjAF{8LC=?TTH$<rUkK^TzKFeEWo+@f;IK*J8$RC%v9v+T5I}pYtMUx zR3^`bnhrzP?c(yahLManS{Fx4IIQcJYENuYuw2X-pWQ2QrIP4YYc0(*LZj&SxjS&C zksH?tirC6dq?r2;-BVOfkrzdAz*VUoV~F{YKmRS{u<jno8~IBHc048(9s*fs6i?cw z>Ee>vUj;`G$<7H{W3G1v3pku%kyyC%><y>{#;iRIc-KVEdXBOvi_qNdxcgt%Xp%c7 zdT+nfN95m~_%G%Oz`@wj$<EQ%*2;nIud}g@k*z(Q-Ty#RogB@r{&SBOrF`=r=Hu6O z&;B`#$%1fTlozC9ZL>ZVG(qK-p5qYtGsm2XlxX~eq2bSmY<(89bw6hOYVyvO$IEpg z?j}u;pEe4F<CKLiKY?N*7*nZnFy<vvUp_5t=_a3NsjFm)1n|WG+oCA>pT}KTtY^Q8 z$pKp18ZMXsE#V&awl+*T+Yy?)M@vnLjYCpUOe*6*6?dsO`yv7rW0hQy(OG*1475Yd zq*!7%Ys)AJp!~|j=H3%g)TW_Aw`(C%)qcnep`xHh6nv$NKrrjT;arJfq>idUZO5|f z?wR4SrINd)lZ>+w-onjQv{nm?D_=JIA?Ua!xXUUCVeeEUkXfQXo(lJf;vy;v#Q>)V z54iJk|GZkNM%QZQ$sB6S=1CO3hONe>0wds1f<kQjc`+&u@WmBrlTgZhlFYPsgY%gg zP08Ev&ThS9YeODldj*0yutCJfQQLZ458pgwiK6lCe`mwrVYz4rAz|IgKZ0wCtXMO< zTemb15cU<$`!S)0#o1zezK<TNs--OF<j?w;WlQrfd*WTZXLE$>HX>V7WtyEcFCDb= z_W|I+`lmHI8i^**qKWytjdaQ@Hp#>&@x)%KD`?4?&f&tj?$oeur1#h?<BfM_G?(*o zU+K02?2VI9%u}MhKy7*A+KJ>e8|Jrcs<v2f+oR5Kbeymsm^@%?6smG34tU!EkhH&q z;Cqadj6!R6vGnQb9h}amo&vK+Wo<1Xpldw;<)wc`^F=)+ceZsfTZEZ9y>@apLVs!~ z6E#r2|9ta6Yh0UIJ0hTs=$zAqEH_pxOeid1)&EsC$}dLlw=P_<dR=dYy9$TQzMEII zBPtm<1;-jbsWFQed@&^WC<}BPK(sdS0khszSfa4(K)D&3Vuo8^Dp^un&#9PRr+^)z zfc_Se(7>&uFqE60>qxnE!+-mpbZ+S`X&**KE4PmxfE<QVqa!5VWZ>1@UXVe#+SoGV zvw0%w?+?)Bck_;%5p#*WQg^xjxMhC@|G!a{^6nYvx9|V}Hr)R|_-M|*`%ZIPo8Qy3 zrS-qj3e~@81vccmI1R3=t)}c%^YmBu>|<=XOsNymyE+8Wu~Le7Q1T7Qtsn0WXkTJ+ z$>xJXJlTXWYP-8jXy2i0piKkYnIaRWG$^p01rj+8O5`|m2IC1UN))OYP^utJv*el6 zkq3XW+o$o^s8z1K#>s|0G!LY!NQ{|c;pc%fDKX?aC4$nsrMZZKg9V`p`U2LZlcGK_ z$V75`nhEVH0NZ4$<iiL;)FM441^cvfGkT>r|Dii84ceqoLsE2+YRO?TPPvq#(5V~5 zjB%+j|0wl5BUQl=Y6^u}zpJ=IbIMYQ4pPYUWVdWpSV<U|0rKS{P0~>%u4J(_>EGgL z)M{PogQ70f%Km#|g`kOp*v~T`S;$?44{rDC+3Bkog5hz?B||f4{r#K&O&vA(8*LCK z{VPIx%#(i!MNXmK4^eDdz>uh(4Xk?)tvpF~^y*nXzou8Bz{7^I-{Q~oC<y8~Y1ei& z)Z7xR7Obx|;%fd{cOUM~_D7_94*9?Mi~FM1!DeR{V2dH#fJmZLx}&r+_x8-rapY{9 zb8-dqQ&V@xv9dpWUP#g9CBZ&V$b41b*9#~Xi*6Qn+?eq;IL0-~xG}0L%QNKR=U^X` zsry6uuM(BLa5PIsEK<XdWcZm;ngxy@H<F!TBWk%)^%i&5wFPq`&cU0UiRiWWZSkBl z-z4J?o=`kng*8FA8GZDtL@^6#S(jh%duJeM?Me0sBLJ||MmbTyyX7ME27ag@Kg?cO zuwrW@az~AG_t&>mXLA<^uZM3NEg`ni!2CFa&m6m~oid4cL8-~5AF&`1`<SNKzR=Rs zhzeoKc0}XK+WTsGr|7SvNIgo-tn^TROUjcN61<(v>U+5Qws{8#9##;laBI(gEa4^c zM}t!UAOd=-<o$6m*#pv(si4Dd5!nztT}ZnejHJZ!6vJz}@%B|O-gT}$wVwA>W-@ke z3B3n5qrGG3gc*eFwQ&u&+lt6&rbgb*_OAWiZzd(~(%g#u&em}yN@c1ZOP6)?S`?H6 za}NKqLV>*W9WuFecvvia`+OIzo^ZPl&J?jJlc>1ZWy?=;Qwge=+xBbePHMqpRuzS? z7Eaz6MIvVG)TXn}o7|(#KY^t&N9Hk>>m%sQ0C7*!O38+UMGQ8%rz_ccPu{tsLo^E; zYFUL?I?OEk(rvIHIuuGE(n4eg8yj7Tk`Erw0<6yksmnz+cJ+6W@6ip!)rpethm6Mm zT!OseE?iPfcpdN07<KRL(|UJgb>Osx+-})EWc{RR;yJedqyc-+8f0$?Jjv<Z(`ia_ zor9eqYRv{W>-x{N^VIJ3D)2+p+}}e09|ny|GVoNeJ^T@lMVPTjJBv4!AgMOp(ew>Y z<~_`{1|jn3Dy&kpanr&({20P5Hj$@qEDJuWCsHxJ5u8!sVIkC3<)TJ-qwOSR^rmCQ z63V28GQ)8H>S_ZLZ)xMiKg+>ItAPZUm>SsymGh$d?tTz+MG%ffrE%pDmT!#kgRT19 zL8qj{57AJ$j5q>eY?sTEM)v?3I5*>k2M-Ur?mDx&sUBz`STYf|O;)KOM7ETv<YmDh zbjd+O+#ivH7SB5=2}<MyliD^9eD8eVb1i2x2vFd|Vqbm9TLnJJzKqYU0-j7t+U4){ zpg`1*2rLu;9e7z7xeShadk$gxJn(WHXciiU^o2r-!_&>d4b~C9{X-!)+AspG3vhZv z>OR<M5CbYfU+(=^^50RD^#Pr@s9XD0y7In)UOZ4wPsonXY9w)SVj&WMcanSQN)c&w zB184PGc}+-88w=9y<B00axyBTcj<<AiP{9%oOYrRF^)n=?e@(jnk2m}6hx^%`EAP- z@r+~|P0$K**@#DnDY;8+!^h!;?e}|2kI#or#Rb}|jKqjl8-gS$bs4K?j2#JR;5P)O zSLzruj<?p09gxY4F1*vNaWAe?j$c#r=%b>(;E2@l!hWU?3nIx6rJt~@tQ!Re2&EMv zKW?8{F1QS{1>|PyyVe;Eg(*{+UH>OFKAZdkaSqVVB)dB`u+0r41ex$)wo5!00?K{A zBPb4CUc#B--m#=Fn0obLB53$dZ8D_!ysVK$rkWlrsR`3$A04PK%EbI4ahLRJzfP7E z0yq+#40A4{8~}`A8HG43_96BaAbUMr@~RQ&1}5>dvXG;C?5IWoke3#P^*vj`w|A3+ z^`AT^d$?KkbecC%qdw(&D%xZE2&Zo4u-UklUd+w9^EAVJvpb_VaVFlWGR{+rHc&a* zSL}x?Wmyz8Dk4}KrOKeprGT)ZA(o4J+o+C1uBn<p%-|>|b2TxLW{`d=jcj=R^5Cna zyg|Yc1+W$+jhLkk;8nwGr`pokleV;T;C*l~7F1OZYTent2iEFEt<^n^-BlYkj1tO+ zL$!N^+!9hl#^J@E_{!B&@{n)^P-`71%DgTWnZ4YJQ~6h`axqq2_GzNJdJM*^c9zwe z0SVTF(tzP+40byPbfA+!kG-wjvo8Ysc5ul#`<(q}f<mJAfVCMy#hA>3>7dezsb&D6 zhQ#_T`^;~ef1Fe!mpNl80HG~s%TxB?PR0pRW=<_%E0@u~ae2AiB=hkiU7CBiJg~hH zc`vZaE%YpY^blmT*VhaI0Uo@J>bhY*5H_tA45Fzv2mHreYyG^yp-)?Avf089u3o(y zpC>IFUjMn%AF?H69Ey^#9oE^-8t(KKV0DOu>}B;anzp?EJCMuwM>xCYv{uL*e|H3$ zu;J=u-*Afb(y(3E;Y{d|%P6kY!~1LpRN5@P{oZOI(@EGR(>BEqwYz3H=HIc*aT)-5 z%tik6X;Bcle=5Li7kT_<KvEj?_C+kn_ylXV@MDpuDWyT)?a;B9t)#0SI}gLMl6LsF z6|MU7p{qncuX`V(KQ>U%<NA+ExZ(ETbmU;g7Va;12|HRGo;<x7w|5AODvZ;tLz~P3 zr*>2~^ukyss$%c9=2L)YhO=oxeSCNvnzn$&ItBY`ZCrcfIh8h0gsQ|U4l%p_^D5Ek z1D=X`_W*o`W@d65k~6THt8#`AwV{!-?iy_7#UgETD{@F48KK*x7kyvsVaze*Uo;^P zLd4)w?H%B7fwgEKAmfv-?lltxrQk*aaTrW)43}BNb$VQbOZvyTUcajiej-#7VRx0S zJ|V)AKY>Kc=2PvlyFkl&&f3B7V$~%RL+o7i;N)u$hZ4Ir=gI7~sW<rqZJ}_s_aHd1 z=CEqHuLXDunM5oe9t&4uaSF-+h!|+|(pJ)UkHUJ9R*D!|RHFgMRewyWY+2=Q3m=M& zjQrzaL7d~Q2>t$TzhVUIFF4Te7mpYfMTg<4?{~=kyD11yaH8J9o)@BH_BWO(Pp3YN z@M=Erpry-(;a{Yql(_Kjj&N@vwZG5H$A4!@`BUa@-8sPG4ldXPe0`ApD6AmsiQz4s zH2ammvr{-g+6}O<5BXriqZH|PJ(?8S=h^*KJ7@Z;$RC`JZq_RMy8CKi_D`*ue`7CP zAb8|a#bMwkGQ-fa-=B-odvi~6E5mb3uoif~9?|o0*TU|y{v20M>E)sfFC!YhoS=nP zagnhtF`p*smqNKr!2V}zP@U+gO2phn&TP|TDA<TbSxwfeBGzWaZXWF%aOs+>;q3i` zVR_et2VQ#eJ~#bMEF848OK~r}Tcwn1af_<1+yd5{^Ae)$1;nmF>lu)BiQvY5{_gju zZ)52Qcwi__;5=|Qy;j0g{@%0BeRE`i=Zdk=BBHOp*&^pt&6Kfy^~RL7_juM3z2yIs zUg42r&MJm_%pu#MoLZ(0%c|S9+BCMRdCllS{<8J7nX@_0qwqG+%BL~&brJ6Ia9c*# z!em{L-lFxiX3ubko4SE^xItEdWSh)dy_5~RE{0pHvQy87z+>)9$Xs>X&^tg(bJb)i zGBgi~6SGSYAZ;|}Y!~!k!Z5d;P{6VTQ1D(=#xB%5+%%0mb{7dmbuFD7r&fnw_3z$U zi1Wj02iAhbGFX;62~WN^Nkwc!u}(RX@`qXga&Ak-3zlFvjc*gOPcMqVu^Zu%QcdZq zGET4tW<fzG6ou+q`7u|EJUP~M0St4CX+{7hQKW&&_W(g1ShETcwVsOIHIWV#(~UF{ zNrqnRFm0x+aR#V-zWMwyX&4Y5bE9Yn5xT?jL+1U%&%}`1yNWJ&-C?7_iJx-Kw{Vg~ zsi~Vwhx_W1+=f9vYGg8bR>nRvsF_Q3ZE|5bGo-CedzQJIQ7ra&n5<@b-$<ifEc65y zYqJ=g13k?x3gDZDC3|SMRn@XYquRthDe3c9FwY#bYSY-zh2>mw%7cQ-oQ-wEcPm9( zhqfDY>#EgqQE>30(CLL1NYitKY9-y+bnM%7&-!#_N9YJnY5N8`>3MB)U3?ET$sv)y zRoaO}fm^(<g@xZ<Etxw206|~w|3^R6f3`=G%9?pS2Ub&w*@mM7KI?l;Wry21rZ9V) zL)f7?J9L>PL~UyOJIa>@tXW^5N)Xm#cvO4dQn}=EPo0d%@u*}95>qwz`nTl3ab7*B zp3zQKMWI|(^sGy$-V@Lieeus)2hu|TP|DASK&PGS5O(CeRF84aIRJd8nEuN3Eu`oe z!U?l(0b36j@JSI1H`Hd+LDIHGnjjya-D>=vDgr!T+OpMHb$n4$DudjHa2LZDe}ah+ zQ^VGeEcp>Fezs^RziR0g^o@+Wjh+f<EFSwg0E8}3x=O0SG#j5<#>qnKTvD#n(oYHP z1zC$=h_GBkBFcc@GD{t>SZL8*y(<|d@7+<AyYWS~<^}&W<jc@h`K8Rj$72_b^;+Ag zANvGs7cxGg*UD3sHhbCubfAeJs1p~^1~FhA#{~$!r>)B_T8~|JVbgVU3<_KF%7J09 zWlid+$FQ>lQO#lSxzQ{Ne>j*HLSW@>%v!596lacAfQ_HLBz0{HC!~R~9a@%hX^|22 z8E%v#Ql2t$5hZJtLFOt~ygaK_eH0sRjX2*zUCXn9B;k33>*@Y}C#4Q(gRr)E$lsL1 z+n25JhR|*w;$VcVR#Wgr)VFwL$HazivmPuj2)us{nzXD&P3-V|iAAWY14RY0<nQh< zxm)~N+X7i)rdzSK{ot|3YMq)zfZt!N!)#WIDzE(n{S^t@69Fk#t14J`x-=QJ*B)8q zO|%Q9v!$WgZ3l$VnzOdC-R}sU?o}Fn&UlQHfa=+%RR<|M;H4)DzF5mD?bS;;IJxo_ z9hfy%kLWpPr>bFpOSz-x0j?Lhp(g43w*8?t>D%Izm50`r7?E@Noa_OmRMG4C6f*sE z(}&{*D&*mK<g78vIh3_5kqFCZ+zKvVp1WmvK?rpD(j`|se#JpOp(=fk%{~2t+T>m= zePyQT`a4DKAu)y_{<<(5gK(`#$AF*zf~qS5&^-qH25oD<5AOdRxcxd+to3b-eqBWW zqpfj@W`G;OhY@kf=^qy)6v56_yqWDPC)C6j0g9x@vHw6KGrYKZ^Wj@llQaWvk%NwV zicn-+J3r~}kA+$a2C@UPg+bt^Y^jD~dQ#=ZTvw7QrYQ-a^Y!u;apCaZMHM4?tAB_b zu(q@vFXhUIpMzca3vQ_tKH-eA0-~qG9p3Qy`d|JXo_@3dx?gXD3?u-+Z~OlLnHT<_ z&)2sy*Z)sS*rg(6yFm}r{h?-u3$<ZpP`LuY0do<3L9f@sOpl@^+qf1_Hm1{%|Kqhd z(3}aryx=KM822geU0A9ajz(GRSff#3PgxWTrM>}Kw&%_Mvu;lMYDyHDzn)57{viwP z$692j)n9=fBU}QmrOBX^=)Yps1E7BufurCEcwJknAyhzKZU%dPTY;WlEPUOd0`fZa z?{f+paL>2IOR6ncQ`{`H7>Sb*^}u5lXRbMKrtKWFcmZarvTcsq@1OX-5#T?hgZo#r z<(E1KJziBV5=VNRbU6e2_yajIYw5U^;hz99*Op+|>z0Hg5h|ZhkI5#hP(^-BQDsbd z#v@NT%V7rdNhl6#57>A9SjBH*Z$(fb<5UeQV$hj(MhdNm@Nz}Q2q??Y3J3B%KiUIz zgdV0KCGmDjuzOSk?-U-VZg&ymJw|%}sZoJ+@%3=B@Jh0IT4!kUnK~Xu>5%r%1S|ch zW;-lrF<e5fzg$*~lCHb7i+oAj{U#9lT(^pb+tN&rA0cqzW%)8$GDFY|HRdtnCMiTr zq^aP<4z#xv9&;GL$p=%2+RLz5Y>$DU0m1i<FcZ!vTM}}}#iv79S<{bJWZq{<U`uoH zOJcb*g^N>j&Qq@F3w80m5>iaBUb)!&4yD_=i%0WAoNA+_&PFqGkaeevc2>wtLX!15 zw)@jB${sf1;Ypk_o%Z_#JW|@HW$F&RoMWxB2XfVWdj$<K4N{U5Z!Y;p!BK|&lSm;A zoJ9RXYi(&RVkM!-kX2gw&}=A|?HK&^m;K7=_XV&fu8J>D8e2Sv?)&<r*)8*KtKRsT ztna5kKE$}hd@nV$AeUP_5P0cX0h6*rnvbbr6f04Yd&3l;3rlTS;Mnx-Z?#zz(uE|k zhkPIh=2Gp8d=3%4w>C{v{>iYoGHNOh;^`kvzA1G>YPSYI)nI%zHMsThBS3VD$2m)X z2H=eGS4j$m>7+gg;qTnvhRtk4OlQi{wxP1Gnb+71#L|gd>jDUgCyEkivp|XGRvFZ0 zCwF^-jg4%@EQH-?D*M<g%}&j7J-mpJtq{ndcK+3PT87|$>v{cq`V{$Zb}PcLlVjvB zw{?>r008g*{hS#XnL9ZCH8%Z^7p02J(qWU`e&<AOx71!do1)rF!kV%@!-1puveaVb zqP|JP)+lI#fPtu*oj7J!9JA!Qr=;T!pWna!;`}&Z5WM|&*V5644*`M)w>8_`Bp%`1 zGn2u%m6(LV*u7Du`t!f|`lcXJqGijrZQHhOoVIP-?$fqy+qT`OZQHgrJ@@b3m^a^5 z5f!DqGgmHnl$|FO+fUsZ=-I#tFR>9p1T0x@w0e2M%m8#%y~EV1H{Y!L>htcjy76Fp zP9wMUUfu7R0u_iaU&;1h#^AEc={1w~27yz%(8mbrwH#Nl*MfgDY`%Du-n@9w+um!& zuWem7<U~Htq94F;^BH4n8!Ruq)!BUb4Crc2{K2pr%0I!RiAERRz$ayjG-IHQ@~_7_ zfnO?_IRPFOMT|vNsVge5X<3>sfxt{2t30q@U|YkzaR^zmRJo^}IE9s0QOl&@(_(ym zVvyUxIHi!k2~-E%%jmG)NeRsm->5j2={bRFTW?^1)mUQq65<=p^&MF5dq8n0EvTeE zd<r{0UuzaC$}R4q9QFY%3UZuhcqUp(RWmEy(c6%oqi6Z*!_hT;@$kX!H>EHp2(Hy4 zfyq4pas;^XOsgwnV>NquV~kH?CB5+@+4j4%K6Bmu>ao;stPCIvtj2i7+kHSH)3?#P z*Oe3c5#(7VLnoNH)g?iKAXoWK65oRdFP3mc;fBuT<x#~^whqyt{p<lZHOr&Vl!&w& z=pcquNSvF1F&D=a%dr%dkdA?lc?1fhLdmmUXaSZG**4KIj*sfq*|NP~$4%_B**fk+ z@Q6+{O9y7FFyF7xEYS65C@Fh@OA-SW;T9<G`PYOYq7m|A|4r`0BUoSo%yP3H@`I`R zHU@>GKX(Vzr;VlLosl0P^?u$mHir`>Vm_cFB`|-|R`e=u9mYPue-{;|oB;j|Qljb! z^)uq1sKY#C;C9eN_N6MPaHS5tk0;3~sqT(HLW6E?b*3+sfGSgT0=ZBnKB2JKjxgC4 zD1k{&%0!9|I{BL#YXS~h2B$xU{mkjtp9?%{<ku;X7U)N74k-pOo19M$Ws#vY>*oT2 zVmDxXsNnb5Y_6JKKU5UUVzzX-YCpJjwm&2kZN)uYO}vQv3E9+dW*ioha`zRIS~ktS zeT%26h=om}zI(ayh%S<+`j(G3y^4$o-Z#{46mA$w^ew*_nvg4{o0~8KtU=N9+))f| z;-S;n#7&h*%u7n+UWD>`Rr8wiaE;O)0^Q@{9$pL4h5RYsQmR4>mgYy2mEUOUv4fY9 zaHLfiPopnKyDJ(3EbpMS<&X+vCM_Kr<v{HJwq@Wq%&PAmXBCKT)mPG{K5Vm;jpW5k zGx*E@dBlP|+U4z!-Zu#%Vz&2(eys^2?8Ma`#(HZ;QIK!UIEhx1(&^!Her;V8i)umV znU+6tc?!1rjNg4)W*Ts>Bw~0Jo-b;*Qz&6N5;(Do7g02K|Csc7qEOY2Mp@@17*kuu z1KT9SFVpli#k9!>&nRB_=4-ImH5tY`NukK*UL=RrGo_M^o}DySX|xG+m!;zaw+|oX z(Mb14sQRO>16i>86nf9<c`|Ade@q><fY{f3w_vlhw|HZ-Btnb;HE)YP;v_Vx^Mb^c z2=iOf%e3Hx_?0-R!_kP|L~2SEJffeGJ}s@(hjK^@z_`G9kYl_JSn-MdMF`7BRnSkf z<%j||ElXY{^k8WmG6q=GvuZ_L_Q)$ZH4f3ovk<@YPEsI{k@QTAgb||sZB{|((5gy0 z;o&k?5lnA_1g|O5iSc6Y$%w6Tgm!Hup)EDmO#kJXneZJdk#ZaSB%`+;a&xzhx#g7& z%D{D!`C|a(i>kil>zA$zX9@i|_%{<kWxmR>R0L3@ieCtvLSq<aHHNve?Kg>5w=BUA zaH6E-dvGjpSN3hALzYuLpn}=>xOx$!qZ1oMm`ODW#qh6IT5V6@ky;Si8VYZ(E=aHi z+<|i(5Q398YRz-%+nFtq9AIUlLZk<g1%s*Foe$-&=NXz83_D8^Izl=H``D;P^dLMm z%lhucxGbRC$O<Jx0lx8cD+X=*tz0}_KljZoC?A4G8>!V`0=02-ASc-3%uEe3mdDel zC*lI+$Kx6DLG!Lz)eJSmJ-u#Mn$>YYU6DtqWbx*)f@R3}>AY@hCrY*)3WZOfzQ~*< z%5^wILU_oKlN8iqNqIqhNnkjb1MTa(#(?J-%Cb4))gtm@6Q8H|NJD|&SZoL=tE^^e z`iUy#$I?)QhC!?_8=N#o+OG`m=XG?$3mWr~8GTB}YXa~JgEsk(VB-$Tt{u}%`_ZV^ z*b?FACM5Tq=n^QJ)ZewbNH=_Xz3*G$=lA`=x5|lJzR!&AuCCA9Ig`;VUQZF!32`V- z52ek$Jq-Tfah3v25ULNOWqd5yeB04IRT$&O!Q1(x0;_DmIcII2EoOJVYb1cOYSAh4 z_1+`1%cZ|OUNLUFOQ9{pIsniweFY~!Xa@)E=()Z;tz8pZ$q9A5_>M?dHcOEP=?r=> zZUer15-^QhqalMSj;4`3?n1hUaf(cH*U4mCewvWbN^St9U<P1A+K)NbW#f65kj_sF z0A5QiDM!2*I`_2|v;#h@5x85$SHnz;232GdD3sf>cO{ll$Z;28)@T(d=|$a4`BK2M z$bwI+;9jjlnDS_Tl#fv5JA8Y$L0cz2fu9=unGO=QBJ|!YB@i`}a3W6dBVcPh&3NL- zxP9kf#rB2p7@8z?z}P2z;*p3hj!5&UP1s$Wmy&tJRte!&^MJJe?@+~Hg}`Ky%-iyI z%p;!P1J&7y^xp$b+#z`QLOgRl(#c5ZpUILhh#})hsEiRq+r4y9SYV?$Q#$P`%Zn2$ z3Rh!vN~g|!qhDUuu*<GGE-PseR8{)ogk1C#WkIXJNSQZeYs(z|((M1vjydeV*s#Dy zVk>t}ReZkPkm|LDvg+`i?1Rk9r+0dIyWL-oOX~sHD#EI|%p)1Y8(@V;vQ`l}u(8te zPaw%7NIux(NA8nBCkA$%n;&OWzb&iOmEz;}5=1mh)M0U}>-vAD{1bC%F~6WzOA+UI zV4eTUWZv0+d1t7h+qg|Oflr1k54M0kLbbuAD9|_&*NGJm4kB<^xBfX$><YIGsUrGT z{|zdM&UPIr_@#0I@k}-O3@SFUVqMG$zd}S&$%N)+%8#G6&A)E!;$f>SR_~@1`jN~} z58FpIwviqyIy~nN>7;$n`YG>pShF4^bx*c>bC_;$?X+_)w^}qoDfjpZ3;sca)&?%C zzXPAOK%DwYEUs;+6`RK#!Bfp&$UO<{r>E!d>U4j3o)iTj<Q1_RtA-s_6&z<1?+ksX z`TB;>&Gca8d)2Tf&$)Qpfg>o}=dOF_9pXFJ-5)pwZve%bd|-09dyCM@xi1-w`#awG zr-P_oe`sksP0h<azTY)&Os1hUsQtrz^aFP6DkG#k6ZD~|$l4}SJ79|vwEIBDb#N|K zyxvG5Dk}r4q4Q5=AwRUTcOsXzyGDw6#o$VenTWdvRVaaON<o}bfBv93F@ps@iHE8- zyn-Gdj1S8LPls$dHkH~+eGF1oav2f1YqOAEE${q4CR+(>m9@+29FoC8pVz#r!6p}G zJ5!AipZcjNUeogdnTBXdh6qv2<VQ~s)W3;L2{Zx=QA}wM$rWV0J`prupjg`cPpSpG zthH~az9|!b3hxq)yg>;3(Eu^)ddDKMb4;Xz2x_W|ZNYGPHLzH2@jg<0FuL7;(6vwW z7E13<P;Q>zYN)<FpL)+&`TQ}3>5(*|q+Z_SH$|WdO^=C8V0&|I2Mp^7-9ks6i>yDK zS6cPQg|bMZ$`PUt-%gl`+Bts7SNa3hM7c7Co=+m$g#-IPN8cyNXcl7RrUrQA(Y+c5 zli$s&PvQ?qm^9n<`cWS2b-8>wFFqUe2N#ZnDMi((;US^+(!<TES<ffC>6bM$ngp;F z9f`J8QM<_mO5Aq)Wfd@RjxbOja{>n@7yuMTyq}ngZ(V%8{ZmSKz)_~mx26ad8Ja1g zgsFq=qe&#Hz8D+H{0DTO!M(S9O;SD!t7<79VD|0amURJY4DK|j28R<Af5h5_*%^eQ zk=&WkvQ4nDr!<PP#beMAR#kE$xX{^?1}`ST3!$N5&!~einR=Iotsr>MmlJriXdX!9 zUb7U5$ceD_I&$nPL(3z$R|S-XR&EzG{fsL?GYZ6(>x9ckvjPRi6$jP5QXf363l5Kx z^5O>-q07>09Naab8d(I0(%^BB2_tL|^VxV;%c(YwGQ<5q1#eRhN{E2#3|1d9_KgaX z6?@etar%kbEt*jzX|=d2$`CcvgS5UJq@`VvC8nE9e@>{NgKGA6das+W0<H91HcMDL zF1xC4H=Ph}-dvytA{}rG++XhR_j_j=ALLR`ZuoRRAFm5{G&Ok`QBk!YQ0Y#wyd(R6 zDEiy%|JD)K@YIJ0Mhs)R4cL|0c>E2?D19iHW^b}1kN&H1_G$T~8gl@@5QVlD_$06! zCCHkC_H<LVBo`DP&L`c0u$z}$n*p5Ly@_|O**ra3-du8)${~Cnt5Efjj_2+}BuAVv zSoz0Lb(LAmcB8VcN-kBX&2C(j_QvFvf1bPPQ5*V$Vw+j5UEW)_T9tVV$TV36P!-Ft zRLd6yfh5)48X8AQ6R*A>08tZDs(QFfI{Ri(ftL&P#Q1{Vy@b_nHNRgqpXU%2>R_W^ zV@Fk|bjA>qoa-2+0y~7+o~C`RL}Esa_&CIB3X6pXNf~ZHX`m#DVa1K>x&o-p0@2|t zh<Y3gYud3A8OK)C`8SY`N_EXYvVh-!Nj+YG90m!<rNjR)7)UcJ8KARdd@_RGFCnDr zQC%I8vc(D4=@yldr77w{tV@Y<5j@iXZc2VJfyj;t@Na>K_7hp{5+xC;v+lFhMsE&D z$9|Cko&z1UB%YG|^@CULi02g|>dG-h1nFco`~#%<zK<^o3}*6fd=J=J_h@3gyZ*<R zZRRuH^<d6K+bUe%lN=+W!)ZvwS_k9L5)mo<gE^0@{x!~I3zcKxp8;Xwgx*~a?Mki* zNWm^7cFK%~XXGDX!*(0*WFrg6%vZ#-;MT_O6%WW`5((OzfGBgqOL!}y^ZJ5fUi_<9 zmMKD8O^y}5EG-?HZMGh)JJ<T2PFB{frGLkmVm2%Ys3%cKjY{chb4v5{?l2-bnzi3G zy_~OXf{b7vsF=AQ*l^EnW=L@^)d))^e1@D#ezc>UvIe<wDr@lZ)~#e>Pu_Nnl{00y zjeObezB2Oxhm%ndbht;io8Dzal!XpkS8&-p1f^|y*svbnrrVU#s5?vRr;B`1(YN@v z48CGO4akb3hG-?Sy{L%d@fD7le`>x53jWHh_HK-`;T`KVp8Op^orO&{UhUOq&K=|* z7YZ9wReS`=1^&wqeBHkLg-fqTLx@E>_vkvP+uC(UA*L%9rofli2w?TqkC=TJ+u~WZ zWs{cS;IL^|SHla7>!;^a@_Py|-qj#ksnWSx{x=xljH&748oah1x2|-wN*Y?kLqD=Z zi5tp2-}VC-e|$kkws(}GUI$jGDw8J#3_OAR6~Qw^x6^tPcbQNajfn}aT7XM3?34at zwzmmy-UKL&epJ~dwoslfmjt8kXq_bSnSqkR>40%ag(cSZ0st@80N)3sNbNAKE(~wk zsKmt6WCdRfU}Wa)!Gxa45AY!R@WSKW)vfLLrrFfdKa5&E%GCrt?zodck#a!jicW^! zz1!c40+f=e&LdA)gW&Dz*ey?fbw~1y19+!YR65#?G5T`yP5nIq*s-7=EFXLT(Ttk6 zpw*enaQ`2PrRSAr5og_Z&uu)^dyoOZaky;Nk_4NaFxQp_pjT<EAvfmi&6^Hhh2J1n zU<^CWIaO2aO^>IXPef2Re-FP91q;f7Kk3ANt@hb_`}mz#TmF(DixN2cBbwnB$YwL4 zTr#XU%#Bry*{+iVHMa(MUO_5&a5?9QW92m`B|5lzX^}q9J}RfUqZEML0M<oAG#3)2 zB;3;(0anosy4>o7V9Av>q&YNU^gEaEKe(g)bCQRi^(`2JysUK@?23?Wz+`9mu}4WW z6~m#7!q0O99*ufU4m$H5(DW>8sOkma>1v)-i|e_$kV-33GT9e+4|XnW9Et<jt!FPb z*VSDlH~6eHbz)*(9f9+wU^1!ET@jyb(Yq7%!<nNqj%0z|R)F1}r%MB<_(aN5L^5ER z?Dgo)xOpJJQGESSPJq>1#zO^eSsC7DbxJ(NxaPUYTY*6x-6e{$By55qQ1#QFc6Yfr zz`>g{s<2FlDnm+oNc4*76h2MMVv2I$6aoo#<kW8Ryi*_+1!RzZ3b8U%#c?q%P@2<3 z;CGR?Pk;193xHGjBE0~zTkrlnk3`EH>7!IVv5Mje3OU@8Im84mi}Nu7p6ga8ibW?j zYHuQ;eE{F~iW>!HaC=PO_6DjtH+_uIQ|SV^iGLJIG$b*|!ZE#)+;fY=*{@52d=~Ii za(c6_9+u%1$>Q}D8WAw6sS)y#<a81lDq@6@3)v^LW2=)*Y1p&ssPB@ZNjm}+GO~ik zjVmX1zV03#-&l}yg%koVVm=@Tj^FFgNX!Aft6`PbQ=6K3E#z#JRu}6w3~4^@MSpBK zE|_fSC_s4kfA)tuY-zsb(zSdK4l;E;_%dlLfBuUkIJ7v{{_&e<o%0*3{{IE?9PMp> zfxPHMnaE#iZOF|xs<4y<P;(wH-J|?zbCWeCZ;~O3*JT*4v=F|-V8c&0@tT7ra>|lu z1It5ChMDn_)&UU9zfcSm4~5L0)DFbaCKb+&z(@V8b12pjxOt0WZatK0W?pxgIWVKK zL6lpg?YDqs1KL2Q_mwmi6j7OZue75V$&X`KcM88z)5h_KR%WhJtRQ<K^Sb2t0b2AJ z_XIN&91!5>alvXrCSWaI6pg(=ztJ+l&KkuIR!XGiSlgt<2Ju}-e;*z_WD<OJGa9ZA z0ow8y5@0qWD<72GbTE&*U3JIOCinz%@VQ3(B$Et?3CYT#Ucl_*FzIm#lTg@BGeSJ= zKpv!$NJdWB*qz>EIu4g8$TW23u&&+x#EWg>X5=E4nk@v2`rKBh^XSC;EdJ*J`uKBP z6vPAI&~DBLyd41{Y+;~AjemcRAYRWL4EeJVAfFG6O}>VP-+)O7D6s22dga}(1UHG` zhr7JpY!tu@N9Y`2=TiEUV9^;v$#4SNl@~g<Zfdf(zsTFXjSP?7g|(jUA*t=^YcxgM zMzY{`7c@_7=ebT^0zfIF2l7cZ4jOdQUA{Aey89km^n>qxXSH;<8_Gk~uIr}WU!q2l zDOjy@mE?5)T{$gY_HE0sruSB5q3O~7R6+`R+J(<}znbZCKHD#x{TDHtaPW;002Ba# z9}xh6;C}&tT`a7P^^B}741YhIDRr6H4K{@C54AtIAPG>l5zpp*p=e(M@G@{Raf5~i zv-7K_DMX+N>(M_xW)hOislOju!IFuMlj-a0@sxd2Lq+tHywnLceewjfl8R93TYh}S zCb|@!00)C=j;gp-g+HmLRTVHM@#p5(H~D+Xckl`sTy`;&4aI26Hb#VsVYgY~wAcaj zx({uUPYT=%xmAW|vnHw(2e_I!<pGw!R10;US+{OzuU#%gAr0auX8us2c@n<+AmGft zWX4DUyL^VeD~nXRS-ISXO4ywbT(4U508}$LU<)PbUzBH{96nC^iuY>*oRlWv=nfGb z?LM8XQ7VwUQA~-j6-}x?jX|zLrO0yiEChm4@%Q>)!f^a4q{<^iJp03pOd-i4tBUxr zpmD*eV#pyjt)Sk}$F~l02soSmmGyC>6R7bb;^d8f1ssipXn2|;CflPJyx%mqZH*Sn zk|J|+wVgtw=NS|Q_>cz;AB~SEew&EBpm$PQ77B#;5`IJqew=ija0(~4+jGYv$|_#_ zOIq8hv5tzz1dGr_FcefVQdu}YU5blFfC?#0IP!ul#6_$ZQ<+*Y2I2)%UVGI<en!+R z^XaH5_C;_@4!~b8ml@oAvQp4qWahvt%4P&lOGexQh#oF=*sCYxj~4SaBx_^3cwXpI zm)M2z6<AGok1Ce)^>hq2v}`b=Z?N+IRFe%?Q2^9sbg2=1I)|1rClc?0B>I-7TsZ3u zc?l~ZZon5NC*LCStVz_0MmBT70gEO-8?Yx<0pwE7R_?I47i+M#Ypq74TG3Huu}6PA zJK!Mob?zD0y>*r|1#jaIs9%M76b)FE5Awgu7st{YkWfu%Q%idn)8szik$M$UoyTTb z%8Xjm$N|%8CC1zcn=kvlZ<hm3Nkry5v7ZLzV)f}dZ7J74BrMn#c0{bRg`0k6M3)b4 zP+5<jL&(jbG^1^S+sADzqBZZ~uJKFOUtxV_1uyN4KKLZ-y(BxF;ZoiCNwVI`b+@z2 z|CFIpgOUq(2XSe3*%Pe}!QRk-@xdVwI=@}NhOf!8)wA`a9SO$$XlcE@F!7BK%4t&( z%H^XgV42sB3_sFNa~b{E+q7O$8z<(oZEwzHiwaU~pH!yMr!8k=SZNJr`Itr0t-Z{h z?v=>I<nmmx{jp<XCc~yidqN(hw+hQ`kEyBep&|C|QIsOA{SlER?Au9EzWuHcYe<Ts z7I)f+=Q8&-`k4Mpr2Z*#HEh%#n@B_+8=BgM@4A2U@lBSkv<{2Z2)gjvardFPt`ml7 zhlrJOQGW%3bY{>qu6R^5=wxdup8jw@1vmc@3hT0ew;oWX+h051aH~la@?c}|k71)_ z(4|XRQm+0q&=+kV5!Tq|k`!EG2bS!5T~Pyf5j3K4wiF@V{DFsj2p28j$qP!KPiEG7 z*R5_Q%TEernMUW-flz}&R;R2)M0P)6$KIpA6L;Xm*TJCQh^FUS#<D)f_B<vx)zWTq zlI~lB4Kv4u{j<Ru54wqMap7|OYCk+xMw*AEG>q9h3v<dgo&6YdS?YY$MSe>nd>did ztjPfa;gN{6i-yZY_9W!7I^;#u7YK_TC1Tb}Ba5l0wLm`N1oUgnv#Yak1DsE>GgAce zk;~TuxrJkboFx8l9%P7kTsRy#W(h9OHL;j)V8)53=86;C$4fbS3&D46-{y0p#+d4V zkI&9hB#Ttx006R>|My+@KdYySyYuhjd4*+VcQEoBSw1W_;;$^kTr20Yi<aue0<L`% z@KD@7z!-+wo`9i5GFUvV8u|S)J=yaXcja9Zk5jbN<!b7x+j-Pu(~-mKs8AtyZ_c06 zefnNferUMB>Q$mz>6m@((L-%Dhx>%(^>lVn>8574-8)g^>+$tIRjQ^2RZL;>_jE$4 z#G`TNp+jONw1JArVFz2ewU2ZnLf8~NgoMq6l<Cu4{-K1|w2jLUY*SPH2F957nyHZu zBn0+Erkk=g<x=o@s^_z{jskKcf=@|)&5VzTu%qUzsQ<6Uvfkc3z%qc!lxx0kLIHnM z(J=}et)&KAv%jZS4fi%KdSnl`E)B+KcKwMD{j<%?dkAikK7Gs=90Hq6sj|khmg(78 zP%`!i|3kyR)hx0iK?xLfa{-?*x)}<sh(Z!C!>)?U9{{0%(mLPKJN*8t_ZJz5GLTN{ zN+{P!=;$fxwW7<w)w)Kz-j8c~N?Nn@{VWrQqG7N6v!b6}6WnUFeLnQM2X+wgbrmUx z{rU-ic-raJoE<1K_-y?g$bN)dJ=n}$)U*!uAheiNJ3Za6$Irpa)QP1)IOI4{n_pPy z`YE&5?8p0i52{s*{qOCtp+cW;W4)7!e#f8dUF~60i{cj05@1~mtvfvZ=ga#9TIlVq z<R?Wy3LDMF(qY81I@wPL3U0sxbz;s)YpR}P7@Xs;rBeJ=SwGe5AaNL<O2Ay|O5#&% z+7BdG+Odi&g)8PQ##M`OIMQ_Mq_t{KqF8m7ZJQuj>iF%PYEWzFw@O+B<o1JX3U$#K zJ*ad|$FCmI3(pQ2Mt~t|a09sT#NCBbxyxTWdOe2c5L6l5C+ksu=n<<ho#5R|TXH{} z(5^iOK)dDS4V~N)3xRPnFI>!>Fk68F4uGNFBet2fw^|iP-<j!1qp25@m=I3>#a&<o z4(JlK#tI8t_$x=3fVD_;yvAZVdk>(C^X>pOK189I>V2LWpnxp*HhNQ!A`jBtyvfKM zy!C(=BCtV90tLyv)9fU}dI4sWI9sUIU)%`85HKduKe4)4$3OdNRJHF#;!UPWoyXnW zn+d-&P(2LF9xFXS6Z8Yfe95Os0626$w7cvwLT()0ZItxpgO08uNEDy1$0xnp>&L3d zg#mfswl<if;y|Q*Jc25P3&A;#s3Su%3L*xvB2hGcr0;cj<>)1y$C~ZPr%EAp;s`uA z`qw_Ycmgho#eE9l3dcn+xhurj);Ctoui6m|fT{z5nY^L9v=}y0kpzRVXrR3>@l{%9 z8@$GlO_bmnohif=v?Ox=SzSbAccp<YgWDru#4uhhPbjs+FcqSSOI~R!Kc={hjhdYG z@<AL*kj|;#m5K%x;m<?Q8Nr-CoD~(feeTJL39M}jbRp@dm0z~5EQX`x6Z<XnkJUg= zJ%{YS#eb%Mab|B%Ke%2}29c#tl_}b*O?(o^k7tj7WNTF>cxDAOq%>#!w-G(@M4=}O z)9D`f$NWTf{{XTVAQh^n#b{AH9?PpZWAVZPWTro1s08B=>;`W0hL@}u1>zS7#?RmT zf~z0DC=V!{9#BLJjisEldQ0DtMbGbKHpH;rKMlXNvM2Uow!sr%*u=?i%hiA5?4t>B z)z6(H%=$$do*9rAZZdzENmR8j{+m5iBeYsOYRr<Xv?NFHM6R^I5<Q0hH+UX{Pui|L zFl5HT;$AVHS$7R&SDXZ05AFul6KEn8KuY@xtZWJF*iu)td5N$1NKwH7uR~7Y`t>LH zV1@1d0g)DBT{LaO2AgsEu!kvOmJ0HNro)AJnAAe_FD7=;X$)qTC1`Okh(P|kpxo)E z2CWDoWv6yjv5=x0Zj%|vE;k6UkKece?kTPWRX)i{_QPDcfMfWR&rRNhSn8qxVx7nr zXH1Q*&*#xe?9EPZ_df#IQ;=O;<Ob#fok`rOzQUd?4oB+e<dQuTP)bus&%KBI?%*8T z7IuoSLVcs}X>09!AoZ3L8;T5~^B-Ru1Un#sDtrbND#S8lf<V#TSe1704>U}>33E`% z4h-_w{2dHOqtLq~6F#B70Qma({&UkyqaMfOwP|^LE%^!ce+?<TwNCjh71*0gL6a^6 zRWI>_aiRLEZU$yy#^->Gyv@ojEq_$R9Uc<^8D>F^CBmc-)Hd?3&m>e$e55TD)OL;1 zq3xSJDeeaM!N`HkMMPcj{Gr&Jh3E1@Qn;sULZ>p&2Fq}ct!}(00YjI>$~aeNI!n-y z3DjS7cY^rMV?*`6AN0tJDB<x4_gPNE!X*Jx3sJ-Tg!AvS$Lzk=O9E_J@d#uo{awR! zIrQ2mO?Hu|eUU|^N39DS3-{#Fut<D81x3Fj1u47?HJ-?+evLZar3=%_>_bR{GShr= zeJjZ%IM@uew-b~-n}Sdd0Z=o)xv4O*PTv60Be<h(RMKDW?ck*ke<yAf7i6GS?*nBD zUQi>D?|f0nWy`1?#g>{rREK>MP`{5wiT$ezINFB$uzW0LPg?^J0r=!;zpa6ATI)xI z7j|8qwKm-9Ho6aAO*-a2V=lHtI-*=s1bM+gBc|{Uf#}GFI*(bw*>o+)v~D<Q23@MH zXEXBB;9Dt93{HBTdYWwJgFxNW--Ap0W8u24gtaoYgO=sss+@?m-zeqc{uhr>ly!^E zGNThitgU)DmzSTCDpX&jD@l)(^k9TD<&)weYQU<OZ*1|{H;XfeBr&8~A)qiz!&YxJ zU{ra_^#EOB2Ch^N<Omd`SkCqXViHtTz~v6wiU#saOLUVFFl++Pz?io42O?Cg?}FR| zv0@HboIKlM)Z+H_DYBsP#wnOl;Nu&<{=e5@GM!Uk|KV6yI$?HIE;+2VYc&1p^i#e! zf5ZJfx}P1*+!81YCw^|5aUG&zN>-|xRGKgglNhu+Od&wQXUSBtW}u5fTcQz?&x@U- zwn97K9mR9KB17sTcVud*$s0?3<$@bo&q%^u<t(nV6$K-^m|s$ISTqFI4A6Apvy6B1 z6c(vyHhf`o8QLP4)r=knX6U?gTLea)$B8=uj3Y<*!0mHSL%4%}S?|P?T7!=x39#lb zkoW>AjN6v2RT)!JPTA<GbbU==4gm`gFEqjwmx+ze!-7F`Rs(5;&C7FV)>aX4>1N+` zRKuwZS_n1}T?&y2(a$*f0c;yp4Z7W*AMp-IN(cKgl;YYeyd9(ntguVK&Y8fm!-A0G zP$RP7fin$H;cxb2;#<>fEJ%woCIZS>*5GHzKAbtB<&bp8s=MKZ3qS@}4OtuVM3#1S zwT$l+BHFD-aIlN)xpYC%f$37&#Wx~xN==M$-^gT%IoUzILg4^{SjPEym5<*Xy^v1? zFd_+JEC0IzUC{WA8lRs4HZpe{Z`V?r_+}L{RZ90iWV_W10ZVha>gyC)mJ2+Dld>32 z%pL8G1HDaXV8fK`##*V2_8Sy*aR(kKoNvvAl&20{X;n-cag;ntzgUvkaG%cI^F6<0 zy&lVFJYzk$v)&V0E`_thiTt6Dfe!zM!zSG(c8VE?|KmvmieuYl6hXG^*lOPJGf0R; zElCqP$Z-<J7N0mDnMze=;lFjNivK8mj>FquX$n1jQxcvk0UQX??EE?ebn_}GI74yC zn>b-S8z-lY$<eY619GZR7%GePT1<ZknQN>kBPS-YA*fT#Zm~|gPjcOVsZUQlTo<uR z$|3SPI|3M3N`qO;RTdueN8vr-OB>R;KuEa&{fsFN0Jvf29VWus+C&Q{1q%!^@)}I- zm);&-i%_s*i7Q-7j@qF7-C>)d`;2Rs5A%z*m(shY-2Sv!E_XpOBE3p&arr3f#+i_Z zwYBQ*I^XhxoK+!rph<P5>XvOEMNux{vT~>^(5gLjMVaRf`^i}Ht$7SMW{73QJM|yu zxKvuCnH^kI+Xp!a@!f{WXO=#K1qUlJ=r~Y&jV*{7rOW`2%yF5V6KU`+w-<rKB6vnX zZN;G-EKw#C*WmU882YLK4Dj%vHINsNDh$KfQHK)a8f`A&c(f9VZN%-dMNqNAlgM5} z#A*2}RnM|2X;0PtQ*hKL49@oc^rOAZb)mf|DSZ@i8#W?bq)-g^2O55zvEYJ;r_%FN z2ltX^x#fC8DWEL)$!e&U=FPJ-vpEuPM1mby##vS5rMY;f;Qgq^6NI&$4vlB6#iHCV z&timF+~el`DL;K*-GEf#7<>8~UTYK9E14#Fl)97EW~#=_)Mc2RQxNRMNP=(PUKSjb z1%-E<j52sXh4exFVY<1>Yp8cT2wV%1(<1tmV#yW0ac#!8mXOlt%GzR!cOIbY+P+rR zaiY3l@iV@RsRZv4as#mxE2xGECpa)!eZk0DP#>Irt@<f+g%rvkeo)v0f3oM=Qq*5M zBKuxyKg%dsgK#m3=8bgG5o1Q1#JRO>u%HS2eSoIo5kb#QK1N6YSMJ_jtoQZtm$?$_ zf=tB@sj=10_w)91u=iL6wWC*!OEa3(KcK_~IRR27i6R>2kx^MxqThn#4t3W>;Ck5q ziQ>FFd-JuXn0tE;S<`^d^%FfD1fTZ%#!2pu)5nXv%&R0^TJpw;uu53O`g&4$tLNqv z^FhlFEJBHWX4VXY<l0^B@6<{f@R;J_xS&}uJXU7+soN~iTddDah^0>k6)%^Pluy$) z4;QdZ$7QkJ7I$x-14=;9O6j$Y_Z&nxecoL*WppbI<&VBB&ys?T&S@Ood1k@~<PB>` zE8w%3gGaA+aaow|ei>m51t{E&P2N6*mRK+2>`_VAk6`r0Ztupqymjn3E>g_Pq%?!K zD<8q2pmb(*UZ_#T9}JSm-}slDZ}+dS;VGi1SkBdi4tJibvaEiIQ5>^UQoS`UXPMEw z|0aHqG11<7{IaH%f6=`Eh4^jwpO)0#<F_L%*4VN;Y(f0H(;INNM=-vo^x^I2-*nat zp;;tICxGW2(wAJOv#hB=TK-@&|9z9amnxxP#T|`r9f?2q_Bv&6x+?8JHY$h%!7nFd z`S4RSIu}FDYsFWF_4ngVH7YlKaZ2RL;$$Qxxtb&QY;`F#9bSi72SP<e!uOFn`2OeV zApM*zZuT<LH^KRSNBeLnJxK@*NE;Yi2*yCbqJs7$;>?4|i8ao|v1&%Bf$Z|OVUqag zWfBVvh;n3P%XXzcC+qB&eMPeJ$WW)K<YC<5*-Ly&EHJR3;cV+13+!H{2Z|5-hxs0V zQ0A-t?fL}2_v1_$v}nVhO0>&RYEeo)k@&BZ(}MxeT)hb{<)^k_mSQ-c!mmC#wB0De zSy^fR0r1;r|6PP^oo}94iCg%*6gg5&empEgeZmW_iQh?zf^stkYz4LMkRx{uq6DFc z0gI-xfNhA6={TfHagO9kZ#VT2oFN(mdLCL*e!R#iqoAG!`!80~D)50eqB0W=X+fx6 z3n@M>*j>?>=;T<S$%_yikY7ks#96?<Y(czTv}G^A-Ne|CvH~;HYPq2y647nTTFnVW z&9)O_+*kT4MC2OzVng8@YyC-_jgoC$T(ko<+{%Q_wR$>5`38cme?1t1Z1f4M+7OmM zPrd#GH<JE?(e)h)k@*WOxOOfJG(?&zFlUcGU2lXYjTXm{rW$6Y{(~Q(qJ@rlD^eiQ zKbR^KSyRt|`Cdldssip|1W;t`RN$ehRZBv;v!?OJg|o72fZ!psOxLHSic)@oIBtx^ zsL9UV=}jYU4<^m^UJq5~wR-ZZ^i>S5QL*mA-<)vhj}ee4!seA`TnM`>RF-n4!=uEA zjU?a|7>xd))?17b(@#MPKxD+8hRX|8sq*rrCA``!R+|nM+7*OltgfxWU)!U(VC>BZ z=hxrrD$sBlV6O7jCJSv(uZV?)dA;`JTU7@b$*Wjy@tvI@Q`i-{rro2vZ&OTN^F6}@ zp1-cO*%iAH5|NXPs+&+Bdp{XUK%WO3%vRi>J$?>vwl0r$#W+^837fNP|KhE<WUMcx zMx~P}iH{hWo}?DqKYpU4F#<6$38DyDBIg}C)Ea`*h+kBNKH<Zo5PDQp5W;pK!p6Q} zPf+%6LH8N7(Ynl}QZXCd<vmK2+Vu@QdBn7@m2QS_HB=$}9(ZLR+TXV0{{GsiIVp+w zZ!}v&>O+70QezaILSB67CiHv59$Tjcd9GBfVW<Pa5P2&`nyS82ca1!>w#EBRcSFJN zn@d$IEp|I-&WRxG<bDlnr<$^aJah5z0CM_841_WIF9`fI%tRXie^StdW#P+}4A1=* z_F4j<TO*%t1QYH4ssrnHJNKTN;osq#0d1)$(SwuKeb3=FkHrAB(TXOd`U?aTD-4-~ zMeD0(fK^-MVNqmb^J^XVVC!Li7_T>GT{}oY1V$dumQ)z%k+liR917O<_xtSDMA*;4 zbC@Sq)s4>r5bhn96poKF8i|Rsm-_@Edu3n;4+@dNov|DlMKf6O_%j{R9&w6zy+U6| z$1>N@3?w90fRtf_+m)??qod>YGeLh}<5wv6LyK#1#n@rzcJTsRLCYs^(MaaRiLcqI zc_h`3GN&sCEu(Lea2yUie#p!WFST)8{z=`7rHxx=v^-d(+OV9uHy;Swfz`6FukB=G z8($tuTJjICXpJ3&rtgTKI!mj>0!@m!-iA!F+o{6S>&N4zAkNPWmygr&qK2{VL;GqE z)w8fbKsqX_x`ot%X`F)L+Q)S%Q+!9P0<xXAVk3QjpJ3*Dz*E$@<m+n&8s0L?MAhk* zs|4Sj^SM;?5$vCD>u97|y<5GlM;|t%7|DFz97b=U2kta`(O?zegyX7Xv221MBYO$~ zckvs70D0Ebod{E+4wFmp3Gvy9j4xifo+a$&!}R7NT;x)saXGBy?%ePtB%9Ti?QK8k zNbIl%QonKB?!>wHT8HGmt>x1JKfTO30anF;imRl$bQ8E|(uw#NHfL1sS8%d%TZ&qE zd@zaNtUZV-Ba9WjPfptY!}-!|h_x9z9Y_cK*#YhZ{aUo9ZhE(P!n_ap!5{Wvg^EB$ zP^l-uA6tE86y&sPYlY9dzrrbf2vHdc<c5fxYanCKLxGDez!>_zlh<k_FE6zm6nuA- ze`G?<R&>3M@vZK51C~MqYb(fRaqs5(=GWbogmO+!)f7+MwzkYVS81|iJ$u+?pr{|a zUTsut2AI@<%M}<Q)ZAO171aZY6gzt4`$a1<hp2y}6J|Z6I4D-MxXk`JxdNi}xk(L| zFgH3(6=+y%w8?_iUIv=i>)hz2I0no`L^42$`pC^@nOH4IDA37NE)OpX);usu-0L!o zb`)U(Yp@W`0t}{XLUuLvVl^qOjBL-FyOY?u>w<y6)Y_LMk(il<v2wm}$_v)Xlnt;V z+M~q<)BcgPq;?qUZ&3Q%PCb4?4;8&Hs2e6OJu(RAqB@2nYVk7{^(Uab9ZS^V<EYwZ z!EcaRKUs89j%gt|PO+SumRlOyN3n49<z6M*da7k$6~TE&8)JzbTzqPN(aIDgvRBpI zOs%_zpBN;i0s)#|g|}Xm=oL{Osc?B6GAz_bUCcx`=y!rV4GSX8{a9M&?I?x6ThFn` zYQOEBeBV&HR4ROZRH!J;u!>V2L#|P79VlEy2&}9-(5Uc14#FpW76&ZP>6|aCEj86v zn;LDS!@(_*rFKkOE{Ttjk!5GKj9~e=6eG0Xo(+)5hX<c?#1U=r9P!E+?Jjw#oyp$Q z=Gom&MYNig$Q5Y03^6qxJWNVwC*1x7GgFB3#=BjURy3zO_Gy%xYO!JFPYD;1>nG_? zy#He>F4MS$<KE5opdPp);8n@Yr|e467CnWsSv8Ekz@*merpzgllR2cFVaN1SSx}*f zhz=1-+q&j7?k6e!3h~afk*DBP_^258ETlDua_|{O$o%STvW&t1D}7_@!A^hQt<D;c z@m%cEI9m_lNVz({?f=e^6YGrNuGg)(aoN}V6hg8`yj@GCR9D7dN!+oXu-}n-+F^uS zL{J`LRJnn&%*$S(>NsZog-zY_2T@-GrX{pe?#2x=zm<wkV#>(M-9I?;uWH8T{9d^3 zA}!V}{0&Mb1=|9*unb}?OA`f1eNvjFv^QZlc`I?pr_H~(^$|xEc=u!(g_>tqg?ij3 zkJS({X?fG;5B&dW@dHjayKf8u0AT#9b;JFCPhpKsTurR)?Eh1<Y5k61(R^QOcPU^= zNU@4NaQg&1r>+YG?94kO0UCk*Tg)?YHIyYSd9G`3IJ+c@NW21~@p)p#oPMTd)+8NB zSk*dKx)ex#k$o?N7LBRb$;n)n6nxaL3cS9hh@TS^6C^1Q?e_}*e#?1lNBw-aFK9O% zpZ(iH{r9uZZg}w5ss5h7bJT}49jSYh$>fNt<X0vK7|^=!USy-gR56Wems~QXFZF6I zb$ZkEIHoKf-|WS-tx>JI5ke(u`8<R*XL4|KU+DALeKg%SCa>w+N^~okaL8UFxr0dH zS>z?=D&%P^zHHf6$HZ<`(vpCE6UQpqMVJ%SN&-7Jrm#rkQq*nOfE1z(Xj3MJncYqL z5(2=lG2eQvs2Eo?TKn@#E`r}iw0xi&OhON2*s`-jB(N;-l4y=8Uzq>y_wwX#F31MM zTB+dTtxY63xFOzfFx7X}pHT;B$GooFVCV@GQWW@Jez4~!59q7%>o8Ha`Ep8Q{6fD@ zAvQ)$1hA2?5@lUxxc$UU^ueZ7wbtIY7kUH1M+q)?fap89R&U2r>sQ?1@S*c;?Q69w zpZ}%ddo>bPw~GgSgkI!@)u)W=M@+!7BCFhDzb)BPoUybWX>Y@j+p6ufe%rfh&vhqO zMV1z!5GzO6S7QDLzEEB_0i}_NvTbY<XW>|628w7an>umXDj|h3WF-fIhcFM`xP3w{ zaL|U{icY-It*hIT<)Cj(Vv||tZ3BW4m^Behe@&Le0|I+wA{r&Os`}Fdhi58A2ROe^ z<OkFbb}R`7SWZ`Z66bZB0fLGQ!R|%)Sa=}R8eoS^$^C2?1-gJ3Ns<#HveJpI>|wnw zD`-Hn-OW&5Ce^-im9EnXDB%Py5v37cD8EGAWi+u+t>|DwoTd;Aqt)K}Je-m=BCLgT zCth_G3mMZUtpf_obNRAe`PYwq)l%y7-#oiS^09|L%4&GJ=GFRKFBzX5pjl5$vD0Jb zeM?A;Dv|R9KS-;J$(XWy7sQ%ebtv-VB*l_)Ie@0aFM2(4s7?VZNatyDDz>*nvx~D@ zMK~?rx8l%Bt3?>gRuaNC&lHPuT%<!9`{>;-9gkU9#xd8mnc2*|dyTajxJRrC%0GTp zZD)D7N*(<bDWof8dP}~t^ryPt^qBi33pz?f-mE#!Z1NBU!3Z_d7R>jrsBcj$1*ACT zID2<GfW1^*_aXuN(-cPtbi$<eH{&j{mIW$hff?f!z5ZeBpM?y|jP{Gv+dzwy6J%S( z&tJDZZ4Gb_C6K*N#nUO|LfMC*iaQFe5q876H2h$Sjw}r3<Q_n(saEk4_yRnxp#-)- zYbI%{z$L^$j;*(yA5+>ybrTD}V!}Ok1alCWmih&M!L!g?@S1t`k4Zm>IAw-j3LuvR z1`L-;oeJ6&xCBTryj_-3{9#{IitlUcTKD!c_8etRb#Q$HN2=5W!IjkpnA?1HwYW!} zj8vrl6_Z!)KZ|MO(Uejxn4^%~s3|E&ok?AU8qNUBf8mYbp!`2Q`K28DD}H{snlR>w zmM?@Dv4VEG2z=^ze*!F@aBY-U)AEd!Hdj&P_jGrE{|H8mhhoK}sN#}C7#C_vQ?+i3 zhr}6{rnIEq`1)%T>`wM9snnB=;yDzsR|6VpA0Megp^w-c_Bf`QT?&(Bi0y4G2sw^= zeKA~h+qgEMeUydmxawcwp)&>~5a}Oqd{s4dE0#m(tBQWbuti07_>!tiQLu%t{oo7V zffyT&O>rPITT<rXDp)k`)-xFcmDP%%L>dC*ynt}lI?JJ+A$5~+w=pEUZdDRy7zZ>} z55*y5RYAHa!rd)Z^A+r)_5k;xX&#3$xVd_^Ool(QlCot)ot>Bi27eQ@8)@(=w-XNk z(z?D#qDPvl=Ce49*k?n10ig~&dZsPAePUh(|DolkVZH|AYb>vf@WV&@1olpM8vni| zG@A0|PIs*yqr#zJ>MVp;5@zJ8KyAaW(8tWGs(ff(Rr~V{Q>A=4At{4h_(9DbQA!_9 z=Q}co3HCS3#;iW-M%ZNW8n%x&i)km<k=bAm8N_DjX|JKraRXwQ?1TH&C@w%2)OXDX zBqcOp2tI<+67Qb#de*6}-E18Gw5q<oSJllZ3}OocQkvI&&MKZh$*!tFsk*il%9mi; zhg)C2f0*8}-VT;4jXa<9^$QR%jW~}~2*_$|Z8z6l`H_k)EoLOJ-MJkx(o>Yr=Urq` z@KOHIq7Y;a4+BO8!`vQv@?a#Guin;_q50Q!*W6Wnx}a6M@6=rXfDCUYKp_8S@6<c- z@S!Al+Yvo_EqMH$BYqNKMrBvToq_e@qn@HKr4Qha)vDDDAfAAGadIZ6<zrymF;7l= z%)O;9+V!65xS|Al=^LcG(8$r=kNVYiGA-HD_#hC~(Q55X^^BQBS%c0Em)u<5ssusa zkP}75h7(pC!&cga-BtdM$d94q1s-`wa~-<V>D878dg$;C3AwOu3}gb6?;jB6TNl5B z!g>SR=D;?{JN^mhxvd2Ti+x}KH$&g7=NW0CTMg;BH9mwgt&k~bcvDut7goM#SSRRH z@AH>Au+G^^y-j<bFPu;<1h(!RJv657U}o>ma?_yy+x>{OshRI(Mx)wT)t+lDE6*SK z@~cye*<htf@y0L@=WGs=6Ui}gp;ko-t;I>~1GtP-FN-Rviw$^uzSS+7dD_n(l-hm! zEf03h*FspHEl9wFio_<_om9QfW|(pRe?fUg6;PLBI4SY&-C_y;0R<oGIzG1Q-AQrR z5lzlvOKrYt9Fb~EOkI~BK(%n+kdy}O1)3B7tA}S>D0bJXXt$1P;=0Jm<iPPphi0|? zUzNT8WhU@*`WzqgOD^pDRpkFK<ih`mge`1M?S2asAEgP~Kn8@a4{FsOj7rE*JmMqy zr)~T&s>8Hkbs+kN=!%x}-W6A<AcQ4whUdx4OW<ivFPAc)fPnQ^dCU#@P0mICO>(b0 zc_Sm5Wqq0;=z&qtdSL!Mw&*!3jD{$2Ow)INZGihI)|hu1cCdvv#YExPPT%4lwU(a1 zKdrdUQH)!ZH|X5M_~LjNfo+zL>*<7|A;b{8Z}iAUy|Mz@l!fAI3MH>&oJWIAQ2sWZ z{M51H^}zmj{bo$&4T6|f*3c#c)lIOTd>1_GI1%bxtgd?i{$P1zD>DnHEJF5S2@^W1 z?zu=-hRHGv70h}ZZ?rtFGLt^@GP&b2$=ajF+hh9!vEA>fyhHPJ=IrZU0*ccfc(w7G zFiRwwYVYe2+AT21j)PsStxTPwwwrwN(s-!{9#j>pp&0t8EH<*CKA|lLPJ=<-q2ve? z&S4rfF<R;5Q742_K4?4q0jaR<y1@b7oMrZuOKYWW^-y%h#*OowdOAPRKhSQ0UFBO- z7EIq+e33G?oi6VQUqJt}(zJ7BgT~MT0MM5K1R(l<SDGdUP9DG35Khhp*4DpobE@0I z3wyMl;!~&B5C~5P#uz~J(poAFN3_If%Sf850EayFm>Ca9*ii@|a1ushuBWH>tGc?g zG8K@L++%uzyj~)&)3dUsru#S5FtD(pb4u5yqer_MZ*p-a5S+fD$3k_@W5INyWLw+# zsK##DM2~*=CUdHSGBvgm-bah>eblVevw1S(!CJ%ZtEN_M>$2*y!sPk6rPrDbzU64Y zqN}XKBgM!6wxXv>?e?ib<8pba1iWm@G{Z$D`6*RJl@4vnQ_I%YK|QNr(ti8zDSnpl zj0Ko{%|*?1`PWN@jO$uer8RV+j~>bcID7<A=jDgZ%jexe&AFSFwlce2r6VM-!KbY* zdu-*@fy$bi&X2o>&4wjl@8CXwxx&O)>X+x!Za+lJWxvNpRb!-zQ_9kX&BF5|_g~9Y z{?VWHo64S5An(<GPd%=YrcOG|vn`kO2F$KzI(pivHt5gg>n#@C3)Fw(`e#m#H_)$! z5q<ex@VnRcpYKb359*Gz(u<q2gNO&~t0tx#={gNdZqJ|YKG5}iRB(Df?@xaXaV$o9 zQGQ$=TMqz&&KfM~N^UK*c1wi^5j0V^3aVSXuRL^H>*y;zl~8R^pD$aErbe1KX(G>s zf0ai^YZaaZ_-?J)Z_V|+U-EWu>>K9^reuGgmOLZFN;59_wZL)g*L<O@%$MPYLcdFB zTaRxt8@2#^H!uO1s41>&4fX(Z^-olMOnY~-Z8l65Txwp9D&F<K%dnT8x_)mPN#zPy zP)D8rZ`EBQKcRCb(*O`s2Hf*@8s6x0;>=MGK!DE#G}h%~f*k9o=XQUn*%bJ~uhanQ zoz0TM+yHBUeX1o^Gx=)2p{EAQr_mL=NFdl7)dle$B-Ka5=k{hv>-!wlmwC#Z81U-5 zzH$Q!65S7k=leLj-^a@=q|_&5RZ|&#7XBO9D2H7kHFKh(A@K+8XP0cF5*nl1%9S>& zn}2SjBcL;21qjX_*sV=_iC<Yr`cEzp0(1<7*tT<L3)L==YGjXvT{_)v`@!Y<yY(na zdQIFngde_5%|*-F?tSSRcPn~KOWU`d!E3GmI{idXP!2l!b*x?HGt@Cq8Osw_x9vN9 z#+K=?g^Xe|uJ<d_tdk0T-PxR8OpoV7%j@UTo!6$#8i<`49uLRZ_RYG?vUNkNxE=q; z<#_9HL%J4w=*5Ow^&2xjZRLYw>$&&>O!*J!<#;~0(=}km?jR5ff^O>IWsoV?^*@(j z5d)s7k@u^<-ks-E&uHA{z0t<Da`x2*^(?(8k2xbA2m)=;&FY7DVbCf3tbwOsPE!}P z&-2E{jv4ZqavNxMU}}>HM!lp;QSg(T*zFjywLODp?6dy^NI<v0W+s<!p8^^`lg{{_ z(V<na7i++stUk~Bn<hiF=>Yb5)mEDYzsd+ALm2R?Vy73o3q1A?sOTKq&&?RXIAk|) zy14z{0s=KRU4|DQJ9WD)EUN1Oea$m=PS6no@B>x18TVQB0XA#yP4TShFAMq{cHE3e ze|NB^2@Vi_{A@y9cW`Iz+zzwLvMc+(&878Jog9O4Ls55_poYLZr?x&^zS&}Ghc~g< zK2>wZPw<yqf3N^<374TeJ-c70XVOV#V+TAmU<3n-zA4Ubfyv3c0CnbY#LcqG$GiUg zH{*##w6a^&wQb$Ew{GdK4>cN3!cBSK?kf7M`mm_BefG_!#`eTmL_7FJx#}u2%?2KJ zBx7xkkDfnO^M=ls)e=yTTg>rZZSx5*b--mUU{2p{@P7R+qqQtnWe3QnE@Un*k-G$6 zmm47RS?M@iVm%%kK1Uu~gNw_Gc@ntEa7Lpq0LLH0m9@>8>&*<;%bnyIz?ZfIrnkeV zW5*ZhkhjYqYg;q~yR)<ffATR?gF{%`YuKb|Hj?q^_09O((PZj+jDSs<HCI5>Mn8;P zdo!`DgnMaN8NcHiNMSv@X5x!o*YuzA3Oa4K9o(U7y5{l}=5TQ`)7k^H+g`Ngvclfq z;D3O-1acyuW_efPn+(L@?d{uFBx^7qZh&<YADpaU1`pREf?KAR1@rp+)jPi<ADHde z>3)X6O!WiwUG0|DOxj?#5BQ(Y8>CYK1ix#!x+!nF*`nFrVviF4^Ai5Zu*aqX3|?9k z!Lbc6m}9tTU_NHMc12UK@jobCA=`m6mtdQ4DjBgVJ^*~hXK<&kI)ZRc(^)QS#G7)3 zaNw5X6!<vk94zvBkmy>>EZacf&PJ{UoJd+WtT(u~zss(wYD@GU9s$5HAN&~cehtqT z;`sQ@Si=Pp(cm50A`!o-;jxg$g#FL6*_)>{@9#!i-jCUv?{Ibs#O%$punDz6nm>E< z1UCR!9TXL^6JZAs?vqo0lCbusUD|7?2Eco?!B-MidvjUCPSO>@=Gh8gE;ubYWjK3m z9jsqaX19S$iCgf0#)#t{s_8q6j9vyJIXvDlUfKJ=P@ur0>S#BQ5tNyPIlvk)4|vVC z%H~_xQJN7w-9DrWPzASzxE6$CWbJNSE$Z`HBQh-AG{?<e`;a!x3?yt~e_qFHgRd&U z-p!(pH)hq`%q|;v)@e0gV&^Tbd_%YktIzOj-2N_G?_iy<F^fwd%&GwfY1VDZZFkx9 z9neMuwh9mphRO(QQT+fsdY2LNO`S8KR*S1<7h<l^D@U8Rz-U`CmLZqlu9;9Hx&e35 zM?2%LX#%&H;NZ>5Tszn?_@kohWl!L&!g*Uf^M}FbC3--xJAOej=**DO@xyLB${x~( z^KXui-WA8M-XHNxe=0m#v#QEX^0^xG+k^Y-JtoZgdPEgJk{1DgRdiDwj6y>9nL?-Z z(b_>>AKC#~1an)}1sn`WjIaz?!jJwfd~R3r6F=i^1uv9{iie(j_&}HgyyQSzSpbv0 zftPM|K5?AS0TIF3jJBQIp!#b~FTokSvK#z#R-+7~@ZcZ=Du_LWK7rid?0~#N4`QO` zjzfd-<^=sPd*Xiz>nWNm_?-TtjVtWN@i&McekVZ{6d6rVK0f`49IRE@qyfQJ74VuR zza@c_aXa-jYlQ6klWYTgRl2izUCeBSGN+mv21QyjMihvW<|9Jt!rbo^3`+*3$EGO| zSshHEGX;^fWcRjddefG9I|T?>U6guL{q{}C9O4#)|5be^Z4j;K$%jv~b+g>ToIRO; z00^*ZK9EhbnGuj2yTeQJ7zkZoZJ3iwL%FPApW7~&%FD+uKlvn+@6sLpp}VTbn^OT} zQ1MFedt4OHG7V!to(jU3eYv**@nU;-8>WzI1cD{e)}z-i{`A#RVM(l`5)ml8&;rVl z<v+bRKHA>}+j?Da7~7=+!g0Sbz3J~8Dc%e~+W2lOy7orikPTqHuoZN9uIti>P8o`Y zK2%?Gml_xNnnDEs@G2MdtfxBRDv-+T#f)lMfL!=@phVd0$Dh<<UeF*JS{XdaQz(5m z&8q8ag9vZ~q#iCzw>u*_wOW#C1H~%^u0#gHFh{~Jp;m_9qUAix-e1<8DD^sKhU9^O zOIWW~8WvA&fmRY)KdE*A-m(N*$ZFtS%bW^nGrGw*8|g)i6toUjPl`UXo*pMsBab>- z!e^^yJHiDSPGe-wl9t)QBowfQ?rya{tCq-m1#elgY;TKpmnLjL^v;^j9<ruh<~zTG z*8=s;g^|zAgB{`dG|>|kb=(2aWzpxp;?I%1iQ^5H)v5yQI)iuj3hqnJpv|9(MF7%S zZhG4g*5=R2N*hQpwdi4bc&*`V0`-{bGQp!T-_;#nQ1_i$f%y%Eh<sgcb2%1X53ACG zIZxEObwgP+{;C$dYA)u;DCeWku_<z~4^iT#W**g~b6|Av2^Z^$99^lqqHn88Y0~Nr z?sZNei4#Y96D-~zudUY2HL+3cnqbxE7A#Uu?7iDy$FPe4qL2R*4MX)}U4h`abbHd` zm2M3ik*m!xx+eU2N3H0lI?IcdEy%W@H9>4%1tJ3-HY94ylVEvO;~#&T|M=5*&H_sQ zsJrb94?)HWw-ZZNzJ^u;kTmV26w3GOEwXs(%j`$&W`O_1<cB{)CbXvyb5Upf2+e+) zj4e2lr*Z^pXZna(*Djw-)M=G99Le!**H`PK52z-07zpoAiYI5z<saqq?B#EtJjK6i z<ic6ou!3hLfA-4>e*DF&zkYob(H(mRd>z6Qb+`x*j^oYLF3-E|3MYE<<W#K|89uyE z)uOQ6Utp*+8bKDRY{Rh{ljfwl;6vqIm@!$S@T!BPlcsO@Wv+xs*Ud;*Lp|*#q&lDP zR;#_^ng&sKw~^4-{V~|80Kum1y|yP$o_~5e++ou!o3O)a_KE)cS=b#;)EvNbbAG`9 zd%wm0`V^n*!w=ftvmJ0%o7HV5+OALM&ptupM^>KI=d1F<e;>x?Qve9NPZkoG(o}r` zzmL^f{G`b2{W)2Mj3;BmT8>Z6%N;VE_W*z+rvZ>jU9q|5>A>&&so~Ruw!nP!?TdG> zU%meGb6}~eSSiwFPWG%jqb^*|N8z0Vp7TSYWaa{h7R{+ZaCz9g`mjabgPdl7?aU|1 zujQ*?B>vLp4aRC{JU1t*<6nUkJq|I^aKGvcH=%><)j6<tDC-#|g#Y^34Y~nbvl_yw zRawBRq&Y~Mnd;Rythvkdvt>?BsT^SYkq=CuSge;&yYV1`=}RWVU_%K;tX6I*UsZN1 zXmGejB$uAuW?E>q95Abhfng(_#leAoFc17cJim@fH!_6nkB?4YUXjujb`8CzcAH)S zn$6_tAPx77JfrYeghE0BbKHw|w+xtVWQcbg(JrQ0;;~v2AXOfsoc=S#M#6s8SJe$X z*HhXhtI=|&M@t_E!n!`p@z0;N(>+ErSC=K?;5Fh9b+9jgpj+7^P$v*mI(-Z-%L3GX znjM_YM6)%7I``Q%vnjMe3=j84ew*lXJZ2pviGF9OLAtJ%c#Ub~b8?9y2NC#k)!h6s zd)1Fw&W8<LDmchZlQqJAX3XBOb`&^5w-#igd}iHf)(S1bBQs(D&SOc!wXJzx2?C(N zop|5ij}xqr5+hpVov}(!NIb(U8g=sr7dCJ_RY-?Fr`})Wj)^qG_In<|g?0H-4N5%A zN!$>B+{^c{%W?obn_0urgd8#m7|Dzvi!CP+6na<vqk++=SG}=Em>!+k^^~V#o@|dl zOJKxC@l@sPP>(KXF-n3+Eg;l?nV%S)=H(XEFnP3I53NXvrFFn5MhFc_7I66DYb|;3 z0jg7sOY8P_ThE*J;&E4_tnzpiT<yzp+1wOzh2qtmJa^c|M&JIjfG^jCVFAqw-OBQS zKm`Z}+u*<nGK7<gcRg%@6R6rge=>E@5~Nrw(+4lH(Y2r0%W3as1V!COw?#3cSdimK z<I`wXfnVVuXAx>K89$VvDZUIoPE5sePg`~v?%|ZDc}V~DdA$JZ*cN1_p&b442%SDr z)HhnV&rhXKgVZQSm6-?Krs&X?pjfeuDEPz((|gV=hH(-fU2GM*>)hZblpFNxWU%{p zObusgg~wmsIa;|~s^;PT1?Rf|iMJe_F_7UyZ-0*|TX<}y=@j|U;Ltp;F>g-F8dn<x zGoQsYT87S_WWPTQ`ojm$1|BzlUj9<9cI<iPH4@J>_bvKXBp!l~eWOORnVlOsA^=YW z<m)M^yr0F7(uDc6D!xY6f@l<#DH~{@0QDzpq5<NWj=sjJv3Pb1@*KPAI58}rolVd; z1U&;#6FZxk*^CA#h{k2K!T#Kdy>2ofY2DQ7v^&~4<#nyZN^~JZJNjj{+D;-VyxH~J zT`yPMX<hfr=7FVNYfQfYSxWKKEQg-siDUN>NxaC^ruD6QgV^rh@&|XTPC~u5ej!k- z;|DorZ6h0A@)25h7wE_M4bF*Lc}fmtk*k)YeTV9WkK_P#z~*Z#m;*-A{feLt7$;aT z89PX=kH0zJ&u!DOMs&A9RVYy1ap7D(>{Q@Cu)>0Y<qD>@ScuvMbz#O%L%%ERKn4Oo zLmq;@^LO^TT(JPc`ZNo|Cvb3D*l_Tvls2+fbnTU8isi<By6MMhLdf$-$SLqeOl-Ne z3qZnF(@6Uk_v@l{PBR+7ZfU6JitpM>IP@<2KA!6L8TnB;44P&U?r7N-{U_%7`e|*M zoaxC}1Jqgz1CnH3fHXdhSMkrRAR}QyPcJE5jspcjsHzKmF^0b0^Og8m41I0YBm?Tj zvM<$lr~5XW#5A{w?QSE80vy&&v2=k%hv*Hh_7sU(&?Lbgm77hoL!KmlQ9PZlXOFkB zIp|7fBLA}ZjUHhmw4~!>&gMOm!prP@*Q3XavE_`WQD2m>aRx)2x1rU>hW(2@M(kK? z-LahozO4J(Tmw?3xR6UAu?I-HlYFB0+U~38Igg#D9?Oa@O%XMtFIiO-Lv@d`exp+a zkHNt0BO4vbY;eVIt)n+<H`AOS^eTXTfKlMTxrG!HEwdk_Jgtb3x8>%d%CVnJZZg1M zs^y$We>6mdADx)lJU@-Vq{AbT_2JOSfkUCF#ssbtNYi<K)1su$uEM!Gl&P8GBt}>K z8DU4{`Ubp~QM)JZp~HF;9x7&c<ExAMr^4MoE1<ZhWV&75-V6Ox_eRm3ZCCA<O@R@e zWL=C2_&W|ZDW&PmG-cih_4P`nYFQ=6^N}+SM!O(c0oevPR&umo-DaDzzOH_UxLszb zN?Fv+uEVgx{x$>gF{1;6-E~(NhU(#VR@y{z+w8_bbIKJu7@=_i7FKPuWz)d_(!6Ix z0=D&%IRXF;ziWw^<)S0{C!)37k3(DM_zwziPgobbE<bdh^cF-&{k^H>Dtc<A5k`E> zkj~6Ze8<BMJ&$25b#Oyi5**;R>^j#e(6Zgv;{Wtn!r~A6`Io9iafys4kxn0gpu5>@ zQEo|Uqs1Z9Pq7{pJ8nQ>H`eK=bZQEy+e_uh=Iy6|lAuGggE*0~ubI(0VQ~SHzW0&Y z8$8}C=GsiRlsKKgIhLsMS8wQ-AuY}V9fg=c^>7^t$F*_uAbW*Yu&lIBX=p@z`?vRB zzIpxj#rrR(NGtIM^&}nwt3iK|G=*FLN4NIQA^<5Hc<YtY&nZNs4by!+Dctk_^_O@6 zEc_pl3{=J%3OApknn0c=iyKUnH0w6%!bF&1{Imw;PhIJa5gS~ez51?$jN-P?HxS(o zHJMSQ#m4}ctah3VX(owP{JPAr?KtYq@snK~t7$+_?nXIuCv>3FFR*pK8URdfw(ydh zui>8Dj3@KO3SNag(e@5_|7tA%r_k(WsiSAmB2UfnVDS%g6F6K-^Km{!C-)Gs5i}Ut zNorqw81k{ZZ|wdNJ-}o;Vs5`6c93k41qlDsgayHk<?n%7f21X53^dd)slc$?t%zh8 za-Ey+ripuhr@mML_C1%)1pRn`(6i7)Bny<u-6N1emtuZc%>#7MQj4@!#UpP#!J<(3 z$6B5+gjO>Ni&Bk8DmN5#gypL@G0)?+0VS*R2JI&lG)3yvX0h0{K(*1)0i(iO%IAWf z3d>~*ymkypyOccl+2MzsKY;;16kwOM!Vo>mXO`0-v^0(q_>y?6mt)MWdqUMCXFNe& zUpyW2E9~lIzA{!OVK>Z~0AdJDD~OrecO=A1x}{iqEbZ(D9~O?4&$73x3fWURJ$yLP zJp}rc7iGQiR<^ioP|z#^@Hs{J54!N=to)@|B|0;2<19dC#U}Int-oC0vvm)Ad|S1b z<+j5EY>j)1+X9L~=9i2ivd@9uFL;Gto!<km*kipTuhCg^gAsKuH3s3&y1XSmj-q7i zi;cGDmmOy<TCVF2Qk=4HNVhvev2SE1KBu`LtYzcouR7Jr=Ra7`x?Eh=7_n!ja#ME{ zTzbbzYUPqy&6ct{0E2pqp=Hd<!VoCwu}*__+tK~3a%Mma@49R$JY()|048?QVUGAe zVs>oILo|7egby6Tyo^v;*?U*)Uzf<qVi;c<Vvy(zx4=|wVQqj^i%V1kbfg@hJz@Ot z@729fo&=E;BM^u#d?VyB4Jh}+4Bas?!j8PM^U2B6)5HsVC(9oR7_lkflfw*CD4@a8 zyz7c!?RhDao!xDBVxey~Q09U_ZVR~FSX4h+Z|k;RkZgU;vYFwrRYWsK*lba=!YGdG zpHrZ{HqTg@Eb<vNO<aV+OPn8)M#sX-2ne6T79uGr3`I(D)gy%G=G0u79=0=b-p$om zHyPr!rFZ0$uX1eY4WLc1iLvyj=Lj3Q=pO~-FWR4&k@lOhNRW@;{8#i%is8m9gX;l& z8CF!F;p1vh25|g(v{?Ls{da~U+8X&J-CPT~(s0TTY|&h?S~|Tij<@tS<(|^QK1soX zif&s{W->=`XP|`ZFeD0{rvm<XRVJmH1Tv@`Yhl~KY&B@0vb&8sw&2LvrNa%9*5Q_` zK2(iZpktOhZg8gKbazbg!ytw|&&=HBz~;i;nXn~}Koexo{uKTMcN4}+PbB@RBq4%c z!<y&=Y?7&^60d#T0F#MGN;w?q(QPP&1}0`2gyo$vj2i2q_hsIrKN6~I{5U^xu;FB8 zM<`g%7WiLO-HqW@doqdp#_?<B1`qo+5~&_s;^_U+@%!xUi{s;?&z}Ry#>c<H7#U>o zgqFKUBw^UGQxlOZ^<DZj!z4-OC#mL^)t{%=IedRVcE|1@rD>1@5^W6AHVpZbyVM-c zL6y$yix;oHlJg=-;PspL$<vCTUq9Ite!{65_?bt?EirbASrT#E=Qh4&VS~KqE1Nb5 z`NQwA@%PgV7K?nl`3e~i$%(KW@&pNUCLnuBF>z~2l~=F>@7S1PgRLf89y?*008qa> za`yWG$b|Nd`Iz`QH^{(gACMF-xt2yOR4K`0RbN#r^fi(YzfT8%6vg&-0TNGD6uNr{ z*Yc{~dT}B82h(KMn_c_{CEVuIQ~|eOs@Ivm^R!dwRBm=_c%P#F10FFb0dLU(NidLb z&mk!~`?19?9XYG+rHXHj@r2zbkiD5YwF~sTDOXpiKBk|JE~b8a+@-~`XdI=z2bssW z!NqrK-2zxjZ-~1>Vu?7V8CQaBwFo>1hTX95?~?Xvb6u|B88s=}vWM++5@%UshR?2b zRzu1En|EJzDK7$2#5zy9EEfh5RZ^S}M&<S~N|hK6%7SQ!_t7hop6=Y6JKWTxVCwim zi41#zb0UvAzp8FS6Z-u(|6yw_og(Ovg!Mbw{AGh&jbvrQU2LnASvofpnI^p`lUw<p zF7xhOeqB?hz}D_`0gSdYENVfEMM;x5c)q?`;_ta6@!NSR6=tJ7&Kd`>(2la3bUpc~ zVuG%+#T==0IS+pQ<hS%{9Q^v}6Z6Y64+JHL#qK#z><+_vXtLox1e#;uEf~8GzL$u_ zH;nq*c8B!ls_mhB!1@8%zX@s4==Vtc3w@3Wu1Y+ce$QM|-aNp3e{(4ssm#cW-XyO> z^(pG!_!M#7Cf#xhhPc9LVuS;x-wqql;k$F2k!5w^G3g(Zwo|_!7#5LpQm^I8bmz^V zW-PbHV%#de(0h042-~0(L3#)bL~_^s@90e|n?&YKv3vg08+ONP^>+E|jh8zZ<%6D3 zhw0?bGP8uZ9+22*0g^2tan|Qmzqs^MC?rHBy)Jec=A2YhpJc}@igUttscxoGd`Cd< z^k2dZ4x8G<U-%`3{o!!<Y5^B6ubN&NQK*M4<&lFWr7mhX*YqKYZgG_5vzf{eM=W8d zRkM<IhMs9m-ZzQg&td(eZbkQlcs<l4qjh3IN(`NWI-cu6HiuDX6uQe<u-J-6#sfiM zO2O^j7)0DO-zqJ9bP>`@>?-5@=o{3Kj$*Wz`?ECJjNR%|*J1Fsxe;xy4*%LsVv&kF z>bF3MTzFwk2X>UPuZ5l6fhkeJRsobNFdL}kP(|68EW;Z^u$$KSQkNUV0Z+y21`=zj z`T#|#02@E1Z>VE5>m@}I&+TKt;Q|bZIq<(7KAZU%@k=SO?g1#yWfZ5uQqJd*8Y^5^ z82o6KiR<(_rktC?kq1Mpkt!QIy1%B7KPr1RlWl<wg&T2GWmlW#2A&~$**S0LoHFji zS9I_API9aB02+6*zIEdG=*yfGhD$VZ6H(R^;xr{S7>R+W!veRtOo$<7AJYWz3?_7S zk1HJE13rg#T@r|i!Upe4?J`&5kF#*RwRRUaXBZ?fN>Fv|zAML`qgslc!lN%pr1La^ zm<(?EGHnjHKgrxDdzxvU@JoAf;e)aZKaKCz9b<PVPfjC}9bx@oAjmy-z&_p^f;A8q zryd1Mwu6uuqT7M8XEYieV{(d=11#neKD$LF>gv|`445_y(~ox$gv4fOzpGmK19lG> zh_%!NxFy9NX^hT*C&#(`!l_RPBpgyueCC8MoRe>0$3W=A?NCK&{9VED1Ti_-zy?(0 zK);YLiX(YAgW4Xiq*RBgO#cLiFo7lFZTj3V9+5<-amruSo?{XPeV5k=Z>KuEPG1u; zdQG!ONE4XVROldV=@O&Rw)hZ`*2?=f3R(>sX><+gC=p29p@e2gwVSgaQEGJEDjqwe zLV@-z)lB7lbkhU8@z^U%Lv>H0@{+eTPi!{rupetn^O#?jol-Q~6xp{D@7#arxopL- z9N+~OCtc6>MHWYJBlRa&of(?jfS@6AJ!Qo8JRS!n0Z~VpKZ!k88yRvinK>T}s8Q|k zqah2!F$fb|BwjibIg2p(1p0X4=7g8)uYdikO@4{fFy3QU5V}F{+ZLbQh8zdZl|xo) zEwm0p@8#K6O+p@sbBW%NR%o|n4U2XQGD*^?7SIYkr_k}|rW(Vq7mY6)(7daE2wu+t z0oA~HxC3t1hgvI>qq<2TDZEZH80qa+p!cZ9Xov=%YgbVyKRLy6AhggJfln0R(^xV# z0``!<Y-HX~RWC}!k|(83+@xw^L%;*bLG`2i0;O<Rq%$$#guI=SdWbU*QS1w<-C@jM zEwBsMB|7BE0dV4S=v}kaQ7-!W8Xd6qvM|tdm^;SXt5b)>RCtde!c$2m5jlmGU!XhQ zWwlfu`S(Fj$3;;xq=J&irwxhb2qX>rAhTx+`t-Ve_;LpC1GJuDzWS~_uR=p#%Ia*$ za17~VprlQ!>+<%jD(G$Yv;dU-QOqTj`)jwQ_**s5vWuKK?l3Rt6$MJoWf!W5S%LL2 zwuUf0!b481Oq&N-e+9R7C@+G+FM49wFMh8n!rPM6*1NA$i<WdxdXu9!-}Dy>ZyWBB ziPQ*Iz2S|460C!~&r>Vt#~JTXX^aM(hRcD0{1-)~kO^jE9NmmrduX#@!WhA6I??=| z#?$g96XTqLJ+-5Q1h>~Q;_m%7KL@7vS%X<Rfq7u5sjVW*Ir+)gtOfz(9H4o3pK4I` zk8XzJbE)FxT<)t|xYx)?j#_XWGGgzgeu3M=URIBiEMQd!l;Ws8d1AElv#J9!PRuBN zp9f>{wyeY_&Y1omVbg@VQoeSx_FVzYA7}+c+31>+Eg{|ZCFDO>o2uoAja79~E^bYZ zOW7Ztuo({3OHsg<2*Ww;d9W~GhM^wf@9gwtm!N0rxg&Ur8Uw=Lu(M`qi(C|_<{$@E z^s3Iyq9@tI%(xW#o9zY$5Z+PY8F8)wJw0^)!~uO_%R4Ub3{(+21q4%?nqbF)MB4)k zNvC;vPnQs#chFyMw?%8$d1iWB?;g>kiS#t5SPh4>yA7qrr;<G#x!N;nTZ=uh+LoBC zA8s|G_fFSt@zo^9Rb@TjFMzGzp)q=msozTF3IDk6x?R;he){QW1d!^AIv|)9kMV_c z<*=LN4v1n>bF)Dvy+j=_f?(O<_%H81v;B>Bgh9;Fxpb^i$?T_(Nz%*D&%&MI#4<dE z3IC}Ovn_A<gfYt4FI(y*8W-JENSJK*`LeP_4QIa@>o{T$yO=T2IA#bvlHFx>IKs4t zCZYXdK1sTSZM4Irse!4T#4OE?GLnS#0Lb8vWtC8jYk=vPZ*L#N|8KIJ$LQ+75WS5) zi5VrAmT#JU;5>I9bZr2qAxkmAudJO48680!SP}8PK2h`sQ*s(dmZq3EJ-4K@6iXw{ z=ZRq@^32_<2Ee-Pu%wYhOcgu)TRT>VkD?h(4Hh~?aEr)k!bFY+0Hj(S2BFe7(`<Az z0>X#rMSc%~Yp3zywycZ&c5w-PER-kBuYdjPY(@)Ayl1ReA7;Eo#r|AT3Dk9SA{ue} zVi!ik5+kG9lOrA(QA|-zplNQiL_%web-9hR&6Dlwd8B!phOItSQL7JC*y`qT6}F<n z$vQ>3MaL+tz=n5_sNu~!&hYAOopJv@nSB-{^iZiHS%Ckq>NY5Oia(U1z_yH7ZQ0io zJ;gkIc&FM(`eJj-OeBJwQj8LoMB+M(T-g>S4Ry^F#~7L?HA72vU;?h)=<NKRQC7<B zZ74bVRk+hDGQJMn6lCxVtQM?|H9ud}G2P0uj_sCSM~}KF26zsK(DuA4;|WD|*pS7* z-M*=;-KvUNbDJMJEL}!l1lFE?vu8hPB~srZOl!=*3bp(k;rDPfVHh#?vi#(r2sAd` z@6IftL8ewkd6`$uS?EHj275I2MvSC8R*WF5gdamnEtV9U*oy_N!Q{kJGD!30aV*zB zmYX~9DQun;Pk8~8><=l~^dnaBH9F8EqpGLh{Tt^W;0&(=OPDCMd)?e%ny(B~bdd9) zeK4f_Yb+He9Z`LQ3hOp~*Q=>FpGi_}a<VUxuXcRln~I6coI|4np15S>02x||`Q^or z?{d~ow80;vio;w6@a@+|GiRDl{flZpPM-BWf5u0D{`2hB>o4An_c~{*sU2Nh*qQxM zZ#e*HZhx!P@*-wkE6(Srakki}7HP&hG{5Y(mnyCzVJ3a*%%rMea8`~r8nBu!EA)dD zzYYHsV%>v|&J7tx-=V^8RI2PodQ5wD-M8rgn<S?k>w`2HH?;C(jL_UpIvN(1M2v&m zRt<hoyC{#kYC2S>YZx5Qy5%HjY#ye9UAhZQhxg=AZ&1PoFw`dR9aVH&d$O}xIU#*f zy(tc*XM2ZBLf!+#2;JchqMZyG-BdSpq($8oaBsKdG{ma>u<3nCmuhcXB-p6oNJhAf zSeQ|1Btd5SnwFeS>Obt<8-qjp79xX`V^6|#wSqi*PC~zEewaPG8orIG2`N?=pBpJ} z4ih_KrhQ;;Lu*Z*WE5m*e*S-ZIM4Q-%-t94eBffG>CiyqH5Hk7*ooEyHJ-zfr1zoZ zLw&3<<u05_z=|7+GY%mEh0rDZH}GdK&A=Z_k*ywa0d^Q;*j=;QpG|OJ&K{W_m<oFd zr+MZeQMOVgCAV2Kf3de;^d@@T!-q;)4EAeRj-_}cy1h|6*^~@l$kR9t&pBEqMP@H< z>J1K5z^6mpIRL~yNe8t1$q!ig#kfoJyj0qwZz)W?%kavf6Mx#U<RAM%_R^%RTJF~C zTi*|+IYYyJw%Y)Fl%3hK$}&N@5}$yO_t2c8zk=6ZeRTZMp0|gvH=M}KaE~ZdQrW@a zK8b%!x`Qb<IGIvCY0Rr|hz1SwNA9s~dLx<*^kr`#8<D>eO$d-@?VN6iM#xfHUwO0$ zVI!4-&vyk6Jc=zuZwR!kx~~WdeB{*m<OxUN3x~0Q0WGImNU*)OSJWx&V}U`hxBnIO ziWpD<Gx4()n(-)^9kXHnno&`7T`#GgX(TJrob5y=;;iLU2sj!vEukzB++%^@ohmE+ z&8!}qh25bNF>4Eyy*7mif4wiQidoi7{DPimPv=j*+l0;0<#n1}qwtT|jA0m^!sm3j z+!eaXjajwq%4??I1~Z?B9me5fwjX#Mubhpipp*{d$-J-o71r;}t|#G=!mI^ep|e38 zvLWp1G}wRwxCGqoj6wjc`oreGSnjquwPw=r;%j|<y_B+8p!GQN0T{GU`=)8z=TtA? zPecJp_fDoGF5BkoW6uaJp$R3Z!S|44EB~pr430&6Nq@{Dj{K1peA1;JjhUM1mm*fF zKq0(6kqo_8Sa;WMze}^ap2^47T+$(d9WzB4HMnf0Jgvq~r@h!YXb62N;aGNE<(p$E z^AjDoOZ~)3-X1M>QgIOm+jQ*o>u42!SDBi0xGM9}(DM$f7OB9mQ?#LcahTXYC}7k# z+hT<wa2eI4SNa3%8J>6Tg55d-#VoSn?ZTKhA_Q+%z_9=ah)8bcounn5mM5UskjT`c zvjYPB1b;uFgzMNk&XP{MhahE&Ql0DZKr)|%`<T5Fj|k45=-eeeqVX1}1uj><rDHj! zBI^FfORNAtEcehfPG(Qhecat{${$y(o8=B}w{4Q12>#gPwl-ke8ekx$H&810KMwMA z5Qsu1lWGArIXx&xMXo|i4_yJYR^uyj{PNwax9^W154<1$vU$79VWzzd9kk7l@>|j$ z8(kHklwJ_#&W`7vC=$#m2uu_wo5#bQlcD{zu?L37M>}0<Qpw#eA0yh#{-Ccn?kt*Y zW`9r%wt)5<)hyP_6xDm%??TdXPB~fW4O8PsiaKaw?niVBhyY6pQXYW`C43jhx0(x$ z0QX#I;|0PY+I%6>u<m=Ci0K8ajiKD8GOXW8I$}IzKygdjle-$Z`HQOxbjr;xOtY{X z+bnLOp-duo^C526JRrDacM8!c<$2ZL7Fg=rXDjX$0(?Qr!7VrC>h_1q@&(k7c3?vD z;@qvq&$z$MaO?*jI+~<2V@oesezVv)j?mLMrkxB#UiKe`-v+lRb}wS-D2if{krF&U zv>hP%me23eDKFyjZ8O7L16R$H^VehYB@XpAY;~llAkPTlp6K_$)M4S#ml#b!9b8j4 zV%cFyPHs4_JHj<M5wykKWv>{h0KuS~Z2LcH_E2E{l_rUQ)*SJ1rilGo(mf`KyUY*w zG(GHz*V#WcK`KFxvWvZg?la5KgY7OQZlu6fXrI=Pew6xlGPF6#>^uJ&edxbK@mUn> z>jF6-+}8c6yZ=-zN=%C-`M7l)T-m8|LNhK|Ftg!lXBE)>$|Tovw~-S|@>AZK%H|mJ zFSVes7}tiPk86{j0%35F1}E;ez{Ua%RW9aT?Z%wgnJZqR?s6=y*ZE{j5z1Ltuj^IW zA~vx*uS0S;0L=7PqU=fuEkGPVbrdFTqOfWfGOMn}eE2rcp|7{pvzeR0M-Ow72oZhZ z&E)LXY6At<$3Qwfe3(l&1D3WD=D+BF4!}PQ05sJQ;32=PFD@&m&e)qDzFyuF$zC^< zj<IVvi+Mj>0>IQ^Rn@^UYeb7$=ym1AV$#gv+%U`59L+}ai#Z0ipH(KRT_M@nddI40 z4cl1lqOMzmiTF$txS^6%-c0N4ma~nc_wsz=?O2>uJQZAQ<GD=~14eot8j4sgN4^L1 zm(^-}zFYY_w+2}OZ<R#rZC54v5}M0~)eJj*5|R<<yUoKKN1K2wgj^NyE|U&^Ls6## z)X<M>ocGg@1Ku>Upg43Z$}#T9QpgR4yoL!UT$kG*jmgxNXHI84ibi#K>Mk-b+C<J8 zUA$7;tW9{1mm$P9Fk2yQ!pq1ziLUr#O1Jsu^EcuFYrLYUL2ge!qV=3h-bQc8l{3y% z_bAFBiZnD{m^6m=o}a_9Qzk5aa!mr}iK^4_3JqY0Kwaj%`6(xR-+9h!Q}YJcKvIr? za=5E9J&nkj8t=|UBSl7tB>3)@aNY5=o`-ciat@!Fbk09gV7rEByt5vZJZZmH0bUhs zV5T*)#U=5ZH9l&n#J+dIfXK~Fd2$bUR}N=8_c}OzB<EorOyVsl<72&tDj_CGVb6lb zGgBULo?}(IPA7pS<oJQdx_(k|B_CUB<Xm=iZe>i6)9mk)p8?327RIb9Ap?;+bJFM^ zQfZ8wgT~A^Va?7zWY2t}agBHMdYnDVyqcWZEPLwnhX@x56i8H9MsGaBt-cQUeh<X& z!?7X|{}{(JO-e#hPc2xcGiZ<A@g+jGn)O}kcu%ZLE4xR+Ql36P#b6&1X8m2<BPD1g z(&*y@5a)tp%Kmorp{5A=>z`!=Kh|!)AYUPYqreR=MVMdD#qbkmU1eVM+Tnl7eRSVF zP&Ysj?qsYHd_0@sUs!NweCm7U6$42|eddibj*c-c9RUK7e>SExz=!vv6L(2-cv1yr zH3V_Qlx5rtI&lY#23MAq%DFg%6cJ7Fp-U_bI;*-;Hu;GeDbTJ<(-U9EsPYIIcrllt za~qgeCvgHBJ(AV8hlVtdfAG*H=?G7=_V}mdg~uPK#(v#!zjMl1LB8S=`Cu-BBxL&I zWKa70%pIBjR2~l;V86U8DP_}8?kI7L&n5^aJ-)8UG(+>uHdU3}QwYkpGPr@7)A<%< zL9bji#$}&Tn&E~V+wC<)!J^DWPt9C6@*nO+a^GZY5QU`r6NfjL7+(-UnO~`|QHbPE zHBSq|Ld~UQGg=IMHwT<19|>eVWQC^UQg#7=HWUMt%4I^4UDqXuv}Yz>5jZBpv|yg$ zYPA{)N<B9bB{ZfTk+Y5HEu+HOTy7F$Ut#kU6cZ##To<}A5fyXfy~e|`3FEXHfeh<B zDj>}Q9(O$|7I<v7x4M9^<Xkn|8>N33yOc*1cVa37a#8qY^`Y3cq<qFf*B~_D?<E$z zD=wSPtB@X!YBq-qvi2(`C{y&f!mB516>p8$JzAwg3D*)|@nkA|Z!#y6xC%x;QRb8b zS8Y%V-J$k|0-4M9)}?r*ng_@U7F?Y5d!=`hZimz{*T-_`O+ke<o?i^6VDKW3py61n zxOxCJSJTKfq^X^YVop`IGM%2_9u<L~CMp8ouR3KIkV?;l&1qx$s&r@M)zUT`{)>Js zb=8IVkS?9U5#4@PN&S%QL6wN?awxFX_dZm&TUQyTJB!J&!uTMyHk+a?db`wI&4zTB z<q~dH98Ye+sumWqg%gLS#oH9!F5h!5JQ_mB#5LPrV@CWcP4Fyfj_AT#dAZ(1yE*XA z(vuSFm3_t~>1ORt@&&veRvkWgicyL)yX$s0Y$iR*y}DeI3kSJhMIEE9)!Cf(9<&`+ zAGYEV2hRKcVd4IoI(UwQy1Y7noX$M3AMAm9kjvgvar8JM>=m4Tc2)slfmdj^u`lp1 z6bMWv$AJf|j$BxuBhmi~2Duv7!x?NsTbo*n6bV;r4$N5tQME4AJ$6`f!S0R@k8dbP z;b5S<e-z~4)>bPr@&;#Zt)Gsd`;o#%)`~rx4zjn>1~;pRL!i7H)Lk=Kcwv^++3q4A zePh0KHY5c)RFk075oOv~-3r(lP~(}gzH_2-4yvaY0NztT(r6_r5G0CAOB?)#e8li` zOc=nQI>8Y=!On-Az!34#&p6@UV?1S)bC)%kKTbK!+`~VI-HH4G$#IJOsr=8oW@r#x z<=_yhfbu*(MRk&)48^Z1952ktcjF1XZ;~f9h26fVw?^{iN>Veb%0n4wWcdl5HEKkG z%|%HZlj7v(lN0=Re*C`p`pxG@r<3geW>1=5{_>ZT?0-=*iC_LQW)CRi#5w0eQP<8} z0i&r}hoA20wwo^-Tig(PqHW_29?7pRhyOJ;Ks~hUkSLoX2@q^?SL|q=VZ_4GWgui# zedT8w+b?yp63^=}aG=x7NDGHgrg&zH>hS4(0uRkgX1d3x>y4OvJ(JV$pt>ognU1|~ z!sh1=Yxc(o@NIp8AVLW~EG&PAfdX?yN0rL)>N*>oJG{R&I~Ig{RGjr<JFvp5wRoW? zxq@b@CT~>cRN!t@)nt-;FKdvErP`UTTaE0X)Oj_}0U-OF(oVU1^FLn7-02BmC3|W@ z+gi}7COHZfB}^-X+Pc5LG%2<)kp^0hXb7uEXwU%Kl7uT(S5ZYNkdNr}&_Z<Yg67k# zo>%j!u6(U#=${~_MdiYRovJLD8XkGzJ;rCza@<i;TNTyLviw!gHf!=nAQLxRuN9CR z_==cGL<;0293(+G!a+>Y3Nv7544bVi?<Ul*Z0)pBn>0x+PdwZAuh7(B^bq?@O9Wg> z-X%igV%y}rg3slmt<M0bG4<NNrRev;0`{|6&-4;zhOvZWwL|`^Yl4e~PgQ3l6-#jm zi0|rR_&P`lpwm$ayA3*&{J;579Z9sw@6Do!<6#~w4oTyYokQ6cmVhAg(f=DM6|-@| z<dTC{bYpc(0T?^1u?ho=ar~6y+(5lT{E;{vV8(%StC7y@3eDq(sGS4G<;jx?+Gu<) zMf0P3FmJ{^_&kE@0Y+<Op={wD`f%ufM(cAT)#3O*P)YT8Ri8a(i|T)DZ;hs*05PuZ zAEP>PCRb0Z3TcrxxX3^{t2bJmD0%mJ!k-^~@#34W-phoe`6lM|70hdB{CMnRiLmkp zB^^5Bh%kGPu#|x|-YSeR`dU=c5>EiE2FWz2SkA{<M{E1ULOefXAy0RV0kiUcskJ_~ z#aNMVG;g5S*Poz9;6POzG(H*QzKl<8Ew31~twli%0+ga?QmKJ0*{%FDOhl5w-de>l z15e*F*{`@N#gx-Y4cDchX(zhDpp$!X;oa`6>w}{+b0_;3;zwW;FIOD-6pR|NzO?e8 zwAc=kn?epBO!c7+W$3kq$mw1W#HTRy1Zkwrx&JOcplib<fvByV9vvl*AdCP<9J{w2 zZ3}QeI4D9U(p6g?T!d6sVn`W00%?ZCduQzzW>E8NyyM;_c{SimOr{R9Jax7q{equU zE<mR~ILL^evyw-#)4DlqSdVhJw{XEJ6##ca-d6NCYb-=kL^l+PibKVlYvs<$K(V${ zzZ>ro;-Y{_hO5cbnW8eWN?hh<!o3k<K5n{a)%pV-Ra<w9CaSA!HzZXF*D&cLpw1)s z$0N`qFZmK<E*w80ZWvS*ZhM@&a5z7azo7%UW>z@C^jCbsKmIiT@u$%oH>T|KN4Qbu z@gsklfzJMl6LMwzQF;egdIxDnqoD7p-p;7d@SPhtv_1Ejjy=%935BSI%I0O+-qd0A zb&Qn<tOaU;rlGScJDzmeBh)}X!qf^zF2Ta70CSnW*lv}3*Fk34-+A`Z3U8#q+*a)j zY2Fl|_8IaJZOLAAs{7;DRgWXvuNS1UKC7%-YopgWX0c>$XFN9MfcxD-VPHeD`Q@9h zkH(Se3>)7EV9{;&=J3KcLE=$aZNSFK>cUUyc8u?PJH|tdno=MJWJMOi4FLIwu{R;c zM19BGT?=I74AWPr4*}!oL!a84YrrxNd1gAGh^*FxBORnaeg&V*k6yp{(^p5uH^)cs zisM)BkDd=soSNHq0)}1|RdyN0N>bRq=-KvPkptHx0oF_$!NM}}U$c?+0a9-odG#gT zfX%|Bj|q~HkL8hNwt)8~uQynx{AZbw;ko@AS7$a3;9BS-9R)j#h)yLNHLK;U>u*=p zD6{m%zS&i^QGws=kkpzeI-X|AUo@=fD1N*8QYkn%%3XI0+nh)rKZ-YqoHI#W+k~Mh z2FrQ{uK+|eS*~_1A5TNIjSeeJ)Uub^McHiAA;AaPw^F`gL0ZH!sX?w4Mq!_%a|RA8 zlVVpEZJZq^tahonyt>$+9@UM__;XXym~FEfo=YHRy+a+Pw+>%OF~N);-LyMS#}W8( zVTmwv>*#=_YS{T;W{_Y?d`l`*gL>0!X3O0cM}yx)C~+Do9*--V`XS$BMTKvfvTX)Z z7~nTrc`@P<Mg!5E>3uW{k1rU3Z$&ed6jsa><GXhEm~{6LKstOrc>%HcM=y?V8g`xP z8%eM%oxCfRm6cCSiVl|JcCBa`G0!L+WSF`Gnf?b#sOhL&1NNm--tGKddGnI~eoKE( zt^H00WEyF3IS8E}w`amtc%~(w2`v@rkQ6NQ;%KvcS1mrrbVKJJ#gwLde1ZaNA{K?f zLQ`n5&AIo<Z%?zCKsx#5>BRl<t5ZFe>-zib=`(qVGP6^(hp1T{oP+u790ZN(DtF*! z875+}-}mLk6#cbemw+`~ujsh}Jl-vOv9ac(-`8~wEbuw$X)%wBw<`d_un_r^4^N+c z`q?jk_3IbY%>MqTbipaAheykDdCGb(UOb*U44!==)77)s)EEQ)qs{B}9K`Kuoc#zs zbq;%+nQb3_<p_6=uQX;401&b-GOHBfMP)nN49<b!fX8UJT9LueFG9?7k+cY+EI1o~ z_XL*m6q9EJpfMXWRa@n5HSu;-D}$MQB#hCGfsJBElmHkq`BGn|$+*-8v>liq|6(d~ zAfp4@Ob--k&#Mi5j`ckPN{Gp;aI5H2=5;earZOO}-sB8WOUWDv;GIq)@qP;9g&N{u zSOBf7$lFop%QCgNqb3wHFi;=O8$&(=0K%7rmQwZVSrv|#9ti)4DdwLmj8&*+e?S*x zVjgwgA=bx<7cga?BPTDzD{5took%`@`^~$fuU`G>G3%hF`kSv_yvJ|0w?J1ueOB=4 zefn&;W&Djz4Wp7R80GC_zv<^M-oGHFdLR=ykc{C!C}RA7>g^Ylb69UzOvFur9J~QP zkb4~QCBaDwZ%k2J$&`mCfeA5-0~t&t&pT%hK@HBQT>poXkvuykosP|nmt;k_>C@Ao z1pJKRmIj_|t0Hs3JvcQ{RS>}E&rT=$5W)=m<|nQ@?l0*VhuJf8L+;5n@8f_~_t~b~ zUR``F5R*P=zQbZ$`Gi?&!D_@FLCztVQeo}~rqYB!hH}LlL|R6+i)p6TR&E(M9ZK@J zCG!|@fG&03ci-U@hw@q(rKN9JlW_LE$)*C8X^zIT$M8Q&-DkFJijXH0x?z(vq58o~ z+^0!M{=sAgnr63BaR`3X+SgOB)4Zb+rT%9vTC^>Ep_}GgAdZVw*>&05{!(WI?Q#{^ z<EY~cm7$IF3c61w8jX#VV53gJy!N*?`!#=rI{X4(_M#9Szj81aoq%5!iflZ}Av2;K z?AQ8nstB(yTBJDiE08PVper?%5DFDVQ%J2gaULxB<diK+VpsAAsWA-e3&55#+~EKz z?NUvCiYbMXc$p`Rofb1!PbS&~NfQpN<!&h7`>`u;3K0v#bmpQZLCYzX9k{A)Wy(&e zrLJ612*=;kfoz^$BNQgW970+QJ-?R-ddD^Q);pN=J4rS1M>5ZPf@wmqG<$7xSS4-l zhEA1^#ASjhmgMP`9SkjMaJmQNPfM~tsRYpFhbBhJHx}r?fsRE~%#ag(E}b`50@}LV z?2yuNp_1i}Gdxs6B_tSXXw%%bNCvXtRwkF0C~nKQdOG09aNitM)H_obb6AC-&U4#H z6gur|pfmB>8zPA~Mrph%u2)x~;6n1iO*L*SA*LIUI-aLrv%$k9{RK`d)?XylL)Kw{ zkIFbI+v|`BSPhrJ8KI!>tu5))H@n4Uc8SSq_)<yrPN&bixg@vl#Lyl(7=%wuL+!jO zAYDqm<W!+S_CH#xhwThd8l^=bpjSh#LA2cc{<f{8JMx|*DLJLw@uzCyzF2Po#O|Ns zO@CZU9MNd%KapuoAwN;L>++`95&ZU2hejn#!`3EJz}H#D5f1x^IsUj%hdonvF%Kcx z9|(NF9~1nbO4{I0D$m!xNvaM09O)d@e_L<++dDUUaB2S2n&62BYOJcW;xl-z(2E#3 z`q-g51`_EgJdN)!mdosW{P=s9qE~TmfSwxLu`YoSW1rd%M<2O68`I}KF-wMPYuc#S zK~^pn&2Gc0l<|BlIezL*=qoWi)*+cTK>T0aEQ1F)6_1a%yh?>o#V>UbG!-@0G%?8% z2B)Pnm8cr;@kvqyVPy_eGI#AiPA07bL3uHeQHwR<fdA}b<2C8J_Bud`n*<Jw8|Gj^ zSkcKQSw#>q2h`I|5t#tis;(-ZFHm_~MDK8d@D;~fi7C5W_0C;{P#pio49?_75^OV$ zvtg#;4~J&_*eJ%=>(CQGVyZ?{QywpiT^q&pyLP^`r+;i_x~<Y#_|5k2am+$_Gs8~% zoI;G?2~e!i`K}^@9m$^I2Z9FwNxk;a$i)hn)sRrKMP;!fuO}>!?ulA^>{iYclY-TB zJpnVqHvR#dR)8=^vuV8u3ghB;>zEx>+7`uDVWvrzrLVdO^D^2;4S+GEht>#w;>J_i zz=4s!qs3M`7~aDEjtflBz*;bL7WR__5uok!?J4IW4_0eCqOu0~3A!lNO|aqz5BS0M zd{T~&-hcD<{hK#m9T&%cJ1&s$7w?Z=e);;<e}8jCE@S1*nACy5DHB?W?k_|p7<vHj zjDI1S2xyNB%vCtx?blWpJIq~JeIR!VB&c+UF{Z$S;K%r{OHMOEz_<!`H}^)MLh@v* z-Ylxz1BKh$S1o2Q>D!nY@Y)*xLVqs!a&joc9}YjAKb?O@#0-CbHh)UN)oj4XWTd&) z8o>lid{lB;R;y=}?&Zz|)8$ybopQ-c(X?RvHqWW5JI?CFrBKDQ=hxztlb|av(@n2b zx(u0Mau{Cm>f3kZ`4Vmn41(?W3#{~9T~D*Z=IL6H=a3LhlLYQP#R;Ps1_O;SD>>Is z0nw(KXWvS^Qr)8>T%w$o4aX02hNQf@CKVw312XI<Sw4~!PpBcZ`!TV*l}b~JzcW=% zCn*iE^Nace%3M?k7KQJOS_$7rfWFV@orTY+N)q+b-%5})dYrMi+rTm6RbJhy9GP6z zTCp2B*RCRP6a>tFPv+u9Bc!45r*FfWNM(h2R;ZMbcv(<FmowBX$to~D=YgYkxarQ8 zjU14Tck>dPU>Rq)go{fVr8DVE0XTs}VH>lE!mV3WQaFjU#}tj_vsL6dbY`P|mM%bQ zb;~vsN^e<aQZ6pqDTaV$s$>w!ibX|?Tqgo`-mGX>+U&YsaF&B|o_)z;A1xS;$}CDY zX<goOj1#Ae<=alsFyfAb@-kHWA&emV>z;*ktdZo8g?-{sG6Gb!a>~hSrS?qGokwU7 z_rfTAv=7S$*hA&F9S_!SGN4Gkq|D}-L<V<rOniv=SXppwMJKV4-4SF=pv06Wv#QSV zD1jO;F}YB6OR-t!Wxc|!LZIIM@E-2jqj`3OM-M~|z~ITG_rs8O-pLN*$d-0M?VEuQ zxWXb?I9ZVKkWD&ZS?9JA_YQT;1eLUIJnw((s?J<}3U!80Z{Uf&uzsuAjG+-%v?Pt) z5|cm<-mY<{PsRBQ37)W*CT-3!-ay<LJ5!6QwCBwZfWqCF@(to_jYtFxN>G?*nT;_V zm69Z~zUH#R(;t&Be7yscFj~-VH@0otwr$(CZQHhO+qP}n<~uVvl}c6erS82yqHA~W zUcDZv(6G(yvfCXt#2YwKN0-qb{V(2XcBLHHHew+|k~X?xPl@`Ird{hx8&<vAoa$A- z5d+MuC*t8WNS0^R83Sd-CWYiH$b2#8@Vlmz8P%7@8K(~g5)){Kw(hDl<>ZD;;bXOz zn#t7K#oeXTvl1Rz+|@!cThcvj$ivTy&?9?~s)q?3C{^nYpYTpwYbsFs(K^YS(;9W` zDOo8nl#ld0xz0D&>FoxU@DXNc_^EMupZju-WYK0~5FkV2b~ZZyvpiTNiFD3vCErW% z0bAzItpl}VF2<yzK5o%%7+OZ4Y~2AywWpdRFX@+n#bJ1Fm9=ccfU`&T3_~hXs&<W) zCw(^d6pYf+@F<EE*wI-p!Ck;np%F%&{&v<F)owWnG~Usb^&}uEupoBVIm(L7=_Q`` zwmj%UAXoS66LJ7^L&ZcL>4bSPF9ErihS1m6*^#benHdgqmqVi#^iuEXx$=PL+)S}l z-NHFsOhOBB9mw<dWRQy<s>rgtjSP5t=!CTEs7!cv?XxYE^ii4pC6Kqhf@jV!f@Wq! z{saydpbJolJ%G6GGxKS|<Piy;dg+WiC}nBrrLOP7eMLW?$J$4lFsjV<g8D;7c!rw2 zkgQ{!Km>MPv&muGEeW$eIPzKZ<Pj0TQ;ERMYt!L#ar43P;69a@><i$C?qNI*ijY)X zUQZx6F85jI&tt_mbE9C_IRgHBt}vN_Is>L*8v1i}=YzVj>n7om^m`Dr7J$p7Jl#jE zclT&y<b(H*nk4I_mSS9V3SpWg1_o#DN8`=)-dRI;wHJ<OV~e2OK<&-eAJbE?R0U@g z&I>-LyC1w;9G7a+Xy=Sr&2iW6%HD(<Z5GIJ!o#IYD~2#sQ28bbih%ed7>b)*eOhkT zxrBLJS|*C1V-8=DuTIZcKF~qb;8n>x=Y<fZ<z2^l`k&2a@MA1i%J!qWm3G)NzXp~n zYneA75HU#sew$n4>2(~t<j%_;a<$J6manIYSN#xbG<s+bP!b@|1xGFt64{!HoD_gu z4xNeZlp`G|sy$2?%A<zzYVHCaB;~UbgL-%L^sE2$lHhyGqiS8)eYa2vVwz_8E0q=C zvjC~@y?5uE+@57Bk&(ch--Kby+)h|_R~BBXMpCoRpfO3s$eu|q0WOaASvKC9ZeHq$ zsCjeE=^)_t5T~ZXI*<6nPJ*b@FFPwSJPr@Ro?;KZZP^{+DpW*~@+R!>0ldSzOfiWv zbA01Hw;bvi(V-p%(l@#~w8N6StX%|vJ0v8ONxne9wn4${19t}<D)39K1KaIYE8cSu zfiK<lZFJkx>VSXYE$)Hrm>GsM+$(!>s2n~F3kxz+z+N$njOtJoE4->Qnn=)-t%?w+ z(`bxye5p`4cPG4#a~wU1`#Q_68pD=YAfK;qpF0Fg^;OnA0NgHxV>#GVV;~-xq@Q}` zH0!UZI_bDg7<e67OGHME=35C+5W70cpj7c9nhOY#{6RbsLN1Fn4M$QkK2V+9jI_p6 zsVcc+CV`1)zF{=}Qk#JvsqPJ%yP=(l=or<rrqdeopeZ>_buLN<A)FjyO6enDm{c{b z3r*tD8#u1pOh7ueh4443?2F6ILTKrHi4p-`%>tr7OBA_tW-qOUj5#=A*%<g3)03=6 z3Zh-9cH1^-LRvg-wOaYAD9}-)juE#{Eku0vU=9rR!LG+f{ry9jxJmRtp9PKU@Hp{p zgQNA^Ys|T4*|l!MP=(&;gMz${%U*S6AChk`DL%5B6Jv5Ih5!8vnd_GG;EVsx9W+p= z6Qke>>{c?I-4b@5e@6U+^-UEpNefMh{{XmyD-2snkvSGaqHi(qmf!hco|Q=(r}8&} z;52uYbW+3Alc~mN;37!RWuc!(OqiV7%6e%No?i?(rJdD!G^q)S^-fe~PhQY=E~`N) z)=^IBkF1sKG4NT8{L7@a3P$#<ZPk>^VTb30mj7tVQ7x2Pn`#Cyngi<D<K#N2^s;<4 zbgN)W{6PpHQ)llRqk8SY;hu4=QsE+zOkxrPYXNXH1VCIz-EsGJ{?p8wm7l);%s<<F zL#x&?%elFv1Jx`b8xq$ZEI!v>(sDe2VJmNuiO$P-dBbtjmp@c|>-7C7HJAM?H0Y<B zXf~MY0#&LlP>XV`zpLpvb|#DA;BH%qq%d$?Yck$*^ny`061wqeycj)=r(MZ`LNL7L zN~N30pAikEY*QQCGD9_bzJXRgGSdvi=p;gM?-5fc4aj9T`%H1!H8*5Vf4>G|aC8qV z>lt@wE1d#<`+xAlx06l4pD4;O17x#@LHm5augzw1$_#)fn2fj8+hg<e{@U-qAN6gB zjNu^rO~U(&$+dP~ar~nD*h|BQJ`%rVzxhMd1_9!7+&hkp^D&sQGD|z#{BXiT8U3hu zUlAJM*Jn)zybPxtMR5?q1&vVgf{-EV1dy2Wqql2M9|mV2>uEJux&>T?j-?-vLC4cG z-k%TG1Gb`<_cu2IOj}XluD_wY;Z-r}{#spCUXG4vk4QL!XgL;)<|gFf4El@6%WJ^t zgrWQ5uMQ*M8p9oI!<WS<n^5sZ+=AwOdIkWFYTc63q95aKZOPQSCgvDk*pMiNrij(2 zyhmk1BTycCc(^-C#X6~_r*v8?mj7_|P_tS<tW;kT?I|bmdiqij!(86G;oYai+3BAH zf$N`At9>{;^c~bTt!Ff7X97>O$5VDQaaJq=Yy^5nK`F(9XH^vAC%5j~vy3IsG;-3K zN|hXiDehHr0rtLcOrup`wT6x8e~(sJsro_F8H(@zXTQv#<>x=Bl@yf8<fW_vW)UgR zVpp>HXZ!Aghwd}Wy%jaJ(-*D2n=@J&3jAHYqBCTtr&nx9uy7zDy{4wUjSn04VfMwU z&0E=*!HmJpc$!HQ#YKLq`i1Gku&PEj6IdIBUr9`)=PZvM<Agj*c{d+s$}Iz*p1l>8 zh-Cq|P7m4J*nNo&Mtf^s$N@*O==d(>5$IImRe&p^ju+?-c@vK-3~HT_>mF*h0ya=Z zp~gh@{jx}5A}^7_L+6S2<V8592{J%-gq;2t-aH&1&&~L_{}|!td+%dC+pgu9>P~Ue zZU1$`kN2B{{0oL`!tA}uI6axSW$DEs5kLNQBpIVY<uE|j@dgekiQZf%>60XCd_LA5 zc!5U==AGT!w=3@9ZJMQHnqI$|T0beUM&HmqtCJ~2cIF=k*|UC%HNhMym2jKYbjxv1 z*R;DmGIe`^e#*?jNF33o=k{W8cDi*>D9eo0;KwQMHDvat()-oUH>;hF#!?o|vFFTq z$?O-kk2Cew>&4v2DIhDRJe)LuZ+;x4A8X>w?)w<81Kgq6hJM0r&VJtKu1d0o=1zpC zY$?c=$GfggT<8aFM7}-25QxWbwV-yK!hD<9&5Z<*xa7;DU6T&U$Oo8MhCnYB(Wdhh z^Br+?W`UU8Pv*^9sebSdNG0fZ*8~oV=_qtb7ofw>PyIQr(ih2#G%Kmd0X&nH_H$>B zlOGg=Gz_A2%DtJ=ejx+kROX~v{ervGb^u}-yn2|Tfl)8KFA1zK_<D5i$M8;ipk9G1 zc&<`}F@T<22BINOM-~hVHs?nBww*nD!KPP^painYw)<yU@ZWZe#dr=98Th7ju84b% zlEQ0=Y$CIdXbm|+6PSJ!-edmul~}H=aZp`n94IdDhZ%nY)k}20N(3H!^UrKSqUyjZ zZ<ShxI9|WeF2jcbA2d|FogfeT%n6umTjeQ0yOILi>vse@)@D};y9Cn_C4e#&K{1&q zsJ0T&3*nf{Au$TZ3-}l>C)wjCr`TJ<%=rE#-KRG`@adEqJ=l<L7~1<Uku7QsJ_5g+ zSQd4(WZOI`7>f%qUw3uQX%>oahqW)nK2e}+dYp<v`$Z<DGlU{krK6-|G>Ak}+%rXX zLD;W=WnWtEV-K5Btd{Tir(tiFYTc_-2rLFwQ@5)rcXFli>P-fYSsx{i4g8s<6iP(_ z$O)vx{|)+9EU&*1+f%XUXIno`@2~XZYLvZR-_P>}P9(Sz*I@tm@P~2%so{(R_{-IT zIW`s+PS3uC<4sZB$50YebX1nqaD0UmNyETA)#6Ku_;c<E#3SpoyWB0fZ+~Ci(90)i zXJWZ~f!v#!$*=>&Hg5=fG#am=?5oU;PF<!)`mpQ_QpG6XUvK6Lu6VilJG(^fJ&0lW z1P5m?a>q;vLa={7xY@@`uwt-FPwFAD_DtWtYPMd=)6QTblL-$6JA9+DdBu#LD*gv3 z<^cL+N)6T-&jyS43xxW8g_KLCL%58dNwZHf(@s5L)m}40V*s)79u5WDY6)BO01Afc zP68&$oO-TFF2%<BGMv$Xp}Jdi*IcP0mCr_slh5x-N)*^UU&hw}FkseU$RZDtI-)#^ zce(g>_2Xrd^5RiR5%927K50AO%u7XCj{1b?h8&82kfVrT%5+ZOK?hvB>s`ae^{43e zP1~ok(fgS3j%HYR5||HyqW&Eox(!8l(EcO?-L_aIAy>;q^RO&~21IbhD`Tbz8nC%= zFcbW|MYVp)-|yM1H<cU%o^SbCZ2brSgx?TsQ2}pAG3Kbh!w=}!MpN&fL<lc-y0L}F z)61ufDun9(jc)u6nEt>yz9V)|XT`Y%o_!)Gr5a~KVd-9m&c$FzB=GM@oPE(SK2E}| zk@p(Z^auAEZjxiHtYO9sANPJDoT$?9EdGZGdfM?k3&CWXG%}<#v-OqxW_gD45f#da z7`KK_W#AJ~3tzK)i)PApTubAHYLJ)w$-9K5)#{9m-v%42L|~g2Q0nfc%f+UV#QSL7 z7!rl<z<%LT>PoL8W7!%#s?W>Ohdnc86a%-{&+qQOSq>;n#s-dlvLv@}#<FhdzJ!v~ z;wlj!MWl!*e3hZcUDUPtrucf`C$44@TpsVwt^Lk!(`q_&Oal}1ma;}na?}zIgK*;{ zvUyo4FRg7qp{J=sf=9uT9`LR?1N62tJ*$CY_Ec1TP=c`PSRwk#9J!4IH~Z`b0V#M5 zKV2tU(^y4<2U`y<MuxVtQ19?Cfi&FWwMeU(R#}#D3r|d)!@hYSxQ$&oQ)ac9W1ZgA zk!AlmI4CRqKWI*{ih9`{{S*p1T~mZQSvu&P8B+A*Z5z0#YX)VxRp{~j_+eRaM}rR$ zmJY0Cjl&UyS@^}30KP2(d5{=T2nqpD1{4Ig-r6&PvS+uP`3w=CaH=H!-~D@qh|GWg z+0`)jRot^g7OLO}7(_da?ETK_{LJotMa+Xru%xK(WzpuE1Q0-xh2sJ45B)3Iz@9B7 z3^Kvbf^Ops@SUotC-bOW-aQ4Z86Kx#$yVc4VLyQNZ7H<S{3pft0mcK3j|&Jo@Bvl5 zMnx{2D>XqaK55?-M^z#_h~K7%3oZHZDkUGJaAJR*n8+cw0*%1HXt$}S=ndTjF|rpW z>;rVYUt*qO&dew|?QwxO$=yeYn_dc6P5$P99~PGKz~oQso->->KdZXx)WYX^<aEtG zcnbQX=o5%AJq(q!!aB3X_!=<XZLK55VPw67CRv;MovCc;#wnq;B9$TEyK5^IwZR6R z<6@1;1}T6dkbsH}{?ukh1ByV|<Q14GW5qA1yi1PW+f%|Y%f>hP0wmMZb41<vC3XF~ zYoUC=#+Y15bQz8V{y_$&pAC>?p~m)_)lq4+vf4w>CQ0I)$r%-~>9j?PxX*E`x}0)u zyFGJA!_%%3hTTM*_Te>&Hc6K(Ab=%-K~3V-+EZCKa0!t1lj*Od{mdZ>aphx}=UDug z@=VCc(s{*F)n|GSmR|d)2sLg&2pkcH=}jpYxLkaYtX4=0tJj)*-{<Yag{C(;EVD|! zfTURSPk(AP4p!^)qW0ePnulA%1wk;KjHBzCirMvaTBcN!ah-GN$A9oT_<rz5AFog$ z(p(%5jj8^E@(DX+gN%OuLFr!M4p038`XZ%!uUI_&zs^xgm`%d4XNqg$RpH1;Dm3|; z2iBjye!6jTPvPPP*7Ee|p^YQXpQ3yQx9XH6*y-GL^}=x`E<HqA>DSzy?Cfg{vvH^F zv38c#g}@h&btAqFnEtD9UWG)Dgwok^wm~I7tVFqZYLb!<_j$5tpeW!v8LUtbLU#sp zs&gh)h^I6F9N}4lGovW{45hGF8Cn#mZ!Bi#csdW>xuMbNVDIF}KZ@_)c71nxtQZ>w zWavAPNWoc@-b05;`H%>piwXZ{)sC$IoVBOQKC!X#kka%jVNv^!5z<Y2`>gUcXqm=f zDokLMJ>oeH%(t%2u9PVflUPBchYrKRBS1Wzwxf|j{x5gs+y%5dk8%~ani&BVm(?*` zR3-)&p5Z9m;)C8$RRBIW3h_Tk*t^t@fw-iodE2E)3}<TGpVyy_tUOt=xBbwOZ0Ydv zsF1~YfG_f(*enUZcF>#q8oQX4pd)wwC_@cuHcf@yM;GV*$B{H3ZxfDog3J<kR>Qev zm^yRpT>%(V;oANiTu!zDexizL{fBv>U)z&?>@RdO4!+d}nKAD84Nn~pMY_e<xdom< zIO4BNI`f9A>Zoe5CE+j0x4`7U<-yuCI~70o5=2Pe%5m^(r-2mM9bb(bd4*$!O&pUd zOR5)EQ)waGdJnFh7~3x79KK3H#^gMwOa}chBgM4#RZxU|)G!S;0@5V(eDkl+yJVJa zqPf?KoAk&9!%FEs-A?+S`-PuK67&;2qsy_gV<e1^`4t~5xdMy13|%%o{Rit++9_Hr z{mM}gz*+sD&(~~sae956Y7w=I20O>`L1I&+?R&V@$OoT^W7;B9C?(%H3y5yJxD8)! z!#8EYUFx6`Lzo_U9H(RB^wI}5kZ}IL;^mIsO$9HjVLaznn3A|^Y#013L%lk7yX}71 zZN;AP0S22LLCI=O-Rc5V7?Bk_W0c598UjFBVjNO?xAD`r<C9J2^nMSXDEzDnhf?Eu z%F6C@qC>FAj?zMRj?&kyY~9Cvzp<6Jo!27AEo{mfBfL#QL6iMj7GG$a6v^ZO=RtDi z#5e3e?^l!^iYmNlf<=YsRb64&I22xbyMyV|{?FNoUUB2jzflNiV6eF^m`Ht*x_C$p zos8V6URvmC*SuItKrTrwjAmW?1}Lg8H&P5y>;G;FUpF;zRkJx6<{$$s2L9I1C!m{K zsx!v-z<fk@7=RCxc2(mei6}M#ak|*pu<<1NZd!r^Pf<t_O_=x`EQsXJw?f3C{x~`R z8~1NuBUCnUjX@`YN3_F$r<#q$CgrNL!wur9r&Mn$nu5#oeWyTaDMx55`srjyrCsx! znE~-5L1EX7qKURcc+HkWQ<Xyg+gcTuR%Ozwf|`Jv9a@3~)#HnFJ@DerXq#0Fc}_@j zTyFdIGYuk~@itZzpX%w?9g+E%jfDmW_{IZY&_t`sI(CV$PgDn4ptiEIegHL=vq*CB z{!uV%ci*0mJn)d9L0T^z48WhPmDt7XEB=^DU&fqign7PI&z}{moF#Yzf4pP@9uT!o z8d>dBs94TDst7afEqo)ykekp?874fD<4k8f0MOrdX3agrU$1UtSN@1G<;J=HeBQ7h zL*CrGMwT9$2Hkf3=hWj-wx%M|N?^7cFGD{Oy|@=nCsH-D;|QGA)vrGr4xoWxJ`1{* zMelaq)Xhx3T~8X!;`d$R@g#dg`^IE>T!Zk}b~CEKBjRrxPf@V>NSEL%oh}S8@`7GQ zj6T~ff~F}IPNW)Ds|^eI<^P{v?dCSOb6*?)fOn(+ZS0<@x%q!u?f=`5-pcdsz0H=? z|6MPT`YcYBx@pqC-JSRD<GstHrN3RGpWL?X+`}X)gfx#biIjqCoBj851{eS!G3kc? zxg~-WFlb=LKo7%^DU)*3Cab<)D%IrGELqKySiRa)k@mW{*sNBTi&8lOz1lizw2kVD zN*Smt*8t7Z!gPJ*Ms83taaEP9T27WcxwzO=%g%xz2KZvCIEB;~X|%jzORhKcUjN`- zHL~La2|n3Yt8E&_!``1i%wn6GM&H1R6YQUj7_bm))9sn;c3qHvskBy2{KJ^z{?V-& zVyS6Y9TQ>hS8-demL+dx?oVU&e92~8U8J>{R=2SMsHvMKpjyznWOCDKvfwv11C>pS zta`VQ)wffBZL6g>ukD%aYTM}_a&t8Xm*}}T8@M!W)M_7c*)>pkM!>t%*r_+DQ?=KY z*+Ly15Ax4)Nlnt?pCvR>n_yuUWGdZhj}*I8S$1GMR0T^h;)<0YVz*G*XAcb(B(T1U zZufT?U6maf6hdz22>u!DFVL(mulN|zNu{Y)f0(VRi7VYX4I4q-9(*uq{gjvCT2MYX zjm(KRivDuBWb?HPXj4P{s{IZ9yeaTDt?1-O;OY6r1x32_Vyk7T)J8SMB?Qk{W_h^~ z50dJSvKLj}&v<hAN3BA`4wi_`a>`S0ME>tJioc)d?|Z#I0;c2rQNKN`#Kx}#ZlHGr z8p+g=R@8;#Qtv&Hq6z@QSBq0C?Xud$dqA-e83~Lztn%5Y6J!oz%aCcSWVcPOM#<=H z*TfnT?ev#g<aW_abIUBEq98A%T)kxq$X)q^BIyy%i+H7#qwe8?i=sXEz|A9hVwmKy zVB3-vdDX2Mp|&DDuScj#WV?e#IR~<$i^x9SBM?BPQbie!L9{xN(1&PySgXE?wE!7# zR&<R_YSI<cA>n`49W(|~n#A&nwe2e{Ko=5Yp@SnWQVGos<=K?-5c!4D)JPT0Er}b! z*bTSjG*P~BPQ>wOf1K)R37lvQu9=qyQ`m|b54w}M5LaY4MtOeTQo9dugs@y`+<6hQ zxjB#<pk>*dh;s3^YvRY4#QQaY{1(wh3P<|VQjdQbegmSFbfRrNy3@GJc$D!WTBK+y zjVlv_J_FSi<Ns-$EIwsp#@F#QZuTvm+^r>zCA+Sn*gg$7nBI*u*gSDOZJSh_{!A2O zx(<^q874q6{$5`+e0^#P;Gc@mmt{20GWjjYqOGVMgZcv_d(o^TK~7P3>a3f$Z@5OV zu+Wv%9tx+VGrMCvH3Nb~0o7w?pbo-OB}KcD4T7L#3)5}9$pFUlH|#}jI2rUgh!%)p zy&)B-M*QD!eT^&wOV*-~m`o_xiQ9{Vac<iy1cJDsH^tq}`F&yzfXlj^|6Uh%27TP+ z-3^MO7bEjNy^I!$E2tP`Cenb?o?JkNvagE*?L@<QelL=xvm8MdmWG@@Mt?D%!?o!l zH{-<;U>6qi#}d3YbkgCotV4kGS6zYgkSdH&u4-yftpcQXzNfvQ_Y^oppznSZ{#~>e zUo0H=&%N2E`SIqj<6?2@#DMr*k@||LW2c3Jfz56rvC;X-e}mowzW0C`!y_zOo0mdp z5u5VH9IM&(+L{6Fc-S#~eH)?Vp?&Vb6?Vvi>yERQ>*;6HSxAbOM&Zmf=pBv%wGFl2 ztb9mCg!FO=D&=F*#li{9oVC>AO!JDIW4>0LMDbKSR<Z)q=i%((4Qu`}w!j{GVLUA_ zPdkF(df@F^ZX`T>jBDgWAA`Rz#Bei^0AC`C-@GvtroVb?OnE~{2jcR?ANgCk$SW=M z-@q6Am)>%a{i>ID&0gSf{|v_h#c+2q@wq2<|C_G49E1;R$9@puhKeE#qibfQSw`&& z*6;VTt8PEv&*lFr^e-qkuix)`Q(YerH9mv<9O2$*MfLi2r?mRh2zrhR;R;p5^4mC$ zuJ$+9@85k{EjEO(`;CWGo83Wks`NPK^2H`W_!ctzlbl-9aapAq-RJM66{$1wCr;3n zo8(!xOM8MdMz1;1viFr7T1*z??sVqj$07+0S1JIP1^93D#K3rZ=f=vxT>!CWAakzd zlg1CuaE-ZFDeotZYEp>syv2%%R#4Zp`-w_md@)0eKvsnb3bAbb1~M)%5=o4OWAO2$ z$VD2+Tcprq%=g=+fwl$*KDU7leZDD`NeZSk)C{6$kcsK73yM9Gcl$O4K+1IQG2>qX zfMogyVO|c-pGObp9QksBgBJuiu}B%S;Rv@`QwFSY2L3y@x!Dt%*P#J&Q=0{s-Umsy zf1l;h$_|x+0xO_^jF&W;IENXakTcq>2+3i+B)*W9q2MRxP*{Y+Q6l9BGa@4c<8In6 zWyRuHmaUX=!E5UBq|2EBkO`;Y5it=b(UWE#^b!&Roh=sPv`K0NKd<N0Il2Gua=G%# zY#8$m0{kFix}_;J$Ojnj-zi-1ebWSiL?|Ch+OUYbK($r$wll~p4#nPJ+w_zzoh}Xi zOA-C7hwT^|>j<^wsZ*go<2D*wCp*%&!1uhH7x#CiLxspJ{?~1h@7_`Vk_?g^UXo)9 zyGciNe6QHk<2!2-#Etb0`+0-!;@Wys7B_=lSpkg8*8!ftOJ3j-K8d76RA*Nu1HAe{ z4<Zxdia8y3f<ok?UY$54B$<pY_6$lPhcXkqk!S+El<Eqph_4(J<)(4s5T!5_J4W-v zMgw&ju<T3=`U;G3c`Xd#UbYxomy~@CsqyR3fi0N*4w7IFxi%V68&L$Too>=Yk&*v| zoB1#twdBBE@V{W$!~D9_xT33+j72*EHdS?#BD>uStoA)wU4Y^((ZyEEiX1g1^b<s^ z`dgvN{5Fg&<Q?9%DMTuA%A6iC2_}C%6Wtx_3vmO9T9`$X56Cy*LmzE>z#mqHcx1=| zER(yKUftpU%v>LD(d+enA2+k;_If=Yes3lL5Vp2$jEEi+YaJBe@cs1Ffb`o3Br(Rr zZI~7M8nKw(W_%rU;37ictpmgxxdulgwIH#?lFxzkP-fAZdA8eVkaIQW-e-vhjmYX| zf_2iYy+O2U#2YX=XfqmZM%xENIfLrL^j5^(C|;$JU@oRcT;>|ohWKXMQW;!A2v;;; zary9<Wr{nwKWkNefU|Ac!tuf$avuw=-2~$0I1CNrj^P2s=-<jSUn^~e0#ChwcR|BF zr~psCOj}UnS2s5rvJ^De=Op^kTMdiYr@&*yS%fQxi$XFO3RtUz-!=lrmoD=rPrhV> zExz$dqTxyy2H<mQ*=SO5a~Vk96|Y$#Sz_@DM?FP5$>*4kOHgFZbdPX5S?}dX8o30k zao`4bItBfFbL-Q3NHN@&vbKd2L|@dP;!>E7FKi&w!8yX<`T#)BxX2(H8}s;O7||n$ z9%QXj2H?Wc#F;z|N)4lk6r*B^fGD!z*`n0S=Og3flPJp(Yos__M`)Arb6z2G<LJfb zOpw2S!4~Xq0W<&ll-=7dLgLhTPQ=b8*O<EV!09A-T#IcQe!Pg^0HMTmDv;2dlB9W- z0k|hB)qM@haR6@el8hOb$vxUHxR2F0O(Ts1eS+{+!o&n{E}a|s^o#mH_nUw*ESC$G zmyP1&%|Dy1MYvG+eLg=YKdaO0%{z|SMy+-Wi%+ti#BsQiX7$>X4BG%Bz^pvL3@=$b z+HD9PG=?RMlx={U*cno|oQ;gdcqs9a3MR$f0rKVtUp{l>OmO{#{WqjD_6L4M8qJf* z4LTWNPbCF`$n@GCStk5WBrPCyrowdbZD7EX+Wj^4?tpLKY_(ksTDCpuq#d#>t}W|t z-DD{<_8<WuGYdV;o?><^_H(}h2_va*Ttj0zn275Yv>7}~%63=|wzm=qWV~P&JGctp zFwZ3fs|K9Y&Hy9}<v=yNx{O*NH!oLJnc!jx6s1r--CaYe`@6C{&6U7N%=jN>)&RP? zoFI*GH>yc8hC`{Sp}9gS<*&wqw$(~Q8nz1~ef~3r(nu7Qlzj*w;IxkRijtS#wN-AL z<p%kWg!eNdyhd#ZVbDghHs@V<ZWLP&ZsNOJK|6IVBif!R_{cEect?ZNi8Ve^9VY?| zWX@_(ZD~$W3AtuW&|IqqonU4eXpJ%6D@J%|a0_do%5#>&$;M2Qpj-o17&4{zE((fS zM&RG~GB!fKZ{v2~>|s-{d8$WvFvM)CDJRk`g347xp*V>Jt-NO6LYWg|ZUjXc_Cl+m zVk5}42m<s@3|<fUfVz$5K}(Y31&EM)Q(4GHSHwsoF-61dfrJx97*}C&;5`+Pb4m_l z{s7kjqdAQv+qUz3x*TB|m@y-D@6H;o@=>Q*Y+!40K1#cENBE3c1;+Vqo}%$gCpHeZ z6x!j$TjVz<c{2o$U5Yg`9g-Q3bR{FOu8jw%b>kt6T<~U9Zt5J5#lCy+v#vUH=3%zY zTYPh6IBLj&Qws;TfQ*~WI#Q)#YYqjEC3!?~)c_lfBbFPrwNgQ;MA{(XvW~dDF@H~< zGXw+dSR_<UV`Ij@F7$-y(TE=J5g`k>XL;T2o)<)I5uGzTOEsmA3K`nMiOOm$mWm8d z;r_#kaO5OiNjJjOQ0-jTKK&#g1o;hvTya#D6KCn6K3yPwIC-pauA3e-;(xgJhX;W= z`Eq_RY8(*l@%-6spV#Xt91TX-rYXIWsL(xRhh+omuwI2zF(1u_jcIOJNVEwDr?h(? zF>+xW8N3beHp4;^LzmAp1lJC=fMme~14#iQr3TV}Y8U5*c~OV~=7pPtWcwy~&pw!( z6yZVp`=u=Usl&qSkmLA!CYFereT!MGs=NHq4%ZMZr%3pnX1Ih;c4_;9em$_=)f0|b zAu4bh2T#)x%4Xp{7>T91HcRTM9&3p1qa;OYHmzhXi&|2FNz&~ut3@x}0Z4&BhtfF8 zG6(h$=p+c@Nr2i+uG-`0fiX^8EU=?6qGBOc$X0u;<$Yu{?P;XFSgi^5fV+le+)R3+ z4CG_!l-w@bqk4Qbub<QJ^LR#^QNj<>dIXCam{Wg->#?nJ8tIa&<$Nqo2mS{}j2VYi zc&Va(JLs?ReE{Y&02zh;T|}&rg8td`w-<y^yj~$c(2-Y_!fv_x2=TC9oTAi>_<4G2 z+vPksfCP~I4<#WY#m!P{G#Hi;K|SCZxbyO>9gEzZc;1zoG<C}|;=w+cJUK&g3@~Oy z-vLiXLz*xeAcPJ+Gy}ky2FL6we<OE1Uly_QxPKhR>kJ?u?j`-!b|f-*IzV%zOmCN& zLm@lX9ZzIiB%fEb97fLn^^`y9zE|$cdI6FeY59o+V4{C+{P2np(1X{+2W_KMJ0i)x zggKEG23&Xj=x|jb6VZTstw`AAmHlb&(~Ab5FJE(d_qkTfft;4~L3*JOFxpg7RR0SO zU#I-}zXsaHzza$%^ro%u`bs*Z$QV`jEovxY)Pa!Ag9vo1YzI^BbdN?DnBkF}Po_*^ z<8Hw0{%h<(qI#G1)4l*-7yMX{;s*|-2_o)5jN_Th4>!vg`{JEs4~<$M_t~GFe!Oi1 zU$#5k*pjU*JY0FyA%E8R?apK#=??yGI1rfFctG<u80zBn57hrAdf`QLD&0xkoX|L& z;ut+p3`68sCCrf_O@ZBjW)R{!86{Twh1vf@!Z(6!5&)!wqrt%TckUxU0A7#d?Q0sd zOC+Obj2kjX{mz#83*5_#fYhZ3Sd(9u_bL?wIo?gB{GQQpRzP0v!)FOFh&)xq^?<Om z(nG0NQd)3ajvR$SLDkP937WNi$sRM+K-Yg9RblQdf@gfMrU8lHdNBv{^NWFEm6#mJ zS`-I<C^fK7_S}MTDNQQI=!vcDhlMZCh3EoAmZJ&y9e8?k^G1X58Ms=9uC3a08BNte z0YlJ0WN}7-2!`bGv4C=HRR>Sx>BxzTX~9d?o9E*fxk>L`Oe#AtIEP%Sr~lgMxExo) z3#&_$-<}NbyT`#AP`k6zo+Cqj3mY6Y2_4hJ*L#Yguar=wxLlPZk0FZ&A9th4<oOiQ zrhxz%9Ln>^ew)_x`*CB;iWJN{S}fvmS{%_(*UZXQ=L$_?ovl{wphXII7D=HCkr|o% z<&R<7=Fufg2PK{O1W#fwM3EHRFbe$kWAH&I%`Y9XbTnERXj2Tg&!Mo#v`FnG%oi9D zFe~?3i=nJ$I9I|wK8bNkk0vsQ15_8b>B)R#nFI(5w3|#%j{c`Mvi+orhs+_ENrZ-r zS=NnqOATLZI{F=63%WfwcBh_sL3o4%=*bOi->tZRcgN!5)4D}+G4{xgA3N-&d*Zd5 zDBwYoWkVFkkte=yC#_UdGh>#}=OIfies#CT4RG$OG_Oz~PNnHj5r{Fu?M~j9n4&^k zg7rrX={~)ryW;0sG$zKO|Kw2@x57wo>m%%q6>sEy51s-r1W?ULL$bgtwgEeil`zP^ zF-vJ6K*@&iwb;LzBZ0mt{y(l83Hi<E_zZy)Z)$RXNPu41QKEiVnZ3i*!MEgax)Id$ zWK++)H*o>;-~4IQ1Qdv(F{@7Z(ik>%{`(4JRtS^9s6^}<>?Sh+O2DNsWS{+d3}q!i zW~sx)pEm^_zrG9om}V%m$qs&jxgR~MFr#W6dc^jYCN3`jq^!R?k=MGI5BZPjqaMC+ z=<5_e!1uK_s{*Tr1;n3DP99IM3#p52Y2yzyJR>1vjYjq|EXGx!e{8PoA{TNm(bY*8 znr^?Gjq+h8Sv*^j&=d)r85^-LewSpl+lj)oqgyu9YzZ?oxQnam-Gv^!@NN1(_RLc4 zP;{gQu7|cE?*Rm{EpYaShsw>RQEwFTDee^ReumJq&MqVZf|TJzE!~tdD>LG5*WBn? zHP^Y(ygD}$NOZ7V>rzG>bPaP&bDf6Hc#k;pJEaD5n|a*ul&1g88rugyNK<VE<$<kO z9xwTH0``V4KDsQh3I<1EPxiKm?rDmnKx(0fZCrtgA8z2|OIBsepSresVGROp&a_2) z$%s7>xmo8)Q}7yVIFYNvVyPvus~)TcGXoX9_8)oxv{1tk?y^T3AIuEi7RB7^s2+>@ z#KN6LN(!nWger<?UtIvSHQIh$eQZ1m>!zsMvmK33QFsG~s#tG~`h!JCH5Yu*m?njI zgyf9vA+FjkOhk6excGTghij(RB*Dc}dh;mpl0#_CS&0_)x5296b3dI%X7>Hen=LAk zNN^{l^4MqNea2P&1&qX*O}!`}gTq-`w86M|Q;#Ap)e8A1q2Sw|{%PiO|M|x`$K8^_ z_tyb&S=Zg89PasFwI?;Pe{B$nU)e3ns_HtOmwsP<*TKK2>B6nlbBaB@cQ`B3AxDOX zeP&)9M$;}4my>Bk$G1`q4E*BdU)6NH#ySPc!%}p!c-l!~;d8s5RRL!w8Dk!lN_mH% zrx6{pnkEEfG42hxhIp*9()j{;u*j<H-r23*iT96k*#?Xlq$ODIv#QXNp`P0(ULCI= z9A0bMnGyd}uGi>WWFB@i1T*nO?*Ssuue$r8!3@j9<0V#xKT~Pbz|>GqH1?1`mC$w# zUm=yoq92(y>94kr@hS?{UVbH5Lz}f-v9@@PW$8CS;vbGWVSOCQ{R21lhPN+Pt1y@G z%x`z$3jnx2qvdefH3i#~-bojk3+c!0yn>bQH>6AVuHe=*YdB=tIojeS?3#H5!t3*5 zStn;~<PTX8M9l(Gc#Y)>RYk<?R*5rqrr*F*cU5nsMCn6u6f$9wk98EO?wNW{tX`~L zaa7<QwC45Py23g*VO*aL8s>nkJf+N2uw9x8=Y4}HMpk;ky2A6V_51Js%hRv)yG4`d zwWav3lboWUvc<gK8;?%3PkBGt4Hh+hj5NS>I+|>GA-geD+{>M=q~Y8Rnns++YCfbV z5mnq6F_j+Nph6_K&hXu?XF<KOayB`mSH=P1cAYrdv#n8`@Ie#MIP|%*?)mciKPZOV z4NT62k*3^WC7Ev@50vPFH4ZIi>zdL}T|o)GmrW>FHEHR|3l^82t`4+C!Sb>%ZY~Q_ z{okYfF&`ugmB(I;q0%&CtKnk4U*QqL&nK68Ji^+oB9eWK0*JA8+CR8ayd2JDF$ZM2 zA<+!?m$l}u-Z%abHZgJ}-|Tyf;t%|O5tp2$fqh$+*nZ!)vvl+Q{?Ak0BD<<eJ8ZPI z*uTQ&o>U+IH<v2?UFWNtZzhLlu(C5i3XSh5GHc`K2}oTQEwqN+3Y>(w;7Rxhm<WlH zOGJ8<dMI-j{mlGcg*Q(EE`+n}i5D_FUVH_Y-)uK9qOB$O)evU^H09?d+=&CXU?gcv zA?6W2Ubo=&9_K9(ITMQ~usM{o<AR<%E~lrV`rP~-Ix^)RqGq1c>IV(M^2x{9YxZ-0 ze#PCo8{K?A@hc>6b6Pm-2Vcppr~-B~k~JP(1x<dpSOW#v`dL1!0ztwaMZ69-8+>J& z;JL_NGVSzFSbmR^)ofeHZ@9pVsz;{v)EO|4zdKiM3{2))L;NMR>CZF}2_^r2I3fhO zP0xBaFoT90fkkLt6_5yY;T<@%d_sRQI-rCqDqxl1)Oa20l@SIPSGj+Tnr>l;C}pij z391MEf6W#Y`6!v&V7+oIr%za}H><a2A07$ey!}d6qX;_nopeh%>(Hvkuiv;!9`)I> z$E-`q_<Y}QtDn{L@}ec=tM)EWwWM9~%^RKaF?^E0x5e&)o@*!Ey8PAkY#G%{SIAVL z3TNG&za$l6z}&&=$uA8sh-Wg4e?zQ%N^OJ1gZVLKCGA>)ymQmFjBLuPS1t+8dFHk_ zE5BCYX)Hy`gmwV-OJr@voemn`jxn&#Y2<6Mbxe;B{4+wn&`c-{cE-GlE0fquC+GF8 zsJO()`r#yhoF-uKP#jKUzQOvJM69mm*Yq0_f#@LnOz}T+aGc+<SirROer0j^bb&RI zbx~gbKET{Kdl5{*ZuLX?=Rti}S79Y87Nv`j(dS5dhQj(Fc+UnhtMgPzGT@CihBKKI zUiM0^>OvLoll9ws>g=R?tOTTf>q-OTR7ub=LDmrfj*JO<*B<6w>R+>46oH@~E?<r! z^|gYQgypB;*5uMFcl24T4i9Z5P|HAT&O^{d@)G1Bc1FLnAfu`4%(+&-w--vmc;^uW z(RT$CxW8vX(kVMg_&0n#bTPZY*`p&G2%Z}O4JxPS6LFZNv9i2@;bK7Io#|q^?ISG{ zcppC=an-5sP-VHb`vtIS*Dser=@(GlrwBeDfeRh!_i-~-IqM@0#9+IW`*81XLeD|G zmZkatWgR)(v5`dFVTCwJUrWKRyScO)1q=5IoUm(aogY|=F}Du^1CBA@;S<SyB!lu! zV!$I{tW9tTf@uT8V9V~p$wwHJX81^ysJZmY#fkS-$D{11AFs&?v4XXm6Z10bTkz0I zA~0w&1{WXF`n#tYs#x|6{v1^Bg%|rhRvA&rZ;Qp_36QjmSWI@5AA5b{276E{=qJ^4 z`Wfc^%0FI`9#L<h)%IA(^wBspk`-}2GwuD-bc5cRk?GZ_eID#S)Vg;&1HI8RMLXVQ zDW!nCMFNwSgM&)~waD_p*ZOdx@+%=6p1iU&$|sML+5FP|d3?+9{-#CtOR)eLP7#mk z3$4nbr!hK30z|(m({OkHjpWhXlFIvB<bLZR<!KuUt8~fPM|HK{V-k?E_$-KV%Tz67 zTX4}v<%p5}{r?u13WkU^<zN5+hDZPaxc}=w;Qu!ZI9Freewz)!Z(ZNf8K0!QZO29) z*1%?W4QO{*!38&g5CTN2$fgddGEoKRwtgR%R4V0`MfWE`is*CKy+59|wW<(dtW8aY z>{N@|R$wJ|3C-_yfB)h~TPrdQlu&lq`C9)yb?ft-cv)$p_winK)TYwqcAs3cv&xz* z8fB2Cn#uqy1?_v{o@J*kR<(*r@db#_qL4)cw5c{5u5Njq`lGj&-=)Bllp`<I03PSa zW*}OyDXV^f!lK0s0TkR2u#zA{WgO-A00(Z3?aZus6WZItUBq(P1$JAeiG3&|EqnI$ zdOdr>cz8|mb)}eMirNeY=3cU+qbCx;KYH{?emIbMIhLYg_9J2iJI&wByToS)rRT8e zfJuDz!Q_NMYuL36i#mmc9A;^AOS;1u{33m%ifYZ`+?9H9Ct}_WHGa`Us;FX=e7BI3 z#!(RFgmA_^`jm>pejyiCpWne2!FLv)b{)yo?HaHC!QdEEgFpqa8&1ZYroPv#!CF+6 z08Vn6)g0|d)hJ+O;NAOpbg#RgyM@pEi853^T{t&i>C;*T5<|joCX9geu}~Hq4RcA% zJ`HM+TJ0VxOi??P{Xw$b$4tb3;6#gM&BxH6o;#T{ibljPIbp0RJ|rj|gL4Q<Ez-ZU zT~J6vxMR`YtiHT0zWb6^bl8-F92z#9XQKBxwwJVdFlp0d(x#z=pY@40^q*H-I(xjg z=w|bR)F$Mie<E>oJb7bKioT}{9bCNPQ;Z2fEV|EO=Mp*jMS13c3U_tg<fd4<w0|Yq z)fxfWnvSAdgWmgq1(O$9<2Z1-uN&bX;Wb+Np$}8m^D99YTm{4y;Ojb#bp~%v7qtr@ z;wRd5FTn4H3ek91kFe4PR}`xlR}?b0BILGUEfkGXL_r*bW8ssd%GWcDjPc}}6P}p7 z1)?Z&@Vj><3;bX%EjUOMS+YtlKs474hwnmd$=2AyJa`>&4Waa5#I8u|8uxhT<>nIe zJiSp;>QUs)^(LB-vToGzq^-p5iX#0%Eql}1p8>VAEJB3{)^=fl;3__#Uoi!B1LY<& zyFLxf{>7Vg9#*7y;RR!I6At?$5w)Yvq>i&(7$(WAc5P=%>6l$UO?o-vTO+BtA7vj! zmdtiXrm^_3q}wU4<r3x=a?B4?JxsqsEEH=?q#qjw%Rk8dnhEQ;LZz7B?gH|u$sDIZ zD;A`Wb9OZ6UPsuT12kG8K$*bHAj3%D%s@O;h*tdS2ky{kPlWG6m;>L-ct!ks_}Vbe zP?)`XD;PH%eK!_P89^-MOF*hHJ@F?Y9$EjF5Z#2OQz;E+S0Hww&P=)hW;}bb#7Vdu zq6)kAEJsAwS!luHF@nP?wC~_vqB-U~YMO#HvytMY#!;w`0AT2Ir>0qpIL<;8zBfc! z-q4j6aIrH+I$?&GOm3))N1rOqApz=5U}V(OrHIEkRhKvyPNQ@Q`Y)Xhnfu|OfC`}* z;(9i38rW!ku}->lAjk4VIM(ZekyDpF^nX10OTs}7)0<38kH~&oE*I#ThaY;6Si~WU z*JBdfMzLP?ss9evj-UNF5`538Y6`hbx2CdC#jxO3ueY<^ODeLlI$cuDo6NoT#_|el z$jwEU*{e$WN^UwwpJrQ|>mivQ?!Lc0SuRlVhKJqR*O#GSL!4RMv-rq=Do-J$!dxp{ zTl@Uwr(^C^FrZwxBAa9Gm^8(hZF*wlSTg5f$s@L#OR{gv{t+8lZcgR=JC&Om^4`IZ z0Vij*wcu1Hg|X+{E`%wvp=B6VfUrCTHMzS=89B`4umJXyJ=W^T(y3?!<Um91W#1k> zHUeGoZ$Hiny0>%K0$bjsQlLl3bh6Z%W#*4S!x-O?{YO1!DQPU6FUo?qQah4q)iX~x z0u!gIkpXkH<5Jh5yf0@QRI_OgM*>Y1+NW)-?%qx)fbGeV0~h4C2O)Fbb{XBYosR^Z zg?53Z<I0|KbGMzP!+p#M<8Lt)#9u~c&QvHNeJPKmzgXyjsnOrQf&wSWQ-uRUgqdR} zq3_nR^~1|8H^d~<Qr7z3+{VA#cbR357{|KzIp<X_`)l4m{iqACt@{IrdNgZ{uc^#^ zzC~8AHZPqEZpuX=`#00qJ$O(MhpBhOIEE8lOMQK4dX1@h{7UHs*xug0urBvO*gLj! z9EO#0xTA}_Xy9U9&KCgj@`tm+tg9yKr@?qj*E98o=^|b!+D!06EeF=L35gQueW$nE zO-D5L$RYaq{;*W|DSzn7swMUZ_&?Dcou!IXYG43>YzP1Vvj5`?r~m&!bW+u1?Q<9q zdY`FjiXap;o#a!My)H|`)vijb641fcbQ==KNp^p~<{oU_lB;mk2K}DTV$VG#Ol7I1 zLhIbC1Piz3G{~`(%Ui6R^<c|Hg9Q~BaRy&=naxJ|v)fX;e5|#n(HfFL5AYHtwR2XW zVIs{u>LI=7%4<1&-Rqp8Exe|A1Ql42D1*hwv&q7{=2Giqdd{Z!;=K))H4XmDi}e~} z$axD{Au8Sg9(Nj5;4r2yVp8ishCm~-E(kD)paF!g<|>atlRxs;6pO<fJTp5GAo^sa zc|sOfW(6<uh*CmKeL=4CnVWfC$~R1cOXN2<MYW|WH!1!dn87DzSyf@>|CcpuE;f?# z7roe^q$2f~9q^U@o^>E4+(}^m>RBA8*d@~QTti3_dcE66HYo&1MZcBQ0=H>B#Wzj! zY;<FTGY1E;-cc-Kz^_npo_B+cxmRU8KV&RVnJ>om6KC1k$l2@xO>dAGl)hmSI2!pu zQ1l;dd3ON@N@6iQ%7A}bQc4AB%5Yu6ZQ38R^w{Tlsbp{zp1tSVi#^lo7=HUYYq#{} z6t!4Gu0^TZI-ww8c^o?uQlk%Ly92gF;rqrAzXv&QOxnDF)%7_CWOK;kaYIV3C_jAk z(!?m-j0n<SnfxKwW(e*lyvQ9vS+!0>kE%BoVz;TTR_sD6WVN4W?+vGOp_ZCI{f=RA zLwhoP8*88B^;MUOUe^5pm}r3ZDN|qbi06s6V@z>ZE;UwjX?r?(``sTm#i40Cv~JC` zut%46*0!2AzSg06#djgsaAgQr$D9<X14IQLZpm|mH01K%r4Y0Un|1=R!~QyVmP#xz zwL~~ZG(U<Mw{?~&0QErp4%3uNlAMSLDrBe-Tm4fIHy345_(i~iBsFeI&~2*HXlsip z@JlIU>IK%NMOk}h!D5UZ$@b$+2C$n#g%m2V@>$_Wx4^3_OM|7-LA2k&;rqXzZQ&OW zR`y9Z5}x8T&G7oETq8JH5XS@~w(Aj*it7v6?Jz<A(}v3U%p0x(zyb2xzzhArnh<0C z@%20D(WTr2F(EDZG}pi4-!jYP&PT}y^#56Ih%_tnG@t+g#P9$Bg#YJqv#~UybMQ=6 z*Z!}mMDcsCC%}P8(iYWt(;&DEXuV$EGQxaA0s*4M-PEB_BB<=Rs^8~aiEYVoK~5MT znt$b1k1SgqW3**A`Y`qGu8g(Ia4^VOTWWeNW9_<<N@u+8u=L<|R2k};gS32BVuw{% zr9(-Q(3EI2-(j*HF>KyUNzz7X+bMNHM7rOz#o*h%eG68LH14Uwn6e2CiCRs<r*Y0& z{iyN)rsyz}s=lu8<+eJVr+u>PNr194<4V;^c%?|k^O}9nO;GL1hIc*ZVeZDg6Hf+$ zQlu9dDpDKgvj&aU@v6f}C*RwiJcG$KC2b#&8;JXdiJ{ILY!8=$YQZqn_Kv4IK*|m2 z9y0=4_68TFsK=Grpsm9bKz*Q1$(>{|-}|5La^FAbI>rd6HW^7u{N=Ov15VZDDO)WL z8Z>Odwv*cn`ki6=af=Enf^7!MH9>(VnD7Vm(+ovu9X$i$Uw{g6nook?B2$##^fY-% zIYJ2{)a^2%7kTXznupAVR}2);;qQICKT7_6{}zE2vabk^l{B~{^mxS0iMgRR#bg=d z`*H$jc55{$NN70CE-le)KsRW5Txc?!4{?G?!1)wVYB#|Mwa|QiqB`(&(MRZlKhnHF zB0jCT3U5aA>d-Cmtulh6llUFkmJOPa<Ob(}wt*}8DdzL(LfZ~U{Qfdwdo2o`?32m( zUQ_tS!?<%t%WUt8e+!0{#~pGi1E%*eXgtAB6uMjrtO0ff+D4H8vfIfUG{o-iE@PxG z4Q$t<W)(^6+Gig2zwbPdN8boKCbr%<{^ap!D0y)j6E;oM_e8ybnzQa_tB3FuZ`(1c z6eZY)uj3sAx*)4rU|bSK9pd_zNcjVwAdMHC{}?LD!Di!cxbV;<-qqD5l|OxS45fNY z-FX(XWKKxv^yTxYpV!mjboUh}P%ThWjcHkV+(|sgH=XpM6kNSR6pwikI8LHzT_fMD zw5|V(uy^VbEn1ca%eJjuwr$(CZQI=C+GX3eZQHhOcAf5r9_Nnxbw8{>FxOf!BO@a- z+WC_))=g+;S<k(O*lWbSBbM{B_(L2y_j@n{i&!ABAwIICpl=2M1%&#{C}D;FAW%57 z>P<uh@f?2)9L#$Z<4|W<ri-Ir$^MIH)Tp216$+9L2>%S5TdVvHzU?B2?PBD|F@4Y@ zABv>8FM1qU8>pLE?B-7fM1jwi!jx>NUtCgTAfby5BIxj<=o^mbfqJoEY8nIc`W+#` z*<)ycSxQ3*k?%(p*?t~7PMTo!I8p?!Gy=nIJDN^Id7-x^Xf>2D=jYJl7`s-yrY3rB zwAvi*Vlw34GDpl)L|M!+RYI~JD`kj%Isz^`=nKZlyiMP(|6OC)m*smW+j9MWtYVx0 zYLc6ZT()SV#}16p!7?e7XW8Q%t)++--v~yXYDP|9YVY-r23%I3RD`VAu25d?`S~PD z;u7Nid3XY9c0>m4QxZq~$%Y2)B9^?IYVG7gS^cz+w?*q{MBJ|~BJ*b9EpSC79Oz8# z^1ytwyk0%7)-Kf2@Ebb75|m_5wRZFlz4gMm>c@4otq(KAcLBWrk#LS8K{^O0Mb_p$ z)#E!eb+m|=`aVd7$2u($$0kct$+WVc19c#1c8{>iAAPO>Jn4|kR=K^)56LEyhACa6 z5#}eD#uRkgHlxaT3SOhW9oOjSWQ4Sx1e;!vb4zh^6hzs>C+w$%{bsDGtR9iGo|pu* zE)+5+vxR0iTs@7xeB?po&4YjbK~d0J4f?8(;u{U~-k?c8YGg5U+R1t7DM#uL#Eq58 zo%~0Hg3>1$SDXoX2?^OU)hU0++y8*tTc7WOx?g5P2n7H@^8XFBPDYLv_Rdbfa2u^E z75iJmcVDPUqktqUsf^kL0C;VHtP1@F;5bA;0iuaEb|v|RTbE6}9n5n9g$~*CAOR=# z9q$KMBWL)gMqB6l27(U(Z161Ge{Zehe<feK<Xs4pT=Fj@wJ<r@q5A__>t)g*%K42N zH4yQWKj_-=xIPE_hk~0Y#&m5M_h95~EN0K=lraJ@Jcw|r9A7Cn-=H}apvfHhO~iss zXkb-kGprJbRmiB%hMk#?+h6ux835l4E#7klEEXc+Naymi2WF!WE82mYZ75U<_6!H< zbJO%R=ViI2qhZS=$VA9~h7{o^S4`15Oj!qWR@_lq7FB7!RmgSr0bXu3oY8`0n9952 zNvcnW`z*S~h@iY^%pNiY6D6#JXUE?hl4*HM0wS!7-JVD(hAzbj>=zc2sC%_c;i8$B z0~Vywh7EvL3apI7T!)12*+pZw736(CzXJ1P)heIREUVzGJj=W@+xl~h9Hn?AM6ID5 zaWOt*3hl`AMML89s4KcjAGY-)tE~&~BP#tcMPl$QY^b;*VPtwI^SL1-9oEd~3NxUa zohR)ADCS0Ha^}>pD^v*MxYu^L+}NY*D^ecu0vW#t%W;Acc>v?8?Wc{A4dK9(V`MWq zxesqsR54H}2py(nQ+^N+ki{B1<^L#{vIRUp>7(~0kDC-LCZs~eAJRD7bu~TZ3#Nmu z71)vUb>FLnt=}Ek{8Q?o&5w+aDIVb=$$LE>c;4Evo?t5-sa23)*gKzI^ma}Yt!YN< zmQuNh>@qQjcAs%-g-Ba-n=T0a`xkZ-(;(OKu=wafO%6DaNLiCZ;8MUJS6Bpegvkk< ztn7f<2cJ4xmlHng5Kw;8^;PT@H9e~s;wtjmW1ppimr3Y}I$D*-<!$0tE^I$|*@SRU zsc5RctzD8UPNzrp_ym-$B0>U995hiB8=?3}qh8-(>t1CzB)uU^aP>YaU-TbtYz+)s z4ZEA_bGA#Y!Ks*_Z}!ZC)wR7WV4IE8sY~=rnUs?|otCDfx?R-V{k@0)wrvJKp0^Z2 zN?mKUx~_XgL1&|1i|MhAa#jQs19mi_>Cr0m2MQ_0*9*D3v&q>(q39RH&1HRT#3Wb7 zb>^diCM(R{1`Hw;y5o(7mVFi4&usY2^Ua^ut$H0*slJJ9(#c?VnBX*C%<#>ze4ew3 z^&3g2BgBS_qb<IarT%Ay0ou4PjZ`5|i9Pt7g{^@y?Rt_MFN-CMNDc1`<a#2%SvNPg z+me@y)KBpLrdK+V6oPDk007QF0089w`#*1O;9_fJZsJH_V_<7xYU1Qf>uzHmoggO# z%z!X-^M%4da7w6SB_O%BH6J9{7X*%4!@#ux_F$GZR=s6sr?|1MNJ$!}y`AwkC3U~H zj<pP!@LauHum@|ln^@DRh4y*$CLqmTK%hes?IwSV7d|sCKpWB9oslilQxMp4T3o2A zPXbwi>Ur;iFuqYn%ylW6sd45Ei=qpkkpzsk(!HJ!gzkJA8$N%Gy>(_eOGR+cF4i;; zsBF%l*e!EC&5_xt@JkA>tvE}de2`W2)}!q_nnOAf0>1#3d7!EE>n);G8HMFVb2X(8 zA#$ojYZb(VNC%g3YKv;^n|{pn4{VsRAFACwgfmK18RSc|<=xhMkxIGKPSjj_VoZ=O z|2XTXN|^PL&}g6V0dQD7X%{g=>q-gLVteaRd^8wj;~E{W`5wRO)o&rE1lj%f;jf*J zGI{@UTSa650D}Mh@a;XASdHv#><yfMu{KLxEB1gH!{?@kzDiXl4;jy$Uz7QdYD47U zfFwkmJ3qN2atX`7;XYT>;!n?MGqUNf1rm50EPTI|gPY`Wr=mua@k+<4=}Yxe;D6tk zTOTE9%+1a9^b9`D7iE+=A<Ys)R~AuHOK+1Cl_6M~8da(mebIM4NZBS5q>j4i%bj`* z+80mjK7PqHZuQ1VsxyrLj^d9bd+f8e1Sk{7f~X6-W|fjxOe~8i+r0W=@s<mlodW}T zq?0aFB6;>MI$l5Ak5u_6RVgQgNog9$0R0#PvRYF@J*0-LC@Cu`Rn;(C3`=Ju0%X}W z!W+n|2&Q<@R%eRp0?oXNdlQqZy!)hm?6LNDTiMhPD`%vPh2w9yxnOUFk{NVSWF>)( z+NgsGsUYzdYJgasH!wPkdVJq+?;gm&rayJ8^{xQ)gR3f9+hOoD4K7<A@1ER4tV=Cv zeuqRTE5@Mq0YN+{Go?)xX{fl?uBxgNod<DgEBDWk`Tl}PJE7rPY8XqntkGBpKh!G- zVI#dT`vONT+%HcO;HN1x$p(-<bGPm%;&1@<{hjZn6N2Fda+uYYGVoMXXWz_Tp&n19 zKSDd}xAE*>Mg|fze^5DD!Pge5p44D=6X$wg!-G4}|D=u<(ERKL$%nc;;2lK@5s2#> z9}lzGjLovY**A_0h^QM?BTkEOUD2=FyeJ(X8g!9%GhcDY{pKW)vB$E5uz<rQ2zy7| z)=bL=otzXrCMk0mf}unNARUMO!YbBl^*a>Z#Ds#P$^rdD?DQd=mY<v{{NDIGbPyJn zR*oKvN*WVOe5U>O>rDEQjJPOA;#_x`_uUVV(Xd1CR)$WBkWlOt2GGIEE1ih1gyni5 z>wE1h%@@sL{@b-{cGpiAn#B&WUmB@dsCrf%190u$0sl9Htm@bw#_NSPPs$gqOQ%?n zBPP9Tt9W?67Vs<rH*pgI9W=h9`kA(9uoNZ?boI6*k~OEg=gQ}D4%5P;ltRT2-xE^f zRxNJVQ|(OBn96FD5l)zB%z_0~LH8OHil0!_Y)?G6to9Eb8I_m`@?-PIoQ90eZXReX zUFu$gMJCo!6bW)y&?&B7kS?mzpk-S8<`676jXPb5C#mA8XVHTwhe|5JxcS!nReryX zGxC6!scbndBYuUsp7P_$Wrm2+XVX@L%_keDx-iOhXtNSU_WHw6)b`{;XLrT7-A<Z~ zSbut#5wSZVuHYHIiO@%8f&mu>MmXM1+x%xMt|*^(i(tpC6(~&fOY}!}H(=Ddc1kGP zvn^*d7U7@$u&B0W*kSR_d^?!|ERSY`D+EEBCe~C)dSl#>D<OIw<sd}!R#r^acO_YW zFrJrf&r^QX5{3u8c#<h*TpO)b*Oqe&z}5NG&D1^SXR41z(%&Ue!?(%Iq+$iD878$V z*HI4ziW@yAQ)jVGLIteU`5N7}q{jqp8Ib09FtJ*s=?Kgn2E;tL3T`gxx%oF4GS|&C zpQZvM<lCh<&zd5uJX2+BiPpf2NkRIuR3<GLo?RT~NWL^lK?4`8oj#*qgjVO(jr*4) zk9XT730Njw%fgKOJxkC>Rs-dMY|hgy7>xVAx2$Ku(`-QG_^Lp$I<}$>W-N4mZT`0O z-Lt*?WNVQXS$5+MTE*t<5}syrw6ELY?f$q8Npvrh6gqFH)u-upY>{(P3vcAs=s}39 zMS%wm$o?5n1oj))lD+_RYL#U|QyYU-yd155sF^PmL+>)Oh_|ja5MLy=O?3P%@2I+| z$KIA`c8(Q&+t(T&zPuNkP+$YxjXt<-YI&<ZhSTa8TP@MR*yVYj{%K*`vtoYOsHxOU z-h56P?9w^`aD6`2wBHsYic(K<D??NOYX4INbe%tM0{y)<7k?kT{~fs<P0TEuoJ|~m zaoZ+dKz5KGM&#u;hEjz}^sF0+idnqURM{b5wmmDHG$s>eapNFy9uTqyhwJB!3p0%y zhW3c0gCpP}o_#?2-}*v<ndkj>Xdk_-q7Yby|Ei2+G-v`n9Ru>1%x{jkKCb6`@7|e~ zFD*}zGT%nxZkP({tU$FED3a!dnPDt<O)W7F!2+Sb`G*@<o;rlRP7R%?ZG{Z$E<|TA z<sSESAri05EyR+;HfiVfZOkTma0c~rC`Mre2Vc@z9G_0Fp+N-G8sH=TJg_->Fj4e* zvXivU!XOK$5I0NR+TfFpV#OaC)@ay(<XNMl86CGX%~?T|k&=5<(~7TzS{K999JeZA z#R|IrzWS;N>w6%6YYq8d74>({5x~jB*~Q-3&d%D2?)SR;Wg5nGj&{xl&L;m+bW~*Q zHt1oxKGYDvprkSi@Z||gTt-}4bOH(Ft=H!)rLu`@r2M|fIleVF0hjvpi1G2q$lB_Q zLlil7yq4Gzt8;(FQ}~d%p1F4=vM-V{Ro?<BqjNuMpehzuM|Z3qznf0RcPn~QwhV`Z ze;pt>#{Q0{AJf=OW^ab;s^^Rn3HkBU0W7+n#w|0S41k&z>AVI(czw(y>!YLPPWbbj zjHGiF!fNWMZM}H&_gmpOx(HlFR_<WYHK*Ll<pL?9soQxxX%GhxCkT9@L-nff`}H%9 zqnho7i`=ovot**ZK&E$UHPp%6M{h**g*!>(!>f#g^U!G9t5lu3vqZ1Z)e?b?tzeLa ze|n_=W_`Sh`=wb5;g%{7B9y~17-EF}{j%vqPmNs%Ydug&sv6^hZF^^ZxQuhw(BA|F zjK5n04Rfu{AW&rGHVYW1QK1wjMUQ^S<(6qmZ5X^61NDj=n~8t4-b5&TE-W^y2Lx5r z2*~NtG=-4$MP@gr4ajIDY7bk|WR+xZ`Y`@#@{?{Wr-0^4>+6_#Uya>ZMnu1wQ&=58 zycRg0SjgFL>#nR$V3J?0J@St1<^XZQ^BFG~O+wB0fs<dmBKE*a&p;@K39A>#a0~(i zq;$#4TAUQo#!da14iKJXOO4Iv+Ke{vNUf6%mYHRc#f;#4(xBT9xxhNoNH+5Zb<(Cv znl4kSk;s-b;-FyS0{2)r#%6V%_1K&_U^;22w5efhf%D-*9oQRIM4FH|8>cQt>riGp z=EjTL<4BvzD-?*k=wF7#)_H!Y#(@V@P_of%9%c6qy;Kri$@qXWj9cP8HXDwZ)xKLO z&8xI1I5DC>$=C~{NWO2@RoMP}A`iO&NjAOf*%^x#b8d!R+fOvLp#VBIF78K-xIQ)? z#^}j7a<XvOSH!_wsxi3BbSJZY=bPF*dcgM?&h=0iRp&p#r7`WiKV!8of5)Y^4zvEc zQG59$OxZTl!4dPN9J4+{*?onve0zb~{Dda7!G>Gs@X8B9a^X_&C<XBY{oj8ONWe0) z=r8;v{4)3d0|Yr4xSH7gKV`Z}f{bl2Jxs_;W`9v6V1y$;A%{qcN(duiUh;j=KD~;{ z)3pm@fB~}x;m6(E5eKI`bm4xx@D1$KycX5wqSF{1;w&w%usrgxf@g`twg1KGmOEl$ zd3k~;0$@bNJ||0<Dc5h}VD*LDwIE>+rgJ$xL_RnmR<xl?($PO6O!}5R7#ASmstH4R znUS6P6Ww!6ZvgxrW&eymY}+6UhzculOr6U^Mnz-y^5-+IT@#sIo!;AUTT-;IZxt_% z2XYHC{uD$lb)!0#&7`y3>HP;xSuO68J%M<*jAMlgAoq~54y8$rK)pBB9ovq(i9ei} zd$QoLplf|9sjh4+73wh2$m6TEVa+3@)GSvI?yO_s#`Ux<0gbuu8Xl7*Jn+-1m81_` zvSnYpc{w;38EqLn+?k!hyfh<_742C|Nj$;7YUGmY&wsyxXhmstf?xcSLk9rB{@*do z$@upU_>W4WeqndeiuiNg6X;SK7tGmj8)O>^s^~oTg!YoRMl_}iZ4Hb|6K#|IAE|`6 zd*JJaP3T;J$6F0J0M~Lmb_b?urQ9%tzPT=+Sz5ViJ~`>U*3$2JW?owbHATeoG~8hz z5sfE}af{CB+7D{!Ydop()>5iYtLnLsv1*3xM!|5(retw!%3Z-2^wL8~v*CR8Vu5f$ zU%9}kcOeE~Cflh(%5_5WP^U`u)xYcZevu~vI*+7gm-TM~JXL7UljoPlXy9GFv6n)i zK{Pc#lQDuQ`I+=mxiF_#k6OCGR4@*9JQOr1Ffor=6ViM-JEMNaI%P;5(b$@9obiIi zbs?dd$bGJ?)KDb*Srp9asS}z!S_~HMgp_R*yaG4;;_y+wnd$9A-oB1{8joS_7{Nd* z_eMb+xM_NNJ~Ze?7W$W4AXZRJ`T9OnP{8-{28P(F%urQZH0!0T#45~j&4$>t0Y0Oe zgytny!l0p=%nF!gHAfmhr1bI_DS{tRY0cah){$5VIf`8DY)OQC1t7-C@6CVBAV9s+ zOY_!l>IbvhHXXZ<sSP-2nx8DJYa}^ZRf<tIq%>MJZ)S>GfqfyZ?pUMZUr(`c!9Uo- zYKD(9pj7fc2Cmf)c;y2I#SZpyqW5|C^?Xp`XVY-yhu`7`zvI*9l`AZ4tXCfGvh%#; zrzY}<a*IHsO45$`7L>E|ja0<T#o%hZ5B<56kj2Cjp(dwOgpG+!{vr@R-$RjYM#DIW zhy#}v=Y>kbgBVU-1J&5CfZwaAb*uOZGGuqp;W!SD3RdsM@ioS%Gk$?3pUX%AG{NwN z$i-yK!G()a7)Gae^Hb+z&mcug`S9lu1i!PC!1k+T2DQVExOp<BNi{=3sUS4UGqr!! z>+fP#ENQm$3$=SzFn>uw*(+pyZL44f4w5@Yhe>IIR)tRbd|c3ZE7>6B+jC-6RLR5k zZL>4a-Rg0mR*WaYnK(`o_BWyqBN4Kf97R$^xxkb9`sz2W%OGZAR$M=n8Z9oEOocsv z_ao9BasJn9EhX2daa#;<$U_*ikDBz@eN+|{Xg}KXdk>=QUBxnxP(-W!ziv4%%P3H| z!AHy!fb|2YxGz{C_XdL-wo95&`!J0G`tFRyuwjGzqryoo`J!XDW)Zody$8-TjBOd_ z_fN4iCFn$D05w0~7vK16kyRsXX4oVmeMSw6LkrDm0W?~SeVVV1J}guZP>hED9GDJ) z_3uI7UGP~US=tM@=r1^jmJMds$%oxWs@oEQSukxy#r={(h{)V9*7W$oZ+t%6o5hz- zYyC@$XgSq_^NDN^%*LF42b_33HngnZJU)B9)JK%WEFECe?qmPg9v3}~UQl4#aVM>T z*{$HFqhOG&n<=#6rnCH#M+RtFmq~+_;0^H&@6JrvsA4ed=0_kGBv%>mz5Z50+@%xE z3Vet6VpSEB#^B-w3i^XKW4kL(_dGrNB3rLp5MMnQs+e{!sOGcyf<aLs)v|nnP>YI7 zECsaE2RBngF*K5%JqlG$kM+6tvV&*D*m8&Z-m5IJOdE^Oyge@nIj%GbjAjbNI$O_J z+Q*~kCCls%ez?j>9pHC$ecbFq&v=krj*%><@VZUpYG7A~ZFUrs-<1oYT{r^u_`#DC z#lO9fH%Ns6jhBI58w~Mos=U?R{9{#JVPK)J*n%;eAr7`UTCDEWZ4w`;*{MKJTe){; zScBB$L*~YTzK~sCYA8M%A7zfJO^^#ig{}IWNEVjR7yCR$PBHHl?BkWBxR_9h(D-X| z#vXixJco|n-Pgpbjcm{N?0v%>*?d%CbFj#XS!4(ZR@K<<*b}T~Wpg6|cNST_*5o_R zQWGprZSi)geyeDIp^UzmxRFZW3$c!)LBp1?Cn@!g&KZY}sh}L4JKnTE&&Ce^^SwZ- zoam;VR+-cFyY07Bgfd`iGWe++<zRLNVljVEYdoc|M%2om52^{e#evv{SrVjO(O^mR zp-r8=E&xKl-9VXXzRt4m{OH5DK7rk+`qErl0&FuzKFB<lbe$0Wpu&WmeL#XC=eE1T zhOjrQj2F>^41az@<zB+fnHTMurHd{0(Gn#zC0>ae)YLU?-R?dnU8>KSo-qRv5t3E* z?HjGZO9jwZgvI^C8j%U<+~rgl>n}s3F1WcJJ^XL+Hmb`Po?p(pEFK(*oEZ5^!B^NO zm0}%^-D>>H`iM>ThH=0hai9nyR}VBur9(y1arpziqUrUPb!OgH5LQ#&x$H5)AGb*` zv9IOM^yb}YtHq)WJ6xL~3*b_%iLQz!v1?l!8)k4aZ0$E_<^+qNS`rwzR0FmZU<oW& zj1;^A*ghszj%awLAz4m)-jpMN=lM3LweH8+9{5_^Ha=owH{>3hOZ+OrI213hC;kKp zuKtXXgQisg?c1OKJLf%w)|%(xbwgd8a}Qz2YxQbDiO#gO!W)oFvQnw7OeP^A#+v#= z{U_l{7ntDOy?1Eb=A;(?K<6ojcKB;l7snIiu)1~m5TAz3=%Ij(RMT#ieT&CUE)v6@ zqUw*e+nInCSGt84U+7&0mQhDue>bmh_qWwJ9>D6-)JBH$AUn46G>aa~V-ni#Jtham zKb`t4XT2hVbh#KugF~0Od!w6ZSDn2>2C}SWDp#MWNr^=kFvqEF_N_5#s5W9_VC0=4 zf%&IO8|i~_BQ-~1E+i&hRKXqcAs241w^`nUbu7y+_V)e+rEP0Z))(8k>LIS7)f!p@ z3tdW~syC|tCKj|%w&!QRy5RP&F8F^aj(+Q<UuO4zYl2dC8|(<(zr_&{j6_wHVGUp> z|E%jvBYb1;H6euYuY=O|35a6o4sB~^8?#$jQ?kAc&XIW9`(Y|*K!I|OrSQ-Z16+3k z<|dfUhYU>7`3e|WXnSF=u^fnlO3`hkA}I=T4wCG)uluI}-+je*a41Q`iSt?H<Qr%K zmG4<uoK$r^(0E`KUWX0SZ-)ieW@3qQ#zN<WV=cZz-Rc;%Mx&FEf$A;p!tHgH0_`n8 zvI#2nmb6>1N|mG{yd=YW&!#Q%ygJt<ak~;iTLI;39E>p&Lm)nxHOe{3)3w?<TyZVV zXbbnY1-a17kSp*Hm|s!vv$?)px&quG0DDzGBN!X;{Chl5xI9-q&LUk61W?>o%%CLM zZ!|3u0>vEV%`h)jxe>S0+^JKRtZC}iWll^>gx26hb)t6e!C2z0HYoLs62$4_a@r78 z79xKv_k#%=|8s9B6eZMS)?q9|z-Iz`Bm<PgCyLhdY7mYfsqYl&oZroIeGf<>QN5^D zSurtrO4O&wMSR(OrgzMzq4=2nS(;RG#Ov^of{DZj2&NF3+PaO7nl2(~vm>keEU;ay zJY!Mop`o=~&#Y#B*(z@!R$j5Cs6d^w%29mYpH7<dI%8uygXiMvO{P7hMk(D~JXG{b zx|hK;;pvaB8+nfp9*<rGfF!!heo4nx@=8IwTDJrWn!rvbLED-|@d0zHc;zumR{Ewt z>Rk4H;R;*ioez*>;F*@A(aw4NFyVF%`B#YM00PnKfgS#m;E^d5omv&))f}=;tdeq& zrhTM=*GWm2^mzYHkqbzGbU?AOXEX(6ZPuOF_!r{jYkX72dFLLyo<2)FWl6`R-Lgi? zkzvi38aWaZxwqp+B!vCH4yQHSR>pI8fy9}^2gO(IO}zD^rROd1`_P;m6ZH9Q19hVC z9-7Y+PJzL|d78(%v?jb}49wUbH=BTE+RyORZH18^xF8wHPiA><tqdxtu8@<MmgL_l z#afCa6(*($EySOG@-EF6>b=t&qC4OYhLzbtwgz4BoMzbmbfUbq@kLI!%d}}sSksgg za+f)%5G#S8u^byX<S}3_(T|~C)@SD^A{Us=pM~v}BWNtZqh~2(Y^U(#gzcUk(s{gF z<L<K580>_kFutull4XfgD+e?^wi}n1zu#pFwzN(c_DQQ%!=7t@(zNDrS$U979hasP zIUWx{%4=L?S>JKULWcBrrM*NkrRqzBh#4s;QADsMkeKFY#Pn_i;egQWE{2%oquRTr z|C2aB-lli23O|jhES0*vhXS8D+H4j{MZ_%|%-q?q;1Avy<Vbi7XbXi}8wipC`ngI= z*`5t^3aQ5|!iLAW@|-=0oE;(u$;|j`Pd&DDSg+p~>K*o~;@`u~0>CJtPn>7ObGhlA zs=4TeTMI0`W*<&FY>ijnD}xUvhQBQ+GMD~il>x;X)_%_k%xj9ZI4Q0V|6xX+m+(5- zo-sO=ZzO;Btns0$(B^UTn;~Xuz{52a^;`=$K8TNbWu98hBtDb00#IJA?(dX6&=#cS z?E5@v58MTS2$=b5wR#rMUa01!BT#&3cCQp(T5?k)H|QZ1?K`li^<24&8dY!Oqp%|l zZBqTvIjfJGq)(z#T>zUnP^h1g^sO)5na%Q4KGRwtW3;~93ERxJ)UncBm@p=2-vr}I z<R3zZ`^S!yyNksEtT-<5--q`iKb<S9kg!Xr;MOBFF>-p4FBZ6t$Zu`3^*CpZBBbD6 zry>@SknFy|6!%8ET%H%h>!F}rn&C-2whE+P-iQ*c(oSag#YFVr<6ExtcE3_#H<nd& zTh4oA#7lykoDlu0*l})seIkVrstxX7u@rpKq%&>SL(O$TmE4VK7V(aeR!S$^HgkDu z4{X<h_6@ta-P^F%?1ZPpO^vKPAbJFP7-sPs?)uZL6^&M;WNfhB23P#UgTLB!PM~K- zGYWqR`*uEr{CR4n$xpVmUp;#8cs%}P2e{rcwONlj-Rali{XhD4#ASJJkB|TWsrUc@ zSpR$N>HMEooxMjDrp|AJ{(h?`u!JBkn7#e@de0x!TYSB71;7T$+KC-ySTK)deWH@O zyznskW@TqGE`eO~xw!W#NR^ah;O#qsn^m$!IxWfBE_$|8rTxcddO$VrT-Do#s_jC} zn98|AnFZ&}a;>?)v7$>=OjUBhwW?B@v{7}P-tF9`=lc(B&BzXZx@vj4DliO>c@dmz zNl)3%E67a`xh_;!J$QPU(C;`&7VRKFb|uE=(}V};sZ`m@g329ga<oom67Rj_x7s1B z-Obf{!909D@1ba;t3amv(w*v|ST%mI(8vVii3pV(jz@llFimL3_h}*8^GK{q#SDH@ zC7_OF1o)zkP{I|(j{t6LC+)x$3<{BR7H$&STP_@H`9Ulk1}CIVaH(2_ih_gDsvT&J zm3|)-HKs|*HiAgeY6Eu)!9KTKROz!V?$7YR+T*A_ke|t$1XgZ|F?J!Vgc|TZls{s` z8>IT1N|Fu<L|;1Y*+_aoX?)p~mkRXFG5KHH00$kWX=(7$v~?z36_~5u+CXf1W-N*n z7Hw*)<!xx!I5GvU#R|Zc4j!9z6H?e*YxlceczYhCQ~QL*v%h<_0)xLRxO3Z2{3}dz z_=3JkEVI=(_TE3!t~%O#i&$o%*iE3xq?i){(TV1h#TqI4G)1g}2_HxpIw!t*MR-tu zHBl?aU^J8V$}$)T3F>lZl*FWgP@9`#DNH*og_P_oV>t@er&*vS0*cuNS<fo5yup0u z@xDV{=%f((G31m%4i3lc5y1Pdd26~Vl!4b-z2p-XzQ5ey%!I8Sa16%$*&c~kK1gO$ z9I_H)!S8g~ojdO^wo?jmitSlSr=g(e4d~R<hVDe|S5p%`J5%)G<KZTq{JIGH$KHr( z_G5ZJjOglL4UM!!t<sd=d4DF_GlFC%{i)pz-Ea1ujdQ8!!z33W`$|fq)FSZ&$tk)& z{rl##@MWjVT<x80Kelj<X4K2hF_4PU;!p`17i&Qg$G~VBnN`%x+#jdm0^TqO0k?N4 z{&MKG9*2yRYeWBI!Fq6{3TXob_npxCo~zE(5r$W#3wDsd6==-njZo7D{@UwF0te>< zr*HZYjD6k=r>725Hvl&xx79{DvowgVmIdI%RYaC#a2T7`0h*hp(Pv-Okr~?&A?*%R z29*7%FLNhct^TJHu{XzH2t`v?3IJAM2Vf#Wfkgu~tChw{orTD$792vf*DHbaCqHF* zo|Pdu<PUegR%@uMqoTWXKpSGnrj&dQ4{p%~;*_v48kqpl_*pU}+9@S)L}xvPp^QXa zK!Apll(6flKjlRlo`eN6(LF_7N>FC5B4H>qV{rG-C6Oh-;oLtzHY}L*w8o-@e=6!6 zal>Ln{D}|7!W%;3ZMAv|-EEyW;w~S+Azm7E^Cw!4;(xGo#8(#wV~_otpE}N0<8!j| zXLcWBpyflU)Ry%PX_OObHp-rP(>bA1a$Ac8*#n^GE0}3Lw+}bfk0;@2twL36-<OfX z!8ALsAYUC3di-a}jzJ?kk>^0+vdYmZ^yncV$P%y34r{W+*8k}*q6~i1xryqs=&rJh zkl7ZixHfvHH7t?QVpG3MfL)CR2=u>jPGYu(;|U;W<C|8W8!|8RJ(qiPr+YSe`yv9< zM<jQj%9;H$5DT=4uYCFY<us7cQ?<qyD0n~(3UY|iN{x~kYX%fNlm#_4Bhcl2=6a(4 zheIl^FFsz4`pi*$P)~U7n4hy&pvgE#Bd;}wm1^MQWmbdRQAbe52?V0;Uy}8VG6ePR z#mD85BYs&eGi^K)S`)w0j%OF%#>-?^V42`R0XQ5T6WK-nxnz97P}<ZpZPdBGOIyPi zF<Kb#8OwA3GSf3pk(#xdl~7uvTqhvu9!UZq$&qQP<_3lZVeM4KBNXf(f3e^=4+rWG z{op5=9HenT#`CgRZhp{KaTaVwUGJ^!O_}D8<JoNc9{$-Wj=K&DpKQxg^tJ(BTsGq5 zT^NaV0YkZxxju!2F)XM=);C+8K31N~DeB>7AJ4=7UZS#B2Q^2mq0Lz)rxK7*ApD>V zOX54HhBa<B2Cr#vv|2iKCc8e+0Dwrdz1~m(E9>d2u5t-tt(=jLkmcY`cXbj_wSZY3 z+`vh%qv;qJ$x4uwG40nc-<3pim>H;UiRWc1*g+=^98h|7--aC8(U4`@!5lUd2_+DX zlmtqx$UJ=7O=#VHa?l;V@9(n{_#3|Nw?`)ACkaaxe331<R9S7Q?x0H>gv6FrfIva0 z039gv>T--4{TT>>(@kkm%PU0iN^Ap)QPCOqNC*;GHFtc#E7aM>W+=SiSy_?X%rLlT z!QkLVC-{BQsq0xq?kNfy`0Ux+@G+bm4EO~1Lwus>0p@=6tYv~2z5t?_1*>Vg=lco~ zfqMj*XOS^Z$YWR8Hl+$nl^C-+hkvNdjF6<CEE}4I7oeIq#SoTvsj<}3*KVyPCkzE# zacwKnf~)U9{6FUb$8FE;DTaEOr_h%JXNOpz8U^Y6unU&(Kgk!%RMsGk+Kze~P<@Un zYu0JI4}nJA4d7d=v4Ldm8F$<+ZrLmQ>LMXUSTz<{a?@wtY1J*fkK~Ou_H?gNiyX%y zf3Lmf&|cc4a>Ig52rfJvjj?tra{`N8JHiG-%`ejOTful0W-VB2z0@0!MPYzK{qx@J zWx(dy(~V90;W2OXwAgYx91hy_19P~o^|suZi}M=8B)n8No$N6ZchZULNJBf3Fvk;y zL@_*pL66c>?=ikkrmjBRZhl;ZoLpgy$i{4pol&7U`+n^>=M>l1AQ{bxh#1I=Q$?_4 zA8-(1uNF$S!{4whK?X^Rsp;aWIO))%FZH?21j3}Ze?YBnsX#SLde5*c<EuOl0O8!i z+vT%DYxUYK1i~v+^cu`L$4VCog_gVOf>#hVH-adq(i^FEi)~pSkl+KV-VM<<ZcVwc zPBmp8;A$7mF7wc^>I4kxJmO@63?s8M!bt!EFH6*KdSwh`jKRIp<?~iOrGY=~SBuYJ zx$a5N_$EzOe+2UT;_%hVb1i9PSMm}?8LQEi4fYWDxwnjAv<(2SLvN8E+#&;z<Cd&L zZ`{`qzsv(uk=Bu^3Mfl1u5L99jbe9CJ2)e7h=R=%YNO>&W?Nh#TyfVmeE_11#*WEK zg9beb16zkv-G9SWgAc`QeJ`M>^PhE4|E^4@7^e4KwSjzX(`#vYkyooz_127a`F3`F z*<)jzIG>|TXXvu+_4*V07^v4qd+7*vd+$BXvE#KS(*mCfl6S|^`sKkp{S!pX0{q%i z34NYO_a~3a*}DbYPiFmzre&WrylUa3Yt;E11Y50<Y2}Fx`3oB~^{T*D&_w*+9>GsN zszc5JoyfsJOz}GN1MuH+0ug|Y)Xy(Roc`?={U7867kg_v1LI$|XcI4EJ4o<<_lXQe z77^FP&dbv!b*9MALCx(MO9B7*Y92j@7$>+E)-yKmoS0z%Ys``sXHMeusml@eNh4$9 z{|3xjB`tV~Ju^|jQUZZ8)m3pBj`JcWxxxhW_g&1*qo1clJ5;j_uhLgw+z=};I7Vi~ z2ykRRs6n9(bn?fP63+21SL`XtU|5~EYwsAJnN)}$KoD{vI^f-8dRk}hVh%d!z1^^F z27I`-)X#$F2i0=$E{(-?M-T8FyaAs;wmL8vP=sqq^19kwpxY6Lls#Qh+WL~fa`js( zQl5}^0D|(pd==gJqZ{6NmG=;=XgiSyG7in~%~1T!H~1gJtTvnL{kgv+oALM52>*AI z{r?=Cp0S<Lf6TB|m=<;$qR$<^L;L{(^+~A{5@@tA*6no}jS|SO=5<!s{oyzgO8;<N zO)<nYF8y|1jtRoTfZgie3BohocI+O*se7~%qz^mS@#23cE&T@A8s5CO7ejL2DACi> zr?!(^`Xp5?M94h`l5CmjP$GbG!%I!GBI*lOWDULecXI`p%iBuB(U^u<l!Q-l{|Voi zi|}6YIrL7t22&<9%&^EQ8uMk?6q1jnQ$F9v-PWTiA{Pa)C%svI-N&gAur|nhP{jjN z54zeXFj9nA18U;(E|afA;!SU+$$zIHt<fxepHbDYb?SdBG}OOTx{A;81!OBiD>OE; z$|ODMUN%-QRPO5I{glUx^sQLP6d6tfJYBhxq#;F5s#EbG=>cYM)>!uSQK7NAsJ<*t zE?Bcptc6xqb{Qt&OhI@PFGN>DtPXX@{(4tHBb0%MR~4sH$IYkmLCB3kRsMo(yTZ8+ z;vwE)UQRfH$(rmA!`eW>a$5qzp*zM-!`4EosTAUtTUw%|92s|!^(c+G<|{-EVu-l` z?T)4kNE6&<{99N_xuH`vBg^5<?&)}Sf0lEUCSoq+^!#kyUg55K@gyr(9<B25#hHRJ zg&P;Q^^PV_S=f`nL&%OH2q#zTM^NU!8}A&H!*Q|1FW@n0G>0F<(Uu-0Wu8i6T0!KH zXLEAgg-MD@l0gGRZ$fsH3Xj49(eFJ`Q>gP-0EyQ_cZPRRLm3<pnDq^iAJhkY>oZe` zEk5d;Y~y}LiH|c*i${SmCgfg@e$y3FX3_**w#R~j>m*|}7F&{B;?nhrK&4`({d+sW z2C`GgtKJ%{&XC|t|GEYtp)TXjG9AKxp0K_2C&X8st#cH2gZ%6tG~>P?>!c*qll2i~ zZsY-Pgh;Na;{wG9RW%3AtJ*OtKIPe@6TUt)TjO9IgYb{KQkw}Uw=L+}?Kz>LbkLVc ztb1#33$iF24FnK2OyUl7yjLWAR8|yubkmGS@c{xA3p@fIZmMK;u5O};^TMA|sG)1b zXF^3@aqhg_+6$d`aN#o4h4GetyfBYYnZ`fNXk&54sEcNy#8jH~?B|<|2!_<Xz0rAL z1p-%5^bIiHYNhY}{9!UTrIq_{Ch{vjKPT$cR;Ab|7o4P2X!D8Mf{>gY?!T5KQv|OE zf!c*~q**e78Y$2}katGHT7hu-)9e`M$<7Qp5@6J7)hZeCx(J^U%TW7>0IIK8ll%G$ zes}LE4&0A{lQ%$bkF!9c;rD1hSn#0z-OpkL%;^lkFEN%WD1vnIbS6Ve5RizDVv!q& zO%BF^6LCNsym)VzQ+j>zd7Q({<-N?{e`l!n-0gZ#IV9=p-9W%{<dEVMgP2N=OIK%e zZs+4buzqdtnLUKnXZk^(b<a$)S;;Y|vx|HMeu$4y+MKKxGMePDN&=S>RH}0Sg6;%j zh3%=kNkZWp9%Th{{wn+nAzTi~NLPe0tQeYr%2USyX|*ml!1WWJPKWA9lH*%K1cx>= z>AqLBrP5g42z6OM_EBmQnO3ql+y&RZEdPriM2PD6iR)I5SxqZgM<&&6OD{Q}V3DpQ z6HQ(mL!y+n#?*2Eq2ZCM2+%K4X7_pqgR2Z8=bNwIKJN~{T9|V=nKP~^HQX6KE$yeq zu4bBhA$wT$quP8t5ME;h5#b2fd9j3r95?Q>8==*#7dO*rjsb@cu}(4GR43=G^ChH= z6`DhGm{+!-zxC(QvrYKpTc6q)1}(#A4J1Kew%0uaI1Ncu4sHXt5A$z^A;A<%&8$~A zJ}XouwYI@qv3hZpH?*R^8@R&aUtbfyt;fLm&Vlg8umT0cQ6mB7)-ahwL93{nJ}kb* zknW|`U0t3wOaqPY5xCtmp<=+;eKv}RP51&HGkW@9xGeVPSJ7LF&!^A!_UdC~ve2Vh zWmQ`057o4zg#v7An2S?QQ6m-{`0y-<f?gETUea0&aY;&7wOgp>n*4w#fA8G1`#o#d z-ZS%NhG4=hR0LQI&wvv9jF%oi=07S*84w@0*8`AcXWNfB_^!2=+89v(Ubm|;z9zO$ zN?J~OGQU5MzvS$u^}5)-ecvDGZsc~dvpPNR?r$-@yEwhSFNX|JqOi06g)^u&X^S3y zBnx$5C?z@I!I`Sy89qY*a)zTm=`*-6zzcSUINWz`bZr(w>0j{x>H_cjBD`orfXN17 z)t{ym@FySK<^f+k@;@%A{w)?glhhoMg}CTl9K|K`0a1&*ToO&cBCk=@CR31-Sdr%d zu9w(t_TIrV^tYoYu+-FYF;A<qrRu7Y>9RVwbdcZI47svqALnjasVW$a-man^%OA<J zsy85Obqnr1@Dvk<4H98v5Ou^QaaXB5Bg-}lx(<m*KNjd2(0!dET@%~~=Kt;x<KWE4 z3=|VH4N`9d?ZQV#lmtf*XFP2KCLkm3Z30HDCIxF=>S59F|H{d&ATRduTmb8)G7mWR zEOIJ0=IAaCfhsS%>iwJ61a?o(*>B8jXI0AOCU`u?Lp<CP=l~E`$dMsyoCrU%i(j^n znFibeV6z;lGpp%E7HyeL;fCv7)-3+isga^>wP`52B0ZZ$pm@+1=(0l#0)lS3<N0!N zHsU|`rzJPPYGyTOR@BA*nJZ`t*ly;QaY~n(_s^^fljwDB4b$qxZ9jDVGy=US#B8(! z@y>N4taI>MZ+l>ir;jS-MqNTb%A_-4J?OorepN0BF^j)p(}s9^)5^%mVLQ6ZUXmFU z{PD<Fa)7-5zQHiUME;f=Oo{Es-LEYcLsaoH`goci>xg_C7Hp;dY$GyKj^03JvQXWc z1xD?WLE(wM{A7oi3y1Hr`f2@i+g9VD_`F&+3k75F*$jcK+E!Rc3rl94+$3Eie&5(z znQgs|=l4})W3$Bq3>apeNicGi`brPS<7*>wp0Dg#d<zMeifMHLE0d=&RJ)~?NZi{T zuG}h#e=ivm?HVS^>GLb9!?2jZOkz${IjyBcEq(t0eW(Gu29!Z(vQ{bBR+gl$k(rs{ z&%9S!Z=83AHv|~KKW*rpfX(kk^Z&&bE1*Zq;qjP1v8hmWwzc)?_}G2rClR|=C3yxx z<A-WbL|Ph5cGlCdlu>{Y_V_+LyFDLu1=*ZZz`n_Rx&GQEf*x(c_{SCtoZj~X=$_St z423lKNob#oSCAb<%WgvY^5bt=A4LIb<t6DGlqAe0<zf31=@Qzub<&zQYyR*PsRhPx zbYphs7nJnkr<bUCFFAr3)wdI`Mu)?ds-j=*aFej+_dh1NO}ZyO{eC@&X1^5gf9xtT z`JK{mw58MgO<1sS*3<hBwNsUeU1Ue-da0>>PXG}NUfsx#-vyZ0Mle*<Rvo=3PO^m_ zVQn6e4t~ASGC7&pf+fqhb=fHMysPk3LFG_C0Qz?)HWp?Iqli17@HU1I7p4k%vt~A% z<?wO`*4hIPQ*&^K;kQ#Cd&67bquXr=4ANH#ae|46a{=pHbX~~HU=+lxNzT&sig%YA z31Dv6kGWa!*xLwE5Xq|e;qR9#H2Pe@9$?nR1ne{nQauDP<r(!_5|r&g+XR!Df~Tx! zSInZ7jgj(QU71W{+mn6Givg>WFM{sDR>9P<;qUkl2jz-8m~p4l)?=1w&a<T#!@3hk zokWuy+Pxp+Jl_;lu303hwYzRw-QGYm%?qKL$LX&xagR|0@!x8{e9Yp(w_f_w2h3!I zg=EuyraEH7wuQ~$4C2!3ziUpa%tIkE3YYcFskX|!;E3x?uPEeFQA+FY3KZ)T9Gxj8 zbAU{LpqgXN;QO-(YJ-P=^C~tkXT%+<)`D(J1J@30eT0odpc9-mbcuNqR_jjy2J+Ha z34s{%xISf%2&~iOu@ftxzZF8Ae5CMHnnd_9=cW{1X-=Mgc%TG8jDK(=|F)KRmsmoB z0cy3&ln`A;@5nUrAtROBT;!(6NuLk8m-I)2>-5RIf$5Oj<(<tjjX%86tA(mB*X8LO zkma0@g9J%DvAvOoEd8WV_h@Te+n`PB&7!|lTc1?wZ3mX1S?ibKcRNkDS~;S99JfP` z3)$|2xOCtOdW6`2qCaSViZi@vRI>aPbi1`lEUjF*biXQ&#x4!Ymz_o7gD<!)jZI)) zI0ia`U79x*6~$@|K&`?LSy=70TE@B(OTrp~3FzViYSr4#dh8nuiyvIX$;gI78#kK~ zuNqHL$sX46X@rxX_6Tu@zN+RtUKCz4ISMwFsVszr%g&wZn>PeUUufc-9o-LhR>*Rp zZe^!U9&gLURX59-pBtP{gCJL(m`6~zhVV#{<ZXkx@7qLxE5RI%pl@~LQnh|-v&%7j zxG?Q#&Lo!;<yH;Wxjp9i>?m{0kv8q4Y0$H@mabdB?eZ^q3FLK^&!g|z5_Y)}2-}dc zBt^h2?YRuN*BrNH>DPpD;-u~Fr7ma_4-~;&;BG>8<=~@>8qhb)7(SDk08|<zVT2ea z*INwxyec_l2+drfh&~O7DTrR4;w;S|v0d8p`+qB1Vgy#DaE-xO{a@cB7Rc{l_<t2< zG%W1247BvL|MA_?{3jlTPFg}pL{>>eM?orfo&G<4@+kHuMd6#Sv_WcHAsh}<jTjG% zeab;{R*{bzF633UBJp^$W3Q>g?|aTRCHy@#+)oHk$g-CcQhL?(vr9pHbr(QSuC-%S zStTCP4HEmzN>IPx=9-d!G6bHbBWkUy5$4{=R&4EeAS{jKefEsc;>e#2+vj8Z_TVlM z-7YNm0w)_6YcX{(g>KG4u(veNXlP5ob+58Sl?_h-wjk$SO}od2H#LZ)*!zc?`{MSc zxYf8G?pE;Emv~SRW=_}q(=~v|aWf#(-A-cf8yw3=>oByBkj^os8CHXaxrSC^f(9}8 zzJ`5pzzpn<JZ4|^Y%_7=A!u0mROv2uU3`8r`#@Z}C5R+fQD@xM)~cUI8{()~eD4Og zY=4*E>zoqFKaD5#D{MdYxXjveTpkgtwrOSoY4O#38U^(VUWR$mLfdVPpMGOL#=^qG z+*&^(b4<H_jA#}7{^TlJHJoVrSLQCBYnT!Rf!5r1iR;r%iC)3%1|NrT_-g{w!QE=1 zX#njPE#{Z=TadPx(1I=-#~*h{qsi3@YUjZmI#R(VV1W|9<|gD5)mP1)f#rCUI9b3! zYDp;}oM>9?$~)Q^w@<W%I+jSOKqk(_HOCEU7W`fP+fS{4YDJKJ2e=e^!Xd%XE%cK9 zDNsHhlq`o0jGbf#6iF2@{Yr`MMgfy_tZj=t`kKrafmswM!i3e)5%eW0AMwcUTNYoQ zi%~`yHEb40(c}?!Z9;;ytEp<9RMjNtsYyn(C>_`;xT#^jbbCa^E_kCuvJFXy%q>>^ zm+<xBHsK5Szdz8G)7gix-!)i|ziY6F|9?JE84+axVF6`<CUu+tY{UAl*6Tw(T?dLk zWVczdbm>@>XwJ1rSQ>kt%PVS_Oh-~ls4wvA;ga-qLjzrf!AKtU^0*Ee;qn8WK(=lB zK{x-Sj8|uCf2wm2LuA^U9HJtLW!Ls`tYeSi+$oS|qOFF=btF3a_qUTIHS`adl`>=y zKOTFch+E$z-ZHxv@W7*gyi>z$B`K>k6O}vr9wq7}Y`mB5mcbC&3K}`Yfby~s2efXy zKcCXQ73`!{*cO+jP@9W_NKT`R(0VEEHO_(XPcnp&6jk9}w74G?j#jSoxlTBSW00mD zU5~czm(Q7w)f2Aa#g1=B_-e%82^hx-8Z5tB;buW3^WBIn{(M7Z2vkqK+;pm})bOX8 zSUSYrr#DHCAZ8Zm42@x@Pr|$HrbE|C=jOn<luZl<G=J6XUYJ74@B~-{DGT-Bczs@> zS_w?#Rs=RtB-YnyCuk2KNKX>PxDkHqX!@uVFq;GL{8p^YhJ*ZB%h1Z#@25}Gx~{&! zafU_>QQw|j56uLHIY#nV=SOAF65f<0u$^d1VQDU4mS(4Fg8@QB1AL2W&{P%+y*UP? zN#H<ABf^3bBV4(`C<Md{qG-H>@*Eg0*;x#jYS*{AoC`EyI_kiO?!H(>b9!G`219%= zvAzuvuy->-LoD6Q7dblclEhG^c!Ik#p1-l`Fze}ADv}*Zo5;a|CC#bfpV?pI{^sg6 zBf1D{kv8o&+7IfWL-&`RpQ~Qz&U!r4Wzn#Oqb0c!C-m++fhBXMh+QZ~T1?%xed@{- zLu;=t9JeH!M%VQzUAknaAa<JKrMUZ%I1E9tBZG}c5h}J#7;k75T2YY2_+~gMnpb)2 zaG4B_W>bN6iQZgrxv-9_7rR%*ZLlMFIdd`ias=54zJ}MfULT0Zb%#psFT^gE&nS+g zW%?`>i;!>|c@xUqHX`Z=FCAI7C8%H0=30)BZ<B<ag5p_Z9M)3&v#`DvBYeNHysqi5 z)>Pp5g(x9HcimNb84nSsQ%X_YB^_0$1KIVD5XpfXkeCj^)!v%qqDYZgb*_O0oKSR; z$Dz2(Za?zIA;CvW)4u0*X6|ZgGrDcOMNP$(l;uCdo#-Ia#*06dSOoD!0cj9%5f?PI zkVt#hU2pUai$+l*$rmUHi&<7|rOZ39T2j>I8e5xbWD$6@=&Jh?crGdi3Tz4&G#k9^ z@NVvetO^Tt%1+1$k<#q@5>Q;Fnh^WdJd8QMiMbWqf|m~k2Pa$A$k9Erq$$nSeIIqU zZPR;@MoGO7wj-;Of>|!UBR-mhEC;i9m5VP5cuw;~&ucbK{`Jd&)z~qZ5yRB}mqZ@5 z5jJ++X@MXWj^*`X?tSx+_K-72x(8y4MFLLkW5CegtXN}9?gPON2mM+6W;hv)GS9w( zEafZopVD+bBuUp(Wc~fR`mi)-5@cKp!@SOsqQh%@od$RS&tpRkVK4Dp6<$IK6k=dp z(fv)2L(DE><9f)d>(=JVWk#nqHeb?On8f*$o+z_0+;#xH^tG4Qop>GRmcqZY_1IA_ z1|II{(fYMmvHhmn1539DTL>kbWVT+H_qMR7=%HV_`7|&Mz0rQqs4x<0j%dhvUYq|{ zW#=7F_4hw;dv6MvnF*QMDO>i63UP6*jBAgqD>I=bS*hHzGcrO&*)k(p85!9tLe}s2 zd_IkPzZd;Zk9X>i_tWdV&g;C+>x}p7JRm&ZZXS2<;hN3)kGDA}n9A!<2RCaN@KB3k zG3JOG(kJWXWVH;?eUmx1oly|yt|BSjp>f%yl)_o9y@<|9@NOA=txO{!OdhgeO6#P5 zj*sH%_(@#*I(4FczU$Q{p%F4S&A9j+yLuw>--^j!y7=AFA<0N<H~t;xO}R}bk~X(c zx#)s(W1@>buUlfjrdUws8IVod$>18Sv@dd*@IKDrX{O^<+n^LThZ%Bf5<5&(MR5-Z z=Nec~6Xb4ou$~??tNpNG$yxC54)emiFRZTQRw2G7Y2s+G5=2qAv3loYBbco?^i-D1 zl+6v{T>5Y^FpS<q&GX3RVTy7`Fq^~F6KRyt{M2_RKzPeq$dRNw=E86;G~q?8Dq&Eq zK+Dk><2byvfhc*b*IU`a9XM)h1Z7q+VmV!pq$eX2MTv0vj=xxSi+<NpdC^IgcANIY zquR$ZHmkkXaVIa?VH6CSVtkVP{yJl|de>N_?$POZC;o{`Z<P|)rddzB(48~+kjhJA z^4_bH!qO!z5xZJq!c;+)ms9F~tS!}ZGP)Aw2i{g@DProo{PbTg?<nAjTakUd<8!J# zu0ZdYI`I|%)~A*(3v4%4r0+M~OO%;L9mt||gtJV*0JiraFM<DWq-CV4q@+RIrmES} zL8{JwvbDMGg`QxS$grz+i#op=U!y>wo~l|S->FCe{7l_;!FCa`Pa^GOL``i19jkoZ zq$l{*S{gM9^-l1d)Ep-|uTiRZB15#h<$as_N6qH!u`gJEY-{WVfh4;exqcuB)Bx!! z_zoFkp-%3uK4vgyJ13B|!rj{)d{P$M&$^e6>pQt<`1i0b<BwTcUGrzMC`!05(O}(s z+vpqUUr$GEk>F?2+yjC|%r=sKEy(2c4=?TJmQHAf2PSl>eR=<hHl)46d=7U&F`}OP zs&a17c0fuZ<Y6wy(!962ykOhWtG-XAJM2Fih|+(h70DbvGeAYz{34FS>E%-xb}DK2 zTf!obnH8MnqQaL<P|p(iRLDbqJSzM`LDk$(7dWrS3*2n|p<F~i{^G4uSOR-<Yv)NP z{7Z%F%L?E1w~KM%w4O&TX5xtB)J$)!e@XFSunO{+3t6&*oX|GUcCo(KhF87BV%Wf5 zGkTX&V}(e-!te6Mpu|ebk<sg`TE@MRttD|X#8?6jbtUnX6wogi)xAGlDBOpu+|B#o zt)Cf>J{-Nm!M4sS=nef|^TgoX{99sj+iOGb(%7iCSd%YU`?TwJypg*`!5R7XTJ|Pc z$lW<O+YK$eOBe2Q=-~<67T)^AOTKD*TlwR6o#dkQus35^nv~NFY9Z`58HAS!RCQf5 z%3B{<wk>Qv?@y>2pcu?4OFb)P`%w#Sqdz56I#K|uy%;&1jpgCqjo)kgVDgRl1fkS- z``$6!P5H>#O-`4%fLK;p{7q<RZgb>(gVu^N_LH9T(N(hds84uZ9en=<((fbh)cR2G zTUSJ0Wq{w0jm^ze>2EU2q0$J<3Wp)hjL+e{*U!LHU#V7VlQDOsJQZi_2z6|?f23fl z5u836zrCYMr7LlRCa1WwbLp#VfW&tXA7kzn@7=R}+)6YN52P>1AMfQ+;9Ql<&8aKv zZLfJo_H+h*H0zd+Z63|1Qu%z!-nP~J^pRnn8IrtpN~4&<)O%Q#e||~2XT{Qa9knNc z_454p{QeN~e>)gB@@wV*^@KX?nK15KIU)>J0-UOf)O&)NIyxrXfg-P1e1Ax;pAu4& zHo5VD3Rmu0Av@#BAFCdFzwrBwZmcMJ42*|j7#M7abQ?V-1#LaWT;KXTGu?&bTLHBU zo+=bnujp4WaO8qG_|EqbVhvsk5;WV@kutI`%<_(5LqIMV<PNBo8qTN4^^uR>I(nwv z{V@w3WIVj`v_jzwHErGEE^YB`g&eKRW@)$QOzBUGu1_**d{t(4Q|4~liRPb8T%>ft zhb#sr4{M*}cG=$Ysz0CY4oe<N9M@K*F0<!}Hv6vDaz9{BkiLblHa}x<scGu6rJ3Er zecl0%@6tHjjRFr=*=Nf|2~q`nJEkzFB4)T5pnVvOGO=~f-Zs##Tk-0h3&U<D#5Q=o zN~W~iIabga>VL*FpeN8v8CREs&_!+8Z=SCJQ*XE%OEumkzdj?~G3mlB>nrOgIJ%f{ z?g$bD*7=28(D53Aq}9MLB;6ca6Q_mEr+>i67om=^_ij<wph|iHaZ`0=i0vcu!=4e- zyydw~o%JA$Jer9`b>!akRGnohdk=T`K(9JsTb`jB?`I~-&zvho*LAT%23f_`M?L*7 z*J}4XO(OA`6;~ZNzk)d{A6_1eKT?p#+}juOjwZEVI%tuidfprdPiTv2{iv+?V3l~~ z%PVIBT+2DWKR11x*tYn7veqae{1ukX4I#R?*^u%2`ECi%WZKo3b2~B70&nW8o309q zyix9zozbQlzQEdG;}`PThfa^|iC<$Io}_kFQT3vioWJnMC+H|yn~UJ}hgY3)EHOOm zKare&c>yMm%Ov~ZuJU3qMu^`_PX8x!tOQ(vj!#(1J6P)GoF6uKU2T1UP*aAzmv@+E zH_Uo6=-r;?9jedkchNxAWCZto?&td{furhSPko|)+|+e=Vo_uI3VUO_oS=lv^3`^} zgwwL}?v>FgP8TZ}MLLtBe5IIfxheA-j$DsyywkMV?}g=BZ&%M`b6gnUBY3IOCTr7F z?QMlQ6QHon6e?HgX-HdQ*%u1ENZRK4d<=KIqu2cd_DPvzPQjuGW|i7e4)e>KmVT_S zPCZt_D)c;ot6y2vDgHQBd1~g<O+$qv6s|b9XY-uAgVZEml1$0U-cKJZJk3}3bTTV- zA>g$F>-1HY9~RcIQ5)<JO0SNGm`cZW^tuhOEPfQZCh|Q~Fe8KNom^ll5oaJ-iIk#T z^7>Qw+4AWZX-?;tGKA@^@n$?(>rW{SXHeIsc?+yz+~M*k#&jtpnq?6R>{r|o&M%&p z&CTYf))<cq;?u`ZCso}HNdA<T`guS_Vkjrg^weWxUh;xAi`pSN=!`)s$Voxr`O&L3 z`oz@iVCH7I)AKx9CYzNI;)o=L-k>mk@{UJoZ{Nt!$qe;%#ZNQ83z!TfA9%a{+9W78 zHHc-166@^F*qSV3-9%Y;1&sezR*D;M8(p?!3-msRkeXQ|hnDU~vWwZxaB3G$@%!g? zzt!)OdzkvYm&AQccsjvFG6>6RqAb9tPIbuM$%uL`ondTqu=mW2C~br^mQo|_OV+Jn zXRjW=ISnVH*Y{nY>7El*Bp;}}cis2CW@HXc24CdG`&@jL`3hMig9g3tmC4$9T`$W9 z3Y#(WOpZORK0Qs|LsXL?61UTUZ6tn4t8k3RrKzFb`{GnfJ<S%$xM#o}S^2N*Q&)P% z{T8QJr<vX*2}2?R@cr8)KT}{M7_fL+ja&sAv;7~uWx}MY5kZJQQyRWEGAt{8>Wg=< z==eL6iR~RjaqBsifyYu6G`*R^Q)IN?#8SdpNoC(*-5nNrVurxL+CADjk_wZniCI;+ zck<W-E^XuU+ZmHQVq=qWFygwa^RX_>51?4NOfe7!A^+g&4x5)z=N43QE|q7swl!lf zd}}Upc`jaE`$e)cu2@>{8+VO^*nI^;k{z721*Y8RPgW$=f7~g2efo5!!tvOGJX&r6 zyKp%f?QcbfjQw9Z{8*JfpNTMbI8NuI+)uUWX1*3q-}f~eVOV{AFwLnz^p%Zy;v2IU zo~phSIB{CkIu)y4G;03x{Zfr?HfkFUWFe2tmA%bqO4-LvE#*H{m9Nq$j5V_Hc5F*z z;u8-znvOp0kzE<3zUNGSqtMmCHCsK@i<xVIQGSAstT&<W?$-6L(_!FR&6HcxG?<O? zH~SGb+b3VS_Xe_Z)ToP#OV{LB=M>&}xOArEYr<>q{+iIM>$8dqt7O;BT30)ovb4cH z2TC;JB0TNY?+DaclFwUr2#9)4xl|}lRJf##^pmE}X~IUwh_9G*4N}t>^e50lMFT}% zOZ0&IQcESGn@<(15F$kL#|Q2G$4_0{AmfaTht-XK6&74$np|Rw{?<aYW}xk;%ZC9K zW{=PE7A1W<fAO(YGQ-Lzlg*%O{Met$BO(b?THkT4<H(9><lDR*Z?eaJqcYFOBAFmF z5>=F6kxKwup&qF8EGnADFFo;YzRb)wQl-cD)KrXDXN^P_&d|du>Y)*%?-xyDY&9j? z%Tm-~;pXe=!8G$1HyWvX{B`H68pG!WjW3aFg)K?kc}`TmviU^)*g|6Fi;i?*qQ@2F z^s6Bkx-T%F(!OXOu?P<k^1%!hOvpGE)ZG_yCh>+abMUuX>Bk|d8Le=oQmgA%$PB-e z?<Vl$LLN~F*NpQD(Kq?}3QnsM+=L8i#h1L9Tn}-#dd6N>TrGB<{EX!VC;IOU(r;|_ zlpG{Yg^s94i_GnqTQ-gQ?W%p{-e}K!Y4AO~Cz7iqNlO|Bab<a~Qlp~4f}&OXfgow4 zV%LD?St9bD^C~`R(jRl|CS0P%$Ig{0$G6aA7<H08R$b;SY6*U1hV!HL4z}OYbGH(4 z)hUz9_^z-bXvh1f&WUNg%PqPDKY~SyH5DOk-rHQ`uYYWKkH;zMJz~T(?qvKjf1{u_ z<Wqm)#N2hh=@-?enUZC1!>gag>x{(}U8_`28VTIdrjXrPa8~H03Ct99ykMmK(ZuZm z79`)hdRfb!r(%}0-^-DhiRIWF344(L;~AC*0=9TwEcsldM)X{M!^17!@XSdjNo7G* zOI|rD*z!3Ose&A)kXMhQFHC=WOI{ZcQ^fne{@58e>d)z$kl`GKA!g^0kH_q7tLXy- z^{kUFJtre@O4;Ugdqeb2%5$s3@Qlux5zByr*xQaLl<=39eDY2l*}66IVM*(rzl}J{ zn-w?@VYN*i<`LJI;}j9mDk|SFaPFC3xvse`7ZG30-;k)o|J(?>Y&@Nb@UFm+lw+om z_Uq1AO?|I6`s*&HU4t}q1UU01{cA^KmV(O0qNLhRnLxNtpN<mIH=gazdSsNa_UU77 z>5V+yDXuc9ng?_wj6UKeQyrSm=rT@+W{)Lns7SoPzT^CY?IwI7=q%ADdrPOb<}A@e zrJG@`7SPcb-m3l{ni}k43+25Ep>pAuB}CeZbjQTl?oce_?M6FXB{kP5Yb5%*IT{># z&X<@NA5P{kjID9ai}!rlu>WZ#2AN38MF#ga=R{{RfmCweYTKug-^Qws6ER)xR1Ief zd}jXa`gM+vRLN{SbAEkyf)Rs0+tT&0MIGIfg;|fDpTCVs$fn~FCn)hUnIu!p(6U)Z zbryqXnv4^6%RAf@PdnqW*(g?vox&Vp+81R@y}Edb)aOQTK^kFK<=n-p#b~pY{z)9F zF6pkeLO#0n9$xF|WJPtagyX{+$x%M8Y)`lywI#Fch^~ftmnJ!SbB>gz=T<C+e!-G- z9wSz5;Rzav<w#&YLUl=w&AVrW?=HV9{E3>WoQKLCoE<Wc$kKNkt?%viuS}H}K%-u3 z+`TJY=dXB5zFXggQ2-aW(0r_JWk8rkK1{wr{Ah4HL+a<_BNkri{lr&v#Lv{@TN33_ zsGelwp;hEP((wfQ$O7^C-Hz5lpACkxrf8#SQORC=vu~UOVFH636|Y51%OuavZTk}z z6NY)#B#uerJbmQVV7EqpDe2BO*Ni_?{mad<@JUVjg^9Q#ac<(HGx62!Ka%l%ySX+9 zzvOaXfzHY@u@87P3Y}5@(o)HMO}&DI*)a5paC7{I)Po~<QaT~F4DhtY3hY4LBExWU z+9cv`fBvU*%RS_F#P&AzLUK2Gz8XJzXxt0q-m-R_4)>0S4P_cH%pX75&^2<s;vzYp z;NvIw7?0V)Ey%Hs@viX{r*^-?D`CSFBDi*)sVuHi!bPI1<%PNx)XCg>LchU28AIyU z*WPo*`A^xxg2Dt1W1ll{(lxsDk@YcdKfkJId@7KP?SZYM`!NoiFmm5S6S>>uwkz)< zq}bmht}M{5^+=pL#r#FH&Y!u>>`~OGbA1LOoU!=@+0WD**WLLNnk1la*-uXwb6<;n zGf!RJ^2|4z2FJfY_QsDgEh<YhykppACm!hdZ^KP4b)56oU5e^mJ5qeZW<<>X+2tVV zh<8Irn()hXhVGR{RyRBhwp^6^(D3j`W=WYcL1?GLFo*7a6@1M~GiAZ0Ud`FZJ<^^& z3RfJ(Kgc(j8dI4U9=9Bk(>ae__fgY$(~ypCrhw$UZ;7r)l9JF0lcW<B#U>jjTsE9} zQ(vH7=G><%o`tWX*k4?N$x6{>9cjh1(7!LNR6q2%r-E_dQKLY6IyEKE<|QqWFgi{` zQzn|P{QOBdo4r&|4J1Adyq;IPmc(d2$;9LI!PoZ`gS%BGV}~Pq%S5Po%GHs0LXK{y zsgpK^ZZFRDRV+bUE#}frzkdHZV5%}-y_b}EPA|(YA*Civu+20^y{CG0<5Y3_huF5{ z+le3f$dl5JGx~g;gz$QOWiLy`4-P=IJ*G5iErxY6nY`0(Va7gJ%h~b%q-|Q@(O4s| zlv~j?kb8dd>`5dkmFiTln_rw4qTN=MimNAftgjWfh+!v?Reubbz*}h3@jU}IzTxcT z<MmxTF6OGgOdI2e9No(kiwRyrkiah+tS8pIs)#1aziU3GSfu+LLM{JF`nyr4x|&DM z@SP_an%DCaLFS<*vrDoba6!Ac#Mz`iLPDwTk{ujN=i;%z+exQL^oE!o`a89es$+Yt z%H4Ttz3xp#mUy$I^nTd2c-5q4WdqO7tFa1is#(WA_li5m_ZNLju@7AkZ9nqi@x^ND z;kAcvlj?6u-%4{RE@D-VI?nBNFN;oQkh1Gq!nf+6waAadM@Z|3FH0QJWy4iD@)&$* zBsQy?CvcwS=0pRtzIaoOceuYy#}=tKH{JWMQMb4KXEU15o^E+Up*AgBn9)YaYZ>)j zDEvN&QFO_P8;ldi+xpI-OWDzd+NmrYt7-P<V+ixz=uTRh;7NIW*Va30Zz7Of9Oufe zi=Br(<;-|vTai?@e=>2oQ8~Ghn#8SfWMYGV5|{txh8KATY*0|Gy@E4%8c!=BwZo6s zl*A{GB-PQub$(QBY-2i_cYyklio@IY7wCS>go<Y+g_KbcP;hsgt(fo*Z5j?+Pr8FW zR1#4+>u1s@JEY&C!uo(y<)oEoX1sZ2G{;I;NZ8W>zPf;hcN<)iYQtpRPInn9N$Od= z-UZy24IhYFl}@d)0*h?T<J4N^oS$*Dl#8YZ6>B#MFD{V(_>$bgw6S#MyO)Cl|3U&x zQ*?p<TNB1fssi%IX-}zDD4|g#cW?IVpW>qAKTlh8!;2uKa?UePEOES6u_uaYAtd_V z2<`GS(yy$J7GiUhViH2}?OY!0?palBrK*p*q^EsPFO9Yik8@@dpY+qSRuauWXPfl> zLBCadxeD1aw&{l-oT9JZtLmDy3)fxGdsCw=e>RXgqrV!)COA}TiAdMJZXYsl$3Z*h zt;A}eToF?q$J?~#@Va`@Y$Dez#A)@zqX(Fr<&>HZ#yEMmne7b2e6HO6LCSq1BT?gG z2@5l6@kiXHfT9iR9TDie`7=peiV4Cl+E|{`LdUZxu00xmq!{w0X{z;Ear37mL(`b> zM`kIzmEyPBjM$zR=g@CGl586haD*}XK6z2)%_Vo8s=`p0z9N#@1TWAJGwfALfEm98 zORRC5{MivJU$tB7IYlaLd_s5eDhkV<EE4(1%LjY39G!u5FelM3$15$R#|g%WcSlUy zEG09T-=4OZ#PhKZE(wgTv3|)|O~mn%FgBj>!-lk{q~;FU;N^y)qI(YBdCvLIZluf2 zr;zF5A4zCzxO#dzas5^-X=NU47kKm|sfs-c;$i;T_hcD-9l2;sRgBKv%M4~N(V(kO zwhPO@{aNH1r6YFthI^Ssr1IiQjABM5{jT$LI|PT{fP3C=m0v>J?Vah7f_GYPVdmw{ z1V!QCmgTo2#;>b~1*jeMb82X7`<{Q|@EPbtq%hT%;P;eVwANy!zAZvmz0%Fpou41G z0__{AsW`r@O>Ii&TzO5`4mMFj6MFYEhWO}(v$Hl4Yltqts+tpDt&ZiBT|RO9`eeU1 zHl?%DQYzOE?HiAC!`+nM&)i9VaTIU5I<pyJ$xS|=OVm3$;x~kSCP_iRIPxSBPT)tH z`ezxRZ36m;g+(bxqMfdBS>m`wFivC*6;2V*kFzb%YJEji88!CxQTC+6c8#x{8#3?y ze1B`CyRzEG3+Lhc^)nhcQHr&3wlI~PCn^5vMlXp}O+5=*qqQV;UkxeGYGMWuZwokL z`d>Hc?mzp?IP8@_zD>m7O|~7U8xdHD=Z{Y4GQ@@Z-cOT1(iSX01vz(Gbz(xAYKK9r z=~Ggk0;FOL`)qootkTJnWjof+DnIkL<=;NuEot_xeR<jcWj@QsOX&Pien)6P->X+) zwq^IcUcWAyq9K;ypIaDL(0CBe`<Yq1QSE5irIZ)35d5p7_UqT2w=0PCD+L#0OP>bB z?6w*0{k<@IetV$qtl6C(JUgFAGtX2vmx$kTd$l67QI*(Dy=<<No!yf9ax14KwCL+Q z#@sHZP<U6{(ol}d)D~5boYsBSYsq;KQ?<^g?5vdz!llP9eoh$Yu!$e%NRgd*?94Dw z`G#RtpJCTqXgYmz*PD0m?>e=v_s8n{&!53*0OOq-zoHX1on}71cvnP0_^=qQ@o4Aw zuirSMUqzRDrZPwEDtbh9`FrAa5l=g8>ILKD7fasbY@$3?|9K`@@g(t`c{QH7*HrVJ zoyu4oD@+ryl5YBuZAPw^cjuQTB^*TF`09(OzGPkryB;JR!WKSg#Vkd~$tp}`EKs%d z37VBk+SoKudpb{b9*38DK<!c;3k}{Q+OK2GGS4pDs(Q;&)n@K{RXERYxieB&c)kDj zdpClv1lAq~jY?Sr;-O4TAy1vyszzvie`eNrK=_k9@!qox?9Lx>6(O>H)gzY~4Hll6 zm04a3)?!mmb5FHv@0wJlS=&(7Zb+A|No|hlqp}Ks99>^3aaXf$TDD>dda!mBCShui zYpcS?#2kfH$B;|4?v*dMP7w9OhlRuqe5$2}IX0W3LCbF|VUak`cT4h1LV8}&yW6Xr ze9AF{l*4P`+wAtKcz6y~Zj#f%501_U1$Vg&jW*qG!aQ#BE`WqKu=(~m<Jsw=v_)rP zHuufi4JqSjT0zMK3j>%XUEH+lUD+!dohi4D!Ma+qZ#S!zhjI*Z;eZRx-n0}sD<{k1 z#6)@o`x=`FU|unR&ts7DoMqRsc=9T=?@dNDj)9*>3SF>Y5`|f;I$p6v_{nP-0w-oZ zne$XDLlS5DbnHL6*~H~X);7$wv{mGaY>}*1ylti)U8K39?{=XByM^b+eLbsro4bii z2@bZC1vl&z+6nbOzg?U$|Niaxd1Kv+E1RLEQ#t*kJBkH00k~fWUtgOsiM-|d<bnU4 zlh_pss$bIaccth*nsYgZD)8NpyNfqLtL}5QY2qGB?R$Hj+!uKFy4L&6B9cloo!ho8 z^|@zvY&LnK-#KPHcwbq<H6gz!oYsH69R@ka%Cq99FFmEXWLUsAtYaAVLga_>jJ4N# zwwTYc(nWzM;TLf%KmTBmEBJU*)J89Ss~Ubu0g`q%NVv_~1ygTx(1InqVX_pu-f}DM zYXd}#o}9ONGcEUyZQ=->bENxnk?<RVXLT<(%Lm_IextDD9NYh~dgj9NTu1he{_vU1 z)_b$Z4Rr^f6J`b-lMtk*d%5Gwp~7<8U}=<p)VMvsvf#&Q_iXiy=0T&*W!EXa>OA_P ze*06MhB!B!uVI<iR|HYHr9F~n++<$uB<RWiLOG`B@BT@xe0ZRPU*Lq7h-8ypHGzh| zE2nUYQIq<%i`goF=V~eo^^BiZA2vs%&eNmD46=eBu#E_!B3!6u{a<3^wXkx9hRYsB zG&r-b7AS4WWVs%#YHPm$$$HdI{c=XSWQZWe;*0AWr?ZNor`%~0rdDEb8l5Y*-+S8+ zQqE+k+?S6R?dCEe39}Tkr=chPc0mLK`g(m?j>g)Noo%b1Yzw=S(0*4^=V8?NG8G=a zP0a|8Mz)hv|8&RAY0JQ4pFfb?6$vL_QNZ)6Nk4;FGw$=F(#3<*xl3tuoq72%t-7%~ z*V6EcV6x<wTMW41s4uItzisi?i<op93@Z%l{VFT)SnzcX%;Mry-Og@3_MI|M8BgW& zXCz}vI?XzC+a(wav>)^HV@bu@%(>z)FV%k&Ue|ZH{kjwXht_Vf(CtR7(solztJ)h6 z7oJWG^p5pJ7y6~IeQGZ0+x8W!XHN4vu~AsMd1PStlHs~~x+b-Bm>sE5KK=4qJrmnW zurTY!clKzVIbM4^C!B{SYf$%W{pWlBr4pJc0VlQ~%sZk&r!TO%59W{AS}5>WYn+%8 zDJ?UMyFguI74@}XZVgA=*`GNu;Yj7NUZPqaSwz)~(4fmWA-)oL9rxow&ce}crqzpr zZXx{15m+O)nrr3Eo-Bb=NVB{<anP|DNa<$VE|!iuCKe4g4cN9Jz}VZ&u^19?2?YOp z03JH<{45Cg-oN$^!FjmbIk@q|T%ndwFqg9g`83^a|D@0WO4PYCBpD#zj4j!}iR^w; ziork4eqqdPA(mJFJQRxxiez1>KLuXd+m7AKi1)J~;P=5{C{&QMC)Cx|&T22kCo1SE z`-}w44Fe<V872nUtNK+C@NEEsU9~ZDg}OO=xLQKp4w7f@J+MRkPubhO{#g)kgzx`g zJfTij&aMaH!oESebis)(fAfFyb^peV?~8-LU{-dndmo3P)^P?mkJqFN1H=0U_CFhO zziIB#`w0j0fk9l|?3`@S@GgUU4q`AdFor>m_Zr}5LBJ_2Fi~~(Uu9vSK_NDP2dWLR zaQ683tTU>lPzFjx8bB5XWZs`x@Dl-_wEP?LuS3+R;A3jozVZNS3(j%wZG!$R2)GjT zFTj>R6QiSYr%ks$Jp=+z;A3Fy+2hZGfVbKF1=r2p)x*-=1DF^ZHMdW7IGKS{<1~Pc zEOVLNU$EVMVCb8VoW){0gc!&RuHHcAnmZoOb%eNHg`zbxE}vKDMS!ewAeofFPep*A z2soe5;apd!i-(;n)Daw@K&On&2A)s`(9;|IFfjO$;5k8u!`)y|OFL^j^l~qZ7jWYO zH1-t?3~nSeRr29zcZdx-dDVuj%{PF-Q3HkSU3c)aAmApYheQAIrD#k-$2W;~5!_GZ zB!k*?N#%!AffsbMb9O?*ZBCkQwE?Ck1wK$<{V6K=iGX)Dp>qHCiv`q9@%|$lp8<H= z7CaJ2G;i=_FtShG%N^q;U<Gl92srxi@BNSeUsnO;|JUsb{BuqLjm%LW9wS(Yz-R=% zs5pxBTiDt#|4j4z$F~)zl9J_6sYQWz`@qA7#PH}vW>`V@MmC5$(4UzX#MKFX*UCsE z%pwGOya@CN-1o17fS>C_=Gi&I(A4R1pQgPwNc8#?nB%cuZ|}8(&u66fA+DCTcAikP zJwrjmL1>Auo09;`1Ez;ET2CNxEIjNStjrvt?hrJT)i7VXfSY?_U}79WlIH$062;QN zj$cIh6x17vs$dIPYd>xRc$Whep%RGoXCv()#6-~{{*(e)r-5|XC<t`#BOGK%l|bTL z{ma0WBGrQbDf0WyPS$ql#yeg$=GIi;<cmSeB3l~b6%qj$$$l+T+-xoF3w(hEP$aT0 zz22ZQKzM-8r3kMOy)Ogft#$^gadFfkBmPYVjM^3zySfvkpc*8=Eg>s{^c&LqAXsun z>)~H-?RM3Gx9@?_2x#<ILBKUukO|<cCZ~OT&0y)Jq<#<s5`tj@xjmKEkRUb=&U@GF zp;m)pV~eK^tySu5BfsylpH=pdWv@i-StS>$RqEZq`O~Cq00O;L{wW1=Ehso}Q4r{? z(hQg7OBv9@0x7C0$qSI)|L+p(f71J-szO-5o-PrzDBoU`@T)cU+{JbY66D{Tb<il2 zNvU;F6qqFhypBw0e2GMGbauK5^+7`*(U+&p0&WIgi`tw5RmcQ4PfIlK!yJzv)dEr3 z5#X+nT@@k7O!@nent&6;5$XoU2DGt~!Ik-{3J@2xCZWy;qUVq({|zqSb2}@jHyUwb z4BHihfGStPgDei50q;+7z<oKQ`-X+ODYNORV4Nla!yj^Q7iUDGxPkizES%8^(n-aV zod$&18=4rw^Rpn}gnY<|e{M))Jz)j)<T>T;2y;NSk_?feH}>H58{k29UlZs^Xc>40 zys-hm(sF^NfwAdVLBK=!k)-i(va@uy`gdSL=fqSCG%TRt^;_UU){L|O5@`Qmh4=xf zXa^Wz%~?Ts^-Gd}f)!+hmn{^WVEkVXvhjYN)E!i&3AnPo&oO@%1pK2Uk_=wJN}Rpi z%-lR+FlX1j9CxU?jgX%%$^-BJ0MGHC9Pkt9MH&h9drErHyzl#wrXNDU>@;=%z4G@b z5dn9V*%#*sI@X>g+Bu+g5;&2Wr}aRb<Ok&A{0aO=#IFYXF%JnZqLn4PK2d-fgcK^$ z&ul-Wg(VDjfRrPXeyk6KFfi82P$RMXu>Ft+)jG6gzTXQNSgJB=_i=i%FVAr=F%4=H zb1W*mqytag58OP+f%vN+;4ClqCG8hVoM+a*vIOQ{IUw3ZHa+Y&`@>w(tz4WQeh2b- zfO&vC>I_4mX<w9&4Y28h^k()<mD2;%aW5*~yX@g-LBOvL?MJnOT6my~o3664M_>cZ zrGYUHxpOcM@6XydgsK(64}Sy<*#gLgjJq<vFV4<&zldz$6sz155#Z@-P@Ce+;{LdQ zGF_sYNU~GRLmE)g4Ny^J6FJ6#|L36bhZop4$TGbnD#Zyv)Zm~tu##T|v;fb(umj>P z=0>5qLeLYul~6ltyV!m_YlxGjkD1NS)X%8(ox90U9RXUR3se?a#9EDgk-$Ce*Ax$` z135*(aA_ur+Op9`2k{)x2fFXWUbL5DVPF)1zy^8f#IV^9=irRaf@SkE=WBtjt$L#R z<0ZTONPF&B@&HdKRnL6Y5-c^Y7^AkwkEnx~2Oz(cwt9{NL#fC7_bcU}HiLjadb%GH z#4o4!kpJBGhuXlH<(O^P0Hq5&>_2JXCjwsc>;Ry|zQ9iE*RR|_56J?CjqFx}()R;` zV9yKPVnszKF{Ug~V1NOt^$Fze%kpuv+|MWLN~}j+2G&<Ch|0^Y+mGiCRzb|Hfk~qo zFc?F}GF-r55dua>E+pltbnnLlVUzbkZh7eI=0!JP%W>MM&T4CNUncssfpiJ+9tSXZ ze*x8HMG`LymtY@fwSO=sjJa6&0Za!;!AJxg)~|wq8yr1^1{PGT?7)%=Ivq+!VAY%i z*31IpO=PSi(|%ZBeE(eMb-;R0QH_((dmwE&@Q27vGst`x*5bb#c2N5Y&6_|k7hu{# zAQt8QRsX%dGROH>OfxGFM|2Zi=bcMiUx0hv1cCcWByc+K-+>+7?9kY!l_~zFCzuEv z2mJ?`+oAP$TvwPQIxatLq!O_Ehq9<^;jz%a<AT^^Z@P<yowFN~kPjLz8pw^@aID^k zviH`w&@eqkq~kt<#Wq7QiXk@~P2gWK&A_4+x`xY7c(y_X+-5a!p~wmrj`%w;@GfWs zJ~fX+DFGDhd=9l!+|2$vE)3laUSdv^j~)z_>R?F+c@Km5&EH{vU($`*If@)-Z*PKj z!~LIjgVi3!23G-FUPYq@zQ~uK4S`?iAwso<yyioh4p0cXF(sxdRonz@N}d4$AvaQA zJKugNbH9OQ(Jt6P3CxybuA)Zh(}RaW|6BG!Q~kVpl1ezJJ{~dZPKd{kzoeS&t+%5= zOX~6H<Ab#rUZ7bp7yDHZaJikoMMG_Dz~YLvGaCF!J$tTh;MA#rw*-UFuY!QbV-fB% z^89q_|LMcb77DRKzl}qCqwH=xSQcnuMctLG!1-G``u@Bu)xg{j;>i)vNs#4ECi`3R z{#``jm~Eyr&`K)!4ajb&mhvz<2;#)|jkzKVKDWAqc&myZ)m`{g9|r#8PEph@z2%-U z=n2NpGis>aPvZDt*q^u5p)&0=6Lm&G+vS2eF>?1?7CVgjE2AtbbkDwkPX8&$G3PNk zWa!}=@`}|bu^#~ca7-F?hH?=-%h?r}Db&ggEMTJP34iX$BTpCwbkK@+(02TBT?x1x zsHGlwKvVxJ2zUbr5mLAMubz(1u23^Occ|;X*PtE{FV#ZoZ2NsMFxs0jQNl0-&c8wL z{U$WkFK7x{kN^Q=&{@>3>Y4gCSg;dk2Sd9K{O8dG<hXJD1zPg||6BrC>;6>`@Rs63 zv43?a0om%gOAn*&+w1>4k$~(@o|hd4{p;fh$kN7D90uO^EJBLa&fqmLka2RNc6`ao zL!kQ~M6lDRNfHFU`ZS2h!G77Vf`D%{9RmG-oI*g3?A$&aLjLO`2pqrU-J3&n&mF@3 zi}MFSx4#Mk&O}Iz&MExv2!C_<0NDU8ksN~DfBvY4A+T~CNY@J<WG5ZNhy?u^2pr(8 z&b&K%T>wNznqVXWVb`yMfNL_LWkDS5Am}zJDC#`iZvx{PIET8PSImkQ^v~ST41_*t zoLx;<L)j)6-yed&3fb2Oh#mk#KgT*=y&;4F!l$#8sFU{+G4!y1Hu(3Ms7&2Ik1zzI zS~7@wkwsgPK7fXPcG4iszvu%rZ@`M$lHqCxz|c-f@VVN*Sb?dT6=+7}WpWt<v@Eds z1$A&nccfx>^84+*!)jH)Fp%rmZ-O2L78Uo4V4Xe1i0O>M){`bC%EITfD`;U*h?@_9 zxw%6e(CtLMDDnL250-V-EKqf}Q-+?me{`(_q0C7KQ!NOXAtLLnv>PpJf3ZwHWQ_9y zeI<b=K%Q+Ud_D-Z*8}!b9VK5^8y~P-cCgZR{8!i9b8!SC2Qtye<ct10X$3&U<6x?S z?BCob4#e#rh?_?7$cqC@aR)&o@*r<BjTZUut~%6}6)Zd1S?^tf<?Z-CyRW^I4I+M^ z-g>~FfS&QIAmC#&XsIBk7u$Dq_xvzjj0<G!0uQpgd<eFc{@5-5=`Ifl<a3V~RuTXe z>VQ^8UM3$}M$d9~N55K!dPDfnN+RILzoRAnabGxU)Q)=B^>0?%8hX|~>vE`fTmA-Z z?V<<mx7~qy1=?>C3myqNrT=#!8fw*0ugCb!QKvx5*>`G#dSAqEQV8V%q@TA(pbCbX zpZGV<k^u>K@Y%n;bK<B8Q-7nFSpG!)Z_c6r(x?6@+a3@#!R2q@o8t!qf2O-cC8A~; z`%Mf#aWL_pykn?1)a+otacn#X<4|*jp^{NEHvJ|~@*Ye^%HM>FMa|3f6I+CNiSJ<S bzge1e)N#Qu14ak%hXJgIa43VLI~e~5@TYXr literal 0 HcmV?d00001 diff --git a/Lib/ensurepip/_bundled/setuptools-63.2.0-py3-none-any.whl b/Lib/ensurepip/_bundled/setuptools-63.2.0-py3-none-any.whl deleted file mode 100644 index e3b5446eb59cb5ac608742261a3608b412bcff08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1228000 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%0ArOn0j_l}m+Zh|S^EZc?mEFqD(#d8I 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%0Ajf&%}CD&ZH9I(O>A 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%0Ai_P^SPM*) zFr4@4_gb^!q6aT=v)lbf-e<PTO2-xM-&p&_p%EXt@6YJBIj)+GaX*HPM3NoC^O@np zAk_^N6}Zt6P~Ns#TNP)lu3qR08J}r7G6RGW=YKMgT6A9KqwmNrt6%);(q@}un^PSN zWJUMY`7?tO>hPb>mf2bFZpJJs$Fa;8I1Z0sWm$O!5*8QA+$#SY>-J1WGq!ZxlK06} zQj8&Hui{mm5Brl4twJCg6SgeT&eZ)JO&`7w{P)SGYRlAqb51yewg5<h;xe3>)>Vm_ zhax?jYHKjj>1f{8koeNg%g>IhyE`sZEjF5eH8{r;tkORVYwSIfoKMSfY2QJGpcbLN zY#x4!56}uC3$C~chSy3_QV^&3p<6?B;CzEkG4n%T+-ADRc0vDE;){UAvWP%1AO~W@ z$HdmFHYq;vA)viEBp)*<hiTwSB!&yZRbJsT*C+QOpSYfVM>ramekVAQjvJQNSiwn- zn8mg+SYe4KN0`5Bk1`d)3C3Q3_^t#^SQ>D{7CgX;2}*=%mK)n$zAy);@E{GMsy?s= zr~9y~^yHrsQ+BpfdLK-qLln=T6!v_<&xRxFvplf#IHaMTo0&<O)!>Q!vHAy>F&{B# z3e>#@IgICnb5iO1(za%?+%7a7f%BXn*NFhdY2LO5^GvGANR{K8a;g!D(UtTnTH1*q z)>Ib0obZ|rdFJ>O!R^$rk0olyOw8h}{?8Wlt-&!YlM}ZskkZ`@+0QiW+=|Api1A`! zcBHTcgM%Fu9D<>Z67*^_20F0DIIL~96(~IrCo3AJR}bT>(^AC%$067EE08y2{r*4Q zUGy}#$-L_{(B@%1H2InP;(hj*>Jj^4)1E{fBYPFGD8A>qt6yw!@TT}=pE2U*Tvsz8 zCNH!C4*{XgAvwgqK&=zzsux4pgiVJit(}KnZ?+E8Hyj<OtN$@`d3qk}PEc&nzEQaL zLPECdl&3NDU`f;a_x{6uS@gsg-F5x8NZf*h5(5Pw+{y3;dzx0#EV=8}+IXU1Fb?Fo zj*Fiuu^c>++wf&#h7Cq_)5XpQIKgyDoo6QZjAQ*h6`!$B!g&TkUY&kxmNCdma$p4h zDx$}dCFu5K^UbZOXjQr`-Klmuf~>gkF<!sq5e1j`!S!vcr~o+<87MahYSB~E6+3Vq zXm~p#C&r=G6~Kn{e@=Mm0jRm~TXuQt3m_iL|52L`{%5S_Ld_}X+0W+>{|?PVj%;FB z#8jY=h-P|Z*g_TKz6Fhse;HL#k!wgZId*dFy+32SFhuH4A`_bIg9sj8@u41XWfF3C z%|pPb!@km0m~wv*F}mm8`8D5sbSG5vL4_@WGAZCLOslV!vPZte=PK|F%9>YpL4kM- z_$w!t7I0wX0CGpb0YvP3&*TdoseB(xy1SMDp%yjR;b>@qP9>^|&sla1OZFv2FqHK7 zz&zfHgB78GUS7)IRWxZn9aDmuj)zmj0;lNT^RTM3?Kdp=`@E188t#p#23gl1hgQQr zS6{25zipV3)fJaKOD?BD*7~+^{Cb7qGwlO%K@5WZ@&lr)@c{{&sMtM$@>E|I%xUaN zQYPK6B<Q7RQLtty6EK{MibMg7o=2RLA?;D)9NyQC2B~QbSwE<)L~h@J`;*5~Z)zb^ zlrZn6GQcXba$ZmLL)>tIpnP1A)u0ML7#~g+Eh>grs%6KWpZbvrL3N#JAv!#sZk5Bh z^8obKS>b5d$Di2^Zxk*q+hzDVnBehYN|y5v!U~E|D<hJ>ZGT*ut2R0Ju{OSgHL@b0 zm2qlx--gYM>B6RDqWE5Fl$Gx&(^LSlqmf^6{wm-OT?7dJ0u*cc)vLZrk~(X$O$T9n z?KUv!{rTk3QL1B*ed}$xx5z)yW(YdDccsb=l@lB_*jvRUmPm#CBFh{C_Sl9F2?9|* zCqfMBUV6ey$4v(grXZgb_#DIXApd-b7aN#mAc2sF94Y2Vh3gWtRQp%O<=%7(pfBj^ zHHEiY3xK9%bUae)-ZU+z<wCubLXkV(t4PzzD(-0L4LV(9O;hg-2IJ+j>(K+zwjV6Y z36MW@iJ)9;<As-X`i}rT4&A7c%+Bp}PRt>J2?Y_`>lSU-!LJw%5iQ^H4YA6R)%qGN zgv!>scxF<9y>(6;Vq5?v-xdv6iDG=wol8D!x<yJ{US800wh-cpZ((TD1&YeENp$|^ zIhG^&G)ods6J0?uXL+&it?e7hvJ4k<dK3$K^FGNjETR=*6NZ~q^*_$7LKBfBHB`bW zV4vF4AWnl+c+k;bOK1wZch|;D3Eh+AFP2EfZjt2=@j^!YN2uI17c2?A5RQ`xi*#4k zqL=Q#=}CB4WuYO{<Vh5Y<p>-F==tZP4jnyLriT%d;oJpQ3$GO!;^t}9(3sG1JunKl zgj~s?rh6yK<C>NZ`2;JInIR>@x3+_wZM_OM4amb=8qnC$eNH1imaiv!)sEL>m05Q7 z`2pbEcOe|U=jkNt@16BeF#+1Me_pLQr=vh)g(ZnS1ifJn#eklpC49u)HHl!fxw!pt zsD{uzA(0%j8#kYGUc#yoY(oD|63F5dUAO-9yJZV^vYmZ8b(Mi@N(e(OO<6qHp821L z;bCoaLhX=y|JfVYd#f;*D+nY(w9lS#NqWq}_w)qQr7|cX@)h$Db}x)o;Pom_7p=db z(_l=^LuW^OV-%wY!S77C7P)Vs@piCvj1L-)WM@ec&#x0qrpsmhDqbb8C8dcRM%J{6 zzJ$%^(Nkt>VQygO*U|b{ywNLF<JnvD0Gz00_Cf6@_z=n#2!nqmY@d*p9zj3HpfU$G zK{nH(VS5;qEpr21i)ZxNu;8kr%rfFq*?Y^r=}<0Hmwu$JTL>;<y=cAMwmA!igicWk z)M)^&66U$)5*=qELVN(Na=YO2qjD?pex%(Pt$zc3B5|BAS{RrnfYciY?Aez9whLyj z$%qvz64ZY|cNhS@4%}3cr2<StE+n?nHz^8}=wgg<Bi!=~tDSM1ZMYlkAY~oNl|(j= zvgR)?KDavANwb*PM!i_Rn_`Oka1*A}rpvn?BRX-9jI%Erh!AJ@qKVU+rS)rK@HD~X zNN;b!Jk?@zcg`1DK}Z8}6ARoh6-!?HJ_2zGeC6`s9rn|9A&8fAz=1ZW@|ENsnn#|o z?VmWG>rDP1iiYGkHmiq@$$eY1s2oDhY!&;MFKjuhz!X;2OsK{`1Il$T>&fT-h1>&n zwe_9T7&-gU)J#NPiQoXU0bz{#=*wTmG@*LMS0_Ih75a6+y>E0Gev$Bo3A%J@%~;-t zrpm2Tu^OIQrGP~lBcCEUI4o~)bvpa#GdM~Er0hPN*02_f3?g-t2DMM92+B!ipM*$Q z!99x+t93{#Kt~8kj;}%Bj(GISky|$)UVH{De^;U`v;z&nN+8g~w25)@Dm~}Uv2xbA z{4s%qF;5X!Huu&p7;H*&{&|Aty_OU9G@LVHaBc)gSg%DA@1xM0pea?T?{PUxUScLe zjlNl_4aa0S^T=E|5n&><xEKW;2f|Ic%?ED>*e2))3Uv2eFkrxbBjq%kUVrLwJF6RI zOoBHfc%r|~<5gw09vKn(us!U|(eW?c_J@WHsU-Y0p|C<!10LEm6IZso@*-7N7s$Bm z)4}uU9eyJix^h}F(js;;mR)cH66rn&REZb*TwxpNz5sz+=WC?hBf#p_yNiy#sD`Ad z(MY<5q-l_rY(XMcvFCu2U}#n%ai2IZcPT;WDWDm|g{ksSzuP+fXuS$c$Q<6$f_tY^ zgs8Bz<BS?7>~(XYk%E17S>*iOL1efdz2R-0P4b9i>jwM8L7N3*LG(awE}@jRe+}%O zgrQbgkJul(s8}O~`;SyeAD-Flq-QSb3mp|Hqb?w*=po`A@BI^iQWCqB|HX*x{ts=X zx%hgWu4%o5`<W<IL7W70{6W9>7DNWIckjw3&w@^ojP@}81tn?L98yF2JrBulc$fu6 zO!~meE`sKR9h=g?KE5GvUT`5Wc$ifWQk!tjeUTO~>+&#Lj;g**82nWrYfL~!ku^W$ z2gsO0zG+IQDKr6Al2hyjw>Xl$dGI2Vgo^p+SZs+gG+(@(s2Gni-Q_XOO#8{>2X|TJ zCqAVH@No_oYtfe6jw6BSyB^YZTDgvq><p4Ep8kBaO-2e8FAM9j535OkMy)e!unYn` zRIc=(gMoZN0F+V>CnKr!uO+hB3QQ8QcR(O}V$!m#R7E;5yv)`iUs4z!iw6)F^tI?k zsfs&8oT30@@P~SB<i{bjP{SHc9ij5c{(vyb`faAkgFe}g)}byLv*+`~WZP3NnT%!A z*k$zV9k-F(7@?j<kZ6q63O}3MBtH~Su|#chL;irem3`5kYy4dp+s<|zOAicuq7P#L zCmf^N6O7n+!8WgL>fI6cFPq6iMrE?7_;NdbpjZbC0v$!(SDHZrF<P)g11~heKhxz{ zrE7tzjosBG_gP~u9=aY^*(*)gEX&_l%FI>NLUqT(tb5xgU><7n(p@qUg7m>T0s^m8 zD~;>Y6y;sNY!n%S>H;P%)!ffUWTlf<m9?I+$_J+t!jxsv|9Y&7;T08Wn50A+DBAO5 z!{&a3T9WNtfj-TCUeP)}YF>&7aai%JEc(s*$LwX}n%C)Kd=U%dj%7%hie4<L)PRkR z=B}SE;J-d;0uP)yYY!M0Lc!iP=^GWnzjhmlX$&+l|9wfE-mgf$2{;d4@3G9I)o}Zp z-7Vz2ja#~+9_^(?XA(oiwi{P~j4~nQ3@!r;i?=;XM+RU3@#W@Mb&m&$tPsMpQVS8K z=f%q^N|IBOqM#;1L636;1D`lWW~L(OPeUg6)VKn1oeQ{*33HUs?2yZi_|wn&x7(-S z?mt;=O+Sp;5tnM337q^~X1;hz-BP^Rku`fBqq$opibB-8_c0u2ey9_OOjrC~^_KRS zrL_XEfwX{nfFMB&*kJ$be<1s_0l)wVAWHyVm^<*kPQd7Y#~nbZ-|_H-*n}v3z;}#& zg#aEv4#XOQJ#-#e9$p@Vpl^ub5<mrD3M2|b3-<Qk-@E}t9}YkQzz=Z-j>-2Qk7Ely z9x@)@0H_Rj4gQX|FB5PJ!V1y^;tT@XiDgRMXYKE`U8bF2xB{FEum*RB-6Qkg1>l04 zgTEo?;Sj<~erf{d0k28ZmcP3pig=Hi?szP(KzL4;?Xebm)sLawkD;;aY(j2o8Qv;} z30w+;sg^70nlT<mM3v)o(=1jG)y2aZ%vKgP?OopTb#`4kmFq(pK7*_*6IgGfq{)tA z9vO+sQ=?f?J$q*VWgdSGB=W{MplB;<2?KMjG_{PuDk+}!KUtWN8p8)O9&KmVG)?IU z|J_!~v7)0jI!(42aIEqaT#{rmNc&roHEtq}MPn4&%O#7i0_r#SPZnx0;dE0{*DS?e zOza5>fgHFVYB`!V9xA!w*t44-;P*(3MG{dJ!A_5$%=juQZi*F@mxx`&fjOKJ$aZIx z7Gr|5U+Rx3i&&`WU+6F3ZSo=)WtOIWAjO4TE{l(dS%ititITEDB+YkHQcrX^vWv@Y zcu-U~u2N!IvdzrrJu;<jw(aUQbj5SBh2^ojt>kn%-Alnu{-=}hX6MuS9tH*ZSt=?K zWB0cYd2qpGBzdXnDSE2vcwIoVp4n{qf~};v-Q(oT1uP^LA}UfwdJ?}OwQ=hM4u^y9 zYwRSFPJ5iau?MtsNkdCxAfx*32T*9HoL+qQi%cHbj-y43l#`0+jWYe?kQ6zQRAtK2 zVPVR?s5+EzD#ky1FD6#pp0+ZPQWr988nbRm*KCPtit23pk!WIJu>_%?-ZU(O@!rK8 zF$sGg^$-4|XeKT?gNK^4N7RU#hK72Itv-a&7+Ur?<1Y%V49Z($ReM|XaK47BWgwBJ z!3wE4uL%ZPO>;(7CTobIS><xpB)UxoiZv~B=EO8(os5PGy^QkPk*`&INfr$aO|x+L zx@y%p#8H$?wdoiLew0)e7piuo{!-Z<59@u9xqW;qk<C4FE<+d{CGBe3#N_m_RTR6$ z1E-bYIJX>>ar2I>5n3v0Lr6)%K$z4^|2ZZ>50dCOEEStoyUSh8y6S|ck3)8$=9DF& zrGo_*jEm14Y`c+5)rn&bB>z8extj7aNSL5h;jEi6Iy!oi+?y&Mr>Lq{i--0^orMxm zg+)STvg4|hNt67CyEssCbTlm4kfs}r+s^u(qeptG;}taXiAmXZ(*+$yfUKA=+{vb% z8=M7$-S%|Tqw=DKS0k9evxQWR$4pFX7(}ZiEr^rw7dXrq%HVD6h<#1)6!#A$YMPu0 zs&=&7tjk4Pex0*qFI-8cfOUr>`z`nRiD3sbyk&3C+=OFEK|lOJ4k;4T&X(b$zOGi_ z;!F0NBBxhU#B%1ZF4NC5`6Jbf3su)?`YOiB#}L})SXVu44-O{N8gtJs^+>y!WY%9y z*AQ!<Dku+5Xnb63zc*JTl;d;_6j1`PPVX}bJ2ru#^vQZcT&nT|33#-C_42klP>cfM zD?8j99Vqo!xVHW$65j{Ku(345O9T1<JsLVH_J4JVIEUg0IIG6GqlQC{c0EU46Jb)( z!w4;~r#cK;X<+hp&Y&#O`HZVtT6!6?mdr3xbST8cUDx%&@}8Isn15%}S;8~{myg^u zs?|fFNNtG_GSVE$TQJ9wQcr7gi-AEgtXfs#MG*c@6*yG<3ZZ80Z(WP0>rk`M_wQ!> zvvHricCQ}31E(HgvyVyqvjOazg)P!Jv||ktHgUF%A)ugrkvh7%aFAl+8__M;8oFlN z*fvuQ{hlyU4fEmZ0j!PIZ0wT5eGNK_ig}8lHncRGihoX8@qaJFI&MOLrXPNE@m!zv znH8m1KPx*%a{Z#Ea|OoXe%?!VPaY|{`vnxVrUg3Qf1!NUUoHB7pCIF5f40wN?LZ~L ze~UQYI5>fSc6xi&{JvlU1a>)g>u_osH0*v~ajI_(y2CysAqUMXw@hm*e4k3$Vzqvl zPG|9Ve}-Zyay>mySvp+>J|9ng@4sLeZage*Cu_StHhNZnum9P7T}=D=U9R@NU*GQR z`0efG@Af|4c-{Ibs{6I=j}c&J#^Uq%9vl%UWZUvT?yo!feViSpD)4_-J<sO)&Aa|g z)^7YhJcH#Q3g~42zE8L6V*GlRe|F~V^i1yl&iR@2eY>%U4zloa3?Y6OUjD|>|Mq4R z;qiav7JMfq8AU}IIjs5{KJ0O58~Nvg6R`KkF=5_JO?En=<QGSShemK9=3u^Y4#2a> z$gFzh{sU?aj<YynUOB{?tv;O43~kS)A@<lpXkzZTH(3$hN@7f_YA=%~9Pe70h+y6P zE<t{PJT~}AV>pTMFyv2zDB2A6Fz}R(vPfe^nbdrgC5<DsBJz-C*sD4&&`<pjVM^Om z<n%QDpKkCjaL%*Ur=c$zdPj#jFlGUf>u(v21OKUV7QvQ*G<uq)<k0?C-3&mebC3T! zf`<U9{g>M8&?%vkH8s`2WGJp@(Haxv$Xv@zPosk=XIyfzRD7F{!eJaa5Cs(u6F}^b zkQcI+@De~RGMx|fp9FK|spUE3#pIRe4cG1O{j0M+Z-{=fH-*3Jdb?Ry$Y@M82KgEG z7}A9@u>r0r;B0P6F0M3s*sX6k2rzMKg(ovgKk+gsrUPYmeQiE0ctYto6<vM&aVVQ% z_&STfb1VG}%YB0K^9hahunYBjGveQeIXTDN=Ka0PKlVerB-r64{aW4FpOjF?DScdF zg3Jk{DZSabJajnk*&n1By-Z7cyDaTBnt#6k+W)yM^|L>J9`rN8t=jD5pQRHyNGX92 z<xAxD_L`b}VVLE}o%Jm+>iHhO+jpy)V{)s$L#V|`^qZ#swcquH)2%kT(ee5I*fGW8 z=j*5!TUGG8Ex9b!*Yfzj<7s^lL%5#3E3M7_={Bn&$mu!#c*}Jk7VtiEdmpl5#r5;^ zR^zbdlG*9v#|I0m)t^lmb&>rru~V8d-|Dh8s(JrhO`q6xD@ml*G^S_LmaF0lxJf3f zTOt1Tbb_ivi$NSYI2Qr7P4bc_ls?id5oRx6%J`$vP%|d0E`DM`9*~t1K5yXh<))dD z{yfgQu9~P0>OAO{R+-NlN5f2khMxW}BXSz?Q$;+k^A2i7xP@_5HQAK>Gtj@)IbywO z$2;ZsHK=_qx)GCHIOmTsxYhxBd0WQl>9Ho%3=s0JNHVi*rlOV(EYv^LRKa`QaGGg~ z{N%xo-6)TudXFWP51d89p7YF!sVQJ=%Z3IWEM&0zDG0%N)b#aA#BPb4oAvI;mc8DD z2d+vqt@Xon+F42}LX+cjjuYSnu!ww4M@A+!_%%43uLNfYj{*<6R@>}#%ixQ@tGe;w zO;GC}f78^9$4ynRxV8-Rh-aS&jmY|k!qp6Z2z8_R{Bbf*x`xTx|2Q#Wfj#&92>Q5x zEi&482PPN_*RiFZ!@X^RuNh}VLO+hB0ZoLptLNM}g*E_ohg6b3@7BE*ki+aihi$Lm z2(EUYENYz_k~%QWGtG`P=T?kinfMmSic5GMtPsT)Z-LBaOJ3vgBN)bIXlQ8jx4-;B zVU`eXtV`<MJ%I*WW23(-fz!wai^l#|9BGDloCE_Wv2`!`^9;jq)SI5%H9rQ-e=wgz zd@M6YOXWzt4oSfnPbzaZx+Kk8lYyE^(c`7gZK7LWJ`HR^3_E;GR*oXG%41{Y24BfA z1m9L>MeDf#%}FV45W^zF@#i+tqrfc6uyCt-Fd%%9NBfpOdxhcaTs+0&=k4>zCoK=B zVd(3^aD0C^rHQ_-EtWxsEn(J@JBui1w$m>9=ZPJT<ZUFReRlR5Z1?6P)B);85WXlh z!ph~HpNs1RGzyh^!#D6rR<4Bo#649ZE39PE&dI|VH$P8&KrqXDsgh}et36U*6zf~x zkS6%`;B6WpcR(8!GQwg3D@$xbUb(KlDeFhj*8%46bp9)w)QpHgd5{kAR4(%@<4-U~ z18iC@nhJfG0c(1qz$&-X;Qhg`!abI4@NKaCFeQFZi`tZGG<|%(sz>nq{CWDmEH>n& z8&NA6^l{PVK6`Fi4)JS$9v8mZ>-+oZC)2yq{dfsQK>7pmA9bQ7vS*2j21xN|3H{42 zm*FIY*(ryK3PqP!Wbm?-GC#Z^!u$-Z77Y|A&%09CSt8uF4wHR>!n!LBT{k7IR_h4| z#6Ah~OhE1_m!fAh>K5vtQ%N?7`lB?$HZ{$!MZ-1WEDnbT8<6&&9m5o}GTbT;bC>); zhpJ<9$i5R(kL)A}1E7R@>T&NA7d|`r*P}M#2SW5qK4PCBYCm77iH_Ii#KKAc-#fzx z0>+PijDXJD?@q4g8UfrY?B{1#!FS<zsDN|c{-9mtuhIPvlizP|9MJvi@0%heCWLdE zYK=P<dKKFyyG<tfNACxi%WIeL_5{YpTnkF!=3kN<{&4-?*TwD(!-s0zyc&7u-Jbrp z`+`n_gIwS8@8XCleLZA7Ehg_D?U#6pCA^e}^9lvFsS5?V+#Mg6uSUAuR$bGy&X&1k zv0tgz8|0z8-<o!>&!IPhXWapv7@CdBmoI1??vhJwJQY`^(WT&FmQHeIvC6Z*`kliB zHPt?Wu~o$s{ljdZV)hPj>i$s#4wqnfno+v|jPodL`_aHoWSt_5f&OfO?e8kLDRG-b zUpDBC(H?PiJj4yEJxYHzwC$$8b8zY!1bu8{>xRn^bsF|oOgL|wyX*3EN^E~^DVz?j zb@kps$(fYB0-uwS{}aZ7QX0d`_@JJ_r$*kbo9+UW0+2O?J8T|!9&{gg9a0`_9>9Ri zABhml07#IvPsd-<fBipO;s6jU!0<n7BGG^5L^6NeyxZD23c!HA#TUE1HXs8i7SIKA zhu${{U;yTYsKYa05ya|)d^gB7%AM(F58?N_YUzd39@cL#r!$+0zYn@Df^v5RW|^|1 z^fRF;Jny7m@Ub+~`mmR>J2R90`dr`;>0VMfYkPTn=Rf4&Cye#LjnV>Sc{u3g6(g#m zdcp4@_hFW4koGA9x+o8&P$m^S+(AT+4ltLvLO3>mq5c2y-GVX#P`?=n0sn<4L^_Wt zkpJ+WM|HT!;`d4WJNxG!p8f(9Wk5ht0RR9bU@CiFl|~wWCKm_*Xa)fQ(Er<YGI4gX zceb;$c49C#vDbHTwy>tR_Xts*wk>2t?0H0OJP#l=@$gUayn?yP=TlW<4FKx0vbM73 znAp5sBZo4kK_fD}diOoSL9jMEOF>|wyxz>&VyYILo^b?-m>nFBv3FEd<m?Im01TD! zkN659mKvXd#z2RQ80IwH-p}VCE({TE`<Ft7@(&sxn(QukhI1(mSlMNV0@-qnQPX2V z*+mz@OysnmS^H88IXAp;+DY_(5}A$?0_}X&2xo0uy+pn-<Okp#k<A>aD!_4>E#<Tj zkAj#<%77p{p`b~O2aXsfO<NfAfymxwn3LRAo}e^Hwcq538WMO3JwSQ<Qx*AmJ!y5K z6gXuzo5DXb_2#L?Ao}D{qf%2)s7kTOZf4Brl`7O#5}h}#Uf*f5EtnD5vES~qT3aKE z!;~IE)Rz+U(&%pODAJpE5SN)d@h?J(L%CueMTf~}l37O>uQR9{dHboTxBYMyR)K6z z4P#f=a`wNC*0t<ktNWSDSRKV#7Ji~g|5R5R`s@-w?=Fu{|Ep53i^)XKCRzMNu*JW? zsIdBuY&RZ$7v7FQaFcyT_}`LR<anF}LI40>XaK-}>;IM1#Map9zlv6C=-X|wBl^9T z?kPJb0!i59wwT<tG|5E)ERadJ=c;Kyr3-M`k;@ZQk#84oV~a#5{%pW$5VV9JefNHD zXM1c)nS}3LfVug#sGj3&z~&aChVrF_Vhl<RKmS#tSx26h-NmB9$?iuf5nY*oNVRQS zL;QV<rJ63j1J#5d9aNhZOKEMmz-b}=*Lzw^zoVOzlik%qU{^!`!^zd^r>Fnr`Ft_N zf*GDL|F?e3X@k{6e&y&eu&?(h@_X57I1x>X_~)(NaK!J}Ac<WSlNWp#jZThJ+Z(vY zM5LKKXFb8h$KKvvmU|c#-_jP7DG`;=j+#}SdLTh)aSua`0&6&G$Nyfiy^fapPZIBG zU?#7^_4u7aV~HM;khVP-w82Il_3MmwLca`0g9+Ytol9aB`O^}og|!bo7;javWqCcp zWa02z^6F2hz1&@*qS7_YkTy|_j{|GMVfm_vPUCLq+e~DdSp$RJwZ%er<#8}_T3jkT zxvYmm7La$6_g?a;)Ex46_OZt>(Syf|8yXv}jj<F?Hhs`kB-;(u55-X34beHH22~D2 z5IEvFO&Ju~70N+H0AEy6Kg9b_x;jh}3G=M<CjyX?yv~Cv0sk_Thjf*6ItueFZQ5ys zM5Mv~9*ak2#}ckNMN5ul;#*YkSx=3}csk>B>eF_9LfF}It`Ue)fLFi}b^`|w74)c| zeAIB6^IVvBBRNEO8`^^&?wWP1MzFd-HGzXTBi4OCfoCR<rEL=frMuAQNR@=9ib9tO z$r93hE0~Jt3J7tXCG8$)JJ6NCT!a~x$uV1DMHf*7T9$#F`#^O3;)bapotIMeNS(Ip z&C2%Gf0=EJ2So5on5wuw0?VK%iepHPub1aJmIXY29x@sy7Knd&HlCuBRr3PDK=g$e z%-aD0uUlJVJHfE6XEBHo!G#XD2{Mu{7<{T}sl}@320+#Uq|CFzPB7=GX9+82@{ycG zEt6>HVuOIO_G$7{x>^_iz@AHNMv69~D3Z>#%9&cic%@Ar$pLFEq*y_WjzpSeA~x%} ze_qMqrJrB4vsKnbrsw=Iaow$Ej??(kD_D+}hxP@@s-IJQTp8$9y&&6WT4zh4<$fa- zSTRvP9vDFx)m!&NN!O{5>Pq&?9|^2}J{XbNm$+K(raS&^D`xv!lw<aa9e?pq&`^%i zQ|@UYjdN<(NBii(F;1h_(jxRsYL|YCFg_Rv?@25}@xQ`LlJY``eORIG@*)~E8HRMp z2JFL^fMe{=Tl}XQr1+ed^#{Jv-vzX(^U5pc&8n`a*kiUDkE_aEQ8nB_XhZR@El)Mu zINusI7|TF0L8U$9PN5B}0&KL$$ep7HF<6v>0bM|Zgb}$4QuSaML?0w8@08Wn06x#8 zA*Pq>18Q4<`Px`{;*<%xmw!D8bjPrj;J`hQIV9oriRtWCbE5zBPYgZ*;u#<rR=l== z-RK<_qwf@W=089et#c)kfrL)Bf3d<V+7u(F4DVVy#+Y5dip-b-y=8k)9?RZ4S+JMz zjz?o31o1up#&oD+;#!aC;({59rTEIFyVrX9Kf{AOwU2LPlS}O#pjJ4B@m5e8$A>0R z?SAfFUy~Tn4sKKetCEMUKxfubU^f!&(K_bu>AbDT*(z42o(!X_m1@nAVrw3Fz1Kf< zVeb9N!xN;Y<!*WVP@HHjvKso)(|2Ax41o59D~UI01FfEXH`me!9Q;vI?u;6#8)#1# z<0BpND(f2B(>W-~I-z2aO2xVsUJAszPMnhB>CtRx0>S;=Zg5^mO#1^X92i@|$3xWU zIHT$HWey?No)4dxgDHGHAaV>&kOG8rdY(RvqPDF8UUF+*I+B0bIc}=cON(5*X&3=N z{qjcYOKUdyGiFMC(^V*#PTa(96+|5i)75P10E4>l$Cy4Lgko_)Hp}Igo>0S=BICue zKz8)2zQ|CeBOrGQcm&J0PyaPG1mqzvJmyaSLT#SV4WdCT60j?#@#oK|%A~Kaw{5Av z^J@fMe4Xwd-r$YKVXy#Xw7L$%V><F=AC5e>24OIz_I!pQ>r00-bJv(9-y_@&X8DZN ztpQfIdu)PH`%s7o5hrI>cdQ9$`|6~<W?)#sf8k?caYlFz6CTfi=4Ak72}=4TEFh4t zNS;ogte->haq#hMsvSb1x3Sa=W3(2CXts8Da6RgD79(G?ub;7WLqx|jvbui+Iss_Y z&|^k#0LWLnm>4n@FFvl81tX@ewQTwbyN3dWQn{97+m&h7g5#~<_cE^UXc3jCI?d&d zAXLDmiv%G+^FIA?&e7GsA+ZNg;^o_Tm(;1x<oNHG8;;WG*G~$rDmCrl2j~w9ts=4z zhCCi}n`(huGDnm7)mV6*Tt_H2ZdG&bCISIJK#&6MM7`fYO~qBns75b+K%YC08bBKj z=Z`>cz0(BUj*npCS=lHg4L(*JJ#v#to-34TeC`@>21oxRwSH&pmgXc2_CjsRiCv%b zo^qQ&06L1=GzYzo!2+Fl=axS|OK@*92KAd{eBzyXK;|0WeMkEP^uMB=%0wJbhY0{M zDFFZ&|4+0noQ&*TO&mS`lkILDZKqA~2H(@#v_O1NN>o%c2869dx9*1QwgVTPdL4dk zYC6b35ojbx10Y3Y_2P<0k_UI+?VrTOf9=3|v}TP;Wav;+Pft(Iem?0~U_y6)H`Owm zCRysIHmf=krsY*>?tNEv)r!|tCvAwd6H;ZAO4nUFLK*feEJgK9hg+ue<@6$Nq~-Ix zR*#}=ApYYAD)t|W8>_WXtR9flwKT*~B(2V2>4kf4E~&vB88qEc+bwITc(zwW7IaKc zHd9u{1m`c<Zb|}Gw^ZxQkS7@-HOaZ^6m?o|g0Un3f5uF8K(E;uZ;$;+#d}eBR=p_s zfWij6H;I&Vure6_6{Sdn#C4>~)aVjM0*K7HX%C<rgkhJHj}42Lki}OF2{(|YI+lYG z1=Bz~c#+AF@f1m^nEf%R>U37Ya0Ev|zC&5;{r!3W{rP_U9q<$UrJtGXdTrV{|EY5f z@qBOeg!0arBl*2IRoAb*hRHQZ>?71o9D24@h?<VYFk2gdkEdOvm;1xjbaBJ2m5)Z7 z*(qv7Q(q+rHc>Gc^1Pzz|0P&tL$OE(>zT46X_s<+VD2dgW~|6zlA&wi@{MM)iE?lV z?5*RTi=+dSp*&`EBT=wf+P$SL(=wgWb(0*gA<TFrC~m0P9tav0>8r-H{w^O#m?rxm zr^{BCmTlcpL9O+jXGu|6vJtKZ1qmusf?rvyxgqV_OJ5P<8<G2Nk?pE3W~<i~R{K@3 zxomE6@&3NM+bccO<K^=5o$0n4%f=}aMXXEs&^6U)OT7cgq>>c(Dd4c{FDU)*8tJ&{ zN)EiW4-ezWyg43a=5G4WqS)JkkE4)eGrg%oI010KX51*Xe!tI+P>%*1mh6$1+g>P# zy&r5<T=AF4S<l9ad)C8LEcQU=EMSHsZ+ABT2VFp-zkV$*C&}x)0Op~Ep4|nux}1sy zEWqXDL)X0F_j<PUdNRqbK(UgX-<buA>2Zwg(K{pv(_Z<)oslBY99r3JYwD``f9YbP z63ApSS<012z&GT}q)az5#OcihO)nD1&xu{8dm!Gd%L<)9N$mx;Z<Rr$B|->-F^vXb z%=%rh$u+=EQ=*8Fe!Kw9GNVOt-ohe*w^-$}2_s+%+)djGkRcinj}ChLSLh}96%8uy z*nh3IWyX4ucRRu#*8dZQKw?F7S~3Ns_2TWP7k~edy!xNBw;x}=nz1tRBF1ri34#YM zu;I&BuU~w8d;Xc0)buaJ*hT^jEa?FX76%Ru=43@XHDAChHBt#0$Q;Ip_MN;Vhc+|% zPr5;a*+$CijWjwuI-D~9w1Q|l^loPQf+T+A6-h+_uQ3DwHPt8v8n%Hb!^9g#qU{u> zRm*aT)(eKG=~2W$LdNwkBt#5d%5li50u&UtIXZL)^A2hLhw;SFP*2dgBRRrJ+y3?{ z2YkBCfk{xZR;EpMC6}@3{iYM`Rkbaa^m<#@MGiWcQhbp$Rofod;0r-FHh~E9SjOVx zk8h9LZdb^Nfb36Ju$>u4**s8!NCUY_Yrx&Q$<s~(USw%OeMP&2`QEvcQA<eE0Vg5< zxrHD~qMVi0RC<;FBw)SJfN(%`1%?Q553DS+w9&y0cenHYguxAp9#=#!*i;;@swxJu zG!Zort#G?t*kxT&yF)`PM30YlOpiejtt?iNJ1wPjk4;N8ah7HUlnz_b)-ppAUjkH? z#m>xTsq{??U59f+3dov61?R)+^*I8TZ<Mq0-k>lNC4xF&#SH5S_5`l|r!Ck;0bo8{ z)YvtoN#AV21obB{95DL02P39~LPfMdixT*Qof2GC0(<`*y?1<32&Ns9?L-bbc$5}f zm>mW<NbCq7`3N`_M~dU8QBczCHI63s(|$;FriFOu;o#IFpYoqm3v=oTL7MWO7SNhB z2jB3n>fUJhk;_+2Q#Fc{7U3xCv*OQ6ulx*Df`?H<dbnvmf1BS(7e96Psb1C;l#N|K zyDP1pU9**J0r|>9(7dd{{wVaqj1RO=rbxS#oT5oHMm)-qR;P5cSf*rJ5V)4R&<W>4 zd^$xs5jjfufWV^ZTHpJgL4rMSs626GTrvIrR+bpL$Z;oPV8-(RP6A<Qjre4AV}blv zLSalW6~R%G)VmDQ3YjFqZ?9jjm|wsgc`>{R!sN6IqvftSPLU4ytkjqQvxXXC8nrSW zgIkR+F|HYU#wm&sW`{{ji$g<Xb(<E~4j4>T4qxQub$faaN*B#Mdp!_mRlOrZgxei2 zCI-#$g~|Y>kej;WHnG<k7CNDxr}Xk-cImxV&*1IF<-~h~Gk~|qv!*c{V9sg_uWF8r zbj<ium6xHJdo<|N$Uzr)L<nifDRmfj){)|=Ap@NuV#s8uiM6txVwe_92E7l&hwHp{ zqLr?ZIx<cnV8%7(kXh@@fCPl{KwEH(gnk425cC#Rb=@ZDh!WM?osW7H4P}Tw=;`uu zD@R%8aEU5Edisv@{PP%#>ZOhhxypo`D&-9yXJ?no!pLBZr|+e#Rd9##3<N7$ra4A6 zDH#+9bd&Co*9~SPdqsL6mep;^J;3r2t#b{d4R{D~3-lD@%XrY8bROb8h;~C#xW_!n z$Rat3)KuuF38S)hFgCfuA29TnSd4LtEJ&E55G+A3jX#fIzE;w_MMMZan_)#cbZR7r zkpuLv-v9oauYI`pzNxi*`oxnjpShX^f|OzGZ<KNDb3phVg3t<rdI%u>VkxiXIV!eJ z4cYk~9f7VM9l>zfwrOQgzhd7Z{f6EJF%j1d%^%Av{`%dr0tZL1azWHHEnTxs<Xz_= zUkmw92am!*#*O1dJq!c07=s(89rCXclO9JG2PRa{0ZQzp$N<5wnd*=qn5C<Vp;Np- ztv(Q+B-bjrI1EB)FcNDdpr%fuFciXY1?!`N%bnO9c~rc!X9a4=yQ3u3hKtYa$(*7} zDC2c3u;_9OUIZ1>n%Qgk{+0&nncC3&lw90U$U;Px2R7;s7J2D@T~=A|Yuo$2HJQ2l zVw09NLa6(!l(*jZ>?$qSvZ&VX!%ntc|GU>~i;&ZAWgdD>C70qy9(m2U!s<PuGM6_% zmlyr-UW1zO!jmMX0-msPpJ{L(Hy&^P*9KBy&=M4{JJNwTh97aBw%4NBmJlzu;zaxv z2NPVK!}rcqpds|fj(K@gImu_RN*Ab;{1U!2dFDt3tUYPLAXVoNXYjGl#SgR{G&bx4 zviPe_+FW}g(GPpeB%2J9t+8h#Gyg7ME@kOj(8>EIzrjG$#Lqr27jbfVqzEaT>gCU1 z5gpdyLR%{hLkP}R!F~M@9|bD4L1WilqDX`LkFu4`jWl5h7cMO7|3WwS6fegml2flO zBXvk|r4=2nUXIl?fCur1KR&aL65`*azFsGJ%eV*Ri0sAJm%TD71(Es{1TigUU}13F zcH2c8*wK{l9a2W*gAkok#y;(pB91cVL7vSn$I#C6;_erPa>J!{z)od<4hU7{Y7BE8 z#h@nwOCJHoOt)vO)g4=;gPOxfHTWWg1s{o*mB%xi{fMzY-G(ndw3ioW*(In>*KD(H z3<ywwX=z~uUc&d8I6FD}>MOA@u;jT0P*raI@+WWs)o+Lz<bw@f=&kU_;DR1GM&4ER zaRH%!p?W*kKC$tfMxum^6rr{SGGwrAunGV$cUPoWQ!hd1B--MLJCA7-K+#|hmC0S` zaW2JI;v$Fxj`z&)Q&C3B)X2_gkV|7^XSA>XQXd*{LgS)1hW3DADei3YQ2^RGv%57I z8m0Q=0a!WY_!8u-s?Q<qA@T76P3A<AQ0D_MTy1y2(T1v=Sdc8~y;+2bg-?}wgji3W zdO_1n1n$OE-~@%(IL5YAW3X-f1_^RcvVWZxt?a#oeprCp_qv6&9V6#N>y~b2SyvQ@ z^~lTB-jrA~OAGPh{TqxPRZA;Yd!WP3*anPo)?)_DX_L+6>S<#)a*g$Cr=L@}e^)gd zT4iMJ*d8>wr5b?Rx&sNX*N|&0F@~Sd9ZK^#)iD5%4aJZO2k_q#>yxOY3()#oWFf0I z;2ZNrPWy3aQ@|B0pu0tZb(URk7im5xz=t#k#sh--d$wB7=TR)at8T%R!64NOLP2Os zHT{&Ta!$%;$YO1aH!jyyvK`C}kJdC*CM8!Xd85adlT)dk&-ENsUwE+V2?_<ugK<tk zM^Lsc31GN$k3ZVVqVc-lUUjv~^B3Hil1;a>szg8nsKW|G6>UVYnFF`yS6KA{8_TH( zc$?;UYyr2u=WUY_g*m<hfpc*Rx8WCZh2rE1nNcj~3g3(Y$C?zbDrBUPeM9@bZ0q>Q z;~b9$@W!jZl?ke9$8mZh)9*kv{UlRycK@)SSBHj+V5ndQ!C?BCJSC`@l1rib>QoGE zmmB%U`@+XvrDS50w<J(LueEI`O#`5Xl-PQ3R5&1waTr&ZwNASTiRQDQ(<XU&OjS$| z3OcnRu|UvYrQ4!o%b^+xZA|c4pHj%xiqE_t;5VQpUA~d(jFq;Ao*Qz;ZUtkrGx&Lh zhr=Z1#<>4MDb5&Rx_0B7o-uT6fsFIgHUc+|+a<Jx3S99D;i>>bA$q7r@>T^TwvTd; zC!W$WlY1-?^o?la^k{8qNkY#T!Eipx4=V33ZYqedamXu~F0mA`fn~^H3M8|3L}@2I zFo3|U*tI4fNw|y=4plI6d8houqfXQ`F)9&7R6C`8{ucD%bBNbx%sAwpW0QA~>STFW z>=LtytL$mW^o(++@gnJbuGUqRb793BP+4b(S+v!LoYIDO=7{?f6#^FQio8V~jE{$J zh7Zlc_L107@=2f{2raa@FBLo?$;XyV!BaR~G8e3f91eygy{4LDZoPAd-`9R@TIv-D zIqkZ}PHD<HnSrZ-i+y%T?`_Wr{vkf#GAY}plcl2EZt7iZPhbHkW(j_b&qgUlj)Lv6 zh%Z(#?NY`yc4W2s*8O^KG&JR71s(1YRdjAcr!^;|`xpldfv{AxAp)yLct7UTthM1! zQLW>pTx{3A<^=C5VXc{hEXS06*8_+u8?+%DIq=DhKz1DT7sX+2M1Re4X({XVibfUK zG{;zCwB><tj=Sn(MBo#%>l_0dRjyV3rNs?T=g1IbRNdp_BJttCWBS*hkcnXiNOrE# z3qx3|ZM4XC!$()BZ}QY)F~%qJxeH=$@N=q|cb<VM);opmRe9KP7_sxu>GkNubybG} zWdDd05yy)dVxx=d9nLnVhPRsq#P&t%*Q{Ko^n;0Oafn9F$fIGKlbiWEz6$1AdWw%Z zEJ+9R0$*@^EO=#5kMEr^9-Jx|q}vGCPDRmUV7yL1Ir?CK8c9#p9wX)azM4{P5<A)! zd<4TvosKhkO6FOPkNl^6eh4QJjfzGqy<EB_S8+e2^)M_8_I&t=5k8{b4$5JAHgcZO zQKC5}9N^Ub^C9?y;agg&D*-i#8CMm8SI-tMg5VOfL?_nlYi3SaC!p31<es8USDd$w zVVNQF3GA?Kw;L5QOM5p#9ccONT?GDd!*hqnH><H(Xzxr|Psc^ZCB$j9bEvc%?s;P3 zHW&hwhAvdh=i@={XQ0HYBd7tl@vOi%^QouXYuOQ^(D+f*hXA{gP1zsQkG>cU?6U6# z0!7;c0f$eJn@Wy|-N8PpX6+H%RHAXe0fK^4ZLz3@2NJq%TBvj`BcIzoZs~i=i<+CU z?mH(Sbt~|Ddj99ov5$gfq({TNcsc;N-uM?FP-+9OJ@;4~BmI!$8CSMIC&XYor86i? z%t4!KOGmN5d2Hx#ZJK4YX+mi}0|RKDn<_M^s&RYATzo6mW8mhVY;Fj?h<`F~KKPj0 zh*09GN3<rBP>#Va7OCjinunKosF%P_)rpD3v5rD;t+*$!R&6%G8?u2L>n-iJ<FRYJ zX@GqVReVR=?RZG7AxRTZ^0~+gWKM<vG!fTJgie~mo->Y~mAi|v*UUXE8d0#3C{Ig_ zH_=8K=)&w+^ygF9qno4Fz2}U8vQuv!b{1V#C%nUfXV*4hYYA@@SRT}4+V~5HBS*ic z?W@G8Y`2gjl~rPGATbvfL&NhFx5t>saA8nlw&`9`dqwg`CG7&?_zvacqW*Po?MV_E zBLc!wpZ3UVtdlFYCyY5YW;C;VTvKrkV&PqFFH0_D8S3_tcrKp#ewsFs@)A?$&fKCZ zAXr*f*|4E4>BkHJ_Ffrjh^f&z=eqUJrd`9Dt^g?hrcuxC{M{q>55ie7I*06l$4uPo zX*|R}<?~9URI9Thb8g-O$ZyNrlmb#dip!^44VL%PUUMglu$xjIf8zlVn08@%TtJuz zd=mC{4Q-nMa+->!x`OCmdPRE11+WPG{I=8=fTu)TrNYP)Zq4BPM+0MGi!X;x$v5TN zi`uKhYR7QqPv%)nLFu*@*|zQYzMZc6&d~sMgo}=j<}p`MH5V+@DYChrR(%tbt4W0$ z`*|&X7rQAo#l>#zgK8nBGD73pbM3TkJkShPzo9E}SSV3t6FRernML5ZPPGw;a&`0o zk7)Tab)6mlu!A49flwP$2>Ks6mhM$^hnt7z&f)bFHzL5*lPz7`1~tdyeMX<u1q4uu ztIFBwImfe!v>Bvt^XQhIHmVJ0wZ+W#4vjW@OY9cP^u}1s#NBe{u$FxwAidB<Y?VZT zHs=&<gvf=$%i!a?@8A9K>0RI}k$Ov2(Gl3E>KRghtWq|%{p%FOXd0)Z1u?2I;QNFv z+N4}nqt9aQsg2p5bVJm}FC!&{{hI(I^5)Y;dz!i}te1JhER3tx_j!lc6JOn>Sd^m6 zFRE@&*HwsA|3(Duks+#whkELVQ*mgm`>>Zm@_n&W)Ruldn`r5R7tp@&FE-%mR_ctQ zFZw_F7Kzi-zW4K0XBB*4l<r+k)qZEH?(5tWy^F6eA9||ksHbi+sIpqU?X85b6;BYq zn>d-<n3`wG4U~1IbVLo3Qie!qB73Gxm-YrR<7h_j+no~``w=YNFCGbGAx@FIQ&^N} zG^N*-j6sSHt9<|9j!Sj9`kG=2uKV#5bFyEL=TMo7ePLt1a!C5~cJ<?oQz~^gVXuBz zQhg0kLbMHh2)j+2k`Qd~2pDg*ZLShC25W_P!-$jDiVjijNjuC^+emWk>=Yf>LIU~} zmAzMmZo<7_$In%4^!)kreIs84DOQ-$c=1gA{ziX~vuD92Pv+t<J-mD(sRjO%#Y^=o zmhlQduH!2voO)CNdlvW)w8US~N)4n<LsgrVCJ*(O8o8MrcF=dM+WcP#y9hqE=u3YQ zW@^r4$`Z18yv`M3dfl{g$!-1k9WMv+A=EByIzAw}3hwFL*F&t%(ef!UtZSH5%vWOb zoOTO{yJL~V|Id`$QyOF1`D(*P{l&`C?P@8guLx(gtY`B-{PEd5db-l^xK>r@mpUD5 zKgNqVvkIVI`%4XddBy!T)`$EMM^w$<sq?pH&*OTn&Hx7>@$s{|mr7z|U^H=|(o5Rh z-IU((nW@>7QHL5Q`}~2vYU5m+8g~N*{$r!$7QY`?bS@?(c<2K10lHJDyzXADHnj^+ zpNSJZvD{N=>~HkBbXVab{|XN-_oGOz_}OY9o_*uLYO&a%;jQt=H)U%O2QG76r=!2h z;ZrizNAHTPDW9ns$Gu*k)VUY_i%Uzu;bu)2?fF=Y$?IIV+(!MOulTHkxp+)>IlV>; zNFlGylm0sB+i&V>jb0GF8vW*0h<MmlUBz_w&G@>yzJcs`&Jmwk=3ReRK~n`obndbR zo}=yEgTq$in+G;%9s09zp7mkiFR&^yDtKc|N#7ZF?;e=@;_8C;6<;dzx2O4vu{!qv z0nD|{x%J<)>g^1x<lDi$y(<!Ib}<MS5biz*W+K2@oaF5Z`@-M>1Rg6fYdY@jSh^S+ zoTwIu@rmF6WV1T~>W5#*$Y%FnVC5I_K_7p0UY^7U`QHBmD@2#2p)^w=Hh`we=p3hH zp%~4+!M%=<q7Q5yO~uz!as13Nvjg!KD<Jv=j5;yCsao^bJ2EdWr=x{#_>JX<L}i!e zSUin(G0QLek+p5@Z=?Hmubh{+9e3gOz8r&zM>qGU;)t2b>F&$EQPh?vWs`nvu!s5) zQ_(8`>!wGF6hdYCl81Lz_R%Py|973n&ePh|q20fm;Jcf;k*oX;w<b|x-NB-mSa#=o zPj@O{LOkP(Bkql}^P-^3$d8x|R}Yi_2T)4`1QY-O00;mI0OVBQCVPE{F8}}vvH$=Q z0001UWps6LbZ>8Lb1!6Rb963ndF6fkliSA8;P3laz*MOK+9dR_lS?+Wu2b}IRIw$U zB*#vzw_q$e+(niIXaLlTQR(~JuV3@TfV;B&UFz;wB`pce^z`)f^z`&}_uNV5pU;y; zv#jci<7C&b=6}K`M@3Pt*F}+>B&X?<s_Wb8eAib^ot_;XRhw<o_DR*~Z{5DrUt6WW zHRjoM+13Ew{H}MKbJd!kO8^hB*ImADE`|>mjfLqv-7JR>@mmbQW>eP7qgC5%oX7Zo zqC3#HeRJM4>#)#Lo$oGmsV7hW`u#UyiB(xI_Qi$jn{BTP_H9{r>#|qHx~VVV1y{OQ zH|M%Yg+B}>dj;(`YeSM=z3;Eva?ADl{T9flYkmt&&yts09F1~4OWywT)zjkf-=04H z`|}rq-L~v6*Oh7O75qHnH;ZPyRtv1!>9<R@DtGICSuF%jwJ9xSHmd8&3svBoVpXlx zQAhyQwoPlGJ<-n@!Ke6gW}m)M{ccMS4-H4VTKwtZ!$Nh7a;qEcuqF{H2jZx<)`hp_ z;;Os=0^LxqX_u;1%K{3Fl*~84YK0jLU2#`ezwA_@-T}`lRnMTswy&^vf?8g1Nr&Vc z)tAe%FLeq1{EcbziQ2YmQ6iWhcz&3PWf2=b@wwSP*9}}(^|HC{if*^X--DiRn)*uZ zb!lMRVpjvZEH2dmBs5j8D#Lg5VzIh_{_nSK^DkhdzS*n?wO~jW4baLo@|eIp(T`0x zw^tWMtGZ^_E>t%*BxZCqG#mvay-!yF^h*~$Q+40&i)~ZYeFv?s{Hbz$l)%Swd@ii6 ztAEEok3bailcLDd0|@5bRxPSk1^A`YTUV0qK#ij#n2AZ@4N10GcT+}G3(*|EWRoXN zQa63F04bgHmsOXnb~VlG3D346drb*U3%J0X7`7tq;|tBag&>!8YP}LPHt%3bfI?;8 zxAc6Lq+$7Vmb_?c#SH@4p$;I3j~Ir5BjxjdNIU7n{6RW3We|KG0*7jwcWzhU7o#px zV^_1>$bfx&V1Z+l?$c!cHU4D;CX>l)p3ceZXOHJlE1^2bX6JhVylLLy_q8f<T}-Yo zK`3-EXsSy@j1uS^01?1-1&sn``gylqS3Nz<3>DU@&gjuJIXOulSW-wo=-ui4vwV%K z?KbnqEB&cX^M3&+XW5|K%q$nMTrHvb%$DZD501~K@X;*RLbpJctM!t_`lh?c;NNjF z5uOJgqSuymdbv4;2WJiu%cY(t$tC<yEmt&zc~`D?3Wuz_IHfmdnjG@xBuT%2@%I-m ze|V7&D1sd05`n5jI-y7WzpXn72;8LHZrA&e$p#%ABd(w@^}9cq7G6)C2O)1$0e?W( zFzY{^0H{q66>dugK?vmz2yajvx}@w9Y}}_s$D^L3K!L&;K?nqcE(l8I+3iNZ^SZn( z_v@w{9rm%Ic9@dT6EN8{cV}LdM?s4qxl3<8iD4OGSn^Pb63K~Qrykuq5a!Bg51K$E zb4n_nH0QYT8d^giuqUCGmJ#TqqeEgel)gAejVzyQS$;OPK<aXHn8#BrkvcVOYX>UX zHPF;s0-wWB^f%V+cAyTmd#QUTxmHQpDkRk!C3m^&FJZ`<dcDsrba{FZFqd(00wtmD z;h(~qW~d#21#8Z?06V9Wao`4u-^8xH0rF+DQS&Wufk(&Yx~3^|V|86}4kcX(>uRCu zE*$o_$OSM`Jau^wH$lbth>pT?s-$L4X1;nbfGr{wWz`Le#McKEkm>Oa4V@eiLcfiZ zbyri+)URRN(xpjN<4g}w(ytH0H9)4UmSpM78=Wm|R98*Av0w%(2|&@MT-I2u%dTUM z_h4OHPB(lfdG+*F^5uiCk~s>zPVoZM(L_zudjNu6evm)Vv=|X$ks*A5Ll{sBb_ctv zRfo~kg+dJ!HaqXC<qef}p|Emu-Zg90-%#6>lIm*Rsqrot!4N}n_|ipz-VP==Eg6R~ zl#+8SX*Mezh}g9%P{~A%#4cs@_kZoG#TDrc%c|}7xR_N-+L0u{Ny!`Lcic^u_v{ww z&Vw)id_VU9;Zy*P7C8c7Si0Ov-oAYD@;G^|fIAlo_P+gP@^f2Oz)%0cm6Hq&*`!w2 ztf1q{4Z28kt(KGN&kme&1=})MqTf~O8kdbb5C8P%FLP5M*n7p`Q9rL?)k)5QhF6Fy zuH>s7C<35~7*NmwTzbp3);08`gbq$Ys}Ix%AoQK&uVn`f0NGycVezPwFY`Z`Z7>eQ zbqm{*xNd=+tD9fS<K*$5??1p_ARmFwuv6J=*Xn(eJ@{&hkDopN@w=y*>OUYr!vEFZ zznMRO@$4mz*rx0g(n|VfL>aNGJ#klbFDVkh;!QI@11U9Qb;p^z*hWsJvdP`<IJw*X zR8Nw-iCbFWxv<jjv=Z|Vvmpg)XM)0XI;`;m^_H1M8}*nhR?vZ{%bK2PsVa=^P{COQ ztad5oY<IneWO`sj&McEUx~WE#+d{<WiL*Rr>EDb-027#&^_lbbiC*x(fBkLhC;-Kv z<Reyv9HnUZRx}z@rVtIsE%}|%aj=}#c*aUun4xy0YX})ooXGwH?GiZo0?Jq-V}XKa zp>M{(ukQXtM#+?~c)t7lwQ$%REU=Q`XLTsU5%S0}5AcH#ZunNzs+n&a&7{`UA%xiG zNaF)S==DKA>v90Q>9XlaORu=7=8C)B45nQQlg@!5tvUJ!=oD;lFdft{^(=xe>PI6j z|6MC8GgDF;a#a-5fO(iraaVSFW+@<Vu=}ReSa-EvGc!e9<*4AoxFXV)3Mlf}YBP=y zaC9Lf2#l6<5Z-I8b~w=VVy}reR`-?GI-I&%7r3eJOQUl*m5r|8bi&%K6ESfvh|JWv zul}G%_p<C<qu`d-s=_K&BLkqjKj+0wBNJ5jDEfy#{?StlL)E+xGhET{w__9Pi7h^V z%*E$#p}21UAk3-Pye4>|-uG?kFd7nxp1JcdUNklhspR}AmISP*#tp0~QeyrLm9$w* z#iNO$rP6RmW5rYO&XH5WoA_$|Q+>C?l{zf#iB=S+VS!xL%MKMegfW@=6!Ke`pc>i% zgQ$9evK6=#sel9#{d94u7FS}3FV8_WTGH7WOL|w?=-p*lZONj-Dn$Mi4-sDB83G&K zPU!zxf*QgJE(WvYqHT8D6My9ZX`t|^6S}CjIS)6h_U{*J+b0<^o1BhWU3Hc`>iMYE z{3ba1ByEbeHrMV%x^CojE%WF$x!We29qg&j_2~vu1D4fhxm&Aaqz8z2R7gSh%`O1v zyX}+|EtgaV<Wx>ggv#92f~zw>j?ozuMNpus)gF|~vbRRiQa6sZwKnMu${kcLV->Lm zvNer9s-{5T^=_$>T`ebm4h$&A+SGgpbi<QABt#dES_Or=z67?)WVEw2^@tjoPDij( zYqbFp0kce-4$&0FJsY%<%7V${Nj^JqjK2SA9??`?Y2-hhDR}DD-S)P;fb)rtSmZz# zgcVYcHjSDi>aH*^U3%TXfljrlQ4#<(6wA)L<4`ssj2xCVE&ICyDrQhI5KFhDFm>AX zrJ&;?&}vb!On5Gmgf@LdJSPJfUnG+Ov0!X)XaF~_xE-D?5VP)aP1w$0aH{nZC<w*# z)|_T%X`XuWnd{KbR=y%t#)yU=&y|CB%R>_U@aXjmJbwk8aSAUL=uR!}pm93u{+J%l z5+D|KZwN?K@?+546l{@!oNWslDxZhak_!U?n#5!_s0%$GJ`@^_P>?O{!K8V6>7Z(v z6ClAuv?)*r`6yPw#=!5z1Q?*J@O)+0$q_d!*OfCFupeEI2QnFIK3_e&Kg}%+i=1zv zAd}4@SA(fHOL=v=?L_6$S~E*F<(9ouI)AQu(wnBFajeKewzg0&E1dSFO}#r2A^S;^ z@YhPd)bCR2$U*dq!F?ob=dUlDPU#aF6ivZcYEcPu7Q5TI;!`F%(us(qH&get#Uy|w znBZ!XShoUq<b7%D5;7BVqDO>`AhMH8{Y}|k(E$dP%ALu7Y;EjPh$g=4q>)!Op<i%; zjQ>n;L-EOTu9~R&UDY-<b&cyE!%Y4{zE6(~yO2u<A_%)=>dVyEH_%<{lNF7(Ew1Lz z%5?{S?$2<r9yn%3f*GvHws$>DPoUi71Ge{B`_bVOtf)#k@#EF<1AT{L)5$I9gRpZp zveEi_;`HgnSh}eHdJuLstQW8*VP{4OAxl}%6JK1cxJMt6K-C4PO=_9n;6_57AuHw4 z;eL6r8S#ALiyw#CZ!LsKKU=TO{*ZM+<}erDxI#JLF->G$04NvH15qI0RO+WuCBVq3 zZ1TO<Khb|rM22U8zFEMrK*MhXCJaPage66z7IEZCqv0ZSSUAO{(O;4egxbg0di2SR zPM}Wc|EU&k<R<8HifQ~;Y%sWMx=RL9ls95NUHKdR6*{B+FWeD~RuZXa>c*F>-!{UN z$Pf<t`JWgr*Z=O;+J#dGbqgFknxD8)iw>68Oiqp*!_j$4e~==#RS{HlL({7c_8B|0 zK-?g4hq42GZ*H|z+C~P09f(d*I198?{E9i@XgAHuSG{p3P5#QH%Q#D9yl)8UR-Fr& z+Gl77AFWmnkTSYeRQ<vuxaFd3amUi5t7SKFxpx}yK5nqCfLe02Xw}cbUeM|CRXCKN z&|^aNO6{o!)O+l+A%VBu{y@5ei~cORntI?udsAc!oQlTkwwHP|f&NFiYJAR;k^Sm| z+<`RZ1{7;mzCr)etWAHq{v!J+hySOaqn({=PJiRpk=9bZVmVy$7rh-s6A$?lM7ECk z9JFEBq`{^vV6nsdM!`MYBOV<U-p2kUaIp2G8FIHQR;I&)#C@81@a#nPTA}l9arCA! zLBY|<ex3WoKImBaEp3YNEy&nQWMsQa0B@vz6orRkN`iyM>1u`H1Md`&wOoq3+Nwd7 z24`QbuFc7tKEwgV=VHgo7))PwhR&wxF{72Fp(>Xq^SP(K7!$9f!tlDbCkesYiWw2< zRL9Z|@msn?GaBRdrK+_aiCc4hVox)}K-=Nb`}sae{f&@7fqvvjTD6z6e`O)ssk!SL z09m20_MV%?hV&3sovj1Fp0AR9vjcG5CDIGp57ZJRJu~{`yRur7J-0#+fmhFIS94v0 zvW7Ao#tH$Vi2?m|%G%<!Mga*^Akjy^$+}@(e?~YgfLCCUVKCBFRij@>eFekA1B}3- z8wOf>3X^VMNLS8M7&a2-IBL|sj8obP59Ev0MVj!*1+pvvv$#2d4Mf-uaY3q~WP=g8 zR_Dpq*vJSmrb-9+ceK=5)Z7h0uGuc!^ApoW79f@i&<VrW6RtW5DFCFZq=?gE)=e2R zHu3aiMPLXpV2d3niODlMC@Rq-!%7ykVjb&QBA>waazY5h?)c4H4Ahz|n*~kbuTSph zU&0P<f^QUHHPL52_<^CU&>S^3Ly*+Ev%s)&W<`Pnn>TP4<+ePp)>Xf!Fa#JCYHz|8 zyQ*hED1gru&m&kFG>V>oo<@^+I+zTI9<r`}-U&C!>>;WeKu>`MpL02JRtC{Q`a-P? zBQg<Z1er{R-L|QhE|~a8cEdSNYn@U{KvwgWRo;lFdNB}U>m>>3gf%;0o_5EcP*{fQ zrHMrMSl1($0#Lrw2die0BADsS6Db2cEmz4*Bb=5lKDrJx!Xiz({8TLDJM2Vhk1?*B z-Fj(878UCx-PKi(AOS7Y6^d&hhy-hfjKLrcsAbdRoHk^t#jglyB*8cch+|zqq^Vlr z%I(q9(BD;w$7l7pT8RRQo*MLEgisUiL>%KE6o>2!#mB0$|3ZeS9r9{{Js3_0qf3wj zrcK+H$hlpO*5PzANs|mKs?E0FTPaDaAqIeuRACT$AYseYqVhp3252dY$r6-kxzlWJ zMNR{R-U}SfndZ!2s=`=4u{~ckfTEFY%2}-l%02GQaN?AB@XH#E!?|V^MsBmF8d;Ta z@8%Q+L|!!Hrv{wG?V$Y74tY4i)JnCeIygdA=^z~%?YgPwnism=`Le<Tgr=<&Fe-*M zAd)4C92)xcUh2+)k|He=Q6-xeFv`BMh<NKhv<d^z6JmBn7nhT{L*)Jvs`oe#`)Z?d z5!}!1aLKxZ0}kqzc9og&u?MS?<+^K#vpO7g5Mx+!qkv78ozdW7c2?URU?5}XtpaIh z=mfoT7bq52uyo-mD=0umTCAjU@(Ry%TeJk6;}A8wi%T*>(XuyZhfPv0pe9frM6&2` zA~&>_14WvaL$d7A;7lKvkza(WN#SEP0y>Tkrm%HC(gW`H%X*g5m*UCuH*ddx`~2HC z#rH4XeE;gz%hzw8J}JI?`u5S2M{gg&s`|ldI0t<~(&J=ZZqAqGF}a9YiJQ94S5S&9 zh~8V*B?JmMfvWjS{tnwor;6*+G2X1__z^AkQD`8$lmhAG`3U2dkX{y>s>3NxPNr48 zY8;=r&e_P_NuHHguq13@YP9T?OIAZIOW1uB$Ca0l8kZQJ9U%M7pfM=zd&>I6^<}lV zOg0s=5vsj=MLXv6UA69U8SeG|2EeH9(t$&p+Gf{VDSRi~t5QFZ&p3cZpL5#BIz+{L z6IcMOIUGM2WqT4FpLFF)v1=*1qY{i$Zt-k7%~5Q%ncdRMaQGl#u3zCmAak7W(aR3~ zb<iQ!vs_bM$77MEhIgi|9bB?h(>aao$a5!NDAE@bAZoi~<A!`w1^X-otVRL*hSdsS ztqLP%9p+-U8jILv`A&IeFM#5Eo=x1hlYzt00KoAO%>e#~k5=LnN1RyBaNcpa2l>v6 zJH7ZM%FL*6zcmL&bapqXU0zw`c60@T*R_kHZJJ)UnQxnIHqlQfp~I@6ADyy1Sp#&{ zR)LCvDGYcM<u;RsZ$ZsGJqsXEUkWEW!Kv@R3u=>h9Qj}vUn|dG%wAQFU4o(6a29{y z-j!{~fy!7=k{V=coAcqPPbSa0k{iAoaDs2=`QZJ+&((4AZt&1GDl##|s5mHzKCxP& z@ccNu9C-jfTI8I~-JRqOFgOWYP-8AC+{2h*1hocaCg4W}_N1l2`UBIMc4sv!7KysJ z2+bgj9YQPyd(dzSaIwJ&oi`o0V87W8!8!RTviMTybXT)rA+@lXAm0EpMNkDH+SmkL zSx*tatYOa}yrJOLtNOQ<gAs`*Q7_61rXRoz4b!&%3WpHeus*?##5B;2ICo<8@gud+ z+vfwh4NdH5iR!WRv>g1v9P@q?M`PBA+D<dm1)r^}mFHG(N|8^uOhb2JGL<b_BDer6 zgZ$j!>X<QBx}+}%*iUCQd95pJ{oX{?Li4(2@<G0R^o_*h=6s6ovjY(4qqugYPf_p# ztHFAXvQIi|kdsIbq>q?(*#K$fpn>s*lqN2}DfhIr!TeTa9Kbpa%;q*>Gg_wdi#*w$ zw^Iw?Eo~bGLKYd?Y0{%Uhduz9Szw{u%?qNpu5d3$LN3}(<Q!huW_n`ZR@e=XV(=3| z(v|nREk+47qo8&2EFy^i6XX+Y&UmL{2Xr{8^%V6^INT#Jem`@wmvq&Fq7t;o7zFwg zlS!DDgmT%Pvqk}DCaPA0bRj0%(GO`7+;pR#oj9QUrnM`}3we($n0}CoA5*f_f3TH5 zrvCKs{YTt0;?F<F-TK;ka0Q*UFpq*a9vMakXCO>(JvNeaDt|$L1E#veQ)#Oj^dT;{ z><9?k65{@erYFOgQ2gAQoQHAia_slhStOj0v!mGfj7AiB=iB;oGZO@+;?ONYR}-Iv ze`wMe*OTe6QGcKZukk}ZkfFc9GRf|?Q#o%Ezn{bm2JO{`r*Z@h1sPHWH#&4!{~kb+ z$scV+wSqm8J>nT00~;`QF3yr|wPo7?o{r?nD?T3Vl%i;oufDp^=8$IK(`TS9LDrz? zMIT$ur(vO?dMAwSi-qB6#rU7NeYo@oi@PgnVTnq9Hflu>KJznme^tGYxZhcG76|5_ zL$!@-{_JaMKgWfAu=YoSfJ6a^Y`MlT*UDD#_~<~R!O2dvO;MALiY!_&+om_H55odl zh}AC8Qt31xqU*)=<MDTNxCt-)#{<>Nk0J64V-kSDA}KwrXu-z01{CV_A<YI>!HQxf zDm3$!eInjA*PtvY&oFOck;{VU7i6nRjXg6p2P&%WcCFZBB@YK4|3tv`?T!zSaov%_ zFsOkI)G6+dRjr2vk;(@km?YYZRYItbZ3MOZ0S=*JLmEZ6&$q_qfMVuGUd1_XaD=TD zU2SzaurK;`e2Lc35EOA`5l-rWJ0sgNdK*3u_e%#RLKbdWZbZ)8!W@EpK;Av(YW@Ko zO0Ymw;ToaO^-blU`3!e*oSaV1%l5qd_b<EM`@g_$fDrsRIs4hwbfx&QdF|JO(s6-^ zt0DG_+)Rgg)8c|EuquIab<0h$KM2vib$~#m5S}D%w!W1{PV&X1;dLsmq~A#-JsssZ z;6p17rOP9%ImF{sik}UnAsuFUj=K@**X>rg+G*j-KPh~t9j?<i;gEbG@Xm734OP8F zAcxdcw>kC8*bWf-Qo8Ir)0zMsu!Q~z(j$OrSpx;F10c?XI)mJCiv8#brChx2QI^@C zly)RZQ)hDCJe3bj(eLocW-vd88isLa;bTNcMX@#kZtVs|#Ib@cD{@*uQVxB^$<TG( zpk~%#eg!<&LKlG!=mYz52h1f%@HNZa0T>kSq%`VW8U#UVI55ulf!{`M5hZ{Au3!}K zeZVlz0J2Y=9;+i?$RKhfQf72<0{(MEw+mt58}GN_?CdP!SZ_rp?#%1Z%tE%+gkrj$ zjSON49MW(znCQx-@y7t84m}qg9H-7QZe)pzOhhw{2?l2}>8a$(2CshHXD5)C;;^~s zb36nioi5Mw=`<0gs&is8IUnsHt`tA$n;HQ{h)!*fi8Q>dW7G=M_uVwyvb%=tF;Wa{ z+uqWyp$jjL3&U?J(EOl}uYGYyhrW?5i<^nC8kKuSt_4|<bWTO}OKh{{ots9)+hbst zU9YTT7`mnC3?F>*!)KM<rFM~#!*ZJz6F*)%$FYozdigTisaM6CamCa5I5Aae4!Cju zHo=HIAW?sMb`(YD*w31H5D!-^cAqEg`{O*2gARkP$7}kjo<(j=U-u3=X4Ad-twk+v zpqPjeQn#0ok20T^)a(_i*68ce1r^^Y*o*Z2wmZIej|%0OD+}r^n+2#r%{^7$>nN`N z9y)6k7du#g^2>g+4gk%+PSWSZ5FGICGLCq^Xb-2QphE}!QF39NNc!#b$4_6JK7Mod z6y2-S$1h*~^ZAQ!==+P8Z{a0<ef0g?zrB3@=JRy)d?U;TMv}y9Hb{jnLPWja0{IJ# zQ>MR62U1}~Um67v7ZzWC{Was}pW=m3PMI)oo_c4|&eKl^XdPEE+s5<9p9i4B_dz=m zwJZyV_0oGlp7z|nJ9lDbE=f$&c|k_m<uw_ngA*E@iCDuX+erT_<=tw7OFq1*I?5%6 z-v^^8*}{&K)TbBe3I%5k7q^pGx-mQM!wOFFGLo-y{O_kRi_-JavfSc~2^08-&g}WH zQQzlQe3ufFQ_pxm>J-~0`Me^vcjx_jKL`B+$~rpVb-5oq50UKA&^F=G`bpAX(KA<% zeNOS1TKP=0gW6uZ3*c~y<piT4V6C*WlByQEU>H$$dKR)p2Uu@gMH{CR`gL9csrZp^ zT&C4yu#wWb<{ay#!{`a~9{t{KDzmQ6Zvt^s5m20ND8lKDyF*3T-Rocx@->aTXUfIi zsP}3yAAgOxTw~91Wr;mUUy$JWSvYI)Ghhke$A6>D?=%0EzvNo~)aa^eUyGtZ(E{GI z_TkY*8WB~ytm|fn$2OB2W^6V+o;V<7DxG+<$k9ppea?M*PpQG^c*ffc=w9H&Ha!Y5 zG~p3M)c_z^`*az!d-DA$Cn?>Zl2TA-OPn>dOvJlCLWYFEpq}tSH}`RJ<58Q_Wl0OW z#t?eMXQ<$78waf}R7V?XVpe6#IUY?>ZZG=58I;s0D8|jnF2$ATv8_0$DQCwvn_m~F zSw*oKl%~5N@4BL(Jl#^)XY4o#{Gc;uRqxag5&Uq*K<PA|D;uL203P;QdagT-r)R~o z>@JI?4XDSX=~*&LxB$eaywaU0$Ww3u^7D2eh|s6-1vPnxZ*77?{kfBThbNx6;<-}^ zhXVS{F66LAVwR|`!F8v_gRwe*;W-~!;Xq~{%|OQC)5lr}Y&^1jxsjq;Q?66bXG;8q z;{z;CneKv0=3rP-uPNWmgh5W+c_2>Wc=rj1CvmbU2S`u0BQIjl`tNyCg-0ms+6B{l zI)?YD?%Y}2rV2_&X#{MoE=r8T!^+yrVW8zvjUm4?CyRBKZ#|;qy}<%6vkI`y(5Lgf zq3o0CvfUT$u1;Ae+g)6KHqt-<+$$A5-|qZuoYY;O#loo`etf!ZQzZm(-DdoKKOW~& zA~(PrOHxAG=rm=7yqV^?8#tWfYgnmfiO|FzFGVgytTsEYeNkH=UMXdsQ;bNr5FrPo zN2U<(>nxq)s1>Padt?9llQ1pM;u7Yv--W>~TDe>d=J&z))X712p&QAZ)ULjhir)?& zk`Wy#J5Vp%5}{4%k3RYN3)Me6u@}&!qoqV(XtZu1uTN251kF=fkOI}<u%pD}d%8`d zStZC`PVjMx$yF&l22sSY9pm(cdI+VDjs-Al7YO6dK#@rpDQ0lzfGTQ0l1L5V+!X=k z_joMG`~Z2hGu(gy0t4D$>g!v4v=PD$)^M**N~fNCaPG%wi99e+Ua`;Li>7~u0ZLE( z3>)~llPq@>VGJ^=hbB2NZ03hTE*sV1fiz{LkD;wCXxRPu3VmDY;qkEuKG=mzP{7Sn zz_jQHfiR-r0Fzn<1^#0|<nk%(<M1i)sLg0L%A|1yHAo&{OU;r-!SZ?*bClH=D7obh zTPo0NGgyCbFjYiq$k3Xn=l_}|j%Is%(*?Tjkj^B!5$X-812*M_Ds_Nk*!f?}j$_M0 z^F>Me)s~{;-JFzOBxL4+o4Uu{rA|@PNjRo<r-Mp@7R*M=dOof;oyTK|0M*qwpx0|x zeBcZy?NdrRmzZ9l?h-S4NZh&82M#N$Iz0vkOvVI@=~*7;*`sB1JF8KQ0jAN>)P>}- z9EUcXDB5|Qc`Kqrm-s&0Eikg1a-o0fo|{xK3I_BT5htpEJx2dGzX=UX>$)^!GY%3m zDf;aej<Ad?xZ@k+0iGZvP<?^_c%bigoS0O%uM_SN7QyB?s(YfIigctXg~9EeS;J>% zjiW-)cuLkc%@4joO_n4--_s3EpWTcqsQx11T}<2!!LPx>LjCaZ7P>kf&2oN@laWM6 zF}sIMU`!w?&5?A_u*NJRye;s=tkgech-b6mc4iljI}u~;VPQ%CYw^$wcgv=Apjre* z#MW|St3d`{+f*0X3E}6!ZfMjjGNHU)NG`mALkIPfRKNh^8g|0F#igbyK9Bp*;^(fF z46YP0G>BIGKe6#EBym2)=^i?d@K2;3Ete*$!JK)LGa@X2{WW?qK7a9?p1ytg-M8*4 zfmf$S!UXkVXOJ;*At!W=Z{`ODqELdZ*{)qyEk-`-i&=97@5erRHr%+|IVJ-Y)1D*+ z<(T1Qb<B-pY@Ik(og@=(#3jzCRhTxK1pf5?8QnMYpfmZhlasG8!i1BOAa<0V(-%Sx zwH#Ov7}i6e?-(ph_-S_uI0;8doRgM6SeLw!8m(-HP_$9g{h5W}MpfVH<ZI?zFAKhF z`Gg4MvmzPlIx$=ATDfM4Q#2s6zbo6S*>%ZUy#x7RRXsd5Z}8qhujYt<cU|#$nMV`e z`;Sf_hdV5nODyn!2DbOQEw2_|K<u3d2*Q!j&8U@agrKp9k&Q-pOkl_m%p>=H<ecse z4Y2jcI*!zUUa?5PkrKWSi{p~BQWzSHLG#N(U0ih5F^8|&@ObLA>YDXC3jdlD@jYig z|1g_Ma$I+JFlb$h`U4i^`ej^v6O&FI(w^`Uliv})tQfzD=xf|A)E6g|`FCVYmvY~n z-;H2UM|*@m;+!c@+NHJz+fyI7GbDP@+->EE=ffk+ZIW!)y9>-3kLg<IQrfaTuRv?1 zQ(?s{)`i)ryd)UO(-PL~%ci-az(FV56JS)KI}L2p(6!iF)G!whP?IyUv4tN~(=_N@ zuNDIK&4z|ZM_ZZ77nm}q?Rt}b$ixD6$^E#nq400KS;z^WF{E-kV>WiaSLOM>APh6? zW!!$E9VM~EOm}#e+@E@oD6P-Q!60?|-(e|oVx(Ge&qkiD?B2GV=|(I7l*rs@xz%g1 zI!+X4H=WK*3$bW=aRFf%6n1-}X%Ub?ZQa=D5#JoaGE>_Tp8Nq5+L<e}DZOBiiH49s zGm6r6;%*r$i#1(r3!B6B(uQ>*PrY%%x5UkP<GENkjj&k?eO)$N${BU8GzHD2d@H=* z-7&bR<j%wY@y9>dz%L!)744!lK8TaPW8OTx|M0>5{-5Xf|KJr!ANI|c#j;sYW=6-X z|1p#flBj^C5O>v%f#G{U1wtq(e)o(Dd`+_NPdt)Q0YC1w)^QD!xlY(P1gP({*4;*x z0z`YU09l1oz76~9y+o6z_%6}CDvn;9=D5`PcUvHSy1eLp9=L!OP;_&JDENiEGS^kT zY_4G!$rk+lvRd*Ae5ev0%WqWCzvrwWVl?u4;?>3r!=65R^4-%Ms-z(TJ#NHQokgHR z#cTFVSPjQyCATU?H()8H4z->~=GGFVs*d(*Z5By9)rbQ+-@Az&ai-$>J)<;k9HEIR z@o;&Y1N{7_`losbX}C-LH0+U*ozBBZJ!nwFd561)5xiktS7hzhUHo+1(!Vv=czmw& z-(mV3Y<a2hx;3_98YCIIvkYk=;c~*LQa9#o{S1qdfWEkptc4^ps3PW;4*k@emDgxr z+FvbbbAakNPW}Yf`Z?t-^DXMZ1_!v}g3_Ei%ft}EGzdst7#p<g2R2J87*z<o5~ott z@sU>B?gmXD9UPcqyanAArh63;*8n$SnH?a4Ha~fWp^sXQ#(JX5Ia}Y*C?qBQR5&*c ziL--kq1&U!e4o4&8EOr!!g^`+oIaw%h@TrNG^DRI;L<l_XP-*3zQ@^`j1~W1(I(z| zOC6m!kooHK&m&1v(5yyB1SBBc^H`hsnDT2vj|WMn?QHdu77{sg-S~E2NCLr=)5-hE z*))}ebeL{1eV@9gVUf&;sjZ*d(=t+aLAqa;`etZchTYRS<;8wI-nE=&V&?fBQ^s7; zAvz`(i92K)=VVTk!fqNkgQ?tv*V$CkDC%jixLkVK!X^9~-cX(xYZJ1KkTX<8P)qc7 zrtuGwL)S@K2wjUGb>>H_>2g$g`eUjS$?7z(_}w%mDQATQ`kYxJ)={tVhJ&@tZAszK zn5x8Pqs%caPB`4FraAe50lSl9`2XLNk5jvJQ(L%~063IkmaCdBLES8<JCgt($w_V9 z-#GRU-h#3Ks}yI$z^jAJAg-H>YC-z3WDR!M-V+ef1Y*JTXAC1@y&886Qo9<_)TK=1 zY)6RpF7ybCohtB7R=2mQx&?-yy>sTfBn8ze_XJ1z722D|l6>L{ZWDdd36h&&*Ngq! zuHKUko0C3$0ouPEY;$F6^!7UM6<T`--Q9Aqg}u*J7slK2(1k-cs{{YHt~V24=F{}- zXo#7SEHT{7%iCdRi~nx;Vc_>Tg3jAGhC}_>!`P`m<V)xRFLu#>;G5fY26=LDr{h7U z<e2Oh_q8jN<ks-BuB2CxWs`Ib$}!QX5Avlq<t-V|YUJCv$S58;G2h}zjE0FYLJ~wy z#<)XtFk(#%x?41bnH=t}+#|`~Sj@TkephnM)IGk2mD6J)5}59?G=h)?WE<${BiH4~ zwGY4Hq7^)`)IJU2-KP4+*i7GQ>KP$iF!tBrEWDv>G=1^w`$a_0-y>(12d)FcUc8WF zR!<v}uF=Jx*r-0%bV!Q`#?rt#<Zf^W{@aO7GxLjNa?BcoCi?>YHi+;G82k&obfhZv z8goxLXfi@?KCfRdLrD{odzPHy3dxzy@k>>6&sY3Yv|}3EGdDolTexn?^;XyT6<q({ z!1jl@Jj&ev5AgHQvKV8EU@j9k{olm=p~8hp+)pB`E=E_M*`a4=H&O`6`31rqDr|=~ zXrid`9?iJU{cgK7jlt+HO%em(M$O9^e(S9o>=K^7*CE(OiSweqB?*ha*qhAu=v+pD z|FV&h0;zKqgkAV=)MxqHg3jDszWmf(BGuzvBAuxGp4&ua2t}}e^IlQY^gp#%v|5X| zSJaPx&0bM=>G#+x+M)bC_lkmHWUr`kKeShrGLf^K_n*91^c2ltuUG{0t@9OgR|*Y9 zxt(UegXU;9h_}}tP5Wcoqs>agTOF^fPA6T0Xjd2G#9~Q;fpRmHsQv{EBAe%PoC)(E z@9`H<NajBpzh1h7OcH<7IweMO1ZF_7e=%g8Q+H<JwuEEbwr$&X$F`F%wr$&X$Lfx4 z+qUh~`|9WqtgBVyowG*Gr-n+nfd}{^Y;hT)cDoE#o}}@YANkbrKl2Oof%GpL$Yaj= z!-Ke!v`oB3UOTaWN)9ueU1)A{O;|H>Y>o&}q!NWXdQbWB11QNa?*eq3Dwl&nR%xYU zD`u~Pfay;K=+DW<?jf+2<4cp1)2^Lrw?70r7H<w9Q!>DJWI)6~_+))<lDUQ^FL3gE zqlrkruU@C|IhEtTHgq28T|8#K>_y!lcK7KumbC49i8>QaAl;$99wPdfqmtw1)biId zz^poH<!m4u6XMzz6ctr39c1pBP+yFz$6~0t<Qjxs_&tyaLXf!QE1Vn)>a~o$A#*|o zm6R#YAgO$Ee0s6iHNOP><jzR+#?;7GXOOcnpfG@+lT$Y(oU&22f(Fy;>2Q@9J=qIk z-^hgcb4^MLaYKl+ki`E2H@6<z9@gJ-Bb(-S9m$WlOHHC5>$kH0;n*a}oGk1za7#U3 zsN9r#L;wvA+@)6Gb!DUSmQKMip}6~c+lGI<I{fBthPCpis!rrCar+DgiTBiv3w%GE z+l&o;UngHbh)j)hYnkgu;bK-7^?;8mmY=kkY=?aHNbn|eY3`k!^TdIkvQR{9=HDW; zvS_lM{z1<ky2U!N+FaTASMEBH!(2q|q<f?`;jSZxkjK3r@Oh+)iST$fFcJ|g;O7Wd zKqu8v=G>3APxDI%vBt@X1r82gaFaj4rygxY$y;l}IR8OCRbvk2Kp5!N=+`Oo7Pjr@ zKBWVd5%x6yqVsJ<uKmUZHRKIhKSXmehJ*)_!_?X6?$`X(reYI>gv1GTKon@l>8n_5 zrc}7oUA{*b@K{4Ohw(FnA!a@2&e8F~9xxEO>Z5dhd01hyLGDHz_L-!SBQPPHAwFyN zNWd%gUEytv>k5=;la>&lh&sH5W_PGPqo1r&2Hf4il4Eg>scMXkN6uAmpJ4gOgJ7O` zgzzoCsz4R~C^S*?v#@0u-BIBUX-vfwNZ`+0X}CPUg&jvGR5Le?c`})rebd{gN^P5S z@%iYH`S6T#)kV}o$s9NNCzW{00;?*H?5J<4DVr9%eVQnr|10c?9t;BxY5F{JxbGa% zi(j|PKK5l0z^FacV)P37N>5^uaSkI&VVFpDTghkXA-yrAcnIk0ANt=Dq0JbhDlTA> z>0w%DxBi6Dzt{3AkoV#y;yD?jbeEki+3_F(oBXAa7XH;R|3)ThQ_%BX=023$@DwGu zv6PktFunbDKk?hiflThk2~;YmmHPpL5-o@vuKSZZhpERT+@Mf0`k+#Wa;L`^qN^5H zE@74S*wI(7v_%<aeoVTCwiOGU4J`DNC|X-DSz_GGMHCI)UvJ4kK<+JSEZ;gR_60*? zK6=KzI@KDo;`Jsc0!9@qw;8k>CP<o&%>_kYw+OTq8|!*l?m!T>o;d*lYs>$F$(rks z{4YX)zlfwHZ}rH-bJr08F7ej2HNCZj-X~Z6RL9uF+*5#HcHPcCa9YO+>~BfEg+_!w zr>-r%A7x#;lrXU2uDK{Byag;BfqAX<tcpLJ9?Crt2V~3r@WX4wM`axw)E5NqgBu!n z6O<g`lZZJU#7*{B1L-2LlT5Ni>MqgV6TC;xctVuav2!XYW8H_Z*85?SBvG%&R20}0 zZ<-n!G}s*So>o7c{~g=^51_Gl7;s<p56)Ns4FvQbY~%j`G@3a%IXL|X<`=6j?|{pR z)b*eNmm;g8Niz$=&o)XP2a6@8)F-VdZlt`aWktf!LDbRubn`K~wIoBcU&k0WxaaM# z?V}VuMB;S5e%KXDi_jNdvB>jES;>XcgJqxWfms=?JNGQ5%EjJ&PB)UOO@|?~)W@kN zEvJWqC$sRLP!Udse|G2c{I5ro^RZXfk30TvkaV84-Jr~TB=uD$&Kh_w`%%-=)_a?Q zzw-G3^Iffjc7snk;B>(MO+9~@v95UO>X!QR_1-L^vxR3ETTM0R-QZud=C%InWUpXo zrQq?AAB^e?1Hf^8y4?l2N?_u7#C=#)tYg5&XrS_+4{sS3(IoU_aW;;fJ`J+8ey;X0 zJK64r9Ob#o;W6<0*C&mH@02r3uvL`mPP<hf??`mC(o;Gw*UzQ?O~6F~pYINnV&8|+ z>*%35IlyfCxnCHvNw6xOXL^pUpo-uq5cg*g-K%r1j>f`4QHb+#wu4Om=WOdH>NcEy zzA5FGss;a-nQdT~Li38EoQ}C<;mEYiOlvv~mBA2p*_1iYs;v}>9dAQqJv&FXDopki zyf__=_a*Vrl~jBUc&%+QZM{W98jkPj%3NBZEK%$7t5@|D@l7dg(hF3I=B-ygF{S00 zmJC0#@y5Qw-OoNx$;qKf{vQtMyj23&%}nHU5{=^Ga<7^~xf`q{mUfglR$8Zcc7kGC z`jcjD1Wy_%_c2b*ehP<kf_NW!yO}`Oo2vZ8le0i7%Z@cUOprffSgAL*C|bUcqX-SW zrbp9zVeTWAl4-8LPJ_b}DCQsX^!j4B+&XMK&`2%Gfq#6s;^+a-repT`QX8jxda)7{ z^|w7OF(>5ZEjeU|`|X9My>1CNdgNLfed5@(x~$OX9uw7DRi`4tlEhHAM&)|c>@XFT z!?O(GCC*yF8O`n8+*#8Ufk~<${h}8ZsI9Y6WzN`CZ*ErDc1&6bNPKGr5%mL3z?1T5 zV0>>apC9G^1Ut2--Ey2L@ku;e-Z@jjm~XiVa+fhTAVSe61w){ALsB#uUfC^zH$#_{ zPJ>35wvfQLF!>4x%pGgz1-Pr|_lS_QgK4pg#$hD2>RNkD-9wQ_K>mpmj1A77<_Rfi z$*|q2pu<Hku#@0y-U)X1c4f6CB;jV19#gtKM)#A?EHikF(ujvk^7h9f?_JSWV&am| z8%5rI4yf>62Z^8cJa=dwtI-HKG@<efeJp6d=fndfiY9tJqcuov*@V~8%Fn(q|F^d3 zUO64$pn!nV{t5g4K)=j9T+Hm9tsLzC$-71K#^Hbi<?Fg9$PuwVmy4%>uucBoiNpZL zko}zP9LSJJS!u&iwAi^6O&sFO$P2vmSAA}?&>SoVttcKsxWhIdLTT2rCL`UH+Gop! z%U*1y-cOO*w7dQi1MQ?GM>n}mtnW~kKA%;2Ox~2+G8>6aj9*c)RG9a@XSvQ<bkz8o zt@^yeVX9BrU#|D@)1&h(xm^c={O}XSL*D8ki;YAjUI1o{7;($0%DuFi8w)wlIJ0K7 zPD6xh<BMp>hQg9r92aKa=7x!G(oZ)E@#)dvNEM=Q2B+qUC*JtOS%~YcvPsv*4#t78 zf%;l0B(FW=-{SNjZN}>XP@=fRmidk~)A8UMd|)9l+Zrl4P`M@brEx+F;F)L3GjJfe zx!kGy4*@|e9_itGwu3dp_I?`i*rTCaYwk|&i4||B&|f-EA~5BT-4x7BB5Y-s*5l@V z_s*p`mQvP~KIB~quJk!)w!+5c)?8dve}&UL9Xym_O1rSP>{HX8v225Trj9pG36<W? z|6J;<T)CYe{h5-WLmbyQf$%U$`ZeQ-=hVGsxrVeYqxXy;iMd-j&$LAlI!88%Ae`)x z<{B=Qs(?y@Z{0G5qotN%7{B)Q`(JKd!0+{u+5huxZ*SoDOMLbejnS<zBxk5g$eNb7 zPoE0lWnN{JdpQLm7#U||uFw468S1cNfro2pY)>Z)L#i8r5=48@gAkAKyOvfl?!4dB zwonnrA}=4?J=A0Fo(fVxJI66~J<I|r?au<WExI%Jc#$15^uXtzcuu?1+-C2+zvwY$ ziu!TJE5w<fjp6o&LpXsLt{NoOtDDH#40(qHyj>m0QH_VBmq=qLLq)i_^P@d0tHqdt z5>`~P;UpoY6vP1b@38i6vZxLL4uahTiphgY`&gc8W#yT{2*+Ms0z<bEGwK><Ut~r^ zbYcx#6eV<Bpo%>l=dCDrO26gvP~gydE;JR_gNjsjlIdSg{g$k*rZu~A5hGUAj$umB z?lu5--!6>!9-r5AO>^rOg$13E@oxuR+0gY$kU2#gt0_l(C9_94b)=MFE0anl@7ix! zGbd1|2ae-lg{h8L9Hlt!Ro)QVwPJqLh8e+<Z$n#dU_SHodzCfV#k)AiOU+Pz5Oc|S zj9;32*ZHfJ6;eeKs8ACjhfrG1aU16?R0+vhTxsmA5B`M8JqFz+LDS0R%esT;J5Ew_ zm$<?eC$CwF7fS`sfi3$N+4ZB)dkuPwDdiAY+9k#8JdS*GR@$(0j01RDYFJz4WL!j} zn9S#sLhVpaWq+gJ2Re@A`<%1T27<-w*{BdAjT`jQ_2})gT5{Cb_cQ#_Eyytu^980d zJE_k!_mBCvg+EEMZ@jcxLB*{n{n&v6A#%fh1Vec>0hf>S%T-F<0^MiGEH(g;Pjcg- z4nCR=m8axeYowUAG?nzmL}REmFi~Qa;*dv_BXwalPvnmDni+>W6W%Gnq5sD6F4Hxg z6?%3DjD;+B8pC4WgI0`x0*i0e^k*waMgRTPV*l#+rtME`J3~KwaAlA;7Knd(^Nd(d zN*Ff3eZity0)})wrfwI~p>Z#t3%q=|S*vPyL`k69^LYkOsIxSgfvJCMrPw{5#b`aN zK*@d`#2S3d2Ie4Dzsy4g93@2Z#*-%$m*fW#wC<B?m*gJ&$FSCIubhlcN1-6{Kol{6 zEBJUpC8xM1Z+C(?k*#c%Q0G^HaBrf2S|!_C7-jL-s{1BgyGJ{VgB(&JGs38>QK#1^ zIx~x=#LbQX97&a2&<||MWd<;RVJhdTGq=ksW||{Zp0baXE#qczC|VW*|G~Ub_;<2x z^mq1Ul%nMl)u<KY;+J6z{0X^9YkSGue*7$S8??J^>**wecFJp3a7+lId;aR*@#rdv z0K#yB(gTj9Vi8mhGDm!(<Dv~zo~2%B`GOo+U-qK-4+ViTFF*wvn?;EV90a14Blx`$ zTCp$Xu?+1a^2&+6)ADFrp(A9=jQoW`VFWa1aR4ai=qDUJa$UHSwnR}9gDH>dNpw$_ zy)^yVJ;=u(nR<@uHJNvxdo^nMCfJI~4ew*)&GZVP#O$JJN}=P4&8NHX6k<YKMzCQ| z$%i6zKf2%SV8TtLag3)C7*}pB`%KlL&7GB$&f^C(zt#)$ll9t8|Gcje<*zMamBlyD zU7EVL`nXM}`48D3Db@xaXR7ls6MjJnvv|zpRlG4OpX88w&~C9X!o6yt>B+vOb>%Ld z=+#q7W!-3626Dc-JcR1Ar!UsO;mpfC@@h_@IR*(GJelnc4HAHYa2J|=mOFM!LyC1$ zv1(yf_2b50zJhUngpniPd8ug7N4Ac=01FFLhoJ>x8~Hyu`3OWedm=qJ7Vh+GM>M#G zub@B_1%<9+(Kmn(|FLAdYx!v(SRsYp^WT@BFQ~#8QF*Eid9yx*x%1I~V$ZlN=1Jjj zdMx1n=A9~ao?@mhj<eSYAMZ-Yt_hpkK5n-dPP~o{%*(GMHm)*GHSf>2HIw3AWFN>4 ztW|HQ{`NP;QRUZ9(PG=*%Ib@oyH_5O6ji$eOclUT=IxJUqH-lX^oAG>_|VZoBtsDy zw7#048`NRqG3Z!mW^ohQGlKv$2eWZwFi^8>nH^re(nC26mSttJ!<LyO3Vwth*y@^i z%q-(C?2!JLk#3k}aO3O7?gaQnY^~g<A`0y|Gpbip3h>ik4d@;C{XKTx$1<5Yq73JV za|K@EQ&_qA-vh*Un^yJ)I1mst>i@gxwXk(C{x>^ZY05kQ<9z>H4Q!7<$ybc*EWGYw zh8OO*lJSzflAg(I$RczzE2x!#3#2B0-|R;hkd5Cx&Yl%^W{|mI{&8^M0U>~c7~|D1 zG^7nFuhRb~x1iW#^c8ssLYvZR2&}`W&Ok3{XHwSi(i)B1+0#ahTaFKQ*`z;7k(6q^ z;`(+lf2DWvj^RhD>ieAyivq$w!rL^`SC|Czg9m?o!ADO*b)Sd_f}|ZrfKVWd)dmVi zYU2a~zh&Gmb*AB1qvw%@m6vKV=cY@uWH(f0O&P)^2i`e50)r9|C>`0x23sYOfiu|E z46rYhMt%m>9N|{Ja^m%vr1m4fDGIK?v7X1Gg$NC$azJ6>gS$zBq6Zre@>!+?^)hw( zr(9ts*+U5zVq+GJUcd;aYW{Lau|M^ks3x&!R5HgkZ}FAG{`<S_75)g^R%|GrnNC-; zezFxN#aso~pj9`0_YoFk7N~ML!&zN;8cq5<=?ufb1`<}2Eg`R*L-5Sbx}|GpJpA4W z`wm#a{4k7YAs1-DxlzbSZJGw#MubD$$j(PnOO*Z}0xmQtnO{%#8cfIzBUe$Ycl$e) z0T|+&STM8Y*^2ERT7cf0WB`O~sDBi4H7zHoeyLg{=ZEskK#pf+aj+?w8jriME_`@D zrutd5`d{z0UsMdtrZWB+axZp;MK^?Qt*fY`3`kR|sSGi5w6L6Ob%Kq79^>orbMfqE ze^8Pkt(n|mDt4$`ZKPgtu=;jJHh`IwKZ(s@MG%S!ivU=KUnjMi49J9!F*B=n6?NvL zo+#6h$nO!hZwAJF(X~pE{}XQjGSF?!qnXhM0<pUrNE{g!Q*B61I#=0YG=a86dv@|{ zahUq2ousf(^8IPLL-$(v$W9Cu;N;56$~S&~I$IU(+MRzsx5>!MVRUcRBqB_zKwFch zW)~97X~$P|ULIz$txhceUK#!U>0%K)21G!12a3&9LY}6J<Q%F}7%4}w+K|P0LOoWG zoeFVCo=jIhNQHF|$C_|<aBy|7CC@VsBGT8AKb-g?$2|<fI}Pls+z_s_iJ<M#qwsfn zP*(9Hx+7G8hJbUXlvE9-XXuyahw>O*SZccSUjwZ=Hj$v8s*VVnI<ln0NjVVfaT}sx zgW`}QiNh?XVk)e=GV#FkO<Q>eD*Xa}vkYvtmZcrjX?0XADgv<}ZyM+FMp_<|BksBu zr-v~oHhGpTcDFAlg)%m8iKVr2v+}|!`K`5O(i-6vHJl7Vos0^FJ}2NPyh?_B<a3(g z>$XSBTx&Yj?Wq2x7&-VZ1fwlWHAtcGNv(adf8Hf2<T*(AnS;T#fRB_UBa%XVtKLdu zWRQKDHZrJ9x`M9nHC(~%N4ht)ji>YMB~zwbxG2^R8z^-}VGF*|S%8~o<1nA~$mAzV zDH3!$@iN82;UvD+b9<{vZ7rixyZQ5?XmgSu|ISxZx7@H6XX<aG{eWM$_Uj98{G#PO zecFHZTcqWZZKREtg8f45Y2QKf2cxV+^8zmymHjC!wh&@7y9AaHzJ&lDB7jt6ts(!c zO<e^YkPYmhtg(T2zMNmYxCbZxXbPNI-ksbH8y8tT6c>V9i_I~<dR>Tr+1+AXJvcMm z6x=?BI&odg%lS*i<(ovC^0iI&M+VH@fn$wOdEqVMN=6R7(^jh48@`zE6{a017m$h9 z5;NCqFJ&2cis~W`GJY|i<Zf0S)bM0s4b16hicmZx(LK5N#4iW_b<n3AO|AW_*wXt9 zw!I+Z%aEVL>=(>LGh(8dK`S5MG?Jt~%f0{I;OHS$mOa^}2PA=6@+`5O*ZO?JYhf4) z|4X$5T-?guQfF-WIlDt^Zjex^4x(PDOT2{lXeG8|iGFmK)!N|}PN2v<S5!|~XScP* zhhxY*F8|t8s^<3=|72sAl+|ScVwvM`&8|4#1OBGr<$WLfG1PlwJ`4|s_qll!*1s{p z^KVue;G>)7oYMq8XZEGi1?v-!5z-&@zn=p1YF#y?w@>Psn12Ql5b*zPeXww~qGx4c zF!M0G?DF?f8|vWl;qY$cmgeAwwIvb?01}=nD3WEnpr~hFLrUEpPSqnJ>x*Kuw~`&; z4$uJUYqD`>u`R9LKDX;ijrL>gYI|93y&q6_OrH&b8fWwmP{OrYjEu&SmBVN}{5!*H z!3n+kvEA+O`{TKn>^wcm$NDfi`M~$U$2v2qF4!K->V!8kkY5Ja^i%jbIsAU{NBeHH z_$1EuCjXks{D7C;&Uq6$D86`DVfX#nkVo|8{Mifde(AcAecSOO>yiG}|1RE{_}xB} z{IhlQ+wbtWrY0sx44XgiHWSnS!y)PO!{~?C6!YU79y{oz`PlfL<S$}fXCm0@hOpnr zHfLh;Wmm*y$jeu}z-GkT52fxFL!6E=lT+AEQkJPMrv;lS&OG-uJQUs10fjCkBCPD9 zH*k+C7Xy1D<=b%%MAyROAqGT5J?Tv%=11Eu%E;6g<ol!l$I80@)T+xx#i!zreHy_U zS>MM)9hk_f`nPq4Pn?dc^TK&}NjO&>vjJmrHn_io9z5g|kHd0b`#`8>o-kw64X)#! z|6lQ+pPrxWA8RS`KqM#Jbufzp+3rKFV|u<rQZ_X}@|=U?f;=`}IUa^>)>V$Svf<gT zdFV2BP`<;RxO`#0iC<$0QCsW`ofb7NrsRXH`Iu_ZI!5$N&%A6~!(a1*0{IK3+M1ZM zRknK|5k*V(R1Kc*za98OP1qHj&@ii-I6QJqJT&mSzFSf2&vuxTLbbd)!|8z50qX*x zfQ0nFDhaR-gr2co8}p-gLYi4f+IqdIshcDZ_-5<l9HK;Y{^&4h8G%w;g;(Ghh6`D< zpy10NqUhl2ZSmi9u(U0$whTyI%&#PD5CT)QL%q(o(AZ2S@~2j5$}_0iDu%Up^IoG+ zdp@Il>&~I!+8hs=w4&%fWjV@ADt}eRg?$P{nhumyy&y-7N<K^TA7azMOHTqHyYlse z5N>gCJS&p!i4vs<KOi1YggZB64WuPaPbA983k8q@wC<uG-~K*gr`eLv%AF=a%qu(a zN~i+O*o8OztjCl8P-B8&nGmk&CP?y(7~h<1HN%gS*}xt*_D!o^aJ6XiWgJrkpN|Le zy))MIO!n2Y>GOHy8v)?$%$R+c==|p>80_^_5-?Aby6Fk{JO#h(S)^rDIWRT3tfX<# zB285Y_~A`iJPWpn;@d*6q<$szM=FLV_A4NO&q!k+qKIb}pbm*|aARfgDZG2)F3x7@ zVShpU0p+Cj$wP2OWMl_`<21Qta7_&%V`@|~cz`%|it=%t`FSnp3_|17uhy^1^G=b% zTWW!cIsPfL5(-*|DBvghaPvqOy|gL$;lRAj;q#+RHy9QcKJ%NdJ#ySquor~cb35HR zYOU|-hqq%k@!p+*@$X<d_Pkbz5GyORnb%w}q&rb`bVAD20G`v11BVHE*8l<BN>z8f zd~iSS1Sqx<3QYomydJY(f6tE1tuYZ&8<l4x;JQk{(}t(FiDKUNW|;T5^<;%+SpUN_ z!<B};g1E<~4P2C#u(t|P&wYh3_WI0rg8?+L0U_7ND38JcKro11QFbml@U^mQPO7Kk z9HF4C9U%_zb}Xm&1ylQQIUru=bk2D2(i8*7i1lneeX<TL#3S>=q)G=Y?;aF~SAWBT z5gP9Wi5lqLi*$*XceV-l9jy4^xHliK<tXf6pnh~tc}6kV<MuT?D&_&q&D>M<9mR!t zpOyCFPQ9&qqw?6af;C7afk8eV>`tRbN{X@h14i>sHM6v%IVJ#*u-2kQN4#~z(0A=9 zhqTGj$<dy;(P2j347z%C^7rD}@c?WSGK*`2!jY!qKGl|loVVAy{jMq<pj%xmxp#-( zL=XK1)B{<61BmA{U=3X=nVBm%OPE-of8ksNHX*z2o_n5+F0EF%<!^_S!`|<?_M|hs zvO|r`+I;e%AsvaO6GG4pBn{4-o$5MRp$1U0Xfv2eRnn(79##mJ2KN~=$1e96J21{j zvHXcOy<1Je1J2`}T8+B`_XJu?GwTb`=XJ3I{;S=FIVqk(K!tQ24q{PwSz0UF`|F`F z5S(5A^t9vgeF6y?v_=i7U08nlk;82O>!s-a3|NJgk+g>)1Ck!@E|e-Vhbl*alSQjs zhA4`L(JIT@3x5neL5;^_#GrN3@DZpaU-4D2{md4k5vv_HIh@14|GfOTfm>@nU8iif zd62~y88`cE{8%w%1qK6%Kv%CE+S?)Y5CjD+Ld`JDb2k+ed&Uzto|sm^Mk;3A3%@$- zD+4guTdRnR&6T3ebw`rCeN$JcILtmJKd`E}p*2wGfTI+`h%;5Z@Sp%&&pO63fO>p_ zljSbHP|zrfG3{V~c>&4CV=iO|TD55co6OU97x*f-I!Ao6;2`Wn$%*WEzc2W{=E7k{ zCE2{qNsJ=aU~67KzhRxbTi6rwyjbPrQ?PlN!s%r>#Rf&oET2_17*-m2D0b*X!(HUV zMS5R2X6bhviaXJ6d0ssOQVgGhZky^LG&=@mO)g22u9A9<ooJt&h<Fz8fnCs4AU<9! zS!NKM$s4HU8gHKNeYi%@NnnnO0^31n|C=J4|IwC1DW`hmpxB_vlj8RRIw8cG{DLxB zhgStO&PLrBh+a^w<<5-Oc>8m%ktFuXlg@?m{gq@3zqOMKTX|xfUPh3Z8xvu#jeD1R z#JpbKHDnllKim8KFX+l|>WPaDyK?;@r{YRpW^MLzszje7q@F7jne3_jx9|(#eh?%9 zCn^+Kav!7(1qRyu=?EWd5+5A5L?HY)RHY~{TGJkzjZ)VHqX!-MR!3i6es<iHr1>|d z)tnR=e*x6v2$GuUvdKYnWIODRUGm1>^^;SZtQI>D^u;a!jAwO%tJk24=*SE(j<&S~ zZYf7rq06CnOO9@W%af}Y@E|!Av(1ATxh-HJ9=0BIYNN`<0|=0r>e#I_!;%%;vWaY! zr94hExz##eW4F}Y55<;(?qbO?QFk(ho7|?Y#GqBUcnlrM2RD}gjkwD`P6|k{s%yuE zAb|WwKWAW{>I3FpxsH-WwX`7!cLqRg!4Q`4)WH<|xSYX(=9mwAGJ42(En-06ivhJb z?zc`*ab-8A&M)I??K}&xLRyr|j+=F#E%!Bzhf9p<dNi`jpRrMOL3jd5wd*iR+?oZh z;Eo%_CT^pRx!egB?!w_;vxWr2;H>YBQNE&cZ(?4efC>uVKPNO1@zw<6TRII4S|+j< zVliWd7(TvpB+na3EmNZh$#_R2Q2WbGgXDZB+$Sn${mZ5zxl<_ze{xq%(VpY3L-Hc) zW@XTc!STTw@vDE!F^bKj5^wZIdEpzlCe4qT<o0|9bMXBQ&4{5)5twp|kOO0WrJXih zrN~9hNje6HC^-ub4}jtxi*Zm$MyyUQ>e%>>l7+lYg*U+a*taX!tSm?n>M+;QlwY_= zfGj{Zb}X*5Vy;;evT>@T&|zN#Ik;SLEZK5SXmL&sQ95YIeRyB&%;-``$dYbZ1E?u9 zt!Nz*imC3Azg@Yi$Bd?G7>U)X+5Daui12w6h#5_<x^xA<7xCWG^(4NHp}(ZdW5}$c z!N0<V)W+DR#^jEZQB5(AR`%Jqu?!IePq?*VcUk*aS*KCeh?E=Bf#}+4%oX@p<O`Rn zqD^VynWc>xj*=b;DQ{0BRHjWNV`AoFoLzZ{L0xTHnxgO2L>C|xnrR(f*yz#u*=iz{ z1?nNIDs53HTmQ$2lkJaI%Pi(2-vv<gI-S@;<ixpUc$QNnEdt>Sm##=MEDn{t`P)5b zd(zweX|$JsWi8gLqELfU+{RG{u6gif45=8fuSobQyf6($V~Y~TrPKE?dvCfDkJ|-= zdipQKqw_*O{*>S0FpsmkaLRrxX=J0QU#J)SuZp>fI?k@eC8S=(T?`cdm-)Y7Yp^4a zJtdX8)OwNTV1u1(_rl)M^`xZ}c|F{$SNu$u)+DV1grr)~O^Af50u@kzd$CdIgDuL! zQteGt6kHl38w%>S5<~Yj6*^Y8|KOTQiUfF$Y2c@tqa7nINZNyD)uKr)X|rdmu~*4@ zCS8qcbGF1J4=2}LsR|uy)Fv-bxx@BmN|E14Z82k`P@;^oB{3+SdC`T3uL7TRqODb_ z)yf9Sz|Fyt2#qNapz@wyAl&ibjDwdvE4dQt1z+x-t3C%qj9|CQL3O-u`T=j;O@PZ~ zM`%k;Afw?d1+~ZjR_P2)JLaM+O+3%IpY5cLWKfl{0v=`c<YP-Ptqp<za>NE&X$igp zDg`ghTVDs0rN+DuEWdO$_r$5q0IS0MUZ6DgvNcxWjZhagV&XaJs*0|vv(E|Tk7%vl z*g8881Zi{YWY`SNyf!wE6|cS~_RXG;sQ$ywIljy1G6Iq#Sa>%!XBM<2dQR8p?36{n z`N60ZpoqPneK>n?SJ1lW-Mgm*$QFlwkO_gjbN<O?2Xu5!`GR-LUe|Px?93e#gxy?R z*I=hvw05w+wr)a~BviKV|Lx-5cA@H&+PqjC>~go6lX=An`@Lrg?V}g?n|5wvmlna` z?o_v{wPMvgP^HE_E}4FsWeUA*Whk2gNEu{#UteJ}TOTX(J9h8JJ2yz}$%-4CNlSRe zn)~gxp%&Go&8k}9pgq>o%5OH|)b{=J3J*7E24k0Q8-`8VeH-kZ14ix&3=RNN-vH8V z-NiPVzt9f!1faL5BTyKsQdlH6D-(*}jc9y70Ul)T5wa*OT1Fs@z8|K7_MMY64gygr zV3@TtE39O!1oFsai;3!m#Yn=x1j$H-8{TvwhAvL&R*7IeI+XBH)o5VYX3?C&`X$@8 z4P2`QUgc<lem=m9T`8RD&VF4NdW&xP<40NIau1FUb;|@qRr=Aes%>RW>Nh)cGdsZ^ z+?5@4%rLy(FVx);oA#R+wI#?D<5a{JM<wA(x5HPPnM%rdSCQ*MP6uemj$xvwaK3~s zyRX8ZfVcg0Mf3C1Ga+_x@t9Rue!T?!YIwAgu2C^{rh1CMYO~g-Z=lVjeoPV)R=6s& zWQN!=-i`OG3Ta8{-H12}_^L~+@I=$LsJ;yb`_Fo|_o3RKYMt?6mh2gzoq8Ophs;w( z+!f)6m*2wzmO!;FtpL<8a=4xFy%H8)Q20o5Sjw4STBwCvHswHdT$cbOhgmndG%%@K zLlNGo)*{zH&@fmCs8xYUxRB07P0-<Q4Hk6+t%8{gBRCPTFJ%%bHpVUwQW{--?F%6A zu;<Olnb?EdwV`eUqZtFVgQimi9|cK~S6dFY5m(Y@i9Uvs=XWyVUqY&IPBdHg3)uUY zwa^R&D+Y6=$^M=PK6safcb(Lzh#h(07@9y}*M#;;*#{rhgoo|y&uY3hY0>U!y*3+u zaJwu$K3~<D5OQH}kV%xZALJeu4)v>@myD{fX!(&9OZ>{D>ryA<{Ex3B5-v=XM{`F~ zEst;6O2r{iuzHguKE2IMT??8R6l}2Hm5-fVEc(+vLe?v=T#xLq-1ZvKY;pFC@<Pxl zqEyx{WF+%v>4t|(UZ*`Kd==kT_U{%kg&PI9pswNM$?d=2r4~<TDry1VxDE1Zueh3} zb@t7nLQNS6CZc+`{~T@%<P~s|1eca~KCIx6D5cTXWJxMOZaAKdGh(<FT!tA1A4&>% z5;qU<BVmY~*p&sSBi?XJt{*h~*%nv>>3p9oKZ*AJPG6qL_okdbxKv>4^=Yza3jQNE zhMR~7dP+^{{VZ~Ds=2OMYPy$CVUi)b(;>-qe7hOZiMQo47#q_<K|W;&P3`x;E%n!e zQws~G`Ise!R*60GVyLxmo%T%dTM`R`-6F(ElqF1tgmmR1o#XsdKp}Qjzf<X$J`XV@ z*)2}fGdNK*MY?L;K?*yF2COH<_@u&E2_HlzO!J>N`Akz?n<#Unm#|{<JHz&2d2fe) zh#)-*+y(ioEGsoH1)$X8DRRpt^G-<c6%lwDkhjLC1u_=U=qUxnfTX5*yK(iv<deP_ zV<vIfjTr3~p|}O}Q4Iv_Bj`u`Q-#u32`#b_1AQ?Klfc=O+MC7SQfRGL{bh-+)q<6E zT$3s0dI}#>tW{%$v(dfu=Xn~pp1XVk!5?c)@%-@(lx8!im)Pbrq_-u(pji;ls>rn% z$z^Tym&5*#F0I`(e!FHshb3?*pX}Bu)ysN)sX?UJc$`XBZsSk-=V1C3U!d!EChFjh z!U2!sVXA9Yy#(f$<q4dtNxktS4A8q?y`_uHvLMulNOh1AeGZ}ytDSfjLqhmIE%HjD z7Dx|DoZj6KGs_m;Ar`wSSQ)^tDYTGC0jl|eaEt(Nioq8AtaO7$p98MDUE({#38xH^ zRQov&AoH;RdO89)F%IDrL3)$}o2A`_gehcX|5t-Eq6C<rOpX8qqZ#3sYs1{hPJ6_Q zdHx#KmwJWm;M}!8z>UKEFjMK*$`#6;dWAu3<yA7{feBcTd-Fa}d!gIjlHG6H;-oua z`nYvx4L2Cgv@jA$DqhZee~#{B@A;VW9|06P2XRJEK*pqD4A7+H2m<lSUHSVY0=VBd zA*_SJ4k0uls65<{1i@skh^;l8B&S3A?sg3+=pPO>n#+(~Ka(&eD`=xKo;j&bZOt`D zPQ_|-PM)<X8&00ZSU#Fkt>MAHw;_=x8`SeO^CG|$mL#iJ1cG`>U&<11KDRU5D;(%L z^zxSP+l>PGD)};7%*Za7EVIcuARKW)J)nUd#fgD$Ex<JCA-4Noij8;Wef$a0z<nl+ zcY(S&BLn$g^%)?(Y2p7sRuZF$9XmyPBX&Fqmx)kkldcCzdA7{cp@<B_UI~vEGX{Y< zu%=xsLG&B%iYHua2=f6WbuC%(6b`CKD=H^M8}Bmfo=1BQmVXZ$Awe1xnk9ipSa5$r z|N3QoOUX3Rf;WBxM?zh+R;k*vt*pR{J3agGb!#fCeg427Gh<+Qpb5^LYg^;^)%ZdV zg}?&LO!%$=w}0N70Z{2^7;_r7L@{bE(49YA)M$tgw004KO;StpTLjf?!+NDhbi1q1 z>3Fb0La;_6h4yx1xf`%OspV@$_xkefg<gNxG!lc;MKm+X{y|6W(F$cV*lgpvwjXp0 z3tBaGr;0G{lfQ9gS^zC8!_JkPHzJ>dwu?Tfg{x2QGb+hb9;s@Bq9L&&<pV-(3|6~~ zYbycw+FEtHb5(#RZZ`F;yPX|d&5(G+PBhLyd&LrPzs9oqolPKu-tj`OI}u-tnvY`) z`i;zhGD3jd)-$}{L;r0FT&3M0SxQLNa3k%Uy81G-3!A{vTjek}hvBGvQaEV2+jzv{ zGy*mKIBl%PFxX3<&MrTb#+bR1K!mc5vxJ8JsJO(o&fN7AuGpBR`kMsQP8Ne1OPBx^ zw5Pvoh;9EMRiW?&KWBKPMfbb)GeSY3#@puV(mPrj6LKTtb`_jj2Lo9meS_y5t^#>_ z9L(O_6m}njoGT_-{D#UEQH6#Zb!rxN__7rk4^<ex)p&lt9cNQuJOw9ttXC4JTI2>S z!Z$F`5FuWNRyz;UOB0)6-I{U~*f!mX%VDE@)JUa!n$5|+NGx8x8K-aLVz;G*9ujHE zVZu{r&?G>ec=m)fNhmJ+5D>{6D3Nv%b8^OBlsA+WG*A}is1k=k<<f<<ifeI*uLPI` z*st0MJ&Q$Lbl41U_LKD&1Fa1My=KMjZj5Hu_PJy6AMl0n!gW=^_7`X+6y6La@xBF0 zb*EInObUUi5!^iu-BHC)KHyQYL?2*T`5>@Wsul~W;@{ZkHfOrK)DUudNN^9qcMGn! zgRx!$MS0{89-?h<hsLt6*b;~$sG?B>LT2K1X0b_GnE$cO8cRSJ!+bguGZ7)j+P3aD zJ)`Ky`QH4pkB@&2fG-p~rcJ**e~1w>KK!DmAibDczAT*sC0-foj~fRwrh3sdcSST= z40qhg{JUhF|1WSo{3nE;7w#c<F4X;Zphxn;nTPB(qp6q&3r6k)*m9f=m^$0lb(*n) zjQHwrSIsVxBcOYf$5$Cs)UYA@a+i(Y^=&0Cz7_US$JZQWprLb<Th#Mh{0YAi37>I{ zn%wptwk{(Zc(5~$q;XWQMPj`9zkNEdZOl`x<iLp`B~V3)=~C=pc`~(tg0+A4kM0EG z{kst)9hPO45DG^3AHUO<!3K1?#h+s`Ii53{k^I`f$`YyxO)r~}DqJ+?<D*ej)bngC z5>>iePu7(Asy@y%zE-(2va3^H#2(Pfx~zoUY{536<+g$9*F*MOxg)DX+K(xT@=g_Z zqwa%}DJ;EjgJCMj{toV2LuWf~#MIiVOJE|Qcx64oqquHFZX*_U`Aa4*fs<6maV~Cb z>k9A0TWf24#6^ZG*w4c&*fW22f%zNs8Q^_icg~H~2DANu#!k%9_=1_1!`J>!xWI(2 zW-}6d%l-CIiXmhzMBY0^18sk3gKg1iv4rFkt>wxWJ8|doR6uS<u&@s6ls<LDaKxYH z#>St%Aky62(+&8DAcK9di#9}%EIC`n@qW-TCIYRTas`=?2#!SyPkSKVF6{I|VCmhP zqBd<`SekkTfbWYIS3+k`$yWUlH7~QRh9E~r9!I<~#M<J5AT>+vZK<KLlrAc%p*c?C zie>G-;97K%0X1nxdvNd*uqL^b^(@JTwbtpD)#Voh;upTBNe?T{;vjYG?fL`G-6Syq zIG5EV7rUmwZ&&;Wr5mNBH~{h0fn#y1f`({Ha_|A3Oj0UclLzHIAB_fnG+3YkujteT zJl#GYUr!0P<dR}GgpjBQKu<->u`$Zg%f6*qs!Edg(0eE-JR#D>n<qTew2I(;;|$k; zbrBoG%sO}~C1bovIO-HI<OJha52~2b4Pnb`7)xY^D;l9yGulhJoZ$y3vw`mM$PY|* z;<7|-%mvJ?2H0>9DKV^$9MrY8_N5ddmXoDhJF>5H?4Bl+&w+*wQdk;eFPmX$g|VZQ zn@y%|F>q!qkPh$b9%z~<d!E5fvgM5QkfHG*8l2iWHiQGL@G^ZE4p!f6RoJTgJV{mL z;h9D6vCA0wex6g2y~DL|ZCV9UO@7aUKYM*cd4nT1t;iZZzcZRn8So8ZWwpO5vG0so zvjmvRtrioj^^R@<^s3KIrR4WJ94SRHq%p;qe5|-907K!V7R@=3v+Tjd2m>d}T^f^2 z?LmT}>N^kva}ng0+_If()>h~Uj;?qeyx-JLZQc6XA-NI`lk%5Si&k3+{J2dkPu~n3 zyTG}y$CN+E*ry6sBAHHSWo5rbe&y4q58F*XThNCKob2!k67UMPfMg2%Sq7L|d$@@~ z!@6EQhK|{ujW+LC(I2c6*X4#KDWiL(a5q#5{Y2R?FNws`%u+gLMn2B1%%0~U9{60Y zHb~U1j@2$lq4;rNxY`AhgZYPU5&VvieXgx*zf!b+LarKP-jAZJkaZmrsq0><kOmI@ z^-`<eblcQgSm+1-)?R16i2Ls|gAzh@-QD&2_2@<&0><Z#Rz%D1nZuv$;2kv4bVsox zcE`r=)rvqjrRFNsr+X(%mnaZ9pE%51|5}Jz$eUxT^0>5&hV_EaVaI3d7m+%%Vee>1 zlPGHoqbTXCsu8)i(P7=B)$a-5H^%`=mBd)vmz$j#?Z$_2i!?n;^KkutfI7VCU{=VL zZdv~EN>H(3zPw;JfC09EW>_!x?61A2ovSnlC7HISuI<l%d#0KBJhmL!1X$0WA3fwj z>HtV3$HIk!*~aekk-3#m@iuAs7_wI}fqa#Tb?TdTir@R)5*0OJ6F<HRxzGi|<Vm~W z?(QnTIkTgn4_Oqy%uZm*HXnV*=5Z7JZq+GX4UIbP;^D<rB_hz8ea7ArC$5O%K0&Z( zJX??@k#D=<6U3P<meyRjh~r!ORY-?Q1KB3?Pxyp&Pg#waG_6YxQl+O`y4E|SY_v}? zn`}`pcdPPZf!Ktg_C9czSWgE4b$YaXZZj=(H-L<`6c|gqSoiwm%v7L3dbiYl)v<PN zDVV`qpHnZcFVXc`u625QV9XszVGeFI(|T~ph0(<*(FHW>?pNnvrqn}yl>og3`8c+h zE!0(&_B(5Y-HQ%RzPPO}KsQU{!s`>_eMU1u8}kJhck$R>lKMS~?PJvNFd6Nb&G@qZ zL<T(s*D(uS+GT-L233JWVrr?_a(T)b8*5L#(?SefZNj)2oWcv76V_!XnQvkLv`7B} z%*0R=`xKv=^h1b1SClN(+^OV9wD?MQq7-fIjTYEdo!7A`o{lc2k4|9b<as`vLHNx6 z-3okT*3o60<PbK55H<Ch*1D8CtBj8QgjTWzVzi=W&*-|2@``rYmKq%L(1lU_>=$m= zkSu3$$N)ZF&ZPOSS1oE)i<cE$*zr9KW-okRWiE~a-R*mA>_-DHWN(eQYqg}E0Ag%q z?{L6<=m*Fa!f_617+OV$t5}5pnm*kUCC?)4RK};prfPj|r>q`^;^Wao$v7X9a*596 z1ej+|_I7ZFQMqEcLcBsNCv2lDQBu$WK$b+BqwLSLXf2vu=eT7r#N%=<Rz!MVw^?d4 zC8QxADODd(FcEg-1>cs37GdPi{_1j0;B>DOz#DvZ@9C(WN&o%{h4wmH4)M-Fqc2^1 z@)6#ydp=V(+kyfO!MT)0xBd;y5*7aGN(MMs>}#L4$a9pf1mQ+FCO8pn$ULYqlv7Ge z;Ho)356D=l4s`z<sTH2{IN;hXPne@#ug@hUCD#7x(ej=0iB_T+-mWhniR&y2G-f5% z<YAW_FMEiItJV40YLv!_!56%Y_s1nGDSLAn;2+WjiiWJ+i`1%^?lF)3l_!{9cCZZ@ z$sJ~zC=r0b!_BG_9k=|-YDr(t8t>c57w;MtFZ1RlIhyR_l5v%tkf_@Wn3HogVw;i_ z#KCEbO*0Me8FEBoIo%Z7p=A4=u+3&hOsVL&pv99Kq|Y3u{)z7HVNZCM7NicU2XJwX zk>B8$0{9F}eP187ss<Zy>mFAcmGcE7z*F4a?Fm-F6{VTAgnI7?M}KoJnct_<z{Ux$ zS>jfhI*DLkZ@*fqIBr$DM2u7VR>geG#Vxubb=)B!Ny{QJ7YLzc|7yFKr(5fXur<<) zKVY2al6v;6IKxxD!t+lgynhcZLDGqpnZu6IHD<I6#2Py;70m2&A!c43d=90v)M{@r zMfK8a$3Sehhk#QmuC@!m)PhrBIb$lx6@ay~weSK%#7Z*H5h3levKeF?P$u5<=roCK zM>lR|Xx$|xBz(Br8w|%KtiEkvc;u;@+oaDYQbLhC>dXeixIoDxW!^aIpBOJE={B6E z0u~R>QTy)vrMG<JA&O)0DiNDqCkc*Q21pl5dxBJyW+<Le@qj{u*U4ZTk#hYR`suCx z&W8LcauMnC#e&CrF>)b{q17^HCZOg6^yF6;>S$_lp+UO@K-?!nsKX0^$kE#jb|flj zAU3s`ADH7wwyR_~4yZ_+vH4)z?LCLw|K^(?h`sE6nspFHmX?gs)ma6N`g48`$;aQL zsSt;@*Max)(Bn~mTf$a+?5U&q$thP`eBKCa?Mmp(8D3$QK-p?MiyltIXtt1wqw_CV zO`{xFcWPZeBfQA)=nN|7vI5HiyE^@bhgquTo$F~L;2KzXnXfs)Clnw6?iHi8qdwo4 zBWlzexV}+3X1AGpH4o-56Wp~%ClJYdQCl{Su#lTtvMxgsSDe)3(WnN}3iG(k!U`4E zesKRjvQAfvN}D^>!Q#3y3rqC85fCYBpGZeeOa5Ri+2q-ko{MC(rrV)3_gX>FQ!j5h zWv=z%@=|=U5yBfU!>YruMR&v!@fTrXDizvtf{HDSGbR{dGgTTpi}6#leKw0&yD;K~ z#r%T{{N*439ESW-WWKV~I*H@a%OsyS{k%K^YJ`N&?=YKe-Z~M~g=0E!{^?D?<(Fso zC)jV`U60$g@()el%$%LZh%>3Z!{|C8qcOzJuduDUbc;TpgeM!H<ICZbX3RUSM-Ty7 zf8ZJR4d=Lejb)ol_A9Mt8Q-j~<4eQe*{uT?n2M!g7KI&CS6-oAZ+ahl_#n~uOku%W zOv)~0PPefX8wzrpPves;b*!$Od<%05vR_Yfa`G8DG_1RB5UVF|$balKY$@KU7IuI> zR*GmLvm9d`SWht6c2iWqb_-<TQi$YC-diwqH9q7SMLtTkV2(<qVWyHMf5j9&KX_D_ z{dhbdg8RfBWO83UC3Z^$18Z1{q<RW);(I}oX=-k|hlnlG^IcOrFiQ$Fn@Wi2(EYsS z|Gd#CxK54;{JyPSVK&KLnzaUOQzC}t<v{cW<3*zq*;n$dD&^y4{9UYWweT$@>WUdY zgV3L_0^2kg@o9Ht9;9eq7NTM4UYJ{3+`;$+5#kNPN+g7m<qXgJxo4T*K?eMu1DGBR z_D3w>d-1?7e7(Ia?7L?m(fl(ZAp7sJPbc7ym6#B;3OG0yV*>1t+wZU}m0O(&BEmHj zR=N{S2~F>3Atw_5(x3p{H2~RagaV^87l2&0Trt#`6B#Eo>ZE0qX|1=G8#l}WDhQ7Z z)dVDjg=;tDSM`(&NqYruON1BtDl~3}rVSBO9%Ngayg@%GW_DT8Mu$xgB4>l&#%B*> zkJHH4lqSZ~MBkK^JNP_JI3x~52QA)e(<&N*561CEvJv*y@o`>QrwagxB5RQ%Z<d5| zVKe3h@(szJNA&uX@~W+MM<vpxCZwmuL4x^yH@<4zJg1Vr6$qwt(ZLn_fmD!4zpepj z%q!g+eHj@b5~DnNcbKlZQZf(og!*E&xPgm9u_3~u96)-!ok&u58J3TdV%LE%&xkRn zxI~V8Ong*;l9yhW47VDf3I`9(yzR`W{8b0-X$q=}b_RwHlp=ENA~=J@k$CV#ATlon z?6~4;146)kapc@U1}8k6W$WS^GtK3F&zZumNjD@@EkeaqkcsAW*qRUFI^*8<$(<Tx z9!dR;zZ=WD#ut_iL^T;-4;rEmhwndlk%nWkaW1glw%6K=_2%*V3N+l`%qP6nP7i`X z@jxJK1H%;fnM|VJq2mv;IK1HKd7ZE;MFb~HPv##iGy>ScG}>7`0VMGUC?TI_I&S}d z;)0ci_BND%b;B<|jvDB!*JxE{{7RGVoyWldr1vX(U)v(i)?Y=xA9VpYB9Bi23>Wq` zo;WC>Fe7YKQ}wIJ8@Je&z^SS91rT{5fCb&H0%+Q)Ek3l_MOhx;mT9Nv6s~u>S%xo) zmQ6gGwva^wA#TJv;<mI}<&$*o+?P?zG4XeT>z8X#6-zDSoMB%4M0il8XN*lI%>Z1& zqXh%}VF;L@2m3b^>XS1MHu8z7D#-|(r6&;))3c;=K#JPj)-ws733IzoMlDfXje(+P zICEeN0G&m6<Rn3Rt9Gt@J^{Jcx`--8T9h<~GZg@gfHvWz5BKVbbxVfkyDxhf$=c^^ zT!2DiU^m3=Z$gUQ`I^L%{jfV2g3H)a;Nn)?7_knKIAep0BgtioS7}SP<T)r$cr9wy z(mf|ClSteA0ztD<8qqi7m`sb#y+8!<6C<#!rFO2^Xu#cb!Pgw00{f?PZR2lsIZzA6 ztV^n<b(0yqmWsVrah4t>(K>c1T`3xL0e7{Xw7tHK%>|j<=@M!JZkDj|QBjDM-Bx0> zRla46iR5fvFPA6S-A`|vQn^u%q&MT(RQnW0F5;-)H>c^*DPA+wLmT{A2cKHM?&7~L zU~}Ep*!y-o1T~2^A>BVJ?@q)I<4*>K`p3KJQOFP+%rPw!`9AQ)LX0-)-3Hq1@GuT! zirp~^$5$#{{2G1<d>sae@<B+Nw4w$;Uf#@@U!K^`^}hG1)j->X;8eyy>-u!@1URuf zFW^nnd2kolv_!?pe4bb$oWzlxXM&(Wp7&TjtV@6E7v#|~TuG3Vw2U(H-+K%@<xh7v zq=>CbYdvQpq@OL2X|XTQDhswP-DjQDEi9w|ERYwN^taYF;0vM8b0tAgnS#JDVJskz zZX-eB+cFE{<c7@^bl5BfZJw1f6TPg5A@@+9j*^gZ6FN32dZ&LPWk<hf;evjQK<H!R zLd8Rfz>`|?*A=HK#6+?k-Em!$r9O-~^8Ob9X+W00!vhMy2B%_?5Ic$vq7l@@04`7< zYDjhe*U+k8K{^}i+Jl;O2cGNmlKGB7X|7K#rV*q{nDM51sf#(cakV(*Jv&98@@kRy zNoPG6GC0?^pqOds1;&`i&gAKHZRI-9)3(4|n@4jndfnQ@gnQ+bKH)a?;)H9aPxK`? zK2*7ul%khCeUz<Q_guwq5ddvwa!Kw<EGlV50e~h&Ehtmog*MFG*)mmkKbz#%6Sa4> z6ObT~7CfR6z5bx|k(2W#-KphFFI{*_Ux&(VT>a5l&uW2rR)cH=qXCV5j{b0Tq2T{p z)$#wK>h_b#s(1XqRjuU&Af6o(NYtz4V7;UddUUE*WSIk9_K3b=Fapqu03G%1BWO(o zv~m&B!92uIC|Q^SdU_%~8|vSVdUzHqp!W~JNHDlB;NU*-sis|nK9B*A=)*99sOqd- zxue&~;o8p@E3}|M?@TfcTcn*<pTyp0t<+#Hg)nxBx@BF*lW0nncRYD7x=eIdHlhdx z!TP-~5;Vc4l(CxBLYyYdwE7Eu`GdI3YUNs7pxKF(1K-+)wQQwxWW6T`1yL%rpdHWy zT%q_P6cR{#^FB|myXi}~S`l^%iP0Zp))TCUmp0<IEm$SLrMT8xi;QunSBKP!tk|Wv zjaAD=JJ-*7>7S5&YPFoFu{)RYnre!sduct;d#!B%YT5zucqX6uQ*T9utB>)9g?@OP z@kV{SUuZmnJuiHcSjrXyr~#460(4~n<pv8QmGktFQ4cN9Ltj%CD$zrq>LI5dI;)2& z^w3c~RHcUw=%JORIFuOiYm9*I>b{VileaX2w3y->qX%pHr01hs>6kwE>7(@T7xXyh z*sx_S<elxK7cZl$Gh=kgx=mw3#jGsiWGF<7jVWY0hrUABW4YAzv8Evhu;JSfWupe) zX6lb7NAQ~j`tVz9H4z1FJ?=skAvHFJKVmYs@fCdUGS5LyZQRWQ7CrC+3s_k|DMbj# ziww038AzI_lp-J}Whtdr_JIdB3w9z;vLbdOA9bc;#;5Odf?<wOEU(VWyAnJn25=VD z8Q6_dL=5~9iS?NixM7Uh>4YKtL;!{<HL@@(kFh;=rq0(4U;5EyHsP|$=&yU(;?E<E ztu;v6tbo!XMyk7#VxcNY-KReuq3#7&Q+LKtlDelNb$>c^Ep_AKQX2iq5ZVbzix~G1 z(Ji@}(&yfQlIw&}xq<0m8%5%x`spQcAHO^*t93%8SrE`D0D;H$+uiivCnT1*$G5oz ze@d$>)>?O|!*v<YtlGL->tY?QOI#V0<Tq&RtlByr&xF>5TrqbD<J@%1?P#^;;~|z} zS3ep+eP{sL!cnWZ&lR8TGPgAMv-O%jG^$3<A))uUm#*)|8OTg3&9%FqkSEave??^u zmyX#s#}Tdf7HG<Dr<6q}v!q!#M|}j=+-`$3QLX29Tg1Q*k?fZWO82mutyW@TO81w_ zkrem_2(>Q$E9MSAkFIS`IL}LFx~e_tIG=^9MuJ5@i~!_3-HBTwm1eX$e7bii9ynVV zsxqkAWNB_;>~6=9x|H8C&4;JnXo-II1kAf=wQ?jMYQ?RV$4Ipq9Wth(L&iiBQMzZ4 zlab51>-95NoyO+#C96Nh<Ef!-Aa-XT0>VO)nFF=9RST^`bRtMpU&tk}>fXFDS)IK( zE~O{>DJmq#v|&YkvX5)P-V|`JgZa%k@~*U^Fi6MsK}DO?^aVUbWg|4xZ=~-#*%p{V z3@p$ix}18C0QYSlkETOlDjJ+aXoQG?GMs4EfdKoX6|@e|>-j*zKDwhgd3`~aey05G z57>GpyD{aUeGZ-j=Q>hLuPZ}q+Nw*C>l&9sIgLXpD2A4flprQu<9Fy~07qnVoD*;? z*--4I@1w)~7Y<{G-}vf+xn*4A15ileks3Gk-oe)Lponp{0UeEMy@+UvZJ^N&a2_9B zcl$M{-k`$}S6o~0r|r;D0CexQKzyP-mV5)(I2TIt(c*>rNx|Fv{Rt13Gma0W0%b^( zX81YADGRP(dD`uC4j^6Y)^7J`InUzcgiE5()%A<?zL#<!P?I<oGb7RO^2A2$a(V*@ zYkgy92AlUr7L|R815s}bpp3%fP-uR}=^qAkN#ht4pFl;Jd{Fq8P&u!}_@<3MTC|9r z?JwtR9kKOQ`<WY4Y<&vpG<G^Vn?xYBI9>l?;w;(3&|(Y3I$3O8B38OJGL!<1dzQZQ zHN@;fB-jzquW@%)>EONeHI~3oatXD#hMQOg_WF5HQ9HX4Loa<s_m5*GFld;jQ~kNi z>)Vy<I6RS$mn`5k{Sb6N-El<U1Higs!@6#C?WR*R0JhWbA4x9tBkVo^KwqT6GqqJ{ zCwTXF_dB_R`0$aKqhq~D(h?{2I(f%%(^pK!diPU=qW=q&&!&a;IrG>kcl0xF&|2sO zZEh0<fMdxs_=yu#28qYhb)>As7}-|LPEUPlJC!&;Rh26~eTW>Y`-Z;=ZiiHr7>|hi z%B&u*xbFuh+bLhDLdXpcY?w-#&7{igxYU$RmJ7zSj-jTEyOi);$Gc6G_4-xC>E-!{ z8!dytdCcEsC+-%x@t&d)CzqJ*Pwo+q7L|EX;g^0o>PEJlj+W0d!0RS<3QSLN>l;Ck z;vmj~2%Rx_Lg_XncVNc&#pq5W`cW!_?G)R;VND<7vSkZ@GY2Sb^8s(_IS(VAk5um5 z1hq|ML~$aTcD2(N9V`K!Sqrf3jioCf+x57TxC>=Qds0q%>8h`F^-y1lA>NfcrMxm` z&XPAgcDs~K&V1*bS&5j9?>mk*ees>J*?7otWW8Xw%RGrBb|*5R>tVV{9IeF_Xk{o> zHlu4F;MDsWivU6T0h_Q^sns!<B-Ev=NENSK62u@Hq$H~mDki0C@p;mC$?;xu!FRgM zWXnorwOxP&mOKrU?=t=c5OSQ}{8v&JC!qPQF8vX7p`6}Xxf&ThT3@;&8QzBBrKLYk zh65O0So+gsm|cZ%b7?3UegebOOP@-HpTux>=}$162H`f;s5Y$j3)<;gb<65#8aA>< zJ55}%TD5W&%t$L5lJgL{%@sp;?<&EE6CV|G%f{SlL9(#3y>>S*iR7#A4493wpoGni zj;0IHbYrzp?})5V#pD!Z8?6Y-pznXhtc(0cHxfhT`y>7eXJFP-hBCJ<k#b18Kc%)X zBF%z70sdAOM&t^*{vs~Evg4>SyNTr?oSqQHo%o2Z(l)Lnr)eEC8I%rzn4%Aoc7=*k zi9$_MVHFtLZD*6qPRV)7a#o*Y{`(-Jw-X=Hi3hRGJMj_CIEby@iI2qArJGLtik&g6 zwS|@DZlH`a5NmgJ%V{tX9Qu={*<C$oA#`-3O%p~R!y!S+fW}Fw$`CJ4CHDapy{#@@ z1@W?z+_ze-KGC^&^>#*Sf_$@1O=|UdlEnxr2ZP2p?A7O+CzI;)NLap=YQ;D~bDfW# zqg(pefrT*^9hNdf+ql}JE$gn0PKKT(&1cYSN5Va|2mXRXz|yWpY#ebVu`&_Y33c&m zTbR-_NpXx6vE(We*tPuX;7S(sTN>Bl;68dLDe}$i<ns$Kd4klB-jdk*g)X#pl}=*v zBSIp`{o9(mF$~6wpj(31Yy+>j3Yk@-wQEHfpqszc7Y#(VNKl*D+^uV8ayv=4+_qxo z<#wa8$zqfXh|^k{pZe3uQcmeid}Wu;!dF@;=X?&2-j*}f9q%D%JlNn&?9H*YNSr_H zY`qe}z}6x~FC^x{gWm!(sm)Z9zfr(VD=_W~N@mIFwl1)@ps|<4y<woek92Gem6g%c z0Gd|WW(tJmubKIqTnJ62y`O2CmlWY?S*Q@NazW~U0miwcR5C2~(g1ob;{{?Y`)7WB zv5(F?i`-IMtCr^C?Q5EJR4>63y~|5I=;d~%yk%i&t#qs3;Gq}Kumx+JBbRzTZrXhF zHx#<p-)4*gQ>5`CF8sf$vGVAP$Ut-OlT)q-!|uhA)!JGRCcySsKi$Hhav2opy*;`J zC)E~@E$mg($lu5^b0@A&10xAiI?4i<z^fC0d0H0Ek}bBd-4*}+Eb-}ZC93QtT3Yaw zB(#}YQ|?lincJp|d)wWW^z{$*4xON-;c-(C?bYTsljbtF8Y-azs4j3$x=m@0bMmiR zhVrG<mZ5a{mrxSlahJv+twPJhKrf(yV<+(?>9VOZdU0v=BbI=Rxa=5hI^F|>2wF6Q z?OeI7E1FVS*0OM=bP2J&ZXjX+O%Qjy&7n#|OYtn2Zu+8Gwy^CSGy`w%bHz{g2D_y3 zceBb<R^9~->XN_0w!j!l%NULVpm1+Vy0kcWPAU}-hTQ->o4((zH!`cu1kKYMr=^Xy zG@3>CB|waj07=WtmAzi{bvPxZb)<0EW0=9xo6Xots9%AwN<OC<M)tqV>;@V8v;=iO zLP3vZ_CO=>nb*@gZ7p+?L2F<q61`e97X}w^If1qn=gLM^j+13^)TBM0P;)=cK$l?` z`Y)D3t&7&*L#q41)LMTRiA6q53Gt#M(sa9<7QD;!U&lr1hD3Jbu+NJHbX`dnP_+xM z^iqrPdM_|p(baL(PhsaeKn(E*mU#tNkZtGC9YelZdl!ADBy(pfLg-E?`ofkH+azcB zQ<m?-glMW>0vJ_6oPW{XO3%vl1H2NJbgr?_kg}c5HTGQjlK%P|DS8=-@_0Ojot~31 zr`zZ8sIGqPUDXwXUb)3h?|Fx5y?7(dOb?j<G0@BV0SebPP(sFO?Yjs8T0vdhr{(+_ zt&;ZWN+p&e@z8)Lw4B{+VbgI@44?;6@pLHz{Wpg2F;LjybVFVAqqiC31G;9fmh&Ry zV2(*ppVvqKL$`Vp3FsJ_>^5XDm>hsM8}W3MTg%yxi!ta7g%@t22zBm4ud9*!P%KR0 zR33>j#_{-GU;2sjkAK9QksX~<R<K=4A3U)O9UY>pyf}_p&M~Z0j@#szmU9G!XrI1N zg73rZjaRv7Ibnoz_1j#1wm!$8oObX&C^?!LyeOxUj!3s9vrlE7*Msk>MOZ<7!-`R* z1^u8!y7OdmNdiSbJ29|XaIkY6O?gy-)WpdF1fiKH6MkpWDapguL_hoihQD~Q!oVxt z&icA`y~Rfiwk~_>Cg>S`-Wt`<mlW`W5q7IoL7PE|;6Cb7JwpDHU51?S?@HbWX<%1K zB`%OsB8lsxC@G6W&f5Y#Qo*m-1yU1!g^HV$5`8mNreQ6Gk@is8@W|Jdk*|2-Yh(u< zS8QzOKqa;~F3MKN&<2ZsLrsdB3)IXkOcpjOf`-mE+SUzI>BA?`!)fGhq6^0p{!LLY z9t5oJqaW>K?%MX{Rx$VsC}RzASzkpnca0;m;dWqN5o*fxdAxM@@0pcIEhlh5Ze+{N z@JTp*<6YmhXJiPuZgUK6oJT)CjxI<ewSP~q9pJ^lW121lR;|0z`(1QVGU?cxIvGPV zm^ou$Cgc8bwYkRQ^ZE^;YHN*0tut%ucr6E+6*5}wb!IVGub(Y&9F-2JhUlwFsqjx? z5DzUNzu_?z$B_7B1H7?WCx6G9)q7vk75y65q|NM75bG$jB<?QykG;%yO1R2XY7QPE z{kslQ%v^poaSzckFJ8Br8J6e5AY0(ujLwwg4Bkry?>^E#xEkV*kPdtsPevER_ezMt zYuy0mWbesyCqFxRCbLWKAG}EV0Llsw6$O^TPmCv<vK;`oQD_n!0J|Z5X(1#`eW1W< zI|p9^e3=K|A3USH&yhFCX>u0psXt`llsPSURDj)w>h(cgh?y0yBwcpDyQZe`<wr-( zWh8GFh2mDLa~KCy6wC+n3!vxOCX;n$Wq26u&j$(?D3^yp=>2WO&7lPwLMwl7A(?8G zS$Ul2<YUZ>fs_k0<yMYkx2$5o3W4a$tDj<QrX0>~K!;r9$1)zb0htS+WMlV8RtdHv zbo?F-dblxHTL<)D(bie%Lfw6_j=?}P)Rg_mx$Vo?EtWTEKgiR5kgNS*F3m{*f=0N^ z>+_J$a9+2a!Ua3+<O=4!{~7s;MEnNYFdqdFq;^5NrhURTU43|qOry{5<Z9^8YB-MB z`OC=K0^$A|&=alnmBfWJhXlN+atG?t)80f~x(C<z9YxH~b(Wu}tKUxSJ$UIunOD2H zCf8JMcoR1gdD?J#bbk&CQHHz4AL8nP$45$6GY>Nq_2`m36Zf{J)9*)<D^~~hBK_?| z;SaN-oE;pHc#s9?)#r}p;gPRQP$?6>z!O0~HB{<;xua(S-a~&0`DVYl-k!?5X>*XU z@9Ixz>wr-2<B0WVNAW}t{fNC9Nc)PY)k~)$7(IS;)Z@9H85u8Q$MDD4`Z<)Ijq9va z5sltsNFg%bdT91gBW@e@?!&`jy4$cA{HZ}dmDt0&p$(T#c{=H|zH8>8w==hSS2z0i z{wt~gdXL|YnsIJgQZr6PAL=46{WM+gd6@OCC*|=fFo07?2VVQtL+=DR@1dXIex9ov za+^~aapH|fRWP%eYy*|5Y##Aq##O;l_hY@x{A<hnWHyIhCf)RP{k&Up#BXNGX*Va| zI%Wv4P|xVmjJMfYzUX-99OyJ?bk#{l7R^0imjqu&^;`FLp68`6{*8@}7(9hH;<(=c zySBMoUORfAW2g%|%oJ_Fyf~B4LLEqI)CVg11BS^r5daI`n;?V*Uh2>*l4ihYY<Sa4 z3o%Up(lt8X^x-#fW$+k8_2SV8$Ul)D>>7Kz<a=H0bP4H<o=Pm+p$6+Xx?!%r+jeR> zI-OhA=TQ~F5?8lj(R5r_a^^1+e^YG%0rnMMnV89L3&WF(<P2WGM?+V1a|#S8tK)<9 zmcolb+{V9n=#gLRPS2gAehgr~1G(&63y<$~S&c`c<H$0h&~4s!8GiwwDP0L$LD!9r z*rYH!peJ>i1?OrX87_PbC?X#DQY6P8?c(wJhV6z5Bq5kHvhP-_<6vHh!PAi73FX~N zCaBB$i8rn;i;-phFue^NGRRWoGJlV9dC>-=f6;^FUfyx9Am4@CXD!O*{PmN`8>ge8 zB`N&i>6t6{R}81ivjKsblcRZ|d%8zbez70@S|HJciM2ebGZT+MR`8@cZmjNCALP-b zg6I8$>Jb1f+$kATYh6tF$e`Bsi@~SR_eG9DOk{}nF9Mppx8Cu=h7|IFu{x&bg6xiW zA?97j`%*pLFZTo9@dH729Ar2T<*%Paj-LKv@ZFgb;Jd`g%QF$FTccA#_ja@RS9EMK ziQ)SLo|PhyyLr5#kd;X87SyEzbaK>)24-_Vm{^YY6PrcVeIfHnQVY-m?mq$aQg{mR zbSxF*Rc+8It<~aiq!m7}6X&!vi=3QI-eBE&ItrDhPiEh&cPsW+q~}I&U_ch=)-h1E zJcR$i!k>i#4DWQ%%Hpa?t(YGNwMrAj;6<D-H#6;9Utl6xoAKao(QCL(i^qW?ABx5* z^B+-n@YH~X!qQomMA_+Xfdz@vq9-aZwjSn^<wERmRk{9IWodb=oRia)Rs1lEQ8o#h z{0Q<bOpoufD3~R$KH`-ib4&v=Cpk#(g-1e5#$BihRatA?^z%ZdT;eHw2I@#f*bTh$ zUBSw@W0%CvG7GyfUM)ow+4|$oP4ETg8)ou>@zy6VP{Nk)gspC^2=n>IN)tyXyHsnF zl8U)3dahlJ`39^;2H$wN3@^gFO14(wsf<oP-^k^&#c>N>Pk4r<;Q6ib+6IenY-^)G zSC$Hzx=`K1YpGZTskDH~OgfT#x-~V7i3QNOe_#QlGio%3%Y)(OOQikLFyrFDeB@%F ze^=~5)hVb>UI`2L$o+nv3^AiC@~LQi%-o10nm`79H*m2B4-bTX#;pS(uq^Jlys@0T zQFuJkYYr{8lqpp)O=-P==bu75;_y-}@ct5{r!(G%K{wyoLg51gsaVh5@=>s@K}SwS z&y&!7X0?h}%Y@K9@FA#Wyt4XVE10{=YyXP$(pFjCc4Rmb2;&KXrRB0QeG|_}3|R8B z!BaEc0%;$6PQa{7Gc-LcKHTAWudoIr+N8*5B6;H)iPlf<i^DW^x8tkOW_z5>P^&Fq z0E<6b2B`z>Am;E;xA82f;7>W&S=o5x5)U#krd(RI!Q@|5i_7s1yrV&o%XRs7DS!PG z<g-|4iGc~Y9Vp<g(*@iNCDJ`M@fSO;k#YA4P@0M#JlQI!kAb3YDSXRN9mfS3@kcKq zBR0qJ$d1O}7g};_T+x`gYan&~p}Zlr&H@4w^VeC_T0y;+M~QN;08dA)Ap6>uq=6Kf zfKnulSG4@~c`eNoP>LKMD@8&TJ1WTWXg*7`gzmdWcmx>I5S`?63tQWYhbnH1tAe`3 z5C{3T3|F4iyW(oaZL!`G)OW(Y#prJw!o7Kr<u^ddOAYG1@z6?J97ZZK%rAx610s}R z)};CYR~!a_2}e1O$;kxh9LIel6Us17C~twtlT69}&K{jmma+-O^mjWOCKTxJjZD~X z6rfa;x3a}3$5kDlkqWE(L*}o@W7w7G_6&LNg{P31*`QlZN#Shb5uv<<aDMA`)<s`p z&)HeGzJ=Y&Wb)GPF^P|jbnDVF-RiQaMztb0&W;d{61a6I69Cl$h$LewN*E<FN%^o3 zCTO5e&)q<SUSD&j@|Je`3#B@yMYDkHls7cn!0FF$n$BW!?=0vA9-cU6FN@6{&U{bK zP};3(o!~grL>*`3tz;S&{6D~)1(>t)iYS;w0yidSALP6>ku&|Ow6l<QR?eX>;BkU8 zD$|&8Ju4m62zn<wT6nKTHIQ<PQmjcItJ4^g<rZQAk)vD&y@zaPJw!I|sF+=i_#BsS zV2)3E$5mAjdlJuV%@rp<#_cL4!bd+vY4c6aU$UdZrp<m!9-k-}3ianVfZXg_9P9$Q z2_O$#;z>p!=sjO0$N|`W3sQt*Pz*3T@E+cAk07rEUSibPd>uKCj1muRE(V%Y>n_Y* z*;=8(->@j#Nc9Dn_-AHD=K=TVVB6W0s6)@3JS;*EITJTbsxQpEmrp1PF{no%|HP}0 z@lYZ8Clm}~AjH&$BxT+sr~pud0BVhpz^h)T%*^2kP$d#)^X!)9Ois>Zqz7E{Wx8Vw zk;c<Ew^pFi03cbT1e*Rh>Rh4MS`!4yl%msLq~8I8EZ8Mwsu}8%ame%_3*|oJN#tvY zx((R6pJay~GpGxLUGfyiG@NIlyFu4t`hc9K%)u!A9{A8*{3ww#A8VL<m7^NiDS5Q! zpr)}inu)tM&K_WTb7p(=u7OIkBHiJoM-JgO#Tj~dF1m!=_Zl8lj$WU*1E)C^N&;f8 z%!6q+1Jv~h+74Ut)GcN<d9cHRC(xj?9YmM>9^6C5d%|I$p9#Z+JdM6}Ah~y^9~SlM zDByO28LwHC%vczhythLM?OvMsf^N@w*{=6k+n60Vd52xqS^L6>S-ihz3N)<v#<540 zh|BD?4XD8dALH#F#q2pBo_5*7xTn_y)?tTyJ*_yv4A&bEj4Uj&Zu;G8NgR6*nwYWO zERfDfEH#w4$i<}pzJal`ZFxb;xf4U`p1Dwb>+{#cvt=j+cPI?<e3*m=PvWM+b@UvR z2pG+$ufKM6Rg3kidds06=AASSF9p_DkRG0_-!%=N?|i0Pb%E!B8Hs72B8_hm13U0w z1Hq+t=UQ8ry~-L2<^cxc(-Ai@X$#WSQ2xhwR;@d6C}kDE100K$gupp5;Kl<{Ip<L? ze4h0dE5H_3gC*EsE{pi&U8#6kNyW!_OBc2;0Ji0~@xWLnVXd}>TP|hb=135WCD19# zreaRYX>%`VUDn@P{WadM<4?g`mZJBH2P1C!-UZ!qypx2m&cdU{Y759}#}V<#mr&J8 z2?d=W;~i(TWUl_}C$Yqhd*vEKBs$e^@aRBb+K+(=@%k3AKQ&a{U*k7~LI_ji*7jht z61nwNMBM>lC1mh(A=X;A7jYy(Y!u<3`*g=4?6@274n3BcgpiPo5&NDJ)?G+k;`SW8 zYwiHHpA!RknslU0z+p_G9j^YYs|r4WcjO&FNQ1cjI0UpHmanmL**b5DLE=kN<eB0= zo2_e&G7McEDKA$TGAZgFY@a^N3Bda`7DwmI0W)}wgLRS^Y{Yt4p(zPGr5pTN%iStV zr?G;uzz&8-F~eg%yWzuPXZ49sTmpl-_j>ew&u*Kb!?ZpiE+E-zg;?C1ZAAJ)5&%*L z`g|RURp&xB5I}K3+=)q0S2a*qz7c<-M5iPY!f53stcojSv=Itc!P8M~S#KxLlrW6& z**3nc<#L8>(edlxvYh(RwptP&+YYdip1^TUhsYVdl)^JOD)VquJbH}IC8MKp7sD4J z46JF6c5(ZiEDkFzWG!(3PdtGq)qC++k<J*v@?!8LF2i7xs#C@`se(1B<nJ}9l03sw z^|2K9jV~)(qd>DJDy&&4{;U;i)Lf@iVb!N3UTai~)47e&%rLfZ&p+P2ZyCPXz6T9S z(jL>kMc6+4%|+Ir%?R?%h9I9-UDC9AY)gsW7HEWF4}KWmVok}`+hFW4Fn-aW&;nzJ z-h$mA_L^Qt*TKeR_>*&?z9{f(D1_w}M%Z1HZW3{O8}aB}f^p9{J`e*xOE4L0E@?09 zaEAg#nECH9uw*vwK|sd`TaQM~`r4CD`4F>mZ0mJ~W_^%>SGp~NIzpHge||yRgCN@c zkz#Z7&QxB)qBuS8)#WP(FpiVgDhC*hbdx`|-p)8ww$k72O>TG5KkUVsD7q-Yy$5me zHhOD<h?u;0N}|q7EyYuq?OZ^cSpGcB|4;C#<g;CRGhv7nG9qeN!S0Bvr)QpLC+IAV zeK=hQ_OdNx+;y8u7wUQG>=AU5#w$$Zog*7?GieSYSxkraB;gYGKkU(+ak|*AAcgYS z798o*?>-}$;=v`i^2&z>>2)`?7wA`;5aU3_eBK~U9Nl}lIi}y$<?4w}q|c62L0{N| zm7;EO?IJl3=&)ZvQVQ6eBbG)>4BEDP&q&)Q(EIj`ZPR~Xo6b4fN7^)n-aG=p78vQ? zSM<i5&>K^7bz?+mOg3vwhnudQtzX_j(grF_(3o2hm+o22?KGz+aU>=|4KBQly{^Yz z*CS1)Z@$8gajF7+`IQm${!RmD?@2W9-)4_oZ=;{D#or;xqfM`jEQ>N_;_~m4%c6c< zlyqE_r_iO>z`U!&L{sgu(1c{Pkh!$?(T<-ZQvIPy&0Z@=c~y3ourWj2YZ<7>n8wR} z_;X9p?!vE@l8&*PfFru+$Yo5+w6WLmgWZKb381#&kJsRKrUieF119|5PeHCE?`N1! zU;6!3yO%frK6yJs808S;<y)smyV#cKkUYJ0I+d=@aOHQpCWSxF#`Zfe(2M_)*zXkN z9N;&fhHmh?GV~vY!Jo}inyngI;T^KrCbkOB#djW+X51rRj7}K|3in8<TD4XF0#Puw z<~kjx#UO407SF)j(X9r#D71;Wd=EEG54kS5i7PJd<=phd!G!CspjF51a(w+?@dt3? zyTLeb=k%)O2l1z;VulTOhBljq)n+S{F;g$Y%F5V2rVOiHwn7;$GdW&ZZN>BIeCv!T z-@4MI71zb^FhD<Up8DO(*>B!J2YG&X)sF1>-zIisM}bL4bTv6r_?B`hWpj0CQv!wQ zV^K)|CJN9D>u!UT*E)mtL7C);|HkF20n43)-XVCLJ9}&`SN-CR3!PQRD^%E4{O3P& z93FSf1u`G~!4~V7Bivrx1OLiCEr1qKvB!hH`HibTbLu~A=+Sce5~s`5QUr<SjPVTV zOvNZXX9pv<WftDv;j-LaoGS@V$5DAe=>pQQ7DlQZE^D*Fsk*E?1I&RWMGX8J3A0@c zyoe-%9woRl#eSA4Ulxc7f91xNPl_%uk1~5*0s4hl!Qeqo;{U|F4K+DmcRvvWPeH_% za(zEz5Xx`5BUG_SD8-*B-Z+8&2w0mOcC<@*o!qfwpgD|lQ*#d<Cu*0{J2~tlB`m0} zev}{m_PTyCun-SRXmY>4b&bDvk*}Y$`3U7kQ6F<?(E*qX-@D`p7~qbh`qA=1ml>;; zZm`$oi2-)>wmMII>fg~<LCyot8Jn|r2c{q0;!14CAo})DMS24LiS#&#JJJta?C&%o z`bvioo#LkVd~|IKNFSaE0KhWl(=u8|atvpAJosx?yvGwY>4+ep2OG!cebp87>PNI8 zFa3?~R#e+t%Z8?3t?NUX$VSJix`eBS3Z+thKHKlRfajXg2Aqjw?8+Ad=a}e6F9YaI z95=c!pKbR+pF<1YCPkEWDD<{F*)7aF2#Oi#-3Ph1lq#|Ajm6N&WUstB6M7}?7?S?n znZ|mhll2OoxVffRV)&cE0Qd?t*5jk|f1=-iE603nbo;Nak+%&*=RoI#T+oVKw+}l< zzCc4W@QkV|_W{;}A50yX4cTc34-7`9B)f9d%R$Sb%>DsdlG3p+pZzT^Bf0tjGqc^5 zi%zgX7S$1Yq#OOfQG=jAduHU4$<a$?e*6sjD9wdWO)g;ATvZ#Li&t_T&i{K}5;ZlW zjJ~rKSWoBnOVG?a(ecPOQ0Zm7?$vT)Nj5J+!03W&9Kc$22e8&8|KfED$iJOjf`9R6 z+!_Do0#T$fqR1WP-+UZg3*%q&DF5ar`4@j*Y)i>DtxwaoZd@>ycTdguChxktzcI#V zg6E`1L;NDQpYzbAJJ<;OJc-|dGq9TQ01XnDhmB86CwC9+x~x-qRJIKub1>wAyz{PV z3I57hS>mTFnP#}y0i!q_iP{20ZN|pXN2lpODwqo_cwR+97()>-YB~LEj~7zYy!6T6 zu+z|?M=p#E|Fb{+JH!8zpW^Tru;Ks4*iU5s5P5%Z?7fNepWAS*-oVp|zrl-M1e(p> zW@=(@3myJ%d|T-Nd*{+G@O?Y|lm+wYU)Z~VzQ^8k>2da+M?2YjK7F0N7tnp|okxGe z-o^Ca*}H`P^1l&7r?$aKpJq`NbUS-j(Exidp_|#;O(phzfUafl<#aWBucRy4dlh|v zy;svE?A=H!*n2H4VefTx0eeey9(!-11?;_<<|R<riwpKN8)Nt40xUJMPrRk#|7q`A z0HV6CMbCVI5eH|CsHmu8L}P+6B&Y#Knn4)E#L+<n<SOb2gD~>TaE_l;bZ{VLIGIMx zrzTC4m|ty^rs-|sCutH83;yaSnuJ7~V8Trf9hzVzfC=Hewe~(U%%E8BYwqoR_jPc& z&)MI#KWFc?_Fj7}q4ziVh;rt_U&$j*%ED*l@lkyIkUXNL1K|XDMBy%>fjmBokNe0Y z+W!__CXagwW&Im0d*-SDg@)`LK3E?_G&8_FQ285je^#jvS|s_bCq5fg`Z?x_($#tN z8I;LZK2@y`S|+8ro93d`2Q8O;rcs}8eb7qDXB72`&<CxNd}P!oQXiBr`F#Bf@zLpn z3MHRE6Q2!H`Z>iCHpgG_!v?4gA`puLu6(6h|J}w3LgKFo+31R)^nTM`uaw+8o{*=? z+6d3b{OP#ytaAPm4rNcjsvA)oIzJVNLB$g8GEkq|+6bY0FA`U1?eCK3jeuJ}*b0*P zHT>{MXCYH34@C`xhh&<Ul~JBcD9UqG1b=6PtS*=YHOVy3E2ApD;u~PTT;;!?3$tPX z>3ow^8h)zYN)_%6sMMujdMow5mvTPFXKM9l$>SM9_9D$23PkRFsMjQ@muH;sRkg&A z=9Sk*K$UqyuWEq&w3(6QT;9G31^FfkU;T2R9kzR~UeQKBK7ikmUk2cp?!zy}+vww< z(a#Xc@YICHfrcI@xcv%fxW@IW6Ot)#RnH+JvN?~JC&;*2(5TZBEHZ9dXd64RLC_{7 z$+>ahIWobb;Iz&LrSp(7w2ga@7h~%icTA{1)9S33HTE1L5@!*0a_B3_=1b@xNOYm+ z5E7E?3k5s`VE!k;w+ZwABjo?KvqA2u_2Pp%F_8U2#eJ13zJWiZXwvt?7t^cRjud6p z6=Ionvez=}nCvX)mm2368h!t&)tqY8>fH93<9#MgM>n*~ou4V3S5)@fF25*7J=V6< z!0h0g-^5U7yV9<9wki}y#HgCy9R@~>a(7`kxSP;b!GE&>mIF-1<_)P!mDMhg)uqZI z-`WLoXOqI&OmaWr%N@q0FD{8Cb2iDH&2o(O(f|%L4h&qxuvvzowf=dW2j>VtJ-`8g z*8uhcJPWXUCt893X`3tM;Wlsua0PHX!0iCH6WmU4yTI)Nw-?-AaQndRb1RX*VHBN; zUa2r%#7g%8sCF5c$XzIh4DEQdaR*}P|4eHy`QUfy-y+Z)-nee|&OSWamO3G7pcBHr zzx-k!l<Rl|%kB9HS~}(tQeSVMT%mmujeSzRi}VRb-tj0r9{^|ts7qB$JyW|t;rxoU z-q)n{{@pKY#7&Ab&{tnUOwtRreld6W#e+x#efE{Y`8A@f*^aje0`r~?&OCq=fJFey z09FFz18jVR^i3qRbtJeE;6{KO4sJNOT5z@Cs=-x*s{&UAt`b~jVBgR-+5!LX2G|Sm zhe!PSCRG7g`}GBR59|kjzkt5;`~GiizU4(S(W<=@?Im}r=r_}*r{kd!!~?nu_{8ii zph|`Ck<gu|fShaQMhZdCd$(%%X8uFZy+G)=O?~O)M!;z1BB9tI;wVa+qQY6T(DNM9 z;HQWw0LeBs-AHn$#3&uQ?@<MKW*-XA*uo2AaP!IoDV!%owA9G8O1oH*!c))D9lEOL zd^j}mAGDvodW+8f9ND5<{#@V|UF#mY>vQD#TXfuX;ZB;t*g+XQLo;w56Zu1)6=tDa z8@Q1d86ZdfD?<8dUB(Np%vR5M;piUUcHWsibUW_?(ctCX@giDQjTiXLR$<n2(x%sM zw7yL*YHN>3+Xx4r$0gsSawXwTLYQ-*TGgBsfkB>;@S=1lg+mZ{;f&2Eshk!i<C6L9 zMrCCS@`Ln_n=^3-IY@2M)clk|fub(FDfW~k?Wn1~Z9v6F*JYw&1KI3w8D1w`bO7q4 zjA}#w=P?`c1E6%M=V{{ksN{Jw^?aRp?v^~m4&cq$XNjm78(#Pn&E710vmgDR0{=bu zA5bn!;wNG>c7a*QIDpsA@r~~kQV$TVR=q%O&8!jG8H9@%=Qj1G+thATN4iaB7C!{9 z;BI4=j2l*E(xSdqPyC)oX}&RLL2-bd#7#rhJbmyGxo0;G9Ay^1*iQq2J?JCh;vB4| za8mNu`tc7C!SBX7B?9pJ#>p*{oLA&q)y^vlE_@G~#q`V|jw_73Ob}juCh$OX?la!A zS1K-S#;@Z2XUOg3Ts&F+)O)hbJ`;Gd-1oHaWI4mDYB<iO6ux=MD<K?CZt9?fFgu*D z=yQHG3{~eTc+PjmjN<JmFRRV)iIFKUBD2gl36DKP^zERO0oMlkHoi#i#L5M+)^{2` z*i1!t&<>zWWm&As7Al;58zp3aeVAx4QQ5`_ufSstjRIUNJsJD2uu;J&-A1KLG7{#q zR6#66@rFK|nVJKlrZdox#;>cqZ^U@UfGrIhLrqzXW*CF(jW%Lw15ImO!+3>FA(YgK zBAuV%o698P^ShrQmV||@n;9n8dntXey#HO~DneRc>=EJS8Y1tn<;^pe^5&?eXd4#| z7+fXpkCzxyqO_T2TYurRPYk}hV0NcODe2vMh&2Q6F5s;Nkxg)JiJB?0!Fo1o=7!td zvp4YS-@6t?sqxyvmftHGZY;gGkn($#u#k}+P#3jlKcX#NmX|Ir#MbBY<h^RM5^><P ze7c%ns*X=raY3YNjTz~0Jqo?;87@8WSk`?iSF+NzUY(h4UY?Viv*M7F5l{Q(E8Htn z;coV{YH}2dH-qr5mfRJi@8M<&B~Jy)czpA7@)<ZPdl|nS*!C9OMXwBp1+X$)zU3(V zAGNKKH+5vxO+q_ATV>9J)G+s0-2K(;YqY7%0$Rd@IMg`zPIB>OU!!Kfa=x<_C*PpD z$qPKqj_+>gf}N%axhKf+T{NcvPu>^~6XiqqN&BbO^T|V$=HYl5u@iEe<GUDkShF!4 zZL)c0*M-d6#D>jVPP|b4yk`nLpm{J)sIyngje_Xh2og&<Z#k!2fJOWc(ZTspjD4?% z3)k#BuGz0%+})sLRhoB>JKJMC6M7mHP#$|{-El{|#c^dE_-|A=+jY){qk2<##W+A( z6>sdb-@+;N$2LrXS0yn<Je4;_EZM8#bVNV00+<+FEIcdt+&;~3bHf!MxpMok>ij!+ z^J=e>o3K~LB|2N>?69gz)Z5_LI1FkT9nbY`m@b@nQWU$55i+V!hlQr<6FnO6k=vN% zFqtWuh{y^W_LIBf(4STG<n{%0AaCsRM0n%G4C>o~+y6iY`6lJ~AT*TDg%oa@00T~D z7GC~dy4-Xk@b?4oD_g>b=2sqldI)}H?=J{#{KC_eUzvgK0q|=BP(6Kv{0ip&_xTlq z!;t)nlm`#aCV+B)LVz^@%K^*)X;1%9{0bJvi&*Jb01g10c>2GCUx|6v$FH<LGbFz< z`x(+F7<oquJQo7&c;@f$D;WF6_!W}xe~Mp`@@@khIsm!=`T&&Rtp*4OxaHX&ieI5^ zWPtzE0G0z3Kl=mmE56OK>@4AJrDOrcyoYcE{Xm^{J8;)e#tnD&%elyILyC+Y1Ej?+ zluwfJy@E?g4X&|~Swf|f9x<yfk|X9&%5l)6ge>7Bl+L+|;mBzMG948PsIvvj<9PoJ z$Rt9sQOyrXWtBbdClqk&<CNtX@wop1`cJRsIGD!?!|=spfeb_GV>c`m5Ty*{B}O2H za9q+h<k1NHW7j(*?|)3<7f7=VG&G;8-s@y1?NzbkaclYayG608K;1*sLgcuD(G+*8 za@C-F(S&FN!Zm)*Yq+1d#F@xWN@DuCAmKAus`lUuIY5GS2NtLDEVro>#mr2qbm)(8 z+8^tjiI`Z<eLQeXamqz9%*wI_p*$E$g{jP0;%Mzfq9l{ZwS<w}uZZk(S?<ivrDlwn zE{;}{Tv>MkD#4(#9O^B&7vCI&S&|#^pAWh?tiQ~Tj?dMy+PF!mJsa=Z2E`sNaH(SJ zkwPb|Yo~DT$KLC}++-Rlq(HN81Vr;!uZ^1Uj^Pb&&Awo>@cCisIJgp(a@W2>CJ@=y zY4IlQ7G3On@wqC^V~3VPccf?8hLJ0~9fTW(*gy`Mw0e@nu8UhGV<+$qd?D9=t>i8* zIU{J#!R~$h5%0}oe`IhBCJ<Fcq$FJKRFJhz7Fe351|xai^a&<-8Pjw9l3@bB^)KCx zm#>dZsP8#F^$34>8q+C?`XlyGz9HvPo^dIo8gEDLvWD@r`z)$t*VJ#xp`SoSIvL?) zXnVy)G%&`U^I#m$kra!eGIDN`Q(#yv+C1h)W!SnrstnsV9z}+&TO1vMOh$++G8k5K z&lur}T|Rz!&n~ZEkI%pq-C)%p&&uAiLLWwO$lx3Bi@)TaM+H<vB*TME-3Iue=AdkN zj916m#OUL!b|I@;I0P0>buhHAXS6VC0E-Fm=!&2k8wU2)ai)k6#GQ1eXxr&GQ+RLh z-z+uKHE!rD8W1@yN_b}{k-~jpXW;eznLB;_oSc`8)9k=`su=>j61jX&fQdy(*-z~G z_*E)yF7RBvyQy*pd>=nx-cWN;(zb>|Iby2HJE_DFae+2=BFUUe`AYMsJ0(tSriOBG z+WE;&<Oa_J9#G1GpNW3<cCN0fJ4J?RCCfq)g|A^Xn4OZyw1{S(h6{B+qjz!1)gcts z1Hbs)ly`Miwm3zD#*J4(_}On`ws?MqcOGz`NJ)Hxh+?@;jT43Ax>KQTS30+<7%m<# z?8MAt&nH7u5WmQQwji4TSa6Ul_ku?Ot%208FoOuGTmTlxy-J-yD~_466EbK`oJ|JL zcD}NO=USnFH*isDBniG~f@sbWVl+jxp+6W}vo%Q33EZ}`vQ6YRFKCYzsV!0Aj$NWx z={jq1tKSZ=-N}!vIz%dUsAB9O`<>2u10?eNx#7zoS7jR=3#XhHCpTR5c34x2N-4`0 zn!cyas=U_X(eN<dvmP$=JSGkpFi;OH1=Kohp;C*&5h~QxDUR-=l3m2eS11MxYtRH5 zJtn<>gWoafY=4n-nEfJL#ui|WGF-;fJd@=zUVy=p4c%`#;i_zPRi4uu)tc(nWX}oh z2)Io`I;zN?NGCORm9tWiam!JuC{Aa%-E$xDGV<JoX5%>=`M}iTOxGezf17AzN!9mk zT~XCf&aN}uDRZT>>pKKu!|*T=6mino_3hcfXkLJ%cqFY7&+@3m19;kY6l^sMn^5#0 zqWjCFpiEn3TYP03+u~NvMR9~Sq4a*TYmkLXk^Qp+WVi9TC-k4P6S1Jk42*#iS#<S- z;5Dw?R^YKF;%j{6IW8RO2wyCM4?8c*CKLJ|mWB+V6Ae+!1CjL2c%i&i_~Q=p-L!g! z!-y2wAl`J^B}4Q!o+q*nt!`_*?`ZpN7W*t<Jy4;rn?}(v;pp&&oc52epirvh8{+jn zd_|<)tilhJ>qQm{tt@F9+Cx0S?w=!JS)eHk23V|x|FU%O->MkNNYoNE5|xccqE>@f zS%CrmD>cJ^8`i*oTgxF}9U6`*L&H%U(QwqZayL08_L`4+o`*91EJ#JVD!Tv;qKQV$ zH$K51K{KDnqK`pM&<Qjx#h)4eA$Knii}Fe5#ceK=pufb9ioS%G<!=#v7NJZ+%~5tE zpNn_Z6lbH)xH3BwEz!XLcJf>YU)c!}F28`LrZV)WxH&x^IUBStQ=7LX+91rNQh*1f z&TNBkAllewUYbrUebEv;<9*G>p8-bT@{2s+t00-8rai1;7uh8uOL-{08KJopC}OCk zYL9ZYn(Ft79222$y6mEeLP4{Hg?yk8<e56JauOe9fjbG?+MmFA0naSi<Ak@5=d>GU z2%&?L@47lU-{e^%(NYtE+{h+ksS0v40i&gO?VRYLUYdOj(v4<e0p7lVdUk5|g;1Y4 zMALwFfoRgQDxl(&`cC#w(VdX{LI2%VLZK4&K0cmPag&9@y1-r3P8Y$DRLXNpJf~(a zR8?y6ZR6Qhx$W&xOx6HZw2x9nt598#*=$q5ze32xP`HTfheuvSl|n$AHWC6ji=Ts> z2Qn~70T6Bcd&((gJmBNinVg84#V`$O5hKzmdD*DrJ${Z3JlG7ONkO)R?xitmx>*C! z)s=vVSq>0w*PdI<Le>E?|7;k?2Rr7)C2}LNiOoW(!l&}g*`!26f81Hh)$p+D#>qTg zz}>Xqa=R0n#1<laxr3-IcX54WLs|a`ZYMWE6HdeMF{@p1RQv3!wWI}Merw;3t86T9 zRO_2?_XTKAA}s`O$Dj>`a8cS-Zeo|4g;!C>PVWL6tUQy7=?1C-@*gYwvDT{@L3pzk z1=Ml=ybUI+Y_o8<l^U~a^6I`-{X|lbOUsONaaXAb33lPq6(Y=g*l+2Iz-d*D8mfEB zh=vVf+e!aP#WMI(y*qs2xPqYmxalt<(JkQiUKn5H)n4svl@aY8RVT=PpE9ByH%=wZ z(p2L#-`M^XK|^pJpn2YTO^w%YNTh{N<8@zc?)Oc`ekKRV%h!M6rSMVtbzhV5d!O=a zr8~3NrdXPe2W(klIYC&cB03+V@C2p|=Z{{QW}mT_9j4i5y3)|98r~3~{2IR%zx}NY zm|%t<WlhK!R;u?W{r=zf>5zw?9@<tH!rl^E&rWqV$(+rygfH#E37>D2%fCoyhNnh& zYD#DYzPw$=oryh~(8>-&%|4=C-t!UPu)@dN<0K@_J6lSzS+z)_bE5)TsrI)Bfr)d{ z8xICfDv1vcF(=iMBx?3gS!7DmpWHBB*fc0HLlb-M;f-A=?i>!Nq)T5n(1kdsc;-U8 zq91^&P=*vuxf=O8;TKAxR$Sl6X$MVd8fSg~kiy>H+2eaJPvupF4YN}=pNO9~YLg3r z5p1QaIu31{XwJ$K&*EWe6T1wxn%`bam-9aGNQN-3*K8BTyD=7woVjjb$j!n<$;5l* z$at=gC3@E`Vmc_n*{sAuxINMgiF8>vMySUKo=$R9uqaA9{0Q#0bHm_W*>mxbmdWV3 zD5+t}j|x}Nr;CcSD<H_rXL&*vI^q~M*idtn`(_~w?C6Fx->NgypS;6!#aNO5n7;&6 zG<@3eiEHq#W}HoS0EHOgdou&wGdhZL^Xldx3?|HbpwKdU6QSiw?bhkg$b6$vMkg3p zgCq1GZk+@l|59NE^2?`lT$vG`o18GSSAGVA3x!mi--=th_%O`Ic}1?NzJlNXDNXey za+%zqKf-+g%tU-83KNb%H5;Z#C<+#v4>dJUV!4@Gv^c)JorBEur!^0k$WgnacB|5+ z@U&CfGtz74imgL5Zv`S$Zf`|XR&L{0?1yz`S@nDD>AK+wD!Ve_*oNO34A6+2;CVZ~ zGGc2S#zyN;hW4A})BqNy`kJN^fNH241_@OO$21QDVJ6bV7d<Dbz$Oxp+6>_K0gDgt zO7uDXr<!UJ#^Ae1+18xjYM`>pmr+)EwmW5lO5eP3lrSB27aztW&H-7?7xvMUOn;iT zm0C7Jl{}j2y^t*`?IDBx0#dS(^aywtgV&GnD~JH9(uYmWdG^O!=lhjES1Nyu@DeIL z?yC{me+v)^o^llmbRQ2Q-ib2YBzteU>{#?VM-ZZtyir8%pe0*)<}?wEZWSI!HEqV0 zoc1@!RvmD{mHuMUq~EDnbR>Sf!!8px0oVrMCV^AZbCIkWYvwkhF!Y5i6fV6TBeggW zN1*krN69%LMu>n2Z6t!4DEY+*BI<5hP=mUg*5ipKd<)3&MG$sCOE?0GxsDvGLW7OS z5XM6MY++;#InQo#TaWli^P7vVA$1yAM5IpnOqk_#MD~;lo)W3kHRRMX;#yLtepB>E zg@AA-PSIztnxdP1Q}j($fwSzBjv=P#M+Z&OAHWp-z9TSkE=}yYj~GnX!rCwzXWymL zEP5Bw%dYj@BbLJ=+KJvvy%RMMhF8cWi*xh@;l~c|!S{_$*An^VnSxdnR6;zlsG&xK z1AK6uGGtyNJF&W+9p|N>KH{6AgD^ouue_%PX{mvCm`}+xpUtDO*;6o1Q{zL}Va^7n z!5PnRJy`~u(k$d`r~2?=dPdE+wqe4@&}p6#W+4x6O`^tn)Y^{f-8s*cVBXm0w~&TY zu}xQQ7gTqm@X)rvh78~4+ZQU$;$yO*44{-VY>8RISOvA-?yBqn65fCeV{CogY8lbp z+Pep<pbv^fLNrvE13mRT@oD7NVCO}}Pb4I1q!4?B9MRt^jNImJX|J-<_}pGi&2FlC z?2alF)u36hpSU7udTta1g_9s14Qg~n(Drw6oq*}<(P-khPgskpReSZ{<!o6RKZ#xJ zp8bwES5QO4<v=0a1fp69TEZ1U2v9y%iLadt+_MkFPvSa>*2jA)Y&K=Kq^x&a6(u4Y z*-X!3g6C%pDnhN4_k8MJAlEl*9-0ejh#pss6E|SYHl>s{*_&2VeG{%MnSE~c0oO=W z*<n(-#*s>58*SpbKAS9y=+83b7|cSsgKF4<=3WVO>uZvKws7fvX^gR9ROWNe7E02Z zdimz)CWW!1Hp0;J(S)NtXQm!Whm~;#-96VhO<kg}yV6S=W(!vwv`O$>pil5P$RR}z zw5hSHy%0%a@O|Is3m<Sszogw!x+sTCM-n+k7qqY7xJ=Cwe)XCU@0%eYD_bxOM!5RN z6yat`vL)Al79m&W9?2)A;*COXhS0VpaGVxzxoWlmMA$5z>i|nYw7<gL$OM$k7f{Jo zPL3x@v+qoI%3Twc?07?+HsLJ$BhCJ!ntkszTvQD|7H?8>!_zzyHT%!RXR6sSLxE<W z3c?Fu4rvA#!$)8-W4&DFh`>UxzN2@S_l_RW$L{&!ibk)B)BGr)66$~w%HUgosOFb> z<!af{b)hH|dz?L0eUwd?gl#>;TeA7ahR?NG!&~^!cTq1Y-@y089#?cKt~f7=s3P@L zY?Jelvg#sgN#!D^5oM`o(UEbgsxOeW;0~`^y#jS}&+kiUWaq+E^mW4L>@C%8?3XCH z+sKXvuM6N63|{9vkFQ!yah~4~>A?A(I(_Jf(@x_KEur5s$v*j6m_yQj9N0IfAMni~ zy14P|r@Tq6KhC!BGWdGli;G}SW~46_MrjCdIneQuuw>xTlC6Ka%h=({Y}0qbbSyp~ z?SDVue^OQp1S^()d5cOvha8pNBE0_q?xG8CJ>WxzY;-64kZDg3k`C{(uiDA4OH-mQ ziE!aznhWPE&SR_kmaz6_S8k{NtfpE8xpX(kH8rA=u1j~<8KUI%r+aIS{hD{`(`?Ed zHZqMH!5`{5y;lbF{%8HJOfA|SgHH;zC({6KiZGRyHS7WJJV-x{otx=eHk&_mMsS(5 z`UblK2vp>T$8RCTDo)*#gfp9cJnu*3Q6;rbAvxE~AZ9nWpaKhxD`mtClxR4tbuAk) zlh-Itb|)#*Shj9qkmE`yTa3q9>uOcJ#vq!s&Bjh7otsid1ck=s_Opw5P2Hjq(=cK( zM*NXCqNB2329f17^0ZK(8ZhQ`j5!WthWllyps}WhX5h{%-Uj1C#M!~(=$RMk{rMl` z@?sM7$2AX?EAZZ&R`Zi}=ocb0b-Gi6mEDX(Q;m8fp<JN7#~=xPoDJhmU5@xrF36!$ zdK3=bcYJOa%;btjSFYA&?9{htoG8f&EMuK)-gr&*tMD=}j8)evl9Qlu$sIh1pQb-j zG1i?VbHs&mp-C9hqzLtJ(C(fR(WtdCl&yCg#X!8h2gLAX1lpTn@1Yl#)7WrFr5MT{ zY*K{rA$2CPc2RJUXPQ2@iwh<J&)Q@*5m+(kqZXn@UQ4`{5I-6By6~3#0z79M&4<w1 z8?cUYPf(o<aOWGNja}FQP)AJ-))3necNy-h8(w{MQ*d%STDky6K(p^C&@R2oZKI%Y z`-uBA`-U4F2U{nhw24qRO0(~n<{cNl0v8r0Y}x2t8$1sr0Y9Tuw0I1@0TY!Bba!of z(3W9!qj*j2vJumgQP-*WZF+Kai|3}EmM3horGyshKTB!`OjUGl*BP?24x_Tm#z-m$ zI>=qDPH4Q@UZs^&HsblYsRQQzF1=BW_fRq)Alu3v&fb1a4KE}8)$XJ&KQ{I#EUb?; zD1Zp*bS)Ya<7t9XF#<+Kf%E#qLL@z})$CUlIIqCS_z<_0omawGO@V88a<ahyo!|aC z89SZMhJJlR#Uyu{oa7qjtOpujYYQc3_Bf1)UMHhgE)5hpUa}i%psXMRCDS`lW)wIp zdqdfOw}mY)a4B%G^x|N_hb!<fjSp!`37#J6xeW(T2#s7rMo&Ms@ssb7Hm3e6nn|*6 z2%+*<PXw=Vvm=z<!8n9Q$UUk8o*}WK$=%L&V!V)GXA4?I_R~1dcRE?g;Q?ZM5z@%L zC7PO?e&jql+E?}y^KEFP%cd>t#a%$2^OJEfa&+dtjq{(mQBPBV=J6>)Bq>0U`{L1E zx;pk+G7i1cu_4Mh#8VlEgM=$EX(t>_f(iU2OLBXi^%>KB%`8m*obG0z5JX&{W`wO* z{4^tMWqs9tkmPf%W39iil1xO==YE@mF|ZzW8?_EJAn(d;t<CLkHlD`G8JK8xm@BuX z$tY?)q0L5=6=Z62MYpllENH@rjVv!!RBD&VIPC${cvy3U8`;yq7(y5>DBjr0Djg=# zffm>l(T#XISx=N<u?y1JS!wKa;cNvtM;;*x`ziu%@845FZ|~z~l`FH?Gp@Tq#i}4@ z26FzY*@%`R4S3wt%NxUOTC_8BH^6NG69KeN!NBc_uk0n1ey3-WG@W}!OS8X6Ev*@N zjk*)QsW%~GX6m7XxM`qoAg1iM>Dd@q|7Yr(*~y8x2?NY7q)22SCryn38o1fmK{C4o z9+dbn9Ue$I6B7}0R+GpCgR@3|NK>Ps31sveZicxKr@&@*3?HTfavJDfQv^(dArOLb z_8Qoms!Uz*q^vSQb!Cjx)T#UxiXO0vVU=Bbb>485Cmix6>abqgt7Su|uU2^eA~6Qm zD{|uno88;cCOZz82#7&u0z6kq#2tN{<*5F3k?U|9Ps7XyoOCaaxetjsYLP1edJ^p< z)lWSF^K3MX9T_{V%G!&g8IwaQNPCThv-!D0-FfKu&Z6h<M``Ha-j7@1?W~d^W>iNT zP&a5Jm-2TrKwD<J?<bocZB!IWf0=ttSbaa%7Nu}K&%;6hE15|&c!uE;fJ0M-vF8f2 zKS8Z3{AoO=|2BvZCpH3e8d`&MU>S5Am7%uStHQ}SzC6mIbJUu?cUZqqt2K#K(PDQ4 zEc?HMkpV3vXYaSkou|ZXDCT*UWIj;PH*@2J56VTcDh`!8u_g#@|40<uzlHA>*X%yC zIJY*pPuTU1mo*>nsO%fh0WT~(0V~y9;n`r484S)wpqu6jsVeXL@4Jm6AP@rxyo+Dr zLB;?Btx}8E^;)Mkb3wyQT90Cw5j7)DZPquiDTz3|*jp1B12{Lso1DJM>6?-vc65{s zH?hgsFY}DWuU!V?oQ#8E;3xMeVEX7WYVrHjRKJ0GKaHZnl`Cj!_L60<_aGTK4T<>S zYO42>4+*D&jrs;nO*M(r0n6fpn~7|&e8UJJ05-%pdxJDJ1*q}z9b<p2n5L<o4lik% znx)`08wIf+9r6{nk0;8)NMppEAS=x9Lu_*f@wf#%yw)8x)j!2nR*=ohxxyV?q=`uY zN0tmZyB-FJrsg-0YgMK2^;_>UTn^T}{Q~2|6OY01cKL&A$>D=i^Aj|_CY68SxKzHT zI$0#tJ$66!1T>(inw^Mp5HY7BOhfUp#D4gX8wU|T{SZHe7fPi&l6+HpK2$9c>&iuD z*yIppdGLUiGnDWreUL<oNu)uZC!l!{b!kchw4<BN?vzAQX%zDCrguPkMQ?m%$F}n@ z$d3$2s^D-Z!YWa9s=G}6j*Hu3R71r;YE|3NuC2cq;`nS^=&@Q=T<-VW6!-#E>;z17 z4H+1vL#5*@>6F5sB7<oQnN&9TK4NKFu_<s?srnLU8Y(0ZNsk-{sIZ@xkZ<_f<-ja4 zS2*=CZbR<=4&u$_Px@7Y%qA}72uT61Exa(|3d%p0NCG+CF0K_%`Be05aH24*#Jg0} zg@0$UkA1YmnvGgG40N%^CDRQnu&b9I9~v)s*XEnZ(eed-KRZu2Sd220o_Axr<GEHg zI-a}0PK0$ECp=SIfDns2MMY}EwF$pCPu6nCe0Yi1o>qD~9tCqMz|mS9cm({{^*$W$ z#RK3^2zF>owoeig7q$?s_~CeN+d^h=sENuZ7czrzHtyp)g-Seo;CcnFjO?oNO{)fW z>4;jy*z>6R<~vR&{Kxu07Q4h(e)~lkQI~T8k24$D_j%kDI|W?!@hscQY#|&-5ZfI< zlL(<|a#96f8@1tcnJTEaC1eYUUrPoyFLM>y!onx1wKxUtMg6seZa%9CCYoyeiVN8; z1Cy04tZy8&sq@<+f)(BJX=xY~x|4>wH_D-Eo=|cC-?TvvMVUH9+pH|1aJXc`cV-4| zJK_C>9HMQ%gRG;JV(Syu^h*?5XZu+a&?h|p1VuRrQBEk4!cnOQk@tF=M$0k_2M!HF zs;^K&xlc&POnMcSy*a`L8$CnrfT=dRN6`sXM8{;*%iSf$K-KJnbJ<68K?_Dg?l7qq z8fQtDvZ}JH6;f6n_Dm9VHtcUL56lgxcBwG(qu+b$f^WqoMD{L+*uzDXR+LcXAp_QY z$SHJo?0Jd52Xf1m+a)~Sgx2>2GAFw-Q4I^5Lncq4QXgnSEkaX|;dFgPWRr+Uh&H-& z!nc~*CTN&#Di{h6{sEreLUJer&CJcFlC#v}LLaP`V}-mT-)_V5B5WP<brZ$hSPB}9 zz;njl8gWbLHl_ZuUCB3k&_Dwn_`)kMd*?`Y?h{!0rr>R7Yq~d{;w1t{C8Ux(Aij<9 zp@4eEW6u*_R=A9<92dk57d|NT5+dX}XP4(~{de2$-vY%}tj`#r?YI5Wf1N_RHR$_u zyr>3Q$3O|xjB45w&;e5qxiY(O61-K|=*wQ%Rybf$!4(X+PUX7Dc}_Pyy@IY3Fw^jW zqCO(LQTs>Uz0xeASoLNs7)#I!qYM3*B994=-N^Q#blVlaIFTIWV6l=-PPJJGDwJf) zCk%b*wb>`hiej-uRvY8G!|9HfT#BuZsY{BI*Jo??ZB}aDsjvDHNv$)zRo@|b!<xYb z4|YDdNX$$}7wDHs=mO=E=vb(9@S*NScShBXbbMCjI3}wd>A5A)ce~@5+#@(F%59#o zfe^<OM-A@wb0LJq$!)|gn8wtj9(DucXE~9GxWd%?mx92l*Iq!rHQSiwo=`q4A0--9 z#Qcf$eH79Ij%@fYfXjl(a5Neu)@~gGRLEAKRh66?STPwYvIbrzPWVLu*@bf!1kSL- z3w$%|t1vE!Q89O#EN&bd)Wqoc26*>m*-}<zxsAIs%)+^akPEk)C%chIIbLR?-Kp^5 z@u&UP#?K}<d=?zHa-@<AUYrKAZ7Y0w51}f^s{XrTfh=>P$!fl7eSMI#URmHW9@Ffv z$5Z@uh4d8v1fC&iiDoyTWQ-@=X-fB&7^N$>cWXReca~`C0n^-dW@YywEvKp-3Da4K zC#ZIu6F4VhZ<4cF8PD}@IR=@;<%;Y~$SL+c97E22MWvGO_b6<N)%p)B)sR9Z&QAh- zJZ&%y;vS=5vtpCEjTd0O+l^{<P?-{)kva)Ip(Z>89lj!Wg6|b}Vhy0i!?J~YtSC9K z+*zpt4kAN%AsvlGB6)(x2@`Qk>;jN0D57aZ_6J^+m|bp%Cm7Nwxe)aG0M$@mz{A=P zV4fKv9M1PnPk6c2Z@M)2$q|@PC=RC2cQ(NS=C15~@x_7{U8ZwHoWx~n<xSx)*yJwb z5xy5%%Ov3WYHo)s_wXu@)-2rhh=|6J(WWFHk^@Ui2P`%&?u2lx0B?b|LjMGV?^K{b zVK~k9;Umn;_urho1IR}_nuN;1u=&Hs-eV;o6vlA()8%B{TDtYImPn8s+(m?*7UZ}p zPsitW;7Lt~@WL)6GtrATp2K_0HdshuQbtT`QL4QOMn;H?4<?xInMaS}l7)_kMe%v* zZ4O{9&c)l}!ruxA>Fk=6<BDjv%8B%mD}t{)!iVs4kz}|8=%==45`AE8KwZqJQ}LaS zD~asnEFoeSxisG9UL=!|lH9XZE>m0Gh=k+Z1ysdoYVkzJEtj#kJ2uG^xLX{X6p7pv z7*S^7&pS!d7N9GG_%KZCGPWoh9C3;4N#58JZEWMYbBbP9WxZ!IX^dAOfti@Zn=6bB zk~C?vCa7-wB<|0O%F`$t7H5@ugojR)A^LbE11a#M&T&l=9$)M0ou{#_p$TXYwHFai z=rGyLc-_o5;bGbdbC$5}%|T0k;~Gjh+%1d)lyFqQ;PA{f16Rm1-c$<*r*ivJeZB)a zuoKcW1?y6C_z>t1AU}oLRbuTVJ|;f*9MyG<BH+*nr=pLf)AmsuNzW3xA>ZiAHpp7h z!&jd3%;k;sP*?G8C|CyNo;f(E+|j;r*Q1D@gl_y~t|>nEFt?7cJdJIdohAHiaLV(m zNy@@CpBoqmmme4u{uT|#fjJ2VCPevk|DY(lX%s~dOp5RY3i=pMQ9CKMc9JwKagX=@ zeC(Nt^T<(X2U0&BLT)~xeqadotzH%Trxn8eX+D7ki87B8K3PNd`wp)OTqPE*@vRb> zJx28vT>8(FB{fdsb;fvko!_oO2GO|&i5kz0y;|<(y)t%Ew^1!;BZO^haHQaNkYHKk z+x<A>zu+L*2NQ_f1XD$yaAARDH;<bk+_5HbP1(QtDkYJz^`84-k?zDp%W)__CfMXi z1!0_QufoU0*>xi|`wnUL^>(M+JyFR{Nva!}aF!jd+4n8V<~7F~)!b-zl89zt!{T%M zJPPztxJ-RX31_*+)d5;5jeXZSvGmg_8lOw`xj!kBWPUpYW`R%T=kx(8tC<{MsG$%| zbqO&@La-*bsF91&e@C>Ca<hcVs{`BPm#eO74=VC84U%RRX!dDDla`#-o>|bHBA=*) z8nMZBW1&(((AJ*i4Hs1q>%D^E$MD3Kzq9}%6zI#fb~XHe)5hQeMR~YqE<BI1$H4y) z8*c-j@t!EnemsMhcPCBMvSE;eYa(un>_6&JX!ak&Ja`UQ3kVq|8r2j79|A@`Q(bqH z7l-Tt9B5R6LK;CKji8W5P)H*vq!AR-ZU_a;=Oj0!0KS@GD1BYy0dg{M?2v_SLcOz9 zo`wOP-U0LFRdR$=uW>iaE5C`HX1(*M__tS`4YHn(oL|f8jOy><tyvZq!r}qHoNw-1 zeH1mT4*os$EyElDI0?`O&<!vGh{Py>c>v1*3IWOiwgc<{cn;uofF^(s0NMch0JMFO z4!{7g3cwDq9pI+`PXfFI@D9KS0IdKW0Q~^!?-?cnU^+kyfB_&2U@d?h;7Nej0ZssX z0ni69rXR`zxC>wrz)Ao+z(WAL0bT;w2har20?+}_2XK?fFgF9t21o^14qyY=08kC^ zD8R1)-UK)X&;sxmfIfgIAf;mf3;;{X=5XMzBf`LZmSkY^?=vv{%YhhPWAKID_ZtKA zi*bgl(iB*VimmxNwoJFq%Id6}idbD<S-w?QU@t4tmD|hmtQ8frLjB|A*{v4V>K~?? zR>8nOCb^6&&exTeVLsM8^aVdlDS8wXmFDZro7uv$QWD6qmbJxJh=Mu>rcNm*A+sQa zA@9C)W#!gV66^MgJbO_&JF9&2MkvQ_1Vqgg1BNMKDwsT`jIlFT_?yM#GsW=7Ff*7^ zh9l3nlDf_)<%)~xBOU|<V-so_MKBXA*D8%hV-Wu4#4u(OSr=zs9-?CIj)}=Ohd?ED zxV|&0HHB;7$1t19H^EN@F_;iWr2<C<fB4GmostBdoJ7iz$rZ|=;1JcY(BbN^5gP5t zn?{9?9y2y#-1rHR6DLj9O}Tk$)U@fh%((To=$W_Ax+CV!yJBb0nR|C!e1d*n;*ahz zB+XAwF{Um^TX^q%i%g4`nA4YLEX&NwUY_%BD^}*NTD``yHZR{=u&%Jkw!XNew5<Go zdj-pF*tlu)13%tUxpf=a)-{%5mzv9pN?EHN#{y%7@v|8IU&O>RcR`D#z|$gvZ;CZA zZfbEws@-ZuH^a(iS&BLGyuj}{skpc-57XMYQnskXs<YbdWp*9IghA&nTeKu2gZkhr zld*8|0>4)#Wr-<i;o<?GrE_CqXNQF*mFg_z<;6vL7Pbh6OrfPhS7L!-X#szhwU(5# zI24P^EHESst-55Lx9sAgwRVerv#tp0Y`0tU*y7EzLe0fiONA8%b}4JgV@V3X+;6GS zRdD6yWp)U$T1s>UfP6`r-3ocYV+n~fi(*Uhiwz6CU6(X~1_ybYG8QiK`*PUAq6(d* zqQY9Tws^BHpR*U0uG5u5RvWA|R#9mYTVyFNdVpjfx(wsPH-acxA*F6Dw+`NQo69)6 zKd!TM3t1gREh(#Dp|0z#kULh#Zmr;o;d3d_<ynf0u`p;U#Oe0DvXXN0>CU(#uh@R8 zu7E4eBW+6Xv<x6sTEW`6JQgYs|43j;ak0r#MC*?Az6<M3KJU^pZe5|SqTG^aCCvo` zz)~F0VE*lO=b-lT)!j-vZ|O4H-fSTtT~?ZBops~w;l(Wm%fOrvzkvesrSQArFq|tT zvrZrig;q;B#TMh;eVsaPEGiq+Zv*M(4w<fk&A(2%Ihd}TgW7K>va_6}c%Xx@CrLz% zH+#tZSC^IIw0#FO6wcmcV)f;JXMAA2$$W}^T?X&@)(u5@esQHXvTiDe?*>K;wv7L` zigE596sH7+T@hOdYeGJbg7t&r58W<OqI?T$f#_kh%Ljk-cI*9|wE_#mk+M|!$e|)I zJCzib;zCq}{f)z&E9EM%0XJHHz)v3P5EDOS9jv9$Yh|S+)>0N?W8AnQ<67+NIE+}~ z%a?pl1u%)R_`#Oroa;jiv%u+%j$no{73JB>D#{92T~-mPWpZ@1uRRvgNe|<NLhM<y zW-;?%eO_mWs+C$G0#~}ev}|MPkDy#Bi4nVLN@%E=MoZ91^Z;-w^~0s-iSVqHo*(yn zcEhtudj6^3^TU46JN%w^`aSRRdw#_4IoRQN&{5@p1zGW+<H7BY@Sq@Ak!xyd0HK%| zhuKjJtLuzg;>_6&SZ`rbHk<M4jc$gc)&Z#)Se6S53stI+P37eq%gY1S<A427x7^^r z8NR=(!>;~I14`+7f7RFc3ye|a_b0o-KmYXG{r==P_~%Wl`)4=*|A61seOmb6JpyC{ ze>eII7y+_@Klu&*4UB+)^zZN0AOFJP&;QLo?1rl>)jRP0M(aCJ@4-GY!Z13jwmYk9 z9{fqItB!xj{nLkc?A-OpqmMoQv)xZT`SYiK@$@s#?s@L{7hZhnmwSKp>z7~o&8xqC z?RWqF``6#txBtMwH{bfh+wZ(v-*Bk$@E@C+j~qRA{KTJ5o;rQzy|d@u|KP)xk3K$s z;m@CZ+IsP`&)fdvi!X)tzj!+S`qkH+m;QFS>znSL-YegJ*Y|zD_zyEgLo+-##1Q?n z>;KO#|G%6e9XkAfMEj?uC6tsT;I09~<il^K&ICUlK5T{`V=~>5pMS?@LQ9!V43lIc zJTdTbgdJuUmu>JpF9B`|A2Y1wtk*M%TgO$f40A76O!BxFXk~Ph%I!tCCt<SK^YHq9 zs&%cMlW4YkEv4iU%EA0GU(6Hp!hA3fNVggD!1S0F(=Ztpmb2$uNFJ&7BJ#AXkh51v ze%aRiQmgc`jH6GcvQpxa!AY)##k80X<6}IGgW(J?`O+RsHn3u48#7o!7^8n?h1I@f ztqpj9g##2b?s!1hB1;9El!siUxvZQkCw}yuX2X~uN6R|v{IX3+OlF30Y3yCIQWh;D zI6={X0U!eS09uG0X&<OE)EpWB+5wsaS_K*h+6bBoS_~Twe#uJ~FUedM#moYp7vH`6 zNwe0HY{0)HpSUZbtj)kxlq@YPW9jOc_7AMActCi%%Yc%o3=_vNuN5)Ovrk+*E=n7r zdroq_?-wEr0pUjmh5un{V0f)x__xyxOg{oV*MoabddBdF{NfePF)+n*4A;eDls+*0 z^q}yIgThY?3SXaS@YVJ1M8lBfbpGi2cuX}69d1f8Fhxn%PoKNs`glg)cm4D~Uwr-W zKbr^Y*5UWuGAQ0NO9#SUUOIGpSaSl)^Ur7a3Ij8F#n9oo5M~(^UOy=R1FHhV{rfd- zwSif^`ug=fXd5~`y2pyIpZ?_L>!<&u>iXgDZVwC}+@G&McK!6G-PaFq+jD*VSG*J$ zKKT2bvX_SAFZY**A<Mb&>h<yHJ#_tg{`{DMS$V}*6f*`lv0IsI{{D5g@{gUZER`*= zmRju=)|yOr%#vAqv2la76xNI;2xIXSA{n>Ky(bZ+%4|y!n_6biC@Ni7Y^5tC^B9v% z&P=3euuT3|kzr;1GEK9T<`)C~@D1i_D$D1Jt*J%D*2R_*E5!boG2(7~vb~5c%Ci(_ zSjqk%!*t0PSuGo^SNVTCkPFQ?8|FJ@MzIxWiks!qs-BdeZznhh$@~vf$}w$nSxE^b zTvSvF#m~bOu=Lwmt{fNpB&HLwr#UB=ao8F^qH*%6C$uc)f;CvSx!lUU3zSW<mAwkl zyOqnlyLi49{52_`v)iGSy`E{x%+f-VbG~s?9uQlQ7&0dZ6qA*J%aFkz$QM?mSl4pv z)>-Xls4jNhmokY)AzNTDn&fF#OF22@V4fq-^gv@J!NiPJX8tH&h&_NCoYwq>rFnL1 z2^j?q{{BFPc>OalZBnwCVZyOxmKaU=+zQxaS&EDD$(R8Oi20FnncrE;JbaT*Q|`fM z--$~iz7Z6=u<iY@f7P$OmXRIRg+Sx{OqmUBO~w$@Enie-$(ObWVKlu7ID0q02lYr& zX?{j|Q7P@z`(#+4abSltgT+$}7{2vn>|YhYEE*z3HdC$4F3Pti7h3Gg%1pRpJbyE5 zWe#0C9~iAKkba<F4Z~QJS#)olv_Os`owM3Eo2_<2c$VhTK?uEV!?s>ll($|Ql`mgC zmY{Jm$XF%h-?Ae3zADH#g(v1o#ZtC7vvea+sm!kk21~89J63rykb0+@ekJt#g`R!f z?;Sooz<ItbwV10Y#JuNo1qD_+jO{Pvi;_*2a#~I3iOC9ITP!Q{HV`BD$AY#n&~FRh z@N0r}$$>r)r=5&xatK2|QRYh=Cs?}gDDP!bqYUVE;AoiS;<5^9c3>W&qea3$iFwkm zHcL3RoMTBH17c+}!T9C*ee;{8Sq=+LVlo(*M9M98tFN|Mfj)qB3*zY4|5+A$5gt?| zG4~mlE;cR#z97FCn5I(2QW)1{Ff;GdH2F&k==*f}0GERGgPGks_aw1U&{~eQRwP|} zef-z&pZ}|mPV%`je~||5)p7A&(bZB9f#LEW5VwE*{`dbDe_?p*cjMko`3vyZIChFZ z1Ns^O<vkst|M&UgI7JyX@0e6bE}o&`bx)KCL{UIAtb$_vApj^(s*>Dck{c?84fhKh zBc(-GBju}={6+%YBmw$Qk^JXK?@7{ovh;42(kzwyGbA@#%0EXcyIAtajTIdLOti$d zy<NgJSc>nEaITWv?NYc?3a^&(!3%dNiu1JezDL661*yDWO8)yL{7y>YA4=g7A+#;L zZRTxrf0y}B`VSTUpN&6M`2XIYcE}$M*A4mmr=tCX{f0htpy5MrivM%*{vm(=zmEaw z_y71%C>#xRm|UrP0T!$^+c$5YBKg1cDRuX}NZqPuaF++TldTTo?uGab&wu>9ZisxV z`l)M>+&6A8ev;(wgZQVOYkO`y^B>O%&#f3b|E+t-6Y6S8|9I8MI%f69wvX?+I{w*~ zPg<`q%$-|l%HqG$J-cKn{J(1M-Z4Ju2Yr_@SL2HIp}oICkAdm@+Q5`wGBCA~NzCr? zRIw?#*w>=;!?m?nFp#zM1h}|nKMO9d;VN+PBfjvZfvm-^fQ$4+Ex4n=T?sDIG*RG= z1Gn!B12Z1n!{AN;_aShRR>%i;61XYgP6oI2KMaJH*b6R>v)9@T#0r-d+)ao)xOjHe z`MH6?ucsAU9BdcB#m&$Y;I7(zV}SG*(ovW%*2&9WVEfph?{{A|FpmQ40C)(X7N8oy z0k8?69H0<jC4d<q4PYKX9KdXV7=W1oGXSChbO4b65dh%;S^zbG5}@~Q&?f-G-)Q_+ za9aRQ0~`kU1HfwlF919X@D#uffGq&!0K=36eU5!P3)>X>{GnU_K5UbIX_9rCS%bz8 zwv#UCk#Worzrp;KqnxJiyhQh>%^AyvN_s;-bIL!K{xsA}JBf~Kub=-je&hYpn8&fG z2f&#Z#|2vEK*g-*04@WJgo?!gEC#@fDc&>*45f=VGDI$pK^;$cll*T0c)9Wp024s* z{{jN=@5!mi2mKV%&zruu%fRFVtOQurWw>hm{2x$D0|XQR000O86RTWQ*bb}oi<tlb z044zd6#xJLb7gdOaCC2PY;!MXb!ja&G%jU$W$e9scvRKZFn%U8lT2=$1Q-Z68DLN} ziqY|sFi_`^iJp;(#)^uHij5*xtTZ_XumUEYiOpm?mA1Ck*0$E_>#fySYq=^W1ag6J z35wiQ;(ZSz7(kP7J-@Zqo=GMV`o7=qdA|QX9x`X2eO-I+wbyO0y-(?F%O$HMNjCU1 zO-WiMiGM!nfBv@{{sxU*Ge~+neapC2mf)6gGw0o3=~__n(0vtmKj<pI`)5CUNOS$< zURQ<wGuQn;bNR2o(e>a%_uM-<J3GT2uVccUFZ}7gt2VVH{(Q&YY`KTRn_H&9bMJ!L zE#>fh_`&O1is^Y*%Y*a`w4~GX_LjNu{PF$e^RRpZwz3jQy6175G~!KmLn5wInjmGS zq)XC=@G@V-wdKQ4j_9&QiicAq$&No#-&0y(5rZU>s}hA0j~~AG3re<Ji!>>D@a9+~ zN5=nRkpHKDoszUX<?P9mwR;z9@I3iJ93bqwt$!XDKr^}Gp1ZZXVgAn-bxIe&-`@WD zeDHs=$R>SpITnO58HV*)2Ii}uyg+26K0;rmEO?ImK|bIAK~MkRzyAyW)bMP#Lk-V& z=cr-Lou`JExLwLj<tF83)%eC0WS^==tLdo^u#;<W@{YW&cDG0T=@vEeu&I`}@G_WJ zPnYLlu>9L5X}lVlWeKv*8gtpb^4Kb@Uy)a2U08K&wr(?<V&_#I8?U=+x|R*~v!=IZ zt86nn&3_6tsMh`YT}{^6s@WJz@pM5U+l8vR5ncn{gSExxl2uS>a8jYmMIn{VcdIJX z++`|T;-1xH9p6-JkyJL@?F+Cb)!5)t?o{qjW;eDa{$YRfZc(ehnFEVJW%hRlLw?T& zH5_u6QOq8dHOMQ{RdzhostsALn)Ox3F4k>LK67@RBh;!NQX?TZl8RvD3AZl=pMJMb zjm&fx0BCC1?{@L)bAduEaTiE(&Fc~ceY54z-*LGAL*Z?r@L(t`23?InK^Sq$)7`F` zEvnh7T3f1$X6p_J!c%jKRBuZ~W)t*;BK25Owb&34_#nX64AtYD@cr46MANw%S1x}d z0|9%A^2G)xB~)SpdtX_FZz^k1Sr1>EiNR)-Js}3n)5aYLF?-fsh40lHaAfalOd9XA z;};G$bv4KisO&_f%s~hS-Qe9or#+_1jw<1$lDsYx(5l4qg&NM|_d;_u^_o*2>z5#9 zh6T`smr<nNDX++fS6}F$cDqkrw}lsq%=VI+FSLNK>J%bkb8HWU#_Pj;UCkDKkf$CJ z<)`X>mmc)9j&`%g)CLDxGosp7-j<Gt*6lH|%IAHxlU2auKlaP=N+L^Bs-&1DQlPv9 zCZZ`2zN`rgoeRM8H**M#+~o;)pUV;OR(SzQt}#uMkahq*p8<zq)F#!m>VsMKW8*AR zO{?bc>@b~Id<2vm=MAz?>O=PU_~#(LcR;GA9!GSK8VR}=_#@ZM^Xv$}<L)FX;D;vR zXBPg<;U79ADRK)e^6V!7G{Bn$^B|Y$JhTr{b~fY%1X~b<x>YRT!)YzVpMnxkYYAX3 zd*9OvuagkvEL8NhebnJe{J0&l&H36V_)zEY3L653_|qd1{vf1xH8OxhWkGkDvB?bE ze+RXg&b#&@q6M+}rwDG-=}%PqcTw$yiE2lkrP`3_@WA-CGvn(mh^vAUMg^v>#qI>y zsX#dgT=jmevLk@8u)Kni8!SslUdyI#5*d%Y9xxjq$!~2Bdbce3Dp0-&hJ}w!BRJbW zmZVa)5f)XDb@0J*V$DO%qFSgka=*E>AjoW=1j@HSk>5d)fVGW(ISApO`bnHfn2oe% z{MINGTe5us9tGG2LLopP>ZI?+Ta=p>M2J}_L;%-j_Y%MYBuMOtAIVU#{20*>Wt9XS z_OzPL<9m|nQh`{g5r5Xjh)xBnw_#zPJXWeIoUG+g$tK7S6wAAQQLKrk0?JZJ&kiWd z>{C9*fxx2SYfNVMz-#!LG`<TYP`2CXG4=6$n^jOqpkmGwAH^qjIzSmIwnmRx1l1~l zr+^X&RQMlml!o}2Hz2XRMUA|Zh3RZFpHbVFT{SnU=6cn;t5TL%q=f1<$J7kXHZ@z1 zHl;{NF)35T`RGSjHA+|9J%|?YL;(C&f+U_PY+?2?hzKhVd4>I22-PZC*nc->xfH4B zvE#711&J?I*=`{8eBm)%@LUDVb@6BlHMSSm77$kK<DF10Qj!wQrY7EYmq8YoO?NQ- zf?LH|f_@_VD2ZHn<r)XF*+_{6*>MB$uq}vF<9kfgIBf}pZSDXJyJMM4H5wh}R+VM) zR7g{eW(UTo#vuz#L680w%?3ZvZJKKZEopWHy!$b2={R|8h~$L;%ld>jLl(fhqzp^G zHh{20(*jntISn&w7X;V`01jXCB8-D2-p{>aB7<xrUkI6Kd}G5(*v5F~hfm_*v~cBw zX$D!m!%TEoWnzMn{UEv``w3^zI!1g}?o#f&>-J;<s50mMqb(B4z6*X8qLI-aY5-8a z3>LZS2!?%m!LaJO@n%@<u-0Lcj(PU6qpVT&ZkB&n?`_o2<IB&Lq-GL!kwUlxne*)M zwDSL&C`m?(8FeC_L6P?pMeaCjk;-_H&m_d}d)x~+BJ=XDYw~<@&F_djZR1}}fJ{B6 zc7f4z8t|?hR`w>f;g~%bu{WP@k&MsAst@d#6|fEkEYF^pVUc3F5Ez|-@(<7s`}2^g zYkJ|M`b4Z{B-Y}@CBYihh90}|DHLyo;#u`wN@0~Yp1(fvY~XGHWzE=XdXMTCAYi3K zaD|q#HX`&h-SaSVjuRp~RkjP3nluzTgOUHjAwd>a2-N3Jnin-<58EwLqwhwfs?0vy zYmwGMek9^)t5CIy*}aW&un|Bd%nsX&APcvhi*VVq^Pzi?)eWKoh+E+?qcQR8iImuR zfk;eSH4;&3v8NT#Z4|VohKE{IV|{^YGyuBCEE<S+_VtiE_9gZq;v5W_N+PN?0OUC0 zoHxk=cwQeLrU0|8$Ds<cp_YJg+|)AR_q1j&t=XZcHm95h1{pBxvHE}!wdn64rQ6`b z&LXeozXXM<YML8WAI;8l&%?>hz8WC~Rvm4CZncTAAjX_MA4DzHyQg9b3{+<thIcQT z417af_1dfS?*cWyUF|-gHXOGSLPW2M1aouvRM2DPH4o&;u?#gbqri0D_yI`+2#BcP zI5t#edzZ>aLk=I5ocmhHJ+UvhfExzoQ!6&Vsp3ii<z51%Wl_Go=I42`n!hOtp6=*C zVBUZ}L(N75)cpSYy;2F*3s5YT<uw&~1jpkdBZ2U0Z^k&h_qcsRKIVVF07q>%&h4lo zh|ruIRC%0hEt7YR2P6x+ePKX|#@;^k|2KDTf_?$|2aFy^#f|cc9f8%B_`iVsMmt3N zD$Y^6_ZXk1X{o{d1~r@m!geWZ2^bw$1sbBMdXacZgBPooJ9qBf<;&G@E@D-{Y}LOj z1$Z)Qb5*k;V7BO8jq+HZgqh%fp!%3JT9PUYFn{<4kT7n@fpQ=?-LM<}I-oo}IQ(_O zUyr^!_S9UGZ&kT57yh6G{D>kD*o{9_2%a2&I`OAR-`-i3<(8r|0V&Vi{~+5_npv;8 zVG6s}r)iVwfc@3la^=wHI5_5dfLu$16#c7MR)94&s$m;+a6OD|O2FWbigN?2&C~R6 zS<niy%l3eA#4Po+2UbgBD630r+O^hzQSXpL4C;(mAL^@qap;R$cdn+#U+-5Ncn;;# zeiDzmS>(7e{(4Pc4qrU#GLhqw`0K>p3}fRlLqvug@haC$#bt{9v2Id5J7BJJDoVN< z(zFbit=e435<3k2b5)E;o}lmzc`)KGOsM=Cy5yoENRQ7smZ*0?l%*n#W<7QkTWE{p zZwbqT^%i8Uit%}m(k0n~tX&(TFrTBeyv)|UJ7{eO8W)_<9w=|TmJQ8OS#b_i9jbMP zqf4>MT9&**u^Jtn>eD#To=pMPO4uEJ2BacdOQlQ!UIhv5JPh6IrvL~(hB7orbCZJM zpxaf7vgUdf<Y}HViE<V;3jH7mdGc<$`4*v=fplnmQ-GZJWl3<}r)l9F1KH5Cqm&(E zo5C~Q3smoMEhFeXqRT<=dQDzUto0q#ZQ=EB(7Q>`Qj4B)FNbLTGg##Du=Zildq5;T zhe^#M3B%gjp!YM8^xv5D50Qjn?K#mqw!d(QmPwj$BZ`)XtGrY63jqpk9L%Xze$0!~ z;OZ1f$WqYP0BC4KfXsMysF6o3F$d<gDz(E@)Hsh|g~PRbQAOK32{QrgcC<naud`0Q zSj(O|TT7ohSqFY`G-gvH51{T=I7Hv3dJkw92Vn#z20_}&-xe%-f_f)E{%Ug5+xXK| ztIAGc%g3?h;VM9IgX-<B2*OBc<AQ8!yaF79g+K2tyoKLRg<(*%GBy7bwdh$Ii-p&r zwt;*VbG7lyAy@2Ts!Pq^kGZI#NtCO%F1fcZn^HT}?WvFc8gj8sF&hxi1wqh@&|ZV1 z1Awkyh(m+`XD8+jV}@fRgA&uV5GuM!!Wsu9rfDJ74Va-%<adri9J>dk!nG(=^vM&T z!dHw&St&LckYpFX95SvRkF4GSvI(d!ivcwYP?RIB<<2`A`}8smm09B(P-{SrJ}$(5 zl^sTLuu4#OwR?AfHI$CpS2|%ggn=iNj@p5mD$v@XyRdY^c8YCQF&2b!TpE)C6bl1Z zI;viUSYXDx6r;n6>iyo6LOGv<`qVrCt?aHJFqkC%;?2GvfYNi-hK8KE-3_LxryOlm z8(MRsf9uEVo0L3YU_0cR$56ev{Bo3Fih&3$uO|s?h{|eLQD_Fx-fVj&^51rC7^^}P zca42XIyB<o=^o4iaN5fqkfW&Bp^YL!QcKygZ^CTp{J{BCy#tfFsD>2XX;7Y&rs6zU z7DwfWQjW@xT9SDv!Rj-nEgFHNT)syK@a(sPfGMxE%`!S1v71q2aCvs{bIE`KYNN3# z3-Vf)4MWE5A^{Er!Yi+kBtP37gYs2q{qoBzN6!MX=%`xaE|jz^ELvbZhv1x22ml|+ zPcRdLHWB?oXy(9>0dA#?O5j!>S_#>e4<AXgb?hd!rd9h8=bR?K04;8WBB<m*k!HWU z5TJe(p6YZg_!m$kjQQ?D3){Uo1FZ}NO&}nWE>{3T@S|6dcyDZ&^B?64lmT=Q(Sksi z*CtpZGMce<mg#jv(}7J)S+C!MEb2N?Jg-%|8&Fl!KfN|GG<|OMXQn*2`go7Ls9j|i z;0ozL<n)asVF2q1tV!_Rg}{M2&7gHhz_UJ3)2KB7pq~0h70}n%Z8nB>Xy=8xv<Yg% zfgA{rg7ENoScY(>2--qjdMy@9%(aW{;nx?@l)0`XLG_=fU}Op|fdy(xaS2g1JCgE) z$olIoXoxx5Dg?3-AUQs?h0KMf^H4m}#x|SV`{Nb1wGt)(Qk>f$8^o_hbct5D@I{2@ zj>Rwtp_LaA0k}mhp5tVuwPMXFST88C-u)E^ag`QeD|ZRLCbFZFLIt3f;UGc6%F0CC zNHN<JC8NnD+mgzv#<aR~P>I>2<v~v$g)q<Xk|n@_fd335E}uer?JqXtBYOrs_%i4i zG<6%i?}zc^bw!vqW-Miy=7L9T(3v`5Oq+nsffN(T9*K4Tc?vZqBaXK!k+KxinF8_H zrvZH>+K8r`yks`+D`6dMub&;G@#Mo`JeM2O{*rBxEOO{1L^a#%@C8Et+KG=sux6iJ zvyDh;cGVbwz;iK%J5h`%0C?rlUq#~Wm^h3Qd&qDdWL*dYupN%?g{twbgUr3E_jE-T z-#;0$7NzMav9B;<w#sC_Yck38yb+(_H1mC^Hxuh!ClcWGJ5byC8<UYU9o6kYFV~=< zquAp~s(2RkHW&vaRs*w<wTWiqAYc}M=M)-XoarL!I7Yn!QOnULoFNA06fh)s)z59V zFUu0+p#Y(9@Gl@i0Y07u1>k8qCp4q<1*5+J`2n&jUoWcy<RM}d{po3xzab1$W{J** zH>6Ph$aG8edP-^|D?3E7_0ee<Bi008eNo)dzMCJIhQZDJ`S^3tQ1PsbzyBis+%ZKw zy9(p)h1AVQ0R{O_E+WPF>tnsz9m#vbw5e8q^IU=;n$Fvs05w*X-X=+Ni|k+R1itkX zwcI}9LmaxxKZJMH+EiVL+p1coXJ1%|BC+dMXQp5YH7_}~&{&1kaL}TpIJakC(bH&h zm4DZmh|B3shBhjojrVX=V6<N^CWFAZqG?&c_;fp8eHoCT(Ku7TyfjXX_`gp;4`*GR z$oW|Y<$Mxz;zlRGqc<nRoaX=mU(TPCG5^CEt4Co%DkPZBSsQ7T9tItqS1A;(fy($2 zUpz0N$ll{n$^FyfQRx`f3{e1W+X-ClS{iHN|He!$Qzgk4TH>BBuLL<+S&dtuez{~* zkkz9oxRu{`5X$u+uGZ|+u~-ve7vBRvv5~CDc!!1r*gK@Gg2*<$715P7$Ly<2G8qXG zFTifk3$RL8fPH>fLT~5qO&3Z)bTA<r*|}!HLY$YUh8MWd=GBirl(L5%rEFY){k*U= z|LZQrHn$YTsRKb4m1{ndXb&c=wgkhz?L|M5AI~Sl=$%=txF_iCkRN*q=d1W6hK)Z# z*m%Sy$sv?14X;HT0VIwryliK{+H7tI@==S3v8+<5UMiJWKG>m80-D#IhcxdTK-xnP z;;&pzG;h!vVQJrDI(I=dn_*MpIsjC*jlVw~6R-BM8*QcKrL==F3En3Kth>mrzJ+Lk z>12&CQ6EBP6GY+09Pf`Re;WM}%(|yOHaEZ?c6km4^39^j3ui*Na@dUTg5FOnek8hA zd4=jdR*|K8dn(hEt`eI|zu53fS~~Q~+oMg04M*$OV(8hMmOwbw593g3ZC1?f=0<91 za>aiWz_?-JgSjdQum|8-slt3ElZ*uYUgFLn`y)z+oXcp>=HsU0SjeG2AiC9mgI3%6 z0@b@)w*mY^`0FBO4#q5^#!UOq(kxPUaURNHdU-H1aR-`i%6kIF)RU5)zZ#tY__c#! z@WQr}Xi)*iR_r3#Gi)VWY`EABqGD`BfMuO*E_P#q=3)mvKp2HwnbkA$QgY)PPO+2( zFJia_gj)@?Qw0pRfJmCW<|la|;O(s(4XP?{03udho@X91O{3fmh&loO%5$UvvO(AM zJQ%6nAQ>9J$bnU@m{ROqW4gm!oUO8yT8C<;$SWFR4tZTG|LQ`rlj^o~Yb?dI#%rqC zu`D=nF9&N5uwwz%$@co{qNp6P4}Eo8%+0(8Fv7UX)ND2T9{oDrpZUmAG!P&A$pr)I zQ@VTzs;E?DQ7tQAEGCdGxv?t&3Qt|BBwB)I&OtfZ+z2h{!}&BAQKRqzJy#^Zc@;Nd z$pQdd&H@1KT_>yQ)!%Fvn>bxZrNkyqON!X{+JjQ>JQRIk1uhP-?WHV=dwYJ?0gst} z)(H>V^25D9e$P?UEb;6Jc=zfG|2rU`XWu~4n#{s{<seBad{(IPvI=TrEiQH;yQ59} z6o|8mvCZr%&hrH$+0Sk>O}S=`BzV){Y!a0g0l12{S(}7L=?TH|ddOJ04GlCcpmmK! zD|hJw^|MN?q1LKm5W+KpY&~QtgDf!Kg^%jzW9f6S^awJHuSaWmLyuip#Gh)wQeD#v zt2Bl08g%x)#In!c7lk!PFG)ka6$a(Fw$fL3v4VSJGu=M?@hc4U$EV0NqD(m;hYqBQ zT}8B+C~MJ>t(wh>_lO!6<XnEDB^5VyI;PHAG+33_ZJaKzd&1EPBVl|h$E*t5q?WH& z%UjjR&=yE~DkJARNoqK5gSKX~O^SDi9C{eQF`^*2)jHyVixYuZB57|T@LVGB2WZwf zW|3>ALcj+N8$I{PPcDPSD~GC5aP25^2(>b!r&tbc#}Vi$kwcRy<{CLPkpeer4;nqQ z<j@!NcAGZb=($@CIq9uj4j~_isx~CaB~rlH=m>b%YZt3*76kTc=PL4=FEZu#q{_k1 zfWB3Rgd=}_drx#Ql)%v}i#llIYE0>2sOPX1hOm1>0dx-5k-X-c%mBMXD)DwJtZ6ms zY_h)r+kiYd4(tXR*P)$6)vD|tlXaLdE_y`zL0x?%wF^t+m8CtnEm$9yg#4wfk^jL* z^R7T2#z3XBh|mpD>PmXx&5v)jp?HaB=@~5rka3$F(|lDMU5e4>D}l+6rz`BJ9JvTL zsMe)o_6KO(@0Fi$S}}0nvTa7s{c`9q4gSyM(7!40kR19W1r})c8a<VA=zE|KMvpFs z+9-OlT(c7@T6G?Rcca-d*I$&YrGv7V0+8$9s`;DM_G7VeFfuqIN4}*IiDj5A{=!@h zXlMgwJDk562!%h&2s#v;aFpa#sFfnUP)L|634QVK9NP^|es{1yiQI6c*6%Kj-Kdac zglT>(lpdQFU`uKG`GwOGLnwz9pTu>$!KK;fhOdmJgs)7DX>>l$Gz^uHk${`3h$(VK z8a}crGfLyw6q`)5hII^uU!Rs%D!*6K6B`cm2ag<zOD!#ju&soZ^w4{DsdxQSN1%H* z!sZYaXHdlz))H0^)3el}tfRTjRE#gWOT0%*<m-?6fsxI@?H`!C_i!0^?;h1UVG|6J zs<5q!xmEFQdejbeYc3!StUds1w)-&1c9H1?Mo-Z)t72`gwW{Xk*mm^x!77yZ0Bg<s zM%8S@_S0cp{jz~p6-2T0DsO=t%A|ei%_bx@Sqq}5o9TmmRj2OLl{k<^aR8O-)96aH z?0hA%?hdldY~v5(9w<<Mvecq13K|6Kj-@K={w|3{3A)ts;}VS~5P?%_c^BqKYQ@XO z3EW@oM;|1R*Mvo|2`yu|i~TZD@Av({^jzk4g`M=&SAUJR6m5*(+X(^$%Pxhgxr6Ef zkw`^#-&0S}kM#EF!yv~5%<+{gIY*WEBHclggVtPN57$p2q`~3w7tM6fl51w*7~y1I zf&=HMOhXL32<EG6gGI~1mweJ0KzLGPxe%M8Q5IK>!!#oIoQZsNUcTn`=XXPT7O-3B zsxQbk0?T#r54ug0B5(kL7`uxP?IC=1Xv5*x)~`ST|2q_bs{Nk&A|N-K?(JFjbCt#X zKuE~Hpgu)-2cUqitisi9Zc~koDSZ0W#EQ@_Wx|3AR9!na$o%ekaS)!M;{3PW#Ecd1 zas4F%KQ@6Lz?0D1CN`oMqFp#__lWFJj}K~JG7_QIhW6{`!7j>zJPuI=sq+xpW6vO< z5}ZtBf?1)|0jqH~Fx`F4Fc`$okOKmzt8pJQO@HB2y=?Od!8ZR!Y?C!%L`!^Y{?Gxm z3qI?1S!s)Ydwh#NVb=u&320N`cb=9Hzw@<h_+6y`p6GP!$*Qa7>lw&J;WaB(1%x6e zx(F5$1YFUdL7*;;Xw}p!^r2OcS}xNEsYY`OMMbZN<f$HtzqB|0J2`qK#@_>+6Q4kG z&%-AW+OhZq$~qjMi{+4vPvCcH@I($Zo6y!Luh>HTiuYWBevjTJZ5(ZZ(>^7Ll6>m- zrU?TDQ2VAFl0zwEpH9v&>U)}r=rcgep|=<4BTAS~%Mu8Z9Qgx8m$2^WlkhB#WUWAk z?T={c_UKYdITF<q1;;3H>IjpLBApz$?KBOJt$TM&25gua$*RKg5x=?}GeoC|qApE= z-wE0!@SCrVhu@2|A@Exu*W`&B98o!5RWwxuEYVYF0fDhiiyl2iQ7O>_r^Mhaz@J(8 zGZTN*680JNK`?ewZGUV}-T*-9*%dd}&I7*hD}0-fDY~eOY$Lro>jDt87v}}Tb6mXw z@A5dG2F>mj;F8PN%tGZl@{<<a3E6MQy_el39y8!=)*UF0K9WNE{O=qVV8U(TYz@ui zb}17LO1mqIOKKl+1dL2mX#i3{t-mTx&nO8$k_8ck@KTfkKT|NK3}S)-qj469+1Do* zu4rW0=RyQ<-6igy$e{pDHLPW5TMl{2$#b4fEiVXIzh5f>qb$mkgLy=)yqo1ngfzp; zPl9$veL(of3izP{?S4?tPBZ&PNLH*H!uEF{5Qs3*_MS@R2Y@S8<%LyehCIM*r~AO( z$m|cHN@zBF8<&ItQO3-H*H{_=gYgP874QCK%T(h>ruG2*p4RRK<yW$3cjChVi-`>~ zox!(-2p<TRe~mt7AbbN49b5Xq7a+E~fe56c;}M8Vk^-`VBLGvDvj&YXeD4LKWSRoJ zE-OZ}v=hl>a{v|RCWrULlE+FI)C#0yzxu$wS*mr+&Qx@m@S3O*dQWSqRWlq_u}7PV z9n}gfEE8F@(eV8$z#p^3`?c(EF`du<OBgQE`{i03(h@RB|Mp*^`7711M_y5H^rYxm zn=h7b^jLKp1RZK*MjY13aaiqUaaJq`w-qL1UbWeZZXb%dK}D;AX_cS20ZrN2!&1>r z(e*D>!D3d(kEWXC!c+sQXXT^-d!(S0l^6D!0DAXoYg+Y*{DPFT?rU6S5&Iferi>O_ zx1bMZ+j}JPrK$d=18@gQE}+$+0rOb(6c)?ckNgd-l^~1cSOjmvXRq^SndxkPOXx0+ z6v3W-z*V4ie(F&nO?VNeLLy|uC+CoqfT3AIbh?Yn2~;g>#CMmcm9K`<F&DBNZWq#t zsK4+1Wm+=g9i`{tHVOA-G!o*&Vn@<+=DvlNQnuT4ns185ubR$p-XyzUR?R-$5m8fk z&t;f(E5xqBT4<_Qy-8dLN9Ojk=<lFqM?pAQ*M&0ro&f7n*%9u`6Wtyegbstkyjdvd z=vRk(gXZ?wMA~8I#%0*y*#q;SYB}%p4_$hV4FzOJ0Is_83q+9sYxhTd4sV8*Z`KE_ z+l`)!Dvm^ygGNv8qSRHOoJx(=4Sw9(M-(uQ4N~N*>l@Xl73OcSH41y*A_1(Pu14%% ze+eUQQ;qr@as#0BTawZ@C(?&fdhb4rCn?WMy?MfUd}JOHDd&@4#<y{Tk+K{RIJ}7b z;gnuKr!&|^(9!s?vBgAl=RKZY_nk>a_S?Rfq=hatrMJ9+r2DTNgaf~K%=GVZ4o=9| zobsO1Tav6FfKh#$9ewspXly|q@CTPLnqh-SU^am<ndF#;bHVRV?QQykBKv+&sTYpN zrc3)Z-TWOjt;pA$RJ<qk`sBu!;OzB5fYz<E!_Y-rO$39Ave_2y>g)T(YK^G@6t@Z} zw!*r59ijM3914Y?I0{gFr+B~9*ZmJroZVO1(?y7UK!NcOvQG&!cOrke?}xy&9Zdi; zr5`YFA58%Bz2f~|Uz_Zi-Y5{e*R2?L)2_Txcu6<FYU(l3)xdOCy-sU%IKL4$U~mD? zeVweDCqN+#TYGJOefw85j0K*q$aNO}Q;-anNA9%Za`KM3Y=}i#dVjF|b6~>`t3|rj znA#y}W!JK-jxHt7&~o@&9^o&UYBoVtZsWwzC6_?veISBiF5!*#=YP`XRg;MPlq)9s zn2uQi?=uYd=aSio&BdN1Zx;S_3i&UJWvoH}(Jx_kV}D-+7gO?Z;`g|%Q&aS-x|KW! znzOH9Mfnfs)R@aI;-k?4nBAD;XU)+0&p^om=|pD5d7=7;WuxO%xHvDCX3WTQ8CxOW zj2xrfLCtFDQ=i#?Z?ex<5Ew=p$5U9b3;9oJzfrRzgE&WCQ=T`d(n)(qAgV)?fA>lf zu*iBc)+Y9Ww7AVV7{14y*XQ@+XNOBXUx+Ed{xA2KbY{cYW_qW+o@<fh$m1xwlz$6@ zyUao}!6ogd*Rr9!YdXxt9JY<u?J~{fkbb9y#+lO;U9K3XE&5Pigwz9=>O|n5erVhs z8&y)%r4NHlDKL*CMY1CMyKy^FWzIaRW#|E@c=awkkAMJ?0wAUdjaOJV6!}h!n>aoZ zWcL88>h&dQ6fR0B<QvyFhd2m%V*Lgq6aUdc=b6j^`^b32VbLe5<xM0Dm`y5((?B3! z?L;P&1#B;q4;oKf6&FGDzdl3O-IxOcfp_<k#`snR*>Q0m0Ulp`<*Mb)s<l2~xHq7b zu<y+DQ;m!n*MSXPbQ@O8PN?ikwWdoOWjyMzXfV03Vz<AFDO>px^iVO*Lx=4g)q85m z2k{;5Eb2k3>3r!`0UI6=`25VqWwJclU*8WIt*t79?wJ$wUX`SQ<3t2TE#I?FIGat& zBtyk;o;O00BG--Kd{|=BZCD3l{R!0y^2bFt?MKtYl2foSY^*8v$Z9+b$s5THp6HRx zC&NoK9TS96xs41$d@lSf7v=PeX&Ml#pLPklg5fIM+B@3QTeK^d69~^fCB@P)^(Q9? z53?8UN9jO)C9#|bPRbpPNqhd~d(_CZ7w{a3b)RZX-7o3694&9qB#0Why!{h|I%|L5 z!i2H<;^p{Q(IOJ=NjL|WqTku{4z>HR>TRxcbCo>r2TFKZv|rgxyHa<k@*Bql`qY@J z?C-%fYj!L`Gs|C&!zh<IfTEku3tkaS`yyl7?~kJ@J_22?-x*6|vsta#r@hr|#foFE z;!CP{Ns#V>KEHth@(?mnfLsopAP{!Qp(A1&knKU|mT^j*6av`@?OKxR-6cQ%4yk0f zT52s#)+u;okF}RV&lRPrNCMFj7sP4V_&wyROHs}BXd7#+nj-0623RZKT_{Oag%@i> zstRXogGA=a2gOl9bi$c~gE%5KIG%E2orTJ)W&_l&M={Gh%yLPc1)$2GI$0YZ&pN5e zIvG9r5=HX{7L8nEQN2wIbDBzE@c$cBhqdU07Rzn2A_h+2f5s@<EEq6fAQ-&~T6}^J z{y@O%&mVlaFVs#ttHO>ctdsZb5#Cah{PK!@N@$67j6N2Ywv#-lR91`hY`VPCcI$*D zq}WK<2_JgBr9k+On_CcqGHiSnIwIhlvh}Q8S#6`KZUKOaPPVlrBFT{?dYhnusCQ7` z_^nsQ9YRrfcYr!kOOu)%IfM)6rT;=Xcg*5%h1xKSoaSeW^I5a_u1YC>fXrCpE|W9` z4;sR>Vg-JoV-$!}invD$RHpEdC;;L@&|QZ1uUV*C%mJOD2I`89Pi)12;%@s^s0{RK z)Wfjae|?Ddybe$;_S+8%9b&o2Kl>2+v|I|2>8MQDFNBaF#rF2yqS<*6-VzTlFr9C` zh=&ZGg?xgWygo^sclynX!k_0A9D$|qVoY0j5Q$xe$oKdpOqdM`Ytj=M$JH;A#(}_| zMJ|SgG8z`xIt!^j=*H>U!S8EFo6tTrvNT7D%t%$_m5u)J9X9xLz+cwfqptx)`Y|3m z%0E?S8!OP*IAqa}sFBDRsA&!MvCdXhYXR(5jRTl+_C3Tt|Bos=jm*kjz1xQiDCRH= z*l>nHH{AS!B(25jaT|J?g*F!<WkGF<Sr4n(+gR~^o!@<P6O5$`k9XZ1J6~RLiv>`- z-tS$%Xqb|}J;3U(jRb8A(EsHv7k_v=9X?8_OAFQO@3X73NV!A<*#blrcC`)EDS;{g zk2QW&70pI?JoZmlk)G?5ARoIqiyVJ2ALK!2AmQ#z2OL==ELGIS?wNY#A}IrlD0BcN zUTX4G;c0;osKDAlrS7s?w5+Q1oVw6ZY!CMxtSQ>ys&p5|K+)Q29I04ZQ?)=km<)4$ zz-UatQz!a+v8#|9TsH;=;;%}?=Q4UmEOJ17k?F2jmV$4Cpe|q+1L`r?LrvcIE9lfM z&5);!|7NF2<^`O?{+=N5GoR>B^f8^_?Mb+UUJZOu8=@Mka8pXcV=zynlWFW{t5MnH z-95xE|0*0$acI0_GJz3le&isdI}NL;4}%5Vj7I?(o%(Ch?EK_Wq-XX|@jzerm#f5T zd;epx!U{SK$wJ5|+Cba3N?Q927k_*gmLxh_C@@s`oQgB5=vmtKfoU2OcOF9h_rz&^ zVza&JkXX^C)AxLWCf=A#6JsUDiBtOEX8W_fIR`<`*ayamllo91vd#9YcpCHBVr$Rf zhMMp~P2O`y$e?H858|tZe9n&W0D6<`V?EwRJsZU_JBVY^JUZNc(Z?U5H>JvA0k%;= z=Xj~8P!64k0;{zxVEqQ&IgDfWifFaTPvKT3p0utuqZB4@sg<Cu-t{+785-r#*OIW$ zkoJ6OJhF)*uN#dfAEYXL#1_!5mf6C0X8DVNxXX`6;-vW8!rAU~wTlX8S+q&=ib8pX zYVjUh<jmg&bzV6J0IJHc1*{(g^4s+90kD+9JpFw&a`ic@Pb2ejI0DuUl*X>JRYzZd zWuZ+nqBd=`5zW?e6mJ`dc8#%-t86yhEnS6syRocQHU}Q*T9pfL;j6R!;kk~OHGHQ- zjV#LnGPfExNPxaYJ8)>m9Qp=&T(c6lIa|!=hXZ?dRU3Mv&3_O^cFZGq7T9`FS%X}y zG~z#)gWdy$dD<m~w_3Cd<rTT|3dQ2xz6du<E*+!PSrzLCio=4jrPem@_J!ZzPHEu? zeH$L*D7Ai6n*V{m76z{RTkIP`s=1ACZCal3ZMK$$hJlf5Mc>wnzO5B~TT6YrGfR!! zoD+yFIcTF!$t%;4$jwDF$@&x=w}T|BA4ee%(X|j4@s@V6K~hERZG*4Z<Nb^_a1_u$ zgaEak+tSFo$#cj%{V%xaK>Aw;Z+_O{Ew;&_Ct<`^yKp;c_8}6pL4-rg^b+DczZc82 zMOj5zz67N-?8USGtc^R+tj{=Pu5nZ5Ut#7>!(!?q<1e5ot>20JNNw66e)3z>MEmi? zH+JHh|BJ|NwRAmB4(4)AI@Ho-Z`lh=POd?PL6Cyl@6fBQ*cP^D#L$h*5w_bYkQKH| z7}$m8wqV45%Rd1jj@y@xP|G*TEB!Na<|^TkS_|CBT#s2|pNXv1#}Q4I4u@=Y{t=_6 z*M=;v3wkqsifUuEiOYWJNVR-hU1$XIPRv!154lLKjC}$teE1&hfMn{qAaiHz5&g9D zq0mn?Jm%PL(LK?L#v{=Ad~`rM7e?TpA7JK>G(4QhzkqS)w|s-T35t<1y9b8#TLrz- zdMyf|f|Q}2I*atwJIH2dOv^@*TOYdm6gqJphTmp;_hCV>NQ0j=&<3Hh>Pa+Jd(ckz zFvu;HsK9s|v<FpYklh#J?=}i0eYVP&iy~UJVMY;ZH(o*zhBffwA7M2tuYZmaNjdhA z<0->Rxg{z7`-2!Z3gV4jgN;px#6payjv^7^?UaY95cMA6eEv56u82d|4SaoFyka%{ zc@dsPc5Ax}B_QB9BaPK~qYT1zx0hhS3|z;|kw<2civ?uA8)dwrYdW>TDwDA<8Q2#) zFU5Suqdmw8+4YX36c42|yGXWr7q9c^(-o0BMF$^5xfxahaJ1^gsM-XFt9A`|&l~Vw z(C<B>%o5wfYQ#zMS5a9fvY;GLxiCwLMKu-!jKEUL97%C>2+g8{j$Vzu?lh`!EG%S4 zL#>S*l8jcf({D-d2c+NP=m(^D&l~Vw(C<AN$iY7Z(r?N50gx0o5J<nJb`GIuL$VEP zFP2bn{HF$4ZqU0!yBLqwu}%DszyV4jaclryCeoJg6g*QCu|NAE?qY3+)p(pJUt^L@ zEAB%brIvOlWS$>G2`#Tz<{89WDg9}DjpeT<)%*0fDELHJJrPCcAE2xJW;)ZdTV(k7 zP?FTLeXEdKdhM6y#Es8LQX7b<=ESwn&{+lut$rqcPLE~J-G%0RQ_D7;m~Ldxgb0(| zbj^ce&vW4MhKT)!zaurReh%7iRz@SjH&<hqFw|6yn<T|e)!q1j%$IGa%&U5dYd&>} z8G;x~acbp+euy4rQhIo8y)ZQ3wx0d3A7Ukj7zG*(o`aspqQstqVoReSS(gwno6aWy z?^yOSsDSmD&Zeh(4b5sqwX8vZ0Iu+awMX-?>>IHyw%v3-PkA>(>@bk`zQc_*=YL_G zF~ebot+6!zY?K5nka-@byvh3k@j3sw*=tF1MARI9(UznsqIE%@%e{gz9Uuwdt{Y&| z)F@`2p^CT3;%%0AbBVWk;%%^aTOi(S;%%{b>!R*4qG}ZJrHFV=P$T1Sf_T~a7Kj(K z@ymlWM@-1uC{IJdF~n$xLy<XKlf>*){yUCSK?Se-CNYhEQAJ`JwR|)J9X$apd#7y& zW~7aTitfXs)!rU$ka3lSXBmO!9_yXf6!akmZgmA0(_1*e*39qT227~!09lyl0B89p zO;P3_P;HKUAdK!RO|ejnZ~dxwo-bk94}1`x=QY14Tj@FIg|eB>Q<%<mzwe!A;Z2;z zH=iT{sc&x}S$&?PmLFpWP&e=e*mnL#3kWKayDUoe30xJ6$b#aFTTtYcwuhs5ScP@d zo@T>ohfiLymH)^Y*C-JfU+vpuTJY7r;|}Ax3c2f$O!y<$T4F;mwpPT3DVA+g>8SZk zcVRGYlwitG(pnW8fhF`-P-TU-da!`Zal;Dz?pZ>?D2po?p8D8GkY(HpCTs-tV^-X* zQx?}@aLaa1fIZOPzn^5noP;lbSWOTNfNC#a@u_LD8F^}XXIH~x`f&cq=O}pKIR)BU z0D1Z{6vG;PS~g!#X=LvD%wu*nShNx0M;u)ZIdUjWi@!L>`1G_IwuWcqvEn>PGdjLC zT2jKrd9RRT`NiC`uGbkIXzIjueU9jvAm-jbgf=-y3~I;Shho|lkwd79uzcJN$$ub6 zjZC*dBdpkMws^k{7dw`X@Ux9jeBC&tBe7eIRu@1Jy$ZdvPn+5V<Me6m91x>b)&v}> z{ws8zjXVCf&Qh&e>tktvpn1*EPsQQVhI@9ft)OhDa3>y;0YsHU-_pkHjGQ`{v|3AS z*t?dvQdIz1*+yPWO?ywtH5(zPyaJ6^v?|#AzFi<!f4_YY&*!^cbfr~6FmicqJ5+JZ zvoFA!ybdiBZ8h~d#);t-hv7#yK0v`7?_A_28YX%yLM9hc-%KTh$u_1HHKDj1x|<Y2 z6q@DGA4v|HmIum`^6pT&9LJvdXPmEX0k)Het`HYv4YXJCef#ME)Uo~Ol7<?lr?ts` zsDo7F3BRERFM+CFewHj=J0RPd6G*W=XREM|D$ITva`Hb8Mneaz*q*5iuZGCqVr0!= zk{KTRj9{EW6$cAHQK*w@emj>gKTFjYlf#02=(A|m*om|%aM@Y1+AwQ*qsUfjt-qf6 zn;d-P*|P8aght^vf5K77aarh=mD(a$10}1!LkCUgL%$|#2~w_0$#3LBwS1pyg^3J) z;^1%QB1khoafq7HVx$Hc=yJfA?7vBv)`dVnKQ7SUnK+jtW_OU6CR`gHpMN^tr;jnF z1vkKCgTRmT%wGW7DE3hPh#RL#cVf_i+Q_we{CnD5p>tx((4Z2wzyBrKKR3`;{XX3u zDb9<f;`xfC`$z`vdG%fMcbGrgB(_QzRKS0PUXiQ=UNwBZxSJ??z`H?yOt=a51oBS? zBM&(O#wmyV7@q0D{pCmLC|YO0yRmZS8agoIU9Za1x2x9es&{)uF6Mc!1DUz%ZPZ7C z=(Z1(W|!*yu;OY=`#bi^+o%<(4W?C%jP5}f#lLh>|BilvZEWRF(krCSaBxE;ZKtG9 zusXhBW3NRiNyF-YiyHYw5FNlx(eB-5ix}f187wlUn9RS^roMQ#vzkdh3CZO~iE=~# zPs=p|vwtsx1~-$x`n~8RUC;EbMUVC01nzggQNwC+XwRWp@dR+WI#so{c<QT*@T{Jm zwMHD!yCF}0s{UwWTd-W23Tq<Bb_A^rioDV{v_xJxEA`q)P|7Q**{7YuZpZ>jydr}s z4(oc5v@2u<P09_EO1zsZKEoD-5T9rt#xlqnf|2aE{)`7WS`&NG<4f}!fJb9YEedCN zik11?4Sa0(cB8`*7uzTG&W8u*lGSdHi%&MQJtpzT3Z?js7UE8t>~>U$pZJcZ{rpej ziR)3$K9jAT9bw1#&EE^-I^u7m9I7MfzZRvkV7dJjI;q@VG({VNF5kxb9JQgtrdk^i zU!!yhP~x@H2Dz*O_I|+oz8oqhU#IDgQmpd|Jbz&H*!ApS_%??U@turL6j2u8g*coV zeT^Kc!~enuyVhnLbI3KE;BY#(p!hsw3)%%Ym9kBKZ~M{<0u7(qK!Qh56*MC^<dlYI zTY6ab*KLs7{w4fcTOj9>z135GB}w&cEnS<D)okF?K<>V<ddhN0NyJrS+)t{f{5mNP z7jNvk>M6fXimSo6Db-UVNpW~jLG0Y>DNiQFp(j9WaP^emU|fcXL-~pQ7DIG8Kry$6 z39eWg4Gt`YFbzcX^V7l<c9wmL>>E(s4`=^aJZ=<^nIF;C3gCUV0>S80M-UfgC%eET zjyAGA<hroH)5Y4211WL{%}^A0UWx~*5`pCuu*#udQoyE_8V6Ff3ytFz?JoY*-h>H9 z9jEoX8SB+O!cy5z-kuX*qWcN6pMyujD}6!qRbejslSq52U)rxk+9Hv*AUQ3j^JlSd ztdo=)Y~=yMqUEGeuuXuyu}zXxbgK<5`VBd~$hsbH1Lgf*EA5yq1=fA!ZbvD*&>b5K z&35jkW}|zPn&riZk@RyQ>=r%EQy=Y;@KS?=dWI4ywes^DL0bhi!vURd1!}$AIN{KS z87DHeT;qgI%L?KtKtD|6g4iWNwvH~4p}QfC|H7~Y+4UiQwgM5N`EmSx0#U<GMKH05 zW#c(*)=uXT?3PW4<G2{q@=fHK@HlnfxTnP-?0N+(dv_~T@jhSL2?Qu?a|3v30Nw>4 z9lVDa=-sbpv)_|j`!>bg8MCv^@bK=}G7xS%z^xAsh6z^4n&uA^be{Uexy?e5!F@kG zvzfhT51=AEKkfH4z9}@FsdaSW1)WA8Ic+$uj!aq&rn51Oo3Q)*xW^>!x+sj-_sSkA zaW5LFr`b<K1pn8!f_Uc8kqJE7(Rc1L>7Fr_S*i=^L~XvYIM1d}WIoq4m;JXRH0QK& z_!u;8JU-H<Nxo++dMf|rahS>eG#KdXn<NMQp|-!BG49b<G;QI>c#MkQ5<|osqtXqI z_O(xt$f3&q-Bn)KqVy`Sq<LTx&ad*0*V8@qH72kg)+4XT<O@F~-XON&8)Mt2LUst$ zSwr>u(f*44S^PDPX@~JtG61oI&K8W>*GA3>Ao7gDH3Fz0O`QfDw;5HB({$P9Y^#M@ z_&Rcpg(N7vDe+&l_0$7=<kmJ}@&ZycCIVrE|6VLzpN22fA`2{9v08p;jo3%t!WU!F za2l4WKz~=1KU;We{#oSCJ3feCwpiYzT49JJ{ds6<LK~Sq_<OrCb>fgVLhJLSX8ZU1 zdM&+Y@-G0ycnR;Acw7|x<7T9#7TnN3qhDg5j5pssr<5HIupY&@7n#>*fMrUvMR=O* z(11Lr1dI(1&q18GT$s0mz7^wP>R^Hxj}_t7wrF8UtFzXosb;gh!h<PW`QP@_qz)OF zf$rh$(nbOC_@}Sxv`b5c-*o+Nm?ypI8dHklDJf4EUV%&3j{){*_9}0>PB$<erufZ7 ze!kEgf$&r}f~T0N@%`W!W-}YAytB0~1o?{4CVfmzmo`X^6kDna$3r!2cPtZUp{5H_ zu(LfH%QaiE{nVzk*?6)9K(1-kV~8Hw^)+3(W2#HLW@@@t3<Gkdysm|BK&1f+jKUM? zb%?msH!K+MW-OD=TbYd*M`K_%MsGDmF=$7MXO9jw(Wv=_W)B!{H{?t`)0Mx;k}B;z z(qV}>>UZrCsK4uL)MTbr?d;R%RJN<hUhyH3n6eO}))=HGYIxco=?<2CII@y%MVET? z%AnIhgrU8+R=<nNMmh3eJY<Rg#;V@Km9y3IAS%7b%*q?o$k4;8x4l9|Bdz@dv4Wuc zg~5oev#(zAeT~<8A8jVl^-I(Cx1c<**;DTikJ$!ca*^-n!Xo@<&f;I|W7)skiPZCp z0Q*RZXzmon+ooS?I^UxXqkf`gHQOKDDb`PHoay}DK)LF!o#MEpe=EolJLAV;@l0~S z`;qQ6osagGCzdya`0R<f{-O!mVAXmW0_W-7iNGOrm@LGf0yY1H+78^Z(X+!Jx!&Sw zMR&$YnB+2@<FV3mu6V!E6r>s-?jUZCKwi>U1(u@<Jgq?JCdDr;_{zX@2OIQE+%o+0 z2Pjy7hxFgM(Lm6eVwK*lS~~Pzt_c#we$hzuKn_j8BTI!Yy!);mo_bIG*_q!6YI=Dm z))^pRda%cXsN&gBK~y4d*e1Mg5(rxRIYgmMr;jRcj!zV-wlG_B5MAfdo+T<(<TeC6 z1W<}JKlGp}G)N_lzAxzO1iH#sxFI3hwKV(b4p+d~R3rKR>i8Y)#0Tx8{!Q%OT_CCN zUHbg~i=N3xwX#{uQoFaKf6%{C%8lP)^7Ugv3y0tbj}ZqBc=nmjSxMoyA0tx)3MnGu zPmc*7{=y*W2&)9%L(GKT>MBpXxuAD{5SUvqJmyz#1I~2651}XCPAL3mP|A|;1FQaK zH*~nvQ(uZ6EPxq!q17b*`|B`m1E$3b$M1WjfdsiG5AX8H2{bn#6OTFKd6xHO7WF62 zj~K^J>)HIkwuH?u_T!q?#go0+AsGD1bIH5Yx%_?Ff=M=+G2421o!{XwI()J5{IzXo za!#bHPU^SD&9a4YTSUS~gJ1Bk_}yRV&6e!FHW9y)aVDR&`1M|G1ARR@-unMr(|@>+ z4R3_oqrQU2nKgOt@;Y1<p&i;?FQ@581FI7EY4zRJrLvq-)`G5PLF*>9dq=?29+>dH z##L6<1LbZ2j&@D_Dy<?2UmOpQ!z;E#FeB8ZuLfdh0U-x|Pt)%y`aMa%C+PP${T`#= z9^~qmycNGD+oBd_zXOUe@GK#J&GqAvnwxGW6S(J~IHp2ZTJ6+_1ic#<4pO~aw3P7q zK)hbSPQ#nkNH+u3J$PJxp_{jFiTg4pdoiMD<>Ftpp(|tTAvJy|mCV?D=9@?g0Kb)@ z2ZqWuThRWvQXC#7)6`sV!@{8I{T>LU_te7dAZr#^+dTU!DCp%|5DoDQB77DEndB>+ zFYMoa7VadkhdJo+fOQo^U5lo2_m;RX<`01_0$`~!Ii%8-PhW*}w6iu<^?r=Lu1HMc z8NWU)&?;ehkA8>|ar1rnAM{Yz44ZK1fo2NOwom)0w4veIfj8L`A2yxAWuPT&)P@y_ za&iqG6vZ}w6Sl^FWjaGkk=6V{uIa``emFi$UV-r`ZaZrSXKn87;C%z(z8NF>d^SH7 z#=*iyW8yP-W7iLT0`>sc?pU<sJt5+?s&dIOz_VMo(wpw$<siqeJ_o1il4!!@co!|g z?8~;&HI{gcqhSeI^-vAHu*jaj6*o~)a=qaw$$i<e*LcO|gabCeuQ!N%YB0|~iswH! z_xW}Y*i-+3zbtJGvttNh28tPYw_xn2c<)~t{|#V9Y_@6~?^sj}Kt8!8!8U~YK>!Dl zWqsKP^Fu}UMUYP`Lzw@3gka8BjT0RUafhEXh~aN-Iy-#)cbnp;S6+UEPOnVcgr`?x zJNc4C!jmGwO$pfTwFCN8fbP?K@uEtQD=$GOz-v0x?xO*3edPpxIaV`nNwQ%fK9)0D z$s>GPKz?I48pRxZ%tT?KMh?A|H=a%y2()3U_e5nb-v1fNO2a{D<hd_l>VV@b{q}7O zjBRH8D9Hr=dMko4yFVCo^l(FqX=XOZuBKBQQ~0Si+Aw52T)sf)Fy3Z5X2K`Y<ydy8 zH8w<LGbWL11^;+6;%WIL$tcg0gcy<VK=1WO4aNZiXrMGqLQSjuyL!Cnn-6R4wZ070 ztnvXc)*L$*0P|_7#@%^RERVnb0vWP5b0;3j?7>j}i<l1^?l%Umq`P!h6^w$Oe)3b? zo#+6u<Ar}n371$Gq<9W`%o4^?X)50X3)NSG_lyI%{W_JjCw(&i6#z4?kl)vGhS{WH zT-q#*MQ^9#(mH|H*hTCoLBR<$oVF{**JH0`S)D;ZnX=Lc%vnmECKvirx_sMDgW8lr z%9BM;SJ=kx?Jrxj<w}=dcDS@`&knYkwz&Ry4qe>%Z8u`L96C&AE$z=j{ns*ECuC1^ zRLP;exUbVJZ19npD9Y8=6VbO<Y(`_!Py`~tvSj(GM$`HF!@}?P1t<k7L^|kma_A2! zD6%m~f^G&u6vs=1N@@<up+zYuXn`dEF78re<{E=!>6z}by37(#^^Rqzk&7IgDQ>5v z$WJvX#**P>lIBwC{KJE_LH8ZvgA28O_iV+u2a*uX*|7j#^|YD#rd<|b8`b>AfOUh4 zyJx@JW)WP=FN)$<HZH$__NC>}LQDf~a&+SIu=gn^ADYN;lSLp_VO+{Ymv+=-W}~#~ zPjCPbRVUdcswys`7cYk4<~TS)T_FE=#7{MneIDL4$g&zx8442oIHG>G(R6;aNQ~%o zD8x=E`6sPQ+`gju?x6exs=73AC7`Z`-jMp$>Z_fPcMxQ^wMw+}6!b?*zQZ<pt2doh z@w&f4LmNzuWyvF^-|Yhx^<G3CLZK9WxV+K|Q!&@*$(V~bZQvxRMq^4+mMi3yI7ai% zMLv&rmDKzet87jI$g~k`%UoCiejZ39>x<21Y=|`~`5P4PM)@%d5GGh{!653jxN%xz z$~CL3h(vPe7kKB*3A<c#F9i6N8xtZc4?-}U7u|i*H0!KX)NH<%1;585<Z|#@=7&(T zKaKAA!P;Xln$DpM@nZzB-_!fw0F7U3L4?ohr1b#^zX?6M_XXHDgpS*3cmY*U;#Wj& z%=VMbIr6sKl}3k*H;Nuqo?C}{{KlyndS>k~#cWdXe*@kXo{GWhW9AS^s@P8S5=99t z?q^N@{CWUkQVY6|YIyqw^nvyX@n#UrlUQA*^L?GnMVDLgXlJ|zHNR6W$0HNoCiw~6 zer6ljAVMUD^*W$vQQ>|uTE~7zpQ9TcPN&E<A0&D<9(qQl&epd}<dx7lV`B=UfG*Ds z4^xb$6qWuO=x=T~m0qiloyKl%Jaadd=Kn=EztIFvUJF2<wX1ti{h+J3<sV%S@zkg5 z&|#VmMANs6faWDSGr3=9vOrR{h+eFxzq#?(>f<j1)vahrUg_kfk>5fG4{&|o1og9q z)#!WuO#XV$j`kiuC;|z1#i}pWZ~!{7M^ykEp8M=u_~l!n|5=#31pO1TT}^#tK=tQ0 zi4oabNfV!G1&-|Zc0KxT%mMXQ;&j5R{A3HDKRYFQ3-m$po{}F+#nE`<B-#P8Wa2JV zr}$=y>HKB9N<1d)*%y8CBx1<%3c`@bu)57WXFb%g4A0v|?6n({c!E#MRH~-BN6H~Q zfX82Mz~x9cZN3XZ!zD#kh|fPIKKX^b5dD^&FABfq+EJv&BJ=EjVRzr24Dt5lo8?Pb z2Y&9Wd=EPGkLEW+GafTs$S-Q>byxu|iTLa>z5C@S{)UG6F>5z~v~7rwqZ|d^iA*yX znf4Au8()o8ALyDjgW0;}b-@CM@u@}6=cnsUtaVp?qE@<$Hc5Io_#W}&*n==U--BGW z94qMZ7dR|hZVB5EU^^iJ?+0Q%F(-erw;uii)eLe9-n|1v5JZskDIJ=dch=^XiRMrW znTO)of_}H0CuAWSuK0&&3e@srhIv{a!UxwU4-HxYK|ZR*Z_9b7J>Q4}^E?gAewB5r zG%yqY4$;QvWAXls0JD7u1CvJsGm&q6uNTCD0@dDiVn}|$w(-y0c=i&CcKP#QNb(_S zh8r7cF`a+;IXNz5n9ipb5dBT@>;w70$;0m<3FklQZNk`$H>Cb(BHi~sfd|gs_MPi` z$44C61x!lXlP~L23*0>Ay)zjq#QopvNM>G$lJ+jV^Z5uFhtOTD>Up8l7AnRg4oM$T z1<M7fK(VQ*<kpoqKQcv)+-TxAqP)i!Wy&j3ro#w~v7!I|W;K5k45FI9hsp|#Hc<|1 zN<d#0zY92u-<>$iIsLK{RORvJNctARo>K1?eNaIB?9^S*i66n6HXPm-4#q^gzxMnX zFZFKJuYwRi_3jyTdh$f#gWpA+p1#y3ZXS7HQh-$!;3k$hvCqWyP2!7B^Zphe7uw0# zTvGIaLw5z)wjgWbvvPspfj+8gZ}uCbzpI96>ci`h9nz^YWy(fvG95jO#m?;?orTd_ zDtR(|8StLcQvrPZN{V-<Tw}Lj1Cue?wCJ}6BX^^*GwA)iVx+uc5IJV?^Y9KT(7GL} zxmEQZt^7)18}ge#3cjGE_Ch!R?j6%ygVu&{jsUgaw6OKjqog<kyr4RsvMjt_jcEC& zRdyQc!d7I_N<&j`E89?;`ieE>H$x*Xf9>SndO^&ItK+N6aO34^sM=pUKi`af<gd-= z_rG%n&0fsOvbAWIg=*x`-KT}=A^~Ewj3OF9s0E2OWy!5-<mW$xZ`@hn%Ln*)=i2^b zAct)6JNXmv(kR5!o;x)l?Mb|5*mqMBnVzFY(BUn7N0}PdXQ|<(b3iNl)nAePZ&br2 zd4A?}ual&8DMY7B*`8pyG{+w<0rq$#e3Jw4*&q3t>G$r^uMbA-)r*iRZdoHfCMWDE zOOT<?e-Ir7wX71h(;vQQ$Gegg8)Z6wG#}Zlv+-TB+xunzhyJkh-|wQ{bVrV#l`imm zw=KI|VXXm_Ik)%<3$=`Zb)$Eie%NR=71og7pyY2<ybVh;{1MgS50@^8r2;n(mq5u6 z<<M+YRJ^<7(2e*JHAKTIQe9pokIrtt_iH^(WmZ3%W9$AiE|gMehqaB`(F?ipnM1Me zG@UQZNB@l;zZX=Asi<<T?G!d-Sy}h-$LObrU)x=FyEq0O=<db|t_aSE1h2}0)xBu4 z8c}4`+px$=?#dmV{I=Ob2gQ$nsvtLqzJxJrPHSt!1BX2CQ17Nonm=4XNB%KWJuV{{ zm>?_3q5Uxc*Pk@bCm+Cp_cq8Oyi$+dB+;ckXjWvUjuKq!&8Bnz19U)GE$>vkopNX# z)p-+M2>Dq?rI*#9y-x9h?2`s5kmE_T7(sb*dSxYxMLi1J5to*pg!-cUs8Hv!If;|- zT{HwY0PVSghTwu948bk8$A<tn;Jv%GvCUTM{t!Ompeb&5*&XmEMxZeVfs9!L7`a>f zS#O5`5V}DERejT$5+4EWD$x-DCrtYQTjO^Y6?hx;%-&&%WhZ(?oq^#ro!9@AK5`bB z(djR`M7MM6T9l`*kH3At28eD`bPK72-9h%X-`kBlIDkeAhWf+0gT0IBRb%R@5XlzX z6t<PmbKw|sJU@iygyrN`v~)2}BOcb8itA-xFjBgJZD-r))_XdfTH_M-EpMaNiqj4Q z5M=dGVQ&`GY56IlW(y#{&F|f;r?C@JJPiV2ftt&H5`YDS7Q$Q6e*~m`MAb!?sgYY@ zI`%Be=)+~z_#Bv2BVTtbPR!>tF}SBVF+MRlyeih~^xZcrr8eA`w|Vx(jMDN3;rRW? zQ@9^^hb;~@OcuIAOu}s^0rs``0}(5+fp}r_n6b%XvS0*kFikimY?p$UECE*YN5{f^ zEQN#)Pd#2i?(a#=%_M%`YSWC36Q$#AVQCnmpjZ)~%|l0DbVWRh$F;Wd%b^7D9lSU6 zq~<_>#0jf~-KaEA^=#qe{)k-!ddPqtGN6Z%dtC|n?F`?jS%4;bI`<Dec#pz*xC9lj zkb4zD^la~yvt>8{=r~>oiRgMl2j*EQ{`n=^N1X((&r!K%_M!O3@Nv@wA!J@$2$_@Q zIKBXQeh%>aytw1I*gZ&gjY8U90JI(GyRHIlhd$ZgdL}{J9e$P_Torc;^6V>Roql#a z$fA)&7DS|JFd69F`_G>Xc($3&75Cv;RLv2dHWbRmt}vZT=3-*DeN}>jZ}o?>yH_Im zZIwgk3OtlUV<@mqu0ek~rqA;p)zk2{QntX>eaB*$w^^mEY19sZ*FbX#N36R{=Y{tn za(DQ>p9^ZFyh|uOPhAzq*+&5(7Tr1n@109v_T>pelhK<?CVKPr&AlYI0643-f47(9 zzQ_g1g$`!<!;_HY#;ka=3Fc(P95x_sqYE;B_ScBs1U8Xjww3mT<5YOzTpA~5kd@By zqwDZ4`liI9xhO;nN^(9>lGj$C_!h0D3BPv%v<3at9XK$+l7{vlCp@t^esuf}bPyVE z@-}I1m?8uLh(;ep;ANwQ@faZ36-24CWKJAZ1p#S`Q|(XhB`W7Vfy-hWKL>$nf<@rK zMKJmgv<Q5#2ta5C#EIOSle`G}uYozeYrrS2SK}vtPix@0_!@XQvEhVkppXtyh^-ev ze8sg6;&wImp>Qaee2Nf%;E9QTpX8V`U`Mv!_wUsFcKNZt2>(n+#ohREo-6POL}r~W zBVe|W*xJ>QqRDd^L>N3_MCfX;Y1tymMlm-09AHD#uHPU6R&A&X=_)1CCjmS0Yk{Tc zzlUFj!|wq?8`J=PA&@>7H&^^iz?byBKp^pz)3L%Jo0;Lj57DV%r6Y)+31t3^PK@oL z?*=NJLHuUm2hiBqD4v8$u5Y<oeH=IBEB?L8g&S6RwhTGXpW#!h8;~>t7~iPXQOvQ* zN8^(v+6&5!=|TMPV2}kfaxf|nUIRH8mxpmKjGKgCB*gd*jOQ3H05e-KwlhdyC44nd z&9Q|*bq_vd1A!D@DqMY<z#Y(k_*)*ZwhWvg)oe}75lxV4L{pL`i6#i*Y`v3|n4q%0 z2{NJ%98(%NOWy>gi3yUDn)qMNk3XXad)x^%;{<`Ue?tz&!oUp`%_xpwI9K0E(^F{< z=r7F=P@_d+eqb)DlBY?`PeaoD1mo@D`1auVc48dIIGlt4$G8rR+l_JC0WO*$oW2`! zFrFY26NJ;8`=91#4QeKMey#%+OrLLJz`;}B5(jDcsW&N*$G;N+7mta+B>tHQ6!1M1 z$mH!J!pB=gK;`d=Kp9^l0<-u(MPLqpK?LUUKZ!sg|BVPN;9(J1%&Xq)J$1)55k|7f z=ZP?q4?bIjk*x5tH+v7|alZ)D9oU5;jO>?RD8k66xl4qRSM#AFjO2zpL>TSK{N#UA zcsGVSMYsdQUx+Zec=O#NjNcyTZ6b`<JMelDM!kr?Ey8$EioYzvbjbQy5yqpse7OkY zF<u@LVLE)hScK`+^n4M<bJu*12%{?npDDt4_?oLCjJ9+>^}lH&S@@FHv})7)<~d#U zW}p8YeY$oSm6+jxn6V<pCSr0R#wlWsypgDha0Z!U63*m7#_#@08C%~Fr~)wuM9fMN zGYMikM9hmK1~_u|ha%>;BBl^x+C)sXi19(pdJ*%Gh*2SCm590HjlS*)pOb<hYsHRc zqmjsg%l|@ut%d*NA7{Vtss1&(@X6RvaC;-(Yn9%2(N4_{-LBN;#@<uvq<~pZ<ULf6 z1`RZZV6qI!{JMW6ZkT!wxb(k!VJT(1OKV#7L8|!KL6)DZ5WL|C-e63$`)ku<ycbaG ze*koN5}-lW9%So5#5eUkrOp~K8<pCWfVm!^yO0iOABedJ#Aji=mP(&8{sNn}megiI z!*b1B{DLZ0mFchb=bB2yR~CD^$s%$6wRp#(4~oyuihiA8fM>jRcDV0)H5u+!F_ucL zC6F|j2XJ@>!C0mwnvDG$25ZxQ^8cYv@gWNtB|gA6Wxam0n4nt{-`@Lbd7t~wfY0!4 zPWlYrdwrkZ3tD&J_xFg+ix2QM$K=Gv_dNB;G?xGGzrn|nzT9^P_=yXS$1V(=yS&aa z#g?I8C?p7o(+|a2n?4qAXOl&GR$Rh3j9>Q~RgV=fhfFEjmCzs63ps9AnF320*pwcG zU=9Xz^l1>x!(g61nZA4rGRzj_TM7R8r$qTt2@&TIa?qF|KCK=9V_CVX+@i{@AZ&}) zlh0O_qcVgpZiS!@_TU#`P;|}Z7roMF8*VXUw=g<o>vvDZ&k~^3dCu)57ZzgnA*OT0 zZM5r=&RY1TP&C#`7dAA4X7Unl-p4<39{+lG)jbZ!DKvQ%{?Nz#f3r_9hQI!De4nD` z<zzU?8ZR~~UPOERn8E)*4*HBVV54HlKhC^SaUs9yW!gEI{PNj$4*clIfkX0h7_b@H z{dOt__wH2uk!*-Pv0?m+mwLA<j=h9+t75MLx0F=Y9J_#jM$vrjOJ{4c{l7$$XWgw3 z=M+r4M8{9}h|fwLML_XOQs@?B%*b=ZKOYqv0xvfF&J;w@7Cn9Hw3u!>ReNuO?X#07 z{4!8iRnYC?03K0%b{)Ab0P+-#dHWS~zM|7&k!*85dL)ErC47G5&=cem;QVlYe8b}2 zTgV4h4powM=KpK&P2i$BvW4;L1!$V38wCZ|PQ=87sJJB4*c!W~iH$af2r9{B0ih8h zLZ`V`F>yf~67kB6Nt`T`MYB7T%)~E~sBsbpTo8AXxJ@=m%yLPaNEWw5z5jEn>NX8R zChs@%zIp%mP2=^{UZ<)~Rh_Cjb*fo*ZKan%U!VaFxaz_Rsh+n9vzYfa%)313?WW#? zxVMpcj|_TWPra3y%scQlZm1sv_u))Qqi_X;ZktO(D+$MVupMvHdu*CN;4%|d;OEw} zJA+}T)>D0Z?dzGSYoXhAT(}csy!bX1&N{lDmQ;T9ZFWtw_KYwQa~Y=`aWQqI>`ev- zz2Q&AZt0$uqyCoDsPjiTgxfS{pfhO1aMPBr69P9vs--l$gTiQe;@j-b$uOmb@97Kz z|690!FL^NcH_$sN?4iaX>+wB3?qPOH`?K(H@(2x~J`(0d>0$O{B0nmm_ho8#S6Te$ zwM%0B=XGKqDJ<~`sE1Kfm>FPQj1g@^WYY^h9{D6c&rXi0{z9%x{VMt6=X;Fs{d2rS z^<oN(C%?oL7Dvn?{8{XMRKa)K7b~fr#APSfhoJ_e-#ki)Mldqnq?Z~MMHY9n0vq3? z3H!i$CTtD_(+YQCD<FX?33F!fqZZU;McGhs88&21GN#Kk+u89rIu%8t69}QI66uLM zrEpvfD+wB&3M|pT$yM)*KUU9PdjGk*AK7lc40knWNS|a$vONC*yo&I(pwFrkNmlI{ z@ml%S=X$KJ9naDgw~Mr)Y88AnGuq+5pk1^V{!d=I)3I^{>TpaQqh!|Ksd1=J0QaMG zhc9N(J2&#^tw^lk6zG-7o&iQb(<Z&k-)cZ&vad`*Nu8|{dkq4gr4YmX2eg53e5XPT zXa11AX+;k1`1mhq*sBYOhUvEx8E)b*e91yEINrim3RtUcRYFX)Ee~A~kHA%qx9~+H zRJeD+EGA-Tu@{C4gHR%1F;|1)Fj>-S#Bt2KKqro~KRBgkL^lKQo#Hstpcf+Trmg$^ zZK;8Nj<XFYZYo??pRpDl$0se&!CKJYxZ7ddSJ}sZz~Hc*_gyLKZF}Yq@E_3QZMuFg zWv~5AlR-=ZTc#=F<1tF$R)^`;3%c{X8XkNbH?bg$UK|MjYs7I<lfP9f7?$Ctd-VdS zGVyBL#rZ?z)6b~N959?f#qVP5E1QzFXO8t(&K}oYq)nY!cLxU03fi;ByE(mtd0|kH zB<$8jU5~rieYh^iiTBZm4AhI&*!RXXWYA~kDg8?Cq=ngl2}i~9G1FJmTWh=JTU5E# zP@dqtbWlDS#&`kYRu}_MJP#y}oe+-&BkeVtaXBU$ZRf>-XYBbJp|AXQ7}q$0x8OHm zT-$bG5Tx^b7$5Z~=BUTiU*Do0Q-ePW-MjIu{2;zG=fG3)`h?2osj$YLthpcLO=@x` z8BpLY8fMKS>)4ri@S(%t-EDR^C&)Lj6MHVzP`!?G3$xaR9^LN_G7FDTX5sVakXcx% zG7Bd%8!rH}F#L<>LYM{T=Ojd|;p%mC>L%-Yn!5X}W%w2V?t{W8vj8bDZXpWX?!QDO z8e-+Q*9I}8?7`z<T$EwQTAIaEYkSJ#FHeUY)$>=;QyF8x-*0pz`hhDDt^|WY7yxTO zvwQ@|bXj5I*`Me|0+{rH2f!!E`P}b6iF#Rw`-!SsG21`k%7<`=1fTF0ieZ?RQON>c zbcmMUiNYF-Il^2NQ_Y*fRRv1MIH|@LCi15wWZyz%kZMu2iGRZW2dPfF71ZnS&2)cS zT<jnE#)H(Q|1DkQ0h{@~CVX9~t27|nFtuh=WHLE2LTVR8Tu!M$N!XH2+11{~*r@_> zyTTj~@_R~OZ^kPpbTboWYu;Q&`$x(4Ztg#3qsTzJ`k?h;p_kjXQ;4x!uN4PVq5opM z1Hjv*tb=pQ27+Z$5bwzME@P+tsVLbm4yE$)ri~HBbvk=DhujpwKL^jCH3t;Mw$oJe zBw+}rI;Fa3Is~8BEJ=0PzFm|eW$LA!kgDl-4Q^@ImPmCom!0kiH}i<LonkLn;WCWu zvbFn$*{u~C;Yx`**x4!dSf$G``4GJQAO4hjxu6?-=?j!paE`SV!vpvp)S1oplqoX= zxJWL&lJNO76z4b9;{D0M^ZQU{V|QB(d!m`?H|SQc!27_ml-gphUPnk}0SsQQ`r%{N z(PKaVmxECN$2C{UbD_YZ%RfFs5hwU3++B?tKCXsEaU!g(g=nZSF^TFO2}Hkn8bR2b zXXst7KTM;NpAffhKm;sr`^deY3^Me?o}@xqy!UmZ$32KIMHTR@w8boiF}QLrRct<7 z!Xtd?Cmi$|l`#6ej^w;Zn2^t8KsQkl?EVRVU5e;l(+S=F-JpwX)442)@I@$Wv`(QI z7d#Qfc>WXJV9dr)es3v3p3cI^*9M~n?f}$B*<yA)4X9t^Dg^E&rsZkOC-kjPSlu<A zaheS%T_Wktf$L-gPpS3yJzixx{WxFS&^f3FJ)5{p?HG?|J{=UMnkosOvy(CZqA}4# z98-UDq`dVRyb4e4Nzl>8@aKb00gHI{SpRp2{HQp`L^HPWVHmh;6~R1Ja(|BOT#{Ky zcxejZg7G1W=}{}Bi)*I`I;1sl;HmCv08%lVUCPjsDMZ!Rf7!bZ_Dp;iMLL-=<_tb; z9xV@9$28hIq#bRj5%0|?S~uXzUVKP))rZ~n6i&Z(Q~eWoEM2Hfkp`S|p$ISG%G6S) zNcwZ^X(^ZOn8}aVgwCWJG^SeAdf>kg>chs0{Ujz#9V{KsD;;d0I7B(?y&9Ax9Tw0j z>Aariu0`3;Gc350P?O10hVD-7i@+Xm(LzC>iA~_;t{dX64|^Ggrl~1_=jP|65nJSE zr4g>P0a!q0HeS@D+<2or(XErEU5%|_PMz#T(VRe%3*Yy`@?e5c@M1`$%|aiOI%%qX z3MYnLyiQP;Q5#+<qOW$<PidA*k)G(8Ee!91tMDjbG4x6Lz;cT}ObaI9n4(*77oXNs zV`aZ4yMegtEKT-Eqdz|y6`SYL6aq&YzYN34)>U{A<$?Gf#@yW~!`IN{G#E6%zql@9 zwK+`A3r^`2hGuP-_B1|Gzmt#ti;_!_g1j9M)U&mb6t?@m;2b*)r!|X%Dy-e22e!D$ znS2#Yg5P9P#)-ZsVr19+p3t&^dl*hpeeUBd+&=q^oK6oCGrjRtRaRL3ed>vFs#|&k zx7IVHEAVLzSTCNfTTH0Lko1*PI`68x!(iKEs_9KHEzC$%5^`NA7i6kI1#bSui9k_Q z^b`CX_#*iA+`F24i}&uzppz*u^@@=1kS^3Jrr-Plqd-jt&xBpJX43-?(}diS!E@oV zp3a32T07)WP~2fW7k8LO-&WbBDD_pEz#|#bKDV@;3*8(Hk-1snLJ0%pJSuRcY-sxx z?zYd|6O@#Q-9_-!8iggOE+oj}@9si+Q*19DCf{6%Q+0*`a_F2qol389p|lRZm13$v zzB0>p0AxU$zgDnGwNyPX>fFHpQn8VpC=Ih6)}AOgL2t3$KbgL3#$IaAl+LsvYvfE@ zOvLLtqJ~7Hl0;l?V#;JJ6+YlH3uv9G{40Kh-)-I{OzJiPhBoDvj4W@aE4%SglxaRo z7h?(z;#uZ84GM8AOZ$lFnppcNzr~c5is#QyR^iTz$JHTi{A((Efj6)x8QT_q4^y`r zAE0Ou#%Gu|8Z(t`j(W%6P`A3?;cv8nlS|pgU39p`iTmBg4Aj`@wCxu5I#YH#q(<Dt z?YgF>{Fi$7vJLmdYYtITavejy>Po~6mUa{5qBT7(r58TTm(pF>EF?~P-j91ZTV2a2 zwJvyrX(X?TC*qLc`(pAyMNQ+jP9m9Z)5a{O$xhblU|GSXCxO(IopL*Ukh%$FFa-n9 zncj9xIGA#*yM^F(b*Xb152@ZYp5Q^c5m9xkc(p7(++%T9KBOqLY=MDz5^#uLNL{d3 z&Vvy&V1NknBbU^%1k!dfrW^hnMjV@UY<tgpE0w3j3;T8_Bcl2YoPffP+)p=bTwFht z6tnYw&VxteLO}>u5^NciIe-2#k1I2Xs#~h_{X_qR`Ao^#z=<mmd@IaDF{VMTw1GE* zgK(FeqNl^-Ob9XngFt;w!G_B~l3ux;iHoo|ct*?jqTRM@ej>P3k58K*npjiHAL;0V zARM)P1zJ#5SiRG#=~!omUXkqfy`ogQ6hNuyH}M=pwmy!NcLT};(z|n4$?reN4_xXJ zFO#?aX0@WUZKTVlt7#GRTw7f285Vtr{KU^he-)w!?!^MX9lV7|MZJn~qq24zOpqG7 z`IxLlQL16(3fGw;#>?ps2Cs`+!6+r7vY@6+=@3TU`Z>Mib-5mugx_KZ`#{jaL_g*O zR^*IFL*8Kt(e{?g^k;B3*h^V-SYFAC1z3bq72uV#>9sWf7PecJh%;d}6WKW^-~Tce z3A}MTb~)E3TIFxmFhxAe@d(wlQEzR-v)!N+mNPkDeLY}T+b4wI-%|I(ZjesVCp8)` zq8`%y@<z)12!rh_UP;Dj43&+dey*mPWK^|9w&3PRz#{iq&8w0xdLURe3x=WDvJn=f zc2?V~sHf!6J2qn})weEiLk;&9b?SB^YDAZAiD$Kv{&#j~a5U=KJf|^jWD$fI)5cZF z*wq_b4N;BVNSnE&SNO{;JG_^@&BvsOrEhVy%Erh{sSPH7`J9h7q?lyA{c^3SZLhLX zP#h-@_-&5^%c$Rk2my6OXJd^QHLo<fmi<J>n$3u?%fHY-#NKY00g+se(zz#`ZZkXd z(k;=d?p7-@fo|!5W3$H0_C1DC(W%IA+E-Wk8!q*%trdmtLN&JHT2j8GsQSsu*z(bi zMastErJd^4(9v@V$}jI%LU$hMAjrz^M7(MFm4rPLk*Ptpg3jJ9=^&*J`P1JpHZ&VK zi+e*8a-#_9etOQ@F%A1C(h^Ok6fovpc`q&D!UVPr0V7wGoV=RVe>S0t2pOiew<@aI zwmh64^4Y^fG@AU~Z*l1z_;g<vz7RKesK}udHuWBrDTML*ZIr!mO7GUqAX379pgG51 zsXX}yS<-oDU54Hb)Kj<EkWpW#*xsXp<kn2&BKKioxUv;CA55fzbw-DDC<7Wp6G&1L z&QE}jkgy<_s{dRS@XYU_uy9>M{%Xv)ejTBLh)ZszvgErQDf|2f6l<aonW@`h+bf=u z4oFQYjZR&&vyO$8YB$g*+fn?y*+rvtg#S(r-{7pH0R!=np3`<<aT8GX3-oElrbRzE zP=nyBfD^)(@KJ2rA@O6U^d~ABY73w=Qmj)dMY&xe5;8N@zKq<ntr^#A+uLr}p=HMs zx_G;pTJ|k5(&@6zPM@opVWw<y>;zgZ{*aQ6_AfSTeeYTC=;Nx-=p*dG*FbhUR+`2c zd|~5Un)wFy@<-rvdY85huMwv`g+*DCLSwE{WBMVcspejwhK|U4dE`&C_|6ZqejO6Y z3nt()vfXL>-c)lEI!0!Y-Ck0p3dl3*@EKE4I$UMYJA~w^l1AXnuOH4ia{(nbA-Sg@ zxn1F0O8on+Y(|2jn^YFNi3)9gPXl}LCIqXJEEE$zL|I%RsN~_`c=oi)546SWvGne4 z3-sdn4k^@KSVwczV*Eghk=IH7bW~64j5*hJl0Oxea@o_~>>QGbYz9lxA$}^%3}TmI z;46gvq4K8Tv>?JDX@*|Pf_`%VrrA*cnd4Q#(;&Y+auqVz(>fdmt)jxHG97Dva!Uax zbj7GlDcmV#$2+0tI;9sF-JU?Y4aZ9p4r!14n{Tm_+igvz8iEgo+ja;ZcfDHaQVTxE z9TZJ{<6E_yrkZyzuvHHP-aw0Vq*Kt9OhKWGJ-2gEULpY>^E8bE{~7{%jLW+zYhzY= zy4=OlA`7oN<l0mrS2HG(CgD0{zdTCf!mh(`u`#lYE;g)P78^avxN<q~#4;>76K>_Q zuAOCEU0ldjmF!+kn{aQ3aQD_9f2oXX7hKfomLl^GPPWqApPOvA@yT|A{OSWepa0$8 z^JGh<6>+}Zs?N7`(PEdf&9(1}2~-_e$CUd=d@SWg$!>5l_XFyb+jYKuoV~YbmJ=UP zwLi2iMDC>9`L~C9NdzXxJY!~Op^h<MQ(*#!^buaQOO`j?k2gxx64R?%yx99|fv~=! zO>;$-?Q;{VQX*R>5T@(+FM1|SjgQD>;+8ndjN>JQnpcqWtR)(kbp56KaJIVWFs<3; zvR!`;Y$D+KjYHa*X*-Rb=yYHPK6$P*xYI_6r<I1Fdcybz_$mUmDT{;Oq&t_hfUr=r zMzg%1K5HLA)e8D|!rYueFx+SEx{=5Nd+9lQ-StcELmg+Q+0lo?_O+1aP8+@u9EDW5 z_$<3lcDMX`ty;%)lQyWACpGj+Z-(unfa2xHsUAz&a6gq@7)UeNDKxq3hC$MUu!Ko0 z#22+RL=+G4JcNK6Ie9Nu+c$ue@Q_Q2#g)({N6HR&p^QAoMCeIWZeXAMw=<Li`njYC zNA;pGGJ&aWby#l?Bc_^1DTYvZ`mzf?7k&Lhm~zS`R2_ZxI5aa}oL+_6McrxhAjWc9 zv1eVVPe7jX0B-GF6pGzxWv7WS5XkW~q@}^v+#8`g;pV&2L_I~>Rd`fY42Bx<T1<Yr zgCxaR?!{Z_w6OO;bzmtM1u6lRhz?ZRe5g~cuIMz$sv8lwBLfx7BV!KOE!LhrUO!oD z+htmXCl2nyhK_99wg!{G9CsNhK|t3ru^db_xN>$C9(30wHv_dc8z5b%<~0j(0|#2& zRI`#(sOAm6aB$%R>Dy}*rtxj3P=>xIURRVXVA!RDuKH}P>^jD%A-+prkk?X4g`=oq zKIM>0mz(T$uDI5vY=e?ynlcV63H@%s((Dvt{d*O;)UO`S;HY|{mQ`~UW_ScFfGbQT zk6*;WcAvb1xwO4_F?dH-)tAGx(g-)n<6mb}dA&;`57-pE`!?KFKT|`;m1epAXb%g< z&#E!}E_FrSNeNEp{IVfGHf++1!n2C$)qdN@qEmi!dFc2+83aB){An4gY7#C#DDQMG zibroK$(H6bh=ZwKM47JkXvD*vHgI;CHbxcO4hUmR8}U?QpdJWQ*>1Ov5gs#b)R{Kz zZv4a$)oeQt^Im<r5_rqBsnK>$pvp3LQnRTR28ix(azU*ZQ{ha!lZ<Nq0ukf32{A6E z5#LP}zaO_v)VtWWmohYOG$G2+XX*dXkH(Is%G9h}*5f3xwwlY-3`X(T!?@kk;*zx3 zSk2W|B5a4?^73A)fDOw3nepg6r}F@v=XeYCTeu1v9nvvmRmS3^iMkMz<m;C4Gj-iE z^_Zw_a0ES2hdy))7BIH3H8pskeu6&x-tLBf^)X2fAh*U#Vg4@$PnA}ETb-^Uc(A_G zIm)meIM_`PmQ7vr`^vkk>CyMI)xlZkkKiqxvK@zh1*Y{{Q|)q0+;&uW*ST`hD63;L zeO6VgI9e2kY3o5eElWV@*(hl{)ztH{|HLJ?^i`mU+n;zR;IJKYm?j+qQfRE^%*-ya zzkFSFa9hMdjoA0wCLjW<C>KFDIW_WzBltu@jKfZ)%%(~;v`p^0+f(hTB~v==*o@~W zc<%3F=d~-{sgaIx&8C{)64Z3ebX_}EWDzxz!@oyy=-$t)pP_Nomz;I3aHd8&$0@>W zH2|cL1}O-)*p3TXD~!Q-y7yhU&02B}qoe`u8gWEOoN*XuAjC=Ph{GbBho~55oZ2wR zFQhuLUq_GPJnFVlY^(nuPPm1+$*H!Zrd8YYs89e0;|DhB=^GPcCMt^VD@eW_)4^g_ zn`#z<AE2W()!=Fd+AP*ly_guqh-!DLK_3XKE=o20<SK*-=c6p?^Gw}NDv9N`$tM3e z4cErwSgB7Q-_KNI#DnQ^JB1kf{A#AMqb<O<c<e5v8D{><{+ad8WKFfzC`M-bcWB!f zTi4q5Hb5v~d$540CS?PS96gE&DL`_(xbLOXms5;NLfS}bx-Sh@1%e1g%)U`kLJQ~; zuB?8GCS(+@wy#K0^H|BQ5w38KiVRH7w0$I+)L>#*lg=0z!^w%OM1oeQI*Qdmkkc0v z6h$!Mn|@&*fDzJ$BD-xx$#&CnT(|`WhvH#p^{EX+VqMYdkphmCuaOW;wYc+aJ7ubo zah*#KPBT-EpV3u|hD_b@w$~_!e>7nB|EOP@2*~<+gSSI>6h^#B*0+dxtcD0DU|^hN z+FGMQ8&pZWtXZtiGY<bgrR_mfN!4K6CK_CY+g!S1fjc|blMS-+|EOI7Jz!DXN}XC! z;0l$L=KoPAUgkOuQ%X4&i074c_WcZCRtn#hN52P41Yld;(p!|nccgsuj_j270^fq{ z{FryC1{r=>Qab{*L;=cul!VgZR7>3bi|{!!K>9O!y&6V1+jdudSmk&{nZl8_n|`-T z_jTQ(R972TnC<8m?8-uHu_J8;>4A8s)sG*R1@-K|FG#qiP5R_w|2d%D3=OJk+9{Ze z>7x=_N}lwIg8Ipqf~2c0PBT-|)zftWlJ1Y)k?!Uo>Eadvrp0Nu?+8k<u}Z??>u9H~ zMHMATzor`0O9|w(%GQ;JZ=!`OPGji`Q;X|TR<cX7YQ{*&;Phr^r!+O06}hS70<)0L z<2xlKh85TKhSdgZKi95pII+M0s*@|;0nW(C5c+AHq69Nf2t=#yC(ykvg^B{&zBDcW zGm`z4-I9GYt7%rXl=5k_sssY9g4c=n%ZF&oU%2EnIX`zuI|8Lj!i*H$mkNWyf8@PE zi3uk)qJUA`po_R8J5LOAN?!*4jB?B1*M<*t0xN!v-0xmGU46e$jT_3T;0@`>g{o+5 zUI;VKWvzRVdw1Z(`4!haGeF+B5T&l`66N}Zp^|I~^k%y4C)27=aXOjMe=$zHM=0HV z>6XrNvG)Osv5S5-IBV`_RPG(RvD-pL*+$5>FQm$1u3y+8XVyvmpggsTY0SfOTxq+5 z9Uhq;X@I4FiadzLK3f%357;Gk42vBo2TnBMV@07-^OMdvEvVqfiRTT6!KV@x{2U7; z$bYU1Ho*2OOq!{#@qbL!qh3S(A-@NzdcyXp1^+<74}ZVQU1v{p)wv8aIvt!NQ#eL( zyk70VCH(ul?CTT3rM^N_SM?<B`5&V>R&B_r*(Vt4sx~_|ngbEQp?jSx&m!ZREB_&u zs?vz>N&_E>ielRGg~^w2wu#syh-h54C^;8Z>I%9H;}5vmjXQ_f0U8`bn(>&e+ICRL zP1!Guv+Wl~$*(V<`i`O$dF6u3RL;;mpkCI_r`tq7h2x-hE|7%Mt%3n^B#`6Rj=v$# z8_+qWAE7_C;^_1i-IHxI3)kU)L-4;O{Lkb+Zx<z}?MLaLX-#9m?2wuRQ4VQeAY9rX z&`JlTrY(>p>aTDO*(TgH0asIkbppQJEnGW+;IqVoCg6S>+Mp8&S4|+{IC|Q)3H{qf zDkvmzG7yK-qa<K_8@acD&LPQAMFz*)*bFEXl3h7yW!Tkaz(BQJS(A*LU+b$K^%={c z?^2<WY$%^y=;JVL`MMwccgpPFt*7pY7bF#3X+%GR8rC92puK+}3M^)UdJdqTa^{Dq zHWV+lTp?%9SF3vPe55m^0XZJ4mb9&-Vy!h)Z-7%m-D%P)E+4)Kb=JC*^I;~%G>7e? zvJkj_QxawmV;fC*^!>A1ToJ!Xn_Aj6q|w$Wrc*A!Uehk5U7jkSd3G>Onx+fsvqWP; z6BTW)!YFtB@YIE*i+<@$$+?r@)tgI7!rfQV>F)ucMtKtaCt2I}>A9fprJ;1<$YSZp zRX>-`l{6jcm^?vb;(>We!py7b+Z`{-Z35OB&VGU4<DwzlQGLK3i1eS+iFz;^a4D82 zMae_)@dTRLeZkDwS{ZV58o#3%V$RMLf&rL{sP6HxRy$TUCA(HQlij9Td<-X}=8UOs z8*(}|KL}M)RED$z*{c^L=~0{$D=SGZ!b3<@j!uMZz~%J2Fr>Gk&|*}G*s6WSqGY># z_&Ws_H)3KnSo(=^$p1Pa%GL<>>|!J2fZb5eh-3~MXdx&TsEy`L?C-VTie_lo+#!v4 z+2fnofHtaKY8uiwf!G0qDHBi%Rk#jp0EU81ON11#0Z0a$p3pZ#^h6xCVhtUI0)yYw zKrh22fP8v6S3J+04eBt(I=!g|aRDN7I-skVYG1)!4{6s>q&?h3vzu!0b!jwK3yTmm zm}(!;P-gM|rF4tr<osCwMg4rM|6&*{ZSl-?>nfT9t0L)?BL$W-78<tMREw8ccR?*H zmtf|^+p@I&p>~$;rbqBXgIZnX=s?wfE(+GWlMRFN>~C?(RhX70+_knK^~{Aa(|PKz ze<Na?v)+EmxuS+5(uR+b;4_ZS36~ULIr<@O0e2zi`+`U3(obzCu%L*RIE13$kPgWY zMQ{zI=kbLEUWsi;L@JhE79wD?otl3S)Q0K)3-~hnMZM{PuPEBAbk8&^>}BtdnInz6 zs+pBgw9@SstQN%H@s^He0Bj>fhGOfT&Xk?<v<<w>^B}BFcG^B)`T<`Z6h_%szQSf7 z+6C;@pD(?<8`uqH2CJ*EcW2?mOv$|y=%l(R&bqWwHaE0J7@Todyj<WGub>k|{~o%Q z+hDMS5(|(9N`g6R+D$c&5O(Sf{r=7&P#9-&_T>W?)%6k_yrB3N9b0KA3AYSk*9^oP zl!U`q&_U@tFYdqfM{QD6F!o$n7S)>vs7$IZN;F)8W_=cxNNtnwWmPQZ9$L)vYBBdi zu6iTxW<HsWJ1(weJ8&lHq7zZtQI}1pe|MeBLbbW)`CZ2pfBuJ5?NaS-hv|0>s9AWJ zZ1MJ}_4xV<#uYI+wwmN>8mPhGl<eo|c`wSy48tPZ=}fT)FFE1B!ZhE`M~0^zg1G!Z z(nLtZi(alm)Ha3pEO%k)f&VS6WRGid*+V+`2J|SH3QSS?VPJ--rS^;vEms0Yb*c1{ z1jGkk^R7EP?pkL_EkG4q&Gc3B<cc1*kZv#MTSzl-*XS_4vWCr<M}_Y*C44hNK4@Sg z-4QpEfSWz|`X0S0B7YgiD8r67LW=L<(}R3FHSxQ}>YYzK3QD}}aNtZ9yYwlwxukD1 zZ3mzw9x3m9K+v%P_{uznZ(Cnf9%daSyq9S^A{=l@+Du!M(B!nH3XNNC$B^@ZHQO?h z((QhibWSdg4X%Z4O{Ur>so|2TmafX{XQiQ-*YuNo!?uZCRzSBAYjNlFsH;9thZ~8f z%DLEGlc@$3OF*-gjU|M?-yv?p@vEuxmM&l~@0*JoM?1L^@vj<s2=)S=9Mvz;24Vm= zAq-`hbh!Nrd@)c;ea=XEExk~B084unj5+3L9EbtkvxF+ep$~H&kWW)(bH}Jej9m6K zErGi}KMc2khnEKnS#yA{9aJ%(O^rRE6^m#=vR6Kh1s)qApDt6BtduXDk~OnlKi*wG zG<!B<PP|!?KG}tD5FU_A8hh9z{@dLs#E!eww?t8i2z+_@OaZQIPa0rpj2k@O#cu=# z$@OJeZLGhsH%FbY_Ug+@hY9?Eg|VGx+N8cLSJa0ntGb@0{LFnle!<|YF$!+>P1Z=? z%8lFD9wAbFHn?f=Ra^PxZES!SCb*=JTq(y~w&SMXG!neRvThJk7hb%rp9Q!y(*w_+ zsPZ4W(>O}rHaED_xM?mjmpwj3bQitbwFOrTkm-E7Wzp)CwrARoyQISzrmS7y{OYrG z`VgXBk1<S^^bdR>FNT!;)-W+j&Y7!nWq1=ACO?RS?{O;$rw3x211UD+MS`0F$H0um zcTf#)hapf?qdHILqB8db@@{;g1UbgnA>!F%uKtSa>~YkGh}s>8%3s~BW+W?jD@-~6 zcl}`!)?olsO{_xI$7RyQOM{7@r7sb-oxRlc9D-j~m%f9}HtisvQO&ad?vRymV7gN} z2#KO_CLs3L0Vp1e;S5T`{Qm5vHhxWAf_Q;_!E5TIoOF9lz0*~I&^Hp?g)op0+&vF_ zSF^+4Iye(%pscwKc~hk5y^~ftHP)L<8*kSbv<;4BC+JGXw6(?Y&X3D}q^w>ZKwR~q z#u?=Kh9Lwt&w>ybJlCXZx5iLCMbhtuS&vwkft^@2fz&SU%c;9IkO(%7VQIju`bVR` z##)_G`+*p-8S@I59B1F}-!PQGq9qKGz>*pGT|p*3dP8ZC6T;LIMcLekuG6Hj*I+SL zr%~UaapUAb4-s-^gf637=`vbstDmfQ*3W_U=2_>;Q?Q!t?LV&(Vwc1@Z2Oi(P&t}6 zG+D4twaZ6J=pM?eC85K-x}$*W=bdw4;s<t^Dx|Pl#d8j8l?Ik`O~k@ozW8eiA*yO> ze0t%L3`q0#WUn+(Uq*M663TFaB8)`EvW0uPay<G5;E4<dpqRbN9$3eGh!+I6Yw%p+ zo&mV6vWZF{G8yyY##UXuJ5gU;w<`HH%6;yZzbHY<WxHmS6}%t$=;L*XF0OCRUHE~k z-lfm1&(-Od%yLV+P^VV?z$J5$lwg2taB#LQ3;3BVUHo>(%1MUxX3@AplPPIkb=p9L zeMOqfZ&aYjRQ1U=1Jx1I7?Oi?+$mwS!}eh?C#T7M!fE?*NneMwgGa}RG`_46Pdc{J z!_(Y3*i~00qaqt<f;ubSxXZ>t0J#*ZrW+?cdPy2`vuaq&Sm~7sDz}5o4!i5;?28gD zO2UP{NNcOOvb|P052y@k)`;5D^pIb`=f9{G@fpjR*^08yc1lcP5(Rq{CE;uz^*SEv zGp7U9hv-!J7PSQ;>6wpBMgbHEr6e3l#78Wd@G0X=cO(+3Yr!PXEDk=1g1bY@cC>~v zhPW4J&zW)g9SSMziYdW+8dYHZ{dHJ7XHZu#Fmojt^~KsOU{mU}rcGh@Uxz!+ka2O{ zB*V(Eh1X%To?9`=i0V4(=*GYqtf*9+Lak^Ti;w?F7nn4`Q54_zZ#UF0iqN<u9n8j} zEbZdLu(T26nqquhGXlM?#2do$QcrLSS>sU;tB@IL(=n9;CG?psU<(}Yv6+0Z|6Cta z?aEHOM{G*B6+(ju7`{ZF`Uqp&td9EedTi!wV8ejN90TsUbKKz@Q_XEukwXT29|hvE z5WRRIGU|);YAL>SNeNqSL+0v;m?A&_ASR8khP_DLn#8`DlF5HSk;l!!ljvVz!P;;K zDMR|^FB6>B(ZaBmTHy7^Z5Ia1ul){VC(MPY8TDmhn#{tTuKH;6N{wS&llW1FbUL$e ze_*8DdXGj(tzM`dCthp4RVNO0)Ze6c6*jwcdt@(5;ToEP5FVCUcmSNONx~in${c;< zNZIMswc??t-IXR1;c8YRX*3#Lqn5a(2KjUt<x{3pq0F=~;@_RRFCF}bi2Pv@=Xy~K z9jqj#LJ8$x7vtD=21+P57Y3W{BQQeY`7vXpmM)&h(hHv(a05FPtHTLAK`Oo^kcyAA z7O@A;^E0KvZi(tmqo>bS+*WZRN2=LO*{t}k59QukfM}WId23(>ZU8nxcZ`W|&{s5P z(v$g2sV{v_eXlF!J(uo?{KlppShi@Mn1$Z6z=t)VdjH;}vtV+{b}aT^5Mz9dHm@mN zAx%19*e1I0B>|Mh&Pai_LjKLAOL#I5D53CU9JD`qmDZ9=_mdlIf2u?J&`k;KJq((1 zG*j1CzG71kTxnH4;*>>XiQb0TX<(&1he?T>ooUeHOtlZu1@-OtSOWGBTyDK5AK2JK zl0)+;M}J#i&e0!~C%(}`&>!#Ood)~L)l{hkjS$;YgxwfH_fr600zvLRHq$l{)pGyJ zrR>80r5OJ#>>>w*FnJ&+DXY8g`guXuh$1E_=Z3*)42-ET<H6XrqVuBn*X%xcs`Nh2 z^~2@63)t<<Nd@Yhf0+Vvd1gM{aL+!w?L5$mxK~Ly)|+X!?4u+M?M2t?7+=1K0ZHI$ zn5M2+uMq~G*{&55<%k0H@I?MFKe!qAF6A3w`PYryM^Hih7)8Fr$)x3Okk?{^cKeRc z8+W0MMK=l(0!wi@YIUSlp{U0Z`bL(PaAgXGokTrmm^Mbaq<1EracTzYg`xNcZdA=~ zp;zOl2GhpIs21CIVjoxieM$heJEIcep90~wZ(SzmPY|?bx7c8Hchz&wUuX;!JlV(O zJq+FGpzm^*+-=)Q^$*kMdeocZ+3BjjeAEcvo4yQ51z67R1&%0#-rW9394`xZbrzB7 z5TRRnCwtAT>#cGsIY=Kxw_OzehIOGFfPz7FBtdmJ?A8=9tXSF~m}=UnD{lM*IEL-T zQO(5;+f=hJ7D2BC5ycMO)cC+PXzSy<5<%jE{^-~*5O3PlNR{@Rg~&;!jjIv|()${H zfw;lBAIoASW^ov^h$x0?2fyN|7Dy(CWs$?O$YELJuq<*|7CAJFZ6R5#p;;8$-Vv`Y zw(S=pT_|*ytnkvCYM$Y5xdj!juLg(y4gOZG(rmw6XMOj#ukb#>Sd<i#u&!4!_4*Cs z8JDs<)3#gCTjRtZtZ{CWvk@4&P6|*%^ojXTn%#Br$!?^FEL1I>o1ExQX~{B8de7sQ z1`I{rC|S1mD*F^WmVHXvv+AEf?UW7}LcvvRcS{f#d3eCdydCBInYh+hF!<%m+tTP= zuGBlW+h_2Fte+mK5W&c#0@oBWWqctakVlc;kqol6`Z7Ouz3{GXA{Ay?@P@3E@FTAF zrT9JaQ)z0bj)Heds84sf$K<6Whj%U2MAkWXx{~~4_T^~N3ADKz4;tgu*<CQ{67jc} zN0g(|FULMKCe+fH-OH?DxEH#nQG&ma6tDsOi@k(Cd_HRSWsLxlGsb+d%!)6OJ4|b~ zvxmn+V?*=VWu3KCOmvsBvgPW=Zk+S^`ngj+?CSQ0g3IfLdOTXtW4+KD%nLe4#EjTA zuR9AmWo4(ubrRuM{>3ijlL}{m(;nPrWSf^S-r3FOrB0e*m-fi7HPE!|cWfvB`H=>E zy$pUIa`+vGhIj`1aX6Yo7l-*AR&ltB!!;bf$l>c8HgR~2!!I~I$DtvC!9E<0;BXR$ zGdc8exSGS~Io!<QyBvPO;TaCKeHe`8upfuX9Hw$OiNom}&gRg|;Svs4aQGO9f97xt zhfN$F;qVfNiG6u~98TddpTm1OT+QLr9B$^YnZu7cJjY>pBCkIVhjBQbLpO)BIrMQ@ z!{H+wuIF$IhfN$F;_x#Lf8@}Z#Oss8VH}R*(9NO1VKs-VIeeDGfAp*BN9Ya5)j15V zzl%Xb34>jK&95-`+xvI#ul|Y)O3OS&7NNp2$0JxgRi%QZu%gIgDfU&&vv_?Kg`UdF z5ysGPg+5P#;0g7!46P*akN(mt#Ihnwc?G8BDYU50B)y;<9g9oLi!9j-g_4SL8bA~Z zW|w&&n30DYa)p=rjsRa~?-akn>nW$9hgTN*O1;7e@4^K<Utb0wpUto$WFDy`g`|S` zhzI^gkRnnBf6zXpoQTwX4QsD*v8?Qxj`|44e^6m&q6;VCTC+YQBO?rd*Qb(f8o^@C z&WkXRU!|tb%7($&V!?Tx81hT<;Rg-nt%9EcLXZezFaR*XUxb0DZ?<Y^du-rPqt)rd z!Xpfk#;E9+Sd%%fSMT_QK7A9D`t=_$aL{1O6;}>P9(vW)!>+kD<+|Y`My8G$J!b6n zH~h+)HqJJF!i^K{j!EgxjGHFAGN(*+XHB~~`<CfBxie<Y%DeTpU*CSmop<FI%q}eQ z6wfIsy?buiyz&a~J-$jooWG!I;l1}QTD)W_J$}ZYPb?Qo=Xoq1pRdAaAtZ)3NUr<l zoE+v#opLg#O%AaV=gnD;%xN7i({D%}Gd9NPD7O@Ny=A3^1wtt_bxA>`WnKZ0RROpQ zf@hvrKvF8JC;*Zw@mSI=YW`)Vvwa1=g_hFt!U~_yQz(=z9AV5Z^AuEifH2F2f<l4D z2uc0wN=v2a^;Y=6$5SxRQVa!{SK;$O8ep79!;DbNgZPb!F%GvlI?xay?W~+kcL?PR zC8d>?g33zIyxC<7Ek&ZQw0w@G9Fm&vVWCRPONG*cveJ8L^2S^Y544Rac_5}`wm1ju zmW36fFBI1imQ29{LFZLe3Q*R$9!MRF<MULCWkBA=mcoLvGRzEW3UL}<STWB_yWX&o zg=M~LEX87ZA+1x2XF&&2<&}a@EEJ&d@Q->r%gV9}N?F;l+@rDFv}=}Eh;vFTmEM9v z53R1U3dpuog@xAFs4n#tEW3v_-t=5n-$Dr>T~S`>8S%^OBQ&2>%m-6L96K^8;`ooY zqQ6*9M~u#Blz0lfEF}#0tDh<7g3^jEZPyX+h92Wp3PnE??|O{q6`=;^m-+;;psb^j zur+Bw3^%sN^zW)D$Dwy5R2GiFbWjYYKPs(rx#<{)?Og%(BG3HNLXTRDEIh9#Pn8$? z4^R%)PH3N1!~LpDxOqT=r9uge??p%vb3@}`_@3*BM=B~13Ocf&zZgaeT?Yf7=N{2h ziJ2k=P3N5-3MY7c^GeHcf+<BBz-}Oxi<MZZ3kv>)Ljja0HLb_;c*>zAE6V42$^~8? z3~%i*e1UI{h=D7ErN{8JzZJtECt!#6R+N?tLG&;g9R3(}!;-VK&{t7eQ7l+ymeSIu zr=$ey#mxpq3}=MUBSwrM<6-`t<AWlW7eD~9d~SKgg7O<7Umhg`o9+suF`ES&XW@9^ z`Y9@;eFlPEA7X!`i@hG~h7kL2y4Zi)#lE_W{lPBwhq~Aw?qUzGuD-u|Sv5?Qy8El| zUtS#_76vnLZEY<eo|;;nUA+Qk(_vRzvu9Pq{0ftBb~f(0S%y`wsD@Ysrs0y35`!V4 z%IjU=^<Fmr{=fdST=q9C_;<PA<$o^VjDGH~rklUcA(n;wX@22fX#C|Nf7)O8r^dDX zyQ}|y!0+-lE&0Dq0h*4#U;67r0h*3K?JxZ6pn!k&?;n*P|Ki~<)E4UZi;K+5-P!(2 z%iB@zt}dER%faep%l$RA_dl?rZl$!U{x`o}{oq3nule00k3RPJ@1J<`si)Vjd*<2a zo`2!Rm)8H`k1xOSr$4{C;s3n$m)GCexM}m7TmJgi+gtzE(70{;j-5@rns@KnyKn!2 zgDvm8``)3$M~)u*`}-e!_|eD5TR-{q#Aly>@ul4MRp8{;-<)dy_Pg(YIDO{qx${5% zbm8J9<)2;v^}N9OMGK&RclrO_`Tw^sKzsK8A5s4<*SLA}##O4@6r>1#*IBaQXF<b4 z_)+()tdT`UBbg;Tix5W^3-9z4!Wz-zQ{zvonBU2MGpxwan&a^bs)s|IBUTE8OcBdy zdQ*T0N9geSN^y@OtH4)S!sFlMne7uf??=NHlv69@i+N%Cm^P+~>0w$Be<7xY>0o?} zLvjiP(N|PJ)49o4%1yAoFA;r}K^q~nJVoW65Qkim*|I9isbh}FVS#|@V0?^&;V=yP z(|D6T>R!w&SO!)s$Pp;>jqWolJ-(Y~-wkVy%nq*H!Se%ucR{7#D8yB5c7<2;2Hlw( zOO9kg$^~;glPaoM%o#Zu)5nY+;dHxMc)$bD0jvNyz!6YIjA{Krl|aov1wlPQbwRB` z<v|@nRYHwo#lkQB=4m(2$W10AVEv7Dbw6svY?=(X&nu$vcAnotSk26vUQr?RIPrG+ zX$D1;K|&N6RAeNBawEy0u?8||bidZbmOc$hgTqM7*wrLPvx<a6`8N*+ngga>6NB!9 z!F>RA$E~sU1VRq<AtX6ML+xmOwlA>H)DDpjxd_>j+1Y(SI2i!$@!)PKn$p?Npe2Uf z>7CL|vV@aZ%~TT69@eV!YEu!PR4pNK1H#CF*@+E(yb1a7sf4tqFooW$k_frAA0hTn zd0CT;Bx$UPBu!6f@7)^LVrq!-M(0OmYr?f8+^0>|#A`|XYvxpqNl#2;!-;8hlviWa z6C;?7qr<&%1B_%qk%<f#8%qZG65IQ<#<%opFniVfzQ3A~3&RM>Q}e@gM{Bbqdqt35 zMTw->*uJEfCZ0rj8IC9`t-Y3z*lSt*SHbNRm>&dq@23oEEYZYL6h|z%z%xL;7T<t& z);jTCjX9i{g$QB>{LG`H8#Iwx5;;07Rg-8SiAC_`Mvz4COB@Yh;|(Mp+~UD49^B$b zo4rZbM3KH@i%4J1ZN%Ij+Zx?sY%q8u^24)PTQ>uOk(L-@*^xvnLL%VN7jWo9ESg>< zsl9J&LQ6+ozdjBYP~({ScD%|GsUwk^w}>{C*Sio&k|6&i$Uh14Pa2)jph+|Wp6~(P zB?8?6p0qwSMlIHNY8;lYC=$wNAm-`O4QgI%ClS&&9oC4vp5rk69np|S6y#wHwy#>p zzjhMx41BNh@K=I)D}2Y*c1kdi1OdLH2$BG}C5(=1h`ZdaMa}=Yn+Q1p-#Iltty?41 zZ6wq!n5RP-Oh7+HQ9wsVV)6kUMQcg4CXOT}BQ3lRwD1?8g$<Mzu&%wZu8gC!7C~uE z&8ycmLgvC3e}d(eG#Kh)Ebwo>j@H8X)?htA9S8uS-jV<psEZ)p%cc`z%jrlfj?rhT z>K`==`Z9dORsRs$SL^a)@Na|fCLZPzn1|*OQmn@5ttY*q482F2f^nALO2~#=JL2pF z^MzYG;;_0h6H~5<m|lar>T4i<0sp?a03ofuqkDU48y$**HZekbfO&dcD=lwmSw|<d z_HKy_(n)MSAqU}Gs^+8D5IxXNB!_Ca$+Mxq!ME-NgI)a}2e+qYGc&@tzDB^$47iy{ zUtjO`xK>k3OhZ(#&Fsa5ya!(+&zGh*yCc2aIfN9#_t6OkH3Or`K%m`$Ktlt8h6X}e z298c@?b`x<B$SS(L*39a$3U5Z-gBX?!9B?b;S3sL0G!!)WuR?F%N(I45t=86rdK%7 zoSF1`E!G>8ADzw8jf8X!EL}C;^l&d7x29{e<LEdTN&QvakIpCL6ZjOB9!CP+WAD)o z)D-Kw8$&Gpp}zVXN&li)(tm6W=|8=1J8LCVFwN+tgiL^M#Alp_;=)PX*k}?r9c$H? zuZA034fO?IUmlL(98HW50nT(RF~eA5g0Uo)BtFE(lBD4=8H0s*$iFwVS1-~#J@z$Y zyP-9_Mc<(1IOYXuFb>KKbog$RH)&MN^+N<R84Tlne@L(Im|niv_UKk)i=ja+n>82@ z=oZ3I+Kttc*wMz+e^lm;k3v6sw4=<LK1R|9aPI@@^zrp-HMhhzM0=z1S^K@gX(SG4 z#0)fIf;x{S10P~E5=Z+>43saL^qt;0pA%~dF{}%zGv4QudIL>v<8!*&H+u2%z!<I0 ze{4*F{sm)UQc-a14vr~PUx4umz6`bPX!ux0qks?4W~Z@u-iw4h4BwqRd_0(UzC_3p zZl`$7W_S%l`_)kyN$K%0a>lerwMMo?G=zEe`MOlK?Yt`PvpHN2IMA^h#tEQrK2`+B zgm?Z#$eVvA<k3(X%8et&cf<J{3F~C2-*~8B;04$?o*NDI5k<%Gq-5juea6IX>xxZ~ zj*t$4h7za8w|BInk@vS4NC(n-2>UVA>9d{r5M$~;?kgvo2pP01gl?`dk}Jk0kt@FI z*PhtgrzO6jmp3lotnxJ3aq&75|E$?-%I_F|4jzQ@7rqUlG%+3cpYF$@_KtC=gDx~- zS`s!^Lo@>-$pGL3LrRhz1?5N@0`p<lR?B8QTUBt*ggVZRfx3<+@ei53sc{`!0>yY9 z-A;P^{YPGc!T-ohF!=A5m&nmf_LO^k1%fA?ort9izOsz@o^n`+?E*gmr2^6`iabHd z0H1zVL8)+4g)gVHd`_8%twhNqB%R7N@L;g0d|j905keAm6_gj1!TS9)rkYhzB$jz@ zDlPL&E12hj&>xVDa>3(E_mv8zg#~3f9(w*q$TwQIr(nM4GWQ=lQeg=LKQ~gJQ|5uS z{FPe1dUg~Q`6$leno!|}doXT##k_eC(Op^&*^kE<u*CKWq8As{4)U~ax==Qwd;zSM zGpfiBSQeH~dWDE}b0dpU#2g9vJEn={$zAC6kOt!PlzD{9(6;Gw)$_SveZEYw5q&<W zbJfwUpHW^yQ-<6NJzk6qi3_;>F+>lz^yuB9&8&2KW{Y#?czoGVcx=eESeBXWXq6QS z`VqRhD=OxS-kbPgD>MM^lRSt%=>=Xv^dU_Mo+^QSsp0zy^jHi=8?DPz;JwM`fs#K< z&5p9Nib8S+ElW05A<0FvBOT_uc&w|NGqTY9KHxXApscir(p1454><}gk0Jrtc)kZE zcoX+#LhN?UO=Xpk0K^hK#DTUP)ix1r6peG(LLnHw8d9sd^mH{7N_``SXQ+}V^s}IK zC=HT!t-GS2h#wO=P<MJ}@Nm3K8#>C1a=fMGj11fw%sivxv@=IQNe3YRM%s5S^B`G0 z#F#}^=x3D{dD2S?e7O}_c#=G6q2M9gyH5wG{g1TXq0}L}KrlX2SJoGyck6BuJ-&t6 z9v=--UdYH7YV~exlibq6xtyL~xtt22!g45;)2*4@Qs}3Zl)}M8{y_7Y?qQW#%X$>+ z>(I)NhS;H#0w(ED^I~NQ#-Ah>7khj_`K?-adKMIc771!SNf#`4ZiQMI<kQelP;NWx zd1%AF2JzB6yWmQX(km6pVBMLVMEbzoRk9*4v-*P;Cd5h7%PK1QNJ3UK%Ha4r$P*!@ zxmgsvqJU-meWy^fh!Oi`$cS(+9}zKA2gxBY;CKsso?vNbc6I@*KSCTs+InVzuM~wA z9As+7^l2IHF{4Kmm6Z`vqMHu%ObM5~&*Bu_T+HlOX*+ffv3!K=RYxX=02$2|1y7}e z{L6l=8B7kVtG&}HiTNL=gFLq8ABO52Ui)7N|DWG~e*gJh{u}-5@!^ld`fC3jmUoK} zDa!5FFnQNt-}-^s+rMX!D;QR)jXfs$PyH~DKBS|6>o`Q28dPS57qjq=1im<i7wA#E zAMZpMIE>`b$o-;1{QB^?2u(a)Gk1%FuNVK&{R-}WJ-0i!J)PULd7SCoJ%__tJpEgF z-eue!4?!%1t@{VS=i|7B^YGOi=Vcr&=l*`~U&GVECp%Ew_GxZ^hU4=*&+jGfzKP>^ zfcqci{)rK+F4Q^;t@p0&@N>U^b@=~k{QvIs|Eux;^ZW1knS1;(e@l<Qe=FMmvR}`_ z7tFtB;edZH-v7$q|LZi+<@f)0k{G7m+tAbL=Xsdm^OrANeg*e_@i>FeyujeHwXGKr z+Lu&QxE{hcKKK4}mL8H{c8Nhdhj0AC@D2_)LimHve)eoX^7*s!v%l^+{Uy&((=EV| z-17dN?_0=S@8A9Y=*z>uckJWV^Ms6A!eah#iSbdWOBn6xUBdt0nrH08JFnaRr}=Bh z&(}rv=<egUUtslHt>OMU23t}Y%;x#3aaFrYmkMte^{4W|c|Y>|V%$EA+atOC+<9hK z+2VX|SC_uSxIIn{e~#IEaeE85_vZF>+@8qoCET9G?RIYO$L$7g@2{qJme~hz`+9C4 z#O*7%eK5CMxZT3-@)>4V`(^uSX1`LcH*T*|@!@t=?kSbq?^V<1_6yve$n9!n8@N63 ziGMA`^#iU0))Ce=UAH1sdijp`%j_^l2W}2s96C9)b2y$uD~G8Z4&%_mp_xO%;SYKS zWez{%u$99PIXuSUAr4zO+{a-vhdVfI;P5RDH*>gw!*v|4;c!)#^lLa=#G$}p35WR{ zW^-ug(8}Rh4u^4Q=8$k0sqfsM)&4l5OMBRPzb>2fuYpVXPaQARJXKuO^`-i&_A<Zr zZ`nAIos&!cnP0Z^pNrqh@wSZVetha`zr@$)D#Rc5c^iDl0bqZ{$B*!}DSUnSd-(A9 zG8MjQ@Xgb7q>J&!5w@1aTcW5q^>z609jou)Geg*s@MXbQ_P=C-^pE7pwOxKX{!`;y z!})l?;V=#@9R9D{vxEWlOZck7HKZNjtuUdj0dqdUmwPk!4FC_pR}`fot-bN=nUGh& z-3;(+_<k^GI>}3h%2Oh|3nsxIAUwiX;rkHG2sgpE56lP;!}k`L&jFkVlj3-YTLtho zm=H^1HF%Gk`1>;)Y5<<#?w_HY&j4nQ2YB}Y7N!i~!`!?E;9(vn7beV2gP9p+0uB#m zVU7V*;2Uq!&`I<Km?(<?hxGt&7y|tm+`Rykl3CmV0DlkPA_(&&!0U&?7z}2^Rbak~ zg|Py>hnod}E4lf3fJfn51>uhYjJukU$G{v9a632e066U$;IF~F0^q4@Slo7iyHlVJ z!F?aVk5hQN09-a4=1pje8h|rkkQ@u<Jb?A^Il;Ud;L#B*onrv6842?wxL*hGkMQM# z`4xZ<!k{65c@4m2696Afa{_z&4(n$Jz_uG<4gmL)0PmRyZ5OE_Zvp&pBEtva1#U(- z$<Fe10^DF{c_AF*fH+_t3-C>DehZ*;5~C}G%ixQK^lJc)1%^8w%n1Jk-#Qq?HUK=E z&eA^z@T3#)gfQm-F3*5A!ngn<Zesab02(F}vKrhGx+k+bNB9$b)zN@6!0DN+T)6-b z!q)=k3jobiSUn)TZ7R?PxZe)&o2e}Qc7X3?0gnLghXAgg2GgifL!sqnMl%Q>y#>Y> zaDVI;s@H%xF$}=XIjr6gj-J8FD9j{e?@U(4eE=P^P^S*`Q-HOzSojqH$K^r)1^4j) z8}eAW5Pp`&`wPG%m`Iu-%m9E--NxM40sI3jmo9+&D*)5(fI5dX#{(?53-AVW5x|%3 zVtK6x_|;u3?n!{(=0n?n`wsx43RswEfX)Jj1HwhzjPNyXw$Fz4g|7_zHNcnPTZQQZ z+%cP_(+u#DB38FM0A4=_#vgFc23QN<hhSa}aN8V)&klfLB`mH1poN<eK3>A|eG=f_ zQr5ov06sAn$_`<k1o%)H^dq2wH2`lahc*JU3*Z{~?C1_~as}{~V9p0v179APcK{sY zWwbFC;6g8J>qP*!bMv};fc`6?ED#>yj!G7OAHd}TYwH?-vqWaj1Na?$UI_mKz{T?! zeO3cJ1K%1jp945^3D6Cg^8nT@g*pNADu8RNp&er&Ux2qQgEj(l5x}S#C<~aQ0cO?# z{xSH17$Kj+R}JRR08U#4bP48cfPaT?GnnzM(%6T9e!y%7nD-Ftn+U(=?(F~<J`Cjr z{1*YdWeqdu0^G^XCBTeae1x?HGBm$>4Eh(uwE~nLW9_&KVD;}|jsi2nmfy3wLfGdC zW=;mU6TU<U(+qIR)6m{vb^~1WGz){!x|ZdIFnb-iLl}e)tYdkt0QlrHP|sjS81o$P zkbtKJ;KAn@?X>`0^gOJ+APhqC0-rAcz6jrA;NAl8<V#Qw*e?K1Tn}Rngs}tM`A5JL z%mZE~WcVvA{ZxR`D=eK=0C&BDT6;C9zl7-i#OPKJ@P$7ydRPzegFnNV1z|o!xB=#9 zFeCi+{{dPAa}mIquK_+_&I34l6RaPRCIP;^iM3+`z{8uF`53?zZvoB_2I1Ma7`>eX z_|4mF?n~YZJmgk}XBEJ+I{|+%p96UJE+`}5RtE6ygHYFK26$@=&<B`r2l#CZYxf@j zitn+xwF;p5FyIXC2wyzR%Ls7(5$Gpit^&B}2+MafK>yzXXY3;Y^FIcf05ih&k6HQ% zKRV8EmI1!}39ILJfH!^$^aSmK_cHLV#47ABpRzj-hX5ahk8m@>SGgJCVQxm*{d3%m z5M|oYjBq$NBfN>55#GhkD0jY;n-M<D%_#rf$jt~*J{xgEsBm|LC`*g(2uE-;!VGRk zi1Mu%9^nFRMj6*fxf$UG9v<NZ__EFaOPK%v{Qk?o{|``00|XQR000O8%$?CxR`;Dq zNc;c*02%@S7ytkOb7gdOaCC2PY;!MXb!jbOa&0y=E@gOS?7e$jl-Hd<exB#yGBbd3 z2k|n4CMk?b8Wj}Uv^-!gplP!L>Gra_fTr64k~T!s#@raqwu@ogW|Y)czg;wGyUb*> zn`|)av`vM$+b_m#H)@k!UhN8+bV1TqV^qe7^LxL~c^+mMFv;%r`}_Uz`|@&pZs+nj z=X}oRc0T8GKKALyg&~AU!Y>*XV!u#-rg-na3H;``zduLxJAYEVU%Txm#f`q!jh=h% z{le$&ZMoaCq2=?R|H3BE`p<gqz3=m$*3Wxxy1l`3_ZRN`?DZKLuB)sve(}O53jf#7 zE7sb-t{;AQ&ELxFN7gvy^~N=i%WLJDUYVwH?I5lf_y6nKZ{qsXCqJ_0fV|$g=Bx7h z;Wba-T8igy%j<{awZ3(OkLBC2|H;il+!;z1xBTEwTkLnI#bS}B&siw$(WW}$@lyPk zsk%fH*1ax73jY(atN0ULb)x*-yv5FBUuHf}yA_XL)<j8s=iZ=;+O)W56VEAt@%Nfo z@GfJL`3Fr@XmKz6nz&!Ta{B8xefIuMxHf)XQvk8;Nz>DKglNA0-aA`1p{IWR6;-C_ z!gZ52EuD#f*Q;d0EFv(d*oEt*8R-VDzegpMZA4o|I<6`D%<}I2>|I~jAY|Lw2f~4C z_Kb8jS8n0|{d>2+=xT8!OB0VT)6K}44a*LnNfnU+qv<vKJHMSyH6#3fdczHe-FntI zkh>B20!-)j7_SZ+nIViwF4Ipws0AnS4a3zl`CxT0zAXM_qCB8QAQR=eMdo-l%3_+y z2Y(ctH1OW~E@4`%(#g7S)q+lk=n>+hKZ`H#lp#W%bnWBXf;}JC@iXvi@{2QnpCTGH z@t1!KG|hCjuCH)7o!vrnzvj))UNA2&E90u-Me_@DGt*12N%%|XAG4!3-7G$kVHS%F z!a4P<d8R#AYoapt9RDpYUtFG8dXdg+ttpN;G*`Fi5VzsoZHfKHKgWQ-zDYR7PidmD z?$XUWN|VJIb8qi${}zol)?}L7w@yU&&6Y3zuQtPcYY+O|Q7w*)8jiy?!g1K_=(?@$ z(k(kUmWe-EN3m5$uDQMDooGM%cj>ukBkQig{ovctM!VkVqvDA19skh{%b$Adq#=SM zX<88PB(Csxw&DB1bDz<I7dGg@NV^eyXJb-u^1)=_j277VCuZ=zPgV!N)LawX>{}gt z@SdB3EhT2e6ji{Fo00Y=<XMfpH7KJxc(&okegCJ*wEN2t+Tl*2j~{f2#)F#ZFBbkt zlSiCE+d_+V(YRh@uJm}K8O@#p8S8~(rAOdi@LsH3EX+z=E8lHQ*ndW{XykQ6l4vaU z_#-t!J9E$wjaBL9TOg5*owzn*%srmtw_Sx_vFVQ#H~S;ap5EK;#IHu^XBK08*6TN{ z1PRaeB$>}FP5@CruD`E-=BnJ9XRcYW`k7*(2d45QiD%ZQYtP)7t3UIX3yfzr;2ZO= zzl{9ihLx;?<*pYcD?NK~zlZmpm7aTWe-G~qd7qB^^#5tw`3Km#i%<7Xuul!#Z$+Oz ziE@iG#gPs8c|6T1-;?nq$}e`{9ey5xcfzCUxztp#{*t@mO7*Z`Pg?!Uel9+}dxHII zBu($%0rYRN&`_Uw8?RUKdV1$X@#!5C8}Quh5x4PrC$8+TC(&PX(bs_g2>Y0QjlMj> zerNyNdD+M8YxX(&-tOxs(bueJgH<QXe-eFO>_;2%^X$R9J$&a`Sq$2+0YA?@cy|xq z6|OAy;GIXl!&r#)|8Ac}4{Aq9v(Gl@z<&etAPMs!8S^3~SS-xQh#?|pf$MJ@TIigi zht3;D=mdT#(df=$BPTRs<l;FmbkfKVHDIpYfw}glm}{THT>A{>+Mi>t3CuN?A?!SJ zP2jly=()@4`JIiopw637_f3FdHDIX;l6L^Mz<c43o@Cy?K3$Z(f%45Hv1+e1SDw7q z+}<=$b>`oIPkT0*w`qMHpI<DlS+rOaW#2VL;Ja@=w4L;A&!*#3-=2&{%kk~Vpf3KG z_-6CR#e(9Gi@tk4uj5;dL)3$A9yXKw-Gqr_GLpLG@RL`W_rD}WS#c704(8yS(P#nR zonTq$cjgh7s&_C?Dx}3^2v@*!L5YYk11DBh0r!^xAD^=D(1!hQ@Q&kt(l8Fkw?Tg= ziuxWs{9R#mGw*7&aml6CJL22&QY2aidUB=(Fcmv2{06>^7~0|QCTWM`)2^S0mVsaA z?iHe+u-9CS%J%djZ#?`GmefaOn-@n^8WD*$vYxw;_BUudgu|opV}|jm*qWxshht-^ z_PxdSrGv)pxrgmqrrH%ZHhb<lKK0%nmlioL9&21~P~(y=>c0!RK{#3Ocav0~PmK}U z`(&<JQ4@_$jnNq3oI58YJ<a8Gq^2Y%8K{`>Rhcu!LBe@g{5ZtHyOrZ03^fj>Jq|bR zh=-khIW-P8ow4BhE_h3P+7t2P0GOYQOdp4-F#sI$`-J-LpNNgYe<X~-Iu~T8jUOC8 zz2fm*l-*Wa@>b?gH*H^*Vjii2Y*nRaj_-}eczFC@6WVoGp=eyaNM!na>nk=m9EY2Q zJH{VN2K!2`8tijx#<;dXG_J`Q_*E%>rsf<UPVFrcSNT89a*e+-Cra>Rx?#YuA${Oi z4y0>_JToobP3Ha*{HD@5kj^<vI<&t8zZviU*!2L{OYrODd!|c5y5#@w;kgnV_SpYd z>%C%qRykM9|9<QFpZ3ptwEMqW&VP42rR=LqdE!Vs?qeP{HUa00LDS;jw;1Yui^_AR z4ZI)M0O!@+Z{Qv@IUe>A&<DJebJ_E@{2th#PoH~NnqyaLbNqbn`sw5S5B*}-k2c-) zXKTK4;yXicTJNa`o_$aRf1N6Na=`b&ta=s;e?2sy@CbPHe&};&A2fru-sjN7vtmoh z6o0-v*F6EIR*v_N3vEpp^s1~+h|`WdGorB^t?D%ou9s7*CzQ<ogWx&H9Vh1M!Pg6n z;BVbY!M8z!&r;5SzAy?|0d+?V;PVMf&UhVi#!XqG=iGyo)Bn|y{eKvf{U0=flrwz# zK;;<nOrR_u;3!!*P=WHwJzCCTP4geUHAVEe4G}(%G^il70y0iB^5g=(0{rr_MUNl( znimaJWaEASdGE^~sCdE<Wy40EHv{iXd@sQBfqS(M%8)%NBI^QZ?}5iehlVli(#5@e zAJs+2g@WE9w<bFFW%m~KJfh{ijl3s}T<?}NfBi7zrrR$?cfM9r*3J4~y%a5bHD6S` zj<OQd-5i(hIMO%`GhC7^vPvH|cR0`<Z?Xuie9${l4nE5EoXm=~V>nB-gMHH%iIxu= z^Foma<Mp0@nYBO9p?~^hf96f=%avN*;h_iI4NlbU$q)hPMMuvhi=Iy<`RgwrPed1$ zXH!H#!iqll9p=F|(GHg7?uhl-9Pm5$Hqp_7KI>&VypOdxC*(kzH(G7JA8n?cf%knF zkJnPfIv?JBaWY!Yygy0E8+k|N-3(ZUje<~Tim05e&BR}ckMTO>gGs?K@<$&nIs!a? z#gSn~&@S&q;M6;Y?$tg1`jHKKfb^EQJ-Xqg$}v30_t7Yxt2D=WDcW`l_az$I9u^&# z8;w=a|DjtSsnT5IwV3Oy!?h(N!1uG2)tBtAFTuB^n(J^a-qp4)tr)_4&aGjjEn6UZ zFn_$gDPmbM>ND}a9CMiEYJ(Yp6G*cJbBgctG?5GVkB)3`1%}aI3*Dk;6!$rUo^C$x z^QdPh-~)_+DQ6rqZli=Bc$_qE%>zmEKK4Md1-GWnk#JL{A4a}EWMY13a{j;KDxMRl z)y&8^-q$(Juul__+GPWktxgg4EfbX^4I(hy?h4ESY{a$aA&;~IM@BJzPL%N&#?nC; zUKAa)6}is1E1ZC%6>Wcg!<@j$4cTa0N?-(ZiDQ00=Jx1n;CPZi|NmIx8uWt38EMfU zcQY;0oWeWyb*<Icb!fM2EAm1XYpfkPUQy>1NBAt{Sf&IxZcka`STcFMLgF;~BME(Q z5^%)o$q!tId2tq3&JjQQ{R4R3%Kk^X^Jw!)^w%dev5#ZJ_W$n`YusAq1W5b#T~_1v zcfkF#1!kBuY(mdTb99<Jpil&IP#)<RX+$Rav22M5ctF#D?;RO{ci&<W*oe8Z=PTxf z1K)Y?|B9H{fwr<A47`gXE#EQy9ms#yN`L9{^z@i#k=+=V5zr6T_xX9Gh5q_oHq6>w zz?>iIvS5AyFb_%kkw1-olxX>fGn^vJor-yjI<G~YX{ln}V_!BWYBi>JC8T#9c4`@E z=*z73WU=n><!Cwka}Vgxu_U{{GGyJPKX-y(%~tOU)XO^W20vy$<)O|OkasKEI{ea# z?!kLA0(T(qV_Tcv1&*Aw6@X(O`sEJ5F?LJ@qB$a5^{@zzZUC-6tU-77*H=BP2df@7 zf^NL8dN?WQc8Z82gYT1rRV^Y6J>;~fxH2%hLWCua$%3vdX$kmWs))#UPBSugPy|xZ z))f54Fs{ic`zrj%8+AcEDhSzhh&-76zS16#>h!?Xm&r@X+eGf@QZqaTzKnLLIx#ng z=Sm)(&HVCRvU*4SjW4s<E^{zFkZF}kdOVzChCwF-_g#$ceCNSLdz#Is-<{vTIT_vQ z0Kb1j+7fa?XxDb~e4&~D#5r~6T+!nIjBX)1#B=_lco~57d-A~p(thk)U`Cvp8D4td zqU@5P_K7y&N1f(4?A5exvsfHy28@(LCLbJBa6xXd^RkUU!(9AFP4qmJD|&*sLZ0w` zFpn~k2s7VN;D%#?Xy^m)U#1f#$U%Fxz^9S67r#F8SzVOx!F^a${1<5;6RisTC(7Pq zrQ43*Z*tX@<<%mcmLq!p2G2+E1CJ;d7My1-nQ0i$|D@3d9&7J*`5bGH{r&{rZ^rM< zT-xCW<M`Z<g6Gmi#J0DyO<%U!R02Jny!F6pQOWs}gLmhED}AmtVRy3VXm*K4AKF$z z{_ApugTRI2;<Ny9LbQN?0RCpQW7zGluK`{t{Bs4E&ZB`ZKyIqF@*4PFhWq~2<jpzW zU!cB?s=pz>nUOwC^!HkD)q>t^#JfKLFC>0`q*~4s;(oQ1QT<1o^{UrC7ngqsI`r4A z{G7kdc=rb2yAx@0Zp8Qj7T}rp1kwZdk791W0z40V6nMxnzt<WU$W>*H7>l1GFL^Ed z>jx;8Fgr<)k@j;|+EMbn)n+BeviwImD$V4BFZG>EGb3jkUh1>Quo~%kt<qGQpIB+b zIUFlBem_MWPk=5bj_a?Gr&$+eqegZJvis@Bs!IZCn6I^yO+(<V`_@i6hk~F}z`5K` z$R4zXF^&8#V&4yZ*mxDZU|&4$$ax{{2QmCQg*s}N`6@Z@O7Xo^>nf^SR#JHa@O@67 z>R*Ygtn>9e^{&f$_j#m=pv?F=r|=NvTXjIrJ>9jqwUT}5GekN07UowY=ZT+V5Bf98 z<=K{!z?wWYH{|nRN#K?|m4<a?kiJppKswU6QhaxTj<`xi(2Ji7^cRB`A^vtPF0Hg- zI@_S&+Jom`344C2`4Ot?t|x9l7J>X`Zgy*~b}bqF>LX^@J9uq(TBxfY@=e&SrL|W> z&Zu36G}k#gMgV`Ba2_s2nvzm;vqN)syIMq`Gz0g^{-f8HI(COJ51X{~aoWV{GR$yi zb*YpoY9S{%HD?;1AI0;Uy&`Z9eTcRkZNnI{tuC~+_G-veVqztqX*XhflH@v^qRVP* zUz$PZa@3sa8Nj@F-s(#SaKt^?J4C#Qr#bQYWIEsi^OssQ3v;`ixO-2Y!r`}2t|x(R z$?=XWNAjPHo26YDbmckf0t28^gq<>x2jll2cqYy@>%F_;%d*RO6LSOK&kX1EetITe zy%@tQ%zMZ$pL9cpt;V=X`cbR}qH{&WIeC0&7`)a)o(q0QI#sG^fl-VLWV#{Ai!pbd z51GeGHOI>`?+D;eQ+Yjc--p4&rqT>fPcyc}43C4Cj^>yV*B0l?W5`phIbU{YX)ilp zG`CZ}?$X339on{C&>JITMoEZ$4fz{%`rs6P(q6s%$>Z03YpD<`tSiUZp1Z0Ky5v>P zkLprMdrPXdfP%&Sn%z(G`<Bu`BL8$j-`bYsKT2K<oDE@4M}T{hH#@b?e*(>m#P|28 z((%L83x=WR+V7<uU?gTAkk5m$=VtNIpQ-WOuW$?fLpf<!UNy)}I)0R$AU8o?axb&w zp)Gb>(D%1PmU)VEQrugsfi`D#6-_=kBw_o00v(fi_o}?)7tFs$7yW40<{;*{TXVJ- zLnd_GXofkbT>~ZEb(q&xnAg-z?RibzzV^##Z>8u6a;`==2Su4@+MJ8^kL3L$A5r7b z5*vqU^bhl32k^Ai5QX4fVZyQn_4tZ#pCvk|&$TW#!?n67EYTcmAxCzA9yNmB6hgmj zr#>kXXxSP~$}Eu`DQ4tj*8R6Ir#5W7d)Sk_W1cX-rA^5L(0k+N_~Q;Oopbc@^5XPB zPO%6$@N;W<<29%gvhuT=AS?HSzYcx08a$aYTGeZQ@ZU~7ZyY*iBjHf8-%Hcwj>LMZ zt$JGic=gbZH4GV<vK(>DwpZEp3XO7eOeV6@hldR_9G_m|b?F*~*QqhQo?$0g!ug=+ z%>}~<jsB$>9H&gX$c#*2T*pBNT-v<DeY&F6&duiba&2Ds*z)Si+AMM8?KQ+P(eY`m zYnLO{3?EAO6BpYC9inlfTMIH@ukL8C$&|F~+4&<{05tpA7wXHphf>UN)9RA(M^i-O zkW1Y!=6$vq9!(ZyLvu_iw|UT?C%tB5@#>Q95hE=`nzv{oy0bZXVijrZ-QZgew7+zY zC?xI;68FwmM?jPMo1dH;`1d~nO(!45JHkNui?SHUgL=-eQ5d59#d>KoJPZ2fk#*&S zE?tQ3<ogpyW1tS|=x;1GBd_P1kz%CrMHQWmARXH^j=XF$Z9{DLR`kQasx=KMQ;uev zk-x|H9Q0|gp5DGS75cc5?)?Y!2Xr;>P_pWWCF}>Mx_=3DpM9I6&A+!<@@0QL6pXTe zM4rFH@0t3g-F?W{S%bbr+xwjAelhOHvdnN_mYS2a1&pQRIYT`|wr_+kn$-!J;N)bq zaSU*DYU%AGpd)O@5c7gIu&jS^m=BP?q@fL6XdB04bd3lf%AkEUEkydUcy(#_PtXr+ zAIoANu$*4q*?!7!dQVP78x?Oo*!Rv7Gcuc=#rYji_kJa&%V?>n|GRPTfag6IXOYkB z{B}Cb$DZGa7;m4A-|mGh?@to_V@aYAbXE3|M%*e?bZjsB-r<34!|$3?(lLi2zek2Z zi=D|*H!X8Ohtmd2yG5=U$w!@BXQ!PIx@x#f^Q?5@eVN9e=qG>AaZc$5&)T}dFz5ww zGLe7U^v`3hVcG4>rrhTjfkb&bo$vR=-a}^UAC)}*LjkvNjGMrLbqhppV!zS<3A#|f zo$vDtlw6re2hXFdp&~g?m$fK5ezZdAPR}|teTvt~=N6s3!aIQU_IujQ4y1_ZILDtz z68mJjEqcIC1D$0%(*c(9Jd`~jWowz>f4HaKXQ!tuX6Jbx{VL@!<fDuTc{$tnfC!(% zyBtB;z=CgjJ(8!g4$krP1y<R`stvR&dgQp|g=Xasaq^+$nS;6Hna`F~$NGT%F6N1_ zJ4r0#Ix3%YFb*~>OlQNrCk}3pw3Ue5WD(PqXOnNwqP%8~1<L2zkSup^tbW=bd_}6f zMEN$3ue~A$Z&a{rhRh2+wO)IBOTBDA;DS!|O6{j^m*qgl%c}d-+;Ad%vHA6);x{?u zGclYw_UYTh$3T-=UoPq+ta-&opa8lB?RCM+$A_Bh3wE>4A*4k;>kfT-Zg>UPL99A1 zKps`&aB!-=A1+XSd~X;@q1VCBP8xdX1o#>8NTa?x3p^4Bb#dmZLi6GU<U4O9Q+{o{ zbs=qVQZEea3uzbe*EbS(bgjE8Nj#UE)w}B~@Sz5CzfKHPIzf{+$vK^O7_{Mx3uBCO zE6b6$Hc6Fp8hB+UDPB;U>aP#tdtZvEeBLDjh9UZWC<h&0HUijt0aJ5!<HZx8%_Vrx zwSv+G0~K|&d*XZPLfUTzD%~$C9!VQ6$KB4i_)@g7E6rc;LmlYTz?T5qs6J3xf_^`x z=Nz6Y|6;VUw)JcU%df+g<-dS7(f)|MWwiMVEmrRONVIV%S(VE)ESqJ%99L$|#LP0M z@?VHHb|SBMmvNjLC&(%B<3vB6vxe@yBTMv`;n%&~40dYb%ot>M=-X#TaivUI4SA#M zn(83rpEIZAJN2yz-&*GKTg|NBw#?zT)w6!vn;{xYK_AXz%-QZP%muE2yoUB~i$?eH zoqJ4laIG{A{nwiz&X5OVPJ2nu+c7`>X+aDZhzFo+xvS+GVV=a%Verxsq<Ix(QlCVg z{@d_F8!Nf?#JUTSz5qXt&9LF{u2`t-bVG{<DnQ7}(kz=b@q+k3yr7KDais6-1tVYj zyZ!=oFwf{@wEUaE4Zn-_Tj1{;Gh!IPVa*sX1#Z}|{Qz*CgB(O%eH+ql6DlqA=zgvv zL@~a8$T!2;cU;_nK9FTWPCBWpvJPE{mDPu`{6%JD0R7YjS@WP?AkzfTGfja^(~C6Z zn|3(|t#Y=Vi<R>Yq}f(v!Lld@3vtV-^l{nu<bw?hV)J><0yUo{{!PgsG5m81Ri+~; zR;JToy-SaKmubDrjeA#Uy;~4_7o)S^m$+O7-G2l+{0L;(69ppT<GPDmL>!<guYW*9 zMnRvNkmiJ2G(e`Wba?znqqpLU@1yfYq!ZtezJc%MJIL|9csKRDR75@~?QcJxCJ!h+ zY)t1#kyIrYZ%KGRnHouym*o4Fs=&18EwSfm>#xu+;&{_(pVT2lxx-X;9(RW5Xhr!Y z&vg}XO$hiL77v>{*3K6_6V&fhMTGLi7K|0-U)ogn`N)f`w9WWtBCVb7OIA9cvN6%t zo-29m7G<+pRh<zaf6vEn6Ur%a`j1v3oz35xUlM`eFH~g&FW<5wly7c7)>bkx`atVM zU2)OwrFkgZ2^|l#9pl=#8N75K=Fn?gpIWa4An&g0$6T`M+I0C=t<_4|3-Hk9;!1<e zQS92S))%JBRS&pD&wY!O3_`w`W5EpGc^Z0Cq`A#Eu@Px_--`PX_@!r11Wb(GM!-W@ zes(!pK7jAb&@abRl-(myZjs|YsAL2&KwFYK_I_mMdnGR`+al;N=&=#%hmPpMeEFT_ zADLmTJNO~n{$9P4c4S+Qoo>gsWv0{H-I_K|TLRZ=eHhm+P0dyI=RB!*)I?THbROgQ zcIugDFvl9Z^qNSg?ij~AsasIiCJdL{q*WqxAJXPn_C-JP{~qN&k)lU-=z3&@WqTi+ zZ`-;Dr`fs*XOly8P*!V77acbh-u3|bY*U%yw<XXmoL|+}omxm+xT}qNc9Lbsv~4L< z^yG#b(u94^W-S2xKT3JYacxb+F<E_#w$*g-5#IullYW(mp#SQjKZP6>$}Z*kh55i9 z+IAoVIVwaLvO~Eay1v)(Qc>NP_4y;v8%qX7R@y?5)A@$z_$vD^FC)#lP-HE|JI7UK zB#m?lSMn<->YxwdHs~<UKM`RU-q$8$46cgpop>*JGc0&BkY|pBHzRaAa5@g=ivw{m z-;S~f^HRsZ?`r+>+}+d}O8}b-aNmY&uLXBk-W&<{wHDmz32=`B?%=z?J)7Kc9`XWx zIEW9c05frxIPo#)Zs4Wa(AOi*JTpw&amliD+WyPryJRzR2=sd|?uU&6Z}@7_L)m(d z#5<ERY1TH-A@<ETado1sD(FGft05C*b?W);ODC0`Cy~d@CWpQaIOzv+-h%U-1?SzG zko;~0FmTO!KK&werE|sV%55LNY}GZJJQc4ep#0ADq7t$|f5}y5(DywNoNv)e$Ddb+ zhm>9o-C=IPS!xDbLn4@i?@NnCPYY;EvkpF03t9-8;=Bp;$0Z`Cin*?1Mp|k_;2qqz z;=UxfI@~85s~nnpxtDZ4XoTC=%k{F*O#S0Uz^et%u|H_XJsaH_U7dZzUJuLVIxqP6 zR*ZoUG%XKvZy4z`ygvjQ)AqgUAZ^%8d#y&8%*a}eHefU2#cym0ctBJSM%RjP^kC9N zbanE?Dby7`C^kno;@vT=GFqiaqO0}D=&gEW{COi7-H{aT5{i}$udaz4FQUJNS;;iC zi<~lme`up~^P=oJw2kY%^sm}^wW240KQR1ObmzGo(v<2Tb$PqJCA3FB4EP|w6TaKD zfl3Etw=u|bqlVL4rKL;zj05sM-}xXvrzJr@gUsi%(*ABf=;K1rpge6|m6p-g%z3|X zpn_>zF<-n$*EFbPKJVo53f>Pyp-bRf6Ux6ft814pZ=j-Up^&~fgzY-Ol@6HxVVfDj z`-Ve@d=*tsXdTd_8=nT8=?i4~hSp#D?hi%_R!yZD(WHM%x&yE|Am89QEwgJ^AKG{~ z=BQJS!$4&l<=8y7Dc$?`XWSKUqHWu(x~JP0eiXAUV=T`@?%x3#a$=rZBi#X<yAN{! zdPKMee1dW)*ZZU3DFW^L&LX*v9i~i+e%bdk<ntqswCikB`V8}MErUKzT&LPLM?~Uj zw=J*Sfw8_1Wy!VB8Ft~A9h`7AudIo9Qbd1JinaEeg7HE<UCGex?!8IUjMjUT!c|Vu zv1g9b(Q^k=0-g0D+<CnS--)`BCeY?J!>xelRQklKyHW-#yS5lvpo<Mvty%|l(=NzK z&Mo4|(s>Ubdn{W7?rv?{Pq;G(_w}Gn85wC_d|TVPX@5J)?JO1@Tubd-C^{fVH9FHo zW=Y-C6(vrG+*c;|G1zuBhbZrw7n7A&&y#w6cD#L_wuH_{Qc8V~q?UH-T4iUwR#|TG z-k+eH8*twnRK8*@N0o0A#(Ad~@7tgwj2f=Pps(A#nyY(lu?Vzhi^yGDn)ctdQiT6a zOsw=RH^Zll^tEkxc4~{3w=Nf9u6vSBb$&>Mi>&gA^DQT&zh%Ld%JrdK(q<p>kvI81 zWQI#2bGG7n9Qg>_a>y)(1^--oU3elY$4>fdrD&DBFFhMA=lF1J6327oOti5X<Msl| z{QLbs8vOY$$A6!QA3op*aH^kWVI22eAJ@-gg{q(L2ONoIo3r3bO9HMu_D94O^PQ-~ zl`dSzT+?wy`s|^f4qEs!8i|&*px*UQf;T*w71)?8dOk#XVHO-Iv-<cZ<o)0*IKn+P zrT;@5DY9^6-hTr}6n=;){CLyCkD@sI_^gE=eQ(Xgk8SUQAJuOu{D_}N&;0X?1F!vJ z>`h0~V5NHt`T{bO`>UW&ygsAmtb3o3^w$mgtx=}Bf$QrFm#4Fj<^7`N&Z&E`JZ0*B z{&HjL-o4y;gR=c4+6_6L#La~Xw)Q;YA@H>sW1A=+@jd0EAaJ<__xCP|$woe}l8suu zN;Z;qNAK)*$3(e=brDZk);P;bk^WGUhp+u*^Zh<8i@T>;X8n+1!SNojt$iP`$#Dc< zQsW5u7=3VSVVwO>%}vQ0-cLJPtaen*+K!fK?V#U{J$Js71o>tbSgwkL<#@rBVX<Lw z0-vhpX>z@nYu{bzg{#JB6S-D|e@;6s#+kOKs!C1zE;EfUt#Fl7Q)wJ=^&Pb8qwSOH z%O&8~RY9%e%@on-$FJ&Y$Opj7s%2V-$?H0;V-L!#+N*VN9nhH$S&;sydzC+G31#+l z5urcMM^I)Rt{<jdmHOU|B3wzjhWnMgrYpIj=_jINQ07HBhlKRMUZbh?pr&7{HD>wk zh)UOnZza&xT_}%rT}69qi?&YEMa(ltl4xvA5}z!&dT3XlAy$@Zif;7L-y3tj>N%?o zM>MJHRsBZU(5l9?4z7a@(bpa6sG}akb<FZ<nQH5E)7!eu8ZX*AoHxeig1xSzWp4Fo zad!B38^4>i_a47*7R1J{;s1``|7+uy=$|NgK4^g}SzFii8^E0dIWq_R^i!ezP94_- zo{CC(uCn;dw=vGe*1c(no<-LEAl_3BBL8!03nbsG)(D>}<4d~qm&k3!_maG1=|5Pa z&0Fq6It}U0qrF_`)_@;x<6gJ?=A3x;;d|@i)Y1uy@4apDy4noTRlT}$C|#7_g>t38 zizYUw3I9>IQ&e_kB{e{<EbE$=BI~2SKgaeiAy)d5mA$VkS(EhHkp!BzT2wAY-n-E^ zr=Z95QIBb%9^-1;EA0RZ?(407pCha^=trgp?{<A0bTOof@-e{TNCE7vr4<KSv<~V` z2a>f8$6S9sbrMIKzkcji=!W>-4xDOTX@<`kX<lEw8SYJ9bZ@EVSX-v$ttH-V03GHY z42`yV(Bn7XiSA6~G1R@{c+5V@Q?$G^@)WlDPUyg@oIEde5|(ob<0r=>!;tw)oO%QG z?5X-vRDG|YJ{uRRk%wiMXcMdCSR>CN^hqL&2j5XX!SOzG@pdeXZS>2;P3y{M`^V?^ z`@1+x`nlHi!n>3eU%!~8elbg)LZL#X<jzvR5%(_J%Ku*Tt}6?4Ec?pyZj%<9cLzjl z-mTYT^X{a0_j&g%?T<I_@~wF{l&0ogZQB38=3NDFdbW8qp})U*R1!Cj!utE0NAusu zJlbsG@#X|P=JWggU7RKTT<dz_UCN5DKXD#yw&p=%p7?o`SiceXZst6S$+A;AlXJSx zbl;YyiF2Ch?}u#LkL&u6nqkVl&AJ&`elfap(={Rz)XmLOSJI?EL%k0&ap}Wa19@#o zh{tQSf`AX{>TtF9sPG+d<1ppt*7_K)jUS8nbqKlllk**8OP~C<55?x^8V!14O0~pw z;xO_25OEsw&70L#)CL`ouy}#bq!;dQD?D}~jeDWm=eG%IXuqtzFF8wtF5SFd3%nAE z?v#5Dm~Xk%>G#=oa^LmJPVT%fc^!4gR-`XUu8D9>xkT&Q#r9sQPw&~%bg2d9oz4-H zsC!>hT$xEI6LWN*j(066bHjRPAldphW;jAil4`pbBhBX)o6;8gcA5x(7H#@V^v9?n zB42Q09uWUA$BF;6gMcoSw{Sh_8Z)Ai*V%owQ1#Uabr&nowz#yfV0_!Ip^bH*vJ?8L zoo)^75on)NE0X=s@4l-ox$OziVfvuyN^V1+t?GpQYUgdA<F9Xr&g0y?AluH%{Y&i$ z`<HwcPSDpeeqBk*VS+JPX6j?{xY>=dWB*IMlzS1lCu;gQY}nFtKgVH9Tz}i+preoP zWIxnsf%Ef3k4Lv~Th}VNUL8N)*J8Y9E8n-}ctscY-pM%;!x6SC9#3ZInX{~K$T^Dk zT`)B7C()*+>qJM%T+vvUNxMyG%5JmiB@y7d#Y)hBC-{ahTdr@EIRR5EU@8Sn<-qS% zl!L8z<y)F6R^XX=*=NlE2`j&97xK?++x>Yc=W3}3%%B<fyA#UG*W${Xg~sG0q_@-3 z*DleHbKjQU{VCEeHlv*V-vHd(kiUdH6M3Hy6EBnkPq~J3&d57Vy78EpSSiN@^Ooh5 z02iy#mM*S0V~mbYM0Y*`oRDyAF3M(J(y8N%8B?jydqS?!<b-H*A2ISm*8|rK>4%W# zjUuniw=lI~j51`s@~`w=qijf3gKAxo&#n~dTXm!rH~`vI$+XgLVc|YubLYl%ykF(S ze6JGMnx5Mlc<#ISJOAD1zME)|yb>MSgnoB|UJL`biCe@e^g&~*F&(Gcy#DZGI_5j) z26!y{iLm+V2R7q=vz#+e4pid4(w-wW{C~)a!5@l)-=5EJzV(MU$M82X_U2e3U*fvJ zW3#~C4cNO}x0X7^v)LQbhAo)$e#UA`7R$=DuA&|2&+Z9DyD|T`e`FtI_{U2I^8;P@ zwgOkex%Ux_ImVS^dCTvkJK4UewBS!NEv`(*G<%Q+G}ha71%5TP&Yi3D2nX~C?(zM` zBGL1EuC+Nt7JZ$6hw{@NGI!8FzHRcB9YfU_0mtUHiPk)Gd%Dwq^xER|-IP!MUULSz z-WaGHV$1?7@0Ic_wemcTJic>g<tSvs$K(2bZO%-4l1*=1!i?1IHG^)=IZmJc+7`2t zI9n?eKGunt9jzAkv_lA_VH~gcG%Tmq$u(6GsB?;leAd8ofZJ)fXT3g6eQ(ub>$!>R zf=O?3UC`q9_0^To&*eO#-S#I*qVYb=9qs{q>Kev1@*j;FB1~F6vV`_!5qPW+^x6>R zCk!)uLZ4|roL#rmrEZrJr`xeS%8XxuPQdzYfA8u`(Z>8ZyJC)ILtT$FE!UXuyRPK8 zx>(O$mhUoo-r@0?Yl?~e^!@Sa{lxvAc0Y05`@Q<fER=gaWk0P4oQdtuPiXhxWVF#0 z*KX<{Y%}w*-F7=1aqallEbW-pUsU@2>E5%35$Z`2Wrr}Iy%Hx~<I<)CeB(YxuGcxW z+%(#OY9T**fKNLyKiyivc;2#|ySRpaBk<>CUEv;d_U=01ntXOz&ra(ZWp+(Q%Ma)U z<CF(wyFlBhPqCh$?nrBuYl2tuU!2_!Dq<vsRv28*6d~~I&;;5=e*~^=KAo-BHW|-j z;-!jidwnyi7moXrMPm_Q7@{vi{y;^d&3nl5S12_^{~+$awouu;_kw1747CQjBU|FW zS_2J=jzQYNX7PO(it~M7S;MLR`Ue)y?)yNRvCD$7_?>8@{XBE+basCzd;ipl93wdL zbuBntAR;523)wOHv?N=ti;<?(M5F!OUp|tW6r_*a7-OwGB?4nlB?m`O;(CzxDZ!J5 z7C5n51HNhj?#ViOp1yEHar*;)sOHOObiiat7=CvObLL?75su9{j16!uM4X#2l0#<! z)9N^wE@x5K_h<hZU}{7^l>@F3j4kKRcP~VD{#@^TE4stj{~eckF?!6npFX6}+A0BK zC4CV_0r$BEJva<FNB>lhMCa2dCn*?hr+-4qM09oPMAXnWM|a@4L9dM7jx-H=<ops5 zIeRiW7=1n|JT{^B`reTu`oE!zl|7o+w-Ix7xS=M}pKbXnAkWan=nP+lBhhHV=zQ=+ zEmy|=S&=lcs`sT8<0n8HPU9PWg?oTY8zB$ThnZ_>c6#DepPt+8KI5(+ee1b|F|odJ z?+xp>zi*F&V>X|O73f3ytGZjuE12&q?~z{mRUFI?JchBluwgaEuO_JIhr%Z(XxU52 zqQ5Cq$QX$q&lE>~igsL^E{<g2_e_=ugw7nV5Sb!SjNjkjxeYv|3-9RT%e}ErLl$cX zo#~=(!*?hrlsr)R7-&ovu1v=`Nl!ZmDxU@q>2j)c)##VfEXEs|Gky?!pi0xnK|34M zgm$>Cb)+IB^#qk)rj@ZtboM`ESTx%HVx^~>DoAHahnp(M2TEUQs_;R7BA+cCXsW2i zz0jO%xu>>7n3Z*S_Gpf^XYib;_dJPlEEVE#N$YThBUe<=wo{WNj%<xa_q_zXt;Id& zeE$i<;ibLg&rT^HzL|PQyx*Vjj&lFopI3)Bf&SNmPxR_Z(k4H|eP?ym5$7*A-tW;C zX2<Ji^TAVS$D!{K_o)5`&!cjGP?B7yrmxOy`5aEQ4~(%rxM!ZWG~&Ul3%Cz1-mg&E zY^M7e&gN$&y!0n&DOB`!;~df7rc;+S0!>=lICaheY5T9<51elIbNvACw_uDM+-sjM z`tv{^_u+aVUz{Ni0(?@2;hKC&wKyVUDW!-r)}EN`&*1%+z+b<ZA|koTX1I5;=-A?f zjy5O)ORIIMTUMcr(rV&Fnv7@1{X%svQTWAdwHIj!IA`K_$f@?Z`GG^*tb6(>)>-%T zZE;%nZyWjEV&HU1roX-nKk8&dnT!+RuU|}FhU+H$sFT&=+KAr*+6-~+$y9!qhf?C| zONpy5C9b}dSbclB2QABA-=C#?u!nH{S(cLd`%q?orrOU^i+7Fqf!5Ow@rv4)mnZk- zjTpIJ?seRwSH1SdY|53O5$K=9bljK2G+#o$e$U!xHyck52r=+g{Jw_Y*YSHCzwP*e z?+*0qVqhPB#24bV06&cLZ^pBjdM18z9d{h>eHoBL@<cZGO?$6<c~=wkc6+a-%$E`G zml)H#W-EjG49i)8ayD9f<S9eN+M5%azAtQW8lJOE7s^a?`0MLXUMuK><Jv>J9GdH8 zRgZ#Ynp`qJHYX;)yCUFqZbQZwI9h@$VLGq&TZFy{8gUGI9(|n|W2_4@2>qz`#>EJ` zBgtPcWnV+d@lKSngMRsM9j~zWpge*59-T5~o;Nv5?aQ2zUhO-P=^<YR7!PdcCCFl1 zl`qGEYea_z`pUGOZ@FbmEu=e=N4Tv0E%c>eTKClo#;z33dq>Ctn$CC*qYhCP-=-44 zurp2S+yTf?5tg%5t_dn!?OHTYu?8}a+)IJE$+lA;TBC_ouY#s_r3_TcIAAI+nB2Q@ zfIg?_7w*?w^RU(c0$YYM)?s}6zht#9zU|&<wA_z+A)}Q&0olpz7ad83b<+2DEqDjp z+l+jEYtPNT%vk@i&MWm{d>u@82<;~fowIy@7T-RBZ^zLuCDwcPhm_yI<7dQMo3`)m z(su4CT(3)cd3%lJ^XqWFw5tm5!HXJ8AJTV^&h><-Pcp8UCqr~I4${ZxDq2i`>@R0Z z|4Az*yZ`94{ccnKfiK#7g1q;oiL$;Fv5q`q4E_JhxiLAd2lvNt-+;36Jfi1q%!Msm zMPRE(`F^KB|L(%`A;xqVOQp<vdPU^c2>XYz=AhG-@4)xhA+JTFTJR)fPsxL<eS+6U zqdU+4b#-vDe9jO35YL=9xsb*FdG0hH_M^9>T|4kh-?*)F^1E3k%Ts=%IiY#T3!Wj@ z!WqxuFksnqCROfjpda<ijAio6xnZtH*}jgX2iq1ZAJwyrT?2kvF8ePx#P7>-k50@z z#W)WrN5(P(e<RQLebt<x3^D{+fOWN^Z03=)#Hx2O^4s;eGo{R1uYBbXPV<FKh==lc z*Ei%ojDFjX=modv`H9Ekx4;YNp4sWvx>}anYbxJS-jTF(uZZ}+A*7BfV?$Xuae1z6 zn>UgEU4hSsI1f$%cD9}Rw)>puC{5l*+w)YsG#QVMvFJ4aQ4jj#={X9{V@aZ)F&4L> zjBQDjMRP-~@%gme!v&P#&Z#{D#S#Y!Lc8Z!dk-|qRk`%r4n2~AHX5S*RbA~>A<a3A zw!95FnSN>XTYg*Z0q!3Lo%$Ez&ezO|K8y|9Jup}5Ku3QxSB}9^-v3~(>XX^{9b--z z(x#(umFXM)0DU3Bj>fUh`IZ^Up?@m%UbNYc)x|hnRyo;_4?~(7i~8#@j(HE6JMJ@N zJo%&C6Z;o)Wc<DmXnX&9UB<!k+U2~CK42Mk{)HYDUr(*i<%R;qs%?Lb_W00d$0Zfl zCrRQ*ZfMKgnEz?w{)|Mv>e!362vhC}q3>LSrrH(Xw|6J>ZR=bWPhmPfC6xQ^_b&HO z6UuFvt=u?zDf@nJQh;j`Ciga_OzmAdN?B<s=mF+M*$!TTZ%jA4Tt2-#*8P3v0gn9? zSM}bE%m%YJ0p@E+JDL95v!`E_kiICPjh8R0xFzv${qrJO<||InRY}8&lNoRE4Ci)^ zwry9dZdTH#hkJNR)gIciDvOtLKg8SMp~HsL8=0fxmXc@j_ZIzpwx~5F-y&1`$#==U zv6lYw9`u28v_#|`b}keF@8s%Z2Xt-x{G*TU;{5s|+P+hWXZx)f9-|2{JXn9Ho<FWd zXWw&?xSz|8LEow8O8of-%DxX}zd98kM9H(1W&PkeOs82o;q3894#fG$D?7#WY9Chk zHy%a*Q-$1<5srEi^`x2WyqvqQGFIC9n=40CL^*xCB;GGe4mc-!yJ#Qk(p7A_pf1We zo|HG&Le`YLGf4g4CEHdf<=Df!D6@9O#Wb*J(Nw%MmM``u%QZ~sK60Oee5a)Z?$Lo~ zR(&YHoaJbPX@PCHdaBa`e*?Uh@3eIFZX_-6*L;@}%Om5wtxvA(a+%Us&8dmXL>iK0 zsJI3ws}QnFyB!0_jzgj5>kp^&-V=YVm##MyJpU)-@sP)^5VVEJ_3g^h0udQ&P;rLF zmKZ_Cp`+j3*i%O7$&Dg#;wi`xkSB(36@ks@htUGLwp&KK$W;72l&M?s!4m8QUcX1$ z_d13tdl=av$1?Qei)Pqc>}Y_DtJ<q2P3;er&(%qG%mOPmLXMYlBjmT@Br9%$`WBC` z)M>Q6MN)p@*p+NiX{nc=K>LXE%p+)9kuf>v2PoI5K99k`Idzt@ZbD2K$_K<R=GkL^ zZ;9oLp9>P-f-yaf{yA1mzWOb;zmE0%u;sJE?+;k<ne2J+Z;aIyjOkzPj1PkOK;6T6 z?crTs=wXjp^?Xhjxw=)ZFCoqokZxaTMofNvJzecnCO?q#@zpxDeq`;7OpN#8$TZiv z@5{WGGNk(kQ||wk`PO|PAgp<8$6K2lSI^7ovHj4}<^uj+m1%ZxZeLfO5lElBWyhR6 zb9>+ByCzbd{-cMAQ+Inu%*v&23{>8(&C8blqaL%vgKLQi7&gznmvP~$M0Lj&ysOpb zEiV~SYk)zN@$%KFyKCPNl^N1juf7qdshic#6WM%DiTh^fX+oYaNdNT5WxT$2dEZq} z8qx_GvQ6x%FTu~FbrsF7FBqYHIf_p1fK19*k?fz`k%gECxgj9IE6>k`{<oO)UGe%u zH7>cYj5-VL--9(S$z%U{iHv0!;eOk*fO`*U?RVUywFhU=YdHoT$pJ}+tZ`7|rsl*+ z%x&U6_k+`3-Gy}YIUW5wz4YJZKJJ-u@HlU8$q_w{zSZG1NLwm>2i*78Y1@iAQ^Yck z#YW5_#v_z_e_SdaKp;If?zg2Y*-Eb6Y+j^%(lz&TN1q|rI=JrfGUI)WIK$+@iSmb> zKP}baSbG#~q$SkFz8F{6GOI3!h0Crj$&BmRWllP~4p}iB8P6bo{ZW=5NDj=#_Y(FW zhuv-^56>4<`;Wt>I~K=srhGShIT=<to8!v4{)*+y^v7WQ-cjI72I#_d>7xG^=)ZL6 z(n0C}pZ;<%*^G39MttHr(gi#_&B({C`;XyzT+0~W%UFL}{^6X-)jNQPXPl=0Xvvlx zyPR6i)2<}{(K{eF9nf>em(V7vF@|oQjAwkq5+#R|Cq0k;ZiHNUUp95jyb#kd%?IMr zgpejTRrG&tPEL2aT$joXeRWP=H~kC$V9W{iX>+FJBf>Qb`3Pgu-wwU!%`b}y#^|K2 zl6gnLd$*xoF3`X=pnoz31KWJv%e&U1ZHF}xVLE<ix;mse#aO4;AKI0M??c5R03Ip7 zFSXJ#9m{f}45nR*bhTERv}Bd03u$UKhb$|2-Ow&OO`20gEE_`hmEt_i9uF<H?#Q*U zG?dkD#T2MQdB4JV-iCTxt?_Kdczz8q+;QDc)p(|eBUKsVxkfzKrijLfksi8${+~eK z?glUFSuBq9>UrZ&8FDQRbY<Q+<oiY^@_q~S#8*`vS%JJZKO-;WnkVaAs;RoTR_;Q2 zAL{-X(jL$X#`(M!_s!ZTFAiUdHeN6?Lg(<CFw%hEX`vI!CjA`OGpVyJ#n`jVAth%; zuC>=fxz7`QE7w`MH`OV1R>>Q#6t`=HePzjWv?bg0mUL|x^j69z7H#9&7v&ksFSQnp zTOes%Y+RbH{+2%Z4(^jx^mnh~XEN@y!y|$Yhk`ABU2m%1R6Tg&;PiUO0LSPDV)7H~ z9>2`G|HYOEAlJBP4|=8KMI&PGmx|M|USS)5q4cU(D6762ogR}po}Yj7(v{;iv#uPu zuNnH9OVONx#p=3viMoFNqFRr6Z8BEQY;l{|2M6Db?&Q9ZE5)fj26)?EUd>p$U9>0F zg6`U}bm_;~jBh^!OkH}Wj15LSc`}W1cxJ%&vN074<VyN1%Wr;Rb>s=;>3qS6$mj2` zjs*Dpefj)s^INw@zRKsfQq}YMTO-@}d_ERyWVZHEh7;BE1DZ$*d~mVa|8k{xZ=+np zw&H--f>!<A9OZM6qU`BY<$P?Ga^l<b1+MX?Lsvi<mM-(St;=vuGM-e4(~gUFWqz`G zp&H9CXeuT(`N^(@SK=pErbicP<AV-)0p-6#eGjz#Z(T9|`YD&>uiM{kp3<i2yBsb1 z)63C*@+b$cw22Q*M$7DTC!V=c^o%6?>(9xU{5hfEjpP?OA%BwC_bPtXsVd!5H!3?< zIo{c4miXd)HOsY}!+Ykavo&6GTJ|B!zLAbGm-}xp9(uJquy+pE1ad=ApnCSW=y#G6 zvfo8HPA<78@#qsS5twwTSi6kb<;uL{VxIqrUDTHclL=QIbm5*|58Wu^D)-wqrW?5@ zKUtKYH0FmGUr5<pi@c^#aB*L1muy3BLcILk!})oHBR|A;e8(A!E0T-8=AHp%<ICsX z|Il9%{v=VpU(fGe<x;v(Zi_oG4|wp6dg*T-+Dm&}fjF`mX-(*o3dX!p4qz0TDC@}= zfnGg-eDCF`q|<{g+Hn2bxlX>=#kk+|L-R1+YzNyw-af}_2h;DfXvy;~We0c&{XCmJ z@b*)*2NG}pG2V~bOFP9daEvj?-bOo<<8W-isc`HCz+y(D{hisAxkck!P8shw%r)tg zps`Wl?FmB*K)Z<qto@ht^BpcQBVQ$4z)yaA4ENk)I|@2Y9|)E=x=KVwQ+ta*uPet+ zYJt(Gw7}Sh@oqJA;Dee)#~r~@>c9Lgah0B2t)XxAz(|7@7(OWi<R{X<m+_tFn~{4^ z56d4$UH==fjvmy>r^2l7w}6SUd%0(AWC`!J;2SyHiWtLpjOiXWg0y8amM_mOU_4)* zUBH;WJP%>?c@Z8xYi`!1Ei^a8GY&@oQ`=0Rh|x~mZ_wp=2+vXOda5q?Hsd?35E0sW zwn=|N9bE+d1@gH+UB>e$m$XI`0V_6PHp{j2?#CHtcKCKPGO{5SOPD^$!z)0mKI3Qn zzvrZ%4$}_C^xokQpl$q?Jo8(LqK%Ko$87v8`iW(}XL+-H%K?tiH-!DmGo%<NdsxaH zj*x6~T-vu$PA}w=frN7GHq#!*F^m!(j1|Z6k~4-w5vRiUEVV`~%bBenmht<zGREV| z7<F1}Ceo+;$TXh<<5J9SeqnCn`hpqxIc=L7<48bnwD$S(o_bTmy1x!H9%VaZ!Z&L& z0vXVqeUrBw>)Py-{+Xr48B&jaOxZP$K(0QL6OHaG`P!pLsec|sTdsCakA=j&mcEaQ z24{vNjWo%dC9>}Lh<S{2{~?Eri@vWgE)UmimLgADrU>vHh`Y3$?%zQsWjyu<UG)Da z;7S2pwSa5%e&0kL;JUszW%s`WuCEKvsxP#9D~9rTmKDYm_gvefpMM|Z|0c#I2c4pg z4ehS1gB;O0N1S0iGvD$qsVg{<zB5l$K;}5I4S8rgX1}el^aBt2>ai3hcjjqoedMp4 zv6xI3=9-a2yFX((Qsy*;I!9#rl-+r{-PJy$gE4^0Xk&lUlyUo-0dG6%=zLOCc0Qs7 zfv1s=TRgx4n#?`eK7D%nCM&(k^E@(C|1ySqvkNe5y+w>gJXX-Vi&y%4`H+@z06eKE z&qeuFZ2m3i&-8Vb+)%OfXUX^Oo2S-Qz!3H&&c&@5*Qez9(Po%F9Ib%wfbJY`g^nK& z<4Oz0Jr_HVefSD62KAXR3SE@n>EgPL)0+s_*8vypL8xP&O|O21c5pm>*)iQ<=6axY zMhDun$r0lrA9UF3IWJ9%C(@TA!UqcQn@?X`fBhR6vn1$wCk;)WbFmk5a}VVDf7aAl zQT<5QS73&p&oRT?L*Ij6>m%k4FMXgX|5axMN`cF1z-{_NdyCU{*8!(X=DD+LN7T6; z`3po3fGNApA=gR6zf$|}yuXav_>}0!`6FA$_l}`1yB^AWthZMem8_HXv0lr6!dr^E zy(0sar?Mwj-j^#1JN3La+UTg4@a!G&4&?l7Q9ha@_mZ|%OWRHM@>V_1Rh4CSd<gyV zN&M)8Q&LU)TGqX^>6C0y_w-RJ(W>P={StNo4(d)Tv>fjr=qJ`p-+PD4ot!T1?BB$9 z>c)h()0KIzXAXTq2P#K1ZdmndiWzo^zIrFuXYiXhR}}W8=-E6wVp#5tdbXbTT=R5^ z{qnvzUB&PoO%r8|i%eTKV<tOE`}0Icahho4d<P>fTTlOAv{{{bRp5Ov$vP|H<?08{ z8as-lpDEhOzHmE4$1r1Iq>B#v=0R6(XM9bzkFjKGlpU4puHMoQfc7Pcem(BpRUeSD z$8&7+u~apGxW6U%h`WL3y*fT3vJXXj>+Sg1FQ>-vlzTMCj;n9Q%J+=6Us>)PtK8<v zsO(Gn>crQZVt<Do-ax-W^lgsSZu%*(AK6coiAGV!DBd?%Yn~C@Z^Zo$O`T_R4*j(E zrLykzdhS}59l1)$Q~pS_F&AW=vA@!%){0)5)z5Y|`S0KV6Z)c=D*o_;0}1P6wjSdM zah}mnq$@?-dk*uEboA%wAKDh#4*Gtv9o)C_Ao>oICcG+DopnUtuYOUuvKRQ(EPbf= z*DIT1U%iTb@ofDzS7Ej<MTD!g%#Kmoi#O*<yspxcWFJ*&4jB`rN=xscUm10F`ZLfr znl03ReEJ1fX}M~@zgDRB`)dp2^%E9M*{L#an2gaz7=qS*2ii<qU7$HNXbW(aK1Q5l z2VPP!SPtk~hhN6=)nyEp8mqj^DXNY1VQ|X%;A|&7rESw^>6*3Hc$QdoG1iAO6Z7zU zT4`s#2=|DJmDHOY+Jfcu)#=ynUsanb3VU^j+;>OXa4{0yIgqUAg1gw1dlO}zmU%Ky zu4b;3HjAt^;W4Ac>(%mIZK7h8+-s99!j0MuD}DK9xQ%VsQkJ)(Uhs}^t(Li*{qEHk zEpMAcSejS*vYDoEd22SGeKMa@OO<(gM2YpByqs<75gzL~Nq#5Zy&oTh<-j@a(<9!^ z=2zOPXzH`1sidbi?JkwFQrd2Z6S53wc&FxQYe^D~Ym+KgS~OsL=`~6RqAbaEwV%i_ zLce9`a%_*KsQFJHHLmMGN7-zhyXXD10i9rpxmlji<^1#mgL40t^vm&n(2DyfE=L<< zb3DhJagCbe=45Q{+5GIp+!uqd7ihuXx?^_XQ?x-@v4<A7w(VbaS)Gp*Jt*EKe(Lw9 z)~chOMv(j@+L;t24AG^~XUIP`XqB`%TrdppgpuTp7|Gs?MvB*XGrE(0M5QkPSwN=0 z_SQSBnE%qZ=qa^_hdx2^zSWD7jxzK~;5gIp+_YKKS-y$0ePjQO98|HKzC9V;`SudI z_n<7tvgQ32`sy3TJn!p9q4y+cS-kF?VcFY9H&j=uHPGCUo@&d1Kc1DY&2BH*Z{d^S zJ#VeMN6<gR^1Q5M=*vl7>YE4A|EF+0SB3d-wHX}WAOdTgkgHO}GT+rA*ya@6pVau_ zl&Q1Z<o>p53y&_LJ=sN~2lPV5TxZ|jkdT(=*f|WvPu`OL+Wz`ex0+#&-4MR>+sKYv zN=Mg1hjefBIyI3!y4nnneMZVaM^7%%<o@@YHHX*7H6$(B(v9Xx-RPb6n@e9$yQ!3G z4pHF!Am+r_Dl?o8T3eD#o}J##m{DgnvC_`Ja<j;088;jAy{zNBTZCB;#=&csYnMk} zyG{3p?K#Q$$a!hc$#|Knojzoc4JljM=MViXS@iUy-RIqMUHi17*oMDA)<d5t1(zPb zuIv3V^37JSEn6{vqCD41KZH1a@7P<>^4Cxf_j>OE43s4(2aIkQsLa!fmJ^35SH#{e zTuwTD4)?Ut(Qm79o`U1wXcx8M*sqJ_gk@rbsEnsg{LcM$6@cY2<XJ2Gsa@(*rN!yH ztKJZmD>TPSmi^LYd0wb@AMl*d{RZ(o&-*$0>H!b=j_dvsFCWz;UY=Y{`%#W}1kW~p zesWUnDV2VZLd66B9p##b%^j}-<{)&tG{E5k3?+bt@Qtk=s9Xzp`tYswjhV1=kKwj+ z=-29oHD1Pk0L@L)xaQzm({)Z%x(#O=Wz3CQ;Y#)m%SptGrRa}Vj*T{dxexs@1o_b^ zWktwYkmGhFTlhGo>nnVS$ML}jL^g5T##7>`ji02u#LYz9sj%?oU10*g5GMBV{TSbL z#=^Zq9*(Og&(?8<u4q@CoeuqI%5GcRY3?|L@u&cf6rlWh#N!9QBy|MRr_v>9yFUya z`-J7Y>n>GzSps++;L%c!z<rw=v_x~czM<>gTo<RE@EqtQ*RI#QL}L(nt6D|JfI~F) zrHDXPxsWmg^u)?@kmqhB&TIK{UkdHMc0F~PT#GrXD|zK;o|f0mJoHs%KH1OJYFy+Q zvCzZF2NeIDFUQ185@qx|ao}pVjqM`Orj4TsJexiNr+|M=rD{!@bCYrm(=)AiOjOct z#4~USTeIGHk$zx2A1mGB+bT|ek@vc*)LFT#hiNIF5q>_~<<d{<0QzY4g{VBcW~v@( zbGczvt>%{g1?=BiBbKKbvNrkoAA7vhr^Y)yZoDCPyw`ZAsPVSPn&ZATjpJ=@=6DY~ z(U-1i<Gq>VcJs9Hj@85Q?y|<aHa6ayE8k_jYZAu0Ia!T2_u$%XW4q$Vn=(~1b%jzT zR|iq==m*4R*2O%eMPB5o8&fzicKbl(Qarc*&c=!K-5mRpGoq66{*`c|*usgvB}$G< zPr!-v7*1^7=u$Yb<a|6%q`w<Z$UHth_po!adWUDTyW!n%<Gt2#XgipYGKmqoXe5Qs zT$X;GGUnn2;{GEFcgle~xxk%#`rSORX<|Ow@bcpMyX)Q<s4Rt^?KtS^&S8uI%=uO^ zv5NW{$L}!rdw{N%f_7g^o#W70MJZ&tR=n$lPTsuzlNWhTqwjK4#or{0tdc{c^nWh9 zn`=Wz6GXl=<Uu**DbUSplc#Kt+0ypNeGrf<I0hSQuI=W2p<47E`2^4Y;&^`y<JpdR z)C=8^HcZ0b%6)aoA|Ts<@$Jn}vEF8U!&q;uzV<M6s8J(*En}`MmTM#hUivp|)C<@0 z?9(?e-miln@N6!5wkhP-*K>I`=}ej8pTJ*V0i9=EZjsY2?sqpFMqPcFU#;MEUd`d6 zzUIj4Evkd8)p}0(3SN2sPv1xLj(b|{Dev>p;VG-1gTCD9QfnVUL#>fKhii#to8`LG z^T`vdq@1(v)^MlpXkQHe=mQRrZrC)0^n>HCaCN@K)l-I82^~870P-B7UyoJ(w+v;& zn6Lcny#)nw{V01{ULjU}Jr0hoR^Al3o|WfSGI@?SSFI~CriFKHf%3hlj{8L`{UdQ@ zR2nh6-aBse+id$qW}O#5wEZo-Bk0HD=&w5-GLNy({>-Z9&bWHAHPl}m>$Br%{|S$1 z98&Y<@ei@T(07ICv$_X2PtfM>`as6+wP^R#?&*DYlU4q0R-b{<=iaeMlr3H4SXCU2 z_Sfdo?;E<-Q+n_-n0KA2%GbX$P3_ajgIvABD&xaO%yx8M7d^*N*4yYy+Ml^+<JHTl ztNI?%8fX`z{i1AHR}pobBdM{yFF#g&c=T+6h#bT{_Z?qt#BBM6xOZss3}2fU(x=DU zwixr&YO8Ze#%|9%5n<ceZqCbSfe2rKPR4o4Im$Jl+A+mr|EkD*z>_S`Mwb40qe#oL z)}kJ357s)CxfFBy9Yd7y8=t+uQ+!<JhkniZ)22&bRhi$;%RZC&G3Q6<?`r2i6PKTH zPp*((<~>7uZN7K;V!6JmV32KfO1r8nX@c_PD~^`r0M~h>U+SakY*g;2lI?;#&2i(t z_g4CMY>B0nJPvaAR*a8*1{d{TS!Ns^*@JOCTVO`G?|ba2n$oglM;diz%IdPr>Vz^k zsu*K-nWNByXk&0?-SNOsDs(mQ&s@!!7C&}u&tuMsmD_;Ngjb$_i23xL%hktD7|syO zVqbjjvfOLrt(NkVS;^Q>edwDvAuEhQo*u_9s;7@*ZZ~?t`<q%74{m~tP)&O=&oa@{ z$4`jqvcZ}J*}$neyW2FenP;DjgU3`M&!dykMrq?Bjsa$=hk<WW5A$gSl24X_Pcjz6 zh+L=6_dX9@<!9XMlF+B_Tm?_N9-HHTVf8cPdGa~e@*8ybtC(E5*1o(Obw%5lmNo~@ zJJKkZ^81oLqHA?EKO5r8pQGEf>R;Z2k6+oZV=zzj&@WVIX4v`A)VjmtiR%u^_Al4? zR({B`anN7&gK_ZCK0<xut-RU&LTrDkVayHav67$US?yXFR}Ouzgdu6;<D`xBY2S)5 zCww++@p`nB(JlDafR>HYZ^|%ArN2~;h;UAvz&siO9=|Bh(G|HDG*xd@i`Dym&F;^* z{SVXk7kEFFuk2;eOCRSL(jLAL<%L4kT>q8hT3fuDwy9OUE`<}dS`E)SSV{k#x_m_^ zx#o8Z?mKlcK0HYuiCk|Do+Vzz>HlIfI%EFIvmB8ABKo-t^J_N!xQ@Cy@c4Pl5C18v zZSm*hCay=)cOn|??HY|9@8TLVgwEV}za*}~@qD>awDCDD#wYI5l;1UN+Ur5<k*<<4 zAji<oH9{P&Z5^v9$y59Gi<88WEz#&cO;hQ3zId&5me{8?b*^0E8NPP?Tj#0s99dUj zo;+9Rv}0LKxK=n;^4!>F_V3%#odY6s73j^%0lcSuz6$sgw9eL1>vYd%zhmvQzQlL~ zGxig|Xw4N(p4&nB=Sz%ZDP(Mlo?oE;Lcn`H?w<gxPcUYsORVGGSw}S5$TeN!-p_s; z-MLxk`I-Lu-_JE8*QJU;nK4j#w=N=Y8X2J>&5UeYBpO`5Y`y<wQMmH&Av^X%hUB{T zT}Z<|?0rFWjOy;?7qYvGc+WF+xDL_#4~ouRi#%n>!}O3dLxhbs6s`rdq=?2hLF>9| ztXTS2tNlq`FNt;ZS?_v8SMNV-z5feso!qZ|IrhHmKg7B^J9Z5B4Qfgz`zq?}M%|3F z2bvd&kHI;t&J64zkG~7D{XW1>_<pCUcoc3eL&hV(81=9pe+_za7y3!Y{6v|XtoAt2 z7M8>Otp5({%pjNZ)uOd~^XC7t+Qqn9j2Z3L^4fJ=kL#{>%KN;!w6zbk@>~sdW^wLo zi}U6?r4D9BR%r#^bikWy!TW3af^j_=_ir;+scdVmJOkwoq1w6^*Pm;Jt7x0vtc%EO z_UBffhb7d$wG!n^P`^y_AlfzyytS5J&?sbre;2X&^Ci$6;99mk2M6Wv)Eq0{U-{3< z7zyt)Z8qZr{we0xc_V-AmF)0|`N%s-S7(=}r_)*PcNsPO+a1n<T|7_gQJzoxkhYuW z7LxAndFv(_mv9B+3(7Oam5xt;JI2+JdOiIfcrGWtIY1MdHAx3U3k#Kh8p~k%uFJ=V zn1^=Wfy>c;^0WuU^gYjsw30kX{N&xwYkJ#?zjHperV;ugWMtr3f6lL~BRM+H$($Y+ z;dSVMYCR!8q<rCHaS{^!zWc2B3sO)1Ni2o~V=pvJM)%ED)?W=rcM{%N*HM*Bb2@F% z9bmkG+a5NLb)9+mn6tHgzgsxlIj0#rplP4z;JM$9+d%JbR`Y9*rs9q}PV4Kq2h4@% zLzuf}V4FNkY#Yk)WkHT@_3fW+|Hlof^6bZblAez^0&<=4akZwEqe*`T86)VL_;g3C zbbb+Fn%T||D2hujta34OGtL*zj8A8k8-EV5>L;GN8arp%_Q|1dA<u`id0{ZhKK37_ zuG9eCt5?q%-zs^6E_uT3Z$x*#nPWz}oGP|dbBZ`Zn$>RkP4((&<9)PiXtbfFcRN38 zR@OxeR{8Wa8Go})cOEv8?n?76{;XxYeNO>K%&C2lMdY4j);G+!Som$Q_%+X;UTpE? z@5i<0KHSIesTxPS$I$LmkRfjaZ|{UGL^-ajb-cm{9?uxLJm-vOi4rHK-dpF4k|qF; zj;z7=H9P}PgU<0zbRWyvE9tQ&V=f7ozy2iGI{?o&0E12A*5RHq!mlOYw&}(czxLX^ z_neAJ<~{p*bmu7gyA6ESG3b^3S*7K+asMJ?UT|$u#q4Rj->c=hIQGQ<Hp`Y}#}j<F z{!Wym0E3q}@Ti(&^{?4}IB|GSU!cW2pO&=b%uU=g{j6g!+4hx`G|Z!Pw`pfk7g%$F z{Xjps>2W1yvrD{apP6~OU`tA11oH63t$JYIL*_BkChFG{7)$!k_k$jFgI>3(*efr4 zKue_mM}}y`Z{Kmfa9lX$dc`ZwEmsE!n+s)*E!BeUxPP!EDe$vf%>8E{*fhcNWNZ`q zL_!Xsji`L{rU_kasjs!psvfrX3sW9`-Vpm*<$29|z+tVsx&KU)dah6Iwfu14gq6pa z3mVS2hkQR0d%r$c?a7zr04|4p?sGz298=mujsgEh=j3+Nx6e7*J4BdiOFe~mwUbRl z4U^6xdrwyvd0ABM1(oHj0K8*MtAp&5mWgPi-FLEFMcd^*&ygIZM-SU)d26EoF@0u? zo4UF4x?P&<Wv>OtT<LeB%A{{GudQ+Wl9--8j1G)ZnwIwRQY)Y0S64opK5;(<`%r(b zN?x_WDoNK?XNrK|fb6DlEwn<j+7rjC=vS}@^^-rbKS5s#<M&n2KjLaD9#K5r%le9M zRP|Ng7+_tTXX~uGxKAOmF1wDzy%q0fpQbJY8W588ZMo6jyY5xEbYtK=Xv1m`coNFw zdD#=n-yrmkks7)lutbo)Qjdpao`hxe!)D|^jrpP98bzTuj6(10MgjP2zL&A7)%k|G zGIp-VsCtcb){fskE~IV;oJf&#IX<tQkNBZ{cdu--opt<1tp3zKqQ(#HqAqmlvg*^E zS;o(nEoAI%Nn=vt_7-0`j)bhQ`Xj2omXApO&HDUo=jExmF>&?fTJ`048FL`TuCFC! z+TQB;I%m|k#j0;_tUlmg{lENI>MMS?`lidDs!vs2T<21K`_TaF9YDR`Q|sQL@@e%> z#r%>sXU0HCwd<}<vG$m&Z+87N<A6-}`=y_n>hF(E$KMtOiwVB`s0GU%v%mt`&uio3 zG<ZgmZFsykU79^U!~2|HBMI<nRa5iJug{!cpSb+TpI<rl{2KgY%&%GSp}I=8@!ZrH zR4IHw`xaYxST+kDGG;d6BQDx!uN_^W;*BJZe-J#{t2xQ5U*Ueu+UlghZAt#4O`2nz zv47rt^lx@C*3sH8iwW8<xo6e3Y0L(<)De~c)9D=WL-NIP@aRq8|IJ@9CqSJ0C4cAo z)n&zVJGZ(g?6@7X#eklUr^=>CJLUoU|3dEn!(7orzfTC7r(eMD`2rChk}+T%?NB@# z`%+|l#0lu$`)F4U&J~doD|V}+JVVA4W*UJszh0nx)|yr9vn={n+xdA;G-R}AYl~y& zecSoIHyPc@d-pF_O!ViNVV*7fAC$oW-|wbkFJ0*z%-PR{{@h4(XB%VNSo=&%lSF^1 z9dj0NGd6KavdE?%DQ$pN$wl|_{1B)9$(259UjffRV}2=b+If?;2A+3s*<cy>OtzV8 zzHMqhfr>w^S#f*k$QW4JPCWaO=hhLmuYN{c6gfV&-<{PKx3c+uWv;TF<*1m=r%N<{ z_=|HK-OqFHlAb@lCyDDQW~2{e6XM=x;I%WZt+m?Bwo(T;BtE$+9$v;2;MtTRv_FWp z^r5V$H;BN~pd)=B5Ru?gl>b58Lk7p#M*0dw<f%tR;7LOZ?0pI}9&>d!cro;=0@{@y zk#Tx{JY(GKwKr+^wd0J?_PasF8KE628r4f_x0x;0NIzqZtj72hsMyk@^Ubg)tE<S~ zPn#HTzBS(-JJkn_J<C2AHqdX^o55TyZ7pqLjQi7>EyCB~{l}nV^4tloqkMm!=)t#k zu8FkOi$L9EQ&*|BV0qo7qpQ!7H-+Vw>$B=|ICZ%vbSgddkLl^(bziGIZ`O**$oAT2 zjPu;#X6hMsJ=dkla|I-g1<bcDkT%yTUC7>t9>2epbfR~bxUExVa$Zwjx1Z;w$hh^* z=#L*<!n{J8(n|c<svpu^@$Kq-L~vhAf}WFTuibCc>1Q2V)P6GRfO4(s@6648^zry0 z=5Dg+&n13}zpBs65`kWq*|FoFwiS^lue0U^*Bkm@D(fb_${*ZO1fpHWIl}d8mS0eu zEYGo@=ky=-gNBlRN<VUkc#bxbpl((MHL-G=C|osa(NxAa^j*GXhvPxt1aN1&w|L&} zZCjfrApdhtRC2vZ#zMpo0?WEjOh(J;r!||c?7jH1)blJ@=j}Bl&94B=q|qOOyzT<r zAI|jGe}g{CfNAsr-^3xnw4&Ix8?Z&ZP7!EI7H4QL_nn{(;{Rdq-Q%LVu08O5<_vIV z22fylI4A>J6BuLCC?GU#IB3#>qz{q2nui!~lR=W+;v<nH2GH9Ur4J|ClHhI8*au9K z)>KTKrm1M!6ho3mFeXiUD`<>^sF5hjXmEb(yZ1TF!@;EY{(k@c_<Z=x%s%_<$J%?Z zz4qE`eb=N}&cnh_;W7GzUK95m;K`MeutQfRaj%d`pV@xVXUHV5-Lg|z@U2v|bX~W< z1(=VMS>nnR=EE9l7^}}V>qDIT;~2M<7im*wAs!ySKT7$L2W{dyuqdHt%&vWS#5Rcu zEcbX;gMRjp2wbai?H_{XYag{qjThK}Xy2RhTql(G9a<m1qJQ{(AkRJV0iUkGd<^gh zw8={J#~i6#x?%+P6<g??x}~`z%Q+s)#G!dXd+U|(tnBsd1t)w@7#o5;Tar`{edh+~ zJ82=m4ISo~-jjvsJvTt_`TD7V-t$mm1idE<)q8&VqQCh{dQW|C?2D1wX>aSuWXv~B zv!_D--}wR<FQNT;WsE1B74{_VvnJN@j!D=F(%Cw1hlyi()|PQSx6E}o&{q!7-r#tp zwLF{Kew#V&6yzg$@f4RP*Kz;ud(zn^ldxH?$$X*S23a@z7pkujc;do74OpVJx-JJX zt;2OWGwB`LX9|I}aDBRn8-n_$nMi&yvYH?Bdkwj|jAMRsT>GJ;F|D=_seawpjQYC? z?{osYi{9J4H+%31;&exM7D6|cNonxkh2AOnebA9nnR+=#sGKbq{CV$Q@HYqBE&=l# z{kK0aYxbO%>!09DxHUvS_9sneDY=hKW3{yR3}Fm_>y9zOT3;xzRJm^^e2YLcJzjwK zG4&6-4ay*}aCTe>=mvr70Qq+YA2XvH@tRWmIBplW*GGS#JH|ThpQhFxCc6432prCb zh`tL27OclUk<~mD%_{!;0(7UU2et^nDpZVYC--L<m237HIF8=XuWafCv=?Kq`^8uG z`kQ|oL?@L#y+<^CT~fHd?k^$qT0w1CX~g_sh43R4@m-h)`y=olVRLef<O&@F65|An zBh>xh7H+2{>_tEI=jr_c4f}*XJ;eXf?v-lxT=0+Ek87zPcU=hRI#VtPUFVzrU_8Re zczFqNV_0)O$IYsb@1>B#g7(r%lA&hCMZ(b=-#*}CtgsIN#z*CRn%5)?zBQ3#g88s( zU~en0%<}<fgNb#?aYuCA4P~P0DWP@nWy)VSpZOre#eGKo;r;r6>eu~|p*PEtfHSH3 zexcz4`eOgR^8OYZpi?H%3HS=irvghv`80qf(#80>X}cl`91)fJvw_9~b^bG~&e6wS z7V;-BT4;WI?Tp)ec&E|Yp)~sR0SgQMS_9jRIh=0&Q+S*QFUc>!Xdbv)#Amf+GtUuV z16;>&Kd{|YoazFvIDCZU)r|rJhGc)=@d=#%ynSUfufcP&Zx-oQ&@I+VwRq3;eVKpS z_e;L-(LM%T17I5T?+|5e<(M^>?}wVa*a7@S@Ye+wgr83+u8AghQ<;6+4DD^2-Bmm1 zvDAlj_=AXkq5t0B$~h*c3SBq#t4I>_q)#@v3xN?se1jFJzWfV<hp?HdZ?^vZde!$u z{d=D3o2h@FPV-&=o}>D%*1vy6^?gDAUQF{w|K4Bh%b@QZtL)VPuFi7M2Iqn!+PQ$z zzT^*J>V)gTaNe({HGn%HtO?UZE<f`1fb`E=6OWL*xsleya*j!w<j#wT-+GxIVnetc z2+0B4x2&JbeRpu4xc;KhMF8&;K4g1jZfDd3`&Q(G-T6%yITmZKR9oLe`(e+P5%CV5 zAD}Y=^yN2P6!%!Yw5KDM2KL$fi?FR=d0II=v*7Pb>F2q>vDJN}cK7ufy~Ep@WeCx^ z9pHVny2Is)#`EG{GMK*9{_XWzzd*-}7lbZTzf(}@%!NMHYkitPZP`Myy56U15m&^G z=e=5=qP0H#lG>NZ_bif|v_5I&^o(j)Md!5`rY5aVE_!E&Hdevobm#fY@rXaqIQ{Ly zXOGkS7edD=Kf*ZezaZLI6*Nw7TnHVft_z{#bl{SB=k9UFDbg4P+W{%Kv&yo$?xk`u zzu7ti@0S)Qg8S9IOmwT)&YQr~#QkD8zEm*3*#R6SjXqc>OD@1pi{y{>hOt;=WAb(g zpOW1Ax~nn(vm$8S^_O}~ZSy=u@Uz5uWrDyuymH)ot-O7oUEW*DIOSd89!}uXNbdeJ z*cCB1{E~N*%nI2Fm`J#bLwu!!li9)xa*U&6ORH_~|BzgMElco|Ea|0s%SQq-LfnXu z5ng}|8gS2iD|+pt_95VvcsHw_W3tWRmzhss5m>pc`4KtI?X?K(9bt!=?EbyLFV97L zeo19*jTL&;yBus&W)kb@%3w*f@02^L(ifH$O9>Xn3hlA1@JZCmMqWhBUfABE4LHko z8Cbb(3QH=rr!UN(!V*U6>U(M_eNoOWpQK0AnSuK880CjfXdgYZzo~vwkkHx!9cgy7 zDC-emB%7IwWVAf^9dlfD;^E3_v411RdA2OdFukchSsKkc3@BUb>w)g&As*ugd8PF; z=(%(H-WJnW*uoimSi(~JTy&JxRB<1S6pNXDmrP^}V7qJh3QIyCvOc}37q+|4jQaEM zlSk$pA$o#V6ZN>pbUwhn{mJzD@&~Ccjj(~51RJP0K0h8CwijUD*GZ{-4z*H!UB_7h zWQj(S%}hj}DoOZgIEM}aTO`3bWG_J5-{i8Phy{#s`0d;N=H+v9o4j;hdOnKB*Q_b2 zPG4A^_;ibj#slSm_7Bqe9dp1WrFAQ^(hZDi$JWLcd?J=|+Y600XA~=3v~|MJW_o8( zj&)lQ`($-}Pf6Uq7T9!|+fADlYMY7Zw2t!BNwI_I&mxyJguLrwMc&|is2{!$$a|A% z{sjxiP#!;DNzm^)Y7h9tcrv@t*^hsx8OiVetQ_TNG_wTQE10RiN=Y4EBpC;XxjZP* zc};fDyZ*mgaCWVaW(int=V`skHns_V>PPQVJs%R^hQHz(dT!szY6eqVTQD}q-)(Ja zGazoLrMpD3Gy#v0Nl8sx4eMIAr3Kaz>>rNJP{rD#az2z(9pXO1>JT<LNgUrglHa-D zBjJA3`Z?MFJcAnN-d3AwI;}10kNwr0LF^5%QzZW37?z_r525pK#aGV<_=R*{@C$B> z6~Py|Uyk8t?_dAZ-<(hLo7Rs9eFr9tL$WrZ-iNqNtB7ms42x@PhyqTh*{#y&lQd`X z{vhoqf5e>KDfGp_y=dat<02lCGm6S08P$ncvfA2qQ29%zu!1gw+GE-?yU8BIUYJd^ zUT;Vunx{2EuQl}r*(J%1EuiD=!~SMq)Kn6`cm(#Cir^vqzCe#lD()XVaU|<M#76Q@ z%5i0nMic*aNj25*EsJJpZL704n?@^po#xKM8LOj`9$Z~!q4{2}NU@e5?=+=5&6Gcf z@%(MZp#1U3Z{Ycn*BQ?W8%?p6=cAM|XCm+s;w;WYR#;>aco_=oEVS<tdawInUu0yi zuM)k+vopc^*f<UbTKu~LkHG%@!37W8fB*fV_Gkg!3&ypd<^}E*fg#*X^J4~$vzus= zMttTGiRG3MZR}D?HGIZH#(s~Zsf6bEqN>>iX~d)SXK269`@u6oU+|`DWR7u}r_&$j zYK(y@Y%a^28MoiaT|w_~J$D4`y=*C|8_zMP`nZoh$zFf=H?PugUsmkRZaQQTF*C=* zy%Y1%>ZUdBI`wyfC9o0kVuI$`dNEHtjfRnYudI|I7LZxG?a>3zG}>11yP3#stK6I0 zB+5^6ze{DWc|zT&^XnV_e&w;m`U|(|yIij=c$pV|HN?MQuS4sa-${di;f~`7$qGfQ zS-bFQOm@7-*ME#-f11X}mIU}1e4;RB&{tqgXVZE<M7%4N#=Og5>fU1zYiU`k;9<bk znJo5P-03VRN?_N2Ve74rzAhnNlBs$<bhasi9(9N91xM%5nTz_S*CqU~tnRx>7UaB; zo?kV_3nw{5tl>buzg!af!}0Xqx{Q{CnB@t~bsV@Zbglx<-!qKsNek<xfQ*UQ%56d? zR0#Vr`(!#@LbgP_I4T43%*<N*!f#OD{*(C0Km&6<Yl?5WrnY(ncFM<TZ*+#lN{Q`8 zecm4u-=+0DgYtSCF#fXJK=0(A4fsGF8fUFeJ1EWz=N5(HdqF1wU%T7C3^^-hy@TYH zvgz-(EGM~SEn+E5B^hx}s||Yi6O-AddYR?HCdf&7A^SKe?=6(KHA~1ekeT5}0eoKQ zj+Lx;TM&!cAz9WhB3TRfyZ*hxx3nv<Y`y6fQAU{-qpyzSw85BGTcyMjanDZYS000E zHf*@5UN0MY=@_@qGjblVoQd?3PyH|HcTwjSh2O7+-Wx*}KB?PL(ijdB9f##;!~oj) z^l(7WSTQX0jKtTi6@Gum4Ei_H|8ApHvjzOeDlNbr0`^%tTUTI?eN9fA^Bk@3Mok`u z9a$swd$C3v*m=D{a;u4CMPTwGy<U?s8%LM-9+$HnWz_dd$v&%bw60eox_n4&J3{jm z`ty5eP9q+Zcj8UGv6RP4@`9f|_DM=Yt8MpxNi`2b_B2wvYHiEV#@$wGYYcs+Nj1<d zdS}4SA=Yt@<Z$R2j{w_P<8iQc=#%5zr#|&Je~I$$-Xzs@M$x-Z2^^oXcjXB0#)x-M z(prLEb_?+hU`>Kg03Y%&<>mSfdao;$`x#RiDGtsfD4p|%s|A0+xiph_zClX1G!lPk zApTID5|D4;<9?LdV#JzXtFL*Xk6%RfTRvw$H;nQ)zpn5*`QUg0$wBks?X&#+nuvMI z(!`x&@VPR3qTp9K6Pc%!_W72{zyrYjIxEb<C#`)4@oid5KFyYT1McM8i3jAoFwbX} z)IStS=0QD<Mz~%KzB@(#@HfME2mb$<Pd8}4w{m?}l6ybRj{<Ax-Rb4_YoYhbA8B^| z&S;j4yjN*u@;w$9tXrqJaJEMMcI_GP#Q3v4Q(SJ?LnLVT?+MJaRKIV1s=ge4>|14V z-(2>s`f}~A)e)>87V8>k_BB2C_~`tu#d#_p=J*^O+gJhq;4<c-HgfE1_&NY<scNbg zGd&t{)Yp_Fzb`13;duAb=r7iP$o=qi6Tcq@9kWKX`{8emb3aV=;*L1f{`=27E-v3I z-b6gyF-%wox5J*sTqlWsPRR9=v8D^yDHh!h7_mF8X4r2JQrgldlqAF^<#E0LF|cYM z%_rJ-3g=P3&cv`nzeSwisQg0Q4frVyx=)gUJm5pbmukNgM|&{WyK)@ia>!x(Oo6$9 zdF)-N)-tNsyH=AKV#3ZquQJ!AH?VggPOMlTb|wwpCv+}+E#P-wvzW8N`onO%PYr+h zGAzmWXk7(kNtS~b8r0hHuq5Bm@<TVZe?;6JejY5zEdeaaLSRWoj@4z=?nP1^bE5*7 zk|kk2@h8vto8!-ld!wt__?VJgwYK8?{+n^y8VOTU4Z@Vv+Zo<ITT}pBvXtA?7=W#Q z8Mb6N2Iyz_k-KrO8=*1}o(b?i*BP-F)?mDef8w5*&PYCgouNG$KHelZmdLDQA+WDw z#NF(fdFZ#|9{w85*D_Z4r^)c$Q+?p8;M;*%fC^&6ZHnT$QQ$BuZum`hY5wyoj4ZF~ zC+diE)W7r0?Q`4P=`5B#I&Y(ucxm<&_|+!4O{4RA>!jqtlWW(tOaewW{XZ|Uj-}sM zN5(rdD$=B;A5j^T=)V<lBQE(X5R0&1p2X$Cr;hlWL5~-;_<EUGZ&W`%-;cL80oNO` z2+qqkH*gj|pmwc+EW%KqA*?<_H;s#{R8H;o(z-Z8eaxczf!)(_24`cIhcm(>)wv^^ zrUJt{c`#K<ZE6_xSER^+SblM5(WWGKn;|6-TY~ZquU+4gD*Ti>I)9*!$dvCqoj3gS z46%24{J%3?AM3c1-)<z?aZ|6ZCyyNeRK$8fpHtkvpxED`{ZHZX{=9Oo+iy??Nd~Ua zW#&k7x7T28O5^9RG>#qqvrmM*=~?QZkcB4EUY^Evi2s3pMYB9fwss#OdcyZ;3%!3Y zrDsxl)iY{4^r_ghDh>SZZ71RtlHAo(_X+OS#D4Q4<%jOog!@>MudAM6?eJ-%y{Fqs z^UcIgKiNuaTtN)73w6CXKOim$aK%;O<I?kMPUB?vHu^-oN~CS!X-SU1Vr|A+n<}TW zc2jIh6W5;;A9xD&(s`Bmj1O__Oj%TSG+$%or^k`!uj|E`<>in#>^`hx8jtne*n2Gd z1*W<11=}%+-NEr%Xl^R6um#*7ai{R3s=BJHWgla6#M&d;5>4#14PiZ)D1Xs_@Fzwb zSllPk`mH#EzK^Y6s~d5%o`ViGsO&bJ)2M8!BR@xzMNHhU+}iE0i=i=LHU2uK9dX}@ zKlnH<-x5QiFQ&0&+Iw`4jfsH2w?x~g<jDAYnD@vthQAk{j|JiH$&v8)B!1?9Wq{k} z`J%*mrbZuwzNE&M67ClrBYgkX8eF;!%m~pB`XcBs!s&Cp=09^U)!lWK+MXjR-E(M8 z@jllX+o6Z|*G0AaXEUFFn^bt@-GDtqNdL#tRqFkJmF5!ijP*Y}UvU4EBJ^LT{?C?O z6JXyx1NVt^{!98<3)dTYG#!$$v(SlnpdO)DQ<Tm^*a)J}VqIF@!@>u^F`M>q?=~Hi zFxmY-G`BeYvIPD5iGEn)93SGmKkxOaYP*Se^9-Vm-(cZ$jrhlDx&MnUH7>Pjv6R}4 zH8;&BY^JzwKB)Y^>gD(AcK4!e?~=J94~^-cJ`wAY)`;tGult*Q)4+e`(K?#jF611+ z3nhgc8M53UeC%_U%ViqqwcwA3eZK@}lptBAK$m3<nk*xQ<{KRf=t!X-<?qJhZk}XX zO;$PenX*cXBUNUbfK!koWR(!V{k>Gjks%?gBx|<3;D=oo{S`vSP{xrlQXG;TB4fM_ z8RK{a8RJ}-y_PNqKS1>LuQlx#V<K#(L9>d-)!t_^Aty*K9WNxj-J5uu5u1zK+xMJV zXyCl!%tE;xF%taKq{2z>{_psN@00%{pWt`(lIt;A*Bl3bt;v=9dZ?Tnu6Mw`c#ihP z7d4xZxyDf2nc~IVj&DP<l;PT9;MndRbgt`|N_6@kD!W(6VpjUiV?nBv_Rx?>hfiMi zkT@^t<=yffqw87PPnxKl6I9N6$>?gFzNgJOy`ilY@%7+Oi}^t5b*mfN5RYmPrQI<k zeEh6KV=*ClETi#a-{^TVB_3z+bg=D8zt$%B6|9RE<v4GKeL3^3(_$o*(eEnFZm25g zjMWKUuTk7n1fS3C8{#>>uzgEB$HB87i0Aqwey6-A!)1Rjz6N~SB>YY`u!am*wEn#~ z!zJtAiOzv@_L#of(I@Pzde$8DH`CdCL($VQ9^g;`Zwvb5Z2HaDLPHEc7t?y>_@yDw z7RQ9#!}ENJ?E0-iWkB9bqB%RBzE+PF9qHT--m~#OffbASf%)*KeLSw`X$#TcNpq=n zE*oi0lzch#ymc=dF-u9^ttre?QnkE*XuZIh!U`~s>+UzYoHSP~lBwHFd7V{Nh}XUV z*com=Y=ZZM;i=I2wg_3{KlfpMPsTadT^X%<vT1z*H>J}IOe6TnYkXd_i)Ln)t8jZH zlHEmI1AZ3XM)S@>{Lg!rS~$3k6%O3RTsVuLpnQ%fwGezB`JiuYD$Um3Ggnv9d)YJ9 z0`Db%-gl^e=;A)y7VDC!AF#F0(&T1KG~4t5o>Thb#A4skZAO=0W*#H`hHa7|Q{-!~ zh38X3^Qj`=Bb4tyiEhA%J4N*&9z-1FIY#AvMDOgIuC5v&xu<IGHBDtz4-{lCRykI6 z_F`6uc{#uo?b-d>vvmH9V=z*gWmVU4d^yC5c%H`M$D{r{oI7x?0i95n^ZU{Q`*(nM zL34jKTd;I)cGGuB_9|TrJfX?6N*0S4k<KUs&zBvPPvl9TRVB#@$agKhhq~jrZY8!U z{yRq8mnQs3tN-~={dqLbu8Up7<1C1!97(?#6zg?@p*?>xTgYu{iSI2G_FRtXe&H95 zbDcu#-V~*JNT#mVZ8*}PTf4cw=Yz9C-akWo`Y`b?ykoeT<~hC7LURuHn7a+kgY(Rj z+BvZ`nq3cU)$G%ObE}ode@SxhJ{>sw1oM*H;2U#9w8?yPWFANK1%|kf(eriuoE_kA z?Nlz0l?!{-B;kjfd^7V6Bx$^`ztrQPH4Q!39@=k%<EXW1wt0x77H$_-L-NyY7yPjC z6gG%dR;f?&y%}O(8;bd`&OOhg*9lt@=zkmMi&*j-zpDDCaDUnQ@?RO)Cj5qt0^+0q zBOY;9oR>u3otFZA_lo$zoTu}co|>Mqn)<zi-rx9D=Bv7-@$O3j-i>;;3mmsG+ofO~ zM9wKae$trT)rQ7p_rg{h`|*Y(;>|j(on{{E_H>Rk#l_pQC(Y%&inTv^&fk1k=tUEk z%oS@L`f-d$<Fbsxa9el1u99=yerSV4d%^R5VP7bo|0!^uN*DZXP8Zh^bK9ARHOw$; zB9E<mI;A*^V^&zA>w9ipt@gG(VcBe|dU#inWUW@s8g50hhFd{=vDKhdt0s*v77M;u ze<NE6zF4o&Sy{^iTXW#c*Aefov(e|5SS{^8o;u>;z`h4PTd6JIW55^-;;}NnujIB= zTcTL*O1?iNkL?e+)EBR;dRAy<<L*K-lB|@j77nBnKQ_R>N-ab@kQoxkiLWl<*r%4V zrPLP-{kP3uT2Kv}RViau+k6N1iG*sL?}-Oz6A#8YFNf!=DkvJ2Yv4oCHb19e3DE%i zLjtuMc`B)X{XB>m0{cWfv(w7cU-Kw2TtArzJkCdWA5zEqAb0US?(G;U%LQKe6H0px zI3hIuZL^{`55_4?OR4Qkq1UCppii{+s@td^U#E8MjxyHFg?u>wA>Q_N;LVca@XnuE zfc(#6%qagpI{PlAJ{>2%3m*6u^*NrtV{WZ@hUI|H{~E>pVto(#^587y>ZWJ$a(&O6 ziPRQH{ASPz{JXu@xoX{XwhDA|Y4&|_!WOO^_Yc4Mo4@&dI_xm?^M}xZwEf^IzL&z5 zqVfAr5kFJP?9)Ze_JInLA*OfPXl>82x6wI_)-dS9ZP<HT_<M-ykp0eP{=Euw>Y(_J zzA4&1T}j{dJsW<5S!_yT3HN8!<rn)w<mGio(V3pwH1I>{EydgjZ`W~ZR|&PN(IDD2 zA*ellLG39GYEKU4m@YR!KGNHU_N+?dK0fFh^ab9eAHt@n=A)z^v{aGI^flrye&X}T zWW~+f-5+Roq`37wkED#rX55E4nspE_tR1Aa0-0k#wz!qAuq3X(n%TKZ=&vjsmk;+h z)ludqr=-?)(R_DG$=xOs@d<hc+?()onr>&0vHl(LniM)q9W;O^rnsk`5q6cpB<>*o zi~BJBec1d99G$@Xzx4BaUc>|7_<~lhTS#&%AN!m2-_ZZ@K4vM}`8U}eY+D)G-sj43 zTz#_Spo}}qPX+c>tWP)W^>{qP6zW5Y`%)&`#C0Gt8!{%{cA+wfRcxj;y`ow5*<v~i zX~LiOKBM}G$7%OfR`+kU*n2CQnQxPk?fe<#`3HP)TeuHR$J#^w=F9}vfim=Wi)Hcd zQ$g?IT>HlfEEjq`+zYHbNwjJfdc96+H{P$9K;zuP&mKGVe07v>ON*xeqkMR-#Ebe4 z#Bu)}U#gta4eV$-!*>YVMTN%;&Q9a;!t%JSU)A}7qG49^g-Pn8n73^|QAZF1r_EsP zP9B}N5oZp3AD+<Iy;2@|3FT(XtfT(Xl_O74y^qqq*GS(<*63IlpWH-z*ayEnU|8|r zI5+wII|K2Gt!`sfAQtftsSGQXm!e^e{QS|p5#Zw4Vp#65oZP(?_|`0Wa9RxPU_O1a zh~$^O(IWma${I2T%348XosFWtQ@toFWi@LDjXg$|tLu4#b-TGzN_V|k#HyTeQpjyu zj7OYHt<c9dn8jXXIYHxM1kF;qO;TDD*3%-H)hrsa7xc^PTaYJFU}fdKcrxHyBjmVb z_t&XyChkL;?4FN4YdWB3PhKwb%{`^deB=A#MbfRl_olAz4#h>l8K+l^!5NNQ;52am z=$_*u)@et{kJS<Q%y)6jL7Hpy{lgPty;m4n2lUMQXg>WMcNyH~!xUokaVwq0wnS_3 zKk2>BrL#x4{{IxdFCWRIckiPzwo;xK2dSSl536X-wU7FF`()8~_rY=W$F0=Iu0hdH z=8qiz4g0Z`&d$)YVO^#~)%Q4`P<z>el+7I9=4?ZG4e=iMnYQ(ma({P{Rcde#+}>mI zY`Y}<4UL-b<wVA@ATNt|#`k@y2l^{B)sdNH-aMapSm_>vOT@ykhvJ<D@$;Y4yS-F* zuOwtLv={s@IZJk>Qd!id1?`s(byb$9ZU!IhqP)1H-$(76?Z=r)yCaLh7sqW^e`vb` z_EL#%#Hcb|ulgJbs;|tXdIs6Z9LV#<r}!Cz+hAcIRW*B%&~wz~cy5x3#!Dgj@`Ug! zSWfc~YZ7NcMP1Xg!k{z(H=&+*;>x|ub-RQ!RQ;1L?q&P?gbtdIQw)vMt~K@%$g8`5 zU>s>Hzq??!Ve+b%rcN$+X%_v@om`+KOi64jpIp$j*U?l;V@Pw-VfV4ZB9dVtzqL`B zcF8)JC1UpUEIlcF7RHYce);+V{#<aohdB-imx;Hh(3o{y5_=Z>Lw8P<T)QdHV(tFw z8z+UVemQ<ZFx~#F$NX{ZHmfyDsO(=6?R2cwMJF&{1>M8j3|<0X+q*f&RejHHI%Clu za~k{BK>61^yXl-dgUU;p7w77FbomIixdS$YPXep#(b>SY*ttm(Wz_fu@4-E@m)<o= zQo=xa4AzJXK4FM6ViJ1Q(~)pxGqWt4%ZMgbL2Dq={Lryt&KO7LG-`h2@FBm?C~(km zZpx?fld1evD!+^Nm^8#OnVPoQk*xX_MX?tonmeu!{LOYFod*oU)~YU=aT_PZRmFKE zlFv1lGZrgj7&Cl*QTdqTC_guuacs?-g6Kcz1n!oE{4n0U`CN4AACE479`ma{PBL~f z)k6!0$MHmbM2u&h!BDfF`e~(c{Q3LKNAhL1GYftr@6#9pCyVlwED&Q>x**20@_ySw z*ez|MJZ(f%GquS?@6Mn$alcK(L!{5Mm-yYEBhuW$oPU?*{8?I)9TR}jkjn8c8V~ck zfc$vAr&)yzyC<Ln$8(Ya^2eU_2cGRDezJ+y2ynU@v7Z7nIc{G|@}wjS+8GOMUTUX> z=m&i4lG+DHs<PrXbNwT=S^phJ{9-1J6|fk=!-1Xh64x_a&Tlc_7Dk26wY@=eEj;c* zDv!I6$}z6j$t)k3@Q5=D%=5GF|KH{u_A-vYLiG?|dlK_*AJyg1=G|`w1M}|b!LWH3 zf!~k$ziSxLKhoaW6jToMQ<;W9|8Y)vMiLm&<IPz;b`G6a@++zT(7CVF%3d8*b^+gy zMGSJZiO<7#Xuo2OT>giBbGFoID|yG{iDbvMQ6ZTP*rU>PS7kiO&+)<^5POZE%C1bL zw8TK#1*D}=T1p^o7-=?2vjx&lBQ1l{G6HFXNSjJ&Qv+!qA?+$kyDE^@kF<PB%MYae z6KP+fv@ZqH-bLDtly+kvtp{myDQ#{b?M<Y8mD0W%NP`>$zu?CCfwWf#HNVku@WeR1 zWKOT`oL(eLK_=JV-+?ltRUVUAPx~Fx%#>yhq_rdMT1vY%koGI2&7!nffwb0$?YUf! zw=Q04%08_=iTww*2E%I`TX3cW=EqN{jOE;aLD+PJ>(nmuqa_)>pUQ!KA3iG&GuILN z-aztb<zC6vr+=R-yZ(p1BR*&4UL)euHdoSFYZ?0S8`bwce7aTNcL%j{)<n7X>t)^- z?RsmhoETU4SosQMUs2{<v+J)Yv%J`M56Zf&*moB`zg_IR6QB1M`)(hM<mW4R`Q1ZQ z7s*gc37r9nUKzN%vk2UxVEO4j&F>F7hf*WkUrM~(%+y*laD(U*dL5iQnL=_k{R0=& zMDn?bp5b|>q?8Fg;2%TnDyog`7iS24;Otj%-@*1@pzl5%_fxjHH6J?1McL?v56~Go z+VRQX>D)<jc}a}wvkKgXnjFOAp*ChEG}?3>fv`sh&cD^M_9C}Aay(4$K^{TOn0JV` zwq2;}H5D`NyPVn3+Omb@C_9@t1l^GGWp4L3cnj{z4?X^e38OdlHvE;^x%|3rng_1s zM2E(wpXTSJsE>sl3B7FF%bPjo!1B4wrDIc`p>m(0x^#TAtEs=jPB+P|x0BlvQd{r1 zC~!VXaPQWjXjsV1aYRnn{QD+xT_kj-ntr03<188$?P{mGaaYUzBj>XH?;fYKo_1$D zUk<+qvpN>RMr18>eX!Txd~pWOayPYy-r2u4HV@3IhE)`XLty@%in!t(5udHP!m|}u zcve6DGw_zU{s}H~pU@4KNQ*}7QXKcmyM^ZN8}!~f?Y(tD@0B#%%k==aG%Ok!FVFl2 z=%Ltx>QR3l+o1Yxg>72o{n}migzBr(c%4GL4s!_hYR+Z210Z=^Qa#YSS3b(|Lpl)m zlk(;*qcN$Zckf4xrH4bGRcp_l#WO1B0qys9=+n7IV0WS1MqoVsfYz!{-hVHit;f1G z?7s`&e<Hr$fp_Vh+wl3M>YD`|Y+xP{?H+!{=vqO1>mBIy4WOU!X{<Mdw&!cdVV|h_ zZl=%1HTRBmfoHB+G*YkSp*fm&BRxAfmAN*p;h0AYenzyz94|O7cu%-Yutnm!w6_(> z$nSe_PBDKk%B9^AB?R9QA$Fj^7}}mV9uC&>pz?5+0^1hny~Q4FuH<dFB+gUT<DtCp zGupA>v)a)YLwqo>CKg;_O)R*=npkj!HL>6dYhuCwa!oAw9BX31mDa=`NQMoUllFZq zbTHao*>?S|3_81wBtI;a*iQIkd~i|RGf2Qym}_uZMC=hao?W;Y*(ZO+vCHuUaBl=$ zUhr!xgZ?s!`+VTt1kQ6AkG;}MW52@h=Qss8XONuc!JT%ahT{OeCv^3A9_<%C_qrY` z1W)v?Q2!ns3m!O~0^9zb7R0pMOKtd<HxzdX`oazkE8(Ri(O-RE*!e`tX5kB$?EXuV z7Ax4mhQ6D4>jm7&KVwMh#-34cNNQ@?BXm#UXZ0W*{03!fKnD*xvmqmF&4&77T5Y=g zi*!4s>sXVK_?zBG*vkT&0lM_tsr-lG*91KO8-a<L!u1KAhN6S8`=@eqvFAaK+CwzO zC*rO_AAviH<x|;yC-Dx<x0O`RJ7eVty#&V*qq3-s{m!Y_d#!^FmqZ-nV1J8neiCVX z&hWM;4Z^?XHfr}usu%TjjZ+`m*ncSqBQsQw_BI<f`Xb4@sB5A&hZhQdvLO;KFYXsI zS!gVjvH2Cm&+sf!tdZ@wpPrG-66w71cFFKfK8K{dzHnxD3-VldF`y#~wPVq7e*zde zmo7voPr8|xS3%{GjP6OlsL!nc4h~||cETPgjn!~Wyf2IRnDz>Bp0wW~esiBy*yHh7 zH&?q@7IT?{e=la-PKeV{%I0=L{5w4h#v$W(_45LE^@zPyrQPH2^9QiV#>$mgJCmgL zi2l`M@$bg){T;BUPp9&L{kCHsD{P(0YOcX~7+6$vHpabPYa*+`Ty3?97*}7Qwzgi& zY7ir|^+plLvhg;yfZy4P`x3{C)HcK>&Z4|Sr^c{^cQP&Z(0Fm@+PO_T@uAXrK1YJm z1UWK03buCEYS1@_%cW+nr-KfBAIaf=I~LH#uc7bo*_%W3=6V?FQyS%i?_MQ%295hU z1GkshK1t%39J$#f16pVfylzllzm3NJP&6B=r1gD}&ba6&;@vA#8_JdG2W%u`<nN+$ z+AiV?yQ7&8^n%~rH>i*46IIX4smxPG-y0LCJrkLSKi71QrmxTAb`a(SQxn%KEtuyk zq3`Yq%m@5i+(#~oV!rv*N5t+yySxUDpTpb!2(=w;)9qJ&huAq&h5q8&Q$p4T|IybQ z*4kp??ZAZX)Uc7mpJS}>4E=PD`p5dIjK)wuMgO*b>aR%Q{bQcP(A#M3SqSVF`kekg z=Hcb>lNJY!%j9FirvrGn;qjAjC($TkC%DF9C(-^ipP8;0SE=+^z@F83O!)j?9#<){ z-TFUw3!f?Y5RlB`E0P)FpYt=_9&Qg?U+#aF6?)gQ!kh{9<<9u}@_`@H?<Q8*9#>!9 z7E8aI>GwufxE{|a?f6ewVF|rA(8>zoQ{vss3ZXX|*aqJe<~sgcRtTJuXA}8dUM_e= zXELiuJq8`H>e&MOVwuO1=`ito8t$u-TRNq)V1VR~QrK}{FV0Vo(7AVz&UzKF>n9#o zMejtq+bNMu-BmwUX@9Xc!G~qwl7Hu|BgEG%qQ9``tk-PyHJtQZWwLk|pY~yzU(kuu z97UevxO1hntu*ILqB>zilUriyEVK^@-C9W;eIFLMmSqXVued*qCCop=(yd75CUY{$ ziNGzO{99=5ouU5RCb4eZZ_%3T7$zEyfR1ZXMsi3Q(4kC~(z;<A`=5zCwtFtg_#<u9 zKjLZS>kKJPUW2I#v6TuE;PWkfJ2F1f?!{;hb<(={IsJa=qkwDzKML4_<WU(PLoZ4E zAA5U0@X0hE?&MB?^F}H^O-|`PM{Vu`&*JyBismPh<UaAC@Dq6*&j4#cl)uLD2{Pf% zj@mq1N}{q%-3qmRC7q3U95;SOPjbIc<!mu>d*$thtT|)pU*I}_%1iU*8MIGJ&!F^7 zN<Txg5%zEJiaHIqK=`xPm*>jj4m$Z5=7H)<qEEjCvZ3mmcucofXRh?!<J+r8y65}# zYp}Bl$Mev1<WxS^8nDrH3?K`iyW`JW(~mH3Eln0}-quA4jL?T0FrF!VJl#hH--9d- zJ~x%da^6RwvgQXL@w?kZ_?1J41z#%cGwn2HHY02ht=*E8(uA0e7~j=I^UNrg=f2X| z(R#8~<rd_^=7z>_VAQ{}^%Hvm>f8O1&>;z$PI4b2d3y`|0jTa>T3eu(g<k25<`1OM zn7kmKl_zPo7SDgA-zo2nh+`6I3~qW&KNm!@v-tg(PdaQTjwTs%FeV>er}@LwO=$01 zE4lo26WcG)82Ot>UZ8REFEJJl%Q0@h-_Xuutor44|JA}z%s)>mOyTdwwx{BEU0l0= zIs8iG!moGxo4s=)`IQt48|2xM?d4}4gI`H;z+OH)U$DLW>_~n!GWYX1_D|XqVp*Q> zi!r!z(4MbFvfrO8+A}Y5drW8#<r!;Fc)sBF%!|;TZLmj}<bIXfQy;_fV0ZJ5k#+EP ztu?r0wCnarbkf?jFmk(&d;~fLwJSVdaJv>p^1qR}oy0Hx$^D@7j#aC^foZq5bDf$U z{Lbd?TdVp$x(?~AJ)7HminxtOlWxl4`nGw+g=g#>=gV<^+q}Ya)xZK`R{cAkArE-+ zBiwH$#eM!L*Hv=g=d(va+na>H4Aph|sJPb>zViFWwWSEQ3m<qz=t&V9iR9Crg-6AG zNAb~s{PF3BLjC|=MBT$vmf>8(`?F_EmpJBIg_uOyVLrIARMyO+!mlM>?9(2nlsTt_ z<Uwb&#4-KTkHXed)HfC1H6HYd<|7WB;%l#j+B66B@_!uD-5~yghGX9I8u9Zy%_qfQ zC%5Aa03R;@3|eDLq{0=i3%r-h=FT{F{`%ah_()*4jLn_!e8F?a5^0SIe}H(JJ7;N( zG+VJm;a7`z5LS1y=7;88qWer)-K&m@{e@%PhxqY~uLrNe_`Yh`4_$Saxcl3#$BxE5 zvmRskBJr|S^QJakoXva#Q%##kQhD43pO^TXlhT1hngcuE{(wG!ufb`|(|1I2WxX!^ z@cc0vZ%bkx%-b`x9?a0G%V~qhuVx;DUBs|PJ94NU3bn)g+vxTgMBB#<osjW7izG|+ zPe{%#fK7yjRm`Y$j>O@<fZFNYGqY)6>V(Y>UngSC=E4qicQUIfBRR`UXQJH_tBIA8 zy5EczF_@9JYmd?8@TrBSea8!~rThn_xU$wg`GZYX@Gk?&SxPtZ9jEVua-8EDA9FQU z9q0D5B_uyTOZyh=F@PmBljaBfm`~un<j#UpDbB*}hozM2#(g;j)$orXx}a{@<C|y? zK7Q2%*qFK&`B>rCsVvk<JiZ;Vqz@&q8ra#AoMkiAsl7*zKz@O5BXjLFideFhB<BM6 z9X4832DK3VN!d40&;=~>J=ufR6Y1<s<@o<@Y<Eyuz+Jc_VVx*%n&g7-7RvjbR$gBs zt607_zX^LfkDpC+9lXlC`N3heuu;lLL|JRG4k&FYjmcd2S`)7|5zU?U`tn9eF(3b- zq0l+Z3J2C23Zajx^ZA>Rw*(k>?|E0XOC$NPiGP@6r$Yv1&=AKecscyOfoL(n@072v zkB2TO1vqEcsX@<g*PqjSebZErZg2T(2EP%5OWbh?z61HJcv#%Wq{QM53A{;mja(NV zqdLXWzb)X$*k@w7UfKhPlT^=AgHndL)fG~*<?ICJ0mjuf6Ul!wSWN@4T8JNcXR}(p z?BH^--nouJD>pNS%B8Xz@rk>C8Yh&QO!H)z)&=MSz49|ON4>xOYWwl4RgX%14n7^N z5*q@JxLKP+`!K(%&J?@_Jit9UO@lO-meM?WeYLuAkrX>PNW8dFvRb@UKJ*1~S{V<~ zJTwR9VFKp&3_3TUEWGd5-nURb=qQoT!tG5gw6<8`eEPkP+C4z!4mvEGox|{b$(V&P z=h*3CJf37!59sKfr|r8%VRu6$>w~uuFLG7<>B@IQk?i}6=$-4b>w9+oS=^W59v|mH zp?8ggyyywP&xg(q^JB%_sZEIg44Hlo@w8{6SjD*|0+0Dw8rPvUYkH0^xt`1X_Yv)@ zXdYuu6=|`;EfOoF^K$}l0ZhaX?2>s9Hgm~RN?AYEd)b_rr(xYJ5jOFl58}>wf2igR z5RDYcWbwu@Pmz>dJx>z)%xxF_6_M!LZvmzxd<j$^`cHjtGX5#D9XfPVI^96CPhJ)@ zb6!rf4WE~0`9!bj*t0cS?Z1pxYArB0gJ@Nor4X%5M62m+l}@VxdLOi+zIP{&7H`bv zI=4`oJ@cr2p`ckxM4A;vC0B!PI?a{@X!iDJ(d;FnMSxzfe&)Wpjq-n!-klUgJDqNk zX!fv1FR#q+czK*0yNP)UiGEXK;7iEfPNV)_p#HrqA?8(*V{i#D%F<n4k`<AEZWujr z{!Ax&2GjCY_ykCnZkcE}#uMEQ<sVK<cL6`2%VD&aj-KIqL&r`!+had|2ehO-QgLn* zVr@KQu$Jj`@6%#yae5Q2t;A1S4awDOsjezRYS{qM9PK+y?dgSXEsWketwHy1YV^MA z<<GwVjjUh&^O*h84&s&Cy@&&Tov`(B9TxKG(}x50IM>h|*dgrdHt4oaQ#D(sR2r*w zkR>4V(3qve_Uf@mMslX5^LX&b4Y1ita>Sg|&X&Q?7@JcURL?T4?r32vtz&dLteRgN zzTa?8oI7zwy<f}!-JmjZ4hw85$gtz-aj!HlNB>CkQI@zocSgj@aJ-Yka%Yq5K3}V^ z{BS^akJIY=9q<f<+_m8bqJ>S9|D2CK%Iyr#le~9)YTD+Cqn(9~m$bOqQLLtfXnyNx z%$$;b$i&(CbD175GsW=(3BH2jbBn@qQ5LsX?C&geC?omrdHv0>1u^}CV`uFgdroyY zVnlxEppeGr)Z!>tX0q6`xesbI%dLpwID<9yug`t-Ig$lx=jJs*H-I^fxat0M%*{!I zw4U5+WL7bJmAZ=C_QkPHyQgMWXVKn0LgQhz&>o!1Ji8sN1~NWk5}&0!%9q(fd!E2c zuudS^5PS6ph8#bYiTQpa(tM|RDQKqhI8w9td;qo?WS11j<WYY!?9b3Y(6p53vClA) ze^wH)aX8kmnc5M<<2#JKhkIpnSXu8<T2xqC0l$A{KIntJbe2$)IsO1})_TBmf_dwa zULAK$i!aLf`7E?QvzZ662H?AJoaR`LN%g?*yOhepn)b%fc}-?{w8lO4z>~1D8enJa z>JQB8XZr)^xBnoT{gi&+hZq-Qb3!F~{fqg)%CuLByO1`@(<qB~HusCUdn=E_CY9;B zXqxM;l0ROVmqd=Q&G)e$$Y$V!AJ7^-&uxH`9r_$5CbY>P&0g4OVBMW0>p?cIH*uZc z(AT5kV+Fm?nx4Ksq4(TGbNI1-p&!fO=gJM`DDS%m{LOXI>JV_vur8-=-Dndycgc=8 zzb400f79ss^1YeeNJkyOpT>L0YuL8YX3+BDe0_UA@XhH=nk@F!d-?-s;&1m0oj1;e zXXtwt6S3cKIUw%bPVwjU<-o)te*L1*SBUmJE#k+$fOz)!{roWeFfkuYWAh>Nl0UCF zsJ<KxPa@b){<?mFJupXWi>M=&*HO;`F_0qLoB#WKKS`S(>HYuj^8IyZIp2RWobO9P z^_=ayBH!oVUpXsi&vlbp{?mOy>!VM%86BVR2lN?#4zU>rkDoWp=f(@bHh4d%T$Gui z%RpIT43E$l@Ow|q*1Ipln*S}8F$5n+3-Jyrw{w*C`X|PhabO$UMrXgJM4u8m|G}1; z<2?lFA=YdDDQ{_?!FIZ^=X)-w-S7irhQQdtK6g#PJ~v_;AYWm8RLPczv3M$|yoG|k zq45JE@CEKiXcTrjse3Z{J?Dzauvtp7m{ylqo-vD9(D|#Sr1yv(%EyoQN>z`Hlv>y( z_|H_bk^BR676*Uog&&Q<T0Ijo851_pCd%)fO1!knxl55o=Ga|w4Qx0}s~_JupZZl& zJcq}*558-=9OpOG{uOwq_w)t!^fb}eM83zQsN9b#IF254OCKB&KF}O@;zMz_pF8Mp zzWQIdcO1#LYWgPF6<6X8gvzW-5jHM2#_BOJBiZGS%}s6(0J$SSsBJ@s0`iUi?ig<4 z^|1^4G@Rt=RL41*Cr|%HwCz=YpuH`B5i-=r5#kz!#~*r{<XoqSjp@PM!JN_O59SW$ z4d#zNcg(czzjs#SdBp*qr|ICzV<Vg=unx~068!Gsp}?Gj&aU2|dj5Py*URk<!`~3L z0(~TR=xbmw=zaM4GdXMx7(U+`m@lz>9?w#ibD-DsCNbX;lK=Vr*K+3CLG;8L`Fl`( z>&M3C)gU{OP&}3E{u+jRIUyMLG9gi)w^xdH9~y@vFkevq3$%{x6WI{3FmTow@V9dN z(sugHX=t<|Mpl)9)pA;1F^;z=_dI-RI5sllapQ0|mani5_;36yignb|9^OL#7pZ*6 z9yIszpl1S~c1DZe&`a?c3ucl{Bvvz3ZfQXb3@&d`oBzwA>CH&Ktdu#%g~u+XSGObH zTQnOgr7<%Xs|ysixqN3d+ppxzcO0iZtdaWRjjk^@-<mRe{k3crXos{$I^S(F!^R@1 z3Hfim=-+u(R^0Fn;dfeewlit=TqOI}B1Qz#?>-a~>rLz><LLO|W4sdnrS$)K`~8gJ z=VSeb{`{+2ztvCu6@7>WOydUM^G(sB?f4wfV#fRred;`m_WzxW7}jTf&$U!Oon!N0 za{#-HqRL6jaITd!8-}89B`<?~;{aYtn(&J+`trnOkS{^cZ1}8?+G_@g#`BS9vcOg< z%C;;krZn&9?nJvJRU?MpQasP7FFzrh-Pu-_Xj(jJ*1D?9f~?1*7yc-U?SIhk-|3Vj zoXrXme*kU78o_7OWwagN{$Gz}jeU6=kJ(G~dxzEZz0_*E3fM2vY!h%n_4Mbs&X~^j zM6X+6<1Te_{21Jc0^`5a@2_Y?IiD;lptC_@vSynGeJ^meK?`2i9?hocMUtQCIc!%< zJdcr|U-Ue%Dbn+(n!U^Ci6<`lCG-7e&%XkARgeEm-2dE!v6NT`(W?gc;U%4|Hu#Vh zb><9G`ztyq-$JACBL&Xd_MkGV|0Q_jY<iYLYob0{^*u~wtc>RIg18L@_624XHW~`$ zX-i=RbB$~P>Wd{B?FOzt$qWs|bC1YTj>EFi@wA4CjF`jiw3a|y*n{OGR>bI`0{c;- z8E`$Qo!OMeY4lgdvC12x1s3wUXyyUmUrKGcQrwEg(c<3b!<PcGMzCF<PEXtsb6e&N zmU}gQ#?WVM6k9MzeX+!_Jcm*BEQ%6mD8+~vh|r%XZrs}imv=&9d3Zh_@u%302TZ2d zZP{DR=~%0Zk$Jq$tu}?fYr5>+IIIQmk0^FM?9Wb7pBh)Iy|9}wud3Qr)?jgegTaRO z#sf~%TP?Ic7FeE-->gucxQ4hUya!uJ=V)cGWedyUK26l;GWgLEpBDATT~=?M6kFYx z!YY0&S;|_axa#9_tYeVl8L1mlcL{x7OZDUX1o}KAO{j)U3mmIOlpl94ZmJh^U@oOY zcO7SCxn80j;<Q}5YUwVoBEIL*ceDvOORpz%ep^YNU&i$o)YgiGCYwU(DU!8p6XwQM z2W?$h2W;0$ieu;012(_HYW87&ixp+fpt79P589HYWC!@}uc;l=<3{GZO7!>*i?JMH zvDIzxVR~H9&`51Z8-Z=Um)cfp6m;#Pw$T~dhce@+%nxIj=K#m5P<`&{2V0(}HXMp2 zT4o(+`KF|}Wui@&)&`5#hBzsX+lGHk@66N2=#=Tzmg9BmAG%(VHy@JBgC=Sh;zN4Z zR{o(&QkqQD<;|z)xwj73<jNp$RGxi8?fpIFTe>=a^GQ5wFu7qXhkjQvQ&W)?H~1Fu z#rcw@JBQXtJnfg5GZUy!SCbs+)#i(X`c*QM%8(U@h311-in7G=dGz3}kNMqKTy=>Q zS5`f}sYO|J%`U$bQ#}p#y2W1@#NLQIiDN_qDz~SN-gQ&Cc)tYtbSh)UD(5bKk4Nui z7td%iOB0&RRL(c4F6bc9#uLPAyXd{7hNPxn6TM%f|L>gf=VP5UaUW=l1AapW*b8dy zwy(<Bh3E4%teAQHZjN~dX>DVkRcUKsDXlN01NQ~%JA6)KFT6Yr^4<7)x}+CzuYS#b zF4M-a(R2J9C%ezRE4TNNoOY396=r6e5KDXx^d<=`(Y{*feEn+$W;pUqp*-j5H|)FG zX@B}4n)wuNt0!=Fphw7lq0!d2jmOmTbeq_wstYT6fiGG2mih_o<-IdhPaEsZr!&uK zLyg0Ai1;1ib`&A*K@_dcw?y0nzLs#V35$Ess9`raF9qTrI3@e6cc~oMtpb+{7)2cG zFHW=RO<*<s25!4~+R*QCi8FJ$d*uhjJJ+y0*vt~IxANzE94^QL{QFjiYgqr@5P0ta zdQYuqd63aRk*O^g)F*L2g?I)`df=Dl(G|S|Nzhf)moLguKN*l&VXUFA2een-RG%D> zf7CLY)(QG}3w%_hM%(-xmRKPvmVXk>CU*WuhQhWdK6t6J*GK!5Z-*)8+eBxRVO2)9 zL^4RNec7<Q&elr2WjIFEgZtYVRL)=-^R)I%tXYyww4R;8vEA>$m>RZ}k2J-2yc=UY z*H~CC?vPK=^OLhBSNokycQw*KWZz;PgNkTa3|Zjyi3`@zf86S*g;&$Oz<5VXF=bR| zPj=R8Em1Ug2dE4uu>bCK?!uk#3Aw)fLwUNxM0~I$xwLGZWGXWgFI)sH9(moj+a-&o z=uN36wt*!m(KN@1pJD$%oRWNccIYjshSp=n@2Si;=zQBsd>L2;jkK;!Jm!z3dJS-c zsNQefDbBCBuPoBiy_BxpDR?4q0~N_=-X}$w&C_4AWoP}(HlO(JAmv$l=QX>q*PwjN z&A~F&1Dj*tH&qYbJ4tI3eJi>%dzZitjH?FzC7z!nI%99=dfzhmh}V~&Pd9i*>;}(2 zAX~phbbIUnr&}bty-0a=y6u4N^ZT@JY2JC4PY<21cbPoiB__`sCNW=6((_YP?mn8U zZQ6Y8S3>9OI-(ucl|u9bJ;P~eBH9&E-s4xd+HTWmhM4bqd!VP>N3<(~tU^2^8?l6f z=r&)Y589*C6EtyZ^hEzlY8#V8TFx%`8=)+nPA4=vfeu|iAbFHzf)!6hEnM@&6T*LT z#{}2A9dzzZWQiOXEvw7cNWA4ZrJtuguk_B`U6^Nv)lc+#2W8JQF|4C+x#C*%#h4*F zD_8VWzC}Cz&H1qHr#?3(JZ-~#!u%?^5>2B1Kc>m*&qtFsqRGqjdrhIhtKCGj*hBo* z2EX?YaMwJS*4SK6$*nByXIUe2+Ma0JY@@yT&N_LaXA;XrOoJ|3Yekz$E^T<)hS-tt zcgtzG+BMsxH0d;6VO9%Q#;b*E&OOoFXh^nzmbD!m%e}UQ`{c_m(EJ&CE}2YCs>#}9 zBDxL?&hvm)jljVBnEQj}aeGM`li%R{L(l51tl|-p6HR;%!@5@7Cuxk@?yTOWtd8Am zF3xFk-#KF!urlkU)ap`de-`F$BFQ<_KRc~)-1i)(cS>muAuW~iV%&d3b)f%xov4Gx z%Ic41HEq<U^Rmf-d`Wd`?^K#21_PauXl`JR;9S(N%`cpDbQ<4)`SwA;27g)*ooD;} z9Alv`j#a!H7wA)<KS|^E=M9{x>9_yoD36!s7QPQs{pi<{>({sN-}D`HzEAu8h3lJb zknfKsuCrm@fIs~zhUMOW$9H!{(;4It$xeG{o)4T!adqLmcjvXcyj1@6)E~%-C*^qH zp_P9piskMmIx^yayYUYA8@*${bLK8Di?`scH9+s(a>oO^`YC<J9S`j~W@HI|7FFH2 z`Zt?R#n&}8ekD5HK{B9;*2HnxoZT^V*T-{I59CAd%Qt(ZQGdmC22oF6tf*&eP(5ut zUzF!K{Vuulp<O7ml+v$*+)D4Goa-+6^Z5J3|6o^hNHSJ$9r0ISt?TRjvN5Fc?hhNo z*LTpEy&o9EKfE6pL-3IS*#B5mjx$^+D`mcq{CUGMbS|WIV_KQ9&=L1-%d^quvTm9C zX1}fU=eS5FU0|lQZH{KSI3r^1ziSAd*XGYPuXCipynaRwo!8hOywuNwQ-jJSKJj&_ zzNe9w8^_CCKUQu^pxi7fm-q)?FLuF;c)66u%O!roBw8C(KAoLYFUZMdC3S6^)9C$F z>h~jpU%U-|;co%IX#ThO#X~#B_{H0i_{Hds$oxX*tH0LxMJ4fz+rs$;^(8W01O2Z` z4C+4%?SBg81wU<~I>1}?I<cmx4OWu7d7I7=zd*j(8oxL!X>*Or()mUAj?lSw9sRyL zXs)Hw_j3=F<}3{26$gWP#aLg$c}1WvZ*pFd62vP~1h1fX1+Spr^gX~UQixalob!sm z60b<nc*S2rctuKef3#SS2O)<LuQ*5L&kExe-w)vxDgPF)=z9D);uSNRx~_>OUU41q ziV2tTigOyT_@>4yfb)uaBJqkr`dvl50_R=OYAHR#+4G#nFD7XGB2x+Qiw5Es7{k3! z1n~-e{HVOU!p3j+AN<WH{t+0z-_rMUG-ohRAUlx^ImRo_8<eutWBxp4j8EKQDT^_e zH68X}#wXUxf=_Je_gDP9-yg~+KF546l>+m5suX!XpS$EwMO)9(r<l*oD&tH{>+vwn z4Wu<tKhghfjBV;)qPY5|Nv<y=);#e$dp4`tO7lJ^n%YJDr;5&Iu!&qA!(49|L-)6D z5DyY<jt^^dY=8&J<L}uzZ<`q2MoQytq`Z$(8_|b);tPo13>#&fx0Ozo;H0*pU0%ED zI}Tf@DCX&4BXe*zgbrcDldU$h!EEtP112`xUsUWEguWr?`o@-ADV^KJ<<aLBnk%P> zW-nS;+BcL?KKrJb-4U73#s~Un7@yDReD+G?P#iQ4h!c;t#7Xt#gEDjc)R0tmh}Q72 z)K=Ru>aTP4i<|v)UWlc-*RPfrme8Ct#oc15jxv=k-NO<Pi@Ax?A!9<ne2lf)AY(e` z&n$qA^KOzW`)RGU8IrnDo_#tS%As-0-qYBUBne-t{`39{udEhAZw&r%CZ^SfSZ3U| zeF<~zixM^i{<YV*-gx24_8yUZcW(9go7w9vH$X4*<{NLk5gE6K-=*`IN6R&TMIJ9t zVmqV$5ztk4z9;nE;X3o(1~ycmxbOna@e0Ivgl=Lnt!u>n&|`7@mD>I@DtqWXQ6BUr z@Ec!4^f~dK(2t{z-@YgG;m3mRO)8?<rUlW6qp)WjdjJXdQH9V^?Kwj7qjs-qkFqVx zB%bTMRz-}ja;s!1qcg6H$KIO?+;&#upmAE7$UI-CHNH3+{wY>R<~d;_h?qvZ4c2P! zyiQ=46;8!kP>6REUn$k@<ehxKjcga7#c9}XkxVXUzgpNhdfk|v*v0e0ZlV8EKaVXa zV)RX(6^u23dx~gb|IOo(T@bboHHfbmZetL@>ku?itlHgjoV?Jf`NZ?~TLZMgeTeb} zwH^8_mG&DwCgdp%tC9B47wQe%MstI1LxHv<ULWizIPN#cCZgwy#dBe&Dr~CYpEfY9 zn8&U{n*(?IdqZ%N!to~b`|fXqjHP`Uu<;ka7r3__k8Zfj{hDS2px>|K9;E!ez&;b{ zUD$o-?{sm@x+M3ret&aaqR7u<OwxXY7+07>{QX*cVsPDoa_zGsrq@mm$&a%2I!#aE z%xYTNui<Na@rV}Jk}<A-&8IbhJIMMBmQ<wO?*N}BQeXZ|eF;zVP#V3PczHaG@%6R8 z-3~vQ3BZfuI2=CW5f_Lr>>=6g(z^ls2G6@ZpKIIpEAyy_FZny}r2is?4MB&UZDjjl zdwr4SO<GmT=HY3IYxrZ<4t@I^%q!W}Z89Bf;W)clY^a3xOS^0v9GJu^dJQ(>p=pC> zWgBp>D+I=cu-Vn)sb<PW2N45m#okRVz1)8_Z4mh3gK~=dxSZy0rQfhS{E;E88+Tl^ z-|Sykb-bXl%2807%;2}O6F#}9v++~Br~0<j+$tF@?oC>qvRSWl1+^tmuWhVe_$-{D zx)95Kk!<C4EtQhGg^x^UA?{ykZWdMz*$Zx=x<dPqc3D|^yBEo#-M7f&xBK$4tP#ul zJTy2%?HJ~HlLm3W->dlo&;1O#ze%*l9imSA?9Y*(HmeQiX%E?HNa+TCD)7~vMd9xx zkG=EUCES4~4ax?+PswgzqM%O?8j{ED6EIgcC2nj<W$g6pv^FkURE}#2JjC-<x1Z`R z<@fFEw7?n(u0NI6-+9TOix?&8lt;W{<FNrRZ?DMTNBL2YNlxk>yj^Yg8f@L*zuolC zA~}`Y);>b(0e(@BO=GS<{(y~OJ&=6j1O3oelB+8&5X}my%}B#LtAgIy5%dnqM6A;h zs{b0wkM}`~om1KV!P{9o<==mi_R<-L{V)B|p!!zP{GJwOr}mrQ3tvc_*I);0TCHv@ zYG6ZiX)QwLDk7TN8-%Y}4pR%O5ch`i&BQ&x=)B%+6HBbBda%Hq)nzM@Opct%YJs!r znt~kSNhU4-3@)297xL!NJ4-2VHob$mBd~)o(L2b`@0`{$*Sg;a;$G}}N%$vUiI1)P zy@-QxVIKAvqvK{yPgVmvMfmvnWP^j>L&?#O^Ky*iB(Nr)P&aZcUy{M>EU7w)&RI!Y zHrgIROcCI!$Elu@<*LUaA;uSE8i9ugIj%Tio$Uz8F^Bm*O{(LSWB%q5+SgWTv1`|2 zFRrWG7>tRx?&+t?KMNP{<rjqC#aZgd3Sg}pg#BgF2f`NjfQF0LNa>q2Ts+vk9IybN zKg}U<`9-?~4qmF`=fKf0vt0O1fENej{|kRI;3iFS;J#_!dqOt4)x>fO4d2Sor_bGn zl<GG~uD^-qPH-8(-3x!;qrJZ}hUEbhq3wxK8hlp&AJh7OW?m>Rp#S|V;{x`|tRu8- z$w8Qaf%dtmeOn|!i)h~eWCvtgJ!b7WndRxUS$a(KB|)6u2$+C92RVLkIbwb`hCQ#R z=dT|We#whyUg940!0)cScY?m4DezK)>%(~-^}R^t9p$*U;c-r18S~MHZ$8I-1P%tx z`SX0v8)@!Gk=zySI74%P#moL?I)iwQ(LDKx<YA(f`$MYND>ILXPnzc7F=n?h*EGL~ z*Vq;z9;5KLel=oz)L{N{?MFhE!MYK$t!5tyAGUjnIrd$XB+hga15ThW|Bqn~aSSaU zt7)FFg`7uy(9bf{n7{@58E~*3Q~v-TL)`Vh^-e&3Sx4UydjNKQ($lK1A2EJmH>jOw zuy>NIy9wv#m}J%SA*YRz(+2Ter?NHWIIr~^MNEa4-U*I1v0c~)Dr~`(>;uQQL)tlJ zhlF^exHI?HncBJk_Cn_4{@dFOg^0gt<v!if{Ji78f%*JLq(b)c|IVMg@8JK@pIbKY zvp~xmB91Nhk9n23{`p5L*B+rg(=-f+^vLb`6WTK^2*V*fUvPWUBeaM6`=+=beuLwF z=J9>KSaJ2wR(*YC0soreBgKVhDGj!t(0}N^amT(=^Ev<E9neOL$w}|N`;Knw+I<<m z`$-x%9orT2$30zLHRB8Fs*)%X|E#ouB{=E(Ee-2zRrDQcPWoOiDP_>bJV<rWUb}zp zCI8M~9J)R#b4t)Wd+&g-r8jYVd<I*s?QG~Kp9%iy4P)mwjz@5r9bW`oH~4j6{M!EE zZw5ZsM*iFC{_l6V9ly114SS(P*5sqDCfCDMU*{(``Gl=~l3PFf^K+ts?L@w0%D1e` z-(0W7ssG^#5q|;i;hnZiz)cYEL3Y|gX9e*0BL_n9S0dx+hxTJw>j&aiRsxp?{F?gk z_JIJ+nhpqk1bjty)0qx-wj>w$&R!B&hB=xq17ed5&~Mn$IW=6VQTRYf*6x%j5$6JP zYZ1vJw1)xPbLWc(LNS08J}%g6Qrx~CF$YoK!v+y68ExEnOrJ-g{fngA`Bz6!oR2UZ z=A(ZV`yt6J9cO`^%Hy6`L+tnRsO^a3F<=-UFUKw=bNL(CNQ!fqV>fN(dY)t+C%5^M zi0Oma9jExdgm`bsO^6qwo%egf^+o#r2|dC_dgrqBk*pTXu&M?B*Y%<AA2jLnuvW^0 z#yyU&mF<aGE5&|4-xn4!Wzb7!iGR|bCTluG`i!7=dSz^W@z@14zc8=96jc6juP7h( zL={^3*mqFAzAq(n|0J<zHG2e)Hm_5CZ7FJjscLCKBYi6LnW^;?xLwPm+5RM)?f#8@ zWDGB98mnC-^Vl@GhZl-?bEx|XO2ZiTO;c+zW_|wFkhmW3;jll>+LbisQNBeo*+k~C zcS<96EA!b$TN`<-(;&LHJSSvrPXEQ(t~$nsmQHMJ;e5h$ovVm`UrWF73GAh>Y2PPI zY;AdfXp>1i>@J+K<J4M`Ir6$CweYPd;H?(S`6jKGL5X?lAS=YQwk&|2$CRFEmt<}u z1{)^$3OeH^C)yiC+Jm~CR>G7-`yRQbKZee_l;&kZZdat(vTQnUz%FHmWHFzVV;!*f zx+Os^jGMw1mH`LYr}=)GSk0EFiywV83il?l)ob`?%-}%gk6ZpGN!?iEuhH55n31`< zj5cbQp=L3ile(-d(K5;6@H5k(Oy?xn7~<U4CgqfsQGaeRv09X08pmoo5uccm3@Zs6 z?<)Ai72i}dl|Ge;)NYc)Ost_in{7cH(ws&U+dqJ_Q>}9sV%{C0a)ar#NP_>$k6XA+ zH+|pG8*0-HIW6zGz<DYh_qR`$9L1|*6BQ<ziC3gSM+Lt<V94sRy{a&WNan8X4XlCO zUZF3J5qn2RrIrVC>>fD~OGnoQ_I-N#(@40(bfyvSk^EH|&D$LEUbsI6a5fWoUe!|y zUtA40>o~1zm3RUC=A8y1ci?_)AXUV*aYl<YH7K@Ch@LX69*)HYx!uqAvpisL;kPKC z`LYw(EN>F+%Xm)f*QWJ3fUz1{emuMXm!?Y}_jKjl@+5Quz`i^5rm$7)ljGfgk(u>W z+{la5VM{JSuBEd4{+<%V0$zNBOZt#qcNL{Amg~!_Deobl`U(1XGv)s;N}q@Pm;615 z>vd|>|5BHQ-2offee{X?x@a$-IPtp~2@@+bR#@2GlMB9=@jd$d1^xe-{-2ytlhG(s z8&_98xiNiN#tqT~zjWR3SVpa5dB&sW$1{4(?Ct_fZAS7pE9@Qg{l)S-?8)@|-MM$z zM~<(w+vxpr%j%5UvU}`zK5(zSlKz1YuNeAz4$=7!_iW0eeLWLR>~3n8JAumoX-s|j z^<Vm4#<hm~e`(O}O1s|tZtpCG-EEO<vl1pgn9;TKq2ATe?Cu98#qtDwZj|oJ*jHEI z<0YD9&%9;FL@H;WZ$<A6X+l}m=!6BZ_b#A3agv0%-WwEYhHIsHSw>>*L!a{B#j{=3 zFRje@Ruq+W+XDNo^jSmyPurGftf0^IvI_eg>esosx7w5Go!+nBZa-&acdsx%lF@ws zo%ZvNl^M20x7qJNUzgltFGpX??zMBQ*G%ZA8N2OtLMJ}gj2PHy|2<u~^<OUfsNz=o z+gX(NvzqKV?QJ*W`Ks;@idq*8#Y`)`ujs&Qe|-Asr`HuR{`a;lKI@DAb?*;&dhyr( zal>57cl)iP9D3L{_u7w&zFeF4ap8sU-pGt;98+7l>4taAeH+UsNap$8)$t2sq?AN& zlzAC^DD2X=xDT>jsub9>()VgimG$MPlGfS4KjJfmA49w<<}vQM{ZiU86Rq>(QflIW zyv_z&E(LdLC|7Q@fd~D7@;M~MaY9O_v>$MLQP|9vQrbz$N@-0tU=$(G0Pet6n~Cq5 z9409}aVdS4NimK}Dc*thXH)x6$%^BUWM5{YdR~_@#_EMlZnrdLtln>G^}Z=hrnH~( zI_7J2bgedo)bWPI64iuQhrS+-#*{?Gn5NOisL@5y=n`9FO54(NG-(~@t5M1p?lTlM zaSM-aNHR`O9J43Jvy8+EY)WDbo17TU(i1^@*r;b4*&Q<^Wxc|z3zyPdZ)HTY%q=u$ z8(WAbZnV?F8t8XZ3+^N>_4Pf}4>x}M@msC$Db;_|yOzwra|_$hbBN)NO8m~DPlpuc zw)Ac6DUmF%D>tR{{n}qy#QALuwQ~ZsGoIQRNA0w;^kty2MP_#>l4ZS_O<ri4Sl?5| z%UjoiwxP{LL*BL$R?pi_v~;6w>p2D^@~#(clLBo+n{u@JEB$_dIKN*CU(f{AbB5#m z*7v~P0lwy?3CwfTe#A5p*oKewz#mWb@p~Cb!)hmf5PY|y(3u?aop_cK^31u6<U=Y8 zw#v?_%!9J{U5o+pU1%H+9ZweZb^&9RNrSjMgHMj)94Kg{GCvES;#Rl7hSl|t#Uc7f zgX0{@fj&9PJ*?>;-yG9Frnvhw%rnTOb<ynlrc?%>pBm)Z%JWQezv~yeDCF5qd8$)b zMX;Wd&KbEsqceD&A-P&j=Kgs#Z$!b*p4D6<&TwOKc#EfTd>$VABGbxp(ax{KX5B*j zBgsG8;7f3WS~&j(_yw`tvM9CCLZAB#@PSqfi%14>WR*Q?N~C-<NrnZsD$)6;;*9mV z%F2;L%W9txC<}Y%<6@0zI!fp>Q`}jS(9zv@Sm;{sh-bO~8y)L?&qda;e)P_jb*vSp za2;#Pn2z-;)FxG7xq&uAuQ+L}&3T6fPFH>m%kBC%b)xytMb?S_@trH{M0XfO%vPZX z)!L)AH{r0*gQ^j9x}kd0bjO1|V(y__=$&Rup)pdnYWmQh>=$ufucQ<G{(hko<#DrE z0DGD1NMB{HruKgyKSw{Wjp;t;jj#L6d(qz<uJ;Vlc`jit#4otg`D;9VXE2|m^?17S z+)X~a!d}p@yf?6h8(b!iDG|ljp{|Gj5BkSh^geDo(8l#CmFJ8cpFoc{5X`S&Gt7pm z>{#{!e6#r4-eVk#D|{IaKu|makyqk6gxjf{zH>sK1N=zb|BAVr;uhE`0!IP7X`_+r z(?a~ifoH!5*zM=WYfI6=f4ARy`_PU)qJhvgUEZECoQ()^(v-)I3(X`Clt@!%*;(qc zGO5w#lrrdh%Ce=1PbS&vd$N|!=(|-*kE8DiJY6xGm(`CWFG1$6j!K(_Ib1EJ%`))M zRC-rgMrXQNmGnOMV+4+65^(91rI_RJ6Iw4#UWj(Jl5C^5t5wPvYgel@WvpGT(&S|* z>lRj!&sf|ny?@xd8Oaz__LB-z)@Rdxdo;+NMu}l**D!_7xy%tP3--wq93Gn61M)Qv zhs4ZnQmpwK667paok@E|7tzf85ZaeI>(E#`Qs}$hzT{bl#@cPA?@UWipzm=!y(=nB zqub^3l%ShgqnlZyn`stkb|^|&HbAsOd0xq6R;gVI$urbHF3&Xi1Ls$}tjLk{V&G9b z5?La2Ht(>s{0^q(!x#HkbVgkM=;TEB6~DtKQhG@~@t&Sv@^r{VNN1G(t^9gQe~PEu z6JvO~Lg{zpuVk6|jN}{_f0mKBlYVbvmHEt2-}57$mY#@xRKMQ{#VNfUPu_bq8%3MH z)+TUDYZZ1!pM{NPtCbnRSw7EWcTI9LqJf6};1Ikl+HoJ%_dUY{zXTSNi0_r+I32@A z{{(z*I;ZY7Gfr#V@$k40H&D3=Y_@kT^BkqU|3l)BB6c@0T_6icF6co!|19ol5R=|Y z|3j~;51|dGw;3J+&e_>?<{2SgGGu3?#W;5puiW!zt{=<;ZpBqdv#X<^8-7paI9b3y zoP;<IoBCqZQQ#mZQlGt7tE1!LgtOL8S?Hy{{s;KD>GM9C^NFB1Qo->wX&yiqY=?g^ z(H^nR&dWwOct7rZfe$qR9PbR4RusoPdujZ@+c(kgk|@<<qV-l9g>;3dpPizo+qHDY z(<{c(Gqm)HJiTMGo<2oOPvhy<vGmD29s1Lgun!n5>1{*&-J~1`$<p(W(|P9_T7QkS zPTNc(-zlE2w6_cSCIsi3!t-^Rg3FsP%CiLL%ZN~3nJ6zNIG;U2dAEr2<Qxa_qS+|p zJ(?q1G&+>TX?-GEZqaBa(xzx>6NAz+w6wIKG`p6T8I;C&8roo{^D5$rEF%63zsg0# zfBO*Yg7`16&G<VK_hX+0`xA#IOU#G=fd%mpR8L71o1HB&4`ijW{3~f6r?e9m#BZnH z$!VMhGiIhII*A4(gL!z~EUi6RjA*L*ob>xP_#-@&o>-M7@|-rPuY4<ky~3X_7Wu0d zYwzPX<t^2Izd(5xEMTvI2SF#99cQ2I%o1~w${GEliH(lEhk6%_dXX1p^ZbiNekyD9 z`W!a;ZDG&59sU4(pPVN!S;bwpmCN_MOcVTIGxNFb-uK9pRdfatX=z&8!$D~iwX~H% zX^NJ%Vl1tZ=7C6CF4DwUEJJ)7_#og+4P9y{jTx;s9?yj5k6QW%v!Fo_erHE5-GMV1 z<nL0BSEAi93_E$bKmUK)`x5x3inZ@KX$xrq35yaCH6Tb?TFN38fta=|0ZJ)*QIw=j z+Jv@gNK$CI=nc44Q7npD5hPs+EnQU9;(|p`3m3KELRo|$Rf?k4y|}>l%$a9SlEb3! z``-KA@BMxE^q2ngpJ$e5o_S`@oHLViU=Ef%OZP^dg1kYmeP#{T{qej4#?DK;!xqNz z2Dk=kcmh7_;IkG!h47J{$3*v5(m9Hfy?3US-aC7r?HQzb$HVtX+&>t&e#XzY^trM_ z@Y+@!pYYsz75L4WkbXm=gsUDNyi)g}l758nhpXUPI2^`rs}Q~~9MaKyeEj}K#NE0l zrVFHUXh43v94Y_tx*c@ybVNhsnyG_z`H5Y0`H@1z8u}if{V;cr(2#XgVQjfgH~1^M zH&<)}`n*u!r^ItD+dob`WZkr4vaXc91M1-A-Zwh;!i74wf~=#@_cGu<7J6=k>!5W; zh4LR%cJzWc-izxSw9S+QbUV)c-9n$C-rc|dGkE`@lIZfcPF=&U1H@|_s8?kHs~6}@ zf8R&1A@n13`SjZFhA5@@{&AWY&EqQ2xnD;*|7;jr&<*O{nRM@TcID$s6zW^-Lc;`Q z=j-NlCho@z1~zW!wn39LGD4FyRjW)IA}GJ4_g1HNYdAvZ9D1!fDIC5JrteKw#NHAK zwl;LpuYv36o}Jt7e!Ni7{h<%PZVr9lu$Sd^)rbhqRf91vI*-vqdU}7y-DT<;E2PVU z>$t+OUE^uFF}K#)ln}Sz!iDXSE-8|Jr|<WJG!b`)%n{#9ggOib9hN{?LEMlvB#s=I z53<png`|#9uQt*!Asp&R-x*Bv?Xh;WjppZo&oD?oljb3)Z=v<3x=jOJ^?*@A#KWE7 zL)R!G`;l4UORt+VZQ$MwGli}XCkmY(?j+u`avyx4tN6Rwmoni4*O@PU0N05HR7cQ> zwqYfF&!o>I0;K(-mDU+#i=q9}V4j!-Wo3d6(-g5|0^=26yhai}{hQAEHEo@Dji<VI zhdL|;-DksRD5M<@X=eZ?0v?C{PRD{S^qn64_HCfQEf@m2PKUf6>gb+5Sm-pJuGQ!T zVOC_nMwEAw+BLA;y-+S~Qy-Kqu5)33qkbcR|Fo+9`M%@$Z~BhupXfWY*gkY|?_3gm z563!E|2Y$)zGW2n6|XDx71|!OExN58WutyW%cFWmL;hWah%bkM57D|;%IZD@%FUwh zHblEO2KdF$-!IIKf@?vr%M*q!1#9Rt3cG+^o(H=`f?cLUxiMf971)H<Gp4g}Rc9C@ zN34yBrgozBjQ~!c&At2Fg}GbNUUZ!Fba{9UedZgjM<&?Jjy6+){@t&CK4})%j;7ax z?P$GdoxmR3!!OZxwB4-GZbQLtON558i&yo_GzgnF_}4etJ%mWYo~@Sg+J&d-J$-&Y zFcR_+j|b!0xp0WHkHDN#h{z1w+eG6*n>G0F2?&**UgX^K_mXv*^P3yJ3A(Y3VPrJr zk>^h|(s#-|5A*54Afq@0!p?-j+)-d_R&<S#hKq4~!<gBPU3>Get)WD%?8oBLbFUOP zAe^52c(^shA5Qn(=hs|#n#+_brsrVzJ}OLi&H=I>J;}McUCb8G&mrq>JHNSrqUQXG zg24L|wB9sMnlsy{345Y<Klt>A54V9A--~>r?(%lUI6L$wu55c6=b@cf$fpO3Gv*5U zczeOz3g&g*Yjrz3J;e9Hj^@wP)8qTn1D~fiq+ciTUGb5<Z|JV4&w{){-Za0Tu2eSG z^XwJk(DxH{xKbWBusr@ae)%{)IFJ5x1-Xa*2JH%R`cBc$uOO%A=})g9r@mf*?|=L7 zN_v1j7GA+G=>D1AS4hwMW2Lx9px$w*K1u#_{I5A;1ciu`5f>ra5bs0Wh**z!5U~~U zJfd2`Fd8ut@h-&u9T>WiuSI+gu?F!~#74wV5PgX4h^i1Q4{<VL3gQyPm57fZ79rLk zzJ=I?*n;>yqB4|WAH+z+TM_k$^AS@KU5NJ~79ws$+=JMJcpUL8;?Ic6Ff1Q&2;vyT zX^6KYW+5&^T#dLEu?+E5#E%faK~!QpsS$@Djz^q}xCC(p;#$NK#1{~EBJ!gxis*y@ z-ZUtfO9zJ6BNk3z*f38J(R1O_=^9qBaCIh&*QmWr{<0(8Xw5R4G_D*?n!{{#nKgDt zPMX>2jE<1YGt4fHInV0Sq~(~*nsi4_c3|9rPC_*BFUpzbu-aYG_Wb2y`UIoRmgCao z*v&Q&N01x)v3zgrXU}(8a%|D&Jaa(2bgRvzNfsqgm^m%iWlYU7iz(TWkdvEb($J_> zOiN^ky^lhyuj*Qcy3wruZ4WbhD0zj~Fy0ZVa!s&YjXWHABywJUtc>fCcSfEfOK(En zf$J%gyJfskreBe)JTLN2$m?b4-$KrhJ;+0mH_7sEM$Xe5L(aX|C*v)$_^mSeSs8DW z@phTLLmvs2D<28Yzq3rPlJTCh_-YyNE8`mExDkd7kjW!ue3*>K$jTorlgG;B<7IN4 zOg>R2*UNaKj3>*|&z12M8DAvh1{pWWxJAaZWcISlxJwp4PsUfuxcd>AzstDikzoJy zJ`(IN^~if7Z<5J<$h#wNN8T5?`ccNOLmvBRuslU3&y&fEkl%>B0eK%@K5`9m<yyvX zKpu(wCgjO$gVWoQcjfk48*K0UkcV;m$>Mv~2J5$HZSeThv^Ln@KIB&+Z<FbxdMvp9 zF~|pUdm$gd^_9uJ$cG|tek?fu_Q!(lr72{*KXN_tNaT6Qhw%K7UyHo4FnBy}M&6Cr zuP}K0l#iEWU2uH$y5Rg{*9H4m^15LA*pc_XO#brmO+G%!`?q{NkdIGt|1ZSyuSULj zajMa2HgWR-Pcxa*vH<NyXPPm~AMSLSfM-eEWwAQ_0gD%>8=bB|zRaBF%5m@z$Ty3V z#f#0xRI8Nla%;M4@dy&kM@ro8a*P=b=rB874r`i=hv(XiS=J1j*(7o<r4`ZG%*(mn z8k0H8>@t%H@Lj8g@pe2R{owlq2<Qi&JMLuhU;^SWg1+>7l$QC=P;knqDEJWOpErrJ zA!ImV{yUz2AP>5!QVTeY+J7)1_W<4npOrKXBw7hyhJbu1e4^kp96keSI!H7gGPnu8 zuY}KC@G&e)7pF9XP=CX+R2ip697GJRe7iX(od**`Rt^X>PM6VTP19uL8XYE4W}s%V zW%%PQqwNh=f$&_~K!bR=*j&t9kU$>8U^1s0bF=8|&c+3rw5%Lwu0zz#Kz+e@h4h$z zU~;RA*?dq?`Ii(+a;E;}a-s384p%N%!en*Yvy5rxY_rX!$u`<~J<S%)pQs{_cS)53 z<X2S5kd|Z5znsx%Ik_g6#$k5lI&5My87Aq8VfNg)Q-j-8@`_-7>5QrWbH7Ia=ad+7 zvTark^&zK~dWFGnBo<SypIm;&ok1}S*+!c&1Fiu6tbJwiF5Aw5?IW{XP<|KN{|d3G z|K{6_+0ZqtHml1DBgYD}Lz52Ccs;osu5su^On`m?u>$@0ip5>zuUC$JDLej2{z3iS zWr2$`Q$V+u#xqU-{+b}3mb2Kn+-SvNR0<zILCgGQE{rRhiDq`0=2uV?PwSD8Wpp|N zq+l&g<VEs0hr^hU2{A}-g<>3OmV9~EnuMHeyXbc_Q<p&1HHlEKfN~8+TaGP1J15tv zf%Y*w?cj})(eUU%E`7+ug-gV_R2ZL2$<uSLkfjU7PuL}p{6!22z`!Gn{I!GXq$K`% zK?w4|GWZ-oy0#5SAA;c_0i37nDAS`Ox%g1XFfjj1#Sc7aJZ{?#m*AH|`Oy*6b-V<> z6kbZd%jqlU^7Kk_>ElZF{wv}CIsW{JBsP*uvfytp<F?$atigUcT@ULN5Ff7F8bSm3 zQ!@T2@WA$1E8~yJc%h81lkvx8{0SM~t_bEY$vD4G;r)?cmt_+tNh3MLLCo+MO-!N< z=>0FpBshO1vpa8az2FYM&sQho%6i82h>cOfsA^|ehiH$$`-~B?>!MXm?%l_*9Wn1s zyg!K;IUzWI_cxcm57{WYAL?Ee%r&cm^C`l5S=_<l(TiC8=(L<{BHm1lPBprKX0z)C z8s{3q#w`WfnIiQGHDTjk7sAFJYWt4ZCQ8I`#0Zpi3XolcX(@Kad{r1muOGYPhlcmV z@SBmxAx}V_jA>?L_#DIqnEyg7I}5|J3A<*t6L#(CKwaIa>ng<67=AD2b04M$KNfq` zbI6NPk1{N03x>afdcBYGLnvPu%C4c*9sNEm9vhh7=n&nA4T!2|8QKvW5XnYNhv-IZ zKqQ+OCL`7%lIJiS(SqnkEJSQZG=jyfaK%UaR}@(e-)(@rr$s?OGZGhkbAcpV49OxR z;6MBPdHQq+Nri6?Q68L@{KfQH0p*SqKmOy-(r3Z9G>DZ2k`-cItPo-g%5TI!CBGb~ zrxX5XiPj3%IOZ?sZwI6$m_hD@d@N$P5!xZxek1>4el!n<7@853KISi{&xepS(Br>X zADZ4NhNeT<#a92b^en^ywYZe_f1W;1w181+k&%C?{<J)Q9yVaPAg5l;<Cs9Y{1Q4{ zIzO5=4f3EZ;R1_ryHKsN!7{m`jkzy5FH=`~n4w0li}DZF&;+4I(Ni<PCvzah|17`2 z8gpv~_oBf1o5(V>!l;0rnknXGga27U;j|=vF2B6}Xs8{+av(0vfwoYtnD*jPiRI0; z=Vb-wE3Y>@PthaJVV-QwGRN7i&bXvGQ^oTjmC?&Kqr*H$yt_0hPdty(@X1-uxGcCf z<@E^&pX@N31NjuQYrZin*DQ}WCosGthEJ6)+Y=n{4X%CXz}2EP#|CB7BLw3mCd@F} zC9ML&>E*IH2`(Y$<|HOeok-Krb8np8o}80qP0I&uaMCo_?8vs-j5PBZW|t+$6zCrw z56*uO%Vg-4;Wio8$>a?(d6P`;lgXzhO(s@bI!TI4A~vIqV&ok7$EUmy7U_h4oKyMK zq>0jun98j-lgQ0OV`756AM`0@<?KOhMBI<qg!mC+GvYDC7Q{Bhc0^?vuFD{55Qibg zAdW_iMI4W)L!5}HM@&RaMx2Y7f@narAi5A&%JRPt@e#!Jh#tf`#CpU=#E%f05q*el zh#Xx7R8-IRC#A$C1O%j!ke2Qi5NQEvX~_koYYCD50@5KJ3esJRNG;vDl(2Lx4Z92M ze}Dh;&b;^Lo|$=f;=KErJ2Ur=Tx_DwondqsO!cDwqY6VYqY&+M*k?6wHVo`y5n~o( zLz0=1L&>1z8u*9tKb1bPVXSkI+mhL00N4|iAXSe?cUaW_m-@Ef0mIM~-&1L}N=yO+ zvXhuEUT$`8|4ST;I=2nStn8V34ckShkA-W<L*5StEA6n(;BHBBhqsB{koNJlKhtLE zW)BPYVt|w@qH|rfUkN8Xd!hC+3}Hu?CeJ4x-@oIKEa@PfoxRJdAvp?B5vHeL(W;qF z(V3O(7w{M>^cy5(h<|A$b*jv`wMl@8@q+Ly#)=;^>tsqw&mSwuvY=m%6ej%nWSZZ< z?GT0@`}9xP;i-7`x4lbe3d)y#BEp+fQvwJC*US-cd;&Z_+^X~E`iX3hLg2ZKn)t{b zMI{X94oK0Cuk^=gOY+BHg`;Zze-k+-VBYS6#^5}C!qG|U=Wk2z85(pg^W_uLHEo{^ z<vtnX7!>b&8Fpy>yf${LpO#}AVIyNS>9l2m|9UdY1b2Lq*HUx*`Q9tR8YS5bJ?VI1 z+I&z=mJ9g9e{9TnCjwqlAUgt{jn_ZmCWu|E?q7_LSMLkVJ=Yc4yO+9REsP7TVgh&7 zt>0S(@YaAl{9js6d{2N}<tu)R)Y3YWmsen-d?aO~6MFVAtImSBQv=EW=4@5sUOp?B zfFZ1@_k=I|k4yr2u~90D)u}19WR5FDh4RvG223u!&!v_G3V19D(0gH?$l@OL1Gvrd z04Okv&*A_M*1X3b`bc%gc|Xwe=c)?#@j2)`sbc=Va~utnU#&9Q2-<i6$b3AT>T_WX z@IJAPI${LbJf!N#T3n5Na};+EbZ@L^D{cDSWfSk`Vn5$<n6uKcXXWpS(iG^?@7bPT zv;^7i<&t);uXOL7_^rFGcEXuZ8$syEa$ExW`~7X5XQE7UURO&MLppcbp}v(nmjc?Y z`G||EMk~;z8`N(DeYUM5kDduVUEByoZ{Opyaw#eGNqK+xrsjRPx>H$G>An_p)rHKl zJX{Z{ISE?37XOUA?(zKdC-;f!GsZXGA3t23Ws$R~C4vLS`08ze4C0{?H)218M91y4 zC+j|D+Bw)my^b{*w2e<2b^;JQrysrdEaFKsGtq84Yq$3g8y0Ag9|CQQ8XDkypC=L! z7kb!q5G(xMfnzd9*739pL84E+K5+~RK%gmaCZmM$WH~;8HZR@hk6c3`ixqPaM2HWm z7nqtXHm^2lfOYRkM+z2P{Wd9Yqf_VY1bnfAc@HH*3PG%V#h2_cc2--*4`B2H14a|` z;76|&CTgK1DVHJdR3Qj3JK%y5(v5j($COZ@D|_LREY57q22`226%}RKL$&2#QtHdW zf~`LAc!6tcND<c%D2C((Bkkf>tW;SCv=d8ia4zVMOKjYhzm?p`ELWVkEmLLPL!H?q zUpDW3gx&u&jn0Eh&$8{IR=%eIl=CBGh}*Fd9x!T{Z89`vBSHoc!0RP`Q4b+Wc1fXO z9U|yXVTDP-7-60m&M1=?Sqfsh7!h_bQb+~!{}`(mVJZ05MT_u;Vfe~lj0@(t5Q7C< zF8voQ=hcwvDF^t#+QWchtH7ix1<la@q&*B*f!z!L;v<X&a*dhSEdIN8d~xwS%}>Ey zah)8~GOsRhVE-V9YgbN~Di=IqHNK1FBJh6`1eJBF0AVkx3nSQCa%X+lDMS_$#0(s| zlTG2-=s(A9r$dOYhC=2sA?OQ=1>ScOb#Lk}01IjFPPQ7tL;~HJVB#Jq=0!|^51mAI z$+rS7=-We*0h`xqa><K5*h2)CAXudTLkeIQL;1SMgwVwh`Y;5w^BYCEmjNsnDP7&k zNxP3R_YRmA7-9x0g_3wNVJhPW8M>g{;vWR6)+ot6!&H+x;OPZ4`3Q4yvLz|IE9C!q zU_z*@uR}P`Z{Esfw~AkIcXg-e?3^S9(*c37*?=H69oR{tOl<3|nFJ#yP5u~^9^s0~ zuy=X$7957j0L7#c{{m9WA3jQwiN|pF8p9oqw!&dbG^;@W<0^Ro+elxEI9rm!dR&+A zg)i(iY-CMB4l{z_u`(10QHX8ItzwN@D1#U7g*D^^GQ=XFP@`)3RR+7ACV=DO38t){ zImywiw=D3OF46#rg0K_CAZBA0c!GIk7vSOrY&-cV#gSD<k$)3!JVNGq0OQ4fm|+sl zCa{HMzV!-8Ui=c0ERK1KUtV}dERKw-txt@q)dbUHZf_aGWheq1Vf7G92e2_kuZEfb zAu9Q?m$W*5sb&eeR6G5LV5{9mumNF+?XL~ldr4jCnDApS+8pt0H`+YXd`gfpQs!m* zvjDscyL`s>@QNX#@*fpyr@IF!G#6J8SsB^WvD)o}6!EhwNUncy-Y2AgFw9Lxt{@B? zf9{E`9)-#L1e5s%BS>VSU`Q>0Y@1E|>`p?l`HQ5NcxKWN67vLP9@RaX|JN1%B`;ab zvj#)UkGbB<(_yBcMjP8a{IC5K-TQ-ze{ETOVm<XKB<K<NH6)$s<gYXP)r)dMWZd6z zk$2sYV=Kfhu#}RAb#x=*eA&VqN1v0mbFvffvg}s=z`8Hk4b%E3FE+yeJsX>h*pWC# zE@@=2@>5Pn`ITC{5TKcU_x>YDcyRC9ddJQh$qPI9x%cLG0Y03HzSoAAVV0BrT2P7D zNPw+;ve(-vVNWH1!$$6~{^hlKcwlGUBX7Y|-l3?~D5Rr}w4LUSAZx322X8_qTZa1W ztEnt+0Cp9(V)ub|nB>g0eq~z$yJg3t1|{59=liKkMeNZb(ad#>Mw(7q4e0$=<%5d4 z;*_?xAt=tfK-$8*x`5Y0r!0O)Cj&+;^zh+3*SYy-;2S`@Aup)1G|ABXq~INsKRcsX zeHS}-H>tCVWY1$m{Dqx{JI(Bn=8kkf>Y}mi?pgi)vOa=Z&#L=*0g|P8!#h?0pOJG% z=i&QEyR5l?ft7$~G$bIjomD5}q9j!FNL=r`W8Bfx$D23tNP)DGQHs&+8`1ddT=w*W zSBI%w7C?vC3zgx}1Dhc2^eYpNmc`(Mzy;P*uh>+h51&DW_r5|j9S#FS(W}fo!_?RL zEc2tUYBE>(=h<|c;tOiYW>JzSR^c)Rb6?^<2(*wmHO#qF>%o70UthM7byUChj`O`l z;X?)9C^y)a|Ac!FPYMqN>SQ9L3|3!>SiF`uZtClbKi;Gmy+-L&egyVd`ZkI0(b{xB ztiDR^tOMOGrnoi)It;h5#Yo#D?Bfp{)n&AP?>#@`s?jmhm2NoiFTkZY{y8KxT7Mq3 z3z2c<HsxUC8~0U2K!wa)E7*r8-p=_^dx_<<t3O0lHzKZuZ9B`D9k(^Q=J;KM&ng_Z zBdy#iFG*f9ncJW*QAAZ14Zkf+dTx?z!ylLxn>45gg$b@fyN>7IyKx^l1Q}YP>|I|5 zj^Aip$osA@j1I0zXaF55B!=NxKkiQ;$7#&X%AaHf7B;MOYK-43#2ln^UDKB@zSPhu zH?|35Y$^20wlu&QWKz=&GO3e&2z2Os`FF$S_kHYlblruc`pNL<ZBld#Ge~$FF$N0t z!aK-~JE8K^LkY|7;w@XhRp|cMllT0Cb_2W4(A_<_)Sz;2VCRKECER=%G}hpmmM*MU z3Hk)?JsG(mT>zDf)HDWH;Coc~GiI^xjLKvOJ<;qDECm1l5s7kA3bS;D5oyb-U9e@y zSuSV~>p${7ig3$QgWSW=7&k-(4A13-6qp=Z@fFWGHBNfBbO6cF{)=nHbIQ_7nRq5n z7kGevNW#*y-h)*83zG)l1i;S%gQm%Q<{H2mZpHp91A7DkT%hp5nSW)Y$1j5M9xT+F zWZ_$|@kq3-nR4mF722k^p3p^xAjb&DNw!+$Q^obLdm)$>L|)-k`B4ZX1_|16qF-!` zTq}bk7Xb)Hm=Gk1Wszm?q#z+!9`g?tZ<kFLXVpomE@{(y<h@{pWkV1hTJr9Iv`f;8 zV2dPZ8}?2x<I>lAcZ}q!JwuKx5JB}O9)yirw12uf<Rw9!VE``_WPzLwLp2dFGfq$q zAj)L>pRmhARpBGzA(zR<o*`560cb7-1RZR+!Doy$?b0Xb`Eo}&%}yEQD5WR5iyR>a z8;9Jo0#zR+FfyaoD~QqI-mOOd;shf}<^SC%t@mTfE7&kd7WW8ZL6fyBwrJ-@U*N7< zLgaUD6hmX6xCl9S08GF$h<Rh+Bs@?4c@0$nZ7acrvwIR-Lc!*Z!XsWQffo~ove+h@ z+%tI+e$S4Hlyp5pk}i>K@?%Fy_Y9VDH)`OTLsdyDM`6f<>XF{WZRdgA(eFgAJ=8XD zgU_Wy+T|sI)osG=jY|8~D(A9Pko3qRn=zw(*UNUg0Mc3}uTZ%p)yFp&9pNITd(^?F zIT05)mh#I|HTXNh3~zK=0L*}$`(Q(6GfsX5NwlnAqpJm&aHsiyi0l3jAJkDd$t&~` zcC>Jh&63Dv6_Holc<F=KEx8BN9&$okr{cUq>1%Xbl8P91bXbiUZS$-apAX+i{?wb8 zTnuRNxmHiRY!tJ)-R<#=Q~e*pdltguB|Bn_L0TMlU}EsZ*y6l_;G;5x4+Cy+tsM7y z?jXvN8+yaHRA(WC_*|0;6Spj9Atb6?I%=n?;EYTGXtZw9g)1x(0#}__oJTxnJEX~n z<<*WRZNJ>P#lXR*cW~krJ#Z}a$Y2nGYdQz{lA^}Cw@4mrMZD2U5r0vE5!aUp7vhTw z3`XP)E{Mn9Ny0!u>N~l3nY4|*lUGn0gD@|-0vHOjq>+so8Hie%0P;xyf(=5S0(`rk zusXWa5F%d9wYPW@T%aWYJK@^9v;_lkfK`~SDuZy0R0rc@l-QxQ!qkYju;7hn8+#>c z2nGm3jt&gxz~8x76QPDlr|hw8Bz9p1Ftl=B1iI_M(3>|ZkNmAkt{Zx6BQ%~5XW&O} z*f<v`9!i3sU$x|XQM-ANBHy<?dLuee9E{rv@Or$b0@pe`Zv~7PW3coG?^R1K&<n{8 zwZ7X2SkdbE5!(jA*9$|;XI~!#*mL#7A4RWz%Y!#=p&AbLz*%3?HWIqXciIwIPdaBj z9(42L^5D=dRF|oqJEqAQ5_gd$_mb`cOxqykiCc^F5YrT{p&_l5k1$CYISfu0#78({ z`iulq4S~0oVfXkjRR~W?(EpJ5HAajtKP*$tAii5n(v=}7w|~t9Lt=V9o0IpC&mh7* ztGv61?<jtO6CB@d3v8R{2YKW(^*7ohchvU)gP9{3_q6^Vq5Q)=FD3y$;l%ZiS0K|r zA(?;9eutrCj^#ot)8x&fHPVlJPwCCdE|x-meK=>-{v_wxJ;*ywzZ|HQW9R4#5?5}Z zH0u%4SS&jZ&DP6_7CJ@$h$aHbx<A`8`EKQv&*SMUFF~(n)54g>GHyF|Cq1>wod5d3 zWpLwx&R#||#u3tHIFoe#N?$tn+^?<|0WCucoqj)@^slkQtN}o-Ojr;sop76{Kbc%A z@|g2EEW|zdGYKlhhhYu}a@czl%=zSn@;lVSz!#GlyRiw-(i_`VMqT;A@i(W*=l9H~ zX%n3Zdn2$>oQp59NK}BkZpcz#n&IoDYNm2cWP?wE_psc7#6(tP+XhIY74Q5i?4CjK zG55diC#~XUfb*lF1(*AW@6}dF5W&Dg5zfxD<JRz1*7V5*X+C{~Yxg)8Lck2r^zM?Z zh0!_v%KC`m5h>)Jejon8?-VQI-sscxblB1rV;1y~DZ9Zlx)yy#b|YQ>UIWykoxz=G zW^zXY%IwdK%|j8Gq0evCTC}tH64hK~N3G;KUGf<IFuajG0`|(7UG%u#`$#NCR|BBz zXzL^8P_*?bM{@<~5C9bHIOYFI4b-e5qj}6^Lg5#SkdA1xn2D~fJtL3&vc4_3C;PqH zSehME?Plc*ri%AWE&1DU`2^HaUz<UtyxE5DyOZ99%pceX%ThR#;a~D`tvHF&1X70G zu<6cy@a3&uBS9G-7~%50d-H$J{#+JOPC{=q2Oa<Qo@WjpH@<gB+9?L10z#+8{=8~z zB^kn%Z;jcbiSLh`<mAsYmS8_6cGhWmEZ`Y%MByLnqXglQ?$7JwFBm^swSarx&m>j% zp{}iuo_Nc6j<oT_KqI!y*h4T~c^~gtAtLu%A&58A-(43mGd<(P52j`2JFM{&K9_4c z9j&!U%@unF<;A#idTc5=9B)wV?4i#a+(ndUKE7aR+1rdfNGj+IG^bvdHfG=#sb!)r z2vpCS11Z<$J{d1v{4F(*%HSs}0#exE>jD2rS=*P%uy{z1)b<#zxz&n%H*@oA6wGkf ziVI)vkxdDRycyMsUsmZH@D05U(v<4Sm%I2@Kg|-S(F$;tZ}Wa^YV~D0P%q$qd1A=X zrQ6=1)6?8>%k)?@iwZiWpF5~Z?_31@&VL8Q+eZcm+MVt`0O@ELt13;e-1lOw<?YQc zk>ShDwfACo(?d^>md6J}e=vns8!xY{Ak4&d4g`0j4*ZbROkdPK<O63JERWp0Zil<b zzdbQ<-GWrCTX?{S&Sy;%9$Fdm3+d3`wxcH(+iNVBrpmTD8cm|3f6CoQEId9Q!38Ip zOrr0#)@~bNQ$;2643Fc5uqMZh)9SX}v8Lvf=@CoGmR}*R-M^ZB*nl&J(Hzn>^0(*V z*O691@c*tViigr)cB70hTO@}v<;{wJ<$gIG_p5wTQy{nffy;!d8P&>^i=5Q{?-)4( z*tq>TRpNMG-wA(-8W!%RX}L`d$qSyj93b%J6|l0FLBG3wHK_fm+kH_sr#=Y0`|Y~5 zhL-a2_lz^hwjv;Vw@OxAw)2<hwzJvYeD1eUc`v6V6XXwgX0V*o&Bnoe-C=Xrbq^Pv z`J$ZCscY3}$lm@!zVtJY@89Y9JPBDZgebV6al<rI@F=od=UI;N^)hE9_{{yczhxIm zY3_pe%}`4OJ^IntSLL1delAfbJi&R9r!!>MuV`-((!#XSSuNAi>Uh9eD=#q}*!oGj zVnw7!C)9n}_G@0S_0ZjF#JrCA7ids+t2=1_E^?BaQzyszz})jH$w%j@#Ps&>R}NGC zCzHXHt%o~nsOQ`p;|(wQY1@uZ)iOE439>^`TkFssxM}yNkk-sq_J^|G9KbVh$o}au zbObfwztg>aqou~tZ*lo<23%gIDr@?TYP~WSvFv8J=an(pb`ZZpcwW!Mwrd#0^!~v7 zJSjKflBuf|{@p@eF01pm&sH6v+<z;d#Nc$^*MEL?<*xT2fV3w+*t+=4ZA~@@dm{Wl z+^UKB*14}1YkHYd?gL}eqw7pmx65P4$2AXNCQ<YyLe`fw7&&E}avO3z7d<+p)eYu2 z{KlQLbXf7M3w_k5wjrH=r4VUvdH!R8hLLU~<j;(TUln2Ok@RO%0cb?dTw^-m8htan z@y^m6abs5t-%w}T;a>`k_x<>gd-Nahs9NOVPH*NriMUm>UFh3M1~nhlAn9<UjP#q! zGibAXx4Y;xbem6}-xqBZgmE}+Io{+5rIE3q@&v!VGaIOLTHxI13ia5Kg&Q&6w*@SB z+CKBn_k+d$)q=a9J=!7_t{YnT|KYD&nOD-gKXm6lULH0(kr-B>&%LXzr?gDfMsEmS zlfd`oedh*O|KlmIl@@;GjF5zWo9)nEJaz(gHCDQv->x<I0urpgxWmhRe&jXt2z*^* zO4oH9XP^^32IEsz0)d}dJE-8H`KB8krG+Nf0n<T=z{wzWQTR@j7SqW+pMC!!GI>3f zLV57?$8->V0P5Q$9mQq*TF?+fOyJ}DAoOvkn9Orj>+U)NE}hYx+8QvlhtOa-GQ$&F zcwT_`tY<W_#y6QSCv$4<seO21QnJ`J+u^Z)p0>R$uih@$j-KbC@u%6%2RmsGURXNS z2A|Jw#mH-$47L2%u}rxe;(@WlLD{iB1^@i_WL)RL+s#k|4(0Xkp74G={n4j<t6hsi zR-~$Zk7N46ND5rO8y`#H&#hfY4r>ZL1kW4PPxt_}9-Ps$$~5u;X0D3`R^}B40h;UK zl;;G#4Dj0Sz~0!EXd2Mt?1d;wJ9Awq$RF}GyJCC5hiJY+e&Shy_ulZ`iRg5R74JBA z2wV&r2RZ5C-4N~mb^hsF?V4GtkUQ`?{*t~?%5CL}eYvd1_HUnb#e>A|*)eUkS|)g{ z7T$hlm|D)~R3p>$=DgI)7SY&V`YD*Cv!WvCo^9T*NScAeXV1cx@xJ<X?cU~!Nl#J; zvMSto=&9DRx1suZ+xZ@w)kF8EfOmhtT-)<e<^e<G1MKxGkLqh40-34<+C`92`NQc+ zMu`t^Laz*TfU=%S66k*bg0;9{fJG!({#w?(#dW=3w4qK+xBZ~>M0vuofV6+XkNL+C zNdEWKM%mW&pHfZp0qA~XfFGJ!<)QFl*(_<?{l~-KJ&m60Ly0b%!HLx9N>+!^A4tf? z#HoKz0sjM=7kqxe3YNcue%SnX8+)5)8ptR9a5EdN$;o?}N4tJ`dezUQrV27f_pR_- z1btlOl<KwszS$2X+-4)rIEB*~hK{xdCCPM!^t+sU#_q`t6PwL`6!;p_a&c7Q2p2ll zu6C8X*gO|do2Tb<JK9*P>lyl<<R?q_N-CjJ?I?>1E+c-I!^GyEi|iwy+8NaZu9~zU z|NH*X$55Gzmh+sQKr#XYQr~i%Rx@6&9@XY=w7A;!^zWy@uczFt{MO}m&x#jMK^>0w zOd&Tq?r4#l_(*_n(~VT&{+Gwj%qCGoY2UrzlH<<QA1XfSzyl)&%XK-|zeTB<@!tv_ zC1l((wrAJZSB6^w2-t&d9Lt{kkNd|G+`y-ma{k*q-Bu)P!rq{0<C~D{`!w6xKJgQS zmq9@%zXjg5?ZGXNv}om|9+6X`vhtwI;G_+KuRh~Cqj$DrLkFYZbxzgG;(G@>66DDL z_I^vX*4oZnOIoMyZog{O5_lmmogoIhp2}U2N7b+0&HXU|V$@)BjT?1G?t;7rdRA{v zH<c$kdxY~On&3Z*IDa#^2h@fBS!BppM~{d#`%O%%6+kRbI$Xw{K%s1w+%GSEgYC9g z?sKq*2BK&UR%=M{ndF6e|9KS5o_^mal6TaG6m&>gA06B~S=~>AA|EI>TA7YXq(9v3 z)0^~r9}d`R?1+`M-nDBawbSj@JcRU0*E}$t)Fic*F<922|I2ij`vO+W@Lb53Q?m-W zDAUr|pyDi$^K(7en3a0ACUbws;cNTxdWzmJu>drBVNhR&&Jw(AkF5G8d#jm!wDzU5 zKyJ-X!*z7ajehZd>U^;gp9u){>AZP(XugF4JFRD<m-VWD%=_Jrm;k$vV0FzL4@+B| zorsSAv}re7P{@Mo$n}pNvm^U#E?%-xr=GHwa&(42(afm)sSNDNvjGm@De+fPe`L5s z@(7D8V#pSL5HifEO#cfk-j_(`O4DOk2@obCTKt|&C`*)>rKKdjrlBNlrtxvloMORV zl&G^Z`K!;`dnxZ~7KRVf8qw}d$^Wedm)hRKHHH|iBO0PjbuAfQan)*&{jD|O`g+?y z^6wCbMd^f`H4sk5iVWsbF-Ij%9jth$R)BG-e$<p~6LyQaMG0p*ld<Fz;1$Qi->vFU z^#)v32sQxwBs$99Y`sO|am6+6vlU|PF>7n(s7C;ReYRT-AEpn-S<Bm6VqQ?{@oW{f z(WuHS-8953C-uCx8B&y1?b_4DRlPmt+@L^A(FT1)k^tlHbmu#Z?{AiaRKd5=A*|?~ z`iHDZ6l<klutL4Hf>SD&Rhp*)%rg=Yci(74?h{MJ6!*_1fhqRie25(Nc_J?B_dx<V z@}1~GMv4GbCToY9+h=M7k~>-zktiRtFV}e<lLZ%`Oo|I0G-egMzgQ9yy1$3$40vnG zQRvaYrTDjO*K}ge4V+c4#u)c0`<kDThy3@0wF5*b&%N6kR1=dgkWZ=C+Lj(QlyLWc z3|$jU9^y!+GWYV(|J{40Y<8PSI1xE%Tpufvv9kvMgt@q;`@PCcu&IjHT=JwUqWwL& zPlq$PY#dPKYCsLto5@zTy$?X}tcfQ~i#c$``AYJw?5%Sz1rJI4ITg@?L8pSMabgbI zw`Ru2+VgVtGfvf(c60gd=%~HSr+GzuCiON$M}UnYStIb-FM74T&zU4lhv@y!vyb=N z!Uoz2V{<LH5066`y(TMBi}_RHa)mR4{d`b4^pJ|%^v_HX)2YTRKglHT&%3`d2s>xT zNuH3qdi?B_4Zk^lx0fz+IqNi1p?CEr^c(O$B(((-3pq6!uT5Ph7yhGtJk8cv2v}kB zYr4T$hD^NK!;Wl0S<=>q_<6zhilAOi(%ZLlSHU;@Ct8}RN~Z9!xzM(=s8kYPdlv)o z&<1uH*SwqAeq&H~`3CDrn)C$eYLA3P?r)HHrB~m{%1%6|y!=kQ>xmEG{-V{Tb@i91 zjKyu3eXNlSvgLHt{Ci1A%YN(pn)H7&jH`&X)33EpS5Va5{w>NUHr4j$@s!{@eho8l z(<G2cM`uB<nOVcH7?^QWGsi}reuUZ4RPpHlT4<!4;bCb(m<gR#xz_%<#|`*RBM7xj zq$Sm<CB1uhcqi`X@EJIYs+_z8lsVgiyskP<i=fR%mL1j=&JH;@v9&dbGuWW3+kJj@ zcl4OfEXV6>c|(wxai<M%yLggG<E?c6=Z%-8{#s_4)qIuEkA6cuZ{5(8(v>yC*_B!+ z^tWRGft=>c-TN-x-0b2L@Chul@2atR`x5x*dt58#W~4nxC>1*O<Eyt0Oy-TTsdE1P z3eI^$$|?3oqR5g?EoS$;*a2cM9V92i>l;RXL`th^n_Zjtebp6$lOaPcvt|)=5LWf% zRbFO^#jZ?Xt3rS*tW*6{utJOf=pV2WGat(fM+HWa9EFR*lj3TQl2Hi-^Z#(o;!rKc zwl*^}!py{bM2&mT)HPyCJc;eBMd}14-mkvafBsy|@cmIr)U-k^Z^9|b??}OBc?^B& z#Y-LD5^gSD6W)@5X6DoDKZ2giouU$!#EDDPFFAG>8J~+8k0q^QHr<#D<rDusUMAZu zY*9uVd&qqnh@&e1a1I^?WEJ$Ki-j3xaz*}icSPWS8@E57Q?%yIfAaU(Lz3yo&<LN5 zKn&_>9q9lct9`HaR)gmQqOgTJ^X)+pPivHhwX1aGI~Mo6IEQ7*88t<3UBv!};2N`p zh<zu7FXO+-q*IlWd-hO5^IXCA<TfItnqQSix&g<eZsxM3J9EDb5<Qv^yFLCX5fmGI zBNrz(HC5;2qLpwWpTH?WvG~09u=*#g8mt*ivQ}GSpc-)xt4zYniH>5gqSgxq&K_cu zkqJkf41ZAjO9T|W1jPlMaT9Km>vF7(wh_<NT@;N`d!jQhVBLInBJ~E(FDVzxqA9$d z%Bd#j+f;;IE&jc=EY{|$c+z|OxOMx;huKj$e<w?NQFa~6G5k&sjY74abuB87`u}Sr zxF~-CIN0xyskTvTN-S1YR5KL<K!kT+7n2}(ZC2!(_UbaiYC#+o0pE(jYeJLtF|uUW zF_E$S)Q98^wU_JBx3B4$K0i%_FHxxM%TBzw9`0tKgS&i?fk2xXSDLX#Xrr$S-r9WN z%w-;Y;4AJThi&tdi(ODyul2W_L956d_~`#NqJge>q|shdpUhOSqdHQ-XYE9C$|@U$ zJ4YW{V>@1A(XY<U&~)XarpB4$iy8=Mb+8I%;yfQPXLm+M@R`DNCet^SNB1q8K6TGA z&;F?(y*^Ysu1viZf3j0#rU+p>i?tZuf*h5bYN&6dKgz%^o+oGHz${|kRT3oGnrIDq z-2AYi6H>^-WoZ(lkJVn&`VCe5#WON`rj&D1^<aODi<${p<BUhOdb8xOa~l7UqMB)V z{WU`p=U(!q+t{r5tX5wVSp(q_VTkfFCDf5}sY5qma^;`llw&R=TP%f)Gj?g76E3@S zj`i&<INI%7M{fn=rD0r1<PKEFh`^8bjvzQk$o)lv@|^k)C-gTwWko>q=jiTY#`<Jq zz%ixxtZ%1y+gi?H(J{l<`~MJ$$<U{E^|i<lub1PtS{{u2$pC-Sm0Nf0A$63hoADh- z2nW#}(V%BUeyYlb9a!QeYKJdInGE>$>ti_`<!0x!ZY|3aL2bst?+xVwflc5Z<D2$f zH)K#qPgm`GcY@^>EClJBc1J)+Xqc58g?Fq1eQlI4&CnR?;Y3dHYId;o=X&dmXQ7^_ z025|P{jv`4?z|*<oo{6TKEy$2yM2PqJ;}yyqILVZKt}h^+n>><rI*_GuST*sGN#!N zb>9v(<I*I#uvrJkboAeyp%ynUH~!$$wJ_vmeo$6r$YxsQ`OmF)XT0ZY?V2B*>*8T6 z6slVrXi~sH65#i|@8b%ha29JJNd>gK*W1`b`TZ_>qo854bGNIY51~H4Lvet7d}2Ee zeDtTjJAJk($^Q1s#ixGDrb9Z*3f7;q&4L_PN(HIG+<D+G#$8S0vxnFp_%>mfqXMpB zE%aPS^|Ox(*Fmt?;R*29$xjkGnZPI<f1PZBn&{x8%|170yxfV@MCqZzE&%^F4;$t{ zLaKnUw*4C6p6A_}r!$($Rn)Yti}&EoV<s2U?M%|^oNA;kFTcF^(@}4zY;C0P5j*{8 zNFSaTwOsY*MJ~h(@>j`;XaBa3De8{wgaAFYfA324@vkxyrtC;V*2j0Q9uoIEei1@> zw2d>s(USsa<XKe(#FXDfy$eovW&lxvQz0SVc}3RMWH;0r3v(7M<9Pc7B{)dR+s5fu zl2RhMk)V$c6Mt`~r0-W1ZPLPb^176y*~6b*twV=x|6w!k77*N)w~+1&-<XHHM(e<2 zpC05H#O`%YNUWn{)c2709#hhpr<zt4k9*zMPtlj_f#1-r>t-M>*YN4XoV@KU+h%*a z>}Ab+2;RW+#&~e_YnCCqjCEC?IQAHL@(@-VzweB{u-E%`lPxoj{UciDtM~gag-e?x zzch>y@vCL5e-^gSW`L<$$1T6LGXDIGOxx6<rG5X)Ux%F>2E?#~THt?d(9fEY676C% zrH9I+>JT3ZX2uMed6gOf;SV0LEIH0FEu9qS#=#rM$>s=t?MkYLxBANWz{0H5&psVj z$zPZLD$E9m#s4gH(znc6*0!R@{`GlS%f_9*q%Ym2z*%$B1k3nDKg6Vrn(R%;%yFqk zY{}cVx%;D@fNvAN_T!Cwtt-sZHl^p3iQ0?o(UIU>Upzj6FyQlhIMiR8Ft}pSf#pn# zE*J0dF;VX?yEE0YrU+rcEB0wua}H4Z6P9@8nycN!)4wX`WrY`ZB+8ET)!L1AWD>Q+ zbL*1JQzGRmRirtHI$k?$NyxFiO?h~`N;H0Q?LKY4Pklw$NubqgOFuIn80#cO@KFlT z!(>D<_dIst13?HD+AARU{fL>ukU%htdfqUM%s^I!qQNWgMRd~>)CCTbM4DP@-b}$^ z=BoG>1|7H4*mw1ysb>}ZtDVwC9~YJUR4-03dA6U-gJ0UksQb>sRmy8|2g*9(kYn4r zqEf&)88x2X^;fw^(^Bt!HjFBlo3b&Kja_Kyvr>G_HHiO?RDevMisH<jYI8Jdc(b%v z3$nI#J8Tqf@Vhaq&s2zaIB(B}x?SF`l5(Uur(dWy%bElF>(v&;ccOqCQ<vRR+AEa% zwA^r0U-CjSZMzA-OE7p;M%*!c-cGyj1p_Sj1zJj6?R)A+&#`*GMkz1XtB~gRdMj_B z{WsvWpPVN;*b#`g(dl4gKkRJnSJ+_x7zBrwnwd9t$d>|ix=>Rhp~j{g<6cC}uXg@M zgQl-a|A6P&?fgMC@e2k6BVyz49Ya0YcCK8!{!91OLn3o*_FLPvNk|hXwRFU#{{S4% z^moJP6-sG~qjhm?WA8#*vPDD17eM#_T^DTYB&EFKEY7EW2MO|XepU|hR+QOKh~L_o zA<O|K@)M8uIJ8IZR^82hM1x-bEqF=1Oddg?qjLh;AV642@^ALG=c=fvKw!`5yIf@x zP>O}}_r}2`-9zb%WshrKh@zvAgS(E`4oTnK+O$93a~?%yN)mV4KFZQ^+-uyU5k(!x zy|A27Mzq)bW9`dKkSA`c)#CsT+OiuxKZJ&dvPeH>cE%PGl1fpf^=ALAlLGn3!>I0< zlWc-F`zy!68{CJdp7Hxpcb)H&(wzBI(Uq4^ePRS22JSp#1eEUq?@ZqzlP5JzHBZ}I zgV$sSwpvZBF@Lf}a#E9EyWx}+njv%@q7DAiJbS%QUu?T=P3Ep35;U~^VmHY33<M}S z|H3#~wRe7>Yo-zb*!PK*Cse`B!pVC2x#;LB424aCm5WV}WgChY;FpZ+fZc(062^ml zi{*}2DlS5gy%whRJV+@}fvFIX{8-mRRfjEDYr)JD)N774Rmf3_rMpZ&VHhT-a2o)r z1$@Pwk!4|17n+XWX9-wre83|OYy7H6OeN8;W0$N%^dAlGzl>bMSiI6(_Mw@Ifu|7{ zVT*v`o}Js2a>XmT`lKdoY6bs)pQumqkDnrcMNe(iq0|`*bG)+HP|TJ`x;X`UQ%_4K z)!z_jSYIuxye)EnF<R^NBE(m_Qi)b;u_3shL90OP6XCV$tfQb}Xde-+!U>r&sBek& zBU!G^XN3C<UEft9;J7evU7645qjIj=bPz<Ym{F@B{U4jupN~0{<Gf%xA=)#a75*?| z5<aEg7s%hFB?>evKfy?|{YH-9ukPO_I2=^p^Rnzjm`ux1Um2A091hOjeM^QAiGY)y z<J?f1QYD%qp@r1Fq4X>!^5G1?lF4MrS3kE78k=UQuFrXUAb7}Ql9DMx3Gyvbt>VcW zA@0@GqV+$rfe@XP*ZtZRlXil{q_YPd$$DJsrG76HBAlOGd14=D_1BTrye#-o%ANM5 zS37K&<a0p9SKmKXR0Twb(1S*Bf)f4acp+%)M^o2_qHAsB(_({&TYjV~E7LjOlT>BI zJGMK?`BC*zQJy$`BHE|dF6t%M!e0k-3Lg|}Mhbl+Zt!_=YU;@-Y6N+@G=Ex^5({N- z`o+x>`-weNGo%6T5~hl|AVnv6uetsq+n&t~@Rm)+Nxhn4avqO7d)_Y<edjI{{%G#Z zaK_3R@>Z>q?4TGCZpm+|9Y6K#1+r1W<{(EF=J@f+1BIZk<QNfl_vk?*tsEuY<-Txj zuu8U00mC*MokYmfFmF<xpFFf*Tc|`pCAxRwru=uZh55Uk6iDI1pjRPRiXBRRfV;*| zq}<5PePG0h)}<&HuX~5XRtfwE&BO1BL}aZ^XsyY>@fP(o*PW4&ykU()Xxh_{SUb<L zP6=FbeiO{C=|D^rG_hHrScZT|rmzj_>Ts6?t3q&6Sbi9C=+6c={lc`Pa0th9*=Ju| za{!x!y%cYmJg#*2v!CG$f<rj-h=!q9f!q^cpS!Wc*ylLml1kKy$d2(%rXoirQhUJ( zEFfRWWX>g#sz)f2Zsk`Y&I;*YS*j~q3f)@1LQW6y&C29imMcZuN#(9@uRH3EnBAcJ zba{H}HRVC?3qfpwRZd+WRNs*%M3M=#WXNsrr4=`43@k2&hZI^ttqLFH4bQq2hKNeY zP^=6?zgdK!PM~*GGSFZ0rNot)FFLG>A9m9UgR@&Wmk#Wyd(Nm1dn)ikWXIuYx&;1D zNB9Z>Es^IU2*Vcw*gmz>7o^0KE=^Wp@?h<4Wl+eE$0ti%{auO>CiW8LG3{M~0HBim zH*Zqlj4xh~d*Nh6Sm?aMLoc%k?k;h~b8cWblVTS{_Nyy_H|~uLXAD3L6_WwDV;kRd zL%NC-6mK%*taHuvD4)3N`fu1@8;UD|O7_CL1;q=`vE?gvPHaP=;H1PJA@rxmy|=D7 z=5#is^C1dDk&{%191<1Eh+zVvWtP%tE_oaf*&8KRc@8^~udUb<_^uCl_iEPqKLL&B zD_^pjl~LBtiyw+k2wUKKS&Ir74XDRDt}FWagie@{;D=fQR|z7d{-b0b{BxH8;WF-L z3DQRt&)nWqhSr3*4&kPUPxmN_t1yoTll_XYYb(kN>3%;@-%9%leFuC{?ZXDe49-6= zyw~bep3x)Wwm|>lJ<bkp<;sEo8tYth<GC^Dzm`-*E*Z6<AKp>_jD16$@La#%`Sj=o zmGjV9-x#W2O6r^djehb^c|z3auuAZ_m}*)M{9)91FLbntw8G%w3^K%uu6{m*O((!9 z^k0Q%fwWS@TLE>3+{s|Fd<y<B%U?>ApM+$ADuja1dfTwuNJbj{DE`#&MbuJ`GY!s8 zZ008OC)MQQ4tkUKd-4FLuISAuLEml!(iP-z)>m*{pMCBzW#**9?6`9NY_NH_jzdH< zqa+&gr=>@E={lKFP#^aT>7TSvj~W8kQ-NgN*FAd7eORKAc>1K<RtBXCE!aSY_t)<Y z<^bgVm%hik;m25=&De58Nb0A!vdoMx;+t?6)TRTGU(+xPStZ4CIV;<x3g05NL4PC| z*ut#-27kgEFi;v%cW$Nbm43$@uVCpNuP}%^sEr?j6%yv1=SI+Fs&4SJoMg&Mhd43J zPZ_oEs1U-OZ=InahEwUF48^J3Bl576W0=8Gf2d#}Lni$dw_*m8@G-0y;MFr7(BKfD zs`fhsOAXdpVzzSvQ?MT4Y&WV+T?TOwX?zJlm^}7tYsQR*k7Rq4<MB?Y7x-n0SZFEk zC2V*pG8_N=-YV-^heGf*g>&sJi;pIrXWq0u@l@@n^%TBjVejB(qAf%hxraz1Fgh?g zv}mdm&l7A5p@NtbR-hQ@KRv46@=-`_;F;s8-*U@dP(lHUDW^^)FXGj2-APeVC!}p~ znijB5A4pC6R!~p-Hd5DJ!J93R>>%{1X(*3Zhr4!4jZ-Ji!f*5<gZn-~VW_2sVr)gf znZB{U)r{_p`Br3A*{;5olZ%rXH@88$(}>N8xBamFw>LrAoxkhG42+BybQeDC^0@G@ z?NoYc1-x&sk!fGmbr<l<q{#>xIU1oK$sGyVaoZ_XGA#NP^J~hG-T1}pW2)1*zr;GK z7OKjs22r)e)e)|GZqu%@%f-;|T?2Ik;DPQkk9bGTwTy3kT4up!D=lQTBUR^v{yyt= zwY@I49o<ouNv#vmO}7hVmz!mSVY6YQs6&;z%Y{*&5z6Rx;cs<*wT~Hni<sNBn;Z1q zYs2)Mk*s$X_FiR0GnNN6yuYtLEEtM?5Hm#XN5&K5pSP;N&-I;BBcl7ISOMXyFHC2= zdWSvETWHpsQOsvKRn6GsvTC#B9DZ?8*pI{2Nciqrsr_2li!E*KX<4fh;^fM@k?~Bl zu5pm^AojdJ(3`QFb2)WO$e)+7lXG(W=D9zytSY1aZ(bv+s(8_XlmVfE`hgCc5Kk}9 zclAX}`mO>KJiatE&uOS>sDk3U2Yd#u2S^7J2ebyp2f$kkTP<5RHu}Z9dg(tkMP8-6 z5_(nts)Hg#!z;F^U*ASxn8#C@hbH4Wev`MY24#z{nMM#1w_!%*yZN%58OTi5%#yyv zFR)0vNZFjOGk0_5ZhD6%$vYCw_;<2p>oXlQ$eG>4g~J<X`@{~829B1uR;l{7zlN*0 ze{xrzFU&29EQl;NEi^51xy(1GG}kvHSJF&1-7MV{-SnzkTfi;#E$uDME!`P&icF=s z5wgy8+Poh*@PB_Npys~tm%Yw^tJ7F9KYOYdVZqwV5m*<E@2ZF8dlo@TSM*q|>-TC- zn&R-cfJQh{KZ!pga6y?Nw<z@F)w`c2>~rq`q74de#DyG|KUHm=gzo}^el@(epf;g4 zD;Ln@ZcN)rr%Izr4;Vchr5nu|H62|UP1`xVfLttjg#^57FO#Y5D(w2XYG!G*{&C%W z-E`fu=C`h~ic!DOK9BxuUa9~pd@5C{^*ChQVBBt;(HYOHyXV(jvi_;|nv6(&**m?< zj0L_Evoy<Q@frG~`5=QXYG8irA2Zl>;8Aztx&yGPb**Z(a-FVS)VC_sh4{{b@y?w5 z&P?{sRQS#WWn^F0@uuNTi@sI1zSFO<D&C*Gl~+a!#$rZd#w|uI#;>d93{wp24Uv^; zuQd%V4HXUb(pxLRmGzbFmCcpi?=+ZfpnnD<L54t=Dt5!l*II_}(`#P0kLcRhdKpt0 z1ymkZ(pBbE1{=B=+T}XuI+%@#t+l}1zPa7Fow`LqWuS*GqOLA0yU-_>C(ee=<x=IQ z#y`y6ezq8QR*_W6&il-h&TGws4_ln|ODd=5`senYzq>pYy`l5dvQDfhuPHAo|21el zYov_HoU@W;YT@QpU9@0%RKxfCdTwD}Y))(*=?vYERL;e_33g5zDG6V%jLdfqvpoF9 zcz8Y+KqsTcSWrQVtRzM{J-wQ?+b{6l&yAWAI4aZ;Qv|t2f`3MYzQ7GhzEP0A0xRtY z_)Hz;6b>~j0u2;(;=?U7p306r>#iaTG_r6~cA`w^LLYn59BxzgH`9~MWjEEsr2yn0 zamCv&R7&zr0(!~-jc{-;Qi1{Pv*|g!`6ayMNAPb{YhEYDQbAG@8dp~n7w<V178W5E zRh9V%GQ>UiWCA9Ng^fjlxqq?u_VMrr0$sldIQls8+xy!ecY}gI475uGiv=}EYKTda zxH2n*VJS`*7Hf(eanuPdlcjGCrdzPG_r{61J8AYwh8g4ZHoAOy<62g|e(2Vn9v>>u z-Fmywa?xkxkva91a6|wUrc3WK7aLEf`JTD~)-@^YC{DD5S_gwd&;kEazf6qD2w#qk zUCLa_2v3d~$+txcd%Ya$D=7C|4b?{P!5(ix&mS8c?^$w#UOkLwqewN^^AHN#B}bQw zq9JIg79d0%{Vy7P+YQ%5Yy`6RXgpdzmTZjHwoRs@*Wk6Gu-)Ik6CzY-W%JLnY1~o3 z@AoKcw6q-!>XDQ-;<jnm=7O~gP}7luw**xT9a<MpNj>h4IsSV4kR-PngFthdukrt9 zW+UkJZR2~6ow>N9h#lRG<S8j3@BB80IRSt~b1n$G$3TK#G=&qfoA;!9_6kP*B&LoH zo<f6a-J}>Ae;`0!fl!Mppz$T|qo4OWX!i`pW%gdwWeuLvlF_4cR`7pjK3`@Jqf4VD zYJ{u=QgiV^KnqfWYboGDZ(Co~$9zSBMmW94KTww{8r_4=MLVmjhLd^Gui!ZrYGQ0} z?efXM*hD^frcMJrX0>QvR=lKk%{j?4)%$d?=@7L*8&Lo}SJf&iunlb}Wo}KJ<Tc@@ zr%}7qbQm^>SfP%e?3vMQt?zQ!F4Q^_tp1%)z9e#irKIy&G~HP0v8$ayp^^5dI1%yE zM>?tZjZ&{k%|q7WR&LyA#uTch%`nd7TKb#|6~dA;yY!PufJ_02-Ow4xxx&XBGE<8` z>FKMimkjnRBVx+TydWy#=UL(EYegsc)SqT^rf~5WP|8&JMy*MYyd*r$Ew21z5<+*Z zB2VPTc?SM`IU}MKwAI>o%FvsnG}Zr9eLfQiA^aB%ky-f?6>TbZna!h26<nUDH?QBN zKcX01sMNTvYY<2<WL<h+R&be^fnT;4e$`!I8S(6lo-W|$_Y39}btcr4t3AaIsHT;M zn%&;pidRK)WML-f@mGkhE7}a#S5xozlb_7!0j1v>U`@J3*P~aGUZJ^Z@Lt$5Et@B+ zNe$V+_tu(7N7!9Rb{l#p42~q4Kgwk7azq}EM93foe)o*^)`?ik_!n4vlDgRo1q<?m zraAcCE%cLV_P>Mq7-a(FAKc$)yfYA^`6%I}LH|6~PM=Yh)b33{;Tm&NYt)IlVe;Qt zo#>Rm+RyMOHK+j;s@a8<1FBHT7g;je$N>7esT>R12cl4{y!2kJClWDPxncNpjlNkD z;{)V0#=rReaXdPdWh4$l0~hl8iRkK<>Xx*m$Jt0fo8YN<be20QL@Ychlx0Tw`ll)% zyOg5EXwLFvLOC<71{D<#LMN(sJl3?`<%$3K?r-e0)b;!&brZ4;+MFZ?wF~YBoNC9Y zloz?oe4PEnyQkyfMfSrOd)o9reBubCF^=b%dR6-^O7dnSOsADeVGIlBZddg5acX#a zS&)g_x+3=(z0X@xp6JY0Wty`;Sq?qEJvmWX&XPD8Ps_gD;rJzH^c|Izinb_lPd|JW z_!B$@#`FA0>-qI`m*Pq>42u}h9p~nqM_R49>}9a8Di(#?(*6}l>h@;;qHuicX&z4C zA@7%$q#7K3yMQ{8o?cDh8<wG&K{nm(H%NaD*h$y7$Y%`~^33&oe#Pc23mfZ9TR<n7 zr;@8zr|&u3hzZeV`%(~U(f_uL{eRAQ3N=ZN*R_`v<=_8uSM~bSVgb>j<&pnQ#u^?G z>@VsCvDVc|Ea<bI@%lZ*1Ie@X#QD}zJm>Lp<x>>WG!B?C1{s6&{0A8nkj~<*GkS$A zsU8WVwPklawJI8F-0d}JPR>Kz)ogWFnqi%pzj%)X)-qrIE#&UY=?Y_+$s+mW{Yyyb zr+BI08zMuxqwq#@pUuO71IYYRrEkId*9wx0e?C2#{CA>+LsKsIGSA6&R5F>K@b-Q0 zpFG$%2Rc!PalSF-w^#qgm)QXODPI=ZYa^7n&|?D>z^HLL6Yb8I(q3ZcOOG%8cY+^) zwVYw!8)hl(?S|cD+DbE~n#RaQb{dW2Sae)gt^CLEvM3y1)N+5n{R%lsMvnXY16iA* z*2I;VZ{LgC;)?@pePIE%9{wx>zNhC=T(Nmvd2-@!Oe)?n$GsMC%5e^47{*WjAmu+~ z)iU<!3ahk0=T5%u!1YPPi#GbyXfe>=!;0N{Nt2mOv+~WR{x>1y^tlHkyE<u$#MD@f z<`x*sK)@&%4#o4B51+mTY^KxDPGY?3vGB;bs3)uhGE{wg$nqTfQ>{Z!E0Lxran72$ z4zDTF85AAY>RZx*n)DR`>2$ve(2bYOUTTxn2@k*Nqukx2%fWcXDQr-to&dTZ9}&n% zIViZ{R<7ETq)PRkhu^(lnr7LX1u6z}ij#X>Y{?^+y~XUg)SA}CStwNMT^;IXpw2%w zi+aA^%vE{?7p@+si3ffj7a`;k(#omq|5g?YQ-OKCmMjjIV7n+9{v5g+ML*j1`LJpd zr-U?($~7IRFf~l*{7Q{AQ$PKbHpM+P1#l3CqAhGJR2?Z%E4NC_mJT=ZNpi>xf-N(4 zFgj3DkhJr<*K*{_Ub%|t=2Z=Cmsm9haMaFHF+Ew<n$=@(5By0)2dx>#v52VtyfJAq z(suL1T8(z^+U!X0;zX@k*4fKjq$1@%i>wG0UqPlnE`HrcF*6qVrv%^l{)!-H42ga{ za*rNC-6|{xyh?sa3z>>maHRzAkoBBUyvrRgKtvy5|HUDb^Wvh=d=*Rv)#m3Zn1~5> zW(}tEO~GRLk5V@-kjJja1zP5lY<+1)+Tsx+Eh|c&_I(B+xRjUn4kSmp8^iiLzI?3T zf!vL@ee+erpOw9Rmz-udf2z4|PvU^8WS_u(edVD^Y&uitxAbLVIYr*EpyoXDWbbRA zK<xfkTtY6FDz98UXOl?kaL1vQ-u_sg+36l&v&lC(k<F{*PC0rbugBI}Mt-}^H~l3P zNu%=qEH+xRH%_10YO2d`QZ%<q6f5&|xZn}6DLTUDne0^4M*oD7z}q&QUv#_|TXOL< zPLuMp3uE*b&nIidOr=sa#D!?@gQvK84ub&#{_g_ksGl&XU^RPewTyB}<Tj+wEYO>5 z+{g(NI96zm*n<xidK*Wg-wvDmH;8H-h;Vg33BXcsGZTD!W*@#tKVp@bvi^M7`&_<g z^C`or@YhIUx|M&!oOe``t2D<Hxblh@H_466(!V1aK6~}`e@+oDdLi`U>!&NESn7<m z`T{pq#JiyQXWXFo6F7PI$rmYlIfBGb$o#nUBJU+D$NvvvK%KuU>KobzI}u!(m@GsL zJPTnxR{l&cMA8!>+rWx?9ba{l(#d0;zx;zXJiLXNj3<;n&31@P1Tpw4&S2Okoe!Ln z<^=|%>4S%W2sz1&Z%&gBtCOO++y0762k?~*UmW}5ZKqhNppZbhW?NWI)9a82pb=tl zqpoQ&tl2<oa;_#@HQ55=?ALIl-E)w&bCZNn<FTFd`qa9Zy-tvtNwwK=R8F(kS>zu? zQ{g4~?R8d+$dy-NM6Oh8ugk-TeEB|%$d{_@bp`T5d)-`lA@GbX>@1!xnW`!s?HdPL z7TzfrIgUzGlxB-jeBx_pgg*t4@M|@6*>y}FSE{lQorJj$b-H3Wf%Kw%44G0|Cu4b< zS{H{Bmx%{WZYn^gS|CbeWprYjspJ+Zt7N5=UUIW6fJlXzYKx(=c)I+yV@R3<cuP}B zXQ4~5yK*-)yIHl+7xX;q0E^lzMAM1O>S%|Wa)~PrANM$1LX!&`C{1Sh@;A7W`SR$C zdOm2a82C>>u~3fN<+&SXgY1kWL;-z5hv*GKDi*S}P!{ZR{>C-Hmry!(>jqYrRS)Ir zp*%g5uZIfs&|C~relnIM$P@h&>pl2SoljeHb)%#sdZWEACV%XoRST>ciRO7nP`y;Z z5YY>Ra%|y-`W0PCNs&8vc52stWYyV6YJfmUwH0F^K&pXG5&^&&5-o#griPVnV^U6Z zvWc;vuHBJ^;#f|(*xtJvWk*7QdC6BDm1Y#?57S3(1DdTANYz?3n^ZNbOL>y*$XYkG zjFZNbtnE`k=2xwg(<pZfz?n!T??~M-84@QF$TX5JQ0aOshlkh!=eiWxs#L8@fl3U~ z3?e|uP976G>gx{iIvUCar1nsCA6<j&;ObNMg9gVLwoC}Q`rLj2+wsc<Oq+;WNXrov z8r6chkFQd?g_h<xC#8|<nDWrND~T>sN@)SeGkH8TkYufb1^{pw0N1sH?Es|(p`O~> z1WPFw@`0!9b!K@Qt(XL=7yi>HVtQ<1QagxNLt!vF=e??ns;+LFg*}M2tJ~e_>VX2c zcDgRyg_-VRW{pLw?je1f(uk|OH8;xOJaoqboIj!Q$<bwk-9zdu!E<t&E!_JrP=HSv z;+y2q<ME)j;d{X0P;r|@3G+&X2k~?Noi%Z}y3KtBzDw?`xgy`u<{pOc>+Y->mS?uP zHTbsN38avzxZ=FMIo@<Ax=7sX)Wp4aYtc&h8iudoXbF5>fv+pk+u$n>U-9T%y|$>> zW`R<ycaD=S&N9svx7Wp+E&x#i*5Y1H+?!q)iT;h@?|YqsRP|{&1u$7b*J?TW@Ug8E zW4CFmKI6EJXlZ`Xkmzjs{OueYg3lJ<EZzz<Nq61^`Zfwo?F0;Q0<f_Hv}(OH$e+`= z0QGS#XRaPj#i~x!C1s{SkKl;1`sV?}F~2}(p`z9fAB*zFC<%ShOk#opQlKu-ZDpaU zFR1`{nKX=wzzY_V9qa;_lMKe(bRh|&l)h4kGv(w)d{bAkF5WU&%@|cnx84D*Sp}+a zV-@PdI~l1#nRhkru7&UwX#ajEq;&EH6$tP!04SyVvDjK^Y9oHo&+pL7HG{pIg61y9 z+QLA-xs8^uArrNNWESW`Y#LIK?OeHiS}`a{V&G3W^GsU+-)%0-zoF8kG@HSwe;zxy z=+{{M{CSX##MI_9K~37E7462zsVuTjmCviqJ*wQTe8I!FW3b6b2Ma-}nWWDlaF2F7 z{i+bvQ2JpZiUIAtM4{(cY@)EY3K_fFn|tI`yQ^Eu#xk4F0N=10Nb{NKFB{iE^Y^dD zK4<`~wYG5+h9wN&hvB3$I|B`gW(z0JRaq0E-D{@+t~l&*5O2_SOqK*l@L)na&9<U- zfdhsM1_;<b%nXFOkyr!9{#P<qUs<5f>tPH+1pQGWNHj0Kcq1xYURvt_1%~$AiO-GW z@Y%(_Ut!N*6yvk#4t!2WLilVpG{<!#_C~=jr1ttGAyq(A400;nZqpg!?5zndpx0l~ zrIUYo<9r<Kq4ByY6A!tb1r}HU1nwVhP@CiXs~_aJHTG0oYnF?5mcVP<ehlC;zkL0x znFdUT`3I6GEBhsQXK%3By6i7g_!OUssMS4DBicyk%02Y>B1UvDC*{%QNVW9&n^2>K z2n$`zB7DHKFul`Q7A7<c{;Bl3I5J+&d_Zc~3pn&O3ps9A2{evwFHJxRltU<LbR;6u z>6c*S)q3c^V?3z-X>R&wjG^108v}KRC6l<X`bgC1&#0|&dmFJ$RQMZMrLJzYg+Q~I z4r4=I@PK}Z77^D4B9L^o`aBqe`-)J=wv$IFah-=8N^=i~SqzwECOi_91(G>B0rVe) zOhoNx18^M1wVi$m4e8wku_MyKOFbf5^54OpLjK%Le+5W^w(jVYd6XUWITm(8comea zrSi}bgOz4nM3t9%e4&zH6>{Vv?vJ=-Am@8%)&w*#)1aRxgetB66qtck({i;k7iP(5 z7Fncj5!8iheXd&1gZYv&4sFy1=Za_wm_|vd)GTn)^?;!ns={)m$zD1k2PE(sv-Slb zv?iBRuH%$70#^%p2FlD%$)r36nF_SK`AwN*Tx*JE5ch_oX7OOS#!Y)~!Ulp}CL7aD z?V4#+dQJe9qs=8~)n>W}1=m6iN&@+^_0uFW1B=a04}g-h(rwCCfs^OKjAAfF3)_rZ zwLp&3X2@3#8RZG|9q3M__(oYI$6sDVS7U+Dl&$a7uSgWO?ZT#!b*n$At~kt;W?fGE zNHeO*q0o!KE$W_E@Oj`oK7;$&vyVNGu_tBE6YLpg&m-`pg9Dld_EQn97L%s8E$qgB z^mMkqDt_Q)0OX_$68tr4QmfWo!Igp|85}oIX?Du>Ug`v1sQm-l@ncp6a6y3dMTS$^ zs=yv*?5B`7*pk4H$1VxrdcdXBF-rm|<Pfe0h{10|Z`isVXT?Are6>wbLuU~4P&a$N z2G7=KzJzDslo*%+_>?OL5P(ykKMXH%dnUxS9h#S4vV7w>@!%oxV9RotLX~dOHUMVH zfGsQ@3`90Tls_#J<7?I6(~!*(5r6n!=^&5_f|)je4q?wh_wHbw%(`w5>(V`}GxxAg z-h-Xly8*I6Jqpd2?op^wx?Q1yG^eUc%7Ks=^x@Kc2;qg^dq=+c-bEwdhF%-4>9Ow? zv?~fml2Uqe;k)JXjq*G&pY(AiTjP#l^#EcchAs&sB@RB1QN5qyB0d}b?}RhNgKvZ? zgcCYB^d5sGbq}_zHzMf8UUzM=lok7LtXS3uz5mP#q}LS4N_m`>a<{as<#MA`(Q<jM zl-qK7qZoWxNVbQAuigg`%&}IUSe}RkPSr=N*FJ*3rT3<h@BH4GxTtR|xm}*t^0;Av zJgGdHwPhshFld`4HU@AT19%Ama77^j@Mi>AEe77f_oHIqO?-bJ6a{?CV&DM2H;I8g z_+Bms{woc;2dN<xMCNjfdk?wwL8d|}n<LtSNO`r=ED}P-3++M5qc4I4Z!?zb)ds?1 z;6;$`S3x`h5WUrDI-$f?i%(IIi(=q0T<VK?#HaqoVGsvjp=FW<h-W$c2~|~M@Fy_K zwH(Ut3?eC_*{M^%-ce3F8_v-4{qST<TI%yXjL%<S<5&eToouXd{j&EZ2o5p<F(3L@ z4C3m*m~m3MvB`4AXcA$xpj^`A)K{^OfogO>3zAfle$)e4w;1>>4|egeoVoL95Dsb( zBMEzUGV#M~=dC=p6?*-BzzN#=SYbpATn}YqoBtIPzgdMeU);Ai?ry|(hJx5+cPNNr z!A<XVFw+C3rWu_~(qSdh32lqxtqib}!C|DHQOByc2r43JBRl{TvV&Cdj<=)*dfnJ| z@pVoOA+%(DuJF*w*qBE28IfX`6!;iEckUQzubUo16}k5<T+5HG6Q3Gl1O5>%62~49 zx4*{Xzb*b~0jgTDN2MPqvF}N9mDu;i;0us8z^ZT2(H3w~=b^-C;Iid1a>oeH^v+^b zF2uksmo-h#mM@vtkRTG?8r2jP^iS0^+A+QVhflJaQ?DWeZA%t07(pHr1HZz(#WdpM zl}@4e9h}C;wOszT{D@9Ytb1$i?0btz7YEyz@Yn?@TNV*Um)kn(45$&#$^>p^WDDXJ zB{+<eMeite4^k>Q6V1>I#_YBM91}qewqnxaxEkC(%9I+D$-qY%t3vMth<$;9U=EL4 zD_WihdRQ4Q+G;1r0c@9YIB(mh$YD~x&NOmvqC}5Yv>L(3>)^GuEe8<QZ_9Z=#AAR~ zA<*YDl0c4|<Z+2Hfku|=jOXb!qMpT?g2SeUa8iyID0ICT*c)f$9Z+%1ac<aaK=wq4 z>$z*j+`=TnqX5~)0Qj1Y;M>TVt-*H~J>xutI}E+33&NmTkfHCzk~{f<NWPS-_sl>9 zR37p5#qlVQ%<~*5GK=FFX?zYesZ*msQyuSaowS*EbgUmYct$zJ4Zc6xxCAro0E&2@ z#N-s)Ifaci*K8g`4pS5+fd`o!x|%ddXJ)%>n#qt3$rttML}NlF7~X2aWa%ct8vfk< zZjX=lfDNHU<|~)%>hp|1V&wfTCL`<3*6gLx10mPN!j8%WVkq}mW_1r^)Q522nY`6v zpD%ee#=C?)I}G!k(S>)ffq0YC>3B=-FJwe`G8Uc71lEpg1XeWd?v`RsN=4YOby&S3 z<pA;$^!Q3-6NbfZr*zw|u(zaieW-4V=I%Bm1BKDd-6_&IJ&>;tANCqyvv%S0-Rz06 zIvJSdNg7k`LX3Mo{(QRbYi5;cOa&naMiWCJER=5eI+<AjgIfRM<?%j`f4&Y!Z`Mmt z4xq^5^!}FC1jAdtMfQxDHujmc5PrD*rjV;2WbCsLsB~A-kBbsgR-S8Tky5_4=h;y_ zs{83z{n$B}o2!-gMDrA;y=g#pYy{j1Ox^&n+Jxe^If<);xaKDyp6E~Dit>V!CTM%` zg9@l5yu{*a37c@+jIC@|Mi&qgdYbhO5_Q{&-VdR@e@Bzm1tO`AH`LqSTtVNDYFbzO zj){d%Zqf}-ZZZ751b<(_UmX7Ky3xt4gEapGjmyz0eFS8u4Xv+`>lX>DG+{*fo&J1K zj2|<h5#i_*1Gw|I3$<IdXa_t)tvH`V=XW@HP7$;YXKIGJN$7AEa2?J$86D2+AXwbt zT!8zCBn$Ixi(n2%r0Liid-GdjAOoq*bpp#qgN+o2mh&Orp}KkwGQi=@DP*|Q)y?>E z1>!@asR^6SORBp=W~OYb1|<~{$`9>e7~MDqBW0DqwX7;=Nus2zD&~?njWfRMIMj4X z17oxl^KX7WY9j1Qd8C^QYFoZbTs=epJwfs+mxiU9HY0Gry}JcDvqsBt>PuK9MD8XX zxKH%SjL0V@;{ttK3^H=62?n#0Z+rpFl2E1DO#?UT$cq8=U(+fDsJdKn_3-xQ?#(~7 zog){qgd$de3C)X4G%rjoOZk>)Q%5DgEqG2&^$#qMW{~zOwn7~K8pf;yy&+->&~JHA zlNR|#a9f}*oP!;!#8PA|#TiXkVn&&VPhk|RFK$S5=^cPkGy~x}O~cH(8#0R9(SXs| zfNMF$P%hZV<F2;0!IYv8rzDqZa5dUC;OLO2(F2CWCTL<A)@2x3hBXqWWz3e{E;pFd zBgW!f<5*)+dFc$yG@Qr3BosUkU+8Ucv4?SK9GQGB<JkFZQZ%c<c_UIy4KYLV8Ky5h z|Mry;dxu#YYqmcVW3SK!_ImyZdj$`(*Gpmc`Y&Y7Up&Panz;B-HQ&i<GJs@E*rOp- zz{uTkU90M3NKN9oa3@0+Nf$&gd}%q$am9xtXSAFL&^3c04#Vfxy;saIxPm{0R^JB0 z(TF8zIZL|PYH1Y?aCIEHJN_whx4vFlgq=oj%uVdg)M?$2JsY#v_5Loo-~pWr<|qH= z8R$-FLYZ>urlzk#Ri7)D#%;{@XDx?5=ifX(9y>p^0+~L$)^TKNcy>ey3w7=Eg~@E` z$h6;SE#ulDuAPRGQ5AZWIkBoh|B7od)k2Lb&?j)2iS*Ie(CVBI<9zJcu|}@g$*tCk z5`H!ob!~wq1b>Cy9<Ps$_N}hC?N4s?5vs{C;)*AzOLfIUuD;c%Ndbjb_pMg5@Uym| zp?(GVxUOc@8|>Jz#701_zP_+tuoYpsK4R){X&~16na2FM1-UAVEai>IZRTS7t4{#$ zrDjqo=;7xu>=Fi?{2DPh5k*wBCA5sHo;X=y#$AKz3(C;2)DXIx3-K$+k|(X9iYG0q zs}DHd6$^GrR`MPV+{$rKsUaBN?A*GTxMJiC)GEK#(hS180J(cC3fCo2@G=zcq!Sqm z{dx=A0dZ_`v<rH7oBiSS-|d!fP)fJ6z25vrd{bp+(iu!7%LKpSek}*%mBRw5Hq+~G zW!vEP<z{JoquwK@$q{;^9!;uaYL)p~lz#g0)hH<+vppSBB|z&A%;&g2;NaLjW-)L- zd?boJO5cH`-aIY2+~%_l;Hu~xtSVL;)a2{!sSg0zZkXZKHyc7v;vR!Tk2Hd4Abq%C z^#<u|7+KMWLU8$)?S#2fu_W9v|A)(Jzox82Nh@@m5UF`~ms$D;ON)G?G)tnuIkr*M zphU|*TH*n{M8COl6VAw|(cG4W;D976r2!a4qg?Li>0~~!N#Lb-*l?}U)q^g3UN>Ei z!I5?LOt#M6!^w95PSFg=nQFw<bT4#ak#qx!@m0FSnMm`nsy;1eCCV9kYzXbDTKY4H zZTDLmpG9n3aa@{L>w5eK`p;O9S{L^l8`S1*M=AP}H2cV4<dYQUG-B+q=SmfX8*rKx zNp#aUN)t{tM$OfuXx7bh85rSBx@SZMRLf$t1txk0Hw$#%lRVSn=)Yd;1Y=-W8R#7; zBl|!eTtg(4W^$zEL!<3n%cT_A`6~f+Ry%OBk1Q;V!7M({=l0TvE<x#T`e_B*&~S9h zBIFB%9}|`CD{7@Vnx-r@=PO6G2FR$a;bHEsC+#c7Y$*i?<a94Z=~WxO#Y;D%gu@*y zoXlq6daV<xwR&kRhUW4L7r+gksht{5Eb#iRjr*}X2f(aFb*o2hJ`atlz{Y^`h5G{C z4(6OAh7_oTbwr4N*<LKwCpy#%&6xaW+*7cfx=URaPxR%>q{=)HQKVb!%LI9xo8E(% zVW&@rPLEEuHw&_LAd-UPaZ4geHm1AIL#-5Ty2@z42K3gQ7>Jj_zGaoPCkJ3WBPhWD zgCH4+>pb0fSs#i2;@H-lfzH5kaeD>W;q~RXFkbTY5-aYDOb_v2SHYKB%=8UyzS5aX zn`b5z4s)e4T(J2RXcG<f?MeZIME&9`qIt+Pqz>;vjDwK`#b$!Cg*Ql9KJB!Ro&aJ{ zt^?xg5Vj3B=78>Yo<TOSUBPsOl#Oof^l17g^(#iS4Q;`n5IE_Y1B};=WAor89Gk^3 zIJR^4X~-&aE`0^2JO6Z=lAGMtaesup0~8Tjz!0`imw3_{{hmLUrsLiRi8+R3kw$<H zIyp02i;mX#GiWWRGmm|`JdbsTk4pJ^N63?WbeQd%kda)#anVe5VKmK0KN=ddjh1AG zzr}D6GU(hy-zPM$klr+9Atz68(^)!|f?hF>R{Rxrcy1r@mV#CTU2$}Ej7{4%&2fCg z&HnD?wo`*&Ib7zcVW&KU4h<&p@!>zJ45F50wS{}%L5u!3)n@XQDhrN5*=QT6WO70o z?%w!lQgGd?bco6)eX5N6(T>!05V`RV5J^iAF`z&cn^m{#(k$7+25eznkK-@WI7s$+ zsOcP2?HqrRAM*Nzq!3$;O3@jJTw*V6ff&i=r9YX$bRjX=#P)?OXj!<mWD|N_xE2qz zZUzicqpNL)>{$#>GU+g+ojwa~Y-f4|4;YeWoI)eLX=}tU!%-pOc)DYaxD{fyF1Fw! zA0PAa;lzg<AFJ@OF7!IC(cCScAW#xa<+_^$7V8q8BQe|M!pq91BEDeGC;>%-oK*h0 zRbAHactaXr_(qMJu15tMrg4`*mh}fuNiL(yQg{dy4O^Hr$4GVm#s9#q{+kE?qI5#R zeHaZG_hED&j4N4YF&-&AalfCdp<7s4I1~wVfCloB238F~0!%Gy#JQ19R}ZtdX5(fY zN4Qd$aKlnY=`?&9ZQ=HW@~=G7!;S2~_0VrY5lKgkTwB-!io5FS2RuE$SWb=<;kg|5 z^S^ko@T4@O=6PFK{5MRkqw2B?YIPrTH;1TYkSDfc&=rRuFJ;q}8e3dTg(^{wuIOr~ z&q35K^m7ADbk_?u3)s&292ccjd!2b>K6Qbi?4MZ6JV1ax1$vBG-&WGWoI_#2f!f=p z$!*-7?a~B)N`t-GEIx@l>#e5B4%3~Lq}oa%j-!&Zc(POiwhHvtGBXH<xa0Er$J#8d z6Dys?xiWRv&<h~;+klBnZjme{D<$({N3(gomz@w{*<86$(fFtyzpzbc&1PBqboZm{ z+k`uhN;6w7-7MuYh`bKd&6Npg%P2I4H;jXEYt5yN&=&u!-s#W}t<%SP7%~4F0sU`2 z0frIxqGs3Mw#*uMz%Wgo&i2;F17Q#qJ#WyHX12?My&7c0>il~iIDVdOyMuni`dv9} zsk<t{&(UpH$8#fYZ^+soFJcDYRfgTJmuJCzko9YP=IqAjv={MN^a4Ihe*w=m+jEYv zSJrFnHSJmUN`0EW=Imgvo3_L27f+>zXQ8>x?Rtg1`Ca?r9RiE;FouKOFi~`-a`25N z+fGc}^~%gLt}}HvJk!xmOa1jsOih@aDl_1A2H5BM5xZ?yY$p0B)87F5*P<&2nsAM8 zGv^jG;FMAX;GjzklpsuF`n48ZSNlybLi?pz3gx9q3eA$tRg9tb^LVIb|9JM~1$>U< znK|wCk-kQQ0as{3m3cll9eM{OSXkV5ghbRWJnkuPF-JbMWJW?;EdTkR|M@CTb<D>; zukfwcF=Lz6&}wnsCl7|6oCd*z9E%emZmB%jP@f!_ywt0<XMLd{y^O}`242f)1l(W8 ze7JBi#3r=XKq@l6)6v<~-xmA=Ks$mMksk<4H;118@-ouj5pl24ab)Af!iduydO8c! z{rUIP;&+%3DsMBE2g33h=*tb}P%sWzpf)$ujDT+DxbYZhQMPj)h=*8^*S?WtA7t{- z2g{MXDiQ$ku>fpWg#i^YpaSf*?JlflAYzcRTb7unS=zRzVzJS2s2}BER6a&QL9N?O z*j-VfBfviJq(Rfcs8{dB&R`Fe^Gmj~djtC>&)_o@$i`&jiO_@j%FyJE=9VSdP|L}d zL-|orxjcDeHb&$_#Ao@fmZ-6V<H{Vzn-1aH9UAvD&Y*D*LfMHz`Dh<ZhR<f8O|g@C z<t<((O;fh6<)leuV<YIJf<K>r?|oD`I_O7zs19V&i-V}*fhY$MRqk;VG1tD^!I+o= zM#wr{@fUTSNJ{h4A6`VQ8-ditjf6o%HUM2ax)4b5m}vAzMDBqK_79Bc8z68zFgz%6 zr1!vdn0BlHsBd^!p5B>?pV)6&&L$|RxGpZa5~3wqq6}Y=$BzY(03>=&8IGf?UmtPu zqlwYOm^Td!XtvbZF)Hlxzv)ikW4;G4tq!Qof@4_DhS_`{+ArbW=kZhro+7aCe|9qZ zSN#}k2CF1IzZ4IAHhsEHqgQZ~Vx0k9-g?>hYTV}9*9i=~ne`mlx_BPMMS%brUtp9C z&zT^vh062L8ao9Qp1KRyq8{hf^=A7rDn1#5Dq5PqfFh6M5`_F^TXvvJ44~JsxVI9R zrK|V<a90&G?i8wJJy6Vdy5@s%5c=(IeQcsPwpF69^jvZ8LiF{3F6(Y<c^VRh3db}k z&9K-J+wd7^0hN_4pa!0VanoGgpb0C@-8>Y~)Jr-6wa#+1lsNir&@TNZwcH#kw}jMR zKsgVtA-9&TQRkOAo%hHW$wm4e?)UBkQfOIXoW?sHkqrY-_7>bQSb!TJ<<nms#s&(4 z^KSVPDd*{UG$qT;sz-<#)%8L`Wa*OXag<ci-S#3JV==gVn5`g=tY1%ghcSV*aTPK_ z$LEk*-L285(vT6rYN9BVNkb!yH<fV#4iw9BUJUqf81N(%ed0^xi8H}-VxSTtUv0%X ze`6yVy7-bZoAcnrgc~olpmcVlvWVISk<V)z8b>%}9I0$9)p^8CAMQhCwZ73qN|7tH z_XaB0rHH}LaFZ()Iny8p|BOD?SybvzvR^sB>pZlNlncAM+1tFUrvSAU&~%kpYO`ex zSyFCUqnceOAlezFETt3)pgF5;Np4<iYwILT=+zUD8=664<)VaXZQYTJX`g6}V@J@Q zz&LpX@&CY%P^V#>M|&^H&A81Loe#)<{x@Xh=p3{N^S2G@xja<DT-0y@)n;6_jq<o0 z4pc_BKwP_0`f?%j%JpBNUgqGJiV+4jF^sj#pL`9YKrd^TzF%534GM20Pri&!=Iv6w zJy(8^Jh@*FO@a_uD??uZdV4V!{dpO4uzm8Cs{q~~1t?+w+FmS=9vY3`_XV@go($_5 zD<GqjJb4&GHzA3-=|2MidGZ*1Gu6DX(@hl?bs`axSz(x;`oCbhP3Yj;NFiyZt$EOh zN%m(ED;ezRsi59ychGWHXK0JN(<Pu|!nUok9Y7V*IFbe^WC98>7Sj>P-Vg^JY%xC? zorck%xog#e-07t;Aotpa5x*(u$RZ>;A8@lzdzbtWn~VCI8w2~t23{E(2#*Fr4I^kh zuA`MsjEOYm@i^`zmGjAPJHrDCzy_yckq|qI4x$m%!~iZ(AZkc;|JTr}UqLz>>e_>v zbO)a6^OE_FL20f}Ev6BqN|^DcdZ~*!w{f*N<vlw^pYm#v_ep0x7&185wxF14=mo}@ z$Ij&Gb8Y21(9^cST$@L8FnZnE#Dsh0ls@4$_2PtUrcd-GI6hRlmXxBGJ$;m|TK8PV zZxH}(W^zgHNh~U9MFD^&MJ*^(-i0>I+}Sc!cR!ot))TdNwG)sakQO|m5xxGP^pTVE zCf%v!OfOw{N?(V{ZCw4)SkG#Kc~*mL1fv0seUAQcbfMt?Th;OZq3ZUN$*On!zg4Z} z1R$Or5=hjm<zT&}4|;T}R%Dq2UG|8+VK4&FiU1w;?IUPS1hjGy(!o5$PbgWK0(yEP zJsaxZj(T_&E1>rez(_E-FW}%l@u{X=gFcV}kLbfNfvD=NT)Csy$>G}17Av%%K<`X4 z4O^t0R-eS)XRXv=E`>05iMnN7$CGGEm3KUOFS<;0RyLvt1;P5gFA_Atrj)Uo)Iyvl z%(VIoeffj9%xdLYT%g&Blmp+|hP7;^b7Z|I2L(|ow4fc(16-l_A`}uxd-Fa|uDj_= zxLOf*3W?DlW7ZR_hnF_uwk=pCzood=TZ@cwr&ov6imceBxQ$iIMmyKfdFh{!eQLFw zr?ESi@|tRjrh92U(0i?I0BYI+@pvYm`BQI2g{zP8hJ}83obg6|yI*KLf;}&Ml32<X z1E>L!$^vv{0ObY?BbD>?kWmjU&_iES7Anz0pXwo}9y+UsD)i7%JyfNK4(Oqkr8txr z@oS8L?&`jfoRhaSg0z_88>0tn`lRQhTj`iS_vxeb?-%qq=Gd@hE##f;qZcout21MC z$+}HrLdC2s;$$d9i;XE{I)}bO*JHWV^|7WQ2e9GW5M`qV-)8EMCP(m_1p4q>Y&8)D zZawZo6(Kb?hCgC5xA7Hx?=sIpPHo)H0v0{+0t;AKKq*BC$cqfM3mHh7sFWfgCuJ$6 zR`!7hHVbwlPqHF*A|G|8V#cTMbAn-xP%N*`%DWOgCkAj9)fw20QbY{=5sCGg6S!fF z+3AEK{6qkTDK)Y%E03`~cBanP3}5=uWj5im%IL3q+2YS5jjc6E+N^-mAx5gZl47AM zN!_PE9-;09S5tS!P?EZ*B6WW{bS-t`;!+y@$q?EJNsAcw5Ya8Un$qXqfRgKkP`QEW zU>il^qWbA2aUZ`tDywxuq*)NqC;)-S_S@a`-zOxNxW~7-1b<4aE7n?fsl#;{&#c<I zTI*sRu1j1Ql;k&P>#W*39?yi<gj_Lq2;<yz%k5~j=HnrjVpl&JKz(Qc*}_q)xX%@z z?J~DC_p|kyJ~XOE&LN@qxR<W)#u>;=D$TXKpO7cf1%E|l4wsJEHpdaI_ZDc%Zl{z* zC$pqkI7fX1*4%D`G*PYRcU#2350UJb3QG5|nypr1VM_Ox%8?ZK1_-q-{wwAVKaZ|$ zPdLv@X1c09={TQ-t44xFKa2q6Jl%;~B9&&eI()i!C>}Ul7^*U;*<@*MVeD?lkh+xL zGR=pl-e`$__5{qkXti=AA8N&|md8l7867gFqC>_+5>dKmkdu+iy6g2bSDnV@^Chc4 z#p9`=Z6J1M9|FQcl9>awwp9zQLUbZXRA0y?u<G8tF<G6xIWDCq`Y9?T$FyNZeX@^h zz}^&auY>u`IP$KvqA*Cu^+83O)bs^BL}ep1({H5jJJ}YPK@2R=Bf6Y=j{x^=ACIO( zU@97%LuiDEfij$E)`0-~qZPCc&+GX>!9Kd9IC*_RmVT!E?GM;`Cc81^pnVRW1LrzY zORp<KYuc(ykn0+kLphB@DJX`Pj+7uKUE_D?WdKKHbDR@!EZI=(rSGG|{1*;mhu`?> zg1Kc};{#Ag;gK3Q_1?kO@}P)uwgDZDYQ2bPify3L4R9VGU3dF6sNSH%5LaAV@Tcw2 zQ2=!BwLpBLJ(hd}*EknS^3mdj`bojt{QU_JmottJqyl9~lV<oi#wiP~V0qf@bPgb0 z>(*}fXgSZ~<b+G2(AD*e^uCvJAW)My7BeH!@AAY(>~eYo2y1;~X9k=1Mi!NQi33q@ z44{m{<4|aR#_1mhbV=hF6rVsvn0!$9mryyc#Q3I-K3cSho$W8@YaOxmRr{G6Q*3<- z=`?maI-5iwwK!e>Vd5;=#L!|3#5!4QT_RSxH8PX}jeC~9^EJfmLL}G`(64cKR_Wlq z^fi{iP;v>ixQ3fp1@`)RP*FR(5koJ1M)!|nB`|21rc?d7%j?^f>o`1-kC!aqH2n~C zKizRe-vhw9V#B&_bnT{7GXS>J?;lAn^&{*)06<@)!85g0XeW60clSHFgZS`~n4@F8 zNYWA~^*VXSaMM>z#(MWtgrffol+UJx_Br#|D0lQTZ_rxk1Z{2;1%PA8Gx&)UR0fI1 z({-e*#2DFD%uY{zX*-oTKUI}0K7EKBs{4k&2yTZ|l^BnR`^u~yuek3ACfg}rs6xmM z4s4i8n$4uj?6}mFPL>PCvyP#rjJuTZT*tdjl=b>m#p&hwhZ`+}z<JEyWhd?yx$&N& z5hs_J?N9Czj~11AQQ?<<I_gHYoQ{^yGQjI5b_z^SaqAmFkm4ZDf(V^4ctYtmBzIuO z_{Hc>Bl=M)gY6XCzhO-u<FaK7e=`RtZSw(d>NyW1o{v=S+yu2vWJGZyns&9*7ac4C zo>>d9?Tw`?Alvo0lDG?HMtf3Ddg-dKb@fnRi6P#VJEgobX3ml~Ja)U3P0oDhoLPyO zjqf{-HhuA(u-SOXab&$<x63?<Bz7k<pzC3}NgS=k6=-EBRW_q*AK=vc8H)fx`T?7; zR;kr7m?YGtt4I~EToS|}8l)tv5h^C7Yw>x~c**fzbHR7I%w)?-Wwl*^1eQDvlkYPA z1rTza-uzcm7bl?ktuFl$bfKKyS-Bb+K3ZS8BN^U?;iaWNPKE;*URe6mWSCuraC2!W z8GZu8(@UR9hM&Z6cIi(roCe`G)TlPB_6yqST6N3nXc{)MMmtShv0Alq70gI08j|x6 zy3G|scke2}hZ7$abIZouYC*EFv%PjVFNx%<?+loYvY>>`j*g}a&~#(9Q16JWPsQXE zWE-sr%b@Rn#jK0`MmG{e<@+Q43TI%}Q-(6PE|GFbyFaD2Fe1%@KLP$$7e?d?y8a?A zzOv(}GP{Z8A)KBN#hv(wuF^KHB&TT|GZ~Z)ftaEXl6HlPQi(!MQehPs+iho)%TCF8 z%5qkpWd8dgqPG(t(TNAK%{%cC%{Yjy-ieRI)}@<H{ED41thI%e=5C;jGZ1Tcb<1fm z5ghuHrrBLRXd!fTqfHY=AHyL*%7Dg6smc&9PbK#O6}_!4UIp>8liasjtv=DYc=dKh zX@Y#SPEBg{d6LBlDhGqcH|*8tn<ta%^GH~}m1@N}L35pto}*j(*nx#H79Ex{L)*C8 zqb=*MjZTK1CCz8hYe&L8wFmx!L%`CmMr<5$C9yIQ*9mp;YFn7nGf8ob6tUzg64<r; z>flNi^jjL&;ov@cCMojG?Bw$cFnNO1kKU5l`h_mEb(KzH@*_eb$o<=zyD<#Li=bPA z*K7l?xC)t7qqS>A7@(WK)E5mzwn$K$*xapaXL379x7@a3=H+&yvdLnU3y9NNnxFd9 z$x=?~OnhaR&cat(Dd&6+kKUFu)gA94Xgt{9Ozh3EwMd*l>}<Uf!NArcMK2`g!Gqrd zGpWr~lD|>FO)D_&3QA_l>9#Jgx1h0?#Jyply^nNk4V9JA(*T-Q*=7oa<*%9fn_LJ@ zrM;hNnwJ#eX<4WcuW~`^e*wn1q*O92_R;`)E#n1ZEc<7EezA|vJd4~?TdS7l;_Yji zbW|_F6TQnzJ?Q0jro3fgX{~gt-{7Ga&#(n+oFkWdJ#N~3^EVW_*WYH00#l^%A};*D zs<HCui^xE8@RL)n2gB~gk=5E-5GKI(SU=supmG@$=)FC<2q)DRk1gy~)5zb*GIJ-c zP6HzeQaZ{4m%ytNfO%RL&XO&*u-z5^{Veh6a3!kjC0bhWlq9s7T2t;)mzmq9i+kJM zmGt!w^$wk&rQvZ?5bf3GHk0Nuw;C#;0;n!<PP$ELj&t&_T88qa)Rv)i`Ik@<-*K15 zA+18o#6T~gfnz7}CF!!MGJ0`o^dpvli@59<Z93iqga}$RgY8_ott*;RS=O>}rF03g zy>1|408J2gyv?CXLrd{2m~Q%_S+=n495e%O?{mdZ_6ED8@prSzQ&!#u4eFA=!nVK| zO3N6I0-$hjNxHN+cup!64~E?UJe$7Xtv52O%>>QU8>gj>wltbW_a#7#kN`=`%$2=f z^mRBTrFEom*khQ%(woiLN~m9fuu49s8AkTM%<Kjk`?LggKSDu|W%fWL@R`@sI&Cd; zlR;}>Clb9{G#3UJZ#jXs73a!ERgRNoanz(eo=|f?%|Mr77y2)jLamF|-$SbV!PHuR z7l}naO$qU$Bhqxcn-;vw^k2tC>4rph<FL<*1$13W7ErYduk=!j@Om#WS<%&T)K6jO zIzSBZ2bOsSSCDPz&>cg*S$h|KrzCS{DnjT^DEh*d65Awa_*0he!h~q5UIG|ZL7acl z-Ad2O^aH#SmUOPM&ycd6&NcR2`I7$n8!37jit>0og`J+0F{j(-@u;qT?OoLsgI>AC zP49V!X}x$O%}fuN|1r?Z`vD5qHc&#wY3;iR0a`&_+^6OI8m*G{=t?D)BJt3GC$ya1 zY+=)JQ4F95Qt@;t1N}FK@G(%>;dDb?^rN>K;{&>8ua@&7<Y10TP@mUF|3kNW6A9=T zn(Q`YFqj;GHXHGDlv~T$kBc$r422hNp$K*ELa(cl`%o-Q;Zz=pF~;%uUSIl&^N)YT zn~@!zQdY2CN*_G23mqMztGqalTFx=7Q;yr@n3i({g=n9?P=fEn?2T8sXgOhobM@O? zeYQTwpqzH_J}5bw8N4W`k&Z~WC9_Xup4Wr#szq2qeZz`Tr3L+<MY{83a!CS3KRYq7 zS#Yp(98Gytfz-sw0R*9$Clh{W(J9Hp)<i%20fxVLu)@GA-Ol>DcD=<%47M(N>L%zJ zecl??&zBVNgAsPCR6(0TiQqo!QawWcl3j+J@b60A2WeneNF^?iQX+}#qbMnhL(ba* zJyOB1*acD(euavgloEY2RHk7qg^~79+3?8Mm65M_;%j6F9an5@=RhU4I4;Uo$Iu3g zenU-)nhVs-EKC+QDuRa2Hrmz=Q|ZGe(8FouZlVjv6aGz6FCGM}?xP>=WA57a<yJBH z3n*g^aamtQGk1+6vf*}MUJ+`_^m)8=_wSjNNG&IDKyGBq&G1P$edAr<v}a@pxo&d| zZJb9xK8`L(Bej1|uN~mUz+;*&16HlO()(R>Q8MY+n>raoGnhGJU?$`KakaU|<Ma9r zp=xW5N3An!>v$~(nH4fx?R91`Sg)Tga2%BmsD|jPNvZHpVh|54Aiv=;6~~bHWCOgh zStozTn$>$>(iQz0*QCwtQV{DXvn1{=`j5TLcS^X*Q)&(#BK^A#Qp{X_HE|EoF)v=X zni-bo!XR7V+l<bX<P6?R2Jb%7KDZj<kB|<08&5_T!}m&v!E4<B=49{5b0<GLc_y<< z?jO8J`T)ub5ETWM!B31Qo3b4Mw^3*k9RRx_eQ6;iOnsohYC8vC0(_YV-yb}qyw8z0 z$Z2vG>#09v;gmTocvOJhhwAk~U5J?#uOwY|zq_WU@#RNH&SfNT7KP$gt8*9!R20ky z^9!Ko*(Q^9W@UI7?9T@Z7ATj8LFoN$!_A=u8$v68Zy}j#m05Y5=j3C|i-D92H04%~ zW4EkgzzTur%d4MaY^EH}Z9s=y<i|1|w*i?8pk!nBNLC59BXs;84SKjSS6c`4VA0lD z=|bIov5vt&Gt`v*$hqyy*e#YfXg|o)evqsEU@px`0D?xi%<J=z&v0J1ox%k>?c@sP zz5f~cibVVd+Atpl5TtfNx~6@?HeG#qi%g@>@8oLe&uTc1+4;-J+5+MJ8qgE1^p(Vg zGlvAcsB#DD($n5VUAhO?_#H*e&vllcr>oyi>^*qtLz!2*xhB_CZg>+n5_#HidUSsd z3Q>l;#UJA8fyYNmS2GVY6!qwmJQMe}rql07lPgyT_9Ff5MBxv!qMRKZka&;<=+)<r z=HZdAOi(EkzQ7YfKQ&b9ez~J(0^UP^3HfHfx!#`2ylHcgu<z<mXzPGb@8gK|XGifw z5B-R}8c6$!sMSlSA{ae>bkyUyo*5Z0W5@8v*!nq?o{j6QQxT2cV@M$~-g;>EP$O;| z_3p#NVY=I}82qV0Kb6?Sx}go1PI)@%w7zTRp|>-)c~>|3_x>xY0D6z#jhb<8T2eDk zMIY)SFa0!K?|GQ@t|#U3DlmXkNC#f~)kE(DIq#vL;C`N~8*-ad7;)l_M^!MhnQQ}< zs%#$dV#Za$QTJoL%=~N1{A4zVUMAi2b^W|sa>Q?D%4s(z-#TUpuu#wF(Tum*S-$9a z=p5)YXmr&{Mi$LIV3!16NA+9xcAn>@FaC{<ju<?JH{!V80K2xiTV6YQpkt^DJIoYq zz`Qt<&_W$ZYSafR`U8f^HxU2}-kTtV1zzgVE0SiwXl!`XOA9ef|I#%&-t^%&aAoiq zMD^m)2*^K?9_$)>y5xIZ>~sm~jGjs?+o1;QIJ#l3zuR_dIXazN*5^?bz!F!tVbOG4 zS90br6Ms`}0Ri?EUYVH5ZVSVci{uPmz(+$@baM&}DXZgy^_IemK-|W^c<7N|>rT&| zqkarvz5}`JTnmrybXko@qT|Riq0nvKb{T&GpebDmTS3>2j@YCyJD?|ZnFZ%+9~mxu z3@9QV`BEguAMN7t`iAX>3M3(zGqUeitK(o^h{4m4;0fj3N+zhw`iVELE{l<6{V=@^ z95TpK<T8Jca(U4PqkqwZ<X+x!uOQ!r+h;Ax<^1)N$s4Dmp(QE&;OUtw_g4(3%d-K2 znUkY=p?kVVQhu=?{aPT=go(90sWTIgKvwXiI&Q4)S0Cijq=M)Dg6a_fE!-&?Q)^vJ z`N*Kw^^3u$(Dy}-K}=+b_b&pPytm%*!G;v_fw4NK=Ys5xcOm9o$NN$}-Y@q9-thxL zb{u3l59P0)M2?>RV({IW65zYU$jdVksavB{LicvF_*ZmnF^S>(1D=&4kh^)jqL7tH z?iSRg0(5fJhz4eJKbTmK_Y<2%)qNrJNm2{Y0`5Nn^ip^V@N_H{<W+6ZDXrDwaHJJJ zuoLIBG>e>^P2OPLdO8Y~rcY+ytamH+SET1gZ(u+c=+-e%wLFCXz`~z}0u1kT(8}Vf zNv)V42enEQ#Nb7oFE=yoTVG%zS)1|TZqaMFO^e5YA|HyzD)S#vcktAJg~HNVmPFa< zZh-}f)1oITFSZ`$lI23|a8<efS!HQ?telh6l~w#Oi%~WSn*0dzEliK^vM87(uRh|H zAahIuGAB7m?}bM~OU7NO2~}BZ-1PH8rd;AFd<N=BMc56z@?F8oxMP>Z&N2(TFkUT1 z6xsUY&Q0(I<{M`6f$`QSFHpjk?}V*xtqAk^#!3@MC%aT@lah+LEPAe8jQIwvMh4$_ zxC}4CyGpiJ;;D>IKi|mZv&C@>UQc+2rQrFk@!AH9Z)|I$KUbCtnz~Tk!fUBm1*x=v z%1k<vd%86>jEM!%xPM>)qcdtWhRcKD=1Zjg(J<rUz<lIlpnq5FLDea!PF@KM_sIQz zo(wUgEApvme9YX4Bbq=4eK&Bi2M-T~e#Wf>A+Rj&xV*8Pyis^O(rXSawv;JVF->W` zfajk=JL2$CE%5#lq^C39he0>r*+St11F2Zg-SSbetwBdlMbDGaeP*?aSIdOZJ@6r@ zWxTTbUn`iq%4`3M^wL&Y-gaa-5(wi7fu-fLF?|!yNDNr=v%ym{-2!PJdrrWtOEWY* zEI!=fc(1SqB-*6NXCisy8j03V?u)}Tb+_ZI&}Ms_%uuT>U;v9hS_Y{D?I7mxP`B|c zsNhdI*jd?l<Pr}uFs58uw87+GREx{;4ZNd4kjr)Xb}4`T6y&p5Xo-OdxE(0quG0nF z3?<S%Ht`obu90!~2~e7fA3WJAsE>i7ZYg}rP#wnw8SzIiAtN@&@yL$G-xpePYh2No zxN9JF{h_=ewax+p67$zt)LKEkmq&?muK-U+tswi_mZX6cnSfFxjaRh%^?5DL6HtmA zA1g&d6+0@(@n}9vvxM%uMtB4m(h!~Ga|>JBiiaw0i>rdV#1IGhwhULE)Vtzp#ci?P z64ZCXy~XHn9KyYMkmWZ($x99Dz46dWTO39zGR!Z9*#jb!Vb-Mj0aqLbfC)!Aj>*Xc z=p4s=BNNInPAG4I$dgRT{>~nqP?oX@#q@VO8zvO!?~P2@ZWN$Yl((|QD92SDpOFfy z`$Oih$Ya=*==KbG?}ew3nAxCPO-bQw;t`>|gm8ZAb=E~+V$a!Gx4wnl%4G7=?lFmv zjdbhMG2QC2s7AFSH_na_juN<aCldhG0*EAIDoPk7GD-Qc4<=}!PS4#ygI-^Art+3{ z`U|BxrbV-W?36b&+ra71aGK6ya_=nY1s<L_W-p7)9?pDE&QRK|YMtOX(?lI-<gH{H z7W_ZJoCTP(@`@;!L;^P^XCLIeHIXy@s<g9^c2>@zFW_;4Gb+=VaXl*?)d+egJ6d?J zMKzFei&CsfAFI<ClI0d+0g<Cz2EB)DXFWtV@2HqvjrbgwZ(xp3ddF2&5PK5OY|RxX zKgR7UCBjEPMQQU*&R?>l!luoBOCFyn7z*|0H-OyiS{&>Gxd|W-T;fSaA?Q6{CCCBT zeG5{AV^9n*JMbRfagQLc1YTm)*nAy1j*JoyZ7v3yQ|m6wUfEiq!r!nc+eq~VnD}RA zM&|+d=wRE~l&C|`oIET-4mlGyOsX%;yq8ZX3NffhApgXxkMU3;`6m<%Vj#rSh9qU) zBd7pSg8*uckie^6r_9XZ2v8*wXY=fq=1fk`WTXdN^JThY43WmuH@8-x(f}Y?qXe4% zIO<%X*IE+<%9NthU!>mwf-Kl2WvUtKl5xoNAPeO_<4NReh`J5fx}Ri+9y6#5gI)3z z$26R0p}RrXV)}rbrp&=8{T}$xUHmAKGaqZ1dzGUa*eQ9m=AfprGn$FJHqIVkdUIxb z^sa$Qvm)K$rAH3oHpLlwcrLnx-1izDRE}PsxC5s-6-okPuFQjJHv`o52-*%?^3*M6 zHhHkaf+x_RvmHd2{2tsx#(TnHpq~lDgglMDbs)KSrymye>L}oLf*G$_l+0Kdn7p?` z3GH5*`GRiGdD*V_SlgH#IC+O%)mi((h*`Y9X9_f|_{OnEm59siwGF7j1s~(>9>wfA zAD(vE!nmi`1lD1Pd_Ao=zzo+L4~#4<vTpj_Ye^h?51N><-7JvKNGvs!xX8t%|Gt5- zvu$}n%DEFm>Ylk!eCzYq!?R^51$QV6@_d+t22bLq!gcf<ln5Bjr?0<ubybV?s(Q<z z9_F1i4lf1PSCAf_tlu>apYMF8TXliwff<QupdyWL5d%B$U<1LWcjsDLm%Yjw3g!U@ z;?of~F=-3Z)KLD%cvh`DaVTXKzylnMm4v`KG2q4nQ90*PFMOW$7AwFOR)ZzjUoMOI z<Xx$FSxLpmcuN<yF95dXxADMOCSk3%g<CFV;O0mWizU!0%BEsY%4u^iXkFIdTKzTN zuH#R^Tb82tiU%WZ`rZZIa=ep-u+GAx#%c@5YR3`r$(K;oN(lv>ALAWov}CUS>nE|q zjeF%9LnJ!YZ}8|qVA_v?3Gw<Cu|G9b-CyH3ghB{Y<JR_Ivl6-WRYctZVI^enb0OAR zw-<3FL2MM^p!;;kA?&yt@D4qenS_v#j1l{u64qTvT;lc|yld_Nwx1INc$##iOu%7G zp&hRNtg8w>fp_E`KuCkQ{Wt`)AeOJOa@jg>i9zB^QskN9KAWv;jWP^f9VstY7&0m9 z9&DdJ%n88zH5Nzb%mFiaje~WP7;MCPSfMEiJf$1_S<BrjOQ*4dvA_<7M=`@=KD*(= zVrTV<Ph0|ny7zkYea~*2pu@C2ATA);YK2(bn{7n;LJ|N{2Ksy*iB;!9HV{B@LEMQ+ zP**ijSH2N{qC}@862fTZC9H}oWV8_qR>9LzZCP(8&y+BX@Yy!LtmSfsY|-)S;If?h z(6(9<AKMPFk)FVDO^3)Cy_CW;I4bjSR6Kf&&LyLxaTmiEAq=c(j&^bToh%M3Eo3cm z08c!DC)IoLSdq>c!17}7Brd~Xld4n3HmQO&spRi9sggXyQuVPE_l++rTcbd;CMv91 zDgLY#Yt&q)Q(@JoBwlM&i_^J{(abQmZ_hv8zHb@6*}ex2NzxwEzD3wR{LMwypv?&K z&4wVKR$bDxdTdLH-WF(tVGn*7-(pS4*4tq0Ffe}6pU?thhu(tSAoiMGN7uo|W%!eG zp}r{aYbb=}7Dm`zlx`AndmHiSU4n7XI6e>qKT9wfYc6Ro>~MzyMVR^TF|cGd?m<Au z2V0Lu&HCDtPWceCa%}5$hGu<`fmgaMf;vK&6@Pv~+k+t5{E=dF^v+aX!lF1m@73ii z2QZG4*D41XjC7MfwcgG+RJPLJ?M-fX(Le0PnJBs_!Mz7@@iuyEf{2*BcS@qpOD)Ay znC)CZn^^ul%>PgDspPX=dNW~&6fz=eSi$ays;6h3XD8?^jeR&>2llcpWZZR|N*C&R z>Fg17lEy1c<eeiMa5HHRB3Vp__9WpF_do2>opHL@uONl;*cKe=)9*ebnc~4ExAMw| z2I+M-wHN4Dn-Jqb#eCi%O&r~OxjCla)#d7mPNdI{R6$?ZgO#FgaqS{G59qL8KvD|W zog<b;OAOk!d(TMQCeZu#jBV3@V4Kc4+DF<nh2A^@z!n(k-T+ZRuD@6G#+=X_Q*w1< zL}*MlYfOimuAQx4-a*m^DooIrTM?J;S<LM;rzdeFCP57@yo|lB$6nVXO{Q<Y!j5sO z0)6?F5%m5}1846^H1OYMk6dq~pRdK=A<3gnuZ%2<GG*fO?~}`-eq5AvT$HEKrPsi` ztHVT7?Xu8>WVDdEwD-}DpCeNJp-RnOD@b`&c9*a*L)>c_sK}Vc%YFEBOVIAZua=UI zv73M+y64DcOv|*f*YShhg+2+Ow&9Q0;C7}3e~tqt{N7JNt|aegm`-2%{Z+e{H~&6) zJ3|=d5ai`sr$@WkmgtZ?y>&X3uFi1fce*BpKhDPXJ1@|S|B~466yzM>H=l-X@Vhef zABMr7%~G1J8d~8Uve+iJ3eLrM9+hU?BVUY883_vaNU2)2RsI4|Ft+A89jC=0ZUGk0 zz}wNS2DvD-iMf0aH%$+@F1U#+F7D;r^u)o0>#m?x$L(@_{a^71aN@hcIB)0ls^tgq zr>A0u4R?k%n}*e9E0i%)FT={p*gmEVt6jE287?z9URZ6#^Xh!-j40o_(xesF#qcmd zKW?7--OJf;-arR=es|T5?D^j&c4S9^Nk?=wIa2tRaw%nVb!bxph3R8aNdG1Z&<yKt zgOt}ggZ4q0<cR;q<*EV8orK;Yc$_<XY%N#);*ATPRmUq-*jD`KKXV)&cgzJcAN|1= z>zE_lUfcu!%04ZC7ErOrgTDEVt3Pw<KWymHa{3ad%hXZ?iRO&)4Cze8C_HBeBe!K1 z-rnJ|++Cb22~NjRc|hp`(y$grsvItBv%#sltUCkDfh0u?{2B?fT@1X4B!V6#xHH9m zmMLErhzWn?#+6TsE-;TWdtCwgg;>GhK~CcT#JmkPIbU}_5d%*_#Flb>KVuNeZ@ME? zu}CPzpD5lqf&K_sn;dquOL?8#v16b)jB`_S4<09Km(n{q>?0*CsIGpLAN}^aelf5R z4@+orzrJ;izjl$YpS1Z1<wj8-b7;{4m<!*#<Omqxj-&d~@<EpwtCnuC*X4-;cJ#J7 zPkid%(N{sv1I`(nvv&ukAKl_gY{ww__E1H70{w~fIEXva4_xf;G$Hy*hY+3OruTew zZ3{>ro(KTIGUn4VT1RpWXL&sMYgW9+6E*3GAfN{u$L4+274zyxv>`A3jqX-d+gr<q zreCe=Lz&1%$Ev!7tA+}tQhq+$@4JBKn$ZTFiDT@_7X#;*=tnOD=u8|px-g$@_d%aS z3*IJ0lyxZdwmaD^%sU8*8R*>yxwn)mvF?q<(8y%3ygCzlCGHrK{@j_ydZm-~3ZA&R zrdMM4o52A13N+T^qw{~F-+wE|d~9_4udb1|4MgWa=Y(9)id?r3J4e1iLo@J<sw(#Z z)`K5R9heQ-X$TJtMyDjZa@5N~%c0Ev0a}vMu`i$fEiNOu`T#St-Ia?@ut65p5qhK> z{lHO!pg((N<dVtJOJ#oi4EiX|g-=Z`VAxz$8=Z?+avje9dtMSXHKUBavlUoR=k`m` z%sbKX$Tm>vWxVdya$-p~FG9fRf@>VWT6G7o)+GPpbqdJ8om_%{@n_r_|K<Wwq%oq% z9p&GA99#?IU-Kyc<|g?Ue_w1%$u_M|)3$D0FqU^u&G;toy1TzI#%F@(q(?*iBDbIO z(4{-r2>U#V-+?o*n(zP(5}1dLPfRCw5AC|FQ+ZUj4Ipzc<bk~Nu4)PX%2-+Arz@Fe zxYz-sI30=F0z_@b#?VKn=|3u%3oLkEMM4-u5in{w{cMjHQq#Qj$=|Tk(4j{zj12#? zKm9wy|C68M@E5S*|Hjx)Wd0C&e{bx)iSwV^aIW6K(}};qi(Ukp&E95eVs8r_{%?F+ z=>U7@(l79RJN=Xe^XXsMyMVsO-gD`3_MS&O*?T^HoxK;(ee9h_f5YCz^xxULg#Pls z5ksf8!AYNHQ5AGMdsoo_doQ7z+1pJe_I`k_W$)#5HG8k5E7^M$eSp1J(<SWPNGsTT zEiGa1b#wuHOLQK4Z=wb4y_x1EP}qwL_B0z~_u>L9HL_2<rQ-i-?^^((x~@gfe1H)L zXN;(*sAEK9f-xkh0Y;iZ7{tWUK?LL~>Ij1{^2>0JpHy^kAZ0k2M$M-tO_P{kZIh<y zZQ>_s5)cdi>L;3nM4Mp3O%5HJU?qSF;k>o>J~PaqSnq4@?S1!kaJkRf-?cwy@3r<` zdo7{&H~5Hh=E7geBTmY~XXNoweEg6+qNM}j1bIZ^E}?-uK8uh0$RpbS7G5TgdkJOz z8!UU~ssM$C>>NH=A4D`Wz&ud-8*+bEsSjEt`K%{C8&vu^=84kPdGr~S$yPp9tq)oz zrMa8tqSXg2mwcvCpKyK9O37yw^@-32t&x0W)F)COlrQ;w{R;8X>4OR-pFb0y4N>|z z#S%8hU-82Rs0|_zivq5ErCR^p#tA~=uL#-bilOv=(_XKX+&rF;r^?z0&&T}fxbduV z{t^ylPrs@gQ5!lx6^KE_67DikpW508p?fb9S7`0;lIM+pTR+$elK3_J@JMGNQzs8a z4TOhenwOPPo=Ygob5sO>XM?ORm;^P+G|wxeD!$?yV7^@Czn=@UVgTuUlT;dhs@_T! z?hUBarC)k0^}d&KKE`Ki^=HZB8AA3V%^M0t?tG}%B&e5XobOe&#E<5c*G52<c|xyh zfc&(Xk>p(7z6k~SCJA5ta-bcyd#_&6Mn67)-;rMi;Fs>hFUH&G<Dk*c5Xtb=gvNn} z9w)f{3TU{-^{Nw+DR5QKAtJIlkC!LNxLMGs(-SN*Zdzy?JF!8~CM3zZao{;J!J^=_ z&IYCPkTSH5dyf}m>l=4Ws6W%{td}+R93m2D5p{CtE6C<c=paaRq2~}1lI#lwJOp6= zC&9M~^Zz5{|F*M1?y2?SgE}#g{X)fkl`6i0Kci^U_rn*{tJ#heWz`j8nRT+)GV7S^ zEa#UR=NB4%|EkrTYSrr8_L<{-CQU~-w9B2JDV$eS_S-JMC`LWjw$s4u;G5sXP-nZ+ zu6DL66i39Un%*4-MvQWIVK}&(&{e^IvjLU^OvUC6sY{jBE|Arw$|2v{1#)MT!r4r6 zKjF(A#-%SVi6wJ3$(_w|jP=q04m1u7T*R<hhM~3od7KC52tYl+0f5&4_5wT$uzM$3 zf&XcnE9K!fa0PG$a67>50Jjs|PH?-x?E<$K++J||!0mG@k-uRSor+$mFkZw;_W`JO z8JNgjD2EK~c(ic`V(9-&YcKiWcj@0E&>Y^lZuZVTJld8zA!?u#!oI)!Vjq<2cm&Js z`3PD%<`Gg~Z=YPDeG-j*QoW1x2}a)WC_EnkXa%TCRZKloyFlUminQL>r1k#YFKfh2 ziZjqxUqMXL3$=bRclgDFNCSQLmBRToqO94Dw+I6Bo(;}CfE0j50LuVY0^|d1e1!B( zB(!xTxDnt+fEx~OIJjDHwcx73RfDSnR|T#TTxDS2&^Fou|L+Fa3-E_W{Q4$U0a*L> z1$htb2Y<hSzVrM3Z*0EhMKaN<y%X&vcdF<&)2656p%KIbx(oQk>@1*4h47Kkou`1D zYvx7@LC<@)YWQaUL(jcH=(tUN>EuShXyziJ*dXF4N}Hm>S+mgd9Ma&Yh$#TcHa6Wz za;L;79lGyP1$bs33eVWW3uAEe$^$8!Cq=Z>$hAtlSdqe0&(R&as^@$-H1Qv_pT2sF z&i)+PqFer4;1*r$9=hvu<oa85+;rhin!(sX89YNXa2^x+L!K38p<Eldkrx>tNBt{8 z`e|Lp3$Dyo&v@bJ9^ZD}nLTtn?*h@_<=ycjT2_r0_{>&e)^pOP*Kf4GO)qL|k4W1H z2cO3!-=uOS;Z8!BbD>(*oD_jUo{{jPbSH&F5P0E?%_pgx7A517`Rzt!Wef6y^p2Y| zaR)g_ZPC>HltF=_F1#uBlqBt_slIJM#YWd<qGAKt>~I-gCtP#@>ZFWnL;vS78}S36 zbg1WP;`ylLc{BBVop|n+Ji`v)&Ddv&s2Cew_!Q0FEPS&c{htE=J@_9`E=%GkVl;Mv zS;#nm*Us^c?-WuG5Up0dKyJ;f5!o4pix}rN^`_g@Zc|6PO=cE91h3$3W0#B@R%Ozn zzEw~Bo=0iEF=jz=fS$xnL)AQe@DRCYHw_$R7QWa|1A#s0BjMs4tfp{M^4I$D4-moc z#yKSd@cPEdEt8yA<XhFwD+(@r51PgF%pi^{jJ!+`UVSF;Ky>ai-m_OKE^NlH;{9jH z?c`iMS^m^}vdlgcc(UC0wC`j&!>ejI&ZZQ;dC4mw98PZPpoB0xoUiC}el-kL=P7v3 zcgBq3?I<s+&G3nlDK8?k%r^;-Jwx>Epp*gE2KhF=NbbbS1+mt58a>!dMR(8+pi5<0 ztjZQDoP8T5WPg2_XfRRP#t5&#V-Af1Tq`{p`>(K3!71HFrAsmr=Cf2mEJX2!KAV}E z1EQug(2&NjtGsW-c*cM&4I4vES&U{FgX@hpVrc_SYh1&4g-s!p)QKXUpW&O!B;xbC zpCFcmg{+$yCf9o@eXzX$UF0f4T3_rD;pQ45@2};}GnVq^sHJEd7Y!I(CGL-x7*e9N znPyvm;j>Q+zPn&{r$i~~-Fk>M1Me>2tp$-yaBhj3DYC(OHfrXE+ugG_@ao^Y7DcJ? z+QOFKD;aJqy|<9^dzG+|kseSNwP!z~EnSwEE-u8@=kw&fYO@k?;Iw?YnqR7pPgik4 zq-u>B>2Ey>z3mw;J@8o8eJWS7(zRZlnQmU5lbf^RkdhHk`{pa$D^uZa_Oxnp6pJ^5 z@UE8J6{GLrW(p-w1<H7Q^K<eUI4XM?za7~27TiUz42K1<GF-mpDEuF_t&ul%WYkSU zJ3m`x&V$r2_gLKh)$D7usmuae!h<-}IQLF+@nv75X1{X2vlS=bpt{KmJk5^pZs&rX zrU<zw$njk?rvOjh7!DKVL-$Ghr`7YxLzL#>cp0%1a+~A37<O2*F&u5Od1lvz%-h6< z&09{qQ2o4T3Ot~BFi)tnSIdop=-dbrOF3^jr(A$V{0`B<`B02~uZIiQ>^rX6uU_2U zpk!5=caA&TV>}aj8Wd0-duQEoN4v#wWgPf#R5;sp&W59UQ+UNVKw1@V?6cp(DfP!T zOo3M=F-AO<H%2VktKxJ-Ke7Ut7+fqoEBM?#&2MwV6(6~B`>^W#J9zVIuacXvSH>ke zTjlJqs!G(`;Mh0}Y8f5R^=+6goOn_cyNwYts!)f8rs@+t8t{?ZnB_2;DVm7L3L5s4 zyW-HFRrKWc1#}>9?DIr;<HQW=+kxBvKnD3H<@g{pl+J||ZkhlCPG%Nf{$9G=bRzKg z1Mn+b!iMHo9({TUer4}32yOhr)0AJCf$jnDYXeX{eS`c8=KlBj6@tT%{ECzZ56&il za)3gBH2}*2%m8Um|4{r27RHNM=~n;_0GxRGzk^?idDh3Tv_3N=zcTw7(kB>sM+!U_ z0_=F^@9--a`^NYclJ9?tUy<@|0~|U4x&ZnBl;Euf2nV?3*&m8up>1S<|I+}L0~9~| z1Mw@q&9Uq(;cca40mZzBa0LB8opn2K*H6X`clOJ<$ZkW5j2#1{#V(XjlJUKQOGyo` zv5{FqrIH>ot1glw=1|IU(4&Mb;UkpJxr*V)X#z4G6$+@c1<T`j{|v|^La|ZJ4@hN| zJ?<wIaO>lg<rwj}{{i|>ujV+I#|gvm#bbdCL+N8TEEEu>4CEz7Acb&T(l+GL2>fH$ zJ0$OaOyU<vvkWvepQ_&LWGC%avEy-T`S-g;v8q7bL)1d#xPs9XcdByLpnK7TXamAE ze$H#SpSZ-C$WBUP`ne$CGgzwj;0rlGf^`QLr}8YfsT0M_OsaI~k8s)_>zs+0Sk8Ss za7=N^MKa9FvIU_$7)phy%vs`S?M0#_lgPD%k=(C{>~mS}%+94|jF>KtR+C&=cL6HF zpt2n5Ew~ro9E4et8}XkHx;U)A%#M!F)w0^SNvJ&=@7e~%9xZUGV(XDYC#-9yaPG(6 z>%iP(8Y!eevu^}M^H;Bpn(&U{4R6i9V6*V~Vd*%y5|wh-zCtDt+16?CChZno?0fOK zD$QeumO^)=XW534E4v+p8;00G4w<xilEkiyTP0&B@D6+-*MF_#E-yJFXwSj!ef$yc z&0~LLa1168RYjyET<%nmwM`aSnx+OLdEWF1CU_asbN!NG0>AYy-Hn&8k4&iVIX(3V ze|Q?xDT?|d_E5ed=TV+<DWe*1NA9wQ@wEFas$|#HZ^@ybKt(zk;bdrg#YHqQ#+~zE z9M6#yi=i@dZjw`ASS{K-=0;`Mx;&~3+czFXhOJv19f3?nh$}J}R&&o7;fY;7etFL> zuV9bQz!cqJ)gRBw-m*d;MsUdB8}N(2<eo<bR6``ggH7EA_@L&XY<P@U$JxZ_<E(Ze zt6De&7EX0Aw6ABhFlqpc3GnEOpc)$n_SSKxh!Dh`bf#$A={Hk&Z|~nMHPSV1=qnl! zIW9_gXD5-uePL(d_5PVVef*r9myFZwz<H_}0=yErd{2OhMM>FD?D_arDsC?DT)n%g zat3@KKVaTab5PQ@hC(@Fs>(a5#1L_THg+P(oJ#ph^Qb!|PHm=!a&X%D$xh@3&jTJ% z%7LGWe)e{*uBtmlhG`|sLJ@_pVKtbYlE}1(W}k)&bw8tbamm#o6x9R2_}!Fubyc=F zMT5qTS3>yNZ)3K2euj4*aGyv?e1eE#xlWA}h2y$Yp>0<>x2hN}9x&|0%wx|dLsJmH z$bq&Xn*dmFkSq6sM**#Y)UGgt2&r5E7RbFyok1&(nX(fyXic0=2G4fBvW4ebp@27V zQE4OzzG#AI&JkiXMYN$m7+SM6NYM%0wzINL<Tfv8j~1ydQQ?kVqF3oUYjLaJ4zS(H zkE}XGDs`x0>>&G{&UynR^8C5s%OF=}8yyR$oEIlIT=aHWQ;JF{%NClxr_HLo*5c9d zFy6BsF7!Mm4j3>{4=e@LI&7g*i^35q)YU1D?xT`j#K>1D1`BJ@1R6aiy?=w>G3ji7 zk#v~-B3#B6V2v_d#?w5L<uYD?!IBN#Z#v<sY;{$h(;L;A>eXb=3GE2DO+q@V$eu_i zHFlM=Qjl@WQK=|SXSm&SAMrBs+=XW2IUM=G)Z$FnB20gqXk<y%_iSBJ)lbf@Gu$b2 zrL*fh1Y*PRFc1`R(%JRx*}!OCfTVaNtrE}jsKf(!+IAFdH4B?i^dF-8%cP)8TV-2( zWgFY#R?bCngf^k{ezI$jg-VhAvjb$e@wq4TpRyCNpvVl2ff8AC^@HFwuH07Ou_oec zeC0VV9O(#OEP@X^FUuwq`W}{s44@MYQOpC8^v!soyjA$)4)Wc!dWOS@6xkr&blN3D z^fsO+vJS0oYrXGi`)wBcEMPrQp|G1q(J<lY@P?fBkFTIms^lBu^*ww=q}{B-50vXg z77DE_X&c%@Ji+dtBVk#fDGLTztcCxwbnxG*7|BS~5;PK(jYgtYgI8IB0sbpB!+#sr zz<*oIAz&REjw(aLQ5(^4)V6XrIVJX*k9wYmGW{$_MY<}x01cvvM$I=q!5=|0pU0w) zK~2yJG%dxS8U7)6FAt0IN$16FE|Z|Y#Ey!-gqP)S5q%b+OhV03b|asQchwYUqtCc9 zI}|O^!2fpgTnAs-2@x*8fTpH0^ryHvJs&w6v@TPdw<X#j%%oC)2c*tygKr?(*k)du zPAq-V5<KI5&BmVrM&R;`Jm9M!nWCmWtYR10B_d0CD7_h>xfCd3sHJL;a<!W3_lX=6 zp>MkEqKHC4vxJ3wpb+GlI<ImPA7z0%3ESGAz<B}BEZO6Pw~yzv8)gWhgOcyMIyv9u zStHR>6M@{wCSs`yax(#=rFiX}=%HSkeGJl#W?=!|zJPjmYW9UtpE*R+fOdgs(y}U` z;*|PM_D|8Bko!UZ-Bm)N681hmo>Os?g~GbPUDQq&!H`tSb4xs@W-nA#YVmF3*;Tpi z?NChC09CY)Qbns!U69#qQ^3DM$i+~&i0p?)UPP5bK%6!b0yvAGgPaF4Fh~IqZTx%6 zDP=t1<JFm*h?>PP4Qdf1(kXe_sN+3;jt)H7453LuwuJ7bF>1P51JTu$fQVTR5N+3< zTg*b%0W$w=7{>=Y=EWs)Be99iLaD;1^32(!L_>evS<2P$u<FLiJYB%uwBT~P6Pm;p zB7C`ns4RDJePlyf{|Rm<H$f9l!|*YyU2#<V?5nk;1z~<`-;S$nEN@inn{f99Xip+7 z1aHTn4TW$~+Es31mz#xGQO8d20voJ6lZxpEssi#KEBvw6s~JIfvla!^asIpwCaY|- zaJZEkvupC|zE%B1Qjkl_jB{~UsR#*n;nEc%%zM~x>59N<RgD^|d&-E04Px6#|4GF% z_)@()eBro)p#He&FCx(`;Pze^U**+a?QE41?H*Mp$bO$Pq8&F*CC$=Q<22vc{uDt& za2}v}-g!-p*KbIqg-_#kUv2L9O~!sE2gu9Uf8wR^QTcUWlkt0>@@u6#v)86rnvMr- zSz<XsSg0a8AEWRDrVQtgUYTZ}v6mgD*=M@a(5f2V5TN`TzZJjztqho8h96~3$QV|t z_b2`S-}dQ{ho2tWRu{tF5?aqrbvDVI&9a0q?ZFA3Z<NcwNN9$qMtEvUXa&B!UB;b> zJ(|$U4nxg8qFvte5#O-F$J^s1B+WZpO0ikBNTPG20$Hi{w+MlWbJ80R22Lu84-PRW z)siG?_D@-4O46U)FkaX+C^175d+y<lT`2Ax4ydF{UpLT&IH!2#Lc5|LfT~c26ivAr z`8wejN}^U=-^ghPO=%iuegBZc-rm{cdoNGrRfG+*Q#PN7pEqig3xN@ArK>s)ZJTJ$ z$`a4wVQCY)47HlyUQ3trKJZ9}Fs|2Z6UDnR7L1&^ZeYmG!bQo%d*#S@u8$>p*Dhi@ zD8bpR#6q||(hP}oSvN+g#|WNIa#XM=N;~`r?zVHo;9c2s@sO6u=(#AVVaksRSJ0=6 zinA*q$jfJWLKZsW7&h2YbCmmLAq?#3hBV)*Gt-~E!*j)0k^h*#1XMJ9+VP2N@UCW@ zO?Ci<7~y*}1Kl$^igNSn<{%6v%zL2FGI|rC<x1_=>Cni0qfkaC7+8ZN^dD}W1RwuW zVFmKbr*mAH5uTfzFtb;F27?QQRGi<6Te|o#%*J^|uBpC)-~TC1^(Atd+@L?geE`fv zd?gAKjzBdVrbs9X7Ml+>HBVx>nOd|szPz1-%=D)<50}VMyQ6li(x&jVQ`$4qYv+os zLo{y%B2;c~MN?L8<5%p5b!J)hd+h1D;R!0cGU3>U-x&<hh@9YgJH9evYaGT#>raOE zo8;607N+`|rV@Z^s2c_eRSCy54+3E((!>`%C#k?D5|7#p;PwHF5AaI#IsK=aY7xfZ zyGYsAoZo7ovdWiHR(ZBNWr9lIym6E;9d#EU#v{%FS<M&r(UVMnnzof%HbRv=n(Dof zEh_CHgZ%<hvXS%%co&1$kMJvq0IJf5P0e}s$6M$7l|NT1e~j=FDn0J25!rtW5DA`g z6$*484<g=)GTbD4Z@KJP^g2fnqLRE(MDCy^TX^O)5sYpX9!E88#+ID+H^^2UaKe@T zV$r1EsaSL*e!Rmj6E*?Z2H+-vQ_^#htQl+OHli@}g)9^<y&WU9I1fjl^{hw9IUq)e zfCz0Qf|@A##RwwmZdy=-x|`PHi6wjs$nixGc0fxw0*bkg9IHZujmQwjLi}uDWDPmb zZgN|X_(=1ci>@Jc8d*f7PWeoj<#a^$lnR~_sna#&)H32)Qm1}X^hbq&a3)UCXRn%~ zn|)LCO;v%j?30cmrszipP0=5~6#c#<FmWzT?75E^OxMENFdApyrP3^V7tzbE_1q(t z!y?*=-b=j`H4uhZ$Rvw%^aSC@4)4MDjZW7R`Q@2{Ruoi1Jh7;uMuP)<aGf$_ULrfO zx}F{9rJz3Io1%j-K|`;+rv+)Lfp?fs$uytMqp{gjFiunBL)c-?2BpCn&u~3i2Ak3> z<ZP$<@L_sJ&9}B;!pG2Qo)Kmt4{uGP#(LD+j_Tbx&y--^*yp#9hEuUkS8f+nccSpn zw!nrA-{#vFD$U|!vY`y1lrwCJS;ANawchTk>;MwpfDB`7ecWmp(cRj+2dkhDibO&* zRG0%j^*r%u<kn#4Ma54fBx$4&dxad)-z$vV=51-OveNk6UQNwzs(S2>DiqbAS+JkD zB4~PU6a<BnARP^AbVbnicX6G7>Fd#G;<!&(i>g(7_21=eSsFiyUF@FyjyP9PL&N1j zA>0I_S_oRg6+sA4K2?dYoeSKv55!O6I*HcDdn#-;WwxZOcUu)DA{*IE&tih-XACMr zt(5nC>Ruq%H)|f63u%ZRSB(=lV9Yk9ls4I$R#SZwt}K~-ZuJ4zNL1NjQn|*FN@5#r z;<-MXEQ{#RGUOP{Lb-!#*n;L>33Tggl7F^v>3wO8v0+r^bIuk@(wcht=IADcv7<J^ z(DTuRqdjM)9!ZClaR%Kz*EmgGqOiNtOB-ejR~)oS@LZrz@HogJMGmy7v8%lhNn-GQ z-{%V-a7MqR-BG$IhfGHjIYt+>ui&^$%@Tg~nh)=rAs{PTFbqbx`o|REW=XOo*MAlv zSLPncC#B+zLT-l8wk2?!7H_#~wg5!fES~Ga-N*!#%ok9}R!)v5Nwe=vcgkH8mF##! zoi^bt`y<W%qnds1HC$8;KNfFNbHmd-6E*wK#AmA6FhhZ6p9;bYU=C>p7sE$jF=M@4 z=7_*TufC&qm-mhy(8uoi;)+JEiqrfkpc3kU63XCPfT-q|dF5)^(RHCH6MLLJReh9A zmxOIS!&|cX#)i+eS;JfS(05TUD&N5O#2#04Dy}#$iKrs=RBV&;kh1C`YDwiHrx9hT zXVH;ys;V!Lwcrk~TD<~wbI<QfXk_QYRP=Si=j<)jZS0pQx!cH&2Coa?6%1bIJddwh zO>v&z59z@9o;rQ#h|^Bv4lSYIGRZ#qS(ro8ejM00ryuamA-cHn?5Dg*tv}AT@G|&% z-iwQ1PiCYq6-H?YZ#mHMk+5Xo(UPryxy#t$%52kj!gMS?AnkuY;D1t93j`~cetC;Z zKZhKZ-6FjI0Pdm-Z$02chHP{v`;ci*50Vb=vaj07uS-*+E{SmAVVVo)E6!u9`j)Wv zW>;>f{;Z~21-W!L$Tc;hlCDd4*BPSZ^{0Dljs2Q;>eFn>95ynI8^IsyIlWf~^ZsZ3 zu1qc39fMB_wI|a6Zi+CKmNo1F?>tC9jh&n6S~i<MbVhKQwE70S0ti&(hR1Iq#41kR zlY}#yeLU|+<WVKHP9Zth%phhrx1a(GjVoou43ua%taU9LF_YIQPIf0L(^$4{VUXiW zC|iujS?g+5yv87!w9Up&B%Pa5Mg)b%<@U3Sc}?A-5z{bYGDiH7H=?7mUj~uoH1f1i zpc*jdbc{I;V}|=>si3i@hi2f;E8Yg<L&Vv^;^>(d>HYa1<MLt>^v5+1l`HVxoL2Lb zb?6r&Gj+OCf|cEjLsN}<BcWWNy~iL4eVh&BO<j)oP%g-!QhF2)-FJL$7tG{}Mpv%Z zW$e_qXq+g?2`posY~FZH^{enQFN{^!Dw30+amgJ#h@YlEQZd$@By+@ta-m5W(xeFW zaM13a649u&F_f)$8^u7py$8hbWCYrqVeg?Amebg9N2M6b9&A#C@ga34v35~#kY}1c zw~GrV0ngfGHW64c=%W^*MqW$2l@LD}_qy<w`~o~@8_kE%+8eNra!*j53~=Wgqm5nI z0Z>Ox4b~9b5O*2ws~cW@bW?D0J6gH`MnJRgD9|pw%59^daQle+H2a1d90yw`p|pum zH%hbbnC2Z9z5*8(CT!X0T^l?PBmqC8RJ3>uz5x@J40LyGdeD|(b)$Gq?XnTml2O;G z_icJ|bc^Svo|Y$UvZaI;>OV_r2253SZr2&Ivks%O%f?752Rg`ItWIdW*<PiUQ#RuH zxv2x@{w}>yjrUM8A0XSx9nRi<O${$2{nhTIE<ZN*C@idxH7I}x>2xg`6XR)uQ85BW zMS=7B!$KrIuhr~V6*#ZJ$oLSql$}??SWSUzcyhAA0G;3dIvG2i&W3({L&YR_nw;bs z=Bx)AUuz2`XZARZh+Ze7RxS+`IbO0GYM`tj10~ZtP-YZ3D|<uPf47A#FK{Vvu=L_! z!G|mGFpUpsN(r7G>bVUEPY8`%Lq<<Ow(*nikv69ODw;{MZwR6CS5E}5akC?o-N877 zM#w#?0-hnUqRHLPc4EAcU}p<jMfTG;&UZRl$>9NFdlAyey(OBOoPOjyI@(wE6Z36o zq|2r)?8RL`p7WD&FmiO}zK!#rxlvD3fadWjLL@0bko)4%UAj8<S~3p3(y<}RIK)#K zhl7MGFli?oO@ayhBujF8o%I>hea$RP{+#Y+pb$h{pk{=vSNt?1Y-N4bevssItz)gf zu#!wf(dT}fgE6okbsMz~G$8NFZLQ7iZ#JIB$r+evc9<)-rO7C2J)zA;loe!Zb49nY z)huYjh>a{SRa9!1$T;l*)Oc8Pgd5q@z!*XpE-2pE$|@Zu(Sa7&6w!@%I$2MYVX+I+ z*jZ`pbm43TIY%BL3i~PoZtveyL2vKlW|b?m*E6oWLB*;dX9jZqs@aH^A`N)l)XN*g zZCbQ5b2q?k022YUPQk$KiLdM>lzyjYk~E!rMoY85M=h-xc#XOfzNt4MV`l21gScs+ zZy=`Zx9Qm!SpR40o7u^UxCsNyE~H3gASX?Y0UEg3*g-P810Iz4FdZI9ITI5Rb5@hc z1cS3ie@IiKp$TO48*YZV5U0Rqb_^e;0&*JYUQ+~2gCP)tarPS6o2pD*@T9CVL3L$} z)6}W_6^b6PieZ&qdv)G$l_wnXCF-zV+N)(lsIOLd{vt63)+=)31)JU5&?Y+$m<WhL zW&%7{NyHs}oaLzgb&>0E8&AW`2b^>-j=2wsIckwB0eTYcB-Kwn0`qJ%j2#&}t;*Vq zqZyM!DoA^cgtPg%L*04k_s*i{??-9q-`<Z~;q9!FA!bxZ8&EfBBbV}bGeBEryYDBP z9&J<<N`IMqO;~+D))u93J<r2J04teEG<b&L5`aTfg|X)fvp+$tD*S0Yr~fvH4<|MP za~fKMb6^>C9F?KA*sH?HIler~p>x!lzIRx^PpdVFRMBF011$T$gOLF(Bxmop$(^Uf zY$)b=m1I6p&^L4Agb&I^u__LgI<Y1QZU0CV+rNeH7T4@PvpBalw@=vhjh8ha@2Kn> z&jBwiJOL}!T;bVZk{JxnMxdMK3aKjZ`|rDrA|Mb02)v75;z7m$1Fcev*Y#SbHgiG4 zOj?g(m=QH2PHomVuqlZ+yx3b483Q;s!<(GG$?2PtA$D|>3^%dK*e~;p#jjlk<D86x zVc;kCC}8^NF>3Mq)KtHLdOwY#!Idj$YW9+4ulFDsI1P#T;cBY)lMe}}f{pqHO-(h4 z(*eukgPVzLuzbS^AOJSRID3OMH3g{g@*QJ;teB>$o(?Z*nwq8HG#dr6A06@)wvQ*u z!boGpoggdB@I!2K2JyHBJiOK&HPt`GR#uSB%elfGU8IRg07sS#IlCSPh^FQ@kZV<? z@bz2oGF%SUy!`^>!xN9e@pk!xYsuk*Qu7luz9yA_;J8%2raD<9)ID}T^#nAasG6OK zau6}6B1}W^vBZA(j~fROKm8Ctg%?VtJCb};dp=Yx5$noDX4vEqWqI&`mNS&_Cw-7a zib<qFo+qGr5Orxv0<@!>&F+*$QfU<O@TPY_dPQ%1WyiMjFvyP#NUGp)C&DUGb*j5e z{f>*<VpK!LKx$Rn(5|h&7~=SBTj;S`Rb1}(+!Xi%RO|#ybPX98r9-9TE9sQNpCW^4 z3z<|l_&#E3TCpi`R;l_DXBsLb5J`_52dJ>0mymDx+U3A3F;_VCF>XWd{tn{J<xl!m zg3Kl^<p@aut}VPU;tI+?mPi6Q-7c;bPx(~zY;dA5ti-!i(}jO$v5$SU!<vm+I1F^L z#wF7YE3m7V9v>Pnc-Q8e$kFlzeLp)-I9QA_lb&~DyW_c5HaecWz)pm98z($dTYwOY zJ4Hom!?g*&I8WAc$b5K-*Pd2-IvxdcD!|cN9C!r$*Y!Re@5KY)PY8BsOSVrE5*M}* zt@z=1Zreg;aHxsOCKob;a5nDaJB3O-d*FHnu8i!e@=dD-cIk*(#Mtww`sO=MC;Z3y zKo+~iSAP3N8Bv#W0gp2q+4p(e6gvf6_VFy+%4{JVND$i{K$8feYI0HqUmLaIbD1ir zw<Tl?iC;?wHZOA(*}}pnskJx-?nV8zgl;~o2_~9q{E7?NE(4R5Ev#=Gw5jvkB7zm& z@@Z)p6uOg!x;M(9YMxMX0N=Dh4n>(dMcb?_p>Vil!gpo{Zad-qg&d-7zk{r!lw#`> z*7QphTW9-O63{0+{scui2vJTbk-|}_2a)%Bn?}nr3kMDjLaMJ&Lb*>!$4q(^mAyH_ z1{*y??trN_x<}CoR7A&Q)XUu^#z58VgLBzOb3qG6LhdlB78++sm$Is|s})jK9`;NU zbT;g7Ef35Mr*^3@@}u8->w<5^B}DcvhuFhKlvb2b<sk#se8?$ucI<hHzXx*5mD?pe z-h|fo1TrVPGEof+n?oi~pi&=bLM=j5kKuHEMP!qRNQgGNbHcZp+9qh2Z7LWF5B>q3 z-a>LH1I^6MrjoPN;zA#+mt%#zBHwPq@*-><@^ur%+*k@4jKFio-WqXB=r*PPvR%nH zdeA@v9r(g4FMH=mcJ32c`ljG*XKT7Qp5i3}M<t|^JRrV}@u7fv#$(SDURJn_tsED` z4HrHr^b#WEI%k*XZT)xK?%x8%R;<q$pzXK)(SMynyEW+hbG)bqS;s&L)QoD{6VL%u z54keCa1y*#*yzh%*j6}TQNa}qxK8D|$azjTJ-vdi6fo29fTBJkyixl{-o4T+qFD82 zEEr4B3Zo1Cm?Dn}kKM@jp>*37zBrK_<Y2LqO-{902r86h%O?zd>9yG>$%<mJL{=N) zy2I&?mt2aij;TwElGkTz_H9;b-l?zp5=pHyy;a{KdBd8)1rK&UxJb-QM;GXqN$3LQ zlIU2dbnv0>MR!KkjdXlg<v1p*9qG9x(09AznA{^cEXr-3uz?WA6h{s2_H!YG#mQ~N zE||vDqaJnx<7YXMh`7Sk`<H^isn=dWzBSvJ<(^PJEFUErRmA*>^nDc41CDI?E`ZB| z$#66pB-U;n160UXpjDNe8dxzIDzXM%CQkT80ojFf76i_)!wY;f?5i*?iBU0knk;S{ z8`Q+;_y&0QWZ6<yWx0*JGt9!dg^&xkn<u-GNI70+qur_S;qj;a*2d2!H+&Wxw{oPC z3tpTCvu!JUdJmy0$g2LkVu37kqRDE$X?=Z=vtC)?G9J_Hug6pTb%pd4{{)^PXo+Sw zpk$0E+-XYpmKdcgw|8qiUU!yg>H*W-b!KJvAuXq>9SPG}h$pCaoD(=FV{ekPSsBmu zZaD^-#N~?YOvowrJsd;Menq8{@AoKdiq-lLE7g!fCC*O*d^~M14dNc7V6$SAxs4ZK zz1xjybx@fSosl{TJ)tH%1RcI2cY^N~c47^n#>29Od#orqu-sXx0uCZWcp)8)L?U^D z#|aa0OY8!WD=4CAMD_<>l$c#^hbI`)D7g^y`vBEYU%<oK4`7}dAso*4PEUBb)o;2q z_{kBNP$&+j&v!P#0_LvleDTGC7hR@vM4ZHBYUNGgFWBTR;}O0WTFWHh`D$*5EBEj! zkJc>Q^@xbZkkO_jACd!0O9w1AF7AYItN?F;wnF~|gYQ(JKw&t|_TeMU%lF@$y#vTc zJeq{c!La$m$KGQlAQZ-M_tWKM-CDZ!v6e`X9Na~Oo)+Y|Do@AfcHl`(hw#EKBs0;A zH=e_L%r;m^VNym+Yf-Ab2}VYUj1MN5?wLoA;*y1qheh#u>1_^REzZT;;=<nw2<hya zl;etMx5|n1kt>3)Ji>?YbCG1Y1n8%>XA*s2Z9rYjs8jKsjw^}m<SZd#7r8Xv=3XR| zk&@iARW4Io-H3$a+yzv{Xln69$1Rt!w>vh;6S!L(n-q!M6c|xv;m<os(iWgAgZMB^ z>oT?|8XR$n>`C6(5^ZebxpRtMS7p6tGHHxgAc2{f#G5OO4U#lzvnHr+{3PzriptX{ z8y07kdW45glp*?fBm*h%qt0<n5*}ac>z${ut)U5M549H&PUtY%%y`|*H{oI033HaP z?ae_;e&ZTSINU9a1C(%7z~J!AH3L`3Gu~7S2d8rTQhmMyI<OPcGzIHYbNCSG4<J8< z+ErrhBt9lS_Z-!Aj3VIB2&bZtq|^3M97)d-x*^}_$~MSa(Zg4s^UURq^-x#wZYWp= z<(@e>sNB)Ma@V7Xo`i1vWUeVb_b|7PuRM)ynw=&5Y;el+t4YejHJ=+82$vri6#f<s z$ALKs1|~%LbpN0zyJ-|f4@`>i1q%8YPEk84wRVy;EOC$b{(S72iSx)&Xa`b19YStC zp?+Wp^{rkN`==Gc{b@dd1&K0`5<Xc&_WKU630x%>t?{iAnLS4J6<qqyk|i}x;&sM& zd7a;`K?c#e28kNajJ;a!=Djj@QnyhpXCs7dYjC9Cc939M<J<i><G<h_*#{Gd+XPcZ zpKxJ;WH*nSA>6Sha8232`YI)nvGtz&VUg~{L(6d}KPK4ZNCjb>Y_Gz{#o2WuHTw=} z_VsqB+&xjrPD!d8nQ)dJt=ac2%H}o48`a!scan%^V8h~b`#cKtQMgQfNeO4U#?=8@ zDUE&CIkEK9DjJ_l^|?POlVpB71ZIIx<>&MPDyx|sU#OuFO?3$|NJ6kCwy2Sd(SJv@ zkaDwx$*Tj~<Cm+hY7Z*%F%6Pt6=?QpM3a`B)t*_<og$y8gc`BQbz`AYLD1Ho<qa2A z5bM2y;m7dAmcO(BA{6M$wRSc9f78a`0!4YaXD&RCvB$vw5gTs<pYfh3&3-(Cmv<*k z)UsiagKHvgitIn?QE2ub!#sEnR|^OkCK}Zg10MoLK2u$HlNX2V0UT&lf<hWWA&sDr zMo>s2D5Mb-(ryR^%;zLGr2xK~VJLlF;{kFqaO{wUZbH4YRi1_co!$ZS<yCToQ?GG1 z%PYT$oMyfAsQ9;6oei>{kDOo2>Wu2|;jLK~7sBEJznpLGTYVHYs}BA>^)16305}QI z2G9*K0*J&YfO!DR015%h0k#9|0C*1Ib$}*-4*=Q#`T(?jkPg5AunNEqupQv108awE z1n>^P2LP=A9RU3R>hBpQ0$@5o41fV33t%mP9pFiT*8xrdd;!o0Fs2{M0=Nrc5x`0S zJHSH#y8&JT*ay%A&;rl_&<Ajn$S^kp%mzpWSPozV*Z@!s@F>8q0p0{S2G9cV7l1y1 zC?KU{01N<2$>wn2uOq_1e3oQj^6xV+{mX$EUSsfu-S-;<^NVqYtI`x$ii)lII<`!= z&dTbnn~GRnURl0XS70wI(UsfF@~jmVvqJsj<=L$k*6JUon^wWVKPI`1E6&%ImSH~D zJoE)WODTF36qV-d%$wQ5vQiSrv6i*PR)~T+2BuCaCn2*Sgdy*~bY<n%QWER-iadK! zIXkO-^F}DgZUjWl6a$7SVJetBri`&OR`{F6<TJ(a$1pRPQidbXx01TfDCLTa=_4Kl z1Y;9w8AUJ?EY~WHMq?2E=EN{&5?L2#ULK-i?v9DcHitkZb-2DWsx^gc;KwkV$~VDJ z1u>WqMx_Er1%LR;?46PXot#9<k;xUxpx_YIu+ZV^un`*V$eTumj~+8NV%+!%krO9P z)=jy2YSgspx6HWpw&<C+&$=V#&bwk~&zXC7TzrClUgD4LF(l1TPBEq~NLzUCeTz(s zmzdL+W-QCh%3hxHZ!1>ju3EjuvNkW@TClFL$hN+?q_nL3etQMWZP>VJ^8-KLQn_^- z+153dVwalBib`3l9mfJ=gz>W&{$IqzGIv3XrNGl7f^Uj7Fm7sbMXKFuMK{CBW?70k z^1Q(BIjOj~EDzJ#xl*>M#HzE}?PYcy!-PTSE?cxDBZK<jE0eKs@dCeBCS{2!Y2o4l zpQUqSVrPeiCY9<e<>kdic^0+^hD@QQLRVseVQB$>mbI3Yvp5us%PcS?3$40joww}b zqP2F5eY36z>TI`L^Vs6evqH_qR!fBy26icH$zw?hzua%B&{c5d<z;pVv06%W1%P}> zncWI`z+(xCGmBzN@rw-$y<L|yfCdM7n=%$I^80ew!lDYDrJ}-GvbK1$E}yd(m9Ep3 zLRK5BG*(e*5nE&_E_#4uAG!?V!#9E`Ss|rvEw>Kdb(_mLyFae8bPHJ>L@g<+V4<$- zt&lrb$8N3Qis5r9(B)Z*i?J|hDa7gayt0yV^6AdFBd^$gtFC}6%_D6}@U#pdRa(K? zxjYss5C2GDN^!BtQbg;H^}Y-1O+N3^GHzX=uA<zMXC=)A1He)o&|v=Ub?2b=^3~l+ zJ8$VS+TLs-AYE3PXPtH9?cv2O2Ft*l5Wj%}@}=;*;xL>mC9_T-3WZinImH&^-F=-p zZY(Mr)Ncdn<_?*zg3Z59x;dDxoP*kLD6+GhrFfu&uqR1Gj5mA8{8yKi;<SASG!)L> zWMcK@e`kDPy~%uveO(6c`PL0Zd46%FHnMIihwlbP47QB_w~BG@9u%hphFuX`2x~$< zj)L`r;}6{~QlfkdYk}xtw95y7^mgn0oV5ZA!jZC6`pBUoFgukLmEuBFg#C@foh#)k zumLw(e!x#2>JSq@WF4%f&}(I-CDu|FVq@I6A>&%?>o|;9;menNPX#cEvG~E3<DBb5 z3$wuKjgDZ3F%{+6%PPtWSY1{Tsbz9>w68rD(Mb>Eg+lCEvt}{#V0~U^hpLrYAOcsq zzO-y(>5rgXDTxugX-a6QnMO;{N%R14D)qyq=ZWyFl%5~=dv?RKN_zgO-}A$M&pZ5{ zcltf=@_T;7?>X4vc+gShfCX9cpyR>qj_{x$SdnXLY5<{_7>C(W3#;plTjI>w4p?tt zQ8t_L>WyxOqt*eb7+97I3ky}MkWJ;~8_UZB*5iNuP`BLRzZt&2tHZATO9M*jdVkf| z_zR3t<@YDM!9V}>+x`CJH~8mGtNUj+|NnsB)qPs{-#r3k1AjOA3m5^ifj{{T{tb+P zfAsI~)gS-D;m`lgKkSC9EY&;k{YL9MQ18J$GQu!As<u0;YaaYbt*efI$o<oYckJBt z$fJ)v{<GarJo)pde)04(&+d8d`4?V%>6d$d_3M{k`OT}peeHMu{`=S8*th?{!8hOf z!`tt?Ti<Y~@$es;nvWbkcKpPjPM$h_=DoA$-v8jkmXAI@f8o!ceA;^Pv(MZ9<BKna z_P=;K{`%F|otOT0x$B$mp580pe%JSXzxWR`L_;$?H^dPAv+MuQF8{xrAsssWe?<GI zr6rV<B;c+A!{oznrp^RE9X@P^A7e7zk)MCZW<pDuO$?J{B0MqhafBUa7ME@CJud-n z2_G}8<*e5;iCf22uncoAS4{G_7ieX4lgjNyxF=z<*z@rEeyVk?os(#`do88p5z4{* zF<;CR^TK>E4@kEe^T70&7Sk{p7M8Q;TSy+M_9F7MtdO%;NPgMY{8Fp*vW%lorm|Av zk-<r>g~ha(4&!4yjDz6}F!|CROE$1#Wg9bCLKvfeW`)(hWUUQ&fQ17TGwygm*dj{> zo0NxKrMaw}D<^*Roo2(BAV<qO>-@4!Nla#jacS&bvr-l<A~-?OfB_%^_yAgn9cdq^ zGSnOz0NMeX16l<d2igdl3R(;s4t~i?7B9(M7RAg0o)_P}`$@Cbl5D`gB%in|p{&io zRg^3(D`V;EnD!5>taw0py32r)s0<UwFs~Ic%(G8iJ1$Bap?gkpz3&$y3<2Rs28I7& zYG8P+U--Av3`{=)JlBJJPI|`hhy3Cd&M`2>a}3wTW0XEH{Pdvki-W>X3<_VLXz<nb z?nJ|o<#hh&`glw=3>|JtGB8C+*H53j;QDw*-*^4=KVN+P@IRXe>ek`++%hQMGfM}; zUS2wMdsuS<%k$4?_zD9vdBxD-xe#U<6kb0l{{yQ6!~Od;ZMA_}z54p~J!l&`J-Ww= zub=+p=If{br0V+N?`{taAKag>KX(1}rrp;MZ`*Ty{8zjb7(V#>oU)gO<1hD@h9S$j z@apyP=sk4(dj9;FfmwOQR}?b_H?dopYySRqw(^gitt^!-u$Efw7S@_fcg&Jmd$DnY zwG`HjCJ1Bk6e1b7%e^NNrOIqe5t~|O&nPNgS8Sy#B=Z=POwLTCXs}HFR*_+4{W49n zl;#%${qPOuYAVa;imj<d#n#1^5-Y_1m@(pRe6qcWEy}YLXIRPpAj5RY7g;SEtXKJe zJCF;_I2-0WWk#_TXo{QV(yE@6pKm8P2g&>oQ_3-Ia#=|UBwSQf3dPUE6tMK$S*{!x z`y{3lv8OpFmvPt{KcaE+sVB57=7Kd?wz=HOybF{~v6a0F(Yuw)yt{b57W_3SpR?Pc zmA#&6%FNP2l5@UsQyvgokQg#22NaW)fXk4<AIKM0q*&K->(*KAW~eT9-Ip?nMj=~Z zFq-6PR!ccK<Y1m7&-6fJCBejuRc8JuUx+<`8=Thsg{66RYY7<z4gUT>g?RllFl|z@ znPI}QWtJFC_}mKEWLb)f^2wM13W)iUa+%**$~=6NPE+o|XWxlSBEAt6yRhy3uz%IB zy_S(3)rCOg{7jh*ZB51y(=A_AX33Yf2w^n62{?N<zX$b5QfYohc~L3t)ca&upmAV_ zGlRub3>d!kWb9uRz$_XfMK)8d%r45eCKp=l%gRi+V?2K|Yh?~yJ0BRWFOYtqUk$@p zlv#9doU}lWBAv6^H=C_?LU@+u(Lo5kZNs)+R+P718kH|!J(i$xGRRmZ<lnL)_`WL0 zIE5$XNySpOIJ0ykP^rwX2nI{7v^!RLF_3zvntmnp`-Pr;-0vMeJivLrEVY=cD8#(y za|H!fJB;lw<cpF`mU3E6=!wY+Ut26I^EMD8_{V~_Fwk!c-|%aKbjg7}5T~7tX>tfd zKT+mO94A=1?<ntOQlkv$b>L{2<l?dlX?9>9qN7E^KZ$wLuQp3Kwwz;09Rp%zGr{=f z`F-=7rCAOOO=2<_m_*7gcB`+pS%E%)bqnI?*Z)}-dl4Q~Br*3Hmo7Fg0=^)>7?`F~ z#Znm8WH2-D(=_=@3h4WE`2d%K^@Ew+JNG29P|#YAwN@ludwu-Z@1Osxk52NrGJlZ< z?bUJdUeVQ34}szG9}u^H{r>m=7Jp%Q>v!YcP5BG(*En{HKLh$20OdU$q5t>!;y6Va zHSd^ING_hC;dM`x2t-jpG^~PR{2>4+PpXpKVUimvg$?%$8zZGfS0m-CmHb8m+#~_| zPm%oRNbgC~d$ROymeMSh{4*psTgpF2D!W+n$Bh*o08F&Rw!K}#HCT%8kZ`V&-0f1h zQwpz^^1%ytD2ns6^u9;J=LM;}UrPR5eN%WQO4IEd+qP{x6K7)Ewr$&XCbn(c$;7s8 z=gfC^_J7;A)laYLs)Y}-Pg%)50?9ojq9(d7n`0X%zqB{GcLcQWKQX_QUw^j$xQ-FP zt-!r~loosieTDKn=j{pGMgBP5eG~cp^u__5z5Kk&Q{uuor)!sc0-;y2ZE)EAA%5$9 zq;h%b`n^?QW}gPpmQ)SDe;x7)H|zJ=WgG5Y`Ce`nzsX_C=$m+W9rRk7YvpCj`#>-Y zHCv6z{Zs8VhH`Ex`QyGc%5C~I+7kDVl=;1uDyLb?IF+MiF|psfz}IO^_1SBAz0Jgb z2H}&&q;?SboZsCm6c=#zx!#wo$IRHAATf1)r(93fvAR<5IN02*#u(rH2-?<W`U{4> zW{=wbj-=<dIG}2{)<5b|l&-C?PX~&AfmLBQ7NqqC280EFb8uG{@IqvtpgIQOhTKNA zD+}KG^b0mPbrps_wsB=0b_hBReN!f!x6R#k>8(AWzqS-j8`m16Z+LnRWw&PC$H@N? zV?iOEVR?K~SN~%*@5W7!oiPsh-v<&h4?PdN52y|*4>u3-pUxJG5KbRo0JqQDAJabr zzyc@$I0F&@NPs<nCV<T!Iq$`8jsh^SWB#dXuLY0=!3BQ>>9Ybb0C-_;QTyQi=>SK7 z!DJAhSRZbf4b=C~e61gT>m*-`M3+pBpb><YB>K|?hbhF~{?C-c?2?-<k(bhGtjSPG zPvKuq|8^4Jtcy}S5wTXae|}he555-CN9)TV`Z6#^!8DHrhO15h^dQl}k;4F5@V+Rj zZB{7Q;wTPg5&Bp`JUREIPdk8n`#n4WMd0oS82I*PynGDe3w2>OtEX+U?+~O4RDIc` z&GPe;Kwb(26cqpfKmw+6=9T;6d?``E0f1Y00086PsgsGbi@md*owXB#g{_mbfwi@X zBfY&xh?<Vw20N<HOD*97#CT9OJHkc>D$p}hD`Z`XMrI9Ipg=y^`Y~}7v;^5*?@l`@ znS$%`TYu`97s5?9@5`X$2BpnfhvH<!<Lrd9T!{|5CfWcjP3QM~q)lUD%IWr>wi=Ue z_M{Y5EmcV)EgG7^0oUSXFP@A!%`@HIDlNUa`=TJ5>y>tNv1V*ncTf`R4fSHcT@zBl zIbzR36vp_yBC96qrliVAf0OLBQ>`C6q|Xy`(s&UnO=|6-)5dNm{e$H43ppNsDFsUC z?EL(E0edxibjz`ARC#D!dY{lnU2&cgSLH6Y5{+q938aa<3!>w2Q9^Tl7rlt{Ks4zf z)8jm&`ieE;n6#2amTV3vhge_bkAUQ!6`AQwXt^4vKa6Z`Fdh3_LyAg9)Dw4cR;J*) zf#<*~jcO%?@4)x#(KJ)H#2})OY8l<`9}UmXzsadPfBZh$PWK;j0a)U^%T}r|3XzG` z$)?wkBE(so;|yYTV(hhFCYncZ9#=((e65?KRfQU22o?kdh2g05@G4}iSZj9z$ylAp z2-S;*G?rHBYh~!K;vhqcj3D&sDZx3Dc(Fa&+6@G8ex`heuB;bFz2YPcM}uFH^Tax? z`jvu|bO&+Ts@@Tx#6*>DgFbPbf2u>K&#0TUTbxBQIkSffqfUfay(|)QME5Z!dem%m z;BP@w?>a`P#}d82uFm&A_XnXmx5M=f2cx`t&>>1p$D@(CNK$6nA6%;AK?{77HJ4De zT8`dz%^zaD*=;~-A{|Fa9g<H)+~iFIA`vbZk3^Has*_*Q^J?Gt{M*-#_JD<a^Gz4? zpctUr0FeU<s?=r`o+2s<#Q;Y#d=DEC)K@m<y96r<e5_Pe<WlWiz2g%Mvnac_w8~#t zoRTnpK3sa*ayv|&NS#F$z{zBlrvv?FpmRLHgRr~~`Nc2~q5Ip=S>*LFd+Uf9pmyg} zJCsH;z;U=@$&cE^3?u*C@${iPog$q|-B(hw?Nv~17dih03nu7(B1Tv)V^_$d;tn;! zG{i2D!aN&_s&l44I!J7K7_(Ei$I&WwKO*}v)cF29dfWv{-+WQ-kE@%916wA$&uHoF zUBak*7$czpJ!&z4GN=~jWc_}BK7M8I!@T=N0mp`1DcsCujqn|B(4WKH&DHMGBX*Hf z&4;ehZ);l^2n07ul1$HvY;S$y0-;qXOPEU+ynulw6rx@W7hXn%N^aG*WvqD{iNBCr zi#P$JYYi$<lCLlX<<y~Oh(4%$Dy+N)70Nh1S>MINMQ=oY1slbUryWOB#*0`=EZh*d z!o@JzloZwEBkC|+z462+ye{*r)_5gw1W@B<M(AOXvR$mis$kj*7mYO+X#-VjCw7|d zhv=Ztlo~l2P4+-1X&4A9X-d*>%s+ZZ$~t<Ct1{kq!Ue3oc@y>SD69XVIqeW}47h~a z*zPenVUNw6oOK}8_Zz`66oEFTKuqL1g^flS4l?%(N5T{%lr@r-V8v-F1))^%PZxK? zD27+Hv+af9jh0_DxWx%57_QpS6j=^k{ye5*4xvxT51krtY8L)sCSNEmkTAhxgHK~B zoa`a7{F>1J#?uVD{r*MeGb=wrNMK<!w1y02pi24dH4mmNrVyN!*J`C7^i()<O}U7$ zlwkz2P*b7U2gjXXDxT;!_o$%z&anbL7STQFS#K0CYRGM3ON+mG@AJJlJ4F@qgXL4K z6Y?rP&J7oBG>(ATG~ZsrVP^|LL)CpR`PNQBO)uL#d8L85LrGxOgJyw>-HXy8J0tVU z`MJz1%qHZBto1VwQ)hoO&VU7P*cg-pXQQn(jh5d#{f}PPPqOsr2|g}HoEjDwd+EUb z=EwG4&RZ#oS!kosnWM?1+#y7e!q3X!m#zm`?Ap6UGLiBvYA7-B_ny9(M;}27Egs~2 zEe^1DJ}Y#Ijrq8Yn444&>Jm@<f~ClJGT!(>>(e~mRuwIKPhW>Zrkb3$*==o@1P4ke zR&67CMsSZ2*d?8E<3+W;ma>x6NkV&rttQTN=)ssc3NO7PPC_h8tRfR9mdhQYy0z># z*nfe9S!onA69@pH1pxs52QU90kXReI*czGtLlG6le%lK|#I6Ul%13>1N4jn+(w}}M zm8W%)aDCj`NT7c1n|8gOVb1Ccn7T$5o@g#y`2E_<9Q*(=kXo3Sf8I(+AV4>c3Lh4V zH4srV{@7z839!=vU9C`z{Yzews49>pVLa4*RIk6QIqN#y12N=6Q&9V3-B^-a#7yr- z3d9;<w9|M~EKaX=X@pw#AZqT4rdPA)wg^!hXaCB!G+&qmQ%(qc4|0C8#yM#wA{KCf z46QAVCIP-1rn`Ekj|MhSo!h%r?p*zToPdU1Ap`;yo~%BWFk3S}cVRe1os^g9uNWk# zYFRXe(u%ZUM76ltuuh-fX)-6ND0AxZ*_N!DA>qtplDA~@*7Dz`%*l?5<|H((`nRn{ zbh|bvM-7jdKAqo8j+~Kbu7eyBk-n88DVO7DamtvL*{sCp-@{nZg}PbXr}E)e|MYZQ z&%3s-ixs|i+~&k3eS%Mh-sy8ib#VVVc*}-R^`L^i`p8E9HPhF>$P-{n!0a^TSID8b zy_~W3DdKYo(f{iiiO3o6vq(L=)=tzL=)bjeu7&hK0R{kkKmh=>|5HmlGcyZYv;VaO zN-}mEjIiAwYW8bHGy0Gl&FKgq=j{3y23qw-#9B?&DyhH`vIeLhH-*;ibsK|@zcKIm z6c0&U{9JPhqlx}DT4--rZqWOsz_Z4)3)&M}bzKMwL_W=I@1>h$41mWj&)?~KP9AO= zU3GD5oAeRHvAV-F%3*fp)x&SorwrY={j%-Z_LlXqG{f0~$A1vnxpMt`6Gm2t7=Wu^ z3#F(MuNqLb31&nZFLXm;`sk$cOA*7sd?3&s1nPC^41nf(UyuXQGP|wQB*d10^So5^ zOKKs7JyWc0WzpsYc&YDiJjr5C6J1~nN(y(d>F%+DHTRwy9#$EwCndq?Z4&Rq_vGa) zf?NVIp-)uf<ew=UF-MA@>2d0)_A@hFqLhy1P|Rj@#}P8=-JwbdG^_7mtqN7<Q_obI zKfo5T-9?Tsb4HL2!@Zq>Xqa%RA7MUs>V?|Tz$G$NX+;FTx_f21XS^uX6FYd=gQ}f! zrxUp2@}0!cv>c#U?FK%C*-bp4R%mVP`R*+zc4@QOyHHjXg8JK#=#Yn(%1yTN4SiNt z&2tnd+AL{1k2HR76UJ8?-}*dC&x)#$lJ3M~ah;%<r`SOg?25L#h*?F3i+t1HAPRMb zv>6FHBAnINya%xjb07fyU3c<`dtl<59WSu8^X4C%9=n%_bdHN6+~(4xGx_v=I({<n zxz8dstg`^6(s@Ss?=8X;ow;R&000dBJqQ2iMX<56wKDPecZr(SZT|I@h~L+G{l%1| z44DnA;~n6WVZ>4au#?!vTagBskeUTH^vPuj$x1gXH?gQ>3l0s}gV0Sa!(JZOubWYx z_V$dO3RiqPiLq;zbn9peQi?D}UNl8iW)Or-C^Dr@WTsXFD-woOq-nP_+0Kb;#S1d8 zHm!IBOQ}9u8pTB!bj_CGe$>N;uk7A)VoTkJf)Y(72PrxF_8V^76VZy~WW|SppWk7F zp3QrnRyu?O@v>2Hja{T^70p$^tXA*{OMh^Coxmy6j4M3@v0tvWCOu+)#X!&~PZrf} z5TP_?GC=7#^p&aTO0fL;gY+5{_UZw#>TH$$2aIJiUXnTJPdv)2ZFm4;-=N`zvF-JC z8cXS$!kL$Fx~h*B$}+I$U#9}idyrrd0tBlXk1<gwNC3bCQ87_fqaa5Qc-($u?&%au z$lB9Fl%mwkbh;0ln6YZFD8x_FaSMA)LZ|IECnp~GhLV#g-mfWy3yrP>8;<L*i2C4B zgFmF@4{ETxRX0~2dQo1{VsYp~;^!2XhSo;LLt$Y`-G#4$Y6aJM3m#AA_1hTPATFNY z*LjolJzPE5KuV4jDp>08ZGXAYu?Md9HbMyg2#D{7+gU^yT>~bHFsd32(gf2@oi_mx zW5Jz{jy)H8T03y&-^JG-@SGWO*T@>&MV3%$u*Y;(G}n(XYIIHm#d~sPu^jiwEmS*j z#02;oiB%el(Rq(tZxYSl#`vQb{U7$vVCVg%i@i$|hNAUo!Xo<TmGwD<P$RYhWo&7Y zOI^=Rel#(}U2NUQ>TFZMIT65QcouhZeMCVD95otn@`@X|bwW5<il8ZMsP(;@hpH8V zlNRt#RO?MW;z0hfDaR4}JgAJA_qEj?fb-)ukyUGavSqXbFxFH#cDep3vjhY0`{X00 zF>8K>HYOTIFUDev>AZm7aAaL%Ff&@n_n_0q#r%W}N&ajo{ugvjATieM3z}!R*5uX# z@*ptTOxCS${(E2^{_mzXre7MYs1@KHkRSz|{ip2<U0upDL05ak=ZAaw6kwo2I^%y2 z)OLKmLKC%=gv`X@<>%?q-r%qAiU`fXxH4viu-zU@l)C|j-hsU~aIfP9dV6eg5tH>` zf)IfqEKLcDXDN0(Gm9cYqe-=}u1Wr(VfZ-kXu<?}Cp9WJtBeV^4(6nOD)B2|T>KfE z)O^0fZE`1sEpjNc(D&0xk!Bxg2iBg)v5V6Aa$GTm<3b2w{eWROuFK%byh9pQo45wP zv!L-h)XIBTFE1ZAE^WWJucgk`-p|*7ZJn*2pSSnHkItRG_tWv9g4_smi73&y!(zDB zD$~>>kXwv@k@Cgf1QCLR{%;+?TCRFG{_wk%3<ly6JCS(E7*uP81<v3TLskPYi&C*} zK%HnNl$(`vug^>K?&;i^Stf7E&-f9uEI`g<hKS!Y=-u&bU^%c4p_}&-j3-c|VPU<$ ztoGtS7nDh7#(F`b%Pu5<-6U}u%PHX<fU-7sIQy0V3SOP_!nU1YvBhw$9O1K0iLGzd zQnCYDPxU8ratY&>4MRw1F^M=!tV*m<N|2$Mtk_CuXBD$F1RI7(`Tv<tGKz=o$CL_A z5}bw_pa4rWW#7ct*ngLd=!4fMpF*+Of&1w;L-HSwi}b~iuHY`$O;qdDg)&~vQDXwT zOFDFKY9#y6k19zI7Kz!PCybT!E?Bkx{2PDQ=2b_e_zOZ;($V6=z%Pi6#}K&A6sQE- zB$rXJ?{W{UJBWl5!_cU7ut&p}1YgI|EHWJaU9x4bk<5_7IbNW<cgGwC1wc&8LcRQz z0PV$}4z)m`aMKOM8RH8I;g91*E8Gq@n{yN^t*)2JhP|>xe=x917LE4)(Z%#WtV3P| zHb<%PRwoleA3Y$JU4k#oW!NY!3%-`&UMH&LEb#u4SalzdDQjZ3v>2})c#IF4927RA zSmmHX(hW{ia-U6C7p2ax)Me(&#_rnF`l)!v<D#0)rXK--O6po2@YRb1SYx*wbi%Sq ztM~049l>DM5E!J$BalbEWK06kKPTw)4TTy)oJF#TaarBAJ-a%oHt_ydF>&?bTzj^f zA2_!~gJ2DO6e=B~C+N#%c><SA+=Kvxl&AQqn{^t0Gp$?1c47y|w0j7%aJX!`ap(a{ zz8D@L#L8KuVmkn1MD!0*RVW%pUED{TK8P?>xHM@=kC1a&%XM;KGxB+A_=hZNZLC0x z&)OorOi$bGDL6^k%>YsVwxmb>?CViGvXcIi@ZeUwg(JlOxhM|CX_Qy;@O~5JUCog! z3$^YsB53pB)a2*?vMbS1xyfwt#8LWiJux8;V3`mdJdvVEFl%%CD-*(pf?jUT?<f0O zn|pC(Wbs|TpA%zuz}sLrWkw`hK)ZE8`pCR(n+xjf4Q-u$_$|&#v#m&luI$pIWjO!6 z$g%aTVa=oYC+6n=3~*qTgpevI0f2yE008;Fy_$`atI<D<z4G}|+E8yez4=7bRMJ?B zC=?L-9jf_kGZK$S{RaWX^d?4$evKcTuH`Vr7=+F3`(<V8M2j0aRU*AzWmXAAfS+K? z=lyZzjNh_ZQ;Xt3G_z`TXficQH1T+wRiYbVo>Qj5IMeGyp#|1V_huZ$E_(`NKDt<= zuK9^xw#H};jJxs%z9m=Hw<UY<8}$;`+T+&2cLN0kMg5Q6!zAf*E<|nD^Yq164aN+` zhgXi!jb5R9qPCgt&uLC8!DVC#$A^~=1N22!FSP5#^p^h3b@E<InB$Z-)1vNeEjIFJ zSF|b04XuP}#*4SvOEH&q`b^Yoc<z@sS45)WiCW0aqg)1gv(cwA+sN{oNwUYo?J|s+ zMggYeU1*w)SQME3q)W2i!U1EP7>jDUEtpIpDLA_oke{un6ZX-L2C|*ZU*l^*lsj4t z#yi^a!$ytdqa?~JPsUf15%l{Hz)xz-ca8{Cl>|Fj+bxBQzu&(7%wh1F4Y?m4g~N>P zy#{Nd9C{-oL~QnCZ((*Z7xM2X-B^9S7>$x#X+WI`{&a(Xu|=XOZe8@zB-j(IK6vT~ z;N+FMD||mn08t3|D_1A@V8iLVuHuDPVohF<q?7*O^p_O7F()xd=H2!jXOCfP!#vnz z*d*o{YmYHX-iNXQ7J$x?-OjCRP<R$Y``RfLEvL4S(*)zOsE&|USCk4cWr}s6)6$JF z{wnEwH{edZ;oisgM)q(#ZVYA31aD+FG{o7*K1V1HucU7?Z-1bXZeqyF59I6X;r6LF z$nbUWx5w?&N7~TT@9&4Br|0Kgv?eD`*UzHYgYWB}%uQNS+~_sYcJJ9s+{fTwxj!?; zAeKb+T)}JvCpN2?gB~r|KdeJ|3BXdYTo3|5ErgIh3>?sm#+N6$ZP0}p;U7ViEN0Mm z(VjVoI<XFA*Qrj~tkKM=9^#1){88VFqfxJA1*HJbnSEZEE`Fo!=j-e13;!Pad)r<7 zhEA}y<Fl)PW00*ze`2#(rClsn7SpIrr@!F{&HiZH>+6|yRHOEsVEDK-BbAKP18Y@u zu99J`V)X&PemSW=YoZB&K2y>$$aR^Fgo8EWzA|Tzi>lej{YJMm5!q>(^|DJ+HZL`c zLDdjvywd{o;q)(y6DG0(0|D^FFPXJP=l0$chr!x-gLJw$$1O02SqxW|z!hU+oX(|? z88bZTLL3>PA5zWVxugZ(0}gjLP0DOOmE>RhvStz))o}Kbzs#Ueq&GREWT8{NGe$;s zAFWbLEm>jcfmbwVm)tp_4Se9c7jFiYR}3b=<Cxi=cEhV<3zquSWBLno^xe*t+)!P@ zEaSy>H(olCMQQ+O7x#2`8O3q|1oowXH8Vn4!2tkGKMHAS!LRwJ#9~c;|I<ITqh(?G zV!L+$lMCu>It`q>Q%^c3Vpj9J@?moKQCkZN3r5;>PHj8WMquqesr=U77iZLjZD5UR z!DfKd-@TPXPrsYthq&=zIB?Md>sTc^-D0BVPm$@u9xh5J2v#w$?d6yb(cEP~pT72N zt4dTXoT#LCdDw|ScxkGlb!V`gxCDWeP(Y82oefe*=)&v2nEDH-@J~)@2Ikkh*K=$? zE9y?@gVx_Qzms6116ZqCDEkk|o1@sPOqPw}_$Osd1V%I)rX-kc>3P{vaaU0zT=mBz zSO_r%BJ}*rSwce$o0-9v>W+WMWQpF{+|YK5o_Q${0?wGUSew1fokWZPFWg-&kO;}U zeI@kQRJ7U0%KZ+jDo#=va?%d<CAuxa*w|9hH~^)aO(B@-7s%U4h9*+sX{#ysSe)-z zL7DvkLm`?am{Q89RX7|F_qz}oIWP8lYzifQLky~@i$t{L5UZ9on~e9s#L<pB30|4? z>|B9$**+~;gSKaK(5C@duT!kBy?fvjta}H4w~bpInUR%wbyL=f;4;E2GdDR&)W_?8 zk$I3bd!o1Nh#<3NamXN18|WEuZC7LzT1~qPxmu(B6!z%?sI7Ew6g@Or-8x#*Ey*)W z*l9N!*KKg`96od1wVJNIIW<=7*_V&6(+MxXj+69$eRcG5c;Dgrs^wHYy)81_=BisN z<Ld~AM5}{ONW990ZO8hWQ{uqGpW5an;3FNG2anX>7X&&qL_fF++9ad0_^RqCR~03w zwwHW3bY=gsQo&lwY=-7|`<IR0)sQ<tu9W~fDzQjgI{JhA{F9ZNB(-sz=R85eZ9wsg zHcs4^F5>F7be6mh9lxQ8>)hSA0rs=RMC3ac6}wMH;}fwO?(yS$dUfqEb%<g`w?&dg z*Ky2TX_k##V(9i#zL{2gUC$u1l<ZNxmBz~%0LOf`%<NC2HRGsUuh1n~^ZU2yig|Z{ z-E0InF_Uc3QrLngbTro)bh5sAH=L&T0t=>k2om!=;xVWLc1@!BKHWjOK{By);aW9E z53CU^AELlt6J9Y1^0Lr5ux$xhAbjUZhJ8@9Hb<F%YzS{8V8JqDz<QrByL>G4-1jm_ zrnp1$U&ZVfkGzRnOVAN(WOZyF8RShPA&NY{bz2|VBp61~?EzwA%#!ma?mUIc4M-`b zOk`!w{hWs3b>85|e57kAfu*?GP<<x4RF99!;acP7{eKe-RnQI1+ocErj^SUh>&@IP zls0@|IiS%S)coKO+$JpGn=0?rN3Lqm<UQ4&H70==>BRg34Cs(Zg9o|-Nd16t+|A1y z8|L*|2~RL$Q{+!iXK!KMUXT=HAj8*|V!UX?w?h_NLUAK!Nb`x&k=7mV{@|GYPK!oN zUqBE+%W)x7%Yo&09oR7$W<<5De=n_dVV+HuZQScE%a0T!KT%ufb{gk^Myz>F0cF)L zdB4DBe!vdU;{!hNt*HmfbO9sTA{A(*M@p2NwQjCJB*tV6liAk$=lAql-OpPa2k!?f z@7Mj^<spbzn{OffVGiysfzFfh?*vy*_+L{eXSjd%5k9Ewrv295x9HT0?SdVu4O;XM zJ~sG;rM`KN+QP|-^8OZb(Rkz{qq72OCo|(IGL0be^b6D+>n-{3aLSc4mN`KdFbwQD zMUtRmlU`1xiS^UeH;)+qW*%2*0IO3#Y+CH?Lb{saKWQ6{gW;L@T#aA%>S*nJ;XKXB zU2?W7|L*kS=?BGCwNXy4Lc)sAB_p|LZ#RE6@&9Qe>nVd6m6~&*adl6n*EqTOyJa^l zAhHpid7ksZFHw^UllG)IPFcn<F;vScnqAU^Rb0mIB#j77bMCarWNK6^cO-PXREJ>~ z#*pija6Vs+Xjv>D(;rkL5QEuEF0aIta9TzM+Odr-!F%&>dET5iOc*aX7kF7vx00?s zdPCU?NLZei__>^18~@<Xm4y8eztL>_2su+E9=2OX4$?!KO0-H1%sE$3o_WX4!FJ?3 zr7>CsbY**(+V9_lpj~Q$b}IRAR1)`a=!>7Y=`d`#DrxB%a>D}sMKfz9futMMaTYO3 z^@xcvo!*Z-LAhC5@M3?~?ETul_x;%VxX@#I+=YO|=n&3i#<ub5HF*O?<Y6Vh{DbH7 z?pUHl6*Q!G{I|68gXNe;3-p;4me;h$BzSS1u-JXb=X6SZF&~>SXbA5Z(qAA`i<_4l ze0FI*t%3AfUurl}csk{L@|hMG!Vsy1%LB~jXYNKG!8`U6#tOqYN+bCIWLHlr*>Ebz z`#0O(jiffE?eY+CUhg|h^tc2Pb<sITWRet<fb)?Tf+uGGHctrfm$QhoO}#$s0%c~@ z83+Q>uuAyXu0HKoU@7j(o{bnl%3wUBy41wlqcRGt0&V%Y<$W9ImwGgwTa}z3DuUU( zdAfXQ)z&L!pK0cReYQi%Jls<%75c9D;c4T^3as~&YF9RcEeM-o)U)IgEN(12{0Gv9 zhu?#1(AL(j$0#uBlbVG#uR+f=uy6Jsi+!k%*mV+<gOGNwYThu{F38XYT5Nb8#_q4~ z+5Ee$Fzz|60~Lwp1>$tCZrnkJTEkM_Kt}9}gMm$<Lkb~ZgS8!L^6lUwB7vB9_(B>> zfL-if=D+-!H0zdI`qcSg0?mVb!Y73CjVH1;RH9*f{huHvaC}#0t$@#|D}jj?H(H~Y zQy72gz4|B8ZZc6>19FmRL$PNI0Mr6eAQmA|&$YJ_ajQwTqA0X)Ifnh_a%5CvePw{h z++5ffj-asbGGXbGebN<0q3C*lI>Q|DQ_lVahlSID#N7?#wCKb@_Mgfq!V%KjC4Fo) zTvf}F(Kxel&TNfL^IVz43rrAP&bOy07e+Nxj=Fu8w=0(VMZt7B+iy8mE^pSmX}J8r zhA?i8nOAI$-wTn7*z5eJSpfr|oiEO<xJ+Bm+rWt@`-F8-!r5JGJ4)x^Aa>C*m|*Cl z@BaI=UWED$LhstU=1)xHYe1hDRF3`&J<Ru7zpJd$idch5-%tn(U*tm1RC(=pDx?pr z-j*p_R<25dW9ar>`9tlXBf@GFC~st*M^cDCDKY3H4J?@UxjU){?KdvS=8%tdO<*!F z3D9fh=O{{DfKuAhgUvIl#VLueO>!CFbNOIu2lR9Kv|`?HXZ0+o>ocY;xO?XX>9{%h z=@KjBzuR0ejGv_1Hn?v;E106IpT@ktK9}Tdc~3d>;SpGKB;9YzEJdMB(L}B!o1j6G z=a_$$$I+zpD>_7^-wBit!?<*dww4|Y?^6|1^A)31nf2I56}gWrvH*Gi)7;SIicr|# z^U^o7DcWU}P(IBoBcku%4DL?~oI6UCJ@}kgkF&`=$zYD)hVHr7(*}R}>|v9g&0WIt zqm`*r;czJzrG&Y!Gvc<euxCX+XiSs5GWMA<Mv!TR=q(>J$z$cC9DEClRV>kR?FG#( z@Q%PD6Mfo~Xb|swd=8sPT!fy>1to(z+fJJC<vOVvY)~rqR_p|WV+FqZe>vRRREEnX z!`bQH)CMVbkS=9gEeend>D>%F*`Xe3)Umsg=o`Xx-|M>-l&1wXsJkGdIV4prVRFsi zA&kzf<D{JKl>?o;N!4NHPw#2PGetYLzty6tPhK&w$n!ZD6<Dy2v<<Ol$n=#hpQ5|= zh^+}}`P<8n=n)=&klN0bJV1oUH@O~OBZ@3|BF>dz*$ULV@D)YZr9l+iv2S}tk`kUl zWM2tr`_BLc`+rIsUel50aJyV+LCPcbT}_Bmd=7!)HF#NTLQ*To5`_mA3JAYI#xWBt z+SYf%L#G&vk@QH(U_){}|GdePG~(|>guF3DpTrl-ywxy@2)F$0*3k|dQ8Z=5v!79S z(m|_ys#|e8V&$q0;^-L*;(c5yMy_8Cs8+YOOb4!2FC@}K6843dxr58mIh4bobv@N$ z+LnjpcfdsC#FB}n@PJ&G%)D!yk;GCOEP#Jbd`NDau#WmP#Pmppg8Sj02pw}Z438bR z8?fXrR=#*_v1U_KQ7(q{iH`WaAZv%CHJd0EwtCmsu)&r;T}p?K9x)1*h28jFCsbl% z3Z%Fuy$3n}xlNl}ZlRhaZH{1ux}dCehCU(c<bwnRuNp;Nx%pUme%UoqJXl21Z0p`r ze^$c7240Rb*ptC>pthH?Wt^4wxA*K9ExR+Ww3TTM=q0Ov(R!L@3=UBk{foyxK5qzC z6&N8XV3DwC-ZJOq$2|Mpg)=6s?kkkHWzoGmnsXzlApQNQA%8-r1ej^i+OZiw5_8&9 z-NRryM`hn}deG*=h<M*=wn*2*eUX(%6J~x%v^-@BtI^xDk-w&Y^nm4tu44CswELaK z0NTI%3!_gdrb2tQl5#e*tadq>jrsc>{@tT=^(Nn~0IFZ0q+gbkR*X|PK_neKS!}oA z1}^}I+C3JoibY{5&)&xR*yv4wZh?0^>E69tBT*YGmV_H(xW;ZCwB%F{&w9rLZr^y| z`DG4yMeLCn8ajZ9yIN_vU4!$Khf96QB9Ly{>=gTcytJ4_`XA`;WmHC@y`jNGa(NZ8 zQBH%9%$4wcnQ0h^<ZY(?i|Xacm~Fb7Sl3`94*=8{Oq@Q}%exe2?!rOWKoc$L^GY$B zHlOaHG>+rSp;#*v_Y5AjqiV%w#`hZh8I69uRSn?t%@(CDsQ2&mk&tGdt*a^d`{ddI zZDAH6qebSO>s>*uf;4WWg43rHpr|451Tm!pO}Zl30|b7rq+x%+4_AG;FCu&C*pK>y z5ryr+G$-R#<VIftWE~z-!JGVtDs^ZUH&6e*N@c*rfD|)5Z-L+IPesuMuWNY}Bk9re zwrH`7(vFTK(OzfPJV<xUbgAeL-sR<o$|AOg>WKmN9v1JYQaUnHT8Z--I0Z&=OoSE` zb1lT`zsmCUByJ7cx1DP2@e&-~AfsWM9-5LO-6kT(g{;xd%1ahX3xSLLDsZ;AaE|+R zRO*r4Ck7^0U;m~filMB})?H=`*^xP0ae%z+=sLWQTfj;KPNfK|s6KslLlsV>IY6NG z+^Xh&v|yhCcV>vQmWb?tfjcLW9<~Zt(ZqMVH{m+ofVc45-tl=Wg4wRuz(AiVh*H;` za@tPQTLauC91Y>hxr9V~hL5IqhgZ87F#eJ!s0c;?B0ZikuUKxWs@K~wWM(w|HE!e; zvetpUv@ISi3gow;-i_%<dnKB8VzLk8vcTRcalR_0Ii<hB8-nrcd$dRu`L>9D$A3|T znq%(@H48L3U|^k|G}2UG%<ZM=NM1Q9AH7?ot#i4ZnvwV>nmI8N*2&&x1DYXj;Bl2% zJlt9MMX;*HU;iLACT|H-8KGEvjJ?uf<!>*J0?I+X#ItnGlv=fHvBgpfeN2rSx{JLf zH*-e^aIDKjy7)}RT|>PJBMnDOd$uVA6iKV$Z0aj7O2omfQ&~Ql66n$~Pw`{amP&*h z_6SDRG(<UL(U6YGJ#d}Cww!S?|4O>Pw#YsAxgy=`Z`7cmgu|A%+rh>R5yQg6;BzPo z#cfJRj5>RiE~$N4WXM2%Qn<r=LNI*TuR!^UVDCn-M5!EfP$kVoX(9YOdv+DZU-OC) zJ6fezB8`jrOFWp6QU{QxRUO)UEIKfw4gI$wm_Zs=HtnWIn+IX4!sUUC2Q%zk^|uf< zkS`HAc@PFJr(e&V%TCDD3ODR^DH**?sXby1q?Po8mx(f=o9DdAZa>X*>acLFB_iw3 zu~m;||CGe0-Wd8aSz1r4uaS<-GIVfYwtV-W0r@hZ%kh&N$wrXinHtd3X))?mU~*3A zyE+kc4Xu-jC^)dw1x8Won>HYo8VHAJ925$`TWc-&@K#7nd4<$f<qc=eJA$G6(};vG z%f&ZHgwCLhm5tS2$)y-A;OE-bPfHBwp&vUfxJ5iit$Pu}rAoHW_K}O(q|tf`{=f{u zY}_{~;7QS9ps2h46uW<3z>^QS`kbA6|2hQB&(41+Xd!gdd(3M9NsM#za@k>;3a_`^ zd#oKR6*Wl^TVwoag+XU>wy~S5@Dx_sUOPg%_Z?Ad%7^+T+(cIf&#mKyIGb&E=_~Jv zmwy*T(_iKI?UK%8;$BP|7kq^xYg|qO?hYV9!Z5`PdDxp^gU#l>nW9RN+Jstyt!D@Q zD5zFl9Sot9p9;dxue%gc=Q;@FgkQRG(FT%fbbsA~%v2l7Qs)ki=F~#W_PS6bpv-&_ z!~3Bwbr`6mwpWm@arRl*AUH|J|Fy>6FQ!sWig0%~$1OnZ`kA;tb&LoX2-+c`{2Rw< zr%B)9;E|p>x&V|<97W|$j`};JEss5ktKXP|cyAL2@OB;y)S8A_=LqG6L!Yk#_4u_S z2knq(iy_tZ=)`s`4*T4=7cJR?Yuo%l4Es6N7&Q?|AnuTqqqH;i6k5(rc2+D(3q=*8 z1NXK=VYC<+LUQ-Ozm~Z3=lwojJlN&?m^wusDuIoCm3_6>A{5AJA_F2s0tslb5*4ZL zD1{XPFF&XjoU_;qXA|SMt=DL>81*rEXHnOOB_U&R)`&t)Dk>3;0Zs~P7Zu=r5($1v z*qqNltHPtnHNUgis_ZqykQ#NIInaq!d%~Xxnc92Ck#|m_q=phNpJLE)K_sDVwbfvE z6#hVE74!2WHi{;k)zKa6m3Hg%jFC!qAF9&<3k}S*(KR+1D25~6Q4O7HyC}=)<nrUD z^rI}NN%scUe`Q&TuiA+xrQ~Q8ek>Y|`gGtPminL3Azx83H`_sHY2Nf9C}U_3?eZ-H zsPf2+Qjh{a8Yhaoa9pN8d_LWg8u3`%-0%ULGn2nsaqMuvqMsv~RXUD|nLc$SJZ)ah zVZ?;{{a}>78r<}RcYFGLHK4fgs3Xrz!!J2f>B!d??Q&OQ%C~OP?=m=~L-@kGU&X6T zynsk|i*Lww39*)ovGxXk-{T3f(>r{tgD87A%<&(oI$9wkuNdpdC;bSAWfGQ~<2V9Z zwakgN4Lm@GZ3s)jNKw16+9X2kG@PCxQ<S9l&|{9t@cz$j-^Eu`;{{=8i{Vwtt6Ff# z4HO>D%xcWaw$C;Z%+aA9K`c)EB?NZ&+F|4dL60e3eu;9Th=dTT4VZA>KO%c+J&V+c zsDZ8VS3h)>yNsyBFbyRPGa~rnKvp13mu(&*=|GME$)-z2xpd3!-}1?<GUuS&6d|YP z3E3PQ6-8r^uj4v@P@qGXM=;{0a?XGzF8>2}VMRTNQxUD)v$4h>_R>8lHGdr`kdey{ z+z89DjBIwUR?5AdT8LY@`1{0#z8i0vX7q~$^h8w%RdPZzMSgpWV2R@4VUYEs*Zd9v z2So?V{L^1=+ajUU_d4O;5NqI`dOujFDpJ@iS*vtGtWBn*AT5EHmNyXPv1K1R9Z#oQ zOghdX;v<;cwl%sL=RZb9I?fYA9KA0IM|O5YI2p+raYGH+(qUnG4Uv>|nKvsK4Apib zU|n{aoT3IMkJ}sdJqanHVHJuUkkIOCoBpLmIxCCAsJzC4w3x$4E@b6ZT#M_EBRt85 z_f!h!^TEG|UqrNkr(u4g!1Uy*>%Q3Kp!$^lh$fmKnMhJaZrs7S(<(Vd8@;<k4-^0h z^DbI?GtZ%>OwO27j_I#+|7<%)55|WkmUw0+qTPvwXYEICFz?#t)Y}&ZR9buwP)y9= zDMhrmgCXks);d?^)f)_5nSmo$F4|Yu6GN0sJ0-(a42^Gmo21jT!#4J8`TA2<+T5uZ zt5LPOgZp@At?pjA7F*psM}g%$ZK!|3*K*YmFQ;(|3Dadi$<ESxeZxDJ`{Fx)&bz*| z>*PZmhm{4ZPadgui+0H3eDdDkyLy}s5J9!UHvN72y*Sy*hV}yCf4Dw-)D=#R)6*8_ zk}-zYIuaQdhgatlawBi_sa4UAl*Ib%4`+HOJN#AbM{n2G1y`YMD4HB-xZ0L1!Tf*# zk95Z;f~a;yAdab(>e~9%y{mGI`-1S@K;wIdrwu*(VlwHo=Ga?sB(-*5Z2h*7a3J5S zb)%i%9Fl3|^1XX1T>Z2cPPs}hp2P_Zop^&Gr9OGBmK+M^dFNe7=6Q#!*Z6#Uvi?bG z>}fOqr*y<kMh>wbkJA1tjJJ41G-o1%;<te<%<s7sjg+tM7*!L$8^6C5r(T2K@h<rr zL|Ii)@nA3OObA8Jv|mzh*-4}XBhon*rdJrVG)Hbo2VM>be;|xJ`5K4n3*Z>c`Zq?F zC;J%kE(Kh>A1Sl%0EJ%YBh<903@0R2lo^qs47nsH>}}*0N*f__aHCuu=E0TG^f)PC zBiP#M5NB>zg68k$fy*ojS~0{c!57l;;0C#qQqkT@zdN`e&d3O<BTB3Tu^aOqY&)%R z-I_L}vsawGaK)6Ch_HvDKhai|-Ei|&a={FDc86!8w*Gi0kki{)4n?!yFodlRouFr> zUxB52E;Y7auc#y$sNn+NLg`+2QS0PrVxGE83-AmFw9z`2a-^okeQZP}%M{}HxHu>H ziLQnq$An-=)F3pdk~)UIP3xmp6rUtRFS-9H?iMw*_sD~*RKP&d`3&c~y-4n_(cM6! zN}QpA7HTnpyKE>oYxOHs`a&?ggnERsTGbcHAa8qyZwUJKg8^TIv0F@b;XoIs&H6B> zuur8a#Ll1TQ`b3d`;WyNkjrPG^mPSGev>osnsIn+421R4i(WY>{Ajv!l<0tZRct%v z*?y>o<cbQ)D;bIzDFikqA3<z?m<K}%9IQDGbhvkaku?KaG0uqG<F1ubYyT8_jSh)E z6OK|5Roqv%=nL=V^xTs{9<XX2Zl_;Al+dIPa%OKSsy5&ch&aK@{&udH7EMn)mol42 z)AMqOds`ud?3uSh>ClA%C5vZ1ou>Hw;&MKtuN~N@3)HVJ*actN+b;b~>lKQpx4rS) zW0oVQO{;|vztg8i(P4mPnJHXly9lF<J)V5~S<f`0Gn-Tc)@tt334#pcnYkF9x>#O+ z=FxL`tJPT9Lid5WVzw^5_*)E?&vH3&o=S1|HLXo4m0XwX{T&yPMn~eS+AL;MR^5wz zG&Io4rlz;0vY?d!`(pHP2zC_$U)z3AL3Nu|WW0qC<bVf$;=>KQL7Mib_qN`Gsd{qI zbz}4VmG;SN+&g!u7MwzSl>c8qp&f94)s4o9Hyp<S<H1||wUMYt`dA$L5s^_TEC*hQ z#xC6J%_s*~)VMOc<;IM9>H`b=kJgd88Ev-H0z7|X@`SM=q7L$3nU1@$u7DOn#(vrn z5B$353<$afKvg40=Bt)Y0FcF_sdfm?LG8#vE2T@@aq&x~6wjV`Lv|LnYi0mo@Fw|S zoNY_-XL{`e!Ojb0sXNqHAH6s)sfPn-sqR;NU@Y9LV>g`nW~b)1!;x_i4+Im3Ln*DY zcb=Gq5$46=dq;jA(+dSG$5`ER?VIW4mK}>?$R1S|yBT>PhJPk=e6-PX7~|YdMWbm< zQzRRt8EwBnp>ii&mX%o1dYo!hMh6CY)S~b`6K_hI0<z`_pN7;G2D8A38|m?78;TQk za#@F^R;)D{Id%^8(KP6HlI5#k?Eb>YnX=vJV8vCqYc2K#{nCyFD9M#H2&vg?1t|;z z%9HG>>v>#(`z;Lb+scIxX#GE*jfJD7<55ftzZ-?)6+=br;^0i+dxh$zYgFiJyxjx1 zO+Ts#D|b!)nNFAq7b2IVD3{9+>hn~W)%kUCp>O$KYLEN!9r@}kix9uyLl;pk9E&aL zziU+0QA+^&FRflnoOHBod6J8!86cQq15}=j5XZGc$tmraQ&=ON??P)XjEpev=$a7y zX72YzJ5!acO%l)V-`jgEo1$aCv3pYzH^yBOV-uoLBc<K%()^enE;Nkrtl)mt#ahu; zehi2#t-Mrb2n>EwPSOu1&yU01oZD00DxJ4xbKC@RTpfzFVzYbA2GzdAE1-^j)!VK= z(#!I&N%I<&BrpQ^sBXa5EU>NJMeM=~r>=B>7K2(D5zZj`N5Y#wPPsqql4u=Um^VIi zM_bP*?89f*Zrjl*-b=yudFy+Ga}cU{cFVGp9v-sI1U!qoG;Cyv2G?>+4>E0|AAoe< z_D*O}LoD{PW7)#x{c6BP(75}GWOR(SbJiApv$?%+F_%8VHE%qtOcfMOK1FwX*go_J z2G>ACtyx$03hL8?|E|PlNVT@`({mgF#ZiUA7N`pFGnvRBxYDP3WpOaWKLcvGy5ymL zI+(Uc1PX*fXCd@RtcgiFchFnuIE?k*AnZbFaG;44YZFd4MDZj^WgD^?GELG<ASS2U z*-<#UWR2NT6}P7QnZ+z40`Fq3h^$k%Y@QE4L$2qxRT9Z6S#p!uNPoZR8hZW!Yc0=% zRZG`p+BN8?<jM5@wO)Nfo;HDwi=3F<a5F&Ff@LmaVw|hCM@LPFKMqa8uh~Dtz!JwK zQxAL9$F!v5Q*l^huxRW3*MIb5=LF1%d?)>Ze$-++_?ejxcZ?5{uzeVytWN}SP)kup zOYfgwzFN%1SGEBn_Lqhwv1c1il-?FSu#5ct?YShtmHzPi>o%zW_l@bak*Ru9f*aLm z5yq@2>f#ewHw=i1vW9h~8W%UJT8@<E)Hx<9$S2zYnjlT^YP1{WeL(h&8f%S1;+|2Z zqC$YXn)8%wp&RM<MVyANzOypcFg@V;B@^J!fVPI||J9v{r-ie4u!JOjgB|)jS52Ah z@o8X2)8MTm30-J<B&*OUI5tg{6U{Y`1HNKFIA|PutM|mr3X{O4x(76q-uppZC9F`N z<X_=Jp}V#=Z(b;kD9yjiC5gX%66L1E`%2}r!+*td^XDnf7azBNn6|xI@Ll-FOnN~J z!N&3&Zxln}Q@F644843JiyhQ;Jl^%)t&aJ;LtC(YpxGFX&io}nLu04iwB>rEGIv>8 zY(-7y)&=L*@F?N&Y+W^Z5Eb7NQgTAstQflH9%`FAcD&`qG_aO*(zLaHW#jpqx^-mM z06nH#mst;>V{^#~kfSE-TZM%?;Wj9!QK|ZzTnl^Yty|kyi#J^}X(-`~>gK&X9`{9< zSX1F}+M?QvY(4Yv#Y)Qb`6+huT$Z;|LqqyGTOhtJ{DU`Yuv9#*V!MI(LmvvUS!ysR zf2qwh(g9)E=0E-Dv-Hl_ceg55spe32tPStea7^0j;>(IIE;yW0QPRA2?%VWDLJYZ- z27wykQp@-+I;U_?hu~N08KwHiix6!7Ogg1QT#><@WKw1mRsCkEH8IJl%tEPRKP{Du zTwy|&j0OA0w@O!KeK!2$;2}XAIS-JuTHAvS$iEd9FieNkSj7!r{q~B0C@<~9hyicJ z?Xq5X_Bqca8%11`vD6c83o1o{HFTZAc=~m14UeQxf>cb&gFi#gPJLpldwn94;aM!p zwv5f4$5`zmK9ld)-DN7Y6mwMqG|QgahPAm64gBX~VNJ)-YB10Z6a7#P*)-+d!lfSm zyqqDstfFa#<}zSW90hjAiYWXcCQ|La(+j^hYPIb!D+#2wSOM+yoC{h}L)|oIk1rE+ zZm`b418daC&aHGm*>B^5!b$9MQi-i_wQaiV_L=>n<@BD1_Erf@7WJe=V{4C51Gkz( z@oj*d*i4Q1+Lt4xsNGW4`z?MP)lr1TLGAIvQXconRUL5HL6Gb8=b*y%+kR|6g%WJv z&Tns{vt@CiiewPunw7rjkOj}3gfJQGQsVlq5r;ZPSxr&Us>)c4b)uWH8+r_|5rO9| zmk7E%Mb5y%2;Z(CXbast+FdQ3^mL7KA3QU!0($YBRF0MP#4<f@$`{pNYIos!LZiL9 zsgKzi9)A4HeIU6{^~ab_KT?A3!VUQZ^un#~v*xKY1-RNup*?co_aZd)fnAJ7GnNo^ zIr)%MPIUBl36F4*>sFj#rFkp=9_bP`;jGsq&P!joY0xt>Rj~#Jx0Kaf@qB|40@9`B zTp=cmB`|)*`vsFkgfMMVeR74EnTZe_40&BwNT4RT$-|P~CVYw{0rbH|mZwqJR_|#~ zA3&@pcDzPA>tQ9!;ES6NzaS(-f=n-e=Lc$rw5NPh198?)U4Yg_fmddgE)f0x#QF~P z8zRVGmuOl~2n-#278dyiH^^+gGp6t-@A_Ylh<T!8awFPs%GE2)O#V)S`zr4RukY8{ z2mg982TAkB-NZ@tno5KQVlr+$oT&%1=X>|%fCkk}V^%vYSWNJ_7WgC>O+f*<9H`23 zvayZ&*^A3r?r(tQ<c!ud%-aJR3u&(s_KHZgOb=@iymyd-J>cEn>|Xt62Z`Yuxk{Zr ziDs(OY(R$?f@9}CP`kXO2$g&FlJR%era1oI3^$(dG<EmygaT^zd=c(+uFMM`*=q3& zFBGv`@18L`t=;aq9IVM<V7tKj?&;%NmqeX6a%J<#UvD`Cw6<CHY5NX=i=R(c#{xOk zKM?=b57^rfq09bHfdUHvVE&icXlr0&;$&}NWa9Kc4S}ju+yy!6_K6yy8q%CYLdChQ zEn6Xd#XpWpMMY;;EF#K5Fg!S@JM-HMpTEuJRAG0NX%cA9!~0B7A-I{32>Yd{9mHZe z;%J$(K!vus*QU%bm1KU+%0b)Ki{@|zY-cUGwLQ{g0|_{}uzdw70sJONpf6J)R86TL zk5=JZrhY!WcJGKhAiuO9CJec@P1gqTir@Am;8@w5V*-JTd|%l}N$~NqVbKI8hgf)= z`hSLycAW()@Ud``1X5%P7!FRS9T#cnlG@SHMy>T_hfrW-g#{QAl(iJxUx|}@ki|HX z<fOu3NC`HWI+(!8vy)0l8r4-mqghNmr7|N}O=8UnGSRyORK&n<oe^yvW^N6+wwkF- zJG4*|403wye`V6)>=5S9?js|f`ag<B>`S1d^o_9?Yhi&VLXvU>Vn>D=<N8ExA6-`M zLuo)}DVN-F8Agf-d@X0>=J3VmHqUgVtz%C2s*V2SOqG|IHs6E&hGfejK-ZMH`{P(Q zOF)Xb_yL+wDWqYp&f|yX!=&!b5Khd#B!-&}E;|-zSAvg#G3L_Mmh1>auhJ(0%Kuot z3K+~SMwr0PEf8=E|C}q3bB1%HnfPg$i08Xo7K8Te-9j;UIp=sa)T<Pa&ys=qOEfbH zcLK_QnJR`_V%PrCGernbQAXmo2AL?6o4GgP-PkRgkI;hC3`;u(DS=oRi-;31>Ei{r z!_6yk&r1}P1aVLAeV6hD1o~YdO~H4uS2@;gcH?W>rNqAk?eG|&sHyNc*au<!wIY^n z74nsfq__Lx{Sdok`a49hq4)zLlM5g7B!^p|V;P<CgbH=W0jAHTB4RQJV$j?^37jKN ziGxH6hRsCaS)XpY!9;VaHtKP@vS$}0T`lYSA5#cqyT9^eJTl1(QqA3h_z8h-9p!h{ zH8KOpFpjv$N;xDRiF0llsk}3P|8KOivBI-8A?RFP5a+(ntISGWIlM>N(i0If`5UGE z-qNa*b^KuX7tX%EpvXQ1EuV`pVk;X3NgWk99cb2}d5erhO)-jo*jjQEM~eq&GlB~r zQ)k~2=n6$0Ium$JKpVOVJW!6bXIn%@o3$ICPt=s_Oik5R7rPp>*EH@oQW}&>2-SL_ z5PtqC_+Bq;&&1GEjYCRuNx--+Iiqva<vmJ-H3CDGF0;-Ky}ufDZY+$71<u2{gY;b^ zSdTiL%%kP8S(Nem+;1H?WH=3p87KdK`M`Im|Hsxj1&I<ZYr1XQHg?;#ZQHhO+qP|Y z@3!sTwr$<M^EBtoR7Ad4#)?{%k@@HUX%bcr5*&=XvP^->wyHF^KC3-tTeY*U9BM`V zkrYHzTE(ULbt&wCiU@E=a!7fJHgyqe@9Lu7@DDPv(0-Gx*N?lbrwSnf%#pZf5ov3C z+u=dOXoUul(<6A059xhX=*3j1Y@<ijt9j}C%WpFQw4tgCiC$ll%4paHdqjL(9dw<( zx}RrIv#>%Nka)Bz{OV`nLx($6%$%l}d32W!PX6^SLKq?V#dr1nUz>0*Ei(ZJv;Y9g z*#H38|9J=fUO!d_W+r+Tw#Fvzzt_;RkCoe|XydNi7Zi*O4}djNBMLcJQMxORmaI2f zLr?2N`tRn6FtbE7zds=VcyrRnW*goYNM>^4)b;uiM+9YISLg4etD}Pf16IdYrw3w@ z0ji-JWr1D2aAv}ZE}*KDCX!<6!GRA0=Jn>NvTQSFjrG*Buwz-!dz50^uHNQR@Kafu zR;c2qQylZUAMkFKz#2u=H%FkU(59kde!6O*1BCQ`W1%v0|3+1Vtzd<5)kwdyslrI> zsBjLr>H<hivQ+k<MeC~(Rl2FT<f3vjeQt?4wQ`hv3yH$((rNkpI3?Vr%h0>z?ZT0_ zR9La{q<s2kUKb#*Y$uodYqSb~TPC;1{lgZ6dortahR$DFg#)J7_wIf?%Wp!=M1^jV z=!b%=s#ymnsIAV|{oyefAE`X)o~o|O5z+|<tf_m7ECaL#6HJB^If+pR>g`E#2{u-! zXVa2#5_%wR2LMq22y>|^316<)>q+z1LS~xn9$R4sAi|@TovgMo*GyrWOD;XJbAajT zBSK`?F{5=c#ByQ9VjabT`n96K&anrfP=4C?FQ2E(5cqB`qlRiry1A&L&WZ_~6%Qgi zEa5~?4^Q^)1Djm$+xOv7mp+Vlwsh4IlsNM8Uf+;6Z>+4CoahfVu1`1L`v*zKOInlH zonOe^cAK4SuG_{Sp2m{lb8iP%=#T8+!1}@Iqu$=G0)Wr%9)eb1_>1n(!&B7w%Pg;3 z*J9(+-XJqS!2zH%?xoSF*zFaew}*Q?ucuzG-E~h~zQW^c`}C$@G&lq#+nhh%NCC)@ zyzI}@>*e;x=;#?rhv7e(%8PNvkI%X@$0w82*?=p9K>8+UX0DIN^?5sb9PZKr0LAW? z!K@oHy8x>`K8FU_0Gb!1(uwu5qCLAi2a1!lInC>w&(G__qfPWW-QJMgpkkQ|<8Ow1 zKRRB#`80yJ^t#>6&jSJrRgrDcyX|e`M6_XJpd48XvOTL*QMw6fZ+`|s!-vX@sY*{E zFH}Fn?e2c^qzfEjk;Txd69Zi!_-f1f`{#0VvHn3OjI*n%vLAL2HjkJ659GBZ`u)9= zTdOW@)bPf=iXb^OKba-GbZK8`UAqktl~{FS9B)k<vdPCCm9I^GJJ>=CAoDcZexmeo zm^SB0=o-z~LAgHCJYVSL!7c(FWEOtinM!wahL<&OP{}J3L$Wp#8`oQsniGX4q{Y{C zH_x6ux*@c=zCTy6vq%YC@=SLIRH`<&Mw->2HuD5FKn4Ng52DVl4#j!<X19%&LCgRv zm_W?t5QSX)7ECYznIV?`MR?$D=K}WR1Sp{mp(x<ZO(9HjW)Z~Nk{nWNx_0iih?S{( zmc$Vl2kG;Zl_)}=`1~P#YATC|=phjNn&AKg`M$*bA}+L+>WrTZ1$;y!5&ip}fcmfK zL&(iU?JGZ+qP#}*5fn|woOb96;lLpc1%-8x(icrdwn8k;!e@`}&h9@`9#jgD6<+1| z5rT2^{km2;3Zhl8ms#_B=s5}Qo|e_~KkRrs?3*DI=zZv@Zk<KW89sNrXiC2IE;wKg zRTfT498X0bezxagn`#5161MHU58|z0utJ;K5={`_N#QjJUH}$ae;_{xu+cUZnoK(p ziVsAl`^UBYMg7UcdFes;50<g(5zn1_jXi|(U#cZKjFS7Rt5k&{Bqok-38Ll1!ps`> z?eJ(Z2BX*K06$NNC`GUnNyqK?DjEp~4+z%aeZSvMcJnUIj&#Gy+pvGeqVcc81ZJFh zT>Uv7hVW5>ebk=@+xsXgJGA3tT?IJdf%A<sOKdpF5DQ6X_?#4s+k+{L(qRH@f<c#u z`v!7t16={98m3O5>AgY4^I7C6QW%j)<Ip|mtmKtY4A|im`$yW!ODSU~#hLg+I)|^Y z1+lrPEGrdcuv<q*0&MUa4C9m!*3e8J$F}5IQ*~)CEnz?D8xWNl>#ClpIHRXw{3`~y z5Hl#s3@<Sj;Ie00uch1j#xl*%p_O835BR!nAt<3M6@!$kU`dqtI5Z7;#j?gyLn||k z%_x2GviDs7BC7T41kzMs1B5YLP1zT_!Lc#|UjgS1lM(2&hKixTdF#|*H@OPu)KWTF ze$Yc!UT!Kd^KOP*KNYq^>bQcAT!IRpcMK+zt`RQLjAub=*80Pmf0YjsS(2G?og6z> zWp1d?&M$+xguw7y^O~Yu=KUL4P)xYOVVka=j&jt5MoF#WtUK=x2@wQ@x!54dDR?4N zn9;JQV`si~Rq8E@63CHxpMZ{0Q6=Wdn(9J;l8k3-rfARVwz8MvFu<7HHH(0Zs5p?L zZr0Ig7#;Fav&**820ax?ZHJRV*xSZR%mRA0=8`d{qm3+}Z7g?i$6>0IGd90zaDDf} z`R8Qm<?1DQ_0OU8nv3*JK@-`egPJieTsa|dEEvWWO4LU82M;m>45~9R0ZFB<euc#0 zfCNiu4qGKD9<+eMfKTc4h5`LH*-pP#r&&c>>?3^(&<g+AkgZvcR7mlGN9eDeFy(nO zs(_|G0dQzH5-#RHkY$+DBS#vdp=<DVy?qRg-yw>3EOs0u%(n@3YJkSLObcA5NK2?o zR^W*Y!pv+AhUx;LqqlD?b!rg{uo6H<^54MU3bC&l^|UBEMoNBf_amaOykdOoxy*Eo zpcicsh1=S^9)(I9k_kjPdK;*%<wzFX(InH~S^!dr<bedESYzE^ir@Crz%l(FK1@&m zKp)Q!y{0clz>0dLXJ*;3KU?4BXDiS;abQPgr1*gLg7=LqS@@Lv7{!V@Qf3UOdIb`! zvY*c<J#)G82!Sln98A9z#!iN0Poo@~K$B)r>FL>xC@m{S;TsN`s&W5ZVm85WeO0@l zmwHg82*eUiCKSD4Fj(ZVkXv~G6GsRsgvGep2cU(4I+<(Jz@N|<J=;J>Sml|rPVi5k z03sZTc(!N|hmB5}dnpBL6xWny<wbr`2MMAR+JzF(<}9?4&@$>ZWE1Gg@Jh^7^N4h{ zi?_g$__@Q!C@A#~-L!z%sDnDP1xiTvI`e8kFg5TYvlvjRrtHS~lwGNdGa$@dE@9Y= zu|vkaHuiO=Y`z+vVss{`7U<x}C2?FJz~X32!mCG4ZJTYgo1~X@zkrLT#02=EF#kL} z+`Qq|C-AJaVvvgm7*&07qkbfY#3ID}By_;b^VpK+G8e*ux<$u7g@XqESkYin^B`v( z1Z-Jqt-&E3<Uh5Jkav&nE@&^l+5_2~sp$!m$5q5R)2p&_r1@T@L5diRncg7<jbwk7 zfQU!VcJj`hLmbg(;q7D6H7O_;6J<FRlhLNJFw(V!51HaSFA7a8CSV~@){imTOgC5@ z?X8=W(eh&rd_+!=qY=LR$M)^06~x>YJ>d*bueT<xKG9wRgK{u90?wWyU#wAS4S+Sa zv%Od2BKe|!f8M8;*B_;5B7B^_u5_iNcf{19y>gl)6#PB}YWv@#)4Y>>Ach&TS@h{E z7c`q7=q@gl{z7afS-ucxyGH1zX24$nS#{Z{g)Bu$NW8@2QIP$8)@wSt0qjhZFF2Wi zRKxD|0H{H;V9kT4<fw}nAWQff-#A&>@E#8Kcl}LvkAb^0@#Hur03?zK(AwK$Sg3q9 zoMKS<dPW@sGALS6%K6&n!q~KnDj?Vtgmm$p75*iOXoK{zxI)~@O@w8U`hb>X;zhn! zUiVl&+^_Vnz<;%HuWffDpDE|DX3rTJY8VkawtM%faS-_r+~;=<y4)XWsoq!HVe)hD z!px9NpbFF}{Nc!EjsHMM2+oxP@cvA)W8ikGSGj{v*CJ9BTiArI5xQo+7vcJOZg?#M zRhREts1%lZb|NfFDRk{0LY|7unJU>LNq4|T!R^|tQ5REb9Lz3M5O69o8B46srl2;H z2agqsqA=Bi@Zald9x4kRoNzD;efi7G@d`CeJ?G{Fmk(`Dt{@nju(jhl;n`1$GkXEE z#TR^?=m$d-^8xB_TBhzJ9>gXLbZ9{{dDGq!$j_wy@CyMKQ$%_+z!KI+yIcVDv;zn^ zxf=_0z5qEB?NzOi2o3?SBHFH?>&N;d0vZRC8vgyo2_nlej<x|PJBl7MM#f^cQLJ;5 zM}g2r<MsK5rzcoFlxq}+_5J;cjm6vL%lnG?=6L^v{ycdYEYeF`Ke=PSd_>1r-R+3D zoVVc2+`G%;bc%*eAy4X_+8h^N(14Es7yP$L#M~<3jNGr|cf*z-=Ma>#&$&Qr)K-B7 zI#_;Rr5qzHPEUoVV)}|-q>5pXgO-0F4U(%0d<p~P$}?<lLqhurYctf|r191t8PwU? zhdQ@~H#R!w$!5PCH?GNj1!r9WPCBYj7GVrVI@9f-g)>e(ZHpz!8>Ud$<wmQKdbG$I zd7u@6)>8`k7=(-95R^q4g7fcDFC5-G6?fSEc-OukfBkLJ6pln0K9CC+?uw{TUu13; z!trB`voVn+I_7T31;){O{BL(g=`M$M6tto-Y}f*A$SV83mL01Zq(?3YiU&4KMyn3X zC^&f4G?iSXr|;Y$y?_G%mWu+54O8sjuDyCAUb)5b;m#>2!Xhkvl;fu9Vv9(I36*+? z7=tmve$Cyd$Y{ivyyey=J(f&<w}&rXdUgzuveB{PcQtBt4+PByhQMETl}PB-9L(!u z)`vS8#Zb#tgR>>M^y9aaJkYYsqD1hk3MYYi%-ImCgrfW<Blh2bMO9>B6eS$aS2b!F z3JeXx9L;33*Rg7k%nBP3-J*lh1T}b&qUj=B1tX&kNWfPIMlYh^vcNgh6l2wX$S+_y z@BP9yfuncg+Tf$y$C$jn*SC)(Beo{sg9D{`=HvwdUOyFu=6rt{L|k6_*yv^XME_`N zjOLjE3(TYx1bip&hqOm__xG2NuvS+d0XP4Bx%M=A+2qW*m<>}LFZI$a=mLSDCKGBi zguJm5kF!0V%V_JW&g){ex(~|F8<=)~X>=?0U~@)CA~hvU)>M!M11%r>b`x*<S1yQs zN5UfXTf0LJq!=$UhNsi4AtZ~x(C;#pQt&HUbB<&w5m8UvSlnezO3q!eL0r@REl;^J z#G<$$r82&so4V9m2<`22(c?{pxOpbsgPCh$0*4LNRD-M(^Q@v?e{x!_q8S18Zd}rA z*-$;hJv#aemDGY~D$Q?2<vUA7va|w5BdRSUKR~5m`1)I+%N_hhha8tR?}d)VEa0Q> zKj;a(%K}6?7WMN_Ymn1JY=lAN!*=`{E{pW7h4VNZ$^@?4nfik)lVLVx<1Rxzg31&u zI8YIxA#xTnyg#nDtR^(~fk!j~;V?H~;ji&MRfEsojbWp-S~<c>+$V+t{D0XF!+kk( z&8NLzIE7*uVAVSSGeD~FBzBD8H@wN$8|7QoAY>gO4URWl+a8RxRP-c9sqWd3Qu7w^ z6#bcsI3ONfNfE|mV0)4AXq1&c<|7gVre6sy6$Y?tqC8d$h1^_o1l*h$2NtE$IncaC zBI(3V)|&dL^r3+lC{BYLoM%uOS~Zq>t(V~B*@2zn47X68CIM7+pqM+%R{F~F>mD9! zHx!!&y6`NRxS_IHy}Qm{9Mqfz**NNIzBr1enfSFN3?dB1{rpAT`d_^C!K*O(zUz4P zXCT?PK?_R<x$!E4W>sB4=&U4SU%R@Zb8un#fM!P~9V7U5V;s54%`CO{;X<L=n&?Jr z#{*yBI-4OBM=;X2)%m#%nVy*mS790)Ab{KcZTZpQli7-!Vo!uyf4vHUwicY<^l-Tp zkByM0CG*lpgP+6iNhI(jby%r;EI0531ZJ`M0Ryb0g2?AeWTR&C&q1(Tca;`q_`OYu zQpf(xVYm<kj<)7r9kMYl5inxKNti=0;w3IMIX5@bev(g>4F18ZDl~(&CftS-seKbT zH=K;jF0s*kYzLUXTGIiODg|UDtPv?<3qx8>1`o3l^s=nP&yB-AA=*GBVdswO(d{f! zS#!H0Iqao-lYYI3;j93qjd8_=g-V6?q}Bt%Bf@CsnYRGRyCbqoGIX+UF4v=(^lRjU z+GM87WcSd6)5eV<xg<EB#1xh0!s?}yo3;%&Zfyyh3?q90Sv+Kqo}C<<kCg~>3&?Rm z4A`dt`PJ{cGPF~)^EgUggKcTsy?=y1<KVt8%iIt?-CZ@-mKKHPfYc%uB5PtUykp;W z_FnP>sXFxv6&GZvcE`jg#y*o=c@w1LW?J@s&BPczmY+Xj1w@oqy?KE08>SF5Q?oe_ zEjqi}QZ_#jszn#UZz038g!8h+FAX}0`T9#9l!pO>+Nv-jiQil59^;EVo78Kjb=8oN zAjzdF-jOT*y(hu>s#3)NP;=@oPO?8}zX>NjXI?@&QeExhUi4*is)xj_!AbrGyKq1K zh3DqRSMzKBTZyPEku?VItPyw2mmVZ`%l59kiBBLd_U!d$dHWvkD%+9W&h7So*(c3G z)f|6Vf!hDOThA2@T1RskqmL$nTVXZ4`}kr)@GvEpkkx6Frx7u3Dm0=)mK?S-7HoXw zu)>(9f}i`fjd{rwptHY!Rm*4>;K!jASQwsK)7L2+l1~>j9(4a<2Bs$K)pipu0yP+` zb^tPlv<BEuN!cES2vgX+MgRJ!<sBJ(;lb?~y0XP|3Bhxz2LKv3Ji?k&QqJXisZTF2 zEip=e$u-VQG;xs6q>ajIVoA05M`b{*k?d(cI{Qle8w&P2KVU1W-6HV*&xa6s=ymAL z*2Wopc%|R0X;gux2RO1LvB-M$-4O2VuE%@KMC_fs5NVP2Ob-qZ#+ddXSifPgjgLY& z;&9g-ihznflk<TVQSr4(u7mk7v4*{XqytZaK<;MteU^ar%-*3lf|V?GQudA1R2uM0 zGP@36z4NOjGL{!^fX9J}+TSMkSA~Zz@Z&>XU77C1=xb)e?Ht7_%oomg9p%rtMx%d{ zdgev)Vs=C$k@m+MTg&IFMhn$+oa5YQ_e4@bM-KY7Y}*#kzx4!t&_EFvtS;M-1r4ef ze9&y@fC9Jk>KYQXPjid;X)ZnDvHppxwBZzKKNp4@R>lxu79LvozitR&)<2kd=ar9C zIEPZil$@rFArA&|W0N)-f9Kio&#~}FFs3v;njPDcVujkQvzrhx$vX)HBi<lm!df^> znc>?=x0f%t-K$!uXYr3L71AN}gbRTVylp%q5}qzV5g1*^QM^<|Meb;iEOYSoSyhcr zlem2R=DL=A{0DftkSW}1VD=y>Z)-^&D7aw8*X92Vmy(O+5=;D1l-4O1&$GM+bS$uU zkcIan-+2BC_@UqCEBLF8jwuSAaG0GA@JZ-Q3sBEUbw)mpf?Pv4aB?~eS)UP45wb;@ z($-^NTR{`TifP)G^_M<;zqX=VPD{#kAIWg0rb=^nK)V!4m2rMoROMl_f$EQxD*Eno zs*mnak!rn4l;D!9Y&RJA2)o6aZT8xpeV8z7NHSA^k1SU+`-P3)@`mLaI=HIq*UBpt z#Ar2A%sA4nd=!(-Gd8FE+vzOt4mQ#*d&1*`(o7)}>4Nm_l+J>t=?YBE(vxfJMq*vj zf;~mS^0eXFGH(J0kQT%~UJSf%vW7T@ETAM}v}sQ<Xc9T_`G|m9QRSU;q|mBic8#Zi z&ZqxJ80Oq=@rwZRn_YLdOgeCD4hq#8Wb|_y?y~5WS6LBN)Vo6;gF3OLYjXC0RLd7* zC|AH5$A0eIbA1t4`Sm{*zeJM(j&JYUR@Mo`?ay@gST8->Ud5TjqjYm?xcb9*wUXzG zQ=FqoBg*@EQ}<^<F<6TLGm<QQ`cX5~+U!#$>0A|8plD~pI#oRUPynd?GGJ7%?N<Po z{R<RVZn$4?JoA=sD|MJ`*OR_I;lJhkoR(byOtR53_h*6QT8@Cg2;C3Jvq-IvhMhoA zm^;;em)KB_`l#|{1G>40#BYUvt6XZd1Jy^27vk=u6(4UA=D>(<b0rtnHLfv+bjcvz zt47R%Gq?`<HAzhRM)en$8VbgzkKtTULx+hJ-$gXc`A+^G*WWJce?(G&JtAXF6kk}L z{{%_N7S}~1gjgX0y%;^SXRd{a8we4(PT9<4Goad06s>H0;}~w_FpEpyhcIx6D=&vu z4iPPkC*w>PDd90_mfm-!GJ>UgELMY*XIoP<YO!)-%?<Vjd!Mh#@hAs{Gf7Of#~D#u z#vU}P^bX5EY0R7osasbGH$ep%vA}YRhVfiF-nn7O6zk6i<fyvF@`#7#I@LWC_~;2p z5}@plxF`9{UH0)8{e1qbqzOzLI!)Y(4}lcrH$ijEl*(5p78VjZkV%1NxR*VLkECpb ztgdx>l8i7HSI7+yt|Pn4cQ!~d6!1kk!&{ct4H)os1@M2T+=(aNr2wy{UN|{9j3cfj zj==FB0df6njIlN^vmi}DuL|T9n{N`SN4937a8N>G&pq%a1I+&obwiVrr__vT&puk^ z9cp;d`WMBxyS)waHjrMkol;ld@?N^WfEpdc1a&treK`nn5|o5#TrQ)=%8W>Yt$HHf zjo{>;WUA$%2sP$vt*NP`wfR1RtZT7EkBphSzy2~=(kdM4=E!&}CX&(~3sx6Jj8Aq~ zf@9#D|2=U`s>xJ9^o3(*KenvK0(OAqw!K}{wZC@c`cAV4O)Vp~j1HsIdM+^(H&yhL z(L~#&F%Rvw3m6ac7i02dMdM7MC8v(iq_s?yS;ADF&Gzi>?vvNSG5|?T`D?frr==vM zhJ8nYTuh%na2QGsn&>?dWkT6%n2<A-ZN+;%xXhsXFfk6pT9C8Tbj-K$VX$`tk6-q* zfZLx5$g87pU)CTyF~v^hrCuWp4M;%7t$wP{!^AgZ>RI?8zq%~d9csHa!d-E7ydAT2 z1125peyz013!2|WBIH%anMoou*f4?ep-@SfhNfw+oGoVg#@UaK5>CpNlUJ8)9Z|#Z zcVnut+kNeTg6>M1AIE-U{ce<HOGTZ^*5=9ek@FEKeXd?2_>5{hsc)8x?vl+wbNQ(i zP#U9vNe|mSH(LwSj}!d}Xd0Ggucl4ZH_II^q-GRz=F%~W(>QyQi+}RF-07(9D$p{u zt`s-)Sg86H)MsuD^E7eDM9-0iSH|^M$%gM-+y7WH3+s&=A~8;1Wd<ADg_vt3wH*&( zZ^)Wtqnnd&Si=!mntDb3YNvoZ<;B%b>dyYqdwOB5bz5pR^UTAEH6sERu6MM~--7ih zha1c78iiDcE)D?4X*yh$IPOBGEu;CY|GHIj++)oOSfP$$5s+jsaYjkD$?=%r7*9a+ z*auN!aGmsbI{qDS=PxQI(|H!sC`V3nY7%%XN1N0SkHALYns?V81hC4Z0EQM{57*zq z&{P@$nYe#&+8hVB9L6H`0Nk#Ft$7g80`5#@Hw)_}9Z3x}r4u#9yh-D5&(82_@h@~S zs`AExhK=<#%7;OwuI&u`?JgfjXul~L-UY#H+&BX-pB7s;H1{eWe<rhGpe-Cmy`zeU z@_;AeW(E(;VJ0I=<V{?Xl1Aqk7QGu!-3I9uR6>+-!Wk64Z=Qz~2F2CL+%maG`G@16 z^%=B_H)Tn)49<V>=D$C(w2KBa@C<*uv-_UfM2NcT){5kX))2_v$qhoid*%_l6kQ{6 zJ0l4xlSIBa`QhmbK_uKS;tiEDdNuDl-D|XNa$5>^9t=$c1k`Q578=3630OBQ-Wq`q z+cd42bN$kiY|ZufIz`;|WKtRz-3Ps5C5kO-qeRrnhMo&0wfZ^1#DDIC^>Uqo)HcC; z0%+PYD`P@A=yzJcek26#$p6AgFuH4;Aw+N^hip0PET^?zkg5=MfmBn=7e3~TD6Tp} zV)y};Xwdf)f(5nj?C4&}dh7UXCR&X{U0EeFd($n2bKk&XY#1&AiI+sl#k5&>#pYad z33cW8^bG5g%^tgLjL*vI_HlT;A8w5|(E(Tc54Hx4#?{lXM%NSqQYkk7ssKlXhMV;C z<7niEkMD`>*cbtbst6URWJcU1pgOPhLxgFJrWrYp&Kgh^PPK7Jwb^A&_!t_%ppIUr zaXLs_IrP|QX6wsns$rX(ma>W<JO30ggvRScFVZ|bxv1Bl@caxwrBadWpdkn9xSdbH zvby*$)yhAr!ZcMDyGUx>^MDn{cN$a-<m~D4@?4ZOIL>fxNQR;8U5DWY2spzkVRKZK z|9f6!TOC`2?;X8_&G;a77o+V5@9Nj@#GY3ihNh37>nbk-3pTrUPlp<pT3*G%WGGD9 ztHh|)Q<=kpS*JO-^hHo>jy-<?^Hj2p)4;WE8b;eyLnm3ZY~eV6yd8B{9<q(L(Jr)= z$WT>+RxxKAS{rc@KU;LRUWNBI_<Zi1(UOx8{)FLdxdr|J1-+U49w&C$&k;$Xx>*v^ zi9zZ!O1X!c?Z~`4%Xz2yCC<;FWufp5^_RWO{sT%sHnZ!I`Y2LEK(-wQuNpeEC<AMH z|7YA$8J?-lOx@LWi|*EO)bOs<X=ipdXJ{lWOeZ@dsh<kXO>mFbWn|J!V}mA0u7?yC zkS|X!P0PkBKUNHV2?&M;?wlFOwn|cY*ol}&V`^(d_4y}|g3VJUKUWo;GDfxm*oyHo zCoedc(qBK*0F)x0x8A<|@Cgv&!F^8p!h5;0(OW&CH7j65vLs!;Ap)$abaY?`?#I{I zq}OV)q$aycKr+;Y(QD1n(=<oyk#6T2{Jph0v5JhML2<k9y(EpUdO>5v6*OHqjrI&T z19@z_W<ytgyH~d39ruOOuI(KS-25TU7J`kDE0oERVX<Ta#K+-!K9i;CClQ@$K3tFC zZ0n@C_6TcoaoY`_c>}XWb%(`216MRmM-X;NM|;=bqYGo#H97p%@XGlugSxm%KC458 zwkbh$2a$p&&uG?zDL+Vj(@p$tj?G!Xy^-rsIQ0x%l6=e|47qu25l!N+hg?)7UFjxT zY9YC|6-GGpUvsua^6p-JmX#S*pLcmv3LTi+3*A~ekqardXgaLEnPDLe>&~q#H4ky+ zU{Tey^%XRxTJ@IgIeDhF9veWM&rgZU%Gu{j8$r-hr!zfyY9Cvv{cJg6Nm-^sN;-zi z?I@7f)a42F#lj^bf3bK@V+wOFNlo>mfAz_5xO>r+DO!BOafK$?ETP^;$<dkH`v|Az zt1KodqDL;q?CFA9{fLb`lz%pnJ0V<wHmndcVDSHZFI06PWk}%)eN3y4L)YHk|4y6D zn{-^LHWbjLFvjkg%XagGEqG2C^KU^-)>Hx|cFlN(2`bvC!?alotTQ$btvp;r#XAX> zIspvEUwXA&#&=g`b0ee}Z@>VAH&=e#W`3Ybl$BEa(jm44v2f4|+b36YZoE;Rn8`N9 z&6#FbEuLFtHeDWYM@YVbmGhOl`6PjFgcG<P3$&ql_0gDv8FkvE1KprYOk@nzPQ!x1 z#^N=mH~A6k`5-^7i_DCXlhqYd#IPn-w;0;qT2F3DZhn9-O<pIAsIlLwbj6F#+uIE= z>x1uFn57OmZO|;`q}vvD{;|)_tQLwlcGgAwDsONM66dZaznxfOJ+F|<YluLLFueR( zl7buF&c3`pEs(D7V@aw9j12|Jk|4JNlhDZ!<+x{u*CaLWavWUD9O}3-uyqj@2DTp@ z5$rQBlJ#22pj)ZCtGzJD0{38*oC`&|a58<ofT)BZ^iZ5tLY;F*Bsg1rL&RQM%U5Mn z;hUXfD7^^(-5q;$*>Jl%Pu}Gp(T+Iz(;c@3_oVN*QYrKNg>KZNxQ0NNTmITmmD)eG zMhA9-QW;0WYd<G3G=|EI>=`FQ+9aou5<iP@GpiYna6+E&%9{Q2$B4cOMA5E#3$NRO zoXcuab#rB8$%avP_oiyCIRqP^wEJn2|0{YPdiXU^qt=>i3=Q}FHV&7=pRxb>^k0{_ zc2d{l5CwyAOlAg&oZG_ddRmH4hcJIrFMS)e%3tR?xmeraN(0R>__La{SJ^2AdsjLP z(7OY+eJXN_n<lSUG)cvM-#Uq%{Fm4sQa|{j+TKa_bEn0U>>0@|-TVspH;>9rweylx z^l_c=H=7WANga-tO}8DtGR3u{j|s4W9$8Q{H>|F<OwWiq8sEp~(X<f&^A&2}2RmSW z20lRK4Di8S@cJ9yeP6IAmJ~=*^l9Ig%`+cGuNHMx_ovc-7*zp(zO)UHRFZTxBP3hK z>@UJ(4e&s!FUq?(&((X9&#UBhQSM6y4H+uXx&^=f^cvhw#zSq{ppR|&458*AK<)g? z2WStO8VC?P;!jOBM}HLsk25gZ6ZFXVH@8$bS2x_mcbe&lsO0TK*)q(QDGD>~1rwyx zN_H7M8hrfB+FTFYqkoPSIur^uY{VCNUZm=P5G@K3Ajen_MF<98Tg8c8<z5v0BW6gu ztza)iP`a(__%<ReVh62~P&~=1UE$v`vZ-(b5SFz<`hbj%>+n<xrD){7k?6yz5(o3a z<qWMWQs;vNNdjdiBm%q!*U6>$flgg7HFOSicJ$RrbwT}jb#GC|{BmfyLH{9R>A=z; zw5^`$#{y`;Fv<5w?dsuH_(UcR|CPS=Zy$_vKxf@!D)B{qUw_?plBBe~4vq8N+sqQR zvTa|}lkK@UT}N}T(u>vK>x{bR=;LTRv=JHIJ1M_!AJ@3xz1W<J^C`oyQ}E`~9Xp7j z+nn5G;POl@Ox-C$x9%dG?AdnNfP<X#t3`|j+D!yRwWZCtKsKXuyA_ZbSkn0oIBWP3 zH^x`vr0^;yFkQ!xjz!kUiYO#xPw6QZ{NE(wPct&(sXmh@Ryo(?+Gsw@ZSL`Tx((kc zK`kex=-2N;OZLo<pZe$UCwyJc^}C<xnV<SN*C|wy4mEsxwCJK0cR2J4wQ(S#Xb`{W z&yI#`Ep<M1-eXiQ%Ca^ZetlH(>9=Y{TFq8POdA_!F5BZZs`&cmCj7PoE{Sg&SRXlJ z4n*~MrtBRnmgKuD@I!7yCX!VVifH!nWV8GY>*gj~9Cr7=HU#_yS?oo@ZFk{wljBwP z^@9Ym{6Vf84X7WiE3sX`ulK!2pVU}WInmkK>*2oK-agsbU(L|u=x(ea+mo+YB^8T- zy|(u6N8>4A*VyWmcFiPIp+sa)KG3im9R!h8g>I;ERH^xpDwSgM9GzQlByey{)?kpU z2l)z?bC?n=7KgXKd)h`KVV)!SL={BBAzva$;kN7Rn2tlLPe%R_SFm~H5OotFIV$&^ z`A1D}0U!OK4m_^)<%DC$k_Pyb)gQM|JTucICOZWaNe0D-qnz8~p#-1+cie9@EN}Ff z*?PgkxF^+GE9t5Zg!oRuxRO*-CDv-z<%$ioIO%I@I#ZYFt!{Hei$Devapz(*dt_T_ zB1c?Z>0GJ?&LtZ?=P7r-v0rmOaoz*(yKeB6{4t#y^a7W`wvwv-$vu$3h$&(l*xmZ1 zA3o*9;iQRtVgRzl0oRnTkEV2T79E}M>vs4t>jb|n&qQtU=m#f^JL=|kIy4we?{xWw zu{e|D5o!!&GFl-V{1H+&fzqH|bt^$2`qq`9ATYN{5bR%<mq7VlhnKrvTi&1Z(_3F@ zHI~k#`T9eUv1m8*FnDsAS&Wpr@Uq$^I6Yd8KrJD3v5MsOvze6PQ6$yB5aOXne2iOQ zNt3<q@!H;Z{H#m}oxl~6a_64Su<-Cy)?<~?ZGi@X4>qu|fI79Z7o4N+Q7Y5AQs6)) zIfBVJddzjORU#vF?amrE68Wm9{IqZsjoq^J%}Bdl%qgiBt5t%|x+JF_DM>(VFetw` zC)JjImLxqc2JMhB^+Eek;1H^?iynpr%>I`ta0K(MFmg)l?Ff|ic8*@;Gl}_%M^t)j zH|Dyh^={w0W-7Bc?#u<gp?H^jvYz8Sy~UkY{#MBL65V+>XQ<G^y*_v(Zvi=;r`9CL z=t(m<ElI#Glq@pNWiCWap&OysSPl%CSahF3ren+=jIEakiqlr<Y*+YT>B1{2S|%u{ zkRO?jDkKN1;P061PA@JEvWa3$-oyld6&*m+E77F*eaQL*GE+t!OV&W$hIM<>5ZkoH zQr;_=al3;<MSi6WAv$U+ae4(hBJw)BqAJcKV%@Cf1}M)9+uzDUkZyG0NQW$aCIo>@ z$rJqM8FDQpb4$1L@Tu9U4pJ+f`lM}S-LqhM4v8|?Q~i(pv=`RlZRsCTm!~dgY5-YS zvfdy<ub?rl>T=x%<I`kl!)jF^*ODc33w?6}y{z;GOv^2<qn;Y7e0v#<m=GH3q*gSN zpCc%1^9>lt&|?;OHS$N!)$4f)KEm<G+Y+;hw5H{Elk47O;u%(~ms$9`00w>Cn)>j# zrCzZBYqrDHp!^M@DpD8SxWXs!@sZ2p{+HC>BcUrg6TQMHl?3$?9X3`;mqo8SScL5a z<n?(<g-VQ~PT2QZiHfP#X_O=6xX*StRtHU>b9z7&r>Ce=d^2%pXXt;CpUKq!Ipw8e z4LyT2xbWYWKr*8Fq|{PC|6~|D4mk97dX1vvCq)Ml;piZG2EZwiYpNdkJg*7xWNW0A zVRIT5#XaC`@Yr8!sJY%R?!xTKKz|)G5#vDH@OiB#Rvu6oRYTo}wKh^+Gf}!L(s`fr z1&7~gzz|J1qe-8Dn^3aM#|U>p|G;qUOiD6`?UlvO=M}yCAnUgM7qcMcc(bdxrJ{1# z<5I2LGt~V8)Xw&4*SAz}>A!rx=C+%L8gTqNmgRtv{??vte_&3Ac8y6kG}tkp#6cr5 z=DJ6cbD^b@95};BmYCC4Gva&ex#cPh!33_crW~hLAQ_133ciu%Udz~=&x{If@)2ud zf?89m_2W*whyg1`Fc#}h8h5COH(tWM-@?5?)ni&!+y$6P?D<1tr^B72H3y$))H&ce zt}0ghZ!<LP;(lR`?IGn#cuEyz@-LT+yUN^|1qirS!TFK&_|Dn@iz8@+ZFA6Dj<x@y zk>bVry4o7dH&BNw+10@OslqNRQG#iURPynmQ>Qe_n_`~8KA%L);>4M*;j79iNXb}q zS(VFL3`S1fCId(&XEksduF@Wi^LA||j*J~4?>-Z1%O224?e@|<JT7}ix6jifKKTvV zjjp%f{dt(1!=bCZL6*k1!NQbt<3>ZwOXg1NQ6C4@hZ|!w%hQg$0bdp4X8ht^gFaj) z<+-xYac_fof(9h>Oo8*^x{R0!?w3u-soN2823roh9iwCIk;k^!O^f{0ZZh>SZ|Ik) z{K<2kw@%`ZeE>IzQ!qbz7}t&Y-J^03*Nr+6{&;8p#sjfw@|?(Liab`rNocTBSzsDz z_0crH+&Pc$pGs>Zoy@gF;r-9^r8q{Ejr)}{%;g+D2rm$GWlR~RtuJKR@3sNr@3e_7 za&51W8_b#N!QJnMF7JW-6W(<plC`3+a(}#W;e5G%aC)Ghy$+`5TYoKLA3Pr-?*fi5 z&^UyD{Us?RBt!-Fp@bvv<)xTLkHghXK4qbcNnry>&}8#b<FVH}_+UY5KN#*yc4bfU zuwT31L4;`K;A9lb*ne+ZUfx{{7CKowtn&UXG0~GUSV}KKcg(>Aj_`+z-<c}wlG;%k zKkcgo%k9Ss-;-=idO_(VyHI7Y@OQuT{g*a8R&`F;|5p?K^c(-RpJMO9#B5||V{hR6 zD-1V@mVp8$gb8`!5J}C60jF@D7eVI<VK)K;;*^Y@+wN7Ngn6b#a_7Sz%@$7hfbIq= z@2>OLyF<yS#PQd~HW@Z^!zYpu<?2%0ZH^sZ<#$a(u^DgPvmwgpxD(n@30bXlF7(>? z2~TrPO<;qxNCD2W5_HTh=Hqhhv4KOk2>355heFO}Sspw901W&8!*+4{b;vNZ`(G{l zH1<c_X6u{V4{A2BwBxz?S!AJ505ulLDlPv*|50N#1RN0UyxDSNabhAa-Plj>&ByQl z(D;c|mI0H!ul(WY%@<MK8cU0{MvZC6cWLak6}9VhCq>AY4x8Y8YwGh$XH{cstyEjS zc?b+xu~ycy3N>%DNkb#COoENq+UqTWhml`hXQ6eJ<n+JCD;uhiO0En@7OhFo(R;xb z9j#<4M8y?F2BxPB+`b_L9yWDbay-ip+R9Dk2()Jn;wuTIdsm%FokGn&S}qhDGB{ro zFWj2md`7p8Q}JyQPS$KLDVOKn)SxsqDtCk)F*kJP;SR%!`ZW|Ob5VQfUHLv!g)c3V zRK3V-O{#d)IENflL@QD78RnYLNTmoYd&y}oq^6W(C4u;_3|Z3)$!R8;fBU^Mx%?Ux zYYsI&Le<_Xzv=bP_sl|22zWhkqO<aTXe@Vy71Ug{T~Qe;t@L-np2vqXOZJ1t5YjMq z;$um>XfIIdmJ?H4!1B<;iww5BdCO*3huEHB?;BCL6k3{*t5&Cgqys_wX-L=-tHOPY zl*4uH^s<}yV}V-&ZysY`6*Fl3L(q=}fb2ZF=Nh%KX*3GLGrp*pd=1VDz%xdOtK49b zY6$5x;)H`=#jx0YV;qLV$)WXk;(A0#jxS=>K2^o{tM|PU96h??O3WqmB3?<@B!iK+ z{rrq91}elQRN8<oyMLh%C-cN*POqG3g;Ol<SX$_)<_mWy2t0Sb!OS?-=0JWpZLfa3 ze@vgg94cORDI&FtPuIg6xQU;zPfwycHzE&+{qt<H(WP&tbj54DxA#erQ_e})k?j2m zTyA-(0Kmz553~TSRB&nsJ1ly7+Ea4?N^aMg{;Bfe5<2Y}F>(!zS)j@Gcar00$=cjw zd>+)8gDZk+8qjm8LkI1wgZXc+_X#b*flLc*j!V{}cxjy>{8cMyCt-u+C2`#WWAssE zFu*6ACBOg}l{d$kG9e~$qSolz!)V~_hnBG*m9C%gsuR}pRX%NR%mHvKO%S_2#HCR4 zvIc=-*Ln<ASBA*B?~j8*u;9{Qkd5*WXjnHNKmf>3C5{f}5t~hKh*nF8n_U<fT#GnY zQ(p82Y?b^SZ?uE#_ood=21y{Wh=9<h?qMXJpk<05xxxtW>Jxk+mkXqW7lG75%L7C4 z4k$+Mpm<QUiBI8RhnE=$;*9lM$R&Ut1p8$dh=sB-OG*sUcwRZ?Z~L!|2mEO$+n`v3 zwn5c2f)mk5BntZHX`%&m-MDLVXBUqyfuan*Ukl)X$PCdW2*(^1XaxmDWt=%8nQSE& z2ZPIwHT5muY<i!_@fB1@ZAU8%schj+PkNuL2QN-6K^B|1{q`44!cxXp5n#L@3e0K~ zwX;2?FYg?SS<=N&PKeoaBG){9=V~aP&uLPB`cf<r9m)^KtNtNlHbHz53DK%Q@EM2u z3E&hZ3CDwfDwgecpw)QXq4}<TKEB$XFJpuu!N7n_ooiz>nf7rEM&=g{ZaYIoChxF@ zg3#NX;-5bSG*U9R%{m{fEu~AjB(U5Beov^(V?R_~BSDZ6WCb>4r_*o}|I!R>u&i@2 zwO$RC#K8wxU*V+6CWg#F(H**ie$frLS`u*l-XJvitnVrVr#zesfaee5_N03ecob$7 zPgN<6u}nql2ROTC18zil>|qN41<Dpq^V0hAG%3UIz6{P4gF2_|+MzHHr6>v^H9?eK z&n8$8?)SCXW(#`G64+=Tq&W;IE{#{Yvj{_@%-M1${)h~3Y-d<)X^`}3U-Dh-lcLZ| zh%G5@ReFrM4fYhL<L0!Zyg+xT2-9zvt^uZ$$Q&{z^w7`oo%?A7A^WteE$Rs86s=p~ zfpDQ0KabJP@FVF0q<T@!`quKN(id+Dm7V+^<`9SOZv?OzL+&p5>9<wTx+A{V!LYd~ zd{AWyB!;bOy02EHT(y0bb0f#$dc`VmPBb)~LBAtxaDvq;c#5}zVR<LAbf#q+0AsAD z_<XwePl=OFdB0w_=kxQ)B-`0j)g%6Fo=%`P-+~~1vg{Vo>R>%^fb`X_5>@(D-4d-N z8v>{PYZA+{WH^o}v@<{hON~JI>s}Z>81g8IVmc24$I$KPC!YI8@|KN41`D46sdt=+ zzJo|e#xzgsd54FuZOwI1*xn~Vw#iW>wUu@{5WCyIWD#sJiDqLxx^2Fdry2?UPtskg zuuek|j>azeU^UKYi3T*JPo7}P@QGXm9s9)&ryE-bJomPD|2>U1*h-(Avu9}TrY-jH ztuD=$Xdziuw)o!GUJ=quPbC1F1e?nJHaLj+y;>yy$o+fq&C3g-F!IVE8x`;hh@o5X z9q%t%5;7v@x!R5t?p07`lNN|e{-;%}YSe-NwV49x!c^k@Ola{%()N$Sg|*03q4pDl zN{0GmfdxPZLOg6_7g=pDa|naRF2?laQyOBGEJO6H(~UA@c}F2jRB+GM$GgnvRiA3I zFZ*fs0}LB-DDV1nm!ry}g$1HAjhRbrB{2&;paX-#Gl)*<X-*wF#=De4eFMKirKLB3 zxDfpEYZ#wbtdu;1yt5wow@{ywCTJq(=1BTLN5wH#-|ovhcr!yRh&b^b>KqS?8ToRa zPf!kc6QVUp)8l464Azg<1}E8|u~WGQfB*7QL>0U=@3x5+?cTDN;2^~tN>94Ki7D#r zmrL82Fw{#8-D4Z<C4U?;b%UuA6XOE+C}iBa%d?H1^n8riw6!Y~27Zpq36k{$?;^l@ z;TeFSH;QObkE-9P*@qZ5l+j^}9~)D-%K7VSbsF`!mOFu_mQI6aS{Fau)?fs{?WST` z<I45A!!PH7Olm#^TX9#8Prbb#<ZDsnB-l@PT=H+JY>D3mO3JA@wp$fD$hwna^>}un z6Y4FPp4%5Z^H)ms@k`zaSct3!QEg2oe4$=!zhc5@RMb5a;kNKbc#-g)fvZ5^qp+7H z?V5&SW4AMRGp5mB%=J%sa720jp4uy1{LQ)2kT;a&d35B&!<1n#BlLvI35OXn48deY z0^35Czgj|lp-k?;^>%4_S6?Xz^~PgyLuM2KW{5@k^&fXm5x^xjUUM3vK-jY%>ZC$P z((ZWr%75}Do@2js<XMLkMrfeh-eR2|a4&ZkZvb59*M2~f^<Hjl9}a|qSB&l~Rt@6T z3%f-KT$azE)u`>i#4jB6j|<xzG(6PwzK+w01l?Z({L5$uuqkNdVVOm_L5q18K|08a zifhujv9_`D(NXMF_?9?5S-7!Z#(8~Ob%GqgXtm5!C;0xzq1f#%SHg5YZeb9Nq(tzb z7+pq-8}n_j$RB)7jqrrIKQ#RvPl4FaA1$)%Tr=Pe^COEXE6qpS*MPV=xT^Fo`j+D` zfq9n1X(dyRcHpEPgb&@Q=WH4?>eFNAInT%u$YBt_a1hB4ARrW(fF>09i7>rk6OR8h zdIkTCs%Bt2drKdYB&SPXhGT<bbF32%5=&8B0A2%=sQu513%g>7FkukkmG*}b_aM-4 zv^QWBmx=Tus~E0cjlSN9%y--sl-{;RaEQE{4g5Y_(MO;t7KT(X_-A=`!dccp(&;3m z7s;^viagxpK^o$X#lYX^kAA{Y@(^cL@EHmD8x~5MuhVVEdGJA!6go1LxUF0qfGVJ@ zpU%2<Y^ih%o{+yVm3kDw5!Nu4u7oZ7El_x@fw5uZ^!BmGv3YFk4~pqGgnOGwq5^vP zg-ioo(rsd}Z(^*H@=HUxn%0Cp!e<bO#7h#=*W224pGI9uD=Zry+PQ22FhGj(Np=li zB`hd5I(gNZ#+5sUP-pCOl?^veQR`|np24`yWBTXB9iKE5Hn=hf8-xA5v1UN#fC_(} zRn$_Sw>3Q9>dMmU>hk(L-@qm(G)YbW#`yKoWIG>79x1>Z$a8tg5Cg(TRzIbSUvZay z;VW%TutcsAuTab%JrN_1+01*#gPsa)t(gi3TK|hII?upI8yO@C83~Pu#DsBzz``M; zVP==qG<QyJKkev(1Q-Mf1rw8q9<Yob!)OMxh{UWJG0xyWg1u;MU?^F_Z7fXLTd!UK zDjnVjuC|T1SQ`UyD5#<Ep*1M0W3T~XqCO$_#Hb~0f0PZR<4(as?R};a-NCE2?3ipv zs^x<iXkXG@qu98m;wK*NycI}qqJ!tf5MtIo&QXESqB(IO#BaIXsuH{72YCHGU8Gju z&we92nOL8#<}fa&4ik6G#i$nN1pQa;XV#^Uj-d)V<3Mj>7M)(+yrHOM^n~ac<5Xwz zMI7@{W}Zaap1RX7+TK1E9ja_IPsUAm1P8&6XPoSd;+?^B@0hX*j*dcf6c%8<uyZ<@ zyKv1bfLSFgN>Zp9rAnomGq~)wu3T1l_2!(JZ0)wmS?aAt2ezMDv<xzFt)rgq@Ya8n z^P}V_k{_Z8qi7@T;ec#&#14q>tzBdvuo^oVAzY7rqH54&uSRR@Q3HE+?_T-4zySzo zlpSvaA*ekSy1T>|**VVvf4d^t9P4yr4f`_K9UY}8kvvhdBJfsLPWEqyZ2z>&TxJIF zQ_K#*ZuMc2tcMzP-+I*J7_v9wiQgRHZL{lq*_mAJio6faCGL<*^^H2XpUP-WZuuHF zn!ovttxOMu{i0fX`46DM0JA=tPNch5-x0Z{7oq4h^T`Ii#t{KPV@99cc6{9Ua+9C- z6eynyg%!>o$^pkg(!Vl#x;%Y-GQJ-llKT2Etw34OW<!vB2E2g|oC1dPU2V6lkBL3z zf4C4%^|nm}KR`a@gd}K{ayFmGHRquBq@LHDQu=9Q(HQ+wdb>QI?oagAsvghRyQp8? z@86$}Ce3b-&X$jotX{i&JwNU#eRX@?zs}Fcm+73GK!paoG-lqtdWxbcKkW*7;XIMD z!5N(?4#OC_z-&=2h>w=WNJYf*2d2f4d9(#U?plhqzTS7T^Ia!JmPdMX+i!$W`poc~ zbiU7s8Gq#Nkw4mbc30(mh}>kxeOiy&h=#DBCM2dHt-yFs)!h;;K0gp*Re-ls1WN|p z4X)L-9bLS21IlQnILjs+kn}c;#9NVoxGy4YmB@G<Lmbxv7FpEJQT3wk!_)e-YzV4~ z`hvi^4#b8E;azluJQ(QCJT0j&J+Bm`oKi#>=o_J~AWsJe89I0Pv(E%9;09{3*C-7x zT__2T0Q_HX^h$M!iivj(R&C{p0ZRbMak#mq?DpiukN#BqixMDZ8-xH~+-U-&xv1?8 zr+-szylQ?EQ8qx?1wOQ*gpPz&<YW2N%86Z(1r6LJ!D25BgG3zKeBKt=RMDFL{8t}h z5edJl=(h*4@f$e5@qdwbos1kU?41cHj7?lA|2W&&Tk}i}K>ekM0o(n^B_db=W5w6s zH8_O}BHRz%tw_%7DAcmrtcbG<na&pcru%`KDC{s^F0hE|oOwRtuyQRsUpuZp-cA%u z8xi5K3BowyKSd(M;UT{og9hB}i*n;pKL|v~UjLw_vLh=SWBNCR?>&IwQijjWrhP_Q z4dY|&aWNOvz<e)4AP%pS%a8LOzdr%PO4c3KazDWk5>ndl8%Ri|_n#&p<xI`JmcL0w z{s!9rFS-AdmXfNy3ry_N(<3yT!{gmNtSj6-3`B#X{4&KKahVmG1wh8cC`M?>{Rbo` zC6=i6{evh)Xep*B#i)Y=RO`KS|NV>(&^Hm%yF09N(DgHZmEpG%k@1S*^Gr{X5|29s zCFb2@s(j4qaZrH&d^<2@>NwwD=yA<2^!UH*0bFb?jO>g}^jw@RtpC@gBt?<O?k_#U z)&sSy0l@$8^^QTB2F<qU+wN)Gwr$(CZQJIwZQC}dZF}0bt?54fof~oQ-aBI7AN9Yg zRz6Q;u9da2xG$Qj0q8tg%_<`yMW@e-L;SfT`RiQ|DLiDZ;K@Mx<?i~eXYpi016-bq zne#YOwRj`GtCJ#<?6%uGcy)pM77q6?9dn#}%J92aySfl3ijSiTCGS`sacmyUqHMgO zuv(U6cP-4um!`3eCA){jc(!tBha;=BYnmkxy#CC<`%3$Qp*qW4Q+~Fj-?>3U_T(Uw ze;`gV0Z;LcdN9&(hsdsm)lFiYGvHToSTIX4|4MwJ8Le7@G>R>J;IlvjM{Jh6^o%wr zA7v`^UO9h5D1vCg)nrmBi?3vx1E*wW^jsB#v1938?HMGxG5;p)hkt8x@`b=2ToA<o z<kb-(=V!p(CT!+(zXqfhD{n@jPSkND(*+=Y6G}_vtlW?lHqsl--7U_-HC5W%e!GVg z`*XN3ES+%Wkg=W67_Q$+QLs00shCSR?Bj1$Wdtk*1&?VpYz0#F9dP8`K_U1Gty`N4 z`*u-ip*{yhz!HKO|9^)~qCv*U^e33&f7bt)Z|r93<ZNkg_XC)1v@}!z1B}QIZRfrm z1A(C96&rw6TrMlA#NXET8@vB655~648d6k8^AtsKwkZi1Lx+|F>2K}`@YvtAA6nBg zVaf_g3?|f4M=3Pq#(K-E)7+q3;!?-&5GAkN&zy7#ai@FW|9xLN{rA4hzW@Mx0ssK{ zzX!X!g{i5{&#p=^ZU4i}b@_ws(Znyk|8~g>qp@?d&StT2hFu^4T5*A*Rb+GiA?B90 z-opO9@WShpC?@6<GskDk@Za3Px9HIA+;GyPD%vhCDJ>p3b!eb8^2O^=Y*{H%MSdeY z_U(+vUNlo?&{=t6^n1oPZqsfO^D`*E(+fFQTy&~@<zMG!YDIK~o%Qg?Z}M+Nl_HSp zyX3ESsW_>&F&*Ic?swYK*b*xP4v(zTRd{;#lp;DC9eDAM+zIqVu~T)Ma?0IQnsmb} zW2uI3@<yR(5*jLNMMk6?XBQ)JUqSh+;33qGl5gB9$|Ki}x25XQ%5TM~N%(K2<TaTy zu7-aMc(x@sphP8e<`=v^EE_bsza5+2ID0yMS_rM{X_#zxS3LxGiTe+}WAl3b7RKI@ zXPXlqyx*@D4}s-#I(on37wvP&z=>n0={MApJGkX@GmDN-r#FxdwCDZr5{%_w8V*5v zw$l882-VbZ<aTVgKOfTc*?;je<XoXcqkOKert#Y-z21~fqGvrGEl;-PPe24W$S7C& zW{xQCzETu$&PtKh+@Yq2jaGQdEglMkCG?JY3Rce>kv6fQJBd1#{P2x7r{ao_mA!i* z!B*lu5ab|2Go){)2z*GoNpWyz2ay5%k~7k^ob%pt3i@=E@r;MN)Wy+52Ksx!2{xj0 zy2lB>p^$>N8yl0xeg)w#+wB2dAP`6dN$KzGHxnK?aG{uJ;;lvt$;~AuYy@tUX)ALz z5<v6w4?veHdz=zw6#yDqwdFAlwiH@m<`g+1A5^)cq)SQZ>a-X!mU!OCq>}eXPAB^G zFOZ@r#g(q%gEs<Hp&G=Lw+{h4!8Fq@v~eVL{h_}t85A0_scET738~eX%U8G*aAY@G z8f&J|ldkCCATvYc9A-0Hm2=W`lmDsx>#djZr{Jtw5BvK2TSst=-P2dQW@jQ5US=RU zh{zshZjU|;7$30lK^gcN{HPL{PWI^0P>+NTs?>>;J{OrLN<R^hPyxHU)Z03|t*%`P z<FZ-sWCqlxB~vh_s(Uw=k@#zPoLjBchuD<%KthFGp~u-N3K)sxIh`jN(Q|Eb>4a=d z>L26pWBg!;KY9t+EaeG7*CtzR9b+!p3KXvpsByvB)}<{jZUTqJZAfk;50ijj6H~Jo z9;M#HzJg(m&8XD-&<^|9e6!=vkgiadhAx-q$qf)L*qTo<SweAR+VO5A#HU-%g_V?{ zvBX%URg^dqj(C029MG%^dgUk|7>CPfT7Q?I=u;|sR~++o;brVXx3ln@)P%s#W~k)D zC)~lAa_~QY^+KY?v7(}`l>%`)PW`g7skXE?b?K-8_6zzA(SJIn-H(7cnl1t2z!Dld zn%-g_C@>z$V_vcklC+Cp2<&eHJ4${U^N1-DfwF;ip;W%&fS{qB2O~!ST9bDr&(|#k zCHL(b%^3y-T1$Gt8lmAD4Jnh$gF)HP17g1@R}|tSP4tQNbWVf^muKeSgz3b;^Z`^% zu%vQure*Z=U_$16AX`zSmq8i*S*6|qpTX?#(PfSr!f(w9#6@4B*l2x;LR<GPMB@xx z>wLyY+F-%N$G@n10u`K0#D`ox*+4mc$>mc<Oj@3zK#IA7wnlTw^D&}`9M&B{Dpnoe z@L-_BrmDA(BPqx`qg1#li%oHmr3Ht~4Gb#TbV3E{%gqm$MUe+KoM_4|>QI9b%x%y` zK+x70?mUwcU?*1kjWq4NCncfYi(KreA05RgP)z(*nwUX>^VmqQVu8|4*62$e{5uk_ zGAbO3dv-~cnrUj7q}Y(Arxn3)ViTQsF5A*fQ_)AnED!_NrL8u)tP-=Pa5@SdoxU#j z8;P^%v2^Mj%4FpXs1t_?G~$?calHFnBktYKD*$tgB3?)|4LGbYDFnePTJLw4pQOYU z9|Q|e+h54$^G}fODp7E*%Zu)p_wSMo0vMfwi?QhAe7<aGE%xrnkBI}Z{n$=fE11i| z46|ogGI}{$SeX=>xan(^6P{QtU7b(b%-Gagv~=9O%p<LZ)nj;qteZJQBVqSl&!mDJ zu0Do2I;Mxs0L-aM?_6C7)**KSn+x5P0%ABkGu-Qcj$`=D!0G#chq<8<VY!-#pKuj0 zpT+{r9&vp^Ti(aLhCaqIuInBZXYBD{AECvRtHX1T%*hrb*b9|WSGA$R)s^{x5yQi_ zH!a8W#Ru4+aY132%X4wpreFsn#^8J`k^)`K@@N(FXi0G$G}`7y$<47NvsAQJFtg;i zP8JyfPl<KHa&>~+>U<uvQ9Kz&HI}tju-wDoi=ZpIO`wIhur`qQSlOV0j$K%N!tYSH zlmt2`MAp&=^y)TaXgbE~;y9*D4GWia>EY*IlZQLwjVP+#ZI8j0?CFH=v4#d>EU@n) zf~1L;X!IpUuk4kA4nj3UyRg~sVt+D~0-peiAL;Hj^SUm3$+pLpAl62slbP{ekQfNw zF2t4hYXP5m0ab5rjBmE3PX8D=2MOV4uI$_ry=^RN!-QNqQNZz?F)X54q5J&ddkM|0 zUAk!n+|=sePXF|SPj5B5ml8i49CW4g{dxbHL%rVJ<Ky=B?9?5X6XgFd$^Nt|gUhUz zLOCrh_+w%b8p5vK%64V9LRH*NCl0>Uoyt(9da#c0wHg?HOgk1mQYP~LH=JQROD0w* z7*b;|2<?S#<qN@ZFP$^YwwL&#?k`ET($~#@Y(x15$#~QwNiS*kwO&BYJh51xhio2J z<=dBL6VB+9rF`Ps?#2)Y5YDb%UK3B-=PEmAj4k~=cq;vkIFyW4p5IrWEKe<qy0cy# zI++*R%(fgRi~G+wseFIX-@gpD{XLfUWIj!MD6?t0id0M$=36qi)wuxm)gTc;fd)SR zILJ7t2DTN;UZ*$Va<f*=OPuB%+ef0h83z%jP}u5U=eG!qEZbK7PnP>;LGHtf7RR5< zr*S&Zx$xCA*8H&O2zg%+4oUN_$KWNlrMjz5WN`mMiFNCKzL>#hO+T8U(%2v3(H%`Q zMwuPD99vMImapD*yZ2;LOS_i3@A8gGt~;0bfZl`2lyUM!@jst>KA!1*8*caa>qdG< z80t$}XrK=;=qE7STE{cJv8+#Jg>W!UQj6T+p<!Ya{8&Vj(hslj3^WJF1rz!lYJ3Zg z{lVg3-pG|)K%B2|ok{EFZ%TN^DN8qx>dzmNXS8kLFS<uD{qf<sID<K@h;dO1_2X@M z8C=BRSR#WeT~mewWQNr(%B8;81Kb=)d1VcYL+NQphH&5+s{Jc~N=(eMa{c!X>*dk$ zw8MGV)D=WE<>Ie;j(`N;H%^O-xGvb2WT@^wu{TWa{zrCtx$bE1`cqWQ00RKH|04_h zF&ndYch+}yb#SnE`j5Ems?={aAb`+wLS3pSBZ3s8P)?wtSV5q*w9hzVqJ*Bb<>J0@ zy5pXdt~P&dY998o-JOG*S}cTA+#sJ2A7O|=C>GC*7pdbJG-}Q~;bHIuI~OkcM?yOX z)zC=mmL=f0m57B}!;wUZjC07Z5#HD0?OwU1V43S!bSXS^*FtA6lC1OX!u4cfA~5t+ zltzsC>CEA7-hySqI|kIH4;Y0AB2S{xR}4~!T%le-0y1MLAcSW_Y&=scp)Zi)iaVBw zpCi&fS&_zx8zJH$rGSX6-Kmp)wszy{DLb;28s?H<9Hk#G@K)qG23u{KDc?D=vf4vW z^?|2JGsX5_ACraF6LjhNalKou0l<HZA@+(`D%Nqf<tBe)6sk4Xp~8V!73|^V%B#t0 zXL)qv$m%mLd+A{=AHu5W$jJ}$%!cnSENj||?R`zAyX~(BkEVs#$&zEtd!DObnckPx z2jfnqdn`27tNP>-b7%{0k2f-9C=2bufAOiD%$ZlwAV*pd`oRnH2QR|^j+efPrL)Wb ztpMrue~jWRUG(*TFjG}*kQ@9d1^=PS8(MT>^!F)509C-i5QG>AQ8*=1H=Ms#Hz`Bv z$0@g=%DDG>-)z6>s;cJ1Sjw!3mgsp87*vZhT+R3(wbDp*yz-Rf^5S)1;~FMm8fD2$ zw6w{zj4LhmAx|1)XDwk=461nq2o|$|52@KmFld5N)HK!GX+pX|(p2=p=L_jr)u>li zQkBU4rp#SH%C=3eyx^6b!d_;zGmqx$-C6b5Uw@D7O@pRU!<VWcS@c>N0K3jUptmV+ z7#VzpGkn1;8BXlUQj>^wi;jT!_))V&1{2m4?4MIb4?<fZl^N1b>U4F|6u+a?+26-} zuWUtTyM<$M!3tK2FSlgwVP=k@$8Kus@yE(M4u^BaR|!90vL@=A&^t|@9NJf$6!Sta z8ecXwt5JO0lI8Cm1a_k8QK*9=6#oJLe`V8u0O&tv^M?Gnd?qjefb@R{z}Vi##?;v5 zr@H%3JszXdAGyJR(DOkZ_E>*!1S)x2vfC%*t<{?Lj3yMH;#gQqj43Jk_s@;RrP+}U zu(c44<#CTEb5R55^Njdh?S+E)fepo!g9*|5sSbK%;VW>ByZCES_kx_+OntKcQTJR9 z6i_cVuD@uBzNooSwUbf>7OlR@4t5v)A5?)^8@7WN<d6`c)q$D%wtH}pq2S25UBMj7 zqEiU-VE=y2#`XZ@lgNzcW0}V}Z=3m|WytviX5fmbMuWU%E7p-J=AH`?G8JC(`KQ9_ zbRCwbLSWGkS<c~F{H4LLIJDKU<6J?11{Vu3Y>4M06v7W>j^B!_jonoQ!G<`mht$1b zim3{#KIz%i1eTBDOyHF}Um@)IOHT)&)EM2xnUH20w^9%1XsFbFJ~&9yG(HY3CDH8* zs0uOm2@38bRPA~`h3|QwQ*~C|WiXsoc{BUmkqaQk5P22tE|#7RgJ`WAEW{f%kZUam zHD=f)7!nGZz?`m~uO89l_MT%Rl@F%t#e5XTrkU(wm8HT3qp3m{Jg3Dm#>p<UOsvVW zRy!C~zyl_gNGuks#zEdZMeyy&cT33MuqCG8vT>Hk_-UjGGBKKBHo8d{$GqyM7J7Mi zSK%)+Q6$#!Ikm6fT=Q)}S9J2?+}IT;dx>#Hn$H>4jQcsW(cP2r5Cw#vYkdhEuoeqs zBXo|ck^cWZl#XEJ8|HsPDC_5YCjQ?;$;{Qx*u~!d{}MZ{3SD-C3^1Eds1WA$xS)EG zbYNDG(4B5DpyE_Z>xlwP68wJ(Z8&h1;E?)@t_$i9MS%Tdl8RZH7>@z+mi=j@+$DzM zw=6taQ4eFOZ#c>>IY$4Y1S?7{&;JRssk1o<#it@B88kjz(n0n{WAGtJ7Z7$4Fl<Ao zRK$%sij*Q8(Oiq)zKd7Jen4pJR+)DRt@EubM)<vGX0`FIIZ)?%!YUKORy19fSJBCH zXuTgg;r_8-w=HN1`a?cnPUR}zGB%!K^e_4QR84wgpUl?pzp#t{`M7jHxW&SLZsO)= zk^S#CVryt@@2vm-_B^@93PKGLz=-~kCvL3_j{uNdQJZDLd{rdV^^LgUVTJT@vOM{( zj{+4Y^<?FMFdXUyD8LMa&a9E>RH|~p>0eMTt&G+~Jd2;f^vLz_AL~EU$X_r*q1%%! ztjDqytW{?2v)ou~Zy1(#7ECFU8m;H$Crmh_o1HSO^sWVO6+iL!XWRBb{yVng*mR|2 zKaE<g3jhBnadtEQ&p9k@Or3uI6T>{#&Kn$wJ5SUOPNtH>OgScIOijJ_SDcMZcd@u# zHsl$aaZ#cP@k5NF_mB&%bZOsyTd)D35)*D_O)ZsDG<)->c8}Nu;e&=KQH@jwA|78- zn_-5n69*ya!TluClLT^L+#RnR8Rf@}&`M}^_aSv0E@_UbjW#nAq~`rH$)X6U)p%0_ zBnU<fvrukG;i6=Xp5uHYg-}RtifW444eIoIU%Rm2X$<};qN)R$G#LAUeDm82I=ZyW z1F)Fj65>=)QhJ_eZM6mjg^ba)5p=<Jv%-moY6{C9nh1k`+Io<E3iTYOusIUP`m8yi zOV^9K+XfssaNydP%7|&C@_%inXFL?Ef!=5&^Nle>*m(w?A8f#_yZ3IjgSvIhss!rY zdHO{sqD3*G*P=o4gZ?E<2Ur7s9FZJ54Z=Uw8ir`oMAc|hhn9lq0c}RSLH!aq)!_BN z3F%3M4`1>SBE}m7`WfqwaO2c<TuuPU=D+#=99=SW4cdlHhcMD0zh{-3c_xJFEYT85 z0RN#+@+j554k7}pzCcus#6c=)n;6LI4{)o=INF;*0nG6h?kyIMMb2*n#>}w{vVkjt z`@6@~M%)~5C?5&Z%y7=P&v@Z~Ev?z{gJ1$-YGC?G5yhk)c$oc@vR|52#17ZOW5Ehz zqVYHf3G_=XBKy6f!b>=gW}E-|=UVS}VHR~J5`<AgGQ$-1H$&Be69a~b&x}tp<~Q5W zl?y7ipvWQm=jJWzhC0oYoOABi!0MuR+x2MNx$n#5Bm4KOi<84;9*)d5Zckopjp6Vu za57qJ*0)~O?Tu1sN&A<dqyOE<=y;s4w;n<v;Hpa1A>rYypYVg<tl5X_-{ZUYcbEEY zPX<q+{U_g{=eQibg)-JeK$6~&`SJiR6*tr0ZLy>Tvyuf=y;}>8N^_L%>d54tStY*G zZ-^yU5W}YwPk>&J1y)ge05}%q8)zX6jID#f15%M_0q;C^KL3i?>FibdRv0AaSL*bN z%%as3qXgCU0I)GyTy;d2M?Qa35CprLHII3l39>_iSIWcL?AI`VIWICE#!3k~bl-3a zMNDVBw<Q6WRoJk=8_#&qLJw{Xmoe%&9U}Qtq;9RV9hKil@G+4b_4b)a<x=N&%dDOs zJ>?SZirlj>n|SoJZ0!aKxkY1Q+83uT*r(zRe|w~JCe_;Q5xnt_8sDf%(Dx3UyO0`1 zMLDlKa%SrmtoE(8Nh@f;>qmdaml;eV+(r>hBG{1|94%@biW*>d=s^L7$y;Uy9-RhK zG7N9m!~wjR?X)zU|2v5lI!&;%F9or{GbPNT4Q20l&S<PuE7XbrQxv)-_{0!ER1&aI zoC2$O3yx(O4982*4!chRz~>W71F?zf7e`<(A%9ndP1X}onj)5GR^CrGEvF-B<>`ru zqIv35>l|z%(nje&r(HAH+x~v^V!>g2e1nHkMkCCXmIiWo!DB{DMMF6I2(y12Am#Ap zubSwlvR(9AP7tbb_cw7of1aQ)Vlf+pHC#aGj75op`ZT=tUJGQ$a?cFo#$b<dT3ZFH z?b!VVp?Gyg_xi2EC?T$I9#d!j4hoM;a?2Qc9N`|}Hx+Dqf35HT2PlvR!oThMLM2f! z;TZFL2^^q^n%YCbXV0p)!S9J>h7oWDuijJ-D-eeNA^f{<f6iokY_N2*r8~u1Vl<@q zP3B7pO+oXX@gshuo`V1I)qjJ`E?$f@AeCf~9U&|Z86_h4oKJ2)U*jN-T{T-IW@^I? z|BoB`l9)BaTEOt`<?HUkAC4@!&q?L)&%uw$q9n@v#|$!#`u>^RPv%<fPXpARuiW*$ zxW9VU^{C%#HBQZ+On5$)nwuN>2z{F9gQWV0JSr|W4Vt-EJ}-;#{{I}~avoIOpxrLm zX!-<&392hPMBPOWd?(@8o_!3opm-|{SH<j&!cF4@7=bfhFw;}oMU=;*^Tn`T?*VZT zEUfnHLWQehRRyCSP5I5VM#O~93~6?}PD@eu%z@)+#WI8(b_^aU>OHt#LbQg>%NTIM z!r;o=f6XW-7y#Vi;o|6N_;hix^q=tP%HR99X@=^R{K6(jr0Hh?MXA67KsaDJ_v9i@ zVJ87&-lUuJX=v)BQ|ztn)L~@w7k(gF1ZY0OVf%3W#m#TKjg&dI_R6c+fvcXC%uWNU zLvGZq*o}K9^uo_?&>xff>ANKdgy0x`tSoGgYi<h3@v`V2BSGkC;br)AvcVV$tj;-= z**D!jIS%I4(`CvI034^$##DGLY48f>=%&!PzK*#|Ng;80le!SdTBZ;^NZ$b1OgB() z7%WP%V1y-bSbp8ThDHDq(T_I-djuiXL~voT!l>(W4r0uZ8&Y%Sqe$)$DO*4~D@nkm z!Ma$3ZO<IKv_61)5(ijR0FY*;eOUz860CT}#(*YM5na?Su%9}4D*@)1CORcb8-#K- z?kA${P%mbXW`RA77flHoLS3Iv^@RYbB`}M`LorYy5~C<*oyz=`RPu>OV1T_whL?(2 zTW2I_#mC+5Gn%YsRP$?1Y3O&mIHGxc?a?~s<)^ON<|zTD7o-dWvZhiBl@)E8U<A;K zZ01&p1lb=55gt^>RhMd%a(*hs%xduvfbj3^1n9^i77d^WT!RYZ@R|uYgex~l%3@bF zw5fhFa}v@4RWglR9VxI0+1O2s{){qP<T`)A`0MJlxbdcibh{R~UvBFHgXk$w3&}NJ z%{>}-Kr(^&Tk<enlfhmr&5aaMajzjP0lg(up94+PvBxDr2lUFW1VI1_cjX8XDVPut zXs|ZngMD&6twP~2(!xg$cdUMKd&RB77;G$)kxzD*B&y?DK2z_}<<kpyQ@e?Z{GAC3 z2+-8%_-OD$6q#S3&0Cjx4J7!wTP9>FocYwYk?QPyjD^?}CUea1u!%x7&E=XutXMqb z3kVvMrl_it^|jqlm4l^yv7F^3PE|=<0tkc&K-yAgX`4JKN2NmA=(d)KaZtG&;;Y@C zNDFQTiNT?Y=J`Q2e}cX8;eibDm5HnYTpB&0yp&WbmTL%fN)Q7f`RT!pzQ9J6g@Dhb z7GPA<HT^&&Vk0=f6E-#&+Ja$I<*pzqn#MlZa#swoq=a&qa(=)JMwI{oy!D)GNR{#q zt7XzaYd(%n0JX%coW*h_FW9-V8Yv<;J3<Ardm0d=l0dUz3?(h>anf%g8ULMr$ZF-5 z00dkPl(asqc#Fhij*?6M^a6ebxrS0q(fg?5M@_^X@D>;mK}-hrBc?y2Rzv|6Mhzy& z6`U9xk=0Z}m`4`-#iX}{<(&|lrjkB+x}18aI#sniH*R6OgM0G1lYd@byj<o(RhIJA zwq{V>s3NyPo&)}D!V4hZ3JXV;sN6ET<k#=_wM%Gp)#OZ}Evu05kHo-8&_%Ktv5jxw za<y$V+qB)TmL!z^O6d<q3-4_Fi(f-$k)R74CoV(<zd@WY8lwRY7Uv}<BDoMqNQ?&a zk*VpL^&rEej1frEl3x&<xLLN=KPnV`(-lPiz*vgO>`?GQKSD#b!e=7$iV6syGkb+p zJi-9?d~#uJ$Soyfm4g`Kr|45<xS~qGPz;dVz=c-MkO<AjlxkiS5P*rH6jN=zE-6%s zANqz?YMk8$kJyE+kS!x>4KoFoMp{)(Nxp-d0o*|gAYC(53sC1T#~59PVFXg#0gP~D z7<p%_0s~E)>KRWX);WZb$Y67IAXldt??)FiOXESV*NuKiS#Rqk%2swZ2_ztzMl}y* zmIASaq#0<)^MI$nG6Ay3R2u3h*8j>Sb|!4#*P)2<B8R-G*tsEn!}IIrDgwq;=hG2O z(oh-3TheS*b5sHJzrHhgklT<c!#rhe-RjH1A{Z~L&7_2#bHIR{uSDyt^mN!S#&u9* zWbKcw8kNk#Id=2*wW#%Bra%@6vDe9~&48w{?ToN~Rn`fsL=dYgnnpuC@61W_PNg>! zhSdm$8|LsCuQS0QSL#-7mat+Z67z_)kQr<QE1O;2H9>@-)4D{?VMPmplId|Ryo+oG z)msT_xDr+~JZjj0DzpNU<3Q>g<*T`dD_Yd4Zc{dvw~(|?1@LMTlS6e8M0<n6hKbR? zJVUEJfdxR>yil+oop->I15^YMUO31Wj8Sw{(H=W&He5B1gmS{mVM25io54xrgr_zb zm6*wTYowY}D-G!8lyYhabtM0~Z}ZBG7-OgS88Fhps}NC|uc9LvXzAwq#D4Y0t}4VC z8?3HdTgDH~5}Zx^m2D!?HW@qGT2y~LS#*CqIWc~Be*JQIKOUTY{C7ClfyV>6Say#m z)G96U#8h*<Sib1uv}XGuzG*2$qb(cWE7W4gUN2kdiA2*Wg5Q&uEiYesLk}POvYn^2 zcz1MYUdG*0a3u-&?fH9ldjo!S6nDfj-(wq$Ag^j?=s5UA+`bGw&3iG4eR1$^e(y^f z74v1<ZqCb&@I58oL}u-82UZ<hU10IdjH{Y=i{n&y@Gr;7wMvM&bpkcopl@9Yr4U=Y zzF-jcD|KywPcb8YZ49=IUiN>kTyGAZx5pk-(7Q!Fu^!QROlgJN{M>Ji<?qMOwvj-4 z`&<2Qk8}LK4=-njjriUjFY=*t(u1pkr$s|3eWSZL_&uEb9N)Getj!<t;Pdh`tNo`X zqX+}wb7`r!e<cwI=Eq-V;69R3F?7ywyich4W!=Cc=-{RG$!~>@G?=WcG7G?RSl{iY zXiU#?{RB<sUVS7qeQB6lpN`%hX6H)Q49qv2E6>v!1z>yJp1(~u!xkgxvHH})b}(1< z%9WYpYqkaidjxyDm+OB9LrueLOgm;8j$Noa4BmN+sz2#+s|`esr8C$-4Wc*+CS`3z zAPs3f`8{q@4y;Rofco!~b-tFka{mJD=Ek2@wM7UKR~c&a6+jVM+Y7WnFX=m-tbtxf z*ov{15L8lXZu{XhbkM$adN#XSM;^D$*Ny&sy<gyU4P_GOc_g?)o?=<6ii~HHYIer= zw}*#HHxyd|Oc#0k7%D&`^aXCquLmnH_&f?hVDu$n826>?TN&a^mx-?<H_*JF-odt) z`Uhx0qxH-~D%&^00WE+E-nA7jS1|uN@0(Oy^S`nw_U-yVLhRT^WxV+WD67P>NT&^` zCn-FUrj%@Xan+4O2BI@aO>d91p&e2Hn<9{kCJZ5`C@FE^(~2L3B2S)kH379<6rD4q z`ol;WH&1aPG~QP|>F1zTEYwR3Q*eqT1sZvLQdghw>Ox;_%A&HOCaT3M(?krI!eOlU zB_O3FGgdW#^q*Q$LP|^57;QiTYm61*Ydk!V`bMy-ewf$lS+vK@;+PFsi?uq_dhZBY zfm)qn#)77J_DoY}BtgJV$BtpnbY6qe_}czJyIIAE_hw-&IJ?!ITXnaFIe76NXQ}9| zX_&huKpy!@FdPF1I+!N5i1bhAHSReWr_niASAlWLZwq)^Ijx7WL6Pg@$C|(u)_M6* zlT)D5or3*PUBh8`-Ilz6g5n#A3G(f*(0*Fp)caScGA*#JO!6MK9Xo7KdT3WCcz&%6 z@aX3=#HL3_iB_>5c4TpgM=Cy$1*q(kZ!RvNzkJ=u`{zzWSz@0eI`}++<emcrtmBU9 z5ZK>=%}7Z?G=UtB5@dCr?<O6}-{aA>Vr-QjwG|^VV_iIv%F0#hYXIKu-k5NVv6KU; zNjH7XGxB($nJ<FF^3v55V!j?n`-V=fR#DeE^6_QcZ;yrk)G|094$9AB$c(e`kn!^~ zeK9Y^rW~0N?iJo8=P|1Q;l-}$+Dz6FSiV(kdnNZg&%VW(l+y&)&&PHFjE&IkDly%a zIy~clB28Z+4Sqt|ZLI~^!@CFcvl&fIL+5$IPj4P_Z3@xagztx~@<q2rv9N@T^QLXE z=j5wY?<-0tD$|K0C8^<ROD5n_-{y{y;?tcrRn%kHyF*W+p>{A$%giUVw?H5m>U}I+ zbo2&iz;Qp*fT0!`RpaS6FspN;`m`~;&llYyw&lW?(WnzTVee`mqqok;^ii0-2rQlj zJY)qq^j-kiQGvPyQov&FOt+t<%)S+iWTvQl=%iF8s2jmi4ucj7=hvq(T0NvUysTlR z32wzp-mCOpuV)w`sO<vrKISx({rF&?6idoP0%CEDeQ{GypS?15NiBrT?*)Ba&B8TN zB3_;;{Bsq4`~akY$1}FJv|kty7|*WN^PP5_Y@eUnFoyb(T_wzrb4?Tpkzy?0SCknN z^r`Tr<gb$wN)#UFDH~{u6o4&r_48NQe{rZ)E7#??!s)dg(tJU-L91un^Qj2V0#|?8 z;4!azmp^uxC5Fr0Y_^G-`A2L_WaSvS|LCQ%jVp5NstDF6Knsy6IQ{7uou7cp`V<xg zWf0k>wlNQNbt~IU$qUHYsf%mrHS}8%lU$d>gqk|=)<^w{ud|!g0ExG$s(Za$HE(gr zEZf+EkYMl6e3Z1gwF-+fcfsXhxm0U`q@Si3R$ykpaCVdD*SY4T2z|c1XtlE$qo?SK zM<sO&e|bd13_&~1|9);SXL~u%vGf)9e3gOu%M3&(*aV{kiebXEm>G$8u-(wWfTsE< z_g)r7ke|mId$G2M1rIZzn0z*&(LAU_wO84U8_{CKVr{EY%-h16Jy|gsP2kZad8q}% z2C1JMMYq^R$YO1y_qwX9+*#*4knj@^|KMrZi*+*5Uw12vi0RK^Rrm6IE9Opj`NMQH zI1G4+n$-H#D)8mX2Xkwy$z~UH(RC}IDOUAnzF|YTy$gKQ?b~Z^6u0<!C$*;+6UzNC z;Qn13-^M)775{c)1gZCfp{KbAB*`box-C~zeUvSZ*>v-Eu2*y0rv1*Qd^)+7d`+Y4 zx((c_hTr=6Vo>A4;d!E&u-Z2^3csW^(pi0Q>#WYa>?F-wWksWoLbCtQ>t%S&e&aK{ zRll^=__b8Hm{Zr^YFp^QEB?JEt%e0OUV0f)de?C&^QNGATq-FO1I0*-z&iIy4jnf5 z9}ly$7p^ht&R2=BpvV)BJ*84N9U-y+mxZ7gxUPDoPV`UwOOp1$DU_Qvfv|>B(AB9s z(}9`08pw3(q<(9`N@S%t-BT4$T6+ifG6<EHH1@Re+whPoX<k}~<`4{Nir1M0Fuh8U z;Sv<Ak`B$e%yo=|uO;NR`}1Mf6Q5dA3G5Uoe!FCn-ssF*Y>se6eXF%BH<$b2*z*?i z$L#GIr_SG-NiuAQaqL6BSTDI8Vw6%zmN+@txcEJUf$S@nH34k3P2_8d4t39ZI&D=? z*aVc~U5HCbPADJcZM0A|6L#L%V!Gdros8mIU&#F5BH0n=)?u0R>LQsOX+hJcStFU} z%QWBT2FeRWJ%oJ77Mrs97d?tNN-?6mNo=L$OV2Uf^{`Hdv#OU!B;z!Y_CCMx0C9-h zkQFPwJ@Q6p&@a#3zS$cyT&y_qe4G+n-?rU;;=a0Imh}p&3P;KzY<8??NQ2<i|8%hZ z488|0(exXI;!0~C4BGsvrqTF>>6p0G1t(i31c(eoFelP5&%CRTHOqZ2Ay%B%U`1r1 z>+4ast6(zG!#pnI(+p@#E5Lq7oSsQlG5pelgkex0y?x~>XRJ~}oZ|Gr;*pt&mcAn6 zZ35Uk?<vdGK9Fey5VaREetepm47K9AYK`LH!$W0)SdnhA&g4L7+<}OhYLpmk2V(5v z-yYLZ6IHvYJcbZA7?#)lHI9ZL@Ve%XH{!|vr9^{esX}j^sCaf;v+hcH>%k5L-{^7J z!0hB-J)x)>y^4YPaSE%gWY_aHo@6YcoGqrB-6}viBJEj1o}t~y$3#by6EJiK%7mV) zx_@y)ODTX54yj2uYTc1yffwey4s=)U#|V`>UH&$$-GAR=ZdUFZP<>3z+PG6)gyPx` z%?C3L4i^6?gb7<tzVC;yo0NxvA(pdG#Me=#ACteroVQw14rx3jCM~8LNqd;zAZ`0+ zakK!IrSsb^*0Mb1m$>drW9|wk^(#)Ep2|tR#W^cszR9B)@bN^v9PbI^K=3Eh2t))> zxCjQk(Xj^|5vOP%QP0-M+(zyIyat%QSVBCeK}gqh7+)_WkTe~<g}JvL^Gdt;&NOv{ zG9N-R8-Z8156=bk$YF)hO_<H^zRp<~>N#vWgJpCxvlSqLv@cq>%p(tV;@J2t7cV(; z!%I#RgxR~>>4K%US!$)8hyU7<{U6OFtZ&l57zzN$_>qJEcR|w7$=Jfu?f>Zz{*Tar zxe>cD@|2^`SYjA2V?pG)ZFAcHR68$9&xk|L+O0u>!kM^MA`vEBt7iA_hBvK4vCwT* zAmCh($b2SyBfD#WfrgqjT3EG;<|fM4l|1bg4fIc+J1fqRmrZ1W6*lRLEq$ckvGB4@ z2sqkBWvbMW@OIsOr&`6Ul52N5_#hj8h}DN+vo)j5o<?G*AqMDjZILQ!^@khzv*%7< zDUuiN4s0}6IRVD|V3k0hI6W{d3F6p?kXvwj;qqj!y*K#chY{h|Up6Ml^ynlNqH<Dq z!xj1)Q$dZ`J=L@uY!Es6Q3TWFq-~hF>(<HeE5zi#)f+M7$o(!K3zv3>b5~hD?rK~h z2E$o}>yJ6%R*U>Wk$~({sSY%04L!R`rZC(L29nJU2+nBUH9<N9`p`P=zq`^qu{i<? zojRSRErU9gLbQDz2qWFhYM+lGsb>dWDPio(8t{F&{i8hdy=dq5_q&oToF<OI!d{4D z>{kr4z`;6yx_`yK-9Iwru1XV&=`$83{>#>Tz5n9qLFoN1({p>P(K&}iK%SyfcZ$F% z`GmYqh%DT44UnQ8faS1AkL3Par$vg+UtD+zKj~+4+pxvns88^oY#WseQg+jZ5llkC zajjKSsp?x_ZkhpU5CV+g4N?zUFgjGxKxr!PK{TkI4AyPnAY$~>x>Q|kz(?5r({jrU zK}u2qsb2q%v<83kXSa<LVwUzm%#WGSsEza)^|nEXrCtH>v3nik;g8X3OYAqLN0#{u zi4RzrN>pS(yb#b8lw=@Vf}v$n4BQkb8bqpa5Q0$<s3~L$%mQZEzLhdm--A`<H8!-I zY1ehJ(N&pj&_rRx_}pUy4o`1LY7^#vC`5fpjAJ=kfDKXR1QMpM@5P0-GdOJu0GDb^ zTUjnLngo~egqU*i4Q01p0@s9y_Kb(+9X4zw3^lK!FaCmgjJrlQ%NrD7HuZ6Im?AVj z3?1=HH`}K7<$}J$w|++4_I`x&FIuWu=s94Tds+QC<9-jkv>gc%{zPV)_P5lInenee zBJ5PJutVNP%z4(wM(_2fd9%Ety6P}<Bi$41oF6|r!O<+fof4trVYM->>(hbN!Y~|D zdw3h_8+PLB3<|^eSH~ckA-i3w^k#ZlH)?n)xo(d{b*V`G2d`w5OrtJg^`;4F$MCG7 zHu}sviCCy=!YV9=P)fX|_;dpY!1}yQjc|ec-aaaZRfro_4&+x^=xo9;yWrzLBPxE- zlQkMZR|470u;6ATjDLe$-(o`?l_R0zH`%e7?XNJl+M-&0oPMM?qJWiC*-{%z+4g=6 zz@E86qh3^FN@avVN5E66q=09l>U3vJQClhsN4wc9Bv1t$in%fo80-u`c3ZG0C>Wye z@5b_d;^tq!6Ozq|(}{ulZTJ>qqsW;`fp;Fd-i>rY7u!e6cFq2dFt>}xWQp+2q+n4n zJO_t7!g6Vq&xCfAS6`Vhcla=*{PWKfCi3#bDXpD;kll}ea}6BHJu=1Ynu0a~AFJp+ z-tv?nHxOjzh{Q^CzPy}?A}$iDdYz{E=eAE9<!RqP!3Wo);+=`k40&~9stg<m-2;j8 zJxm*P@QxY&3dc@p@rY{TE-(NAR=wv20S72BF_-V)>i76s@+ZH(NWQ{GU?Iuqmo~bt zIv!1%SMeQ&gFRh;`+D?>TXT3dtvMu4FGRnvh@8bOTOkP}W}ZJ7lZ(@U{9Kq3zfSY$ ztcm;?UC?1<S8B$5wfFb@vYF`t3f9}JcCOF7nq>fHl8vIzPccA6O`tDDv;d8WW!_;m zm6#xU&+4J8yYfMm7P&t(xgA*j%jYRqF4X8SHT{;rXSp1R1OU!}T&umiqmfI89-3G# z6X?hX6kC7I1k*z65~Tys9H1<dU|mcyTig%3Oj)<m=iCG{QpiBzu5V&7ol|TzHswuD z{TzfZCPkQT-qI@Jn(`VDEH}a~`2~#bE>OHeK_qiwk-<G@Ze|qO@3lbCpUc)+G1&(c z3ylya@>&Rw?@(vFwllcvV_^Ey3D@E6D83jGl%u@Kvm4ea$=!28Ic~ncSSG)lhEWi@ z-b!p@mrWi3JSt_|4;I!FVu!2+yEY&Kx7W=hWVpnm>L8(pohaQ8JI*vkcG9lFZR()a zoIsyl9e*d78=^g$TVin2wvEj@T1c18FP5mm&L|3-?paJr$OOJ(aK|49+5(sd|7@as zz=~2Osl|PLlyPdj_i-xgM@iqfj9~m*NZI^^DK&njsk!bxC&n6bLPPe;=OVWT_tx1c z<5ds{eMGx)R`mtW_^H~fbZF2w{r#`6p`%WZzMf9+$46FN8hTv0Ox8nq17>ATHsj#~ zjvoj!zyIgi;8AE9$>(Li0>T+3uR?($P3jH8TK;fonzF>F!5lKE=pKBuHG4$(w_Vjp zRYiU#e+w3^Y3ogu;D`s!(HcMWnaxO3{O#ti%ZLCb;^ltLlGYy8HD92*kM7<U8?uMO z+N-&WhV)~?ylRZe3_62Z%aaY3$15!^wAsp&xa1q4zkSD39a4%dB0jlgUsq6`I+T8l z?7xf!Z;uBz{^<Sl>iE%{!u`A7UYl~f1>|FFZ>SMJ7Q0n+Mr*a$bKHR=V$6&YV~g*< zz))2rD<Q1qg@$Ul4fjVmRbJ$Uz_$4I0(Uq`<OdA%ekD=IURg{QdIPi3C_~P!@q|Q- z@-*mcfspZpla>MftE9d)qK?`qp`32`7=u8)*jY4WQD5%C0u6TPk+n=lC(3<GzuR5g zWSg5iPsEPoq?u-Qvw$qlzf#doaUwQRHZEMWR62F@aZ;*2)8(b$Vj8Llw%9mAhL_E0 z;fpPs2_xp1p7q^;!$9z?z05C@t_|O_48@gNtYS|;<_yP`D`Q?fGrLF6_<clH1o}Hi zbUVwlWT!)=EQJ@h1x$s?O_g~c9~Odk6MA{PP)i+5oy1J-eO<Rv%*wOiNImGwQv+Ie zB8(>kmJ&RKMz{UFQ2pi!L{0nA!h>Ckl#0^~NfU;4>D5G~R8;sL^6aX~<%{6DrQC$< z8Q^<b8C1Dt6y@1vCEydcAQc4Z#02_qXYysT19<~^Q&5~N0S+ZxPW6URD0t&BjSI1R ztMIC1uqPv|(ouV@2zifarR%Kgf~|ylVl4mkSHzHI*Ih-8wwPdx83_+z9e-T=7v3qb zuk+;0cTPaB%r|KO9oEgaj{itn#2*|OZW~x)wi5VHNro$SRXD=RwX|$icBg<74o29V z`GHRyIA(21^#gFKGuv&OcuqFp8HeNM$++4aS4kdy%85NU`a9zJzXMp(A}n2Nii|oN zQuoF1E!=t$<3F7$o_`csmR1i5b}z_zEAo=>FLR`2E*(xOg!CS+W89vczwdD4)`W5Y z#t8wckk@himYw$V{t5g&ICu}o#@-f8M}c^x>ti0vv&Zp8d&BCr10Vvl!K^wt#LK4K zeMGP?rpHZ|FPngN)+(-}zc!;mNHg$Nd|z;hWghDfE#BYC19O=dRP{EY%*#d~5<Nkj zH~hSsLf60l%j32GWT{zs^tnk006^1^6VU&jr5YJKIQ*A(m=^7y_ebq5UwnUpE(8fW z<~ao4X@~PqOV5lpT#%b7kqj6ZOd?u4h@&bgVn$!~zg|AFg_Y=&FG;qR@R?dg@bGe9 z+Gx<CbTUe9RSea#sw<g%%T)+3s;byKZIo28?uu%onx}TU9qW)1QiX6Uh44sHS)|g0 z>_wZ>h_=#8<(kA?qD0k-M|5mmr=f9Z?vCG__u{m4Y0;vps;uuE>trB3oRMziLQ(ve zKNe1z5VMxXbar6_7hBdVm}rOkdCYLT&p{0!a@y9!!&}5sxb^a?w9G(PU9_W;%GYHJ zrtl0L*X28Bfc_;>L8ahLMIwBBzBN%a`!N(Mz$X$cGcggN-fa69S6zrlSgRTlXBGWe z=Jq!hwYH@lvj$-J#&;$UT)Ju>4wQ=>zH2arY0tr+EZ7cO?2|$4#-HJ!Gpv0`rf67m zReli+O;5|?^Xcm92I_U%g@DIc`y%kNo9bR<o=M&uPzTQD{dkSYGkHrxBl%tL!sT`= zXU*5$8{R(X9|`|j`d+Zt3@dZryoH1rGAEyORh_I{$zU<7p+1&?G>jUyem^I~v0ffy z<%LT-Zp5mgIYLC@(L3Bh^@6Bm)E|no=kvL>7{(2nT=kKJBvm1(G9{+P?$2yKJ6f#A zN{*@S=XKDI1N#IM$=);RS;t72tf8vOpFh`=<(l3rQo{?bLj3LOTv^<XifCzNvZEXI zr?nJOEb&ypKl-{rNQ_ybwL%-MPDff<3|6IlyEf!C#Jj~crV51|0xB`?rN$5w9WkJm zl%&LVL6%UqJ9?<J#&q3G0M$$RLOf+-<MGlp-$7G?11%|xlCLd!=%$(Pmo*%QcH&kI z0W9sIEL$TMHN-hG^^{nolBUqjqBsTk4(#PH7`P8dr5QYssyuQu7R9z*9zv)J$O4Yz zbM71k{uo~|c6lDJlY_a!hyVAi^1E;i-l81NeY2#fjuZlbBOxD123nYC8#0xb$w{n@ zwZ8C2fv3e>=K`?|>@u`=p}sCuMce99S7r6h5RK@=XUP5L<27s<yg=Ut&~zt|qEapf zlZYm@v=l)^T%4E<F;}|+#>&^VNqNa>X=QK;xWqm^f79A8Wa)p1lhjl5M9}asUH<J< z$T9%SZAblRPJNq-?4}@Na5w>JzISV{@<!ujo|QS&#1a@pE)!CaYS61vV!d#+F=>zm zg?Sgl_WWQ%^z_wQwUyKd;`o`e3%Na7-i&H9>a=|2&fVo}x7xTP6dU_Fs4x-0%`(yq zK`o<zmFRBTqm#n+v24)Q#;BJUlMJyg>XnsBZb+3u$uX>TO^~d>e#$sbMw5;g5Gb#R z8NocGP`}84!m%1DUBLV$^i|hIMFGMHdWV)p^YM?maM$RwHGodgyFqAvmD!rDIlo{3 z!|l`S9Hagnonr<7PhA|$>OLQJytpIDsn_j4?Ef|WeXYmU!qw)UGb!5zO>jsUvWxWA zD&cNsTQYO~PvfsFe@bwV{NCO{&S29YNB#@I6;BhOxy9iR93JHuAj1IppY{v*$uYQC z2br38m(xQ`p56lv`#z$U<aZQo`5Atnl)7z`7=^pE(fl8dV$C1xeT5Xw`QyaY@VeJl zg^O#TOW_<Plf;!ShX(I5!RIsSA^gUvaQSeuf&G+tMUmSGdSi`<fPWzr`;(=rV84)= z&0uS6tDZu5jIl^?U-x8_Vr}r+ZkOOT8$Z|-pcl#zSrO>q!ED=IQq)|8aJEbo;bm-T zef8sR@ve-Wvqw)<8^g(<iNBd8K)R%_5qSuz&NUdpe@S!t3E;Q$li@-RY<3K;e9Tk5 zC68Ak`X`achL#Z^l=i*1Iz0}Mp^pChrIsDz^Q%lWOi#h-ZggI2H{hT}vw`>)+L%W# zwgfmWOEY|QGNTFPO^YaK98m=q&tnm(SLk5kHySA<xj08HumityHN-p<)ONH^f~Uf= zg|q|lelqv?0dz-6e&{@|Lku4RnHf;Wl~$&OlyM%<KoVN~+Gj|XP5icEb;L$OzfrPE z6W1g@HZjrVurKk%OXY)v$%$irKs*mEr-Qi8#Uj|=c0rOd3e-JL8RRsSkvN-j$tY8= zwvCn3K$HlLU8`6BF)5*9hrZl17h;Z?KS~Myl-*Y|mntMhScPG9i}ES@Df-yBI1(fg zQOO9(y$uWKc6d!PHB2Nhb94By)*=UtVA)tzVl*)fU>Gy1p%D#Pq3HApy3dX;WLK!m zg#H}KWYR`%z3)y*JBupYQV8nVac5kD7v#7c0fGo?oj@XlpsZ3tgA|&?8zEPp@@`PH zF&UYS{F~W<1}nHp;6mm`>WLpg;*CO@=vHz4(Vi*}i1&mip)5|1fH;68Ec<3s@ZBMQ z4Rx;o<yeL747uL#N=VA_#KL)&W7Mnz(sr6YlXzuGP0Ghh6rJP($dRltURsK9%MH;7 z#Ayl;Ti4`aGIBEY5v2Fe4E1<MbnK<cJ}=H^C4-a>h2!D5_CSP*;IrdkhT{`Jq8UBj z)sX1l^~Pb&)fvj_Bfs@#h_A*49O1zU32%so)p4!dOQ3K$NF|O)LntXh7HEWi`-|xJ z&_wg*mRrRzgGrQdKA`auxT(fVYXi)>@bYq>LFdZpeuECWaxbUz<PPjI+#nn%bvW#E zI<v9n7arcT(-eVJ0%xgkK7MsE!=ISz8aQV2Fzgd!u6Gp`_%kD{@-4WEGZ~Tx(w5GL zW<nI6+#PWYUqR=~!BX(<xh~WlCOw5A1x3r#3`9rmEtYq(a2h&vWhi$f9H|S5)C_6! zdmQql4wk<JtByY|0kZlDsG5SxOjDZOfEf}oSLkrR_zP(1Lu6Ft)nk{n)BQhb8jfQ< zc83K}dLdXm)1B1}T6OKhC{Ui!UJmo{1L*s0ofMA={{#ca98W20$$dk=!$N;^qmdHV zk~BqQ;P1PVz_ET_0KqZ!7dU2Ub1f$uYt3>D4$sym$|%OOLaGohw{l=l2gd3NPoj-4 zaj>}ZNQd1mFkbVfP!dtO4uTakJ}Y-!A}8p#P#qYC@zz~lSKBiT2!h_Dw^$>BC@+pK zPp?tEz|uuxS2T<?^8NY^0Un%~*lY9g{IJ3P{r*~pztfY`(6T0~nJ0@{ba{05Qdel% z=e{z>yyJYscML7zURMS*?33?<sRe0{H*zTU=H4}5FY=;GX9|Q=&cI{V7KoBylSD@7 zj<#|Xl}x1Qy4n&`-7dpiTp&v}o+riYyBncF6`?b)uHXS*CBc|P1ukV&Da3jw!aUFe zk+ac0kg6cobw@!~zNjk#wzBOvn$IP0?)q}?Cm9kf&)DcEBBmfsX;TI*<$5+l%=$u3 zx<nnYvm>^jA@0Sucr=5bBC+H5b^C>n|BWeo6x0qzr(lJ48&YNQKy+Z}e#8P4?9t_C z23dpwKnm)}CK^UE^Zvzj?Oh!4`(H^C+$$3zw3bnDCK$m7>!bonc+R`;L`;z^A^gbS zTXaO-I7rS|L|lKpK#}m~$U!3&^xAM#%2dejL;>Z|-`)qh%R@SSbEvw{_X3jowXNEc zF|w7Clp6#NJ;{a>?BN^@ZU#ytQ($DR)m(I4-nmTyPs_vV%3`A?o0^!Z&g%@tXrxb! z&Sn$$^s9qnYhDSBK5%I{ZARC42Ukhj=q^VOiom|voR0x$^xK+yS;<sUyN!!6RbUtY z6z_S!LczjljcF^KpD1!9zzdZKw08wzd*`EB-hy>VJCGMLI?n_m?ZQ-H3WpU)D$t18 z5YCI}@a6m=2}~PH&oXP(t+fOGltOF(g_!RwUV?`FBDYzJwZU#qz2GOL5IQFNKXjc_ zcP4<6MZeg#ZQHh;j&0kvZQHhO+wNE$JL%hxcV^c7imF<5&fe*v+=4Mq^fZSK`*@(& zd>GF0O_Vh+A7l0i!Puu9Sgd90SgaLFa@iyZXRDQOkDva14kVOE`?Y3|jS9`-CoMI| zo1%7Dj`_XW{C6OngibQUC}|{lqChcEZvh=i^h+4tPB%j5v&BobhhyJybf8MH{TQRN ziROZaHKs<1Y=VN)B{zuNA4I{%wL)ir1#vT~NKJRX_Ph$i?7D9zS=Jg7p28_AaR{Aj zg=f3|?LYnn^=heGM6iQH$^r?UBrC8AfRpM~>J*VU4WfBZrJe$Q0)$bWgtKnSNOGhL zUyEQFIri-=rXsZMLH^8+l1!x}QRg-wC<k-AlpH3w^_5<?6Nw#e3haeVE9>!^oEQ@| z(|^4035tQ)fyn&4ytS5uO9&N~@Njy7LAaE8ZMay5M-J6tIt}J*mOjFbO#+)pv1SYH zt!^yGNhT@JoUpSkJk>TMp>0{n6^`s%>qgsxS6cdSJyY+fi~}6FWEZ$3M}a)>jgZg# z)L)r!*c0R`l8J4j>(Fs{)50@;iw_c5$f+VIQyXmQYF&t%;@U%E+WP8{1YfeOM6-`` zzIu1)xp(<Odw6SHN1JWx`dD07oPYHCdk}b<%n3WWr#uO+9k3Y?5W6?>V1$3}XZza* zB;H}x-yZ&G9XYE+2{pcZW4uFt*VT;=Bl`a$4|bQ6k;=QsHYfgoK3t*QBzCt*@qnD% zKgH%~zmFB&`Nupyh6{I<V$IRWM~<Vo#O;b}T|=B;P8N|AA(39QCBexcei%F%5!7ie zEyH^cJ<+|D`xASe`~3_+WE(>Fxf9NC>sDJqYby3LmA{qr;S8)e@sN&m=}YRu=Ipn= z@<U)0gr4t?!^qHHy##oJ(riniOE4u#ezL@oL9hrad>xuyc)3ugQ<1c!ms7SshVxEa zhdb~#Zi1I?`T>fsIu_Lv?{hHVu*q2;Ab%s5j{-@*jgvhe0*1mhlj{h1rh>6z1YR`b za6EqZI7cAa*z2=rF$5mF;YR=X!owd&E9S1N2iYace~8VLiGm6^r_CiMXH)M%9-!(m z)((R8D9a{8drk7kHgO|3jh(vk`=>lP_X+HWW-?jEx#0)-1l?uKf#k{bcJ!X0>lTc+ zdeqZoEh%w%x)T5$YW0gKzVj?CM@$$0Vmat^J&8f|bddkCje*^4A*s;)of^ix74>bL z+julYxBJu=TN6*C>0VgF!oTMI9FHO|-eD)a+ah#D6a@~NiE1>DZfIL+t{7AFuEand zESe40Gq;xaOk_l4OJ(%h$%=H4z%OWCc|Jvg8<LEp*w!COtx6ZC{?~)0?5&;r7JphW zP3K779N^2-fC{_8Uv9X+1^=mR=Py8Fw6+_n^7bfqA;yy_7Ew`w+U&EiPF8w^ib#s* zSdPuuDM10O^5l`#QI7m=a#F<5{M5m@Vf>dx3_QGPxrmO%BP4f*0){8?UTJgFiNARK z=01RD*I}X*iy%5K{{!C4N8LF0L+(v8N>(u^`l%m_9cIr$(%V6PKf7I!2L(kVT*<nb zV7r%hf@^!~D>gXiuadXp%B}u<yi%OEt)EZur>$F&ftw1%8k{p=;_I(RWPitQ`vr-I zB#-Ru?7M?>NqY-FRqh{8u88lEvbc)XeS5rFd%X!c+=6J&Nen0C_~}faW7sM62=U>k zd@tK;sV^<bQM8ug7>hYs<&gQ{w-!buw__Vj9XRkvkBC3#!x|6eZR_Ml9F?bjUC`SA zXb6aDr5V#|IG3h|zr)rO<VHw*r@wbj#62YpzQ$wtlP!I@96!fOX73N$$t@%Lr_KCA z?v8pEo)<c3>wgITXUpelOaD}u2>_^X2LOow-@ej+H+*h<|22HX+Ya2np<#8Yf|$j| zI|<69`?e}a<eB%RjDF$H&!!z21qvn$g976MQf7MD{(k5Ea?c0P^5V?Q-R&;UiX<y= z?D~B2e7#sso-Cp4_S;WaYoB;D>!zVu&dcesx#Xw0qW64P&YMlHk#AC4Z`a(TsIFm= z(lgaffBL1Fk7}m72L6{(O7pc$*SwQUlY@@W)3jUC1_54qb7iuPO13pamYjm(#BIIB zcL}e{b7|nOHeiW;djw&r#r9w1g_Ret@78V8)^>l1U>M!{+&{8^OMUxvjQ0Mb!BnZu zaQI4hO+QvEQ+J_?y}eA=Zp*A6hkbRnOIPh>y8kA75A|`xhxNUWAa0<oHfwfr5~_Hc zZsJ`ESRkO4!8m$pA}NGsD7tmmePM&}Y03t!hZb_}67V)h-7g6`?GjD;-gKFDOnsG9 zx0wYB@#`hr#QLMU>^#ZW9QrLQz~ywTg^7^j>4O3jKBjplxrq@g=BTPBnlu^(eEwgi zfJM_!j4^=zvnFiwSTKnZ;S%4Hu9`Zl9^kE>`s}*&Yz84%aMD*3)wD;7g@Ec;E8Aq9 ztuMF7;9%ih&{6Ye+X>8CXrwDt2|$nJ&<wsIcUAx*z__K#U~aykq;~@Y61@SuQAP&` z*fsOqu29PymZ)YQPJcrrLaeX}mR$$odwK^hG_74EDPqEmr;Ucf<%@0V6ca_P!2#sg zdK4PG{JMiy)ZI%N#ZQB{=q0)1tKnKaXaj0$Xg)rC%WK~RQi>G>+6+jg-OPN6kw{v! z8U#Kd5r&{=qU}_qWcW@tv4ZHkM&Mx?O`SDK)cw`7CWz~*Uk4@dYas@EkXHW{_;QP| z&p842YtUBxHDvk<o7^ipzAmxJfFED`yCoQGf|@jFyQv>pW5ngxCLBLF<d93pX?NMx zl$xpdO3qglZ^#vtMg7gw)ExZ;>Nqs$&WfkCfpVO6vRywi<|7e5sI2?yb#;(NBlpaS zzNjC_H7%-xEqoj{FDkIjASxM?(i(nJ3(J5jcqNF1^gqfkm}P6retEMcurhGOivd$} zJ=8>ug(E`BqH_CPD!DL?F0E5Q4XB`Xm#zv6e4@x}H*f^l9WU+^!Fe!%U{dS>M0OK- zeqP{jOpBs@SBagMMtxVswdhng>vShTGD!u~5Go`z$ast73WNg?j3y>k0ZhJs$bct< z0^xj1NE)eWgDz-m3rCWv@@f0t9|?3Ss9pVS7QC$eYZLt9xz@722@j<am{_LA=w63a z+rXP#tuX!f(Sil%#b?)7h3eDmpP#B9VIpCg@f<1;qIYXlL^DAw<c2^;r`=0?q>u*8 zq2(aiA!7K}ASRI5AY$9?rUvP7FroniLwCS#LhJjg_;W0@YhDWBz$JO+v8U4u_76nU zBiG-@QPBQ!jQzpCZ=>!{Muh`Cd3KSMU3`$NDK71d(3pzt`$P;NnTW9ie+79~C0Qak zV?l(lr!IZ{QUe^W6{px3Q3UZNIR{45ScxFfuHyiPEWI^t-Uf}&_^N!6O}AiEb7;u| zR)O*%<ckQBJqO;{bq9E(gwPY)F&@5fx#b()>I8R-IfbL-fhoOH>Hz?)Iao-P5+Lb! z6SX8!!He+fl0LiXSv3Wiqm0S`F;O9K=dH|9o0ccSFH!E=!~Lt^69t%EIv+6fS(bMZ zSEwt<Wx}|ujnUdQITD!}f7zO_mMtbggI+c|7dB-*$s8DcP~1VcSeVs(dqq~xM#@S= zP@r+2+Y=Ctgmt`%#S7o;kd+dqM6ZNQKt2s7Q6LKP4KrQMm)9AnK)tODu8Imm1#46d zoh02lR)z+SN-)-_a7?Gt0A;b9XqQ8sS>Ifbq~fXe>FE19BYWVWTg=IW%T~<-sMgjT zk18m*Y*7vHd*Fx$<{fxd9GT_%smx;|2OCLFDQnQEn)p}nh%j@(7+{M--L?~M_{uQv z9od1?YVuFLU_R>N>o^fnH*k_Ki)VqhcSrHsgkW^ZaH?RjJ7jtvMD}+b5LBIhrfXY$ zz*m!3^E`XQTA2hKq=^LqUHhiIMZEz|WB3W6?Iz1NTbp}$RmkwI^{Q!pEA~D?h)^f< z3wss8|GZ*S%68p&8NH%Y!WVgYEAe(9h|M741n}_!J)&#)(A045J*1vy4JQb|<k(3g zSY=eq9Cqms9L$c#T4IR!V(UZ(o-9W4jrnOq`b+_xG)YwOfq4>vVGg~X-n9e1tI?oz z?36xGM*Y`r2uK(3oq~i!^h^Ar;2R;hKEhp@F{vZCZ!T9DE?>~Sz8{Zo9M|@N<TW7r z%ZCfWFf8UYNw8JMnS>xKc)&n9ZK@eu-vP=}r!}v%QXAmUzz-2z%tyQJ8`}?TczS2! zcI!3124e~2J7Irl{Q<4F)PG2G0j@V?PjSna(M1U2{^<v0<mEM&hO7zswDQgmfs9Y9 zTQlvPLBlu`R0md9!`p<MdQOO&@rSzs(bVADYO$b(w@BjJGu39V)FNu_auSxU8<^!Q zgzX-~{2RZ5Ln^V-fT+pJ-fRSiZd%JLDJ3_^M4FlC-{m+lNJ^>9=rJ>{t9EKY#z=|_ z@><ikK76diiy+RV9kPM+3&rA6BmjeH9MP7@Eu}b$mzEk9V@}H<k!@jN%$Mto{hZRl zlg>tQv4FA{Vg^yU`-`;q)MT5>&@B&>6?1}h00X7^4@I*>Lf<e62`?`=4!l-P@-UJt zU^p<?AT9on{S28MU_L{C!BV~?*g>{YZ`>G#a?s%|Q&Rsp34SM=8pOOvq!}}$vUKyZ zz~Hb8*2AsrS7&4m^JCKtDK2gi4zCU=yw&I;6QhMtY{6MJHPxA5pq}nW7*$Jld|zKk zIf0p8Q`o)>v4Mg@{ovrXOI7-$$-~t6@(P8N^rd8H?1BMLaslWi5#x9323So1Lzr2J zWK5gQi;0m9=RmPAHB4N3;8F-%VB?TAghYH`u@`RPg<C<%I%Ww`rD{fQW%L|&7X6U* zV8dhjUJBMY2<pZKBP$Duf9P*fR<<YlCuz?5RCDM%J$~=^r;CnX@L7TR`)rpC<}t^p zNzkn#5?h8dA@Ha%U!0VV-YeIr0F%y#G5G9QK8YDnz{X;$zlyhif-R!DKO=99FP7WX z*<>}xpS*7gO^jJvh=}2XQcxT2`C8I>F(yz{kwwFp8dj^B5wno66e#-Yo{?r;*pO}s zZ-U*NC%m8wtgc2pp>i-QLc^OVT%0>CJW5;v!hKb=g<1GrMCZJnpxPlIk-M71={#eG zUHWMyVG=_{#%^avr7um>cUK5im(atNnl*XpND?1&Ugk2x0-r*X<AX$6vn-re($B(1 zLy;)?PmS!yRAxK@LsA)!oIENG>SHc275gZmE+1+jO)Xo(sUujB_)!PTE)3`dSITC* zH{|X%QEJj{P8?8_#>FhT-#rxR3zUp)H_aS>?%Yd^vt**U6~nz3ygWq8#v-=!Ix-P{ zixC>QYr-7&K?rBuU$&KoNKR$t;+@L}28m5MqAj+NKRbt2nZ+HtZ0QRY20OG--u1r9 z3Bg9CQ){#!3EqPcE0oyb2@!JpTnuAJSA-d8;!%U%(cjT&K_KBFw~gkr(+n<s(`Xs$ z|Nc?twh}UFuV?DgxpK|-19wUi=4naGcTGMo&nJ^6qT@R4)ETmu<d{COd0M<SgpQ-| zZ`VSp6~EbBc!C6oz8APk+n-TVh(otYj4dPp-<mY|&6Hiv^di2IoSXtg&}EwROR<P0 z5YT5r=0T7H=B?U?Y~JG_fwp!0euz3d2tEFVU%vam7!SiIm!ps0CktX<*)0Z+?H?o3 zr!o^3tzU^7Nc-xT6fN9a1JVVV8gqn!_|^6&(V+~gXu<OW?MLrb?pZdd3|6@PLxVPt z=t-X-Lq=&3VBU_SSckLR_*%+CYQ9bxoDUQ72a+kk4+qZac(p;5x!O3PcPtzeM8;>z zB#{GWJZFr_iPSJpI2_Q<m$BdpefbsoF#T@`VY|A0egZuS6Qu?~bRcxTJ~3B^aD%>d z1i@p?$3YWCoPC@wN@~!gEI80c7d@GQJVl!0{eD<8H}DJ`NjDiYf-{Z$(X@f`4Boym zG1s#cS?t)Gg&LZhkE_c%$K-fQSa3Xfz2D-`xYc(^xQHH(gTjzmc35J}1L?t?OM|7D zF0bnvnY(yOfp^>BemGla!7DM(){sTSpoh;7zf;7S)w+2zU%eoW86@wNee&Ds+z90y z5!xhRfKrJN=Cgu%&F$4U&t23Jj37mQdLOY0<l@Mc&cR~LMc169d2DX>zMxuIBgz^4 zJzlX>9)NT?(hxSIMD|Tz%QaJOn06w)g?dV-cmNXr00BX7Fb5(yhG>|(qe3;2s5zj> zsV2&f#|RuB&DMBDs*Z>&C^Z(T;zYX0=X}w=B^e1QgF~y-Crzq-m0o>-ZTN*O@I%7V z1(PsiEx3!vUe-@k=x00A28c__r{}F~by$R2|1$FLcUH^`8)+AlafPrS7e*Y5;lU&L zc9rU>c+j;{6&R3*)FQyh+h-Mn(s96h1-iZ%kGK+7W*|<Fk7bm(p9iL%17esZR7w;e z7?Arb3PskFICeWYtaAqUO3FciJ-MUm^KZbZ<p!n*I?fTj*+E+rOjD6Yl|vz0+!Xt9 z5JNOD-+)^bO>rZp=mao9rjcpR$8SPiAml(GN>DQ7EedLv6vpM-$Gl(=WZPxF6l&$* zrQBC3D~H{woEKIE6J*UuIr=+(i8!!0(kWq%@yAt%mxFQfN()rA);Cen(6nB=lSZxv zrv1#HL=Dlff;*EWFEebLi^OCqdLIcQK63HnoA8-$u(E!aQ+w~>3+*ql8nUF=xXjMZ z>xJZ##kd5f?4=}?fMLc$^MioXyizV`%QMpKy2KQ^X`d*swoRd0bR>9Mzrk&91Rd3# zut0zMd4Z5GqCs*^xi{+?vIv3W*$4?$3*Gu!7hQ|0ITLFei&N2*@c8PExbKyXHZCyS z{4HK|Xaz&as8?#|IU=&*LE9h20?BQ{7m{3h#g~W(=RKc!@9cVUx$m7d!SF(KV@%Ay z*$~ze>NX7-$S)?{5pAZz(-Y!vX4I#5$-#Btg`<)3%8D||VFj8c38bBDS}7Xh4I=|u zZ<)w;qWAEO$)DCu#7reNls+SIK;l|27MMmGQWSa`DeerYZTKAdGub1k$AfPO{Lf2B zx|$0PWgWqExV$vyw5#DmbMx#6vEC)R4Xdck!ZAR%Ekzc(Htm$S#=?tGcsDB1cSME1 zL*(4gy_)fyYP4YJ%xg@%5(*Z#b=`W#NoW58$z6y4ZYMn=#V@_eN1fi0Ds80Ww!ZMx zdwlo<pXS^Zz9Elrb$~kK`zEkc+zaA?u(}ugRWw*usIuMmJ+KW+^+ahZo|J)V924=R zB<;|Ef~6Les5|Y?7zxjzz8ZFk=Nx%chp+!f<4U1<3s^ZGb{B%CbDGkUH-r@RU8At{ zVGEaP!_J7ba5&{PVJva>lEh8fx7VbRmh)JEcx8}59F%$MVD7TUirsr>IEl`VVAM@} zw-L_HT19dWW+1Oc+|=eUe!DAUhBzxiq`$;8e#2<b!XW#a6Wug<WvQ^hl+p|Lr3>Ku zs(9#_BW8BecxE0RV$lqTPa4(H7*C$ArlTZ|O4>1(R5_64RugabT8wnA;O9&#DKyjG zAZwunhcLj)7&hsk{BY-M=L$!opCl4;ebFSUd-pV7wsq)I$uLD=F)Lrb-yM&PvEU$8 z?AHuTY0%%?`Q!Hf%6FH^mml;Q$aQwijOXr*!!?2;?VBCy@{lH?<~N<0!bJv!?U<oP zOf1EC;a7;HUuTNTK7kKTe!M%%_&$xIMTP@KeQrm=zBh#}zCppAI*S*JU1lw3M&Z?y zWP*lQFEgM#nCMVrm4kjiVbx6HaGYK)RfW=HV31C5yXA<ZpsM^k2{oBv6f~=nO53ko zH_(pJlqmKs=Vm&(aoXGEGHy-zdj0l(CJty!{3Sb6MEpR<A6Po5ro$VFq{}$~>nMg( z?`@Uw@p3!R2aL~nA`4B;sPvWaer}qatV(sM?YAcGDSUZ|XJK9!Lk1OZ&_B!Bg|JGw zI>G@x)el|6il}?HX>;)&N15J-;Ipz*{!$>UQvT8)&rJJwclvpTUPMv#>}9N!Yx;2Q z8T&ZaqfCtSWjdn`Srr5W(ED4HcERS*Cg~j|SU~ginW2gqE%#pL7J>nC#4piV+8xQ_ zcb%a}1WaTw4^q6<5YzSzBhfJmW*0jpE^|R?QF}qDvv=h7Co#e9GM5&}KE?npJS?xE zNUrr9p{Dxj_|ACG<M3HJ+A+?PXzzf=Z8qO59r^i(3kbQ@6~hkHhr<)D+p^yj*>@=T zJG%Q0(L{MAatTm(i&oUJa0=6bQ%<<JRTRh0TZI&@poH@;JadRi4$14<Mx<46Km<pG zVpE-y%z6M*Xi#w;{*<wif84#M91`jl<$Fpaq(F%eH?%UjLv%vZE?I~!+Ye$UZmEGN zJGiJ(WCYr6dk<nF!FOuV(_*Q@J8#U10~~uv-|qQ<Wbfix)-m)5HgOcsy<33wwz36S z+QeCKI!rU6FuZCLDSOCA#<-+yt@^U1d2l5ZWLi5cp&dvQl~MC_d?pG1=T{<mB*~tC zCRu;6<`G<gaa&|uzrd8BW9)6KvJ1wV>b=v&Uwm&d(GA}u)k!1OXOQ+mO>FEK59meE z7-RfEJZ4A`F2{<an|j7fBWvfn;yKDmBwj<EiOrizSli1|Xqdln__HI|VEAD8rmf}} z*29SdgPhl|0?cE)>Xn!Q_+XJTzI$C9YNqj0hYBXA%3THB^n->1$P|CawWA6hDf|73 z0^ddqtK?_g)(Id<=H_#EqCxo_iB#q+4bw5goQ#tg_WQ^wn6G5`Q#&ye+gjTOc3|nC z2ZPxuZM4}wyKN&zwh;F`78Xsi=NN9=33M!o8u-z7?MO)UK>9JMh#@E#2{o7yQWl01 zX*a1pOlsES>lC2-Y1Eum8Q@zpM|X6cn2J_x`b7*^rRlW@TgRSci&mG63Lt;-SGR@R zEMw3iKw}^j(Vn{^(s;Bfx~S2WeJOS0ZH(piya=474@Z_Oi=VqAa81jgQChw1%ZH_C zl9S~ZI#`a$R_Qm)TKP|I`pQ_}EIYp0p4+OqBiXenmF8Mbr2`J;BQ%GY2u@&H&rnHt zdZ{qrA1ihX)1K*1q1!(L=zIc}GjaN6DK@a73-i%2p@=`+4bBiZ%sw{xIJtQT*l}D6 z8C@|q%!H;D#?}uxMw5!NiIi6GHrctlN}W(s8^>NFo;}t>wkpnrP$3ZS&fZQD4*4zq zW`tt8vPR|);npmSn2W_@STbfLUi;;csw?B!Dr}{586_0tqDtE(8fKJ7gF0L1d~adz z*>pCYqRj=lXXWg<CRFs|#${K{#o+*cdfotkc?<Fl1l?<rzzEA1#xwt@vcpwKrYhi6 zisBN!(U^v}cGH)wxL}W+j`0bAztOU@d`O<<8<&QZ@(mMoiHeMy>!=1k6tlN%k1tzl zN!TT|zV)eW39Zu_uyIx34~SJX#Or6Tip+AH0g3YZc!m@4zdwsGV(VrH7p#ZAXGCZV z2C-rmj8olcH-E?fTcvoeab!?t<HhYRq6fYFuT5nQ*8^%t$DXLb%$^~9y)l;|TAG?8 zW(<V>C|_9lR0O>OFbDcsxW{xUub~PoP<UWr92hruuDx94ZFgqn3CvM}%jV9BY>j>- zmi4;7M<nouAl;Zq)Ihm#+!_KSd4IRV^mvf>-TN<Yee|QLD2opEA3BU46vpYo>M1SY z6=Pa(jqkJR3V3ksoVN^1$mCstKTMjP%*~NW0Y>Qr)SI5*KCjquPTJ@`_Y^IKq*IR> zK)7Us3a?;dG*h;mRcwQXNeuS86tf;lb+NlZ5OHshd_mA&@?>g)z^kquac-_+;t8Bp zIo%u#eAEq);5Z=U1LoWlhY$>*71UAZU>v)@-%6vfz9Ys2)8D|7m#qkGnwx;#N$CkA zt#MnmTy~_Yb|ci8q8_#-Q(tuG`TxeYOegp-(u*%Tfo8}+2hmzE(#VIJp-SsY(ix3( zB_yfF*GyU0Sc&x%@>c&-M~%Y?)bwvui-@(1AwwyPeXj(<y9;Zkj)G9*kUzpJh>|Em zgb-1%i%8It&R2s#FvYNgt0cY?pEA-JD_T(jBFkyj!WudH>ShjXxYId>;#n{W68&rw z5(axps1x8LVpW;V-Xjv?!m1F-Sd#A+1$jV;*4Gc`(3q(*sUH~+EV+=yu$#Ek)<`Fn zz!u2fvvc3d=s3volR+8-gY6ee%UuYoTsX>;=;zfnyC?X}*E~S+id&d<x2m1tvZa!o zD#f{J@Q++xh{-u`ddOSexf7iQIwr-SZrVDkxyJ|S^56N{oFhg`gVcknn6hKwfyJo5 zL)83qRtpYnG`|GvS3n+;;80eXJa=2_=$*%Ul?;?HsFOU3_zltGAT#dI4Mn*0jjxbS zH2gNC{pfa~m|1`5uWl0lv3DF`uQfg1qTzWwi3;QmJ+C3CPj1-|f7#)WG=RUS78r(o zh^-4kFA;Lp@p0o*mpWWs7K}>;>8?CfSyCsj_MqPEg-D<sNzH+%4M!1Qz;COmB%&7A z^i%~xrG;iX>J^=Bv@D-tmIbOK#o}2dQ`xSCUAvG=gJrI5vvpxYOF30>N|g&?i;sG# z5`;qYD<`5tP|&6wAs|zh3I__eCY{v)vHkcG46gBO<ul%y=ipfW+NehOQN$u)OM1yx zdY<PZzjBpCGX~<PBvod8-|PLYHIQ)-AtvI@CP163jiFNtzga!qjAu2-|0__6n6+kP z?Rdaw1iSquqk(4P)~tC<Wg-Jb7%T00g{EF-N|V^$#1?6ZA`=D(28_LAotQpndKIFz zgYf#nWxdXe$Qd5rsD=|mz*zO}x7VF#d7R+YA6+uCexY&Cl0E9*Ta~%ROJ50uR&}<y zYDUsCcj8VnT56%@%Vum@7%kbXtYo8E9vOJ=pd%k0VfDvmN5IV*2vr9WBxME%7g%-h zRni-zb_nVx^<ykCxHt$Zu{&6cj2NsA#DBK2__J^>y<87^%CA-8I{b6bS!EreOOm5n zrKp5b+?aP4K4ZCG*tuYw<8{{5XUcz~xp40*?lHABs}IlzOD#1(ffqWjtnAFaUD%AW z%gP6o%Sp0hXNBw7{7gO8Ki2L*auob+UR5xtpji9}xK=9G8NmQ5X*F^{+)+o-%cCM( zf%Y*C@B49BxV|)mPBV9Q^q3y@s4F@jS+yVncBsaw&B~971ZQ7NiLR)R{{ndRh#dQi zhFlt{Sunn?-+pk=eSv@KIHf5T*K9NlVSn+k?vWFvKwaQf|HP4tYzPK`fJu*n`JE}F z0Y54g>&MF9UN)l_vnX8>4$2xxT$1d0H#zz|SliKPP`X~vC2D$THZ)5F`Y2Kb#-h~O zDn<_z<^9UVWf*s22<nT^=T-~<=4%+8n1$5gC)mA16JbNL=)XK%D`w!Xhjxq2;q$!} zea&9GO<-7^9!FW*+dD)iOH3ki*$>SIr*5o)_}%xLrQ2;p11w)*SLSSEFOZl@ytFx^ zOUV?%x}w95`ZwkpZ`q&SO`phWZLIURg3)b+^O!Cc{Bu}n-HgLIic^<{5NWLC3o4Ue zR8z<0_F691x_@^!4BqN=_}I^%M#?0UYR8-D2QXFHOdAw-$c+x)Zs+xX-kz&Zvg?1& z)*1YPci9uQ)_5Ny?H+fp>ixbR#{ZULPcAuE*Zco`oP6f@eO-3fH-<7`v)==!e()i~ zs06FsGa@xK8qnYGd?&Ju?=GH&YuwSct+GRB7DjfU_FoX7`;f>OZ)V@v-5FJg8zpvz zUnLg6?>4H$s`q{sKTi|G%EgD)`AY8%E>^_Uhp>i;kLoWB_7$cyEP1n2nZn2S3np*t zJsgJCNArQ9X*gi4q6U5`QIk7_iMzjUh&<pTUd#{<o_J6htFhlRmUeqIbyYL(wW>jH zcI%Vv_K+Zd%t+O3Uk?B&(nt3Qb3kc*E=}Z}SjD9lW{r+zyf6-yZ-IqJesy+^qWB!u z5R=<dj&$!J<!r%)&{0;}sTvhnWm&HYQX}lj4Fy}Xkh{5{bDayTksf<d#6eZT;E7wi zDIyUmC>O#Z@)%Z^=o~9@{SjB31$QsP^DqegAk#1v%kXKI0##y>qgC}Q+SGi($<b+P zq-={}M80bPxuy;w;F`$8t(3=G@Zwc2b2puFGmR34Op_p(BB&x=%`C`@{wE^W5FgL1 zj9+dNSZ$piVwqF*K&{^S83CUN<nxI_Ry`%J_LjMh)<pbXk~SFFVlO#`XM!aUZpN=b z;Q)qZFtt5Xj@-q3%R@M<HK3hp!m%B7)UmssT_Dfx>kB<^E!x&@2(p{}#eR=E5bztA znh~67am-CGsY+yi7QQ7*aV>E!a!?GL@S&yiOax^?Y!m}vK%tUwv)TGy!f67^LDhZZ zx6)zVZqM^uJ&xh;VQjF5j^aa-akngS<A#ao(zm@~>e@O2iwsx(Wq6tY4adKTtaWu? z<v(~pqzsWKXhup+TkC7CXy7az$BP_Bp=IZj*##5LV}_6=->d&-vc$F2r1i=R&rb*4 zlGr)vOt3mh4NXK0vUOU?up~4&_3zEPXex$V7k0o+aLk}{z66FREtl(Hw#CB{VPE+= zrO!ChxR7(J<l--OQS_ci8C3pXG{^cgN3evAX%Y_u{W(?p(NG)NegFjAQJ;u!|HPNp zI^iG5F7STaM}^X>{dgCDp3o1<*?&`B;!9Fmd*<iS#3=$l{CYoBXT0GLv8r^$SKqah z%Aj{~oE;x8gEGL=9R7RdAW5wzBY=7_O**49T8(OFr;DaIub{cYKE}Zk^3cqAy@FTf z-Wn`mpV~1UJ$nw6JzX0eYoU=^n|)QsKJ5{MU6WWnnC6oC@<BVVh<_3=$|Wj!ozIG) z4|>%;H#tX^0m19@#Cwqa8%#LWq2%g5&hy5FC=!h*pSQfaMq5i+pbT*5OL<;v{eCwx zDPa{rDZRS~t(%<t$Tr&k3)ihRxP?i&Pt`49DgBRj*VPF3+A#F}-unthdUZvze8=jA zXjvcCcG(_yCC8y1O*&k$wx%l|eGf(z)k}wAG6#<f=Oe6cGcq^USWjMu_bpSu)Q|_N z`alMm_^jQ4eTfB2=f+*WF33}I&OKcFphb*~Ht)gn^TC+()6K7JcD-T|y{}0I2KTry zaI2aPs=wU|Z_{)}zvuDwa0$P@kR(2h2>6c<vOj!uXOh_xw?c<Ujl5%l{z2JaRp<D| zNj+$ffED&CM9_VljC2Q_)~STEcdCk8ifN&|7YV{l>4?Xr5U;>KUdX|Uyp4VjB+qwE zGO+PV@fR};2P3^iBT>E`q@$4HbUks8?gubA_4Kk@CoikK{Wc?aclHDCN@7q;dJ3D@ z&-wZmRq6YFpD`r!D7_1sEMIkai0-lC&UIoOnm?fJjTO>e!uEx9Hl`0MLYU$#K}E@x zLgf>FmQ!~<y#*ScYBSs3$#AKSIuVDsjhU)I;?KZWlnR3=qPSGOA5B!T#aJ{BC2BLB zs)XU0{f6p2v>e(v9v|=cnz`vL&=-0u8O9M}lIL`7&fIPP!OX3RFGGc6x-GmAv6tUg zI`PHBQF7&n3Z*YL(XdY}IxGp@9TT<*4pPY_^BqA0!n5L;BQszTRHG|$4)pM4`*ol4 z2`1SSqV0q{dvXoD)p+RVTNId+R5k+B>3x?4Ta4X|`bRyAdN%J?Xw*oGb!8j28LhD1 zS9il&C>0FdNW$<0r8vXj)!(?8XDr=TVC17c!LN(ks(jjS?p)p86(VkzdW5HZw%)se zcY?fQ_O6TX3zLH}uX48YxQw+O{lRuweY6uW5WP7(L|V(I1)2xB9^>E+RCO%v-rf{U z0&#`$&eHRTlk1aUvdA;cRrCq(&X8?oWp8Z*I&g02);$$b;UAG{SJ(EuK8Spo6^7w9 z@Aq!~rSs0gSB-W6`4G+8!nn~W=is(Mq}@BSNUo!4twCOBp9BjgqdClSpK+~tYS8v( zYPIyfvBHVG+1jc2->%s<pKZ)tHETY*9u_FR$H;2onf>Xh2NW4K55e}0GnZe`4WM>p zhqb}ZZs)k)4pNx>QtH|i4a2qCEu7!BVK28Rh7yIzs4&&n?Tp_d4wDNgT^u|;Kg;AG z%zNPN1NmUqQ$^M;qI1QK#i6qF<uE-uj!~-Qt;e`n)!nOX4q^u%$_`Z^jTU7kfCS}o zubM`jQ#QrFE;r{KCHC7Q<a`AaOMD}@75&BG1DjrDnQLw<Y#|v%RdF+-Z^G`#4bZM7 zpz<c_Il%=Ik-FMxN0|@x_mxim2>1h>45NS2qE~?AHIbN>V#PE$@*1QwBcSO!=_QVf zWg6TwRqHnN8P_x^k?>n0s6WN)a}XhWa=n%fbb_REvGp%~5=dHk%9rof#w1d^Ge4aF zPH5yv{j2LsrVK2;KyEu2#B-I>8JHC-gw<A_yGGeJ5K<7opP-Qm-EA#iVIqE=EeTV1 z+pIDr9Onca90sG|uQdz|R8nyL(7Jq|uedo#SWqs<?asaC*#mu#Z9Tl|pi3t~a}2-L zEu=6@+^=I@&`J--{f6~78)o7G#zL?UF#bwD>I=y!R2f!1xD2(<)*=8R%uvw9V~Wq) zoWOJwR9kiIZ9V~6l>Kt^K_K;_5=Tew>z$Tv9z%lNyp1!Y9O=(p*7ZP2ohw060$8z- zqR0LH6B@c=$3wX(HMe2I9_Pr78^Sb5+7>7aZQzCBm2g3op7WX&PSgicJmY3%D$IR2 zH%OJXqxn_KX)uQS^?)?nXuAIASF(jtLw6lYnU&B=rhxi)w96|D;IA0>@qVSu7n<37 z^yO>%WCL^Tw{7oDrE+th%eovwjbf=H#g?`Iz%M&b*9&3>8gS-4{j1+$X1Rqh*kloc z<??0-ga+k{__8HW1l!enubzLU)V?5o2z2F?)(=`w(@NX%-l)(r4pv8<#jw<xH4_kW zg+WG9pKLloSV~?2EAAzXU%Tf%FDgZ)^?g5=-|a#bDS083#tVk!2l{J^dtD;!=O05Y zwQ%o-DvJ4Mljge&Y?n2N$kFUP?lD8NDEuOzH^+ptm{>2>LZ6<BWRm;(jnj5F0gtv! z3i1l?x7K_vRwDLb1EFDMefJJbO~uA+F056MR!19Fdwr!Xk?zHT&SH+fQa9)xuSbuk z@%~@MmqJ_b=o0^ilT_cl8zyLwX%kVZx!}i$(gkYH@&gGsysLmKd?lQGhxCEM2L2&x zhpfHE*C;NxJ9F#q;RW54V=2t;z3L?jEWscR@9<9;gT!?R=Ael0p`g&?Zd{#{gatry zZuY>E0q}5&XFf$QpT^AX-4K0rSjl*y4I{@34Wp`OEM1Ypb@tm~@)l5|^Baq6$7nD& zPA+d5%IN7R8~s}FiEr=k-N#u|H!`D8=#$G70HZuYoVL;~Ien*M*pRa1YK@8>h<DqK zgNuK7R3z)*H}YZ1;Foa65G{IWS5h5n^23QkxV4q@txc!e9G45sH0$JU1+T>kRcH6F zJ!a^ee|KkZ?3U!APUUqkH>t2U3-n&cYC2wxEeV^B0xyYFCZSlr-NG$U&Ds7-S@G~P zuM3{Z^7BaOL*pZWRItDc)NN<#Z!sl;g@^FsP|>UCaruG8vFhX_%yy~mA8%a0!#y2P zk>XcQW5W_pht%l|Jm7YQ7E-Nd!a7+zN(|H3El$>W_6IBl`X41;9fCVpy})T15LHQ_ z_JdZRq3c7FjB=d>vE$V89yKZ=-YEXYU!WC3zRZf7843*LbJzjFL=1(k!pi=-plR|e z$(Y*4l{!hGmsVu*+w4tz&<&JO-P`uMOcs$Da=DkeL!3^sqq;Nlv>9X&lk_ITQD+|T zI|Mpo0YQNKBW5p$=pjd3>Eh-(0aZT*e`4j3QHUY!BYW&Tde`8CK8E`Sx8~dA{xm$j z%=d>26^JlXY~TmSpTTd$DwCHdvR>r_-<Vu|G85l`^S77q*GZY~R<X)G%-OGY2J)t5 zyK<nThnM|6k2^r$*~=o*ME5wnVJMUM2<cA|()&NbnmrqFzttA>2^2Vke%13^x1<AN zetRCD3Pa(3QSQlfNcXN&{ibp*Ix81XH}mT4Of478My{%WrB5XG4;Y>OUx_%q30hQr z1>~+Fyh)#+!En1H1ZLP~u_?c(R^+Z8x?e6HE7WS3X*h{;FXeKdG*M_9k8q$YD%j=y zR<W_yGIPB-#RnlE_?H72y5_Ea15N-&YU^dc;Q78%3EIzAQ$i*he)h{zvx&H9Yer*b zvJPBOchk=i{;rGw^WO||hG@7!-7Wrp9bZSmBYeCg@ME+%6BZ255bP(FdnH-Ymwgef zx(od>CE+d)yN=M@`5HV$?0JwXsGk^z3nvPU?do#o3+8R)WM9&zyu0kA3G?l^Wo)!8 zosy)v;e$yFeMM>A7Blo-4&)1)#a%7Xi0O1e%%k8c)no6M(u-x+EzWFb17W$-OqkR8 zgX>Da*OJBun&k8z<|N4e!JToy5%@Zzg{WH1Z|hJZp9k4TO6;49Qg-m`1Wa3JNu@v> z=ShPzjCm$y&Pm~9(v-3fZcU9;-TN6xvf2wID@}8E^WjkIcPS1ZbeaZ9P1~Tteqr1z zKw?|%xH?(9yfDg<rxsuTtg6B&>*+l~u)8jAX~U)1hQb}WB{fxJUU6p^>d@%LgLUt2 zM|XI}@>Lj&GVy@8cVEpWg%V3mVhQq+!$9sVUJ@Nl9|c|(4f5Hhj6zw!xq{@`#3k-7 zd5Gi!51$+V4mO5tAm2JLLcc`%`^lOq=_n4%$zuqwDB&*TSaO+~I=;4lRFV4n7<{6* zQB1{c7?-5l>q0=APP>^d6Z^giD9D)nl5nro`ml|%W@@uzR_xg^a=XA_)JR@mIWy1% zfBeo96g6@|kuSwzSmSDtAg}qwrfCRazfQ;gcXPMop*t>;)+lYU<-;(*L3wQ$s66YZ zc>1@nnT1Zl<cudy?$q5fhfB?X_~~`%K^}adkc%Zsx>VmJcpD|Pscy~S={V}Jyh)8< zgJufMjW(iTiE`^`n78D#Xa8rP_Ep$=gk|d+@|in10Y`1~(o*xU$Kz|hufNZ*ze(5n zrtj8LYK+lu?QtBPvRai-Y}oMJJoJYIJ;J$-h}c^gZlm;XFW6QWa;i~k=I0kilZ69! zb$ZAu(If-jEZXQ+AXGdAl8^jVlt*jG-e4+uCh|KF^q>fzk*J)l@amtX(U0FY*pfq4 z(XGYR^y+29x-3+E7{FY*d5OLK(r3?HJr0)XRofX%tI^%<I$?hWI8*b?b5aPx|0#65 zffgH5yh4sCL0!gFV#$IJcrl$jzruzUZhTAUbFjt*$^Rpbskf{%eKAj$`aD(@iQ2r) zib@Vs$3EQjt<73Wi<*yCBtsd7hI;YV*%uZ}OOPKBoC<EhmyoSf$?poEwvM60dT{a` zH&-E}LE-!lDQ=|`wa)yjWZb$<Ge8B=LEUglx_Mt`v(}s2H^)rvnWFnfp5|V;9t_?k zorvU_nLB%N&Y0gj^vd-`4*;ri;P~h;%`V8Orwr^dvKgqc>716PFa~vjUe2~l&LewY z4qP``l{gh&u+SK0?%Od7KVdTFFuUq2ppn;8BK)<kOfDg8Pd_UpiicKdkgVP3PF^_Y zPT7=am$Z4tr+X%`6jt0SIB#lyg`Db!sw`7kYK>tl2p>CEB@HfKE?4sS>O=iY#wvJ= zh7M#Iwl>kl!#$^$D@go~_uah?UZLLXZ5`uPrx>M&lwPN>4sS(?jLa=Bra6#;97M_R zm=G2*)R+ueu#ek<kWR`ULQFIDBYCsRQb&h$ejaIBK1G_Wga}lq@|lmq{14Z^B)Fa* zz77lX<x%t^AN1GeBf=c|7}Er#WbfK+f#MaUKrvD;H#;%D+O<4bT6p=$OZf+KE3Uh@ zV0dkV#r6J+Tz&J8Fl0}`wK8Gm+%8b4cJQ+zd+g3t+Agc9Bd8>Vo^z^68#r@XW8p_e zdzgDj%gV=au%csO1JQK6j-d9qs{u77gBj!*8wk~PsFhKrB#&w8d9ootqT^paVrn%W zqee+2km|pbgX3z-ja(Ysof}gwUkP!23%f>rkb!*rsOV!vuUs_*z`&ODEMxPHdJ3)? zpC7eCm8jH$r_O^v1IWP=(t<8!e-wWU$Zr23tIweb0fI9(FAb%hpMAmHuo5!UkZ|of zFIgenBEMRz{LDp5waBU9Gk70Mii{SQkZ&S7iK%1|hq6jHTBk{8bL))@s{_mKySG`F zU;tM_aqH(FrBD6BmX10MIeZ<+CzKhyA=pCZnWR!2wH%6komy!uA-U}P3}&k|P;)H8 z8>K$h8!t*U8j)KHBxB;LUXx4CQKM1(dHM`N{(FLqR^HxS)^*5|<J6E<gA*5Ughbut z2mz)8>e2k+YDlCcfzosayDf&(<XFl6XA?^f?UcTihq7(R5zi^Tq^f)1$biT}7UJ)y zmI5WRb{7wh`A*V}>V`_5)7X-VVI|5NrA(F+u}#+#ZCVQwVz>{po>tQg+F)$Fpw3h~ zfvUeqtQk>k>P&)<&2%^=B?sk{D`xLlzSM3=Ik`ASlzbA@`=SpmQE4?blRl~#j}KRn z*SehAD|3GXxskvE*2{46-~Xj!swrE<PWq?S#Ss5LKI;GSVHw++{DYqD;#$XVkKKQM zM}ffwC&^6Tmjf_xq1PQ@Kx}bG;IRpzRHJmHW|T;$$rRKV2=+a1qDyXZpR~a?(k6B{ zH#a@!Ym!N+XjuMX&$8tlsqO9h{%nU=t%$=()b6#FtL&vzRX7_nd$ml*p6*-izdThy zN?86gKtFK;XhFJqI_43)oRdi>XXRWkxBL`OffKafmanpX_w#~0yZ&tNQDVK-`u-H+ zRJD1AGf=QxD}E&o{`Q;Re^IMFvEIWNza0Ge=g--%8>rkKo}GpJqi*5oU3>t7<I&6_ zl8-T*LR`A{OKugn%*614?5wSSy?4vf78!W;_9Aq9SG<zLiq%VCjoRKx@KD%+;y@Kl zVr6KhsuKbe6#5`X)h-3g-4|v68`G^WjO4m_!umPkRjsf3km#$*wK6G<(h^zY5#@kT z07`uiq^UG))k~KgdX6>J7EVp?SN~OQj83geC?{EqC2l)6!13a%I`3e>S*r^_5%k@+ z4%rJ-amqx_;pPv(s?3e<0Ir3Lp!!HMLB1Hs$ePT$a#!pEVprd2YC`>vvbs#rgVCJR zT0Cmf#V*k+mcE6F3$SrP3=uW`1E%R(1wRfHXf3uASPrVnMu-OrF5g7II#s6!qKpM= z|FRm0Nw1PUYnF=?_;6}e8O>Xst;`W@g>woB*y&z(%LcULKx~{v`v{!>fYsUKf(v%= z8Eg)quQ2%=#JF`#*V#MjGv1%bxQ-x2qoQ+@b+`494uyb@uqc3!tPg;%7EGb90hI;* z0q5{j(9s`)kDwK13IP7&snDY+ZUarS<Y$whE$_wIW;!-L<vnZtkL4tEYUK;u1!^wS zaP-*v;4Y${SBZ+aH-(s7RFPv*-($DDln87#;qhKs<=O7`kDdBtSe#VF1Y*N1gf%pY zcgK&55{X#zuq5w9((c+SLkszOSMjL)N<Nu_4_(+CK+KC7iwF}qkYih>4Q%72#Q4tm zv<km*gj3)WHE(U;Li2b2j$t}sn;c@USFNB_5XW=?qpK#$XTaRJ*;)c~sJ!rpB=}(3 z-L`lg*aq`ZFy<s^1xWH<(V0uSy5A)Dr6$anze5-3Gfx8xkL{jYJGO7V%sQJ{H4XCL z=SBkpHMOc|fnQ~GV;Q*&dkj|rO|shy;>>N$d5ff=4Tw5?fi~3ucnVhPM0-?4(nP8h zx?)zV^7ZqgEs_6az%d@_=$WfO<c+1CU)xMIgE0#Uy^Avz{2+muL6EP<KpknA23i`x z6{DC~?A3fmB>{{As|D`c2)s6o&d_7Nf`rtaI#dX#vZZc8`EZUavJhL34khew^cuPm z->uB|Zv}?3I-{eFpm>_fg#EC*4<?HD!$dA9Z_^HG*sY7Hd&RPRX45uU1a3(p$Ge(E zL9AOeKkIGj-gjXdVE?-a%(l^THmj)53{h!?zvZoj_3K)vrZa@S!3z)2_~<1Zf!5n7 zjqC%)X*bTu1Ls39!xo_emW}kG#b(|wpu%>m%8O#&^x`lEx}KFP91cF;MZU!;h(ZC= zA4-pYfwA!vJ8m0qh1xbFiS8BZ++^Y6K>c>{2(A9(a>3eZN%O#*YdKw9ITa+gc9`UG zlzo%duy2=mkO+ZZ|1=EQ!m~NL2hO}%vBPZz3XSggXc@^YdJ+eTf}mj(o_(Ovx8B<d z3vH7|L_@E2uh`DRneCfPP@@`^Fnst-=?qi=Jh7aY;GfHq0o*BQQ|;yge=xl}N+;nL z4xS1rFAX^nb%HPV0^egd9Za-4=)-wHh+DB4F!?wJnt;sfv50c8gUc3>r342+vvrq} zWEZseDIL)Dm1_W242U)q!uwFFR^!57Z=q#uRRo)hMg-{kU``SSk}#(?n_t@##=62c zMXZ=6v$l|YiO*M(gJHc1LOrT%>bD(4g&4WkB}iHzXEmAa8+Y@a1KHlVMNhTc&1V}7 zDF}RnVkh%T>LyJFY<^xkQ+6&|4X8`*CRhe2xz!Tk!Qj6L1*28K%Wacn238?ifKb5N z$uZ)@KjplZ7WM|&?W(!5>8xDxL4aNfj7My&X7t|7Bj(4SpK|vdqCf<dvErdK417g; z$B-u}k|kpe2tt8M@w<k-8npJZ*)uG}djQ?WU@2^QL-KNIN%@1ba^(oaw|M|{``FMq z9i$TX07mR9^g>MD^%UTP1sQTcxB8wcuIOE3L<7X1?1Klc$hhCmPcfa!WpM^96x}3` zH%T0>+i?P&$AMSo#h`{~IzZRKd-|Xgo$$Rgf&T<ot9qS5DGFEWI9&#Y$F|=U!BVb) zEYZmW{P7$VPdDNaX9#!b`wOz6^3Vy~JO(D7BulhQ`Z5M~Ef(5IQqwQT2IAV`y`fKh zAjb_x{-MHVQqK|Ok#a>Cx9i91NV_>?=a=gaEys)A#d8z5p3Ql|22jvNJoLJ?DtVXl z+)Wq;#dbmU!cqJkdG90)js|!SQC!{2l>^hp%r0Dj@W3*l2!WDqP@XBk(PP0qc!hXp zFwy<I_+orf0;63V+5l?7L%q<EYu%mvDL0omIQ9*uCv3R6X63OKqb9;}QSmf-<X#vX z>(vt9Tlml8j^-*v$G;l1I$Q%6iZ<IA(84A&&W0@CH4xZCTB#+<e2V4YLyH`z`78*4 z84I$<<ui-wx$h#}_@^isXePjGX1GNbcXf$FkprNc8QzYe)jS+3VMg?3yfREO?E^>J znl$qPkYwl<HtX0bjw4|4_@Zy+mI(5mpaAtlb!KZq&iBB^KU-9!`DqTzR3wN1kwn;~ z$o485A=iNG;7(*;=QS!x_RwO&Mbm7s<-j$O{WYUO5W#~ygVSm}xtxQ0pPm6~6nSuo zuVVZ<rs)G`^FSJsX>WCW9+#%skqaRV-2?1tTRNN0dg;5<$Wp}{9!7d+!*(v?!GNon z6D}Na2*mRR$~PP;u1VP-V3~WLTny2ZA~LGPgCb~PC>%3Rah`MWSIkAT^&rah-;;dx zC=^4HNvpGid8}ZjKgdkmwV1ZD)0lU>4qclb*6)$u;?m+9kj6<e&^eGe@N^KGFpHuk zb;ua96F~?1*h-?8ofgDge1dQ9q*0Cyz+~JgkEUzdsP__B^DH{D)cKVOtPXaZEg}B3 z_!Fw3HAK)uWDMV)@5y&s#7-#y5wF2Xxiif%F32LG?txHec+^EWtot=Hm%C)(;u6D& z+}j8K(h_fyEs$K{knkT?1PWM7!t05^D(whfClceCfcrru<)HuY^$k&?2H~+|+qQMb zwr$(CZQHhO+nzhNZQHroyu9R`WYOnecCV`Yud1&KEXfkbH{Qx17zOJQ9xp@W=J$7h z-I3b`vClM7q^sx)BOd5+(@g^D?w;hjJ}mq<&=<}B{y6mnfUhkt0k`NY=;#b>o7lsx z3`vU4EGPhS@szB`r7Q5+dLi<mNJ);^F4J`w2K*Kvn<X??ApJZ4va6HFddKf|6<(k; z5PXM{jTkWTQwJD|dX!uVLE5(BNWjVftRIPCC*kfR$9uj1oCVCHF_MD$k<jC9_K)6g zWUhr{+H_AJ<XN7bfjx7$hu1~>!<qX4HHcKM5$9cpKxS7C^3uN!+1R2v%yjBrwg6Z$ zRx!}{i-Og*{H~9mg9l&^HBWvLQfHWhRM}T`lyNj}kSPjX?LPkKrZvoL^Y-aY<5^9^ ztTM?&E1`ytQSzN#*aQu_gKhyP{&yF8c>Y*8ia~mStr3_HlzJ){6iJExuw&+E9RqB| zg7;qq#aNb%5V;fm_gj}~lUoiovrFh~+yQ5(m{Q3>U0jO!=#r>zfy2_@7>QN?8AYs| zz#?d8RZ5z)#0E@B_7s!Ce4PF~)EN>OA>1mrLj$R~FF3>DK0Qq+RDpQUua|8-->)o9 z*!P|nxE|n#>(976->;{iTl_X|SvGi;-Nb)k9S1E_QThkA9^{MJj0ZP~lMoyWCr>0R zGTm~8{BIcS?!+itt3@0e)6^=MyzF+pRKM~*0+lc@<|B0Mp83i$qs)7tDNh~X``~i^ zmOxS+$htCu7y<t_W|j7F4N-BczF2AAz8^GzR=eh~H%+4*%U+O2HOhG{$TDflCa)35 zL+!+OqzTjElr4Oan!}}FRS_~6@rrC?s<wmu9$`FX8mai>9EjyuhDDWVsOlWzBFCP< zbS&k}uog*la@#Iy3LOqK<?J%Tsb(3<@45gGzD$h}{n&ujeBSS-#UyD~Nm~+>zYpzc z7*#56Qb?2f!INEt0j4&qEeCS4N^cE9g@ec@36d~;AnH>uF)7rD-W@}G<0*odhdXK_ z?b9IAI+PxSi)Rms-5DUu56_`Qr<`Ei2x>6ZBuInZDxXNH*;jkxVr<0}>BEGLm1u-2 z{;TL}VOhMdU3Zc^Jt*C#P7{<!pXeqqX|9VNc+9wUVaQ^B&TT}@uL+9Vny(1b>F46F z^7Fj)Wrh2WB8{)kD7yNKG|Vu|BBQ}DpXSC#%5v7>7SLVFtsS`sbB3LD;aGwc%^)ue z^hvO{XaYO=V*M8xts^*(bbyf7E|P=e0HQDLXMRRHBL#ZTH++_$zGC>H^YRY>gW0yf ztolgCg=o*DFT)?*f&uU6sQ1Mx3cK9=e*Qa9Ki@E){aF}a)32nD$UDU7=AiN2e~)(> zx9{j6drp`GKVLatoznYXD&}eV1`zI<@2SF-OV|V}Pywp=Gd}*D<PHy98v2<@IvVvc z7KcxZTZ1b8S{3%(`J((IK$$IR_f(}(kjpytzAU03?%ka~BpJW{!-r;6&&aaIsCV6Z zazT;LFdLq=1_L+&U7a+KPql56!B}u@pNmSKuapKc%CAUvgxlqNk=nA9Y=gjZPkwVb zRl%(MGA`nBqNl0`^8+?E-xQE(jh`*0^6!z79>PWPz-VOB^=T#hb1*ZEfm_-tzV{Ba zAfsz^o#zkx?G-SmnaEKjQ~(>CEY*Yt779yzg3sBiuTryY+N$41pWi|4qq8_W_2OSt z0pxprEqiVEq6ckqHj^`OWTCweo2?#mG9v#>Y^2~LGiBPQa>W{8Cc2LtCuH*O7VQ7T zWVS5xLJRgAL{tn}hkJbQAqxZuPGNy-+c8m?2NDgF4@0f&e(Aow(@nZMPbRs}(Vm!e za2cF&W6cZ5jdh&t_97G}K6SG=MzCHU%J=!9QhmakQSo6i(j>g%z}VE4f=rf{dWkB0 zF^m~zpQv@|Bkam)ls$ZW`s_64pJ(3PGDk!{NxrP36ppS=6poN>7=@qA$F?(e8idN( z5)Xtd&&+lzqTtk4?8$`<TNZw`znhdL7<32c01Os~PEEK(IKp)g6Z0LfpvMs08S?#9 zP~$pv_aE5jW*o;`q`9wQ36EzUbJOv)2qp@IC74Il@v&KqHor9V;gSfnvz4uw$^GsW z70gOt!{KfQNebI0C+(fjxCmL)5dtKuoU6PbimsQ@UhQJ2)`~A@EOf-(AtKe+uu{7U zis+-&#$TS0{iZtw2&a~H`^p-Gi8|6e1#4B&rn*(<S=365@YBS9C8hLhjeM?HjV1^P zj@8JbIcB`Rn`XP<F1dJE;$%IC7AQ4zMi0@DlXIukV0a9j4oZ^sidkKnV{N0tuYxQ4 zGohp#HcTH&Qju1pBs2rA1=5!v-WMZcb&O~E1~ri*Ys>iYjQ$8Hi-zJ-^SslQw?~}y zz&*_0h_9aK1#ofLXtfGpg(TzFlef6Kq(x_vZ??$QfbZ2ZK*X&Zj;j3Q^6Lic8R|O_ zeb5Z}fLQ*%{V_sjI)^_@q-_^bI<-Rs5q_{a=bgZOo~S=LdSp`Q+@`rVlQ)d+$bybq zV3W?q(s6JnnT(^v(6@s`kaAly?~x~dUuj)!I)<*Jtbe|p-&*=0v<r>+aMdrwTT>}v z!<;Sg#&TN%%)N}MBM4jN19C!kX_u>|*>Y?nqjVDmQ6<pw*MV12S~5B}==cO>j&=-J zKR5q&0m?dixk7c7@!SCgb7Wf{wiY4JUxJ_B;k|Oc<8Q7-VLn)KEAyBO&JRAEo;D5F znfOyYI~_RgJEEQMHY-<Z#yg@Pq>0lZmYQRQ<25xL27Jp4jM!i}oR+@lvK+%gKHo>; za)a^jEk9%E0c3^!#5mA5u-Kt83;Xk4BGG6yvStA*?6(4HA4^k@p9S>i&fs4%eUj#5 zcX3d_!>DYI^rZFcE^ZXjFGMQ$woxz{^(19$N$+Rn_s3;jkjT~XV2t#gP@XoB4-Hh6 zT7qtWBS%=%HTzu}oFJ6-*ai|*T@d(^Rg~OCWk(#P06%#f$z0Xp`09&F;Vq?4fAF1D zGV(%ba!FaNOSk?bWpkB{pCI_xR;O$^;nh5&YM=1+cYxP9!G1ngm$cXJCrEy~7<Z%; z2aS1y?;e&P+huw4xc1GByDi$86w&BX46tK?^AmmHM~a&8?^}+Yi!jva?OpN#xfC}e z^fqoAOi!+3R9rjxXXdrVq{t(BYSxL}^l@-|5Z9g_RGx_%W{m<y+{=a;DT?hL!^-1a z8FzcRkB!VA)ILx`s(6!lE@njU*SMMShhyy9!6RP_e0K0-2Q(B~ElShxyyCnq)rIO{ zLTQ#*3Ay@g%~P--la6nzs{aC&=poA`EtTkkf>gNgutYW*iq_G=*B^c_MSC(B>wyek zkT!3KE=pZFY@qPUHb*V*%JTV7L}WP?DFTJvR^U=N5%fif-zFZmT8;~VeO0mDG9VH& zL|uhlnxX*wIN>LCgh(gTKy6lVdan<5qk}LuA-}Od?q*M~jMRs^wb;DK>b-N;MU=aq zL3TG)wp>lW(35Ax_6i~1DUTu@OCKQF0fFwiuO9K<iD)JxJ840}B1e@2qgcJfk=&Ed z-vW>Nwp|6yt%|?apI#k8fg*snxSz)kav?Wh7J^93<zk4es}{ZMAsXA?x?;H>ki_vp zC%%x@2!lYl$h0o#JSE_gwf!s~SB<7EcJHS>`D0Q(qUkS1Vw7p$gYx6Ldyuzh!%$ka zLHzN5aMSjkyU#aJ(lJML6hjeAu(sqS%)Q$BcL)xuOx2S4M%xB~)gm`vu5%>A^UEdc z<E6{Q*X;i$T}TM_-hIqub=uD65+MN{L)HB(wLTIKlT$Qu=;o>c9i!$Si-wH!dhl!y zXf8V+CK{GKE4k6~?DXcFRyD7&(-_G9DM<g*6yio))sxg^Le$m9Z=3)|$aHSH31AM2 z<<7hPwW1ocy~Nom{LXu16y;i1lb&Kp%3|Vmukxb=bO#MgG5q%A2M17{cKt)Di(4q; zgbcq+2fdj=L5`}MmS{UrUnQR$#Ck}%OZdpyOn(=*wxGvc^a~mM>y!X1v6uREU|D%# zI%0Swtr4z6(;>271Dwo9VDLAkz#oun@N9*Z(bw=<q~B!G6AH|7sjj8bu&MX`&wo$T zQO`$0tOo@Eph5-!!2jRVbnI+REzJJWxhd+qcAKmSzN>lz6%ZtVu}M8w1N?ZM)gwU0 zG5e($P^<Ln5se+=h5QRH-L;>aZej^YCK7)O!`8@ddAEIDqogrHG1WZlJPJye8x9y@ z13OT5-A7U8wM0+G-nS24RIgl{r^PkpOUO(Qsa2|fWE=@+6fdM0P|s+Wjp290N65OF z1FyMqBt;g<I}H{IV21o}sR&sRsm4pz0If3~|6T2diEBNeJX@K^9U5?!67X(m912!m z2wyKZ-<xu;ahLCA&JkM(?yG6~>l8IWx~5m}NO!#q72`7edjeBI`Vsh50NDwo+YRd> zP*nC01jeDe^A`l=>u2<6o3qBI{rop-Ls>4H^iRr>K}1>(1e)=*H0aayNB`u!foW)j z0geWDHorIb*SGpNm{?)08fuoV&JDGY{0xO`sE!V*wb0VBsx#r|>u>z>5X0wG;}m&q zXpi7$_(EgX6f~|jebu?&mU3ov(mSD4Q^Y)WOG4X1$Ow`z$k#>!qSyH}%&GI<IVQ&f zRl*L8JMs+oawzkTWNDQ<L9lppsC=R6%0N7c-ak+Wtr4cPnd!piLKqt5DmGtggixYV zyFbX@)DWzR&!Oin(yQXW)#?eG5E~S9={r*W_4@%|%bS#76BFXZ036&bT7Hnaqc`AQ zwFHynCOF^FqKV_7oRZwYC<vn~&!G+ag4!Q4;ZnV|Ds2c1u*aeiB^^mZI-iPn_zGpX za!I0l{m*DKvrGyMMqTg8=OAkMD{b+jaYuO{V|h_w@UMB~N19)bJ~42(g~9S?Ff|@; zM~gv6nIq&W?g9sZv)*+5b<<@B%oxl{J&7JUUEJh0?)k(Ncg*LSc1so-kv<uX>>tJM z9SqB|Pz?cpO&M<mMfTv&T$Q<=P3*f-&vH#G^q>U5i*JGe>=(WcjQOo2lSj&2DN;MP z+6--vK|s#JGe<EDc3lH?WbZtLph}5F{MC_zfu8EGZ1Arqvgo>OJFA;OmW*z5;)Qcu zaY%Ux;EmQdtG7qKD;5&f9Q5$>w(8>y&y2^KDW5RlSbZqLcWfjsdIP>dbXYDXYClkp za_{xOD`zcdtSO(+7XS5cHZWU>V`8Ah+NhnI%EqW`xP3e-ILFCZ)~vGO<Ev7z#y*U$ znQ9WNoq<-6Ji%+=%<JnmS{rJSxVwRcqy}G8!D@0Z7df`B`~J=+orSKxvs$}#rX{9e z;r!yQ12Q&E`sm9UV0PS~)^wh0Qwx!?0ZGs!oq1Bs1AXKbclpk<o8_)KEDYmlM~X?@ zi!mxMibvg-ULyeD0DN@Xd$U)aXtw995;sn`zwl3LqO~cndu+!;!elFqjE#Vjhyev+ z6d{~4dF_F+;usZxQsqLV(6jDkPYHvvG?eVtR}QfX8aPG5HJlA1(rERq=?bJuv7w;2 z0vkN}`FUq2sSlDEL5NQwQY3$-$IC^1KF+{mC)*IX8$W}su0LT<wB2`C?A~8!TSU%H zy`*F{0u#HyjJ+U0v*AeX8E@^6B5ZQ0ifdafmE#5b42PjF&(1j>#P*Fq;Xt;eq@A2S z9QdP)guZtaedApv9)UQRAH}RT-@b(_<q$8)$2}8zLL9Pe^JRX=6*~Z%Av9dSG@*wM z*f+L)JE`}r<1N0Xr+fUwi04IjDoEpiHU%imslCms%5i0Y!#!HL-8Zgczc%@GvgME) zRg7b3+fHX}HglBCb6jqE`E~Bs;Pw}Va;je%jf~4wfe+gP;@cUj9wCX`Jw>!lP`8^n z{=SV#)&pw2!XC)Y@R6>d4fu&QetD?mnJ>~#nhO_G9d7|Q9Wjrl6MHe%d`E9rb$cQF z={RZL^J8+0z-@=!W)XamFW|h&-r?>3>}|W&`QqYo*Rvf2Lt3qIu&?x*Xns`{hSfAB zlU-$J=PHB+eyvwav5AWI%>l0Yz9ILx`ybJ1^VJXn{xARl#3TR!xc>*(JDU81`Wj7z zq|H`D-_^SQ@k7Lv3uYPo+tDNk>(!ZN3nteE-Zea2VL>EMk^!Kj3F)%mo?SYC#CUhx z#0qi;aR_x9SH3IXu4%^(nr5pm)im2I>?*V<d^ySV&MOg<$Xew>o(a_@NmSWp(W{g> z6(j2^D9>vg8TkVj6i0F_D?FEit-w(=*_MB{=CInoS~ivmIdYtQkhmeojWmQ8`Z6Pd z?!ERM%Q9U%Q1^|_rUjRRS}ASvRFe3vEuOm##v14cDHT*7cDj<M$(s-wt>lZia?CyG zNT*FuTrY+4;5tS|I#KfgPs5I6tQC>hh8@~;Xg_O%?QcgP`wcAcl`DKhp5E~h!Y#M4 z1BM6BS$2M&UK~OiR@G5Ty_z(+5w|5|pJMCepu}8B>7xVoE$X`CME{&oQkrTubx#Gz zqAp}BUD;tqV-^FYYE05Tb3^mKXMS%t+g0SHm9sUKxbGCxzR2Kb&3w54U|+-|ct7h| zSbupc8WB?*W${wjD>XGF{Da0zlX-IglB+O*0PsT-wpMMU`VMQfkt<-oeXprhhAsn` zwBxsb<VuH(gw-Bx6998YYuzu1S+tyIw|5wXNDGxZwjHQv_B>s(7Lp{L{2bW=bAaTF zu4mDYF1AMH?euwnigqLPFN}$Zfp?+KHUT)3^SWnnUG4KirvF;q2mHVRKYfA!x?!x_ zw&kG-LKq=)2&m{%yU(MOi;`|n!wmZ89slVEatoztHo6|_)}f_t=`A^)zxZP>)*53i zx7p(y=__~gpbX8nuIXOHO)k`B-9y0M&6a|cLI<rdQS_Hm8o;uKh4j;{PWAy&wqX!Q z(0O8o8lO*<e}E3o2K~q3RCDp_s6YiR^BeUpk`HC^4AD0b$WKA+?M2|(%qR-d8E!Nd zVroT5T+7|UARwqXI<B4Q9Vc8Bn~%O>a0I~>(-bs$WcB<?%;bD!SZ$rKef`O%jH+Ua zJ@mA5q;FC;u9%67i#wHb>>7tvq~3&-96PO)_r`Rz2=;)B&I-CoWe6Zk2%q^cLpa-M zCv)SP40HX39xl)i1v$v~fUuXD<nlxRN7|b;1bZ;4d(V`X5xS6eri1PQNk1*V+p3GM zYY31pS=pX*W0kS(4E@?NMlS~S^N!>udDM40o*O`{mQKa?mNA9R@!zZ82yb_W@UE>h zMN;#JzT{3{@z8Aze2)0&M+(MUZM|z54i43#i}}2g>Nwn+UN){VU_b2M56RXV7eY7! zO@s(`qWD}BIX3nJh_*s{LBJ^=uZ3rYC+DoB_8IFS5d#|o*5r~B_VYtXi+lOXSx<OF z!G@H<Um1gE;swALLH%E}Q10aKn(>5lt!YCJNToS{|7s@}^1bH4F)I)PQbAd+{%~Pq z_h@B!fke`QWOWF5NKyggP^A%xew;7asp^gJZlSk|ei*2RTMgCr9bSD`870fv;!*Wf z2{+hd7Hoscy--xKF9WU^&BoA8Q21YWiNu3>M1#1pREYF!7@}gy*&NYjycQhS^x$S{ z*fFN+n_yn~4HsOPqmlEcerzN)JtuZP4(MX*%_pnLN!>nGCBvP@>@*Wfm<)Hv)v<4p zQr=T2_QK0PL99orx`<yy!?m6C$wG+sW*&9$Sicg5=9%IAqG5wq*c^9moTdyxC(r(G z5i%<*!4DKM6#eX3TSzm|;9Z3JgZfG*0H}4Tgr+*2na00ZFaCch%NWZ-)H9%V!UNog zI<vjYOnZRgJX4Q#_5`9cl7<W^vEhp#uJGuJ;RgM$CSA7zj*X4K$_Fp>r{SL9c<&y< z025E3V;C$%11GH798OlW_&8F^?fVR65Nban4F~B==jZ#10E<tp<#%V1Y85(WB|$Qz zMBwiH`nag>!c&{wHC`2>upI@u7w-7IQ~_5!%xL}h2~Q3I2RBXwD0K}Tz`_KC1F`U5 zfiZp&ZxKuhbxI|3NGO9L+e5^4;e^vB$s;ZJDN=N#)5C&=63P_w5nz~DLh^T+4?@2I zs6!_Jy=cfm4C~-rp$Y$V$P1{K1Dm}VNEG*gNO1$aqGV_a5eluqdz&yX^BEE8*%e0c z1O{OSsyz<yX;0j!#Adk}+*Dvi<Op#-zQ8sAMylBk!xTM9<wmUTQMMAr-RX41y0Wne zTEv=YLvLmgK7mp2A}13d6PwB+qSDQHT)TMdEBtv=w}q}YO;W$6WFtbEec;I4E|Kip z8!~2Gg%V7WjX^GYT2(t;3`<@ix?+-7zoH<xV$6BBXq7$NMq_xsAG+nM`E$(V^Dgq> zK{kOu?BnxE`Ei(11}X>k0c%S-VwtHQLA3hBTAV>Zx@gIDOi#EEW2((0Z54B-N%RTa zz#FmQtL)hevk&zh!sc<Jk@6b8Yp{oXYjKZli3hQjGKniTVBGx2Bj`uHLcn(CwN_<0 zYqoPHbt^o7JvTCB(?4>KR-wQk=$U{(Wb7B=b!$dyI&hI2i?w^mlYd$IK6E34rW3~v zPKD&(_ce~P=<(c<Kn9bd(hk&NjnO{8WEzneBqc#$&V<Q;c#lZ3(Lf=9AN@c}vir@H z!HW>q)%O)wsnwbr|21$li5X3TOG}i8(a$(>&tpjZbER!+9<f_)UPWfyjf)6((dK04 z?AT{Lo=>|`k2m);d)}H-FBaxNBQsnuDC!|+RwcKkPTxijJNw={7)y0pComaNCYu-$ zRRM`8Qp-NBXBvO&<wG_j%svF{vWZL?pu+lxsHb`C-O4%Syy10#OF9edz|HWz;iQO+ z?S!q<i}~$$Y?~%-*k}FpPlfk93yV0L_Q9S7RKPg2nfn=Qr9NJ5YksSAa(^i_6ggIY z<m)PJRLSvkV?np~6t~b{#wd;+pKnPx($AgUIN6@QIDqAS`Ee0pNI1o`99$1RjM=$i zQS+Ph9^?XuiO(NiQ|xf&Ctgs<lHyM<JL0VnB#H7fp4%y>WCi)EE3r<85UbP_3=+V{ zJe5AS1+-m-0{yPiZ=gs-;UN+g8e~d8FFtLMXp;9MpuVTD*vk!|!d9~?EmT3?fnTE; zKs-U#OP9v*miK25<8e%ZBjro$_KE6mQF-jl4}#R)Ri|@@6ZSrhCej;T`E;2FHK?m_ z6TLmT!ckG_x%<G6I1J3%n<!E=TCwRqV(l^?B-<!<r3xlMhGvO#r^rhD7M7MjGQ?%D znmiNU+}RmJ$jyKf=pDU(zU2jnwRW;%yO>cjIwA}^Uo!U!h2z;mtV_nRsB9B5cmgt+ z;kD1UKZt7*RmVkxe{gYQqP+F6Kr{Ks@EKMz*^*wwBxO1tiq3!X|IM#dja$S3fwz6D zT{KNLeCr@ECN3-+qptSv3k~G^ShJ($r0`P6puFheDe`6|7a4P^f76|lX;T1FaTS54 zi&MFYCNwArM+!s3x(A)3qJ|g|Px=`%L`zULRzwH;x)n0GuZ1OkE2QRNt&uV`@9*3R z=7r^oZp)W{gz7NtrTj3Lo=@Hf!ANx6JjfCvt9sf`QzrJGkl?56ZlRBk5BJ6|sUp~x z0ae@iaC^i**FVSG<S_~l#x+9kD$ZJ7OfvZMR?uF4fZ`TG2)>2Q)xI;A;T+EpuEuT7 zcSb`pr2YMyW>PUC(L=<(;J3JZ53Lhc_)g;$*Y1WBV%obK3z}{R3!~>LL8-Io1|rHR z6_JA+t7_rJF;nQAB+80%QD7}XFXFD@!TeS>VDl77T(^>@@pKE~@|P-E1khW@{q0ls z@Q9AkKtonNiB4b|uCF$RpZcWNIOdOTWl$RgeOywfTUJ&ny!3wfy<eTHcKDU6JiUbQ zTL9i0IJeSz)akD_a>7x_D{c|-H8+%uX#%#Ww9*o>n*5|x2`Q2Tu4qCtUB-v?+eI%6 z>}v<sM=)Twa}8nn(H0k}B`MT$r8m9V*P+m)viL(mqQ7suDm)SD5~nq#gYl(J_&|n^ zPcy!iJ~;fdrB6$25)|!DxCABc*-N*~`O|#OL@+s@%|}c+dW^CO%8&F{MI}F@Y$-LO zBC1aW;m=+chJE6ov#0T*ID19!yN1S4Sg!c}HGHYsZgc|{<xeA$#2G+$uIJWnrQ45H zTA$hkLlZSIT@o0>*?W5RUQH$^Bg5C$R`~Jrhv<5eb^LMe=aCeBa#9_;lJB!jC$G!- zqegX|5#@6ZdluGFy0yc)B>(x;_HStBnf&AUQ&I646IW;_Oc()#N{jwzEzasduf$m| zB%c#0Wh&E2uMRJ+JP>NOjn>C+mLVI8(J$zK@l>f0N6HFi-DPqAI4Tw{004^r{ny3A z%+12~|IdD&(Yj3BY)$;BE8}NBCPJ0Mv9KPyS60^08XFrUZx}n4x}qg7IgXzT$BZ;a zJTiZJ`E&u^lUZ83H?>kbjuHmgjuG9(cE%x(RMALrDEzYbYl&K<pKkTY9yet6R5E6B zAW5NMQ>5{5?qDt=k_IXvBSNU`Jh~;)ih{TB-jt?f6X4hYu}F5-59g+q%#?}K?fxN1 zC8|y{J}}A_U6*|q?4}WkFNZ0zz#Oi?nh#WS@NDt2Um+I0Vs&Uov@zD=X&8Mm>_Ewd zYE=ZWEPkcBBcCZf8Dot)TEpjvWx~n{?;fW^?oc@`LjL;D9kyzirBa}*M%Qvd)+{7W zxSf(ojl|X{$N2Sf`c3d-9i<{X;jP;MVM}}ol@XUm4qt}C)~i(&oTx7r5tgnnueyAj z+`T(!x;dcEm?WYIz;|lvt|95A2{in(qA@U4M6#dqCM}{ao=Z#Aky|T3DYrQM^VP)1 z{tDn&(l5$2>s{YC-6$+w_Lhny#xnO#3?vzM-1!W_=X)z)&bw%#n&P1%8xSAAG6i(f z1rSu68YrW2a#~ha2?Ny<;iNbFq@<A>__2N7LbGtNl>KpjS)Dw&o4h%ky(=cKks`RW z@S<wj*E5YIVr};ZY#~dGXi}lIz`^u!u3VQ6Cc)TJMQ4H$PcTesDkbvhrr`jqKw*po z9*+%F-B=R}C@C3z-c(~B%x*vaszlHf&nRw9=&Jc-<s#qh6q+E(-(TF0kP4MDMXx*d z#jT29d{-IXB&o6f>~R^iR-=qP-v=cmzKINRbGS%SSobrelzm(a;mGhf`xVwLFjDM3 z&<WDuAs>ouznR^<3Gt^X!Pv&*m)B{)8h(_tf+(EurF7J9_1q9$b$Nz0-$$<@ilh== zPK5*dTiGU1P!t(~)-};(n+6}=zDkrS?_JK6h3HYMXt3g{8As#$h{L8LW3B-$9wWQ8 zy}DN1neH&zrV-S1>C|6KLnT-r#5}a(nUJ+?^GI3A!;>{@rnCuPw(Y`_mCx&It})8o zpytF!x~;geUaAD9P~d|gg*`H|T}jYgkh&?9?2KPy*w~5b%+8ZGkh*c1bU=|spSA;c zGmxeC?w=08ZWZ3wx-GoONvC`sH*?q2lkm!;U@NiSAOl^}&+&ARoXtBJ5iklB#HYFs zK=&_k*>GZc3{aqdA64t@8&8k9TRCt$@~TilP|DkKLY0^A<LC2MB-N0Vr!^K(_H0*$ z3N$BL9$PTl03zd=#fQ*KUTQ5!v(R#%MX;)RDHdDh?9WeSiiBfR&c(6wfnf&7-jnx^ z26wxs@me<Jr_A+bok8mD<ye;R&IW#0zIcF4%!){B2?dZg!OeycG#g{LuEj0=LQ<xB ziD15h7?rCC`NvruK~Ym-o$E_&xKu~s*mp%EMPp&<5cWLe?@%mnU&_8yCjB|DUlItZ zvBM@-m4yZ0Vw|QNZ}BQU(m7vN*&(lhsy~cKpJ_&7-?<qwZyb=f7DKuU$vw3(H6K>Y z_`B|eqX?kXe#|T;F;RBfC`yt$n0nr^h%{h-m0KUJh(d`8OqGohKrpYJb9fW<-d80% zB_>=HWS#rf?7#95bpq(!gT3E2D(&M8B<MuQF2p?MZ701Rtw`)$+(%)82B$u)@N?}X zO96cY^kFlu_ue;w?5LAf?-#M2h5n-v=>5O=)26n-X}sht-#KF;G*v{Xc{(SXhZ&pw z!9lk|Irt%*eb5(QvgPpL=HJ)2(qqI9l>@)-<nw$xGEYTDdw$J(d0UV_6We=!>_EP} zO?&&RH-UV4+cA6h3?ODKf$!T8CvL=V_ZWfTEP+j3h}pOV>3jkEzZQUQ3Z7u=>R-b@ z`UomMOOIh=@+t-joyhw@1uL2mvfwp|I&&fjLx*2zBq^+HxkfMu^bwpDjcBL2NU`l^ z9KcF^3+JkTu%9?f+ZdRBKUR+7lIVd9!PSm=)93+fUE}EBP1F2pk8CKFN?izX_!d>g z!oaC9>UZ4rN7tQTqlbbvIp%Xi!OL(62#4^KnWObymv~(KPsXFcB$xoXtjWf;)`#NA zL)nbC)T-EHrj{p_7&YY1w&?b8(3&E`Bfp^-1@t&XHK*<AS}6Lh_SQyydv>a;S2I)& zSCFpS1Sjz&j1M6*oUaRA*7`Qw4^64U1rEZ@T|viyEZlb1NCFn@Vb8ORr<mr>#?pmn zE(<W(<O>8m<?TC_B9BKd{d&C{K2|Rd(rV+Ge4*&O{~D!EW+r;;k<+*k5gexu&yj(M z_eE)f`0V2ddQk(Xln8(C)vH26X|w?@I9r!Xyss2WIs`jNk_HQA-htaXV+V_X;R3M1 zAanX}iV1!SSGVzB9Zx-x(d}vP-}1P1kW~4z&;66U+`YJ%zZc1K{eF8l!Q}*4p5g=_ zLPXZ4=a6!bOAzIdQ8;-Bpco)P*s3KbV^v=N`CicJKny!s0PmgzrTK_HTnE5{Tp8P~ zOB#11|626=@~A(MF1597w}euzDViNCXq)m<JaeYsP^OvmPMt}l)g3wjSG#bMAJ|14 zFqd~3c6^`+Y*hX&vEQf}S4?`w7Y?GC^s&h!2%tWcc27HeL|cd=30#+}vgsW=(iX&x z_cN*ZJ9|V6q_2oeL866KO9^6uG1V-?Ny-HVntaDY+w##3TU)ZGx)1hLHpj7JG9D2_ zBUJoOOYf&Djy3Q?F-=t4rf^(%1O*Ocng67fL<y)i-d_h$-+45h)n@QBQ$->G^s_e* z<QXI51~#3zXqX5gS-hC0G67bo=Uh^g@un;46BLxMOTMXIeh6I112IJ<z9EeS=y<7x zk%J8dL?J6kAe8@11mM~^_!&o5@>cFPj~k`{SBLCDoHU}LrFdC`yc$<VxzmnbaJE*O zbL<{lx`5fnoj0#{_>KV0Zxd+`)ImuOgaaE%J<=EH?--=```2lKYI!h1eTZHioT{^u zh_2!Q;VM1isJWb({~5?S&^ZFiahR%%1B4rt6%PNK$XOyPb5{{JILVm|L^Q)ev><Jz z#blh&m25~+ZD!bQ*Jm|A5$%&sofm<%L%92Ooq?GP8RK+~f!nb(V~G3HXiJ0EPADS{ zc)iwtX05VHNSia)x~v7lrVgtdCt$%=!ovku{x;Z~U@T;@^YBiM)s<c~uI&rxL4X+I z?IpwQMwUtK7ALNA&;j7VFN&=NCTZf8leKjop9u1WC9(2Ys+p#I1-LfO9y5sQ9voOf zn?~2n!YZG2FKG6)xscCTd*ULNa=X*hE}mEbq_Adv`c)8V6P}=DwwO)amRd8#G3yl! zrfs~rO|(<<hdKpZ;s^$vYtm~FsKOY}K8|$Su@XH~(jLR!i$eD@P!|YMekiM;oPFw* z_xsRAjDR9f>te;VcqZ}0!mhKRgK3?YNoh0G{A|3JSJc;{lfbxY#5SlK#Fb*Qnba*z zzv~ou|JJ8HbPzjpXSrHd{*gJ-&=J~RlZ6Q`<HSi3#Uso?0zBOo0_(h*i=6&?>(203 zz0L1qUY=Ta84wcP*+nCdyx&(T1a+fMsEzfv$G1qrjD{rBsP$2&wk<hlQm?z}G%xoL zU$@`K)#|BpKX}7i;9+R!`C+fu{Z3Q)LL?`_AST$kt{6+cA~qyZ?PQq=YYf4MFZ^^@ z^uLblYDpqG<sd>Y5(bkBCRf}HK(r+g?qkaiW}XTOc$7gbSKw)x>0J<oD(cCcLMm8? ze}Xp>sIu|j6&{Qn$)RDCtHaCznreU^XhloBC$ua;LCH_k=nd=)DBjmF!hHEE7zU?) zL;-m5F??d_yyj}fnX?#a$5`%9l%<)FQ3MNl9S;B+MU<S%V}XwQ`zV@jm5<q`+)G}> ztw@nOu>*ncgEvtlLQTsyt=k7i|DGaJTnfB%BrhbO#bmruT1n;HVNy{z*svUddX@&A zS7+txXRr%6Hbje63S!133JznG<g|je@lU2GrCCOKyC4pyyht|3Yv+i)jj0>}ZE1&w zPGAaqxN<*(iqllLvBJ49TLywC0_dOh_vhoLHo4s&@&~@jhrV%E5bIgKo(}iVpPWZA zaEb;nve4l+D|@&g#Hd}d((zQMK3sfG5SypsRcA3W<syx&Iy49cVWsidGoCdLaBB%l zFgT)O((LJr!|FPc`XAF6jvKeDkGYMU2`7h+SXF~SZh@-3+uqyX*pf?{#~`QTv2lAt zK^m9MF7T?u+!~?xD``G5<la<zPzHb2dF<vu$9&gj{6naANb@$dHm#?668i2j)SXb0 z6ML|BNYBNyY@eyLY$>alclX^J{n6`2Ld^PToASyYN?ZefW$aC2K6pFvcBo5j&sr6m zwIqFT37k>Vt&l(_k<eNXF<AS~aAM6em%_(TT+qe(y$G6$-KaUDzb&Y^!bds;rkhF( zusd*+<K8b)U(#R2tH+EBn!ibJ@2Bt4p`6lH3pdRocI!U(=Zoa?TF3K4BkM(Bo$`c} zK6qgeM$_N<qp7Zvna+;gx3!b5A&cQ5Oe!{Ai}xYEY#I4-Yz6tV`ik?3eLF)&6Czge z(#E^_8>XN8M!4TDVxb2^H!yH#Eu*c+zJd$>;i8|v%JK~_1nEWaO>U0aJwZaPhI5!! z+}{Lxl;7;-%L!~4{|0t%G9EzjoF$D)dDr?16zlU4@Yx!AjX>_p*h3UiYE+YrTT#o1 zv^;Gj13_Y}-G$o@YgxUqBc~On5fSxX_9hTik!mLR1EP_@R^DK%E1#z!z*W|(P#sP8 zn-{`ie-u?<H#YysP-O$r09?n|XOYQIDQx~r_slFJH{?XEGen&P!AWyIj*xWGD5k$l z$vd%bK3i3+osKwTlz((DlmReXYLejUbKSPhjerqlStSV<6B*|&T0qSD@m((m6m88O z{{9NDRe+whArGO(C8iDMcwrC&6)7)5?TuL3mgG~)pH92!3`RjZh;Fy8qynkv#2RT4 zfV+OS+knoXUG?j7?)pHKhmNSy4cjmD(O2+D9d%eO$>hW`0J!HIDXM4zJhp^OVq_?3 z;u{^S{PTT@Iut@&#wa7-db4Ha{BL0JUIyl)GD}HYt9s%`a3K6sMbsE>;_%JO0poK% zO~4o7&yy|r2M*Yaw;_;8PN0eWbWzFh(B3vw(lcvN_65iUEq?y%5Gl*#=lL|}_4*%% z%X%dq@x`<`cmiH}VwO2Xou?XPqG0pUixWs1DDp4?rRe-Ygz9LT<nw@6J0h<h%Wr$^ zFO^%(hqjl2nH;g#-%`}C<5v7&R#j@RvMnZ^2Hy%jbaAfNVs5wfEq~~s<mrA=z0qjr zbrVhWX!KOb@7!ZObGDynx<fWr^j|}{duq)Hke5rWaIufDy1;MJuq85z)2<TD`TAK$ z;3E7A$TS;*(h7;GMRglvuCcwWTx*9wWwo~m5j_0AuDpj*`_3-Qk-o_xH9!PJ&seJ+ z?q)!^-};q-EzBWqiOh7T3Yp=zzt0zUcXDTF&h+y9%-5N<$xoXZtle|*Kf5eyeT1<~ zA1vNt4XZ(4_#&1z_kj{VrnT(mdP|)%y5fR{b%jFu`6oiJ3~SJOH-J!CaFxZ`%_S&= zH89pRl4HQyptu8}Nwz*69O4PX4l{V?Yyj(3VMPj;D-apAR~r_1J-zOAd5O#C(cbPo z-ajwji)nQh&5}YIb6k|M9Y*VYkV;uUCA4u!IR+~Jz$K`toux2Q{Uwm9UH<OPA{hL3 z2=T9_)<HXc1o|~+VaMkqj^|bb?o+lgwQ*@Gu_@qc=47Q;XBU8QX9z}`uT6gwNj5dO z*Fbc_=u#XI7yq(guZ0KO$x1acs?D{+wq#QhF`sVf4b$+{F=dcU)i%&YeLPx%<vAUV z?UN6FRi1!h2B*fGUuZXpsqN<NDsK|xEJ*8$?4v(_*gb-TjkrOMZ;qLaNV9zvwLxmO z^-kfcu)la0;f^<>+SB<u{0)g-@9wCHDz|;~L>e%B!>S5Gb_^C1Dee)K@j;nX`7ABu zmCsK8TaJ;M0AC)lXuVl+?_$4>9+`deQ6rI3E)N(3Q8L;SdSw}Ks8%J;t@3Gj4YHnJ zbtwVDRSYGg&+js!KQRi4*<$?+X0ME*C(>)jzST2Jlc{xpl}(xgbP}3qTD0VA2A<3o zT{WaR#kC0?52n7Gjln3eJ@O~B$I3}KnUKX?Yegw6iuOJaqD+QBStX5Gr{BRU_A=|S zYqUhsRHx`@z7LdA$a0P>5iS<TrrTDRJ}O10V5Y{SLG+b$rJ`5GhFyeiY@?o2i+S~f z^V^*(;sIS4dZ!b02cP-IVzI>?3DUJi&U2&h+aVbo2bm?S4MAseYGr%j#-46IY%+8L zi0pA#(2gEQ%pV|Jai8wXQ%XCAm4*o&jBaPS4dm`<uee7D8ltd0Tj(XR1~0+g7V27` z)nu&z{`tsp*4;W=o@=L8$Y#}LcgR8MH#HF*#H7(x>>8aVrh7v?iw2ak2JEb>^vpln z%0&9_ze^)@?AG;6J1^cTlsBf*#ulo+wjyg2ryA_YDK`2GSb;nxkZq@==ST{hIHS3( z%RkAI_$%^6>3iWX%7by0ya%D(+jrXwmfco5x8<h+T!(&VBqV&1C|4u(CQQO(?yh-} zm&z?k&q6wQ8AL$kznorWax*z!_d-3mZ@d2@_5QP<UawS~)a4(U7xi!9{ja2+v5BF} ze|pb!Vj7?Z=}|;py+=U9sKkHzMW~SMt+=F0W{+S!C?~8+{Ot0z(wcDC!w$0>iBOGX z?e&^#FT-|vI^90o;pOZHD6+uN;)(+pnWGg2^4Tv#3p+ZgeS^Cp)Gf^lXAck;g;%aJ zw0P7LQ=E`4C1z&~mb9n;hk?R(7a{W<1OUJQ765?o|2VL{o{O`E^}jRcsL9xEvLp0d zs!dZ-7^BBFY#RkWHR}+B74mOx;{_7vlWdR?B>+h*U;6dgy%9>e;-FZe#QbCKV9j>A z4JI3{lOKcBYP8rI{SNFz?%96Se)zKlR&_D2&5dX{mY-|16V!5?b)CPTo9r72uaY_w zI(g&Q=R{i;PzBkVTTIWk->y=HFQ+X*O4_w7>#D6A)RM3-bQlKZ0z%NP2PoU<rWz>_ z!W(j<saaQ?ow);>SJcJMzw_ST_4a;;>mm!yk3yTbq`K@)>sj)|)@q)nvI6e_f7H&w zt0p!D5;x>gS5-)UL34?DGaZ*OsV63}?up<2GFuke<MbhO0;nLiY9cDS0g}}fjEa|0 z_mN2+VIM`V11~k*ceUH}LMy!GkdSjq7*c1P>4Wv8um&?I)&fte6##hTCTZB?Kv*0S zZ*!KBd<}E@8f|r=`?kfNifc%(AIA0cH&JMSDfc*)F_ZRSD~vQ9=3%<NgFRN;25_9* z2qETzSn!MUPVH~Lmd)<o^7%#9ajmR_cN!_{reNYfG>#oM@{vs;T^egJ?8}zpFY=yU zQ&q;GO;x<*dKO&aMMyT&P0iuDya_e`IeH~)jyoZ06X1|k`crMLwQh*+DRNF*CLZZ2 zh8SCd=nkZc5H$FAL!Da3&Ur|SXkWo8ke%XYb(|>_O+eATc~^qsH<;XUn1vdNC7mcN z0x2bjKW~+eKcFCzw!Qi<NobMj0qM6Zx^G_D2}PryFqg3dDWs5g65fE_wtuUKtPW6p z&2Gw+dK0xLp7N$P@7sBS-b}5p<P>3I*w_<=4L7eLu!=S(^;~|`IVJg+qLZB?{DlJy z&@MT(*|gPslaj0}tsELzbhkYaN7Aifur@9mZ5$Pzi5J!B-gB9UmO@!}5X?=b{`9g* zT#kAs=2y$QHrt@o1~ogrl<G=u3&|6qvylJ3;ef-kxpQq``Yp=<UBNgHNw|FJnG-ml z1;V@1MmTSf_VE^oRBy~4A?S;HX!!vZZku3{g`Lc0KK9$J?%<ue;FghuV8Ylj%(i0| z2*QyvOih^xrlTrd&<wVx?M!YcZz;&W?>pKy*IM?1EX&=>p8V7WD_hb-cbBqOjD<=q zJJOixAaPYgDLkYMp)~PO{ogL55y4sjdkY?y1Ca&)El#%ldG0(f#pSivq)ECjxP*Ot z#a$fsLlYzTRo6LEcqI?umr5IAx>BrXakk<pWsqu3b!F)AaTjnW3+<z=tO6T)$&Rl- zXP=rd+~O{L_WScglpm;`yQc@A-2MWmJk3e30qui$c)W!#z}&C=T1nBc4Y4Xy0yL+- zt|G5l`u+^a#IVh!MObQIncE$X+MXpT@M#4`l`Fq~AiDEu3N;kpvR}zK?CP2EoUzvA z)<Rwm?FNyr<+q;}2FTN2y-Bv{hoI!ydy3G+)Q}*EOWfg|vaFK9MzUJr>}u*kyjFma zLhCmVU-87@5%1P9=X!*AA69mvx}sUEw;yUZporI$)3<D6zOK*Q$j%=pC$2xxY^BZ2 zuglxGq<!6xOjK;V_^H_JPwwM`>ILUzV$gr_CSO3fHw1+FEKFHL@Jc5oIE75rl(1rB zd?@7vS`KM*aNlh%_K52k-4yq3qnF4ha}vx<z#k&|BOOdYIIFfUUptc@*K^~V4rVWz zSXH@GlgxNtKaHhB9mbg+`2IW4uYqGB_Co;xsQt4T{~x$%;rRb>Q^O{1vmNp0MsI)< zf@Isnr3*9?0Q(AeLl<r)t+~CJ-(TNg4$bCL)eg17WvlSFXLdT?vnj{MN`JML9p~>S zx6q%oDVnxgCl7-~8oSjei-tF@pVOOSSDh9Y4;_t`DlL@@D!Wd>uI>$LgshsX%`Nqk zs_I`~#afop(y3#|hViLV+nh?9H{*@gO7yN)x@CJhyp<Z2+@sUGue5IZTXPE*ZZAEK zMb*x|QzqU30fk%iC^gHfHt-=wJK0Ka%Vw_Oh|UfLj}qt9<Ki^O7N8VcX%WsAvdc<o zHMp#(!P@>26pswG4S^{Gmkyg4_5Cm%o!|O-+Mk~e<&p-~TY*U8#uw*B*A%MDX_^)1 zk4(1=X`XVw?<^AUy2j4P?2GDvhy_JHO!fK7m~~6fQsk7b@ybaYiMhU<EkL5(5<hXj zKBBCkkx=oa((*V}mzYVnNrCeL^v?c_b%~6+`b3p`FBcNf{+Yqf6lz(0!>;QUeme1M zxXk1>G70pIb<i%APG)M=<Na3O$CDXJo-9`-tw;MdBAL~>r+wBAJ&NwVcfO`l$v9Gh z=rgF?@fy;pb4x24)zN@ty7Yn1wB~*~bF2jAgh^VZtVV%;&DFqnNnH5%m;PzVBI<%Q zR~zUQ@ZMbMWv-T*E;O_>;6&8<p^%nJOE-X_WR34ir@8Dga>zv$PbG|4^7-wRW91Mm z$s`OhA4A)Q^)f+|t{K>jb^JcXtiK7Gn%DNhmJP<5jxsE*=80fNB0HFdQLRB$Sm^@+ zowd_432M%w8kXaLI<QE<v7p4Uz-h}lk5E{vEvQl&{76K(#qTRF<55X!3{pW|BQ~Ff zJ7<D2hB~Uc6?rkh*bvP%Q%C~c=P${TM*>J6z(>ZC>PTc`Mcs|Dg2Q2WUl&DDy4OpH zNrecn$~4&^cRmoQjX|2&k<t+;sJ9MVm#i9<tCD{uJ;5a6e;!X~Ay8#H#9P-f!hk0d zjQQJ1gVKh<DKhy$54BvFca(GCwS2=Pw54Zi<His>8Nk1@iAfM6AnH1)DEun1mf7nK z9cu;aO=%&WxR*leKP5(f&m4sd=2Jt2DVo$+q~I=JqGQP{VX=FXx`lIsa9I69QzCh| zZ{bSXK)NmiEKzY2Rb8}Rjs>PqwtG)FU-Emo!RkVJIz|$$36_HogCYwP+(@Cus)5oZ ztV_HO5Bk;Yt_UO_Y)lh<DLyfgbWTMW7baNEy@^B2b65)C<BaKtk6$9BW1~-C+Jsi1 zt&~yU0^XdKi*mjKqPbgu=c9waOQoeZlNz-t8;6_edSSf?bQjlwIY-sX;NEjDz>Yn1 z97=`m5EfK?lo1=E;}cO`KZ!Ch7xU@jHaS{?EkIwm4Rt54B?}QX&5Y4!(dKz-=4fWq zUGOLO5|=6HcLxM_Col^sUF^=Kif{DG)p*BJt&hN;u^7icdk&=0giI$YcMm9oWc;cg zE6Xk-5JWC94IpS3{Ny|sFos?dq&O(`_qs2p|Mjk|UyOmfu#tlM1{k@yaQ8>Ax^^g@ zBFXc=-*B1iZ!A6m_COeNhm<GT=1PZ8uhv*(e_V>4TT<w|JN_NR$1!3s;TD6O#$Rx| z<?Z`@iwOD_%qKtXK3mqcsJa)i^rW4yg`Oba{g?W|+DXm?`<MLQxvNdj_69F0s=8Ee zjFe~@mcW43?PK^*FR%?Ck=9MxsbP&iHc`wfaP%JRE^<Y6Yv=kms4CJh*khCy3jmc8 zKZKY_87K*GgYX;MKQde{y121`9V4z?6g$4UPa%oqM>{8B-Ux?0K4Kvy-^!#l*kiLh z-uh%qh5T?Qv<YM!gk4}ZoO)IIX+K-j4Y*5SbY;%`UYfv?Oqny`?h})fWbU>rKj2+9 zFthwCx|!#sex2;;FglRktp_XVL9{GEs&E-X198i=pj(Zoh58AvvcSU<Gp>-{SQwbT z@Kx;s9VAex96_yMc}~C_oFm3rL|-F0r2q|VM!kVB3&<z3gDh9Mop5E)$eR#+c$i4S zGyD<oyZ;o)m?rE3n$kW$Bt`};EJ!rtD&>S}+)@bQ^OZ3E+Y8CD&{j4PaeBH{t70X? z<pIzk;N``7C7ZylDU41GBZsG@49Wd<f_H0DaMgH@(i^)`N)`&URWsTV#&BR8iXR3p zbEbtVFdeZ&>QP;FNh?4fu{hS7^&3(sh`d;GT#Dxb=gr~YoaSBzMus4%OqBIdvSSVZ zN6&QbC;9aWg06!7sVmGxJRr$3LXo6TA(EoP!FsJdph%)tu}KlFlb{5Ba4}S2AYIzz zAW}718$gjJiK}@`T|A!F0t$mkylyrh`+`Vn(Y^GSXlDXIF~HpXEXX87!^GsIkj5S1 z)glL#kFm|XhjwM2%lth^;JZy*(Ai!WM}_zxSs~L$bRT*V5KmgnA2%b33W}&^;t@5& z7kOy|mS||Nc~9a*_X~wD;iUdo0p=L5R*I$;<)RXx2~$~WBoa?4K!ag-0-kq)!hk1d zU#l0Lg3Y-Q3U}{g+_)noBeQpwOqQV{d80AjK>csWXl4uf144^)9m}rJI_vVIFFKDZ zOG`;H;Vyn>z+$eLv*Zk%-Rh#t^!cU3cX-rXxm2XB&jcBElt-t{m}^$r-KHt3!ac1< z`|YJ$t!Q#}d}cL!KEcBeb}oSY<J3}Kj=?niQ4Vd=P$+@?Fm_4t*n+%aoFEOTMf+yE zWixZTH3(WdpsD^jc-QH&dQ-`#UEoeqy>AC7g+a*=`2@@%4ojHHVvMy6&&Z8LDOJ8( zS!E<MpNZS#hdq~zO<fVi`bOYC;|;ko{aZ#Fy_N{jVLHV|gq4_qVVa#Tsg=SwCCh(B znUbRe9x3gX!t{8F3^Hi7&W`~PX-v%OvvWrT%GUqQt(9sc<3ixbOpq__W}Bw#@XaHj zW126`#Qg_f=hPz%7cSYhZQHhO+qP}nwr$(CZQHiH-}%nvnPlb{?7JsBm8!Lv)<B$V z!<6SY^l@D_g4tfF#(2X6Z&T9W-3H!)7b*Vhky6)TP(BRR$o9;gWF2OIQakAC>fF{k zIl3+p=n)+HJp#!>Bu<+siO|>24(^$n{znGSvB+CKT=ulRtiJ73tjB)oV$^3ikrwMQ z%S5kzl8yeMC%kryA%B|i>b-m-(zc(TafOu;ZR}Axtj2A))0bHU@KG4Gmeu6{hGdoe zJ`)!PUma2eC$vk(X49>4e>Nf)zXMa9Ym#~+Mdu<ZZ_>~6@~_K4h*kYoy8tONn97jG zuIzo%BKbpmCNiC5hO@>O%V=B_3;5j@{;4O1p@FH3!^T7SYviK*M~o?$?xVj-JD^&F z{Q?I_flbVBz{*nri~jv1ED6B3L<QPTs+{8d`}Ak!ieJTLEqJcHAExm@0T1`H9SPpi zDP6Jg-meF;XKt!X<aHGe=r}`cVDhSopm1@72x{NYl;h+k43<UT9?#f2dmpU_%D%`j zvzE4x_6bMW^m_}qUm@f6H9ZWy9+^G|*xvvsB(LMR_sXRFUp-{;9g)fVlP})KW5pKL zn`F&9$xf-17anZv4&kG$N!NPqaLP;v89_1sB^lsG7hGlzO7vwPKJrDFd{)V;<H>Ma zqQ{quK**A)8El&}DN_#v!iF7yCxdp&R~_q<)mh2gtT4Bg)AVBo(Wi1wn#kwBZ1U;! z?e8wpjulcX!;B&Gd~kc^UC7)0A4lEDi_PQz6&s*+Oz8G80{|=!|NnLuCYH`F|3wD> zW2?tz{~ud@6kKzi9T|zS`CYi?r&SxyxaSTgcO^%r$@*fG774{`#LbxtJE^nM=6>Hf z=m9`%*~!Y<onJ>5mbeuFczy8m*q{lMrn;{GMYV1F!2aA^pM7?>m2Fo|KjUWlLuGAU zK~H7#YTHehrklTVtzFaFjrMY8*LhU8neRrHP3={_Ze~^ATpiqM+rOHs?!Fzn*)L}G z(HeB~<jIqpnyuUHw)rk&bAQ_%`&!QJmRUOH?xroXCr9(Hx*j%Z8cn;ZT2Aik?c+~P zFn*=eJ{#+cUT)@lb+di*{iSnt+wB&ed9?|;CU#j^gbM6_46tf9v>kHC$Fdsr@zd5z zYyi5{z9D=4<#NrncGF$k={=fuSzp+EBZ!ZB+s-b=>h03X`>M7|b4(hAeI3?Wx3t#m z)qMVcK9*goo$QDZ+g{r`;{)qwR}Qw*{XVaw^7{F?zB#`Jb+g|!_D!vuDy@@KsCBZQ zt*5bO1=VKl)Yq<R=?yc{G~bV9L3v#@b_SS#o)uotkO4!y_XT2VZkn0C{x|jjf_pt4 zzf{@t&GyZ%%ICgd*n2zX+RAl^h;Xl4ExT2gpf!_hr&Z({rttvrp4Ls=%XrOoTdLbl zr*?)Ss=YudHR@-at}w&&@Y{Id5dqv9d>E3egf(Dk#htTkve)CJ6OqhX=BH)sw1J74 zbaN-^q%Qt|80`W5?*Xc!+5hI<Pk;33&;A`ZCFtkP{kwj8O1|`;EH^hdXNZGwtL1KK zm~IFd)$QcX&}^%maf|Jh1tn)^;NSve0M&+M(~NpNH^!jNgU*<%s{C%M`c%izSj+U? z1R|?twvy^z+({GH7_|pnuD(?Z>>To3ZHUsqS1X=zFxgyX<d}xu_~)ekJ52+~e0X1% zL5GvTi{tz?Y-4!RaX-9BykPLL0THfa_G<_q9eb^B9ze_B^x<p2mF*P20z9W1_CZ?g zLhyCGcaSxRc2K{w=+dZjG=93Yy6w8IVEV+IzyD10Z<hA`-g9l2CHxjkJ&>Gly3X(i z0)c9a&TpO^k>kT1kfNFT`zTqyZMJG>C`v|`l*17E!$0uf@8>AIz1hY9`mzFG)HooW zwXA=@<`TL9dQtu$+XD~~;!olN;zRu=N7pnt=d>Psga6ZSpQU|scGTQ*YG<VZ?lYX% z=6Q?-?h9o3T?9CSl{&9VU@F8!$F7w0B)e(%HP6f0fHzPFa?A)`I^Fe~nd)FsJ##=A z9MVibTQsxPFB&)~d2{XC03m{SAl8ioS!<wey5I|Hfh$Ls>uQ#2KkppGOyM3-ZMmFB z-YCmFTe#OKb6`?g`6m!p{VYE`L>#zY>q4@od(7HC%lpPH3<8oi;9aeZt9VL$1w0-T z|ACFV?*75#l^ueXdq+_%vBaQ3;*<;Q0SzrAZiQ<bf6I4S@aZUNVB(4kTZWO91i<Ee zWr`#bWI2_mn{`|Rp+Ljd^)MU;E#5n<3wbgDMyn<vJxCJdLO{b1Lqv+%8SkIg(&iZ@ zRGta@0;++s0IbP$%+1->!pzP^!Fbk!b0hy;g@tW^h^?t(WF#}{M1A|LYG<noX?Rpe zi8_%SM9~bQB2(pX@ph`XfJNXE?%TKR=u32(?EP$CtpR|<<`uC+!=Hj3t`!}~K=rjK zo2HN0t-;J@Pac6F6yI!MdZu5JE-UYilP5Hau`f6UWDsagJV4MMck*M&O#rPtN!Qio zENv8~h(o;;$HYKp)vh6Xvoa7GShvs)EkO7M#7dbUm11pX?$$F2Ye4al{=1uJM(5tJ zMq|Hk^DdrO@p^l4GJGg(4RwuD!_tHW=z^>#IdCa!&39X%;ULB>7gDkv94!DaNJ!!F zp71B?0lS1@X(%K_Cy*6<HGokerDTgR1R)zhsL#2DSt2yfK-~}AUuH}A)=(I*E<|#^ zoY`jcrA%wF@37jxmf8#GHbJLt$b_o!NPD(r$pw#Hyz>Q+>|=gpL=}kG2pb|T!qpzQ z?cI!9JnUTq;*A$?PN0Ai4HMC&2F2YO_*~2L>RDD6VMb&Em33C6uir&!YlS%S8wl#$ zT>?%+qK%euodex2;4tl-m1*F&G~_1&xS$kuAHILciU*abBqukA^=O;|ROTEjdrqjn zeICay^b@w^$@=qpOYGss=bDRvqZ8-OIsu)(ImmH022sj5&D{1CU^SkG5!es=8{d68 zyGHCJ_-g^Y?3!|=`KMR`76@<wzuJKu$|)2Bo;(Q@<2T!8`g-ZT<g{)ZD^PAG{j~AK zA6RnBcjqA!0B|Kez&-?NM%1Dk07>EYU?wng^|{<>p{;<C+!!E7JNwUqzLc=pHgMav zRmuMAy+5XZ_e&r2hSyI3O-|VDqpV3ubc|ATS;=m0O_bO6r(Uo!R9fg1gn{cM-0G#3 zfFDPXf*=HPFd-oKs{bk!3uOGY+20FlGi}X-CczYT?LUmW8;oJ0DwhwYi_aXKNbvL+ zmW8u*D)Rk4uygnDHnRz2J4CjvK)>byh8r4DG_#oYd`h!`=YiwGedo@B2#VIjCXw(% z1<TQzRa+~>75dKM0S39?g@L9PilY`v$>*86s!<Hlq+BSN+R3%6tqi>pLFL)nT#FQ= zS<g=jJg;`mYslR*S+v3nv=ZtA>3uOMEKvfj>blIVzu-e!ff4zeWy#~1kNOEu$x;(1 z-UpzRd;H&DoTM<`@jUHBo^bPPVH+Z^=A<hpgn;sl_UhZfaS&oUTSbXdoV7uqf<I(Q z&=gc_C!V`+!9=>#3mOf#=LO)dCBqB&1&achVTyKsUf_j^q(_hlY0?MM+OZe-zWQ$I z99&cL;9#CeVVdpXsa3qJob%UU=b72Dk|EPw1rV4pA0!eXTBS>011^$JS)%@{Dr;CO zZ3(D9cDZ-%C(jN5nG_>GnYFpdNEU=KJL)#)iH?A(F|eYkeUViF$d~X&T#Z7jAp6jw z04rn%6$YRvtimPXQc07Gb(u;Ae$@r`GVMIyRE}yVc+J|u7m*p&28UuLWz#L3`n6_6 z5zVu4ChQ81u143ObF_n1o?YR0YT+hob_nkeI+Oi3kO4PUF6>23%xMACL9f@;`2_}< zftwZj?6cu+ZqY3Qfu!0ODxS$~diJ4gV`mgS6clP?E#2%?i%5X3X45g59|A&{Os5#t zH<2F(LaKRHXSy1+I>_m;JlgO!F&E%%Q!qD5<ITN-?7daQA#X0?gLL?r`s})y{twyB zOzkuq(#cfh9vcKQd~IKbsi{*lE2oA9|J5t_eb##Eoiu^1)-SV*Q)iEoQe`HL0tZA9 z9oP(v>)3k2Bwq`c<_<N(3kSwGgy<1?b-HDfNHdrif=J{4d5Ye`rGZ5pk$PO>IM)e8 zf_$JE=;7yGl9}A%2iy-Bh1y`2xoK0S3QB%mOnFf@F4~cf#&lCohF*W_%m~Z&S#`64 zX2HJ2rca~a|Mi%C->2jEcyvq6!rl+to=x6@!hHl%&Na#B`XE;jX2m%y>m*utUogiq zQ0UXD9lZ)>p=BaGzG}LhpVNg|5W9NT$xAgqUsf?*XD0}~tFjJm!roA2Q*?X=Af7#Y z7dUYR%Wm>ew3kqdQFwotXx{ScGc}=pBo~Uo!_omD&;r>)fXHFMLV%p>&<!#1><6DN z9uaMNS=2F>lV^b{uTgCZ1A^&bKIP^LoE#EJg)c;$2Fcy!v&^yrsy#TP6&Sdwqp2RS zQr!wZ?JEpyMKOJ~$N<2TAIJ&ucRe0Khlyk{Q|2$11LQ09RT1o?qK1oP+0qQHKplD4 zN<1eQ>th8a(n2&EO?zV@o`<^;0i1dAh%&;hAcMYa@m_>A$5{53$QT4CAQxfMpK{A; zLuI#EXe<p?fZ#Z1+#WE*ozV57M|9ajIzLBmj;VyuBBRNjWU#Zf5^~-Hb|GL>d#U_Z zc$tgX5@bg#O!tJ^4xi;Ab|NV|GsmqOw=7c|eZ0PQ6M2&n!Jab}haqFJ3_NH3<&BJE za58LEy=e*>i?t$J06H-Vs}Sn}r`AAlY#;$+LFveyV+w5vTmbn{2&J%AUkOt!M4fdx zLWJ2sEbh2=<4{z5T?)@ba#tT^Iy8TN0&>+7Ofg-gD#Ucyw>XtQ4BqHj<O+EL^`g`u zO#03H%^TYQr6b{*ke}?G!7g%*7Rr)m`dw^%qmi0f86@QL1mz}GafM|{#!^M(V(%a- z0$kNcd597<uClC(HmY?naGS-0#Q?Setc2^Jvw?$E>&U4sautf75#$W3B^pj1j%XZ6 z?k&$ZSE@o+CLvwJBCHG*PBfQ|nq4(2c$G#Fo_TswU*g+mm&Gcr8yL@Mv#QCi06z{a z*Si{+xq8z1VdTj@EXrt=wU!b`{snaz5wXXzSKL}|4hXoLdVg8G%5<E_OHLY6!L4O2 z*o1_JZo^pALAj17`LGcjby7N3gFi`Kz$*OMWhk#M;bIzne;~pFe$SN+*gMV(FGq#I zbNc#Rr6E5&(Ugx%Ju#s}q{N;WDP=6apo0VXnp;WT(y4)IZ+kb>wyBNXpKT}erW`7r zc;NT#TY~XYZ}NP+boEeqWb3-hbSaU#H?TI~Mm9b3{YPR#(|*IEs<&D)d^{iy*g_fr zpy-uDTataG#rY#iYq_52eGe2DAy$V@!Or%s#ol9;wXJO|p?>!@Y&ML<-!PRk7xkR3 ziz|$0plK$Fb|qS)NoJ}FdRS@<XM-wW4C0#Wj@cz}r|1i)qZ5gqx~mPO5Zz9K+Efp8 z*1+2P%Gq_QaEyiIR5DmW6eqckL1irE*fLxQeiS;rYKSm*rFPAfcQv%33DO3GB<T<- z(^0Pm4#Ve2QzXv5MZ2IV%OY?=^{x?uR}ty7MQBZm{?1z`rMiDaf1}X$#L09ROD51! zaEcZ&@ioz7COZa-0tq|qMl!XAt5pI~9w*S`=4Iv$(<0!-GW_@FctKJXfy&(<6y=yq zpx-v(yyE5q!^0<@6(^+ANjL;p1h}H4kWm7@1yDR7TbT(vD=Lj}G7Ul(8D<ri)o_MZ zG0I4-#<FOQTfuNLV6HbqQ^q>rq_%-_i$i+zH7JN5A*y!-DCR}Li1|y_@{eQ+xU=jR zAj?}-&(=|x3&|8d7f(5E2Hn-7>_TRoGOWC$cZ{NBm~Y6bI{+BPU$~qyytDx(x<=8f zJ!-hE-i^VU1*dW&AP!{5B1sD(uPMFbnkpw&`E-I&CP#Neo}qUD%?NkjZ-jtw0YLZ` zn*_Kek(FjT87e^SR^q8tSSXRKWxg9C1XbZdfo_3%3H!QZtfL$)L(t8aLR)~+xW+&J z<A^H=#a*TXZDt=)E&&(rHLJ!6G2yR_bQ)Uj0!z;A8W?cpjwVP=kEm3XNM^Fujsdo6 zNN8&d$vC`*NJs5QGn*FJ`y4<Qj_R=TC5g7;SlXPZ>W5BEfK%Wf_8XzF{!xp;O-Lh! zVU#N@zxKtliSbo_5&q$eV!jnj`S+@Cf3QBCA;73e@nc9~-stpsj+99e77^*+#FXa! zYUysKd)<F7pw*~&^&|rp{;-iw!a=-ZQ+0_Z4H8%3Oc;To6dju@$&>+nZRfy#6hVco zU%_&NE=H>ZUHJ1#-JSLZ?hU?gmh2xb`65#^pi_9-F|5u47JFTB<6^e<=mvzrAxcfV z@x%&|*y=1H13oA#WGTSbXNpmAE0j!w&j9e!8utiU6Ic)jVhs+XcW5oNkkDaOynBzH ze!AWK?EB$e9<(pZ0%HuKi(h3~xHA-|d~^9O$+wW9LC5^15W>K+K-lrnNdmkAMa<Sy z>gK`-38Q+hk%SIC0@E5P9u=KrjiTbGna5Vt&|l?1xtKCO9xEH7M8A93&7wBhPCNm~ zlG0dG<SjHeNas5R9&yfmkkmTv8<=RmD$fGdEd_=oHpZ%rNGFu#nL%wu7A*<`1BDGF zbmz!u&&1yiJeh%3@U<F6Bw->w?^~IND#fRj#Y(&Sz@h+%-9ierlV=|g*7}2&{jvgs zcyx3O)so=yu?KF(<9dfc`4`N(bq1KNZ)M}P@$m_!fr0X`*27xFp!yOvw3J1=W1@17 zIOYaH3CO5jU<mdY@j%Eci!V%W&C!*5738!C$_I?_5ITTcsuE!*eM6tBD$~8;#kI84 zK@Oqtf?wTes6^hllDxnUg~mpNMY{+m@`B#vetO~OU>QK{uUKt-H}78OTpL_%B)Sbp zYgwizbJcp;U40ocE8|I!?(+eVPN_!oeI19A9N2}q$P;r6;K?;b8uD23j23G+WP1f* zs-$YjmQ<l7*Lj}8M`D?PsV+M>jLvyw5W2BhBF+?OdM0&iAa2~3FyD@Y{_z*)!ftFP z?lXdbj^qa8J;8m%Pe(T+gu1IlJYz=INN*rgQV06+#D_r0O5YQLOLAR1@W>d3UF)pT zI9KPY_~%DC3q!aLvY@ii+{*^MAX2@ksKG*gmjdv>q$g`$vBvQ+C=H;0g&oScD@U26 zKg!3xq4PEV$B2Qne>BF&q|JJ4Ws8>(mG|l%uthf<Ynj)08yG`7Skpc^Y!|N;FVUK$ z2_Qn#tqW-PWg-SP&PeHm)Wvg_mqgW;y*}X>`i*UOQsBXZ$Dt%KPz_MDo8b{y+!COg z9E;o=uj4he>Lk%M)N3~>N`J(jIZ{z(7O{<7{uEs~=D{7twl<IJyd-^XD(y@Q^I8$# z5=LZSX8ij_lAM5mz)4+xog){zLm{+X^kvK~0EzlR>WG=_m?)|Kd++0Xi=sGmu*P4N zb$iQVqNaJ_tDExyShK$Go7YaSIlXZxayR68wQ#o46*pcm=q@%TRv|}?A&dqO^%{jQ zSzt{u2nj6Qs&`=DlpR<aAWqNoJ<wNU*qXW%EFAsfm+Ja^juZ!qFB_4QeV1q!$9e<$ z9ebcwVMgly>D{BV^yt!DA=9P|as9B}__y(C%kCfXWmV9a;9|$uzBwRD!M2L75Je3Q zL{_6qo}K&IUbojF(P~Mo_NPYUhWZZ9Ny2Awo3t=WlsOewz9g|pH<t0NR?>`hU$?kU zfr7_^+Y`(PHm{Y2@S(?v{}}-r{4?IYIT$o*C;q9!m9t@7Csc-gA5)QUNH$3J88N7C z;Gj!On{oABKy{zRH&n~--<pus`8Waj`y?x4lvsflA?#N0k^;+eJQ0!f)KD6W@Yl2W zt`X%r;C$U_7R1g+dmPL>Cvi+EkHRS&uSM0*r1h8Edv*4oa#OxZg_hgSv2{MeCBwL6 zb_1*iXx(Tx13LXIg8qg+s!9K$)FJ8nN$NE;@OQ=-#R(K4d=}t59v5<LUtJL*z^ekX z{sdAT74oQx;)Ir0DeUML<)kyJ8trAT`t)FIs$6k9HjccvS$<t~n+ppsvF=En662!) zN&P{?=J_I`g`P`EYEUljpzCwI@+QIYzvO_e6Cjh@dezw$I%UxX1*448aarlD`VA~D zk&35b;3k3e@yxdn%ldk%K-XxMSTFFZ5~rJ4ZwvI1%vSiFmo%{^NEC;hJqDZ)u*zH! zrHBoFQY=wHRNF}yJ9$&*6fZnb>nhh1k6^#E?f?=yIt$w>hOrA9SQ3}XAbp<p=|?Oh z+Uf`_q<>Db6>1OPDNYqWI=*4W`cLe##vNiA+Q52lTzV0Wi4)4&Q8thU4NghA#;(!2 zT1}{%xx0lb(KtnsFm+CY0BVzUqlUIBdQ67MCL+gbCswA6ge^G73Gy<e(&N7{Oqm|- zWD*e5`dieSoGUN3QtNGBYAm~>y`6TD2i}uGvR!lIhR{p0IBH59;kVcjbvTB^0IfDY z#UyNz0uzo4W6e&`5{OfDXizu47OX6n&R=K8<8cCLO^mzpp7CG+X1NJEq^0#2FXtt- zB=GI)mJ=#3)TrC_74w#wO|=uaL7>wA0|bi*#3gc+G_r^&Xy$t8Ki56z%~&*b#!tHf z2x)9#I}_tvhGJu$7`=!?hNz&>!f%CVF7NK7>ka7d=Z`&3WmnyPEmR$ur+i_RL2z(@ zgo1bSz@>;Yeg@Yf8wpF;Dl?*J?*%MH9>y~04S0<-G|O-&YH-+A+;HGC)$vyyBD$P# zzc5fYMAvQDBZOdq$>heZB}c=SGBO^*ldjK`#<y_Q#J-C(7NNWgYr#fGy=hNEw*m+S zwxpQ28VKYeadMvFGOxDSAZA62i04VEQNnmWTws(~806E65;YHsog}=$_$BIYT(Z3W z33CV|=CYfoj0zHDb+wZ6c``zv-?FxvuS@9SY~6mJuxBGcAYG1~ksJIAw4Fvn8U^(X z=7opl)I<OuIpdn_Fqri~AuENIHaQUl{8{K0;bpiwN7^2F{7DjqGTz3m;Ck;#*sgAY z4b>=S7zrQNWq`U4Yf)4hk~pUC-lpRy^H8+PYNN0OKb{W*f?jPcK4?OGGL5+!CiT;; ztLn1nDqvHM{4C``f$RtrUi2ge(Ul$4;ioo9@<<`ILARE936oWtlNX?1BBBZn?4Tpt z&>9O(M4ZV_Wa%>&imNI|n5d~2I14-;HIWrWTsTs>p1fQC`mp=dd(Ew%T<>R^nlB{K zG;g8&Wko|jIn&t|hbr8+f!V|(ZPdbGx%`c!iUcHwG%PRrkG#<Zh`OLGk%tC)p<rCb zC@r1fmEqbTC8*c#YCN$&A(0Lg{7~5BQS8gHOY~GrHJ;XF&V?#vDoqXc{m=5sPoF)u zfQEr?Skep$M;GR#)r495n;pH|`L5W>?_Ks}DtsNqq37d~=q+lVgf9`Q3^7}iNp&qC ztxJS5F~bB({9-8s<?GKR;3p+2e0@T^6VqC}%8k3ZE}|8VCO9T?+9D8|w?u-(PS^-) zqv=#4=08smI{v<b70`k1;B&rWZy@5L7zqb^RjE4>%0jF{7ks2<Z&e5gUN<uTTwh_P z6pPEa5Y#!%q!4M?Ip6R%W7VgKDa?=<GS|nWx;qS7^e70&ygH3?h<59+Co^$Jd=W>J z5nnoN9-zde5;3|D3d)Vpn~hwLV5@m*(!ql%oYl|H6g$)uT1IzF>85ILFC9~e6bqcV zwDS&#J3SCk_|S<4UjyJ3U`>duStKrPV*|!bm1q`(F1<h_Y|rT~%Iu4Lsyjag>_MKJ zuz!y4`i&&;^G;?c!qgbZkMpcv@Pk}_$7HZxu`$XOothRUka=gUbS_NHkw@c<P5U{W z2QaYDkYq&xz7%xANuluRDL5+g(#ms2O^ey8&U(s$3<dwd41~o2W3d2Vm+B(yW;)Ol zB+(W*R9d+|1oAwY9Lm3JjG(UD%~DW&O=vdJP|FIw*qS+EpJt@#oxP~e3>et5VISHR z7l+DJGkg1o8t@=H5Y5xc4wdYTf|43#@D~>mY}qp1WNl3s{NeJUmRnA0foyYb82)0H zs3=2j(>u?!<}R!1O=-8hUt1j@?w*gBK|=}#ZSu<JeyuD(DZ6D@Wr&?-<L;iK1E<8- zGP$w)lcwfgX|Ud@fd*oFb0vWl@BQoo{EMSjX!FrSes`j5>5hZPWE692$m12Il!vMO zeH2_5Vb_2?h5rzE(u;`2#1yLRJ2?Ua;#PJw!Q-Jqb_U`Utb1Dp<k5Bklc~yauj$`& zek_V$o2z!Wy<$Fv;;)j9f0eh+>9&iMM(Qf{!vg2M1S_lW!NVHGrq*Z$g*A3M44P2| zeWdNr)$gkMG9(Ec9poa6EGS&a;w7LhTU>uSw5;d!)z>!-_)>E|1BSJ2X5^m<zh$uZ zU;NokAh$_u1>&;t>$;2Rg4m@`9~=j{giXYhSL_UYMkxus3HLHjZmN|A82RL39OL<V z$Z0XzCu19$ILF_>`wK1XoJXW1ACSvIJ#-i*_IZX|F->tb<LXE_*9N+&x~)zk-a}Ov zV8EtTbM`Ts^hPMvT-k}u4$-X5x#W*CvoEA;r=4+4@R>Wwag)Wj({2XDojy_u-^h)> z1SB2}K~B_DrO*$6(yH~0VZ;wPrMy~E4rpv6I<-<3(@>@4Y5=-%2J2RZ+Y(C#>kL}@ zajgC?Mp|K9JpzoFtzD>omLGm!E=aWB$80#^Rc&;KM3D>MWh>i9PSTCxgLLsgKv_er zgus@!oTU~phSstGMLo*Eyc+hNR>7{j954()xE;c3vws>g;??wU->eN3p{RvUb!Wdx zb~IXG7a(l-U{lwVX`98d;tpXc61zdpN)k+0u%(Q-OpI>t4DTM+fj4_T*;z}TJS|dQ zCZ8-~zbt@y7h=r{0#RsO86To;m3#EB<wUT`h!27MWI-5urv8V*DZV+g4{3mBNx6@z zAT7GJ>xO7Z8wDKC^>XBQF?2?H1u4&mN~NbSEQEy!X8h#+N%2hZrL@AK8V&*td1SM^ z7Y3PS4#3$ES`b_Z>Eafh#!|Iv`um-z9Xz%5fBfQWq}JnHy6Ari>T0Ulj%{0*r<ys6 zRQB$Q4jbQ-*Sb9qQ+Z+flym~_9JrC@a<IReO=Mm$3<zkBX=B`XcOyqf@gI`>0v!wd zax13aF|*NsC8|;&<4MII-gyRTfGqXbn~>Uv|NT5it6Z=akn8xDqj~V~8GDvEH?j|h zU~gIX@n3Lr=yKn{MTN8R`U*o#1F;XvHkDdt@qUv}2Cz-uBzGe`DPBwoOqVMi2njNF z%Z6@1X)z7DExE`BM-vT%`|z<j)M#o1c?fmWoy$T7Q_Bk}FKRD4v*w=6k4<mCqT;-l z)}yOny5bkAsXoP#)aynF<8`*Gvh3z^7;Q<kv`T?toJy*6Y8SD#(y_$oypGxf6|=Tu z_D}~?`c!=x9Gk=Sej>tO=4{-db*6m>KP3<C#h@wL-<i!mT|6K?PtYjIxmP#@(@5q6 zgn*SMeCYFFF_)QVGw6s@7S)afAw+z@HZOp%O_*<=S?(^}c$sqKNZ}x6)SykXl<a*u z2rP+Ly9jZ^mj@HCb{v|#I)e~(g9^fJ3vA;db|~BR$Kp>lwh{OOR?3%x9f|<bQ~F08 zwDfZKdhSzuU$$o-CP8FWSGU;Jx<VMv(EWBS2MUUDV+_IF8YABTWOVd5Ba8vlu;80~ zD}enydNAbeFO!5L2$*58O;q~&6ad8xmyR_5{5LN|6&GMo-x8kp{~<zS=KOQe1_vxy zT+4|X;JJiamtA5K1EIiCSMZim!l%HjV$zL&c?qGhygLPuB71O+=vn;bx6(iH#OUyL zavclv+%nC<dtUH*sD+A*$Rz-^6nMK<fcQcoWm@+kTdcs`mqvzPrA!t!Vsz1)rpR!N zP}u@ICPI(%HYWAAzileD)JFf?i8^JFI}hQv6zTpI&@P7AntE=JU(&P_S4kOx!7KFu z3yxo%34G(d@ugVjJClinwdIHkNAP&ceL9Dsi(=xzru`*odL$SBjN)KFQ-MSxMg*Z- zVn!7QVA%;rz~;ofutfn&KNHlGjNikW6j^bY3@v`<ip61!QZ_uvsGa?kq4*`81j;7s z5P|=B;^ePI2o(_N!~t4-Ve}DgY|dZ!6&?Yd-QCi-IGe&OdDKJEm$<*IqxZaMeSa~= zo{IE>;X=3=BJ<9Cc(b5wgx2gy%Pt#Ck0#rK^R%ad%-%S%+$!vsStgNl72mL;Mlsgl z`0+wQbamaVGEXE-%dw&xM<(sr0%?jH#tFB^xhx&<AQ@DzqA7~i1Bm;AIi}Nj4n)Ko zL(4B2NKtZCbj$z~v{R6P@QZ>Mt04k=m-~Buc}lt=C@kB$NRj)pfX6`4t2PM2bv-aT zOMZgv`(*d1ER+=8;4c{HjM?AdFpPXOe7YAy8JliN6kBj1Q-9Z}#+sa8-VpeC*o6N@ z3-^-|?hRu!(n^~1uf@Odof#WJSXmDFB9HZ%4|5AK<V7W@hv)1M!z7WpwE2t0G_%#U zll9%*7XgG8*^qikmb~J)jw`1CvaJL&l7KW)9h&ALV<zqbrVlNd0|=z;I3V35A48T0 zVTzOWuv?ae5y4jBsvHf6mS$`@Sw(u)fDJG*tM3a9g79|J*Rap<f_BF_DXGXlNcKLl z;)0xY>#0em@n-s0GJVpgb=aQuv^dK`Ln|ZVo!+4(*dd5R@8J-;5WI&V**8E+NjR_6 z44gBB!3O!<zD~G?%IiBEHUtTkd)?&P_c?d0NXTga6A@$lf>YI~Gvpy~aAY7jMU)Lx z_}>a%F^aiJS+0}@4@Ccvp;EHaS{IVN<T>O^xHw--DjywD8_Zc{vF~@w7WZK0!pg!9 z%r=ZhMlLUm{XknGLM|~v)-i9-Wu!3-Cr3-JlKH?82O|Kt)0vlt%rKnJ#-v<WjOPhn zk5O_4#X=Fng@GZ)Z3M5WpJHLS5OjBoP0_|JN~^jNfY_IN;3vSrn($$zA(JMg#Ks1M z5C>zp`e7#o*r7!jS$^F8KWc7|#BHm-Y%B@M0DcgBAygFBhw-PO3SkM@p_?y&Duz<9 z0wt#)DxNSb-<;kSH5Jae34J93H(1qImyYRvZ!RY@!_O?^sQ$l~+MuH6nGJ*7qpOTx z@y@PL|EoEQ_(lJu0)DBWt?tJ_p1il8@`dA2yxp4K=4w5X5N!46((^Yv5BgO31M?%3 zU*dPAWc%(IFn9929l|06zAj<LS|51}M2WffKP&N_@-y(o=*JBj%i`cF5T}(^GTgII z&7*7X5Bmf9;C{+ZKon~C%oia|;3AMd1tv^|sK{B80EZ=EEr+_Nqf44qzQOCG(IJ3j z?bIO^hLAo|_q6!&NRSjN4}Tgm*2k1?lJzC2l$4W`{XuMp46xPn#P@rh%bX<DFE;9% zYI94Imttyi?B(cMk^U&w9(Y{Ss`m7(2hrwx8zkwFa;6ri{+p9Wr8kFUGz+2zXvu}u z0-!UD6SezYW<@p2gK3vPUtpNkl6Swgo3W<pQ^AF3GK@2?3&t#DVA>C|cZYt(U{_fG zh`P?J0i8&~_IlmT@*1@(Uer-QIEv2=HH(#_Esw`|Drc!P1R~|15)p?W&Ji$wpGvn0 z3=`u@l9iD|0g(EEQv9Z<Aqh*iJJ1gDT_F`kz%%%Tgwahk;Kv|0y3yz~=``82X(3l0 zmc|JzXE%~;P1#lm$Yh6Fd&n1vX(vN)c=)Begw{;QerDEl%c}423^SDG5(K7OL(GxW z<aQuW+I;*k<hCuo|DKK;!Q@pW>d7CW;qC-g%uo!d<LbV-CBWj2Eg&z;&#`p)B#=A} zL<nQ?BfIpa&x=+5W`M}a5r_)w7t}vlo4V4GoE#AFyLjvf%j0wWgr`^`Cz9mou>8}p zYa544Re8@@)}_-EVt0zf!jG-=n!2Q&N1@_~n=l6@3pm80voVY^k*+EjNg$JWIRoG& zM((F!mP)<oiew?)lK=f{ERnU`fq#;LU2~;jvKImtd`^42nY5w~@q*a=7h&$^g9%<< z3SrOF&DuDhdjTeY>?4k0BUXp$tC^4!JQpprrjaj64|L!pKk{B1#ja1IBf~6O2;$D# z>1y48k&fY9MDQyvc)CO0=J0;id3KPB*oU4EKfL9{XYlcq-K*2jY>EqyKR4`qeCT|G z(wk~Vd%zMS+R>+|AdXU&A?EV)cpn>c@Yu9GQ5iI6cx*n`$n^j#0gG#%7J#h44x0#s zjU2Dq&#I_UPQ>sNh8h{$85Cr458Z<h;vyeuM-rQ6g1m|E*dLo3dx>cMyCer-SG7M9 zmDl$MZ&utcevv0PiQU_NdSqSuSDtia(35tjzU1YN9G(L<RWS<G%M2KKPd~+7e_!Zn znSo9d%K9k*hp0`P5=SGbdv!!aP;JF!Nh+_-fy+%Tqbuys(TN`_wzLWNV4fh$eK9oD zlqU~$5{Xy55~qM;%4P5ly!2Bz459|`clhhMBr9pr`nwIGgf;qtD26n%CAuD>s4VxP zrfF)IQXKuJtf$nBk%%IVp9CFTM~{zZWm|WumWU_$bhHE>GbFr9ZyO62RAWn9G&L%5 za@Q~^_PJy0e)MCeVVt?52?IY-(1OnYV@mY8E$QDJGerN3j~m`y`q)voo107+1CCcJ z`NnlrfcI{lKLL_n6VH#F{&gkkjz>l8ArD`&eRoi|({#ZHbsbp_lNHs$D#0dWr5!Kf z`(DxFKH;r>j33`}!nsD%F^5D9G<xIy$g;-7lOosqMjrTsf*+g2Wwuatl4&-Tg)#}2 zb5BtylVe<!n(1}nbi0Eseq5+AX=Tg24hnC~PO^s!FqRlY{UOv_(-%z8j<Ha&&bDsb zIs74$1aJ0MN??S9)FEsX*moe-xt+^mbuZ#!AB8Tf>Ahf70sOR|4J>BAX`))2xgA-G z!ub+<0P)I@#6-r#qI^7iP^wMw!Ph#E;Yf5<1>e+u;M@vHNeWR3U)%~^Mxu<{HY-fJ zI2w#~lp4iF{;h$1keb!)MFEr5J;4$+sE@6ns+Fn<Z$;w^-$-7qaBr>lLPg5=6hhb3 z9=7gH<e5&+=L(3|i#2B)X{Ox5v?djR6Q>ogsFbtOF5;eK04{v*HDi7_;NTX$w*YGf z+yq=os!|xXbwXZA%fY9JpKJl1q_iC_S}o4zEl#EfS2O#OoCcw+sw738_t!GRO7e1< zr{r`lke^<4r$SO2_qbq7Eh-S+_y)WX=+9sIMR!|TTcM}53pFFcRDL*!b=Ds$M7p?0 zb?KZm<s@A!!5lNJ8YN5O!XGPtvgbvcM<dBG<8FwAJ|?E4o0rUqnc0cn(202t-ZemD zx!?DB#m!3k1M-i)0!Vd@=TRX)ivH_RAsn-I114~i@bN7ohS#;6lIWRV^V9}mV7gr< zQm}xN#se$0zS9%rS$>xM<Ltw>V_-aI1ZmH%A8ktC$Lah5Zbh0qd7OjH6`veOU7syQ zDgjTXjZ!v(cgcFj%@<0Ja+Gj3=PxT+VeSQT(I$n7?gBj(kRZ|jwd<zSYi+>#V`;(; zurm*?(08(HmghKUwDAy^Y<G+R5=LOSq19EmxQ^4i-52-{MFxDj%!K75BIkrBVg%F+ zLGGqf*4FvvC^>7kHtH=XGGT^5Q{Omqm`MP#k~l7NgmnhHU@cA8`@@WN@Ymkvq7}2l z<UiQtu@Et^wJOu4fx`%+K>vVxyR~FYzQd)+*fioDb45Rflu|HNOIUeiZxl?SFlqvi zpY-=*pPz39Ky~^DL8$KwADKzh2_0>oGl%k@|Bpk9?BjB`bPTCC))4#sH~0WDiE8Xz z#I-UiNkM(u_Ei<__7#hZI%UW$A2|WP(M<4Zc2{VmIUj7`G%`MUpmVCjz!M{*jwj*? ziby4rP)a;x1O{NfAF(X(YpYPlpEpR?5i53J=EM=B&S?Q0B6l{iW5*47wbhMcWQfq; zs5%YbPsV4lSh{#zLA@f5jB~V07)`i@xW>*%$FH^AQk1*VrSK$XV4;~mGqQloby#xn zwD9<g6pvNq0JhYDV380|D91rI_ok|7r3TIB*J-*wO$8aW9rwn662P1kcz{;6y=O96 zRzN3e6Jn^@wodTc;~3Wp71cf0leO^OI}2hNEU9#Z<Zv&b@Z;ijn>l7lM}qe-NGZ<% zT+886Esc+!pXv2_zn`;i`gHvskMFD5==J(NFwa6V2$fx>EC`R^NN!9&%`9C_+gJCG z?lEu{ne0C<8%K*^ep1thzmlPWpe$M6UL4A1cf}WWcXCnx5uDRUAOi}38^5DvhnFiU zDTb4?zA=L|Q;zQV=6ikL{NKyX{z}EjN744S|0t&H?v<i^S12HFwuspQ1^tn_{1`2u z`S>1ND543ce`)(ylmc3{&^D~Rr3y}JG;3stHw_DC2{_c|DqaN{>V7Rr;tk>|o&abz zn--Y{=N6tA9~?l$L)(i{Xp!R7ALzSdRunHd_{~GBDy4)=Uw|6ZhZr`|lf|ewTH9E9 zhmZ-0irilMaWPe=UC{KkR^CNDF_dn&v`)@mJe{viBU3wyFC4hJ^jJ_dM{cr`W@1hS z03+_h8^q}kAdoEo-Vpf!|DDy__kDlPn$RG_tINg)3q6g8Ek1H^_%6Fqb2>&~kch7u z`klK+a(huxk(izxj$K)W(flppyXnO3__cS^sf<*R;ryrf{YewY3IxYiX;moRIy{8Z zav5-(eyh;(v2i{enzNTIH}MJ)e2Ye?D^>xN_``}f%poeR&;mNhnHn1`tIQ}e0F?3R zvFig@i3jwGLR)Fi{1(pEw6h$=={h)Q+GtE7q69nv7zxfH70oGvgqgJ5$nOe%6n`Me z=<hz};&T^m1&*k@R1sAkUync$R4?DvEsrHfNOIpDN<R@4lOR0Z)IsW4I5?St#H4aC znn#;|sR<ANCYmmk%R?c=8C)NBTz5`pPsc%qJhQQXC(E*^E8MQg?uRE_3(mO|++&;T zy4$W|AL*WG8|sPPd(cr={0hr&q<XBs|M&HZ1KaQxYT^jpW@atr;@C0<0uy6rloW#o zL+jza_69kX3K~y8fA(IWn~9}@UEq%XDbMf6`mdQiUUre+1Uz4Zlb_otqwS1^^<Q!i zH><lGvy=}Gnn8}QcNjp%2g~|JmO|mJUKsUiSVjVkOLh*8>N&k;U1hrdeuVvXCeQS% zVQOOSX-XH84$58_Q9IY^&pixy{^)P(Tr)Y^1Iy+OEQ6;0s^xf1OnEj8mqTsN5+0;n z_mhWd+Rl!i+IS0iB@4JPqR1=n=k5FRP5ZuoEjjd90)URd!N$4pJPVk0**KHu^olRj zv$H~v0KLG%4feE%tMJCwA{f1h{hFGx5(&NqBRa41LR{vb#dW{t=_Wgh7~j^3^mLs6 z*P(q|uGn^?nb!T>*6h`MzJFhc{i$A3w8B23wb}Q92@_jdKUXbp_6*rmMklD*C;1GC zS@uqzCjfs^roTOBnHJQz?yFG@pvNU<#U7adL9}I5BOk;&cz(r@U@OW6<MG!XdG7;q zvVFYezg*))sDNUpP&uLkZEq~TW;F^Wz!gn5sE8jSFh_aG1Nq4xi`DRn{VIvs<T>R` zg8K7+j>{#z%mN|zA(`uC8_rSM8#_t^$Ot>iSO6!NK!50g4QUmK7|G<jI(B;^D_(4J z5wtdI6mqd~)+Jhylb#K<>(GQAwx=rI`qnkC!^RQUW9&j1SA0+b$9t8mke3hOFcd*q zSfox#|LtJHAg;8R{Fd&8RXcL6o0DSrrwcZMRzbc~j)ip*;lfdsf0d7;ufh^=Ciwve zE45|pbiV2A>?I?>nHAPYv?W30iBwa!(Bfv9laYg+Q->TwZN<URE`ll(D@%G1<EY47 zjU2Q*WoYzZOieNpp|Y?l<hD^@Ri&}W6J?>7hJaYcTOV-9c>$*_{URm7Z^N1KNaPTL zu7&1@zSG>})<bLTdVYmMZticxkLZjprR-m$agNJU!Q~3eRPB+g5nAx;f~FgM(09<^ zn|pm$sC)*D_!=xs<PQ~*zoXY>DxaomtkkEW`N`9!slOv%p$LEcBiXhz5D#WC&l%#M zoVL6r=afI2DhriolAr9I{eVeksHYA!OJk>wUar4h&4Ebjskal(`5`H$bZ%32tBdEj zZhbR9_P2Jz<?T0Eiw7B4+*3s$GpcfB84tC4yuJR&J>i7fbX57j_y70q-Q=If7xI60 zEl{}spIyt;$;sZy`M>E;s`{kUG24H%5Nd=|15dG~9ddH<#}cJflQJXu(+r@=vXBfA z4Go&-`{yn}t4AU(zD*D>?|WBvp8R=gWTU7uNb9G)PljyY=etD}6cpan713iG1xkg| zD7{hKN_{ct)h;Sllr^c}OQJ)C@#9My4%OPb)OE51D8+55@2in#`6-Q6OMKZ(tlRXf zI{3t`ZF1yP$YzuzyR5-JrPgPv^2}gM`6<-+vC@T;lL<9ylI!}QDp#u`8^P^XDwk5J z^)`rps~A!YJ7sCMu<KVFw|-`0+K9@aI>qSYEY42PTixol>sBV)a~~D_GoQ=^Pn9_$ zI^M^3254Vxj)A6q&J3;HB99c9<labbR(=6yb%_vVTsXVVl20$b{CTtHrbR*=!<6RH zTZoO<^UNXmy1inpdmN_<R0giXP(0b>+{ab8JH4)7;i=iVd1G8+pY|>bkf<?00ozU` zD&mL<3tH5V0Y}@L&qferb{zr%n7UHLqfzEDa3e8RNVcPZfjJRO?7wFxRCgS&n8aCh ziEd}Y44@lFU=L*yG4_1=RKSup_p}j7SrC=hrjR8CJBd-o*u|HuQswRt0<@9?EkUdE ztf`G!4@q1Q<PcYeF)i8xAzPZE#E5FbG?F{>4vgYMt2$E}BRd-s{p+N%gU{5W>mySi z4RN`a(xQjm)4z13dMn%Mzx>({O&xv5#L(?B2Gq|nd;0KSYIhd1DN6`D4*9}i6NJOl zdQX<hRjGs}HJ=mvj(LT+1qtW!g7)MEA4cV;{zhJ7K#47eu}VW!6Cq!|s$71kOQC;C ziZts-Cw=!al+V;p5r}~w#qyYj-b$#V96@>xQdifxCxmcP=~+>sDd+ntvihN8k!}~Z zE2LTX$^-&o`eTt%Na7gHcnc7OsobTef5K5m#j=d^Crg`MjHM871_UVwBm_JoJ{$<j zF^6UPp>bJY4ZK%miW3fxV2N@ejS`9EO?3;zDDNU}55#&+xI~$?jaozSHy}|LO$uJi zqo>fiG^EDK-HH(@F7F10t;_K(SGq>Ah54QU0U7Y{Yq$Io>`y4$ct%9t$;qCWZu06G zW1fe&5*^3X?ZHNYF?lCX7LR19`gyj)NW>imoQ8PW5(O0&4Iu*O)DIEKiF(F>Rh28i zuioLmJ{s{%z$0+8{HagvV&W1Vy*aP@6APQw6&N})6TIUUJCswx^5plLLc0fQv;#7F zR5wSRy*9^&PH<@JGUWIFF1+1hq7g*EuSRFdssm<U7@^pmByj6rc=B7eY?@N}WBw>9 z?D8vq@Rvg!cq5Zcqm8<>cOM?ttXFuKMk;K=1{08jcHB(D`8WM4ES((x%$yUZCF9!V zyt`PIe4en5P@_5$`Dx+c8%txlX&Q267^LF?>J1=?w3Xp|H7C8Hqr3&K_+`#~<Y}8( z7~4z-cyZT*=bk$UT~Wc|>-k&#?ucP!^x+24#i5)E1`p$}9u%<i8O-I+ixc3k_44)b zn7DMjpC8%ztUlJr5&i`LO7eYIvGS>zllnb_Fs8EfrOpB8$e?79(Py`FXB6;9K-zn9 z+w$4+`ORQ)M>~XVbMM4o^uFNgJdySy9l0y_?Dvu{z}x`?>jeD{S;x17^`GjGxs3L2 z42+LH(A4>QxF5`nVgrVG2A^k7$Ij`_+tWFML^llkv#c^|>+nmTcAplS_sbCZB5PhT zB4=uf45Z9D3y<_o&;0}b-}e-zh;kF@KlT#De+YP@|0jRR)WgNp&e_u5?!S}TtEFwf zEr#}=#VVuJP(#Y3Y_eF(EzvdG7EM%}MY21<5Q5l=WH#%l0%xfS?fdwh+uY0p*_55u z4S1yJ%<0aZDym3kyQ<E`&iGZMa>z<qhKxV;OwfEP%Bp&#-B7orv&D_hs+vg=GZ5Ia zQeA4Nr_1wGspZ|BtlD{JEwrJk>OE-gmKs}JktOqDcQ55Xa~cn>iROioF?lldqhodL zF!6%|Rpz<4A=HmyO*L^cO089{xwJuyh?N_+rirs*>_Y0s<!l>JL2i%wfS!hE$=!7n zo1nsUeLn_!gArjLGx%%46la4(*ia4vB@;N~ree*DSjEsv_N~rAn+N<;bd&?bSXHV1 z5zPf-DG&j{_W4!foMuDr^(!LCJxa2CQ7RfxwwSeX5tudMg?Ek^vsfx7fL3LdQmKNe z<<zxH^^$kQobHGq;c}H(W~DfTmHFcdQ2O54+KeOwDy|t8V2`PfKMFS~G<C$MvApGx z!4(g(_NPD)2u(c;Qo@93r{emS9q^>Gu1S}QWh%a880lms`IFLY0G5GFW*}@65%5`D zLFL9s^5n>5U1R5{$N~P%8GdUm!P3eJ=Rh)RR%?PPC~ysRo5}(*4bl)j*P8?ZPaui7 zSrTHDP~{9JGjy<xNf)bkYn^0RLL$mYt<GswAr8q0kWkYQ(!ztk^-QmLezg>iEG#ah zrKoO5^-Js;BsR-X!XA2Cl4und4~JeT1<8#OA<bHJtUj{MyGYtL*mKLm0|$7crJnf+ z$_V8fQ*Syp#L<_Q1uDCO9!i-PVBH#*I-Eje^J-cit~tLTOM;!5fjK7eb9!y%GztRx z(ORP0y1;CqA<-nRWdN~S3RQZl*|uTOBwB{<l7Xen>OcmbMu|&>xj(1fHs&KaAL^H4 zjcg~fGBoq1o_1?`DM)TJ*i06NQRlUey7<RScp3#XId77e-5C&}H67p2*WbMn*7ar& zU<3GI$nn;lYSlUyC_HZ805StkfgKZZp;NU^iPUV_!ap@l;0vD`B5w!+KpC)1_AQt% zCoWa#kCkL6cRq6|*|-3RVv|fe%r@v*?GQSIYY~Rmq?;%k_7rUdi?X#Yh3Q-w>0uHX z?=?<zc&7U8`+uK<C{}J#1^x4q!2o`gDIlReGDptUm_a<)4Ia+0&=acFsOC88F}G26 z6tZ*|Gogy@1C!B@pfHH6D6K##ZvO(V%gQ2vpsQT8h*LcE%C6eAjula5yj%|db6M~G zei)Bb&RQZ^)b$TyHKi~wV8gv3xNcr>kN*-Zb^-Ln3Cv%%pknS5bgdF2iB}=&kRRSu zrJO#>Z-)m9ccYBDIMP$?e)x8Of`G|Gjzec)6v<$N3dJ-s3(XyzidlgOz?aoP54Hc~ zHvk{#+96n66zmeYnb(eQcFISm$<$tet82}|>QqEBZ%~~s)%<~S<&mVqdyPZSB;O8B zu{AmX{IE^NNC*4DbUr!0L!rurYGkoBo#iwa_jFusg*^mHo7R5UxCpX`CCaE;?wC(z z-yuc%rqEB(#+8%FImyA2?Tg9kF4Ua}$cx#iu4h8~53dqeWpj40S$2p4_=~?CH!7Oh zk0Li{;o}$84U6g|YN~^@UDd{U=Q>4_$hVx<>o2>Kyvz0qBQ(&_C#_<{anjO4kWi+I z*XF2}XIxIDqWtqmpeiIxe1oZG!afZuMWn3Skb<4@wwh|2`9FM}V{@kAwyodTwr$(C zZN0H=cF=Lh?AW$#+a24slit1S)cLSZ)jGf6sr$K6bIuxLTvjvEOLXBtS3$8e(BYFF z^;f>ar3z2npvLx1J3iQiV`&?$(h~P&+3>`f1wv1{Bq0O6S2FcVnjc7nU5wL+MTlQG zLtk?=jBVb;QOZIb=dKX^?OT!<6=s>#=)YzXYmtv)FCb;Pbn#noSxPx5rH}>5F?xeh z;|je<NDZvW|E85XrJ@ssP+y8TrdkLQD(Ry2!xRK|;?kzvjcfceOv2XX5*@#OZ`IBv zMdW5{){=NG+U!P9sXEhBXxo6MP8%+focGr4Y)Q*tQzNLvM#P)GJ2{ej51cPpjvTJV z)eVkiOV`nLFCe+-Kx5GLM}8?9>$cTz?8`+<of27?NXHjY1fv(1nazA8=+iy#Vr+jq zZ?tXQghs(^cOg)|@VjQLOL}Va>bKvXmvFCm>PJhvU4ZBgqHSX<35UC*<7t@Ery(+l zugooP1#i{RQG3r!il;}B%LnH6TMIxl=B2%ydkJR_-zD=hHF+cAOu*FZCu%UJEou_e z8nxnt;01fkN*s8PE^bV)=d)IBou~W?>2|ndTRo@zJI_#NQzxj&1t0r}`gCf@MIS?G zCHgY%z~zR(iDxN@g2*==FLHwsas=!SIl^MPMk+drgI;bBMX!kd7{G@`L7$<rjMmhd z;b~g#Im_zsKnh#p8AeUP{hHFV)sQLcEv6Y{?<hFXQYa_s_LXWR3A2WhV8%ftcL)R_ zI?eHNLU$_ix1zJ*`|uYJh0Pb!N}@{_gah?mA#lA(bj#H3Me*4npPSpcelnKnWdOTt z_53>cDxtw)S0Tgl5fE8$M3IbrIX^7gfyff5(eTx*oDV5<_hL27iPOKq8XnJ+7WB>6 za-lSJKV7S|*GS1)(kV>y8J1+N5|pfIlHoZcKUK-@v`cUDb{0n?`JjlId_iJ=qqWZJ z<=BI}3)sTpN9Ynnhjh&;RgHBqtuXi_GoPSvgT!{%{915hnqMJ3WMBS#wB+yEbCxqM za)ab)>5$LY9`)DU4WzfUV+t&g>4ov~5;D9{Dd*9n=`xOKs5oZG{B^w(Z)Au?Kpte= zw{_A&oTC9prXEdDIcf!YWLYbXv!`iMP8{#>eKLBqwl>gwJ!BSEo6#H4uD?GX1D`he zwm2G4X|9N3{s<I`X~1NaGV6pDq#OcANKa#QSDWWRKzOXe3I6_t#;*O{2gX`+PhG>y z$fu@;Vp4_IzGz>Qy)IKFpsS8*+YR%u*-g(7TIMSOJUPS#Y|+yb)d^ue=35uF(-Tpd zI?=U}s1fZ33=QyIjh2QCK5}I>S{c!eEhzV&Os0E6v!_(LOotFXGutik;f*sWJWg)p z8mshneSI&sqTnJ{azS9p*DR1!)NfhVVAu&iiilwAs3|#4MU}K5vlthpA**|cv@8en z$>ELEE=hVJi~1d19@(Od*0+64P@swq(|Kykz7U%&`aRwK`^EPp$BB{_)&7uCd=QYT zn>hpIu9;oemz$=hp|37GdXy*ntWR6ZoBceGn3H=2uKN}IEji2O-Dpv+*@DUGui7gW zM8<8Uis?z|^w~X1AM-(==(8vEO4pd=TIMU=Y>$qiA1{NM28+Ku)v*-3FGrMt6fhfO z`1UFZN2ib|Gb=Iv*?GkN7X_M0ETE3PZD=z4gtbNwu8*X;SpZ{09$g8oG-~y%E9HFj z2=0og0RvCLS9}D+Skv!u_}R77k2!t3_{Xd%nNp+=(a+n~)hC=wR&-lCMaQMNaWkK8 z$!nV3%F%+vxFxQ3%5gVJVnlc)LteGd(7Yy&m$k}lo#ttm4XY~+p1|YP0_oC?pfoth zBH^^JEU5*R$M2ghxXJ<IO<Ep+=PDuCS`dcb%@@D1)=A3tN%t`-It1<|0CN}LyTWOX z80oV{oo!)%yC?U1Q?6`?2Haw4147b{L&Wb~adywZ-+n>>1A8)9l;I(#uJchvW&c=V zwSDl}$Jx`SfSm(7cyUH@4MK_W7YcG`D2+gF#+@2@Ts8rh@4My2ldh1ey_qR4^{Cx! z;2HByPY++W%iIzPPvlNOy_c)ckiyqjBv*8&S{HJn6oRp0VR|^G^SRKo@5|fkso)kf z*>-zxrxhpT5M2G%)v<Avlky{J@-}oQR#J^$Ckhg0371Ab!`lUpva(0b*!~`Ia?9pq zOJ?RRX|M%K6srU_K~4}DPO?<EA3jDm!*dgVwR=j^Qr9C2QSD9~_!yvmLm8s3Ds>0s zCDYZZoUt%(G|<EixW+D9;QRqT<s^vmr<TXEs%$LwbxTpaRs}^Kdx<)*Po{Pmu8Q06 z*zUg38T3?u)YKgs?eNC_QHrI1hJefS`)jk>^19fI4AYa0JWKj%5pDgvr8Kv)Iy0jE z(8#S#%cs0*eybHGWF)oYeNyML^lQ%&*W?@AR>AkP-Ov9o{oDaj!*y<MAm2*bU&2>L z0NP_>!6^<r8OaC!!pYocQiqF10AYcM&|mu4+lIq9;F<2?18;fm+<4&m30q-qR(;P% z|F;g#lWN*wm08Tk*xR80c&zf-o0&vtKD^MFuAITYY+gq62@0Hmn8o+o{1??Kq_KKX z?Rx8s_Wq)XU@+)E%Q(n-znzU~uTobRmea1MH$@hs1qlKg&5VYRHL`kmrJz;zBAkV= zp}iF%ZaiMGgbK}+u3hIxb5v|gdCH=nPspanjFcyZr-Q)wtI+-JaqCRYkM+ia)tC0o z_^lo2-SxW8!$}$9$A5tQXGawsY1Lne0RXs5000#KwWG2yb};oevNZqa9sS>knr?pE zqz%r*ofECTd&Pt%iRIPp>S>zFBEL0-{mSU1DF3vj>6r>@)Wmoam{4LV&FA}_+Ri&- zVO6#RyK{AC3vob<WN+tu)|#Cr^s+}a^|DFk@|$({K{bC97M2kE+Fl=CDn~;l+{!hN zn!P5LjvBK-xJJXNETWjsBw|b#8iW?RGu@;rp+tA*Sd?g!=!(vG3%_k=SmhCf>1_J? zWQjQ-E~R0c1pw8EehGOC9{xpc*KmTM&{Ftu8QUnpgcK+Xw!54~Gw#==!`RsXgj&1r zz|hgj0RT+B!7^P_`<>jWc|O<6?Vza6D`;&M`zfQq3>o@%+!(T?9E{gU)S|G;%YJWu z4m~`ZaAq3lN1O+SD^m@HAZIj&ZH$J+Z%ArZQL#GWu2EYY^LMs+P4t}I3(yTSNL|tr zkK;xF^q!(!)^2%}HTy(|?^S8@63qgME6pbZuEi%okngA~ce8}0pSQ}lCNuuA5vO;w zGg!Y#PQpE61Fg43*b9aiHB_4~D_j3U0GzmhSm6)&3F282)<5YG%~M^o@T&_UOz%Db z13!AaUkLDb5z94%WB|x9(Xz=p|FZV<M8V%OuUG+*5oALDG6FZ3c#P;Vv8dsMo1Q?( zZH6;WdF6h1XMfKse7-Gw`lNj8`8?1^ZmI*I+1@~T=wu1G=7kuSiAX)h`GGJCZ*psW zL;BY?cW}2+(>6Vmy26>}#bZlTvVB>1Tfx(T6<r1b?FZA4rvjaUYqlBO>n_i6uc{Q4 zRIh)9rhq4_8$N`)A`x9&zraBY^BP;mZ8Qo3Av*wM6gwbawD_!-;=0WybY6u3)vi!B zlHB-%peb4ym%LDpv$OXg51srb#)`|-#Tgc6@7OGeL&kel@ofJ{+9wQ{+eCEe!!N-Q zWNYKNB&&65Voq>NBsfLl=sK1S5BD1T5Gy60%(y0apMHTAko>tM%oa0m%|?U;**hDx z`vGC#FE@0cCRutME2PJ~<V4~ip$E&glr#c)Oh{F}WN>n1wHT>_%)T;ne2eMX<^Vcb zj1|1sw1vg=6i9+@XAB8QaTQOFNc~vVFXgHho$|J$3y3e(TL!&a35NA2Ud^t}nQ4|4 zd&nl;?i3ECR0pE!eILj|oCwb>PX(}hogCCWHJE3(dIvt{cGxLM`a8hsXw`&bhIB3V z*uAC)Lg(a!;s*?0nstiq1;UB0<R;hQt?omXK_QG_V6#+~11eG&V0&3$qP338Z#Kg~ z3uFR_9VEL=*#^~tI>4YSK}fz7(y=>S3PR}7uS9^4Hw;e?>;@Y+{HPkgPvvrD_Mz8( z&l8Slcn41`;6^@0h)RnSBWbTF)Fca9K^?0^Y+#&geO4BAktcz8C5AGN`(u6<A&h^! zs~*97byT@MFfH7!{b~YIGW6GHuRm%k5FqOhXpARFMoL-UEgKsFxx;fq8DTjyHd3@I z)CSxGLHbv^WjXf8*-e^Ah@WSTwwUVze)=#OBKG+#MmEd=_Q|>7&w%3Bg*3u*(GIy* z!%gb%$zN>ivN#MnP2(A-TAD#Lw~?78%)fMlRi)_Wy-I1O5NGqD&H#e2D}+@DjICK< zGX3$#t!3sjwt0ILrZ7Y7nB!n%NKoa(`ltTj>kA~yFmX<UD581OeegpCQlKyB99eMs zn5;az<;Ua^yGT7a)a0<-r&8hbxZ)1sv03VJyCRjHSp$+QK|6FLjFG!`$TLBB*2PdK z@f=YfBTNzpTv8NMPY+|3Kg_1M3!uSoSx}2yIA+^bk$VBE=!>xMCUJe=L90COVyFf? zKSMNsmyTHN$t^?*>oy|?F6tD<%Ku8Z(+xSoy*uPs_4AeQOXfm>-PBCpz0&sV8+@*L zS7Y{8EZFGdoRqvg?E)Xds^wnnG16wshWCr5?1X|VRR7)sh)ukDU|AkDK(>Mpu{fZR z)^g^q*u+4i)W2x;^z56>ip0<lkU}X~?QfIiJ>&F)H}H=LzV6mMrCn5J;#q?GPW2tt z_yf@hpWthfEI87+&5NCsq?@O5ELs~0ld`;bIm53B;7e}8ARqIq#opO}1Fk+Qr?uTq zU%95-_kn}~7Lc?~KlGxy3_w4cMPI&oI@IT<hHfu{oClO<B@y%GBceg-ee9;<vyPfL zwb!>s-`C#8b?LhpO2JK$&IWlXy&uEtE`1R#kk~8FxEoBZBxU?)$jAr(5StzA_^`cD zuXlTNn#qwmc3K7X=bGkiUz60lP=T;Dcu1b-4|e5FI8iDW*hRoXD?qG_2jvY~&svAv zi6l0fArnt^tK0nG6^_{C0|vrd!xbr{%U43p^f)=~6T9Cp*=OH)2iUR>fDWzB_5E%j z<2H$dJ+;UEbuAHNtu|xIg{BqmArqI-FHJ4Eq=vQIMu$O_-(?DvBg9oZ57$Uh{6smA z%JrhOVSXt9rbW5A{>xyDyW_h;Fay~zno5+xj>jaEfe)REyIV5z;;cIV{E;ia*a`f* z4wK-Eb^_P+bFYetKmWWdBpF#_K>qS+d$(j+DBkjlQu5xqZXx_378yMIkxiWC7Z^d! z-hp*dxc3du<<`1N^2P}h&Kb-KTn1VR8Wf8nW!Q0C&MXN$BwfVo<~`anIJMjSS?rTQ zUC5rp4FpxeAE`MW{sF(_aU^OX*v3JqoZ&T&dk=igpUHn`qI37sW8$+-Ac_V9s1<mE zV>cUPSV1=9Jvep$k`|siyWUsw;~{1pVhfuj6vn3ygBo>Lp_3kY{MdvG+&g$l*t;97 zf1s`@bT$CP9vUUWxHE<xvb}g(vl%vwsYW0LlEM+FJ~IB`UN&~afWLF;nkOQvpYMX= zuHWOP9++KpM$bP8UpaPYr{`W?N-0Au@gNjscKAguty~`!h3d^G$gH#fS5jf|`Hzln z?`NG^8bXS^0x;FfyLJ2S>#T3l&{l1M>o0lHq1bl9=&65ozR?D`wz;U!LDJ8!(C$wG z{|KTjZcEiC2oi(B#GyNa)uLI=%Of4j;J%smxPF-fZA;BQ#Hho&_<B!2GH$nk3OG=Z zQ=IXQX!5r|k-JvACtj)0i*!w21S#Xl-uw_z5Fox0&^aS&pZ;P;-k-cV$MmrX7cz*F z;=`qX&Z6=D&2ECpl+VmM++N?Hg{rtn_Dw5L3B~hL-ro4jpx5KdVUcmQ<b=)G$*REH zTzkEe3A_&QnO6!&nk|}=3(t|G-yB##<ad&%;?>za4HAEq7Z{Ka?N!o@wgOH}(pf|l zTQyIav5rhLI$Bo#B#qQ`|27QFjr*6S>nuuydTUtkX<HgBPo}@V)LvQC&i5~(s&7^} z?1~EAhhagtBhXdo`<0AZ7Q|Zx(&Y27p4EececrL<+GPQQ%f2AykG#A)Iz2Tf8<d>~ zv6*>G2nCq-H${o%p#<I<D~cgVs0(*;)d%?b`~W*9x&Jp+WgL3l4ynFkou4<VJEJXx zQ{U<7)OXiU1z9b4D2|#QSPA<8B5D&b98g!HJF9+to`=@^F>cHV*BXQ=$>7_oHU?6} zNig(Z_&k!o!KASdISqS|`laaxVL_I$ZV`)^(1iIv+&xCaS*cilQlQMNLK2@r>-r4% z9?lc2WYc*=i4XJPt?DM5>=xt}v}(gcAcj`;)*7noWZpDeea8lP>g$N4<~n!RBgo2b zgA$O)m3P{R^`;NNAlL9u6XJyZq_DN5K6Tcn&QKp?n{oNa3W=)*OY^l*Gjvku&3LEJ z?q@PE#x+&FwkVYsQI8(0!;F%_*kX8vaL_`+LWe4Y@cm;V%H9^<sx=gyqYtDb(??kY zA`B9sBQFym7Vi$@Gd+qNEyE~oUS8K2(L0iM;9oYHAv_TxckDq7w;xMAGmw1zsi}C6 zHw@`ZN4_xDbaGQ5(m>%;WL94qX89?8#~Y3E_6CqIU}Ey`^3iw8P#y=}z>Mn22G4t; zI#-kH5NhtUQT30CrjDF-ABI;5&Dk%$5YTB1Xw@fF<m^0Sx}H|=${!KU9((a$s1>Ga zVKC$xM|6oX;q{l`0%fL$65T6Kz<A&}Wm;0tFti!b6r9~xUgdC%Zq9t~IrE9;M0}Hc z=q<YVD}rOHuYc>tKQ>H;$q<kzs#PcOby;thxmZSCdz?z2u?#opj7sGg@<wcSNBgzZ zZ<eM;hH<V}?D4WK(dFQ=?l&-GrVgK8I9BMjXLv#jNT%o}cMo&~s!=mYyX)qWB@tiY ztWj1O*GOW*8h5wBh<%(zY?*B#X3z55r7|J#o^i*_ee74IO=ixSZP+Xl196w>?Yr0| zWx-ye)VEO^B#o277ab#j#+g&%IeAFYe*LZz$eBOom~rbAP<WMdW;m{8*eT^2PvUs_ zua~&@_{y$#Ei($gqOibv0zaJWoCz@^xvHXp>X3r#MIDA5?2E&HWKBGxEJir~(nB(D zH@({w&l<r;JX%WXWY@>Gz(-#xLt^H*qo3|ZDl>Nf${LG-lDS4|<zNA_&csxE4lucT zqzGr=TeR4?kOFvqh)8LTaYjT`UsH(`hS$RigzqWmf8np<`nwm!XwM;X4tqIzcqJU0 za;q$TZF`AD#Vcr~Fr-@}NZau(=O?VT=E1cDXuQnb^3g(a87O3D%^U>Zd=n~^nCzIw zNfb}I2iRtuWQ*u4zi?(1;;Ndz4sA3Fy7+|(ojo;;KextNB02DO-k`3=`!w|`y<~9p zt#YKQDKNL4;7t9F0Q9mZbvq2S-8i{^g<(e<#}%D>@F99<ob@FM(3t-r<gMFnIl7%H zuK5#qCOSrgDrElGP?U76A3kvHl2%Y>e@jM(UWJ|W_HZb+Y*Jdes2GYCRtEIvjZHkw zuwp}WSxbJcEIb@P%)Q2`+&n;oc|{jAo20!g9$e#DMBTs~F4u+60n(Kjc&)3qv7Hg1 zezmPWTVy{Etq@Gp`+Hu*8X+d04oOHI13&G`i9-&mWx|5{1y8v9ndbv-c}Y7fK-vQ6 zPlDV^Jy=3ifTD;Dj~yIi{G3ehi)oDMgAU<jd_>6~9ystFa)k%85J^6&w}KlUEq~Q7 z%5T|;h&Gaka_NRljH=7QSv=(!q<pV=mg9kbQkSB}HE^cHc+rwTVF*9LyRo~hvHJDm zj)Z<Eg6MQKF^P1g7G<Mnfzb}Pr43M0^-;g)yM`0$V5lg^FQ08Erub_WI7P97w@uh@ z2m$z<#khLiKeurJ)8n4?mF|hUEc)zOc2p>l8MBs|`;#rDlFAERkntO@-zbhFngr^p zPZ-mpQzr7XLtK;t5jDsxO2)ZEfv~@bYsvp7igaA0y>Nb8&^h&CH*@oZ`I-hW2M88F zn5T0I{oJVb-jMnukiUK<=BG<%b2kYGt`U3Xi5FU_xl8IL65Ifu4+mN0d>DtYB7GdZ z6_{)RV*CKDFOm&n<&k=`S78`-#XM`FB=rRU<O>-Yw>F@}^`Ebe^k{%To+wwcUUS+E zaG>-x9c5Bq_TZ8aLfJ8O;~K4eyJFft!wcb0+O#<XwO>ix_n}k+FDF7dub<y(+?BfJ zaMM39{T))N`1|-t=*PaM`5tM8?j6;ajFYWp<M*dbt`#WibvqZ$RZLc9CrW2Ci)HfQ zIpg1c@_G)IzP|jqd96!bq-RD`e6P0h`PLFJy<XF%Uk(8W3XgAc#}`MHbG|CT22!+^ zksVWijm@MpuC}Img(c$fSJIHVt6@~%4KSSn&O=lL(&gWB^$;;LOV%B)Tm+aIIQbNW zC>vpqY)znPXKcf(#RaI%EcUKqqCdgrg;{4lXHKk6Jg^6ecJ$HA4H@UlenST23b!;> zGqeqz2drUiI{GdG%ZO9$%Qp#9$B0yTgi-!nn+#i|0RangDPB(>Y{N@Cq2~@aJ4ugi zp<w*PJQC1LEg>7-+KT#P;KBk)w^`nbgPi}eIXz(pL4rS@<y)9XDKF;rScN70_!&0Y z3!;BkFch6sond3M>un&99QkaR!P`6AfqT&JFPzvtzxaeXx{;iJ(<M?ms~bY49j8tg zk??W!DcGJ(C`n!34`tS;+o3)5U#x}ISg0ri*xk+gUcx;uUUqr|J`giKiOr+`NQENO z>m<%guBTIp6HattjtbysWv$m94|T%~{hj{Z5^!za;*`#?^^v*$W7hzW-1^M&-)3M} zzFY&=Fr%Fidaxqr)wEhbFZO5nf(fd~yMH7s)0287oCL!lz6bPn5t=<yW-bYEB6v+T zaNO*!PR&}KXxG5AFEW_JrgL)`|Ij&WjG;Pc<H@}vI^1xd737Tg{oW|F`ZB8PamMr3 zQ|XuzAfQT8zfT#p_V8CBmnxwJG{pN)yT{8d*s3+5>Ad+5F&dh-`!Q4y%iHt09QsJc zEJ<HSNafkzK}$rOHyIo>kcvegVq*4<=9?34gKAZ_52P?@&UTc&1rm(D9F84l!b=Ld z+nIIj-o=DsYTS<@9&~l$0*y{;mvw4Fo>_l`TbZ;WX3&|F&%wbFPgxsWpSxC;ve&SL zAc`0qyl|0K`ox?ry&jhZ40Gc5f{|P4CQ<52tE>)#Qk($M@2Lgg3tKcyhp%B1CcVHu zlge8=QVZwO`{OuDd)%C@=PEQ!^i*Cvex32WWC->x^_2miC$){tn@KQ(AI<662~8PZ zY5M+q@7a(*b`IquGKt?PuaxiY7|A#mxGotPWg@0Rc?>1~(p0!ZziR)fo0+Q-O$~Af z#(?p6EHtwdDBvOB4x)LR_~^J?MsSbRe&E-o-ES@8T-vT(2dnFYnJ=Dj`S(>cU711% zk%kJO3!5wP&28@)9OCpFV|)*WtgzYnuY!1-dHi78LZ$+;&!7)Dz;huYIwz%!hXNeh zjl6GR&-xzRr&yAd4Ro2}YJv!mlq;x$$E9|bCglb&t_`jy@B}5Znp=8b`&(Q|!9$ts za-&Slu(n#vK(Tkx-a&IieFR+OI--!X<Dc^z7j~xKtYBW_1l=*YGfw?>0&xD>{m`|a zGrh^ihI%j8@&o~oF=x(EMQ7E%1vx!oVG1t|^d&VfFk$VevvXgk9<n!4KkjbfmTcVp z(J+&G>wd(TIC0%@&fUm<WP?+Kx_MsjrvLd=FS-!MOU4ZPaWDE=@V5fceRJ_AN@2m8 zk<a<+mVnE@ct1Y(!a|j}wy%*y>5r|=gI;Z={L(*-+nE$(-P#V*HkXd>{ts6>kX;2t zZ2L?*s#|E%@G?+mdb8Lxl<4SM5v^Q|dz_W@emEy?*zz)ZSf4f2!lFeMzM!p`o$)Bs zPyw~pOFTa~K=odZR9%?ccg6(H>zAlG(8CgXb5p-NpC)(K0W;DR2lX)GFv3WGdQI;2 z1@`;vZsGuQ`15Xx`(P5ZG0v0~KTKM$a*_I6K5_5xaQ`phKc~HKg9r{u|2RBZ|2RDV zT|Z-CZD;;}K|I|$wvKr17+*C;{S(lVixaY{=w}1vNstPdw&*f}3JnN#2=F#x4Q+%7 zmNKyzSN}*nCx(d+@n(E9Ew<qE{9}`ou0|&=C5zVO*^b>cn<m9{?lNgf<4~WqUy4=h z9k=UCidDZbN>ns`42)pZ;KFxgVKNRelg`|Df1fItR$+}OXs+0aGwJBqR-xT}O+J3= zP5DdIK97_JrL<?rD|(&LX_PiQCL7?E{<QXA^vSnPz$jTWNTh7!&(y!qHtQa4e|?H6 zU)I46Ia|{=v$dYQr2mYP{qyIpeZ&5gB_OqAA+)N(;N@K?X}n0C&Uvjmv~s<2z4LeD zuzvE)>~MoYb#k}cJC^(RYvgO8*XQZ%kMUVb&>w-PMCo*&ym?`vb_p<!;$iJ;YW3^^ z44l;uCODEyE?{<{UMe@>Vq-4A&<rPK+(de$EVxQD86+HOOn$6Dds`0ERLp+i@@yCS z(>X-#i{eLBt5Hy*f28jOX2unJ|Er%mk#=?CzaSVq4S86=_#3Lbygm<k!;82irKh&p za}Mpz%B5qPtK=>XR`_};r_IQWtyME6bljIU7bsh!+U{;5y-pB>VSL?eRSoRq*F^Er z$+fe?AAw87DIQXgcP4Oo1wTPgO;|&`Co1X?&C4h1R$=G*t;Z|}1eEc%eLLY+_}g%% zDB&PV$1YhXJ4w!6^8-gVJmFj770d4YIA>5gr%FPtD^-_98l4gZoNkw(9B2t6>JoLi z9ledb1<!t-V-z^gOZOU<%_3h|tSSi_J_4~W%^c=e4nO#fAK$kPHrtaz672Q^e2XiR zwGI$mtPnW8h)wGb#4^F*8WgmZTfV04Rf%=4)qL^}JQVi+ZnvDn(Fa+DydUboMUAih zLnJG8&aJa_ZXWr1{to-zjVDLQ<Ze)_au#SOLTNY+R!t&h4p2h&Qc)~1I?JhQsVOhW zLI_D}aXGDtE)WgMJSt2OerH~DBNKBzzaWkyKe&ak9>a>!P+Y@vkL-$sZGM@vUCMlH zvX^~*d@FR4D&Ng&0Jg<&aK|uQT`#n7AZ*il+-sMMIk#zt%F!aArtDM<;K{B^AGqV! zi2WWYX`(#~)ySF@tB|rsS0~Pe6{~GwKGV0_!BAdHQKskW)DC^jws9N_<2SCXjG|m! zsa0{qj}lZiV64|~9}B4<+Z3G-*(XGyw;*Rr?eW{Lj_0XRc=Y+B+)f8EwkXLbRb^Ig zeWg9yYP$<Bj04*i(au^;7A8>;wW8|;Kd-(J0%h-li-By6t|Q9X0`y38NOAi{&p5*f zg6$6WJ}ak(wKJ-NCjs#gClqPY(7>q1{4CHjC5(}vhV)Sd>oe!lp%P1jRHcc)_OYNk z@chhz^I-2Pm(AN(DH+6#j>luYAC@Ohomz>^wjQtLyw{D4oelbx7dWq>ctI|TwOx<w z6E|ucQIlQzXdwz7gqj6Y%FhEOt|W7rd??Ri`kuVBlAVZ-_QB2OjYBNmG_myCGGE2t zWR8!%)455EXn-2t2G62*JvZhz!=N}>R5NXj48ry;FvOq?wUWg1ALTG{5|+dXMRHND zen9PY2Ns#PJ~{pfK}kT;;Q{(1JfrGP7gM^%bv{_UL1>xyh>NAn%Ht0!GS$Y|K%mp_ z2@=^0pgLu>^M#6{hnv9+mWUZLp`o~Yk5*4JN5N(*!gjD9?+=-I!MMB=;aXqpO^ovb z1}pR7NU-B;7tu=!(6kcZba1?2a-c^Ve+%m{@h3ES<~dljuAFea`WSHUiNDQjEEWfD z;zj0aG>$0ANmUCiPdE-M5hG>GAg#KEwwUs{Ps60S-x_SgfRsMIOUB|6yluxbb2<z! zQdM7^tFwm1Ayfax3|I*<4ktLu7#?}Eq7SyW-ysPjk7CGo3Q;)KDeeMlG9!j(n|j-| zrJTF>J&=lRdl^OYbE=7C=o90k4vP)pW?2w!oQ#BYEt811@xDvp9)onpu{Vy?f}QuU zB1?;;g4Cv2fhN?;{;{~*p;;ZFwZ9zUNajnJ9Y?U+=jHo;_@A1-_So&Iqu1vnk&%(< zl(Y&ZQpx0CouzNix^JZSSDHNBxJ)1^*=>9>mMCPX6su~XVN?Vx<^}jswr2M~8KUnM zNKT;dzRq9r_%rSkszS1IMWxgQ=jo$t2+%^>(r1a1y|#n-O*8VC;N?}TCX}$=i~0wY zAF`Gpvopg7EPSFkp(JTn%XSm+0zaXt@kBYneK)dvTqh7&v(dN(b{a_9e^v`bWyG{u zd3G`L+rK98->I#-?dJbg=WE&RiTM$)k+}|Surnr`wjY*LFYz`+mcrw^?0{@yCS0RQ zAV2!@&o^KR7p#z#OT@K6V%K5#dktNBZ|987r2V1ID9l=s6Q5m~>>;52SN^bR7(bsw z;HdL13`V{Bmc>Ui(}@XcqF>16qPBt|I&DneU{*4Y;L<zWVzPJHYc<8WbbAu5GbSvA zf-+}e2=X800=@f4ZI`oj1DIv6EcPaV_vWSa!L(p@4qAwU4Ds$=Xbey5kwC-;*>gQ! z4_>QO_<|Cu(y0@nQ>ZY8{1yb7^$+o(DI9gJKV_nYORP9i@|N;WVHfx)WWrIl^Q>3I zN&U{~=XI_TiAjz<Zx>10vf)2s+^!=+Ux7ERT*|W~jx3`L4xgMH^y<auYEBhAw&?X^ zCnW9vW}GUyA}QIw!-6AmC%T9T%K4s!yGQpm6}eV0y?(vpMO8RU%{%fH|DX-d5_}K% z67QmhHJ$X@epTHjF7I}Nxa;msxxcyAW%||a6UI%EPmGm78z`H6=Enf7OKT>4>5Jgb z><|{LN7F<-kGI`Llpav_mD4aUY0T5oKlMhWHvJ7AzRy>)k$eAHCJlNhY@+;&VuX|k zV)3ZdZOIk*B?I)uiU33*PH^R=y-HpCPk=Ovrn&e;Wk5N|h=>AfG?qVuK0acCB+1gU zkaX{Q5W;gQQ{QmazDpVTRkxN_`lXwAaXWB9n|f=}lo+~RBj24TpD4L+fM3%4?QzO_ zO^6y&(|j1DQXjFiG5wv@&eu)qTpiH3&XrR%-Nj0%2dOZ&pKv?|V-!)}#((cV-yTr# zECa9xg;ct(i~2&Z1HDlvB&zcD5za_|s%Dwm+h5Zx`KJsql5)tT+)vVxJ2#T_e)1aP zl#};kmmgM7)oUG5t8|585*CNVJ3lhNSDxMopBU@)KU!~cKAj{NerDb5jb!4^&HoKI z0of9MfiCaVFqK*XzidS%zli?{>bTL*7w>#Ra$4oU<y!BomG@JWp^s^+jI{-i_V;Cf zv=)(3&%1HfmrwEO=Q|>%*KGS6bVUf+vS4>YL3jE7`IoGJ9g)S*>&AhPaM^n;KH2+^ z8<KkiY(fL8u2q3tb;MGSrei}Vq>}BR7VT^7-tfK5$=~UOGlYJz#<XP<WSskSqNeOZ zM3^EoYWjn(@B-=d1amWdVQkz2h`H)!v|{C}KS?8bhunkXkY1Gq<w#lQATalrW~(dU z7%6A;inK>vlwl&QgBa$6=m!?H)8H6w4jO-JyxT2Z@N6kQ400EF#851FE|iUI>-c{f z_7{GWm;9|MZS_Ofc9(kp3-O;NEwjcukO>I@aOL>_p(X#fq_z7$e4S}r+qezR`_3N_ z7ZSuYrB9sQpy3-MXHSeWOl>VN_rh@GzK{&_oShAaiHQV%KQeIy#dV*rDgUr@1ji^K zhCdv`^Bml@C3jru>YR;>Y8C_=70$yg+nLj_+iC?1gzgam(=jmq@LFbLQs}Wq*=N}5 zFyZ8K8OX&)2;aEVt&ka}*=>(kh(n84=rl3|lIFem31bd@7RypO*8SB6{PmV>w=wDd zHdaQrSknsNGN?CN2n@fb>68_ew~975A~<S=JBgM{T0_09#`I!dC=Bb}ftNl6eClk$ zYCJ@ZAUW}nYc%4=NRp#6<xir7AUVAd)L-&Y$~4*aSSm~peJCtbqs!5=hLMKk)^Ut^ z_E72jHI_d^cOJ=dW?S?TEI?*huR09twTR)@p~lm&;LKN8HamD5KtuM)&U9*8iQ$3? zCVxrpKtO9=;ncV3jhmRm{9BHRYrk#)gN;W3;!iE#LhtrlXjDTD@Z7o%>)+Rbx-i7T zcvfPq6=IK=S%9wvWkC+3!BmOT<TAZg3&wcU#I;bgvEhtAE{pjsve85K*Up#-Wok|P z!mkDfuoB=wGIZOr%A&Nx;OTZ+Rvlg2zW5eGthR&l$8I*_dQlLW(`F1CYxK(nx`%e7 z8UkPC<r0XE4-PyVeebD~4RUd>zsAkCsOKVeJ#2yK#fR`zP!4(?3`3AlZIm||5Bs>v zX}rQg_@H2}|5PNUIOFNu)^#+4*#|OQ56=}RqR}45m^zA^vw@dln}(-^NV-J7bkTuo zi;_yhzi+P~`5iDspV~m*bo^|);p+l%4R^`qfczpb=PlwG6A<2u4K~MJCULo+57RI7 z93yfq2uXzF2bQ&lz20A!;aY59ROi*|3JSa;Tn7)bW_Buf6iK_56=1Ef(5DI%u`J@9 zNGuWFhay4zxMw{5aeHVy?D3YDMhY51as{C^5ZIPDV>p*8OT`$`KLeeq4bb!%ut6T9 zhd($C`RD3&?DycsfpmRn46*R<RJY!UxXKNIUew!@pk{G-MvrBCSQD<tkFj6{@_+o2 zf`0?6a;$FIZUb|o==rR>4WD<3BWzYYcJJj^p!kM^38O}@zHG@Z9s}ZN9xA+IK~k!V z8O1g3bb+@L5+Mf&?uA1gYf(Bd)WXo!?q$;2JJwsq>4mFJ`%aY5DtgX-D0dVI1j84_ z(j=TELHesazVVI!M&jSZ(LBk~f#a?BQ3|E=fSRtTH0<?Cuk3?>UkQ=T&wltwJYlAq z)-0~bjj}5P8CU@bV;daEgTlVtc5d0v??)r6rI6=WX<FU0uSpJ3BEz5AYa&>OqEL-x z!XDP77X|0C35WD3H(y$41T!HreEYyKQ3(iSYaHLP9$Z*u=knpmpQHrB2bNizAqS|5 zfLqsTLftSz{(GZdpCQVm@${|6e}-B!XXLZtM^5>m1p~>ICb3BDGr_j5a{*}9Zf%Qr zI5*kJYG{Zhq-_<+A79|Cpu<A%1mxyb)Ts#xlgm=kkCk{59qNAb1=w5_m5wM|Sc^)= zM#woNX&_nw*j}@RNGLkHF0B!Y>bgVto6=uxm9-ZZT6~ctTLQ*9Hyg4|1eduPk(-s_ zi81^|EZp^+6*NCrJYkeAFCj))Wr>~66IGIfO%vVm#)OHZ1D7;$02FDJsmohFh^1gf z>EvO|<BODNvozVQMT?>;kqqJJA)4~c-jo5T`U8~&JK<J=5P3yi;H0Sba1h1QCYvks zuwDTrO<S=XZQg;U1~fr5rB2v;KllM0nxt)g$ae_WrmO)ZNXn1<BW5wHE@C<}|6UAb zF#ifSEPobXSpoqCX@$bT#FM|{`7^7=;~}YFj}M$cP>A-U6#7U>fbLy&1Z!{O!MSTg zAHsM)OuYnbb6l7zow(}l`YKignl1Dgs!e;?X86R^g9!yJ{VyshMJn#puRS+%DVT?y z`cPBTXROq^p+j23$NEB59tQ#p(YO#?NOa;*S&q$Vhux+<r@}MLN=XHzB>0!01<zm! zCEk(VzB7v5rs0)>AeU&Bw^#{uo@TBf;Y{Ny@%*-fBhGy7HYF<b&i+xjqf`0-#o1k| z#3RW_hSZPcZGw^Fl$%!z^3kCmE)uD^SuXlS5N#qcP&6y{>%aPia*KbwNl`x)g>06n z8{T+&l@Rx8J1(RkN`JaqJ=X-_hWrrp{1RjLT{q~?aa3XX9mEnN6xtF#+-DC<R0Vut z{~Y|qSnT>Y;$5iNGDH#c{)@dQ6jsQ#`{(09Q|irmr=1-m_Q%H3q6$~%8fFmr4^7nq zH!6g!WeO;|Z)}9@$2mQY$CIb|PFs8-qKn*DkzqflvXX{}73dgc^z=elT79>q!ryQ= zhT(*R%4wqy5>x`-thV@?9;0m>%}@55s7qVz0_^K?d(UO-3wJPj_)%b_a`Xvk9_aCG z;ID!A{60^(szMH0%0Q8;5K-NE0ovr!=IXZC<y#ckANB7`-F5nbMM?%9M7o(Yn^5g- zT9NZ{OKcRW`~Gg{aia%XO(_3RB68EJ+C`llxmq9JUo>nlZ!$j!GL#8U@8TKzHsKLq zko&in?!Vd{UQ+s?8XI<%vr5z7%wpBcW{p;<*LJ)I)?!&dtCOnR)#ro(2aiqKFn-~A zP{J9qmwHwMD++5G`-v1UNrV{bGWYiT5tW(m`i|lx`Irov`a!rqgF7}3(M<U`MnrKg z?4VCBT;nG7;rou$<hAr`>u4n*dyOU3j0uzqj}5_gO7P>QZeQOjqjSv-IQhO1MCN(L zAIO+iAGDIT!*dz5P2AGkxG+;mJM(<EHSAN#9!h9Ep<<0u^8UoY=Cn$eia))6n>7+; zmdb&_A1RBOzIKF>js`{ZXmN9ku=3}`XF)(|jjwfCZ*@muf~<oH{(@K#eF4~%mvSwB z2dTB{H=j<qS?;bpy-+krY=AZ1w~|qd&&kw{;1PX=sn-|Z0>ba~oA^k4?05N02vrFl ztO&{E^sT>iqrpb9xV$lr1Rz=YM|p6YhNX`G6(jR<p8Agf(YV3yjB!CC5GaX%Us!p( zov_mD(%tW;AV!$}At5CwGzwOv(FIB7rX@rX3UFNxt7Cq&4L5+B_5tIiCM(TPv#Xgc zMoi~42Bp-`bE@6#qDR>47gO!MEN(yajgh3^DrB4ZIp8&uQ^4~(vpsu>iV$sfm8tg= zlpkG_@OXKrN%L}3K<jj)X}C2&;EI<GYIMo&?4$})IFtFP$fLo`g{2v(6l&Ial(8JY zVY0`x-%6yNET77Rm4ESWpmE<9*=5<O!Sj~yudciR4dPO_+ndfDo8;d@rhwxZo>gcz z?MF!;7WjGinqx4Z=G_YI;<oECZ=qzEb-1IXc>B461KR?q@dKxN&G`XD$6>ID+vb-S zegUI}gX67#w|tk~*b*C#82NYWG6KG`(=D9o#JotG)jQtlAv4z4?PWHYOgB}x;aW-D z>1#=2K{A~6K0dy;MBTBc^TzCv2Ndo%b1Pi-Ud!n51JtNdX81KqH`&g#(&^f!w`^BH zo!_ha*AL#w(_h{7H*ZTo$WdtWJTjlnk+Gm@7B&SMoO7F$w`<1tzcic%Aks@_KP7u) zNx6p>mhW2;tAWp9Jp!pw9aqA^tC4jF%N+IzA+i+}YZ?tbD{6;*n7gOW8kL0~QDvdV zGc2Yes;nFQKYR08=h`Wdm+<3*nYm*J{n1i3reG!)q&B2uoZ87K9;O{Zlz?DYLFqZG zm0@{@^Q*6cMQbf=yW7SbPjEY&4eZv_pnTQ0;-!_*C7gz@sBTR*8!<gyZ2(_TSQ4b* zaY+Uy@*<r5i`w4rj~&V!WFl<KM$phXPX~=ZjUk#DbDh0udc-MzmRL;7LWwj@Q!VV? zL3ygp=UmM@6Rc8Dv6)CjhDWvO{QacZZsgM=*DSiJg;<)Yhkr6WQ!wyKu%Hc$VS-ZD z#)cQ>ua^oWiOj&ydq?^0ay4Xc@8tE-nZpFZ?i>SgffmK9$KT;qnZ&`^mKRuSt{mtP zAj5ZnY@BjGUvCU39&R4BIC{QEBl*3M!fPV4z!Hx~+7=5vb)VH!bUn_%qTgT*IYdpx z2<xj3&whb&h&z7%L?)K`XI1PKzG{Oe3MBx^c=^Q5BrK6kd7}P4%ra3rDij{Y*^oSm zmvBv}r4M0RF8U|d{uBF%eT?VBc0s*cuQGM7qimvM1-}AZi*uIn4^z1`F^g)ZC@Sh- zONe;Jrp5fWc-p&&gN6&WTi%fr1G4JN-W0V8A-T2CBqXJ}`IT)0u~4^c3UO-|QfP9q z=-54yf$E3#`t(2HBx+W3UKeo_5tyw9#CZ_VcjAk{daa^b#_%;aO;a;0bRFn4jO@`a zMKN`%2B|f$QBkO-EY<JTAUuRvAU1=5$DmP!L6YWulmeTRRPEM}&1E@XuQw-Ffqct> zW_fk6&R}ouChtCY_O!%<jpbj(?ZjgYv>n*1nVMotVArisM;rzkq_~|;d=zXh<Z-rf zT#(919ME8AFy8ovPS6Io2!`n#)z|Ik)~;J!mI5yF5yKYRV!yL>&h_G$6viVGRP3r^ zcQX-EO%684KMO8KJ#T_LN7-7?V5sXCjY;H++ON&IGBR60HKX&`1;n%miBUFo8k_iZ zekycJCk0O%`{KH*=FdYp{`FNdqKN<I$shw8%&N{TrIlH9Bnr5@Hb^DSxeRzlEQ}vc zhO#9Ux(=_#+sRnpHnh(2@cQwOgx6hpmi>Z<@(Rs-w<Z9~0#2D5$HaANG3djc^*o;) z+MXOLI(p#50=1M8Orq=?8_gmq?^Kh7g5%t73z_P&0kBE?iG>R_54h94_gO3uNuzs2 z4a-Jyv9F|5ZlK^LApe%C2`1a>;8v5p*Z%eIM$_Kn9T0H;Zq!jsT4XMvY9wc)f;nD! zbUl1^b)UR5IUDPrvy{?>Bc`eniU*GwHIp@JtdoKPsoRMx*^3rIha+C+lkp)Px0pv{ zULQ?^w{VbVL_jKcpDT@cdJxk^@_g9YQSG;g*H@*>&mGuDfI=Q$7FmKOU1ON1k7XZs z_I?tIom-TOF9aV}fstMD+}T=uc{~*S9==V{eYpQ+ocT%#uVCgGq&jam4F^|&IKu`F zvkGf1hSK~L-j%r*((`F*CUJ;=@;0&lB7;<<{4VsL-F7WM_`hxk0BC{&0Pz2-UBJ%K z@}El}Tf^RVgBkg|#>lxXd1UY>!v^q|d3?Pa{DiJ(r#}ujh2W@3g9bT|&iB`~*~xIM z*dRE|#8%;np_^w^ffcAC#w@N#CI))jlzF*6$c!UL2{Bt7CSeH@^E)%Hqzd^E2LCa% z9K%1(Jwvcdx0Ms5AEN*@lAPKZdXw1`Xym|tW2zi)gNh)O40wZlvBIA5g{xWv8=XcC zahoRatXQiAA65j^RG_UIZU5qNa*+#r5by45^h&^9a{rIna|oy7up4J*?)-IjTQ<Mq zwbhFuw2H64r6v)?oGeSon|{i~><L&nuiThvG$R);0h@;Yfmgjx+aJ`O047BJLyy5i z=NR6gfojxvkE7UhbxqrR_T(&7NRn7^?g;QzJJ9|w@ZcLMDQ}%}`~jtMx-4DW%iZJk z{t?^>Oe5pGo*-M<a)O^i&h(1*KL|ZZZSY9&eYY_03j(P<z73(oU(}~(RJyUH$0}N> z;Y^C)2zYY~ni=42!kKbeQyh)EwsQE`H?@xvT%S7+=~c*`H}-cZ1bw||mluk-83xlH z{3g60wAJ;O>f$GbVr}Rg&vE0G08gqF^Evq97DxAlH(l#8Gbf#4yTEXH;&a`Yed8zw z<<DLnE8y=MeZdGMjBTUcT3!r7S~~VY89e+lReg271}yCi$TL$Fa|=eY@{P(kQ!;yR z94UiEfBd}xCNgW?f;fsK!}CdPQK@E~A;02jQJWRD`MLDM%E}k143aN#=>RE0vtYD! zl{#ssL|zxn$c}}LC}K2{^jONVF*U@M{M?&SCANxl={NsdjJ1cyh1({9sjXkXG}!;L z+QQzR`UwP`C-~W&G3V&)ROX}g+X%B`4)X7Gwn}y~E52O;x7sAh91wCxZr@)OV-KKb zCFk-HcUc6KPx|ze7?@*@=6Re>gS9{ZpU8m+j$e#XBmh9Y8vsE0Ur)TftA{C%siVEq zzd4i3zq7wA@V^k}#GN;~x+QO(rm_Tj-|k3!iel+|T`U3p5_(G|&42l>%2`(2gW2Ka z4xE3#I`HB^nDfY~dbW5qDJbu(*l}Y5@<H4?x43C4J7gDFv(j3V9I4*?5{kM`-JTz+ zq7tjjs0O3I{B`(&DkF(+q(`oZ%NmK6^tlZ-BRcGim82Q!@>~{4?6i|J>`Z0-GORTB ztht((q%;@Q=7SZnNm=%e_Wo!dyeD&JIiv0qI;yNgV103We+*QoSBH@|z97Qlj$Rx^ zpI^Ex(1firgsmrP3&#^vo=g(3Fk&)FS%A)y(WtldC@QBJW>Yzh87`}59-Y}UxF71| z8pCXyh7B)W)Tx11IVH+0(Ue^LBlk#e*t?%&d!8cP*|YcF>J6U!!;xA%(XN>FEKtG_ z9~4A`yMREH3K@@S#MkPq0OjeZuAUr}7}x-WHjGI@_7UqoE5L=x=?sDMYA(hcXV6>k z!FX0$HX=Rzqp^2+Ps)>*$|0H|CxzTs^KSM`)7S|l53t2sg>{Yi6fkfpyiB<LFiygW zy?S)BSO#h{8^b#eB028N+7e*Sb#J*dEK(aTItc8s&52ns<DbA9^DbW0aF>3t#iIT; z(lC0kX^Q8z&Df&And@16>#Lo`<o}3dLb_S2p+|H_Ss}7`!Vh3?ZV+BJ5VxMb(xol% z$#PSZdc1bq{&IVLAxVY}p5&#+_s1s;z(&*^{vZ<a<K`DAJ@>e}Tl?O=J2i9syET87 zU;1#j?c~Lc@6XN0C-v^B_%aj6h$xjCt7y~<N*^d8DnZoJIq5U^cH|Maiga;2@BjNV zsqtp*`Qe1Am2W)xH?oISA4l`}%b!2aLQ<DU&m-LB+D+O;<3Gtq15<c959kkqrx*Eq zgRW>k4m{EiCHf~N7@vQw<J;+rubFWInePd1FzW2j=?5_rE<fHeVx9tYrj>=wFVzye z10+(g2Iu2^2gTAY=Lv$DJECE~-_!zL-j^q@7Wt2Jo73OvEr?srPAv8IqOH?}``E*w zgamNp$zJlb-f)y7A39Y7c?I}?ux26S_A(Uk^iD=+I)s-}?C1y-3o*wC1;5L>iR4|? zdp7~O{AkR|+L1y8s~j}2a5{&pRZ02A9OumjurS;~u)8<L?bVZ2GQtkZ&O-yG41?~C zx$W9X%%R|$#4$icGswtNvLHTv`g~q?x(Fp6UY{xnna!n`*GNI>orUqhoe-KVG}HkF zL;9;sm!8{1H`#GBvyxaJSiVF~8{e{z@f&90kY@;PYhl<(6T@jDC#{O5VigHN;>dE) z8Bpq@qG$3$CA%tBR>BKYOGriKb*59L;?g$Q@(V72hjO4J;P(e8XMi$ZEEzGF6+<GY z0)|MCj_?lhD0<!mAQKMgU&&zCk!}X^OL$@lGL)!2`Hq6UeW6(*830Nxsd5exk(VAa zl3N#eHp_Fl!992MWl{5!#EoHCA0qKtKZuhE9F%4bwz&rrf0adiy}U))s!%B8cX32S zIdrfE_E!21nI0>}qCIsYpwxTB{f!0CZC94iH_PyK;SfgeX}Girxio+z#04r)?g1La zDlO)lO(>2mWSVyrqv3-e>~^e!zsW5(v*NiHZ9y`889Q8Yis7uOl-5~E^>zVsfkl<{ z{El)1gKaG3xh|)c8dMi_4*DbsscBTaG(o^b$*gRJc$W(V*|g~We&)~yl=330W7pZV z?;^;>SKnd$1`P*2eN~b!g13vmqmV_ExtsUnrvbCu=uKoDu1MHeyS%ZiSp_oEfD2qw z*uX<JLee3WM7@Cn0>vXMDxd=&I+Q`*oB8r6Y?MXsAnp6j#_yxfbL#LT@E>72xE=n; z-N)$!A5;^6fD%xIgBPc#@=!F*%w1$ilcu}-S8FJe&Y6Y3zyU!RM@83vNy?<E7pf@V zyYVVJB#4mFLtP*)=S}|)U+)xLOQ3LD$F^<T-m#tR*tTukwr$(CZQFKs{+#o_-0xQ1 z@1b8;b*<{^>h3w`7-dTKnh8Mb%O@kupaV9kCv^-!l6fO$Xk{SjvdKu$A2+M&U|gx& zKTtWz-*izDpsE4egQAbD02%et(s)^pfl99iKNP@7rRM^Q0Jdq&y5QWWj|eL!_wNSy z7ae;V!_P$#`NqDiefx<3aJew@n@T`=OoMrzL|{}8T}&UX7-$??3;y1{lRc2FJYQWF z(hR_wgDLmXj1Si?ZO1nN*5w)aqd0CDQCq?l&BPXv3A^~P8ixT_sXqO<99M^264aOm zW+J3JPH*1B%!q%|R`sN#+SiE<HdL$m_Y`S>w3Kv&QQ3(x^g={M0zNAKfa&`em}IQx ztpQY9fDM4-R7cDTxv&^dc7bI(O|JiYz`BwkD<3)(Fr@@0D8mM&GAl!}A-}s`oV*6q z*r3p^E9hj@cYJerb?A)Ds2ARWMwgl-8IbEWoDd4s>~U^4CN0$plVzI(Zk1NVjkjML z0wwK^)~DgzzEeezg{{$7kuZ>^Try;mjyy%H#6i_FE}1tm;Ojx>o-dgo7G?42+5qHZ z?)_7L)~dl*QE(3&fM25XsB#PoN+x}2*VnQUI7ACbbw}ATJ25*eiPF?BIJW3wD#p+$ zwR2nG7DL}@kzNaPuNzxTL5F*L1Xje1v;u%fRtGwfcWZ}3C2*(I=bUv1(8-FymeE*< zL%da^M**RPQZ+IpTq=3bu9ksuIn=E+-%=%|FMtGtDHF$bs>!b&5r2J0x?aSJFa-h* z%`ift0=bw`<P1}1WCvVG(V$Ghe_tk!OsvAGS7&_5nW}(*ih$g&_QIvqnCFWQnoEXJ zeUSt6x^7J&iHtd+0IYw+h#&*nuV+e*vAgb8e~5I~90IU{DdleB3~~hpH!v6An|`Gg zd`u)$kvFN=+Jj(yI#2IThzZ<ptSql{V`ZiLydHvOV$ll3_;_F(xPaB^eV>q0*d@{T z2XV%fbJ9``Ic~I-Ugx|84aZs~V9fHcuKN+mZq10kWq=lwmCL|B=a~wnZyh$BWFRxF z<S#EGA_SlmJ>y;F$3-r5+^aJ)DtLUg@}lpy27;#n8bLS@6c0>EIOUenJFXi_-zb=) zW|y!A8721!!BJ&cHt^o5LdI8OtlwH;Kp?{raRG$7hOs5S$j17LwxNWeqL@AHfRElN zx>wHbgPIKq%%_z4%mdKjGk}m22*{~|U@5}d?=Q2y=+MV9>ZLCpXs7y3!|v)^F%#LW zN3qpYDw<>gv-M4r(%YaaG4`rS*V!*B(9qgNmv^Zr!YD(Ak<-B0JAENx6nI5{e?86$ zfGIP)`o6fXsmJ~C?b$93EB=EKM#0Ype%!S;OrsGu2WSz1XSJn#25MLk4=|?ot)07A zrr6^}hL{*>)f`_*t8&CokJx4|g5-Z}K*!8xo}wU9qF3MdZ*SdN@dz^ql5trT8#ON@ z78wb>LvjpKVjw{ZhS`T48w)yaFN-t`H<2iuDD284Q4o!ah{PiZI$WqRh{5MgD#ytG z$}oQNj4(Xd!KtV)&i`7mFKhQeALSg7SrKv@0jOnt5Fd1k8Bih6gs>v5{9^eH;Grub zYKWw9z}E~NiAGU*F$|9HP6|qQWc~<Dz#ueozg6?ol)UuR)O1uxi%bjHllsrWsybS< zf0iX*+;LtvF-QSTPl{^eLYmy;CBw<#2iKX;lvzBAag@I~^caQNZfrV&k;N%MYML-@ znXvV4QP4nMIeSzz)$F3;+TXq5Kbugcu#}y6x2YS@AOIa(NaFeY0*duuiP6sVNq^Z? zDkd2Hs>&<yhWaW7`BBhsRPStXGdH2Bu~G#KSe5K?$H)`r8tY~yQ8mNmLr53{>GE_O z)no}SDj1__&4ZUVTzVK+^7mX<q96@WISIzi%y8tZWp-!jbxwGuWd`C8SFADfv1Dk$ zw~j6J`WDm{3M%W(!=ivl=Bhtvkp)zp@pdG8{5Qb*_$+j2HVxpe77Um+uXlVOJ2u0* z4$Ef9n8o%8`4%z3CJ6I9MLg1FnULn(Lnh`D#t4?6D5=L1lyP9?oy=X=YqiaF3_(a` zMjr5su!fcHc6X0xCb_DG&7|gAF_AfjVqX4WsJKBXN3*VlVhOME_5h7sF|xL5!`MN7 zu=!Kz@1Euj&TXuezVCa|SQub;)4f}felja|gzjYGiTho_XZR_io;o*M3UYh+nk_#T z+^xQDatZihkJ<Q<<zolrbJj99pho#I%4;d@is%76t>^YZ{R_~G!5~J-*F?2uJu2@D zE+~2%HaC0Eq{M?Q=%v(<oIQ42aUMc%MxK~~qBC@tqIq%goS^FeXd!s|xORZ}A_r+s zp~-^aHivWOC(}S|VaRxCjB1&K_;(w<3>@*WG_xjTO=GXSXO}m0fHdv8sPqU<g5vQ+ z&*4U2qcJ`7QphX-Gu&i7b5aD~f?`)=?uM{9)|^q~ZqAfkBfKM@Y!O)aNF_>UGnhNF z^?Bn`x`;e%CE_O=eTBDBZrEG<CbPMyw%-4Eoru#Ff60O`X1?Ce@x{Qy#f=&YXM+NS zeS7W8F}P?*t${ygBg(Kl)&up_D*AGBx(*`0f3b%FE0~?9tk{7j>xv~KuGXAT_p-V= zyaEP}4Z_!<aduiTXM@!4WP=Wibg^i9EE98ts09C5?tyz=@XanNt#B9-X0iitr5~UQ z#$c)Rwb%HN;MG``782#XfT!P)lozBLS%XNlGDtz#dz#oGNC;E8V0eg?B=d)o0UYLN z#TqFxoMl}INlCbbi3JP{I6u~oImUpFDn<IJ0<i_uy%B?5=6z&H(j1z!OpXc+&>^Nw zN`E8l1S~3WM_$OwA&}2x+#9;kBII2+2{uuQKZ6^?ldJ$C$(2F0BsHZmr!jw|50fro zQ~Z%1M;Q@XNd=Zn05FY<($q@#Om}LW^05P;%5K2I!9XmUjF|WWwnvRV>#4?Q*<ijV z%MT^M7Y+LU_Pg6cyNM7LYpF|{b5xSE@NXa9ooaia+1H#v5lpS2uuztN@`{C!CZt~$ zR>5fAKA^zxg2+_PgNJ3#<&D+~?pLz=Jj%WaM1B#u*4{n6ENW61m3@wwy0r^5MLewu zBFA+Onteu#US3U<I51ncllratyR-pF))9YTf(~+-H9lI5K+TN}tQw4qzJlo+Du7(x z6pw5rdYO~pwzkXCwh{TMn`MzOaYw!&PzUUt{23*ttjw5?jPtTshTus@Ty|OPR$|i2 zpc9@JKczkKL4Og8E64Ta4o0i`Y`V&#@#>4l(U@7<I2DqE7hsNjP`v1sQLCs28Pinr z<W4}u{<H;avP1XNSm%*_#{3dzS)~!M=kJ8mFa4IEEuP>nk|EP!Vy4LjsjQ!vpGESN zI|iFQ<(ifryu|3l2qOHNgh`~o-4tlXWLnt<jRKSN>QCp3{}DRgt@ahOq{AXzt~i9s z17Ki8l5x~b?w>Z$$rknLX4_Mcv`Z_~=JY8HK+=?iHWZDdYKnir)V@-LbM}xO@MpA4 z_W9un8gJva5Nr;W((Kr2oF+a=#R3%{K7jU}*w|~vfqi9<az-lhQ4ewA0=Q4tbs^mh z+ku7q@1u`}hlC|nF(Kf5&XA<IWc3<_r)z&O;SMuLHReC!D<KxB&tw&o3_|j6F)A&s z<gzP-QO{BPf@qRF`u+Y5Clrj*NJbucsB|lw0_tJxQ6jkdB|k#ERn$pB7DAq6P*`m& z>kSxgywQD>uTM{i8qOPZ6$l6fq9md&J67ayFJIe@V{sP>kNQ8z=-NQPY8y!eSW5_a zA|9az{XN0TdGEIOD`$~3R)RTu!-8ceer2*UtaEj^`&fp;q44GaMs=M$R=~-75QRSm z`1_t|A$?beEFDzAAk|i+JlZ8|Js*Dex5LU^a-_zkl{IlwRkiYHHibi@5mC%?a)K#X zLVi_63`m!b!g_p$qkD;XlQ)HL+F)7-ULRl~&g#&!4hZmPwRS|}nE=R|F%ln~Hd9zt zkK|eO&)d&p-DoVK;GH8h8QR^J4K)U-Oprie;o{=_70{e9yzgs`N)~UK9I*|Zr&*vj zCcxS2#0nFf@$;N9Zff@&GVA>nF}}NleUJ1nB1Xh#l6lJG(Uo7_BCT}-p{`MzA|~{! z2WTuJaRjh0uMuwF^86}!PQH%`=>tQEW#E~yzgE*y{qkupVRh5=>XJccx#v!g<k$h9 zouCbHV0|IAQiI?G55W<52<Ln85*1-3V+r$!#Hb6=D%o$X`KPHQLJl^f7BU3^P-}v_ zj}Df;?5`%xa<&E}!w16h7UhcQRrk4jfaJ-Fe5u=rtTzMU)I^DsQ9m&G=8BD#RSnus zncA+C2+Z!yVcHL9Dx#9J{`fO6)~D+4_gW0%%N!Ky_B*h=$sLoF(s$<=w!IU~^ngrq z@Tb|*)Ti10^IuLV{?ADm4SpBma5<udC1Hj>kFsff>)TPEZj76I#LsE%&Ou;2|89*X z*&(w@MkFu1%&Ym)=ce7^4=N_)E}yJUX8598hUn_C_z*J4K3q&}I0G19tn4cvP7Y2^ z&Moe3Rt{#7MW@^DZ9}gI#}-~${!!tealx22F*b#Wc$Kj$xdr!HT4=3-0yg#)a#}~8 zsM47EAv9lfX-=#!prvEcfjSkVIz?CsM(p1RBSxS@6ku9+ZQ6?npJ$I0_TF52q^QJv z<<%`CZ5nVzH)s($!)1)Pfj3h*z4^_&q98Dg35z8Y39v%ON~BmKRwN(#wKDL)HhWRV zH_{ptHAXZX7-IW@>KP4^I{(Qp;WVXP4pCB2AY*?ZBTMe|HNEB-=(-U|jh}~M)OfoT z`aUy66=>y8zdgRxX>%(UH1?tot58228AfqlfL9$LDR<#iG<NMy_&H^|_PJpdvw73L z9|{}9L#_ncupW$ZzW4wY6}Jh=`imrklZzzCkXL>o&Da4bBk3Z<Jpn|Mc7Ow)Xb9hA zjJX$~@Wk_^#E($MTE^rtYhpWATOjc5Kr&8iu%CQz@@*tU**kjT2!v*A9(I*0k&#>o z!K#?pw}`t!F^JlCm2~`-eec2R12kj~t^o{|!amst8aZv0lOG=xFWG}z?9m7d>_c($ zLjR0aN3&*NsRu0b*#O{7AfcQ5E^{hj@m0zsHX1h9O7ToT64tBHim<-hy}mOWL-o|u z<Wi;+ae_vaqk2j*?|J#y4raj?*yAM5c%wxvP7vaW1^i}l(?zkJB0xwZMg2U9iaR`x zMoU3sIBRf4<z^4R)oy-IaNAo2X~R{)&czIvmS9n|VMYXlGoZ$DgZ`b9B2!R(b69Ih zjqjiVXq8Q4_-!~hDw4sGQgpJB-Z)!g@#myWgW({E2rSTYS4iz_h8dxpX#V9yp}kUg zpOrCOq*62IjD${6E_AuT`N~1=E+eby$Fx@1VOB&I@Z3MW$a-bZ&2!>hwhGzg8KOeK zK-r>8j0zHB8Eg4;ph5P4cEbWi<WR~9j@Kq70_MG_^7SB>gAU0sI9iHM$859Y+9>A3 zM~M2?xlp`N&i5>3u@%0>M1%03;<a~!`*U(8j$W=>U*hKZ2w5j#1b4cX`xBZp1A6Mh zuIhG_LiiY`i9moo+H8h;!^NWK7RMr~FP}ta1v66c)Q6*nD*T&lPPcUL2B2Lfq6Yin zMgMpacQwN27GvvAt6CWc?;K+F!<f<)E9h_Vlkdu6TD!N?dnD1Q(|asj!|S1T)gEvf zF%^YR@o*Jnm=iWLYwBp7aU_GARQmeOa{1e>(QDj4x{9l|xY3g4q8)hdHb9SGn2#G4 z`;C&c9TUX7bMrb5xkQBXTIY$HMI^JbRd>qmygNH3&?R8tK}2$xj7}+d?u$T#DX=CL z)Dan=`VH~)DnEbiWQPOvOlA^i?a=}rZ<>QWHmy4C^{YmbA4SvG9E*3^xzBft36PEn zkg0uNd#STQ_CQ;Zd>{=<(24h9AYTw-wnvW-8f?4?L-3#>1<nqNHlSb|QN=+hd;kW4 zSLXw(Qc#3=^swquy`&DRF>r&kzQPnAv(ZJNWVu2F!~pgG_TfD}-lXvG6FGybF5(6h zlx@2!CT#UsE%!*5i+P02a(VYnx0ygxS>i8jM63%R!A4kAU|R>URPk^B0_pbQRALMs zR^|g*x>-2ga9c1%;^bD}!yVz|hr1;WJg+z1k~+^*fD-mp4({pBdqQbt-J$ur6qbyC zi;M2YE$xid9F{N6xIB-`16s(Zg2PMifNaKu93XB&z~^hYQLI(-95L=kBgs4w5O%u1 z+<Sq`sb}x7^;W;Yjj<!3uMBzjU*gb!FZJ?y&Fge3JqZAo+I@3vRp!Jrifja;^PQDY zaA6Tx1$fje9Ah)qF`uk<DzW86_ARR+rpHx5zf28<$&Mv!4ztRI8A5~r8BS~VJOwjF za1GK_%md53{W0N*o;dc(D*bWIM~Gk2x_=)iw`2cMjZO3#&W4NDC!fe(ep02uIYY%# zi)6a13H0AjeJ;eNheC{$?m59@+7<~G+joxDc=aD%Od>L$2k&e><lNOA1+coii!u-A zCIhb=i+!{x<auz*q6#$eRP!hJBpCRSmecgBg)#pi4Zyi{m9*?yTMdKZS+jPCgZJg# z`f=-dJ-p9<JsE})kYPbBRoB3Fmz|>1y=szy?G1jV7(%1r%i@cATpd_tBP>Qp;&C&d z4T8%}af||98&Cux+YH2>Q}S!*bbovNY=l4MMmbfV!9`|URxIwOUuId!v~I8=?E1%@ z)W!S{OS`%hB3C*<VaI!%VmKIw8zZU8WACg}ohg0ak*Te4V?5>=$aXrFD3)y^1&T@s zA!912auU=CNZgjeK+zIgMRfez*MNK;*6kwg2C8Qz0mp~=gb)Y=2j6UX4Y(W|Ji%p7 zh)pR!u(&N`K1)7)P)y4K@f3v}c^=gjv5;`W-%qgi{m3nl*w!I81F*U#n(C?Zpe-p? zQ#I$2BJy1&g82)?J|iY5J$zRMH`wD<X426H@=vQ+Cx|WTzBN#+=C-tN-GIDGo9C8u zyFy0W&;0o3VIh9_el(+ZyWS&(R7qFW5vBwdwD)bA{*<s>%n2+$yGh(BRO6Xzd!zF) zo=KG-Npwka-V$Tr_7?Xvc7#Xk+l0DMW|Lg=nmuyjJf5#|rZ(^0Ra@qpx}g{E2~kxU z+MK!H&RB>?K~RFyxJx?PJgdVl*q;nVeUB`+FTFXQ=PUjWsRfiM^e?{c^|1D^L)>3O z%n0KgXT%atYhK&<@AKbU2#oNmgY<3nSg2WCjG3kgNu6+BP<`WLqbsmvh6@3r?xDJ8 z;#?K}T;7szyg993As~1_*^GhCybw#vRl3~tp<p-Z+#7-5V!f802gAQ+(F`bg_=x=X zrggPByxAY&Ru!o|IUKM?0XC4@ing<v#s}CP?-6K_8xxT<U4(WP&JJ=nphbVS45NHl zk%XN-L7jrvWH~aNnN@<`j?RlzZzhgM6iBlYL|mC?p{@9kC_qbl|6htVT4T7AaRB}M z9<A*J6BMkTP>joHKPANzRr*|YF4b}Ue8FdoK>+tv9EkwPri9?1f<I8CpP6n__O<S` zTU~3YXP^0DhgB75+?kn=OfxNm?H#Bg<gJ-Jn`M(S<<WV=FO$7r$D8Q=!wg?0mH48^ z2RmH_jjB6wc5x}NR;J$>xs+AXi$U?w3Man>N0JP<g9154*s&dedmS>vKGiW^8kd_F zf~I)90fjp1sObK~2wW0RRp{W5km)APi&vxDr?cz*yRU0RH;S?#+9@xbvoNgwKpp?X zyR3f8=|G)`WiToZNT%kINyGOgBfvi%gU6CxQTzdZQD}01!<ASO?aeMTS!es^P}S8M zP_N|k>fJtR>1)^%8>-%Qdw(hCIEPayFAKXOn4IhL);U8)<d>8NpC>cLZNVxLVps8o zSFe!rb_dKr0d};vNKis77*zIry_U5ZpJD#7y$}Iz&w8OdmYq*q>#e!KFQi*Q3f1-Z zXv`Gw9bzK&V4CXhJ9h7XW*)FS2>XH*vQ>aDb)1rRM5H{_CU=^sY_|a$fA(?Wh~)GS z=Bvtfba=%523H~uycxG1@zC;K>BW)kZslM85V(#T4FGg!F?1A5)fPg2<$%qgu~J(0 z-;vpTtO%#5cL&?B-9UUYD9nCfWiERC9alcIl<uJ^S<PFrRUHS1QnE55$Z-Xpg{fu% zhvM}fe$rL62MF6D2ap}zeZUpl!+gcd;HZpFIfHgQ%vY`_Jf9yV%1;HLbSK^0Z-y2; zsL&}P*1o444|x?L+o4D<F(I2jOQz|a+!~jk>~WJ-6pAu8Oi%rVuKBm38Hc8vL&Lx) zP~RlerARV8fW&TGW4}Cnz%ekJAYwrAxq{z~Dd(~@ziTmrRd9F>jhG~lYGZ8sXc0%1 zaDP7oo%ScL2oYKHXv~K1fjd!AoJQ?XLUxzCzEO5;-?+L#dcb9TQ;eLNRT{s2fp@s! zI{hqPV*A1kdK;<&wypi({B(S8o+6MSJ_7>upS=Ej*enKrdE;laKH>ok1~xu+9~yR6 z+?ICcVLkPisvWa{!|Z9us3;bGW^YI@=Lp|^&K^JBvTY7;*M<T-Y~Y6R8L*?2ao$&x z$P=|{5|0FjLUe+<G*I7(@MkSG>HEC3KU>!I!*jQl3AFta()H0DhHSgzyYhN2E@dYl zOgKa>4B11g|Mn1w((8gb(U$uW9q~NxreB|4ysHtX!mBa?0>-s0<LlZl?sR3-a!!tt zJi{B4P?Y_B1HqiVe3+~a6z4yELN`A%SD({xUgv3Fbexs^u+lI^zF$pv$`xgz_Xs)x zEaByj|1M^0!9Px9xw65-|9<ni{lXot%@4mf<=O~kga`6^fL*rPl7#Nxe0AVq1tfD* z)?yc4jug0hc3yNhpI#S)huVC69wn_e2acxG&9KgRk65J0p4M|`x|MkF<3LQWH~Xk4 z?>j+;?*u2h_=?4HiyQUU2OHv%gykrzPn7Hc2~a@^3)nX82D{|6_5a1^HuMwlym=S4 zNvZKU8P8ms>dwW(+qA&r)+=sr%@gqC&lp`rqC=OicM?zs42}E^`@-XhhBLuET=+t{ zpa+PiMcnuPA<&fvh(EAOnw36}yyB$DI5mTNKGSk49;ab1{`!=WBqQ*@P$cDEWQ_X9 z%yz*l9D0AZQoG0gcJdv_(L_AgJ_Rx~a@(&OR}*Pw^CgkxxVzb~CTi3hun#f9*j=D= z6ZX{W@3A%LlsGi4yS})Vp3^J&3>LNcX`x5jP9_Rf7L}Pdch848ML`iaPP2@o+cXoI zNro_oF)`mZwb*fxK=O2<E)hUFNQoQ^VW-Yq+79w6Wi1SlR0<ph*s@y2_v9p^mLJL} z@`De*(3&~z**7CQt`RzW!(HiJe^9gHvhy#?1WzY*O^*3-r)7H5c8riTf`D6NwYj^s zahK1F`*W9<P#pw;`v>}e_Lrd9;<XJh0RV0_{x{s|f7%@XXPJY?(s7d`VfUHZ?x~n0 z+W3SuIo*+}GkI-hh}-3=A!{_}N>PExh_OT*PhfpTXWO^;28<to#EhGHy_;+0MtG!f z-s}lGmH^^FSm}~VLZl6e{n5RLDj_Mgdq*cnSs?+^h38*aYiWcS&4gM5m156<yf&%( z$OC9)N|p$-Lh^i<fwLi-95JCsWLFW`=y=zZNKe_?sc=<cQgo$r){#CvM1YQMq&H<^ z#Q|of^%^DpB<#|uITY%ona{K#4d0}x#K?~QTPKLLflJSnYP=r4Tg0LAf14MW;QXYY zDYF2a0DWsj;|C<22A^M|F%w|R4O6SCQi9b-s{FwY%vaBP4({rV^@zkNzz@bf1|h<J zsya|5Sg;-d8P}H^f!w@&ePG0`Uo6p71OpQle@Pl7V-nIIRb8t8;jr14t%?`wSI?l% zmY6eTo`BNHAbW2UPS<*LpYu$Vkj5Ik&7yh^?)(m{{}2q&>E~takYOslmX)m^c4;|Q zsOdaTJ0*|Go3!#Bs*;1w`kZD4c6LxzMLJ~$T6G5iEefKpJ?9oWO>d(qDYXh{q<d(T z=)~?$yDQWSWk9jUJ64jP%RU`PmWg*AKk{5Iqh=eKB^Jy#${=7dHBDZRz!_hZu(^Mc zIAmaPHJg)SOIqk#qxatdmp~?3#lv49eFe}fr289PH*`~6s=}NrMj}IzNaBsF?Y&IC zWkDkf6lP?DhSB<UjA6;d7Fx~>bsPbZSFD|vXasBk64m~tTS|z{xO=|Bm{P6<i39*E zYoY>jMhq<(t^22(H*!G=?V3!A%KPPW_sWQ1GpBKlP+5{Y0&aS!Aa=Y{+SnKvd%9Fs zIXyqVvsrk4zu65RiVx2Ph}(@D3qP{hn3(9e4%VbXe*#_bjj|EZPlMz&w0A0R0EhJw zrFzL^NJ#@@ape(S=N*QHvB?=w4+5G=B({EK?%%>G+L(N<J#o)_l5W&P48YQ!Q~~P4 zTd3PArRIi2usGij*lQUcVDRZLY&nF~XqGL$#}3?}wMr_cuhge?(BFKXQ+LgN<vu&` zF;;R03pMA>5}oLtSz?r9v?_1m*J?h|U<OJPX$5iRHaH1&g#{szvHRcv2ONa;#OKK= zFYx{P^A&&GM;UcAC0ezCvPA=5p26474}nK;z(*Kwtk*Y$EYf^#!G;cO#oQG%B1@_7 zvU@OMVV|udSZy(N3UC(@X!|!A_zn<=V%!ifD$E6mt_<8N6(Z#rHF;Nv9`G*jnV`=; z08NJ17;@lsE?6l(nEk96&t2(?14!;-uLeNyQSlI#$}+=9f;AfsL=L@9xC><u1O`@# z23~bdJ?*%bdI2X*dj-yER|gg+sj*6F?)()Zt}3NPX)hEG|ADkjqnvr$o$#_56dDjV z+eO^C)zlC!ac>t~Ziqooj)ZLt>K??d-Re1kM@4QV#{#|H24ou04t8X(X(wP#XNm4A z*h#;b-u?ba{mskYjDmtr8}>M0)-!bB<BFWrE(yy3JERR`kO&<;_cf1$LbA^Kkt#%V z&_?YrR4<xa-?-}{L+$N;@5>u9!8tQ^Rp9i@8JUv{AgDgcoc6J+0nAbYgr<rJ<rDgo z)N7@FtY?1Yvv(6X;%x)#@x=X&$Id-0Q0}v^uhke`nSt{!LID3fouTH8nsHKJ!rP&r z05tX7$3$~Gs9U3RLcyy#?Y3Qbx7*7v7v9dAP)QI8szoDEBG<lC%qWY>E}aRi2POop zD~d{18KHfee_4nHH5pQ)>;)qT^rBUy2kbAHnX=TJ8v=&17iz;G=;o1Sog{nKwRKJ3 zFjLNQS*S9HnewMAhBu<k=-uVyBsy`_sr<0MNFB2&^_%_YgNWaYJOOa%aEXib6FbX{ z)BJFMUtg7u0-5o?lBB?$8t(Fe`d5n2p(cyk4X<V>{u-{GBW*5DucgDIHM{9h4lI5? z`{Z7Dn;Vh*Ck#}1__hsfu=?MV#sxQjrA&XM@x6tG_sev}*n<3>T7i9nbDBMUATL6& z!Io!a{qabaj7LBh<~4N}STW#2ZV|j+-KP>5tsL|rL^W66{=igF6l9$0svy^25FruB ziDwUZ3hH$a#2%7WE7+lie!z883`L>1tm(zydH_=SnE#>BGF4KZn^FlRi%RhxDFA-0 zY8F7onO2GH8ue;9wPcSt!xwbSsOOca2;o`KI<Wp4OPq{lF7QT|KKHDq>~<v<5C=ES zarz=+9d&z|)?1>{D-()HhEkxPe~%~KW=(;udpX8$Ghmrt+Qn5z3vN9I&t$*l1KLfM z9#&HG>ZDx>_kasfj+@LN(zqvt6_C{V@$0ms8o2ajfgirf-mU%<$<A#ehYz~AvSS!d zJ<D(iQiHOS>{WnkW!|9wG<gagvC1RdU-wz=N6W9Pc1j5=jOQ}rU*$?b8?qw+<<UG{ zy=F~`UG{P7o)<8_=G65aQu)r1J@|OCt)#5dOe#UBqgns=0q{QnupP6esuoFES;x6i zGYmh&6?0NZEF2S5IbfKgz}C^vS|2zVA$ATd7|CHU-<-nbIHj*?aB>VVXTSXAu<7j@ zoI357YsGn}6a&=aalSVc3}gdO252wIE#|zRmN2wsM#pVdl`GK~8l6Cl>Ha#XKBMH_ zJ2k{d9CSPF6rR8xQnw2TA(x<GEfL6L)%x~oyp}cd>4_CTB687QB)@4^aJfTs;e=-v zj|iFgNE1#yU}m(gu6g<6F9S{iWdA}adU?FEtvEiRLZ}LyNFf|tUl<zT*5MwXZ?3UC zsFQ!O`*hrxMtt8-1{?#+PT;^LAV!XLH=y*X3Ib4AWsog@SmxJ(Muq8t<Lo~=O@_)B z2)$G|VD_3A>l2c@@s@h0sBVwfaRBVnt5Q~qWbL3OU4iLSpc!<{v@|5Hy05L%g8`Gl zzk;EEH}E3UBm<XQ9I!|$35Ca=6$fX$C3~NLh9P`~M&ZVaacZ{!uArZY0Lb20>XPhd zK<)XJ==y}c%irm?DdZJr_kaityq~<^adT@cA&PLLT=1*N-q0>N_1Xn+?GuL_h{)Qj z`1^T~CmxH>!7woQGqiH1o{?Kf$6-2LDR<MkHG%Sho<%f4!~DZLj$}kx*yA`+aD=>& z*uqk7H8A|Ob#?uFK~N;A2w>gVmlZcao#+bHdsJvlr`5swG>#^Y$ST|kVk*L5ndr75 zr*eSPoQYDbVig2&S8%{IQ~gk7)#PLy4xM<Lvm6oHeK>A)D=G@iRA)Yk!G2JJzg}-- zTj@6ACa{(&wA%+HSqo$R{_NGh>Y(}I8>=Xx__3J```gvqsbFtV0UY5V{}BxVCqWfK zW^|p{tai6yKW*6V(+#g@5TStCV~gNbK5n#)rlN>f26D|mX*%C;@k3fRfP`XtX$o6x z0tG&749g;2tfaf-LzF`i?UR5tlV4!3apXp4o&@!Mv>G~aV5VKg{0GwKNYTj5atXw& zqra`~T-8}F8{O2W)H%iEy6jY#89o2NO{?A7zcM2m%f7+TIpH3;{rypaxzBzF#CM(= z!|%m4eD=W@o{|U6pS|e7WC)BNDrO3HBW9Mn3jxnoQ7YM*$9xpBl!3sc<j8pGObjZ? zG_LcF)6mK_0C2o91|O$c>Huxk_45hrhKUSj9UWP2FgDU*-KeTEC6hds9_}FZ)S^HA zT9QD(ni#uSLSE2TTwmVg%fb8O<m1LNa-Be#hneRK5Cb`DldwR9;d2HiK*JhSi*F%9 zk@pieVv8{K7e#}*n%Qchhs;9>F*#n(EN&I_kUt-`-H1kV^2kEHdj&9j>n-CRjG;b4 zlELJ9Io)tV-Egr+wm-&xs}A~3)wD3(it+OI?;|+wD)bOpt`v37#K*1__btE^7!_%s z2mFVurWJ@^#mIH!@=8dBBKL6n*<kYKd^DXCc2c9a4cOk_Ahxm6sm`Kh?=RX2EG|~Z z284n7A-=%b@PZw^M{RG_Z!JGvH!4)6*;><HJYRT%Ynz*1J6Kieecmr_zk<Mtd)4w3 zbFoN5i$Dz@mJDhT40pWjjW8D~!kZD$BxhUTFeesy+uyP+Z|wGg*4#?MJyvZYxv7Uf z2+kEZxX|&JT1stHSrk&{W39Nhk@kD_TfcPOz96%Jd3&o~W(g#y(`>uHhB(~$hi#_} zO$U6xmB(D%c94pHuUrxO;|}tvsula*vxuG0U5Bm{)MCLm<JjCMxiIzX=?L`Ou}kj9 z%U$B<>m~W$`cIqh-OZxy_au0~tRb)FA!3Y#rO1?7PDSFHrdQW3z1S1aa9B<08=vnz z+O6Di)fN}?sO;*#7@}*}<4<Hq*ljL(?c|Ypmv|vHV{*Sg$=1JlM8pxIz5UVd#=yhh z$4lE-7rvY)`aeW-*XW*LOi5mLZPIA0t7U_6uCRy12r-}D(Cb5!i$!6kon<6nmJalT zoyd6*Gy6v;8|^mKxEqT3H#2ab38`kR&f;B<*}3<=gml3S78Qrq-Q6_T`II3E719yr zSxFcWCzlm!s!yuBE%2IF^uJl%A>*|?{ugxQwD>ypd21OA2G~?u?zt4r2RBC!D9ki6 z)-6fkeA-{gEc3X&uOiP1K)y=6gYBMrOoXgSN7@+G*g*XfzXiB9<s|}tXsv6L{-O{S zs01srBv=-L)viidk5XqXGWM)ISn^r=@Sw>q0DKuPbERwGfFEg=B4J_X_I@^_PLLxz ze~B){OiMk=*fZht#ga_uvx}e-C%&vDvCS9Tde?_Gsv6?<9)%K`o~<SX)SU7{Ee%P| zKiz>4gPwW$me6#}sqW=0Ks*${C20J3(iH^>4~>&&Bk-iMXwb5F@KNr;kjp06;g#NT z&InhT*HNTj_$EbaDxuvw#=_NQ#rZP1BSeS4kzLJiWS4Qb2o9n9SpCxWgm83;VS~@; z+#vYT<C0>rHbu#zp!R*Ka97OwZ;eBC#d>X{wb~!+x>Ut;&rGMV4;4HENa{AfhY^)2 zf007ThMUb+CH@#l#-e>n8B-u_*nd7VT3MTpO3rvHp5KM?%urLNz=|C<Vzfyk96^Zl znsA>}1NTSzyl${bge#Tzq7T)KAQP%EqX_F(!O(@Qbw2M}JiS6C7LgjtX@5xkx~SKF z?xvY6&^kX}$bO5a$;y9QsZsCeyz90I%N$l)lIy#uAKR%jL#1yiAz<{^#fQbB$4?A( zN>YwzFABnfgNQ;4rDzMJt*!dLqbFN%!HIwHo7rii08Y^SaLG^#l4eGBDr1ZR{adKl zJZ7~0RM%uG#V9uSq3)Nzq&APgINbE;9dyBhfrv_+9}x~{(W)EN5Qk_)+M9?@D9XM= zNRpbnfRLuS<`6XJ_C2Cl`Fy70<Y+6x=;r;C3tqM`@eVw(vEA&3U~$h;2A|<;O*Gi} zr%2V!h2bS}9j}*@&PP(y3<RB%2;yti;_O)Kt7uSBxOH8xfay;vfDk3f8!O{)Y*!?D z?yv?_hSBZ)2TXe@`L2%12d@=qqb1+7_^1>1E(I?<cr@a}Q`pOtR8Wp@#K+(}o0LP+ zI5#|CHc@0C`HO^f)LXq9_W~K?>nXfT?edB4Ji#!zr@n~T6qYhE9zLe56qEA4B+)OE z>$-&54cCsLol?Q(Ggvc+*Ubznd%)k%rU^V6-1#gBcu^g~2`yE@h4hspgjd9Q@{-mn zd`C8N369d<MaO$I+1%2#^}HZ#-#>4hSkOfln+bt807}G^6A2YC@l|f2X_{LKRq)qf z;2SR_C0V<U(G=RtI_BKzT&gE@1%4xF>=eE4l4btZKkM<<>@*PJGysy;%a@RdN$5I& zkEC7^Jnp6h<ij+V`BBi75*tf$FXW$ZmJNgAU`z_uj4g$I;sY=Qwtkpgn~I|NN0vrg z%9r|x4x0_8_XoN73>vb<DX8QoIS$!R?dMre%;PO}M@HBcLcLiaBBb2omQ~pYe6q?v zRSCJ-bfE{>Z@1+T!i7cQq^59Xtt*~2x@MoN%l_Lv7S0#k(TOpHTtx_cC1R;huJ&yy z%gb!Yii}I%F^KHpM2^{{(vaRbvV@Z2p56K62V7JxkWAKZunw*eZG2nF_`d<(bYCMc z+GEKM1a&{m%5k74nQdURDMfuh?l9#|d-L5~9rh-_+guP)DSO6Kkx_1r7uW7}p<P?I zw$Eh@90gn4=*to0VkHg_cvG+MH=TN>*+*W$V%tBAn`QP~?c|je4L87K6HbUTD@HJ^ zJS(tEgVG6C13gn7l#QYW=W}q?LSp88HT19a_T+4N>eXS^*fB%#5FpdvB=5eMX@d3a z4mEdYF=%)Hd#ik{%EbL+Rw{U`Q2<pJH9Dds@8^zZ96rg(Y|4;Uy`<M<U!Yr%*i=Du z$GMK-tH+0-MPP_9v9>)_x>ezv(XC(q5~SS=*#D*alXvY~d)7Y0TDlMJCYO=ce)dE! z``w&}E3btIuVi8@EHn|qft_eWmFC`(`fetvM3=a%{$E~8NKVQ`U$>Q`=)>M+|4!*+ z>un4i4`q<7hzv_|r+PE%!_|yT&TWe}Y;Wi*!T%rRML)(4tU41WBPsE4*qaJw%4MRS z0BRXiBL6xTY0bC<FnRvGd3ZRu^hmkqOjqm=lr*cDPZsBlv>+y0gYRGS=^bGo+RlRl zPu!I=^Ko^cN69|P>wyO*sKVoTcS@f~btQ))E%Ro#(B0km#hv;US{3F)&5=G9!#KAG zNdv4?ZR}CDRl!mh4vzkeT!mu4g#h_*pAsVfW_X!>Tfpg=U`1T~@at-&aBL50ZR`07 znXzq0Otaz0^qe6FGDBt%j0y5*ibgTyQ;v>HlQ3(td|X~j<>`0WL*`t`c*OrMHkO|v z_^Bam&TCC#T_APz`T{3&Al`QvtB-(~PLI})?Uwd2FEM$+a7n4i9(~=sJe=NQ)OG}y zGap!Mq%x<VZj4^njU9mtfD;^?xCG9t0bAQ|m3A&Nn3icLSkWd)M-02IP<R}g4)HHc zE7^mw2oGYPo6b3g?TJo!K!4&+E$_cesZa>!*ab@<3t5s^xtFIid=`%}8iu(t4{zgp zTH24ZQX#H6@>~Rze2?q%cGr3$UQjrmpRV7*nSkep03P00UV*%x+E)l{j8*TJ>apbH z04B}|aB-D{uR~k(JU4xoOIS_8|4>-XuF_wxE%6r;XS!fB>z*$yO8}nIOq!3QyJ1RN zGZ3ntm-_`xSe^ivcl}sSgJOi|^GIPoQZ(<yIYv^R1-A=IkO4Z?J2p=pw)lZ$3{si> zmg*Ryfd@W%4i%?;ZaC2$l$lpvw(Aw~{mKR0n&g-s&n+Buzo8El=qwhnfO>&t3*SPV zEX52IdZAbx6LNY6gUH?eH>V_`j!LWrHbC|G{A=%!ZMdH(yUyJECMzqDroeO1RwSrN z<}}X!2tAlwm^v+a$`|yzxv8i<V1G577}r=O2>Z?X`ICp8Y@qA7bWjy4n=S3SOL$VQ zsFYd|v&Y-?X-i;g>!NouMe+)YTG}*?F%MRhlBNshY&Ynpd&0skXtO%JL?Bs`i@1xH zIi+z$N2VgK!v;xmgvZU>7fD;c9JwWP(ASD(Y{j>~BTNhD)KJ%m3#MX&Ql`L^O7jr) z8=J^dgWhavD9Jqg{eB52=n_X|)jmIex(8D-qYot}4qi`s+`iK?s>Z0Pr__Quj$oJR z<ZKeDFpGD0)7I~;!!z8pxO=edXcIsYaB+h3@SJtd-SMsY)a4~q20@7KW2rF_uaCEV zIl~sR{c!E=x#)Cw!dAm}yyaYB&#|&G25w#ytw0{6^5`E$s#^Ir=Q#pBz?rC=SMtd8 zGtRXK6W|w7(aVlcQ)$=V=ftCO1%VI))@_)AMhKgrDh+MDV3+#pDpUNM^SX@{l%+;4 zF5$H^=G$iwSK`Xg>sF=8dq=2y*>@U1$9voVQ$l|G&!x_lHzx<L`;V`$gA31}ueX0k z2hcWnI#<{hizX4fj!CV{8=J*+qBh^&<|^T4o(zKD%5PT(xYpS*=eTLmQyzXNV^sF} zxLETu^vV8NNQ18#8jlU73XR652j}qJbjo~jCba3N_T{5Hnnk}$<Aff6jDtwZdyw@b zhqB#OH(a+FQ704rCt_oyF!+%a4;7G*6Y6$b*-Xxwu)c)2w180I*31W*?Yd3USsISD z{Z_e9Go-#&nA?5RSK}x#nn0k%dmY%icxOx~bRRcg{^;F5?(*NDp~(f3-)!-o(2vQ_ z;tHe9bOC`n<ci<{KJRJblavah=v40qf-1q&rqsA@zTi%0*(D!Q00>#4cK3tJV~n%* z@H8G!f;!?L50}m*?4aTBSE01mwT9d~?%uWeA5Vj}GtZRf!dMatb9IIcSiG*m&-K>3 zE@MUP0k(Juwre|SUS~l9AaVS-1N}Z$UUo5>t<*5^{FkT2PP%ioe^u`&0#3;Mi!`8D zp*T$ZkVYR?j1G|$=bc*>I1l>0v6?CyGwA?9B1C03Ina~72Mu3pKNnmn?&4>MKE;tP z%5<NpEmY3vbnQiS$qrjja%>M-^@ncxoQgA6B(OGTP4>DiF6As7@KL^<Y8EBhfBtcw zl89eOKu&FK3#Y9N(!$DyO9X{{D4&Ir;Kc@d6L!7!{?Cwx^OvjX^*gm){ym8QpOafV zcV>?Ngf#m9G1585^g|8s!~CX@sQGnz`7gj-o_Exeb0}yXnQ=vmKRT_!7VtCX12FWD zd58?OfzoHhmb~?-Q%n7cOGv43No0bBFGzdDtE(mzifAgK`9M}F9zlPU9@HlZui$ex znk6T*hxS_vYAUL9d-BxZ^jYU;=0D6}h2MHvy8bVrUWE{pp*<h~fbZ{0{(n9B|IUT~ zd-BGLGLgSS`R-3unBReF(LeEwHOOgubSSCUxD>i110%~Ww6%o0sMbthT@maq$aw+c z9kY|}clmBsVBl;Dd3?D|NSmoSZ~=mPKtkj2TdjpPmWyt!+W~e)`6l?j>~*V?>%bCw zeh$w(wv6BfkjT)~+~fPz!^7895ttVv5hB$4v5G?X7Fk;+tuZN6V0bTwf&RgIA^Ak6 zj{xG}`P`@4A8(TwF=|l5Gr(Gl13oVkP1&3Gc8k&$g<AeGkWo`T;O@PS?g(w5Y=Ps- z4yY5Ay1(Z2CjGL?UdNW{wAYD8%J$qU_SPRmIc=<5<@7BV(#c1|B{i+?IW`f31{z09 z+xqp$o7ySG1?tv4HB?%~A`e9sMo8G3i(lrMrn+0rIpVRit|Fo~L0Afk?u*i?6h4Ff zu8QX)ee4jcQez7cK`D!0hOe>p@WdQAdiR><=Kto2+P1+{Z)^nkS?$CkaS5FYYK!g$ zHwNJg8Q<Xl=j8@NkBn{&3IGuOE0)Lme_n2mcKWXW5z1GqZrW^eAb78;PH{mP>7y2+ zqd*tk3AMnweAdatJ4J#9^yQIGm{7+9Nvz-Rx|)b<Tb0^c5~N7O!Jj&u#HCN06g%`h zR=7Z~Ms&+2(63x6QR2Q;2PJ`@szWK4Lf1yk2=E(6zo;sv?!jIKDVI3TtqiD+u&IVy z8s}3f!&u_%fh+;}+9dDz&4KmPHmz9wE>X=voVP!qz@g5!h}z4u^UuS{lNXL9c_#}V z4YZ{mAYEM**9<1ns_!&+#QQ|Ai)2L&=L+H@jo30t!!0y^5eR{oy3=<dyu#=SAc0nT zQ!z~|YT)yChI~Geo?8n`<=&L5+a?UX-;cY!vNRv<8&(M<l*XWht0I3-7^_f&o4m3I zWjC7b9p0%z7w}YC7N4k|ZQj?-(zVI`@S|>e7E8xPs^sC+1MJc=2Uw!}7M9N-irO?Y zLV?WML-PTm#v1c*yl&@G9B8geEQ?<BSxGZR$*B>ck!2$7uMaE9HKvEdi$@aFf003f ztE+Nhl<Py1K`f{gw;|qIeIF5k5&;WfF9!^HFm;~6&FEStQ+CSvoLu9OubT6NOe<p% z7{{eh=Da7Fz%MO{4CJ+S3<Z_mDUGpXSoE1oGV&P23vrZfs?M;MklBe_1j1Y9a67>0 zX0=&UhA9|@`6RVMbVrR8UVcJB3`}jfS~0>HTho|9(w|U`#A9ImRkBOZ{&V&cQJ*?_ z;PecbN+K#5T+SLDk_?vRZr~LIo+Y3{>gU{*{bpBrL<kg23AyMfWbf)30h1e!@oGtf z9gqI{VcHN+<LMy<6y>GaiALw0Y$YE+(+&<3Qqu9~G+H|GHxReuhB{<yg61GwSeB^I zzLbo~e`xi`vHzAD6QZsKLKjmr<Adr6klD@^sc1BqkCdckrM=HN8@@^K@ewYXF(Vd| zW?87~39w-hj}7Ix-}-BK4`nv3IZTZ7*>@Kze36lOL?IAZipeOxwF{^(atB-FM9<)F z6{I?-(Z!nrl~*j<pCacM-s(*LYk#+Uz1zLmy#5|6?VPQ&Wq;+gD$->wV7PHVuCKmF zuTW>o%a+MMq^C>AFFv*U;9$mBIc#T6s?cpaxYidYfXX`$g3*<xE@Vl(IM8)5>Ry9B zCdZpFJx&jwWWdD`BvuH7TK8!4gn%U%my5VG_fn$eWu2jli9?>(`}i)1KW)^3q@#7M zrK#OtnBGG&pqL#7dfdaS)!{Q%r}))wX`L0m{rut9@VGIVbKKy4daPgUFK1j==i!s< zwD6i%mz0B>tW}xcCW3O}(kLYnuKJ!R7{O>E=Hwr>BRl>}6mbU2VJqQkmXou{D%&yu zrP0F6AF(Y;ZO`Dni%;FecNkUumgdv`{^9x&#N<0$W#3&^2;>pIvyw2&NdoukSS4Z1 zrHyxa6VY&7Ph)S{b+9~fI7h-7STQ}zg}?dlI+Nva&_kBLcYp5}BE3%UWc_gXYQ_~; z{wly3p?A?=9+xwYS#wf|pnRnU;_k#Lu>+LpfrpgVcpY!n1tXYS_`)YfA5~K~^SB-w zit0bxVAu?K&C`272Ff!{lE@QkTW~Yr=@R3^2s%@if!Kv^SwE<QVS_=>9l~PqnMmtb zqv`nkvW<Vcqdh2A_*ZT<E}XR3|7-|*xadAOrsn>>DLs$#yj%!mrO5o7FyT))IHNz! zB1)|DxfwN2V5BviXGe8@N$~k4O04SR;IoXfQwqJQcOlLP(%-33Q<Ea#WNNGNZ=npX zICowb<ub@^3C)d2G4j%tBG?}6;!|t5QtdmYzm<sx+IAQ$A{s|LJMOPYEe7Q0y=k<{ zGohV4SJB@B?-_Kl0?Lb#$YO8E|MNyIxidM6g$4i+FaE#T3mn}Y4Q*{q%>RR++5T;A zZ2ebMn<pw8j~tse)ZW>ltfG23_8{shTh(wC*%%Q49iN6NijzPnKHgaV^?C`;4@6>G z^>#D3EJK9`4uZA)>#Chgd-w8DPkmLd2$DuBZZ?zr#RIV!Bbvo04O3~hHd{3`AgI?< zUDEy$6YSci$fr&=s-#JO$GtVq9^ce5C%iRIIV==cE{;&LO6r<@$oA8L1t@b^Cy*zM zTmm;RX-jp7wrg=9w@EHj{%d-nQ(UmDUY}E~jQm)JaRLL~t{h1^K(yyxf~`=4<HUqs z_$dtsaAt?NU5@(?@xVR9BrI$y9`?0jOevnC-Xant6HpPBXVRJTl3%oOJ=S@Jr2?U~ z6Pa*m5=-72H5|RU>#x*(D_2IgZ9a2P;cTudWzR>Xbc=#|?T;Z_?yPB}m1Z()Ud{F2 z>Z`;Z^V4{R+-Vi(cGUQa%LXu__h;z59_t1zT`auZL(9cwmkJl%A4<yBWUHyjv@`0- zuE4(%)rSQ%OI9xSsJj20-V-@c1#nb5Ezm~+#X${_wp-M9j6}L<7ui%9>4I~nW9$%{ ziF8mUi~Hct==}?=L8Sm93o9GurShfjrJyH+$C{!Co;L&HNct8h*-z=|cLs}!V*uu5 zlmHmt5DvPOt5w!Rhp)cAfBCCzl^=NtYcD@9@5}FEAG?y(U;kp$g23FF0g>tUX>Dkd zB(De-s#N+;JVI&mqUBS2`K3s7&<{qd#3#Y0yBh@s>EnC>5=~#B-c7lD?cGDP<a*u4 zB5HHP8}Pd0HlKF?kp{$TumTzJlQ=_aX6XdrR1e{xJzcxj`T`W_{9J!sSw|Vo*uxRX zqQ0tYqmeTwDFJhlJ$Y^%SCcJ#-mES%*rG8fTMqZ>nRF6Z2XcpI!cPIi2*pE%K7Qz- zK?f|#1?3j@YZ1kRQXw~2XW$kPT|R$5r?MLm`?Er^**3%vV+o_8LS72a;lOpZ5OCDx zsSwU<EJHbg?)BCjs}Qt+hXD;I@)Qw@gICFlI1V+@kQ05Owd5uY1KC?%prMQgLg@jQ z!<dx2Kl6X8FX{coe~#wQ`~bibFC_BuLtI-x8&%K8PCuPc6xO^E@F!Ac;F(sTR<0~S z+!tLrzXu*O?Km4^`OB42Y(aV;Jqo6&-QrweaE4R@eZnTW26Y_-ajIHjUiq$gCzO;L zK6M)DqwL4lnUbz!?B3hdo1~6d!tmhv|M7JWL7H%3lP$kx+qP}nwr$(C?JnE4ZQEvd z*_dy3^H0Rg{;qGtb0Ra3G8uMYO>`Iws=&Zo8~uom;rz_|4>Bq<WtA4J48Fq@oimOm zT~3*}l2-81(3&BYKTurw&cBLeNq@+b5$CAT@pf}*)ycP4IRP>$I4zXHV@I5Qaea@F zq-s)RP5*o&q(SSIxG`{OitZhHM4mI`sbo&@S{>HG$=HJ5QjO`iv<e_Q6b&dT;dWBm z28;@q!O&d>D+Wdj{3hOUKcM8GvwgKl!(gQ)><vKhe_5GyrP?4SKDPSwzYBFZZ%~sE zCAX@fdqek*^;TlpFgaSCOuqFpXADcqo<l<-g2u6XIXHZQe|{!uC4sj|ST_cR8O&9# zW{*oh;|DvBPTg+xU5ift-a0N;_SYRxBKBX>odNw=8W8Mn&WHgcy(kgGxspGYfC~hn zVZDB}rg3q45CW=o>)5P{<F=CM08356rDJj+ts%n|I6y4n^fbvmV*SW1mifC~Q(&|{ z@#44e_-q%{V$6g}Zi(r{2#!?IO~8&TzB5lu){C(}Be57aF@|d^-SO>=Ga8k6G2ccV zXeV}KmemMRRoM5qtYYpk_>f*QyvQ#KpmU7DX?Zd=@kzZ@A*5!}te}#E_=%D-r7;D- z)z0;>ndTwX!*f8^eko))sw5M#dqy3#aTf&+))O5XY*&vB>yqMFQiZ_ScLWR8rs^A| z8&d|6g_RrT1?n}GjE?DGWD**<9~m^q!3X&hgPErdH5$$_@YzW$$6+Ds5YE8VByZFo z>w$qlHwRizw3#b@gBDg#TG)~Ek*nqpn8T6RDHa?i%tFS(v5>|%8oB<RtRDxdPtS?I zqTL>)xcIQOcw=}}(#)9HjAmeG#$+H4ZGq_^bdiuyP1=*}4unMoVbd*UDbJ^nuonj= zIAgdvihI5?Nn+H@nW8w_=!qFkZ{b>zT`xq-*53KU4NxH9{0)Uwcrq3(S{<y&pi!K= z>T3Cgd!Wq>P2q1~3lm7MeEP05h(oCgH2;;}NC|D>mP*5YpTY(k7UTKQNHnltY5;+_ z9Z71HY4k3U-`;|2mNi`zd!>{#u)}|H23)g21PFcM8jy2CdwRms5HQxO317sRe`Yfe z_Cs*o8MM^C%D1?rgBepBqJ2OZ_Mzt(1O*D*J7}f=3!n!+Zu#Uf^b<nGqgm}6#(zPB z_Vj@8e9J<(ZdgOE2Y#~PCQrga<+u3So-_(sj6mI0OXv7q*)e>^mydbEY>&l}zk<jS z1JDoGW$ypQBoXDZ-Ul^O2T5qm??{=-iEt9m#{=WB<Ax75NWs1p^9CaXGqR|RFWd$s z)-P9l#9z47Zqw;lQ&b7fDsi55FUKH_9oXt}e+xd4K8;bkvM3i9U&8i)^mtx?=}J!> zxObcB#)kdfYfcjqV_A0tnROB3f@o9lh*ksw2aF{=vOU7+>lCwdv+^DxY<Zvqw&#xz zH|DQ=JNO;RGom6eA{$WxlTqOx<bapa0>dEb%TAnAi3}S)Ne_~g&t-<enMbGx0FXwj zfQ5UhwLl@pW2Hk4^67I=bN-yqQ6pGJyE2k{`D(SC;%MVOWr#z}WmYZtbaX}$EUb8v zP07Sg$kvnsxk{XL(dsteQj0JCyBKHCrdq0=BYW}BF5-Qn*`durH(+__#Nh?0_e-|2 z_9Kh>08gyQdBDpRRn0GgMg3kcXa5(~+r-ZcYOqq$g^gX1y!@YFk(kNW0ku5SS&(q_ z%vsq)EolH^zC3rr!VTwuiu09(inuJ{&)@Sc30zULfDvL@2Lo7DF7pn$#dj<)qzntn z+6rbuQy>J~WsJ;eA@HMti`E^-=}-1I#zmO=f6H|oKgDXT=eLZwc?h735=^-!%!mee za1&%bYKUT{WQ*`y?mFlm)*iY}h&WLk&|KP+49eHuxO^<{*y!Al{lXgvV$|2D{j^Mk z)w1}Klid4ox<US>J4PgUTS8fq-EvA-Gu-Q1#etzG@^xwX3}cHx#C*{Zx~}|O+yfZm z_duE0C^dLK-2E5}C`-A(7o&rjK`E}!hgy8S>pYLRbX%B0=sY+A$>u4z`i32s6@oZM z=Gh`r19vzav5t(F6g!f<v5Zgfw6rK^4=*IHjZ_z0TTTuG>LR=NH{lSFV7Vp66S==6 zgEJIe%@PBt(|QW2;d0$+_QWj-`ik-2q81o8un#sq?Pn6LuuuGFbnFIQZw3KgEYj(6 zp9gzuaIz4yY9xBLYxlMUQGm&dAg?v_cm8N1A@{PS#6I~C$OT|t(5d7DQseUy^>chI zeooZWUe_Sen`Ka9-(2VmAvwyBFrM#xIxH{412P_D{U+ad*86HMn0S-<v0U(`E&BL8 z2n9y(I=|?BlLM#a1)+B0DHM8wbBwr>pOo4%rVvmgs_b_X@SlS|zh|VE0N1<FMLdy@ z{dptJ!OxNta364~>Kx~sZ<SG8&kF7qgx=KvrQ~<q98I2Vvx1T0oMsl5T%}SM^WaB5 zOjgL;87(%~0F6Wi9c_!|sqI#{jJ#k-UYf%Nh-$cohoA&)BhTP{!R~@d5T0>~1HGux zS8`<h|M>F21pmlvopF$LOyNUeisQ804amcDBHH63gc_ThmRYNPe2#7P*iPdk-a51b z*b*=#$5aS#ef@}!QerVRjw!MXD8Z{r-%cVE(BoPOcQyAm$avuS!FG|<csA%+eAM4J zNMFVsa!)4FQsE??8DhemNg)b}EMnn0GfXQvU4BO#>l5ALHq`pP;#BK95JhX#AYfMv zedl&0#7$S?eap0ZN}zIONFg%Xc^4N(L6_b>Y#>JJ$UFDN)-1H?1bU8QH5MRX7<cz~ z`3dgLfjxOa@W75j3UJ}z12g;h&u{Pp-*U$o1BgJPI|A{37>XBX3Fp61yk=R$_;TM_ zvORpzCHs24e&64t`|}1P_4Rw>7WMu8J)Ukq<e0gS$YAuMQ8M2|?6_HR+?@`^P=1F; z-IxjPd;0%IZz1GR^M4_}zxw25lS_ZUha-eQNB2V7Li1eu(b8>;)Eor!K=No*ulI1Y z5c<bMI?-+SdxI$)Bpuz+X#sTq_7k%8`@DbFtCg-dS3TzUbNeyd`n{QU{hxQMV;qjF zJs1W@vHN^}%y*b`T^AXEB{7Zp)mn`O!n`Gs-O+8cpy4~Qq^%R^p=tq12+Xrp9p|r7 z%tS2`n02{%hijBZ1Z!H^Rly=?$~egiUNgX>BaT0TU-nM=JB#QXxSs_NzN{0(fKcW^ zh3>LzU9`vw&Q7d}{M(yml=N>z0in8xolqnW{Mh_701y{t_d-`A|3vfj^suGcDk2@` z;xHzU9B;5D8^-v#%Ly;u(;0$uIpC=QmOnZ7?|miYL4P^u2j*H}Pl7_?#<0yJBlwps z<Y$5*JGSlH59CT_+TA}=U6`Y@gk=`Kr$yAb2okvhQ+Oqk>mX90U!uT-$IzJvzC1>d z0je9?R1slrxKZjieI#<JTw4{I`5l_el-`xmE|UYP5kG3ZglN~Qt`X;hCjKxqybT)A z<J9vUf2`}Jo_|VNEiSu23smJKK3Nu{c%V6L5odgg&fG1%={DsrM)miek6!>r@xjop ze;cO_&^E6_1?k{rld?pclcZ84<c|d^9^bP&9PrZLj>MS5BOUdZJkP#B6n54#ALL_> z!O>(ASc_^o=O=_Jw$ODZ1{6%3II+2srrcTqloO?|V#o@(g|~d}IA_!2+XWGxZ#VD) zDuWGJ{Ug4?WbB!-L0*m;hIqF|^~1hC1@Bff?LvkG4w)6f(|HhPZ2bBtEI2*Xj(4gN z9vxNb#(Wd02F4k6Ra9HJ*X9wHih|O4`7x};!5)|A3r=MW74(p2lbjHSUlp{lxdf9; z8d_P@-T?S9KV=&gxVij9bs)Y`;~jJqcA2S*rX%Z4i;Ug0i$=~n@|Xl~dbvAbzx`#l zKg~T#Het`P<Y(p9qMmW0?$^l5bsXE~og;}z9Y7@Ms>yx;o2>G1C)Jy&QS2B?^z9sg zQ`}$WT3cFzwZ}Vc{NKm-`+bL*eTIZz)O}vPuNnb?u;1Z}NAR04%!D?e2@Mn=fBy#; zO#NX=%m9-g<ivRlfo_vOa`E4G^9%dueNUQ~&>ExumyNa`zl3}(pxrJl6~Lo1Jk#QZ z4uywgz7`+q7Y`d{d*Q^*jCeXmUr}!t%k>4P@Ywb)T04sxD^dm9Fk<^}4`Y|O!Pi~7 z)8bTl6H_a~v|Xf6-nqgCpwRu_@&+ojzE^!g1lt^nFa$LwVA}{1um#gq(bk5D{xBGI z$>p!^%B~4&oewJybg|vn+HDp2c%2CqE9|0__#3x`f+2iRB<+h`^xM>6;k=K<uD(75 zNGc+~vq^8`DHOmOCg)nk)`{r>yhJwfOV`hKZD^n%0E&z#Xi!XO2qMilEbt!e`_R8a z2a!&$7MebKhSCRnK74IDtc^Nu>?Jfb*?0cAsf=#szhT>^idJXK2t&1ktawKhJlvQF zmjTGKvI0^QK#0w^kcllGHE(l4kn{o3pyf5&wI5M4wS>}0?4`g#fNkW2k8T`o$SPYL z_)NG8b5M|`J<h9L*#03`2K}|6kCPgebHB0Z0?o-0YAh>ysnqAZa5zr~YTbC*(&lAw zRmf^A=3R6;E63>A&A|+-oqcv5G@}gK%i-}-6nQ$@&!whu*b<>twaHc*kmaknJ+|QW zdYEjQA!?e7AstI^SY73{*7DwiAw+@PEoV9(3x@$Ov2m`FB-f%7ZPede$A7jI?y=q7 z<3nxK+aM$ve}%_^h<B-_B+85R5M~bZi{{|s9OWmQ!&r=qKDmSg;AbVIPFHVh)%)8t zLsUtkQ$%PVd_PTpdp?Us{H+s1YK+Q3IHsY}NzRYd$vtQ%STW(Ii0C;F#hh5?QeWO; zMcolxG)Rr?r()b+gM~?b-M*hEX9<8V4y+SaDUwX_9-fe5!U+P<UIcf`mvB?LiLT22 zpq3@jjOULm%F>LvV+ZRx$uZy7UenQ<W5*+VyqIvXd+-PGiBF@_+XJ}_9Z-Spw6~1S zDgF8Gxqk}J`-|e)vknh`NtDB>PQNFc(46qXG8V9u=gCXAEcoiKpvJG*|4DWq&~yxc zG=1+4I5IQ{37ZWi*z-#;onVz1e9O32e`QC!q1Km>UE%Ph<E)*AW+TDKc~G(inw5@k zKJa;ig||=6$R0AuPf<6xsH$y7CSOP66vbsOQ0f&)SV_b?6kjR~@MBtjx#8@g@CYz; zh6?J&nRjSqnf^OfVgFcGy~AGa>}M<dy{@EFiinh`{&4*+S0kP;y;Tl!VJYE~xgBA1 zzG8z}`}{L?&qNuruWt7Ki97rKB?UPj!-Xc<XoGrZR}2(DQ&97Mq(KFeOCE^13AfbN zRCVXqUgAo!<L%>H2wA`R8c&ku1}d_!1|k5f`gF!>&VI+4erZ}ix0Z0vrY~Oexd`-M z#jAZqgaz#%XIhl_XjN?^`)mQ*6Z|trD$&W}nK}HMznY8&e~3_G4<kUeyJ-}r+qHID zA9wU_WJusIWFy4@q%4BX><m@s%(@vIx1o&3)Cf8$d9^NSB|lLy0r$c>Fs-(u$>cHw zBJE9WO~4-&Ls<?1Ebu{?c-T|?-FXVsvIyV-hyMop)-wzfSaFOw2~J2FG2_n3_Jr5c zEi}REKB@1Dsq(Y_6BzFTNPqEU-n1>R)`ciL)!ppv(Qx09BL_hEPIqit)5KE9+QJ>F zLH5qyuX^?C`BA6B+pXaaMU&_!PQhE1VP#?U_<MdHz_^Rj%7lGnsb7DX)~v5>0-c;M zbPE!C?B-zV`MUv+<*025DI+C>{29+%N(chR2kNPM@M0dN*?VJSu+sUT0&qum_%kOb zSNI$9-Yay+?PS!1>;Y=v5Y?KmLLeih^R#t{(W^X`W1>nJqfUOJ82}D8wp`&;Z>O51 z>#K{JlNV6KrS-P_h_fB)DCe-0=OPpPwk|gATpuhloBlz_!5?*za1K$j8#zSn-qI;l z+BHUHiJH74n_m>Nk_t*uvz&pbiXPg3iEwlnxinc%jx~#!KeuVUP<4K31fEo0ipz)R zSrEZ&S$G@*MaikFb4l+%8sfxRWuECq@(d7aSm+3;)BgGgaC08J|G+rTo<FyKkTeNg zbM)R?MlUFg#lZtOP1*NM+He=lR#()GD^yO;Z)TO3kWi-LJ5LQ7nABGDJKMb!ow`v5 zBin%^@89d~AQF`zV)^hGgd}R(-_}Zp2~aw`@i>2AEjS2F<KDH-Wf$8--w=lgQDaqu z3gsI(V`;GG_WN(8xkg|fktIKp03MS)lQL}lZNG5;lPoWZu=Wc4ClTXk`2Ue*S2Isn zga2(3`;RQQYU?CykD>YR8!)X66||(Q@`xFjVhX8{MkWo=2e<e&#DR;&lX_QTrHN=G zMSs2epXXvZdoFtGw0JjY9L;38e9xJ2=FD1u>-hE4Nc*|CRNZ6{ugk9jYW+w52^?6Y zrB%AfxbdTI3f;yqc;;iPWom15vo2S)MO#u99ok=sXjgagt%k8#Y3ZX^$rCh?$<Wl^ z$ai*8%a;$`sF^27*jXpizl^CrEw{<e4$Em_#u=!jRL{3DJ_QCSpBM30*k$u^Hn=X> z^X1Ii+eaTys<%306q!2M+h-o8|IWq@0cd`)OJuTE)wFm6i*GIRR--%rvOu3{Av^=a za=JCbp%B;AQZZcRW@nqu)2SB61wSy~;yUHHLnBQ^tWa4bWK$*5R^OV5{f5}6l=s_- z($z|@;NnQjl;mdb&Z!Q<s?q^8OPWNqOR;JiG^t+$cWd}gTP3nptbVZ2hqM>>UxvV1 zrj^@(qAZ@Wu(B|`cQ4h0tl+*y5S~)y2_eD)^3G^WCw~oT)HJM=mOMBmYj>dlb!i_g zEfKSvgI1&1&-jC+6D?tr&rlYDe3mTDWp%b%W!uX24xUP;^(VRN=6#YYO6!0ek&F`f z%&CfA_AY6gT1%)#r%<FNJ{~7+mO|;~kX(2S4O6R0WU6J{_AYJeZ}2vnOchJteY(Jp zpG`{%T^2M+^IUFrGre5Hb$qsQ<dACi;N&sY1r$EgJ`Z(UfB_ww76a!qb*;u_6@9#G zm!BlU#>we#44a~N%BrHXkiS+scZ7)T36tLzW?o8t)>FlPPqR3~=JVGd504`6_C!Ai zo7UEGI^Ua&v4z2XjkH?yl8{<4U$P+8A@iepsGP)$UUTe4Y>x)HtZKTN8GhrJ={^1^ z5CU_TdWdN7cp9h#d7H+$OlfuPa-Qk#(QGox-1ZtU5%^I?vIpq(T=_dn-;nYyZew?; z_~Gl|BhmuQxu&K`qvvc`fhRI<R}9f$y4c#&OyTqCoP09o$UsIQqVk)~if|+%s++B$ zZKA05zx5G_DDi1Bj?Jy;v^YwJUE5I1R?lQ~IB-VSWz2~y5l%HVaUM|dOP}cfxxT$K zhD<mjm&60Czr`2KH8x3#VH9DxbvN-$mXZa}YX%jhB?F>By2%h33%HoRLL`cswJXO6 zp*YoxQ3{O04*_&-p2Veh-tnC~rKLEHSaVk!h;weyz9WTQtC95ugxcCG`QmI&6RFhX zg0PVj{7A%TnfiDzDa5#c=rTjn$5c3pLi;R2@gE+1#$gIO1lfG3-oyCwuVT7nJUD;s ziG7mmTfn>#c>}IVx|Uhr)yk2H=dlgiz^tcCQS<WSOr{oYphu9%9NsLjct*xZzB(zV z(<ktTj^h!7PJ+I966J{L90`-YuEX}FsIK+rdasZPkvox72oK6QIo4`~*=<~kn<j#3 zWo3fZyu?zHEcwHb-|>)B_y7_Ysb-V&_YAiFBSMhDoFOy%DDD3=1GsIhRps@ox!JK+ zS(7AX8V9>E>LIAY-DI`N+93bg$`tbn@cZ8qSfr{c$nQ6E{+iXm<u;iGWztopPgE{- zmQhcr*Q04jjkkoi;aM5uZ)T{<5pH#v-vP@_Qnm#M(=>5ka-Nb=R?6xR#mAwDJJ!v% zX2v*Sf`ivk8-C8M^&x{|i<FhX1&1!~hXASh07LdrG;)zzT#``t5xby5_KLdM9{70y z_tc5%OsL9#K1kT*fRKe4)nz8044Ee0lJ@h76bVsfsdH9PsjN`+iUrfmO`A@zR0Hjb z28g6}5{91`yV1TxX#0`FbBTGd8Rx_{f=^nYW$k46qBbNI`F02wc%x3pLPDfP=k|Gm z?nU6fihozP8ZIfQOp5nvizARMeN)u7AG~HP{!@GM>FIOn7!22!h0TuwkmsFGHt*{+ zu6*-lCx86-|8?z5(Z04RT`wy|0B;S$y8-67wg%k8R*{L^{-;Rpt_ZcdoDu14jhwE1 z?`YSG3_!;Hj5gav7D94XLiliQLxYaD-gh)X${?$lYO2~$KJ07-YN%t5atT+Zq^DQ% zj-R$iS{tqn<~&ik85d0-Ui)3RjNy-z8d1@$oAa61s#pDJEb04M22vmTl}<KPh)J3< z=aY`9YwHsmSr=lAW~o{TwpP6K{J_1#TG^tG@9Gs1h0qCVB_rwqQe$8=Mx+2y^-nga z1zfK&rsObuL<doSqxW00EWv~Vfobe%G}>aV`49a5LGOjbraF`&E#rK8G6pY;L_tLa zz%3FiDv^Gml$7>3iAkC4jk@_SVL0Vz85u4TCm74WN#%E&mgO(6OM?BYTGpS0byOnw zs!}=AOzP=+{^YQOlx28;8AE6;t11u|XQTC&vX;-YiML}x!yNmw-}`&0Wt$M{ZkK~+ z!gUDfEOEH^b4L(^AWI4c(SqJ;j-M!Ku(oU|rW_I(OKFKoj$p<q|4HE^3R~^_;b0>8 zKEvb|1rU7PsH@J?mVDh+f*PoM5_o=IeBi_IHZ)ONis6s`WE&zpfX-G$cgv4OB%WQm z)Pke?x)z>Jc0u$491YmqY|j=jU)YtlB-*JfFW>}{`!W2mMI0_xNc~vouut$m^g1$n zi%7=|bZ&z@D^{yxSkEnL@niW=o=DCy@J{A=#6hzxE1E8>hNm~DI4Z%T>#9F+1aK#I zbp&zN{cRU6P3mX)suw=z7H>0VSjw*?B@$8RM=pmPM&}Yj%M1q|8INoPo$~T6w^rMm zy$j7{*mOoH&?uFVvM5!~l>?6i028%2DwP<Zk~howQiKBY8uO2F#GJ=+vKIH4oN|du zL0}Gj<giU3ec~;pAc5tzl`YxR4-@bTO+kS#`&7@~8)tSS^Ds)T7IWzn#N1)yVFp~G z6hq*=9`TOuZt%{OrQyW{qm-B+{BK<?TDz?Oy^Sy;GbxVByN~xT;N><uF)ul7SmL>= z32nCo3&h96X7%Za->Xmah!&{(VSO~A{UEwL(^wg4Gu)`YA~((f$}b1mkxS*ps2G{; zAYkX(5Nl2o9|NOFH4AT2lp=eD^r<SoplP-El)T9g|HSlhvSHf#&@FVzn(xu>J0eAO zBABIpNMlEd8+^c+a^Ph_s<;2IWZNhg$R`T7i>8yV9?F9f;wNddLW@rHjIW%!W|`lQ z+U7(?g~4S@uGN&1B?11u(|Msw``2Aq?O2EX;lE}TT^52{B3-{_dj788)-mOH5+B^T z)13p!w6~cg4v6@V`;^y{*QlH4hqQ`q&0l4^%$sS|vh~|55;&#q#8g(%6^d_@zvxRB z$Z!phF|5-|hJsj1e|nx=fQm+MogH9>S%@^J%@L38$uk4+T?e0_@*Lm%WyFh=tQ)K_ zFH6Ap!GNH)wrsI_;>M9)P(6^t&%J*Ib<E|IJ;E|yDTsTIXu!Z_N>)lIxKtCwTq$S& zWOsSkc7WcSb^X8{B%-;prRd;q=+^G9IlV;Fv|oEIF}yW+KUcPsub&>n^jLHDw;@;# zC3BQ3!jVqOg@&WX^bZ;PncJ7TpKcOSY?^!w3<tQQPuzch64W`*FYHknZWK=_ADQgL zkAP1*5-j7x-a+|V&Yzi!Ua5cE-hv*NsqWt?cha!d>ITDyM<9hmcSBKM;5uu0kW;%} zp5r*vpYm+o%BB_g1Sj@m0LPkfXH*5eIGvqmDbht}M;~+P8rG?!sCFsk8l2VRA19SK zNJo2b=J<PvHnmjICxSZnmeYU7dK*(cFbXfE&g{zxnt;ioh+>o2M80y(^C1qT=loc@ z9N|!4wb(s_6*g7k`=&12)1lztU=}OQW9)9pmXeLWZyZp_sIaorWLd=zV-$<sk?6mQ z*Xr9{IGPNv!u~+}vu%w%ElS9DZt5uGFq6UcT7D4VFv<#j;kjMYs<21xO4tg8U1YHi zK|_7SpQ#)cPs`V3wB)ti1^H`MYW!Jg=D2G~Xm;wDoD^vCzI0aS(eqME0QBnQmBua4 zY@tcF+&Aw&TmwgY>vTyhP_Q|$j0D41Jtdi&jh4i~kj2;QxnhCdPU^u9F&6gaoSorK zi+$ffm%exZTg%;7YEr(P*t;0SWw(iu8waIz=#uCt@<2PFHu=sy&5kgL^t>C_)j$J! zYW2pU3-8_kZNc}U-Cj?3wEL?9`GCbIkUf&Xevh%qD@Fe5EqU6@z;PF)P;oElcr!J$ zv3+L^XjZ+#Gf*3Q<#&cc|9e!I*ePP-+kSIKqPP)eJKs+0OqV(mMb-HihS~F;!;V)G z$Y6B1H6@MvqN(NTc)S|Mej71OCgCMMf4^nXWC9ik>rWkT7)_BRDQXTBXpbj*y!yu* zFXg*!A7RW~9T=tGMOzu;?3?9ZHLmW&){l;FHV?sg{<MY*+yg<%`9Lm8&<A1%7>7-n z`d(Ou(>}C6l1fPUUS(`q-GEn}#^>?m;_POMb|{C<*fPH)<nnX)!(j;*G`>ge6Rqrh zD29ocRHtnU^9Tql^wl90sZjpDrRXqB3Dv|Nk3Y<_=C&D2KBKJ<6&ee@ipv%*>FeEP zJA^Ka*Z8ix62T-7MRg+jbHc3#t^amWP2R5O^~9TV$vnDZBw!Kie*_`fzaL?qt+z)1 zh-Zx{qs+vuALc56Dj<X<)GpkW0?}+vyD{EDSL}C?TUXXKv%AU^)!qJO;=sn}8A`3D zD#rB<h7k112~RSyZEF)m9*%!J{9TFs6@Zb~wuzJ}&VDtVR~;DV!|n~bNM!4Ny@wDL zhCh#v={DS)FQxdkEb+&AW?Tw=-orWkv*mqiZG%$$Gms(fN<hIJg^ZU*(WDGc4Z1sm zaTo|$XPh)@<`oPkveo!}q*DoYkQcspiK_<I{v|zisk*76CTkk*wGJOX)M~INxxK#Y zl`v|Ra;(ubw<>vSU6p{sN96}W$Lg>JoAYn{{XeVOEIBSD*B}3r>DenBXr`sP0LLe~ z{<=2N&Q6DmTNZj*WUtdT1gW7<!UtOvN2^3=@#8R0!HaxGBGlOAjM9p!SU{L7pTF#> z-`U_rI|pk#K%%MM1Ix*-1gUshBOFEJI!e-?gZS^zih(_t_P6LTAy(((<4-}aQv{<& zyuNM&uLAD8*m2H;yo75Etx1?3D7#yLreuhix5A@@=JAk9(wp9Py0kRII%l*S^}Xfe z2~J1xHLpP8RrSIC|2)5&Ti!V0P=J6=c>jNnB{zF3&;N6lr<Ld1VVkq5|GfUd<-a|I zq|>LpzdAj*O%e86x9Aym7;-T*i7-7aqT9BnN)*zKeh9Dq`!k8D6$s^*`1wKXO_Kk~ zy!nRjO_`-i>#n5Dx$9gy6_8u$Ov$HGQfSgNbkDNYa0dB@HdfQ{Or*wI<1sC|^p{vv zXx890aP%AD=9gtJP;~h!;lpG-*@-w=^zfJm4a@0fvdow<ZlXKm800a1#@cwP(#$J0 z2Q8=Eo3<J@r*j=fZ%;wzt)0#lsvrN3Byc8?Pw-A&sWQ@eX4z^|%Ot5*r3$m?MT*v$ zHebNOE@jKo%kXoPO&iYSxOhVE*Z|h^7nI4(ra@tnNev6Bv(k04?wzMb^hw=DGZ^P- z6*8%*E1gSVTo_qnP}Hf=X=3F3=Uqo>vRE_UyYHACPt1)9Thga*3=aTg^F~sP&p>vb zP%z^_WKcO-hX<z2S-H6rc7;>XREZFNfxptg2syGh3i9fuTTS9!nR!sn$Z7Q_T^#u3 zMVbdGIhiqdl12{7B>DF0B(6w0F}_NvMU-m9E&7;MR*(2|NBU1f(M_smA$u~fKWKM{ zXz*e)_D21B(`JvU`^(2k#pYA^%=&@3)V+cyLM%58JX6MGuWnBN1z-97K1TR$P5ahp zH5d!&Ws)?shJ#@;Lv)8yY)=Ka@-6bC&3g0yd1eg@w@tli|7P8Sed=CEuVRltwkYvN zG6Rh`zibz7Rq!r=MK>C}^I5_};zWy+6V$9sQk&nvRrRgJmLCzY4ZOkhXcL(u4ed`o zmo+J}<Dv(1E*Z?FyTNk<lMiMA64%!q1iX8?yuQo6&4YGUIype^y+DB!bEwm+^z3J( zD>;dw5!-oZgBBafpmCWjoWm+g9S5R!&#eIyZ>dHj@cAB;k|gj@nt3pY?zL@#(Ef%r zit=h2+GQXmU~?Tqhw5{xTpqEx#V>&~*peeqC7d;tY&o-;n&Xzt2-)R2o(f>0d=Jp& z1@<6uTEx;VUFMzO&xBm`shqN1!--}{pevkB9XEqZMMa>hINTl1lvtwoc=vAAOW2$V z&N@?OaxIEnkvM-N%yAA@#B_0UZyO933?<?;g9>^U2(N+CQtE+{nybRELkqoP;)TVb zBa)DuNTtczkm3jI2MS6BEzh1|WkY~q5FTgX0fLA6m{^-!ir&Rnv~0%xhv2xVH7;uP z>K(=~u|Puyh4};A5&T06o>1(Hr}vYSP@Gt83u5HeVG{&HraAI)YT_!90Ra&4fmQw8 zz$B5&*u^s4fCfs#iciT)MANkM2r9Y}u1H-fARjSGmXKsn;Lqa`f`G3@i9_}Sp^;#+ zpA0Y$2u)8PjK;;J!7H!Y>38Kb7g0F#zK$=4uV#5(!{QW6fJ1h%AQ8cUvtE<S2ZV$w zH$+Z*RE93h)0AZE_G33ycaJFw5GNDr(>lMy-VM9ue;I6`XGn~t)NXgF?wgrf8X-#= zmd_#CgsoBx4?TA0P6DIj7>+-hN%zpK7S&3I1HvdW*#AVtlQUE4TZ9=~6e&t+2Y9W` z-WAAWP!FhZ#cY2#C1$OSSEMVwLN*~qB3$}L=EpZMTMYZcLBp|Qf-`)pMLyxq#A+>Y zo6d#<V-109@`IWfMzM=m!`b9WZR89XJ~r31$Y2l|lA`D~(D~v9RL!%tvNX^C6scMo zwO65rqlQv)h3bd4)R?6Q+co3*nLNFIoX-9ii|qHF6r9=w1xrO;p<>J;<3!;jMna<7 z2ZBJj0J$Y{1nb=m3J#{LPmbHY=p|yE(<wUCTptQO!nYjKR=wy+w?q^Ygb_?zOPDAT z=}U5z=um}<mbN4!VsZy!T<C(x5x_N8URG|J=j=%)<JCI)>{>{JL6t7(G?sxhHc5VR z+(KE~1|m<iAIR;l4=(}Ad!R8QgHkv^JSOa2JiA>NY>&A9^H5g|HAx&2c%D4?Yb0UB z?QLToglGSJ{SvIdS9tXS6NGWl#Us9=vqD`j^~Mclw80zH_2DJm891W=gbz%f5roAf zMi*Wy7{TaGWM`8i5u51_earB60YekZ1!*4#g+4~QB@Ap=@0kx&Fa^d)SQzwgZ&F#i z<Bqn9)IRn;eFy+U1ym8k{s>(Td~6BD2*#-ywuE{}PemOaM+Cw$HW+OQ@jyaL$%}fR zs0NVb6{SiM$VoJ#XoeMENoJrb3b;EU0%xRdbt(f#Gak^ifz39J@0$p%Myw~Z6oWma zly~7mJC+Gt+#rD&5B*BiQYT)=+>kZFwnC^068T-{T>Wp+eM1NQUY}=6@hNy$KH1cn zgBjxIVDZqjp8%)*VU0e1W8^Hy<naK=M3Ips0|8w~A33q)Mz&F^KA<fiuOktB0*mK0 zz~^3|gfb;HgD1;pF<PQm2Y^sElzujSGAH$^Gl3bXb-@{XI6V=D{m#fcdZ1Z~X;T5n zYReV#uqoWgmMNwr3~>mECK6S?psQh4MGkg`1IB4cExxTcRkqlXQf-f3zDR(}Q$hq4 zv6IdeG6b2?aTgcw1XqTxQ<I;Awd0X4Sp-!Mfh<8#-l1mXvZYsy9e59#NvRulRjfrP z!2Dqlq0}RfQ5TO&W|9*075l|;iWG94*)J;S-;QdGv3~E=gRiD&WDZ|i5!;FCak3xh zp?Dc<1y96xwB?llH=F8Lq}&+jYGSM3DhtTObPG3fcs<kWHhQ!M+3#E2zgWDDr^ijP zOg=klz?XDEu<>MJiXF79WrH$m7LT!Ay-HPg%kp#wfmKq{fJuFst^;Qh>)w;msn97w zM1Kkgs!uktipaPoF@cuc#>;K92)V$cj6Ifg5ab?9o*u#`!G^Rd9HqS?WU*7yJ+I<r zh9PX<Zo!fZQlr4dWsna`aDbfltMO}|nZvz9?@d#9)Q>kM9344A1&PHHC)#`Ju0$vo zxmS{G$2hmV;YN`l)a>Jpmi4$gcw#zv;GCUUe=5NeFbilN#l9=1v!l;U#9Rp4gqDVl zwSyxqj8bJSL_&yX8PUumOjblHl|F=-m2e~$jESZUrfO-{J)8j*`<uzgR;-*OOl}@b zuG~&2d<}P_0bBoA@IV;VyOQ?2l3qay?uz<fi7noz15TQ;uk4n#m76x-z4I=!;~;{4 zd(UJIqw5A?BqdpZ;Hss$i5fvd@G|({!vb?_x8x0qQtYaJ<6iUXHPJ}2Oyv02kS*k6 zS#7WL7G83a@Ht{(NR%QY(V#43Oa(<*(lS-Te=@OQdLK3&5PTmN?1_T>@eyx9q6F?A za|`?$9pPQ-+lR+pl7s&Ebb}HTkSe{xYNz~aiytJsB-O4Y*34kyC0{@ilX{j?;l~4S z6LJ59XJ1)iU+>=#FhsmzyRo=k{H*INNCkPSqb5b$y}cd;f<Zsjy5&*uYy#;$h)B+j zWhC<et!m5Dr_9WS;uvQoUT+#Dep>!J(dJu?f3R;s8>!OJi6@zgu)*B{E66G^C?m!{ zA>fFxpbl4GyKtZMdm*h+8#(xdw14+f#EOw0(gPrphCP>81{V58J$D@gW5*eqUI$o} zqGxE5%#dYSG<jP3O;i4v9WsLAcThG1NI34<3uI3<cNTZOH$J@J4rFWL3#xo*A3*l1 z@o}}3X7q=xI6@&#i*S;5mOo`3Wt)IZ!%vL@YEuwGt`>abv?rO!x0~Y|Jh}fHK2S#$ z7z62$p)3A|8<Bm*6)9U|x^&_c(l;cF@+;QT#AueDy#q1f#;Ovuk(X492TNR|EfJ<z z96-laxf~QUamWrj<Mw#^HljVEwV5bsGrpfdZ5$W=5hiGpNqYw5ResJ3YknzG_g9Rx zUBErXT@YS<C)8Gex{~^i(T1RNJjHR7#)(&Q;x(O8O?Mr(A`Bxm^y=tezxKm&StDJB z4rKO7-zuLpkjah+>lwMdC_+l(lr3Los(b?-i<grNb#oi)&;}koqobKHozPOb=eV}L zW|GU1$GLQU!uIAoQvOMs;h{{hDcQY7=xVA#igq#pHNg1^1jZ@BH68o-PgH7QS$U(+ zehs8~ZP@UXRAL5c%<FV1j4h|nt7sr?c=tH|{aum3X~sc34CC~7>ROYis0!M%4Vtmj z(9S9LcEBNS!0}nAhRge#{9;)bI6llZ!I*)&Mj6g;j>_&3_(m^oBm~W#`q1MN$B$OF zWwlo0kG`JY*WFS1wT8$;PKrU(g1F19SC9wZo9f~Vg%w+GZwC)nU}#vr5F1%?b2HTL zw0p?ce}A<{32{Iq?zb~<w#TBiKEh-K0sZSO_g>xbbq~bO+frD7TH8KC8=j#*s;tbg z6XETft0eE&#&qK}$+|b!zgwnwsbQ@iW*(6xL+llvqpV%qNXh1&jIylPq~+}-5>KZL zaObtTzmD$+WmR(Z3%?ejZqZEt>Xj)FxgK>Zv^l~~H&q1C6@5g8n`=5t2Z1;*e72}` zR=tAfHOHM-t;d5qI7j@y);;yR_qeTNIkkm1uFEHHyg_0IemdD3GrSw+k+sjtFDH+J zR05Cx3LCGOKSqiio?K12G|qmXO{}s%*KhjpfO<r0?1J6^#X+%=b7~TTr?6$i{WFVs zmwdX%gp=jjVBqb{@J3;>x0fS2<S{%eyobLM@0fv@*~`xJf8Blk_4%P77%8iYj(Oiv z4I#ABis8gq#r;wP5$4bEf~KHj4{Hx?>?agpP*HNq@|!mEwmR_drdQLWJ@|ax|91SL zt3SAW=i>LNu9xy*E%vEel~(jn*p?BpGT=GDwxd1`V*E}4<ZyV$rPZxP460;jTevLB z%CX=_%JY!BS#Et|tV^XHKz7p4ErB}r+T}hC2%dna>Nq5>)z{bEDc0}%x9CX~q&RM1 z$G*;&A`0yG#A@P>tF#^VKGHI|&B~@BJIEuQZu<DRzo{Rg-)hBHZW&EYw*tcLD{&f` zXQe#9W94*MPZo-B+^zkG>FYN@@9O};-q5<l_Fc`c;d!Qs101qLKlJ_dQne<O6G|!= zvuLeTgGkCZtQ*E6404b4boWQC8kBC69lh%(Xk#PL!vHJmQuPihXh4d&ZR|@_cQK7= z^EO0imkxv9k{G_fH(#MY0d+Q#_5KcnZKU8V)|k)`iGHRl-jpGGDFun*P@MyCY=jII z$o(rcz@_X)A~NdFABmgKZlvF1+spkXOZB4Cm|Ugj@+69)t0?0x`iqMSCUYohtP3Ub zFgr&RbR0k5{_7uhVw}4Zz;Fth<$`iKUl}Y@zc0wdKe!1wrs~&YAO`^FGP;HLlDWv* zw5%K?S5Tv+X&R5Q$IV=S@j$wuYhm1)*p0`=tp_W88y*smxpKA8o-{N1&LjPr;ahm{ z$nopu=f0j#oK`eSjW{+Xm(TBZ3_|}?>v3c`7>UQXv$6IQyzpy<r?faCEOs`$oin5( zCBDCB;o#<Hf`ik%zY?6Q)*WgN^@Jjv5>A6Z`9+&oddx0u?VGkl^Q(x^1wa`O@gKk` z^l=Ce0hVFBDACr~dDHzFn)m!a0d+h5jw))lb30&O|G6$cz0e9TTwPPAqebIh$cA+0 z`ESblva3U<hs~EM<}EftVlSNMhmfWJLN)i(-x5%h%#gl@-s#Qm9EFv$|L(MnQ2;Iv z)WGh^2D{(mLw%WASvz;8)JBDB6*QsN5th4%YFToOjN^c6^5kZ>f&EipXxXfyqF4w0 zWK30$O^-rEn41t0?8``DOMtL+69Mr{(LkNZ#xCc<$k$A`(S!aYtWSCdpXM!sG9}e` zI7odCfEjkEqSI(*@!WjoiQ-AnZOJ9n(y#iy(`9?ZRMD1Jp;UD(B*hld;uD7e2PKs^ z0(I)gbkH>jaTqziWq7R|_9z9P@QI1BrR*t5n163)%b4CEiv<+(Bx7>?^2%hu+Iof+ zS9S|@D5~zxmyF4%pq;+rX0QvR$Z(}tA#RiXZ49>1ZoknleM}k%aipF=M0>`OWVy&8 zfM_v%z-~G0R`ysQ^i9c-Ze5m#j~wHP2Cy!fFoNjQNB5!8jd?Ji)X!Y#DLpU6c%SYU z-~Towzws_}Pspq$7=D)nvwIFo`Sy-x5~L7^?*pUMcW(an?)CNMRkQr*gt?&yFEJWG zoQ5Xt;jkxSV0i%fttMimFvGxzF9j7+{ioibrw^(t8+Hvc6B~yKW_m67OHTmi*WZO* zOh&jN;xMN>lAsfmgRue486TFUUgFHbM7n3_Jpa2yS6sQ7v@3THuXyoZpDXifU=G}k ziDD~mt{uNzW0_Te6(`JrPsBs$T2vh4-M>;J$7@6(kq#2z3L43TZcG#BP6B(zQG)bn zsObcP9UgK?sWF%uXtL_(%Byl9WvGr(V&nJCOhfBHrQ6}>@8l87AmPOV#yC}RJcB)G znCg<?;sAMyq;A{|&wgSFjGZ}Gp|SggS_x$?_e;3xW9?R-0*5)%<N!~pG{UG7^xR!A zqYE?RD@U*(ojI3nPnPYUdQZObVyM*LB?JolkENk<ex~+0ErX&QI^`fYcujPb%rl6H z^a@@?@=1hM5E}V-awgHuIK-r8)6g4yPY~8V7SF2kULs;-@p94E-tr$M#uc#DyA!T5 z&w0!NtW-h>^RWShh^QABY}|i^F&;Hb)MnIxjR^T%;x=5&bb@>$9T3)#TD{i5itdyD z3+OQd@e3;bH?vJB0R)8i|E$!zxmwx&7p2M5{Y=?rPyX@yfu^<4E5Vh@Z*-|Nb#B(t z-}YJ|bDDY~-^7`3qC{SDj37qkr={uq`uFO_AsCEmaU`mCe+SGO=<mM^gaRg%zAm?Y zBGy|HpdjBjd##Egrfj{u7M*`OD^$D9Z0D@9X5FYL<z;FA;9Q)YQ=*i$=!V5^oyS4V zfa78;T|0x#a1Z!Zy&_W5`U`Ju)6}-`{6GpBoRZ?(&4TuE_lMYE66{7rrMp_XySl5A z(b{9Z&OJ@aZMU@s;m6E+%B_z}OT)bSL+q-GS<MchHoyD$FQ!B*$NDo^KjG8V8)G@` zTJ5Tr-&*xwvfril-E2jek47d!-iiQxoWFTnch3TIeM*XK{i-;}eOzUZrv(MxEWJFc z|A^Yhr!<G1TGa@%>`1Cbm+gaFolUyzmO2_frG!c4kCsi(qz(DuNiFv9BUl!Dy+hYo zjCZ+;qReX5Yz(X&bsl>e@q<(rQ`}`6+;a7U+Vn@ujrkl#`4wE*0>YmRuM`R~C&iEN zxfSl~3gcYuAUv<Ai2rQr5%NXDDW?|ciT>p>t@AlJX3?<PmN-4jYX4c;`v*VuxqT9= zJrv!|w#==pd@Wv}6`1ud<dzVxVKcLZw0z)lOtj**$QS&+G^$aNWwL!o!<$phPHn9F zTTI5iI@z!K)t*f2_*<KrYh`<BQ)<;SGN@^D8Uif#Bb1cwEQshfNIGa?S(&rpa+d3n z)gWKJItAw`5{9Ls|M-5LTlqgYz4^p^-OPzWAX@+M6Xq##NaeB0p=Ej34W(;`7B9-l zDV#^Q1jKuxa#uRpNaTt@QhgyqE+fhkWyh`4u-4J%>ps3gi3{ixZ&UEDr6`DH&#^9c zHFu?SV;*xv@1%BfZE4Mybl)yfEhoozx7*AgjgR^NY3lL%xSGarIO1S9{@3sI0de!@ z#<+g>UH&H&gI17o#P<pQp{HSJ*SrI(H)5pwwMKFLA0M>ua{F6tw{<dfHL}#@gPy+7 z@f{&_famwk_Bj(eV*mRC+z<aJ^^KY3CYvt7D~dOZSrygq#iREXTW}I(z0Vl$Y%+9A zgKwOa__Z7?9?SD5=EKNIf3YS&AW8V1^;3<;qSYn_Bt8nQ5<z^Q-|yw&S>YamLBIFs z<J99GLBSwM@;~WO!2LG|!|(HL%)bU^eM8Gpf^x+y>N6o`2ax>zUy$qY0Ahh!SuNc3 zt4^g-E5_y`&8~q4su^l3@^t54Xg<1@f1%qeq-AJZ`Fp;7p|*bRKnMlb)9cV*rD}=I zg|BN=!yZ@G0AM3oBQ+f|RG@Ty!D;~NVO=*+#Aq`q;Rq`ct+Dz^%pg>+>U^dh!33yc zrXeUX^5Q=@TkfV;=fBv{C=q9L8TZ{K(eckgY@D!u9#GgK2y9f8?I6{sDA(N*(fKE| zo|&llw4g>T3Jxp!)g?>FUqrw-XM2fAkw)Epn9No&;Uwh>EU&rx<*1G=a(%0^*YLLm zjI)f!bz8`qP3jP&)x4lRO4XnsQB8kMVLXRZ2QGNE&=kY!*9YvmOqRA<)T*e?1mpI| z#9#<^5s4ASs^|#Z)`U=|6%Stk8z3G-y0!^Pe{vFiF~sc3^)Je=B1$G$2oVEX^T=!= zJv^`00XT@=QhP%3Ku0nOJ26f6G;{-rm~f#wnV?QHlk*^+LLTTAC^{46h}(R|1<F;A z&8H~X@!WD#F=-JxhYVnK)uqM_=SoYwwb+{VgJiX{=CFB9Y{3`GDoA^{#&ijYFsO_} zL<-`G`@8|)tIHY;`8sIf<%)K-z50hmba+KG@Q}4$*cf9wZQTnmMC(;AWnE!gX;%&z zJq4u>HH!nvK6zNY<SoOREN#irAK@&-K5qW(8VYp*<teKvSc+>M!;qYI2={G!f-n)w z#RhNdihd>JAj=Zes@pw#$#%rK1Rk`&@gV@Wfwv5Xru5y$$Agc@O8af}F6c3YG$K`m zRGo#L<88!#xPMiofUHYg`eZT!App+^rmq%JR19uZ*=yXqY*cw*kfe8xSgi+C5o+pa zIMI~<eceFlg#VO#Hwc`%ulj%ZFUhk*&{U#dxV|FSiN+~L244U=<M3u{jxsICgz{5P z^cV3j&%<V+4~n#_spABD-+WB)bNWiUY)k0s07FfZw()!19<=y$#$9qUxDqi~a)PjW zkKVL`x|BDJ0z5#7KNSx_l#0tdLxq_v0}(&fEQQGDSN<CIOZ$?Q2(IAJD!DZTlnuQ} z#ZCLPJKQ#3ifojhi;&C4BQsMlA|U<U$MIWnz((dOa5V6p=2kPzo&5+E;%q+jO>NTa zR61lodkC{Lh}2Ho9f|II!29}a`4Ny3Aa+Im_X_a9P-8JtvXlywy%@}FYNhXDy*fQC zhUcj<BCN7`khpp@A7~m~(s!9+gbqRC+mJALL4vTav+8uBXY(-ock>^+`>Te<`uNjk z!-tqSaI5-Z2sf$!BIki?Q<dBzJ9prvJGYmpztd0oMF__bwks|?VJrB~+MUJU#^x*u zcCEl}`j%j*B+^bN0q%WznqDzlGa8)7dVXX46QI*@`9H7(%Gaj>vijl(o&ODDm4n)- z=^<wj%i6o@VuAXs`}Ad2BQTjChFqf%<6h&vfhzvzA@!uQV-<^^eBnC}h7Ys*cF7^3 zbPnX8#+2>Nk>$t`M7<}wyx}iL<tgXJwN!N7BX2jo-)pevZ4(n$65Z$m7jp4oX=g%h z4(gV5KrrQ=H|X<!GSN3TpLZj9wo9(cs4u@Mn0D<nMudlkCgp4|=?T}5_d99iq(~P~ zHf~!eS_=ptT74gFT~*cF$*7dj8g(v;XAz2$%~;La7aMPGIy<F(z1>#Ii+q;14IyVP zobj05RU`WgQ*#Y;bN29$4iPB#e5%C{PbsW_YxD;lqU57dtd|MV-y5dgw{ng<W&q`N zPe#bs75k-w3$-O)QoL?c<Q;D)f&<NMy9JU<urM8Rhx@1j-1h{DR^I%Tzx<#l?12ut z3NH(9os10siaaciFQp^=jqpshOf2VePR957VH?AGFeJ3Kiz(5C;F}m;Efgp3tAn%| z=p>!d0;Q%h`(_7Ttfx<^%Jv_z@heG+kUsjVrWI!mvQ|60ypP1vMe^R_V<UjKa~s(U znTUzVRAfemVg2%wb=639Hnqg7eLg&`rSCCKv6ozL&mxum_Qft=%reNPD|@!?r+VGt zn}2lxZgE{UtJSUUM}pwZ`UFaT)!G96+=3wBWio792lrPh*{`?f%ANDcN7x+%PJF~& zN)Ob4$U!pObX09J7KYK3lH^$Q;iLmAnR#cL{SVI0+m`ts|L16I`Hjua;pW>a`-(k9 zi3RsD5nqli_BVYE+rhc)5`(>#qGCv?V3*<2QNg(jO0EzDiEOb37%9#qDWF8Cf=abC zLN8UNI~vGe^qKHpDqPq9$SgeyB0CTssVRI+*!PGC43k#^VNe=yMB(ayMqsxW%36H8 zzeCnw1Dm0@zED@XPeQW0NS&DB$wb~ss;6|Tfg@QkACb`{Hv_89@kD1Byx_-15@Uce zK7<-{mQ%Yk4DR=(OV~ut7o&Fk*r`SGh%iZ{nbQ7hK)0=js$nE?rH04~QoV(_3QDDM zvnFG$KlgO*0X^;g$;4E*^8aG&oPtAvf;1i5wrxAPv2EM7ZQHhO+qRP%+sTcwncb?L znys3eeLat-PIdSByZir8F7u8q#LH3(@$T6+M3`D@Qo`T3f=Y0}fVYFN)&z8Wiw4E( z8db-%_nlcD+_PZVk_Bh%oE3NipV3u~%3%HFF<u^9yefL_H+1@r55W*=uTKyisCc;# z=D0rpt?9k(I4WhhqUX%{eq6WB+aO#)LDT{b+Ndd@_I_D8r_lI%biV$5-PFmZ<?Hh0 zfIfA_fv5{=-u|Lbn+$4Ry(LOV5Ulb#z09RKH&my9h;=vC7~-}t{>cENG66?`VF$_G zLN|Xaf|>8bUp}^|tQFPBkPVrDGTJ4G$tQ3E>bv~>GU<<_Q`Ud;sO+`(3T-PEDQ-%x zF{Ir{_LjBiQ*so3jccA)F8Q@!Q))#2x~sN9L(Fz;0q!TC;Gnc|*UUV8jfOJOklM91 zk}i#3U!4%$;+0JcyZ>AftF0=Ap=0FhpK$!Qf4b_Qc85*QID$$7uY#-A+=9CHIlF7T z8>3bgXK{!k$Nt^}tO^JCdUS%<(jg{IG-<AXrcc$iFh5k~*9Uszjm=ZO@=u6rSKL}1 z=#ag0cc50dJ!s<{C6M9$V`QZ-K)3Ga_Im61if};WCShlR7^Yop{vX8PM!unu$H~T< z6`hIm2gqH3M5duib|!|FD8UNYbJt4cfhKVUT+&5bqeK#iP#8mkQ_2|#c4vN~<jGUt zcw0w|ez$M1rhEOMetB>!U33lWq}0uDgl!HP_j&5m;WTOS3O}Jc4YU)DDOH_=iuhnk zMrw9S7Sq}D#_o2B@k3^!eDLAupn*o#O_<L522DxoU*1!Sm<2cPwz80V5s95bVhXzK zE@FW1?F*(5NmMS6)8}H4)~#dLuPb>TUhMu(%0<oCFkHu?zql7vc8Y)m3(|RX;~gBS zL;uJ}MwRQIX`ypk${ivLEe#r?nai}E#<8U)0tB<rUY2yL;ds>$mJ@AsCw0+S%Ju^} zW|}Rau6ZP9{|yG`E9%mzCU2=lbF&1&Qf)6(S9&`w$;;Yp&dfM=T=jqS%g3=*f%W#^ zn9P?hCu&#`2AV&VbRu!Un$t&M^&J{Uq6@Yjd3*|_;q*f26c(lNrGW^w`D1Iai0i$L zkTw_5*SRW$AE#cG4<fFpp}#uu(tOlX<!tA^9$ipdj*Kidpkoz%w>D#me~76jb*~<6 zi19va#%AQhI;T^|L?Bh$+4Q~#LF?ZvCDYfYh0ue%VB6<mYCKhCOTWoc))LqZ96kG& zZ{BFuvYf~0+@BtXC@8p>C`qcjNvuRK$!m@ecY6q+^qF(Ldezd^lAGG;y<1_dDS}x+ z4ekY+s-WAnAa8NgfR*w|`=qE0(e*xYK_m+K#%`bo@5*2C{V^}U3JS%lOY{ZO(Q6^K zvD-`}UqdqPdJk<85vdZ!DT2Z;-jANlWjf!ONVnTEV#bd>Mpuidj`2^}S{P77>?Ae) z{JJS9OxYc$+K4wGF<~j0MmHyy41iXETJ;a%x^@0F0<3o89~uKrDsA)oK!A5Bv#WQH z(qbNc5D?T$UAc9MoMtX0HVaQ(0aM&r&5|;t!{5>%wAafe%&UWQSV>JY<L$P`bdn)U zUI%tcCM3ITk;Ue$*WU~s;viGh*Ono)BIW#x_uCan*tZ>mvC(Zik0G@rCbTgn6KV4b zq!SFi2Vdch;tPPgb{1-(`)w9mf)a_`0pN+-vYzXXfU_nEwu-r*RH5NmD+$xf9<B^D z=Q+*5qVKRtnUdK2y(X!Y(mcY&EQVDR#cS?Rw9(wquyqSDEey9n)I7hQH0BNPZ}q7{ zqE1!;U-h{Tp5n@y!Ihz0EGP+C$50wXOYY{Z#9LZDP3Rc+rMSBcifqn1?u#~>bUIW= zF+gaX|F*n;6~r0$Cc_)P7Gn0)Z=Xj1HZK5fNgfCv-WWMx)DY%qg48u&lj5R6cj-!L z&9?zP!{r))DGFm^g!am+WTZBNl3XckrL0*|%PbPwAkpb)uuM3#e+~-9!zACIaRE9l zDQwE%o)x$)E+61R!;3cx1=m^13;hv*ez%&GH%874%hTdoY*3ny&kQap@LT(YZ#kH~ zY`OGVO_8wdlTCy!h89SaV%-5WerOePD1yWdm4I^dU1&(w1t1XaYl5KJ;}H6TZm;!f z>}$rUKFOHFEHws?ICis%$|@|X=-40`ne{d;;pf87;JA@c{zI6W$o4lO!TM2e+@qsY zWOHYoC9@}6#=#QT%;T8XarRc*mK)sMu4B|D>t#|bEEU~Vb-sTYB}6u7a|4+7`3`n2 zCE31%yO>GDH*sm>m}69ks}prh+4_v?LOy=JMkzVKps(6}XQ^4~HCqYnLpip}iBhf7 z3Q!boxMNY(St(qo#*XtizW@hWXyg<vp2lNrYfU|SLkKa4W3Ie@4!GU-d4y9pS(%+` z8=G+?{Bc&F+*_j?CVS2!8tyJk#nI1eEua-pqqpFyZoz@<VW81oQ@?~(j7i%zkt%6O z$xs7C>Vj<J#`2aVjhvM3jkt(8<EqaJBJ^Keu6@+KK%H!MW1k#RVr|bI-)XvF7n4@f zu@xK$1L(#z$`?!*3=hdyFj6p$-v?8jSlBjg@pY0Y1~FvR33VcF?L;ST*+;5jpBFQi zK*Qp!tMQMD$V6r$kDs8eIn@47<7HFA;;Lf>lZiDgW8q>YPu_y?my6fqf#R=OQr;3} zfb5Y@{B7{f;^K`su;ITuub3VS=>3ZP<a+_|f}4y6b37ZOsZZucfPKU>Czo8ek#`}z zn=Tll;e(?lT-aafjf2Af5#F(T3XPj9(Vqbhle925(=t{0%uP(F9~aQp`=+#@h}2qV z#9-FD(#|}^KQ3kk@2}b{K;)}8k^%FgnxGO>=R=xwqX0qa4l8uLXHkEbG`ocEGPBkI zL`Wb2ouQi6i@o#-tqX^aB_~^Q+D>Hz@}0`FIB|_Xn;K_YQCB=d?miQUit-g<Z0PLN z{O1HXehSw%9j$5N#!!RvAm*Bk^wo-kS--hp!*0kVcV>*yYR=yZ;c43{URx-%yhR6S zwfYj+G>^77u>AzbV@yA3;a(V=WM-9AvD{RKK5daz<Wd~Q{IujYEn4-3RM6t5BGaQO zg^FV140u{~qH%Jnq<Mw5r_pp>!t_<4N<ChjTjX~tJ2~C#M0w^OOZLSCl$8)5!=VhE zjrGg<)Su9qq7f-6Fsl$Z@Pm>EU@?>`gl4`<RrDh|u!e#U_fuyUW>EBjGRASVQ+Wfg z8_HsH^R;tH1*4`i(D@3gt`U=$K0yhab^=lrC$_*=>clN(t=U=L!``&8uh=xBphMiL zELQ!UHwC}@K_seL1p(PL#fTPV&#wzhQ`Jr}ivXWk>p#EHbsrdG_l*@3S(UpM9aa0` zHt1*lV#}o7sM&FKqIlS~*X%4~UST|;FrSH}<(*_s%DwxW4V6<W%9sg(jhlbgb`wpv zq7^;U<ho`~+^n*`91CgBh(pA6+2q*HyU*|7F<)V!sm)qkF=MxiCH)~`#4as7rAfvE z@vV7NGNo#>ZygmKOS4NVXxs>S>l$XJVlI)s3Ilwv@s09w!<Y2!!IUslc*TT^Cv=ih zs-1_-y-z~M?%dxu^FQSaaq;9p*z_wa5mQy4f6Wb_xK)1nLrMJ5j_BIjVTY}v`tVTC z?)J6cLgt<}m5`DyjjJ<&bfsiwHX8?T541Vk)zg*Na7F}&(k(-cLWbwC`{b*roDb*T z2D|cm-(p)3-siGy293^0RN0k4xt_1lvskDhTY3ePkSV#t^t<zn8qzUxb7LaCP?waN zM)C)h%)&8|%$KPE+Co_j&YwWNAOUUZx#`wR!q5E_rGd4~NCT<q=5tCGZ66RX6Z;ed zjMDN(V|eYA3*VzCI%}voFD>}M0HX{9!lu$%eNQ%bujbM7K~h3@r-df?0>+7ayQy-N zeQ^6CcZ-HykdECUi7i_yeVj&IClp-@<lrZ;l$bDPSuD*P&ea{jQ;;WiQ~YqF3+Et} zS<_wBo@`3^6?<5;rhc>EvS2`MVRM}{Ux1;BD7b1uNNgHqXgZm`%i|`O%a+NNZhx|x z^5)2{GkxLng<M5lxooF;@Vls^@E!-8V9!(8{AwYjp_Iu#-LCs|AKdUXmi;DrqCM`? zBefq`W5VDK;lgf;BZ~Gf`ju*P{|v>>SDuD{U4pY#{9w6}xYvT^Vj$4$p%-gDB@6+x z+AoU*<8rwBlC#v0Y#j=ZS7~uL_d`TYyV%wR0C8?vbkDg}M`cgb&=7{Ev3m2;#OBNU zT=_yodhTVqb~x)Mz^d%jQsG#dTzKyHLI^&p@}a9<Q2V5JT~EH#BbU&{^6eJd963<m zY$?zx>KmDPi#cTG>eA+FYcJiSfkBNaEZn>hK^I#`8;T`-I_i)0hgClW>X-eX4uU`$ z+VkV92Us0V0lVosdn~8Rh8&wzh3SGd&9AW0!`@8|1Qt`C$GJW6$92@-sf4o)J{o#| zBBa`6-E2mtOLA)zJ;*38_1WhT@<LHEx3Fd%+7;t&eqqnwFlxaXr83~Kkm^rA;HCBQ zJm2Bai~Wp+l_<X*ZE@x@ca6RQ{M9=+5kgqO$1)UWXwr#Wm+Dfu0*niD@^l}-R#~(h z#qv;tf5%PnCf8c1s{++>>|w!w8dH2LLJA0jue7L>{j+(f-@9oc%f{n-u|DWm*KHEp z<}(0|P7s@RT@Evw`*Kf$>;Ti*Kw)Hg_^(LoyY>$+nts}f%v1z5l(ub=51>Jad`7Bb zo=tQmCVczo?--049%}A6i_+~B2N?Bpd_c)&gXy-b=GRU)r%Mb_t&!Y`gsIODlW|yq zW?3GeFV56kz?mp{Mr|ygvc%_YaLK%yM;V;)P~2=o*RAh$N0FKykCuNYQlry@*ymT- zmvwO>ee@rf(~{S?L{I9pJVG(9`aj#>1?0)?5DG6U^IMC#p{H>bC_BKDK9zWt^S%XV ze4xwR3Noe4+;4vWb-218C(nr(5da{R>9-&A-}Yi$O&pyp?Eb^xctq1C3A-)fySEQ$ ze^X?UXpBTnQI@*yHam)LLpjlDBvyw~!ytf}0P?!qgrTX+`FQN~9E>3dGm-kuQAIPY zg_)bbXu;0C6FUt(jcB3N)-orP{#M1rIYI1r{{RW!wuwn4W73Mak*tPwHyE4ffo!W> z@{}79{f&2YFHY1tN^;pNq~kB%1#jqAg*evqJ8f$DQ)z+1L7lqPnr240+S?V|8w@;p z(ZbnQW&2tL6On8Q<EsvOp`u9%3>rd4$;xSexI_XqcR*^NJku_;5<WxYI$jfZOz^93 z9Th3bcU)E_(D@U=MVMeZn9|N7`lg*O>DmFeJ^tDs4nronVf?5;ikGmng9BJJE*MoO z>2ujg1Xy?JrGo&FGJ&qmNp&4Ph<i{!oU}$JOByE7bJD_8H-tbG5+3P%7Y~5&RT69^ z<H^Jc6DXp>q*M}xJ~YoMXIwy7Lr${oDP?kCTQi=&%<>X8?&tW%o8{~(pd*!I>M6pl zCTq3`U;ytj+DQ+zV;vOk#nM{4RXRd~2=HFGx7UXHvn(bVmMPQWZHXj#^P@P}-SeKX zNSCawt8~VLGAmw?l@G(t>7pah0r>yoM2)tF1G3ojplgT(R*fXiSWvlBsw7t{|Aa)q zBv%bYO&hVgNGBc*l#uIpgAa=oR^yJP5KRuhV``=<XQ!m67{E{3E^AnD!&I+&72Ls} zOm^@61%wqyokL2@P(yNF+FS^B(P!^gSS?n!wZ@T4$k^{GFxR&<8{hGVnzblB8bv?i z5m7Ok`#u*?<xFM!#;vSgG0M4^85tSzbFoYCnl`3$tLzj{Zb1wmtiF9XAk-r_K49E> zG4`DCZshqyLhK#+Xz|O5-%*~Jc~L1U1u{iii*rSrdrE5M3c+qk+61)bW2ALu24hBY zu;;n-8F92!Qx41e>l*!Ke*Oe*y8gS0z-$RzdxtnO#vLi)>qiwKiW^|@;XF?zV~!r5 zy;4(T=mz@c*A!4V(7Y~=96YMjuvHtC{tB*WaehFL47KCgsC%iscKI(k2w{UO(4qP@ zs^#+>rWIvsG(LowjS03$Sv0goAtwic94XZ;HEYc^rm%uGAu@V}E11oB(w~4+;^@U| z0N$7?cP2vN+?DL6X5jB9rYzrea%}ryul5Uya1zmTXv7B}FB^*IS=QLtrBd`e@{i^C z#{qW-@cB4&u(td}?(_Mn&<SW?%&nqJ-C~xCIeUP8b*VZ>00)%{y9%9X-XRUHpY7;U z!mIXOzIo3{PW77mWI^{oPf>wk#j^y}AM=vgdy0JgC~Rs?#m!+~SQkX4s~;zYzhLCH zc4n~y?&FLQf5Sz_MKt}O=z6gj3iu$AffcU!A}D(C815y6?^&Y)0jkB+4PLXt&S3bU zaQaU%4VC@h7`&V?0NDN*4Td=;9P*EO#I6qtci(3DEEMzL3&h2J2FK!N*DQ{ikg<S% zlD7Ix2TpCI6Q2wUfJO!dms{^Ok0C5P+?^?Azd012nU76p?gdy7ZY<9lVeJ&YW@ypG z9d?93`S3_2ya1|03Y2p7wSyNAO$75fB%+&?SU7>K&MlU|VEEvTcui;+n-3}Yfn$RR zg|gU^*X8JnQ%A4F%sNx$=^FqMgR~-XASCPzugmF33+<gZP}2?#K527OtT(dW>K|ju zza|qXhfUD<42JQR9oR7I9<iKI2w*)j7^6Pe`xd|&?UK2f&m%W@<uLj-i$7A1aC<|g z;6|1L<E-v#buUhplHITi2K|}y;}8Uk#;lfDDUR`yWkMq1-+B*th9xB|V{B>2-)qft zLez?=PNX~L3JB{I+G>X|H9V?5>d895%LsfuF$bH6pq=E$Ogz16Q$%Ye5#eQz<cTK& zFx97Kq=rHS&Yq#MhIJ}I{4~+6PzG#^*?Z%T8g$wXo<z>-iquDey=V%!t*D$h9&?n& ziD5S)Gdjdj7tl_!1t)N~I>mWBWj}tNX6cql7*D{PNJaumaY8b2a~j4m!({S_2d7?z zB_ui{LzGmt$LAM6f(@O<uuvC+x}$GIyZ51oSXwN5P+RBZ`3%@Ywu4C5Q_0@gKpEin zYp5uht-*j%L@dQritL{-Hh>-NVtd<co#1@%gf7VwdFu9xL<^h)G5VT=96OF(vX^a! z+0`B2-8!N2hR)R!q2FpVX@<xvI(?}8>D74tI~O6(EBS!9`fwiT581kfs3X!BtGYm? zengcxH?+nCtI-|_j7If~73&a0H2icx(}(l#)5yxH9Ah#G*+>jfu?=faB0A{=Qo=I^ ziDf%rtQRdIYP89zgzHf|?344A%#|6DOQ?rO{$cr&WAvbAzulfPJH%9Y-Jj9(eeC<& zgZNXNX4m_1yQNi%N??%1_p}%X@MN5v>ACkSNZtR9OM-I)x?cl)EqIrf&(4UJrB*=5 zC+GRQXgeXz^wwK$O0>lJMP-qI*-`hnd*=absdP7!EzEsndTh*zT$SO@hfHsJV8X9v zM_Ys3k#c%1x(pi)kCTiXe3aqt6`1C>B#S`BdhsI-A3V&=s4)#D-P*;S0@{i%;Jw(> zqtl(WK*@wTeiBsu457$}HE0~l$VUt90ps@O`Y-k|htHu*4FOl|@XV*cDHZ6O>vB$4 zyDm5NY)mmzHco?wd@8oo&yy`1AYu_;M-kIky%$>5ac?&PGFWV5=o|)k+TxHgVupdk zE9cqc$mw#3we)UGb=ww<-!y)xd>MG0n9TFBlzb`E_rz(HVz|zhhW#7f$1v@><AzVE ze|n6r_?P`l7J1gWV_42)%Wx-b_Y@yfmwQ08zUsa4;b<K)ux`?JDb<kn5}nRFf1M5s zHZuJ2pm|iw)>&3*&wa;=iyPJuMmOY9WwpDgpU6y2AGLOaO1>7G;KfSfbUg09&v;mN z-jQ%>!P|$14THbf-U?|I_4Y#bp)w~pei5n=w#W3fb8((M#I->GuKH=W0HwU!IZPRd zFJk>>Fq&KHWVkpp1AdZ?GOdBv`|fVpH;p|DU(^lCdHXY-3}c<F<QtofJPM8`stqOZ zOdxBl_Zd@wsdD?l|LT^qY0$iAe=60G4YUp4585%A=onpHt{gSgRUF0~gLGdeZoWKP zk_Yx(h5(1@y=gomoE(ng;c0&uGetvFeWIJg`ZByIzS5ezHqyP=#ryL6?{wPhK4nQA z__LzS=+4U9L9hfeuxTa(Lx_>?+G5H^0n=>d3CDk+Fg8+~c$^CbOnH52If+}TQ|qUC z%0xx7x0+^vMsu8}62j4MBd;j9uI#+INnzRe<P|<zarrJzoWIoa4x^Z^$wIo1N)@~g z%d}g!600Q^fsa>O^2&S$A~?StWQ>QCa6?>Hj1f;Mk>X)l{1$xQ*b*Ldpab0P<eT3A zeMIJR)7h~mVg!OToUzWL>@`?alAPce0VgP0Yj}~Tj71jM3{ZhbQ$k?c>mKj%HKM>Z zZUe5l=H@LB-ozg{seGO93f?}B0i&tNXcker+Ul;%cDFZl2XoElO1rB>&>A?pIJ<12 zC18KkXlgVf7Grnsb#(9o0=B)F>EvFzxSXBhDP;05AQn%RX4-1L0JL!s4;*u@b}}&5 zo@7H7V$HhO2_f*PWX2u5CDhjHi5YXMd0Xm;=P;)7t<9&vk0H)4rmSq-@Vay62Xib) za{^iMJMDW|Nn(vbG`#yD7crV5wK%Ii|ITHb2#IV|qO3Y(v3DTc;IbY~2?EGYJHL4{ zB*=6=yGce(*&ppDe5Gf$aP?kOioum@Bx#UHs4hgpt5sisjwneczUYb+)rHa2lD2!U zrD~&@SNnFNl}wVMe<%GewqNJFUxFaR+l}@nnd+^aoViigN>B<I6ix~yHr?suIJ-;n z=tNi(QwCASri}{BO)I`Y(naH-e@}d@gan^I!v{9?`~;90j2nuDkLY*mNIV*Cp-PQ7 zJLFTobn5i8F&d4ys&^sEyg~f||BccLUyZmbZB^ij%|7H%C|sQj21?F$eEMx{e8SZ@ z1d>&YJ4o^Xi^u~w7GC5qQuv~QM8p34EYaN;krwxbzA#1GWsVrTA#*!5Q``A-@thEW z`wXN9lrPn6^@!77-B)@a=AnRqohh@~F0#47&C0Oz3UFu`^AtKjOXuF2PRrsLhLWdu zQAc3_jY$it>`-=0hDxI7%16{Bv2yE~KO@0rfTi7|V4Tb8Sc>k8n&H|0Aw+?#BCN2} zNj!DD7&PttURaaojucmY70!E}{8BrMNbYDB4<v%EA=Kqq`2Iztq7^oy5hMYUW0x}f zaAx%W`r_<HQvUREbOn1Lv}@JC1nJ5<YtoBKHfZwv*atiNUJ9R9r<K+bpt5ko0Gvuq z%L^Oa49eJFhc#5{L^!1ba4VzM1_C?+nUo&RT3Bc;xj<l~HTQTqdS-gU@z(lM=%g|7 zMf=`mQUcn|Z$#kFOc`wk1|z3ai{ou$ha%+p`opv&*<<({h{QH7DmreT%8G6(2!QD8 zs0<9nNWHS?7f>HJ?}rb|t>~RTg2Y>K;@bd|p<=kA^fcf;L#@qKrlu`(ulO)}_H$(b z>l%)AgLG2LDxtoQJs;F)#I6N(^nQfFVKMu{y30v^9=BIDR(ogadG=z>n{G)(8m3-O z=dqUv3ROpP6;fD?b0IVXt`aYE>8)R~iVMOY$xJ_P+4aene)sMaRV;);)Z`?{>sWgj zTrD_m!rJOh^CqZ5*xar%rXEKF<s>}L(E8KVV*z{eVQ!2m%-Ql=1W>iEG-7P;w1tO@ zjV8pD9~%LGU{Z-=*KEinL>gBx+c?4WI-yM(Tr2Fh;5hi~%Ei`O)Rz_{Y)DkVBGEO0 znl+D0ka>`%qBAM1;h*ZRtgv6?Lk;&t{io{1GMhkWPdmog4L=hhXGczrXtk|I94zqI zjVe?=5#uYU$aHZ%`$aV=5=%9dqo&N#ASK$%?B-#H?6eNvswjX%V^CCA#Yq+(^O@if z(Uk&G*Hl7y>^Y7C5pQK{5}hTy!Y?kQgGK}3-GM@hNe5`UsIS6tbq*V8mco5dPu=A2 z5}cT!VB3!MDVFS*_s55c$c^pu!u9yy{)+KXgYDL>v2`7=A{-7k6r7vja^N}~+uG}| zkm~Qm)jW9jo?5+s6<NOXi0#cDC0iHMI^Ix@`f4$b5ws?Qczq#nb*~8zJG1o>)BMp* zP7x(`sm+{BGOmZ?F`DBv80)~xFQ;wej95>R=?D>-`>z#rh$%ymf#BpcW`7M{!V#2j zZCW6?#Ob^2)D|2Gx7vQf(W>^A9$$8{)#`Lbqx8h4?mnofmPEv%eq3^xLHcap9nqiH zbm??!I@z!es7ZON)Bwj&Xt&nT*ZX&b7<?Nv7AIFBoQA8~b2mPNiDYi*(6)%>_#8mj zfF#I_ZvQaQ>@}8D&B0V5r^Lw(RS#$q1}If>%40Osszbx3=QGJbtuWt!f}tQ2&4Swk z2`61{vilem6Js%E!o6G70OGo=S2F&a8U8b(#rgAw%lnBU<3-yXXPcq3nH2ImTamsG z2Q<5Hi>U~P9^{o~rBjtp+*}hGE%u6CmyI)Xy3Q)Tq1;QSy?6sfTs>lgm}+`%?620< zD)TY0Iur&QchjqMYQuhTO<eVm;2m}vQW)KyJMRh%8P3z_i(j$%CwBB!vrt%gY2zuE zg7Vp2I7gywJ-<s{E$k4=i2c3B7yPEY4>WOUm*4Ay+nf_`sQ`K%9oVB8x6?MEDTn^g zk_wMdfbS>m=&r{4j+wO`?YCcRtT%qSTe*)nHbwUHtxJGy?iCR3O0A#5%SpQ`Z}#^; zF=;)x%K80W`ft$xDzH?8VdGze0RZ@;002<_PXdd*qlvMFk%9Anc*xbLYuRnFq4>Vk z>93%rDu#t8J&%Ozpo~C083;AF`lu&uGz)WUyHtsDJEVQR<T#1zl&@C=tN;>4qzyUs zI_-;r3EWvFSSwDbii}7qSftctj3b*C|IS-PzE-JAwWiFg9aUEw7aAInER_ZVX2J&& zV3b$WPz_OO^pQ$t#VAyq*qZJrBsU_JmV*Teke+HKR2~Is89_aIXd9PEny7>BTcLir zl*kRzA3S}0zF$0(c=L7~%&0jdg?y4giE>=ejJ4hV6$>h(amEs(sqPOAPX(MZ-c5^Z ztP@0WKpnVjA~1wGDa-d5R<2bc(r7SbS=$z;WsO`kshrkAAfhUX>Jc28I{&iv^z-=B z<;T>MCriu(<SDvFzb#o#Aqzx{%a?yfkU%Z^@IxU4!j%bw@d>a8zlSveBJ@*S!+szN z&zE1&C)HHpNWDdA{>5U5zmJ(U_s>$6fftaXvB(Z*E;z!jnu<lfMqM{Qt7Rpc3>vi3 z2kl(+TTw*>6-+9D#UY5V-$g;IXDX&WtNv7_KetJhii%q>i(h0>=+Q;RS`v5jTg${2 z4-9233(44=_a_s*?Tshl4m1H$$6&cq&HqyVV(1Nzpg@Pu(Y=`>wi?74-q*Ac#NbE$ zl`cpEd5(vbc#Z2{W{Fj<=gdQvRj!NHT1#{WySvVm`vL3e{3rcI3RF!7^N~<a{@1#L zgbzniOH{#z^=PZUv7SB$jaws1Xq3tH;6{30%=$6t=j*S-?t0Ss>q?cHcXxMqXhO=< zxoD#Z9aD$?Ai(An>~c&aRcpLvCSbL7i-b}t%IJ9TKEF9iDCNwmCH3P(aS`H}@B7sm zqcwUU2Q;y?`T&~G3i@>=5K;SN{*`wc<V??o@$V#PvG{Ofk|qHJYO))O(fp!HX>c;r z{;FtH7*tbzJsn*&U@34^sQ3ysY0{e`x+rw2gp(2p4H~DGWa|PzIHfvKOf^%AR2InK zfuN$L$fHbaFa-FtGG1902w7#e^BU4c{W2o}e9ROs>+13Pu}@C+=Gf+vEyu}WLCZg- zmV`JMFOThdX7;Nb@qhac^!sb#-rnZ0_3Y`oFTp?rEt1DMf_A`)M6o6kUOC;&Df(^f zP>z6&!k+P0G7#cq$c^X84a|I|Fl-2A13}@artb0|O^18Dho|t@Uhwz1x1Iy}0`xUD z1SFs-SMB2lQF9EX1W<VH_(MMXsKX=SNEMWq!PqPBM`P{DM!LC=4}od)LmSJbAUqdb z19N>_R0cL+<!SQC>glLh>}eR!TH+w(F!JltN>iMtPpcO!fWQ#~Pe}&mY4$6>s@V7( z%@SdukraUn&Lo9Dq@@sixmLM|kPH!j#sL}tsye@72iiHHLlK{8kZBwbP@9TEHl4^n z=J<d?QX`rwSigbDvG^V7^>|fIL2R%?bq>DM)5E-jy0MlEIyQ3*s2&2=%sG|XX>UBs zj9Sr_IqVRJ58Ib7I18>}9gi8myO-o1B_<iJ;S<Vlp*-32Q$s%hs1QJNK(YnI>8gyr zF@U?FT-De_$+6J8Q}^}Uf|_@kZI5kf(~^yABQpW&9Q8cXU>)C^^*z4zkI02_{EEer zh~x<Q8X8t_XGmwhwhGlHPtDoW=p(E(nK>T}#jrZlF<0&x1%2<h?u0NIUjI*{f?JCF zAr+R9V7tAvCM!P}qCf`-;=bim@PIQB=h`AQVKpNP13!%Dz%$Q0&Y0>VX~%)(wo`FA z$@LMkFxrkAQ@-*Wq`suX{6|2amd{Y4{B-gwQ0To|P(<PRF~dM!WkHBE&2ab#ZZH-= zu|z=>P_tS8ADwa>mUlD*Aru}%RXusD^tK@{lNovwahUn-&g21I>5x%`sD^EX3wm28 z+B`dHD-yy-5Vrs*erjxk4KQu6;w2_R!+}(?*OaORpmo61EQ~pV<}Opiu*cs4fmHht z_%=~FfLqPwZv5v_V?F;)A&idaPC8K*_D$qQwAWM~SF8vtSTH9p%=~x{7jVW$t%Ru? zh3;$kHjMY{jP0BjMDj>D9s^X;RYiSpUO~aJL{TKWIl%9BL`{icV-Q);FuD?@wi7(w zL{qurJ-CFiMO+m-Mwt`~5Ssa7kyHD%HmmgO$vUgHo;5vUK_V`mh=q0pIG$5}Z~W=! zC*$$=fS&g?xXWgBAmv=}3oEd{v<NrlGM9V3Yg}#&z9*p0UQZ`aaz8*7w*A~B=0i~g zUJ}SU7G4rgs3LWFE;p%I4XeNAk=r%*=hw8D&7K!4A7mnOFIc2rS4g1QVk}LZ?Uw6& z%aR+|v7TdR5Ic*kVy12pcRYhnMf$GPf_`1QKb?veYTO5kBV7s=E!bko4M9Hu|21c# zxmYU_{8BO<e<_*&ea`%yEweGOHKy0ov#_;r*3<jVnL3GGwnGdsB5ppQ`*0eO-u(Wy zIZ<#sk%IZ8qhv%<q2kB)FDh8nF^AVU_qve5UA2!in#n=dI+<kAyXkVy;5ZQ4k&!r@ zaQ#a-=7p1!l!BYUp#WS+;j1vF@V7PNG$M`HowFELm*p*YV1L0b+RmZD`#gLAxb;@0 z&2*sA+x4&=GR#uQbO@qhIabv|?t-5SiYgN3l~T>Vly{rOMox}8+rctIC6jOEym>x> zFQ=C4WOB<|ICR{;e%mk|LP1Pn!8TU(cdUsBXOw`Zf!c)l6GMC^>*%yAs0BMV?iT2J zv$TEXZw%&=`@8Q6%^~_3?O#xs>I7t<v2-YUb{7){JwWP&BlZEDzjpVDq%nx~=rd<1 zp4Cot`QdMjegApQNcGpsN^+`sQNLF#`&*v;wtoPeOq^Zpo$c(bo#^$9Eu5VHV*|&D z{{LRHsiT37iJP6HmEP~s{{gG!D9hMwF~Iz?NzHr5!4%De<Zw;(*XMtC80%fb3@~6c zN|9?Cjl~`L5RUrd9?X(RhvfBWBI4rWlE)cfg6O0BtTQMf)>LM)$3swT<s@y!HPzy= z*Au%D8|#Is6&ZWoB?A#~gZPzO*kadva8o_CQ(_KetvK=4$?9TG^slM^)T&UbivRN% zCSPR1H1md4z(J8mlBY?N7rr0!-#Zoh_z|4=(zjZnd$EmyvP<Gt#8Mql%}RSj(Ue<v zD93%@9Ob9A98?xy%V(RA@IQ{*;!aFFa}~WYe3+P$Vbiakr$Vk=c0aPg-~Dx2jm&7B z*JKK7q)IFeMw_+{DYPN6n-+Dx<gS#KcttHXCL<A)0hLtUYqZU<NspjVePFjwV}@>q zzWoQE0Gn(mw(G(jH_=%{_rZ9LQb#SoZqWRISa|n+fBw<-aXiGNMU#h*7AI#QX4}sy z>VkStDc$kDQ@(4L?3$Bmz&tvn)#_e_svfNkaZ{M8wY8%hBOSTT&?HCR^;1nfAHNtR zzseZFp8M7u`xsQmlnG@J``GCN5ayW&yJo!hIveZEhUD=oe!^~7JP^$lOZd_|IL3*m zXOgb9zgIdMYD8Uc)>wP@mDXG}Ea<R-Vqf6cbNstVdt8`oZ8A6I7U5WVlx0rKUg-L) z_|EA%145H-gf7oZ1b5&khh&Y*9gV2)T=!_)-tBo6b|_)>+~6G*6GS6m`JH$^x)KxR zs~A_rENExT#qh;S4ChMc!v;GX;gW9Zyr`h)M5cgz@eI`U9ggBU^wvDYgrxxBU`2pN z!uBV&2kx(IpQcvBrAY2<!=p50;a5Oh;I-a*js0c#bMMowr2C%L!js|D;@<y5Z8h*! zJZt=Y)*-)DH`)LAv<?5`wf}~X5_Oy3k{jXsM$bVXQGC<7WoJwuv%ZENVzpL)TfZM@ zD4$mIgeVD%azrBZ`(;O=P`Ia^n$1sKdKdb(gL@Zu24kwY=0XyUZRh+jp^9c_an;bl zhX&dKrLs{T7o_{a8-X(vLen?gP4rF@Ak2m~3d*)k(c!UO7a=P_D|wMh0@ElegeP@V zIse+w?g?>lD8@ha-KofZnkaf<)U(uX)cE}}qNAM6WT2{tZEVCaA%b^3h|k7+h8mkZ z4Z0sb)7hxFGM}F||E2%7gXXmrVct=2T1K}`cfMb>Dzu+JjhAMTwb68L<;Ee%l_0O} z0`|JcMJr0Ql=leAcFnhF2c)9^jnif|Yjvx&fhS(pLjx*hgwcw<7Q=fBDebOG)sVC5 zyj7#tPOmm;n36W8ymCxNf({X^1_~xt>)0u~;-il<yfAvBD}s86<xW(u5#+Fuy1gaF z!2#PjI+~jh+10H0kr8W9loE~omuc?YB-+?IXq|b+G3WXnnKi6q(}AkCfb@v*Q!goR zFOPY_WT<BGDQaL(E}7Cs9ty6JO5;_t!~QOu>_R;f=R6qBw5iW05U@_!HS9pm1m#Va z%n;5V)I$T3KwDp6AI&*)S=bp2oyE|OQS6Pgj-HA21{2|J_?qny4;~PylUZF&;b8=| zlW+t*o@2KVhP=0d;eKllqO*!xsN9|I#KIW_*md2H<T5jx-{jV)ose2RCg!Cdyj5Zz z>1BXd1?*Fj94e_E`S1v%@qp9k16jytpiTCA!PpBwyef>E#2B<BP|lafp}gJRPsDUq zaBXQ+KimGv3+~`<Z|kfhJ3TRW(oNd>V;#$FJeup`wAHGK9$0lZ7~){wQO=UxktA#x zRe3!mI$`=#5?X(pUk-om3D$>O9*G{phbaAvY+uTE4#~eQ&u$)RWvr>#m-!&Zm2B(O zT3UE$4Yii`h)$L8OK!Gbq^cC>J)z-hi(fe;%{Er>M>=znc1aZ0vb2D|yFdAg{O(Jt z^i^;5)QzY)qFN7=>)aFFB<*Gt{CqlJL0V+d8N5|Ac@N&YeS_okmfT7_7hKzn9{t8m z*_;eJLrOY;ERtrGQ)%{2G<n+4`q@-HGvZ2q=Sh9$b=7QE&w^QM?;sUduNjng`Jy*B z)``Ok=5Xx2NUNdz8g=cyXV}H46O)3eSLR3vMq;9ATUeMhPsaOma3okyp^VW821t|% zEZmE8(1BwL#1MU2k4cI=-XpDwuX8&wAw3D}2b>h4RVt{3@_tjjJcL;hR@OvhM)HgH z3v4+ZJ}EKP@bUM2rZeu})CRjJaCJGh<xX%{fM9M$&SB-fi@VG^4?wxiT@k@w_v&EY zyzl{CGy2N=nr|3uG9kTx=7ZF$H>8gAS)9{pwhldljX_GsQEm=3z8J<<b385o+Ga0d z-7C%@RW#XYpNu?07s{kwZc?nZ@sI>xX5FFh_XY#^y*)vi+mL35Qw7m#C`;hIz(sT^ zbo}!Sv?|8cvxe9BuRQcg!w&8=8?cX}`V|T`rcFL(EalBB7V@xDb@7oN$S+vE0S8D{ zbeYg$oi@Y)HV!Pm7p%F3X`TU>jWpJ^VO)tL0zyl~;t8#;zv$72U_9GkE{pTqtMMl6 z)ERi)F*R5OlCp5KWP*f3;AB>Gq~bB-i?#Ox6wI@9O?a#MXoc`gNecBvacZ@}BKS7d zpgD1bAt|J>1rgh^VUnGN#F_bbf9IlZgJyb?CwC%cPi1v`TtKf!1jTsMlXto&ET=zh zm;T_Ml~<{(5;l#^UF2^w<yHG3B)gCL30Wj}iJZR^+|KYbCJQ@dlLszGi}P(Xv=n^E z>Nlj<p4DxCE!vEyy>{)k9Aq^;L#gUg=7Z=7hQK_>zdSfcHvla=wViEyq@DWUMGJCt zIJBO>VRgq0u6l@;b&G%UfbS=u-$uCJ^aj57sH~AK$yRuGi>I~lbk@TM7ip5}cfC=3 zn1Qf_=E(^-xMqHone9WIlgQON!tWO_fEp#3njPGxy;+}p+f#;uN87FAXVw6a*B4U& z>P*jYr*mch#BB1h9XfcPytA5>?tow$5&(lE&D8^FNe%JNILIUs(;x46m3gc#iVx1* z5ZorbRF|l!A;_Yg#ysvc+trw9_(<J+JYo#|%Z2)*8?Mbwz%}hR9D+VKm(O#mNZSyi zpB4Y=zd)?wCYUT<FOXEw0imbh&M>JZ<EnA5CL;sAqQ!&qyuC=zVYU-EaLEjE`6$({ zo%aH}QD5+g_%vnF&@W`>c#8j@1>IE6f^ux<+qCB|tDFuA0D$`cFYD<UyVw~1Z?);K z-60!{?~7i+TWx(0X~&jT03Xb6Z8zlG{Q@NvaW1U3#YFP9xn2L`Q*6AEdW<$w4`5@R zl+2fiPswGGsVbN?5H5-@+i2sVh8z1-ULE?JPSV%v15E2I%IpOAoTO&DQJvDTka$cE zx(#qhLn<&C8)Pmmm??>~An$73XLbM(hWo)|KIA^u&ZRSqt}oh1Twiecc8*BZUC!U| z(i5o3!(5U0atBkkxPu<XB9kQC+@l;Sk+Uq>YJDCF#3t$IythjA^tUQ|AlYX~hE}C( zwJMk@trJS~4OFrSz!ipzmx2N{pYgrE6||&yara@XMP2Woglh{2I7jUXQP%@BMa;ft zhWm(UZW0M6tF{#zIT5}Nt!+~9ei@LDVqu#>pV4`8wj3LG-sn@kiKn6&r@4Gdb1Ih1 z?X}SR5#6m<^rTL!kw(amB5-hI6*XPSo-v880Y%1+ytA29j((aUdmV?)0(lY3756R> zU0-4~UNN6h^l}8>JYE7v;Sh&w{`^|xN+BSURch#{2Pi8(meZ82b3$X5KkysS-zj;C zq$~)tp3!s2n<vP#^oVWy7NgU;=gYI++#R(^MYnsECy{qFmN<Z~T&9N6$M#X7Og7S< z(1Jv-1&bkULxzW7_ZU*jhEI$-*i?Ot_FGXro065Z2Wa=EbWUbH2C6T820dImHus2W zc#WiUv4vZS1hjV{SM?Z5-XWkCIY<J1R0GZh6WL&ve8|@@D3w{WZYo`aLi!7p*DF;6 z{%c=0EWVYXQr<79>eG`#$};9l%UyGKEz@J<M$W>GdfCgo;uA~2sWwA7^s^JBBbamJ zDL{kz56CeKd8n<fn%6M)0ZwAhcZgXJ*i&@Hk2(7*GHiD|Z9gu_4S?HJT1yQ88so9- zN$|fI*RIFv32s-n)oGeMW^HE>E4Y|0p|%a*jeca*#sv(4><84ZJx;JPF}Q2MC0c&L zP$5>x27;6=8H=K(Qd|L%B1eW2bcIhw6rL_Zk)r47ous+$ST&XvZ5BqzN2E&b)^EK? zI0|)##LYSfYy@%0_#I^8w%k{<zW0?lr!n^olaWK#2-V2Pf)~Im2m4JZI(*m)+=T+A z;zY$pY-|QtF0lB+oX#DPXRdJs6mReWlstL)>{smV-_k-t-L(gT^kDUUqeYXJrwMF6 zi;}Jx25~vwhUlMJ@OX}{O%tVC&<0j{a9h|iWyfbi#l7MAMtCPNWSrBuCo@e%*0^*L z1|Rlepe8f9sNbFHRx%~RmX9*U>}vkEaECh&#d#jpp|(MtIV_i+oiT5rt<Zs;GHBh7 zVKrr;fg)lV)uN=q7e^&{u|@KKee|l)xhW{g8)cm1ngi+TABYuw4=S;vP7b5-PG^J8 zEHlcAa&du45)9imd)5D?n<#htMYVSu{n;B{co0+XMV8Kie93=Y;i9tY)K%|g8N(sV zap2XuGCGv8dm3=y%)=_D2U)WXEhW^!0aLT_0^G9Uz0r>KfasK-&v8RcG)&Upy^Yu1 zeg5YR42M>bb88Y1g<dP=&SpYgRREZSKHWPYf_e?P@6)XFmeqB}DMD`9Kk~CUCY$}9 zemE-C6LkXZed<*ZpfP`xCl=9AywOrS5R3i0-MfJvAmdaV9;kb)RX|ZL%5LmiRJeYY zFxADO^Q2M2rN2xz8V|FOb<Xy@w)w*S%nj<zxFSpRqj=0Io<S*Af}o>~*VS&&X~c*U zPsQoj1|wX4FnZu24OwC<nIo2BlJ%lyR~5y;`Q_rxEOvUh_OIK$1SYK%^R`xlXF!I+ znuv1tz5fHR-r{6RPuum;u!|B`griq_#yAs8h$9N0>4DXY%7wPUsOvR`UF3oOzlQLV z<;q1w5&(ek3;+PC|IZL^<7Dw0!LNC(oVGX;|2|UNJA05`k84UbB9n9PQja;f`lNAi zZe>g>Cn_oskvPaCa3ww%xjozM;J5#A-H8DQL`Xi8K5@M*$aEk9GG}=Yxfu=OzGBhh zJG!^lZG5%}gMEI1?|OZq^uj(d$!^@DF|qr8{Bv_~FahU<Ea$Fy7oLLY<@YbMW-<Jf z286&OW9(2R<M_%r)v0&SVj~D_&1rU2K|8sqiz8;K&^XDu0b(hf_R)I6shkN8k>JU2 z#R~~!An9?0iBKMtnl)bpk(z+F@*jyVO;fkAMnNws{QIR&I&infy>X@)bSQwTNj6H4 zM5+_nWj2(#Z3@M#*sF}n)EiOPanY~wx@rg<xdvB^S>;W1TG6o(=iK4~?OYUx)DGE0 zgQY#_Q&#ey*UJZ<xd%ZNpOV}@tyK9p80Z}|vfW@Qq|_xEJ&u3MDI{5xfq))K?lcz> zx0Q;F8IL0CCZInrsB+}pQ<A=V@0PuhPJDnG?q`i_JTz*Y%RZ=K^HOOc3M`R>Ox_Pi z6C{vPfjxc*A~yGOrz6N<`1;kaGr~1p?b$*3GKXFWsU+Uxs>jd>zzAJ1p@^v@1SYLl z2WcplCso0xI)S8lBn+0RGMM2O86_jo@!b<LX(bHdbXma+g~ekaGD9RD{%D8o+QCwg zIsByFn$O~AcWT3B)+|5)v|>fB14$NXUu@H6pr4OhS=^jRRxCC+T#`Ib*mQfhK52j{ zH=WjS#grjP4gm6_CO{)g9Q2d5p}@GIRl-GEDHwQZZ;@^Yv?>ki0gf%)yfL`@D+|ZM zxUSO(=eyb04f{$uY`WVci1Hul|KP!|+8S?e*X`|#FR$v|Cv9&$3AC>H2@st(SPSn5 z%Y)PP;R{8%-773_mi!vaYK_sLcatW)qnGjpQvgUDCJQ{kvbDMcZh?ZWMOpoWKXM{z zh5t+-zuP(<MoM`M03{kGLwh4ZW>g(jpkoYGG+Ac`Hyyl&wTF*E{=Ct^?&qDIUh+ss znWP6DzrPWA<vAg2)dH50Bmf^mz2k*gyfR4@e)sYkRxiQTA_`$x<5xT4i}K*~=aq@~ zeC&UJe<PS9eEw?!J+bQ&>32QOrw+`o&w7#%j5Feb(-ow2MwXp?O~rq)S>TNzQU)t0 zauKsQgrO>f!a=0Lxg}KBsKauCA;a++6fhc5D(F}T*rIC!qI~U_*ECw>t5*=7-bIEz zN(`bzye9QlHNHb`AF;DY1!&PXn(fy&PU4{PFunj0ug1`0<@iK^7FZ7(#|%sAB$A5^ zHT`w-E71i~GCXornFj5&A^h`I^krM(9%QED`ihdvm$YbnKc=5A|7MDotM~>+21W2Q zH)_{Ey8k_}R*&e%#(WRdYp1_2GLrsdwnuNUr~mq7h2c&g0D%W3k4AnQ5UC6Net8E2 z5D+BQa+46i$i>jNh6nA7_q^<c7SxnH+=S9iAqWC!dPlBiyU=#%1bk0>1NksgAs?}e z+m0>HcQmF@7QihOwTq=K=9SDPYc4g1*G{;hCjF4k!xNvbpBUr>wcgZrPcj#2t=Z@V z!OMRYfOCxpaONMB63S^2a5s}*;ry)%Iwyt+DD?JGjA+pY5x^UcAFHL~no#0zDew3c z14?s_%X~MENf-cwauc>7Q-%cit35rPyo~ENcgjXQ63EB)#S=hmy&A%FgDYg-C!dZp z+cP1@j(|d6joO^s_3C$tfagFlC!1rxvKDy`y*a{<-57fQE}*hTKuiVJ6<X7yRYOE* zVK_H1%n|Gv?>B>dub2ChcbpTGG-pi<Yz5lf(GJL+9Op*QYQH1V+cZ0chx!)~h>Rr4 z9a!)f5ZxIeiTaNlcvC0i3>f)Cu~_hzr<i&n!G=4f_2a}Bu7Z4nD2y&f8=8AhdrpBH zQ+_hvyUp{=R>Gs~i+rNrFi|*RF0XrxZbFGK2Q+}iVOCdA)r5mp`~&W%S0f!K2Qk(U zJSc9)fZngFA+0$e)4eemDOcq225Sw^Ep+!kp9~OqZHa+`*hh<;xg{!R${J{!#cGr& z*hY3WhQ9Atk5h&Rf{`i&1;HW0nD<Wc9O0_Z1ZXtk8yOZEo(Zf0@ydAY5i|Pn4591q ztJ9xM9}O+(UkLt3D1MdA7<>-Q8k_;{M7KC7$~#(n%780DK?(j!p=ZRqz-do&sE+-B zZjdsjk$T7Q56iTU@xdaiZoY^twLL?;|5bT&Y(Rg0iyaWg)92%~|C_Vf4{!Ys{B@q( zb>7@np4ju;>B(F{%*y<zrMVGna|70<I;>4~D4VJfcGd5(ywSgq??k;q2uNq^uXRu3 z-H|-7gcWDn6ymFWbS;}e%~?d=^6(%w8S@(&Lx}S9aV-W6{<RcMdt_x(r&+=$%P7B8 z1eq{qU1xDZcMQ<hi=ITC{_#IhPgf5C1pufD#anQOl_>t>MvB3UjKT2h8U$39Jvx!d zpW)5hYLQ$lg1CW-<R%HG#050OtYXy_g-;c_Vyfk@x?+a3-{mR9i;{K?Ed0b4Zrv#3 zZ{|^!p^-`jrob}lS?Tiq7>s^!DIUdEP=66k=@~O(mW@rnFPy3HaRVvCN(l18V{l0$ z46~z^7vUwU@1jK&+f`n2bXWQVm5}qQ&uE7ncR!ra%C0LB31GOEm=I`BG;En#atZC+ zrWINo=<dda!U~WqDdmv`?eNfuA;3kWXfy}3mu|YtiFK1`pewi(uHW(eOA}t2UkzLO z1vKFAio`VT+f>b_0NLA|M!)24`e#JpcJ7kG7{_DmHVXLgK0y}mmA(v;(@XZm`<Hv6 zSJ89m(s#AIyhcH=UIiEnFsvJ>##!TK*@QC@Vw-CWoG($zbC;39>3|(P_=O8jo@^xT zn^re#Q<V)a3+$a0EXL<l{&L&W+ITl;{wq>qetA`J)NE6Gmd79J_ZO_sY#J{$Bm|#< zp1cCSV^^JW>W9?|y`ZQSg72~4kjnNX(Md*i8F&IV8%xnpym8Y)@d(ELV+4U~SDo0| z&XXD|ECt@MYP&#mAwwA-qk_T@=`|<5I^I<Fd=~m=xs=F$YG(ty{G@>k@7TX}beNzN zFQ}=|i8b$N+n&#vS_3jzBRMW|MI8-o>?`(vF?LQ{f(3~ZE!(zj+qP}nw#_cvwr$(C zZC7>a_FeNfPxB9%>zoxCu{SgfsVCMRb-Gt!#Y)rZJK1LiRgpG%S=Bez53x?$wi%2@ zgQ{Wo&@BNRGU0=6x)KIRuR&v!fG-2y9H!VP%KQ7@>kl82rfsJ`R)3$<JM6=A<Po)D z`dlzz*f>`w=$88xJR2r$l0I($sLl!^W(3Aj#wV!8Qt0aM2pEnlqEOW-O7r28<SYSO zhXPY-oC4t*05I|d*7Y$kCBgG}ipxTPnrXe@x}&R)iMS;VdsxrDmmDAR*S5PNuw*Ho z?$Jt7{$!ILa=J630D;|pD4FqfFa_MVX*ebbolrirD`t={gry=M4F-~bwjtJWlfF=H zy$~y$uX2*V|NARBV`UA0Keo!P0T9LVP7k<<##=X;C1)22ZZDr3W<}BNQnY8cDp;u; zhf<zr`Fu7q@aAO+uh7I+WjMb<^EQfYv>n6N{r9xQ*Vf!K;hiE@xmv3ZnR(TOHL~a| zDr&yRnU0-GKVim;W39d6e&`F<D?9HBqrNi;sapQW9y`EY!y{`X0ZKwKisou)(6N<D zbERs5Ne(c0UV^SDW*_E>KumiE=MiugkAUFjyH*y#8$clL4WDjqH@mNS2#ymgTQ6n| zQKS{>r|g?P?yk9g;LMgfs0xBbmozel>k2LIotC=UTIA$o+$J)m3Mr+@s_NA`lUgX` zC`h4&TH_(Ia`FyvZm`C(ig;PKq`xi;OF-9lU<%<a%tO2m%Js$pG!-#LGUfRg`CXo0 zD}(^~zRz%&8g{h>#@9NlY3mb*47rE6;<3*%4{80cOUwTKip9fGJik>i{sRNzDx%qQ zHaQNl{E4!<lHvjKAJM?yc{+`(g3U>+XC31RiNr1f#~uMPr81|}_B-BlQfg(@ek!4D z0A*RQqA|`9O{k<9)wt0`CO0He@3dxA8~DFDCkKTFH%V`4eF}+f5S(d7=~5aec9;y@ z(=26dA#_#IzB?VZAu<M62*dUBsZp`|ypK1_yJTCKt)jhEZ3!8^Zm8Lq^5RvhFlr4| zB}LRDI}riRs}XALWie{P(3U!*D|9WDOt&1x5<NRY=z3A;?WI!vm66a0F-e_XvBS=N ziIGA{1<(0n=cWtL1A74%mAKhDz5KrJj=oM_u*~49cN#<mU79D@fWGZM&VCPncP6IX z@ewjNmcgWCZ7r;n^+bDDy*KkT`I<Wm1F<2Dk<*8XGKMYPeMa2$gwV&!$JCpncFGpo z!>8IEH(H0J9K0Ndbh=87sCr9pwc{x1)YIE-E}HGCu4EGcqO}d9g4GB0;p1sqYQ0os z0&{IbT<1%a%jJ^wZs==d2Ni!9f;wI`Txk3-JolnD<*Lyy*2%E0!jtCbx0jOAY_+rs zUPpVoc&4Pd$I8q^*G3vL1$=wHn_?3|dMa8tAd!6Luac(tb9MW;`e5b>LGAqp3sM$7 zQTE4sia<m&i~Ik&m8Lxo`}O;^J^IJR^2zW4?1UnwL-`13X@#8{pXaxomdYibb7!11 zp^^1+0FgQAkDX!^6wD>0t*X&As=KvS@Y(72YmL_L^a~W})pM1;U<ld-RKxJyoWLqG zLX%}^_?M3XL-w6m;DKu&%WTsbv=-_)@d<x>_G6B+Yc%Ec=FmBb3~dGlvk(d9x0doi zjIK8X{;`kmhMJgvq}p^tt+F8?QQAb2ub8t^y1?i>XEXslJOBB5u}=k&TdB1~Mwujj zIf2kYGo_eUSc&VtJx$l^Kjcy$?r*4Wn@-K$W;6`EDNvsGmx&X~V*83WBal`rxjL?t z=Rnnjr7maKa)os0kuEen(HH}DlbFZyBKm6xmi{$%Xns*^pdWo77GGX13$Xek`8>}h zvHtlo_f`B=tLPD72~nnPyH2K)`AIG(frym<?fT7SrT|ZlNdjP&)_+=R>THX}t^)c- zgD&m19B>X!XvYI7=-*6o%T64R{Wrpf>KG(LZ?9%t#i&Pq`4Ku(5CxGlzGcl>+Kme2 z#=|+Nqrg`f&ed7_i-!&U`V+)nknNB(M(8>|pCQBylyLIhh1%dsGBoeh$MI@u*6sn+ zne)C2an@^KNItgA+S)qanR{BWjZF<kuO?M8X6mu-C<HtU+h;SXb*l-PGM{$r^mb)T zY3(LU(0)t3_U>jQB%u*tPvWPy8vIyhYE-5oH_%j+>R`x1$Jw`vW7siZ<aR4awlSiW z-{_D2NzVbGlAma#aV;;NOgE(a$T}=Fa3RL?^SAt(znA-hx3|;ZvZv^#-T0n7iyBqF z9|u=A$+_D@l7ei=_u%8FbWF38-+7s-p^5IvuDUy&u9RIm9i0B@iIK@D!15_ITVsMN zuxmGnW#)vBFU|V=vAYgFqEP%ygMK!gYjwDy=O$~uR$Jrb0ip1J4xNFOuC+CMdAd11 zXs8K)xu$IYU0S}WovyorRu^ho3+Q|%1tXAR@pwTa>b%$DHQSba-d;CXpW~XUeB)-B zpIX^1v3oh+!)>njc6Ytv>EV5SVB)=~#!)^WTRwrnIzWdywcqPqXl<|=4+W*zL0B)V z{F{TnR))L6!=?B~&liHes~d(VLy3L;S_|*6mo};TLrGKjx8V$$1)ryAyu27=FDEKA z0}NnT&v~2aUS-^>dwJXys`l9(LDGCl<DR9Izs<{R#cfkyy3*__0kIHnU#YD%CK-iA z;w)}7?q}%mKPDaBhwbEB?60jAV!Fzv1L5}8p%+#w*FMf)a_XWPv~py#e9EzfdEK!~ zSv74lOZ$fS!wwGb%^hJyb~C8K^5yEOf`8*c^|5pcTY!igYU`^E3B9XqFkM$bnl}cz zf6+*k(9Do+b*4f&w4c^ii~pV;l9MwsbRgeL*P38`KDY@v&Z<#lMz<Zd7g!qsffH{m z&l}{jkX26X_a&I%&;H&iNt53OFVVyr8Fuw&Z&Hd*CW4{g)n;(ZyZ5dKkc#a$Z+uV4 zf~x%G<=)<F<8@5gsI%wX#3-hwf4Erq=~bOSrm{<kE7>)zOHnsII&f{fZ_4R2dKj2` zXd%2V{Q%?7+kD07#{(vAX|RsE-RVH&&$TV=19+>6P4Pz=un+OLMH>_TH+U=Af^wxT zQ4Q0m7XD{mTfyUYuS3eKg>poyZPne<0Uw*gVAqYn<vrz-fWbx96S4@Eo<zY6l}xx0 zbs(q)jyPhaM37%G>Q%V*h8o+TMQ^Z5&iEW{-9D$xl~rc{zN8}uozlr6xQrcQs;88; zq=@)lYz+dZy$ymh;(X~ia+#9W81$eZEi)3KD;COS`6gjGmv)VCX}b$Vg_cqnCO>lR za6%{}oda}y|MYI{s_Rl*;q5=JfkU<9l`qMrUvKbqXrbD?5f;xq``Sg8y=LJ5b0@f| zUXVD%zicJr?e3}b=q640$XVjYU$#DTmYmysIcQ%$L603|=qOC5<_eAK)ec#`v%%5Q zT|89pq&Lx_@*_~U8|_5PitDcQFr$|GPz8v$@0Irfa5g1Y-xrm3Vj$8~#zlrR5F9-8 z?FC~b8&%~|WvaRT8b!H0Bz1Uu&-2xE$xbF1Hu_wSzQ%{CZO~g!tyh~G*il!#pIrg% zT004D@ytXQo8uQv1BLAR{-c&%XwDx!W=5KOFO=8X=PI|A=E>0k2&}vv6J^RFI2;Cy z91VYF5RkC<pf8eZTcIq|nVOeD2M^rBJ8-ZL7lSKKm8#2^-8Z|Kc+si0(kZ;&x<%Ne zPs;q|bsTMOqM!WaE~(uHY}-UctG6^~ata*Fls4m(?}}eVbrFn!;RVVTv6Rl>y6}pe zdsu^)jAE$Bqz!BvFkhTN@rB!0L(n_>I3iJH<}i^)SiA5^K}a9Be~pIBFaquNcq*Ir zJr!Pc)n=Y6$2WU4frG5jZp;+WNv9%QQ2m`S9#cp?{E@kr7PP<C{zmRm4RP@r2jdAU zJOOyC3vsqV6k<P@^4WV=Qfw34_PBl%r_$AHaL)0B^Vbr5wT2HufDd9=RRBxGc}W_N zw+$O;GI(f+YgG0bELOEuF`);|M)FaZA0KK{b2b|Zcz48#@zf&)bC{xCsi@8JJ2#+8 z-=h`Bx7gDy9NA+a<9SDs&D_I!z&N9aQskKt_nJ@dFoY}0jbB(AX)g$!aR~a#=@n5d zVFz{Y?jf9$^clVz>A<~!S~oxLD<vk*u>=rZt7>-z85op4`A2Z?Nab_+L&xTEEMKi% zcM0LnJNVqbrC;`F0uK%KHPUTUt8~7aTkB>&>Ilxi!?lQE+-kv&;Tcihj(+A|f_{fF z{18w<4cg97aesnD{)#P~zM95+g|{&&TD{uW)9vNp2GiR;l3NN|C`lZ5@RYHd#fF?r zdF_7b7GD=CGU%`6{=)DK;BdfJeG}8K(fy(WOk687kk){Oc78hCyi4oww|~#2WLd#X zxN}qQyJ?8V-l1`NdKJ<$;WV*l8uqkk9bi&O=@y-^C^v9h=hS^&daUaar5Z?`sJ`U+ zCJLHLJ<ul^hf~TkTk*bY_UH)Dy)Scwjq5hD`zmLzjw>;&JaOEc*&`^W!XrXEz<FHT zzBie@b5&>Ro8(Ow>~W6K%8uczs6z{w3w4gIroL+0<uk704gO|d9w$(A+lD55T=w2& zDtDK7mH;SMm+PT`2?ylEJ+Gc>0#m0@)7ZMa$EC!!L=d;cNh~tYiXN(-bi&1uEy^SP z2%CL3DuaoEnZp6cD6hG6Lmh5iFT-j|C@YM)0gTrvFKRr|i2*R>XLvZa#l_F-(j!YG zIeSPC0-CEdD&8g#XaN#!(9gkst_UMZ=hifW2d&zn6SJm4^YsF+(mqyM!U2YG-)X9> zR1Ff7HLJ4aYumE)&I{R2H#9V(;%OCWrVW0CxP|%3IU<%7!DoDB30y|&viO-;tiCpH zTglNc18Pm!%T+mL5Z=V6@*0&D>w}-PDr=|uq!-m=)1`@7@GY1hM*O^5(+2VL%AiM0 zu`NRLz&*ay{IsJlwjwe*V&>p$P0pyaV|11i)`0miY{uCII1fT46KkhmcI`P)iWp(r zh1P%*hNu0n%j?t52LD+c0#DiYK%Y~u5A~B1f1fDm-;Ev+WPYJCo92MZjx7GIpMrl} zV%Kz(ZE{Ev;yKz;`3o=4hn>#hb(yrUScx!5I+9HE^VUfvWl-@;@LQYKoLU`I=oag= zRi@?4IgG+nQxSFHjVoCOwBem9*4UxW(kp|tLiH?@Fgs9pF83va{FNmd$wqFeU78U* zEvOPl5bDW`YW$0L!RcX^iMMsjL{yy<TN)2bl3K9zKP7|>NZt&}^^4Scd8LHo=w!m! zgz0^&^9s8VcYhvab=pme&FPyyVV7_2__qXhdq4Lx#6KlJ4F6^Xq;m1Dx}Vy48EI=X z+A(TNzOi%Um1xekq@*yn*tOVk)di!G=>)5c3Jj*su?yCzFWs-iRP0wOLcAYdpdo{- zFf9RavD54GB0LW_JuNj2_z~Pj060#ioS?JkPofIHm<3YBiUN}4ysZx&UTyz)sa|(g zY9iPAk{iE0-`^WZgynU<f6&V0dq|EG%ks0nVx--O$`3CMc4N<5=mU{uJpAk35qDOz zGpx4}V^i^>+Rl+1g$n*eD+3R5ApGLP!GVd3`}!7~Jr<zLGv$mIq6&i3A9Wt=2Q7L8 z%r*(85vB|3=ergdxD?B9vNSdW4+sT|Nu~4tgg~c(=i>Pvju3YZqiMf*63Gd4^5(`g zb^Dm)70#&j<R1P#%ipbWd%|0)vuRcxI}1FYztPC57;~Y)wq1GPPMkY?$=%!GX;inU zSB>`&Y5n~w-z{QFkH1i9X8ilT!gI+_w!tBzac@rzm(+b+<5EX$O?T>Mt2&Yj;6>rI zVj<_yU>$JR&B4V&|BLol`}>ANq3yY>U!o@dFb|(Y%qy7R6-aJLxYfvG2HID#O?YBp z)3E&F=BsI~VMFm~fo;i{?!mvWhh={~@5K$}%zUHHbaOnYfCO)oy>SXD98sGT4y%)B z^ff%U7G%o5QLgH@2S}Xs6n{vgT2hv&Q?8Tl^6;Y-4`k3AmQAtQtD8Cy%9xkK=~#<I zyA={CAxQtN`6%w^t|aMBl<XcZgCt&5`>ek-Ieg!v$$sKVRHlud*T4$Ny@{bAOVlgs znXmEmIvlIQbdc0AKpM|+wImMAu7qb#D|aNb4Wd_tj$~$8ieYzj_U<38Oez*NOu9{9 z=;~#H-&%G@@<$P=sPRq}s^)b@*!%i#TFC<2X%BqsB+R>MjTV&#6x9BWuuW?eF{5Pi z6OZ=HX$!<Uy@gRd(bPu*d6G>5JiFbjQ(>~&GF0V@Hf!2Bx-9H8x-94&v(Fa(q+6Z2 z<}N76$Nf4WDT=pnTiqa&$_^a7X`679wmN0@ED1mx^Q8pH2-7bWS%()|s#O$*daqAe zMJb*D?bud+yZY2UU5!fHqqU#tcS;wvhPGYi%A3AR`ntS9B{ffEBJ76OUTG|=q_?E- zw|&!K)NBe$wB54Wp0l&KxPd;eNbIH8PZ@`68KU}tb<^-q*s?zD1^FMASCT5^A<%Lz zJ-80-ec69Ax5IUxmB5~$maYdahC4ABPB(KyqnzeRv=o;nehi+9OEXUqb>`PArY}i+ zl#d`;{);ZJd-4`wQ=U@#QJ^>a9uaYZ=N#{+sbTaJ1algeHPkya{TOU>9##Fk93B65 z9&Fv59!~BaK5tQOr^_*vuNvE+^%GezAl{xy36C#6aH<@d&Dpyb7F-X~;$Eu~l-)BU zd*d~k{oU;9+x{wJj@aXEU3y2<%@;>&sGYsyg~ToFB?G`*O8)4>7f5FK8orK45vyhP zaWCzjh$SURT|wJR^b!HtZctZk&J_is{lRl<0pDM6*r_qycuK$U`IBlnYhK}&ePKJ1 z+?~QT<Wd@${w+C2>~do{-=`4}P|0i?VaqgcxhrBT3rE(uTRi386puSx7R!7c;V%Ax z^;OnQJz*@7+6zxx)pow`j?Dv{Vppe`mZmT4lw%`hu@8TG_P!SUH>e}I7}6R9ub!$f zTZhB-^WvV*wf>)fSCLKRZg>8B;i{9Rni{H%KGtEg>JB!C&!}SU``cBzXYJ6}Ne+u( zky_$4s6>Nb$=iL!aiBCr5ZSOz<IQ!xx(0WJOnk2X^uZ=~e`*hKX^Tel07?V9?n#PJ z?@!v+67K;|$@wxt@MmJ(7K5C^2#aQA$sHG?#U6SOddQf|T0XF>PUu9GRf6tL-jQ&| zE(KGDdGlp9YqwDB!USn3;M9GmO|~5p+Q~jwTQpoCV*8*#nR49unx2rDeRR?X;)VmP z{dej&_~2F>6|Iy)ByY*f$VKc`c+1G|*-&5?@SySdFI3#p-p}9ZpWmuAs7RzYFHq6+ z94fbsJ6yLPxs9#M>(J@R*L7|mMOo6B{?q6yx*HvVfm%2Y1*vHb{9Q!*CgnF1?7AUu z+_DAIvDnCj>6w7x%AJXSwsiSMtbob;u&K}OfA=rN2ru$qIyK*=X?J9Eg45fdlOmnF z)ByvGQV1izf-8PqRFTF|)gtAaZ<K1dn6&#STT#5;{ifA}uG?Mo=hX93sp9pnAvP$) z_5v5$9R+d<mKcnsyG}a$X5t<u+z0z}B8%PQV<CkL^_^h6_UZ;uc1A`#r<#m?w`2t} zqZXepmo?7vhF+;|PKDlc=xqkOU+AF~4eCqP_~Y-6qbnglS)!mFl#w>xL>tijl|<77 z6gd~ScBe2qx!PU!7<J%<np3B)bb&VPC0vOrPWOh_-A3n<XrIaFM(Pwe`2vyL%fUwM zZXuiiuUauy&ot)8;i!~yrR<=aShAigkUS{vi8t3Wt%K*>S>$y+a%#9@c7tZ_0i9VV z?GIhjT`83wfk4ojsXy2^J6-hXab_TgAR)nxs|ylbiq`8es{%~+wQv&G#HpZ17`kQa zg%0TrR6eLs#+<5nyp0e@%jn^CsRjQ%P=5hZGAO%kGvjs(qy{wt6PE3?nrcIf5+bIu zyJl740wZkS%6F#8L_TJhSLv|P4!;E2`g9(X>tAWi%vLR{hT2hd)z((()r3ZSOVweb zd9fiSW|Vl}PRrj)qKV9Q^B(8Zu%njqt%`kEJ}bawa$kn8XxnwH)yP$tLOZ`5-(z`p zQ-of-ofa+Vr6Np@qKg$c-#^Z%d=O{l{b?M*S8$o&YF&iwjo|n?1J_+tyCKF(+B!Cu z%669u>8#E5g_F?i@fQG%Y8|;Z(j4wK@qQE<`W;$k6c5MiTMar7g@8Ea$C=kFdJ&r& z?K-FUX2M)jXnim{($H%t9Z0J3<EzVqu*UH4;j^h)`d(^V92B2_1xkq4Q0Y;p^R)-q zElV#>@K6)1^_?n-p^p+K!#wSbyTXvka(+)gM*lRn&61+fYy68TzU)$@@MY9XKdDyD z8+^jc`(~nuU3*s=Id$`a9)|P>w|S<>0hetrrf9tG*OxZEMoP111`K+5U9)wZ-7^R{ zi<BRdc^Ymi)`SY(sYaL2)1##M=^EbSHM%dRw|*AF2<@c)p-B0S);1BO)7cdMHkCaw z<TxJ8-B#(GF#k#0i$F4GtN9pud_{i9O(2F2pxA@~*dPLc$;$+w`>?;nVO~+ax7Zo1 zGo~TSY=8x?mjRl1$hrtYzdTrcz-8<yrIZxs96THiFzxOhY}zvzyWgSa51UtF(DwVm zufl2-z60hU2tcmXvjKNBnCVKpv}$fqnST^eiCEgY4rBJM%EaV8OmV=NKjLO#*k4YG ziJ=G_4j4f`(aFux*U=Rwgp~ntjSWt;7|4h7MNE=)Rn+X}Gl!0lUlT+zL07Y&-JtfE z<GE*fz-L`0{#?v#P6!NgRzj4WT`8lYKdV1!)$#tk4R5;95PQ!z`7~O=n#+F`OSOy$ zw)F^WVZWCF#_`G^qx>6DfTux&EIwN7wL_>somF#u!vB8C;WJ>XGS-hj&%XcgjW4sa z_m-Ii?WYd-d=t1iTK#Oz)_vQ(LbhIm%h|10d!U-up4IR1v<Gb*QYX9(7lt{9`T<Lr z`(@mp!V^zv8j0<ub|e|3-m_|-uk+?7<nxy27rJj3c;~6h*WVXSREqwjk@8T4P;FoA zs0VXJ@4o9|p~@tuvRvy_cT}OcjKPVKeg=cRi>amCthv)v;a$0TMv@JePX7B}J7haa zd8Ae}001x5|Gik`<Y4>%)li=Q6pOy85l(fI8w(#ZJK=XHu1)`)5O2@+Y!kOy8}#Tx zf=J^illS_X;>W$ZF2Fwk5K5DBD$JA_HY`}NVts^jPpOis?5>GwPaJ!8MK+xJ`$hFM zt>WT!ZK9KHJXO?c_8i_71{r%mA2M;qN$tmqGaDZp+G;1Vn9gDG=#pqDUBn^uNuV%u zO;%iQJa^|58)%-IO_iD`rg%@4nGIIpzsD;JmD6o9Wi`h#L462M8wAq57OPOFCl_^j zeocgGl9R$;mHBp4#ixXPt%9DKr=}(Qc<Xh6lN@tulH7ZlYlaO~?4D@5_l-fUTEZv> znRW4Tafd9GRI85;L}@I%oLoltnvYa;NkEz-xs39UtdkKfT*SP9dn(;9&Ovns{h++V zb0XKu^$}D*(|HZ<o}=c|L;Qg96GvS1?lviDF{cuZtlBJ+TG&Y{yDqDSHhl+U;D@MA zN1(DMJeWBstEvqXiFJi!qMB11CE(@sysIYCdQ5X7s31FyKeMf}s!gEgssl$RDfgrY zVrsk@Ubu+=ws|@N89fmGmb~{|kAcI56&p|?+$9|fQ3h$ur;PSNPW<9t%SWitKwsSB zO)l;jszTXt1~!N**u`ftU;vP;^wEh!eeW*FDN_WqX*iZc!rKd`O{%v2kPiCOeiyi6 zS5zI)!x7)dZXkrLUvyE{rKth(hov-vNA0P>+pGy0&{+8^_MCgTfM3xmJ~PaEhX<Dq z>BN%p9iwi<p_Rax4B=2c>|81V&*6ifaA^98hm!0Fc#K{kGUZlyw3@v})*b;iNl-#c zMidaRcfPM^E$69giuEy<=OAIH9G(R7a@ECJQc@#Vr3ON%7Zw1lQylt>g1TpL15iK& zVLO8+3#>QH3iK~YVc=rkHE_?TF}@%)6N%z9g5JmlI>T!VSSVCoGg&T@!z)=L;)y2I zg#i&cV^uFPqLdPHO}qQU+-L)tf$EG5;N==AI1rPpAganJ^^}q`P7QFTbBiQLPmDPQ z={P0}uL!Ua1`<$mOrA+5Gds)cG$!LWWRdL6V%p1!6CwguKz~gh38t>VLnOpIXVPS? zp!$0XfUoPOx+z(T2s~%T*$P<x(Fj6IQS=_Mb5B9JK;ZXCqM4`y)1~hwlXnx#wwu`{ zI(;S^&ARqWTqiv;L@HPXcw7duxE+U@Om~-d;9iLrrR4*HO*8IaaDIN&XE*9B{ighW zn9qKJFCldCo<scrPt5NG$6{<jq9A|3Yd}WHtOO3F#K`pdS=GZWy(mw>YXt+_s3Vvh zW(+X-e<AlaNlm)Zq~|Bls_==X^iLfH(4@DbQHmi!VRl*DpM+>abhA_hV8r3(3m~cV zM9Mc(m7Rl+WRq(IT~=4|+U8{MNyvuE2vQ=BjKkx=_8!2R!{nTCP#1_Kld#~Uec*G? z<#1>w1hlRA*$sBU8^+(f>+{vq$sBnj#Io%{N9~fln1kSQ8cZD+Ec5v-h9O3M6i+BI zmIO_<AZVI`u=H(G!3o|Cl=<A-Q#pZGLcodkf{KR~p*m52VzW?WmlM$m0(qhhsg~Gy z<3m5A^Z>A8w_xXnt%`%oWqoEm5tn_m`@4Ty<d@9+U@N18lVHl=O{E<QU)H^fuOv{2 z#YWqr?yW@73l7B6Fl=<|rHWizeno}`DCbQQN&34FKAYkXs@UiJKMfiLDAHy(FgOP5 znWBNLt)XCe3uCt7UWKMZ_(JlB7N-L)Edk6zv(8>A1BZSR*RSXA?^pfvUKMy8^F0m) z3?+x1B-Lz_&el*la4-nOn4A#srr<u1f<NQ42}89py#U!XcveHcgE1zEID_U7Sj^AL z%&XV)V}W#+qyS_NxRSz;zF(HE*y-T~Y&Jp?!Ot%SJ~;bnVC3Q~^!h&UA3n0!fk|+T z@<|AH3V)5gez<5w;RZJ2_hAk{0FMEJv#!B!mdo7vBl!8lh=!l@5{{F|zT<=+4`(i( z-1mGX?D|D@Zu|l?e*C<C{;vGGJ{>isg1uo0@|T>miRJKvX(jIk2IG;tN?AoQ86X4< zXBC4{FDC04Blf`GmyG7C*9sz}kFU2kNi!LmRgyUXd&IIK!Zy0^ntaaTgvqf?EA*=q z)isYhZ;P8-NwN>_3^4+iV<+7f+={r!pGdhFG4+C3I}Rma<sVlC780MD1T^OA@@&Z0 zG;5RlF7{Q3;Chr`a>yxW`W!^bCq<Q2T}Vbl{U&RwN(J#2?Xc+&feg`GQg{%}rV-s8 z`m{*h4koNwhzL(gwC_e858rzqM8WidpN0_`6YjmP6$dT<;qgI7f>PRnNqQ(wVnO8U z)QbcdpOJ8l%hCQbRuJK-W52~Q`jL8wMvgo$3RyzubPJff$OuqzIwl~28V?9T%LN8# z66Qqq?=Yhr0R-f?NDfiF1^_gH=|uoI2*`=tAD_lTt%<esN9DtoZGT2*Qi#Zc)cqrF zg5!D3V-jBA0eEgNLCOm|)p*x6@+4~|F=&tB#Y#k=4NEpDyxlM?8zztLmJLwFaf9qj zj;7HTmoo(PB<x8<7r-w5WXfsFOiV7iBj^xC?&u&v38N-KlR@}RQdBfoE_)MQph&YL z+o!P?G7$)aqJdOu1hUD85DcDTdf3`#t2<B2&HYX%*%(<mF*K%kWaGW0lDFK>AJW`x z>t|GKROzywx%1dvS|m6Dr<bJ!GoCtRO#5$=HhFZ$M<A}gnmqw!e3g0WBe<*pNcGxf zbr!Gy^hGa~0wLEr4Vbyjm=NFRR1fx;A1{%)|4;;)TdD+a+lNb_Kn7jG@U+5y?UBwX zBJiAIg3?cepd%4-*Ydbkk2gTHwyCsbj6-iJ{D9((DT;{;nN*>B_89shoWDS3BIaI% zh6}>&nFkRk!=5(+fOcj%-NB@uOWVem!ZCv1F&(?RQY6l=n0PJntJ9U3Ti5kiiFpc_ zn{3`?MkV}v!^v#EBvj)eQx2bG2GH?}H%E0K9WF7m&R`e+-OPY}D>V+jxd-({>>BmZ zX~>JO(x1-ZHcR3gYdD8NtByPLV#?uc6#<6$V3S&$P>DttqqI$0{K3$Om@t&WhCUl- zj}uW!;G8q!WArV@9CAzzFrWbwcj_Sh=6RTt&+GH?j>@9>ry1<p%zJgsnMW-y`oPVv zAp@F9o(&$3Ad(g(%8B9oX9%R7=AmLRu5iGMeU$lIOo0<W1}d1!^F^te&!+MZa}tHC zIPrvkg#40i?hkKT6I^*S?+dnY%2wG$!xR04w3KsUx873%eh?)Vb`u>5$u0ovgi?Wu z`9qk=O)<lZhcE=E=AQBflx6p%=dcsH3vJWB<XynJ=EYxqYK9-u{!#`nToY`q^f-p^ zFJTPW1xE#X)hU{^;uGoCXw|B{=;N~8JevYl)vpn_q97>=&Im54SsGwCG_W5)G!qi< zAfNY+i*X6A;pY($r;=jda@bN1PcN|E=z2n>F?aU#9VIOa7f!*63XTJ`HHsPzkYzYZ zNW58Yyw`9?1gOvKYnrqX2A53HB9lSY06_CHtbLEl1{bn?Y?8i&Jmr}Rtn%k(<~e^0 zauak1N`u!i$l9<y$R3{)+@ew%*1@vkvrt)3)mtFjyH_`hw&4rQhsKFnthV&-%cgEY zLUuVIZo3ygo-eWg<3)Q;f-dx*&G~2PBYFwmf`C6er#GKo#hM_=^Hr_8fF7=j(!5<m zkJA_j6<}uFX%oAuu5^eQ*C-k&!9?#u=Xbs}rrOym4+y{6`SQ<O?<&Vii^qo-Q7YWL zaJtzKv)4@@gF~FBC-iJfDbOE0E9S;DYRH^|GtsP=+up4-B3(=GOd^J(Qu{SmwAuCI z9Bn9rh(@$U<q(0g7*7tMr-mQL6J$`UKc{uE<0O`AT=e&-l}LJler%>t$;KHM)Be#! z_#K;J5@}<eg1&Z2^UX>Wt5mE!gW~Z@RP)v}@pk=zWiu)nO?=v2Yv|<aI|@G4`_i=~ z8m7+wLJ}1CXW@Fb8w*@zkUZ$NP^68YLuuTUpOtaS>v&CVV-R0iHksA+D91pwcotVW zx08%wppkehAa<c@g5FLK7gNDExNH?fw1M^pp~vC+47P1TllH0}n6MM4wg9+)7~cwk z8Os;M+u|@(x;`KirnM!uu=xu>b5M_HJbuJAJaeME@m1_fpCvx<A%?M1rh0F!w?Mpg zLjR+iL=vE0<n-Fr&7}&^AC5iRPMS5z)@0H2OMKoEcnj6x190da%yT6+t;7O*Rv8dz z|GX5&1LD3msr3V_J-q-TG(pbI6onPkKYL?dy%&}KB;ZUQN5}zm!j@?7Db1qMQtJvk zVzM)oTh}64K08g90o&etgdfS2JM3D?mCXxi5>?|b<5#4wO?HMg$8D2*3K$YMK8+s@ z&Z(mEZoA8cY>~4J1S|83(B5xnUEQZh;=69(YU{Bb#IFES5$24f<P7piijU3n3TNmt zU^Lb4xGx*Bl(;g}w0QoaiG84B`ld(Rekp<XZFG@}DU4=*1|e);_S0EI(AyJmOu>Iz zgTcPaUwe6<0XDIy^fQL|r;0R<tWrVq2%$c@g?a!AT{1oz;k#7P%5i0uXwTT1{w?EA zqi0*Yu379d?%AFGghDQ?GB(oH0Mp2`$q1dEPG(D5AP@XQ|HbER!PcG|Z*ZWHvo#W7 z%JPn}fc<b@c)LEH?`yjonE(dYeU1Y%yG|aCq9jqilUOQo-;1k`JOF{*6XrCU&#fon zMYQ_4dM!qesr%}@Rj6uYN*qH-P(~djic(*ClN-_r`ViKKB$XTrpV)Sy)jh0bw5sD9 z<14WYp0ced?x-a0IA*G|)j3iHZCD@34KyXA-Kr)R7Y@jGW|1?|>pm7HJC#h}lCs-A z<s+MLf#j>$H$^UMm*QPJ^|Uj}?jgS4iZJ*^<*1<bm;J0{Oc3q{#0|zb=J=Z^uO{+Y zFhl|x5yz(IJLgmQbY@y+@lmX|iXVrd7AVu@Z~$dyI2!xMOfGT&v$EP`4>QuM<TOXR zm07PgxUbIEL8s3g4q$=P0x)-ZR5N{tbjh!++m+8a&?zdJlm!7U^ClRx!)?UeZKJ%v zeWOI-CFC1chhH!48+={w4G$b>1xbLA)ReIneR5*qi&A{}LX)HX#Zg1BAuZ;a`;^s9 z5?s*@784W~(+j$)&5R)7Ur1VZK+|0Id~9^qZHGb43Xn4gO$TpQU+UmXJAL^BpBVu| zMzj|&0YaCV0g|a@A3hlGPxGbjNInFPZ%Px(;2f{2W$WQlMLLj)Zi(W2FEnBL8t%Y` z2~uXwKycu0fZt#8*G>!OaX`=Lddd}_!Vx9`(Fm*D&hp}T0;LYqBX9TnuIugBuk5V{ z6SBnr?8H^&RF=#RaM%B9NuHlKMfYvNYNTN;INQi72)Hv%LpPiP5RV<AXpffb_v|9; z*UTlWj^atQ86Y0hgs`JPjD_}q0x6r&jmmg<ch`JGG+=`^GxKl$z{fGW;$&Q3nBhMV zv0uc*o4uG}De89w>i(2@`nN&ifQG$EK*>S#ARZZ;pniQNs|#i+!{RYC*Q`gnT|<k4 z&JI9)p;YUBV~yKmwrU~mquUT;bQnCVjHFxARJ5Q&J(?*Y^!I>~y7S6p9IL4#x>9K5 z<^Y@KNw75Cb2uRmIv?<Fn694DeVKQf2-ZhafUYoUx10~)kJuTzJI~0sG^Z#Eu!_E( zo>>l_2C2IbCs3?51)jfitjg7rqzbr5A`|i-vFpm%9&;GC<7`FH7DEg9dv;gdY#yI> zi`5jE=`+s`zjPJVp$nP!IG>t8CEWMkfP=slif`<j!UW9$Z!by+D2B=^ctxkSyP#;G zq)XfJDJ{MI5w%!IJv7xeB;r<?^F#<e@-<PU-SMsU%SS_%+PjOh$YQbiqRM_+-6!i_ z=IrH9J3k3uR?gZ|awb|vL=N-Q`5`_sM0B8~lv`t0l5v<wPZ6)MZGUh#PzhwfjuJb_ zefNSbL^04Sx_ak=1w<LpN3?Xm!Rpv;)`u6~gklR{l6Slv0g&Jw=|eo|O00OMtlUm} z%RL5ESr(MpK*R8Sper?UlSKQD%U#AoE;1-pEIf>ag2g1|8HYFH4bYku)YHG1I5R|V zB|$iQ;<Q`AM|Hf`pSF79Cq54+6BcZ@b^Ch$55H0S-I7MR2VwE)hbsLrSqEra_Ui=B zi<}V43`YT<s86M5o_a?>LtfhX(eF107DANyCf1O_IzirQL6e=tE}*`=5_T^frPS$} zS;1_{SX7Ydi24%=iGsHV2G2bSj`~m$vU3SUl0)uN32b`Ot8UOMOJE-1tOph444Jo^ zceQ4uzcQ|n8*{3LJ6?XZmD{UN=(YpfUJt#ruGWxj&J*m*m#|D&E3TBlXj&sYGxnaG z8LyA@TE<8)Zf?XKo}M}_m3d|W;%Sn<pa`;MZihgpLYGL2aSmt6a2cV0-kz3vgg28d z>+Wj9f0Q$FV?Y2xjOR>H2CuWuO4tkx1{Fezdpf35BZ5hEBvaEXcF@4N)(-!&*8Z^6 z8MnmgIc%+@;k0+@-S{%|fHP=}L3%%@Eq6$>;#n6YAAJYR&Na0VgFV4HfwADvpF?4} z0vEX^8yF(+2(DAc%%btc-H*|`z}Ib>y1IzF_D-(><JKcWwn9RPD|rz5!;@i!3?VO9 zY@NYWYN_rWJ^B7?KGf%cQcBL{FRd4ed4|HRQwOhMXm6q$G*C5{ZW-4jK3dh%ctXvi zA?bxJbD@qN-iC^=Al2P)p#p{wR|Lmi>|5{Y@N_P^;2$C*L#iC2;TkZLJ8|iXxz~H@ zxis_5*_muTGT-&ZSTEr*c7U#KfN0?}x2z*c_x)oGrmMQ5D@iy3|5j+-uvPSb_bc5) zey=JC=&rv@3tyVyymmmV;F3}G?-(_4qr;*emf1LULgbZG``$>VC#*%sFW(VZwj=!J zd1M7X8bC2~2!W39tNu}O9{uUqu{+BIN)*hZh|qlfYFE0`y#Ha`jRPpV#B50Hj2L`+ zyW=m!3uQ-mNu4r(#5=f{x?j0sFT?-3U4Lt9Rn{Z1n#B%zN94^-XIS*+tw0a=`UtXF z{%HA@-;fbslYjP`*CdDUL99G;9KCLx&zK$9<xpe|QxtQj(1YA)%-3OzPVrR|EwbRA zwZcJF7xE4ckWJJ!6mQ37D)aMfvUb6+PNMAA#Xg5HgS2aneci8<*>fV2e~T%oVp9&{ zBUQD5h`RCZbIa2K)8nHbk=LItwwIerlJYkt6m~wG>hP7pyt1I(iNH?_j@0+|BLy-F z&i!ghK~$eJomeTeUsxG4-Pm#;D}O}^&M{E$DVwEYs2<d1D#$C(7h?NcG~T`<VLPIC z6%{pS8<_4S_WiLl!iQYol9v2@zN!7Js+#>M!oMDj)E<o5gj%q*qm|GM!n|DdJonsh z;BuW9L@k>(2A9@$73E4`&utL?2R^b)n<adBk^i<9_nA<}5@%9ON(v0y-SnaiHy<@U z+a1Mh#}>S4ljKfl9zNjZPIx?Q{2Hu9LCIK(sqsqM3sbTb01SgR(r&Mnp4kukGL5zw z4T1MzCrCpU-KBK8!sISISGcVOtrr*^PMhfq-0$}uQ^a*g>nBD`kJCsG*SH?N=<>P0 zFgtXr1Ufs|mrTccu;2n%i>YdgLXr_4!k83(Av*%!8OfIjcdg>zw@AWRNh9+nqm(xy zHv$Vl{P(|jK)N}na3cSx2*SMo=m`Jgtk(S>R?O}{Tp(=gq^;J6&u^%Z+gJ+i!nye3 z8`ey@!%pU0OFU$9N3Paz;DkTJIHKhMo?Itu?(YBcZ;70_8oqZErv{DdPe4*hCAH3* z&B|3x!Z+{T<P9wRld;MQtQ|d_?hSma26Wjf%`W6?e7M{hpnlAzt2)gB5PQ%g7`>Fo za?IW{SK8&!cI2txMD39`%|sG(^pzh1)v02)z2}NwuVW|$`<D^13En42)gaAub+aW5 zkY85<?S<3u%r@+bS4JJpitTV!BYJz$T`EE&g@R<2O+dalec+u?8@3g;_1EQFlcYVU z66y^RX&eLEHgt4!(U}%AKxt*~_K%kl&|rB=mx4-R=<@X_(zqE|;94}@skIgijhX%S z>#nxzoCHB51sARIe~APv$L^BwSFu>8w86MltHIus7>&jv6iGrAvO<l>g4BDMhov<F ztR+aT^1q&9@q`a!{&nAhc^Hufn-4vJ|1+7_9}Y`K5c3)nqdqj!Y}oWo2+%URjnYcc z-c=e%^s<um`&zrYjgnmQYo<T`mkaK>%h-f)(mdWW7qT*xLP*GPS}r9zTCdKDh*pS4 zQf{&n@1>v_A;o+ROxZ>x)zoe)H4=D2_EV@hPL?Y)r}Ps{B-)X`E(8h;ioOV<Efr8^ zDk+*ckVs?qFal|U@u`qJoWk?f3IDWX?}5M&;LR3l{rr-Yn#9^>_)XUiLJ5O;Mqa^B zXE?6{sJrU^5gGzaX!9F0q|&&FPH^V3d}sB&71L5&CieINKl3g5d9ZaGomH1?2sB<p z-f``<o4ounGA6irQ~d{K28$+15?==2@3Qxa6R|1Rj|A~Tfd>Iy3Ghpml{I6do1@7H z7)U^6Ak5sH1#r#Po{mkdX8Q@IGtW5DFS4#0M4yubxChJ*3(qLAVgap#2lv)eGzeI+ z7nYC&TeLn|dqbAedyDVO;21NR){h(#J_cuCz>Nm9>6e+3#_~a=0@qqL3~?!g{tpBL zILR7*Y%jmpmw$(UmL9OCcb@V*u=x0bO6a(N?d6&kg1xawbj)JDyQ`Xq79slM)!M`` zl)@n75t#6tOk%X9^-zSY@9AZ$Ouhq{vCrI$`Uc&6N;l~Dx{bIY%2}<Zk-jB~&E#u{ zYOyerE(`|7J=Z2Tplo3iRIty;{aEap%t14Zrdv8o`>O!qyXl5)My`nYEzKTcHSZTf zu3C~?_Ge6nb7Pd0?L00|LVjUrX2}l`wegQ1H&*oZ{XB8WD5ggdXI`&_m={nIua(&H zt-ey#Sx-p%@v}k^db_P%-20co*IR_-vt9syp~tNOKBCVer9Ihb<_z1|=9FnKXM%Xc zkO9c?`FlBqjE>8}V}wecs=;3eyeQHX&E834r@1*YWX&)wTq*nap`^H6R!{~fzC>Ts zL}{#0%0-)z3(YD%oB`m++l1zFfMtYazr%NcLcV7IVD$RmQjYgy@K}PreuX<g3DG=u z0R6Un@PJSluwhBQqiN<P5vO}abEOu=4Qy52s}egG$#g*1z6EgjVh?EmWVy>AInsZ# zA;|SGC0Jg<R(i=*@_lS-Ioo}2kZdK7;{%9&v_5EeylBJKq7$1!<slV<;Rynu0?<t2 zEt1?I5Xg2<>vli?vbSLc<KJs1NCo&2v#tepax%orT0j@{hDhH(Mf7Yi0LKjgpy7vT za#CP+2LMS|RMLnxF|-1?8tKX#3?UQ}hK>RNvEq|yl*SOKFyHTM0Re>6;M!}t8yGYo z>|H9e37NfW!u~xjls7}gh~-VY+QXGTTcQARhWuc31#n!`x{PHX2+k}&r)dkpFnILm z7=(yTKqkYp<0e_7l(~Soi<}Ju1<Xyr|FiGx*)`>trkVs7E#R!fiEkB)I5MtNH`Wz% z%_&*RC`+kM@Xw;n$-uBT)fk*ioFm?KLlETg8FO{x!dJ0^82Wv>;0z%;fM)Eg-o2<N zd<@PsxwcLwAzuG3X*0X;Mv?DQrT~fM2-z@6_Rw^)2t6{vLS?1{u;rflNTWR#iA252 zLg2%=dh!8$jJDtI5y2iMg?5w~6kh5igj+l~;hQ(65S&2o6P*`7m`}epj~jkCSUufo zIW95QX|{XO5L1@Wv|=DsOCvE;^??EIx2kZy2VyT$L+*2Kex)L^eyub&KFZd*+c>sb zj*d*8p%BZ*Ac%`FMr1PP(ktec9QShRmn4>x2S)wasYP8&1%f?{=R|Y38lPIt`~@`$ z7j}>i%#49Rf+hRGnted2@ErBx{Tmw#%it(xj+}?YtaIz6^LohX`~|s|>sS#?ob6CX z06aI96>wX?*yu7K2uV+Rt*%MHK>EbDwzJv0TxI@*p;=mdEo_R<ET$j`g_>gw5_8cS z%cEYD_7<{?f#!NB7%nP6AI5JaUfwKAeLjv&<wBTJ*QLa8DNGrLOGsr~_Bvgvr1R_h zXD^Ot=`4g*sxU4H>biGfAgjD#N*D3)t0iQ-fJo$za{47U5>I&JIYGRY76ezmriulD zNN`<+&6pW=vbmH<yGa=gCkYTK8>@-28IgeY*fWKkd?biQRTISCTO%sjMZu^nf={nT zLA>Jvv?Oux)`Rwfc}f89poI%!Wz`VSlhAhVqAbM~bq)8vz{>5ugGOLiT$LtqLFS$+ z*P!_uJS4vOgyVHg5}Zos=OWpc18nHvIKF`AhZ{LJLBi~;H3ZQ~Br3P!HUc~q@2ea! zl6jh`o968NFT73Yp(*j6KL0O9HTjft1&Ee)qVDBM37e#-K~}Uy5km<C&QM48idWM@ zr;S20hw_WwmJcdy4sRsIo6a%uYxJm?J0KOw8v?Am5kHH}ZvYQ;4IUL@d0&GUxGk}n zu`qId%HYuOR{aAw8$7g|YJ;<fEWg`4=JuIbHUpfn8n9XD@n-g@-%g-RV5mw<hJtJd zqWuSr6Kq@e?fekHU^TZwAMq;dHndX`-i5{z4${*bWEQWlG0wpfe?ncE2z8V&t-W^2 zW)c10Rm-@Ta9nh-jIrl`t^t+$<q~oe2c*Vr6GYHd$1lbo^Z9g^KV*F=sux(C7M+1p z=03DtdQt!fHPu-80p3Y8EHW~G<itk8P}cbRRUoUGdbC2cFz^80ACBnxdw$lk?1z-L zM3-tG;1!}e$9{h<i~Jky2?95turtp$F5o$|R9K7R%Ii?FCiFkNJni0(F9_xE8sdW| zZ^7a}v3;2S7_iTLioHz+d3d#6TyDm%6lrY&dRPP0^?}T#Z}lvC$UAr%B;}KOD4E<{ zW_R)!4FD{kIM23lPr*T>H-Q||-`KFZpm5I=hb5M!{t6@TXX9z4#YF@7U&OGNX?g?% zKp8=i(qe-91IV#f77apv8wvDc@Hppb9NUrn;fkB?8QwbT!b}9$G4p}$hQH1WW3UwJ zCrS28m4U8T0A$prggGBrg!yUqXU$-J%b6%A!T@_G=B8bt1b1e^GW|VD;SR$@_1bN} z_8j&@vMs|3qrbuNyJ4AO?;1Gl|A4SshevdSk4r|7*@*ML@D6dWw1Ums>srG%v}9~Z zQVuW)kOAuB6!z!2;#P3eFfY9vXtygpAO(kPZ0Xkaz&JDpern0VfK4Kp`?V#(VR1b+ zX|ZYT@DBwPI<jFKLwGL8_$cmO1?4y3^BOJ^>>NU+*HX}#i?&NAC|4OHEkH!ELd2;@ zuzV~4<dx>@$B+M~n2{B3d@!SWm-GN1tt^D=@y(3pt-E~Baj$$w4M@^PA`ThKvMiR+ z{i;?bW?-+!$Mc85G-9>0E^1F23(|DYib;g<;az}a1S;W|$7n>&)3fR}7yKYRoDv{Y zm3HLLq0f#%IPl@K6AsPvu29D-T`-at^b?B?XfEb{KHX1wl8p}KZn}A;fP^4l+6Q0= z=Qfwd&wR7DOf$iOyS-uy)ew^K9)-ktVpbs-yP=vw@?qi!$AdFfODiQ_|D0J^KUI#< zvGj%~182f-y67D=cj9)B95G(%5E{B+WHjlpFM@RNZ;M>ZeeB3cWH-pPG0c$+EhJuo zjTUHr9zQFRTv3odGXEBB4CGSA)RdO(Etw)u+f?c0ZLc~T97LPR@Ap^!E46p3XzbR0 zlge#*+_9IG!*?o>!h3aZpkegQ=4G8^iVR23<6V)32_jG8@cIfP*Zfsl(xbUvS!+=w z_xc0I{J@gV>~%=Trp<5kNjb=|2Hx}Vv@K7nPDt2oX|iU}eR&sxX%;#@WHX-4uHuH& z3Nl-EO55(yB6k{N-HPe$3T!+VA<L>KrdkpRa0r-x+mNW<OCI~8?upwF*nY1eaJ+yB z855QHc2B}>M3?*;1IjwSR)(g0r}&k5C>1isFS7jRNt&g7J;Je|e6h@`N+?Y=)J|7v zb+F@sU@9X}a^XTD8*Li6$<By{@jT@>1vAMa_%#vHZa-c;9XoV@hLClB63-w!uSbqw zo0z`Nd~{v$aNAWNxh~OC#&EaDBCFe0L~x;`6gf1<%LIFO7MFmUI_JS1vnY{lHi{%u zoORL^Vp*@<DGmh6-+C&4P0&)i`m$W^3XG{z7J?V=2cE+1ti*yaj<9o+qACwqal~o2 zKh`~!6Q2L8iF|poPW;(?Ehxk%mZ**_ZR2J093e=$oXb~&a@LAV9cE6AW>XxU9y;^t zqm5d9@oHU;v%a#^bVje|_py@KH!@2tqO^!=Wn~~g#^OV+)utNkO1MnC-aU{Tx8odU z5$A^3<Z2VP(yNJdfanf>EoBblecnE36arPaQ5dEM%c0&qWp{QX@)`sYqwwMm_bkY^ z9NZ?MLq19_HYJA|!N2NKow9QdfOaE%!y?PIj1wh;xr>yUuH~z%s+#<AWWN6r1aZ2B z2+?Ux&I=R-u3fiq!q?M8Mlghm0-Qmz*$4=+Ix|-h&8hnCRX@P@uYH@$V?#$0d-<%W z!zw9=uls%Yori<%$5D1=@eE9Tvalm8xM74|uf6ntjNQ|=Fj}l8+G*RiZQHhO+qP}n zwr%{=wryLrcHNw|uTH(hNYcia9#kKHfad_5S45$}HEb`%hl0~-*elVPvd|%KTCE<= zOWE><@jI#Kg_i`yUBnhjaU0mAoJJu*z_6X)VaVSgHRU*rm$9DPKNYh+j$%UN{1<;k zJIWuD#3$zCbrt3k!sU9xUJTcu-F@GU`>|f!z?UaBZj-BUL+-dD)Y$OS{(8eR`&+aG zgT3CL7uEixr1<d)kofRy)mRg4%3eKa5i<q`6*~o&F2K<Af7iziE&T9~@5Ry-F1*py zxG(>-XATLs@5~^||B;poaUk|s9yg+$q}d@#7t9V>=eOPYzkj^2el3jIG4LrojJdQ@ z^JW+~>4fRX?(akxmm5A`{9KOavpFSmMEr(mq_S=WXb0WyA{@b@SzEl8OG^BgRp1U> zgsUpQ4nT4FZv@1nvkNOQ_-&nI?6&5&U`nnotUF&WucHg4VkhJ*cw?;SQiz`!<mR1r z8ccNcj^ZSTho5O@xCay||A7oDMKeYn|LW0-;N_-@d^%vgOl_k6%I7?wrxcJL;6hj_ z&pG`sv8Ml3lhGH-p_Rxpr$>fdI!)U)-T$v{=pnUYjzFvScKrG5dc)lC^O2^kpC_ZN z9&jo8`a@I3|3^mVO#bcKD#nVcxn-W-_nh&V_^G*J;*M7GNan1?Dt2<|o(rq0dPxK> zAkV(u9-0Di+y2Mzlk@NNW@~NF_p9FjtiSK~;wBrv4_@9uJwkYD7lA_;DC=JeG-#d0 z#jTpc22%#KaP;C2BHl>c(=_p0!vWM^z)WGc&OYP3o9&`B*;<nM2qwlZX_i26iY-;? zgS#jYJs6D0+-(3_SnM>`&suH6!MVnTV`0l#zw|UmxdtSlMk}gY{h}sY_K}Oz<1^Se zGMg}-2j7U<$W-^Wh~`5=hegc8@OG+>nJLwe-_O051lT@isT-%Mrzf87d7(C8iD7Z? z%v~MD%{8RQ$*pzeJZaXR4aOgI>9BqO&)9BZHFNPX?>Pj7Ev+gnpN%07W=Qzy-S5UA zM7Xs~f?CC@+s?h4ju2f6ko(qO4<ScncXEi`yTRJNSnIyqe3=5Ja-uDB+ws?9bvhqC z#X?BbTnQm)MWS8?w*1Vrp2rYJS@%p?7q;hR;61&X%ir7R)5eJJ-P;;H-{KBXK*TMo zg#dR~&&%)V%eXgBm@e~^O2wa~QVQH_RU^S_LIHhiIzXL0ddQqLs4W5{8V+1#Ek~G` z-L;F28pmbe0&fTx(5{InEvuW`AN2ob-eNBZm4^QFsW(vnpL}XpOB<8_l9;I)(*Gfy z2z_7b4NyRm8q(U=j22KR-Mr89Zi*;7!$yYlNVd$>i9nL1j{d&p?+Fr`a#(<lG>&-3 z?96*HIi{LZt(dTPE;|!_<wdn`#CMxBr|o{{8gn5FBRLo!D8~|ZpiW4~%`{s!9{duf z5qwv)iC)eMP2`Q1qY>yI=gVnCGL)4r2w6QpoEUVY^&K6{19JraCT8p|%Qz*M?AfwY za3cA~OK`6o_i>cEDel-nYfi?31Q=4SY-;9~kT@*3D_I%@Q2qoC2Bq3%*rPXXlf08P zFoy9mxigW`#E3DiHKbxlbS;It>72ca%&p04^1+AdUkLR>fO<ETW^W&8_u=s{cl!iU ztYTHnfx+E332}F*s%JIZdKwsFqXw9<--MuBVLPQ}Kyj%C#fmM>4wQZPH>+wlL1Wn0 zmw~L`1KH>>@_YA>dO6`Hqh8W^HC|u|$oeG#Ace-^m9&sY342i{k-6@>N&_(<KEsC1 z8+TAdbfC}F5gwJS60ld`*fzm~W89I7q|nUt0byS?AU7LGEj}7N6GA2sQN$#(&^(*} z<>gu6G_Vs|D8)1b9^$qynTXpZG0{#?Lxe~-j#xc-(h<z3n3V;yo(7amz@RqP8)vEb z3W_kkcq9G+Lt6V?!8`Q_w3>cBL`1zOdeVpRVw1Jda#9%TbLUt-f=CM1%pyjoLGvJu z9!t&)9fcKc0B4PI_uUC)6jjl`D-uBB%~v1r1~1-$3(z)><!Lfwb=~O{He=)fqiaML zK<L|`IU8nRp#;lw@L#t#*j*j)Wd59Xn9`e$S43Qxf{ow~O6O^?>lhO1R0(;Uj@%YB zK=_vQ4ExGIEN!?6=3JyD6m{;0Eyev!1x*Px-|kmp(f7E*TAD-N@wwzn9)dN4sZj)M z0Vz$?DhWWG13FHcpXB6FuwYPlfu9iHh@ovziY+i2xI!u__t<6<c&8^z%t!#pju+ym zS$9LTINBR(raJUI1dU8pPXN->c++X7W>{I-BEGdYhxWHwHJiAOmciD1XYl1Id+cae zDED)m1jSB5X9n=3*ri)rAJQF^L=%^$uuL||(X-f3jAYOSnr#Z#`5hLe%4eZ0x<wl( z86VPKPe;Y)Bz^i4j|Sq4*ZjuewVtS0HBhIr687^*?Iz_}SInbT7#Z3e)XAj{CM>t^ zJi;qr4IN)(-Ycb8w{a<;qBnV%s=A^=5aiMWf&=eRXty(1mGtoNd8!in9$OsHjDHB6 zltwx+^EL%O9|g(o)%2~b)Q;&XmlW<EUTZ!vv}lFZU~lHE&(0g0JcWJB^$Wia)R0e_ z7nrXvhJS86`ny<T3#cCSTXA$VS(Hx5nn>g)xF!&?1f{;3ofENskRU=jgh&9yc4%(O zt}7l=ZV)^f<oS~H+K3YraXbZfR4`UG9J#_#+LFk`Md4y`3e8WkTtYAJ3YvuwA2Y&v z3h8!=639<bk;4-=blX31U>*xHwE@pv<|~|><-`<?p2n7o4Czf%C*0}#r~zW#gZ{!% zroY*l5R3mpz~IE&YHOq&Ar3nULQ_KPmxqyR3x60~)!-8-j23O#>{w1&&+-)ZU)m7; z{vE)8&9V5LNR8AGxOa+RGjC$@!la#oY(I_=1R7q7CLqdT2)X1qs9^5K;HvU%Ek1Nq z-B+|-wf2POw4(qp9+^pl?fS&abRy^-C#g)SRMii7pbinB+1G|itq;z(J&7u%q=&dK zDAF4zp6j#)sn>QW*NK2-yTrZEAbWE?&K=!UX!XX@bg+lKRh&mtb_ZqTg6K_g@zeDr zIob86bGF}dOk>o4<e4Xq{77Sb{dmk=w$<8i;b`DV;+`_%EVy%o`1gL@(>5Znh_BnQ z1ij~KSqUpYE&e-AULd{3DSO51N2&C>Otb!?qsLMsQHEn7Ek>h+@_mwO6KzI}d95sE zlHE89gAMx*My|0vvA6o#IEDawMm+b72iRDPBv#hsgg3Q9nc}<-`(}mu5`$$Oz^fE+ zT37!aC$R85w%^AZ=QB{3wum7p$OO!am`R9wx8mv+M;+{f;`P`7B@P9HUZf&8rM+Po z!aqxIXT{xzxf|Ka-}_!25e8E)ad<TK(9AEfWqqs77Y&6bl*@M5)D1A6lvjgLfCUn5 z*ca><ynV0Hn8LQoc-@{ciiq?*sH)R<eovr5T#Ee9bO=!&SB#{l$)-rFTrgt~{2|M3 z+#NEJxwL1@WC>m_iC@p22F10fiaXhicS`8FC+i8hdVIslZq{Q0G89FaJvu2$uATUZ z_0sfb?=|`Z|KC+`MsTuY2?78B5AXlUtNx!VsBdgz`9EIujizn<b{pb<cj$xC5G9;k zq!Qxk;6xo{0f9rcNoX&J7}!!+x~FnPsz_Y3XX@u*D5X+by!i^iK1rdEdZ?40#?13D zl_Zl`hSmq8R#RFpx#+T+utc`5uhdk!ce?BB3xO?Ro5>CQA(J(^=A<?{nhew!-*OyZ z?`MYB^qFy1b@bg{M`)45AT`^Cfnog|fw)&-Xc?G<qM<~oCl!#A0a&WL_UXa;wGzO> z-Tb^VNha;uy=VA*-UE~rt|?AOV7-^9talk)1*)+Ow4Qlc+%Fvr{%}J;%~;dR&aix~ z=&uV@!-IO5E6T6wuW#cdO*1iF>O&D9Bc539+j>!AzBqDH{YK0w6pK>_tx-lY8@Hpl zIBrq)m$X`GmuGoft^+Yy&#~48TMQ`ZO6IQ&-oZgT16U6o0GgJgIggr`ZC;XAk;}=e zK0#YK8V6g?T+?HE!^!8*QGS^~y~724fHI4mNCR_3F_ElrNZeU)JZw|PDiXZ()~pDg zQrsLBDXLC*Z|b7`Kwn`9#2H^}#&U&3anX@_YYR?;0a=vcbV0LZScFX>Q4BZ*Yxx{K za|nW+E(e=bn)0xr&j;iWJ*eEd7ha^a%cf^RsmEHu*y8v+O6tl3R;98TE@r&eb!2Lf z1#yOBycpD6582m=pS@v9^k^ZGwOvI@*aGBomp!v=o4#-24$N(>G7whj)o-@5T1iwC z+P5*-%1zilBek}Zz+_@G_Zb}Kkm9pAgh7W8+6PUy`RQIuifWi6(Swe>>T?i+mH4{C zpC@@Rw-ZmlS_JF{_$6qtAgIzY%dKP8NIe@7jSH`GF}e|#j%Jq{oH|cJ)zZ85h^wru z(-yHR!iXme`6n?L+|XV}w&xQCXh@9OkB*m}So!J#)$lD?e~?tMU6lSAq(}&m#U%lp zI?YDGB>;5o9!pyqcIW7`O0w`SA38W%GT(IdJ|m#{Ju23xSOrdT+&7!=PB@a4Irtm< zTb$Eb42Iq@wl9RC1&+TXn_<>(Zonj?P$$sJ5^+FN*6h=k4pcBP&*O<{aAzFORiqV& zmb`2-+*n}bjp;Y{C%Q_2GwO*I=|W_Vw=?18fNv-7VPFwalWb_-Ds5{Ny+ZIfuUNR~ z6R_%GW08!WeiCgrRTJC6J05SH96=&CDwE)*@?*cPUFX-45K(KDsEbXrDqwm?YY1J> zbzV~4<T#V$!q>)<ga&*$()jJViz9>R%#lc103^iZ+I_P>dXZe=rdoZRQ*Q~kRBLn! z-F$(1y5{aDMo_FYq7Zijr2)(pn#k6NxI}m&Ih6hFcu6VATPBudZdYs@9|fM~a@L8( z;{$rF>XP+T;F)x8;{dzey=Db5+K#Y<^W{x18a+6aaD;n^r#K_0_M4P_wPs?HzJB{M zTNA<lnKJVs=Y1i?o^@|Qo(<x*+Mlr1ju^Jy-UzjZe?eZ3|E#m#L}oOdWKBd6*e6y- zaQ;iCE>ef=ZS`OToIE%x*FbFzn7C*Pvmu7_T)g}a<vKDiz0fvfHvN~kl^n<yuNnQR zHOyTQL)@0NsSHHz8W^J<l~oWCuk`O!LW~Pp>EAEUQaIjm7UR6++C5*hIM#K6sm+mp z0be4go6LI$rL~XTnC?rp<;9s69;EZZ#?JAG$12l9nNqigQUjP{=<L_{QG5_*!`_?- zPM{xBhvjQi=s7w;@{l)hu3*$ripLI`?T6T$MwFeEhwR4f!hvK|nbT@qDr+)C(_v&g z@bNU9$1-#DNeC~0cx-Y5csvSys;%y0^DAzBtJcH@$078YEdK-oxhc~C?R(Czz(O(T z?OoP1j|BO;zBw+_EtoK>GikIElzauh1dm`4y}L^8rYv{xtr3Ta@+{d8&%eJ+FmG71 zbB@+rjn_Po+=xy`axQhd;k>fs370zMK1hHX?^yO759JVDqy28~{s&MbXbx{fSWv2Y zO^0p!;&?39xrph_(?n=~C&Qxbp!@{RPyBNq(QMhpM5e|dWt;8L0BFFZwb6^eC6e(M zpgi}4RL4TT;(aE#hpa)Osyrbj4taH)TKkO*Qbh(~AMU1-APNgU0m%?jA&OR&h&gN& zua&W(=zqG@t3f5^oZhZ;eOpFfn8ks_n8E#(gkMJFIWIid&Nj@xt6P!Fmvnx4?c4R6 zt9@rP+cK_O9s*{~jSsV!<}{+rZls-bhP(Jwmo8*aAE)*P6RSSmOndJce#uEfS@OC7 zsOB`&Eto8ak2Cz3<i3D=)Vnm-CKu{tzTQjneva6IxV<M9BR(u*)g7nrD<s#{N$(F^ z^7Qu}t<}s>4O&WSe|K<L0>;_&E!`%_r^KLBTbFWo?QdxsUlFRTWp&i!rFXDRGz}Qc zbaTMG%IV2^hJQE*Mns&fc!ok($#!y<oNcROh(Cu5UIpIJ9<8VKbM6M!z;v@OdJCR^ zOF=PB3~1(WIs^6=nILIB<HqvLl9|%4785ManAZNC9q#GT>h>Ud^XKw*1qt+*x$JQx zGtp8lT+-u-Ec)dV8ccZf5g2Nk%(D~|WX8aS{(;+?rQ;egLWFKAiRkT3W{(zCddsp3 za7c-v=Im&5p>$o;ZrqHE(a=9<5N28`T}y7rM6H2~ERJD|t##L4<u5!~zW_sj;1FxU zH_f~S29i9N8jEx$lP;FRexPD<P;AT#ml03uRs>NFw@<WX?W?`P4OD)#Mnl=<_hwd< z)>M_G#+lZI;%#GKJx;kD{@DLLaN12v()y5DE)O%IFEz%P<nBD3VUqj}VaJbQhP`BX zdbQ85a%)ISmX_a5poRdiW&*Hi!2(>j>T8`_ox73Ve|v5mZEt>#qfMEYxAnJY+AAk9 zusplf%sVbq<0Jh=QH=(uU{@mU@JYL7wR*d$)RG%}q+jVM{c`H@q8&d4Z>C46WR^rK z21^00d2o!>lynkdyVg#+`6I}^L!az<)91NEP>9t(g0N_>yJCl9H*&Gs+~m@Z#_?9} zuNvY`s1tjD|GPITVL5_@B?bWS_xgX@*ZjY|k*UZ3T(O$r{c+wBbL+pVUsrGi93%No zT<&!i&!uYeSx{+YZF82qa`q%>EI|kafCnIb;`-V9;&Vg)0@a+{k(rw0Kxz1Ld%OAC zZI4f$ETQQ3+e=qXug$t)tB<znq^~w2<bM+vN8i#V{SW`<UeK3*kZMPbv`m3mu_s&o z?^n=M(;lQJ$yJ^0WucAoHT7DgYqOnppbD;ts@;?xdV&4W#$sbe#C_+wTIiS>WD~`c zestq#TwEC0@$>iDDod6uxwzP=+j<jktlrx~AyxXP<l?zq?b3dykXx&LMr|G1u2i9Z z&I8d8d818s>q1Qbs~(UdrjL%jYt(A*Wv1=BT4w;r&6IR2bA7_Ek^6Z~wzngdw(wZm zpaGg+Q-^*Pplr5%@lJJO2dMu-uC*um#%PJ{OSb_gmVf7U`#NrI5ljNP{t@rh^{RDA zw#sbSp6SQL{rxoG@rE-2zW2hQ{ACJ%FTY>g$Nls7`}|xZXLWcLTBm@5`vICj;kd}+ z)05oYGn+V5g`vh`^)RY|VmIg40q$7kA4~y(uG>22UBRB0zH0b~{;Q{Io%H!+i}-x` zhJYBfPeZ^CKOofPvRbL_qdxxAhrayTU*~&CKTq!8@6y^ue$#vO#oAwj%zs;{P@Q6n zz0BRarAz7JKzw|Y7hqV#cJ;)UN5VmXYO1@gLkzlA6R2Q?c%j#7ww+gq$>c^tHzOO! z2Ds7P0f3mN$yGJ>32z;`ifv9S>^Fv7h8E+8XZikMBWzzYtPXqwA&`b&LZ_)6)L+)e zo(VAdtao#OMJTYc1;IC6iBJgFa^&Vk(<WtsHc!~=mKvVKtDe1FGy&5E<r*ig=dab+ z*Uh0jdPnG>Vz9&(7~e&KDzeVPN0D-`U%GAF10-wnRRlv5?%i!0t)vQxK_Ml}gtUUz zC{p(~w_JB;Yag{a_*uSXn~;p?O!~Unh1QhNB@L>2s#89q@4)-ikY7qb6BuMP8dk$i zqeV4SevK04Scg#p04yPkx@Q8Zu(h~kt162F2y|$Rv`+u}E~jW~;7q7`Qbp|4;8E6X zJGYN)nD)!!j*);g2@+hmTFW5LLlmvG2&cSB8)gPXLL;?ya1H`X+Q}^r%nDMuHQPdk zag2Vgz^bVMdn4Q}>;MZb7w@-43mnR2^>y#Iv{<}La%)wZ)B=(wYHu6%f2#J{7qv9u zxn*v`+6njo9$6)FRO3*xunC`hW=j}b19nqYM<+C;)?EuM2cQ5Gz&K|f(G7?jdFGYZ z(Y&v2Nu-oVpb^L+$Q2Nv2n8T08^MRGJi}zIU2g-|9rI)`r^@=>Dr4KrMmRr0$Q{z8 zH})hmxRvxS;Nx<KIb~BxfKY*<ff9)p|LdKTj}_Bp{)@*{XcbidV(BS``+`$R*uO-+ zOTa%QH;n=y>*bL!H{kE*M<()^a8X>SXlMy$!X;nO04z`4#1Xs@lK8B(aQ><$oeT!q zd1e5QqXq2RT?Vl1-6t3P%PtNAxZlOT8x*k?SJQ9ku5P>N>ePaq1vSC12>XEx<)yJb ze3ci}I2jnGA1#iXx2)b?&N_UznZnwvFX3NV%(v>ST-avp7QpV`dP8gp7N|C)Ez!*O z?M~Wl!QXnHtuEVjF(m|*m_s8NB9M~5+VNgzQd{Xua0b{0_2|DxFZNWGFHRv5<j!m- zP)-1;Gt~=7EB(nIh{;SkVwTh}MPTg}vf>iPQy;=Luyx*6L$g|+Cmr{Nm9M;ue|s%; z6SQB4Bv8rV7py=4x)p|ofh=qEj0TXfE*9wxck3J`j2n~2k3Bk%o;irNuu(*s=i1%i z!4x8=Rp+<@2Hd%|PRZi)yUgZ{Rufy$4lQB}m%OcV3RMFz5@RKj{WnrV%F>tTf!()l zkAU^d>^M!Nr1|U@Y$u~hOnpi*uY+)p(J4n_4HD>|Dm_0$V@ZPXIRFenpc)gNBB51y z^>j0fED+iDY7t2tvVL=1rGwuRWmw$Ef6en<AX7)BsW`6RVBEV$S4im)?pIFsBHjE< zV(G4KcUp}b!TL~EDF`h$QRnryG>R{fBzfX%Nmylqs&!$$1VMoC)glU&a;g|+mQ5$c zA3{*GD<LHWNf<=HKef^~m!3N3SKt_C=c$+gw@AXEOyWl1C=OE9?QewIZZk0P&sy6O zmPr*R#prcQ2n)UrKzGWDz3B5kRSl{(yzrZio?0hu!xSMS4|;zVBR4jJ>dvH9O%B}e zer_7+f}Ex5E9(bR1+1~XB78!ztDN3y^V~XA$m4A}80yuqkCEX=uf-Y~MPIRjMyR-6 zqEBoOM#=2^#?VKmC@Zn<WkzT!_uVDXtH?egr^p_rd0da^A+}EgKsByk<TZx44jXfN z0^YkGVKT7yd_j*#&7cTpw=DRqZT?>)1A*>}=<;bLy(uKoPm-wRZ^qabVJ#f&MSVf( zXvy$fK`J8DH>n5zIoKys&sxMN*{S!s)Du1{v;Vr<L4afnlkF=IVXXJ-V&DZML2|_n zQBaRY#oI0!XA;S-Vy3t7xbXvURk9reWb*8}*%p_?0>wVs#*54~oDBK>P7vvrD%h=* z^>SBO2@Le{;&jU%F52hMq=088YIN}0g^NY}yRQbh)xXP5om`%5Fz<bd#)sJZ5Zwrs zazKOgBXaKwq#XMO(#upCU<YOwmvVTVCBHOR1ErUX{T11pn;wBt;JQcKjn}W9q!(I_ z*#bvKr-Qqz!P_-gZ_2!0kJsza;2K~tvJ)#nw5P6bnm(cub7_YO^wlSN8saH;ZcTKr z*$sMG&2qf+Oh<;K%I2bKUQphaai%~&0t~WOt9h1DG9=+`UEx6xXdyj(k(HVOm9|fp z<K|-WhNRFC+JA9lXYw_wCBP4z*#>Syge>`bfbPTk`a>Cb3!#i$HRO<1Cg-4wmc5z< zu*RN@lh1^);I)|?-Hw`dl1`I7)C*zS(cGB;!)vnfe!yBQMy|B#>=qiu(+0v-)-)Kn z7THpmvpWdMAj(J}e*Ox80sy`Bf)5})-0M(BG1gnibn;<fqv-`0-NQg6)ezoWGvXUt z!I(VV@x3q48{3%q?QG$FEQVI>T*|Pf??-+M#koqQ!Si|+gX-1Mr**>7_#Jk=X(+WV zEYaZmxgg5@M*$nuOfwT`=S<o8)ccObwJmQ9Bit0%T_y8O_Xzoh8x(C1kk*D@A0i~K z`5hMf#n2|XbdCGKhZi`oGBn@NictsaoM8yg3B?%ZO{56Hi_Jm_`fK}jyZ`D#;Ydt{ ze88RH08knzcu;^7z;RO_2{sUEOq#ctz$5SEz(aR+{RkW(6sR|h?>&}G-jt7lNm&g? zlH9U5h^qvvVM-~+TxRO?6Zz+Pmzdmsr`|o{ijU!r`@rH8BAgE62&?6OaRsP1^EGrv zvHhed8j5|}5RF=}yzl7P0m5g1vcQ1AkObRscmM*5JyF+B>MZSB5X-}^wJG}xT6$`O z%qO%hpDS2$y|7uko*HN16rPK@5(FTqu!IcFpk`VkpaaP)Hl_}a2gwnqvcW6?*56M( zkv3L;uqHQKJOD^>h^@{(+B_a^I5^y)@cVr~CM~t6xKY90f$a5i8_Cg{0Ao>R?LeBm zc$9zeIy9@&i!t=ZQHD1Rfh96|1>&}n{s573Lt>Gt@%8)OMY21K7J7C<#w^-k^g<p9 zAp9G3Su&9aglq!`xf|5NQh9YUKxrS24EQ&L46rn%4k}MTh#gt%VSd9RVJ=dJ$~*cb zQO;RBJ`oPg2!qFwEi_O(wZF+iNHmcWWHQPZ9naa<7A#MYC<5BZKi?YQ;zqqGH8ox7 zM<1He<@0}UN0%}=eqXcE`;tvM3#Ar!PHnSvaM8}}<@&pM^n3n(pLag0O+NoZfyU2# z{^Jy@quu+ke)tQ6;4|>&?Oro>NtQL)@Soe7iaFeGMsU)Ru;&q(d@=`*ZP*d6^RIGR zuy6ewGGNHoDe(!r$AxzcyKShlX;cgX<25IRjvrncx#b-tA>lc69%%sg`3;B$>Y7F~ zfn+^Vmv!*>E<xgK;lk_<exEFE?e3ciB?SGcym>Q85ie{HTkw_h#$m|0PL}Y!0?t(( z_&>Ia)VkvG@*$ZR1|FBS2M@$@X@(R~Kw4{CGzWh*ESwWU2WS<HJCN7*?MwiFEwT{9 z#ly?P`E5YJ48js_I>^n!U2*NF&&mo~zXaq(JdBWvd-ll<Lck#x_|!3(!5x2Vzo8*m z2h<|41NLWQ9znx0vWrV)nlR2WRz{d(E8R!B8oZ0ppleWfx~>gwD|sU?A}Vp2MRWb& zF@R*#5$_oTO+QDv8<ucddg(<fjAt0@d+gzfotxtT|8=<&dOCeSN!@xqjQ4C#IZx-n z5Vm=4XhxRUN6J^)axnr|(kL9OxCnT4Cf2&?Bt&oe`u-&fXPAeV75kYXdmf6mCu5Q! z6<O<0V%8u}nUQ$3n6wMzz)z+^ZBg7R_7bn5%tWck*okb;^U+#E%aQ0NgPIY3;o!sD z`Wlnz?`#L^mC&#dL_0zDai7~IsR=LME?v8CI3Ma{wm0;+f$etVe-iA)qQ-}!>b2GH zXtejX2n>*qHUm5}nNjH@#?P0lWpktCta6W8E7l<hQ^+$EveR2P&4vZL(BEPWa_ws+ z6U^qH6~uJ4j)(&0#G!TuyQ6XfX@>hkt@q|rphJV*sp2S7JB<t`@NffQk^vqEXZiw+ z9f&fG>S#H47K3tGThnj*kstJ<5%aU#$UG|Yf#q`cE{zbG=O9al)27^=QjH9Xm_7sV z<Bs>WNBAdG4kGPvDG5Tg>>J##vStgTp5qt=tm@XFnPpXyyJf(r(Tr5GXT^L5G|pc{ zeZts_o_W88n7G<_TgU;l`i%aJ*06KQdKRo%24eMbWj*pnK?v<{WTtUb;U=^l%8?l~ z8>S#RM?{SG++ZHsQb`|<l_~z|tfQILF`GY1<j~nAfK_;HxFls)@Nc7m8UUEkv@7^` z(4HGSnQ%<D&5_LL1nImlXRfdixbkd29mX?DxjHl(SRp7_T6zJPZ)C*0_7jH&@p$yw zd$)nRHwiA;XX6LF1-#+<)iHdGnrJrMgGHL30t8ix1%*fAru0=M^Gz|GrHnxXES-8S z6x7T0l=Mejl!?!TwZt!j9wi)A$|c~107AiV&sf4ylLf2g$Cu>9b<?u1^-8BNuCM9E zIdk_A;8Jpc=gwIya67hO%Mu&JcS_BcS}+|j?Ex<U^r_o;2jTIZe;a^>Oe343$Jk9F zR&VnsiArHKR>3wg(huIE<28qg_XkHK;U91~oY@o$m6SBwE%;?o-CQ>3S`n)duSw!I z?oTImtOVsyfy-^jV(N!G&P;<4`N?ziy&f#XobNf<oWa}{a<f`sppRj^57(E0cI$hP zp~o4+E#h$nNCm{eh!hx6H$KMutw@FWSprNZlG+Qbo>KGN)W?7@%9v-G?*g`WRu;vC zEH~|5fUJ3qj}NWenq{J<;pE7WowXXTV}v!@w;SmF`ehrVoz~gfNyGFXlokjQUdZ^K z@@)0x5`6}s{u9zwqx|aV<j=^3(zc;Vx~PF$e!mq`o$mfsm?S`9sgP<LId22lN~7R7 zI&JQw6U0h_Rc-<&e!`+rL<=pO<X(FrDh}nLFCDL$LNq}{;ySN@2mFZ+6jpCp*SZk_ z#@*ru$l2IB!R|{Vw%U6YUiSE`!_79qXvrf{TTM(XCj+uZz!!|gu4#k7JJFIfi3pNi z-S0BoCy!k$)hg)j*kI5b*$`hVt9e7xyt?W4Cspz-@m`<ol(eO|R^j>K6f<|xh;~&S z;jWK5^ciCjOS31n_F)m-I{HA@eg0|-XbY^9l<XsqdhheswnF5m%m~>EaaPqqetkg0 zJ;G{8xj?Jlsk36k?D&_+oG>}i<cMbi0~8s6CVUBT#?q*EYeq94nyCTL5a5=RV(>jf zCe)a$IlnUP7?bu;Y(eN6DOd{|EPw-de<x~Y5LjC$yJQ)X<WHMgBbfQZmWi;zAT_l~ zoP~(g*o@OtU0fLlCf_eXMd%Nc%~Q-VvS-+t8}dW*D|h8uM10AFoOq1B7NryhbH$h? zHb8MJ3E=vn)yEQ|@mWbIkU7vt=xD}A4s?{Mw&2K5=5xD8njZw2e}?O!^5fU*2T7Ni z^EQKX^GVwQM7A#9oOWvEbri?|L~_T8K*;SLH<8Vb^rR`$;U8&xNKSY}+UCpli`RTW zM1OG^CFzfCTOd;_x@&i9DQc!&A{i1Om_6JEqa9$Fh~j`CmLAC8@KC{9$!{P@<fqvU zK=Mc$bn`8UcH+mKzFN2FdULDr_Hjm@3z7`e(`#pD>Y$iHR!~J_h97QyXf0tF2E?V8 zLXb3{E3rhWle2(`Tpd3;2@K3cC^u4K2eKOsJifa90?lj-km_78u6@7HN`=I?Ck28# zc;DMS@|xH+0vz<1b(eDiMpv{Ps2PE_!ZiTR58oJo;cj-A$FwnXeKDfV`Fpq?VI|Zz zRCGG#N4N(JgYk+R8Js^e@{|#^n6FRS{bFv!cGlP1j~|k@KX>|u#r%oPR6G>fdYFv- zVB=H!>vm2+_Ve;^QT`5*GH?-x$Ov=8i1W_@3=)>vl+&Mve*+D(D+uGmNLD}xt$&2& zmR_sz*-)1YTt>0zWa_u1$mM){FmD+tM-q;BclmKP2U9^2;Om!yB7<xSj7>Q$7t%LI z^m#_cMF9)39A%F||FtA+jLt2~_rF0I&?s*7t7nWDPiS_+5q3ST8fVS=QA`>N83df5 zLf@4S@1Ge$i;f&I<j;GE-N(|)hil(uFEI%ZKlquqq+UmAT@=ONe`T0S-=B5HZ|T<y zP|i$*8*QM%=nEnz8}JK=#NIv#yfoK#FrB$`GqCfOd{wnCGqL1=)a8|Pxh(OsX9Q@3 zm7OeQf}=+MCXX5!Uy84)S+Z&&oY+FaFc(?HSwzXE=nJH@3;r18+EhTfenAYpKS09T z58m=e7KTel_3&s{qQ&Z9&b1I*Tis3U5of3`*GBMUld!^j-&<l(N0pOg>B_7)TJZOC z{<b#~RzX0c&dr<QZXivvJf%za48Fy57PV(zAdg0$VOCW&&Zc)<BeqlT?Vt-Z({+Vq zg;O`RHST7)@Envi24@<6$@$Kt$U&uktXbi9uzhEhf49VW!(p~Sn2&zBfc)}L8AVKq z_1>Y#!C<c)S8ay3$*zAp%@+$=MybNw3tpN_LAP7XHS2(+;Y@!jSN@rqcQC?L2*Lm+ zsN&MJ8c~w8oI(IueGq`@2&MH)Qp+|tpW;E_;wiffU6_&e#PfGcp^92rfADi|&;~CJ z5qo+htd<b?l_RBz$|p&FCK5UE$EE>jW$%*pXVe8vwn&6=DzT;q3lc6QN03hh$t){s zve*u26S>;X;3Qsz2T3epn5%qAu@F}@l!<b^V-YNjxKIUnbi^Xc3lU+(h)gMEXLJ1* z+o)MELU<G~T!LyXA#*gyh>Xi%D6H!gZpBY&jtDorpuS7pAO?V@u1N73bo#m7_<ZDn zor_0wblfH^JKeC8is#FqJJ^XMns?PFA<_4I0$3)t);y6^uL0MNFZRlLsWhSD7n5q( zzlO%a%kGZZQ*OAB=jKTPg-(^%%nXe=asF#$&+<9oLQb0N!cGdVM*+lnz1O9Gc>X`V zCtJ>pD2H7U2HLmzQ^5F0;9RB@d6?{$1MWPcG6?L<AwHzIPK7=QCnYJluES4M4X8EH z(i(eVJt;1zO{X{9O3#G)c8H8Xp`mWL5ZqCwz_?0n{cyWl7>yV#*`_iNcAG6iEbKY# zIg-z;`F6Y}D=0~Pxsg+rzS-MolugRs!s=Ym!(|vk0>*AT0DjMw*o`BPzqd=_WfFmQ z&9k@g;HE3aLXtU*jt0TqbEldHJ%z=F$ruP|h416v<a4j}NZke3F`@Y%MH_30);WnS z{elf1Y-*w2)7*KFoq0XI{NKIa#AlmLb{5Xp7LE$39I+^l(V=(ern;v#Zcd-Xpc62) z3z7ua<T5e;orC>9J^?5{Ht#x=^m$j&eRu79pMtN^#E%LYi90sN!X2^!Eaf(<v64Y- z(kT0X+TG+k;sHC&%3a%sUI8Kw8GYqr?jW|Bi(*Da7zQo0*Eo8+fY&80@*Sj?r(G9D zLn4A02S?Itl1iKqt_aHxrV-e|5|szjeQi7{=MM2ht~=uD&eXdx9Yz=qJP-D(qGe7) zf6n?Ff+xs23C{X^mQqP?CLJ2*eWozLN6!&E$%f!Q1SHq;G^&WSID<vNXc`K931vJn z=RrRr<jbbAqL1%d5NSVGl6aZ~8Y(HhXB)|=Yuczv%k0}0+Lx^EIdTHvXK5k8R-mAs zvX*BQz9S+#GY4YG2?l5wQgfT_8Z+_m*#SPPo`N0?gU+@!xD`ov@5fpvAzBI)QVo`2 zNETa<&B^jC3Y}W9XRXyO0My4vEqQ*C?lLla<~ha>Qm-k>5ca0<K05ZV20U{umus5v zW#M*(``P>tNMY&dApz)Jf+G%&TT3{e^vhj~|7}zbnN|<C0>}We7$d+|@>Jj(&%gs? zbG{ww9uYg~I54@z-Di8iknmx6LA!b$k2IZMpCzhp&m9E2bn0(1;Lg|OVi?_f=147Z zje&b2{D+a7P|J`d=RaPKMb>G8v4-}?#PSsr)pQX7YpDRY2Sl&cHNv1^>Ho7rJlyGH zOG9@i#)7Ej(sEDDj*2<92{V-X-N%_<o{%TCn1vY>7}wYZkk~2PoX~ny&0|g+@|nZq zUqx<Cx9>Bqx-s~tsmOy}p2*(A{(jp3H;&$h5>C5mwzje4$&{k?G(~TuplAxP(Ksci z&_t+@*paH*JS;J@<I1dI$c3!k747bWhXrIaNO~6BzS!$uSlz&u!Z7<amZ(PGudK8q zJIxZWL%sA;DfE;tzj^Acs}8#c3I#2LHZ+y<ShiwK#mKJD>&N3r-{nEIjW?evT`Pfn zouBa@-U-UuTV86Iq~ZKW1nW$SA54y^7S%lt_^3^8N0+pTn?sYFwZ*Ng^q>`G2<u*O zPJ@_7$%vQpzF<IZl$4sBJ_e2DfojR%P)p0l;Q3&I%!4+0SU2Mi>4UwB)Y)Xx7#(RL zUS_^Y1@<`+%U4<B4tj9(orxVCy+;r$qZNPAJ@fi)^u}bPAr4o)g_pNbGmtR~l&_(v zP&Q#3xCqogH)2vpr|u7hW%*?oBX)O24J=ygb@&9cjs#oV-I;0|y`r6pUXTm$+5tqv z*$k;1l#OT>DFW4t$+o08gujDn3Z5$hX+|;~AY0jRM(kvZuh=Mh$*6o!)GpMe>!)6B z_J<c8pX|xJfXf2FooX6mq4L5bimhjX_B_jdTOLp3O6pJ#M0P&k-um7+X8n1oFb7b0 zEu%%2HLhZ@BjM~i=I;7=;0^E)2wfjVx}z)BKidcNfV_5vA$!$Q$0jqNK*cX#WHZd% z2vV@tdfV$aeu!k<mCXS+oe5QZRlQdQ0=qYXVaKY;Y))bITXNhjrUM}dpQbNsc;T}H z!Y-uBYj60)j`8z>4iAI;3*%hS>B4EW!-ZuMzbj@lfYR>brxfk-Nb?0oO~o^n_w<)1 zOT_r>dZTZiTch`TAs;a=jxr|V!7N6jc9tQ+>=AZVPBFXWN`twwS=Jie*TK=+o+8#K zUhmm>NbTBdN~7abD22SUzk~N84A{bZ;nv@UhB_uUV3W@zD?-%ov7wEAGzL*rC5s37 zwwOOYfo-1vkt!R~|H$~~iVr#wWuaW+$p(^Z{=5a`;l{(djW6OOE0V8FOMDm*UruRL za~y~lcurkT5Krq4&iO3JDpm|ty<8{?TJmnLO!G8X(UcKe6<lVl3#240>B_3!23qb| z7(lIbVidg2hI+zijbkJzTUd0^mDm@ZM`|c04xpj_rD!lu6=C7l*D4HsFDeVG(q>PI zARrp~ept2^F^T6Iwx`=|70^!(WiIbPBtI?RwtiD<%5nYEn)fT6!B2(0bFWO3!KZZ= z`S0SqF0Sg#DDxF=5%;I*<f>-Ge6>wnn&XzcFSwfi_7;xJZlW}yW~x&-RB>G_uUzkN zDZNF!t2FQ>p*z1jSQOa`Mx-}%&SwKr{sK;?%h@8U>dp>PqIqzY**wI7-`LyG6@qQ( z%!g<z+^NryX8$)}L-Je$$6pI&`)baLZzCTx{rLf<LrS}&T&G5>ByZn$F;AO|0RQOr zNfXr_9<lJl9R-ng`opFp+}5UOTTFn89aGJ~zR7e~t}OWNT4pmTCr5G+-Rj=1f~rD^ zl~WIsX+IC3qehr}PO5YO-G2zZTbL0OIRyUCwS22577xx!XJmx1k2$pW8;JXi-(REW z@8RVtIzO3#cp{O@tEF<280_LM33(z4m#<r_IufnYiwb9RfiyLY_ehIoHOT>|MRFl4 zl~mH?{)?OIXmZ<fUlDDTXY#qp{_hfiLPK0V9Qr#KmqvS3d_G2wC5O7}j@q743`kiq z>@cR@7*j*#4wfyGlFZlDlk+6mJP#&3>|?DoY;g4}>+xCKNRsCJ#j~unJ&qsSgbk;7 zL6SURbxt#L%goc<?-648ZRKO-du#7!_sW0gt^4*QncUsoy$VWYwI!Q8w8yt8xf|{; zlRwl>KF-ti$+}_iED)?%a|)|GiOjQ|N;;f|@<>SbB}YrtDK-qsou5vDhl9cW>oZ_4 z$+8T{<AN!ZoVig3?Y<^~SU5b>z$*nZae%=8KKN{?L%FM?ca#6q7upPH$?1l*tR+$_ zMC1Yvzi-X24w!C#z9D}q{+4ttywT_#o9Kf~oE{3Y56{X5_Kn2X&eYv`O90*0*nRB5 zB%B#j=)vR8@V*EKEV(Q#L0c!*ln(jysa#W0l{hI?Udr9hyb9bk9p7aK)><Zmb5;D~ z;0J%sOz@H%EHawcBh@1h`gBH$i<M!YcTB+GXIhgpBHgEXW~bpyp*qJD7Y;Pf#Cgfo z#`lRa`BiL2o=agLTRzT~yS5OuKn_c6mETEe0o3zbl1(|3>tdpRf2ht4R$FzESraAl z7Zx^@`KQ^}D)wAR{A%B;6mC+rJSrux{kF1ew5=Of>W<()33M>s&ZyIrI;Rd19PMaE zrQ$#&ozh2zhf3(~9@<okSK;)^c*tNrNBl5~wCtvMLX_y60ImMST$Nt&`>H?cY%grh z^FBFDHorF`${$6Zzuynn4YK#w_(a(GSb+nFlep*~yvj_>MmC&W1Q&6_HHw%oDprg{ zPu{R3h)d9B8aB)7jt|C9qsS&f&_Flid3U|h2BTEYQkO+G(nsgvaJH>nlY00d1&s5D zmE+6p_v6h)wcK9Zn0~PpFne4ydhZti?ytkgYxmMrCMVSClcR>#<m6vsBT#<AE^^CM zyLoxK&ZcngCPPrT>QxMDN*~k{9*;#eM@mT3soL-4_-?h##bkfW2vri^z)4*uzyGWJ zUQdP@p;0GKm4xGLl>v5#j{#d_Lzmar@8KDzXm?BxI>rtC*s#s=XL!@^u)MM;gG$5? z01~V;?jg?xnn+`L%<v*O8UY+TO3!jx*J$_mWq98GHCwkl6z}@}7(A{i{5d~j{ZkdR z)cfz|W_C}W@?dF)>LLN2JDdvanEE8ASL|+L#y*gArrpM1(fwN$$(UfHf1J<*nm;=U z-F%R%p_<ox(qUs?Nj!SX4{Sj4=!(D3`|nNm=$rkXzlM%(o}b6h>khn25m;Y@lt)y& zlZ-0rke7hZv_keoN8>SUso0=s+x_!QwYxpN9<5wG9a{RCKTp5RxzP90gSR}qcBf`9 z|2}-V`QCrmIHk(;#~$7-_zb&hiQF-vYvqOXA0Aim=k|L0J-)~wQztW?<va*lwqeiZ z2Rp;}Y~L04rz8Gcyq^32zfesY#IZ`hwQYvXe+*280002x|33rse?v76p8sWPTD5JH zx5g6xiyIq>q(TM2JgU|CB-!8nL!D}*mOGYmaj(;|ZwwnSh@^oaz)(O*{^u|6J_mgo z+fBVS4!@XmesOVed*Rn*-k?=`sWv;_d2?Kb1qZ&nmc7$>b9v*@*Y)|!;C4vxsoCU7 zzs??(Vj4zfY_@FG+SO$Rf5b3jlW<D^qQ7>_#xeg*HJ7&EhwY}WKEr~OK|M+GtnlhR z%1?s0#3HkZ&<lru)PHKo`iwuyVlU2j2h1hB2>Yh4uC6*>YGP*Dnb+yz?K--z46P}9 z!_h80XSaTNhKl&xV|0XA^7FuRcQ9yJ5ucktQy=y)eJbb}3`wpyGwedA7PX-mWyy`e z47qK0A^v?V)oQJ<A*<F@6Xvhx#^IzxRwfDcZmXIC2i!2R?gk{T&Y|URj!laAt^NW0 zY1kX{@iY&e<8;ofvcuG3>1f#AYVqEfeaD0LO8;%rQ78Nb4+wpa-vjTb@gN81mZZ#m zmx(u}$ZWsy`GdU*gIwdO@~PYZ=Lx#_p|g6|4^tTd69ewAcT_ZZ=mYMI@sRlPvSWof zt_;CYE#VJ)3E$t^eOqHoIgn|P)z)wB>AhE6U1WtZL3=z6UrZBYcbn4aK0FV(+x_Ym zTVmEtyr{Q5yvPq#0@~%@)#f>MUEz<JZlkf)?mWe<(0-6Fy}-KPYR3DnYHxK<wI4<H znjd#o`>=g%tjBxr{jlC_J7fOKA;?XdkNvdQVEq^9So{uYInB_VWwH5d$t%HVAJ3c6 z-djOidRJCL-4L@IUBTM2^jJ#4OJ2wyHJVy?oln1kKO)nJEIhk>8;8OdLp<%x#|#Gt z;^YkZPn^E(z}?X3e9d|l5TA`j##%KgIUBzfmR%CK!1AJ-I?DGwf}aFzV?6$IXmlfD zpOOCKtp9qc%`--xyZ6N=9P0W5kO)J}dmSepez&EWW1{Civm~TTw9cI%D_hp-yZjzK zNP4SEqmtDDp052n%lr1h_eB9{su7hH7}3+aKOgg?qAlED(e>OO!}lrdZN(G1hk@x? zXxYFke8C3~^i)-24tlH)Sy#PjO}fI%Hq0Z0UJs=%?+XyAtt9eG>UfuoMzDZ$eu*cS zo?>>Ri(&dqMMRk3DoAXD^=mHMfaCkVRGf}a6=*g8kNz(15Z5Rm$yauGu<4oCP+Fnd zWq#^w0qKmId*uMa+k$-Eb#gZaX8U|fwQ(fvVm<uenDpzSJb&KJoQY;DH&c$zCI=+q z8PT2G40N*?{M&kX{muXLme=MRts&gy2At7|=&E`-h|`*a5Cedn@#X{K86f9%7*S~+ zPV=%NK(O!zSB@CmRAoFa*oq^0{~%@!Tmt!AAAo2*u#EG;k4+A2ww%We4@WH7f-3-* z1dG<#Vj4hdu0Y*`#SrBx5@LVpIwl-pfz7tmB63iUC4(-}Ez=Vz0jG3b$2ZR`kelPg za!<{BY+UhP5^0y{6|Q=TrGN{)v`<w1jLJM1m2B|pWnS3JeuYYI_!(dX4jQ`OfUgjh z{c3XC_5PDz4*3#W05;UkWG!00PKgIJNGMT6$YP;!YYrJz3-h(%aI?z?fd=**X9=L= zlwh#=5&m5DU)MR|wg2bql2%-i5c7c6iJ}eE7~ge#-PvH$=~2iK3k~z<=sO*gLjCz9 zf|fUhZGeSzIO<58R7r%w!XrmqFo-DSXrz2kmf#h6ZG|)!SF0}gyN^cz%^LxL(;yj8 zVr;=NIEnc*KnNXA`=<kz4P7V)pS*B6?}Q0=)(k6k09`T>b2#$txs7D-2G|M}!w-&u zxC;<fSuu&aQp0NtID|#ATV&zt3id`s%J!@4S7U8_Pcsvt*m+m|Gg`KJMgeI>!l^+R zAe+{c=gb<4M_o}!m&Bd83^?88nI|IrDs?BvGQ#mFGD-^8PDzEtZ1cL6NyZip6dXUE zd1i37>$sLpVinNWo({TP4cwzGLR+ESPw+YD2%Vv$a+<ZF6sKy&jWj9IZ>S8z+Z0i- zFVIWFh}4?HlEm37-E?uhg(XtU9uG`N$7q2Ku-0O+eiMEeR4Dtg69*AioA=CGyH-53 zD2{@0+Kq+2EMO@;g;yr=`Yc|nDyj_A1guce%wAaAoc>w6--Y9N9|I1%)Ac6j9Gj-1 zNb?`Tr#B5KHs~RNo`DPwDxDQrz#WyY=kNeiuR5iLu?6f%g#dhjzq71zfRDY9;jff3 zePT?=K;5XExvUc$en^)70`vV8?d;2ITusem92=twVe3`(7;NnFXzn-$C40v8Cs(}1 z)F{#kkx=6`|JvPlQ6-$a^ncEL&(9P3sD)<PQE#S-x6lFPf4+pK$!(k9kEYKx7|`=P zPjJ=cD_m`&pIs?%ktw+4#Ep$8DH_-`9%-TE@XT|Z@H4xJw;e->*awxi<2@>$v5kHc zC2O)!u`*9*VI<qTJRWCmyI_ReL{$7xmjNa!28HH<_yUo}NIO)IAsO#|<|5`GO$dB% z!_=@;asphvwZ;a(B$rmuHh`YsUzA9{t=GvwiA=Z7y3sv!DqJrc5Se)MyxO6?=Ms1w zPG{-n!YVy7ClTCn|2SFpnVsYKj4L-tMI>9uQJ?&ES!qEFH(4D&Y^x$fY|PQzG`Yhm zg9VvcEHoL?!My;Uk=QT-$t>#D;Sd3ImGRf%IP$2~5R{Ttq4ep&NVdHvx#$Rk#H8Ks zLy-(qM@3%b=#B!3g8p=XLPZd*SJ`*Fi3zxXu`fXxX)Gp1I%g=#Npk5MxHiNTVt|e+ zt4wRKH?uilW>_NW3er#KdWW5u<`r4uB@Y5xQ3!{0D-|FalvXJ*|JG+O#5Y94ztO=B zAamoc%=TP-=?7qiOaU9I5)=A>l!F2I_I#jEg`nhZ_XQ2zi$BGjN+o$_aZdJt6+*q! zwW>4cZa-&qZhk+j1<fdru97+>XM+?uB(mC|;(X)O^y?o6Awvg#giZBS3jX20C5N89 z;<uTv=``Prwgq<2phPJ^1fOj&bmKktTX>mPfkxt#FxM#bF=i`S7y|V;K>(pVnluMa z<Iweh5$<<TB`B3jebRTBbxMv_B?ZV@D;0@0azN=F=k>J?Y=S3Aibv60gZ-#Fs3Ijs z1OMT%8AT|5ll@7#H8RbcSsLMH6B_l=JtP<#*4dTFHHOx=byYL`#=R6Rbz>S~Rhnhf zqkz~ZSrKnTe2W2OZxlN}93UD+_KXI;VSeT71csTz%)IFQsV|dAYPM^2Z$;jW0em58 zaY#M&n;pZPISUD^<EG&K|HIfhHii~8Svt0D+jeqe+qP}nwr$(Sjcwa@a^s}a^JS*z zOTXtY?6Y@Ot*UyKdJTS=#8cC1B;jTNuzniICV}^Ahl~^5@x8wfm^j25-dksqki}}b zFIoA5<OaO+-t!zh`G{Nn@RsOGMh%EWNCl|Wm3(Q6piR#Nq$7XBSWQo;=CbVay}$99 zcG$3(rk_=Bdw?)T3D6Ue-aAi?pcO*jbp(L|D{s<?Rt8Cjb-`826hFP72f=iQVV$-D zGUpFsg~WVc&0K4Rvw&ww`Q6YQ+~~i`9er6GZ_k8Sg}(VB%?rGWv+nJKiY?cu7%!0R zV1R(b1wg~MxLaT2zK@4aaSs7~uOrZGpyD%eh)btZZ4pt3{&v&!h2D+9%zmAdu2jz+ ztW&2dJJcwR8#)aSXk|%+3Fxa5Zf|WaXWA`iW0EVQNddb-3%~#{Z#vHf_^-h~sFuou zl44lT!=G~Hs~V0+S;d(ww7#ADzD@^9d3EK1exPJSN9CKXbp+%@+=5BecCwGdZIQac zaoLA^mE(NUVu(vuBcG*WFV$z2mH_lr<YH@pGhD@L>$)_?I&6Dsb>oCWp#lYT1}TTC zI(7D2*|#Jq9QTO1MB9}YV^xQD;eV4hR>|wP*di!1&1Wel(AjhC?_=lx>2V-!gkf!1 znvarlGE6CK>5h&q;%tce;2!qL+~WXLB$K#~eq3|x7i>ZyIJ=P~ze*a4JE0?`?4Izf zx-qSGd@@~Yxzps>y123RAVQ3Mn_y5R4uSn+8nU=(2O7A+;Q(O<bwYb8ZD^{M6b!B` zHK@XBn7W{PQd{a!YU_2O>Pv+aaOkEaP)SnQw=N4Mes6)=>;zHX>NCt>hIJ?=hL3*o z_!CT1z6tMO6N<1;qpBk}9vz(;W8u*$Mnt_OT<Me^mQwGgAI#7rACte*)rCr7eweus zG2?eo6mwO%AJ9Z$64VM{!afQ&wFCo2Vi6Hk{EYN-|A;({GX@416Xm`F=&ok+Az>V^ zIfp2dq%}<Va~5Q=RkPM%FEt%8Md*Ey%T_+c(-7v2=y~@F?AHHdGwldWes>oReB!#O zG0v6+`*BOu*w;C`Xa6bS<zQHa9mgsO{#*r{36~GI_yZi54&n;%yES^fI!T&v!!Wi^ zZwHqC>%lZCeZz^DqAYIBzaMExtp^q$i9$3J0tDtia1I_81vbebpKx$OOW3NPUIfm2 zj%a8CnDv>}YSDk@a~x{D^sQ+G#Dq1zZwLW_DQmYggX$TSRC#?r5%NgC-7}9pY_any zd?K2>I@;dji`{~stu7!#xb1)UL0fSn;R#L~L+VlWbLTXX6odRzIemC4xUb&ibeB&G z`uzOpz5qJp%LWE{q?-ym<&E1Tkvi{r;k@k0_@OD>Lj@c5S`2kdnSP0hpzTa7ux;6V zBiRLMr$Z)NquYpMeoIbx!Cb{fW3s}v5->RB9Y_-OTodzfQfkpZEF9v2k+`$kj3*ue z4Y4ZKCl5)kG0C~IsQ=-RZo}8UxVe+RM&5FJ?2y)E6eyMet((&stvmHbhFfuI9&Hk> zLQDqcgbtwfz}%9^_)EUH6H#%4z8N5P8#d(hF!KPhfNCSz$O)PRboK9Wl~;#AA<Qqa z!!1ElvnY8G=;TlE=&v0^2vuj(Xl$mahu(8(Pons)hyop1d-u2C1Za8WdC47kl$*SN zv^v-xh!&?h@o=D4f7!RViaDsDi0>WDAKk7DNS9TFq}u==&iNDKirDWUV^w8(3P5#7 zDF(o6T;+6JgBvXNc~+=ebf*(#@ps}EJl=PG)(9sXKlKbxYVHhq6ho|U@5QPb(uHD- zm51}Ew<MK`IS?KUlVrw^hn#IRI985~rcpaD9QNRT5t^}q#m7_pd~Q{XNR54G`pWqL zrc`PHf%z6TUS^ok!}=a6<expY`T6!&pTzUfeUkM3cg_5d;p)#UlO9e)9yIiWarfBX zLLsr=*Iys2U_9>?#)mqt$5;;1xNh2Io#duxqQ8gVWgBi4#70kN$1@L&#hh1kf2@om z>3YF!JWeVD3zoD%wp4cC2R*u%YISL8A)J=evydq3!aQh)$L>|JTBVnT-T#F;y-i!y zeSDto4~go8T{2uIPh1FspgI=sp&p>d=B&H|HSQ^H+mV*@*U|5X9PSe+Gse=(Nbh%% zbo5-F+do_~ZbK_7a&Ft=9{NU|o$m57qZ6`Z?Rob0vhI^wUMCNLLeAc@G~FExx+J*n zQy7&!C}c<Zifky<>Q7y@1M9-0W1Gw!cLw{KSU|XIv)nSrRJI@KsWG>JNI4gHb;DHY zIn?t~r)f0$6mgVf+dAEgo*xGqL*k&@Vu*l!WJ71X#>%-hlpSWswYk*S4mc7j|4H`b z)!~$QF3yL!+em+3;4*pS+AF?otl}%{i2bH`Qak(v;+Kd@USd0R7L3Ey_H@xlQyQec zN5$ZTuF`xq)SjkrKEm0RkY^_+JaH&5ovq}fyXvU6tuVEfSFE<jt&98G9VjZF@Vst` zKIdz{sZ%UkE{Fa6M(ISpy-WPo$a!dOdhSFIxf$VVg~D!xteDbDxPLA_Yv<Y`q-bHn z&D`wLM6oW@)9fiGnt8lP6V^Tl>$ZDVkd`$rhy~AaOX0fdS5%D`tK{A0nqo`<>6X?U zpzhfzg+sdr`+IFBD)@QE9%((%#_5Nh@cr<LsH>osF7du5oO@h~_wFHeYp)HkO#+Nd zXDXh*`&zsTSnT0~+DwDL;Sj7hC@JU`p0?)lrem&lW&%LcQu<}AJ&ZN16Gl{^_y~He z=}!&V%Ow4TuV-F)*MkT3QVwiM6jb2p?bpIBmS)E!H+VBYAi)1#G5t0@;h|z{vLi+> zgTJ(;UkN%?CA5i*;pT2ZmXXM{7!Px>;1(9-Cvxa0a|DUyf#DHC3kJZF9IcDlqp@Q` z+p=K0<VRXn_UOuWQ7GUCDX&kle*AFCc_8vf%i(Jk;BbFm@!&hEt@+HsvcjZ(#Si%Z zN>Y<K^U7<%G4vn5B$$g|63l-<CjLK?l#`L8g}t-WuP)W2u4T8$hT^+gr+;LUswsAc z7wH1pXvItbZxvNa3s#&VB-K1EN(P!}dEoMO%N>S7dU3$wm4T0>!Sgcd28TQ9Fwjx~ zOYf38xg8rxq_x~llgg#m&BPTs<EAq1DvcpCm70K_n>*zd>~!#U$Pr7_TUE>?Z242H z-mK~<)?5(Ea!a>E_v8M2FooM3`l{5k+JR!#i<uo%5b064o4r6NF;Gd$=fN~!n}LNC z0+N4@tYoU8(8Q}RN6Ef}No<$C=hsBBpw(Jv7~~yFDIhzb5N$jxl{)p4iE9#9*|RR` z@OE?*c6FiPD8ZLrb*1pW$o|OkSH8!V!)@tEi;gWgaWyr_9uPdm@D4o}I#+2B%ALrn zmSt@al-LpWi4HUa6@7Y4lge>GS_hMIz`HpVtM`DE{bTHbF2M~_frk_rypUo-s*?4b zl-=TQHeVbOP+njMFx~v&tB`fYpP?AiOp=c3e;^$FD_xyLO~h8VSlr*5%q_{OdO`kD zA4q>9s4J5Ks}|n^r=VYfNh{TDi#LR}B+4c)#P@Zw>3{(Dd}iX^V!B^r>Lz*~!x+Sw zK+p%X?_&A|HHAvU_qoARI;x!YFuII9Y|bi;S8$TCFC&k=d%#5nq+mh<z_BA44AjMS zS5h85LC^J-gJaoObl>W01;E&|Q{}aD>E^4og^qeuURx{_!(qfdC_yjt-dUt`G-8s- zbDF-}TPEJ$S+iJ}Cp7^$jXTXLwXi<hpJvc|(#8QK(C{?-dpx*`uOF=NMNf0k*^IW^ z{F!)B=sr-n_3l+-{+ZFjy~|toOVL`*^$aawh5#+-32}!7a+|6|5%TIG6UxMWd(4uO z*V{3s`fg@hkoUd#=0nU6{P_vJ9yjl`;X><FV&8N0!Oe8^$r1S-t^j8Xw&JI80p?M5 zi(kee0~FNIHtIxW!Y6<;jxeJc9LOgCZ`-mS2wk6lZW)FLFcs=Jdo>Cxo73Wm11T6D z#c~cf=E$YF*%Q(S%nvoRI+GyQqD*a7g*w>)*)mNMXmVKJ);A;nBD=bfSQ$|TWqVQi zXsv}Bx;Y*~3~Yg~XfK1h8fO}_JNTy6Oo{5vWQhdp)(Yp+x*_3LJ;(s6EVYLZzqG8j z0}0oSuggFJ5J~#w$PuGBI&fUe9FEK?ga=4pz)&{EB}NH|qFwJtT9Tc`dT<_Un>1IZ zQ+P`U#s~MD+apUM>8*ztrUy3XF{xwdBWf&Xk%*$fV8i7aVZ^z(7#=}}QpEVYE>zUo z?M{!;AJcAI5e=-A{*`L=?*I!~lxCWk)D#F1AVjtF1JV~_*bIQ-NT{r@;jjO4MWth| zwc1LjebKqcZn^bp4$c4ACKnPC9XD{}1kR|Vn@LWroW&JIzS0Wx@d3JIKhBIv{x=bv zk_mfdnTD0GV-`6N)JJlj{2l9Fy}jWol_G8^j;xP^3KG=pW+hl?=dL1vw3v<~S87A$ zqI#Eq15S{>{vu(fDIeUUinVOHr!6<yj?$q%N%Bu6Jmf0BsbV|{f8TEF`GGLl%btuk zLGO?md`pVjN!pef+m;|G$9RZ=E=YorH$I)D?aiWQ=<NnCEw5biKyOyBm%|Sk{$KRn zqI9tl>^--*vosua->(0QnH}AXUQhRI;0I{-mxn9<V?dFEjv7+rqRe=HpiPSjHt8kR z8y%=S;p1C-9S)-|nyDD02TtjkgWR1_yKJ}v#x}$Uh!h3eU}HiW%Mbe8lk`zz{|e6i zM#|qpl||P2p<Tfeuh>O@%r?y8Ogb8#aa&aODJwjy%S8kF%i<uCwH47CmI4^IZp90P z{*mQx`588ESKFeWq7GEJ7kerD#hz_cPbumr)L4~Y-pENjzb|{9ww6~^EU3cHHAWJ( ztQo&!oI{LFP(u`jJ3=xLf-q;e7X{?)9NOEvKi6>(4fLde0;u1(J(@1tA7kwVyK&?< zUT;mfHDs*VA?6=o7P&k=nbD!}bXZ>DmVzI6K7^0K;fA3EUmEN<G~Kzs(6=8Dxkp;= zIUEP6BS>G-vJc*)0DF;i@L?bIHpMen8G7~9m3uq4=ssO3i-lbZOISS~FaKVW%!<)M z)An}^?{-4aV=|I{K7ZTKD`*~r`xkd;t%Pw5T9zVp7&qbp!TWY(Gg@0kBS;dmps}?o z6abs+{TD5U^5gkWf|@rCy4XNb)&o99CpcYZZI&RM6o%tCnny?L-pv|4$T+jJG|NMY zCNJa<xv4GOxN<ohFlrBP;yw}%ivnTXi$+L6>?@%dYI^){7GqL_sHk+|Y-HD{^PEa+ zF32}p8~i@+NCC7MG$nu^9LP6`FLwms8(OTQ6JcRKJR;wx?Q!eT+0N8&pQN~@WM_Q> ziQoU9y)Es7#e>^#7{x^XPk?Gh<|al~zu_}P-R3uZB7E2C3A96yxWvxse<=3@M>Y>a z!D!9@QVxj_%+IZz3MgWVvpomDKVt2Wo)f1a4*Yp`K6u^IrcITYOT4DrsVZA7%FClJ zK$eXXy{)<6U?FP4`2aoe&%`Yu6_L)8rcIM@j5iU?DGo!53}sd&Wn%L!bfn~=ln=@c zBandhYYy4S0V%aO?Xi>Ffw$f8r*sm{Jv_1yKD&urv^>sViIYpSg=}tdwETEg?wQl+ z<Efo-Q=p2eiWdUjlXx{3LcMrUu!bU+_z5>QUjJ^XWmAdVV2H7Uvo_v|-BdH>VZjyC zWaxL&H0>{WqudR;dM^BH3_Q<hrjdd(+gr>+KCU{Il**sJSyi1<U#`E6>tbINLQv6S zcGxOWR*5cY(n2nK2%bMCaHFIev;aj^Ft(_#FlR71Lqu6msDod;>=mLv9_|z(LYJP7 zm3cm~$zk0T__<bIg*@cR2o};w4lRAMG-ZPua(W5Vdg$b0j9sU{n_Z2QQ^s4CYDH_l zWN>M;o-s2%%s6VgyU>M7Qy-RY2yp@{RUMm&T1bO)RmJqm@7<^iQ$b$YdU)*Wdib(y z>)ZAFJcbi;rS}rw(*n&Q!@oke5-DHMs;ojD*dRfuMOhaT@d8~W9-bq5m|uyhaa|a9 zm3#R-&|p+(inQbpFZ5LWE?gd3QIK(#;?wE%qgg@uif{y#NNksE9!vG0ct{X*?)pP0 z1n(9*Vqh4w=c=P5BjHsKj$4B_-xeY;G-MK4Nz(K$zaEzCrXU5D%p5oXaYtB={U0Wm zU}}vUFk1iKJq;^U%$T#(!pP@4FbTJ|sLp~nO|`{S!vn+Z2UHTMCG74~wX6~+w>p`e z=Vh`f_+Kpt7MEZXWKKby;L_b+M_38OOVTY^sI4NP)w88oW~!$r0b@aH8OtG+4fUF- zI{K*-gvFx>iz$lziB)s49ItUe?nEd$4|{?2Hd=5hLvXpRPG@AuM0`PY_#uDzqU<l& zfCSKh@?J*hdO1oV8L!&$j0e0$OlJRAbT$Q`j+)*MYvr5iWFqrOcJ@W=vcm_F2o-7u z=?Ps}Fr0LEg)ca2!(uibo(a|qj+Tek>%nw_cT@O<r9pzFR8uXL9_<FVrR%OWyg2h- zq^OKL1?u%E)H=VLkVUd+iiR~c66Jyd4yEx8yo&i-;(7xh8SkFJb+(=f{`ljlwnuSU zkKYAYVLS9^B*+Y>iPAH8o^WT#`Xf?GrFu3VlXKp8eSeua0W>~9%kn6e3(vZGqci1S z^YjMD1LV4a?<Uq%UO=`@<^^+a!IW6_Jsw0RqkYEN5&tV1c3%>^Qq>;)d2-@~U|mUm zTl8#DFm2hQr3_H}3=#Zb!MKl4)@{kZdc1=e`J-R@(H4Ayd4L?*G6=JC4n>=MVQS!D z-Kt95AU1O*X4#AlK%?w>bN0}U%Gxx$p_C!H6oy}+eZ<1`zRZhF#veP%&+&hWoo21L z)G_4?H8<@`MX7;3b?clHI!ik;$MNuu1^QQdcafNxP9||+&|VQo=R`X~cz6dSE7mV| zL0ZBnU~>JWYL`N_5sMt}%_fCUEFMML(My_PKGybO_=a?5K;vIUUH`DvLH6=sLprNl ztfkD$BcwD&_{+I#DYXK1uSlk`Nle#e*l`X<ZiJ-i)!E@i=hLvBTJXVVmyA5H322T` zgyXMo^GxN7_Po;cD3UZW)hg#2iZ>?AuRzV_LDrQ;0kO4h5By94gI(EF$s6@~a0TF3 z7<-KXHo6j4Xvq^Tmy$cT+fRE27MK+t_`st1Q@PNw!exfXPVGT(2LX!|3;*nkcZdms zp!r~7XX<cEI<@}##$S|F&;<_2rU=v&c11VEZL;4tY%&#H@oWBycWVq$yVg)1ibiN) zs0tQo9Yr>|o7s<tV&@}qsJWn6ntTl#m0yDook4KWrvU9B%C3aW>rEs{VHcoG=WUui zdDp+4_NwQ7YeL*1o~}talAop}IA=Z+$v)WHs}A4_EtJ)?oq#dgxIw13zet}`NsfZ3 zumkfq5z`wi_)kTfFMkEl+-<@2?0UG}64V|+%Yf!_B*hYkzsXnGiJ$NEQtuo(F1|$) zJHQY)V(UJkUS+$e0NREWL`)fwSahrZLf4Pi+98}c92~XS2yqNExjaxOH{*f~lriiD z<**Lt-p%$Y%|&FNk4}X=9sT*A6`)<@e6u|8F98keKMGyeCI+^@p({sK%5I4Pq4!iR zTCw0ta=oM<RHa#v2Mz)f4o9KI@nF1mpn-U^fTl0E;n8uSS^215b2RVtewzKT*kU5Y zr3QK7MoMQ@`rd~!p@QU1nH|YWc_xsX&>O=(9+V#pm``Srq$9t?Q52;{2yPg2hw&0b z=}x0io`R!lUuOJ>zF;TSb(gB4X*l;#1}@r(>*4ovbbGUWIdDk~@0=eAXq7N=hII%B zE7<kf?a&i!X8`}P^T(`yrsv@ZYWIhOsECtDOit8*CTx+h^Yls~;fEK~!kXtOK-Ct) zVwhvwo5R*Wfk}xsCrqD>R2AoIOag<h5pkLu2qZ<`9hCa9=6bEwN2_bfmR*#)P(xs& z&<rYBJTe+=FsyM_>xueuX4)*>^ls$*ew4fAj|{w;b?r3|d1OCdFe`y&pe$JFe#YcO z0LCmsAk%VS=<%CX5ubYlAwS7YFZpv9Ow+}+{xjA5=Sv>u>mPB3r$tN&jO?NE=}fl_ z`VdCu2(?kFu4uPcZ~AE!vIB((db_R8Vkb_r>s?U`-GZUR4r}OzO6UBZP1&KK75%n) z_`u{f!6Q^K(o&1!=Kx?!0|oU(Fd;+V6$B?phHjYfYO4fl+||23{yLszL*!jG@6~qG zQXl?fW$?S3D%y5|3P@SNu-H-L4BEp5D;^OPFHcSDrT8ubF@y6gmu>u3I4)~@EW8a< zU{`6x(0j5oH)>MC_iplX^M)<CsZ3R>vF?))`xZ7~@+n{PSC%M~8#23Bm3ieHfole- z1Ge!ejs~Y9WLdh12>Rb%gPZ2jT@*>RL2(%cknaevAEXRm_ETUHUtG5L;UlP$;SR=5 z;<HAojYG2O+;y1tQj4=J`e2|g++=6c&YSOi?*;FQ=iElVB!O}#dSZvibCS6keP3^B z5-89tkJaNzwsAEstAQ1+!J;(Or^G|V4|-R8Q%=*5Sj=bV#xnjSaef0P&(>}PIrVQ4 z8RFQHQsSNL+;QjQi5OI$F!`v%@qvhW$jUP0r+K2Y529|Bce=8}8K*O1QjS$ZQBwxG z?%imM4CFn-vOytMMpn=kjp&_^XwRMC%BRvUhG4Eha(lXw53zf<h?t<dT|TU$=`R4R zcP7bip#OO%ZMpA=E#UwFq?iE!$p6<tAtO6mQwy`-OS!CN6L<JaCA`raIJ1w>S>zgD z?dlY%m)HQXfMP*^^1uF@Pr7kZLjqOUtjjv)cRLk-5M_LOqqBoRyw*hO$U#2~V-_l% zND{K7vpcR>=cJ<2O}Dq}Ne>@2+@_)wDY=wmx~))OHxfX@N~~yVW*psQQsS)kySi9e ziao+kL*KCybu-3IhUf2ZikjxaSufj=qu;r!GmoH9zuoUl?AVdUS*1Lm7D#AUvo%mz zxdL-W>%N%Gbo!(}y{5G%g%-#h!Sk1>tSH#yK(`rK3MMPU2n-C>u@9YgESXl{nX>&x zzMaqp^w4D7QWub#qBhhHvv%B*R#Ux)=U#xBHkh2o3a67IK&JGcv>QWq+i*L9<Eu%9 z3Rsc8&1+m!kRqs+WG=L_z@i(A`ZBaolijci<?SBns@prORA;I)Xb@I%G=$FJtRM-d z60Ot}NvS6ap0L(je9>Nr`8wWd@`LV~agTVSaYMXHk>;MN8O#XXznV&Q2tWdpFl}tY zQX%0@D)}(nBmVp6ps~IYwZ(hSInibZ$(>7Cl?OjVtB_1tOz>1F{@3la-5;Ni=dL#E zL0`!S5SGRnfd>-5=ZQ~ucX3}`8nj>{Q&mmP6}7tG9o#&@v+fkwK(H|q8EUMZ#BaAA zny8^@L1sG@qxx0@_9uitlg`G@Nv2m`D!_C|z{>&oOueStbK%A*A<U0uClK=5yZ1Vr z8I+gZSI`bBW2(e4Pg<`@(egoMM7PS+A)=hkdp5qtUI4=S9=J+0L%J)0<~||KwV0NL zDjjoJWU4%Ns0z%$hvUEO5{sL-xS0}%ruCAo7Mu)HC{jfP_#AU9U7*ZuEfV>O_t+d` zHy$yAyNg%22yN9t&IiU}O$lC*5zfjaSR5Yma+;bLrUS^&k~-#A-8!|sY`4PL@(#OK ziKt%7+UAQ*?P86mNVKS25{`6SVOq@{fh)$v=r01{n|Wf7RRi^uXTn&}LP;LR$(b5~ zN9f3y?S>F{))=X3q-_OM1YMT=Xo%^+5>iEqy+Tz4C4HOlIeqP&G+a@Zf&fPSSfFpu zr)FLdk#z~(!XPa>O-qHF0ZcL3`_m21{?KG5kBmGYYahcX0uJte;`4`1!ps}dZUBTo zV^9dd1t^D1h2^Sc=^z1MC%%Y(M6qpaj_*wPU7pmN^Zy>#So92gR9p<AQanMqVsyno zx*oj{5d^u0T~~t900>hJV3A(ZodBh+VO=2f+4e~E6XLUmZ{^L?UlElTtRia8W(=4U ztW_QY=8Nu`kPt|!O9R~?BzLIKK$rrox;{^-44PTNRtU5ydv4#|l#4WJPJukVw$tc@ z7nEVR8PPl9Dn#XN=^og*PXHhj{E3^~cX*aHpUKrxq(6WrIz&-~J@H`+|Agr33@)Av z#eJX&Z{U61V7Y29t_{8G38RrPif(Y0EYVL1xaK&CLMZ6F;tl~B`2u%h&=^l_OCBR^ zz}F6~piP0whWY1-J@5~KV3NVx=CNq(R@;^-1v;_Z3P=BwB}PyKiV~G1A!z)mwr&)n z%=OkF%@bJ@ThJ0Lo4=5pkZZ{hmky!*%Z~t3mF$w5P(3|Z*#M~KqDnCR%8T65mZVX` z6n0aO*pjvg!Ek}9Z-M2-3DH9uKn##cH7aR#h0JkkFSW}e_Ah5YC^o-1-;U({VPhTS zGf+I_7<1fp9LzvU)HFI`iprB!uK$SlXwmHO$SN})F_0B)rwxZM-tkP`zTlt}ntc#? z!5QPiVADGM=xmYr-iOxOSZniR`WO5QekMS>@^JimFba^|_@xj42u`?eB<0&maDeO? zok87N`qS<n3jP)YwK0@`56-FJj;o|<v{m6hPpS?bPddAJ3L#iGhqbYj_oWG0nk4j< z;4Avyp~)XD@~e`ZuFN_F>7ayr|2@(Rb5lldcc<rJ+7A$C;HFs!`v`C9&fc0FM_}%^ z;ID3v0~vQin(dRrQu~#?Q|W6mBO5Gi4_cr2tYSK=sjW*x4`3-%j%Qa?cozm(&_*L8 zO14wpnaVL4r~&JUpB*f$9+oj;qpU^fL(MT4!`Go=9-oTE)o@|=eMmZk*>P23Az2es z@{QQDx#HuBK>7{Cm+wMa(H_K}xca|0KIWj+ZMh~udA`G(Gec~?h-QTe`(-j$N|~y- z`n}Ws(tIFLSW1PgrKII5+BPknZ=e4HYvns@=syl&Z^2q{)WX|sKZnv5b%D*mFl?-e zmW2nocJLThg3_@+kx`N!x0deVtL-2$u&RtDp7%4Pmn);bJ)SWlqRtLwg3g4X0RJfM z8Pj0sXJbH<M&-%jt{i%Td$`saj%*(y(&UzSpfT5UWP>gNvVHbwlGT(i@w#7F{Zk~z zl+x(*g>TthU_K!X{YczIH}Q!Wti?Ui0_u-XMT&Lot_u&-X2Jbfg<mSonuTZn=XSfZ z{;7^<dBv|E1)x|>E#9!!dqgk=`S{Bxub_GTX16W?p!k<Mm+$F%-~#@3$C2Y{i`g?D z@17d}rLYN1va*!9)zpA4>7y$JnF9It`3L+#fx?_Sicj55y7&XkkFYL1T#Kppa-LEO zD)+KC_-dOhrb41h;2SS}&nPK~mRiF|Odpl`sN`}(cP$W<0ists0|)fV$cr_;8(42G z&4tzyfrqxd`vpfs8ah4NMwlSV<S{o*xqv@2w#Oow8g$`YUEDy|*0emKXi?!rOq)uL zwsmBsKty7mXB5|IDM=>K`VeLiqXNjXILF?TVOd3<7!Y~0+aeI5hf#+GTkN{d9GxMK zVu{3qsiM4}fWSGH0rFi>^a<s>%zC`RQKTi1kqa(0pw2(2pAwLBHBYC{Q{?&{6*5sX z*8F=d5>l(U9AdJ}4Lv(TKE<75uJYTS#3Y1Pj^U#(W`0Z)LE(<1|4nfXXPLKL8wH5p zj>ZxUm_+t9Y!#SU#zilawq`DzYK^$Quv+P$=VCxs{wiRj;&7JRYV^~#2g>FBlWF#o zZTf=)P0nhcprk9v{soQ1P0o~YTpl8^8Gg;urW#5kDq`_{H=oUnM(Hl^81rIga5bNo z-#!R-rS+S(pxYZ>g}kUJ$JsegrE`Le<MASUZ#uY~Efhx(T*v=CN{rE!j(R6xzgw?Z zwbvQf+w8sky%ED`1`arnm8I4R0lw8PAR*j~bk;jQYo7l@t6G~NQ2lP?JFMoQ{o{HV zxztR6Jgm5;iW+;|(H*WDaPP&(VusBB1Ih&MO9p;fHpR1)^<V%H?_wiA%%}JG0pw;h zbKp1uKlGLX7;=LQ&hK$2+XwWr<*&*5KLh^Rv=Q~WZ2E9Wv>BVf>?cbo+a9@S2)%5j zd%-#_{kxMMJ<vcI3D~Knr_|@T(tX_Q^N~$#z8%6`RgWa1h=pU!dWRl_0pT)iEtAK) zVPJu6_X9RKungcAh1ax>Xz<haaRF07tw=SaF~S9xxy8M6e4jEzKOr1Hh|eg#Cm&;C zA--uggHlVzhN#aHhBIRwG+uXk#?L&)!C9bx125*yE8`4F>OW8ehP^&uSaO}zCUU&^ zvU3dYO>=o-x#mD|%SG=dXAWm?(TU-hi;t;QXyhuNk@KG@|JH%eMEigXeo}FeDt!l* z{(YS5>hAx#fDdEBTmFPh_;td&2gJ3F4xiGloT-4GdzgrN6psE{JXm|?<%g$(j}THe zUWfzo6t-k_Bl+EK>gfhVv-K;GGd80`{BrPp0CJl38ymc@M0qK6HcM5*ziS9i{f-48 zJ#DGS1@JbU`7;?H3FL-9bJS6rIx0Ki4rwRd;^E<<Xrm$BiJb=m%MeuJqj#F7jl28R zTdN!1z2$x5cS`X2%I*4DryUAkLC7S@`wQ7DaqjehFD<z?XP2iAo1j&UOJf^r5kIb3 zJ0#_sYa~n#NeOWMC=OMe>f&5tb|xI#@@+8T(a9DXGl#;l^Y*r%rSz@lRo-3jp`SGO z9tOWXY0fE4G-OxLQMw&tHS3-aSFtt(fYlHyfKiuG7%nC}qGlE$C4j&OJ_vN2D|dtx z5hS{db?(+CtzutFa-s!S!Z+L$c##2y-||$*1Bs&QYNnL3a`Q=ymTp5yum_c0ZUBa9 zQ-gSeEB@CEF;~J;$|9ZRmAiz>Djih3yQh=tICe$LRi;9Zx5E&!v0*ft+8zw3aF_#B z1(e?f5??Y_wzx(0mx2%|oNH{;h9tO?($=dx*`E))UC0OgueWkRL<08>1#nS$3J23c zeS@6rh<C-h<1^T7ko-`(E(<~nh|s#6gfmPC)1O9=AkdiwbbvSV6W-zF*>P!ao=ui* zM=o-c--+KVnttblQQ<EmwjPbA;Iy>BvYeOd`j>%%l){KVo4Z?Ee3-;yG_r+7>k9J3 zzkh`N72B&zy@9{L=(P|@YXncb$TD#9u?_hnp51Srh&sdx67Hn|0vF~G<vsN5DZ93^ ztC0qfE~1cGD1?!hQg(DRj8@ub@lR$?_UdIRa-&O%E**P81m`L!<K|WP(xJat#!VSc zcdB$}-JNq%L<L`zEcH%N;}X@VoViU%K^iX0zbW(-45-FVKEM$=z<)G3Y30t^Te<ib z$(KM5_U&6|49GX@3r80V#u0-rnv2}i(IB`JC?@;l{6^sD+IiM9O=Gu7cQX2>IytpS z=d4ErPB;Xszem-HZg=y3yEP&@>b_(B??)}4XTX{8rLxZAZ}ar4=|=i8)mTgJVr2#v z;^ttJd8Y*5N3u_ywEgE()6h$)?Nr*R?2gbez5L_1WI&%xkg<53YF4=fM(FCgxXIeT z5N(vYQ_8e}P3coDr+Oqj2(uY8dq(Bfj@jsU=<^!%0={B$lsu}gWc*tmV;a7bXm$d2 z6v_<1<~_3BKgK)4q^ViwT)C6W;{Hr=uV9N@^eH2uXFvZBEcU<mTG}~pgnNG>`nN6s z02Kdgx%%I(#s=2bzxC=duhlOqHgWfvdSs~+V2$9K1m9JSb2-I`JHjey4V5!xd!f=i z9w#zfz&{F5`q6u1*LRy2ehNCd+x6z+Mp+9R^2}n&`Q^!LBx&4OC9?K*LUJl~+Er_* zN<$;6w!AVa34K#%xUKsJ<dQ9$cQKyk*Pmq3h%9M*T%u!})n;@^;7kwuakH_4`@6Sl zA_No+e)YJ;SKhVzI<pjsocywNor#&b6rl2C!wcBSw!`;Jd1e?~<6gwC#vqsX=Opdc z8-f`b)@8b@!<)%Zt@&@*sm*4yscI-qU1gyb`}IH0-haQanaJ6DHD2r8zn-VBYv3&f z`e?WQRF69IHjZTPA!p{2oLaV#@0qikrRTAP{UujRLpSZQX<fC}mR6|DuuOVw!>PAf z|7hdQpq&gu^e=k?vHDYGRPIR)=etqr)xX};qE7$J_IWtodmk+iN3G7v$@cm=GP3(M zI{oXsej6XJqxbdv_ploEHoSP7_Y)rXC!66_!qsO|pf!;>)mt4UaF^%3K$}N!X;G)a zTT9z1;Rp()+(B#(mR_|R740m_Q{$QX`wUpoK^K_SmZe_3^|-bvfPM)Xw4SQd&>dRN zPXAZ!x_=*s|5N^~tqyG|{N~$h_15VPA9S>sQ1VwVjxX7>2~GUPWBJO%>(Rh1J?Im{ zn~05nKkG~oxO49o=>`1RU8R*hZ=aY@L`r6!``}xiX2L~9J1PqTSrnsz!U~%}AB3-G z+~%)cChgDaIG^YWchZxR_`i?%lAFDht`C+0xUNB);?AVGZ6MEJxV|Wy{>GE$iyv5O zCza{><$x7Vlb*errEbFxKtv$!9@E$fUSfB-KRSUpQx4XSCdw-O7~XN^Vr>E_{bWEu z<vj<H?M3hxrpw}ouF~}2ARq2Wqv2Nd7C?DJ=VZ$he&pxAdc$1aX4Xm~6o*+|8hya_ zxwS9Mq@nAOlBZU8Y`YJ@?K!a2mZjY?nZ1dtb(mvT3i#^NFV);v?fTQ11?;5ifOLc~ z+V=g$p${r>enCGZdZ<;X2cU_~;GbE*q;L(h^}mOE$VmV+ibQxkbn55v-3HydPn(ys zCO4yDxt0MRJqeC>42<d|LaqG}S%=9`sy-b<&!vVU!Q6rTV$#;oeU@?NwucLmz<1u+ zs{MpZ9w#GkC^y;FTSKcbh#&E6eb;MtL>TBrsrW``_W1>u>h*1-0GZ2KG!V6vOlbul z<}IrToWwS0yLH?V^|v1I=i}37G@u_q?MbD~B~iQSTZk*_B*~QL3n?Dfol#OAtm-wN z&61x)h9J!v9`CgfT8a(i!#?R4&;4%w9+3TnJ+7Ofe@K}5?q!ne*)$;xdX}kaGyG}{ zOAXlkU=VHtr4Zm=0#K?}I#(6Sq{lW<J~L4*Of4)p*AXFZ?Zb9)DdM|(4+FA%ykwfl zjDi5FPLsO6vf59Gp+!b9cpNuD;*{V@<~jDV4>CrRMpW3Jd+{AazYR7J2=qQllg*(< zbIPGQvj|*9KG&b><8NjsmpA}K1mibg$b*s+a$n}~6lReKG|M`sbi)NFBgXgCavnpt z{j~qI7K*e!<Xx0{ATyx6JJ}gD`=GTD*Vs6lAsr<7Yb+SB$^C$}TC<KswcJSr38pz; zmRqnR=v}U^|0{5zux-0PbK;a=-%%GF8{IcJgIEG)PwtFFE8E^D#mG9!0x?nMU)|im ze<<Umg4*W=3Y>~CZk+ErZ?V8{EigpI$`ATpQ%Fm`%bTFPl&>nlT&1>LrBgIYc~j5& z5+)e+U|Eg+A(sghz^_~0h%hC1GC|_=DcjM2(~)9i+JC+l^Rhv+8}0Ub;yW-0DR@m< zcatY!H_^beOR(xGcN~-(O<?^mk`zs+NoIR=(2ujcIfGz}SX?bJIbtprc)A?hX~D6- z5Y{t775+#mT24+87y{j}*+4ey_493AR|;w9A%n6+tG0d9X<rsE<FFsWwo@QIAboc( zU?aN~o6Jq;K9&=Zzh2nseJR|eXVkE)_cc6KWq(P~bylddU;)^vw35Jvr-)9h;kPk} zW7-%oBml`6LT#q=NbnOAs|=%KHlY+NnrM&U0YL~eUI9vBGbY{6P-Z)&GyNjP*quh+ z$}RF6%QOHaQc)vwh|DS%Z23_H+Yc571jsM4WmvSvhA-I0XcKQm^i-(_=Yp6H+bcbU zg60GDuu2>!=*HrQa#+&I#)yRM7W1Xye>4jJR51FRiBfZdR~GP1Pj8XXy}25$AG7S= zzByvSNcmL+5ST+U$>5^k=a^(g;_9VdI#O;cpc6Y<fuQzcK?Kf}mg?vYvNhgkH>TOl z_+E;LU5eiS>2)3DoX0kZG@3zPbt;J9lp_n?C|G8gM9CXu6T9`Q6c4#sc8;7JCj+L+ zg1J9GD_$g*J%^xQ8xnX#z}TDGJ$Si}5@&eEl1!pKM}X|V+EJJSlp|oN=+CPf5Ha9b zL;CUW*b7oSZoKN>o}-Bk|E?iP85qN*@QhB!V3lZ#waHS^bC@7hnhU^wF3R{EXRgf3 zO#OGh_;yr5Fly8k9**^zZle|G3o`J4Axt&pNfp6D<$)!OxyG1sGV^p^R0fZ4S@kF4 zK&jw-`;Ia~-sk{=vA+kKEf@xs?41KQ&#<9Dd9c|fUDm)TU50Tq-n~pd037xkiR0m~ zAP6^vGuZoO6<!;f_1_d05nQkb8qg7mmmNU~+uV@i^5vP*F%&S{ri>PAPPtfD56B;O z1wZC&%yNL&*+d<xwDXA)^=;{}`ABW*@S=JU76M4xNa_{wY@0Xy04Nz<Pk1tfO?EKW z8qpY1s=S8tN&4_~zq~7wyfXS9zH#1)TxmVub0I{Gh{ws%cJnpVVW8fE)tGX8y<yUi z<S+HeUpLzdk40!nw`Q3V58DK2zD^RZx`dghv?_dyHiej&1>sL#YgtFW_`nP)ulv?5 znQ=l)^SD`lzeOb+GmGbB9(UPSJO!6~EZ<4(j<1y938sT8)AcNb>=OUF8&7wK_B4&b z1(3Z`^G>ME)-iDNVr>@xpUl;6Py^RLf2;-WrfGz4N{MfQ0oLG@7K||1wp+18?!PYa z{p`tEL&1Eu6j*k@o}h_;2RWGmwHJT00f6Wy6)V&e09+E3D*st=@}yTMMqP<NPV+3N z^p=~;&FpmvbW%)9WA2$ae%8A#U<Huwmp3=k$j8lIaKP1niw|9V{7GL#m<(RRBF_j& z2kmy4p45)rm^k+{^^)KN`P1E7S*J0Xt9s{mxD#uyCJKRA3lYl#)vTz|K^m5!fk~eJ zu@I&meZCw&n`#DRXMK5<Cf83v4qORbzMktmUEzdO5pM|09vGXFaS0lB*3Cs_;d}fZ z>=mfPel{;(1KHh1E@MVmKk6W*A1t63k$PWJEnXVVH5PP|vk38_3Q7{47sQ^`-K%4U z)&`Ij=pYZhNJlMgQ#YuN+*As40(DY$kxbA0&@2y-CAC<sb2Jtff7h`BfuqrKl)t5? zn}Q%-sWy$m;qaGhxEe)ST@q@fY5OY@+x>xldE`=nIBvq<l@VN7?6FB;1Xt`N$tqh| zK1#wkn!F!GiBMS}g<4!Mz04M&cOtCdSb4P%w?yIae)lEDI*06ES^W^8j6=Kri@4sN zK}#Sz)<_{Yj~#WCIvU>jkIcOIpnHTZ^5UfuBYNwLumeQ`50&{55FYRxDk%V#r?@C# zMW=^tTQW!f#!G~ce3t^^xbKL7>X--2P|qg2B2~m7ZU^=dh2put?QsZ%32lnVx@LQ3 z&ox#N1D%#GLL-njzkG)IoPAYtK2c;_z8@&V4pP5Tsy{<BsESLuh?JTfh2J>$oMQN) z6*3qi$ukk4yMbL6C{2|eqt06O>dfy;<h%OMp&D|gf5&Ih4X(15ILEvnP%SP~1wyeZ z<jKtQHS2m43>~J*4K<L}xo^K^sgv~=pe&eRwfnRTMGn`l_QEuhi`8S9MA7IBHTMF# zg1d<~vdY0qCQr%YLr&mqB|urHnu3fR|ETTCybECghoe^eehKg#LTfewZt#S^Z=Q{l zGoSe|FX9Ee=|JJtITR=%m&FQZFb3ynda{sV@Y<zsqqnMQCwum5&hWI}3^Y>>_u3=0 z*wp6Iq-H$YT};O7tFPDmjAP7hP~kl3pAQdk5nwY{Vv<}+m=;cvKw88=SaTW(H3$D> z3?fMiSx5_Yc3Q&>^Wxq`YgLVI%VAN%8_dFhUcK{ARBKVtAWV}Y)Q61uEqPKT)qN`Y z9@G<T<}e_CpIZhxudYr8LvjX$wiDo_phM%io~%g$d6-HB_*i{N_*H-jA@XXmQo#hK zzICl8EK8w~*eNa%E}>*Pr6gL!d{)1|c{Jh}#>jB%es99XQmV%5L4B3CK4@0oYakMi zjfygqEejNFHw|=!QyEdjLu`41Z5<7%=cFgPP@ZVZo3WbTL!x<`QI>AS>S<mZYuuny zYT0C-KmH6Yr4Ibi%;}z7dZ&VG0+4yu(!+}eX5ZL6E!`S$ynxnC76BZ>`uO?`9A>6_ z+yen4XB$W`Af*rDymvf*+}ABK19cq;DzZcr9Y3u;Bxkvr;o30_KZL?3hEwhpf2gdT zwr#0et1qdARq@rFx-I4`8sOBjy41W(9wxEgs?w3NNYu;BZo;+XPxSLlP*x)dd+i99 zLxcxt4j$T-rV8Lo{+3)bK-(~&kT}vp<IX-FLjMhEf3-gKR}6GX`}cfNTtKey@b2zp zD1s#7jXJ<{4G<=DUbt)G1<i1eeBej({&H+&w8|SAOYoaCe1LZ*X>0)YiT}`On=u}8 z8&Mu<hLmnfDWr|<ULExbqRZpJ4-TFIb8894lWo2t(p9p_zNxtQBP!h{jtTFpEVD8< zZ-qb7qA+!BcOuaCJ6t+Fc4Sni(u3hG?3&vWY{AtaSZgH;J|%nM<@_q*8rhJ<?S(`P z!Z99M3^(0#0_s`*MT;Y1qCbV?jjl>V3>}*ONFEkjA=I}O=9hR9q?BusU_E<%-uxuH zsWHiEr4h3cuZ`;X4B6$tBCK97sqbX2gEd{yd_STtz0`x;nGw|GYCWLl{BdHk?o+b) zE!;^^1!oUt4SZmV_%#Lors3z9?w=wgSc%pw8^|DS-oNnHVM7xcK?Ssu14TCXH)-ZV zb`=<64V@7&qCnE=qa^%yb4NktG%sWHkp-%vO_37FZq6rjHe>b(61D{gX1Wc!y6q2f znS7Kxh_RB+Gmm4Pg|`l_^XRR~IH0f9NWgS8Q#bVbFA_#V1;N?@d6s2_D^L>2j%*kM z9+6Fx_MSx`V56W*%^RsVrqT`e3-oh5rVFeg*BwXsf(BODUYt!HB_EJCIZco)ZL->y z=B}Dee9$Y#*~iWY%6cWhin^<?Y%Thg*sMLdV<b_;k;UIQbvAX%L}xr1eWT1G$BB^= zF^}5sscSupwv<cuI2`qmG0qmnTEhRrn=ZkceVbG*WUrZ0mPRY9+Kp3bm6ssNq}Adr z6z`Ee-mKZW41&aHnRR6&q~57OO`PDY=O1`wMJJO)va%)48$kcKA#^<CCb`SXu*tU6 zxK}VTyX1r|d5oVaI_8*13BPoPg*B*Q_x7D~)>Qd+4bDjxBdgCWy>jBuK~F@`vm>k3 ztkuwyRE}$uYx3Al0JQtW61G3o#ZDpNY`wB9S|3=?o-TPz8iVWZN*2ZFQm4+%Z3o1I zU^{mmOS^{0TF|F(#+^6_td%&UhiShXDEsUC$*V31K7cceW4kB5E5yl@TF*UN<mAWW z)MP%USVyV<BjCSn*T}TyB)erq&BFVvWo!BjC{UWXZp(y>AEle7!`H)HV<Ec5gn9f; z%3KMmAJl*OudZc6NPf<K-I+n(PVva=Naz2Ix+r9G5<0oziLG#D3Y9>(2?`y0C`lqb zlvpPV3spGDq3_5Ub3WJZL>(=<=EYIGGd#a09n%XR&cvVj_}sVEmgjFR{q<k_Z7{e$ z8KFpL>Gc^ezb#$;QtCeh<aUnN)6@<R&#S|5{7&})n6hV-h)#X>&a`msCbu(+@^sd^ z{#u*^5PVhrA$NL!(RVIuxDdn99nf>P9ypb{!hy_>a7~{*v+37Fx3;d|#=2FXP~DL5 z_}8qRT>myMXF(-BJ%M4f7KbE#8>P~5rD(@oDgRito+sgSUkLiR!o@#NEO1J9{*M%I zL8Os%z4{oS;mCq13BFnse3T?cIpN-HZ8j~U)?==sz?}8yOr9oiDC{6BpTuy9_#dEF znY-Dnzb85_TR&G`m-ek$u}sqzncGcE!loxWL70T@aCi|9XLGRe(pdP8sV=blYJK4) zxk@!tZ4e9Sc9Qv6KelqJ0#U2HMh?Ll<`j|TD^o<%ltCJ7?X)$=P%uvG)f}a(nkmK3 z?zQHf!Lxzo+iC>$%qvBXIt$06w*@Cv$@PJh2%3{B*-v&ov24^o9MOwLwD}+?D2FGb zcKpLnrRv;{DHY}g*fujZ3mE{c``2=W(Tc-NDE5lS0=46Znw+nQ)(5!jKn#@Zihj-$ zPxug(I+*Mr0;4Q3N+pWUlYsk#5OPJG5&q!FktKok0JkqkSZ!c67@+_{M!OFi6{&_` z%c2s^E=njR<@`ojri$=VUV>5`QB^aI1Bb#xLTjkzxNU7j>ggF{Qc3lY8)hZ&II$pG zKyFn<w~-Lv?;HjRQBERqdK-JElJ-9pyBG7ycRKTmKLs5A^ImmcqT<Br?q?5S8zq%H zi6^QM`z-(q0YbAEm&6eYX8nFNfs3_I=`&QGvr`4|FAWVE38%*Kg=`MRt>4sjR4__N zDr!t6R8RQuRBt;5E6QT(%88spU$6z;N~(pA^lM4tA&k<kYblOCrlrYZmUr!8w)Zyw zY=L9dR^r$I%COTtlA7|~Y3-!;svX&HOl<Y$TBKq0FI@HT=fl)PYF@q5?YS1t0C`kI zYWQ6pE)aqZ)Np8~P%g#p0b)f}g#D~0xSn@UT^q1l>IP@gtyJd#b=uZ(f#eLhyc{LB zl5}}&NrM+<>{d5hzVqvn8|iQ@F*_VWrIduz6Qxj&n}M^N5*E9^5p^&9Z`CiR*|ml{ zlPC>qCLCmIkKbECsv;en)PHCyK!(jaZ4c2Dcm@#n0`?J+pcrICCbly>Kb9$xPp7`A zv3IDLVEl~lVZSQt8Z6*0a|HGwpo<qNlbk6+d3%Ex7n;{U-JnVbbNkqnx4<?I3I(c% zTD0uFzyKW0F7Xt)gs+u%jqx?7rV~d?rigzM^9ptG7>WmUrJO7jd|>@%c7tBkb+wnZ zC$l0H(<w}UZ2rKU3sGDQ;Lk@pod%^Z2hhJR&jgjbnEOwjqpPKVXJ*R@VxJl&+{Ml6 z4`Hw|Gk0}8QS1P`EB1AFPCA?B>stnpNaF^EdhEH0l*~+J5X2k_7&(d!*?gO&_v`TS zjr9jNeC*9^p(g>R!a<H&P9*1c3khhj6&kcIN|JjR;;D|)fO2X6V5~N(qbFxM*}}Pn zMY4GZ{xRAyMB$LOqY8UF1gn^tXb>R$ZEl>^PB6mob=wAaQ}eKjjQBJA*?|?qAHN%2 zD7_vglhnu?mrKH#;%J5ZO-zXyK6f3dg=5~g&+g(Xak)h(dn2;Z6fH^+3nrT(wLL#V zXF-&8-OCTz9TL_Bz`d-+vnuc9EhwUC-)>~Yyh+ShQ-Lab_u7JgPd^7WS-httJUdd~ z7nV~<ITOu5qQs4@GY?K`lVtxMqhf1NQfaIqA`yi+^Q$NtP#{^CxO+|h1@#8_OsdIf zoqd?fuNYi7XBZmITzQpPekxq%4CX856t*tJFii%6_wh3DfU`zSjquVI^t@pSXB$FX zxGRe!h7GhGu5D3Sp_C|jN9^?kA>t(jIDCtpn6|-e*`N!jJ36~Xv*JeEA^FVltk8<4 z40UC?LJ8_T;x*m;{7EUUeGN4G^3zn>@$uSq0FI`mBRUiadE%hwnblI2`uPi=z(x6u zlhV;%bpQ9Jx1_a~kRg?qK412EoQt(8{L+A}v<v2ZLJQr0Z`K>dl%HAc+`?rXGGHwY zW*?q3b1$O<d5lz?ro3Mdm>vNzPIJPX9pv40=b69(m-@6|Sh^OvO--^v634T>1+CyA ze+A|8_<r>qT*$YBd?`aN;5@Jgvg{o!r2pI-@?9r;Mn!sx!vJ}D_xRkzka%b-JPs+3 zkgOYKRByPf+F#MAO=gzxzbJdB#!!Q;OE<PwY}>YNt=P70+qP}nwr$(yO49kx&FS4Y zz555eS5>p#8a3y5#_zPv%}`{1S64MOq6{V%ers0@Su{?Z8`K71cu`@X0b#<LOtO@} z2fyo5@Q{hEm02F+znL9`JFL(lBX4EQARW(W!nWAZPTLctIzj)6@bR{<cjkt5CQE&N zPWGfc=$(4DldyTL2;W_p@eQ_$@T+ORBN=7^Jsgt=OhUXfZpAqaolyI%NWPj*dUZkX z0Do!eoOKb}Wsb7~t@Mcj>J?RYe>4e*`A52+w^O=rD_uf{M^B3DUivfCp(76p<=$q* zs|KsaKcDCe7H$O@8429?(yU%J2hBg(Feoo*`>t1s#=w(<v+o>24>2P>kH_)1M`C=A z;GsW-jYu;LV#BTxr>J@T6qA{aHM`0UaxTOi0@2Sd5^%y2x_9@WF`tMfRJQ%G#S~d$ zr5@mghXTvoNyRi3;UpO-6+ixNlhP2`&63dl6ElN^tRFCiU0@Bn=awp7coT$eh1^#W zQ|!yu7?6n4a1X@wj~~8Ym%7i`&k9@!8GxBKz}WKtxOR|9E-g`iXFr1nf_YahWNmFC zT%=Cv80woWCprduyAo2n0UkS{52y{_1{)AuWX{6;@##-1I68|2n3BLJ#~H<^G2h^N zGmp_x<1-A@a2?UDu@IS=g|p)7yaQ^841c1OrA2{cYb^?B_3S`c4-{p;ImR3O9NLjl zwf*Y;iF-$ypo;^7iU&{oRaleV&SA|&?+rblN&!+O_YqZOBEC2-ivbVTc}c)wkDzdP zZvDHzKZH4i7DPO8t^TthJ@#j1pUXKPx4584=Cf_kHKf~GSB(9`Q5V{|zyHqG_3X9u z>i7T$7pSkXyh4LkDi*qD<j}K%YJ#u9{Lz;k73&^RPuB5SUs*<)QSP%_?NIejn{2S) zBkv=|IY+3KhU~<yc9WC}IuQcLS;R;Rb6S6g+K1^eZ9mMtZkJzf{+`US$Tb2SNRqQD zvb8P4P<N0o5{Qn?2_tfw72kfIAP|!a-GRv4jhjE4dq(*(z2h^SR~l3C2Md?B#d;nP zCTBNs6y;7ln{$~5x&^Sd%5nV7I#Tv^Cfk>CXjkOTksI=9$t09Jix2Q}gH^EX(?n0! z#vh9~9_j}HUv?Vs1ex^jeSmBbo1g+(ChAf4P8+8x1$8S`E2%`P!YlOj0Y4FlLm7i` z3?W7#;|`n&|CS5A`|Hw}v+$Db@`LY_R-PQDmrBm$vt+k->m}Er#y;h8A+w!SG$eZ> zIBvgdoayz_wIETsDK-Q6E_{zZH@_EZ1;cvCW+64vwq_GAMU2AV3Bm_Mnghk?VHdHV z`Qn`6b!BnKawPXN1h}6pS#;(SR2j#wZt9>+d_+!U<Wo$^ycyhe@@@qEJH9$Gt&g`& zgVc}l_ARTAD_WtHq>4F!!8o_h7~DTzENA=mR@6D2Fy=MNA(!Rk%gG)-YH9|{wGDb* zJdgW8U~F1r1LX24Q$n<(U!L369CwQL^A@j)czEFmOVKBSt?rOIP4qEqNtmbw$G8G^ zW*;C+SuLfL{fSKqIAutU8e#=e@=AfCRcSC9v^#l4BU;?&NNFkbqvp%6)!PfOq>1J^ z{M<%J!kptkBxvH|%;k2UKBnb4dNZ^<xj&SHmgvu*oUfoZ+ORx`>#^9c38u)Q{GcLX zAYzJc#)d83?YSH+fZk6iQ2A`8RR7|_<%0G!FIr0sH6~R2;1;u;TjHIydira$;GkZ0 z8LQ~~T4YP`m<-IW^-HhDDcc;N<J(zjO}kLNu{@NH2+oxEg0mmAtYyShr;T%;YQ2+I zrg=QlU#tWA#R}gYnFP;aLA{p_&O6_^|0tl}RtXo<`j31;W-eyLbo|lUcR7xgO&b}y zHN_-Wa`TdY*)juWf?Un2jKr=eai?1ASPN)WYr48Tue(KA_+cPO-py5b<mjKG_7EN; z+g0<}Q-&7UO+cpkV!{KKDC)E~<?+kD@0&H0?%S+X66)<xn&W}+vwk{*^Jvw80Y{Qn zGj^1!ramA5$^KLmN7s0j`MY=z_tSsU8M*wEHfX9=ceB!fSr=Qy%xlVnW1B)L@XBFQ z?m5(9@=`1JcXl-MH}R8q6uX@6I*~LCT^u@{Bd1|#r`;`TzU^QIRMqJ)a*N}^fbv>R zK)RHJYV+cL0=pv!)K)8<A;jHhtK*`;%o%T9qk7=G<uMk%$i`giwr?$ZRmgb~b({QX zPS~cN3aZ>=ie<il{@;hjHx(jBWyH0CGQ#rgS?)Bm>+Uz&e~xTpr~OF{{IyYR{@N&L z{@Wh7u93cz{%<2ZSw+`2lODnM^lw%fB|o9Ur$#y5rA~#!Cy+8S$G%yYf3(#i?dMY` z69T=zRil!mS1;FY?`}GK479oSrIB%~nD(k5ie`Bgl5#U$5R$@^1{=ysSr(|P;2UQj zLHYsWS+gT~v%e1UvgeZ0z`RO#d_^DFc|LX>R8oUrXY?U^#ErN%2N8VrAP}7C8(~$V zV1FxAv7mYwXN1wV*&+XC8FNQS`5{<-YLAo66v01i{Lw`D+cq|h&aBxl{==7OyHfIq znB+RtlKA58;VX&=KNbHMGo!;Il{*-F_-tWh*S3{{b<5aB5U<C~u7ydgT7t+-!HiR4 zc;jI!B3_6{<mCRs#S?C+=OOSgq3)(W#inFW%)Nn6zO>1M`z$Lj8Kjv%?x4HP170ww z6vn2m2TZUH)$kyt<$Oh;3LMOm>>w(*+0np*NAG{e?GzV?UU~&r6=h7lFeO~>(30b4 zAM%X@^R-h?16NR>SY(`Sz1fhfh!+z!$`g9+`-)L36D&B}hWJKjQbVrn=JK^#YozFK z8lXjZ*GRHyTTI;`TH94V`_+D@Ks><WJdy0nUMQk2wmq>2sfs^5?NGOSNIw3cM?yQ) zW0+c}hA7RFEv1r<pXkYg2LAh@I#+Z5VT?C5<S$W<WLV-$FFo&4TL&GE+H;sq{D<sD z0BO+O!)c&#!k<1X2vN%wN1Go5M&%Ci@l8}!l0Tm%;ZiKGs9pk0LeoeElZ~VF@UbS< z1S5eq++{#%w#m;H9cBtjZqYw-2Ct6KffEz%wk_*mi?n7{k~lQ>ns~_EKpo<FC!sO@ z;iP?ABAki+vOaf~#iN_-%Y;d9ONH4Zv}P1GG;t6OrC3ttm%EVd2R*oGfo}37d6-R) z@&~~QlHfXIIi9xaW^>S{zE2Cnx)o+ak_wLXcr1l#dmU$vuSrSuI(yK-pbpa`Jl$pT z<7h;R4vI>pl>5=I7+|t>6o>l}S&R1tPDkonE6-DXE_dOpd5A*vLv)W0vIjrkhT;@l zi{W4@y)&NDiFr&F%KMMrcH86HR!(dI`PxxLay-O$%z#vWd3eUk^De<9bJpvQBtyza zt>a$sXfRuRV<m49(#mguHPX87!;my>|AT)Qx5Y|LSL>9z&Ly>Rcd|))I@#>}q_}VC zr5GjD-GvJy^XSy_5Lm>sHQI$MMu)kc9pT6SfyH<<#@P`80RUM1t!9S*x|)qmO?Ay} zOl<!@f0X|JSbM*2bnWF4#x!W0&q`_d{Xj7|L4Z5*FXi(DNaq&DO^D)wBxsy{zi>$u zQjUwTNYNXLIz78wUAqjCMT(nh92;8H^D{-u7!xNr6;?TJUD}nBb*gVNT24Ze8;@S3 z`M{APQac!;$+0S$@)f9;ZAi*ch6~s1t<GO{eI;&py1$|^T?&w8jTDfpRVpXWLQLRT zNXAQ+N9M2nI_4l2G;UenEF6BES$vjUgkJnI_4(17>rzr~YQ(mVEJWJ&hPU$s1Qo!l zmn;=XEN|Z3UWlT13~iMfXripLmm+G+f!@G05nr(RF8VnqNmqH&KsUU9=5;R-E|9rv z4`GK%Y{qi-2h1JuOM$t#MaN58y&z~+5G2V&XnGy`bTw-#<J)`xT_$+}7=F2G+ymVI zwRD;s!6EIduB#FrltRZ#yYu?H`eDBC#A}oOv}+YbEv3@LBVV8DEaC0ZFn+^xw<$!W zBUj$zmdMi?pudVCGG8onZwa4j9HJX$C7jxn<MegxbW_N~PD?pM29>TmIc9wtn0UPg zTR@Cq_)Z9Prk2(PfLLV8zMIe9sIY-{__drFS}5rttxdArOEzOrEi0f+NlP|u9=PHV z>A}%M)Y}twQY+yQaTWv!sN~<GPPN7RS#><-VA6t-Bou>&-r;C{`k|PkKQpo5WbsQc za5Z6oG-hchqDj$(e*nR%ATHjPj%ayAA5taDhp#4N+RDRpG))tedHUlxw!i!wH?w~{ z7IB#l{ttA$Wwv%c^AU}fbJP;uY2q^wc}mS1(Q5y72i!?K;%s@$yMBv;M$RKW$hO*> z@E$D>^L~uJu|M0Lw_C0?Bp8~PhD8=2wx$5m)LSl^7jqp;cf-ta#O#PE_NM$%Zs8iT zTT})kJXgM=3Q8O3ne+Q`aPujY{a(ANgVWHp2fCEt5u}&h7SHtyOh>hm=EU_vt#Z-< zn`^2oi$RX|Y;b25WOt8S75I+}E@r1du8<qbb0gGdgJt$gbM$zv)!M}jvb>ekx_;GL zxr+ek37|&dehVsSY7YaP;gq4_1vBslMSu!uq7(6#9@RyS5j=@9Ur7~J{V7x1#XF9s zcCSRKy=x_kM%?3}cv`iSs9w_B+Pg6eB=?|zzGOyd689KF7nbv#C;H4=SB28jwN6=$ zK2hW<Mn@-of!&#dw;rjFcY=S6GeRJHbmQK<1*+p<`gP0Y+jni|Q=)jUPwsabPuGJt z)v&c08<S7|a?H<9=&>0m6nKQMUJ}uU=E!_V`4Zgbh$|MK1&g5dOxUbByopdgWTz?m z>ygl0MvV*NXr)5LBT`0NL)iS@IsyS5H>|?l6DPN^q1`IOJA|?Q!>$kpA*-k(?}1Jk z+JO5WQw(m<Uj;joDYx(tysN)iF~ZQS?7S?a3H=q58|0jZc0*P0k(A+&r;&q&cpRRn zbJ8k50RMTz2v<5cUIYXHDE>W{=>O|8$;?>a$k^e3U_HT!e72kP2*a*E5x`vHf=bPf z0CG18Bxh!M5FjGl!@?Abd$}z)rMC*m#^bVo;6h}2JpXNTWjN9nJ@!i-XY527mWmKH zKV~alV{rMeFuX9!LWwQy`128YO`^zei9@S#Tik)A2(kNc@N)Af)Co{J-7|A~_r5jG z6JIGKKnQAFb=RkcIL@r;O+#pMN8*o;tHF;t!5Us6WyzAEM_r%K`H$$D5wIgysb)Lc z38~R0FB2K^OXXcwXLS)r0pGpG>5HC7$j!8{H0~($$GS7sFq+<{cd#R~AP4ZiZ7i_H zRnuKRR_v@zRS$g-tk6Xl57>-Q!#2NdO2+#6lH-)`CMYLI>mXiMGC*;44{LAfIy?fa zOVM$W{1~hx!!7f_8x_4ddLu2tzjI?ne?AVm`_+D0BY9mU-0Wy^ihtcF!+B#dj~9#9 zQ>w~naX3m=ba_TTKf5D3D=c@~ozg8|sA%t7&9!nzk~lLY4zrmbTZReCe5V>!WAkI> zO5wWxUeoI`u0OGTWwZHGTN!lM!&vw*%6HjlDb6rAD3M-FI+_^X8OJX>DO5T?w(Bx% zGUOxA+QW~dM+lyg|7|xZs{X`+h52%QoeA&YsT*Uz!2jn4!GdgBEQbUDc)$k$p#HBn zh?Tj)@8)P$*Nok4L-Bd7-J?_!7o;|1?B<qc0FAKj$PCSfOpur-<U%kD$FwAh1d=d5 zpnd6m#oiH?bg+?uH8S|ijW_!xNFt%wsu*2yeN=NWN_2gxy(uNqS#!1VW%78y?sPTg zK@!eM|KQr1S=8T>q_!brq6+!#>8=RAlSouM8Z+*dN<40|hzm}OyuaYh^aD5n=f7RS zJw9FX=byMB7--|>IQ&cBIw~m$+Jg1N)(%|7@t31l+qzXw+$kRNB?)zW2=r*_QDGUn zxrUxgtNZ(HXReLy#A>Up&evU+*LQ8_DO;`X)=r#d!c_<oL_;|z<$jq2Y`QUJ?}inG zmjx-+{6%5>RhNbM2)0ndFULbPZs}?q3HT*w%m4e8Y#2)ZWzI$E&;b@+iJw2bfF-TK zR&@OZo=ecjpbh4y&jr<ZPqF1Q=8t-PPDIKi)n`zgDaSbn<bL_Wm5Io_qbDuV2RN>m z)z6@VoOe1>D=@RtpB-1SA}x|nXtUCM!&1@@zNs^XKaf{+IV2_o0~$F$qv5=Sj$Xou z)Z;%+H*b@%IJ(&V6l8IHvu<twuyF;W`c`ap%x;xJQM+IUZsWNuZ6z!e6sJut;uf-t zb8~=;l?tkn>FZ9r44ZZ>2&WaND^RzRxN*_jAh1Vh`hYLf^Cm6^hCm?U7O-(Z42Ow8 z$7x%R)>8mlQ`<#b$>DrvmkHPnVYMHh+yFu^*F0DL?5M$b7Tt^G;gD>m$NAY7I04$p z>|BWaGos}{ai*&IE3XRci@yx1LP0AFaaf>mPrM73^jUvxA=fI#*)2?Z0YluMmcdUC zearxtR$~A$k011X+=8XR_?;6jHXnex1}?6IP%nzagl{Ur%qa*e8$oRb+tb|dgqJA0 z0~W;AWm*QZQ%d>d<Y*>**1JEtiH(fN*OpB~+?2Q_#Mh$tIOnEX)aG5H{gG-!|6ben zMFN;(kaY0k&?99l1WsW?CvPVHhU}P@h?P%wlNg>Y4*Q_Zg}f1#h-oLI%511rzP9IV zXS+2iDs`rxs0>^Qa`&21X9|yh=NXd3|Ey^iS{eT2s!D=s7p2nN1WeMo$T;3X+WVl$ z?O!LKp?|vBa~8l#8Qc%@Oy$CG+kgwE;O!qe+J{R?>{DaR@wwFYz|tO;n!Ua%o&{db zEBu^10`*d_Dz*5MD?brCg-os_y$Nh7M)XbuOjXAjHJ?|~(SZeU&I_b4a;QTuzZa1c zIp85>q7m$+c*pAJ0B#Zy0bVko%{u<h-3BqZEzKsKYzSXr=BeUIGo)~~7G*e3%DA1a zkLyS(^Z4FV7rQBIy?wDmQGQMrd8%L2po`||1-TA(Y*cUg0EK4oqFTqa`&Mg><Vm1J z=2Tn>;e1l+YG4Ena9eTu2gvpt+=v_1e%|rStXRcBx1O4CEx@vjTU6-)nXU>4*oZ-~ z2VecJ7UNvoxMwQ0bWdzfh4Fz6GTG@OZV>iLX!zH<^i#Aw_H=k{^$FD=pnciXIK<?J zT}<dHTCzegUOI<n*c<hdd(L&H$q+-(1OL=Lz7xSeh>u@aAJEZft3j|VsWAyu>Mp3W zCZ7#Z6Be`&$W?f61_d(3i_p8KLd64iZ&HB;sI;V&=G2rDPC&&Uo0ws4F?&`fTeHl- zj*mJaFkW@}X4Aldmu#M1Q|N^onSxP0_(5S|r9F$lSq%<SD%LA7x>_zdc<4m3@fBv* z37kw~vanDxN39!<kfkW;X>!u%$TrH4*?lOaztJT|yCXnrHPXYV-0~I`3pzm=2WK7K z&Lt8%zStKW)om(kB;=&xZh)ah?H#|T<F;4Wgfd97zn^rH>k2gGuj>d97o5Nqsx~om zY?F6UXGy}Yf~xwt?(Rre`DRCn;`EQH;kuwa&B!<oSM}dvd<3s1L~7CQWYSU=2HBDf z11EG;QKP+k#RcTM&q||kUHuB^-@-GtdpSDOJ@))h!jBc!lX%KwiJQE1mExOyDdGw@ zZ<Q@(^lgSdf+Z_7%|NhzByjBYMdg^UjjI;mpN`I$xN~~=e`cE_MdTo-l#q(?*rEBB zGO0zaZp9j}P@S04;PiI!sF<|qD`WV1RPTO8X9K{*42ft2qH%cH0bDDKM9}<dv6L0{ z^c>#r>kl(C?XW1KvdCZ=I^>xM_;xmaMDSigM`fWRP&x;v<MUIXxY%$W&kv@EBkFU8 z9JwOH>};Vi)lS}~Jj3ai4G+IDf17SYE3w$-`?nf**9PmcnrM@z9oHQ>8+XTWhAEfw z4aX%KS(0OfU}N8FIgnW*hWDxt_cX;(Ttz>rL-M<?S{nGDhnG)`DD`Xz-oG)#L`{!f z-(3?Zs0_Kb6Nh1snvm&c=*dkK;FEyYa+-ffCoUk|fxg!$^rWV4)DK#Yrx$dpiIE;& zd>(Y*zwB>cHy<#HsStbu!R#ESTr<NFUF3^}TPRiL2GBcG;)MJlzD@q-6UsdUAv2AK zl+g`1+ROLmDv~;-MB_q!#GQ*&3r*nQfPp=9P`*>yep)RwQUKeMjnv#c`t6tJ;H&8A zq()1o{>cu{&-*Cu3!DE&v8TrP#o!JR@(|Q&rtybe^7oN_VD5uybQi)$Eh){HNo;>; z9zYfjVoqVzZbZCvAeGRl7<$*kQ1u#6^)e1(MwMBvw#Ed!Cm2im^_*zo1l|L0!;<%7 zhzL$A)*V$Z4KC>_j5Ah7ar=H=@dEjk@kibMqIfjFj7x(BTfW9l*iRF`793`>Rmf`J znn!C2mI24|Zjw(N`Xw5pZ{}(ioj5+LUsFzzURqC_lA-u635B<+7iz-U;TzTb@M#V^ zaR4!3N=-;HHR|amrW)4`d<Az?t*3)vIIrlZr#r5QC3G-Q=Zm!g(&b0i;YD$;v|oG# zhkVKyR{!0wWDI&N-P%&J9H56XF+54I#qF9e^23|1EoNgOR|4UZ6`h{}!!5ofj1#r5 zsLM^`+Rv)lnw}y3?UWCpfIpmLDps-Xb|2Pw>B>#ZHenn0k=D>&W&1lx6cA3-h2*fy zyPj@-n-1NQP$>lJW%Zju4r56Z<MPvqSqNyatjP}T1I#jWNaGM#Dy5$r0yN^k@M3x} zG)+n+5I{%6l8qr-vbL6xa$O*aBHwQ=prqhE>9C+?CduO}?fT6=DN7q`yLCk(ZVR`h zrK|-(3SOg|RxfxDbSrw*XH*o8K2K}tY;wR9tx@2_GZqzLg8QiaiqNy;>y^Xd%8>uQ zcD_1abBiTwuiENx{Xz1Iz9YpKDdgCAPl38Ws*YRzgV`|c`@cDF{s-S#P|$p{1_S^Q z2mb$}3I2b8XR@-)uO@)${!~Sv<=phcdQyZTkDFY<3DL*ncclUvtUnjdq{d9>VjlGQ zN51Z0V4BMbk|NH_!>cHbJ=#p)(khstEMl!$;X#sAUz`+N-gH(KUeIbyRxe@<yT&sh z6y|5NpV1c<FC>I1S}EUowm5$y(SOz&@%!Xhv!<y|)6zYR*&^nqj7cR4dP@uyTtK@? zj%Y2m0hC@gzcj$18BMRD3*Sns6`;IeQ%8@51&7CncFV`x6<$!5P|Q#_MvOzy_(=|= z!vY7^FHuE++bzT!7xQkvFobv>NS`(=WM(Umb|eHl%KI+Vx`4kcL-WKrPEh_H3SCg& zP!y{NnS!Ps(fAKWe-m0=?p_n^Hg+#40XGdHCy;}ofdekJQV@Ke9ikWdrdW=%*fuK# z6%{a7U7wbcS+GDIAicJr^Bx)f44A@*-SvdaG|z<Eg;dxYEWSk;QOdbyF?<o@gfyv8 z-y@(?B;ppmKrygkKLV81hRc}=dY~+3ev9|0BV_ZvzW1h8AVz_~h$(|iBU;{<%y<s9 z+raha(c?inz~*rEsY=TnIG1?x8`Sc_o{Cu`VK!zl@-;Izr>WQC+}8r>$6lZB9Pxtn zW`?^lQKdsw%3T;Z;!5%ObDd{rtbUl?I>mtoq+sVm_E_=VTV%Vw4wE5Um9y6@?J5g3 zJ(*I|CYgm82jf0#N?p63NMrZpElSyTvic|n&4zPMfMD>J`B@uo3LUP<I2*7WG{`dt zj<D+$cp!CW?GCkGXBucL$+^AW8^8C^WY4QJM@)_Nl&xfc+rpb#txpQP)lH`X0=C$` znQnQe`zgf&#A0t_sJ)lIGfde0Zq<#~4c2@Ds^d?VhhM2ZkS*gIV5^g>Yid9Ax7+yT zk9qsOiwsfw78Wf<$1rvUPv)ZIXgNW)m!SJIs(1PPiwE-h*Wg<(jgNVyJVnjWqDc%g z)IE4vIa}ym?tcm++)iG5yI<v;_gg7c|5ssT=g!1tXlre!@ARvSoE5d@2I!H!cWc`W z4p<wc0T03dB>dr*2}5*eHle5r9;wmZAfyiZx#@@j75Q8!;d$M1oS~6nB48=g;)qGq z1F}!KOx}x{ISdwOD&pzA<gdq!7H#i!NJ~LD3u^Uq145S&t%t$Sm#k$mhGI3CM$Gf- zUx5Vc9#EDUm$#E5enc=q7fLZbYoO)sh4*D9QY;c{YEtP$$eJtu8$b?78)Gv_vQp18 zqATuk!yGF{H?PNtInr2qX3gwGC1)a0wVI$=l64^1Vo9`iJ-F@D>MBHNq;Vv#iX1(F zvg4y)ZuUp07ykM(&*xb-SCfrbt8dwb8!krTTLB9;XEgE5{^SGoS~Zd35CO`w2nE1g z6|Txdk35?UB14>38DRS4bR?^TUjx_Nv$w{3P%Re2L$4a=P5qCn-3R<Xp_LI`W7?7| z2seOQq`qv>G<bak451AWa8n*TBx1ItPG6v%&g@vkptBW1`oHK=P@}Fr|Htu$>6g6V z2@3%5^xIMSzXxVH7@L|qIvG3sE?YI`ud|T#q0<MHFgMhQh$-bz%Vz7|X=B7@i?n%E zf^OBGn^Hs&5i>$bfH7j@+_!fd6cEUZ-2AUkorqn%?Nuap>}WXoL<O?>pOJSD9AgRc zcf^%8?C6@6%%oa(71Sy%`xoiJUyQR`)y}Y2_fSiL)}OAU%q|3DT2}#f%-GSwdB8}L zSjn8a#KXfxvBg6%vPH;FlzYkq$WPu`HwMh`XVO#>%?Af0l;9qe_HX5JW|T)er11c` zr|hF%<t}nD==9ok)`ax26wpf7y)SW|hT&u_;H@j08k^oPmGA|yBgK=2y^n%twc65m z2WHG+in^&LN-uC*J624FHbk8vMJvg8)2poL=pA|EFqH^*5%_3ATbE;~8#aZ1v>HH* z>H~aHkgCdd9Fvf$fMeJm`Hy!5orO4V?>bOUF=6WU2wJE+L0=FXx%3`_!n<PS;%k=a zy{A(lFr=`!kI;1R>akL`2UUm~XgAT~e^rv+OI{F3_|T)mL20VpF>pu}FzO+!l8#9< zmCQSYbT^9#C#*18xL%)Jb51E@8w8@8ayKRKcYxs|vx7Utq^6m~);x{Z3o>Re9{rkb zz36oA-*Cv;qE{Y?4M644O!F2az+X2oQ1#>#pypm~wU|zb@ZTa!P9zyXZ2RtMg-=XT zAN%I&q4S0FoChZbjePwReawKp0GuWeVJlI3#*%Y?1S8%-SyZT|tP03dK!47h8<^}2 zkb+2CxCJIRiGx7ZhmA?x6(8WUtN&UK=GFvUEtU-yo?O+mT=UeO)oq<As;Fyv2elM7 zryQH)vD_6}5v1IWEu2^<=Z`o|(M%C3S$4^qs5gz=<<0Q}WUu3%YkHw;^c8~Lv4BOA zVv83;wr2vG!2>y4n7A3;4{0>qDc#z18o*;-mIoH>@$`X$bEzRmk0cXJC8j(Ofbtw- zjT=tz>+Wg=rzJi8l}5DT-%P|3N<~Bhom(v<yQ&Th9bj(fxn`vJYve~MIZ`vY<7a1Q z#9X?EZ>z-FXprNn)(6~q(?N_^q3!Zr2`5rrO)v|^j?Q$Q5WWjWFEGGqKoj=@3A|^H z1rifrOtv|wDf+;Di<(qG2?weup$I%wlEkEhePyChZgeaHp^53xB-F?iXhD>2?Se&M zD8+a;iFpG!l*;GH4fB@_r{odyVP;Wk#~TeBI@ubIL>jmz^`kFyU~FTK`o%VUp&1zV z)!VPKEDeK1uVmdZ?diSgt=|Y5aOhRuoU@L%v+dtUDO#;*D;nEsZH<oZ?)MfHiQBli zU+NE=B$bapO5!aJDy8cw3I`W-G6A>C8Yz}nRQ01{3H!yuwS|-4Y3$hrBhZ&x{t%S7 zHd^<Qag_yAMXCdMjzVx4e7`Y1FDD$-bA`#g!3V)(4`-x-)8nH{lhw<Bz$SkWf34Hx z4uZ`i?5x+@?ir$_Vi^i*`z|LmQ}pO6AJC;$3$Takn<_%SbhhYz?bP`Wg}mkd{d!l7 z7q`8V|FJ+c<oc4@g}2+Bf>1-%<WPZR=Gft=JJ4~325gh4K<;tXlqpnjf~QV6^3ezx zacs?F0IrC?neZn01|M|*lS|lhy-=M(YGx$wUv>RN_uV_@>^k9o+6U(8);M6yrNuY} zvm>icMSk=={68|{j&*SuYl(I9O_Y_;sP(o5f<x356UpG`2(sgrk^hS0_Et5;HTSan z7&v3|1N86W!`+Xre>{A?9u5?|2QsCbwFPWL*BK0U7X&){Yh-W*`Wr$Z;G8JR{+0$F zGh_oae$Ei@dBS)Z6Vt<EqKeB8f;E*Z-UYlrc4@KX^9Cl46WIxgOACzArkE0uA*eBL z;Rl&;D4O^)HX*slFQAfYImDaE&hkre+vA$|%<^BjDkj0!SjsnUL0Q=d+zW|<EgnUR zY_l#{v?p|hzuZ%zG0<6=_Z!zC?BntOPU*IFk5wH2Zw)aQ9uZ*dB3?jF8vlmX7lBlH zwW;vZV+w$cA=-gf{Q=;@46P-K$AqJKwFm`_5x^6UAR^aMwL6JDs31n3%vkc<?I(hc zhdRl=Xbyk0`H<%f*xQ%s*6BQNE4cNfF$<9M?j_r21>u81Y?=#5px(EVaSLw11)XV` zmcVxzz-|0XN1bO#TfG4;Yc#<^<lMs6W6&tfD54Iw&UNB5`qLj^D`pD-dTR9Ts@_9F zw|$J#axKq!WCbi%i*LcfnZrK|M%hdRRCMKWSceuf_pCDSX;T_bGRwXc+689S1*}16 zG;I4%K52}c8f+q8PUuAwl<d~@2zW?&9-I(JR~X@F{plNKILpas)XV<)@VNPt_>8T2 zj5XOBpsSBT;Tft#a{=aqq**CfkE@H-4oYgb(_T8x6rJ@V3rKMl=L~rE`kfhg$UpKU z&yg^j{;H2sS4dO_|EkX1y=NimH4!pHhu&`nWVU8$`n()GO#cf{NnfyrrUns;NTV1` zG3^gQI>fRUhuvG5rWcRz*N5n#PkR!LW^LYs*~{D#;v~z*e(U94=ec*N9y*D9@6y{> z304}yMfm*Q5Coo6&}XMHs*cP4V=7d2K}M~}dB3?3LjcdbaobIRPCv~v>B*C`6+{s< zgPd#C97BMC<mV9qr_=TCPqOC6i`rOCQd=bHG>aPoyn$(Cn3WHRBJ^%4+&l3^-r#&4 zfK+gtK{BGj)v)!jRjc=v`CwT_;tT8?wBPa#QfDW5Vvl5Ig`(@Qt4>xK|Eyqu0PyjJ zh@cnn@4-LY$VP)RJk&qY+99rB+w|47-*(olJ~5o!yKU+E$wg$U0A#GwH!$Fgj5+$< zmp_A3tnUZDUr-H+J`mX;*z5dc2)3!uPRlq;&UQY*Vv*F9K`*YcJ}^BGAMXQ~MCCQQ zQB}GyiRn==Y56XmYqh7p*D4;c3+U9Fsf7t2GMcR=p6o`xt`7BA{8V|K7gO-7nZJvK z0IIFi!ei75+Jdh+tATz%aau?KJz^MRA*{_clp0-L8VT2S|Mt43|E4Nt7MghW`g<%j z@R|BX?cwfxBySLub||&qkbu|Rw>~lASFYY3<?4BOmm}I%ISaRU?fe$YOoBinPAzU! z=mq&Gbf{LT{lbRp-uSST+9mlp5+$hcdU-Gf5g+>4n6Dwbq3!Lg8>}MvxAIX6_sIc| zN~3cpzqeTjv?q7J)ob_fNZZnKaz^0agMpo>57=1ur=5h<5A9M+)6f@?3LIBlU%{>U znV>^%ofpx({<nvAT7H^DMI@!tKK}bz_Q6x>gN<i0#h``6C*$cOxF_*p>A^m6B?7#5 z#|{|{6!|8-z(iu8dg1b5(Dfk#)D*WkAVk((4o4o6!gW70Pu(Rm4=}~e4TUIUx97s= zl)r}Q`)w62aprDY7COq9>_jGKuzz-1EC19A=<i(=!<i`vv{SmWmOZ-*fqQ{&1gV&u z-vLa^gCk&tXl=+d|3pp#j-@}$(RO*vttSr%0M|CK%_(jzhmgbq=a^1*H}o8Gac2j2 zOVm31v6(9saIN=wR6|?$V%LeZ?B=%=kF{d3qL*2ZYOHv8E&_J8x9P{0meS}Lf9v=i z!PP!%gwno@33mK`1DrJ*iG5fEY>oQ0gZ3<=xMH>4sI_7l($Tzv(0)6z)_EgPaK-^! z`eKQGX22L=TOcPV#!Y~*{FP&f=(-EDwWo(~(5tK!y_Q+xrRaJrOu7K9j02VJN{-*d zxs+xXx2219u&sf&i;X%avhBF3d|33@QDZ&;PO1lfg%vg8QS|U|aSRGFg45jgfrY^G zha;a2ek$D0(aR8hzLWcQti8wc`yzDmHn;ojX1%ghP8Lts=Vvf-^0XCAF8AN(6Ua9= zkGI#uQPaF^KN}O)`sUTym?1o@Kk1K2IPBS#XPC4bsv~4T7`K;*OM6EP7%w>%_5-93 zkFvdWqI{Cq_WSpNUv=M9T*zwNC<rpd2};O{yuV}p%oYY;!iII59I-Uk>EgyV&svDj zyTIIIf=a#f%*|OSm!)7ui1i0U7oJu_$u6M4SCA$o;b#lxD^P%b-W{#LccEzkK3ia+ zYY27qxlkRQ1nlYIph46PB;`(|?LSt}%;?tu7(4h0<zLufk*=%QqG!eU&V;|{BFYf- zT$7Vj^AUL2s~vN81WZL*QvmRcj;Q^gD36y-pEYQDm!k^r_#B}sVxKSkAZ{>{1iqSy z;d$SY88Trd;&{jH6<z5IQz~4N3#NLN<9wPxn_%N$hgI>ESn5Z!l3DmjIt-r~NRo4o zc~|IJAz+U4(u4;q^%_684)m=za;-V64}uQY(E4Vz>+y@AB<6WVPR{aJf*AYs4_Y$W zN@0|+3zG9y_E%*+8Ie%Bt$e|2ySxke=Ox&79!JB0*t1-!tDf?URVnwI8JSF7=Ww%Q zf5jWEQ|91S1LC4tV84cCN3XE=5ieOO-F8H&r)RJp4~#brkdK1u_n^F9Lx2WuEh{_O z?52_Z5IWon&YaLogZ9+&TpL}Od!srY4&I!&NxRN+%#Xd}Md7vAb>Y%k=BzAyvYlsm z*_dy1WqJPzIh{94TE;Uf0y*#g9Nu}BpdR>_=wGSBgKMi+C|H1d{e$<P(tGVi_apu{ zTZTmHzo82|8vP2mU-?$dt(~~ZnsEC_RhQ)uKOy1N;O;2d?ifAFp{i|=dM$-(l?z2k z5RMUX^ykRzX!85@+Qth3Kw{d>wt_olOtf(R%$AunqM$2Idl#ixy79y9NI6H+%gOoq zWG(4{yh66&27iqTc+>zWEIq_jVg+gkawNU#lNAZ(7q^0%cWDtXs^H|TjGftWtwu9V z=ANS3*}~i4t!|s{6PCNYh-6z?up#vb)~j2tO50ye55N|Y1~Ak$9qAGXZ=!P>p{V6C zyLlzQB^OYX?RLf*)(7Al1YW!E2@yt5;>BbK@u)j?e$FxJfoIUSd*ZC3`dV<!3VRDj zkY%>n(HwR);*DHaSf|kX=E1@3ySXPizgSsWsdbgcy;M3~V-wqzIDRmU5{S1p;%cn` z$TX3_(wsDmy5coEsUr?nM@(Fgi`<wI*HDy7Xu8Ri&mU&i%o*08Zr(R0K3_pinJ-48 z$VBvo_YkkT?%s%o1E8sM(5QPhzl7lWGZmM5Yy15;ecPJ3YP<XM@o*SQ#UiUPymGaO z_Q=m?B!UtnaXYmBFp81$Q1VAPhdAD+E@rLwJXPvNQ#;%^>>|<Q^LTN$ml~Cpq8!8k z>3K}uxImX~0gTN!kXwcjnM~ytz4ugP+}@Xzc|p(T4~<@DV}jJUcp*}?P#t~-EgGXG zbaSjFs`i3Iic{BifD!fjY5{?_2IIW(IU!@43pH2R6<m^sBQnmc`zR8{MD`%>+8tJ( zKv3cqdVN8>^vh;)y@IOCTxWtQfCmCi4eDq!7KvzrahJhsFnfIg(?Aek_1Q;@0lTM# z+4>wdRCOq@a6g>%f$ZfRr%pp#psvDjERZ{#5egUJKQ{a!&=*LRna>8#ejo4m&CJzS zJl+zKXA%u+oFWr)0v=hy?EYh-hTJ={5ap^T01UcrSK@%3#Imx6hFQ>h%~-`mNr8gc zSsIpjzLmLWqzRDgo$@m{tL6#|ss2>6v^mW#U?i;Lu!oKa`wjQsJdiH)Pf6|`gY~eg zH53f-t@Lnk7L<b2*?#S?s>)5lyj$RH@W8cSe(pt#wMd&+B?NxRcncjsoh2ys;n#HN zDO;~E|1D87rx*048BXe33EBly^s6@P1x{6@>gf$YhpWG}iL0u!at`pzu=5@MM<Y0g z*|3gMfr$R=5pW@p8vrF(ON0ouWZzlJ*fa{}w{#WEnSqJ>_tke=T#L3iRzRRDr*0A5 zp|z)pUPl{9@U44#i07juGd>tSyDuP@?}Gv|BKCfGZZVTY&Wv@+J@B9jhFl=2%|c#6 zv8Kelo!~URlbY6A4;MiO%0^Bck1K&Eg5r4+7eNFy2&XfA*M6sLQxpvE7>v*@iaDMn zX2MwMHI{50(7A3X^D%*p=;2INrTU_)@Gi10GX_7PMzPsk9vTQ+DXo8*WnnL2;ZIw6 zTeZ<Hlra?jKl9<A7k;~$pzyeP72pLF1K8uRLemQ@B|mOsUw-1r2pkJyE>r|j<<BLJ zm(qCMT>c$V?rWi(9ua!cnxL+8NR|Z~O4Gdtq27dNYv@Y?_%~*a7kq~4uoQ3cNjiv^ z+Ic}HX@o}+j!SFp)Bx4QZ;u)97_FhI`%E^TL?|{I^$f+Rd6NMsHey^W5MyW|YBrQ1 z5h*&gSM|T)Ja=dZI#EfhS3lgkpM*znSXvX%gZaMX!U*oxPDdh1Wc4~b>?N9K?Yp}@ zUeA};;C`|O&lslixeGV>jy=tNtHTJSsLJywUDQ2LgH`mhUBAH=k>e?w*MYS(b~Pwx zTlVM2?h+*+B=F5k{rl;TSWN_+bQhA>2oY#Bdl@d{zUJT;skFm=SJ8uBbpYC%z|~|< z?|Oe}LAl^^@R1)+T~7fpeeQM_QWg%)E7-_C@4h{MSj_uI)HhyLi2xFrhd*oc#_!Sa z09cFzqp*m?(s%ss@$92^GP<G*8q8xn_dngHjec`E6V&fZMD{mPmPO_Rtsh-64*-Vf z`K2L+j1Hd7g2pBmxe3LN2+6|3fJ`7A6tSBA<i(nCS#9YrLHo9FudV>ywTIhFQg5l{ zTt4k?9|TK%`;C>h9|t2RE(a4|RC0wCRiUw!JO7g&`Qv$#=LEr;)lk4VOCgp)PU)H; z7xx9pWMILlHdVo?qg1h?e8H_Tj??bFFi+GA{3Ftz7-+14X5DUTO~o@l&<ydLg#lYh z;V0f2(br(uLtv|Z#_dek5p5Z=-4K|KglZ0e7}%frs0^EfCVY;YQ~*#3ei@H$5BO3Z zEJVJtk{-7p5Pv4N_=03j7Yfi2Fa>Ov@5n|k1s+ad5YKoJlYwq{L46tPE%Aqrn&(9g z1H1*@U9h;*VQ7nuD?%T=n1W1)peIL#IT49kxdvz<eTI??V~l^TJZW#{H#NM4Ox~Yl zb2SPNnaiPMlFZS*x;&RXjUT25HM*j>&vdZS50X3)3r)EJLXtN1f<`E2P^ZT;u|pY= zy8WYnN2{9sxwPMVie`u8^NJw<A>!{cgR;?FH=G;FyZ<4V!ZE&Zh_u=cUIpV-P~c1A zJ>Uu|dP-c;Svc$SiyTrfh)^^ni!8pJAV3o#oToP+w&SaF{b*PIjcL>5o7eSHvX&ai z4O9xTP#QYQc9H@8%RPV<AL=J?PjBtyC*Yq7Vv7T(p+x+XznZ^D#DF0<mNP<9XizN6 zooGt&N)$vmAl@ojy=Wx^uoxnFO~Z2NK1S#Evoc{4St}~Ie?9oYe%ON3<JS&ak1=kp zHO>MUluXt-@~QaS)O}+%`y2>+Fu|!w#T?(LsgP3VnN1vqX%fqMSACV;V}TOmPi5Tz z8U$rij%o5MV%mC)Sh5^!znHyn0H}s~6jAO6f2>uwyd8VS{f?@Gd)(G!!VZ6ZH4Vln z2RAER>oF6<JmpDbc+>^K3a4FIp)Py?cLcc6aPuHoOt#=HfTIyq$&zj~h*X?|vK&zQ zgPWD1Qa}y+DuR%4Pw|d<sBr*J=FLT_^gMej<a@I45sP33*h$MZ>>+6gWdaff!prh7 z+M6f@zDFYd+b@9YTAV6XxQG<#AbA@f`g(SRzn`4w-|VJluP|#%M@c@?Fh!?}KK~AC z_`FA#XZ(YaYTVSRZfHEMhICIjP`m{@MNzki2DG;%P5aDPLaJ7Q=|_e<A(C8Y?^j*- zu{d3YTpw<>aQZB8FT2Dj>i|Gm|AI;fC6+s8&YOui|3yQFv!1QmU&q-6UY)b7TzD?w zpfdp*IDqDXE!KKs_6A9ll9>iMihglRIMM}V>mtFUz~#IfQKAHd+W{DAIaZ5%1sP+P zHC?6_C?1q#4-;_l%SR6gSNXP9LmNRr1Z7I!C>kDHxa8cHn=q9p*gilkE;^ENr`3_| zq&0@umIxGvg(0zhj4%4o1G_aY3o$xioT@WV-S>M=1!R<8x+W5TD#7CUgjcgxH9{c7 zz1XtYAx(7htFD%8NPL@C<@<aOk*ZH1M^;<YhbW(_C}YHthD$j-&Gl6Y%`j&l6;02W z=KmUPLEELLzs?kG8aLp-%Se^I+gqsmim)$roE*aQCO<#yP@y2(o#?pY;@sng{7rxr zgf@{nbwTz+as}h7$xTboM)(`6ov@)e!V#6AC)Ft&ivwmZc?|#)Z4^NXbA}kXP+#X5 zfQPR62_z*!{I?^bEeqm2*-s&YD=G7=t%p#^%<f$)1eSuh1QR=mbX`CT)<P#jk1i~{ zBBZ5K)b<5o964##)03sdKX$81C}bgB9<TyZQuNUS2<!XJM!}U3U}qgr^KL8Vgq^tH ztU{tRyaVA+dhXa&V1y&WAzW;lP8yLi;z38jq76)J9c|V(BrT=Djm+O`J`rH<lG{v< ze?~nrv!{<lYOKQnF4t=3f<sIf`mjEEI42y->fQ8!?j`?}TQ)~~So=1(<`dX4L3r;= zTA+S_^$x_or7XrJnG=SK<1(>X?O^7oYh*gh6$oa6aL>fgy~LM`v=G8DFzN2@ccTT7 z*;?xJTymN<1s2wOXtIaFs9!830i-z^NCQo<McQ+sIqlRKRgjs-6V2tu1en?>-xd6f zx?Y$$Y!FV7oMlGGWNItTQ6CW?^^nc*LWggI=_Fh|>jteuKv#-!h4G?^;+Pyk9#mR$ zF6#<MIa$gRMES=>)f`|_hO5pv=4ZwK!BBNiV}Wt^jN6#8=+F}5ifN8zryDK=aMVEA z>qR$YGw80uAkt0Gn5PB`S9SLY2y$8*=s)Cv@z*`hm^;*#+|OdoSwfi7`}Jiz9a-dO zJsrg{FjFI*W(Se(dkSArTa8t3cfsQ{TDtnHzA;_fm=vQKKBO0x#nT%IT}1UOY(N6Y zG5P_Z@%0~R?zu;@=)}zs<aCe%sY32OWiYz^6p0Y*Evg33?KV&+zHmEhv&v*>B>KD; z8Jn+_)=n86qoJLmIgd2Qzn(Y&FSu|hYpE#Ukz+1nbs3~A4yMZktGK_+vY}la3LuzJ z-XBn3oI&;;U;u|iZxUQXS{z8Za3Zh!Kg+~C<I_XE;mW05phm78yK^ejUGhxzR3?ro zb(ThY&M)ZB_PL+-tuP0Y9a`6mnS4{l#fGq=eMYSCf!N;e9k(1UZ=a!j48pQ1#O@?P zoti%tWP8Rh8;@gAu!b#ppM&6QV_^paw(8e1uwiKOTHNSpj>y*|<dPUBLRARPog}4J z+^bFOOn<hdBbx{pyx%ViN+l;d9vB4ljx3db@V=-BrfBa%TQI1Q?Rb?e;%3i)<Pg!_ zmt}H(>Mfoj2RH84=jy-@;<|9MR>&1-Cm-k}A-QRx4ZC<J=UZcZZiPzgSzFyO_R-%0 zRoaQQ|E&J)F|9-27%+`H;YpmQK4MBy3#W&3=YR;e0VupyBb10W4m83ZMA`t<R+rje z@g5v_T<hvCj7j%s1%?bHztYP9T$+!ejs!D+6j%NiNV=EHd4&@b-1jmp;LkmRj;U!j zepkM;T}^K39I)ac`Ghk~--HUhI}?3#7kyUm>XO%|sQ^X$OpwUx1BnCSKZdIK0_1!R z;&;cBP@y|;thE^NS#U!VH77IPavWWR0{_(F41M`THaau%%7&M6b>jM#Jn;$TgNN@f z{wf0A+o~(Dhi_!VG@d1UDPdT(@(%?3jJ=0u)DZ3hD4iE_=h-;Cfz@{@Z?lAr^Ik?t z2$$YSmAlHkN6B3w%koD2fDuu~$WGoNgdFh*m<Cw0R^5xT0`CVmRNXL;K>&;I=koD% ztp_u78I#@z7d~;z6tPr!Tcb`&jmytF;Ai8F=_dKxY3&le&h!K63QMpu+i?OWtl@kk z!c6k}wAR!i{>=B>mBE4o5s2t#AsI(#&_IHiH`&)DheZ4qY?B>#g^&FL8~ZM*`5hhv z0zOzw?0jvH(8%{_jUTQ8hE7s4m&f=ecESnGpllzy#5!<Q-t2y@j{K!V`ry272(>B4 ztIPs8J$^l^4%ImJpJkEUu&$UmK|L(g8D{47m}ZFe#zWXEm^QEDa17Pet#<4T9RbwW z(}5HOgk}8RS;DPALJbOJ@7A}==lAjGrs|l;W>y1;<%EytXMA{<9TNI7$t!+C5A*?p z=Z{=2qT=~vpm>)uEv!sr-t_w26J!=9sB)6@l<iHKS$>E1**CzB(LTwdLSaRoztK<H zcigvlfjdAbiH2&*mLcS8(k`p77JD{2HZ80CN?Zq+;c4IyPFeTEnVN%D2~fWT9bDds zFE}v=`cKO@>iC=1ut0%hzl(eUlcI6T)cIY&T1>X=nu#h`WTDEgea*wq75vAEk_o~T zN#;7Y!v|8Q6kx$OBdtsMUU!DSe1YZ_Rab{)1NH%mF$*PXjuhTqZ<0gGdl%r&V@smA zC!+4CQ%Yn*%x#H~hSG6C2D?H!^?X@V-vq4l?zy;SU_9!*g}EVua%w_9$!I>xT>Gnm zhrd$gxr)&m?bBFGrszgeeJcG}cWa4_R=gEvs%b=%(1`Sq!eSSsy1MRhfpNV$e;2lm zqd=8g9~10eKh6V7Wj1Os2y0)@GKPol`X=-qG<;rf%MYZd)cwf`ep{=e0U7WGZv`;v zTT8kSn=U^X$U~U7K}WFScH`i0i+mFs6{CjoOX)RzfJ#nk@hNgiQO^pUMLf@9$ie1q z+PUPMr#YH%Mm7lBIJwU&anYCz9Mt7C9VZ`okIcFB!%gg1ER4~QY{{%N#$S0R4(-OC zq2;1Y<$~XU>X{Rt`FuwIr)+?Cs1OdxS(lwgM#2?;RZo8N5v-x8IihJ9?KbUz#0BjE z5#&VY*5C9bMH;zHZHah!oGlDJEGaN-CT+i*bF6Sp^6rX1G_;7V<TfzX?0Tl-6bb}5 z0dLiIg=Po7yu2P+y2yemJI<44A3_Aly?>KsIvgj`yS2jA?LKm9#}B}X@!eK=Rf98{ zL8Eg!7#2OH1SNhe#fCMYdMD*M{2qy~(;(<87A_;v4?qcJn3+z@^<PtSTzRfDc3Thv z*6cTalOXOWH03WJE${>WD&@>YCQfKfX@HRH8m>(*D5je&uG3Jehjg+Z491gmky&~A z$3ovnP>3cz?@7v85hn9S9mn+dMJkl3a$V?Bd6X%{e|{(&rbE%WNpl&vqMu$bl&U;+ zx!c#(;lbX<M7vRSl|Iz)B+Ou|oBmJher@<-h`)j7zp47qZn|l0E_@8=2-qEH6{xSI z#AmH-^ZS{7uSR;886zA!BG!}x5`qHB`E5+!;PE!JowOYXoIEzyPgr|8@xp4U7tDjv z{jKR?lYhb$o{%&Pu8205Juc6(epFA%*KXKQ)CLWE$&o|dycYFsu9hTHR^gZ;)Gl;; z{M?3<0XE*Ib?3FpPgNyDk@0T2pz!Yf0dd|U|BJD63Jxu3&~0qnwr$%sPi))CNlt9r zwr$(CZ96yryxgg&d6-@Mwfm{7_U`WWeT$fh3ZB$QwS9%h@Mjy%1Fy5XIalnVFX$sE z10f#+LGm_W@jcRkVLgF%8YUA=A5P4_K!5lYbAoBxhW^iXW`&QaFT5!Bg}jg1`a>pm z>*ET6LZ@oNn3`J~x-If<Q+*P}A$bsf@kcUHJUiKGj*|G|^=~^n15A+*4R4^F?BPg+ zg6k!2o4mfgMHNT*ftvnLlCY8i=$wo3ANWZzJjTvdxVb-LcdG@apWSqhj(dgvD9Gi> z+AFTZ?r$^M&KW(-NQ;HR>}18y*{m)H{1m;6{3Jo1d#(bpRXnaKCB)n<t{T?A&K;S= ztzJ??TsBMI%fNOw+1Aqor7c-C`O|}c_aQCv&%JKOwB(*3zqQqhVc*a)yH!Ru4#Eyl zMg1Rq_io+IA2^K$x!1LD#t%ZDX11fRp1eug%0xT7mg=Yd;8{JV{LjX*nFPfDJSdF^ z7<z;Hj%^V^ILw&<g0e)}ZPYjUp$?ob{s&JbMgAQ+{u?yG#{IwOsa))>?F@{6Pj#a( zf1#Y#yI&|rN<LU6#t>&juDW|Jgy(Y5P4cqN=L%e33^+bED40kSpt0a$)9;2(AQphK zY)%FTaP@`m84y&EVXRFhYX6^1y=6n5Nj8g%;+!{A+xjBtMy--${&Hkzi$4hq0%4r& zI#Jx{Wn8-H&S^NJDxxJivflCK2TK}AuU$X83n@xj;ny(rhmGt}`|g=BWjU;5nQ@Jr zq!$UQeIAj1VU3(-nkpx=LKFo6G2$gZY{IzEfURl+6IqKXKN<ebjU8Q3X;6roGGSU^ z;R;xO3$!qcMIINkxuru-cQtB_R7i-G=A1*@+P2PCx0l%@8%QFn4;6Qk1EYVfnP^kG z44HU3)*CviwJvLJn6)KO^5MfrL+YlFx0B;D)$cNE0sR`5lSn-OF{|YVeQZ){;_>_D zu~B0xYq8W#k|b4|X-kCV=JkDw$sv!JsE|jGa9h#8rtjXQ-`4kOZSCkGcDmnz43MuK zn?d8$4~PnMsy7U$BF$fpspEq)yf30!V_}1Elnr<z!~td$V0NVchA$70^4jd_mC_U} zA|c}=p7~sO2rJHJPJ^ue0#66Ep(yDrG`tXFAp!>jt)xXu5{vUch?DIc$QcbB?v+Q8 z>ZTe<4O03E0M)$zD_OW*Z$m<_Zme3<ujUpw>eL#hV{;NZdN&i20Y7-1&%=pyCaLvU zBevUE4kb3x#RNYiXia>nZdE|KN2;EQ_9<`LM>G~rnmRXrwy+7l6L27<T~UY)M)WVw zPbKgqn=0;xBmUytf-to*fGQskK6(z$$x#xzb#`0QtiBB{Uay1n^<%_k19l7W;m99b zufJZY%bC~U6Jq=~wjz_i>jazzTk~RVx~UEMx~>RTQ*%a4jBSq}BsU8kr+O4$BcM2i zQYrc%+EvvyN+dszc5P>0@pC_f#WgCx7vu_^Zv=A9G4*$&N_Y3~Qqo~Lk~VnW&SsQQ zL=-rz6?W+>Xa8pIEuO*AImmn)iW@@?R5qKrF*u}*BJ}epVG5e|pCXC&rQ5$%0D+M6 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 diff --git a/Lib/enum.py b/Lib/enum.py index e7375e1eae691f..0b97d3d8a68ef0 100644 --- a/Lib/enum.py +++ b/Lib/enum.py @@ -185,35 +185,19 @@ class property(DynamicClassAttribute): a corresponding enum member. """ - member = None - def __get__(self, instance, ownerclass=None): if instance is None: - if self.member is not None: - return self.member - else: + try: + return ownerclass._member_map_[self.name] + except KeyError: raise AttributeError( '%r has no attribute %r' % (ownerclass, self.name) ) else: if self.fget is None: - if self.member is None: # not sure this can happen, but just in case - raise AttributeError( - '%r has no attribute %r' % (ownerclass, self.name) - ) - # issue warning deprecating this behavior - import warnings - warnings.warn( - "`member.member` access (e.g. `Color.RED.BLUE`) is " - "deprecated and will be removed in 3.14.", - DeprecationWarning, - stacklevel=2, + raise AttributeError( + '%r member has no attribute %r' % (ownerclass, self.name) ) - return self.member - # XXX: uncomment in 3.14 and remove warning above - # raise AttributeError( - # '%r member has no attribute %r' % (ownerclass, self.name) - # ) else: return self.fget(instance) @@ -263,10 +247,7 @@ def __set_name__(self, enum_class, member_name): if not enum_class._use_args_: enum_member = enum_class._new_member_(enum_class) if not hasattr(enum_member, '_value_'): - try: - enum_member._value_ = enum_class._member_type_(*args) - except Exception as exc: - enum_member._value_ = value + enum_member._value_ = value else: enum_member = enum_class._new_member_(enum_class, *args) if not hasattr(enum_member, '_value_'): @@ -315,20 +296,29 @@ def __set_name__(self, enum_class, member_name): enum_class._member_names_.append(member_name) # get redirect in place before adding to _member_map_ # but check for other instances in parent classes first + need_override = False descriptor = None for base in enum_class.__mro__[1:]: descriptor = base.__dict__.get(member_name) if descriptor is not None: if isinstance(descriptor, (property, DynamicClassAttribute)): break - redirect = property() - redirect.member = enum_member - redirect.__set_name__(enum_class, member_name) - if descriptor: - redirect.fget = getattr(descriptor, 'fget', None) - redirect.fset = getattr(descriptor, 'fset', None) - redirect.fdel = getattr(descriptor, 'fdel', None) - setattr(enum_class, member_name, redirect) + else: + need_override = True + # keep looking for an enum.property + if descriptor and not need_override: + # previous enum.property found, no further action needed + pass + else: + redirect = property() + redirect.__set_name__(enum_class, member_name) + if descriptor and need_override: + # previous enum.property found, but some other inherited attribute + # is in the way; copy fget, fset, fdel to this one + redirect.fget = descriptor.fget + redirect.fset = descriptor.fset + redirect.fdel = descriptor.fdel + setattr(enum_class, member_name, redirect) # now add to _member_map_ (even aliases) enum_class._member_map_[member_name] = enum_member try: @@ -546,6 +536,111 @@ def __new__(metacls, cls, bases, classdict, *, boundary=None, _simple=False, **k # update classdict with any changes made by __init_subclass__ classdict.update(enum_class.__dict__) # + # create a default docstring if one has not been provided + if enum_class.__doc__ is None: + if not member_names or not list(enum_class): + enum_class.__doc__ = classdict['__doc__'] = _dedent("""\ + Create a collection of name/value pairs. + + Example enumeration: + + >>> class Color(Enum): + ... RED = 1 + ... BLUE = 2 + ... GREEN = 3 + + Access them by: + + - attribute access:: + + >>> Color.RED + <Color.RED: 1> + + - value lookup: + + >>> Color(1) + <Color.RED: 1> + + - name lookup: + + >>> Color['RED'] + <Color.RED: 1> + + Enumerations can be iterated over, and know how many members they have: + + >>> len(Color) + 3 + + >>> list(Color) + [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>] + + Methods can be added to enumerations, and members can have their own + attributes -- see the documentation for details. + """) + else: + member = list(enum_class)[0] + enum_length = len(enum_class) + cls_name = enum_class.__name__ + if enum_length == 1: + list_line = 'list(%s)' % cls_name + list_repr = '[<%s.%s: %r>]' % (cls_name, member.name, member.value) + elif enum_length == 2: + member2 = list(enum_class)[1] + list_line = 'list(%s)' % cls_name + list_repr = '[<%s.%s: %r>, <%s.%s: %r>]' % ( + cls_name, member.name, member.value, + cls_name, member2.name, member2.value, + ) + else: + member2 = list(enum_class)[1] + member3 = list(enum_class)[2] + list_line = 'list(%s)%s' % (cls_name, ('','[:3]')[enum_length > 3]) + list_repr = '[<%s.%s: %r>, <%s.%s: %r>, <%s.%s: %r>]' % ( + cls_name, member.name, member.value, + cls_name, member2.name, member2.value, + cls_name, member3.name, member3.value, + ) + enum_class.__doc__ = classdict['__doc__'] = _dedent("""\ + A collection of name/value pairs. + + Access them by: + + - attribute access:: + + >>> %s.%s + <%s.%s: %r> + + - value lookup: + + >>> %s(%r) + <%s.%s: %r> + + - name lookup: + + >>> %s[%r] + <%s.%s: %r> + + Enumerations can be iterated over, and know how many members they have: + + >>> len(%s) + %r + + >>> %s + %s + + Methods can be added to enumerations, and members can have their own + attributes -- see the documentation for details. + """ + % (cls_name, member.name, + cls_name, member.name, member.value, + cls_name, member.value, + cls_name, member.name, member.value, + cls_name, member.name, + cls_name, member.name, member.value, + cls_name, enum_length, + list_line, list_repr, + )) + # # double check that repr and friends are not the mixin's or various # things break (such as pickle) # however, if the method is defined in the Enum itself, don't replace @@ -571,13 +666,7 @@ def __new__(metacls, cls, bases, classdict, *, boundary=None, _simple=False, **k classdict['__str__'] = enum_class.__str__ for name in ('__repr__', '__str__', '__format__', '__reduce_ex__'): if name not in classdict: - # check for mixin overrides before replacing - enum_method = getattr(first_enum, name) - found_method = getattr(enum_class, name) - object_method = getattr(object, name) - data_type_method = getattr(member_type, name) - if found_method in (data_type_method, object_method): - setattr(enum_class, name, enum_method) + setattr(enum_class, name, getattr(first_enum, name)) # # for Flag, add __or__, __and__, __xor__, and __invert__ if Flag is not None and issubclass(enum_class, Flag): @@ -663,7 +752,7 @@ def __new__(metacls, cls, bases, classdict, *, boundary=None, _simple=False, **k 'member order does not match _order_:\n %r\n %r' % (enum_class._member_names_, _order_) ) - + # return enum_class def __bool__(cls): @@ -710,16 +799,26 @@ def __call__(cls, value, names=None, *, module=None, qualname=None, type=None, s boundary=boundary, ) - def __contains__(cls, value): - """Return True if `value` is in `cls`. + def __contains__(cls, member): + """ + Return True if member is a member of this enum + raises TypeError if member is not an enum member - `value` is in `cls` if: - 1) `value` is a member of `cls`, or - 2) `value` is the value of one of the `cls`'s members. + note: in 3.12 TypeError will no longer be raised, and True will also be + returned if member is the value of a member in this enum """ - if isinstance(value, cls): - return True - return value in cls._value2member_map_ or value in cls._unhashable_values_ + if not isinstance(member, Enum): + import warnings + warnings.warn( + "in 3.12 __contains__ will no longer raise TypeError, but will return True or\n" + "False depending on whether the value is a member or the value of a member", + DeprecationWarning, + stacklevel=2, + ) + raise TypeError( + "unsupported operand type(s) for 'in': '%s' and '%s'" % ( + type(member).__qualname__, cls.__class__.__qualname__)) + return isinstance(member, cls) and member._name_ in cls._member_map_ def __delattr__(cls, attr): # nicer error message when someone tries to delete an attribute @@ -746,6 +845,22 @@ def __dir__(cls): # return whatever mixed-in data type has return sorted(set(dir(cls._member_type_)) | interesting) + def __getattr__(cls, name): + """ + Return the enum member matching `name` + + We use __getattr__ instead of descriptors or inserting into the enum + class' __dict__ in order to support `name` and `value` being both + properties for enum members (which live in the class' __dict__) and + enum members themselves. + """ + if _is_dunder(name): + raise AttributeError(name) + try: + return cls._member_map_[name] + except KeyError: + raise AttributeError(name) from None + def __getitem__(cls, name): """ Return the member matching `name`. @@ -936,18 +1051,16 @@ def _find_data_repr_(mcls, class_name, bases): @classmethod def _find_data_type_(mcls, class_name, bases): data_types = set() - base_chain = set() for chain in bases: candidate = None for base in chain.__mro__: - base_chain.add(base) if base is object: continue elif issubclass(base, Enum): if base._member_type_ is not object: data_types.add(base._member_type_) break - elif '__new__' in base.__dict__ or '__init__' in base.__dict__: + elif '__new__' in base.__dict__: if issubclass(base, Enum): continue data_types.add(candidate or base) @@ -1109,32 +1222,14 @@ def _generate_next_value_(name, start, count, last_values): name: the name of the member start: the initial start value or None count: the number of existing members - last_values: the list of values assigned + last_value: the last value assigned or None """ - if not last_values: - return start - try: - last = last_values[-1] - last_values.sort() - if last == last_values[-1]: - # no difference between old and new methods - return last + 1 - else: - # trigger old method (with warning) - raise TypeError - except TypeError: - import warnings - warnings.warn( - "In 3.13 the default `auto()`/`_generate_next_value_` will require all values to be sortable and support adding +1\n" - "and the value returned will be the largest value in the enum incremented by 1", - DeprecationWarning, - stacklevel=3, - ) - for v in last_values: - try: - return v + 1 - except TypeError: - pass + for last_value in reversed(last_values): + try: + return last_value + 1 + except TypeError: + pass + else: return start @classmethod @@ -1142,7 +1237,7 @@ def _missing_(cls, value): return None def __repr__(self): - v_repr = self.__class__._value_repr_ or repr + v_repr = self.__class__._value_repr_ or self._value_.__class__.__repr__ return "<%s.%s: %s>" % (self.__class__.__name__, self._name_, v_repr(self._value_)) def __str__(self): @@ -1190,10 +1285,10 @@ def __reduce_ex__(self, proto): # enum.property is used to provide access to the `name` and # `value` attributes of enum members while keeping some measure of # protection from modification, while still allowing for an enumeration - # to have members named `name` and `value`. This works because each - # instance of enum.property saves its companion member, which it returns - # on class lookup; on instance lookup it either executes a provided function - # or raises an AttributeError. + # to have members named `name` and `value`. This works because enumeration + # members are not set directly on the enum class; they are kept in a + # separate structure, _member_map_, which is where enum.property looks for + # them @property def name(self): @@ -1274,23 +1369,6 @@ class Flag(Enum, boundary=STRICT): Support for flags """ - def __reduce_ex__(self, proto): - cls = self.__class__ - unknown = self._value_ & ~cls._flag_mask_ - member_value = self._value_ & cls._flag_mask_ - if unknown and member_value: - return _or_, (cls(member_value), unknown) - for val in _iter_bits_lsb(member_value): - rest = member_value & ~val - if rest: - return _or_, (cls(rest), cls._value2member_map_.get(val)) - else: - break - if self._name_ is None: - return cls, (self._value_,) - else: - return getattr, (cls, self._name_) - _numeric_repr_ = repr def _generate_next_value_(name, start, count, last_values): @@ -1300,7 +1378,7 @@ def _generate_next_value_(name, start, count, last_values): name: the name of the member start: the initial start value or None count: the number of existing members - last_values: the last value assigned or None + last_value: the last value assigned or None """ if not count: return start if start is not None else 1 @@ -1431,7 +1509,7 @@ def __len__(self): def __repr__(self): cls_name = self.__class__.__name__ - v_repr = self.__class__._value_repr_ or repr + v_repr = self.__class__._value_repr_ or self._value_.__class__.__repr__ if self._name_ is None: return "<%s: %s>" % (cls_name, v_repr(self._value_)) else: @@ -1494,7 +1572,7 @@ def __invert__(self): __rxor__ = __xor__ -class IntFlag(int, ReprEnum, Flag, boundary=KEEP): +class IntFlag(int, ReprEnum, Flag, boundary=EJECT): """ Support for integer-based Flags """ @@ -1651,13 +1729,7 @@ def convert_class(cls): enum_class = type(cls_name, (etype, ), body, boundary=boundary, _simple=True) for name in ('__repr__', '__str__', '__format__', '__reduce_ex__'): if name not in body: - # check for mixin overrides before replacing - enum_method = getattr(etype, name) - found_method = getattr(enum_class, name) - object_method = getattr(object, name) - data_type_method = getattr(member_type, name) - if found_method in (data_type_method, object_method): - setattr(enum_class, name, enum_method) + setattr(enum_class, name, getattr(etype, name)) gnv_last_values = [] if issubclass(enum_class, Flag): # Flag / IntFlag @@ -1667,12 +1739,10 @@ def convert_class(cls): value = gnv(name, 1, len(member_names), gnv_last_values) if value in value2member_map: # an alias to an existing member - member = value2member_map[value] redirect = property() - redirect.member = member redirect.__set_name__(enum_class, name) setattr(enum_class, name, redirect) - member_map[name] = member + member_map[name] = value2member_map[value] else: # create the member if use_args: @@ -1688,7 +1758,6 @@ def convert_class(cls): member.__objclass__ = enum_class member.__init__(value) redirect = property() - redirect.member = member redirect.__set_name__(enum_class, name) setattr(enum_class, name, redirect) member_map[name] = member @@ -1716,12 +1785,10 @@ def convert_class(cls): value = value.value if value in value2member_map: # an alias to an existing member - member = value2member_map[value] redirect = property() - redirect.member = member redirect.__set_name__(enum_class, name) setattr(enum_class, name, redirect) - member_map[name] = member + member_map[name] = value2member_map[value] else: # create the member if use_args: @@ -1738,7 +1805,6 @@ def convert_class(cls): member.__init__(value) member._sort_order_ = len(member_names) redirect = property() - redirect.member = member redirect.__set_name__(enum_class, name) setattr(enum_class, name, redirect) member_map[name] = member @@ -1887,7 +1953,7 @@ def _test_simple_enum(checked_enum, simple_enum): else: checked_value = checked_dict[key] simple_value = simple_dict[key] - if callable(checked_value) or isinstance(checked_value, bltns.property): + if callable(checked_value): continue if key == '__doc__': # remove all spaces/tabs @@ -1994,6 +2060,7 @@ def _old_convert_(etype, name, module, filter, source=None, *, boundary=None): members.sort(key=lambda t: t[0]) cls = etype(name, members, module=module, boundary=boundary or KEEP) cls.__reduce_ex__ = _reduce_ex_by_global_name + cls.__repr__ = global_enum_repr return cls _stdlib_enums = IntEnum, StrEnum, IntFlag diff --git a/Lib/filecmp.py b/Lib/filecmp.py index 30bd900fa805aa..70a4b23c982205 100644 --- a/Lib/filecmp.py +++ b/Lib/filecmp.py @@ -157,17 +157,17 @@ def phase2(self): # Distinguish files, directories, funnies a_path = os.path.join(self.left, x) b_path = os.path.join(self.right, x) - ok = True + ok = 1 try: a_stat = os.stat(a_path) except OSError: # print('Can\'t stat', a_path, ':', why.args[1]) - ok = False + ok = 0 try: b_stat = os.stat(b_path) except OSError: # print('Can\'t stat', b_path, ':', why.args[1]) - ok = False + ok = 0 if ok: a_type = stat.S_IFMT(a_stat.st_mode) @@ -242,7 +242,7 @@ def report_full_closure(self): # Report on self and subdirs recursively methodmap = dict(subdirs=phase4, same_files=phase3, diff_files=phase3, funny_files=phase3, - common_dirs=phase2, common_files=phase2, common_funny=phase2, + common_dirs = phase2, common_files=phase2, common_funny=phase2, common=phase1, left_only=phase1, right_only=phase1, left_list=phase0, right_list=phase0) diff --git a/Lib/fileinput.py b/Lib/fileinput.py index e234dc9ea65f15..9f41c18510decf 100644 --- a/Lib/fileinput.py +++ b/Lib/fileinput.py @@ -335,21 +335,18 @@ def _readline(self): pass # The next few lines may raise OSError os.rename(self._filename, self._backupfilename) - self._file = open(self._backupfilename, self._mode, - encoding=encoding, errors=self._errors) + self._file = open(self._backupfilename, self._mode, encoding=encoding) try: perm = os.fstat(self._file.fileno()).st_mode except OSError: - self._output = open(self._filename, self._write_mode, - encoding=encoding, errors=self._errors) + self._output = open(self._filename, self._write_mode, encoding=encoding) else: mode = os.O_CREAT | os.O_WRONLY | os.O_TRUNC if hasattr(os, 'O_BINARY'): mode |= os.O_BINARY fd = os.open(self._filename, mode, perm) - self._output = os.fdopen(fd, self._write_mode, - encoding=encoding, errors=self._errors) + self._output = os.fdopen(fd, self._write_mode, encoding=encoding) try: os.chmod(self._filename, perm) except OSError: diff --git a/Lib/fnmatch.py b/Lib/fnmatch.py index d5e296f7748c1c..0f5a41ac06f3e6 100644 --- a/Lib/fnmatch.py +++ b/Lib/fnmatch.py @@ -102,7 +102,7 @@ def translate(pat): add('\\[') else: stuff = pat[i:j] - if '-' not in stuff: + if '--' not in stuff: stuff = stuff.replace('\\', r'\\') else: chunks = [] @@ -114,16 +114,7 @@ def translate(pat): chunks.append(pat[i:k]) i = k+1 k = k+3 - chunk = pat[i:j] - if chunk: - chunks.append(chunk) - else: - chunks[-1] += '-' - # Remove empty ranges -- invalid in RE. - for k in range(len(chunks)-1, 0, -1): - if chunks[k-1][-1] > chunks[k][0]: - chunks[k-1] = chunks[k-1][:-1] + chunks[k][1:] - del chunks[k] + chunks.append(pat[i:j]) # Escape backslashes and hyphens for set difference (--). # Hyphens that create ranges shouldn't be escaped. stuff = '-'.join(s.replace('\\', r'\\').replace('-', r'\-') @@ -131,18 +122,11 @@ def translate(pat): # Escape set operations (&&, ~~ and ||). stuff = re.sub(r'([&~|])', r'\\\1', stuff) i = j+1 - if not stuff: - # Empty range: never match. - add('(?!)') - elif stuff == '!': - # Negated empty range: match any character. - add('.') - else: - if stuff[0] == '!': - stuff = '^' + stuff[1:] - elif stuff[0] in ('^', '['): - stuff = '\\' + stuff - add(f'[{stuff}]') + if stuff[0] == '!': + stuff = '^' + stuff[1:] + elif stuff[0] in ('^', '['): + stuff = '\\' + stuff + add(f'[{stuff}]') else: add(re.escape(c)) assert i == n diff --git a/Lib/fractions.py b/Lib/fractions.py index 75c7df14e1b9c7..f9ac882ec002fa 100644 --- a/Lib/fractions.py +++ b/Lib/fractions.py @@ -4,7 +4,6 @@ """Fraction, infinite-precision, rational numbers.""" from decimal import Decimal -import functools import math import numbers import operator @@ -21,46 +20,13 @@ # _PyHASH_MODULUS. _PyHASH_INF = sys.hash_info.inf -@functools.lru_cache(maxsize = 1 << 14) -def _hash_algorithm(numerator, denominator): - - # To make sure that the hash of a Fraction agrees with the hash - # of a numerically equal integer, float or Decimal instance, we - # follow the rules for numeric hashes outlined in the - # documentation. (See library docs, 'Built-in Types'). - - try: - dinv = pow(denominator, -1, _PyHASH_MODULUS) - except ValueError: - # ValueError means there is no modular inverse. - hash_ = _PyHASH_INF - else: - # The general algorithm now specifies that the absolute value of - # the hash is - # (|N| * dinv) % P - # where N is self._numerator and P is _PyHASH_MODULUS. That's - # optimized here in two ways: first, for a non-negative int i, - # hash(i) == i % P, but the int hash implementation doesn't need - # to divide, and is faster than doing % P explicitly. So we do - # hash(|N| * dinv) - # instead. Second, N is unbounded, so its product with dinv may - # be arbitrarily expensive to compute. The final answer is the - # same if we use the bounded |N| % P instead, which can again - # be done with an int hash() call. If 0 <= i < P, hash(i) == i, - # so this nested hash() call wastes a bit of time making a - # redundant copy when |N| < P, but can save an arbitrarily large - # amount of computation for large |N|. - hash_ = hash(hash(abs(numerator)) * dinv) - result = hash_ if numerator >= 0 else -hash_ - return -2 if result == -1 else result - _RATIONAL_FORMAT = re.compile(r""" \A\s* # optional whitespace at the start, (?P<sign>[-+]?) # an optional sign, then (?=\d|\.\d) # lookahead for digit or .digit (?P<num>\d*|\d+(_\d+)*) # numerator (possibly empty) (?: # followed by - (?:\s*/\s*(?P<denom>\d+(_\d+)*))? # an optional denominator + (?:/(?P<denom>\d+(_\d+)*))? # an optional denominator | # or (?:\.(?P<decimal>d*|\d+(_\d+)*))? # an optional fractional part (?:E(?P<exp>[-+]?\d+(_\d+)*))? # and optional exponent @@ -279,16 +245,14 @@ def limit_denominator(self, max_denominator=1000000): break p0, q0, p1, q1 = p1, q1, p0+a*p1, q2 n, d = d, n-a*d - k = (max_denominator-q0)//q1 - # Determine which of the candidates (p0+k*p1)/(q0+k*q1) and p1/q1 is - # closer to self. The distance between them is 1/(q1*(q0+k*q1)), while - # the distance from p1/q1 to self is d/(q1*self._denominator). So we - # need to compare 2*(q0+k*q1) with self._denominator/d. - if 2*d*(q0+k*q1) <= self._denominator: - return Fraction(p1, q1, _normalize=False) + k = (max_denominator-q0)//q1 + bound1 = Fraction(p0+k*p1, q0+k*q1) + bound2 = Fraction(p1, q1) + if abs(bound2 - self) <= abs(bound1-self): + return bound2 else: - return Fraction(p0+k*p1, q0+k*q1, _normalize=False) + return bound1 @property def numerator(a): @@ -680,7 +644,36 @@ def __round__(self, ndigits=None): def __hash__(self): """hash(self)""" - return _hash_algorithm(self._numerator, self._denominator) + + # To make sure that the hash of a Fraction agrees with the hash + # of a numerically equal integer, float or Decimal instance, we + # follow the rules for numeric hashes outlined in the + # documentation. (See library docs, 'Built-in Types'). + + try: + dinv = pow(self._denominator, -1, _PyHASH_MODULUS) + except ValueError: + # ValueError means there is no modular inverse. + hash_ = _PyHASH_INF + else: + # The general algorithm now specifies that the absolute value of + # the hash is + # (|N| * dinv) % P + # where N is self._numerator and P is _PyHASH_MODULUS. That's + # optimized here in two ways: first, for a non-negative int i, + # hash(i) == i % P, but the int hash implementation doesn't need + # to divide, and is faster than doing % P explicitly. So we do + # hash(|N| * dinv) + # instead. Second, N is unbounded, so its product with dinv may + # be arbitrarily expensive to compute. The final answer is the + # same if we use the bounded |N| % P instead, which can again + # be done with an int hash() call. If 0 <= i < P, hash(i) == i, + # so this nested hash() call wastes a bit of time making a + # redundant copy when |N| < P, but can save an arbitrarily large + # amount of computation for large |N|. + hash_ = hash(hash(abs(self._numerator)) * dinv) + result = hash_ if self._numerator >= 0 else -hash_ + return -2 if result == -1 else result def __eq__(a, b): """a == b""" diff --git a/Lib/functools.py b/Lib/functools.py index 43ead512e1ea4e..cd5666dfa71fd0 100644 --- a/Lib/functools.py +++ b/Lib/functools.py @@ -843,11 +843,12 @@ def _is_union_type(cls): return get_origin(cls) in {Union, types.UnionType} def _is_valid_dispatch_type(cls): - if isinstance(cls, type): + if isinstance(cls, type) and not isinstance(cls, GenericAlias): return True from typing import get_args return (_is_union_type(cls) and - all(isinstance(arg, type) for arg in get_args(cls))) + all(isinstance(arg, type) and not isinstance(arg, GenericAlias) + for arg in get_args(cls))) def register(cls, func=None): """generic_func.register(cls, func) -> func diff --git a/Lib/gzip.py b/Lib/gzip.py index 8edcda4493c894..5b20e5ba698ee9 100644 --- a/Lib/gzip.py +++ b/Lib/gzip.py @@ -212,6 +212,14 @@ def __init__(self, filename=None, mode=None, if self.mode == WRITE: self._write_gzip_header(compresslevel) + @property + def filename(self): + import warnings + warnings.warn("use the name attribute", DeprecationWarning, 2) + if self.mode == WRITE and self.name[-3:] != ".gz": + return self.name + ".gz" + return self.name + @property def mtime(self): """Last modification time read from stream, or None""" diff --git a/Lib/hashlib.py b/Lib/hashlib.py index 21b5e912f3c771..b546a3fd795311 100644 --- a/Lib/hashlib.py +++ b/Lib/hashlib.py @@ -65,7 +65,7 @@ algorithms_available = set(__always_supported) __all__ = __always_supported + ('new', 'algorithms_guaranteed', - 'algorithms_available', 'file_digest') + 'algorithms_available', 'pbkdf2_hmac', 'file_digest') __builtin_constructor_cache = {} @@ -180,10 +180,72 @@ def __hash_new(name, data=b'', **kwargs): try: # OpenSSL's PKCS5_PBKDF2_HMAC requires OpenSSL 1.0+ with HMAC and SHA from _hashlib import pbkdf2_hmac - __all__ += ('pbkdf2_hmac',) except ImportError: - pass - + from warnings import warn as _warn + _trans_5C = bytes((x ^ 0x5C) for x in range(256)) + _trans_36 = bytes((x ^ 0x36) for x in range(256)) + + def pbkdf2_hmac(hash_name, password, salt, iterations, dklen=None): + """Password based key derivation function 2 (PKCS #5 v2.0) + + This Python implementations based on the hmac module about as fast + as OpenSSL's PKCS5_PBKDF2_HMAC for short passwords and much faster + for long passwords. + """ + _warn( + "Python implementation of pbkdf2_hmac() is deprecated.", + category=DeprecationWarning, + stacklevel=2 + ) + if not isinstance(hash_name, str): + raise TypeError(hash_name) + + if not isinstance(password, (bytes, bytearray)): + password = bytes(memoryview(password)) + if not isinstance(salt, (bytes, bytearray)): + salt = bytes(memoryview(salt)) + + # Fast inline HMAC implementation + inner = new(hash_name) + outer = new(hash_name) + blocksize = getattr(inner, 'block_size', 64) + if len(password) > blocksize: + password = new(hash_name, password).digest() + password = password + b'\x00' * (blocksize - len(password)) + inner.update(password.translate(_trans_36)) + outer.update(password.translate(_trans_5C)) + + def prf(msg, inner=inner, outer=outer): + # PBKDF2_HMAC uses the password as key. We can re-use the same + # digest objects and just update copies to skip initialization. + icpy = inner.copy() + ocpy = outer.copy() + icpy.update(msg) + ocpy.update(icpy.digest()) + return ocpy.digest() + + if iterations < 1: + raise ValueError(iterations) + if dklen is None: + dklen = outer.digest_size + if dklen < 1: + raise ValueError(dklen) + + dkey = b'' + loop = 1 + from_bytes = int.from_bytes + while len(dkey) < dklen: + prev = prf(salt + loop.to_bytes(4)) + # endianness doesn't matter here as long to / from use the same + rkey = from_bytes(prev) + for i in range(iterations - 1): + prev = prf(prev) + # rkey = rkey ^ prev + rkey ^= from_bytes(prev) + loop += 1 + dkey += rkey.to_bytes(inner.digest_size) + + return dkey[:dklen] try: # OpenSSL's scrypt requires OpenSSL 1.1+ diff --git a/Lib/html/entities.py b/Lib/html/entities.py index cc59bc314499ad..dc508631ac4789 100644 --- a/Lib/html/entities.py +++ b/Lib/html/entities.py @@ -3,7 +3,8 @@ __all__ = ['html5', 'name2codepoint', 'codepoint2name', 'entitydefs'] -# maps HTML4 entity name to the Unicode code point +# maps the HTML entity name to the Unicode code point +# from https://html.spec.whatwg.org/multipage/named-characters.html name2codepoint = { 'AElig': 0x00c6, # latin capital letter AE = latin capital ligature AE, U+00C6 ISOlat1 'Aacute': 0x00c1, # latin capital letter A with acute, U+00C1 ISOlat1 @@ -260,11 +261,7 @@ } -# HTML5 named character references -# Generated by 'Tools/scripts/parse_html5_entities.py' -# from https://html.spec.whatwg.org/entities.json and -# https://html.spec.whatwg.org/multipage/named-characters.html. -# Map HTML5 named character references to the equivalent Unicode character(s). +# maps the HTML5 named character references to the equivalent Unicode character(s) html5 = { 'Aacute': '\xc1', 'aacute': '\xe1', diff --git a/Lib/html/parser.py b/Lib/html/parser.py index 13c95c34e505c8..bef0f4fe4bf776 100644 --- a/Lib/html/parser.py +++ b/Lib/html/parser.py @@ -89,7 +89,6 @@ def __init__(self, *, convert_charrefs=True): If convert_charrefs is True (the default), all character references are automatically converted to the corresponding Unicode characters. """ - super().__init__() self.convert_charrefs = convert_charrefs self.reset() @@ -99,7 +98,7 @@ def reset(self): self.lasttag = '???' self.interesting = interesting_normal self.cdata_elem = None - super().reset() + _markupbase.ParserBase.reset(self) def feed(self, data): r"""Feed data to the parser. diff --git a/Lib/http/__init__.py b/Lib/http/__init__.py index e093a1fec4dffc..cd2885dc7757b4 100644 --- a/Lib/http/__init__.py +++ b/Lib/http/__init__.py @@ -31,26 +31,6 @@ def __new__(cls, value, phrase, description=''): obj.description = description return obj - @property - def is_informational(self): - return 100 <= self <= 199 - - @property - def is_success(self): - return 200 <= self <= 299 - - @property - def is_redirection(self): - return 300 <= self <= 399 - - @property - def is_client_error(self): - return 400 <= self <= 499 - - @property - def is_server_error(self): - return 500 <= self <= 599 - # informational CONTINUE = 100, 'Continue', 'Request received, please continue' SWITCHING_PROTOCOLS = (101, 'Switching Protocols', diff --git a/Lib/http/client.py b/Lib/http/client.py index 0720990f84e7ed..f54172fd0deeae 100644 --- a/Lib/http/client.py +++ b/Lib/http/client.py @@ -786,20 +786,6 @@ def getcode(self): ''' return self.status - -def _create_https_context(http_version): - # Function also used by urllib.request to be able to set the check_hostname - # attribute on a context object. - context = ssl._create_default_https_context() - # send ALPN extension to indicate HTTP/1.1 protocol - if http_version == 11: - context.set_alpn_protocols(['http/1.1']) - # enable PHA for TLS 1.3 connections if available - if context.post_handshake_auth is not None: - context.post_handshake_auth = True - return context - - class HTTPConnection: _http_vsn = 11 @@ -956,7 +942,7 @@ def connect(self): (self.host,self.port), self.timeout, self.source_address) # Might fail in OSs that don't implement TCP_NODELAY try: - self.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) + self.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) except OSError as e: if e.errno != errno.ENOPROTOOPT: raise @@ -1432,9 +1418,19 @@ def __init__(self, host, port=None, key_file=None, cert_file=None, self.key_file = key_file self.cert_file = cert_file if context is None: - context = _create_https_context(self._http_vsn) - if check_hostname is not None: - context.check_hostname = check_hostname + context = ssl._create_default_https_context() + # send ALPN extension to indicate HTTP/1.1 protocol + if self._http_vsn == 11: + context.set_alpn_protocols(['http/1.1']) + # enable PHA for TLS 1.3 connections if available + if context.post_handshake_auth is not None: + context.post_handshake_auth = True + will_verify = context.verify_mode != ssl.CERT_NONE + if check_hostname is None: + check_hostname = context.check_hostname + if check_hostname and not will_verify: + raise ValueError("check_hostname needs a SSL context with " + "either CERT_OPTIONAL or CERT_REQUIRED") if key_file or cert_file: context.load_cert_chain(cert_file, key_file) # cert and key file means the user wants to authenticate. @@ -1442,6 +1438,8 @@ def __init__(self, host, port=None, key_file=None, cert_file=None, if context.post_handshake_auth is not None: context.post_handshake_auth = True self._context = context + if check_hostname is not None: + self._context.check_hostname = check_hostname def connect(self): "Connect to a host on a given (SSL) port." diff --git a/Lib/http/cookiejar.py b/Lib/http/cookiejar.py index c514e0d382cbc7..f19a366496a21a 100644 --- a/Lib/http/cookiejar.py +++ b/Lib/http/cookiejar.py @@ -1890,7 +1890,7 @@ def save(self, filename=None, ignore_discard=False, ignore_expires=False): if self.filename is not None: filename = self.filename else: raise ValueError(MISSING_FILENAME_TEXT) - with os.fdopen(os.open(filename, os.O_CREAT | os.O_WRONLY, 0o600), 'w') as f: + with open(filename, "w") as f: # There really isn't an LWP Cookies 2.0 format, but this indicates # that there is extra information in here (domain_dot and # port_spec) while still being compatible with libwww-perl, I hope. @@ -2086,7 +2086,7 @@ def save(self, filename=None, ignore_discard=False, ignore_expires=False): if self.filename is not None: filename = self.filename else: raise ValueError(MISSING_FILENAME_TEXT) - with os.fdopen(os.open(filename, os.O_CREAT | os.O_WRONLY, 0o600), 'w') as f: + with open(filename, "w") as f: f.write(NETSCAPE_HEADER_TEXT) now = time.time() for cookie in self: diff --git a/Lib/http/server.py b/Lib/http/server.py index 8aee31bac2752a..d115dfc162bb14 100644 --- a/Lib/http/server.py +++ b/Lib/http/server.py @@ -329,13 +329,6 @@ def parse_request(self): return False self.command, self.path = command, path - # gh-87389: The purpose of replacing '//' with '/' is to protect - # against open redirect attacks possibly triggered if the path starts - # with '//' because http clients treat //path as an absolute URI - # without scheme (similar to http://path) rather than a path. - if self.path.startswith('//'): - self.path = '/' + self.path.lstrip('/') # Reduce to a single / - # Examine the headers and look for a Connection directive. try: self.headers = http.client.parse_headers(self.rfile, @@ -642,7 +635,6 @@ class SimpleHTTPRequestHandler(BaseHTTPRequestHandler): """ - index_pages = ["index.html", "index.htm"] server_version = "SimpleHTTP/" + __version__ extensions_map = _encodings_map_default = { '.gz': 'application/gzip', @@ -651,11 +643,9 @@ class SimpleHTTPRequestHandler(BaseHTTPRequestHandler): '.xz': 'application/x-xz', } - def __init__(self, *args, directory=None, index_pages=None, **kwargs): + def __init__(self, *args, directory=None, **kwargs): if directory is None: directory = os.getcwd() - if index_pages is not None: - self.index_pages = index_pages self.directory = os.fspath(directory) super().__init__(*args, **kwargs) @@ -699,7 +689,7 @@ def send_head(self): self.send_header("Content-Length", "0") self.end_headers() return None - for index in self.index_pages: + for index in "index.html", "index.htm": index = os.path.join(path, index) if os.path.exists(index): path = index diff --git a/Lib/idlelib/CREDITS.txt b/Lib/idlelib/CREDITS.txt index 4a42af586a4a9e..3a50eb8e7f2ac3 100644 --- a/Lib/idlelib/CREDITS.txt +++ b/Lib/idlelib/CREDITS.txt @@ -2,10 +2,9 @@ Guido van Rossum, as well as being the creator of the Python language, is the original creator of IDLE. Other contributors prior to Version 0.8 include Mark Hammond, Jeremy Hylton, Tim Peters, and Moshe Zadka. -Until Python 2.3, IDLE's development was carried out in the SF IDLEfork project. The +IDLE's recent development was carried out in the SF IDLEfork project. The objective was to develop a version of IDLE which had an execution environment which could be initialized prior to each run of user code. -IDLefork was merged into the Python code base in 2003. The IDLEfork project was initiated by David Scherer, with some help from Peter Schneider-Kamp and Nicholas Riley. David wrote the first version of the RPC @@ -29,15 +28,6 @@ Jim Jewett, Martin v. Löwis, Jason Orendorff, Guilherme Polo, Josh Robb, Nigel Rowe, Bruce Sherwood, Jeff Shute, and Weeble have submitted useful patches. Thanks, guys! -Major contributors since 2005: - -- 2005: Tal Einat -- 2010: Terry Jan Reedy (current maintainer) -- 2013: Roger Serwys -- 2014: Saimadhav Heblikar -- 2015: Mark Roseman -- 2017: Louie Lu, Cheryl Sabella, and Serhiy Storchaka - For additional details refer to NEWS.txt and Changelog. Please contact the IDLE maintainer (kbk@shore.net) to have yourself included diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt index 7fa7facf8cf780..441ec41ed76b2c 100644 --- a/Lib/idlelib/NEWS.txt +++ b/Lib/idlelib/NEWS.txt @@ -4,22 +4,6 @@ Released on 2022-10-03 ========================= -gh-65802: Document handling of extensions in Save As dialogs. - -gh-95191: Include prompts when saving Shell (interactive input/output). - -gh-95511: Fix the Shell context menu copy-with-prompts bug of copying -an extra line when one selects whole lines. - -gh-95471: Tweak Edit menu. Move 'Select All' above 'Cut' as it is used -with 'Cut' and 'Copy' but not 'Paste'. Add a separator between 'Replace' -and 'Go to Line' to help IDLE issue triagers. - -gh-95411: Enable using IDLE's module browser with .pyw files. - -gh-89610: Add .pyi as a recognized extension for IDLE on macOS. This allows -opening stub files by double clicking on them in the Finder. - bpo-28950: Apply IDLE syntax highlighting to `.pyi` files. Add util.py for common components. Patch by Alex Waygood and Terry Jan Reedy. @@ -45,7 +29,6 @@ What's New in IDLE 3.10.0 Released on 2021-10-04 ========================= -bpo-45193: Make completion boxes appear on Ubuntu again. bpo-40128: Mostly fix completions on macOS when not using tcl/tk 8.6.11 (as with 3.9). diff --git a/Lib/idlelib/README.txt b/Lib/idlelib/README.txt index 76aec58912f00e..8870fda315e392 100644 --- a/Lib/idlelib/README.txt +++ b/Lib/idlelib/README.txt @@ -16,9 +16,8 @@ and omissions and lag behind changes in idlelib. IDLELIB FILES -============= - Implementation files not in IDLE MENU are marked (nim). +Deprecated files and objects are listed separately as the end. Startup ------- @@ -34,22 +33,22 @@ autocomplete.py # Complete attribute names or filenames. autocomplete_w.py # Display completions. autoexpand.py # Expand word with previous word in file. browser.py # Create module browser window. -calltip.py # Create calltip text. calltip_w.py # Display calltip. +calltips.py # Create calltip text. codecontext.py # Show compound statement headers otherwise not visible. -colorizer.py # Colorize text (nim). +colorizer.py # Colorize text (nim) config.py # Load, fetch, and save configuration (nim). configdialog.py # Display user configuration dialogs. +config_help.py # Specify help source in configdialog. config_key.py # Change keybindings. -debugger.py # Debug code run from shell or editor; show window. -debugger_r.py # Debug code run in remote process. +dynoption.py # Define mutable OptionMenu widget (nim). debugobj.py # Define class used in stackviewer. debugobj_r.py # Communicate objects between processes with rpc (nim). +debugger.py # Debug code run from shell or editor; show window. +debugger_r.py # Debug code run in remote process. delegator.py # Define base class for delegators (nim). -dynoption.py # Define mutable OptionMenu widget (nim) editor.py # Define most of editor and utility functions. filelist.py # Open files and manage list of open windows (nim). -format.py # Define format menu options. grep.py # Find all occurrences of pattern in multiple files. help.py # Display IDLE's html doc. help_about.py # Display About IDLE dialog. @@ -60,6 +59,7 @@ macosx.py # Help IDLE run on Macs (nim). mainmenu.py # Define most of IDLE menu. multicall.py # Wrap tk widget to allow multiple calls per event (nim). outwin.py # Create window for grep output. +paragraph.py # Re-wrap multiline strings and comments. parenmatch.py # Match fenceposts: (), [], and {}. pathbrowser.py # Create path browser window. percolator.py # Manage delegator stack (nim). @@ -69,25 +69,22 @@ query.py # Query user for information redirector.py # Intercept widget subcommands (for percolator) (nim). replace.py # Search and replace pattern in text. rpc.py # Communicate between idle and user processes (nim). +rstrip.py # Strip trailing whitespace. run.py # Manage user code execution subprocess. runscript.py # Check and run user code. scrolledlist.py # Define scrolledlist widget for IDLE (nim). search.py # Search for pattern in text. searchbase.py # Define base for search, replace, and grep dialogs. searchengine.py # Define engine for all 3 search dialogs. -sidebar.py # Define line number and shell prompt sidebars. -squeezer.py # Squeeze long shell output (nim). stackviewer.py # View stack after exception. statusbar.py # Define status bar for windows (nim). tabbedpages.py # Define tabbed pages widget (nim). textview.py # Define read-only text widget (nim). -tooltip.py # Define popups for calltips, squeezer (nim). tree.py # Define tree widget, used in browsers (nim). undo.py # Manage undo stack. -util.py # Define common objects imported elsewhere (nim). +util.py # Define objects imported elsewhere with no dependencies (nim) windows.py # Manage window list and define listed top level. zoomheight.py # Zoom window to full height of screen. -zzdummy.py # Example extension. Configuration ------------- @@ -101,7 +98,6 @@ Text CREDITS.txt # not maintained, displayed by About IDLE HISTORY.txt # NEWS up to July 2001 NEWS.txt # commits, displayed by About IDLE -NEWS2.txt # commits to Python2 README.txt # this file, displayed by About IDLE TODO.txt # needs review extend.txt # about writing extensions @@ -112,10 +108,13 @@ Subdirectories Icons # small image files idle_test # files for human test and automated unit tests +Unused and Deprecated files and objects (nim) +--------------------------------------------- +tooltip.py # unused -IDLE MENUS -========== + +IDLE MENUS Top level items and most submenu items are defined in mainmenu. Extensions add submenu items when active. The names given are found, quoted, in one of these modules, paired with a '<<pseudoevent>>'. @@ -161,68 +160,63 @@ Edit Show call tip # Calltips extension and CalltipWindow (& Hyperparser) Show surrounding parens # parenmatch (& Hyperparser) -Format (Editor only) [fFR = format.FormatRegion] - Format Paragraph # format.FormatParagraph.format_paragraph_event - Indent Region # fFR.indent_region_event - Dedent Region # fFR.dedent_region_event - Comment Out Reg. # fFR.comment_region_event - Uncomment Region # fFR.uncomment_region_event - Tabify Region # fFR.tabify_region_event - Untabify Region # fFR.untabify_region_event - Toggle Tabs # format.Indents.toggle_tabs_event - New Indent Width # format.Indents.change_indentwidth_event - Strip tailing whitespace # format.rstrip - Zin # zzdummy - Zout # zzdummy - -Run (Editor only) - Run Module # runscript.ScriptBinding.run_module_event - Run... Customized # runscript.ScriptBinding.run_custom_event - Check Module # runscript.ScriptBinding.check_module_event - Python Shell # pyshell.Pyshell, pyshell.ModifiedInterpreter - Shell # pyshell View Last Restart # pyshell.PyShell.view_restart_mark Restart Shell # pyshell.PyShell.restart_shell - Previous History # history.History.history_prev - Next History # history.History.history_next Interrupt Execution # pyshell.PyShell.cancel_callback Debug (Shell only) - Go to File/Line # outwin.OutputWindow.goto_file_line + Go to File/Line debugger # debugger, debugger_r, PyShell.toggle_debugger Stack Viewer # stackviewer, PyShell.open_stack_viewer Auto-open Stack Viewer # stackviewer +Format (Editor only) + Indent Region # eEW.indent_region_event + Dedent Region # eEW.dedent_region_event + Comment Out Reg. # eEW.comment_region_event + Uncomment Region # eEW.uncomment_region_event + Tabify Region # eEW.tabify_region_event + Untabify Region # eEW.untabify_region_event + Toggle Tabs # eEW.toggle_tabs_event + New Indent Width # eEW.change_indentwidth_event + Format Paragraph # paragraph extension + --- + Strip tailing whitespace # rstrip extension + +Run (Editor only) + Python Shell # pyshell + --- + Check Module # runscript + Run Module # runscript + Options - Configure IDLE # eEW.config_dialog, config, configdialog (cd) - (Parts of the dialog) - Buttons # cd.ConfigDialog - Font tab # cd.FontPage, config-main.def - Highlight tab # cd.HighPage, query, config-highlight.def - Keys tab # cd.KeysPage, query, config_key, config_keys.def - Windows tab # cd.WinPage, config_main.def - Shell/Ed tab # cd.ShedPage, config-main.def - Extensions tab # config-extensions.def, corresponding .py files + Configure IDLE # eEW.config_dialog, configdialog + (tabs in the dialog) + Font tab # config-main.def + Highlight tab # query, config-highlight.def + Keys tab # query, config_key, config_keys.def + General tab # config_help, config-main.def + Extensions tab # config-extensions.def, corresponding .py --- - ... Code Context # codecontext - ... Line Numbers # sidebar - Zoomheight # zoomheight + Code Context (ed)# codecontext extension Window + Zoomheight # zoomheight extension + --- <open windows> # windows Help About IDLE # eEW.about_dialog, help_about.AboutDialog --- - IDLE Help # eEW.help_dialog, help.show_idlehelp - Python Docs # eEW.python_docs + IDLE Help # eEW.help_dialog, helpshow_idlehelp + Python Doc # eEW.python_docs Turtle Demo # eEW.open_turtle_demo --- <other help sources> <Context Menu> (right click) - Defined in editor, PyShell.pyshell + Defined in editor, PyShelpyshellut Cut Copy Paste @@ -238,14 +232,11 @@ Help Center Insert # eEW.center_insert_event -OTHER TOPICS -============ - -Generally use PEP 8. +CODE STYLE -- Generally PEP 8. -import statements ------------------ -Put imports at the top, unless there is a good reason otherwise. +import +------ +Put import at the top, unless there is a good reason otherwise. PEP 8 says to group stdlib, 3rd-party dependencies, and package imports. For idlelib, the groups are general stdlib, tkinter, and idlelib. Sort modules within each group, except that tkinter.ttk follows tkinter. @@ -259,32 +250,3 @@ htest function def or "if __name__ == '__main__'" clause. Within module imports like "from idlelib.mod import class" may cause circular imports to deadlock. Even without this, circular imports may require at least one of the imports to be delayed until a function call. - -What's New entries ------------------- - -Repository directory Doc/whatsnew/ has a file 3.n.rst for each 3.n -Python version. For the first entry in each file, add subsection -'IDLE and idlelib', in alphabetical position, to the 'Improved Modules' -section. For the rest of cpython, entries to 3.(n+1).rst begin with -the release of 3.n.0b1. For IDLE, entries for features backported from -'main' to '3.n' during its beta period do not got in 3.(n+1).rst. The -latter usually gets its first entry during the 3.n.0 candidate period -or after the 3.n.0 release. - -When, as per PEP 434, feature changes are backported, entries are placed -in the 3.n.rst file *in the main branch* for each Python version n that -gets the backport. (Note: the format of entries have varied between -versions.) Add a line "New in 3.n maintenance releases." before the -first back-ported feature after 3.n.0 is released. Since each older -version file gets a different number of backports, it is easiest to -make a separate PR for each file and label it with the backports -needed. - -Github repository and issues ----------------------------- - -The CPython repository is https://github.com/python/cpython. The -IDLE Issues listing is https://github.com/orgs/python/projects/31. -The main classification is by Topic, based on the IDLE menu. View the -topics list by clicking the [<]] button in the upper right. diff --git a/Lib/idlelib/browser.py b/Lib/idlelib/browser.py index 4fe64dced60aca..4da2d4071ac191 100644 --- a/Lib/idlelib/browser.py +++ b/Lib/idlelib/browser.py @@ -6,6 +6,7 @@ (or recheck on window popup) - add popup menu with more options (e.g. doc strings, base classes, imports) - add base classes to class browser tree +- finish removing limitation to x.py files (ModuleBrowserTreeItem) """ import os @@ -15,22 +16,12 @@ from idlelib.config import idleConf from idlelib import pyshell from idlelib.tree import TreeNode, TreeItem, ScrolledCanvas -from idlelib.util import py_extensions from idlelib.window import ListedToplevel file_open = None # Method...Item and Class...Item use this. # Normally pyshell.flist.open, but there is no pyshell.flist for htest. -# The browser depends on pyclbr and importlib which do not support .pyi files. -browseable_extension_blocklist = ('.pyi',) - - -def is_browseable_extension(path): - _, ext = os.path.splitext(path) - ext = os.path.normcase(ext) - return ext in py_extensions and ext not in browseable_extension_blocklist - def transform_children(child_dict, modname=None): """Transform a child dictionary to an ordered sequence of objects. @@ -85,8 +76,8 @@ def __init__(self, master, path, *, _htest=False, _utest=False): Instance variables: name: Module name. - file: Full path and module with supported extension. - Used in creating ModuleBrowserTreeItem as the rootnode for + file: Full path and module with .py extension. Used in + creating ModuleBrowserTreeItem as the rootnode for the tree and subsequently in the children. """ self.master = master @@ -170,22 +161,22 @@ def GetSubList(self): def OnDoubleClick(self): "Open a module in an editor window when double clicked." - if not is_browseable_extension(self.file): + if os.path.normcase(self.file[-3:]) != ".py": return if not os.path.exists(self.file): return file_open(self.file) def IsExpandable(self): - "Return True if Python file." - return is_browseable_extension(self.file) + "Return True if Python (.py) file." + return os.path.normcase(self.file[-3:]) == ".py" def listchildren(self): "Return sequenced classes and functions in the module." - if not is_browseable_extension(self.file): - return [] dir, base = os.path.split(self.file) - name, _ = os.path.splitext(base) + name, ext = os.path.splitext(base) + if os.path.normcase(ext) != ".py": + return [] try: tree = pyclbr.readmodule_ex(name, [dir] + sys.path) except ImportError: diff --git a/Lib/idlelib/config.py b/Lib/idlelib/config.py index 2b09d79470b47c..5ce5f4a4f7bd0d 100644 --- a/Lib/idlelib/config.py +++ b/Lib/idlelib/config.py @@ -578,7 +578,7 @@ def IsCoreBinding(self, virtualEvent): """ return ('<<'+virtualEvent+'>>') in self.GetCoreKeys() -# TODO make keyBindings a file or class attribute used for test above +# TODO make keyBindins a file or class attribute used for test above # and copied in function below. former_extension_events = { # Those with user-configurable keys. diff --git a/Lib/idlelib/configdialog.py b/Lib/idlelib/configdialog.py index 8e478d743fb767..d5748a64a798b7 100644 --- a/Lib/idlelib/configdialog.py +++ b/Lib/idlelib/configdialog.py @@ -11,7 +11,7 @@ """ import re -from tkinter import (Toplevel, Listbox, Canvas, +from tkinter import (Toplevel, Listbox, Scale, Canvas, StringVar, BooleanVar, IntVar, TRUE, FALSE, TOP, BOTTOM, RIGHT, LEFT, SOLID, GROOVE, NONE, BOTH, X, Y, W, E, EW, NS, NSEW, NW, @@ -121,7 +121,7 @@ def create_widgets(self): self.winpage = WinPage(note) self.shedpage = ShedPage(note) - note.add(self.fontpage, text=' Fonts ') + note.add(self.fontpage, text='Fonts/Tabs') note.add(self.highpage, text='Highlights') note.add(self.keyspage, text=' Keys ') note.add(self.winpage, text=' Windows ') diff --git a/Lib/idlelib/editor.py b/Lib/idlelib/editor.py index 08d6aa2efde22a..6c52efd655e121 100644 --- a/Lib/idlelib/editor.py +++ b/Lib/idlelib/editor.py @@ -86,20 +86,10 @@ def __init__(self, flist=None, filename=None, key=None, root=None): dochome = os.path.join(basepath, pyver, 'Doc', 'index.html') elif sys.platform[:3] == 'win': - import winreg # Windows only, block only executed once. - docfile = '' - KEY = (rf"Software\Python\PythonCore\{sys.winver}" - r"\Help\Main Python Documentation") - try: - docfile = winreg.QueryValue(winreg.HKEY_CURRENT_USER, KEY) - except FileNotFoundError: - try: - docfile = winreg.QueryValue(winreg.HKEY_LOCAL_MACHINE, - KEY) - except FileNotFoundError: - pass - if os.path.isfile(docfile): - dochome = docfile + chmfile = os.path.join(sys.base_prefix, 'Doc', + 'Python%s.chm' % _sphinx_version()) + if os.path.isfile(chmfile): + dochome = chmfile elif sys.platform == 'darwin': # documentation may be stored inside a python framework dochome = os.path.join(sys.base_prefix, @@ -1311,7 +1301,7 @@ def smart_backspace_event(self, event): want = ((have - 1) // self.indentwidth) * self.indentwidth # Debug prompt is multilined.... ncharsdeleted = 0 - while True: + while 1: chars = chars[:-1] ncharsdeleted = ncharsdeleted + 1 have = len(chars.expandtabs(tabwidth)) diff --git a/Lib/idlelib/help.html b/Lib/idlelib/help.html index 722406b81a8ae6..41626ec5abb561 100644 --- a/Lib/idlelib/help.html +++ b/Lib/idlelib/help.html @@ -1,26 +1,24 @@ <!DOCTYPE html> -<html lang="en"> +<html> <head> <meta charset="utf-8" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>IDLE &#8212; Python 3.11.0a4 documentation</title> + <link rel="stylesheet" href="../_static/pydoctheme.css" type="text/css" /> + <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - <title>IDLE &#8212; Python 3.12.0a0 documentation</title><meta name="viewport" content="width=device-width, initial-scale=1.0"> - - <link rel="stylesheet" type="text/css" href="../_static/pygments.css" /> - <link rel="stylesheet" type="text/css" href="../_static/pydoctheme.css?2022.1" /> - - <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script> + <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> <script src="../_static/jquery.js"></script> <script src="../_static/underscore.js"></script> - <script src="../_static/_sphinx_javascript_frameworks_compat.js"></script> <script src="../_static/doctools.js"></script> + <script src="../_static/language_data.js"></script> <script src="../_static/sidebar.js"></script> <link rel="search" type="application/opensearchdescription+xml" - title="Search within Python 3.12.0a0 documentation" + title="Search within Python 3.11.0a4 documentation" href="../_static/opensearch.xml"/> <link rel="author" title="About these documents" href="../about.html" /> <link rel="index" title="Index" href="../genindex.html" /> @@ -41,111 +39,15 @@ } } </style> -<link rel="shortcut icon" type="image/png" href="../_static/py.svg" /> - <script type="text/javascript" src="../_static/copybutton.js"></script> - <script type="text/javascript" src="../_static/menu.js"></script> - </head> -<body> -<div class="mobile-nav"> - <input type="checkbox" id="menuToggler" class="toggler__input" aria-controls="navigation" - aria-pressed="false" aria-expanded="false" role="button" aria-label="Menu" /> - <label for="menuToggler" class="toggler__label"> - <span></span> - </label> - <nav class="nav-content" role="navigation"> - <a href="https://www.python.org/" class="nav-logo"> - <img src="../_static/py.svg" alt="Logo"/> - </a> - <div class="version_switcher_placeholder"></div> - <form role="search" class="search" action="../search.html" method="get"> - <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" class="search-icon"> - <path fill-rule="nonzero" - d="M15.5 14h-.79l-.28-.27a6.5 6.5 0 001.48-5.34c-.47-2.78-2.79-5-5.59-5.34a6.505 6.505 0 00-7.27 7.27c.34 2.8 2.56 5.12 5.34 5.59a6.5 6.5 0 005.34-1.48l.27.28v.79l4.25 4.25c.41.41 1.08.41 1.49 0 .41-.41.41-1.08 0-1.49L15.5 14zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z" fill="#444"></path> - </svg> - <input type="text" name="q" aria-label="Quick search"/> - <input type="submit" value="Go"/> - </form> - </nav> - <div class="menu-wrapper"> - <nav class="menu" role="navigation" aria-label="main navigation"> - <div class="language_switcher_placeholder"></div> - <div> - <h3><a href="../contents.html">Table of Contents</a></h3> - <ul> -<li><a class="reference internal" href="#">IDLE</a><ul> -<li><a class="reference internal" href="#menus">Menus</a><ul> -<li><a class="reference internal" href="#file-menu-shell-and-editor">File menu (Shell and Editor)</a></li> -<li><a class="reference internal" href="#edit-menu-shell-and-editor">Edit menu (Shell and Editor)</a></li> -<li><a class="reference internal" href="#format-menu-editor-window-only">Format menu (Editor window only)</a></li> -<li><a class="reference internal" href="#run-menu-editor-window-only">Run menu (Editor window only)</a></li> -<li><a class="reference internal" href="#shell-menu-shell-window-only">Shell menu (Shell window only)</a></li> -<li><a class="reference internal" href="#debug-menu-shell-window-only">Debug menu (Shell window only)</a></li> -<li><a class="reference internal" href="#options-menu-shell-and-editor">Options menu (Shell and Editor)</a></li> -<li><a class="reference internal" href="#window-menu-shell-and-editor">Window menu (Shell and Editor)</a></li> -<li><a class="reference internal" href="#help-menu-shell-and-editor">Help menu (Shell and Editor)</a></li> -<li><a class="reference internal" href="#context-menus">Context menus</a></li> -</ul> -</li> -<li><a class="reference internal" href="#editing-and-navigation">Editing and Navigation</a><ul> -<li><a class="reference internal" href="#editor-windows">Editor windows</a></li> -<li><a class="reference internal" href="#key-bindings">Key bindings</a></li> -<li><a class="reference internal" href="#automatic-indentation">Automatic indentation</a></li> -<li><a class="reference internal" href="#search-and-replace">Search and Replace</a></li> -<li><a class="reference internal" href="#completions">Completions</a></li> -<li><a class="reference internal" href="#calltips">Calltips</a></li> -<li><a class="reference internal" href="#code-context">Code Context</a></li> -<li><a class="reference internal" href="#shell-window">Shell window</a></li> -<li><a class="reference internal" href="#text-colors">Text colors</a></li> -</ul> -</li> -<li><a class="reference internal" href="#startup-and-code-execution">Startup and Code Execution</a><ul> -<li><a class="reference internal" href="#command-line-usage">Command line usage</a></li> -<li><a class="reference internal" href="#startup-failure">Startup failure</a></li> -<li><a class="reference internal" href="#running-user-code">Running user code</a></li> -<li><a class="reference internal" href="#user-output-in-shell">User output in Shell</a></li> -<li><a class="reference internal" href="#developing-tkinter-applications">Developing tkinter applications</a></li> -<li><a class="reference internal" href="#running-without-a-subprocess">Running without a subprocess</a></li> -</ul> -</li> -<li><a class="reference internal" href="#help-and-preferences">Help and Preferences</a><ul> -<li><a class="reference internal" href="#help-sources">Help sources</a></li> -<li><a class="reference internal" href="#setting-preferences">Setting preferences</a></li> -<li><a class="reference internal" href="#idle-on-macos">IDLE on macOS</a></li> -<li><a class="reference internal" href="#extensions">Extensions</a></li> -</ul> -</li> -<li><a class="reference internal" href="#module-idlelib">idlelib</a></li> -</ul> -</li> -</ul> + <link rel="shortcut icon" type="image/png" href="../_static/py.png" /> + + <script type="text/javascript" src="../_static/copybutton.js"></script> + + - </div> - <div> - <h4>Previous topic</h4> - <p class="topless"><a href="tkinter.tix.html" - title="previous chapter"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter.tix</span></code> — Extension widgets for Tk</a></p> - </div> - <div> - <h4>Next topic</h4> - <p class="topless"><a href="development.html" - title="next chapter">Development Tools</a></p> - </div> - <div role="note" aria-label="source link"> - <h3>This Page</h3> - <ul class="this-page-menu"> - <li><a href="../bugs.html">Report a Bug</a></li> - <li> - <a href="https://github.com/python/cpython/blob/main/Doc/library/idle.rst" - rel="nofollow">Show Source - </a> - </li> - </ul> - </div> - </nav> - </div> -</div> + </head><body> <div class="related" role="navigation" aria-label="related navigation"> <h3>Navigation</h3> @@ -163,35 +65,32 @@ <h3>Navigation</h3> <a href="tkinter.tix.html" title="tkinter.tix — Extension widgets for Tk" accesskey="P">previous</a> |</li> - <li><img src="../_static/py.svg" alt="python logo" style="vertical-align: middle; margin-top: -1px"/></li> - <li><a href="https://www.python.org/">Python</a> &#187;</li> - <li class="switchers"> - <div class="language_switcher_placeholder"></div> - <div class="version_switcher_placeholder"></div> - </li> - <li> + <li><img src="../_static/py.png" alt="" + style="vertical-align: middle; margin-top: -1px"/></li> + <li><a href="https://www.python.org/">Python</a> &#187;</li> + - </li> <li id="cpython-language-and-version"> - <a href="../index.html">3.12.0a0 Documentation</a> &#187; + <a href="../index.html">3.11.0a4 Documentation</a> &#187; </li> <li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> &#187;</li> <li class="nav-item nav-item-2"><a href="tk.html" accesskey="U">Graphical User Interfaces with Tk</a> &#187;</li> <li class="nav-item nav-item-this"><a href="">IDLE</a></li> - <li class="right"> + <li class="right"> - <div class="inline-search" role="search"> + <div class="inline-search" style="display: none" role="search"> <form class="inline-search" action="../search.html" method="get"> - <input placeholder="Quick search" aria-label="Quick search" type="text" name="q" /> + <input placeholder="Quick search" type="text" name="q" /> <input type="submit" value="Go" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </div> - | - </li> + <script type="text/javascript">$('.inline-search').show(0);</script> + | + </li> </ul> </div> @@ -201,8 +100,8 @@ <h3>Navigation</h3> <div class="bodywrapper"> <div class="body" role="main"> - <section id="idle"> -<span id="id1"></span><h1>IDLE<a class="headerlink" href="#idle" title="Permalink to this heading">¶</a></h1> + <div class="section" id="idle"> +<span id="id1"></span><h1>IDLE<a class="headerlink" href="#idle" title="Permalink to this headline">¶</a></h1> <p><strong>Source code:</strong> <a class="reference external" href="https://github.com/python/cpython/tree/main/Lib/idlelib/">Lib/idlelib/</a></p> <hr class="docutils" id="index-0" /> <p>IDLE is Python’s Integrated Development and Learning Environment.</p> @@ -220,8 +119,8 @@ <h3>Navigation</h3> of global and local namespaces</p></li> <li><p>configuration, browsers, and other dialogs</p></li> </ul> -<section id="menus"> -<h2>Menus<a class="headerlink" href="#menus" title="Permalink to this heading">¶</a></h2> +<div class="section" id="menus"> +<h2>Menus<a class="headerlink" href="#menus" title="Permalink to this headline">¶</a></h2> <p>IDLE has two main window types, the Shell window and the Editor window. It is possible to have multiple editor windows simultaneously. On Windows and Linux, each has its own top menu. Each menu documented below indicates @@ -232,20 +131,20 @@ <h2>Menus<a class="headerlink" href="#menus" title="Permalink to this heading"> <p>On macOS, there is one application menu. It dynamically changes according to the window currently selected. It has an IDLE menu, and some entries described below are moved around to conform to Apple guidelines.</p> -<section id="file-menu-shell-and-editor"> -<h3>File menu (Shell and Editor)<a class="headerlink" href="#file-menu-shell-and-editor" title="Permalink to this heading">¶</a></h3> +<div class="section" id="file-menu-shell-and-editor"> +<h3>File menu (Shell and Editor)<a class="headerlink" href="#file-menu-shell-and-editor" title="Permalink to this headline">¶</a></h3> <dl class="simple"> <dt>New File</dt><dd><p>Create a new file editing window.</p> </dd> <dt>Open…</dt><dd><p>Open an existing file with an Open dialog.</p> </dd> -<dt>Open Module…</dt><dd><p>Open an existing module (searches sys.path).</p> -</dd> <dt>Recent Files</dt><dd><p>Open a list of recent files. Click one to open it.</p> </dd> +<dt>Open Module…</dt><dd><p>Open an existing module (searches sys.path).</p> +</dd> </dl> <dl class="simple" id="index-1"> -<dt>Module Browser</dt><dd><p>Show functions, classes, and methods in the current Editor file in a +<dt>Class Browser</dt><dd><p>Show functions, classes, and methods in the current Editor file in a tree structure. In the shell, open a module first.</p> </dd> <dt>Path Browser</dt><dd><p>Show sys.path directories, modules, functions, classes and methods in a @@ -257,13 +156,10 @@ <h3>File menu (Shell and Editor)<a class="headerlink" href="#file-menu-shell-and do Save As instead.</p> </dd> <dt>Save As…</dt><dd><p>Save the current window with a Save As dialog. The file saved becomes the -new associated file for the window. (If your file namager is set to hide -extensions, the current extension will be omitted in the file name box. -If the new filename has no ‘.’, ‘.py’ and ‘.txt’ will be added for Python -and text files, except that on macOS Aqua,’.py’ is added for all files.)</p> +new associated file for the window.</p> </dd> <dt>Save Copy As…</dt><dd><p>Save the current window to different file without changing the associated -file. (See Save As note above about filename extensions.)</p> +file.</p> </dd> <dt>Print Window</dt><dd><p>Print the current window to the default printer.</p> </dd> @@ -274,17 +170,15 @@ <h3>File menu (Shell and Editor)<a class="headerlink" href="#file-menu-shell-and <dt>Exit IDLE</dt><dd><p>Close all windows and quit IDLE (ask to save unsaved edit windows).</p> </dd> </dl> -</section> -<section id="edit-menu-shell-and-editor"> -<h3>Edit menu (Shell and Editor)<a class="headerlink" href="#edit-menu-shell-and-editor" title="Permalink to this heading">¶</a></h3> +</div> +<div class="section" id="edit-menu-shell-and-editor"> +<h3>Edit menu (Shell and Editor)<a class="headerlink" href="#edit-menu-shell-and-editor" title="Permalink to this headline">¶</a></h3> <dl class="simple"> <dt>Undo</dt><dd><p>Undo the last change to the current window. A maximum of 1000 changes may be undone.</p> </dd> <dt>Redo</dt><dd><p>Redo the last undone change to the current window.</p> </dd> -<dt>Select All</dt><dd><p>Select the entire contents of the current window.</p> -</dd> <dt>Cut</dt><dd><p>Copy selection into the system-wide clipboard; then delete the selection.</p> </dd> <dt>Copy</dt><dd><p>Copy selection into the system-wide clipboard.</p> @@ -294,6 +188,8 @@ <h3>Edit menu (Shell and Editor)<a class="headerlink" href="#edit-menu-shell-and </dl> <p>The clipboard functions are also available in context menus.</p> <dl class="simple"> +<dt>Select All</dt><dd><p>Select the entire contents of the current window.</p> +</dd> <dt>Find…</dt><dd><p>Open a search dialog with many options</p> </dd> <dt>Find Again</dt><dd><p>Repeat the last search, if there is one.</p> @@ -314,21 +210,17 @@ <h3>Edit menu (Shell and Editor)<a class="headerlink" href="#edit-menu-shell-and <dt>Expand Word</dt><dd><p>Expand a prefix you have typed to match a full word in the same window; repeat to get a different expansion.</p> </dd> -<dt>Show Call Tip</dt><dd><p>After an unclosed parenthesis for a function, open a small window with +<dt>Show call tip</dt><dd><p>After an unclosed parenthesis for a function, open a small window with function parameter hints. See <a class="reference internal" href="#calltips"><span class="std std-ref">Calltips</span></a> in the Editing and navigation section below.</p> </dd> -<dt>Show Surrounding Parens</dt><dd><p>Highlight the surrounding parenthesis.</p> +<dt>Show surrounding parens</dt><dd><p>Highlight the surrounding parenthesis.</p> </dd> </dl> -</section> -<section id="format-menu-editor-window-only"> -<span id="format-menu"></span><h3>Format menu (Editor window only)<a class="headerlink" href="#format-menu-editor-window-only" title="Permalink to this heading">¶</a></h3> +</div> +<div class="section" id="format-menu-editor-window-only"> +<span id="format-menu"></span><h3>Format menu (Editor window only)<a class="headerlink" href="#format-menu-editor-window-only" title="Permalink to this headline">¶</a></h3> <dl class="simple"> -<dt>Format Paragraph</dt><dd><p>Reformat the current blank-line-delimited paragraph in comment block or -multiline string or selected line in a string. All lines in the -paragraph will be formatted to less than N columns, where N defaults to 72.</p> -</dd> <dt>Indent Region</dt><dd><p>Shift selected lines right by the indent width (default 4 spaces).</p> </dd> <dt>Dedent Region</dt><dd><p>Shift selected lines left by the indent width (default 4 spaces).</p> @@ -347,15 +239,19 @@ <h3>Edit menu (Shell and Editor)<a class="headerlink" href="#edit-menu-shell-and <dt>New Indent Width</dt><dd><p>Open a dialog to change indent width. The accepted default by the Python community is 4 spaces.</p> </dd> -<dt>Strip Trailing Chitespace</dt><dd><p>Remove trailing space and other whitespace characters after the last +<dt>Format Paragraph</dt><dd><p>Reformat the current blank-line-delimited paragraph in comment block or +multiline string or selected line in a string. All lines in the +paragraph will be formatted to less than N columns, where N defaults to 72.</p> +</dd> +<dt>Strip trailing whitespace</dt><dd><p>Remove trailing space and other whitespace characters after the last non-whitespace character of a line by applying str.rstrip to each line, including lines within multiline strings. Except for Shell windows, remove extra newlines at the end of the file.</p> </dd> </dl> -</section> -<section id="run-menu-editor-window-only"> -<span id="index-2"></span><h3>Run menu (Editor window only)<a class="headerlink" href="#run-menu-editor-window-only" title="Permalink to this heading">¶</a></h3> +</div> +<div class="section" id="run-menu-editor-window-only"> +<span id="index-2"></span><h3>Run menu (Editor window only)<a class="headerlink" href="#run-menu-editor-window-only" title="Permalink to this headline">¶</a></h3> <dl class="simple" id="run-module"> <dt>Run Module</dt><dd><p>Do <a class="reference internal" href="#check-module"><span class="std std-ref">Check Module</span></a>. If no error, restart the shell to clean the environment, then execute the module. Output is displayed in the Shell @@ -384,9 +280,9 @@ <h3>Edit menu (Shell and Editor)<a class="headerlink" href="#edit-menu-shell-and <dt>Python Shell</dt><dd><p>Open or wake up the Python Shell window.</p> </dd> </dl> -</section> -<section id="shell-menu-shell-window-only"> -<h3>Shell menu (Shell window only)<a class="headerlink" href="#shell-menu-shell-window-only" title="Permalink to this heading">¶</a></h3> +</div> +<div class="section" id="shell-menu-shell-window-only"> +<h3>Shell menu (Shell window only)<a class="headerlink" href="#shell-menu-shell-window-only" title="Permalink to this headline">¶</a></h3> <dl class="simple"> <dt>View Last Restart</dt><dd><p>Scroll the shell window to the last Shell restart.</p> </dd> @@ -399,9 +295,9 @@ <h3>Shell menu (Shell window only)<a class="headerlink" href="#shell-menu-shell- <dt>Interrupt Execution</dt><dd><p>Stop a running program.</p> </dd> </dl> -</section> -<section id="debug-menu-shell-window-only"> -<h3>Debug menu (Shell window only)<a class="headerlink" href="#debug-menu-shell-window-only" title="Permalink to this heading">¶</a></h3> +</div> +<div class="section" id="debug-menu-shell-window-only"> +<h3>Debug menu (Shell window only)<a class="headerlink" href="#debug-menu-shell-window-only" title="Permalink to this headline">¶</a></h3> <dl class="simple"> <dt>Go to File/Line</dt><dd><p>Look on the current line. with the cursor, and the line above for a filename and line number. If found, open the file if not already open, and show the @@ -421,9 +317,9 @@ <h3>Debug menu (Shell window only)<a class="headerlink" href="#debug-menu-shell- <dt>Auto-open Stack Viewer</dt><dd><p>Toggle automatically opening the stack viewer on an unhandled exception.</p> </dd> </dl> -</section> -<section id="options-menu-shell-and-editor"> -<h3>Options menu (Shell and Editor)<a class="headerlink" href="#options-menu-shell-and-editor" title="Permalink to this heading">¶</a></h3> +</div> +<div class="section" id="options-menu-shell-and-editor"> +<h3>Options menu (Shell and Editor)<a class="headerlink" href="#options-menu-shell-and-editor" title="Permalink to this headline">¶</a></h3> <dl class="simple"> <dt>Configure IDLE</dt><dd><p>Open a configuration dialog and change preferences for the following: fonts, indentation, keybindings, text color themes, startup windows and @@ -453,14 +349,14 @@ <h3>Options menu (Shell and Editor)<a class="headerlink" href="#options-menu-she no effect when a window is maximized.</p> </dd> </dl> -</section> -<section id="window-menu-shell-and-editor"> -<h3>Window menu (Shell and Editor)<a class="headerlink" href="#window-menu-shell-and-editor" title="Permalink to this heading">¶</a></h3> +</div> +<div class="section" id="window-menu-shell-and-editor"> +<h3>Window menu (Shell and Editor)<a class="headerlink" href="#window-menu-shell-and-editor" title="Permalink to this headline">¶</a></h3> <p>Lists the names of all open windows; select one to bring it to the foreground (deiconifying it if necessary).</p> -</section> -<section id="help-menu-shell-and-editor"> -<h3>Help menu (Shell and Editor)<a class="headerlink" href="#help-menu-shell-and-editor" title="Permalink to this heading">¶</a></h3> +</div> +<div class="section" id="help-menu-shell-and-editor"> +<h3>Help menu (Shell and Editor)<a class="headerlink" href="#help-menu-shell-and-editor" title="Permalink to this headline">¶</a></h3> <dl class="simple"> <dt>About IDLE</dt><dd><p>Display version, copyright, license, credits, and more.</p> </dd> @@ -476,9 +372,9 @@ <h3>Help menu (Shell and Editor)<a class="headerlink" href="#help-menu-shell-and <p>Additional help sources may be added here with the Configure IDLE dialog under the General tab. See the <a class="reference internal" href="#help-sources"><span class="std std-ref">Help sources</span></a> subsection below for more on Help menu choices.</p> -</section> -<section id="context-menus"> -<span id="index-4"></span><h3>Context menus<a class="headerlink" href="#context-menus" title="Permalink to this heading">¶</a></h3> +</div> +<div class="section" id="context-menus"> +<span id="index-4"></span><h3>Context Menus<a class="headerlink" href="#context-menus" title="Permalink to this headline">¶</a></h3> <p>Open a context menu by right-clicking in a window (Control-click on macOS). Context menus have the standard clipboard functions also on the Edit menu.</p> <dl class="simple"> @@ -511,12 +407,12 @@ <h3>Help menu (Shell and Editor)<a class="headerlink" href="#help-menu-shell-and the code above and the prompt below down to a ‘Squeezed text’ label.</p> </dd> </dl> -</section> -</section> -<section id="editing-and-navigation"> -<span id="id2"></span><h2>Editing and Navigation<a class="headerlink" href="#editing-and-navigation" title="Permalink to this heading">¶</a></h2> -<section id="editor-windows"> -<h3>Editor windows<a class="headerlink" href="#editor-windows" title="Permalink to this heading">¶</a></h3> +</div> +</div> +<div class="section" id="editing-and-navigation"> +<span id="id2"></span><h2>Editing and navigation<a class="headerlink" href="#editing-and-navigation" title="Permalink to this headline">¶</a></h2> +<div class="section" id="editor-windows"> +<h3>Editor windows<a class="headerlink" href="#editor-windows" title="Permalink to this headline">¶</a></h3> <p>IDLE may open editor windows when it starts, depending on settings and how you start IDLE. Thereafter, use the File menu. There can be only one open editor window for a given file.</p> @@ -526,41 +422,41 @@ <h3>Editor windows<a class="headerlink" href="#editor-windows" title="Permalink column numbers with 0.</p> <p>IDLE assumes that files with a known .py* extension contain Python code and that other files do not. Run Python code with the Run menu.</p> -</section> -<section id="key-bindings"> -<h3>Key bindings<a class="headerlink" href="#key-bindings" title="Permalink to this heading">¶</a></h3> +</div> +<div class="section" id="key-bindings"> +<h3>Key bindings<a class="headerlink" href="#key-bindings" title="Permalink to this headline">¶</a></h3> <p>In this section, ‘C’ refers to the <kbd class="kbd docutils literal notranslate">Control</kbd> key on Windows and Unix and the <kbd class="kbd docutils literal notranslate">Command</kbd> key on macOS.</p> <ul> <li><p><kbd class="kbd docutils literal notranslate">Backspace</kbd> deletes to the left; <kbd class="kbd docutils literal notranslate">Del</kbd> deletes to the right</p></li> -<li><p><kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">Backspace</kbd></kbd> delete word left; <kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">Del</kbd></kbd> delete word to the right</p></li> -<li><p>Arrow keys and <kbd class="kbd docutils literal notranslate">Page Up</kbd>/<kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">Page</kbd> <kbd class="kbd docutils literal notranslate">Down</kbd></kbd> to move around</p></li> -<li><p><kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">LeftArrow</kbd></kbd> and <kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">RightArrow</kbd></kbd> moves by words</p></li> +<li><p><kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">Backspace</kbd></kbd> delete word left; <kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">Del</kbd></kbd> delete word to the right</p></li> +<li><p>Arrow keys and <kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">Page</kbd> <kbd class="kbd docutils literal notranslate">Up</kbd></kbd>/<kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">Page</kbd> <kbd class="kbd docutils literal notranslate">Down</kbd></kbd> to move around</p></li> +<li><p><kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">LeftArrow</kbd></kbd> and <kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">RightArrow</kbd></kbd> moves by words</p></li> <li><p><kbd class="kbd docutils literal notranslate">Home</kbd>/<kbd class="kbd docutils literal notranslate">End</kbd> go to begin/end of line</p></li> -<li><p><kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">Home</kbd></kbd>/<kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">End</kbd></kbd> go to begin/end of file</p></li> +<li><p><kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">Home</kbd></kbd>/<kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">End</kbd></kbd> go to begin/end of file</p></li> <li><p>Some useful Emacs bindings are inherited from Tcl/Tk:</p> <blockquote> <div><ul class="simple"> -<li><p><kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">a</kbd></kbd> beginning of line</p></li> -<li><p><kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">e</kbd></kbd> end of line</p></li> -<li><p><kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">k</kbd></kbd> kill line (but doesn’t put it in clipboard)</p></li> -<li><p><kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">l</kbd></kbd> center window around the insertion point</p></li> -<li><p><kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">b</kbd></kbd> go backward one character without deleting (usually you can +<li><p><kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">a</kbd></kbd> beginning of line</p></li> +<li><p><kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">e</kbd></kbd> end of line</p></li> +<li><p><kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">k</kbd></kbd> kill line (but doesn’t put it in clipboard)</p></li> +<li><p><kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">l</kbd></kbd> center window around the insertion point</p></li> +<li><p><kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">b</kbd></kbd> go backward one character without deleting (usually you can also use the cursor key for this)</p></li> -<li><p><kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">f</kbd></kbd> go forward one character without deleting (usually you can +<li><p><kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">f</kbd></kbd> go forward one character without deleting (usually you can also use the cursor key for this)</p></li> -<li><p><kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">p</kbd></kbd> go up one line (usually you can also use the cursor key for +<li><p><kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">p</kbd></kbd> go up one line (usually you can also use the cursor key for this)</p></li> -<li><p><kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">d</kbd></kbd> delete next character</p></li> +<li><p><kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">d</kbd></kbd> delete next character</p></li> </ul> </div></blockquote> </li> </ul> -<p>Standard keybindings (like <kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">c</kbd></kbd> to copy and <kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">v</kbd></kbd> to paste) +<p>Standard keybindings (like <kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">c</kbd></kbd> to copy and <kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">v</kbd></kbd> to paste) may work. Keybindings are selected in the Configure IDLE dialog.</p> -</section> -<section id="automatic-indentation"> -<h3>Automatic indentation<a class="headerlink" href="#automatic-indentation" title="Permalink to this heading">¶</a></h3> +</div> +<div class="section" id="automatic-indentation"> +<h3>Automatic indentation<a class="headerlink" href="#automatic-indentation" title="Permalink to this headline">¶</a></h3> <p>After a block-opening statement, the next line is indented by 4 spaces (in the Python Shell window by one tab). After certain keywords (break, return etc.) the next line is dedented. In leading indentation, <kbd class="kbd docutils literal notranslate">Backspace</kbd> deletes up @@ -569,16 +465,9 @@ <h3>Automatic indentation<a class="headerlink" href="#automatic-indentation" tit are restricted to four spaces due to Tcl/Tk limitations.</p> <p>See also the indent/dedent region commands on the <a class="reference internal" href="#format-menu"><span class="std std-ref">Format menu</span></a>.</p> -</section> -<section id="search-and-replace"> -<h3>Search and Replace<a class="headerlink" href="#search-and-replace" title="Permalink to this heading">¶</a></h3> -<p>Any selection becomes a search target. However, only selections within -a line work because searches are only performed within lines with the -terminal newline removed. If <code class="docutils literal notranslate"><span class="pre">[x]</span> <span class="pre">Regular</span> <span class="pre">expresion</span></code> is checked, the -target is interpreted according to the Python re module.</p> -</section> -<section id="completions"> -<span id="id3"></span><h3>Completions<a class="headerlink" href="#completions" title="Permalink to this heading">¶</a></h3> +</div> +<div class="section" id="completions"> +<span id="id3"></span><h3>Completions<a class="headerlink" href="#completions" title="Permalink to this headline">¶</a></h3> <p>Completions are supplied, when requested and available, for module names, attributes of classes or functions, or filenames. Each request method displays a completion box with existing names. (See tab @@ -600,7 +489,7 @@ <h3>Search and Replace<a class="headerlink" href="#search-and-replace" title="Pe directory name and a separator.</p> <p>Instead of waiting, or after a box is closed, open a completion box immediately with Show Completions on the Edit menu. The default hot -key is <kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">space</kbd></kbd>. If one types a prefix for the desired name +key is <kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">space</kbd></kbd>. If one types a prefix for the desired name before opening the box, the first match or near miss is made visible. The result is the same as if one enters a prefix after the box is displayed. Show Completions after a quote completes @@ -620,9 +509,9 @@ <h3>Search and Replace<a class="headerlink" href="#search-and-replace" title="Pe <p>Completion boxes initially exclude names beginning with ‘_’ or, for modules, not included in ‘__all__’. The hidden names can be accessed by typing ‘_’ after ‘.’, either before or after the box is opened.</p> -</section> -<section id="calltips"> -<span id="id4"></span><h3>Calltips<a class="headerlink" href="#calltips" title="Permalink to this heading">¶</a></h3> +</div> +<div class="section" id="calltips"> +<span id="id4"></span><h3>Calltips<a class="headerlink" href="#calltips" title="Permalink to this headline">¶</a></h3> <p>A calltip is shown automatically when one types <kbd class="kbd docutils literal notranslate">(</kbd> after the name of an <em>accessible</em> function. A function name expression may include dots and subscripts. A calltip remains until it is clicked, the cursor @@ -646,9 +535,9 @@ <h3>Search and Replace<a class="headerlink" href="#search-and-replace" title="Pe <p>In an editor, import statements have no effect until one runs the file. One might want to run a file after writing import statements, after adding function definitions, or after opening an existing file.</p> -</section> -<section id="code-context"> -<span id="id5"></span><h3>Code Context<a class="headerlink" href="#code-context" title="Permalink to this heading">¶</a></h3> +</div> +<div class="section" id="code-context"> +<span id="id5"></span><h3>Code Context<a class="headerlink" href="#code-context" title="Permalink to this headline">¶</a></h3> <p>Within an editor window containing Python code, code context can be toggled in order to show or hide a pane at the top of the window. When shown, this pane freezes the opening lines for block code, such as those beginning with @@ -661,44 +550,33 @@ <h3>Search and Replace<a class="headerlink" href="#search-and-replace" title="Pe line to the top of the editor.</p> <p>The text and background colors for the context pane can be configured under the Highlights tab in the Configure IDLE dialog.</p> -</section> -<section id="shell-window"> -<h3>Shell window<a class="headerlink" href="#shell-window" title="Permalink to this heading">¶</a></h3> -<p>In IDLE’s Shell, enter, edit, and recall complete statements. (Most -consoles and terminals only work with a single physical line at a time).</p> -<p>Submit a single-line statement for execution by hitting <kbd class="kbd docutils literal notranslate">Return</kbd> -with the cursor anywhere on the line. If a line is extended with -Backslash (<kbd class="kbd docutils literal notranslate">\</kbd>), the cursor must be on the last physical line. -Submit a multi-line compound statement by entering a blank line after -the statement.</p> +</div> +<div class="section" id="python-shell-window"> +<h3>Python Shell window<a class="headerlink" href="#python-shell-window" title="Permalink to this headline">¶</a></h3> +<p>With IDLE’s Shell, one enters, edits, and recalls complete statements. +Most consoles and terminals only work with a single physical line at a time.</p> <p>When one pastes code into Shell, it is not compiled and possibly executed -until one hits <kbd class="kbd docutils literal notranslate">Return</kbd>, as specified above. -One may edit pasted code first. -If one pastes more than one statement into Shell, the result will be a +until one hits <kbd class="kbd docutils literal notranslate">Return</kbd>. One may edit pasted code first. +If one pastes more that one statement into Shell, the result will be a <a class="reference internal" href="exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> when multiple statements are compiled as if they were one.</p> -<p>Lines containing <code class="docutils literal notranslate"><span class="pre">RESTART</span></code> mean that the user execution process has been -re-started. This occurs when the user execution process has crashed, -when one requests a restart on the Shell menu, or when one runs code -in an editor window.</p> <p>The editing features described in previous subsections work when entering code interactively. IDLE’s Shell window also responds to the following keys.</p> <ul> -<li><p><kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">c</kbd></kbd> interrupts executing command</p></li> -<li><p><kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">d</kbd></kbd> sends end-of-file; closes window if typed at a <code class="docutils literal notranslate"><span class="pre">&gt;&gt;&gt;</span></code> prompt</p></li> -<li><p><kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">/</kbd></kbd> (Expand word) is also useful to reduce typing</p> +<li><p><kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">c</kbd></kbd> interrupts executing command</p></li> +<li><p><kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">d</kbd></kbd> sends end-of-file; closes window if typed at a <code class="docutils literal notranslate"><span class="pre">&gt;&gt;&gt;</span></code> prompt</p></li> +<li><p><kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">/</kbd></kbd> (Expand word) is also useful to reduce typing</p> <p>Command history</p> <ul class="simple"> -<li><p><kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">p</kbd></kbd> retrieves previous command matching what you have typed. On -macOS use <kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">p</kbd></kbd>.</p></li> -<li><p><kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">n</kbd></kbd> retrieves next. On macOS use <kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">n</kbd></kbd>.</p></li> -<li><p><kbd class="kbd docutils literal notranslate">Return</kbd> while the cursor is on any previous command -retrieves that command</p></li> +<li><p><kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">p</kbd></kbd> retrieves previous command matching what you have typed. On +macOS use <kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">p</kbd></kbd>.</p></li> +<li><p><kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">n</kbd></kbd> retrieves next. On macOS use <kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">n</kbd></kbd>.</p></li> +<li><p><kbd class="kbd docutils literal notranslate">Return</kbd> while on any previous command retrieves that command</p></li> </ul> </li> </ul> -</section> -<section id="text-colors"> -<h3>Text colors<a class="headerlink" href="#text-colors" title="Permalink to this heading">¶</a></h3> +</div> +<div class="section" id="text-colors"> +<h3>Text colors<a class="headerlink" href="#text-colors" title="Permalink to this headline">¶</a></h3> <p>Idle defaults to black on white text, but colors text with special meanings. For the shell, these are shell output, shell error, user output, and user error. For Python code, at the shell prompt or in an editor, these are @@ -714,10 +592,10 @@ <h3>Text colors<a class="headerlink" href="#text-colors" title="Permalink to thi visible. To change the color scheme, use the Configure IDLE dialog Highlighting tab. The marking of debugger breakpoint lines in the editor and text in popups and dialogs is not user-configurable.</p> -</section> -</section> -<section id="startup-and-code-execution"> -<h2>Startup and Code Execution<a class="headerlink" href="#startup-and-code-execution" title="Permalink to this heading">¶</a></h2> +</div> +</div> +<div class="section" id="startup-and-code-execution"> +<h2>Startup and code execution<a class="headerlink" href="#startup-and-code-execution" title="Permalink to this headline">¶</a></h2> <p>Upon startup with the <code class="docutils literal notranslate"><span class="pre">-s</span></code> option, IDLE will execute the file referenced by the environment variables <span class="target" id="index-5"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">IDLESTARTUP</span></code> or <span class="target" id="index-6"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHONSTARTUP"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONSTARTUP</span></code></a>. IDLE first checks for <code class="docutils literal notranslate"><span class="pre">IDLESTARTUP</span></code>; if <code class="docutils literal notranslate"><span class="pre">IDLESTARTUP</span></code> is present the file @@ -730,8 +608,8 @@ <h2>Startup and Code Execution<a class="headerlink" href="#startup-and-code-exec looked for in the user’s home directory. Statements in this file will be executed in the Tk namespace, so this file is not useful for importing functions to be used from IDLE’s Python shell.</p> -<section id="command-line-usage"> -<h3>Command line usage<a class="headerlink" href="#command-line-usage" title="Permalink to this heading">¶</a></h3> +<div class="section" id="command-line-usage"> +<h3>Command line usage<a class="headerlink" href="#command-line-usage" title="Permalink to this headline">¶</a></h3> <div class="highlight-none notranslate"><div class="highlight"><pre><span></span>idle.py [-c command] [-d] [-e] [-h] [-i] [-r file] [-s] [-t title] [-] [arg] ... -c command run command in the shell window @@ -754,9 +632,9 @@ <h3>Command line usage<a class="headerlink" href="#command-line-usage" title="Pe <li><p>Otherwise, arguments are files opened for editing and <code class="docutils literal notranslate"><span class="pre">sys.argv</span></code> reflects the arguments passed to IDLE itself.</p></li> </ul> -</section> -<section id="startup-failure"> -<h3>Startup failure<a class="headerlink" href="#startup-failure" title="Permalink to this heading">¶</a></h3> +</div> +<div class="section" id="startup-failure"> +<h3>Startup failure<a class="headerlink" href="#startup-failure" title="Permalink to this headline">¶</a></h3> <p>IDLE uses a socket to communicate between the IDLE GUI process and the user code execution process. A connection must be established whenever the Shell starts or restarts. (The latter is indicated by a divider line that says @@ -806,9 +684,9 @@ <h3>Startup failure<a class="headerlink" href="#startup-failure" title="Permalin if one starts IDLE to edit a file with such a character or later when entering such a character. If one cannot upgrade tcl/tk, then re-configure IDLE to use a font that works better.</p> -</section> -<section id="running-user-code"> -<h3>Running user code<a class="headerlink" href="#running-user-code" title="Permalink to this heading">¶</a></h3> +</div> +<div class="section" id="running-user-code"> +<h3>Running user code<a class="headerlink" href="#running-user-code" title="Permalink to this headline">¶</a></h3> <p>With rare exceptions, the result of executing Python code with IDLE is intended to be the same as executing the same code by the default method, directly with Python in a text-mode system console or terminal window. @@ -833,9 +711,7 @@ <h3>Running user code<a class="headerlink" href="#running-user-code" title="Perm created in the execution process, whether directly by user code or by modules such as multiprocessing. If such subprocess use <code class="docutils literal notranslate"><span class="pre">input</span></code> from sys.stdin or <code class="docutils literal notranslate"><span class="pre">print</span></code> or <code class="docutils literal notranslate"><span class="pre">write</span></code> to sys.stdout or sys.stderr, -IDLE should be started in a command line window. (On Windows, -use <code class="docutils literal notranslate"><span class="pre">python</span></code> or <code class="docutils literal notranslate"><span class="pre">py</span></code> rather than <code class="docutils literal notranslate"><span class="pre">pythonw</span></code> or <code class="docutils literal notranslate"><span class="pre">pyw</span></code>.) -The secondary subprocess +IDLE should be started in a command line window. The secondary subprocess will then be attached to that window for input and output.</p> <p>If <code class="docutils literal notranslate"><span class="pre">sys</span></code> is reset by user code, such as with <code class="docutils literal notranslate"><span class="pre">importlib.reload(sys)</span></code>, IDLE’s changes are lost and input from the keyboard and output to the screen @@ -850,9 +726,9 @@ <h3>Running user code<a class="headerlink" href="#running-user-code" title="Perm frames.</p> <p>When user code raises SystemExit either directly or by calling sys.exit, IDLE returns to a Shell prompt instead of exiting.</p> -</section> -<section id="user-output-in-shell"> -<h3>User output in Shell<a class="headerlink" href="#user-output-in-shell" title="Permalink to this heading">¶</a></h3> +</div> +<div class="section" id="user-output-in-shell"> +<h3>User output in Shell<a class="headerlink" href="#user-output-in-shell" title="Permalink to this headline">¶</a></h3> <p>When a program outputs text, the result is determined by the corresponding output device. When IDLE executes user code, <code class="docutils literal notranslate"><span class="pre">sys.stdout</span></code> and <code class="docutils literal notranslate"><span class="pre">sys.stderr</span></code> are connected to the display area of IDLE’s Shell. Some of @@ -904,9 +780,9 @@ <h3>User output in Shell<a class="headerlink" href="#user-output-in-shell" title <p>Squeezed output is expanded in place by double-clicking the label. It can also be sent to the clipboard or a separate view window by right-clicking the label.</p> -</section> -<section id="developing-tkinter-applications"> -<h3>Developing tkinter applications<a class="headerlink" href="#developing-tkinter-applications" title="Permalink to this heading">¶</a></h3> +</div> +<div class="section" id="developing-tkinter-applications"> +<h3>Developing tkinter applications<a class="headerlink" href="#developing-tkinter-applications" title="Permalink to this headline">¶</a></h3> <p>IDLE is intentionally different from standard Python in order to facilitate development of tkinter programs. Enter <code class="docutils literal notranslate"><span class="pre">import</span> <span class="pre">tkinter</span> <span class="pre">as</span> <span class="pre">tk;</span> <span class="pre">root</span> <span class="pre">=</span> <span class="pre">tk.Tk()</span></code> in standard Python and nothing appears. Enter the same @@ -924,9 +800,9 @@ <h3>Developing tkinter applications<a class="headerlink" href="#developing-tkint the mainloop call. One then gets a shell prompt immediately and can interact with the live application. One just has to remember to re-enable the mainloop call when running in standard Python.</p> -</section> -<section id="running-without-a-subprocess"> -<h3>Running without a subprocess<a class="headerlink" href="#running-without-a-subprocess" title="Permalink to this heading">¶</a></h3> +</div> +<div class="section" id="running-without-a-subprocess"> +<h3>Running without a subprocess<a class="headerlink" href="#running-without-a-subprocess" title="Permalink to this headline">¶</a></h3> <p>By default, IDLE executes user code in a separate subprocess via a socket, which uses the internal loopback interface. This connection is not externally visible and no data is sent to or received from the internet. @@ -949,12 +825,12 @@ <h3>Running without a subprocess<a class="headerlink" href="#running-without-a-s <div class="deprecated"> <p><span class="versionmodified deprecated">Deprecated since version 3.4.</span></p> </div> -</section> -</section> -<section id="help-and-preferences"> -<h2>Help and Preferences<a class="headerlink" href="#help-and-preferences" title="Permalink to this heading">¶</a></h2> -<section id="help-sources"> -<span id="id6"></span><h3>Help sources<a class="headerlink" href="#help-sources" title="Permalink to this heading">¶</a></h3> +</div> +</div> +<div class="section" id="help-and-preferences"> +<h2>Help and preferences<a class="headerlink" href="#help-and-preferences" title="Permalink to this headline">¶</a></h2> +<div class="section" id="help-sources"> +<span id="id6"></span><h3>Help sources<a class="headerlink" href="#help-sources" title="Permalink to this headline">¶</a></h3> <p>Help menu entry “IDLE Help” displays a formatted html version of the IDLE chapter of the Library Reference. The result, in a read-only tkinter text window, is close to what one sees in a web browser. @@ -969,9 +845,9 @@ <h2>Help and Preferences<a class="headerlink" href="#help-and-preferences" title that will be opened instead.</p> <p>Selected URLs can be added or removed from the help menu at any time using the General tab of the Configure IDLE dialog.</p> -</section> -<section id="setting-preferences"> -<span id="preferences"></span><h3>Setting preferences<a class="headerlink" href="#setting-preferences" title="Permalink to this heading">¶</a></h3> +</div> +<div class="section" id="setting-preferences"> +<span id="preferences"></span><h3>Setting preferences<a class="headerlink" href="#setting-preferences" title="Permalink to this headline">¶</a></h3> <p>The font preferences, highlighting, keys, and general preferences can be changed via Configure IDLE on the Option menu. Non-default user settings are saved in a <code class="docutils literal notranslate"><span class="pre">.idlerc</span></code> directory in the user’s @@ -987,35 +863,23 @@ <h2>Help and Preferences<a class="headerlink" href="#help-and-preferences" title and key set. To use a newer built-in color theme or key set with older IDLEs, save it as a new custom theme or key set and it well be accessible to older IDLEs.</p> -</section> -<section id="idle-on-macos"> -<h3>IDLE on macOS<a class="headerlink" href="#idle-on-macos" title="Permalink to this heading">¶</a></h3> +</div> +<div class="section" id="idle-on-macos"> +<h3>IDLE on macOS<a class="headerlink" href="#idle-on-macos" title="Permalink to this headline">¶</a></h3> <p>Under System Preferences: Dock, one can set “Prefer tabs when opening documents” to “Always”. This setting is not compatible with the tk/tkinter GUI framework used by IDLE, and it breaks a few IDLE features.</p> -</section> -<section id="extensions"> -<h3>Extensions<a class="headerlink" href="#extensions" title="Permalink to this heading">¶</a></h3> +</div> +<div class="section" id="extensions"> +<h3>Extensions<a class="headerlink" href="#extensions" title="Permalink to this headline">¶</a></h3> <p>IDLE contains an extension facility. Preferences for extensions can be changed with the Extensions tab of the preferences dialog. See the beginning of config-extensions.def in the idlelib directory for further information. The only current default extension is zzdummy, an example also used for testing.</p> -</section> -</section> -<section id="module-idlelib"> -<span id="idlelib"></span><h2>idlelib<a class="headerlink" href="#module-idlelib" title="Permalink to this heading">¶</a></h2> -<p><strong>Source code:</strong> <a class="reference external" href="https://github.com/python/cpython/tree/main/Lib/idlelib">Lib/idlelib</a></p> -<hr class="docutils" /> -<p>The Lib/idlelib package implements the IDLE application. See the rest -of this page for how to use IDLE.</p> -<p>The files in idlelib are described in idlelib/README.txt. Access it -either in idlelib or click Help =&gt; About IDLE on the IDLE menu. This -file also maps IDLE menu items to the code that implements the item. -Except for files listed under ‘Startup’, the idlelib code is ‘private’ in -sense that feature changes can be backported (see <span class="target" id="index-7"></span><a class="pep reference external" href="https://peps.python.org/pep-0434/"><strong>PEP 434</strong></a>).</p> -</section> -</section> +</div> +</div> +</div> <div class="clearer"></div> @@ -1024,9 +888,8 @@ <h3>Extensions<a class="headerlink" href="#extensions" title="Permalink to this </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> - <div> - <h3><a href="../contents.html">Table of Contents</a></h3> - <ul> + <h3><a href="../contents.html">Table of Contents</a></h3> + <ul> <li><a class="reference internal" href="#">IDLE</a><ul> <li><a class="reference internal" href="#menus">Menus</a><ul> <li><a class="reference internal" href="#file-menu-shell-and-editor">File menu (Shell and Editor)</a></li> @@ -1038,22 +901,21 @@ <h3><a href="../contents.html">Table of Contents</a></h3> <li><a class="reference internal" href="#options-menu-shell-and-editor">Options menu (Shell and Editor)</a></li> <li><a class="reference internal" href="#window-menu-shell-and-editor">Window menu (Shell and Editor)</a></li> <li><a class="reference internal" href="#help-menu-shell-and-editor">Help menu (Shell and Editor)</a></li> -<li><a class="reference internal" href="#context-menus">Context menus</a></li> +<li><a class="reference internal" href="#context-menus">Context Menus</a></li> </ul> </li> -<li><a class="reference internal" href="#editing-and-navigation">Editing and Navigation</a><ul> +<li><a class="reference internal" href="#editing-and-navigation">Editing and navigation</a><ul> <li><a class="reference internal" href="#editor-windows">Editor windows</a></li> <li><a class="reference internal" href="#key-bindings">Key bindings</a></li> <li><a class="reference internal" href="#automatic-indentation">Automatic indentation</a></li> -<li><a class="reference internal" href="#search-and-replace">Search and Replace</a></li> <li><a class="reference internal" href="#completions">Completions</a></li> <li><a class="reference internal" href="#calltips">Calltips</a></li> <li><a class="reference internal" href="#code-context">Code Context</a></li> -<li><a class="reference internal" href="#shell-window">Shell window</a></li> +<li><a class="reference internal" href="#python-shell-window">Python Shell window</a></li> <li><a class="reference internal" href="#text-colors">Text colors</a></li> </ul> </li> -<li><a class="reference internal" href="#startup-and-code-execution">Startup and Code Execution</a><ul> +<li><a class="reference internal" href="#startup-and-code-execution">Startup and code execution</a><ul> <li><a class="reference internal" href="#command-line-usage">Command line usage</a></li> <li><a class="reference internal" href="#startup-failure">Startup failure</a></li> <li><a class="reference internal" href="#running-user-code">Running user code</a></li> @@ -1062,29 +924,23 @@ <h3><a href="../contents.html">Table of Contents</a></h3> <li><a class="reference internal" href="#running-without-a-subprocess">Running without a subprocess</a></li> </ul> </li> -<li><a class="reference internal" href="#help-and-preferences">Help and Preferences</a><ul> +<li><a class="reference internal" href="#help-and-preferences">Help and preferences</a><ul> <li><a class="reference internal" href="#help-sources">Help sources</a></li> <li><a class="reference internal" href="#setting-preferences">Setting preferences</a></li> <li><a class="reference internal" href="#idle-on-macos">IDLE on macOS</a></li> <li><a class="reference internal" href="#extensions">Extensions</a></li> </ul> </li> -<li><a class="reference internal" href="#module-idlelib">idlelib</a></li> </ul> </li> </ul> - </div> - <div> - <h4>Previous topic</h4> - <p class="topless"><a href="tkinter.tix.html" - title="previous chapter"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter.tix</span></code> — Extension widgets for Tk</a></p> - </div> - <div> - <h4>Next topic</h4> - <p class="topless"><a href="development.html" - title="next chapter">Development Tools</a></p> - </div> + <h4>Previous topic</h4> + <p class="topless"><a href="tkinter.tix.html" + title="previous chapter"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter.tix</span></code> — Extension widgets for Tk</a></p> + <h4>Next topic</h4> + <p class="topless"><a href="development.html" + title="next chapter">Development Tools</a></p> <div role="note" aria-label="source link"> <h3>This Page</h3> <ul class="this-page-menu"> @@ -1097,10 +953,6 @@ <h3>This Page</h3> </ul> </div> </div> -<div id="sidebarbutton" title="Collapse sidebar"> -<span>«</span> -</div> - </div> <div class="clearer"></div> </div> @@ -1120,58 +972,49 @@ <h3>Navigation</h3> <a href="tkinter.tix.html" title="tkinter.tix — Extension widgets for Tk" >previous</a> |</li> - <li><img src="../_static/py.svg" alt="python logo" style="vertical-align: middle; margin-top: -1px"/></li> - <li><a href="https://www.python.org/">Python</a> &#187;</li> - <li class="switchers"> - <div class="language_switcher_placeholder"></div> - <div class="version_switcher_placeholder"></div> - </li> - <li> + <li><img src="../_static/py.png" alt="" + style="vertical-align: middle; margin-top: -1px"/></li> + <li><a href="https://www.python.org/">Python</a> &#187;</li> + - </li> <li id="cpython-language-and-version"> - <a href="../index.html">3.12.0a0 Documentation</a> &#187; + <a href="../index.html">3.11.0a4 Documentation</a> &#187; </li> <li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> &#187;</li> <li class="nav-item nav-item-2"><a href="tk.html" >Graphical User Interfaces with Tk</a> &#187;</li> <li class="nav-item nav-item-this"><a href="">IDLE</a></li> - <li class="right"> + <li class="right"> - <div class="inline-search" role="search"> + <div class="inline-search" style="display: none" role="search"> <form class="inline-search" action="../search.html" method="get"> - <input placeholder="Quick search" aria-label="Quick search" type="text" name="q" /> + <input placeholder="Quick search" type="text" name="q" /> <input type="submit" value="Go" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </div> - | - </li> + <script type="text/javascript">$('.inline-search').show(0);</script> + | + </li> </ul> </div> <div class="footer"> &copy; <a href="../copyright.html">Copyright</a> 2001-2022, Python Software Foundation. <br /> - This page is licensed under the Python Software Foundation License Version 2. - <br /> - Examples, recipes, and other code in the documentation are additionally licensed under the Zero Clause BSD License. - <br /> - See <a href="/license.html">History and License</a> for more information.<br /> - <br /> The Python Software Foundation is a non-profit corporation. <a href="https://www.python.org/psf/donations/">Please donate.</a> <br /> <br /> - Last updated on Sep 03, 2022. + Last updated on Jan 26, 2022. <a href="/bugs.html">Found a bug</a>? <br /> - Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 5.0.2. + Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1. </div> </body> diff --git a/Lib/idlelib/help.py b/Lib/idlelib/help.py index cc027b9cef4f5b..f420d40fb9ea40 100644 --- a/Lib/idlelib/help.py +++ b/Lib/idlelib/help.py @@ -76,9 +76,9 @@ def handle_starttag(self, tag, attrs): if a == 'class': class_ = v s = '' - if tag == 'section' and attrs == [('id', 'idle')]: + if tag == 'div' and class_ == 'section': self.show = True # Start main content. - elif tag == 'div' and class_ == 'clearer': + elif tag == 'div' and class_ == 'sphinxsidebar': self.show = False # End main content. elif tag == 'p' and self.prevtag and not self.prevtag[0]: # Begin a new block for <p> tags after a closed tag. diff --git a/Lib/idlelib/help_about.py b/Lib/idlelib/help_about.py index a0085a40b980ef..9cb3ba78c50ebd 100644 --- a/Lib/idlelib/help_about.py +++ b/Lib/idlelib/help_about.py @@ -91,9 +91,8 @@ def create_widgets(self): email = Label(frame_background, text='email: idle-dev@python.org', justify=LEFT, fg=self.fg, bg=self.bg) email.grid(row=6, column=0, columnspan=2, sticky=W, padx=10, pady=0) - docs_url = ("https://docs.python.org/%d.%d/library/idle.html" % - sys.version_info[:2]) - docs = Label(frame_background, text=docs_url, + docs = Label(frame_background, text="https://docs.python.org/" + f"{version[:version.rindex('.')]}/library/idle.html", justify=LEFT, fg=self.fg, bg=self.bg) docs.grid(row=7, column=0, columnspan=2, sticky=W, padx=10, pady=0) docs.bind("<Button-1>", lambda event: webbrowser.open(docs['text'])) diff --git a/Lib/idlelib/history.py b/Lib/idlelib/history.py index 5a9b32aaf6bb81..100f505256a940 100644 --- a/Lib/idlelib/history.py +++ b/Lib/idlelib/history.py @@ -65,7 +65,7 @@ def fetch(self, reverse): self.text.bell() return nprefix = len(prefix) - while True: + while 1: pointer += -1 if reverse else 1 if pointer < 0 or pointer >= nhist: self.text.bell() diff --git a/Lib/idlelib/hyperparser.py b/Lib/idlelib/hyperparser.py index 76144ee8fb30f5..77baca782b3fdc 100644 --- a/Lib/idlelib/hyperparser.py +++ b/Lib/idlelib/hyperparser.py @@ -237,9 +237,9 @@ def get_expression(self): last_identifier_pos = pos postdot_phase = True - while True: + while 1: # Eat whitespaces, comments, and if postdot_phase is False - a dot - while True: + while 1: if pos>brck_limit and rawtext[pos-1] in self._whitespace_chars: # Eat a whitespace pos -= 1 diff --git a/Lib/idlelib/idle_test/test_browser.py b/Lib/idlelib/idle_test/test_browser.py index 343d50a6e37bd6..03a50f22ca1e82 100644 --- a/Lib/idlelib/idle_test/test_browser.py +++ b/Lib/idlelib/idle_test/test_browser.py @@ -5,7 +5,6 @@ import unittest from unittest import mock from idlelib.idle_test.mock_idle import Func -from idlelib.util import py_extensions from collections import deque import os.path @@ -58,15 +57,6 @@ def test_close(self): self.assertTrue(mb.node.destroy.called) del mb.top.destroy, mb.node.destroy - def test_is_browseable_extension(self): - path = "/path/to/file" - for ext in py_extensions: - with self.subTest(ext=ext): - filename = f'{path}{ext}' - actual = browser.is_browseable_extension(filename) - expected = ext not in browser.browseable_extension_blocklist - self.assertEqual(actual, expected) - # Nested tree same as in test_pyclbr.py except for supers on C0. C1. mb = pyclbr diff --git a/Lib/idlelib/idle_test/test_debugger_r.py b/Lib/idlelib/idle_test/test_debugger_r.py index cf8af05fe27e77..638ebd36a7405d 100644 --- a/Lib/idlelib/idle_test/test_debugger_r.py +++ b/Lib/idlelib/idle_test/test_debugger_r.py @@ -2,21 +2,28 @@ from idlelib import debugger_r import unittest +from test.support import requires +from tkinter import Tk + + +class Test(unittest.TestCase): -# Boilerplate likely to be needed for future test classes. -##from test.support import requires -##from tkinter import Tk -##class Test(unittest.TestCase): ## @classmethod ## def setUpClass(cls): ## requires('gui') ## cls.root = Tk() +## ## @classmethod ## def tearDownClass(cls): ## cls.root.destroy() +## del cls.root + + def test_init(self): + self.assertTrue(True) # Get coverage of import + -# GUIProxy, IdbAdapter, FrameProxy, CodeProxy, DictProxy, -# GUIAdapter, IdbProxy, and 7 functions still need tests. +# Classes GUIProxy, IdbAdapter, FrameProxy, CodeProxy, DictProxy, +# GUIAdapter, IdbProxy plus 7 module functions. class IdbAdapterTest(unittest.TestCase): diff --git a/Lib/idlelib/idle_test/test_editor.py b/Lib/idlelib/idle_test/test_editor.py index fdb47abf43fb77..8665d680c0118f 100644 --- a/Lib/idlelib/idle_test/test_editor.py +++ b/Lib/idlelib/idle_test/test_editor.py @@ -5,6 +5,7 @@ from collections import namedtuple from test.support import requires from tkinter import Tk +from idlelib.idle_test.mock_idle import Func Editor = editor.EditorWindow diff --git a/Lib/idlelib/idle_test/test_iomenu.py b/Lib/idlelib/idle_test/test_iomenu.py index 2fb836dba21672..e338893c09e6a1 100644 --- a/Lib/idlelib/idle_test/test_iomenu.py +++ b/Lib/idlelib/idle_test/test_iomenu.py @@ -1,12 +1,10 @@ "Test , coverage 17%." -from idlelib import iomenu +from idlelib import iomenu, util import unittest from test.support import requires from tkinter import Tk from idlelib.editor import EditorWindow -from idlelib import util -from idlelib.idle_test.mock_idle import Func class IOBindingTest(unittest.TestCase): @@ -38,14 +36,9 @@ def test_fixnewlines_end(self): io = self.io fix = io.fixnewlines text = io.editwin.text - - # Make the editor temporarily look like Shell. self.editwin.interp = None - shelltext = '>>> if 1' - self.editwin.get_prompt_text = Func(result=shelltext) - eq(fix(), shelltext) # Get... call and '\n' not added. - del self.editwin.interp, self.editwin.get_prompt_text - + eq(fix(), '') + del self.editwin.interp text.insert(1.0, 'a') eq(fix(), 'a'+io.eol_convention) eq(text.get('1.0', 'end-1c'), 'a\n') diff --git a/Lib/idlelib/idle_test/test_parenmatch.py b/Lib/idlelib/idle_test/test_parenmatch.py index 2e10d7cd36760f..4a41d8433d5483 100644 --- a/Lib/idlelib/idle_test/test_parenmatch.py +++ b/Lib/idlelib/idle_test/test_parenmatch.py @@ -83,12 +83,12 @@ def test_paren_corner(self): """ Test corner cases in flash_paren_event and paren_closed_event. - Force execution of conditional expressions and alternate paths. + These cases force conditional expression and alternate paths. """ text = self.text pm = self.get_parenmatch() - text.insert('insert', '# Comment.)') + text.insert('insert', '# this is a commen)') pm.paren_closed_event('event') text.insert('insert', '\ndef') diff --git a/Lib/idlelib/idle_test/test_run.py b/Lib/idlelib/idle_test/test_run.py index ec4637c5ca617a..d859ffc153fcdd 100644 --- a/Lib/idlelib/idle_test/test_run.py +++ b/Lib/idlelib/idle_test/test_run.py @@ -3,7 +3,7 @@ from idlelib import run import io import sys -from test.support import captured_output, captured_stderr +from test.support import captured_output, captured_stderr, has_no_debug_ranges import unittest from unittest import mock import idlelib @@ -33,9 +33,14 @@ def __eq__(self, other): run.print_exception() tb = output.getvalue().strip().splitlines() - self.assertEqual(11, len(tb)) - self.assertIn('UnhashableException: ex2', tb[3]) - self.assertIn('UnhashableException: ex1', tb[10]) + if has_no_debug_ranges(): + self.assertEqual(11, len(tb)) + self.assertIn('UnhashableException: ex2', tb[3]) + self.assertIn('UnhashableException: ex1', tb[10]) + else: + self.assertEqual(13, len(tb)) + self.assertIn('UnhashableException: ex2', tb[4]) + self.assertIn('UnhashableException: ex1', tb[12]) data = (('1/0', ZeroDivisionError, "division by zero\n"), ('abc', NameError, "name 'abc' is not defined. " diff --git a/Lib/idlelib/idle_test/test_sidebar.py b/Lib/idlelib/idle_test/test_sidebar.py index 049531e66a414e..01fd6a04d0de30 100644 --- a/Lib/idlelib/idle_test/test_sidebar.py +++ b/Lib/idlelib/idle_test/test_sidebar.py @@ -6,7 +6,6 @@ import unittest import unittest.mock from test.support import requires, swap_attr -from test import support import tkinter as tk from idlelib.idle_test.tkinter_testing_utils import run_in_tk_mainloop @@ -613,8 +612,7 @@ def test_interrupt_recall_undo_redo(self): @run_in_tk_mainloop() def test_very_long_wrapped_line(self): - with support.adjust_int_max_str_digits(11_111), \ - swap_attr(self.shell, 'squeezer', None): + with swap_attr(self.shell, 'squeezer', None): self.do_input('x = ' + '1'*10_000 + '\n') yield self.assertEqual(self.get_sidebar_lines(), ['>>>']) @@ -735,7 +733,7 @@ def test_copy_with_prompts(self): first_line = get_end_linenumber(text) self.do_input(dedent('''\ if True: - print(1) + print(1) ''')) yield @@ -746,10 +744,9 @@ def test_copy_with_prompts(self): selected_lines_text = text.get('sel.first linestart', 'sel.last') selected_lines = selected_lines_text.split('\n') - selected_lines.pop() # Final '' is a split artifact, not a line. - # Expect a block of input and a single output line. + # Expect a block of input, a single output line, and a new prompt expected_prompts = \ - ['>>>'] + ['...'] * (len(selected_lines) - 2) + [None] + ['>>>'] + ['...'] * (len(selected_lines) - 3) + [None, '>>>'] selected_text_with_prompts = '\n'.join( line if prompt is None else prompt + ' ' + line for prompt, line in zip(expected_prompts, diff --git a/Lib/idlelib/iomenu.py b/Lib/idlelib/iomenu.py index af8159c2b33f51..ad3109df84096a 100644 --- a/Lib/idlelib/iomenu.py +++ b/Lib/idlelib/iomenu.py @@ -9,12 +9,18 @@ from tkinter import messagebox from tkinter.simpledialog import askstring +import idlelib from idlelib.config import idleConf from idlelib.util import py_extensions py_extensions = ' '.join("*"+ext for ext in py_extensions) + encoding = 'utf-8' -errors = 'surrogatepass' if sys.platform == 'win32' else 'surrogateescape' +if sys.platform == 'win32': + errors = 'surrogatepass' +else: + errors = 'surrogateescape' + class IOBinding: @@ -251,17 +257,11 @@ def writefile(self, filename): return False def fixnewlines(self): - """Return text with os eols. - - Add prompts if shell else final \n if missing. - """ - - if hasattr(self.editwin, "interp"): # Saving shell. - text = self.editwin.get_prompt_text('1.0', self.text.index('end-1c')) - else: - if self.text.get("end-2c") != '\n': - self.text.insert("end-1c", "\n") # Changes 'end-1c' value. - text = self.text.get('1.0', "end-1c") + "Return text with final \n if needed and os eols." + if (self.text.get("end-2c") != '\n' + and not hasattr(self.editwin, "interp")): # Not shell. + self.text.insert("end-1c", "\n") + text = self.text.get("1.0", "end-1c") if self.eol_convention != "\n": text = text.replace("\n", self.eol_convention) return text diff --git a/Lib/idlelib/mainmenu.py b/Lib/idlelib/mainmenu.py index 91a32cebb513f9..a1b169176cba92 100644 --- a/Lib/idlelib/mainmenu.py +++ b/Lib/idlelib/mainmenu.py @@ -42,17 +42,16 @@ ('_Undo', '<<undo>>'), ('_Redo', '<<redo>>'), None, - ('Select _All', '<<select-all>>'), ('Cu_t', '<<cut>>'), ('_Copy', '<<copy>>'), ('_Paste', '<<paste>>'), + ('Select _All', '<<select-all>>'), None, ('_Find...', '<<find>>'), ('Find A_gain', '<<find-again>>'), ('Find _Selection', '<<find-selection>>'), ('Find in Files...', '<<find-in-files>>'), ('R_eplace...', '<<replace>>'), - None, ('Go to _Line', '<<goto-line>>'), ('S_how Completions', '<<force-open-completions>>'), ('E_xpand Word', '<<expand-word>>'), @@ -111,7 +110,7 @@ ('help', [ ('_About IDLE', '<<about-idle>>'), None, - ('_IDLE Doc', '<<help>>'), + ('_IDLE Help', '<<help>>'), ('Python _Docs', '<<python-docs>>'), ]), ] diff --git a/Lib/idlelib/pyshell.py b/Lib/idlelib/pyshell.py index e68233a5a4131e..2e54a81a1d38dd 100755 --- a/Lib/idlelib/pyshell.py +++ b/Lib/idlelib/pyshell.py @@ -986,23 +986,6 @@ def replace_event(self, event): def get_standard_extension_names(self): return idleConf.GetExtensions(shell_only=True) - def get_prompt_text(self, first, last): - """Return text between first and last with prompts added.""" - text = self.text.get(first, last) - lineno_range = range( - int(float(first)), - int(float(last)) - ) - prompts = [ - self.shell_sidebar.line_prompts.get(lineno) - for lineno in lineno_range - ] - return "\n".join( - line if prompt is None else f"{prompt} {line}" - for prompt, line in zip(prompts, text.splitlines()) - ) + "\n" - - def copy_with_prompts_callback(self, event=None): """Copy selected lines to the clipboard, with prompts. @@ -1013,15 +996,31 @@ def copy_with_prompts_callback(self, event=None): and/or last lines is selected. """ text = self.text - selfirst = text.index('sel.first linestart') - if selfirst is None: # Should not be possible. - return # No selection, do nothing. - sellast = text.index('sel.last') - if sellast[-1] != '0': - sellast = text.index("sel.last+1line linestart") + + selection_indexes = ( + self.text.index("sel.first linestart"), + self.text.index("sel.last +1line linestart"), + ) + if selection_indexes[0] is None: + # There is no selection, so do nothing. + return + + selected_text = self.text.get(*selection_indexes) + selection_lineno_range = range( + int(float(selection_indexes[0])), + int(float(selection_indexes[1])) + ) + prompts = [ + self.shell_sidebar.line_prompts.get(lineno) + for lineno in selection_lineno_range + ] + selected_text_with_prompts = "\n".join( + line if prompt is None else f"{prompt} {line}" + for prompt, line in zip(prompts, selected_text.splitlines()) + ) + "\n" + text.clipboard_clear() - prompt_text = self.get_prompt_text(selfirst, sellast) - text.clipboard_append(prompt_text) + text.clipboard_append(selected_text_with_prompts) reading = False executing = False diff --git a/Lib/idlelib/rpc.py b/Lib/idlelib/rpc.py index 62eec84c9c8d09..8efcf048fa3aa2 100644 --- a/Lib/idlelib/rpc.py +++ b/Lib/idlelib/rpc.py @@ -307,7 +307,7 @@ def _getresponse(self, myseq, wait): self.debug("_getresponse:myseq:", myseq) if threading.current_thread() is self.sockthread: # this thread does all reading of requests or responses - while True: + while 1: response = self.pollresponse(myseq, wait) if response is not None: return response @@ -417,7 +417,7 @@ def pollresponse(self, myseq, wait): self.responses and notify the owning thread. """ - while True: + while 1: # send queued response if there is one available try: qmsg = response_queue.get(0) diff --git a/Lib/idlelib/run.py b/Lib/idlelib/run.py index 577c49eb67b20d..aaa9b5ce8d181f 100644 --- a/Lib/idlelib/run.py +++ b/Lib/idlelib/run.py @@ -145,7 +145,7 @@ def main(del_exitfunc=False): args=((LOCALHOST, port),)) sockthread.daemon = True sockthread.start() - while True: + while 1: try: if exit_now: try: diff --git a/Lib/idlelib/searchengine.py b/Lib/idlelib/searchengine.py index 0684142f43644a..eddef581ab40a7 100644 --- a/Lib/idlelib/searchengine.py +++ b/Lib/idlelib/searchengine.py @@ -165,7 +165,7 @@ def search_backward(self, text, prog, line, col, wrap, ok=0): wrapped = 0 startline = line chars = text.get("%d.0" % line, "%d.0" % (line+1)) - while True: + while 1: m = search_reverse(prog, chars[:-1], col) if m: if ok or m.start() < col: diff --git a/Lib/idlelib/util.py b/Lib/idlelib/util.py index ede670a4db5536..5480219786bca6 100644 --- a/Lib/idlelib/util.py +++ b/Lib/idlelib/util.py @@ -12,6 +12,7 @@ * std streams (pyshell, run), * warning stuff (pyshell, run). """ +from os import path # .pyw is for Windows; .pyi is for stub files. py_extensions = ('.py', '.pyw', '.pyi') # Order needed for open/save dialogs. diff --git a/Lib/importlib/_abc.py b/Lib/importlib/_abc.py index 08320563896521..f80348fc7ffd1d 100644 --- a/Lib/importlib/_abc.py +++ b/Lib/importlib/_abc.py @@ -38,3 +38,17 @@ def load_module(self, fullname): raise ImportError # Warning implemented in _load_module_shim(). return _bootstrap._load_module_shim(self, fullname) + + def module_repr(self, module): + """Return a module's repr. + + Used by the module type when the method does not raise + NotImplementedError. + + This method is deprecated. + + """ + warnings.warn("importlib.abc.Loader.module_repr() is deprecated and " + "slated for removal in Python 3.12", DeprecationWarning) + # The exception will cause ModuleType.__repr__ to ignore this method. + raise NotImplementedError diff --git a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py index 67989c500f21c0..afb95f4e1df869 100644 --- a/Lib/importlib/_bootstrap.py +++ b/Lib/importlib/_bootstrap.py @@ -296,6 +296,11 @@ def _module_repr(module): loader = getattr(module, '__loader__', None) if spec := getattr(module, "__spec__", None): return _module_repr_from_spec(spec) + elif hasattr(loader, 'module_repr'): + try: + return loader.module_repr(module) + except Exception: + pass # Fall through to a catch-all which always succeeds. try: name = module.__name__ @@ -577,6 +582,7 @@ def module_from_spec(spec): def _module_repr_from_spec(spec): """Return the repr to use for the module.""" + # We mostly replicate _module_repr() using the spec attributes. name = '?' if spec.name is None else spec.name if spec.origin is None: if spec.loader is None: diff --git a/Lib/importlib/_bootstrap_external.py b/Lib/importlib/_bootstrap_external.py index b3c31b9659d849..eac371fdefc782 100644 --- a/Lib/importlib/_bootstrap_external.py +++ b/Lib/importlib/_bootstrap_external.py @@ -403,19 +403,13 @@ def _write_atomic(path, data, mode=0o666): # Python 3.11a7 3492 (make POP_JUMP_IF_NONE/NOT_NONE/TRUE/FALSE relative) # Python 3.11a7 3493 (Make JUMP_IF_TRUE_OR_POP/JUMP_IF_FALSE_OR_POP relative) # Python 3.11a7 3494 (New location info table) + # Python 3.12a1 3500 (Remove PRECALL opcode) # Python 3.12a1 3501 (YIELD_VALUE oparg == stack_depth) -# Python 3.12a1 3502 (LOAD_FAST_CHECK, no NULL-check in LOAD_FAST) -# Python 3.12a1 3503 (Shrink LOAD_METHOD cache) -# Python 3.12a1 3504 (Merge LOAD_METHOD back into LOAD_ATTR) -# Python 3.12a1 3505 (Specialization/Cache for FOR_ITER) -# Python 3.12a1 3506 (Add BINARY_SLICE and STORE_SLICE instructions) -# Python 3.12a1 3507 (Set lineno of module's RESUME to 0) -# Python 3.12a1 3508 (Add CLEANUP_THROW) -# Python 3.12a1 3509 (Conditional jumps only jump forward) # Python 3.13 will start with 3550 +# # MAGIC must change whenever the bytecode emitted by the compiler may no # longer be understood by older implementations of the eval loop (usually # due to the addition of new opcodes). @@ -425,7 +419,7 @@ def _write_atomic(path, data, mode=0o666): # Whenever MAGIC_NUMBER is changed, the ranges in the magic_values array # in PC/launcher.c must also be updated. -MAGIC_NUMBER = (3509).to_bytes(2, 'little') + b'\r\n' +MAGIC_NUMBER = (3501).to_bytes(2, 'little') + b'\r\n' _RAW_MAGIC_NUMBER = int.from_bytes(MAGIC_NUMBER, 'little') # For import.c @@ -1340,11 +1334,22 @@ def append(self, item): # This class is actually exposed publicly in a namespace package's __loader__ # attribute, so it should be available through a non-private name. -# https://github.com/python/cpython/issues/92054 +# https://bugs.python.org/issue35673 class NamespaceLoader: def __init__(self, name, path, path_finder): self._path = _NamespacePath(name, path, path_finder) + @staticmethod + def module_repr(module): + """Return repr for the module. + + The method is deprecated. The import machinery does the job itself. + + """ + _warnings.warn("NamespaceLoader.module_repr() is deprecated and " + "slated for removal in Python 3.12", DeprecationWarning) + return '<module {!r} (namespace)>'.format(module.__name__) + def is_package(self, fullname): return True @@ -1392,9 +1397,7 @@ def invalidate_caches(): """Call the invalidate_caches() method on all path entry finders stored in sys.path_importer_caches (where implemented).""" for name, finder in list(sys.path_importer_cache.items()): - # Drop entry if finder name is a relative path. The current - # working directory may have changed. - if finder is None or not _path_isabs(name): + if finder is None: del sys.path_importer_cache[name] elif hasattr(finder, 'invalidate_caches'): finder.invalidate_caches() @@ -1465,7 +1468,7 @@ def _get_spec(cls, fullname, path, target=None): # the list of paths that will become its __path__ namespace_path = [] for entry in path: - if not isinstance(entry, str): + if not isinstance(entry, (str, bytes)): continue finder = cls._path_importer_cache(entry) if finder is not None: @@ -1562,12 +1565,9 @@ def __init__(self, path, *loader_details): loaders.extend((suffix, loader) for suffix in suffixes) self._loaders = loaders # Base (directory) path - if not path or path == '.': - self.path = _os.getcwd() - elif not _path_isabs(path): - self.path = _path_join(_os.getcwd(), path) - else: - self.path = path + self.path = path or '.' + if not _path_isabs(self.path): + self.path = _path_join(_os.getcwd(), self.path) self._path_mtime = -1 self._path_cache = set() self._relaxed_path_cache = set() diff --git a/Lib/importlib/abc.py b/Lib/importlib/abc.py index 8fa9a0f3bc1e4b..3fa151f390ba7c 100644 --- a/Lib/importlib/abc.py +++ b/Lib/importlib/abc.py @@ -15,27 +15,18 @@ import abc import warnings -from .resources import abc as _resources_abc +# for compatibility with Python 3.10 +from .resources.abc import ResourceReader, Traversable, TraversableResources __all__ = [ 'Loader', 'Finder', 'MetaPathFinder', 'PathEntryFinder', 'ResourceLoader', 'InspectLoader', 'ExecutionLoader', 'FileLoader', 'SourceLoader', -] - -def __getattr__(name): - """ - For backwards compatibility, continue to make names - from _resources_abc available through this module. #93963 - """ - if name in _resources_abc.__all__: - obj = getattr(_resources_abc, name) - warnings._deprecated(f"{__name__}.{name}", remove=(3, 14)) - globals()[name] = obj - return obj - raise AttributeError(f'module {__name__!r} has no attribute {name!r}') + # for compatibility with Python 3.10 + 'ResourceReader', 'Traversable', 'TraversableResources', +] def _register(abstract_cls, *classes): diff --git a/Lib/importlib/metadata/__init__.py b/Lib/importlib/metadata/__init__.py index b01de145c33671..9ceae8a0e04b5a 100644 --- a/Lib/importlib/metadata/__init__.py +++ b/Lib/importlib/metadata/__init__.py @@ -543,7 +543,7 @@ def locate_file(self, path): """ @classmethod - def from_name(cls, name: str): + def from_name(cls, name): """Return the Distribution for the given package name. :param name: The name of the distribution package to search for. @@ -551,13 +551,13 @@ def from_name(cls, name: str): package, if found. :raises PackageNotFoundError: When the named package's distribution metadata cannot be found. - :raises ValueError: When an invalid value is supplied for name. """ - if not name: - raise ValueError("A distribution name is required.") - try: - return next(cls.discover(name=name)) - except StopIteration: + for resolver in cls._discover_resolvers(): + dists = resolver(DistributionFinder.Context(name=name)) + dist = next(iter(dists), None) + if dist is not None: + return dist + else: raise PackageNotFoundError(name) @classmethod @@ -945,26 +945,13 @@ def _normalized_name(self): normalized name from the file system path. """ stem = os.path.basename(str(self._path)) - return ( - pass_none(Prepared.normalize)(self._name_from_stem(stem)) - or super()._normalized_name - ) + return self._name_from_stem(stem) or super()._normalized_name - @staticmethod - def _name_from_stem(stem): - """ - >>> PathDistribution._name_from_stem('foo-3.0.egg-info') - 'foo' - >>> PathDistribution._name_from_stem('CherryPy-3.0.dist-info') - 'CherryPy' - >>> PathDistribution._name_from_stem('face.egg-info') - 'face' - >>> PathDistribution._name_from_stem('foo.bar') - """ - filename, ext = os.path.splitext(stem) + def _name_from_stem(self, stem): + name, ext = os.path.splitext(stem) if ext not in ('.dist-info', '.egg-info'): return - name, sep, rest = filename.partition('-') + name, sep, rest = stem.partition('-') return name @@ -1004,15 +991,6 @@ def version(distribution_name): return distribution(distribution_name).version -_unique = functools.partial( - unique_everseen, - key=operator.attrgetter('_normalized_name'), -) -""" -Wrapper for ``distributions`` to return unique distributions by name. -""" - - def entry_points(**params) -> Union[EntryPoints, SelectableGroups]: """Return EntryPoint objects for all installed packages. @@ -1030,8 +1008,10 @@ def entry_points(**params) -> Union[EntryPoints, SelectableGroups]: :return: EntryPoints or SelectableGroups for all installed packages. """ + norm_name = operator.attrgetter('_normalized_name') + unique = functools.partial(unique_everseen, key=norm_name) eps = itertools.chain.from_iterable( - dist.entry_points for dist in _unique(distributions()) + dist.entry_points for dist in unique(distributions()) ) return SelectableGroups.load(eps).select(**params) diff --git a/Lib/importlib/resources/_common.py b/Lib/importlib/resources/_common.py index ca1fa8ab2fe6ff..147ea19188f718 100644 --- a/Lib/importlib/resources/_common.py +++ b/Lib/importlib/resources/_common.py @@ -67,10 +67,7 @@ def from_package(package): @contextlib.contextmanager -def _tempfile(reader, suffix='', - # gh-93353: Keep a reference to call os.remove() in late Python - # finalization. - *, _os_remove=os.remove): +def _tempfile(reader, suffix=''): # Not using tempfile.NamedTemporaryFile as it leads to deeper 'try' # blocks due to the need to close the temporary file to work on Windows # properly. @@ -84,7 +81,7 @@ def _tempfile(reader, suffix='', yield pathlib.Path(raw_path) finally: try: - _os_remove(raw_path) + os.remove(raw_path) except FileNotFoundError: pass diff --git a/Lib/inspect.py b/Lib/inspect.py index 498ee7ab9eaf8a..6e744712f014b1 100644 --- a/Lib/inspect.py +++ b/Lib/inspect.py @@ -395,7 +395,7 @@ def _has_code_flag(f, flag): while ismethod(f): f = f.__func__ f = functools._unwrap_partial(f) - if not (isfunction(f) or _signature_is_functionlike(f)): + if not isfunction(f): return False return bool(f.__code__.co_flags & flag) @@ -946,9 +946,6 @@ def getsourcefile(object): elif any(filename.endswith(s) for s in importlib.machinery.EXTENSION_SUFFIXES): return None - # return a filename found in the linecache even if it doesn't exist on disk - if filename in linecache.cache: - return filename if os.path.exists(filename): return filename # only return a non-existent filename if the module has a PEP 302 loader @@ -957,6 +954,9 @@ def getsourcefile(object): return filename elif getattr(getattr(module, "__spec__", None), "loader", None) is not None: return filename + # or it is in the linecache + elif filename in linecache.cache: + return filename def getabsfile(object, _filename=None): """Return an absolute path to the source or compiled file for an object. diff --git a/Lib/io.py b/Lib/io.py index 50ce97436ac1d1..a205e00575f7e8 100644 --- a/Lib/io.py +++ b/Lib/io.py @@ -57,6 +57,22 @@ IncrementalNewlineDecoder, text_encoding, TextIOWrapper) +def __getattr__(name): + if name == "OpenWrapper": + # bpo-43680: Until Python 3.9, _pyio.open was not a static method and + # builtins.open was set to OpenWrapper to not become a bound method + # when set to a class variable. _io.open is a built-in function whereas + # _pyio.open is a Python function. In Python 3.10, _pyio.open() is now + # a static method, and builtins.open() is now io.open(). + import warnings + warnings.warn('OpenWrapper is deprecated, use open instead', + DeprecationWarning, stacklevel=2) + global OpenWrapper + OpenWrapper = open + return OpenWrapper + raise AttributeError("module {__name__!r} has no attribute {name!r}") + + # Pretend this exception was created here. UnsupportedOperation.__module__ = "io" diff --git a/Lib/json/__init__.py b/Lib/json/__init__.py index d775fb1c11071d..e4c21daaf3e47f 100644 --- a/Lib/json/__init__.py +++ b/Lib/json/__init__.py @@ -97,7 +97,7 @@ """ __version__ = '2.0.9' __all__ = [ - 'dump', 'dumps', 'load', 'loads', 'AttrDict', + 'dump', 'dumps', 'load', 'loads', 'JSONDecoder', 'JSONDecodeError', 'JSONEncoder', ] @@ -357,53 +357,3 @@ def loads(s, *, cls=None, object_hook=None, parse_float=None, if parse_constant is not None: kw['parse_constant'] = parse_constant return cls(**kw).decode(s) - -class AttrDict(dict): - """Dict like object that supports attribute style dotted access. - - This class is intended for use with the *object_hook* in json.loads(): - - >>> from json import loads, AttrDict - >>> json_string = '{"mercury": 88, "venus": 225, "earth": 365, "mars": 687}' - >>> orbital_period = loads(json_string, object_hook=AttrDict) - >>> orbital_period['earth'] # Dict style lookup - 365 - >>> orbital_period.earth # Attribute style lookup - 365 - >>> orbital_period.keys() # All dict methods are present - dict_keys(['mercury', 'venus', 'earth', 'mars']) - - Attribute style access only works for keys that are valid attribute names. - In contrast, dictionary style access works for all keys. - For example, ``d.two words`` contains a space and is not syntactically - valid Python, so ``d["two words"]`` should be used instead. - - If a key has the same name as dictionary method, then a dictionary - lookup finds the key and an attribute lookup finds the method: - - >>> d = AttrDict(items=50) - >>> d['items'] # Lookup the key - 50 - >>> d.items() # Call the method - dict_items([('items', 50)]) - - """ - __slots__ = () - - def __getattr__(self, attr): - try: - return self[attr] - except KeyError: - raise AttributeError(attr) from None - - def __setattr__(self, attr, value): - self[attr] = value - - def __delattr__(self, attr): - try: - del self[attr] - except KeyError: - raise AttributeError(attr) from None - - def __dir__(self): - return list(self) + dir(type(self)) diff --git a/Lib/test/test_lib2to3/__init__.py b/Lib/lib2to3/tests/__init__.py similarity index 100% rename from Lib/test/test_lib2to3/__init__.py rename to Lib/lib2to3/tests/__init__.py diff --git a/Lib/test/test_lib2to3/__main__.py b/Lib/lib2to3/tests/__main__.py similarity index 100% rename from Lib/test/test_lib2to3/__main__.py rename to Lib/lib2to3/tests/__main__.py diff --git a/Lib/test/test_lib2to3/data/README b/Lib/lib2to3/tests/data/README similarity index 100% rename from Lib/test/test_lib2to3/data/README rename to Lib/lib2to3/tests/data/README diff --git a/Lib/test/test_lib2to3/data/bom.py b/Lib/lib2to3/tests/data/bom.py similarity index 100% rename from Lib/test/test_lib2to3/data/bom.py rename to Lib/lib2to3/tests/data/bom.py diff --git a/Lib/test/test_lib2to3/data/crlf.py b/Lib/lib2to3/tests/data/crlf.py similarity index 100% rename from Lib/test/test_lib2to3/data/crlf.py rename to Lib/lib2to3/tests/data/crlf.py diff --git a/Lib/test/test_lib2to3/data/different_encoding.py b/Lib/lib2to3/tests/data/different_encoding.py similarity index 100% rename from Lib/test/test_lib2to3/data/different_encoding.py rename to Lib/lib2to3/tests/data/different_encoding.py diff --git a/Lib/test/test_lib2to3/data/false_encoding.py b/Lib/lib2to3/tests/data/false_encoding.py similarity index 100% rename from Lib/test/test_lib2to3/data/false_encoding.py rename to Lib/lib2to3/tests/data/false_encoding.py diff --git a/Lib/test/test_lib2to3/data/fixers/bad_order.py b/Lib/lib2to3/tests/data/fixers/bad_order.py similarity index 100% rename from Lib/test/test_lib2to3/data/fixers/bad_order.py rename to Lib/lib2to3/tests/data/fixers/bad_order.py diff --git a/Lib/test/test_importlib/resources/data01/__init__.py b/Lib/lib2to3/tests/data/fixers/myfixes/__init__.py similarity index 100% rename from Lib/test/test_importlib/resources/data01/__init__.py rename to Lib/lib2to3/tests/data/fixers/myfixes/__init__.py diff --git a/Lib/test/test_lib2to3/data/fixers/myfixes/fix_explicit.py b/Lib/lib2to3/tests/data/fixers/myfixes/fix_explicit.py similarity index 100% rename from Lib/test/test_lib2to3/data/fixers/myfixes/fix_explicit.py rename to Lib/lib2to3/tests/data/fixers/myfixes/fix_explicit.py diff --git a/Lib/test/test_lib2to3/data/fixers/myfixes/fix_first.py b/Lib/lib2to3/tests/data/fixers/myfixes/fix_first.py similarity index 100% rename from Lib/test/test_lib2to3/data/fixers/myfixes/fix_first.py rename to Lib/lib2to3/tests/data/fixers/myfixes/fix_first.py diff --git a/Lib/test/test_lib2to3/data/fixers/myfixes/fix_last.py b/Lib/lib2to3/tests/data/fixers/myfixes/fix_last.py similarity index 100% rename from Lib/test/test_lib2to3/data/fixers/myfixes/fix_last.py rename to Lib/lib2to3/tests/data/fixers/myfixes/fix_last.py diff --git a/Lib/test/test_lib2to3/data/fixers/myfixes/fix_parrot.py b/Lib/lib2to3/tests/data/fixers/myfixes/fix_parrot.py similarity index 100% rename from Lib/test/test_lib2to3/data/fixers/myfixes/fix_parrot.py rename to Lib/lib2to3/tests/data/fixers/myfixes/fix_parrot.py diff --git a/Lib/test/test_lib2to3/data/fixers/myfixes/fix_preorder.py b/Lib/lib2to3/tests/data/fixers/myfixes/fix_preorder.py similarity index 100% rename from Lib/test/test_lib2to3/data/fixers/myfixes/fix_preorder.py rename to Lib/lib2to3/tests/data/fixers/myfixes/fix_preorder.py diff --git a/Lib/test/test_lib2to3/data/fixers/no_fixer_cls.py b/Lib/lib2to3/tests/data/fixers/no_fixer_cls.py similarity index 100% rename from Lib/test/test_lib2to3/data/fixers/no_fixer_cls.py rename to Lib/lib2to3/tests/data/fixers/no_fixer_cls.py diff --git a/Lib/test/test_lib2to3/data/fixers/parrot_example.py b/Lib/lib2to3/tests/data/fixers/parrot_example.py similarity index 100% rename from Lib/test/test_lib2to3/data/fixers/parrot_example.py rename to Lib/lib2to3/tests/data/fixers/parrot_example.py diff --git a/Lib/test/test_lib2to3/data/infinite_recursion.py b/Lib/lib2to3/tests/data/infinite_recursion.py similarity index 100% rename from Lib/test/test_lib2to3/data/infinite_recursion.py rename to Lib/lib2to3/tests/data/infinite_recursion.py diff --git a/Lib/test/test_lib2to3/data/py2_test_grammar.py b/Lib/lib2to3/tests/data/py2_test_grammar.py similarity index 99% rename from Lib/test/test_lib2to3/data/py2_test_grammar.py rename to Lib/lib2to3/tests/data/py2_test_grammar.py index 1a631510f4dba7..f9e4ea1374f907 100644 --- a/Lib/test/test_lib2to3/data/py2_test_grammar.py +++ b/Lib/lib2to3/tests/data/py2_test_grammar.py @@ -735,7 +735,7 @@ def testSelectors(self): s = a[-5:] s = a[:-1] s = a[-4:-3] - # A rough test of SF bug 1333982. https://bugs.python.org/issue1333982 + # A rough test of SF bug 1333982. https://python.org/sf/1333982 # The testing here is fairly incomplete. # Test cases should include: commas with 1 and 2 colons d = {} diff --git a/Lib/test/test_lib2to3/data/py3_test_grammar.py b/Lib/lib2to3/tests/data/py3_test_grammar.py similarity index 99% rename from Lib/test/test_lib2to3/data/py3_test_grammar.py rename to Lib/lib2to3/tests/data/py3_test_grammar.py index 774851f5bd7e85..a4a3f7eac0dded 100644 --- a/Lib/test/test_lib2to3/data/py3_test_grammar.py +++ b/Lib/lib2to3/tests/data/py3_test_grammar.py @@ -714,7 +714,7 @@ def testSelectors(self): s = a[-5:] s = a[:-1] s = a[-4:-3] - # A rough test of SF bug 1333982. https://bugs.python.org/issue1333982 + # A rough test of SF bug 1333982. https://python.org/sf/1333982 # The testing here is fairly incomplete. # Test cases should include: commas with 1 and 2 colons d = {} diff --git a/Lib/test/test_lib2to3/pytree_idempotency.py b/Lib/lib2to3/tests/pytree_idempotency.py similarity index 96% rename from Lib/test/test_lib2to3/pytree_idempotency.py rename to Lib/lib2to3/tests/pytree_idempotency.py index eb2e2aa02ae0ed..2e7e9781d42995 100755 --- a/Lib/test/test_lib2to3/pytree_idempotency.py +++ b/Lib/lib2to3/tests/pytree_idempotency.py @@ -17,9 +17,9 @@ import logging # Local imports -from lib2to3 import pytree -from lib2to3 import pgen2 -from lib2to3.pgen2 import driver +from .. import pytree +from .. import pgen2 +from ..pgen2 import driver logging.basicConfig() diff --git a/Lib/test/test_lib2to3/support.py b/Lib/lib2to3/tests/support.py similarity index 77% rename from Lib/test/test_lib2to3/support.py rename to Lib/lib2to3/tests/support.py index 9e56273e95992b..fe084e8903fc86 100644 --- a/Lib/test/test_lib2to3/support.py +++ b/Lib/lib2to3/tests/support.py @@ -8,14 +8,12 @@ from textwrap import dedent # Local imports -import lib2to3 from lib2to3 import pytree, refactor from lib2to3.pgen2 import driver as pgen2_driver -lib2to3_dir = os.path.dirname(lib2to3.__file__) test_dir = os.path.dirname(__file__) proj_dir = os.path.normpath(os.path.join(test_dir, "..")) -grammar_path = os.path.join(lib2to3_dir, "Grammar.txt") +grammar_path = os.path.join(test_dir, "..", "Grammar.txt") grammar = pgen2_driver.load_grammar(grammar_path) grammar_no_print_statement = pgen2_driver.load_grammar(grammar_path) del grammar_no_print_statement.keywords["print"] @@ -51,19 +49,10 @@ def get_refactorer(fixer_pkg="lib2to3", fixers=None, options=None): options = options or {} return refactor.RefactoringTool(fixers, options, explicit=True) -def _all_project_files(root, files): - for dirpath, dirnames, filenames in os.walk(root): - for filename in filenames: - if not filename.endswith(".py"): - continue - files.append(os.path.join(dirpath, filename)) - def all_project_files(): - files = [] - _all_project_files(lib2to3_dir, files) - _all_project_files(test_dir, files) - # Sort to get more reproducible tests - files.sort() - return files + for dirpath, dirnames, filenames in os.walk(proj_dir): + for filename in filenames: + if filename.endswith(".py"): + yield os.path.join(dirpath, filename) TestCase = unittest.TestCase diff --git a/Lib/test/test_lib2to3/test_all_fixers.py b/Lib/lib2to3/tests/test_all_fixers.py similarity index 99% rename from Lib/test/test_lib2to3/test_all_fixers.py rename to Lib/lib2to3/tests/test_all_fixers.py index d0fca7072482cb..a265941490d5dc 100644 --- a/Lib/test/test_lib2to3/test_all_fixers.py +++ b/Lib/lib2to3/tests/test_all_fixers.py @@ -7,6 +7,7 @@ # Python imports import os.path +import sys import test.support import unittest diff --git a/Lib/test/test_lib2to3/test_fixers.py b/Lib/lib2to3/tests/test_fixers.py similarity index 99% rename from Lib/test/test_lib2to3/test_fixers.py rename to Lib/lib2to3/tests/test_fixers.py index 68efeee7abb4d5..121ebe68e5402b 100644 --- a/Lib/test/test_lib2to3/test_fixers.py +++ b/Lib/lib2to3/tests/test_fixers.py @@ -7,7 +7,7 @@ # Local imports from lib2to3 import pygram, fixer_util -from test.test_lib2to3 import support +from lib2to3.tests import support class FixerTestCase(support.TestCase): @@ -1791,7 +1791,7 @@ def f(): class Test_imports(FixerTestCase, ImportsFixerTests): fixer = "imports" - from lib2to3.fixes.fix_imports import MAPPING as modules + from ..fixes.fix_imports import MAPPING as modules def test_multiple_imports(self): b = """import urlparse, cStringIO""" @@ -1812,16 +1812,16 @@ def test_multiple_imports_as(self): class Test_imports2(FixerTestCase, ImportsFixerTests): fixer = "imports2" - from lib2to3.fixes.fix_imports2 import MAPPING as modules + from ..fixes.fix_imports2 import MAPPING as modules class Test_imports_fixer_order(FixerTestCase, ImportsFixerTests): def setUp(self): super(Test_imports_fixer_order, self).setUp(['imports', 'imports2']) - from lib2to3.fixes.fix_imports2 import MAPPING as mapping2 + from ..fixes.fix_imports2 import MAPPING as mapping2 self.modules = mapping2.copy() - from lib2to3.fixes.fix_imports import MAPPING as mapping1 + from ..fixes.fix_imports import MAPPING as mapping1 for key in ('dbhash', 'dumbdbm', 'dbm', 'gdbm'): self.modules[key] = mapping1[key] @@ -1833,7 +1833,7 @@ def test_after_local_imports_refactoring(self): class Test_urllib(FixerTestCase): fixer = "urllib" - from lib2to3.fixes.fix_urllib import MAPPING as modules + from ..fixes.fix_urllib import MAPPING as modules def test_import_module(self): for old, changes in self.modules.items(): diff --git a/Lib/test/test_lib2to3/test_main.py b/Lib/lib2to3/tests/test_main.py similarity index 100% rename from Lib/test/test_lib2to3/test_main.py rename to Lib/lib2to3/tests/test_main.py diff --git a/Lib/test/test_lib2to3/test_parser.py b/Lib/lib2to3/tests/test_parser.py similarity index 99% rename from Lib/test/test_lib2to3/test_parser.py rename to Lib/lib2to3/tests/test_parser.py index 2c798b181fdbda..8e7773bcae13ed 100644 --- a/Lib/test/test_lib2to3/test_parser.py +++ b/Lib/lib2to3/tests/test_parser.py @@ -26,7 +26,7 @@ # Local imports from lib2to3.pgen2 import driver as pgen2_driver from lib2to3.pgen2 import tokenize -from lib2to3.pgen2.parse import ParseError +from ..pgen2.parse import ParseError from lib2to3.pygram import python_symbols as syms diff --git a/Lib/test/test_lib2to3/test_pytree.py b/Lib/lib2to3/tests/test_pytree.py similarity index 100% rename from Lib/test/test_lib2to3/test_pytree.py rename to Lib/lib2to3/tests/test_pytree.py diff --git a/Lib/test/test_lib2to3/test_refactor.py b/Lib/lib2to3/tests/test_refactor.py similarity index 100% rename from Lib/test/test_lib2to3/test_refactor.py rename to Lib/lib2to3/tests/test_refactor.py diff --git a/Lib/test/test_lib2to3/test_util.py b/Lib/lib2to3/tests/test_util.py similarity index 100% rename from Lib/test/test_lib2to3/test_util.py rename to Lib/lib2to3/tests/test_util.py diff --git a/Lib/linecache.py b/Lib/linecache.py index 97644a8e3794e1..23191d6501d2a8 100644 --- a/Lib/linecache.py +++ b/Lib/linecache.py @@ -135,7 +135,7 @@ def updatecache(filename, module_globals=None): try: with tokenize.open(fullname) as fp: lines = fp.readlines() - except (OSError, UnicodeDecodeError, SyntaxError): + except OSError: return [] if lines and not lines[-1].endswith('\n'): lines[-1] += '\n' diff --git a/Lib/locale.py b/Lib/locale.py index c2c7a04b280708..7a7694e1bfb71c 100644 --- a/Lib/locale.py +++ b/Lib/locale.py @@ -26,7 +26,7 @@ # trying the import. So __all__ is also fiddled at the end of the file. __all__ = ["getlocale", "getdefaultlocale", "getpreferredencoding", "Error", "setlocale", "resetlocale", "localeconv", "strcoll", "strxfrm", - "str", "atof", "atoi", "format_string", "currency", + "str", "atof", "atoi", "format", "format_string", "currency", "normalize", "LC_CTYPE", "LC_COLLATE", "LC_TIME", "LC_MONETARY", "LC_NUMERIC", "LC_ALL", "CHAR_MAX", "getencoding"] @@ -247,6 +247,21 @@ def format_string(f, val, grouping=False, monetary=False): return new_f % val +def format(percent, value, grouping=False, monetary=False, *additional): + """Deprecated, use format_string instead.""" + import warnings + warnings.warn( + "This method will be removed in a future version of Python. " + "Use 'locale.format_string()' instead.", + DeprecationWarning, stacklevel=2 + ) + + match = _percent_re.match(percent) + if not match or len(match.group())!= len(percent): + raise ValueError(("format() must be given exactly one %%char " + "format specifier, %s not valid") % repr(percent)) + return _format(percent, value, grouping, monetary, *additional) + def currency(val, symbol=True, grouping=False, international=False): """Formats val according to the currency settings in the current locale.""" diff --git a/Lib/logging/__init__.py b/Lib/logging/__init__.py index 86e1efe6e653ac..e7636e18bec4ab 100644 --- a/Lib/logging/__init__.py +++ b/Lib/logging/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2001-2022 by Vinay Sajip. All Rights Reserved. +# Copyright 2001-2019 by Vinay Sajip. All Rights Reserved. # # Permission to use, copy, modify, and distribute this software and its # documentation for any purpose and without fee is hereby granted, @@ -18,7 +18,7 @@ Logging package for Python. Based on PEP 282 and comments thereto in comp.lang.python. -Copyright (C) 2001-2022 Vinay Sajip. All Rights Reserved. +Copyright (C) 2001-2019 Vinay Sajip. All Rights Reserved. To use, simply 'import logging' and log away! """ @@ -38,8 +38,7 @@ 'exception', 'fatal', 'getLevelName', 'getLogger', 'getLoggerClass', 'info', 'log', 'makeLogRecord', 'setLoggerClass', 'shutdown', 'warn', 'warning', 'getLogRecordFactory', 'setLogRecordFactory', - 'lastResort', 'raiseExceptions', 'getLevelNamesMapping', - 'getHandlerByName', 'getHandlerNames'] + 'lastResort', 'raiseExceptions', 'getLevelNamesMapping'] import threading @@ -340,7 +339,7 @@ def __init__(self, name, level, pathname, lineno, self.lineno = lineno self.funcName = func self.created = ct - self.msecs = int((ct - int(ct)) * 1000) + 0.0 # see gh-89047 + self.msecs = (ct - int(ct)) * 1000 self.relativeCreated = (self.created - _startTime) * 1000 if logThreads: self.thread = threading.get_ident() @@ -833,36 +832,23 @@ def filter(self, record): Determine if a record is loggable by consulting all the filters. The default is to allow the record to be logged; any filter can veto - this by returning a false value. - If a filter attached to a handler returns a log record instance, - then that instance is used in place of the original log record in - any further processing of the event by that handler. - If a filter returns any other true value, the original log record - is used in any further processing of the event by that handler. - - If none of the filters return false values, this method returns - a log record. - If any of the filters return a false value, this method returns - a false value. + this and the record is then dropped. Returns a zero value if a record + is to be dropped, else non-zero. .. versionchanged:: 3.2 Allow filters to be just callables. - - .. versionchanged:: 3.12 - Allow filters to return a LogRecord instead of - modifying it in place. """ + rv = True for f in self.filters: if hasattr(f, 'filter'): result = f.filter(record) else: result = f(record) # assume callable - will raise if not if not result: - return False - if isinstance(result, LogRecord): - record = result - return record + rv = False + break + return rv #--------------------------------------------------------------------------- # Handler classes and functions @@ -899,23 +885,6 @@ def _addHandlerRef(handler): finally: _releaseLock() - -def getHandlerByName(name): - """ - Get a handler with the specified *name*, or None if there isn't one with - that name. - """ - return _handlers.get(name) - - -def getHandlerNames(): - """ - Return all known handler names as an immutable set. - """ - result = set(_handlers.keys()) - return frozenset(result) - - class Handler(Filterer): """ Handler instances dispatch logging events to specific destinations. @@ -1014,14 +983,10 @@ def handle(self, record): Emission depends on filters which may have been added to the handler. Wrap the actual emission of the record with acquisition/release of - the I/O thread lock. - - Returns an instance of the log record that was emitted - if it passed all filters, otherwise a false value is returned. + the I/O thread lock. Returns whether the filter passed the record for + emission. """ rv = self.filter(record) - if isinstance(rv, LogRecord): - record = rv if rv: self.acquire() try: @@ -1533,7 +1498,7 @@ def info(self, msg, *args, **kwargs): To pass exception information, use the keyword argument exc_info with a true value, e.g. - logger.info("Houston, we have a %s", "notable problem", exc_info=1) + logger.info("Houston, we have a %s", "interesting problem", exc_info=1) """ if self.isEnabledFor(INFO): self._log(INFO, msg, args, **kwargs) @@ -1690,14 +1655,8 @@ def handle(self, record): This method is used for unpickled records received from a socket, as well as those created locally. Logger-level filtering is applied. """ - if self.disabled: - return - maybe_record = self.filter(record) - if not maybe_record: - return - if isinstance(maybe_record, LogRecord): - record = maybe_record - self.callHandlers(record) + if (not self.disabled) and self.filter(record): + self.callHandlers(record) def addHandler(self, hdlr): """ @@ -1828,25 +1787,6 @@ def getChild(self, suffix): suffix = '.'.join((self.name, suffix)) return self.manager.getLogger(suffix) - def getChildren(self): - - def _hierlevel(logger): - if logger is logger.manager.root: - return 0 - return 1 + logger.name.count('.') - - d = self.manager.loggerDict - _acquireLock() - try: - # exclude PlaceHolders - the last check is to ensure that lower-level - # descendants aren't returned - if there are placeholders, a logger's - # parent field might point to a grandparent or ancestor thereof. - return set(item for item in d.values() - if isinstance(item, Logger) and item.parent is self and - _hierlevel(item) == 1 + _hierlevel(item.parent)) - finally: - _releaseLock() - def __repr__(self): level = getLevelName(self.getEffectiveLevel()) return '<%s %s (%s)>' % (self.__class__.__name__, self.name, level) @@ -2264,11 +2204,7 @@ def shutdown(handlerList=_handlerList): if h: try: h.acquire() - # MemoryHandlers might not want to be flushed on close, - # but circular imports prevent us scoping this to just - # those handlers. hence the default to True. - if getattr(h, 'flushOnClose', True): - h.flush() + h.flush() h.close() except (OSError, ValueError): # Ignore errors which might be caused diff --git a/Lib/logging/config.py b/Lib/logging/config.py index 7cd16c643e9dad..86a1e4eaf4cbc9 100644 --- a/Lib/logging/config.py +++ b/Lib/logging/config.py @@ -1,4 +1,4 @@ -# Copyright 2001-2022 by Vinay Sajip. All Rights Reserved. +# Copyright 2001-2019 by Vinay Sajip. All Rights Reserved. # # Permission to use, copy, modify, and distribute this software and its # documentation for any purpose and without fee is hereby granted, @@ -19,17 +19,15 @@ is based on PEP 282 and comments thereto in comp.lang.python, and influenced by Apache's log4j system. -Copyright (C) 2001-2022 Vinay Sajip. All Rights Reserved. +Copyright (C) 2001-2019 Vinay Sajip. All Rights Reserved. To use, simply 'import logging' and log away! """ import errno -import functools import io import logging import logging.handlers -import queue import re import struct import threading @@ -565,7 +563,7 @@ def configure(self): handler.name = name handlers[name] = handler except Exception as e: - if ' not configured yet' in str(e.__cause__): + if 'target not configured yet' in str(e.__cause__): deferred.append(name) else: raise ValueError('Unable to configure handler ' @@ -704,21 +702,6 @@ def add_filters(self, filterer, filters): except Exception as e: raise ValueError('Unable to add filter %r' % f) from e - def _configure_queue_handler(self, klass, **kwargs): - if 'queue' in kwargs: - q = kwargs['queue'] - else: - q = queue.Queue() # unbounded - rhl = kwargs.get('respect_handler_level', False) - if 'listener' in kwargs: - lklass = kwargs['listener'] - else: - lklass = logging.handlers.QueueListener - listener = lklass(q, *kwargs['handlers'], respect_handler_level=rhl) - handler = klass(q) - handler.listener = listener - return handler - def configure_handler(self, config): """Configure a handler from a dictionary.""" config_copy = dict(config) # for restoring in case of error @@ -738,83 +721,26 @@ def configure_handler(self, config): factory = c else: cname = config.pop('class') - if callable(cname): - klass = cname - else: - klass = self.resolve(cname) + klass = self.resolve(cname) + #Special case for handler which refers to another handler if issubclass(klass, logging.handlers.MemoryHandler) and\ 'target' in config: - # Special case for handler which refers to another handler try: - tn = config['target'] - th = self.config['handlers'][tn] + th = self.config['handlers'][config['target']] if not isinstance(th, logging.Handler): config.update(config_copy) # restore for deferred cfg raise TypeError('target not configured yet') config['target'] = th except Exception as e: - raise ValueError('Unable to set target handler %r' % tn) from e - elif issubclass(klass, logging.handlers.QueueHandler): - # Another special case for handler which refers to other handlers - if 'handlers' not in config: - raise ValueError('No handlers specified for a QueueHandler') - if 'queue' in config: - qspec = config['queue'] - if not isinstance(qspec, queue.Queue): - if isinstance(qspec, str): - q = self.resolve(qspec) - if not callable(q): - raise TypeError('Invalid queue specifier %r' % qspec) - q = q() - elif isinstance(qspec, dict): - if '()' not in qspec: - raise TypeError('Invalid queue specifier %r' % qspec) - q = self.configure_custom(dict(qspec)) - else: - raise TypeError('Invalid queue specifier %r' % qspec) - config['queue'] = q - if 'listener' in config: - lspec = config['listener'] - if isinstance(lspec, type): - if not issubclass(lspec, logging.handlers.QueueListener): - raise TypeError('Invalid listener specifier %r' % lspec) - else: - if isinstance(lspec, str): - listener = self.resolve(lspec) - if isinstance(listener, type) and\ - not issubclass(listener, logging.handlers.QueueListener): - raise TypeError('Invalid listener specifier %r' % lspec) - elif isinstance(lspec, dict): - if '()' not in lspec: - raise TypeError('Invalid listener specifier %r' % lspec) - listener = self.configure_custom(dict(lspec)) - else: - raise TypeError('Invalid listener specifier %r' % lspec) - if not callable(listener): - raise TypeError('Invalid listener specifier %r' % lspec) - config['listener'] = listener - hlist = [] - try: - for hn in config['handlers']: - h = self.config['handlers'][hn] - if not isinstance(h, logging.Handler): - config.update(config_copy) # restore for deferred cfg - raise TypeError('Required handler %r ' - 'is not configured yet' % hn) - hlist.append(h) - except Exception as e: - raise ValueError('Unable to set required handler %r' % hn) from e - config['handlers'] = hlist + raise ValueError('Unable to set target handler ' + '%r' % config['target']) from e elif issubclass(klass, logging.handlers.SMTPHandler) and\ 'mailhost' in config: config['mailhost'] = self.as_tuple(config['mailhost']) elif issubclass(klass, logging.handlers.SysLogHandler) and\ 'address' in config: config['address'] = self.as_tuple(config['address']) - if issubclass(klass, logging.handlers.QueueHandler): - factory = functools.partial(self._configure_queue_handler, klass) - else: - factory = klass + factory = klass props = config.pop('.', None) kwargs = {k: config[k] for k in config if valid_ident(k)} try: @@ -869,7 +795,6 @@ def configure_logger(self, name, config, incremental=False): """Configure a non-root logger from a dictionary.""" logger = logging.getLogger(name) self.common_logger_config(logger, config, incremental) - logger.disabled = False propagate = config.get('propagate', None) if propagate is not None: logger.propagate = propagate diff --git a/Lib/logging/handlers.py b/Lib/logging/handlers.py index b4c5c1304b9752..78e919d195d974 100644 --- a/Lib/logging/handlers.py +++ b/Lib/logging/handlers.py @@ -348,15 +348,11 @@ def shouldRollover(self, record): record is not used, as we are just comparing times, but it is needed so the method signatures are the same """ + # See bpo-45401: Never rollover anything other than regular files + if os.path.exists(self.baseFilename) and not os.path.isfile(self.baseFilename): + return False t = int(time.time()) if t >= self.rolloverAt: - # See #89564: Never rollover anything other than regular files - if os.path.exists(self.baseFilename) and not os.path.isfile(self.baseFilename): - # The file is not a regular file, so do not rollover, but do - # set the next rollover time to avoid repeated checks. - self.rolloverAt = self.computeRollover(t) - return False - return True return False @@ -1111,16 +1107,7 @@ def __init__(self, appname, dllname=None, logtype="Application"): dllname = os.path.join(dllname[0], r'win32service.pyd') self.dllname = dllname self.logtype = logtype - # Administrative privileges are required to add a source to the registry. - # This may not be available for a user that just wants to add to an - # existing source - handle this specific case. - try: - self._welu.AddSourceToRegistry(appname, dllname, logtype) - except Exception as e: - # This will probably be a pywintypes.error. Only raise if it's not - # an "access denied" error, else let it pass - if getattr(e, 'winerror', None) != 5: # not access denied - raise + self._welu.AddSourceToRegistry(appname, dllname, logtype) self.deftype = win32evtlog.EVENTLOG_ERROR_TYPE self.typemap = { logging.DEBUG : win32evtlog.EVENTLOG_INFORMATION_TYPE, @@ -1437,7 +1424,6 @@ def __init__(self, queue): """ logging.Handler.__init__(self) self.queue = queue - self.listener = None # will be set to listener if configured via dictConfig() def enqueue(self, record): """ @@ -1469,7 +1455,7 @@ def prepare(self, record): # (if there's exception data), and also returns the formatted # message. We can then use this to replace the original # msg + args, as these might be unpickleable. We also zap the - # exc_info, exc_text and stack_info attributes, as they are no longer + # exc_info and exc_text attributes, as they are no longer # needed and, if not None, will typically not be pickleable. msg = self.format(record) # bpo-35726: make copy of record to avoid affecting other handlers in the chain. @@ -1479,7 +1465,6 @@ def prepare(self, record): record.args = None record.exc_info = None record.exc_text = None - record.stack_info = None return record def emit(self, record): diff --git a/Lib/mailcap.py b/Lib/mailcap.py index 7278ea7051fccf..856b6a55475f38 100644 --- a/Lib/mailcap.py +++ b/Lib/mailcap.py @@ -2,7 +2,6 @@ import os import warnings -import re __all__ = ["getcaps","findmatch"] @@ -20,11 +19,6 @@ def lineno_sort_key(entry): else: return 1, 0 -_find_unsafe = re.compile(r'[^\xa1-\U0010FFFF\w@+=:,./-]').search - -class UnsafeMailcapInput(Warning): - """Warning raised when refusing unsafe input""" - # Part 1: top-level interface. @@ -177,22 +171,15 @@ def findmatch(caps, MIMEtype, key='view', filename="/dev/null", plist=[]): entry to use. """ - if _find_unsafe(filename): - msg = "Refusing to use mailcap with filename %r. Use a safe temporary filename." % (filename,) - warnings.warn(msg, UnsafeMailcapInput) - return None, None entries = lookup(caps, MIMEtype, key) # XXX This code should somehow check for the needsterminal flag. for e in entries: if 'test' in e: test = subst(e['test'], filename, plist) - if test is None: - continue if test and os.system(test) != 0: continue command = subst(e[key], MIMEtype, filename, plist) - if command is not None: - return command, e + return command, e return None, None def lookup(caps, MIMEtype, key=None): @@ -225,10 +212,6 @@ def subst(field, MIMEtype, filename, plist=[]): elif c == 's': res = res + filename elif c == 't': - if _find_unsafe(MIMEtype): - msg = "Refusing to substitute MIME type %r into a shell command." % (MIMEtype,) - warnings.warn(msg, UnsafeMailcapInput) - return None res = res + MIMEtype elif c == '{': start = i @@ -236,12 +219,7 @@ def subst(field, MIMEtype, filename, plist=[]): i = i+1 name = field[start:i] i = i+1 - param = findparam(name, plist) - if _find_unsafe(param): - msg = "Refusing to substitute parameter %r (%s) into a shell command" % (param, name) - warnings.warn(msg, UnsafeMailcapInput) - return None - res = res + param + res = res + findparam(name, plist) # XXX To do: # %n == number of parts if type is multipart/* # %F == list of alternating type and filename for parts diff --git a/Lib/multiprocessing/context.py b/Lib/multiprocessing/context.py index b1960ea296fe20..8d0525d5d62179 100644 --- a/Lib/multiprocessing/context.py +++ b/Lib/multiprocessing/context.py @@ -223,10 +223,6 @@ class Process(process.BaseProcess): def _Popen(process_obj): return _default_context.get_context().Process._Popen(process_obj) - @staticmethod - def _after_fork(): - return _default_context.get_context().Process._after_fork() - class DefaultContext(BaseContext): Process = Process @@ -287,11 +283,6 @@ def _Popen(process_obj): from .popen_spawn_posix import Popen return Popen(process_obj) - @staticmethod - def _after_fork(): - # process is spawned, nothing to do - pass - class ForkServerProcess(process.BaseProcess): _start_method = 'forkserver' @staticmethod @@ -335,11 +326,6 @@ def _Popen(process_obj): from .popen_spawn_win32 import Popen return Popen(process_obj) - @staticmethod - def _after_fork(): - # process is spawned, nothing to do - pass - class SpawnContext(BaseContext): _name = 'spawn' Process = SpawnProcess diff --git a/Lib/multiprocessing/pool.py b/Lib/multiprocessing/pool.py index 961d7e5991847a..bbe05a550c349c 100644 --- a/Lib/multiprocessing/pool.py +++ b/Lib/multiprocessing/pool.py @@ -203,9 +203,6 @@ def __init__(self, processes=None, initializer=None, initargs=(), processes = os.cpu_count() or 1 if processes < 1: raise ValueError("Number of processes must be at least 1") - if maxtasksperchild is not None: - if not isinstance(maxtasksperchild, int) or maxtasksperchild <= 0: - raise ValueError("maxtasksperchild must be a positive int or None") if initializer is not None and not callable(initializer): raise TypeError('initializer must be a callable') diff --git a/Lib/multiprocessing/process.py b/Lib/multiprocessing/process.py index c03c859baa795b..3917d2e4fa63ec 100644 --- a/Lib/multiprocessing/process.py +++ b/Lib/multiprocessing/process.py @@ -304,7 +304,8 @@ def _bootstrap(self, parent_sentinel=None): if threading._HAVE_THREAD_NATIVE_ID: threading.main_thread()._set_native_id() try: - self._after_fork() + util._finalizer_registry.clear() + util._run_after_forkers() finally: # delay finalization of the old process object until after # _run_after_forkers() is executed @@ -335,13 +336,6 @@ def _bootstrap(self, parent_sentinel=None): return exitcode - @staticmethod - def _after_fork(): - from . import util - util._finalizer_registry.clear() - util._run_after_forkers() - - # # We subclass bytes to avoid accidental transmission of auth keys over network # diff --git a/Lib/multiprocessing/shared_memory.py b/Lib/multiprocessing/shared_memory.py index 881f2001dd5980..122b3fcebf3fed 100644 --- a/Lib/multiprocessing/shared_memory.py +++ b/Lib/multiprocessing/shared_memory.py @@ -23,7 +23,6 @@ import _posixshmem _USE_POSIX = True -from . import resource_tracker _O_CREX = os.O_CREAT | os.O_EXCL @@ -117,7 +116,8 @@ def __init__(self, name=None, create=False, size=0): self.unlink() raise - resource_tracker.register(self._name, "shared_memory") + from .resource_tracker import register + register(self._name, "shared_memory") else: @@ -237,8 +237,9 @@ def unlink(self): called once (and only once) across all processes which have access to the shared memory block.""" if _USE_POSIX and self._name: + from .resource_tracker import unregister _posixshmem.shm_unlink(self._name) - resource_tracker.unregister(self._name, "shared_memory") + unregister(self._name, "shared_memory") _encoding = "utf8" diff --git a/Lib/netrc.py b/Lib/netrc.py index b285fd8e357ddb..c1358aac6ae02f 100644 --- a/Lib/netrc.py +++ b/Lib/netrc.py @@ -2,7 +2,7 @@ # Module and documentation by Eric S. Raymond, 21 Dec 1998 -import os, stat +import os, shlex, stat __all__ = ["netrc", "NetrcParseError"] diff --git a/Lib/ntpath.py b/Lib/ntpath.py index d9582f4087433e..041ebc75cb127c 100644 --- a/Lib/ntpath.py +++ b/Lib/ntpath.py @@ -23,7 +23,6 @@ import genericpath from genericpath import * - __all__ = ["normcase","isabs","join","splitdrive","split","splitext", "basename","dirname","commonprefix","getsize","getmtime", "getatime","getctime", "islink","exists","lexists","isdir","isfile", @@ -42,39 +41,14 @@ def _get_bothseps(path): # Other normalizations (such as optimizing '../' away) are not done # (this is done by normpath). -try: - from _winapi import ( - LCMapStringEx as _LCMapStringEx, - LOCALE_NAME_INVARIANT as _LOCALE_NAME_INVARIANT, - LCMAP_LOWERCASE as _LCMAP_LOWERCASE) - - def normcase(s): - """Normalize case of pathname. - - Makes all characters lowercase and all slashes into backslashes. - """ - s = os.fspath(s) - if not s: - return s - if isinstance(s, bytes): - encoding = sys.getfilesystemencoding() - s = s.decode(encoding, 'surrogateescape').replace('/', '\\') - s = _LCMapStringEx(_LOCALE_NAME_INVARIANT, - _LCMAP_LOWERCASE, s) - return s.encode(encoding, 'surrogateescape') - else: - return _LCMapStringEx(_LOCALE_NAME_INVARIANT, - _LCMAP_LOWERCASE, - s.replace('/', '\\')) -except ImportError: - def normcase(s): - """Normalize case of pathname. - - Makes all characters lowercase and all slashes into backslashes. - """ - s = os.fspath(s) - if isinstance(s, bytes): - return os.fsencode(os.fsdecode(s).replace('/', '\\').lower()) +def normcase(s): + """Normalize case of pathname. + + Makes all characters lowercase and all slashes into backslashes.""" + s = os.fspath(s) + if isinstance(s, bytes): + return s.replace(b'/', b'\\').lower() + else: return s.replace('/', '\\').lower() @@ -172,23 +146,17 @@ def splitdrive(p): sep = b'\\' altsep = b'/' colon = b':' - unc_prefix = b'\\\\?\\UNC' else: sep = '\\' altsep = '/' colon = ':' - unc_prefix = '\\\\?\\UNC' normp = p.replace(altsep, sep) if (normp[0:2] == sep*2) and (normp[2:3] != sep): # is a UNC path: # vvvvvvvvvvvvvvvvvvvv drive letter or UNC path # \\machine\mountpoint\directory\etc\... # directory ^^^^^^^^^^^^^^^ - if normp[:8].upper().rstrip(sep) == unc_prefix: - start = 8 - else: - start = 2 - index = normp.find(sep, start) + index = normp.find(sep, 2) if index == -1: return p[:0], p index2 = normp.find(sep, index + 1) @@ -732,8 +700,9 @@ def realpath(path, *, strict=False): return path -# All supported version have Unicode filename support. -supports_unicode_filenames = True +# Win9x family and earlier have no Unicode filename support. +supports_unicode_filenames = (hasattr(sys, "getwindowsversion") and + sys.getwindowsversion()[3] >= 2) def relpath(path, start=None): """Return a relative version of a path""" diff --git a/Lib/numbers.py b/Lib/numbers.py index a2913e32cfada7..8e37d79fa755ad 100644 --- a/Lib/numbers.py +++ b/Lib/numbers.py @@ -313,7 +313,7 @@ def __float__(self): so that ratios of huge integers convert without overflowing. """ - return int(self.numerator) / int(self.denominator) + return self.numerator / self.denominator class Integral(Rational): diff --git a/Lib/opcode.py b/Lib/opcode.py index 690923061418bd..573e461666d4d5 100644 --- a/Lib/opcode.py +++ b/Lib/opcode.py @@ -4,9 +4,9 @@ operate on bytecodes (e.g. peephole optimizers). """ -__all__ = ["cmp_op", "hasarg", "hasconst", "hasname", "hasjrel", "hasjabs", - "haslocal", "hascompare", "hasfree", "hasexc", "opname", "opmap", - "HAVE_ARGUMENT", "EXTENDED_ARG"] +__all__ = ["cmp_op", "hasconst", "hasname", "hasjrel", "hasjabs", + "haslocal", "hascompare", "hasfree", "opname", "opmap", + "HAVE_ARGUMENT", "EXTENDED_ARG", "hasnargs"] # It's a chicken-and-egg I'm afraid: # We're imported before _opcode's made. @@ -23,7 +23,6 @@ cmp_op = ('<', '<=', '==', '!=', '>', '>=') -hasarg = [] hasconst = [] hasname = [] hasjrel = [] @@ -31,21 +30,13 @@ haslocal = [] hascompare = [] hasfree = [] -hasexc = [] - -def is_pseudo(op): - return op >= MIN_PSEUDO_OPCODE and op <= MAX_PSEUDO_OPCODE - -oplists = [hasarg, hasconst, hasname, hasjrel, hasjabs, - haslocal, hascompare, hasfree, hasexc] +hasnargs = [] # unused opmap = {} - -## pseudo opcodes (used in the compiler) mapped to the values -## they can become in the actual code. -_pseudo_ops = {} +opname = ['<%r>' % (op,) for op in range(256)] def def_op(name, op): + opname[op] = name opmap[name] = op def name_op(name, op): @@ -60,17 +51,6 @@ def jabs_op(name, op): def_op(name, op) hasjabs.append(op) -def pseudo_op(name, op, real_ops): - def_op(name, op) - _pseudo_ops[name] = real_ops - # add the pseudo opcode to the lists its targets are in - for oplist in oplists: - res = [opmap[rop] in oplist for rop in real_ops] - if any(res): - assert all(res) - oplist.append(op) - - # Instruction opcodes for compiled code # Blank lines correspond to available opcodes @@ -86,8 +66,6 @@ def pseudo_op(name, op, real_ops): def_op('UNARY_INVERT', 15) def_op('BINARY_SUBSCR', 25) -def_op('BINARY_SLICE', 26) -def_op('STORE_SLICE', 27) def_op('GET_LEN', 30) def_op('MATCH_MAPPING', 31) @@ -104,7 +82,6 @@ def pseudo_op(name, op, real_ops): def_op('BEFORE_ASYNC_WITH', 52) def_op('BEFORE_WITH', 53) def_op('END_ASYNC_FOR', 54) -def_op('CLEANUP_THROW', 55) def_op('STORE_SUBSCR', 60) def_op('DELETE_SUBSCR', 61) @@ -126,7 +103,7 @@ def pseudo_op(name, op, real_ops): def_op('PREP_RERAISE_STAR', 88) def_op('POP_EXCEPT', 89) -HAVE_ARGUMENT = 90 # real opcodes from here have an argument: +HAVE_ARGUMENT = 90 # Opcodes from here have an argument: name_op('STORE_NAME', 90) # Index in name list name_op('DELETE_NAME', 91) # "" @@ -153,8 +130,8 @@ def pseudo_op(name, op, real_ops): jrel_op('JUMP_FORWARD', 110) # Number of words to skip jrel_op('JUMP_IF_FALSE_OR_POP', 111) # Number of words to skip jrel_op('JUMP_IF_TRUE_OR_POP', 112) # "" -jrel_op('POP_JUMP_IF_FALSE', 114) -jrel_op('POP_JUMP_IF_TRUE', 115) +jrel_op('POP_JUMP_FORWARD_IF_FALSE', 114) +jrel_op('POP_JUMP_FORWARD_IF_TRUE', 115) name_op('LOAD_GLOBAL', 116) # Index in name list def_op('IS_OP', 117) def_op('CONTAINS_OP', 118) @@ -162,16 +139,14 @@ def pseudo_op(name, op, real_ops): def_op('COPY', 120) def_op('BINARY_OP', 122) jrel_op('SEND', 123) # Number of bytes to skip -def_op('LOAD_FAST', 124) # Local variable number, no null check +def_op('LOAD_FAST', 124) # Local variable number haslocal.append(124) def_op('STORE_FAST', 125) # Local variable number haslocal.append(125) def_op('DELETE_FAST', 126) # Local variable number haslocal.append(126) -def_op('LOAD_FAST_CHECK', 127) # Local variable number -haslocal.append(127) -jrel_op('POP_JUMP_IF_NOT_NONE', 128) -jrel_op('POP_JUMP_IF_NONE', 129) +jrel_op('POP_JUMP_FORWARD_IF_NOT_NONE', 128) +jrel_op('POP_JUMP_FORWARD_IF_NONE', 129) def_op('RAISE_VARARGS', 130) # Number of raise arguments (1, 2, or 3) def_op('GET_AWAITABLE', 131) def_op('MAKE_FUNCTION', 132) # Flags @@ -200,13 +175,15 @@ def pseudo_op(name, op, real_ops): hasfree.append(148) def_op('COPY_FREE_VARS', 149) def_op('YIELD_VALUE', 150) -def_op('RESUME', 151) # This must be kept in sync with deepfreeze.py +def_op('RESUME', 151) def_op('MATCH_CLASS', 152) def_op('FORMAT_VALUE', 155) def_op('BUILD_CONST_KEY_MAP', 156) def_op('BUILD_STRING', 157) +name_op('LOAD_METHOD', 160) + def_op('LIST_EXTEND', 162) def_op('SET_UPDATE', 163) def_op('DICT_MERGE', 164) @@ -216,32 +193,13 @@ def pseudo_op(name, op, real_ops): def_op('KW_NAMES', 172) hasconst.append(172) +jrel_op('POP_JUMP_BACKWARD_IF_NOT_NONE', 173) +jrel_op('POP_JUMP_BACKWARD_IF_NONE', 174) +jrel_op('POP_JUMP_BACKWARD_IF_FALSE', 175) +jrel_op('POP_JUMP_BACKWARD_IF_TRUE', 176) -hasarg.extend([op for op in opmap.values() if op >= HAVE_ARGUMENT]) - -MIN_PSEUDO_OPCODE = 256 - -pseudo_op('SETUP_FINALLY', 256, ['NOP']) -hasexc.append(256) -pseudo_op('SETUP_CLEANUP', 257, ['NOP']) -hasexc.append(257) -pseudo_op('SETUP_WITH', 258, ['NOP']) -hasexc.append(258) -pseudo_op('POP_BLOCK', 259, ['NOP']) - -pseudo_op('JUMP', 260, ['JUMP_FORWARD', 'JUMP_BACKWARD']) -pseudo_op('JUMP_NO_INTERRUPT', 261, ['JUMP_FORWARD', 'JUMP_BACKWARD_NO_INTERRUPT']) - -pseudo_op('LOAD_METHOD', 262, ['LOAD_ATTR']) - -MAX_PSEUDO_OPCODE = MIN_PSEUDO_OPCODE + len(_pseudo_ops) - 1 - -del def_op, name_op, jrel_op, jabs_op, pseudo_op - -opname = ['<%r>' % (op,) for op in range(MAX_PSEUDO_OPCODE + 1)] -for op, i in opmap.items(): - opname[i] = op +del def_op, name_op, jrel_op, jabs_op _nb_ops = [ ("NB_ADD", "+"), @@ -320,29 +278,15 @@ def pseudo_op(name, op, real_ops): "EXTENDED_ARG": [ "EXTENDED_ARG_QUICK", ], - "FOR_ITER": [ - "FOR_ITER_ADAPTIVE", - "FOR_ITER_LIST", - "FOR_ITER_RANGE", - ], "JUMP_BACKWARD": [ "JUMP_BACKWARD_QUICK", ], "LOAD_ATTR": [ "LOAD_ATTR_ADAPTIVE", - # These potentially push [NULL, bound method] onto the stack. - "LOAD_ATTR_CLASS", - "LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN", "LOAD_ATTR_INSTANCE_VALUE", "LOAD_ATTR_MODULE", - "LOAD_ATTR_PROPERTY", "LOAD_ATTR_SLOT", "LOAD_ATTR_WITH_HINT", - # These will always push [unbound method, self] onto the stack. - "LOAD_ATTR_METHOD_LAZY_DICT", - "LOAD_ATTR_METHOD_NO_DICT", - "LOAD_ATTR_METHOD_WITH_DICT", - "LOAD_ATTR_METHOD_WITH_VALUES", ], "LOAD_CONST": [ "LOAD_CONST__LOAD_FAST", @@ -356,6 +300,15 @@ def pseudo_op(name, op, real_ops): "LOAD_GLOBAL_BUILTIN", "LOAD_GLOBAL_MODULE", ], + "LOAD_METHOD": [ + "LOAD_METHOD_ADAPTIVE", + "LOAD_METHOD_CLASS", + "LOAD_METHOD_LAZY_DICT", + "LOAD_METHOD_MODULE", + "LOAD_METHOD_NO_DICT", + "LOAD_METHOD_WITH_DICT", + "LOAD_METHOD_WITH_VALUES", + ], "RESUME": [ "RESUME_QUICK", ], @@ -415,20 +368,23 @@ def pseudo_op(name, op, real_ops): "type_version": 2, "func_version": 1, }, - "FOR_ITER": { - "counter": 1, - }, "LOAD_ATTR": { "counter": 1, "version": 2, - "keys_version": 2, - "descr": 4, + "index": 1, }, "STORE_ATTR": { "counter": 1, "version": 2, "index": 1, }, + "LOAD_METHOD": { + "counter": 1, + "type_version": 2, + "dict_offset": 1, + "keys_version": 2, + "descr": 4, + }, "CALL": { "counter": 1, "func_version": 2, diff --git a/Lib/pathlib.py b/Lib/pathlib.py index 0ea621cc601037..c608ba0954f32c 100644 --- a/Lib/pathlib.py +++ b/Lib/pathlib.py @@ -1,10 +1,3 @@ -"""Object-oriented filesystem paths. - -This module provides classes to represent abstract paths and concrete -paths with operations that have semantics appropriate for different -operating systems. -""" - import fnmatch import functools import io @@ -61,16 +54,41 @@ def __init__(self): self.join = self.sep.join def parse_parts(self, parts): - if not parts: - return '', '', [] + parsed = [] sep = self.sep altsep = self.altsep - path = self.pathmod.join(*parts) - if altsep: - path = path.replace(altsep, sep) - drv, root, rel = self.splitroot(path) - unfiltered_parsed = [drv + root] + rel.split(sep) - parsed = [sys.intern(x) for x in unfiltered_parsed if x and x != '.'] + drv = root = '' + it = reversed(parts) + for part in it: + if not part: + continue + if altsep: + part = part.replace(altsep, sep) + drv, root, rel = self.splitroot(part) + if sep in rel: + for x in reversed(rel.split(sep)): + if x and x != '.': + parsed.append(sys.intern(x)) + else: + if rel and rel != '.': + parsed.append(sys.intern(rel)) + if drv or root: + if not drv: + # If no drive is present, try to find one in the previous + # parts. This makes the result of parsing e.g. + # ("C:", "/", "a") reasonably intuitive. + for part in it: + if not part: + continue + if altsep: + part = part.replace(altsep, sep) + drv = self.splitroot(part)[0] + if drv: + break + break + if drv or root: + parsed.append(drv + root) + parsed.reverse() return drv, root, parsed def join_parsed_parts(self, drv, root, parts, drv2, root2, parts2): @@ -102,18 +120,68 @@ class _WindowsFlavour(_Flavour): is_supported = (os.name == 'nt') + drive_letters = set('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ') + ext_namespace_prefix = '\\\\?\\' + reserved_names = ( {'CON', 'PRN', 'AUX', 'NUL', 'CONIN$', 'CONOUT$'} | {'COM%s' % c for c in '123456789\xb9\xb2\xb3'} | {'LPT%s' % c for c in '123456789\xb9\xb2\xb3'} ) + # Interesting findings about extended paths: + # * '\\?\c:\a' is an extended path, which bypasses normal Windows API + # path processing. Thus relative paths are not resolved and slash is not + # translated to backslash. It has the native NT path limit of 32767 + # characters, but a bit less after resolving device symbolic links, + # such as '\??\C:' => '\Device\HarddiskVolume2'. + # * '\\?\c:/a' looks for a device named 'C:/a' because slash is a + # regular name character in the object namespace. + # * '\\?\c:\foo/bar' is invalid because '/' is illegal in NT filesystems. + # The only path separator at the filesystem level is backslash. + # * '//?/c:\a' and '//?/c:/a' are effectively equivalent to '\\.\c:\a' and + # thus limited to MAX_PATH. + # * Prior to Windows 8, ANSI API bytes paths are limited to MAX_PATH, + # even with the '\\?\' prefix. + def splitroot(self, part, sep=sep): - drv, rest = self.pathmod.splitdrive(part) - if drv[:1] == sep or rest[:1] == sep: - return drv, sep, rest.lstrip(sep) + first = part[0:1] + second = part[1:2] + if (second == sep and first == sep): + # XXX extended paths should also disable the collapsing of "." + # components (according to MSDN docs). + prefix, part = self._split_extended_path(part) + first = part[0:1] + second = part[1:2] else: - return drv, '', rest + prefix = '' + third = part[2:3] + if (second == sep and first == sep and third != sep): + # is a UNC path: + # vvvvvvvvvvvvvvvvvvvvv root + # \\machine\mountpoint\directory\etc\... + # directory ^^^^^^^^^^^^^^ + index = part.find(sep, 2) + if index != -1: + index2 = part.find(sep, index + 1) + # a UNC path can't have two slashes in a row + # (after the initial two) + if index2 != index + 1: + if index2 == -1: + index2 = len(part) + if prefix: + return prefix + part[1:index2], sep, part[index2+1:] + else: + return part[:index2], sep, part[index2+1:] + drv = root = '' + if second == ':' and first in self.drive_letters: + drv = part[:2] + part = part[2:] + first = third + if first == sep: + root = first + part = part.lstrip(sep) + return prefix + drv, root, part def casefold(self, s): return s.lower() @@ -124,6 +192,16 @@ def casefold_parts(self, parts): def compile_pattern(self, pattern): return re.compile(fnmatch.translate(pattern), re.IGNORECASE).fullmatch + def _split_extended_path(self, s, ext_prefix=ext_namespace_prefix): + prefix = '' + if s.startswith(ext_prefix): + prefix = s[:4] + s = s[4:] + if s.startswith('UNC\\'): + prefix += s[:3] + s = '\\' + s[3:] + return prefix, s + def is_reserved(self, parts): # NOTE: the rules for reserved names seem somewhat complicated # (e.g. r"..\NUL" is reserved but not r"foo\NUL" if "foo" does not @@ -274,8 +352,6 @@ def __init__(self, pat, child_parts, flavour): def _select_from(self, parent_path, is_dir, exists, scandir): try: - # We must close the scandir() object before proceeding to - # avoid exhausting file descriptors when globbing deep trees. with scandir(parent_path) as scandir_it: entries = list(scandir_it) for entry in entries: @@ -307,8 +383,6 @@ def __init__(self, pat, child_parts, flavour): def _iterate_directories(self, parent_path, is_dir, scandir): yield parent_path try: - # We must close the scandir() object before proceeding to - # avoid exhausting file descriptors when globbing deep trees. with scandir(parent_path) as scandir_it: entries = list(scandir_it) for entry in entries: @@ -369,8 +443,6 @@ def __getitem__(self, idx): if idx >= len(self) or idx < -len(self): raise IndexError(idx) - if idx < 0: - idx += len(self) return self._pathcls._from_parsed_parts(self._drv, self._root, self._parts[:-idx - 1]) @@ -1186,9 +1258,23 @@ def is_file(self): def is_mount(self): """ - Check if this path is a mount point + Check if this path is a POSIX mount point """ - return self._flavour.pathmod.ismount(self) + # Need to exist and be a dir + if not self.exists() or not self.is_dir(): + return False + + try: + parent_dev = self.parent.stat().st_dev + except OSError: + return False + + dev = self.stat().st_dev + if dev != parent_dev: + return True + ino = self.stat().st_ino + parent_ino = self.parent.stat().st_ino + return ino == parent_ino def is_symlink(self): """ @@ -1282,49 +1368,6 @@ def expanduser(self): return self - def walk(self, top_down=True, on_error=None, follow_symlinks=False): - """Walk the directory tree from this directory, similar to os.walk().""" - sys.audit("pathlib.Path.walk", self, on_error, follow_symlinks) - return self._walk(top_down, on_error, follow_symlinks) - - def _walk(self, top_down, on_error, follow_symlinks): - # We may not have read permission for self, in which case we can't - # get a list of the files the directory contains. os.walk - # always suppressed the exception then, rather than blow up for a - # minor reason when (say) a thousand readable directories are still - # left to visit. That logic is copied here. - try: - scandir_it = self._scandir() - except OSError as error: - if on_error is not None: - on_error(error) - return - - with scandir_it: - dirnames = [] - filenames = [] - for entry in scandir_it: - try: - is_dir = entry.is_dir(follow_symlinks=follow_symlinks) - except OSError: - # Carried over from os.path.isdir(). - is_dir = False - - if is_dir: - dirnames.append(entry.name) - else: - filenames.append(entry.name) - - if top_down: - yield self, dirnames, filenames - - for dirname in dirnames: - dirpath = self._make_child_relpath(dirname) - yield from dirpath._walk(top_down, on_error, follow_symlinks) - - if not top_down: - yield self, dirnames, filenames - class PosixPath(Path, PurePosixPath): """Path subclass for non-Windows systems. @@ -1339,3 +1382,6 @@ class WindowsPath(Path, PureWindowsPath): On a Windows system, instantiating a Path should return this object. """ __slots__ = () + + def is_mount(self): + raise NotImplementedError("Path.is_mount() is unsupported on this system") diff --git a/Lib/pdb.py b/Lib/pdb.py index b0acb1f571d3f6..e6ed814acbe19a 100755 --- a/Lib/pdb.py +++ b/Lib/pdb.py @@ -131,7 +131,7 @@ def __repr__(self): return self -class _ScriptTarget(str): +class ScriptTarget(str): def __new__(cls, val): # Mutate self to be the "real path". res = super().__new__(cls, os.path.realpath(val)) @@ -167,7 +167,7 @@ def code(self): return f"exec(compile({fp.read()!r}, {self!r}, 'exec'))" -class _ModuleTarget(str): +class ModuleTarget(str): def check(self): try: self._details @@ -1625,7 +1625,7 @@ def lookupmodule(self, filename): return fullname return None - def _run(self, target: Union[_ModuleTarget, _ScriptTarget]): + def _run(self, target: Union[ModuleTarget, ScriptTarget]): # When bdb sets tracing, a number of call and line events happen # BEFORE debugger even reaches user's code (and the exact sequence of # events depends on python version). Take special measures to @@ -1789,7 +1789,7 @@ def main(): commands = [optarg for opt, optarg in opts if opt in ['-c', '--command']] module_indicated = any(opt in ['-m'] for opt, optarg in opts) - cls = _ModuleTarget if module_indicated else _ScriptTarget + cls = ModuleTarget if module_indicated else ScriptTarget target = cls(args[0]) target.check() diff --git a/Lib/pickle.py b/Lib/pickle.py index f027e0432045b7..e7f30f226101f5 100644 --- a/Lib/pickle.py +++ b/Lib/pickle.py @@ -619,7 +619,7 @@ def save_pers(self, pid): "persistent IDs in protocol 0 must be ASCII strings") def save_reduce(self, func, args, state=None, listitems=None, - dictitems=None, state_setter=None, *, obj=None): + dictitems=None, state_setter=None, obj=None): # This API is called by some subclasses if not isinstance(args, tuple): diff --git a/Lib/platform.py b/Lib/platform.py index 9f5b317287530b..c272c407c77768 100755 --- a/Lib/platform.py +++ b/Lib/platform.py @@ -309,52 +309,34 @@ def _syscmd_ver(system='', release='', version='', version = _norm_version(version) return system, release, version -try: - import _wmi -except ImportError: - def _wmi_query(*keys): - raise OSError("not supported") -else: - def _wmi_query(table, *keys): - table = { - "OS": "Win32_OperatingSystem", - "CPU": "Win32_Processor", - }[table] - data = _wmi.exec_query("SELECT {} FROM {}".format( - ",".join(keys), - table, - )).split("\0") - split_data = (i.partition("=") for i in data) - dict_data = {i[0]: i[2] for i in split_data} - return (dict_data[k] for k in keys) - - -_WIN32_CLIENT_RELEASES = [ - ((10, 1, 0), "post11"), - ((10, 0, 22000), "11"), - ((6, 4, 0), "10"), - ((6, 3, 0), "8.1"), - ((6, 2, 0), "8"), - ((6, 1, 0), "7"), - ((6, 0, 0), "Vista"), - ((5, 2, 3790), "XP64"), - ((5, 2, 0), "XPMedia"), - ((5, 1, 0), "XP"), - ((5, 0, 0), "2000"), -] - -_WIN32_SERVER_RELEASES = [ - ((10, 1, 0), "post2022Server"), - ((10, 0, 20348), "2022Server"), - ((10, 0, 17763), "2019Server"), - ((6, 4, 0), "2016Server"), - ((6, 3, 0), "2012ServerR2"), - ((6, 2, 0), "2012Server"), - ((6, 1, 0), "2008ServerR2"), - ((6, 0, 0), "2008Server"), - ((5, 2, 0), "2003Server"), - ((5, 0, 0), "2000Server"), -] +_WIN32_CLIENT_RELEASES = { + (5, 0): "2000", + (5, 1): "XP", + # Strictly, 5.2 client is XP 64-bit, but platform.py historically + # has always called it 2003 Server + (5, 2): "2003Server", + (5, None): "post2003", + + (6, 0): "Vista", + (6, 1): "7", + (6, 2): "8", + (6, 3): "8.1", + (6, None): "post8.1", + + (10, 0): "10", + (10, None): "post10", +} + +# Server release name lookup will default to client names if necessary +_WIN32_SERVER_RELEASES = { + (5, 2): "2003Server", + + (6, 0): "2008Server", + (6, 1): "2008ServerR2", + (6, 2): "2012Server", + (6, 3): "2012ServerR2", + (6, None): "post2012ServerR2", +} def win32_is_iot(): return win32_edition() in ('IoTUAP', 'NanoServer', 'WindowsCoreHeadless', 'IoTEdgeOS') @@ -377,40 +359,22 @@ def win32_edition(): return None -def _win32_ver(version, csd, ptype): - # Try using WMI first, as this is the canonical source of data - try: - (version, product_type, ptype, spmajor, spminor) = _wmi_query( - 'OS', - 'Version', - 'ProductType', - 'BuildType', - 'ServicePackMajorVersion', - 'ServicePackMinorVersion', - ) - is_client = (int(product_type) == 1) - if spminor and spminor != '0': - csd = f'SP{spmajor}.{spminor}' - else: - csd = f'SP{spmajor}' - return version, csd, ptype, is_client - except OSError: - pass - - # Fall back to a combination of sys.getwindowsversion and "ver" +def win32_ver(release='', version='', csd='', ptype=''): try: from sys import getwindowsversion except ImportError: - return version, csd, ptype, True + return release, version, csd, ptype winver = getwindowsversion() - is_client = (getattr(winver, 'product_type', 1) == 1) try: - version = _syscmd_ver()[2] - major, minor, build = map(int, version.split('.')) + major, minor, build = map(int, _syscmd_ver()[2].split('.')) except ValueError: major, minor, build = winver.platform_version or winver[:3] - version = '{0}.{1}.{2}'.format(major, minor, build) + version = '{0}.{1}.{2}'.format(major, minor, build) + + release = (_WIN32_CLIENT_RELEASES.get((major, minor)) or + _WIN32_CLIENT_RELEASES.get((major, None)) or + release) # getwindowsversion() reflect the compatibility mode Python is # running under, and so the service pack value is only going to be @@ -422,6 +386,12 @@ def _win32_ver(version, csd, ptype): if csd[:13] == 'Service Pack ': csd = 'SP' + csd[13:] + # VER_NT_SERVER = 3 + if getattr(winver, 'product_type', None) == 3: + release = (_WIN32_SERVER_RELEASES.get((major, minor)) or + _WIN32_SERVER_RELEASES.get((major, None)) or + release) + try: try: import winreg @@ -437,18 +407,6 @@ def _win32_ver(version, csd, ptype): except OSError: pass - return version, csd, ptype, is_client - -def win32_ver(release='', version='', csd='', ptype=''): - is_client = False - - version, csd, ptype, is_client = _win32_ver(version, csd, ptype) - - if version: - intversion = tuple(map(int, version.split('.'))) - releases = _WIN32_CLIENT_RELEASES if is_client else _WIN32_SERVER_RELEASES - release = next((r for v, r in releases if v <= intversion), release) - return release, version, csd, ptype @@ -603,7 +561,7 @@ def _platform(*args): platform = platform.replace('unknown', '') # Fold '--'s and remove trailing '-' - while True: + while 1: cleaned = platform.replace('--', '-') if cleaned == platform: break @@ -767,21 +725,6 @@ def _get_machine_win32(): # http://www.geocities.com/rick_lively/MANUALS/ENV/MSWIN/PROCESSI.HTM # WOW64 processes mask the native architecture - try: - [arch, *_] = _wmi_query('CPU', 'Architecture') - except OSError: - pass - else: - try: - arch = ['x86', 'MIPS', 'Alpha', 'PowerPC', None, - 'ARM', 'ia64', None, None, - 'AMD64', None, None, 'ARM64', - ][int(arch)] - except (ValueError, IndexError): - pass - else: - if arch: - return arch return ( os.environ.get('PROCESSOR_ARCHITEW6432', '') or os.environ.get('PROCESSOR_ARCHITECTURE', '') @@ -795,12 +738,7 @@ def get(cls): return func() or '' def get_win32(): - try: - manufacturer, caption = _wmi_query('CPU', 'Manufacturer', 'Caption') - except OSError: - return os.environ.get('PROCESSOR_IDENTIFIER', _get_machine_win32()) - else: - return f'{caption}, {manufacturer}' + return os.environ.get('PROCESSOR_IDENTIFIER', _get_machine_win32()) def get_OpenVMS(): try: diff --git a/Lib/posixpath.py b/Lib/posixpath.py index 5e1ebe3293d849..a7b2f2d64824fa 100644 --- a/Lib/posixpath.py +++ b/Lib/posixpath.py @@ -364,7 +364,7 @@ def normpath(path): initial_slashes = path.startswith(sep) # POSIX allows one or two initial slashes, but treats three or more # as single slash. - # (see https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_13) + # (see http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_13) if (initial_slashes and path.startswith(sep*2) and not path.startswith(sep*3)): initial_slashes = 2 diff --git a/Lib/pprint.py b/Lib/pprint.py index 34ed12637e2288..575688d8eb6f4a 100644 --- a/Lib/pprint.py +++ b/Lib/pprint.py @@ -637,6 +637,19 @@ def _recursion(object): % (type(object).__name__, id(object))) +def _perfcheck(object=None): + import time + if object is None: + object = [("string", (1, 2), [3, 4], {5: 6, 7: 8})] * 100000 + p = PrettyPrinter() + t1 = time.perf_counter() + p._safe_repr(object, {}, None, 0, True) + t2 = time.perf_counter() + p.pformat(object) + t3 = time.perf_counter() + print("_safe_repr:", t2 - t1) + print("pformat:", t3 - t2) + def _wrap_bytes_repr(object, width, allowance): current = b'' last = len(object) // 4 * 4 @@ -653,3 +666,6 @@ def _wrap_bytes_repr(object, width, allowance): current = candidate if current: yield repr(current) + +if __name__ == "__main__": + _perfcheck() diff --git a/Lib/pstats.py b/Lib/pstats.py index 80408313e8b27f..8e0743f2e5f29d 100644 --- a/Lib/pstats.py +++ b/Lib/pstats.py @@ -57,7 +57,7 @@ def __new__(cls, *values): @dataclass(unsafe_hash=True) class FunctionProfile: - ncalls: str + ncalls: int tottime: float percall_tottime: float cumtime: float diff --git a/Lib/pydoc.py b/Lib/pydoc.py index a4dc910c8a8e89..cec9ac89f1cc8d 100755 --- a/Lib/pydoc.py +++ b/Lib/pydoc.py @@ -70,6 +70,7 @@ class or function within a module or module in a package. If the import sysconfig import time import tokenize +import types import urllib.parse import warnings from collections import deque @@ -91,13 +92,16 @@ def pathdirs(): normdirs.append(normdir) return dirs +def _isclass(object): + return inspect.isclass(object) and not isinstance(object, types.GenericAlias) + def _findclass(func): cls = sys.modules.get(func.__module__) if cls is None: return None for name in func.__qualname__.split('.')[:-1]: cls = getattr(cls, name) - if not inspect.isclass(cls): + if not _isclass(cls): return None return cls @@ -105,7 +109,7 @@ def _finddoc(obj): if inspect.ismethod(obj): name = obj.__func__.__name__ self = obj.__self__ - if (inspect.isclass(self) and + if (_isclass(self) and getattr(getattr(self, name, None), '__func__') is obj.__func__): # classmethod cls = self @@ -119,7 +123,7 @@ def _finddoc(obj): elif inspect.isbuiltin(obj): name = obj.__name__ self = obj.__self__ - if (inspect.isclass(self) and + if (_isclass(self) and self.__qualname__ + '.' + name == obj.__qualname__): # classmethod cls = self @@ -206,7 +210,7 @@ def classname(object, modname): def isdata(object): """Check if an object is of a type that probably means it's data.""" - return not (inspect.ismodule(object) or inspect.isclass(object) or + return not (inspect.ismodule(object) or _isclass(object) or inspect.isroutine(object) or inspect.isframe(object) or inspect.istraceback(object) or inspect.iscode(object)) @@ -477,7 +481,7 @@ def document(self, object, name=None, *args): # by lacking a __name__ attribute) and an instance. try: if inspect.ismodule(object): return self.docmodule(*args) - if inspect.isclass(object): return self.docclass(*args) + if _isclass(object): return self.docclass(*args) if inspect.isroutine(object): return self.docroutine(*args) except AttributeError: pass @@ -779,7 +783,7 @@ def docmodule(self, object, name=None, mod=None, *ignored): modules = inspect.getmembers(object, inspect.ismodule) classes, cdict = [], {} - for key, value in inspect.getmembers(object, inspect.isclass): + for key, value in inspect.getmembers(object, _isclass): # if __all__ exists, believe it. Otherwise use old heuristic. if (all is not None or (inspect.getmodule(value) or object) is object): @@ -1171,7 +1175,8 @@ def bold(self, text): def indent(self, text, prefix=' '): """Indent text by prepending a given prefix to each line.""" if not text: return '' - lines = [(prefix + line).rstrip() for line in text.split('\n')] + lines = [prefix + line for line in text.split('\n')] + if lines: lines[-1] = lines[-1].rstrip() return '\n'.join(lines) def section(self, title, contents): @@ -1218,7 +1223,7 @@ def docmodule(self, object, name=None, mod=None): result = result + self.section('DESCRIPTION', desc) classes = [] - for key, value in inspect.getmembers(object, inspect.isclass): + for key, value in inspect.getmembers(object, _isclass): # if __all__ exists, believe it. Otherwise use old heuristic. if (all is not None or (inspect.getmodule(value) or object) is object): @@ -1702,7 +1707,7 @@ def describe(thing): return 'member descriptor %s.%s.%s' % ( thing.__objclass__.__module__, thing.__objclass__.__name__, thing.__name__) - if inspect.isclass(thing): + if _isclass(thing): return 'class ' + thing.__name__ if inspect.isfunction(thing): return 'function ' + thing.__name__ @@ -1763,7 +1768,7 @@ def render_doc(thing, title='Python Library Documentation: %s', forceload=0, desc += ' in module ' + module.__name__ if not (inspect.ismodule(object) or - inspect.isclass(object) or + _isclass(object) or inspect.isroutine(object) or inspect.isdatadescriptor(object) or _getdoc(object)): diff --git a/Lib/random.py b/Lib/random.py index c70294ee0cbf08..a2dfcb574bd5eb 100644 --- a/Lib/random.py +++ b/Lib/random.py @@ -24,7 +24,6 @@ negative exponential gamma beta - binomial pareto Weibull @@ -50,9 +49,8 @@ from math import log as _log, exp as _exp, pi as _pi, e as _e, ceil as _ceil from math import sqrt as _sqrt, acos as _acos, cos as _cos, sin as _sin from math import tau as TWOPI, floor as _floor, isfinite as _isfinite -from math import lgamma as _lgamma, fabs as _fabs, log2 as _log2 from os import urandom as _urandom -from _collections_abc import Sequence as _Sequence +from _collections_abc import Set as _Set, Sequence as _Sequence from operator import index as _index from itertools import accumulate as _accumulate, repeat as _repeat from bisect import bisect as _bisect @@ -70,7 +68,6 @@ "Random", "SystemRandom", "betavariate", - "binomialvariate", "choice", "choices", "expovariate", @@ -239,7 +236,7 @@ def _randbelow_with_getrandbits(self, n): "Return a random int in the range [0,n). Defined for n > 0." getrandbits = self.getrandbits - k = n.bit_length() + k = n.bit_length() # don't use (n-1) here because n can be 1 r = getrandbits(k) # 0 <= r < 2**k while r >= n: r = getrandbits(k) @@ -728,91 +725,6 @@ def betavariate(self, alpha, beta): return y / (y + self.gammavariate(beta, 1.0)) return 0.0 - - def binomialvariate(self, n=1, p=0.5): - """Binomial random variable. - - Gives the number of successes for *n* independent trials - with the probability of success in each trial being *p*: - - sum(random() < p for i in range(n)) - - Returns an integer in the range: 0 <= X <= n - - """ - # Error check inputs and handle edge cases - if n < 0: - raise ValueError("n must be non-negative") - if p <= 0.0 or p >= 1.0: - if p == 0.0: - return 0 - if p == 1.0: - return n - raise ValueError("p must be in the range 0.0 <= p <= 1.0") - - random = self.random - - # Fast path for a common case - if n == 1: - return _index(random() < p) - - # Exploit symmetry to establish: p <= 0.5 - if p > 0.5: - return n - self.binomialvariate(n, 1.0 - p) - - if n * p < 10.0: - # BG: Geometric method by Devroye with running time of O(np). - # https://dl.acm.org/doi/pdf/10.1145/42372.42381 - x = y = 0 - c = _log2(1.0 - p) - if not c: - return x - while True: - y += _floor(_log2(random()) / c) + 1 - if y > n: - return x - x += 1 - - # BTRS: Transformed rejection with squeeze method by Wolfgang Hörmann - # https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.47.8407&rep=rep1&type=pdf - assert n*p >= 10.0 and p <= 0.5 - setup_complete = False - - spq = _sqrt(n * p * (1.0 - p)) # Standard deviation of the distribution - b = 1.15 + 2.53 * spq - a = -0.0873 + 0.0248 * b + 0.01 * p - c = n * p + 0.5 - vr = 0.92 - 4.2 / b - - while True: - - u = random() - u -= 0.5 - us = 0.5 - _fabs(u) - k = _floor((2.0 * a / us + b) * u + c) - if k < 0 or k > n: - continue - - # The early-out "squeeze" test substantially reduces - # the number of acceptance condition evaluations. - v = random() - if us >= 0.07 and v <= vr: - return k - - # Acceptance-rejection test. - # Note, the original paper errorneously omits the call to log(v) - # when comparing to the log of the rescaled binomial distribution. - if not setup_complete: - alpha = (2.83 + 5.1 / b) * spq - lpq = _log(p / (1.0 - p)) - m = _floor((n + 1) * p) # Mode of the distribution - h = _lgamma(m + 1) + _lgamma(n - m + 1) - setup_complete = True # Only needs to be done once - v *= alpha / (a / (us * us) + b) - if _log(v) <= h - _lgamma(k + 1) - _lgamma(n - k + 1) + (k - m) * lpq: - return k - - def paretovariate(self, alpha): """Pareto distribution. alpha is the shape parameter.""" # Jain, pg. 495 @@ -898,7 +810,6 @@ def _notimplemented(self, *args, **kwds): gammavariate = _inst.gammavariate gauss = _inst.gauss betavariate = _inst.betavariate -binomialvariate = _inst.binomialvariate paretovariate = _inst.paretovariate weibullvariate = _inst.weibullvariate getstate = _inst.getstate @@ -923,17 +834,15 @@ def _test_generator(n, func, args): low = min(data) high = max(data) - print(f'{t1 - t0:.3f} sec, {n} times {func.__name__}{args!r}') + print(f'{t1 - t0:.3f} sec, {n} times {func.__name__}') print('avg %g, stddev %g, min %g, max %g\n' % (xbar, sigma, low, high)) -def _test(N=10_000): +def _test(N=2000): _test_generator(N, random, ()) _test_generator(N, normalvariate, (0.0, 1.0)) _test_generator(N, lognormvariate, (0.0, 1.0)) _test_generator(N, vonmisesvariate, (0.0, 1.0)) - _test_generator(N, binomialvariate, (15, 0.60)) - _test_generator(N, binomialvariate, (100, 0.75)) _test_generator(N, gammavariate, (0.01, 1.0)) _test_generator(N, gammavariate, (0.1, 1.0)) _test_generator(N, gammavariate, (0.1, 2.0)) diff --git a/Lib/re/_compiler.py b/Lib/re/_compiler.py index d8e0d2fdefdcca..4b5322338cbd5f 100644 --- a/Lib/re/_compiler.py +++ b/Lib/re/_compiler.py @@ -28,14 +28,21 @@ POSSESSIVE_REPEAT: (POSSESSIVE_REPEAT, SUCCESS, POSSESSIVE_REPEAT_ONE), } +class _CompileData: + __slots__ = ('code', 'repeat_count') + def __init__(self): + self.code = [] + self.repeat_count = 0 + def _combine_flags(flags, add_flags, del_flags, TYPE_FLAGS=_parser.TYPE_FLAGS): if add_flags & TYPE_FLAGS: flags &= ~TYPE_FLAGS return (flags | add_flags) & ~del_flags -def _compile(code, pattern, flags): +def _compile(data, pattern, flags): # internal: compile a (sub)pattern + code = data.code emit = code.append _len = len LITERAL_CODES = _LITERAL_CODES @@ -108,7 +115,7 @@ def _compile(code, pattern, flags): skip = _len(code); emit(0) emit(av[0]) emit(av[1]) - _compile(code, av[2], flags) + _compile(data, av[2], flags) emit(SUCCESS) code[skip] = _len(code) - skip else: @@ -116,7 +123,11 @@ def _compile(code, pattern, flags): skip = _len(code); emit(0) emit(av[0]) emit(av[1]) - _compile(code, av[2], flags) + # now op is in (MIN_REPEAT, MAX_REPEAT, POSSESSIVE_REPEAT) + if op != POSSESSIVE_REPEAT: + emit(data.repeat_count) + data.repeat_count += 1 + _compile(data, av[2], flags) code[skip] = _len(code) - skip emit(REPEATING_CODES[op][1]) elif op is SUBPATTERN: @@ -125,7 +136,7 @@ def _compile(code, pattern, flags): emit(MARK) emit((group-1)*2) # _compile_info(code, p, _combine_flags(flags, add_flags, del_flags)) - _compile(code, p, _combine_flags(flags, add_flags, del_flags)) + _compile(data, p, _combine_flags(flags, add_flags, del_flags)) if group: emit(MARK) emit((group-1)*2+1) @@ -137,7 +148,7 @@ def _compile(code, pattern, flags): # pop their stack if they reach it emit(ATOMIC_GROUP) skip = _len(code); emit(0) - _compile(code, av, flags) + _compile(data, av, flags) emit(SUCCESS) code[skip] = _len(code) - skip elif op in SUCCESS_CODES: @@ -152,7 +163,7 @@ def _compile(code, pattern, flags): if lo != hi: raise error("look-behind requires fixed-width pattern") emit(lo) # look behind - _compile(code, av[1], flags) + _compile(data, av[1], flags) emit(SUCCESS) code[skip] = _len(code) - skip elif op is AT: @@ -171,7 +182,7 @@ def _compile(code, pattern, flags): for av in av[1]: skip = _len(code); emit(0) # _compile_info(code, av, flags) - _compile(code, av, flags) + _compile(data, av, flags) emit(JUMP) tailappend(_len(code)); emit(0) code[skip] = _len(code) - skip @@ -199,12 +210,12 @@ def _compile(code, pattern, flags): emit(op) emit(av[0]-1) skipyes = _len(code); emit(0) - _compile(code, av[1], flags) + _compile(data, av[1], flags) if av[2]: emit(JUMP) skipno = _len(code); emit(0) code[skipyes] = _len(code) - skipyes + 1 - _compile(code, av[2], flags) + _compile(data, av[2], flags) code[skipno] = _len(code) - skipno else: code[skipyes] = _len(code) - skipyes + 1 @@ -571,17 +582,17 @@ def isstring(obj): def _code(p, flags): flags = p.state.flags | flags - code = [] + data = _CompileData() # compile info block - _compile_info(code, p, flags) + _compile_info(data.code, p, flags) # compile the pattern - _compile(code, p.data, flags) + _compile(data, p.data, flags) - code.append(SUCCESS) + data.code.append(SUCCESS) - return code + return data def _hex_code(code): return '[%s]' % ', '.join('%#0*x' % (_sre.CODESIZE*2+2, x) for x in code) @@ -682,7 +693,7 @@ def print_2(*args): else: print_(FAILURE) i += 1 - elif op in (REPEAT, REPEAT_ONE, MIN_REPEAT_ONE, + elif op in (REPEAT_ONE, MIN_REPEAT_ONE, POSSESSIVE_REPEAT, POSSESSIVE_REPEAT_ONE): skip, min, max = code[i: i+3] if max == MAXREPEAT: @@ -690,6 +701,13 @@ def print_2(*args): print_(op, skip, min, max, to=i+skip) dis_(i+3, i+skip) i += skip + elif op is REPEAT: + skip, min, max, repeat_index = code[i: i+4] + if max == MAXREPEAT: + max = 'MAXREPEAT' + print_(op, skip, min, max, repeat_index, to=i+skip) + dis_(i+4, i+skip) + i += skip elif op is GROUPREF_EXISTS: arg, skip = code[i: i+2] print_(op, arg, skip, to=i+skip) @@ -744,11 +762,11 @@ def compile(p, flags=0): else: pattern = None - code = _code(p, flags) + data = _code(p, flags) if flags & SRE_FLAG_DEBUG: print() - dis(code) + dis(data.code) # map in either direction groupindex = p.state.groupdict @@ -757,7 +775,6 @@ def compile(p, flags=0): indexgroup[i] = k return _sre.compile( - pattern, flags | p.state.flags, code, - p.state.groups-1, - groupindex, tuple(indexgroup) - ) + pattern, flags | p.state.flags, data.code, + p.state.groups-1, groupindex, tuple(indexgroup), + data.repeat_count) diff --git a/Lib/re/_constants.py b/Lib/re/_constants.py index 10ee14bfab46ee..1cc85c631f22b4 100644 --- a/Lib/re/_constants.py +++ b/Lib/re/_constants.py @@ -13,7 +13,7 @@ # update when constants are added or removed -MAGIC = 20220615 +MAGIC = 20220423 from _sre import MAXREPEAT, MAXGROUPS diff --git a/Lib/reprlib.py b/Lib/reprlib.py index a92b3e3dbb613a..f3518df105e418 100644 --- a/Lib/reprlib.py +++ b/Lib/reprlib.py @@ -35,24 +35,19 @@ def wrapper(self): class Repr: - def __init__( - self, *, maxlevel=6, maxtuple=6, maxlist=6, maxarray=5, maxdict=4, - maxset=6, maxfrozenset=6, maxdeque=6, maxstring=30, maxlong=40, - maxother=30, fillvalue='...', indent=None, - ): - self.maxlevel = maxlevel - self.maxtuple = maxtuple - self.maxlist = maxlist - self.maxarray = maxarray - self.maxdict = maxdict - self.maxset = maxset - self.maxfrozenset = maxfrozenset - self.maxdeque = maxdeque - self.maxstring = maxstring - self.maxlong = maxlong - self.maxother = maxother - self.fillvalue = fillvalue - self.indent = indent + def __init__(self): + self.fillvalue = '...' + self.maxlevel = 6 + self.maxtuple = 6 + self.maxlist = 6 + self.maxarray = 5 + self.maxdict = 4 + self.maxset = 6 + self.maxfrozenset = 6 + self.maxdeque = 6 + self.maxstring = 30 + self.maxlong = 40 + self.maxother = 30 def repr(self, x): return self.repr1(x, self.maxlevel) @@ -67,26 +62,6 @@ def repr1(self, x, level): else: return self.repr_instance(x, level) - def _join(self, pieces, level): - if self.indent is None: - return ', '.join(pieces) - if not pieces: - return '' - indent = self.indent - if isinstance(indent, int): - if indent < 0: - raise ValueError( - f'Repr.indent cannot be negative int (was {indent!r})' - ) - indent *= ' ' - try: - sep = ',\n' + (self.maxlevel - level + 1) * indent - except TypeError as error: - raise TypeError( - f'Repr.indent must be a str, int or None, not {type(indent)}' - ) from error - return sep.join(('', *pieces, ''))[1:-len(indent) or None] - def _repr_iterable(self, x, level, left, right, maxiter, trail=''): n = len(x) if level <= 0 and n: @@ -97,8 +72,8 @@ def _repr_iterable(self, x, level, left, right, maxiter, trail=''): pieces = [repr1(elem, newlevel) for elem in islice(x, maxiter)] if n > maxiter: pieces.append(self.fillvalue) - s = self._join(pieces, level) - if n == 1 and trail and self.indent is None: + s = ', '.join(pieces) + if n == 1 and trail: right = trail + right return '%s%s%s' % (left, s, right) @@ -145,7 +120,7 @@ def repr_dict(self, x, level): pieces.append('%s: %s' % (keyrepr, valrepr)) if n > self.maxdict: pieces.append(self.fillvalue) - s = self._join(pieces, level) + s = ', '.join(pieces) return '{%s}' % (s,) def repr_str(self, x, level): diff --git a/Lib/shlex.py b/Lib/shlex.py index a91c9b022627b1..4801a6c1d47bd9 100644 --- a/Lib/shlex.py +++ b/Lib/shlex.py @@ -305,7 +305,9 @@ def __next__(self): def split(s, comments=False, posix=True): """Split the string *s* using shell-like syntax.""" if s is None: - raise ValueError("s argument must not be None") + import warnings + warnings.warn("Passing None for 's' to shlex.split() is deprecated.", + DeprecationWarning, stacklevel=2) lex = shlex(s, posix=posix) lex.whitespace_split = True if not comments: diff --git a/Lib/shutil.py b/Lib/shutil.py index b49437cd1f3e87..2cbd808abf2ffb 100644 --- a/Lib/shutil.py +++ b/Lib/shutil.py @@ -897,7 +897,7 @@ def _get_uid(name): return None def _make_tarball(base_name, base_dir, compress="gzip", verbose=0, dry_run=0, - owner=None, group=None, logger=None, root_dir=None): + owner=None, group=None, logger=None): """Create a (possibly compressed) tar file from all the files under 'base_dir'. @@ -954,20 +954,14 @@ def _set_uid_gid(tarinfo): if not dry_run: tar = tarfile.open(archive_name, 'w|%s' % tar_compression) - arcname = base_dir - if root_dir is not None: - base_dir = os.path.join(root_dir, base_dir) try: - tar.add(base_dir, arcname, filter=_set_uid_gid) + tar.add(base_dir, filter=_set_uid_gid) finally: tar.close() - if root_dir is not None: - archive_name = os.path.abspath(archive_name) return archive_name -def _make_zipfile(base_name, base_dir, verbose=0, dry_run=0, - logger=None, owner=None, group=None, root_dir=None): +def _make_zipfile(base_name, base_dir, verbose=0, dry_run=0, logger=None): """Create a zip file from all the files under 'base_dir'. The output zip file will be named 'base_name' + ".zip". Returns the @@ -991,60 +985,42 @@ def _make_zipfile(base_name, base_dir, verbose=0, dry_run=0, if not dry_run: with zipfile.ZipFile(zip_filename, "w", compression=zipfile.ZIP_DEFLATED) as zf: - arcname = os.path.normpath(base_dir) - if root_dir is not None: - base_dir = os.path.join(root_dir, base_dir) - base_dir = os.path.normpath(base_dir) - if arcname != os.curdir: - zf.write(base_dir, arcname) + path = os.path.normpath(base_dir) + if path != os.curdir: + zf.write(path, path) if logger is not None: - logger.info("adding '%s'", base_dir) + logger.info("adding '%s'", path) for dirpath, dirnames, filenames in os.walk(base_dir): - arcdirpath = dirpath - if root_dir is not None: - arcdirpath = os.path.relpath(arcdirpath, root_dir) - arcdirpath = os.path.normpath(arcdirpath) for name in sorted(dirnames): - path = os.path.join(dirpath, name) - arcname = os.path.join(arcdirpath, name) - zf.write(path, arcname) + path = os.path.normpath(os.path.join(dirpath, name)) + zf.write(path, path) if logger is not None: logger.info("adding '%s'", path) for name in filenames: - path = os.path.join(dirpath, name) - path = os.path.normpath(path) + path = os.path.normpath(os.path.join(dirpath, name)) if os.path.isfile(path): - arcname = os.path.join(arcdirpath, name) - zf.write(path, arcname) + zf.write(path, path) if logger is not None: logger.info("adding '%s'", path) - if root_dir is not None: - zip_filename = os.path.abspath(zip_filename) return zip_filename -# Maps the name of the archive format to a tuple containing: -# * the archiving function -# * extra keyword arguments -# * description -# * does it support the root_dir argument? _ARCHIVE_FORMATS = { - 'tar': (_make_tarball, [('compress', None)], - "uncompressed tar file", True), + 'tar': (_make_tarball, [('compress', None)], "uncompressed tar file"), } if _ZLIB_SUPPORTED: _ARCHIVE_FORMATS['gztar'] = (_make_tarball, [('compress', 'gzip')], - "gzip'ed tar-file", True) - _ARCHIVE_FORMATS['zip'] = (_make_zipfile, [], "ZIP file", True) + "gzip'ed tar-file") + _ARCHIVE_FORMATS['zip'] = (_make_zipfile, [], "ZIP file") if _BZ2_SUPPORTED: _ARCHIVE_FORMATS['bztar'] = (_make_tarball, [('compress', 'bzip2')], - "bzip2'ed tar-file", True) + "bzip2'ed tar-file") if _LZMA_SUPPORTED: _ARCHIVE_FORMATS['xztar'] = (_make_tarball, [('compress', 'xz')], - "xz'ed tar-file", True) + "xz'ed tar-file") def get_archive_formats(): """Returns a list of supported formats for archiving and unarchiving. @@ -1075,7 +1051,7 @@ def register_archive_format(name, function, extra_args=None, description=''): if not isinstance(element, (tuple, list)) or len(element) !=2: raise TypeError('extra_args elements are : (arg_name, value)') - _ARCHIVE_FORMATS[name] = (function, extra_args, description, False) + _ARCHIVE_FORMATS[name] = (function, extra_args, description) def unregister_archive_format(name): del _ARCHIVE_FORMATS[name] @@ -1099,40 +1075,36 @@ def make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0, uses the current owner and group. """ sys.audit("shutil.make_archive", base_name, format, root_dir, base_dir) + save_cwd = os.getcwd() + if root_dir is not None: + if logger is not None: + logger.debug("changing into '%s'", root_dir) + base_name = os.path.abspath(base_name) + if not dry_run: + os.chdir(root_dir) + + if base_dir is None: + base_dir = os.curdir + + kwargs = {'dry_run': dry_run, 'logger': logger} + try: format_info = _ARCHIVE_FORMATS[format] except KeyError: raise ValueError("unknown archive format '%s'" % format) from None - kwargs = {'dry_run': dry_run, 'logger': logger, - 'owner': owner, 'group': group} - func = format_info[0] for arg, val in format_info[1]: kwargs[arg] = val - if base_dir is None: - base_dir = os.curdir - - support_root_dir = format_info[3] - save_cwd = None - if root_dir is not None: - if support_root_dir: - # Support path-like base_name here for backwards-compatibility. - base_name = os.fspath(base_name) - kwargs['root_dir'] = root_dir - else: - save_cwd = os.getcwd() - if logger is not None: - logger.debug("changing into '%s'", root_dir) - base_name = os.path.abspath(base_name) - if not dry_run: - os.chdir(root_dir) + if format != 'zip': + kwargs['owner'] = owner + kwargs['group'] = group try: filename = func(base_name, base_dir, **kwargs) finally: - if save_cwd is not None: + if root_dir is not None: if logger is not None: logger.debug("changing back to '%s'", save_cwd) os.chdir(save_cwd) @@ -1245,11 +1217,6 @@ def _unpack_tarfile(filename, extract_dir): finally: tarobj.close() -# Maps the name of the unpack format to a tuple containing: -# * extensions -# * the unpacking function -# * extra keyword arguments -# * description _UNPACK_FORMATS = { 'tar': (['.tar'], _unpack_tarfile, [], "uncompressed tar file"), 'zip': (['.zip'], _unpack_zipfile, [], "ZIP file"), diff --git a/Lib/site.py b/Lib/site.py index 69670d9d7f2230..b11cd48e69e9a8 100644 --- a/Lib/site.py +++ b/Lib/site.py @@ -266,8 +266,8 @@ def _getuserbase(): if env_base: return env_base - # Emscripten, VxWorks, and WASI have no home directories - if sys.platform in {"emscripten", "vxworks", "wasi"}: + # VxWorks has no home directories + if sys.platform == "vxworks": return None def joinuser(*args): diff --git a/Lib/test/smtpd.py b/Lib/smtpd.py similarity index 98% rename from Lib/test/smtpd.py rename to Lib/smtpd.py index f9d4b048a83f68..b23579f120716f 100755 --- a/Lib/test/smtpd.py +++ b/Lib/smtpd.py @@ -77,16 +77,25 @@ import time import socket import collections -from test.support.import_helper import import_module -from warnings import warn +from warnings import _deprecated, warn from email._header_value_parser import get_addr_spec, get_angle_addr __all__ = [ "SMTPChannel", "SMTPServer", "DebuggingServer", "PureProxy", ] -asyncore = import_module('asyncore', deprecated=True) -asynchat = import_module('asynchat', deprecated=True) +_DEPRECATION_MSG = ('The {name} module is deprecated and unmaintained and will ' + 'be removed in Python {remove}. Please see aiosmtpd ' + '(https://aiosmtpd.readthedocs.io/) for the recommended ' + 'replacement.') +_deprecated(__name__, _DEPRECATION_MSG, remove=(3, 12)) + + +# These are imported after the above warning so that users get the correct +# deprecation warning. +import asyncore +import asynchat + program = sys.argv[0] __version__ = 'Python SMTP proxy version 0.3' diff --git a/Lib/socket.py b/Lib/socket.py old mode 100644 new mode 100755 index 1c8cef6ce65810..bfca763f72c826 --- a/Lib/socket.py +++ b/Lib/socket.py @@ -123,7 +123,7 @@ def _intenum_converter(value, enum_klass): errorTab[10014] = "A fault occurred on the network??" # WSAEFAULT errorTab[10022] = "An invalid operation was attempted." errorTab[10024] = "Too many open files." - errorTab[10035] = "The socket operation would block." + errorTab[10035] = "The socket operation would block" errorTab[10036] = "A blocking operation is already in progress." errorTab[10037] = "Operation already in progress." errorTab[10038] = "Socket operation on nonsocket." @@ -255,18 +255,17 @@ def __repr__(self): self.type, self.proto) if not closed: - # getsockname and getpeername may not be available on WASI. try: laddr = self.getsockname() if laddr: s += ", laddr=%s" % str(laddr) - except (error, AttributeError): + except error: pass try: raddr = self.getpeername() if raddr: s += ", raddr=%s" % str(raddr) - except (error, AttributeError): + except error: pass s += '>' return s diff --git a/Lib/sqlite3/__init__.py b/Lib/sqlite3/__init__.py index 927267cf0b92ff..34a9c047dd607c 100644 --- a/Lib/sqlite3/__init__.py +++ b/Lib/sqlite3/__init__.py @@ -55,16 +55,3 @@ """ from sqlite3.dbapi2 import * -from sqlite3.dbapi2 import (_deprecated_names, - _deprecated_version_info, - _deprecated_version) - - -def __getattr__(name): - if name in _deprecated_names: - from warnings import warn - - warn(f"{name} is deprecated and will be removed in Python 3.14", - DeprecationWarning, stacklevel=2) - return globals()[f"_deprecated_{name}"] - raise AttributeError(f"module {__name__!r} has no attribute {name!r}") diff --git a/Lib/sqlite3/__main__.py b/Lib/sqlite3/__main__.py deleted file mode 100644 index f8a5cca24e56af..00000000000000 --- a/Lib/sqlite3/__main__.py +++ /dev/null @@ -1,120 +0,0 @@ -"""A simple SQLite CLI for the sqlite3 module. - -Apart from using 'argparse' for the command-line interface, -this module implements the REPL as a thin wrapper around -the InteractiveConsole class from the 'code' stdlib module. -""" -import sqlite3 -import sys - -from argparse import ArgumentParser -from code import InteractiveConsole -from textwrap import dedent - - -def execute(c, sql, suppress_errors=True): - """Helper that wraps execution of SQL code. - - This is used both by the REPL and by direct execution from the CLI. - - 'c' may be a cursor or a connection. - 'sql' is the SQL string to execute. - """ - - try: - for row in c.execute(sql): - print(row) - except sqlite3.Error as e: - tp = type(e).__name__ - try: - print(f"{tp} ({e.sqlite_errorname}): {e}", file=sys.stderr) - except AttributeError: - print(f"{tp}: {e}", file=sys.stderr) - if not suppress_errors: - sys.exit(1) - - -class SqliteInteractiveConsole(InteractiveConsole): - """A simple SQLite REPL.""" - - def __init__(self, connection): - super().__init__() - self._con = connection - self._cur = connection.cursor() - - def runsource(self, source, filename="<input>", symbol="single"): - """Override runsource, the core of the InteractiveConsole REPL. - - Return True if more input is needed; buffering is done automatically. - Return False is input is a complete statement ready for execution. - """ - match source: - case ".version": - print(f"{sqlite3.sqlite_version}") - case ".help": - print("Enter SQL code and press enter.") - case ".quit": - sys.exit(0) - case _: - if not sqlite3.complete_statement(source): - return True - execute(self._cur, source) - return False - - -def main(): - parser = ArgumentParser( - description="Python sqlite3 CLI", - prog="python -m sqlite3", - ) - parser.add_argument( - "filename", type=str, default=":memory:", nargs="?", - help=( - "SQLite database to open (defaults to ':memory:'). " - "A new database is created if the file does not previously exist." - ), - ) - parser.add_argument( - "sql", type=str, nargs="?", - help=( - "An SQL query to execute. " - "Any returned rows are printed to stdout." - ), - ) - parser.add_argument( - "-v", "--version", action="version", - version=f"SQLite version {sqlite3.sqlite_version}", - help="Print underlying SQLite library version", - ) - args = parser.parse_args() - - if args.filename == ":memory:": - db_name = "a transient in-memory database" - else: - db_name = repr(args.filename) - - # Prepare REPL banner and prompts. - banner = dedent(f""" - sqlite3 shell, running on SQLite version {sqlite3.sqlite_version} - Connected to {db_name} - - Each command will be run using execute() on the cursor. - Type ".help" for more information; type ".quit" or CTRL-D to quit. - """).strip() - sys.ps1 = "sqlite> " - sys.ps2 = " ... " - - con = sqlite3.connect(args.filename, isolation_level=None) - try: - if args.sql: - # SQL statement provided on the command-line; execute it directly. - execute(con, args.sql, suppress_errors=False) - else: - # No SQL provided; start the REPL. - console = SqliteInteractiveConsole(con) - console.interact(banner, exitmsg="") - finally: - con.close() - - -main() diff --git a/Lib/sqlite3/dbapi2.py b/Lib/sqlite3/dbapi2.py index 56fc0461e6c922..36ce769d5c6b3e 100644 --- a/Lib/sqlite3/dbapi2.py +++ b/Lib/sqlite3/dbapi2.py @@ -25,9 +25,6 @@ import collections.abc from _sqlite3 import * -from _sqlite3 import _deprecated_version - -_deprecated_names = frozenset({"version", "version_info"}) paramstyle = "qmark" @@ -48,32 +45,23 @@ def TimeFromTicks(ticks): def TimestampFromTicks(ticks): return Timestamp(*time.localtime(ticks)[:6]) -_deprecated_version_info = tuple(map(int, _deprecated_version.split("."))) +version_info = tuple([int(x) for x in version.split(".")]) sqlite_version_info = tuple([int(x) for x in sqlite_version.split(".")]) Binary = memoryview collections.abc.Sequence.register(Row) def register_adapters_and_converters(): - from warnings import warn - - msg = ("The default {what} is deprecated as of Python 3.12; " - "see the sqlite3 documentation for suggested replacement recipes") - def adapt_date(val): - warn(msg.format(what="date adapter"), DeprecationWarning, stacklevel=2) return val.isoformat() def adapt_datetime(val): - warn(msg.format(what="datetime adapter"), DeprecationWarning, stacklevel=2) return val.isoformat(" ") def convert_date(val): - warn(msg.format(what="date converter"), DeprecationWarning, stacklevel=2) return datetime.date(*map(int, val.split(b"-"))) def convert_timestamp(val): - warn(msg.format(what="timestamp converter"), DeprecationWarning, stacklevel=2) datepart, timepart = val.split(b" ") year, month, day = map(int, datepart.split(b"-")) timepart_full = timepart.split(b".") @@ -97,12 +85,3 @@ def convert_timestamp(val): # Clean up namespace del(register_adapters_and_converters) - -def __getattr__(name): - if name in _deprecated_names: - from warnings import warn - - warn(f"{name} is deprecated and will be removed in Python 3.14", - DeprecationWarning, stacklevel=2) - return globals()[f"_deprecated_{name}"] - raise AttributeError(f"module {__name__!r} has no attribute {name!r}") diff --git a/Lib/sqlite3/dump.py b/Lib/sqlite3/dump.py index 07b9da10b920f9..de9c368be3014e 100644 --- a/Lib/sqlite3/dump.py +++ b/Lib/sqlite3/dump.py @@ -28,16 +28,9 @@ def _iterdump(connection): ORDER BY "name" """ schema_res = cu.execute(q) - sqlite_sequence = [] for table_name, type, sql in schema_res.fetchall(): if table_name == 'sqlite_sequence': - rows = cu.execute('SELECT * FROM "sqlite_sequence";').fetchall() - sqlite_sequence = ['DELETE FROM "sqlite_sequence"'] - sqlite_sequence += [ - f'INSERT INTO "sqlite_sequence" VALUES(\'{row[0]}\',{row[1]})' - for row in rows - ] - continue + yield('DELETE FROM "sqlite_sequence";') elif table_name == 'sqlite_stat1': yield('ANALYZE "sqlite_master";') elif table_name.startswith('sqlite_'): @@ -74,9 +67,4 @@ def _iterdump(connection): for name, type, sql in schema_res.fetchall(): yield('{0};'.format(sql)) - # gh-79009: Yield statements concerning the sqlite_sequence table at the - # end of the transaction. - for row in sqlite_sequence: - yield('{0};'.format(row)) - yield('COMMIT;') diff --git a/Lib/ssl.py b/Lib/ssl.py index 1d5873726441e4..ebac1d60d52de7 100644 --- a/Lib/ssl.py +++ b/Lib/ssl.py @@ -106,7 +106,7 @@ SSLSyscallError, SSLEOFError, SSLCertVerificationError ) from _ssl import txt2obj as _txt2obj, nid2obj as _nid2obj -from _ssl import RAND_status, RAND_add, RAND_bytes +from _ssl import RAND_status, RAND_add, RAND_bytes, RAND_pseudo_bytes try: from _ssl import RAND_egd except ImportError: @@ -373,6 +373,68 @@ def _ipaddress_match(cert_ipaddress, host_ip): return ip == host_ip +def match_hostname(cert, hostname): + """Verify that *cert* (in decoded format as returned by + SSLSocket.getpeercert()) matches the *hostname*. RFC 2818 and RFC 6125 + rules are followed. + + The function matches IP addresses rather than dNSNames if hostname is a + valid ipaddress string. IPv4 addresses are supported on all platforms. + IPv6 addresses are supported on platforms with IPv6 support (AF_INET6 + and inet_pton). + + CertificateError is raised on failure. On success, the function + returns nothing. + """ + warnings.warn( + "ssl.match_hostname() is deprecated", + category=DeprecationWarning, + stacklevel=2 + ) + if not cert: + raise ValueError("empty or no certificate, match_hostname needs a " + "SSL socket or SSL context with either " + "CERT_OPTIONAL or CERT_REQUIRED") + try: + host_ip = _inet_paton(hostname) + except ValueError: + # Not an IP address (common case) + host_ip = None + dnsnames = [] + san = cert.get('subjectAltName', ()) + for key, value in san: + if key == 'DNS': + if host_ip is None and _dnsname_match(value, hostname): + return + dnsnames.append(value) + elif key == 'IP Address': + if host_ip is not None and _ipaddress_match(value, host_ip): + return + dnsnames.append(value) + if not dnsnames: + # The subject is only checked when there is no dNSName entry + # in subjectAltName + for sub in cert.get('subject', ()): + for key, value in sub: + # XXX according to RFC 2818, the most specific Common Name + # must be used. + if key == 'commonName': + if _dnsname_match(value, hostname): + return + dnsnames.append(value) + if len(dnsnames) > 1: + raise CertificateError("hostname %r " + "doesn't match either of %s" + % (hostname, ', '.join(map(repr, dnsnames)))) + elif len(dnsnames) == 1: + raise CertificateError("hostname %r " + "doesn't match %r" + % (hostname, dnsnames[0])) + else: + raise CertificateError("no appropriate commonName or " + "subjectAltName fields were found") + + DefaultVerifyPaths = namedtuple("DefaultVerifyPaths", "cafile capath openssl_cafile_env openssl_cafile openssl_capath_env " "openssl_capath") @@ -1357,6 +1419,36 @@ def version(self): SSLContext.sslobject_class = SSLObject +def wrap_socket(sock, keyfile=None, certfile=None, + server_side=False, cert_reqs=CERT_NONE, + ssl_version=PROTOCOL_TLS, ca_certs=None, + do_handshake_on_connect=True, + suppress_ragged_eofs=True, + ciphers=None): + warnings.warn( + "ssl.wrap_socket() is deprecated, use SSLContext.wrap_socket()", + category=DeprecationWarning, + stacklevel=2 + ) + if server_side and not certfile: + raise ValueError("certfile must be specified for server-side " + "operations") + if keyfile and not certfile: + raise ValueError("certfile must be specified") + context = SSLContext(ssl_version) + context.verify_mode = cert_reqs + if ca_certs: + context.load_verify_locations(ca_certs) + if certfile: + context.load_cert_chain(certfile, keyfile) + if ciphers: + context.set_ciphers(ciphers) + return context.wrap_socket( + sock=sock, server_side=server_side, + do_handshake_on_connect=do_handshake_on_connect, + suppress_ragged_eofs=suppress_ragged_eofs + ) + # some utility functions def cert_time_to_seconds(cert_time): diff --git a/Lib/statistics.py b/Lib/statistics.py index b4adabd3f05ae8..2d66b0522f19d5 100644 --- a/Lib/statistics.py +++ b/Lib/statistics.py @@ -134,11 +134,11 @@ from fractions import Fraction from decimal import Decimal -from itertools import count, groupby, repeat +from itertools import groupby, repeat from bisect import bisect_left, bisect_right from math import hypot, sqrt, fabs, exp, erf, tau, log, fsum from functools import reduce -from operator import mul, itemgetter +from operator import mul from collections import Counter, namedtuple, defaultdict _SQRT2 = sqrt(2.0) @@ -298,7 +298,7 @@ def _exact_ratio(x): # The integer ratios for binary floats can have numerators or # denominators with over 300 decimal digits. The problem is more - # acute with decimal floats where the default decimal context + # acute with decimal floats where the the default decimal context # supports a huge range of exponents from Emin=-999999 to # Emax=999999. When expanded with as_integer_ratio(), numbers like # Decimal('3.14E+5000') and Decimal('3.14E-5000') have large @@ -356,60 +356,6 @@ def _fail_neg(values, errmsg='negative value'): yield x -def _rank(data, /, *, key=None, reverse=False, ties='average', start=1) -> list[float]: - """Rank order a dataset. The lowest value has rank 1. - - Ties are averaged so that equal values receive the same rank: - - >>> data = [31, 56, 31, 25, 75, 18] - >>> _rank(data) - [3.5, 5.0, 3.5, 2.0, 6.0, 1.0] - - The operation is idempotent: - - >>> _rank([3.5, 5.0, 3.5, 2.0, 6.0, 1.0]) - [3.5, 5.0, 3.5, 2.0, 6.0, 1.0] - - It is possible to rank the data in reverse order so that the - highest value has rank 1. Also, a key-function can extract - the field to be ranked: - - >>> goals = [('eagles', 45), ('bears', 48), ('lions', 44)] - >>> _rank(goals, key=itemgetter(1), reverse=True) - [2.0, 1.0, 3.0] - - Ranks are conventionally numbered starting from one; however, - setting *start* to zero allows the ranks to be used as array indices: - - >>> prize = ['Gold', 'Silver', 'Bronze', 'Certificate'] - >>> scores = [8.1, 7.3, 9.4, 8.3] - >>> [prize[int(i)] for i in _rank(scores, start=0, reverse=True)] - ['Bronze', 'Certificate', 'Gold', 'Silver'] - - """ - # If this function becomes public at some point, more thought - # needs to be given to the signature. A list of ints is - # plausible when ties is "min" or "max". When ties is "average", - # either list[float] or list[Fraction] is plausible. - - # Default handling of ties matches scipy.stats.mstats.spearmanr. - if ties != 'average': - raise ValueError(f'Unknown tie resolution method: {ties!r}') - if key is not None: - data = map(key, data) - val_pos = sorted(zip(data, count()), reverse=reverse) - i = start - 1 - result = [0] * len(val_pos) - for _, g in groupby(val_pos, key=itemgetter(0)): - group = list(g) - size = len(group) - rank = i + (size + 1) / 2 - for value, orig_pos in group: - result[orig_pos] = rank - i += size - return result - - def _integer_sqrt_of_frac_rto(n: int, m: int) -> int: """Square root of n/m, rounded to the nearest integer using round-to-odd.""" # Reference: https://www.lri.fr/~melquion/doc/05-imacs17_1-expose.pdf @@ -1042,12 +988,14 @@ def covariance(x, y, /): return sxy / (n - 1) -def correlation(x, y, /, *, method='linear'): +def correlation(x, y, /): """Pearson's correlation coefficient Return the Pearson's correlation coefficient for two inputs. Pearson's - correlation coefficient *r* takes values between -1 and +1. It measures - the strength and direction of a linear relationship. + correlation coefficient *r* takes values between -1 and +1. It measures the + strength and direction of the linear relationship, where +1 means very + strong, positive linear relationship, -1 very strong, negative linear + relationship, and 0 no linear relationship. >>> x = [1, 2, 3, 4, 5, 6, 7, 8, 9] >>> y = [9, 8, 7, 6, 5, 4, 3, 2, 1] @@ -1056,26 +1004,12 @@ def correlation(x, y, /, *, method='linear'): >>> correlation(x, y) -1.0 - If *method* is "ranked", computes Spearman's rank correlation coefficient - for two inputs. The data is replaced by ranks. Ties are averaged - so that equal values receive the same rank. The resulting coefficient - measures the strength of a monotonic relationship. - - Spearman's rank correlation coefficient is appropriate for ordinal - data or for continuous data that doesn't meet the linear proportion - requirement for Pearson's correlation coefficient. """ n = len(x) if len(y) != n: raise StatisticsError('correlation requires that both inputs have same number of data points') if n < 2: raise StatisticsError('correlation requires at least two data points') - if method not in {'linear', 'ranked'}: - raise ValueError(f'Unknown method: {method!r}') - if method == 'ranked': - start = (n - 1) / -2 # Center rankings around zero - x = _rank(x, start=start) - y = _rank(y, start=start) xbar = fsum(x) / n ybar = fsum(y) / n sxy = fsum((xi - xbar) * (yi - ybar) for xi, yi in zip(x, y)) @@ -1259,7 +1193,7 @@ def samples(self, n, *, seed=None): "Generate *n* samples for a given mean and standard deviation." gauss = random.gauss if seed is None else random.Random(seed).gauss mu, sigma = self._mu, self._sigma - return [gauss(mu, sigma) for _ in repeat(None, n)] + return [gauss(mu, sigma) for i in range(n)] def pdf(self, x): "Probability density function. P(x <= X < x+dx) / dx" @@ -1287,6 +1221,8 @@ def inv_cdf(self, p): """ if p <= 0.0 or p >= 1.0: raise StatisticsError('p must be in the range 0.0 < p < 1.0') + if self._sigma <= 0.0: + raise StatisticsError('cdf() not defined when sigma at or below zero') return _normal_dist_inv_cdf(p, self._mu, self._sigma) def quantiles(self, n=4): diff --git a/Lib/subprocess.py b/Lib/subprocess.py index 7ae8df154b481f..e10b01047ebef5 100644 --- a/Lib/subprocess.py +++ b/Lib/subprocess.py @@ -102,19 +102,8 @@ else: if _can_fork_exec: from _posixsubprocess import fork_exec as _fork_exec - # used in methods that are called by __del__ - _waitpid = os.waitpid - _waitstatus_to_exitcode = os.waitstatus_to_exitcode - _WIFSTOPPED = os.WIFSTOPPED - _WSTOPSIG = os.WSTOPSIG - _WNOHANG = os.WNOHANG else: _fork_exec = None - _waitpid = None - _waitstatus_to_exitcode = None - _WIFSTOPPED = None - _WSTOPSIG = None - _WNOHANG = None import select import selectors @@ -1901,19 +1890,19 @@ def _execute_child(self, args, executable, preexec_fn, close_fds, def _handle_exitstatus(self, sts, - _waitstatus_to_exitcode=_waitstatus_to_exitcode, - _WIFSTOPPED=_WIFSTOPPED, - _WSTOPSIG=_WSTOPSIG): + waitstatus_to_exitcode=os.waitstatus_to_exitcode, + _WIFSTOPPED=os.WIFSTOPPED, + _WSTOPSIG=os.WSTOPSIG): """All callers to this function MUST hold self._waitpid_lock.""" # This method is called (indirectly) by __del__, so it cannot # refer to anything outside of its local scope. if _WIFSTOPPED(sts): self.returncode = -_WSTOPSIG(sts) else: - self.returncode = _waitstatus_to_exitcode(sts) + self.returncode = waitstatus_to_exitcode(sts) - def _internal_poll(self, _deadstate=None, _waitpid=_waitpid, - _WNOHANG=_WNOHANG, _ECHILD=errno.ECHILD): + def _internal_poll(self, _deadstate=None, _waitpid=os.waitpid, + _WNOHANG=os.WNOHANG, _ECHILD=errno.ECHILD): """Check if child process has terminated. Returns returncode attribute. diff --git a/Lib/symtable.py b/Lib/symtable.py index 5dd71ffc6b4f19..75ff0921f4c0db 100644 --- a/Lib/symtable.py +++ b/Lib/symtable.py @@ -111,7 +111,7 @@ def has_children(self): return bool(self._table.children) def get_identifiers(self): - """Return a view object containing the names of symbols in the table. + """Return a list of names of symbols in the table. """ return self._table.symbols.keys() diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py index ebe37118274222..e21b7303fecc6b 100644 --- a/Lib/sysconfig.py +++ b/Lib/sysconfig.py @@ -111,8 +111,8 @@ def _getuserbase(): if env_base: return env_base - # Emscripten, VxWorks, and WASI have no home directories - if sys.platform in {"emscripten", "vxworks", "wasi"}: + # VxWorks has no home directories + if sys.platform == "vxworks": return None def joinuser(*args): @@ -195,38 +195,37 @@ def _safe_realpath(path): # unable to retrieve the real program name _PROJECT_BASE = _safe_realpath(os.getcwd()) -# In a virtual environment, `sys._home` gives us the target directory -# `_PROJECT_BASE` for the executable that created it when the virtual -# python is an actual executable ('venv --copies' or Windows). -_sys_home = getattr(sys, '_home', None) -if _sys_home: - _PROJECT_BASE = _sys_home - -if os.name == 'nt': - # In a source build, the executable is in a subdirectory of the root - # that we want (<root>\PCbuild\<platname>). - # `_BASE_PREFIX` is used as the base installation is where the source - # will be. The realpath is needed to prevent mount point confusion - # that can occur with just string comparisons. - if _safe_realpath(_PROJECT_BASE).startswith( - _safe_realpath(f'{_BASE_PREFIX}\\PCbuild')): - _PROJECT_BASE = _BASE_PREFIX +if (os.name == 'nt' and + _PROJECT_BASE.lower().endswith(('\\pcbuild\\win32', '\\pcbuild\\amd64'))): + _PROJECT_BASE = _safe_realpath(os.path.join(_PROJECT_BASE, pardir, pardir)) # set for cross builds if "_PYTHON_PROJECT_BASE" in os.environ: _PROJECT_BASE = _safe_realpath(os.environ["_PYTHON_PROJECT_BASE"]) -def is_python_build(check_home=None): - if check_home is not None: - import warnings - warnings.warn("check_home argument is deprecated and ignored.", - DeprecationWarning, stacklevel=2) +def _is_python_source_dir(d): for fn in ("Setup", "Setup.local"): - if os.path.isfile(os.path.join(_PROJECT_BASE, "Modules", fn)): + if os.path.isfile(os.path.join(d, "Modules", fn)): return True return False -_PYTHON_BUILD = is_python_build() +_sys_home = getattr(sys, '_home', None) + +if os.name == 'nt': + def _fix_pcbuild(d): + if d and os.path.normcase(d).startswith( + os.path.normcase(os.path.join(_PREFIX, "PCbuild"))): + return _PREFIX + return d + _PROJECT_BASE = _fix_pcbuild(_PROJECT_BASE) + _sys_home = _fix_pcbuild(_sys_home) + +def is_python_build(check_home=False): + if check_home and _sys_home: + return _is_python_source_dir(_sys_home) + return _is_python_source_dir(_PROJECT_BASE) + +_PYTHON_BUILD = is_python_build(True) if _PYTHON_BUILD: for scheme in ('posix_prefix', 'posix_home'): @@ -443,7 +442,7 @@ def _parse_makefile(filename, vars=None, keep_unresolved=True): def get_makefile_filename(): """Return the path of the Makefile.""" if _PYTHON_BUILD: - return os.path.join(_PROJECT_BASE, "Makefile") + return os.path.join(_sys_home or _PROJECT_BASE, "Makefile") if hasattr(sys, 'abiflags'): config_dir_name = f'config-{_PY_VERSION_SHORT}{sys.abiflags}' else: @@ -588,9 +587,9 @@ def get_config_h_filename(): """Return the path of pyconfig.h.""" if _PYTHON_BUILD: if os.name == "nt": - inc_dir = os.path.join(_PROJECT_BASE, "PC") + inc_dir = os.path.join(_sys_home or _PROJECT_BASE, "PC") else: - inc_dir = _PROJECT_BASE + inc_dir = _sys_home or _PROJECT_BASE else: inc_dir = get_path('platinclude') return os.path.join(inc_dir, 'pyconfig.h') diff --git a/Lib/tarfile.py b/Lib/tarfile.py index a08f247f496b3d..8d43d0da7b9880 100755 --- a/Lib/tarfile.py +++ b/Lib/tarfile.py @@ -336,8 +336,7 @@ class _Stream: _Stream is intended to be used only internally. """ - def __init__(self, name, mode, comptype, fileobj, bufsize, - compresslevel): + def __init__(self, name, mode, comptype, fileobj, bufsize): """Construct a _Stream object. """ self._extfileobj = True @@ -372,7 +371,7 @@ def __init__(self, name, mode, comptype, fileobj, bufsize, self._init_read_gz() self.exception = zlib.error else: - self._init_write_gz(compresslevel) + self._init_write_gz() elif comptype == "bz2": try: @@ -384,7 +383,7 @@ def __init__(self, name, mode, comptype, fileobj, bufsize, self.cmp = bz2.BZ2Decompressor() self.exception = OSError else: - self.cmp = bz2.BZ2Compressor(compresslevel) + self.cmp = bz2.BZ2Compressor() elif comptype == "xz": try: @@ -411,14 +410,13 @@ def __del__(self): if hasattr(self, "closed") and not self.closed: self.close() - def _init_write_gz(self, compresslevel): + def _init_write_gz(self): """Initialize for writing with gzip compression. """ - self.cmp = self.zlib.compressobj(compresslevel, - self.zlib.DEFLATED, - -self.zlib.MAX_WBITS, - self.zlib.DEF_MEM_LEVEL, - 0) + self.cmp = self.zlib.compressobj(9, self.zlib.DEFLATED, + -self.zlib.MAX_WBITS, + self.zlib.DEF_MEM_LEVEL, + 0) timestamp = struct.pack("<L", int(time.time())) self.__write(b"\037\213\010\010" + timestamp + b"\002\377") if self.name.endswith(".gz"): @@ -1165,11 +1163,6 @@ def _proc_builtin(self, tarfile): # header information. self._apply_pax_info(tarfile.pax_headers, tarfile.encoding, tarfile.errors) - # Remove redundant slashes from directories. This is to be consistent - # with frombuf(). - if self.isdir(): - self.name = self.name.rstrip("/") - return self def _proc_gnulong(self, tarfile): @@ -1192,11 +1185,6 @@ def _proc_gnulong(self, tarfile): elif self.type == GNUTYPE_LONGLINK: next.linkname = nts(buf, tarfile.encoding, tarfile.errors) - # Remove redundant slashes from directories. This is to be consistent - # with frombuf(). - if next.isdir(): - next.name = next.name.removesuffix("/") - return next def _proc_sparse(self, tarfile): @@ -1661,9 +1649,7 @@ def not_compressed(comptype): if filemode not in ("r", "w"): raise ValueError("mode must be 'r' or 'w'") - compresslevel = kwargs.pop("compresslevel", 9) - stream = _Stream(name, filemode, comptype, fileobj, bufsize, - compresslevel) + stream = _Stream(name, filemode, comptype, fileobj, bufsize) try: t = cls(name, filemode, stream, **kwargs) except: diff --git a/Lib/tempfile.py b/Lib/tempfile.py index 76a22b0bf2f98a..23d76bbf0b4767 100644 --- a/Lib/tempfile.py +++ b/Lib/tempfile.py @@ -203,7 +203,8 @@ def _get_default_tempdir(): fd = _os.open(filename, _bin_openflags, 0o600) try: try: - _os.write(fd, b'blat') + with _io.open(fd, 'wb', closefd=False) as fp: + fp.write(b'blat') finally: _os.close(fd) finally: @@ -243,7 +244,6 @@ def _get_candidate_names(): def _mkstemp_inner(dir, pre, suf, flags, output_type): """Code common to mkstemp, TemporaryFile, and NamedTemporaryFile.""" - dir = _os.path.abspath(dir) names = _get_candidate_names() if output_type is bytes: names = map(_os.fsencode, names) @@ -264,7 +264,7 @@ def _mkstemp_inner(dir, pre, suf, flags, output_type): continue else: raise - return fd, file + return (fd, _os.path.abspath(file)) raise FileExistsError(_errno.EEXIST, "No usable temporary file name found") @@ -569,26 +569,15 @@ def NamedTemporaryFile(mode='w+b', buffering=-1, encoding=None, if "b" not in mode: encoding = _io.text_encoding(encoding) - name = None - def opener(*args): - nonlocal name - fd, name = _mkstemp_inner(dir, prefix, suffix, flags, output_type) - return fd + (fd, name) = _mkstemp_inner(dir, prefix, suffix, flags, output_type) try: - file = _io.open(dir, mode, buffering=buffering, - newline=newline, encoding=encoding, errors=errors, - opener=opener) - try: - raw = getattr(file, 'buffer', file) - raw = getattr(raw, 'raw', raw) - raw.name = name - return _TemporaryFileWrapper(file, name, delete) - except: - file.close() - raise - except: - if name is not None and not (_os.name == 'nt' and delete): - _os.unlink(name) + file = _io.open(fd, mode, buffering=buffering, + newline=newline, encoding=encoding, errors=errors) + + return _TemporaryFileWrapper(file, name, delete, delete_on_close) + except BaseException: + _os.unlink(name) + _os.close(fd) raise if _os.name != 'posix' or _sys.platform == 'cygwin': @@ -627,20 +616,9 @@ def TemporaryFile(mode='w+b', buffering=-1, encoding=None, flags = _bin_openflags if _O_TMPFILE_WORKS: - fd = None - def opener(*args): - nonlocal fd + try: flags2 = (flags | _os.O_TMPFILE) & ~_os.O_CREAT fd = _os.open(dir, flags2, 0o600) - return fd - try: - file = _io.open(dir, mode, buffering=buffering, - newline=newline, encoding=encoding, - errors=errors, opener=opener) - raw = getattr(file, 'buffer', file) - raw = getattr(raw, 'raw', raw) - raw.name = fd - return file except IsADirectoryError: # Linux kernel older than 3.11 ignores the O_TMPFILE flag: # O_TMPFILE is read as O_DIRECTORY. Trying to open a directory @@ -657,25 +635,24 @@ def opener(*args): # fails with NotADirectoryError, because O_TMPFILE is read as # O_DIRECTORY. pass + else: + try: + return _io.open(fd, mode, buffering=buffering, + newline=newline, encoding=encoding, + errors=errors) + except: + _os.close(fd) + raise # Fallback to _mkstemp_inner(). - fd = None - def opener(*args): - nonlocal fd - fd, name = _mkstemp_inner(dir, prefix, suffix, flags, output_type) - try: - _os.unlink(name) - except BaseException as e: - _os.close(fd) - raise - return fd - file = _io.open(dir, mode, buffering=buffering, - newline=newline, encoding=encoding, errors=errors, - opener=opener) - raw = getattr(file, 'buffer', file) - raw = getattr(raw, 'raw', raw) - raw.name = fd - return file + (fd, name) = _mkstemp_inner(dir, prefix, suffix, flags, output_type) + try: + _os.unlink(name) + return _io.open(fd, mode, buffering=buffering, + newline=newline, encoding=encoding, errors=errors) + except: + _os.close(fd) + raise class SpooledTemporaryFile(_io.IOBase): """Temporary file wrapper, specialized to switch from BytesIO diff --git a/Lib/test/_test_eintr.py b/Lib/test/_test_eintr.py index 006581f7cc6a9a..e43b59d064f55a 100644 --- a/Lib/test/_test_eintr.py +++ b/Lib/test/_test_eintr.py @@ -403,9 +403,11 @@ def check_sigwait(self, wait_func): old_mask = signal.pthread_sigmask(signal.SIG_BLOCK, [signum]) self.addCleanup(signal.pthread_sigmask, signal.SIG_UNBLOCK, [signum]) + t0 = time.monotonic() proc = self.subprocess(code) with kill_on_error(proc): wait_func(signum) + dt = time.monotonic() - t0 self.assertEqual(proc.wait(), 0) @@ -495,18 +497,16 @@ def _lock(self, lock_func, lock_name): proc = self.subprocess(code) with kill_on_error(proc): with open(os_helper.TESTFN, 'wb') as f: - # synchronize the subprocess - start_time = time.monotonic() - for _ in support.sleeping_retry(support.LONG_TIMEOUT, error=False): + while True: # synchronize the subprocess + dt = time.monotonic() - start_time + if dt > 60.0: + raise Exception("failed to sync child in %.1f sec" % dt) try: lock_func(f, fcntl.LOCK_EX | fcntl.LOCK_NB) lock_func(f, fcntl.LOCK_UN) + time.sleep(0.01) except BlockingIOError: break - else: - dt = time.monotonic() - start_time - raise Exception("failed to sync child in %.1f sec" % dt) - # the child locked the file just a moment ago for 'sleep_time' seconds # that means that the lock below will block for 'sleep_time' minus some # potential context switch delay diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py index b78586c560a68a..67bb17c0ede364 100644 --- a/Lib/test/_test_multiprocessing.py +++ b/Lib/test/_test_multiprocessing.py @@ -5,7 +5,6 @@ import unittest import unittest.mock import queue as pyqueue -import textwrap import time import io import itertools @@ -124,8 +123,6 @@ def _resource_unlink(name, rtype): # BaseManager.shutdown_timeout SHUTDOWN_TIMEOUT = support.SHORT_TIMEOUT -WAIT_ACTIVE_CHILDREN_TIMEOUT = 5.0 - HAVE_GETVALUE = not getattr(_multiprocessing, 'HAVE_BROKEN_SEM_GETVALUE', False) @@ -2863,11 +2860,6 @@ def test_pool_worker_lifetime_early_close(self): for (j, res) in enumerate(results): self.assertEqual(res.get(), sqr(j)) - def test_pool_maxtasksperchild_invalid(self): - for value in [0, -1, 0.5, "12"]: - with self.assertRaises(ValueError): - multiprocessing.Pool(3, maxtasksperchild=value) - def test_worker_finalization_via_atexit_handler_of_multiprocessing(self): # tests cases against bpo-38744 and bpo-39360 cmd = '''if 1: @@ -3973,7 +3965,7 @@ def test_shared_memory_recreate(self): 'multiprocessing.shared_memory._make_filename') as mock_make_filename: NAME_PREFIX = shared_memory._SHM_NAME_PREFIX - names = [self._new_shm_name('test03_fn'), self._new_shm_name('test04_fn')] + names = ['test01_fn', 'test02_fn'] # Prepend NAME_PREFIX which can be '/psm_' or 'wnsm_', necessary # because some POSIX compliant systems require name to start with / names = [NAME_PREFIX + name for name in names] @@ -4320,13 +4312,18 @@ def test_shared_memory_cleaned_after_process_termination(self): p.terminate() p.wait() - err_msg = ("A SharedMemory segment was leaked after " - "a process was abruptly terminated") - for _ in support.sleeping_retry(support.LONG_TIMEOUT, err_msg): + deadline = time.monotonic() + support.LONG_TIMEOUT + t = 0.1 + while time.monotonic() < deadline: + time.sleep(t) + t = min(t*2, 5) try: smm = shared_memory.SharedMemory(name, create=False) except FileNotFoundError: break + else: + raise AssertionError("A SharedMemory segment was leaked after" + " a process was abruptly terminated.") if os.name == 'posix': # Without this line it was raising warnings like: @@ -5336,10 +5333,9 @@ def create_and_register_resource(rtype): p.terminate() p.wait() - err_msg = (f"A {rtype} resource was leaked after a process was " - f"abruptly terminated") - for _ in support.sleeping_retry(support.SHORT_TIMEOUT, - err_msg): + deadline = time.monotonic() + support.LONG_TIMEOUT + while time.monotonic() < deadline: + time.sleep(.5) try: _resource_unlink(name2, rtype) except OSError as e: @@ -5347,7 +5343,10 @@ def create_and_register_resource(rtype): # EINVAL self.assertIn(e.errno, (errno.ENOENT, errno.EINVAL)) break - + else: + raise AssertionError( + f"A {rtype} resource was leaked after a process was " + f"abruptly terminated.") err = p.stderr.read().decode('utf-8') p.stderr.close() expected = ('resource_tracker: There appear to be 2 leaked {} ' @@ -5575,18 +5574,18 @@ def wait_proc_exit(self): # but this can take a bit on slow machines, so wait a few seconds # if there are other children too (see #17395). join_process(self.proc) - - timeout = WAIT_ACTIVE_CHILDREN_TIMEOUT start_time = time.monotonic() - for _ in support.sleeping_retry(timeout, error=False): - if len(multiprocessing.active_children()) <= 1: - break - else: + t = 0.01 + while len(multiprocessing.active_children()) > 1: + time.sleep(t) + t *= 2 dt = time.monotonic() - start_time - support.environment_altered = True - support.print_warning(f"multiprocessing.Manager still has " - f"{multiprocessing.active_children()} " - f"active children after {dt:.1f} seconds") + if dt >= 5.0: + test.support.environment_altered = True + support.print_warning(f"multiprocessing.Manager still has " + f"{multiprocessing.active_children()} " + f"active children after {dt} seconds") + break def run_worker(self, worker, obj): self.proc = multiprocessing.Process(target=worker, args=(obj, )) @@ -5761,35 +5760,6 @@ def test_namespace(self): self.run_worker(self._test_namespace, o) -class TestNamedResource(unittest.TestCase): - def test_global_named_resource_spawn(self): - # - # gh-90549: Check that global named resources in main module - # will not leak by a subprocess, in spawn context. - # - testfn = os_helper.TESTFN - self.addCleanup(os_helper.unlink, testfn) - with open(testfn, 'w', encoding='utf-8') as f: - f.write(textwrap.dedent('''\ - import multiprocessing as mp - - ctx = mp.get_context('spawn') - - global_resource = ctx.Semaphore() - - def submain(): pass - - if __name__ == '__main__': - p = ctx.Process(target=submain) - p.start() - p.join() - ''')) - rc, out, err = test.support.script_helper.assert_python_ok(testfn) - # on error, err = 'UserWarning: resource_tracker: There appear to - # be 1 leaked semaphore objects to clean up at shutdown' - self.assertEqual(err, b'') - - class MiscTestCase(unittest.TestCase): def test__all__(self): # Just make sure names in not_exported are excluded @@ -5883,17 +5853,18 @@ def tearDownClass(cls): # only the manager process should be returned by active_children() # but this can take a bit on slow machines, so wait a few seconds # if there are other children too (see #17395) - timeout = WAIT_ACTIVE_CHILDREN_TIMEOUT start_time = time.monotonic() - for _ in support.sleeping_retry(timeout, error=False): - if len(multiprocessing.active_children()) <= 1: - break - else: + t = 0.01 + while len(multiprocessing.active_children()) > 1: + time.sleep(t) + t *= 2 dt = time.monotonic() - start_time - support.environment_altered = True - support.print_warning(f"multiprocessing.Manager still has " - f"{multiprocessing.active_children()} " - f"active children after {dt:.1f} seconds") + if dt >= 5.0: + test.support.environment_altered = True + support.print_warning(f"multiprocessing.Manager still has " + f"{multiprocessing.active_children()} " + f"active children after {dt} seconds") + break gc.collect() # do garbage collection if cls.manager._number_of_objects() != 0: @@ -6020,15 +5991,3 @@ def tearDownModule(): remote_globs['setUpModule'] = setUpModule remote_globs['tearDownModule'] = tearDownModule - - -@unittest.skipIf(not hasattr(_multiprocessing, 'SemLock'), 'SemLock not available') -@unittest.skipIf(sys.platform != "linux", "Linux only") -class SemLockTests(unittest.TestCase): - - def test_semlock_subclass(self): - class SemLock(_multiprocessing.SemLock): - pass - name = f'test_semlock_subclass-{os.getpid()}' - s = SemLock(1, 0, 10, name, 0) - _multiprocessing.sem_unlink(name) diff --git a/Lib/test/_testcppext.cpp b/Lib/test/_testcppext.cpp index 0e381a78c5ceed..eade7ccdaaff7a 100644 --- a/Lib/test/_testcppext.cpp +++ b/Lib/test/_testcppext.cpp @@ -6,15 +6,6 @@ #include "Python.h" -#if __cplusplus >= 201103 -# define NAME _testcpp11ext -#else -# define NAME _testcpp03ext -#endif - -#define _STR(NAME) #NAME -#define STR(NAME) _STR(NAME) - PyDoc_STRVAR(_testcppext_add_doc, "add(x, y)\n" "\n" @@ -25,7 +16,7 @@ _testcppext_add(PyObject *Py_UNUSED(module), PyObject *args) { long i, j; if (!PyArg_ParseTuple(args, "ll:foo", &i, &j)) { - return _Py_NULL; + return nullptr; } long res = i + j; return PyLong_FromLong(res); @@ -56,8 +47,8 @@ static PyObject * test_api_casts(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args)) { PyObject *obj = Py_BuildValue("(ii)", 1, 2); - if (obj == _Py_NULL) { - return _Py_NULL; + if (obj == nullptr) { + return nullptr; } Py_ssize_t refcnt = Py_REFCNT(obj); assert(refcnt >= 1); @@ -83,15 +74,6 @@ test_api_casts(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args)) Py_INCREF(strong_ref); Py_DECREF(strong_ref); - // gh-93442: Pass 0 as NULL for PyObject* - Py_XINCREF(0); - Py_XDECREF(0); -#if _cplusplus >= 201103 - // Test nullptr passed as PyObject* - Py_XINCREF(nullptr); - Py_XDECREF(nullptr); -#endif - Py_DECREF(obj); Py_RETURN_NONE; } @@ -101,8 +83,8 @@ static PyObject * test_unicode(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args)) { PyObject *str = PyUnicode_FromString("abc"); - if (str == _Py_NULL) { - return _Py_NULL; + if (str == nullptr) { + return nullptr; } assert(PyUnicode_Check(str)); @@ -110,7 +92,7 @@ test_unicode(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args)) // gh-92800: test PyUnicode_READ() const void* data = PyUnicode_DATA(str); - assert(data != _Py_NULL); + assert(data != nullptr); int kind = PyUnicode_KIND(str); assert(kind == PyUnicode_1BYTE_KIND); assert(PyUnicode_READ(kind, data, 0) == 'a'); @@ -126,81 +108,12 @@ test_unicode(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args)) Py_RETURN_NONE; } -/* Test a `new`-allocated object with a virtual method. - * (https://github.com/python/cpython/issues/94731) */ - -class VirtualPyObject : public PyObject { -public: - VirtualPyObject(); - virtual ~VirtualPyObject() { - delete [] internal_data; - --instance_count; - } - virtual void set_internal_data() { - internal_data[0] = 1; - } - static void dealloc(PyObject* o) { - delete static_cast<VirtualPyObject*>(o); - } - - // Number of "living" instances - static int instance_count; -private: - // buffer that can get corrupted - int* internal_data; -}; - -int VirtualPyObject::instance_count = 0; - -PyType_Slot VirtualPyObject_Slots[] = { - {Py_tp_free, (void*)VirtualPyObject::dealloc}, - {0, _Py_NULL}, -}; - -PyType_Spec VirtualPyObject_Spec = { - /* .name */ STR(NAME) ".VirtualPyObject", - /* .basicsize */ sizeof(VirtualPyObject), - /* .itemsize */ 0, - /* .flags */ Py_TPFLAGS_DEFAULT, - /* .slots */ VirtualPyObject_Slots, -}; - -VirtualPyObject::VirtualPyObject() { - // Create a temporary type (just so we don't need to store it) - PyObject *type = PyType_FromSpec(&VirtualPyObject_Spec); - // no good way to signal failure from a C++ constructor, so use assert - // for error handling - assert(type); - assert(PyObject_Init(this, (PyTypeObject *)type)); - Py_DECREF(type); - internal_data = new int[50]; - ++instance_count; -} - -static PyObject * -test_virtual_object(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args)) -{ - VirtualPyObject* obj = new VirtualPyObject(); - obj->set_internal_data(); - Py_DECREF(obj); - if (VirtualPyObject::instance_count != 0) { - return PyErr_Format( - PyExc_AssertionError, - "instance_count should be 0, got %d", - VirtualPyObject::instance_count); - } - Py_RETURN_NONE; -} static PyMethodDef _testcppext_methods[] = { {"add", _testcppext_add, METH_VARARGS, _testcppext_add_doc}, - {"test_api_casts", test_api_casts, METH_NOARGS, _Py_NULL}, - {"test_unicode", test_unicode, METH_NOARGS, _Py_NULL}, - {"test_virtual_object", test_virtual_object, METH_NOARGS, _Py_NULL}, - // Note: _testcppext_exec currently runs all test functions directly. - // When adding a new one, add a call there. - - {_Py_NULL, _Py_NULL, 0, _Py_NULL} /* sentinel */ + {"test_api_casts", test_api_casts, METH_NOARGS, nullptr}, + {"test_unicode", test_unicode, METH_NOARGS, nullptr}, + {nullptr, nullptr, 0, nullptr} /* sentinel */ }; @@ -210,27 +123,12 @@ _testcppext_exec(PyObject *module) if (PyModule_AddIntMacro(module, __cplusplus) < 0) { return -1; } - - PyObject *result; - - result = PyObject_CallMethod(module, "test_api_casts", ""); - if (!result) return -1; - Py_DECREF(result); - - result = PyObject_CallMethod(module, "test_unicode", ""); - if (!result) return -1; - Py_DECREF(result); - - result = PyObject_CallMethod(module, "test_virtual_object", ""); - if (!result) return -1; - Py_DECREF(result); - return 0; } static PyModuleDef_Slot _testcppext_slots[] = { {Py_mod_exec, reinterpret_cast<void*>(_testcppext_exec)}, - {0, _Py_NULL} + {0, nullptr} }; @@ -238,21 +136,18 @@ PyDoc_STRVAR(_testcppext_doc, "C++ test extension."); static struct PyModuleDef _testcppext_module = { PyModuleDef_HEAD_INIT, // m_base - STR(NAME), // m_name + "_testcppext", // m_name _testcppext_doc, // m_doc 0, // m_size _testcppext_methods, // m_methods _testcppext_slots, // m_slots - _Py_NULL, // m_traverse - _Py_NULL, // m_clear - _Py_NULL, // m_free + nullptr, // m_traverse + nullptr, // m_clear + nullptr, // m_free }; -#define _FUNC_NAME(NAME) PyInit_ ## NAME -#define FUNC_NAME(NAME) _FUNC_NAME(NAME) - PyMODINIT_FUNC -FUNC_NAME(NAME)(void) +PyInit__testcppext(void) { return PyModuleDef_Init(&_testcppext_module); } diff --git a/Lib/test/audiodata/pluck-pcm24-ext.wav b/Lib/test/audiodata/pluck-pcm24-ext.wav deleted file mode 100644 index e4c2d133597d85079671147e52bacffef232995d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19922 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 Q)*8Hv*qfH;RsUcA1BAud=l}o! diff --git a/Lib/test/audit-tests.py b/Lib/test/audit-tests.py index 66c08f7f2ff8d5..ccec9fedc4460d 100644 --- a/Lib/test/audit-tests.py +++ b/Lib/test/audit-tests.py @@ -408,28 +408,6 @@ def hook(event, *args): raise RuntimeError("Expected sqlite3.load_extension to fail") -def test_sys_getframe(): - import sys - - def hook(event, args): - if event.startswith("sys."): - print(event, args[0].f_code.co_name) - - sys.addaudithook(hook) - sys._getframe() - - -def test_wmi_exec_query(): - import _wmi - - def hook(event, args): - if event.startswith("_wmi."): - print(event, args[0]) - - sys.addaudithook(hook) - _wmi.exec_query("SELECT * FROM Win32_OperatingSystem") - - if __name__ == "__main__": from test.support import suppress_msvcrt_asserts diff --git a/Lib/test/clinic.test b/Lib/test/clinic.test index c73a75b163fa37..94322f6d61771d 100644 --- a/Lib/test/clinic.test +++ b/Lib/test/clinic.test @@ -1930,31 +1930,8 @@ static PyObject * test_keywords(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(a), &_Py_ID(b), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"a", "b", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "test_keywords", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "test_keywords", 0}; PyObject *argsbuf[2]; PyObject *a; PyObject *b; @@ -1973,7 +1950,7 @@ exit: static PyObject * test_keywords_impl(PyObject *module, PyObject *a, PyObject *b) -/*[clinic end generated code: output=73d46a9ae3320f96 input=0d3484844749c05b]*/ +/*[clinic end generated code: output=c03a52cfca192d3b input=0d3484844749c05b]*/ /*[clinic input] @@ -2000,31 +1977,8 @@ static PyObject * test_keywords_kwonly(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(a), &_Py_ID(b), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"a", "b", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "test_keywords_kwonly", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "test_keywords_kwonly", 0}; PyObject *argsbuf[2]; PyObject *a; PyObject *b; @@ -2043,7 +1997,7 @@ exit: static PyObject * test_keywords_kwonly_impl(PyObject *module, PyObject *a, PyObject *b) -/*[clinic end generated code: output=c9f02a41f425897d input=384adc78bfa0bff7]*/ +/*[clinic end generated code: output=4704adcb6c7df928 input=384adc78bfa0bff7]*/ /*[clinic input] @@ -2071,31 +2025,8 @@ static PyObject * test_keywords_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(a), &_Py_ID(b), &_Py_ID(c), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"a", "b", "c", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "test_keywords_opt", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "test_keywords_opt", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *a; @@ -2127,7 +2058,7 @@ exit: static PyObject * test_keywords_opt_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c) -/*[clinic end generated code: output=b35d4e66f7283e46 input=eda7964f784f4607]*/ +/*[clinic end generated code: output=de3ee1039da35fa1 input=eda7964f784f4607]*/ /*[clinic input] @@ -2157,31 +2088,8 @@ static PyObject * test_keywords_opt_kwonly(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 4 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(a), &_Py_ID(b), &_Py_ID(c), &_Py_ID(d), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"a", "b", "c", "d", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "test_keywords_opt_kwonly", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "test_keywords_opt_kwonly", 0}; PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *a; @@ -2224,7 +2132,7 @@ exit: static PyObject * test_keywords_opt_kwonly_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c, PyObject *d) -/*[clinic end generated code: output=ede7e6e65106bf2b input=209387a4815e5082]*/ +/*[clinic end generated code: output=996394678586854e input=209387a4815e5082]*/ /*[clinic input] @@ -2253,31 +2161,8 @@ static PyObject * test_keywords_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(a), &_Py_ID(b), &_Py_ID(c), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"a", "b", "c", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "test_keywords_kwonly_opt", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "test_keywords_kwonly_opt", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *a; @@ -2309,7 +2194,7 @@ exit: static PyObject * test_keywords_kwonly_opt_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c) -/*[clinic end generated code: output=36d4df939a4c3eef input=18393cc64fa000f4]*/ +/*[clinic end generated code: output=4ea9947a903a2f24 input=18393cc64fa000f4]*/ /*[clinic input] @@ -2336,31 +2221,8 @@ static PyObject * test_posonly_keywords(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(b), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "b", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "test_posonly_keywords", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "test_posonly_keywords", 0}; PyObject *argsbuf[2]; PyObject *a; PyObject *b; @@ -2379,7 +2241,7 @@ exit: static PyObject * test_posonly_keywords_impl(PyObject *module, PyObject *a, PyObject *b) -/*[clinic end generated code: output=4835f4b6cf386c28 input=1767b0ebdf06060e]*/ +/*[clinic end generated code: output=478aad346a188a80 input=1767b0ebdf06060e]*/ /*[clinic input] @@ -2407,31 +2269,8 @@ static PyObject * test_posonly_kwonly(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(c), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "c", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "test_posonly_kwonly", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "test_posonly_kwonly", 0}; PyObject *argsbuf[2]; PyObject *a; PyObject *c; @@ -2450,7 +2289,7 @@ exit: static PyObject * test_posonly_kwonly_impl(PyObject *module, PyObject *a, PyObject *c) -/*[clinic end generated code: output=2570ea156a8d3cb5 input=9042f2818f664839]*/ +/*[clinic end generated code: output=d747975a0b28e9c2 input=9042f2818f664839]*/ /*[clinic input] @@ -2480,31 +2319,8 @@ static PyObject * test_posonly_keywords_kwonly(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(b), &_Py_ID(c), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "b", "c", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "test_posonly_keywords_kwonly", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "test_posonly_keywords_kwonly", 0}; PyObject *argsbuf[3]; PyObject *a; PyObject *b; @@ -2526,7 +2342,7 @@ exit: static PyObject * test_posonly_keywords_kwonly_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c) -/*[clinic end generated code: output=aaa0e6b5ce02900d input=29546ebdca492fea]*/ +/*[clinic end generated code: output=5b99f692f8ddaa4a input=29546ebdca492fea]*/ /*[clinic input] @@ -2556,31 +2372,8 @@ static PyObject * test_posonly_keywords_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(b), &_Py_ID(c), &_Py_ID(d), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "b", "c", "d", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "test_posonly_keywords_opt", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "test_posonly_keywords_opt", 0}; PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; PyObject *a; @@ -2614,7 +2407,7 @@ exit: static PyObject * test_posonly_keywords_opt_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c, PyObject *d) -/*[clinic end generated code: output=1d9f2d8420d0a85f input=cdf5a9625e554e9b]*/ +/*[clinic end generated code: output=fd5dfbac5727aebb input=cdf5a9625e554e9b]*/ /*[clinic input] @@ -2643,31 +2436,8 @@ static PyObject * test_posonly_keywords_opt2(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(b), &_Py_ID(c), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "b", "c", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "test_posonly_keywords_opt2", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "test_posonly_keywords_opt2", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *a; @@ -2699,7 +2469,7 @@ exit: static PyObject * test_posonly_keywords_opt2_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c) -/*[clinic end generated code: output=a83caa0505b296cf input=1581299d21d16f14]*/ +/*[clinic end generated code: output=777f58ac70775420 input=1581299d21d16f14]*/ /*[clinic input] @@ -2729,31 +2499,8 @@ static PyObject * test_posonly_opt_keywords_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(c), &_Py_ID(d), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "", "c", "d", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "test_posonly_opt_keywords_opt", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "test_posonly_opt_keywords_opt", 0}; PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *a; @@ -2792,7 +2539,7 @@ exit: static PyObject * test_posonly_opt_keywords_opt_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c, PyObject *d) -/*[clinic end generated code: output=0b24fba3dc04d26b input=408798ec3d42949f]*/ +/*[clinic end generated code: output=2c18b8edff78ed22 input=408798ec3d42949f]*/ /*[clinic input] @@ -2823,31 +2570,8 @@ static PyObject * test_posonly_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(b), &_Py_ID(c), &_Py_ID(d), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "b", "c", "d", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "test_posonly_kwonly_opt", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "test_posonly_kwonly_opt", 0}; PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; PyObject *a; @@ -2881,7 +2605,7 @@ exit: static PyObject * test_posonly_kwonly_opt_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c, PyObject *d) -/*[clinic end generated code: output=592b217bca2f7bcc input=8d8e5643bbbc2309]*/ +/*[clinic end generated code: output=8db9ab5602e1efaf input=8d8e5643bbbc2309]*/ /*[clinic input] @@ -2911,31 +2635,8 @@ static PyObject * test_posonly_kwonly_opt2(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(b), &_Py_ID(c), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "b", "c", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "test_posonly_kwonly_opt2", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "test_posonly_kwonly_opt2", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *a; @@ -2967,7 +2668,7 @@ exit: static PyObject * test_posonly_kwonly_opt2_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c) -/*[clinic end generated code: output=b8b00420826bc11f input=f7e5eed94f75fff0]*/ +/*[clinic end generated code: output=6cfe546265d85d2c input=f7e5eed94f75fff0]*/ /*[clinic input] @@ -2998,31 +2699,8 @@ static PyObject * test_posonly_opt_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(c), &_Py_ID(d), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "", "c", "d", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "test_posonly_opt_kwonly_opt", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "test_posonly_opt_kwonly_opt", 0}; PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *a; @@ -3061,7 +2739,7 @@ exit: static PyObject * test_posonly_opt_kwonly_opt_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c, PyObject *d) -/*[clinic end generated code: output=3b9ee879ebee285a input=1e557dc979d120fd]*/ +/*[clinic end generated code: output=8b5e21a30cad22b7 input=1e557dc979d120fd]*/ /*[clinic input] @@ -3094,31 +2772,8 @@ static PyObject * test_posonly_keywords_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 4 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(b), &_Py_ID(c), &_Py_ID(d), &_Py_ID(e), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "b", "c", "d", "e", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "test_posonly_keywords_kwonly_opt", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "test_posonly_keywords_kwonly_opt", 0}; PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3; PyObject *a; @@ -3155,7 +2810,7 @@ static PyObject * test_posonly_keywords_kwonly_opt_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c, PyObject *d, PyObject *e) -/*[clinic end generated code: output=d380f84f81cc0e45 input=c3884a4f956fdc89]*/ +/*[clinic end generated code: output=950b9ace38b8b4a7 input=c3884a4f956fdc89]*/ /*[clinic input] @@ -3186,31 +2841,8 @@ static PyObject * test_posonly_keywords_kwonly_opt2(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(b), &_Py_ID(c), &_Py_ID(d), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "b", "c", "d", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "test_posonly_keywords_kwonly_opt2", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "test_posonly_keywords_kwonly_opt2", 0}; PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; PyObject *a; @@ -3244,7 +2876,7 @@ exit: static PyObject * test_posonly_keywords_kwonly_opt2_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c, PyObject *d) -/*[clinic end generated code: output=ee629e962cb06992 input=68d01d7c0f6dafb0]*/ +/*[clinic end generated code: output=fb6951a21b517317 input=68d01d7c0f6dafb0]*/ /*[clinic input] @@ -3278,31 +2910,8 @@ static PyObject * test_posonly_keywords_opt_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 4 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(b), &_Py_ID(c), &_Py_ID(d), &_Py_ID(e), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "b", "c", "d", "e", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "test_posonly_keywords_opt_kwonly_opt", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "test_posonly_keywords_opt_kwonly_opt", 0}; PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; PyObject *a; @@ -3348,7 +2957,7 @@ static PyObject * test_posonly_keywords_opt_kwonly_opt_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c, PyObject *d, PyObject *e) -/*[clinic end generated code: output=a2721babb42ecfd1 input=d0883d45876f186c]*/ +/*[clinic end generated code: output=4db10815a99a857e input=d0883d45876f186c]*/ /*[clinic input] @@ -3382,31 +2991,8 @@ static PyObject * test_posonly_keywords_opt2_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 4 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(b), &_Py_ID(c), &_Py_ID(d), &_Py_ID(e), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "b", "c", "d", "e", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "test_posonly_keywords_opt2_kwonly_opt", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "test_posonly_keywords_opt2_kwonly_opt", 0}; PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *a; @@ -3457,7 +3043,7 @@ static PyObject * test_posonly_keywords_opt2_kwonly_opt_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c, PyObject *d, PyObject *e) -/*[clinic end generated code: output=0626203eedb6e7e8 input=c95e2e1ec93035ad]*/ +/*[clinic end generated code: output=0416689b23ebf66e input=c95e2e1ec93035ad]*/ /*[clinic input] @@ -3493,31 +3079,8 @@ static PyObject * test_posonly_opt_keywords_opt_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 4 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(c), &_Py_ID(d), &_Py_ID(e), &_Py_ID(f), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "", "c", "d", "e", "f", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "test_posonly_opt_keywords_opt_kwonly_opt", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "test_posonly_opt_keywords_opt_kwonly_opt", 0}; PyObject *argsbuf[6]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *a; @@ -3576,7 +3139,7 @@ test_posonly_opt_keywords_opt_kwonly_opt_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c, PyObject *d, PyObject *e, PyObject *f) -/*[clinic end generated code: output=07d8acc04558a5a0 input=9914857713c5bbf8]*/ +/*[clinic end generated code: output=8892a137a8c8f46f input=9914857713c5bbf8]*/ /*[clinic input] test_keyword_only_parameter @@ -3602,31 +3165,8 @@ static PyObject * test_keyword_only_parameter(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(co_lnotab), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"co_lnotab", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "test_keyword_only_parameter", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "test_keyword_only_parameter", 0}; PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyBytesObject *co_lnotab = (PyBytesObject *)self->co_lnotab; @@ -3652,7 +3192,7 @@ exit: static PyObject * test_keyword_only_parameter_impl(PyObject *module, PyBytesObject *co_lnotab) -/*[clinic end generated code: output=b12fe2e515a62603 input=303df5046c7e37a3]*/ +/*[clinic end generated code: output=332b5f4b444c5d55 input=303df5046c7e37a3]*/ /*[clinic input] @@ -3830,31 +3370,8 @@ static PyObject * test_vararg(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(a), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"a", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "test_vararg", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "test_vararg", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = 0 + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *a; @@ -3875,7 +3392,7 @@ exit: static PyObject * test_vararg_impl(PyObject *module, PyObject *a, PyObject *args) -/*[clinic end generated code: output=6661f3ca97d85e8c input=81d33815ad1bae6e]*/ +/*[clinic end generated code: output=a2baf8c1fade41d2 input=81d33815ad1bae6e]*/ /*[clinic input] test_vararg_with_default @@ -3903,31 +3420,8 @@ static PyObject * test_vararg_with_default(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(a), &_Py_ID(b), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"a", "b", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "test_vararg_with_default", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "test_vararg_with_default", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = 0 + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *a; @@ -3958,7 +3452,7 @@ exit: static PyObject * test_vararg_with_default_impl(PyObject *module, PyObject *a, PyObject *args, int b) -/*[clinic end generated code: output=5fe3cfccb1bef781 input=6e110b54acd9b22d]*/ +/*[clinic end generated code: output=3821d282c29f8616 input=6e110b54acd9b22d]*/ /*[clinic input] test_vararg_with_only_defaults @@ -3986,31 +3480,8 @@ static PyObject * test_vararg_with_only_defaults(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(b), &_Py_ID(c), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"b", "c", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "test_vararg_with_only_defaults", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "test_vararg_with_only_defaults", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = 0 + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *__clinic_args = NULL; @@ -4046,68 +3517,4 @@ exit: static PyObject * test_vararg_with_only_defaults_impl(PyObject *module, PyObject *args, int b, PyObject *c) -/*[clinic end generated code: output=dd21b28f0db26a4b input=fa56a709a035666e]*/ - -/*[clinic input] -test_paramname_module - - module as mod: object -[clinic start generated code]*/ - -PyDoc_STRVAR(test_paramname_module__doc__, -"test_paramname_module($module, /, module)\n" -"--\n" -"\n"); - -#define TEST_PARAMNAME_MODULE_METHODDEF \ - {"test_paramname_module", _PyCFunction_CAST(test_paramname_module), METH_FASTCALL|METH_KEYWORDS, test_paramname_module__doc__}, - -static PyObject * -test_paramname_module_impl(PyObject *module, PyObject *mod); - -static PyObject * -test_paramname_module(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) -{ - PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(module), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - - static const char * const _keywords[] = {"module", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "test_paramname_module", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE - PyObject *argsbuf[1]; - PyObject *mod; - - args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf); - if (!args) { - goto exit; - } - mod = args[0]; - return_value = test_paramname_module_impl(module, mod); - -exit: - return return_value; -} - -static PyObject * -test_paramname_module_impl(PyObject *module, PyObject *mod) -/*[clinic end generated code: output=4a2a849ecbcc8b53 input=afefe259667f13ba]*/ +/*[clinic end generated code: output=7e393689e6ce61a3 input=fa56a709a035666e]*/ diff --git a/Lib/test/crashers/infinite_loop_re.py b/Lib/test/crashers/infinite_loop_re.py index c84f28d601f865..9aecc568d91fe0 100644 --- a/Lib/test/crashers/infinite_loop_re.py +++ b/Lib/test/crashers/infinite_loop_re.py @@ -1,5 +1,5 @@ -# This was taken from https://bugs.python.org/issue1541697 +# This was taken from http://python.org/sf/1541697 # It's not technically a crasher. It may not even truly be infinite, # however, I haven't waited a long time to see the result. It takes # 100% of CPU while running this and should be fixed. diff --git a/Lib/test/datetimetester.py b/Lib/test/datetimetester.py index bba96698e9e2eb..8e4bcc7c9efdca 100644 --- a/Lib/test/datetimetester.py +++ b/Lib/test/datetimetester.py @@ -1,12 +1,13 @@ """Test date/time type. -See https://www.zope.dev/Members/fdrake/DateTimeWiki/TestCases +See http://www.zope.org/Members/fdrake/DateTimeWiki/TestCases """ import io import itertools import bisect import copy import decimal +import functools import sys import os import pickle @@ -1463,8 +1464,8 @@ def test_strftime(self): # test that unicode input is allowed (issue 2782) self.assertEqual(t.strftime("%m"), "03") - # A naive object replaces %z, %:z and %Z w/ empty strings. - self.assertEqual(t.strftime("'%z' '%:z' '%Z'"), "'' '' ''") + # A naive object replaces %z and %Z w/ empty strings. + self.assertEqual(t.strftime("'%z' '%Z'"), "'' ''") #make sure that invalid format specifiers are handled correctly #self.assertRaises(ValueError, t.strftime, "%e") @@ -1528,7 +1529,7 @@ def strftime(self, format_spec): for fmt in ["m:%m d:%d y:%y", "m:%m d:%d y:%y H:%H M:%M S:%S", - "%z %:z %Z", + "%z %Z", ]: self.assertEqual(dt.__format__(fmt), dt.strftime(fmt)) self.assertEqual(a.__format__(fmt), dt.strftime(fmt)) @@ -2134,7 +2135,7 @@ def strftime(self, format_spec): for fmt in ["m:%m d:%d y:%y", "m:%m d:%d y:%y H:%H M:%M S:%S", - "%z %:z %Z", + "%z %Z", ]: self.assertEqual(dt.__format__(fmt), dt.strftime(fmt)) self.assertEqual(a.__format__(fmt), dt.strftime(fmt)) @@ -2777,7 +2778,6 @@ def test_more_strftime(self): tz = timezone(-timedelta(hours=2, seconds=s, microseconds=us)) t = t.replace(tzinfo=tz) self.assertEqual(t.strftime("%z"), "-0200" + z) - self.assertEqual(t.strftime("%:z"), "-02:00:" + z) # bpo-34482: Check that surrogates don't cause a crash. try: @@ -3516,8 +3516,8 @@ def test_1653736(self): def test_strftime(self): t = self.theclass(1, 2, 3, 4) self.assertEqual(t.strftime('%H %M %S %f'), "01 02 03 000004") - # A naive object replaces %z, %:z and %Z with empty strings. - self.assertEqual(t.strftime("'%z' '%:z' '%Z'"), "'' '' ''") + # A naive object replaces %z and %Z with empty strings. + self.assertEqual(t.strftime("'%z' '%Z'"), "'' ''") # bpo-34482: Check that surrogates don't cause a crash. try: @@ -3935,10 +3935,10 @@ def test_zones(self): self.assertEqual(repr(t4), d + "(0, 0, 0, 40)") self.assertEqual(repr(t5), d + "(0, 0, 0, 40, tzinfo=utc)") - self.assertEqual(t1.strftime("%H:%M:%S %%Z=%Z %%z=%z %%:z=%:z"), - "07:47:00 %Z=EST %z=-0500 %:z=-05:00") - self.assertEqual(t2.strftime("%H:%M:%S %Z %z %:z"), "12:47:00 UTC +0000 +00:00") - self.assertEqual(t3.strftime("%H:%M:%S %Z %z %:z"), "13:47:00 MET +0100 +01:00") + self.assertEqual(t1.strftime("%H:%M:%S %%Z=%Z %%z=%z"), + "07:47:00 %Z=EST %z=-0500") + self.assertEqual(t2.strftime("%H:%M:%S %Z %z"), "12:47:00 UTC +0000") + self.assertEqual(t3.strftime("%H:%M:%S %Z %z"), "13:47:00 MET +0100") yuck = FixedOffset(-1439, "%z %Z %%z%%Z") t1 = time(23, 59, tzinfo=yuck) diff --git a/Lib/test/fork_wait.py b/Lib/test/fork_wait.py index ebd07e612e5810..4d3dbd8e83f5a9 100644 --- a/Lib/test/fork_wait.py +++ b/Lib/test/fork_wait.py @@ -54,8 +54,10 @@ def test_wait(self): self.threads.append(thread) # busy-loop to wait for threads - for _ in support.sleeping_retry(support.SHORT_TIMEOUT): - if len(self.alive) >= NUM_THREADS: + deadline = time.monotonic() + support.SHORT_TIMEOUT + while len(self.alive) < NUM_THREADS: + time.sleep(0.1) + if deadline < time.monotonic(): break a = sorted(self.alive.keys()) diff --git a/Lib/test/leakers/test_ctypes.py b/Lib/test/leakers/test_ctypes.py index ec09ac36996b0c..7d7e9ff3a11129 100644 --- a/Lib/test/leakers/test_ctypes.py +++ b/Lib/test/leakers/test_ctypes.py @@ -1,5 +1,5 @@ -# Taken from Lib/test/test_ctypes/test_keeprefs.py, PointerToStructure.test(). +# Taken from Lib/ctypes/test/test_keeprefs.py, PointerToStructure.test(). from ctypes import Structure, c_int, POINTER import gc diff --git a/Lib/test/libregrtest/cmdline.py b/Lib/test/libregrtest/cmdline.py index ebe57920d9185c..1ac63af734c412 100644 --- a/Lib/test/libregrtest/cmdline.py +++ b/Lib/test/libregrtest/cmdline.py @@ -1,6 +1,5 @@ import argparse import os -import shlex import sys from test.support import os_helper @@ -373,11 +372,8 @@ def _parse_args(args, **kwargs): parser.error("-s and -f don't go together!") if ns.use_mp is not None and ns.trace: parser.error("-T and -j don't go together!") - if ns.python is not None: - if ns.use_mp is None: - parser.error("-p requires -j!") - # The "executable" may be two or more parts, e.g. "node python.js" - ns.python = shlex.split(ns.python) + if ns.python is not None and ns.use_mp is None: + parser.error("-p requires -j!") if ns.failfast and not (ns.verbose or ns.verbose3): parser.error("-G/--failfast needs either -v or -W") if ns.pgo and (ns.verbose or ns.verbose2 or ns.verbose3): diff --git a/Lib/test/libregrtest/main.py b/Lib/test/libregrtest/main.py index 655e4d2e56f8f0..0cacccfc0b5e39 100644 --- a/Lib/test/libregrtest/main.py +++ b/Lib/test/libregrtest/main.py @@ -306,22 +306,13 @@ def list_cases(self): printlist(self.skipped, file=sys.stderr) def rerun_failed_tests(self): - self.log() - - if self.ns.python: - # Temp patch for https://github.com/python/cpython/issues/94052 - self.log( - "Re-running failed tests is not supported with --python " - "host runner option." - ) - return - self.ns.verbose = True self.ns.failfast = False self.ns.verbose3 = False self.first_result = self.get_tests_result() + self.log() self.log("Re-running failed tests in verbose mode") rerun_list = list(self.need_rerun) self.need_rerun.clear() @@ -609,16 +600,6 @@ def save_xml_result(self): for s in ET.tostringlist(root): f.write(s) - def fix_umask(self): - if support.is_emscripten: - # Emscripten has default umask 0o777, which breaks some tests. - # see https://github.com/emscripten-core/emscripten/issues/17269 - old_mask = os.umask(0) - if old_mask == 0o777: - os.umask(0o027) - else: - os.umask(old_mask) - def set_temp_dir(self): if self.ns.tempdir: self.tmp_dir = self.ns.tempdir @@ -647,16 +628,11 @@ def create_temp_dir(self): # Define a writable temp dir that will be used as cwd while running # the tests. The name of the dir includes the pid to allow parallel # testing (see the -j option). - # Emscripten and WASI have stubbed getpid(), Emscripten has only - # milisecond clock resolution. Use randint() instead. - if sys.platform in {"emscripten", "wasi"}: - nounce = random.randint(0, 1_000_000) - else: - nounce = os.getpid() + pid = os.getpid() if self.worker_test_name is not None: - test_cwd = 'test_python_worker_{}'.format(nounce) + test_cwd = 'test_python_worker_{}'.format(pid) else: - test_cwd = 'test_python_{}'.format(nounce) + test_cwd = 'test_python_{}'.format(pid) test_cwd += os_helper.FS_NONASCII test_cwd = os.path.join(self.tmp_dir, test_cwd) return test_cwd @@ -679,8 +655,6 @@ def main(self, tests=None, **kwargs): self.set_temp_dir() - self.fix_umask() - if self.ns.cleanup: self.cleanup() sys.exit(0) diff --git a/Lib/test/libregrtest/runtest.py b/Lib/test/libregrtest/runtest.py index e9bb72a7d77ee1..62cf1a3f1175ee 100644 --- a/Lib/test/libregrtest/runtest.py +++ b/Lib/test/libregrtest/runtest.py @@ -80,11 +80,6 @@ class EnvChanged(Failed): def __str__(self) -> str: return f"{self.name} failed (env changed)" - # Convert Passed to EnvChanged - @staticmethod - def from_passed(other): - return EnvChanged(other.name, other.duration_sec, other.xml_data) - class RefLeak(Failed): def __str__(self) -> str: diff --git a/Lib/test/libregrtest/runtest_mp.py b/Lib/test/libregrtest/runtest_mp.py index a4d3e5c3146a8c..39fab5566a089a 100644 --- a/Lib/test/libregrtest/runtest_mp.py +++ b/Lib/test/libregrtest/runtest_mp.py @@ -1,15 +1,15 @@ import faulthandler import json -import os.path +import os import queue +import shlex import signal import subprocess import sys -import tempfile import threading import time import traceback -from typing import NamedTuple, NoReturn, Literal, Any, TextIO +from typing import NamedTuple, NoReturn, Literal, Any from test import support from test.support import os_helper @@ -17,8 +17,7 @@ from test.libregrtest.cmdline import Namespace from test.libregrtest.main import Regrtest from test.libregrtest.runtest import ( - runtest, is_failed, TestResult, Interrupted, Timeout, ChildError, - PROGRESS_MIN_TIME, Passed, EnvChanged) + runtest, is_failed, TestResult, Interrupted, Timeout, ChildError, PROGRESS_MIN_TIME) from test.libregrtest.setup import setup_tests from test.libregrtest.utils import format_duration, print_warning @@ -53,12 +52,13 @@ def parse_worker_args(worker_args) -> tuple[Namespace, str]: return (ns, test_name) -def run_test_in_subprocess(testname: str, ns: Namespace, tmp_dir: str, stdout_fh: TextIO) -> subprocess.Popen: +def run_test_in_subprocess(testname: str, ns: Namespace) -> subprocess.Popen: ns_dict = vars(ns) worker_args = (ns_dict, testname) worker_args = json.dumps(worker_args) if ns.python is not None: - executable = ns.python + # The "executable" may be two or more parts, e.g. "node python.js" + executable = shlex.split(ns.python) else: executable = [sys.executable] cmd = [*executable, *support.args_from_interpreter_flags(), @@ -66,27 +66,21 @@ def run_test_in_subprocess(testname: str, ns: Namespace, tmp_dir: str, stdout_fh '-m', 'test.regrtest', '--worker-args', worker_args] - env = dict(os.environ) - if tmp_dir is not None: - env['TMPDIR'] = tmp_dir - env['TEMP'] = tmp_dir - env['TMP'] = tmp_dir - # Running the child from the same working directory as regrtest's original # invocation ensures that TEMPDIR for the child is the same when # sysconfig.is_python_build() is true. See issue 15300. - kw = dict( - env=env, - stdout=stdout_fh, - # bpo-45410: Write stderr into stdout to keep messages order - stderr=stdout_fh, - text=True, - close_fds=(os.name != 'nt'), - cwd=os_helper.SAVEDCWD, - ) + kw = {} if USE_PROCESS_GROUP: kw['start_new_session'] = True - return subprocess.Popen(cmd, **kw) + return subprocess.Popen(cmd, + stdout=subprocess.PIPE, + # bpo-45410: Write stderr into stdout to keep + # messages order + stderr=subprocess.STDOUT, + universal_newlines=True, + close_fds=(os.name != 'nt'), + cwd=os_helper.SAVEDCWD, + **kw) def run_tests_worker(ns: Namespace, test_name: str) -> NoReturn: @@ -212,12 +206,12 @@ def mp_result_error( test_result.duration_sec = time.monotonic() - self.start_time return MultiprocessResult(test_result, stdout, err_msg) - def _run_process(self, test_name: str, tmp_dir: str, stdout_fh: TextIO) -> int: + def _run_process(self, test_name: str) -> tuple[int, str, str]: self.start_time = time.monotonic() self.current_test_name = test_name try: - popen = run_test_in_subprocess(test_name, self.ns, tmp_dir, stdout_fh) + popen = run_test_in_subprocess(test_name, self.ns) self._killed = False self._popen = popen @@ -234,10 +228,10 @@ def _run_process(self, test_name: str, tmp_dir: str, stdout_fh: TextIO) -> int: raise ExitThread try: - # gh-94026: stdout+stderr are written to tempfile - retcode = popen.wait(timeout=self.timeout) + # bpo-45410: stderr is written into stdout + stdout, _ = popen.communicate(timeout=self.timeout) + retcode = popen.returncode assert retcode is not None - return retcode except subprocess.TimeoutExpired: if self._stopped: # kill() has been called: communicate() fails on reading @@ -252,12 +246,17 @@ def _run_process(self, test_name: str, tmp_dir: str, stdout_fh: TextIO) -> int: # bpo-38207: Don't attempt to call communicate() again: on it # can hang until all child processes using stdout # pipes completes. + stdout = '' except OSError: if self._stopped: # kill() has been called: communicate() fails # on reading closed stdout raise ExitThread raise + else: + stdout = stdout.strip() + + return (retcode, stdout) except: self._kill() raise @@ -267,30 +266,7 @@ def _run_process(self, test_name: str, tmp_dir: str, stdout_fh: TextIO) -> int: self.current_test_name = None def _runtest(self, test_name: str) -> MultiprocessResult: - # gh-94026: Write stdout+stderr to a tempfile as workaround for - # non-blocking pipes on Emscripten with NodeJS. - with tempfile.TemporaryFile( - 'w+', encoding=sys.stdout.encoding - ) as stdout_fh: - # gh-93353: Check for leaked temporary files in the parent process, - # since the deletion of temporary files can happen late during - # Python finalization: too late for libregrtest. - if not support.is_wasi: - # Don't check for leaked temporary files and directories if Python is - # run on WASI. WASI don't pass environment variables like TMPDIR to - # worker processes. - tmp_dir = tempfile.mkdtemp(prefix="test_python_") - tmp_dir = os.path.abspath(tmp_dir) - try: - retcode = self._run_process(test_name, tmp_dir, stdout_fh) - finally: - tmp_files = os.listdir(tmp_dir) - os_helper.rmtree(tmp_dir) - else: - retcode = self._run_process(test_name, None, stdout_fh) - tmp_files = () - stdout_fh.seek(0) - stdout = stdout_fh.read().strip() + retcode, stdout = self._run_process(test_name) if retcode is None: return self.mp_result_error(Timeout(test_name), stdout) @@ -313,14 +289,6 @@ def _runtest(self, test_name: str) -> MultiprocessResult: if err_msg is not None: return self.mp_result_error(ChildError(test_name), stdout, err_msg) - if tmp_files: - msg = (f'\n\n' - f'Warning -- {test_name} leaked temporary files ' - f'({len(tmp_files)}): {", ".join(sorted(tmp_files))}') - stdout += msg - if isinstance(result, Passed): - result = EnvChanged.from_passed(result) - return MultiprocessResult(result, stdout, err_msg) def run(self) -> None: @@ -345,6 +313,9 @@ def run(self) -> None: def _wait_completed(self) -> None: popen = self._popen + # stdout must be closed to ensure that communicate() does not hang + popen.stdout.close() + try: popen.wait(JOIN_TIMEOUT) except (subprocess.TimeoutExpired, OSError) as exc: diff --git a/Lib/test/libregrtest/setup.py b/Lib/test/libregrtest/setup.py index b76bece7ca08b5..cfc1b82d2785cb 100644 --- a/Lib/test/libregrtest/setup.py +++ b/Lib/test/libregrtest/setup.py @@ -141,7 +141,7 @@ def _adjust_resource_limits(): """Adjust the system resource limits (ulimit) if needed.""" try: import resource - from resource import RLIMIT_NOFILE + from resource import RLIMIT_NOFILE, RLIM_INFINITY except ImportError: return fd_limit, max_fds = resource.getrlimit(RLIMIT_NOFILE) @@ -157,3 +157,4 @@ def _adjust_resource_limits(): except (ValueError, OSError) as err: print(f"Unable to raise RLIMIT_NOFILE from {fd_limit} to " f"{new_fd_limit}: {err}.") + diff --git a/Lib/test/libregrtest/utils.py b/Lib/test/libregrtest/utils.py index 332dcc4c6db247..8578a028c78bc2 100644 --- a/Lib/test/libregrtest/utils.py +++ b/Lib/test/libregrtest/utils.py @@ -210,10 +210,3 @@ def clear_caches(): else: for f in typing._cleanups: f() - - try: - fractions = sys.modules['fractions'] - except KeyError: - pass - else: - fractions._hash_algorithm.cache_clear() diff --git a/Lib/test/list_tests.py b/Lib/test/list_tests.py index fe3ee80b8d461f..f7eea88c54a6ae 100644 --- a/Lib/test/list_tests.py +++ b/Lib/test/list_tests.py @@ -3,9 +3,10 @@ """ import sys +import os from functools import cmp_to_key -from test import seq_tests +from test import support, seq_tests from test.support import ALWAYS_EQ, NEVER_EQ diff --git a/Lib/test/lock_tests.py b/Lib/test/lock_tests.py index a4f52cb20ad301..f16c7ed952cf55 100644 --- a/Lib/test/lock_tests.py +++ b/Lib/test/lock_tests.py @@ -2,6 +2,7 @@ Various tests for synchronization primitives. """ +import os import gc import sys import time diff --git a/Lib/test/mock_socket.py b/Lib/test/mock_socket.py index b85b955d7f6654..c7abddcf5fafd3 100644 --- a/Lib/test/mock_socket.py +++ b/Lib/test/mock_socket.py @@ -1,4 +1,4 @@ -"""Mock socket module used by the smtplib tests. +"""Mock socket module used by the smtpd and smtplib tests. """ # imported for _GLOBAL_DEFAULT_TIMEOUT @@ -33,7 +33,7 @@ def close(self): class MockSocket: - """Mock socket object used by the smtplib tests. + """Mock socket object used by smtpd and smtplib tests. """ def __init__(self, family=None): global _reply_data diff --git a/Lib/test/pickletester.py b/Lib/test/pickletester.py index 21419e11c87497..d0ea7d0e55e7d5 100644 --- a/Lib/test/pickletester.py +++ b/Lib/test/pickletester.py @@ -3035,67 +3035,6 @@ def check_array(arr): # 2-D, non-contiguous check_array(arr[::2]) - def test_evil_class_mutating_dict(self): - # https://github.com/python/cpython/issues/92930 - from random import getrandbits - - global Bad - class Bad: - def __eq__(self, other): - return ENABLED - def __hash__(self): - return 42 - def __reduce__(self): - if getrandbits(6) == 0: - collection.clear() - return (Bad, ()) - - for proto in protocols: - for _ in range(20): - ENABLED = False - collection = {Bad(): Bad() for _ in range(20)} - for bad in collection: - bad.bad = bad - bad.collection = collection - ENABLED = True - try: - data = self.dumps(collection, proto) - self.loads(data) - except RuntimeError as e: - expected = "changed size during iteration" - self.assertIn(expected, str(e)) - - def test_evil_pickler_mutating_collection(self): - # https://github.com/python/cpython/issues/92930 - if not hasattr(self, "pickler"): - raise self.skipTest(f"{type(self)} has no associated pickler type") - - global Clearer - class Clearer: - pass - - def check(collection): - class EvilPickler(self.pickler): - def persistent_id(self, obj): - if isinstance(obj, Clearer): - collection.clear() - return None - pickler = EvilPickler(io.BytesIO(), proto) - try: - pickler.dump(collection) - except RuntimeError as e: - expected = "changed size during iteration" - self.assertIn(expected, str(e)) - - for proto in protocols: - check([Clearer()]) - check([Clearer(), Clearer()]) - check({Clearer()}) - check({Clearer(), Clearer()}) - check({Clearer(): 1}) - check({Clearer(): 1, Clearer(): 2}) - check({1: Clearer(), 2: Clearer()}) - class BigmemPickleTests: diff --git a/Lib/test/pythoninfo.py b/Lib/test/pythoninfo.py index adc211b3e2169c..ca57965bcf1056 100644 --- a/Lib/test/pythoninfo.py +++ b/Lib/test/pythoninfo.py @@ -144,7 +144,7 @@ def collect_sys(info_add): text = 'Yes (sys.getobjects() present)' else: text = 'No (sys.getobjects() missing)' - info_add('build.Py_TRACE_REFS', text) + info_add('build.Py_REF_DEBUG', text) def collect_platform(info_add): @@ -588,8 +588,8 @@ def collect_socket(info_add): try: hostname = socket.gethostname() - except (OSError, AttributeError): - # WASI SDK 16.0 does not have gethostname(2). + except OSError: + # WASI SDK 15.0 does not have gethostname(2). if sys.platform != "wasi": raise else: @@ -602,7 +602,7 @@ def collect_sqlite(info_add): except ImportError: return - attributes = ('sqlite_version',) + attributes = ('version', 'sqlite_version') copy_attributes(info_add, sqlite3, 'sqlite3.%s', attributes) diff --git a/Lib/test/setup_testcppext.py b/Lib/test/setup_testcppext.py index c6b68104d1333c..780cb7b24a78c9 100644 --- a/Lib/test/setup_testcppext.py +++ b/Lib/test/setup_testcppext.py @@ -13,10 +13,16 @@ if not MS_WINDOWS: # C++ compiler flags for GCC and clang CPPFLAGS = [ + # Python currently targets C++11 + '-std=c++11', # gh-91321: The purpose of _testcppext extension is to check that building # a C++ extension using the Python C API does not emit C++ compiler # warnings '-Werror', + # Warn on old-style cast (C cast) like: (PyObject*)op + '-Wold-style-cast', + # Warn when using NULL rather than _Py_NULL in static inline functions + '-Wzero-as-null-pointer-constant', ] else: # Don't pass any compiler flag to MSVC @@ -24,24 +30,12 @@ def main(): - cppflags = list(CPPFLAGS) - if '-std=c++03' in sys.argv: - sys.argv.remove('-std=c++03') - std = 'c++03' - name = '_testcpp03ext' - else: - # Python currently targets C++11 - std = 'c++11' - name = '_testcpp11ext' - - cppflags = [*CPPFLAGS, f'-std={std}'] - cpp_ext = Extension( - name, + '_testcppext', sources=[SOURCE], language='c++', - extra_compile_args=cppflags) - setup(name='internal' + name, version='0.0', ext_modules=[cpp_ext]) + extra_compile_args=CPPFLAGS) + setup(name="_testcppext", ext_modules=[cpp_ext]) if __name__ == "__main__": diff --git a/Lib/test/signalinterproctester.py b/Lib/test/signalinterproctester.py index cdcd92a8baace6..bc60b747f71680 100644 --- a/Lib/test/signalinterproctester.py +++ b/Lib/test/signalinterproctester.py @@ -28,15 +28,16 @@ def wait_signal(self, child, signame): # (if set) child.wait() - start_time = time.monotonic() - for _ in support.busy_retry(support.SHORT_TIMEOUT, error=False): + timeout = support.SHORT_TIMEOUT + deadline = time.monotonic() + timeout + + while time.monotonic() < deadline: if self.got_signals[signame]: return signal.pause() - else: - dt = time.monotonic() - start_time - self.fail('signal %s not received after %.1f seconds' - % (signame, dt)) + + self.fail('signal %s not received after %s seconds' + % (signame, timeout)) def subprocess_send_signal(self, pid, signame): code = 'import os, signal; os.kill(%s, signal.%s)' % (pid, signame) diff --git a/Lib/test/string_tests.py b/Lib/test/string_tests.py index e998146c190df4..0d4c7ecf4a04f2 100644 --- a/Lib/test/string_tests.py +++ b/Lib/test/string_tests.py @@ -341,42 +341,6 @@ def reference_find(p, s): self.checkequal(reference_find(p, text), text, 'find', p) - def test_find_many_lengths(self): - haystack_repeats = [a * 10**e for e in range(6) for a in (1,2,5)] - haystacks = [(n, self.fixtype("abcab"*n + "da")) for n in haystack_repeats] - - needle_repeats = [a * 10**e for e in range(6) for a in (1, 3)] - needles = [(m, self.fixtype("abcab"*m + "da")) for m in needle_repeats] - - for n, haystack1 in haystacks: - haystack2 = haystack1[:-1] - for m, needle in needles: - answer1 = 5 * (n - m) if m <= n else -1 - self.assertEqual(haystack1.find(needle), answer1, msg=(n,m)) - self.assertEqual(haystack2.find(needle), -1, msg=(n,m)) - - def test_adaptive_find(self): - # This would be very slow for the naive algorithm, - # but str.find() should be O(n + m). - for N in 1000, 10_000, 100_000, 1_000_000: - A, B = 'a' * N, 'b' * N - haystack = A + A + B + A + A - needle = A + B + B + A - self.checkequal(-1, haystack, 'find', needle) - self.checkequal(0, haystack, 'count', needle) - self.checkequal(len(haystack), haystack + needle, 'find', needle) - self.checkequal(1, haystack + needle, 'count', needle) - - def test_find_with_memory(self): - # Test the "Skip with memory" path in the two-way algorithm. - for N in 1000, 3000, 10_000, 30_000: - needle = 'ab' * N - haystack = ('ab'*(N-1) + 'b') * 2 - self.checkequal(-1, haystack, 'find', needle) - self.checkequal(0, haystack, 'count', needle) - self.checkequal(len(haystack), haystack + needle, 'find', needle) - self.checkequal(1, haystack + needle, 'count', needle) - def test_find_shift_table_overflow(self): """When the table of 8-bit shifts overflows.""" N = 2**8 + 100 @@ -751,18 +715,6 @@ def test_replace(self): self.checkraises(TypeError, 'hello', 'replace', 42, 'h') self.checkraises(TypeError, 'hello', 'replace', 'h', 42) - def test_replace_uses_two_way_maxcount(self): - # Test that maxcount works in _two_way_count in fastsearch.h - A, B = "A"*1000, "B"*1000 - AABAA = A + A + B + A + A - ABBA = A + B + B + A - self.checkequal(AABAA + ABBA, - AABAA + ABBA, 'replace', ABBA, "ccc", 0) - self.checkequal(AABAA + "ccc", - AABAA + ABBA, 'replace', ABBA, "ccc", 1) - self.checkequal(AABAA + "ccc", - AABAA + ABBA, 'replace', ABBA, "ccc", 2) - @unittest.skipIf(sys.maxsize > (1 << 32) or struct.calcsize('P') != 4, 'only applies to 32-bit platforms') def test_replace_overflow(self): diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py index 573dce52ca474a..e23ffee22d1cd9 100644 --- a/Lib/test/support/__init__.py +++ b/Lib/test/support/__init__.py @@ -46,7 +46,6 @@ "anticipate_failure", "load_package_tests", "detect_api_mismatch", "check__all__", "skip_if_buggy_ucrt_strfptime", "check_disallow_instantiation", "check_sanitizer", "skip_if_sanitizer", - "requires_limited_api", # sys "is_jython", "is_android", "is_emscripten", "is_wasi", "check_impl_detail", "unix_shell", "setswitchinterval", @@ -306,8 +305,6 @@ def requires(resource, msg=None): if msg is None: msg = "Use of the %r resource not enabled" % resource raise ResourceDenied(msg) - if resource in {"network", "urlfetch"} and not has_socket_support: - raise ResourceDenied("No socket support") if resource == 'gui' and not _is_gui_available(): raise ResourceDenied(_is_gui_available.reason) @@ -1070,15 +1067,6 @@ def refcount_test(test): return no_tracing(cpython_only(test)) -def requires_limited_api(test): - try: - import _testcapi - except ImportError: - return unittest.skip('needs _testcapi module')(test) - return unittest.skipUnless( - _testcapi.LIMITED_API_AVAILABLE, 'needs Limited API support')(test) - - def _filter_suite(suite, pred): """Recursively filter test cases in a suite based on a predicate.""" newtests = [] @@ -1778,16 +1766,6 @@ def cleanup(): setattr(object_to_patch, attr_name, new_value) -@contextlib.contextmanager -def patch_list(orig): - """Like unittest.mock.patch.dict, but for lists.""" - try: - saved = orig[:] - yield - finally: - orig[:] = saved - - def run_in_subinterp(code): """ Run code in a subinterpreter. Raise unittest.SkipTest if the tracemalloc @@ -2092,26 +2070,31 @@ def wait_process(pid, *, exitcode, timeout=None): if timeout is None: timeout = SHORT_TIMEOUT - - start_time = time.monotonic() - for _ in sleeping_retry(timeout, error=False): + t0 = time.monotonic() + sleep = 0.001 + max_sleep = 0.1 + while True: pid2, status = os.waitpid(pid, os.WNOHANG) if pid2 != 0: break - # rety: the process is still running - else: - try: - os.kill(pid, signal.SIGKILL) - os.waitpid(pid, 0) - except OSError: - # Ignore errors like ChildProcessError or PermissionError - pass + # process is still running + + dt = time.monotonic() - t0 + if dt > SHORT_TIMEOUT: + try: + os.kill(pid, signal.SIGKILL) + os.waitpid(pid, 0) + except OSError: + # Ignore errors like ChildProcessError or PermissionError + pass - dt = time.monotonic() - start_time - raise AssertionError(f"process {pid} is still running " - f"after {dt:.1f} seconds") + raise AssertionError(f"process {pid} is still running " + f"after {dt:.1f} seconds") + + sleep = min(sleep * 2, max_sleep) + time.sleep(sleep) else: - # Windows implementation: don't support timeout :-( + # Windows implementation pid2, status = os.waitpid(pid, 0) exitcode2 = os.waitstatus_to_exitcode(status) @@ -2228,127 +2211,3 @@ def requires_venv_with_pip(): # True if Python is built with the Py_DEBUG macro defined: if # Python is built in debug mode (./configure --with-pydebug). Py_DEBUG = hasattr(sys, 'gettotalrefcount') - - -def late_deletion(obj): - """ - Keep a Python alive as long as possible. - - Create a reference cycle and store the cycle in an object deleted late in - Python finalization. Try to keep the object alive until the very last - garbage collection. - - The function keeps a strong reference by design. It should be called in a - subprocess to not mark a test as "leaking a reference". - """ - - # Late CPython finalization: - # - finalize_interp_clear() - # - _PyInterpreterState_Clear(): Clear PyInterpreterState members - # (ex: codec_search_path, before_forkers) - # - clear os.register_at_fork() callbacks - # - clear codecs.register() callbacks - - ref_cycle = [obj] - ref_cycle.append(ref_cycle) - - # Store a reference in PyInterpreterState.codec_search_path - import codecs - def search_func(encoding): - return None - search_func.reference = ref_cycle - codecs.register(search_func) - - if hasattr(os, 'register_at_fork'): - # Store a reference in PyInterpreterState.before_forkers - def atfork_func(): - pass - atfork_func.reference = ref_cycle - os.register_at_fork(before=atfork_func) - - -def busy_retry(timeout, err_msg=None, /, *, error=True): - """ - Run the loop body until "break" stops the loop. - - After *timeout* seconds, raise an AssertionError if *error* is true, - or just stop if *error is false. - - Example: - - for _ in support.busy_retry(support.SHORT_TIMEOUT): - if check(): - break - - Example of error=False usage: - - for _ in support.busy_retry(support.SHORT_TIMEOUT, error=False): - if check(): - break - else: - raise RuntimeError('my custom error') - - """ - if timeout <= 0: - raise ValueError("timeout must be greater than zero") - - start_time = time.monotonic() - deadline = start_time + timeout - - while True: - yield - - if time.monotonic() >= deadline: - break - - if error: - dt = time.monotonic() - start_time - msg = f"timeout ({dt:.1f} seconds)" - if err_msg: - msg = f"{msg}: {err_msg}" - raise AssertionError(msg) - - -def sleeping_retry(timeout, err_msg=None, /, - *, init_delay=0.010, max_delay=1.0, error=True): - """ - Wait strategy that applies exponential backoff. - - Run the loop body until "break" stops the loop. Sleep at each loop - iteration, but not at the first iteration. The sleep delay is doubled at - each iteration (up to *max_delay* seconds). - - See busy_retry() documentation for the parameters usage. - - Example raising an exception after SHORT_TIMEOUT seconds: - - for _ in support.sleeping_retry(support.SHORT_TIMEOUT): - if check(): - break - - Example of error=False usage: - - for _ in support.sleeping_retry(support.SHORT_TIMEOUT, error=False): - if check(): - break - else: - raise RuntimeError('my custom error') - """ - - delay = init_delay - for _ in busy_retry(timeout, err_msg, error=error): - yield - - time.sleep(delay) - delay = min(delay * 2, max_delay) - - -@contextlib.contextmanager -def adjust_int_max_str_digits(max_digits): - """Temporarily change the integer string conversion length limit.""" - current = sys.get_int_max_str_digits() - try: - sys.set_int_max_str_digits(max_digits) - yield - finally: - sys.set_int_max_str_digits(current) diff --git a/Lib/test/support/bytecode_helper.py b/Lib/test/support/bytecode_helper.py index 05b54911e3f25a..471d4a68f915aa 100644 --- a/Lib/test/support/bytecode_helper.py +++ b/Lib/test/support/bytecode_helper.py @@ -3,7 +3,6 @@ import unittest import dis import io -from _testinternalcapi import optimize_cfg _UNSPECIFIED = object() @@ -41,95 +40,3 @@ def assertNotInBytecode(self, x, opname, argval=_UNSPECIFIED): msg = '(%s,%r) occurs in bytecode:\n%s' msg = msg % (opname, argval, disassembly) self.fail(msg) - - -class CfgOptimizationTestCase(unittest.TestCase): - - HAS_ARG = set(dis.hasarg) - HAS_TARGET = set(dis.hasjrel + dis.hasjabs + dis.hasexc) - HAS_ARG_OR_TARGET = HAS_ARG.union(HAS_TARGET) - - def setUp(self): - self.last_label = 0 - - def Label(self): - self.last_label += 1 - return self.last_label - - def complete_insts_info(self, insts): - # fill in omitted fields in location, and oparg 0 for ops with no arg. - instructions = [] - for item in insts: - if isinstance(item, int): - instructions.append(item) - else: - assert isinstance(item, tuple) - inst = list(reversed(item)) - opcode = dis.opmap[inst.pop()] - oparg = inst.pop() if opcode in self.HAS_ARG_OR_TARGET else 0 - loc = inst + [-1] * (4 - len(inst)) - instructions.append((opcode, oparg, *loc)) - return instructions - - def normalize_insts(self, insts): - """ Map labels to instruction index. - Remove labels which are not used as jump targets. - """ - labels_map = {} - targets = set() - idx = 1 - for item in insts: - assert isinstance(item, (int, tuple)) - if isinstance(item, tuple): - opcode, oparg, *_ = item - if dis.opmap.get(opcode, opcode) in self.HAS_TARGET: - targets.add(oparg) - idx += 1 - elif isinstance(item, int): - assert item not in labels_map, "label reused" - labels_map[item] = idx - - res = [] - for item in insts: - if isinstance(item, int) and item in targets: - if not res or labels_map[item] != res[-1]: - res.append(labels_map[item]) - elif isinstance(item, tuple): - opcode, oparg, *loc = item - opcode = dis.opmap.get(opcode, opcode) - if opcode in self.HAS_TARGET: - arg = labels_map[oparg] - else: - arg = oparg if opcode in self.HAS_TARGET else None - opcode = dis.opname[opcode] - res.append((opcode, arg, *loc)) - return res - - def get_optimized(self, insts, consts): - insts = self.complete_insts_info(insts) - insts = optimize_cfg(insts, consts) - return insts, consts - - def compareInstructions(self, actual_, expected_): - # get two lists where each entry is a label or - # an instruction tuple. Compare them, while mapping - # each actual label to a corresponding expected label - # based on their locations. - - self.assertIsInstance(actual_, list) - self.assertIsInstance(expected_, list) - - actual = self.normalize_insts(actual_) - expected = self.normalize_insts(expected_) - self.assertEqual(len(actual), len(expected)) - - # compare instructions - for act, exp in zip(actual, expected): - if isinstance(act, int): - self.assertEqual(exp, act) - continue - self.assertIsInstance(exp, tuple) - self.assertIsInstance(act, tuple) - # pad exp with -1's (if location info is incomplete) - exp += (-1,) * (len(act) - len(exp)) - self.assertEqual(exp, act) diff --git a/Lib/test/support/os_helper.py b/Lib/test/support/os_helper.py index f37a442aa0e6c8..ed4ec15c7cbe92 100644 --- a/Lib/test/support/os_helper.py +++ b/Lib/test/support/os_helper.py @@ -141,11 +141,6 @@ try: name.decode(sys.getfilesystemencoding()) except UnicodeDecodeError: - try: - name.decode(sys.getfilesystemencoding(), - sys.getfilesystemencodeerrors()) - except UnicodeDecodeError: - continue TESTFN_UNDECODABLE = os.fsencode(TESTFN_ASCII) + name break @@ -176,13 +171,9 @@ def can_symlink(): global _can_symlink if _can_symlink is not None: return _can_symlink - # WASI / wasmtime prevents symlinks with absolute paths, see man - # openat2(2) RESOLVE_BENEATH. Almost all symlink tests use absolute - # paths. Skip symlink tests on WASI for now. - src = os.path.abspath(TESTFN) - symlink_path = src + "can_symlink" + symlink_path = TESTFN + "can_symlink" try: - os.symlink(src, symlink_path) + os.symlink(TESTFN, symlink_path) can = True except (OSError, NotImplementedError, AttributeError): can = False @@ -242,84 +233,6 @@ def skip_unless_xattr(test): return test if ok else unittest.skip(msg)(test) -_can_chmod = None - -def can_chmod(): - global _can_chmod - if _can_chmod is not None: - return _can_chmod - if not hasattr(os, "chown"): - _can_chmod = False - return _can_chmod - try: - with open(TESTFN, "wb") as f: - try: - os.chmod(TESTFN, 0o777) - mode1 = os.stat(TESTFN).st_mode - os.chmod(TESTFN, 0o666) - mode2 = os.stat(TESTFN).st_mode - except OSError as e: - can = False - else: - can = stat.S_IMODE(mode1) != stat.S_IMODE(mode2) - finally: - unlink(TESTFN) - _can_chmod = can - return can - - -def skip_unless_working_chmod(test): - """Skip tests that require working os.chmod() - - WASI SDK 15.0 cannot change file mode bits. - """ - ok = can_chmod() - msg = "requires working os.chmod()" - return test if ok else unittest.skip(msg)(test) - - -# Check whether the current effective user has the capability to override -# DAC (discretionary access control). Typically user root is able to -# bypass file read, write, and execute permission checks. The capability -# is independent of the effective user. See capabilities(7). -_can_dac_override = None - -def can_dac_override(): - global _can_dac_override - - if not can_chmod(): - _can_dac_override = False - if _can_dac_override is not None: - return _can_dac_override - - try: - with open(TESTFN, "wb") as f: - os.chmod(TESTFN, 0o400) - try: - with open(TESTFN, "wb"): - pass - except OSError: - _can_dac_override = False - else: - _can_dac_override = True - finally: - unlink(TESTFN) - - return _can_dac_override - - -def skip_if_dac_override(test): - ok = not can_dac_override() - msg = "incompatible with CAP_DAC_OVERRIDE" - return test if ok else unittest.skip(msg)(test) - - -def skip_unless_dac_override(test): - ok = can_dac_override() - msg = "requires CAP_DAC_OVERRIDE" - return test if ok else unittest.skip(msg)(test) - - def unlink(filename): try: _unlink(filename) @@ -546,10 +459,7 @@ def create_empty_file(filename): def open_dir_fd(path): """Open a file descriptor to a directory.""" assert os.path.isdir(path) - flags = os.O_RDONLY - if hasattr(os, "O_DIRECTORY"): - flags |= os.O_DIRECTORY - dir_fd = os.open(path, flags) + dir_fd = os.open(path, os.O_RDONLY) try: yield dir_fd finally: @@ -572,7 +482,7 @@ def fs_is_case_insensitive(directory): class FakePath: - """Simple implementation of the path protocol. + """Simple implementing of the path protocol. """ def __init__(self, path): self.path = path @@ -658,11 +568,6 @@ def temp_umask(umask): yield finally: os.umask(oldmask) -else: - @contextlib.contextmanager - def temp_umask(umask): - """no-op on platforms without umask()""" - yield class EnvironmentVarGuard(collections.abc.MutableMapping): diff --git a/Lib/test/support/socket_helper.py b/Lib/test/support/socket_helper.py index d2960c9e333474..42b2a93398cbf7 100644 --- a/Lib/test/support/socket_helper.py +++ b/Lib/test/support/socket_helper.py @@ -1,10 +1,8 @@ import contextlib import errno -import os.path import socket -import sys -import tempfile import unittest +import sys from .. import support from . import warnings_helper @@ -272,14 +270,3 @@ def filter_error(err): # __cause__ or __context__? finally: socket.setdefaulttimeout(old_timeout) - - -def create_unix_domain_name(): - """ - Create a UNIX domain name: socket.bind() argument of a AF_UNIX socket. - - Return a path relative to the current directory to get a short path - (around 27 ASCII characters). - """ - return tempfile.mktemp(prefix="test_python_", suffix='.sock', - dir=os.path.curdir) diff --git a/Lib/test/support/threading_helper.py b/Lib/test/support/threading_helper.py index b9973c8bf5c914..26cbc6f4d2439c 100644 --- a/Lib/test/support/threading_helper.py +++ b/Lib/test/support/threading_helper.py @@ -88,17 +88,19 @@ def wait_threads_exit(timeout=None): yield finally: start_time = time.monotonic() - for _ in support.sleeping_retry(timeout, error=False): - support.gc_collect() + deadline = start_time + timeout + while True: count = _thread._count() if count <= old_count: break - else: - dt = time.monotonic() - start_time - msg = (f"wait_threads() failed to cleanup {count - old_count} " - f"threads after {dt:.1f} seconds " - f"(count: {count}, old count: {old_count})") - raise AssertionError(msg) + if time.monotonic() > deadline: + dt = time.monotonic() - start_time + msg = (f"wait_threads() failed to cleanup {count - old_count} " + f"threads after {dt:.1f} seconds " + f"(count: {count}, old count: {old_count})") + raise AssertionError(msg) + time.sleep(0.010) + support.gc_collect() def join_thread(thread, timeout=None): diff --git a/Lib/test/test__opcode.py b/Lib/test/test__opcode.py index f548e3647b31c7..2a4c0d2eeb656a 100644 --- a/Lib/test/test__opcode.py +++ b/Lib/test/test__opcode.py @@ -18,10 +18,9 @@ def test_stack_effect(self): self.assertRaises(ValueError, stack_effect, dis.opmap['BUILD_SLICE']) self.assertRaises(ValueError, stack_effect, dis.opmap['POP_TOP'], 0) # All defined opcodes - has_arg = dis.hasarg for name, code in filter(lambda item: item[0] not in dis.deoptmap, dis.opmap.items()): with self.subTest(opname=name): - if code not in has_arg: + if code < dis.HAVE_ARGUMENT: stack_effect(code) self.assertRaises(ValueError, stack_effect, code, 0) else: @@ -47,12 +46,10 @@ def test_stack_effect_jump(self): self.assertEqual(stack_effect(JUMP_FORWARD, 0, jump=True), 0) self.assertEqual(stack_effect(JUMP_FORWARD, 0, jump=False), 0) # All defined opcodes - has_arg = dis.hasarg - has_exc = dis.hasexc has_jump = dis.hasjabs + dis.hasjrel for name, code in filter(lambda item: item[0] not in dis.deoptmap, dis.opmap.items()): with self.subTest(opname=name): - if code not in has_arg: + if code < dis.HAVE_ARGUMENT: common = stack_effect(code) jump = stack_effect(code, jump=True) nojump = stack_effect(code, jump=False) @@ -60,7 +57,7 @@ def test_stack_effect_jump(self): common = stack_effect(code, 0) jump = stack_effect(code, 0, jump=True) nojump = stack_effect(code, 0, jump=False) - if code in has_jump or code in has_exc: + if code in has_jump: self.assertEqual(common, max(jump, nojump)) else: self.assertEqual(jump, common) diff --git a/Lib/test/test__xxsubinterpreters.py b/Lib/test/test__xxsubinterpreters.py index f20aae8e21c66f..5d0ed9ea14ac7f 100644 --- a/Lib/test/test__xxsubinterpreters.py +++ b/Lib/test/test__xxsubinterpreters.py @@ -45,11 +45,12 @@ def _wait_for_interp_to_run(interp, timeout=None): # run subinterpreter eariler than the main thread in multiprocess. if timeout is None: timeout = support.SHORT_TIMEOUT - for _ in support.sleeping_retry(timeout, error=False): - if interpreters.is_running(interp): - break - else: - raise RuntimeError('interp is not running') + start_time = time.monotonic() + deadline = start_time + timeout + while not interpreters.is_running(interp): + if time.monotonic() > deadline: + raise RuntimeError('interp is not running') + time.sleep(0.010) @contextlib.contextmanager diff --git a/Lib/test/test_argparse.py b/Lib/test/test_argparse.py index 2b7f008d38564b..273db45c00f7ac 100644 --- a/Lib/test/test_argparse.py +++ b/Lib/test/test_argparse.py @@ -45,7 +45,6 @@ def setUp(self): env['COLUMNS'] = '80' -@os_helper.skip_unless_working_chmod class TempDirMixin(object): def setUp(self): @@ -1505,15 +1504,14 @@ class TestArgumentsFromFile(TempDirMixin, ParserTestCase): def setUp(self): super(TestArgumentsFromFile, self).setUp() file_texts = [ - ('hello', os.fsencode(self.hello) + b'\n'), - ('recursive', b'-a\n' - b'A\n' - b'@hello'), - ('invalid', b'@no-such-path\n'), - ('undecodable', self.undecodable + b'\n'), + ('hello', 'hello world!\n'), + ('recursive', '-a\n' + 'A\n' + '@hello'), + ('invalid', '@no-such-path\n'), ] for path, text in file_texts: - with open(path, 'wb') as file: + with open(path, 'w', encoding="utf-8") as file: file.write(text) parser_signature = Sig(fromfile_prefix_chars='@') @@ -1523,25 +1521,15 @@ def setUp(self): Sig('y', nargs='+'), ] failures = ['', '-b', 'X', '@invalid', '@missing'] - hello = 'hello world!' + os_helper.FS_NONASCII successes = [ ('X Y', NS(a=None, x='X', y=['Y'])), ('X -a A Y Z', NS(a='A', x='X', y=['Y', 'Z'])), - ('@hello X', NS(a=None, x=hello, y=['X'])), - ('X @hello', NS(a=None, x='X', y=[hello])), - ('-a B @recursive Y Z', NS(a='A', x=hello, y=['Y', 'Z'])), - ('X @recursive Z -a B', NS(a='B', x='X', y=[hello, 'Z'])), + ('@hello X', NS(a=None, x='hello world!', y=['X'])), + ('X @hello', NS(a=None, x='X', y=['hello world!'])), + ('-a B @recursive Y Z', NS(a='A', x='hello world!', y=['Y', 'Z'])), + ('X @recursive Z -a B', NS(a='B', x='X', y=['hello world!', 'Z'])), (["-a", "", "X", "Y"], NS(a='', x='X', y=['Y'])), ] - if os_helper.TESTFN_UNDECODABLE: - undecodable = os_helper.TESTFN_UNDECODABLE.lstrip(b'@') - decoded_undecodable = os.fsdecode(undecodable) - successes += [ - ('@undecodable X', NS(a=None, x=decoded_undecodable, y=['X'])), - ('X @undecodable', NS(a=None, x='X', y=[decoded_undecodable])), - ] - else: - undecodable = b'' class TestArgumentsFromFileConverter(TempDirMixin, ParserTestCase): @@ -1550,10 +1538,10 @@ class TestArgumentsFromFileConverter(TempDirMixin, ParserTestCase): def setUp(self): super(TestArgumentsFromFileConverter, self).setUp() file_texts = [ - ('hello', b'hello world!\n'), + ('hello', 'hello world!\n'), ] for path, text in file_texts: - with open(path, 'wb') as file: + with open(path, 'w', encoding="utf-8") as file: file.write(text) class FromFileConverterArgumentParser(ErrorRaisingArgumentParser): @@ -1734,7 +1722,8 @@ def __eq__(self, other): return self.name == other.name -@os_helper.skip_if_dac_override +@unittest.skipIf(hasattr(os, 'geteuid') and os.geteuid() == 0, + "non-root user required") class TestFileTypeW(TempDirMixin, ParserTestCase): """Test the FileType option/argument type for writing files""" @@ -1756,8 +1745,8 @@ def setUp(self): ('-x - -', NS(x=eq_stdout, spam=eq_stdout)), ] - -@os_helper.skip_if_dac_override +@unittest.skipIf(hasattr(os, 'geteuid') and os.geteuid() == 0, + "non-root user required") class TestFileTypeX(TempDirMixin, ParserTestCase): """Test the FileType option/argument type for writing new files only""" @@ -1777,7 +1766,8 @@ def setUp(self): ] -@os_helper.skip_if_dac_override +@unittest.skipIf(hasattr(os, 'geteuid') and os.geteuid() == 0, + "non-root user required") class TestFileTypeWB(TempDirMixin, ParserTestCase): """Test the FileType option/argument type for writing binary files""" @@ -1794,7 +1784,8 @@ class TestFileTypeWB(TempDirMixin, ParserTestCase): ] -@os_helper.skip_if_dac_override +@unittest.skipIf(hasattr(os, 'geteuid') and os.geteuid() == 0, + "non-root user required") class TestFileTypeXB(TestFileTypeX): "Test the FileType option/argument type for writing new binary files only" @@ -5230,13 +5221,6 @@ def test_mixed(self): self.assertEqual(NS(v=3, spam=True, badger="B"), args) self.assertEqual(["C", "--foo", "4"], extras) - def test_zero_or_more_optional(self): - parser = argparse.ArgumentParser() - parser.add_argument('x', nargs='*', choices=('x', 'y')) - args = parser.parse_args([]) - self.assertEqual(NS(x=[]), args) - - # =========================== # parse_intermixed_args tests # =========================== diff --git a/Lib/test/test_ast.py b/Lib/test/test_ast.py index c97d16132f472d..03d9b310f161b9 100644 --- a/Lib/test/test_ast.py +++ b/Lib/test/test_ast.py @@ -336,41 +336,6 @@ def test_ast_validation(self): tree = ast.parse(snippet) compile(tree, '<string>', 'exec') - def test_invalid_position_information(self): - invalid_linenos = [ - (10, 1), (-10, -11), (10, -11), (-5, -2), (-5, 1) - ] - - for lineno, end_lineno in invalid_linenos: - with self.subTest(f"Check invalid linenos {lineno}:{end_lineno}"): - snippet = "a = 1" - tree = ast.parse(snippet) - tree.body[0].lineno = lineno - tree.body[0].end_lineno = end_lineno - with self.assertRaises(ValueError): - compile(tree, '<string>', 'exec') - - invalid_col_offsets = [ - (10, 1), (-10, -11), (10, -11), (-5, -2), (-5, 1) - ] - for col_offset, end_col_offset in invalid_col_offsets: - with self.subTest(f"Check invalid col_offset {col_offset}:{end_col_offset}"): - snippet = "a = 1" - tree = ast.parse(snippet) - tree.body[0].col_offset = col_offset - tree.body[0].end_col_offset = end_col_offset - with self.assertRaises(ValueError): - compile(tree, '<string>', 'exec') - - def test_compilation_of_ast_nodes_with_default_end_position_values(self): - tree = ast.Module(body=[ - ast.Import(names=[ast.alias(name='builtins', lineno=1, col_offset=0)], lineno=1, col_offset=0), - ast.Import(names=[ast.alias(name='traceback', lineno=0, col_offset=0)], lineno=0, col_offset=1) - ], type_ignores=[]) - - # Check that compilation doesn't crash. Note: this may crash explicitly only on debug mode. - compile(tree, "<string>", "exec") - def test_slice(self): slc = ast.parse("x[::]").body[0].value.slice self.assertIsNone(slc.upper) @@ -738,54 +703,11 @@ def test_ast_asdl_signature(self): expressions[0] = f"expr = {ast.expr.__subclasses__()[0].__doc__}" self.assertCountEqual(ast.expr.__doc__.split("\n"), expressions) - def test_positional_only_feature_version(self): - ast.parse('def foo(x, /): ...', feature_version=(3, 8)) - ast.parse('def bar(x=1, /): ...', feature_version=(3, 8)) - with self.assertRaises(SyntaxError): - ast.parse('def foo(x, /): ...', feature_version=(3, 7)) - with self.assertRaises(SyntaxError): - ast.parse('def bar(x=1, /): ...', feature_version=(3, 7)) - - ast.parse('lambda x, /: ...', feature_version=(3, 8)) - ast.parse('lambda x=1, /: ...', feature_version=(3, 8)) - with self.assertRaises(SyntaxError): - ast.parse('lambda x, /: ...', feature_version=(3, 7)) - with self.assertRaises(SyntaxError): - ast.parse('lambda x=1, /: ...', feature_version=(3, 7)) - - def test_parenthesized_with_feature_version(self): - ast.parse('with (CtxManager() as example): ...', feature_version=(3, 10)) - # While advertised as a feature in Python 3.10, this was allowed starting 3.9 - ast.parse('with (CtxManager() as example): ...', feature_version=(3, 9)) - with self.assertRaises(SyntaxError): - ast.parse('with (CtxManager() as example): ...', feature_version=(3, 8)) - ast.parse('with CtxManager() as example: ...', feature_version=(3, 8)) - - def test_debug_f_string_feature_version(self): + def test_issue40614_feature_version(self): ast.parse('f"{x=}"', feature_version=(3, 8)) with self.assertRaises(SyntaxError): ast.parse('f"{x=}"', feature_version=(3, 7)) - def test_assignment_expression_feature_version(self): - ast.parse('(x := 0)', feature_version=(3, 8)) - with self.assertRaises(SyntaxError): - ast.parse('(x := 0)', feature_version=(3, 7)) - - def test_exception_groups_feature_version(self): - code = dedent(''' - try: ... - except* Exception: ... - ''') - ast.parse(code) - with self.assertRaises(SyntaxError): - ast.parse(code, feature_version=(3, 10)) - - def test_invalid_major_feature_version(self): - with self.assertRaises(ValueError): - ast.parse('pass', feature_version=(2, 7)) - with self.assertRaises(ValueError): - ast.parse('pass', feature_version=(4, 0)) - def test_constant_as_name(self): for constant in "True", "False", "None": expr = ast.Expression(ast.Name(constant, ast.Load())) @@ -823,27 +745,6 @@ def next(self): return self enum._test_simple_enum(_Precedence, ast._Precedence) - @support.cpython_only - def test_ast_recursion_limit(self): - fail_depth = sys.getrecursionlimit() * 3 - crash_depth = sys.getrecursionlimit() * 300 - success_depth = int(fail_depth * 0.75) - - def check_limit(prefix, repeated): - expect_ok = prefix + repeated * success_depth - ast.parse(expect_ok) - for depth in (fail_depth, crash_depth): - broken = prefix + repeated * depth - details = "Compiling ({!r} + {!r} * {})".format( - prefix, repeated, depth) - with self.assertRaises(RecursionError, msg=details): - ast.parse(broken) - - check_limit("a", "()") - check_limit("a", ".b") - check_limit("a", "[0]") - check_limit("a", "*a") - class ASTHelpers_Test(unittest.TestCase): maxDiff = None @@ -1145,14 +1046,6 @@ def test_literal_eval(self): self.assertRaises(ValueError, ast.literal_eval, '+True') self.assertRaises(ValueError, ast.literal_eval, '2+3') - def test_literal_eval_str_int_limit(self): - with support.adjust_int_max_str_digits(4000): - ast.literal_eval('3'*4000) # no error - with self.assertRaises(SyntaxError) as err_ctx: - ast.literal_eval('3'*4001) - self.assertIn('Exceeds the limit ', str(err_ctx.exception)) - self.assertIn(' Consider hexadecimal ', str(err_ctx.exception)) - def test_literal_eval_complex(self): # Issue #4907 self.assertEqual(ast.literal_eval('6j'), 6j) diff --git a/Lib/test/test_asyncio/test_base_events.py b/Lib/test/test_asyncio/test_base_events.py index 2dcb20c1cec7f9..c6671bd0ad3d85 100644 --- a/Lib/test/test_asyncio/test_base_events.py +++ b/Lib/test/test_asyncio/test_base_events.py @@ -40,6 +40,7 @@ def mock_socket_module(): m_socket.socket = mock.MagicMock() m_socket.socket.return_value = test_utils.mock_nonblocking_socket() + m_socket.getaddrinfo._is_coroutine = False return m_socket @@ -1109,15 +1110,6 @@ def _socket(*args, **kw): self.assertEqual(str(cm.exception), 'Multiple exceptions: err1, err2') - idx = -1 - coro = self.loop.create_connection(MyProto, 'example.com', 80, all_errors=True) - with self.assertRaises(ExceptionGroup) as cm: - self.loop.run_until_complete(coro) - - self.assertIsInstance(cm.exception, ExceptionGroup) - for e in cm.exception.exceptions: - self.assertIsInstance(e, OSError) - @patch_socket def test_create_connection_timeout(self, m_socket): # Ensure that the socket is closed on timeout @@ -1237,14 +1229,6 @@ def getaddrinfo_task(*args, **kwds): self.assertRaises( OSError, self.loop.run_until_complete, coro) - coro = self.loop.create_connection(MyProto, 'example.com', 80, all_errors=True) - with self.assertRaises(ExceptionGroup) as cm: - self.loop.run_until_complete(coro) - - self.assertIsInstance(cm.exception, ExceptionGroup) - self.assertEqual(len(cm.exception.exceptions), 1) - self.assertIsInstance(cm.exception.exceptions[0], OSError) - def test_create_connection_multiple(self): async def getaddrinfo(*args, **kw): return [(2, 1, 6, '', ('0.0.0.1', 80)), @@ -1262,15 +1246,6 @@ def getaddrinfo_task(*args, **kwds): with self.assertRaises(OSError): self.loop.run_until_complete(coro) - coro = self.loop.create_connection( - MyProto, 'example.com', 80, family=socket.AF_INET, all_errors=True) - with self.assertRaises(ExceptionGroup) as cm: - self.loop.run_until_complete(coro) - - self.assertIsInstance(cm.exception, ExceptionGroup) - for e in cm.exception.exceptions: - self.assertIsInstance(e, OSError) - @patch_socket def test_create_connection_multiple_errors_local_addr(self, m_socket): @@ -1302,16 +1277,6 @@ def getaddrinfo_task(*args, **kwds): self.assertTrue(str(cm.exception).startswith('Multiple exceptions: ')) self.assertTrue(m_socket.socket.return_value.close.called) - coro = self.loop.create_connection( - MyProto, 'example.com', 80, family=socket.AF_INET, - local_addr=(None, 8080), all_errors=True) - with self.assertRaises(ExceptionGroup) as cm: - self.loop.run_until_complete(coro) - - self.assertIsInstance(cm.exception, ExceptionGroup) - for e in cm.exception.exceptions: - self.assertIsInstance(e, OSError) - def _test_create_connection_ip_addr(self, m_socket, allow_inet_pton): # Test the fallback code, even if this system has inet_pton. if not allow_inet_pton: @@ -1321,7 +1286,9 @@ def _test_create_connection_ip_addr(self, m_socket, allow_inet_pton): sock = m_socket.socket.return_value self.loop._add_reader = mock.Mock() + self.loop._add_reader._is_coroutine = False self.loop._add_writer = mock.Mock() + self.loop._add_writer._is_coroutine = False coro = self.loop.create_connection(asyncio.Protocol, '1.2.3.4', 80) t, p = self.loop.run_until_complete(coro) @@ -1363,7 +1330,9 @@ def test_create_connection_ipv6_scope(self, m_socket): sock.family = socket.AF_INET6 self.loop._add_reader = mock.Mock() + self.loop._add_reader._is_coroutine = False self.loop._add_writer = mock.Mock() + self.loop._add_writer._is_coroutine = False coro = self.loop.create_connection(asyncio.Protocol, 'fe80::1%1', 80) t, p = self.loop.run_until_complete(coro) @@ -1390,7 +1359,9 @@ def test_create_connection_service_name(self, m_socket): sock = m_socket.socket.return_value self.loop._add_reader = mock.Mock() + self.loop._add_reader._is_coroutine = False self.loop._add_writer = mock.Mock() + self.loop._add_writer._is_coroutine = False for service, port in ('http', 80), (b'http', 80): coro = self.loop.create_connection(asyncio.Protocol, @@ -1619,6 +1590,7 @@ class Err(OSError): m_socket.getaddrinfo.return_value = [ (2, 1, 6, '', ('127.0.0.1', 10100))] + m_socket.getaddrinfo._is_coroutine = False m_sock = m_socket.socket.return_value = mock.Mock() m_sock.bind.side_effect = Err @@ -1629,6 +1601,7 @@ class Err(OSError): @patch_socket def test_create_datagram_endpoint_no_addrinfo(self, m_socket): m_socket.getaddrinfo.return_value = [] + m_socket.getaddrinfo._is_coroutine = False coro = self.loop.create_datagram_endpoint( MyDatagramProto, local_addr=('localhost', 0)) @@ -1862,6 +1835,7 @@ def getaddrinfo(*args, **kw): m_socket.getaddrinfo = getaddrinfo m_socket.socket.return_value.bind = bind = mock.Mock() self.loop._add_reader = mock.Mock() + self.loop._add_reader._is_coroutine = False reuseport_supported = hasattr(socket, 'SO_REUSEPORT') coro = self.loop.create_datagram_endpoint( diff --git a/Lib/test/test_asyncio/test_events.py b/Lib/test/test_asyncio/test_events.py index 80d7152128c469..05d9107b28e2ae 100644 --- a/Lib/test/test_asyncio/test_events.py +++ b/Lib/test/test_asyncio/test_events.py @@ -29,6 +29,7 @@ import asyncio from asyncio import coroutines from asyncio import events +from asyncio import proactor_events from asyncio import selector_events from test.test_asyncio import utils as test_utils from test import support diff --git a/Lib/test/test_asyncio/test_futures2.py b/Lib/test/test_asyncio/test_futures2.py index 71279b69c7929e..60b58850369f05 100644 --- a/Lib/test/test_asyncio/test_futures2.py +++ b/Lib/test/test_asyncio/test_futures2.py @@ -1,42 +1,13 @@ # IsolatedAsyncioTestCase based tests import asyncio -import traceback import unittest -from asyncio import tasks def tearDownModule(): asyncio.set_event_loop_policy(None) -class FutureTests: - - async def test_future_traceback(self): - - async def raise_exc(): - raise TypeError(42) - - future = self.cls(raise_exc()) - - for _ in range(5): - try: - await future - except TypeError as e: - tb = ''.join(traceback.format_tb(e.__traceback__)) - self.assertEqual(tb.count("await future"), 1) - else: - self.fail('TypeError was not raised') - -@unittest.skipUnless(hasattr(tasks, '_CTask'), - 'requires the C _asyncio module') -class CFutureTests(FutureTests, unittest.IsolatedAsyncioTestCase): - cls = tasks._CTask - -class PyFutureTests(FutureTests, unittest.IsolatedAsyncioTestCase): - cls = tasks._PyTask - -class FutureReprTests(unittest.IsolatedAsyncioTestCase): - +class FutureTests(unittest.IsolatedAsyncioTestCase): async def test_recursive_repr_for_pending_tasks(self): # The call crashes if the guard for recursive call # in base_futures:_future_repr_info is absent diff --git a/Lib/test/test_asyncio/test_locks.py b/Lib/test/test_asyncio/test_locks.py index 3c94baa56e1649..ff25d9edef518f 100644 --- a/Lib/test/test_asyncio/test_locks.py +++ b/Lib/test/test_asyncio/test_locks.py @@ -853,7 +853,7 @@ async def c4(result): self.assertTrue(t1.result()) race_tasks = [t2, t3, t4] done_tasks = [t for t in race_tasks if t.done() and t.result()] - self.assertEqual(2, len(done_tasks)) + self.assertTrue(2, len(done_tasks)) # cleanup locked semaphore sem.release() diff --git a/Lib/test/test_asyncio/test_runners.py b/Lib/test/test_asyncio/test_runners.py index 1308b7e2ba4f82..957cfe41eff85d 100644 --- a/Lib/test/test_asyncio/test_runners.py +++ b/Lib/test/test_asyncio/test_runners.py @@ -1,13 +1,15 @@ import _thread import asyncio import contextvars +import gc import re import signal import threading import unittest -from test.test_asyncio import utils as test_utils + from unittest import mock from unittest.mock import patch +from test.test_asyncio import utils as test_utils def tearDownModule(): @@ -43,9 +45,6 @@ class BaseTest(unittest.TestCase): def new_loop(self): loop = asyncio.BaseEventLoop() loop._process_events = mock.Mock() - # Mock waking event loop from select - loop._write_to_self = mock.Mock() - loop._write_to_self.return_value = None loop._selector = mock.Mock() loop._selector.select.return_value = () loop.shutdown_ag_run = False @@ -197,66 +196,6 @@ async def main(): self.assertIsNone(spinner.ag_frame) self.assertFalse(spinner.ag_running) - def test_asyncio_run_set_event_loop(self): - #See https://github.com/python/cpython/issues/93896 - - async def main(): - await asyncio.sleep(0) - return 42 - - policy = asyncio.get_event_loop_policy() - policy.set_event_loop = mock.Mock() - asyncio.run(main()) - self.assertTrue(policy.set_event_loop.called) - - def test_asyncio_run_without_uncancel(self): - # See https://github.com/python/cpython/issues/95097 - class Task: - def __init__(self, loop, coro, **kwargs): - self._task = asyncio.Task(coro, loop=loop, **kwargs) - - def cancel(self, *args, **kwargs): - return self._task.cancel(*args, **kwargs) - - def add_done_callback(self, *args, **kwargs): - return self._task.add_done_callback(*args, **kwargs) - - def remove_done_callback(self, *args, **kwargs): - return self._task.remove_done_callback(*args, **kwargs) - - @property - def _asyncio_future_blocking(self): - return self._task._asyncio_future_blocking - - def result(self, *args, **kwargs): - return self._task.result(*args, **kwargs) - - def done(self, *args, **kwargs): - return self._task.done(*args, **kwargs) - - def cancelled(self, *args, **kwargs): - return self._task.cancelled(*args, **kwargs) - - def exception(self, *args, **kwargs): - return self._task.exception(*args, **kwargs) - - def get_loop(self, *args, **kwargs): - return self._task.get_loop(*args, **kwargs) - - - async def main(): - interrupt_self() - await asyncio.Event().wait() - - def new_event_loop(): - loop = self.new_loop() - loop.set_task_factory(Task) - return loop - - asyncio.set_event_loop_policy(TestPolicy(new_event_loop)) - with self.assertRaises(asyncio.CancelledError): - asyncio.run(main()) - class RunnerTests(BaseTest): @@ -455,20 +394,6 @@ async def coro(): ): runner.run(coro()) - def test_set_event_loop_called_once(self): - # See https://github.com/python/cpython/issues/95736 - async def coro(): - pass - - policy = asyncio.get_event_loop_policy() - policy.set_event_loop = mock.Mock() - runner = asyncio.Runner() - runner.run(coro()) - runner.run(coro()) - - self.assertEqual(1, policy.set_event_loop.call_count) - runner.close() - if __name__ == '__main__': unittest.main() diff --git a/Lib/test/test_asyncio/test_selector_events.py b/Lib/test/test_asyncio/test_selector_events.py index 22dcfb23083522..d9d30fc25b513b 100644 --- a/Lib/test/test_asyncio/test_selector_events.py +++ b/Lib/test/test_asyncio/test_selector_events.py @@ -61,6 +61,7 @@ def setUp(self): def test_make_socket_transport(self): m = mock.Mock() self.loop.add_reader = mock.Mock() + self.loop.add_reader._is_coroutine = False transport = self.loop._make_socket_transport(m, asyncio.Protocol()) self.assertIsInstance(transport, _SelectorSocketTransport) diff --git a/Lib/test/test_asyncio/test_sock_lowlevel.py b/Lib/test/test_asyncio/test_sock_lowlevel.py index b829fd4cc69fff..db47616d18343e 100644 --- a/Lib/test/test_asyncio/test_sock_lowlevel.py +++ b/Lib/test/test_asyncio/test_sock_lowlevel.py @@ -5,7 +5,7 @@ from asyncio import proactor_events from itertools import cycle, islice -from unittest.mock import Mock +from unittest.mock import patch, Mock from test.test_asyncio import utils as test_utils from test import support from test.support import socket_helper diff --git a/Lib/test/test_asyncio/test_ssl.py b/Lib/test/test_asyncio/test_ssl.py index 5de9b7a14e87da..5e3c1573c9c587 100644 --- a/Lib/test/test_asyncio/test_ssl.py +++ b/Lib/test/test_asyncio/test_ssl.py @@ -5,7 +5,6 @@ import logging import select import socket -import sys import tempfile import threading import time @@ -21,10 +20,6 @@ from test.test_asyncio import utils as test_utils -MACOS = (sys.platform == 'darwin') -BUF_MULTIPLIER = 1024 if not MACOS else 64 - - def tearDownModule(): asyncio.set_event_loop_policy(None) @@ -63,16 +58,6 @@ def connection_lost(self, exc): self.done.set_result(None) -class MessageOutFilter(logging.Filter): - def __init__(self, msg): - self.msg = msg - - def filter(self, record): - if self.msg in record.msg: - return False - return True - - @unittest.skipIf(ssl is None, 'No ssl module') class TestSSL(test_utils.TestCase): @@ -164,7 +149,7 @@ def _create_client_ssl_context(self, *, disable_verify=True): def _silence_eof_received_warning(self): # TODO This warning has to be fixed in asyncio. logger = logging.getLogger('asyncio') - filter = MessageOutFilter('has no effect when using ssl') + filter = logging.Filter('has no effect when using ssl') logger.addFilter(filter) try: yield @@ -196,8 +181,8 @@ def test_create_server_ssl_1(self): TOTAL_CNT = 25 # total number of clients that test will create TIMEOUT = support.LONG_TIMEOUT # timeout for this test - A_DATA = b'A' * 1024 * BUF_MULTIPLIER - B_DATA = b'B' * 1024 * BUF_MULTIPLIER + A_DATA = b'A' * 1024 * 1024 + B_DATA = b'B' * 1024 * 1024 sslctx = self._create_server_ssl_context( test_utils.ONLYCERT, test_utils.ONLYKEY @@ -292,8 +277,8 @@ def test_create_connection_ssl_1(self): CNT = 0 TOTAL_CNT = 25 - A_DATA = b'A' * 1024 * BUF_MULTIPLIER - B_DATA = b'B' * 1024 * BUF_MULTIPLIER + A_DATA = b'A' * 1024 * 1024 + B_DATA = b'B' * 1024 * 1024 sslctx = self._create_server_ssl_context( test_utils.ONLYCERT, @@ -1039,8 +1024,8 @@ def test_create_server_ssl_over_ssl(self): TOTAL_CNT = 25 # total number of clients that test will create TIMEOUT = support.LONG_TIMEOUT # timeout for this test - A_DATA = b'A' * 1024 * BUF_MULTIPLIER - B_DATA = b'B' * 1024 * BUF_MULTIPLIER + A_DATA = b'A' * 1024 * 1024 + B_DATA = b'B' * 1024 * 1024 sslctx_1 = self._create_server_ssl_context( test_utils.ONLYCERT, test_utils.ONLYKEY) @@ -1183,7 +1168,7 @@ def test_shutdown_cleanly(self): CNT = 0 TOTAL_CNT = 25 - A_DATA = b'A' * 1024 * BUF_MULTIPLIER + A_DATA = b'A' * 1024 * 1024 sslctx = self._create_server_ssl_context( test_utils.ONLYCERT, test_utils.ONLYKEY) diff --git a/Lib/test/test_asyncio/test_streams.py b/Lib/test/test_asyncio/test_streams.py index 0c49099bc499a5..098a0da344d0fb 100644 --- a/Lib/test/test_asyncio/test_streams.py +++ b/Lib/test/test_asyncio/test_streams.py @@ -864,25 +864,6 @@ def test_streamreaderprotocol_constructor_use_global_loop(self): self.assertEqual(cm.filename, __file__) self.assertIs(protocol._loop, self.loop) - def test_multiple_drain(self): - # See https://github.com/python/cpython/issues/74116 - drained = 0 - - async def drainer(stream): - nonlocal drained - await stream._drain_helper() - drained += 1 - - async def main(): - loop = asyncio.get_running_loop() - stream = asyncio.streams.FlowControlMixin(loop) - stream.pause_writing() - loop.call_later(0.1, stream.resume_writing) - await asyncio.gather(*[drainer(stream) for _ in range(10)]) - self.assertEqual(drained, 10) - - self.loop.run_until_complete(main()) - def test_drain_raises(self): # See http://bugs.python.org/issue25441 diff --git a/Lib/test/test_asyncio/test_subprocess.py b/Lib/test/test_asyncio/test_subprocess.py index 961c463f8dc11b..09a5c390b36299 100644 --- a/Lib/test/test_asyncio/test_subprocess.py +++ b/Lib/test/test_asyncio/test_subprocess.py @@ -50,6 +50,8 @@ def setUp(self): def create_transport(self, waiter=None): protocol = mock.Mock() + protocol.connection_made._is_coroutine = False + protocol.process_exited._is_coroutine = False transport = TestSubprocessTransport( self.loop, protocol, ['test'], False, None, None, None, 0, waiter=waiter) @@ -700,32 +702,6 @@ class SubprocessPidfdWatcherTests(SubprocessWatcherMixin, test_utils.TestCase): Watcher = unix_events.PidfdChildWatcher - - class GenericWatcherTests(test_utils.TestCase): - - def test_create_subprocess_fails_with_inactive_watcher(self): - watcher = mock.create_autospec( - asyncio.AbstractChildWatcher, - **{"__enter__.return_value.is_active.return_value": False} - ) - - async def execute(): - asyncio.set_child_watcher(watcher) - - with self.assertRaises(RuntimeError): - await subprocess.create_subprocess_exec( - os_helper.FakePath(sys.executable), '-c', 'pass') - - watcher.add_child_handler.assert_not_called() - - with asyncio.Runner(loop_factory=asyncio.new_event_loop) as runner: - self.assertIsNone(runner.run(execute())) - self.assertListEqual(watcher.mock_calls, [ - mock.call.__enter__(), - mock.call.__enter__().is_active(), - mock.call.__exit__(RuntimeError, mock.ANY, mock.ANY), - ]) - else: # Windows class SubprocessProactorTests(SubprocessMixin, test_utils.TestCase): @@ -736,5 +712,25 @@ def setUp(self): self.set_event_loop(self.loop) +class GenericWatcherTests: + + def test_create_subprocess_fails_with_inactive_watcher(self): + + async def execute(): + watcher = mock.create_authspec(asyncio.AbstractChildWatcher) + watcher.is_active.return_value = False + asyncio.set_child_watcher(watcher) + + with self.assertRaises(RuntimeError): + await subprocess.create_subprocess_exec( + os_helper.FakePath(sys.executable), '-c', 'pass') + + watcher.add_child_handler.assert_not_called() + + self.assertIsNone(self.loop.run_until_complete(execute())) + + + + if __name__ == '__main__': unittest.main() diff --git a/Lib/test/test_asyncio/test_taskgroups.py b/Lib/test/test_asyncio/test_taskgroups.py index 6a0231f2859a62..69369a6100a8fd 100644 --- a/Lib/test/test_asyncio/test_taskgroups.py +++ b/Lib/test/test_asyncio/test_taskgroups.py @@ -1,10 +1,9 @@ -# Adapted with permission from the EdgeDB project; -# license: PSFL. +# Adapted with permission from the EdgeDB project. import asyncio import contextvars -import contextlib + from asyncio import taskgroups import unittest @@ -123,8 +122,10 @@ async def runner(): self.assertTrue(t2.cancelled()) async def test_cancel_children_on_child_error(self): - # When a child task raises an error, the rest of the children - # are cancelled and the errors are gathered into an EG. + """ + When a child task raises an error, the rest of the children + are cancelled and the errors are gathered into an EG. + """ NUM = 0 t2_cancel = False @@ -230,29 +231,29 @@ async def runner(): self.assertEqual(NUM, 15) - async def test_taskgroup_08(self): + async def test_cancellation_in_body(self): async def foo(): - try: - await asyncio.sleep(10) - finally: - 1 / 0 + await asyncio.sleep(0.1) + 1 / 0 async def runner(): async with taskgroups.TaskGroup() as g: for _ in range(5): g.create_task(foo()) - await asyncio.sleep(10) + try: + await asyncio.sleep(10) + except asyncio.CancelledError: + raise r = asyncio.create_task(runner()) await asyncio.sleep(0.1) self.assertFalse(r.done()) r.cancel() - with self.assertRaises(ExceptionGroup) as cm: + with self.assertRaises(asyncio.CancelledError) as cm: await r - self.assertEqual(get_error_types(cm.exception), {ZeroDivisionError}) async def test_taskgroup_09(self): @@ -316,10 +317,8 @@ async def runner(): async def test_taskgroup_11(self): async def foo(): - try: - await asyncio.sleep(10) - finally: - 1 / 0 + await asyncio.sleep(0.1) + 1 / 0 async def runner(): async with taskgroups.TaskGroup(): @@ -327,26 +326,24 @@ async def runner(): for _ in range(5): g2.create_task(foo()) - await asyncio.sleep(10) + try: + await asyncio.sleep(10) + except asyncio.CancelledError: + raise r = asyncio.create_task(runner()) await asyncio.sleep(0.1) self.assertFalse(r.done()) r.cancel() - with self.assertRaises(ExceptionGroup) as cm: + with self.assertRaises(asyncio.CancelledError): await r - self.assertEqual(get_error_types(cm.exception), {ExceptionGroup}) - self.assertEqual(get_error_types(cm.exception.exceptions[0]), {ZeroDivisionError}) - async def test_taskgroup_12(self): async def foo(): - try: - await asyncio.sleep(10) - finally: - 1 / 0 + await asyncio.sleep(0.1) + 1 / 0 async def runner(): async with taskgroups.TaskGroup() as g1: @@ -356,19 +353,19 @@ async def runner(): for _ in range(5): g2.create_task(foo()) - await asyncio.sleep(10) + try: + await asyncio.sleep(10) + except asyncio.CancelledError: + raise r = asyncio.create_task(runner()) await asyncio.sleep(0.1) self.assertFalse(r.done()) r.cancel() - with self.assertRaises(ExceptionGroup) as cm: + with self.assertRaises(asyncio.CancelledError): await r - self.assertEqual(get_error_types(cm.exception), {ExceptionGroup}) - self.assertEqual(get_error_types(cm.exception.exceptions[0]), {ZeroDivisionError}) - async def test_taskgroup_13(self): async def crash_after(t): @@ -428,9 +425,8 @@ async def runner(): self.assertFalse(r.done()) r.cancel() - with self.assertRaises(ExceptionGroup) as cm: + with self.assertRaises(asyncio.CancelledError): await r - self.assertEqual(get_error_types(cm.exception), {ZeroDivisionError}) async def test_taskgroup_16(self): @@ -456,9 +452,8 @@ async def runner(): self.assertFalse(r.done()) r.cancel() - with self.assertRaises(ExceptionGroup) as cm: + with self.assertRaises(asyncio.CancelledError): await r - self.assertEqual(get_error_types(cm.exception), {ZeroDivisionError}) async def test_taskgroup_17(self): NUM = 0 @@ -727,58 +722,6 @@ async def coro(val): await t2 self.assertEqual(2, ctx.get(cvar)) - async def test_taskgroup_no_create_task_after_failure(self): - async def coro1(): - await asyncio.sleep(0.001) - 1 / 0 - async def coro2(g): - try: - await asyncio.sleep(1) - except asyncio.CancelledError: - with self.assertRaises(RuntimeError): - g.create_task(c1 := coro1()) - # We still have to await c1 to avoid a warning - with self.assertRaises(ZeroDivisionError): - await c1 - - with self.assertRaises(ExceptionGroup) as cm: - async with taskgroups.TaskGroup() as g: - g.create_task(coro1()) - g.create_task(coro2(g)) - - self.assertEqual(get_error_types(cm.exception), {ZeroDivisionError}) - - async def test_taskgroup_context_manager_exit_raises(self): - # See https://github.com/python/cpython/issues/95289 - class CustomException(Exception): - pass - - async def raise_exc(): - raise CustomException - - @contextlib.asynccontextmanager - async def database(): - try: - yield - finally: - raise CustomException - - async def main(): - task = asyncio.current_task() - try: - async with taskgroups.TaskGroup() as tg: - async with database(): - tg.create_task(raise_exc()) - await asyncio.sleep(1) - except* CustomException as err: - self.assertEqual(task.cancelling(), 0) - self.assertEqual(len(err.exceptions), 2) - - else: - self.fail('CustomException not raised') - - await asyncio.create_task(main()) - if __name__ == "__main__": unittest.main() diff --git a/Lib/test/test_asyncio/test_tasks.py b/Lib/test/test_asyncio/test_tasks.py index de735ba77aae96..6458859db2d127 100644 --- a/Lib/test/test_asyncio/test_tasks.py +++ b/Lib/test/test_asyncio/test_tasks.py @@ -1,18 +1,22 @@ """Tests for tasks.py.""" import collections +import contextlib import contextvars +import functools import gc import io import random import re import sys +import textwrap import traceback import unittest from unittest import mock from types import GenericAlias import asyncio +from asyncio import coroutines from asyncio import futures from asyncio import tasks from test.test_asyncio import utils as test_utils @@ -1649,7 +1653,6 @@ async def fn2(): self.assertTrue(asyncio.iscoroutinefunction(fn2)) self.assertFalse(asyncio.iscoroutinefunction(mock.Mock())) - self.assertTrue(asyncio.iscoroutinefunction(mock.AsyncMock())) def test_coroutine_non_gen_function(self): async def func(): @@ -2380,7 +2383,13 @@ def add_done_callback(self, *args, **kwargs): return super().add_done_callback(*args, **kwargs) class Task(CommonFuture, BaseTask): - pass + def __init__(self, *args, **kwargs): + self._check_future_called = 0 + super().__init__(*args, **kwargs) + + def _check_future(self, future): + self._check_future_called += 1 + return super()._check_future(future) class Future(CommonFuture, BaseFuture): pass @@ -2406,6 +2415,8 @@ async def func(): dict(fut.calls), {'add_done_callback': 1}) + self.assertEqual(1, task._check_future_called) + # Add patched Task & Future back to the test case cls.Task = Task cls.Future = Future diff --git a/Lib/test/test_asyncio/test_timeouts.py b/Lib/test/test_asyncio/test_timeouts.py index b9bac6f783776b..ef1ab0acb390d2 100644 --- a/Lib/test/test_asyncio/test_timeouts.py +++ b/Lib/test/test_asyncio/test_timeouts.py @@ -4,6 +4,7 @@ import time import asyncio +from asyncio import tasks def tearDownModule(): @@ -105,30 +106,6 @@ async def test_timeout_zero(self): self.assertLess(t1-t0, 2) self.assertTrue(t0 <= cm.when() <= t1) - async def test_timeout_zero_sleep_zero(self): - loop = asyncio.get_running_loop() - t0 = loop.time() - with self.assertRaises(TimeoutError): - async with asyncio.timeout(0) as cm: - await asyncio.sleep(0) - t1 = loop.time() - self.assertTrue(cm.expired()) - # 2 sec for slow CI boxes - self.assertLess(t1-t0, 2) - self.assertTrue(t0 <= cm.when() <= t1) - - async def test_timeout_in_the_past_sleep_zero(self): - loop = asyncio.get_running_loop() - t0 = loop.time() - with self.assertRaises(TimeoutError): - async with asyncio.timeout(-11) as cm: - await asyncio.sleep(0) - t1 = loop.time() - self.assertTrue(cm.expired()) - # 2 sec for slow CI boxes - self.assertLess(t1-t0, 2) - self.assertTrue(t0 >= cm.when() <= t1) - async def test_foreign_exception_passed(self): with self.assertRaises(KeyError): async with asyncio.timeout(0.01) as cm: diff --git a/Lib/test/test_asyncio/test_unix_events.py b/Lib/test/test_asyncio/test_unix_events.py index 5bad21ecbae4af..2f68459d30cd48 100644 --- a/Lib/test/test_asyncio/test_unix_events.py +++ b/Lib/test/test_asyncio/test_unix_events.py @@ -9,6 +9,7 @@ import socket import stat import sys +import tempfile import threading import unittest from unittest import mock @@ -314,15 +315,11 @@ def test_create_unix_connection_pathlib(self): self.loop.run_until_complete(coro) def test_create_unix_server_existing_path_nonsock(self): - path = test_utils.gen_unix_socket_path() - self.addCleanup(os_helper.unlink, path) - # create the file - open(path, "wb").close() - - coro = self.loop.create_unix_server(lambda: None, path) - with self.assertRaisesRegex(OSError, - 'Address.*is already in use'): - self.loop.run_until_complete(coro) + with tempfile.NamedTemporaryFile() as file: + coro = self.loop.create_unix_server(lambda: None, file.name) + with self.assertRaisesRegex(OSError, + 'Address.*is already in use'): + self.loop.run_until_complete(coro) def test_create_unix_server_ssl_bool(self): coro = self.loop.create_unix_server(lambda: None, path='spam', @@ -359,18 +356,20 @@ def test_create_unix_server_path_dgram(self): 'no socket.SOCK_NONBLOCK (linux only)') @socket_helper.skip_unless_bind_unix_socket def test_create_unix_server_path_stream_bittype(self): - fn = test_utils.gen_unix_socket_path() - self.addCleanup(os_helper.unlink, fn) - - sock = socket.socket(socket.AF_UNIX, - socket.SOCK_STREAM | socket.SOCK_NONBLOCK) - with sock: - sock.bind(fn) - coro = self.loop.create_unix_server(lambda: None, path=None, - sock=sock) - srv = self.loop.run_until_complete(coro) - srv.close() - self.loop.run_until_complete(srv.wait_closed()) + sock = socket.socket( + socket.AF_UNIX, socket.SOCK_STREAM | socket.SOCK_NONBLOCK) + with tempfile.NamedTemporaryFile() as file: + fn = file.name + try: + with sock: + sock.bind(fn) + coro = self.loop.create_unix_server(lambda: None, path=None, + sock=sock) + srv = self.loop.run_until_complete(coro) + srv.close() + self.loop.run_until_complete(srv.wait_closed()) + finally: + os.unlink(fn) def test_create_unix_server_ssl_timeout_with_plain_sock(self): coro = self.loop.create_unix_server(lambda: None, path='spam', @@ -1531,7 +1530,7 @@ def test_sigchld_child_reaped_elsewhere(self, m_waitpid): self.watcher._sig_chld() if isinstance(self.watcher, asyncio.FastChildWatcher): - # here the FastChildWatcher enters a deadlock + # here the FastChildWatche enters a deadlock # (there is no way to prevent it) self.assertFalse(callback.called) else: diff --git a/Lib/test/test_asyncio/utils.py b/Lib/test/test_asyncio/utils.py index 96be5a1c3bcf77..c32494d40ccea8 100644 --- a/Lib/test/test_asyncio/utils.py +++ b/Lib/test/test_asyncio/utils.py @@ -11,7 +11,9 @@ import socket import socketserver import sys +import tempfile import threading +import time import unittest import weakref @@ -32,7 +34,6 @@ from asyncio import tasks from asyncio.log import logger from test import support -from test.support import socket_helper from test.support import threading_helper @@ -108,14 +109,13 @@ async def once(): def run_until(loop, pred, timeout=support.SHORT_TIMEOUT): - delay = 0.001 - for _ in support.busy_retry(timeout, error=False): - if pred(): - break - loop.run_until_complete(tasks.sleep(delay)) - delay = max(delay * 2, 1.0) - else: - raise futures.TimeoutError() + deadline = time.monotonic() + timeout + while not pred(): + if timeout is not None: + timeout = deadline - time.monotonic() + if timeout <= 0: + raise futures.TimeoutError() + loop.run_until_complete(tasks.sleep(0.001)) def run_once(loop): @@ -250,7 +250,8 @@ class UnixSSLWSGIServer(SSLWSGIServerMixin, SilentUnixWSGIServer): def gen_unix_socket_path(): - return socket_helper.create_unix_domain_name() + with tempfile.NamedTemporaryFile() as file: + return file.name @contextlib.contextmanager diff --git a/Lib/test/test_asyncore.py b/Lib/test/test_asyncore.py index 5a037fb9c5d595..98ccd3a9304deb 100644 --- a/Lib/test/test_asyncore.py +++ b/Lib/test/test_asyncore.py @@ -76,7 +76,8 @@ def capture_server(evt, buf, serv): pass else: n = 200 - for _ in support.busy_retry(support.SHORT_TIMEOUT): + start = time.monotonic() + while n > 0 and time.monotonic() - start < 3.0: r, w, e = select.select([conn], [], [], 0.1) if r: n -= 1 @@ -85,8 +86,7 @@ def capture_server(evt, buf, serv): buf.write(data.replace(b'\n', b'')) if b'\n' in data: break - if n <= 0: - break + time.sleep(0.01) conn.close() finally: diff --git a/Lib/test/test_atexit.py b/Lib/test/test_atexit.py index 913b7556be83af..7ac063cfc78d3a 100644 --- a/Lib/test/test_atexit.py +++ b/Lib/test/test_atexit.py @@ -1,5 +1,6 @@ import atexit import os +import sys import textwrap import unittest from test import support diff --git a/Lib/test/test_audit.py b/Lib/test/test_audit.py index 09b3333afe184f..0fa2d74835cba6 100644 --- a/Lib/test/test_audit.py +++ b/Lib/test/test_audit.py @@ -20,7 +20,7 @@ class AuditTest(unittest.TestCase): @support.requires_subprocess() def do_test(self, *args): with subprocess.Popen( - [sys.executable, "-X utf8", AUDIT_TESTS_PY, *args], + [sys.executable, "-Xutf8", AUDIT_TESTS_PY, *args], encoding="utf-8", stdout=subprocess.PIPE, stderr=subprocess.PIPE, @@ -35,7 +35,7 @@ def do_test(self, *args): def run_python(self, *args): events = [] with subprocess.Popen( - [sys.executable, "-X utf8", AUDIT_TESTS_PY, *args], + [sys.executable, "-Xutf8", AUDIT_TESTS_PY, *args], encoding="utf-8", stdout=subprocess.PIPE, stderr=subprocess.PIPE, @@ -155,7 +155,10 @@ def test_http(self): def test_sqlite3(self): - sqlite3 = import_helper.import_module("sqlite3") + try: + import sqlite3 + except ImportError: + return returncode, events, stderr = self.run_python("test_sqlite3") if returncode: self.fail(stderr) @@ -173,32 +176,5 @@ def test_sqlite3(self): self.assertEqual(actual, expected) - def test_sys_getframe(self): - returncode, events, stderr = self.run_python("test_sys_getframe") - if returncode: - self.fail(stderr) - - if support.verbose: - print(*events, sep='\n') - actual = [(ev[0], ev[2]) for ev in events] - expected = [("sys._getframe", "test_sys_getframe")] - - self.assertEqual(actual, expected) - - - def test_wmi_exec_query(self): - import_helper.import_module("_wmi") - returncode, events, stderr = self.run_python("test_wmi_exec_query") - if returncode: - self.fail(stderr) - - if support.verbose: - print(*events, sep='\n') - actual = [(ev[0], ev[2]) for ev in events] - expected = [("_wmi.exec_query", "SELECT * FROM Win32_OperatingSystem")] - - self.assertEqual(actual, expected) - - if __name__ == "__main__": unittest.main() diff --git a/Lib/test/test_base64.py b/Lib/test/test_base64.py index fa03fa1d61ceab..217f2945468844 100644 --- a/Lib/test/test_base64.py +++ b/Lib/test/test_base64.py @@ -31,8 +31,6 @@ def test_encodebytes(self): b"YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNE" b"RUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0\nNT" b"Y3ODkhQCMwXiYqKCk7Ojw+LC4gW117fQ==\n") - eq(base64.encodebytes(b"Aladdin:open sesame"), - b"QWxhZGRpbjpvcGVuIHNlc2FtZQ==\n") # Non-bytes eq(base64.encodebytes(bytearray(b'abc')), b'YWJj\n') eq(base64.encodebytes(memoryview(b'abc')), b'YWJj\n') @@ -52,8 +50,6 @@ def test_decodebytes(self): b"ABCDEFGHIJKLMNOPQRSTUVWXYZ" b"0123456789!@#0^&*();:<>,. []{}") eq(base64.decodebytes(b''), b'') - eq(base64.decodebytes(b"QWxhZGRpbjpvcGVuIHNlc2FtZQ==\n"), - b"Aladdin:open sesame") # Non-bytes eq(base64.decodebytes(bytearray(b'YWJj\n')), b'abc') eq(base64.decodebytes(memoryview(b'YWJj\n')), b'abc') @@ -766,6 +762,14 @@ def tearDown(self): def get_output(self, *args): return script_helper.assert_python_ok('-m', 'base64', *args).out + def test_encode_decode(self): + output = self.get_output('-t') + self.assertSequenceEqual(output.splitlines(), ( + b"b'Aladdin:open sesame'", + br"b'QWxhZGRpbjpvcGVuIHNlc2FtZQ==\n'", + b"b'Aladdin:open sesame'", + )) + def test_encode_file(self): with open(os_helper.TESTFN, 'wb') as fp: fp.write(b'a\xffb\n') diff --git a/Lib/test/test_bdb.py b/Lib/test/test_bdb.py index 87a5ac308a12df..6ec59531fa88f0 100644 --- a/Lib/test/test_bdb.py +++ b/Lib/test/test_bdb.py @@ -59,7 +59,6 @@ from itertools import islice, repeat from test.support import import_helper from test.support import os_helper -from test.support import patch_list class BdbException(Exception): pass @@ -714,18 +713,9 @@ def test_until_in_caller_frame(self): with TracerRun(self) as tracer: tracer.runcall(tfunc_main) - @patch_list(sys.meta_path) def test_skip(self): # Check that tracing is skipped over the import statement in # 'tfunc_import()'. - - # Remove all but the standard importers. - sys.meta_path[:] = ( - item - for item in sys.meta_path - if item.__module__.startswith('_frozen_importlib') - ) - code = """ def main(): lno = 3 diff --git a/Lib/test/test_binascii.py b/Lib/test/test_binascii.py index a2d7d0293ce1ae..7087d7a471d3f4 100644 --- a/Lib/test/test_binascii.py +++ b/Lib/test/test_binascii.py @@ -4,7 +4,7 @@ import binascii import array import re -from test.support import bigmemtest, _1G, _4G +from test.support import bigmemtest, _1G, _4G, warnings_helper # Note: "*_hex" functions are aliases for "(un)hexlify" diff --git a/Lib/test/test_bisect.py b/Lib/test/test_bisect.py index 97204d4cad3871..20f8b9d7c0aa87 100644 --- a/Lib/test/test_bisect.py +++ b/Lib/test/test_bisect.py @@ -257,40 +257,6 @@ def test_insort(self): target ) - def test_insort_keynotNone(self): - x = [] - y = {"a": 2, "b": 1} - for f in (self.module.insort_left, self.module.insort_right): - self.assertRaises(TypeError, f, x, y, key = "b") - - def test_lt_returns_non_bool(self): - class A: - def __init__(self, val): - self.val = val - def __lt__(self, other): - return "nonempty" if self.val < other.val else "" - - data = [A(i) for i in range(100)] - i1 = self.module.bisect_left(data, A(33)) - i2 = self.module.bisect_right(data, A(33)) - self.assertEqual(i1, 33) - self.assertEqual(i2, 34) - - def test_lt_returns_notimplemented(self): - class A: - def __init__(self, val): - self.val = val - def __lt__(self, other): - return NotImplemented - def __gt__(self, other): - return self.val > other.val - - data = [A(i) for i in range(100)] - i1 = self.module.bisect_left(data, A(40)) - i2 = self.module.bisect_right(data, A(40)) - self.assertEqual(i1, 40) - self.assertEqual(i2, 41) - class TestBisectPython(TestBisect, unittest.TestCase): module = py_bisect diff --git a/Lib/test/test_bool.py b/Lib/test/test_bool.py index f46f21da8da351..4b32aad2419f4a 100644 --- a/Lib/test/test_bool.py +++ b/Lib/test/test_bool.py @@ -369,13 +369,6 @@ def f(x): f(x) self.assertGreaterEqual(x.count, 1) - def test_bool_new(self): - self.assertIs(bool.__new__(bool), False) - self.assertIs(bool.__new__(bool, 1), True) - self.assertIs(bool.__new__(bool, 0), False) - self.assertIs(bool.__new__(bool, False), False) - self.assertIs(bool.__new__(bool, True), True) - if __name__ == "__main__": unittest.main() diff --git a/Lib/test/test_buffer.py b/Lib/test/test_buffer.py index 8ac3b7e7eb29d1..468c6ea9def923 100644 --- a/Lib/test/test_buffer.py +++ b/Lib/test/test_buffer.py @@ -64,7 +64,7 @@ '?':0, 'c':0, 'b':0, 'B':0, 'h':0, 'H':0, 'i':0, 'I':0, 'l':0, 'L':0, 'n':0, 'N':0, - 'e':0, 'f':0, 'd':0, 'P':0 + 'f':0, 'd':0, 'P':0 } # NumPy does not have 'n' or 'N': @@ -89,8 +89,7 @@ 'i':(-(1<<31), 1<<31), 'I':(0, 1<<32), 'l':(-(1<<31), 1<<31), 'L':(0, 1<<32), 'q':(-(1<<63), 1<<63), 'Q':(0, 1<<64), - 'e':(-65519, 65520), 'f':(-(1<<63), 1<<63), - 'd':(-(1<<1023), 1<<1023) + 'f':(-(1<<63), 1<<63), 'd':(-(1<<1023), 1<<1023) } def native_type_range(fmt): @@ -99,8 +98,6 @@ def native_type_range(fmt): lh = (0, 256) elif fmt == '?': lh = (0, 2) - elif fmt == 'e': - lh = (-65519, 65520) elif fmt == 'f': lh = (-(1<<63), 1<<63) elif fmt == 'd': @@ -128,10 +125,7 @@ def native_type_range(fmt): for fmt in fmtdict['@']: fmtdict['@'][fmt] = native_type_range(fmt) -# Format codes suppported by the memoryview object MEMORYVIEW = NATIVE.copy() - -# Format codes suppported by array.array ARRAY = NATIVE.copy() for k in NATIVE: if not k in "bBhHiIlLfd": @@ -170,7 +164,7 @@ def randrange_fmt(mode, char, obj): x = b'\x01' if char == '?': x = bool(x) - if char in 'efd': + if char == 'f' or char == 'd': x = struct.pack(char, x) x = struct.unpack(char, x)[0] return x @@ -2252,7 +2246,7 @@ def test_py_buffer_to_contiguous(self): ### ### Fortran output: ### --------------- - ### >>> fortran_buf = nd.tobytes(order='F') + ### >>> fortran_buf = nd.tostring(order='F') ### >>> fortran_buf ### b'\x00\x04\x08\x01\x05\t\x02\x06\n\x03\x07\x0b' ### @@ -2295,7 +2289,7 @@ def test_py_buffer_to_contiguous(self): self.assertEqual(memoryview(y), memoryview(nd)) if numpy_array: - self.assertEqual(b, na.tobytes(order='C')) + self.assertEqual(b, na.tostring(order='C')) # 'F' request if f == 0: # 'C' to 'F' @@ -2318,7 +2312,7 @@ def test_py_buffer_to_contiguous(self): self.assertEqual(memoryview(y), memoryview(nd)) if numpy_array: - self.assertEqual(b, na.tobytes(order='F')) + self.assertEqual(b, na.tostring(order='F')) # 'A' request if f == ND_FORTRAN: @@ -2342,7 +2336,7 @@ def test_py_buffer_to_contiguous(self): self.assertEqual(memoryview(y), memoryview(nd)) if numpy_array: - self.assertEqual(b, na.tobytes(order='A')) + self.assertEqual(b, na.tostring(order='A')) # multi-dimensional, non-contiguous input nd = ndarray(list(range(12)), shape=[3, 4], flags=ND_WRITABLE|ND_PIL) diff --git a/Lib/test/test_bufio.py b/Lib/test/test_bufio.py index dc9a82dc635318..17151b13615e94 100644 --- a/Lib/test/test_bufio.py +++ b/Lib/test/test_bufio.py @@ -1,4 +1,5 @@ import unittest +from test import support from test.support import os_helper import io # C implementation. diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py index 8c9c1e506752ea..d5eaf291a5ca28 100644 --- a/Lib/test/test_builtin.py +++ b/Lib/test/test_builtin.py @@ -737,6 +737,11 @@ def test_exec_globals(self): self.assertRaises(TypeError, exec, code, {'__builtins__': 123}) + # no __build_class__ function + code = compile("class A: pass", "", "exec") + self.assertRaisesRegex(NameError, "__build_class__ not found", + exec, code, {'__builtins__': {}}) + class frozendict_error(Exception): pass @@ -753,15 +758,6 @@ def __setitem__(self, key, value): self.assertRaises(frozendict_error, exec, code, {'__builtins__': frozen_builtins}) - # no __build_class__ function - code = compile("class A: pass", "", "exec") - self.assertRaisesRegex(NameError, "__build_class__ not found", - exec, code, {'__builtins__': {}}) - # __build_class__ in a custom __builtins__ - exec(code, {'__builtins__': frozen_builtins}) - self.assertRaisesRegex(NameError, "__build_class__ not found", - exec, code, {'__builtins__': frozendict()}) - # read-only globals namespace = frozendict({}) code = compile("x=1", "test", "exec") @@ -2072,11 +2068,6 @@ def test_envar_ignored_when_hook_is_set(self): breakpoint() mock.assert_not_called() - def test_runtime_error_when_hook_is_lost(self): - del sys.breakpointhook - with self.assertRaises(RuntimeError): - breakpoint() - @unittest.skipUnless(pty, "the pty and signal modules must be available") class PtyTests(unittest.TestCase): diff --git a/Lib/test/test_bytes.py b/Lib/test/test_bytes.py index 53ba1ad6f5911f..b457ff6ca849c5 100644 --- a/Lib/test/test_bytes.py +++ b/Lib/test/test_bytes.py @@ -715,24 +715,6 @@ def test_mod(self): self.assertEqual(b, b'hello,\x00world!') self.assertIs(type(b), self.type2test) - def check(fmt, vals, result): - b = self.type2test(fmt) - b = b % vals - self.assertEqual(b, result) - self.assertIs(type(b), self.type2test) - - # A set of tests adapted from test_unicode:UnicodeTest.test_formatting - check(b'...%(foo)b...', {b'foo':b"abc"}, b'...abc...') - check(b'...%(f(o)o)b...', {b'f(o)o':b"abc", b'foo':b'bar'}, b'...abc...') - check(b'...%(foo)b...', {b'foo':b"abc",b'def':123}, b'...abc...') - check(b'%*b', (5, b'abc',), b' abc') - check(b'%*b', (-5, b'abc',), b'abc ') - check(b'%*.*b', (5, 2, b'abc',), b' ab') - check(b'%*.*b', (5, 3, b'abc',), b' abc') - check(b'%i %*.*b', (10, 5, 3, b'abc',), b'10 abc') - check(b'%i%b %*.*b', (10, b'3', 5, 3, b'abc',), b'103 abc') - check(b'%c', b'a', b'a') - def test_imod(self): b = self.type2test(b'hello, %b!') orig = b @@ -1728,23 +1710,6 @@ def test_repeat_after_setslice(self): self.assertEqual(b1, b) self.assertEqual(b3, b'xcxcxc') - def test_mutating_index(self): - class Boom: - def __index__(self): - b.clear() - return 0 - - with self.subTest("tp_as_mapping"): - b = bytearray(b'Now you see me...') - with self.assertRaises(IndexError): - b[0] = Boom() - - with self.subTest("tp_as_sequence"): - _testcapi = import_helper.import_module('_testcapi') - b = bytearray(b'Now you see me...') - with self.assertRaises(IndexError): - _testcapi.sequence_setitem(b, 0, Boom()) - class AssortedBytesTest(unittest.TestCase): # diff --git a/Lib/test/test_calendar.py b/Lib/test/test_calendar.py index 3d9dcf12f2dad8..f76cbc9472a6e8 100644 --- a/Lib/test/test_calendar.py +++ b/Lib/test/test_calendar.py @@ -564,19 +564,6 @@ def test_locale_calendars(self): new_october = calendar.TextCalendar().formatmonthname(2010, 10, 10) self.assertEqual(old_october, new_october) - def test_locale_calendar_formatweekday(self): - try: - # formatweekday uses different day names based on the available width. - cal = calendar.LocaleTextCalendar(locale='en_US') - # For short widths, a centered, abbreviated name is used. - self.assertEqual(cal.formatweekday(0, 5), " Mon ") - # For really short widths, even the abbreviated name is truncated. - self.assertEqual(cal.formatweekday(0, 2), "Mo") - # For long widths, the full day name is used. - self.assertEqual(cal.formatweekday(0, 10), " Monday ") - except locale.Error: - raise unittest.SkipTest('cannot set the en_US locale') - def test_locale_html_calendar_custom_css_class_month_name(self): try: cal = calendar.LocaleHTMLCalendar(locale='') diff --git a/Lib/test/test_call.py b/Lib/test/test_call.py index c1a386228ff0d0..6936f093e3db19 100644 --- a/Lib/test/test_call.py +++ b/Lib/test/test_call.py @@ -1,5 +1,5 @@ import unittest -from test.support import cpython_only, requires_limited_api +from test.support import cpython_only try: import _testcapi except ImportError: @@ -9,15 +9,6 @@ import itertools import gc import contextlib -import sys - - -class BadStr(str): - def __eq__(self, other): - return True - def __hash__(self): - # Guaranteed different hash - return str.__hash__(self) ^ 3 class FunctionCalls(unittest.TestCase): @@ -35,18 +26,6 @@ def fn(**kw): self.assertIsInstance(res, dict) self.assertEqual(list(res.items()), expected) - def test_frames_are_popped_after_failed_calls(self): - # GH-93252: stuff blows up if we don't pop the new frame after - # recovering from failed calls: - def f(): - pass - for _ in range(1000): - try: - f(None) - except TypeError: - pass - # BOOM! - @cpython_only class CFunctionCallsErrorMessages(unittest.TestCase): @@ -154,18 +133,6 @@ def test_varargs17_kw(self): self.assertRaisesRegex(TypeError, msg, print, 0, sep=1, end=2, file=3, flush=4, foo=5) - def test_varargs18_kw(self): - # _PyArg_UnpackKeywordsWithVararg() - msg = r"invalid keyword argument for print\(\)$" - with self.assertRaisesRegex(TypeError, msg): - print(0, 1, **{BadStr('foo'): ','}) - - def test_varargs19_kw(self): - # _PyArg_UnpackKeywords() - msg = r"invalid keyword argument for round\(\)$" - with self.assertRaisesRegex(TypeError, msg): - round(1.75, **{BadStr('foo'): 1}) - def test_oldargs0_1(self): msg = r"keys\(\) takes no arguments \(1 given\)" self.assertRaisesRegex(TypeError, msg, {}.keys, 0) @@ -580,9 +547,6 @@ def testfunction_kw(self, *, kw): return self -QUICKENING_WARMUP_DELAY = 8 - - class TestPEP590(unittest.TestCase): def test_method_descriptor_flag(self): @@ -610,19 +574,9 @@ def test_vectorcall_flag(self): self.assertFalse(_testcapi.MethodDescriptorNopGet.__flags__ & Py_TPFLAGS_HAVE_VECTORCALL) self.assertTrue(_testcapi.MethodDescriptor2.__flags__ & Py_TPFLAGS_HAVE_VECTORCALL) - # Mutable heap types should inherit Py_TPFLAGS_HAVE_VECTORCALL, - # but should lose it when __call__ is overridden + # Mutable heap types should not inherit Py_TPFLAGS_HAVE_VECTORCALL class MethodDescriptorHeap(_testcapi.MethodDescriptorBase): pass - self.assertTrue(MethodDescriptorHeap.__flags__ & Py_TPFLAGS_HAVE_VECTORCALL) - MethodDescriptorHeap.__call__ = print - self.assertFalse(MethodDescriptorHeap.__flags__ & Py_TPFLAGS_HAVE_VECTORCALL) - - # Mutable heap types should not inherit Py_TPFLAGS_HAVE_VECTORCALL if - # they define __call__ directly - class MethodDescriptorHeap(_testcapi.MethodDescriptorBase): - def __call__(self): - pass self.assertFalse(MethodDescriptorHeap.__flags__ & Py_TPFLAGS_HAVE_VECTORCALL) def test_vectorcall_override(self): @@ -635,58 +589,6 @@ def test_vectorcall_override(self): f = _testcapi.MethodDescriptorNopGet() self.assertIs(f(*args), args) - def test_vectorcall_override_on_mutable_class(self): - """Setting __call__ should disable vectorcall""" - TestType = _testcapi.make_vectorcall_class() - instance = TestType() - self.assertEqual(instance(), "tp_call") - instance.set_vectorcall(TestType) - self.assertEqual(instance(), "vectorcall") # assume vectorcall is used - TestType.__call__ = lambda self: "custom" - self.assertEqual(instance(), "custom") - - def test_vectorcall_override_with_subclass(self): - """Setting __call__ on a superclass should disable vectorcall""" - SuperType = _testcapi.make_vectorcall_class() - class DerivedType(SuperType): - pass - - instance = DerivedType() - - # Derived types with its own vectorcall should be unaffected - UnaffectedType1 = _testcapi.make_vectorcall_class(DerivedType) - UnaffectedType2 = _testcapi.make_vectorcall_class(SuperType) - - # Aside: Quickly check that the C helper actually made derived types - self.assertTrue(issubclass(UnaffectedType1, DerivedType)) - self.assertTrue(issubclass(UnaffectedType2, SuperType)) - - # Initial state: tp_call - self.assertEqual(instance(), "tp_call") - self.assertEqual(_testcapi.has_vectorcall_flag(SuperType), True) - self.assertEqual(_testcapi.has_vectorcall_flag(DerivedType), True) - self.assertEqual(_testcapi.has_vectorcall_flag(UnaffectedType1), True) - self.assertEqual(_testcapi.has_vectorcall_flag(UnaffectedType2), True) - - # Setting the vectorcall function - instance.set_vectorcall(SuperType) - - self.assertEqual(instance(), "vectorcall") - self.assertEqual(_testcapi.has_vectorcall_flag(SuperType), True) - self.assertEqual(_testcapi.has_vectorcall_flag(DerivedType), True) - self.assertEqual(_testcapi.has_vectorcall_flag(UnaffectedType1), True) - self.assertEqual(_testcapi.has_vectorcall_flag(UnaffectedType2), True) - - # Setting __call__ should remove vectorcall from all subclasses - SuperType.__call__ = lambda self: "custom" - - self.assertEqual(instance(), "custom") - self.assertEqual(_testcapi.has_vectorcall_flag(SuperType), False) - self.assertEqual(_testcapi.has_vectorcall_flag(DerivedType), False) - self.assertEqual(_testcapi.has_vectorcall_flag(UnaffectedType1), True) - self.assertEqual(_testcapi.has_vectorcall_flag(UnaffectedType2), True) - - def test_vectorcall(self): # Test a bunch of different ways to call objects: # 1. vectorcall using PyVectorcall_Call() @@ -763,60 +665,6 @@ def __call__(self, *args): self.assertEqual(expected, meth(*args1, **kwargs)) self.assertEqual(expected, wrapped(*args, **kwargs)) - def test_setvectorcall(self): - from _testcapi import function_setvectorcall - def f(num): return num + 1 - assert_equal = self.assertEqual - num = 10 - assert_equal(11, f(num)) - function_setvectorcall(f) - # make sure specializer is triggered by running > 50 times - for _ in range(10 * QUICKENING_WARMUP_DELAY): - assert_equal("overridden", f(num)) - - def test_setvectorcall_load_attr_specialization_skip(self): - from _testcapi import function_setvectorcall - - class X: - def __getattribute__(self, attr): - return attr - - assert_equal = self.assertEqual - x = X() - assert_equal("a", x.a) - function_setvectorcall(X.__getattribute__) - # make sure specialization doesn't trigger - # when vectorcall is overridden - for _ in range(QUICKENING_WARMUP_DELAY): - assert_equal("overridden", x.a) - - def test_setvectorcall_load_attr_specialization_deopt(self): - from _testcapi import function_setvectorcall - - class X: - def __getattribute__(self, attr): - return attr - - def get_a(x): - return x.a - - assert_equal = self.assertEqual - x = X() - # trigger LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN specialization - for _ in range(QUICKENING_WARMUP_DELAY): - assert_equal("a", get_a(x)) - function_setvectorcall(X.__getattribute__) - # make sure specialized LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN - # gets deopted due to overridden vectorcall - for _ in range(QUICKENING_WARMUP_DELAY): - assert_equal("overridden", get_a(x)) - - @requires_limited_api - def test_vectorcall_limited(self): - from _testcapi import pyobject_vectorcall - obj = _testcapi.LimitedVectorCallClass() - self.assertEqual(pyobject_vectorcall(obj, (), ()), "vectorcall called") - class A: def method_two_args(self, x, y): diff --git a/Lib/test/test_capi.py b/Lib/test/test_capi.py index 94f080978b030f..95930ba40ceb51 100644 --- a/Lib/test/test_capi.py +++ b/Lib/test/test_capi.py @@ -15,7 +15,6 @@ import threading import time import unittest -import warnings import weakref from test import support from test.support import MISSING_C_DOCSTRINGS @@ -71,17 +70,16 @@ def test_no_FatalError_infinite_loop(self): 'import _testcapi;' '_testcapi.crash_no_current_thread()'], stdout=subprocess.PIPE, - stderr=subprocess.PIPE, - text=True) + stderr=subprocess.PIPE) (out, err) = p.communicate() - self.assertEqual(out, '') + self.assertEqual(out, b'') # This used to cause an infinite loop. - msg = ("Fatal Python error: PyThreadState_Get: " - "the function must be called with the GIL held, " - "after Python initialization and before Python finalization, " - "but the GIL is released " - "(the current Python thread state is NULL)") - self.assertTrue(err.rstrip().startswith(msg), + self.assertTrue(err.rstrip().startswith( + b'Fatal Python error: ' + b'PyThreadState_Get: ' + b'the function must be called with the GIL held, ' + b'but the GIL is released ' + b'(the current Python thread state is NULL)'), err) def test_memoryview_from_NULL_pointer(self): @@ -539,30 +537,6 @@ def test_heaptype_with_dict(self): inst = _testcapi.HeapCTypeWithDict() self.assertEqual({}, inst.__dict__) - def test_heaptype_with_managed_dict(self): - inst = _testcapi.HeapCTypeWithManagedDict() - inst.foo = 42 - self.assertEqual(inst.foo, 42) - self.assertEqual(inst.__dict__, {"foo": 42}) - - inst = _testcapi.HeapCTypeWithManagedDict() - self.assertEqual({}, inst.__dict__) - - a = _testcapi.HeapCTypeWithManagedDict() - b = _testcapi.HeapCTypeWithManagedDict() - a.b = b - b.a = a - del a, b - - def test_sublclassing_managed_dict(self): - - class C(_testcapi.HeapCTypeWithManagedDict): - pass - - i = C() - i.spam = i - del i - def test_heaptype_with_negative_dict(self): inst = _testcapi.HeapCTypeWithNegativeDict() inst.foo = 42 @@ -579,37 +553,6 @@ def test_heaptype_with_weakref(self): self.assertEqual(ref(), inst) self.assertEqual(inst.weakreflist, ref) - def test_heaptype_with_managed_weakref(self): - inst = _testcapi.HeapCTypeWithManagedWeakref() - ref = weakref.ref(inst) - self.assertEqual(ref(), inst) - - def test_sublclassing_managed_weakref(self): - - class C(_testcapi.HeapCTypeWithManagedWeakref): - pass - - inst = C() - ref = weakref.ref(inst) - self.assertEqual(ref(), inst) - - def test_sublclassing_managed_both(self): - - class C1(_testcapi.HeapCTypeWithManagedWeakref, _testcapi.HeapCTypeWithManagedDict): - pass - - class C2(_testcapi.HeapCTypeWithManagedDict, _testcapi.HeapCTypeWithManagedWeakref): - pass - - for cls in (C1, C2): - inst = cls() - ref = weakref.ref(inst) - self.assertEqual(ref(), inst) - inst.spam = inst - del inst - ref = weakref.ref(cls()) - self.assertIs(ref(), None) - def test_heaptype_with_buffer(self): inst = _testcapi.HeapCTypeWithBuffer() b = bytes(inst) @@ -675,108 +618,16 @@ def test_heaptype_with_custom_metaclass(self): with self.assertRaisesRegex(TypeError, msg): t = _testcapi.pytype_fromspec_meta(_testcapi.HeapCTypeMetaclassCustomNew) - def test_multiple_inheritance_ctypes_with_weakref_or_dict(self): - - with self.assertRaises(TypeError): - class Both1(_testcapi.HeapCTypeWithWeakref, _testcapi.HeapCTypeWithDict): - pass - with self.assertRaises(TypeError): - class Both2(_testcapi.HeapCTypeWithDict, _testcapi.HeapCTypeWithWeakref): - pass - - def test_multiple_inheritance_ctypes_with_weakref_or_dict_and_other_builtin(self): - - with self.assertRaises(TypeError): - class C1(_testcapi.HeapCTypeWithDict, list): - pass - - with self.assertRaises(TypeError): - class C2(_testcapi.HeapCTypeWithWeakref, list): - pass - - class C3(_testcapi.HeapCTypeWithManagedDict, list): - pass - class C4(_testcapi.HeapCTypeWithManagedWeakref, list): - pass - - inst = C3() - inst.append(0) - str(inst.__dict__) - - inst = C4() - inst.append(0) - str(inst.__weakref__) - - for cls in (_testcapi.HeapCTypeWithManagedDict, _testcapi.HeapCTypeWithManagedWeakref): - for cls2 in (_testcapi.HeapCTypeWithDict, _testcapi.HeapCTypeWithWeakref): - class S(cls, cls2): - pass - class B1(C3, cls): - pass - class B2(C4, cls): - pass - - def test_pytype_fromspec_with_repeated_slots(self): - for variant in range(2): - with self.subTest(variant=variant): - with self.assertRaises(SystemError): - _testcapi.create_type_from_repeated_slots(variant) - - @warnings_helper.ignore_warnings(category=DeprecationWarning) - def test_immutable_type_with_mutable_base(self): - # Add deprecation warning here so it's removed in 3.14 - warnings._deprecated( - 'creating immutable classes with mutable bases', remove=(3, 14)) - - class MutableBase: - def meth(self): - return 'original' - - with self.assertWarns(DeprecationWarning): - ImmutableSubclass = _testcapi.make_immutable_type_with_base( - MutableBase) - instance = ImmutableSubclass() - - self.assertEqual(instance.meth(), 'original') - - # Cannot override the static type's method - with self.assertRaisesRegex( - TypeError, - "cannot set 'meth' attribute of immutable type"): - ImmutableSubclass.meth = lambda self: 'overridden' - self.assertEqual(instance.meth(), 'original') - - # Can change the method on the mutable base - MutableBase.meth = lambda self: 'changed' - self.assertEqual(instance.meth(), 'changed') - - def test_pynumber_tobase(self): from _testcapi import pynumber_tobase - small_number = 123 - large_number = 2**64 - class IDX: - def __init__(self, val): - self.val = val - def __index__(self): - return self.val - - test_cases = ((2, '0b1111011', '0b10000000000000000000000000000000000000000000000000000000000000000'), - (8, '0o173', '0o2000000000000000000000'), - (10, '123', '18446744073709551616'), - (16, '0x7b', '0x10000000000000000')) - for base, small_target, large_target in test_cases: - with self.subTest(base=base, st=small_target, lt=large_target): - # Test for small number - self.assertEqual(pynumber_tobase(small_number, base), small_target) - self.assertEqual(pynumber_tobase(-small_number, base), '-' + small_target) - self.assertEqual(pynumber_tobase(IDX(small_number), base), small_target) - # Test for large number(out of range of a longlong,i.e.[-2**63, 2**63-1]) - self.assertEqual(pynumber_tobase(large_number, base), large_target) - self.assertEqual(pynumber_tobase(-large_number, base), '-' + large_target) - self.assertEqual(pynumber_tobase(IDX(large_number), base), large_target) - self.assertRaises(TypeError, pynumber_tobase, IDX(123.0), 10) - self.assertRaises(TypeError, pynumber_tobase, IDX('123'), 10) + self.assertEqual(pynumber_tobase(123, 2), '0b1111011') + self.assertEqual(pynumber_tobase(123, 8), '0o173') + self.assertEqual(pynumber_tobase(123, 10), '123') + self.assertEqual(pynumber_tobase(123, 16), '0x7b') + self.assertEqual(pynumber_tobase(-123, 2), '-0b1111011') + self.assertEqual(pynumber_tobase(-123, 8), '-0o173') + self.assertEqual(pynumber_tobase(-123, 10), '-123') + self.assertEqual(pynumber_tobase(-123, 16), '-0x7b') self.assertRaises(TypeError, pynumber_tobase, 123.0, 10) self.assertRaises(TypeError, pynumber_tobase, '123', 10) self.assertRaises(SystemError, pynumber_tobase, 123, 0) @@ -864,20 +715,6 @@ def test_export_symbols(self): with self.subTest(name=name): self.assertTrue(hasattr(ctypes.pythonapi, name)) - def test_clear_managed_dict(self): - - class C: - def __init__(self): - self.a = 1 - - c = C() - _testcapi.clear_managed_dict(c) - self.assertEqual(c.__dict__, {}) - c = C() - self.assertEqual(c.__dict__, {'a':1}) - _testcapi.clear_managed_dict(c) - self.assertEqual(c.__dict__, {}) - class TestPendingCalls(unittest.TestCase): @@ -1069,21 +906,6 @@ def callback(): t.start() t.join() - @threading_helper.reap_threads - @threading_helper.requires_working_threading() - def test_gilstate_ensure_no_deadlock(self): - # See https://github.com/python/cpython/issues/96071 - code = textwrap.dedent(f""" - import _testcapi - - def callback(): - print('callback called') - - _testcapi._test_thread_state(callback) - """) - ret = assert_python_ok('-X', 'tracemalloc', '-c', code) - self.assertIn(b'callback called', ret.out) - class Test_testcapi(unittest.TestCase): locals().update((name, getattr(_testcapi, name)) diff --git a/Lib/test/test_check_c_globals.py b/Lib/test/test_check_c_globals.py index 898807a5e69259..030debc452e409 100644 --- a/Lib/test/test_check_c_globals.py +++ b/Lib/test/test_check_c_globals.py @@ -1,14 +1,9 @@ import unittest import test.test_tools -from test.support.warnings_helper import save_restore_warnings_filters test.test_tools.skip_if_missing('c-analyzer') with test.test_tools.imports_under_tool('c-analyzer'): - # gh-95349: Save/restore warnings filters to leave them unchanged. - # Importing the c-analyzer imports docutils which imports pkg_resources - # which adds a warnings filter. - with save_restore_warnings_filters(): - from cpython.__main__ import main + from cpython.__main__ import main class ActualChecks(unittest.TestCase): diff --git a/Lib/test/test_cmd_line.py b/Lib/test/test_cmd_line.py index db967088804ae2..ed733d2f616665 100644 --- a/Lib/test/test_cmd_line.py +++ b/Lib/test/test_cmd_line.py @@ -25,55 +25,32 @@ def _kill_python_and_exit_code(p): returncode = p.wait() return data, returncode - class CmdLineTest(unittest.TestCase): def test_directories(self): assert_python_failure('.') assert_python_failure('< .') def verify_valid_flag(self, cmd_line): - rc, out, err = assert_python_ok(cmd_line) + rc, out, err = assert_python_ok(*cmd_line) self.assertTrue(out == b'' or out.endswith(b'\n')) self.assertNotIn(b'Traceback', out) self.assertNotIn(b'Traceback', err) - return out - - def test_help(self): - self.verify_valid_flag('-h') - self.verify_valid_flag('-?') - out = self.verify_valid_flag('--help') - lines = out.splitlines() - self.assertIn(b'usage', lines[0]) - self.assertNotIn(b'PYTHONHOME', out) - self.assertNotIn(b'-X dev', out) - self.assertLess(len(lines), 50) - def test_help_env(self): - out = self.verify_valid_flag('--help-env') - self.assertIn(b'PYTHONHOME', out) + def test_optimize(self): + self.verify_valid_flag('-O') + self.verify_valid_flag('-OO') - def test_help_xoptions(self): - out = self.verify_valid_flag('--help-xoptions') - self.assertIn(b'-X dev', out) + def test_site_flag(self): + self.verify_valid_flag('-S') - def test_help_all(self): - out = self.verify_valid_flag('--help-all') + def test_usage(self): + rc, out, err = assert_python_ok('-h') lines = out.splitlines() self.assertIn(b'usage', lines[0]) - self.assertIn(b'PYTHONHOME', out) - self.assertIn(b'-X dev', out) - # The first line contains the program name, # but the rest should be ASCII-only b''.join(lines[1:]).decode('ascii') - def test_optimize(self): - self.verify_valid_flag('-O') - self.verify_valid_flag('-OO') - - def test_site_flag(self): - self.verify_valid_flag('-S') - def test_version(self): version = ('Python %d.%d' % sys.version_info[:2]).encode("ascii") for switch in '-V', '--version', '-VV': @@ -105,8 +82,17 @@ def get_xoptions(*args): opts = get_xoptions() self.assertEqual(opts, {}) - opts = get_xoptions('-Xa', '-Xb=c,d=e') - self.assertEqual(opts, {'a': True, 'b': 'c,d=e'}) + opts = get_xoptions('-Xno_debug_ranges', '-Xdev=1234') + self.assertEqual(opts, {'no_debug_ranges': True, 'dev': '1234'}) + + @unittest.skipIf(interpreter_requires_environment(), + 'Cannot run -E tests when PYTHON env vars are required.') + def test_unknown_xoptions(self): + rc, out, err = assert_python_failure('-X', 'blech') + self.assertIn(b'Unknown value for option -X', err) + msg = b'Fatal Python error: Unknown value for option -X' + self.assertEqual(err.splitlines().count(msg), 1) + self.assertEqual(b'', out) def test_showrefcount(self): def run_python(*args): @@ -148,6 +134,7 @@ def test_xoption_frozen_modules(self): } for raw, expected in tests: cmd = ['-X', f'frozen_modules{raw}', + #'-c', 'import os; print(os.__spec__.loader.__name__, end="")'] '-c', 'import os; print(os.__spec__.loader, end="")'] with self.subTest(raw): res = assert_python_ok(*cmd) @@ -180,6 +167,7 @@ def test_relativedir_bug46421(self): # Test `python -m unittest` with a relative directory beginning with ./ # Note: We have to switch to the project's top module's directory, as per # the python unittest wiki. We will switch back when we are done. + defaultwd = os.getcwd() projectlibpath = os.path.dirname(__file__).removesuffix("test") with os_helper.change_cwd(projectlibpath): # Testing with and without ./ @@ -259,6 +247,7 @@ def test_invalid_utf8_arg(self): # # Test with default config, in the C locale, in the Python UTF-8 Mode. code = 'import sys, os; s=os.fsencode(sys.argv[1]); print(ascii(s))' + base_cmd = [sys.executable, '-c', code] def run_default(arg): cmd = [sys.executable, '-c', code, arg] @@ -865,39 +854,6 @@ def test_parsing_error(self): self.assertTrue(proc.stderr.startswith(err_msg), proc.stderr) self.assertNotEqual(proc.returncode, 0) - def test_int_max_str_digits(self): - code = "import sys; print(sys.flags.int_max_str_digits, sys.get_int_max_str_digits())" - - assert_python_failure('-X', 'int_max_str_digits', '-c', code) - assert_python_failure('-X', 'int_max_str_digits=foo', '-c', code) - assert_python_failure('-X', 'int_max_str_digits=100', '-c', code) - - assert_python_failure('-c', code, PYTHONINTMAXSTRDIGITS='foo') - assert_python_failure('-c', code, PYTHONINTMAXSTRDIGITS='100') - - def res2int(res): - out = res.out.strip().decode("utf-8") - return tuple(int(i) for i in out.split()) - - res = assert_python_ok('-c', code) - self.assertEqual(res2int(res), (-1, sys.get_int_max_str_digits())) - res = assert_python_ok('-X', 'int_max_str_digits=0', '-c', code) - self.assertEqual(res2int(res), (0, 0)) - res = assert_python_ok('-X', 'int_max_str_digits=4000', '-c', code) - self.assertEqual(res2int(res), (4000, 4000)) - res = assert_python_ok('-X', 'int_max_str_digits=100000', '-c', code) - self.assertEqual(res2int(res), (100000, 100000)) - - res = assert_python_ok('-c', code, PYTHONINTMAXSTRDIGITS='0') - self.assertEqual(res2int(res), (0, 0)) - res = assert_python_ok('-c', code, PYTHONINTMAXSTRDIGITS='4000') - self.assertEqual(res2int(res), (4000, 4000)) - res = assert_python_ok( - '-X', 'int_max_str_digits=6000', '-c', code, - PYTHONINTMAXSTRDIGITS='4000' - ) - self.assertEqual(res2int(res), (6000, 6000)) - @unittest.skipIf(interpreter_requires_environment(), 'Cannot run -I tests when PYTHON env vars are required.') @@ -936,7 +892,6 @@ def test_sys_flags_not_set(self): PYTHONSAFEPATH="1", ) - class SyntaxErrorTests(unittest.TestCase): def check_string(self, code): proc = subprocess.run([sys.executable, "-"], input=code, diff --git a/Lib/test/test_cmd_line_script.py b/Lib/test/test_cmd_line_script.py index 9e98edf2146ca9..d783af65839ad9 100644 --- a/Lib/test/test_cmd_line_script.py +++ b/Lib/test/test_cmd_line_script.py @@ -549,10 +549,10 @@ def test_pep_409_verbiage(self): script_name = _make_test_script(script_dir, 'script', script) exitcode, stdout, stderr = assert_python_failure(script_name) text = stderr.decode('ascii').split('\n') - self.assertEqual(len(text), 5) + self.assertEqual(len(text), 6) self.assertTrue(text[0].startswith('Traceback')) self.assertTrue(text[1].startswith(' File ')) - self.assertTrue(text[3].startswith('NameError')) + self.assertTrue(text[4].startswith('NameError')) def test_non_ascii(self): # Mac OS X denies the creation of a file with an invalid UTF-8 name. diff --git a/Lib/test/test_code.py b/Lib/test/test_code.py index 2386cf6b59f396..1bb138e7f3243b 100644 --- a/Lib/test/test_code.py +++ b/Lib/test/test_code.py @@ -141,7 +141,6 @@ check_impl_detail, requires_debug_ranges, gc_collect) from test.support.script_helper import assert_python_ok -from test.support import threading_helper from opcode import opmap COPY_FREE_VARS = opmap['COPY_FREE_VARS'] @@ -376,6 +375,7 @@ def test_co_positions_artificial_instructions(self): for instruction in artificial_instructions ], [ + ('RESUME', 0), ("PUSH_EXC_INFO", None), ("LOAD_CONST", None), # artificial 'None' ("STORE_NAME", "e"), # XX: we know the location for this @@ -428,27 +428,6 @@ def func(): self.assertIsNone(line) self.assertEqual(end_line, new_code.co_firstlineno + 1) - def test_code_equality(self): - def f(): - try: - a() - except: - b() - else: - c() - finally: - d() - code_a = f.__code__ - code_b = code_a.replace(co_linetable=b"") - code_c = code_a.replace(co_exceptiontable=b"") - code_d = code_b.replace(co_exceptiontable=b"") - self.assertNotEqual(code_a, code_b) - self.assertNotEqual(code_a, code_c) - self.assertNotEqual(code_a, code_d) - self.assertNotEqual(code_b, code_c) - self.assertNotEqual(code_b, code_d) - self.assertNotEqual(code_c, code_d) - def isinterned(s): return s is sys.intern(('_' + s + '_')[1:-1]) @@ -595,15 +574,6 @@ def positions_from_location_table(code): for _ in range(length): yield (line, end_line, col, end_col) -def dedup(lst, prev=object()): - for item in lst: - if item != prev: - yield item - prev = item - -def lines_from_postions(positions): - return dedup(l for (l, _, _, _) in positions) - def misshappen(): """ @@ -636,13 +606,6 @@ def misshappen(): ) else p -def bug93662(): - example_report_generation_message= ( - """ - """ - ).strip() - raise ValueError() - class CodeLocationTest(unittest.TestCase): @@ -653,23 +616,10 @@ def check_positions(self, func): self.assertEqual(l1, l2) self.assertEqual(len(pos1), len(pos2)) + def test_positions(self): self.check_positions(parse_location_table) self.check_positions(misshappen) - self.check_positions(bug93662) - - def check_lines(self, func): - co = func.__code__ - lines1 = list(dedup(l for (_, _, l) in co.co_lines())) - lines2 = list(lines_from_postions(positions_from_location_table(co))) - for l1, l2 in zip(lines1, lines2): - self.assertEqual(l1, l2) - self.assertEqual(len(lines1), len(lines2)) - - def test_lines(self): - self.check_lines(parse_location_table) - self.check_lines(misshappen) - self.check_lines(bug93662) if check_impl_detail(cpython=True) and ctypes is not None: @@ -744,7 +694,6 @@ def test_get_set(self): self.assertEqual(extra.value, 300) del f - @threading_helper.requires_working_threading() def test_free_different_thread(self): # Freeing a code object on a different thread then # where the co_extra was set should be safe. diff --git a/Lib/test/test_codecs.py b/Lib/test/test_codecs.py index 57f3648eb7017c..42c600dcb00de1 100644 --- a/Lib/test/test_codecs.py +++ b/Lib/test/test_codecs.py @@ -9,6 +9,7 @@ from test import support from test.support import os_helper +from test.support import warnings_helper try: import _testcapi diff --git a/Lib/test/test_codeop.py b/Lib/test/test_codeop.py index 133096d25a44bc..17376c7ed7537e 100644 --- a/Lib/test/test_codeop.py +++ b/Lib/test/test_codeop.py @@ -321,26 +321,6 @@ def test_warning(self): warnings.simplefilter('error', SyntaxWarning) compile_command('1 is 1', symbol='exec') - # Check DeprecationWarning treated as an SyntaxError - with warnings.catch_warnings(), self.assertRaises(SyntaxError): - warnings.simplefilter('error', DeprecationWarning) - compile_command(r"'\e'", symbol='exec') - - def test_incomplete_warning(self): - with warnings.catch_warnings(record=True) as w: - warnings.simplefilter('always') - self.assertIncomplete("'\\e' + (") - self.assertEqual(w, []) - - def test_invalid_warning(self): - with warnings.catch_warnings(record=True) as w: - warnings.simplefilter('always') - self.assertInvalid("'\\e' 1") - self.assertEqual(len(w), 1) - self.assertEqual(w[0].category, DeprecationWarning) - self.assertRegex(str(w[0].message), 'invalid escape sequence') - self.assertEqual(w[0].filename, '<input>') - if __name__ == "__main__": unittest.main() diff --git a/Lib/test/test_compile.py b/Lib/test/test_compile.py index 3ed57c2a5d2763..d4357243ddabf4 100644 --- a/Lib/test/test_compile.py +++ b/Lib/test/test_compile.py @@ -8,7 +8,6 @@ import tempfile import types import textwrap -import warnings from test import support from test.support import script_helper, requires_debug_ranges from test.support.os_helper import FakePath @@ -109,7 +108,6 @@ def __getitem__(self, key): exec('z = a', g, d) self.assertEqual(d['z'], 12) - @unittest.skipIf(support.is_wasi, "exhausts limited stack on WASI") def test_extended_arg(self): # default: 1000 * 2.5 = 2500 repetitions repeat = int(sys.getrecursionlimit() * 2.5) @@ -163,7 +161,7 @@ def test_leading_newlines(self): co = compile(s256, 'fn', 'exec') self.assertEqual(co.co_firstlineno, 1) lines = list(co.co_lines()) - self.assertEqual(lines[0][2], 0) + self.assertEqual(lines[0][2], None) self.assertEqual(lines[1][2], 257) def test_literals_with_leading_zeroes(self): @@ -199,19 +197,6 @@ def test_literals_with_leading_zeroes(self): self.assertEqual(eval("0o777"), 511) self.assertEqual(eval("-0o0000010"), -8) - def test_int_literals_too_long(self): - n = 3000 - source = f"a = 1\nb = 2\nc = {'3'*n}\nd = 4" - with support.adjust_int_max_str_digits(n): - compile(source, "<long_int_pass>", "exec") # no errors. - with support.adjust_int_max_str_digits(n-1): - with self.assertRaises(SyntaxError) as err_ctx: - compile(source, "<long_int_fail>", "exec") - exc = err_ctx.exception - self.assertEqual(exc.lineno, 3) - self.assertIn('Exceeds the limit ', str(exc)) - self.assertIn(' Consider hexadecimal ', str(exc)) - def test_unary_minus(self): # Verify treatment of unary minus on negative numbers SF bug #660455 if sys.maxsize == 2147483647: @@ -557,7 +542,6 @@ def test_yet_more_evil_still_undecodable(self): self.assertIn(b"Non-UTF-8", res.err) @support.cpython_only - @unittest.skipIf(support.is_wasi, "exhausts limited stack on WASI") def test_compiler_recursion_limit(self): # Expected limit is sys.getrecursionlimit() * the scaling factor # in symtable.c (currently 3) @@ -629,7 +613,7 @@ def check_same_constant(const): exec(code, ns) f1 = ns['f1'] f2 = ns['f2'] - self.assertIs(f1.__code__.co_consts, f2.__code__.co_consts) + self.assertIs(f1.__code__, f2.__code__) self.check_constant(f1, const) self.assertEqual(repr(f1()), repr(const)) @@ -642,7 +626,7 @@ def check_same_constant(const): # Note: "lambda: ..." emits "LOAD_CONST Ellipsis", # whereas "lambda: Ellipsis" emits "LOAD_GLOBAL Ellipsis" f1, f2 = lambda: ..., lambda: ... - self.assertIs(f1.__code__.co_consts, f2.__code__.co_consts) + self.assertIs(f1.__code__, f2.__code__) self.check_constant(f1, Ellipsis) self.assertEqual(repr(f1()), repr(Ellipsis)) @@ -657,7 +641,7 @@ def check_same_constant(const): # {0} is converted to a constant frozenset({0}) by the peephole # optimizer f1, f2 = lambda x: x in {0}, lambda x: x in {0} - self.assertIs(f1.__code__.co_consts, f2.__code__.co_consts) + self.assertIs(f1.__code__, f2.__code__) self.check_constant(f1, frozenset({0})) self.assertTrue(f1(0)) @@ -1042,42 +1026,6 @@ def while_not_chained(a, b, c): for instr in dis.Bytecode(while_not_chained): self.assertNotEqual(instr.opname, "EXTENDED_ARG") - @support.cpython_only - def test_uses_slice_instructions(self): - - def check_op_count(func, op, expected): - actual = 0 - for instr in dis.Bytecode(func): - if instr.opname == op: - actual += 1 - self.assertEqual(actual, expected) - - def load(): - return x[a:b] + x [a:] + x[:b] + x[:] - - def store(): - x[a:b] = y - x [a:] = y - x[:b] = y - x[:] = y - - def long_slice(): - return x[a:b:c] - - def aug(): - x[a:b] += y - - check_op_count(load, "BINARY_SLICE", 4) - check_op_count(load, "BUILD_SLICE", 0) - check_op_count(store, "STORE_SLICE", 4) - check_op_count(store, "BUILD_SLICE", 0) - check_op_count(long_slice, "BUILD_SLICE", 1) - check_op_count(long_slice, "BINARY_SLICE", 0) - check_op_count(aug, "BINARY_SLICE", 1) - check_op_count(aug, "STORE_SLICE", 1) - check_op_count(aug, "BUILD_SLICE", 0) - - @requires_debug_ranges() class TestSourcePositions(unittest.TestCase): # Ensure that compiled code snippets have correct line and column numbers @@ -1106,8 +1054,6 @@ def generic_visit(self, node): # Check against the positions in the code object. for (line, end_line, col, end_col) in code.co_positions(): - if line == 0: - continue # This is an artificial module-start line # If the offset is not None (indicating missing data), ensure that # it was part of one of the AST nodes. if line is not None: @@ -1197,148 +1143,6 @@ def test_complex_single_line_expression(self): self.assertOpcodeSourcePositionIs(compiled_code, 'BINARY_OP', line=1, end_line=1, column=0, end_column=27, occurrence=4) - def test_multiline_assert_rewritten_as_method_call(self): - # GH-94694: Don't crash if pytest rewrites a multiline assert as a - # method call with the same location information: - tree = ast.parse("assert (\n42\n)") - old_node = tree.body[0] - new_node = ast.Expr( - ast.Call( - ast.Attribute( - ast.Name("spam", ast.Load()), - "eggs", - ast.Load(), - ), - [], - [], - ) - ) - ast.copy_location(new_node, old_node) - ast.fix_missing_locations(new_node) - tree.body[0] = new_node - compile(tree, "<test>", "exec") - - def test_push_null_load_global_positions(self): - source_template = """ - import abc, dis - import ast as art - - abc = None - dix = dis - ast = art - - def f(): - {} - """ - for body in [ - " abc.a()", - " art.a()", - " ast.a()", - " dis.a()", - " dix.a()", - " abc[...]()", - " art()()", - " (ast or ...)()", - " [dis]()", - " (dix + ...)()", - ]: - with self.subTest(body): - namespace = {} - source = textwrap.dedent(source_template.format(body)) - with warnings.catch_warnings(): - warnings.simplefilter('ignore', SyntaxWarning) - exec(source, namespace) - code = namespace["f"].__code__ - self.assertOpcodeSourcePositionIs( - code, - "LOAD_GLOBAL", - line=10, - end_line=10, - column=4, - end_column=7, - ) - - def test_attribute_augassign(self): - source = "(\n lhs \n . \n rhs \n ) += 42" - code = compile(source, "<test>", "exec") - self.assertOpcodeSourcePositionIs( - code, "LOAD_ATTR", line=4, end_line=4, column=5, end_column=8 - ) - self.assertOpcodeSourcePositionIs( - code, "STORE_ATTR", line=4, end_line=4, column=5, end_column=8 - ) - - def test_attribute_del(self): - source = "del (\n lhs \n . \n rhs \n )" - code = compile(source, "<test>", "exec") - self.assertOpcodeSourcePositionIs( - code, "DELETE_ATTR", line=4, end_line=4, column=5, end_column=8 - ) - - def test_attribute_load(self): - source = "(\n lhs \n . \n rhs \n )" - code = compile(source, "<test>", "exec") - self.assertOpcodeSourcePositionIs( - code, "LOAD_ATTR", line=4, end_line=4, column=5, end_column=8 - ) - - def test_attribute_store(self): - source = "(\n lhs \n . \n rhs \n ) = 42" - code = compile(source, "<test>", "exec") - self.assertOpcodeSourcePositionIs( - code, "STORE_ATTR", line=4, end_line=4, column=5, end_column=8 - ) - - def test_method_call(self): - source = "(\n lhs \n . \n rhs \n )()" - code = compile(source, "<test>", "exec") - self.assertOpcodeSourcePositionIs( - code, "LOAD_ATTR", line=4, end_line=4, column=5, end_column=8 - ) - self.assertOpcodeSourcePositionIs( - code, "CALL", line=4, end_line=5, column=5, end_column=10 - ) - - def test_weird_attribute_position_regressions(self): - def f(): - (bar. - baz) - (bar. - baz( - )) - files().setdefault( - 0 - ).setdefault( - 0 - ) - for line, end_line, column, end_column in f.__code__.co_positions(): - self.assertIsNotNone(line) - self.assertIsNotNone(end_line) - self.assertIsNotNone(column) - self.assertIsNotNone(end_column) - self.assertLessEqual((line, column), (end_line, end_column)) - - @support.cpython_only - def test_column_offset_deduplication(self): - # GH-95150: Code with different column offsets shouldn't be merged! - for source in [ - "lambda: a", - "(a for b in c)", - "[a for b in c]", - "{a for b in c}", - "{a: b for c in d}", - ]: - with self.subTest(source): - code = compile(f"{source}, {source}", "<test>", "eval") - self.assertEqual(len(code.co_consts), 2) - self.assertIsInstance(code.co_consts[0], types.CodeType) - self.assertIsInstance(code.co_consts[1], types.CodeType) - self.assertNotEqual(code.co_consts[0], code.co_consts[1]) - self.assertNotEqual( - list(code.co_consts[0].co_positions()), - list(code.co_consts[1].co_positions()), - ) - class TestExpressionStackSize(unittest.TestCase): # These tests check that the computed stack size for a code object @@ -1403,12 +1207,6 @@ def test_func_and(self): code += " x and x\n" * self.N self.check_stack_size(code) - def test_stack_3050(self): - M = 3050 - code = "x," * M + "=t" - # This raised on 3.10.0 to 3.10.5 - compile(code, "<foo>", "single") - class TestStackSizeStability(unittest.TestCase): # Check that repeating certain snippets doesn't increase the stack size diff --git a/Lib/test/test_compileall.py b/Lib/test/test_compileall.py index 73c83c9bf1efee..1a9fc973c3aa12 100644 --- a/Lib/test/test_compileall.py +++ b/Lib/test/test_compileall.py @@ -434,9 +434,6 @@ class CompileallTestsWithoutSourceEpoch(CompileallTestsBase, pass -# WASI does not have a temp directory and uses cwd instead. The cwd contains -# non-ASCII chars, so _walk_dir() fails to encode self.directory. -@unittest.skipIf(support.is_wasi, "tempdir is not encodable on WASI") class EncodingTest(unittest.TestCase): """Issue 6716: compileall should escape source code when printing errors to stdout.""" diff --git a/Lib/test/test_concurrent_futures.py b/Lib/test/test_concurrent_futures.py index fe9fdc4f44d37b..6f3b4609232bbb 100644 --- a/Lib/test/test_concurrent_futures.py +++ b/Lib/test/test_concurrent_futures.py @@ -256,13 +256,12 @@ def test_initializer(self): else: with self.assertRaises(BrokenExecutor): future.result() - # At some point, the executor should break - for _ in support.sleeping_retry(support.SHORT_TIMEOUT, - "executor not broken"): - if self.executor._broken: - break - + t1 = time.monotonic() + while not self.executor._broken: + if time.monotonic() - t1 > 5: + self.fail("executor not broken after 5 s.") + time.sleep(0.01) # ... and from this point submit() is guaranteed to fail with self.assertRaises(BrokenExecutor): self.executor.submit(get_init_status) @@ -485,7 +484,7 @@ def test_cancel_futures_wait_false(self): t = ThreadPoolExecutor() t.submit(sleep_and_print, .1, "apple") t.shutdown(wait=False, cancel_futures=True) - """) + """.format(executor_type=self.executor_type.__name__)) # Errors in atexit hooks don't change the process exit code, check # stderr manually. self.assertFalse(err) @@ -932,33 +931,6 @@ def submit(pool): with futures.ProcessPoolExecutor(1, mp_context=mp.get_context('fork')) as workers: workers.submit(tuple) - def test_executor_map_current_future_cancel(self): - stop_event = threading.Event() - log = [] - - def log_n_wait(ident): - log.append(f"{ident=} started") - try: - stop_event.wait() - finally: - log.append(f"{ident=} stopped") - - with self.executor_type(max_workers=1) as pool: - # submit work to saturate the pool - fut = pool.submit(log_n_wait, ident="first") - try: - with contextlib.closing( - pool.map(log_n_wait, ["second", "third"], timeout=0) - ) as gen: - with self.assertRaises(TimeoutError): - next(gen) - finally: - stop_event.set() - fut.result() - # ident='second' is cancelled as a result of raising a TimeoutError - # ident='third' is cancelled because it remained in the collection of futures - self.assertListEqual(log, ["ident='first' started", "ident='first' stopped"]) - class ProcessPoolExecutorTest(ExecutorTest): diff --git a/Lib/test/test_configparser.py b/Lib/test/test_configparser.py index da17c00063c56d..59c4b275cb46d7 100644 --- a/Lib/test/test_configparser.py +++ b/Lib/test/test_configparser.py @@ -114,7 +114,7 @@ def basic_test(self, cf): # The use of spaces in the section names serves as a # regression test for SourceForge bug #583248: - # https://bugs.python.org/issue583248 + # http://www.python.org/sf/583248 # API access eq(cf.get('Foo Bar', 'foo'), 'bar1') @@ -932,7 +932,7 @@ def test_items(self): ('name', 'value')]) def test_safe_interpolation(self): - # See https://bugs.python.org/issue511737 + # See http://www.python.org/sf/511737 cf = self.fromstring("[section]\n" "option1{eq}xxx\n" "option2{eq}%(option1)s/xxx\n" @@ -1612,12 +1612,23 @@ def test_interpolation_depth_error(self): self.assertEqual(error.section, 'section') def test_parsing_error(self): - with self.assertRaises(TypeError) as cm: + with self.assertRaises(ValueError) as cm: configparser.ParsingError() - error = configparser.ParsingError(source='source') - self.assertEqual(error.source, 'source') - error = configparser.ParsingError('source') + self.assertEqual(str(cm.exception), "Required argument `source' not " + "given.") + with self.assertRaises(ValueError) as cm: + configparser.ParsingError(source='source', filename='filename') + self.assertEqual(str(cm.exception), "Cannot specify both `filename' " + "and `source'. Use `source'.") + error = configparser.ParsingError(filename='source') self.assertEqual(error.source, 'source') + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always", DeprecationWarning) + self.assertEqual(error.filename, 'source') + error.filename = 'filename' + self.assertEqual(error.source, 'filename') + for warning in w: + self.assertTrue(warning.category is DeprecationWarning) def test_interpolation_validation(self): parser = configparser.ConfigParser() @@ -1636,6 +1647,27 @@ def test_interpolation_validation(self): self.assertEqual(str(cm.exception), "bad interpolation variable " "reference '%(()'") + def test_readfp_deprecation(self): + sio = io.StringIO(""" + [section] + option = value + """) + parser = configparser.ConfigParser() + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always", DeprecationWarning) + parser.readfp(sio, filename='StringIO') + for warning in w: + self.assertTrue(warning.category is DeprecationWarning) + self.assertEqual(len(parser), 2) + self.assertEqual(parser['section']['option'], 'value') + + def test_safeconfigparser_deprecation(self): + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always", DeprecationWarning) + parser = configparser.SafeConfigParser() + for warning in w: + self.assertTrue(warning.category is DeprecationWarning) + def test_legacyinterpolation_deprecation(self): with warnings.catch_warnings(record=True) as w: warnings.simplefilter("always", DeprecationWarning) @@ -1809,7 +1841,7 @@ def test_parsingerror(self): self.assertEqual(e1.source, e2.source) self.assertEqual(e1.errors, e2.errors) self.assertEqual(repr(e1), repr(e2)) - e1 = configparser.ParsingError('filename') + e1 = configparser.ParsingError(filename='filename') e1.append(1, 'line1') e1.append(2, 'line2') e1.append(3, 'line3') diff --git a/Lib/test/test_copy.py b/Lib/test/test_copy.py index f4d91c16868986..f1ca8cb254d188 100644 --- a/Lib/test/test_copy.py +++ b/Lib/test/test_copy.py @@ -678,28 +678,6 @@ def __eq__(self, other): self.assertIsNot(x, y) self.assertIsNot(x["foo"], y["foo"]) - def test_reduce_6tuple(self): - def state_setter(*args, **kwargs): - self.fail("shouldn't call this") - class C: - def __reduce__(self): - return C, (), self.__dict__, None, None, state_setter - x = C() - with self.assertRaises(TypeError): - copy.copy(x) - with self.assertRaises(TypeError): - copy.deepcopy(x) - - def test_reduce_6tuple_none(self): - class C: - def __reduce__(self): - return C, (), self.__dict__, None, None, None - x = C() - with self.assertRaises(TypeError): - copy.copy(x) - with self.assertRaises(TypeError): - copy.deepcopy(x) - def test_copy_slots(self): class C(object): __slots__ = ["foo"] diff --git a/Lib/test/test_coroutines.py b/Lib/test/test_coroutines.py index 8fff2d47c10fd5..dba5ceffaf1c03 100644 --- a/Lib/test/test_coroutines.py +++ b/Lib/test/test_coroutines.py @@ -4,7 +4,6 @@ import pickle import sys import types -import traceback import unittest import warnings from test import support @@ -2208,29 +2207,6 @@ async def f(): with self.assertWarns(RuntimeWarning): gen.cr_frame.clear() - def test_stack_in_coroutine_throw(self): - # Regression test for https://github.com/python/cpython/issues/93592 - async def a(): - return await b() - - async def b(): - return await c() - - @types.coroutine - def c(): - try: - # traceback.print_stack() - yield len(traceback.extract_stack()) - except ZeroDivisionError: - # traceback.print_stack() - yield len(traceback.extract_stack()) - - coro = a() - len_send = coro.send(None) - len_throw = coro.throw(ZeroDivisionError) - # before fixing, visible stack from throw would be shorter than from send. - self.assertEqual(len_send, len_throw) - @unittest.skipIf( support.is_emscripten or support.is_wasi, diff --git a/Lib/test/test_cppext.py b/Lib/test/test_cppext.py index 465894d24e7dfc..9ed90616b0eab5 100644 --- a/Lib/test/test_cppext.py +++ b/Lib/test/test_cppext.py @@ -4,7 +4,6 @@ import sys import unittest import subprocess -import sysconfig from test import support from test.support import os_helper @@ -17,34 +16,22 @@ @support.requires_subprocess() class TestCPPExt(unittest.TestCase): - def test_build_cpp11(self): - self.check_build(False, '_testcpp11ext') - - def test_build_cpp03(self): - self.check_build(True, '_testcpp03ext') - # With MSVC, the linker fails with: cannot open file 'python311.lib' # https://github.com/python/cpython/pull/32175#issuecomment-1111175897 @unittest.skipIf(MS_WINDOWS, 'test fails on Windows') - # Building and running an extension in clang sanitizing mode is not - # straightforward - @unittest.skipIf( - '-fsanitize' in (sysconfig.get_config_var('PY_CFLAGS') or ''), - 'test does not work with analyzing builds') # the test uses venv+pip: skip if it's not available @support.requires_venv_with_pip() - def check_build(self, std_cpp03, extension_name): + def test_build(self): # Build in a temporary directory with os_helper.temp_cwd(): - self._check_build(std_cpp03, extension_name) + self._test_build() - def _check_build(self, std_cpp03, extension_name): + def _test_build(self): venv_dir = 'env' - verbose = support.verbose # Create virtual environment to get setuptools cmd = [sys.executable, '-X', 'dev', '-m', 'venv', venv_dir] - if verbose: + if support.verbose: print() print('Run:', ' '.join(cmd)) subprocess.run(cmd, check=True) @@ -58,47 +45,17 @@ def _check_build(self, std_cpp03, extension_name): else: python = os.path.join(venv_dir, 'bin', python_exe) - def run_cmd(operation, cmd): - if verbose: - print('Run:', ' '.join(cmd)) - subprocess.run(cmd, check=True) - else: - proc = subprocess.run(cmd, - stdout=subprocess.PIPE, - stderr=subprocess.STDOUT, - text=True) - if proc.returncode: - print(proc.stdout, end='') - self.fail( - f"{operation} failed with exit code {proc.returncode}") - # Build the C++ extension - cmd = [python, '-X', 'dev', - SETUP_TESTCPPEXT, 'build_ext', '--verbose'] - if std_cpp03: - cmd.append('-std=c++03') - run_cmd('Build', cmd) - - # Install the C++ extension - cmd = [python, '-X', 'dev', - SETUP_TESTCPPEXT, 'install'] - run_cmd('Install', cmd) - - # Do a reference run. Until we test that running python - # doesn't leak references (gh-94755), run it so one can manually check - # -X showrefcount results against this baseline. - cmd = [python, - '-X', 'dev', - '-X', 'showrefcount', - '-c', 'pass'] - run_cmd('Reference run', cmd) - - # Import the C++ extension - cmd = [python, - '-X', 'dev', - '-X', 'showrefcount', - '-c', f"import {extension_name}"] - run_cmd('Import', cmd) + cmd = [python, '-X', 'dev', SETUP_TESTCPPEXT, 'build_ext', '--verbose'] + if support.verbose: + print('Run:', ' '.join(cmd)) + proc = subprocess.run(cmd, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + text=True) + if proc.returncode: + print(proc.stdout, end='') + self.fail(f"Build failed with exit code {proc.returncode}") if __name__ == "__main__": diff --git a/Lib/test/test_csv.py b/Lib/test/test_csv.py index a2b00430c7dd60..95a19dd46cb4ff 100644 --- a/Lib/test/test_csv.py +++ b/Lib/test/test_csv.py @@ -448,34 +448,6 @@ def test_register_kwargs(self): self.assertEqual(csv.get_dialect(name).delimiter, ';') self.assertEqual([['X', 'Y', 'Z']], list(csv.reader(['X;Y;Z'], name))) - def test_register_kwargs_override(self): - class mydialect(csv.Dialect): - delimiter = "\t" - quotechar = '"' - doublequote = True - skipinitialspace = False - lineterminator = '\r\n' - quoting = csv.QUOTE_MINIMAL - - name = 'test_dialect' - csv.register_dialect(name, mydialect, - delimiter=';', - quotechar="'", - doublequote=False, - skipinitialspace=True, - lineterminator='\n', - quoting=csv.QUOTE_ALL) - self.addCleanup(csv.unregister_dialect, name) - - # Ensure that kwargs do override attributes of a dialect class: - dialect = csv.get_dialect(name) - self.assertEqual(dialect.delimiter, ';') - self.assertEqual(dialect.quotechar, "'") - self.assertEqual(dialect.doublequote, False) - self.assertEqual(dialect.skipinitialspace, True) - self.assertEqual(dialect.lineterminator, '\n') - self.assertEqual(dialect.quoting, csv.QUOTE_ALL) - def test_incomplete_dialect(self): class myexceltsv(csv.Dialect): delimiter = "\t" @@ -764,34 +736,6 @@ def test_write_field_not_in_field_names_ignore(self): csv.DictWriter.writerow(writer, dictrow) self.assertEqual(fileobj.getvalue(), "1,2\r\n") - def test_dict_reader_fieldnames_accepts_iter(self): - fieldnames = ["a", "b", "c"] - f = StringIO() - reader = csv.DictReader(f, iter(fieldnames)) - self.assertEqual(reader.fieldnames, fieldnames) - - def test_dict_reader_fieldnames_accepts_list(self): - fieldnames = ["a", "b", "c"] - f = StringIO() - reader = csv.DictReader(f, fieldnames) - self.assertEqual(reader.fieldnames, fieldnames) - - def test_dict_writer_fieldnames_rejects_iter(self): - fieldnames = ["a", "b", "c"] - f = StringIO() - writer = csv.DictWriter(f, iter(fieldnames)) - self.assertEqual(writer.fieldnames, fieldnames) - - def test_dict_writer_fieldnames_accepts_list(self): - fieldnames = ["a", "b", "c"] - f = StringIO() - writer = csv.DictWriter(f, fieldnames) - self.assertEqual(writer.fieldnames, fieldnames) - - def test_dict_reader_fieldnames_is_optional(self): - f = StringIO() - reader = csv.DictReader(f, fieldnames=None) - def test_read_dict_fields(self): with TemporaryFile("w+", encoding="utf-8") as fileobj: fileobj.write("1,2,abc\r\n") diff --git a/Lib/test/test_ctypes.py b/Lib/test/test_ctypes.py new file mode 100644 index 00000000000000..b0a12c97347490 --- /dev/null +++ b/Lib/test/test_ctypes.py @@ -0,0 +1,10 @@ +import unittest +from test.support.import_helper import import_module + + +ctypes_test = import_module('ctypes.test') + +load_tests = ctypes_test.load_tests + +if __name__ == "__main__": + unittest.main() diff --git a/Lib/test/test_ctypes/__main__.py b/Lib/test/test_ctypes/__main__.py deleted file mode 100644 index 3003d4db890d4d..00000000000000 --- a/Lib/test/test_ctypes/__main__.py +++ /dev/null @@ -1,4 +0,0 @@ -from test.test_ctypes import load_tests -import unittest - -unittest.main() diff --git a/Lib/test/test_dataclasses.py b/Lib/test/test_dataclasses.py index e2eab695789de7..cf29cd07516f0d 100644 --- a/Lib/test/test_dataclasses.py +++ b/Lib/test/test_dataclasses.py @@ -2215,12 +2215,12 @@ class C(B): self.assertEqual(c.z, 100) def test_no_init(self): - @dataclass(init=False) + dataclass(init=False) class C: i: int = 0 self.assertEqual(C().i, 0) - @dataclass(init=False) + dataclass(init=False) class C: i: int = 2 def __init__(self): @@ -3109,54 +3109,6 @@ def test_weakref_slot_make_dataclass(self): "weakref_slot is True but slots is False"): B = make_dataclass('B', [('a', int),], weakref_slot=True) - def test_weakref_slot_subclass_weakref_slot(self): - @dataclass(slots=True, weakref_slot=True) - class Base: - field: int - - # A *can* also specify weakref_slot=True if it wants to (gh-93521) - @dataclass(slots=True, weakref_slot=True) - class A(Base): - ... - - # __weakref__ is in the base class, not A. But an instance of A - # is still weakref-able. - self.assertIn("__weakref__", Base.__slots__) - self.assertNotIn("__weakref__", A.__slots__) - a = A(1) - weakref.ref(a) - - def test_weakref_slot_subclass_no_weakref_slot(self): - @dataclass(slots=True, weakref_slot=True) - class Base: - field: int - - @dataclass(slots=True) - class A(Base): - ... - - # __weakref__ is in the base class, not A. Even though A doesn't - # specify weakref_slot, it should still be weakref-able. - self.assertIn("__weakref__", Base.__slots__) - self.assertNotIn("__weakref__", A.__slots__) - a = A(1) - weakref.ref(a) - - def test_weakref_slot_normal_base_weakref_slot(self): - class Base: - __slots__ = ('__weakref__',) - - @dataclass(slots=True, weakref_slot=True) - class A(Base): - field: int - - # __weakref__ is in the base class, not A. But an instance of - # A is still weakref-able. - self.assertIn("__weakref__", Base.__slots__) - self.assertNotIn("__weakref__", A.__slots__) - a = A(1) - weakref.ref(a) - class TestDescriptors(unittest.TestCase): def test_set_name(self): @@ -3229,115 +3181,6 @@ class C: self.assertEqual(D.__set_name__.call_count, 1) - def test_init_calls_set(self): - class D: - pass - - D.__set__ = Mock() - - @dataclass - class C: - i: D = D() - - # Make sure D.__set__ is called. - D.__set__.reset_mock() - c = C(5) - self.assertEqual(D.__set__.call_count, 1) - - def test_getting_field_calls_get(self): - class D: - pass - - D.__set__ = Mock() - D.__get__ = Mock() - - @dataclass - class C: - i: D = D() - - c = C(5) - - # Make sure D.__get__ is called. - D.__get__.reset_mock() - value = c.i - self.assertEqual(D.__get__.call_count, 1) - - def test_setting_field_calls_set(self): - class D: - pass - - D.__set__ = Mock() - - @dataclass - class C: - i: D = D() - - c = C(5) - - # Make sure D.__set__ is called. - D.__set__.reset_mock() - c.i = 10 - self.assertEqual(D.__set__.call_count, 1) - - def test_setting_uninitialized_descriptor_field(self): - class D: - pass - - D.__set__ = Mock() - - @dataclass - class C: - i: D - - # D.__set__ is not called because there's no D instance to call it on - D.__set__.reset_mock() - c = C(5) - self.assertEqual(D.__set__.call_count, 0) - - # D.__set__ still isn't called after setting i to an instance of D - # because descriptors don't behave like that when stored as instance vars - c.i = D() - c.i = 5 - self.assertEqual(D.__set__.call_count, 0) - - def test_default_value(self): - class D: - def __get__(self, instance: Any, owner: object) -> int: - if instance is None: - return 100 - - return instance._x - - def __set__(self, instance: Any, value: int) -> None: - instance._x = value - - @dataclass - class C: - i: D = D() - - c = C() - self.assertEqual(c.i, 100) - - c = C(5) - self.assertEqual(c.i, 5) - - def test_no_default_value(self): - class D: - def __get__(self, instance: Any, owner: object) -> int: - if instance is None: - raise AttributeError() - - return instance._x - - def __set__(self, instance: Any, value: int) -> None: - instance._x = value - - @dataclass - class C: - i: D = D() - - with self.assertRaisesRegex(TypeError, 'missing 1 required positional argument'): - c = C() class TestStringAnnotations(unittest.TestCase): def test_classvar(self): diff --git a/Lib/test/test_dbm_dumb.py b/Lib/test/test_dbm_dumb.py index a481175b3bfdbd..73cff638f1e1a4 100644 --- a/Lib/test/test_dbm_dumb.py +++ b/Lib/test/test_dbm_dumb.py @@ -42,7 +42,6 @@ def test_dumbdbm_creation(self): self.read_helper(f) @unittest.skipUnless(hasattr(os, 'umask'), 'test needs os.umask()') - @os_helper.skip_unless_working_chmod def test_dumbdbm_creation_mode(self): try: old_umask = os.umask(0o002) @@ -266,7 +265,6 @@ def test_invalid_flag(self): "'r', 'w', 'c', or 'n'"): dumbdbm.open(_fname, flag) - @os_helper.skip_unless_working_chmod def test_readonly_files(self): with os_helper.temp_dir() as dir: fname = os.path.join(dir, 'db') diff --git a/Lib/test/test_dbm_gnu.py b/Lib/test/test_dbm_gnu.py index 73602cab5180fc..4eaa0f474b0209 100644 --- a/Lib/test/test_dbm_gnu.py +++ b/Lib/test/test_dbm_gnu.py @@ -118,20 +118,6 @@ def test_context_manager(self): self.assertEqual(str(cm.exception), "GDBM object has already been closed") - def test_bool_empty(self): - with gdbm.open(filename, 'c') as db: - self.assertFalse(bool(db)) - - def test_bool_not_empty(self): - with gdbm.open(filename, 'c') as db: - db['a'] = 'b' - self.assertTrue(bool(db)) - - def test_bool_on_closed_db_raises(self): - with gdbm.open(filename, 'c') as db: - db['a'] = 'b' - self.assertRaises(gdbm.error, bool, db) - def test_bytes(self): with gdbm.open(filename, 'c') as db: db[b'bytes key \xbd'] = b'bytes value \xbd' diff --git a/Lib/test/test_dbm_ndbm.py b/Lib/test/test_dbm_ndbm.py index 8f37e3cc624e2e..e57d9cab1154f7 100644 --- a/Lib/test/test_dbm_ndbm.py +++ b/Lib/test/test_dbm_ndbm.py @@ -133,20 +133,6 @@ def test_open_with_bytes_path(self): def test_open_with_pathlib_bytes_path(self): dbm.ndbm.open(os_helper.FakePath(os.fsencode(self.filename)), "c").close() - def test_bool_empty(self): - with dbm.ndbm.open(self.filename, 'c') as db: - self.assertFalse(bool(db)) - - def test_bool_not_empty(self): - with dbm.ndbm.open(self.filename, 'c') as db: - db['a'] = 'b' - self.assertTrue(bool(db)) - - def test_bool_on_closed_db_raises(self): - with dbm.ndbm.open(self.filename, 'c') as db: - db['a'] = 'b' - self.assertRaises(dbm.ndbm.error, bool, db) - if __name__ == '__main__': unittest.main() diff --git a/Lib/test/test_decimal.py b/Lib/test/test_decimal.py index 67ccaab40c5edc..f7a47c86a3fe88 100644 --- a/Lib/test/test_decimal.py +++ b/Lib/test/test_decimal.py @@ -37,7 +37,7 @@ requires_legacy_unicode_capi, check_sanitizer) from test.support import (TestFailed, run_with_locale, cpython_only, - darwin_malloc_err_warning, is_emscripten) + darwin_malloc_err_warning) from test.support.import_helper import import_fresh_module from test.support import threading_helper from test.support import warnings_helper @@ -2526,15 +2526,6 @@ class CUsabilityTest(UsabilityTest): class PyUsabilityTest(UsabilityTest): decimal = P - def setUp(self): - super().setUp() - self._previous_int_limit = sys.get_int_max_str_digits() - sys.set_int_max_str_digits(7000) - - def tearDown(self): - sys.set_int_max_str_digits(self._previous_int_limit) - super().tearDown() - class PythonAPItests(unittest.TestCase): def test_abc(self): @@ -4635,15 +4626,6 @@ class CCoverage(Coverage): class PyCoverage(Coverage): decimal = P - def setUp(self): - super().setUp() - self._previous_int_limit = sys.get_int_max_str_digits() - sys.set_int_max_str_digits(7000) - - def tearDown(self): - sys.set_int_max_str_digits(self._previous_int_limit) - super().tearDown() - class PyFunctionality(unittest.TestCase): """Extra functionality in decimal.py""" @@ -5623,7 +5605,6 @@ def __abs__(self): # Issue 41540: @unittest.skipIf(sys.platform.startswith("aix"), "AIX: default ulimit: test is flaky because of extreme over-allocation") - @unittest.skipIf(is_emscripten, "Test is unstable on Emscripten") @unittest.skipIf(check_sanitizer(address=True, memory=True), "ASAN/MSAN sanitizer defaults to crashing " "instead of returning NULL for malloc failure.") diff --git a/Lib/test/test_decorators.py b/Lib/test/test_decorators.py index 4b492178c1581f..a6baa3ad1dd6b3 100644 --- a/Lib/test/test_decorators.py +++ b/Lib/test/test_decorators.py @@ -1,3 +1,4 @@ +from test import support import unittest from types import MethodType diff --git a/Lib/test/test_defaultdict.py b/Lib/test/test_defaultdict.py index bdbe9b81e8fb3f..68fc449780a3db 100644 --- a/Lib/test/test_defaultdict.py +++ b/Lib/test/test_defaultdict.py @@ -1,7 +1,9 @@ """Unit tests for collections.defaultdict.""" +import os import copy import pickle +import tempfile import unittest from collections import defaultdict diff --git a/Lib/test/test_descr.py b/Lib/test/test_descr.py index 037c859e97d41b..9a09d8a9e3fe03 100644 --- a/Lib/test/test_descr.py +++ b/Lib/test/test_descr.py @@ -21,11 +21,6 @@ except ImportError: _testcapi = None -try: - import xxsubtype -except ImportError: - xxsubtype = None - class OperatorsTest(unittest.TestCase): @@ -304,7 +299,6 @@ def test_explicit_reverse_methods(self): self.assertEqual(float.__rsub__(3.0, 1), -2.0) @support.impl_detail("the module 'xxsubtype' is internal") - @unittest.skipIf(xxsubtype is None, "requires xxsubtype module") def test_spam_lists(self): # Testing spamlist operations... import copy, xxsubtype as spam @@ -349,7 +343,6 @@ def foo(self): return 1 self.assertEqual(a.getstate(), 42) @support.impl_detail("the module 'xxsubtype' is internal") - @unittest.skipIf(xxsubtype is None, "requires xxsubtype module") def test_spam_dicts(self): # Testing spamdict operations... import copy, xxsubtype as spam @@ -845,7 +838,7 @@ def __delattr__(self, name): ("getattr", "foo"), ("delattr", "foo")]) - # https://bugs.python.org/issue1174712 + # http://python.org/sf/1174712 try: class Module(types.ModuleType, str): pass @@ -1607,7 +1600,6 @@ def test_refleaks_in_classmethod___init__(self): self.assertAlmostEqual(gettotalrefcount() - refs_before, 0, delta=10) @support.impl_detail("the module 'xxsubtype' is internal") - @unittest.skipIf(xxsubtype is None, "requires xxsubtype module") def test_classmethods_in_c(self): # Testing C-based class methods... import xxsubtype as spam @@ -1691,7 +1683,6 @@ def test_refleaks_in_staticmethod___init__(self): self.assertAlmostEqual(gettotalrefcount() - refs_before, 0, delta=10) @support.impl_detail("the module 'xxsubtype' is internal") - @unittest.skipIf(xxsubtype is None, "requires xxsubtype module") def test_staticmethods_in_c(self): # Testing C-based static methods... import xxsubtype as spam @@ -3572,6 +3563,7 @@ class MyInt(int): def test_str_of_str_subclass(self): # Testing __str__ defined in subclass of str ... import binascii + import io class octetstring(str): def __str__(self): diff --git a/Lib/test/test_descrtut.py b/Lib/test/test_descrtut.py index 7796031ed0602f..e01a31a74695d5 100644 --- a/Lib/test/test_descrtut.py +++ b/Lib/test/test_descrtut.py @@ -1,7 +1,7 @@ # This contains most of the executable examples from Guido's descr # tutorial, once at # -# https://www.python.org/download/releases/2.2.3/descrintro/ +# http://www.python.org/2.2/descrintro.html # # A few examples left implicit in the writeup were fleshed out, a few were # skipped due to lack of interest (e.g., faking super() by hand isn't @@ -9,6 +9,7 @@ # deterministic. from test.support import sortdict +import pprint import doctest import unittest @@ -166,7 +167,6 @@ def merge(self, other): You can get the information from the list type: - >>> import pprint >>> pprint.pprint(dir(list)) # like list.__dict__.keys(), but sorted ['__add__', '__class__', diff --git a/Lib/test/test_dictviews.py b/Lib/test/test_dictviews.py index 7c48d800cd88bd..be271bebaaf1ff 100644 --- a/Lib/test/test_dictviews.py +++ b/Lib/test/test_dictviews.py @@ -170,10 +170,6 @@ def test_items_set_operations(self): {('a', 1), ('b', 2)}) self.assertEqual(d1.items() & set(d2.items()), {('b', 2)}) self.assertEqual(d1.items() & set(d3.items()), set()) - self.assertEqual(d1.items() & (("a", 1), ("b", 2)), - {('a', 1), ('b', 2)}) - self.assertEqual(d1.items() & (("a", 2), ("b", 2)), {('b', 2)}) - self.assertEqual(d1.items() & (("d", 4), ("e", 5)), set()) self.assertEqual(d1.items() | d1.items(), {('a', 1), ('b', 2)}) @@ -187,23 +183,12 @@ def test_items_set_operations(self): {('a', 1), ('a', 2), ('b', 2)}) self.assertEqual(d1.items() | set(d3.items()), {('a', 1), ('b', 2), ('d', 4), ('e', 5)}) - self.assertEqual(d1.items() | (('a', 1), ('b', 2)), - {('a', 1), ('b', 2)}) - self.assertEqual(d1.items() | (('a', 2), ('b', 2)), - {('a', 1), ('a', 2), ('b', 2)}) - self.assertEqual(d1.items() | (('d', 4), ('e', 5)), - {('a', 1), ('b', 2), ('d', 4), ('e', 5)}) self.assertEqual(d1.items() ^ d1.items(), set()) self.assertEqual(d1.items() ^ d2.items(), {('a', 1), ('a', 2)}) self.assertEqual(d1.items() ^ d3.items(), {('a', 1), ('b', 2), ('d', 4), ('e', 5)}) - self.assertEqual(d1.items() ^ (('a', 1), ('b', 2)), set()) - self.assertEqual(d1.items() ^ (("a", 2), ("b", 2)), - {('a', 1), ('a', 2)}) - self.assertEqual(d1.items() ^ (("d", 4), ("e", 5)), - {('a', 1), ('b', 2), ('d', 4), ('e', 5)}) self.assertEqual(d1.items() - d1.items(), set()) self.assertEqual(d1.items() - d2.items(), {('a', 1)}) @@ -211,9 +196,6 @@ def test_items_set_operations(self): self.assertEqual(d1.items() - set(d1.items()), set()) self.assertEqual(d1.items() - set(d2.items()), {('a', 1)}) self.assertEqual(d1.items() - set(d3.items()), {('a', 1), ('b', 2)}) - self.assertEqual(d1.items() - (('a', 1), ('b', 2)), set()) - self.assertEqual(d1.items() - (("a", 2), ("b", 2)), {('a', 1)}) - self.assertEqual(d1.items() - (("d", 4), ("e", 5)), {('a', 1), ('b', 2)}) self.assertFalse(d1.items().isdisjoint(d1.items())) self.assertFalse(d1.items().isdisjoint(d2.items())) diff --git a/Lib/test/test_dis.py b/Lib/test/test_dis.py index fc2862c61baadb..c5b80b72f8395b 100644 --- a/Lib/test/test_dis.py +++ b/Lib/test/test_dis.py @@ -143,10 +143,10 @@ def bug708901(): %3d CALL 2 GET_ITER - >> FOR_ITER 2 (to 38) + >> FOR_ITER 2 (to 36) STORE_FAST 0 (res) -%3d JUMP_BACKWARD 4 (to 30) +%3d JUMP_BACKWARD 3 (to 30) %3d >> LOAD_CONST 0 (None) RETURN_VALUE @@ -267,7 +267,7 @@ def bug42562(): expr_str = "x + 1" dis_expr_str = """\ - 0 RESUME 0 + RESUME 0 1 LOAD_NAME 0 (x) LOAD_CONST 0 (1) @@ -278,7 +278,7 @@ def bug42562(): simple_stmt_str = "x = x + 1" dis_simple_stmt_str = """\ - 0 RESUME 0 + RESUME 0 1 LOAD_NAME 0 (x) LOAD_CONST 0 (1) @@ -297,7 +297,7 @@ def bug42562(): # leading newline is for a reason (tests lineno) dis_annot_stmt_str = """\ - 0 RESUME 0 + RESUME 0 2 SETUP_ANNOTATIONS LOAD_CONST 0 (1) @@ -335,7 +335,7 @@ def bug42562(): # Trailing newline has been deliberately omitted dis_compound_stmt_str = """\ - 0 RESUME 0 + RESUME 0 1 LOAD_CONST 0 (0) STORE_NAME 0 (x) @@ -360,17 +360,17 @@ def bug42562(): --> BINARY_OP 11 (/) POP_TOP -%3d LOAD_FAST_CHECK 1 (tb) +%3d LOAD_FAST 1 (tb) RETURN_VALUE >> PUSH_EXC_INFO %3d LOAD_GLOBAL 0 (Exception) CHECK_EXC_MATCH - POP_JUMP_IF_FALSE 23 (to 82) + POP_JUMP_FORWARD_IF_FALSE 18 (to 72) STORE_FAST 0 (e) %3d LOAD_FAST 0 (e) - LOAD_ATTR 2 (__traceback__) + LOAD_ATTR 1 (__traceback__) STORE_FAST 1 (tb) POP_EXCEPT LOAD_CONST 0 (None) @@ -389,7 +389,6 @@ def bug42562(): POP_EXCEPT RERAISE 1 ExceptionTable: -4 rows """ % (TRACEBACK_CODE.co_firstlineno, TRACEBACK_CODE.co_firstlineno + 1, TRACEBACK_CODE.co_firstlineno + 2, @@ -422,138 +421,6 @@ def _fstring(a, b, c, d): RETURN_VALUE """ % (_fstring.__code__.co_firstlineno, _fstring.__code__.co_firstlineno + 1) -def _with(c): - with c: - x = 1 - y = 2 - -dis_with = """\ -%3d RESUME 0 - -%3d LOAD_FAST 0 (c) - BEFORE_WITH - POP_TOP - -%3d LOAD_CONST 1 (1) - STORE_FAST 1 (x) - -%3d LOAD_CONST 0 (None) - LOAD_CONST 0 (None) - LOAD_CONST 0 (None) - CALL 2 - POP_TOP - -%3d LOAD_CONST 2 (2) - STORE_FAST 2 (y) - LOAD_CONST 0 (None) - RETURN_VALUE - -%3d >> PUSH_EXC_INFO - WITH_EXCEPT_START - POP_JUMP_IF_TRUE 1 (to 46) - RERAISE 2 - >> POP_TOP - POP_EXCEPT - POP_TOP - POP_TOP - -%3d LOAD_CONST 2 (2) - STORE_FAST 2 (y) - LOAD_CONST 0 (None) - RETURN_VALUE - >> COPY 3 - POP_EXCEPT - RERAISE 1 -ExceptionTable: -2 rows -""" % (_with.__code__.co_firstlineno, - _with.__code__.co_firstlineno + 1, - _with.__code__.co_firstlineno + 2, - _with.__code__.co_firstlineno + 1, - _with.__code__.co_firstlineno + 3, - _with.__code__.co_firstlineno + 1, - _with.__code__.co_firstlineno + 3, - ) - -async def _asyncwith(c): - async with c: - x = 1 - y = 2 - -dis_asyncwith = """\ -%3d RETURN_GENERATOR - POP_TOP - RESUME 0 - -%3d LOAD_FAST 0 (c) - BEFORE_ASYNC_WITH - GET_AWAITABLE 1 - LOAD_CONST 0 (None) - >> SEND 3 (to 22) - YIELD_VALUE 3 - RESUME 3 - JUMP_BACKWARD_NO_INTERRUPT 4 (to 14) - >> POP_TOP - -%3d LOAD_CONST 1 (1) - STORE_FAST 1 (x) - -%3d LOAD_CONST 0 (None) - LOAD_CONST 0 (None) - LOAD_CONST 0 (None) - CALL 2 - GET_AWAITABLE 2 - LOAD_CONST 0 (None) - >> SEND 3 (to 56) - YIELD_VALUE 2 - RESUME 3 - JUMP_BACKWARD_NO_INTERRUPT 4 (to 48) - >> POP_TOP - -%3d LOAD_CONST 2 (2) - STORE_FAST 2 (y) - LOAD_CONST 0 (None) - RETURN_VALUE - -%3d >> CLEANUP_THROW - JUMP_BACKWARD 24 (to 22) - >> CLEANUP_THROW - JUMP_BACKWARD 9 (to 56) - >> PUSH_EXC_INFO - WITH_EXCEPT_START - GET_AWAITABLE 2 - LOAD_CONST 0 (None) - >> SEND 4 (to 92) - YIELD_VALUE 6 - RESUME 3 - JUMP_BACKWARD_NO_INTERRUPT 4 (to 82) - >> CLEANUP_THROW - >> POP_JUMP_IF_TRUE 1 (to 96) - RERAISE 2 - >> POP_TOP - POP_EXCEPT - POP_TOP - POP_TOP - -%3d LOAD_CONST 2 (2) - STORE_FAST 2 (y) - LOAD_CONST 0 (None) - RETURN_VALUE - >> COPY 3 - POP_EXCEPT - RERAISE 1 -ExceptionTable: -6 rows -""" % (_asyncwith.__code__.co_firstlineno, - _asyncwith.__code__.co_firstlineno + 1, - _asyncwith.__code__.co_firstlineno + 2, - _asyncwith.__code__.co_firstlineno + 1, - _asyncwith.__code__.co_firstlineno + 3, - _asyncwith.__code__.co_firstlineno + 1, - _asyncwith.__code__.co_firstlineno + 3, - ) - - def _tryfinally(a, b): try: return a @@ -588,7 +455,6 @@ def _tryfinallyconst(b): POP_EXCEPT RERAISE 1 ExceptionTable: -2 rows """ % (_tryfinally.__code__.co_firstlineno, _tryfinally.__code__.co_firstlineno + 1, _tryfinally.__code__.co_firstlineno + 2, @@ -618,7 +484,6 @@ def _tryfinallyconst(b): POP_EXCEPT RERAISE 1 ExceptionTable: -1 row """ % (_tryfinallyconst.__code__.co_firstlineno, _tryfinallyconst.__code__.co_firstlineno + 1, _tryfinallyconst.__code__.co_firstlineno + 2, @@ -692,13 +557,13 @@ def foo(x): %3d RESUME 0 BUILD_LIST 0 LOAD_FAST 0 (.0) - >> FOR_ITER 7 (to 26) + >> FOR_ITER 7 (to 24) STORE_FAST 1 (z) LOAD_DEREF 2 (x) LOAD_FAST 1 (z) BINARY_OP 0 (+) LIST_APPEND 2 - JUMP_BACKWARD 9 (to 8) + JUMP_BACKWARD 8 (to 8) >> RETURN_VALUE """ % (dis_nested_1, __file__, @@ -739,14 +604,14 @@ def loop_test(): LOAD_CONST 2 (3) BINARY_OP_ADAPTIVE 5 (*) GET_ITER - >> FOR_ITER_LIST 15 (to 50) + FOR_ITER 15 (to 48) STORE_FAST 0 (i) %3d LOAD_GLOBAL_MODULE 1 (NULL + load_test) LOAD_FAST 0 (i) CALL_PY_WITH_DEFAULTS 1 POP_TOP - JUMP_BACKWARD_QUICK 17 (to 16) + JUMP_BACKWARD_QUICK 16 (to 16) %3d >> LOAD_CONST 0 (None) RETURN_VALUE @@ -755,22 +620,6 @@ def loop_test(): loop_test.__code__.co_firstlineno + 2, loop_test.__code__.co_firstlineno + 1,) -def extended_arg_quick(): - *_, _ = ... - -dis_extended_arg_quick_code = """\ -%3d 0 RESUME 0 - -%3d 2 LOAD_CONST 1 (Ellipsis) - 4 EXTENDED_ARG 1 - 6 UNPACK_EX 256 - 8 STORE_FAST 0 (_) - 10 STORE_FAST 0 (_) - 12 LOAD_CONST 0 (None) - 14 RETURN_VALUE -"""% (extended_arg_quick.__code__.co_firstlineno, - extended_arg_quick.__code__.co_firstlineno + 1,) - QUICKENING_WARMUP_DELAY = 8 class DisTestBase(unittest.TestCase): @@ -813,18 +662,6 @@ def assert_offsets_increasing(self, text, delta): self.assertGreaterEqual(offset, expected_offset, line) expected_offset = offset + delta - def assert_exception_table_increasing(self, lines): - prev_start, prev_end = -1, -1 - count = 0 - for line in lines: - m = re.match(r' (\d+) to (\d+) -> \d+ \[\d+\]', line) - start, end = [int(g) for g in m.groups()] - self.assertGreaterEqual(end, start) - self.assertGreater(start, prev_end) - prev_start, prev_end = start, end - count += 1 - return count - def strip_offsets(self, text): lines = text.splitlines(True) start, end = self.find_offset_column(lines) @@ -838,9 +675,6 @@ def strip_offsets(self, text): res.append(line) else: res.append(line[:start] + line[end:]) - num_rows = self.assert_exception_table_increasing(lines) - if num_rows: - res.append(f"{num_rows} row{'s' if num_rows > 1 else ''}\n") return "".join(res) def do_disassembly_compare(self, got, expected, with_offsets=False): @@ -887,14 +721,22 @@ def test_boundaries(self): self.assertEqual(dis.opmap["STORE_NAME"], dis.HAVE_ARGUMENT) def test_widths(self): - long_opcodes = set(['JUMP_BACKWARD_NO_INTERRUPT', + long_opcodes = set(['POP_JUMP_FORWARD_IF_FALSE', + 'POP_JUMP_FORWARD_IF_TRUE', + 'POP_JUMP_FORWARD_IF_NOT_NONE', + 'POP_JUMP_FORWARD_IF_NONE', + 'POP_JUMP_BACKWARD_IF_FALSE', + 'POP_JUMP_BACKWARD_IF_TRUE', + 'POP_JUMP_BACKWARD_IF_NOT_NONE', + 'POP_JUMP_BACKWARD_IF_NONE', + 'JUMP_BACKWARD_NO_INTERRUPT', ]) for opcode, opname in enumerate(dis.opname): if opname in long_opcodes: continue with self.subTest(opname=opname): width = dis._OPNAME_WIDTH - if opcode in dis.hasarg: + if opcode < dis.HAVE_ARGUMENT: width += 1 + dis._OPARG_WIDTH self.assertLessEqual(len(opname), width) @@ -1025,12 +867,6 @@ def test_disassemble_coroutine(self): def test_disassemble_fstring(self): self.do_disassembly_test(_fstring, dis_fstring) - def test_disassemble_with(self): - self.do_disassembly_test(_with, dis_with) - - def test_disassemble_asyncwith(self): - self.do_disassembly_test(_asyncwith, dis_asyncwith) - def test_disassemble_try_finally(self): self.do_disassembly_test(_tryfinally, dis_tryfinally) self.do_disassembly_test(_tryfinallyconst, dis_tryfinallyconst) @@ -1089,7 +925,7 @@ def test_super_instructions(self): @cpython_only def test_binary_specialize(self): binary_op_quicken = """\ - 0 0 RESUME_QUICK 0 + 0 RESUME_QUICK 0 1 2 LOAD_NAME 0 (a) 4 LOAD_NAME 1 (b) @@ -1107,7 +943,7 @@ def test_binary_specialize(self): self.do_disassembly_compare(got, binary_op_quicken % "BINARY_OP_ADD_UNICODE 0 (+)", True) binary_subscr_quicken = """\ - 0 0 RESUME_QUICK 0 + 0 RESUME_QUICK 0 1 2 LOAD_NAME 0 (a) 4 LOAD_CONST 0 (0) @@ -1127,11 +963,11 @@ def test_binary_specialize(self): @cpython_only def test_load_attr_specialize(self): load_attr_quicken = """\ - 0 0 RESUME_QUICK 0 + 0 RESUME_QUICK 0 1 2 LOAD_CONST 0 ('a') 4 LOAD_ATTR_SLOT 0 (__class__) - 24 RETURN_VALUE + 14 RETURN_VALUE """ co = compile("'a'.__class__", "", "eval") self.code_quicken(lambda: exec(co, {}, {})) @@ -1141,7 +977,7 @@ def test_load_attr_specialize(self): @cpython_only def test_call_specialize(self): call_quicken = """\ - 0 RESUME_QUICK 0 + RESUME_QUICK 0 1 PUSH_NULL LOAD_NAME 0 (str) @@ -1161,11 +997,6 @@ def test_loop_quicken(self): got = self.get_disassembly(loop_test, adaptive=True) self.do_disassembly_compare(got, dis_loop_test_quickened_code) - @cpython_only - def test_extended_arg_quick(self): - got = self.get_disassembly(extended_arg_quick) - self.do_disassembly_compare(got, dis_extended_arg_quick_code, True) - def get_cached_values(self, quickened, adaptive): def f(): l = [] @@ -1194,10 +1025,8 @@ def test_show_caches(self): caches = list(self.get_cached_values(quickened, adaptive)) for cache in caches: self.assertRegex(cache, pattern) - total_caches = 23 - empty_caches = 8 if adaptive and quickened else total_caches - self.assertEqual(caches.count(""), empty_caches) - self.assertEqual(len(caches), total_caches) + self.assertEqual(caches.count(""), 8) + self.assertEqual(len(caches), 23) class DisWithFileTests(DisTests): @@ -1549,114 +1378,113 @@ def _prepare_test_cases(): Instruction(opname='LOAD_CONST', opcode=100, arg=1, argval=10, argrepr='10', offset=14, starts_line=None, is_jump_target=False, positions=None), Instruction(opname='CALL', opcode=171, arg=1, argval=1, argrepr='', offset=16, starts_line=None, is_jump_target=False, positions=None), Instruction(opname='GET_ITER', opcode=68, arg=None, argval=None, argrepr='', offset=26, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='FOR_ITER', opcode=93, arg=30, argval=92, argrepr='to 92', offset=28, starts_line=None, is_jump_target=True, positions=None), - Instruction(opname='STORE_FAST', opcode=125, arg=0, argval='i', argrepr='i', offset=32, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_GLOBAL', opcode=116, arg=3, argval='print', argrepr='NULL + print', offset=34, starts_line=4, is_jump_target=False, positions=None), - Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=46, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='CALL', opcode=171, arg=1, argval=1, argrepr='', offset=48, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=58, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=60, starts_line=5, is_jump_target=False, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=2, argval=4, argrepr='4', offset=62, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='COMPARE_OP', opcode=107, arg=0, argval='<', argrepr='<', offset=64, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_JUMP_IF_FALSE', opcode=114, arg=1, argval=74, argrepr='to 74', offset=70, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='JUMP_BACKWARD', opcode=140, arg=23, argval=28, argrepr='to 28', offset=72, starts_line=6, is_jump_target=False, positions=None), - Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=74, starts_line=7, is_jump_target=True, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=3, argval=6, argrepr='6', offset=76, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='COMPARE_OP', opcode=107, arg=4, argval='>', argrepr='>', offset=78, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_JUMP_IF_TRUE', opcode=115, arg=1, argval=88, argrepr='to 88', offset=84, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='JUMP_BACKWARD', opcode=140, arg=30, argval=28, argrepr='to 28', offset=86, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=88, starts_line=8, is_jump_target=True, positions=None), - Instruction(opname='JUMP_FORWARD', opcode=110, arg=13, argval=118, argrepr='to 118', offset=90, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_GLOBAL', opcode=116, arg=3, argval='print', argrepr='NULL + print', offset=92, starts_line=10, is_jump_target=True, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=4, argval='I can haz else clause?', argrepr="'I can haz else clause?'", offset=104, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='CALL', opcode=171, arg=1, argval=1, argrepr='', offset=106, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=116, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_FAST_CHECK', opcode=127, arg=0, argval='i', argrepr='i', offset=118, starts_line=11, is_jump_target=True, positions=None), - Instruction(opname='POP_JUMP_IF_FALSE', opcode=114, arg=35, argval=192, argrepr='to 192', offset=120, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_GLOBAL', opcode=116, arg=3, argval='print', argrepr='NULL + print', offset=122, starts_line=12, is_jump_target=True, positions=None), - Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=134, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='CALL', opcode=171, arg=1, argval=1, argrepr='', offset=136, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=146, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=148, starts_line=13, is_jump_target=False, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=5, argval=1, argrepr='1', offset=150, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='BINARY_OP', opcode=122, arg=23, argval=23, argrepr='-=', offset=152, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='STORE_FAST', opcode=125, arg=0, argval='i', argrepr='i', offset=156, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=158, starts_line=14, is_jump_target=False, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=3, argval=6, argrepr='6', offset=160, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='COMPARE_OP', opcode=107, arg=4, argval='>', argrepr='>', offset=162, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_JUMP_IF_FALSE', opcode=114, arg=1, argval=172, argrepr='to 172', offset=168, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='JUMP_BACKWARD', opcode=140, arg=27, argval=118, argrepr='to 118', offset=170, starts_line=15, is_jump_target=False, positions=None), - Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=172, starts_line=16, is_jump_target=True, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=2, argval=4, argrepr='4', offset=174, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='COMPARE_OP', opcode=107, arg=0, argval='<', argrepr='<', offset=176, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_JUMP_IF_FALSE', opcode=114, arg=1, argval=186, argrepr='to 186', offset=182, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='JUMP_FORWARD', opcode=110, arg=16, argval=218, argrepr='to 218', offset=184, starts_line=17, is_jump_target=False, positions=None), - Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=186, starts_line=11, is_jump_target=True, positions=None), - Instruction(opname='POP_JUMP_IF_FALSE', opcode=114, arg=1, argval=192, argrepr='to 192', offset=188, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='JUMP_BACKWARD', opcode=140, arg=35, argval=122, argrepr='to 122', offset=190, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_GLOBAL', opcode=116, arg=3, argval='print', argrepr='NULL + print', offset=192, starts_line=19, is_jump_target=True, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=6, argval='Who let lolcatz into this test suite?', argrepr="'Who let lolcatz into this test suite?'", offset=204, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='CALL', opcode=171, arg=1, argval=1, argrepr='', offset=206, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=216, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='NOP', opcode=9, arg=None, argval=None, argrepr='', offset=218, starts_line=20, is_jump_target=True, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=5, argval=1, argrepr='1', offset=220, starts_line=21, is_jump_target=False, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=7, argval=0, argrepr='0', offset=222, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='BINARY_OP', opcode=122, arg=11, argval=11, argrepr='/', offset=224, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=228, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=230, starts_line=25, is_jump_target=False, positions=None), - Instruction(opname='BEFORE_WITH', opcode=53, arg=None, argval=None, argrepr='', offset=232, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='STORE_FAST', opcode=125, arg=1, argval='dodgy', argrepr='dodgy', offset=234, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_GLOBAL', opcode=116, arg=3, argval='print', argrepr='NULL + print', offset=236, starts_line=26, is_jump_target=False, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=8, argval='Never reach this', argrepr="'Never reach this'", offset=248, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='CALL', opcode=171, arg=1, argval=1, argrepr='', offset=250, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=260, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=262, starts_line=25, is_jump_target=False, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=264, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=266, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='CALL', opcode=171, arg=2, argval=2, argrepr='', offset=268, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=278, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_GLOBAL', opcode=116, arg=3, argval='print', argrepr='NULL + print', offset=280, starts_line=28, is_jump_target=True, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=292, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='CALL', opcode=171, arg=1, argval=1, argrepr='', offset=294, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=304, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=306, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='RETURN_VALUE', opcode=83, arg=None, argval=None, argrepr='', offset=308, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='PUSH_EXC_INFO', opcode=35, arg=None, argval=None, argrepr='', offset=310, starts_line=25, is_jump_target=False, positions=None), - Instruction(opname='WITH_EXCEPT_START', opcode=49, arg=None, argval=None, argrepr='', offset=312, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_JUMP_IF_TRUE', opcode=115, arg=1, argval=318, argrepr='to 318', offset=314, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='RERAISE', opcode=119, arg=2, argval=2, argrepr='', offset=316, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=318, starts_line=None, is_jump_target=True, positions=None), - Instruction(opname='POP_EXCEPT', opcode=89, arg=None, argval=None, argrepr='', offset=320, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=322, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=324, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='JUMP_BACKWARD', opcode=140, arg=24, argval=280, argrepr='to 280', offset=326, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='COPY', opcode=120, arg=3, argval=3, argrepr='', offset=328, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_EXCEPT', opcode=89, arg=None, argval=None, argrepr='', offset=330, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='RERAISE', opcode=119, arg=1, argval=1, argrepr='', offset=332, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='PUSH_EXC_INFO', opcode=35, arg=None, argval=None, argrepr='', offset=334, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_GLOBAL', opcode=116, arg=4, argval='ZeroDivisionError', argrepr='ZeroDivisionError', offset=336, starts_line=22, is_jump_target=False, positions=None), - Instruction(opname='CHECK_EXC_MATCH', opcode=36, arg=None, argval=None, argrepr='', offset=348, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_JUMP_IF_FALSE', opcode=114, arg=16, argval=384, argrepr='to 384', offset=350, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=352, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_GLOBAL', opcode=116, arg=3, argval='print', argrepr='NULL + print', offset=354, starts_line=23, is_jump_target=False, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=9, argval='Here we go, here we go, here we go...', argrepr="'Here we go, here we go, here we go...'", offset=366, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='CALL', opcode=171, arg=1, argval=1, argrepr='', offset=368, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=378, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_EXCEPT', opcode=89, arg=None, argval=None, argrepr='', offset=380, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='JUMP_BACKWARD', opcode=140, arg=52, argval=280, argrepr='to 280', offset=382, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='RERAISE', opcode=119, arg=0, argval=0, argrepr='', offset=384, starts_line=22, is_jump_target=True, positions=None), - Instruction(opname='COPY', opcode=120, arg=3, argval=3, argrepr='', offset=386, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_EXCEPT', opcode=89, arg=None, argval=None, argrepr='', offset=388, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='RERAISE', opcode=119, arg=1, argval=1, argrepr='', offset=390, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='PUSH_EXC_INFO', opcode=35, arg=None, argval=None, argrepr='', offset=392, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_GLOBAL', opcode=116, arg=3, argval='print', argrepr='NULL + print', offset=394, starts_line=28, is_jump_target=False, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=406, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='CALL', opcode=171, arg=1, argval=1, argrepr='', offset=408, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=418, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='RERAISE', opcode=119, arg=0, argval=0, argrepr='', offset=420, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='COPY', opcode=120, arg=3, argval=3, argrepr='', offset=422, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_EXCEPT', opcode=89, arg=None, argval=None, argrepr='', offset=424, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='RERAISE', opcode=119, arg=1, argval=1, argrepr='', offset=426, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='FOR_ITER', opcode=93, arg=29, argval=88, argrepr='to 88', offset=28, starts_line=None, is_jump_target=True, positions=None), + Instruction(opname='STORE_FAST', opcode=125, arg=0, argval='i', argrepr='i', offset=30, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_GLOBAL', opcode=116, arg=3, argval='print', argrepr='NULL + print', offset=32, starts_line=4, is_jump_target=False, positions=None), + Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=44, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='CALL', opcode=171, arg=1, argval=1, argrepr='', offset=46, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=56, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=58, starts_line=5, is_jump_target=False, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=2, argval=4, argrepr='4', offset=60, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='COMPARE_OP', opcode=107, arg=0, argval='<', argrepr='<', offset=62, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_JUMP_FORWARD_IF_FALSE', opcode=114, arg=1, argval=72, argrepr='to 72', offset=68, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='JUMP_BACKWARD', opcode=140, arg=22, argval=28, argrepr='to 28', offset=70, starts_line=6, is_jump_target=False, positions=None), + Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=72, starts_line=7, is_jump_target=True, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=3, argval=6, argrepr='6', offset=74, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='COMPARE_OP', opcode=107, arg=4, argval='>', argrepr='>', offset=76, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_JUMP_BACKWARD_IF_FALSE', opcode=175, arg=28, argval=28, argrepr='to 28', offset=82, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=84, starts_line=8, is_jump_target=False, positions=None), + Instruction(opname='JUMP_FORWARD', opcode=110, arg=13, argval=114, argrepr='to 114', offset=86, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_GLOBAL', opcode=116, arg=3, argval='print', argrepr='NULL + print', offset=88, starts_line=10, is_jump_target=True, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=4, argval='I can haz else clause?', argrepr="'I can haz else clause?'", offset=100, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='CALL', opcode=171, arg=1, argval=1, argrepr='', offset=102, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=112, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=114, starts_line=11, is_jump_target=True, positions=None), + Instruction(opname='POP_JUMP_FORWARD_IF_FALSE', opcode=114, arg=34, argval=186, argrepr='to 186', offset=116, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_GLOBAL', opcode=116, arg=3, argval='print', argrepr='NULL + print', offset=118, starts_line=12, is_jump_target=True, positions=None), + Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=130, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='CALL', opcode=171, arg=1, argval=1, argrepr='', offset=132, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=142, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=144, starts_line=13, is_jump_target=False, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=5, argval=1, argrepr='1', offset=146, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='BINARY_OP', opcode=122, arg=23, argval=23, argrepr='-=', offset=148, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='STORE_FAST', opcode=125, arg=0, argval='i', argrepr='i', offset=152, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=154, starts_line=14, is_jump_target=False, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=3, argval=6, argrepr='6', offset=156, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='COMPARE_OP', opcode=107, arg=4, argval='>', argrepr='>', offset=158, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_JUMP_FORWARD_IF_FALSE', opcode=114, arg=1, argval=168, argrepr='to 168', offset=164, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='JUMP_BACKWARD', opcode=140, arg=27, argval=114, argrepr='to 114', offset=166, starts_line=15, is_jump_target=False, positions=None), + Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=168, starts_line=16, is_jump_target=True, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=2, argval=4, argrepr='4', offset=170, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='COMPARE_OP', opcode=107, arg=0, argval='<', argrepr='<', offset=172, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_JUMP_FORWARD_IF_FALSE', opcode=114, arg=1, argval=182, argrepr='to 182', offset=178, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='JUMP_FORWARD', opcode=110, arg=15, argval=212, argrepr='to 212', offset=180, starts_line=17, is_jump_target=False, positions=None), + Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=182, starts_line=11, is_jump_target=True, positions=None), + Instruction(opname='POP_JUMP_BACKWARD_IF_TRUE', opcode=176, arg=34, argval=118, argrepr='to 118', offset=184, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_GLOBAL', opcode=116, arg=3, argval='print', argrepr='NULL + print', offset=186, starts_line=19, is_jump_target=True, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=6, argval='Who let lolcatz into this test suite?', argrepr="'Who let lolcatz into this test suite?'", offset=198, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='CALL', opcode=171, arg=1, argval=1, argrepr='', offset=200, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=210, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='NOP', opcode=9, arg=None, argval=None, argrepr='', offset=212, starts_line=20, is_jump_target=True, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=5, argval=1, argrepr='1', offset=214, starts_line=21, is_jump_target=False, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=7, argval=0, argrepr='0', offset=216, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='BINARY_OP', opcode=122, arg=11, argval=11, argrepr='/', offset=218, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=222, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=224, starts_line=25, is_jump_target=False, positions=None), + Instruction(opname='BEFORE_WITH', opcode=53, arg=None, argval=None, argrepr='', offset=226, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='STORE_FAST', opcode=125, arg=1, argval='dodgy', argrepr='dodgy', offset=228, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_GLOBAL', opcode=116, arg=3, argval='print', argrepr='NULL + print', offset=230, starts_line=26, is_jump_target=False, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=8, argval='Never reach this', argrepr="'Never reach this'", offset=242, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='CALL', opcode=171, arg=1, argval=1, argrepr='', offset=244, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=254, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=256, starts_line=25, is_jump_target=False, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=258, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=260, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='CALL', opcode=171, arg=2, argval=2, argrepr='', offset=262, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=272, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='JUMP_FORWARD', opcode=110, arg=41, argval=358, argrepr='to 358', offset=274, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='PUSH_EXC_INFO', opcode=35, arg=None, argval=None, argrepr='', offset=276, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='WITH_EXCEPT_START', opcode=49, arg=None, argval=None, argrepr='', offset=278, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_JUMP_FORWARD_IF_TRUE', opcode=115, arg=4, argval=290, argrepr='to 290', offset=280, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='RERAISE', opcode=119, arg=2, argval=2, argrepr='', offset=282, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='COPY', opcode=120, arg=3, argval=3, argrepr='', offset=284, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_EXCEPT', opcode=89, arg=None, argval=None, argrepr='', offset=286, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='RERAISE', opcode=119, arg=1, argval=1, argrepr='', offset=288, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=290, starts_line=None, is_jump_target=True, positions=None), + Instruction(opname='POP_EXCEPT', opcode=89, arg=None, argval=None, argrepr='', offset=292, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=294, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=296, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='JUMP_FORWARD', opcode=110, arg=29, argval=358, argrepr='to 358', offset=298, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='PUSH_EXC_INFO', opcode=35, arg=None, argval=None, argrepr='', offset=300, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_GLOBAL', opcode=116, arg=4, argval='ZeroDivisionError', argrepr='ZeroDivisionError', offset=302, starts_line=22, is_jump_target=False, positions=None), + Instruction(opname='CHECK_EXC_MATCH', opcode=36, arg=None, argval=None, argrepr='', offset=314, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_JUMP_FORWARD_IF_FALSE', opcode=114, arg=16, argval=350, argrepr='to 350', offset=316, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=318, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_GLOBAL', opcode=116, arg=3, argval='print', argrepr='NULL + print', offset=320, starts_line=23, is_jump_target=False, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=9, argval='Here we go, here we go, here we go...', argrepr="'Here we go, here we go, here we go...'", offset=332, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='CALL', opcode=171, arg=1, argval=1, argrepr='', offset=334, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=344, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_EXCEPT', opcode=89, arg=None, argval=None, argrepr='', offset=346, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='JUMP_FORWARD', opcode=110, arg=4, argval=358, argrepr='to 358', offset=348, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='RERAISE', opcode=119, arg=0, argval=0, argrepr='', offset=350, starts_line=22, is_jump_target=True, positions=None), + Instruction(opname='COPY', opcode=120, arg=3, argval=3, argrepr='', offset=352, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_EXCEPT', opcode=89, arg=None, argval=None, argrepr='', offset=354, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='RERAISE', opcode=119, arg=1, argval=1, argrepr='', offset=356, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_GLOBAL', opcode=116, arg=3, argval='print', argrepr='NULL + print', offset=358, starts_line=28, is_jump_target=True, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=370, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='CALL', opcode=171, arg=1, argval=1, argrepr='', offset=372, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=382, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=384, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='RETURN_VALUE', opcode=83, arg=None, argval=None, argrepr='', offset=386, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='PUSH_EXC_INFO', opcode=35, arg=None, argval=None, argrepr='', offset=388, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_GLOBAL', opcode=116, arg=3, argval='print', argrepr='NULL + print', offset=390, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=402, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='CALL', opcode=171, arg=1, argval=1, argrepr='', offset=404, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=414, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='RERAISE', opcode=119, arg=0, argval=0, argrepr='', offset=416, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='COPY', opcode=120, arg=3, argval=3, argrepr='', offset=418, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_EXCEPT', opcode=89, arg=None, argval=None, argrepr='', offset=420, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='RERAISE', opcode=119, arg=1, argval=1, argrepr='', offset=422, starts_line=None, is_jump_target=False, positions=None), ] # One last piece of inspect fodder to check the default line number handling @@ -1717,7 +1545,7 @@ def test_co_positions(self): for instr in dis.get_instructions(code) ] expected = [ - (0, 1, 0, 0), + (None, None, None, None), (1, 1, 0, 1), (1, 1, 0, 1), (2, 2, 2, 3), @@ -1752,36 +1580,6 @@ def test_co_positions_missing_info(self): self.assertIsNone(positions.col_offset) self.assertIsNone(positions.end_col_offset) - @requires_debug_ranges() - def test_co_positions_with_lots_of_caches(self): - def roots(a, b, c): - d = b**2 - 4 * a * c - yield (-b - cmath.sqrt(d)) / (2 * a) - if d: - yield (-b + cmath.sqrt(d)) / (2 * a) - code = roots.__code__ - ops = code.co_code[::2] - cache_opcode = opcode.opmap["CACHE"] - caches = sum(op == cache_opcode for op in ops) - non_caches = len(ops) - caches - # Make sure we have "lots of caches". If not, roots should be changed: - assert 1 / 3 <= caches / non_caches, "this test needs more caches!" - for show_caches in (False, True): - for adaptive in (False, True): - with self.subTest(f"{adaptive=}, {show_caches=}"): - co_positions = [ - positions - for op, positions in zip(ops, code.co_positions(), strict=True) - if show_caches or op != cache_opcode - ] - dis_positions = [ - instruction.positions - for instruction in dis.get_instructions( - code, adaptive=adaptive, show_caches=show_caches - ) - ] - self.assertEqual(co_positions, dis_positions) - # get_instructions has its own tests above, so can rely on it to validate # the object oriented API class BytecodeTests(InstructionTestCase, DisTestBase): diff --git a/Lib/test/test_doctest.py b/Lib/test/test_doctest.py index 65e215f1cdda4a..a4aab6cf4db3b5 100644 --- a/Lib/test/test_doctest.py +++ b/Lib/test/test_doctest.py @@ -4,6 +4,7 @@ from test import support from test.support import import_helper +from test.support import os_helper import doctest import functools import os @@ -13,6 +14,7 @@ import importlib.util import unittest import tempfile +import shutil import types import contextlib @@ -459,7 +461,7 @@ def basics(): r""" >>> tests = finder.find(sample_func) >>> print(tests) # doctest: +ELLIPSIS - [<DocTest sample_func from test_doctest.py:32 (1 example)>] + [<DocTest sample_func from test_doctest.py:34 (1 example)>] The exact name depends on how test_doctest was invoked, so allow for leading path components. @@ -2809,8 +2811,6 @@ def test_lineendings(): r""" at least one of the line endings will raise a ValueError for inconsistent whitespace if doctest does not correctly do the newline conversion. - >>> from test.support import os_helper - >>> import shutil >>> dn = tempfile.mkdtemp() >>> pkg = os.path.join(dn, "doctest_testpkg") >>> os.mkdir(pkg) @@ -2854,7 +2854,7 @@ def test_testmod(): r""" # Skip the test: the filesystem encoding is unable to encode the filename supports_unicode = False -if supports_unicode: +if supports_unicode and not support.has_no_debug_ranges(): def test_unicode(): """ Check doctest with a non-ascii filename: @@ -2876,8 +2876,10 @@ def test_unicode(): """ Traceback (most recent call last): File ... exec(compile(example.source, filename, "single", + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<doctest foo-bär@baz[0]>", line 1, in <module> raise Exception('clé') + ^^^^^^^^^^^^^^^^^^^^^^ Exception: clé TestResults(failed=1, attempted=1) """ diff --git a/Lib/test/test_dtrace.py b/Lib/test/test_dtrace.py index 4b971deacc1a5c..8a436ad123b80f 100644 --- a/Lib/test/test_dtrace.py +++ b/Lib/test/test_dtrace.py @@ -6,14 +6,9 @@ import types import unittest -from test import support from test.support import findfile -if not support.has_subprocess_support: - raise unittest.SkipTest("test module requires subprocess") - - def abspath(filename): return os.path.abspath(findfile(filename, subdir="dtracedata")) diff --git a/Lib/test/test_dynamic.py b/Lib/test/test_dynamic.py index 25544dea14df3a..3e0fcf4d158f8a 100644 --- a/Lib/test/test_dynamic.py +++ b/Lib/test/test_dynamic.py @@ -1,7 +1,6 @@ # Test the most dynamic corner cases of Python's runtime semantics. import builtins -import sys import unittest from test.support import swap_item, swap_attr @@ -140,57 +139,12 @@ class MyGlobals(dict): def __missing__(self, key): return int(key.removeprefix("_number_")) - # 1,000 on most systems - limit = sys.getrecursionlimit() - code = "lambda: " + "+".join(f"_number_{i}" for i in range(limit)) - sum_func = eval(code, MyGlobals()) - expected = sum(range(limit)) + code = "lambda: " + "+".join(f"_number_{i}" for i in range(1000)) + sum_1000 = eval(code, MyGlobals()) + expected = sum(range(1000)) # Warm up the the function for quickening (PEP 659) for _ in range(30): - self.assertEqual(sum_func(), expected) - - -class TestTracing(unittest.TestCase): - - def setUp(self): - self.addCleanup(sys.settrace, sys.gettrace()) - sys.settrace(None) - - def test_after_specialization(self): - - def trace(frame, event, arg): - return trace - - turn_on_trace = False - - class C: - def __init__(self, x): - self.x = x - def __del__(self): - if turn_on_trace: - sys.settrace(trace) - - def f(): - # LOAD_GLOBAL[_BUILTIN] immediately follows the call to C.__del__ - C(0).x, len - - def g(): - # BINARY_SUSCR[_LIST_INT] immediately follows the call to C.__del__ - [0][C(0).x] - - def h(): - # BINARY_OP[_ADD_INT] immediately follows the call to C.__del__ - 0 + C(0).x - - for func in (f, g, h): - with self.subTest(func.__name__): - for _ in range(58): - func() - turn_on_trace = True - func() - sys.settrace(None) - turn_on_trace = False - + self.assertEqual(sum_1000(), expected) if __name__ == "__main__": unittest.main() diff --git a/Lib/test/test_email/test_email.py b/Lib/test/test_email/test_email.py index 44b405740c4403..2b1e2b864feda1 100644 --- a/Lib/test/test_email/test_email.py +++ b/Lib/test/test_email/test_email.py @@ -7,6 +7,7 @@ import base64 import unittest import textwrap +import warnings from io import StringIO, BytesIO from itertools import chain @@ -44,7 +45,7 @@ # These imports are documented to work, but we are testing them using a # different path, so we import them here just to make sure they are importable. -from email.parser import FeedParser +from email.parser import FeedParser, BytesFeedParser NL = '\n' EMPTYSTRING = '' @@ -3047,43 +3048,33 @@ def test_formatdate_usegmt(self): # parsedate and parsedate_tz will become deprecated interfaces someday def test_parsedate_returns_None_for_invalid_strings(self): - # See also test_parsedate_to_datetime_with_invalid_raises_valueerror - # in test_utils. - invalid_dates = [ - '', - ' ', - '0', - 'A Complete Waste of Time', - 'Wed, 3 Apr 2002 12.34.56.78+0800', - '17 June , 2022', - 'Friday, -Nov-82 16:14:55 EST', - 'Friday, Nov--82 16:14:55 EST', - 'Friday, 19-Nov- 16:14:55 EST', - ] - for dtstr in invalid_dates: - with self.subTest(dtstr=dtstr): - self.assertIsNone(utils.parsedate(dtstr)) - self.assertIsNone(utils.parsedate_tz(dtstr)) + self.assertIsNone(utils.parsedate('')) + self.assertIsNone(utils.parsedate_tz('')) + self.assertIsNone(utils.parsedate(' ')) + self.assertIsNone(utils.parsedate_tz(' ')) + self.assertIsNone(utils.parsedate('0')) + self.assertIsNone(utils.parsedate_tz('0')) + self.assertIsNone(utils.parsedate('A Complete Waste of Time')) + self.assertIsNone(utils.parsedate_tz('A Complete Waste of Time')) + self.assertIsNone(utils.parsedate_tz('Wed, 3 Apr 2002 12.34.56.78+0800')) # Not a part of the spec but, but this has historically worked: self.assertIsNone(utils.parsedate(None)) self.assertIsNone(utils.parsedate_tz(None)) def test_parsedate_compact(self): - self.assertEqual(utils.parsedate_tz('Wed, 3 Apr 2002 14:58:26 +0800'), - (2002, 4, 3, 14, 58, 26, 0, 1, -1, 28800)) # The FWS after the comma is optional - self.assertEqual(utils.parsedate_tz('Wed,3 Apr 2002 14:58:26 +0800'), - (2002, 4, 3, 14, 58, 26, 0, 1, -1, 28800)) - # The comma is optional - self.assertEqual(utils.parsedate_tz('Wed 3 Apr 2002 14:58:26 +0800'), - (2002, 4, 3, 14, 58, 26, 0, 1, -1, 28800)) + self.assertEqual(utils.parsedate('Wed,3 Apr 2002 14:58:26 +0800'), + utils.parsedate('Wed, 3 Apr 2002 14:58:26 +0800')) def test_parsedate_no_dayofweek(self): + eq = self.assertEqual + eq(utils.parsedate_tz('25 Feb 2003 13:47:26 -0800'), + (2003, 2, 25, 13, 47, 26, 0, 1, -1, -28800)) + + def test_parsedate_compact_no_dayofweek(self): eq = self.assertEqual eq(utils.parsedate_tz('5 Feb 2003 13:47:26 -0800'), (2003, 2, 5, 13, 47, 26, 0, 1, -1, -28800)) - eq(utils.parsedate_tz('February 5, 2003 13:47:26 -0800'), - (2003, 2, 5, 13, 47, 26, 0, 1, -1, -28800)) def test_parsedate_no_space_before_positive_offset(self): self.assertEqual(utils.parsedate_tz('Wed, 3 Apr 2002 14:58:26+0800'), @@ -3094,6 +3085,7 @@ def test_parsedate_no_space_before_negative_offset(self): self.assertEqual(utils.parsedate_tz('Wed, 3 Apr 2002 14:58:26-0800'), (2002, 4, 3, 14, 58, 26, 0, 1, -1, -28800)) + def test_parsedate_accepts_time_with_dots(self): eq = self.assertEqual eq(utils.parsedate_tz('5 Feb 2003 13.47.26 -0800'), @@ -3101,20 +3093,6 @@ def test_parsedate_accepts_time_with_dots(self): eq(utils.parsedate_tz('5 Feb 2003 13.47 -0800'), (2003, 2, 5, 13, 47, 0, 0, 1, -1, -28800)) - def test_parsedate_rfc_850(self): - self.assertEqual(utils.parsedate_tz('Friday, 19-Nov-82 16:14:55 EST'), - (1982, 11, 19, 16, 14, 55, 0, 1, -1, -18000)) - - def test_parsedate_no_seconds(self): - self.assertEqual(utils.parsedate_tz('Wed, 3 Apr 2002 14:58 +0800'), - (2002, 4, 3, 14, 58, 0, 0, 1, -1, 28800)) - - def test_parsedate_dot_time_delimiter(self): - self.assertEqual(utils.parsedate_tz('Wed, 3 Apr 2002 14.58.26 +0800'), - (2002, 4, 3, 14, 58, 26, 0, 1, -1, 28800)) - self.assertEqual(utils.parsedate_tz('Wed, 3 Apr 2002 14.58 +0800'), - (2002, 4, 3, 14, 58, 0, 0, 1, -1, 28800)) - def test_parsedate_acceptable_to_time_functions(self): eq = self.assertEqual timetup = utils.parsedate('5 Feb 2003 13:47:26 -0800') diff --git a/Lib/test/test_email/test_utils.py b/Lib/test/test_email/test_utils.py index 78afb358035e81..e3d3eaebc93693 100644 --- a/Lib/test/test_email/test_utils.py +++ b/Lib/test/test_email/test_utils.py @@ -49,21 +49,12 @@ def test_parsedate_to_datetime_naive(self): self.naive_dt) def test_parsedate_to_datetime_with_invalid_raises_valueerror(self): - # See also test_parsedate_returns_None_for_invalid_strings in test_email. - invalid_dates = [ - '', - ' ', - '0', - 'A Complete Waste of Time', - 'Wed, 3 Apr 2002 12.34.56.78+0800' - 'Tue, 06 Jun 2017 27:39:33 +0600', - 'Tue, 06 Jun 2017 07:39:33 +2600', - 'Tue, 06 Jun 2017 27:39:33', - '17 June , 2022', - 'Friday, -Nov-82 16:14:55 EST', - 'Friday, Nov--82 16:14:55 EST', - 'Friday, 19-Nov- 16:14:55 EST', - ] + invalid_dates = ['', + '0', + 'A Complete Waste of Time' + 'Tue, 06 Jun 2017 27:39:33 +0600', + 'Tue, 06 Jun 2017 07:39:33 +2600', + 'Tue, 06 Jun 2017 27:39:33'] for dtstr in invalid_dates: with self.subTest(dtstr=dtstr): self.assertRaises(ValueError, utils.parsedate_to_datetime, dtstr) diff --git a/Lib/test/test_embed.py b/Lib/test/test_embed.py index 70d7367ea9e64f..f1ca6da147376c 100644 --- a/Lib/test/test_embed.py +++ b/Lib/test/test_embed.py @@ -67,16 +67,18 @@ def setUp(self): ext = ("_d" if debug_build(sys.executable) else "") + ".exe" exename += ext exepath = builddir + expecteddir = os.path.join(support.REPO_ROOT, builddir) else: exepath = os.path.join(builddir, 'Programs') + expecteddir = os.path.join(support.REPO_ROOT, 'Programs') self.test_exe = exe = os.path.join(exepath, exename) - if not os.path.exists(exe): + if exepath != expecteddir or not os.path.exists(exe): self.skipTest("%r doesn't exist" % exe) # This is needed otherwise we get a fatal error: # "Py_Initialize: Unable to get the locale encoding # LookupError: no codec search functions registered: can't find encoding" self.oldcwd = os.getcwd() - os.chdir(builddir) + os.chdir(support.REPO_ROOT) def tearDown(self): os.chdir(self.oldcwd) @@ -283,7 +285,7 @@ def test_pre_initialization_sys_options(self): "test_pre_initialization_sys_options", env=env) expected_output = ( "sys.warnoptions: ['once', 'module', 'default']\n" - "sys._xoptions: {'not_an_option': '1', 'also_not_an_option': '2'}\n" + "sys._xoptions: {'dev': '2', 'utf8': '1'}\n" "warnings.filters[:3]: ['default', 'module', 'once']\n" ) self.assertIn(expected_output, out) @@ -436,7 +438,6 @@ class InitConfigTests(EmbeddingTestsMixin, unittest.TestCase): 'hash_seed': 0, 'faulthandler': 0, 'tracemalloc': 0, - 'perf_profiling': 0, 'import_time': 0, 'code_debug_ranges': 1, 'show_ref_count': 0, @@ -521,7 +522,6 @@ class InitConfigTests(EmbeddingTestsMixin, unittest.TestCase): use_hash_seed=0, faulthandler=0, tracemalloc=0, - perf_profiling=0, pathconfig_warnings=0, ) if MS_WINDOWS: @@ -629,7 +629,7 @@ def _get_expected_config(self): return configs def get_expected_config(self, expected_preconfig, expected, - env, api, modify_path_cb=None): + env, api, modify_path_cb=None, cwd=None): configs = self._get_expected_config() pre_config = configs['pre_config'] @@ -672,6 +672,14 @@ def get_expected_config(self, expected_preconfig, expected, expected['base_executable'] = default_executable if expected['program_name'] is self.GET_DEFAULT_CONFIG: expected['program_name'] = './_testembed' + if MS_WINDOWS: + # follow the calculation in getpath.py + tmpname = expected['program_name'] + '.exe' + if cwd: + tmpname = os.path.join(cwd, tmpname) + if os.path.isfile(tmpname): + expected['program_name'] += '.exe' + del tmpname config = configs['config'] for key, value in expected.items(): @@ -701,11 +709,6 @@ def check_pre_config(self, configs, expected): def check_config(self, configs, expected): config = dict(configs['config']) - if MS_WINDOWS: - value = config.get(key := 'program_name') - if value and isinstance(value, str): - ext = '_d.exe' if debug_build(sys.executable) else '.exe' - config[key] = value[:len(value.lower().removesuffix(ext))] for key, value in list(expected.items()): if value is self.IGNORE_CONFIG: config.pop(key, None) @@ -770,7 +773,7 @@ def check_all_configs(self, testname, expected_config=None, self.get_expected_config(expected_preconfig, expected_config, env, - api, modify_path_cb) + api, modify_path_cb, cwd) out, err = self.run_embedded_interpreter(testname, env=env, cwd=cwd) @@ -830,7 +833,6 @@ def test_init_from_config(self): 'use_hash_seed': 1, 'hash_seed': 123, 'tracemalloc': 2, - 'perf_profiling': 0, 'import_time': 1, 'code_debug_ranges': 0, 'show_ref_count': 1, @@ -844,15 +846,14 @@ def test_init_from_config(self): 'argv': ['-c', 'arg2'], 'orig_argv': ['python3', '-W', 'cmdline_warnoption', - '-X', 'cmdline_xoption', + '-X', 'dev', '-c', 'pass', 'arg2'], 'parse_argv': 2, 'xoptions': [ - 'config_xoption1=3', - 'config_xoption2=', - 'config_xoption3', - 'cmdline_xoption', + 'dev=3', + 'utf8', + 'dev', ], 'warnoptions': [ 'cmdline_warnoption', @@ -893,7 +894,6 @@ def test_init_compat_env(self): 'use_hash_seed': 1, 'hash_seed': 42, 'tracemalloc': 2, - 'perf_profiling': 0, 'import_time': 1, 'code_debug_ranges': 0, 'malloc_stats': 1, @@ -925,7 +925,6 @@ def test_init_python_env(self): 'use_hash_seed': 1, 'hash_seed': 42, 'tracemalloc': 2, - 'perf_profiling': 0, 'import_time': 1, 'code_debug_ranges': 0, 'malloc_stats': 1, @@ -1082,9 +1081,8 @@ def test_init_sys_add(self): config = { 'faulthandler': 1, 'xoptions': [ - 'config_xoption', - 'cmdline_xoption', - 'sysadd_xoption', + 'dev', + 'utf8', 'faulthandler', ], 'warnoptions': [ @@ -1094,9 +1092,12 @@ def test_init_sys_add(self): ], 'orig_argv': ['python3', '-W', 'ignore:::cmdline_warnoption', - '-X', 'cmdline_xoption'], + '-X', 'utf8'], } - self.check_all_configs("test_init_sys_add", config, api=API_PYTHON) + preconfig = {'utf8_mode': 1} + self.check_all_configs("test_init_sys_add", config, + expected_preconfig=preconfig, + api=API_PYTHON) def test_init_run_main(self): code = ('import _testinternalcapi, json; ' @@ -1302,66 +1303,6 @@ def test_init_setpythonhome(self): self.check_all_configs("test_init_setpythonhome", config, api=API_COMPAT, env=env) - def test_init_is_python_build_with_home(self): - # Test _Py_path_config._is_python_build configuration (gh-91985) - config = self._get_expected_config() - paths = config['config']['module_search_paths'] - paths_str = os.path.pathsep.join(paths) - - for path in paths: - if not os.path.isdir(path): - continue - if os.path.exists(os.path.join(path, 'os.py')): - home = os.path.dirname(path) - break - else: - self.fail(f"Unable to find home in {paths!r}") - - prefix = exec_prefix = home - if MS_WINDOWS: - stdlib = os.path.join(home, "Lib") - # Because we are specifying 'home', module search paths - # are fairly static - expected_paths = [paths[0], stdlib, os.path.join(home, 'DLLs')] - else: - version = f'{sys.version_info.major}.{sys.version_info.minor}' - stdlib = os.path.join(home, sys.platlibdir, f'python{version}') - expected_paths = self.module_search_paths(prefix=home, exec_prefix=home) - - config = { - 'home': home, - 'module_search_paths': expected_paths, - 'prefix': prefix, - 'base_prefix': prefix, - 'exec_prefix': exec_prefix, - 'base_exec_prefix': exec_prefix, - 'pythonpath_env': paths_str, - 'stdlib_dir': stdlib, - } - # The code above is taken from test_init_setpythonhome() - env = {'TESTHOME': home, 'PYTHONPATH': paths_str} - - env['NEGATIVE_ISPYTHONBUILD'] = '1' - config['_is_python_build'] = 0 - self.check_all_configs("test_init_is_python_build", config, - api=API_COMPAT, env=env) - - env['NEGATIVE_ISPYTHONBUILD'] = '0' - config['_is_python_build'] = 1 - exedir = os.path.dirname(sys.executable) - with open(os.path.join(exedir, 'pybuilddir.txt'), encoding='utf8') as f: - expected_paths[2] = os.path.normpath( - os.path.join(exedir, f'{f.read()}\n$'.splitlines()[0])) - if not MS_WINDOWS: - # PREFIX (default) is set when running in build directory - prefix = exec_prefix = sys.prefix - # stdlib calculation (/Lib) is not yet supported - expected_paths[0] = self.module_search_paths(prefix=prefix)[0] - config.update(prefix=prefix, base_prefix=prefix, - exec_prefix=exec_prefix, base_exec_prefix=exec_prefix) - self.check_all_configs("test_init_is_python_build", config, - api=API_COMPAT, env=env) - def copy_paths_by_env(self, config): all_configs = self._get_expected_config() paths = all_configs['config']['module_search_paths'] @@ -1377,11 +1318,10 @@ def test_init_pybuilddir(self): with self.tmpdir_with_python() as tmpdir: # pybuilddir.txt is a sub-directory relative to the current # directory (tmpdir) - vpath = sysconfig.get_config_var("VPATH") or '' subdir = 'libdir' libdir = os.path.join(tmpdir, subdir) # The stdlib dir is dirname(executable) + VPATH + 'Lib' - stdlibdir = os.path.normpath(os.path.join(tmpdir, vpath, 'Lib')) + stdlibdir = os.path.join(tmpdir, 'Lib') os.mkdir(libdir) filename = os.path.join(tmpdir, 'pybuilddir.txt') diff --git a/Lib/test/test_enum.py b/Lib/test/test_enum.py index 9d16fbc2777d70..44a3912630c32b 100644 --- a/Lib/test/test_enum.py +++ b/Lib/test/test_enum.py @@ -1,4 +1,3 @@ -import copy import enum import doctest import inspect @@ -7,7 +6,6 @@ import sys import unittest import threading -import typing import builtins as bltns from collections import OrderedDict from datetime import date @@ -66,27 +64,10 @@ class FloatStooges(float, Enum): class FlagStooges(Flag): LARRY = 1 CURLY = 2 - MOE = 4 + MOE = 3 except Exception as exc: FlagStooges = exc -class FlagStoogesWithZero(Flag): - NOFLAG = 0 - LARRY = 1 - CURLY = 2 - MOE = 4 - -class IntFlagStooges(IntFlag): - LARRY = 1 - CURLY = 2 - MOE = 4 - -class IntFlagStoogesWithZero(IntFlag): - NOFLAG = 0 - LARRY = 1 - CURLY = 2 - MOE = 4 - # for pickle test and subclass tests class Name(StrEnum): BDFL = 'Guido van Rossum' @@ -360,12 +341,20 @@ def test_changing_member_fails(self): with self.assertRaises(AttributeError): self.MainEnum.second = 'really first' - def test_contains_tf(self): + @unittest.skipIf( + python_version >= (3, 12), + '__contains__ now returns True/False for all inputs', + ) + @unittest.expectedFailure + def test_contains_er(self): MainEnum = self.MainEnum - self.assertIn(MainEnum.first, MainEnum) - self.assertTrue(self.values[0] in MainEnum) - if type(self) is not TestStrEnum: - self.assertFalse('first' in MainEnum) + self.assertIn(MainEnum.third, MainEnum) + with self.assertRaises(TypeError): + with self.assertWarns(DeprecationWarning): + self.source_values[1] in MainEnum + with self.assertRaises(TypeError): + with self.assertWarns(DeprecationWarning): + 'first' in MainEnum val = MainEnum.dupe self.assertIn(val, MainEnum) # @@ -373,43 +362,24 @@ class OtherEnum(Enum): one = auto() two = auto() self.assertNotIn(OtherEnum.two, MainEnum) - # - if MainEnum._member_type_ is object: - # enums without mixed data types will always be False - class NotEqualEnum(self.enum_type): - this = self.source_values[0] - that = self.source_values[1] - self.assertNotIn(NotEqualEnum.this, MainEnum) - self.assertNotIn(NotEqualEnum.that, MainEnum) - else: - # enums with mixed data types may be True - class EqualEnum(self.enum_type): - this = self.source_values[0] - that = self.source_values[1] - self.assertIn(EqualEnum.this, MainEnum) - self.assertIn(EqualEnum.that, MainEnum) - - def test_contains_same_name_diff_enum_diff_values(self): + + @unittest.skipIf( + python_version < (3, 12), + '__contains__ works only with enum memmbers before 3.12', + ) + @unittest.expectedFailure + def test_contains_tf(self): MainEnum = self.MainEnum - # - class OtherEnum(Enum): - first = "brand" - second = "new" - third = "values" - # self.assertIn(MainEnum.first, MainEnum) - self.assertIn(MainEnum.second, MainEnum) - self.assertIn(MainEnum.third, MainEnum) - self.assertNotIn(MainEnum.first, OtherEnum) - self.assertNotIn(MainEnum.second, OtherEnum) - self.assertNotIn(MainEnum.third, OtherEnum) + self.assertTrue(self.source_values[0] in MainEnum) + self.assertFalse('first' in MainEnum) + val = MainEnum.dupe + self.assertIn(val, MainEnum) # - self.assertIn(OtherEnum.first, OtherEnum) - self.assertIn(OtherEnum.second, OtherEnum) - self.assertIn(OtherEnum.third, OtherEnum) - self.assertNotIn(OtherEnum.first, MainEnum) - self.assertNotIn(OtherEnum.second, MainEnum) - self.assertNotIn(OtherEnum.third, MainEnum) + class OtherEnum(Enum): + one = auto() + two = auto() + self.assertNotIn(OtherEnum.two, MainEnum) def test_dir_on_class(self): TE = self.MainEnum @@ -764,13 +734,6 @@ def test_format_specs(self): self.assertFormatIsValue('{:5.2}', TE.third) self.assertFormatIsValue('{:f}', TE.third) - def test_copy(self): - TE = self.MainEnum - copied = copy.copy(TE) - self.assertEqual(copied, TE) - deep = copy.deepcopy(TE) - self.assertEqual(deep, TE) - class _FlagTests: @@ -1009,15 +972,6 @@ class SpamEnum(Enum): spam = SpamEnumNotInner self.assertEqual(SpamEnum.spam.value, SpamEnumNotInner) - def test_enum_of_generic_aliases(self): - class E(Enum): - a = typing.List[int] - b = list[int] - self.assertEqual(E.a.value, typing.List[int]) - self.assertEqual(E.b.value, list[int]) - self.assertEqual(repr(E.a), '<E.a: typing.List[int]>') - self.assertEqual(repr(E.b), '<E.b: list[int]>') - @unittest.skipIf( python_version >= (3, 13), 'inner classes are not members', @@ -1143,28 +1097,6 @@ class Huh(Enum): self.assertEqual(Huh.name.name, 'name') self.assertEqual(Huh.name.value, 1) - def test_contains_name_and_value_overlap(self): - class IntEnum1(IntEnum): - X = 1 - class IntEnum2(IntEnum): - X = 1 - class IntEnum3(IntEnum): - X = 2 - class IntEnum4(IntEnum): - Y = 1 - self.assertIn(IntEnum1.X, IntEnum1) - self.assertIn(IntEnum1.X, IntEnum2) - self.assertNotIn(IntEnum1.X, IntEnum3) - self.assertIn(IntEnum1.X, IntEnum4) - - def test_contains_different_types_same_members(self): - class IntEnum1(IntEnum): - X = 1 - class IntFlag1(IntFlag): - X = 1 - self.assertIn(IntEnum1.X, IntFlag1) - self.assertIn(IntFlag1.X, IntEnum1) - def test_inherited_data_type(self): class HexInt(int): __qualname__ = 'HexInt' @@ -2646,10 +2578,6 @@ class Private(Enum): self.assertEqual(Private._Private__corporal, 'Radar') self.assertEqual(Private._Private__major_, 'Hoolihan') - @unittest.skipIf( - python_version <= (3, 13), - 'member.member access currently deprecated', - ) def test_exception_for_member_from_member_access(self): with self.assertRaisesRegex(AttributeError, "<enum .Di.> member has no attribute .NO."): class Di(Enum): @@ -2657,17 +2585,6 @@ class Di(Enum): NO = 0 nope = Di.YES.NO - @unittest.skipIf( - python_version > (3, 13), - 'member.member access now raises', - ) - def test_warning_for_member_from_member_access(self): - with self.assertWarnsRegex(DeprecationWarning, '`member.member` access .* is deprecated and will be removed in 3.14'): - class Di(Enum): - YES = 1 - NO = 0 - warn = Di.YES.NO - self.assertIs(warn, Di.NO) def test_dynamic_members_with_static_methods(self): # @@ -2702,15 +2619,12 @@ def test_repr_with_dataclass(self): @dataclass class Foo: __qualname__ = 'Foo' - a: int + a: int = 0 class Entries(Foo, Enum): - ENTRY1 = 1 - self.assertTrue(isinstance(Entries.ENTRY1, Foo)) - self.assertTrue(Entries._member_type_ is Foo, Entries._member_type_) - self.assertTrue(Entries.ENTRY1.value == Foo(1), Entries.ENTRY1.value) + ENTRY1 = Foo(1) self.assertEqual(repr(Entries.ENTRY1), '<Entries.ENTRY1: Foo(a=1)>') - def test_repr_with_init_data_type_mixin(self): + def test_repr_with_non_data_type_mixin(self): # non-data_type is a mixin that doesn't define __new__ class Foo: def __init__(self, a): @@ -2718,22 +2632,9 @@ def __init__(self, a): def __repr__(self): return f'Foo(a={self.a!r})' class Entries(Foo, Enum): - ENTRY1 = 1 - # - self.assertEqual(repr(Entries.ENTRY1), '<Entries.ENTRY1: Foo(a=1)>') + ENTRY1 = Foo(1) - def test_repr_and_str_with_non_data_type_mixin(self): - # non-data_type is a mixin that doesn't define __new__ - class Foo: - def __repr__(self): - return 'Foo' - def __str__(self): - return 'ooF' - class Entries(Foo, Enum): - ENTRY1 = 1 - # - self.assertEqual(repr(Entries.ENTRY1), 'Foo') - self.assertEqual(str(Entries.ENTRY1), 'ooF') + self.assertEqual(repr(Entries.ENTRY1), '<Entries.ENTRY1: Foo(a=1)>') def test_value_backup_assign(self): # check that enum will add missing values when custom __new__ does not @@ -2753,26 +2654,6 @@ class MyIntFlag(int, Flag): self.assertTrue(isinstance(MyIntFlag.ONE | MyIntFlag.TWO, MyIntFlag), MyIntFlag.ONE | MyIntFlag.TWO) self.assertTrue(isinstance(MyIntFlag.ONE | 2, MyIntFlag)) - def test_int_flags_copy(self): - class MyIntFlag(IntFlag): - ONE = 1 - TWO = 2 - FOUR = 4 - - flags = MyIntFlag.ONE | MyIntFlag.TWO - copied = copy.copy(flags) - deep = copy.deepcopy(flags) - self.assertEqual(copied, flags) - self.assertEqual(deep, flags) - - flags = MyIntFlag.ONE | MyIntFlag.TWO | 8 - copied = copy.copy(flags) - deep = copy.deepcopy(flags) - self.assertEqual(copied, flags) - self.assertEqual(deep, flags) - self.assertEqual(copied.value, 1 | 2 | 8) - - class TestOrder(unittest.TestCase): "test usage of the `_order_` attribute" @@ -3047,32 +2928,37 @@ def test_programatic_function_from_dict(self): def test_pickle(self): if isinstance(FlagStooges, Exception): raise FlagStooges - test_pickle_dump_load(self.assertIs, FlagStooges.CURLY) - test_pickle_dump_load(self.assertEqual, - FlagStooges.CURLY|FlagStooges.MOE) - test_pickle_dump_load(self.assertEqual, - FlagStooges.CURLY&~FlagStooges.CURLY) + test_pickle_dump_load(self.assertIs, FlagStooges.CURLY|FlagStooges.MOE) test_pickle_dump_load(self.assertIs, FlagStooges) - test_pickle_dump_load(self.assertIs, FlagStoogesWithZero.CURLY) - test_pickle_dump_load(self.assertEqual, - FlagStoogesWithZero.CURLY|FlagStoogesWithZero.MOE) - test_pickle_dump_load(self.assertIs, FlagStoogesWithZero.NOFLAG) - - test_pickle_dump_load(self.assertIs, IntFlagStooges.CURLY) - test_pickle_dump_load(self.assertEqual, - IntFlagStooges.CURLY|IntFlagStooges.MOE) - test_pickle_dump_load(self.assertEqual, - IntFlagStooges.CURLY|IntFlagStooges.MOE|0x30) - test_pickle_dump_load(self.assertEqual, IntFlagStooges(0)) - test_pickle_dump_load(self.assertEqual, IntFlagStooges(0x30)) - test_pickle_dump_load(self.assertIs, IntFlagStooges) - - test_pickle_dump_load(self.assertIs, IntFlagStoogesWithZero.CURLY) - test_pickle_dump_load(self.assertEqual, - IntFlagStoogesWithZero.CURLY|IntFlagStoogesWithZero.MOE) - test_pickle_dump_load(self.assertIs, IntFlagStoogesWithZero.NOFLAG) + @unittest.skipIf( + python_version >= (3, 12), + '__contains__ now returns True/False for all inputs', + ) + @unittest.expectedFailure + def test_contains_er(self): + Open = self.Open + Color = self.Color + self.assertFalse(Color.BLACK in Open) + self.assertFalse(Open.RO in Color) + with self.assertRaises(TypeError): + with self.assertWarns(DeprecationWarning): + 'BLACK' in Color + with self.assertRaises(TypeError): + with self.assertWarns(DeprecationWarning): + 'RO' in Open + with self.assertRaises(TypeError): + with self.assertWarns(DeprecationWarning): + 1 in Color + with self.assertRaises(TypeError): + with self.assertWarns(DeprecationWarning): + 1 in Open + @unittest.skipIf( + python_version < (3, 12), + '__contains__ only works with enum memmbers before 3.12', + ) + @unittest.expectedFailure def test_contains_tf(self): Open = self.Open Color = self.Color @@ -3080,8 +2966,6 @@ def test_contains_tf(self): self.assertFalse(Open.RO in Color) self.assertFalse('BLACK' in Color) self.assertFalse('RO' in Open) - self.assertTrue(Color.BLACK in Color) - self.assertTrue(Open.RO in Open) self.assertTrue(1 in Color) self.assertTrue(1 in Open) @@ -3469,10 +3353,7 @@ def test_invert(self): self.assertIs((Open.WO|Open.CE) & ~Open.WO, Open.CE) def test_boundary(self): - self.assertIs(enum.IntFlag._boundary_, KEEP) - class Simple(IntFlag, boundary=KEEP): - SINGLE = 1 - # + self.assertIs(enum.IntFlag._boundary_, EJECT) class Iron(IntFlag, boundary=STRICT): ONE = 1 TWO = 2 @@ -3491,6 +3372,7 @@ class Space(IntFlag, boundary=EJECT): EIGHT = 8 self.assertIs(Space._boundary_, EJECT) # + # class Bizarre(IntFlag, boundary=KEEP): b = 3 c = 4 @@ -3507,12 +3389,6 @@ class Bizarre(IntFlag, boundary=KEEP): self.assertEqual(list(Bizarre), [Bizarre.c]) self.assertIs(Bizarre(3), Bizarre.b) self.assertIs(Bizarre(6), Bizarre.d) - # - simple = Simple.SINGLE | Iron.TWO - self.assertEqual(simple, 3) - self.assertIsInstance(simple, Simple) - self.assertEqual(repr(simple), '<Simple.SINGLE|<Iron.TWO: 2>: 3>') - self.assertEqual(str(simple), '3') def test_iter(self): Color = self.Color @@ -3621,11 +3497,43 @@ def test_programatic_function_from_empty_tuple(self): self.assertEqual(len(lst), len(Thing)) self.assertEqual(len(Thing), 0, Thing) + @unittest.skipIf( + python_version >= (3, 12), + '__contains__ now returns True/False for all inputs', + ) + @unittest.expectedFailure + def test_contains_er(self): + Open = self.Open + Color = self.Color + self.assertTrue(Color.GREEN in Color) + self.assertTrue(Open.RW in Open) + self.assertFalse(Color.GREEN in Open) + self.assertFalse(Open.RW in Color) + with self.assertRaises(TypeError): + with self.assertWarns(DeprecationWarning): + 'GREEN' in Color + with self.assertRaises(TypeError): + with self.assertWarns(DeprecationWarning): + 'RW' in Open + with self.assertRaises(TypeError): + with self.assertWarns(DeprecationWarning): + 2 in Color + with self.assertRaises(TypeError): + with self.assertWarns(DeprecationWarning): + 2 in Open + + @unittest.skipIf( + python_version < (3, 12), + '__contains__ only works with enum memmbers before 3.12', + ) + @unittest.expectedFailure def test_contains_tf(self): Open = self.Open Color = self.Color self.assertTrue(Color.GREEN in Color) self.assertTrue(Open.RW in Open) + self.assertTrue(Color.GREEN in Open) + self.assertTrue(Open.RW in Color) self.assertFalse('GREEN' in Color) self.assertFalse('RW' in Open) self.assertTrue(2 in Color) @@ -4024,54 +3932,23 @@ class Color(AutoNameEnum): self.assertEqual(Color.blue.value, 'blue') self.assertEqual(Color.green.value, 'green') - @unittest.skipIf( - python_version >= (3, 13), - 'mixed types with auto() no longer supported', - ) - def test_auto_garbage_ok(self): - with self.assertWarnsRegex(DeprecationWarning, 'will require all values to be sortable'): - class Color(Enum): - red = 'red' - blue = auto() + def test_auto_garbage(self): + class Color(Enum): + red = 'red' + blue = auto() self.assertEqual(Color.blue.value, 1) - @unittest.skipIf( - python_version >= (3, 13), - 'mixed types with auto() no longer supported', - ) - def test_auto_garbage_corrected_ok(self): - with self.assertWarnsRegex(DeprecationWarning, 'will require all values to be sortable'): - class Color(Enum): - red = 'red' - blue = 2 - green = auto() + def test_auto_garbage_corrected(self): + class Color(Enum): + red = 'red' + blue = 2 + green = auto() self.assertEqual(list(Color), [Color.red, Color.blue, Color.green]) self.assertEqual(Color.red.value, 'red') self.assertEqual(Color.blue.value, 2) self.assertEqual(Color.green.value, 3) - @unittest.skipIf( - python_version < (3, 13), - 'mixed types with auto() will raise in 3.13', - ) - def test_auto_garbage_fail(self): - with self.assertRaisesRegex(TypeError, 'will require all values to be sortable'): - class Color(Enum): - red = 'red' - blue = auto() - - @unittest.skipIf( - python_version < (3, 13), - 'mixed types with auto() will raise in 3.13', - ) - def test_auto_garbage_corrected_fail(self): - with self.assertRaisesRegex(TypeError, 'will require all values to be sortable'): - class Color(Enum): - red = 'red' - blue = 2 - green = auto() - def test_auto_order(self): with self.assertRaises(TypeError): class Color(Enum): @@ -4093,22 +3970,6 @@ def _generate_next_value_(name, start, count, last): self.assertEqual(Color.red.value, 'pathological case') self.assertEqual(Color.blue.value, 'blue') - @unittest.skipIf( - python_version < (3, 13), - 'auto() will return highest value + 1 in 3.13', - ) - def test_auto_with_aliases(self): - class Color(Enum): - red = auto() - blue = auto() - oxford = blue - crimson = red - green = auto() - self.assertIs(Color.crimson, Color.red) - self.assertIs(Color.oxford, Color.blue) - self.assertIsNot(Color.green, Color.red) - self.assertIsNot(Color.green, Color.blue) - def test_duplicate_auto(self): class Dupes(Enum): first = primero = auto() @@ -4124,54 +3985,84 @@ class TestEnumTypeSubclassing(unittest.TestCase): class Color(enum.Enum) | Color(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None) - | + |\x20\x20 + | A collection of name/value pairs. + |\x20\x20 + | Access them by: + |\x20\x20 + | - attribute access:: + |\x20\x20 + | >>> Color.CYAN + | <Color.CYAN: 1> + |\x20\x20 + | - value lookup: + |\x20\x20 + | >>> Color(1) + | <Color.CYAN: 1> + |\x20\x20 + | - name lookup: + |\x20\x20 + | >>> Color['CYAN'] + | <Color.CYAN: 1> + |\x20\x20 + | Enumerations can be iterated over, and know how many members they have: + |\x20\x20 + | >>> len(Color) + | 3 + |\x20\x20 + | >>> list(Color) + | [<Color.CYAN: 1>, <Color.MAGENTA: 2>, <Color.YELLOW: 3>] + |\x20\x20 + | Methods can be added to enumerations, and members can have their own + | attributes -- see the documentation for details. + |\x20\x20 | Method resolution order: | Color | enum.Enum | builtins.object - | + |\x20\x20 | Data and other attributes defined here: - | + |\x20\x20 | CYAN = <Color.CYAN: 1> - | + |\x20\x20 | MAGENTA = <Color.MAGENTA: 2> - | + |\x20\x20 | YELLOW = <Color.YELLOW: 3> - | + |\x20\x20 | ---------------------------------------------------------------------- | Data descriptors inherited from enum.Enum: - | + |\x20\x20 | name | The name of the Enum member. - | + |\x20\x20 | value | The value of the Enum member. - | + |\x20\x20 | ---------------------------------------------------------------------- | Methods inherited from enum.EnumType: - | - | __contains__(value) from enum.EnumType - | Return True if `value` is in `cls`. - | - | `value` is in `cls` if: - | 1) `value` is a member of `cls`, or - | 2) `value` is the value of one of the `cls`'s members. - | + |\x20\x20 + | __contains__(member) from enum.EnumType + | Return True if member is a member of this enum + | raises TypeError if member is not an enum member + |\x20\x20\x20\x20\x20\x20 + | note: in 3.12 TypeError will no longer be raised, and True will also be + | returned if member is the value of a member in this enum + |\x20\x20 | __getitem__(name) from enum.EnumType | Return the member matching `name`. - | + |\x20\x20 | __iter__() from enum.EnumType | Return members in definition order. - | + |\x20\x20 | __len__() from enum.EnumType | Return the number of members (no aliases) - | + |\x20\x20 | ---------------------------------------------------------------------- | Readonly properties inherited from enum.EnumType: - | + |\x20\x20 | __members__ | Returns a mapping of member name->value. - | + |\x20\x20\x20\x20\x20\x20 | This mapping lists all enum members, including aliases. Note that this | is a read-only view of the internal mapping.""" @@ -4180,30 +4071,30 @@ class Color(enum.Enum) class Color(enum.Enum) | Color(value, names=None, *, module=None, qualname=None, type=None, start=1) - | + |\x20\x20 | Method resolution order: | Color | enum.Enum | builtins.object - | + |\x20\x20 | Data and other attributes defined here: - | + |\x20\x20 | YELLOW = <Color.YELLOW: 3> - | + |\x20\x20 | MAGENTA = <Color.MAGENTA: 2> - | + |\x20\x20 | CYAN = <Color.CYAN: 1> - | + |\x20\x20 | ---------------------------------------------------------------------- | Data descriptors inherited from enum.Enum: - | + |\x20\x20 | name - | + |\x20\x20 | value - | + |\x20\x20 | ---------------------------------------------------------------------- | Data descriptors inherited from enum.EnumType: - | + |\x20\x20 | __members__""" class TestStdLib(unittest.TestCase): @@ -4370,13 +4261,77 @@ def test__all__(self): def test_doc_1(self): class Single(Enum): ONE = 1 - self.assertEqual(Single.__doc__, None) + self.assertEqual( + Single.__doc__, + dedent("""\ + A collection of name/value pairs. + + Access them by: + + - attribute access:: + + >>> Single.ONE + <Single.ONE: 1> + + - value lookup: + + >>> Single(1) + <Single.ONE: 1> + + - name lookup: + + >>> Single['ONE'] + <Single.ONE: 1> + + Enumerations can be iterated over, and know how many members they have: + + >>> len(Single) + 1 + + >>> list(Single) + [<Single.ONE: 1>] + + Methods can be added to enumerations, and members can have their own + attributes -- see the documentation for details. + """)) def test_doc_2(self): class Double(Enum): ONE = 1 TWO = 2 - self.assertEqual(Double.__doc__, None) + self.assertEqual( + Double.__doc__, + dedent("""\ + A collection of name/value pairs. + + Access them by: + + - attribute access:: + + >>> Double.ONE + <Double.ONE: 1> + + - value lookup: + + >>> Double(1) + <Double.ONE: 1> + + - name lookup: + + >>> Double['ONE'] + <Double.ONE: 1> + + Enumerations can be iterated over, and know how many members they have: + + >>> len(Double) + 2 + + >>> list(Double) + [<Double.ONE: 1>, <Double.TWO: 2>] + + Methods can be added to enumerations, and members can have their own + attributes -- see the documentation for details. + """)) def test_doc_1(self): @@ -4384,7 +4339,39 @@ class Triple(Enum): ONE = 1 TWO = 2 THREE = 3 - self.assertEqual(Triple.__doc__, None) + self.assertEqual( + Triple.__doc__, + dedent("""\ + A collection of name/value pairs. + + Access them by: + + - attribute access:: + + >>> Triple.ONE + <Triple.ONE: 1> + + - value lookup: + + >>> Triple(1) + <Triple.ONE: 1> + + - name lookup: + + >>> Triple['ONE'] + <Triple.ONE: 1> + + Enumerations can be iterated over, and know how many members they have: + + >>> len(Triple) + 3 + + >>> list(Triple) + [<Triple.ONE: 1>, <Triple.TWO: 2>, <Triple.THREE: 3>] + + Methods can be added to enumerations, and members can have their own + attributes -- see the documentation for details. + """)) def test_doc_1(self): class Quadruple(Enum): @@ -4392,7 +4379,39 @@ class Quadruple(Enum): TWO = 2 THREE = 3 FOUR = 4 - self.assertEqual(Quadruple.__doc__, None) + self.assertEqual( + Quadruple.__doc__, + dedent("""\ + A collection of name/value pairs. + + Access them by: + + - attribute access:: + + >>> Quadruple.ONE + <Quadruple.ONE: 1> + + - value lookup: + + >>> Quadruple(1) + <Quadruple.ONE: 1> + + - name lookup: + + >>> Quadruple['ONE'] + <Quadruple.ONE: 1> + + Enumerations can be iterated over, and know how many members they have: + + >>> len(Quadruple) + 4 + + >>> list(Quadruple)[:3] + [<Quadruple.ONE: 1>, <Quadruple.TWO: 2>, <Quadruple.THREE: 3>] + + Methods can be added to enumerations, and members can have their own + attributes -- see the documentation for details. + """)) # These are unordered here on purpose to ensure that declaration order diff --git a/Lib/test/test_except_star.py b/Lib/test/test_except_star.py index dbe8eff32924ed..490b159e3b71b2 100644 --- a/Lib/test/test_except_star.py +++ b/Lib/test/test_except_star.py @@ -955,7 +955,7 @@ def derive(self, excs): def test_falsy_exception_group_subclass(self): class FalsyEG(ExceptionGroup): def __bool__(self): - return False + return False def derive(self, excs): return FalsyEG(self.message, excs) diff --git a/Lib/test/test_exception_group.py b/Lib/test/test_exception_group.py index aa28e16bedfa68..2cfd8738304d1c 100644 --- a/Lib/test/test_exception_group.py +++ b/Lib/test/test_exception_group.py @@ -1,4 +1,5 @@ import collections.abc +import traceback import types import unittest @@ -758,18 +759,6 @@ def test_split_does_not_copy_non_sequence_notes(self): self.assertFalse(hasattr(match, '__notes__')) self.assertFalse(hasattr(rest, '__notes__')) - def test_drive_invalid_return_value(self): - class MyEg(ExceptionGroup): - def derive(self, excs): - return 42 - - eg = MyEg('eg', [TypeError(1), ValueError(2)]) - msg = "derive must return an instance of BaseExceptionGroup" - with self.assertRaisesRegex(TypeError, msg): - eg.split(TypeError) - with self.assertRaisesRegex(TypeError, msg): - eg.subgroup(TypeError) - class NestedExceptionGroupSubclassSplitTest(ExceptionGroupSplitTestBase): diff --git a/Lib/test/test_exception_hierarchy.py b/Lib/test/test_exception_hierarchy.py index 3318fa8e7746f7..89fe9ddcefba3e 100644 --- a/Lib/test/test_exception_hierarchy.py +++ b/Lib/test/test_exception_hierarchy.py @@ -63,7 +63,7 @@ def test_select_error(self): +-- InterruptedError EINTR +-- IsADirectoryError EISDIR +-- NotADirectoryError ENOTDIR - +-- PermissionError EACCES, EPERM, ENOTCAPABLE + +-- PermissionError EACCES, EPERM +-- ProcessLookupError ESRCH +-- TimeoutError ETIMEDOUT """ @@ -75,8 +75,6 @@ def _make_map(s): continue excname, _, errnames = line.partition(' ') for errname in filter(None, errnames.strip().split(', ')): - if errname == "ENOTCAPABLE" and not hasattr(errno, errname): - continue _map[getattr(errno, errname)] = getattr(builtins, excname) return _map _map = _make_map(_pep_map) @@ -93,7 +91,7 @@ def test_errno_mapping(self): othercodes = set(errno.errorcode) - set(self._map) for errcode in othercodes: e = OSError(errcode, "Some message") - self.assertIs(type(e), OSError, repr(e)) + self.assertIs(type(e), OSError) def test_try_except(self): filename = "some_hopefully_non_existing_file" diff --git a/Lib/test/test_exceptions.py b/Lib/test/test_exceptions.py index 123bed6198c615..ff1a02821a58fc 100644 --- a/Lib/test/test_exceptions.py +++ b/Lib/test/test_exceptions.py @@ -1,6 +1,7 @@ # Python test set -- part 5, built-in exceptions import copy +import gc import os import sys import unittest @@ -546,29 +547,6 @@ def testAttributes(self): 'pickled "%r", attribute "%s' % (e, checkArgName)) - def test_setstate(self): - e = Exception(42) - e.blah = 53 - self.assertEqual(e.args, (42,)) - self.assertEqual(e.blah, 53) - self.assertRaises(AttributeError, getattr, e, 'a') - self.assertRaises(AttributeError, getattr, e, 'b') - e.__setstate__({'a': 1 , 'b': 2}) - self.assertEqual(e.args, (42,)) - self.assertEqual(e.blah, 53) - self.assertEqual(e.a, 1) - self.assertEqual(e.b, 2) - e.__setstate__({'a': 11, 'args': (1,2,3), 'blah': 35}) - self.assertEqual(e.args, (1,2,3)) - self.assertEqual(e.blah, 35) - self.assertEqual(e.a, 11) - self.assertEqual(e.b, 2) - - def test_invalid_setstate(self): - e = Exception(42) - with self.assertRaisesRegex(TypeError, "state is not a dictionary"): - e.__setstate__(42) - def test_notes(self): for e in [BaseException(1), Exception(2), ValueError(3)]: with self.subTest(e=e): @@ -625,30 +603,11 @@ def testInvalidTraceback(self): else: self.fail("No exception raised") - def test_invalid_setattr(self): - TE = TypeError - exc = Exception() - msg = "'int' object is not iterable" - self.assertRaisesRegex(TE, msg, setattr, exc, 'args', 1) - msg = "__traceback__ must be a traceback or None" - self.assertRaisesRegex(TE, msg, setattr, exc, '__traceback__', 1) - msg = "exception cause must be None or derive from BaseException" - self.assertRaisesRegex(TE, msg, setattr, exc, '__cause__', 1) - msg = "exception context must be None or derive from BaseException" - self.assertRaisesRegex(TE, msg, setattr, exc, '__context__', 1) - - def test_invalid_delattr(self): - TE = TypeError - try: - raise IndexError(4) - except Exception as e: - exc = e - - msg = "may not be deleted" - self.assertRaisesRegex(TE, msg, delattr, exc, 'args') - self.assertRaisesRegex(TE, msg, delattr, exc, '__traceback__') - self.assertRaisesRegex(TE, msg, delattr, exc, '__cause__') - self.assertRaisesRegex(TE, msg, delattr, exc, '__context__') + def testInvalidAttrs(self): + self.assertRaises(TypeError, setattr, Exception(), '__cause__', 1) + self.assertRaises(TypeError, delattr, Exception(), '__cause__') + self.assertRaises(TypeError, setattr, Exception(), '__context__', 1) + self.assertRaises(TypeError, delattr, Exception(), '__context__') def testNoneClearsTracebackAttr(self): try: @@ -2099,11 +2058,6 @@ class A: except AttributeError as exc: self.assertEqual("bluch", exc.name) self.assertEqual(obj, exc.obj) - try: - object.__getattribute__(obj, "bluch") - except AttributeError as exc: - self.assertEqual("bluch", exc.name) - self.assertEqual(obj, exc.obj) def test_getattr_has_name_and_obj_for_method(self): class A: diff --git a/Lib/test/test_extcall.py b/Lib/test/test_extcall.py index d9d85fe79af883..13265ea0d8ce85 100644 --- a/Lib/test/test_extcall.py +++ b/Lib/test/test_extcall.py @@ -8,7 +8,6 @@ We're defining four helper functions - >>> from test import support >>> def e(a,b): ... print(a, b) @@ -382,27 +381,6 @@ ... TypeError: test.test_extcall.g() got multiple values for keyword argument 'x' -Call with dict subtype: - - >>> class MyDict(dict): - ... pass - - >>> def s1(**kwargs): - ... return kwargs - >>> def s2(*args, **kwargs): - ... return (args, kwargs) - >>> def s3(*, n, **kwargs): - ... return (n, kwargs) - - >>> md = MyDict({'a': 1, 'b': 2}) - >>> assert s1(**md) == {'a': 1, 'b': 2} - >>> assert s2(*(1, 2), **md) == ((1, 2), {'a': 1, 'b': 2}) - >>> assert s3(**MyDict({'n': 1, 'b': 2})) == (1, {'b': 2}) - >>> s3(**md) - Traceback (most recent call last): - ... - TypeError: s3() missing 1 required keyword-only argument: 'n' - Another helper function >>> def f2(*a, **b): @@ -544,6 +522,7 @@ import doctest import unittest +from test import support def load_tests(loader, tests, pattern): tests.addTest(doctest.DocTestSuite()) diff --git a/Lib/test/test_file.py b/Lib/test/test_file.py index 9df55278693531..1146a37323c9bf 100644 --- a/Lib/test/test_file.py +++ b/Lib/test/test_file.py @@ -217,7 +217,7 @@ def testSetBufferSize(self): self._checkBufferSize(1) def testTruncateOnWindows(self): - # SF bug <https://bugs.python.org/issue801631> + # SF bug <http://www.python.org/sf/801631> # "file.truncate fault on windows" f = self.open(TESTFN, 'wb') diff --git a/Lib/test/test_fileinput.py b/Lib/test/test_fileinput.py index ac20c74baa09e2..819200010a2230 100644 --- a/Lib/test/test_fileinput.py +++ b/Lib/test/test_fileinput.py @@ -326,16 +326,6 @@ def test_inplace_binary_write_mode(self): with open(temp_file, 'rb') as f: self.assertEqual(f.read(), b'New line.') - def test_inplace_encoding_errors(self): - temp_file = self.writeTmp(b'Initial text \x88', mode='wb') - with FileInput(temp_file, inplace=True, - encoding="ascii", errors="replace") as fobj: - line = fobj.readline() - self.assertEqual(line, 'Initial text \ufffd') - print("New line \x88") - with open(temp_file, 'rb') as f: - self.assertEqual(f.read().rstrip(b'\r\n'), b'New line ?') - def test_file_hook_backward_compatibility(self): def old_hook(filename, mode): return io.StringIO("I used to receive only filename and mode") diff --git a/Lib/test/test_fileio.py b/Lib/test/test_fileio.py index 2263604ed1f97d..c26cdc028cc890 100644 --- a/Lib/test/test_fileio.py +++ b/Lib/test/test_fileio.py @@ -503,7 +503,7 @@ def testTruncate(self): def testTruncateOnWindows(self): def bug801631(): - # SF bug <https://bugs.python.org/issue801631> + # SF bug <http://www.python.org/sf/801631> # "file.truncate fault on windows" f = self.FileIO(TESTFN, 'w') f.write(bytes(range(11))) diff --git a/Lib/test/test_float.py b/Lib/test/test_float.py index f8350c1e4caa27..d8c0fe1854eba5 100644 --- a/Lib/test/test_float.py +++ b/Lib/test/test_float.py @@ -8,6 +8,7 @@ import unittest from test import support +from test.support import import_helper from test.test_grammar import (VALID_UNDERSCORE_LITERALS, INVALID_UNDERSCORE_LITERALS) from math import isinf, isnan, copysign, ldexp @@ -137,10 +138,6 @@ def check(s): check('123\xbd') check(' 123 456 ') check(b' 123 456 ') - # all whitespace (cf. https://github.com/python/cpython/issues/95605) - check('') - check(' ') - check('\t \n') # non-ascii digits (error came from non-digit '!') check('\u0663\u0661\u0664!') @@ -835,11 +832,6 @@ def test_inf_nan(self): self.assertRaises(TypeError, round, NAN, "ceci n'est pas un integer") self.assertRaises(TypeError, round, -0.0, 1j) - def test_inf_nan_ndigits(self): - self.assertEqual(round(INF, 0), INF) - self.assertEqual(round(-INF, 0), -INF) - self.assertTrue(math.isnan(round(NAN, 0))) - def test_large_n(self): for n in [324, 325, 400, 2**31-1, 2**31, 2**32, 2**100]: self.assertEqual(round(123.456, n), 123.456) diff --git a/Lib/test/test_flufl.py b/Lib/test/test_flufl.py index fd264c926bd575..a81a4d4c8f0e4c 100644 --- a/Lib/test/test_flufl.py +++ b/Lib/test/test_flufl.py @@ -1,5 +1,6 @@ import __future__ import unittest +from test import support class FLUFLTests(unittest.TestCase): diff --git a/Lib/test/test_fnmatch.py b/Lib/test/test_fnmatch.py index 10ed496d4e2f37..ca695d6f3f019b 100644 --- a/Lib/test/test_fnmatch.py +++ b/Lib/test/test_fnmatch.py @@ -2,7 +2,6 @@ import unittest import os -import string import warnings from fnmatch import fnmatch, fnmatchcase, translate, filter @@ -92,119 +91,6 @@ def test_sep(self): check('usr/bin', 'usr\\bin', normsep) check('usr\\bin', 'usr\\bin') - def test_char_set(self): - ignorecase = os.path.normcase('ABC') == os.path.normcase('abc') - check = self.check_match - tescases = string.ascii_lowercase + string.digits + string.punctuation - for c in tescases: - check(c, '[az]', c in 'az') - check(c, '[!az]', c not in 'az') - # Case insensitive. - for c in tescases: - check(c, '[AZ]', (c in 'az') and ignorecase) - check(c, '[!AZ]', (c not in 'az') or not ignorecase) - for c in string.ascii_uppercase: - check(c, '[az]', (c in 'AZ') and ignorecase) - check(c, '[!az]', (c not in 'AZ') or not ignorecase) - # Repeated same character. - for c in tescases: - check(c, '[aa]', c == 'a') - # Special cases. - for c in tescases: - check(c, '[^az]', c in '^az') - check(c, '[[az]', c in '[az') - check(c, r'[!]]', c != ']') - check('[', '[') - check('[]', '[]') - check('[!', '[!') - check('[!]', '[!]') - - def test_range(self): - ignorecase = os.path.normcase('ABC') == os.path.normcase('abc') - normsep = os.path.normcase('\\') == os.path.normcase('/') - check = self.check_match - tescases = string.ascii_lowercase + string.digits + string.punctuation - for c in tescases: - check(c, '[b-d]', c in 'bcd') - check(c, '[!b-d]', c not in 'bcd') - check(c, '[b-dx-z]', c in 'bcdxyz') - check(c, '[!b-dx-z]', c not in 'bcdxyz') - # Case insensitive. - for c in tescases: - check(c, '[B-D]', (c in 'bcd') and ignorecase) - check(c, '[!B-D]', (c not in 'bcd') or not ignorecase) - for c in string.ascii_uppercase: - check(c, '[b-d]', (c in 'BCD') and ignorecase) - check(c, '[!b-d]', (c not in 'BCD') or not ignorecase) - # Upper bound == lower bound. - for c in tescases: - check(c, '[b-b]', c == 'b') - # Special cases. - for c in tescases: - check(c, '[!-#]', c not in '-#') - check(c, '[!--.]', c not in '-.') - check(c, '[^-`]', c in '^_`') - if not (normsep and c == '/'): - check(c, '[[-^]', c in r'[\]^') - check(c, r'[\-^]', c in r'\]^') - check(c, '[b-]', c in '-b') - check(c, '[!b-]', c not in '-b') - check(c, '[-b]', c in '-b') - check(c, '[!-b]', c not in '-b') - check(c, '[-]', c in '-') - check(c, '[!-]', c not in '-') - # Upper bound is less that lower bound: error in RE. - for c in tescases: - check(c, '[d-b]', False) - check(c, '[!d-b]', True) - check(c, '[d-bx-z]', c in 'xyz') - check(c, '[!d-bx-z]', c not in 'xyz') - check(c, '[d-b^-`]', c in '^_`') - if not (normsep and c == '/'): - check(c, '[d-b[-^]', c in r'[\]^') - - def test_sep_in_char_set(self): - normsep = os.path.normcase('\\') == os.path.normcase('/') - check = self.check_match - check('/', r'[/]') - check('\\', r'[\]') - check('/', r'[\]', normsep) - check('\\', r'[/]', normsep) - check('[/]', r'[/]', False) - check(r'[\\]', r'[/]', False) - check('\\', r'[\t]') - check('/', r'[\t]', normsep) - check('t', r'[\t]') - check('\t', r'[\t]', False) - - def test_sep_in_range(self): - normsep = os.path.normcase('\\') == os.path.normcase('/') - check = self.check_match - check('a/b', 'a[.-0]b', not normsep) - check('a\\b', 'a[.-0]b', False) - check('a\\b', 'a[Z-^]b', not normsep) - check('a/b', 'a[Z-^]b', False) - - check('a/b', 'a[/-0]b', not normsep) - check(r'a\b', 'a[/-0]b', False) - check('a[/-0]b', 'a[/-0]b', False) - check(r'a[\-0]b', 'a[/-0]b', False) - - check('a/b', 'a[.-/]b') - check(r'a\b', 'a[.-/]b', normsep) - check('a[.-/]b', 'a[.-/]b', False) - check(r'a[.-\]b', 'a[.-/]b', False) - - check(r'a\b', r'a[\-^]b') - check('a/b', r'a[\-^]b', normsep) - check(r'a[\-^]b', r'a[\-^]b', False) - check('a[/-^]b', r'a[\-^]b', False) - - check(r'a\b', r'a[Z-\]b', not normsep) - check('a/b', r'a[Z-\]b', False) - check(r'a[Z-\]b', r'a[Z-\]b', False) - check('a[Z-/]b', r'a[Z-\]b', False) - def test_warnings(self): with warnings.catch_warnings(): warnings.simplefilter('error', Warning) diff --git a/Lib/test/test_fractions.py b/Lib/test/test_fractions.py index 7fa9dbea905b59..fc46e8674fc46e 100644 --- a/Lib/test/test_fractions.py +++ b/Lib/test/test_fractions.py @@ -162,7 +162,6 @@ def testInitFromDecimal(self): def testFromString(self): self.assertEqual((5, 1), _components(F("5"))) self.assertEqual((3, 2), _components(F("3/2"))) - self.assertEqual((3, 2), _components(F("3 / 2"))) self.assertEqual((3, 2), _components(F(" \n +3/2"))) self.assertEqual((-3, 2), _components(F("-3/2 "))) self.assertEqual((13, 2), _components(F(" 013/02 \n "))) @@ -191,6 +190,9 @@ def testFromString(self): self.assertRaisesMessage( ValueError, "Invalid literal for Fraction: '/2'", F, "/2") + self.assertRaisesMessage( + ValueError, "Invalid literal for Fraction: '3 /2'", + F, "3 /2") self.assertRaisesMessage( # Denominators don't need a sign. ValueError, "Invalid literal for Fraction: '3/+2'", diff --git a/Lib/test/test_frame.py b/Lib/test/test_frame.py index 5dda2fbfac374c..a715e725a7e45b 100644 --- a/Lib/test/test_frame.py +++ b/Lib/test/test_frame.py @@ -1,12 +1,10 @@ import re import sys -import textwrap import types import unittest import weakref from test import support -from test.support.script_helper import assert_python_ok class ClearTest(unittest.TestCase): @@ -237,29 +235,6 @@ def inner(): r"^<frame at 0x[0-9a-fA-F]+, file %s, line %d, code inner>$" % (file_repr, offset + 5)) -class TestIncompleteFrameAreInvisible(unittest.TestCase): - - def test_issue95818(self): - # See GH-95818 for details - code = textwrap.dedent(f""" - import gc - - gc.set_threshold(1,1,1) - class GCHello: - def __del__(self): - print("Destroyed from gc") - - def gen(): - yield - - fd = open({__file__!r}) - l = [fd, GCHello()] - l.append(l) - del fd - del l - gen() - """) - assert_python_ok("-c", code) if __name__ == "__main__": unittest.main() diff --git a/Lib/test/test_fstring.py b/Lib/test/test_fstring.py index bf3a5b0bbccdfb..0c3372f0335517 100644 --- a/Lib/test/test_fstring.py +++ b/Lib/test/test_fstring.py @@ -346,39 +346,10 @@ def test_ast_line_numbers_multiline_fstring(self): self.assertEqual(binop.lineno, 4) self.assertEqual(binop.left.lineno, 4) self.assertEqual(binop.right.lineno, 6) - self.assertEqual(binop.col_offset, 3) - self.assertEqual(binop.left.col_offset, 3) + self.assertEqual(binop.col_offset, 4) + self.assertEqual(binop.left.col_offset, 4) self.assertEqual(binop.right.col_offset, 7) - expr = """ -a = f''' - {blech} - ''' -""" - t = ast.parse(expr) - self.assertEqual(type(t), ast.Module) - self.assertEqual(len(t.body), 1) - # Check f'...' - self.assertEqual(type(t.body[0]), ast.Assign) - self.assertEqual(type(t.body[0].value), ast.JoinedStr) - self.assertEqual(len(t.body[0].value.values), 3) - self.assertEqual(type(t.body[0].value.values[1]), ast.FormattedValue) - self.assertEqual(t.body[0].lineno, 2) - self.assertEqual(t.body[0].value.lineno, 2) - self.assertEqual(t.body[0].value.values[0].lineno, 2) - self.assertEqual(t.body[0].value.values[1].lineno, 2) - self.assertEqual(t.body[0].value.values[2].lineno, 2) - self.assertEqual(t.body[0].col_offset, 0) - self.assertEqual(t.body[0].value.col_offset, 4) - self.assertEqual(t.body[0].value.values[0].col_offset, 4) - self.assertEqual(t.body[0].value.values[1].col_offset, 4) - self.assertEqual(t.body[0].value.values[2].col_offset, 4) - # Check {blech} - self.assertEqual(t.body[0].value.values[1].value.lineno, 3) - self.assertEqual(t.body[0].value.values[1].value.end_lineno, 3) - self.assertEqual(t.body[0].value.values[1].value.col_offset, 11) - self.assertEqual(t.body[0].value.values[1].value.end_col_offset, 16) - def test_ast_line_numbers_with_parentheses(self): expr = """ x = ( @@ -619,9 +590,7 @@ def test_format_specifier_expressions(self): self.assertEqual(f'{-10:{"-"}#{1}0{"x"}}', ' -0xa') self.assertEqual(f'{10:#{3 != {4:5} and width}x}', ' 0xa') - self.assertAllRaise(SyntaxError, - """f-string: invalid conversion character 'r{"': """ - """expected 's', 'r', or 'a'""", + self.assertAllRaise(SyntaxError, "f-string: expecting '}'", ["""f'{"s"!r{":10"}}'""", # This looks like a nested format spec. @@ -1043,28 +1012,19 @@ def test_conversions(self): # Not a conversion, but show that ! is allowed in a format spec. self.assertEqual(f'{3.14:!<10.10}', '3.14!!!!!!') - self.assertAllRaise(SyntaxError, "f-string: expecting '}'", - ["f'{3!'", - "f'{3!s'", - "f'{3!g'", - ]) - - self.assertAllRaise(SyntaxError, 'f-string: missed conversion character', - ["f'{3!}'", - "f'{3!:'", + self.assertAllRaise(SyntaxError, 'f-string: invalid conversion character', + ["f'{3!g}'", + "f'{3!A}'", + "f'{3!3}'", + "f'{3!G}'", + "f'{3!!}'", "f'{3!:}'", + "f'{3! s}'", # no space before conversion char ]) - for conv in 'g', 'A', '3', 'G', '!', ' s', 's ', ' s ', 'ä', 'ɐ', 'ª': - self.assertAllRaise(SyntaxError, - "f-string: invalid conversion character %r: " - "expected 's', 'r', or 'a'" % conv, - ["f'{3!" + conv + "}'"]) - - self.assertAllRaise(SyntaxError, - "f-string: invalid conversion character 'ss': " - "expected 's', 'r', or 'a'", - ["f'{3!ss}'", + self.assertAllRaise(SyntaxError, "f-string: expecting '}'", + ["f'{x!s{y}}'", + "f'{3!ss}'", "f'{3!ss:}'", "f'{3!ss:s}'", ]) @@ -1113,7 +1073,6 @@ def test_mismatched_braces(self): "f'{'", "f'x{<'", # See bpo-46762. "f'x{>'", - "f'{i='", # See gh-93418. ]) # But these are just normal strings. diff --git a/Lib/test/test_functools.py b/Lib/test/test_functools.py index a4b098a2a5b8ed..382e7dbffddf9d 100644 --- a/Lib/test/test_functools.py +++ b/Lib/test/test_functools.py @@ -13,6 +13,7 @@ import typing import unittest import unittest.mock +import os import weakref import gc from weakref import proxy @@ -20,6 +21,7 @@ from test.support import import_helper from test.support import threading_helper +from test.support.script_helper import assert_python_ok import functools @@ -2003,7 +2005,7 @@ class D(collections.defaultdict): c.MutableSequence.register(D) bases = [c.MutableSequence, c.MutableMapping] for haystack in permutations(bases): - m = mro(D, haystack) + m = mro(D, bases) self.assertEqual(m, [D, c.MutableSequence, c.Sequence, c.Reversible, collections.defaultdict, dict, c.MutableMapping, c.Mapping, c.Collection, c.Sized, c.Iterable, c.Container, diff --git a/Lib/test/test_future.py b/Lib/test/test_future.py index 189cbdc4365b79..c3e8420d6672c5 100644 --- a/Lib/test/test_future.py +++ b/Lib/test/test_future.py @@ -3,6 +3,7 @@ import __future__ import ast import unittest +from test import support from test.support import import_helper from textwrap import dedent import os diff --git a/Lib/test/test_gc.py b/Lib/test/test_gc.py index 087f72768fa4bf..dbbd67b4fc88a1 100644 --- a/Lib/test/test_gc.py +++ b/Lib/test/test_gc.py @@ -1440,13 +1440,19 @@ def test_ast_fini(self): code = textwrap.dedent(""" import ast import codecs - from test import support # Small AST tree to keep their AST types alive tree = ast.parse("def f(x, y): return 2*x-y") - - # Store the tree somewhere to survive until the last GC collection - support.late_deletion(tree) + x = [tree] + x.append(x) + + # Put the cycle somewhere to survive until the last GC collection. + # Codec search functions are only cleared at the end of + # interpreter_clear(). + def search_func(encoding): + return None + search_func.a = x + codecs.register(search_func) """) assert_python_ok("-c", code) diff --git a/Lib/test/test_generators.py b/Lib/test/test_generators.py index e5aa7da1e0df13..87a7dd69d106c4 100644 --- a/Lib/test/test_generators.py +++ b/Lib/test/test_generators.py @@ -170,43 +170,6 @@ def f(): g.send(0) self.assertEqual(next(g), 1) - def test_handle_frame_object_in_creation(self): - - #Attempt to expose partially constructed frames - #See https://github.com/python/cpython/issues/94262 - - def cb(*args): - inspect.stack() - - def gen(): - yield 1 - - thresholds = gc.get_threshold() - - gc.callbacks.append(cb) - gc.set_threshold(1, 0, 0) - try: - gen() - finally: - gc.set_threshold(*thresholds) - gc.callbacks.pop() - - class Sneaky: - def __del__(self): - inspect.stack() - - sneaky = Sneaky() - sneaky._s = Sneaky() - sneaky._s._s = sneaky - - gc.set_threshold(1, 0, 0) - try: - del sneaky - gen() - finally: - gc.set_threshold(*thresholds) - - class ExceptionTest(unittest.TestCase): # Tests for the issue #23353: check that the currently handled exception diff --git a/Lib/test/test_getargs2.py b/Lib/test/test_getargs2.py index 1d5c7fbaa1510a..7c11c6cd33a84d 100644 --- a/Lib/test/test_getargs2.py +++ b/Lib/test/test_getargs2.py @@ -746,33 +746,6 @@ def test_surrogate_keyword(self): "'\udc80' is an invalid keyword argument for this function"): getargs_keyword_only(1, 2, **{'\uDC80': 10}) - def test_weird_str_subclass(self): - class BadStr(str): - def __eq__(self, other): - return True - def __hash__(self): - # Guaranteed different hash - return str.__hash__(self) ^ 3 - with self.assertRaisesRegex(TypeError, - "invalid keyword argument for this function"): - getargs_keyword_only(1, 2, **{BadStr("keyword_only"): 3}) - with self.assertRaisesRegex(TypeError, - "invalid keyword argument for this function"): - getargs_keyword_only(1, 2, **{BadStr("monster"): 666}) - - def test_weird_str_subclass2(self): - class BadStr(str): - def __eq__(self, other): - return False - def __hash__(self): - return str.__hash__(self) - with self.assertRaisesRegex(TypeError, - "invalid keyword argument for this function"): - getargs_keyword_only(1, 2, **{BadStr("keyword_only"): 3}) - with self.assertRaisesRegex(TypeError, - "invalid keyword argument for this function"): - getargs_keyword_only(1, 2, **{BadStr("monster"): 666}) - class PositionalOnlyAndKeywords_TestCase(unittest.TestCase): from _testcapi import getargs_positional_only_and_keywords as getargs @@ -904,19 +877,9 @@ def test_s_hash(self): def test_s_hash_int(self): # "s#" without PY_SSIZE_T_CLEAN defined. from _testcapi import getargs_s_hash_int - from _testcapi import getargs_s_hash_int2 - buf = bytearray([1, 2]) - self.assertRaises(SystemError, getargs_s_hash_int, buf, "abc") - self.assertRaises(SystemError, getargs_s_hash_int, buf, x=42) - self.assertRaises(SystemError, getargs_s_hash_int, buf, x="abc") - self.assertRaises(SystemError, getargs_s_hash_int2, buf, ("abc",)) - self.assertRaises(SystemError, getargs_s_hash_int2, buf, x=42) - self.assertRaises(SystemError, getargs_s_hash_int2, buf, x="abc") - buf.append(3) # still mutable -- not locked by a buffer export - # getargs_s_hash_int(buf) may not raise SystemError because skipitem() - # is not called. But it is an implementation detail. - # getargs_s_hash_int(buf) - # getargs_s_hash_int2(buf) + self.assertRaises(SystemError, getargs_s_hash_int, "abc") + self.assertRaises(SystemError, getargs_s_hash_int, x=42) + # getargs_s_hash_int() don't raise SystemError because skipitem() is not called. def test_z(self): from _testcapi import getargs_z diff --git a/Lib/test/test_getopt.py b/Lib/test/test_getopt.py index c96a33b77fe272..64b9ce01e05ea2 100644 --- a/Lib/test/test_getopt.py +++ b/Lib/test/test_getopt.py @@ -83,7 +83,7 @@ def test_do_longs(self): # Much like the preceding, except with a non-alpha character ("-") in # option name that precedes "="; failed in - # https://bugs.python.org/issue126863 + # http://python.org/sf/126863 opts, args = getopt.do_longs([], 'foo=42', ['foo-bar', 'foo=',], []) self.assertEqual(opts, [('--foo', '42')]) self.assertEqual(args, []) diff --git a/Lib/test/test_getpath.py b/Lib/test/test_getpath.py index 1e46cb5780c942..5208374e20013c 100644 --- a/Lib/test/test_getpath.py +++ b/Lib/test/test_getpath.py @@ -2,6 +2,7 @@ import ntpath import pathlib import posixpath +import sys import unittest from test.support import verbose diff --git a/Lib/test/test_grammar.py b/Lib/test/test_grammar.py index 58f907eac09d53..da88519862712a 100644 --- a/Lib/test/test_grammar.py +++ b/Lib/test/test_grammar.py @@ -1592,7 +1592,7 @@ def test_selectors(self): s = a[-5:] s = a[:-1] s = a[-4:-3] - # A rough test of SF bug 1333982. https://bugs.python.org/issue1333982 + # A rough test of SF bug 1333982. http://python.org/sf/1333982 # The testing here is fairly incomplete. # Test cases should include: commas with 1 and 2 colons d = {} diff --git a/Lib/test/test_grp.py b/Lib/test/test_grp.py index e52e17b8dc7366..c7ec03ec0e4388 100644 --- a/Lib/test/test_grp.py +++ b/Lib/test/test_grp.py @@ -49,12 +49,10 @@ def test_values_extended(self): def test_errors(self): self.assertRaises(TypeError, grp.getgrgid) - self.assertRaises(TypeError, grp.getgrgid, 3.14) self.assertRaises(TypeError, grp.getgrnam) - self.assertRaises(TypeError, grp.getgrnam, 42) self.assertRaises(TypeError, grp.getgrall, 42) # embedded null character - self.assertRaisesRegex(ValueError, 'null', grp.getgrnam, 'a\x00b') + self.assertRaises(ValueError, grp.getgrnam, 'a\x00b') # try to get some errors bynames = {} diff --git a/Lib/test/test_hashlib.py b/Lib/test/test_hashlib.py index 450dc4933f47f7..bc9407dc9e424d 100644 --- a/Lib/test/test_hashlib.py +++ b/Lib/test/test_hashlib.py @@ -1096,7 +1096,15 @@ def _test_pbkdf2_hmac(self, pbkdf2, supported): iterations=1, dklen=None) self.assertEqual(out, self.pbkdf2_results['sha1'][0][0]) - @unittest.skipIf(openssl_hashlib is None, "requires OpenSSL bindings") + @unittest.skipIf(builtin_hashlib is None, "test requires builtin_hashlib") + def test_pbkdf2_hmac_py(self): + with warnings_helper.check_warnings(): + self._test_pbkdf2_hmac( + builtin_hashlib.pbkdf2_hmac, builtin_hashes + ) + + @unittest.skipUnless(hasattr(openssl_hashlib, 'pbkdf2_hmac'), + ' test requires OpenSSL > 1.0') def test_pbkdf2_hmac_c(self): self._test_pbkdf2_hmac(openssl_hashlib.pbkdf2_hmac, openssl_md_meth_names) diff --git a/Lib/test/test_heapq.py b/Lib/test/test_heapq.py index 1aa8e4e289730d..cb1e4505b02a30 100644 --- a/Lib/test/test_heapq.py +++ b/Lib/test/test_heapq.py @@ -4,6 +4,7 @@ import unittest import doctest +from test import support from test.support import import_helper from unittest import TestCase, skipUnless from operator import itemgetter diff --git a/Lib/test/test_htmlparser.py b/Lib/test/test_htmlparser.py index b42a611c62c0aa..12917755a56017 100644 --- a/Lib/test/test_htmlparser.py +++ b/Lib/test/test_htmlparser.py @@ -4,8 +4,6 @@ import pprint import unittest -from unittest.mock import patch - class EventCollector(html.parser.HTMLParser): @@ -789,17 +787,5 @@ def test_weird_chars_in_unquoted_attribute_values(self): ('starttag', 'form', [('action', 'bogus|&#()value')])]) - -class TestInheritance(unittest.TestCase): - - @patch("_markupbase.ParserBase.__init__") - @patch("_markupbase.ParserBase.reset") - def test_base_class_methods_called(self, super_reset_method, super_init_method): - with patch('_markupbase.ParserBase') as parser_base: - EventCollector() - super_init_method.assert_called_once() - super_reset_method.assert_called_once() - - if __name__ == "__main__": unittest.main() diff --git a/Lib/test/test_http_cookiejar.py b/Lib/test/test_http_cookiejar.py index f8291c2aa32cfe..ad2b121fdaf5a1 100644 --- a/Lib/test/test_http_cookiejar.py +++ b/Lib/test/test_http_cookiejar.py @@ -1,9 +1,8 @@ """Tests for http/cookiejar.py.""" import os -import stat -import sys import re +import test.support from test.support import os_helper from test.support import warnings_helper import time @@ -18,7 +17,6 @@ reach, is_HDN, domain_match, user_domain_match, request_path, request_port, request_host) -mswindows = (sys.platform == "win32") class DateTimeTests(unittest.TestCase): @@ -366,37 +364,10 @@ def test_lwp_valueless_cookie(self): c = LWPCookieJar() c.load(filename, ignore_discard=True) finally: - os_helper.unlink(filename) + try: os.unlink(filename) + except OSError: pass self.assertEqual(c._cookies["www.acme.com"]["/"]["boo"].value, None) - @unittest.skipIf(mswindows, "windows file permissions are incompatible with file modes") - @os_helper.skip_unless_working_chmod - def test_lwp_filepermissions(self): - # Cookie file should only be readable by the creator - filename = os_helper.TESTFN - c = LWPCookieJar() - interact_netscape(c, "http://www.acme.com/", 'boo') - try: - c.save(filename, ignore_discard=True) - st = os.stat(filename) - self.assertEqual(stat.S_IMODE(st.st_mode), 0o600) - finally: - os_helper.unlink(filename) - - @unittest.skipIf(mswindows, "windows file permissions are incompatible with file modes") - @os_helper.skip_unless_working_chmod - def test_mozilla_filepermissions(self): - # Cookie file should only be readable by the creator - filename = os_helper.TESTFN - c = MozillaCookieJar() - interact_netscape(c, "http://www.acme.com/", 'boo') - try: - c.save(filename, ignore_discard=True) - st = os.stat(filename) - self.assertEqual(stat.S_IMODE(st.st_mode), 0o600) - finally: - os_helper.unlink(filename) - def test_bad_magic(self): # OSErrors (eg. file doesn't exist) are allowed to propagate filename = os_helper.TESTFN @@ -420,7 +391,8 @@ def test_bad_magic(self): c = cookiejar_class() self.assertRaises(LoadError, c.load, filename) finally: - os_helper.unlink(filename) + try: os.unlink(filename) + except OSError: pass class CookieTests(unittest.TestCase): # XXX @@ -524,7 +496,7 @@ def test_missing_value(self): c = MozillaCookieJar(filename) c.revert(ignore_expires=True, ignore_discard=True) finally: - os_helper.unlink(c.filename) + os.unlink(c.filename) # cookies unchanged apart from lost info re. whether path was specified self.assertEqual( repr(c), @@ -1794,7 +1766,8 @@ def test_rejection(self): c = LWPCookieJar(policy=pol) c.load(filename, ignore_discard=True) finally: - os_helper.unlink(filename) + try: os.unlink(filename) + except OSError: pass self.assertEqual(old, repr(c)) @@ -1853,7 +1826,8 @@ def save_and_restore(cj, ignore_discard): DefaultCookiePolicy(rfc2965=True)) new_c.load(ignore_discard=ignore_discard) finally: - os_helper.unlink(filename) + try: os.unlink(filename) + except OSError: pass return new_c new_c = save_and_restore(c, True) diff --git a/Lib/test/test_httplib.py b/Lib/test/test_httplib.py index b3d94e0a21cb6a..15dab0356f5e35 100644 --- a/Lib/test/test_httplib.py +++ b/Lib/test/test_httplib.py @@ -553,27 +553,6 @@ def __new__(cls, value, phrase, description=''): obj.phrase = phrase obj.description = description return obj - - @property - def is_informational(self): - return 100 <= self <= 199 - - @property - def is_success(self): - return 200 <= self <= 299 - - @property - def is_redirection(self): - return 300 <= self <= 399 - - @property - def is_client_error(self): - return 400 <= self <= 499 - - @property - def is_server_error(self): - return 500 <= self <= 599 - # informational CONTINUE = 100, 'Continue', 'Request received, please continue' SWITCHING_PROTOCOLS = (101, 'Switching Protocols', @@ -690,30 +669,6 @@ def is_server_error(self): 'The client needs to authenticate to gain network access') enum._test_simple_enum(CheckedHTTPStatus, HTTPStatus) - def test_httpstatus_range(self): - """Checks that the statuses are in the 100-599 range""" - - for member in HTTPStatus.__members__.values(): - self.assertGreaterEqual(member, 100) - self.assertLessEqual(member, 599) - - def test_httpstatus_category(self): - """Checks that the statuses belong to the standard categories""" - - categories = ( - ((100, 199), "is_informational"), - ((200, 299), "is_success"), - ((300, 399), "is_redirection"), - ((400, 499), "is_client_error"), - ((500, 599), "is_server_error"), - ) - for member in HTTPStatus.__members__.values(): - for (lower, upper), category in categories: - category_indicator = getattr(member, category) - if lower <= member <= upper: - self.assertTrue(category_indicator) - else: - self.assertFalse(category_indicator) def test_status_lines(self): # Test HTTP status lines diff --git a/Lib/test/test_httpservers.py b/Lib/test/test_httpservers.py index a937258069ed89..1f041aa121f974 100644 --- a/Lib/test/test_httpservers.py +++ b/Lib/test/test_httpservers.py @@ -334,7 +334,7 @@ class request_handler(NoLogRequestHandler, SimpleHTTPRequestHandler): pass def setUp(self): - super().setUp() + BaseTestCase.setUp(self) self.cwd = os.getcwd() basetempdir = tempfile.gettempdir() os.chdir(basetempdir) @@ -362,7 +362,7 @@ def tearDown(self): except: pass finally: - super().tearDown() + BaseTestCase.tearDown(self) def check_status_and_reason(self, response, status, data=None): def close_conn(): @@ -418,55 +418,6 @@ def test_undecodable_filename(self): self.check_status_and_reason(response, HTTPStatus.OK, data=os_helper.TESTFN_UNDECODABLE) - def test_get_dir_redirect_location_domain_injection_bug(self): - """Ensure //evil.co/..%2f../../X does not put //evil.co/ in Location. - - //netloc/ in a Location header is a redirect to a new host. - https://github.com/python/cpython/issues/87389 - - This checks that a path resolving to a directory on our server cannot - resolve into a redirect to another server. - """ - os.mkdir(os.path.join(self.tempdir, 'existing_directory')) - url = f'/python.org/..%2f..%2f..%2f..%2f..%2f../%0a%0d/../{self.tempdir_name}/existing_directory' - expected_location = f'{url}/' # /python.org.../ single slash single prefix, trailing slash - # Canonicalizes to /tmp/tempdir_name/existing_directory which does - # exist and is a dir, triggering the 301 redirect logic. - response = self.request(url) - self.check_status_and_reason(response, HTTPStatus.MOVED_PERMANENTLY) - location = response.getheader('Location') - self.assertEqual(location, expected_location, msg='non-attack failed!') - - # //python.org... multi-slash prefix, no trailing slash - attack_url = f'/{url}' - response = self.request(attack_url) - self.check_status_and_reason(response, HTTPStatus.MOVED_PERMANENTLY) - location = response.getheader('Location') - self.assertFalse(location.startswith('//'), msg=location) - self.assertEqual(location, expected_location, - msg='Expected Location header to start with a single / and ' - 'end with a / as this is a directory redirect.') - - # ///python.org... triple-slash prefix, no trailing slash - attack3_url = f'//{url}' - response = self.request(attack3_url) - self.check_status_and_reason(response, HTTPStatus.MOVED_PERMANENTLY) - self.assertEqual(response.getheader('Location'), expected_location) - - # If the second word in the http request (Request-URI for the http - # method) is a full URI, we don't worry about it, as that'll be parsed - # and reassembled as a full URI within BaseHTTPRequestHandler.send_head - # so no errant scheme-less //netloc//evil.co/ domain mixup can happen. - attack_scheme_netloc_2slash_url = f'https://pypi.org/{url}' - expected_scheme_netloc_location = f'{attack_scheme_netloc_2slash_url}/' - response = self.request(attack_scheme_netloc_2slash_url) - self.check_status_and_reason(response, HTTPStatus.MOVED_PERMANENTLY) - location = response.getheader('Location') - # We're just ensuring that the scheme and domain make it through, if - # there are or aren't multiple slashes at the start of the path that - # follows that isn't important in this Location: header. - self.assertTrue(location.startswith('https://pypi.org/'), msg=location) - def test_get(self): #constructs the path relative to the root directory of the HTTPServer response = self.request(self.base_url + '/test') diff --git a/Lib/test/test_imaplib.py b/Lib/test/test_imaplib.py index b554bc0c79960d..ff13edea2d1e4a 100644 --- a/Lib/test/test_imaplib.py +++ b/Lib/test/test_imaplib.py @@ -10,7 +10,9 @@ import threading import socket -from test.support import verbose, run_with_tz, run_with_locale, cpython_only +from test.support import (verbose, + run_with_tz, run_with_locale, cpython_only, + requires_working_socket) from test.support import hashlib_helper from test.support import threading_helper from test.support import warnings_helper @@ -937,7 +939,6 @@ def test_with_statement_logout(self): @threading_helper.reap_threads @cpython_only - @unittest.skipUnless(__debug__, "Won't work if __debug__ is False") def test_dump_ur(self): # See: http://bugs.python.org/issue26543 untagged_resp_dict = {'READ-WRITE': [b'']} diff --git a/Lib/test/test_imp.py b/Lib/test/test_imp.py index 35b6afa91ebd4f..d44dc6b49f2935 100644 --- a/Lib/test/test_imp.py +++ b/Lib/test/test_imp.py @@ -66,7 +66,11 @@ def setUp(self): self.test_strings = mod.test_strings self.test_path = mod.__path__ - # test_import_encoded_module moved to test_source_encoding.py + def test_import_encoded_module(self): + for modname, encoding, teststr in self.test_strings: + mod = importlib.import_module('test.encoded_modules.' + 'module_' + modname) + self.assertEqual(teststr, mod.test) def test_find_module_encoding(self): for mod, encoding, _ in self.test_strings: diff --git a/Lib/test/test_import/__init__.py b/Lib/test/test_import/__init__.py index 6c5b80bcee6c24..be88677dc697ee 100644 --- a/Lib/test/test_import/__init__.py +++ b/Lib/test/test_import/__init__.py @@ -20,8 +20,7 @@ from test.support import os_helper from test.support import ( - STDLIB_DIR, is_jython, swap_attr, swap_item, cpython_only, is_emscripten, - is_wasi) + STDLIB_DIR, is_jython, swap_attr, swap_item, cpython_only, is_emscripten) from test.support.import_helper import ( forget, make_legacy_pyc, unlink, unload, DirsOnSysPath, CleanImport) from test.support.os_helper import ( @@ -536,10 +535,7 @@ class FilePermissionTests(unittest.TestCase): @unittest.skipUnless(os.name == 'posix', "test meaningful only on posix systems") - @unittest.skipIf( - is_emscripten or is_wasi, - "Emscripten's/WASI's umask is a stub." - ) + @unittest.skipIf(is_emscripten, "Emscripten's umask is a stub.") def test_creation_mode(self): mask = 0o022 with temp_umask(mask), _ready_to_import() as (name, path): @@ -557,7 +553,6 @@ def test_creation_mode(self): @unittest.skipUnless(os.name == 'posix', "test meaningful only on posix systems") - @os_helper.skip_unless_working_chmod def test_cached_mode_issue_2051(self): # permissions of .pyc should match those of .py, regardless of mask mode = 0o600 @@ -574,7 +569,6 @@ def test_cached_mode_issue_2051(self): @unittest.skipUnless(os.name == 'posix', "test meaningful only on posix systems") - @os_helper.skip_unless_working_chmod def test_cached_readonly(self): mode = 0o400 with temp_umask(0o022), _ready_to_import() as (name, path): @@ -885,10 +879,9 @@ def test_import_pyc_path(self): @unittest.skipUnless(os.name == 'posix', "test meaningful only on posix systems") + @unittest.skipIf(hasattr(os, 'geteuid') and os.geteuid() == 0, + "due to varying filesystem permission semantics (issue #11956)") @skip_if_dont_write_bytecode - @os_helper.skip_unless_working_chmod - @os_helper.skip_if_dac_override - @unittest.skipIf(is_emscripten, "umask is a stub") def test_unwritable_directory(self): # When the umask causes the new __pycache__ directory to be # unwritable, the import still succeeds but no .pyc file is written. @@ -927,7 +920,7 @@ def test_missing_source_legacy(self): m = __import__(TESTFN) try: self.assertEqual(m.__file__, - os.path.join(os.getcwd(), os.path.relpath(pyc_file))) + os.path.join(os.getcwd(), os.curdir, os.path.relpath(pyc_file))) finally: os.remove(pyc_file) @@ -935,7 +928,7 @@ def test___cached__(self): # Modules now also have an __cached__ that points to the pyc file. m = __import__(TESTFN) pyc_file = importlib.util.cache_from_source(TESTFN + '.py') - self.assertEqual(m.__cached__, os.path.join(os.getcwd(), pyc_file)) + self.assertEqual(m.__cached__, os.path.join(os.getcwd(), os.curdir, pyc_file)) @skip_if_dont_write_bytecode def test___cached___legacy_pyc(self): @@ -951,7 +944,7 @@ def test___cached___legacy_pyc(self): importlib.invalidate_caches() m = __import__(TESTFN) self.assertEqual(m.__cached__, - os.path.join(os.getcwd(), os.path.relpath(pyc_file))) + os.path.join(os.getcwd(), os.curdir, os.path.relpath(pyc_file))) @skip_if_dont_write_bytecode def test_package___cached__(self): @@ -971,10 +964,10 @@ def cleanup(): m = __import__('pep3147.foo') init_pyc = importlib.util.cache_from_source( os.path.join('pep3147', '__init__.py')) - self.assertEqual(m.__cached__, os.path.join(os.getcwd(), init_pyc)) + self.assertEqual(m.__cached__, os.path.join(os.getcwd(), os.curdir, init_pyc)) foo_pyc = importlib.util.cache_from_source(os.path.join('pep3147', 'foo.py')) self.assertEqual(sys.modules['pep3147.foo'].__cached__, - os.path.join(os.getcwd(), foo_pyc)) + os.path.join(os.getcwd(), os.curdir, foo_pyc)) def test_package___cached___from_pyc(self): # Like test___cached__ but ensuring __cached__ when imported from a @@ -998,10 +991,10 @@ def cleanup(): m = __import__('pep3147.foo') init_pyc = importlib.util.cache_from_source( os.path.join('pep3147', '__init__.py')) - self.assertEqual(m.__cached__, os.path.join(os.getcwd(), init_pyc)) + self.assertEqual(m.__cached__, os.path.join(os.getcwd(), os.curdir, init_pyc)) foo_pyc = importlib.util.cache_from_source(os.path.join('pep3147', 'foo.py')) self.assertEqual(sys.modules['pep3147.foo'].__cached__, - os.path.join(os.getcwd(), foo_pyc)) + os.path.join(os.getcwd(), os.curdir, foo_pyc)) def test_recompute_pyc_same_second(self): # Even when the source file doesn't change timestamp, a change in diff --git a/Lib/test/test_importlib/resources/data01/subdirectory/__init__.py b/Lib/test/test_importlib/data01/__init__.py similarity index 100% rename from Lib/test/test_importlib/resources/data01/subdirectory/__init__.py rename to Lib/test/test_importlib/data01/__init__.py diff --git a/Lib/test/test_importlib/resources/data01/binary.file b/Lib/test/test_importlib/data01/binary.file similarity index 100% rename from Lib/test/test_importlib/resources/data01/binary.file rename to Lib/test/test_importlib/data01/binary.file diff --git a/Lib/test/test_importlib/resources/data02/__init__.py b/Lib/test/test_importlib/data01/subdirectory/__init__.py similarity index 100% rename from Lib/test/test_importlib/resources/data02/__init__.py rename to Lib/test/test_importlib/data01/subdirectory/__init__.py diff --git a/Lib/test/test_importlib/resources/data01/subdirectory/binary.file b/Lib/test/test_importlib/data01/subdirectory/binary.file similarity index 100% rename from Lib/test/test_importlib/resources/data01/subdirectory/binary.file rename to Lib/test/test_importlib/data01/subdirectory/binary.file diff --git a/Lib/test/test_importlib/resources/data01/utf-16.file b/Lib/test/test_importlib/data01/utf-16.file similarity index 100% rename from Lib/test/test_importlib/resources/data01/utf-16.file rename to Lib/test/test_importlib/data01/utf-16.file diff --git a/Lib/test/test_importlib/resources/data01/utf-8.file b/Lib/test/test_importlib/data01/utf-8.file similarity index 100% rename from Lib/test/test_importlib/resources/data01/utf-8.file rename to Lib/test/test_importlib/data01/utf-8.file diff --git a/Lib/test/test_importlib/resources/data02/one/__init__.py b/Lib/test/test_importlib/data02/__init__.py similarity index 100% rename from Lib/test/test_importlib/resources/data02/one/__init__.py rename to Lib/test/test_importlib/data02/__init__.py diff --git a/Lib/test/test_importlib/resources/data02/two/__init__.py b/Lib/test/test_importlib/data02/one/__init__.py similarity index 100% rename from Lib/test/test_importlib/resources/data02/two/__init__.py rename to Lib/test/test_importlib/data02/one/__init__.py diff --git a/Lib/test/test_importlib/resources/data02/one/resource1.txt b/Lib/test/test_importlib/data02/one/resource1.txt similarity index 100% rename from Lib/test/test_importlib/resources/data02/one/resource1.txt rename to Lib/test/test_importlib/data02/one/resource1.txt diff --git a/Lib/test/test_importlib/resources/data03/__init__.py b/Lib/test/test_importlib/data02/two/__init__.py similarity index 100% rename from Lib/test/test_importlib/resources/data03/__init__.py rename to Lib/test/test_importlib/data02/two/__init__.py diff --git a/Lib/test/test_importlib/resources/data02/two/resource2.txt b/Lib/test/test_importlib/data02/two/resource2.txt similarity index 100% rename from Lib/test/test_importlib/resources/data02/two/resource2.txt rename to Lib/test/test_importlib/data02/two/resource2.txt diff --git a/Lib/test/test_importlib/resources/data03/namespace/portion1/__init__.py b/Lib/test/test_importlib/data03/__init__.py similarity index 100% rename from Lib/test/test_importlib/resources/data03/namespace/portion1/__init__.py rename to Lib/test/test_importlib/data03/__init__.py diff --git a/Lib/test/test_importlib/resources/data03/namespace/portion2/__init__.py b/Lib/test/test_importlib/data03/namespace/portion1/__init__.py similarity index 100% rename from Lib/test/test_importlib/resources/data03/namespace/portion2/__init__.py rename to Lib/test/test_importlib/data03/namespace/portion1/__init__.py diff --git a/Lib/test/test_importlib/resources/zipdata01/__init__.py b/Lib/test/test_importlib/data03/namespace/portion2/__init__.py similarity index 100% rename from Lib/test/test_importlib/resources/zipdata01/__init__.py rename to Lib/test/test_importlib/data03/namespace/portion2/__init__.py diff --git a/Lib/test/test_importlib/resources/data03/namespace/resource1.txt b/Lib/test/test_importlib/data03/namespace/resource1.txt similarity index 100% rename from Lib/test/test_importlib/resources/data03/namespace/resource1.txt rename to Lib/test/test_importlib/data03/namespace/resource1.txt diff --git a/Lib/test/test_importlib/extension/test_finder.py b/Lib/test/test_importlib/extension/test_finder.py index 1d5b6e7a5de94b..b6663a44845502 100644 --- a/Lib/test/test_importlib/extension/test_finder.py +++ b/Lib/test/test_importlib/extension/test_finder.py @@ -3,7 +3,7 @@ machinery = util.import_importlib('importlib.machinery') import unittest -import sys +import warnings class FinderTests(abc.FinderTests): @@ -13,10 +13,6 @@ class FinderTests(abc.FinderTests): def setUp(self): if not self.machinery.EXTENSION_SUFFIXES: raise unittest.SkipTest("Requires dynamic loading support.") - if util.EXTENSIONS.name in sys.builtin_module_names: - raise unittest.SkipTest( - f"{util.EXTENSIONS.name} is a builtin module" - ) def find_spec(self, fullname): importer = self.machinery.FileFinder(util.EXTENSIONS.path, diff --git a/Lib/test/test_importlib/extension/test_loader.py b/Lib/test/test_importlib/extension/test_loader.py index 8570c6bc90cd07..5080009bee32ee 100644 --- a/Lib/test/test_importlib/extension/test_loader.py +++ b/Lib/test/test_importlib/extension/test_loader.py @@ -20,10 +20,6 @@ class LoaderTests(abc.LoaderTests): def setUp(self): if not self.machinery.EXTENSION_SUFFIXES: raise unittest.SkipTest("Requires dynamic loading support.") - if util.EXTENSIONS.name in sys.builtin_module_names: - raise unittest.SkipTest( - f"{util.EXTENSIONS.name} is a builtin module" - ) self.loader = self.machinery.ExtensionFileLoader(util.EXTENSIONS.name, util.EXTENSIONS.file_path) @@ -101,10 +97,6 @@ def setUp(self): if not self.machinery.EXTENSION_SUFFIXES: raise unittest.SkipTest("Requires dynamic loading support.") self.name = '_testmultiphase' - if self.name in sys.builtin_module_names: - raise unittest.SkipTest( - f"{self.name} is a builtin module" - ) finder = self.machinery.FileFinder(None) self.spec = importlib.util.find_spec(self.name) assert self.spec diff --git a/Lib/test/test_importlib/fixtures.py b/Lib/test/test_importlib/fixtures.py index e7be77b3957c67..803d3738d263f4 100644 --- a/Lib/test/test_importlib/fixtures.py +++ b/Lib/test/test_importlib/fixtures.py @@ -5,7 +5,6 @@ import pathlib import tempfile import textwrap -import functools import contextlib from test.support.os_helper import FS_NONASCII @@ -297,18 +296,3 @@ def setUp(self): # Add self.zip_name to the front of sys.path. self.resources = contextlib.ExitStack() self.addCleanup(self.resources.close) - - -def parameterize(*args_set): - """Run test method with a series of parameters.""" - - def wrapper(func): - @functools.wraps(func) - def _inner(self): - for args in args_set: - with self.subTest(**args): - func(self, **args) - - return _inner - - return wrapper diff --git a/Lib/test/test_importlib/frozen/test_loader.py b/Lib/test/test_importlib/frozen/test_loader.py index 32f951cb1aca28..f2df7e60bf8e38 100644 --- a/Lib/test/test_importlib/frozen/test_loader.py +++ b/Lib/test/test_importlib/frozen/test_loader.py @@ -103,6 +103,14 @@ def test_lacking_parent(self): expected=value)) self.assertEqual(output, 'Hello world!\n') + def test_module_repr(self): + name = '__hello__' + module, output = self.exec_module(name) + with deprecated(): + repr_str = self.machinery.FrozenImporter.module_repr(module) + self.assertEqual(repr_str, + "<module '__hello__' (frozen)>") + def test_module_repr_indirect(self): name = '__hello__' module, output = self.exec_module(name) diff --git a/Lib/test/test_importlib/import_/test_path.py b/Lib/test/test_importlib/import_/test_path.py index de620842bbc52b..6f1d0cabd28a62 100644 --- a/Lib/test/test_importlib/import_/test_path.py +++ b/Lib/test/test_importlib/import_/test_path.py @@ -202,11 +202,10 @@ def __init__(self): def invalidate_caches(self): self.called = True - key = os.path.abspath('finder_to_invalidate') - cache = {'leave_alone': object(), key: FakeFinder()} + cache = {'leave_alone': object(), 'finder_to_invalidate': FakeFinder()} with util.import_state(path_importer_cache=cache): self.machinery.PathFinder.invalidate_caches() - self.assertTrue(cache[key].called) + self.assertTrue(cache['finder_to_invalidate'].called) def test_invalidate_caches_clear_out_None(self): # Clear out None in sys.path_importer_cache() when invalidating caches. @@ -215,16 +214,6 @@ def test_invalidate_caches_clear_out_None(self): self.machinery.PathFinder.invalidate_caches() self.assertEqual(len(cache), 0) - def test_invalidate_caches_clear_out_relative_path(self): - class FakeFinder: - def invalidate_caches(self): - pass - - cache = {'relative_path': FakeFinder()} - with util.import_state(path_importer_cache=cache): - self.machinery.PathFinder.invalidate_caches() - self.assertEqual(cache, {}) - class FindModuleTests(FinderTests): def find(self, *args, **kwargs): diff --git a/Lib/test/test_importlib/resources/namespacedata01/binary.file b/Lib/test/test_importlib/namespacedata01/binary.file similarity index 100% rename from Lib/test/test_importlib/resources/namespacedata01/binary.file rename to Lib/test/test_importlib/namespacedata01/binary.file diff --git a/Lib/test/test_importlib/resources/namespacedata01/utf-16.file b/Lib/test/test_importlib/namespacedata01/utf-16.file similarity index 100% rename from Lib/test/test_importlib/resources/namespacedata01/utf-16.file rename to Lib/test/test_importlib/namespacedata01/utf-16.file diff --git a/Lib/test/test_importlib/resources/namespacedata01/utf-8.file b/Lib/test/test_importlib/namespacedata01/utf-8.file similarity index 100% rename from Lib/test/test_importlib/resources/namespacedata01/utf-8.file rename to Lib/test/test_importlib/namespacedata01/utf-8.file diff --git a/Lib/test/test_importlib/resources/util.py b/Lib/test/test_importlib/resources/util.py index eb2291f15de122..11c8aa80806dce 100644 --- a/Lib/test/test_importlib/resources/util.py +++ b/Lib/test/test_importlib/resources/util.py @@ -5,9 +5,9 @@ import types from pathlib import Path, PurePath -from . import data01 -from . import zipdata01 -from importlib.resources.abc import ResourceReader +from .. import data01 +from .. import zipdata01 +from importlib.abc import ResourceReader from test.support import import_helper diff --git a/Lib/test/test_importlib/source/test_file_loader.py b/Lib/test/test_importlib/source/test_file_loader.py index f35adec1a8e800..378dcbe08a8050 100644 --- a/Lib/test/test_importlib/source/test_file_loader.py +++ b/Lib/test/test_importlib/source/test_file_loader.py @@ -51,6 +51,7 @@ class Tester(self.abc.FileLoader): def get_code(self, _): pass def get_source(self, _): pass def is_package(self, _): pass + def module_repr(self, _): pass path = 'some_path' name = 'some_name' diff --git a/Lib/test/test_importlib/test_abc.py b/Lib/test/test_importlib/test_abc.py index c214209350a0c8..92cb78067d0ebd 100644 --- a/Lib/test/test_importlib/test_abc.py +++ b/Lib/test/test_importlib/test_abc.py @@ -2,6 +2,7 @@ import marshal import os import sys +from test import support from test.support import import_helper import types import unittest @@ -221,6 +222,8 @@ def test_module_repr(self): mod = types.ModuleType('blah') with warnings.catch_warnings(): warnings.simplefilter("ignore", DeprecationWarning) + with self.assertRaises(NotImplementedError): + self.ins.module_repr(mod) original_repr = repr(mod) mod.__loader__ = self.ins # Should still return a proper repr. @@ -320,6 +323,32 @@ def contents(self, *args, **kwargs): return super().contents(*args, **kwargs) +class ResourceReaderDefaultsTests(ABCTestHarness): + + SPLIT = make_abc_subclasses(ResourceReader) + + def test_open_resource(self): + with self.assertRaises(FileNotFoundError): + self.ins.open_resource('dummy_file') + + def test_resource_path(self): + with self.assertRaises(FileNotFoundError): + self.ins.resource_path('dummy_file') + + def test_is_resource(self): + with self.assertRaises(FileNotFoundError): + self.ins.is_resource('dummy_file') + + def test_contents(self): + with self.assertRaises(FileNotFoundError): + self.ins.contents() + + +(Frozen_RRDefaultTests, + Source_RRDefaultsTests + ) = test_util.test_both(ResourceReaderDefaultsTests) + + ##### MetaPathFinder concrete methods ########################################## class MetaPathFinderFindModuleTests: diff --git a/Lib/test/test_importlib/test_api.py b/Lib/test/test_importlib/test_api.py index b3a99dc2dd5731..ddf80947b9df46 100644 --- a/Lib/test/test_importlib/test_api.py +++ b/Lib/test/test_importlib/test_api.py @@ -6,6 +6,7 @@ import os.path import sys +from test import support from test.support import import_helper from test.support import os_helper import types @@ -395,7 +396,7 @@ def find_module(self, *args): def invalidate_caches(self): self.called = True - key = os.path.abspath('gobledeegook') + key = 'gobledeegook' meta_ins = InvalidatingNullFinder() path_ins = InvalidatingNullFinder() sys.meta_path.insert(0, meta_ins) diff --git a/Lib/test/test_importlib/resources/test_compatibilty_files.py b/Lib/test/test_importlib/test_compatibilty_files.py similarity index 99% rename from Lib/test/test_importlib/resources/test_compatibilty_files.py rename to Lib/test/test_importlib/test_compatibilty_files.py index 6fa18a24973f64..9a823f2d930583 100644 --- a/Lib/test/test_importlib/resources/test_compatibilty_files.py +++ b/Lib/test/test_importlib/test_compatibilty_files.py @@ -8,7 +8,7 @@ wrap_spec, ) -from . import util +from .resources import util class CompatibilityFilesTests(unittest.TestCase): diff --git a/Lib/test/test_importlib/resources/test_contents.py b/Lib/test/test_importlib/test_contents.py similarity index 97% rename from Lib/test/test_importlib/resources/test_contents.py rename to Lib/test/test_importlib/test_contents.py index 1a13f043a86f03..3323bf5b5cf568 100644 --- a/Lib/test/test_importlib/resources/test_contents.py +++ b/Lib/test/test_importlib/test_contents.py @@ -2,7 +2,7 @@ from importlib import resources from . import data01 -from . import util +from .resources import util class ContentsTests: diff --git a/Lib/test/test_importlib/resources/test_files.py b/Lib/test/test_importlib/test_files.py similarity index 94% rename from Lib/test/test_importlib/resources/test_files.py rename to Lib/test/test_importlib/test_files.py index 779e5a12b5d536..b9170d83bea912 100644 --- a/Lib/test/test_importlib/resources/test_files.py +++ b/Lib/test/test_importlib/test_files.py @@ -2,9 +2,9 @@ import unittest from importlib import resources -from importlib.resources.abc import Traversable +from importlib.abc import Traversable from . import data01 -from . import util +from .resources import util class FilesTests: diff --git a/Lib/test/test_importlib/test_main.py b/Lib/test/test_importlib/test_main.py index d9d067c4b23d66..c80a0e4a5a9f91 100644 --- a/Lib/test/test_importlib/test_main.py +++ b/Lib/test/test_importlib/test_main.py @@ -1,6 +1,7 @@ import re import json import pickle +import textwrap import unittest import warnings import importlib.metadata @@ -15,7 +16,6 @@ Distribution, EntryPoint, PackageNotFoundError, - _unique, distributions, entry_points, metadata, @@ -51,14 +51,6 @@ def test_package_not_found_mentions_metadata(self): def test_new_style_classes(self): self.assertIsInstance(Distribution, type) - @fixtures.parameterize( - dict(name=None), - dict(name=''), - ) - def test_invalid_inputs_to_from_name(self, name): - with self.assertRaises(Exception): - Distribution.from_name(name) - class ImportTests(fixtures.DistInfoPkg, unittest.TestCase): def test_import_nonexistent_module(self): @@ -86,50 +78,48 @@ def test_resolve_without_attr(self): class NameNormalizationTests(fixtures.OnSysPath, fixtures.SiteDir, unittest.TestCase): @staticmethod - def make_pkg(name): + def pkg_with_dashes(site_dir): """ - Create minimal metadata for a dist-info package with - the indicated name on the file system. + Create minimal metadata for a package with dashes + in the name (and thus underscores in the filename). """ - return { - f'{name}.dist-info': { - 'METADATA': 'VERSION: 1.0\n', - }, - } + metadata_dir = site_dir / 'my_pkg.dist-info' + metadata_dir.mkdir() + metadata = metadata_dir / 'METADATA' + with metadata.open('w', encoding='utf-8') as strm: + strm.write('Version: 1.0\n') + return 'my-pkg' def test_dashes_in_dist_name_found_as_underscores(self): """ For a package with a dash in the name, the dist-info metadata uses underscores in the name. Ensure the metadata loads. """ - fixtures.build_files(self.make_pkg('my_pkg'), self.site_dir) - assert version('my-pkg') == '1.0' + pkg_name = self.pkg_with_dashes(self.site_dir) + assert version(pkg_name) == '1.0' + + @staticmethod + def pkg_with_mixed_case(site_dir): + """ + Create minimal metadata for a package with mixed case + in the name. + """ + metadata_dir = site_dir / 'CherryPy.dist-info' + metadata_dir.mkdir() + metadata = metadata_dir / 'METADATA' + with metadata.open('w', encoding='utf-8') as strm: + strm.write('Version: 1.0\n') + return 'CherryPy' def test_dist_name_found_as_any_case(self): """ Ensure the metadata loads when queried with any case. """ - pkg_name = 'CherryPy' - fixtures.build_files(self.make_pkg(pkg_name), self.site_dir) + pkg_name = self.pkg_with_mixed_case(self.site_dir) assert version(pkg_name) == '1.0' assert version(pkg_name.lower()) == '1.0' assert version(pkg_name.upper()) == '1.0' - def test_unique_distributions(self): - """ - Two distributions varying only by non-normalized name on - the file system should resolve as the same. - """ - fixtures.build_files(self.make_pkg('abc'), self.site_dir) - before = list(_unique(distributions())) - - alt_site_dir = self.fixtures.enter_context(fixtures.tempdir()) - self.fixtures.enter_context(self.add_sys_path(alt_site_dir)) - fixtures.build_files(self.make_pkg('ABC'), alt_site_dir) - after = list(_unique(distributions())) - - assert len(after) == len(before) - class NonASCIITests(fixtures.OnSysPath, fixtures.SiteDir, unittest.TestCase): @staticmethod @@ -138,12 +128,11 @@ def pkg_with_non_ascii_description(site_dir): Create minimal metadata for a package with non-ASCII in the description. """ - contents = { - 'portend.dist-info': { - 'METADATA': 'Description: pôrˈtend', - }, - } - fixtures.build_files(contents, site_dir) + metadata_dir = site_dir / 'portend.dist-info' + metadata_dir.mkdir() + metadata = metadata_dir / 'METADATA' + with metadata.open('w', encoding='utf-8') as fp: + fp.write('Description: pôrˈtend') return 'portend' @staticmethod @@ -152,15 +141,19 @@ def pkg_with_non_ascii_description_egg_info(site_dir): Create minimal metadata for an egg-info package with non-ASCII in the description. """ - contents = { - 'portend.dist-info': { - 'METADATA': """ + metadata_dir = site_dir / 'portend.dist-info' + metadata_dir.mkdir() + metadata = metadata_dir / 'METADATA' + with metadata.open('w', encoding='utf-8') as fp: + fp.write( + textwrap.dedent( + """ Name: portend - pôrˈtend""", - }, - } - fixtures.build_files(contents, site_dir) + pôrˈtend + """ + ).strip() + ) return 'portend' def test_metadata_loads(self): diff --git a/Lib/test/test_importlib/test_metadata_api.py b/Lib/test/test_importlib/test_metadata_api.py index 69c78e9820c044..c86bb4df19c5eb 100644 --- a/Lib/test/test_importlib/test_metadata_api.py +++ b/Lib/test/test_importlib/test_metadata_api.py @@ -89,15 +89,15 @@ def test_entry_points_distribution(self): self.assertIn(ep.dist.name, ('distinfo-pkg', 'egginfo-pkg')) self.assertEqual(ep.dist.version, "1.0.0") - def test_entry_points_unique_packages_normalized(self): + def test_entry_points_unique_packages(self): """ Entry points should only be exposed for the first package - on sys.path with a given name (even when normalized). + on sys.path with a given name. """ alt_site_dir = self.fixtures.enter_context(fixtures.tempdir()) self.fixtures.enter_context(self.add_sys_path(alt_site_dir)) alt_pkg = { - "DistInfo_pkg-1.1.0.dist-info": { + "distinfo_pkg-1.1.0.dist-info": { "METADATA": """ Name: distinfo-pkg Version: 1.1.0 diff --git a/Lib/test/test_importlib/test_namespace_pkgs.py b/Lib/test/test_importlib/test_namespace_pkgs.py index f451f7547b35bb..cd08498545e802 100644 --- a/Lib/test/test_importlib/test_namespace_pkgs.py +++ b/Lib/test/test_importlib/test_namespace_pkgs.py @@ -79,6 +79,13 @@ def test_cant_import_other(self): with self.assertRaises(ImportError): import foo.two + def test_module_repr(self): + import foo.one + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + self.assertEqual(foo.__spec__.loader.module_repr(foo), + "<module 'foo' (namespace)>") + class DynamicPathNamespacePackage(NamespacePackageTest): paths = ['portion1'] diff --git a/Lib/test/test_importlib/resources/test_open.py b/Lib/test/test_importlib/test_open.py similarity index 98% rename from Lib/test/test_importlib/resources/test_open.py rename to Lib/test/test_importlib/test_open.py index 0554c41ba67d0e..df75e343d2c5b7 100644 --- a/Lib/test/test_importlib/resources/test_open.py +++ b/Lib/test/test_importlib/test_open.py @@ -2,7 +2,7 @@ from importlib import resources from . import data01 -from . import util +from .resources import util class CommonBinaryTests(util.CommonTests, unittest.TestCase): diff --git a/Lib/test/test_importlib/resources/test_path.py b/Lib/test/test_importlib/test_path.py similarity index 98% rename from Lib/test/test_importlib/resources/test_path.py rename to Lib/test/test_importlib/test_path.py index adcf75feea78ec..6fc41f301d1cab 100644 --- a/Lib/test/test_importlib/resources/test_path.py +++ b/Lib/test/test_importlib/test_path.py @@ -3,7 +3,7 @@ from importlib import resources from . import data01 -from . import util +from .resources import util class CommonTests(util.CommonTests, unittest.TestCase): diff --git a/Lib/test/test_importlib/resources/test_read.py b/Lib/test/test_importlib/test_read.py similarity index 98% rename from Lib/test/test_importlib/resources/test_read.py rename to Lib/test/test_importlib/test_read.py index 0ca8ee9d02856b..ebd72267776d96 100644 --- a/Lib/test/test_importlib/resources/test_read.py +++ b/Lib/test/test_importlib/test_read.py @@ -2,7 +2,7 @@ from importlib import import_module, resources from . import data01 -from . import util +from .resources import util class CommonBinaryTests(util.CommonTests, unittest.TestCase): diff --git a/Lib/test/test_importlib/resources/test_reader.py b/Lib/test/test_importlib/test_reader.py similarity index 100% rename from Lib/test/test_importlib/resources/test_reader.py rename to Lib/test/test_importlib/test_reader.py diff --git a/Lib/test/test_importlib/resources/test_resource.py b/Lib/test/test_importlib/test_resource.py similarity index 99% rename from Lib/test/test_importlib/resources/test_resource.py rename to Lib/test/test_importlib/test_resource.py index 1d6df0cc843173..834b8bd8a28189 100644 --- a/Lib/test/test_importlib/resources/test_resource.py +++ b/Lib/test/test_importlib/test_resource.py @@ -5,7 +5,7 @@ from . import data01 from . import zipdata01, zipdata02 -from . import util +from .resources import util from importlib import resources, import_module from test.support import import_helper from test.support.os_helper import unlink diff --git a/Lib/test/test_importlib/test_spec.py b/Lib/test/test_importlib/test_spec.py index f1ab16c7b2a9be..21e2c02094f22e 100644 --- a/Lib/test/test_importlib/test_spec.py +++ b/Lib/test/test_importlib/test_spec.py @@ -407,6 +407,101 @@ def test_reload_legacy(self): machinery=machinery) +class ModuleReprTests: + + @property + def bootstrap(self): + return self.init._bootstrap + + def setUp(self): + self.module = type(os)('spam') + self.spec = self.machinery.ModuleSpec('spam', TestLoader()) + + def test_module___loader___module_repr(self): + class Loader: + def module_repr(self, module): + return '<delicious {}>'.format(module.__name__) + self.module.__loader__ = Loader() + modrepr = self.bootstrap._module_repr(self.module) + + self.assertEqual(modrepr, '<delicious spam>') + + def test_module___loader___module_repr_bad(self): + class Loader(TestLoader): + def module_repr(self, module): + raise Exception + self.module.__loader__ = Loader() + modrepr = self.bootstrap._module_repr(self.module) + + self.assertEqual(modrepr, + '<module {!r} (<TestLoader object>)>'.format('spam')) + + def test_module___spec__(self): + origin = 'in a hole, in the ground' + self.spec.origin = origin + self.module.__spec__ = self.spec + modrepr = self.bootstrap._module_repr(self.module) + + self.assertEqual(modrepr, '<module {!r} ({})>'.format('spam', origin)) + + def test_module___spec___location(self): + location = 'in_a_galaxy_far_far_away.py' + self.spec.origin = location + self.spec._set_fileattr = True + self.module.__spec__ = self.spec + modrepr = self.bootstrap._module_repr(self.module) + + self.assertEqual(modrepr, + '<module {!r} from {!r}>'.format('spam', location)) + + def test_module___spec___no_origin(self): + self.spec.loader = TestLoader() + self.module.__spec__ = self.spec + modrepr = self.bootstrap._module_repr(self.module) + + self.assertEqual(modrepr, + '<module {!r} (<TestLoader object>)>'.format('spam')) + + def test_module___spec___no_origin_no_loader(self): + self.spec.loader = None + self.module.__spec__ = self.spec + modrepr = self.bootstrap._module_repr(self.module) + + self.assertEqual(modrepr, '<module {!r}>'.format('spam')) + + def test_module_no_name(self): + del self.module.__name__ + modrepr = self.bootstrap._module_repr(self.module) + + self.assertEqual(modrepr, '<module {!r}>'.format('?')) + + def test_module_with_file(self): + filename = 'e/i/e/i/o/spam.py' + self.module.__file__ = filename + modrepr = self.bootstrap._module_repr(self.module) + + self.assertEqual(modrepr, + '<module {!r} from {!r}>'.format('spam', filename)) + + def test_module_no_file(self): + self.module.__loader__ = TestLoader() + modrepr = self.bootstrap._module_repr(self.module) + + self.assertEqual(modrepr, + '<module {!r} (<TestLoader object>)>'.format('spam')) + + def test_module_no_file_no_loader(self): + modrepr = self.bootstrap._module_repr(self.module) + + self.assertEqual(modrepr, '<module {!r}>'.format('spam')) + + +(Frozen_ModuleReprTests, + Source_ModuleReprTests + ) = test_util.test_both(ModuleReprTests, init=init, util=util, + machinery=machinery) + + class FactoryTests: def setUp(self): diff --git a/Lib/test/test_importlib/test_util.py b/Lib/test/test_importlib/test_util.py index a62d68fcd8b333..c77c7814a9ccd3 100644 --- a/Lib/test/test_importlib/test_util.py +++ b/Lib/test/test_importlib/test_util.py @@ -860,7 +860,7 @@ def test_magic_number(self): # stakeholders such as OS package maintainers must be notified # in advance. Such exceptional releases will then require an # adjustment to this test case. - EXPECTED_MAGIC_NUMBER = 3495 + EXPECTED_MAGIC_NUMBER = 3413 actual = int.from_bytes(importlib.util.MAGIC_NUMBER[:2], 'little') msg = ( diff --git a/Lib/test/test_importlib/resources/update-zips.py b/Lib/test/test_importlib/update-zips.py similarity index 100% rename from Lib/test/test_importlib/resources/update-zips.py rename to Lib/test/test_importlib/update-zips.py diff --git a/Lib/test/test_importlib/resources/zipdata02/__init__.py b/Lib/test/test_importlib/zipdata01/__init__.py similarity index 100% rename from Lib/test/test_importlib/resources/zipdata02/__init__.py rename to Lib/test/test_importlib/zipdata01/__init__.py diff --git a/Lib/test/test_importlib/resources/zipdata01/ziptestdata.zip b/Lib/test/test_importlib/zipdata01/ziptestdata.zip similarity index 100% rename from Lib/test/test_importlib/resources/zipdata01/ziptestdata.zip rename to Lib/test/test_importlib/zipdata01/ziptestdata.zip diff --git a/Lib/test/test_lib2to3/data/fixers/myfixes/__init__.py b/Lib/test/test_importlib/zipdata02/__init__.py similarity index 100% rename from Lib/test/test_lib2to3/data/fixers/myfixes/__init__.py rename to Lib/test/test_importlib/zipdata02/__init__.py diff --git a/Lib/test/test_importlib/resources/zipdata02/ziptestdata.zip b/Lib/test/test_importlib/zipdata02/ziptestdata.zip similarity index 100% rename from Lib/test/test_importlib/resources/zipdata02/ziptestdata.zip rename to Lib/test/test_importlib/zipdata02/ziptestdata.zip diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py index be9f29e04ae110..ae1842704d37df 100644 --- a/Lib/test/test_inspect.py +++ b/Lib/test/test_inspect.py @@ -202,10 +202,6 @@ def test_iscoroutine(self): gen_coroutine_function_example)))) self.assertTrue(inspect.isgenerator(gen_coro)) - self.assertFalse( - inspect.iscoroutinefunction(unittest.mock.Mock())) - self.assertTrue( - inspect.iscoroutinefunction(unittest.mock.AsyncMock())) self.assertTrue( inspect.iscoroutinefunction(coroutine_function_example)) self.assertTrue( @@ -214,10 +210,6 @@ def test_iscoroutine(self): coroutine_function_example)))) self.assertTrue(inspect.iscoroutine(coro)) - self.assertFalse( - inspect.isgeneratorfunction(unittest.mock.Mock())) - self.assertFalse( - inspect.isgeneratorfunction(unittest.mock.AsyncMock())) self.assertFalse( inspect.isgeneratorfunction(coroutine_function_example)) self.assertFalse( @@ -226,12 +218,6 @@ def test_iscoroutine(self): coroutine_function_example)))) self.assertFalse(inspect.isgenerator(coro)) - self.assertFalse( - inspect.isasyncgenfunction(unittest.mock.Mock())) - self.assertFalse( - inspect.isasyncgenfunction(unittest.mock.AsyncMock())) - self.assertFalse( - inspect.isasyncgenfunction(coroutine_function_example)) self.assertTrue( inspect.isasyncgenfunction(async_generator_function_example)) self.assertTrue( diff --git a/Lib/test/test_int.py b/Lib/test/test_int.py index c972b8afb48d75..a72699cc7506af 100644 --- a/Lib/test/test_int.py +++ b/Lib/test/test_int.py @@ -1,5 +1,4 @@ import sys -import time import unittest from test import support @@ -578,202 +577,5 @@ def test_issue31619(self): self.assertEqual(int('1_2_3_4_5_6_7', 32), 1144132807) -class IntStrDigitLimitsTests(unittest.TestCase): - - int_class = int # Override this in subclasses to reuse the suite. - - def setUp(self): - super().setUp() - self._previous_limit = sys.get_int_max_str_digits() - sys.set_int_max_str_digits(2048) - - def tearDown(self): - sys.set_int_max_str_digits(self._previous_limit) - super().tearDown() - - def test_disabled_limit(self): - self.assertGreater(sys.get_int_max_str_digits(), 0) - self.assertLess(sys.get_int_max_str_digits(), 20_000) - with support.adjust_int_max_str_digits(0): - self.assertEqual(sys.get_int_max_str_digits(), 0) - i = self.int_class('1' * 20_000) - str(i) - self.assertGreater(sys.get_int_max_str_digits(), 0) - - def test_max_str_digits_edge_cases(self): - """Ignore the +/- sign and space padding.""" - int_class = self.int_class - maxdigits = sys.get_int_max_str_digits() - - int_class('1' * maxdigits) - int_class(' ' + '1' * maxdigits) - int_class('1' * maxdigits + ' ') - int_class('+' + '1' * maxdigits) - int_class('-' + '1' * maxdigits) - self.assertEqual(len(str(10 ** (maxdigits - 1))), maxdigits) - - def check(self, i, base=None): - with self.assertRaises(ValueError): - if base is None: - self.int_class(i) - else: - self.int_class(i, base) - - def test_max_str_digits(self): - maxdigits = sys.get_int_max_str_digits() - - self.check('1' * (maxdigits + 1)) - self.check(' ' + '1' * (maxdigits + 1)) - self.check('1' * (maxdigits + 1) + ' ') - self.check('+' + '1' * (maxdigits + 1)) - self.check('-' + '1' * (maxdigits + 1)) - self.check('1' * (maxdigits + 1)) - - i = 10 ** maxdigits - with self.assertRaises(ValueError): - str(i) - - def test_denial_of_service_prevented_int_to_str(self): - """Regression test: ensure we fail before performing O(N**2) work.""" - maxdigits = sys.get_int_max_str_digits() - assert maxdigits < 50_000, maxdigits # A test prerequisite. - get_time = time.process_time - if get_time() <= 0: # some platforms like WASM lack process_time() - get_time = time.monotonic - - huge_int = int(f'0x{"c"*65_000}', base=16) # 78268 decimal digits. - digits = 78_268 - with support.adjust_int_max_str_digits(digits): - start = get_time() - huge_decimal = str(huge_int) - seconds_to_convert = get_time() - start - self.assertEqual(len(huge_decimal), digits) - # Ensuring that we chose a slow enough conversion to measure. - # It takes 0.1 seconds on a Zen based cloud VM in an opt build. - # Some OSes have a low res 1/64s timer, skip if hard to measure. - if seconds_to_convert < 1/64: - raise unittest.SkipTest('"slow" conversion took only ' - f'{seconds_to_convert} seconds.') - - # We test with the limit almost at the size needed to check performance. - # The performant limit check is slightly fuzzy, give it a some room. - with support.adjust_int_max_str_digits(int(.995 * digits)): - with self.assertRaises(ValueError) as err: - start = get_time() - str(huge_int) - seconds_to_fail_huge = get_time() - start - self.assertIn('conversion', str(err.exception)) - self.assertLessEqual(seconds_to_fail_huge, seconds_to_convert/2) - - # Now we test that a conversion that would take 30x as long also fails - # in a similarly fast fashion. - extra_huge_int = int(f'0x{"c"*500_000}', base=16) # 602060 digits. - with self.assertRaises(ValueError) as err: - start = get_time() - # If not limited, 8 seconds said Zen based cloud VM. - str(extra_huge_int) - seconds_to_fail_extra_huge = get_time() - start - self.assertIn('conversion', str(err.exception)) - self.assertLess(seconds_to_fail_extra_huge, seconds_to_convert/2) - - def test_denial_of_service_prevented_str_to_int(self): - """Regression test: ensure we fail before performing O(N**2) work.""" - maxdigits = sys.get_int_max_str_digits() - assert maxdigits < 100_000, maxdigits # A test prerequisite. - get_time = time.process_time - if get_time() <= 0: # some platforms like WASM lack process_time() - get_time = time.monotonic - - digits = 133700 - huge = '8'*digits - with support.adjust_int_max_str_digits(digits): - start = get_time() - int(huge) - seconds_to_convert = get_time() - start - # Ensuring that we chose a slow enough conversion to measure. - # It takes 0.1 seconds on a Zen based cloud VM in an opt build. - # Some OSes have a low res 1/64s timer, skip if hard to measure. - if seconds_to_convert < 1/64: - raise unittest.SkipTest('"slow" conversion took only ' - f'{seconds_to_convert} seconds.') - - with support.adjust_int_max_str_digits(digits - 1): - with self.assertRaises(ValueError) as err: - start = get_time() - int(huge) - seconds_to_fail_huge = get_time() - start - self.assertIn('conversion', str(err.exception)) - self.assertLessEqual(seconds_to_fail_huge, seconds_to_convert/2) - - # Now we test that a conversion that would take 30x as long also fails - # in a similarly fast fashion. - extra_huge = '7'*1_200_000 - with self.assertRaises(ValueError) as err: - start = get_time() - # If not limited, 8 seconds in the Zen based cloud VM. - int(extra_huge) - seconds_to_fail_extra_huge = get_time() - start - self.assertIn('conversion', str(err.exception)) - self.assertLessEqual(seconds_to_fail_extra_huge, seconds_to_convert/2) - - def test_power_of_two_bases_unlimited(self): - """The limit does not apply to power of 2 bases.""" - maxdigits = sys.get_int_max_str_digits() - - for base in (2, 4, 8, 16, 32): - with self.subTest(base=base): - self.int_class('1' * (maxdigits + 1), base) - assert maxdigits < 100_000 - self.int_class('1' * 100_000, base) - - def test_underscores_ignored(self): - maxdigits = sys.get_int_max_str_digits() - - triples = maxdigits // 3 - s = '111' * triples - s_ = '1_11' * triples - self.int_class(s) # succeeds - self.int_class(s_) # succeeds - self.check(f'{s}111') - self.check(f'{s_}_111') - - def test_sign_not_counted(self): - int_class = self.int_class - max_digits = sys.get_int_max_str_digits() - s = '5' * max_digits - i = int_class(s) - pos_i = int_class(f'+{s}') - assert i == pos_i - neg_i = int_class(f'-{s}') - assert -pos_i == neg_i - str(pos_i) - str(neg_i) - - def _other_base_helper(self, base): - int_class = self.int_class - max_digits = sys.get_int_max_str_digits() - s = '2' * max_digits - i = int_class(s, base) - if base > 10: - with self.assertRaises(ValueError): - str(i) - elif base < 10: - str(i) - with self.assertRaises(ValueError) as err: - int_class(f'{s}1', base) - - def test_int_from_other_bases(self): - base = 3 - with self.subTest(base=base): - self._other_base_helper(base) - base = 36 - with self.subTest(base=base): - self._other_base_helper(base) - - -class IntSubclassStrDigitLimitsTests(IntStrDigitLimitsTests): - int_class = IntSubclass - - if __name__ == "__main__": unittest.main() diff --git a/Lib/test/test_io.py b/Lib/test/test_io.py index 24c93b969ea2b7..129734b22328ed 100644 --- a/Lib/test/test_io.py +++ b/Lib/test/test_io.py @@ -4301,6 +4301,14 @@ def test_text_encoding(self): proc = assert_python_ok('-X', 'utf8=1', '-c', code) self.assertEqual(b"utf-8", proc.out.strip()) + @support.cpython_only + # Depending if OpenWrapper was already created or not, the warning is + # emitted or not. For example, the attribute is already created when this + # test is run multiple times. + @warnings_helper.ignore_warnings(category=DeprecationWarning) + def test_openwrapper(self): + self.assertIs(self.io.OpenWrapper, self.io.open) + class CMiscIOTest(MiscIOTest): io = io diff --git a/Lib/test/test_itertools.py b/Lib/test/test_itertools.py index f469bfe185e65b..238afbbd883d3a 100644 --- a/Lib/test/test_itertools.py +++ b/Lib/test/test_itertools.py @@ -180,7 +180,6 @@ def test_chain_from_iterable(self): self.assertEqual(list(chain.from_iterable([''])), []) self.assertEqual(take(4, chain.from_iterable(['abc', 'def'])), list('abcd')) self.assertRaises(TypeError, list, chain.from_iterable([2, 3])) - self.assertEqual(list(islice(chain.from_iterable(repeat(range(5))), 2)), [0, 1]) def test_chain_reducible(self): for oper in [copy.deepcopy] + picklecopiers: diff --git a/Lib/test/test_json/__init__.py b/Lib/test/test_json/__init__.py index 37b2e0d5e26d16..74b64ed86a3183 100644 --- a/Lib/test/test_json/__init__.py +++ b/Lib/test/test_json/__init__.py @@ -18,7 +18,6 @@ class PyTest(unittest.TestCase): json = pyjson loads = staticmethod(pyjson.loads) dumps = staticmethod(pyjson.dumps) - AttrDict = pyjson.AttrDict JSONDecodeError = staticmethod(pyjson.JSONDecodeError) @unittest.skipUnless(cjson, 'requires _json') diff --git a/Lib/test/test_json/test_attrdict.py b/Lib/test/test_json/test_attrdict.py deleted file mode 100644 index 48d14f4db93c12..00000000000000 --- a/Lib/test/test_json/test_attrdict.py +++ /dev/null @@ -1,145 +0,0 @@ -from test.test_json import PyTest -import pickle -import sys -import unittest - -kepler_dict = { - "orbital_period": { - "mercury": 88, - "venus": 225, - "earth": 365, - "mars": 687, - "jupiter": 4331, - "saturn": 10_756, - "uranus": 30_687, - "neptune": 60_190, - }, - "dist_from_sun": { - "mercury": 58, - "venus": 108, - "earth": 150, - "mars": 228, - "jupiter": 778, - "saturn": 1_400, - "uranus": 2_900, - "neptune": 4_500, - } -} - -class TestAttrDict(PyTest): - - def test_dict_subclass(self): - self.assertTrue(issubclass(self.AttrDict, dict)) - - def test_slots(self): - d = self.AttrDict(x=1, y=2) - with self.assertRaises(TypeError): - vars(d) - - def test_constructor_signatures(self): - AttrDict = self.AttrDict - target = dict(x=1, y=2) - self.assertEqual(AttrDict(x=1, y=2), target) # kwargs - self.assertEqual(AttrDict(dict(x=1, y=2)), target) # mapping - self.assertEqual(AttrDict(dict(x=1, y=0), y=2), target) # mapping, kwargs - self.assertEqual(AttrDict([('x', 1), ('y', 2)]), target) # iterable - self.assertEqual(AttrDict([('x', 1), ('y', 0)], y=2), target) # iterable, kwargs - - def test_getattr(self): - d = self.AttrDict(x=1, y=2) - self.assertEqual(d.x, 1) - with self.assertRaises(AttributeError): - d.z - - def test_setattr(self): - d = self.AttrDict(x=1, y=2) - d.x = 3 - d.z = 5 - self.assertEqual(d, dict(x=3, y=2, z=5)) - - def test_delattr(self): - d = self.AttrDict(x=1, y=2) - del d.x - self.assertEqual(d, dict(y=2)) - with self.assertRaises(AttributeError): - del d.z - - def test_dir(self): - d = self.AttrDict(x=1, y=2) - self.assertTrue(set(dir(d)), set(dir(dict)).union({'x', 'y'})) - - def test_repr(self): - # This repr is doesn't round-trip. It matches a regular dict. - # That seems to be the norm for AttrDict recipes being used - # in the wild. Also it supports the design concept that an - # AttrDict is just like a regular dict but has optional - # attribute style lookup. - self.assertEqual(repr(self.AttrDict(x=1, y=2)), - repr(dict(x=1, y=2))) - - def test_overlapping_keys_and_methods(self): - d = self.AttrDict(items=50) - self.assertEqual(d['items'], 50) - self.assertEqual(d.items(), dict(d).items()) - - def test_invalid_attribute_names(self): - d = self.AttrDict({ - 'control': 'normal case', - 'class': 'keyword', - 'two words': 'contains space', - 'hypen-ate': 'contains a hyphen' - }) - self.assertEqual(d.control, dict(d)['control']) - self.assertEqual(d['class'], dict(d)['class']) - self.assertEqual(d['two words'], dict(d)['two words']) - self.assertEqual(d['hypen-ate'], dict(d)['hypen-ate']) - - def test_object_hook_use_case(self): - AttrDict = self.AttrDict - json_string = self.dumps(kepler_dict) - kepler_ad = self.loads(json_string, object_hook=AttrDict) - - self.assertEqual(kepler_ad, kepler_dict) # Match regular dict - self.assertIsInstance(kepler_ad, AttrDict) # Verify conversion - self.assertIsInstance(kepler_ad.orbital_period, AttrDict) # Nested - - # Exercise dotted lookups - self.assertEqual(kepler_ad.orbital_period, kepler_dict['orbital_period']) - self.assertEqual(kepler_ad.orbital_period.earth, - kepler_dict['orbital_period']['earth']) - self.assertEqual(kepler_ad['orbital_period'].earth, - kepler_dict['orbital_period']['earth']) - - # Dict style error handling and Attribute style error handling - with self.assertRaises(KeyError): - kepler_ad.orbital_period['pluto'] - with self.assertRaises(AttributeError): - kepler_ad.orbital_period.Pluto - - # Order preservation - self.assertEqual(list(kepler_ad.items()), list(kepler_dict.items())) - self.assertEqual(list(kepler_ad.orbital_period.items()), - list(kepler_dict['orbital_period'].items())) - - # Round trip - self.assertEqual(self.dumps(kepler_ad), json_string) - - def test_pickle(self): - AttrDict = self.AttrDict - json_string = self.dumps(kepler_dict) - kepler_ad = self.loads(json_string, object_hook=AttrDict) - - # Pickling requires the cached module to be the real module - cached_module = sys.modules.get('json') - sys.modules['json'] = self.json - try: - for protocol in range(6): - kepler_ad2 = pickle.loads(pickle.dumps(kepler_ad, protocol)) - self.assertEqual(kepler_ad2, kepler_ad) - self.assertEqual(type(kepler_ad2), AttrDict) - finally: - sys.modules['json'] = cached_module - - -if __name__ == "__main__": - unittest.main() diff --git a/Lib/test/test_json/test_decode.py b/Lib/test/test_json/test_decode.py index 124045b13184b3..fdb9e62124ece1 100644 --- a/Lib/test/test_json/test_decode.py +++ b/Lib/test/test_json/test_decode.py @@ -2,7 +2,6 @@ from io import StringIO from collections import OrderedDict from test.test_json import PyTest, CTest -from test import support class TestDecode: @@ -96,13 +95,5 @@ def test_negative_index(self): d = self.json.JSONDecoder() self.assertRaises(ValueError, d.raw_decode, 'a'*42, -50000) - def test_limit_int(self): - maxdigits = 5000 - with support.adjust_int_max_str_digits(maxdigits): - self.loads('1' * maxdigits) - with self.assertRaises(ValueError): - self.loads('1' * (maxdigits + 1)) - - class TestPyDecode(TestDecode, PyTest): pass class TestCDecode(TestDecode, CTest): pass diff --git a/Lib/test/test_launcher.py b/Lib/test/test_launcher.py index be0cd90c7906f5..e9f6fcb7d7f245 100644 --- a/Lib/test/test_launcher.py +++ b/Lib/test/test_launcher.py @@ -7,6 +7,7 @@ import sys import sysconfig import tempfile +import textwrap import unittest from pathlib import Path from test import support @@ -69,7 +70,7 @@ TEST_PY_COMMANDS = "\n".join([ "[defaults]", - *[f"{k[3:].lower()}={v}" for k, v in TEST_PY_ENV.items()] + *[f"{k.lower()}={v}" for k, v in TEST_PY_ENV.items()] ]) @@ -149,7 +150,7 @@ class RunPyMixin: @classmethod def find_py(cls): py_exe = None - if sysconfig.is_python_build(): + if sysconfig.is_python_build(True): py_exe = Path(sys.executable).parent / PY_EXE else: for p in os.getenv("PATH").split(";"): @@ -187,28 +188,20 @@ def find_py(cls): ) return py_exe - def get_py_exe(self): - if not self.py_exe: - self.py_exe = self.find_py() - return self.py_exe - - def run_py(self, args, env=None, allow_fail=False, expect_returncode=0, argv=None): + def run_py(self, args, env=None, allow_fail=False, expect_returncode=0): if not self.py_exe: self.py_exe = self.find_py() ignore = {"VIRTUAL_ENV", "PY_PYTHON", "PY_PYTHON2", "PY_PYTHON3"} env = { **{k.upper(): v for k, v in os.environ.items() if k.upper() not in ignore}, + **{k.upper(): v for k, v in (env or {}).items()}, "PYLAUNCHER_DEBUG": "1", "PYLAUNCHER_DRYRUN": "1", - **{k.upper(): v for k, v in (env or {}).items()}, } - if not argv: - argv = [self.py_exe, *args] with subprocess.Popen( - argv, + [self.py_exe, *args], env=env, - executable=self.py_exe, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, @@ -238,11 +231,9 @@ def run_py(self, args, env=None, allow_fail=False, expect_returncode=0, argv=Non return data def py_ini(self, content): - local_appdata = os.environ.get("LOCALAPPDATA") - if not local_appdata: - raise unittest.SkipTest("LOCALAPPDATA environment variable is " - "missing or empty") - return PreservePyIni(Path(local_appdata) / "py.ini", content) + if not self.py_exe: + self.py_exe = self.find_py() + return PreservePyIni(self.py_exe.with_name("py.ini"), content) @contextlib.contextmanager def script(self, content, encoding="utf-8"): @@ -503,7 +494,7 @@ def test_virtualenv_with_env(self): def test_py_shebang(self): with self.py_ini(TEST_PY_COMMANDS): - with self.script("#! /usr/bin/python -prearg") as script: + with self.script("#! /usr/bin/env python -prearg") as script: data = self.run_py([script, "-postarg"]) self.assertEqual("PythonTestSuite", data["SearchInfo.company"]) self.assertEqual("3.100", data["SearchInfo.tag"]) @@ -511,7 +502,7 @@ def test_py_shebang(self): def test_py2_shebang(self): with self.py_ini(TEST_PY_COMMANDS): - with self.script("#! /usr/bin/python2 -prearg") as script: + with self.script("#! /usr/bin/env python2 -prearg") as script: data = self.run_py([script, "-postarg"]) self.assertEqual("PythonTestSuite", data["SearchInfo.company"]) self.assertEqual("3.100-32", data["SearchInfo.tag"]) @@ -519,84 +510,12 @@ def test_py2_shebang(self): def test_py3_shebang(self): with self.py_ini(TEST_PY_COMMANDS): - with self.script("#! /usr/bin/python3 -prearg") as script: - data = self.run_py([script, "-postarg"]) - self.assertEqual("PythonTestSuite", data["SearchInfo.company"]) - self.assertEqual("3.100-arm64", data["SearchInfo.tag"]) - self.assertEqual(f"X.Y-arm64.exe -X fake_arg_for_test -prearg {script} -postarg", data["stdout"].strip()) - - def test_py_shebang_nl(self): - with self.py_ini(TEST_PY_COMMANDS): - with self.script("#! /usr/bin/python -prearg\n") as script: - data = self.run_py([script, "-postarg"]) - self.assertEqual("PythonTestSuite", data["SearchInfo.company"]) - self.assertEqual("3.100", data["SearchInfo.tag"]) - self.assertEqual(f"X.Y.exe -prearg {script} -postarg", data["stdout"].strip()) - - def test_py2_shebang_nl(self): - with self.py_ini(TEST_PY_COMMANDS): - with self.script("#! /usr/bin/python2 -prearg\n") as script: - data = self.run_py([script, "-postarg"]) - self.assertEqual("PythonTestSuite", data["SearchInfo.company"]) - self.assertEqual("3.100-32", data["SearchInfo.tag"]) - self.assertEqual(f"X.Y-32.exe -prearg {script} -postarg", data["stdout"].strip()) - - def test_py3_shebang_nl(self): - with self.py_ini(TEST_PY_COMMANDS): - with self.script("#! /usr/bin/python3 -prearg\n") as script: + with self.script("#! /usr/bin/env python3 -prearg") as script: data = self.run_py([script, "-postarg"]) self.assertEqual("PythonTestSuite", data["SearchInfo.company"]) self.assertEqual("3.100-arm64", data["SearchInfo.tag"]) self.assertEqual(f"X.Y-arm64.exe -X fake_arg_for_test -prearg {script} -postarg", data["stdout"].strip()) - def test_py_shebang_short_argv0(self): - with self.py_ini(TEST_PY_COMMANDS): - with self.script("#! /usr/bin/python -prearg") as script: - # Override argv to only pass "py.exe" as the command - data = self.run_py([script, "-postarg"], argv=f'"py.exe" "{script}" -postarg') - self.assertEqual("PythonTestSuite", data["SearchInfo.company"]) - self.assertEqual("3.100", data["SearchInfo.tag"]) - self.assertEqual(f'X.Y.exe -prearg "{script}" -postarg', data["stdout"].strip()) - - def test_py_handle_64_in_ini(self): - with self.py_ini("\n".join(["[defaults]", "python=3.999-64"])): - # Expect this to fail, but should get oldStyleTag flipped on - data = self.run_py([], allow_fail=True, expect_returncode=103) - self.assertEqual("3.999-64", data["SearchInfo.tag"]) - self.assertEqual("True", data["SearchInfo.oldStyleTag"]) - - def test_search_path(self): - stem = Path(sys.executable).stem - with self.py_ini(TEST_PY_COMMANDS): - with self.script(f"#! /usr/bin/env {stem} -prearg") as script: - data = self.run_py( - [script, "-postarg"], - env={"PATH": f"{Path(sys.executable).parent};{os.getenv('PATH')}"}, - ) - self.assertEqual(f"{sys.executable} -prearg {script} -postarg", data["stdout"].strip()) - - def test_search_path_exe(self): - # Leave the .exe on the name to ensure we don't add it a second time - name = Path(sys.executable).name - with self.py_ini(TEST_PY_COMMANDS): - with self.script(f"#! /usr/bin/env {name} -prearg") as script: - data = self.run_py( - [script, "-postarg"], - env={"PATH": f"{Path(sys.executable).parent};{os.getenv('PATH')}"}, - ) - self.assertEqual(f"{sys.executable} -prearg {script} -postarg", data["stdout"].strip()) - - def test_recursive_search_path(self): - stem = self.get_py_exe().stem - with self.py_ini(TEST_PY_COMMANDS): - with self.script(f"#! /usr/bin/env {stem}") as script: - data = self.run_py( - [script], - env={"PATH": f"{self.get_py_exe().parent};{os.getenv('PATH')}"}, - ) - # The recursive search is ignored and we get normal "py" behavior - self.assertEqual(f"X.Y.exe {script}", data["stdout"].strip()) - def test_install(self): data = self.run_py(["-V:3.10"], env={"PYLAUNCHER_ALWAYS_INSTALL": "1"}, expect_returncode=111) cmd = data["stdout"].strip() diff --git a/Lib/test/test_lib2to3.py b/Lib/test/test_lib2to3.py new file mode 100644 index 00000000000000..6ea8aa4a56e52e --- /dev/null +++ b/Lib/test/test_lib2to3.py @@ -0,0 +1,9 @@ +import unittest +from test.support.import_helper import import_fresh_module +from test.support.warnings_helper import check_warnings + +with check_warnings(("", DeprecationWarning)): + load_tests = import_fresh_module('lib2to3.tests', fresh=['lib2to3']).load_tests + +if __name__ == '__main__': + unittest.main() diff --git a/Lib/test/test_linecache.py b/Lib/test/test_linecache.py index 72dd40136cfdb2..c6e2dadbb25e1f 100644 --- a/Lib/test/test_linecache.py +++ b/Lib/test/test_linecache.py @@ -73,10 +73,12 @@ class GetLineTestsBadData(TempFile): # file_byte_string = b'Bad data goes here' def test_getline(self): - self.assertEqual(linecache.getline(self.file_name, 1), '') + self.assertRaises((SyntaxError, UnicodeDecodeError), + linecache.getline, self.file_name, 1) def test_getlines(self): - self.assertEqual(linecache.getlines(self.file_name), []) + self.assertRaises((SyntaxError, UnicodeDecodeError), + linecache.getlines, self.file_name) class EmptyFile(GetLineTestsGoodData, unittest.TestCase): @@ -90,11 +92,9 @@ class SingleEmptyLine(GetLineTestsGoodData, unittest.TestCase): class GoodUnicode(GetLineTestsGoodData, unittest.TestCase): file_list = ['á\n', 'b\n', 'abcdef\n', 'ááááá\n'] -class BadUnicode_NoDeclaration(GetLineTestsBadData, unittest.TestCase): - file_byte_string = b'\n\x80abc' -class BadUnicode_WithDeclaration(GetLineTestsBadData, unittest.TestCase): - file_byte_string = b'# coding=utf-8\n\x80abc' +class BadUnicode(GetLineTestsBadData, unittest.TestCase): + file_byte_string = b'\x80abc' class LineCacheTests(unittest.TestCase): diff --git a/Lib/test/test_lltrace.py b/Lib/test/test_lltrace.py index 7cf89846f8a727..5d175ce57b179e 100644 --- a/Lib/test/test_lltrace.py +++ b/Lib/test/test_lltrace.py @@ -1,4 +1,5 @@ import dis +import sys import textwrap import unittest diff --git a/Lib/test/test_locale.py b/Lib/test/test_locale.py index b0d7998559759e..bc8a7a35fbf2dc 100644 --- a/Lib/test/test_locale.py +++ b/Lib/test/test_locale.py @@ -141,9 +141,18 @@ class BaseFormattingTest(object): # Utility functions for formatting tests # - def _test_format_string(self, format, value, out, **format_opts): + def _test_formatfunc(self, format, value, out, func, **format_opts): self.assertEqual( - locale.format_string(format, value, **format_opts), out) + func(format, value, **format_opts), out) + + def _test_format(self, format, value, out, **format_opts): + with check_warnings(('', DeprecationWarning)): + self._test_formatfunc(format, value, out, + func=locale.format, **format_opts) + + def _test_format_string(self, format, value, out, **format_opts): + self._test_formatfunc(format, value, out, + func=locale.format_string, **format_opts) def _test_currency(self, value, out, **format_opts): self.assertEqual(locale.currency(value, **format_opts), out) @@ -157,40 +166,44 @@ def setUp(self): self.sep = locale.localeconv()['thousands_sep'] def test_grouping(self): - self._test_format_string("%f", 1024, grouping=1, out='1%s024.000000' % self.sep) - self._test_format_string("%f", 102, grouping=1, out='102.000000') - self._test_format_string("%f", -42, grouping=1, out='-42.000000') - self._test_format_string("%+f", -42, grouping=1, out='-42.000000') + self._test_format("%f", 1024, grouping=1, out='1%s024.000000' % self.sep) + self._test_format("%f", 102, grouping=1, out='102.000000') + self._test_format("%f", -42, grouping=1, out='-42.000000') + self._test_format("%+f", -42, grouping=1, out='-42.000000') def test_grouping_and_padding(self): - self._test_format_string("%20.f", -42, grouping=1, out='-42'.rjust(20)) + self._test_format("%20.f", -42, grouping=1, out='-42'.rjust(20)) if self.sep: - self._test_format_string("%+10.f", -4200, grouping=1, + self._test_format("%+10.f", -4200, grouping=1, out=('-4%s200' % self.sep).rjust(10)) - self._test_format_string("%-10.f", -4200, grouping=1, + self._test_format("%-10.f", -4200, grouping=1, out=('-4%s200' % self.sep).ljust(10)) def test_integer_grouping(self): - self._test_format_string("%d", 4200, grouping=True, out='4%s200' % self.sep) - self._test_format_string("%+d", 4200, grouping=True, out='+4%s200' % self.sep) - self._test_format_string("%+d", -4200, grouping=True, out='-4%s200' % self.sep) + self._test_format("%d", 4200, grouping=True, out='4%s200' % self.sep) + self._test_format("%+d", 4200, grouping=True, out='+4%s200' % self.sep) + self._test_format("%+d", -4200, grouping=True, out='-4%s200' % self.sep) def test_integer_grouping_and_padding(self): - self._test_format_string("%10d", 4200, grouping=True, + self._test_format("%10d", 4200, grouping=True, out=('4%s200' % self.sep).rjust(10)) - self._test_format_string("%-10d", -4200, grouping=True, + self._test_format("%-10d", -4200, grouping=True, out=('-4%s200' % self.sep).ljust(10)) def test_simple(self): - self._test_format_string("%f", 1024, grouping=0, out='1024.000000') - self._test_format_string("%f", 102, grouping=0, out='102.000000') - self._test_format_string("%f", -42, grouping=0, out='-42.000000') - self._test_format_string("%+f", -42, grouping=0, out='-42.000000') + self._test_format("%f", 1024, grouping=0, out='1024.000000') + self._test_format("%f", 102, grouping=0, out='102.000000') + self._test_format("%f", -42, grouping=0, out='-42.000000') + self._test_format("%+f", -42, grouping=0, out='-42.000000') def test_padding(self): - self._test_format_string("%20.f", -42, grouping=0, out='-42'.rjust(20)) - self._test_format_string("%+10.f", -4200, grouping=0, out='-4200'.rjust(10)) - self._test_format_string("%-10.f", 4200, grouping=0, out='4200'.ljust(10)) + self._test_format("%20.f", -42, grouping=0, out='-42'.rjust(20)) + self._test_format("%+10.f", -4200, grouping=0, out='-4200'.rjust(10)) + self._test_format("%-10.f", 4200, grouping=0, out='4200'.ljust(10)) + + def test_format_deprecation(self): + with self.assertWarns(DeprecationWarning): + locale.format("%-10.f", 4200, grouping=True) def test_complex_formatting(self): # Spaces in formatting string @@ -217,9 +230,20 @@ def test_complex_formatting(self): out='int 1%s000 float 1%s000.00 str str' % (self.sep, self.sep)) - self._test_format_string("total=%i%%", 100, out='total=100%') - self._test_format_string("newline: %i\n", 3, out='newline: 3\n') - self._test_format_string("extra: %ii", 3, out='extra: 3i') + +class TestFormatPatternArg(unittest.TestCase): + # Test handling of pattern argument of format + + def test_onlyOnePattern(self): + with check_warnings(('', DeprecationWarning)): + # Issue 2522: accept exactly one % pattern, and no extra chars. + self.assertRaises(ValueError, locale.format, "%f\n", 'foo') + self.assertRaises(ValueError, locale.format, "%f\r", 'foo') + self.assertRaises(ValueError, locale.format, "%f\r\n", 'foo') + self.assertRaises(ValueError, locale.format, " %f", 'foo') + self.assertRaises(ValueError, locale.format, "%fg", 'foo') + self.assertRaises(ValueError, locale.format, "%^g", 'foo') + self.assertRaises(ValueError, locale.format, "%f%%", 'foo') class TestLocaleFormatString(unittest.TestCase): @@ -268,45 +292,45 @@ class TestCNumberFormatting(CCookedTest, BaseFormattingTest): # Test number formatting with a cooked "C" locale. def test_grouping(self): - self._test_format_string("%.2f", 12345.67, grouping=True, out='12345.67') + self._test_format("%.2f", 12345.67, grouping=True, out='12345.67') def test_grouping_and_padding(self): - self._test_format_string("%9.2f", 12345.67, grouping=True, out=' 12345.67') + self._test_format("%9.2f", 12345.67, grouping=True, out=' 12345.67') class TestFrFRNumberFormatting(FrFRCookedTest, BaseFormattingTest): # Test number formatting with a cooked "fr_FR" locale. def test_decimal_point(self): - self._test_format_string("%.2f", 12345.67, out='12345,67') + self._test_format("%.2f", 12345.67, out='12345,67') def test_grouping(self): - self._test_format_string("%.2f", 345.67, grouping=True, out='345,67') - self._test_format_string("%.2f", 12345.67, grouping=True, out='12 345,67') + self._test_format("%.2f", 345.67, grouping=True, out='345,67') + self._test_format("%.2f", 12345.67, grouping=True, out='12 345,67') def test_grouping_and_padding(self): - self._test_format_string("%6.2f", 345.67, grouping=True, out='345,67') - self._test_format_string("%7.2f", 345.67, grouping=True, out=' 345,67') - self._test_format_string("%8.2f", 12345.67, grouping=True, out='12 345,67') - self._test_format_string("%9.2f", 12345.67, grouping=True, out='12 345,67') - self._test_format_string("%10.2f", 12345.67, grouping=True, out=' 12 345,67') - self._test_format_string("%-6.2f", 345.67, grouping=True, out='345,67') - self._test_format_string("%-7.2f", 345.67, grouping=True, out='345,67 ') - self._test_format_string("%-8.2f", 12345.67, grouping=True, out='12 345,67') - self._test_format_string("%-9.2f", 12345.67, grouping=True, out='12 345,67') - self._test_format_string("%-10.2f", 12345.67, grouping=True, out='12 345,67 ') + self._test_format("%6.2f", 345.67, grouping=True, out='345,67') + self._test_format("%7.2f", 345.67, grouping=True, out=' 345,67') + self._test_format("%8.2f", 12345.67, grouping=True, out='12 345,67') + self._test_format("%9.2f", 12345.67, grouping=True, out='12 345,67') + self._test_format("%10.2f", 12345.67, grouping=True, out=' 12 345,67') + self._test_format("%-6.2f", 345.67, grouping=True, out='345,67') + self._test_format("%-7.2f", 345.67, grouping=True, out='345,67 ') + self._test_format("%-8.2f", 12345.67, grouping=True, out='12 345,67') + self._test_format("%-9.2f", 12345.67, grouping=True, out='12 345,67') + self._test_format("%-10.2f", 12345.67, grouping=True, out='12 345,67 ') def test_integer_grouping(self): - self._test_format_string("%d", 200, grouping=True, out='200') - self._test_format_string("%d", 4200, grouping=True, out='4 200') + self._test_format("%d", 200, grouping=True, out='200') + self._test_format("%d", 4200, grouping=True, out='4 200') def test_integer_grouping_and_padding(self): - self._test_format_string("%4d", 4200, grouping=True, out='4 200') - self._test_format_string("%5d", 4200, grouping=True, out='4 200') - self._test_format_string("%10d", 4200, grouping=True, out='4 200'.rjust(10)) - self._test_format_string("%-4d", 4200, grouping=True, out='4 200') - self._test_format_string("%-5d", 4200, grouping=True, out='4 200') - self._test_format_string("%-10d", 4200, grouping=True, out='4 200'.ljust(10)) + self._test_format("%4d", 4200, grouping=True, out='4 200') + self._test_format("%5d", 4200, grouping=True, out='4 200') + self._test_format("%10d", 4200, grouping=True, out='4 200'.rjust(10)) + self._test_format("%-4d", 4200, grouping=True, out='4 200') + self._test_format("%-5d", 4200, grouping=True, out='4 200') + self._test_format("%-10d", 4200, grouping=True, out='4 200'.ljust(10)) def test_currency(self): euro = '\u20ac' diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py index d70bfd6b09e13d..1c5e8523754cac 100644 --- a/Lib/test/test_logging.py +++ b/Lib/test/test_logging.py @@ -1,4 +1,4 @@ -# Copyright 2001-2022 by Vinay Sajip. All Rights Reserved. +# Copyright 2001-2021 by Vinay Sajip. All Rights Reserved. # # Permission to use, copy, modify, and distribute this software and its # documentation for any purpose and without fee is hereby granted, @@ -16,7 +16,7 @@ """Test harness for the logging module. Run all tests. -Copyright (C) 2001-2022 Vinay Sajip. All Rights Reserved. +Copyright (C) 2001-2021 Vinay Sajip. All Rights Reserved. """ import logging import logging.handlers @@ -29,7 +29,6 @@ import pathlib import pickle import io -import itertools import gc import json import os @@ -61,10 +60,9 @@ from socketserver import (ThreadingUDPServer, DatagramRequestHandler, ThreadingTCPServer, StreamRequestHandler) -with warnings.catch_warnings(): - from . import smtpd asyncore = warnings_helper.import_deprecated('asyncore') +smtpd = warnings_helper.import_deprecated('smtpd') try: @@ -469,51 +467,6 @@ def log_at_all_levels(self, logger): for lvl in LEVEL_RANGE: logger.log(lvl, self.next_message()) - def test_handler_filter_replaces_record(self): - def replace_message(record: logging.LogRecord): - record = copy.copy(record) - record.msg = "new message!" - return record - - # Set up a logging hierarchy such that "child" and it's handler - # (and thus `replace_message()`) always get called before - # propagating up to "parent". - # Then we can confirm that `replace_message()` was able to - # replace the log record without having a side effect on - # other loggers or handlers. - parent = logging.getLogger("parent") - child = logging.getLogger("parent.child") - stream_1 = io.StringIO() - stream_2 = io.StringIO() - handler_1 = logging.StreamHandler(stream_1) - handler_2 = logging.StreamHandler(stream_2) - handler_2.addFilter(replace_message) - parent.addHandler(handler_1) - child.addHandler(handler_2) - - child.info("original message") - handler_1.flush() - handler_2.flush() - self.assertEqual(stream_1.getvalue(), "original message\n") - self.assertEqual(stream_2.getvalue(), "new message!\n") - - def test_logging_filter_replaces_record(self): - records = set() - - class RecordingFilter(logging.Filter): - def filter(self, record: logging.LogRecord): - records.add(id(record)) - return copy.copy(record) - - logger = logging.getLogger("logger") - logger.setLevel(logging.INFO) - logger.addFilter(RecordingFilter()) - logger.addFilter(RecordingFilter()) - - logger.info("msg") - - self.assertEqual(2, len(records)) - def test_logger_filter(self): # Filter at logger level. self.root_logger.setLevel(VERBOSE) @@ -1225,35 +1178,6 @@ def test_flush_on_close(self): # assert that no new lines have been added self.assert_log_lines(lines) # no change - def test_shutdown_flush_on_close(self): - """ - Test that the flush-on-close configuration is respected by the - shutdown method. - """ - self.mem_logger.debug(self.next_message()) - self.assert_log_lines([]) - self.mem_logger.info(self.next_message()) - self.assert_log_lines([]) - # Default behaviour is to flush on close. Check that it happens. - logging.shutdown(handlerList=[logging.weakref.ref(self.mem_hdlr)]) - lines = [ - ('DEBUG', '1'), - ('INFO', '2'), - ] - self.assert_log_lines(lines) - # Now configure for flushing not to be done on close. - self.mem_hdlr = logging.handlers.MemoryHandler(10, logging.WARNING, - self.root_hdlr, - False) - self.mem_logger.addHandler(self.mem_hdlr) - self.mem_logger.debug(self.next_message()) - self.assert_log_lines(lines) # no change - self.mem_logger.info(self.next_message()) - self.assert_log_lines(lines) # no change - # assert that no new lines have been added after shutdown - logging.shutdown(handlerList=[logging.weakref.ref(self.mem_hdlr)]) - self.assert_log_lines(lines) # no change - @threading_helper.requires_working_threading() def test_race_between_set_target_and_flush(self): class MockRaceConditionHandler: @@ -1287,9 +1211,6 @@ class ExceptionFormatter(logging.Formatter): def formatException(self, ei): return "Got a [%s]" % ei[0].__name__ -def closeFileHandler(h, fn): - h.close() - os.remove(fn) class ConfigFileTest(BaseTest): @@ -1673,6 +1594,10 @@ def test_config7_ok(self): def test_config8_ok(self): + def cleanup(h1, fn): + h1.close() + os.remove(fn) + with self.check_no_resource_warning(): fn = make_temp_file(".log", "test_logging-X-") @@ -1687,7 +1612,7 @@ def test_config8_ok(self): self.apply_config(config8) handler = logging.root.handlers[0] - self.addCleanup(closeFileHandler, handler, fn) + self.addCleanup(cleanup, handler, fn) def test_logger_disabling(self): self.apply_config(self.disable_test) @@ -1858,6 +1783,12 @@ def test_noserver(self): time.sleep(self.sock_hdlr.retryTime - now + 0.001) self.root_logger.error('Nor this') +def _get_temp_domain_socket(): + fn = make_temp_file(prefix='test_logging_', suffix='.sock') + # 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") class UnixSocketHandlerTest(SocketHandlerTest): @@ -1869,10 +1800,13 @@ class UnixSocketHandlerTest(SocketHandlerTest): def setUp(self): # override the definition in the base class - self.address = socket_helper.create_unix_domain_name() - self.addCleanup(os_helper.unlink, self.address) + self.address = _get_temp_domain_socket() SocketHandlerTest.setUp(self) + def tearDown(self): + SocketHandlerTest.tearDown(self) + os_helper.unlink(self.address) + @support.requires_working_socket() @threading_helper.requires_working_threading() class DatagramHandlerTest(BaseTest): @@ -1949,10 +1883,13 @@ class UnixDatagramHandlerTest(DatagramHandlerTest): def setUp(self): # override the definition in the base class - self.address = socket_helper.create_unix_domain_name() - self.addCleanup(os_helper.unlink, self.address) + self.address = _get_temp_domain_socket() DatagramHandlerTest.setUp(self) + def tearDown(self): + DatagramHandlerTest.tearDown(self) + os_helper.unlink(self.address) + @support.requires_working_socket() @threading_helper.requires_working_threading() class SysLogHandlerTest(BaseTest): @@ -1983,7 +1920,7 @@ def setUp(self): self.sl_hdlr = hcls((server.server_address[0], server.port)) else: self.sl_hdlr = hcls(server.server_address) - self.log_output = b'' + self.log_output = '' self.root_logger.removeHandler(self.root_logger.handlers[0]) self.root_logger.addHandler(self.sl_hdlr) self.handled = threading.Event() @@ -2040,10 +1977,13 @@ class UnixSysLogHandlerTest(SysLogHandlerTest): def setUp(self): # override the definition in the base class - self.address = socket_helper.create_unix_domain_name() - self.addCleanup(os_helper.unlink, self.address) + self.address = _get_temp_domain_socket() SysLogHandlerTest.setUp(self) + def tearDown(self): + SysLogHandlerTest.tearDown(self) + os_helper.unlink(self.address) + @unittest.skipUnless(socket_helper.IPV6_ENABLED, 'IPv6 support required for this test.') class IPv6SysLogHandlerTest(SysLogHandlerTest): @@ -2293,21 +2233,6 @@ def handlerFunc(): class CustomHandler(logging.StreamHandler): pass -class CustomListener(logging.handlers.QueueListener): - pass - -class CustomQueue(queue.Queue): - pass - -def queueMaker(): - return queue.Queue() - -def listenerMaker(arg1, arg2, respect_handler_level=False): - def func(queue, *handlers, **kwargs): - kwargs.setdefault('respect_handler_level', respect_handler_level) - return CustomListener(queue, *handlers, **kwargs) - return func - class ConfigDictTest(BaseTest): """Reading logging config from a dictionary.""" @@ -2911,7 +2836,7 @@ class ConfigDictTest(BaseTest): }, } - bad_format = { + out_of_order = { "version": 1, "formatters": { "mySimpleFormatter": { @@ -2931,7 +2856,7 @@ class ConfigDictTest(BaseTest): "formatter": "mySimpleFormatter", "target": "fileGlobal", "level": "DEBUG" - } + } }, "loggers": { "mymodule": { @@ -3050,36 +2975,13 @@ class ConfigDictTest(BaseTest): } } - config_queue_handler = { - 'version': 1, - 'handlers' : { - 'h1' : { - 'class': 'logging.FileHandler', - }, - # key is before depended on handlers to test that deferred config works - 'ah' : { - 'class': 'logging.handlers.QueueHandler', - 'handlers': ['h1'] - }, - }, - "root": { - "level": "DEBUG", - "handlers": ["ah"] - } - } - def apply_config(self, conf): logging.config.dictConfig(conf) - def check_handler(self, name, cls): - h = logging.getHandlerByName(name) - self.assertIsInstance(h, cls) - def test_config0_ok(self): # A simple config which overrides the default settings. with support.captured_stdout() as output: self.apply_config(self.config0) - self.check_handler('hand1', logging.StreamHandler) logger = logging.getLogger() # Won't output anything logger.info(self.next_message()) @@ -3126,7 +3028,6 @@ def test_config4_ok(self): # A config specifying a custom formatter class. with support.captured_stdout() as output: self.apply_config(self.config4) - self.check_handler('hand1', logging.StreamHandler) #logger = logging.getLogger() try: raise RuntimeError() @@ -3155,7 +3056,6 @@ def test_config4a_ok(self): def test_config5_ok(self): self.test_config1_ok(config=self.config5) - self.check_handler('hand1', CustomHandler) def test_config6_failure(self): self.assertRaises(Exception, self.apply_config, self.config6) @@ -3175,7 +3075,6 @@ def test_config7_ok(self): self.assert_log_lines([]) with support.captured_stdout() as output: self.apply_config(self.config7) - self.check_handler('hand1', logging.StreamHandler) logger = logging.getLogger("compiler.parser") self.assertTrue(logger.disabled) logger = logging.getLogger("compiler.lexer") @@ -3205,7 +3104,6 @@ def test_config_8_ok(self): self.assert_log_lines([]) with support.captured_stdout() as output: self.apply_config(self.config8) - self.check_handler('hand1', logging.StreamHandler) logger = logging.getLogger("compiler.parser") self.assertFalse(logger.disabled) # Both will output a message @@ -3227,7 +3125,6 @@ def test_config_8_ok(self): def test_config_8a_ok(self): with support.captured_stdout() as output: self.apply_config(self.config1a) - self.check_handler('hand1', logging.StreamHandler) logger = logging.getLogger("compiler.parser") # See issue #11424. compiler-hyphenated sorts # between compiler and compiler.xyz and this @@ -3248,7 +3145,6 @@ def test_config_8a_ok(self): self.assert_log_lines([]) with support.captured_stdout() as output: self.apply_config(self.config8a) - self.check_handler('hand1', logging.StreamHandler) logger = logging.getLogger("compiler.parser") self.assertFalse(logger.disabled) # Both will output a message @@ -3272,7 +3168,6 @@ def test_config_8a_ok(self): def test_config_9_ok(self): with support.captured_stdout() as output: self.apply_config(self.config9) - self.check_handler('hand1', logging.StreamHandler) logger = logging.getLogger("compiler.parser") # Nothing will be output since both handler and logger are set to WARNING logger.info(self.next_message()) @@ -3291,7 +3186,6 @@ def test_config_9_ok(self): def test_config_10_ok(self): with support.captured_stdout() as output: self.apply_config(self.config10) - self.check_handler('hand1', logging.StreamHandler) logger = logging.getLogger("compiler.parser") logger.warning(self.next_message()) logger = logging.getLogger('compiler') @@ -3328,6 +3222,10 @@ def test_config14_ok(self): def test_config15_ok(self): + def cleanup(h1, fn): + h1.close() + os.remove(fn) + with self.check_no_resource_warning(): fn = make_temp_file(".log", "test_logging-X-") @@ -3349,7 +3247,7 @@ def test_config15_ok(self): self.apply_config(config) handler = logging.root.handlers[0] - self.addCleanup(closeFileHandler, handler, fn) + self.addCleanup(cleanup, handler, fn) def setup_via_listener(self, text, verify=None): text = text.encode("utf-8") @@ -3383,7 +3281,6 @@ def setup_via_listener(self, text, verify=None): def test_listen_config_10_ok(self): with support.captured_stdout() as output: self.setup_via_listener(json.dumps(self.config10)) - self.check_handler('hand1', logging.StreamHandler) logger = logging.getLogger("compiler.parser") logger.warning(self.next_message()) logger = logging.getLogger('compiler') @@ -3478,11 +3375,11 @@ def verify_reverse(stuff): ('ERROR', '2'), ], pat=r"^[\w.]+ -> (\w+): (\d+)$") - def test_bad_format(self): - self.assertRaises(ValueError, self.apply_config, self.bad_format) + def test_out_of_order(self): + self.assertRaises(ValueError, self.apply_config, self.out_of_order) - def test_bad_format_with_dollar_style(self): - config = copy.deepcopy(self.bad_format) + def test_out_of_order_with_dollar_style(self): + config = copy.deepcopy(self.out_of_order) config['formatters']['mySimpleFormatter']['format'] = "${asctime} (${name}) ${levelname}: ${message}" self.apply_config(config) @@ -3490,8 +3387,6 @@ def test_bad_format_with_dollar_style(self): self.assertIsInstance(handler.target, logging.Handler) self.assertIsInstance(handler.formatter._style, logging.StringTemplateStyle) - self.assertEqual(sorted(logging.getHandlerNames()), - ['bufferGlobal', 'fileGlobal']) def test_custom_formatter_class_with_validate(self): self.apply_config(self.custom_formatter_class_validate) @@ -3507,7 +3402,7 @@ def test_custom_formatter_class_with_validate2_with_wrong_fmt(self): config = self.custom_formatter_class_validate.copy() config['formatters']['form1']['style'] = "$" - # Exception should not be raised as we have configured 'validate' to False + # Exception should not be raise as we have configured 'validate' to False self.apply_config(config) handler = logging.getLogger("my_test_logger_custom_formatter").handlers[0] self.assertIsInstance(handler.formatter, ExceptionFormatter) @@ -3608,104 +3503,6 @@ class NotAFilter: pass {"version": 1, "root": {"level": "DEBUG", "filters": [filter_]}} ) - def do_queuehandler_configuration(self, qspec, lspec): - cd = copy.deepcopy(self.config_queue_handler) - fn = make_temp_file('.log', 'test_logging-cqh-') - cd['handlers']['h1']['filename'] = fn - if qspec is not None: - cd['handlers']['ah']['queue'] = qspec - if lspec is not None: - cd['handlers']['ah']['listener'] = lspec - qh = None - try: - self.apply_config(cd) - qh = logging.getHandlerByName('ah') - self.assertEqual(sorted(logging.getHandlerNames()), ['ah', 'h1']) - self.assertIsNotNone(qh.listener) - qh.listener.start() - logging.debug('foo') - logging.info('bar') - logging.warning('baz') - - # Need to let the listener thread finish its work - while support.sleeping_retry(support.LONG_TIMEOUT, - "queue not empty"): - if qh.listener.queue.empty(): - break - - # wait until the handler completed its last task - qh.listener.queue.join() - - with open(fn, encoding='utf-8') as f: - data = f.read().splitlines() - self.assertEqual(data, ['foo', 'bar', 'baz']) - finally: - if qh: - qh.listener.stop() - h = logging.getHandlerByName('h1') - if h: - self.addCleanup(closeFileHandler, h, fn) - else: - self.addCleanup(os.remove, fn) - - @threading_helper.requires_working_threading() - def test_config_queue_handler(self): - q = CustomQueue() - dq = { - '()': __name__ + '.CustomQueue', - 'maxsize': 10 - } - dl = { - '()': __name__ + '.listenerMaker', - 'arg1': None, - 'arg2': None, - 'respect_handler_level': True - } - qvalues = (None, __name__ + '.queueMaker', __name__ + '.CustomQueue', dq, q) - lvalues = (None, __name__ + '.CustomListener', dl, CustomListener) - for qspec, lspec in itertools.product(qvalues, lvalues): - self.do_queuehandler_configuration(qspec, lspec) - - # Some failure cases - qvalues = (None, 4, int, '', 'foo') - lvalues = (None, 4, int, '', 'bar') - for qspec, lspec in itertools.product(qvalues, lvalues): - if lspec is None and qspec is None: - continue - with self.assertRaises(ValueError) as ctx: - self.do_queuehandler_configuration(qspec, lspec) - msg = str(ctx.exception) - self.assertEqual(msg, "Unable to configure handler 'ah'") - - def test_90195(self): - # See gh-90195 - config = { - 'version': 1, - 'disable_existing_loggers': False, - 'handlers': { - 'console': { - 'level': 'DEBUG', - 'class': 'logging.StreamHandler', - }, - }, - 'loggers': { - 'a': { - 'level': 'DEBUG', - 'handlers': ['console'] - } - } - } - logger = logging.getLogger('a') - self.assertFalse(logger.disabled) - self.apply_config(config) - self.assertFalse(logger.disabled) - # Should disable all loggers ... - self.apply_config({'version': 1}) - self.assertTrue(logger.disabled) - del config['disable_existing_loggers'] - self.apply_config(config) - # Logger should be enabled, since explicitly mentioned - self.assertFalse(logger.disabled) class ManagerTest(BaseTest): def test_manager_loggerclass(self): @@ -3746,20 +3543,6 @@ def test_child_loggers(self): self.assertIs(c2, logging.getLogger('abc.def.ghi')) self.assertIs(c2, c3) - def test_get_children(self): - r = logging.getLogger() - l1 = logging.getLogger('foo') - l2 = logging.getLogger('foo.bar') - l3 = logging.getLogger('foo.bar.baz.bozz') - l4 = logging.getLogger('bar') - kids = r.getChildren() - expected = {l1, l4} - self.assertEqual(expected, kids & expected) # might be other kids for root - self.assertNotIn(l2, expected) - kids = l1.getChildren() - self.assertEqual({l2}, kids) - kids = l2.getChildren() - self.assertEqual(set(), kids) class DerivedLogRecord(logging.LogRecord): pass @@ -3881,7 +3664,7 @@ def test_queue_listener(self): @unittest.skipUnless(hasattr(logging.handlers, 'QueueListener'), 'logging.handlers.QueueListener required for this test') def test_queue_listener_with_StreamHandler(self): - # Test that traceback and stack-info only appends once (bpo-34334, bpo-46755). + # Test that traceback only appends once (bpo-34334). listener = logging.handlers.QueueListener(self.queue, self.root_hdlr) listener.start() try: @@ -3889,10 +3672,8 @@ def test_queue_listener_with_StreamHandler(self): except ZeroDivisionError as e: exc = e self.que_logger.exception(self.next_message(), exc_info=exc) - self.que_logger.error(self.next_message(), stack_info=True) listener.stop() self.assertEqual(self.stream.getvalue().strip().count('Traceback'), 1) - self.assertEqual(self.stream.getvalue().strip().count('Stack'), 1) @unittest.skipUnless(hasattr(logging.handlers, 'QueueListener'), 'logging.handlers.QueueListener required for this test') @@ -4304,14 +4085,6 @@ class NoMsecFormatter(logging.Formatter): f.converter = time.gmtime self.assertEqual(f.formatTime(r), '21/04/1993 08:03:00') - def test_issue_89047(self): - f = logging.Formatter(fmt='{asctime}.{msecs:03.0f} {message}', style='{', datefmt="%Y-%m-%d %H:%M:%S") - for i in range(2500): - time.sleep(0.0004) - r = logging.makeLogRecord({'msg': 'Message %d' % (i + 1)}) - s = f.format(r) - self.assertNotIn('.1000', s) - class TestBufferingFormatter(logging.BufferingFormatter): def formatHeader(self, records): @@ -4813,7 +4586,6 @@ async def _make_record_async(self, assertion): r = logging.makeLogRecord({}) assertion(r.taskName) - @support.requires_working_socket() def test_taskName_with_asyncio_imported(self): try: make_record = self._make_record_async @@ -4825,7 +4597,6 @@ def test_taskName_with_asyncio_imported(self): finally: asyncio.set_event_loop_policy(None) - @support.requires_working_socket() def test_taskName_without_asyncio_imported(self): try: make_record = self._make_record_async @@ -5115,7 +4886,6 @@ def dummy_handle_error(record): # didn't write anything due to the encoding error self.assertEqual(data, r'') - @support.requires_working_socket() def test_log_taskName(self): async def log_record(): logging.warning('hello world') diff --git a/Lib/test/test_mailcap.py b/Lib/test/test_mailcap.py index 819dc80a266433..d3995b14720e66 100644 --- a/Lib/test/test_mailcap.py +++ b/Lib/test/test_mailcap.py @@ -3,6 +3,7 @@ import sys import test.support import unittest +import warnings from test.support import os_helper from test.support import warnings_helper @@ -127,8 +128,7 @@ def test_subst(self): (["", "audio/*", "foo.txt"], ""), (["echo foo", "audio/*", "foo.txt"], "echo foo"), (["echo %s", "audio/*", "foo.txt"], "echo foo.txt"), - (["echo %t", "audio/*", "foo.txt"], None), - (["echo %t", "audio/wav", "foo.txt"], "echo audio/wav"), + (["echo %t", "audio/*", "foo.txt"], "echo audio/*"), (["echo \\%t", "audio/*", "foo.txt"], "echo %t"), (["echo foo", "audio/*", "foo.txt", plist], "echo foo"), (["echo %{total}", "audio/*", "foo.txt", plist], "echo 3") @@ -212,10 +212,7 @@ def test_findmatch(self): ('"An audio fragment"', audio_basic_entry)), ([c, "audio/*"], {"filename": fname}, - (None, None)), - ([c, "audio/wav"], - {"filename": fname}, - ("/usr/local/bin/showaudio audio/wav", audio_entry)), + ("/usr/local/bin/showaudio audio/*", audio_entry)), ([c, "message/external-body"], {"plist": plist}, ("showexternal /dev/null default john python.org /tmp foo bar", message_entry)) diff --git a/Lib/test/test_memoryview.py b/Lib/test/test_memoryview.py index 0eb2a367603cfc..d7e3f0c0effa69 100644 --- a/Lib/test/test_memoryview.py +++ b/Lib/test/test_memoryview.py @@ -13,7 +13,6 @@ import io import copy import pickle -import struct from test.support import import_helper @@ -528,14 +527,6 @@ def test_ctypes_cast(self): m[2:] = memoryview(p6).cast(format)[2:] self.assertEqual(d.value, 0.6) - def test_half_float(self): - half_data = struct.pack('eee', 0.0, -1.5, 1.5) - float_data = struct.pack('fff', 0.0, -1.5, 1.5) - half_view = memoryview(half_data).cast('e') - float_view = memoryview(float_data).cast('f') - self.assertEqual(half_view.nbytes * 2, float_view.nbytes) - self.assertListEqual(half_view.tolist(), float_view.tolist()) - def test_memoryview_hex(self): # Issue #9951: memoryview.hex() segfaults with non-contiguous buffers. x = b'0' * 200000 @@ -554,107 +545,6 @@ def test_pickle(self): with self.assertRaises(TypeError): pickle.dumps(m, proto) - def test_use_released_memory(self): - # gh-92888: Previously it was possible to use a memoryview even after - # backing buffer is freed in certain cases. This tests that those - # cases raise an exception. - size = 128 - def release(): - m.release() - nonlocal ba - ba = bytearray(size) - class MyIndex: - def __index__(self): - release() - return 4 - class MyFloat: - def __float__(self): - release() - return 4.25 - class MyBool: - def __bool__(self): - release() - return True - - ba = None - m = memoryview(bytearray(b'\xff'*size)) - with self.assertRaises(ValueError): - m[MyIndex()] - - ba = None - m = memoryview(bytearray(b'\xff'*size)) - self.assertEqual(list(m[:MyIndex()]), [255] * 4) - - ba = None - m = memoryview(bytearray(b'\xff'*size)) - self.assertEqual(list(m[MyIndex():8]), [255] * 4) - - ba = None - m = memoryview(bytearray(b'\xff'*size)).cast('B', (64, 2)) - with self.assertRaisesRegex(ValueError, "operation forbidden"): - m[MyIndex(), 0] - - ba = None - m = memoryview(bytearray(b'\xff'*size)).cast('B', (2, 64)) - with self.assertRaisesRegex(ValueError, "operation forbidden"): - m[0, MyIndex()] - - ba = None - m = memoryview(bytearray(b'\xff'*size)) - with self.assertRaisesRegex(ValueError, "operation forbidden"): - m[MyIndex()] = 42 - self.assertEqual(ba[:8], b'\0'*8) - - ba = None - m = memoryview(bytearray(b'\xff'*size)) - with self.assertRaisesRegex(ValueError, "operation forbidden"): - m[:MyIndex()] = b'spam' - self.assertEqual(ba[:8], b'\0'*8) - - ba = None - m = memoryview(bytearray(b'\xff'*size)) - with self.assertRaisesRegex(ValueError, "operation forbidden"): - m[MyIndex():8] = b'spam' - self.assertEqual(ba[:8], b'\0'*8) - - ba = None - m = memoryview(bytearray(b'\xff'*size)).cast('B', (64, 2)) - with self.assertRaisesRegex(ValueError, "operation forbidden"): - m[MyIndex(), 0] = 42 - self.assertEqual(ba[8:16], b'\0'*8) - ba = None - m = memoryview(bytearray(b'\xff'*size)).cast('B', (2, 64)) - with self.assertRaisesRegex(ValueError, "operation forbidden"): - m[0, MyIndex()] = 42 - self.assertEqual(ba[:8], b'\0'*8) - - ba = None - m = memoryview(bytearray(b'\xff'*size)) - with self.assertRaisesRegex(ValueError, "operation forbidden"): - m[0] = MyIndex() - self.assertEqual(ba[:8], b'\0'*8) - - for fmt in 'bhilqnBHILQN': - with self.subTest(fmt=fmt): - ba = None - m = memoryview(bytearray(b'\xff'*size)).cast(fmt) - with self.assertRaisesRegex(ValueError, "operation forbidden"): - m[0] = MyIndex() - self.assertEqual(ba[:8], b'\0'*8) - - for fmt in 'fd': - with self.subTest(fmt=fmt): - ba = None - m = memoryview(bytearray(b'\xff'*size)).cast(fmt) - with self.assertRaisesRegex(ValueError, "operation forbidden"): - m[0] = MyFloat() - self.assertEqual(ba[:8], b'\0'*8) - - ba = None - m = memoryview(bytearray(b'\xff'*size)).cast('?') - with self.assertRaisesRegex(ValueError, "operation forbidden"): - m[0] = MyBool() - self.assertEqual(ba[:8], b'\0'*8) if __name__ == "__main__": unittest.main() diff --git a/Lib/test/test_minidom.py b/Lib/test/test_minidom.py index ef38c362103fc6..97620258d82f6b 100644 --- a/Lib/test/test_minidom.py +++ b/Lib/test/test_minidom.py @@ -9,7 +9,7 @@ import pyexpat import xml.dom.minidom -from xml.dom.minidom import parse, Attr, Node, Document, parseString +from xml.dom.minidom import parse, Node, Document, parseString from xml.dom.minidom import getDOMImplementation from xml.parsers.expat import ExpatError @@ -77,20 +77,6 @@ def testParseFromTextFile(self): dom.unlink() self.confirm(isinstance(dom, Document)) - def testAttrModeSetsParamsAsAttrs(self): - attr = Attr("qName", "namespaceURI", "localName", "prefix") - self.assertEqual(attr.name, "qName") - self.assertEqual(attr.namespaceURI, "namespaceURI") - self.assertEqual(attr.prefix, "prefix") - self.assertEqual(attr.localName, "localName") - - def testAttrModeSetsNonOptionalAttrs(self): - attr = Attr("qName", "namespaceURI", None, "prefix") - self.assertEqual(attr.name, "qName") - self.assertEqual(attr.namespaceURI, "namespaceURI") - self.assertEqual(attr.prefix, "prefix") - self.assertEqual(attr.localName, attr.name) - def testGetElementsByTagName(self): dom = parse(tstfile) self.confirm(dom.getElementsByTagName("LI") == \ diff --git a/Lib/test/test_module.py b/Lib/test/test_module.py index 6c83d76c8e3c68..f72177dda3702a 100644 --- a/Lib/test/test_module.py +++ b/Lib/test/test_module.py @@ -8,10 +8,10 @@ import sys ModuleType = type(sys) - class FullLoader: - pass - + @classmethod + def module_repr(cls, m): + return "<module '{}' (crafted)>".format(m.__name__) class BareLoader: pass @@ -236,7 +236,7 @@ def test_module_repr_with_full_loader(self): # Yes, a class not an instance. m.__loader__ = FullLoader self.assertEqual( - repr(m), "<module 'foo' (<class 'test.test_module.FullLoader'>)>") + repr(m), "<module 'foo' (crafted)>") def test_module_repr_with_bare_loader_and_filename(self): # Because the loader has no module_repr(), use the file name. @@ -252,7 +252,7 @@ def test_module_repr_with_full_loader_and_filename(self): # Yes, a class not an instance. m.__loader__ = FullLoader m.__file__ = '/tmp/foo.py' - self.assertEqual(repr(m), "<module 'foo' from '/tmp/foo.py'>") + self.assertEqual(repr(m), "<module 'foo' (crafted)>") def test_module_repr_builtin(self): self.assertEqual(repr(sys), "<module 'sys' (built-in)>") diff --git a/Lib/test/test_modulefinder.py b/Lib/test/test_modulefinder.py index b64e684f80599f..ca1058b8d4087c 100644 --- a/Lib/test/test_modulefinder.py +++ b/Lib/test/test_modulefinder.py @@ -10,6 +10,9 @@ import modulefinder +TEST_DIR = tempfile.mkdtemp() +TEST_PATH = [TEST_DIR, os.path.dirname(tempfile.__file__)] + # Each test description is a list of 5 items: # # 1. a module name that will be imported by modulefinder @@ -20,9 +23,9 @@ # about because they MAY be not found # 5. a string specifying packages to create; the format is obvious imo. # -# Each package will be created in test_dir, and test_dir will be +# Each package will be created in TEST_DIR, and TEST_DIR will be # removed after the tests again. -# Modulefinder searches in a path that contains test_dir, plus +# Modulefinder searches in a path that contains TEST_DIR, plus # the standard Lib directory. maybe_test = [ @@ -297,7 +300,7 @@ def open_file(path): return open(path, 'wb') -def create_package(test_dir, source): +def create_package(source): ofi = None try: for line in source.splitlines(): @@ -310,45 +313,41 @@ def create_package(test_dir, source): ofi.close() if type(line) == bytes: line = line.decode('utf-8') - ofi = open_file(os.path.join(test_dir, line.strip())) + ofi = open_file(os.path.join(TEST_DIR, line.strip())) finally: if ofi: ofi.close() class ModuleFinderTest(unittest.TestCase): - def setUp(self): - self.test_dir = tempfile.mkdtemp() - self.test_path = [self.test_dir, os.path.dirname(tempfile.__file__)] - - def tearDown(self): - shutil.rmtree(self.test_dir) - def _do_test(self, info, report=False, debug=0, replace_paths=[], modulefinder_class=modulefinder.ModuleFinder): import_this, modules, missing, maybe_missing, source = info - create_package(self.test_dir, source) - mf = modulefinder_class(path=self.test_path, debug=debug, - replace_paths=replace_paths) - mf.import_hook(import_this) - if report: - mf.report() -## # This wouldn't work in general when executed several times: -## opath = sys.path[:] -## sys.path = self.test_path -## try: -## __import__(import_this) -## except: -## import traceback; traceback.print_exc() -## sys.path = opath -## return - modules = sorted(set(modules)) - found = sorted(mf.modules) - # check if we found what we expected, not more, not less - self.assertEqual(found, modules) - - # check for missing and maybe missing modules - bad, maybe = mf.any_missing_maybe() - self.assertEqual(bad, missing) - self.assertEqual(maybe, maybe_missing) + create_package(source) + try: + mf = modulefinder_class(path=TEST_PATH, debug=debug, + replace_paths=replace_paths) + mf.import_hook(import_this) + if report: + mf.report() +## # This wouldn't work in general when executed several times: +## opath = sys.path[:] +## sys.path = TEST_PATH +## try: +## __import__(import_this) +## except: +## import traceback; traceback.print_exc() +## sys.path = opath +## return + modules = sorted(set(modules)) + found = sorted(mf.modules) + # check if we found what we expected, not more, not less + self.assertEqual(found, modules) + + # check for missing and maybe missing modules + bad, maybe = mf.any_missing_maybe() + self.assertEqual(bad, missing) + self.assertEqual(maybe, maybe_missing) + finally: + shutil.rmtree(TEST_DIR) def test_package(self): self._do_test(package_test) @@ -381,7 +380,7 @@ def test_same_name_as_bad(self): self._do_test(same_name_as_bad_test) def test_bytecode(self): - base_path = os.path.join(self.test_dir, 'a') + base_path = os.path.join(TEST_DIR, 'a') source_path = base_path + importlib.machinery.SOURCE_SUFFIXES[0] bytecode_path = base_path + importlib.machinery.BYTECODE_SUFFIXES[0] with open_file(source_path) as file: @@ -391,8 +390,8 @@ def test_bytecode(self): self._do_test(bytecode_test) def test_replace_paths(self): - old_path = os.path.join(self.test_dir, 'a', 'module.py') - new_path = os.path.join(self.test_dir, 'a', 'spam.py') + old_path = os.path.join(TEST_DIR, 'a', 'module.py') + new_path = os.path.join(TEST_DIR, 'a', 'spam.py') with support.captured_stdout() as output: self._do_test(maybe_test, debug=2, replace_paths=[(old_path, new_path)]) diff --git a/Lib/test/test_multiprocessing_main_handling.py b/Lib/test/test_multiprocessing_main_handling.py index 6b30a89316703b..510d8d3a7597e1 100644 --- a/Lib/test/test_multiprocessing_main_handling.py +++ b/Lib/test/test_multiprocessing_main_handling.py @@ -40,7 +40,6 @@ import sys import time from multiprocessing import Pool, set_start_method -from test import support # We use this __main__ defined function in the map call below in order to # check that multiprocessing in correctly running the unguarded @@ -60,12 +59,13 @@ def f(x): results = [] with Pool(5) as pool: pool.map_async(f, [1, 2, 3], callback=results.extend) - - # up to 1 min to report the results - for _ in support.sleeping_retry(support.LONG_TIMEOUT, - "Timed out waiting for results"): - if results: - break + start_time = time.monotonic() + while not results: + time.sleep(0.05) + # up to 1 min to report the results + dt = time.monotonic() - start_time + if dt > 60.0: + raise RuntimeError("Timed out waiting for results (%.1f sec)" % dt) results.sort() print(start_method, "->", results) @@ -86,18 +86,19 @@ def f(x): import sys import time from multiprocessing import Pool, set_start_method -from test import support start_method = sys.argv[1] set_start_method(start_method) results = [] with Pool(5) as pool: pool.map_async(int, [1, 4, 9], callback=results.extend) - # up to 1 min to report the results - for _ in support.sleeping_retry(support.LONG_TIMEOUT, - "Timed out waiting for results"): - if results: - break + start_time = time.monotonic() + while not results: + time.sleep(0.05) + # up to 1 min to report the results + dt = time.monotonic() - start_time + if dt > 60.0: + raise RuntimeError("Timed out waiting for results (%.1f sec)" % dt) results.sort() print(start_method, "->", results) diff --git a/Lib/test/test_netrc.py b/Lib/test/test_netrc.py index 573d636de956d1..05a23e5e8a3ce2 100644 --- a/Lib/test/test_netrc.py +++ b/Lib/test/test_netrc.py @@ -272,7 +272,6 @@ def test_comment_at_end_of_machine_line_pass_has_hash(self): @unittest.skipUnless(os.name == 'posix', 'POSIX only test') @unittest.skipIf(pwd is None, 'security check requires pwd module') - @os_helper.skip_unless_working_chmod def test_security(self): # This test is incomplete since we are normally not run as root and # therefore can't test the file ownership being wrong. diff --git a/Lib/test/test_nis.py b/Lib/test/test_nis.py index f327ecf3d1de45..797c9023ad34d4 100644 --- a/Lib/test/test_nis.py +++ b/Lib/test/test_nis.py @@ -1,3 +1,4 @@ +from test import support from test.support import import_helper import unittest import warnings diff --git a/Lib/test/test_ntpath.py b/Lib/test/test_ntpath.py index d51946322c8056..7211ed861762b4 100644 --- a/Lib/test/test_ntpath.py +++ b/Lib/test/test_ntpath.py @@ -117,31 +117,6 @@ def test_splitdrive(self): # Issue #19911: UNC part containing U+0130 self.assertEqual(ntpath.splitdrive('//conky/MOUNTPOİNT/foo/bar'), ('//conky/MOUNTPOİNT', '/foo/bar')) - # gh-81790: support device namespace, including UNC drives. - tester('ntpath.splitdrive("//?/c:")', ("//?/c:", "")) - tester('ntpath.splitdrive("//?/c:/")', ("//?/c:", "/")) - tester('ntpath.splitdrive("//?/c:/dir")', ("//?/c:", "/dir")) - tester('ntpath.splitdrive("//?/UNC")', ("", "//?/UNC")) - tester('ntpath.splitdrive("//?/UNC/")', ("", "//?/UNC/")) - tester('ntpath.splitdrive("//?/UNC/server/")', ("//?/UNC/server/", "")) - tester('ntpath.splitdrive("//?/UNC/server/share")', ("//?/UNC/server/share", "")) - tester('ntpath.splitdrive("//?/UNC/server/share/dir")', ("//?/UNC/server/share", "/dir")) - tester('ntpath.splitdrive("//?/VOLUME{00000000-0000-0000-0000-000000000000}/spam")', - ('//?/VOLUME{00000000-0000-0000-0000-000000000000}', '/spam')) - tester('ntpath.splitdrive("//?/BootPartition/")', ("//?/BootPartition", "/")) - - tester('ntpath.splitdrive("\\\\?\\c:")', ("\\\\?\\c:", "")) - tester('ntpath.splitdrive("\\\\?\\c:\\")', ("\\\\?\\c:", "\\")) - tester('ntpath.splitdrive("\\\\?\\c:\\dir")', ("\\\\?\\c:", "\\dir")) - tester('ntpath.splitdrive("\\\\?\\UNC")', ("", "\\\\?\\UNC")) - tester('ntpath.splitdrive("\\\\?\\UNC\\")', ("", "\\\\?\\UNC\\")) - tester('ntpath.splitdrive("\\\\?\\UNC\\server\\")', ("\\\\?\\UNC\\server\\", "")) - tester('ntpath.splitdrive("\\\\?\\UNC\\server\\share")', ("\\\\?\\UNC\\server\\share", "")) - tester('ntpath.splitdrive("\\\\?\\UNC\\server\\share\\dir")', - ("\\\\?\\UNC\\server\\share", "\\dir")) - tester('ntpath.splitdrive("\\\\?\\VOLUME{00000000-0000-0000-0000-000000000000}\\spam")', - ('\\\\?\\VOLUME{00000000-0000-0000-0000-000000000000}', '\\spam')) - tester('ntpath.splitdrive("\\\\?\\BootPartition\\")', ("\\\\?\\BootPartition", "\\")) def test_split(self): tester('ntpath.split("c:\\foo\\bar")', ('c:\\foo', 'bar')) @@ -877,8 +852,6 @@ def _check_function(self, func): def test_path_normcase(self): self._check_function(self.path.normcase) - if sys.platform == 'win32': - self.assertEqual(ntpath.normcase('\u03a9\u2126'), 'ωΩ') def test_path_isabs(self): self._check_function(self.path.isabs) diff --git a/Lib/test/test_numeric_tower.py b/Lib/test/test_numeric_tower.py index 9cd85e13634c2b..c54dedb8b793a0 100644 --- a/Lib/test/test_numeric_tower.py +++ b/Lib/test/test_numeric_tower.py @@ -14,27 +14,6 @@ _PyHASH_MODULUS = sys.hash_info.modulus _PyHASH_INF = sys.hash_info.inf - -class DummyIntegral(int): - """Dummy Integral class to test conversion of the Rational to float.""" - - def __mul__(self, other): - return DummyIntegral(super().__mul__(other)) - __rmul__ = __mul__ - - def __truediv__(self, other): - return NotImplemented - __rtruediv__ = __truediv__ - - @property - def numerator(self): - return DummyIntegral(self) - - @property - def denominator(self): - return DummyIntegral(1) - - class HashTest(unittest.TestCase): def check_equal_hash(self, x, y): # check both that x and y are equal and that their hashes are equal @@ -142,13 +121,6 @@ def test_fractions(self): self.assertEqual(hash(F(7*_PyHASH_MODULUS, 1)), 0) self.assertEqual(hash(F(-_PyHASH_MODULUS, 1)), 0) - # The numbers ABC doesn't enforce that the "true" division - # of integers produces a float. This tests that the - # Rational.__float__() method has required type conversions. - x = F(DummyIntegral(1), DummyIntegral(2), _normalize=False) - self.assertRaises(TypeError, lambda: x.numerator/x.denominator) - self.assertEqual(float(x), 0.5) - def test_hash_normalization(self): # Test for a bug encountered while changing long_hash. # diff --git a/Lib/test/test_opcache.py b/Lib/test/test_opcache.py index 5c032d59b13f16..61f337d70ea787 100644 --- a/Lib/test/test_opcache.py +++ b/Lib/test/test_opcache.py @@ -1,6 +1,5 @@ import unittest - class TestLoadAttrCache(unittest.TestCase): def test_descriptor_added_after_optimization(self): class Descriptor: @@ -22,346 +21,3 @@ def f(o): Descriptor.__set__ = lambda *args: None self.assertEqual(f(o), 2) - - def test_metaclass_descriptor_added_after_optimization(self): - class Descriptor: - pass - - class Metaclass(type): - attribute = Descriptor() - - class Class(metaclass=Metaclass): - attribute = True - - def __get__(self, instance, owner): - return False - - def __set__(self, instance, value): - return None - - def f(): - return Class.attribute - - for _ in range(1025): - self.assertTrue(f()) - - Descriptor.__get__ = __get__ - Descriptor.__set__ = __set__ - - for _ in range(1025): - self.assertFalse(f()) - - def test_metaclass_descriptor_shadows_class_attribute(self): - class Metaclass(type): - @property - def attribute(self): - return True - - class Class(metaclass=Metaclass): - attribute = False - - def f(): - return Class.attribute - - for _ in range(1025): - self.assertTrue(f()) - - def test_metaclass_set_descriptor_after_optimization(self): - class Metaclass(type): - pass - - class Class(metaclass=Metaclass): - attribute = True - - @property - def attribute(self): - return False - - def f(): - return Class.attribute - - for _ in range(1025): - self.assertTrue(f()) - - Metaclass.attribute = attribute - - for _ in range(1025): - self.assertFalse(f()) - - def test_metaclass_del_descriptor_after_optimization(self): - class Metaclass(type): - @property - def attribute(self): - return True - - class Class(metaclass=Metaclass): - attribute = False - - def f(): - return Class.attribute - - for _ in range(1025): - self.assertTrue(f()) - - del Metaclass.attribute - - for _ in range(1025): - self.assertFalse(f()) - - def test_type_descriptor_shadows_attribute_method(self): - class Class: - mro = None - - def f(): - return Class.mro - - for _ in range(1025): - self.assertIsNone(f()) - - def test_type_descriptor_shadows_attribute_member(self): - class Class: - __base__ = None - - def f(): - return Class.__base__ - - for _ in range(1025): - self.assertIs(f(), object) - - def test_type_descriptor_shadows_attribute_getset(self): - class Class: - __name__ = "Spam" - - def f(): - return Class.__name__ - - for _ in range(1025): - self.assertEqual(f(), "Class") - - def test_metaclass_getattribute(self): - class Metaclass(type): - def __getattribute__(self, name): - return True - - class Class(metaclass=Metaclass): - attribute = False - - def f(): - return Class.attribute - - for _ in range(1025): - self.assertTrue(f()) - - def test_metaclass_swap(self): - class OldMetaclass(type): - @property - def attribute(self): - return True - - class NewMetaclass(type): - @property - def attribute(self): - return False - - class Class(metaclass=OldMetaclass): - pass - - def f(): - return Class.attribute - - for _ in range(1025): - self.assertTrue(f()) - - Class.__class__ = NewMetaclass - - for _ in range(1025): - self.assertFalse(f()) - - -class TestLoadMethodCache(unittest.TestCase): - def test_descriptor_added_after_optimization(self): - class Descriptor: - pass - - class Class: - attribute = Descriptor() - - def __get__(self, instance, owner): - return lambda: False - - def __set__(self, instance, value): - return None - - def attribute(): - return True - - instance = Class() - instance.attribute = attribute - - def f(): - return instance.attribute() - - for _ in range(1025): - self.assertTrue(f()) - - Descriptor.__get__ = __get__ - Descriptor.__set__ = __set__ - - for _ in range(1025): - self.assertFalse(f()) - - def test_metaclass_descriptor_added_after_optimization(self): - class Descriptor: - pass - - class Metaclass(type): - attribute = Descriptor() - - class Class(metaclass=Metaclass): - def attribute(): - return True - - def __get__(self, instance, owner): - return lambda: False - - def __set__(self, instance, value): - return None - - def f(): - return Class.attribute() - - for _ in range(1025): - self.assertTrue(f()) - - Descriptor.__get__ = __get__ - Descriptor.__set__ = __set__ - - for _ in range(1025): - self.assertFalse(f()) - - def test_metaclass_descriptor_shadows_class_attribute(self): - class Metaclass(type): - @property - def attribute(self): - return lambda: True - - class Class(metaclass=Metaclass): - def attribute(): - return False - - def f(): - return Class.attribute() - - for _ in range(1025): - self.assertTrue(f()) - - def test_metaclass_set_descriptor_after_optimization(self): - class Metaclass(type): - pass - - class Class(metaclass=Metaclass): - def attribute(): - return True - - @property - def attribute(self): - return lambda: False - - def f(): - return Class.attribute() - - for _ in range(1025): - self.assertTrue(f()) - - Metaclass.attribute = attribute - - for _ in range(1025): - self.assertFalse(f()) - - def test_metaclass_del_descriptor_after_optimization(self): - class Metaclass(type): - @property - def attribute(self): - return lambda: True - - class Class(metaclass=Metaclass): - def attribute(): - return False - - def f(): - return Class.attribute() - - for _ in range(1025): - self.assertTrue(f()) - - del Metaclass.attribute - - for _ in range(1025): - self.assertFalse(f()) - - def test_type_descriptor_shadows_attribute_method(self): - class Class: - def mro(): - return ["Spam", "eggs"] - - def f(): - return Class.mro() - - for _ in range(1025): - self.assertEqual(f(), ["Spam", "eggs"]) - - def test_type_descriptor_shadows_attribute_member(self): - class Class: - def __base__(): - return "Spam" - - def f(): - return Class.__base__() - - for _ in range(1025): - self.assertNotEqual(f(), "Spam") - - def test_metaclass_getattribute(self): - class Metaclass(type): - def __getattribute__(self, name): - return lambda: True - - class Class(metaclass=Metaclass): - def attribute(): - return False - - def f(): - return Class.attribute() - - for _ in range(1025): - self.assertTrue(f()) - - def test_metaclass_swap(self): - class OldMetaclass(type): - @property - def attribute(self): - return lambda: True - - class NewMetaclass(type): - @property - def attribute(self): - return lambda: False - - class Class(metaclass=OldMetaclass): - pass - - def f(): - return Class.attribute() - - for _ in range(1025): - self.assertTrue(f()) - - Class.__class__ = NewMetaclass - - for _ in range(1025): - self.assertFalse(f()) - - -if __name__ == "__main__": - import unittest - unittest.main() diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py index 2dafb78ebe0ec2..009bb5aec35a4b 100644 --- a/Lib/test/test_os.py +++ b/Lib/test/test_os.py @@ -186,9 +186,6 @@ def test_access(self): @unittest.skipIf( support.is_emscripten, "Test is unstable under Emscripten." ) - @unittest.skipIf( - support.is_wasi, "WASI does not support dup." - ) def test_closerange(self): first = os.open(os_helper.TESTFN, os.O_CREAT|os.O_RDWR) # We must allocate two consecutive file descriptors, otherwise @@ -1591,10 +1588,7 @@ def test_makedir(self): 'dir5', 'dir6') os.makedirs(path) - @unittest.skipIf( - support.is_emscripten or support.is_wasi, - "Emscripten's/WASI's umask is a stub." - ) + @unittest.skipIf(support.is_emscripten, "Emscripten's umask is a stub.") def test_mode(self): with os_helper.temp_umask(0o002): base = os_helper.TESTFN @@ -1607,10 +1601,6 @@ def test_mode(self): self.assertEqual(os.stat(path).st_mode & 0o777, 0o555) self.assertEqual(os.stat(parent).st_mode & 0o777, 0o775) - @unittest.skipIf( - support.is_emscripten or support.is_wasi, - "Emscripten's/WASI's umask is a stub." - ) def test_exist_ok_existing_directory(self): path = os.path.join(os_helper.TESTFN, 'dir1') mode = 0o777 @@ -1625,10 +1615,6 @@ def test_exist_ok_existing_directory(self): # Issue #25583: A drive root could raise PermissionError on Windows os.makedirs(os.path.abspath('/'), exist_ok=True) - @unittest.skipIf( - support.is_emscripten or support.is_wasi, - "Emscripten's/WASI's umask is a stub." - ) def test_exist_ok_s_isgid_directory(self): path = os.path.join(os_helper.TESTFN, 'dir1') S_ISGID = stat.S_ISGID @@ -1678,7 +1664,7 @@ def tearDown(self): os.removedirs(path) -@os_helper.skip_unless_working_chmod +@unittest.skipUnless(hasattr(os, 'chown'), "Test needs chown") class ChownFileTests(unittest.TestCase): @classmethod @@ -3665,19 +3651,6 @@ def test_stty_match(self): raise self.assertEqual(expected, actual) - @unittest.skipUnless(sys.platform == 'win32', 'Windows specific test') - def test_windows_fd(self): - """Check if get_terminal_size() returns a meaningful value in Windows""" - try: - conout = open('conout$', 'w') - except OSError: - self.skipTest('failed to open conout$') - with conout: - size = os.get_terminal_size(conout.fileno()) - - self.assertGreaterEqual(size.columns, 0) - self.assertGreaterEqual(size.lines, 0) - @unittest.skipUnless(hasattr(os, 'memfd_create'), 'requires os.memfd_create') @support.requires_linux_version(3, 17) @@ -3805,6 +3778,7 @@ class Str(str): def test_oserror_filename(self): funcs = [ (self.filenames, os.chdir,), + (self.filenames, os.chmod, 0o777), (self.filenames, os.lstat,), (self.filenames, os.open, os.O_RDONLY), (self.filenames, os.rmdir,), @@ -3825,8 +3799,6 @@ def test_oserror_filename(self): (self.filenames, os.rename, "dst"), (self.filenames, os.replace, "dst"), )) - if os_helper.can_chmod(): - funcs.append((self.filenames, os.chmod, 0o777)) if hasattr(os, "chown"): funcs.append((self.filenames, os.chown, 0, 0)) if hasattr(os, "lchown"): @@ -4015,7 +3987,7 @@ class PathTConverterTests(unittest.TestCase): ('access', False, (os.F_OK,), None), ('chflags', False, (0,), None), ('lchflags', False, (0,), None), - ('open', False, (os.O_RDONLY,), getattr(os, 'close', None)), + ('open', False, (0,), getattr(os, 'close', None)), ] def test_path_t_converter(self): @@ -4387,7 +4359,6 @@ def test_fd(self): st = os.stat(entry.name, dir_fd=fd, follow_symlinks=False) self.assertEqual(entry.stat(follow_symlinks=False), st) - @unittest.skipIf(support.is_wasi, "WASI maps '' to cwd") def test_empty_path(self): self.assertRaises(FileNotFoundError, os.scandir, '') diff --git a/Lib/test/test_pathlib.py b/Lib/test/test_pathlib.py index f324177ff85573..642dfebdcd1cbe 100644 --- a/Lib/test/test_pathlib.py +++ b/Lib/test/test_pathlib.py @@ -136,10 +136,6 @@ def test_parse_parts(self): check(['a', '/b', 'c'], ('', '\\', ['\\', 'b', 'c'])) check(['Z:/a', '/b', 'c'], ('Z:', '\\', ['Z:\\', 'b', 'c'])) check(['//?/Z:/a', '/b', 'c'], ('\\\\?\\Z:', '\\', ['\\\\?\\Z:\\', 'b', 'c'])) - # Joining with the same drive => the first path is appended to if - # the second path is relative. - check(['c:/a/b', 'c:x/y'], ('c:', '\\', ['c:\\', 'a', 'b', 'x', 'y'])) - check(['c:/a/b', 'c:/x/y'], ('c:', '\\', ['c:\\', 'x', 'y'])) def test_splitroot(self): f = self.flavour.splitroot @@ -469,9 +465,6 @@ def test_parents_common(self): self.assertEqual(par[0], P('/a/b')) self.assertEqual(par[1], P('/a')) self.assertEqual(par[2], P('/')) - self.assertEqual(par[-1], P('/')) - self.assertEqual(par[-2], P('/a')) - self.assertEqual(par[-3], P('/a/b')) self.assertEqual(par[0:1], (P('/a/b'),)) self.assertEqual(par[:2], (P('/a/b'), P('/a'))) self.assertEqual(par[:-1], (P('/a/b'), P('/a'))) @@ -479,8 +472,6 @@ def test_parents_common(self): self.assertEqual(par[::2], (P('/a/b'), P('/'))) self.assertEqual(par[::-1], (P('/'), P('/a'), P('/a/b'))) self.assertEqual(list(par), [P('/a/b'), P('/a'), P('/')]) - with self.assertRaises(IndexError): - par[-4] with self.assertRaises(IndexError): par[3] @@ -1906,7 +1897,6 @@ def test_with(self): with p: pass - @os_helper.skip_unless_working_chmod def test_chmod(self): p = self.cls(BASE) / 'fileA' mode = p.stat().st_mode @@ -1921,7 +1911,6 @@ def test_chmod(self): # On Windows, os.chmod does not follow symlinks (issue #15411) @only_posix - @os_helper.skip_unless_working_chmod def test_chmod_follow_symlinks_true(self): p = self.cls(BASE) / 'linkA' q = p.resolve() @@ -1937,7 +1926,6 @@ def test_chmod_follow_symlinks_true(self): # XXX also need a test for lchmod. - @os_helper.skip_unless_working_chmod def test_stat(self): p = self.cls(BASE) / 'fileA' st = p.stat() @@ -2298,12 +2286,10 @@ def test_is_file(self): self.assertIs((P / 'fileA\udfff').is_file(), False) self.assertIs((P / 'fileA\x00').is_file(), False) + @only_posix def test_is_mount(self): P = self.cls(BASE) - if os.name == 'nt': - R = self.cls('c:\\') - else: - R = self.cls('/') + R = self.cls('/') # TODO: Work out Windows. self.assertFalse((P / 'fileA').is_mount()) self.assertFalse((P / 'dirA').is_mount()) self.assertFalse((P / 'non-existing').is_mount()) @@ -2311,7 +2297,8 @@ def test_is_mount(self): self.assertTrue(R.is_mount()) if os_helper.can_symlink(): self.assertFalse((P / 'linkA').is_mount()) - self.assertIs((R / '\udfff').is_mount(), False) + self.assertIs(self.cls('/\udfff').is_mount(), False) + self.assertIs(self.cls('/\x00').is_mount(), False) def test_is_symlink(self): P = self.cls(BASE) @@ -2366,9 +2353,6 @@ def test_is_socket_false(self): @unittest.skipIf( is_emscripten, "Unix sockets are not implemented on Emscripten." ) - @unittest.skipIf( - is_wasi, "Cannot create socket on WASI." - ) def test_is_socket_true(self): P = self.cls(BASE, 'mysock') sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) @@ -2483,204 +2467,6 @@ def test_complex_symlinks_relative(self): def test_complex_symlinks_relative_dot_dot(self): self._check_complex_symlinks(os.path.join('dirA', '..')) -class WalkTests(unittest.TestCase): - - def setUp(self): - self.addCleanup(os_helper.rmtree, os_helper.TESTFN) - - # Build: - # TESTFN/ - # TEST1/ a file kid and two directory kids - # tmp1 - # SUB1/ a file kid and a directory kid - # tmp2 - # SUB11/ no kids - # SUB2/ a file kid and a dirsymlink kid - # tmp3 - # SUB21/ not readable - # tmp5 - # link/ a symlink to TEST2 - # broken_link - # broken_link2 - # broken_link3 - # TEST2/ - # tmp4 a lone file - self.walk_path = pathlib.Path(os_helper.TESTFN, "TEST1") - self.sub1_path = self.walk_path / "SUB1" - self.sub11_path = self.sub1_path / "SUB11" - self.sub2_path = self.walk_path / "SUB2" - sub21_path= self.sub2_path / "SUB21" - tmp1_path = self.walk_path / "tmp1" - tmp2_path = self.sub1_path / "tmp2" - tmp3_path = self.sub2_path / "tmp3" - tmp5_path = sub21_path / "tmp3" - self.link_path = self.sub2_path / "link" - t2_path = pathlib.Path(os_helper.TESTFN, "TEST2") - tmp4_path = pathlib.Path(os_helper.TESTFN, "TEST2", "tmp4") - broken_link_path = self.sub2_path / "broken_link" - broken_link2_path = self.sub2_path / "broken_link2" - broken_link3_path = self.sub2_path / "broken_link3" - - os.makedirs(self.sub11_path) - os.makedirs(self.sub2_path) - os.makedirs(sub21_path) - os.makedirs(t2_path) - - for path in tmp1_path, tmp2_path, tmp3_path, tmp4_path, tmp5_path: - with open(path, "x", encoding='utf-8') as f: - f.write(f"I'm {path} and proud of it. Blame test_pathlib.\n") - - if os_helper.can_symlink(): - os.symlink(os.path.abspath(t2_path), self.link_path) - os.symlink('broken', broken_link_path, True) - os.symlink(pathlib.Path('tmp3', 'broken'), broken_link2_path, True) - os.symlink(pathlib.Path('SUB21', 'tmp5'), broken_link3_path, True) - self.sub2_tree = (self.sub2_path, ["SUB21"], - ["broken_link", "broken_link2", "broken_link3", - "link", "tmp3"]) - else: - self.sub2_tree = (self.sub2_path, ["SUB21"], ["tmp3"]) - - if not is_emscripten: - # Emscripten fails with inaccessible directories. - os.chmod(sub21_path, 0) - try: - os.listdir(sub21_path) - except PermissionError: - self.addCleanup(os.chmod, sub21_path, stat.S_IRWXU) - else: - os.chmod(sub21_path, stat.S_IRWXU) - os.unlink(tmp5_path) - os.rmdir(sub21_path) - del self.sub2_tree[1][:1] - - def test_walk_topdown(self): - all = list(self.walk_path.walk()) - - self.assertEqual(len(all), 4) - # We can't know which order SUB1 and SUB2 will appear in. - # Not flipped: TESTFN, SUB1, SUB11, SUB2 - # flipped: TESTFN, SUB2, SUB1, SUB11 - flipped = all[0][1][0] != "SUB1" - all[0][1].sort() - all[3 - 2 * flipped][-1].sort() - all[3 - 2 * flipped][1].sort() - self.assertEqual(all[0], (self.walk_path, ["SUB1", "SUB2"], ["tmp1"])) - self.assertEqual(all[1 + flipped], (self.sub1_path, ["SUB11"], ["tmp2"])) - self.assertEqual(all[2 + flipped], (self.sub11_path, [], [])) - self.assertEqual(all[3 - 2 * flipped], self.sub2_tree) - - def test_walk_prune(self, walk_path=None): - if walk_path is None: - walk_path = self.walk_path - # Prune the search. - all = [] - for root, dirs, files in walk_path.walk(): - all.append((root, dirs, files)) - if 'SUB1' in dirs: - # Note that this also mutates the dirs we appended to all! - dirs.remove('SUB1') - - self.assertEqual(len(all), 2) - self.assertEqual(all[0], (self.walk_path, ["SUB2"], ["tmp1"])) - - all[1][-1].sort() - all[1][1].sort() - self.assertEqual(all[1], self.sub2_tree) - - def test_file_like_path(self): - self.test_walk_prune(FakePath(self.walk_path).__fspath__()) - - def test_walk_bottom_up(self): - all = list(self.walk_path.walk( top_down=False)) - - self.assertEqual(len(all), 4, all) - # We can't know which order SUB1 and SUB2 will appear in. - # Not flipped: SUB11, SUB1, SUB2, TESTFN - # flipped: SUB2, SUB11, SUB1, TESTFN - flipped = all[3][1][0] != "SUB1" - all[3][1].sort() - all[2 - 2 * flipped][-1].sort() - all[2 - 2 * flipped][1].sort() - self.assertEqual(all[3], - (self.walk_path, ["SUB1", "SUB2"], ["tmp1"])) - self.assertEqual(all[flipped], - (self.sub11_path, [], [])) - self.assertEqual(all[flipped + 1], - (self.sub1_path, ["SUB11"], ["tmp2"])) - self.assertEqual(all[2 - 2 * flipped], - self.sub2_tree) - - @os_helper.skip_unless_symlink - def test_walk_follow_symlinks(self): - walk_it = self.walk_path.walk(follow_symlinks=True) - for root, dirs, files in walk_it: - if root == self.link_path: - self.assertEqual(dirs, []) - self.assertEqual(files, ["tmp4"]) - break - else: - self.fail("Didn't follow symlink with follow_symlinks=True") - - @os_helper.skip_unless_symlink - def test_walk_symlink_location(self): - # Tests whether symlinks end up in filenames or dirnames depending - # on the `follow_symlinks` argument. - walk_it = self.walk_path.walk(follow_symlinks=False) - for root, dirs, files in walk_it: - if root == self.sub2_path: - self.assertIn("link", files) - break - else: - self.fail("symlink not found") - - walk_it = self.walk_path.walk(follow_symlinks=True) - for root, dirs, files in walk_it: - if root == self.sub2_path: - self.assertIn("link", dirs) - break - - def test_walk_bad_dir(self): - errors = [] - walk_it = self.walk_path.walk(on_error=errors.append) - root, dirs, files = next(walk_it) - self.assertEqual(errors, []) - dir1 = 'SUB1' - path1 = root / dir1 - path1new = (root / dir1).with_suffix(".new") - path1.rename(path1new) - try: - roots = [r for r, _, _ in walk_it] - self.assertTrue(errors) - self.assertNotIn(path1, roots) - self.assertNotIn(path1new, roots) - for dir2 in dirs: - if dir2 != dir1: - self.assertIn(root / dir2, roots) - finally: - path1new.rename(path1) - - def test_walk_many_open_files(self): - depth = 30 - base = pathlib.Path(os_helper.TESTFN, 'deep') - path = pathlib.Path(base, *(['d']*depth)) - path.mkdir(parents=True) - - iters = [base.walk(top_down=False) for _ in range(100)] - for i in range(depth + 1): - expected = (path, ['d'] if i else [], []) - for it in iters: - self.assertEqual(next(it), expected) - path = path.parent - - iters = [base.walk(top_down=True) for _ in range(100)] - path = base - for i in range(depth + 1): - expected = (path, ['d'] if i < depth else [], []) - for it in iters: - self.assertEqual(next(it), expected) - path = path / 'd' - class PathTest(_BasePathTest, unittest.TestCase): cls = pathlib.Path diff --git a/Lib/test/test_patma.py b/Lib/test/test_patma.py index 0ed54079c99b30..57d3b1ec701ca4 100644 --- a/Lib/test/test_patma.py +++ b/Lib/test/test_patma.py @@ -2654,20 +2654,6 @@ def get(key, default=None): self.assertEqual(y, 'bar') - def test_patma_249(self): - class C: - __attr = "eggs" # mangled to _C__attr - _Outer__attr = "bacon" - class Outer: - def f(self, x): - match x: - # looks up __attr, not _C__attr or _Outer__attr - case C(__attr=y): - return y - c = C() - setattr(c, "__attr", "spam") # setattr is needed because we're in a class scope - self.assertEqual(Outer().f(c), "spam") - class TestSyntaxErrors(unittest.TestCase): @@ -3165,27 +3151,6 @@ def f(command): # 0 self.assertListEqual(self._trace(f, "go x"), [1, 2, 3]) self.assertListEqual(self._trace(f, "spam"), [1, 2, 3]) - def test_parser_deeply_nested_patterns(self): - # Deeply nested patterns can cause exponential backtracking when parsing. - # See gh-93671 for more information. - - levels = 100 - - patterns = [ - "A" + "(" * levels + ")" * levels, - "{1:" * levels + "1" + "}" * levels, - "[" * levels + "1" + "]" * levels, - ] - - for pattern in patterns: - with self.subTest(pattern): - code = inspect.cleandoc(""" - match None: - case {}: - pass - """.format(pattern)) - compile(code, "<string>", "exec") - if __name__ == "__main__": """ diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py index 55c3283e26b1e9..0141b739c25440 100644 --- a/Lib/test/test_pdb.py +++ b/Lib/test/test_pdb.py @@ -1363,117 +1363,6 @@ def test_pdb_issue_43318(): 4 """ -def test_pdb_issue_gh_91742(): - """See GH-91742 - - >>> def test_function(): - ... __author__ = "pi" - ... __version__ = "3.14" - ... - ... def about(): - ... '''About''' - ... print(f"Author: {__author__!r}", - ... f"Version: {__version__!r}", - ... sep=" ") - ... - ... import pdb; pdb.Pdb(nosigint=True, readrc=False).set_trace() - ... about() - - - >>> reset_Breakpoint() - >>> with PdbTestInput([ # doctest: +NORMALIZE_WHITESPACE - ... 'step', - ... 'next', - ... 'next', - ... 'jump 5', - ... 'continue' - ... ]): - ... test_function() - > <doctest test.test_pdb.test_pdb_issue_gh_91742[0]>(12)test_function() - -> about() - (Pdb) step - --Call-- - > <doctest test.test_pdb.test_pdb_issue_gh_91742[0]>(5)about() - -> def about(): - (Pdb) next - > <doctest test.test_pdb.test_pdb_issue_gh_91742[0]>(7)about() - -> print(f"Author: {__author__!r}", - (Pdb) next - > <doctest test.test_pdb.test_pdb_issue_gh_91742[0]>(8)about() - -> f"Version: {__version__!r}", - (Pdb) jump 5 - > <doctest test.test_pdb.test_pdb_issue_gh_91742[0]>(5)about() - -> def about(): - (Pdb) continue - Author: 'pi' Version: '3.14' - """ - -def test_pdb_issue_gh_94215(): - """See GH-94215 - - Check that frame_setlineno() does not leak references. - - >>> def test_function(): - ... def func(): - ... def inner(v): pass - ... inner( - ... 42 - ... ) - ... - ... import pdb; pdb.Pdb(nosigint=True, readrc=False).set_trace() - ... func() - - >>> reset_Breakpoint() - >>> with PdbTestInput([ # doctest: +NORMALIZE_WHITESPACE - ... 'step', - ... 'next', - ... 'next', - ... 'jump 3', - ... 'next', - ... 'next', - ... 'jump 3', - ... 'next', - ... 'next', - ... 'jump 3', - ... 'continue' - ... ]): - ... test_function() - > <doctest test.test_pdb.test_pdb_issue_gh_94215[0]>(9)test_function() - -> func() - (Pdb) step - --Call-- - > <doctest test.test_pdb.test_pdb_issue_gh_94215[0]>(2)func() - -> def func(): - (Pdb) next - > <doctest test.test_pdb.test_pdb_issue_gh_94215[0]>(3)func() - -> def inner(v): pass - (Pdb) next - > <doctest test.test_pdb.test_pdb_issue_gh_94215[0]>(4)func() - -> inner( - (Pdb) jump 3 - > <doctest test.test_pdb.test_pdb_issue_gh_94215[0]>(3)func() - -> def inner(v): pass - (Pdb) next - > <doctest test.test_pdb.test_pdb_issue_gh_94215[0]>(4)func() - -> inner( - (Pdb) next - > <doctest test.test_pdb.test_pdb_issue_gh_94215[0]>(5)func() - -> 42 - (Pdb) jump 3 - > <doctest test.test_pdb.test_pdb_issue_gh_94215[0]>(3)func() - -> def inner(v): pass - (Pdb) next - > <doctest test.test_pdb.test_pdb_issue_gh_94215[0]>(4)func() - -> inner( - (Pdb) next - > <doctest test.test_pdb.test_pdb_issue_gh_94215[0]>(5)func() - -> 42 - (Pdb) jump 3 - > <doctest test.test_pdb.test_pdb_issue_gh_94215[0]>(3)func() - -> def inner(v): pass - (Pdb) continue - """ - @support.requires_subprocess() class PdbTestCase(unittest.TestCase): @@ -1482,7 +1371,7 @@ def tearDown(self): @unittest.skipIf(sys.flags.safe_path, 'PYTHONSAFEPATH changes default sys.path') - def _run_pdb(self, pdb_args, commands, expected_returncode=0): + def _run_pdb(self, pdb_args, commands): self.addCleanup(os_helper.rmtree, '__pycache__') cmd = [sys.executable, '-m', 'pdb'] + pdb_args with subprocess.Popen( @@ -1495,20 +1384,15 @@ def _run_pdb(self, pdb_args, commands, expected_returncode=0): stdout, stderr = proc.communicate(str.encode(commands)) stdout = stdout and bytes.decode(stdout) stderr = stderr and bytes.decode(stderr) - self.assertEqual( - proc.returncode, - expected_returncode, - f"Unexpected return code\nstdout: {stdout}\nstderr: {stderr}" - ) return stdout, stderr - def run_pdb_script(self, script, commands, expected_returncode=0): + def run_pdb_script(self, script, commands): """Run 'script' lines with pdb and the pdb 'commands'.""" filename = 'main.py' with open(filename, 'w') as f: f.write(textwrap.dedent(script)) self.addCleanup(os_helper.unlink, filename) - return self._run_pdb([filename], commands, expected_returncode) + return self._run_pdb([filename], commands) def run_pdb_module(self, script, commands): """Runs the script code as part of a module""" @@ -1714,9 +1598,7 @@ def test_issue16180(self): script = "def f: pass\n" commands = '' expected = "SyntaxError:" - stdout, stderr = self.run_pdb_script( - script, commands, expected_returncode=1 - ) + stdout, stderr = self.run_pdb_script(script, commands) self.assertIn(expected, stdout, '\n\nExpected:\n{}\nGot:\n{}\n' 'Fail to handle a syntax error in the debuggee.' @@ -1879,9 +1761,7 @@ def test_module_without_a_main(self): with open(init_file, 'w'): pass self.addCleanup(os_helper.rmtree, module_name) - stdout, stderr = self._run_pdb( - ['-m', module_name], "", expected_returncode=1 - ) + stdout, stderr = self._run_pdb(['-m', module_name], "") self.assertIn("ImportError: No module named t_main.__main__", stdout.splitlines()) @@ -1894,9 +1774,7 @@ def test_package_without_a_main(self): with open(modpath + '/__init__.py', 'w'): pass self.addCleanup(os_helper.rmtree, pkg_name) - stdout, stderr = self._run_pdb( - ['-m', modpath.replace('/', '.')], "", expected_returncode=1 - ) + stdout, stderr = self._run_pdb(['-m', modpath.replace('/', '.')], "") self.assertIn( "'t_pkg.t_main' is a package and cannot be directly executed", stdout) @@ -2085,24 +1963,6 @@ def test_issue42383(self): expected = '(Pdb) The correct file was executed' self.assertEqual(stdout.split('\n')[6].rstrip('\r'), expected) - def test_gh_94215_crash(self): - script = """\ - def func(): - def inner(v): pass - inner( - 42 - ) - func() - """ - commands = textwrap.dedent(""" - break func - continue - next - next - jump 2 - """) - stdout, stderr = self.run_pdb_script(script, commands) - self.assertFalse(stderr) class ChecklineTests(unittest.TestCase): def setUp(self): diff --git a/Lib/test/test_peepholer.py b/Lib/test/test_peepholer.py index ab45e3c52a039b..dd993851bee922 100644 --- a/Lib/test/test_peepholer.py +++ b/Lib/test/test_peepholer.py @@ -1,10 +1,9 @@ import dis from itertools import combinations, product -import sys import textwrap import unittest -from test.support.bytecode_helper import BytecodeTestCase, CfgOptimizationTestCase +from test.support.bytecode_helper import BytecodeTestCase def compile_pattern_with_fast_locals(pattern): @@ -77,8 +76,9 @@ def unot(x): if not x == 2: del x self.assertNotInBytecode(unot, 'UNARY_NOT') - self.assertNotInBytecode(unot, 'POP_JUMP_IF_FALSE') - self.assertInBytecode(unot, 'POP_JUMP_IF_TRUE') + self.assertNotInBytecode(unot, 'POP_JUMP_FORWARD_IF_FALSE') + self.assertNotInBytecode(unot, 'POP_JUMP_BACKWARD_IF_FALSE') + self.assertInBytecode(unot, 'POP_JUMP_FORWARD_IF_TRUE') self.check_lnotab(unot) def test_elim_inversion_of_is_or_in(self): @@ -406,7 +406,7 @@ def f(a, b, c): self.check_lnotab(f) self.assertNotInBytecode(f, 'JUMP_IF_FALSE_OR_POP') self.assertInBytecode(f, 'JUMP_IF_TRUE_OR_POP') - self.assertInBytecode(f, 'POP_JUMP_IF_FALSE') + self.assertInBytecode(f, 'POP_JUMP_FORWARD_IF_FALSE') # JUMP_IF_TRUE_OR_POP to JUMP_IF_FALSE_OR_POP --> POP_JUMP_IF_TRUE to non-jump def f(a, b, c): return ((a or b) @@ -415,7 +415,7 @@ def f(a, b, c): self.check_lnotab(f) self.assertNotInBytecode(f, 'JUMP_IF_TRUE_OR_POP') self.assertInBytecode(f, 'JUMP_IF_FALSE_OR_POP') - self.assertInBytecode(f, 'POP_JUMP_IF_TRUE') + self.assertInBytecode(f, 'POP_JUMP_FORWARD_IF_TRUE') def test_elim_jump_to_uncond_jump4(self): def f(): @@ -682,260 +682,5 @@ def test_bpo_45773_pop_jump_if_false(self): compile("while True or not spam: pass", "<test>", "exec") -class TestMarkingVariablesAsUnKnown(BytecodeTestCase): - - def setUp(self): - self.addCleanup(sys.settrace, sys.gettrace()) - sys.settrace(None) - - def test_load_fast_known_simple(self): - def f(): - x = 1 - y = x + x - self.assertInBytecode(f, 'LOAD_FAST') - - def test_load_fast_unknown_simple(self): - def f(): - if condition(): - x = 1 - print(x) - self.assertInBytecode(f, 'LOAD_FAST_CHECK') - self.assertNotInBytecode(f, 'LOAD_FAST') - - def test_load_fast_unknown_because_del(self): - def f(): - x = 1 - del x - print(x) - self.assertInBytecode(f, 'LOAD_FAST_CHECK') - self.assertNotInBytecode(f, 'LOAD_FAST') - - def test_load_fast_known_because_parameter(self): - def f1(x): - print(x) - self.assertInBytecode(f1, 'LOAD_FAST') - self.assertNotInBytecode(f1, 'LOAD_FAST_CHECK') - - def f2(*, x): - print(x) - self.assertInBytecode(f2, 'LOAD_FAST') - self.assertNotInBytecode(f2, 'LOAD_FAST_CHECK') - - def f3(*args): - print(args) - self.assertInBytecode(f3, 'LOAD_FAST') - self.assertNotInBytecode(f3, 'LOAD_FAST_CHECK') - - def f4(**kwargs): - print(kwargs) - self.assertInBytecode(f4, 'LOAD_FAST') - self.assertNotInBytecode(f4, 'LOAD_FAST_CHECK') - - def f5(x=0): - print(x) - self.assertInBytecode(f5, 'LOAD_FAST') - self.assertNotInBytecode(f5, 'LOAD_FAST_CHECK') - - def test_load_fast_known_because_already_loaded(self): - def f(): - if condition(): - x = 1 - print(x) - print(x) - self.assertInBytecode(f, 'LOAD_FAST_CHECK') - self.assertInBytecode(f, 'LOAD_FAST') - - def test_load_fast_known_multiple_branches(self): - def f(): - if condition(): - x = 1 - else: - x = 2 - print(x) - self.assertInBytecode(f, 'LOAD_FAST') - self.assertNotInBytecode(f, 'LOAD_FAST_CHECK') - - def test_load_fast_unknown_after_error(self): - def f(): - try: - res = 1 / 0 - except ZeroDivisionError: - pass - return res - # LOAD_FAST (known) still occurs in the no-exception branch. - # Assert that it doesn't occur in the LOAD_FAST_CHECK branch. - self.assertInBytecode(f, 'LOAD_FAST_CHECK') - - def test_load_fast_unknown_after_error_2(self): - def f(): - try: - 1 / 0 - except: - print(a, b, c, d, e, f, g) - a = b = c = d = e = f = g = 1 - self.assertInBytecode(f, 'LOAD_FAST_CHECK') - self.assertNotInBytecode(f, 'LOAD_FAST') - - def test_setting_lineno_adds_check(self): - code = textwrap.dedent("""\ - def f(): - x = 2 - L = 3 - L = 4 - for i in range(55): - x + 6 - del x - L = 8 - L = 9 - L = 10 - """) - ns = {} - exec(code, ns) - f = ns['f'] - self.assertInBytecode(f, "LOAD_FAST") - def trace(frame, event, arg): - if event == 'line' and frame.f_lineno == 9: - frame.f_lineno = 2 - sys.settrace(None) - return None - return trace - sys.settrace(trace) - f() - self.assertNotInBytecode(f, "LOAD_FAST") - - def make_function_with_no_checks(self): - code = textwrap.dedent("""\ - def f(): - x = 2 - L = 3 - L = 4 - L = 5 - if not L: - x + 7 - y = 2 - """) - ns = {} - exec(code, ns) - f = ns['f'] - self.assertInBytecode(f, "LOAD_FAST") - self.assertNotInBytecode(f, "LOAD_FAST_CHECK") - return f - - def test_deleting_local_adds_check(self): - f = self.make_function_with_no_checks() - def trace(frame, event, arg): - if event == 'line' and frame.f_lineno == 4: - del frame.f_locals["x"] - sys.settrace(None) - return None - return trace - sys.settrace(trace) - f() - self.assertNotInBytecode(f, "LOAD_FAST") - self.assertInBytecode(f, "LOAD_FAST_CHECK") - - def test_modifying_local_does_not_add_check(self): - f = self.make_function_with_no_checks() - def trace(frame, event, arg): - if event == 'line' and frame.f_lineno == 4: - frame.f_locals["x"] = 42 - sys.settrace(None) - return None - return trace - sys.settrace(trace) - f() - self.assertInBytecode(f, "LOAD_FAST") - self.assertNotInBytecode(f, "LOAD_FAST_CHECK") - - def test_initializing_local_does_not_add_check(self): - f = self.make_function_with_no_checks() - def trace(frame, event, arg): - if event == 'line' and frame.f_lineno == 4: - frame.f_locals["y"] = 42 - sys.settrace(None) - return None - return trace - sys.settrace(trace) - f() - self.assertInBytecode(f, "LOAD_FAST") - self.assertNotInBytecode(f, "LOAD_FAST_CHECK") - - -class DirectiCfgOptimizerTests(CfgOptimizationTestCase): - - def cfg_optimization_test(self, insts, expected_insts, - consts=None, expected_consts=None): - if expected_consts is None: - expected_consts = consts - opt_insts, opt_consts = self.get_optimized(insts, consts) - self.compareInstructions(opt_insts, expected_insts) - self.assertEqual(opt_consts, expected_consts) - - def test_conditional_jump_forward_non_const_condition(self): - insts = [ - ('LOAD_NAME', 1, 11), - ('POP_JUMP_IF_TRUE', lbl := self.Label(), 12), - ('LOAD_CONST', 2, 13), - lbl, - ('LOAD_CONST', 3, 14), - ] - expected = [ - ('LOAD_NAME', '1', 11), - ('POP_JUMP_IF_TRUE', lbl := self.Label(), 12), - ('LOAD_CONST', '2', 13), - lbl, - ('LOAD_CONST', '3', 14) - ] - self.cfg_optimization_test(insts, expected, consts=list(range(5))) - - def test_conditional_jump_forward_const_condition(self): - # The unreachable branch of the jump is removed, the jump - # becomes redundant and is replaced by a NOP (for the lineno) - - insts = [ - ('LOAD_CONST', 3, 11), - ('POP_JUMP_IF_TRUE', lbl := self.Label(), 12), - ('LOAD_CONST', 2, 13), - lbl, - ('LOAD_CONST', 3, 14), - ] - expected = [ - ('NOP', None, 11), - ('NOP', None, 12), - ('LOAD_CONST', '3', 14) - ] - self.cfg_optimization_test(insts, expected, consts=list(range(5))) - - def test_conditional_jump_backward_non_const_condition(self): - insts = [ - lbl1 := self.Label(), - ('LOAD_NAME', 1, 11), - ('POP_JUMP_IF_TRUE', lbl1, 12), - ('LOAD_CONST', 2, 13), - ] - expected = [ - lbl := self.Label(), - ('LOAD_NAME', '1', 11), - ('POP_JUMP_IF_TRUE', lbl, 12), - ('LOAD_CONST', '2', 13) - ] - self.cfg_optimization_test(insts, expected, consts=list(range(5))) - - def test_conditional_jump_backward_const_condition(self): - # The unreachable branch of the jump is removed - insts = [ - lbl1 := self.Label(), - ('LOAD_CONST', 1, 11), - ('POP_JUMP_IF_TRUE', lbl1, 12), - ('LOAD_CONST', 2, 13), - ] - expected = [ - lbl := self.Label(), - ('NOP', None, 11), - ('JUMP', lbl, 12) - ] - self.cfg_optimization_test(insts, expected, consts=list(range(5))) - - if __name__ == "__main__": unittest.main() diff --git a/Lib/test/test_perf_profiler.py b/Lib/test/test_perf_profiler.py deleted file mode 100644 index 2b977d78d39324..00000000000000 --- a/Lib/test/test_perf_profiler.py +++ /dev/null @@ -1,348 +0,0 @@ -import unittest -import subprocess -import sys -import sysconfig -import os -import pathlib -from test import support -from test.support.script_helper import ( - make_script, - assert_python_failure, - assert_python_ok, -) -from test.support.os_helper import temp_dir - - -if not support.has_subprocess_support: - raise unittest.SkipTest("test module requires subprocess") - - -def supports_trampoline_profiling(): - perf_trampoline = sysconfig.get_config_var("PY_HAVE_PERF_TRAMPOLINE") - if not perf_trampoline: - return False - return int(perf_trampoline) == 1 - - -if not supports_trampoline_profiling(): - raise unittest.SkipTest("perf trampoline profiling not supported") - - -class TestPerfTrampoline(unittest.TestCase): - def setUp(self): - super().setUp() - self.perf_files = set(pathlib.Path("/tmp/").glob("perf-*.map")) - - def tearDown(self) -> None: - super().tearDown() - files_to_delete = ( - set(pathlib.Path("/tmp/").glob("perf-*.map")) - self.perf_files - ) - for file in files_to_delete: - file.unlink() - - def test_trampoline_works(self): - code = """if 1: - def foo(): - pass - - def bar(): - foo() - - def baz(): - bar() - - baz() - """ - with temp_dir() as script_dir: - script = make_script(script_dir, "perftest", code) - with subprocess.Popen( - [sys.executable, "-Xperf", script], - text=True, - stderr=subprocess.PIPE, - stdout=subprocess.PIPE, - ) as process: - stdout, stderr = process.communicate() - - self.assertEqual(stderr, "") - self.assertEqual(stdout, "") - - perf_file = pathlib.Path(f"/tmp/perf-{process.pid}.map") - self.assertTrue(perf_file.exists()) - perf_file_contents = perf_file.read_text() - self.assertIn(f"py::foo:{script}", perf_file_contents) - self.assertIn(f"py::bar:{script}", perf_file_contents) - self.assertIn(f"py::baz:{script}", perf_file_contents) - - def test_trampoline_works_with_forks(self): - code = """if 1: - import os, sys - - def foo_fork(): - pass - - def bar_fork(): - foo_fork() - - def baz_fork(): - bar_fork() - - def foo(): - pid = os.fork() - if pid == 0: - print(os.getpid()) - baz_fork() - else: - _, status = os.waitpid(-1, 0) - sys.exit(status) - - def bar(): - foo() - - def baz(): - bar() - - baz() - """ - with temp_dir() as script_dir: - script = make_script(script_dir, "perftest", code) - with subprocess.Popen( - [sys.executable, "-Xperf", script], - text=True, - stderr=subprocess.PIPE, - stdout=subprocess.PIPE, - ) as process: - stdout, stderr = process.communicate() - - self.assertEqual(process.returncode, 0) - self.assertEqual(stderr, "") - child_pid = int(stdout.strip()) - perf_file = pathlib.Path(f"/tmp/perf-{process.pid}.map") - perf_child_file = pathlib.Path(f"/tmp/perf-{child_pid}.map") - self.assertTrue(perf_file.exists()) - self.assertTrue(perf_child_file.exists()) - - perf_file_contents = perf_file.read_text() - self.assertIn(f"py::foo:{script}", perf_file_contents) - self.assertIn(f"py::bar:{script}", perf_file_contents) - self.assertIn(f"py::baz:{script}", perf_file_contents) - - child_perf_file_contents = perf_child_file.read_text() - self.assertIn(f"py::foo_fork:{script}", child_perf_file_contents) - self.assertIn(f"py::bar_fork:{script}", child_perf_file_contents) - self.assertIn(f"py::baz_fork:{script}", child_perf_file_contents) - - def test_sys_api(self): - code = """if 1: - import sys - def foo(): - pass - - def spam(): - pass - - def bar(): - sys.deactivate_stack_trampoline() - foo() - sys.activate_stack_trampoline("perf") - spam() - - def baz(): - bar() - - sys.activate_stack_trampoline("perf") - baz() - """ - with temp_dir() as script_dir: - script = make_script(script_dir, "perftest", code) - with subprocess.Popen( - [sys.executable, script], - text=True, - stderr=subprocess.PIPE, - stdout=subprocess.PIPE, - ) as process: - stdout, stderr = process.communicate() - - self.assertEqual(stderr, "") - self.assertEqual(stdout, "") - - perf_file = pathlib.Path(f"/tmp/perf-{process.pid}.map") - self.assertTrue(perf_file.exists()) - perf_file_contents = perf_file.read_text() - self.assertNotIn(f"py::foo:{script}", perf_file_contents) - self.assertIn(f"py::spam:{script}", perf_file_contents) - self.assertIn(f"py::bar:{script}", perf_file_contents) - self.assertIn(f"py::baz:{script}", perf_file_contents) - - def test_sys_api_with_existing_trampoline(self): - code = """if 1: - import sys - sys.activate_stack_trampoline("perf") - sys.activate_stack_trampoline("perf") - """ - assert_python_ok("-c", code) - - def test_sys_api_with_invalid_trampoline(self): - code = """if 1: - import sys - sys.activate_stack_trampoline("invalid") - """ - rc, out, err = assert_python_failure("-c", code) - self.assertIn("invalid backend: invalid", err.decode()) - - def test_sys_api_get_status(self): - code = """if 1: - import sys - sys.activate_stack_trampoline("perf") - assert sys.is_stack_trampoline_active() is True - sys.deactivate_stack_trampoline() - assert sys.is_stack_trampoline_active() is False - """ - assert_python_ok("-c", code) - - -def is_unwinding_reliable(): - cflags = sysconfig.get_config_var("PY_CORE_CFLAGS") - if not cflags: - return False - return "no-omit-frame-pointer" in cflags - - -def perf_command_works(): - try: - cmd = ["perf", "--help"] - stdout = subprocess.check_output(cmd, text=True) - except (subprocess.SubprocessError, OSError): - return False - - # perf version does not return a version number on Fedora. Use presence - # of "perf.data" in help as indicator that it's perf from Linux tools. - if "perf.data" not in stdout: - return False - - # Check that we can run a simple perf run - with temp_dir() as script_dir: - try: - output_file = script_dir + "/perf_output.perf" - cmd = ( - "perf", - "record", - "-g", - "--call-graph=fp", - "-o", - output_file, - "--", - sys.executable, - "-c", - 'print("hello")', - ) - stdout = subprocess.check_output( - cmd, cwd=script_dir, text=True, stderr=subprocess.STDOUT - ) - except (subprocess.SubprocessError, OSError): - return False - - if "hello" not in stdout: - return False - - return True - - -def run_perf(cwd, *args, **env_vars): - if env_vars: - env = os.environ.copy() - env.update(env_vars) - else: - env = None - output_file = cwd + "/perf_output.perf" - base_cmd = ("perf", "record", "-g", "--call-graph=fp", "-o", output_file, "--") - proc = subprocess.run( - base_cmd + args, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE, - env=env, - ) - if proc.returncode: - print(proc.stderr) - raise ValueError(f"Perf failed with return code {proc.returncode}") - - base_cmd = ("perf", "script") - proc = subprocess.run( - ("perf", "script", "-i", output_file), - stdout=subprocess.PIPE, - stderr=subprocess.PIPE, - env=env, - check=True, - ) - return proc.stdout.decode("utf-8", "replace"), proc.stderr.decode( - "utf-8", "replace" - ) - - -@unittest.skipUnless(perf_command_works(), "perf command doesn't work") -@unittest.skipUnless(is_unwinding_reliable(), "Unwinding is unreliable") -@support.skip_if_sanitizer(address=True, memory=True, ub=True) -class TestPerfProfiler(unittest.TestCase): - def setUp(self): - super().setUp() - self.perf_files = set(pathlib.Path("/tmp/").glob("perf-*.map")) - - def tearDown(self) -> None: - super().tearDown() - files_to_delete = ( - set(pathlib.Path("/tmp/").glob("perf-*.map")) - self.perf_files - ) - for file in files_to_delete: - file.unlink() - - def test_python_calls_appear_in_the_stack_if_perf_activated(self): - with temp_dir() as script_dir: - code = """if 1: - def foo(n): - x = 0 - for i in range(n): - x += i - - def bar(n): - foo(n) - - def baz(n): - bar(n) - - baz(10000000) - """ - script = make_script(script_dir, "perftest", code) - stdout, stderr = run_perf(script_dir, sys.executable, "-Xperf", script) - self.assertEqual(stderr, "") - - self.assertIn(f"py::foo:{script}", stdout) - self.assertIn(f"py::bar:{script}", stdout) - self.assertIn(f"py::baz:{script}", stdout) - - def test_python_calls_do_not_appear_in_the_stack_if_perf_activated(self): - with temp_dir() as script_dir: - code = """if 1: - def foo(n): - x = 0 - for i in range(n): - x += i - - def bar(n): - foo(n) - - def baz(n): - bar(n) - - baz(10000000) - """ - script = make_script(script_dir, "perftest", code) - stdout, stderr = run_perf(script_dir, sys.executable, script) - self.assertEqual(stderr, "") - - self.assertNotIn(f"py::foo:{script}", stdout) - self.assertNotIn(f"py::bar:{script}", stdout) - self.assertNotIn(f"py::baz:{script}", stdout) - - -if __name__ == "__main__": - unittest.main() diff --git a/Lib/test/test_pickle.py b/Lib/test/test_pickle.py index 44fdca7a6b1688..057af21e71fe47 100644 --- a/Lib/test/test_pickle.py +++ b/Lib/test/test_pickle.py @@ -154,29 +154,6 @@ def persistent_id(obj): return obj check(PersPickler) - @support.cpython_only - def test_custom_pickler_dispatch_table_memleak(self): - # See https://github.com/python/cpython/issues/89988 - - class Pickler(self.pickler): - def __init__(self, *args, **kwargs): - self.dispatch_table = table - super().__init__(*args, **kwargs) - - class DispatchTable: - pass - - table = DispatchTable() - pickler = Pickler(io.BytesIO()) - self.assertIs(pickler.dispatch_table, table) - table_ref = weakref.ref(table) - self.assertIsNotNone(table_ref()) - del pickler - del table - support.gc_collect() - self.assertIsNone(table_ref()) - - @support.cpython_only def test_unpickler_reference_cycle(self): def check(Unpickler): diff --git a/Lib/test/test_platform.py b/Lib/test/test_platform.py index 9c03a89fd57d07..9b2cd201f3c2fe 100644 --- a/Lib/test/test_platform.py +++ b/Lib/test/test_platform.py @@ -229,14 +229,6 @@ def test_uname(self): self.assertEqual(res[-1], res.processor) self.assertEqual(len(res), 6) - @unittest.skipUnless(sys.platform.startswith('win'), "windows only test") - def test_uname_win32_without_wmi(self): - def raises_oserror(*a): - raise OSError() - - with support.swap_attr(platform, '_wmi_query', raises_oserror): - self.test_uname() - def test_uname_cast_to_tuple(self): res = platform.uname() expected = ( @@ -297,27 +289,20 @@ def test_uname_win32_ARCHITEW6432(self): # on 64 bit Windows: if PROCESSOR_ARCHITEW6432 exists we should be # using it, per # http://blogs.msdn.com/david.wang/archive/2006/03/26/HOWTO-Detect-Process-Bitness.aspx - - # We also need to suppress WMI checks, as those are reliable and - # overrule the environment variables - def raises_oserror(*a): - raise OSError() - - with support.swap_attr(platform, '_wmi_query', raises_oserror): + try: with os_helper.EnvironmentVarGuard() as environ: - try: - if 'PROCESSOR_ARCHITEW6432' in environ: - del environ['PROCESSOR_ARCHITEW6432'] - environ['PROCESSOR_ARCHITECTURE'] = 'foo' - platform._uname_cache = None - system, node, release, version, machine, processor = platform.uname() - self.assertEqual(machine, 'foo') - environ['PROCESSOR_ARCHITEW6432'] = 'bar' - platform._uname_cache = None - system, node, release, version, machine, processor = platform.uname() - self.assertEqual(machine, 'bar') - finally: - platform._uname_cache = None + if 'PROCESSOR_ARCHITEW6432' in environ: + del environ['PROCESSOR_ARCHITEW6432'] + environ['PROCESSOR_ARCHITECTURE'] = 'foo' + platform._uname_cache = None + system, node, release, version, machine, processor = platform.uname() + self.assertEqual(machine, 'foo') + environ['PROCESSOR_ARCHITEW6432'] = 'bar' + platform._uname_cache = None + system, node, release, version, machine, processor = platform.uname() + self.assertEqual(machine, 'bar') + finally: + platform._uname_cache = None def test_java_ver(self): res = platform.java_ver() diff --git a/Lib/test/test_posix.py b/Lib/test/test_posix.py index ae25ef55885dd6..28e5e90297e242 100644 --- a/Lib/test/test_posix.py +++ b/Lib/test/test_posix.py @@ -31,8 +31,8 @@ os_helper.TESTFN + '-dummy-symlink') requires_32b = unittest.skipUnless( - # Emscripten/WASI have 32 bits pointers, but support 64 bits syscall args. - sys.maxsize < 2**32 and not (support.is_emscripten or support.is_wasi), + # Emscripten has 32 bits pointers, but support 64 bits syscall args. + sys.maxsize < 2**32 and not support.is_emscripten, 'test is only meaningful on 32-bit builds' ) @@ -547,7 +547,6 @@ def test_readv_overflow_32bits(self): @unittest.skipUnless(hasattr(posix, 'dup'), 'test needs posix.dup()') - @unittest.skipIf(support.is_wasi, "WASI does not have dup()") def test_dup(self): fp = open(os_helper.TESTFN) try: @@ -565,7 +564,6 @@ def test_confstr(self): @unittest.skipUnless(hasattr(posix, 'dup2'), 'test needs posix.dup2()') - @unittest.skipIf(support.is_wasi, "WASI does not have dup2()") def test_dup2(self): fp1 = open(os_helper.TESTFN) fp2 = open(os_helper.TESTFN) @@ -786,8 +784,7 @@ def check_stat(uid, gid): self.assertRaises(TypeError, chown_func, first_param, uid, t(gid)) check_stat(uid, gid) - @os_helper.skip_unless_working_chmod - @unittest.skipIf(support.is_emscripten, "getgid() is a stub") + @unittest.skipUnless(hasattr(posix, 'chown'), "test needs os.chown()") def test_chown(self): # raise an OSError if the file does not exist os.unlink(os_helper.TESTFN) @@ -797,9 +794,7 @@ def test_chown(self): os_helper.create_empty_file(os_helper.TESTFN) self._test_all_chown_common(posix.chown, os_helper.TESTFN, posix.stat) - @os_helper.skip_unless_working_chmod @unittest.skipUnless(hasattr(posix, 'fchown'), "test needs os.fchown()") - @unittest.skipIf(support.is_emscripten, "getgid() is a stub") def test_fchown(self): os.unlink(os_helper.TESTFN) @@ -812,7 +807,6 @@ def test_fchown(self): finally: test_file.close() - @os_helper.skip_unless_working_chmod @unittest.skipUnless(hasattr(posix, 'lchown'), "test needs os.lchown()") def test_lchown(self): os.unlink(os_helper.TESTFN) @@ -1218,7 +1212,6 @@ def test_sched_setaffinity(self): # bpo-47205: does not raise OSError on FreeBSD self.assertRaises(OSError, posix.sched_setaffinity, -1, mask) - @unittest.skipIf(support.is_wasi, "No dynamic linking on WASI") def test_rtld_constants(self): # check presence of major RTLD_* constants posix.RTLD_LAZY @@ -1358,7 +1351,6 @@ def test_chmod_dir_fd(self): @unittest.skipUnless(hasattr(os, 'chown') and (os.chown in os.supports_dir_fd), "test needs dir_fd support in os.chown()") - @unittest.skipIf(support.is_emscripten, "getgid() is a stub") def test_chown_dir_fd(self): with self.prepare_file() as (dir_fd, name, fullname): posix.chown(name, os.getuid(), os.getgid(), dir_fd=dir_fd) @@ -1414,10 +1406,6 @@ def test_utime_dir_fd(self): # whoops! using both together not supported on this platform. pass - @unittest.skipIf( - support.is_wasi, - "WASI: symlink following on path_link is not supported" - ) @unittest.skipUnless( hasattr(os, "link") and os.link in os.supports_dir_fd, "test needs dir_fd support in os.link()" diff --git a/Lib/test/test_posixpath.py b/Lib/test/test_posixpath.py index c644f881e460fe..5fc4205beb125f 100644 --- a/Lib/test/test_posixpath.py +++ b/Lib/test/test_posixpath.py @@ -193,7 +193,8 @@ def test_ismount_non_existent(self): self.assertIs(posixpath.ismount('/\x00'), False) self.assertIs(posixpath.ismount(b'/\x00'), False) - @os_helper.skip_unless_symlink + @unittest.skipUnless(os_helper.can_symlink(), + "Test requires symlink support") def test_ismount_symlinks(self): # Symlinks are never mountpoints. try: @@ -386,7 +387,8 @@ def test_realpath_pardir(self): self.assertEqual(realpath(b'../..'), dirname(dirname(os.getcwdb()))) self.assertEqual(realpath(b'/'.join([b'..'] * 100)), b'/') - @os_helper.skip_unless_symlink + @unittest.skipUnless(hasattr(os, "symlink"), + "Missing symlink implementation") @skip_if_ABSTFN_contains_backslash def test_realpath_basic(self): # Basic operation. @@ -396,7 +398,8 @@ def test_realpath_basic(self): finally: os_helper.unlink(ABSTFN) - @os_helper.skip_unless_symlink + @unittest.skipUnless(hasattr(os, "symlink"), + "Missing symlink implementation") @skip_if_ABSTFN_contains_backslash def test_realpath_strict(self): # Bug #43757: raise FileNotFoundError in strict mode if we encounter @@ -408,7 +411,8 @@ def test_realpath_strict(self): finally: os_helper.unlink(ABSTFN) - @os_helper.skip_unless_symlink + @unittest.skipUnless(hasattr(os, "symlink"), + "Missing symlink implementation") @skip_if_ABSTFN_contains_backslash def test_realpath_relative(self): try: @@ -417,7 +421,8 @@ def test_realpath_relative(self): finally: os_helper.unlink(ABSTFN) - @os_helper.skip_unless_symlink + @unittest.skipUnless(hasattr(os, "symlink"), + "Missing symlink implementation") @skip_if_ABSTFN_contains_backslash def test_realpath_symlink_loops(self): # Bug #930024, return the path unchanged if we get into an infinite @@ -458,7 +463,8 @@ def test_realpath_symlink_loops(self): os_helper.unlink(ABSTFN+"c") os_helper.unlink(ABSTFN+"a") - @os_helper.skip_unless_symlink + @unittest.skipUnless(hasattr(os, "symlink"), + "Missing symlink implementation") @skip_if_ABSTFN_contains_backslash def test_realpath_symlink_loops_strict(self): # Bug #43757, raise OSError if we get into an infinite symlink loop in @@ -499,7 +505,8 @@ def test_realpath_symlink_loops_strict(self): os_helper.unlink(ABSTFN+"c") os_helper.unlink(ABSTFN+"a") - @os_helper.skip_unless_symlink + @unittest.skipUnless(hasattr(os, "symlink"), + "Missing symlink implementation") @skip_if_ABSTFN_contains_backslash def test_realpath_repeated_indirect_symlinks(self): # Issue #6975. @@ -513,7 +520,8 @@ def test_realpath_repeated_indirect_symlinks(self): os_helper.unlink(ABSTFN + '/link') safe_rmdir(ABSTFN) - @os_helper.skip_unless_symlink + @unittest.skipUnless(hasattr(os, "symlink"), + "Missing symlink implementation") @skip_if_ABSTFN_contains_backslash def test_realpath_deep_recursion(self): depth = 10 @@ -532,7 +540,8 @@ def test_realpath_deep_recursion(self): os_helper.unlink(ABSTFN + '/%d' % i) safe_rmdir(ABSTFN) - @os_helper.skip_unless_symlink + @unittest.skipUnless(hasattr(os, "symlink"), + "Missing symlink implementation") @skip_if_ABSTFN_contains_backslash def test_realpath_resolve_parents(self): # We also need to resolve any symlinks in the parents of a relative @@ -551,7 +560,8 @@ def test_realpath_resolve_parents(self): safe_rmdir(ABSTFN + "/y") safe_rmdir(ABSTFN) - @os_helper.skip_unless_symlink + @unittest.skipUnless(hasattr(os, "symlink"), + "Missing symlink implementation") @skip_if_ABSTFN_contains_backslash def test_realpath_resolve_before_normalizing(self): # Bug #990669: Symbolic links should be resolved before we @@ -579,7 +589,8 @@ def test_realpath_resolve_before_normalizing(self): safe_rmdir(ABSTFN + "/k") safe_rmdir(ABSTFN) - @os_helper.skip_unless_symlink + @unittest.skipUnless(hasattr(os, "symlink"), + "Missing symlink implementation") @skip_if_ABSTFN_contains_backslash def test_realpath_resolve_first(self): # Bug #1213894: The first component of the path, if not absolute, diff --git a/Lib/test/test_property.py b/Lib/test/test_property.py index d07b8632aa8722..d91ad1c191275e 100644 --- a/Lib/test/test_property.py +++ b/Lib/test/test_property.py @@ -219,9 +219,6 @@ def test_property_set_name_incorrect_args(self): class PropertySub(property): """This is a subclass of property""" -class PropertySubWoDoc(property): - pass - class PropertySubSlots(property): """This is a subclass of property that defines __slots__""" __slots__ = () @@ -240,38 +237,6 @@ def spam(self): else: raise Exception("AttributeError not raised") - @unittest.skipIf(sys.flags.optimize >= 2, - "Docstrings are omitted with -O2 and above") - def test_issue41287(self): - - self.assertEqual(PropertySub.__doc__, "This is a subclass of property", - "Docstring of `property` subclass is ignored") - - doc = PropertySub(None, None, None, "issue 41287 is fixed").__doc__ - self.assertEqual(doc, "issue 41287 is fixed", - "Subclasses of `property` ignores `doc` constructor argument") - - def getter(x): - """Getter docstring""" - - def getter_wo_doc(x): - pass - - for ps in property, PropertySub, PropertySubWoDoc: - doc = ps(getter, None, None, "issue 41287 is fixed").__doc__ - self.assertEqual(doc, "issue 41287 is fixed", - "Getter overrides explicit property docstring (%s)" % ps.__name__) - - doc = ps(getter, None, None, None).__doc__ - self.assertEqual(doc, "Getter docstring", "Getter docstring is not picked-up (%s)" % ps.__name__) - - doc = ps(getter_wo_doc, None, None, "issue 41287 is fixed").__doc__ - self.assertEqual(doc, "issue 41287 is fixed", - "Getter overrides explicit property docstring (%s)" % ps.__name__) - - doc = ps(getter_wo_doc, None, None, None).__doc__ - self.assertIsNone(doc, "Property class doc appears in instance __doc__ (%s)" % ps.__name__) - @unittest.skipIf(sys.flags.optimize >= 2, "Docstrings are omitted with -O2 and above") def test_docstring_copy(self): @@ -284,66 +249,6 @@ def spam(self): Foo.spam.__doc__, "spam wrapped in property subclass") - @unittest.skipIf(sys.flags.optimize >= 2, - "Docstrings are omitted with -O2 and above") - def test_docstring_copy2(self): - """ - Property tries to provide the best docstring it finds for its instances. - If a user-provided docstring is available, it is preserved on copies. - If no docstring is available during property creation, the property - will utilize the docstring from the getter if available. - """ - def getter1(self): - return 1 - def getter2(self): - """doc 2""" - return 2 - def getter3(self): - """doc 3""" - return 3 - - # Case-1: user-provided doc is preserved in copies - # of property with undocumented getter - p = property(getter1, None, None, "doc-A") - - p2 = p.getter(getter2) - self.assertEqual(p.__doc__, "doc-A") - self.assertEqual(p2.__doc__, "doc-A") - - # Case-2: user-provided doc is preserved in copies - # of property with documented getter - p = property(getter2, None, None, "doc-A") - - p2 = p.getter(getter3) - self.assertEqual(p.__doc__, "doc-A") - self.assertEqual(p2.__doc__, "doc-A") - - # Case-3: with no user-provided doc new getter doc - # takes precendence - p = property(getter2, None, None, None) - - p2 = p.getter(getter3) - self.assertEqual(p.__doc__, "doc 2") - self.assertEqual(p2.__doc__, "doc 3") - - # Case-4: A user-provided doc is assigned after property construction - # with documented getter. The doc IS NOT preserved. - # It's an odd behaviour, but it's a strange enough - # use case with no easy solution. - p = property(getter2, None, None, None) - p.__doc__ = "user" - p2 = p.getter(getter3) - self.assertEqual(p.__doc__, "user") - self.assertEqual(p2.__doc__, "doc 3") - - # Case-5: A user-provided doc is assigned after property construction - # with UNdocumented getter. The doc IS preserved. - p = property(getter1, None, None, None) - p.__doc__ = "user" - p2 = p.getter(getter2) - self.assertEqual(p.__doc__, "user") - self.assertEqual(p2.__doc__, "user") - @unittest.skipIf(sys.flags.optimize >= 2, "Docstrings are omitted with -O2 and above") def test_property_setter_copies_getter_docstring(self): diff --git a/Lib/test/test_pwd.py b/Lib/test/test_pwd.py index aa090b464a7222..c789326425be32 100644 --- a/Lib/test/test_pwd.py +++ b/Lib/test/test_pwd.py @@ -59,8 +59,6 @@ def test_errors(self): self.assertRaises(TypeError, pwd.getpwnam) self.assertRaises(TypeError, pwd.getpwnam, 42) self.assertRaises(TypeError, pwd.getpwall, 42) - # embedded null character - self.assertRaisesRegex(ValueError, 'null', pwd.getpwnam, 'a\x00b') # try to get some errors bynames = {} diff --git a/Lib/test/test_py_compile.py b/Lib/test/test_py_compile.py index a4a52b180dbb55..794d6436b61ab0 100644 --- a/Lib/test/test_py_compile.py +++ b/Lib/test/test_py_compile.py @@ -115,10 +115,10 @@ def test_relative_path(self): self.assertTrue(os.path.exists(self.pyc_path)) self.assertFalse(os.path.exists(self.cache_path)) - @os_helper.skip_if_dac_override + @unittest.skipIf(hasattr(os, 'geteuid') and os.geteuid() == 0, + 'non-root user required') @unittest.skipIf(os.name == 'nt', 'cannot control directory permissions on Windows') - @os_helper.skip_unless_working_chmod def test_exceptions_propagate(self): # Make sure that exceptions raised thanks to issues with writing # bytecode. diff --git a/Lib/test/test_pyclbr.py b/Lib/test/test_pyclbr.py index 23453e340159db..ad7b31aef1ddd1 100644 --- a/Lib/test/test_pyclbr.py +++ b/Lib/test/test_pyclbr.py @@ -9,7 +9,6 @@ import pyclbr from unittest import TestCase, main as unittest_main from test.test_importlib import util as test_importlib_util -import warnings StaticMethodType = type(staticmethod(lambda: None)) @@ -219,17 +218,13 @@ def test_others(self): # These were once some of the longest modules. cm('random', ignore=('Random',)) # from _random import Random as CoreGenerator - with warnings.catch_warnings(): - warnings.simplefilter('ignore', DeprecationWarning) - cm('cgi', ignore=('log',)) # set with = in module + cm('cgi', ignore=('log',)) # set with = in module cm('pickle', ignore=('partial', 'PickleBuffer')) - with warnings.catch_warnings(): - warnings.simplefilter('ignore', DeprecationWarning) - cm('sre_parse', ignore=('dump', 'groups', 'pos')) # from sre_constants import *; property + cm('sre_parse', ignore=('dump', 'groups', 'pos')) # from sre_constants import *; property cm( 'pdb', # pyclbr does not handle elegantly `typing` or properties - ignore=('Union', '_ModuleTarget', '_ScriptTarget'), + ignore=('Union', 'ModuleTarget', 'ScriptTarget'), ) cm('pydoc', ignore=('input', 'output',)) # properties diff --git a/Lib/test/test_pydoc.py b/Lib/test/test_pydoc.py index 8ab3289dd74006..ac181effe49bb6 100644 --- a/Lib/test/test_pydoc.py +++ b/Lib/test/test_pydoc.py @@ -54,58 +54,58 @@ class nonascii: A B C - +\x20\x20\x20\x20 class A(builtins.object) | Hello and goodbye - | + |\x20\x20 | Methods defined here: - | + |\x20\x20 | __init__() | Wow, I have no function! - | + |\x20\x20 | ---------------------------------------------------------------------- | Data descriptors defined here: - | + |\x20\x20 | __dict__%s - | + |\x20\x20 | __weakref__%s - +\x20\x20\x20\x20 class B(builtins.object) | Data descriptors defined here: - | + |\x20\x20 | __dict__%s - | + |\x20\x20 | __weakref__%s - | + |\x20\x20 | ---------------------------------------------------------------------- | Data and other attributes defined here: - | + |\x20\x20 | NO_MEANING = 'eggs' - | + |\x20\x20 | __annotations__ = {'NO_MEANING': <class 'str'>} - +\x20\x20\x20\x20 class C(builtins.object) | Methods defined here: - | + |\x20\x20 | get_answer(self) | Return say_no() - | + |\x20\x20 | is_it_true(self) | Return self.get_answer() - | + |\x20\x20 | say_no(self) - | + |\x20\x20 | ---------------------------------------------------------------------- | Class methods defined here: - | + |\x20\x20 | __class_getitem__(item) from builtins.type - | + |\x20\x20 | ---------------------------------------------------------------------- | Data descriptors defined here: - | + |\x20\x20 | __dict__ | dictionary for instance variables (if defined) - | + |\x20\x20 | __weakref__ | list of weak references to the object (if defined) @@ -115,7 +115,7 @@ class C(builtins.object) hunger lack of Python war - +\x20\x20\x20\x20 nodoc_func() DATA @@ -235,16 +235,16 @@ class C(builtins.object) class DA(builtins.object) | Data descriptors defined here: - | + |\x20\x20 | __dict__%s - | + |\x20\x20 | __weakref__%s - | + |\x20\x20 | ham - | + |\x20\x20 | ---------------------------------------------------------------------- | Data and other attributes inherited from Meta: - | + |\x20\x20 | ham = 'spam' """.strip() @@ -253,7 +253,7 @@ class DA(builtins.object) class Class(builtins.object) | Data and other attributes inherited from Meta: - | + |\x20\x20 | LIFE = 42 """.strip() @@ -262,7 +262,7 @@ class Class(builtins.object) class Class1(builtins.object) | Data and other attributes inherited from Meta1: - | + |\x20\x20 | one = 1 """.strip() @@ -274,19 +274,19 @@ class Class2(Class1) | Class2 | Class1 | builtins.object - | + |\x20\x20 | Data and other attributes inherited from Meta1: - | + |\x20\x20 | one = 1 - | + |\x20\x20 | ---------------------------------------------------------------------- | Data and other attributes inherited from Meta3: - | + |\x20\x20 | three = 3 - | + |\x20\x20 | ---------------------------------------------------------------------- | Data and other attributes inherited from Meta2: - | + |\x20\x20 | two = 2 """.strip() @@ -295,7 +295,7 @@ class Class2(Class1) class C(builtins.object) | Data and other attributes defined here: - | + |\x20\x20 | here = 'present!' """.strip() @@ -785,33 +785,33 @@ class B(A) | B | A | builtins.object - | + |\x20\x20 | Methods defined here: - | + |\x20\x20 | b_size = a_size(self) - | + |\x20\x20 | itemconfig = itemconfigure(self, tagOrId, cnf=None, **kw) - | + |\x20\x20 | itemconfigure(self, tagOrId, cnf=None, **kw) | Configure resources of an item TAGORID. - | + |\x20\x20 | ---------------------------------------------------------------------- | Methods inherited from A: - | + |\x20\x20 | a_size(self) | Return size - | + |\x20\x20 | lift = tkraise(self, aboveThis=None) - | + |\x20\x20 | tkraise(self, aboveThis=None) | Raise this widget in the stacking order. - | + |\x20\x20 | ---------------------------------------------------------------------- | Data descriptors inherited from A: - | + |\x20\x20 | __dict__ | dictionary for instance variables (if defined) - | + |\x20\x20 | __weakref__ | list of weak references to the object (if defined) ''' % __name__) @@ -933,8 +933,6 @@ def test_apropos_with_unreadable_dir(self): self.assertEqual(out.getvalue(), '') self.assertEqual(err.getvalue(), '') - @os_helper.skip_unless_working_chmod - @unittest.skipIf(is_emscripten, "cannot remove x bit") def test_apropos_empty_doc(self): pkgdir = os.path.join(TESTFN, 'walkpkg') os.mkdir(pkgdir) @@ -1180,7 +1178,7 @@ def sm(x, y): """) self.assertIn(""" | Static methods defined here: - | + |\x20\x20 | sm(x, y) | A static method """, pydoc.plain(pydoc.render_doc(X))) @@ -1201,7 +1199,7 @@ def cm(cls, x): """) self.assertIn(""" | Class methods defined here: - | + |\x20\x20 | cm(x) from builtins.type | A class method """, pydoc.plain(pydoc.render_doc(X))) diff --git a/Lib/test/test_pyexpat.py b/Lib/test/test_pyexpat.py index 863c1194672c1c..6f0441b66d9b88 100644 --- a/Lib/test/test_pyexpat.py +++ b/Lib/test/test_pyexpat.py @@ -508,7 +508,7 @@ def test(self): class sf1296433Test(unittest.TestCase): def test_parse_only_xml_data(self): - # https://bugs.python.org/issue1296433 + # http://python.org/sf/1296433 # xml = "<?xml version='1.0' encoding='iso8859'?><s>%s</s>" % ('a' * 1025) # this one doesn't crash diff --git a/Lib/test/test_queue.py b/Lib/test/test_queue.py index 33113a72e6b6a9..e3080376a9de5f 100644 --- a/Lib/test/test_queue.py +++ b/Lib/test/test_queue.py @@ -10,8 +10,6 @@ from test.support import import_helper from test.support import threading_helper -# queue module depends on threading primitives -threading_helper.requires_working_threading(module=True) py_queue = import_helper.import_fresh_module('queue', blocked=['_queue']) c_queue = import_helper.import_fresh_module('queue', fresh=['_queue']) @@ -89,6 +87,7 @@ def do_exceptional_blocking_test(self,block_func, block_args, trigger_func, self.fail("trigger thread ended but event never set") +@threading_helper.requires_working_threading() class BaseQueueTestMixin(BlockingTestMixin): def setUp(self): self.cum = 0 @@ -292,6 +291,7 @@ class CPriorityQueueTest(PriorityQueueTest, unittest.TestCase): class FailingQueueException(Exception): pass +@threading_helper.requires_working_threading() class FailingQueueTest(BlockingTestMixin): def setUp(self): @@ -467,6 +467,7 @@ def consume_timeout(self, q, results, sentinel): return results.append(val) + @threading_helper.requires_working_threading() def run_threads(self, n_threads, q, inputs, feed_func, consume_func): results = [] sentinel = None diff --git a/Lib/test/test_random.py b/Lib/test/test_random.py index 1e825c3572d20a..fcf17a949c2a62 100644 --- a/Lib/test/test_random.py +++ b/Lib/test/test_random.py @@ -1045,9 +1045,6 @@ def test_constant(self): (g.lognormvariate, (0.0, 0.0), 1.0), (g.lognormvariate, (-float('inf'), 0.0), 0.0), (g.normalvariate, (10.0, 0.0), 10.0), - (g.binomialvariate, (0, 0.5), 0), - (g.binomialvariate, (10, 0.0), 0), - (g.binomialvariate, (10, 1.0), 10), (g.paretovariate, (float('inf'),), 1.0), (g.weibullvariate, (10.0, float('inf')), 10.0), (g.weibullvariate, (0.0, 10.0), 0.0), @@ -1055,59 +1052,6 @@ def test_constant(self): for i in range(N): self.assertEqual(variate(*args), expected) - def test_binomialvariate(self): - B = random.binomialvariate - - # Cover all the code paths - with self.assertRaises(ValueError): - B(n=-1) # Negative n - with self.assertRaises(ValueError): - B(n=1, p=-0.5) # Negative p - with self.assertRaises(ValueError): - B(n=1, p=1.5) # p > 1.0 - self.assertEqual(B(10, 0.0), 0) # p == 0.0 - self.assertEqual(B(10, 1.0), 10) # p == 1.0 - self.assertTrue(B(1, 0.3) in {0, 1}) # n == 1 fast path - self.assertTrue(B(1, 0.9) in {0, 1}) # n == 1 fast path - self.assertTrue(B(1, 0.0) in {0}) # n == 1 fast path - self.assertTrue(B(1, 1.0) in {1}) # n == 1 fast path - - # BG method p <= 0.5 and n*p=1.25 - self.assertTrue(B(5, 0.25) in set(range(6))) - - # BG method p >= 0.5 and n*(1-p)=1.25 - self.assertTrue(B(5, 0.75) in set(range(6))) - - # BTRS method p <= 0.5 and n*p=25 - self.assertTrue(B(100, 0.25) in set(range(101))) - - # BTRS method p > 0.5 and n*(1-p)=25 - self.assertTrue(B(100, 0.75) in set(range(101))) - - # Statistical tests chosen such that they are - # exceedingly unlikely to ever fail for correct code. - - # BG code path - # Expected dist: [31641, 42188, 21094, 4688, 391] - c = Counter(B(4, 0.25) for i in range(100_000)) - self.assertTrue(29_641 <= c[0] <= 33_641, c) - self.assertTrue(40_188 <= c[1] <= 44_188) - self.assertTrue(19_094 <= c[2] <= 23_094) - self.assertTrue(2_688 <= c[3] <= 6_688) - self.assertEqual(set(c), {0, 1, 2, 3, 4}) - - # BTRS code path - # Sum of c[20], c[21], c[22], c[23], c[24] expected to be 36,214 - c = Counter(B(100, 0.25) for i in range(100_000)) - self.assertTrue(34_214 <= c[20]+c[21]+c[22]+c[23]+c[24] <= 38_214) - self.assertTrue(set(c) <= set(range(101))) - self.assertEqual(c.total(), 100_000) - - # Demonstrate the BTRS works for huge values of n - self.assertTrue(19_000_000 <= B(100_000_000, 0.2) <= 21_000_000) - self.assertTrue(89_000_000 <= B(100_000_000, 0.9) <= 91_000_000) - - def test_von_mises_range(self): # Issue 17149: von mises variates were not consistently in the # range [0, 2*PI]. diff --git a/Lib/test/test_re.py b/Lib/test/test_re.py index 3f0f84ea8cee6f..3752d734dbdef2 100644 --- a/Lib/test/test_re.py +++ b/Lib/test/test_re.py @@ -1,7 +1,6 @@ from test.support import (gc_collect, bigmemtest, _2G, cpython_only, captured_stdout, - check_disallow_instantiation, is_emscripten, is_wasi, - SHORT_TIMEOUT) + check_disallow_instantiation, is_emscripten, is_wasi) import locale import re import string @@ -12,14 +11,6 @@ from re import Scanner from weakref import proxy -# some platforms lack working multiprocessing -try: - import _multiprocessing -except ImportError: - multiprocessing = None -else: - import multiprocessing - # Misc tests from Tim Peters' re.doc # WARNING: Don't change details in these tests if you don't know @@ -1774,9 +1765,12 @@ def test_dealloc(self): long_overflow = 2**128 self.assertRaises(TypeError, re.finditer, "a", {}) with self.assertRaises(OverflowError): - _sre.compile("abc", 0, [long_overflow], 0, {}, ()) + _sre.compile("abc", 0, [long_overflow], 0, {}, (), 0) with self.assertRaises(TypeError): - _sre.compile({}, 0, [], 0, [], []) + _sre.compile({}, 0, [], 0, [], [], 0) + with self.assertRaises(RuntimeError): + # invalid repeat_count -1 + _sre.compile("abc", 0, [1], 0, {}, (), -1) def test_search_dot_unicode(self): self.assertTrue(re.search("123.*-", '123abc-')) @@ -2416,26 +2410,6 @@ def test_template_function_and_flag_is_deprecated(self): self.assertTrue(template_re1.match('ahoy')) self.assertFalse(template_re1.match('nope')) - @unittest.skipIf(multiprocessing is None, 'test requires multiprocessing') - def test_regression_gh94675(self): - pattern = re.compile(r'(?<=[({}])(((//[^\n]*)?[\n])([\000-\040])*)*' - r'((/[^/\[\n]*(([^\n]|(\[\n]*(]*)*\]))' - r'[^/\[]*)*/))((((//[^\n]*)?[\n])' - r'([\000-\040]|(/\*[^*]*\*+' - r'([^/*]\*+)*/))*)+(?=[^\000-\040);\]}]))') - input_js = '''a(function() { - /////////////////////////////////////////////////////////////////// - });''' - p = multiprocessing.Process(target=pattern.sub, args=('', input_js)) - p.start() - p.join(SHORT_TIMEOUT) - try: - self.assertFalse(p.is_alive(), 'pattern.sub() timed out') - finally: - if p.is_alive(): - p.terminate() - p.join() - def get_debug_out(pat): with captured_stdout() as out: @@ -2535,6 +2509,27 @@ def test_possesive_repeat(self): 14. SUCCESS ''') + def test_repeat_index(self): + self.assertEqual(get_debug_out(r'(?:ab)*?(?:cd)*'), '''\ +MIN_REPEAT 0 MAXREPEAT + LITERAL 97 + LITERAL 98 +MAX_REPEAT 0 MAXREPEAT + LITERAL 99 + LITERAL 100 + + 0. INFO 4 0b0 0 MAXREPEAT (to 5) + 5: REPEAT 8 0 MAXREPEAT 0 (to 14) +10. LITERAL 0x61 ('a') +12. LITERAL 0x62 ('b') +14: MIN_UNTIL +15. REPEAT 8 0 MAXREPEAT 1 (to 24) +20. LITERAL 0x63 ('c') +22. LITERAL 0x64 ('d') +24: MAX_UNTIL +25. SUCCESS +''') + class PatternReprTests(unittest.TestCase): def check(self, pattern, expected): diff --git a/Lib/test/test_regrtest.py b/Lib/test/test_regrtest.py index a36d18488a5ef7..4f632bb2f39543 100644 --- a/Lib/test/test_regrtest.py +++ b/Lib/test/test_regrtest.py @@ -15,6 +15,7 @@ import sysconfig import tempfile import textwrap +import time import unittest from test import libregrtest from test import support @@ -1357,32 +1358,6 @@ def test_cleanup(self): for name in names: self.assertFalse(os.path.exists(name), name) - @unittest.skipIf(support.is_wasi, - 'checking temp files is not implemented on WASI') - def test_leak_tmp_file(self): - code = textwrap.dedent(r""" - import os.path - import tempfile - import unittest - - class FileTests(unittest.TestCase): - def test_leak_tmp_file(self): - filename = os.path.join(tempfile.gettempdir(), 'mytmpfile') - with open(filename, "wb") as fp: - fp.write(b'content') - """) - testnames = [self.create_test(code=code) for _ in range(3)] - - output = self.run_tests("--fail-env-changed", "-v", "-j2", *testnames, exitcode=3) - self.check_executed_tests(output, testnames, - env_changed=testnames, - fail_env_changed=True, - randomize=True) - for testname in testnames: - self.assertIn(f"Warning -- {testname} leaked temporary " - f"files (1): mytmpfile", - output) - class TestUtils(unittest.TestCase): def test_format_duration(self): diff --git a/Lib/test/test_reprlib.py b/Lib/test/test_reprlib.py index e7216d427200c1..aa326399ab2247 100644 --- a/Lib/test/test_reprlib.py +++ b/Lib/test/test_reprlib.py @@ -9,7 +9,6 @@ import importlib import importlib.util import unittest -import textwrap from test.support import verbose from test.support.os_helper import create_empty_file @@ -26,29 +25,6 @@ def nestedTuple(nesting): class ReprTests(unittest.TestCase): - def test_init_kwargs(self): - example_kwargs = { - "maxlevel": 101, - "maxtuple": 102, - "maxlist": 103, - "maxarray": 104, - "maxdict": 105, - "maxset": 106, - "maxfrozenset": 107, - "maxdeque": 108, - "maxstring": 109, - "maxlong": 110, - "maxother": 111, - "fillvalue": "x" * 112, - "indent": "x" * 113, - } - r1 = Repr() - for attr, val in example_kwargs.items(): - setattr(r1, attr, val) - r2 = Repr(**example_kwargs) - for attr in example_kwargs: - self.assertEqual(getattr(r1, attr), getattr(r2, attr), msg=attr) - def test_string(self): eq = self.assertEqual eq(r("abc"), "'abc'") @@ -248,338 +224,6 @@ def test_unsortable(self): r(y) r(z) - def test_valid_indent(self): - test_cases = [ - { - 'object': (), - 'tests': ( - (dict(indent=None), '()'), - (dict(indent=False), '()'), - (dict(indent=True), '()'), - (dict(indent=0), '()'), - (dict(indent=1), '()'), - (dict(indent=4), '()'), - (dict(indent=4, maxlevel=2), '()'), - (dict(indent=''), '()'), - (dict(indent='-->'), '()'), - (dict(indent='....'), '()'), - ), - }, - { - 'object': '', - 'tests': ( - (dict(indent=None), "''"), - (dict(indent=False), "''"), - (dict(indent=True), "''"), - (dict(indent=0), "''"), - (dict(indent=1), "''"), - (dict(indent=4), "''"), - (dict(indent=4, maxlevel=2), "''"), - (dict(indent=''), "''"), - (dict(indent='-->'), "''"), - (dict(indent='....'), "''"), - ), - }, - { - 'object': [1, 'spam', {'eggs': True, 'ham': []}], - 'tests': ( - (dict(indent=None), '''\ - [1, 'spam', {'eggs': True, 'ham': []}]'''), - (dict(indent=False), '''\ - [ - 1, - 'spam', - { - 'eggs': True, - 'ham': [], - }, - ]'''), - (dict(indent=True), '''\ - [ - 1, - 'spam', - { - 'eggs': True, - 'ham': [], - }, - ]'''), - (dict(indent=0), '''\ - [ - 1, - 'spam', - { - 'eggs': True, - 'ham': [], - }, - ]'''), - (dict(indent=1), '''\ - [ - 1, - 'spam', - { - 'eggs': True, - 'ham': [], - }, - ]'''), - (dict(indent=4), '''\ - [ - 1, - 'spam', - { - 'eggs': True, - 'ham': [], - }, - ]'''), - (dict(indent=4, maxlevel=2), '''\ - [ - 1, - 'spam', - { - 'eggs': True, - 'ham': [], - }, - ]'''), - (dict(indent=''), '''\ - [ - 1, - 'spam', - { - 'eggs': True, - 'ham': [], - }, - ]'''), - (dict(indent='-->'), '''\ - [ - -->1, - -->'spam', - -->{ - -->-->'eggs': True, - -->-->'ham': [], - -->}, - ]'''), - (dict(indent='....'), '''\ - [ - ....1, - ....'spam', - ....{ - ........'eggs': True, - ........'ham': [], - ....}, - ]'''), - ), - }, - { - 'object': { - 1: 'two', - b'three': [ - (4.5, 6.7), - [set((8, 9)), frozenset((10, 11))], - ], - }, - 'tests': ( - (dict(indent=None), '''\ - {1: 'two', b'three': [(4.5, 6.7), [{8, 9}, frozenset({10, 11})]]}'''), - (dict(indent=False), '''\ - { - 1: 'two', - b'three': [ - ( - 4.5, - 6.7, - ), - [ - { - 8, - 9, - }, - frozenset({ - 10, - 11, - }), - ], - ], - }'''), - (dict(indent=True), '''\ - { - 1: 'two', - b'three': [ - ( - 4.5, - 6.7, - ), - [ - { - 8, - 9, - }, - frozenset({ - 10, - 11, - }), - ], - ], - }'''), - (dict(indent=0), '''\ - { - 1: 'two', - b'three': [ - ( - 4.5, - 6.7, - ), - [ - { - 8, - 9, - }, - frozenset({ - 10, - 11, - }), - ], - ], - }'''), - (dict(indent=1), '''\ - { - 1: 'two', - b'three': [ - ( - 4.5, - 6.7, - ), - [ - { - 8, - 9, - }, - frozenset({ - 10, - 11, - }), - ], - ], - }'''), - (dict(indent=4), '''\ - { - 1: 'two', - b'three': [ - ( - 4.5, - 6.7, - ), - [ - { - 8, - 9, - }, - frozenset({ - 10, - 11, - }), - ], - ], - }'''), - (dict(indent=4, maxlevel=2), '''\ - { - 1: 'two', - b'three': [ - (...), - [...], - ], - }'''), - (dict(indent=''), '''\ - { - 1: 'two', - b'three': [ - ( - 4.5, - 6.7, - ), - [ - { - 8, - 9, - }, - frozenset({ - 10, - 11, - }), - ], - ], - }'''), - (dict(indent='-->'), '''\ - { - -->1: 'two', - -->b'three': [ - -->-->( - -->-->-->4.5, - -->-->-->6.7, - -->-->), - -->-->[ - -->-->-->{ - -->-->-->-->8, - -->-->-->-->9, - -->-->-->}, - -->-->-->frozenset({ - -->-->-->-->10, - -->-->-->-->11, - -->-->-->}), - -->-->], - -->], - }'''), - (dict(indent='....'), '''\ - { - ....1: 'two', - ....b'three': [ - ........( - ............4.5, - ............6.7, - ........), - ........[ - ............{ - ................8, - ................9, - ............}, - ............frozenset({ - ................10, - ................11, - ............}), - ........], - ....], - }'''), - ), - }, - ] - for test_case in test_cases: - with self.subTest(test_object=test_case['object']): - for repr_settings, expected_repr in test_case['tests']: - with self.subTest(repr_settings=repr_settings): - r = Repr() - for attribute, value in repr_settings.items(): - setattr(r, attribute, value) - resulting_repr = r.repr(test_case['object']) - expected_repr = textwrap.dedent(expected_repr) - self.assertEqual(resulting_repr, expected_repr) - - def test_invalid_indent(self): - test_object = [1, 'spam', {'eggs': True, 'ham': []}] - test_cases = [ - (-1, (ValueError, '[Nn]egative|[Pp]ositive')), - (-4, (ValueError, '[Nn]egative|[Pp]ositive')), - ((), (TypeError, None)), - ([], (TypeError, None)), - ((4,), (TypeError, None)), - ([4,], (TypeError, None)), - (object(), (TypeError, None)), - ] - for indent, (expected_error, expected_msg) in test_cases: - with self.subTest(indent=indent): - r = Repr() - r.indent = indent - expected_msg = expected_msg or f'{type(indent)}' - with self.assertRaisesRegex(expected_error, expected_msg): - r.repr(test_object) - def write_file(path, text): with open(path, 'w', encoding='ASCII') as fp: fp.write(text) diff --git a/Lib/test/test_select.py b/Lib/test/test_select.py index a82584d6904920..ca2a9d9d24dabc 100644 --- a/Lib/test/test_select.py +++ b/Lib/test/test_select.py @@ -1,4 +1,5 @@ import errno +import os import select import subprocess import sys diff --git a/Lib/test/test_set.py b/Lib/test/test_set.py index 2dd65240f5faec..43f23dbbf9bf7d 100644 --- a/Lib/test/test_set.py +++ b/Lib/test/test_set.py @@ -427,7 +427,7 @@ def test_remove(self): self.assertRaises(KeyError, self.s.remove, self.thetype(self.word)) def test_remove_keyerror_unpacking(self): - # https://bugs.python.org/issue1576657 + # bug: www.python.org/sf/1576657 for v1 in ['Q', (1,)]: try: self.s.remove(v1) diff --git a/Lib/test/test_shelve.py b/Lib/test/test_shelve.py index 08c6562f2a273e..b9eb007c827966 100644 --- a/Lib/test/test_shelve.py +++ b/Lib/test/test_shelve.py @@ -1,9 +1,11 @@ import unittest import dbm import shelve +import glob import pickle import os +from test import support from test.support import os_helper from collections.abc import MutableMapping from test.test_dbm import dbm_iterator diff --git a/Lib/test/test_shlex.py b/Lib/test/test_shlex.py index 92598dbbd5f293..3081a785204edc 100644 --- a/Lib/test/test_shlex.py +++ b/Lib/test/test_shlex.py @@ -162,8 +162,9 @@ def oldSplit(self, s): tok = lex.get_token() return ret - def testSplitNone(self): - with self.assertRaises(ValueError): + @mock.patch('sys.stdin', io.StringIO()) + def testSplitNoneDeprecation(self): + with self.assertWarns(DeprecationWarning): shlex.split(None) def testSplitPosix(self): diff --git a/Lib/test/test_shutil.py b/Lib/test/test_shutil.py index a2c4ab508195b3..a61bb126e4e73f 100644 --- a/Lib/test/test_shutil.py +++ b/Lib/test/test_shutil.py @@ -51,9 +51,6 @@ except ImportError: _winapi = None -no_chdir = unittest.mock.patch('os.chdir', - side_effect=AssertionError("shouldn't call os.chdir()")) - def _fake_rename(*args, **kwargs): # Pretend the destination path is on a different filesystem. raise OSError(getattr(errno, 'EXDEV', 18), "Invalid cross-device link") @@ -312,8 +309,8 @@ def onerror(*args): @unittest.skipIf(sys.platform[:6] == 'cygwin', "This test can't be run on Cygwin (issue #1071513).") - @os_helper.skip_if_dac_override - @os_helper.skip_unless_working_chmod + @unittest.skipIf(hasattr(os, 'geteuid') and os.geteuid() == 0, + "This test can't be run reliably as root (issue #1076467).") def test_on_error(self): self.errorState = 0 os.mkdir(TESTFN) @@ -1032,7 +1029,8 @@ def _raise_on_src(fname, *, follow_symlinks=True): @os_helper.skip_unless_symlink @os_helper.skip_unless_xattr - @os_helper.skip_unless_dac_override + @unittest.skipUnless(hasattr(os, 'geteuid') and os.geteuid() == 0, + 'root privileges required') def test_copyxattr_symlinks(self): # On Linux, it's only possible to access non-user xattr for symlinks; # which in turn require root privileges. This test should be expanded @@ -1343,7 +1341,7 @@ def test_make_tarball(self): work_dir = os.path.dirname(tmpdir2) rel_base_name = os.path.join(os.path.basename(tmpdir2), 'archive') - with os_helper.change_cwd(work_dir), no_chdir: + with os_helper.change_cwd(work_dir): base_name = os.path.abspath(rel_base_name) tarball = make_archive(rel_base_name, 'gztar', root_dir, '.') @@ -1357,7 +1355,7 @@ def test_make_tarball(self): './file1', './file2', './sub/file3']) # trying an uncompressed one - with os_helper.change_cwd(work_dir), no_chdir: + with os_helper.change_cwd(work_dir): tarball = make_archive(rel_base_name, 'tar', root_dir, '.') self.assertEqual(tarball, base_name + '.tar') self.assertTrue(os.path.isfile(tarball)) @@ -1393,8 +1391,7 @@ def _create_files(self, base_dir='dist'): def test_tarfile_vs_tar(self): root_dir, base_dir = self._create_files() base_name = os.path.join(self.mkdtemp(), 'archive') - with no_chdir: - tarball = make_archive(base_name, 'gztar', root_dir, base_dir) + tarball = make_archive(base_name, 'gztar', root_dir, base_dir) # check if the compressed tarball was created self.assertEqual(tarball, base_name + '.tar.gz') @@ -1411,15 +1408,13 @@ def test_tarfile_vs_tar(self): self.assertEqual(self._tarinfo(tarball), self._tarinfo(tarball2)) # trying an uncompressed one - with no_chdir: - tarball = make_archive(base_name, 'tar', root_dir, base_dir) + tarball = make_archive(base_name, 'tar', root_dir, base_dir) self.assertEqual(tarball, base_name + '.tar') self.assertTrue(os.path.isfile(tarball)) # now for a dry_run - with no_chdir: - tarball = make_archive(base_name, 'tar', root_dir, base_dir, - dry_run=True) + tarball = make_archive(base_name, 'tar', root_dir, base_dir, + dry_run=True) self.assertEqual(tarball, base_name + '.tar') self.assertTrue(os.path.isfile(tarball)) @@ -1435,7 +1430,7 @@ def test_make_zipfile(self): work_dir = os.path.dirname(tmpdir2) rel_base_name = os.path.join(os.path.basename(tmpdir2), 'archive') - with os_helper.change_cwd(work_dir), no_chdir: + with os_helper.change_cwd(work_dir): base_name = os.path.abspath(rel_base_name) res = make_archive(rel_base_name, 'zip', root_dir) @@ -1448,7 +1443,7 @@ def test_make_zipfile(self): 'dist/file1', 'dist/file2', 'dist/sub/file3', 'outer']) - with os_helper.change_cwd(work_dir), no_chdir: + with os_helper.change_cwd(work_dir): base_name = os.path.abspath(rel_base_name) res = make_archive(rel_base_name, 'zip', root_dir, base_dir) @@ -1466,8 +1461,7 @@ def test_make_zipfile(self): def test_zipfile_vs_zip(self): root_dir, base_dir = self._create_files() base_name = os.path.join(self.mkdtemp(), 'archive') - with no_chdir: - archive = make_archive(base_name, 'zip', root_dir, base_dir) + archive = make_archive(base_name, 'zip', root_dir, base_dir) # check if ZIP file was created self.assertEqual(archive, base_name + '.zip') @@ -1493,8 +1487,7 @@ def test_zipfile_vs_zip(self): def test_unzip_zipfile(self): root_dir, base_dir = self._create_files() base_name = os.path.join(self.mkdtemp(), 'archive') - with no_chdir: - archive = make_archive(base_name, 'zip', root_dir, base_dir) + archive = make_archive(base_name, 'zip', root_dir, base_dir) # check if ZIP file was created self.assertEqual(archive, base_name + '.zip') @@ -1552,7 +1545,7 @@ def test_tarfile_root_owner(self): base_name = os.path.join(self.mkdtemp(), 'archive') group = grp.getgrgid(0)[0] owner = pwd.getpwuid(0)[0] - with os_helper.change_cwd(root_dir), no_chdir: + with os_helper.change_cwd(root_dir): archive_name = make_archive(base_name, 'gztar', root_dir, 'dist', owner=owner, group=group) @@ -1570,30 +1563,23 @@ def test_tarfile_root_owner(self): def test_make_archive_cwd(self): current_dir = os.getcwd() - root_dir = self.mkdtemp() def _breaks(*args, **kw): raise RuntimeError() - dirs = [] - def _chdir(path): - dirs.append(path) - orig_chdir(path) register_archive_format('xxx', _breaks, [], 'xxx file') try: - with support.swap_attr(os, 'chdir', _chdir) as orig_chdir: - try: - make_archive('xxx', 'xxx', root_dir=root_dir) - except Exception: - pass + try: + make_archive('xxx', 'xxx', root_dir=self.mkdtemp()) + except Exception: + pass self.assertEqual(os.getcwd(), current_dir) - self.assertEqual(dirs, [root_dir, current_dir]) finally: unregister_archive_format('xxx') def test_make_tarfile_in_curdir(self): # Issue #21280 root_dir = self.mkdtemp() - with os_helper.change_cwd(root_dir), no_chdir: + with os_helper.change_cwd(root_dir): self.assertEqual(make_archive('test', 'tar'), 'test.tar') self.assertTrue(os.path.isfile('test.tar')) @@ -1601,7 +1587,7 @@ def test_make_tarfile_in_curdir(self): def test_make_zipfile_in_curdir(self): # Issue #21280 root_dir = self.mkdtemp() - with os_helper.change_cwd(root_dir), no_chdir: + with os_helper.change_cwd(root_dir): self.assertEqual(make_archive('test', 'zip'), 'test.zip') self.assertTrue(os.path.isfile('test.zip')) @@ -1828,7 +1814,8 @@ def test_cwd(self): # Other platforms: shouldn't match in the current directory. self.assertIsNone(rv) - @os_helper.skip_if_dac_override + @unittest.skipIf(hasattr(os, 'geteuid') and os.geteuid() == 0, + 'non-root user required') def test_non_matching_mode(self): # Set the file read-only and ask for writeable files. os.chmod(self.temp_file.name, stat.S_IREAD) @@ -2179,11 +2166,11 @@ def test_move_dir_caseinsensitive(self): os.rmdir(dst_dir) - @os_helper.skip_unless_dac_override - @unittest.skipUnless(hasattr(os, 'lchflags') + @unittest.skipUnless(hasattr(os, 'geteuid') and os.geteuid() == 0 + and hasattr(os, 'lchflags') and hasattr(stat, 'SF_IMMUTABLE') and hasattr(stat, 'UF_OPAQUE'), - 'requires lchflags') + 'root privileges required') def test_move_dir_permission_denied(self): # bpo-42782: shutil.move should not create destination directories # if the source directory cannot be removed. @@ -2665,7 +2652,6 @@ def test_stty_match(self): self.assertEqual(expected, actual) - @unittest.skipIf(support.is_wasi, "WASI has no /dev/null") def test_fallback(self): with os_helper.EnvironmentVarGuard() as env: del env['LINES'] diff --git a/Lib/test/test_signal.py b/Lib/test/test_signal.py index 2562a57ea421ff..6aa529b0620001 100644 --- a/Lib/test/test_signal.py +++ b/Lib/test/test_signal.py @@ -812,12 +812,15 @@ def test_itimer_virtual(self): signal.signal(signal.SIGVTALRM, self.sig_vtalrm) signal.setitimer(self.itimer, 0.3, 0.2) - for _ in support.busy_retry(support.LONG_TIMEOUT): + start_time = time.monotonic() + while time.monotonic() - start_time < 60.0: # use up some virtual time by doing real work _ = pow(12345, 67890, 10000019) if signal.getitimer(self.itimer) == (0.0, 0.0): - # sig_vtalrm handler stopped this itimer - break + break # sig_vtalrm handler stopped this itimer + else: # Issue 8424 + self.skipTest("timeout: likely cause: machine too slow or load too " + "high") # virtual itimer should be (0.0, 0.0) now self.assertEqual(signal.getitimer(self.itimer), (0.0, 0.0)) @@ -829,12 +832,15 @@ def test_itimer_prof(self): signal.signal(signal.SIGPROF, self.sig_prof) signal.setitimer(self.itimer, 0.2, 0.2) - for _ in support.busy_retry(support.LONG_TIMEOUT): + start_time = time.monotonic() + while time.monotonic() - start_time < 60.0: # do some work _ = pow(12345, 67890, 10000019) if signal.getitimer(self.itimer) == (0.0, 0.0): - # sig_prof handler stopped this itimer - break + break # sig_prof handler stopped this itimer + else: # Issue 8424 + self.skipTest("timeout: likely cause: machine too slow or load too " + "high") # profiling itimer should be (0.0, 0.0) now self.assertEqual(signal.getitimer(self.itimer), (0.0, 0.0)) @@ -1301,6 +1307,8 @@ def handler(signum, frame): self.setsig(signal.SIGALRM, handler) # for ITIMER_REAL expected_sigs = 0 + deadline = time.monotonic() + support.SHORT_TIMEOUT + while expected_sigs < N: # Hopefully the SIGALRM will be received somewhere during # initial processing of SIGUSR1. @@ -1309,9 +1317,8 @@ def handler(signum, frame): expected_sigs += 2 # Wait for handlers to run to avoid signal coalescing - for _ in support.sleeping_retry(support.SHORT_TIMEOUT): - if len(sigs) >= expected_sigs: - break + while len(sigs) < expected_sigs and time.monotonic() < deadline: + time.sleep(1e-5) # All ITIMER_REAL signals should have been delivered to the # Python handler diff --git a/Lib/test/test_site.py b/Lib/test/test_site.py index 9e701fd847acdf..dd018d6b38a864 100644 --- a/Lib/test/test_site.py +++ b/Lib/test/test_site.py @@ -10,9 +10,10 @@ from test.support import os_helper from test.support import socket_helper from test.support import captured_stderr -from test.support.os_helper import TESTFN, EnvironmentVarGuard +from test.support.os_helper import TESTFN, EnvironmentVarGuard, change_cwd import ast import builtins +import encodings import glob import io import os @@ -205,7 +206,7 @@ def test_get_path(self): scheme = 'osx_framework_user' else: scheme = os.name + '_user' - self.assertEqual(os.path.normpath(site._get_path(site._getuserbase())), + self.assertEqual(site._get_path(site._getuserbase()), sysconfig.get_path('purelib', scheme)) @unittest.skipUnless(site.ENABLE_USER_SITE, "requires access to PEP 370 " @@ -213,7 +214,7 @@ def test_get_path(self): @support.requires_subprocess() def test_s_option(self): # (ncoghlan) Change this to use script_helper... - usersite = os.path.normpath(site.USER_SITE) + usersite = site.USER_SITE self.assertIn(usersite, sys.path) env = os.environ.copy() @@ -570,8 +571,6 @@ def _create_underpth_exe(self, lines, exe_pth=True): dll_file = os.path.join(temp_dir, os.path.split(dll_src_file)[1]) shutil.copy(sys.executable, exe_file) shutil.copy(dll_src_file, dll_file) - for fn in glob.glob(os.path.join(os.path.split(dll_src_file)[0], "vcruntime*.dll")): - shutil.copy(fn, os.path.join(temp_dir, os.path.split(fn)[1])) if exe_pth: _pth_file = os.path.splitext(exe_file)[0] + '._pth' else: diff --git a/Lib/test/test_smtpd.py b/Lib/test/test_smtpd.py new file mode 100644 index 00000000000000..39ff8793648ba6 --- /dev/null +++ b/Lib/test/test_smtpd.py @@ -0,0 +1,1019 @@ +import unittest +import textwrap +from test import support, mock_socket +from test.support import socket_helper +from test.support import warnings_helper +import socket +import io + + +smtpd = warnings_helper.import_deprecated('smtpd') +asyncore = warnings_helper.import_deprecated('asyncore') + +if not socket_helper.has_gethostname: + raise unittest.SkipTest("test requires gethostname()") + + +class DummyServer(smtpd.SMTPServer): + def __init__(self, *args, **kwargs): + smtpd.SMTPServer.__init__(self, *args, **kwargs) + self.messages = [] + if self._decode_data: + self.return_status = 'return status' + else: + self.return_status = b'return status' + + def process_message(self, peer, mailfrom, rcpttos, data, **kw): + self.messages.append((peer, mailfrom, rcpttos, data)) + if data == self.return_status: + return '250 Okish' + if 'mail_options' in kw and 'SMTPUTF8' in kw['mail_options']: + return '250 SMTPUTF8 message okish' + + +class DummyDispatcherBroken(Exception): + pass + + +class BrokenDummyServer(DummyServer): + def listen(self, num): + raise DummyDispatcherBroken() + + +class SMTPDServerTest(unittest.TestCase): + def setUp(self): + smtpd.socket = asyncore.socket = mock_socket + + def test_process_message_unimplemented(self): + server = smtpd.SMTPServer((socket_helper.HOST, 0), ('b', 0), + decode_data=True) + conn, addr = server.accept() + channel = smtpd.SMTPChannel(server, conn, addr, decode_data=True) + + def write_line(line): + channel.socket.queue_recv(line) + channel.handle_read() + + write_line(b'HELO example') + write_line(b'MAIL From:eggs@example') + write_line(b'RCPT To:spam@example') + write_line(b'DATA') + self.assertRaises(NotImplementedError, write_line, b'spam\r\n.\r\n') + + def test_decode_data_and_enable_SMTPUTF8_raises(self): + self.assertRaises( + ValueError, + smtpd.SMTPServer, + (socket_helper.HOST, 0), + ('b', 0), + enable_SMTPUTF8=True, + decode_data=True) + + def tearDown(self): + asyncore.close_all() + asyncore.socket = smtpd.socket = socket + + +class DebuggingServerTest(unittest.TestCase): + + def setUp(self): + smtpd.socket = asyncore.socket = mock_socket + + def send_data(self, channel, data, enable_SMTPUTF8=False): + def write_line(line): + channel.socket.queue_recv(line) + channel.handle_read() + write_line(b'EHLO example') + if enable_SMTPUTF8: + write_line(b'MAIL From:eggs@example BODY=8BITMIME SMTPUTF8') + else: + write_line(b'MAIL From:eggs@example') + write_line(b'RCPT To:spam@example') + write_line(b'DATA') + write_line(data) + write_line(b'.') + + def test_process_message_with_decode_data_true(self): + server = smtpd.DebuggingServer((socket_helper.HOST, 0), ('b', 0), + decode_data=True) + conn, addr = server.accept() + channel = smtpd.SMTPChannel(server, conn, addr, decode_data=True) + with support.captured_stdout() as s: + self.send_data(channel, b'From: test\n\nhello\n') + stdout = s.getvalue() + self.assertEqual(stdout, textwrap.dedent("""\ + ---------- MESSAGE FOLLOWS ---------- + From: test + X-Peer: peer-address + + hello + ------------ END MESSAGE ------------ + """)) + + def test_process_message_with_decode_data_false(self): + server = smtpd.DebuggingServer((socket_helper.HOST, 0), ('b', 0)) + conn, addr = server.accept() + channel = smtpd.SMTPChannel(server, conn, addr) + with support.captured_stdout() as s: + self.send_data(channel, b'From: test\n\nh\xc3\xa9llo\xff\n') + stdout = s.getvalue() + self.assertEqual(stdout, textwrap.dedent("""\ + ---------- MESSAGE FOLLOWS ---------- + b'From: test' + b'X-Peer: peer-address' + b'' + b'h\\xc3\\xa9llo\\xff' + ------------ END MESSAGE ------------ + """)) + + def test_process_message_with_enable_SMTPUTF8_true(self): + server = smtpd.DebuggingServer((socket_helper.HOST, 0), ('b', 0), + enable_SMTPUTF8=True) + conn, addr = server.accept() + channel = smtpd.SMTPChannel(server, conn, addr, enable_SMTPUTF8=True) + with support.captured_stdout() as s: + self.send_data(channel, b'From: test\n\nh\xc3\xa9llo\xff\n') + stdout = s.getvalue() + self.assertEqual(stdout, textwrap.dedent("""\ + ---------- MESSAGE FOLLOWS ---------- + b'From: test' + b'X-Peer: peer-address' + b'' + b'h\\xc3\\xa9llo\\xff' + ------------ END MESSAGE ------------ + """)) + + def test_process_SMTPUTF8_message_with_enable_SMTPUTF8_true(self): + server = smtpd.DebuggingServer((socket_helper.HOST, 0), ('b', 0), + enable_SMTPUTF8=True) + conn, addr = server.accept() + channel = smtpd.SMTPChannel(server, conn, addr, enable_SMTPUTF8=True) + with support.captured_stdout() as s: + self.send_data(channel, b'From: test\n\nh\xc3\xa9llo\xff\n', + enable_SMTPUTF8=True) + stdout = s.getvalue() + self.assertEqual(stdout, textwrap.dedent("""\ + ---------- MESSAGE FOLLOWS ---------- + mail options: ['BODY=8BITMIME', 'SMTPUTF8'] + b'From: test' + b'X-Peer: peer-address' + b'' + b'h\\xc3\\xa9llo\\xff' + ------------ END MESSAGE ------------ + """)) + + def tearDown(self): + asyncore.close_all() + asyncore.socket = smtpd.socket = socket + + +class TestFamilyDetection(unittest.TestCase): + def setUp(self): + smtpd.socket = asyncore.socket = mock_socket + + def tearDown(self): + asyncore.close_all() + asyncore.socket = smtpd.socket = socket + + @unittest.skipUnless(socket_helper.IPV6_ENABLED, "IPv6 not enabled") + def test_socket_uses_IPv6(self): + server = smtpd.SMTPServer((socket_helper.HOSTv6, 0), (socket_helper.HOSTv4, 0)) + self.assertEqual(server.socket.family, socket.AF_INET6) + + def test_socket_uses_IPv4(self): + server = smtpd.SMTPServer((socket_helper.HOSTv4, 0), (socket_helper.HOSTv6, 0)) + self.assertEqual(server.socket.family, socket.AF_INET) + + +class TestRcptOptionParsing(unittest.TestCase): + error_response = (b'555 RCPT TO parameters not recognized or not ' + b'implemented\r\n') + + def setUp(self): + smtpd.socket = asyncore.socket = mock_socket + self.old_debugstream = smtpd.DEBUGSTREAM + self.debug = smtpd.DEBUGSTREAM = io.StringIO() + + def tearDown(self): + asyncore.close_all() + asyncore.socket = smtpd.socket = socket + smtpd.DEBUGSTREAM = self.old_debugstream + + def write_line(self, channel, line): + channel.socket.queue_recv(line) + channel.handle_read() + + def test_params_rejected(self): + server = DummyServer((socket_helper.HOST, 0), ('b', 0)) + conn, addr = server.accept() + channel = smtpd.SMTPChannel(server, conn, addr) + self.write_line(channel, b'EHLO example') + self.write_line(channel, b'MAIL from: <foo@example.com> size=20') + self.write_line(channel, b'RCPT to: <foo@example.com> foo=bar') + self.assertEqual(channel.socket.last, self.error_response) + + def test_nothing_accepted(self): + server = DummyServer((socket_helper.HOST, 0), ('b', 0)) + conn, addr = server.accept() + channel = smtpd.SMTPChannel(server, conn, addr) + self.write_line(channel, b'EHLO example') + self.write_line(channel, b'MAIL from: <foo@example.com> size=20') + self.write_line(channel, b'RCPT to: <foo@example.com>') + self.assertEqual(channel.socket.last, b'250 OK\r\n') + + +class TestMailOptionParsing(unittest.TestCase): + error_response = (b'555 MAIL FROM parameters not recognized or not ' + b'implemented\r\n') + + def setUp(self): + smtpd.socket = asyncore.socket = mock_socket + self.old_debugstream = smtpd.DEBUGSTREAM + self.debug = smtpd.DEBUGSTREAM = io.StringIO() + + def tearDown(self): + asyncore.close_all() + asyncore.socket = smtpd.socket = socket + smtpd.DEBUGSTREAM = self.old_debugstream + + def write_line(self, channel, line): + channel.socket.queue_recv(line) + channel.handle_read() + + def test_with_decode_data_true(self): + server = DummyServer((socket_helper.HOST, 0), ('b', 0), decode_data=True) + conn, addr = server.accept() + channel = smtpd.SMTPChannel(server, conn, addr, decode_data=True) + self.write_line(channel, b'EHLO example') + for line in [ + b'MAIL from: <foo@example.com> size=20 SMTPUTF8', + b'MAIL from: <foo@example.com> size=20 SMTPUTF8 BODY=8BITMIME', + b'MAIL from: <foo@example.com> size=20 BODY=UNKNOWN', + b'MAIL from: <foo@example.com> size=20 body=8bitmime', + ]: + self.write_line(channel, line) + self.assertEqual(channel.socket.last, self.error_response) + self.write_line(channel, b'MAIL from: <foo@example.com> size=20') + self.assertEqual(channel.socket.last, b'250 OK\r\n') + + def test_with_decode_data_false(self): + server = DummyServer((socket_helper.HOST, 0), ('b', 0)) + conn, addr = server.accept() + channel = smtpd.SMTPChannel(server, conn, addr) + self.write_line(channel, b'EHLO example') + for line in [ + b'MAIL from: <foo@example.com> size=20 SMTPUTF8', + b'MAIL from: <foo@example.com> size=20 SMTPUTF8 BODY=8BITMIME', + ]: + self.write_line(channel, line) + self.assertEqual(channel.socket.last, self.error_response) + self.write_line( + channel, + b'MAIL from: <foo@example.com> size=20 SMTPUTF8 BODY=UNKNOWN') + self.assertEqual( + channel.socket.last, + b'501 Error: BODY can only be one of 7BIT, 8BITMIME\r\n') + self.write_line( + channel, b'MAIL from: <foo@example.com> size=20 body=8bitmime') + self.assertEqual(channel.socket.last, b'250 OK\r\n') + + def test_with_enable_smtputf8_true(self): + server = DummyServer((socket_helper.HOST, 0), ('b', 0), enable_SMTPUTF8=True) + conn, addr = server.accept() + channel = smtpd.SMTPChannel(server, conn, addr, enable_SMTPUTF8=True) + self.write_line(channel, b'EHLO example') + self.write_line( + channel, + b'MAIL from: <foo@example.com> size=20 body=8bitmime smtputf8') + self.assertEqual(channel.socket.last, b'250 OK\r\n') + + +class SMTPDChannelTest(unittest.TestCase): + def setUp(self): + smtpd.socket = asyncore.socket = mock_socket + self.old_debugstream = smtpd.DEBUGSTREAM + self.debug = smtpd.DEBUGSTREAM = io.StringIO() + self.server = DummyServer((socket_helper.HOST, 0), ('b', 0), + decode_data=True) + conn, addr = self.server.accept() + self.channel = smtpd.SMTPChannel(self.server, conn, addr, + decode_data=True) + + def tearDown(self): + asyncore.close_all() + asyncore.socket = smtpd.socket = socket + smtpd.DEBUGSTREAM = self.old_debugstream + + def write_line(self, line): + self.channel.socket.queue_recv(line) + self.channel.handle_read() + + def test_broken_connect(self): + self.assertRaises( + DummyDispatcherBroken, BrokenDummyServer, + (socket_helper.HOST, 0), ('b', 0), decode_data=True) + + def test_decode_data_and_enable_SMTPUTF8_raises(self): + self.assertRaises( + ValueError, smtpd.SMTPChannel, + self.server, self.channel.conn, self.channel.addr, + enable_SMTPUTF8=True, decode_data=True) + + def test_server_accept(self): + self.server.handle_accept() + + def test_missing_data(self): + self.write_line(b'') + self.assertEqual(self.channel.socket.last, + b'500 Error: bad syntax\r\n') + + def test_EHLO(self): + self.write_line(b'EHLO example') + self.assertEqual(self.channel.socket.last, b'250 HELP\r\n') + + def test_EHLO_bad_syntax(self): + self.write_line(b'EHLO') + self.assertEqual(self.channel.socket.last, + b'501 Syntax: EHLO hostname\r\n') + + def test_EHLO_duplicate(self): + self.write_line(b'EHLO example') + self.write_line(b'EHLO example') + self.assertEqual(self.channel.socket.last, + b'503 Duplicate HELO/EHLO\r\n') + + def test_EHLO_HELO_duplicate(self): + self.write_line(b'EHLO example') + self.write_line(b'HELO example') + self.assertEqual(self.channel.socket.last, + b'503 Duplicate HELO/EHLO\r\n') + + def test_HELO(self): + name = smtpd.socket.getfqdn() + self.write_line(b'HELO example') + self.assertEqual(self.channel.socket.last, + '250 {}\r\n'.format(name).encode('ascii')) + + def test_HELO_EHLO_duplicate(self): + self.write_line(b'HELO example') + self.write_line(b'EHLO example') + self.assertEqual(self.channel.socket.last, + b'503 Duplicate HELO/EHLO\r\n') + + def test_HELP(self): + self.write_line(b'HELP') + self.assertEqual(self.channel.socket.last, + b'250 Supported commands: EHLO HELO MAIL RCPT ' + \ + b'DATA RSET NOOP QUIT VRFY\r\n') + + def test_HELP_command(self): + self.write_line(b'HELP MAIL') + self.assertEqual(self.channel.socket.last, + b'250 Syntax: MAIL FROM: <address>\r\n') + + def test_HELP_command_unknown(self): + self.write_line(b'HELP SPAM') + self.assertEqual(self.channel.socket.last, + b'501 Supported commands: EHLO HELO MAIL RCPT ' + \ + b'DATA RSET NOOP QUIT VRFY\r\n') + + def test_HELO_bad_syntax(self): + self.write_line(b'HELO') + self.assertEqual(self.channel.socket.last, + b'501 Syntax: HELO hostname\r\n') + + def test_HELO_duplicate(self): + self.write_line(b'HELO example') + self.write_line(b'HELO example') + self.assertEqual(self.channel.socket.last, + b'503 Duplicate HELO/EHLO\r\n') + + def test_HELO_parameter_rejected_when_extensions_not_enabled(self): + self.extended_smtp = False + self.write_line(b'HELO example') + self.write_line(b'MAIL from:<foo@example.com> SIZE=1234') + self.assertEqual(self.channel.socket.last, + b'501 Syntax: MAIL FROM: <address>\r\n') + + def test_MAIL_allows_space_after_colon(self): + self.write_line(b'HELO example') + self.write_line(b'MAIL from: <foo@example.com>') + self.assertEqual(self.channel.socket.last, + b'250 OK\r\n') + + def test_extended_MAIL_allows_space_after_colon(self): + self.write_line(b'EHLO example') + self.write_line(b'MAIL from: <foo@example.com> size=20') + self.assertEqual(self.channel.socket.last, + b'250 OK\r\n') + + def test_NOOP(self): + self.write_line(b'NOOP') + self.assertEqual(self.channel.socket.last, b'250 OK\r\n') + + def test_HELO_NOOP(self): + self.write_line(b'HELO example') + self.write_line(b'NOOP') + self.assertEqual(self.channel.socket.last, b'250 OK\r\n') + + def test_NOOP_bad_syntax(self): + self.write_line(b'NOOP hi') + self.assertEqual(self.channel.socket.last, + b'501 Syntax: NOOP\r\n') + + def test_QUIT(self): + self.write_line(b'QUIT') + self.assertEqual(self.channel.socket.last, b'221 Bye\r\n') + + def test_HELO_QUIT(self): + self.write_line(b'HELO example') + self.write_line(b'QUIT') + self.assertEqual(self.channel.socket.last, b'221 Bye\r\n') + + def test_QUIT_arg_ignored(self): + self.write_line(b'QUIT bye bye') + self.assertEqual(self.channel.socket.last, b'221 Bye\r\n') + + def test_bad_state(self): + self.channel.smtp_state = 'BAD STATE' + self.write_line(b'HELO example') + self.assertEqual(self.channel.socket.last, + b'451 Internal confusion\r\n') + + def test_command_too_long(self): + self.write_line(b'HELO example') + self.write_line(b'MAIL from: ' + + b'a' * self.channel.command_size_limit + + b'@example') + self.assertEqual(self.channel.socket.last, + b'500 Error: line too long\r\n') + + def test_MAIL_command_limit_extended_with_SIZE(self): + self.write_line(b'EHLO example') + fill_len = self.channel.command_size_limit - len('MAIL from:<@example>') + self.write_line(b'MAIL from:<' + + b'a' * fill_len + + b'@example> SIZE=1234') + self.assertEqual(self.channel.socket.last, b'250 OK\r\n') + + self.write_line(b'MAIL from:<' + + b'a' * (fill_len + 26) + + b'@example> SIZE=1234') + self.assertEqual(self.channel.socket.last, + b'500 Error: line too long\r\n') + + def test_MAIL_command_rejects_SMTPUTF8_by_default(self): + self.write_line(b'EHLO example') + self.write_line( + b'MAIL from: <naive@example.com> BODY=8BITMIME SMTPUTF8') + self.assertEqual(self.channel.socket.last[0:1], b'5') + + def test_data_longer_than_default_data_size_limit(self): + # Hack the default so we don't have to generate so much data. + self.channel.data_size_limit = 1048 + self.write_line(b'HELO example') + self.write_line(b'MAIL From:eggs@example') + self.write_line(b'RCPT To:spam@example') + self.write_line(b'DATA') + self.write_line(b'A' * self.channel.data_size_limit + + b'A\r\n.') + self.assertEqual(self.channel.socket.last, + b'552 Error: Too much mail data\r\n') + + def test_MAIL_size_parameter(self): + self.write_line(b'EHLO example') + self.write_line(b'MAIL FROM:<eggs@example> SIZE=512') + self.assertEqual(self.channel.socket.last, + b'250 OK\r\n') + + def test_MAIL_invalid_size_parameter(self): + self.write_line(b'EHLO example') + self.write_line(b'MAIL FROM:<eggs@example> SIZE=invalid') + self.assertEqual(self.channel.socket.last, + b'501 Syntax: MAIL FROM: <address> [SP <mail-parameters>]\r\n') + + def test_MAIL_RCPT_unknown_parameters(self): + self.write_line(b'EHLO example') + self.write_line(b'MAIL FROM:<eggs@example> ham=green') + self.assertEqual(self.channel.socket.last, + b'555 MAIL FROM parameters not recognized or not implemented\r\n') + + self.write_line(b'MAIL FROM:<eggs@example>') + self.write_line(b'RCPT TO:<eggs@example> ham=green') + self.assertEqual(self.channel.socket.last, + b'555 RCPT TO parameters not recognized or not implemented\r\n') + + def test_MAIL_size_parameter_larger_than_default_data_size_limit(self): + self.channel.data_size_limit = 1048 + self.write_line(b'EHLO example') + self.write_line(b'MAIL FROM:<eggs@example> SIZE=2096') + self.assertEqual(self.channel.socket.last, + b'552 Error: message size exceeds fixed maximum message size\r\n') + + def test_need_MAIL(self): + self.write_line(b'HELO example') + self.write_line(b'RCPT to:spam@example') + self.assertEqual(self.channel.socket.last, + b'503 Error: need MAIL command\r\n') + + def test_MAIL_syntax_HELO(self): + self.write_line(b'HELO example') + self.write_line(b'MAIL from eggs@example') + self.assertEqual(self.channel.socket.last, + b'501 Syntax: MAIL FROM: <address>\r\n') + + def test_MAIL_syntax_EHLO(self): + self.write_line(b'EHLO example') + self.write_line(b'MAIL from eggs@example') + self.assertEqual(self.channel.socket.last, + b'501 Syntax: MAIL FROM: <address> [SP <mail-parameters>]\r\n') + + def test_MAIL_missing_address(self): + self.write_line(b'HELO example') + self.write_line(b'MAIL from:') + self.assertEqual(self.channel.socket.last, + b'501 Syntax: MAIL FROM: <address>\r\n') + + def test_MAIL_chevrons(self): + self.write_line(b'HELO example') + self.write_line(b'MAIL from:<eggs@example>') + self.assertEqual(self.channel.socket.last, b'250 OK\r\n') + + def test_MAIL_empty_chevrons(self): + self.write_line(b'EHLO example') + self.write_line(b'MAIL from:<>') + self.assertEqual(self.channel.socket.last, b'250 OK\r\n') + + def test_MAIL_quoted_localpart(self): + self.write_line(b'EHLO example') + self.write_line(b'MAIL from: <"Fred Blogs"@example.com>') + self.assertEqual(self.channel.socket.last, b'250 OK\r\n') + self.assertEqual(self.channel.mailfrom, '"Fred Blogs"@example.com') + + def test_MAIL_quoted_localpart_no_angles(self): + self.write_line(b'EHLO example') + self.write_line(b'MAIL from: "Fred Blogs"@example.com') + self.assertEqual(self.channel.socket.last, b'250 OK\r\n') + self.assertEqual(self.channel.mailfrom, '"Fred Blogs"@example.com') + + def test_MAIL_quoted_localpart_with_size(self): + self.write_line(b'EHLO example') + self.write_line(b'MAIL from: <"Fred Blogs"@example.com> SIZE=1000') + self.assertEqual(self.channel.socket.last, b'250 OK\r\n') + self.assertEqual(self.channel.mailfrom, '"Fred Blogs"@example.com') + + def test_MAIL_quoted_localpart_with_size_no_angles(self): + self.write_line(b'EHLO example') + self.write_line(b'MAIL from: "Fred Blogs"@example.com SIZE=1000') + self.assertEqual(self.channel.socket.last, b'250 OK\r\n') + self.assertEqual(self.channel.mailfrom, '"Fred Blogs"@example.com') + + def test_nested_MAIL(self): + self.write_line(b'HELO example') + self.write_line(b'MAIL from:eggs@example') + self.write_line(b'MAIL from:spam@example') + self.assertEqual(self.channel.socket.last, + b'503 Error: nested MAIL command\r\n') + + def test_VRFY(self): + self.write_line(b'VRFY eggs@example') + self.assertEqual(self.channel.socket.last, + b'252 Cannot VRFY user, but will accept message and attempt ' + \ + b'delivery\r\n') + + def test_VRFY_syntax(self): + self.write_line(b'VRFY') + self.assertEqual(self.channel.socket.last, + b'501 Syntax: VRFY <address>\r\n') + + def test_EXPN_not_implemented(self): + self.write_line(b'EXPN') + self.assertEqual(self.channel.socket.last, + b'502 EXPN not implemented\r\n') + + def test_no_HELO_MAIL(self): + self.write_line(b'MAIL from:<foo@example.com>') + self.assertEqual(self.channel.socket.last, + b'503 Error: send HELO first\r\n') + + def test_need_RCPT(self): + self.write_line(b'HELO example') + self.write_line(b'MAIL From:eggs@example') + self.write_line(b'DATA') + self.assertEqual(self.channel.socket.last, + b'503 Error: need RCPT command\r\n') + + def test_RCPT_syntax_HELO(self): + self.write_line(b'HELO example') + self.write_line(b'MAIL From: eggs@example') + self.write_line(b'RCPT to eggs@example') + self.assertEqual(self.channel.socket.last, + b'501 Syntax: RCPT TO: <address>\r\n') + + def test_RCPT_syntax_EHLO(self): + self.write_line(b'EHLO example') + self.write_line(b'MAIL From: eggs@example') + self.write_line(b'RCPT to eggs@example') + self.assertEqual(self.channel.socket.last, + b'501 Syntax: RCPT TO: <address> [SP <mail-parameters>]\r\n') + + def test_RCPT_lowercase_to_OK(self): + self.write_line(b'HELO example') + self.write_line(b'MAIL From: eggs@example') + self.write_line(b'RCPT to: <eggs@example>') + self.assertEqual(self.channel.socket.last, b'250 OK\r\n') + + def test_no_HELO_RCPT(self): + self.write_line(b'RCPT to eggs@example') + self.assertEqual(self.channel.socket.last, + b'503 Error: send HELO first\r\n') + + def test_data_dialog(self): + self.write_line(b'HELO example') + self.write_line(b'MAIL From:eggs@example') + self.assertEqual(self.channel.socket.last, b'250 OK\r\n') + self.write_line(b'RCPT To:spam@example') + self.assertEqual(self.channel.socket.last, b'250 OK\r\n') + + self.write_line(b'DATA') + self.assertEqual(self.channel.socket.last, + b'354 End data with <CR><LF>.<CR><LF>\r\n') + self.write_line(b'data\r\nmore\r\n.') + self.assertEqual(self.channel.socket.last, b'250 OK\r\n') + self.assertEqual(self.server.messages, + [(('peer-address', 'peer-port'), + 'eggs@example', + ['spam@example'], + 'data\nmore')]) + + def test_DATA_syntax(self): + self.write_line(b'HELO example') + self.write_line(b'MAIL From:eggs@example') + self.write_line(b'RCPT To:spam@example') + self.write_line(b'DATA spam') + self.assertEqual(self.channel.socket.last, b'501 Syntax: DATA\r\n') + + def test_no_HELO_DATA(self): + self.write_line(b'DATA spam') + self.assertEqual(self.channel.socket.last, + b'503 Error: send HELO first\r\n') + + def test_data_transparency_section_4_5_2(self): + self.write_line(b'HELO example') + self.write_line(b'MAIL From:eggs@example') + self.write_line(b'RCPT To:spam@example') + self.write_line(b'DATA') + self.write_line(b'..\r\n.\r\n') + self.assertEqual(self.channel.received_data, '.') + + def test_multiple_RCPT(self): + self.write_line(b'HELO example') + self.write_line(b'MAIL From:eggs@example') + self.write_line(b'RCPT To:spam@example') + self.write_line(b'RCPT To:ham@example') + self.write_line(b'DATA') + self.write_line(b'data\r\n.') + self.assertEqual(self.server.messages, + [(('peer-address', 'peer-port'), + 'eggs@example', + ['spam@example','ham@example'], + 'data')]) + + def test_manual_status(self): + # checks that the Channel is able to return a custom status message + self.write_line(b'HELO example') + self.write_line(b'MAIL From:eggs@example') + self.write_line(b'RCPT To:spam@example') + self.write_line(b'DATA') + self.write_line(b'return status\r\n.') + self.assertEqual(self.channel.socket.last, b'250 Okish\r\n') + + def test_RSET(self): + self.write_line(b'HELO example') + self.write_line(b'MAIL From:eggs@example') + self.write_line(b'RCPT To:spam@example') + self.write_line(b'RSET') + self.assertEqual(self.channel.socket.last, b'250 OK\r\n') + self.write_line(b'MAIL From:foo@example') + self.write_line(b'RCPT To:eggs@example') + self.write_line(b'DATA') + self.write_line(b'data\r\n.') + self.assertEqual(self.server.messages, + [(('peer-address', 'peer-port'), + 'foo@example', + ['eggs@example'], + 'data')]) + + def test_HELO_RSET(self): + self.write_line(b'HELO example') + self.write_line(b'RSET') + self.assertEqual(self.channel.socket.last, b'250 OK\r\n') + + def test_RSET_syntax(self): + self.write_line(b'RSET hi') + self.assertEqual(self.channel.socket.last, b'501 Syntax: RSET\r\n') + + def test_unknown_command(self): + self.write_line(b'UNKNOWN_CMD') + self.assertEqual(self.channel.socket.last, + b'500 Error: command "UNKNOWN_CMD" not ' + \ + b'recognized\r\n') + + def test_attribute_deprecations(self): + with warnings_helper.check_warnings(('', DeprecationWarning)): + spam = self.channel._SMTPChannel__server + with warnings_helper.check_warnings(('', DeprecationWarning)): + self.channel._SMTPChannel__server = 'spam' + with warnings_helper.check_warnings(('', DeprecationWarning)): + spam = self.channel._SMTPChannel__line + with warnings_helper.check_warnings(('', DeprecationWarning)): + self.channel._SMTPChannel__line = 'spam' + with warnings_helper.check_warnings(('', DeprecationWarning)): + spam = self.channel._SMTPChannel__state + with warnings_helper.check_warnings(('', DeprecationWarning)): + self.channel._SMTPChannel__state = 'spam' + with warnings_helper.check_warnings(('', DeprecationWarning)): + spam = self.channel._SMTPChannel__greeting + with warnings_helper.check_warnings(('', DeprecationWarning)): + self.channel._SMTPChannel__greeting = 'spam' + with warnings_helper.check_warnings(('', DeprecationWarning)): + spam = self.channel._SMTPChannel__mailfrom + with warnings_helper.check_warnings(('', DeprecationWarning)): + self.channel._SMTPChannel__mailfrom = 'spam' + with warnings_helper.check_warnings(('', DeprecationWarning)): + spam = self.channel._SMTPChannel__rcpttos + with warnings_helper.check_warnings(('', DeprecationWarning)): + self.channel._SMTPChannel__rcpttos = 'spam' + with warnings_helper.check_warnings(('', DeprecationWarning)): + spam = self.channel._SMTPChannel__data + with warnings_helper.check_warnings(('', DeprecationWarning)): + self.channel._SMTPChannel__data = 'spam' + with warnings_helper.check_warnings(('', DeprecationWarning)): + spam = self.channel._SMTPChannel__fqdn + with warnings_helper.check_warnings(('', DeprecationWarning)): + self.channel._SMTPChannel__fqdn = 'spam' + with warnings_helper.check_warnings(('', DeprecationWarning)): + spam = self.channel._SMTPChannel__peer + with warnings_helper.check_warnings(('', DeprecationWarning)): + self.channel._SMTPChannel__peer = 'spam' + with warnings_helper.check_warnings(('', DeprecationWarning)): + spam = self.channel._SMTPChannel__conn + with warnings_helper.check_warnings(('', DeprecationWarning)): + self.channel._SMTPChannel__conn = 'spam' + with warnings_helper.check_warnings(('', DeprecationWarning)): + spam = self.channel._SMTPChannel__addr + with warnings_helper.check_warnings(('', DeprecationWarning)): + self.channel._SMTPChannel__addr = 'spam' + +@unittest.skipUnless(socket_helper.IPV6_ENABLED, "IPv6 not enabled") +class SMTPDChannelIPv6Test(SMTPDChannelTest): + def setUp(self): + smtpd.socket = asyncore.socket = mock_socket + self.old_debugstream = smtpd.DEBUGSTREAM + self.debug = smtpd.DEBUGSTREAM = io.StringIO() + self.server = DummyServer((socket_helper.HOSTv6, 0), ('b', 0), + decode_data=True) + conn, addr = self.server.accept() + self.channel = smtpd.SMTPChannel(self.server, conn, addr, + decode_data=True) + +class SMTPDChannelWithDataSizeLimitTest(unittest.TestCase): + + def setUp(self): + smtpd.socket = asyncore.socket = mock_socket + self.old_debugstream = smtpd.DEBUGSTREAM + self.debug = smtpd.DEBUGSTREAM = io.StringIO() + self.server = DummyServer((socket_helper.HOST, 0), ('b', 0), + decode_data=True) + conn, addr = self.server.accept() + # Set DATA size limit to 32 bytes for easy testing + self.channel = smtpd.SMTPChannel(self.server, conn, addr, 32, + decode_data=True) + + def tearDown(self): + asyncore.close_all() + asyncore.socket = smtpd.socket = socket + smtpd.DEBUGSTREAM = self.old_debugstream + + def write_line(self, line): + self.channel.socket.queue_recv(line) + self.channel.handle_read() + + def test_data_limit_dialog(self): + self.write_line(b'HELO example') + self.write_line(b'MAIL From:eggs@example') + self.assertEqual(self.channel.socket.last, b'250 OK\r\n') + self.write_line(b'RCPT To:spam@example') + self.assertEqual(self.channel.socket.last, b'250 OK\r\n') + + self.write_line(b'DATA') + self.assertEqual(self.channel.socket.last, + b'354 End data with <CR><LF>.<CR><LF>\r\n') + self.write_line(b'data\r\nmore\r\n.') + self.assertEqual(self.channel.socket.last, b'250 OK\r\n') + self.assertEqual(self.server.messages, + [(('peer-address', 'peer-port'), + 'eggs@example', + ['spam@example'], + 'data\nmore')]) + + def test_data_limit_dialog_too_much_data(self): + self.write_line(b'HELO example') + self.write_line(b'MAIL From:eggs@example') + self.assertEqual(self.channel.socket.last, b'250 OK\r\n') + self.write_line(b'RCPT To:spam@example') + self.assertEqual(self.channel.socket.last, b'250 OK\r\n') + + self.write_line(b'DATA') + self.assertEqual(self.channel.socket.last, + b'354 End data with <CR><LF>.<CR><LF>\r\n') + self.write_line(b'This message is longer than 32 bytes\r\n.') + self.assertEqual(self.channel.socket.last, + b'552 Error: Too much mail data\r\n') + + +class SMTPDChannelWithDecodeDataFalse(unittest.TestCase): + + def setUp(self): + smtpd.socket = asyncore.socket = mock_socket + self.old_debugstream = smtpd.DEBUGSTREAM + self.debug = smtpd.DEBUGSTREAM = io.StringIO() + self.server = DummyServer((socket_helper.HOST, 0), ('b', 0)) + conn, addr = self.server.accept() + self.channel = smtpd.SMTPChannel(self.server, conn, addr) + + def tearDown(self): + asyncore.close_all() + asyncore.socket = smtpd.socket = socket + smtpd.DEBUGSTREAM = self.old_debugstream + + def write_line(self, line): + self.channel.socket.queue_recv(line) + self.channel.handle_read() + + def test_ascii_data(self): + self.write_line(b'HELO example') + self.write_line(b'MAIL From:eggs@example') + self.write_line(b'RCPT To:spam@example') + self.write_line(b'DATA') + self.write_line(b'plain ascii text') + self.write_line(b'.') + self.assertEqual(self.channel.received_data, b'plain ascii text') + + def test_utf8_data(self): + self.write_line(b'HELO example') + self.write_line(b'MAIL From:eggs@example') + self.write_line(b'RCPT To:spam@example') + self.write_line(b'DATA') + self.write_line(b'utf8 enriched text: \xc5\xbc\xc5\xba\xc4\x87') + self.write_line(b'and some plain ascii') + self.write_line(b'.') + self.assertEqual( + self.channel.received_data, + b'utf8 enriched text: \xc5\xbc\xc5\xba\xc4\x87\n' + b'and some plain ascii') + + +class SMTPDChannelWithDecodeDataTrue(unittest.TestCase): + + def setUp(self): + smtpd.socket = asyncore.socket = mock_socket + self.old_debugstream = smtpd.DEBUGSTREAM + self.debug = smtpd.DEBUGSTREAM = io.StringIO() + self.server = DummyServer((socket_helper.HOST, 0), ('b', 0), + decode_data=True) + conn, addr = self.server.accept() + # Set decode_data to True + self.channel = smtpd.SMTPChannel(self.server, conn, addr, + decode_data=True) + + def tearDown(self): + asyncore.close_all() + asyncore.socket = smtpd.socket = socket + smtpd.DEBUGSTREAM = self.old_debugstream + + def write_line(self, line): + self.channel.socket.queue_recv(line) + self.channel.handle_read() + + def test_ascii_data(self): + self.write_line(b'HELO example') + self.write_line(b'MAIL From:eggs@example') + self.write_line(b'RCPT To:spam@example') + self.write_line(b'DATA') + self.write_line(b'plain ascii text') + self.write_line(b'.') + self.assertEqual(self.channel.received_data, 'plain ascii text') + + def test_utf8_data(self): + self.write_line(b'HELO example') + self.write_line(b'MAIL From:eggs@example') + self.write_line(b'RCPT To:spam@example') + self.write_line(b'DATA') + self.write_line(b'utf8 enriched text: \xc5\xbc\xc5\xba\xc4\x87') + self.write_line(b'and some plain ascii') + self.write_line(b'.') + self.assertEqual( + self.channel.received_data, + 'utf8 enriched text: żźć\nand some plain ascii') + + +class SMTPDChannelTestWithEnableSMTPUTF8True(unittest.TestCase): + def setUp(self): + smtpd.socket = asyncore.socket = mock_socket + self.old_debugstream = smtpd.DEBUGSTREAM + self.debug = smtpd.DEBUGSTREAM = io.StringIO() + self.server = DummyServer((socket_helper.HOST, 0), ('b', 0), + enable_SMTPUTF8=True) + conn, addr = self.server.accept() + self.channel = smtpd.SMTPChannel(self.server, conn, addr, + enable_SMTPUTF8=True) + + def tearDown(self): + asyncore.close_all() + asyncore.socket = smtpd.socket = socket + smtpd.DEBUGSTREAM = self.old_debugstream + + def write_line(self, line): + self.channel.socket.queue_recv(line) + self.channel.handle_read() + + def test_MAIL_command_accepts_SMTPUTF8_when_announced(self): + self.write_line(b'EHLO example') + self.write_line( + 'MAIL from: <naïve@example.com> BODY=8BITMIME SMTPUTF8'.encode( + 'utf-8') + ) + self.assertEqual(self.channel.socket.last, b'250 OK\r\n') + + def test_process_smtputf8_message(self): + self.write_line(b'EHLO example') + for mail_parameters in [b'', b'BODY=8BITMIME SMTPUTF8']: + self.write_line(b'MAIL from: <a@example> ' + mail_parameters) + self.assertEqual(self.channel.socket.last[0:3], b'250') + self.write_line(b'rcpt to:<b@example.com>') + self.assertEqual(self.channel.socket.last[0:3], b'250') + self.write_line(b'data') + self.assertEqual(self.channel.socket.last[0:3], b'354') + self.write_line(b'c\r\n.') + if mail_parameters == b'': + self.assertEqual(self.channel.socket.last, b'250 OK\r\n') + else: + self.assertEqual(self.channel.socket.last, + b'250 SMTPUTF8 message okish\r\n') + + def test_utf8_data(self): + self.write_line(b'EHLO example') + self.write_line( + 'MAIL From: naïve@examplé BODY=8BITMIME SMTPUTF8'.encode('utf-8')) + self.assertEqual(self.channel.socket.last[0:3], b'250') + self.write_line('RCPT To:späm@examplé'.encode('utf-8')) + self.assertEqual(self.channel.socket.last[0:3], b'250') + self.write_line(b'DATA') + self.assertEqual(self.channel.socket.last[0:3], b'354') + self.write_line(b'utf8 enriched text: \xc5\xbc\xc5\xba\xc4\x87') + self.write_line(b'.') + self.assertEqual( + self.channel.received_data, + b'utf8 enriched text: \xc5\xbc\xc5\xba\xc4\x87') + + def test_MAIL_command_limit_extended_with_SIZE_and_SMTPUTF8(self): + self.write_line(b'ehlo example') + fill_len = (512 + 26 + 10) - len('mail from:<@example>') + self.write_line(b'MAIL from:<' + + b'a' * (fill_len + 1) + + b'@example>') + self.assertEqual(self.channel.socket.last, + b'500 Error: line too long\r\n') + self.write_line(b'MAIL from:<' + + b'a' * fill_len + + b'@example>') + self.assertEqual(self.channel.socket.last, b'250 OK\r\n') + + def test_multiple_emails_with_extended_command_length(self): + self.write_line(b'ehlo example') + fill_len = (512 + 26 + 10) - len('mail from:<@example>') + for char in [b'a', b'b', b'c']: + self.write_line(b'MAIL from:<' + char * fill_len + b'a@example>') + self.assertEqual(self.channel.socket.last[0:3], b'500') + self.write_line(b'MAIL from:<' + char * fill_len + b'@example>') + self.assertEqual(self.channel.socket.last[0:3], b'250') + self.write_line(b'rcpt to:<hans@example.com>') + self.assertEqual(self.channel.socket.last[0:3], b'250') + self.write_line(b'data') + self.assertEqual(self.channel.socket.last[0:3], b'354') + self.write_line(b'test\r\n.') + self.assertEqual(self.channel.socket.last[0:3], b'250') + + +class MiscTestCase(unittest.TestCase): + def test__all__(self): + not_exported = { + "program", "Devnull", "DEBUGSTREAM", "NEWLINE", "COMMASPACE", + "DATA_SIZE_DEFAULT", "usage", "Options", "parseargs", + } + support.check__all__(self, smtpd, not_exported=not_exported) + + +if __name__ == "__main__": + unittest.main() diff --git a/Lib/test/test_smtplib.py b/Lib/test/test_smtplib.py index 3210ef217703e5..a4074c02f1926f 100644 --- a/Lib/test/test_smtplib.py +++ b/Lib/test/test_smtplib.py @@ -24,9 +24,9 @@ from test.support import warnings_helper from unittest.mock import Mock -from . import smtpd asyncore = warnings_helper.import_deprecated('asyncore') +smtpd = warnings_helper.import_deprecated('smtpd') support.requires_working_socket(module=True) diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py old mode 100644 new mode 100755 index d808f3f62b96dc..c98190382416ca --- a/Lib/test/test_socket.py +++ b/Lib/test/test_socket.py @@ -4,30 +4,31 @@ from test.support import socket_helper from test.support import threading_helper -import _thread as thread -import array -import contextlib import errno import io import itertools -import math -import os -import pickle -import platform -import queue -import random -import re -import select -import signal import socket -import string -import struct -import sys +import select import tempfile -import threading import time import traceback +import queue +import sys +import os +import platform +import array +import contextlib from weakref import proxy +import signal +import math +import pickle +import re +import struct +import random +import shutil +import string +import _thread as thread +import threading try: import multiprocessing except ImportError: @@ -604,18 +605,17 @@ class SocketTestBase(unittest.TestCase): def setUp(self): self.serv = self.newSocket() - self.addCleanup(self.close_server) self.bindServer() - def close_server(self): - self.serv.close() - self.serv = None - def bindServer(self): """Bind server socket and set self.serv_addr to its address.""" self.bindSock(self.serv) self.serv_addr = self.serv.getsockname() + def tearDown(self): + self.serv.close() + self.serv = None + class SocketListeningTestMixin(SocketTestBase): """Mixin to listen on the server socket.""" @@ -700,10 +700,15 @@ class UnixSocketTestBase(SocketTestBase): # can't send anything that might be problematic for a privileged # user running the tests. + def setUp(self): + self.dir_path = tempfile.mkdtemp() + self.addCleanup(os.rmdir, self.dir_path) + super().setUp() + def bindSock(self, sock): - path = socket_helper.create_unix_domain_name() - self.addCleanup(os_helper.unlink, path) + path = tempfile.mktemp(dir=self.dir_path) socket_helper.bind_unix_socket(sock, path) + self.addCleanup(os_helper.unlink, path) class UnixStreamBase(UnixSocketTestBase): """Base class for Unix-domain SOCK_STREAM tests.""" @@ -965,19 +970,6 @@ def testWindowsSpecificConstants(self): socket.IPPROTO_L2TP socket.IPPROTO_SCTP - @unittest.skipIf(support.is_wasi, "WASI is missing these methods") - def test_socket_methods(self): - # socket methods that depend on a configure HAVE_ check. They should - # be present on all platforms except WASI. - names = [ - "_accept", "bind", "connect", "connect_ex", "getpeername", - "getsockname", "listen", "recvfrom", "recvfrom_into", "sendto", - "setsockopt", "shutdown" - ] - for name in names: - if not hasattr(socket.socket, name): - self.fail(f"socket method {name} is missing") - @unittest.skipUnless(sys.platform == 'darwin', 'macOS specific test') @unittest.skipUnless(socket_helper.IPV6_ENABLED, 'IPv6 required for this test') def test3542SocketOptions(self): @@ -1398,21 +1390,10 @@ def testStringToIPv6(self): def testSockName(self): # Testing getsockname() + port = socket_helper.find_unused_port() sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.addCleanup(sock.close) - - # Since find_unused_port() is inherently subject to race conditions, we - # call it a couple times if necessary. - for i in itertools.count(): - port = socket_helper.find_unused_port() - try: - sock.bind(("0.0.0.0", port)) - except OSError as e: - if e.errno != errno.EADDRINUSE or i == 5: - raise - else: - break - + sock.bind(("0.0.0.0", port)) name = sock.getsockname() # XXX(nnorwitz): http://tinyurl.com/os5jz seems to indicate # it reasonable to get the host's addr in addition to 0.0.0.0. @@ -1924,18 +1905,17 @@ def test_socket_fileno(self): self._test_socket_fileno(s, socket.AF_INET6, socket.SOCK_STREAM) if hasattr(socket, "AF_UNIX"): - unix_name = socket_helper.create_unix_domain_name() - self.addCleanup(os_helper.unlink, unix_name) - + tmpdir = tempfile.mkdtemp() + self.addCleanup(shutil.rmtree, tmpdir) s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) - with s: - try: - s.bind(unix_name) - except PermissionError: - pass - else: - self._test_socket_fileno(s, socket.AF_UNIX, - socket.SOCK_STREAM) + self.addCleanup(s.close) + try: + s.bind(os.path.join(tmpdir, 'socket')) + except PermissionError: + pass + else: + self._test_socket_fileno(s, socket.AF_UNIX, + socket.SOCK_STREAM) def test_socket_fileno_rejects_float(self): with self.assertRaises(TypeError): @@ -2500,6 +2480,7 @@ class BasicHyperVTest(unittest.TestCase): def testHyperVConstants(self): socket.HVSOCKET_CONNECT_TIMEOUT socket.HVSOCKET_CONNECT_TIMEOUT_MAX + socket.HVSOCKET_CONTAINER_PASSTHRU socket.HVSOCKET_CONNECTED_SUSPEND socket.HVSOCKET_ADDRESS_FLAG_PASSTHRU socket.HV_GUID_ZERO @@ -5567,20 +5548,6 @@ def testBytearrayName(self): s.bind(bytearray(b"\x00python\x00test\x00")) self.assertEqual(s.getsockname(), b"\x00python\x00test\x00") - def testAutobind(self): - # Check that binding to an empty string binds to an available address - # in the abstract namespace as specified in unix(7) "Autobind feature". - abstract_address = b"^\0[0-9a-f]{5}" - with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as s1: - s1.bind("") - self.assertRegex(s1.getsockname(), abstract_address) - # Each socket is bound to a different abstract address. - with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as s2: - s2.bind("") - self.assertRegex(s2.getsockname(), abstract_address) - self.assertNotEqual(s1.getsockname(), s2.getsockname()) - - @unittest.skipUnless(hasattr(socket, 'AF_UNIX'), 'test needs socket.AF_UNIX') class TestUnixDomain(unittest.TestCase): @@ -5650,11 +5617,6 @@ def testUnencodableAddr(self): self.addCleanup(os_helper.unlink, path) self.assertEqual(self.sock.getsockname(), path) - @unittest.skipIf(sys.platform == 'linux', 'Linux specific test') - def testEmptyAddress(self): - # Test that binding empty address fails. - self.assertRaises(OSError, self.sock.bind, "") - class BufferIOTest(SocketConnectedTest): """ diff --git a/Lib/test/test_socketserver.py b/Lib/test/test_socketserver.py index 2fa5069423327a..2edb1e0c0e21e2 100644 --- a/Lib/test/test_socketserver.py +++ b/Lib/test/test_socketserver.py @@ -8,6 +8,7 @@ import select import signal import socket +import tempfile import threading import unittest import socketserver @@ -97,7 +98,8 @@ def pickaddr(self, proto): else: # XXX: We need a way to tell AF_UNIX to pick its own name # like AF_INET provides port==0. - fn = socket_helper.create_unix_domain_name() + dir = None + fn = tempfile.mktemp(prefix='unix_socket.', dir=dir) self.test_files.append(fn) return fn diff --git a/Lib/test/test_sort.py b/Lib/test/test_sort.py index 3b6ad4d17b0416..41de4b684f6251 100644 --- a/Lib/test/test_sort.py +++ b/Lib/test/test_sort.py @@ -378,12 +378,6 @@ def test_not_all_tuples(self): self.assertRaises(TypeError, [(1.0, 1.0), (False, "A"), 6].sort) self.assertRaises(TypeError, [('a', 1), (1, 'a')].sort) self.assertRaises(TypeError, [(1, 'a'), ('a', 1)].sort) - - def test_none_in_tuples(self): - expected = [(None, 1), (None, 2)] - actual = sorted([(None, 2), (None, 1)]) - self.assertEqual(actual, expected) - #============================================================================== if __name__ == "__main__": diff --git a/Lib/test/test_source_encoding.py b/Lib/test/test_source_encoding.py index cfc4b13f18f330..a0375fda0d3656 100644 --- a/Lib/test/test_source_encoding.py +++ b/Lib/test/test_source_encoding.py @@ -1,4 +1,4 @@ -# -*- coding: utf-8 -*- +# -*- coding: koi8-r -*- import unittest from test.support import script_helper, captured_stdout, requires_subprocess @@ -12,14 +12,15 @@ class MiscSourceEncodingTest(unittest.TestCase): - def test_import_encoded_module(self): - from test.encoded_modules import test_strings - # Make sure we're actually testing something - self.assertGreaterEqual(len(test_strings), 1) - for modname, encoding, teststr in test_strings: - mod = importlib.import_module('test.encoded_modules.' - 'module_' + modname) - self.assertEqual(teststr, mod.test) + def test_pep263(self): + self.assertEqual( + "".encode("utf-8"), + b'\xd0\x9f\xd0\xb8\xd1\x82\xd0\xbe\xd0\xbd' + ) + self.assertEqual( + "\".encode("utf-8"), + b'\\\xd0\x9f' + ) def test_compilestring(self): # see #1882 @@ -147,18 +148,6 @@ def test_error_from_string(self): self.assertTrue(c.exception.args[0].startswith(expected), msg=c.exception.args[0]) - def test_file_parse_error_multiline(self): - # gh96611: - with open(TESTFN, "wb") as fd: - fd.write(b'print("""\n\xb1""")\n') - - try: - retcode, stdout, stderr = script_helper.assert_python_failure(TESTFN) - - self.assertGreater(retcode, 0) - self.assertIn(b"Non-UTF-8 code starting with '\\xb1'", stderr) - finally: - os.unlink(TESTFN) class AbstractSourceEncodingTest: @@ -235,74 +224,6 @@ def test_crcrcrlf2(self): out = self.check_script_output(src, br"'\n\n\n'") -class UTF8ValidatorTest(unittest.TestCase): - @unittest.skipIf(not sys.platform.startswith("linux"), - "Too slow to run on non-Linux platforms") - def test_invalid_utf8(self): - # This is a port of test_utf8_decode_invalid_sequences in - # test_unicode.py to exercise the separate utf8 validator in - # Parser/tokenizer.c used when reading source files. - - # That file is written using low-level C file I/O, so the only way to - # test it is to write actual files to disk. - - # Each example is put inside a string at the top of the file so - # it's an otherwise valid Python source file. Put some newlines - # beforehand so we can assert that the error is reported on the - # correct line. - template = b'\n\n\n"%s"\n' - - fn = TESTFN - self.addCleanup(unlink, fn) - - def check(content): - with open(fn, 'wb') as fp: - fp.write(template % content) - rc, stdout, stderr = script_helper.assert_python_failure(fn) - # We want to assert that the python subprocess failed gracefully, - # not via a signal. - self.assertGreaterEqual(rc, 1) - self.assertIn(b"Non-UTF-8 code starting with", stderr) - self.assertIn(b"on line 4", stderr) - - # continuation bytes in a sequence of 2, 3, or 4 bytes - continuation_bytes = [bytes([x]) for x in range(0x80, 0xC0)] - # start bytes of a 2-byte sequence equivalent to code points < 0x7F - invalid_2B_seq_start_bytes = [bytes([x]) for x in range(0xC0, 0xC2)] - # start bytes of a 4-byte sequence equivalent to code points > 0x10FFFF - invalid_4B_seq_start_bytes = [bytes([x]) for x in range(0xF5, 0xF8)] - invalid_start_bytes = ( - continuation_bytes + invalid_2B_seq_start_bytes + - invalid_4B_seq_start_bytes + [bytes([x]) for x in range(0xF7, 0x100)] - ) - - for byte in invalid_start_bytes: - check(byte) - - for sb in invalid_2B_seq_start_bytes: - for cb in continuation_bytes: - check(sb + cb) - - for sb in invalid_4B_seq_start_bytes: - for cb1 in continuation_bytes[:3]: - for cb3 in continuation_bytes[:3]: - check(sb+cb1+b'\x80'+cb3) - - for cb in [bytes([x]) for x in range(0x80, 0xA0)]: - check(b'\xE0'+cb+b'\x80') - check(b'\xE0'+cb+b'\xBF') - # surrogates - for cb in [bytes([x]) for x in range(0xA0, 0xC0)]: - check(b'\xED'+cb+b'\x80') - check(b'\xED'+cb+b'\xBF') - for cb in [bytes([x]) for x in range(0x80, 0x90)]: - check(b'\xF0'+cb+b'\x80\x80') - check(b'\xF0'+cb+b'\xBF\xBF') - for cb in [bytes([x]) for x in range(0x90, 0xC0)]: - check(b'\xF4'+cb+b'\x80\x80') - check(b'\xF4'+cb+b'\xBF\xBF') - - class BytesSourceEncodingTest(AbstractSourceEncodingTest, unittest.TestCase): def check_script_output(self, src, expected): diff --git a/Lib/test/test_sqlite3/__init__.py b/Lib/test/test_sqlite3/__init__.py index d777fca82da4b0..099c01e3b3cc70 100644 --- a/Lib/test/test_sqlite3/__init__.py +++ b/Lib/test/test_sqlite3/__init__.py @@ -3,6 +3,7 @@ # Skip test if _sqlite3 module not installed. import_helper.import_module('_sqlite3') +import unittest import os import sqlite3 @@ -12,4 +13,6 @@ def load_tests(*args): return load_package_tests(pkg_dir, *args) if verbose: - print(f"test_sqlite3: testing with SQLite version {sqlite3.sqlite_version}") + print("test_sqlite3: testing with version", + "{!r}, sqlite_version {!r}".format(sqlite3.version, + sqlite3.sqlite_version)) diff --git a/Lib/test/test_sqlite3/__main__.py b/Lib/test/test_sqlite3/__main__.py index ca6a8347fbd231..51eddc3c2fde02 100644 --- a/Lib/test/test_sqlite3/__main__.py +++ b/Lib/test/test_sqlite3/__main__.py @@ -1,4 +1,5 @@ from test.test_sqlite3 import load_tests # Needed for the "load tests" protocol. import unittest -unittest.main() +if __name__ == "__main__": + unittest.main() diff --git a/Lib/test/test_sqlite3/test_cli.py b/Lib/test/test_sqlite3/test_cli.py deleted file mode 100644 index d374f8ee4fc8d3..00000000000000 --- a/Lib/test/test_sqlite3/test_cli.py +++ /dev/null @@ -1,155 +0,0 @@ -"""sqlite3 CLI tests.""" - -import sqlite3 as sqlite -import subprocess -import sys -import unittest - -from test.support import SHORT_TIMEOUT, requires_subprocess -from test.support.os_helper import TESTFN, unlink - - -@requires_subprocess() -class CommandLineInterface(unittest.TestCase): - - def _do_test(self, *args, expect_success=True): - with subprocess.Popen( - [sys.executable, "-Xutf8", "-m", "sqlite3", *args], - encoding="utf-8", - bufsize=0, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE, - ) as proc: - proc.wait() - if expect_success == bool(proc.returncode): - self.fail("".join(proc.stderr)) - stdout = proc.stdout.read() - stderr = proc.stderr.read() - if expect_success: - self.assertEqual(stderr, "") - else: - self.assertEqual(stdout, "") - return stdout, stderr - - def expect_success(self, *args): - out, _ = self._do_test(*args) - return out - - def expect_failure(self, *args): - _, err = self._do_test(*args, expect_success=False) - return err - - def test_cli_help(self): - out = self.expect_success("-h") - self.assertIn("usage: python -m sqlite3", out) - - def test_cli_version(self): - out = self.expect_success("-v") - self.assertIn(sqlite.sqlite_version, out) - - def test_cli_execute_sql(self): - out = self.expect_success(":memory:", "select 1") - self.assertIn("(1,)", out) - - def test_cli_execute_too_much_sql(self): - stderr = self.expect_failure(":memory:", "select 1; select 2") - err = "ProgrammingError: You can only execute one statement at a time" - self.assertIn(err, stderr) - - def test_cli_execute_incomplete_sql(self): - stderr = self.expect_failure(":memory:", "sel") - self.assertIn("OperationalError (SQLITE_ERROR)", stderr) - - def test_cli_on_disk_db(self): - self.addCleanup(unlink, TESTFN) - out = self.expect_success(TESTFN, "create table t(t)") - self.assertEqual(out, "") - out = self.expect_success(TESTFN, "select count(t) from t") - self.assertIn("(0,)", out) - - -@requires_subprocess() -class InteractiveSession(unittest.TestCase): - TIMEOUT = SHORT_TIMEOUT / 10. - MEMORY_DB_MSG = "Connected to a transient in-memory database" - PS1 = "sqlite> " - PS2 = "... " - - def start_cli(self, *args): - return subprocess.Popen( - [sys.executable, "-Xutf8", "-m", "sqlite3", *args], - encoding="utf-8", - bufsize=0, - stdin=subprocess.PIPE, - # Note: the banner is printed to stderr, the prompt to stdout. - stdout=subprocess.PIPE, - stderr=subprocess.PIPE, - ) - - def expect_success(self, proc): - proc.wait() - if proc.returncode: - self.fail("".join(proc.stderr)) - - def test_interact(self): - with self.start_cli() as proc: - out, err = proc.communicate(timeout=self.TIMEOUT) - self.assertIn(self.MEMORY_DB_MSG, err) - self.assertIn(self.PS1, out) - self.expect_success(proc) - - def test_interact_quit(self): - with self.start_cli() as proc: - out, err = proc.communicate(input=".quit", timeout=self.TIMEOUT) - self.assertIn(self.MEMORY_DB_MSG, err) - self.assertIn(self.PS1, out) - self.expect_success(proc) - - def test_interact_version(self): - with self.start_cli() as proc: - out, err = proc.communicate(input=".version", timeout=self.TIMEOUT) - self.assertIn(self.MEMORY_DB_MSG, err) - self.assertIn(sqlite.sqlite_version, out) - self.expect_success(proc) - - def test_interact_valid_sql(self): - with self.start_cli() as proc: - out, err = proc.communicate(input="select 1;", - timeout=self.TIMEOUT) - self.assertIn(self.MEMORY_DB_MSG, err) - self.assertIn("(1,)", out) - self.expect_success(proc) - - def test_interact_valid_multiline_sql(self): - with self.start_cli() as proc: - out, err = proc.communicate(input="select 1\n;", - timeout=self.TIMEOUT) - self.assertIn(self.MEMORY_DB_MSG, err) - self.assertIn(self.PS2, out) - self.assertIn("(1,)", out) - self.expect_success(proc) - - def test_interact_invalid_sql(self): - with self.start_cli() as proc: - out, err = proc.communicate(input="sel;", timeout=self.TIMEOUT) - self.assertIn(self.MEMORY_DB_MSG, err) - self.assertIn("OperationalError (SQLITE_ERROR)", err) - self.expect_success(proc) - - def test_interact_on_disk_file(self): - self.addCleanup(unlink, TESTFN) - with self.start_cli(TESTFN) as proc: - out, err = proc.communicate(input="create table t(t);", - timeout=self.TIMEOUT) - self.assertIn(TESTFN, err) - self.assertIn(self.PS1, out) - self.expect_success(proc) - with self.start_cli(TESTFN, "select count(t) from t") as proc: - out = proc.stdout.read() - err = proc.stderr.read() - self.assertIn("(0,)", out) - self.expect_success(proc) - - -if __name__ == "__main__": - unittest.main() diff --git a/Lib/test/test_sqlite3/test_dbapi.py b/Lib/test/test_sqlite3/test_dbapi.py index 363a308f3e5fec..1fa02db3b3af41 100644 --- a/Lib/test/test_sqlite3/test_dbapi.py +++ b/Lib/test/test_sqlite3/test_dbapi.py @@ -29,10 +29,7 @@ import unittest import urllib.parse -from test.support import ( - SHORT_TIMEOUT, check_disallow_instantiation, requires_subprocess, - is_emscripten, is_wasi -) +from test.support import SHORT_TIMEOUT, check_disallow_instantiation from test.support import threading_helper from _testcapi import INT_MAX, ULLONG_MAX from os import SEEK_SET, SEEK_CUR, SEEK_END @@ -60,17 +57,6 @@ def test_api_level(self): self.assertEqual(sqlite.apilevel, "2.0", "apilevel is %s, should be 2.0" % sqlite.apilevel) - def test_deprecated_version(self): - msg = "deprecated and will be removed in Python 3.14" - for attr in "version", "version_info": - with self.subTest(attr=attr): - with self.assertWarnsRegex(DeprecationWarning, msg) as cm: - getattr(sqlite, attr) - self.assertEqual(cm.filename, __file__) - with self.assertWarnsRegex(DeprecationWarning, msg) as cm: - getattr(sqlite.dbapi2, attr) - self.assertEqual(cm.filename, __file__) - def test_thread_safety(self): self.assertIn(sqlite.threadsafety, {0, 1, 3}, "threadsafety is %d, should be 0, 1 or 3" % @@ -656,7 +642,6 @@ def test_open_with_path_like_object(self): @unittest.skipIf(sys.platform == "win32", "skipped on Windows") @unittest.skipIf(sys.platform == "darwin", "skipped on macOS") - @unittest.skipIf(is_emscripten or is_wasi, "not supported on Emscripten/WASI") @unittest.skipUnless(TESTFN_UNDECODABLE, "only works if there are undecodable paths") def test_open_with_undecodable_path(self): path = TESTFN_UNDECODABLE @@ -702,7 +687,6 @@ def test_open_uri_readonly(self): @unittest.skipIf(sys.platform == "win32", "skipped on Windows") @unittest.skipIf(sys.platform == "darwin", "skipped on macOS") - @unittest.skipIf(is_emscripten or is_wasi, "not supported on Emscripten/WASI") @unittest.skipUnless(TESTFN_UNDECODABLE, "only works if there are undecodable paths") def test_open_undecodable_uri(self): path = TESTFN_UNDECODABLE @@ -751,44 +735,22 @@ def test_execute_illegal_sql(self): with self.assertRaises(sqlite.OperationalError): self.cu.execute("select asdf") - def test_execute_multiple_statements(self): - msg = "You can only execute one statement at a time" - dataset = ( - "select 1; select 2", - "select 1; // c++ comments are not allowed", - "select 1; *not a comment", - "select 1; -*not a comment", - "select 1; /* */ a", - "select 1; /**/a", - "select 1; -", - "select 1; /", - "select 1; -\n- select 2", - """select 1; - -- comment - select 2 - """, - ) - for query in dataset: - with self.subTest(query=query): - with self.assertRaisesRegex(sqlite.ProgrammingError, msg): - self.cu.execute(query) + def test_execute_too_much_sql(self): + self.assertRaisesRegex(sqlite.ProgrammingError, + "You can only execute one statement at a time", + self.cu.execute, "select 5+4; select 4+5") - def test_execute_with_appended_comments(self): - dataset = ( - "select 1; -- foo bar", - "select 1; --", - "select 1; /*", # Unclosed comments ending in \0 are skipped. - """ + def test_execute_too_much_sql2(self): + self.cu.execute("select 5+4; -- foo bar") + + def test_execute_too_much_sql3(self): + self.cu.execute(""" select 5+4; /* foo */ - """, - ) - for query in dataset: - with self.subTest(query=query): - self.cu.execute(query) + """) def test_execute_wrong_sql_arg(self): with self.assertRaises(TypeError): @@ -925,38 +887,6 @@ def test_rowcount_executemany(self): self.cu.executemany("insert into test(name) values (?)", [(1,), (2,), (3,)]) self.assertEqual(self.cu.rowcount, 3) - @unittest.skipIf(sqlite.sqlite_version_info < (3, 35, 0), - "Requires SQLite 3.35.0 or newer") - def test_rowcount_update_returning(self): - # gh-93421: rowcount is updated correctly for UPDATE...RETURNING queries - self.cu.execute("update test set name='bar' where name='foo' returning 1") - self.assertEqual(self.cu.fetchone()[0], 1) - self.assertEqual(self.cu.rowcount, 1) - - def test_rowcount_prefixed_with_comment(self): - # gh-79579: rowcount is updated even if query is prefixed with comments - self.cu.execute(""" - -- foo - insert into test(name) values ('foo'), ('foo') - """) - self.assertEqual(self.cu.rowcount, 2) - self.cu.execute(""" - /* -- messy *r /* /* ** *- *-- - */ - /* one more */ insert into test(name) values ('messy') - """) - self.assertEqual(self.cu.rowcount, 1) - self.cu.execute("/* bar */ update test set name='bar' where name='foo'") - self.assertEqual(self.cu.rowcount, 3) - - def test_rowcount_vaccuum(self): - data = ((1,), (2,), (3,)) - self.cu.executemany("insert into test(income) values(?)", data) - self.assertEqual(self.cu.rowcount, 3) - self.cx.commit() - self.cu.execute("vacuum") - self.assertEqual(self.cu.rowcount, -1) - def test_total_changes(self): self.cu.execute("insert into test(name) values ('foo')") self.cu.execute("insert into test(name) values ('foo')") @@ -1458,7 +1388,6 @@ def test_blob_closed_db_read(self): blob.read) -@threading_helper.requires_working_threading() class ThreadTests(unittest.TestCase): def setUp(self): self.con = sqlite.connect(":memory:") @@ -1823,7 +1752,6 @@ def test_on_conflict_replace(self): self.assertEqual(self.cu.fetchall(), [('Very different data!', 'foo')]) -@requires_subprocess() class MultiprocessTests(unittest.TestCase): CONNECTION_TIMEOUT = SHORT_TIMEOUT / 1000. # Defaults to 30 ms diff --git a/Lib/test/test_sqlite3/test_dump.py b/Lib/test/test_sqlite3/test_dump.py index d0c24b9c60e613..1f14c620f0d24b 100644 --- a/Lib/test/test_sqlite3/test_dump.py +++ b/Lib/test/test_sqlite3/test_dump.py @@ -2,8 +2,6 @@ import unittest import sqlite3 as sqlite -from .test_dbapi import memory_database - class DumpTests(unittest.TestCase): def setUp(self): @@ -51,51 +49,6 @@ def test_table_dump(self): [self.assertEqual(expected_sqls[i], actual_sqls[i]) for i in range(len(expected_sqls))] - def test_dump_autoincrement(self): - expected = [ - 'CREATE TABLE "t1" (id integer primary key autoincrement);', - 'INSERT INTO "t1" VALUES(NULL);', - 'CREATE TABLE "t2" (id integer primary key autoincrement);', - ] - self.cu.executescript("".join(expected)) - - # the NULL value should now be automatically be set to 1 - expected[1] = expected[1].replace("NULL", "1") - expected.insert(0, "BEGIN TRANSACTION;") - expected.extend([ - 'DELETE FROM "sqlite_sequence";', - 'INSERT INTO "sqlite_sequence" VALUES(\'t1\',1);', - 'COMMIT;', - ]) - - actual = [stmt for stmt in self.cx.iterdump()] - self.assertEqual(expected, actual) - - def test_dump_autoincrement_create_new_db(self): - self.cu.execute("BEGIN TRANSACTION") - self.cu.execute("CREATE TABLE t1 (id integer primary key autoincrement)") - self.cu.execute("CREATE TABLE t2 (id integer primary key autoincrement)") - self.cu.executemany("INSERT INTO t1 VALUES(?)", ((None,) for _ in range(9))) - self.cu.executemany("INSERT INTO t2 VALUES(?)", ((None,) for _ in range(4))) - self.cx.commit() - - with memory_database() as cx2: - query = "".join(self.cx.iterdump()) - cx2.executescript(query) - cu2 = cx2.cursor() - - dataset = ( - ("t1", 9), - ("t2", 4), - ) - for table, seq in dataset: - with self.subTest(table=table, seq=seq): - res = cu2.execute(""" - SELECT "seq" FROM "sqlite_sequence" WHERE "name" == ? - """, (table,)) - rows = res.fetchall() - self.assertEqual(rows[0][0], seq) - def test_unorderable_row(self): # iterdump() should be able to cope with unorderable row types (issue #15545) class UnorderableRow: diff --git a/Lib/test/test_sqlite3/test_factory.py b/Lib/test/test_sqlite3/test_factory.py index 7fdc45ab69243d..71603faa02840f 100644 --- a/Lib/test/test_sqlite3/test_factory.py +++ b/Lib/test/test_sqlite3/test_factory.py @@ -50,26 +50,6 @@ def __init__(self, *args, **kwargs): con = sqlite.connect(":memory:", factory=factory) self.assertIsInstance(con, factory) - def test_connection_factory_relayed_call(self): - # gh-95132: keyword args must not be passed as positional args - class Factory(sqlite.Connection): - def __init__(self, *args, **kwargs): - kwargs["isolation_level"] = None - super(Factory, self).__init__(*args, **kwargs) - - con = sqlite.connect(":memory:", factory=Factory) - self.assertIsNone(con.isolation_level) - self.assertIsInstance(con, Factory) - - def test_connection_factory_as_positional_arg(self): - class Factory(sqlite.Connection): - def __init__(self, *args, **kwargs): - super(Factory, self).__init__(*args, **kwargs) - - con = sqlite.connect(":memory:", 5.0, 0, None, True, Factory) - self.assertIsNone(con.isolation_level) - self.assertIsInstance(con, Factory) - class CursorFactoryTests(unittest.TestCase): def setUp(self): diff --git a/Lib/test/test_sqlite3/test_regression.py b/Lib/test/test_sqlite3/test_regression.py index ad83a97c8c40d6..0b727cecb0e8cb 100644 --- a/Lib/test/test_sqlite3/test_regression.py +++ b/Lib/test/test_sqlite3/test_regression.py @@ -129,8 +129,7 @@ def test_type_map_usage(self): con = sqlite.connect(":memory:",detect_types=sqlite.PARSE_DECLTYPES) cur = con.cursor() cur.execute("create table foo(bar timestamp)") - with self.assertWarnsRegex(DeprecationWarning, "adapter"): - cur.execute("insert into foo(bar) values (?)", (datetime.datetime.now(),)) + cur.execute("insert into foo(bar) values (?)", (datetime.datetime.now(),)) cur.execute(SELECT) cur.execute("drop table foo") cur.execute("create table foo(bar integer)") @@ -306,8 +305,7 @@ def test_convert_timestamp_microsecond_padding(self): cur.execute("INSERT INTO t (x) VALUES ('2012-04-04 15:06:00.123456789')") cur.execute("SELECT * FROM t") - with self.assertWarnsRegex(DeprecationWarning, "converter"): - values = [x[0] for x in cur.fetchall()] + values = [x[0] for x in cur.fetchall()] self.assertEqual(values, [ datetime.datetime(2012, 4, 4, 15, 6, 0, 456000), diff --git a/Lib/test/test_sqlite3/test_transactions.py b/Lib/test/test_sqlite3/test_transactions.py index 9c3d19e79bd989..040ab1ee608cf1 100644 --- a/Lib/test/test_sqlite3/test_transactions.py +++ b/Lib/test/test_sqlite3/test_transactions.py @@ -20,36 +20,38 @@ # misrepresented as being the original software. # 3. This notice may not be removed or altered from any source distribution. -import unittest +import os, unittest import sqlite3 as sqlite -from test.support import LOOPBACK_TIMEOUT -from test.support.os_helper import TESTFN, unlink - from test.test_sqlite3.test_dbapi import memory_database - -TIMEOUT = LOOPBACK_TIMEOUT / 10 - +def get_db_path(): + return "sqlite_testdb" class TransactionTests(unittest.TestCase): def setUp(self): - self.con1 = sqlite.connect(TESTFN, timeout=TIMEOUT) + try: + os.remove(get_db_path()) + except OSError: + pass + + self.con1 = sqlite.connect(get_db_path(), timeout=0.1) self.cur1 = self.con1.cursor() - self.con2 = sqlite.connect(TESTFN, timeout=TIMEOUT) + self.con2 = sqlite.connect(get_db_path(), timeout=0.1) self.cur2 = self.con2.cursor() def tearDown(self): - try: - self.cur1.close() - self.con1.close() + self.cur1.close() + self.con1.close() - self.cur2.close() - self.con2.close() + self.cur2.close() + self.con2.close() - finally: - unlink(TESTFN) + try: + os.unlink(get_db_path()) + except OSError: + pass def test_dml_does_not_auto_commit_before(self): self.cur1.execute("create table test(i)") @@ -139,45 +141,6 @@ def test_rollback_cursor_consistency(self): con.rollback() self.assertEqual(cur.fetchall(), [(1,), (2,), (3,)]) - def test_multiple_cursors_and_iternext(self): - # gh-94028: statements are cleared and reset in cursor iternext. - - # Provoke the gh-94028 by using a cursor cache. - CURSORS = {} - def sql(cx, sql, *args): - cu = cx.cursor() - cu.execute(sql, args) - CURSORS[id(sql)] = cu - return cu - - self.con1.execute("create table t(t)") - sql(self.con1, "insert into t values (?), (?), (?)", "u1", "u2", "u3") - self.con1.commit() - - # On second connection, verify rows are visible, then delete them. - count = sql(self.con2, "select count(*) from t").fetchone()[0] - self.assertEqual(count, 3) - changes = sql(self.con2, "delete from t").rowcount - self.assertEqual(changes, 3) - self.con2.commit() - - # Back in original connection, create 2 new users. - sql(self.con1, "insert into t values (?)", "u4") - sql(self.con1, "insert into t values (?)", "u5") - - # The second connection cannot see uncommitted changes. - count = sql(self.con2, "select count(*) from t").fetchone()[0] - self.assertEqual(count, 0) - - # First connection can see its own changes. - count = sql(self.con1, "select count(*) from t").fetchone()[0] - self.assertEqual(count, 2) - - # The second connection can now see the changes. - self.con1.commit() - count = sql(self.con2, "select count(*) from t").fetchone()[0] - self.assertEqual(count, 2) - class RollbackTests(unittest.TestCase): """bpo-44092: sqlite3 now leaves it to SQLite to resolve rollback issues""" diff --git a/Lib/test/test_sqlite3/test_types.py b/Lib/test/test_sqlite3/test_types.py index 62318823510d40..177cd102350397 100644 --- a/Lib/test/test_sqlite3/test_types.py +++ b/Lib/test/test_sqlite3/test_types.py @@ -496,51 +496,38 @@ def tearDown(self): def test_sqlite_date(self): d = sqlite.Date(2004, 2, 14) - with self.assertWarnsRegex(DeprecationWarning, "adapter") as cm: - self.cur.execute("insert into test(d) values (?)", (d,)) - self.assertEqual(cm.filename, __file__) + self.cur.execute("insert into test(d) values (?)", (d,)) self.cur.execute("select d from test") - with self.assertWarnsRegex(DeprecationWarning, "converter") as cm: - d2 = self.cur.fetchone()[0] - self.assertEqual(cm.filename, __file__) + d2 = self.cur.fetchone()[0] self.assertEqual(d, d2) def test_sqlite_timestamp(self): ts = sqlite.Timestamp(2004, 2, 14, 7, 15, 0) - with self.assertWarnsRegex(DeprecationWarning, "adapter") as cm: - self.cur.execute("insert into test(ts) values (?)", (ts,)) - self.assertEqual(cm.filename, __file__) + self.cur.execute("insert into test(ts) values (?)", (ts,)) self.cur.execute("select ts from test") - with self.assertWarnsRegex(DeprecationWarning, "converter") as cm: - ts2 = self.cur.fetchone()[0] - self.assertEqual(cm.filename, __file__) + ts2 = self.cur.fetchone()[0] self.assertEqual(ts, ts2) def test_sql_timestamp(self): now = datetime.datetime.utcnow() self.cur.execute("insert into test(ts) values (current_timestamp)") self.cur.execute("select ts from test") - with self.assertWarnsRegex(DeprecationWarning, "converter"): - ts = self.cur.fetchone()[0] + ts = self.cur.fetchone()[0] self.assertEqual(type(ts), datetime.datetime) self.assertEqual(ts.year, now.year) def test_date_time_sub_seconds(self): ts = sqlite.Timestamp(2004, 2, 14, 7, 15, 0, 500000) - with self.assertWarnsRegex(DeprecationWarning, "adapter"): - self.cur.execute("insert into test(ts) values (?)", (ts,)) + self.cur.execute("insert into test(ts) values (?)", (ts,)) self.cur.execute("select ts from test") - with self.assertWarnsRegex(DeprecationWarning, "converter"): - ts2 = self.cur.fetchone()[0] + ts2 = self.cur.fetchone()[0] self.assertEqual(ts, ts2) def test_date_time_sub_seconds_floating_point(self): ts = sqlite.Timestamp(2004, 2, 14, 7, 15, 0, 510241) - with self.assertWarnsRegex(DeprecationWarning, "adapter"): - self.cur.execute("insert into test(ts) values (?)", (ts,)) + self.cur.execute("insert into test(ts) values (?)", (ts,)) self.cur.execute("select ts from test") - with self.assertWarnsRegex(DeprecationWarning, "converter"): - ts2 = self.cur.fetchone()[0] + ts2 = self.cur.fetchone()[0] self.assertEqual(ts, ts2) diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py index 5007e08f321b5a..6a66c167933de6 100644 --- a/Lib/test/test_ssl.py +++ b/Lib/test/test_ssl.py @@ -47,7 +47,7 @@ PROTOCOL_TO_TLS_VERSION = {} for proto, ver in ( - ("PROTOCOL_SSLv3", "SSLv3"), + ("PROTOCOL_SSLv23", "SSLv3"), ("PROTOCOL_TLSv1", "TLSv1"), ("PROTOCOL_TLSv1_1", "TLSv1_1"), ): @@ -208,6 +208,10 @@ def has_tls_version(version): :param version: TLS version name or ssl.TLSVersion member :return: bool """ + if version == "SSLv2": + # never supported and not even in TLSVersion enum + return False + if isinstance(version, str): version = ssl.TLSVersion.__members__[version] @@ -378,6 +382,10 @@ def test_random(self): % (v, (v and "sufficient randomness") or "insufficient randomness")) + with warnings_helper.check_warnings(): + data, is_cryptographic = ssl.RAND_pseudo_bytes(16) + self.assertEqual(len(data), 16) + self.assertEqual(is_cryptographic, v == 1) if v: data = ssl.RAND_bytes(16) self.assertEqual(len(data), 16) @@ -386,6 +394,8 @@ def test_random(self): # negative num is invalid self.assertRaises(ValueError, ssl.RAND_bytes, -5) + with warnings_helper.check_warnings(): + self.assertRaises(ValueError, ssl.RAND_pseudo_bytes, -5) ssl.RAND_add("this is a random string", 75.0) ssl.RAND_add(b"this is a random bytes object", 75.0) @@ -606,8 +616,6 @@ def test_openssl111_deprecations(self): ) for protocol in protocols: - if not has_tls_protocol(protocol): - continue with self.subTest(protocol=protocol): with self.assertWarns(DeprecationWarning) as cm: ssl.SSLContext(protocol) @@ -617,8 +625,6 @@ def test_openssl111_deprecations(self): ) for version in versions: - if not has_tls_version(version): - continue with self.subTest(version=version): ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT) with self.assertWarns(DeprecationWarning) as cm: @@ -629,6 +635,36 @@ def test_openssl111_deprecations(self): str(cm.warning) ) + @ignore_deprecation + def test_errors_sslwrap(self): + sock = socket.socket() + self.assertRaisesRegex(ValueError, + "certfile must be specified", + ssl.wrap_socket, sock, keyfile=CERTFILE) + self.assertRaisesRegex(ValueError, + "certfile must be specified for server-side operations", + ssl.wrap_socket, sock, server_side=True) + self.assertRaisesRegex(ValueError, + "certfile must be specified for server-side operations", + ssl.wrap_socket, sock, server_side=True, certfile="") + with ssl.wrap_socket(sock, server_side=True, certfile=CERTFILE) as s: + self.assertRaisesRegex(ValueError, "can't connect in server-side mode", + s.connect, (HOST, 8080)) + with self.assertRaises(OSError) as cm: + with socket.socket() as sock: + ssl.wrap_socket(sock, certfile=NONEXISTINGCERT) + self.assertEqual(cm.exception.errno, errno.ENOENT) + with self.assertRaises(OSError) as cm: + with socket.socket() as sock: + ssl.wrap_socket(sock, + certfile=CERTFILE, keyfile=NONEXISTINGCERT) + self.assertEqual(cm.exception.errno, errno.ENOENT) + with self.assertRaises(OSError) as cm: + with socket.socket() as sock: + ssl.wrap_socket(sock, + certfile=NONEXISTINGCERT, keyfile=NONEXISTINGCERT) + self.assertEqual(cm.exception.errno, errno.ENOENT) + def bad_cert_test(self, certfile): """Check that trying to use the given client certificate fails""" certfile = os.path.join(os.path.dirname(__file__) or os.curdir, @@ -651,6 +687,205 @@ def test_malformed_key(self): """Wrapping with a badly formatted key (syntax error)""" self.bad_cert_test("badkey.pem") + @ignore_deprecation + def test_match_hostname(self): + def ok(cert, hostname): + ssl.match_hostname(cert, hostname) + def fail(cert, hostname): + self.assertRaises(ssl.CertificateError, + ssl.match_hostname, cert, hostname) + + # -- Hostname matching -- + + cert = {'subject': ((('commonName', 'example.com'),),)} + ok(cert, 'example.com') + ok(cert, 'ExAmple.cOm') + fail(cert, 'www.example.com') + fail(cert, '.example.com') + fail(cert, 'example.org') + fail(cert, 'exampleXcom') + + cert = {'subject': ((('commonName', '*.a.com'),),)} + ok(cert, 'foo.a.com') + fail(cert, 'bar.foo.a.com') + fail(cert, 'a.com') + fail(cert, 'Xa.com') + fail(cert, '.a.com') + + # only match wildcards when they are the only thing + # in left-most segment + cert = {'subject': ((('commonName', 'f*.com'),),)} + fail(cert, 'foo.com') + fail(cert, 'f.com') + fail(cert, 'bar.com') + fail(cert, 'foo.a.com') + fail(cert, 'bar.foo.com') + + # NULL bytes are bad, CVE-2013-4073 + cert = {'subject': ((('commonName', + 'null.python.org\x00example.org'),),)} + ok(cert, 'null.python.org\x00example.org') # or raise an error? + fail(cert, 'example.org') + fail(cert, 'null.python.org') + + # error cases with wildcards + cert = {'subject': ((('commonName', '*.*.a.com'),),)} + fail(cert, 'bar.foo.a.com') + fail(cert, 'a.com') + fail(cert, 'Xa.com') + fail(cert, '.a.com') + + cert = {'subject': ((('commonName', 'a.*.com'),),)} + fail(cert, 'a.foo.com') + fail(cert, 'a..com') + fail(cert, 'a.com') + + # wildcard doesn't match IDNA prefix 'xn--' + idna = 'püthon.python.org'.encode("idna").decode("ascii") + cert = {'subject': ((('commonName', idna),),)} + ok(cert, idna) + cert = {'subject': ((('commonName', 'x*.python.org'),),)} + fail(cert, idna) + cert = {'subject': ((('commonName', 'xn--p*.python.org'),),)} + fail(cert, idna) + + # wildcard in first fragment and IDNA A-labels in sequent fragments + # are supported. + idna = 'www*.pythön.org'.encode("idna").decode("ascii") + cert = {'subject': ((('commonName', idna),),)} + fail(cert, 'www.pythön.org'.encode("idna").decode("ascii")) + fail(cert, 'www1.pythön.org'.encode("idna").decode("ascii")) + fail(cert, 'ftp.pythön.org'.encode("idna").decode("ascii")) + fail(cert, 'pythön.org'.encode("idna").decode("ascii")) + + # Slightly fake real-world example + cert = {'notAfter': 'Jun 26 21:41:46 2011 GMT', + 'subject': ((('commonName', 'linuxfrz.org'),),), + 'subjectAltName': (('DNS', 'linuxfr.org'), + ('DNS', 'linuxfr.com'), + ('othername', '<unsupported>'))} + ok(cert, 'linuxfr.org') + ok(cert, 'linuxfr.com') + # Not a "DNS" entry + fail(cert, '<unsupported>') + # When there is a subjectAltName, commonName isn't used + fail(cert, 'linuxfrz.org') + + # A pristine real-world example + cert = {'notAfter': 'Dec 18 23:59:59 2011 GMT', + 'subject': ((('countryName', 'US'),), + (('stateOrProvinceName', 'California'),), + (('localityName', 'Mountain View'),), + (('organizationName', 'Google Inc'),), + (('commonName', 'mail.google.com'),))} + ok(cert, 'mail.google.com') + fail(cert, 'gmail.com') + # Only commonName is considered + fail(cert, 'California') + + # -- IPv4 matching -- + cert = {'subject': ((('commonName', 'example.com'),),), + 'subjectAltName': (('DNS', 'example.com'), + ('IP Address', '10.11.12.13'), + ('IP Address', '14.15.16.17'), + ('IP Address', '127.0.0.1'))} + ok(cert, '10.11.12.13') + ok(cert, '14.15.16.17') + # socket.inet_ntoa(socket.inet_aton('127.1')) == '127.0.0.1' + fail(cert, '127.1') + fail(cert, '14.15.16.17 ') + fail(cert, '14.15.16.17 extra data') + fail(cert, '14.15.16.18') + fail(cert, 'example.net') + + # -- IPv6 matching -- + if socket_helper.IPV6_ENABLED: + cert = {'subject': ((('commonName', 'example.com'),),), + 'subjectAltName': ( + ('DNS', 'example.com'), + ('IP Address', '2001:0:0:0:0:0:0:CAFE\n'), + ('IP Address', '2003:0:0:0:0:0:0:BABA\n'))} + ok(cert, '2001::cafe') + ok(cert, '2003::baba') + fail(cert, '2003::baba ') + fail(cert, '2003::baba extra data') + fail(cert, '2003::bebe') + fail(cert, 'example.net') + + # -- Miscellaneous -- + + # Neither commonName nor subjectAltName + cert = {'notAfter': 'Dec 18 23:59:59 2011 GMT', + 'subject': ((('countryName', 'US'),), + (('stateOrProvinceName', 'California'),), + (('localityName', 'Mountain View'),), + (('organizationName', 'Google Inc'),))} + fail(cert, 'mail.google.com') + + # No DNS entry in subjectAltName but a commonName + cert = {'notAfter': 'Dec 18 23:59:59 2099 GMT', + 'subject': ((('countryName', 'US'),), + (('stateOrProvinceName', 'California'),), + (('localityName', 'Mountain View'),), + (('commonName', 'mail.google.com'),)), + 'subjectAltName': (('othername', 'blabla'), )} + ok(cert, 'mail.google.com') + + # No DNS entry subjectAltName and no commonName + cert = {'notAfter': 'Dec 18 23:59:59 2099 GMT', + 'subject': ((('countryName', 'US'),), + (('stateOrProvinceName', 'California'),), + (('localityName', 'Mountain View'),), + (('organizationName', 'Google Inc'),)), + 'subjectAltName': (('othername', 'blabla'),)} + fail(cert, 'google.com') + + # Empty cert / no cert + self.assertRaises(ValueError, ssl.match_hostname, None, 'example.com') + self.assertRaises(ValueError, ssl.match_hostname, {}, 'example.com') + + # Issue #17980: avoid denials of service by refusing more than one + # wildcard per fragment. + cert = {'subject': ((('commonName', 'a*b.example.com'),),)} + with self.assertRaisesRegex( + ssl.CertificateError, + "partial wildcards in leftmost label are not supported"): + ssl.match_hostname(cert, 'axxb.example.com') + + cert = {'subject': ((('commonName', 'www.*.example.com'),),)} + with self.assertRaisesRegex( + ssl.CertificateError, + "wildcard can only be present in the leftmost label"): + ssl.match_hostname(cert, 'www.sub.example.com') + + cert = {'subject': ((('commonName', 'a*b*.example.com'),),)} + with self.assertRaisesRegex( + ssl.CertificateError, + "too many wildcards"): + ssl.match_hostname(cert, 'axxbxxc.example.com') + + cert = {'subject': ((('commonName', '*'),),)} + with self.assertRaisesRegex( + ssl.CertificateError, + "sole wildcard without additional labels are not support"): + ssl.match_hostname(cert, 'host') + + cert = {'subject': ((('commonName', '*.com'),),)} + with self.assertRaisesRegex( + ssl.CertificateError, + r"hostname 'com' doesn't match '\*.com'"): + ssl.match_hostname(cert, 'com') + + # extra checks for _inet_paton() + for invalid in ['1', '', '1.2.3', '256.0.0.1', '127.0.0.1/24']: + with self.assertRaises(ValueError): + ssl._inet_paton(invalid) + for ipaddr in ['127.0.0.1', '192.168.0.1']: + self.assertTrue(ssl._inet_paton(ipaddr)) + if socket_helper.IPV6_ENABLED: + for ipaddr in ['::1', '2001:db8:85a3::8a2e:370:7334']: + self.assertTrue(ssl._inet_paton(ipaddr)) + def test_server_side(self): # server_hostname doesn't work for server sockets ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER) @@ -904,10 +1139,9 @@ class ContextTests(unittest.TestCase): def test_constructor(self): for protocol in PROTOCOLS: - if has_tls_protocol(protocol): - with warnings_helper.check_warnings(): - ctx = ssl.SSLContext(protocol) - self.assertEqual(ctx.protocol, protocol) + with warnings_helper.check_warnings(): + ctx = ssl.SSLContext(protocol) + self.assertEqual(ctx.protocol, protocol) with warnings_helper.check_warnings(): ctx = ssl.SSLContext() self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLS) @@ -938,20 +1172,8 @@ def test_get_ciphers(self): ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT) ctx.set_ciphers('AESGCM') names = set(d['name'] for d in ctx.get_ciphers()) - expected = { - 'AES128-GCM-SHA256', - 'ECDHE-ECDSA-AES128-GCM-SHA256', - 'ECDHE-RSA-AES128-GCM-SHA256', - 'DHE-RSA-AES128-GCM-SHA256', - 'AES256-GCM-SHA384', - 'ECDHE-ECDSA-AES256-GCM-SHA384', - 'ECDHE-RSA-AES256-GCM-SHA384', - 'DHE-RSA-AES256-GCM-SHA384', - } - intersection = names.intersection(expected) - self.assertGreaterEqual( - len(intersection), 2, f"\ngot: {sorted(names)}\nexpected: {sorted(expected)}" - ) + self.assertIn('AES256-GCM-SHA384', names) + self.assertIn('AES128-GCM-SHA256', names) def test_options(self): ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT) @@ -1064,7 +1286,7 @@ def test_min_max_version(self): ctx.maximum_version = ssl.TLSVersion.MINIMUM_SUPPORTED self.assertIn( ctx.maximum_version, - {ssl.TLSVersion.TLSv1, ssl.TLSVersion.TLSv1_1, ssl.TLSVersion.SSLv3} + {ssl.TLSVersion.TLSv1, ssl.TLSVersion.SSLv3} ) ctx.minimum_version = ssl.TLSVersion.MAXIMUM_SUPPORTED @@ -1076,19 +1298,19 @@ def test_min_max_version(self): with self.assertRaises(ValueError): ctx.minimum_version = 42 - if has_tls_protocol(ssl.PROTOCOL_TLSv1_1): - ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1_1) + ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1_1) + + self.assertIn( + ctx.minimum_version, minimum_range + ) + self.assertEqual( + ctx.maximum_version, ssl.TLSVersion.MAXIMUM_SUPPORTED + ) + with self.assertRaises(ValueError): + ctx.minimum_version = ssl.TLSVersion.MINIMUM_SUPPORTED + with self.assertRaises(ValueError): + ctx.maximum_version = ssl.TLSVersion.TLSv1 - self.assertIn( - ctx.minimum_version, minimum_range - ) - self.assertEqual( - ctx.maximum_version, ssl.TLSVersion.MAXIMUM_SUPPORTED - ) - with self.assertRaises(ValueError): - ctx.minimum_version = ssl.TLSVersion.MINIMUM_SUPPORTED - with self.assertRaises(ValueError): - ctx.maximum_version = ssl.TLSVersion.TLSv1 @unittest.skipUnless( hasattr(ssl.SSLContext, 'security_level'), @@ -1485,6 +1707,8 @@ def test_create_default_context(self): self.assertEqual(ctx.verify_mode, ssl.CERT_NONE) self._assert_context_options(ctx) + + def test__create_stdlib_context(self): ctx = ssl._create_stdlib_context() self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLS_CLIENT) @@ -1492,12 +1716,11 @@ def test__create_stdlib_context(self): self.assertFalse(ctx.check_hostname) self._assert_context_options(ctx) - if has_tls_protocol(ssl.PROTOCOL_TLSv1): - with warnings_helper.check_warnings(): - ctx = ssl._create_stdlib_context(ssl.PROTOCOL_TLSv1) - self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLSv1) - self.assertEqual(ctx.verify_mode, ssl.CERT_NONE) - self._assert_context_options(ctx) + with warnings_helper.check_warnings(): + ctx = ssl._create_stdlib_context(ssl.PROTOCOL_TLSv1) + self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLSv1) + self.assertEqual(ctx.verify_mode, ssl.CERT_NONE) + self._assert_context_options(ctx) with warnings_helper.check_warnings(): ctx = ssl._create_stdlib_context( @@ -2039,8 +2262,11 @@ def ssl_io_loop(self, sock, incoming, outgoing, func, *args, **kwargs): # A simple IO loop. Call func(*args) depending on the error we get # (WANT_READ or WANT_WRITE) move data between the socket and the BIOs. timeout = kwargs.get('timeout', support.SHORT_TIMEOUT) + deadline = time.monotonic() + timeout count = 0 - for _ in support.busy_retry(timeout): + while True: + if time.monotonic() > deadline: + self.fail("timeout") errno = None count += 1 try: @@ -3107,10 +3333,37 @@ def test_ssl_cert_verify_error(self): self.assertIn(msg, repr(e)) self.assertIn('certificate verify failed', repr(e)) + @requires_tls_version('SSLv2') + def test_protocol_sslv2(self): + """Connecting to an SSLv2 server with various client options""" + if support.verbose: + sys.stdout.write("\n") + try_protocol_combo(ssl.PROTOCOL_SSLv2, ssl.PROTOCOL_SSLv2, True) + try_protocol_combo(ssl.PROTOCOL_SSLv2, ssl.PROTOCOL_SSLv2, True, ssl.CERT_OPTIONAL) + try_protocol_combo(ssl.PROTOCOL_SSLv2, ssl.PROTOCOL_SSLv2, True, ssl.CERT_REQUIRED) + try_protocol_combo(ssl.PROTOCOL_SSLv2, ssl.PROTOCOL_TLS, False) + if has_tls_version('SSLv3'): + try_protocol_combo(ssl.PROTOCOL_SSLv2, ssl.PROTOCOL_SSLv3, False) + try_protocol_combo(ssl.PROTOCOL_SSLv2, ssl.PROTOCOL_TLSv1, False) + # SSLv23 client with specific SSL options + try_protocol_combo(ssl.PROTOCOL_SSLv2, ssl.PROTOCOL_TLS, False, + client_options=ssl.OP_NO_SSLv3) + try_protocol_combo(ssl.PROTOCOL_SSLv2, ssl.PROTOCOL_TLS, False, + client_options=ssl.OP_NO_TLSv1) + def test_PROTOCOL_TLS(self): """Connecting to an SSLv23 server with various client options""" if support.verbose: sys.stdout.write("\n") + if has_tls_version('SSLv2'): + try: + try_protocol_combo(ssl.PROTOCOL_TLS, ssl.PROTOCOL_SSLv2, True) + except OSError as x: + # this fails on some older versions of OpenSSL (0.9.7l, for instance) + if support.verbose: + sys.stdout.write( + " SSL2 client to SSL23 server test unexpectedly failed:\n %s\n" + % str(x)) if has_tls_version('SSLv3'): try_protocol_combo(ssl.PROTOCOL_TLS, ssl.PROTOCOL_SSLv3, False) try_protocol_combo(ssl.PROTOCOL_TLS, ssl.PROTOCOL_TLS, True) @@ -3148,6 +3401,8 @@ def test_protocol_sslv3(self): try_protocol_combo(ssl.PROTOCOL_SSLv3, ssl.PROTOCOL_SSLv3, 'SSLv3') try_protocol_combo(ssl.PROTOCOL_SSLv3, ssl.PROTOCOL_SSLv3, 'SSLv3', ssl.CERT_OPTIONAL) try_protocol_combo(ssl.PROTOCOL_SSLv3, ssl.PROTOCOL_SSLv3, 'SSLv3', ssl.CERT_REQUIRED) + if has_tls_version('SSLv2'): + try_protocol_combo(ssl.PROTOCOL_SSLv3, ssl.PROTOCOL_SSLv2, False) try_protocol_combo(ssl.PROTOCOL_SSLv3, ssl.PROTOCOL_TLS, False, client_options=ssl.OP_NO_SSLv3) try_protocol_combo(ssl.PROTOCOL_SSLv3, ssl.PROTOCOL_TLSv1, False) @@ -3160,6 +3415,8 @@ def test_protocol_tlsv1(self): try_protocol_combo(ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_TLSv1, 'TLSv1') try_protocol_combo(ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_TLSv1, 'TLSv1', ssl.CERT_OPTIONAL) try_protocol_combo(ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_TLSv1, 'TLSv1', ssl.CERT_REQUIRED) + if has_tls_version('SSLv2'): + try_protocol_combo(ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_SSLv2, False) if has_tls_version('SSLv3'): try_protocol_combo(ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_SSLv3, False) try_protocol_combo(ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_TLS, False, @@ -3172,6 +3429,8 @@ def test_protocol_tlsv1_1(self): if support.verbose: sys.stdout.write("\n") try_protocol_combo(ssl.PROTOCOL_TLSv1_1, ssl.PROTOCOL_TLSv1_1, 'TLSv1.1') + if has_tls_version('SSLv2'): + try_protocol_combo(ssl.PROTOCOL_TLSv1_1, ssl.PROTOCOL_SSLv2, False) if has_tls_version('SSLv3'): try_protocol_combo(ssl.PROTOCOL_TLSv1_1, ssl.PROTOCOL_SSLv3, False) try_protocol_combo(ssl.PROTOCOL_TLSv1_1, ssl.PROTOCOL_TLS, False, @@ -3190,18 +3449,18 @@ def test_protocol_tlsv1_2(self): try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_TLSv1_2, 'TLSv1.2', server_options=ssl.OP_NO_SSLv3|ssl.OP_NO_SSLv2, client_options=ssl.OP_NO_SSLv3|ssl.OP_NO_SSLv2,) + if has_tls_version('SSLv2'): + try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_SSLv2, False) if has_tls_version('SSLv3'): try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_SSLv3, False) try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_TLS, False, client_options=ssl.OP_NO_TLSv1_2) try_protocol_combo(ssl.PROTOCOL_TLS, ssl.PROTOCOL_TLSv1_2, 'TLSv1.2') - if has_tls_protocol(ssl.PROTOCOL_TLSv1): - try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_TLSv1, False) - try_protocol_combo(ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_TLSv1_2, False) - if has_tls_protocol(ssl.PROTOCOL_TLSv1_1): - try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_TLSv1_1, False) - try_protocol_combo(ssl.PROTOCOL_TLSv1_1, ssl.PROTOCOL_TLSv1_2, False) + try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_TLSv1, False) + try_protocol_combo(ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_TLSv1_2, False) + try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_TLSv1_1, False) + try_protocol_combo(ssl.PROTOCOL_TLSv1_1, ssl.PROTOCOL_TLSv1_2, False) def test_starttls(self): """Switching from clear text to encrypted and back again.""" diff --git a/Lib/test/test_stable_abi_ctypes.py b/Lib/test/test_stable_abi_ctypes.py index a803e3a5025985..53e93ab6b9b4c9 100644 --- a/Lib/test/test_stable_abi_ctypes.py +++ b/Lib/test/test_stable_abi_ctypes.py @@ -782,8 +782,6 @@ def test_windows_feature_macros(self): "PyUnicode_Translate", "PyUnicode_Type", "PyUnicode_WriteChar", - "PyVectorcall_Call", - "PyVectorcall_NARGS", "PyWeakref_GetObject", "PyWeakref_NewProxy", "PyWeakref_NewRef", diff --git a/Lib/test/test_stat.py b/Lib/test/test_stat.py index 4ba37aed2dc9db..2e1e2c349c8d09 100644 --- a/Lib/test/test_stat.py +++ b/Lib/test/test_stat.py @@ -113,7 +113,6 @@ def assertS_IS(self, name, mode): else: self.assertFalse(func(mode)) - @os_helper.skip_unless_working_chmod def test_mode(self): with open(TESTFN, 'w'): pass @@ -152,7 +151,6 @@ def test_mode(self): self.assertEqual(self.statmod.S_IFMT(st_mode), self.statmod.S_IFREG) - @os_helper.skip_unless_working_chmod def test_directory(self): os.mkdir(TESTFN) os.chmod(TESTFN, 0o700) @@ -163,7 +161,7 @@ def test_directory(self): else: self.assertEqual(modestr[0], 'd') - @os_helper.skip_unless_symlink + @unittest.skipUnless(hasattr(os, 'symlink'), 'os.symlink not available') def test_link(self): try: os.symlink(os.getcwd(), TESTFN) diff --git a/Lib/test/test_statistics.py b/Lib/test/test_statistics.py index 05ce79f126590a..6de98241c294d7 100644 --- a/Lib/test/test_statistics.py +++ b/Lib/test/test_statistics.py @@ -2565,22 +2565,6 @@ def test_different_scales(self): self.assertAlmostEqual(statistics.covariance(x, y), 0.1) - def test_correlation_spearman(self): - # https://statistics.laerd.com/statistical-guides/spearmans-rank-order-correlation-statistical-guide-2.php - # Compare with: - # >>> import scipy.stats.mstats - # >>> scipy.stats.mstats.spearmanr(reading, mathematics) - # SpearmanrResult(correlation=0.6686960980480712, pvalue=0.03450954165178532) - # And Wolfram Alpha gives: 0.668696 - # https://www.wolframalpha.com/input?i=SpearmanRho%5B%7B56%2C+75%2C+45%2C+71%2C+61%2C+64%2C+58%2C+80%2C+76%2C+61%7D%2C+%7B66%2C+70%2C+40%2C+60%2C+65%2C+56%2C+59%2C+77%2C+67%2C+63%7D%5D - reading = [56, 75, 45, 71, 61, 64, 58, 80, 76, 61] - mathematics = [66, 70, 40, 60, 65, 56, 59, 77, 67, 63] - self.assertAlmostEqual(statistics.correlation(reading, mathematics, method='ranked'), - 0.6686960980480712) - - with self.assertRaises(ValueError): - statistics.correlation(reading, mathematics, method='bad_method') - class TestLinearRegression(unittest.TestCase): def test_constant_input_error(self): @@ -2817,10 +2801,9 @@ def test_inv_cdf(self): iq.inv_cdf(1.0) # p is one with self.assertRaises(self.module.StatisticsError): iq.inv_cdf(1.1) # p over one - - # Supported case: - iq = NormalDist(100, 0) # sigma is zero - self.assertEqual(iq.inv_cdf(0.5), 100) + with self.assertRaises(self.module.StatisticsError): + iq = NormalDist(100, 0) # sigma is zero + iq.inv_cdf(0.5) # Special values self.assertTrue(math.isnan(Z.inv_cdf(float('NaN')))) diff --git a/Lib/test/test_struct.py b/Lib/test/test_struct.py index ab738770546c0b..94873ff6124d02 100644 --- a/Lib/test/test_struct.py +++ b/Lib/test/test_struct.py @@ -1,12 +1,10 @@ from collections import abc import array -import gc import math import operator import unittest import struct import sys -import weakref from test import support from test.support import import_helper @@ -674,33 +672,6 @@ def __del__(self): self.assertIn(b"Exception ignored in:", stderr) self.assertIn(b"C.__del__", stderr) - def test__struct_reference_cycle_cleaned_up(self): - # Regression test for python/cpython#94207. - - # When we create a new struct module, trigger use of its cache, - # and then delete it ... - _struct_module = import_helper.import_fresh_module("_struct") - module_ref = weakref.ref(_struct_module) - _struct_module.calcsize("b") - del _struct_module - - # Then the module should have been garbage collected. - gc.collect() - self.assertIsNone( - module_ref(), "_struct module was not garbage collected") - - @support.cpython_only - def test__struct_types_immutable(self): - # See https://github.com/python/cpython/issues/94254 - - Struct = struct.Struct - unpack_iterator = type(struct.iter_unpack("b", b'x')) - for cls in (Struct, unpack_iterator): - with self.subTest(cls=cls): - with self.assertRaises(TypeError): - cls.x = 1 - - def test_issue35714(self): # Embedded null characters should not be allowed in format strings. for s in '\0', '2\0i', b'\0': diff --git a/Lib/test/test_support.py b/Lib/test/test_support.py index 7738ca5e9b433d..23bcceedd71b2a 100644 --- a/Lib/test/test_support.py +++ b/Lib/test/test_support.py @@ -9,6 +9,7 @@ import sys import tempfile import textwrap +import time import unittest import warnings @@ -460,12 +461,18 @@ def test_reap_children(self): # child process: do nothing, just exit os._exit(0) + t0 = time.monotonic() + deadline = time.monotonic() + support.SHORT_TIMEOUT + was_altered = support.environment_altered try: support.environment_altered = False stderr = io.StringIO() - for _ in support.sleeping_retry(support.SHORT_TIMEOUT): + while True: + if time.monotonic() > deadline: + self.fail("timeout") + with support.swap_attr(support.print_warning, 'orig_stderr', stderr): support.reap_children() @@ -474,6 +481,9 @@ def test_reap_children(self): if support.environment_altered: break + # loop until the child process completed + time.sleep(0.100) + msg = "Warning -- reap_children() reaped child process %s" % pid self.assertIn(msg, stderr.getvalue()) self.assertTrue(support.environment_altered) diff --git a/Lib/test/test_syntax.py b/Lib/test/test_syntax.py index ae1066924b3cf5..96e5c129c6599c 100644 --- a/Lib/test/test_syntax.py +++ b/Lib/test/test_syntax.py @@ -607,7 +607,7 @@ >>> class C(x for x in L): ... pass Traceback (most recent call last): -SyntaxError: invalid syntax +SyntaxError: expected ':' >>> def g(*args, **kwargs): ... print(args, sorted(kwargs.items())) @@ -963,22 +963,17 @@ ... SyntaxError: cannot assign to function call here. Maybe you meant '==' instead of '='? -Missing ':' before suites: + Missing ':' before suites: - >>> def f() - ... pass - Traceback (most recent call last): - SyntaxError: expected ':' - - >>> class A - ... pass - Traceback (most recent call last): - SyntaxError: expected ':' + >>> def f() + ... pass + Traceback (most recent call last): + SyntaxError: expected ':' - >>> class R&D: - ... pass - Traceback (most recent call last): - SyntaxError: invalid syntax + >>> class A + ... pass + Traceback (most recent call last): + SyntaxError: expected ':' >>> if 1 ... pass @@ -1012,11 +1007,6 @@ Traceback (most recent call last): SyntaxError: expected ':' - >>> for x in range 10: - ... pass - Traceback (most recent call last): - SyntaxError: invalid syntax - >>> while True ... pass Traceback (most recent call last): @@ -1062,11 +1052,6 @@ Traceback (most recent call last): SyntaxError: expected ':' - >>> with block ad something: - ... pass - Traceback (most recent call last): - SyntaxError: invalid syntax - >>> try ... pass Traceback (most recent call last): @@ -1085,12 +1070,6 @@ Traceback (most recent call last): SyntaxError: expected ':' - >>> match x x: - ... case list(): - ... pass - Traceback (most recent call last): - SyntaxError: invalid syntax - >>> match x: ... case list() ... pass @@ -1265,22 +1244,12 @@ Traceback (most recent call last): SyntaxError: expression expected after dictionary key and ':' - # Ensure that the error is not raised for syntax errors that happen after sets + # Ensure that the error is not raise for syntax errors that happen after sets >>> {1} $ Traceback (most recent call last): SyntaxError: invalid syntax - # Ensure that the error is not raised for invalid expressions - - >>> {1: 2, 3: foo(,), 4: 5} - Traceback (most recent call last): - SyntaxError: invalid syntax - - >>> {1: $, 2: 3} - Traceback (most recent call last): - SyntaxError: invalid syntax - Specialized indentation errors: >>> while condition: @@ -2012,8 +1981,7 @@ def fib(n): a, b = 0, 1 """ try: - compile(s1, '<string>', 'exec') - compile(s2, '<string>', 'exec') + self.assertEqual(compile(s1, '<string>', 'exec'), compile(s2, '<string>', 'exec')) except SyntaxError: self.fail("Indented statement over multiple lines is valid") diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py index 41482734872e06..94a09ff549331a 100644 --- a/Lib/test/test_sys.py +++ b/Lib/test/test_sys.py @@ -550,17 +550,11 @@ def test_attributes(self): self.assertIsInstance(sys.executable, str) self.assertEqual(len(sys.float_info), 11) self.assertEqual(sys.float_info.radix, 2) - self.assertEqual(len(sys.int_info), 4) + self.assertEqual(len(sys.int_info), 2) self.assertTrue(sys.int_info.bits_per_digit % 5 == 0) self.assertTrue(sys.int_info.sizeof_digit >= 1) - self.assertGreaterEqual(sys.int_info.default_max_str_digits, 500) - self.assertGreaterEqual(sys.int_info.str_digits_check_threshold, 100) - self.assertGreater(sys.int_info.default_max_str_digits, - sys.int_info.str_digits_check_threshold) self.assertEqual(type(sys.int_info.bits_per_digit), int) self.assertEqual(type(sys.int_info.sizeof_digit), int) - self.assertIsInstance(sys.int_info.default_max_str_digits, int) - self.assertIsInstance(sys.int_info.str_digits_check_threshold, int) self.assertIsInstance(sys.hexversion, int) self.assertEqual(len(sys.hash_info), 9) @@ -632,16 +626,8 @@ def test_attributes(self): def test_thread_info(self): info = sys.thread_info self.assertEqual(len(info), 3) - self.assertIn(info.name, ('nt', 'pthread', 'pthread-stubs', 'solaris', None)) + self.assertIn(info.name, ('nt', 'pthread', 'solaris', None)) self.assertIn(info.lock, ('semaphore', 'mutex+cond', None)) - if sys.platform.startswith(("linux", "freebsd")): - self.assertEqual(info.name, "pthread") - elif sys.platform == "win32": - self.assertEqual(info.name, "nt") - elif sys.platform == "emscripten": - self.assertIn(info.name, {"pthread", "pthread-stubs"}) - elif sys.platform == "wasi": - self.assertEqual(info.name, "pthread-stubs") @unittest.skipUnless(support.is_emscripten, "only available on Emscripten") def test_emscripten_info(self): @@ -683,7 +669,7 @@ def test_sys_flags(self): "dont_write_bytecode", "no_user_site", "no_site", "ignore_environment", "verbose", "bytes_warning", "quiet", "hash_randomization", "isolated", "dev_mode", "utf8_mode", - "warn_default_encoding", "safe_path", "int_max_str_digits") + "warn_default_encoding", "safe_path") for attr in attrs: self.assertTrue(hasattr(sys.flags, attr), attr) attr_type = bool if attr in ("dev_mode", "safe_path") else int @@ -1301,7 +1287,7 @@ class OverflowSizeof(int): def __sizeof__(self): return int(self) self.assertEqual(sys.getsizeof(OverflowSizeof(sys.maxsize)), - sys.maxsize + self.gc_headsize*2) + sys.maxsize + self.gc_headsize) with self.assertRaises(OverflowError): sys.getsizeof(OverflowSizeof(sys.maxsize + 1)) with self.assertRaises(ValueError): @@ -1553,7 +1539,6 @@ class newstyleclass(object): pass samples = ['1'*100, '\xff'*50, '\u0100'*40, '\uffff'*100, '\U00010000'*30, '\U0010ffff'*100] - # also update field definitions in test_unicode.test_raiseMemError asciifields = "nnb" compactfields = asciifields + "nP" unicodefields = compactfields + "P" diff --git a/Lib/test/test_sys_setprofile.py b/Lib/test/test_sys_setprofile.py index 4c3053a1e3e9e6..21a09b51926e68 100644 --- a/Lib/test/test_sys_setprofile.py +++ b/Lib/test/test_sys_setprofile.py @@ -2,7 +2,6 @@ import pprint import sys import unittest -from test import support class TestGetProfile(unittest.TestCase): @@ -416,43 +415,5 @@ def show_events(callable): pprint.pprint(capture_events(callable)) -class TestEdgeCases(unittest.TestCase): - - def setUp(self): - self.addCleanup(sys.setprofile, sys.getprofile()) - sys.setprofile(None) - - def test_reentrancy(self): - def foo(*args): - ... - - def bar(*args): - ... - - class A: - def __call__(self, *args): - pass - - def __del__(self): - sys.setprofile(bar) - - sys.setprofile(A()) - with support.catch_unraisable_exception() as cm: - sys.setprofile(foo) - self.assertEqual(cm.unraisable.object, A.__del__) - self.assertIsInstance(cm.unraisable.exc_value, RuntimeError) - - self.assertEqual(sys.getprofile(), foo) - - - def test_same_object(self): - def foo(*args): - ... - - sys.setprofile(foo) - del foo - sys.setprofile(sys.getprofile()) - - if __name__ == "__main__": unittest.main() diff --git a/Lib/test/test_sys_settrace.py b/Lib/test/test_sys_settrace.py index 9f1aa81dbcd249..162fd8328582ca 100644 --- a/Lib/test/test_sys_settrace.py +++ b/Lib/test/test_sys_settrace.py @@ -2,7 +2,6 @@ from test import support import unittest -from unittest.mock import MagicMock import sys import difflib import gc @@ -1571,28 +1570,6 @@ def func(): self.run_and_compare(func, EXPECTED_EVENTS) - def test_very_large_function(self): - # There is a separate code path when the number of lines > (1 << 15). - d = {} - exec("""def f(): # line 0 - x = 0 # line 1 - y = 1 # line 2 - %s # lines 3 through (1 << 16) - x += 1 # - return""" % ('\n' * (1 << 16),), d) - f = d['f'] - - EXPECTED_EVENTS = [ - (0, 'call'), - (1, 'line'), - (2, 'line'), - (65540, 'line'), - (65541, 'line'), - (65541, 'return'), - ] - - self.run_and_compare(f, EXPECTED_EVENTS) - EVENT_NAMES = [ 'call', @@ -1879,7 +1856,7 @@ def test_jump_out_of_block_backwards(output): output.append(6) output.append(7) - @async_jump_test(4, 5, [3, 5]) + @async_jump_test(4, 5, [3], (ValueError, 'into')) async def test_jump_out_of_async_for_block_forwards(output): for i in [1]: async for i in asynciter([1, 2]): @@ -1921,7 +1898,7 @@ def test_jump_in_nested_finally(output): output.append(8) output.append(9) - @jump_test(6, 7, [2, 7], (ZeroDivisionError, '')) + @jump_test(6, 7, [2], (ValueError, 'within')) def test_jump_in_nested_finally_2(output): try: output.append(2) @@ -1932,7 +1909,7 @@ def test_jump_in_nested_finally_2(output): output.append(7) output.append(8) - @jump_test(6, 11, [2, 11], (ZeroDivisionError, '')) + @jump_test(6, 11, [2], (ValueError, 'within')) def test_jump_in_nested_finally_3(output): try: output.append(2) @@ -2043,8 +2020,8 @@ def test_jump_backwards_out_of_try_except_block(output): output.append(5) raise - @jump_test(5, 7, [4, 7, 8]) - def test_jump_between_except_blocks(output): + @jump_test(5, 7, [4], (ValueError, 'within')) + def test_no_jump_between_except_blocks(output): try: 1/0 except ZeroDivisionError: @@ -2054,19 +2031,8 @@ def test_jump_between_except_blocks(output): output.append(7) output.append(8) - @jump_test(5, 7, [4, 7, 8]) - def test_jump_from_except_to_finally(output): - try: - 1/0 - except ZeroDivisionError: - output.append(4) - output.append(5) - finally: - output.append(7) - output.append(8) - - @jump_test(5, 6, [4, 6, 7]) - def test_jump_within_except_block(output): + @jump_test(5, 6, [4], (ValueError, 'within')) + def test_no_jump_within_except_block(output): try: 1/0 except: @@ -2075,15 +2041,6 @@ def test_jump_within_except_block(output): output.append(6) output.append(7) - @jump_test(6, 1, [1, 5, 1, 5]) - def test_jump_over_try_except(output): - output.append(1) - try: - 1 / 0 - except ZeroDivisionError as e: - output.append(5) - x = 42 # has to be a two-instruction block - @jump_test(2, 4, [1, 4, 5, -4]) def test_jump_across_with(output): output.append(1) @@ -2301,31 +2258,31 @@ def test_no_jump_backwards_into_for_block(output): output.append(2) output.append(3) - @async_jump_test(3, 2, [2, 2], (ValueError, "can't jump into the body of a for loop")) + @async_jump_test(3, 2, [2, 2], (ValueError, 'within')) async def test_no_jump_backwards_into_async_for_block(output): async for i in asynciter([1, 2]): output.append(2) output.append(3) - @jump_test(1, 3, [], (ValueError, 'stack')) + @jump_test(1, 3, [], (ValueError, 'depth')) def test_no_jump_forwards_into_with_block(output): output.append(1) with tracecontext(output, 2): output.append(3) - @async_jump_test(1, 3, [], (ValueError, 'stack')) + @async_jump_test(1, 3, [], (ValueError, 'depth')) async def test_no_jump_forwards_into_async_with_block(output): output.append(1) async with asynctracecontext(output, 2): output.append(3) - @jump_test(3, 2, [1, 2, -1], (ValueError, 'stack')) + @jump_test(3, 2, [1, 2, -1], (ValueError, 'depth')) def test_no_jump_backwards_into_with_block(output): with tracecontext(output, 1): output.append(2) output.append(3) - @async_jump_test(3, 2, [1, 2, -1], (ValueError, 'stack')) + @async_jump_test(3, 2, [1, 2, -1], (ValueError, 'depth')) async def test_no_jump_backwards_into_async_with_block(output): async with asynctracecontext(output, 1): output.append(2) @@ -2366,8 +2323,8 @@ def test_jump_backwards_into_try_except_block(output): output.append(6) # 'except' with a variable creates an implicit finally block - @jump_test(5, 7, [4, 7, 8]) - def test_jump_between_except_blocks_2(output): + @jump_test(5, 7, [4], (ValueError, 'within')) + def test_no_jump_between_except_blocks_2(output): try: 1/0 except ZeroDivisionError: @@ -2403,7 +2360,7 @@ def test_jump_out_of_finally_block(output): finally: output.append(5) - @jump_test(1, 5, [], (ValueError, "can't jump into an 'except' block as there's no exception")) + @jump_test(1, 5, [], (ValueError, "into an exception")) def test_no_jump_into_bare_except_block(output): output.append(1) try: @@ -2411,7 +2368,7 @@ def test_no_jump_into_bare_except_block(output): except: output.append(5) - @jump_test(1, 5, [], (ValueError, "can't jump into an 'except' block as there's no exception")) + @jump_test(1, 5, [], (ValueError, "into an exception")) def test_no_jump_into_qualified_except_block(output): output.append(1) try: @@ -2419,7 +2376,7 @@ def test_no_jump_into_qualified_except_block(output): except Exception: output.append(5) - @jump_test(3, 6, [2, 5, 6], (ValueError, "can't jump into an 'except' block as there's no exception")) + @jump_test(3, 6, [2, 5, 6], (ValueError, "into an exception")) def test_no_jump_into_bare_except_block_from_try_block(output): try: output.append(2) @@ -2430,7 +2387,7 @@ def test_no_jump_into_bare_except_block_from_try_block(output): raise output.append(8) - @jump_test(3, 6, [2], (ValueError, "can't jump into an 'except' block as there's no exception")) + @jump_test(3, 6, [2], (ValueError, "into an exception")) def test_no_jump_into_qualified_except_block_from_try_block(output): try: output.append(2) @@ -2441,8 +2398,8 @@ def test_no_jump_into_qualified_except_block_from_try_block(output): raise output.append(8) - @jump_test(7, 1, [1, 3, 6, 1, 3, 6, 7]) - def test_jump_out_of_bare_except_block(output): + @jump_test(7, 1, [1, 3, 6], (ValueError, "within")) + def test_no_jump_out_of_bare_except_block(output): output.append(1) try: output.append(3) @@ -2451,8 +2408,8 @@ def test_jump_out_of_bare_except_block(output): output.append(6) output.append(7) - @jump_test(7, 1, [1, 3, 6, 1, 3, 6, 7]) - def test_jump_out_of_qualified_except_block(output): + @jump_test(7, 1, [1, 3, 6], (ValueError, "within")) + def test_no_jump_out_of_qualified_except_block(output): output.append(1) try: output.append(3) @@ -2627,99 +2584,6 @@ async def test_jump_backward_over_async_listcomp_v2(output): output.append(7) output.append(8) - # checking for segfaults. - @jump_test(3, 7, [], error=(ValueError, "stack")) - def test_jump_with_null_on_stack_load_global(output): - a = 1 - print( - output.append(3) - ) - output.append(5) - ( - ( # 7 - a - + - 10 - ) - + - 13 - ) - output.append(15) - - # checking for segfaults. - @jump_test(4, 8, [], error=(ValueError, "stack")) - def test_jump_with_null_on_stack_push_null(output): - a = 1 - f = print - f( - output.append(4) - ) - output.append(6) - ( - ( # 8 - a - + - 11 - ) - + - 14 - ) - output.append(16) - - # checking for segfaults. - @jump_test(3, 7, [], error=(ValueError, "stack")) - def test_jump_with_null_on_stack_load_attr(output): - a = 1 - list.append( - output, 3 - ) - output.append(5) - ( - ( # 7 - a - + - 10 - ) - + - 13 - ) - output.append(15) - - @jump_test(2, 3, [1, 3]) - def test_jump_extended_args_unpack_ex_simple(output): - output.append(1) - _, *_, _ = output.append(2) or "Spam" - output.append(3) - - @jump_test(3, 4, [1, 4, 4, 5]) - def test_jump_extended_args_unpack_ex_tricky(output): - output.append(1) - ( - _, *_, _ - ) = output.append(4) or "Spam" - output.append(5) - - def test_jump_extended_args_for_iter(self): - # In addition to failing when extended arg handling is broken, this can - # also hang for a *very* long time: - source = [ - "def f(output):", - " output.append(1)", - " for _ in spam:", - *(f" output.append({i})" for i in range(3, 100_000)), - f" output.append(100_000)", - ] - namespace = {} - exec("\n".join(source), namespace) - f = namespace["f"] - self.run_test(f, 2, 100_000, [1, 100_000]) - - @jump_test(2, 3, [1, 3]) - def test_jump_or_pop(output): - output.append(1) - _ = output.append(2) and "Spam" - output.append(3) - class TestExtendedArgs(unittest.TestCase): @@ -2763,43 +2627,5 @@ def f(): self.assertEqual(counts, {'call': 1, 'line': 2000, 'return': 1}) -class TestEdgeCases(unittest.TestCase): - - def setUp(self): - self.addCleanup(sys.settrace, sys.gettrace()) - sys.settrace(None) - - def test_reentrancy(self): - def foo(*args): - ... - - def bar(*args): - ... - - class A: - def __call__(self, *args): - pass - - def __del__(self): - sys.settrace(bar) - - sys.settrace(A()) - with support.catch_unraisable_exception() as cm: - sys.settrace(foo) - self.assertEqual(cm.unraisable.object, A.__del__) - self.assertIsInstance(cm.unraisable.exc_value, RuntimeError) - - self.assertEqual(sys.gettrace(), foo) - - - def test_same_object(self): - def foo(*args): - ... - - sys.settrace(foo) - del foo - sys.settrace(sys.gettrace()) - - if __name__ == "__main__": unittest.main() diff --git a/Lib/test/test_sysconfig.py b/Lib/test/test_sysconfig.py index b6dbf3d52cb4c3..f2b93706b270a7 100644 --- a/Lib/test/test_sysconfig.py +++ b/Lib/test/test_sysconfig.py @@ -5,12 +5,11 @@ import shutil from copy import copy -from test.support import ( - captured_stdout, PythonSymlink, requires_subprocess, is_wasi -) +from test.support import (captured_stdout, PythonSymlink, requires_subprocess) from test.support.import_helper import import_module from test.support.os_helper import (TESTFN, unlink, skip_unless_symlink, change_cwd) +from test.support.warnings_helper import check_warnings import sysconfig from sysconfig import (get_paths, get_platform, get_config_vars, @@ -329,7 +328,6 @@ def test_get_platform(self): # XXX more platforms to tests here - @unittest.skipIf(is_wasi, "Incompatible with WASI mapdir and OOT builds") def test_get_config_h_filename(self): config_h = sysconfig.get_config_h_filename() self.assertTrue(os.path.isfile(config_h), config_h) @@ -369,7 +367,7 @@ def test_user_similar(self): base = base.replace(sys.base_prefix, sys.prefix) if HAS_USER_BASE: user_path = get_path(name, 'posix_user') - expected = os.path.normpath(global_path.replace(base, user, 1)) + expected = global_path.replace(base, user, 1) # bpo-44860: platlib of posix_user doesn't use sys.platlibdir, # whereas posix_prefix does. if name == 'platlib': @@ -438,7 +436,6 @@ def test_platform_in_subprocess(self): self.assertEqual(status, 0) self.assertEqual(my_platform, test_platform) - @unittest.skipIf(is_wasi, "Incompatible with WASI mapdir and OOT builds") def test_srcdir(self): # See Issues #15322, #15364. srcdir = sysconfig.get_config_var('srcdir') @@ -451,11 +448,7 @@ def test_srcdir(self): # should be a full source checkout. Python_h = os.path.join(srcdir, 'Include', 'Python.h') self.assertTrue(os.path.exists(Python_h), Python_h) - # <srcdir>/PC/pyconfig.h always exists even if unused on POSIX. - pyconfig_h = os.path.join(srcdir, 'PC', 'pyconfig.h') - self.assertTrue(os.path.exists(pyconfig_h), pyconfig_h) - pyconfig_h_in = os.path.join(srcdir, 'pyconfig.h.in') - self.assertTrue(os.path.exists(pyconfig_h_in), pyconfig_h_in) + self.assertTrue(sysconfig._is_python_source_dir(srcdir)) elif os.name == 'posix': makefile_dir = os.path.dirname(sysconfig.get_makefile_filename()) # Issue #19340: srcdir has been realpath'ed already @@ -506,7 +499,6 @@ class MakefileTests(unittest.TestCase): @unittest.skipIf(sys.platform.startswith('win'), 'Test is not Windows compatible') - @unittest.skipIf(is_wasi, "Incompatible with WASI mapdir and OOT builds") def test_get_makefile_filename(self): makefile = sysconfig.get_makefile_filename() self.assertTrue(os.path.isfile(makefile), makefile) diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py index 0868d5d6e90915..a364043d3d9dd8 100644 --- a/Lib/test/test_tarfile.py +++ b/Lib/test/test_tarfile.py @@ -228,7 +228,6 @@ def test_add_dir_getmember(self): def add_dir_and_getmember(self, name): with os_helper.temp_cwd(): with tarfile.open(tmpname, 'w') as tar: - tar.format = tarfile.USTAR_FORMAT try: os.mkdir(name) tar.add(name) @@ -631,7 +630,6 @@ def test_extract_hardlink(self): data = f.read() self.assertEqual(sha256sum(data), sha256_regtype) - @os_helper.skip_unless_working_chmod def test_extractall(self): # Test if extractall() correctly restores directory permissions # and times (see issue1735). @@ -662,7 +660,6 @@ def format_mtime(mtime): tar.close() os_helper.rmtree(DIR) - @os_helper.skip_unless_working_chmod def test_extract_directory(self): dirtype = "ustar/dirtype" DIR = os.path.join(TEMPDIR, "extractdir") @@ -1021,26 +1018,11 @@ def test_header_offset(self): "iso8859-1", "strict") self.assertEqual(tarinfo.type, self.longnametype) - def test_longname_directory(self): - # Test reading a longlink directory. Issue #47231. - longdir = ('a' * 101) + '/' - with os_helper.temp_cwd(): - with tarfile.open(tmpname, 'w') as tar: - tar.format = self.format - try: - os.mkdir(longdir) - tar.add(longdir) - finally: - os.rmdir(longdir.rstrip("/")) - with tarfile.open(tmpname) as tar: - self.assertIsNotNone(tar.getmember(longdir)) - self.assertIsNotNone(tar.getmember(longdir.removesuffix('/'))) class GNUReadTest(LongnameTest, ReadTest, unittest.TestCase): subdir = "gnu" longnametype = tarfile.GNUTYPE_LONGNAME - format = tarfile.GNU_FORMAT # Since 3.2 tarfile is supposed to accurately restore sparse members and # produce files with holes. This is what we actually want to test here. @@ -1100,7 +1082,6 @@ class PaxReadTest(LongnameTest, ReadTest, unittest.TestCase): subdir = "pax" longnametype = tarfile.XHDTYPE - format = tarfile.PAX_FORMAT def test_pax_global_headers(self): tar = tarfile.open(tarname, encoding="iso8859-1") @@ -1554,75 +1535,6 @@ class Bz2StreamWriteTest(Bz2Test, StreamWriteTest): class LzmaStreamWriteTest(LzmaTest, StreamWriteTest): decompressor = lzma.LZMADecompressor if lzma else None -class _CompressedWriteTest(TarTest): - # This is not actually a standalone test. - # It does not inherit WriteTest because it only makes sense with gz,bz2 - source = (b"And we move to Bristol where they have a special, " + - b"Very Silly candidate") - - def _compressed_tar(self, compresslevel): - fobj = io.BytesIO() - with tarfile.open(tmpname, self.mode, fobj, - compresslevel=compresslevel) as tarfl: - tarfl.addfile(tarfile.TarInfo("foo"), io.BytesIO(self.source)) - return fobj - - def _test_bz2_header(self, compresslevel): - fobj = self._compressed_tar(compresslevel) - self.assertEqual(fobj.getvalue()[0:10], - b"BZh%d1AY&SY" % compresslevel) - - def _test_gz_header(self, compresslevel): - fobj = self._compressed_tar(compresslevel) - self.assertEqual(fobj.getvalue()[:3], b"\x1f\x8b\x08") - -class Bz2CompressWriteTest(Bz2Test, _CompressedWriteTest, unittest.TestCase): - prefix = "w:" - def test_compression_levels(self): - self._test_bz2_header(1) - self._test_bz2_header(5) - self._test_bz2_header(9) - -class Bz2CompressStreamWriteTest(Bz2Test, _CompressedWriteTest, - unittest.TestCase): - prefix = "w|" - def test_compression_levels(self): - self._test_bz2_header(1) - self._test_bz2_header(5) - self._test_bz2_header(9) - -class GzCompressWriteTest(GzipTest, _CompressedWriteTest, unittest.TestCase): - prefix = "w:" - def test_compression_levels(self): - self._test_gz_header(1) - self._test_gz_header(5) - self._test_gz_header(9) - -class GzCompressStreamWriteTest(GzipTest, _CompressedWriteTest, - unittest.TestCase): - prefix = "w|" - def test_compression_levels(self): - self._test_gz_header(1) - self._test_gz_header(5) - self._test_gz_header(9) - -class CompressLevelRaises(unittest.TestCase): - def test_compresslevel_wrong_modes(self): - compresslevel = 5 - fobj = io.BytesIO() - with self.assertRaises(TypeError): - tarfile.open(tmpname, "w:", fobj, compresslevel=compresslevel) - - @support.requires_bz2() - def test_wrong_compresslevels(self): - # BZ2 checks that the compresslevel is in [1,9]. gz does not - fobj = io.BytesIO() - with self.assertRaises(ValueError): - tarfile.open(tmpname, "w:bz2", fobj, compresslevel=0) - with self.assertRaises(ValueError): - tarfile.open(tmpname, "w:bz2", fobj, compresslevel=10) - with self.assertRaises(ValueError): - tarfile.open(tmpname, "w|bz2", fobj, compresslevel=10) class GNUWriteTest(unittest.TestCase): # This testcase checks for correct creation of GNU Longname diff --git a/Lib/test/test_tcl.py b/Lib/test/test_tcl.py index cd79024ab2c8e3..548914796ed762 100644 --- a/Lib/test/test_tcl.py +++ b/Lib/test/test_tcl.py @@ -1,7 +1,10 @@ import unittest +import locale +import re import subprocess import sys import os +import warnings from test import support from test.support import import_helper from test.support import os_helper diff --git a/Lib/test/test_tempfile.py b/Lib/test/test_tempfile.py index 3746b2e8fd8d2b..c3a793e6d12bbf 100644 --- a/Lib/test/test_tempfile.py +++ b/Lib/test/test_tempfile.py @@ -285,14 +285,19 @@ def our_candidate_list(): def raise_OSError(*args, **kwargs): raise OSError() - with support.swap_attr(os, "open", raise_OSError): - # test again with failing os.open() + with support.swap_attr(io, "open", raise_OSError): + # test again with failing io.open() with self.assertRaises(FileNotFoundError): tempfile._get_default_tempdir() self.assertEqual(os.listdir(our_temp_directory), []) - with support.swap_attr(os, "write", raise_OSError): - # test again with failing os.write() + def bad_writer(*args, **kwargs): + fp = orig_open(*args, **kwargs) + fp.write = raise_OSError + return fp + + with support.swap_attr(io, "open", bad_writer) as orig_open: + # test again with failing write() with self.assertRaises(FileNotFoundError): tempfile._get_default_tempdir() self.assertEqual(os.listdir(our_temp_directory), []) @@ -445,7 +450,6 @@ def test_choose_directory(self): support.gc_collect() # For PyPy or other GCs. os.rmdir(dir) - @os_helper.skip_unless_working_chmod def test_file_mode(self): # _mkstemp_inner creates files with the proper mode @@ -783,7 +787,6 @@ def test_choose_directory(self): finally: os.rmdir(dir) - @os_helper.skip_unless_working_chmod def test_mode(self): # mkdtemp creates directories with the proper mode @@ -973,7 +976,6 @@ def test_del_on_close(self): try: with tempfile.NamedTemporaryFile(dir=dir) as f: f.write(b'blat') - self.assertEqual(os.listdir(dir), []) self.assertFalse(os.path.exists(f.name), "NamedTemporaryFile %s exists after close" % f.name) finally: @@ -1072,6 +1074,19 @@ def use_closed(): pass self.assertRaises(ValueError, use_closed) + def test_no_leak_fd(self): + # Issue #21058: don't leak file descriptor when io.open() fails + closed = [] + os_close = os.close + def close(fd): + closed.append(fd) + os_close(fd) + + with mock.patch('os.close', side_effect=close): + with mock.patch('io.open', side_effect=ValueError): + self.assertRaises(ValueError, tempfile.NamedTemporaryFile) + self.assertEqual(len(closed), 1) + def test_bad_mode(self): dir = tempfile.mkdtemp() self.addCleanup(os_helper.rmtree, dir) @@ -1081,24 +1096,6 @@ def test_bad_mode(self): tempfile.NamedTemporaryFile(mode=2, dir=dir) self.assertEqual(os.listdir(dir), []) - def test_bad_encoding(self): - dir = tempfile.mkdtemp() - self.addCleanup(os_helper.rmtree, dir) - with self.assertRaises(LookupError): - tempfile.NamedTemporaryFile('w', encoding='bad-encoding', dir=dir) - self.assertEqual(os.listdir(dir), []) - - def test_unexpected_error(self): - dir = tempfile.mkdtemp() - self.addCleanup(os_helper.rmtree, dir) - with mock.patch('tempfile._TemporaryFileWrapper') as mock_ntf, \ - mock.patch('io.open', mock.mock_open()) as mock_open: - mock_ntf.side_effect = KeyboardInterrupt() - with self.assertRaises(KeyboardInterrupt): - tempfile.NamedTemporaryFile(dir=dir) - mock_open().close.assert_called() - self.assertEqual(os.listdir(dir), []) - # How to test the mode and bufsize parameters? class TestSpooledTemporaryFile(BaseTestCase): @@ -1153,10 +1150,8 @@ def test_del_on_close(self): self.assertTrue(f._rolled) filename = f.name f.close() - self.assertEqual(os.listdir(dir), []) - if not isinstance(filename, int): - self.assertFalse(os.path.exists(filename), - "SpooledTemporaryFile %s exists after close" % filename) + self.assertFalse(isinstance(filename, str) and os.path.exists(filename), + "SpooledTemporaryFile %s exists after close" % filename) finally: os.rmdir(dir) @@ -1473,34 +1468,19 @@ def roundtrip(input, *args, **kwargs): roundtrip("\u039B", "w+", encoding="utf-16") roundtrip("foo\r\n", "w+", newline="") - def test_bad_mode(self): - dir = tempfile.mkdtemp() - self.addCleanup(os_helper.rmtree, dir) - with self.assertRaises(ValueError): - tempfile.TemporaryFile(mode='wr', dir=dir) - with self.assertRaises(TypeError): - tempfile.TemporaryFile(mode=2, dir=dir) - self.assertEqual(os.listdir(dir), []) - - def test_bad_encoding(self): - dir = tempfile.mkdtemp() - self.addCleanup(os_helper.rmtree, dir) - with self.assertRaises(LookupError): - tempfile.TemporaryFile('w', encoding='bad-encoding', dir=dir) - self.assertEqual(os.listdir(dir), []) + def test_no_leak_fd(self): + # Issue #21058: don't leak file descriptor when io.open() fails + closed = [] + os_close = os.close + def close(fd): + closed.append(fd) + os_close(fd) + + with mock.patch('os.close', side_effect=close): + with mock.patch('io.open', side_effect=ValueError): + self.assertRaises(ValueError, tempfile.TemporaryFile) + self.assertEqual(len(closed), 1) - def test_unexpected_error(self): - dir = tempfile.mkdtemp() - self.addCleanup(os_helper.rmtree, dir) - with mock.patch('tempfile._O_TMPFILE_WORKS', False), \ - mock.patch('os.unlink') as mock_unlink, \ - mock.patch('os.open') as mock_open, \ - mock.patch('os.close') as mock_close: - mock_unlink.side_effect = KeyboardInterrupt() - with self.assertRaises(KeyboardInterrupt): - tempfile.TemporaryFile(dir=dir) - mock_close.assert_called() - self.assertEqual(os.listdir(dir), []) # Helper for test_del_on_shutdown diff --git a/Lib/test/test_thread.py b/Lib/test/test_thread.py index 2ae5e9ccb44088..ed527e7164fd0a 100644 --- a/Lib/test/test_thread.py +++ b/Lib/test/test_thread.py @@ -13,6 +13,7 @@ NUMTASKS = 10 NUMTRIPS = 3 +POLL_SLEEP = 0.010 # seconds = 10 ms _print_mutex = thread.allocate_lock() @@ -120,24 +121,19 @@ def task(): with threading_helper.wait_threads_exit(): thread.start_new_thread(task, ()) - for _ in support.sleeping_retry(support.LONG_TIMEOUT): - if started: - break + while not started: + time.sleep(POLL_SLEEP) self.assertEqual(thread._count(), orig + 1) - # Allow the task to finish. mut.release() - # The only reliable way to be sure that the thread ended from the - # interpreter's point of view is to wait for the function object to - # be destroyed. + # interpreter's point of view is to wait for the function object to be + # destroyed. done = [] wr = weakref.ref(task, lambda _: done.append(None)) del task - - for _ in support.sleeping_retry(support.LONG_TIMEOUT): - if done: - break + while not done: + time.sleep(POLL_SLEEP) support.gc_collect() # For PyPy or other GCs. self.assertEqual(thread._count(), orig) diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py index c6649962331464..dcd27697bb4839 100644 --- a/Lib/test/test_threading.py +++ b/Lib/test/test_threading.py @@ -853,7 +853,6 @@ def callback(): callback() finally: sys.settrace(old_trace) - threading.settrace(old_trace) def test_gettrace(self): def noop_trace(frame, event, arg): @@ -867,35 +866,6 @@ def noop_trace(frame, event, arg): finally: threading.settrace(old_trace) - def test_gettrace_all_threads(self): - def fn(*args): pass - old_trace = threading.gettrace() - first_check = threading.Event() - second_check = threading.Event() - - trace_funcs = [] - def checker(): - trace_funcs.append(sys.gettrace()) - first_check.set() - second_check.wait() - trace_funcs.append(sys.gettrace()) - - try: - t = threading.Thread(target=checker) - t.start() - first_check.wait() - threading.settrace_all_threads(fn) - second_check.set() - t.join() - self.assertEqual(trace_funcs, [None, fn]) - self.assertEqual(threading.gettrace(), fn) - self.assertEqual(sys.gettrace(), fn) - finally: - threading.settrace_all_threads(old_trace) - - self.assertEqual(threading.gettrace(), old_trace) - self.assertEqual(sys.gettrace(), old_trace) - def test_getprofile(self): def fn(*args): pass old_profile = threading.getprofile() @@ -905,35 +875,6 @@ def fn(*args): pass finally: threading.setprofile(old_profile) - def test_getprofile_all_threads(self): - def fn(*args): pass - old_profile = threading.getprofile() - first_check = threading.Event() - second_check = threading.Event() - - profile_funcs = [] - def checker(): - profile_funcs.append(sys.getprofile()) - first_check.set() - second_check.wait() - profile_funcs.append(sys.getprofile()) - - try: - t = threading.Thread(target=checker) - t.start() - first_check.wait() - threading.setprofile_all_threads(fn) - second_check.set() - t.join() - self.assertEqual(profile_funcs, [None, fn]) - self.assertEqual(threading.getprofile(), fn) - self.assertEqual(sys.getprofile(), fn) - finally: - threading.setprofile_all_threads(old_profile) - - self.assertEqual(threading.getprofile(), old_profile) - self.assertEqual(sys.getprofile(), old_profile) - @cpython_only def test_shutdown_locks(self): for daemon in (False, True): diff --git a/Lib/test/test_threading_local.py b/Lib/test/test_threading_local.py index 48e302930ff7e9..9888e631881fa6 100644 --- a/Lib/test/test_threading_local.py +++ b/Lib/test/test_threading_local.py @@ -4,6 +4,7 @@ from test import support from test.support import threading_helper import weakref +import gc # Modules under test import _thread diff --git a/Lib/test/test_threadsignals.py b/Lib/test/test_threadsignals.py index 6a53d655015cdb..e0ac18c9463986 100644 --- a/Lib/test/test_threadsignals.py +++ b/Lib/test/test_threadsignals.py @@ -36,9 +36,7 @@ def send_signals(): os.kill(process_pid, signal.SIGUSR2) signalled_all.release() - @threading_helper.requires_working_threading() -@unittest.skipUnless(hasattr(signal, "alarm"), "test requires signal.alarm") class ThreadSignals(unittest.TestCase): def test_signals(self): diff --git a/Lib/test/test_tk.py b/Lib/test/test_tk.py new file mode 100644 index 00000000000000..8f90cbaba9f7c4 --- /dev/null +++ b/Lib/test/test_tk.py @@ -0,0 +1,20 @@ +import unittest +from test import support +from test.support import import_helper +from test.support import check_sanitizer + +if check_sanitizer(address=True, memory=True): + raise unittest.SkipTest("Tests involvin libX11 can SEGFAULT on ASAN/MSAN builds") + +# Skip test if _tkinter wasn't built. +import_helper.import_module('_tkinter') + +# Skip test if tk cannot be initialized. +support.requires('gui') + +def load_tests(loader, tests, pattern): + return loader.discover('tkinter.test.test_tkinter') + + +if __name__ == '__main__': + unittest.main() diff --git a/Lib/test/test_tkinter/__init__.py b/Lib/test/test_tkinter/__init__.py deleted file mode 100644 index edcb44951bde36..00000000000000 --- a/Lib/test/test_tkinter/__init__.py +++ /dev/null @@ -1,18 +0,0 @@ -import os.path -import unittest -from test import support -from test.support import import_helper - - -if support.check_sanitizer(address=True, memory=True): - raise unittest.SkipTest("Tests involving libX11 can SEGFAULT on ASAN/MSAN builds") - -# Skip test if _tkinter wasn't built. -import_helper.import_module('_tkinter') - -# Skip test if tk cannot be initialized. -support.requires('gui') - - -def load_tests(*args): - return support.load_package_tests(os.path.dirname(__file__), *args) diff --git a/Lib/test/test_tkinter/__main__.py b/Lib/test/test_tkinter/__main__.py deleted file mode 100644 index 40a23a297ec2b4..00000000000000 --- a/Lib/test/test_tkinter/__main__.py +++ /dev/null @@ -1,4 +0,0 @@ -from . import load_tests -import unittest - -unittest.main() diff --git a/Lib/test/test_tomllib/test_misc.py b/Lib/test/test_tomllib/test_misc.py index a477a219fd9ebd..378db58f255945 100644 --- a/Lib/test/test_tomllib/test_misc.py +++ b/Lib/test/test_tomllib/test_misc.py @@ -92,8 +92,8 @@ def test_deepcopy(self): self.assertEqual(obj_copy, expected_obj) def test_inline_array_recursion_limit(self): - # 465 with default recursion limit - nest_count = int(sys.getrecursionlimit() * 0.465) + # 470 with default recursion limit + nest_count = int(sys.getrecursionlimit() * 0.47) recursive_array_toml = "arr = " + nest_count * "[" + nest_count * "]" tomllib.loads(recursive_array_toml) diff --git a/Lib/test/test_tools/test_md5sum.py b/Lib/test/test_tools/test_md5sum.py index 710461f8819754..c5a230e95c2b7e 100644 --- a/Lib/test/test_tools/test_md5sum.py +++ b/Lib/test/test_tools/test_md5sum.py @@ -1,5 +1,6 @@ """Tests for the md5sum script in the Tools directory.""" +import sys import os import unittest from test.support import os_helper diff --git a/Lib/test/test_tools/test_pathfix.py b/Lib/test/test_tools/test_pathfix.py index aa754bc479b468..ff61935298b920 100644 --- a/Lib/test/test_tools/test_pathfix.py +++ b/Lib/test/test_tools/test_pathfix.py @@ -2,6 +2,7 @@ import subprocess import sys import unittest +from test import support from test.support import os_helper from test.test_tools import scriptsdir, skip_if_missing diff --git a/Lib/test/test_tools/test_pindent.py b/Lib/test/test_tools/test_pindent.py index 61e97fea48cfba..01f13850eae733 100644 --- a/Lib/test/test_tools/test_pindent.py +++ b/Lib/test/test_tools/test_pindent.py @@ -5,6 +5,7 @@ import unittest import subprocess import textwrap +from test import support from test.support import os_helper from test.support.script_helper import assert_python_ok diff --git a/Lib/test/test_traceback.py b/Lib/test/test_traceback.py index 2089050cadfc2c..ed5ddf95069e35 100644 --- a/Lib/test/test_traceback.py +++ b/Lib/test/test_traceback.py @@ -4,7 +4,6 @@ from io import StringIO import linecache import sys -import types import inspect import unittest import re @@ -15,6 +14,7 @@ from test.support.os_helper import TESTFN, unlink from test.support.script_helper import assert_python_ok, assert_python_failure +import os import textwrap import traceback from functools import partial @@ -252,7 +252,7 @@ def do_test(firstlines, message, charset, lineno): self.assertTrue(stdout[2].endswith(err_line), "Invalid traceback line: {0!r} instead of {1!r}".format( stdout[2], err_line)) - actual_err_msg = stdout[3] + actual_err_msg = stdout[3 if has_no_debug_ranges() else 4] self.assertTrue(actual_err_msg == err_msg, "Invalid error message: {0!r} instead of {1!r}".format( actual_err_msg, err_msg)) @@ -386,19 +386,18 @@ def get_exception(self, callable): callable_line = get_exception.__code__.co_firstlineno + 2 def test_basic_caret(self): - # NOTE: In caret tests, "if True:" is used as a way to force indicator - # display, since the raising expression spans only part of the line. def f(): - if True: raise ValueError("basic caret tests") + raise ValueError("basic caret tests") lineno_f = f.__code__.co_firstlineno expected_f = ( 'Traceback (most recent call last):\n' f' File "{__file__}", line {self.callable_line}, in get_exception\n' ' callable()\n' + ' ^^^^^^^^^^\n' f' File "{__file__}", line {lineno_f+1}, in f\n' - ' if True: raise ValueError("basic caret tests")\n' - ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' + ' raise ValueError("basic caret tests")\n' + ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' ) result_lines = self.get_exception(f) self.assertEqual(result_lines, expected_f.splitlines()) @@ -407,16 +406,17 @@ def test_line_with_unicode(self): # Make sure that even if a line contains multi-byte unicode characters # the correct carets are printed. def f_with_unicode(): - if True: raise ValueError("Ĥellö Wörld") + raise ValueError("Ĥellö Wörld") lineno_f = f_with_unicode.__code__.co_firstlineno expected_f = ( 'Traceback (most recent call last):\n' f' File "{__file__}", line {self.callable_line}, in get_exception\n' ' callable()\n' + ' ^^^^^^^^^^\n' f' File "{__file__}", line {lineno_f+1}, in f_with_unicode\n' - ' if True: raise ValueError("Ĥellö Wörld")\n' - ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' + ' raise ValueError("Ĥellö Wörld")\n' + ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' ) result_lines = self.get_exception(f_with_unicode) self.assertEqual(result_lines, expected_f.splitlines()) @@ -431,6 +431,7 @@ def foo(a: THIS_DOES_NOT_EXIST ) -> int: 'Traceback (most recent call last):\n' f' File "{__file__}", line {self.callable_line}, in get_exception\n' ' callable()\n' + ' ^^^^^^^^^^\n' f' File "{__file__}", line {lineno_f+1}, in f_with_type\n' ' def foo(a: THIS_DOES_NOT_EXIST ) -> int:\n' ' ^^^^^^^^^^^^^^^^^^^\n' @@ -442,7 +443,7 @@ def test_caret_multiline_expression(self): # Make sure no carets are printed for expressions spanning multiple # lines. def f_with_multiline(): - if True: raise ValueError( + raise ValueError( "error over multiple lines" ) @@ -451,9 +452,10 @@ def f_with_multiline(): 'Traceback (most recent call last):\n' f' File "{__file__}", line {self.callable_line}, in get_exception\n' ' callable()\n' + ' ^^^^^^^^^^\n' f' File "{__file__}", line {lineno_f+1}, in f_with_multiline\n' - ' if True: raise ValueError(\n' - ' ^^^^^^^^^^^^^^^^^' + ' raise ValueError(\n' + ' ^^^^^^^^^^^^^^^^^' ) result_lines = self.get_exception(f_with_multiline) self.assertEqual(result_lines, expected_f.splitlines()) @@ -482,6 +484,7 @@ def f_with_multiline(): 'Traceback (most recent call last):\n' f' File "{__file__}", line {self.callable_line}, in get_exception\n' ' callable()\n' + ' ^^^^^^^^^^\n' f' File "{__file__}", line {lineno_f+2}, in f_with_multiline\n' ' return compile(code, "?", "exec")\n' ' ^^^^^^^^^^^^^^^^^^^^^^^^^^\n' @@ -498,8 +501,9 @@ def test_caret_multiline_expression_bin_op(self): # lines. def f_with_multiline(): return ( - 2 + 1 / - 0 + 1 / + 0 + + 2 ) lineno_f = f_with_multiline.__code__.co_firstlineno @@ -507,9 +511,10 @@ def f_with_multiline(): 'Traceback (most recent call last):\n' f' File "{__file__}", line {self.callable_line}, in get_exception\n' ' callable()\n' + ' ^^^^^^^^^^\n' f' File "{__file__}", line {lineno_f+2}, in f_with_multiline\n' - ' 2 + 1 /\n' - ' ^^^' + ' 1 /\n' + ' ^^^' ) result_lines = self.get_exception(f_with_multiline) self.assertEqual(result_lines, expected_f.splitlines()) @@ -524,6 +529,7 @@ def f_with_binary_operator(): 'Traceback (most recent call last):\n' f' File "{__file__}", line {self.callable_line}, in get_exception\n' ' callable()\n' + ' ^^^^^^^^^^\n' f' File "{__file__}", line {lineno_f+2}, in f_with_binary_operator\n' ' return 10 + divisor / 0 + 30\n' ' ~~~~~~~~^~~\n' @@ -541,6 +547,7 @@ def f_with_binary_operator(): 'Traceback (most recent call last):\n' f' File "{__file__}", line {self.callable_line}, in get_exception\n' ' callable()\n' + ' ^^^^^^^^^^\n' f' File "{__file__}", line {lineno_f+2}, in f_with_binary_operator\n' ' return 10 + divisor // 0 + 30\n' ' ~~~~~~~~^^~~\n' @@ -558,6 +565,7 @@ def f_with_subscript(): 'Traceback (most recent call last):\n' f' File "{__file__}", line {self.callable_line}, in get_exception\n' ' callable()\n' + ' ^^^^^^^^^^\n' f' File "{__file__}", line {lineno_f+2}, in f_with_subscript\n' " return some_dict['x']['y']['z']\n" ' ~~~~~~~~~~~~~~~~~~~^^^^^\n' @@ -581,6 +589,7 @@ def test_traceback_specialization_with_syntax_error(self): 'Traceback (most recent call last):\n' f' File "{__file__}", line {self.callable_line}, in get_exception\n' ' callable()\n' + ' ^^^^^^^^^^\n' f' File "{TESTFN}", line {lineno_f}, in <module>\n' " 1 $ 0 / 1 / 2\n" ' ^^^^^\n' @@ -588,7 +597,7 @@ def test_traceback_specialization_with_syntax_error(self): self.assertEqual(result_lines, expected_error.splitlines()) def test_traceback_very_long_line(self): - source = "if True: " + "a" * 256 + source = "a" * 256 bytecode = compile(source, TESTFN, "exec") with open(TESTFN, "w") as file: @@ -603,54 +612,13 @@ def test_traceback_very_long_line(self): 'Traceback (most recent call last):\n' f' File "{__file__}", line {self.callable_line}, in get_exception\n' ' callable()\n' + ' ^^^^^^^^^^\n' f' File "{TESTFN}", line {lineno_f}, in <module>\n' f' {source}\n' - f' {" "*len("if True: ") + "^"*256}\n' + f' {"^"*len(source)}\n' ) self.assertEqual(result_lines, expected_error.splitlines()) - def test_secondary_caret_not_elided(self): - # Always show a line's indicators if they include the secondary character. - def f_with_subscript(): - some_dict = {'x': {'y': None}} - some_dict['x']['y']['z'] - - lineno_f = f_with_subscript.__code__.co_firstlineno - expected_error = ( - 'Traceback (most recent call last):\n' - f' File "{__file__}", line {self.callable_line}, in get_exception\n' - ' callable()\n' - f' File "{__file__}", line {lineno_f+2}, in f_with_subscript\n' - " some_dict['x']['y']['z']\n" - ' ~~~~~~~~~~~~~~~~~~~^^^^^\n' - ) - result_lines = self.get_exception(f_with_subscript) - self.assertEqual(result_lines, expected_error.splitlines()) - - def test_caret_exception_group(self): - # Notably, this covers whether indicators handle margin strings correctly. - # (Exception groups use margin strings to display vertical indicators.) - # The implementation must account for both "indent" and "margin" offsets. - - def exc(): - if True: raise ExceptionGroup("eg", [ValueError(1), TypeError(2)]) - - expected_error = ( - f' + Exception Group Traceback (most recent call last):\n' - f' | File "{__file__}", line {self.callable_line}, in get_exception\n' - f' | callable()\n' - f' | File "{__file__}", line {exc.__code__.co_firstlineno + 1}, in exc\n' - f' | if True: raise ExceptionGroup("eg", [ValueError(1), TypeError(2)])\n' - f' | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' - f' | ExceptionGroup: eg (2 sub-exceptions)\n' - f' +-+---------------- 1 ----------------\n' - f' | ValueError: 1\n' - f' +---------------- 2 ----------------\n' - f' | TypeError: 2\n') - - result_lines = self.get_exception(exc) - self.assertEqual(result_lines, expected_error.splitlines()) - def assertSpecialized(self, func, expected_specialization): result_lines = self.get_exception(func) specialization_line = result_lines[-1] @@ -704,11 +672,13 @@ def g(): pass 'Traceback (most recent call last):\n' f' File "{__file__}", line {self.callable_line}, in get_exception\n' ' callable()\n' + ' ^^^^^^^^^^\n' f' File "{__file__}", line {lineno_applydescs + 1}, in applydecs\n' ' @dec_error\n' ' ^^^^^^^^^\n' f' File "{__file__}", line {lineno_dec_error + 1}, in dec_error\n' ' raise TypeError\n' + ' ^^^^^^^^^^^^^^^\n' ) self.assertEqual(result_lines, expected_error.splitlines()) @@ -722,61 +692,16 @@ class A: pass 'Traceback (most recent call last):\n' f' File "{__file__}", line {self.callable_line}, in get_exception\n' ' callable()\n' + ' ^^^^^^^^^^\n' f' File "{__file__}", line {lineno_applydescs_class + 1}, in applydecs_class\n' ' @dec_error\n' ' ^^^^^^^^^\n' f' File "{__file__}", line {lineno_dec_error + 1}, in dec_error\n' ' raise TypeError\n' + ' ^^^^^^^^^^^^^^^\n' ) self.assertEqual(result_lines, expected_error.splitlines()) - def test_multiline_method_call_a(self): - def f(): - (None - .method - )() - actual = self.get_exception(f) - expected = [ - f"Traceback (most recent call last):", - f" File \"{__file__}\", line {self.callable_line}, in get_exception", - f" callable()", - f" File \"{__file__}\", line {f.__code__.co_firstlineno + 2}, in f", - f" .method", - f" ^^^^^^", - ] - self.assertEqual(actual, expected) - - def test_multiline_method_call_b(self): - def f(): - (None. - method - )() - actual = self.get_exception(f) - expected = [ - f"Traceback (most recent call last):", - f" File \"{__file__}\", line {self.callable_line}, in get_exception", - f" callable()", - f" File \"{__file__}\", line {f.__code__.co_firstlineno + 2}, in f", - f" method", - ] - self.assertEqual(actual, expected) - - def test_multiline_method_call_c(self): - def f(): - (None - . method - )() - actual = self.get_exception(f) - expected = [ - f"Traceback (most recent call last):", - f" File \"{__file__}\", line {self.callable_line}, in get_exception", - f" callable()", - f" File \"{__file__}\", line {f.__code__.co_firstlineno + 2}, in f", - f" . method", - f" ^^^^^^", - ] - self.assertEqual(actual, expected) - @cpython_only @requires_debug_ranges() class CPythonTracebackErrorCaretTests(TracebackErrorLocationCaretTests): @@ -840,8 +765,12 @@ def check_traceback_format(self, cleanup_func=None): # Make sure that the traceback is properly indented. tb_lines = python_fmt.splitlines() banner = tb_lines[0] - self.assertEqual(len(tb_lines), 5) - location, source_line = tb_lines[-2], tb_lines[-1] + if has_no_debug_ranges(): + self.assertEqual(len(tb_lines), 5) + location, source_line = tb_lines[-2], tb_lines[-1] + else: + self.assertEqual(len(tb_lines), 7) + location, source_line = tb_lines[-3], tb_lines[-2] self.assertTrue(banner.startswith('Traceback')) self.assertTrue(location.startswith(' File')) self.assertTrue(source_line.startswith(' raise')) @@ -905,12 +834,16 @@ def f(): 'Traceback (most recent call last):\n' f' File "{__file__}", line {lineno_f+5}, in _check_recursive_traceback_display\n' ' f()\n' + ' ^^^\n' f' File "{__file__}", line {lineno_f+1}, in f\n' ' f()\n' + ' ^^^\n' f' File "{__file__}", line {lineno_f+1}, in f\n' ' f()\n' + ' ^^^\n' f' File "{__file__}", line {lineno_f+1}, in f\n' ' f()\n' + ' ^^^\n' # XXX: The following line changes depending on whether the tests # are run through the interactive interpreter or with -m # It also varies depending on the platform (stack size) @@ -961,12 +894,14 @@ def g(count=10): ' [Previous line repeated 7 more times]\n' f' File "{__file__}", line {lineno_g+3}, in g\n' ' raise ValueError\n' + ' ^^^^^^^^^^^^^^^^\n' 'ValueError\n' ) tb_line = ( 'Traceback (most recent call last):\n' f' File "{__file__}", line {lineno_g+7}, in _check_recursive_traceback_display\n' ' g()\n' + ' ^^^\n' ) expected = (tb_line + result_g).splitlines() actual = stderr_g.getvalue().splitlines() @@ -991,6 +926,7 @@ def h(count=10): 'Traceback (most recent call last):\n' f' File "{__file__}", line {lineno_h+7}, in _check_recursive_traceback_display\n' ' h()\n' + ' ^^^\n' f' File "{__file__}", line {lineno_h+2}, in h\n' ' return h(count-1)\n' ' ^^^^^^^^^^\n' @@ -1003,6 +939,7 @@ def h(count=10): ' [Previous line repeated 7 more times]\n' f' File "{__file__}", line {lineno_h+3}, in h\n' ' g()\n' + ' ^^^\n' ) expected = (result_h + result_g).splitlines() actual = stderr_h.getvalue().splitlines() @@ -1028,12 +965,14 @@ def h(count=10): ' ^^^^^^^^^^\n' f' File "{__file__}", line {lineno_g+3}, in g\n' ' raise ValueError\n' + ' ^^^^^^^^^^^^^^^^\n' 'ValueError\n' ) tb_line = ( 'Traceback (most recent call last):\n' - f' File "{__file__}", line {lineno_g+77}, in _check_recursive_traceback_display\n' + f' File "{__file__}", line {lineno_g+81}, in _check_recursive_traceback_display\n' ' g(traceback._RECURSIVE_CUTOFF)\n' + ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' ) expected = (tb_line + result_g).splitlines() actual = stderr_g.getvalue().splitlines() @@ -1060,12 +999,14 @@ def h(count=10): ' [Previous line repeated 1 more time]\n' f' File "{__file__}", line {lineno_g+3}, in g\n' ' raise ValueError\n' + ' ^^^^^^^^^^^^^^^^\n' 'ValueError\n' ) tb_line = ( 'Traceback (most recent call last):\n' - f' File "{__file__}", line {lineno_g+108}, in _check_recursive_traceback_display\n' + f' File "{__file__}", line {lineno_g+114}, in _check_recursive_traceback_display\n' ' g(traceback._RECURSIVE_CUTOFF + 1)\n' + ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' ) expected = (tb_line + result_g).splitlines() actual = stderr_g.getvalue().splitlines() @@ -1118,10 +1059,16 @@ def __eq__(self, other): exception_print(exc_val) tb = stderr_f.getvalue().strip().splitlines() - self.assertEqual(11, len(tb)) - self.assertEqual(context_message.strip(), tb[5]) - self.assertIn('UnhashableException: ex2', tb[3]) - self.assertIn('UnhashableException: ex1', tb[10]) + if has_no_debug_ranges(): + self.assertEqual(11, len(tb)) + self.assertEqual(context_message.strip(), tb[5]) + self.assertIn('UnhashableException: ex2', tb[3]) + self.assertIn('UnhashableException: ex1', tb[10]) + else: + self.assertEqual(13, len(tb)) + self.assertEqual(context_message.strip(), tb[6]) + self.assertIn('UnhashableException: ex2', tb[4]) + self.assertIn('UnhashableException: ex1', tb[12]) def deep_eg(self): e = TypeError(1) @@ -1182,7 +1129,7 @@ def test_print_exception_bad_type_python(self): class BaseExceptionReportingTests: def get_exception(self, exception_or_callable): - if isinstance(exception_or_callable, BaseException): + if isinstance(exception_or_callable, Exception): return exception_or_callable try: exception_or_callable() @@ -1257,8 +1204,12 @@ def test_context_suppression(self): except ZeroDivisionError as _: e = _ lines = self.get_report(e).splitlines() - self.assertEqual(len(lines), 4) - self.assertTrue(lines[3].startswith('ZeroDivisionError')) + if has_no_debug_ranges(): + self.assertEqual(len(lines), 4) + self.assertTrue(lines[3].startswith('ZeroDivisionError')) + else: + self.assertEqual(len(lines), 5) + self.assertTrue(lines[4].startswith('ZeroDivisionError')) self.assertTrue(lines[0].startswith('Traceback')) self.assertTrue(lines[1].startswith(' File')) self.assertIn('ZeroDivisionError from None', lines[2]) @@ -1477,21 +1428,6 @@ def __str__(self): exp = "%s: %s\n" % (str_name, str_value) self.assertEqual(exp, err) - def test_exception_angle_bracketed_filename(self): - src = textwrap.dedent(""" - try: - raise ValueError(42) - except Exception as e: - exc = e - """) - - code = compile(src, "<does not exist>", "exec") - g, l = {}, {} - exec(code, g, l) - err = self.get_report(l['exc']) - exp = ' File "<does not exist>", line 3, in <module>\nValueError: 42\n' - self.assertIn(exp, err) - def test_exception_modulename_not_unicode(self): class X(Exception): def __str__(self): @@ -1523,8 +1459,10 @@ def exc(): f' + Exception Group Traceback (most recent call last):\n' f' | File "{__file__}", line {self.callable_line}, in get_exception\n' f' | exception_or_callable()\n' + f' | ^^^^^^^^^^^^^^^^^^^^^^^\n' f' | File "{__file__}", line {exc.__code__.co_firstlineno + 1}, in exc\n' f' | raise ExceptionGroup("eg", [ValueError(1), TypeError(2)])\n' + f' | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' f' | ExceptionGroup: eg (2 sub-exceptions)\n' f' +-+---------------- 1 ----------------\n' f' | ValueError: 1\n' @@ -1546,6 +1484,7 @@ def exc(): expected = (f' + Exception Group Traceback (most recent call last):\n' f' | File "{__file__}", line {exc.__code__.co_firstlineno + 3}, in exc\n' f' | raise EG("eg1", [ValueError(1), TypeError(2)])\n' + f' | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' f' | ExceptionGroup: eg1 (2 sub-exceptions)\n' f' +-+---------------- 1 ----------------\n' f' | ValueError: 1\n' @@ -1558,8 +1497,10 @@ def exc(): f' + Exception Group Traceback (most recent call last):\n' f' | File "{__file__}", line {self.callable_line}, in get_exception\n' f' | exception_or_callable()\n' + f' | ^^^^^^^^^^^^^^^^^^^^^^^\n' f' | File "{__file__}", line {exc.__code__.co_firstlineno + 5}, in exc\n' f' | raise EG("eg2", [ValueError(3), TypeError(4)]) from e\n' + f' | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' f' | ExceptionGroup: eg2 (2 sub-exceptions)\n' f' +-+---------------- 1 ----------------\n' f' | ValueError: 3\n' @@ -1585,6 +1526,7 @@ def exc(): f' + Exception Group Traceback (most recent call last):\n' f' | File "{__file__}", line {exc.__code__.co_firstlineno + 4}, in exc\n' f' | raise EG("eg1", [ValueError(1), TypeError(2)])\n' + f' | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' f' | ExceptionGroup: eg1 (2 sub-exceptions)\n' f' +-+---------------- 1 ----------------\n' f' | ValueError: 1\n' @@ -1597,6 +1539,7 @@ def exc(): f' + Exception Group Traceback (most recent call last):\n' f' | File "{__file__}", line {exc.__code__.co_firstlineno + 6}, in exc\n' f' | raise EG("eg2", [ValueError(3), TypeError(4)])\n' + f' | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' f' | ExceptionGroup: eg2 (2 sub-exceptions)\n' f' +-+---------------- 1 ----------------\n' f' | ValueError: 3\n' @@ -1609,8 +1552,10 @@ def exc(): f'Traceback (most recent call last):\n' f' File "{__file__}", line {self.callable_line}, in get_exception\n' f' exception_or_callable()\n' + f' ^^^^^^^^^^^^^^^^^^^^^^^\n' f' File "{__file__}", line {exc.__code__.co_firstlineno + 8}, in exc\n' f' raise ImportError(5)\n' + f' ^^^^^^^^^^^^^^^^^^^^\n' f'ImportError: 5\n') report = self.get_report(exc) @@ -1633,6 +1578,7 @@ def exc(): expected = (f' + Exception Group Traceback (most recent call last):\n' f' | File "{__file__}", line {exc.__code__.co_firstlineno + 9}, in exc\n' f' | raise EG("eg", [VE(1), exc, VE(4)])\n' + f' | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' f' | ExceptionGroup: eg (3 sub-exceptions)\n' f' +-+---------------- 1 ----------------\n' f' | ValueError: 1\n' @@ -1640,6 +1586,7 @@ def exc(): f' | Exception Group Traceback (most recent call last):\n' f' | File "{__file__}", line {exc.__code__.co_firstlineno + 6}, in exc\n' f' | raise EG("nested", [TE(2), TE(3)])\n' + f' | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' f' | ExceptionGroup: nested (2 sub-exceptions)\n' f' +-+---------------- 1 ----------------\n' f' | TypeError: 2\n' @@ -1655,8 +1602,10 @@ def exc(): f' + Exception Group Traceback (most recent call last):\n' f' | File "{__file__}", line {self.callable_line}, in get_exception\n' f' | exception_or_callable()\n' + f' | ^^^^^^^^^^^^^^^^^^^^^^^\n' f' | File "{__file__}", line {exc.__code__.co_firstlineno + 11}, in exc\n' f' | raise EG("top", [VE(5)])\n' + f' | ^^^^^^^^^^^^^^^^^^^^^^^^\n' f' | ExceptionGroup: top (1 sub-exception)\n' f' +-+---------------- 1 ----------------\n' f' | ValueError: 5\n' @@ -1814,8 +1763,10 @@ def exc(): expected = (f' + Exception Group Traceback (most recent call last):\n' f' | File "{__file__}", line {self.callable_line}, in get_exception\n' f' | exception_or_callable()\n' + f' | ^^^^^^^^^^^^^^^^^^^^^^^\n' f' | File "{__file__}", line {exc.__code__.co_firstlineno + 9}, in exc\n' f' | raise ExceptionGroup("nested", excs)\n' + f' | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' f' | ExceptionGroup: nested (2 sub-exceptions)\n' f' | >> Multi line note\n' f' | >> Because I am such\n' @@ -1827,12 +1778,14 @@ def exc(): f' | Traceback (most recent call last):\n' f' | File "{__file__}", line {exc.__code__.co_firstlineno + 5}, in exc\n' f' | raise ValueError(msg)\n' + f' | ^^^^^^^^^^^^^^^^^^^^^\n' f' | ValueError: bad value\n' f' | the bad value\n' f' +---------------- 2 ----------------\n' f' | Traceback (most recent call last):\n' f' | File "{__file__}", line {exc.__code__.co_firstlineno + 5}, in exc\n' f' | raise ValueError(msg)\n' + f' | ^^^^^^^^^^^^^^^^^^^^^\n' f' | ValueError: terrible value\n' f' | the terrible value\n' f' +------------------------------------\n') @@ -1865,8 +1818,10 @@ def exc(): expected = (f' + Exception Group Traceback (most recent call last):\n' f' | File "{__file__}", line {self.callable_line}, in get_exception\n' f' | exception_or_callable()\n' + f' | ^^^^^^^^^^^^^^^^^^^^^^^\n' f' | File "{__file__}", line {exc.__code__.co_firstlineno + 10}, in exc\n' f' | raise ExceptionGroup("nested", excs)\n' + f' | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' f' | ExceptionGroup: nested (2 sub-exceptions)\n' f' | >> Multi line note\n' f' | >> Because I am such\n' @@ -1879,6 +1834,7 @@ def exc(): f' | Traceback (most recent call last):\n' f' | File "{__file__}", line {exc.__code__.co_firstlineno + 5}, in exc\n' f' | raise ValueError(msg)\n' + f' | ^^^^^^^^^^^^^^^^^^^^^\n' f' | ValueError: bad value\n' f' | the bad value\n' f' | Goodbye bad value\n' @@ -1886,6 +1842,7 @@ def exc(): f' | Traceback (most recent call last):\n' f' | File "{__file__}", line {exc.__code__.co_firstlineno + 5}, in exc\n' f' | raise ValueError(msg)\n' + f' | ^^^^^^^^^^^^^^^^^^^^^\n' f' | ValueError: terrible value\n' f' | the terrible value\n' f' | Goodbye terrible value\n' @@ -1894,31 +1851,6 @@ def exc(): report = self.get_report(exc) self.assertEqual(report, expected) - def test_KeyboardInterrupt_at_first_line_of_frame(self): - # see GH-93249 - def f(): - return sys._getframe() - - tb_next = None - frame = f() - lasti = 0 - lineno = f.__code__.co_firstlineno - tb = types.TracebackType(tb_next, frame, lasti, lineno) - - exc = KeyboardInterrupt() - exc.__traceback__ = tb - - expected = (f'Traceback (most recent call last):\n' - f' File "{__file__}", line {lineno}, in f\n' - f' def f():\n' - f'\n' - f'KeyboardInterrupt\n') - - report = self.get_report(exc) - # remove trailing writespace: - report = '\n'.join([l.rstrip() for l in report.split('\n')]) - self.assertEqual(report, expected) - class PyExcReportingTests(BaseExceptionReportingTests, unittest.TestCase): # @@ -2290,9 +2222,6 @@ def format_frame_summary(self, frame_summary): f' File "{__file__}", line {lno}, in f\n 1/0\n' ) -class Unrepresentable: - def __repr__(self) -> str: - raise Exception("Unrepresentable") class TestTracebackException(unittest.TestCase): @@ -2560,13 +2489,12 @@ def test_locals(self): linecache.updatecache('/foo.py', globals()) e = Exception("uh oh") c = test_code('/foo.py', 'method') - f = test_frame(c, globals(), {'something': 1, 'other': 'string', 'unrepresentable': Unrepresentable()}) + f = test_frame(c, globals(), {'something': 1, 'other': 'string'}) tb = test_tb(f, 6, None, 0) exc = traceback.TracebackException( Exception, e, tb, capture_locals=True) self.assertEqual( - exc.stack[0].locals, - {'something': '1', 'other': "'string'", 'unrepresentable': '<local repr() failed>'}) + exc.stack[0].locals, {'something': '1', 'other': "'string'"}) def test_no_locals(self): linecache.updatecache('/foo.py', globals()) @@ -2665,16 +2593,19 @@ def test_exception_group_format(self): f' + Exception Group Traceback (most recent call last):', f' | File "{__file__}", line {lno_g+23}, in _get_exception_group', f' | raise ExceptionGroup("eg2", [exc3, exc4])', + f' | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^', f' | ExceptionGroup: eg2 (2 sub-exceptions)', f' +-+---------------- 1 ----------------', f' | Exception Group Traceback (most recent call last):', f' | File "{__file__}", line {lno_g+16}, in _get_exception_group', f' | raise ExceptionGroup("eg1", [exc1, exc2])', + f' | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^', f' | ExceptionGroup: eg1 (2 sub-exceptions)', f' +-+---------------- 1 ----------------', f' | Traceback (most recent call last):', f' | File "{__file__}", line {lno_g+9}, in _get_exception_group', f' | f()', + f' | ^^^', f' | File "{__file__}", line {lno_f+1}, in f', f' | 1/0', f' | ~^~', @@ -2683,16 +2614,20 @@ def test_exception_group_format(self): f' | Traceback (most recent call last):', f' | File "{__file__}", line {lno_g+13}, in _get_exception_group', f' | g(42)', + f' | ^^^^^', f' | File "{__file__}", line {lno_g+1}, in g', f' | raise ValueError(v)', + f' | ^^^^^^^^^^^^^^^^^^^', f' | ValueError: 42', f' +------------------------------------', f' +---------------- 2 ----------------', f' | Traceback (most recent call last):', f' | File "{__file__}", line {lno_g+20}, in _get_exception_group', f' | g(24)', + f' | ^^^^^', f' | File "{__file__}", line {lno_g+1}, in g', f' | raise ValueError(v)', + f' | ^^^^^^^^^^^^^^^^^^^', f' | ValueError: 24', f' +------------------------------------', f''] diff --git a/Lib/test/test_tracemalloc.py b/Lib/test/test_tracemalloc.py index 94bcee302fe730..d2a5ede61e3ff1 100644 --- a/Lib/test/test_tracemalloc.py +++ b/Lib/test/test_tracemalloc.py @@ -360,20 +360,6 @@ def test_fork(self): else: support.wait_process(pid, exitcode=0) - def test_no_incomplete_frames(self): - tracemalloc.stop() - tracemalloc.start(8) - - def f(x): - def g(): - return x - return g - - obj = f(0).__closure__[0] - traceback = tracemalloc.get_object_traceback(obj) - self.assertIn("test_tracemalloc", traceback[-1].filename) - self.assertNotIn("test_tracemalloc", traceback[-2].filename) - class TestSnapshot(unittest.TestCase): maxDiff = 4000 diff --git a/Lib/test/test_ttk/__main__.py b/Lib/test/test_ttk/__main__.py deleted file mode 100644 index 40a23a297ec2b4..00000000000000 --- a/Lib/test/test_ttk/__main__.py +++ /dev/null @@ -1,4 +0,0 @@ -from . import load_tests -import unittest - -unittest.main() diff --git a/Lib/test/test_ttk/__init__.py b/Lib/test/test_ttk_guionly.py similarity index 68% rename from Lib/test/test_ttk/__init__.py rename to Lib/test/test_ttk_guionly.py index 7ee7ffbd6d7408..c4919045d75cb7 100644 --- a/Lib/test/test_ttk/__init__.py +++ b/Lib/test/test_ttk_guionly.py @@ -1,11 +1,10 @@ -import os.path import unittest from test import support from test.support import import_helper +from test.support import check_sanitizer - -if support.check_sanitizer(address=True, memory=True): - raise unittest.SkipTest("Tests involving libX11 can SEGFAULT on ASAN/MSAN builds") +if check_sanitizer(address=True, memory=True): + raise unittest.SkipTest("Tests involvin libX11 can SEGFAULT on ASAN/MSAN builds") # Skip this test if _tkinter wasn't built. import_helper.import_module('_tkinter') @@ -13,7 +12,6 @@ # Skip test if tk cannot be initialized. support.requires('gui') - import tkinter from _tkinter import TclError from tkinter import ttk @@ -34,6 +32,9 @@ def setUpModule(): root.destroy() del root +def load_tests(loader, tests, pattern): + return loader.discover('tkinter.test.test_ttk') + -def load_tests(*args): - return support.load_package_tests(os.path.dirname(__file__), *args) +if __name__ == '__main__': + unittest.main() diff --git a/Lib/test/test_type_comments.py b/Lib/test/test_type_comments.py index 8db7394d1512aa..71d1430dbc939d 100644 --- a/Lib/test/test_type_comments.py +++ b/Lib/test/test_type_comments.py @@ -1,6 +1,7 @@ import ast import sys import unittest +from test import support funcdef = """\ @@ -322,7 +323,7 @@ def test_ignores(self): self.assertEqual(tree.type_ignores, []) def test_longargs(self): - for tree in self.parse_all(longargs, minver=8): + for tree in self.parse_all(longargs): for t in tree.body: # The expected args are encoded in the function name todo = set(t.name[1:]) diff --git a/Lib/test/test_types.py b/Lib/test/test_types.py index f00da0a758d46f..cde9dadc5e97fa 100644 --- a/Lib/test/test_types.py +++ b/Lib/test/test_types.py @@ -597,12 +597,6 @@ def test_slot_wrapper_types(self): self.assertIsInstance(object.__lt__, types.WrapperDescriptorType) self.assertIsInstance(int.__lt__, types.WrapperDescriptorType) - def test_dunder_get_signature(self): - sig = inspect.signature(object.__init__.__get__) - self.assertEqual(list(sig.parameters), ["instance", "owner"]) - # gh-93021: Second parameter is optional - self.assertIs(sig.parameters["owner"].default, None) - def test_method_wrapper_types(self): self.assertIsInstance(object().__init__, types.MethodWrapperType) self.assertIsInstance(object().__str__, types.MethodWrapperType) @@ -1203,16 +1197,6 @@ def test_union(self): self.assertDictEqual(mapping, {'a': 0, 'b': 1, 'c': 2}) self.assertDictEqual(other, {'c': 3, 'p': 0}) - def test_hash(self): - class HashableDict(dict): - def __hash__(self): - return 3844817361 - view = self.mappingproxy({'a': 1, 'b': 2}) - self.assertRaises(TypeError, hash, view) - mapping = HashableDict({'a': 1, 'b': 2}) - view = self.mappingproxy(mapping) - self.assertEqual(hash(view), hash(mapping)) - class ClassCreationTests(unittest.TestCase): diff --git a/Lib/test/test_typing.py b/Lib/test/test_typing.py index e4cf3c7d53b657..2afac235391552 100644 --- a/Lib/test/test_typing.py +++ b/Lib/test/test_typing.py @@ -51,10 +51,6 @@ c_typing = import_helper.import_fresh_module('typing', fresh=['_typing']) -CANNOT_SUBCLASS_TYPE = 'Cannot subclass special typing classes' -CANNOT_SUBCLASS_INSTANCE = 'Cannot subclass an instance of %s' - - class BaseTestCase(TestCase): def assertIsSubclass(self, cls, class_or_tuple, msg=None): @@ -113,12 +109,6 @@ def test_any_instance_type_error(self): def test_repr(self): self.assertEqual(repr(Any), 'typing.Any') - class Sub(Any): pass - self.assertEqual( - repr(Sub), - "<class 'test.test_typing.AnyTests.test_repr.<locals>.Sub'>", - ) - def test_errors(self): with self.assertRaises(TypeError): issubclass(42, Any) @@ -180,11 +170,10 @@ def test_not_generic(self): self.bottom_type[int] def test_cannot_subclass(self): - with self.assertRaisesRegex(TypeError, - 'Cannot subclass ' + re.escape(str(self.bottom_type))): + with self.assertRaises(TypeError): class A(self.bottom_type): pass - with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): + with self.assertRaises(TypeError): class A(type(self.bottom_type)): pass @@ -277,11 +266,10 @@ def test_cannot_subscript(self): Self[int] def test_cannot_subclass(self): - with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): + with self.assertRaises(TypeError): class C(type(Self)): pass - with self.assertRaisesRegex(TypeError, - r'Cannot subclass typing\.Self'): + with self.assertRaises(TypeError): class C(Self): pass @@ -334,11 +322,10 @@ def test_cannot_subscript(self): LiteralString[int] def test_cannot_subclass(self): - with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): + with self.assertRaises(TypeError): class C(type(LiteralString)): pass - with self.assertRaisesRegex(TypeError, - r'Cannot subclass typing\.LiteralString'): + with self.assertRaises(TypeError): class C(LiteralString): pass @@ -428,13 +415,15 @@ def test_no_redefinition(self): self.assertNotEqual(TypeVar('T'), TypeVar('T')) self.assertNotEqual(TypeVar('T', int, str), TypeVar('T', int, str)) - def test_cannot_subclass(self): - with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): - class V(TypeVar): pass - T = TypeVar("T") - with self.assertRaisesRegex(TypeError, - CANNOT_SUBCLASS_INSTANCE % 'TypeVar'): - class V(T): pass + def test_cannot_subclass_vars(self): + with self.assertRaises(TypeError): + class V(TypeVar('T')): + pass + + def test_cannot_subclass_var_itself(self): + with self.assertRaises(TypeError): + class V(TypeVar): + pass def test_cannot_instantiate_vars(self): with self.assertRaises(TypeError): @@ -602,7 +591,6 @@ class GenericAliasSubstitutionTests(BaseTestCase): def test_one_parameter(self): T = TypeVar('T') Ts = TypeVarTuple('Ts') - Ts2 = TypeVarTuple('Ts2') class C(Generic[T]): pass @@ -628,8 +616,6 @@ class C(Generic[T]): pass # Should definitely raise TypeError: list only takes one argument. ('list[T, *tuple_type[int, ...]]', '[int]', 'list[int, *tuple_type[int, ...]]'), ('List[T, *tuple_type[int, ...]]', '[int]', 'TypeError'), - # Should raise, because more than one `TypeVarTuple` is not supported. - ('generic[*Ts, *Ts2]', '[int]', 'TypeError'), ] for alias_template, args_template, expected_template in tests: @@ -767,11 +753,14 @@ class C(Generic[*Ts]): pass ('generic[*Ts]', '[*tuple_type[int]]', 'generic[int]'), ('generic[*Ts]', '[*tuple_type[*Ts]]', 'generic[*Ts]'), ('generic[*Ts]', '[*tuple_type[int, str]]', 'generic[int, str]'), - ('generic[*Ts]', '[str, *tuple_type[int, ...], bool]', 'generic[str, *tuple_type[int, ...], bool]'), ('generic[*Ts]', '[tuple_type[int, ...]]', 'generic[tuple_type[int, ...]]'), ('generic[*Ts]', '[tuple_type[int, ...], tuple_type[str, ...]]', 'generic[tuple_type[int, ...], tuple_type[str, ...]]'), ('generic[*Ts]', '[*tuple_type[int, ...]]', 'generic[*tuple_type[int, ...]]'), - ('generic[*Ts]', '[*tuple_type[int, ...], *tuple_type[str, ...]]', 'TypeError'), + + # Technically, multiple unpackings are forbidden by PEP 646, but we + # choose to be less restrictive at runtime, to allow folks room + # to experiment. So all three of these should be valid. + ('generic[*Ts]', '[*tuple_type[int, ...], *tuple_type[str, ...]]', 'generic[*tuple_type[int, ...], *tuple_type[str, ...]]'), ('generic[*Ts]', '[*Ts]', 'generic[*Ts]'), ('generic[*Ts]', '[T, *Ts]', 'generic[T, *Ts]'), @@ -779,24 +768,12 @@ class C(Generic[*Ts]): pass ('generic[T, *Ts]', '[int]', 'generic[int]'), ('generic[T, *Ts]', '[int, str]', 'generic[int, str]'), ('generic[T, *Ts]', '[int, str, bool]', 'generic[int, str, bool]'), - ('generic[list[T], *Ts]', '[int]', 'generic[list[int]]'), - ('generic[list[T], *Ts]', '[int, str]', 'generic[list[int], str]'), - ('generic[list[T], *Ts]', '[int, str, bool]', 'generic[list[int], str, bool]'), + + ('generic[T, *Ts]', '[*tuple[int, ...]]', 'TypeError'), # Should be generic[int, *tuple[int, ...]] ('generic[*Ts, T]', '[int]', 'generic[int]'), ('generic[*Ts, T]', '[int, str]', 'generic[int, str]'), - ('generic[*Ts, T]', '[int, str, bool]', 'generic[int, str, bool]'), - ('generic[*Ts, list[T]]', '[int]', 'generic[list[int]]'), - ('generic[*Ts, list[T]]', '[int, str]', 'generic[int, list[str]]'), - ('generic[*Ts, list[T]]', '[int, str, bool]', 'generic[int, str, list[bool]]'), - - ('generic[T, *Ts]', '[*tuple_type[int, ...]]', 'generic[int, *tuple_type[int, ...]]'), - ('generic[*Ts, T]', '[*tuple_type[int, ...]]', 'generic[*tuple_type[int, ...], int]'), - ('generic[T1, *Ts, T2]', '[*tuple_type[int, ...]]', 'generic[int, *tuple_type[int, ...], int]'), - ('generic[T, str, *Ts]', '[*tuple_type[int, ...]]', 'generic[int, str, *tuple_type[int, ...]]'), - ('generic[*Ts, str, T]', '[*tuple_type[int, ...]]', 'generic[*tuple_type[int, ...], str, int]'), - ('generic[list[T], *Ts]', '[*tuple_type[int, ...]]', 'generic[list[int], *tuple_type[int, ...]]'), - ('generic[*Ts, list[T]]', '[*tuple_type[int, ...]]', 'generic[*tuple_type[int, ...], list[int]]'), + ('generic[*Ts, T]', '[int, str, bool]', 'generic[int, str, bool]'), ('generic[T, *tuple_type[int, ...]]', '[str]', 'generic[str, *tuple_type[int, ...]]'), ('generic[T1, T2, *tuple_type[int, ...]]', '[str, bool]', 'generic[str, bool, *tuple_type[int, ...]]'), @@ -1030,23 +1007,15 @@ class A(Generic[Unpack[Ts]]): pass self.assertEndsWith(repr(F[float]), 'A[float, *tuple[str, ...]]') self.assertEndsWith(repr(F[float, str]), 'A[float, str, *tuple[str, ...]]') - def test_cannot_subclass(self): - with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): + def test_cannot_subclass_class(self): + with self.assertRaises(TypeError): class C(TypeVarTuple): pass + + def test_cannot_subclass_instance(self): Ts = TypeVarTuple('Ts') - with self.assertRaisesRegex(TypeError, - CANNOT_SUBCLASS_INSTANCE % 'TypeVarTuple'): + with self.assertRaises(TypeError): class C(Ts): pass - with self.assertRaisesRegex(TypeError, r'Cannot subclass \*Ts'): - class C(*Ts): pass - with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): - class C(type(Unpack)): pass - with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): - class C(type(Unpack[Ts])): pass - with self.assertRaisesRegex(TypeError, - r'Cannot subclass typing\.Unpack'): - class C(Unpack): pass - with self.assertRaisesRegex(TypeError, r'Cannot subclass \*Ts'): + with self.assertRaises(TypeError): class C(Unpack[Ts]): pass def test_variadic_class_args_are_correct(self): @@ -1433,15 +1402,13 @@ def test_repr(self): self.assertEqual(repr(u), 'typing.Optional[str]') def test_cannot_subclass(self): - with self.assertRaisesRegex(TypeError, - r'Cannot subclass typing\.Union'): + with self.assertRaises(TypeError): class C(Union): pass - with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): + with self.assertRaises(TypeError): class C(type(Union)): pass - with self.assertRaisesRegex(TypeError, - r'Cannot subclass typing\.Union\[int, str\]'): + with self.assertRaises(TypeError): class C(Union[int, str]): pass @@ -3306,8 +3273,7 @@ class C(B[int]): self.assertEqual(x.bar, 'abc') self.assertEqual(x.__dict__, {'foo': 42, 'bar': 'abc'}) samples = [Any, Union, Tuple, Callable, ClassVar, - Union[int, str], ClassVar[List], Tuple[int, ...], Tuple[()], - Callable[[str], bytes], + Union[int, str], ClassVar[List], Tuple[int, ...], Callable[[str], bytes], typing.DefaultDict, typing.FrozenSet[int]] for s in samples: for proto in range(pickle.HIGHEST_PROTOCOL + 1): @@ -3325,8 +3291,7 @@ class C(B[int]): def test_copy_and_deepcopy(self): T = TypeVar('T') class Node(Generic[T]): ... - things = [Union[T, int], Tuple[T, int], Tuple[()], - Callable[..., T], Callable[[int], int], + things = [Union[T, int], Tuple[T, int], Callable[..., T], Callable[[int], int], Tuple[Any, Any], Node[T], Node[int], Node[Any], typing.Iterable[T], typing.Iterable[Any], typing.Iterable[int], typing.Dict[int, str], typing.Dict[T, Any], ClassVar[int], ClassVar[List[T]], Tuple['T', 'T'], @@ -3668,35 +3633,6 @@ def test_subclass_special_form(self): class Foo(obj): pass - def test_complex_subclasses(self): - T_co = TypeVar("T_co", covariant=True) - - class Base(Generic[T_co]): - ... - - T = TypeVar("T") - - # see gh-94607: this fails in that bug - class Sub(Base, Generic[T]): - ... - - def test_parameter_detection(self): - self.assertEqual(List[T].__parameters__, (T,)) - self.assertEqual(List[List[T]].__parameters__, (T,)) - class A: - __parameters__ = (T,) - # Bare classes should be skipped - for a in (List, list): - for b in (A, int, TypeVar, TypeVarTuple, ParamSpec, types.GenericAlias, types.UnionType): - with self.subTest(generic=a, sub=b): - with self.assertRaisesRegex(TypeError, '.* is not a generic class'): - a[b][str] - # Duck-typing anything that looks like it has __parameters__. - # These tests are optional and failure is okay. - self.assertEqual(List[A()].__parameters__, (T,)) - # C version of GenericAlias - self.assertEqual(list[A()].__parameters__, (T,)) - class ClassVarTests(BaseTestCase): def test_basics(self): @@ -3713,20 +3649,12 @@ def test_repr(self): self.assertEqual(repr(cv), 'typing.ClassVar[%s.Employee]' % __name__) def test_cannot_subclass(self): - with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): + with self.assertRaises(TypeError): class C(type(ClassVar)): pass - with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): + with self.assertRaises(TypeError): class C(type(ClassVar[int])): pass - with self.assertRaisesRegex(TypeError, - r'Cannot subclass typing\.ClassVar'): - class C(ClassVar): - pass - with self.assertRaisesRegex(TypeError, - r'Cannot subclass typing\.ClassVar\[int\]'): - class C(ClassVar[int]): - pass def test_cannot_init(self): with self.assertRaises(TypeError): @@ -3763,20 +3691,12 @@ def test_repr(self): self.assertEqual(repr(cv), 'typing.Final[tuple[int]]') def test_cannot_subclass(self): - with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): + with self.assertRaises(TypeError): class C(type(Final)): pass - with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): + with self.assertRaises(TypeError): class C(type(Final[int])): pass - with self.assertRaisesRegex(TypeError, - r'Cannot subclass typing\.Final'): - class C(Final): - pass - with self.assertRaisesRegex(TypeError, - r'Cannot subclass typing\.Final\[int\]'): - class C(Final[int]): - pass def test_cannot_init(self): with self.assertRaises(TypeError): @@ -4416,20 +4336,6 @@ def blah(): blah() - def test_overload_on_compiled_functions(self): - with patch("typing._overload_registry", - defaultdict(lambda: defaultdict(dict))): - # The registry starts out empty: - self.assertEqual(typing._overload_registry, {}) - - # This should just not fail: - overload(sum) - overload(print) - - # No overloads are recorded (but, it still has a side-effect): - self.assertEqual(typing.get_overloads(sum), []) - self.assertEqual(typing.get_overloads(print), []) - def set_up_overloads(self): def blah(): pass @@ -4464,9 +4370,6 @@ def some_other_func(): pass other_overload = some_other_func def some_other_func(): pass self.assertEqual(list(get_overloads(some_other_func)), [other_overload]) - # Unrelated function still has no overloads: - def not_overloaded(): pass - self.assertEqual(list(get_overloads(not_overloaded)), []) # Make sure that after we clear all overloads, the registry is # completely empty. @@ -4965,28 +4868,17 @@ def test_get_args(self): class C(Generic[T]): pass self.assertEqual(get_args(C[int]), (int,)) self.assertEqual(get_args(C[T]), (T,)) - self.assertEqual(get_args(typing.SupportsAbs[int]), (int,)) # Protocol - self.assertEqual(get_args(typing.SupportsAbs[T]), (T,)) - self.assertEqual(get_args(Point2DGeneric[int]), (int,)) # TypedDict - self.assertEqual(get_args(Point2DGeneric[T]), (T,)) - self.assertEqual(get_args(T), ()) self.assertEqual(get_args(int), ()) - self.assertEqual(get_args(Any), ()) - self.assertEqual(get_args(Self), ()) - self.assertEqual(get_args(LiteralString), ()) self.assertEqual(get_args(ClassVar[int]), (int,)) self.assertEqual(get_args(Union[int, str]), (int, str)) self.assertEqual(get_args(Literal[42, 43]), (42, 43)) self.assertEqual(get_args(Final[List[int]]), (List[int],)) - self.assertEqual(get_args(Optional[int]), (int, type(None))) - self.assertEqual(get_args(Union[int, None]), (int, type(None))) self.assertEqual(get_args(Union[int, Tuple[T, int]][str]), (int, Tuple[str, int])) self.assertEqual(get_args(typing.Dict[int, Tuple[T, T]][Optional[int]]), (int, Tuple[Optional[int], Optional[int]])) self.assertEqual(get_args(Callable[[], T][int]), ([], int)) self.assertEqual(get_args(Callable[..., int]), (..., int)) - self.assertEqual(get_args(Callable[[int], str]), ([int], str)) self.assertEqual(get_args(Union[int, Callable[[Tuple[T, ...]], str]]), (int, Callable[[Tuple[T, ...]], str])) self.assertEqual(get_args(Tuple[int, ...]), (int, ...)) @@ -5003,25 +4895,12 @@ class C(Generic[T]): pass self.assertEqual(get_args(collections.abc.Callable[[int], str]), get_args(Callable[[int], str])) P = ParamSpec('P') - self.assertEqual(get_args(P), ()) - self.assertEqual(get_args(P.args), ()) - self.assertEqual(get_args(P.kwargs), ()) self.assertEqual(get_args(Callable[P, int]), (P, int)) - self.assertEqual(get_args(collections.abc.Callable[P, int]), (P, int)) self.assertEqual(get_args(Callable[Concatenate[int, P], int]), (Concatenate[int, P], int)) - self.assertEqual(get_args(collections.abc.Callable[Concatenate[int, P], int]), - (Concatenate[int, P], int)) - self.assertEqual(get_args(Concatenate[int, str, P]), (int, str, P)) self.assertEqual(get_args(list | str), (list, str)) self.assertEqual(get_args(Required[int]), (int,)) self.assertEqual(get_args(NotRequired[int]), (int,)) - self.assertEqual(get_args(TypeAlias), ()) - self.assertEqual(get_args(TypeGuard[int]), (int,)) - Ts = TypeVarTuple('Ts') - self.assertEqual(get_args(Ts), ()) - self.assertEqual(get_args(Unpack[Ts]), (Ts,)) - self.assertEqual(get_args(tuple[Unpack[Ts]]), (Unpack[Ts],)) class CollectionsAbcTests(BaseTestCase): @@ -5786,12 +5665,9 @@ class Y(Generic[T], NamedTuple): for G in X, Y: with self.subTest(type=G): self.assertEqual(G.__parameters__, (T,)) - self.assertEqual(G[T].__args__, (T,)) - self.assertEqual(get_args(G[T]), (T,)) A = G[int] self.assertIs(A.__origin__, G) self.assertEqual(A.__args__, (int,)) - self.assertEqual(get_args(A), (int,)) self.assertEqual(A.__parameters__, ()) a = A(3) @@ -6321,18 +6197,16 @@ def test_repr(self): self.assertEqual(repr(cv), f'typing.Required[{__name__}.Employee]') def test_cannot_subclass(self): - with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): + with self.assertRaises(TypeError): class C(type(Required)): pass - with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): + with self.assertRaises(TypeError): class C(type(Required[int])): pass - with self.assertRaisesRegex(TypeError, - r'Cannot subclass typing\.Required'): + with self.assertRaises(TypeError): class C(Required): pass - with self.assertRaisesRegex(TypeError, - r'Cannot subclass typing\.Required\[int\]'): + with self.assertRaises(TypeError): class C(Required[int]): pass @@ -6369,18 +6243,16 @@ def test_repr(self): self.assertEqual(repr(cv), f'typing.NotRequired[{__name__}.Employee]') def test_cannot_subclass(self): - with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): + with self.assertRaises(TypeError): class C(type(NotRequired)): pass - with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): + with self.assertRaises(TypeError): class C(type(NotRequired[int])): pass - with self.assertRaisesRegex(TypeError, - r'Cannot subclass typing\.NotRequired'): + with self.assertRaises(TypeError): class C(NotRequired): pass - with self.assertRaisesRegex(TypeError, - r'Cannot subclass typing\.NotRequired\[int\]'): + with self.assertRaises(TypeError): class C(NotRequired[int]): pass @@ -6491,18 +6363,13 @@ def test_re_submodule(self): self.assertEqual(len(w), 1) def test_cannot_subclass(self): - with self.assertRaisesRegex( - TypeError, - r"type 're\.Match' is not an acceptable base type", - ): + with self.assertRaises(TypeError) as ex: + class A(typing.Match): pass - with self.assertRaisesRegex( - TypeError, - r"type 're\.Pattern' is not an acceptable base type", - ): - class A(typing.Pattern): - pass + + self.assertEqual(str(ex.exception), + "type 're.Match' is not an acceptable base type") class AnnotatedTests(BaseTestCase): @@ -6801,8 +6668,7 @@ def test_no_issubclass(self): issubclass(TypeAlias, Employee) def test_cannot_subclass(self): - with self.assertRaisesRegex(TypeError, - r'Cannot subclass typing\.TypeAlias'): + with self.assertRaises(TypeError): class C(TypeAlias): pass @@ -7004,24 +6870,6 @@ def test_paramspec_gets_copied(self): self.assertEqual(C2[Concatenate[str, P2]].__parameters__, (P2,)) self.assertEqual(C2[Concatenate[T, P2]].__parameters__, (T, P2)) - def test_cannot_subclass(self): - with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): - class C(ParamSpec): pass - with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): - class C(ParamSpecArgs): pass - with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): - class C(ParamSpecKwargs): pass - P = ParamSpec('P') - with self.assertRaisesRegex(TypeError, - CANNOT_SUBCLASS_INSTANCE % 'ParamSpec'): - class C(P): pass - with self.assertRaisesRegex(TypeError, - CANNOT_SUBCLASS_INSTANCE % 'ParamSpecArgs'): - class C(P.args): pass - with self.assertRaisesRegex(TypeError, - CANNOT_SUBCLASS_INSTANCE % 'ParamSpecKwargs'): - class C(P.kwargs): pass - class ConcatenateTests(BaseTestCase): def test_basics(self): @@ -7088,20 +6936,12 @@ def test_repr(self): self.assertEqual(repr(cv), 'typing.TypeGuard[tuple[int]]') def test_cannot_subclass(self): - with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): + with self.assertRaises(TypeError): class C(type(TypeGuard)): pass - with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE): + with self.assertRaises(TypeError): class C(type(TypeGuard[int])): pass - with self.assertRaisesRegex(TypeError, - r'Cannot subclass typing\.TypeGuard'): - class C(TypeGuard): - pass - with self.assertRaisesRegex(TypeError, - r'Cannot subclass typing\.TypeGuard\[int\]'): - class C(TypeGuard[int]): - pass def test_cannot_init(self): with self.assertRaises(TypeError): @@ -7222,7 +7062,6 @@ def test_special_attrs(self): typing.Self: 'Self', # Subscribed special forms typing.Annotated[Any, "Annotation"]: 'Annotated', - typing.Annotated[int, 'Annotation']: 'Annotated', typing.ClassVar[Any]: 'ClassVar', typing.Concatenate[Any, SpecialAttrsP]: 'Concatenate', typing.Final[Any]: 'Final', diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py index 63bccb72e04646..64abc0c761b3c8 100644 --- a/Lib/test/test_unicode.py +++ b/Lib/test/test_unicode.py @@ -2370,19 +2370,15 @@ def test_expandtabs_optimization(self): self.assertIs(s.expandtabs(), s) def test_raiseMemError(self): - asciifields = "nnb" - compactfields = asciifields + "nP" - ascii_struct_size = support.calcobjsize(asciifields) - compact_struct_size = support.calcobjsize(compactfields) + null_byte = 1 + ascii_struct_size = sys.getsizeof("a") - len("a") - null_byte + compact_struct_size = sys.getsizeof("\xff") - len("\xff") - null_byte for char in ('a', '\xe9', '\u20ac', '\U0010ffff'): code = ord(char) - if code < 0x80: + if code < 0x100: char_size = 1 # sizeof(Py_UCS1) struct_size = ascii_struct_size - elif code < 0x100: - char_size = 1 # sizeof(Py_UCS1) - struct_size = compact_struct_size elif code < 0x10000: char_size = 2 # sizeof(Py_UCS2) struct_size = compact_struct_size @@ -2394,16 +2390,7 @@ def test_raiseMemError(self): # be allocatable, given enough memory. maxlen = ((sys.maxsize - struct_size) // char_size) alloc = lambda: char * maxlen - with self.subTest( - char=char, - struct_size=struct_size, - char_size=char_size - ): - # self-check - self.assertEqual( - sys.getsizeof(char * 42), - struct_size + (char_size * (42 + 1)) - ) + with self.subTest(char=char): self.assertRaises(MemoryError, alloc) self.assertRaises(MemoryError, alloc) @@ -2641,6 +2628,8 @@ def check_format(expected, format, *args): b'%c%c', c_int(0x10000), c_int(0x100000)) # test "%" + check_format('%', + b'%') check_format('%', b'%%') check_format('%s', @@ -2817,22 +2806,23 @@ def check_format(expected, format, *args): check_format('repr=abc\ufffd', b'repr=%V', None, b'abc\xff') + # not supported: copy the raw format string. these tests are just here + # to check for crashes and should not be considered as specifications + check_format('%s', + b'%1%s', b'abc') + check_format('%1abc', + b'%1abc') + check_format('%+i', + b'%+i', c_int(10)) + check_format('%.%s', + b'%.%s', b'abc') + # Issue #33817: empty strings check_format('', b'') check_format('', b'%s', b'') - # check for crashes - for fmt in (b'%', b'%0', b'%01', b'%.', b'%.1', - b'%0%s', b'%1%s', b'%.%s', b'%.1%s', b'%1abc', - b'%l', b'%ll', b'%z', b'%ls', b'%lls', b'%zs'): - with self.subTest(fmt=fmt): - self.assertRaisesRegex(SystemError, 'invalid format string', - PyUnicode_FromFormat, fmt, b'abc') - self.assertRaisesRegex(SystemError, 'invalid format string', - PyUnicode_FromFormat, b'%+i', c_int(10)) - # Test PyUnicode_AsWideChar() @support.cpython_only @unittest.skipIf(_testcapi is None, 'need _testcapi module') diff --git a/Lib/test/test_unicode_file_functions.py b/Lib/test/test_unicode_file_functions.py index 47619c8807bafe..54916dec4eafa3 100644 --- a/Lib/test/test_unicode_file_functions.py +++ b/Lib/test/test_unicode_file_functions.py @@ -6,7 +6,6 @@ import warnings from unicodedata import normalize from test.support import os_helper -from test import support filenames = [ @@ -124,10 +123,6 @@ def test_open(self): # NFKD in Python is useless, because darwin will normalize it later and so # open(), os.stat(), etc. don't raise any exception. @unittest.skipIf(sys.platform == 'darwin', 'irrelevant test on Mac OS X') - @unittest.skipIf( - support.is_emscripten or support.is_wasi, - "test fails on Emscripten/WASI when host platform is macOS." - ) def test_normalize(self): files = set(self.files) others = set() diff --git a/Lib/test/test_unicodedata.py b/Lib/test/test_unicodedata.py index 0c31d80e103dbf..3514697f548e65 100644 --- a/Lib/test/test_unicodedata.py +++ b/Lib/test/test_unicodedata.py @@ -18,7 +18,7 @@ class UnicodeMethodsTest(unittest.TestCase): # update this, if the database changes - expectedchecksum = 'e708c31c0d51f758adf475cb7201cf80917362be' + expectedchecksum = '4739770dd4d0e5f1b1677accfc3552ed3c8ef326' @requires_resource('cpu') def test_method_checksum(self): @@ -71,7 +71,7 @@ class UnicodeFunctionsTest(UnicodeDatabaseTest): # Update this if the database changes. Make sure to do a full rebuild # (e.g. 'make distclean && make') to get the correct checksum. - expectedchecksum = '84b88a89f40aeae96852732f9dc0ee08be49780f' + expectedchecksum = '98d602e1f69d5c5bb8a5910c40bbbad4e18e8370' @requires_resource('cpu') def test_function_checksum(self): @@ -90,7 +90,6 @@ def test_function_checksum(self): self.db.decomposition(char), str(self.db.mirrored(char)), str(self.db.combining(char)), - unicodedata.east_asian_width(char), ] h.update(''.join(data).encode("ascii")) result = h.hexdigest() @@ -221,23 +220,6 @@ def test_east_asian_width(self): self.assertEqual(eaw('\u2010'), 'A') self.assertEqual(eaw('\U00020000'), 'W') - def test_east_asian_width_unassigned(self): - eaw = self.db.east_asian_width - # unassigned - for char in '\u0530\u0ecf\u10c6\u20fc\uaaca\U000107bd\U000115f2': - self.assertEqual(eaw(char), 'N') - self.assertIs(self.db.name(char, None), None) - - # unassigned but reserved for CJK - for char in '\uFA6E\uFADA\U0002A6E0\U0002FA20\U0003134B\U0003FFFD': - self.assertEqual(eaw(char), 'W') - self.assertIs(self.db.name(char, None), None) - - # private use areas - for char in '\uE000\uF800\U000F0000\U000FFFEE\U00100000\U0010FFF0': - self.assertEqual(eaw(char), 'A') - self.assertIs(self.db.name(char, None), None) - def test_east_asian_width_9_0_changes(self): self.assertEqual(self.db.ucd_3_2_0.east_asian_width('\u231a'), 'N') self.assertEqual(self.db.east_asian_width('\u231a'), 'W') diff --git a/Lib/test/test_unittest.py b/Lib/test/test_unittest.py new file mode 100644 index 00000000000000..1079c7df2e51c2 --- /dev/null +++ b/Lib/test/test_unittest.py @@ -0,0 +1,16 @@ +import unittest.test + +from test import support + + +def load_tests(*_): + # used by unittest + return unittest.test.suite() + + +def tearDownModule(): + support.reap_children() + + +if __name__ == "__main__": + unittest.main() diff --git a/Lib/test/test_unittest/__init__.py b/Lib/test/test_unittest/__init__.py deleted file mode 100644 index bc502ef32d2916..00000000000000 --- a/Lib/test/test_unittest/__init__.py +++ /dev/null @@ -1,6 +0,0 @@ -import os.path -from test.support import load_package_tests - - -def load_tests(*args): - return load_package_tests(os.path.dirname(__file__), *args) diff --git a/Lib/test/test_unittest/__main__.py b/Lib/test/test_unittest/__main__.py deleted file mode 100644 index 40a23a297ec2b4..00000000000000 --- a/Lib/test/test_unittest/__main__.py +++ /dev/null @@ -1,4 +0,0 @@ -from . import load_tests -import unittest - -unittest.main() diff --git a/Lib/test/test_unittest/testmock/__init__.py b/Lib/test/test_unittest/testmock/__init__.py deleted file mode 100644 index bc502ef32d2916..00000000000000 --- a/Lib/test/test_unittest/testmock/__init__.py +++ /dev/null @@ -1,6 +0,0 @@ -import os.path -from test.support import load_package_tests - - -def load_tests(*args): - return load_package_tests(os.path.dirname(__file__), *args) diff --git a/Lib/test/test_univnewlines.py b/Lib/test/test_univnewlines.py index ed2e0970bac949..b905491878001c 100644 --- a/Lib/test/test_univnewlines.py +++ b/Lib/test/test_univnewlines.py @@ -4,6 +4,7 @@ import unittest import os import sys +from test import support from test.support import os_helper diff --git a/Lib/test/test_unparse.py b/Lib/test/test_unparse.py index f1f1dd5dc26be8..969aa16678f493 100644 --- a/Lib/test/test_unparse.py +++ b/Lib/test/test_unparse.py @@ -422,12 +422,6 @@ def test_invalid_fstring_backslash(self): def test_invalid_yield_from(self): self.check_invalid(ast.YieldFrom(value=None)) - def test_import_from_level_none(self): - tree = ast.ImportFrom(module='mod', names=[ast.alias(name='x')]) - self.assertEqual(ast.unparse(tree), "from mod import x") - tree = ast.ImportFrom(module='mod', names=[ast.alias(name='x')], level=None) - self.assertEqual(ast.unparse(tree), "from mod import x") - def test_docstrings(self): docstrings = ( 'this ends with double quote"', diff --git a/Lib/test/test_urllib2.py b/Lib/test/test_urllib2.py index 28f88412fdcaac..46a0ab1d83e60e 100644 --- a/Lib/test/test_urllib2.py +++ b/Lib/test/test_urllib2.py @@ -1,6 +1,7 @@ import unittest from test import support from test.support import os_helper +from test.support import socket_helper from test.support import warnings_helper from test import test_urllib @@ -1556,11 +1557,11 @@ def test_proxy_basic_auth(self): def test_basic_and_digest_auth_handlers(self): # HTTPDigestAuthHandler raised an exception if it couldn't handle a 40* - # response (https://bugs.python.org/issue1479302), where it should instead + # response (http://python.org/sf/1479302), where it should instead # return None to allow another handler (especially # HTTPBasicAuthHandler) to handle the response. - # Also (https://bugs.python.org/issue14797027, RFC 2617 section 1.2), we must + # Also (http://python.org/sf/14797027, RFC 2617 section 1.2), we must # try digest first (since it's the strongest auth scheme), so we record # order of calls here to check digest comes first: class RecordingOpenerDirector(OpenerDirector): diff --git a/Lib/test/test_uu.py b/Lib/test/test_uu.py index 0493aae4fc67be..316a04af1cdaa7 100644 --- a/Lib/test/test_uu.py +++ b/Lib/test/test_uu.py @@ -74,7 +74,6 @@ def test_encode(self): with self.assertRaises(TypeError): uu.encode(inp, out, "t1", 0o644, True) - @os_helper.skip_unless_working_chmod def test_decode(self): for backtick in True, False: inp = io.BytesIO(encodedtextwrapped(0o666, "t1", backtick=backtick)) @@ -200,8 +199,6 @@ def test_encode(self): s = fout.read() self.assertEqual(s, encodedtextwrapped(0o644, self.tmpin)) - # decode() calls chmod() - @os_helper.skip_unless_working_chmod def test_decode(self): with open(self.tmpin, 'wb') as f: f.write(encodedtextwrapped(0o644, self.tmpout)) @@ -214,7 +211,6 @@ def test_decode(self): self.assertEqual(s, plaintext) # XXX is there an xp way to verify the mode? - @os_helper.skip_unless_working_chmod def test_decode_filename(self): with open(self.tmpin, 'wb') as f: f.write(encodedtextwrapped(0o644, self.tmpout)) @@ -225,7 +221,6 @@ def test_decode_filename(self): s = f.read() self.assertEqual(s, plaintext) - @os_helper.skip_unless_working_chmod def test_decodetwice(self): # Verify that decode() will refuse to overwrite an existing file with open(self.tmpin, 'wb') as f: @@ -236,7 +231,6 @@ def test_decodetwice(self): with open(self.tmpin, 'rb') as f: self.assertRaises(uu.Error, uu.decode, f) - @os_helper.skip_unless_working_chmod def test_decode_mode(self): # Verify that decode() will set the given mode for the out_file expected_mode = 0o444 diff --git a/Lib/test/test_venv.py b/Lib/test/test_venv.py index 4359a4e3ebe861..37b61a780cb07b 100644 --- a/Lib/test/test_venv.py +++ b/Lib/test/test_venv.py @@ -5,7 +5,6 @@ Licensed to the PSF under a contributor agreement. """ -import contextlib import ensurepip import os import os.path @@ -15,9 +14,8 @@ import struct import subprocess import sys -import sysconfig import tempfile -from test.support import (captured_stdout, captured_stderr, +from test.support import (captured_stdout, captured_stderr, requires_zlib, skip_if_broken_multiprocessing_synchronize, verbose, requires_subprocess, is_emscripten, is_wasi, requires_venv_with_pip) @@ -255,49 +253,18 @@ def test_prefixes(self): self.assertEqual(out.strip(), expected.encode(), prefix) @requireVenvCreate - def test_sysconfig(self): + def test_sysconfig_preferred_and_default_scheme(self): """ - Test that the sysconfig functions work in a virtual environment. + Test that the sysconfig preferred(prefix) and default scheme is venv. """ rmtree(self.env_dir) - self.run_with_capture(venv.create, self.env_dir, symlinks=False) - envpy = os.path.join(self.env_dir, self.bindir, self.exe) - cmd = [envpy, '-c', None] - for call, expected in ( - # installation scheme - ('get_preferred_scheme("prefix")', 'venv'), - ('get_default_scheme()', 'venv'), - # build environment - ('is_python_build()', str(sysconfig.is_python_build())), - ('get_makefile_filename()', sysconfig.get_makefile_filename()), - ('get_config_h_filename()', sysconfig.get_config_h_filename())): - with self.subTest(call): - cmd[2] = 'import sysconfig; print(sysconfig.%s)' % call - out, err = check_output(cmd) - self.assertEqual(out.strip(), expected.encode(), err) - - @requireVenvCreate - @unittest.skipUnless(can_symlink(), 'Needs symlinks') - def test_sysconfig_symlinks(self): - """ - Test that the sysconfig functions work in a virtual environment. - """ - rmtree(self.env_dir) - self.run_with_capture(venv.create, self.env_dir, symlinks=True) + self.run_with_capture(venv.create, self.env_dir) envpy = os.path.join(self.env_dir, self.bindir, self.exe) cmd = [envpy, '-c', None] - for call, expected in ( - # installation scheme - ('get_preferred_scheme("prefix")', 'venv'), - ('get_default_scheme()', 'venv'), - # build environment - ('is_python_build()', str(sysconfig.is_python_build())), - ('get_makefile_filename()', sysconfig.get_makefile_filename()), - ('get_config_h_filename()', sysconfig.get_config_h_filename())): - with self.subTest(call): - cmd[2] = 'import sysconfig; print(sysconfig.%s)' % call - out, err = check_output(cmd) - self.assertEqual(out.strip(), expected.encode(), err) + for call in ('get_preferred_scheme("prefix")', 'get_default_scheme()'): + cmd[2] = 'import sysconfig; print(sysconfig.%s)' % call + out, err = check_output(cmd) + self.assertEqual(out.strip(), b'venv', err) if sys.platform == 'win32': ENV_SUBDIRS = ( @@ -591,10 +558,16 @@ def do_test_with_pip(self, system_site_packages): # Actually run the create command with all that unhelpful # config in place to ensure we ignore it - with self.nicer_error(): + try: self.run_with_capture(venv.create, self.env_dir, system_site_packages=system_site_packages, with_pip=True) + except subprocess.CalledProcessError as exc: + # The output this produces can be a little hard to read, + # but at least it has all the details + details = exc.output.decode(errors="replace") + msg = "{}\n\n**Subprocess Output**\n{}" + self.fail(msg.format(exc, details)) # Ensure pip is available in the virtual environment envpy = os.path.join(os.path.realpath(self.env_dir), self.bindir, self.exe) # Ignore DeprecationWarning since pip code is not part of Python @@ -615,14 +588,13 @@ def do_test_with_pip(self, system_site_packages): # Check the private uninstall command provided for the Windows # installers works (at least in a virtual environment) with EnvironmentVarGuard() as envvars: - with self.nicer_error(): - # It seems ensurepip._uninstall calls subprocesses which do not - # inherit the interpreter settings. - envvars["PYTHONWARNINGS"] = "ignore" - out, err = check_output([envpy, - '-W', 'ignore::DeprecationWarning', - '-W', 'ignore::ImportWarning', '-I', - '-m', 'ensurepip._uninstall']) + # It seems ensurepip._uninstall calls subprocesses which do not + # inherit the interpreter settings. + envvars["PYTHONWARNINGS"] = "ignore" + out, err = check_output([envpy, + '-W', 'ignore::DeprecationWarning', + '-W', 'ignore::ImportWarning', '-I', + '-m', 'ensurepip._uninstall']) # We force everything to text, so unittest gives the detailed diff # if we get unexpected results err = err.decode("latin-1") # Force to text, prevent decoding errors @@ -648,30 +620,10 @@ def do_test_with_pip(self, system_site_packages): if not system_site_packages: self.assert_pip_not_installed() - @contextlib.contextmanager - def nicer_error(self): - """ - Capture output from a failed subprocess for easier debugging. - - The output this handler produces can be a little hard to read, - but at least it has all the details. - """ - try: - yield - except subprocess.CalledProcessError as exc: - out = exc.output.decode(errors="replace") - err = exc.stderr.decode(errors="replace") - self.fail( - f"{exc}\n\n" - f"**Subprocess Output**\n{out}\n\n" - f"**Subprocess Error**\n{err}" - ) - @requires_venv_with_pip() def test_with_pip(self): self.do_test_with_pip(False) self.do_test_with_pip(True) - if __name__ == "__main__": unittest.main() diff --git a/Lib/test/test_wait3.py b/Lib/test/test_wait3.py index eae885a61300be..4ec7690ac19bbf 100644 --- a/Lib/test/test_wait3.py +++ b/Lib/test/test_wait3.py @@ -4,6 +4,7 @@ import os import subprocess import sys +import time import unittest from test.fork_wait import ForkWait from test import support @@ -19,12 +20,14 @@ def wait_impl(self, cpid, *, exitcode): # This many iterations can be required, since some previously run # tests (e.g. test_ctypes) could have spawned a lot of children # very quickly. - for _ in support.sleeping_retry(support.SHORT_TIMEOUT): + deadline = time.monotonic() + support.SHORT_TIMEOUT + while time.monotonic() <= deadline: # wait3() shouldn't hang, but some of the buildbots seem to hang # in the forking tests. This is an attempt to fix the problem. spid, status, rusage = os.wait3(os.WNOHANG) if spid == cpid: break + time.sleep(0.1) self.assertEqual(spid, cpid) self.assertEqual(os.waitstatus_to_exitcode(status), exitcode) diff --git a/Lib/test/test_wait4.py b/Lib/test/test_wait4.py index 67afab1d6f2e3c..24f1aaec60c56b 100644 --- a/Lib/test/test_wait4.py +++ b/Lib/test/test_wait4.py @@ -2,6 +2,7 @@ """ import os +import time import sys import unittest from test.fork_wait import ForkWait @@ -21,12 +22,14 @@ def wait_impl(self, cpid, *, exitcode): # Issue #11185: wait4 is broken on AIX and will always return 0 # with WNOHANG. option = 0 - for _ in support.sleeping_retry(support.SHORT_TIMEOUT): + deadline = time.monotonic() + support.SHORT_TIMEOUT + while time.monotonic() <= deadline: # wait4() shouldn't hang, but some of the buildbots seem to hang # in the forking tests. This is an attempt to fix the problem. spid, status, rusage = os.wait4(cpid, option) if spid == cpid: break + time.sleep(0.1) self.assertEqual(spid, cpid) self.assertEqual(os.waitstatus_to_exitcode(status), exitcode) self.assertTrue(rusage) diff --git a/Lib/test/test_warnings/__init__.py b/Lib/test/test_warnings/__init__.py index 9e473e923cad03..b00ddd5df2f256 100644 --- a/Lib/test/test_warnings/__init__.py +++ b/Lib/test/test_warnings/__init__.py @@ -487,14 +487,7 @@ def test_warn_explicit_non_ascii_filename(self): module=self.module) as w: self.module.resetwarnings() self.module.filterwarnings("always", category=UserWarning) - filenames = ["nonascii\xe9\u20ac"] - if not support.is_emscripten: - # JavaScript does not like surrogates. - # Invalid UTF-8 leading byte 0x80 encountered when - # deserializing a UTF-8 string in wasm memory to a JS - # string! - filenames.append("surrogate\udc80") - for filename in filenames: + for filename in ("nonascii\xe9\u20ac", "surrogate\udc80"): try: os.fsencode(filename) except UnicodeEncodeError: diff --git a/Lib/test/test_wave.py b/Lib/test/test_wave.py index 35660fd4d34e18..0cc94e88b437d7 100644 --- a/Lib/test/test_wave.py +++ b/Lib/test/test_wave.py @@ -77,33 +77,6 @@ class WavePCM24Test(WaveTest, unittest.TestCase): frames = wave._byteswap(frames, 3) -class WavePCM24ExtTest(WaveTest, unittest.TestCase): - sndfilename = 'pluck-pcm24-ext.wav' - sndfilenframes = 3307 - nchannels = 2 - sampwidth = 3 - framerate = 11025 - nframes = 48 - comptype = 'NONE' - compname = 'not compressed' - frames = bytes.fromhex("""\ - 022D65FFEB9D 4B5A0F00FA54 3113C304EE2B 80DCD6084303 \ - CBDEC006B261 48A99803F2F8 BFE82401B07D 036BFBFE7B5D \ - B85756FA3EC9 B4B055F3502B 299830EBCB62 1A5CA7E6D99A \ - EDFA3EE491BD C625EBE27884 0E05A9E0B6CF EF2929E02922 \ - 5758D8E27067 FB3557E83E16 1377BFEF8402 D82C5BF7272A \ - 978F16FB7745 F5F865FC1013 086635FB9C4E DF30FCFB40EE \ - 117FE0FA3438 3EE6B8FB5AC3 BC77A3FCB2F4 66D6DAFF5F32 \ - CF13B9041275 431D69097A8C C1BB600EC74E 5120B912A2BA \ - EEDF641754C0 8207001664B7 7FFFFF14453F 8000001294E6 \ - 499C1B0EB3B2 52B73E0DBCA0 EFB2B20F5FD8 CE3CDB0FBE12 \ - E4B49C0CEA2D 6344A80A5A7C 08C8FE0A1FFE 2BB9860B0A0E \ - 51486F0E44E1 8BCC64113B05 B6F4EC0EEB36 4413170A5B48 \ - """) - if sys.byteorder != 'big': - frames = wave._byteswap(frames, 3) - - class WavePCM32Test(WaveTest, unittest.TestCase): sndfilename = 'pluck-pcm32.wav' sndfilenframes = 3307 @@ -133,8 +106,7 @@ class WavePCM32Test(WaveTest, unittest.TestCase): class MiscTestCase(unittest.TestCase): def test__all__(self): - not_exported = {'WAVE_FORMAT_PCM', 'WAVE_FORMAT_EXTENSIBLE'} - support.check__all__(self, wave, not_exported=not_exported) + support.check__all__(self, wave, not_exported={'WAVE_FORMAT_PCM'}) class WaveLowLevelTest(unittest.TestCase): diff --git a/Lib/test/test_weakref.py b/Lib/test/test_weakref.py index 3a9573d6e70559..702bb4495e7499 100644 --- a/Lib/test/test_weakref.py +++ b/Lib/test/test_weakref.py @@ -2154,17 +2154,6 @@ def test_atexit(self): self.assertTrue(b'ZeroDivisionError' in err) -class ModuleTestCase(unittest.TestCase): - def test_names(self): - for name in ('ReferenceType', 'ProxyType', 'CallableProxyType', - 'WeakMethod', 'WeakSet', 'WeakKeyDictionary', 'WeakValueDictionary'): - obj = getattr(weakref, name) - if name != 'WeakSet': - self.assertEqual(obj.__module__, 'weakref') - self.assertEqual(obj.__name__, name) - self.assertEqual(obj.__qualname__, name) - - libreftest = """ Doctest for examples in the library reference: weakref.rst >>> from test.support import gc_collect diff --git a/Lib/test/test_wmi.py b/Lib/test/test_wmi.py deleted file mode 100644 index 3f579595290524..00000000000000 --- a/Lib/test/test_wmi.py +++ /dev/null @@ -1,75 +0,0 @@ -# Test the internal _wmi module on Windows -# This is used by the platform module, and potentially others - -import sys -import unittest -from test.support import import_helper, requires_resource - - -# Do this first so test will be skipped if module doesn't exist -_wmi = import_helper.import_module('_wmi', required_on=['win']) - - -class WmiTests(unittest.TestCase): - def test_wmi_query_os_version(self): - r = _wmi.exec_query("SELECT Version FROM Win32_OperatingSystem").split("\0") - self.assertEqual(1, len(r)) - k, eq, v = r[0].partition("=") - self.assertEqual("=", eq, r[0]) - self.assertEqual("Version", k, r[0]) - # Best we can check for the version is that it's digits, dot, digits, anything - # Otherwise, we are likely checking the result of the query against itself - self.assertRegex(v, r"\d+\.\d+.+$", r[0]) - - def test_wmi_query_repeated(self): - # Repeated queries should not break - for _ in range(10): - self.test_wmi_query_os_version() - - def test_wmi_query_error(self): - # Invalid queries fail with OSError - try: - _wmi.exec_query("SELECT InvalidColumnName FROM InvalidTableName") - except OSError as ex: - if ex.winerror & 0xFFFFFFFF == 0x80041010: - # This is the expected error code. All others should fail the test - return - self.fail("Expected OSError") - - def test_wmi_query_repeated_error(self): - for _ in range(10): - self.test_wmi_query_error() - - def test_wmi_query_not_select(self): - # Queries other than SELECT are blocked to avoid potential exploits - with self.assertRaises(ValueError): - _wmi.exec_query("not select, just in case someone tries something") - - @requires_resource('cpu') - def test_wmi_query_overflow(self): - # Ensure very big queries fail - # Test multiple times to ensure consistency - for _ in range(2): - with self.assertRaises(OSError): - _wmi.exec_query("SELECT * FROM CIM_DataFile") - - def test_wmi_query_multiple_rows(self): - # Multiple instances should have an extra null separator - r = _wmi.exec_query("SELECT ProcessId FROM Win32_Process WHERE ProcessId < 1000") - self.assertFalse(r.startswith("\0"), r) - self.assertFalse(r.endswith("\0"), r) - it = iter(r.split("\0")) - try: - while True: - self.assertRegex(next(it), r"ProcessId=\d+") - self.assertEqual("", next(it)) - except StopIteration: - pass - - def test_wmi_query_threads(self): - from concurrent.futures import ThreadPoolExecutor - query = "SELECT ProcessId FROM Win32_Process WHERE ProcessId < 1000" - with ThreadPoolExecutor(4) as pool: - task = [pool.submit(_wmi.exec_query, query) for _ in range(32)] - for t in task: - self.assertRegex(t.result(), "ProcessId=") diff --git a/Lib/test/test_xml_etree.py b/Lib/test/test_xml_etree.py index ee3154e99f32b6..aea77b192c1006 100644 --- a/Lib/test/test_xml_etree.py +++ b/Lib/test/test_xml_etree.py @@ -2333,6 +2333,35 @@ def test___init__(self): self.assertIsNot(element_foo.attrib, attrib) self.assertNotEqual(element_foo.attrib, attrib) + def test_copy(self): + # Only run this test if Element.copy() is defined. + if "copy" not in dir(ET.Element): + raise unittest.SkipTest("Element.copy() not present") + + element_foo = ET.Element("foo", { "zix": "wyp" }) + element_foo.append(ET.Element("bar", { "baz": "qix" })) + + with self.assertWarns(DeprecationWarning): + element_foo2 = element_foo.copy() + + # elements are not the same + self.assertIsNot(element_foo2, element_foo) + + # string attributes are equal + self.assertEqual(element_foo2.tag, element_foo.tag) + self.assertEqual(element_foo2.text, element_foo.text) + self.assertEqual(element_foo2.tail, element_foo.tail) + + # number of children is the same + self.assertEqual(len(element_foo2), len(element_foo)) + + # children are the same + for (child1, child2) in itertools.zip_longest(element_foo, element_foo2): + self.assertIs(child1, child2) + + # attrib is a copy + self.assertEqual(element_foo2.attrib, element_foo.attrib) + def test___copy__(self): element_foo = ET.Element("foo", { "zix": "wyp" }) element_foo.append(ET.Element("bar", { "baz": "qix" })) @@ -2705,20 +2734,6 @@ def test_findtext_with_error(self): except ZeroDivisionError: pass - def test_findtext_with_falsey_text_attribute(self): - root_elem = ET.Element('foo') - sub_elem = ET.SubElement(root_elem, 'bar') - falsey = ["", 0, False, [], (), {}] - for val in falsey: - sub_elem.text = val - self.assertEqual(root_elem.findtext('./bar'), val) - - def test_findtext_with_none_text_attribute(self): - root_elem = ET.Element('foo') - sub_elem = ET.SubElement(root_elem, 'bar') - sub_elem.text = None - self.assertEqual(root_elem.findtext('./bar'), '') - def test_findall_with_mutating(self): e = ET.Element('foo') e.extend([ET.Element('bar')]) @@ -3724,7 +3739,13 @@ def test_write_to_filename_as_unicode(self): tree = ET.ElementTree(ET.XML('''<site>\xf8</site>''')) tree.write(TESTFN, encoding='unicode') with open(TESTFN, 'rb') as f: - self.assertEqual(f.read(), b"<site>\xc3\xb8</site>") + data = f.read() + expected = "<site>\xf8</site>".encode(encoding, 'xmlcharrefreplace') + if encoding.lower() in ('utf-8', 'ascii'): + self.assertEqual(data, expected) + else: + self.assertIn(b"<?xml version='1.0' encoding=", data) + self.assertIn(expected, data) def test_write_to_text_file(self): self.addCleanup(os_helper.unlink, TESTFN) @@ -3739,13 +3760,17 @@ def test_write_to_text_file(self): tree.write(f, encoding='unicode') self.assertFalse(f.closed) with open(TESTFN, 'rb') as f: - self.assertEqual(f.read(), b'''<site>&#248;</site>''') + self.assertEqual(f.read(), convlinesep( + b'''<?xml version='1.0' encoding='ascii'?>\n''' + b'''<site>&#248;</site>''')) with open(TESTFN, 'w', encoding='ISO-8859-1') as f: tree.write(f, encoding='unicode') self.assertFalse(f.closed) with open(TESTFN, 'rb') as f: - self.assertEqual(f.read(), b'''<site>\xf8</site>''') + self.assertEqual(f.read(), convlinesep( + b'''<?xml version='1.0' encoding='ISO-8859-1'?>\n''' + b'''<site>\xf8</site>''')) def test_write_to_binary_file(self): self.addCleanup(os_helper.unlink, TESTFN) diff --git a/Lib/test/test_xmlrpc.py b/Lib/test/test_xmlrpc.py index 9ff5545f786a32..6c4601ddaddcbd 100644 --- a/Lib/test/test_xmlrpc.py +++ b/Lib/test/test_xmlrpc.py @@ -289,16 +289,6 @@ def test_load_extension_types(self): check('<bigdecimal>9876543210.0123456789</bigdecimal>', decimal.Decimal('9876543210.0123456789')) - def test_limit_int(self): - check = self.check_loads - maxdigits = 5000 - with support.adjust_int_max_str_digits(maxdigits): - s = '1' * (maxdigits + 1) - with self.assertRaises(ValueError): - check(f'<int>{s}</int>', None) - with self.assertRaises(ValueError): - check(f'<biginteger>{s}</biginteger>', None) - def test_get_host_info(self): # see bug #3613, this raised a TypeError transp = xmlrpc.client.Transport() diff --git a/Lib/test/test_yield_from.py b/Lib/test/test_yield_from.py index 1a60357a1bcd62..d105d8c6eb513c 100644 --- a/Lib/test/test_yield_from.py +++ b/Lib/test/test_yield_from.py @@ -1049,533 +1049,6 @@ def outer(): g.send((1, 2, 3, 4)) self.assertEqual(v, (1, 2, 3, 4)) -class TestInterestingEdgeCases(unittest.TestCase): - - def assert_stop_iteration(self, iterator): - with self.assertRaises(StopIteration) as caught: - next(iterator) - self.assertIsNone(caught.exception.value) - self.assertIsNone(caught.exception.__context__) - - def assert_generator_raised_stop_iteration(self): - return self.assertRaisesRegex(RuntimeError, r"^generator raised StopIteration$") - - def assert_generator_ignored_generator_exit(self): - return self.assertRaisesRegex(RuntimeError, r"^generator ignored GeneratorExit$") - - def test_close_and_throw_work(self): - - yielded_first = object() - yielded_second = object() - returned = object() - - def inner(): - yield yielded_first - yield yielded_second - return returned - - def outer(): - return (yield from inner()) - - with self.subTest("close"): - g = outer() - self.assertIs(next(g), yielded_first) - g.close() - self.assert_stop_iteration(g) - - with self.subTest("throw GeneratorExit"): - g = outer() - self.assertIs(next(g), yielded_first) - thrown = GeneratorExit() - with self.assertRaises(GeneratorExit) as caught: - g.throw(thrown) - self.assertIs(caught.exception, thrown) - self.assertIsNone(caught.exception.__context__) - self.assert_stop_iteration(g) - - with self.subTest("throw StopIteration"): - g = outer() - self.assertIs(next(g), yielded_first) - thrown = StopIteration() - # PEP 479: - with self.assert_generator_raised_stop_iteration() as caught: - g.throw(thrown) - self.assertIs(caught.exception.__context__, thrown) - self.assertIsNone(caught.exception.__context__.__context__) - self.assert_stop_iteration(g) - - with self.subTest("throw BaseException"): - g = outer() - self.assertIs(next(g), yielded_first) - thrown = BaseException() - with self.assertRaises(BaseException) as caught: - g.throw(thrown) - self.assertIs(caught.exception, thrown) - self.assertIsNone(caught.exception.__context__) - self.assert_stop_iteration(g) - - with self.subTest("throw Exception"): - g = outer() - self.assertIs(next(g), yielded_first) - thrown = Exception() - with self.assertRaises(Exception) as caught: - g.throw(thrown) - self.assertIs(caught.exception, thrown) - self.assertIsNone(caught.exception.__context__) - self.assert_stop_iteration(g) - - def test_close_and_throw_raise_generator_exit(self): - - yielded_first = object() - yielded_second = object() - returned = object() - - def inner(): - try: - yield yielded_first - yield yielded_second - return returned - finally: - raise raised - - def outer(): - return (yield from inner()) - - with self.subTest("close"): - g = outer() - self.assertIs(next(g), yielded_first) - raised = GeneratorExit() - # GeneratorExit is suppressed. This is consistent with PEP 342: - # https://peps.python.org/pep-0342/#new-generator-method-close - g.close() - self.assert_stop_iteration(g) - - with self.subTest("throw GeneratorExit"): - g = outer() - self.assertIs(next(g), yielded_first) - raised = GeneratorExit() - thrown = GeneratorExit() - with self.assertRaises(GeneratorExit) as caught: - g.throw(thrown) - # The raised GeneratorExit is suppressed, but the thrown one - # propagates. This is consistent with PEP 380: - # https://peps.python.org/pep-0380/#proposal - self.assertIs(caught.exception, thrown) - self.assertIsNone(caught.exception.__context__) - self.assert_stop_iteration(g) - - with self.subTest("throw StopIteration"): - g = outer() - self.assertIs(next(g), yielded_first) - raised = GeneratorExit() - thrown = StopIteration() - with self.assertRaises(GeneratorExit) as caught: - g.throw(thrown) - self.assertIs(caught.exception, raised) - self.assertIs(caught.exception.__context__, thrown) - self.assertIsNone(caught.exception.__context__.__context__) - self.assert_stop_iteration(g) - - with self.subTest("throw BaseException"): - g = outer() - self.assertIs(next(g), yielded_first) - raised = GeneratorExit() - thrown = BaseException() - with self.assertRaises(GeneratorExit) as caught: - g.throw(thrown) - self.assertIs(caught.exception, raised) - self.assertIs(caught.exception.__context__, thrown) - self.assertIsNone(caught.exception.__context__.__context__) - self.assert_stop_iteration(g) - - with self.subTest("throw Exception"): - g = outer() - self.assertIs(next(g), yielded_first) - raised = GeneratorExit() - thrown = Exception() - with self.assertRaises(GeneratorExit) as caught: - g.throw(thrown) - self.assertIs(caught.exception, raised) - self.assertIs(caught.exception.__context__, thrown) - self.assertIsNone(caught.exception.__context__.__context__) - self.assert_stop_iteration(g) - - def test_close_and_throw_raise_stop_iteration(self): - - yielded_first = object() - yielded_second = object() - returned = object() - - def inner(): - try: - yield yielded_first - yield yielded_second - return returned - finally: - raise raised - - def outer(): - return (yield from inner()) - - with self.subTest("close"): - g = outer() - self.assertIs(next(g), yielded_first) - raised = StopIteration() - # PEP 479: - with self.assert_generator_raised_stop_iteration() as caught: - g.close() - self.assertIs(caught.exception.__context__, raised) - self.assertIsInstance(caught.exception.__context__.__context__, GeneratorExit) - self.assertIsNone(caught.exception.__context__.__context__.__context__) - self.assert_stop_iteration(g) - - with self.subTest("throw GeneratorExit"): - g = outer() - self.assertIs(next(g), yielded_first) - raised = StopIteration() - thrown = GeneratorExit() - # PEP 479: - with self.assert_generator_raised_stop_iteration() as caught: - g.throw(thrown) - self.assertIs(caught.exception.__context__, raised) - # This isn't the same GeneratorExit as thrown! It's the one created - # by calling inner.close(): - self.assertIsInstance(caught.exception.__context__.__context__, GeneratorExit) - self.assertIsNone(caught.exception.__context__.__context__.__context__) - self.assert_stop_iteration(g) - - with self.subTest("throw StopIteration"): - g = outer() - self.assertIs(next(g), yielded_first) - raised = StopIteration() - thrown = StopIteration() - # PEP 479: - with self.assert_generator_raised_stop_iteration() as caught: - g.throw(thrown) - self.assertIs(caught.exception.__context__, raised) - self.assertIs(caught.exception.__context__.__context__, thrown) - self.assertIsNone(caught.exception.__context__.__context__.__context__) - self.assert_stop_iteration(g) - - with self.subTest("throw BaseException"): - g = outer() - self.assertIs(next(g), yielded_first) - raised = StopIteration() - thrown = BaseException() - # PEP 479: - with self.assert_generator_raised_stop_iteration() as caught: - g.throw(thrown) - self.assertIs(caught.exception.__context__, raised) - self.assertIs(caught.exception.__context__.__context__, thrown) - self.assertIsNone(caught.exception.__context__.__context__.__context__) - self.assert_stop_iteration(g) - - with self.subTest("throw Exception"): - g = outer() - self.assertIs(next(g), yielded_first) - raised = StopIteration() - thrown = Exception() - # PEP 479: - with self.assert_generator_raised_stop_iteration() as caught: - g.throw(thrown) - self.assertIs(caught.exception.__context__, raised) - self.assertIs(caught.exception.__context__.__context__, thrown) - self.assertIsNone(caught.exception.__context__.__context__.__context__) - self.assert_stop_iteration(g) - - def test_close_and_throw_raise_base_exception(self): - - yielded_first = object() - yielded_second = object() - returned = object() - - def inner(): - try: - yield yielded_first - yield yielded_second - return returned - finally: - raise raised - - def outer(): - return (yield from inner()) - - with self.subTest("close"): - g = outer() - self.assertIs(next(g), yielded_first) - raised = BaseException() - with self.assertRaises(BaseException) as caught: - g.close() - self.assertIs(caught.exception, raised) - self.assertIsInstance(caught.exception.__context__, GeneratorExit) - self.assertIsNone(caught.exception.__context__.__context__) - self.assert_stop_iteration(g) - - with self.subTest("throw GeneratorExit"): - g = outer() - self.assertIs(next(g), yielded_first) - raised = BaseException() - thrown = GeneratorExit() - with self.assertRaises(BaseException) as caught: - g.throw(thrown) - self.assertIs(caught.exception, raised) - # This isn't the same GeneratorExit as thrown! It's the one created - # by calling inner.close(): - self.assertIsInstance(caught.exception.__context__, GeneratorExit) - self.assertIsNone(caught.exception.__context__.__context__) - self.assert_stop_iteration(g) - - with self.subTest("throw StopIteration"): - g = outer() - self.assertIs(next(g), yielded_first) - raised = BaseException() - thrown = StopIteration() - with self.assertRaises(BaseException) as caught: - g.throw(thrown) - self.assertIs(caught.exception, raised) - self.assertIs(caught.exception.__context__, thrown) - self.assertIsNone(caught.exception.__context__.__context__) - self.assert_stop_iteration(g) - - with self.subTest("throw BaseException"): - g = outer() - self.assertIs(next(g), yielded_first) - raised = BaseException() - thrown = BaseException() - with self.assertRaises(BaseException) as caught: - g.throw(thrown) - self.assertIs(caught.exception, raised) - self.assertIs(caught.exception.__context__, thrown) - self.assertIsNone(caught.exception.__context__.__context__) - self.assert_stop_iteration(g) - - with self.subTest("throw Exception"): - g = outer() - self.assertIs(next(g), yielded_first) - raised = BaseException() - thrown = Exception() - with self.assertRaises(BaseException) as caught: - g.throw(thrown) - self.assertIs(caught.exception, raised) - self.assertIs(caught.exception.__context__, thrown) - self.assertIsNone(caught.exception.__context__.__context__) - self.assert_stop_iteration(g) - - def test_close_and_throw_raise_exception(self): - - yielded_first = object() - yielded_second = object() - returned = object() - - def inner(): - try: - yield yielded_first - yield yielded_second - return returned - finally: - raise raised - - def outer(): - return (yield from inner()) - - with self.subTest("close"): - g = outer() - self.assertIs(next(g), yielded_first) - raised = Exception() - with self.assertRaises(Exception) as caught: - g.close() - self.assertIs(caught.exception, raised) - self.assertIsInstance(caught.exception.__context__, GeneratorExit) - self.assertIsNone(caught.exception.__context__.__context__) - self.assert_stop_iteration(g) - - with self.subTest("throw GeneratorExit"): - g = outer() - self.assertIs(next(g), yielded_first) - raised = Exception() - thrown = GeneratorExit() - with self.assertRaises(Exception) as caught: - g.throw(thrown) - self.assertIs(caught.exception, raised) - # This isn't the same GeneratorExit as thrown! It's the one created - # by calling inner.close(): - self.assertIsInstance(caught.exception.__context__, GeneratorExit) - self.assertIsNone(caught.exception.__context__.__context__) - self.assert_stop_iteration(g) - - with self.subTest("throw StopIteration"): - g = outer() - self.assertIs(next(g), yielded_first) - raised = Exception() - thrown = StopIteration() - with self.assertRaises(Exception) as caught: - g.throw(thrown) - self.assertIs(caught.exception, raised) - self.assertIs(caught.exception.__context__, thrown) - self.assertIsNone(caught.exception.__context__.__context__) - self.assert_stop_iteration(g) - - with self.subTest("throw BaseException"): - g = outer() - self.assertIs(next(g), yielded_first) - raised = Exception() - thrown = BaseException() - with self.assertRaises(Exception) as caught: - g.throw(thrown) - self.assertIs(caught.exception, raised) - self.assertIs(caught.exception.__context__, thrown) - self.assertIsNone(caught.exception.__context__.__context__) - self.assert_stop_iteration(g) - - with self.subTest("throw Exception"): - g = outer() - self.assertIs(next(g), yielded_first) - raised = Exception() - thrown = Exception() - with self.assertRaises(Exception) as caught: - g.throw(thrown) - self.assertIs(caught.exception, raised) - self.assertIs(caught.exception.__context__, thrown) - self.assertIsNone(caught.exception.__context__.__context__) - self.assert_stop_iteration(g) - - def test_close_and_throw_yield(self): - - yielded_first = object() - yielded_second = object() - returned = object() - - def inner(): - try: - yield yielded_first - finally: - yield yielded_second - return returned - - def outer(): - return (yield from inner()) - - with self.subTest("close"): - g = outer() - self.assertIs(next(g), yielded_first) - # No chaining happens. This is consistent with PEP 342: - # https://peps.python.org/pep-0342/#new-generator-method-close - with self.assert_generator_ignored_generator_exit() as caught: - g.close() - self.assertIsNone(caught.exception.__context__) - self.assert_stop_iteration(g) - - with self.subTest("throw GeneratorExit"): - g = outer() - self.assertIs(next(g), yielded_first) - thrown = GeneratorExit() - # No chaining happens. This is consistent with PEP 342: - # https://peps.python.org/pep-0342/#new-generator-method-close - with self.assert_generator_ignored_generator_exit() as caught: - g.throw(thrown) - self.assertIsNone(caught.exception.__context__) - self.assert_stop_iteration(g) - - with self.subTest("throw StopIteration"): - g = outer() - self.assertIs(next(g), yielded_first) - thrown = StopIteration() - self.assertEqual(g.throw(thrown), yielded_second) - # PEP 479: - with self.assert_generator_raised_stop_iteration() as caught: - next(g) - self.assertIs(caught.exception.__context__, thrown) - self.assertIsNone(caught.exception.__context__.__context__) - self.assert_stop_iteration(g) - - with self.subTest("throw BaseException"): - g = outer() - self.assertIs(next(g), yielded_first) - thrown = BaseException() - self.assertEqual(g.throw(thrown), yielded_second) - with self.assertRaises(BaseException) as caught: - next(g) - self.assertIs(caught.exception, thrown) - self.assertIsNone(caught.exception.__context__) - self.assert_stop_iteration(g) - - with self.subTest("throw Exception"): - g = outer() - self.assertIs(next(g), yielded_first) - thrown = Exception() - self.assertEqual(g.throw(thrown), yielded_second) - with self.assertRaises(Exception) as caught: - next(g) - self.assertIs(caught.exception, thrown) - self.assertIsNone(caught.exception.__context__) - self.assert_stop_iteration(g) - - def test_close_and_throw_return(self): - - yielded_first = object() - yielded_second = object() - returned = object() - - def inner(): - try: - yield yielded_first - yield yielded_second - finally: - return returned - - def outer(): - return (yield from inner()) - - with self.subTest("close"): - g = outer() - self.assertIs(next(g), yielded_first) - # StopIteration is suppressed. This is consistent with PEP 342: - # https://peps.python.org/pep-0342/#new-generator-method-close - g.close() - self.assert_stop_iteration(g) - - with self.subTest("throw GeneratorExit"): - g = outer() - self.assertIs(next(g), yielded_first) - thrown = GeneratorExit() - # StopIteration is suppressed. This is consistent with PEP 342: - # https://peps.python.org/pep-0342/#new-generator-method-close - with self.assertRaises(GeneratorExit) as caught: - g.throw(thrown) - self.assertIs(caught.exception, thrown) - self.assertIsNone(caught.exception.__context__) - self.assert_stop_iteration(g) - - with self.subTest("throw StopIteration"): - g = outer() - self.assertIs(next(g), yielded_first) - thrown = StopIteration() - with self.assertRaises(StopIteration) as caught: - g.throw(thrown) - self.assertIs(caught.exception.value, returned) - self.assertIsNone(caught.exception.__context__) - self.assert_stop_iteration(g) - - with self.subTest("throw BaseException"): - g = outer() - self.assertIs(next(g), yielded_first) - thrown = BaseException() - with self.assertRaises(StopIteration) as caught: - g.throw(thrown) - self.assertIs(caught.exception.value, returned) - self.assertIsNone(caught.exception.__context__) - self.assert_stop_iteration(g) - - with self.subTest("throw Exception"): - g = outer() - self.assertIs(next(g), yielded_first) - thrown = Exception() - with self.assertRaises(StopIteration) as caught: - g.throw(thrown) - self.assertIs(caught.exception.value, returned) - self.assertIsNone(caught.exception.__context__) - self.assert_stop_iteration(g) - if __name__ == '__main__': unittest.main() diff --git a/Lib/test/test_zipapp.py b/Lib/test/test_zipapp.py index f1c6b2d97621ee..d135c68865812f 100644 --- a/Lib/test/test_zipapp.py +++ b/Lib/test/test_zipapp.py @@ -9,7 +9,6 @@ import zipapp import zipfile from test.support import requires_zlib -from test.support import os_helper from unittest.mock import patch @@ -318,7 +317,6 @@ def test_content_of_copied_archive(self): # (Unix only) tests that archives with shebang lines are made executable @unittest.skipIf(sys.platform == 'win32', 'Windows does not support an executable bit') - @os_helper.skip_unless_working_chmod def test_shebang_is_executable(self): # Test that an archive with a shebang line is made executable. source = self.tmpdir / 'source' diff --git a/Lib/test/test_zipfile.py b/Lib/test/test_zipfile.py index 6f6f4bc26b0d40..f4c11d88c8a09f 100644 --- a/Lib/test/test_zipfile.py +++ b/Lib/test/test_zipfile.py @@ -124,9 +124,8 @@ def zip_test(self, f, compression, compresslevel=None): self.assertEqual(info.filename, nm) self.assertEqual(info.file_size, len(self.data)) - # Check that testzip thinks the archive is ok - # (it returns None if all contents could be read properly) - self.assertIsNone(zipfp.testzip()) + # Check that testzip doesn't raise an exception + zipfp.testzip() def test_basic(self): for f in get_files(self): @@ -749,8 +748,8 @@ def zip_test(self, f, compression): self.assertEqual(info.filename, nm) self.assertEqual(info.file_size, len(self.data)) - # Check that testzip thinks the archive is valid - self.assertIsNone(zipfp.testzip()) + # Check that testzip doesn't raise an exception + zipfp.testzip() def test_basic(self): for f in get_files(self): @@ -1441,8 +1440,6 @@ def test_sanitize_windows_name(self): self.assertEqual(san(r',,?,C:,foo,bar/z', ','), r'_,C_,foo,bar/z') self.assertEqual(san(r'a\b,c<d>e|f"g?h*i', ','), r'a\b,c_d_e_f_g_h_i') self.assertEqual(san('../../foo../../ba..r', '/'), r'foo/ba..r') - self.assertEqual(san(' / /foo / /ba r', '/'), r'foo/ba r') - self.assertEqual(san(' . /. /foo ./ . /. ./ba .r', '/'), r'foo/ba .r') def test_extract_hackers_arcnames_common_cases(self): common_hacknames = [ @@ -2033,7 +2030,6 @@ def test_seek_tell(self): fp.seek(bloc, os.SEEK_CUR) self.assertEqual(fp.tell(), bloc) self.assertEqual(fp.read(5), txt[bloc:bloc+5]) - self.assertEqual(fp.tell(), bloc + 5) fp.seek(0, os.SEEK_END) self.assertEqual(fp.tell(), len(txt)) fp.seek(0, os.SEEK_SET) @@ -2051,7 +2047,6 @@ def test_seek_tell(self): fp.seek(bloc, os.SEEK_CUR) self.assertEqual(fp.tell(), bloc) self.assertEqual(fp.read(5), txt[bloc:bloc+5]) - self.assertEqual(fp.tell(), bloc + 5) fp.seek(0, os.SEEK_END) self.assertEqual(fp.tell(), len(txt)) fp.seek(0, os.SEEK_SET) diff --git a/Lib/test/test_zipfile64.py b/Lib/test/test_zipfile64.py index be654a8478b04b..0947013afbc6ed 100644 --- a/Lib/test/test_zipfile64.py +++ b/Lib/test/test_zipfile64.py @@ -32,6 +32,10 @@ def setUp(self): line_gen = ("Test of zipfile line %d." % i for i in range(1000000)) self.data = '\n'.join(line_gen).encode('ascii') + # And write it to a file. + with open(TESTFN, "wb") as fp: + fp.write(self.data) + def zipTest(self, f, compression): # Create the ZIP archive. with zipfile.ZipFile(f, "w", compression) as zipfp: @@ -63,9 +67,6 @@ def zipTest(self, f, compression): (num, filecount)), file=sys.__stdout__) sys.__stdout__.flush() - # Check that testzip thinks the archive is valid - self.assertIsNone(zipfp.testzip()) - def testStored(self): # Try the temp file first. If we do TESTFN2 first, then it hogs # gigabytes of disk space for the duration of the test. @@ -84,7 +85,9 @@ def testDeflated(self): self.zipTest(TESTFN2, zipfile.ZIP_DEFLATED) def tearDown(self): - os_helper.unlink(TESTFN2) + for fname in TESTFN, TESTFN2: + if os.path.exists(fname): + os.remove(fname) class OtherTests(unittest.TestCase): diff --git a/Lib/test/test_zipimport.py b/Lib/test/test_zipimport.py index 52d43bdead67f8..66789262dd6ca1 100644 --- a/Lib/test/test_zipimport.py +++ b/Lib/test/test_zipimport.py @@ -460,6 +460,12 @@ def testZipImporterMethods(self): # PEP 302 with warnings.catch_warnings(): warnings.simplefilter("ignore", DeprecationWarning) + find_mod = zi.find_module('spam') + self.assertIsNotNone(find_mod) + self.assertIsInstance(find_mod, zipimport.zipimporter) + self.assertFalse(find_mod.is_package('spam')) + load_mod = find_mod.load_module('spam') + self.assertEqual(find_mod.get_filename('spam'), load_mod.__file__) mod = zi.load_module(TESTPACK) self.assertEqual(zi.get_filename(TESTPACK), mod.__file__) @@ -580,6 +586,16 @@ def testZipImporterMethodsInSubDirectory(self): pkg_path = TEMP_ZIP + os.sep + packdir + TESTPACK2 zi2 = zipimport.zipimporter(pkg_path) + # PEP 302 + with warnings.catch_warnings(): + warnings.simplefilter("ignore", DeprecationWarning) + find_mod_dotted = zi2.find_module(TESTMOD) + self.assertIsNotNone(find_mod_dotted) + self.assertIsInstance(find_mod_dotted, zipimport.zipimporter) + self.assertFalse(zi2.is_package(TESTMOD)) + load_mod = find_mod_dotted.load_module(TESTMOD) + self.assertEqual( + find_mod_dotted.get_filename(TESTMOD), load_mod.__file__) # PEP 451 spec = zi2.find_spec(TESTMOD) @@ -638,10 +654,7 @@ def test(val): sys.path.insert(0, TEMP_ZIP) mod = importlib.import_module(TESTMOD) self.assertEqual(mod.test(1), 1) - if __debug__: - self.assertRaises(AssertionError, mod.test, False) - else: - self.assertEqual(mod.test(0), 0) + self.assertRaises(AssertionError, mod.test, False) def testImport_WithStuff(self): # try importing from a zipfile which contains additional @@ -742,8 +755,7 @@ def testBytesPath(self): z.writestr(zinfo, test_src) zipimport.zipimporter(filename) - with self.assertRaises(TypeError): - zipimport.zipimporter(os.fsencode(filename)) + zipimport.zipimporter(os.fsencode(filename)) with self.assertRaises(TypeError): zipimport.zipimporter(bytearray(os.fsencode(filename))) with self.assertRaises(TypeError): diff --git a/Lib/threading.py b/Lib/threading.py index d030e1243623f9..a3df587f10666c 100644 --- a/Lib/threading.py +++ b/Lib/threading.py @@ -7,7 +7,7 @@ from time import monotonic as _time from _weakrefset import WeakSet -from itertools import count as _count +from itertools import islice as _islice, count as _count try: from _collections import deque as _deque except ImportError: @@ -28,8 +28,7 @@ 'Event', 'Lock', 'RLock', 'Semaphore', 'BoundedSemaphore', 'Thread', 'Barrier', 'BrokenBarrierError', 'Timer', 'ThreadError', 'setprofile', 'settrace', 'local', 'stack_size', - 'excepthook', 'ExceptHookArgs', 'gettrace', 'getprofile', - 'setprofile_all_threads','settrace_all_threads'] + 'excepthook', 'ExceptHookArgs', 'gettrace', 'getprofile'] # Rename some stuff so "from threading import *" is safe _start_new_thread = _thread.start_new_thread @@ -61,20 +60,11 @@ def setprofile(func): The func will be passed to sys.setprofile() for each thread, before its run() method is called. + """ global _profile_hook _profile_hook = func -def setprofile_all_threads(func): - """Set a profile function for all threads started from the threading module - and all Python threads that are currently executing. - - The func will be passed to sys.setprofile() for each thread, before its - run() method is called. - """ - setprofile(func) - _sys._setprofileallthreads(func) - def getprofile(): """Get the profiler function as set by threading.setprofile().""" return _profile_hook @@ -84,20 +74,11 @@ def settrace(func): The func will be passed to sys.settrace() for each thread, before its run() method is called. + """ global _trace_hook _trace_hook = func -def settrace_all_threads(func): - """Set a trace function for all threads started from the threading module - and all Python threads that are currently executing. - - The func will be passed to sys.settrace() for each thread, before its run() - method is called. - """ - settrace(func) - _sys._settraceallthreads(func) - def gettrace(): """Get the trace function as set by threading.settrace().""" return _trace_hook @@ -262,12 +243,18 @@ def __init__(self, lock=None): # If the lock defines _release_save() and/or _acquire_restore(), # these override the default implementations (which just call # release() and acquire() on the lock). Ditto for _is_owned(). - if hasattr(lock, '_release_save'): + try: self._release_save = lock._release_save - if hasattr(lock, '_acquire_restore'): + except AttributeError: + pass + try: self._acquire_restore = lock._acquire_restore - if hasattr(lock, '_is_owned'): + except AttributeError: + pass + try: self._is_owned = lock._is_owned + except AttributeError: + pass self._waiters = _deque() def _at_fork_reinit(self): @@ -583,7 +570,7 @@ def is_set(self): def isSet(self): """Return true if and only if the internal flag is true. - This method is deprecated, use is_set() instead. + This method is deprecated, use notify_all() instead. """ import warnings diff --git a/Lib/tkinter/commondialog.py b/Lib/tkinter/commondialog.py index 86f5387e001bf2..e595c99defb991 100644 --- a/Lib/tkinter/commondialog.py +++ b/Lib/tkinter/commondialog.py @@ -10,7 +10,7 @@ __all__ = ["Dialog"] -from tkinter import _get_temp_root, _destroy_temp_root +from tkinter import Frame, _get_temp_root, _destroy_temp_root class Dialog: diff --git a/Lib/test/test_tkinter/README b/Lib/tkinter/test/README similarity index 100% rename from Lib/test/test_tkinter/README rename to Lib/tkinter/test/README diff --git a/Lib/tkinter/test/__init__.py b/Lib/tkinter/test/__init__.py new file mode 100644 index 00000000000000..e69de29bb2d1d6 diff --git a/Lib/test/test_tkinter/support.py b/Lib/tkinter/test/support.py similarity index 99% rename from Lib/test/test_tkinter/support.py rename to Lib/tkinter/test/support.py index 9154ebac5c48f8..9e26d04536f227 100644 --- a/Lib/test/test_tkinter/support.py +++ b/Lib/tkinter/test/support.py @@ -1,4 +1,5 @@ import functools +import re import tkinter import unittest diff --git a/Lib/tkinter/test/test_tkinter/__init__.py b/Lib/tkinter/test/test_tkinter/__init__.py new file mode 100644 index 00000000000000..e69de29bb2d1d6 diff --git a/Lib/test/test_tkinter/test_colorchooser.py b/Lib/tkinter/test/test_tkinter/test_colorchooser.py similarity index 96% rename from Lib/test/test_tkinter/test_colorchooser.py rename to Lib/tkinter/test/test_tkinter/test_colorchooser.py index 9bba21392d8d14..488162ff0dd966 100644 --- a/Lib/test/test_tkinter/test_colorchooser.py +++ b/Lib/tkinter/test/test_tkinter/test_colorchooser.py @@ -1,7 +1,7 @@ import unittest import tkinter from test.support import requires, swap_attr -from test.test_tkinter.support import AbstractDefaultRootTest, AbstractTkTest +from tkinter.test.support import AbstractDefaultRootTest, AbstractTkTest from tkinter import colorchooser from tkinter.colorchooser import askcolor from tkinter.commondialog import Dialog diff --git a/Lib/test/test_tkinter/test_font.py b/Lib/tkinter/test/test_tkinter/test_font.py similarity index 98% rename from Lib/test/test_tkinter/test_font.py rename to Lib/tkinter/test/test_tkinter/test_font.py index 563707ddd2fa9b..058c53a9023647 100644 --- a/Lib/test/test_tkinter/test_font.py +++ b/Lib/tkinter/test/test_tkinter/test_font.py @@ -2,7 +2,7 @@ import tkinter from tkinter import font from test.support import requires, gc_collect, ALWAYS_EQ -from test.test_tkinter.support import AbstractTkTest, AbstractDefaultRootTest +from tkinter.test.support import AbstractTkTest, AbstractDefaultRootTest requires('gui') diff --git a/Lib/test/test_tkinter/test_geometry_managers.py b/Lib/tkinter/test/test_tkinter/test_geometry_managers.py similarity index 99% rename from Lib/test/test_tkinter/test_geometry_managers.py rename to Lib/tkinter/test/test_tkinter/test_geometry_managers.py index 3663048a145ab1..c89bc8dbf85759 100644 --- a/Lib/test/test_tkinter/test_geometry_managers.py +++ b/Lib/tkinter/test/test_tkinter/test_geometry_managers.py @@ -4,8 +4,8 @@ from tkinter import TclError from test.support import requires -from test.test_tkinter.support import pixels_conv -from test.test_tkinter.widget_tests import AbstractWidgetTest +from tkinter.test.support import pixels_conv +from tkinter.test.widget_tests import AbstractWidgetTest requires('gui') diff --git a/Lib/test/test_tkinter/test_images.py b/Lib/tkinter/test/test_tkinter/test_images.py similarity index 99% rename from Lib/test/test_tkinter/test_images.py rename to Lib/tkinter/test/test_tkinter/test_images.py index b6f8b79ae689fa..cc69ccac62d742 100644 --- a/Lib/test/test_tkinter/test_images.py +++ b/Lib/tkinter/test/test_tkinter/test_images.py @@ -2,7 +2,7 @@ import tkinter from test import support from test.support import os_helper -from test.test_tkinter.support import AbstractTkTest, AbstractDefaultRootTest, requires_tcl +from tkinter.test.support import AbstractTkTest, AbstractDefaultRootTest, requires_tcl support.requires('gui') diff --git a/Lib/test/test_tkinter/test_loadtk.py b/Lib/tkinter/test/test_tkinter/test_loadtk.py similarity index 100% rename from Lib/test/test_tkinter/test_loadtk.py rename to Lib/tkinter/test/test_tkinter/test_loadtk.py diff --git a/Lib/test/test_tkinter/test_messagebox.py b/Lib/tkinter/test/test_tkinter/test_messagebox.py similarity index 94% rename from Lib/test/test_tkinter/test_messagebox.py rename to Lib/tkinter/test/test_tkinter/test_messagebox.py index f41bdc98286283..d38541a5a45e76 100644 --- a/Lib/test/test_tkinter/test_messagebox.py +++ b/Lib/tkinter/test/test_tkinter/test_messagebox.py @@ -1,7 +1,7 @@ import unittest import tkinter from test.support import requires, swap_attr -from test.test_tkinter.support import AbstractDefaultRootTest +from tkinter.test.support import AbstractDefaultRootTest from tkinter.commondialog import Dialog from tkinter.messagebox import showinfo diff --git a/Lib/test/test_tkinter/test_misc.py b/Lib/tkinter/test/test_tkinter/test_misc.py similarity index 99% rename from Lib/test/test_tkinter/test_misc.py rename to Lib/tkinter/test/test_tkinter/test_misc.py index d1aca58d15fbd8..620b6ed638c25a 100644 --- a/Lib/test/test_tkinter/test_misc.py +++ b/Lib/tkinter/test/test_tkinter/test_misc.py @@ -3,7 +3,7 @@ import tkinter import enum from test import support -from test.test_tkinter.support import AbstractTkTest, AbstractDefaultRootTest +from tkinter.test.support import AbstractTkTest, AbstractDefaultRootTest support.requires('gui') diff --git a/Lib/test/test_tkinter/test_simpledialog.py b/Lib/tkinter/test/test_tkinter/test_simpledialog.py similarity index 93% rename from Lib/test/test_tkinter/test_simpledialog.py rename to Lib/tkinter/test/test_tkinter/test_simpledialog.py index 502f7f7098a322..18cd2712b0c5ed 100644 --- a/Lib/test/test_tkinter/test_simpledialog.py +++ b/Lib/tkinter/test/test_tkinter/test_simpledialog.py @@ -1,7 +1,7 @@ import unittest import tkinter from test.support import requires, swap_attr -from test.test_tkinter.support import AbstractDefaultRootTest +from tkinter.test.support import AbstractDefaultRootTest from tkinter.simpledialog import Dialog, askinteger requires('gui') diff --git a/Lib/test/test_tkinter/test_text.py b/Lib/tkinter/test/test_tkinter/test_text.py similarity index 96% rename from Lib/test/test_tkinter/test_text.py rename to Lib/tkinter/test/test_tkinter/test_text.py index d1583f0b20aabe..482f150df559fc 100644 --- a/Lib/test/test_tkinter/test_text.py +++ b/Lib/tkinter/test/test_tkinter/test_text.py @@ -1,7 +1,7 @@ import unittest import tkinter from test.support import requires -from test.test_tkinter.support import AbstractTkTest +from tkinter.test.support import AbstractTkTest requires('gui') diff --git a/Lib/test/test_tkinter/test_variables.py b/Lib/tkinter/test/test_tkinter/test_variables.py similarity index 99% rename from Lib/test/test_tkinter/test_variables.py rename to Lib/tkinter/test/test_tkinter/test_variables.py index c1d232e2febc7a..427e168454362c 100644 --- a/Lib/test/test_tkinter/test_variables.py +++ b/Lib/tkinter/test/test_tkinter/test_variables.py @@ -6,7 +6,7 @@ from tkinter import (Variable, StringVar, IntVar, DoubleVar, BooleanVar, Tcl, TclError) from test.support import ALWAYS_EQ -from test.test_tkinter.support import AbstractDefaultRootTest +from tkinter.test.support import AbstractDefaultRootTest class Var(Variable): diff --git a/Lib/test/test_tkinter/test_widgets.py b/Lib/tkinter/test/test_tkinter/test_widgets.py similarity index 99% rename from Lib/test/test_tkinter/test_widgets.py rename to Lib/tkinter/test/test_tkinter/test_widgets.py index 1cddbe17ba5207..fe8ecfeb326554 100644 --- a/Lib/test/test_tkinter/test_widgets.py +++ b/Lib/tkinter/test/test_tkinter/test_widgets.py @@ -4,10 +4,10 @@ import os from test.support import requires -from test.test_tkinter.support import (requires_tcl, +from tkinter.test.support import (requires_tcl, get_tk_patchlevel, widget_eq, AbstractDefaultRootTest) -from test.test_tkinter.widget_tests import ( +from tkinter.test.widget_tests import ( add_standard_options, AbstractWidgetTest, StandardOptionsTests, IntegerSizeTests, PixelSizeTests, setUpModule) diff --git a/Lib/tkinter/test/test_ttk/__init__.py b/Lib/tkinter/test/test_ttk/__init__.py new file mode 100644 index 00000000000000..e69de29bb2d1d6 diff --git a/Lib/test/test_ttk/test_extensions.py b/Lib/tkinter/test/test_ttk/test_extensions.py similarity index 99% rename from Lib/test/test_ttk/test_extensions.py rename to Lib/tkinter/test/test_ttk/test_extensions.py index 6135c49701f08e..1220c4831c52f4 100644 --- a/Lib/test/test_ttk/test_extensions.py +++ b/Lib/tkinter/test/test_ttk/test_extensions.py @@ -3,7 +3,7 @@ import tkinter from tkinter import ttk from test.support import requires, gc_collect -from test.test_tkinter.support import AbstractTkTest, AbstractDefaultRootTest +from tkinter.test.support import AbstractTkTest, AbstractDefaultRootTest requires('gui') diff --git a/Lib/test/test_ttk/test_style.py b/Lib/tkinter/test/test_ttk/test_style.py similarity index 98% rename from Lib/test/test_ttk/test_style.py rename to Lib/tkinter/test/test_ttk/test_style.py index 0ec95cf6b5ffc9..54ad3437168fe1 100644 --- a/Lib/test/test_ttk/test_style.py +++ b/Lib/tkinter/test/test_ttk/test_style.py @@ -4,7 +4,7 @@ from tkinter import ttk from test import support from test.support import requires -from test.test_tkinter.support import AbstractTkTest, get_tk_patchlevel +from tkinter.test.support import AbstractTkTest, get_tk_patchlevel requires('gui') diff --git a/Lib/test/test_ttk/test_widgets.py b/Lib/tkinter/test/test_ttk/test_widgets.py similarity index 99% rename from Lib/test/test_ttk/test_widgets.py rename to Lib/tkinter/test/test_ttk/test_widgets.py index eb0cc93ce270b5..c14c321ca2687d 100644 --- a/Lib/test/test_ttk/test_widgets.py +++ b/Lib/tkinter/test/test_ttk/test_widgets.py @@ -5,9 +5,9 @@ import sys from test.test_ttk_textonly import MockTclObj -from test.test_tkinter.support import (AbstractTkTest, tcl_version, get_tk_patchlevel, +from tkinter.test.support import (AbstractTkTest, tcl_version, get_tk_patchlevel, simulate_mouse_click, AbstractDefaultRootTest) -from test.test_tkinter.widget_tests import (add_standard_options, +from tkinter.test.widget_tests import (add_standard_options, AbstractWidgetTest, StandardOptionsTests, IntegerSizeTests, PixelSizeTests, setUpModule) diff --git a/Lib/test/test_tkinter/widget_tests.py b/Lib/tkinter/test/widget_tests.py similarity index 99% rename from Lib/test/test_tkinter/widget_tests.py rename to Lib/tkinter/test/widget_tests.py index 85b0511aba3c7a..a450544c3ee6b8 100644 --- a/Lib/test/test_tkinter/widget_tests.py +++ b/Lib/tkinter/test/widget_tests.py @@ -1,7 +1,8 @@ # Common tests for test_tkinter/test_widgets.py and test_ttk/test_widgets.py +import unittest import tkinter -from test.test_tkinter.support import (AbstractTkTest, tcl_version, +from tkinter.test.support import (AbstractTkTest, tcl_version, pixels_conv, tcl_obj_eq) import test.support diff --git a/Lib/traceback.py b/Lib/traceback.py index b1a5fd0a26d40a..3afe49d1d8a0e6 100644 --- a/Lib/traceback.py +++ b/Lib/traceback.py @@ -279,8 +279,7 @@ def __init__(self, filename, lineno, name, *, lookup_line=True, self._line = line if lookup_line: self.line - self.locals = {k: _safe_string(v, 'local', func=repr) - for k, v in locals.items()} if locals else None + self.locals = {k: repr(v) for k, v in locals.items()} if locals else None self.end_lineno = end_lineno self.colno = colno self.end_colno = end_colno @@ -466,8 +465,7 @@ def format_frame_summary(self, frame_summary): row.append(' File "{}", line {}, in {}\n'.format( frame_summary.filename, frame_summary.lineno, frame_summary.name)) if frame_summary.line: - stripped_line = frame_summary.line.strip() - row.append(' {}\n'.format(stripped_line)) + row.append(' {}\n'.format(frame_summary.line.strip())) orig_line_len = len(frame_summary._original_line) frame_line_len = len(frame_summary.line.lstrip()) @@ -488,22 +486,19 @@ def format_frame_summary(self, frame_summary): frame_summary._original_line[colno - 1:end_colno - 1] ) else: - end_colno = stripped_characters + len(stripped_line) - - # show indicators if primary char doesn't span the frame line - if end_colno - colno < len(stripped_line) or ( - anchors and anchors.right_start_offset - anchors.left_end_offset > 0): - row.append(' ') - row.append(' ' * (colno - stripped_characters)) - - if anchors: - row.append(anchors.primary_char * (anchors.left_end_offset)) - row.append(anchors.secondary_char * (anchors.right_start_offset - anchors.left_end_offset)) - row.append(anchors.primary_char * (end_colno - colno - anchors.right_start_offset)) - else: - row.append('^' * (end_colno - colno)) + end_colno = stripped_characters + len(frame_summary.line.strip()) + + row.append(' ') + row.append(' ' * (colno - stripped_characters)) + + if anchors: + row.append(anchors.primary_char * (anchors.left_end_offset)) + row.append(anchors.secondary_char * (anchors.right_start_offset - anchors.left_end_offset)) + row.append(anchors.primary_char * (end_colno - colno - anchors.right_start_offset)) + else: + row.append('^' * (end_colno - colno)) - row.append('\n') + row.append('\n') if frame_summary.locals: for name, value in sorted(frame_summary.locals.items()): diff --git a/Lib/types.py b/Lib/types.py index 2e73fbc4501337..9490da7b9ee3b9 100644 --- a/Lib/types.py +++ b/Lib/types.py @@ -80,7 +80,7 @@ def resolve_bases(bases): updated = False shift = 0 for i, base in enumerate(bases): - if isinstance(base, type): + if isinstance(base, type) and not isinstance(base, GenericAlias): continue if not hasattr(base, "__mro_entries__"): continue diff --git a/Lib/typing.py b/Lib/typing.py index 95bd61c7f8c61f..40ab516f7c8ff7 100644 --- a/Lib/typing.py +++ b/Lib/typing.py @@ -250,9 +250,6 @@ def _collect_parameters(args): """ parameters = [] for t in args: - # We don't want __parameters__ descriptor of a bare Python class. - if isinstance(t, type): - continue if hasattr(t, '__typing_subst__'): if t not in parameters: parameters.append(t) @@ -493,9 +490,7 @@ def __instancecheck__(self, obj): return super().__instancecheck__(obj) def __repr__(self): - if self is Any: - return "typing.Any" - return super().__repr__() # respect to subclasses + return "typing.Any" class Any(metaclass=_AnyMeta): @@ -571,7 +566,7 @@ def Self(self, parameters): from typing import Self class Foo: - def return_self(self) -> Self: + def returns_self(self) -> Self: ... return self @@ -959,9 +954,6 @@ def __repr__(self): prefix = '~' return prefix + self.__name__ - def __mro_entries__(self, bases): - raise TypeError(f"Cannot subclass an instance of {type(self).__name__}") - class TypeVar(_Final, _Immutable, _BoundVarianceMixin, _PickleUsingNameMixin, _root=True): @@ -1073,45 +1065,6 @@ def __repr__(self): def __typing_subst__(self, arg): raise TypeError("Substitution of bare TypeVarTuple is not supported") - def __typing_prepare_subst__(self, alias, args): - params = alias.__parameters__ - typevartuple_index = params.index(self) - for param in params[typevartuple_index + 1:]: - if isinstance(param, TypeVarTuple): - raise TypeError(f"More than one TypeVarTuple parameter in {alias}") - - alen = len(args) - plen = len(params) - left = typevartuple_index - right = plen - typevartuple_index - 1 - var_tuple_index = None - fillarg = None - for k, arg in enumerate(args): - if not isinstance(arg, type): - subargs = getattr(arg, '__typing_unpacked_tuple_args__', None) - if subargs and len(subargs) == 2 and subargs[-1] is ...: - if var_tuple_index is not None: - raise TypeError("More than one unpacked arbitrary-length tuple argument") - var_tuple_index = k - fillarg = subargs[0] - if var_tuple_index is not None: - left = min(left, var_tuple_index) - right = min(right, alen - var_tuple_index - 1) - elif left + right > alen: - raise TypeError(f"Too few arguments for {alias};" - f" actual {alen}, expected at least {plen-1}") - - return ( - *args[:left], - *([fillarg]*(typevartuple_index - left)), - tuple(args[left: alen - right]), - *([fillarg]*(plen - right - left - typevartuple_index - 1)), - *args[alen - right:], - ) - - def __mro_entries__(self, bases): - raise TypeError(f"Cannot subclass an instance of {type(self).__name__}") - class ParamSpecArgs(_Final, _Immutable, _root=True): """The args for a ParamSpec object. @@ -1136,9 +1089,6 @@ def __eq__(self, other): return NotImplemented return self.__origin__ == other.__origin__ - def __mro_entries__(self, bases): - raise TypeError(f"Cannot subclass an instance of {type(self).__name__}") - class ParamSpecKwargs(_Final, _Immutable, _root=True): """The kwargs for a ParamSpec object. @@ -1163,9 +1113,6 @@ def __eq__(self, other): return NotImplemented return self.__origin__ == other.__origin__ - def __mro_entries__(self, bases): - raise TypeError(f"Cannot subclass an instance of {type(self).__name__}") - class ParamSpec(_Final, _Immutable, _BoundVarianceMixin, _PickleUsingNameMixin, _root=True): @@ -1237,8 +1184,6 @@ def __typing_subst__(self, arg): f"ParamSpec, or Concatenate. Got {arg}") return arg - def __typing_prepare_subst__(self, alias, args): - return _prepare_paramspec_params(alias, args) def _is_dunder(attr): return attr.startswith('__') and attr.endswith('__') @@ -1310,6 +1255,44 @@ def __dir__(self): + [attr for attr in dir(self.__origin__) if not _is_dunder(attr)])) +def _is_unpacked_tuple(x: Any) -> bool: + # Is `x` something like `*tuple[int]` or `*tuple[int, ...]`? + if not isinstance(x, _UnpackGenericAlias): + return False + # Alright, `x` is `Unpack[something]`. + + # `x` will always have `__args__`, because Unpack[] and Unpack[()] + # aren't legal. + unpacked_type = x.__args__[0] + + return getattr(unpacked_type, '__origin__', None) is tuple + + +def _is_unpacked_arbitrary_length_tuple(x: Any) -> bool: + if not _is_unpacked_tuple(x): + return False + unpacked_tuple = x.__args__[0] + + if not hasattr(unpacked_tuple, '__args__'): + # It's `Unpack[tuple]`. We can't make any assumptions about the length + # of the tuple, so it's effectively an arbitrary-length tuple. + return True + + tuple_args = unpacked_tuple.__args__ + if not tuple_args: + # It's `Unpack[tuple[()]]`. + return False + + last_arg = tuple_args[-1] + if last_arg is Ellipsis: + # It's `Unpack[tuple[something, ...]]`, which is arbitrary-length. + return True + + # If the arguments didn't end with an ellipsis, then it's not an + # arbitrary-length tuple. + return False + + # Special typing constructs Union, Optional, Generic, Callable and Tuple # use three special attributes for internal bookkeeping of generic types: # * __parameters__ is a tuple of unique free type parameters of a generic @@ -1402,6 +1385,10 @@ def __getitem__(self, args): args = (args,) args = tuple(_type_convert(p) for p in args) args = _unpack_args(args) + if (self._paramspec_tvars + and any(isinstance(t, ParamSpec) for t in self.__parameters__)): + args = _prepare_paramspec_params(self, args) + new_args = self._determine_new_args(args) r = self.copy_with(new_args) return r @@ -1423,16 +1410,30 @@ def _determine_new_args(self, args): params = self.__parameters__ # In the example above, this would be {T3: str} - for param in params: - prepare = getattr(param, '__typing_prepare_subst__', None) - if prepare is not None: - args = prepare(self, args) + new_arg_by_param = {} + typevartuple_index = None + for i, param in enumerate(params): + if isinstance(param, TypeVarTuple): + if typevartuple_index is not None: + raise TypeError(f"More than one TypeVarTuple parameter in {self}") + typevartuple_index = i + alen = len(args) plen = len(params) - if alen != plen: - raise TypeError(f"Too {'many' if alen > plen else 'few'} arguments for {self};" - f" actual {alen}, expected {plen}") - new_arg_by_param = dict(zip(params, args)) + if typevartuple_index is not None: + i = typevartuple_index + j = alen - (plen - i - 1) + if j < i: + raise TypeError(f"Too few arguments for {self};" + f" actual {alen}, expected at least {plen-1}") + new_arg_by_param.update(zip(params[:i], args[:i])) + new_arg_by_param[params[i]] = tuple(args[i: j]) + new_arg_by_param.update(zip(params[i + 1:], args[j:])) + else: + if alen != plen: + raise TypeError(f"Too {'many' if alen > plen else 'few'} arguments for {self};" + f" actual {alen}, expected {plen}") + new_arg_by_param.update(zip(params, args)) new_args = [] for old_arg in self.__args__: @@ -2101,7 +2102,7 @@ def __init__(self, origin, metadata): if isinstance(origin, _AnnotatedAlias): metadata = origin.__metadata__ + metadata origin = origin.__origin__ - super().__init__(origin, origin, name='Annotated') + super().__init__(origin, origin) self.__metadata__ = metadata def copy_with(self, params): @@ -2134,9 +2135,6 @@ def __getattr__(self, attr): return 'Annotated' return super().__getattr__(attr) - def __mro_entries__(self, bases): - return (self.__origin__,) - class Annotated: """Add context specific metadata to a type. diff --git a/Lib/unittest/__init__.py b/Lib/unittest/__init__.py index 5bcbf834840b59..005d23f6d00ecb 100644 --- a/Lib/unittest/__init__.py +++ b/Lib/unittest/__init__.py @@ -69,6 +69,19 @@ def testMultiply(self): # IsolatedAsyncioTestCase will be imported lazily. from .loader import makeSuite, getTestCaseNames, findTestCases +# deprecated +_TextTestResult = TextTestResult + + +# There are no tests here, so don't try to run anything discovered from +# introspecting the symbols (e.g. FunctionTestCase). Instead, all our +# tests come from within unittest.test. +def load_tests(loader, tests, pattern): + import os.path + # top level directory cached on loader instance + this_dir = os.path.dirname(__file__) + return loader.discover(start_dir=this_dir, pattern=pattern) + # Lazy import of IsolatedAsyncioTestCase from .async_case # It imports asyncio, which is relatively heavy, but most tests diff --git a/Lib/unittest/async_case.py b/Lib/unittest/async_case.py index 3457e92e5da298..a90eed98f87140 100644 --- a/Lib/unittest/async_case.py +++ b/Lib/unittest/async_case.py @@ -79,10 +79,6 @@ async def enterAsyncContext(self, cm): return result def _callSetUp(self): - # Force loop to be initialized and set as the current loop - # so that setUp functions can use get_event_loop() and get the - # correct loop instance. - self._asyncioRunner.get_loop() self._asyncioTestContext.run(self.setUp) self._callAsync(self.asyncSetUp) diff --git a/Lib/unittest/case.py b/Lib/unittest/case.py index af8303333d4087..ffc8f19ddd38d3 100644 --- a/Lib/unittest/case.py +++ b/Lib/unittest/case.py @@ -1171,6 +1171,35 @@ def assertDictEqual(self, d1, d2, msg=None): standardMsg = self._truncateMessage(standardMsg, diff) self.fail(self._formatMessage(msg, standardMsg)) + def assertDictContainsSubset(self, subset, dictionary, msg=None): + """Checks whether dictionary is a superset of subset.""" + warnings.warn('assertDictContainsSubset is deprecated', + DeprecationWarning) + missing = [] + mismatched = [] + for key, value in subset.items(): + if key not in dictionary: + missing.append(key) + elif value != dictionary[key]: + mismatched.append('%s, expected: %s, actual: %s' % + (safe_repr(key), safe_repr(value), + safe_repr(dictionary[key]))) + + if not (missing or mismatched): + return + + standardMsg = '' + if missing: + standardMsg = 'Missing: %s' % ','.join(safe_repr(m) for m in + missing) + if mismatched: + if standardMsg: + standardMsg += '; ' + standardMsg += 'Mismatched values: %s' % ','.join(mismatched) + + self.fail(self._formatMessage(msg, standardMsg)) + + def assertCountEqual(self, first, second, msg=None): """Asserts that two iterables have the same elements, the same number of times, without regard to order. @@ -1334,6 +1363,27 @@ def assertNotRegex(self, text, unexpected_regex, msg=None): raise self.failureException(msg) + def _deprecate(original_func): + def deprecated_func(*args, **kwargs): + warnings.warn( + 'Please use {0} instead.'.format(original_func.__name__), + DeprecationWarning, 2) + return original_func(*args, **kwargs) + return deprecated_func + + # see #9424 + failUnlessEqual = assertEquals = _deprecate(assertEqual) + failIfEqual = assertNotEquals = _deprecate(assertNotEqual) + failUnlessAlmostEqual = assertAlmostEquals = _deprecate(assertAlmostEqual) + failIfAlmostEqual = assertNotAlmostEquals = _deprecate(assertNotAlmostEqual) + failUnless = assert_ = _deprecate(assertTrue) + failUnlessRaises = _deprecate(assertRaises) + failIf = _deprecate(assertFalse) + assertRaisesRegexp = _deprecate(assertRaisesRegex) + assertRegexpMatches = _deprecate(assertRegex) + assertNotRegexpMatches = _deprecate(assertNotRegex) + + class FunctionTestCase(TestCase): """A test case that wraps a test function. diff --git a/Lib/unittest/loader.py b/Lib/unittest/loader.py index eb18cd0b49cd26..7e6ce2f224bafc 100644 --- a/Lib/unittest/loader.py +++ b/Lib/unittest/loader.py @@ -93,8 +93,30 @@ def loadTestsFromTestCase(self, testCaseClass): loaded_suite = self.suiteClass(map(testCaseClass, testCaseNames)) return loaded_suite - def loadTestsFromModule(self, module, *, pattern=None): + # XXX After Python 3.5, remove backward compatibility hacks for + # use_load_tests deprecation via *args and **kws. See issue 16662. + def loadTestsFromModule(self, module, *args, pattern=None, **kws): """Return a suite of all test cases contained in the given module""" + # This method used to take an undocumented and unofficial + # use_load_tests argument. For backward compatibility, we still + # accept the argument (which can also be the first position) but we + # ignore it and issue a deprecation warning if it's present. + if len(args) > 0 or 'use_load_tests' in kws: + warnings.warn('use_load_tests is deprecated and ignored', + DeprecationWarning) + kws.pop('use_load_tests', None) + if len(args) > 1: + # Complain about the number of arguments, but don't forget the + # required `module` argument. + complaint = len(args) + 1 + raise TypeError('loadTestsFromModule() takes 1 positional argument but {} were given'.format(complaint)) + if len(kws) != 0: + # Since the keyword arguments are unsorted (see PEP 468), just + # pick the alphabetically sorted first argument to complain about, + # if multiple were given. At least the error message will be + # predictable. + complaint = sorted(kws)[0] + raise TypeError("loadTestsFromModule() got an unexpected keyword argument '{}'".format(complaint)) tests = [] for name in dir(module): obj = getattr(module, name) diff --git a/Lib/unittest/mock.py b/Lib/unittest/mock.py index cd46fea5162aba..8262b7170b76b4 100644 --- a/Lib/unittest/mock.py +++ b/Lib/unittest/mock.py @@ -2175,10 +2175,6 @@ def __init__(self, /, *args, **kwargs): code_mock = NonCallableMock(spec_set=CodeType) code_mock.co_flags = inspect.CO_COROUTINE self.__dict__['__code__'] = code_mock - self.__dict__['__name__'] = 'AsyncMock' - self.__dict__['__defaults__'] = tuple() - self.__dict__['__kwdefaults__'] = {} - self.__dict__['__annotations__'] = None async def _execute_mock_call(self, /, *args, **kwargs): # This is nearly just like super(), except for special handling diff --git a/Lib/unittest/runner.py b/Lib/unittest/runner.py index 6678adb6a7d813..cb452c7adefb73 100644 --- a/Lib/unittest/runner.py +++ b/Lib/unittest/runner.py @@ -200,6 +200,15 @@ def run(self, test): if self.warnings: # if self.warnings is set, use it to filter all the warnings warnings.simplefilter(self.warnings) + # if the filter is 'default' or 'always', special-case the + # warnings from the deprecated unittest methods to show them + # no more than once per module, because they can be fairly + # noisy. The -Wd and -Wa flags can be used to bypass this + # only when self.warnings is None. + if self.warnings in ['default', 'always']: + warnings.filterwarnings('module', + category=DeprecationWarning, + message=r'Please use assert\w+ instead.') startTime = time.perf_counter() startTestRun = getattr(result, 'startTestRun', None) if startTestRun is not None: diff --git a/Lib/unittest/test/__init__.py b/Lib/unittest/test/__init__.py new file mode 100644 index 00000000000000..143f4ab5a3d878 --- /dev/null +++ b/Lib/unittest/test/__init__.py @@ -0,0 +1,25 @@ +import os +import sys +import unittest + + +here = os.path.dirname(__file__) +loader = unittest.defaultTestLoader + +def suite(): + suite = unittest.TestSuite() + for fn in os.listdir(here): + if fn.startswith("test") and fn.endswith(".py"): + modname = "unittest.test." + fn[:-3] + try: + __import__(modname) + except unittest.SkipTest: + continue + module = sys.modules[modname] + suite.addTest(loader.loadTestsFromModule(module)) + suite.addTest(loader.loadTestsFromName('unittest.test.testmock')) + return suite + + +if __name__ == "__main__": + unittest.main(defaultTest="suite") diff --git a/Lib/unittest/test/__main__.py b/Lib/unittest/test/__main__.py new file mode 100644 index 00000000000000..44d0591e8473af --- /dev/null +++ b/Lib/unittest/test/__main__.py @@ -0,0 +1,18 @@ +import os +import unittest + + +def load_tests(loader, standard_tests, pattern): + # top level directory cached on loader instance + this_dir = os.path.dirname(__file__) + pattern = pattern or "test_*.py" + # We are inside unittest.test, so the top-level is two notches up + top_level_dir = os.path.dirname(os.path.dirname(this_dir)) + package_tests = loader.discover(start_dir=this_dir, pattern=pattern, + top_level_dir=top_level_dir) + standard_tests.addTests(package_tests) + return standard_tests + + +if __name__ == '__main__': + unittest.main() diff --git a/Lib/test/test_unittest/_test_warnings.py b/Lib/unittest/test/_test_warnings.py similarity index 84% rename from Lib/test/test_unittest/_test_warnings.py rename to Lib/unittest/test/_test_warnings.py index 08b846ee47e926..5cbfb532ad0502 100644 --- a/Lib/test/test_unittest/_test_warnings.py +++ b/Lib/unittest/test/_test_warnings.py @@ -18,6 +18,17 @@ def warnfun(): warnings.warn('rw', RuntimeWarning) class TestWarnings(unittest.TestCase): + # unittest warnings will be printed at most once per type (max one message + # for the fail* methods, and one for the assert* methods) + def test_assert(self): + self.assertEquals(2+2, 4) + self.assertEquals(2*2, 4) + self.assertEquals(2**2, 4) + + def test_fail(self): + self.failUnless(1) + self.failUnless(True) + def test_other_unittest(self): self.assertAlmostEqual(2+2, 4) self.assertNotAlmostEqual(4+4, 2) diff --git a/Lib/test/test_unittest/dummy.py b/Lib/unittest/test/dummy.py similarity index 100% rename from Lib/test/test_unittest/dummy.py rename to Lib/unittest/test/dummy.py diff --git a/Lib/test/test_unittest/support.py b/Lib/unittest/test/support.py similarity index 100% rename from Lib/test/test_unittest/support.py rename to Lib/unittest/test/support.py diff --git a/Lib/test/test_unittest/test_assertions.py b/Lib/unittest/test/test_assertions.py similarity index 97% rename from Lib/test/test_unittest/test_assertions.py rename to Lib/unittest/test/test_assertions.py index 6557104b81fc0f..a0db3423b868aa 100644 --- a/Lib/test/test_unittest/test_assertions.py +++ b/Lib/unittest/test/test_assertions.py @@ -271,6 +271,15 @@ def testAssertDictEqual(self): r"\+ \{'key': 'value'\}$", r"\+ \{'key': 'value'\} : oops$"]) + def testAssertDictContainsSubset(self): + with warnings.catch_warnings(): + warnings.simplefilter("ignore", DeprecationWarning) + + self.assertMessages('assertDictContainsSubset', ({'key': 'value'}, {}), + ["^Missing: 'key'$", "^oops$", + "^Missing: 'key'$", + "^Missing: 'key' : oops$"]) + def testAssertMultiLineEqual(self): self.assertMessages('assertMultiLineEqual', ("", "foo"), [r"\+ foo$", "^oops$", diff --git a/Lib/test/test_unittest/test_async_case.py b/Lib/unittest/test/test_async_case.py similarity index 94% rename from Lib/test/test_unittest/test_async_case.py rename to Lib/unittest/test/test_async_case.py index d7d4dc91316c6c..beadcac070b434 100644 --- a/Lib/test/test_unittest/test_async_case.py +++ b/Lib/unittest/test/test_async_case.py @@ -43,10 +43,10 @@ async def __aenter__(self): class TestAsyncCase(unittest.TestCase): maxDiff = None - def setUp(self): + def tearDown(self): # Ensure that IsolatedAsyncioTestCase instances are destroyed before # starting a new event loop - self.addCleanup(support.gc_collect) + support.gc_collect() def test_full_cycle(self): class Test(unittest.IsolatedAsyncioTestCase): @@ -151,7 +151,6 @@ async def on_cleanup(self): events = [] test = Test("test_func") - self.addCleanup(test._tearDownAsyncioRunner) try: test.debug() except MyException: @@ -187,7 +186,6 @@ async def on_cleanup(self): events = [] test = Test("test_func") - self.addCleanup(test._tearDownAsyncioRunner) try: test.debug() except MyException: @@ -223,7 +221,6 @@ async def on_cleanup(self): events = [] test = Test("test_func") - self.addCleanup(test._tearDownAsyncioRunner) try: test.debug() except MyException: @@ -265,7 +262,6 @@ async def on_cleanup2(self): events = [] test = Test("test_func") - self.addCleanup(test._tearDownAsyncioRunner) try: test.debug() except MyException: @@ -428,7 +424,6 @@ async def cleanup(self, fut): events = [] test = Test("test_func") - self.addCleanup(test._tearDownAsyncioRunner) try: test.debug() except MyException: @@ -439,21 +434,6 @@ async def cleanup(self, fut): test.doCleanups() self.assertEqual(events, ['asyncSetUp', 'test', 'cleanup']) - def test_setup_get_event_loop(self): - # See https://github.com/python/cpython/issues/95736 - # Make sure the default event loop is not used - asyncio.set_event_loop(None) - - class TestCase1(unittest.IsolatedAsyncioTestCase): - def setUp(self): - asyncio.get_event_loop_policy().get_event_loop() - - async def test_demo1(self): - pass - - test = TestCase1('test_demo1') - result = test.run() - self.assertTrue(result.wasSuccessful()) if __name__ == "__main__": unittest.main() diff --git a/Lib/test/test_unittest/test_break.py b/Lib/unittest/test/test_break.py similarity index 100% rename from Lib/test/test_unittest/test_break.py rename to Lib/unittest/test/test_break.py diff --git a/Lib/test/test_unittest/test_case.py b/Lib/unittest/test/test_case.py similarity index 96% rename from Lib/test/test_unittest/test_case.py rename to Lib/unittest/test/test_case.py index fae0d1076da948..374a255255566f 100644 --- a/Lib/test/test_unittest/test_case.py +++ b/Lib/unittest/test/test_case.py @@ -15,7 +15,7 @@ import unittest -from test.test_unittest.support import ( +from unittest.test.support import ( TestEquality, TestHashing, LoggingResult, LegacyLoggingResult, ResultWithNoStartTestRunStopTestRun ) @@ -698,6 +698,36 @@ def testAssertIn(self): self.assertRaises(self.failureException, self.assertNotIn, 'cow', animals) + def testAssertDictContainsSubset(self): + with warnings.catch_warnings(): + warnings.simplefilter("ignore", DeprecationWarning) + + self.assertDictContainsSubset({}, {}) + self.assertDictContainsSubset({}, {'a': 1}) + self.assertDictContainsSubset({'a': 1}, {'a': 1}) + self.assertDictContainsSubset({'a': 1}, {'a': 1, 'b': 2}) + self.assertDictContainsSubset({'a': 1, 'b': 2}, {'a': 1, 'b': 2}) + + with self.assertRaises(self.failureException): + self.assertDictContainsSubset({1: "one"}, {}) + + with self.assertRaises(self.failureException): + self.assertDictContainsSubset({'a': 2}, {'a': 1}) + + with self.assertRaises(self.failureException): + self.assertDictContainsSubset({'c': 1}, {'a': 1}) + + with self.assertRaises(self.failureException): + self.assertDictContainsSubset({'a': 1, 'c': 1}, {'a': 1}) + + with self.assertRaises(self.failureException): + self.assertDictContainsSubset({'a': 1, 'c': 1}, {'a': 1}) + + one = ''.join(chr(i) for i in range(255)) + # this used to cause a UnicodeDecodeError constructing the failure msg + with self.assertRaises(self.failureException): + self.assertDictContainsSubset({'foo': one}, {'foo': '\uFFFD'}) + def testAssertEqual(self): equal_pairs = [ ((), ()), @@ -1760,18 +1790,45 @@ def testAssertNoLogsYieldsNone(self): pass self.assertIsNone(value) - def testDeprecatedFailMethods(self): - """Test that the deprecated fail* methods get removed in 3.12""" + def testDeprecatedMethodNames(self): + """ + Test that the deprecated methods raise a DeprecationWarning. See #9424. + """ + old = ( + (self.failIfEqual, (3, 5)), + (self.assertNotEquals, (3, 5)), + (self.failUnlessEqual, (3, 3)), + (self.assertEquals, (3, 3)), + (self.failUnlessAlmostEqual, (2.0, 2.0)), + (self.assertAlmostEquals, (2.0, 2.0)), + (self.failIfAlmostEqual, (3.0, 5.0)), + (self.assertNotAlmostEquals, (3.0, 5.0)), + (self.failUnless, (True,)), + (self.assert_, (True,)), + (self.failUnlessRaises, (TypeError, lambda _: 3.14 + 'spam')), + (self.failIf, (False,)), + (self.assertDictContainsSubset, (dict(a=1, b=2), dict(a=1, b=2, c=3))), + (self.assertRaisesRegexp, (KeyError, 'foo', lambda: {}['foo'])), + (self.assertRegexpMatches, ('bar', 'bar')), + ) + for meth, args in old: + with self.assertWarns(DeprecationWarning): + meth(*args) + + # disable this test for now. When the version where the fail* methods will + # be removed is decided, re-enable it and update the version + def _testDeprecatedFailMethods(self): + """Test that the deprecated fail* methods get removed in 3.x""" + if sys.version_info[:2] < (3, 3): + return deprecated_names = [ 'failIfEqual', 'failUnlessEqual', 'failUnlessAlmostEqual', 'failIfAlmostEqual', 'failUnless', 'failUnlessRaises', 'failIf', - 'assertNotEquals', 'assertEquals', 'assertAlmostEquals', - 'assertNotAlmostEquals', 'assert_', 'assertDictContainsSubset', - 'assertRaisesRegexp', 'assertRegexpMatches' + 'assertDictContainsSubset', ] for deprecated_name in deprecated_names: with self.assertRaises(AttributeError): - getattr(self, deprecated_name) + getattr(self, deprecated_name) # remove these in 3.x def testDeepcopy(self): # Issue: 5660 diff --git a/Lib/test/test_unittest/test_discovery.py b/Lib/unittest/test/test_discovery.py similarity index 99% rename from Lib/test/test_unittest/test_discovery.py rename to Lib/unittest/test/test_discovery.py index 946fa1258ea25e..3b58786ec16a10 100644 --- a/Lib/test/test_unittest/test_discovery.py +++ b/Lib/unittest/test/test_discovery.py @@ -10,7 +10,7 @@ import unittest import unittest.mock -import test.test_unittest +import unittest.test class TestableTestProgram(unittest.TestProgram): @@ -789,7 +789,7 @@ def test_discovery_from_dotted_path(self): loader = unittest.TestLoader() tests = [self] - expectedPath = os.path.abspath(os.path.dirname(test.test_unittest.__file__)) + expectedPath = os.path.abspath(os.path.dirname(unittest.test.__file__)) self.wasRun = False def _find_tests(start_dir, pattern): @@ -797,7 +797,7 @@ def _find_tests(start_dir, pattern): self.assertEqual(start_dir, expectedPath) return tests loader._find_tests = _find_tests - suite = loader.discover('test.test_unittest') + suite = loader.discover('unittest.test') self.assertTrue(self.wasRun) self.assertEqual(suite._tests, tests) diff --git a/Lib/test/test_unittest/test_functiontestcase.py b/Lib/unittest/test/test_functiontestcase.py similarity index 99% rename from Lib/test/test_unittest/test_functiontestcase.py rename to Lib/unittest/test/test_functiontestcase.py index 2ebed9564ad9cd..4971729880d6d8 100644 --- a/Lib/test/test_unittest/test_functiontestcase.py +++ b/Lib/unittest/test/test_functiontestcase.py @@ -1,6 +1,6 @@ import unittest -from test.test_unittest.support import LoggingResult +from unittest.test.support import LoggingResult class Test_FunctionTestCase(unittest.TestCase): diff --git a/Lib/test/test_unittest/test_loader.py b/Lib/unittest/test/test_loader.py similarity index 90% rename from Lib/test/test_unittest/test_loader.py rename to Lib/unittest/test/test_loader.py index bbdfb247ebaada..de2268cda90688 100644 --- a/Lib/test/test_unittest/test_loader.py +++ b/Lib/unittest/test/test_loader.py @@ -5,6 +5,25 @@ import unittest +# Decorator used in the deprecation tests to reset the warning registry for +# test isolation and reproducibility. +def warningregistry(func): + def wrapper(*args, **kws): + missing = [] + saved = getattr(warnings, '__warningregistry__', missing).copy() + try: + return func(*args, **kws) + finally: + if saved is missing: + try: + del warnings.__warningregistry__ + except AttributeError: + pass + else: + warnings.__warningregistry__ = saved + return wrapper + + class Test_TestLoader(unittest.TestCase): ### Basic object tests @@ -155,8 +174,9 @@ class NotAModule(object): self.assertEqual(list(suite), reference) - # Check that loadTestsFromModule honors a module + # Check that loadTestsFromModule honors (or not) a module # with a load_tests function. + @warningregistry def test_loadTestsFromModule__load_tests(self): m = types.ModuleType('m') class MyTestCase(unittest.TestCase): @@ -175,13 +195,126 @@ def load_tests(loader, tests, pattern): suite = loader.loadTestsFromModule(m) self.assertIsInstance(suite, unittest.TestSuite) self.assertEqual(load_tests_args, [loader, suite, None]) + # With Python 3.5, the undocumented and unofficial use_load_tests is + # ignored (and deprecated). + load_tests_args = [] + with warnings.catch_warnings(record=False): + warnings.simplefilter('ignore') + suite = loader.loadTestsFromModule(m, use_load_tests=False) + self.assertEqual(load_tests_args, [loader, suite, None]) + + @warningregistry + def test_loadTestsFromModule__use_load_tests_deprecated_positional(self): + m = types.ModuleType('m') + class MyTestCase(unittest.TestCase): + def test(self): + pass + m.testcase_1 = MyTestCase + + load_tests_args = [] + def load_tests(loader, tests, pattern): + self.assertIsInstance(tests, unittest.TestSuite) + load_tests_args.extend((loader, tests, pattern)) + return tests + m.load_tests = load_tests + # The method still works. + loader = unittest.TestLoader() + # use_load_tests=True as a positional argument. + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter('always') + suite = loader.loadTestsFromModule(m, False) + self.assertIsInstance(suite, unittest.TestSuite) + # load_tests was still called because use_load_tests is deprecated + # and ignored. + self.assertEqual(load_tests_args, [loader, suite, None]) + # We got a warning. + self.assertIs(w[-1].category, DeprecationWarning) + self.assertEqual(str(w[-1].message), + 'use_load_tests is deprecated and ignored') + + @warningregistry + def test_loadTestsFromModule__use_load_tests_deprecated_keyword(self): + m = types.ModuleType('m') + class MyTestCase(unittest.TestCase): + def test(self): + pass + m.testcase_1 = MyTestCase + + load_tests_args = [] + def load_tests(loader, tests, pattern): + self.assertIsInstance(tests, unittest.TestSuite) + load_tests_args.extend((loader, tests, pattern)) + return tests + m.load_tests = load_tests + # The method still works. + loader = unittest.TestLoader() + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter('always') + suite = loader.loadTestsFromModule(m, use_load_tests=False) + self.assertIsInstance(suite, unittest.TestSuite) + # load_tests was still called because use_load_tests is deprecated + # and ignored. + self.assertEqual(load_tests_args, [loader, suite, None]) + # We got a warning. + self.assertIs(w[-1].category, DeprecationWarning) + self.assertEqual(str(w[-1].message), + 'use_load_tests is deprecated and ignored') + + @warningregistry + def test_loadTestsFromModule__too_many_positional_args(self): + m = types.ModuleType('m') + class MyTestCase(unittest.TestCase): + def test(self): + pass + m.testcase_1 = MyTestCase + + load_tests_args = [] + def load_tests(loader, tests, pattern): + self.assertIsInstance(tests, unittest.TestSuite) + load_tests_args.extend((loader, tests, pattern)) + return tests + m.load_tests = load_tests + loader = unittest.TestLoader() + with self.assertRaises(TypeError) as cm, \ + warnings.catch_warnings(record=True) as w: + warnings.simplefilter('always') + loader.loadTestsFromModule(m, False, 'testme.*') + # We still got the deprecation warning. + self.assertIs(w[-1].category, DeprecationWarning) + self.assertEqual(str(w[-1].message), + 'use_load_tests is deprecated and ignored') + # We also got a TypeError for too many positional arguments. + self.assertEqual(type(cm.exception), TypeError) + self.assertEqual( + str(cm.exception), + 'loadTestsFromModule() takes 1 positional argument but 3 were given') + + @warningregistry + def test_loadTestsFromModule__use_load_tests_other_bad_keyword(self): + m = types.ModuleType('m') + class MyTestCase(unittest.TestCase): + def test(self): + pass + m.testcase_1 = MyTestCase - # In Python 3.12, the undocumented and unofficial use_load_tests has - # been removed. - with self.assertRaises(TypeError): - loader.loadTestsFromModule(m, False) - with self.assertRaises(TypeError): - loader.loadTestsFromModule(m, use_load_tests=False) + load_tests_args = [] + def load_tests(loader, tests, pattern): + self.assertIsInstance(tests, unittest.TestSuite) + load_tests_args.extend((loader, tests, pattern)) + return tests + m.load_tests = load_tests + loader = unittest.TestLoader() + with warnings.catch_warnings(): + warnings.simplefilter('ignore') + with self.assertRaises(TypeError) as cm: + loader.loadTestsFromModule( + m, use_load_tests=False, very_bad=True, worse=False) + self.assertEqual(type(cm.exception), TypeError) + # The error message names the first bad argument alphabetically, + # however use_load_tests (which sorts first) is ignored. + self.assertEqual( + str(cm.exception), + "loadTestsFromModule() got an unexpected keyword argument 'very_bad'") def test_loadTestsFromModule__pattern(self): m = types.ModuleType('m') @@ -583,7 +716,7 @@ def test_loadTestsFromName__module_not_loaded(self): # We're going to try to load this module as a side-effect, so it # better not be loaded before we try. # - module_name = 'test.test_unittest.dummy' + module_name = 'unittest.test.dummy' sys.modules.pop(module_name, None) loader = unittest.TestLoader() @@ -711,7 +844,7 @@ def test_loadTestsFromNames__unknown_attr_name(self): loader = unittest.TestLoader() suite = loader.loadTestsFromNames( - ['unittest.loader.sdasfasfasdf', 'test.test_unittest.dummy']) + ['unittest.loader.sdasfasfasdf', 'unittest.test.dummy']) error, test = self.check_deferred_error(loader, list(suite)[0]) expected = "module 'unittest.loader' has no attribute 'sdasfasfasdf'" self.assertIn( @@ -1008,7 +1141,7 @@ def test_loadTestsFromNames__module_not_loaded(self): # We're going to try to load this module as a side-effect, so it # better not be loaded before we try. # - module_name = 'test.test_unittest.dummy' + module_name = 'unittest.test.dummy' sys.modules.pop(module_name, None) loader = unittest.TestLoader() diff --git a/Lib/test/test_unittest/test_program.py b/Lib/unittest/test/test_program.py similarity index 93% rename from Lib/test/test_unittest/test_program.py rename to Lib/unittest/test/test_program.py index 3645bcf4b43562..26a8550af8fdd2 100644 --- a/Lib/test/test_unittest/test_program.py +++ b/Lib/unittest/test/test_program.py @@ -1,10 +1,12 @@ +import io + import os import sys import subprocess from test import support import unittest -import test.test_unittest -from test.test_unittest.test_result import BufferedWriter +import unittest.test +from unittest.test.test_result import BufferedWriter class Test_TestProgram(unittest.TestCase): @@ -13,7 +15,7 @@ def test_discovery_from_dotted_path(self): loader = unittest.TestLoader() tests = [self] - expectedPath = os.path.abspath(os.path.dirname(test.test_unittest.__file__)) + expectedPath = os.path.abspath(os.path.dirname(unittest.test.__file__)) self.wasRun = False def _find_tests(start_dir, pattern): @@ -21,7 +23,7 @@ def _find_tests(start_dir, pattern): self.assertEqual(start_dir, expectedPath) return tests loader._find_tests = _find_tests - suite = loader.discover('test.test_unittest') + suite = loader.discover('unittest.test') self.assertTrue(self.wasRun) self.assertEqual(suite._tests, tests) @@ -91,10 +93,10 @@ def run(self, test): sys.argv = ['faketest'] runner = FakeRunner() program = unittest.TestProgram(testRunner=runner, exit=False, - defaultTest='test.test_unittest', + defaultTest='unittest.test', testLoader=self.FooBarLoader()) sys.argv = old_argv - self.assertEqual(('test.test_unittest',), program.testNames) + self.assertEqual(('unittest.test',), program.testNames) def test_defaultTest_with_iterable(self): class FakeRunner(object): @@ -107,10 +109,10 @@ def run(self, test): runner = FakeRunner() program = unittest.TestProgram( testRunner=runner, exit=False, - defaultTest=['test.test_unittest', 'test.test_unittest2'], + defaultTest=['unittest.test', 'unittest.test2'], testLoader=self.FooBarLoader()) sys.argv = old_argv - self.assertEqual(['test.test_unittest', 'test.test_unittest2'], + self.assertEqual(['unittest.test', 'unittest.test2'], program.testNames) def test_NonExit(self): @@ -461,14 +463,14 @@ def run_unittest(args): return stderr.decode() t = '_test_warnings' - self.assertIn('Ran 5 tests', run_unittest([t])) - self.assertIn('Ran 5 tests', run_unittest(['-k', 'TestWarnings', t])) - self.assertIn('Ran 5 tests', run_unittest(['discover', '-p', '*_test*', '-k', 'TestWarnings'])) - self.assertIn('Ran 1 test ', run_unittest(['-k', 'f', t])) - self.assertIn('Ran 5 tests', run_unittest(['-k', 't', t])) - self.assertIn('Ran 2 tests', run_unittest(['-k', '*t', t])) - self.assertIn('Ran 5 tests', run_unittest(['-k', '*test_warnings.*Warning*', t])) - self.assertIn('Ran 1 test ', run_unittest(['-k', '*test_warnings.*warning*', t])) + self.assertIn('Ran 7 tests', run_unittest([t])) + self.assertIn('Ran 7 tests', run_unittest(['-k', 'TestWarnings', t])) + self.assertIn('Ran 7 tests', run_unittest(['discover', '-p', '*_test*', '-k', 'TestWarnings'])) + self.assertIn('Ran 2 tests', run_unittest(['-k', 'f', t])) + self.assertIn('Ran 7 tests', run_unittest(['-k', 't', t])) + self.assertIn('Ran 3 tests', run_unittest(['-k', '*t', t])) + self.assertIn('Ran 7 tests', run_unittest(['-k', '*test_warnings.*Warning*', t])) + self.assertIn('Ran 1 test', run_unittest(['-k', '*test_warnings.*warning*', t])) if __name__ == '__main__': diff --git a/Lib/test/test_unittest/test_result.py b/Lib/unittest/test/test_result.py similarity index 99% rename from Lib/test/test_unittest/test_result.py rename to Lib/unittest/test/test_result.py index e71d114751d94d..b0cc3d867d6e57 100644 --- a/Lib/test/test_unittest/test_result.py +++ b/Lib/unittest/test/test_result.py @@ -2,7 +2,7 @@ import sys import textwrap -from test.support import warnings_helper, captured_stdout +from test.support import warnings_helper, captured_stdout, captured_stderr import traceback import unittest @@ -449,8 +449,8 @@ def testGetSubTestDescriptionWithoutDocstringAndParams(self): '(' + __name__ + '.Test_TextTestResult.testGetSubTestDescriptionWithoutDocstringAndParams) ' '(<subtest>)') - def testGetSubTestDescriptionForFalseValues(self): - expected = 'testGetSubTestDescriptionForFalseValues (%s.Test_TextTestResult.testGetSubTestDescriptionForFalseValues) [%s]' + def testGetSubTestDescriptionForFalsyValues(self): + expected = 'testGetSubTestDescriptionForFalsyValues (%s.Test_TextTestResult.testGetSubTestDescriptionForFalsyValues) [%s]' result = unittest.TextTestResult(None, True, 1) for arg in [0, None, []]: with self.subTest(arg): diff --git a/Lib/test/test_unittest/test_runner.py b/Lib/unittest/test/test_runner.py similarity index 99% rename from Lib/test/test_unittest/test_runner.py rename to Lib/unittest/test/test_runner.py index d396f2bab57871..d3488b40e82bde 100644 --- a/Lib/test/test_unittest/test_runner.py +++ b/Lib/unittest/test/test_runner.py @@ -8,7 +8,7 @@ import unittest from unittest.case import _Outcome -from test.test_unittest.support import (LoggingResult, +from unittest.test.support import (LoggingResult, ResultWithNoStartTestRunStopTestRun) @@ -1262,6 +1262,8 @@ def get_parse_out_err(p): return [b.splitlines() for b in p.communicate()] opts = dict(stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=os.path.dirname(__file__)) + ae_msg = b'Please use assertEqual instead.' + at_msg = b'Please use assertTrue instead.' # no args -> all the warnings are printed, unittest warnings only once p = subprocess.Popen([sys.executable, '-E', '_test_warnings.py'], **opts) @@ -1269,11 +1271,11 @@ def get_parse_out_err(p): out, err = get_parse_out_err(p) self.assertIn(b'OK', err) # check that the total number of warnings in the output is correct - self.assertEqual(len(out), 10) + self.assertEqual(len(out), 12) # check that the numbers of the different kind of warnings is correct for msg in [b'dw', b'iw', b'uw']: self.assertEqual(out.count(msg), 3) - for msg in [b'rw']: + for msg in [ae_msg, at_msg, b'rw']: self.assertEqual(out.count(msg), 1) args_list = ( @@ -1300,9 +1302,11 @@ def get_parse_out_err(p): with p: out, err = get_parse_out_err(p) self.assertIn(b'OK', err) - self.assertEqual(len(out), 12) + self.assertEqual(len(out), 14) for msg in [b'dw', b'iw', b'uw', b'rw']: self.assertEqual(out.count(msg), 3) + for msg in [ae_msg, at_msg]: + self.assertEqual(out.count(msg), 1) def testStdErrLookedUpAtInstantiationTime(self): # see issue 10786 diff --git a/Lib/test/test_unittest/test_setups.py b/Lib/unittest/test/test_setups.py similarity index 100% rename from Lib/test/test_unittest/test_setups.py rename to Lib/unittest/test/test_setups.py diff --git a/Lib/test/test_unittest/test_skipping.py b/Lib/unittest/test/test_skipping.py similarity index 99% rename from Lib/test/test_unittest/test_skipping.py rename to Lib/unittest/test/test_skipping.py index f146dcac18ecc0..64ceeae37ef0a7 100644 --- a/Lib/test/test_unittest/test_skipping.py +++ b/Lib/unittest/test/test_skipping.py @@ -1,6 +1,6 @@ import unittest -from test.test_unittest.support import LoggingResult +from unittest.test.support import LoggingResult class Test_TestSkipping(unittest.TestCase): diff --git a/Lib/test/test_unittest/test_suite.py b/Lib/unittest/test/test_suite.py similarity index 99% rename from Lib/test/test_unittest/test_suite.py rename to Lib/unittest/test/test_suite.py index ca52ee9d9c011c..0551a16996723e 100644 --- a/Lib/test/test_unittest/test_suite.py +++ b/Lib/unittest/test/test_suite.py @@ -3,7 +3,7 @@ import gc import sys import weakref -from test.test_unittest.support import LoggingResult, TestEquality +from unittest.test.support import LoggingResult, TestEquality ### Support code for Test_TestSuite diff --git a/Lib/unittest/test/testmock/__init__.py b/Lib/unittest/test/testmock/__init__.py new file mode 100644 index 00000000000000..87d7ae994d5cd3 --- /dev/null +++ b/Lib/unittest/test/testmock/__init__.py @@ -0,0 +1,17 @@ +import os +import sys +import unittest + + +here = os.path.dirname(__file__) +loader = unittest.defaultTestLoader + +def load_tests(*args): + suite = unittest.TestSuite() + for fn in os.listdir(here): + if fn.startswith("test") and fn.endswith(".py"): + modname = "unittest.test.testmock." + fn[:-3] + __import__(modname) + module = sys.modules[modname] + suite.addTest(loader.loadTestsFromModule(module)) + return suite diff --git a/Lib/test/test_unittest/testmock/__main__.py b/Lib/unittest/test/testmock/__main__.py similarity index 86% rename from Lib/test/test_unittest/testmock/__main__.py rename to Lib/unittest/test/testmock/__main__.py index 1e3068b0ddf391..45c633a4ee48b5 100644 --- a/Lib/test/test_unittest/testmock/__main__.py +++ b/Lib/unittest/test/testmock/__main__.py @@ -6,7 +6,7 @@ def load_tests(loader, standard_tests, pattern): # top level directory cached on loader instance this_dir = os.path.dirname(__file__) pattern = pattern or "test*.py" - # We are inside test.test_unittest.testmock, so the top-level is three notches up + # We are inside unittest.test.testmock, so the top-level is three notches up top_level_dir = os.path.dirname(os.path.dirname(os.path.dirname(this_dir))) package_tests = loader.discover(start_dir=this_dir, pattern=pattern, top_level_dir=top_level_dir) diff --git a/Lib/test/test_unittest/testmock/support.py b/Lib/unittest/test/testmock/support.py similarity index 100% rename from Lib/test/test_unittest/testmock/support.py rename to Lib/unittest/test/testmock/support.py diff --git a/Lib/test/test_unittest/testmock/testasync.py b/Lib/unittest/test/testmock/testasync.py similarity index 100% rename from Lib/test/test_unittest/testmock/testasync.py rename to Lib/unittest/test/testmock/testasync.py diff --git a/Lib/test/test_unittest/testmock/testcallable.py b/Lib/unittest/test/testmock/testcallable.py similarity index 98% rename from Lib/test/test_unittest/testmock/testcallable.py rename to Lib/unittest/test/testmock/testcallable.py index ca88511f63959d..5eadc007049400 100644 --- a/Lib/test/test_unittest/testmock/testcallable.py +++ b/Lib/unittest/test/testmock/testcallable.py @@ -3,7 +3,7 @@ # http://www.voidspace.org.uk/python/mock/ import unittest -from test.test_unittest.testmock.support import is_instance, X, SomeClass +from unittest.test.testmock.support import is_instance, X, SomeClass from unittest.mock import ( Mock, MagicMock, NonCallableMagicMock, diff --git a/Lib/test/test_unittest/testmock/testhelpers.py b/Lib/unittest/test/testmock/testhelpers.py similarity index 100% rename from Lib/test/test_unittest/testmock/testhelpers.py rename to Lib/unittest/test/testmock/testhelpers.py diff --git a/Lib/test/test_unittest/testmock/testmagicmethods.py b/Lib/unittest/test/testmock/testmagicmethods.py similarity index 100% rename from Lib/test/test_unittest/testmock/testmagicmethods.py rename to Lib/unittest/test/testmock/testmagicmethods.py diff --git a/Lib/test/test_unittest/testmock/testmock.py b/Lib/unittest/test/testmock/testmock.py similarity index 99% rename from Lib/test/test_unittest/testmock/testmock.py rename to Lib/unittest/test/testmock/testmock.py index 8a92490137f9a7..c99098dc4ea86a 100644 --- a/Lib/test/test_unittest/testmock/testmock.py +++ b/Lib/unittest/test/testmock/testmock.py @@ -5,7 +5,7 @@ from test.support import ALWAYS_EQ import unittest -from test.test_unittest.testmock.support import is_instance +from unittest.test.testmock.support import is_instance from unittest import mock from unittest.mock import ( call, DEFAULT, patch, sentinel, diff --git a/Lib/test/test_unittest/testmock/testpatch.py b/Lib/unittest/test/testmock/testpatch.py similarity index 98% rename from Lib/test/test_unittest/testmock/testpatch.py rename to Lib/unittest/test/testmock/testpatch.py index 8ceb5d973e1aaf..8ab63a1317d3df 100644 --- a/Lib/test/test_unittest/testmock/testpatch.py +++ b/Lib/unittest/test/testmock/testpatch.py @@ -7,8 +7,8 @@ from collections import OrderedDict import unittest -from test.test_unittest.testmock import support -from test.test_unittest.testmock.support import SomeClass, is_instance +from unittest.test.testmock import support +from unittest.test.testmock.support import SomeClass, is_instance from test.test_importlib.util import uncache from unittest.mock import ( @@ -669,7 +669,7 @@ def test_patch_dict_decorator_resolution(self): # the new dictionary during function call original = support.target.copy() - @patch.dict('test.test_unittest.testmock.support.target', {'bar': 'BAR'}) + @patch.dict('unittest.test.testmock.support.target', {'bar': 'BAR'}) def test(): self.assertEqual(support.target, {'foo': 'BAZ', 'bar': 'BAR'}) @@ -1614,7 +1614,7 @@ def test_patch_with_spec_mock_repr(self): def test_patch_nested_autospec_repr(self): - with patch('test.test_unittest.testmock.support', autospec=True) as m: + with patch('unittest.test.testmock.support', autospec=True) as m: self.assertIn(" name='support.SomeClass.wibble()'", repr(m.SomeClass.wibble())) self.assertIn(" name='support.SomeClass().wibble()'", @@ -1882,7 +1882,7 @@ def foo(x=0): with patch.object(foo, '__module__', "testpatch2"): self.assertEqual(foo.__module__, "testpatch2") - self.assertEqual(foo.__module__, 'test.test_unittest.testmock.testpatch') + self.assertEqual(foo.__module__, 'unittest.test.testmock.testpatch') with patch.object(foo, '__annotations__', dict([('s', 1, )])): self.assertEqual(foo.__annotations__, dict([('s', 1, )])) @@ -1917,16 +1917,16 @@ def test_dotted_but_module_not_loaded(self): # This exercises the AttributeError branch of _dot_lookup. # make sure it's there - import test.test_unittest.testmock.support + import unittest.test.testmock.support # now make sure it's not: with patch.dict('sys.modules'): - del sys.modules['test.test_unittest.testmock.support'] - del sys.modules['test.test_unittest.testmock'] - del sys.modules['test.test_unittest'] - del sys.modules['test'] + del sys.modules['unittest.test.testmock.support'] + del sys.modules['unittest.test.testmock'] + del sys.modules['unittest.test'] + del sys.modules['unittest'] # now make sure we can patch based on a dotted path: - @patch('test.test_unittest.testmock.support.X') + @patch('unittest.test.testmock.support.X') def test(mock): pass test() @@ -1943,7 +1943,7 @@ class Foo: def test_cant_set_kwargs_when_passing_a_mock(self): - @patch('test.test_unittest.testmock.support.X', new=object(), x=1) + @patch('unittest.test.testmock.support.X', new=object(), x=1) def test(): pass with self.assertRaises(TypeError): test() diff --git a/Lib/test/test_unittest/testmock/testsealable.py b/Lib/unittest/test/testmock/testsealable.py similarity index 100% rename from Lib/test/test_unittest/testmock/testsealable.py rename to Lib/unittest/test/testmock/testsealable.py diff --git a/Lib/test/test_unittest/testmock/testsentinel.py b/Lib/unittest/test/testmock/testsentinel.py similarity index 100% rename from Lib/test/test_unittest/testmock/testsentinel.py rename to Lib/unittest/test/testmock/testsentinel.py diff --git a/Lib/test/test_unittest/testmock/testwith.py b/Lib/unittest/test/testmock/testwith.py similarity index 99% rename from Lib/test/test_unittest/testmock/testwith.py rename to Lib/unittest/test/testmock/testwith.py index 8dc8eb1137691f..c74d49a63c8928 100644 --- a/Lib/test/test_unittest/testmock/testwith.py +++ b/Lib/unittest/test/testmock/testwith.py @@ -1,7 +1,7 @@ import unittest from warnings import catch_warnings -from test.test_unittest.testmock.support import is_instance +from unittest.test.testmock.support import is_instance from unittest.mock import MagicMock, Mock, patch, sentinel, mock_open, call diff --git a/Lib/urllib/parse.py b/Lib/urllib/parse.py index f25c770068bdd1..d70a6943f0a739 100644 --- a/Lib/urllib/parse.py +++ b/Lib/urllib/parse.py @@ -30,6 +30,7 @@ from collections import namedtuple import functools import re +import sys import types import warnings @@ -906,7 +907,7 @@ def quote_from_bytes(bs, safe='/'): if not bs.rstrip(_ALWAYS_SAFE_BYTES + safe): return bs.decode() quoter = _byte_quoter_factory(safe) - return ''.join(map(quoter, bs)) + return ''.join([quoter(char) for char in bs]) def urlencode(query, doseq=False, safe='', encoding=None, errors=None, quote_via=quote_plus): diff --git a/Lib/urllib/request.py b/Lib/urllib/request.py index 1761e951e62466..6d580a434a7bea 100644 --- a/Lib/urllib/request.py +++ b/Lib/urllib/request.py @@ -88,6 +88,7 @@ import http.client import io import os +import posixpath import re import socket import string @@ -1383,16 +1384,12 @@ class HTTPSHandler(AbstractHTTPHandler): def __init__(self, debuglevel=0, context=None, check_hostname=None): AbstractHTTPHandler.__init__(self, debuglevel) - if context is None: - http_version = http.client.HTTPSConnection._http_vsn - context = http.client._create_https_context(http_version) - if check_hostname is not None: - context.check_hostname = check_hostname self._context = context + self._check_hostname = check_hostname def https_open(self, req): return self.do_open(http.client.HTTPSConnection, req, - context=self._context) + context=self._context, check_hostname=self._check_hostname) https_request = AbstractHTTPHandler.do_request_ @@ -1990,17 +1987,9 @@ def http_error_default(self, url, fp, errcode, errmsg, headers): if _have_ssl: def _https_connection(self, host): - if self.key_file or self.cert_file: - http_version = http.client.HTTPSConnection._http_vsn - context = http.client._create_https_context(http_version) - context.load_cert_chain(self.cert_file, self.key_file) - # cert and key file means the user wants to authenticate. - # enable TLS 1.3 PHA implicitly even for custom contexts. - if context.post_handshake_auth is not None: - context.post_handshake_auth = True - else: - context = None - return http.client.HTTPSConnection(host, context=context) + return http.client.HTTPSConnection(host, + key_file=self.key_file, + cert_file=self.cert_file) def open_https(self, url, data=None): """Use HTTPS protocol.""" diff --git a/Lib/uuid.py b/Lib/uuid.py index 8fe2479f3f22cf..f179d68e8265ac 100644 --- a/Lib/uuid.py +++ b/Lib/uuid.py @@ -524,8 +524,6 @@ def _ip_getnode(): def _arp_getnode(): """Get the hardware address on Unix by running arp.""" import os, socket - if not hasattr(socket, "gethostbyname"): - return None try: ip_addr = socket.gethostbyname(socket.gethostname()) except OSError: diff --git a/Lib/venv/__init__.py b/Lib/venv/__init__.py index f6b790e1b71a13..6032f3648e15ff 100644 --- a/Lib/venv/__init__.py +++ b/Lib/venv/__init__.py @@ -138,7 +138,6 @@ def create_if_needed(d): context.inc_path = incpath create_if_needed(incpath) - context.lib_path = libpath create_if_needed(libpath) # Issue 21197: create lib64 as a symlink to lib on 64-bit non-OS X POSIX if ((sys.maxsize > 2**32) and (os.name == 'posix') and diff --git a/Lib/venv/scripts/posix/activate.fish b/Lib/venv/scripts/posix/activate.fish index 9aa4446005f4d8..e40a1d714894fa 100644 --- a/Lib/venv/scripts/posix/activate.fish +++ b/Lib/venv/scripts/posix/activate.fish @@ -13,13 +13,10 @@ function deactivate -d "Exit virtual environment and return to normal shell env end if test -n "$_OLD_FISH_PROMPT_OVERRIDE" + functions -e fish_prompt set -e _OLD_FISH_PROMPT_OVERRIDE - # prevents error when using nested fish instances (Issue #93858) - if functions -q _old_fish_prompt - functions -e fish_prompt - functions -c _old_fish_prompt fish_prompt - functions -e _old_fish_prompt - end + functions -c _old_fish_prompt fish_prompt + functions -e _old_fish_prompt end set -e VIRTUAL_ENV diff --git a/Lib/wave.py b/Lib/wave.py index e446174b4b22b9..9a4557487b6e63 100644 --- a/Lib/wave.py +++ b/Lib/wave.py @@ -83,7 +83,6 @@ class Error(Exception): pass WAVE_FORMAT_PCM = 0x0001 -WAVE_FORMAT_EXTENSIBLE = 0xFFFE _array_fmts = None, 'b', 'h', None, 'i' @@ -378,23 +377,16 @@ def _read_fmt_chunk(self, chunk): wFormatTag, self._nchannels, self._framerate, dwAvgBytesPerSec, wBlockAlign = struct.unpack_from('<HHLLH', chunk.read(14)) except struct.error: raise EOFError from None - if wFormatTag != WAVE_FORMAT_PCM and wFormatTag != WAVE_FORMAT_EXTENSIBLE: - raise Error('unknown format: %r' % (wFormatTag,)) - try: - sampwidth = struct.unpack_from('<H', chunk.read(2))[0] - except struct.error: - raise EOFError from None - if wFormatTag == WAVE_FORMAT_EXTENSIBLE: + if wFormatTag == WAVE_FORMAT_PCM: try: - # Only the first 2 bytes (of 16) of SubFormat are needed. - cbSize, wValidBitsPerSample, dwChannelMask, SubFormatFmt = struct.unpack_from('<HHLH', chunk.read(10)) + sampwidth = struct.unpack_from('<H', chunk.read(2))[0] except struct.error: raise EOFError from None - if SubFormatFmt != WAVE_FORMAT_PCM: - raise Error(f'unknown format: {SubFormatFmt}') - self._sampwidth = (sampwidth + 7) // 8 - if not self._sampwidth: - raise Error('bad sample width') + self._sampwidth = (sampwidth + 7) // 8 + if not self._sampwidth: + raise Error('bad sample width') + else: + raise Error('unknown format: %r' % (wFormatTag,)) if not self._nchannels: raise Error('bad # of channels') self._framesize = self._nchannels * self._sampwidth diff --git a/Lib/wsgiref/types.py b/Lib/wsgiref/types.py index ef0aead5b28b64..9e74a6c7312b19 100644 --- a/Lib/wsgiref/types.py +++ b/Lib/wsgiref/types.py @@ -1,6 +1,6 @@ """WSGI-related types for static type checking""" -from collections.abc import Callable, Iterable, Iterator +from collections.abc import Callable, Iterable from types import TracebackType from typing import Any, Protocol, TypeAlias @@ -35,7 +35,7 @@ class InputStream(Protocol): def read(self, size: int = ..., /) -> bytes: ... def readline(self, size: int = ..., /) -> bytes: ... def readlines(self, hint: int = ..., /) -> list[bytes]: ... - def __iter__(self) -> Iterator[bytes]: ... + def __iter__(self) -> Iterable[bytes]: ... class ErrorStream(Protocol): """WSGI error stream as defined in PEP 3333""" diff --git a/Lib/xml/dom/minidom.py b/Lib/xml/dom/minidom.py index ef8a159833bbc0..d09ef5e7d0371a 100644 --- a/Lib/xml/dom/minidom.py +++ b/Lib/xml/dom/minidom.py @@ -358,8 +358,6 @@ def __init__(self, qName, namespaceURI=EMPTY_NAMESPACE, localName=None, self._name = qName self.namespaceURI = namespaceURI self._prefix = prefix - if localName is not None: - self._localName = localName self.childNodes = NodeList() # Add the single child node that represents the value of the attr diff --git a/Lib/xml/etree/ElementPath.py b/Lib/xml/etree/ElementPath.py index dc6bd28c03137d..cd3c354d0813ee 100644 --- a/Lib/xml/etree/ElementPath.py +++ b/Lib/xml/etree/ElementPath.py @@ -416,8 +416,6 @@ def findall(elem, path, namespaces=None): def findtext(elem, path, default=None, namespaces=None): try: elem = next(iterfind(elem, path, namespaces)) - if elem.text is None: - return "" - return elem.text + return elem.text or "" except StopIteration: return default diff --git a/Lib/xml/etree/ElementTree.py b/Lib/xml/etree/ElementTree.py index ebbe2b703bfd8f..a5cc65e789c004 100644 --- a/Lib/xml/etree/ElementTree.py +++ b/Lib/xml/etree/ElementTree.py @@ -188,6 +188,19 @@ def makeelement(self, tag, attrib): """ return self.__class__(tag, attrib) + def copy(self): + """Return copy of current element. + + This creates a shallow copy. Subelements will be shared with the + original tree. + + """ + warnings.warn( + "elem.copy() is deprecated. Use copy.copy(elem) instead.", + DeprecationWarning + ) + return self.__copy__() + def __copy__(self): elem = self.makeelement(self.tag, self.attrib) elem.text = self.text @@ -718,7 +731,6 @@ def write(self, file_or_filename, with _get_writer(file_or_filename, encoding) as (write, declared_encoding): if method == "xml" and (xml_declaration or (xml_declaration is None and - encoding.lower() != "unicode" and declared_encoding.lower() not in ("utf-8", "us-ascii"))): write("<?xml version='1.0' encoding='%s'?>\n" % ( declared_encoding,)) @@ -745,10 +757,13 @@ def _get_writer(file_or_filename, encoding): except AttributeError: # file_or_filename is a file name if encoding.lower() == "unicode": - encoding="utf-8" - with open(file_or_filename, "w", encoding=encoding, - errors="xmlcharrefreplace") as file: - yield file.write, encoding + file = open(file_or_filename, "w", + errors="xmlcharrefreplace") + else: + file = open(file_or_filename, "w", encoding=encoding, + errors="xmlcharrefreplace") + with file: + yield file.write, file.encoding else: # file_or_filename is a file-like object # encoding determines if it is a text or binary writer diff --git a/Lib/zipfile.py b/Lib/zipfile.py index b6465373c107d5..fc6ca65e5ed1e9 100644 --- a/Lib/zipfile.py +++ b/Lib/zipfile.py @@ -480,7 +480,7 @@ def FileHeader(self, zip64=None): def _encodeFilenameFlags(self): try: - return self.filename.encode('ascii'), self.flag_bits + return self.filename.encode('ascii'), self.flag_bits & ~_MASK_UTF_FILENAME except UnicodeEncodeError: return self.filename.encode('utf-8'), self.flag_bits | _MASK_UTF_FILENAME @@ -847,7 +847,6 @@ def __init__(self, fileobj, mode, zipinfo, pwd=None, self._orig_compress_size = zipinfo.compress_size self._orig_file_size = zipinfo.file_size self._orig_start_crc = self._running_crc - self._orig_crc = self._expected_crc self._seekable = True except AttributeError: pass @@ -1070,17 +1069,17 @@ def seekable(self): raise ValueError("I/O operation on closed file.") return self._seekable - def seek(self, offset, whence=os.SEEK_SET): + def seek(self, offset, whence=0): if self.closed: raise ValueError("seek on closed file.") if not self._seekable: raise io.UnsupportedOperation("underlying stream is not seekable") curr_pos = self.tell() - if whence == os.SEEK_SET: + if whence == 0: # Seek from start of file new_pos = offset - elif whence == os.SEEK_CUR: + elif whence == 1: # Seek from current position new_pos = curr_pos + offset - elif whence == os.SEEK_END: + elif whence == 2: # Seek from EOF new_pos = self._orig_file_size + offset else: raise ValueError("whence must be os.SEEK_SET (0), " @@ -1095,19 +1094,7 @@ def seek(self, offset, whence=os.SEEK_SET): read_offset = new_pos - curr_pos buff_offset = read_offset + self._offset - # Fast seek uncompressed unencrypted file - if self._compress_type == ZIP_STORED and self._decrypter is None and read_offset > 0: - # disable CRC checking after first seeking - it would be invalid - self._expected_crc = None - # seek actual file taking already buffered data into account - read_offset -= len(self._readbuffer) - self._offset - self._fileobj.seek(read_offset, os.SEEK_CUR) - self._left -= read_offset - read_offset = 0 - # flush read buffer - self._readbuffer = b'' - self._offset = 0 - elif buff_offset >= 0 and buff_offset < len(self._readbuffer): + if buff_offset >= 0 and buff_offset < len(self._readbuffer): # Just move the _offset index if the new position is in the _readbuffer self._offset = buff_offset read_offset = 0 @@ -1115,7 +1102,6 @@ def seek(self, offset, whence=os.SEEK_SET): # Position is before the current position. Reset the ZipExtFile self._fileobj.seek(self._orig_compress_start) self._running_crc = self._orig_start_crc - self._expected_crc = self._orig_crc self._compress_left = self._orig_compress_size self._left = self._orig_file_size self._readbuffer = b'' @@ -1468,10 +1454,7 @@ def printdir(self, file=None): file=file) def testzip(self): - """Read all the files and check the CRC. - - Return None if all files could be read successfully, or the name - of the offending file otherwise.""" + """Read all the files and check the CRC.""" chunk_size = 2 ** 20 for zinfo in self.filelist: try: @@ -1702,8 +1685,8 @@ def _sanitize_windows_name(cls, arcname, pathsep): table = str.maketrans(illegal, '_' * len(illegal)) cls._windows_illegal_name_trans_table = table arcname = arcname.translate(table) - # remove trailing dots and spaces - arcname = (x.rstrip(' .') for x in arcname.split(pathsep)) + # remove trailing dots + arcname = (x.rstrip('.') for x in arcname.split(pathsep)) # rejoin, removing empty parts. arcname = pathsep.join(x for x in arcname if x) return arcname diff --git a/Lib/zipimport.py b/Lib/zipimport.py index 016f1b8a797988..25eaee9c0f291b 100644 --- a/Lib/zipimport.py +++ b/Lib/zipimport.py @@ -63,7 +63,8 @@ class zipimporter(_bootstrap_external._LoaderBasics): # if found, or else read it from the archive. def __init__(self, path): if not isinstance(path, str): - raise TypeError(f"expected str, not {type(path)!r}") + import os + path = os.fsdecode(path) if not path: raise ZipImportError('archive path is empty', path=path) if alt_path_sep: @@ -101,6 +102,64 @@ def __init__(self, path): self.prefix += path_sep + # Check whether we can satisfy the import of the module named by + # 'fullname', or whether it could be a portion of a namespace + # package. Return self if we can load it, a string containing the + # full path if it's a possible namespace portion, None if we + # can't load it. + def find_loader(self, fullname, path=None): + """find_loader(fullname, path=None) -> self, str or None. + + Search for a module specified by 'fullname'. 'fullname' must be the + fully qualified (dotted) module name. It returns the zipimporter + instance itself if the module was found, a string containing the + full path name if it's possibly a portion of a namespace package, + or None otherwise. The optional 'path' argument is ignored -- it's + there for compatibility with the importer protocol. + + Deprecated since Python 3.10. Use find_spec() instead. + """ + _warnings.warn("zipimporter.find_loader() is deprecated and slated for " + "removal in Python 3.12; use find_spec() instead", + DeprecationWarning) + mi = _get_module_info(self, fullname) + if mi is not None: + # This is a module or package. + return self, [] + + # Not a module or regular package. See if this is a directory, and + # therefore possibly a portion of a namespace package. + + # We're only interested in the last path component of fullname + # earlier components are recorded in self.prefix. + modpath = _get_module_path(self, fullname) + if _is_dir(self, modpath): + # This is possibly a portion of a namespace + # package. Return the string representing its path, + # without a trailing separator. + return None, [f'{self.archive}{path_sep}{modpath}'] + + return None, [] + + + # Check whether we can satisfy the import of the module named by + # 'fullname'. Return self if we can, None if we can't. + def find_module(self, fullname, path=None): + """find_module(fullname, path=None) -> self or None. + + Search for a module specified by 'fullname'. 'fullname' must be the + fully qualified (dotted) module name. It returns the zipimporter + instance itself if the module was found, or None if it wasn't. + The optional 'path' argument is ignored -- it's there for compatibility + with the importer protocol. + + Deprecated since Python 3.10. Use find_spec() instead. + """ + _warnings.warn("zipimporter.find_module() is deprecated and slated for " + "removal in Python 3.12; use find_spec() instead", + DeprecationWarning) + return self.find_loader(fullname, path)[0] + def find_spec(self, fullname, target=None): """Create a ModuleSpec for the specified module. diff --git a/Mac/BuildScript/build-installer.py b/Mac/BuildScript/build-installer.py index 9fd87f3361fde9..50b55f9cd1da84 100755 --- a/Mac/BuildScript/build-installer.py +++ b/Mac/BuildScript/build-installer.py @@ -203,7 +203,7 @@ def internalTk(): # Do we use 8.6.8 when building our own copy # of Tcl/Tk or a modern version. -# We use the old version when building on +# We use the old version when buildin on # old versions of macOS due to build issues. def useOldTk(): return getBuildTuple() < (10, 15) @@ -246,10 +246,9 @@ def library_recipes(): result.extend([ dict( - name="OpenSSL 1.1.1q", - url="https://www.openssl.org/source/openssl-1.1.1q.tar.gz", - checksum='d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca', - patches=['openssl1.1.1q-pr-18719.patch'], + name="OpenSSL 1.1.1n", + url="https://www.openssl.org/source/openssl-1.1.1n.tar.gz", + checksum='2aad5635f9bb338bc2c6b7d19cbc9676', buildrecipe=build_universal_openssl, configure=None, install=None, @@ -798,16 +797,10 @@ def verifyThirdPartyFile(url, checksum, fname): print("Downloading %s"%(name,)) downloadURL(url, fname) print("Archive for %s stored as %s"%(name, fname)) - if len(checksum) == 32: - algo = 'md5' - elif len(checksum) == 64: - algo = 'sha256' - else: - raise ValueError(checksum) if os.system( - 'CHECKSUM=$(openssl %s %s) ; test "${CHECKSUM##*= }" = "%s"' - % (algo, shellQuote(fname), checksum) ): - fatal('%s checksum mismatch for file %s' % (algo, fname)) + 'MD5=$(openssl md5 %s) ; test "${MD5##*= }" = "%s"' + % (shellQuote(fname), checksum) ): + fatal('MD5 checksum mismatch for file %s' % fname) def build_universal_openssl(basedir, archList): """ diff --git a/Mac/BuildScript/openssl1.1.1q-pr-18719.patch b/Mac/BuildScript/openssl1.1.1q-pr-18719.patch deleted file mode 100644 index 6b4b1883159fd8..00000000000000 --- a/Mac/BuildScript/openssl1.1.1q-pr-18719.patch +++ /dev/null @@ -1,17 +0,0 @@ -https://github.com/openssl/openssl/commit/60f011f584d80447e86cae1d1bd3ae24bc13235b -This fixes a regression in 1.1.1q: - -test/v3ext.c:201:24: error: implicitly declaring library function 'memcmp' with type 'int (const void *, const void *, unsigned long)' [-Werror,-Wimplicit-function-declaration] - if (!TEST_true(memcmp(ip1->data, ip2->data, ip1->length) <= 0)) - -diff -Naur openssl-1.1.1q/test/v3ext.c openssl-1.1.1q-patched/test/v3ext.c ---- openssl-1.1.1q/test/v3ext.c 2022-07-05 09:08:33.000000000 +0000 -+++ openssl-1.1.1q-patched/test/v3ext.c 2022-09-05 16:54:45.740859256 +0000 -@@ -8,6 +8,7 @@ - */ - - #include <stdio.h> -+#include <string.h> - #include <openssl/x509.h> - #include <openssl/x509v3.h> - #include <openssl/pem.h> diff --git a/Mac/BuildScript/scripts/postflight.framework b/Mac/BuildScript/scripts/postflight.framework index a63909358f1719..0f2e52c4ca1926 100755 --- a/Mac/BuildScript/scripts/postflight.framework +++ b/Mac/BuildScript/scripts/postflight.framework @@ -8,12 +8,12 @@ FWK="/Library/Frameworks/Python.framework/Versions/@PYVER@" "${FWK}/bin/python@PYVER@" -E -s -Wi \ "${FWK}/lib/python${PYVER}/compileall.py" -q -j0 \ - -f -x 'bad_coding|badsyntax|site-packages|test/test_lib2to3/data' \ + -f -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ "${FWK}/lib/python${PYVER}" "${FWK}/bin/python@PYVER@" -E -s -Wi -O \ "${FWK}/lib/python${PYVER}/compileall.py" -q -j0 \ - -f -x 'bad_coding|badsyntax|site-packages|test/test_lib2to3/data' \ + -f -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ "${FWK}/lib/python${PYVER}" "${FWK}/bin/python@PYVER@" -E -s -Wi \ diff --git a/Mac/IDLE/IDLE.app/Contents/Info.plist b/Mac/IDLE/IDLE.app/Contents/Info.plist index 799a164cbdf2ed..d197c77ed4b1a3 100644 --- a/Mac/IDLE/IDLE.app/Contents/Info.plist +++ b/Mac/IDLE/IDLE.app/Contents/Info.plist @@ -10,7 +10,6 @@ <key>CFBundleTypeExtensions</key> <array> <string>py</string> - <string>pyi</string> <string>pyw</string> </array> <key>CFBundleTypeIconFile</key> diff --git a/Makefile.pre.in b/Makefile.pre.in index 5201abb5ee5b41..a178dd0a65c734 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -36,6 +36,7 @@ abs_builddir= @abs_builddir@ CC= @CC@ CXX= @CXX@ +MAINCC= @MAINCC@ LINKCC= @LINKCC@ AR= @AR@ READELF= @READELF@ @@ -54,8 +55,6 @@ DTRACE= @DTRACE@ DFLAGS= @DFLAGS@ DTRACE_HEADERS= @DTRACE_HEADERS@ DTRACE_OBJS= @DTRACE_OBJS@ -DSYMUTIL= @DSYMUTIL@ -DSYMUTIL_PATH= @DSYMUTIL_PATH@ GNULD= @GNULD@ @@ -151,8 +150,6 @@ CONFINCLUDEDIR= $(exec_prefix)/include PLATLIBDIR= @PLATLIBDIR@ SCRIPTDIR= $(prefix)/$(PLATLIBDIR) ABIFLAGS= @ABIFLAGS@ -# executable name for shebangs -EXENAME= $(BINDIR)/python$(LDVERSION)$(EXE) # Variable used by ensurepip WHEEL_PKG_DIR= @WHEEL_PKG_DIR@ @@ -212,6 +209,12 @@ ENSUREPIP= @ENSUREPIP@ LIBMPDEC_A= Modules/_decimal/libmpdec/libmpdec.a LIBEXPAT_A= Modules/expat/libexpat.a +# OpenSSL options for setup.py so sysconfig can pick up AC_SUBST() vars. +OPENSSL_INCLUDES=@OPENSSL_INCLUDES@ +OPENSSL_LIBS=@OPENSSL_LIBS@ +OPENSSL_LDFLAGS=@OPENSSL_LDFLAGS@ +OPENSSL_RPATH=@OPENSSL_RPATH@ + # Module state, compiler flags and linker flags # Empty CFLAGS and LDFLAGS are omitted. # states: @@ -219,7 +222,7 @@ LIBEXPAT_A= Modules/expat/libexpat.a # * missing: build dependency is missing # * disabled: module is disabled # * n/a: module is not available on the current platform -# MODULE_EGG_STATE=yes # yes, missing, disabled, n/a +# MODULE_EGG=yes # yes, missing, disabled, n/a # MODULE_EGG_CFLAGS= # MODULE_EGG_LDFLAGS= @MODULE_BLOCK@ @@ -244,8 +247,8 @@ SRCDIRS= @SRCDIRS@ SUBDIRSTOO= Include Lib Misc # assets for Emscripten browser builds -WASM_ASSETS_DIR=.$(prefix) -WASM_STDLIB=$(WASM_ASSETS_DIR)/lib/python$(VERSION)/os.py +WASM_ASSETS_DIR=".$(prefix)" +WASM_STDLIB="$(WASM_ASSETS_DIR)/local/lib/python$(VERSION)/os.py" # Files and directories to be distributed CONFIGFILES= configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in @@ -287,11 +290,8 @@ HOSTRUNNER= @HOSTRUNNER@ PYTHON_FOR_REGEN?=@PYTHON_FOR_REGEN@ UPDATE_FILE=$(PYTHON_FOR_REGEN) $(srcdir)/Tools/scripts/update_file.py PYTHON_FOR_BUILD=@PYTHON_FOR_BUILD@ -# Single-platform builds depend on $(BUILDPYTHON). Cross builds use an -# external "build Python" and have an empty PYTHON_FOR_BUILD_DEPS. -PYTHON_FOR_BUILD_DEPS=@PYTHON_FOR_BUILD_DEPS@ -# Single-platform builds use Programs/_freeze_module.c for bootstrapping and +# Normal builds use Programs/_freeze_module.c for bootstrapping and # ./_bootstrap_python Programs/_freeze_module.py for remaining modules # Cross builds use an external "build Python" for all modules. PYTHON_FOR_FREEZE=@PYTHON_FOR_FREEZE@ @@ -313,8 +313,7 @@ PROFILE_TASK= @PROFILE_TASK@ # report files for gcov / lcov coverage report COVERAGE_INFO= $(abs_builddir)/coverage.info COVERAGE_REPORT=$(abs_builddir)/lcov-report -COVERAGE_LCOV_OPTIONS=--rc lcov_branch_coverage=1 -COVERAGE_REPORT_OPTIONS=--rc lcov_branch_coverage=1 --branch-coverage --title "CPython $(VERSION) LCOV report [commit $(shell $(GITVERSION))]" +COVERAGE_REPORT_OPTIONS=--no-branch-coverage --title "CPython lcov report" # === Definitions added by makesetup === @@ -338,6 +337,10 @@ IO_OBJS= \ Modules/_io/bytesio.o \ Modules/_io/stringio.o +########################################################################## + +LIBFFI_INCLUDEDIR= @LIBFFI_INCLUDEDIR@ + ########################################################################## # Parser @@ -390,7 +393,6 @@ PYTHON_OBJS= \ Python/getcopyright.o \ Python/getplatform.o \ Python/getversion.o \ - Python/ceval_gil.o \ Python/hamt.o \ Python/hashtable.o \ Python/import.o \ @@ -437,6 +439,7 @@ PYTHON_OBJS= \ # Objects OBJECT_OBJS= \ Objects/abstract.o \ + Objects/accu.o \ Objects/boolobject.o \ Objects/bytes_methods.o \ Objects/bytearrayobject.o \ @@ -478,9 +481,7 @@ OBJECT_OBJS= \ Objects/unicodeobject.o \ Objects/unicodectype.o \ Objects/unionobject.o \ - Objects/weakrefobject.o \ - Objects/perf_trampoline.o \ - @PERF_TRAMPOLINE_OBJ@ + Objects/weakrefobject.o DEEPFREEZE_OBJS = Python/deepfreeze/deepfreeze.o @@ -579,10 +580,9 @@ LIBEXPAT_HEADERS= \ # Default target all: @DEF_MAKE_ALL_RULE@ -build_all: check-clean-src $(BUILDPYTHON) platform sharedmods \ - gdbhooks Programs/_testembed scripts checksharedmods rundsymutil -build_wasm: check-clean-src $(BUILDPYTHON) platform sharedmods \ - python-config checksharedmods +build_all: check-clean-src $(BUILDPYTHON) oldsharedmods sharedmods gdbhooks \ + Programs/_testembed python-config +build_wasm: check-clean-src $(BUILDPYTHON) platform oldsharedmods python-config # Check that the source is clean when building out of source. check-clean-src: @@ -645,39 +645,30 @@ profile-opt: profile-run-stamp -rm -f profile-clean-stamp $(MAKE) @DEF_MAKE_RULE@ CFLAGS_NODIST="$(CFLAGS_NODIST) $(PGO_PROF_USE_FLAG)" LDFLAGS_NODIST="$(LDFLAGS_NODIST)" -bolt-opt: @PREBOLT_RULE@ - rm -f *.fdata - @LLVM_BOLT@ ./$(BUILDPYTHON) -instrument -instrumentation-file-append-pid -instrumentation-file=$(abspath $(BUILDPYTHON).bolt) -o $(BUILDPYTHON).bolt_inst - ./$(BUILDPYTHON).bolt_inst $(PROFILE_TASK) || true - @MERGE_FDATA@ $(BUILDPYTHON).*.fdata > $(BUILDPYTHON).fdata - @LLVM_BOLT@ ./$(BUILDPYTHON) -o $(BUILDPYTHON).bolt -data=$(BUILDPYTHON).fdata -update-debug-sections -reorder-blocks=ext-tsp -reorder-functions=hfsort+ -split-functions=3 -icf=1 -inline-all -split-eh -reorder-functions-use-hot-size -peepholes=all -jump-tables=aggressive -inline-ap -indirect-call-promotion=all -dyno-stats -use-gnu-stack -frame-opt=hot - rm -f *.fdata - rm -f $(BUILDPYTHON).bolt_inst - mv $(BUILDPYTHON).bolt $(BUILDPYTHON) - # Compile and run with gcov .PHONY=coverage coverage-lcov coverage-report coverage: @echo "Building with support for coverage checking:" $(MAKE) clean - $(MAKE) @DEF_MAKE_RULE@ CFLAGS="$(CFLAGS) -O0 -pg --coverage" LDFLAGS="$(LDFLAGS) --coverage" + $(MAKE) @DEF_MAKE_RULE@ CFLAGS="$(CFLAGS) -O0 -pg --coverage" LIBS="$(LIBS) --coverage" coverage-lcov: @echo "Creating Coverage HTML report with LCOV:" @rm -f $(COVERAGE_INFO) @rm -rf $(COVERAGE_REPORT) - @lcov $(COVERAGE_LCOV_OPTIONS) --capture \ - --directory $(abs_builddir) \ + @lcov --capture --directory $(abs_builddir) \ --base-directory $(realpath $(abs_builddir)) \ --path $(realpath $(abs_srcdir)) \ --output-file $(COVERAGE_INFO) @ # remove 3rd party modules, system headers and internal files with @ # debug, test or dummy functions. - @lcov $(COVERAGE_LCOV_OPTIONS) --remove $(COVERAGE_INFO) \ + @lcov --remove $(COVERAGE_INFO) \ '*/Modules/_blake2/impl/*' \ '*/Modules/_ctypes/libffi*/*' \ '*/Modules/_decimal/libmpdec/*' \ '*/Modules/expat/*' \ + '*/Modules/zlib/*' \ + '*/Include/*' \ '*/Modules/xx*.c' \ '*/Python/pyfpe.c' \ '*/Python/pystrcmp.c' \ @@ -685,8 +676,7 @@ coverage-lcov: '/usr/local/include/*' \ '/usr/lib/gcc/*' \ --output-file $(COVERAGE_INFO) - @genhtml $(COVERAGE_INFO) \ - --output-directory $(COVERAGE_REPORT) \ + @genhtml $(COVERAGE_INFO) --output-directory $(COVERAGE_REPORT) \ $(COVERAGE_REPORT_OPTIONS) @echo @echo "lcov report at $(COVERAGE_REPORT)/index.html" @@ -705,13 +695,12 @@ coverage-report: regen-token regen-frozen .PHONY=clinic clinic: check-clean-src $(srcdir)/Modules/_blake2/blake2s_impl.c $(PYTHON_FOR_REGEN) $(srcdir)/Tools/clinic/clinic.py --make --srcdir $(srcdir) - $(PYTHON_FOR_REGEN) $(srcdir)/Tools/scripts/generate_global_objects.py # Build the interpreter $(BUILDPYTHON): Programs/python.o $(LINK_PYTHON_DEPS) $(LINKCC) $(PY_CORE_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/python.o $(LINK_PYTHON_OBJS) $(LIBS) $(MODLIBS) $(SYSLIBS) -platform: $(PYTHON_FOR_BUILD_DEPS) pybuilddir.txt +platform: $(BUILDPYTHON) pybuilddir.txt $(RUNSHARED) $(PYTHON_FOR_BUILD) -c 'import sys ; from sysconfig import get_platform ; print("%s-%d.%d" % (get_platform(), *sys.version_info[:2]))' >platform # Create build directory and generate the sysconfig build-time data there. @@ -721,7 +710,7 @@ platform: $(PYTHON_FOR_BUILD_DEPS) pybuilddir.txt # problems by creating a dummy pybuilddir.txt just to allow interpreter # initialization to succeed. It will be overwritten by generate-posix-vars # or removed in case of failure. -pybuilddir.txt: $(PYTHON_FOR_BUILD_DEPS) +pybuilddir.txt: $(BUILDPYTHON) @echo "none" > ./pybuilddir.txt $(RUNSHARED) $(PYTHON_FOR_BUILD) -S -m sysconfig --generate-posix-vars ;\ if test $$? -ne 0 ; then \ @@ -735,6 +724,22 @@ $(srcdir)/Modules/_blake2/blake2s_impl.c: $(srcdir)/Modules/_blake2/blake2b_impl $(PYTHON_FOR_REGEN) $(srcdir)/Modules/_blake2/blake2b2s.py $(PYTHON_FOR_REGEN) $(srcdir)/Tools/clinic/clinic.py -f $@ +# Build the shared modules +# Under GNU make, MAKEFLAGS are sorted and normalized; the 's' for +# -s, --silent or --quiet is always the first char. +# Under BSD make, MAKEFLAGS might be " -s -v x=y". +# Ignore macros passed by GNU make, passed after -- +sharedmods: $(BUILDPYTHON) pybuilddir.txt @LIBMPDEC_INTERNAL@ @LIBEXPAT_INTERNAL@ + @case "`echo X $$MAKEFLAGS | sed 's/^X //;s/ -- .*//'`" in \ + *\ -s*|s*) quiet="-q";; \ + *) quiet="";; \ + esac; \ + echo "$(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ + $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build"; \ + $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ + $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build + + # Build static library $(LIBRARY): $(LIBRARY_OBJS) -rm -f $@ @@ -808,13 +813,12 @@ $(DLLLIBRARY) libpython$(LDVERSION).dll.a: $(LIBRARY_OBJS) # wasm assets directory is relative to current build dir, e.g. "./usr/local". # --preload-file turns a relative asset path into an absolute path. -.PHONY: wasm_stdlib -wasm_stdlib: $(WASM_STDLIB) $(WASM_STDLIB): $(srcdir)/Lib/*.py $(srcdir)/Lib/*/*.py \ $(srcdir)/Tools/wasm/wasm_assets.py \ - Makefile pybuilddir.txt Modules/Setup.local + Makefile pybuilddir.txt Modules/Setup.local \ + python.html python.worker.js $(PYTHON_FOR_BUILD) $(srcdir)/Tools/wasm/wasm_assets.py \ - --buildroot . --prefix $(prefix) + --builddir . --prefix $(prefix) python.html: $(srcdir)/Tools/wasm/python.html python.worker.js @cp $(srcdir)/Tools/wasm/python.html $@ @@ -824,7 +828,11 @@ python.worker.js: $(srcdir)/Tools/wasm/python.worker.js ########################################################################## # Build static libmpdec.a -LIBMPDEC_CFLAGS=@LIBMPDEC_CFLAGS@ $(PY_STDMODULE_CFLAGS) $(CCSHARED) +LIBMPDEC_CFLAGS=$(PY_STDMODULE_CFLAGS) $(CCSHARED) @LIBMPDEC_CFLAGS@ + +# for setup.py +DECIMAL_CFLAGS=@LIBMPDEC_CFLAGS@ +DECIMAL_LDFLAGS=@LIBMPDEC_LDFLAGS@ # "%.o: %c" is not portable Modules/_decimal/libmpdec/basearith.o: $(srcdir)/Modules/_decimal/libmpdec/basearith.c $(LIBMPDEC_HEADERS) $(PYTHON_HEADERS) @@ -878,7 +886,11 @@ $(LIBMPDEC_A): $(LIBMPDEC_OBJS) ########################################################################## # Build static libexpat.a -LIBEXPAT_CFLAGS=@LIBEXPAT_CFLAGS@ $(PY_STDMODULE_CFLAGS) $(CCSHARED) +LIBEXPAT_CFLAGS=$(PY_STDMODULE_CFLAGS) $(CCSHARED) @LIBEXPAT_CFLAGS@ + +# for setup.py +EXPAT_CFLAGS=@LIBEXPAT_CFLAGS@ +EXPAT_LDFLAGS=@LIBEXPAT_LDFLAGS@ Modules/expat/xmlparse.o: $(srcdir)/Modules/expat/xmlparse.c $(LIBEXPAT_HEADERS) $(PYTHON_HEADERS) $(CC) -c $(LIBEXPAT_CFLAGS) -o $@ $(srcdir)/Modules/expat/xmlparse.c @@ -896,7 +908,7 @@ $(LIBEXPAT_A): $(LIBEXPAT_OBJS) # create relative links from build/lib.platform/egg.so to Modules/egg.so # pybuilddir.txt is created too late. We cannot use it in Makefile # targets. ln --relative is not portable. -sharedmods: $(SHAREDMODS) pybuilddir.txt +oldsharedmods: $(SHAREDMODS) pybuilddir.txt @target=`cat pybuilddir.txt`; \ $(MKDIR_P) $$target; \ for mod in X $(SHAREDMODS); do \ @@ -905,26 +917,6 @@ sharedmods: $(SHAREDMODS) pybuilddir.txt fi; \ done -# dependency on BUILDPYTHON ensures that the target is run last -checksharedmods: sharedmods $(PYTHON_FOR_BUILD_DEPS) $(BUILDPYTHON) - @$(RUNSHARED) $(PYTHON_FOR_BUILD) $(srcdir)/Tools/scripts/check_extension_modules.py - -rundsymutil: sharedmods $(PYTHON_FOR_BUILD_DEPS) $(BUILDPYTHON) - @if [ ! -z $(DSYMUTIL) ] ; then \ - echo $(DSYMUTIL_PATH) $(BUILDPYTHON); \ - $(DSYMUTIL_PATH) $(BUILDPYTHON); \ - if test -f $(LDLIBRARY); then \ - echo $(DSYMUTIL_PATH) $(LDLIBRARY); \ - $(DSYMUTIL_PATH) $(LDLIBRARY); \ - fi; \ - for mod in X $(SHAREDMODS); do \ - if test $$mod != X; then \ - echo $(DSYMUTIL_PATH) $$mod; \ - $(DSYMUTIL_PATH) $$mod; \ - fi; \ - done \ - fi - Modules/Setup.local: @# Create empty Setup.local when file was deleted by user echo "# Edit this file for local setup changes" > $@ @@ -945,7 +937,7 @@ Makefile Modules/config.c: Makefile.pre \ $(SHELL) $(MAKESETUP) -c $(srcdir)/Modules/config.c.in \ -s Modules \ Modules/Setup.local \ - Modules/Setup.stdlib \ + @MODULES_SETUP_STDLIB@ \ Modules/Setup.bootstrap \ $(srcdir)/Modules/Setup @mv config.c Modules @@ -1206,14 +1198,6 @@ regen-global-objects: $(srcdir)/Tools/scripts/generate_global_objects.py ############################################################################ # ABI -regen-abidump: all - @$(MKDIR_P) $(srcdir)/Doc/data/ - abidw "libpython$(LDVERSION).so" --no-architecture --out-file $(srcdir)/Doc/data/python$(LDVERSION).abi.new - @$(UPDATE_FILE) --create $(srcdir)/Doc/data/python$(LDVERSION).abi $(srcdir)/Doc/data/python$(LDVERSION).abi.new - -check-abidump: all - abidiff $(srcdir)/Doc/data/python$(LDVERSION).abi "libpython$(LDVERSION).so" --drop-private-types --no-architecture --no-added-syms - regen-limited-abi: all $(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Tools/scripts/stable_abi.py --generate-all $(srcdir)/Misc/stable_abi.toml @@ -1254,10 +1238,10 @@ Modules/getpath.o: $(srcdir)/Modules/getpath.c Python/frozen_modules/getpath.h M -o $@ $(srcdir)/Modules/getpath.c Programs/python.o: $(srcdir)/Programs/python.c - $(CC) -c $(PY_CORE_CFLAGS) -o $@ $(srcdir)/Programs/python.c + $(MAINCC) -c $(PY_CORE_CFLAGS) -o $@ $(srcdir)/Programs/python.c Programs/_testembed.o: $(srcdir)/Programs/_testembed.c Programs/test_frozenmain.h - $(CC) -c $(PY_CORE_CFLAGS) -o $@ $(srcdir)/Programs/_testembed.c + $(MAINCC) -c $(PY_CORE_CFLAGS) -o $@ $(srcdir)/Programs/_testembed.c Modules/_sre/sre.o: $(srcdir)/Modules/_sre/sre.c $(srcdir)/Modules/_sre/sre.h $(srcdir)/Modules/_sre/sre_constants.h $(srcdir)/Modules/_sre/sre_lib.h @@ -1440,7 +1424,8 @@ regen-opcode-targets: $(srcdir)/Python/opcode_targets.h.new $(UPDATE_FILE) $(srcdir)/Python/opcode_targets.h $(srcdir)/Python/opcode_targets.h.new -Python/ceval.o: $(srcdir)/Python/opcode_targets.h $(srcdir)/Python/condvar.h +Python/ceval.o: $(srcdir)/Python/opcode_targets.h $(srcdir)/Python/ceval_gil.h \ + $(srcdir)/Python/condvar.h Python/frozen.o: $(FROZEN_FILES_OUT) @@ -1575,12 +1560,10 @@ PYTHON_HEADERS= \ $(srcdir)/Include/cpython/objimpl.h \ $(srcdir)/Include/cpython/odictobject.h \ $(srcdir)/Include/cpython/picklebufobject.h \ - $(srcdir)/Include/cpython/pthread_stubs.h \ $(srcdir)/Include/cpython/pyctype.h \ $(srcdir)/Include/cpython/pydebug.h \ $(srcdir)/Include/cpython/pyerrors.h \ $(srcdir)/Include/cpython/pyfpe.h \ - $(srcdir)/Include/cpython/pyframe.h \ $(srcdir)/Include/cpython/pylifecycle.h \ $(srcdir)/Include/cpython/pymem.h \ $(srcdir)/Include/cpython/pystate.h \ @@ -1596,6 +1579,7 @@ PYTHON_HEADERS= \ $(srcdir)/Include/cpython/weakrefobject.h \ \ $(srcdir)/Include/internal/pycore_abstract.h \ + $(srcdir)/Include/internal/pycore_accu.h \ $(srcdir)/Include/internal/pycore_asdl.h \ $(srcdir)/Include/internal/pycore_ast.h \ $(srcdir)/Include/internal/pycore_ast_state.h \ @@ -1611,7 +1595,6 @@ PYTHON_HEADERS= \ $(srcdir)/Include/internal/pycore_condvar.h \ $(srcdir)/Include/internal/pycore_context.h \ $(srcdir)/Include/internal/pycore_dict.h \ - $(srcdir)/Include/internal/pycore_descrobject.h \ $(srcdir)/Include/internal/pycore_dtoa.h \ $(srcdir)/Include/internal/pycore_exceptions.h \ $(srcdir)/Include/internal/pycore_fileutils.h \ @@ -1640,9 +1623,7 @@ PYTHON_HEADERS= \ $(srcdir)/Include/internal/pycore_pylifecycle.h \ $(srcdir)/Include/internal/pycore_pymem.h \ $(srcdir)/Include/internal/pycore_pystate.h \ - $(srcdir)/Include/internal/pycore_range.h \ $(srcdir)/Include/internal/pycore_runtime.h \ - $(srcdir)/Include/internal/pycore_runtime_init_generated.h \ $(srcdir)/Include/internal/pycore_runtime_init.h \ $(srcdir)/Include/internal/pycore_signal.h \ $(srcdir)/Include/internal/pycore_sliceobject.h \ @@ -1682,7 +1663,7 @@ cleantest: all # Run a basic set of regression tests. # This excludes some tests that are particularly resource-intensive. -test: all +test: @DEF_MAKE_RULE@ platform $(TESTRUNNER) $(TESTOPTS) # Run the full test suite twice - once without .pyc files, and once with. @@ -1692,7 +1673,7 @@ test: all # the bytecode read from a .pyc file had the bug, sometimes the directly # generated bytecode. This is sometimes a very shy bug needing a lot of # sample data. -testall: all +testall: @DEF_MAKE_RULE@ platform -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f $(TESTPYTHON) -E $(srcdir)/Lib/compileall.py -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f @@ -1701,7 +1682,7 @@ testall: all # Run the test suite for both architectures in a Universal build on OSX. # Must be run on an Intel box. -testuniversal: all +testuniversal: @DEF_MAKE_RULE@ platform @if [ `arch` != 'i386' ]; then \ echo "This can only be used on OSX/i386" ;\ exit 1 ;\ @@ -1712,16 +1693,12 @@ testuniversal: all # Like testall, but with only one pass and without multiple processes. # Run an optional script to include information about the build environment. -buildbottest: all +buildbottest: all platform -@if which pybuildbot.identify >/dev/null 2>&1; then \ pybuildbot.identify "CC='$(CC)'" "CXX='$(CXX)'"; \ fi $(TESTRUNNER) -j 1 -u all -W --slowest --fail-env-changed --timeout=$(TESTTIMEOUT) $(TESTOPTS) -# Like testall, but run Python tests with HOSTRUNNER directly. -hostrunnertest: all - $(RUNSHARED) $(HOSTRUNNER) ./$(BUILDPYTHON) -m test -u all $(TESTOPTS) - pythoninfo: all $(RUNSHARED) $(HOSTRUNNER) ./$(BUILDPYTHON) -m test.pythoninfo @@ -1731,7 +1708,7 @@ QUICKTESTOPTS= $(TESTOPTS) -x test_subprocess test_io test_lib2to3 \ test_multiprocessing_forkserver \ test_mailbox test_nntplib test_socket test_poll \ test_select test_zipfile test_concurrent_futures -quicktest: all +quicktest: @DEF_MAKE_RULE@ platform $(TESTRUNNER) $(QUICKTESTOPTS) # SSL tests @@ -1742,10 +1719,6 @@ multisslcompile: all multissltest: all $(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Tools/ssl/multissltests.py -# All install targets use the "all" target as synchronization point to -# prevent race conditions with PGO builds. PGO builds use recursive make, -# which can lead to two parallel `./python setup.py build` processes that -# step on each others toes. install: @FRAMEWORKINSTALLFIRST@ commoninstall bininstall maninstall @FRAMEWORKINSTALLLAST@ if test "x$(ENSUREPIP)" != "xno" ; then \ case $(ENSUREPIP) in \ @@ -1768,25 +1741,20 @@ altinstall: commoninstall commoninstall: check-clean-src @FRAMEWORKALTINSTALLFIRST@ \ altbininstall libinstall inclinstall libainstall \ - sharedinstall altmaninstall \ + sharedinstall oldsharedinstall altmaninstall \ @FRAMEWORKALTINSTALLLAST@ # Install shared libraries enabled by Setup DESTDIRS= $(exec_prefix) $(LIBDIR) $(BINLIBDEST) $(DESTSHARED) -sharedinstall: $(DESTSHARED) all +oldsharedinstall: $(DESTSHARED) $(SHAREDMODS) @for i in X $(SHAREDMODS); do \ if test $$i != X; then \ echo $(INSTALL_SHARED) $$i $(DESTSHARED)/`basename $$i`; \ $(INSTALL_SHARED) $$i $(DESTDIR)$(DESTSHARED)/`basename $$i`; \ - if test -d "$$i.dSYM"; then \ - echo $(DSYMUTIL_PATH) $(DESTDIR)$(DESTSHARED)/`basename $$i`; \ - $(DSYMUTIL_PATH) $(DESTDIR)$(DESTSHARED)/`basename $$i`; \ - fi; \ fi; \ done - $(DESTSHARED): @for i in $(DESTDIRS); \ do \ @@ -1847,23 +1815,6 @@ altbininstall: $(BUILDPYTHON) @FRAMEWORKPYTHONW@ -output $(DESTDIR)$(BINDIR)/python$(VERSION)-intel64$(EXE) \ $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE); \ fi - # Install macOS debug information (if available) - if test -d "$(BUILDPYTHON).dSYM"; then \ - echo $(DSYMUTIL_PATH) $(DESTDIR)$(BINDIR)/python$(LDVERSION)$(EXE); \ - $(DSYMUTIL_PATH) $(DESTDIR)$(BINDIR)/python$(LDVERSION)$(EXE); \ - fi - if test "$(PYTHONFRAMEWORKDIR)" = "no-framework" ; then \ - if test -d "$(LDLIBRARY).dSYM"; then \ - echo $(DSYMUTIL_PATH) $(DESTDIR)$(LIBDIR)/$(INSTSONAME); \ - $(DSYMUTIL_PATH) $(DESTDIR)$(LIBDIR)/$(INSTSONAME); \ - fi \ - else \ - if test -d "$(LDLIBRARY).dSYM"; then \ - echo $(DSYMUTIL_PATH) $(DESTDIR)$(PYTHONFRAMEWORKPREFIX)/$(INSTSONAME); \ - $(DSYMUTIL_PATH) $(DESTDIR)$(PYTHONFRAMEWORKPREFIX)/$(INSTSONAME); \ - fi \ - fi - bininstall: altbininstall if test ! -d $(DESTDIR)$(LIBPC); then \ @@ -1958,8 +1909,13 @@ LIBSUBDIRS= asyncio \ xmlrpc \ zoneinfo \ __phello__ -TESTSUBDIRS= distutils/tests \ +TESTSUBDIRS= ctypes/test \ + distutils/tests \ idlelib/idle_test \ + lib2to3/tests \ + lib2to3/tests/data \ + lib2to3/tests/data/fixers \ + lib2to3/tests/data/fixers/myfixes \ test test/audiodata \ test/capath test/cjkencodings \ test/data test/decimaltestdata \ @@ -1968,7 +1924,6 @@ TESTSUBDIRS= distutils/tests \ test/libregrtest test/sndhdrdata \ test/subprocessdata test/support \ test/test_asyncio \ - test/test_ctypes \ test/test_email test/test_email/data \ test/test_import \ test/test_import/data \ @@ -1982,6 +1937,15 @@ TESTSUBDIRS= distutils/tests \ test/test_importlib \ test/test_importlib/builtin \ test/test_importlib/data \ + test/test_importlib/data01 \ + test/test_importlib/data01/subdirectory \ + test/test_importlib/data02 \ + test/test_importlib/data02/one \ + test/test_importlib/data02/two \ + test/test_importlib/data03 \ + test/test_importlib/data03/namespace \ + test/test_importlib/data03/namespace/portion1 \ + test/test_importlib/data03/namespace/portion2 \ test/test_importlib/extension \ test/test_importlib/frozen \ test/test_importlib/import_ \ @@ -2005,36 +1969,23 @@ TESTSUBDIRS= distutils/tests \ test/test_importlib/namespace_pkgs/project3 \ test/test_importlib/namespace_pkgs/project3/parent \ test/test_importlib/namespace_pkgs/project3/parent/child \ + test/test_importlib/namespacedata01 \ test/test_importlib/partial \ test/test_importlib/resources \ - test/test_importlib/resources/data01 \ - test/test_importlib/resources/data01/subdirectory \ - test/test_importlib/resources/data02 \ - test/test_importlib/resources/data02/one \ - test/test_importlib/resources/data02/two \ - test/test_importlib/resources/data03 \ - test/test_importlib/resources/data03/namespace \ - test/test_importlib/resources/data03/namespace/portion1 \ - test/test_importlib/resources/data03/namespace/portion2 \ - test/test_importlib/resources/namespacedata01 \ - test/test_importlib/resources/zipdata01 \ - test/test_importlib/resources/zipdata02 \ test/test_importlib/source \ + test/test_importlib/zipdata01 \ + test/test_importlib/zipdata02 \ test/test_json \ - test/test_lib2to3 \ - test/test_lib2to3/data \ - test/test_lib2to3/data/fixers \ - test/test_lib2to3/data/fixers/myfixes \ test/test_peg_generator \ - test/test_tkinter \ test/test_tools \ - test/test_ttk \ test/test_warnings test/test_warnings/data \ test/test_zoneinfo test/test_zoneinfo/data \ - test/test_unittest test/test_unittest/testmock \ test/tracedmodules \ test/xmltestdata test/xmltestdata/c14n-20 \ - test/ziptestdata + test/ziptestdata \ + tkinter/test tkinter/test/test_tkinter \ + tkinter/test/test_ttk \ + unittest/test unittest/test/testmock TEST_MODULES=@TEST_MODULES@ libinstall: all $(srcdir)/Modules/xxmodule.c @@ -2112,17 +2063,17 @@ libinstall: all $(srcdir)/Modules/xxmodule.c -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \ -j0 -d $(LIBDEST) -f \ - -x 'bad_coding|badsyntax|site-packages|test/test_lib2to3/data' \ + -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ $(DESTDIR)$(LIBDEST) -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ $(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \ -j0 -d $(LIBDEST) -f \ - -x 'bad_coding|badsyntax|site-packages|test/test_lib2to3/data' \ + -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ $(DESTDIR)$(LIBDEST) -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ $(PYTHON_FOR_BUILD) -Wi -OO $(DESTDIR)$(LIBDEST)/compileall.py \ -j0 -d $(LIBDEST) -f \ - -x 'bad_coding|badsyntax|site-packages|test/test_lib2to3/data' \ + -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ $(DESTDIR)$(LIBDEST) -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \ @@ -2146,7 +2097,7 @@ libinstall: all $(srcdir)/Modules/xxmodule.c python-config: $(srcdir)/Misc/python-config.in Misc/python-config.sh @ # Substitution happens here, as the completely-expanded BINDIR @ # is not available in configure - sed -e "s,@EXENAME@,$(EXENAME)," < $(srcdir)/Misc/python-config.in >python-config.py + sed -e "s,@EXENAME@,$(BINDIR)/python$(LDVERSION)$(EXE)," < $(srcdir)/Misc/python-config.in >python-config.py @ # Replace makefile compat. variable references with shell script compat. ones; $(VAR) -> ${VAR} LC_ALL=C sed -e 's,\$$(\([A-Za-z0-9_]*\)),\$$\{\1\},g' < Misc/python-config.sh >python-config @ # On Darwin, always use the python version of the script, the shell @@ -2156,29 +2107,6 @@ python-config: $(srcdir)/Misc/python-config.in Misc/python-config.sh cp python-config.py python-config; \ fi -# macOS' make seems to ignore a dependency on a -# "$(BUILD_SCRIPTS_DIR): $(MKDIR_P) $@" rule. -BUILD_SCRIPTS_DIR=build/scripts-$(VERSION) -SCRIPT_2TO3=$(BUILD_SCRIPTS_DIR)/2to3-$(VERSION) -SCRIPT_IDLE=$(BUILD_SCRIPTS_DIR)/idle$(VERSION) -SCRIPT_PYDOC=$(BUILD_SCRIPTS_DIR)/pydoc$(VERSION) - -$(SCRIPT_2TO3): $(srcdir)/Tools/scripts/2to3 - @$(MKDIR_P) $(BUILD_SCRIPTS_DIR) - sed -e "s,/usr/bin/env python3,$(EXENAME)," < $(srcdir)/Tools/scripts/2to3 > $@ - @chmod +x $@ - -$(SCRIPT_IDLE): $(srcdir)/Tools/scripts/idle3 - @$(MKDIR_P) $(BUILD_SCRIPTS_DIR) - sed -e "s,/usr/bin/env python3,$(EXENAME)," < $(srcdir)/Tools/scripts/idle3 > $@ - @chmod +x $@ - -$(SCRIPT_PYDOC): $(srcdir)/Tools/scripts/pydoc3 - @$(MKDIR_P) $(BUILD_SCRIPTS_DIR) - sed -e "s,/usr/bin/env python3,$(EXENAME)," < $(srcdir)/Tools/scripts/pydoc3 > $@ - @chmod +x $@ - -scripts: $(SCRIPT_2TO3) $(SCRIPT_IDLE) $(SCRIPT_PYDOC) python-config # Install the include files INCLDIRSTOMAKE=$(INCLUDEDIR) $(CONFINCLUDEDIR) $(INCLUDEPY) $(CONFINCLUDEPY) @@ -2225,7 +2153,7 @@ LIBPL= @LIBPL@ # pkgconfig directory LIBPC= $(LIBDIR)/pkgconfig -libainstall: all scripts +libainstall: @DEF_MAKE_RULE@ python-config @for i in $(LIBDIR) $(LIBPL) $(LIBPC) $(BINDIR); \ do \ if test ! -d $(DESTDIR)$$i; then \ @@ -2261,9 +2189,6 @@ libainstall: all scripts $(INSTALL_SCRIPT) $(srcdir)/install-sh $(DESTDIR)$(LIBPL)/install-sh $(INSTALL_SCRIPT) python-config.py $(DESTDIR)$(LIBPL)/python-config.py $(INSTALL_SCRIPT) python-config $(DESTDIR)$(BINDIR)/python$(LDVERSION)-config - $(INSTALL_SCRIPT) $(SCRIPT_2TO3) $(DESTDIR)$(BINDIR)/2to3-$(VERSION) - $(INSTALL_SCRIPT) $(SCRIPT_IDLE) $(DESTDIR)$(BINDIR)/idle$(VERSION) - $(INSTALL_SCRIPT) $(SCRIPT_PYDOC) $(DESTDIR)$(BINDIR)/pydoc$(VERSION) @if [ -s Modules/python.exp -a \ "`echo $(MACHDEP) | sed 's/^\(...\).*/\1/'`" = "aix" ]; then \ echo; echo "Installing support files for building shared extension modules on AIX:"; \ @@ -2280,6 +2205,17 @@ libainstall: all scripts else true; \ fi +# Install the dynamically loadable modules +# This goes into $(exec_prefix) +sharedinstall: sharedmods + $(RUNSHARED) $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \ + --prefix=$(prefix) \ + --install-scripts=$(BINDIR) \ + --install-platlib=$(DESTSHARED) \ + --root=$(DESTDIR)/ + -rm $(DESTDIR)$(DESTSHARED)/_sysconfigdata_$(ABIFLAGS)_$(MACHDEP)_$(MULTIARCH).py + -rm -r $(DESTDIR)$(DESTSHARED)/__pycache__ + # Here are a couple of targets for MacOSX again, to install a full # framework-based Python. frameworkinstall installs everything, the # subtargets install specific parts. Much of the actual work is offloaded to @@ -2364,9 +2300,6 @@ config.status: $(srcdir)/configure .PRECIOUS: config.status $(BUILDPYTHON) Makefile Makefile.pre -Objects/asm_trampoline.o: $(srcdir)/Objects/asm_trampoline.S - $(CC) -c $(PY_CORE_CFLAGS) -o $@ $< - # Some make's put the object file in the current directory .c.o: $(CC) -c $(PY_CORE_CFLAGS) -o $@ $< @@ -2441,7 +2374,6 @@ clean-retain-profile: pycremoval find . -name '*.[oa]' -exec rm -f {} ';' find . -name '*.s[ol]' -exec rm -f {} ';' find . -name '*.so.[0-9]*.[0-9]*' -exec rm -f {} ';' - find . -name '*.lto' -exec rm -f {} ';' find . -name '*.wasm' -exec rm -f {} ';' find . -name '*.lst' -exec rm -f {} ';' find build -name 'fficonfig.h' -exec rm -f {} ';' || true @@ -2451,7 +2383,7 @@ clean-retain-profile: pycremoval -rm -f Lib/lib2to3/*Grammar*.pickle -rm -f _bootstrap_python -rm -f python.html python*.js python.data python*.symbols python*.map - -rm -f $(WASM_STDLIB) + -rm -rf $(WASM_STDLIB) -rm -f Programs/_testembed Programs/_freeze_module -rm -f Python/deepfreeze/*.[co] -rm -f Python/frozen_modules/*.h @@ -2505,7 +2437,7 @@ distclean: clobber -exec rm -f {} ';' # Check that all symbols exported by libpython start with "Py" or "_Py" -smelly: all +smelly: @DEF_MAKE_RULE@ $(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Tools/scripts/smelly.py # Find files with funny names @@ -2540,7 +2472,7 @@ funny: -o -print # Perform some verification checks on any modified files. -patchcheck: all +patchcheck: @DEF_MAKE_RULE@ $(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Tools/scripts/patchcheck.py check-limited-abi: all @@ -2557,30 +2489,26 @@ update-config: Python/thread.o: @THREADHEADERS@ $(srcdir)/Python/condvar.h # Declare targets that aren't real files -.PHONY: all build_all build_wasm check-clean-src -.PHONY: sharedmods checksharedmods test quicktest rundsymutil -.PHONY: install altinstall sharedinstall bininstall altbininstall -.PHONY: maninstall libinstall inclinstall libainstall +.PHONY: all build_all build_wasm sharedmods check-clean-src oldsharedmods test quicktest +.PHONY: install altinstall oldsharedinstall bininstall altbininstall +.PHONY: maninstall libinstall inclinstall libainstall sharedinstall .PHONY: frameworkinstall frameworkinstallframework frameworkinstallstructure .PHONY: frameworkinstallmaclib frameworkinstallapps frameworkinstallunixtools .PHONY: frameworkaltinstallunixtools recheck clean clobber distclean .PHONY: smelly funny patchcheck touch altmaninstall commoninstall .PHONY: clean-retain-profile profile-removal run_profile_task .PHONY: build_all_generate_profile build_all_merge_profile -.PHONY: gdbhooks scripts +.PHONY: gdbhooks ########################################################################## -# Module dependencies and platform-specific files - -MODULE_DEPS=$(PYTHON_HEADERS) Modules/config.c $(EXPORTSYMS) +# Module dependencies MODULE_CMATH_DEPS=$(srcdir)/Modules/_math.h MODULE_MATH_DEPS=$(srcdir)/Modules/_math.h MODULE_PYEXPAT_DEPS=$(LIBEXPAT_HEADERS) @LIBEXPAT_INTERNAL@ MODULE_UNICODEDATA_DEPS=$(srcdir)/Modules/unicodedata_db.h $(srcdir)/Modules/unicodename_db.h MODULE__BLAKE2_DEPS=$(srcdir)/Modules/_blake2/impl/blake2-config.h $(srcdir)/Modules/_blake2/impl/blake2-impl.h $(srcdir)/Modules/_blake2/impl/blake2.h $(srcdir)/Modules/_blake2/impl/blake2b-load-sse2.h $(srcdir)/Modules/_blake2/impl/blake2b-load-sse41.h $(srcdir)/Modules/_blake2/impl/blake2b-ref.c $(srcdir)/Modules/_blake2/impl/blake2b-round.h $(srcdir)/Modules/_blake2/impl/blake2b.c $(srcdir)/Modules/_blake2/impl/blake2s-load-sse2.h $(srcdir)/Modules/_blake2/impl/blake2s-load-sse41.h $(srcdir)/Modules/_blake2/impl/blake2s-load-xop.h $(srcdir)/Modules/_blake2/impl/blake2s-ref.c $(srcdir)/Modules/_blake2/impl/blake2s-round.h $(srcdir)/Modules/_blake2/impl/blake2s.c $(srcdir)/Modules/_blake2/blake2module.h $(srcdir)/Modules/hashlib.h -MODULE__CTYPES_DEPS=$(srcdir)/Modules/_ctypes/ctypes.h $(srcdir)/Modules/_ctypes/darwin/dlfcn.h -MODULE__CTYPES_MALLOC_CLOSURE=@MODULE__CTYPES_MALLOC_CLOSURE@ +MODULE__CTYPES_DEPS=$(srcdir)/Modules/_ctypes/ctypes.h MODULE__DECIMAL_DEPS=$(srcdir)/Modules/_decimal/docstrings.h $(LIBMPDEC_HEADERS) @LIBMPDEC_INTERNAL@ MODULE__ELEMENTTREE_DEPS=$(srcdir)/Modules/pyexpat.c $(LIBEXPAT_HEADERS) @LIBEXPAT_INTERNAL@ MODULE__HASHLIB_DEPS=$(srcdir)/Modules/hashlib.h @@ -2590,9 +2518,9 @@ MODULE__SHA1_DEPS=$(srcdir)/Modules/hashlib.h MODULE__SHA256_DEPS=$(srcdir)/Modules/hashlib.h MODULE__SHA3_DEPS=$(srcdir)/Modules/_sha3/sha3.c $(srcdir)/Modules/_sha3/sha3.h $(srcdir)/Modules/hashlib.h MODULE__SHA512_DEPS=$(srcdir)/Modules/hashlib.h -MODULE__SOCKET_DEPS=$(srcdir)/Modules/socketmodule.h $(srcdir)/Modules/addrinfo.h $(srcdir)/Modules/getaddrinfo.c $(srcdir)/Modules/getnameinfo.c +MODULE__SOCKET_DEPS=$(srcdir)/Modules/socketmodule.h MODULE__SSL_DEPS=$(srcdir)/Modules/_ssl.h $(srcdir)/Modules/_ssl/cert.c $(srcdir)/Modules/_ssl/debughelpers.c $(srcdir)/Modules/_ssl/misc.c $(srcdir)/Modules/_ssl_data.h $(srcdir)/Modules/_ssl_data_111.h $(srcdir)/Modules/_ssl_data_300.h $(srcdir)/Modules/socketmodule.h -MODULE__TESTCAPI_DEPS=$(srcdir)/Modules/testcapi_long.h $(srcdir)/Modules/_testcapi/parts.h +MODULE__TESTCAPI_DEPS=$(srcdir)/Modules/testcapi_long.h MODULE__SQLITE3_DEPS=$(srcdir)/Modules/_sqlite/connection.h $(srcdir)/Modules/_sqlite/cursor.h $(srcdir)/Modules/_sqlite/microprotocols.h $(srcdir)/Modules/_sqlite/module.h $(srcdir)/Modules/_sqlite/prepare_protocol.h $(srcdir)/Modules/_sqlite/row.h $(srcdir)/Modules/_sqlite/util.h # IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/Misc/ACKS b/Misc/ACKS index 0edea9219d05ef..d0e18303434f22 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -198,7 +198,6 @@ Gawain Bolton Carl Friedrich Bolz-Tereick Forest Bond Gregory Bond -David Bonner Angelin Booz Médéric Boquien Matias Bordese @@ -549,7 +548,6 @@ Nils Fischbeck Frederik Fix Tom Flanagan Matt Fleming -Sean Fleming Hernán Martínez Foffani Benjamin Fogle Artem Fokin @@ -609,7 +607,6 @@ Marius Gedminas Jan-Philip Gehrcke Thomas Gellekum Gabriel Genellina -Philip Georgi Christos Georgiou Elazar (אלעזר) Gershuni Ben Gertzfield @@ -919,7 +916,6 @@ Sanyam Khurana Tyler Kieft Mads Kiilerich Jason Killen -Derek D. Kim Jan Kim Taek Joo Kim Sam Kimbrel @@ -937,7 +933,6 @@ Ron Klatchko Reid Kleckner Carsten Klein Bastian Kleineidam -Joel Klimont Bob Kline Matthias Klose Jeremy Kloth @@ -1212,7 +1207,6 @@ Gideon Mitchell Tim Mitchell Zubin Mithra Florian Mladitsch -Kevin Modzelewski Doug Moen Jakub Molinski Juliette Monsel @@ -1419,7 +1413,6 @@ John Popplewell Matheus Vieira Portela Davin Potts Guillaume Pratte -Pedro Pregueiro Florian Preinstorfer Alex Prengère Amrit Prem @@ -1442,7 +1435,6 @@ Ram Rachum Jeffrey Rackauckas Jérôme Radix Burton Radons -Kirill (python273) R. Abhilash Raj Shorya Raj Ajith Ramachandran @@ -1463,7 +1455,6 @@ Edward K. Ream Chris Rebert Marc Recht John Redford -Kalyan Reddy Terry J. Reedy Gareth Rees John Reese @@ -1596,7 +1587,6 @@ Ed Schouten Scott Schram Robin Schreiber Chad J. Schroeder -Simon-Martin Schroeder Christian Schubert Sam Schulenburg Andreas Schwab @@ -1988,7 +1978,6 @@ Gordon Worley Darren Worrall Thomas Wouters Daniel Wozniak -Simon Wrede Marcin Niemira Wei Wu Heiko Wundram diff --git a/Misc/HISTORY b/Misc/HISTORY index 8ca89854ed13b5..570638869f92ed 100644 --- a/Misc/HISTORY +++ b/Misc/HISTORY @@ -21790,7 +21790,7 @@ Library x == y is False, and x != y is True. This is akin to the change made for mixed-type comparisons of datetime objects in 2.3a2; more info about the rationale is in the NEWS entry for that. See also SF bug - report <https://bugs.python.org/issue693121>. + report <http://www.python.org/sf/693121>. - On Unix platforms, if os.listdir() is called with a Unicode argument, it now returns Unicode strings. (This behavior was added earlier @@ -22025,7 +22025,7 @@ Extension modules now. today() and now() now round system timestamps to the closest - microsecond <https://bugs.python.org/issue661086>. This repairs an + microsecond <http://www.python.org/sf/661086>. This repairs an irritation most likely seen on Windows systems. In dt.astimezone(tz), if tz.utcoffset(dt) returns a duration, @@ -22080,7 +22080,7 @@ Extension modules datetime.fromtimestamp(): Like datetime.now() above, this had less than useful behavior when the optional tinzo argument was specified. See - also SF bug report <https://bugs.python.org/issue660872>. + also SF bug report <http://www.python.org/sf/660872>. date and datetime comparison: In order to prevent comparison from falling back to the default compare-object-addresses strategy, these @@ -22139,10 +22139,10 @@ Library dependent path modules (e.g. ntpath.py) rather than os.py, so these variables are now available via os.path. They continue to be available from the os module. - (see <https://bugs.python.org/issue680789>). + (see <http://www.python.org/sf/680789>). - array.array was added to the types repr.py knows about (see - <https://bugs.python.org/issue680789>). + <http://www.python.org/sf/680789>). - The new pickletools.py contains lots of documentation about pickle internals, and supplies some helpers for working with pickles, such as @@ -22527,7 +22527,7 @@ Core and builtins potential drawback is that list.sort() may require temp space of len(list)*2 bytes (``*4`` on a 64-bit machine). It's therefore possible for list.sort() to raise MemoryError now, even if a comparison function - does not. See <https://bugs.python.org/issue587076> for full details. + does not. See <http://www.python.org/sf/587076> for full details. - All standard iterators now ensure that, once StopIteration has been raised, all future calls to next() on the same iterator will also diff --git a/Misc/NEWS.d/3.10.0a1.rst b/Misc/NEWS.d/3.10.0a1.rst index 471811662644bf..1c1c2d54e8c20a 100644 --- a/Misc/NEWS.d/3.10.0a1.rst +++ b/Misc/NEWS.d/3.10.0a1.rst @@ -2204,7 +2204,7 @@ Handle cases where the ``end_lineno`` is ``None`` on .. nonce: zwl5Hc .. section: Library -``distutils`` upload creates SHA2-256 and Blake2b-256 digests. MD5 +:mod:`distutils` upload creates SHA2-256 and Blake2b-256 digests. MD5 digests is skipped if platform blocks MD5. .. diff --git a/Misc/NEWS.d/3.10.0a3.rst b/Misc/NEWS.d/3.10.0a3.rst index 699a0dd9e8d7c4..4f182e8e3f1f0c 100644 --- a/Misc/NEWS.d/3.10.0a3.rst +++ b/Misc/NEWS.d/3.10.0a3.rst @@ -763,7 +763,7 @@ as a positional-only argument. .. nonce: qLkNh8 .. section: Library -Enum: fix regression involving inheriting a multiply inherited enum +Enum: fix regression involving inheriting a multiply-inherited enum .. diff --git a/Misc/NEWS.d/3.10.0a4.rst b/Misc/NEWS.d/3.10.0a4.rst index 95f9319668db45..beac530fcb28f6 100644 --- a/Misc/NEWS.d/3.10.0a4.rst +++ b/Misc/NEWS.d/3.10.0a4.rst @@ -446,7 +446,7 @@ In ``importlib.metadata``: - ``EntryPoint`` objects now expose a ``.dist`` object referencing the ``Distribution`` when constructed from a ``Distribution``. - Add support for package discovery under package normalization rules. - The object returned by ``metadata()`` now has a -formally defined protocol called ``PackageMetadata`` with declared support +formally-defined protocol called ``PackageMetadata`` with declared support for the ``.get_all()`` method. - Synced with importlib_metadata 3.3. .. diff --git a/Misc/NEWS.d/3.10.0b1.rst b/Misc/NEWS.d/3.10.0b1.rst index f29fc6632db26c..2a3d358edde902 100644 --- a/Misc/NEWS.d/3.10.0b1.rst +++ b/Misc/NEWS.d/3.10.0b1.rst @@ -1142,7 +1142,7 @@ name>`` instead of ``SQL logic error``. Patch by Erlend E. Aasland. .. nonce: GK9a0l .. section: Library -Install schemes in ``distutils.command.install`` are now loaded from +Install schemes in :mod:`distutils.command.install` are now loaded from :mod:`sysconfig`. .. @@ -1152,7 +1152,7 @@ Install schemes in ``distutils.command.install`` are now loaded from .. nonce: SenEje .. section: Library -``distutils.sysconfig`` has been merged to :mod:`sysconfig`. +:mod:`distutils.sysconfig` has been merged to :mod:`sysconfig`. .. diff --git a/Misc/NEWS.d/3.11.0a1.rst b/Misc/NEWS.d/3.11.0a1.rst index 7670e482ede5b6..33841d9e4e39bb 100644 --- a/Misc/NEWS.d/3.11.0a1.rst +++ b/Misc/NEWS.d/3.11.0a1.rst @@ -1445,7 +1445,7 @@ asynchronous. .. nonce: NOwcDJ .. section: Library -Fix clang rpath issue in ``distutils``. The UnixCCompiler now uses +Fix clang rpath issue in :mod:`distutils`. The UnixCCompiler now uses correct clang option to add a runtime library directory (rpath) to a shared library. @@ -2798,7 +2798,7 @@ documentation for deprecations. .. nonce: rvyf2v .. section: Library -Restore back :func:`parse_makefile` in ``distutils.sysconfig`` because it +Restore back :func:`parse_makefile` in :mod:`distutils.sysconfig` because it behaves differently than the similar implementation in :mod:`sysconfig`. .. diff --git a/Misc/NEWS.d/3.11.0a2.rst b/Misc/NEWS.d/3.11.0a2.rst index 8ae8847d846b12..1f742a29ebcc9b 100644 --- a/Misc/NEWS.d/3.11.0a2.rst +++ b/Misc/NEWS.d/3.11.0a2.rst @@ -702,6 +702,16 @@ details. Patch by Jochem Schulenklopper. .. +.. bpo: 10572 +.. date: 2021-01-07-01-25-38 +.. nonce: gEEZ9z +.. section: Library + +Move :mod:`sqlite3` tests to ``/Lib/test/test_sqlite3``. Patch by Erlend E. +Aasland. + +.. + .. bpo: 41374 .. date: 2020-07-27-19-21-05 .. nonce: cd-kFL @@ -946,16 +956,6 @@ use a stricter regular expression. Patch by Victor Stinner. .. -.. bpo: 10572 -.. date: 2021-01-07-01-25-38 -.. nonce: gEEZ9z -.. section: Tests - -Rename :mod:`sqlite3` tests from ``test_sqlite`` to ``test_sqlite3``, and -relocate them to ``Lib/test/test_sqlite3``. Patch by Erlend E. Aasland. - -.. - .. bpo: 43158 .. date: 2021-11-01-12-51-46 .. nonce: fghS6w diff --git a/Misc/NEWS.d/3.11.0a4.rst b/Misc/NEWS.d/3.11.0a4.rst index bcb6e8b7bdde31..2391f43e2b7fa9 100644 --- a/Misc/NEWS.d/3.11.0a4.rst +++ b/Misc/NEWS.d/3.11.0a4.rst @@ -694,7 +694,7 @@ removed in the future. .. section: Library :mod:`argparse` raises :exc:`ValueError` with clear message when trying to -render usage for an empty mutually exclusive group. Previously it raised a +render usage for an empty mutually-exclusive group. Previously it raised a cryptic :exc:`IndexError`. .. diff --git a/Misc/NEWS.d/3.11.0a6.rst b/Misc/NEWS.d/3.11.0a6.rst index 68b80e46690dc9..24fc5f05666a63 100644 --- a/Misc/NEWS.d/3.11.0a6.rst +++ b/Misc/NEWS.d/3.11.0a6.rst @@ -1043,8 +1043,7 @@ Respect `--with-suffix` when building on case-insensitive file systems. .. nonce: MD783M .. section: Build -Building Python now requires a C11 compiler. Optional C11 features are not -required. +Building Python now requires a C11 compiler without optional C11 features. Patch by Victor Stinner. .. diff --git a/Misc/NEWS.d/3.11.0a7.rst b/Misc/NEWS.d/3.11.0a7.rst index 8e7ccd4d6771ee..5eaf8ec1f63c03 100644 --- a/Misc/NEWS.d/3.11.0a7.rst +++ b/Misc/NEWS.d/3.11.0a7.rst @@ -1099,7 +1099,7 @@ wrong. .. section: Library Fix handling of the ``stacklevel`` argument to logging functions in the -:mod:`logging` module so that it is consistent across all logging functions +:mod:`logging` module so that it is consistent accross all logging functions and, as advertised, similar to the ``stacklevel`` argument used in :meth:`~warnings.warn`. diff --git a/Misc/NEWS.d/3.11.0b1.rst b/Misc/NEWS.d/3.11.0b1.rst index d8c2ec0a799711..c135eff4598e40 100644 --- a/Misc/NEWS.d/3.11.0b1.rst +++ b/Misc/NEWS.d/3.11.0b1.rst @@ -109,7 +109,7 @@ methods are called only on objects of the correct type. .. nonce: 2PpaIN .. section: Core and Builtins -Deoptimize statically allocated code objects during ``Py_FINALIZE()`` so +Deoptimize statically-allocated code objects during ``Py_FINALIZE()`` so that future ``_PyCode_Quicken`` calls always start with unquickened code. .. diff --git a/Misc/NEWS.d/3.5.1rc1.rst b/Misc/NEWS.d/3.5.1rc1.rst index dc247ce2096a7d..d06817ccb950ec 100644 --- a/Misc/NEWS.d/3.5.1rc1.rst +++ b/Misc/NEWS.d/3.5.1rc1.rst @@ -900,7 +900,7 @@ Kurenkov. .. nonce: QhQ9RD .. section: Library -Fixed functools.singledispatch on classes with false metaclasses. Patch by +Fixed functools.singledispatch on classes with falsy metaclasses. Patch by Ethan Furman. .. diff --git a/Misc/NEWS.d/3.5.3rc1.rst b/Misc/NEWS.d/3.5.3rc1.rst index bf4ef9302c9d1d..2307fccbf6f92d 100644 --- a/Misc/NEWS.d/3.5.3rc1.rst +++ b/Misc/NEWS.d/3.5.3rc1.rst @@ -832,7 +832,7 @@ In the traceback module, restore the formatting of exception messages like .. nonce: 3UhyPo .. section: Library -Allow false values to be used for msg parameter of subTest(). +Allow falsy values to be used for msg parameter of subTest(). .. diff --git a/Misc/NEWS.d/3.6.0b2.rst b/Misc/NEWS.d/3.6.0b2.rst index 9413c6e01917d5..627465e887bc18 100644 --- a/Misc/NEWS.d/3.6.0b2.rst +++ b/Misc/NEWS.d/3.6.0b2.rst @@ -460,7 +460,7 @@ In the traceback module, restore the formatting of exception messages like .. nonce: 3UhyPo .. section: Library -Allow false values to be used for msg parameter of subTest(). +Allow falsy values to be used for msg parameter of subTest(). .. diff --git a/Misc/NEWS.d/3.7.0a1.rst b/Misc/NEWS.d/3.7.0a1.rst index 9bada1b76be7a8..244bb37e7c61d6 100644 --- a/Misc/NEWS.d/3.7.0a1.rst +++ b/Misc/NEWS.d/3.7.0a1.rst @@ -3149,7 +3149,7 @@ they are finished in multiprocessing.Pool. .. section: Library The mode argument of os.makedirs() no longer affects the file permission -bits of newly created intermediate-level directories. +bits of newly-created intermediate-level directories. .. @@ -4453,7 +4453,7 @@ In the traceback module, restore the formatting of exception messages like .. nonce: 3UhyPo .. section: Library -Allow false values to be used for msg parameter of subTest(). +Allow falsy values to be used for msg parameter of subTest(). .. diff --git a/Misc/NEWS.d/3.8.0a1.rst b/Misc/NEWS.d/3.8.0a1.rst index 991bbc128670b2..09b858d250c337 100644 --- a/Misc/NEWS.d/3.8.0a1.rst +++ b/Misc/NEWS.d/3.8.0a1.rst @@ -17,7 +17,7 @@ malicious or buggy certificate can result into segfault. Vulnerability .. section: Security The :option:`-I` command line option (run Python in isolated mode) is now -also copied by the :mod:`multiprocessing` and ``distutils`` modules when +also copied by the :mod:`multiprocessing` and :mod:`distutils` modules when spawning child processes. Previously, only :option:`-E` and :option:`-s` options (enabled by :option:`-I`) were copied. @@ -361,7 +361,7 @@ the "n" formatter. .. nonce: gjm1LO .. section: Core and Builtins -Fix a possible segfault involving a newly created coroutine. Patch by +Fix a possible segfault involving a newly-created coroutine. Patch by Zackery Spytz. .. @@ -2270,7 +2270,7 @@ last release was in 2000. Mac OS 9 last release was in 2001. .. nonce: laV_IE .. section: Library -:func:`~distutils.utils.check_environ` of ``distutils.utils`` now catches +:func:`~distutils.utils.check_environ` of :mod:`distutils.utils` now catches :exc:`KeyError` on calling :func:`pwd.getpwuid`: don't create the ``HOME`` environment variable in this case. @@ -3070,7 +3070,7 @@ Add deprecation warning when `loop` is used in methods: `asyncio.sleep`, .. nonce: Pr3-iG .. section: Library -ZIP files created by ``distutils`` will now include entries for +ZIP files created by :mod:`distutils` will now include entries for directories. .. @@ -3720,7 +3720,7 @@ Deprecate passing non-ThreadPoolExecutor instances to .. section: Library Restore ``msilib.Win64`` to preserve backwards compatibility since it's -already used by ``distutils``' ``bdist_msi`` command. +already used by :mod:`distutils`' ``bdist_msi`` command. .. diff --git a/Misc/NEWS.d/3.8.0a2.rst b/Misc/NEWS.d/3.8.0a2.rst index 223126145c77f1..1c0abab4c474ac 100644 --- a/Misc/NEWS.d/3.8.0a2.rst +++ b/Misc/NEWS.d/3.8.0a2.rst @@ -356,7 +356,7 @@ Add *headers* optional keyword-only parameter to .. section: Library Fix C implementation of pickle.loads to use importlib's locking mechanisms, -and thereby avoid using partially loaded modules. Patch by Tim Burgess. +and thereby avoid using partially-loaded modules. Patch by Tim Burgess. .. diff --git a/Misc/NEWS.d/3.8.0a4.rst b/Misc/NEWS.d/3.8.0a4.rst index a21de196aa9652..fc952fa9dcc8e1 100644 --- a/Misc/NEWS.d/3.8.0a4.rst +++ b/Misc/NEWS.d/3.8.0a4.rst @@ -338,7 +338,7 @@ unexpected cache miss. .. nonce: MW1TLt .. section: Library -Fix ``distutils.sysconfig`` if :data:`sys.executable` is ``None`` or an +Fix :mod:`distutils.sysconfig` if :data:`sys.executable` is ``None`` or an empty string: use :func:`os.getcwd` to initialize ``project_base``. Fix also the distutils build command: don't use :data:`sys.executable` if it is ``None`` or an empty string. @@ -350,7 +350,7 @@ also the distutils build command: don't use :data:`sys.executable` if it is .. nonce: Fg4EXb .. section: Library -:func:`shutil.which` and ``distutils.spawn.find_executable`` now use +:func:`shutil.which` and :func:`distutils.spawn.find_executable` now use ``os.confstr("CS_PATH")`` if available instead of :data:`os.defpath`, if the ``PATH`` environment variable is not set. Moreover, don't use ``os.confstr("CS_PATH")`` nor :data:`os.defpath` if the ``PATH`` environment diff --git a/Misc/NEWS.d/3.9.0a1.rst b/Misc/NEWS.d/3.9.0a1.rst index eace8755a0d171..45f232f1948d5d 100644 --- a/Misc/NEWS.d/3.9.0a1.rst +++ b/Misc/NEWS.d/3.9.0a1.rst @@ -5769,4 +5769,4 @@ Convert posixmodule.c statically allocated types ``DirEntryType`` and .. section: C API Use singular/plural noun in error message when instantiating an abstract -class with non-overridden abstract method(s). +class with non-overriden abstract method(s). diff --git a/Misc/NEWS.d/3.9.0a5.rst b/Misc/NEWS.d/3.9.0a5.rst index 25342d21d8f0b1..49a118ad7e4308 100644 --- a/Misc/NEWS.d/3.9.0a5.rst +++ b/Misc/NEWS.d/3.9.0a5.rst @@ -623,7 +623,7 @@ connections. .. nonce: 5a822c .. section: Library -Reimplement ``distutils.spawn.spawn`` function with the +Reimplement :func:`distutils.spawn.spawn` function with the :mod:`subprocess` module. .. @@ -1022,7 +1022,7 @@ lock-related objects from :mod:`threading`) around 49-day uptime. .. nonce: MnHdYl .. section: Windows -``distutils`` will no longer statically link :file:`vcruntime140.dll` +:mod:`distutils` will no longer statically link :file:`vcruntime140.dll` when a redistributable version is unavailable. All future releases of CPython will include a copy of this DLL to ensure distributed extensions can continue to load. diff --git a/Misc/NEWS.d/next/Build/2022-05-31-18-04-58.gh-issue-69093.6lSa0C.rst b/Misc/NEWS.d/next/Build/2022-05-31-18-04-58.gh-issue-69093.6lSa0C.rst deleted file mode 100644 index b061d6c2186c10..00000000000000 --- a/Misc/NEWS.d/next/Build/2022-05-31-18-04-58.gh-issue-69093.6lSa0C.rst +++ /dev/null @@ -1 +0,0 @@ -Fix ``Modules/Setup.stdlib.in`` rule for ``_sqlite3`` extension. diff --git a/Misc/NEWS.d/next/Build/2022-06-04-12-53-53.gh-issue-93491.ehM211.rst b/Misc/NEWS.d/next/Build/2022-06-04-12-53-53.gh-issue-93491.ehM211.rst deleted file mode 100644 index b3560fac81d2a9..00000000000000 --- a/Misc/NEWS.d/next/Build/2022-06-04-12-53-53.gh-issue-93491.ehM211.rst +++ /dev/null @@ -1 +0,0 @@ -``configure`` now detects and reports :pep:`11` support tiers. diff --git a/Misc/NEWS.d/next/Build/2022-06-08-14-28-03.gh-issue-93584.0xfHOK.rst b/Misc/NEWS.d/next/Build/2022-06-08-14-28-03.gh-issue-93584.0xfHOK.rst deleted file mode 100644 index 07ca5fad592b2d..00000000000000 --- a/Misc/NEWS.d/next/Build/2022-06-08-14-28-03.gh-issue-93584.0xfHOK.rst +++ /dev/null @@ -1,2 +0,0 @@ -Address race condition in ``Makefile`` when installing a PGO build. All -``test`` and ``install`` targets now depend on ``all`` target. diff --git a/Misc/NEWS.d/next/Build/2022-06-25-23-25-47.gh-issue-94280.YhEyW_.rst b/Misc/NEWS.d/next/Build/2022-06-25-23-25-47.gh-issue-94280.YhEyW_.rst deleted file mode 100644 index 1199e842177d7d..00000000000000 --- a/Misc/NEWS.d/next/Build/2022-06-25-23-25-47.gh-issue-94280.YhEyW_.rst +++ /dev/null @@ -1,3 +0,0 @@ -Updated pegen regeneration script on Windows to find and use Python 3.9 or -higher. Prior to this, pegen regeneration already required 3.9 or higher, -but the script may have used lower versions of Python. diff --git a/Misc/NEWS.d/next/Build/2022-06-27-11-57-15.gh-issue-93939.rv7s8W.rst b/Misc/NEWS.d/next/Build/2022-06-27-11-57-15.gh-issue-93939.rv7s8W.rst deleted file mode 100644 index f9ecf5022e2489..00000000000000 --- a/Misc/NEWS.d/next/Build/2022-06-27-11-57-15.gh-issue-93939.rv7s8W.rst +++ /dev/null @@ -1,2 +0,0 @@ -The ``2to3``, ``idle``, and ``pydoc`` scripts are now generated and installed by -``Makefile`` instead of ``setup.py``. diff --git a/Misc/NEWS.d/next/Build/2022-06-28-09-42-10.gh-issue-93939._VWxKW.rst b/Misc/NEWS.d/next/Build/2022-06-28-09-42-10.gh-issue-93939._VWxKW.rst deleted file mode 100644 index ab873bc839f4e5..00000000000000 --- a/Misc/NEWS.d/next/Build/2022-06-28-09-42-10.gh-issue-93939._VWxKW.rst +++ /dev/null @@ -1,2 +0,0 @@ -C extension modules are now built by ``configure`` and ``make`` -instead of ``distutils`` and ``setup.py``. diff --git a/Misc/NEWS.d/next/Build/2022-06-29-08-58-31.gh-issue-94404.3MadM6.rst b/Misc/NEWS.d/next/Build/2022-06-29-08-58-31.gh-issue-94404.3MadM6.rst deleted file mode 100644 index c7c47533c54ae2..00000000000000 --- a/Misc/NEWS.d/next/Build/2022-06-29-08-58-31.gh-issue-94404.3MadM6.rst +++ /dev/null @@ -1,3 +0,0 @@ -``makesetup`` now works around an issue with sed on macOS and uses correct -CFLAGS for object files that end up in a shared extension. Module CFLAGS -are used before PY_STDMODULE_CFLAGS to avoid clashes with system headers. diff --git a/Misc/NEWS.d/next/Build/2022-06-30-09-57-39.gh-issue-90005.9-pQyR.rst b/Misc/NEWS.d/next/Build/2022-06-30-09-57-39.gh-issue-90005.9-pQyR.rst deleted file mode 100644 index 9b14f767847dad..00000000000000 --- a/Misc/NEWS.d/next/Build/2022-06-30-09-57-39.gh-issue-90005.9-pQyR.rst +++ /dev/null @@ -1 +0,0 @@ -``_dbm`` module dependencies are now detected by configure. diff --git a/Misc/NEWS.d/next/Build/2022-06-30-17-00-54.gh-issue-90005.iiq5qD.rst b/Misc/NEWS.d/next/Build/2022-06-30-17-00-54.gh-issue-90005.iiq5qD.rst deleted file mode 100644 index 62f40b8f95f6ce..00000000000000 --- a/Misc/NEWS.d/next/Build/2022-06-30-17-00-54.gh-issue-90005.iiq5qD.rst +++ /dev/null @@ -1 +0,0 @@ -Fix building ``_ctypes`` extension without ``pkg-config``. diff --git a/Misc/NEWS.d/next/Build/2022-06-30-17-18-23.gh-issue-90005.EIOOla.rst b/Misc/NEWS.d/next/Build/2022-06-30-17-18-23.gh-issue-90005.EIOOla.rst deleted file mode 100644 index 90a2dd486c1956..00000000000000 --- a/Misc/NEWS.d/next/Build/2022-06-30-17-18-23.gh-issue-90005.EIOOla.rst +++ /dev/null @@ -1,5 +0,0 @@ -Dependencies of :mod:`readline` and :mod:`curses` module are now detected in -``configure`` script with ``pkg-config``. Only ``ncurses`` / ``ncursesw`` -are detected automatically. The old ``curses`` library is not configured -automatically. Workaround for missing ``termcap`` or ``tinfo`` library -has been removed. diff --git a/Misc/NEWS.d/next/Build/2022-07-08-10-28-23.gh-issue-94682.ZtGt_0.rst b/Misc/NEWS.d/next/Build/2022-07-08-10-28-23.gh-issue-94682.ZtGt_0.rst deleted file mode 100644 index 60717a15bcc271..00000000000000 --- a/Misc/NEWS.d/next/Build/2022-07-08-10-28-23.gh-issue-94682.ZtGt_0.rst +++ /dev/null @@ -1 +0,0 @@ -Build and test with OpenSSL 1.1.1q diff --git a/Misc/NEWS.d/next/Build/2022-07-12-13-39-18.gh-issue-94773.koHKm5.rst b/Misc/NEWS.d/next/Build/2022-07-12-13-39-18.gh-issue-94773.koHKm5.rst deleted file mode 100644 index ed7e40c91103d6..00000000000000 --- a/Misc/NEWS.d/next/Build/2022-07-12-13-39-18.gh-issue-94773.koHKm5.rst +++ /dev/null @@ -1,2 +0,0 @@ -``deepfreeze.py`` now supports code object with frozensets that contain -incompatible, unsortable types. diff --git a/Misc/NEWS.d/next/Build/2022-07-13-10-13-10.gh-issue-94801.3xUB24.rst b/Misc/NEWS.d/next/Build/2022-07-13-10-13-10.gh-issue-94801.3xUB24.rst deleted file mode 100644 index 5caf84f96da131..00000000000000 --- a/Misc/NEWS.d/next/Build/2022-07-13-10-13-10.gh-issue-94801.3xUB24.rst +++ /dev/null @@ -1,2 +0,0 @@ -``configure`` now uses custom flags like ``ZLIB_CFLAGS`` and ``ZLIB_LIBS`` -when searching for headers and libraries. diff --git a/Misc/NEWS.d/next/Build/2022-07-14-02-45-44.gh-issue-94841.lLRTdf.rst b/Misc/NEWS.d/next/Build/2022-07-14-02-45-44.gh-issue-94841.lLRTdf.rst deleted file mode 100644 index f7ad4f88a51db0..00000000000000 --- a/Misc/NEWS.d/next/Build/2022-07-14-02-45-44.gh-issue-94841.lLRTdf.rst +++ /dev/null @@ -1 +0,0 @@ -Fix the possible performance regression of :c:func:`PyObject_Free` compiled with MSVC version 1932. diff --git a/Misc/NEWS.d/next/Build/2022-07-14-11-13-26.gh-issue-94847.s3Kr5p.rst b/Misc/NEWS.d/next/Build/2022-07-14-11-13-26.gh-issue-94847.s3Kr5p.rst deleted file mode 100644 index a6d1e7277da4c0..00000000000000 --- a/Misc/NEWS.d/next/Build/2022-07-14-11-13-26.gh-issue-94847.s3Kr5p.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fixed ``_decimal`` module build issue on GCC when compiling with LTO and -pydebug. Debug builds no longer force inlining of functions. diff --git a/Misc/NEWS.d/next/Build/2022-07-21-09-17-01.gh-issue-95085.E9x2S_.rst b/Misc/NEWS.d/next/Build/2022-07-21-09-17-01.gh-issue-95085.E9x2S_.rst deleted file mode 100644 index 02dbd2b8b3118f..00000000000000 --- a/Misc/NEWS.d/next/Build/2022-07-21-09-17-01.gh-issue-95085.E9x2S_.rst +++ /dev/null @@ -1,2 +0,0 @@ -Platforms ``wasm32-unknown-emscripten`` and ``wasm32-unknown-wasi`` have -been promoted to :pep:`11` tier 3 platform support. diff --git a/Misc/NEWS.d/next/Build/2022-07-23-21-39-09.gh-issue-95174.7cYMZR.rst b/Misc/NEWS.d/next/Build/2022-07-23-21-39-09.gh-issue-95174.7cYMZR.rst deleted file mode 100644 index 72ce183ac8329d..00000000000000 --- a/Misc/NEWS.d/next/Build/2022-07-23-21-39-09.gh-issue-95174.7cYMZR.rst +++ /dev/null @@ -1 +0,0 @@ -Python now skips missing :mod:`socket` functions and methods on WASI. WASI can only create sockets from existing fd / accept and has no netdb. diff --git a/Misc/NEWS.d/next/Build/2022-07-25-08-59-35.gh-issue-95174.g8woUW.rst b/Misc/NEWS.d/next/Build/2022-07-25-08-59-35.gh-issue-95174.g8woUW.rst deleted file mode 100644 index 05f29955072c54..00000000000000 --- a/Misc/NEWS.d/next/Build/2022-07-25-08-59-35.gh-issue-95174.g8woUW.rst +++ /dev/null @@ -1,2 +0,0 @@ -Python now detects missing ``dup`` function in WASI and works around some -missing :mod:`errno`, :mod:`select`, and :mod:`socket` constants. diff --git a/Misc/NEWS.d/next/Build/2022-07-25-09-48-43.gh-issue-95145.ZNS3dj.rst b/Misc/NEWS.d/next/Build/2022-07-25-09-48-43.gh-issue-95145.ZNS3dj.rst deleted file mode 100644 index c751b5e3adc474..00000000000000 --- a/Misc/NEWS.d/next/Build/2022-07-25-09-48-43.gh-issue-95145.ZNS3dj.rst +++ /dev/null @@ -1,2 +0,0 @@ -wasm32-wasi builds no longer depend on WASIX's pthread stubs. Python now has -its own stubbed pthread API. diff --git a/Misc/NEWS.d/next/Build/2022-07-26-18-13-34.gh-issue-94801.9fREfy.rst b/Misc/NEWS.d/next/Build/2022-07-26-18-13-34.gh-issue-94801.9fREfy.rst deleted file mode 100644 index a58be30e81b057..00000000000000 --- a/Misc/NEWS.d/next/Build/2022-07-26-18-13-34.gh-issue-94801.9fREfy.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix a regression in ``configure`` script that caused some header checks to -ignore custom ``CPPFLAGS``. The regression was introduced in :gh:`94802`. diff --git a/Misc/NEWS.d/next/Build/2022-08-04-15-29-35.gh-issue-93744.svRuqm.rst b/Misc/NEWS.d/next/Build/2022-08-04-15-29-35.gh-issue-93744.svRuqm.rst deleted file mode 100644 index fa9ade25718fcb..00000000000000 --- a/Misc/NEWS.d/next/Build/2022-08-04-15-29-35.gh-issue-93744.svRuqm.rst +++ /dev/null @@ -1,3 +0,0 @@ -Remove the ``configure --with-cxx-main`` build option: it didn't work for -many years. Remove the ``MAINCC`` variable from ``configure`` and -``Makefile``. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Build/2022-08-12-13-06-03.gh-issue-90536.qMpF6p.rst b/Misc/NEWS.d/next/Build/2022-08-12-13-06-03.gh-issue-90536.qMpF6p.rst deleted file mode 100644 index 4605e03915ee63..00000000000000 --- a/Misc/NEWS.d/next/Build/2022-08-12-13-06-03.gh-issue-90536.qMpF6p.rst +++ /dev/null @@ -1,2 +0,0 @@ -Use the BOLT post-link optimizer to improve performance, particularly on -medium-to-large applications. diff --git a/Misc/NEWS.d/next/Build/2022-08-15-10-56-07.gh-issue-95973.Bsswsc.rst b/Misc/NEWS.d/next/Build/2022-08-15-10-56-07.gh-issue-95973.Bsswsc.rst deleted file mode 100644 index d03bc5205ead8e..00000000000000 --- a/Misc/NEWS.d/next/Build/2022-08-15-10-56-07.gh-issue-95973.Bsswsc.rst +++ /dev/null @@ -1,2 +0,0 @@ -Add a new ``--with-dsymutil`` configure option to to link debug information -in macOS. Patch by Pablo Galindo. diff --git a/Misc/NEWS.d/next/Build/2022-08-26-11-09-11.gh-issue-84461.Nsdn_R.rst b/Misc/NEWS.d/next/Build/2022-08-26-11-09-11.gh-issue-84461.Nsdn_R.rst deleted file mode 100644 index 134e9645159a69..00000000000000 --- a/Misc/NEWS.d/next/Build/2022-08-26-11-09-11.gh-issue-84461.Nsdn_R.rst +++ /dev/null @@ -1,3 +0,0 @@ -``wasm32-emscripten`` platform no longer builds :mod:`resource` module, -:func:`~os.getresuid`, :func:`~os.getresgid`, and their setters. The APIs -are stubs and not functional. diff --git a/Misc/NEWS.d/next/Build/2022-08-26-11-50-03.gh-issue-96269.x_J5h0.rst b/Misc/NEWS.d/next/Build/2022-08-26-11-50-03.gh-issue-96269.x_J5h0.rst deleted file mode 100644 index adb605fede5dae..00000000000000 --- a/Misc/NEWS.d/next/Build/2022-08-26-11-50-03.gh-issue-96269.x_J5h0.rst +++ /dev/null @@ -1,3 +0,0 @@ -Shared module targets now depend on new ``MODULE_DEPS`` variable, which -includes ``EXPORTSYMS``. This fixes a build order issue on unsupported AIX -platform. diff --git a/Misc/NEWS.d/next/Build/2022-09-11-14-23-49.gh-issue-96729.W4uBWL.rst b/Misc/NEWS.d/next/Build/2022-09-11-14-23-49.gh-issue-96729.W4uBWL.rst deleted file mode 100644 index b67cd200e2d346..00000000000000 --- a/Misc/NEWS.d/next/Build/2022-09-11-14-23-49.gh-issue-96729.W4uBWL.rst +++ /dev/null @@ -1,2 +0,0 @@ -Ensure that Windows releases built with ``Tools\msi\buildrelease.bat`` are -upgradable to and from official Python releases. diff --git a/Misc/NEWS.d/next/Build/2022-09-12-18-34-51.gh-issue-85936.tX4VCU.rst b/Misc/NEWS.d/next/Build/2022-09-12-18-34-51.gh-issue-85936.tX4VCU.rst deleted file mode 100644 index 302b863a3b1e34..00000000000000 --- a/Misc/NEWS.d/next/Build/2022-09-12-18-34-51.gh-issue-85936.tX4VCU.rst +++ /dev/null @@ -1,2 +0,0 @@ -CPython now uses the ThinLTO option as the default policy if the Clang -compiler accepts the flag. Patch by Dong-hee Na. diff --git a/Misc/NEWS.d/next/C API/2021-10-05-21-59-43.bpo-45383.TVClgf.rst b/Misc/NEWS.d/next/C API/2021-10-05-21-59-43.bpo-45383.TVClgf.rst deleted file mode 100644 index ca1b7a43d29481..00000000000000 --- a/Misc/NEWS.d/next/C API/2021-10-05-21-59-43.bpo-45383.TVClgf.rst +++ /dev/null @@ -1,3 +0,0 @@ -The :c:func:`PyType_FromSpec` API will now find and use a metaclass -based on the provided bases. -An error will be raised if there is a metaclass conflict. diff --git a/Misc/NEWS.d/next/C API/2022-04-13-16-10-55.gh-issue-59121.-B7mKp.rst b/Misc/NEWS.d/next/C API/2022-04-13-16-10-55.gh-issue-59121.-B7mKp.rst deleted file mode 100644 index d52866ea08f713..00000000000000 --- a/Misc/NEWS.d/next/C API/2022-04-13-16-10-55.gh-issue-59121.-B7mKp.rst +++ /dev/null @@ -1 +0,0 @@ -Fixed an assert that prevented ``PyRun_InteractiveOne`` from providing tracebacks when parsing from the provided FD. diff --git a/Misc/NEWS.d/next/C API/2022-05-03-19-35-37.gh-issue-92193.61VoFL.rst b/Misc/NEWS.d/next/C API/2022-05-03-19-35-37.gh-issue-92193.61VoFL.rst deleted file mode 100644 index e0755bb0199491..00000000000000 --- a/Misc/NEWS.d/next/C API/2022-05-03-19-35-37.gh-issue-92193.61VoFL.rst +++ /dev/null @@ -1,5 +0,0 @@ -Add new function :c:func:`PyFunction_SetVectorcall` to the C API -which sets the vectorcall field of a given :c:type:`PyFunctionObject`. - -Warning: extensions using this API must preserve the behavior -of the unaltered function! diff --git a/Misc/NEWS.d/next/C API/2022-05-23-12-31-04.gh-issue-77782.ugC8dn.rst b/Misc/NEWS.d/next/C API/2022-05-23-12-31-04.gh-issue-77782.ugC8dn.rst deleted file mode 100644 index d212f6b977ef93..00000000000000 --- a/Misc/NEWS.d/next/C API/2022-05-23-12-31-04.gh-issue-77782.ugC8dn.rst +++ /dev/null @@ -1,3 +0,0 @@ -Deprecate global configuration variable like -:c:var:`Py_IgnoreEnvironmentFlag`: the :c:func:`Py_InitializeFromConfig` API -should be instead. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/C API/2022-06-03-14-54-41.gh-issue-93466.DDtH0X.rst b/Misc/NEWS.d/next/C API/2022-06-03-14-54-41.gh-issue-93466.DDtH0X.rst deleted file mode 100644 index 0bb65ea2b38786..00000000000000 --- a/Misc/NEWS.d/next/C API/2022-06-03-14-54-41.gh-issue-93466.DDtH0X.rst +++ /dev/null @@ -1,3 +0,0 @@ -Slot IDs in PyType_Spec may not be repeated. The documentation was updated -to mention this. For some cases of repeated slots, PyType_FromSpec and -related functions will now raise an exception. diff --git a/Misc/NEWS.d/next/C API/2022-06-04-13-15-41.gh-issue-93442.4M4NDb.rst b/Misc/NEWS.d/next/C API/2022-06-04-13-15-41.gh-issue-93442.4M4NDb.rst deleted file mode 100644 index f48ed37c814454..00000000000000 --- a/Misc/NEWS.d/next/C API/2022-06-04-13-15-41.gh-issue-93442.4M4NDb.rst +++ /dev/null @@ -1,3 +0,0 @@ -Add C++ overloads for _Py_CAST_impl() to handle 0/NULL. This will allow C++ -extensions that pass 0 or NULL to macros using _Py_CAST() to continue to -compile. diff --git a/Misc/NEWS.d/next/C API/2022-06-06-16-04-14.gh-issue-93503.MHJTu8.rst b/Misc/NEWS.d/next/C API/2022-06-06-16-04-14.gh-issue-93503.MHJTu8.rst deleted file mode 100644 index 3dd292cd778023..00000000000000 --- a/Misc/NEWS.d/next/C API/2022-06-06-16-04-14.gh-issue-93503.MHJTu8.rst +++ /dev/null @@ -1,7 +0,0 @@ -Add two new public functions to the public C-API, -:c:func:`PyEval_SetProfileAllThreads` and :c:func:`PyEval_SetTraceAllThreads`, -that allow to set tracing and profiling functions in all running threads in -addition to the calling one. Also, two analogous functions to the -:mod:`threading` module (:func:`threading.setprofile_all_threads` and -:func:`threading.settrace_all_threads`) that allow to do the same from Python. -Patch by Pablo Galindo diff --git a/Misc/NEWS.d/next/C API/2022-06-10-16-50-27.gh-issue-89546.mX1f10.rst b/Misc/NEWS.d/next/C API/2022-06-10-16-50-27.gh-issue-89546.mX1f10.rst deleted file mode 100644 index 8e6b6d95c7b4ab..00000000000000 --- a/Misc/NEWS.d/next/C API/2022-06-10-16-50-27.gh-issue-89546.mX1f10.rst +++ /dev/null @@ -1,4 +0,0 @@ -:c:func:`PyType_FromMetaclass` (and other ``PyType_From*`` functions) now -check that offsets and the base class's -:c:member:`~PyTypeObject.tp_basicsize` fit in the new class's -``tp_basicsize``. diff --git a/Misc/NEWS.d/next/C API/2022-06-10-23-41-48.gh-issue-91731.fhYUQG.rst b/Misc/NEWS.d/next/C API/2022-06-10-23-41-48.gh-issue-91731.fhYUQG.rst deleted file mode 100644 index 185671ca4fcfb1..00000000000000 --- a/Misc/NEWS.d/next/C API/2022-06-10-23-41-48.gh-issue-91731.fhYUQG.rst +++ /dev/null @@ -1,3 +0,0 @@ -Avoid defining the ``static_assert`` when compiling with C++ 11, where this -is a keyword and redefining it can lead to undefined behavior. Patch by -Pablo Galindo diff --git a/Misc/NEWS.d/next/C API/2022-06-13-21-37-31.gh-issue-91321.DgJFvS.rst b/Misc/NEWS.d/next/C API/2022-06-13-21-37-31.gh-issue-91321.DgJFvS.rst deleted file mode 100644 index 57c39bc8d83c87..00000000000000 --- a/Misc/NEWS.d/next/C API/2022-06-13-21-37-31.gh-issue-91321.DgJFvS.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix the compatibility of the Python C API with C++ older than C++11. Patch by -Victor Stinner. diff --git a/Misc/NEWS.d/next/C API/2022-06-17-13-41-38.gh-issue-93937.uKVTEh.rst b/Misc/NEWS.d/next/C API/2022-06-17-13-41-38.gh-issue-93937.uKVTEh.rst deleted file mode 100644 index c0a0745aa0dd25..00000000000000 --- a/Misc/NEWS.d/next/C API/2022-06-17-13-41-38.gh-issue-93937.uKVTEh.rst +++ /dev/null @@ -1,14 +0,0 @@ -The following frame functions and type are now directly available with -``#include <Python.h>``, it's no longer needed to add ``#include -<frameobject.h>``: - -* :c:func:`PyFrame_Check` -* :c:func:`PyFrame_GetBack` -* :c:func:`PyFrame_GetBuiltins` -* :c:func:`PyFrame_GetGenerator` -* :c:func:`PyFrame_GetGlobals` -* :c:func:`PyFrame_GetLasti` -* :c:func:`PyFrame_GetLocals` -* :c:type:`PyFrame_Type` - -Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/C API/2022-07-12-17-39-32.gh-issue-94731.9CPJNU.rst b/Misc/NEWS.d/next/C API/2022-07-12-17-39-32.gh-issue-94731.9CPJNU.rst deleted file mode 100644 index b7816d28215e7b..00000000000000 --- a/Misc/NEWS.d/next/C API/2022-07-12-17-39-32.gh-issue-94731.9CPJNU.rst +++ /dev/null @@ -1,3 +0,0 @@ -Python again uses C-style casts for most casting operations when compiled -with C++. This may trigger compiler warnings, if they are enabled with e.g. -``-Wold-style-cast `` or ``-Wzero-as-null-pointer-constant`` options for ``g++``. diff --git a/Misc/NEWS.d/next/C API/2022-07-17-18-21-40.gh-issue-94930.gPFGDL.rst b/Misc/NEWS.d/next/C API/2022-07-17-18-21-40.gh-issue-94930.gPFGDL.rst deleted file mode 100644 index 5b79d757b1e4aa..00000000000000 --- a/Misc/NEWS.d/next/C API/2022-07-17-18-21-40.gh-issue-94930.gPFGDL.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix ``SystemError`` raised when :c:func:`PyArg_ParseTupleAndKeywords` is -used with ``#`` in ``(...)`` but without ``PY_SSIZE_T_CLEAN`` defined. diff --git a/Misc/NEWS.d/next/C API/2022-07-19-22-37-40.gh-issue-94936.LGlmKv.rst b/Misc/NEWS.d/next/C API/2022-07-19-22-37-40.gh-issue-94936.LGlmKv.rst deleted file mode 100644 index abef9bb376c895..00000000000000 --- a/Misc/NEWS.d/next/C API/2022-07-19-22-37-40.gh-issue-94936.LGlmKv.rst +++ /dev/null @@ -1,3 +0,0 @@ -Added :c:func:`PyCode_GetVarnames`, :c:func:`PyCode_GetCellvars` and -:c:func:`PyCode_GetFreevars` for accessing ``co_varnames``, ``co_cellvars`` -and ``co_freevars`` respectively via the C API. diff --git a/Misc/NEWS.d/next/C API/2022-07-25-15-54-27.gh-issue-92678.ziZpxz.rst b/Misc/NEWS.d/next/C API/2022-07-25-15-54-27.gh-issue-92678.ziZpxz.rst deleted file mode 100644 index 52473c9dfab946..00000000000000 --- a/Misc/NEWS.d/next/C API/2022-07-25-15-54-27.gh-issue-92678.ziZpxz.rst +++ /dev/null @@ -1,3 +0,0 @@ -Adds unstable C-API functions ``_PyObject_VisitManagedDict`` and -``_PyObject_ClearManagedDict`` to allow C extensions to allow the VM to -manage their object's dictionaries. diff --git a/Misc/NEWS.d/next/C API/2022-07-29-10-41-59.gh-issue-95388.aiRSgr.rst b/Misc/NEWS.d/next/C API/2022-07-29-10-41-59.gh-issue-95388.aiRSgr.rst deleted file mode 100644 index c389d13db6afc2..00000000000000 --- a/Misc/NEWS.d/next/C API/2022-07-29-10-41-59.gh-issue-95388.aiRSgr.rst +++ /dev/null @@ -1,2 +0,0 @@ -Creating :c:data:`immutable types <Py_TPFLAGS_IMMUTABLETYPE>` with mutable -bases is deprecated and is planned to be disabled in Python 3.14. diff --git a/Misc/NEWS.d/next/C API/2022-07-29-15-24-45.gh-issue-93012.-DdGEy.rst b/Misc/NEWS.d/next/C API/2022-07-29-15-24-45.gh-issue-93012.-DdGEy.rst deleted file mode 100644 index 199c2d1fc197dd..00000000000000 --- a/Misc/NEWS.d/next/C API/2022-07-29-15-24-45.gh-issue-93012.-DdGEy.rst +++ /dev/null @@ -1,6 +0,0 @@ -The :const:`Py_TPFLAGS_HAVE_VECTORCALL` flag is now removed from a class -when the class's :py:meth:`~object.__call__` method is reassigned. This -makes vectorcall safe to use with mutable types (i.e. heap types without the -:const:`immutable <Py_TPFLAGS_IMMUTABLETYPE>` flag). Mutable types that do -not override :c:member:`~PyTypeObject.tp_call` now inherit the -:const:`Py_TPFLAGS_HAVE_VECTORCALL` flag. diff --git a/Misc/NEWS.d/next/C API/2022-07-31-21-58-27.gh-issue-95504.wy7B1F.rst b/Misc/NEWS.d/next/C API/2022-07-31-21-58-27.gh-issue-95504.wy7B1F.rst deleted file mode 100644 index 955bdd4c7494f1..00000000000000 --- a/Misc/NEWS.d/next/C API/2022-07-31-21-58-27.gh-issue-95504.wy7B1F.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix sign placement when specifying width or precision in -:c:func:`PyUnicode_FromFormat` and :c:func:`PyUnicode_FromFormatV`. -Patch by Philip Georgi. diff --git a/Misc/NEWS.d/next/C API/2022-08-01-16-21-39.gh-issue-93274.QoDHEu.rst b/Misc/NEWS.d/next/C API/2022-08-01-16-21-39.gh-issue-93274.QoDHEu.rst deleted file mode 100644 index da6cce4a7b283a..00000000000000 --- a/Misc/NEWS.d/next/C API/2022-08-01-16-21-39.gh-issue-93274.QoDHEu.rst +++ /dev/null @@ -1,3 +0,0 @@ -API for implementing vectorcall (:c:data:`Py_TPFLAGS_HAVE_VECTORCALL`, -:c:func:`PyVectorcall_NARGS` and :c:func:`PyVectorcall_Call`) was added to -the limited API and stable ABI. diff --git a/Misc/NEWS.d/next/C API/2022-08-03-13-01-57.gh-issue-92678.DLwONN.rst b/Misc/NEWS.d/next/C API/2022-08-03-13-01-57.gh-issue-92678.DLwONN.rst deleted file mode 100644 index a3a209f5e41338..00000000000000 --- a/Misc/NEWS.d/next/C API/2022-08-03-13-01-57.gh-issue-92678.DLwONN.rst +++ /dev/null @@ -1,2 +0,0 @@ -Support C extensions using managed dictionaries by setting the -``Py_TPFLAGS_MANAGED_DICT`` flag. diff --git a/Misc/NEWS.d/next/C API/2022-08-03-14-39-08.gh-issue-92678.ozFTEx.rst b/Misc/NEWS.d/next/C API/2022-08-03-14-39-08.gh-issue-92678.ozFTEx.rst deleted file mode 100644 index 6bf3d4b1abbf5a..00000000000000 --- a/Misc/NEWS.d/next/C API/2022-08-03-14-39-08.gh-issue-92678.ozFTEx.rst +++ /dev/null @@ -1,2 +0,0 @@ -Restore the 3.10 behavior for multiple inheritance of C extension classes -that store their dictionary at the end of the struct. diff --git a/Misc/NEWS.d/next/C API/2022-08-08-14-36-31.gh-issue-95781.W_G8YW.rst b/Misc/NEWS.d/next/C API/2022-08-08-14-36-31.gh-issue-95781.W_G8YW.rst deleted file mode 100644 index eb2fd7e9da3d81..00000000000000 --- a/Misc/NEWS.d/next/C API/2022-08-08-14-36-31.gh-issue-95781.W_G8YW.rst +++ /dev/null @@ -1,4 +0,0 @@ -An unrecognized format character in :c:func:`PyUnicode_FromFormat` and -:c:func:`PyUnicode_FromFormatV` now sets a :exc:`SystemError`. -In previous versions it caused all the rest of the format string to be -copied as-is to the result string, and any extra arguments discarded. diff --git a/Misc/NEWS.d/next/C API/2022-08-16-16-54-42.gh-issue-95589.6xE1ar.rst b/Misc/NEWS.d/next/C API/2022-08-16-16-54-42.gh-issue-95589.6xE1ar.rst deleted file mode 100644 index 696e3c80db62cf..00000000000000 --- a/Misc/NEWS.d/next/C API/2022-08-16-16-54-42.gh-issue-95589.6xE1ar.rst +++ /dev/null @@ -1,4 +0,0 @@ -Extensions classes that set ``tp_dictoffset`` and ``tp_weaklistoffset`` -lose the support for multiple inheritance, but are now safe. Extension -classes should use :const:`Py_TPFLAGS_MANAGED_DICT` and -:const:`Py_TPFLAGS_MANAGED_WEAKREF` instead. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-01-02-14-53-59.bpo-46142.WayjgT.rst b/Misc/NEWS.d/next/Core and Builtins/2022-01-02-14-53-59.bpo-46142.WayjgT.rst deleted file mode 100644 index 3c62c54289946c..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-01-02-14-53-59.bpo-46142.WayjgT.rst +++ /dev/null @@ -1,3 +0,0 @@ -Make ``--help`` output shorter by moving some info to the new -``--help-env`` and ``--help-xoptions`` command-line options. -Also add ``--help-all`` option to print complete usage. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-03-22-13-12-27.bpo-47091.tJcy-P.rst b/Misc/NEWS.d/next/Core and Builtins/2022-03-22-13-12-27.bpo-47091.tJcy-P.rst deleted file mode 100644 index 72a39b5ebc7109..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-03-22-13-12-27.bpo-47091.tJcy-P.rst +++ /dev/null @@ -1 +0,0 @@ -Improve performance of repetition of :class:`list` and :class:`tuple` by using ``memcpy`` to copy data and performing the reference increments in one step. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-04-24-02-22-10.gh-issue-91432.YPJAK6.rst b/Misc/NEWS.d/next/Core and Builtins/2022-04-24-02-22-10.gh-issue-91432.YPJAK6.rst deleted file mode 100644 index 081dc0f5c334c5..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-04-24-02-22-10.gh-issue-91432.YPJAK6.rst +++ /dev/null @@ -1 +0,0 @@ -Specialized the :opcode:`FOR_ITER` opcode using the PEP 659 machinery diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-05-11-09-16-54.gh-issue-91102.lenv9h.rst b/Misc/NEWS.d/next/Core and Builtins/2022-05-11-09-16-54.gh-issue-91102.lenv9h.rst deleted file mode 100644 index b2bdf9d5322f37..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-05-11-09-16-54.gh-issue-91102.lenv9h.rst +++ /dev/null @@ -1 +0,0 @@ -:meth:`_warnings.warn_explicit` is ported to Argument Clinic. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-05-17-20-41-43.gh-issue-92858.eIXJTn.rst b/Misc/NEWS.d/next/Core and Builtins/2022-05-17-20-41-43.gh-issue-92858.eIXJTn.rst deleted file mode 100644 index fa91d941b1759a..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-05-17-20-41-43.gh-issue-92858.eIXJTn.rst +++ /dev/null @@ -1 +0,0 @@ -Improve error message for some suites with syntax error before ':' diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-05-18-18-34-45.gh-issue-92930.kpYPOb.rst b/Misc/NEWS.d/next/Core and Builtins/2022-05-18-18-34-45.gh-issue-92930.kpYPOb.rst deleted file mode 100644 index cd5d7b3214ea43..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-05-18-18-34-45.gh-issue-92930.kpYPOb.rst +++ /dev/null @@ -1 +0,0 @@ -Fixed a crash in ``_pickle.c`` from mutating collections during ``__reduce__`` or ``persistent_id``. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-05-20-09-25-34.gh-issue-93021.k3Aji2.rst b/Misc/NEWS.d/next/Core and Builtins/2022-05-20-09-25-34.gh-issue-93021.k3Aji2.rst deleted file mode 100644 index 8fdd8dfb4229a7..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-05-20-09-25-34.gh-issue-93021.k3Aji2.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix the :attr:`__text_signature__` for :meth:`__get__` methods implemented -in C. Patch by Jelle Zijlstra. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-05-23-18-36-07.gh-issue-93143.X1Yqxm.rst b/Misc/NEWS.d/next/Core and Builtins/2022-05-23-18-36-07.gh-issue-93143.X1Yqxm.rst deleted file mode 100644 index 03994bcfdb56f8..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-05-23-18-36-07.gh-issue-93143.X1Yqxm.rst +++ /dev/null @@ -1 +0,0 @@ -Avoid ``NULL`` checks for uninitialized local variables by determining at compile time which variables must be initialized. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-05-25-12-30-12.gh-issue-84694.5sjy2w.rst b/Misc/NEWS.d/next/Core and Builtins/2022-05-25-12-30-12.gh-issue-84694.5sjy2w.rst deleted file mode 100644 index c062d28b294868..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-05-25-12-30-12.gh-issue-84694.5sjy2w.rst +++ /dev/null @@ -1,2 +0,0 @@ -The ``--experimental-isolated-subinterpreters`` configure option and -``EXPERIMENTAL_ISOLATED_SUBINTERPRETERS`` macro have been removed. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-05-30-10-22-46.gh-issue-93345.gi1A4L.rst b/Misc/NEWS.d/next/Core and Builtins/2022-05-30-10-22-46.gh-issue-93345.gi1A4L.rst deleted file mode 100644 index 4cdb37cfe46981..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-05-30-10-22-46.gh-issue-93345.gi1A4L.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix a crash in substitution of a ``TypeVar`` in nested generic alias after -``TypeVarTuple``. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-05-30-14-50-03.gh-issue-93283.XDO2ZQ.rst b/Misc/NEWS.d/next/Core and Builtins/2022-05-30-14-50-03.gh-issue-93283.XDO2ZQ.rst deleted file mode 100644 index 550e86988b25a7..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-05-30-14-50-03.gh-issue-93283.XDO2ZQ.rst +++ /dev/null @@ -1,2 +0,0 @@ -Improve error message for invalid syntax of conversion character in f-string -expressions. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-05-30-15-35-42.gh-issue-93354.RZk8gs.rst b/Misc/NEWS.d/next/Core and Builtins/2022-05-30-15-35-42.gh-issue-93354.RZk8gs.rst deleted file mode 100644 index dcfe6a9b6ba3a5..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-05-30-15-35-42.gh-issue-93354.RZk8gs.rst +++ /dev/null @@ -1,3 +0,0 @@ -Use exponential backoff for specialization counters in the interpreter. Can -reduce the number of failed specializations significantly and avoid slowdown -for those parts of a program that are not suitable for specialization. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-05-30-15-51-11.gh-issue-93356.l5wnzW.rst b/Misc/NEWS.d/next/Core and Builtins/2022-05-30-15-51-11.gh-issue-93356.l5wnzW.rst deleted file mode 100644 index 9bb58468197e2d..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-05-30-15-51-11.gh-issue-93356.l5wnzW.rst +++ /dev/null @@ -1 +0,0 @@ -Code for exception handlers is emitted at the end of the code unit's bytecode. This avoids one jump when no exception is raised. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-05-30-19-00-38.gh-issue-93359.zXV3A0.rst b/Misc/NEWS.d/next/Core and Builtins/2022-05-30-19-00-38.gh-issue-93359.zXV3A0.rst deleted file mode 100644 index 36e5e52390d7b4..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-05-30-19-00-38.gh-issue-93359.zXV3A0.rst +++ /dev/null @@ -1,2 +0,0 @@ -Ensure that custom :mod:`ast` nodes without explicit end positions can be -compiled. Patch by Pablo Galindo. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-05-31-16-36-30.gh-issue-93382.Jf6gAj.rst b/Misc/NEWS.d/next/Core and Builtins/2022-05-31-16-36-30.gh-issue-93382.Jf6gAj.rst deleted file mode 100644 index 1fe821edf5a148..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-05-31-16-36-30.gh-issue-93382.Jf6gAj.rst +++ /dev/null @@ -1,2 +0,0 @@ -Cache the result of :c:func:`PyCode_GetCode` function to restore the O(1) -lookup of the :attr:`~types.CodeType.co_code` attribute. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-01-17-47-40.gh-issue-93418.24dJuc.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-01-17-47-40.gh-issue-93418.24dJuc.rst deleted file mode 100644 index 74ad06bfeee7c4..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-06-01-17-47-40.gh-issue-93418.24dJuc.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fixed an assert where an f-string has an equal sign '=' following an -expression, but there's no trailing brace. For example, f"{i=". diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-02-08-28-55.gh-issue-93429.DZTWHx.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-02-08-28-55.gh-issue-93429.DZTWHx.rst deleted file mode 100644 index 02efedaa9645f0..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-06-02-08-28-55.gh-issue-93429.DZTWHx.rst +++ /dev/null @@ -1 +0,0 @@ -``LOAD_METHOD`` instruction has been removed. It was merged back into ``LOAD_ATTR``. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-02-23-00-08.gh-issue-93444.m63DIs.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-02-23-00-08.gh-issue-93444.m63DIs.rst deleted file mode 100644 index 23cc1bd3e0b4d2..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-06-02-23-00-08.gh-issue-93444.m63DIs.rst +++ /dev/null @@ -1 +0,0 @@ -Removed redundant fields from the compiler's basicblock struct: ``b_nofallthrough``, ``b_exit``, ``b_return``. They can be easily calculated from the opcode of the last instruction of the block. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-06-14-28-24.gh-issue-93533.lnC0CC.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-06-14-28-24.gh-issue-93533.lnC0CC.rst deleted file mode 100644 index 2d8ac7068af673..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-06-06-14-28-24.gh-issue-93533.lnC0CC.rst +++ /dev/null @@ -1 +0,0 @@ -Reduce the size of the inline cache for ``LOAD_METHOD`` by 2 bytes. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-09-09-08-29.gh-issue-93621.-_Pn1d.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-09-09-08-29.gh-issue-93621.-_Pn1d.rst deleted file mode 100644 index 388540982fd1ff..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-06-09-09-08-29.gh-issue-93621.-_Pn1d.rst +++ /dev/null @@ -1 +0,0 @@ -Change order of bytecode instructions emitted for :keyword:`with` and :keyword:`async with` to reduce the number of entries in the exception table. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-09-19-19-02.gh-issue-93461.5DqP1e.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-09-19-19-02.gh-issue-93461.5DqP1e.rst deleted file mode 100644 index f6ed14887eae1b..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-06-09-19-19-02.gh-issue-93461.5DqP1e.rst +++ /dev/null @@ -1,6 +0,0 @@ -:func:`importlib.invalidate_caches` now drops entries from -:data:`sys.path_importer_cache` with a relative path as name. This solves a -caching issue when a process changes its current working directory. - -``FileFinder`` no longer inserts a dot in the path, e.g. -``/egg/./spam`` is now ``/egg/spam``. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-10-10-31-18.gh-issue-93662.-7RSC1.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-10-10-31-18.gh-issue-93662.-7RSC1.rst deleted file mode 100644 index e444a00cf7ecc0..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-06-10-10-31-18.gh-issue-93662.-7RSC1.rst +++ /dev/null @@ -1,2 +0,0 @@ -Make sure that the end column offsets are correct in multi-line method -calls. Previously, the end column could precede the column offset. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-10-12-03-17.gh-issue-93671.idkQqG.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-10-12-03-17.gh-issue-93671.idkQqG.rst deleted file mode 100644 index a7757153359517..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-06-10-12-03-17.gh-issue-93671.idkQqG.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix some exponential backtrace case happening with deeply nested sequence -patterns in match statements. Patch by Pablo Galindo diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-10-16-57-35.gh-issue-93678.1WBnHt.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-10-16-57-35.gh-issue-93678.1WBnHt.rst deleted file mode 100644 index 24a0d1042d81ae..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-06-10-16-57-35.gh-issue-93678.1WBnHt.rst +++ /dev/null @@ -1 +0,0 @@ -Refactor the compiler to reduce boilerplate and repetition. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-12-19-31-56.gh-issue-89828.bq02M7.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-12-19-31-56.gh-issue-89828.bq02M7.rst deleted file mode 100644 index 14ca99e1458ce3..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-06-12-19-31-56.gh-issue-89828.bq02M7.rst +++ /dev/null @@ -1,2 +0,0 @@ -:class:`types.GenericAlias` no longer relays the ``__class__`` attribute. -For example, ``isinstance(list[int], type)`` no longer returns ``True``. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-13-10-48-09.gh-issue-93516.yJSait.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-13-10-48-09.gh-issue-93516.yJSait.rst deleted file mode 100644 index 5c22c7a67b6e51..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-06-13-10-48-09.gh-issue-93516.yJSait.rst +++ /dev/null @@ -1,2 +0,0 @@ -Lazily create a table mapping bytecode offsets to line numbers to speed up -calculation of line numbers when tracing. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-13-13-55-34.gh-issue-93516.HILrDl.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-13-13-55-34.gh-issue-93516.HILrDl.rst deleted file mode 100644 index a324c2dbcbe8a6..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-06-13-13-55-34.gh-issue-93516.HILrDl.rst +++ /dev/null @@ -1,2 +0,0 @@ -Store offset of first traceable instruction in code object to avoid having -to recompute it for each instruction when tracing. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-15-11-16-13.gh-issue-93841.06zqX3.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-15-11-16-13.gh-issue-93841.06zqX3.rst deleted file mode 100644 index 179d3808e3b4d5..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-06-15-11-16-13.gh-issue-93841.06zqX3.rst +++ /dev/null @@ -1,3 +0,0 @@ -When built with ``-enable-pystats``, ``sys._stats_on()``, -``sys._stats_off()``, ``sys._stats_clear()`` and ``sys._stats_dump()`` -functions have been added to enable gathering stats for parts of programs. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-15-16-45-53.gh-issue-93678.1I_ZT3.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-15-16-45-53.gh-issue-93678.1I_ZT3.rst deleted file mode 100644 index 3c99fd2ecf6633..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-06-15-16-45-53.gh-issue-93678.1I_ZT3.rst +++ /dev/null @@ -1 +0,0 @@ -Refactor compiler optimisation code so that it no longer needs the ``struct assembler`` and ``struct compiler`` passed around. Instead, each function takes the CFG and other data that it actually needs. This will make it possible to test this code directly. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-16-16-53-22.gh-issue-93911.RDwIiK.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-16-16-53-22.gh-issue-93911.RDwIiK.rst deleted file mode 100644 index 9efa994c1916dd..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-06-16-16-53-22.gh-issue-93911.RDwIiK.rst +++ /dev/null @@ -1 +0,0 @@ -Specialize ``LOAD_ATTR`` for ``property()`` attributes. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-17-16-30-24.gh-issue-93955.LmiAe9.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-17-16-30-24.gh-issue-93955.LmiAe9.rst deleted file mode 100644 index 3b2f0e8c32d745..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-06-17-16-30-24.gh-issue-93955.LmiAe9.rst +++ /dev/null @@ -1 +0,0 @@ -Improve performance of attribute lookups on objects with custom ``__getattribute__`` and ``__getattr__``. Patch by Ken Jin. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-18-17-00-33.gh-issue-93911.y286of.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-18-17-00-33.gh-issue-93911.y286of.rst deleted file mode 100644 index 7fc8f6a2d49293..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-06-18-17-00-33.gh-issue-93911.y286of.rst +++ /dev/null @@ -1 +0,0 @@ -Specialize ``LOAD_ATTR`` for objects with custom ``__getattribute__``. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-20-13-48-57.gh-issue-94021.o78q3G.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-20-13-48-57.gh-issue-94021.o78q3G.rst deleted file mode 100644 index 0724c517b2ba06..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-06-20-13-48-57.gh-issue-94021.o78q3G.rst +++ /dev/null @@ -1 +0,0 @@ -Fix unreachable code warning in ``Python/specialize.c``. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-23-12-10-39.gh-issue-94163.SqAfQq.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-23-12-10-39.gh-issue-94163.SqAfQq.rst deleted file mode 100644 index 3f82943cbfbe07..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-06-23-12-10-39.gh-issue-94163.SqAfQq.rst +++ /dev/null @@ -1,5 +0,0 @@ -Add :opcode:`BINARY_SLICE` and :opcode:`STORE_SLICE` instructions for more efficient handling -and better specialization of slicing operations, where the slice is explicit -in the source code. - - diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-24-14-06-20.gh-issue-93883.8jVQQ4.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-24-14-06-20.gh-issue-93883.8jVQQ4.rst deleted file mode 100644 index 53345577036a5a..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-06-24-14-06-20.gh-issue-93883.8jVQQ4.rst +++ /dev/null @@ -1 +0,0 @@ -Revise the display strategy of traceback enhanced error locations. The indicators are only shown when the location doesn't span the whole line. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-25-10-19-43.gh-issue-87995.aMDHnp.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-25-10-19-43.gh-issue-87995.aMDHnp.rst deleted file mode 100644 index 4154ebce234958..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-06-25-10-19-43.gh-issue-87995.aMDHnp.rst +++ /dev/null @@ -1,2 +0,0 @@ -:class:`types.MappingProxyType` instances are now hashable if the underlying -mapping is hashable. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-26-14-37-03.gh-issue-94192.ab7tn7.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-26-14-37-03.gh-issue-94192.ab7tn7.rst deleted file mode 100644 index ebd8b04e45091e..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-06-26-14-37-03.gh-issue-94192.ab7tn7.rst +++ /dev/null @@ -1 +0,0 @@ -Fix error for dictionary literals with invalid expression as value. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-28-10-08-06.gh-issue-94262.m-HWUZ.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-28-10-08-06.gh-issue-94262.m-HWUZ.rst deleted file mode 100644 index 7ba39bbcfe21da..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-06-28-10-08-06.gh-issue-94262.m-HWUZ.rst +++ /dev/null @@ -1,3 +0,0 @@ -Don't create frame objects for incomplete frames. Prevents the creation of -generators and closures from being observable to Python and C extensions, -restoring the behavior of 3.10 and earlier. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-28-12-41-17.gh-issue-88116.A7fEl_.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-28-12-41-17.gh-issue-88116.A7fEl_.rst deleted file mode 100644 index a8347cff09f39f..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-06-28-12-41-17.gh-issue-88116.A7fEl_.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix an issue when reading line numbers from code objects if the encoded line -numbers are close to ``INT_MIN``. Patch by Pablo Galindo diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-28-14-20-36.gh-issue-94360.DiEnen.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-28-14-20-36.gh-issue-94360.DiEnen.rst deleted file mode 100644 index 0a74ba38b0ac43..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-06-28-14-20-36.gh-issue-94360.DiEnen.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fixed a tokenizer crash when reading encoded files with syntax errors from -``stdin`` with non utf-8 encoded text. Patch by Pablo Galindo diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-29-15-45-04.gh-issue-94329.olUQyk.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-29-15-45-04.gh-issue-94329.olUQyk.rst deleted file mode 100644 index afd31b6e4dc44f..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-06-29-15-45-04.gh-issue-94329.olUQyk.rst +++ /dev/null @@ -1,2 +0,0 @@ -Compile and run code with unpacking of extremely large sequences (1000s of elements). -Such code failed to compile. It now compiles and runs correctly. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-29-22-18-36.gh-issue-91719.3APYYI.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-29-22-18-36.gh-issue-91719.3APYYI.rst deleted file mode 100644 index 0d085e88778372..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-06-29-22-18-36.gh-issue-91719.3APYYI.rst +++ /dev/null @@ -1,2 +0,0 @@ -Reload ``opcode`` when raising ``unknown opcode error`` in the interpreter main loop, -for C compilers to generate dispatching code independently. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-06-30-15-07-26.gh-issue-94438.btzHSk.rst b/Misc/NEWS.d/next/Core and Builtins/2022-06-30-15-07-26.gh-issue-94438.btzHSk.rst deleted file mode 100644 index b08dd8f2ad160f..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-06-30-15-07-26.gh-issue-94438.btzHSk.rst +++ /dev/null @@ -1,2 +0,0 @@ -Account for instructions that can push NULL to the stack when setting line -number in a frame. Prevents some (unlikely) crashes. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-01-20-00-19.gh-issue-94485.mo5st7.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-01-20-00-19.gh-issue-94485.mo5st7.rst deleted file mode 100644 index 14d90b7e764a77..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-07-01-20-00-19.gh-issue-94485.mo5st7.rst +++ /dev/null @@ -1,2 +0,0 @@ -Line number of a module's ``RESUME`` instruction is set to 0 as specified in -:pep:`626`. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-06-14-02-26.gh-issue-92228.44Cbly.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-06-14-02-26.gh-issue-92228.44Cbly.rst deleted file mode 100644 index 458ad897cefcb6..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-07-06-14-02-26.gh-issue-92228.44Cbly.rst +++ /dev/null @@ -1 +0,0 @@ -Disable the compiler's inline-small-exit-blocks optimization for exit blocks that are associated with source code lines. This fixes a bug where the debugger cannot tell where an exception handler ends and the following code block begins. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-07-21-13-25.gh-issue-94215._Sv9Ms.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-07-21-13-25.gh-issue-94215._Sv9Ms.rst deleted file mode 100644 index 07af472fbdcab4..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-07-07-21-13-25.gh-issue-94215._Sv9Ms.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix an issue where exceptions raised by line-tracing events would cause -frames to be left in an invalid state, possibly resulting in a hard crash of -the interpreter. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-08-11-44-45.gh-issue-93252.i2358c.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-08-11-44-45.gh-issue-93252.i2358c.rst deleted file mode 100644 index 1cc2d8560e53e5..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-07-08-11-44-45.gh-issue-93252.i2358c.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix an issue that caused internal frames to outlive failed Python function -calls, possibly resulting in memory leaks or hard interpreter crashes. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-08-16-44-11.gh-issue-94694.VkL2CM.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-08-16-44-11.gh-issue-94694.VkL2CM.rst deleted file mode 100644 index 6434788140f420..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-07-08-16-44-11.gh-issue-94694.VkL2CM.rst +++ /dev/null @@ -1,4 +0,0 @@ -Fix an issue that could cause code with multi-line method lookups to have -misleading or incorrect column offset information. In some cases (when -compiling a hand-built AST) this could have resulted in a hard crash of the -interpreter. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-14-10-07-53.gh-issue-90699.x3aG9m.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-14-10-07-53.gh-issue-90699.x3aG9m.rst deleted file mode 100644 index 795f4df987eb90..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-07-14-10-07-53.gh-issue-90699.x3aG9m.rst +++ /dev/null @@ -1 +0,0 @@ -Fix reference counting bug in :meth:`bool.__repr__`. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-15-16-15-04.gh-issue-91153.HiBmtt.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-15-16-15-04.gh-issue-91153.HiBmtt.rst deleted file mode 100644 index 2caa0170f75bca..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-07-15-16-15-04.gh-issue-91153.HiBmtt.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix an issue where a :class:`bytearray` item assignment could crash if it's -resized by the new value's :meth:`__index__` method. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-15-22-16-08.gh-issue-94822.zRRzBN.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-15-22-16-08.gh-issue-94822.zRRzBN.rst deleted file mode 100644 index 5b24918e497706..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-07-15-22-16-08.gh-issue-94822.zRRzBN.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix an issue where lookups of metaclass descriptors may be ignored when an -identically-named attribute also exists on the class itself. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-15-22-47-44.gh-issue-94893.YiJYcW.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-15-22-47-44.gh-issue-94893.YiJYcW.rst deleted file mode 100644 index 6384ef92c6543a..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-07-15-22-47-44.gh-issue-94893.YiJYcW.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix an issue where frame object manipulations could corrupt inline bytecode -caches. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-16-08-14-17.gh-issue-94869.eRwMsX.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-16-08-14-17.gh-issue-94869.eRwMsX.rst deleted file mode 100644 index 2ccf91b0cd99af..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-07-16-08-14-17.gh-issue-94869.eRwMsX.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix the column offsets for some expressions in multi-line f-strings -:mod:`ast` nodes. Patch by Pablo Galindo. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-17-15-54-29.gh-issue-91256.z7i7Q5.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-17-15-54-29.gh-issue-91256.z7i7Q5.rst deleted file mode 100644 index 802a614fd48d72..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-07-17-15-54-29.gh-issue-91256.z7i7Q5.rst +++ /dev/null @@ -1 +0,0 @@ -Ensures the program name is known for help text during interpreter startup. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-18-04-48-34.gh-issue-94947.df9gUw.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-18-04-48-34.gh-issue-94947.df9gUw.rst deleted file mode 100644 index 360ea67048fe22..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-07-18-04-48-34.gh-issue-94947.df9gUw.rst +++ /dev/null @@ -1 +0,0 @@ -:func:`ast.parse` will no longer parse assignment expressions when passed ``feature_version`` less than ``(3, 8)``. Patch by Shantanu Jain. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-18-05-10-29.gh-issue-94949.OsZ7_s.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-18-05-10-29.gh-issue-94949.OsZ7_s.rst deleted file mode 100644 index bc452d434da0f6..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-07-18-05-10-29.gh-issue-94949.OsZ7_s.rst +++ /dev/null @@ -1 +0,0 @@ -:func:`ast.parse` will no longer parse parenthesized context managers when passed ``feature_version`` less than ``(3, 9)``. Patch by Shantanu Jain. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-18-14-19-21.gh-issue-94739.NQJQi7.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-18-14-19-21.gh-issue-94739.NQJQi7.rst deleted file mode 100644 index 7476892c423b1a..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-07-18-14-19-21.gh-issue-94739.NQJQi7.rst +++ /dev/null @@ -1 +0,0 @@ -Allow jumping within, out of, and across exception handlers in the debugger. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-19-04-34-56.gh-issue-94996.dV564A.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-19-04-34-56.gh-issue-94996.dV564A.rst deleted file mode 100644 index 90c9ada079e077..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-07-19-04-34-56.gh-issue-94996.dV564A.rst +++ /dev/null @@ -1 +0,0 @@ -:func:`ast.parse` will no longer parse function definitions with positional-only params when passed ``feature_version`` less than ``(3, 8)``. Patch by Shantanu Jain. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-19-09-41-55.gh-issue-94938.xYBlM7.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-19-09-41-55.gh-issue-94938.xYBlM7.rst deleted file mode 100644 index cc4feae685f23c..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-07-19-09-41-55.gh-issue-94938.xYBlM7.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix error detection in some builtin functions when keyword argument name is -an instance of a str subclass with overloaded ``__eq__`` and ``__hash__``. -Previously it could cause SystemError or other undesired behavior. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-19-16-30-59.gh-issue-94036._6Utkm.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-19-16-30-59.gh-issue-94036._6Utkm.rst deleted file mode 100644 index b0f03677362631..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-07-19-16-30-59.gh-issue-94036._6Utkm.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix incorrect source location info for some multi-line attribute accesses -and method calls. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-20-13-46-01.gh-issue-91409.dhL8Zo.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-20-13-46-01.gh-issue-91409.dhL8Zo.rst deleted file mode 100644 index 2bc0d8224c6a00..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-07-20-13-46-01.gh-issue-91409.dhL8Zo.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix incorrect source location info caused by certain optimizations in the -bytecode compiler. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-21-17-54-52.gh-issue-95113.NnSLpT.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-21-17-54-52.gh-issue-95113.NnSLpT.rst deleted file mode 100644 index c2ff6c90ac8c11..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-07-21-17-54-52.gh-issue-95113.NnSLpT.rst +++ /dev/null @@ -1,4 +0,0 @@ -Replace all ``EXTENDED_ARG_QUICK`` instructions with basic -:opcode:`EXTENDED_ARG` instructions in unquickened code. Consumers of -non-adaptive bytecode should be able to handle extended arguments the same -way they were handled in CPython 3.10 and older. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-21-19-19-20.gh-issue-95060.4xdT1f.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-21-19-19-20.gh-issue-95060.4xdT1f.rst deleted file mode 100644 index 160999e82bf081..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-07-21-19-19-20.gh-issue-95060.4xdT1f.rst +++ /dev/null @@ -1,2 +0,0 @@ -Undocumented ``PyCode_Addr2Location`` function now properly returns when -``addrq`` argument is less than zero. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-22-12-53-34.gh-issue-94438.hNqACc.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-22-12-53-34.gh-issue-94438.hNqACc.rst deleted file mode 100644 index 2a7249a833c2ed..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-07-22-12-53-34.gh-issue-94438.hNqACc.rst +++ /dev/null @@ -1,4 +0,0 @@ -Fix an issue that caused extended opcode arguments and some conditional pops -to be ignored when calculating valid jump targets for assignments to the -``f_lineno`` attribute of frame objects. In some cases, this could cause -inconsistent internal state, resulting in a hard crash of the interpreter. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-23-19-16-25.gh-issue-93351.0Jyvu-.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-23-19-16-25.gh-issue-93351.0Jyvu-.rst deleted file mode 100644 index 97cf8055ac54b1..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-07-23-19-16-25.gh-issue-93351.0Jyvu-.rst +++ /dev/null @@ -1,3 +0,0 @@ -:class:`ast.AST` node positions are now validated when provided to -:func:`compile` and other related functions. If invalid positions are -detected, a :exc:`ValueError` will be raised. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-24-00-27-47.gh-issue-95185.ghYTZx.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-24-00-27-47.gh-issue-95185.ghYTZx.rst deleted file mode 100644 index de156bab2f51f1..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-07-24-00-27-47.gh-issue-95185.ghYTZx.rst +++ /dev/null @@ -1,3 +0,0 @@ -Prevented crashes in the AST constructor when compiling some absurdly long -expressions like ``"+0"*1000000``. :exc:`RecursionError` is now raised -instead. Patch by Pablo Galindo diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-26-09-31-12.gh-issue-93678.W8vvgT.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-26-09-31-12.gh-issue-93678.W8vvgT.rst deleted file mode 100644 index 6ff816a172cc27..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-07-26-09-31-12.gh-issue-93678.W8vvgT.rst +++ /dev/null @@ -1 +0,0 @@ -Add cfg_builder struct and refactor the relevant code so that a cfg can be constructed without an instance of the compiler struct. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-26-12-59-03.gh-issue-95245.GHWczn.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-26-12-59-03.gh-issue-95245.GHWczn.rst deleted file mode 100644 index d6dccc8fcad0b1..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-07-26-12-59-03.gh-issue-95245.GHWczn.rst +++ /dev/null @@ -1,2 +0,0 @@ -Merge managed dict and values pointer into a single tagged pointer to save -one word in the pre-header. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-27-14-05-07.gh-issue-95324.28Q5u7.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-27-14-05-07.gh-issue-95324.28Q5u7.rst deleted file mode 100644 index 250385270e9487..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-07-27-14-05-07.gh-issue-95324.28Q5u7.rst +++ /dev/null @@ -1,2 +0,0 @@ -Emit a warning in debug mode if an object does not call -:c:func:`PyObject_GC_UnTrack` before deallocation. Patch by Pablo Galindo. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-27-14-21-57.gh-issue-90081.HVAS5x.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-27-14-21-57.gh-issue-90081.HVAS5x.rst deleted file mode 100644 index a3be34c175af6e..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-07-27-14-21-57.gh-issue-90081.HVAS5x.rst +++ /dev/null @@ -1,2 +0,0 @@ -Run Python code in tracer/profiler function at full speed. Fixes slowdown in -earlier versions of 3.11. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-28-08-33-31.gh-issue-95355.yN4XVk.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-28-08-33-31.gh-issue-95355.yN4XVk.rst deleted file mode 100644 index 6a289991e0d60f..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-07-28-08-33-31.gh-issue-95355.yN4XVk.rst +++ /dev/null @@ -1 +0,0 @@ -``_PyPegen_Parser_New`` now properly detects token memory allocation errors. Patch by Honglin Zhu. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-28-19-07-06.gh-issue-87092.73IPS1.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-28-19-07-06.gh-issue-87092.73IPS1.rst deleted file mode 100644 index d4cc4bb9afc2ef..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-07-28-19-07-06.gh-issue-87092.73IPS1.rst +++ /dev/null @@ -1 +0,0 @@ -Create a 'jump target label' abstraction in the compiler so that the compiler's codegen stage does not work directly with basic blocks. This prepares the code for changes to the underlying CFG generation mechanism. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-31-03-22-58.gh-issue-91146.Y2Hziy.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-31-03-22-58.gh-issue-91146.Y2Hziy.rst deleted file mode 100644 index 9172ca298e8095..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-07-31-03-22-58.gh-issue-91146.Y2Hziy.rst +++ /dev/null @@ -1,2 +0,0 @@ -Reduce allocation size of :class:`list` from :meth:`str.split` -and :meth:`str.rsplit`. Patch by Dong-hee Na and Inada Naoki. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-31-13-23-12.gh-issue-95150.67FXVo.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-31-13-23-12.gh-issue-95150.67FXVo.rst deleted file mode 100644 index c3db4714188b3f..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-07-31-13-23-12.gh-issue-95150.67FXVo.rst +++ /dev/null @@ -1,3 +0,0 @@ -Update code object hashing and equality to consider all debugging and -exception handling tables. This fixes an issue where certain non-identical -code objects could be "deduplicated" during compilation. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-04-18-46-54.gh-issue-95605.FbpCoG.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-04-18-46-54.gh-issue-95605.FbpCoG.rst deleted file mode 100644 index 49441c6b3118b4..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-08-04-18-46-54.gh-issue-95605.FbpCoG.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix misleading contents of error message when converting an all-whitespace -string to :class:`float`. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-11-09-19-55.gh-issue-95876.YpQfoV.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-11-09-19-55.gh-issue-95876.YpQfoV.rst deleted file mode 100644 index 96b69015a5861a..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-08-11-09-19-55.gh-issue-95876.YpQfoV.rst +++ /dev/null @@ -1,4 +0,0 @@ -Fix format string in ``_PyPegen_raise_error_known_location`` that can lead -to memory corruption on some 64bit systems. The function was building a -tuple with ``i`` (int) instead of ``n`` (Py_ssize_t) for Py_ssize_t -arguments. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-11-11-01-56.gh-issue-95818.iClLdl.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-11-11-01-56.gh-issue-95818.iClLdl.rst deleted file mode 100644 index 1e243f5614f1ca..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-08-11-11-01-56.gh-issue-95818.iClLdl.rst +++ /dev/null @@ -1 +0,0 @@ -Skip over incomplete frames in :c:func:`PyThreadState_GetFrame`. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-12-13-04-25.gh-issue-95922.YNCtyX.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-12-13-04-25.gh-issue-95922.YNCtyX.rst deleted file mode 100644 index 277d35deab3919..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-08-12-13-04-25.gh-issue-95922.YNCtyX.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fixed bug where the compiler's ``eliminate_empty_basic_blocks`` function -ignores the last block of the code unit. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-14-10-04-44.gh-issue-95977.gCTZb9.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-14-10-04-44.gh-issue-95977.gCTZb9.rst deleted file mode 100644 index b265c770233a33..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-08-14-10-04-44.gh-issue-95977.gCTZb9.rst +++ /dev/null @@ -1 +0,0 @@ -Optimized calling :meth:`~object.__get__` with vectorcall. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-15-11-58-05.gh-issue-90997.bWwV8Q.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-15-11-58-05.gh-issue-90997.bWwV8Q.rst deleted file mode 100644 index 8db714e59e1592..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-08-15-11-58-05.gh-issue-90997.bWwV8Q.rst +++ /dev/null @@ -1,3 +0,0 @@ -Compile virtual :keyword:`try`/:keyword:`except` blocks to handle exceptions -raised during :meth:`~generator.close` or :meth:`~generator.throw` calls -through a suspended frame. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-15-12-41-14.gh-issue-95245.N4gOUV.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-15-12-41-14.gh-issue-95245.N4gOUV.rst deleted file mode 100644 index 4449ddd8ded8a0..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-08-15-12-41-14.gh-issue-95245.N4gOUV.rst +++ /dev/null @@ -1,3 +0,0 @@ -Reduces the size of a "simple" Python object from 8 to 6 words by moving the -weakreflist pointer into the pre-header directly before the object's -dict/values pointer. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-15-20-52-41.gh-issue-93678.X7GuIJ.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-15-20-52-41.gh-issue-93678.X7GuIJ.rst deleted file mode 100644 index 9e2b90ba07a454..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-08-15-20-52-41.gh-issue-93678.X7GuIJ.rst +++ /dev/null @@ -1 +0,0 @@ -Added test a harness for direct unit tests of the compiler's optimization stage. The ``_testinternalcapi.optimize_cfg()`` function runs the optimiser on a sequence of instructions. The ``CfgOptimizationTestCase`` class in ``test.support`` has utilities for invoking the optimizer and checking the output. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-15-21-08-11.gh-issue-96005.6eoc8k.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-15-21-08-11.gh-issue-96005.6eoc8k.rst deleted file mode 100644 index 06e414bca0f9c0..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-08-15-21-08-11.gh-issue-96005.6eoc8k.rst +++ /dev/null @@ -1,4 +0,0 @@ -On WASI :data:`~errno.ENOTCAPABLE` is now mapped to :exc:`PermissionError`. -The :mod:`errno` modules exposes the new error number. ``getpath.py`` now -ignores :exc:`PermissionError` when it cannot open landmark files -``pybuilddir.txt`` and ``pyenv.cfg``. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-18-13-47-59.gh-issue-96046.5Hqbka.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-18-13-47-59.gh-issue-96046.5Hqbka.rst deleted file mode 100644 index b8cb52d4b4ece9..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-08-18-13-47-59.gh-issue-96046.5Hqbka.rst +++ /dev/null @@ -1,4 +0,0 @@ -:c:func:`PyType_Ready` now initializes ``ht_cached_keys`` and performs -additional checks to ensure that type objects are properly configured. This -avoids crashes in 3rd party packages that don't use regular API to create -new types. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-19-06-51-17.gh-issue-96071.mVgPAo.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-19-06-51-17.gh-issue-96071.mVgPAo.rst deleted file mode 100644 index 37653ffac12418..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-08-19-06-51-17.gh-issue-96071.mVgPAo.rst +++ /dev/null @@ -1 +0,0 @@ -Fix a deadlock in :c:func:`PyGILState_Ensure` when allocating new thread state. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-20-18-36-40.gh-issue-96143.nh3GFM.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-20-18-36-40.gh-issue-96143.nh3GFM.rst deleted file mode 100644 index 30f44fd453a547..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-08-20-18-36-40.gh-issue-96143.nh3GFM.rst +++ /dev/null @@ -1,7 +0,0 @@ -Add a new ``-X perf`` Python command line option as well as -:func:`sys.activate_stack_trampoline` and :func:`sys.deactivate_stack_trampoline` -function in the :mod:`sys` module that allows to set/unset the interpreter in a -way that the Linux ``perf`` profiler can detect Python calls. The new -:func:`sys.is_stack_trampoline_active` function allows to query the state of the -perf trampoline. Design by Pablo Galindo. Patch by Pablo Galindo and Christian Heimes -with contributions from Gregory P. Smith [Google] and Mark Shannon. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-22-21-33-28.gh-issue-96187.W_6SRG.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-22-21-33-28.gh-issue-96187.W_6SRG.rst deleted file mode 100644 index fd194faa68545d..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-08-22-21-33-28.gh-issue-96187.W_6SRG.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fixed a bug that caused ``_PyCode_GetExtra`` to return garbage for negative -indexes. Patch by Pablo Galindo diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-24-14-30-26.gh-issue-96237.msif5f.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-24-14-30-26.gh-issue-96237.msif5f.rst deleted file mode 100644 index cb8a1c0eb7c26f..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-08-24-14-30-26.gh-issue-96237.msif5f.rst +++ /dev/null @@ -1,5 +0,0 @@ -The internal field ``_PyInterpreterFrame.f_func`` is renamed to -``_PyInterpreterFrame.f_funcobj`` and may be any object. The ``f_globals`` -and ``f_builtin`` fields may hold junk values. - -It is safest to treat the ``_PyInterpreterFrame`` struct as opaque. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-25-10-19-34.gh-issue-96268.AbYrLB.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-25-10-19-34.gh-issue-96268.AbYrLB.rst deleted file mode 100644 index 987d85ff3bab8e..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-08-25-10-19-34.gh-issue-96268.AbYrLB.rst +++ /dev/null @@ -1,2 +0,0 @@ -Loading a file with invalid UTF-8 will now report the broken character at -the correct location. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-26-18-46-32.gh-issue-93554.QEaCcK.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-26-18-46-32.gh-issue-93554.QEaCcK.rst deleted file mode 100644 index dff12aef721b53..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-08-26-18-46-32.gh-issue-93554.QEaCcK.rst +++ /dev/null @@ -1,16 +0,0 @@ -Change the jump opcodes so that all conditional jumps are forward jumps. -Backward jumps are converted by the assembler into a conditional forward -jump whose target is the fallthrough block (and with a reversed condition), -followed by an unconditional backward jump. For example: - -``POP_JUMP_IF_TRUE BACKWARD_TARGET`` becomes ``POP_JUMP_IF_FALSE NEXT_BLOCK; -JUMP BACKWARD_TARGET``. - -All the directed conditional jump opcodes were removed: -``POP_JUMP_FORWARD_IF_TRUE``, ``POP_JUMP_BACKWARD_IF_TRUE``, -``POP_JUMP_FORWARD_IF_FALSE``, ``POP_JUMP_BACKWARD_IF_FALSE``, -``POP_JUMP_FORWARD_IF_NONE``, ``POP_JUMP_BACKWARD_IF_NONE``, -``POP_JUMP_FORWARD_IF_NOT_NONE``, ``POP_JUMP_BACKWARD_IF_NOT_NONE``. - -The corresponding opcodes without direction are no longer pseudo-instructions, -and they implement the forward conditional jumps. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-28-10-51-19.gh-issue-96352.jTLD2d.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-28-10-51-19.gh-issue-96352.jTLD2d.rst deleted file mode 100644 index 25ab9678715a92..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-08-28-10-51-19.gh-issue-96352.jTLD2d.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix :exc:`AttributeError` missing ``name`` and ``obj`` attributes in -:meth:`object.__getattribute__`. Patch by Philip Georgi. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-08-29-00-37-21.gh-issue-96364.c-IVyb.rst b/Misc/NEWS.d/next/Core and Builtins/2022-08-29-00-37-21.gh-issue-96364.c-IVyb.rst deleted file mode 100644 index 8872f9a5a498d5..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-08-29-00-37-21.gh-issue-96364.c-IVyb.rst +++ /dev/null @@ -1 +0,0 @@ -Fix text signatures of ``list.__getitem__`` and ``dict.__getitem__``. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-02-16-47-52.gh-issue-93911.vF-GWe.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-02-16-47-52.gh-issue-93911.vF-GWe.rst deleted file mode 100644 index b8dc0435377b5f..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-09-02-16-47-52.gh-issue-93911.vF-GWe.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix an issue that could prevent :opcode:`LOAD_ATTR` from specializing -properly when accessing properties. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-05-15-07-25.gh-issue-96582.HEsL5s.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-05-15-07-25.gh-issue-96582.HEsL5s.rst deleted file mode 100644 index 162f7baadf49d1..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-09-05-15-07-25.gh-issue-96582.HEsL5s.rst +++ /dev/null @@ -1 +0,0 @@ -Fix possible ``NULL`` pointer dereference in ``_PyThread_CurrentFrames``. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-05-16-43-44.gh-issue-96569.9lmTCC.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-05-16-43-44.gh-issue-96569.9lmTCC.rst deleted file mode 100644 index 4734d3d6ded12a..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-09-05-16-43-44.gh-issue-96569.9lmTCC.rst +++ /dev/null @@ -1 +0,0 @@ -Remove two cases of undefined behavoir, by adding NULL checks. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-05-19-20-44.gh-issue-96587.bVxhX2.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-05-19-20-44.gh-issue-96587.bVxhX2.rst deleted file mode 100644 index 37e9dcbb11f030..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-09-05-19-20-44.gh-issue-96587.bVxhX2.rst +++ /dev/null @@ -1,2 +0,0 @@ -Correctly raise ``SyntaxError`` on exception groups (:pep:`654`) on python -versions prior to 3.11 diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-06-11-19-03.gh-issue-90230.YOtzs5.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-06-11-19-03.gh-issue-90230.YOtzs5.rst deleted file mode 100644 index aac48e7d792f8d..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-09-06-11-19-03.gh-issue-90230.YOtzs5.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix compiler warnings and test failures when building with -``--enable-pystats``. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-06-14-26-36.gh-issue-96612.P4ZbeY.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-06-14-26-36.gh-issue-96612.P4ZbeY.rst deleted file mode 100644 index 52e92703c9c483..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-09-06-14-26-36.gh-issue-96612.P4ZbeY.rst +++ /dev/null @@ -1 +0,0 @@ -Make sure that incomplete frames do not show up in tracemalloc traces. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-06-16-22-13.gh-issue-96611.14wIX8.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-06-16-22-13.gh-issue-96611.14wIX8.rst deleted file mode 100644 index 08bd409bc9f997..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-09-06-16-22-13.gh-issue-96611.14wIX8.rst +++ /dev/null @@ -1,2 +0,0 @@ -When loading a file with invalid UTF-8 inside a multi-line string, a correct -SyntaxError is emitted. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-06-16-54-49.gh-issue-96572.8DRsaW.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-06-16-54-49.gh-issue-96572.8DRsaW.rst deleted file mode 100644 index 44cceb46c28c3e..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-09-06-16-54-49.gh-issue-96572.8DRsaW.rst +++ /dev/null @@ -1 +0,0 @@ -Fix use after free in trace refs build mode. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-07-12-02-11.gh-issue-96636.YvN-K6.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-07-12-02-11.gh-issue-96636.YvN-K6.rst deleted file mode 100644 index e0fbd8761aa335..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-09-07-12-02-11.gh-issue-96636.YvN-K6.rst +++ /dev/null @@ -1,3 +0,0 @@ -Ensure that tracing, ``sys.setrace()``, is turned on immediately. In -pre-release versions of 3.11, some tracing events might have been lost when -turning on tracing in a ``__del__`` method or interrupt. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-07-13-38-37.gh-issue-96641.wky0Fc.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-07-13-38-37.gh-issue-96641.wky0Fc.rst deleted file mode 100644 index 51faca8716fbca..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-09-07-13-38-37.gh-issue-96641.wky0Fc.rst +++ /dev/null @@ -1 +0,0 @@ -Do not expose ``KeyWrapper`` in :mod:`_functools`. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-09-13-13-27.gh-issue-96678.vMxi9F.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-09-13-13-27.gh-issue-96678.vMxi9F.rst deleted file mode 100644 index 575b52be2940dc..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-09-09-13-13-27.gh-issue-96678.vMxi9F.rst +++ /dev/null @@ -1 +0,0 @@ -Fix case of undefined behavior in ceval.c diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-11-00-37-50.gh-issue-90751.VE8-zf.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-11-00-37-50.gh-issue-90751.VE8-zf.rst deleted file mode 100644 index 0908f1cc066fd8..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-09-11-00-37-50.gh-issue-90751.VE8-zf.rst +++ /dev/null @@ -1,2 +0,0 @@ -:class:`memoryview` now supports half-floats. -Patch by Dong-hee Na and Antoine Pitrou. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-11-12-43-43.gh-issue-96751.anRT6a.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-11-12-43-43.gh-issue-96751.anRT6a.rst deleted file mode 100644 index fb5b73e1ac7727..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-09-11-12-43-43.gh-issue-96751.anRT6a.rst +++ /dev/null @@ -1 +0,0 @@ -Remove dead code from ``CALL_FUNCTION_EX`` opcode. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-12-15-15-04.gh-issue-90997.sZO8c9.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-12-15-15-04.gh-issue-90997.sZO8c9.rst deleted file mode 100644 index 4a43e2babcdef8..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-09-12-15-15-04.gh-issue-90997.sZO8c9.rst +++ /dev/null @@ -1,2 +0,0 @@ -Improve the performance of reading and writing inline bytecode caches on -some platforms. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-12-16-58-22.gh-issue-96754.0GRme5.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-12-16-58-22.gh-issue-96754.0GRme5.rst deleted file mode 100644 index beac84ee822a84..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-09-12-16-58-22.gh-issue-96754.0GRme5.rst +++ /dev/null @@ -1,3 +0,0 @@ -Make sure that all frame objects created are created from valid interpreter -frames. Prevents the possibility of invalid frames in backtraces and signal -handlers. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-13-12-06-46.gh-issue-96678.NqGFyb.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-13-12-06-46.gh-issue-96678.NqGFyb.rst deleted file mode 100644 index bdd33c8d2ca914..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-09-13-12-06-46.gh-issue-96678.NqGFyb.rst +++ /dev/null @@ -1 +0,0 @@ -Fix undefined behaviour in C code of null pointer arithmetic. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-16-19-02-40.gh-issue-95778.cJmnst.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-16-19-02-40.gh-issue-95778.cJmnst.rst deleted file mode 100644 index ebf63778a605d7..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2022-09-16-19-02-40.gh-issue-95778.cJmnst.rst +++ /dev/null @@ -1,3 +0,0 @@ -When :exc:`ValueError` is raised if an integer is larger than the limit, -mention the :func:`sys.set_int_max_str_digits` function in the error message. -Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Documentation/2022-03-30-17-56-01.bpo-47161.gesHfS.rst b/Misc/NEWS.d/next/Documentation/2022-03-30-17-56-01.bpo-47161.gesHfS.rst deleted file mode 100644 index 6b552daa7c13af..00000000000000 --- a/Misc/NEWS.d/next/Documentation/2022-03-30-17-56-01.bpo-47161.gesHfS.rst +++ /dev/null @@ -1,2 +0,0 @@ -Document that :class:`pathlib.PurePath` does not collapse -initial double slashes because they denote UNC paths. diff --git a/Misc/NEWS.d/next/Documentation/2022-05-18-23-58-26.gh-issue-92240.bHvYiz.rst b/Misc/NEWS.d/next/Documentation/2022-05-18-23-58-26.gh-issue-92240.bHvYiz.rst deleted file mode 100644 index 53b2a66c9779c2..00000000000000 --- a/Misc/NEWS.d/next/Documentation/2022-05-18-23-58-26.gh-issue-92240.bHvYiz.rst +++ /dev/null @@ -1,2 +0,0 @@ -Added release dates for -"What's New in Python 3.X" for 3.0, 3.1, 3.2, 3.8 and 3.10 diff --git a/Misc/NEWS.d/next/Documentation/2022-05-26-11-33-23.gh-issue-86438.kEGGmK.rst b/Misc/NEWS.d/next/Documentation/2022-05-26-11-33-23.gh-issue-86438.kEGGmK.rst deleted file mode 100644 index 75abfdd63b8b2e..00000000000000 --- a/Misc/NEWS.d/next/Documentation/2022-05-26-11-33-23.gh-issue-86438.kEGGmK.rst +++ /dev/null @@ -1,3 +0,0 @@ -Clarify that :option:`-W` and :envvar:`PYTHONWARNINGS` are matched literally -and case-insensitively, rather than as regular expressions, in -:mod:`warnings`. diff --git a/Misc/NEWS.d/next/Documentation/2022-05-26-14-51-25.gh-issue-88831.5Cccr5.rst b/Misc/NEWS.d/next/Documentation/2022-05-26-14-51-25.gh-issue-88831.5Cccr5.rst deleted file mode 100644 index 983bea981a9b20..00000000000000 --- a/Misc/NEWS.d/next/Documentation/2022-05-26-14-51-25.gh-issue-88831.5Cccr5.rst +++ /dev/null @@ -1 +0,0 @@ -Augmented documentation of asyncio.create_task(). Clarified the need to keep strong references to tasks and added a code snippet detailing how to to this. diff --git a/Misc/NEWS.d/next/Documentation/2022-05-29-21-22-54.gh-issue-86986.lFXw8j.rst b/Misc/NEWS.d/next/Documentation/2022-05-29-21-22-54.gh-issue-86986.lFXw8j.rst deleted file mode 100644 index 1db028c30f67a4..00000000000000 --- a/Misc/NEWS.d/next/Documentation/2022-05-29-21-22-54.gh-issue-86986.lFXw8j.rst +++ /dev/null @@ -1 +0,0 @@ -The minimum Sphinx version required to build the documentation is now 3.2. diff --git a/Misc/NEWS.d/next/Documentation/2022-06-15-12-12-49.gh-issue-87260.epyI7D.rst b/Misc/NEWS.d/next/Documentation/2022-06-15-12-12-49.gh-issue-87260.epyI7D.rst deleted file mode 100644 index 4c6cee86ca115f..00000000000000 --- a/Misc/NEWS.d/next/Documentation/2022-06-15-12-12-49.gh-issue-87260.epyI7D.rst +++ /dev/null @@ -1 +0,0 @@ -Align :mod:`sqlite3` argument specs with the actual implementation. diff --git a/Misc/NEWS.d/next/Documentation/2022-06-16-10-10-59.gh-issue-61162.1ypkG8.rst b/Misc/NEWS.d/next/Documentation/2022-06-16-10-10-59.gh-issue-61162.1ypkG8.rst deleted file mode 100644 index c8b3a222232189..00000000000000 --- a/Misc/NEWS.d/next/Documentation/2022-06-16-10-10-59.gh-issue-61162.1ypkG8.rst +++ /dev/null @@ -1 +0,0 @@ -Clarify :mod:`sqlite3` behavior when :ref:`sqlite3-connection-context-manager`. diff --git a/Misc/NEWS.d/next/Documentation/2022-06-19-18-18-22.gh-issue-86128.39DDTD.rst b/Misc/NEWS.d/next/Documentation/2022-06-19-18-18-22.gh-issue-86128.39DDTD.rst deleted file mode 100644 index bab006856deea7..00000000000000 --- a/Misc/NEWS.d/next/Documentation/2022-06-19-18-18-22.gh-issue-86128.39DDTD.rst +++ /dev/null @@ -1 +0,0 @@ -Document a limitation in ThreadPoolExecutor where its exit handler is executed before any handlers in atexit. diff --git a/Misc/NEWS.d/next/Documentation/2022-07-07-08-42-05.gh-issue-94321.pmCIPb.rst b/Misc/NEWS.d/next/Documentation/2022-07-07-08-42-05.gh-issue-94321.pmCIPb.rst deleted file mode 100644 index c1a8dcd8535383..00000000000000 --- a/Misc/NEWS.d/next/Documentation/2022-07-07-08-42-05.gh-issue-94321.pmCIPb.rst +++ /dev/null @@ -1,2 +0,0 @@ -Document the :pep:`246` style protocol type -:class:`sqlite3.PrepareProtocol`. diff --git a/Misc/NEWS.d/next/Documentation/2022-07-29-09-04-02.gh-issue-95415.LKTyw6.rst b/Misc/NEWS.d/next/Documentation/2022-07-29-09-04-02.gh-issue-95415.LKTyw6.rst deleted file mode 100644 index ece36bc4d1cedb..00000000000000 --- a/Misc/NEWS.d/next/Documentation/2022-07-29-09-04-02.gh-issue-95415.LKTyw6.rst +++ /dev/null @@ -1,2 +0,0 @@ -Use consistent syntax for platform availability. The directive now supports -a content body and emits a warning when it encounters an unknown platform. diff --git a/Misc/NEWS.d/next/Documentation/2022-07-29-23-02-19.gh-issue-95451.-tgB93.rst b/Misc/NEWS.d/next/Documentation/2022-07-29-23-02-19.gh-issue-95451.-tgB93.rst deleted file mode 100644 index 3a7b8a122b7a1c..00000000000000 --- a/Misc/NEWS.d/next/Documentation/2022-07-29-23-02-19.gh-issue-95451.-tgB93.rst +++ /dev/null @@ -1,3 +0,0 @@ -Update library documentation with -:ref:`availability information <wasm-availability>` -on WebAssembly platforms ``wasm32-emscripten`` and ``wasm32-wasi``. diff --git a/Misc/NEWS.d/next/Documentation/2022-07-30-00-23-11.gh-issue-95454.we7AFm.rst b/Misc/NEWS.d/next/Documentation/2022-07-30-00-23-11.gh-issue-95454.we7AFm.rst deleted file mode 100644 index 6440c23fd5000a..00000000000000 --- a/Misc/NEWS.d/next/Documentation/2022-07-30-00-23-11.gh-issue-95454.we7AFm.rst +++ /dev/null @@ -1,2 +0,0 @@ -Replaced incorrectly written true/false values -in documentiation. Patch by Robert O'Shea diff --git a/Misc/NEWS.d/next/Documentation/2022-08-03-13-35-08.gh-issue-91207.eJ4pPf.rst b/Misc/NEWS.d/next/Documentation/2022-08-03-13-35-08.gh-issue-91207.eJ4pPf.rst deleted file mode 100644 index 8c7391f7edf78b..00000000000000 --- a/Misc/NEWS.d/next/Documentation/2022-08-03-13-35-08.gh-issue-91207.eJ4pPf.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix stylesheet not working in Windows CHM htmlhelp docs -and add warning that they are deprecated. -Contributed by C.A.M. Gerlach. diff --git a/Misc/NEWS.d/next/Documentation/2022-08-13-20-34-51.gh-issue-95957.W9ZZAx.rst b/Misc/NEWS.d/next/Documentation/2022-08-13-20-34-51.gh-issue-95957.W9ZZAx.rst deleted file mode 100644 index c617bd42abd95a..00000000000000 --- a/Misc/NEWS.d/next/Documentation/2022-08-13-20-34-51.gh-issue-95957.W9ZZAx.rst +++ /dev/null @@ -1,2 +0,0 @@ -What's New 3.11 now has instructions for how to provide compiler and -linker flags for Tcl/Tk and OpenSSL on RHEL 7 and CentOS 7. diff --git a/Misc/NEWS.d/next/Documentation/2022-08-19-17-07-45.gh-issue-96098.nDp43u.rst b/Misc/NEWS.d/next/Documentation/2022-08-19-17-07-45.gh-issue-96098.nDp43u.rst deleted file mode 100644 index 5ead20bbb5357b..00000000000000 --- a/Misc/NEWS.d/next/Documentation/2022-08-19-17-07-45.gh-issue-96098.nDp43u.rst +++ /dev/null @@ -1,3 +0,0 @@ -Improve discoverability of the higher level concurrent.futures module by -providing clearer links from the lower level threading and multiprocessing -modules. diff --git a/Misc/NEWS.d/next/Documentation/2022-09-01-17-03-04.gh-issue-96432.1EJ1-4.rst b/Misc/NEWS.d/next/Documentation/2022-09-01-17-03-04.gh-issue-96432.1EJ1-4.rst deleted file mode 100644 index a5858f432932ca..00000000000000 --- a/Misc/NEWS.d/next/Documentation/2022-09-01-17-03-04.gh-issue-96432.1EJ1-4.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fraction literals now support whitespace around the forward slash, -`Fraction('2 / 3')`. diff --git a/Misc/NEWS.d/next/IDLE/2022-07-28-18-56-57.gh-issue-89610.hcosiM.rst b/Misc/NEWS.d/next/IDLE/2022-07-28-18-56-57.gh-issue-89610.hcosiM.rst deleted file mode 100644 index 0d283711e3e867..00000000000000 --- a/Misc/NEWS.d/next/IDLE/2022-07-28-18-56-57.gh-issue-89610.hcosiM.rst +++ /dev/null @@ -1,2 +0,0 @@ -Add .pyi as a recognized extension for IDLE on macOS. This allows opening -stub files by double clicking on them in the Finder. diff --git a/Misc/NEWS.d/next/IDLE/2022-07-29-11-08-52.gh-issue-95411.dazlqH.rst b/Misc/NEWS.d/next/IDLE/2022-07-29-11-08-52.gh-issue-95411.dazlqH.rst deleted file mode 100644 index 94ca8b2c2ea959..00000000000000 --- a/Misc/NEWS.d/next/IDLE/2022-07-29-11-08-52.gh-issue-95411.dazlqH.rst +++ /dev/null @@ -1 +0,0 @@ -Enable using IDLE's module browser with .pyw files. diff --git a/Misc/NEWS.d/next/IDLE/2022-07-30-15-10-39.gh-issue-95471.z3scVG.rst b/Misc/NEWS.d/next/IDLE/2022-07-30-15-10-39.gh-issue-95471.z3scVG.rst deleted file mode 100644 index 73a9d8058965cb..00000000000000 --- a/Misc/NEWS.d/next/IDLE/2022-07-30-15-10-39.gh-issue-95471.z3scVG.rst +++ /dev/null @@ -1 +0,0 @@ -In the Edit menu, move ``Select All`` and add a new separator. diff --git a/Misc/NEWS.d/next/IDLE/2022-07-31-22-15-14.gh-issue-95511.WX6PmB.rst b/Misc/NEWS.d/next/IDLE/2022-07-31-22-15-14.gh-issue-95511.WX6PmB.rst deleted file mode 100644 index 803fa5f2a2ab0d..00000000000000 --- a/Misc/NEWS.d/next/IDLE/2022-07-31-22-15-14.gh-issue-95511.WX6PmB.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix the Shell context menu copy-with-prompts bug of copying an extra line -when one selects whole lines. diff --git a/Misc/NEWS.d/next/IDLE/2022-08-01-23-31-48.gh-issue-95191.U7vryB.rst b/Misc/NEWS.d/next/IDLE/2022-08-01-23-31-48.gh-issue-95191.U7vryB.rst deleted file mode 100644 index 94d3dbbd529f03..00000000000000 --- a/Misc/NEWS.d/next/IDLE/2022-08-01-23-31-48.gh-issue-95191.U7vryB.rst +++ /dev/null @@ -1 +0,0 @@ -Include prompts when saving Shell (interactive input and output). diff --git a/Misc/NEWS.d/next/IDLE/2022-08-04-20-07-51.gh-issue-65802.xnThWe.rst b/Misc/NEWS.d/next/IDLE/2022-08-04-20-07-51.gh-issue-65802.xnThWe.rst deleted file mode 100644 index a62a784b6e6926..00000000000000 --- a/Misc/NEWS.d/next/IDLE/2022-08-04-20-07-51.gh-issue-65802.xnThWe.rst +++ /dev/null @@ -1 +0,0 @@ -Document handling of extensions in Save As dialogs. diff --git a/Misc/NEWS.d/next/Library/2017-07-31-13-35-28.bpo-26253.8v_sCs.rst b/Misc/NEWS.d/next/Library/2017-07-31-13-35-28.bpo-26253.8v_sCs.rst deleted file mode 100644 index fa0dc95b7d62b3..00000000000000 --- a/Misc/NEWS.d/next/Library/2017-07-31-13-35-28.bpo-26253.8v_sCs.rst +++ /dev/null @@ -1,2 +0,0 @@ -Allow adjustable compression level for tarfile streams in -:func:`tarfile.open`. diff --git a/Misc/NEWS.d/next/Library/2018-09-23-07-47-29.bpo-32990.2FVVTU.rst b/Misc/NEWS.d/next/Library/2018-09-23-07-47-29.bpo-32990.2FVVTU.rst deleted file mode 100644 index 7d7f7e3faaec2b..00000000000000 --- a/Misc/NEWS.d/next/Library/2018-09-23-07-47-29.bpo-32990.2FVVTU.rst +++ /dev/null @@ -1,2 +0,0 @@ -Support reading wave files with the ``WAVE_FORMAT_EXTENSIBLE`` format in the -:mod:`wave` module. diff --git a/Misc/NEWS.d/next/Library/2018-09-28-22-18-03.bpo-34828.5Zyi_S.rst b/Misc/NEWS.d/next/Library/2018-09-28-22-18-03.bpo-34828.5Zyi_S.rst deleted file mode 100644 index b0e10a158b5b19..00000000000000 --- a/Misc/NEWS.d/next/Library/2018-09-28-22-18-03.bpo-34828.5Zyi_S.rst +++ /dev/null @@ -1 +0,0 @@ -:meth:`sqlite3.Connection.iterdump` now handles databases that use ``AUTOINCREMENT`` in one or more tables. diff --git a/Misc/NEWS.d/next/Library/2021-08-27-18-07-35.bpo-44173.oW92Ev.rst b/Misc/NEWS.d/next/Library/2021-08-27-18-07-35.bpo-44173.oW92Ev.rst deleted file mode 100644 index abc98266afb0ce..00000000000000 --- a/Misc/NEWS.d/next/Library/2021-08-27-18-07-35.bpo-44173.oW92Ev.rst +++ /dev/null @@ -1 +0,0 @@ -Enable fast seeking of uncompressed unencrypted :class:`zipfile.ZipExtFile` diff --git a/Misc/NEWS.d/next/Library/2021-12-27-15-32-15.bpo-45924.0ZpHX2.rst b/Misc/NEWS.d/next/Library/2021-12-27-15-32-15.bpo-45924.0ZpHX2.rst deleted file mode 100644 index 5cda22737adb79..00000000000000 --- a/Misc/NEWS.d/next/Library/2021-12-27-15-32-15.bpo-45924.0ZpHX2.rst +++ /dev/null @@ -1 +0,0 @@ -Fix :mod:`asyncio` incorrect traceback when future's exception is raised multiple times. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Library/2022-01-03-15-07-06.bpo-46197.Z0djv6.rst b/Misc/NEWS.d/next/Library/2022-01-03-15-07-06.bpo-46197.Z0djv6.rst deleted file mode 100644 index 7a3b2d59dfaf42..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-01-03-15-07-06.bpo-46197.Z0djv6.rst +++ /dev/null @@ -1 +0,0 @@ -Fix :mod:`ensurepip` environment isolation for subprocess running ``pip``. diff --git a/Misc/NEWS.d/next/Library/2022-02-05-18-46-54.bpo-46642.YI6nHQ.rst b/Misc/NEWS.d/next/Library/2022-02-05-18-46-54.bpo-46642.YI6nHQ.rst deleted file mode 100644 index 2d2815c1e4b00d..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-02-05-18-46-54.bpo-46642.YI6nHQ.rst +++ /dev/null @@ -1 +0,0 @@ -Improve error message when trying to subclass an instance of :data:`typing.TypeVar`, :data:`typing.ParamSpec`, :data:`typing.TypeVarTuple`, etc. Based on patch by Gregory Beauregard. diff --git a/Misc/NEWS.d/next/Library/2022-02-15-12-40-48.bpo-46755.zePJfx.rst b/Misc/NEWS.d/next/Library/2022-02-15-12-40-48.bpo-46755.zePJfx.rst deleted file mode 100644 index 399caf72535932..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-02-15-12-40-48.bpo-46755.zePJfx.rst +++ /dev/null @@ -1,2 +0,0 @@ -In :class:`QueueHandler`, clear ``stack_info`` from :class:`LogRecord` to -prevent stack trace from being written twice. diff --git a/Misc/NEWS.d/next/Library/2022-02-21-01-37-00.bpo-42777.nWK3E6.rst b/Misc/NEWS.d/next/Library/2022-02-21-01-37-00.bpo-42777.nWK3E6.rst deleted file mode 100644 index 24912380fb590a..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-02-21-01-37-00.bpo-42777.nWK3E6.rst +++ /dev/null @@ -1 +0,0 @@ -Implement :meth:`pathlib.Path.is_mount` for Windows paths. diff --git a/Misc/NEWS.d/next/Library/2022-03-16-14-24-14.bpo-47025.qtT3CE.rst b/Misc/NEWS.d/next/Library/2022-03-16-14-24-14.bpo-47025.qtT3CE.rst deleted file mode 100644 index 1c7c7ace9706d7..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-03-16-14-24-14.bpo-47025.qtT3CE.rst +++ /dev/null @@ -1 +0,0 @@ -Drop support for :class:`bytes` on :attr:`sys.path`. diff --git a/Misc/NEWS.d/next/Library/2022-03-19-04-41-42.bpo-47063.nwRfUo.rst b/Misc/NEWS.d/next/Library/2022-03-19-04-41-42.bpo-47063.nwRfUo.rst deleted file mode 100644 index b889d3c6520753..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-03-19-04-41-42.bpo-47063.nwRfUo.rst +++ /dev/null @@ -1 +0,0 @@ -Add an index_pages parameter to support using non-default index page names. diff --git a/Misc/NEWS.d/next/Library/2022-04-01-09-43-54.bpo-32547.NIUiNC.rst b/Misc/NEWS.d/next/Library/2022-04-01-09-43-54.bpo-32547.NIUiNC.rst deleted file mode 100644 index 4599b73cc342ca..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-04-01-09-43-54.bpo-32547.NIUiNC.rst +++ /dev/null @@ -1 +0,0 @@ -The constructors for :class:`~csv.DictWriter` and :class:`~csv.DictReader` now coerce the ``fieldnames`` argument to a :class:`list` if it is an iterator. diff --git a/Misc/NEWS.d/next/Library/2022-04-01-12-35-44.gh-issue-90005.pvaLHQ.rst b/Misc/NEWS.d/next/Library/2022-04-01-12-35-44.gh-issue-90005.pvaLHQ.rst deleted file mode 100644 index ef6a881a4d094d..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-04-01-12-35-44.gh-issue-90005.pvaLHQ.rst +++ /dev/null @@ -1 +0,0 @@ -:mod:`ctypes` dependency ``libffi`` is now detected with ``pkg-config``. diff --git a/Misc/NEWS.d/next/Library/2022-04-03-11-25-02.bpo-41287.8CTdwf.rst b/Misc/NEWS.d/next/Library/2022-04-03-11-25-02.bpo-41287.8CTdwf.rst deleted file mode 100644 index ef80ec664c4a86..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-04-03-11-25-02.bpo-41287.8CTdwf.rst +++ /dev/null @@ -1 +0,0 @@ -Fix handling of the ``doc`` argument in subclasses of :func:`property`. diff --git a/Misc/NEWS.d/next/Library/2022-04-08-22-12-11.bpo-47231.lvyglt.rst b/Misc/NEWS.d/next/Library/2022-04-08-22-12-11.bpo-47231.lvyglt.rst deleted file mode 100644 index ee05c5e2856756..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-04-08-22-12-11.bpo-47231.lvyglt.rst +++ /dev/null @@ -1 +0,0 @@ -Fixed an issue with inconsistent trailing slashes in tarfile longname directories. diff --git a/Misc/NEWS.d/next/Library/2022-04-11-16-55-41.gh-issue-91456.DK3KKl.rst b/Misc/NEWS.d/next/Library/2022-04-11-16-55-41.gh-issue-91456.DK3KKl.rst deleted file mode 100644 index a4c853149bdf02..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-04-11-16-55-41.gh-issue-91456.DK3KKl.rst +++ /dev/null @@ -1,3 +0,0 @@ -Deprecate current default auto() behavior: In 3.13 the default will be for -for auto() to always return the largest member value incremented by -1, and to raise if incompatible value types are used. diff --git a/Misc/NEWS.d/next/Library/2022-04-12-18-05-40.gh-issue-91447.N_Fs4H.rst b/Misc/NEWS.d/next/Library/2022-04-12-18-05-40.gh-issue-91447.N_Fs4H.rst deleted file mode 100644 index 6f9be2d3e9be41..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-04-12-18-05-40.gh-issue-91447.N_Fs4H.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix findtext in the xml module to only give an empty string when the text -attribute is set to None. diff --git a/Misc/NEWS.d/next/Library/2022-04-15-17-38-55.gh-issue-91577.Ah7cLL.rst b/Misc/NEWS.d/next/Library/2022-04-15-17-38-55.gh-issue-91577.Ah7cLL.rst deleted file mode 100644 index 0f44f34011f9c7..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-04-15-17-38-55.gh-issue-91577.Ah7cLL.rst +++ /dev/null @@ -1 +0,0 @@ -Move imports in :class:`~multiprocessing.SharedMemory` methods to module level so that they can be executed late in python finalization. diff --git a/Misc/NEWS.d/next/Library/2022-04-24-22-26-45.gh-issue-81790.M5Rvpm.rst b/Misc/NEWS.d/next/Library/2022-04-24-22-26-45.gh-issue-81790.M5Rvpm.rst deleted file mode 100644 index 8894493e97410f..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-04-24-22-26-45.gh-issue-81790.M5Rvpm.rst +++ /dev/null @@ -1,2 +0,0 @@ -:func:`os.path.splitdrive` now understands DOS device paths with UNC -links (beginning ``\\?\UNC\``). Contributed by Barney Gale. diff --git a/Misc/NEWS.d/next/Library/2022-05-08-18-51-14.gh-issue-89336.TL6ip7.rst b/Misc/NEWS.d/next/Library/2022-05-08-18-51-14.gh-issue-89336.TL6ip7.rst deleted file mode 100644 index b4c58c0e48b25e..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-05-08-18-51-14.gh-issue-89336.TL6ip7.rst +++ /dev/null @@ -1,4 +0,0 @@ -Removed :mod:`configparser` module APIs: -the ``SafeConfigParser`` class alias, the ``ParsingError.filename`` -property and parameter, and the ``ConfigParser.readfp`` method, all -of which were deprecated since Python 3.2. diff --git a/Misc/NEWS.d/next/Library/2022-05-09-21-31-41.gh-issue-92445.tJosdm.rst b/Misc/NEWS.d/next/Library/2022-05-09-21-31-41.gh-issue-92445.tJosdm.rst deleted file mode 100644 index ba69a011601fd0..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-05-09-21-31-41.gh-issue-92445.tJosdm.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix a bug in :mod:`argparse` where `nargs="*"` would raise an error instead of returning -an empty list when 0 arguments were supplied if choice was also defined in -``parser.add_argument``. diff --git a/Misc/NEWS.d/next/Library/2022-05-09-22-27-11.gh-issue-92591.V7RCk2.rst b/Misc/NEWS.d/next/Library/2022-05-09-22-27-11.gh-issue-92591.V7RCk2.rst deleted file mode 100644 index cd9b598d1dbca1..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-05-09-22-27-11.gh-issue-92591.V7RCk2.rst +++ /dev/null @@ -1,3 +0,0 @@ -Allow :mod:`logging` filters to return a :class:`logging.LogRecord` instance -so that filters attached to :class:`logging.Handler`\ s can enrich records without -side effects on other handlers. diff --git a/Misc/NEWS.d/next/Library/2022-05-10-16-30-40.gh-issue-90385.1_wBRQ.rst b/Misc/NEWS.d/next/Library/2022-05-10-16-30-40.gh-issue-90385.1_wBRQ.rst deleted file mode 100644 index 24aa4403f8a68a..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-05-10-16-30-40.gh-issue-90385.1_wBRQ.rst +++ /dev/null @@ -1 +0,0 @@ -Add :meth:`pathlib.Path.walk` as an alternative to :func:`os.walk`. diff --git a/Misc/NEWS.d/next/Library/2022-05-12-15-19-00.gh-issue-92734.d0wjDt.rst b/Misc/NEWS.d/next/Library/2022-05-12-15-19-00.gh-issue-92734.d0wjDt.rst deleted file mode 100644 index a2fcd1ed3dc76f..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-05-12-15-19-00.gh-issue-92734.d0wjDt.rst +++ /dev/null @@ -1 +0,0 @@ -Allow multi-element reprs emitted by :mod:`reprlib` to be pretty-printed using configurable indentation. diff --git a/Misc/NEWS.d/next/Library/2022-05-14-09-01-38.gh-issue-89325.ys-2BZ.rst b/Misc/NEWS.d/next/Library/2022-05-14-09-01-38.gh-issue-89325.ys-2BZ.rst deleted file mode 100644 index 175869624f75dd..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-05-14-09-01-38.gh-issue-89325.ys-2BZ.rst +++ /dev/null @@ -1,6 +0,0 @@ -Removed many old deprecated :mod:`unittest` features: -:class:`~unittest.TestCase` method aliases, undocumented and broken -:class:`~unittest.TestCase` method ``assertDictContainsSubset``, -undocumented :meth:`TestLoader.loadTestsFromModule -<unittest.TestLoader.loadTestsFromModule>` parameter *use_load_tests*, and -an underscored alias of the :class:`~unittest.TextTestResult` class. diff --git a/Misc/NEWS.d/next/Library/2022-05-16-14-35-39.gh-issue-92839.owSMyo.rst b/Misc/NEWS.d/next/Library/2022-05-16-14-35-39.gh-issue-92839.owSMyo.rst deleted file mode 100644 index b425bd9c47bc91..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-05-16-14-35-39.gh-issue-92839.owSMyo.rst +++ /dev/null @@ -1 +0,0 @@ -Fixed crash resulting from calling bisect.insort() or bisect.insort_left() with the key argument not equal to None. diff --git a/Misc/NEWS.d/next/Library/2022-05-17-06-27-39.gh-issue-92869.t8oBkw.rst b/Misc/NEWS.d/next/Library/2022-05-17-06-27-39.gh-issue-92869.t8oBkw.rst deleted file mode 100644 index 7787f3419de60e..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-05-17-06-27-39.gh-issue-92869.t8oBkw.rst +++ /dev/null @@ -1,2 +0,0 @@ -Added :class:`~ctypes.c_time_t` to :mod:`ctypes`, which has the same size as -the :c:type:`time_t` type in C. diff --git a/Misc/NEWS.d/next/Library/2022-05-19-17-49-58.gh-issue-92932.o2peTh.rst b/Misc/NEWS.d/next/Library/2022-05-19-17-49-58.gh-issue-92932.o2peTh.rst deleted file mode 100644 index cb76ac5cbd60e1..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-05-19-17-49-58.gh-issue-92932.o2peTh.rst +++ /dev/null @@ -1,3 +0,0 @@ -Now :func:`~dis.dis` and :func:`~dis.get_instructions` handle operand values -for instructions prefixed by ``EXTENDED_ARG_QUICK``. -Patch by Sam Gross and Dong-hee Na. diff --git a/Misc/NEWS.d/next/Library/2022-05-19-22-34-42.gh-issue-92986.e6uKxj.rst b/Misc/NEWS.d/next/Library/2022-05-19-22-34-42.gh-issue-92986.e6uKxj.rst deleted file mode 100644 index 691c0dd3759f8c..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-05-19-22-34-42.gh-issue-92986.e6uKxj.rst +++ /dev/null @@ -1 +0,0 @@ -Fix :func:`ast.unparse` when ``ImportFrom.level`` is None diff --git a/Misc/NEWS.d/next/Library/2022-05-22-16-08-01.gh-issue-89973.jc-Q4g.rst b/Misc/NEWS.d/next/Library/2022-05-22-16-08-01.gh-issue-89973.jc-Q4g.rst deleted file mode 100644 index 7e61fd7d46a0bb..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-05-22-16-08-01.gh-issue-89973.jc-Q4g.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix :exc:`re.error` raised in :mod:`fnmatch` if the pattern contains a -character range with upper bound lower than lower bound (e.g. ``[c-a]``). -Now such ranges are interpreted as empty ranges. diff --git a/Misc/NEWS.d/next/Library/2022-05-24-11-19-04.gh-issue-74696.-cnf-A.rst b/Misc/NEWS.d/next/Library/2022-05-24-11-19-04.gh-issue-74696.-cnf-A.rst deleted file mode 100644 index 5b2e460e9ea075..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-05-24-11-19-04.gh-issue-74696.-cnf-A.rst +++ /dev/null @@ -1,2 +0,0 @@ -:func:`shutil.make_archive` no longer temporarily changes the current -working directory during creation of standard ``.zip`` or tar archives. diff --git a/Misc/NEWS.d/next/Library/2022-05-26-08-41-34.gh-issue-93243.uw6x5z.rst b/Misc/NEWS.d/next/Library/2022-05-26-08-41-34.gh-issue-93243.uw6x5z.rst deleted file mode 100644 index f03ed7b5efc546..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-05-26-08-41-34.gh-issue-93243.uw6x5z.rst +++ /dev/null @@ -1 +0,0 @@ -The :mod:`smtpd` module was removed per the schedule in :pep:`594`. diff --git a/Misc/NEWS.d/next/Library/2022-05-26-09-24-41.gh-issue-93162.W1VuhU.rst b/Misc/NEWS.d/next/Library/2022-05-26-09-24-41.gh-issue-93162.W1VuhU.rst deleted file mode 100644 index 4d916a1df5e065..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-05-26-09-24-41.gh-issue-93162.W1VuhU.rst +++ /dev/null @@ -1,4 +0,0 @@ -Add the ability for :func:`logging.config.dictConfig` to usefully configure -:class:`~logging.handlers.QueueHandler` and :class:`~logging.handlers.QueueListener` -as a pair, and add :func:`logging.getHandlerByName` and :func:`logging.getHandlerNames` -APIs to allow access to handlers by name. diff --git a/Misc/NEWS.d/next/Library/2022-05-26-23-10-55.gh-issue-93156.4XfDVN.rst b/Misc/NEWS.d/next/Library/2022-05-26-23-10-55.gh-issue-93156.4XfDVN.rst deleted file mode 100644 index 165baa08aaab14..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-05-26-23-10-55.gh-issue-93156.4XfDVN.rst +++ /dev/null @@ -1,2 +0,0 @@ -Accessing the :attr:`pathlib.PurePath.parents` sequence of an absolute path -using negative index values produced incorrect results. diff --git a/Misc/NEWS.d/next/Library/2022-05-27-10-52-06.gh-issue-85308.K6r-tJ.rst b/Misc/NEWS.d/next/Library/2022-05-27-10-52-06.gh-issue-85308.K6r-tJ.rst deleted file mode 100644 index 4574264dd4d433..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-05-27-10-52-06.gh-issue-85308.K6r-tJ.rst +++ /dev/null @@ -1,4 +0,0 @@ -Changed :class:`argparse.ArgumentParser` to use :term:`filesystem encoding -and error handler` instead of default text encoding to read arguments from -file (e.g. ``fromfile_prefix_chars`` option). This change affects Windows; -argument file should be encoded with UTF-8 instead of ANSI Codepage. diff --git a/Misc/NEWS.d/next/Library/2022-05-27-13-18-18.gh-issue-93297.e2zuHz.rst b/Misc/NEWS.d/next/Library/2022-05-27-13-18-18.gh-issue-93297.e2zuHz.rst deleted file mode 100644 index a8e4cd93d3047a..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-05-27-13-18-18.gh-issue-93297.e2zuHz.rst +++ /dev/null @@ -1 +0,0 @@ -Make asyncio task groups prevent child tasks from being GCed diff --git a/Misc/NEWS.d/next/Library/2022-05-27-22-17-11.gh-issue-88123.mkYl5q.rst b/Misc/NEWS.d/next/Library/2022-05-27-22-17-11.gh-issue-88123.mkYl5q.rst deleted file mode 100644 index 46bd37a85a7ca1..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-05-27-22-17-11.gh-issue-88123.mkYl5q.rst +++ /dev/null @@ -1,2 +0,0 @@ -Implement Enum __contains__ that returns True or False to replace the -deprecated behaviour that would sometimes raise a TypeError. diff --git a/Misc/NEWS.d/next/Library/2022-05-28-08-02-55.gh-issue-93312.HY0Uzj.rst b/Misc/NEWS.d/next/Library/2022-05-28-08-02-55.gh-issue-93312.HY0Uzj.rst deleted file mode 100644 index f11d04f63532f3..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-05-28-08-02-55.gh-issue-93312.HY0Uzj.rst +++ /dev/null @@ -1,3 +0,0 @@ -Add :data:`os.PIDFD_NONBLOCK` flag to open a file descriptor -for a process with :func:`os.pidfd_open` in non-blocking mode. -Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Library/2022-05-30-21-42-50.gh-issue-83658.01Ntx0.rst b/Misc/NEWS.d/next/Library/2022-05-30-21-42-50.gh-issue-83658.01Ntx0.rst deleted file mode 100644 index a1873095409803..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-05-30-21-42-50.gh-issue-83658.01Ntx0.rst +++ /dev/null @@ -1 +0,0 @@ -Make :class:`multiprocessing.Pool` raise an exception if ``maxtasksperchild`` is not ``None`` or a positive int. diff --git a/Misc/NEWS.d/next/Library/2022-05-31-14-58-40.gh-issue-93353.9Hvm6o.rst b/Misc/NEWS.d/next/Library/2022-05-31-14-58-40.gh-issue-93353.9Hvm6o.rst deleted file mode 100644 index 67be3c68f47cba..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-05-31-14-58-40.gh-issue-93353.9Hvm6o.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix the :func:`importlib.resources.as_file` context manager to remove the -temporary file if destroyed late during Python finalization: keep a local -reference to the :func:`os.remove` function. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Library/2022-06-01-11-24-13.gh-issue-91162.NxvU_u.rst b/Misc/NEWS.d/next/Library/2022-06-01-11-24-13.gh-issue-91162.NxvU_u.rst deleted file mode 100644 index 09fa47c0d23840..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-01-11-24-13.gh-issue-91162.NxvU_u.rst +++ /dev/null @@ -1,5 +0,0 @@ -Support splitting of unpacked arbitrary-length tuple over ``TypeVar`` and -``TypeVarTuple`` parameters. For example: - -* ``A[T, *Ts][*tuple[int, ...]]`` -> ``A[int, *tuple[int, ...]]`` -* ``A[*Ts, T][*tuple[int, ...]]`` -> ``A[*tuple[int, ...], int]`` diff --git a/Misc/NEWS.d/next/Library/2022-06-02-08-40-58.gh-issue-91810.Gtk44w.rst b/Misc/NEWS.d/next/Library/2022-06-02-08-40-58.gh-issue-91810.Gtk44w.rst deleted file mode 100644 index e40005886afc3e..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-02-08-40-58.gh-issue-91810.Gtk44w.rst +++ /dev/null @@ -1,2 +0,0 @@ -Suppress writing an XML declaration in open files in ``ElementTree.write()`` -with ``encoding='unicode'`` and ``xml_declaration=None``. diff --git a/Misc/NEWS.d/next/Library/2022-06-03-22-13-28.gh-issue-93370.tjfu9L.rst b/Misc/NEWS.d/next/Library/2022-06-03-22-13-28.gh-issue-93370.tjfu9L.rst deleted file mode 100644 index bd531503800319..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-03-22-13-28.gh-issue-93370.tjfu9L.rst +++ /dev/null @@ -1 +0,0 @@ -Deprecate :data:`sqlite3.version` and :data:`sqlite3.version_info`. diff --git a/Misc/NEWS.d/next/Library/2022-06-04-00-11-54.gh-issue-93475.vffFw1.rst b/Misc/NEWS.d/next/Library/2022-06-04-00-11-54.gh-issue-93475.vffFw1.rst deleted file mode 100644 index efe7ff3e9b4fb6..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-04-00-11-54.gh-issue-93475.vffFw1.rst +++ /dev/null @@ -1,2 +0,0 @@ -Expose ``FICLONE`` and ``FICLONERANGE`` constants in :mod:`fcntl`. Patch by -Illia Volochii. diff --git a/Misc/NEWS.d/next/Library/2022-06-05-22-22-42.gh-issue-93421.43UO_8.rst b/Misc/NEWS.d/next/Library/2022-06-05-22-22-42.gh-issue-93421.43UO_8.rst deleted file mode 100644 index 9e1d6554e0ab2b..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-05-22-22-42.gh-issue-93421.43UO_8.rst +++ /dev/null @@ -1,3 +0,0 @@ -Update :data:`sqlite3.Cursor.rowcount` when a DML statement has run to -completion. This fixes the row count for SQL queries like -``UPDATE ... RETURNING``. Patch by Erlend E. Aasland. diff --git a/Misc/NEWS.d/next/Library/2022-06-06-12-58-27.gh-issue-79579.e8rB-M.rst b/Misc/NEWS.d/next/Library/2022-06-06-12-58-27.gh-issue-79579.e8rB-M.rst deleted file mode 100644 index 82b1a1c28a6001..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-06-12-58-27.gh-issue-79579.e8rB-M.rst +++ /dev/null @@ -1,2 +0,0 @@ -:mod:`sqlite3` now correctly detects DML queries with leading comments. -Patch by Erlend E. Aasland. diff --git a/Misc/NEWS.d/next/Library/2022-06-06-13-19-43.gh-issue-93521._vE8m9.rst b/Misc/NEWS.d/next/Library/2022-06-06-13-19-43.gh-issue-93521._vE8m9.rst deleted file mode 100644 index 3a3ff4736d2940..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-06-13-19-43.gh-issue-93521._vE8m9.rst +++ /dev/null @@ -1,4 +0,0 @@ -Fixed a case where dataclasses would try to add ``__weakref__`` into the -``__slots__`` for a dataclass that specified ``weakref_slot=True`` when it was -already defined in one of its bases. This resulted in a ``TypeError`` upon the -new class being created. diff --git a/Misc/NEWS.d/next/Library/2022-06-07-14-53-46.gh-issue-90549.T4FMKY.rst b/Misc/NEWS.d/next/Library/2022-06-07-14-53-46.gh-issue-90549.T4FMKY.rst deleted file mode 100644 index 6ebdc394900e63..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-07-14-53-46.gh-issue-90549.T4FMKY.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix a multiprocessing bug where a global named resource (such as a semaphore) -could leak when a child process is spawned (as opposed to forked). diff --git a/Misc/NEWS.d/next/Library/2022-06-08-20-11-02.gh-issue-90494.LIZT85.rst b/Misc/NEWS.d/next/Library/2022-06-08-20-11-02.gh-issue-90494.LIZT85.rst deleted file mode 100644 index 95416768793eaf..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-08-20-11-02.gh-issue-90494.LIZT85.rst +++ /dev/null @@ -1,3 +0,0 @@ -:func:`copy.copy` and :func:`copy.deepcopy` now always raise a TypeError if -``__reduce__()`` returns a tuple with length 6 instead of silently ignore -the 6th item or produce incorrect result. diff --git a/Misc/NEWS.d/next/Library/2022-06-09-10-12-55.gh-issue-90473.683m_C.rst b/Misc/NEWS.d/next/Library/2022-06-09-10-12-55.gh-issue-90473.683m_C.rst deleted file mode 100644 index b053a8e9a08135..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-09-10-12-55.gh-issue-90473.683m_C.rst +++ /dev/null @@ -1,2 +0,0 @@ -Emscripten and WASI have no home directory and cannot provide :pep:`370` -user site directory. diff --git a/Misc/NEWS.d/next/Library/2022-06-09-14-44-21.gh-issue-93626.sfghs46.rst b/Misc/NEWS.d/next/Library/2022-06-09-14-44-21.gh-issue-93626.sfghs46.rst deleted file mode 100644 index c6fa103706e9cd..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-09-14-44-21.gh-issue-93626.sfghs46.rst +++ /dev/null @@ -1 +0,0 @@ -Set ``__future__.annotations`` to have a ``None`` mandatoryRelease to indicate that it is currently 'TBD'. diff --git a/Misc/NEWS.d/next/Library/2022-06-09-17-15-26.gh-issue-91389.OE4vS5.rst b/Misc/NEWS.d/next/Library/2022-06-09-17-15-26.gh-issue-91389.OE4vS5.rst deleted file mode 100644 index 0a126551e4110b..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-09-17-15-26.gh-issue-91389.OE4vS5.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix an issue where :mod:`dis` utilities could report missing or incorrect -position information in the presence of ``CACHE`` entries. diff --git a/Misc/NEWS.d/next/Library/2022-06-11-13-32-17.gh-issue-79512.A1KTDr.rst b/Misc/NEWS.d/next/Library/2022-06-11-13-32-17.gh-issue-79512.A1KTDr.rst deleted file mode 100644 index 5393fb52e93c30..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-11-13-32-17.gh-issue-79512.A1KTDr.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fixed names and ``__module__`` value of :mod:`weakref` classes -:class:`~weakref.ReferenceType`, :class:`~weakref.ProxyType`, -:class:`~weakref.CallableProxyType`. It makes them pickleable. diff --git a/Misc/NEWS.d/next/Library/2022-06-15-21-20-02.gh-issue-93820.FAMLY8.rst b/Misc/NEWS.d/next/Library/2022-06-15-21-20-02.gh-issue-93820.FAMLY8.rst deleted file mode 100644 index e06d897e7d8e6b..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-15-21-20-02.gh-issue-93820.FAMLY8.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fixed a regression when :func:`copy.copy`-ing :class:`enum.Flag` with -multiple flag members. diff --git a/Misc/NEWS.d/next/Library/2022-06-15-21-28-16.gh-issue-83499.u3DQJ-.rst b/Misc/NEWS.d/next/Library/2022-06-15-21-28-16.gh-issue-83499.u3DQJ-.rst deleted file mode 100644 index 6b32b238dfdede..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-15-21-28-16.gh-issue-83499.u3DQJ-.rst +++ /dev/null @@ -1 +0,0 @@ -Fix double closing of file description in :mod:`tempfile`. diff --git a/Misc/NEWS.d/next/Library/2022-06-15-21-35-11.gh-issue-91404.39TZzW.rst b/Misc/NEWS.d/next/Library/2022-06-15-21-35-11.gh-issue-91404.39TZzW.rst deleted file mode 100644 index e20b15c7b75864..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-15-21-35-11.gh-issue-91404.39TZzW.rst +++ /dev/null @@ -1,3 +0,0 @@ -Revert the :mod:`re` memory leak when a match is terminated by a signal or -memory allocation failure as the implemented fix caused a major performance -regression. diff --git a/Misc/NEWS.d/next/Library/2022-06-16-09-24-50.gh-issue-93847.kuv8bN.rst b/Misc/NEWS.d/next/Library/2022-06-16-09-24-50.gh-issue-93847.kuv8bN.rst deleted file mode 100644 index c6947575e67e1c..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-16-09-24-50.gh-issue-93847.kuv8bN.rst +++ /dev/null @@ -1 +0,0 @@ -Fix repr of enum of generic aliases. diff --git a/Misc/NEWS.d/next/Library/2022-06-16-11-16-53.gh-issue-93820.00X0Y5.rst b/Misc/NEWS.d/next/Library/2022-06-16-11-16-53.gh-issue-93820.00X0Y5.rst deleted file mode 100644 index 70bb1e6c0cd764..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-16-11-16-53.gh-issue-93820.00X0Y5.rst +++ /dev/null @@ -1 +0,0 @@ -Pickle :class:`enum.Flag` by name. diff --git a/Misc/NEWS.d/next/Library/2022-06-17-12-02-30.gh-issue-93858.R49ARc.rst b/Misc/NEWS.d/next/Library/2022-06-17-12-02-30.gh-issue-93858.R49ARc.rst deleted file mode 100644 index 508ba626bab41d..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-17-12-02-30.gh-issue-93858.R49ARc.rst +++ /dev/null @@ -1 +0,0 @@ -Prevent error when activating venv in nested fish instances. diff --git a/Misc/NEWS.d/next/Library/2022-06-17-16-00-55.gh-issue-93963.8YYZ-2.rst b/Misc/NEWS.d/next/Library/2022-06-17-16-00-55.gh-issue-93963.8YYZ-2.rst deleted file mode 100644 index 0973982dfeeffd..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-17-16-00-55.gh-issue-93963.8YYZ-2.rst +++ /dev/null @@ -1,2 +0,0 @@ -Officially deprecate from ``importlib.abc`` classes moved to -``importlib.resources.abc``. diff --git a/Misc/NEWS.d/next/Library/2022-06-18-15-06-54.gh-issue-93973.4y6UQT.rst b/Misc/NEWS.d/next/Library/2022-06-18-15-06-54.gh-issue-93973.4y6UQT.rst deleted file mode 100644 index a3e68ce4fab9df..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-18-15-06-54.gh-issue-93973.4y6UQT.rst +++ /dev/null @@ -1 +0,0 @@ -Add keyword argument ``all_errors`` to ``asyncio.create_connection`` so that multiple connection errors can be raised as an ``ExceptionGroup``. diff --git a/Misc/NEWS.d/next/Library/2022-06-20-23-14-43.gh-issue-94028.UofEcX.rst b/Misc/NEWS.d/next/Library/2022-06-20-23-14-43.gh-issue-94028.UofEcX.rst deleted file mode 100644 index 5775b2276d70b4..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-20-23-14-43.gh-issue-94028.UofEcX.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix a regression in the :mod:`sqlite3` where statement objects were not -properly cleared and reset after use in cursor iters. The regression was -introduced by PR 27884 in Python 3.11a1. Patch by Erlend E. Aasland. diff --git a/Misc/NEWS.d/next/Library/2022-06-21-11-40-31.gh-issue-84753.FW1pxO.rst b/Misc/NEWS.d/next/Library/2022-06-21-11-40-31.gh-issue-84753.FW1pxO.rst deleted file mode 100644 index eeae2edf7161aa..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-21-11-40-31.gh-issue-84753.FW1pxO.rst +++ /dev/null @@ -1,7 +0,0 @@ -:func:`inspect.iscoroutinefunction`, :func:`inspect.isgeneratorfunction`, -and :func:`inspect.isasyncgenfunction` now properly return ``True`` for -duck-typed function-like objects like instances of -:class:`unittest.mock.AsyncMock`. - -This makes :func:`inspect.iscoroutinefunction` consistent with the -behavior of :func:`asyncio.iscoroutinefunction`. Patch by Mehdi ABAAKOUK. diff --git a/Misc/NEWS.d/next/Library/2022-06-22-11-16-11.gh-issue-94101.V9vDG8.rst b/Misc/NEWS.d/next/Library/2022-06-22-11-16-11.gh-issue-94101.V9vDG8.rst deleted file mode 100644 index bcef0ca07470a6..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-22-11-16-11.gh-issue-94101.V9vDG8.rst +++ /dev/null @@ -1,3 +0,0 @@ -Manual instantiation of :class:`ssl.SSLSession` objects is no longer allowed -as it lead to misconfigured instances that crashed the interpreter when -attributes where accessed on them. diff --git a/Misc/NEWS.d/next/Library/2022-06-23-13-12-05.gh-issue-91742.sNytVX.rst b/Misc/NEWS.d/next/Library/2022-06-23-13-12-05.gh-issue-91742.sNytVX.rst deleted file mode 100644 index 30c92363b10b36..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-23-13-12-05.gh-issue-91742.sNytVX.rst +++ /dev/null @@ -1 +0,0 @@ -Fix :mod:`pdb` crash after jump caused by a null pointer dereference. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Library/2022-06-23-14-35-10.gh-issue-94169.jeba90.rst b/Misc/NEWS.d/next/Library/2022-06-23-14-35-10.gh-issue-94169.jeba90.rst deleted file mode 100644 index 40c1fc10bc0e46..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-23-14-35-10.gh-issue-94169.jeba90.rst +++ /dev/null @@ -1,4 +0,0 @@ -Remove ``io.OpenWrapper`` and ``_pyio.OpenWrapper``, deprecated in Python -3.10: just use :func:`open` instead. The :func:`open` (:func:`io.open`) -function is a built-in function. Since Python 3.10, :func:`_pyio.open` is -also a static method. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Library/2022-06-24-09-41-41.gh-issue-94196.r2KyfS.rst b/Misc/NEWS.d/next/Library/2022-06-24-09-41-41.gh-issue-94196.r2KyfS.rst deleted file mode 100644 index e22776f1b45e6f..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-24-09-41-41.gh-issue-94196.r2KyfS.rst +++ /dev/null @@ -1,4 +0,0 @@ -:mod:`gzip`: Remove the ``filename`` attribute of :class:`gzip.GzipFile`, -deprecated since Python 2.6, use the :attr:`~gzip.GzipFile.name` attribute -instead. In write mode, the ``filename`` attribute added ``'.gz'`` file -extension if it was not present. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Library/2022-06-24-10-18-59.gh-issue-94199.kYOo8g.rst b/Misc/NEWS.d/next/Library/2022-06-24-10-18-59.gh-issue-94199.kYOo8g.rst deleted file mode 100644 index f3a9a35e8fcaa5..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-24-10-18-59.gh-issue-94199.kYOo8g.rst +++ /dev/null @@ -1,5 +0,0 @@ -:mod:`hashlib`: Remove the pure Python implementation of -:func:`hashlib.pbkdf2_hmac()`, deprecated in Python 3.10. Python 3.10 and -newer requires OpenSSL 1.1.1 (:pep:`644`): this OpenSSL version provides -a C implementation of :func:`~hashlib.pbkdf2_hmac()` which is faster. Patch -by Victor Stinner. diff --git a/Misc/NEWS.d/next/Library/2022-06-24-10-29-19.gh-issue-94199.pfehmz.rst b/Misc/NEWS.d/next/Library/2022-06-24-10-29-19.gh-issue-94199.pfehmz.rst deleted file mode 100644 index ed325c0f6886f5..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-24-10-29-19.gh-issue-94199.pfehmz.rst +++ /dev/null @@ -1,3 +0,0 @@ -Remove the :func:`ssl.RAND_pseudo_bytes` function, deprecated in Python 3.6: -use :func:`os.urandom` or :func:`ssl.RAND_bytes` instead. Patch by Victor -Stinner. diff --git a/Misc/NEWS.d/next/Library/2022-06-24-10-39-56.gh-issue-94199.MIuckY.rst b/Misc/NEWS.d/next/Library/2022-06-24-10-39-56.gh-issue-94199.MIuckY.rst deleted file mode 100644 index e1fb163d55d599..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-24-10-39-56.gh-issue-94199.MIuckY.rst +++ /dev/null @@ -1,7 +0,0 @@ -Remove the :func:`ssl.wrap_socket` function, deprecated in Python 3.7: instead, -create a :class:`ssl.SSLContext` object and call its -:class:`ssl.SSLContext.wrap_socket` method. Any package that still uses -:func:`ssl.wrap_socket` is broken and insecure. The function neither sends a -SNI TLS extension nor validates server hostname. Code is subject to `CWE-295 -<https://cwe.mitre.org/data/definitions/295.html>`_: Improper Certificate -Validation. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Library/2022-06-24-14-25-26.gh-issue-94214.03pXR5.rst b/Misc/NEWS.d/next/Library/2022-06-24-14-25-26.gh-issue-94214.03pXR5.rst deleted file mode 100644 index 7dccc0abd4af8e..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-24-14-25-26.gh-issue-94214.03pXR5.rst +++ /dev/null @@ -1 +0,0 @@ -Document the ``context`` object used in the ``venv.EnvBuilder`` class, and add the new environment's library path to it. diff --git a/Misc/NEWS.d/next/Library/2022-06-24-17-11-33.gh-issue-94199.7releN.rst b/Misc/NEWS.d/next/Library/2022-06-24-17-11-33.gh-issue-94199.7releN.rst deleted file mode 100644 index 68bd283b990741..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-24-17-11-33.gh-issue-94199.7releN.rst +++ /dev/null @@ -1,4 +0,0 @@ -Remove the :func:`ssl.match_hostname` function. The -:func:`ssl.match_hostname` was deprecated in Python 3.7. OpenSSL performs -hostname matching since Python 3.7, Python no longer uses the -:func:`ssl.match_hostname` function. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Library/2022-06-24-18-20-42.gh-issue-94226.8ZL4Fm.rst b/Misc/NEWS.d/next/Library/2022-06-24-18-20-42.gh-issue-94226.8ZL4Fm.rst deleted file mode 100644 index 099f945c23f2e4..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-24-18-20-42.gh-issue-94226.8ZL4Fm.rst +++ /dev/null @@ -1,2 +0,0 @@ -Remove the :func:`locale.format` function, deprecated in Python 3.7: use -:func:`locale.format_string` instead. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Library/2022-06-24-19-16-09.gh-issue-93096.r1_oIc.rst b/Misc/NEWS.d/next/Library/2022-06-24-19-16-09.gh-issue-93096.r1_oIc.rst deleted file mode 100644 index 536a9d7cab1b81..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-24-19-16-09.gh-issue-93096.r1_oIc.rst +++ /dev/null @@ -1,3 +0,0 @@ -Removed undocumented ``-t`` argument of ``python -m base64``. Use -``python -m unittest test.test_base64.LegacyBase64TestCase.test_encodebytes`` -instead. diff --git a/Misc/NEWS.d/next/Library/2022-06-24-19-23-59.gh-issue-94207.VhS1eS.rst b/Misc/NEWS.d/next/Library/2022-06-24-19-23-59.gh-issue-94207.VhS1eS.rst deleted file mode 100644 index 3d38524ac0e83c..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-24-19-23-59.gh-issue-94207.VhS1eS.rst +++ /dev/null @@ -1,2 +0,0 @@ -Made :class:`_struct.Struct` GC-tracked in order to fix a reference leak in -the :mod:`_struct` module. diff --git a/Misc/NEWS.d/next/Library/2022-06-24-19-40-40.gh-issue-93096.3RlK2d.rst b/Misc/NEWS.d/next/Library/2022-06-24-19-40-40.gh-issue-93096.3RlK2d.rst deleted file mode 100644 index f7d9e33eb414db..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-24-19-40-40.gh-issue-93096.3RlK2d.rst +++ /dev/null @@ -1,2 +0,0 @@ -Removed undocumented ``python -m codecs``. Use ``python -m unittest -test.test_codecs.EncodedFileTest`` instead. diff --git a/Misc/NEWS.d/next/Library/2022-06-24-20-00-57.gh-issue-94216.hxnQPu.rst b/Misc/NEWS.d/next/Library/2022-06-24-20-00-57.gh-issue-94216.hxnQPu.rst deleted file mode 100644 index ae3c2e7e71f355..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-24-20-00-57.gh-issue-94216.hxnQPu.rst +++ /dev/null @@ -1 +0,0 @@ -The :mod:`dis` module now has the opcodes for pseudo instructions (those which are used by the compiler during code generation but then removed or replaced by real opcodes before the final bytecode is emitted). diff --git a/Misc/NEWS.d/next/Library/2022-06-25-13-38-53.gh-issue-93259.FAGw-2.rst b/Misc/NEWS.d/next/Library/2022-06-25-13-38-53.gh-issue-93259.FAGw-2.rst deleted file mode 100644 index d346b65836b7a3..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-25-13-38-53.gh-issue-93259.FAGw-2.rst +++ /dev/null @@ -1,2 +0,0 @@ -Now raise ``ValueError`` when ``None`` or an empty string are passed to -``Distribution.from_name`` (and other callers). diff --git a/Misc/NEWS.d/next/Library/2022-06-25-16-27-02.gh-issue-94254.beP16v.rst b/Misc/NEWS.d/next/Library/2022-06-25-16-27-02.gh-issue-94254.beP16v.rst deleted file mode 100644 index 81482bcd4f8974..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-25-16-27-02.gh-issue-94254.beP16v.rst +++ /dev/null @@ -1 +0,0 @@ -Fixed types of :mod:`struct` module to be immutable. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Library/2022-06-25-23-44-44.gh-issue-90016.EB409s.rst b/Misc/NEWS.d/next/Library/2022-06-25-23-44-44.gh-issue-90016.EB409s.rst deleted file mode 100644 index 040ba44be2b912..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-25-23-44-44.gh-issue-90016.EB409s.rst +++ /dev/null @@ -1,2 +0,0 @@ -Deprecate :mod:`sqlite3` :ref:`default adapters and converters -<sqlite3-default-converters>`. Patch by Erlend E. Aasland. diff --git a/Misc/NEWS.d/next/Library/2022-06-26-10-59-15.gh-issue-89988.K8rnmt.rst b/Misc/NEWS.d/next/Library/2022-06-26-10-59-15.gh-issue-89988.K8rnmt.rst deleted file mode 100644 index 811a8d6031e0b5..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-26-10-59-15.gh-issue-89988.K8rnmt.rst +++ /dev/null @@ -1 +0,0 @@ -Fix memory leak in :class:`pickle.Pickler` when looking up :attr:`dispatch_table`. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Library/2022-06-27-10-33-18.gh-issue-94318.jR4_QV.rst b/Misc/NEWS.d/next/Library/2022-06-27-10-33-18.gh-issue-94318.jR4_QV.rst deleted file mode 100644 index 97a7cd8c9e7a50..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-27-10-33-18.gh-issue-94318.jR4_QV.rst +++ /dev/null @@ -1 +0,0 @@ -Strip trailing spaces in :mod:`pydoc` text output. diff --git a/Misc/NEWS.d/next/Library/2022-06-28-00-24-48.gh-issue-94352.JY1Ayt.rst b/Misc/NEWS.d/next/Library/2022-06-28-00-24-48.gh-issue-94352.JY1Ayt.rst deleted file mode 100644 index 3a166abdcc3203..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-28-00-24-48.gh-issue-94352.JY1Ayt.rst +++ /dev/null @@ -1,3 +0,0 @@ -:func:`shlex.split`: Passing ``None`` for *s* argument now raises an exception, -rather than reading :data:`sys.stdin`. The feature was deprecated in Python -3.9. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Library/2022-06-28-14-29-21.gh-issue-94379.RrgKfh.rst b/Misc/NEWS.d/next/Library/2022-06-28-14-29-21.gh-issue-94379.RrgKfh.rst deleted file mode 100644 index 24eafa1048ab4b..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-28-14-29-21.gh-issue-94379.RrgKfh.rst +++ /dev/null @@ -1,3 +0,0 @@ -:mod:`zipimport`: Remove ``find_loader()`` and ``find_module()`` methods, -deprecated in Python 3.10: use the ``find_spec()`` method instead. See -:pep:`451` for the rationale. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Library/2022-06-28-14-41-22.gh-issue-94383.CXnquo.rst b/Misc/NEWS.d/next/Library/2022-06-28-14-41-22.gh-issue-94383.CXnquo.rst deleted file mode 100644 index 9ed476b717f334..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-28-14-41-22.gh-issue-94383.CXnquo.rst +++ /dev/null @@ -1,5 +0,0 @@ -:mod:`xml.etree`: Remove the ``ElementTree.Element.copy()`` method of the -pure Python implementation, deprecated in Python 3.10, use the -:func:`copy.copy` function instead. The C implementation of :mod:`xml.etree` -has no ``copy()`` method, only a ``__copy__()`` method. Patch by Victor -Stinner. diff --git a/Misc/NEWS.d/next/Library/2022-06-29-04-42-56.gh-issue-94398.YOq_bJ.rst b/Misc/NEWS.d/next/Library/2022-06-29-04-42-56.gh-issue-94398.YOq_bJ.rst deleted file mode 100644 index c6e7e967d106e1..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-29-04-42-56.gh-issue-94398.YOq_bJ.rst +++ /dev/null @@ -1 +0,0 @@ -Once a :class:`asyncio.TaskGroup` has started shutting down (i.e., at least one task has failed and the task group has started cancelling the remaining tasks), it should not be possible to add new tasks to the task group. diff --git a/Misc/NEWS.d/next/Library/2022-06-29-09-48-37.gh-issue-92336.otA6c6.rst b/Misc/NEWS.d/next/Library/2022-06-29-09-48-37.gh-issue-92336.otA6c6.rst deleted file mode 100644 index eb74e0ceb74466..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-06-29-09-48-37.gh-issue-92336.otA6c6.rst +++ /dev/null @@ -1 +0,0 @@ -Fix bug where :meth:`linecache.getline` fails on bad files with :exc:`UnicodeDecodeError` or :exc:`SyntaxError`. It now returns an empty string as per the documentation. diff --git a/Misc/NEWS.d/next/Library/2022-07-02-19-46-30.gh-issue-94510.xOatDC.rst b/Misc/NEWS.d/next/Library/2022-07-02-19-46-30.gh-issue-94510.xOatDC.rst deleted file mode 100644 index 55856d5756559f..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-02-19-46-30.gh-issue-94510.xOatDC.rst +++ /dev/null @@ -1,2 +0,0 @@ -Re-entrant calls to :func:`sys.setprofile` and :func:`sys.settrace` now -raise :exc:`RuntimeError`. Patch by Pablo Galindo. diff --git a/Misc/NEWS.d/next/Library/2022-07-03-16-41-03.gh-issue-94382.zuVZeM.rst b/Misc/NEWS.d/next/Library/2022-07-03-16-41-03.gh-issue-94382.zuVZeM.rst deleted file mode 100644 index d79300778f762c..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-03-16-41-03.gh-issue-94382.zuVZeM.rst +++ /dev/null @@ -1 +0,0 @@ -Port static types of ``_multiprocessing`` module to heap types. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Library/2022-07-05-17-22-00.gh-issue-94343.kf4H5r.rst b/Misc/NEWS.d/next/Library/2022-07-05-17-22-00.gh-issue-94343.kf4H5r.rst deleted file mode 100644 index f666c2b0ec125e..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-05-17-22-00.gh-issue-94343.kf4H5r.rst +++ /dev/null @@ -1 +0,0 @@ -Allow setting the attributes of ``reprlib.Repr`` during object initialization diff --git a/Misc/NEWS.d/next/Library/2022-07-06-06-02-02.gh-issue-93896.vIgWGr.rst b/Misc/NEWS.d/next/Library/2022-07-06-06-02-02.gh-issue-93896.vIgWGr.rst deleted file mode 100644 index 2283e14de9a9ad..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-06-06-02-02.gh-issue-93896.vIgWGr.rst +++ /dev/null @@ -1 +0,0 @@ -Fix :func:`asyncio.run` and :class:`unittest.IsolatedAsyncioTestCase` to always the set event loop as it was done in Python 3.10 and earlier. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Library/2022-07-06-14-45-12.gh-issue-93910.iZcp67.rst b/Misc/NEWS.d/next/Library/2022-07-06-14-45-12.gh-issue-93910.iZcp67.rst deleted file mode 100644 index 2e589118e3efd3..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-06-14-45-12.gh-issue-93910.iZcp67.rst +++ /dev/null @@ -1,3 +0,0 @@ -The ability to access the other values of an enum on an enum (e.g. -``Color.RED.BLUE``) has been restored in order to fix a performance -regression. diff --git a/Misc/NEWS.d/next/Library/2022-07-06-14-57-33.gh-issue-94619.PRqKVX.rst b/Misc/NEWS.d/next/Library/2022-07-06-14-57-33.gh-issue-94619.PRqKVX.rst deleted file mode 100644 index a7905034424684..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-06-14-57-33.gh-issue-94619.PRqKVX.rst +++ /dev/null @@ -1 +0,0 @@ -Remove the long-deprecated `module_repr()` from `importlib`. diff --git a/Misc/NEWS.d/next/Library/2022-07-06-16-01-08.gh-issue-94607.Q6RYfz.rst b/Misc/NEWS.d/next/Library/2022-07-06-16-01-08.gh-issue-94607.Q6RYfz.rst deleted file mode 100644 index 3bbb9172f26195..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-06-16-01-08.gh-issue-94607.Q6RYfz.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix subclassing complex generics with type variables in :mod:`typing`. Previously an error message saying ``Some type variables ... are not listed in Generic[...]`` was shown. -:mod:`typing` no longer populates ``__parameters__`` with the ``__parameters__`` of a Python class. diff --git a/Misc/NEWS.d/next/Library/2022-07-06-21-24-03.gh-issue-92546.s5Upkh.rst b/Misc/NEWS.d/next/Library/2022-07-06-21-24-03.gh-issue-92546.s5Upkh.rst deleted file mode 100644 index 0ea676ef5b0d8d..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-06-21-24-03.gh-issue-92546.s5Upkh.rst +++ /dev/null @@ -1,2 +0,0 @@ -An undocumented ``python -m pprint`` benchmark is moved into ``pprint`` -suite of pyperformance. Patch by Oleg Iarygin. diff --git a/Misc/NEWS.d/next/Library/2022-07-06-22-41-51.gh-issue-94309._XswsX.rst b/Misc/NEWS.d/next/Library/2022-07-06-22-41-51.gh-issue-94309._XswsX.rst deleted file mode 100644 index b1d45586e9c496..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-06-22-41-51.gh-issue-94309._XswsX.rst +++ /dev/null @@ -1 +0,0 @@ -Deprecate aliases :class:`typing.Hashable` and :class:`typing.Sized` diff --git a/Misc/NEWS.d/next/Library/2022-07-07-15-46-55.gh-issue-94637.IYEiUM.rst b/Misc/NEWS.d/next/Library/2022-07-07-15-46-55.gh-issue-94637.IYEiUM.rst deleted file mode 100644 index 20cbbcd5088b78..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-07-15-46-55.gh-issue-94637.IYEiUM.rst +++ /dev/null @@ -1,3 +0,0 @@ -:meth:`SSLContext.set_default_verify_paths` now releases the GIL around -``SSL_CTX_set_default_verify_paths`` call. The function call performs I/O -and CPU intensive work. diff --git a/Misc/NEWS.d/next/Library/2022-07-08-17-49-12.gh-issue-87822.F9dzkf.rst b/Misc/NEWS.d/next/Library/2022-07-08-17-49-12.gh-issue-87822.F9dzkf.rst deleted file mode 100644 index 7b27f5df45ba20..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-08-17-49-12.gh-issue-87822.F9dzkf.rst +++ /dev/null @@ -1 +0,0 @@ -When called with ``capture_locals=True``, the :mod:`traceback` module functions swallow exceptions raised from calls to ``repr()`` on local variables of frames. This is in order to prioritize the original exception over rendering errors. An indication of the failure is printed in place of the missing value. (Patch by Simon-Martin Schroeder). diff --git a/Misc/NEWS.d/next/Library/2022-07-09-08-55-04.gh-issue-74116.0XwYC1.rst b/Misc/NEWS.d/next/Library/2022-07-09-08-55-04.gh-issue-74116.0XwYC1.rst deleted file mode 100644 index 33782598745b78..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-09-08-55-04.gh-issue-74116.0XwYC1.rst +++ /dev/null @@ -1 +0,0 @@ -Allow :meth:`asyncio.StreamWriter.drain` to be awaited concurrently by multiple tasks. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Library/2022-07-09-15-17-02.gh-issue-81620.L0O_bV.rst b/Misc/NEWS.d/next/Library/2022-07-09-15-17-02.gh-issue-81620.L0O_bV.rst deleted file mode 100644 index b4ccea4924ff67..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-09-15-17-02.gh-issue-81620.L0O_bV.rst +++ /dev/null @@ -1 +0,0 @@ -Add random.binomialvariate(). diff --git a/Misc/NEWS.d/next/Library/2022-07-11-10-41-48.gh-issue-94736.EbsgeK.rst b/Misc/NEWS.d/next/Library/2022-07-11-10-41-48.gh-issue-94736.EbsgeK.rst deleted file mode 100644 index 3080672ecdfbb8..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-11-10-41-48.gh-issue-94736.EbsgeK.rst +++ /dev/null @@ -1 +0,0 @@ -Fix crash when deallocating an instance of a subclass of ``_multiprocessing.SemLock``. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Library/2022-07-14-00-43-52.gh-issue-94821.e17ghU.rst b/Misc/NEWS.d/next/Library/2022-07-14-00-43-52.gh-issue-94821.e17ghU.rst deleted file mode 100644 index bf7885aef8cbf9..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-14-00-43-52.gh-issue-94821.e17ghU.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix binding of unix socket to empty address on Linux to use an available -address from the abstract namespace, instead of "\0". diff --git a/Misc/NEWS.d/next/Library/2022-07-15-08-13-51.gh-issue-94857.9_KvZJ.rst b/Misc/NEWS.d/next/Library/2022-07-15-08-13-51.gh-issue-94857.9_KvZJ.rst deleted file mode 100644 index e684415595d1d2..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-15-08-13-51.gh-issue-94857.9_KvZJ.rst +++ /dev/null @@ -1 +0,0 @@ -Fix refleak in ``_io.TextIOWrapper.reconfigure``. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Library/2022-07-19-15-37-11.gh-issue-95005.iRmZ74.rst b/Misc/NEWS.d/next/Library/2022-07-19-15-37-11.gh-issue-95005.iRmZ74.rst deleted file mode 100644 index 787f3146ab7770..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-19-15-37-11.gh-issue-95005.iRmZ74.rst +++ /dev/null @@ -1,2 +0,0 @@ -Replace :c:expr:`_PyAccu` with :c:expr:`_PyUnicodeWriter` in JSON encoder -and StringIO and remove the :c:expr:`_PyAccu` implementation. diff --git a/Misc/NEWS.d/next/Library/2022-07-20-00-23-58.gh-issue-77617.XGaqSQ.rst b/Misc/NEWS.d/next/Library/2022-07-20-00-23-58.gh-issue-77617.XGaqSQ.rst deleted file mode 100644 index 1cbaa7dfe15ec2..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-20-00-23-58.gh-issue-77617.XGaqSQ.rst +++ /dev/null @@ -1,2 +0,0 @@ -Add :mod:`sqlite3` :ref:`command-line interface <sqlite3-cli>`. -Patch by Erlend Aasland. diff --git a/Misc/NEWS.d/next/Library/2022-07-20-22-49-48.gh-issue-95066.TuCu0E.rst b/Misc/NEWS.d/next/Library/2022-07-20-22-49-48.gh-issue-95066.TuCu0E.rst deleted file mode 100644 index 05ae4a6a2761af..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-20-22-49-48.gh-issue-95066.TuCu0E.rst +++ /dev/null @@ -1 +0,0 @@ -Replaced assert with exception in :func:`ast.parse`, when ``feature_version`` has an invalid major version. Patch by Shantanu Jain. diff --git a/Misc/NEWS.d/next/Library/2022-07-21-19-55-49.gh-issue-95105.BIX2Km.rst b/Misc/NEWS.d/next/Library/2022-07-21-19-55-49.gh-issue-95105.BIX2Km.rst deleted file mode 100644 index 58af62b1edc871..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-21-19-55-49.gh-issue-95105.BIX2Km.rst +++ /dev/null @@ -1 +0,0 @@ -:meth:`wsgiref.types.InputStream.__iter__` should return ``Iterator[bytes]``, not ``Iterable[bytes]``. Patch by Shantanu Jain. diff --git a/Misc/NEWS.d/next/Library/2022-07-21-22-59-22.gh-issue-95109.usxA9r.rst b/Misc/NEWS.d/next/Library/2022-07-21-22-59-22.gh-issue-95109.usxA9r.rst deleted file mode 100644 index 40196dd214a283..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-21-22-59-22.gh-issue-95109.usxA9r.rst +++ /dev/null @@ -1 +0,0 @@ -Ensure that timeouts scheduled with :class:`asyncio.Timeout` that have already expired are delivered promptly. diff --git a/Misc/NEWS.d/next/Library/2022-07-22-00-58-49.gh-issue-95077.4Z6CNC.rst b/Misc/NEWS.d/next/Library/2022-07-22-00-58-49.gh-issue-95077.4Z6CNC.rst deleted file mode 100644 index 09f350067cd31b..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-22-00-58-49.gh-issue-95077.4Z6CNC.rst +++ /dev/null @@ -1 +0,0 @@ -Add deprecation warning for enum ``member.member`` access (e.g. ``Color.RED.BLUE``). diff --git a/Misc/NEWS.d/next/Library/2022-07-22-17-19-57.gh-issue-93157.RXByAk.rst b/Misc/NEWS.d/next/Library/2022-07-22-17-19-57.gh-issue-93157.RXByAk.rst deleted file mode 100644 index 054b318ec63f0c..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-22-17-19-57.gh-issue-93157.RXByAk.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix :mod:`fileinput` module didn't support ``errors`` option when -``inplace`` is true. diff --git a/Misc/NEWS.d/next/Library/2022-07-22-21-18-17.gh-issue-95132.n9anlw.rst b/Misc/NEWS.d/next/Library/2022-07-22-21-18-17.gh-issue-95132.n9anlw.rst deleted file mode 100644 index 64666ad84fb4a6..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-22-21-18-17.gh-issue-95132.n9anlw.rst +++ /dev/null @@ -1,4 +0,0 @@ -Fix a :mod:`sqlite3` regression where ``*args`` and ``**kwds`` were -incorrectly relayed from :py:func:`~sqlite3.connect` to the -:class:`~sqlite3.Connection` factory. The regression was introduced in 3.11a1 -with PR 24421 (:gh:`85128`). Patch by Erlend E. Aasland.` diff --git a/Misc/NEWS.d/next/Library/2022-07-23-10-42-05.gh-issue-95166.xw6p3C.rst b/Misc/NEWS.d/next/Library/2022-07-23-10-42-05.gh-issue-95166.xw6p3C.rst deleted file mode 100644 index 34b017078436d2..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-23-10-42-05.gh-issue-95166.xw6p3C.rst +++ /dev/null @@ -1 +0,0 @@ -Fix :meth:`concurrent.futures.Executor.map` to cancel the currently waiting on future on an error - e.g. TimeoutError or KeyboardInterrupt. diff --git a/Misc/NEWS.d/next/Library/2022-07-23-10-50-05.gh-issue-93899.VT34A5.rst b/Misc/NEWS.d/next/Library/2022-07-23-10-50-05.gh-issue-93899.VT34A5.rst deleted file mode 100644 index e63475f8ba96f6..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-23-10-50-05.gh-issue-93899.VT34A5.rst +++ /dev/null @@ -1 +0,0 @@ -Fix check for existence of :data:`os.EFD_CLOEXEC`, :data:`os.EFD_NONBLOCK` and :data:`os.EFD_SEMAPHORE` flags on older kernel versions where these flags are not present. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Library/2022-07-24-09-15-35.gh-issue-95194.ERVmqG.rst b/Misc/NEWS.d/next/Library/2022-07-24-09-15-35.gh-issue-95194.ERVmqG.rst deleted file mode 100644 index c69651923b410e..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-24-09-15-35.gh-issue-95194.ERVmqG.rst +++ /dev/null @@ -1 +0,0 @@ -Upgrade bundled pip to 22.2. diff --git a/Misc/NEWS.d/next/Library/2022-07-24-12-00-06.gh-issue-95199.-5A64k.rst b/Misc/NEWS.d/next/Library/2022-07-24-12-00-06.gh-issue-95199.-5A64k.rst deleted file mode 100644 index f3d9cf3306b8d0..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-24-12-00-06.gh-issue-95199.-5A64k.rst +++ /dev/null @@ -1 +0,0 @@ -Upgrade bundled setuptools to 63.2.0. diff --git a/Misc/NEWS.d/next/Library/2022-07-24-12-59-02.gh-issue-95087.VvqXkN.rst b/Misc/NEWS.d/next/Library/2022-07-24-12-59-02.gh-issue-95087.VvqXkN.rst deleted file mode 100644 index 48a5c1af74907a..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-24-12-59-02.gh-issue-95087.VvqXkN.rst +++ /dev/null @@ -1 +0,0 @@ -Fix IndexError in parsing invalid date in the :mod:`email` module. diff --git a/Misc/NEWS.d/next/Library/2022-07-24-18-00-42.gh-issue-95097.lu5qNf.rst b/Misc/NEWS.d/next/Library/2022-07-24-18-00-42.gh-issue-95097.lu5qNf.rst deleted file mode 100644 index 2840f057a9c1dc..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-24-18-00-42.gh-issue-95097.lu5qNf.rst +++ /dev/null @@ -1 +0,0 @@ -Fix :func:`asyncio.run` for :class:`asyncio.Task` implementations without :meth:`~asyncio.Task.uncancel` method. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Library/2022-07-25-15-45-06.gh-issue-95231.i807-g.rst b/Misc/NEWS.d/next/Library/2022-07-25-15-45-06.gh-issue-95231.i807-g.rst deleted file mode 100644 index aa53f2938bc930..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-25-15-45-06.gh-issue-95231.i807-g.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fail gracefully if :data:`~errno.EPERM` or :data:`~errno.ENOSYS` is raised when loading -:mod:`crypt` methods. This may happen when trying to load ``MD5`` on a Linux kernel -with :abbr:`FIPS (Federal Information Processing Standard)` enabled. diff --git a/Misc/NEWS.d/next/Library/2022-07-27-11-35-45.gh-issue-95045.iysT-Q.rst b/Misc/NEWS.d/next/Library/2022-07-27-11-35-45.gh-issue-95045.iysT-Q.rst deleted file mode 100644 index d4ab325e036583..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-27-11-35-45.gh-issue-95045.iysT-Q.rst +++ /dev/null @@ -1 +0,0 @@ -Fix GC crash when deallocating ``_lsprof.Profiler`` by untracking it before calling any callbacks. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Library/2022-07-27-19-43-07.gh-issue-95339.NuVQ68.rst b/Misc/NEWS.d/next/Library/2022-07-27-19-43-07.gh-issue-95339.NuVQ68.rst deleted file mode 100644 index 6674a4a2695398..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-27-19-43-07.gh-issue-95339.NuVQ68.rst +++ /dev/null @@ -1 +0,0 @@ -Update bundled pip to 22.2.1. diff --git a/Misc/NEWS.d/next/Library/2022-07-28-17-14-38.gh-issue-95385.6YlsDI.rst b/Misc/NEWS.d/next/Library/2022-07-28-17-14-38.gh-issue-95385.6YlsDI.rst deleted file mode 100644 index 89fa9c2b27664d..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-28-17-14-38.gh-issue-95385.6YlsDI.rst +++ /dev/null @@ -1 +0,0 @@ -Faster ``json.dumps()`` when sorting of keys is not requested (default). diff --git a/Misc/NEWS.d/next/Library/2022-07-29-20-58-37.gh-issue-94909.YjMusj.rst b/Misc/NEWS.d/next/Library/2022-07-29-20-58-37.gh-issue-94909.YjMusj.rst deleted file mode 100644 index b6d853888101c2..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-07-29-20-58-37.gh-issue-94909.YjMusj.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix incorrect joining of relative Windows paths with drives in -:class:`pathlib.PurePath` initializer. diff --git a/Misc/NEWS.d/next/Library/2022-08-03-16-52-32.gh-issue-95289.FMnHlV.rst b/Misc/NEWS.d/next/Library/2022-08-03-16-52-32.gh-issue-95289.FMnHlV.rst deleted file mode 100644 index d802f557217b48..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-08-03-16-52-32.gh-issue-95289.FMnHlV.rst +++ /dev/null @@ -1 +0,0 @@ -Fix :class:`asyncio.TaskGroup` to propagate exception when :exc:`asyncio.CancelledError` was replaced with another exception by a context manger. Patch by Kumar Aditya and Guido van Rossum. diff --git a/Misc/NEWS.d/next/Library/2022-08-03-21-01-17.gh-issue-95609.xxyjyX.rst b/Misc/NEWS.d/next/Library/2022-08-03-21-01-17.gh-issue-95609.xxyjyX.rst deleted file mode 100644 index 81c02ae900f7a5..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-08-03-21-01-17.gh-issue-95609.xxyjyX.rst +++ /dev/null @@ -1 +0,0 @@ -Update bundled pip to 22.2.2. diff --git a/Misc/NEWS.d/next/Library/2022-08-07-14-56-23.gh-issue-95149.U0c6Ib.rst b/Misc/NEWS.d/next/Library/2022-08-07-14-56-23.gh-issue-95149.U0c6Ib.rst deleted file mode 100644 index 6393444b53fb64..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-08-07-14-56-23.gh-issue-95149.U0c6Ib.rst +++ /dev/null @@ -1,2 +0,0 @@ -The :class:`HTTPStatus <http.HTTPStatus>` enum offers a couple of properties -to indicate the HTTP status category e.g. ``HTTPStatus.OK.is_success``. diff --git a/Misc/NEWS.d/next/Library/2022-08-08-01-42-11.gh-issue-95704.MOPFfX.rst b/Misc/NEWS.d/next/Library/2022-08-08-01-42-11.gh-issue-95704.MOPFfX.rst deleted file mode 100644 index 31f9fc6547d90f..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-08-08-01-42-11.gh-issue-95704.MOPFfX.rst +++ /dev/null @@ -1,2 +0,0 @@ -When a task catches :exc:`asyncio.CancelledError` and raises some other error, -the other error should generally not silently be suppressed. diff --git a/Misc/NEWS.d/next/Library/2022-08-10-11-54-04.gh-issue-95804.i5FCFK.rst b/Misc/NEWS.d/next/Library/2022-08-10-11-54-04.gh-issue-95804.i5FCFK.rst deleted file mode 100644 index 46434cb466046e..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-08-10-11-54-04.gh-issue-95804.i5FCFK.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix ``logging`` shutdown handler so it respects -``MemoryHandler.flushOnClose``. diff --git a/Misc/NEWS.d/next/Library/2022-08-10-17-34-07.gh-issue-95861.qv-T5s.rst b/Misc/NEWS.d/next/Library/2022-08-10-17-34-07.gh-issue-95861.qv-T5s.rst deleted file mode 100644 index aae76c74e2fd7d..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-08-10-17-34-07.gh-issue-95861.qv-T5s.rst +++ /dev/null @@ -1,2 +0,0 @@ -Add support for computing Spearman's correlation coefficient to the existing -statistics.correlation() function. diff --git a/Misc/NEWS.d/next/Library/2022-08-11-03-16-48.gh-issue-95865.0IOkFP.rst b/Misc/NEWS.d/next/Library/2022-08-11-03-16-48.gh-issue-95865.0IOkFP.rst deleted file mode 100644 index aa7c73ff1a35ab..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-08-11-03-16-48.gh-issue-95865.0IOkFP.rst +++ /dev/null @@ -1 +0,0 @@ -Speed up :func:`urllib.parse.quote_from_bytes` by replacing a list comprehension with ``map()``. diff --git a/Misc/NEWS.d/next/Library/2022-08-11-18-22-29.gh-issue-95736.LzRZXe.rst b/Misc/NEWS.d/next/Library/2022-08-11-18-22-29.gh-issue-95736.LzRZXe.rst deleted file mode 100644 index abc270fe35ca65..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-08-11-18-22-29.gh-issue-95736.LzRZXe.rst +++ /dev/null @@ -1 +0,0 @@ -Fix :class:`unittest.IsolatedAsyncioTestCase` to set event loop before calling setup functions. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Library/2022-08-11-18-52-17.gh-issue-95899._Bi4uG.rst b/Misc/NEWS.d/next/Library/2022-08-11-18-52-17.gh-issue-95899._Bi4uG.rst deleted file mode 100644 index d2386cf3ae2296..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-08-11-18-52-17.gh-issue-95899._Bi4uG.rst +++ /dev/null @@ -1 +0,0 @@ -Fix :class:`asyncio.Runner` to call :func:`asyncio.set_event_loop` only once to avoid calling :meth:`~asyncio.AbstractChildWatcher.attach_loop` multiple times on child watchers. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Library/2022-08-14-18-59-54.gh-issue-69142.6is5Pq.rst b/Misc/NEWS.d/next/Library/2022-08-14-18-59-54.gh-issue-69142.6is5Pq.rst deleted file mode 100644 index 0db8b3730cf54d..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-08-14-18-59-54.gh-issue-69142.6is5Pq.rst +++ /dev/null @@ -1 +0,0 @@ -Add ``%:z`` strftime format code (generates tzoffset with colons as separator), see :ref:`strftime-strptime-behavior`. diff --git a/Misc/NEWS.d/next/Library/2022-08-18-14-53-53.gh-issue-95463.GpP05c.rst b/Misc/NEWS.d/next/Library/2022-08-18-14-53-53.gh-issue-95463.GpP05c.rst deleted file mode 100644 index 553c55436aab08..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-08-18-14-53-53.gh-issue-95463.GpP05c.rst +++ /dev/null @@ -1,2 +0,0 @@ -Remove an incompatible change from :issue:`28080` that caused a regression -that ignored the utf8 in ``ZipInfo.flag_bits``. Patch by Pablo Galindo. diff --git a/Misc/NEWS.d/next/Library/2022-08-19-10-19-32.gh-issue-96019.b7uAVP.rst b/Misc/NEWS.d/next/Library/2022-08-19-10-19-32.gh-issue-96019.b7uAVP.rst deleted file mode 100644 index 296963fd817248..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-08-19-10-19-32.gh-issue-96019.b7uAVP.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix a bug in the ``makeunicodedata.py`` script leading to about 13 KiB of -space saving in the ``unicodedata`` module, specifically the character -decomposition data. diff --git a/Misc/NEWS.d/next/Library/2022-08-19-18-21-01.gh-issue-96125.ODcF1Y.rst b/Misc/NEWS.d/next/Library/2022-08-19-18-21-01.gh-issue-96125.ODcF1Y.rst deleted file mode 100644 index ba7d26a965821f..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-08-19-18-21-01.gh-issue-96125.ODcF1Y.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix incorrect condition that causes ``sys.thread_info.name`` to be wrong on -pthread platforms. diff --git a/Misc/NEWS.d/next/Library/2022-08-20-10-31-01.gh-issue-96052.a6FhaD.rst b/Misc/NEWS.d/next/Library/2022-08-20-10-31-01.gh-issue-96052.a6FhaD.rst deleted file mode 100644 index c190fb7dbcb9da..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-08-20-10-31-01.gh-issue-96052.a6FhaD.rst +++ /dev/null @@ -1,4 +0,0 @@ -Fix handling compiler warnings (SyntaxWarning and DeprecationWarning) in -:func:`codeop.compile_command` when checking for incomplete input. -Previously it emitted warnings and raised a SyntaxError. Now it always -returns ``None`` for incomplete input without emitting any warnings. diff --git a/Misc/NEWS.d/next/Library/2022-08-20-12-56-15.gh-issue-96145.8ah3pE.rst b/Misc/NEWS.d/next/Library/2022-08-20-12-56-15.gh-issue-96145.8ah3pE.rst deleted file mode 100644 index 540ec8b71ebf90..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-08-20-12-56-15.gh-issue-96145.8ah3pE.rst +++ /dev/null @@ -1 +0,0 @@ -Add AttrDict to JSON module for use with object_hook. diff --git a/Misc/NEWS.d/next/Library/2022-08-22-13-54-20.gh-issue-96175.bH7zGU.rst b/Misc/NEWS.d/next/Library/2022-08-22-13-54-20.gh-issue-96175.bH7zGU.rst deleted file mode 100644 index c34eff22b3d456..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-08-22-13-54-20.gh-issue-96175.bH7zGU.rst +++ /dev/null @@ -1 +0,0 @@ -Fix unused ``localName`` parameter in the ``Attr`` class in :mod:`xml.dom.minidom`. diff --git a/Misc/NEWS.d/next/Library/2022-08-22-18-42-17.gh-issue-96159.3bFU39.rst b/Misc/NEWS.d/next/Library/2022-08-22-18-42-17.gh-issue-96159.3bFU39.rst deleted file mode 100644 index f64469e563f340..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-08-22-18-42-17.gh-issue-96159.3bFU39.rst +++ /dev/null @@ -1 +0,0 @@ -Fix a performance regression in logging TimedRotatingFileHandler. Only check for special files when the rollover time has passed. diff --git a/Misc/NEWS.d/next/Library/2022-08-23-13-30-30.gh-issue-96172.7WTHer.rst b/Misc/NEWS.d/next/Library/2022-08-23-13-30-30.gh-issue-96172.7WTHer.rst deleted file mode 100644 index 1bb57f17788761..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-08-23-13-30-30.gh-issue-96172.7WTHer.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix a bug in ``unicodedata``: ``east_asian_width`` used to return the wrong -value for unassigned characters; and for yet unassigned, but reserved -characters. diff --git a/Misc/NEWS.d/next/Library/2022-08-27-14-38-49.gh-issue-90467.VOOB0p.rst b/Misc/NEWS.d/next/Library/2022-08-27-14-38-49.gh-issue-90467.VOOB0p.rst deleted file mode 100644 index 282c0e76a8c81c..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-08-27-14-38-49.gh-issue-90467.VOOB0p.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix :class:`asyncio.streams.StreamReaderProtocol` to keep a strong reference -to the created task, so that it's not garbage collected diff --git a/Misc/NEWS.d/next/Library/2022-08-27-21-26-52.gh-issue-96349.XyYLlO.rst b/Misc/NEWS.d/next/Library/2022-08-27-21-26-52.gh-issue-96349.XyYLlO.rst deleted file mode 100644 index 59eb3517191ddd..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-08-27-21-26-52.gh-issue-96349.XyYLlO.rst +++ /dev/null @@ -1 +0,0 @@ -Fixed a minor performance regression in :func:`threading.Event.__init__` diff --git a/Misc/NEWS.d/next/Library/2022-08-29-07-04-03.gh-issue-89258.ri7ncj.rst b/Misc/NEWS.d/next/Library/2022-08-29-07-04-03.gh-issue-89258.ri7ncj.rst deleted file mode 100644 index 74300c108c893b..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-08-29-07-04-03.gh-issue-89258.ri7ncj.rst +++ /dev/null @@ -1,2 +0,0 @@ -Added a :meth:`~logging.Logger.getChildren` method to -:class:`logging.Logger`, to get the immediate child loggers of a logger. diff --git a/Misc/NEWS.d/next/Library/2022-08-29-15-28-39.gh-issue-96385.uLRTsf.rst b/Misc/NEWS.d/next/Library/2022-08-29-15-28-39.gh-issue-96385.uLRTsf.rst deleted file mode 100644 index 57354826f34926..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-08-29-15-28-39.gh-issue-96385.uLRTsf.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix ``TypeVarTuple.__typing_prepare_subst__``. ``TypeError`` was not raised -when using more than one ``TypeVarTuple``, like ``[*T, *V]`` in type alias -substitutions. diff --git a/Misc/NEWS.d/next/Library/2022-08-29-16-54-36.gh-issue-96388.dCpJcu.rst b/Misc/NEWS.d/next/Library/2022-08-29-16-54-36.gh-issue-96388.dCpJcu.rst deleted file mode 100644 index 3a35c4734871d1..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-08-29-16-54-36.gh-issue-96388.dCpJcu.rst +++ /dev/null @@ -1,2 +0,0 @@ -Work around missing socket functions in :class:`~socket.socket`'s -``__repr__``. diff --git a/Misc/NEWS.d/next/Library/2022-08-30-11-46-36.gh-issue-95987.CV7_u4.rst b/Misc/NEWS.d/next/Library/2022-08-30-11-46-36.gh-issue-95987.CV7_u4.rst deleted file mode 100644 index 232bba1b92440b..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-08-30-11-46-36.gh-issue-95987.CV7_u4.rst +++ /dev/null @@ -1 +0,0 @@ -Fix ``repr`` of ``Any`` subclasses. diff --git a/Misc/NEWS.d/next/Library/2022-08-31-11-10-21.gh-issue-96079.uqrXdJ.rst b/Misc/NEWS.d/next/Library/2022-08-31-11-10-21.gh-issue-96079.uqrXdJ.rst deleted file mode 100644 index 4cb8d276cbe7f7..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-08-31-11-10-21.gh-issue-96079.uqrXdJ.rst +++ /dev/null @@ -1 +0,0 @@ -In :mod:`typing`, fix missing field ``name`` and incorrect ``__module__`` in _AnnotatedAlias. diff --git a/Misc/NEWS.d/next/Library/2022-09-01-13-54-38.gh-issue-96465.0IJmrH.rst b/Misc/NEWS.d/next/Library/2022-09-01-13-54-38.gh-issue-96465.0IJmrH.rst deleted file mode 100644 index c78d7538ef943e..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-09-01-13-54-38.gh-issue-96465.0IJmrH.rst +++ /dev/null @@ -1 +0,0 @@ -Fraction hashes are now cached. diff --git a/Misc/NEWS.d/next/Library/2022-09-03-18-39-05.gh-issue-96538.W156-D.rst b/Misc/NEWS.d/next/Library/2022-09-03-18-39-05.gh-issue-96538.W156-D.rst deleted file mode 100644 index 22e5b4fc259964..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-09-03-18-39-05.gh-issue-96538.W156-D.rst +++ /dev/null @@ -1 +0,0 @@ -Speed up ``bisect.bisect()`` functions by taking advantage of type-stability. diff --git a/Misc/NEWS.d/next/Library/2022-09-04-12-32-52.gh-issue-68163.h6TJCc.rst b/Misc/NEWS.d/next/Library/2022-09-04-12-32-52.gh-issue-68163.h6TJCc.rst deleted file mode 100644 index 756f6c9eb9e842..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-09-04-12-32-52.gh-issue-68163.h6TJCc.rst +++ /dev/null @@ -1 +0,0 @@ -Correct conversion of :class:`numbers.Rational`'s to :class:`float`. diff --git a/Misc/NEWS.d/next/Library/2022-09-07-22-49-37.gh-issue-96652.YqOKxI.rst b/Misc/NEWS.d/next/Library/2022-09-07-22-49-37.gh-issue-96652.YqOKxI.rst deleted file mode 100644 index 1d04db7b2a2531..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-09-07-22-49-37.gh-issue-96652.YqOKxI.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix the faulthandler implementation of ``faulthandler.register(signal, -chain=True)`` if the ``sigaction()`` function is not available: don't call -the previous signal handler if it's NULL. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Library/2022-09-08-20-12-48.gh-issue-46412.r_cfTh.rst b/Misc/NEWS.d/next/Library/2022-09-08-20-12-48.gh-issue-46412.r_cfTh.rst deleted file mode 100644 index 27fcd0328bd267..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-09-08-20-12-48.gh-issue-46412.r_cfTh.rst +++ /dev/null @@ -1 +0,0 @@ -Improve performance of ``bool(db)`` for large ndb/gdb databases. Previously this would call ``len(db)`` which would iterate over all keys -- the answer (empty or not) is known after the first key. diff --git a/Misc/NEWS.d/next/Library/2022-09-13-15-12-31.gh-issue-96734.G08vjz.rst b/Misc/NEWS.d/next/Library/2022-09-13-15-12-31.gh-issue-96734.G08vjz.rst deleted file mode 100644 index e5c8a25b4bc6ab..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-09-13-15-12-31.gh-issue-96734.G08vjz.rst +++ /dev/null @@ -1 +0,0 @@ -Update :mod:`unicodedata` database to Unicode 15.0.0. diff --git a/Misc/NEWS.d/next/Library/2022-09-15-00-37-33.gh-issue-96741.4b6czN.rst b/Misc/NEWS.d/next/Library/2022-09-15-00-37-33.gh-issue-96741.4b6czN.rst deleted file mode 100644 index e7f53311e589f2..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-09-15-00-37-33.gh-issue-96741.4b6czN.rst +++ /dev/null @@ -1 +0,0 @@ -Corrected type annotation for dataclass attribute ``pstats.FunctionProfile.ncalls`` to be ``str``. diff --git a/Misc/NEWS.d/next/Security/2022-04-27-18-25-30.gh-issue-68966.gjS8zs.rst b/Misc/NEWS.d/next/Security/2022-04-27-18-25-30.gh-issue-68966.gjS8zs.rst deleted file mode 100644 index da81a1f6993dbe..00000000000000 --- a/Misc/NEWS.d/next/Security/2022-04-27-18-25-30.gh-issue-68966.gjS8zs.rst +++ /dev/null @@ -1,4 +0,0 @@ -The deprecated mailcap module now refuses to inject unsafe text (filenames, -MIME types, parameters) into shell commands. Instead of using such text, it -will warn and act as if a match was not found (or for test commands, as if -the test failed). diff --git a/Misc/NEWS.d/next/Security/2022-05-19-08-53-07.gh-issue-92888.TLtR9W.rst b/Misc/NEWS.d/next/Security/2022-05-19-08-53-07.gh-issue-92888.TLtR9W.rst deleted file mode 100644 index 4841b8a90a0879..00000000000000 --- a/Misc/NEWS.d/next/Security/2022-05-19-08-53-07.gh-issue-92888.TLtR9W.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix ``memoryview`` use after free when accessing the backing buffer in certain cases. - diff --git a/Misc/NEWS.d/next/Security/2022-06-03-12-52-53.gh-issue-79096.YVoxgC.rst b/Misc/NEWS.d/next/Security/2022-06-03-12-52-53.gh-issue-79096.YVoxgC.rst deleted file mode 100644 index 9ec3335dc71b92..00000000000000 --- a/Misc/NEWS.d/next/Security/2022-06-03-12-52-53.gh-issue-79096.YVoxgC.rst +++ /dev/null @@ -1 +0,0 @@ -LWPCookieJar and MozillaCookieJar create files with file mode 600 instead of 644 (Microsoft Windows is not affected) diff --git a/Misc/NEWS.d/next/Security/2022-06-15-20-09-23.gh-issue-87389.QVaC3f.rst b/Misc/NEWS.d/next/Security/2022-06-15-20-09-23.gh-issue-87389.QVaC3f.rst deleted file mode 100644 index 029d437190deb5..00000000000000 --- a/Misc/NEWS.d/next/Security/2022-06-15-20-09-23.gh-issue-87389.QVaC3f.rst +++ /dev/null @@ -1,3 +0,0 @@ -:mod:`http.server`: Fix an open redirection vulnerability in the HTTP server -when an URI path starts with ``//``. Vulnerability discovered, and initial -fix proposed, by Hamza Avvan. diff --git a/Misc/NEWS.d/next/Security/2022-08-07-16-53-38.gh-issue-95778.ch010gps.rst b/Misc/NEWS.d/next/Security/2022-08-07-16-53-38.gh-issue-95778.ch010gps.rst deleted file mode 100644 index 8eb8a34884dced..00000000000000 --- a/Misc/NEWS.d/next/Security/2022-08-07-16-53-38.gh-issue-95778.ch010gps.rst +++ /dev/null @@ -1,14 +0,0 @@ -Converting between :class:`int` and :class:`str` in bases other than 2 -(binary), 4, 8 (octal), 16 (hexadecimal), or 32 such as base 10 (decimal) now -raises a :exc:`ValueError` if the number of digits in string form is above a -limit to avoid potential denial of service attacks due to the algorithmic -complexity. This is a mitigation for `CVE-2020-10735 -<https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-10735>`_. - -This new limit can be configured or disabled by environment variable, command -line flag, or :mod:`sys` APIs. See the :ref:`integer string conversion length -limitation <int_max_str_digits>` documentation. The default limit is 4300 -digits in string form. - -Patch by Gregory P. Smith [Google] and Christian Heimes [Red Hat] with feedback -from Victor Stinner, Thomas Wouters, Steve Dower, Ned Deily, and Mark Dickinson. diff --git a/Misc/NEWS.d/next/Tests/2022-03-14-23-28-17.bpo-47016.K-t2QX.rst b/Misc/NEWS.d/next/Tests/2022-03-14-23-28-17.bpo-47016.K-t2QX.rst deleted file mode 100644 index 774bfafc021efc..00000000000000 --- a/Misc/NEWS.d/next/Tests/2022-03-14-23-28-17.bpo-47016.K-t2QX.rst +++ /dev/null @@ -1,2 +0,0 @@ -Create a GitHub Actions workflow for verifying bundled pip and setuptools. -Patch by Illia Volochii and Adam Turner. diff --git a/Misc/NEWS.d/next/Tests/2022-05-25-23-00-35.gh-issue-92886.Y-vrWj.rst b/Misc/NEWS.d/next/Tests/2022-05-25-23-00-35.gh-issue-92886.Y-vrWj.rst deleted file mode 100644 index 93c1ffe33f28a6..00000000000000 --- a/Misc/NEWS.d/next/Tests/2022-05-25-23-00-35.gh-issue-92886.Y-vrWj.rst +++ /dev/null @@ -1 +0,0 @@ -Fixing tests that fail when running with optimizations (``-O``) in ``test_zipimport.py`` diff --git a/Misc/NEWS.d/next/Tests/2022-05-25-23-07-15.gh-issue-92886.Aki63_.rst b/Misc/NEWS.d/next/Tests/2022-05-25-23-07-15.gh-issue-92886.Aki63_.rst deleted file mode 100644 index 581f6bfea24b6e..00000000000000 --- a/Misc/NEWS.d/next/Tests/2022-05-25-23-07-15.gh-issue-92886.Aki63_.rst +++ /dev/null @@ -1 +0,0 @@ -Fixing tests that fail when running with optimizations (``-O``) in ``test_imaplib.py``. diff --git a/Misc/NEWS.d/next/Tests/2022-06-03-12-22-44.gh-issue-89858.ftBvjE.rst b/Misc/NEWS.d/next/Tests/2022-06-03-12-22-44.gh-issue-89858.ftBvjE.rst deleted file mode 100644 index ef806a93c018cc..00000000000000 --- a/Misc/NEWS.d/next/Tests/2022-06-03-12-22-44.gh-issue-89858.ftBvjE.rst +++ /dev/null @@ -1 +0,0 @@ -Fix ``test_embed`` for out-of-tree builds. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Tests/2022-06-03-14-18-37.gh-issue-90473.7iXVRK.rst b/Misc/NEWS.d/next/Tests/2022-06-03-14-18-37.gh-issue-90473.7iXVRK.rst deleted file mode 100644 index a3165a01111fb9..00000000000000 --- a/Misc/NEWS.d/next/Tests/2022-06-03-14-18-37.gh-issue-90473.7iXVRK.rst +++ /dev/null @@ -1,2 +0,0 @@ -Skip symlink tests on WASI. wasmtime uses ``openat2(2)`` with -``RESOLVE_BENEATH`` flag, which prevents symlinks with absolute paths. diff --git a/Misc/NEWS.d/next/Tests/2022-06-03-16-26-04.gh-issue-57539.HxWgYO.rst b/Misc/NEWS.d/next/Tests/2022-06-03-16-26-04.gh-issue-57539.HxWgYO.rst deleted file mode 100644 index 0734b599f4ad95..00000000000000 --- a/Misc/NEWS.d/next/Tests/2022-06-03-16-26-04.gh-issue-57539.HxWgYO.rst +++ /dev/null @@ -1 +0,0 @@ -Increase calendar test coverage for :meth:`calendar.LocaleTextCalendar.formatweekday`. diff --git a/Misc/NEWS.d/next/Tests/2022-06-04-12-05-31.gh-issue-90473.RSpjF7.rst b/Misc/NEWS.d/next/Tests/2022-06-04-12-05-31.gh-issue-90473.RSpjF7.rst deleted file mode 100644 index 07d579995c0911..00000000000000 --- a/Misc/NEWS.d/next/Tests/2022-06-04-12-05-31.gh-issue-90473.RSpjF7.rst +++ /dev/null @@ -1 +0,0 @@ -Skip tests on WASI that require symlinks with absolute paths. diff --git a/Misc/NEWS.d/next/Tests/2022-06-05-10-16-45.gh-issue-90473.QMu7A8.rst b/Misc/NEWS.d/next/Tests/2022-06-05-10-16-45.gh-issue-90473.QMu7A8.rst deleted file mode 100644 index 6c76b7f4990e4f..00000000000000 --- a/Misc/NEWS.d/next/Tests/2022-06-05-10-16-45.gh-issue-90473.QMu7A8.rst +++ /dev/null @@ -1,2 +0,0 @@ -WASI does not have a ``chmod(2)`` syscall. :func:`os.chmod` is now a dummy -function on WASI. Skip all tests that depend on working :func:`os.chmod`. diff --git a/Misc/NEWS.d/next/Tests/2022-06-08-14-17-59.gh-issue-93575.Xb2LNB.rst b/Misc/NEWS.d/next/Tests/2022-06-08-14-17-59.gh-issue-93575.Xb2LNB.rst deleted file mode 100644 index 98d15328a087ae..00000000000000 --- a/Misc/NEWS.d/next/Tests/2022-06-08-14-17-59.gh-issue-93575.Xb2LNB.rst +++ /dev/null @@ -1,4 +0,0 @@ -Fix issue with test_unicode test_raiseMemError. The test case now use -``test.support.calcobjsize`` to calculate size of PyUnicode structs. -:func:`sys.getsizeof` may return different size when string has UTF-8 -memory. diff --git a/Misc/NEWS.d/next/Tests/2022-06-08-22-32-56.gh-issue-93616.e5Kkx2.rst b/Misc/NEWS.d/next/Tests/2022-06-08-22-32-56.gh-issue-93616.e5Kkx2.rst deleted file mode 100644 index de8ec52cc88b2a..00000000000000 --- a/Misc/NEWS.d/next/Tests/2022-06-08-22-32-56.gh-issue-93616.e5Kkx2.rst +++ /dev/null @@ -1,2 +0,0 @@ -``test_modulefinder`` now creates a temporary directory in -``ModuleFinderTest.setUp()`` instead of module scope. diff --git a/Misc/NEWS.d/next/Tests/2022-06-10-21-18-14.gh-issue-84461.9TAb26.rst b/Misc/NEWS.d/next/Tests/2022-06-10-21-18-14.gh-issue-84461.9TAb26.rst deleted file mode 100644 index 7cdf5bee721870..00000000000000 --- a/Misc/NEWS.d/next/Tests/2022-06-10-21-18-14.gh-issue-84461.9TAb26.rst +++ /dev/null @@ -1,2 +0,0 @@ -``run_tests.py`` now handles cross compiling env vars correctly and pass -``HOSTRUNNER`` to regression tests. diff --git a/Misc/NEWS.d/next/Tests/2022-06-16-17-50-58.gh-issue-93353.JdpATx.rst b/Misc/NEWS.d/next/Tests/2022-06-16-17-50-58.gh-issue-93353.JdpATx.rst deleted file mode 100644 index 4e232948f49ee7..00000000000000 --- a/Misc/NEWS.d/next/Tests/2022-06-16-17-50-58.gh-issue-93353.JdpATx.rst +++ /dev/null @@ -1,2 +0,0 @@ -regrtest now checks if a test leaks temporary files or directories if run -with -jN option. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Tests/2022-06-16-21-38-18.gh-issue-93852.U_Hl6s.rst b/Misc/NEWS.d/next/Tests/2022-06-16-21-38-18.gh-issue-93852.U_Hl6s.rst deleted file mode 100644 index ce86eead02660c..00000000000000 --- a/Misc/NEWS.d/next/Tests/2022-06-16-21-38-18.gh-issue-93852.U_Hl6s.rst +++ /dev/null @@ -1,4 +0,0 @@ -test_asyncio, test_logging, test_socket and test_socketserver now create -AF_UNIX domains in the current directory to no longer fail with -``OSError("AF_UNIX path too long")`` if the temporary directory (the -:envvar:`TMPDIR` environment variable) is too long. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Tests/2022-06-17-13-27-21.gh-issue-93884.5pvPvl.rst b/Misc/NEWS.d/next/Tests/2022-06-17-13-27-21.gh-issue-93884.5pvPvl.rst deleted file mode 100644 index ce389149aaae86..00000000000000 --- a/Misc/NEWS.d/next/Tests/2022-06-17-13-27-21.gh-issue-93884.5pvPvl.rst +++ /dev/null @@ -1 +0,0 @@ -Add test cases for :c:func:`PyNumber_ToBase` that take a large number or a non-int object as parameter. diff --git a/Misc/NEWS.d/next/Tests/2022-06-17-13-55-11.gh-issue-93957.X4ovYV.rst b/Misc/NEWS.d/next/Tests/2022-06-17-13-55-11.gh-issue-93957.X4ovYV.rst deleted file mode 100644 index 2719933f6b94c7..00000000000000 --- a/Misc/NEWS.d/next/Tests/2022-06-17-13-55-11.gh-issue-93957.X4ovYV.rst +++ /dev/null @@ -1,2 +0,0 @@ -Provide nicer error reporting from subprocesses in -test_venv.EnsurePipTest.test_with_pip. diff --git a/Misc/NEWS.d/next/Tests/2022-06-17-15-20-09.gh-issue-93951.CW1Vv4.rst b/Misc/NEWS.d/next/Tests/2022-06-17-15-20-09.gh-issue-93951.CW1Vv4.rst deleted file mode 100644 index b627466b4b221c..00000000000000 --- a/Misc/NEWS.d/next/Tests/2022-06-17-15-20-09.gh-issue-93951.CW1Vv4.rst +++ /dev/null @@ -1 +0,0 @@ -In test_bdb.StateTestCase.test_skip, avoid including auxiliary importers. diff --git a/Misc/NEWS.d/next/Tests/2022-06-20-23-04-52.gh-issue-93839.OE3Ybk.rst b/Misc/NEWS.d/next/Tests/2022-06-20-23-04-52.gh-issue-93839.OE3Ybk.rst deleted file mode 100644 index 121b64b13307ae..00000000000000 --- a/Misc/NEWS.d/next/Tests/2022-06-20-23-04-52.gh-issue-93839.OE3Ybk.rst +++ /dev/null @@ -1,2 +0,0 @@ -Move ``Lib/ctypes/test/`` to ``Lib/test/test_ctypes/``. Patch by Victor -Stinner. diff --git a/Misc/NEWS.d/next/Tests/2022-06-21-17-37-46.gh-issue-54781.BjVAVg.rst b/Misc/NEWS.d/next/Tests/2022-06-21-17-37-46.gh-issue-54781.BjVAVg.rst deleted file mode 100644 index f7ae7b976af95b..00000000000000 --- a/Misc/NEWS.d/next/Tests/2022-06-21-17-37-46.gh-issue-54781.BjVAVg.rst +++ /dev/null @@ -1,2 +0,0 @@ -Rename test_tk to test_tkinter, and rename test_ttk_guionly to test_ttk. -Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Tests/2022-06-27-08-53-40.gh-issue-94315.MoZT9t.rst b/Misc/NEWS.d/next/Tests/2022-06-27-08-53-40.gh-issue-94315.MoZT9t.rst deleted file mode 100644 index 09d5d7e56ae835..00000000000000 --- a/Misc/NEWS.d/next/Tests/2022-06-27-08-53-40.gh-issue-94315.MoZT9t.rst +++ /dev/null @@ -1,2 +0,0 @@ -Tests now check for DAC override capability instead of relying on -:func:`os.geteuid`. diff --git a/Misc/NEWS.d/next/Tests/2022-06-27-21-27-20.gh-issue-94208.VR6HX-.rst b/Misc/NEWS.d/next/Tests/2022-06-27-21-27-20.gh-issue-94208.VR6HX-.rst deleted file mode 100644 index d0f970ad286b1d..00000000000000 --- a/Misc/NEWS.d/next/Tests/2022-06-27-21-27-20.gh-issue-94208.VR6HX-.rst +++ /dev/null @@ -1,2 +0,0 @@ -``test_ssl`` is now checking for supported TLS version and protocols in more -tests. diff --git a/Misc/NEWS.d/next/Tests/2022-07-05-17-53-13.gh-issue-91330.Qys5IL.rst b/Misc/NEWS.d/next/Tests/2022-07-05-17-53-13.gh-issue-91330.Qys5IL.rst deleted file mode 100644 index 6f44dcfd7e66a2..00000000000000 --- a/Misc/NEWS.d/next/Tests/2022-07-05-17-53-13.gh-issue-91330.Qys5IL.rst +++ /dev/null @@ -1,2 +0,0 @@ -Added more tests for :mod:`dataclasses` to cover behavior with data -descriptor-based fields. diff --git a/Misc/NEWS.d/next/Tests/2022-07-08-12-22-00.gh-issue-94675.IiTs5f.rst b/Misc/NEWS.d/next/Tests/2022-07-08-12-22-00.gh-issue-94675.IiTs5f.rst deleted file mode 100644 index d0005d9f6014cd..00000000000000 --- a/Misc/NEWS.d/next/Tests/2022-07-08-12-22-00.gh-issue-94675.IiTs5f.rst +++ /dev/null @@ -1 +0,0 @@ -Add a regression test for :mod:`re` exponentional slowdown when using rjsmin. diff --git a/Misc/NEWS.d/next/Tests/2022-07-24-16-28-31.gh-issue-93963.UB9azu.rst b/Misc/NEWS.d/next/Tests/2022-07-24-16-28-31.gh-issue-93963.UB9azu.rst deleted file mode 100644 index 89ce124c55f226..00000000000000 --- a/Misc/NEWS.d/next/Tests/2022-07-24-16-28-31.gh-issue-93963.UB9azu.rst +++ /dev/null @@ -1 +0,0 @@ -Updated tests to use preferred location for ``importlib.resources`` ABCs. diff --git a/Misc/NEWS.d/next/Tests/2022-07-24-17-24-42.gh-issue-95218.zfBLtu.rst b/Misc/NEWS.d/next/Tests/2022-07-24-17-24-42.gh-issue-95218.zfBLtu.rst deleted file mode 100644 index 7326689657a7ac..00000000000000 --- a/Misc/NEWS.d/next/Tests/2022-07-24-17-24-42.gh-issue-95218.zfBLtu.rst +++ /dev/null @@ -1 +0,0 @@ -Move tests for importlib.resources into test_importlib.resources. diff --git a/Misc/NEWS.d/next/Tests/2022-07-24-20-19-05.gh-issue-95212.fHiU4e.rst b/Misc/NEWS.d/next/Tests/2022-07-24-20-19-05.gh-issue-95212.fHiU4e.rst deleted file mode 100644 index 44cea181cc1f1e..00000000000000 --- a/Misc/NEWS.d/next/Tests/2022-07-24-20-19-05.gh-issue-95212.fHiU4e.rst +++ /dev/null @@ -1,2 +0,0 @@ -Make multiprocessing test case ``test_shared_memory_recreate`` -parallel-safe. diff --git a/Misc/NEWS.d/next/Tests/2022-07-26-15-22-19.gh-issue-95280.h8HvbP.rst b/Misc/NEWS.d/next/Tests/2022-07-26-15-22-19.gh-issue-95280.h8HvbP.rst deleted file mode 100644 index 523d9d5f2f8bf3..00000000000000 --- a/Misc/NEWS.d/next/Tests/2022-07-26-15-22-19.gh-issue-95280.h8HvbP.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix problem with ``test_ssl`` ``test_get_ciphers`` on systems that require -perfect forward secrecy (PFS) ciphers. diff --git a/Misc/NEWS.d/next/Tests/2022-08-05-09-57-43.gh-issue-95573.edMdQB.rst b/Misc/NEWS.d/next/Tests/2022-08-05-09-57-43.gh-issue-95573.edMdQB.rst deleted file mode 100644 index 8580556965e1da..00000000000000 --- a/Misc/NEWS.d/next/Tests/2022-08-05-09-57-43.gh-issue-95573.edMdQB.rst +++ /dev/null @@ -1,6 +0,0 @@ -:source:`Lib/test/test_asyncio/test_ssl.py` exposed a bug in the macOS -kernel where intense concurrent load on non-blocking sockets occasionally -causes :const:`errno.ENOBUFS` ("No buffer space available") to be emitted. -FB11063974 filed with Apple, in the mean time as a workaround buffer size -used in tests on macOS is decreased to avoid intermittent failures. Patch -by Fantix King. diff --git a/Misc/NEWS.d/next/Tests/2022-08-22-14-59-42.gh-issue-95243.DeD66V.rst b/Misc/NEWS.d/next/Tests/2022-08-22-14-59-42.gh-issue-95243.DeD66V.rst deleted file mode 100644 index a9ca1f8b86764c..00000000000000 --- a/Misc/NEWS.d/next/Tests/2022-08-22-14-59-42.gh-issue-95243.DeD66V.rst +++ /dev/null @@ -1,3 +0,0 @@ -Mitigate the inherent race condition from using find_unused_port() in -testSockName() by trying to find an unused port a few times before failing. -Patch by Ross Burton. diff --git a/Misc/NEWS.d/next/Tests/2022-09-08-18-31-26.gh-issue-96624.5cANM1.rst b/Misc/NEWS.d/next/Tests/2022-09-08-18-31-26.gh-issue-96624.5cANM1.rst deleted file mode 100644 index 2d1bcc03e1c8b8..00000000000000 --- a/Misc/NEWS.d/next/Tests/2022-09-08-18-31-26.gh-issue-96624.5cANM1.rst +++ /dev/null @@ -1 +0,0 @@ -Fixed the failure of repeated runs of ``test.test_unittest`` caused by side effects in ``test_dotted_but_module_not_loaded``. diff --git a/Misc/NEWS.d/next/Tools-Demos/2022-06-19-14-56-33.gh-issue-86087.R8MkRy.rst b/Misc/NEWS.d/next/Tools-Demos/2022-06-19-14-56-33.gh-issue-86087.R8MkRy.rst deleted file mode 100644 index a10d4c76884522..00000000000000 --- a/Misc/NEWS.d/next/Tools-Demos/2022-06-19-14-56-33.gh-issue-86087.R8MkRy.rst +++ /dev/null @@ -1,2 +0,0 @@ -The ``Tools/scripts/parseentities.py`` script used to parse HTML4 entities -has been removed. diff --git a/Misc/NEWS.d/next/Tools-Demos/2022-06-29-22-47-11.gh-issue-94430.hdov8L.rst b/Misc/NEWS.d/next/Tools-Demos/2022-06-29-22-47-11.gh-issue-94430.hdov8L.rst deleted file mode 100644 index 88aa8d08665319..00000000000000 --- a/Misc/NEWS.d/next/Tools-Demos/2022-06-29-22-47-11.gh-issue-94430.hdov8L.rst +++ /dev/null @@ -1,2 +0,0 @@ -Allow parameters named ``module`` and ``self`` with custom C names in Argument -Clinic. Patch by Erlend E. Aasland diff --git a/Misc/NEWS.d/next/Tools-Demos/2022-07-04-01-37-42.gh-issue-94538.1rgy1Y.rst b/Misc/NEWS.d/next/Tools-Demos/2022-07-04-01-37-42.gh-issue-94538.1rgy1Y.rst deleted file mode 100644 index e39ae3950c0fe3..00000000000000 --- a/Misc/NEWS.d/next/Tools-Demos/2022-07-04-01-37-42.gh-issue-94538.1rgy1Y.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix Argument Clinic output to custom file destinations. Patch by Erlend E. -Aasland. diff --git a/Misc/NEWS.d/next/Tools-Demos/2022-07-04-10-02-02.gh-issue-93939.U6sW6H.rst b/Misc/NEWS.d/next/Tools-Demos/2022-07-04-10-02-02.gh-issue-93939.U6sW6H.rst deleted file mode 100644 index a129d6800c360a..00000000000000 --- a/Misc/NEWS.d/next/Tools-Demos/2022-07-04-10-02-02.gh-issue-93939.U6sW6H.rst +++ /dev/null @@ -1,3 +0,0 @@ -Add script ``Tools/scripts/check_modules.py`` to check and validate builtin -and shared extension modules. The script also handles ``Modules/Setup`` and -will eventually replace ``setup.py``. diff --git a/Misc/NEWS.d/next/Tools-Demos/2022-08-10-17-08-43.gh-issue-95853.HCjC2m.rst b/Misc/NEWS.d/next/Tools-Demos/2022-08-10-17-08-43.gh-issue-95853.HCjC2m.rst deleted file mode 100644 index c38db3af425e51..00000000000000 --- a/Misc/NEWS.d/next/Tools-Demos/2022-08-10-17-08-43.gh-issue-95853.HCjC2m.rst +++ /dev/null @@ -1,2 +0,0 @@ -The new tool ``Tools/wasm/wasm_builder.py`` automates configure, compile, and -test steps for building CPython on WebAssembly platforms. diff --git a/Misc/NEWS.d/next/Tools-Demos/2022-08-29-17-25-13.gh-issue-95853.Ce17cT.rst b/Misc/NEWS.d/next/Tools-Demos/2022-08-29-17-25-13.gh-issue-95853.Ce17cT.rst deleted file mode 100644 index 1cd1ce14fac08c..00000000000000 --- a/Misc/NEWS.d/next/Tools-Demos/2022-08-29-17-25-13.gh-issue-95853.Ce17cT.rst +++ /dev/null @@ -1,2 +0,0 @@ -The ``wasm_build.py`` script now pre-builds Emscripten ports, checks for -broken EMSDK versions, and warns about pkg-config env vars. diff --git a/Misc/NEWS.d/next/Windows/2022-03-20-15-47-35.bpo-42658.16eXtb.rst b/Misc/NEWS.d/next/Windows/2022-03-20-15-47-35.bpo-42658.16eXtb.rst deleted file mode 100644 index 852cc77676a31d..00000000000000 --- a/Misc/NEWS.d/next/Windows/2022-03-20-15-47-35.bpo-42658.16eXtb.rst +++ /dev/null @@ -1,3 +0,0 @@ -Support native Windows case-insensitive path comparisons by using -``LCMapStringEx`` instead of :func:`str.lower` in :func:`ntpath.normcase`. -Add ``LCMapStringEx`` to the :mod:`_winapi` module. diff --git a/Misc/NEWS.d/next/Windows/2022-05-28-19-36-13.gh-issue-43414.NGMJ3g.rst b/Misc/NEWS.d/next/Windows/2022-05-28-19-36-13.gh-issue-43414.NGMJ3g.rst deleted file mode 100644 index 553e8762d5d1e6..00000000000000 --- a/Misc/NEWS.d/next/Windows/2022-05-28-19-36-13.gh-issue-43414.NGMJ3g.rst +++ /dev/null @@ -1,2 +0,0 @@ -:func:`os.get_terminal_size` now attempts to read the size from any provided -handle, rather than only supporting file descriptors 0, 1 and 2. diff --git a/Misc/NEWS.d/next/Windows/2022-06-15-01-03-52.gh-issue-93824.mR4mxu.rst b/Misc/NEWS.d/next/Windows/2022-06-15-01-03-52.gh-issue-93824.mR4mxu.rst deleted file mode 100644 index cabe983847c891..00000000000000 --- a/Misc/NEWS.d/next/Windows/2022-06-15-01-03-52.gh-issue-93824.mR4mxu.rst +++ /dev/null @@ -1,2 +0,0 @@ -Drag and drop of files onto Python files in Windows Explorer has been -enabled for Windows ARM64. diff --git a/Misc/NEWS.d/next/Windows/2022-06-20-22-32-14.gh-issue-94018.bycC3A.rst b/Misc/NEWS.d/next/Windows/2022-06-20-22-32-14.gh-issue-94018.bycC3A.rst deleted file mode 100644 index a2e558b3b4b3af..00000000000000 --- a/Misc/NEWS.d/next/Windows/2022-06-20-22-32-14.gh-issue-94018.bycC3A.rst +++ /dev/null @@ -1 +0,0 @@ -:mod:`zipfile` will now remove trailing spaces from path components when extracting files on Windows. diff --git a/Misc/NEWS.d/next/Windows/2022-07-12-20-45-43.gh-issue-94772.uNMmdG.rst b/Misc/NEWS.d/next/Windows/2022-07-12-20-45-43.gh-issue-94772.uNMmdG.rst deleted file mode 100644 index bb5ab754484eb3..00000000000000 --- a/Misc/NEWS.d/next/Windows/2022-07-12-20-45-43.gh-issue-94772.uNMmdG.rst +++ /dev/null @@ -1 +0,0 @@ -Fix incorrect handling of shebang lines in py.exe launcher diff --git a/Misc/NEWS.d/next/Windows/2022-07-16-16-18-32.gh-issue-90844.vwITT3.rst b/Misc/NEWS.d/next/Windows/2022-07-16-16-18-32.gh-issue-90844.vwITT3.rst deleted file mode 100644 index 8d9e850a5b5b7c..00000000000000 --- a/Misc/NEWS.d/next/Windows/2022-07-16-16-18-32.gh-issue-90844.vwITT3.rst +++ /dev/null @@ -1,2 +0,0 @@ -Allow virtual environments to correctly launch when they have spaces in the -path. diff --git a/Misc/NEWS.d/next/Windows/2022-07-26-20-33-12.gh-issue-95285.w6fa22.rst b/Misc/NEWS.d/next/Windows/2022-07-26-20-33-12.gh-issue-95285.w6fa22.rst deleted file mode 100644 index 76b38e7803ccac..00000000000000 --- a/Misc/NEWS.d/next/Windows/2022-07-26-20-33-12.gh-issue-95285.w6fa22.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix :ref:`launcher` handling of command lines where it is only passed a -short executable name. diff --git a/Misc/NEWS.d/next/Windows/2022-07-28-20-21-38.gh-issue-95359.ywMrgu.rst b/Misc/NEWS.d/next/Windows/2022-07-28-20-21-38.gh-issue-95359.ywMrgu.rst deleted file mode 100644 index 513a2be28a9c20..00000000000000 --- a/Misc/NEWS.d/next/Windows/2022-07-28-20-21-38.gh-issue-95359.ywMrgu.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix :ref:`launcher` handling of :file:`py.ini` commands (it was incorrectly -expecting a ``py_`` prefix on keys) and crashes when reading per-user -configuration file. diff --git a/Misc/NEWS.d/next/Windows/2022-07-30-14-18-33.gh-issue-95445.mjrTaq.rst b/Misc/NEWS.d/next/Windows/2022-07-30-14-18-33.gh-issue-95445.mjrTaq.rst deleted file mode 100644 index 565489ebf909d5..00000000000000 --- a/Misc/NEWS.d/next/Windows/2022-07-30-14-18-33.gh-issue-95445.mjrTaq.rst +++ /dev/null @@ -1 +0,0 @@ -Fixes the unsuccessful removal of the HTML document directory when uninstalling with Windows msi. diff --git a/Misc/NEWS.d/next/Windows/2022-08-03-00-49-46.gh-issue-94399.KvxHc0.rst b/Misc/NEWS.d/next/Windows/2022-08-03-00-49-46.gh-issue-94399.KvxHc0.rst deleted file mode 100644 index a49e99ca266526..00000000000000 --- a/Misc/NEWS.d/next/Windows/2022-08-03-00-49-46.gh-issue-94399.KvxHc0.rst +++ /dev/null @@ -1,3 +0,0 @@ -Restores the behaviour of :ref:`launcher` for ``/usr/bin/env`` shebang -lines, which will now search :envvar:`PATH` for an executable matching the -given command. If none is found, the usual search process is used. diff --git a/Misc/NEWS.d/next/Windows/2022-08-04-01-12-27.gh-issue-95587.Fvdv5q.rst b/Misc/NEWS.d/next/Windows/2022-08-04-01-12-27.gh-issue-95587.Fvdv5q.rst deleted file mode 100644 index 1033e892876c91..00000000000000 --- a/Misc/NEWS.d/next/Windows/2022-08-04-01-12-27.gh-issue-95587.Fvdv5q.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fixes some issues where the Windows installer would incorrectly detect -certain features of an existing install when upgrading. diff --git a/Misc/NEWS.d/next/Windows/2022-08-04-18-47-54.gh-issue-95656.VJ1d13.rst b/Misc/NEWS.d/next/Windows/2022-08-04-18-47-54.gh-issue-95656.VJ1d13.rst deleted file mode 100644 index 77fea4c33f7a92..00000000000000 --- a/Misc/NEWS.d/next/Windows/2022-08-04-18-47-54.gh-issue-95656.VJ1d13.rst +++ /dev/null @@ -1,2 +0,0 @@ -Enable the :meth:`~sqlite3.Connection.enable_load_extension` :mod:`sqlite3` -API. diff --git a/Misc/NEWS.d/next/Windows/2022-08-10-22-46-48.gh-issue-95733.2_urOp.rst b/Misc/NEWS.d/next/Windows/2022-08-10-22-46-48.gh-issue-95733.2_urOp.rst deleted file mode 100644 index 996209211690eb..00000000000000 --- a/Misc/NEWS.d/next/Windows/2022-08-10-22-46-48.gh-issue-95733.2_urOp.rst +++ /dev/null @@ -1,2 +0,0 @@ -Make certain requirements of the Windows Store package optional to allow -installing on earlier updates of Windows. diff --git a/Misc/NEWS.d/next/Windows/2022-08-26-00-11-18.gh-issue-89545.zmJMY_.rst b/Misc/NEWS.d/next/Windows/2022-08-26-00-11-18.gh-issue-89545.zmJMY_.rst deleted file mode 100644 index eeedbf9d6fa8f6..00000000000000 --- a/Misc/NEWS.d/next/Windows/2022-08-26-00-11-18.gh-issue-89545.zmJMY_.rst +++ /dev/null @@ -1 +0,0 @@ -Updates :mod:`platform` code getting the Windows version to use native Windows Management Instrumentation (WMI) queries to determine OS version, type, and architecture. diff --git a/Misc/NEWS.d/next/Windows/2022-08-30-12-01-51.gh-issue-94781.OxO-Gr.rst b/Misc/NEWS.d/next/Windows/2022-08-30-12-01-51.gh-issue-94781.OxO-Gr.rst deleted file mode 100644 index d343173d40d606..00000000000000 --- a/Misc/NEWS.d/next/Windows/2022-08-30-12-01-51.gh-issue-94781.OxO-Gr.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix :file:`pcbuild.proj` to clean previous instances of ouput files in ``Python\deepfreeze`` and -``Python\frozen_modules`` directories on Windows. Patch by Charlie Zhao. diff --git a/Misc/NEWS.d/next/Windows/2022-09-05-18-32-47.gh-issue-96559.561sUd.rst b/Misc/NEWS.d/next/Windows/2022-09-05-18-32-47.gh-issue-96559.561sUd.rst deleted file mode 100644 index 275617648f9219..00000000000000 --- a/Misc/NEWS.d/next/Windows/2022-09-05-18-32-47.gh-issue-96559.561sUd.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fixes the Windows launcher not using the compatible interpretation of -default tags found in configuration files when no tag was passed to the -command. diff --git a/Misc/NEWS.d/next/Windows/2022-09-07-00-11-33.gh-issue-96577.kV4K_1.rst b/Misc/NEWS.d/next/Windows/2022-09-07-00-11-33.gh-issue-96577.kV4K_1.rst deleted file mode 100644 index 6025e5ce413042..00000000000000 --- a/Misc/NEWS.d/next/Windows/2022-09-07-00-11-33.gh-issue-96577.kV4K_1.rst +++ /dev/null @@ -1 +0,0 @@ -Fixes a potential buffer overrun in :mod:`msilib`. diff --git a/Misc/python.man b/Misc/python.man index 1705eeb0c9c126..c6628fe75f40ff 100644 --- a/Misc/python.man +++ b/Misc/python.man @@ -84,19 +84,6 @@ python \- an interpreted, interactive, object-oriented programming language | .I never ] -.br - [ -.B \--help -] -[ -.B \--help-env -] -[ -.B \--help-xoptions -] -[ -.B \--help-all -] .br [ .B \-c @@ -162,16 +149,6 @@ the behavior of the interpreter. .B \-h ", " \-? ", "\-\-help Prints the usage for the interpreter executable and exits. .TP -.B "\-\-help\-env" -Prints help about Python-specific environment variables and exits. -.TP -.B "\-\-help\-xoptions" -Prints help about implementation-specific \fB\-X\fP options and exits. -.TP -.TP -.B "\-\-help\-all" -Prints complete usage information and exits. -.TP .B \-i When a script is passed as first argument or the \fB\-c\fP option is used, enter interactive mode after executing the script or the @@ -310,7 +287,7 @@ a regular expression on the warning message. .TP .BI "\-X " option -Set implementation-specific option. The following options are available: +Set implementation specific option. The following options are available: -X faulthandler: enable faulthandler @@ -355,7 +332,7 @@ Set implementation-specific option. The following options are available: files are desired as well as suppressing the extra visual location indicators when the interpreter displays tracebacks. - -X frozen_modules=[on|off]: whether or not frozen modules should be used. + -X frozen_modules=[on|off]: whether or not frozen modules should be used The default is "on" (or "off" if you are running a local build). .TP diff --git a/Misc/rhel7/README.md b/Misc/rhel7/README.md deleted file mode 100644 index 8642e7c678f279..00000000000000 --- a/Misc/rhel7/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# pkg-config overrides for RHEL 7 and CentOS 7 - -RHEL 7 and CentOS 7 do not provide pkg-config `.pc` files for Tcl/Tk. The - OpenSSL 1.1.1 pkg-config file is named `openssl11.pc` and not picked up - by Python's `configure` script. - -To build Python with system Tcl/Tk libs and OpenSSL 1.1 package, first -install the developer packages and the `pkgconfig` package with `pkg-config` -command. - -```shell -sudo yum install pkgconfig 'tcl-devel >= 8.5.12' 'tk-devel >= 8.5.12' openssl11-devel -``` - -The run `configure` with `PKG_CONFIG_PATH` environment variable. - -```shell -PKG_CONFIG_PATH=Misc/rhel7 ./configure -C -``` diff --git a/Misc/rhel7/openssl.pc b/Misc/rhel7/openssl.pc deleted file mode 100644 index ffccd36cc30dff..00000000000000 --- a/Misc/rhel7/openssl.pc +++ /dev/null @@ -1,3 +0,0 @@ -Name: OpenSSL -Version: 1.1.1k -Requires: libssl11 libcrypto11 diff --git a/Misc/rhel7/tcl.pc b/Misc/rhel7/tcl.pc deleted file mode 100644 index 922eb51264035c..00000000000000 --- a/Misc/rhel7/tcl.pc +++ /dev/null @@ -1,4 +0,0 @@ -Name: Tool Command Language -Version: 8.5.12 -Libs: -ltcl8.5 -ltclstub8.5 -# Libs.private: -ldl -lz -lpthread -lm diff --git a/Misc/rhel7/tk.pc b/Misc/rhel7/tk.pc deleted file mode 100644 index 67cebb27f791d3..00000000000000 --- a/Misc/rhel7/tk.pc +++ /dev/null @@ -1,5 +0,0 @@ -Name: The Tk Toolkit -Version: 8.5.12 -Requires: tcl >= 8.5.12 -Libs: -ltk8.5 -ltkstub8.5 -# Libs.private: -lXft -lfontconfig -lfreetype -lfontconfig -lX11 diff --git a/Misc/stable_abi.toml b/Misc/stable_abi.toml index 4da002a0586299..84bec827096050 100644 --- a/Misc/stable_abi.toml +++ b/Misc/stable_abi.toml @@ -2275,14 +2275,5 @@ added = '3.11' [function.PyErr_SetHandledException] added = '3.11' - [function.PyType_FromMetaclass] added = '3.12' -[const.Py_TPFLAGS_HAVE_VECTORCALL] - added = '3.12' -[function.PyVectorcall_NARGS] - added = '3.12' -[function.PyVectorcall_Call] - added = '3.12' -[typedef.vectorcallfunc] - added = '3.12' diff --git a/Modules/Setup b/Modules/Setup index 8fe79512787cde..d3647ecb995928 100644 --- a/Modules/Setup +++ b/Modules/Setup @@ -275,7 +275,7 @@ PYTHONPATH=$(COREPYTHONPATH) #xx xxmodule.c #xxlimited xxlimited.c #xxlimited_35 xxlimited_35.c -#xxsubtype xxsubtype.c +xxsubtype xxsubtype.c # Required for the test suite to pass! # Testing diff --git a/Modules/Setup.stdlib.in b/Modules/Setup.stdlib.in index ac8959ebea5bf2..22c0b147c1b894 100644 --- a/Modules/Setup.stdlib.in +++ b/Modules/Setup.stdlib.in @@ -68,12 +68,12 @@ # dbm/gdbm # dbm needs either libndbm, libgdbm_compat, or libdb 5.x -@MODULE__DBM_TRUE@_dbm _dbmmodule.c +#@MODULE__DBM_TRUE@_dbm _dbmmodule.c # gdbm module needs -lgdbm @MODULE__GDBM_TRUE@_gdbm _gdbmmodule.c -# needs -lreadline or -ledit, sometimes termcap, termlib, or tinfo -@MODULE_READLINE_TRUE@readline readline.c +# needs -lreadline or -leditline, sometimes termcap, termlib, or tinfo +#@MODULE_READLINE_TRUE@readline readline.c # hashing builtins, can be disabled with --without-builtin-hashlib-hashes @MODULE__MD5_TRUE@_md5 md5module.c @@ -136,14 +136,14 @@ # # needs -lffi and -ldl -@MODULE__CTYPES_TRUE@_ctypes _ctypes/_ctypes.c _ctypes/callbacks.c _ctypes/callproc.c _ctypes/stgdict.c _ctypes/cfield.c @MODULE__CTYPES_MALLOC_CLOSURE@ +#@MODULE__CTYPES_TRUE@_ctypes _ctypes/_ctypes.c _ctypes/callbacks.c _ctypes/callproc.c _ctypes/stgdict.c _ctypes/cfield.c -# needs -lncurses[w], sometimes -ltermcap/tinfo -@MODULE__CURSES_TRUE@_curses _cursesmodule.c -# needs -lncurses[w] and -lpanel[w] -@MODULE__CURSES_PANEL_TRUE@_curses_panel _curses_panel.c +# needs -lncurses, -lncursesw or -lcurses, sometimes -ltermcap +#@MODULE__CURSES_TRUE@_curses _cursesmodule.c +# needs -lncurses and -lpanel +#@MODULE__CURSES_PANEL_TRUE@_curses_panel _curses_panel.c -@MODULE__SQLITE3_TRUE@_sqlite3 _sqlite/blob.c _sqlite/connection.c _sqlite/cursor.c _sqlite/microprotocols.c _sqlite/module.c _sqlite/prepare_protocol.c _sqlite/row.c _sqlite/statement.c _sqlite/util.c +@MODULE__SQLITE3_TRUE@_sqlite3 _sqlite/connection.c _sqlite/cursor.c _sqlite/microprotocols.c _sqlite/module.c _sqlite/prepare_protocol.c _sqlite/row.c _sqlite/statement.c _sqlite/util.c # needs -lssl and -lcrypt @MODULE__SSL_TRUE@_ssl _ssl.c @@ -165,11 +165,10 @@ ############################################################################ # Test modules -@MODULE_XXSUBTYPE_TRUE@xxsubtype xxsubtype.c @MODULE__XXTESTFUZZ_TRUE@_xxtestfuzz _xxtestfuzz/_xxtestfuzz.c _xxtestfuzz/fuzzer.c @MODULE__TESTBUFFER_TRUE@_testbuffer _testbuffer.c @MODULE__TESTINTERNALCAPI_TRUE@_testinternalcapi _testinternalcapi.c -@MODULE__TESTCAPI_TRUE@_testcapi _testcapimodule.c _testcapi/vectorcall.c _testcapi/vectorcall_limited.c _testcapi/heaptype.c _testcapi/unicode.c +@MODULE__TESTCAPI_TRUE@_testcapi _testcapimodule.c # Some testing modules MUST be built as shared libraries. *shared* diff --git a/Modules/_abc.c b/Modules/_abc.c index b22daa81e3ae19..641d6198d1fec4 100644 --- a/Modules/_abc.c +++ b/Modules/_abc.c @@ -63,7 +63,6 @@ abc_data_clear(_abc_data *self) static void abc_data_dealloc(_abc_data *self) { - PyObject_GC_UnTrack(self); PyTypeObject *tp = Py_TYPE(self); (void)abc_data_clear(self); tp->tp_free(self); diff --git a/Modules/_asynciomodule.c b/Modules/_asynciomodule.c index 9d2f83bf6c73c1..bb7c5a7c3ec550 100644 --- a/Modules/_asynciomodule.c +++ b/Modules/_asynciomodule.c @@ -23,6 +23,7 @@ _Py_IDENTIFIER(call_soon); _Py_IDENTIFIER(cancel); _Py_IDENTIFIER(get_event_loop); _Py_IDENTIFIER(throw); +_Py_IDENTIFIER(_check_future); /* State of the _asyncio module */ @@ -69,7 +70,6 @@ typedef enum { PyObject *prefix##_context0; \ PyObject *prefix##_callbacks; \ PyObject *prefix##_exception; \ - PyObject *prefix##_exception_tb; \ PyObject *prefix##_result; \ PyObject *prefix##_source_tb; \ PyObject *prefix##_cancel_msg; \ @@ -495,7 +495,6 @@ future_init(FutureObj *fut, PyObject *loop) Py_CLEAR(fut->fut_callbacks); Py_CLEAR(fut->fut_result); Py_CLEAR(fut->fut_exception); - Py_CLEAR(fut->fut_exception_tb); Py_CLEAR(fut->fut_source_tb); Py_CLEAR(fut->fut_cancel_msg); Py_CLEAR(fut->fut_cancelled_exc); @@ -602,9 +601,7 @@ future_set_exception(FutureObj *fut, PyObject *exc) } assert(!fut->fut_exception); - assert(!fut->fut_exception_tb); fut->fut_exception = exc_val; - fut->fut_exception_tb = PyException_GetTraceback(exc_val); fut->fut_state = STATE_FINISHED; if (future_schedule_callbacks(fut) == -1) { @@ -631,6 +628,8 @@ create_cancelled_error(FutureObj *fut) } else { exc = PyObject_CallOneArg(asyncio_CancelledError, msg); } + PyException_SetContext(exc, fut->fut_cancelled_exc); + Py_CLEAR(fut->fut_cancelled_exc); return exc; } @@ -638,9 +637,6 @@ static void future_set_cancelled_error(FutureObj *fut) { PyObject *exc = create_cancelled_error(fut); - if (exc == NULL) { - return; - } PyErr_SetObject(asyncio_CancelledError, exc); Py_DECREF(exc); } @@ -660,16 +656,8 @@ future_get_result(FutureObj *fut, PyObject **result) fut->fut_log_tb = 0; if (fut->fut_exception != NULL) { - PyObject *tb = fut->fut_exception_tb; - if (tb == NULL) { - tb = Py_None; - } - if (PyException_SetTraceback(fut->fut_exception, tb) < 0) { - return -1; - } Py_INCREF(fut->fut_exception); *result = fut->fut_exception; - Py_CLEAR(fut->fut_exception_tb); return 1; } @@ -811,7 +799,6 @@ FutureObj_clear(FutureObj *fut) Py_CLEAR(fut->fut_callbacks); Py_CLEAR(fut->fut_result); Py_CLEAR(fut->fut_exception); - Py_CLEAR(fut->fut_exception_tb); Py_CLEAR(fut->fut_source_tb); Py_CLEAR(fut->fut_cancel_msg); Py_CLEAR(fut->fut_cancelled_exc); @@ -828,7 +815,6 @@ FutureObj_traverse(FutureObj *fut, visitproc visit, void *arg) Py_VISIT(fut->fut_callbacks); Py_VISIT(fut->fut_result); Py_VISIT(fut->fut_exception); - Py_VISIT(fut->fut_exception_tb); Py_VISIT(fut->fut_source_tb); Py_VISIT(fut->fut_cancel_msg); Py_VISIT(fut->fut_cancelled_exc); @@ -1810,6 +1796,8 @@ class _asyncio.Task "TaskObj *" "&Task_Type" static int task_call_step_soon(TaskObj *, PyObject *); static PyObject * task_wakeup(TaskObj *, PyObject *); static PyObject * task_step(TaskObj *, PyObject *); +static int task_check_future(TaskObj *, PyObject *); +static int task_check_future_exact(TaskObj *, PyObject *); /* ----- Task._step wrapper */ @@ -2284,7 +2272,6 @@ Returns the remaining number of cancellation requests. static PyObject * _asyncio_Task_uncancel_impl(TaskObj *self) /*[clinic end generated code: output=58184d236a817d3c input=68f81a4b90b46be2]*/ -/*[clinic end generated code]*/ { if (self->task_num_cancels_requested > 0) { self->task_num_cancels_requested -= 1; @@ -2292,6 +2279,21 @@ _asyncio_Task_uncancel_impl(TaskObj *self) return PyLong_FromLong(self->task_num_cancels_requested); } +/*[clinic input] +_asyncio.Task._check_future -> bool + + future: object + +Return False if task and future loops are not compatible. +[clinic start generated code]*/ + +static int +_asyncio_Task__check_future_impl(TaskObj *self, PyObject *future) +/*[clinic end generated code: output=a3bfba79295c8d57 input=3b1d6dfd6fe90aa5]*/ +{ + return task_check_future_exact(self, future); +} + /*[clinic input] _asyncio.Task.get_stack @@ -2517,6 +2519,7 @@ static PyMethodDef TaskType_methods[] = { _ASYNCIO_TASK_CANCEL_METHODDEF _ASYNCIO_TASK_CANCELLING_METHODDEF _ASYNCIO_TASK_UNCANCEL_METHODDEF + _ASYNCIO_TASK__CHECK_FUTURE_METHODDEF _ASYNCIO_TASK_GET_STACK_METHODDEF _ASYNCIO_TASK_PRINT_STACK_METHODDEF _ASYNCIO_TASK__MAKE_CANCELLED_ERROR_METHODDEF @@ -2584,6 +2587,43 @@ TaskObj_dealloc(PyObject *self) Py_TYPE(task)->tp_free(task); } +static int +task_check_future_exact(TaskObj *task, PyObject *future) +{ + int res; + if (Future_CheckExact(future) || Task_CheckExact(future)) { + FutureObj *fut = (FutureObj *)future; + res = (fut->fut_loop == task->task_loop); + } else { + PyObject *oloop = get_future_loop(future); + if (oloop == NULL) { + return -1; + } + res = (oloop == task->task_loop); + Py_DECREF(oloop); + } + return res; +} + + +static int +task_check_future(TaskObj *task, PyObject *future) +{ + if (Task_CheckExact(task)) { + return task_check_future_exact(task, future); + } else { + PyObject * ret = _PyObject_CallMethodIdOneArg((PyObject *)task, + &PyId__check_future, + future); + if (ret == NULL) { + return -1; + } + int is_true = PyObject_IsTrue(ret); + Py_DECREF(ret); + return is_true; + } +} + static int task_call_step_soon(TaskObj *task, PyObject *arg) { @@ -2801,7 +2841,11 @@ task_step_impl(TaskObj *task, PyObject *exc) FutureObj *fut = (FutureObj*)result; /* Check if `result` future is attached to a different loop */ - if (fut->fut_loop != task->task_loop) { + res = task_check_future(task, result); + if (res == -1) { + goto fail; + } + if (res == 0) { goto different_loop; } @@ -2873,15 +2917,13 @@ task_step_impl(TaskObj *task, PyObject *exc) } /* Check if `result` future is attached to a different loop */ - PyObject *oloop = get_future_loop(result); - if (oloop == NULL) { + res = task_check_future(task, result); + if (res == -1) { goto fail; } - if (oloop != task->task_loop) { - Py_DECREF(oloop); + if (res == 0) { goto different_loop; } - Py_DECREF(oloop); if (!blocking) { goto yield_insteadof_yf; diff --git a/Modules/_bisectmodule.c b/Modules/_bisectmodule.c index 9ceb3ae46fe56d..19e9cd2d46f109 100644 --- a/Modules/_bisectmodule.c +++ b/Modules/_bisectmodule.c @@ -25,26 +25,6 @@ get_bisect_state(PyObject *module) return (bisect_state *)state; } -static ssizeargfunc -get_sq_item(PyObject *s) -{ - // The parts of PySequence_GetItem that we only need to do once - PyTypeObject *tp = Py_TYPE(s); - PySequenceMethods *m = tp->tp_as_sequence; - if (m && m->sq_item) { - return m->sq_item; - } - const char *msg; - if (tp->tp_as_mapping && tp->tp_as_mapping->mp_subscript) { - msg = "%.200s is not a sequence"; - } - else { - msg = "'%.200s' object does not support indexing"; - } - PyErr_Format(PyExc_TypeError, msg, tp->tp_name); - return NULL; -} - static inline Py_ssize_t internal_bisect_right(PyObject *list, PyObject *item, Py_ssize_t lo, Py_ssize_t hi, PyObject* key) @@ -62,86 +42,32 @@ internal_bisect_right(PyObject *list, PyObject *item, Py_ssize_t lo, Py_ssize_t if (hi < 0) return -1; } - ssizeargfunc sq_item = get_sq_item(list); - if (sq_item == NULL) { - return -1; - } - if (Py_EnterRecursiveCall("in _bisect.bisect_right") < 0) { - return -1; - } - PyTypeObject *tp = Py_TYPE(item); - richcmpfunc compare = tp->tp_richcompare; while (lo < hi) { /* The (size_t)cast ensures that the addition and subsequent division are performed as unsigned operations, avoiding difficulties from signed overflow. (See issue 13496.) */ mid = ((size_t)lo + hi) / 2; - assert(mid >= 0); - // PySequence_GetItem, but we already checked the types. - litem = sq_item(list, mid); - assert((PyErr_Occurred() == NULL) ^ (litem == NULL)); - if (litem == NULL) { - goto error; - } + litem = PySequence_GetItem(list, mid); + if (litem == NULL) + return -1; if (key != Py_None) { PyObject *newitem = PyObject_CallOneArg(key, litem); if (newitem == NULL) { - goto error; - } - Py_SETREF(litem, newitem); - } - /* if item < key(list[mid]): - * hi = mid - * else: - * lo = mid + 1 - */ - if (compare != NULL && Py_IS_TYPE(litem, tp)) { - // A fast path for comparing objects of the same type - PyObject *res_obj = compare(item, litem, Py_LT); - if (res_obj == Py_True) { - Py_DECREF(res_obj); Py_DECREF(litem); - hi = mid; - continue; + return -1; } - if (res_obj == Py_False) { - Py_DECREF(res_obj); - Py_DECREF(litem); - lo = mid + 1; - continue; - } - if (res_obj == NULL) { - goto error; - } - if (res_obj == Py_NotImplemented) { - Py_DECREF(res_obj); - compare = NULL; - res = PyObject_RichCompareBool(item, litem, Py_LT); - } - else { - res = PyObject_IsTrue(res_obj); - Py_DECREF(res_obj); - } - } - else { - // A default path for comparing arbitrary objects - res = PyObject_RichCompareBool(item, litem, Py_LT); - } - if (res < 0) { - goto error; + Py_SETREF(litem, newitem); } + res = PyObject_RichCompareBool(item, litem, Py_LT); Py_DECREF(litem); + if (res < 0) + return -1; if (res) hi = mid; else lo = mid + 1; } - Py_LeaveRecursiveCall(); return lo; -error: - Py_LeaveRecursiveCall(); - Py_XDECREF(litem); - return -1; } /*[clinic input] @@ -202,7 +128,7 @@ _bisect_insort_right_impl(PyObject *module, PyObject *a, PyObject *x, index = internal_bisect_right(a, x, lo, hi, key); } else { key_x = PyObject_CallOneArg(key, x); - if (key_x == NULL) { + if (x == NULL) { return NULL; } index = internal_bisect_right(a, key_x, lo, hi, key); @@ -242,86 +168,32 @@ internal_bisect_left(PyObject *list, PyObject *item, Py_ssize_t lo, Py_ssize_t h if (hi < 0) return -1; } - ssizeargfunc sq_item = get_sq_item(list); - if (sq_item == NULL) { - return -1; - } - if (Py_EnterRecursiveCall("in _bisect.bisect_left") < 0) { - return -1; - } - PyTypeObject *tp = Py_TYPE(item); - richcmpfunc compare = tp->tp_richcompare; while (lo < hi) { /* The (size_t)cast ensures that the addition and subsequent division are performed as unsigned operations, avoiding difficulties from signed overflow. (See issue 13496.) */ mid = ((size_t)lo + hi) / 2; - assert(mid >= 0); - // PySequence_GetItem, but we already checked the types. - litem = sq_item(list, mid); - assert((PyErr_Occurred() == NULL) ^ (litem == NULL)); - if (litem == NULL) { - goto error; - } + litem = PySequence_GetItem(list, mid); + if (litem == NULL) + return -1; if (key != Py_None) { PyObject *newitem = PyObject_CallOneArg(key, litem); if (newitem == NULL) { - goto error; - } - Py_SETREF(litem, newitem); - } - /* if key(list[mid]) < item: - * lo = mid + 1 - * else: - * hi = mid - */ - if (compare != NULL && Py_IS_TYPE(litem, tp)) { - // A fast path for comparing objects of the same type - PyObject *res_obj = compare(litem, item, Py_LT); - if (res_obj == Py_True) { - Py_DECREF(res_obj); - Py_DECREF(litem); - lo = mid + 1; - continue; - } - if (res_obj == Py_False) { - Py_DECREF(res_obj); Py_DECREF(litem); - hi = mid; - continue; - } - if (res_obj == NULL) { - goto error; - } - if (res_obj == Py_NotImplemented) { - Py_DECREF(res_obj); - compare = NULL; - res = PyObject_RichCompareBool(litem, item, Py_LT); + return -1; } - else { - res = PyObject_IsTrue(res_obj); - Py_DECREF(res_obj); - } - } - else { - // A default path for comparing arbitrary objects - res = PyObject_RichCompareBool(litem, item, Py_LT); - } - if (res < 0) { - goto error; + Py_SETREF(litem, newitem); } + res = PyObject_RichCompareBool(litem, item, Py_LT); Py_DECREF(litem); + if (res < 0) + return -1; if (res) lo = mid + 1; else hi = mid; } - Py_LeaveRecursiveCall(); return lo; -error: - Py_LeaveRecursiveCall(); - Py_XDECREF(litem); - return -1; } @@ -384,7 +256,7 @@ _bisect_insort_left_impl(PyObject *module, PyObject *a, PyObject *x, index = internal_bisect_left(a, x, lo, hi, key); } else { key_x = PyObject_CallOneArg(key, x); - if (key_x == NULL) { + if (x == NULL) { return NULL; } index = internal_bisect_left(a, key_x, lo, hi, key); diff --git a/Modules/_blake2/clinic/blake2b_impl.c.h b/Modules/_blake2/clinic/blake2b_impl.c.h index 99b0f098cc2b27..4e74e0885cf238 100644 --- a/Modules/_blake2/clinic/blake2b_impl.c.h +++ b/Modules/_blake2/clinic/blake2b_impl.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(py_blake2b_new__doc__, "blake2b(data=b\'\', /, *, digest_size=_blake2.blake2b.MAX_DIGEST_SIZE,\n" " key=b\'\', salt=b\'\', person=b\'\', fanout=1, depth=1, leaf_size=0,\n" @@ -28,31 +22,8 @@ static PyObject * py_blake2b_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 12 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(digest_size), &_Py_ID(key), &_Py_ID(salt), &_Py_ID(person), &_Py_ID(fanout), &_Py_ID(depth), &_Py_ID(leaf_size), &_Py_ID(node_offset), &_Py_ID(node_depth), &_Py_ID(inner_size), &_Py_ID(last_node), &_Py_ID(usedforsecurity), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "digest_size", "key", "salt", "person", "fanout", "depth", "leaf_size", "node_offset", "node_depth", "inner_size", "last_node", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "blake2b", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "blake2b", 0}; PyObject *argsbuf[13]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -276,4 +247,4 @@ _blake2_blake2b_hexdigest(BLAKE2bObject *self, PyObject *Py_UNUSED(ignored)) { return _blake2_blake2b_hexdigest_impl(self); } -/*[clinic end generated code: output=996b4fe396824797 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=10eb47aba77f192d input=a9049054013a1b77]*/ diff --git a/Modules/_blake2/clinic/blake2s_impl.c.h b/Modules/_blake2/clinic/blake2s_impl.c.h index 9b821fbcd62cdb..0f0d9835fbfe24 100644 --- a/Modules/_blake2/clinic/blake2s_impl.c.h +++ b/Modules/_blake2/clinic/blake2s_impl.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(py_blake2s_new__doc__, "blake2s(data=b\'\', /, *, digest_size=_blake2.blake2s.MAX_DIGEST_SIZE,\n" " key=b\'\', salt=b\'\', person=b\'\', fanout=1, depth=1, leaf_size=0,\n" @@ -28,31 +22,8 @@ static PyObject * py_blake2s_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 12 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(digest_size), &_Py_ID(key), &_Py_ID(salt), &_Py_ID(person), &_Py_ID(fanout), &_Py_ID(depth), &_Py_ID(leaf_size), &_Py_ID(node_offset), &_Py_ID(node_depth), &_Py_ID(inner_size), &_Py_ID(last_node), &_Py_ID(usedforsecurity), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "digest_size", "key", "salt", "person", "fanout", "depth", "leaf_size", "node_offset", "node_depth", "inner_size", "last_node", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "blake2s", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "blake2s", 0}; PyObject *argsbuf[13]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -276,4 +247,4 @@ _blake2_blake2s_hexdigest(BLAKE2sObject *self, PyObject *Py_UNUSED(ignored)) { return _blake2_blake2s_hexdigest_impl(self); } -/*[clinic end generated code: output=bd0fb7639e450618 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=f7ee8092ed67e9c7 input=a9049054013a1b77]*/ diff --git a/Modules/_bz2module.c b/Modules/_bz2module.c index 9304c13fbed5fc..798e9efc628f05 100644 --- a/Modules/_bz2module.c +++ b/Modules/_bz2module.c @@ -81,6 +81,19 @@ OutputBuffer_OnError(_BlocksOutputBuffer *buffer) #define RELEASE_LOCK(obj) PyThread_release_lock((obj)->lock) +typedef struct { + PyTypeObject *bz2_compressor_type; + PyTypeObject *bz2_decompressor_type; +} _bz2_state; + +static inline _bz2_state* +get_bz2_state(PyObject *module) +{ + void *state = PyModule_GetState(module); + assert(state != NULL); + return (_bz2_state *)state; +} + typedef struct { PyObject_HEAD bz_stream bzs; @@ -762,40 +775,67 @@ static PyType_Spec bz2_decompressor_type_spec = { static int _bz2_exec(PyObject *module) { - PyTypeObject *bz2_compressor_type = (PyTypeObject *)PyType_FromModuleAndSpec(module, + _bz2_state *state = get_bz2_state(module); + state->bz2_compressor_type = (PyTypeObject *)PyType_FromModuleAndSpec(module, &bz2_compressor_type_spec, NULL); - if (bz2_compressor_type == NULL) { + if (state->bz2_compressor_type == NULL) { return -1; } - int rc = PyModule_AddType(module, bz2_compressor_type); - Py_DECREF(bz2_compressor_type); - if (rc < 0) { + + if (PyModule_AddType(module, state->bz2_compressor_type) < 0) { return -1; } - PyTypeObject *bz2_decompressor_type = (PyTypeObject *)PyType_FromModuleAndSpec(module, + state->bz2_decompressor_type = (PyTypeObject *)PyType_FromModuleAndSpec(module, &bz2_decompressor_type_spec, NULL); - if (bz2_decompressor_type == NULL) { + if (state->bz2_decompressor_type == NULL) { return -1; } - rc = PyModule_AddType(module, bz2_decompressor_type); - Py_DECREF(bz2_decompressor_type); - if (rc < 0) { + + if (PyModule_AddType(module, state->bz2_decompressor_type) < 0) { return -1; } return 0; } +static int +_bz2_traverse(PyObject *module, visitproc visit, void *arg) +{ + _bz2_state *state = get_bz2_state(module); + Py_VISIT(state->bz2_compressor_type); + Py_VISIT(state->bz2_decompressor_type); + return 0; +} + +static int +_bz2_clear(PyObject *module) +{ + _bz2_state *state = get_bz2_state(module); + Py_CLEAR(state->bz2_compressor_type); + Py_CLEAR(state->bz2_decompressor_type); + return 0; +} + +static void +_bz2_free(void *module) +{ + _bz2_clear((PyObject *)module); +} + static struct PyModuleDef_Slot _bz2_slots[] = { {Py_mod_exec, _bz2_exec}, {0, NULL} }; static struct PyModuleDef _bz2module = { - .m_base = PyModuleDef_HEAD_INIT, + PyModuleDef_HEAD_INIT, .m_name = "_bz2", + .m_size = sizeof(_bz2_state), .m_slots = _bz2_slots, + .m_traverse = _bz2_traverse, + .m_clear = _bz2_clear, + .m_free = _bz2_free, }; PyMODINIT_FUNC diff --git a/Modules/_codecsmodule.c b/Modules/_codecsmodule.c index 8a0df4266e8354..50afc097b35026 100644 --- a/Modules/_codecsmodule.c +++ b/Modules/_codecsmodule.c @@ -42,7 +42,6 @@ module _codecs [clinic start generated code]*/ /*[clinic end generated code: output=da39a3ee5e6b4b0d input=e1390e3da3cb9deb]*/ -#include "pycore_runtime.h" #include "clinic/_codecsmodule.c.h" /* --- Registry ----------------------------------------------------------- */ diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c index a3c7c8c471e584..2c629d76beb3bd 100644 --- a/Modules/_ctypes/_ctypes.c +++ b/Modules/_ctypes/_ctypes.c @@ -5784,7 +5784,6 @@ _ctypes_add_objects(PyObject *mod) MOD_ADD("RTLD_GLOBAL", PyLong_FromLong(RTLD_GLOBAL)); MOD_ADD("CTYPES_MAX_ARGCOUNT", PyLong_FromLong(CTYPES_MAX_ARGCOUNT)); MOD_ADD("ArgumentError", Py_NewRef(PyExc_ArgError)); - MOD_ADD("SIZEOF_TIME_T", PyLong_FromSsize_t(SIZEOF_TIME_T)); return 0; #undef MOD_ADD } diff --git a/Modules/_ctypes/callbacks.c b/Modules/_ctypes/callbacks.c index 2a668c0ca0cc97..e1e0225f67b341 100644 --- a/Modules/_ctypes/callbacks.c +++ b/Modules/_ctypes/callbacks.c @@ -10,6 +10,7 @@ #endif #include "pycore_call.h" // _PyObject_CallNoArgs() +#include "frameobject.h" #include <stdbool.h> @@ -471,20 +472,27 @@ static void LoadPython(void) long Call_GetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv) { - PyObject *func, *result; + PyObject *mod, *func, *result; long retval; static PyObject *context; if (context == NULL) context = PyUnicode_InternFromString("_ctypes.DllGetClassObject"); - func = _PyImport_GetModuleAttrString("ctypes", "DllGetClassObject"); - if (!func) { + mod = PyImport_ImportModule("ctypes"); + if (!mod) { PyErr_WriteUnraisable(context ? context : Py_None); /* There has been a warning before about this already */ return E_FAIL; } + func = PyObject_GetAttrString(mod, "DllGetClassObject"); + Py_DECREF(mod); + if (!func) { + PyErr_WriteUnraisable(context ? context : Py_None); + return E_FAIL; + } + { PyObject *py_rclsid = PyLong_FromVoidPtr((void *)rclsid); PyObject *py_riid = PyLong_FromVoidPtr((void *)riid); diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c index fa1dfac6c7d946..3fab9ad0c1e7bd 100644 --- a/Modules/_ctypes/callproc.c +++ b/Modules/_ctypes/callproc.c @@ -54,9 +54,6 @@ */ -#ifndef Py_BUILD_CORE_BUILTIN -# define Py_BUILD_CORE_MODULE 1 -#endif #define NEEDS_PY_IDENTIFIER #include "Python.h" diff --git a/Modules/_ctypes/cfield.c b/Modules/_ctypes/cfield.c index 13ed8b7eda6555..c7234fbb18a0fa 100644 --- a/Modules/_ctypes/cfield.c +++ b/Modules/_ctypes/cfield.c @@ -279,7 +279,6 @@ PyCField_clear(CFieldObject *self) static void PyCField_dealloc(PyObject *self) { - PyObject_GC_UnTrack(self); PyCField_clear((CFieldObject *)self); Py_TYPE(self)->tp_free((PyObject *)self); } diff --git a/Modules/_ctypes/ctypes.h b/Modules/_ctypes/ctypes.h index 88eb9f59922a04..da1941caf3927d 100644 --- a/Modules/_ctypes/ctypes.h +++ b/Modules/_ctypes/ctypes.h @@ -19,11 +19,7 @@ * to avoid allocating a massive buffer on the stack. */ #ifndef CTYPES_MAX_ARGCOUNT - #ifdef __EMSCRIPTEN__ - #define CTYPES_MAX_ARGCOUNT 1000 - #else - #define CTYPES_MAX_ARGCOUNT 1024 - #endif + #define CTYPES_MAX_ARGCOUNT 1024 #endif typedef struct tagPyCArgObject PyCArgObject; diff --git a/Modules/_ctypes/malloc_closure.c b/Modules/_ctypes/malloc_closure.c index d47153f1d7f3e8..38edc90e707639 100644 --- a/Modules/_ctypes/malloc_closure.c +++ b/Modules/_ctypes/malloc_closure.c @@ -1,6 +1,3 @@ -#ifndef Py_BUILD_CORE_BUILTIN -# define Py_BUILD_CORE_MODULE 1 -#endif #include <Python.h> #include <ffi.h> #ifdef MS_WIN32 diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c index c10b2b302c6024..7e2699e1b5c5bb 100644 --- a/Modules/_cursesmodule.c +++ b/Modules/_cursesmodule.c @@ -383,7 +383,6 @@ PyCurses_ConvertToString(PyCursesWindowObject *win, PyObject *obj, return 0; /* check for embedded null bytes */ if (PyBytes_AsStringAndSize(*bytes, &str, NULL) < 0) { - Py_CLEAR(*bytes); return 0; } return 1; diff --git a/Modules/_datetimemodule.c b/Modules/_datetimemodule.c index d86418af0dc1a8..06dff8fdd9eed9 100644 --- a/Modules/_datetimemodule.c +++ b/Modules/_datetimemodule.c @@ -1,5 +1,5 @@ /* C implementation for the date/time type documented at - * https://www.zope.dev/Members/fdrake/DateTimeWiki/FrontPage + * http://www.zope.org/Members/fdrake/DateTimeWiki/FrontPage */ /* bpo-35081: Defining this prevents including the C API capsule; @@ -1506,27 +1506,6 @@ format_utcoffset(char *buf, size_t buflen, const char *sep, return 0; } -static PyObject * -make_somezreplacement(PyObject *object, char *sep, PyObject *tzinfoarg) -{ - char buf[100]; - PyObject *tzinfo = get_tzinfo_member(object); - - if (tzinfo == Py_None || tzinfo == NULL) { - return PyBytes_FromStringAndSize(NULL, 0); - } - - assert(tzinfoarg != NULL); - if (format_utcoffset(buf, - sizeof(buf), - sep, - tzinfo, - tzinfoarg) < 0) - return NULL; - - return PyBytes_FromStringAndSize(buf, strlen(buf)); -} - static PyObject * make_Zreplacement(PyObject *object, PyObject *tzinfoarg) { @@ -1587,7 +1566,7 @@ make_freplacement(PyObject *object) /* I sure don't want to reproduce the strftime code from the time module, * so this imports the module and calls it. All the hair is due to - * giving special meanings to the %z, %:z, %Z and %f format codes via a + * giving special meanings to the %z, %Z and %f format codes via a * preprocessing step on the format string. * tzinfoarg is the argument to pass to the object's tzinfo method, if * needed. @@ -1599,7 +1578,6 @@ wrap_strftime(PyObject *object, PyObject *format, PyObject *timetuple, PyObject *result = NULL; /* guilty until proved innocent */ PyObject *zreplacement = NULL; /* py string, replacement for %z */ - PyObject *colonzreplacement = NULL; /* py string, replacement for %:z */ PyObject *Zreplacement = NULL; /* py string, replacement for %Z */ PyObject *freplacement = NULL; /* py string, replacement for %f */ @@ -1654,29 +1632,32 @@ wrap_strftime(PyObject *object, PyObject *format, PyObject *timetuple, } /* A % has been seen and ch is the character after it. */ else if (ch == 'z') { - /* %z -> +HHMM */ if (zreplacement == NULL) { - zreplacement = make_somezreplacement(object, "", tzinfoarg); - if (zreplacement == NULL) - goto Done; + /* format utcoffset */ + char buf[100]; + PyObject *tzinfo = get_tzinfo_member(object); + zreplacement = PyBytes_FromStringAndSize("", 0); + if (zreplacement == NULL) goto Done; + if (tzinfo != Py_None && tzinfo != NULL) { + assert(tzinfoarg != NULL); + if (format_utcoffset(buf, + sizeof(buf), + "", + tzinfo, + tzinfoarg) < 0) + goto Done; + Py_DECREF(zreplacement); + zreplacement = + PyBytes_FromStringAndSize(buf, + strlen(buf)); + if (zreplacement == NULL) + goto Done; + } } assert(zreplacement != NULL); - assert(PyBytes_Check(zreplacement)); ptoappend = PyBytes_AS_STRING(zreplacement); ntoappend = PyBytes_GET_SIZE(zreplacement); } - else if (ch == ':' && *pin == 'z' && pin++) { - /* %:z -> +HH:MM */ - if (colonzreplacement == NULL) { - colonzreplacement = make_somezreplacement(object, ":", tzinfoarg); - if (colonzreplacement == NULL) - goto Done; - } - assert(colonzreplacement != NULL); - assert(PyBytes_Check(colonzreplacement)); - ptoappend = PyBytes_AS_STRING(colonzreplacement); - ntoappend = PyBytes_GET_SIZE(colonzreplacement); - } else if (ch == 'Z') { /* format tzname */ if (Zreplacement == NULL) { @@ -1705,7 +1686,7 @@ wrap_strftime(PyObject *object, PyObject *format, PyObject *timetuple, ntoappend = PyBytes_GET_SIZE(freplacement); } else { - /* percent followed by something else */ + /* percent followed by neither z nor Z */ ptoappend = pin - 2; ntoappend = 2; } @@ -1737,22 +1718,21 @@ wrap_strftime(PyObject *object, PyObject *format, PyObject *timetuple, goto Done; { PyObject *format; - PyObject *strftime = _PyImport_GetModuleAttrString("time", "strftime"); + PyObject *time = PyImport_ImportModule("time"); - if (strftime == NULL) + if (time == NULL) goto Done; format = PyUnicode_FromString(PyBytes_AS_STRING(newfmt)); if (format != NULL) { - result = PyObject_CallFunctionObjArgs(strftime, + result = _PyObject_CallMethodIdObjArgs(time, &PyId_strftime, format, timetuple, NULL); Py_DECREF(format); } - Py_DECREF(strftime); + Py_DECREF(time); } Done: Py_XDECREF(freplacement); Py_XDECREF(zreplacement); - Py_XDECREF(colonzreplacement); Py_XDECREF(Zreplacement); Py_XDECREF(newfmt); return result; @@ -1768,10 +1748,12 @@ static PyObject * time_time(void) { PyObject *result = NULL; - PyObject *time = _PyImport_GetModuleAttrString("time", "time"); + PyObject *time = PyImport_ImportModule("time"); if (time != NULL) { - result = PyObject_CallNoArgs(time); + _Py_IDENTIFIER(time); + + result = _PyObject_CallMethodIdNoArgs(time, &PyId_time); Py_DECREF(time); } return result; @@ -1783,21 +1765,31 @@ time_time(void) static PyObject * build_struct_time(int y, int m, int d, int hh, int mm, int ss, int dstflag) { - PyObject *struct_time; + PyObject *time; PyObject *result; + _Py_IDENTIFIER(struct_time); + PyObject *args; + - struct_time = _PyImport_GetModuleAttrString("time", "struct_time"); - if (struct_time == NULL) { + time = PyImport_ImportModule("time"); + if (time == NULL) { return NULL; } - result = PyObject_CallFunction(struct_time, "((iiiiiiiii))", + args = Py_BuildValue("iiiiiiiii", y, m, d, hh, mm, ss, weekday(y, m, d), days_before_month(y, m) + d, dstflag); - Py_DECREF(struct_time); + if (args == NULL) { + Py_DECREF(time); + return NULL; + } + + result = _PyObject_CallMethodIdOneArg(time, &PyId_struct_time, args); + Py_DECREF(time); + Py_DECREF(args); return result; } diff --git a/Modules/_dbmmodule.c b/Modules/_dbmmodule.c index 9c83e380afd0f3..5913b034790e9c 100644 --- a/Modules/_dbmmodule.c +++ b/Modules/_dbmmodule.c @@ -130,37 +130,6 @@ dbm_length(dbmobject *dp) return dp->di_size; } -static int -dbm_bool(dbmobject *dp) -{ - _dbm_state *state = PyType_GetModuleState(Py_TYPE(dp)); - assert(state != NULL); - - if (dp->di_dbm == NULL) { - PyErr_SetString(state->dbm_error, "DBM object has already been closed"); - return -1; - } - - if (dp->di_size > 0) { - /* Known non-zero size. */ - return 1; - } - if (dp->di_size == 0) { - /* Known zero size. */ - return 0; - } - - /* Unknown size. Ensure DBM object has an entry. */ - datum key = dbm_firstkey(dp->di_dbm); - if (key.dptr == NULL) { - /* Empty. Cache this fact. */ - dp->di_size = 0; - return 0; - } - /* Non-empty. Don't cache the length since we don't know. */ - return 1; -} - static PyObject * dbm_subscript(dbmobject *dp, PyObject *key) { @@ -447,7 +416,6 @@ static PyType_Slot dbmtype_spec_slots[] = { {Py_mp_length, dbm_length}, {Py_mp_subscript, dbm_subscript}, {Py_mp_ass_subscript, dbm_ass_sub}, - {Py_nb_bool, dbm_bool}, {0, 0} }; diff --git a/Modules/_elementtree.c b/Modules/_elementtree.c index 87f18d6e671a63..453e57a94f2c6b 100644 --- a/Modules/_elementtree.c +++ b/Modules/_elementtree.c @@ -4370,7 +4370,7 @@ static struct PyModuleDef elementtreemodule = { PyMODINIT_FUNC PyInit__elementtree(void) { - PyObject *m; + PyObject *m, *temp; elementtreestate *st; m = PyState_FindModule(&elementtreemodule); @@ -4394,7 +4394,11 @@ PyInit__elementtree(void) return NULL; st = get_elementtree_state(m); - st->deepcopy_obj = _PyImport_GetModuleAttrString("copy", "deepcopy"); + if (!(temp = PyImport_ImportModule("copy"))) + return NULL; + st->deepcopy_obj = PyObject_GetAttrString(temp, "deepcopy"); + Py_XDECREF(temp); + if (st->deepcopy_obj == NULL) { return NULL; } diff --git a/Modules/_functoolsmodule.c b/Modules/_functoolsmodule.c index 3abb7fd710aeb4..c6d6ca934e9c47 100644 --- a/Modules/_functoolsmodule.c +++ b/Modules/_functoolsmodule.c @@ -1471,8 +1471,9 @@ _functools_exec(PyObject *module) if (state->keyobject_type == NULL) { return -1; } - // keyobject_type is used only internally. - // So we don't expose it in module namespace. + if (PyModule_AddType(module, state->keyobject_type) < 0) { + return -1; + } state->lru_list_elem_type = (PyTypeObject *)PyType_FromModuleAndSpec( module, &lru_list_elem_type_spec, NULL); diff --git a/Modules/_gdbmmodule.c b/Modules/_gdbmmodule.c index a96d32306d5550..e6440fa9cd364d 100644 --- a/Modules/_gdbmmodule.c +++ b/Modules/_gdbmmodule.c @@ -162,35 +162,6 @@ gdbm_length(gdbmobject *dp) return dp->di_size; } -static int -gdbm_bool(gdbmobject *dp) -{ - _gdbm_state *state = PyType_GetModuleState(Py_TYPE(dp)); - if (dp->di_dbm == NULL) { - PyErr_SetString(state->gdbm_error, "GDBM object has already been closed"); - return -1; - } - if (dp->di_size > 0) { - /* Known non-zero size. */ - return 1; - } - if (dp->di_size == 0) { - /* Known zero size. */ - return 0; - } - /* Unknown size. Ensure DBM object has an entry. */ - datum key = gdbm_firstkey(dp->di_dbm); - if (key.dptr == NULL) { - /* Empty. Cache this fact. */ - dp->di_size = 0; - return 0; - } - - /* Non-empty. Don't cache the length since we don't know. */ - free(key.dptr); - return 1; -} - // Wrapper function for PyArg_Parse(o, "s#", &d.dptr, &d.size). // This function is needed to support PY_SSIZE_T_CLEAN. // Return 1 on success, same to PyArg_Parse(). @@ -598,7 +569,6 @@ static PyType_Slot gdbmtype_spec_slots[] = { {Py_mp_length, gdbm_length}, {Py_mp_subscript, gdbm_subscript}, {Py_mp_ass_subscript, gdbm_ass_sub}, - {Py_nb_bool, gdbm_bool}, {Py_tp_doc, (char*)gdbm_object__doc__}, {0, 0} }; diff --git a/Modules/_hashopenssl.c b/Modules/_hashopenssl.c index 82398547f9b372..38776edf5f9fdf 100644 --- a/Modules/_hashopenssl.c +++ b/Modules/_hashopenssl.c @@ -1998,7 +1998,7 @@ _hashlib_compare_digest_impl(PyObject *module, PyObject *a, PyObject *b) PyUnicode_GET_LENGTH(a), PyUnicode_GET_LENGTH(b)); } - /* fallback to buffer interface for bytes, bytearray and other */ + /* fallback to buffer interface for bytes, bytesarray and other */ else { Py_buffer view_a; Py_buffer view_b; diff --git a/Modules/_io/bufferedio.c b/Modules/_io/bufferedio.c index 4a4a1992dbbb7a..ac30d1d632bff8 100644 --- a/Modules/_io/bufferedio.c +++ b/Modules/_io/bufferedio.c @@ -328,7 +328,7 @@ _enter_buffered_busy(buffered *self) : buffered_closed(self))) #define CHECK_CLOSED(self, error_msg) \ - if (IS_CLOSED(self) && (Py_SAFE_DOWNCAST(READAHEAD(self), Py_off_t, Py_ssize_t) == 0)) { \ + if (IS_CLOSED(self) & (Py_SAFE_DOWNCAST(READAHEAD(self), Py_off_t, Py_ssize_t) == 0)) { \ PyErr_SetString(PyExc_ValueError, error_msg); \ return NULL; \ } \ diff --git a/Modules/_io/clinic/_iomodule.c.h b/Modules/_io/clinic/_iomodule.c.h index b38738486f6856..0249dd184b1d35 100644 --- a/Modules/_io/clinic/_iomodule.c.h +++ b/Modules/_io/clinic/_iomodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_io_open__doc__, "open($module, /, file, mode=\'r\', buffering=-1, encoding=None,\n" " errors=None, newline=None, closefd=True, opener=None)\n" @@ -139,31 +133,8 @@ static PyObject * _io_open(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 8 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(file), &_Py_ID(mode), &_Py_ID(buffering), &_Py_ID(encoding), &_Py_ID(errors), &_Py_ID(newline), &_Py_ID(closefd), &_Py_ID(opener), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"file", "mode", "buffering", "encoding", "errors", "newline", "closefd", "opener", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "open", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "open", 0}; PyObject *argsbuf[8]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *file; @@ -362,31 +333,8 @@ static PyObject * _io_open_code(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "open_code", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "open_code", 0}; PyObject *argsbuf[1]; PyObject *path; @@ -407,4 +355,4 @@ _io_open_code(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec exit: return return_value; } -/*[clinic end generated code: output=1f8001287a423470 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=c4d7e4ef878985f8 input=a9049054013a1b77]*/ diff --git a/Modules/_io/clinic/bufferedio.c.h b/Modules/_io/clinic/bufferedio.c.h index 8a8f86b2eea318..3700451232c16d 100644 --- a/Modules/_io/clinic/bufferedio.c.h +++ b/Modules/_io/clinic/bufferedio.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_io__BufferedIOBase_readinto__doc__, "readinto($self, buffer, /)\n" "--\n" @@ -408,31 +402,8 @@ static int _io_BufferedReader___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(raw), &_Py_ID(buffer_size), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"raw", "buffer_size", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "BufferedReader", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "BufferedReader", 0}; PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -485,31 +456,8 @@ static int _io_BufferedWriter___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(raw), &_Py_ID(buffer_size), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"raw", "buffer_size", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "BufferedWriter", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "BufferedWriter", 0}; PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -655,31 +603,8 @@ static int _io_BufferedRandom___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(raw), &_Py_ID(buffer_size), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"raw", "buffer_size", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "BufferedRandom", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "BufferedRandom", 0}; PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -713,4 +638,4 @@ _io_BufferedRandom___init__(PyObject *self, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=ca87adcfff6a810b input=a9049054013a1b77]*/ +/*[clinic end generated code: output=820461c6b0e29e48 input=a9049054013a1b77]*/ diff --git a/Modules/_io/clinic/bytesio.c.h b/Modules/_io/clinic/bytesio.c.h index 84b58db6c7a702..049d3473110f7b 100644 --- a/Modules/_io/clinic/bytesio.c.h +++ b/Modules/_io/clinic/bytesio.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_io_BytesIO_readable__doc__, "readable($self, /)\n" "--\n" @@ -489,31 +483,8 @@ static int _io_BytesIO___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(initial_bytes), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"initial_bytes", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "BytesIO", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "BytesIO", 0}; PyObject *argsbuf[1]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -534,4 +505,4 @@ _io_BytesIO___init__(PyObject *self, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=a44770efbaeb80dd input=a9049054013a1b77]*/ +/*[clinic end generated code: output=93d9700a6cf395b8 input=a9049054013a1b77]*/ diff --git a/Modules/_io/clinic/fileio.c.h b/Modules/_io/clinic/fileio.c.h index a925b94fe07531..bb0b36c8502ab7 100644 --- a/Modules/_io/clinic/fileio.c.h +++ b/Modules/_io/clinic/fileio.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_io_FileIO_close__doc__, "close($self, /)\n" "--\n" @@ -55,31 +49,8 @@ static int _io_FileIO___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 4 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(file), &_Py_ID(mode), &_Py_ID(closefd), &_Py_ID(opener), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"file", "mode", "closefd", "opener", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "FileIO", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "FileIO", 0}; PyObject *argsbuf[4]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -466,4 +437,4 @@ _io_FileIO_isatty(fileio *self, PyObject *Py_UNUSED(ignored)) #ifndef _IO_FILEIO_TRUNCATE_METHODDEF #define _IO_FILEIO_TRUNCATE_METHODDEF #endif /* !defined(_IO_FILEIO_TRUNCATE_METHODDEF) */ -/*[clinic end generated code: output=ff479a26cab0d479 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=fdcf0f9277d44415 input=a9049054013a1b77]*/ diff --git a/Modules/_io/clinic/iobase.c.h b/Modules/_io/clinic/iobase.c.h index 01c035dad2641e..ed3fdc9bb122db 100644 --- a/Modules/_io/clinic/iobase.c.h +++ b/Modules/_io/clinic/iobase.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_io__IOBase_tell__doc__, "tell($self, /)\n" "--\n" @@ -316,4 +310,4 @@ _io__RawIOBase_readall(PyObject *self, PyObject *Py_UNUSED(ignored)) { return _io__RawIOBase_readall_impl(self); } -/*[clinic end generated code: output=b7246a2087eb966b input=a9049054013a1b77]*/ +/*[clinic end generated code: output=0362e134da2d8641 input=a9049054013a1b77]*/ diff --git a/Modules/_io/clinic/stringio.c.h b/Modules/_io/clinic/stringio.c.h index d495dd10c16330..6758ee05f9104f 100644 --- a/Modules/_io/clinic/stringio.c.h +++ b/Modules/_io/clinic/stringio.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_io_StringIO_getvalue__doc__, "getvalue($self, /)\n" "--\n" @@ -261,31 +255,8 @@ static int _io_StringIO___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(initial_value), &_Py_ID(newline), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"initial_value", "newline", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "StringIO", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "StringIO", 0}; PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -367,4 +338,4 @@ _io_StringIO_seekable(stringio *self, PyObject *Py_UNUSED(ignored)) { return _io_StringIO_seekable_impl(self); } -/*[clinic end generated code: output=533f20ae9b773126 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=3207dc548c305ad8 input=a9049054013a1b77]*/ diff --git a/Modules/_io/clinic/textio.c.h b/Modules/_io/clinic/textio.c.h index 038f0a5c209d49..907785b2beaf9b 100644 --- a/Modules/_io/clinic/textio.c.h +++ b/Modules/_io/clinic/textio.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_io_IncrementalNewlineDecoder___init____doc__, "IncrementalNewlineDecoder(decoder, translate, errors=\'strict\')\n" "--\n" @@ -30,31 +24,8 @@ static int _io_IncrementalNewlineDecoder___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(decoder), &_Py_ID(translate), &_Py_ID(errors), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"decoder", "translate", "errors", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "IncrementalNewlineDecoder", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "IncrementalNewlineDecoder", 0}; PyObject *argsbuf[3]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -99,31 +70,8 @@ static PyObject * _io_IncrementalNewlineDecoder_decode(nldecoder_object *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(input), &_Py_ID(final), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"input", "final", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "decode", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "decode", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *input; @@ -234,31 +182,8 @@ static int _io_TextIOWrapper___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 6 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(buffer), &_Py_ID(encoding), &_Py_ID(errors), &_Py_ID(newline), &_Py_ID(line_buffering), &_Py_ID(write_through), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"buffer", "encoding", "errors", "newline", "line_buffering", "write_through", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "TextIOWrapper", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "TextIOWrapper", 0}; PyObject *argsbuf[6]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -372,31 +297,8 @@ static PyObject * _io_TextIOWrapper_reconfigure(textio *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 5 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(encoding), &_Py_ID(errors), &_Py_ID(newline), &_Py_ID(line_buffering), &_Py_ID(write_through), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"encoding", "errors", "newline", "line_buffering", "write_through", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "reconfigure", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "reconfigure", 0}; PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *encoding = Py_None; @@ -769,4 +671,4 @@ _io_TextIOWrapper_close(textio *self, PyObject *Py_UNUSED(ignored)) { return _io_TextIOWrapper_close_impl(self); } -/*[clinic end generated code: output=aecd376eca3cb148 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=bb78b568b24759d6 input=a9049054013a1b77]*/ diff --git a/Modules/_io/clinic/winconsoleio.c.h b/Modules/_io/clinic/winconsoleio.c.h index 65820a8f2ea0b3..75102a3d371564 100644 --- a/Modules/_io/clinic/winconsoleio.c.h +++ b/Modules/_io/clinic/winconsoleio.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - #if defined(MS_WINDOWS) PyDoc_STRVAR(_io__WindowsConsoleIO_close__doc__, @@ -54,31 +48,8 @@ static int _io__WindowsConsoleIO___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 4 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(file), &_Py_ID(mode), &_Py_ID(closefd), &_Py_ID(opener), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"file", "mode", "closefd", "opener", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "_WindowsConsoleIO", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "_WindowsConsoleIO", 0}; PyObject *argsbuf[4]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -407,4 +378,4 @@ _io__WindowsConsoleIO_isatty(winconsoleio *self, PyObject *Py_UNUSED(ignored)) #ifndef _IO__WINDOWSCONSOLEIO_ISATTY_METHODDEF #define _IO__WINDOWSCONSOLEIO_ISATTY_METHODDEF #endif /* !defined(_IO__WINDOWSCONSOLEIO_ISATTY_METHODDEF) */ -/*[clinic end generated code: output=08ae244e9a44da55 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=2d8648fab31ec60e input=a9049054013a1b77]*/ diff --git a/Modules/_io/stringio.c b/Modules/_io/stringio.c index 0f31c172499ac3..3fe02d35924f80 100644 --- a/Modules/_io/stringio.c +++ b/Modules/_io/stringio.c @@ -1,6 +1,7 @@ #define PY_SSIZE_T_CLEAN #include "Python.h" #include <stddef.h> // offsetof() +#include "pycore_accu.h" #include "pycore_object.h" #include "_iomodule.h" @@ -26,12 +27,12 @@ typedef struct { /* The stringio object can be in two states: accumulating or realized. In accumulating state, the internal buffer contains nothing and - the contents are given by the embedded _PyUnicodeWriter structure. + the contents are given by the embedded _PyAccu structure. In realized state, the internal buffer is meaningful and the - _PyUnicodeWriter is destroyed. + _PyAccu is destroyed. */ int state; - _PyUnicodeWriter writer; + _PyAccu accu; char ok; /* initialized? */ char closed; @@ -125,14 +126,12 @@ resize_buffer(stringio *self, size_t size) static PyObject * make_intermediate(stringio *self) { - PyObject *intermediate = _PyUnicodeWriter_Finish(&self->writer); + PyObject *intermediate = _PyAccu_Finish(&self->accu); self->state = STATE_REALIZED; if (intermediate == NULL) return NULL; - - _PyUnicodeWriter_Init(&self->writer); - self->writer.overallocate = 1; - if (_PyUnicodeWriter_WriteStr(&self->writer, intermediate)) { + if (_PyAccu_Init(&self->accu) || + _PyAccu_Accumulate(&self->accu, intermediate)) { Py_DECREF(intermediate); return NULL; } @@ -151,7 +150,7 @@ realize(stringio *self) assert(self->state == STATE_ACCUMULATING); self->state = STATE_REALIZED; - intermediate = _PyUnicodeWriter_Finish(&self->writer); + intermediate = _PyAccu_Finish(&self->accu); if (intermediate == NULL) return -1; @@ -219,7 +218,7 @@ write_str(stringio *self, PyObject *obj) if (self->state == STATE_ACCUMULATING) { if (self->string_size == self->pos) { - if (_PyUnicodeWriter_WriteStr(&self->writer, decoded)) + if (_PyAccu_Accumulate(&self->accu, decoded)) goto fail; goto success; } @@ -573,7 +572,7 @@ _io_StringIO_close_impl(stringio *self) /* Free up some memory */ if (resize_buffer(self, 0) < 0) return NULL; - _PyUnicodeWriter_Dealloc(&self->writer); + _PyAccu_Destroy(&self->accu); Py_CLEAR(self->readnl); Py_CLEAR(self->writenl); Py_CLEAR(self->decoder); @@ -603,7 +602,7 @@ stringio_dealloc(stringio *self) PyMem_Free(self->buf); self->buf = NULL; } - _PyUnicodeWriter_Dealloc(&self->writer); + _PyAccu_Destroy(&self->accu); Py_CLEAR(self->readnl); Py_CLEAR(self->writenl); Py_CLEAR(self->decoder); @@ -688,7 +687,7 @@ _io_StringIO___init___impl(stringio *self, PyObject *value, self->ok = 0; - _PyUnicodeWriter_Dealloc(&self->writer); + _PyAccu_Destroy(&self->accu); Py_CLEAR(self->readnl); Py_CLEAR(self->writenl); Py_CLEAR(self->decoder); @@ -743,8 +742,8 @@ _io_StringIO___init___impl(stringio *self, PyObject *value, /* Empty stringio object, we can start by accumulating */ if (resize_buffer(self, 0) < 0) return -1; - _PyUnicodeWriter_Init(&self->writer); - self->writer.overallocate = 1; + if (_PyAccu_Init(&self->accu)) + return -1; self->state = STATE_ACCUMULATING; } self->pos = 0; diff --git a/Modules/_io/textio.c b/Modules/_io/textio.c index 3369694653fd96..3cbaca3ef46069 100644 --- a/Modules/_io/textio.c +++ b/Modules/_io/textio.c @@ -19,9 +19,9 @@ /*[clinic input] module _io class _io.IncrementalNewlineDecoder "nldecoder_object *" "&PyIncrementalNewlineDecoder_Type" -class _io.TextIOWrapper "textio *" "&TextIOWrapper_Type" +class _io.TextIOWrapper "textio *" "&TextIOWrapper_TYpe" [clinic start generated code]*/ -/*[clinic end generated code: output=da39a3ee5e6b4b0d input=ed072384f8aada2c]*/ +/*[clinic end generated code: output=da39a3ee5e6b4b0d input=2097a4fc85670c26]*/ /* TextIOBase */ @@ -1247,7 +1247,6 @@ textiowrapper_change_encoding(textio *self, PyObject *encoding, if (errors == Py_None) { errors = self->errors; } - Py_INCREF(encoding); } else { if (_PyUnicode_EqualToASCIIString(encoding, "locale")) { @@ -1255,8 +1254,6 @@ textiowrapper_change_encoding(textio *self, PyObject *encoding, if (encoding == NULL) { return -1; } - } else { - Py_INCREF(encoding); } if (errors == Py_None) { errors = &_Py_ID(strict); @@ -1265,7 +1262,6 @@ textiowrapper_change_encoding(textio *self, PyObject *encoding, const char *c_errors = PyUnicode_AsUTF8(errors); if (c_errors == NULL) { - Py_DECREF(encoding); return -1; } @@ -1273,17 +1269,16 @@ textiowrapper_change_encoding(textio *self, PyObject *encoding, PyObject *codec_info = _PyCodec_LookupTextEncoding( PyUnicode_AsUTF8(encoding), "codecs.open()"); if (codec_info == NULL) { - Py_DECREF(encoding); return -1; } if (_textiowrapper_set_decoder(self, codec_info, c_errors) != 0 || _textiowrapper_set_encoder(self, codec_info, c_errors) != 0) { Py_DECREF(codec_info); - Py_DECREF(encoding); return -1; } Py_DECREF(codec_info); + Py_INCREF(encoding); Py_INCREF(errors); Py_SETREF(self->encoding, encoding); Py_SETREF(self->errors, errors); @@ -2244,7 +2239,7 @@ _textiowrapper_readline(textio *self, Py_ssize_t limit) Py_CLEAR(chunks); } if (line == NULL) { - line = Py_NewRef(&_Py_STR(empty)); + line = &_Py_STR(empty); } return line; diff --git a/Modules/_json.c b/Modules/_json.c index 1c39b46937d792..9464b9f498ede5 100644 --- a/Modules/_json.c +++ b/Modules/_json.c @@ -12,7 +12,20 @@ #include "Python.h" #include "pycore_ceval.h" // _Py_EnterRecursiveCall() #include "structmember.h" // PyMemberDef -#include <stdbool.h> // bool +#include "pycore_accu.h" + +typedef struct { + PyObject *PyScannerType; + PyObject *PyEncoderType; +} _jsonmodulestate; + +static inline _jsonmodulestate* +get_json_state(PyObject *module) +{ + void *state = PyModule_GetState(module); + assert(state != NULL); + return (_jsonmodulestate *)state; +} typedef struct _PyScannerObject { @@ -85,11 +98,11 @@ encoder_dealloc(PyObject *self); static int encoder_clear(PyEncoderObject *self); static int -encoder_listencode_list(PyEncoderObject *s, _PyUnicodeWriter *writer, PyObject *seq, Py_ssize_t indent_level); +encoder_listencode_list(PyEncoderObject *s, _PyAccu *acc, PyObject *seq, Py_ssize_t indent_level); static int -encoder_listencode_obj(PyEncoderObject *s, _PyUnicodeWriter *writer, PyObject *obj, Py_ssize_t indent_level); +encoder_listencode_obj(PyEncoderObject *s, _PyAccu *acc, PyObject *obj, Py_ssize_t indent_level); static int -encoder_listencode_dict(PyEncoderObject *s, _PyUnicodeWriter *writer, PyObject *dct, Py_ssize_t indent_level); +encoder_listencode_dict(PyEncoderObject *s, _PyAccu *acc, PyObject *dct, Py_ssize_t indent_level); static PyObject * _encoded_const(PyObject *obj); static void @@ -1280,29 +1293,19 @@ encoder_call(PyEncoderObject *self, PyObject *args, PyObject *kwds) { /* Python callable interface to encode_listencode_obj */ static char *kwlist[] = {"obj", "_current_indent_level", NULL}; - PyObject *obj, *result; + PyObject *obj; Py_ssize_t indent_level; - _PyUnicodeWriter writer; - + _PyAccu acc; if (!PyArg_ParseTupleAndKeywords(args, kwds, "On:_iterencode", kwlist, &obj, &indent_level)) return NULL; - - _PyUnicodeWriter_Init(&writer); - writer.overallocate = 1; - - if (encoder_listencode_obj(self, &writer, obj, indent_level)) { - _PyUnicodeWriter_Dealloc(&writer); + if (_PyAccu_Init(&acc)) return NULL; - } - - result = PyTuple_New(1); - if (result == NULL || - PyTuple_SetItem(result, 0, _PyUnicodeWriter_Finish(&writer)) < 0) { - Py_XDECREF(result); + if (encoder_listencode_obj(self, &acc, obj, indent_level)) { + _PyAccu_Destroy(&acc); return NULL; } - return result; + return _PyAccu_FinishAsList(&acc); } static PyObject * @@ -1386,60 +1389,58 @@ encoder_encode_string(PyEncoderObject *s, PyObject *obj) } static int -_steal_accumulate(_PyUnicodeWriter *writer, PyObject *stolen) +_steal_accumulate(_PyAccu *acc, PyObject *stolen) { /* Append stolen and then decrement its reference count */ - int rval = _PyUnicodeWriter_WriteStr(writer, stolen); + int rval = _PyAccu_Accumulate(acc, stolen); Py_DECREF(stolen); return rval; } static int -encoder_listencode_obj(PyEncoderObject *s, _PyUnicodeWriter *writer, +encoder_listencode_obj(PyEncoderObject *s, _PyAccu *acc, PyObject *obj, Py_ssize_t indent_level) { /* Encode Python object obj to a JSON term */ PyObject *newobj; int rv; - if (obj == Py_None) { - return _PyUnicodeWriter_WriteASCIIString(writer, "null", 4); - } - else if (obj == Py_True) { - return _PyUnicodeWriter_WriteASCIIString(writer, "true", 4); - } - else if (obj == Py_False) { - return _PyUnicodeWriter_WriteASCIIString(writer, "false", 5); + if (obj == Py_None || obj == Py_True || obj == Py_False) { + PyObject *cstr = _encoded_const(obj); + if (cstr == NULL) + return -1; + return _steal_accumulate(acc, cstr); } - else if (PyUnicode_Check(obj)) { + else if (PyUnicode_Check(obj)) + { PyObject *encoded = encoder_encode_string(s, obj); if (encoded == NULL) return -1; - return _steal_accumulate(writer, encoded); + return _steal_accumulate(acc, encoded); } else if (PyLong_Check(obj)) { PyObject *encoded = PyLong_Type.tp_repr(obj); if (encoded == NULL) return -1; - return _steal_accumulate(writer, encoded); + return _steal_accumulate(acc, encoded); } else if (PyFloat_Check(obj)) { PyObject *encoded = encoder_encode_float(s, obj); if (encoded == NULL) return -1; - return _steal_accumulate(writer, encoded); + return _steal_accumulate(acc, encoded); } else if (PyList_Check(obj) || PyTuple_Check(obj)) { if (_Py_EnterRecursiveCall(" while encoding a JSON object")) return -1; - rv = encoder_listencode_list(s, writer, obj, indent_level); + rv = encoder_listencode_list(s, acc, obj, indent_level); _Py_LeaveRecursiveCall(); return rv; } else if (PyDict_Check(obj)) { if (_Py_EnterRecursiveCall(" while encoding a JSON object")) return -1; - rv = encoder_listencode_dict(s, writer, obj, indent_level); + rv = encoder_listencode_dict(s, acc, obj, indent_level); _Py_LeaveRecursiveCall(); return rv; } @@ -1473,7 +1474,7 @@ encoder_listencode_obj(PyEncoderObject *s, _PyUnicodeWriter *writer, Py_XDECREF(ident); return -1; } - rv = encoder_listencode_obj(s, writer, newobj, indent_level); + rv = encoder_listencode_obj(s, acc, newobj, indent_level); _Py_LeaveRecursiveCall(); Py_DECREF(newobj); @@ -1493,81 +1494,28 @@ encoder_listencode_obj(PyEncoderObject *s, _PyUnicodeWriter *writer, } static int -encoder_encode_key_value(PyEncoderObject *s, _PyUnicodeWriter *writer, bool *first, - PyObject *key, PyObject *value, Py_ssize_t indent_level) -{ - PyObject *keystr = NULL; - PyObject *encoded; - - if (PyUnicode_Check(key)) { - Py_INCREF(key); - keystr = key; - } - else if (PyFloat_Check(key)) { - keystr = encoder_encode_float(s, key); - } - else if (key == Py_True || key == Py_False || key == Py_None) { - /* This must come before the PyLong_Check because - True and False are also 1 and 0.*/ - keystr = _encoded_const(key); - } - else if (PyLong_Check(key)) { - keystr = PyLong_Type.tp_repr(key); - } - else if (s->skipkeys) { - return 0; - } - else { - PyErr_Format(PyExc_TypeError, - "keys must be str, int, float, bool or None, " - "not %.100s", Py_TYPE(key)->tp_name); - return -1; - } - - if (keystr == NULL) { - return -1; - } - - if (*first) { - *first = false; - } - else { - if (_PyUnicodeWriter_WriteStr(writer, s->item_separator) < 0) { - Py_DECREF(keystr); - return -1; - } - } - - encoded = encoder_encode_string(s, keystr); - Py_DECREF(keystr); - if (encoded == NULL) { - return -1; - } - - if (_steal_accumulate(writer, encoded) < 0) { - return -1; - } - if (_PyUnicodeWriter_WriteStr(writer, s->key_separator) < 0) { - return -1; - } - if (encoder_listencode_obj(s, writer, value, indent_level) < 0) { - return -1; - } - return 0; -} - -static int -encoder_listencode_dict(PyEncoderObject *s, _PyUnicodeWriter *writer, +encoder_listencode_dict(PyEncoderObject *s, _PyAccu *acc, PyObject *dct, Py_ssize_t indent_level) { /* Encode Python dict dct a JSON term */ + _Py_static_string(PyId_open_dict, "{"); + _Py_static_string(PyId_close_dict, "}"); + _Py_static_string(PyId_empty_dict, "{}"); + PyObject *open_dict = _PyUnicode_FromId(&PyId_open_dict); // borrowed ref + PyObject *close_dict = _PyUnicode_FromId(&PyId_close_dict); // borrowed ref + PyObject *empty_dict = _PyUnicode_FromId(&PyId_empty_dict); // borrowed ref + PyObject *kstr = NULL; PyObject *ident = NULL; - PyObject *items = NULL; - PyObject *key, *value; - bool first = true; + PyObject *it = NULL; + PyObject *items; + PyObject *item = NULL; + Py_ssize_t idx; + if (open_dict == NULL || close_dict == NULL || empty_dict == NULL) { + return -1; + } if (PyDict_GET_SIZE(dct) == 0) /* Fast path */ - return _PyUnicodeWriter_WriteASCIIString(writer, "{}", 2); + return _PyAccu_Accumulate(acc, empty_dict); if (s->markers != Py_None) { int has_key; @@ -1585,7 +1533,7 @@ encoder_listencode_dict(PyEncoderObject *s, _PyUnicodeWriter *writer, } } - if (_PyUnicodeWriter_WriteChar(writer, '{')) + if (_PyAccu_Accumulate(acc, open_dict)) goto bail; if (s->indent != Py_None) { @@ -1598,34 +1546,84 @@ encoder_listencode_dict(PyEncoderObject *s, _PyUnicodeWriter *writer, */ } - if (s->sort_keys) { - - items = PyDict_Items(dct); - if (items == NULL || PyList_Sort(items) < 0) + items = PyMapping_Items(dct); + if (items == NULL) + goto bail; + if (s->sort_keys && PyList_Sort(items) < 0) { + Py_DECREF(items); + goto bail; + } + it = PyObject_GetIter(items); + Py_DECREF(items); + if (it == NULL) + goto bail; + idx = 0; + while ((item = PyIter_Next(it)) != NULL) { + PyObject *encoded, *key, *value; + if (!PyTuple_Check(item) || PyTuple_GET_SIZE(item) != 2) { + PyErr_SetString(PyExc_ValueError, "items must return 2-tuples"); goto bail; - - for (Py_ssize_t i = 0; i < PyList_GET_SIZE(items); i++) { - PyObject *item = PyList_GET_ITEM(items, i); - - if (!PyTuple_Check(item) || PyTuple_GET_SIZE(item) != 2) { - PyErr_SetString(PyExc_ValueError, "items must return 2-tuples"); + } + key = PyTuple_GET_ITEM(item, 0); + if (PyUnicode_Check(key)) { + Py_INCREF(key); + kstr = key; + } + else if (PyFloat_Check(key)) { + kstr = encoder_encode_float(s, key); + if (kstr == NULL) + goto bail; + } + else if (key == Py_True || key == Py_False || key == Py_None) { + /* This must come before the PyLong_Check because + True and False are also 1 and 0.*/ + kstr = _encoded_const(key); + if (kstr == NULL) + goto bail; + } + else if (PyLong_Check(key)) { + kstr = PyLong_Type.tp_repr(key); + if (kstr == NULL) { goto bail; } + } + else if (s->skipkeys) { + Py_DECREF(item); + continue; + } + else { + PyErr_Format(PyExc_TypeError, + "keys must be str, int, float, bool or None, " + "not %.100s", Py_TYPE(key)->tp_name); + goto bail; + } - key = PyTuple_GET_ITEM(item, 0); - value = PyTuple_GET_ITEM(item, 1); - if (encoder_encode_key_value(s, writer, &first, key, value, indent_level) < 0) + if (idx) { + if (_PyAccu_Accumulate(acc, s->item_separator)) goto bail; } - Py_CLEAR(items); - } else { - Py_ssize_t pos = 0; - while (PyDict_Next(dct, &pos, &key, &value)) { - if (encoder_encode_key_value(s, writer, &first, key, value, indent_level) < 0) - goto bail; + encoded = encoder_encode_string(s, kstr); + Py_CLEAR(kstr); + if (encoded == NULL) + goto bail; + if (_PyAccu_Accumulate(acc, encoded)) { + Py_DECREF(encoded); + goto bail; } + Py_DECREF(encoded); + if (_PyAccu_Accumulate(acc, s->key_separator)) + goto bail; + + value = PyTuple_GET_ITEM(item, 1); + if (encoder_listencode_obj(s, acc, value, indent_level)) + goto bail; + idx += 1; + Py_DECREF(item); } + if (PyErr_Occurred()) + goto bail; + Py_CLEAR(it); if (ident != NULL) { if (PyDict_DelItem(s->markers, ident)) @@ -1638,31 +1636,44 @@ encoder_listencode_dict(PyEncoderObject *s, _PyUnicodeWriter *writer, yield '\n' + (' ' * (_indent * _current_indent_level)) }*/ - if (_PyUnicodeWriter_WriteChar(writer, '}')) + if (_PyAccu_Accumulate(acc, close_dict)) goto bail; return 0; bail: - Py_XDECREF(items); + Py_XDECREF(it); + Py_XDECREF(item); + Py_XDECREF(kstr); Py_XDECREF(ident); return -1; } + static int -encoder_listencode_list(PyEncoderObject *s, _PyUnicodeWriter *writer, +encoder_listencode_list(PyEncoderObject *s, _PyAccu *acc, PyObject *seq, Py_ssize_t indent_level) { + /* Encode Python list seq to a JSON term */ + _Py_static_string(PyId_open_array, "["); + _Py_static_string(PyId_close_array, "]"); + _Py_static_string(PyId_empty_array, "[]"); + PyObject *open_array = _PyUnicode_FromId(&PyId_open_array); // borrowed ref + PyObject *close_array = _PyUnicode_FromId(&PyId_close_array); // borrowed ref + PyObject *empty_array = _PyUnicode_FromId(&PyId_empty_array); // borrowed ref PyObject *ident = NULL; PyObject *s_fast = NULL; Py_ssize_t i; + if (open_array == NULL || close_array == NULL || empty_array == NULL) { + return -1; + } ident = NULL; s_fast = PySequence_Fast(seq, "_iterencode_list needs a sequence"); if (s_fast == NULL) return -1; if (PySequence_Fast_GET_SIZE(s_fast) == 0) { Py_DECREF(s_fast); - return _PyUnicodeWriter_WriteASCIIString(writer, "[]", 2); + return _PyAccu_Accumulate(acc, empty_array); } if (s->markers != Py_None) { @@ -1681,7 +1692,7 @@ encoder_listencode_list(PyEncoderObject *s, _PyUnicodeWriter *writer, } } - if (_PyUnicodeWriter_WriteChar(writer, '[')) + if (_PyAccu_Accumulate(acc, open_array)) goto bail; if (s->indent != Py_None) { /* TODO: DOES NOT RUN */ @@ -1695,10 +1706,10 @@ encoder_listencode_list(PyEncoderObject *s, _PyUnicodeWriter *writer, for (i = 0; i < PySequence_Fast_GET_SIZE(s_fast); i++) { PyObject *obj = PySequence_Fast_GET_ITEM(s_fast, i); if (i) { - if (_PyUnicodeWriter_WriteStr(writer, s->item_separator)) + if (_PyAccu_Accumulate(acc, s->item_separator)) goto bail; } - if (encoder_listencode_obj(s, writer, obj, indent_level)) + if (encoder_listencode_obj(s, acc, obj, indent_level)) goto bail; } if (ident != NULL) { @@ -1713,7 +1724,7 @@ encoder_listencode_list(PyEncoderObject *s, _PyUnicodeWriter *writer, yield '\n' + (' ' * (_indent * _current_indent_level)) }*/ - if (_PyUnicodeWriter_WriteChar(writer, ']')) + if (_PyAccu_Accumulate(acc, close_array)) goto bail; Py_DECREF(s_fast); return 0; @@ -1804,40 +1815,70 @@ PyDoc_STRVAR(module_doc, static int _json_exec(PyObject *module) { - PyObject *PyScannerType = PyType_FromSpec(&PyScannerType_spec); - if (PyScannerType == NULL) { + _jsonmodulestate *state = get_json_state(module); + + state->PyScannerType = PyType_FromSpec(&PyScannerType_spec); + if (state->PyScannerType == NULL) { return -1; } - int rc = PyModule_AddObjectRef(module, "make_scanner", PyScannerType); - Py_DECREF(PyScannerType); - if (rc < 0) { + Py_INCREF(state->PyScannerType); + if (PyModule_AddObject(module, "make_scanner", state->PyScannerType) < 0) { + Py_DECREF(state->PyScannerType); return -1; } - PyObject *PyEncoderType = PyType_FromSpec(&PyEncoderType_spec); - if (PyEncoderType == NULL) { + state->PyEncoderType = PyType_FromSpec(&PyEncoderType_spec); + if (state->PyEncoderType == NULL) { return -1; } - rc = PyModule_AddObjectRef(module, "make_encoder", PyEncoderType); - Py_DECREF(PyEncoderType); - if (rc < 0) { + Py_INCREF(state->PyEncoderType); + if (PyModule_AddObject(module, "make_encoder", state->PyEncoderType) < 0) { + Py_DECREF(state->PyEncoderType); return -1; } return 0; } +static int +_jsonmodule_traverse(PyObject *module, visitproc visit, void *arg) +{ + _jsonmodulestate *state = get_json_state(module); + Py_VISIT(state->PyScannerType); + Py_VISIT(state->PyEncoderType); + return 0; +} + +static int +_jsonmodule_clear(PyObject *module) +{ + _jsonmodulestate *state = get_json_state(module); + Py_CLEAR(state->PyScannerType); + Py_CLEAR(state->PyEncoderType); + return 0; +} + +static void +_jsonmodule_free(void *module) +{ + _jsonmodule_clear((PyObject *)module); +} + static PyModuleDef_Slot _json_slots[] = { {Py_mod_exec, _json_exec}, {0, NULL} }; static struct PyModuleDef jsonmodule = { - .m_base = PyModuleDef_HEAD_INIT, - .m_name = "_json", - .m_doc = module_doc, - .m_methods = speedups_methods, - .m_slots = _json_slots, + PyModuleDef_HEAD_INIT, + "_json", + module_doc, + sizeof(_jsonmodulestate), + speedups_methods, + _json_slots, + _jsonmodule_traverse, + _jsonmodule_clear, + _jsonmodule_free, }; PyMODINIT_FUNC diff --git a/Modules/_lsprof.c b/Modules/_lsprof.c index a0e262bdac26c6..9ba45e69ef4e20 100644 --- a/Modules/_lsprof.c +++ b/Modules/_lsprof.c @@ -747,11 +747,10 @@ profiler_traverse(ProfilerObject *op, visitproc visit, void *arg) static void profiler_dealloc(ProfilerObject *op) { - PyObject_GC_UnTrack(op); if (op->flags & POF_ENABLED) { PyThreadState *tstate = _PyThreadState_GET(); if (_PyEval_SetProfile(tstate, NULL, NULL) < 0) { - _PyErr_WriteUnraisableMsg("When destroying _lsprof profiler", NULL); + PyErr_WriteUnraisable((PyObject *)op); } } diff --git a/Modules/_multiprocessing/clinic/multiprocessing.c.h b/Modules/_multiprocessing/clinic/multiprocessing.c.h index 885cd5c2fff8ea..e9953215aca7df 100644 --- a/Modules/_multiprocessing/clinic/multiprocessing.c.h +++ b/Modules/_multiprocessing/clinic/multiprocessing.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - #if defined(MS_WINDOWS) PyDoc_STRVAR(_multiprocessing_closesocket__doc__, @@ -27,8 +21,7 @@ _multiprocessing_closesocket(PyObject *module, PyObject *arg) PyObject *return_value = NULL; HANDLE handle; - handle = PyLong_AsVoidPtr(arg); - if (!handle && PyErr_Occurred()) { + if (!PyArg_Parse(arg, ""F_HANDLE":closesocket", &handle)) { goto exit; } return_value = _multiprocessing_closesocket_impl(module, handle); @@ -59,15 +52,8 @@ _multiprocessing_recv(PyObject *module, PyObject *const *args, Py_ssize_t nargs) HANDLE handle; int size; - if (!_PyArg_CheckPositional("recv", nargs, 2, 2)) { - goto exit; - } - handle = PyLong_AsVoidPtr(args[0]); - if (!handle && PyErr_Occurred()) { - goto exit; - } - size = _PyLong_AsInt(args[1]); - if (size == -1 && PyErr_Occurred()) { + if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE"i:recv", + &handle, &size)) { goto exit; } return_value = _multiprocessing_recv_impl(module, handle, size); @@ -98,18 +84,8 @@ _multiprocessing_send(PyObject *module, PyObject *const *args, Py_ssize_t nargs) HANDLE handle; Py_buffer buf = {NULL, NULL}; - if (!_PyArg_CheckPositional("send", nargs, 2, 2)) { - goto exit; - } - handle = PyLong_AsVoidPtr(args[0]); - if (!handle && PyErr_Occurred()) { - goto exit; - } - if (PyObject_GetBuffer(args[1], &buf, PyBUF_SIMPLE) != 0) { - goto exit; - } - if (!PyBuffer_IsContiguous(&buf, 'C')) { - _PyArg_BadArgument("send", "argument 2", "contiguous buffer", args[1]); + if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE"y*:send", + &handle, &buf)) { goto exit; } return_value = _multiprocessing_send_impl(module, handle, &buf); @@ -172,4 +148,4 @@ _multiprocessing_sem_unlink(PyObject *module, PyObject *arg) #ifndef _MULTIPROCESSING_SEND_METHODDEF #define _MULTIPROCESSING_SEND_METHODDEF #endif /* !defined(_MULTIPROCESSING_SEND_METHODDEF) */ -/*[clinic end generated code: output=4a6afc67c1f5ec85 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=d3bbf69de578db7b input=a9049054013a1b77]*/ diff --git a/Modules/_multiprocessing/clinic/posixshmem.c.h b/Modules/_multiprocessing/clinic/posixshmem.c.h index df2aa29cfe626e..be21f836b955a5 100644 --- a/Modules/_multiprocessing/clinic/posixshmem.c.h +++ b/Modules/_multiprocessing/clinic/posixshmem.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - #if defined(HAVE_SHM_OPEN) PyDoc_STRVAR(_posixshmem_shm_open__doc__, @@ -27,31 +21,8 @@ static PyObject * _posixshmem_shm_open(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), &_Py_ID(flags), &_Py_ID(mode), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", "flags", "mode", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "shm_open", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "shm_open", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; PyObject *path; @@ -117,31 +88,8 @@ static PyObject * _posixshmem_shm_unlink(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "shm_unlink", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "shm_unlink", 0}; PyObject *argsbuf[1]; PyObject *path; @@ -172,4 +120,4 @@ _posixshmem_shm_unlink(PyObject *module, PyObject *const *args, Py_ssize_t nargs #ifndef _POSIXSHMEM_SHM_UNLINK_METHODDEF #define _POSIXSHMEM_SHM_UNLINK_METHODDEF #endif /* !defined(_POSIXSHMEM_SHM_UNLINK_METHODDEF) */ -/*[clinic end generated code: output=3f6fee283d5fd0e9 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=a6db931a47d36e1b input=a9049054013a1b77]*/ diff --git a/Modules/_multiprocessing/clinic/semaphore.c.h b/Modules/_multiprocessing/clinic/semaphore.c.h index dce0366c266f10..adb47476c01875 100644 --- a/Modules/_multiprocessing/clinic/semaphore.c.h +++ b/Modules/_multiprocessing/clinic/semaphore.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - #if defined(HAVE_MP_SEMAPHORE) && defined(MS_WINDOWS) PyDoc_STRVAR(_multiprocessing_SemLock_acquire__doc__, @@ -27,31 +21,8 @@ static PyObject * _multiprocessing_SemLock_acquire(SemLockObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(block), &_Py_ID(timeout), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"block", "timeout", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "acquire", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "acquire", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int blocking = 1; @@ -124,31 +95,8 @@ static PyObject * _multiprocessing_SemLock_acquire(SemLockObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(block), &_Py_ID(timeout), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"block", "timeout", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "acquire", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "acquire", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int blocking = 1; @@ -212,31 +160,8 @@ static PyObject * _multiprocessing_SemLock(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 5 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(kind), &_Py_ID(value), &_Py_ID(maxvalue), &_Py_ID(name), &_Py_ID(unlink), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"kind", "value", "maxvalue", "name", "unlink", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "SemLock", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "SemLock", 0}; PyObject *argsbuf[5]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -542,4 +467,4 @@ _multiprocessing_SemLock___exit__(SemLockObject *self, PyObject *const *args, Py #ifndef _MULTIPROCESSING_SEMLOCK___EXIT___METHODDEF #define _MULTIPROCESSING_SEMLOCK___EXIT___METHODDEF #endif /* !defined(_MULTIPROCESSING_SEMLOCK___EXIT___METHODDEF) */ -/*[clinic end generated code: output=720d7d0066dc0954 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=64ba32544811c9e6 input=a9049054013a1b77]*/ diff --git a/Modules/_multiprocessing/multiprocessing.c b/Modules/_multiprocessing/multiprocessing.c index 2463e1e1a8bf7e..0809c2455dbebc 100644 --- a/Modules/_multiprocessing/multiprocessing.c +++ b/Modules/_multiprocessing/multiprocessing.c @@ -14,16 +14,8 @@ class HANDLE_converter(CConverter): type = "HANDLE" format_unit = '"F_HANDLE"' - def parse_arg(self, argname, displayname): - return """ - {paramname} = PyLong_AsVoidPtr({argname}); - if (!{paramname} && PyErr_Occurred()) {{{{ - goto exit; - }}}} - """.format(argname=argname, paramname=self.parser_name) - [python start generated code]*/ -/*[python end generated code: output=da39a3ee5e6b4b0d input=3e537d244034affb]*/ +/*[python end generated code: output=da39a3ee5e6b4b0d input=9fad6080b79ace91]*/ /*[clinic input] module _multiprocessing @@ -196,39 +188,33 @@ multiprocessing_exec(PyObject *module) { #ifdef HAVE_MP_SEMAPHORE - PyTypeObject *semlock_type = (PyTypeObject *)PyType_FromModuleAndSpec( - module, &_PyMp_SemLockType_spec, NULL); - - if (semlock_type == NULL) { - return -1; - } - int rc = PyModule_AddType(module, semlock_type); - Py_DECREF(semlock_type); - if (rc < 0) { + /* Add _PyMp_SemLock type to module */ + if (PyModule_AddType(module, &_PyMp_SemLockType) < 0) { return -1; } - PyObject *py_sem_value_max; - /* Some systems define SEM_VALUE_MAX as an unsigned value that - * causes it to be negative when used as an int (NetBSD). - * - * Issue #28152: Use (0) instead of 0 to fix a warning on dead code - * when using clang -Wunreachable-code. */ - if ((int)(SEM_VALUE_MAX) < (0)) { - py_sem_value_max = PyLong_FromLong(INT_MAX); - } - else { - py_sem_value_max = PyLong_FromLong(SEM_VALUE_MAX); - } - if (py_sem_value_max == NULL) { - return -1; - } - if (PyDict_SetItemString(semlock_type->tp_dict, "SEM_VALUE_MAX", - py_sem_value_max) < 0) { + { + PyObject *py_sem_value_max; + /* Some systems define SEM_VALUE_MAX as an unsigned value that + * causes it to be negative when used as an int (NetBSD). + * + * Issue #28152: Use (0) instead of 0 to fix a warning on dead code + * when using clang -Wunreachable-code. */ + if ((int)(SEM_VALUE_MAX) < (0)) + py_sem_value_max = PyLong_FromLong(INT_MAX); + else + py_sem_value_max = PyLong_FromLong(SEM_VALUE_MAX); + + if (py_sem_value_max == NULL) { + return -1; + } + if (PyDict_SetItemString(_PyMp_SemLockType.tp_dict, "SEM_VALUE_MAX", + py_sem_value_max) < 0) { + Py_DECREF(py_sem_value_max); + return -1; + } Py_DECREF(py_sem_value_max); - return -1; } - Py_DECREF(py_sem_value_max); #endif @@ -282,7 +268,6 @@ static PyModuleDef_Slot multiprocessing_slots[] = { static struct PyModuleDef multiprocessing_module = { PyModuleDef_HEAD_INIT, .m_name = "_multiprocessing", - .m_size = 0, .m_methods = module_methods, .m_slots = multiprocessing_slots, }; diff --git a/Modules/_multiprocessing/multiprocessing.h b/Modules/_multiprocessing/multiprocessing.h index b595e5a8dd18de..3a8314b1db8331 100644 --- a/Modules/_multiprocessing/multiprocessing.h +++ b/Modules/_multiprocessing/multiprocessing.h @@ -89,7 +89,7 @@ PyObject *_PyMp_SetError(PyObject *Type, int num); * Externs - not all will really exist on all platforms */ -extern PyType_Spec _PyMp_SemLockType_spec; +extern PyTypeObject _PyMp_SemLockType; extern PyObject *_PyMp_sem_unlink(const char *name); #endif /* MULTIPROCESSING_H */ diff --git a/Modules/_multiprocessing/semaphore.c b/Modules/_multiprocessing/semaphore.c index 58fb0eb96aeeed..8607476aff10ff 100644 --- a/Modules/_multiprocessing/semaphore.c +++ b/Modules/_multiprocessing/semaphore.c @@ -454,7 +454,9 @@ static PyObject * newsemlockobject(PyTypeObject *type, SEM_HANDLE handle, int kind, int maxvalue, char *name) { - SemLockObject *self = (SemLockObject *)type->tp_alloc(type, 0); + SemLockObject *self; + + self = PyObject_New(SemLockObject, type); if (!self) return NULL; self->handle = handle; @@ -568,13 +570,10 @@ _multiprocessing_SemLock__rebuild_impl(PyTypeObject *type, SEM_HANDLE handle, static void semlock_dealloc(SemLockObject* self) { - PyTypeObject *tp = Py_TYPE(self); - PyObject_GC_UnTrack(self); if (self->handle != SEM_FAILED) SEM_CLOSE(self->handle); PyMem_Free(self->name); - tp->tp_free(self); - Py_DECREF(tp); + PyObject_Free(self); } /*[clinic input] @@ -704,13 +703,6 @@ _multiprocessing_SemLock___exit___impl(SemLockObject *self, return _multiprocessing_SemLock_release_impl(self); } -static int -semlock_traverse(SemLockObject *s, visitproc visit, void *arg) -{ - Py_VISIT(Py_TYPE(s)); - return 0; -} - /* * Semaphore methods */ @@ -749,26 +741,45 @@ static PyMemberDef semlock_members[] = { * Semaphore type */ -static PyType_Slot _PyMp_SemLockType_slots[] = { - {Py_tp_dealloc, semlock_dealloc}, - {Py_tp_getattro, PyObject_GenericGetAttr}, - {Py_tp_setattro, PyObject_GenericSetAttr}, - {Py_tp_methods, semlock_methods}, - {Py_tp_members, semlock_members}, - {Py_tp_alloc, PyType_GenericAlloc}, - {Py_tp_new, _multiprocessing_SemLock}, - {Py_tp_traverse, semlock_traverse}, - {Py_tp_free, PyObject_GC_Del}, - {Py_tp_doc, (void *)PyDoc_STR("Semaphore/Mutex type")}, - {0, 0}, -}; - -PyType_Spec _PyMp_SemLockType_spec = { - .name = "_multiprocessing.SemLock", - .basicsize = sizeof(SemLockObject), - .flags = (Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | - Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_IMMUTABLETYPE), - .slots = _PyMp_SemLockType_slots, +PyTypeObject _PyMp_SemLockType = { + PyVarObject_HEAD_INIT(NULL, 0) + /* tp_name */ "_multiprocessing.SemLock", + /* tp_basicsize */ sizeof(SemLockObject), + /* tp_itemsize */ 0, + /* tp_dealloc */ (destructor)semlock_dealloc, + /* tp_vectorcall_offset */ 0, + /* tp_getattr */ 0, + /* tp_setattr */ 0, + /* tp_as_async */ 0, + /* tp_repr */ 0, + /* tp_as_number */ 0, + /* tp_as_sequence */ 0, + /* tp_as_mapping */ 0, + /* tp_hash */ 0, + /* tp_call */ 0, + /* tp_str */ 0, + /* tp_getattro */ 0, + /* tp_setattro */ 0, + /* tp_as_buffer */ 0, + /* tp_flags */ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, + /* tp_doc */ "Semaphore/Mutex type", + /* tp_traverse */ 0, + /* tp_clear */ 0, + /* tp_richcompare */ 0, + /* tp_weaklistoffset */ 0, + /* tp_iter */ 0, + /* tp_iternext */ 0, + /* tp_methods */ semlock_methods, + /* tp_members */ semlock_members, + /* tp_getset */ 0, + /* tp_base */ 0, + /* tp_dict */ 0, + /* tp_descr_get */ 0, + /* tp_descr_set */ 0, + /* tp_dictoffset */ 0, + /* tp_init */ 0, + /* tp_alloc */ 0, + /* tp_new */ _multiprocessing_SemLock, }; /* diff --git a/Modules/_opcode.c b/Modules/_opcode.c index 99be977417743e..4812716c672718 100644 --- a/Modules/_opcode.c +++ b/Modules/_opcode.c @@ -60,7 +60,12 @@ _opcode_stack_effect_impl(PyObject *module, int opcode, PyObject *oparg, "stack_effect: jump must be False, True or None"); return -1; } - effect = PyCompile_OpcodeStackEffectWithJump(opcode, oparg_int, jump_int); + if (IS_ARTIFICIAL(opcode)) { + effect = PY_INVALID_STACK_EFFECT; + } + else { + effect = PyCompile_OpcodeStackEffectWithJump(opcode, oparg_int, jump_int); + } if (effect == PY_INVALID_STACK_EFFECT) { PyErr_SetString(PyExc_ValueError, "invalid opcode or oparg"); diff --git a/Modules/_operator.c b/Modules/_operator.c index 51ca74eeeaee21..1af4a4feb7728a 100644 --- a/Modules/_operator.c +++ b/Modules/_operator.c @@ -839,7 +839,7 @@ _operator__compare_digest_impl(PyObject *module, PyObject *a, PyObject *b) PyUnicode_GET_LENGTH(a), PyUnicode_GET_LENGTH(b)); } - /* fallback to buffer interface for bytes, bytearray and other */ + /* fallback to buffer interface for bytes, bytesarray and other */ else { Py_buffer view_a; Py_buffer view_b; @@ -1752,11 +1752,16 @@ methodcaller_reduce(methodcallerobject *mc, PyObject *Py_UNUSED(ignored)) return Py_BuildValue("ON", Py_TYPE(mc), newargs); } else { + PyObject *functools; PyObject *partial; PyObject *constructor; PyObject *newargs[2]; - partial = _PyImport_GetModuleAttrString("functools", "partial"); + functools = PyImport_ImportModule("functools"); + if (!functools) + return NULL; + partial = PyObject_GetAttr(functools, &_Py_ID(partial)); + Py_DECREF(functools); if (!partial) return NULL; diff --git a/Modules/_pickle.c b/Modules/_pickle.c index 52704b0c59ade1..0adfa4103cc0d0 100644 --- a/Modules/_pickle.c +++ b/Modules/_pickle.c @@ -232,6 +232,8 @@ _Pickle_InitState(PickleState *st) { PyObject *copyreg = NULL; PyObject *compat_pickle = NULL; + PyObject *codecs = NULL; + PyObject *functools = NULL; st->getattr = _PyEval_GetBuiltin(&_Py_ID(getattr)); if (st->getattr == NULL) @@ -327,7 +329,10 @@ _Pickle_InitState(PickleState *st) } Py_CLEAR(compat_pickle); - st->codecs_encode = _PyImport_GetModuleAttrString("codecs", "encode"); + codecs = PyImport_ImportModule("codecs"); + if (codecs == NULL) + goto error; + st->codecs_encode = PyObject_GetAttrString(codecs, "encode"); if (st->codecs_encode == NULL) { goto error; } @@ -337,16 +342,23 @@ _Pickle_InitState(PickleState *st) Py_TYPE(st->codecs_encode)->tp_name); goto error; } + Py_CLEAR(codecs); - st->partial = _PyImport_GetModuleAttrString("functools", "partial"); + functools = PyImport_ImportModule("functools"); + if (!functools) + goto error; + st->partial = PyObject_GetAttrString(functools, "partial"); if (!st->partial) goto error; + Py_CLEAR(functools); return 0; error: Py_CLEAR(copyreg); Py_CLEAR(compat_pickle); + Py_CLEAR(codecs); + Py_CLEAR(functools); _Pickle_ClearState(st); return -1; } @@ -2994,10 +3006,7 @@ batch_list_exact(PicklerObject *self, PyObject *obj) if (PyList_GET_SIZE(obj) == 1) { item = PyList_GET_ITEM(obj, 0); - Py_INCREF(item); - int err = save(self, item, 0); - Py_DECREF(item); - if (err < 0) + if (save(self, item, 0) < 0) return -1; if (_Pickler_Write(self, &append_op, 1) < 0) return -1; @@ -3012,10 +3021,7 @@ batch_list_exact(PicklerObject *self, PyObject *obj) return -1; while (total < PyList_GET_SIZE(obj)) { item = PyList_GET_ITEM(obj, total); - Py_INCREF(item); - int err = save(self, item, 0); - Py_DECREF(item); - if (err < 0) + if (save(self, item, 0) < 0) return -1; total++; if (++this_batch == BATCHSIZE) @@ -3253,16 +3259,10 @@ batch_dict_exact(PicklerObject *self, PyObject *obj) /* Special-case len(d) == 1 to save space. */ if (dict_size == 1) { PyDict_Next(obj, &ppos, &key, &value); - Py_INCREF(key); - Py_INCREF(value); - if (save(self, key, 0) < 0) { - goto error; - } - if (save(self, value, 0) < 0) { - goto error; - } - Py_CLEAR(key); - Py_CLEAR(value); + if (save(self, key, 0) < 0) + return -1; + if (save(self, value, 0) < 0) + return -1; if (_Pickler_Write(self, &setitem_op, 1) < 0) return -1; return 0; @@ -3274,16 +3274,10 @@ batch_dict_exact(PicklerObject *self, PyObject *obj) if (_Pickler_Write(self, &mark_op, 1) < 0) return -1; while (PyDict_Next(obj, &ppos, &key, &value)) { - Py_INCREF(key); - Py_INCREF(value); - if (save(self, key, 0) < 0) { - goto error; - } - if (save(self, value, 0) < 0) { - goto error; - } - Py_CLEAR(key); - Py_CLEAR(value); + if (save(self, key, 0) < 0) + return -1; + if (save(self, value, 0) < 0) + return -1; if (++i == BATCHSIZE) break; } @@ -3298,10 +3292,6 @@ batch_dict_exact(PicklerObject *self, PyObject *obj) } while (i == BATCHSIZE); return 0; -error: - Py_XDECREF(key); - Py_XDECREF(value); - return -1; } static int @@ -3419,10 +3409,7 @@ save_set(PicklerObject *self, PyObject *obj) if (_Pickler_Write(self, &mark_op, 1) < 0) return -1; while (_PySet_NextEntry(obj, &ppos, &item, &hash)) { - Py_INCREF(item); - int err = save(self, item, 0); - Py_CLEAR(item); - if (err < 0) + if (save(self, item, 0) < 0) return -1; if (++i == BATCHSIZE) break; @@ -4761,9 +4748,7 @@ _pickle_Pickler___init___impl(PicklerObject *self, PyObject *file, { return -1; } - if (self->dispatch_table != NULL) { - return 0; - } + if (_PyObject_LookupAttr((PyObject *)self, &_Py_ID(dispatch_table), &self->dispatch_table) < 0) { return -1; diff --git a/Modules/_randommodule.c b/Modules/_randommodule.c index 95f1e505dd1873..d96c0371ec7f8e 100644 --- a/Modules/_randommodule.c +++ b/Modules/_randommodule.c @@ -72,7 +72,6 @@ #include "Python.h" #include "pycore_moduleobject.h" // _PyModule_GetState() -#include "pycore_runtime.h" #ifdef HAVE_PROCESS_H # include <process.h> // getpid() #endif diff --git a/Modules/_sha3/clinic/sha3module.c.h b/Modules/_sha3/clinic/sha3module.c.h index a0c7c1c043e515..1c79c269391ca2 100644 --- a/Modules/_sha3/clinic/sha3module.c.h +++ b/Modules/_sha3/clinic/sha3module.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(py_sha3_new__doc__, "sha3_224(data=b\'\', /, *, usedforsecurity=True)\n" "--\n" @@ -21,31 +15,8 @@ static PyObject * py_sha3_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(usedforsecurity), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "sha3_224", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "sha3_224", 0}; PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -193,4 +164,4 @@ _sha3_shake_128_hexdigest(SHA3object *self, PyObject *arg) exit: return return_value; } -/*[clinic end generated code: output=747c3f34ddd14063 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=c8a97b34e80def62 input=a9049054013a1b77]*/ diff --git a/Modules/_sqlite/clinic/blob.c.h b/Modules/_sqlite/clinic/blob.c.h index f3d8a35be46138..b467c99e2eb5fd 100644 --- a/Modules/_sqlite/clinic/blob.c.h +++ b/Modules/_sqlite/clinic/blob.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(blob_close__doc__, "close($self, /)\n" "--\n" @@ -219,4 +213,4 @@ blob_exit(pysqlite_Blob *self, PyObject *const *args, Py_ssize_t nargs) exit: return return_value; } -/*[clinic end generated code: output=ad6a402f70e85977 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=382cbf0977bb158a input=a9049054013a1b77]*/ diff --git a/Modules/_sqlite/clinic/connection.c.h b/Modules/_sqlite/clinic/connection.c.h index e7e78707ee8d5d..dd86fb5b64f3f0 100644 --- a/Modules/_sqlite/clinic/connection.c.h +++ b/Modules/_sqlite/clinic/connection.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - static int pysqlite_connection_init_impl(pysqlite_Connection *self, PyObject *database, double timeout, int detect_types, @@ -19,31 +13,8 @@ static int pysqlite_connection_init(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 8 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(database), &_Py_ID(timeout), &_Py_ID(detect_types), &_Py_ID(isolation_level), &_Py_ID(check_same_thread), &_Py_ID(factory), &_Py_ID(cached_statements), &_Py_ID(uri), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"database", "timeout", "detect_types", "isolation_level", "check_same_thread", "factory", "cached_statements", "uri", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "Connection", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "Connection", 0}; PyObject *argsbuf[8]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -148,31 +119,8 @@ static PyObject * pysqlite_connection_cursor(pysqlite_Connection *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(factory), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"factory", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "cursor", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "cursor", 0}; PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *factory = NULL; @@ -220,31 +168,8 @@ static PyObject * blobopen(pysqlite_Connection *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(readonly), &_Py_ID(name), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "", "", "readonly", "name", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "blobopen", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "blobopen", 0}; PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3; const char *table; @@ -323,9 +248,7 @@ PyDoc_STRVAR(pysqlite_connection_close__doc__, "close($self, /)\n" "--\n" "\n" -"Close the database connection.\n" -"\n" -"Any pending transaction is not committed implicitly."); +"Closes the connection."); #define PYSQLITE_CONNECTION_CLOSE_METHODDEF \ {"close", (PyCFunction)pysqlite_connection_close, METH_NOARGS, pysqlite_connection_close__doc__}, @@ -343,9 +266,7 @@ PyDoc_STRVAR(pysqlite_connection_commit__doc__, "commit($self, /)\n" "--\n" "\n" -"Commit any pending transaction to the database.\n" -"\n" -"If there is no open transaction, this method is a no-op."); +"Commit the current transaction."); #define PYSQLITE_CONNECTION_COMMIT_METHODDEF \ {"commit", (PyCFunction)pysqlite_connection_commit, METH_NOARGS, pysqlite_connection_commit__doc__}, @@ -363,9 +284,7 @@ PyDoc_STRVAR(pysqlite_connection_rollback__doc__, "rollback($self, /)\n" "--\n" "\n" -"Roll back to the start of any pending transaction.\n" -"\n" -"If there is no open transaction, this method is a no-op."); +"Roll back the current transaction."); #define PYSQLITE_CONNECTION_ROLLBACK_METHODDEF \ {"rollback", (PyCFunction)pysqlite_connection_rollback, METH_NOARGS, pysqlite_connection_rollback__doc__}, @@ -398,31 +317,8 @@ static PyObject * pysqlite_connection_create_function(pysqlite_Connection *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 4 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(name), &_Py_ID(narg), &_Py_ID(func), &_Py_ID(deterministic), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"name", "narg", "func", "deterministic", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "create_function", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "create_function", 0}; PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3; const char *name; @@ -495,19 +391,8 @@ static PyObject * create_window_function(pysqlite_Connection *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) - #else - # define KWTUPLE NULL - #endif - static const char * const _keywords[] = {"", "", "", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "create_window_function", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "create_window_function", 0}; PyObject *argsbuf[3]; const char *name; int num_params; @@ -562,31 +447,8 @@ static PyObject * pysqlite_connection_create_aggregate(pysqlite_Connection *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(name), &_Py_ID(n_arg), &_Py_ID(aggregate_class), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"name", "n_arg", "aggregate_class", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "create_aggregate", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "create_aggregate", 0}; PyObject *argsbuf[3]; const char *name; int n_arg; @@ -638,31 +500,8 @@ static PyObject * pysqlite_connection_set_authorizer(pysqlite_Connection *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(authorizer_callback), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"authorizer_callback", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "set_authorizer", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "set_authorizer", 0}; PyObject *argsbuf[1]; PyObject *callable; @@ -695,31 +534,8 @@ static PyObject * pysqlite_connection_set_progress_handler(pysqlite_Connection *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(progress_handler), &_Py_ID(n), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"progress_handler", "n", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "set_progress_handler", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "set_progress_handler", 0}; PyObject *argsbuf[2]; PyObject *callable; int n; @@ -757,31 +573,8 @@ static PyObject * pysqlite_connection_set_trace_callback(pysqlite_Connection *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(trace_callback), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"trace_callback", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "set_trace_callback", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "set_trace_callback", 0}; PyObject *argsbuf[1]; PyObject *callable; @@ -1016,31 +809,8 @@ static PyObject * pysqlite_connection_backup(pysqlite_Connection *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 5 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(target), &_Py_ID(pages), &_Py_ID(progress), &_Py_ID(name), &_Py_ID(sleep), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"target", "pages", "progress", "name", "sleep", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "backup", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "backup", 0}; PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; pysqlite_Connection *target; @@ -1130,19 +900,8 @@ static PyObject * pysqlite_connection_create_collation(pysqlite_Connection *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) - #else - # define KWTUPLE NULL - #endif - static const char * const _keywords[] = {"", "", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "create_collation", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "create_collation", 0}; PyObject *argsbuf[2]; const char *name; PyObject *callable; @@ -1197,31 +956,8 @@ static PyObject * serialize(pysqlite_Connection *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(name), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"name", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "serialize", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "serialize", 0}; PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; const char *name = "main"; @@ -1286,31 +1022,8 @@ static PyObject * deserialize(pysqlite_Connection *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(name), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "name", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "deserialize", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "deserialize", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer data = {NULL, NULL}; @@ -1518,4 +1231,4 @@ getlimit(pysqlite_Connection *self, PyObject *arg) #ifndef DESERIALIZE_METHODDEF #define DESERIALIZE_METHODDEF #endif /* !defined(DESERIALIZE_METHODDEF) */ -/*[clinic end generated code: output=beef3eac690a1f88 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=fb8908674e9f25ff input=a9049054013a1b77]*/ diff --git a/Modules/_sqlite/clinic/cursor.c.h b/Modules/_sqlite/clinic/cursor.c.h index 36b8d0051a2915..b29c333074888b 100644 --- a/Modules/_sqlite/clinic/cursor.c.h +++ b/Modules/_sqlite/clinic/cursor.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - static int pysqlite_cursor_init_impl(pysqlite_Cursor *self, pysqlite_Connection *connection); @@ -192,31 +186,8 @@ static PyObject * pysqlite_cursor_fetchmany(pysqlite_Cursor *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(size), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"size", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "fetchmany", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "fetchmany", 0}; PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int maxrows = self->arraysize; @@ -318,4 +289,4 @@ pysqlite_cursor_close(pysqlite_Cursor *self, PyObject *Py_UNUSED(ignored)) { return pysqlite_cursor_close_impl(self); } -/*[clinic end generated code: output=e53e75a32a9d92bd input=a9049054013a1b77]*/ +/*[clinic end generated code: output=2b9c6a3ca8a8caff input=a9049054013a1b77]*/ diff --git a/Modules/_sqlite/clinic/module.c.h b/Modules/_sqlite/clinic/module.c.h index 12f60835880b10..d3367cf62bf724 100644 --- a/Modules/_sqlite/clinic/module.c.h +++ b/Modules/_sqlite/clinic/module.c.h @@ -2,11 +2,115 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif +PyDoc_STRVAR(pysqlite_connect__doc__, +"connect($module, /, database, timeout=5.0, detect_types=0,\n" +" isolation_level=<unrepresentable>, check_same_thread=True,\n" +" factory=ConnectionType, cached_statements=128, uri=False)\n" +"--\n" +"\n" +"Opens a connection to the SQLite database file database.\n" +"\n" +"You can use \":memory:\" to open a database connection to a database that resides\n" +"in RAM instead of on disk."); + +#define PYSQLITE_CONNECT_METHODDEF \ + {"connect", _PyCFunction_CAST(pysqlite_connect), METH_FASTCALL|METH_KEYWORDS, pysqlite_connect__doc__}, + +static PyObject * +pysqlite_connect_impl(PyObject *module, PyObject *database, double timeout, + int detect_types, PyObject *isolation_level, + int check_same_thread, PyObject *factory, + int cached_statements, int uri); + +static PyObject * +pysqlite_connect(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) +{ + PyObject *return_value = NULL; + static const char * const _keywords[] = {"database", "timeout", "detect_types", "isolation_level", "check_same_thread", "factory", "cached_statements", "uri", NULL}; + static _PyArg_Parser _parser = {NULL, _keywords, "connect", 0}; + PyObject *argsbuf[8]; + Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; + PyObject *database; + double timeout = 5.0; + int detect_types = 0; + PyObject *isolation_level = NULL; + int check_same_thread = 1; + PyObject *factory = (PyObject*)clinic_state()->ConnectionType; + int cached_statements = 128; + int uri = 0; + + args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 8, 0, argsbuf); + if (!args) { + goto exit; + } + database = args[0]; + if (!noptargs) { + goto skip_optional_pos; + } + if (args[1]) { + if (PyFloat_CheckExact(args[1])) { + timeout = PyFloat_AS_DOUBLE(args[1]); + } + else + { + timeout = PyFloat_AsDouble(args[1]); + if (timeout == -1.0 && PyErr_Occurred()) { + goto exit; + } + } + if (!--noptargs) { + goto skip_optional_pos; + } + } + if (args[2]) { + detect_types = _PyLong_AsInt(args[2]); + if (detect_types == -1 && PyErr_Occurred()) { + goto exit; + } + if (!--noptargs) { + goto skip_optional_pos; + } + } + if (args[3]) { + isolation_level = args[3]; + if (!--noptargs) { + goto skip_optional_pos; + } + } + if (args[4]) { + check_same_thread = _PyLong_AsInt(args[4]); + if (check_same_thread == -1 && PyErr_Occurred()) { + goto exit; + } + if (!--noptargs) { + goto skip_optional_pos; + } + } + if (args[5]) { + factory = args[5]; + if (!--noptargs) { + goto skip_optional_pos; + } + } + if (args[6]) { + cached_statements = _PyLong_AsInt(args[6]); + if (cached_statements == -1 && PyErr_Occurred()) { + goto exit; + } + if (!--noptargs) { + goto skip_optional_pos; + } + } + uri = PyObject_IsTrue(args[7]); + if (uri < 0) { + goto exit; + } +skip_optional_pos: + return_value = pysqlite_connect_impl(module, database, timeout, detect_types, isolation_level, check_same_thread, factory, cached_statements, uri); +exit: + return return_value; +} PyDoc_STRVAR(pysqlite_complete_statement__doc__, "complete_statement($module, /, statement)\n" @@ -24,31 +128,8 @@ static PyObject * pysqlite_complete_statement(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(statement), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"statement", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "complete_statement", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "complete_statement", 0}; PyObject *argsbuf[1]; const char *statement; @@ -76,10 +157,10 @@ pysqlite_complete_statement(PyObject *module, PyObject *const *args, Py_ssize_t } PyDoc_STRVAR(pysqlite_register_adapter__doc__, -"register_adapter($module, type, adapter, /)\n" +"register_adapter($module, type, caster, /)\n" "--\n" "\n" -"Register a function to adapt Python objects to SQLite values."); +"Registers an adapter with sqlite3\'s adapter registry."); #define PYSQLITE_REGISTER_ADAPTER_METHODDEF \ {"register_adapter", _PyCFunction_CAST(pysqlite_register_adapter), METH_FASTCALL, pysqlite_register_adapter__doc__}, @@ -107,10 +188,10 @@ pysqlite_register_adapter(PyObject *module, PyObject *const *args, Py_ssize_t na } PyDoc_STRVAR(pysqlite_register_converter__doc__, -"register_converter($module, typename, converter, /)\n" +"register_converter($module, name, converter, /)\n" "--\n" "\n" -"Register a function to convert SQLite values to Python objects."); +"Registers a converter with sqlite3."); #define PYSQLITE_REGISTER_CONVERTER_METHODDEF \ {"register_converter", _PyCFunction_CAST(pysqlite_register_converter), METH_FASTCALL, pysqlite_register_converter__doc__}, @@ -211,4 +292,4 @@ pysqlite_adapt(PyObject *module, PyObject *const *args, Py_ssize_t nargs) exit: return return_value; } -/*[clinic end generated code: output=39d38c6cfc455042 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=a7cfa6dc9d54273c input=a9049054013a1b77]*/ diff --git a/Modules/_sqlite/clinic/row.c.h b/Modules/_sqlite/clinic/row.c.h index c543b398db3fcf..c936ef75fdeaa4 100644 --- a/Modules/_sqlite/clinic/row.c.h +++ b/Modules/_sqlite/clinic/row.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - static PyObject * pysqlite_row_new_impl(PyTypeObject *type, pysqlite_Cursor *cursor, PyObject *data); @@ -60,4 +54,4 @@ pysqlite_row_keys(pysqlite_Row *self, PyObject *Py_UNUSED(ignored)) { return pysqlite_row_keys_impl(self); } -/*[clinic end generated code: output=87b91f234633702e input=a9049054013a1b77]*/ +/*[clinic end generated code: output=9d54919dbb4ba5f1 input=a9049054013a1b77]*/ diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c index ceb77bbf8420ff..7f7de8e709228d 100644 --- a/Modules/_sqlite/connection.c +++ b/Modules/_sqlite/connection.c @@ -140,7 +140,6 @@ class IsolationLevel_converter(CConverter): [python start generated code]*/ /*[python end generated code: output=da39a3ee5e6b4b0d input=cbcfe85b253061c2]*/ -// NB: This needs to be in sync with the sqlite3.connect docstring /*[clinic input] _sqlite3.Connection.__init__ as pysqlite_connection_init @@ -471,14 +470,12 @@ blobopen_impl(pysqlite_Connection *self, const char *table, const char *col, /*[clinic input] _sqlite3.Connection.close as pysqlite_connection_close -Close the database connection. - -Any pending transaction is not committed implicitly. +Closes the connection. [clinic start generated code]*/ static PyObject * pysqlite_connection_close_impl(pysqlite_Connection *self) -/*[clinic end generated code: output=a546a0da212c9b97 input=b3ed5b74f6fefc06]*/ +/*[clinic end generated code: output=a546a0da212c9b97 input=3d58064bbffaa3d3]*/ { if (!pysqlite_check_thread(self)) { return NULL; @@ -525,14 +522,12 @@ int pysqlite_check_connection(pysqlite_Connection* con) /*[clinic input] _sqlite3.Connection.commit as pysqlite_connection_commit -Commit any pending transaction to the database. - -If there is no open transaction, this method is a no-op. +Commit the current transaction. [clinic start generated code]*/ static PyObject * pysqlite_connection_commit_impl(pysqlite_Connection *self) -/*[clinic end generated code: output=3da45579e89407f2 input=c8793c97c3446065]*/ +/*[clinic end generated code: output=3da45579e89407f2 input=39c12c04dda276a8]*/ { if (!pysqlite_check_thread(self) || !pysqlite_check_connection(self)) { return NULL; @@ -562,14 +557,12 @@ pysqlite_connection_commit_impl(pysqlite_Connection *self) /*[clinic input] _sqlite3.Connection.rollback as pysqlite_connection_rollback -Roll back to the start of any pending transaction. - -If there is no open transaction, this method is a no-op. +Roll back the current transaction. [clinic start generated code]*/ static PyObject * pysqlite_connection_rollback_impl(pysqlite_Connection *self) -/*[clinic end generated code: output=b66fa0d43e7ef305 input=7f60a2f1076f16b3]*/ +/*[clinic end generated code: output=b66fa0d43e7ef305 input=12d4e8d068942830]*/ { if (!pysqlite_check_thread(self) || !pysqlite_check_connection(self)) { return NULL; @@ -1589,8 +1582,9 @@ static PyObject* pysqlite_connection_get_total_changes(pysqlite_Connection* self { if (!pysqlite_check_connection(self)) { return NULL; + } else { + return Py_BuildValue("i", sqlite3_total_changes(self->db)); } - return PyLong_FromLong(sqlite3_total_changes(self->db)); } static PyObject* pysqlite_connection_get_in_transaction(pysqlite_Connection* self, void* unused) @@ -1847,21 +1841,43 @@ static PyObject * pysqlite_connection_iterdump_impl(pysqlite_Connection *self) /*[clinic end generated code: output=586997aaf9808768 input=1911ca756066da89]*/ { + PyObject* retval = NULL; + PyObject* module = NULL; + PyObject* module_dict; + PyObject* pyfn_iterdump; + if (!pysqlite_check_connection(self)) { - return NULL; + goto finally; + } + + module = PyImport_ImportModule(MODULE_NAME ".dump"); + if (!module) { + goto finally; } - PyObject *iterdump = _PyImport_GetModuleAttrString(MODULE_NAME ".dump", "_iterdump"); - if (!iterdump) { + module_dict = PyModule_GetDict(module); + if (!module_dict) { + goto finally; + } + + PyObject *meth = PyUnicode_InternFromString("_iterdump"); + if (meth == NULL) { + goto finally; + } + pyfn_iterdump = PyDict_GetItemWithError(module_dict, meth); + Py_DECREF(meth); + if (!pyfn_iterdump) { if (!PyErr_Occurred()) { PyErr_SetString(self->OperationalError, "Failed to obtain _iterdump() reference"); } - return NULL; + goto finally; } - PyObject *retval = PyObject_CallOneArg(iterdump, (PyObject *)self); - Py_DECREF(iterdump); + retval = PyObject_CallOneArg(pyfn_iterdump, (PyObject *)self); + +finally: + Py_XDECREF(module); return retval; } @@ -2075,7 +2091,7 @@ serialize_impl(pysqlite_Connection *self, const char *name) name); return NULL; } - PyObject *res = PyBytes_FromStringAndSize(data, (Py_ssize_t)size); + PyObject *res = PyBytes_FromStringAndSize(data, size); if (!(flags & SQLITE_SERIALIZE_NOCOPY)) { sqlite3_free((void *)data); } diff --git a/Modules/_sqlite/cursor.c b/Modules/_sqlite/cursor.c index cbf4718365fee6..c58def5f0362f1 100644 --- a/Modules/_sqlite/cursor.c +++ b/Modules/_sqlite/cursor.c @@ -130,10 +130,14 @@ stmt_reset(pysqlite_Statement *self) { int rc = SQLITE_OK; - if (self->st != NULL) { + if (self->in_use && self->st) { Py_BEGIN_ALLOW_THREADS rc = sqlite3_reset(self->st); Py_END_ALLOW_THREADS + + if (rc == SQLITE_OK) { + self->in_use = 0; + } } return rc; @@ -766,6 +770,12 @@ bind_parameters(pysqlite_state *state, pysqlite_Statement *self, } } +static inline void +stmt_mark_dirty(pysqlite_Statement *self) +{ + self->in_use = 1; +} + PyObject * _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* operation, PyObject* second_argument) { @@ -820,12 +830,17 @@ _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* operation } } - /* reset description */ + if (self->statement != NULL) { + /* There is an active statement */ + stmt_reset(self->statement); + } + + /* reset description and rowcount */ Py_INCREF(Py_None); Py_SETREF(self->description, Py_None); + self->rowcount = 0L; if (self->statement) { - // Reset pending statements on this cursor. (void)stmt_reset(self->statement); } @@ -842,7 +857,7 @@ _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* operation goto error; } - if (sqlite3_stmt_busy(self->statement->st)) { + if (self->statement->in_use) { Py_SETREF(self->statement, pysqlite_statement_create(self->connection, operation)); if (self->statement == NULL) { @@ -850,8 +865,8 @@ _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* operation } } - (void)stmt_reset(self->statement); - self->rowcount = self->statement->is_dml ? 0L : -1L; + stmt_reset(self->statement); + stmt_mark_dirty(self->statement); /* We start a transaction implicitly before a DML statement. SELECT is the only exception. See #9924. */ @@ -864,13 +879,14 @@ _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* operation } } - assert(!sqlite3_stmt_busy(self->statement->st)); while (1) { parameters = PyIter_Next(parameters_iter); if (!parameters) { break; } + stmt_mark_dirty(self->statement); + bind_parameters(state, self->statement, parameters); if (PyErr_Occurred()) { goto error; @@ -886,6 +902,7 @@ _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* operation PyErr_Clear(); } } + (void)stmt_reset(self->statement); _pysqlite_seterror(state, self->connection->db); goto error; } @@ -927,10 +944,18 @@ _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* operation } } - if (rc == SQLITE_DONE) { - if (self->statement->is_dml) { - self->rowcount += (long)sqlite3_changes(self->connection->db); - } + if (self->statement->is_dml) { + self->rowcount += (long)sqlite3_changes(self->connection->db); + } else { + self->rowcount= -1L; + } + + if (rc == SQLITE_DONE && !multiple) { + stmt_reset(self->statement); + Py_CLEAR(self->statement); + } + + if (multiple) { stmt_reset(self->statement); } Py_XDECREF(parameters); @@ -955,17 +980,11 @@ _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* operation self->locked = 0; if (PyErr_Occurred()) { - if (self->statement) { - (void)stmt_reset(self->statement); - Py_CLEAR(self->statement); - } self->rowcount = -1L; return NULL; + } else { + return Py_NewRef((PyObject *)self); } - if (self->statement && !sqlite3_stmt_busy(self->statement->st)) { - Py_CLEAR(self->statement); - } - return Py_NewRef((PyObject *)self); } /*[clinic input] @@ -1092,7 +1111,11 @@ pysqlite_cursor_iternext(pysqlite_Cursor *self) sqlite3_stmt *stmt = self->statement->st; assert(stmt != NULL); - assert(sqlite3_data_count(stmt) != 0); + if (sqlite3_data_count(stmt) == 0) { + (void)stmt_reset(self->statement); + Py_CLEAR(self->statement); + return NULL; + } self->locked = 1; // GH-80254: Prevent recursive use of cursors. PyObject *row = _pysqlite_fetch_one_row(self); @@ -1102,17 +1125,11 @@ pysqlite_cursor_iternext(pysqlite_Cursor *self) } int rc = stmt_step(stmt); if (rc == SQLITE_DONE) { - if (self->statement->is_dml) { - self->rowcount = (long)sqlite3_changes(self->connection->db); - } (void)stmt_reset(self->statement); - Py_CLEAR(self->statement); } else if (rc != SQLITE_ROW) { (void)_pysqlite_seterror(self->connection->state, self->connection->db); - (void)stmt_reset(self->statement); - Py_CLEAR(self->statement); Py_DECREF(row); return NULL; } diff --git a/Modules/_sqlite/microprotocols.c b/Modules/_sqlite/microprotocols.c index 148220d0f91f96..a79f0067b17e8c 100644 --- a/Modules/_sqlite/microprotocols.c +++ b/Modules/_sqlite/microprotocols.c @@ -57,7 +57,7 @@ pysqlite_microprotocols_add(pysqlite_state *state, PyTypeObject *type, assert(type != NULL); assert(proto != NULL); - key = PyTuple_Pack(2, (PyObject *)type, proto); + key = Py_BuildValue("(OO)", (PyObject*)type, proto); if (!key) { return -1; } @@ -81,7 +81,7 @@ pysqlite_microprotocols_adapt(pysqlite_state *state, PyObject *obj, way to get a quotable object to be its instance */ /* look for an adapter in the registry */ - key = PyTuple_Pack(2, (PyObject *)Py_TYPE(obj), proto); + key = Py_BuildValue("(OO)", (PyObject*)Py_TYPE(obj), proto); if (!key) { return NULL; } diff --git a/Modules/_sqlite/module.c b/Modules/_sqlite/module.c index 707aae160ab4f3..9b0e921511c56a 100644 --- a/Modules/_sqlite/module.c +++ b/Modules/_sqlite/module.c @@ -42,44 +42,47 @@ module _sqlite3 [clinic start generated code]*/ /*[clinic end generated code: output=da39a3ee5e6b4b0d input=81e330492d57488e]*/ -// NB: This needs to be in sync with the Connection.__init__ docstring. -PyDoc_STRVAR(module_connect_doc, -"connect($module, /, database, timeout=5.0, detect_types=0,\n" -" isolation_level='', check_same_thread=True,\n" -" factory=ConnectionType, cached_statements=128, uri=False)\n" -"--\n" -"\n" -"Opens a connection to the SQLite database file database.\n" -"\n" -"You can use \":memory:\" to open a database connection to a database that resides\n" -"in RAM instead of on disk."); - -#define PYSQLITE_CONNECT_METHODDEF \ - {"connect", _PyCFunction_CAST(module_connect), METH_FASTCALL|METH_KEYWORDS, module_connect_doc}, +// NOTE: This must equal sqlite3.Connection.__init__ argument spec! +/*[clinic input] +_sqlite3.connect as pysqlite_connect + + database: object + timeout: double = 5.0 + detect_types: int = 0 + isolation_level: object = NULL + check_same_thread: bool(accept={int}) = True + factory: object(c_default='(PyObject*)clinic_state()->ConnectionType') = ConnectionType + cached_statements: int = 128 + uri: bool = False + +Opens a connection to the SQLite database file database. + +You can use ":memory:" to open a database connection to a database that resides +in RAM instead of on disk. +[clinic start generated code]*/ static PyObject * -module_connect(PyObject *module, PyObject *const *args, Py_ssize_t nargsf, - PyObject *kwnames) +pysqlite_connect_impl(PyObject *module, PyObject *database, double timeout, + int detect_types, PyObject *isolation_level, + int check_same_thread, PyObject *factory, + int cached_statements, int uri) +/*[clinic end generated code: output=450ac9078b4868bb input=e16914663ddf93ce]*/ { - pysqlite_state *state = pysqlite_get_state(module); - PyObject *factory = (PyObject *)state->ConnectionType; - - static const int FACTORY_POS = 5; - Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); - if (nargs > FACTORY_POS) { - factory = args[FACTORY_POS]; - } - else if (kwnames != NULL) { - for (Py_ssize_t i = 0; i < PyTuple_GET_SIZE(kwnames); i++) { - PyObject *item = PyTuple_GET_ITEM(kwnames, i); // borrowed ref. - if (PyUnicode_CompareWithASCIIString(item, "factory") == 0) { - factory = args[nargs + i]; - break; - } + if (isolation_level == NULL) { + isolation_level = PyUnicode_FromString(""); + if (isolation_level == NULL) { + return NULL; } } - - return PyObject_Vectorcall(factory, args, nargsf, kwnames); + else { + Py_INCREF(isolation_level); + } + PyObject *res = PyObject_CallFunction(factory, "OdiOiOii", database, + timeout, detect_types, + isolation_level, check_same_thread, + factory, cached_statements, uri); + Py_DECREF(isolation_level); + return res; } /*[clinic input] @@ -105,16 +108,16 @@ pysqlite_complete_statement_impl(PyObject *module, const char *statement) _sqlite3.register_adapter as pysqlite_register_adapter type: object(type='PyTypeObject *') - adapter as caster: object + caster: object / -Register a function to adapt Python objects to SQLite values. +Registers an adapter with sqlite3's adapter registry. [clinic start generated code]*/ static PyObject * pysqlite_register_adapter_impl(PyObject *module, PyTypeObject *type, PyObject *caster) -/*[clinic end generated code: output=a287e8db18e8af23 input=29a5e0f213030242]*/ +/*[clinic end generated code: output=a287e8db18e8af23 input=b4bd87afcadc535d]*/ { int rc; @@ -139,17 +142,17 @@ pysqlite_register_adapter_impl(PyObject *module, PyTypeObject *type, /*[clinic input] _sqlite3.register_converter as pysqlite_register_converter - typename as orig_name: unicode + name as orig_name: unicode converter as callable: object / -Register a function to convert SQLite values to Python objects. +Registers a converter with sqlite3. [clinic start generated code]*/ static PyObject * pysqlite_register_converter_impl(PyObject *module, PyObject *orig_name, PyObject *callable) -/*[clinic end generated code: output=a2f2bfeed7230062 input=159a444971b40378]*/ +/*[clinic end generated code: output=a2f2bfeed7230062 input=90f645419425d6c4]*/ { PyObject* name = NULL; PyObject* retval = NULL; @@ -224,8 +227,14 @@ static int converters_init(PyObject* module) static int load_functools_lru_cache(PyObject *module) { + PyObject *functools = PyImport_ImportModule("functools"); + if (functools == NULL) { + return -1; + } + pysqlite_state *state = pysqlite_get_state(module); - state->lru_cache = _PyImport_GetModuleAttrString("functools", "lru_cache"); + state->lru_cache = PyObject_GetAttrString(functools, "lru_cache"); + Py_DECREF(functools); if (state->lru_cache == NULL) { return -1; } @@ -698,7 +707,7 @@ module_exec(PyObject *module) goto error; } - if (PyModule_AddStringConstant(module, "_deprecated_version", PYSQLITE_VERSION) < 0) { + if (PyModule_AddStringConstant(module, "version", PYSQLITE_VERSION) < 0) { goto error; } diff --git a/Modules/_sqlite/prepare_protocol.c b/Modules/_sqlite/prepare_protocol.c index 44533225665dab..cefb46e390ad6b 100644 --- a/Modules/_sqlite/prepare_protocol.c +++ b/Modules/_sqlite/prepare_protocol.c @@ -46,13 +46,10 @@ pysqlite_prepare_protocol_dealloc(pysqlite_PrepareProtocol *self) Py_DECREF(tp); } -PyDoc_STRVAR(doc, "PEP 246 style object adaption protocol type."); - static PyType_Slot type_slots[] = { {Py_tp_dealloc, pysqlite_prepare_protocol_dealloc}, {Py_tp_init, pysqlite_prepare_protocol_init}, {Py_tp_traverse, pysqlite_prepare_protocol_traverse}, - {Py_tp_doc, (void *)doc}, {0, NULL}, }; diff --git a/Modules/_sqlite/statement.c b/Modules/_sqlite/statement.c index 229bfc3b504165..f9cb70f0ef146c 100644 --- a/Modules/_sqlite/statement.c +++ b/Modules/_sqlite/statement.c @@ -26,7 +26,16 @@ #include "util.h" /* prototypes */ -static const char *lstrip_sql(const char *sql); +static int pysqlite_check_remaining_sql(const char* tail); + +typedef enum { + LINECOMMENT_1, + IN_LINECOMMENT, + COMMENTSTART_1, + IN_COMMENT, + COMMENTEND_1, + NORMAL +} parse_remaining_sql_state; pysqlite_Statement * pysqlite_statement_create(pysqlite_Connection *connection, PyObject *sql) @@ -64,7 +73,7 @@ pysqlite_statement_create(pysqlite_Connection *connection, PyObject *sql) return NULL; } - if (lstrip_sql(tail) != NULL) { + if (pysqlite_check_remaining_sql(tail)) { PyErr_SetString(connection->ProgrammingError, "You can only execute one statement at a time."); goto error; @@ -73,12 +82,20 @@ pysqlite_statement_create(pysqlite_Connection *connection, PyObject *sql) /* Determine if the statement is a DML statement. SELECT is the only exception. See #9924. */ int is_dml = 0; - const char *p = lstrip_sql(sql_cstr); - if (p != NULL) { + for (const char *p = sql_cstr; *p != 0; p++) { + switch (*p) { + case ' ': + case '\r': + case '\n': + case '\t': + continue; + } + is_dml = (PyOS_strnicmp(p, "insert", 6) == 0) || (PyOS_strnicmp(p, "update", 6) == 0) || (PyOS_strnicmp(p, "delete", 6) == 0) || (PyOS_strnicmp(p, "replace", 7) == 0); + break; } pysqlite_Statement *self = PyObject_GC_New(pysqlite_Statement, @@ -88,6 +105,7 @@ pysqlite_statement_create(pysqlite_Connection *connection, PyObject *sql) } self->st = stmt; + self->in_use = 0; self->is_dml = is_dml; PyObject_GC_Track(self); @@ -121,61 +139,73 @@ stmt_traverse(pysqlite_Statement *self, visitproc visit, void *arg) } /* - * Strip leading whitespace and comments from incoming SQL (null terminated C - * string) and return a pointer to the first non-whitespace, non-comment - * character. + * Checks if there is anything left in an SQL string after SQLite compiled it. + * This is used to check if somebody tried to execute more than one SQL command + * with one execute()/executemany() command, which the DB-API and we don't + * allow. * - * This is used to check if somebody tries to execute more than one SQL query - * with one execute()/executemany() command, which the DB-API don't allow. - * - * It is also used to harden DML query detection. + * Returns 1 if there is more left than should be. 0 if ok. */ -static inline const char * -lstrip_sql(const char *sql) +static int pysqlite_check_remaining_sql(const char* tail) { - // This loop is borrowed from the SQLite source code. - for (const char *pos = sql; *pos; pos++) { + const char* pos = tail; + + parse_remaining_sql_state state = NORMAL; + + for (;;) { switch (*pos) { + case 0: + return 0; + case '-': + if (state == NORMAL) { + state = LINECOMMENT_1; + } else if (state == LINECOMMENT_1) { + state = IN_LINECOMMENT; + } + break; case ' ': case '\t': - case '\f': - case '\n': - case '\r': - // Skip whitespace. break; - case '-': - // Skip line comments. - if (pos[1] == '-') { - pos += 2; - while (pos[0] && pos[0] != '\n') { - pos++; - } - if (pos[0] == '\0') { - return NULL; - } - continue; + case '\n': + case 13: + if (state == IN_LINECOMMENT) { + state = NORMAL; } - return pos; + break; case '/': - // Skip C style comments. - if (pos[1] == '*') { - pos += 2; - while (pos[0] && (pos[0] != '*' || pos[1] != '/')) { - pos++; - } - if (pos[0] == '\0') { - return NULL; - } - pos++; - continue; + if (state == NORMAL) { + state = COMMENTSTART_1; + } else if (state == COMMENTEND_1) { + state = NORMAL; + } else if (state == COMMENTSTART_1) { + return 1; + } + break; + case '*': + if (state == NORMAL) { + return 1; + } else if (state == LINECOMMENT_1) { + return 1; + } else if (state == COMMENTSTART_1) { + state = IN_COMMENT; + } else if (state == IN_COMMENT) { + state = COMMENTEND_1; } - return pos; + break; default: - return pos; + if (state == COMMENTEND_1) { + state = IN_COMMENT; + } else if (state == IN_LINECOMMENT) { + } else if (state == IN_COMMENT) { + } else { + return 1; + } } + + pos++; } - return NULL; + return 0; } static PyType_Slot stmt_slots[] = { diff --git a/Modules/_sqlite/statement.h b/Modules/_sqlite/statement.h index 11a6464b1a1c2b..5e61227424bafa 100644 --- a/Modules/_sqlite/statement.h +++ b/Modules/_sqlite/statement.h @@ -33,6 +33,7 @@ typedef struct { PyObject_HEAD sqlite3_stmt* st; + int in_use; int is_dml; } pysqlite_Statement; diff --git a/Modules/_sre/clinic/sre.c.h b/Modules/_sre/clinic/sre.c.h index 711e16a1190d77..e243c756e1f971 100644 --- a/Modules/_sre/clinic/sre.c.h +++ b/Modules/_sre/clinic/sre.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_sre_getcodesize__doc__, "getcodesize($module, /)\n" "--\n" @@ -181,31 +175,8 @@ static PyObject * _sre_SRE_Pattern_match(PatternObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(string), &_Py_ID(pos), &_Py_ID(endpos), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"string", "pos", "endpos", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "match", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "match", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *string; @@ -274,31 +245,8 @@ static PyObject * _sre_SRE_Pattern_fullmatch(PatternObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(string), &_Py_ID(pos), &_Py_ID(endpos), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"string", "pos", "endpos", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "fullmatch", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "fullmatch", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *string; @@ -369,31 +317,8 @@ static PyObject * _sre_SRE_Pattern_search(PatternObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(string), &_Py_ID(pos), &_Py_ID(endpos), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"string", "pos", "endpos", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "search", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "search", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *string; @@ -461,31 +386,8 @@ static PyObject * _sre_SRE_Pattern_findall(PatternObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(string), &_Py_ID(pos), &_Py_ID(endpos), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"string", "pos", "endpos", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "findall", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "findall", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *string; @@ -556,31 +458,8 @@ static PyObject * _sre_SRE_Pattern_finditer(PatternObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(string), &_Py_ID(pos), &_Py_ID(endpos), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"string", "pos", "endpos", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "finditer", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "finditer", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *string; @@ -648,31 +527,8 @@ static PyObject * _sre_SRE_Pattern_scanner(PatternObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(string), &_Py_ID(pos), &_Py_ID(endpos), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"string", "pos", "endpos", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "scanner", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "scanner", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *string; @@ -740,31 +596,8 @@ static PyObject * _sre_SRE_Pattern_split(PatternObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(string), &_Py_ID(maxsplit), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"string", "maxsplit", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "split", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "split", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *string; @@ -814,31 +647,8 @@ static PyObject * _sre_SRE_Pattern_sub(PatternObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(repl), &_Py_ID(string), &_Py_ID(count), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"repl", "string", "count", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "sub", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "sub", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; PyObject *repl; @@ -891,31 +701,8 @@ static PyObject * _sre_SRE_Pattern_subn(PatternObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(repl), &_Py_ID(string), &_Py_ID(count), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"repl", "string", "count", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "subn", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "subn", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; PyObject *repl; @@ -977,7 +764,7 @@ PyDoc_STRVAR(_sre_SRE_Pattern___deepcopy____doc__, PyDoc_STRVAR(_sre_compile__doc__, "compile($module, /, pattern, flags, code, groups, groupindex,\n" -" indexgroup)\n" +" indexgroup, repeat_count)\n" "--\n" "\n"); @@ -987,46 +774,24 @@ PyDoc_STRVAR(_sre_compile__doc__, static PyObject * _sre_compile_impl(PyObject *module, PyObject *pattern, int flags, PyObject *code, Py_ssize_t groups, PyObject *groupindex, - PyObject *indexgroup); + PyObject *indexgroup, Py_ssize_t repeat_count); static PyObject * _sre_compile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 6 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(pattern), &_Py_ID(flags), &_Py_ID(code), &_Py_ID(groups), &_Py_ID(groupindex), &_Py_ID(indexgroup), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - - static const char * const _keywords[] = {"pattern", "flags", "code", "groups", "groupindex", "indexgroup", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "compile", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE - PyObject *argsbuf[6]; + static const char * const _keywords[] = {"pattern", "flags", "code", "groups", "groupindex", "indexgroup", "repeat_count", NULL}; + static _PyArg_Parser _parser = {NULL, _keywords, "compile", 0}; + PyObject *argsbuf[7]; PyObject *pattern; int flags; PyObject *code; Py_ssize_t groups; PyObject *groupindex; PyObject *indexgroup; + Py_ssize_t repeat_count; - args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 6, 6, 0, argsbuf); + args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 7, 7, 0, argsbuf); if (!args) { goto exit; } @@ -1062,7 +827,19 @@ _sre_compile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject goto exit; } indexgroup = args[5]; - return_value = _sre_compile_impl(module, pattern, flags, code, groups, groupindex, indexgroup); + { + Py_ssize_t ival = -1; + PyObject *iobj = _PyNumber_Index(args[6]); + if (iobj != NULL) { + ival = PyLong_AsSsize_t(iobj); + Py_DECREF(iobj); + } + if (ival == -1 && PyErr_Occurred()) { + goto exit; + } + repeat_count = ival; + } + return_value = _sre_compile_impl(module, pattern, flags, code, groups, groupindex, indexgroup, repeat_count); exit: return return_value; @@ -1084,31 +861,8 @@ static PyObject * _sre_SRE_Match_expand(MatchObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(template), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"template", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "expand", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "expand", 0}; PyObject *argsbuf[1]; PyObject *template; @@ -1142,31 +896,8 @@ static PyObject * _sre_SRE_Match_groups(MatchObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(default), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"default", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "groups", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "groups", 0}; PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *default_value = Py_None; @@ -1205,31 +936,8 @@ static PyObject * _sre_SRE_Match_groupdict(MatchObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(default), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"default", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "groupdict", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "groupdict", 0}; PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *default_value = Py_None; @@ -1421,4 +1129,4 @@ _sre_SRE_Scanner_search(ScannerObject *self, PyTypeObject *cls, PyObject *const } return _sre_SRE_Scanner_search_impl(self, cls); } -/*[clinic end generated code: output=14ea86f85c130a7b input=a9049054013a1b77]*/ +/*[clinic end generated code: output=97e7ce058366760b input=a9049054013a1b77]*/ diff --git a/Modules/_sre/sre.c b/Modules/_sre/sre.c index bcb30848d9a592..491734f243849b 100644 --- a/Modules/_sre/sre.c +++ b/Modules/_sre/sre.c @@ -427,6 +427,12 @@ state_init(SRE_STATE* state, PatternObject* pattern, PyObject* string, state->lastmark = -1; state->lastindex = -1; + state->repeats_array = PyMem_New(SRE_REPEAT, pattern->repeat_count); + if (!state->repeats_array) { + PyErr_NoMemory(); + goto err; + } + state->buffer.buf = NULL; ptr = getstring(string, &length, &isbytes, &charsize, &state->buffer); if (!ptr) @@ -476,6 +482,9 @@ state_init(SRE_STATE* state, PatternObject* pattern, PyObject* string, safely casted to `void*`, see bpo-39943 for details. */ PyMem_Free((void*) state->mark); state->mark = NULL; + PyMem_Free(state->repeats_array); + state->repeats_array = NULL; + if (state->buffer.buf) PyBuffer_Release(&state->buffer); return NULL; @@ -491,6 +500,8 @@ state_fini(SRE_STATE* state) /* See above PyMem_Del for why we explicitly cast here. */ PyMem_Free((void*) state->mark); state->mark = NULL; + PyMem_Free(state->repeats_array); + state->repeats_array = NULL; } /* calculate offset from start of string */ @@ -760,12 +771,22 @@ _sre_SRE_Pattern_search_impl(PatternObject *self, PyTypeObject *cls, static PyObject* call(const char* module, const char* function, PyObject* args) { + PyObject* name; + PyObject* mod; PyObject* func; PyObject* result; if (!args) return NULL; - func = _PyImport_GetModuleAttrString(module, function); + name = PyUnicode_FromString(module); + if (!name) + return NULL; + mod = PyImport_Import(name); + Py_DECREF(name); + if (!mod) + return NULL; + func = PyObject_GetAttrString(mod, function); + Py_DECREF(mod); if (!func) return NULL; result = PyObject_CallObject(func, args); @@ -1397,14 +1418,15 @@ _sre.compile groups: Py_ssize_t groupindex: object(subclass_of='&PyDict_Type') indexgroup: object(subclass_of='&PyTuple_Type') + repeat_count: Py_ssize_t [clinic start generated code]*/ static PyObject * _sre_compile_impl(PyObject *module, PyObject *pattern, int flags, PyObject *code, Py_ssize_t groups, PyObject *groupindex, - PyObject *indexgroup) -/*[clinic end generated code: output=ef9c2b3693776404 input=0a68476dbbe5db30]*/ + PyObject *indexgroup, Py_ssize_t repeat_count) +/*[clinic end generated code: output=922af562d51b1657 input=77e39c322501ec2a]*/ { /* "compile" pattern descriptor to pattern object */ @@ -1462,8 +1484,8 @@ _sre_compile_impl(PyObject *module, PyObject *pattern, int flags, self->pattern = pattern; self->flags = flags; - self->groups = groups; + self->repeat_count = repeat_count; if (PyDict_GET_SIZE(groupindex) > 0) { Py_INCREF(groupindex); @@ -1635,7 +1657,7 @@ _validate_charset(SRE_CODE *code, SRE_CODE *end) } static int -_validate_inner(SRE_CODE *code, SRE_CODE *end, Py_ssize_t groups) +_validate_inner(SRE_CODE *code, SRE_CODE *end, PatternObject *self) { /* Some variables are manipulated by the macros above */ SRE_CODE op; @@ -1656,8 +1678,8 @@ _validate_inner(SRE_CODE *code, SRE_CODE *end, Py_ssize_t groups) sre_match() code is robust even if they don't, and the worst you can get is nonsensical match results. */ GET_ARG; - if (arg > 2 * (size_t)groups + 1) { - VTRACE(("arg=%d, groups=%d\n", (int)arg, (int)groups)); + if (arg > 2 * (size_t)self->groups + 1) { + VTRACE(("arg=%d, groups=%d\n", (int)arg, (int)self->groups)); FAIL; } break; @@ -1786,7 +1808,7 @@ _validate_inner(SRE_CODE *code, SRE_CODE *end, Py_ssize_t groups) if (skip == 0) break; /* Stop 2 before the end; we check the JUMP below */ - if (!_validate_inner(code, code+skip-3, groups)) + if (!_validate_inner(code, code+skip-3, self)) FAIL; code += skip-3; /* Check that it ends with a JUMP, and that each JUMP @@ -1815,7 +1837,7 @@ _validate_inner(SRE_CODE *code, SRE_CODE *end, Py_ssize_t groups) FAIL; if (max > SRE_MAXREPEAT) FAIL; - if (!_validate_inner(code, code+skip-4, groups)) + if (!_validate_inner(code, code+skip-4, self)) FAIL; code += skip-4; GET_OP; @@ -1827,7 +1849,7 @@ _validate_inner(SRE_CODE *code, SRE_CODE *end, Py_ssize_t groups) case SRE_OP_REPEAT: case SRE_OP_POSSESSIVE_REPEAT: { - SRE_CODE op1 = op, min, max; + SRE_CODE op1 = op, min, max, repeat_index; GET_SKIP; GET_ARG; min = arg; GET_ARG; max = arg; @@ -1835,9 +1857,17 @@ _validate_inner(SRE_CODE *code, SRE_CODE *end, Py_ssize_t groups) FAIL; if (max > SRE_MAXREPEAT) FAIL; - if (!_validate_inner(code, code+skip-3, groups)) + if (op1 == SRE_OP_REPEAT) { + GET_ARG; repeat_index = arg; + if (repeat_index >= (size_t)self->repeat_count) + FAIL; + skip -= 4; + } else { + skip -= 3; + } + if (!_validate_inner(code, code+skip, self)) FAIL; - code += skip-3; + code += skip; GET_OP; if (op1 == SRE_OP_POSSESSIVE_REPEAT) { if (op != SRE_OP_SUCCESS) @@ -1853,7 +1883,7 @@ _validate_inner(SRE_CODE *code, SRE_CODE *end, Py_ssize_t groups) case SRE_OP_ATOMIC_GROUP: { GET_SKIP; - if (!_validate_inner(code, code+skip-2, groups)) + if (!_validate_inner(code, code+skip-2, self)) FAIL; code += skip-2; GET_OP; @@ -1867,7 +1897,7 @@ _validate_inner(SRE_CODE *code, SRE_CODE *end, Py_ssize_t groups) case SRE_OP_GROUPREF_UNI_IGNORE: case SRE_OP_GROUPREF_LOC_IGNORE: GET_ARG; - if (arg >= (size_t)groups) + if (arg >= (size_t)self->groups) FAIL; break; @@ -1876,7 +1906,7 @@ _validate_inner(SRE_CODE *code, SRE_CODE *end, Py_ssize_t groups) 'group' is either an integer group number or a group name, 'then' and 'else' are sub-regexes, and 'else' is optional. */ GET_ARG; - if (arg >= (size_t)groups) + if (arg >= (size_t)self->groups) FAIL; GET_SKIP_ADJ(1); code--; /* The skip is relative to the first arg! */ @@ -1909,17 +1939,17 @@ _validate_inner(SRE_CODE *code, SRE_CODE *end, Py_ssize_t groups) code[skip-3] == SRE_OP_JUMP) { VTRACE(("both then and else parts present\n")); - if (!_validate_inner(code+1, code+skip-3, groups)) + if (!_validate_inner(code+1, code+skip-3, self)) FAIL; code += skip-2; /* Position after JUMP, at <skipno> */ GET_SKIP; - if (!_validate_inner(code, code+skip-1, groups)) + if (!_validate_inner(code, code+skip-1, self)) FAIL; code += skip-1; } else { VTRACE(("only a then part present\n")); - if (!_validate_inner(code+1, code+skip-1, groups)) + if (!_validate_inner(code+1, code+skip-1, self)) FAIL; code += skip-1; } @@ -1933,7 +1963,7 @@ _validate_inner(SRE_CODE *code, SRE_CODE *end, Py_ssize_t groups) if (arg & 0x80000000) FAIL; /* Width too large */ /* Stop 1 before the end; we check the SUCCESS below */ - if (!_validate_inner(code+1, code+skip-2, groups)) + if (!_validate_inner(code+1, code+skip-2, self)) FAIL; code += skip-2; GET_OP; @@ -1952,18 +1982,19 @@ _validate_inner(SRE_CODE *code, SRE_CODE *end, Py_ssize_t groups) } static int -_validate_outer(SRE_CODE *code, SRE_CODE *end, Py_ssize_t groups) +_validate_outer(SRE_CODE *code, SRE_CODE *end, PatternObject *self) { - if (groups < 0 || (size_t)groups > SRE_MAXGROUPS || + if (self->groups < 0 || (size_t)self->groups > SRE_MAXGROUPS || + self->repeat_count < 0 || code >= end || end[-1] != SRE_OP_SUCCESS) FAIL; - return _validate_inner(code, end-1, groups); + return _validate_inner(code, end-1, self); } static int _validate(PatternObject *self) { - if (!_validate_outer(self->code, self->code+self->codesize, self->groups)) + if (!_validate_outer(self->code, self->code+self->codesize, self)) { PyErr_SetString(PyExc_RuntimeError, "invalid SRE code"); return 0; diff --git a/Modules/_sre/sre.h b/Modules/_sre/sre.h index 52ae3e11b5f750..aff064d343ec4c 100644 --- a/Modules/_sre/sre.h +++ b/Modules/_sre/sre.h @@ -29,6 +29,8 @@ typedef struct { Py_ssize_t groups; /* must be first! */ PyObject* groupindex; /* dict */ PyObject* indexgroup; /* tuple */ + /* the number of REPEATs */ + Py_ssize_t repeat_count; /* compatibility */ PyObject* pattern; /* pattern source (or None) */ int flags; /* flags used when compiling pattern source */ @@ -83,6 +85,8 @@ typedef struct { size_t data_stack_base; /* current repeat context */ SRE_REPEAT *repeat; + /* repeat contexts array */ + SRE_REPEAT *repeats_array; } SRE_STATE; typedef struct { diff --git a/Modules/_sre/sre_constants.h b/Modules/_sre/sre_constants.h index c6335147368626..590d5be7cb4d94 100644 --- a/Modules/_sre/sre_constants.h +++ b/Modules/_sre/sre_constants.h @@ -11,7 +11,7 @@ * See the sre.c file for information on usage and redistribution. */ -#define SRE_MAGIC 20220615 +#define SRE_MAGIC 20220423 #define SRE_OP_FAILURE 0 #define SRE_OP_SUCCESS 1 #define SRE_OP_ANY 2 diff --git a/Modules/_sre/sre_lib.h b/Modules/_sre/sre_lib.h index fb4c18b63d643d..1e5b50170ae76e 100644 --- a/Modules/_sre/sre_lib.h +++ b/Modules/_sre/sre_lib.h @@ -1079,17 +1079,12 @@ SRE(match)(SRE_STATE* state, const SRE_CODE* pattern, int toplevel) by the UNTIL operator (MAX_UNTIL, MIN_UNTIL) */ /* <REPEAT> <skip> <1=min> <2=max> <3=repeat_index> item <UNTIL> tail */ - TRACE(("|%p|%p|REPEAT %d %d\n", pattern, ptr, - pattern[1], pattern[2])); + TRACE(("|%p|%p|REPEAT %d %d %d\n", pattern, ptr, + pattern[1], pattern[2], pattern[3])); + + /* install repeat context */ + ctx->u.rep = &state->repeats_array[pattern[3]]; - /* install new repeat context */ - /* TODO(https://github.com/python/cpython/issues/67877): Fix this - * potential memory leak. */ - ctx->u.rep = (SRE_REPEAT*) PyObject_Malloc(sizeof(*ctx->u.rep)); - if (!ctx->u.rep) { - PyErr_NoMemory(); - RETURN_FAILURE; - } ctx->u.rep->count = -1; ctx->u.rep->pattern = pattern; ctx->u.rep->prev = state->repeat; @@ -1099,7 +1094,6 @@ SRE(match)(SRE_STATE* state, const SRE_CODE* pattern, int toplevel) state->ptr = ptr; DO_JUMP(JUMP_REPEAT, jump_repeat, pattern+pattern[0]); state->repeat = ctx->u.rep->prev; - PyObject_Free(ctx->u.rep); if (ret) { RETURN_ON_ERROR(ret); @@ -1109,7 +1103,8 @@ SRE(match)(SRE_STATE* state, const SRE_CODE* pattern, int toplevel) TARGET(SRE_OP_MAX_UNTIL): /* maximizing repeat */ - /* <REPEAT> <skip> <1=min> <2=max> item <MAX_UNTIL> tail */ + /* <REPEAT> <skip> <1=min> <2=max> + <3=repeat_index> item <MAX_UNTIL> tail */ /* FIXME: we probably need to deal with zero-width matches in here... */ @@ -1129,7 +1124,7 @@ SRE(match)(SRE_STATE* state, const SRE_CODE* pattern, int toplevel) /* not enough matches */ ctx->u.rep->count = ctx->count; DO_JUMP(JUMP_MAX_UNTIL_1, jump_max_until_1, - ctx->u.rep->pattern+3); + ctx->u.rep->pattern+4); if (ret) { RETURN_ON_ERROR(ret); RETURN_SUCCESS; @@ -1151,7 +1146,7 @@ SRE(match)(SRE_STATE* state, const SRE_CODE* pattern, int toplevel) DATA_PUSH(&ctx->u.rep->last_ptr); ctx->u.rep->last_ptr = state->ptr; DO_JUMP(JUMP_MAX_UNTIL_2, jump_max_until_2, - ctx->u.rep->pattern+3); + ctx->u.rep->pattern+4); DATA_POP(&ctx->u.rep->last_ptr); if (ret) { MARK_POP_DISCARD(ctx->lastmark); @@ -1176,7 +1171,8 @@ SRE(match)(SRE_STATE* state, const SRE_CODE* pattern, int toplevel) TARGET(SRE_OP_MIN_UNTIL): /* minimizing repeat */ - /* <REPEAT> <skip> <1=min> <2=max> item <MIN_UNTIL> tail */ + /* <REPEAT> <skip> <1=min> <2=max> + <3=repeat_index> item <MIN_UNTIL> tail */ ctx->u.rep = state->repeat; if (!ctx->u.rep) @@ -1193,7 +1189,7 @@ SRE(match)(SRE_STATE* state, const SRE_CODE* pattern, int toplevel) /* not enough matches */ ctx->u.rep->count = ctx->count; DO_JUMP(JUMP_MIN_UNTIL_1, jump_min_until_1, - ctx->u.rep->pattern+3); + ctx->u.rep->pattern+4); if (ret) { RETURN_ON_ERROR(ret); RETURN_SUCCESS; @@ -1236,7 +1232,7 @@ SRE(match)(SRE_STATE* state, const SRE_CODE* pattern, int toplevel) DATA_PUSH(&ctx->u.rep->last_ptr); ctx->u.rep->last_ptr = state->ptr; DO_JUMP(JUMP_MIN_UNTIL_3,jump_min_until_3, - ctx->u.rep->pattern+3); + ctx->u.rep->pattern+4); DATA_POP(&ctx->u.rep->last_ptr); if (ret) { RETURN_ON_ERROR(ret); diff --git a/Modules/_ssl.c b/Modules/_ssl.c index bf8bd9dea89b6b..e67ab42050b26c 100644 --- a/Modules/_ssl.c +++ b/Modules/_ssl.c @@ -138,6 +138,9 @@ extern const SSL_METHOD *TLSv1_2_method(void); #define INVALID_SOCKET (-1) #endif +/* OpenSSL 1.1 does not have SSL 2.0 */ +#define OPENSSL_NO_SSL2 + /* Default cipher suites */ #ifndef PY_SSL_DEFAULT_CIPHERS #define PY_SSL_DEFAULT_CIPHERS 1 @@ -3515,7 +3518,7 @@ set_min_max_proto_version(PySSLContext *self, PyObject *arg, int what) static PyObject * get_minimum_version(PySSLContext *self, void *c) { - int v = SSL_CTX_get_min_proto_version(self->ctx); + int v = SSL_CTX_ctrl(self->ctx, SSL_CTRL_GET_MIN_PROTO_VERSION, 0, NULL); if (v == 0) { v = PY_PROTO_MINIMUM_SUPPORTED; } @@ -3531,7 +3534,7 @@ set_minimum_version(PySSLContext *self, PyObject *arg, void *c) static PyObject * get_maximum_version(PySSLContext *self, void *c) { - int v = SSL_CTX_get_max_proto_version(self->ctx); + int v = SSL_CTX_ctrl(self->ctx, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL); if (v == 0) { v = PY_PROTO_MAXIMUM_SUPPORTED; } @@ -4302,11 +4305,7 @@ static PyObject * _ssl__SSLContext_set_default_verify_paths_impl(PySSLContext *self) /*[clinic end generated code: output=0bee74e6e09deaaa input=35f3408021463d74]*/ { - int rc; - Py_BEGIN_ALLOW_THREADS - rc = SSL_CTX_set_default_verify_paths(self->ctx); - Py_END_ALLOW_THREADS - if (!rc) { + if (!SSL_CTX_set_default_verify_paths(self->ctx)) { _setSSLError(get_state_ctx(self), NULL, 0, __FILE__, __LINE__); return NULL; } @@ -5068,8 +5067,7 @@ static PyType_Spec PySSLSession_spec = { .name = "_ssl.SSLSession", .basicsize = sizeof(PySSLSession), .flags = (Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | - Py_TPFLAGS_IMMUTABLETYPE | - Py_TPFLAGS_DISALLOW_INSTANTIATION), + Py_TPFLAGS_IMMUTABLETYPE), .slots = PySSLSession_slots, }; @@ -5159,6 +5157,24 @@ _ssl_RAND_bytes_impl(PyObject *module, int n) return PySSL_RAND(module, n, 0); } +/*[clinic input] +_ssl.RAND_pseudo_bytes + n: int + / + +Generate n pseudo-random bytes. + +Return a pair (bytes, is_cryptographic). is_cryptographic is True +if the bytes generated are cryptographically strong. +[clinic start generated code]*/ + +static PyObject * +_ssl_RAND_pseudo_bytes_impl(PyObject *module, int n) +/*[clinic end generated code: output=b1509e937000e52d input=58312bd53f9bbdd0]*/ +{ + PY_SSL_DEPRECATED("ssl.RAND_pseudo_bytes() is deprecated", 1, NULL); + return PySSL_RAND(module, n, 1); +} /*[clinic input] _ssl.RAND_status @@ -5617,6 +5633,7 @@ static PyMethodDef PySSL_methods[] = { _SSL__TEST_DECODE_CERT_METHODDEF _SSL_RAND_ADD_METHODDEF _SSL_RAND_BYTES_METHODDEF + _SSL_RAND_PSEUDO_BYTES_METHODDEF _SSL_RAND_STATUS_METHODDEF _SSL_GET_DEFAULT_VERIFY_PATHS_METHODDEF _SSL_ENUM_CERTIFICATES_METHODDEF @@ -5826,6 +5843,10 @@ sslmodule_init_constants(PyObject *m) #undef ADD_AD_CONSTANT /* protocol versions */ +#ifndef OPENSSL_NO_SSL2 + PyModule_AddIntConstant(m, "PROTOCOL_SSLv2", + PY_SSL_VERSION_SSL2); +#endif #ifndef OPENSSL_NO_SSL3 PyModule_AddIntConstant(m, "PROTOCOL_SSLv3", PY_SSL_VERSION_SSL3); @@ -5935,7 +5956,11 @@ sslmodule_init_constants(PyObject *m) addbool(m, "HAS_NPN", 0); addbool(m, "HAS_ALPN", 1); +#if defined(SSL2_VERSION) && !defined(OPENSSL_NO_SSL2) + addbool(m, "HAS_SSLv2", 1); +#else addbool(m, "HAS_SSLv2", 0); +#endif #if defined(SSL3_VERSION) && !defined(OPENSSL_NO_SSL3) addbool(m, "HAS_SSLv3", 1); diff --git a/Modules/_ssl/clinic/cert.c.h b/Modules/_ssl/clinic/cert.c.h index a052ab2086fd96..53cedabc3f7b47 100644 --- a/Modules/_ssl/clinic/cert.c.h +++ b/Modules/_ssl/clinic/cert.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_ssl_Certificate_public_bytes__doc__, "public_bytes($self, /, format=Encoding.PEM)\n" "--\n" @@ -23,31 +17,8 @@ static PyObject * _ssl_Certificate_public_bytes(PySSLCertificate *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(format), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"format", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "public_bytes", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "public_bytes", 0}; PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int format = PY_SSL_ENCODING_PEM; @@ -86,4 +57,4 @@ _ssl_Certificate_get_info(PySSLCertificate *self, PyObject *Py_UNUSED(ignored)) { return _ssl_Certificate_get_info_impl(self); } -/*[clinic end generated code: output=82efada014f9b7fe input=a9049054013a1b77]*/ +/*[clinic end generated code: output=18885c4d167d5244 input=a9049054013a1b77]*/ diff --git a/Modules/_statisticsmodule.c b/Modules/_statisticsmodule.c index b9d1e4f1616036..78c0676a01f027 100644 --- a/Modules/_statisticsmodule.c +++ b/Modules/_statisticsmodule.c @@ -31,7 +31,7 @@ _statistics__normal_dist_inv_cdf_impl(PyObject *module, double p, double mu, /*[clinic end generated code: output=02fd19ddaab36602 input=24715a74be15296a]*/ { double q, num, den, r, x; - if (p <= 0.0 || p >= 1.0) { + if (p <= 0.0 || p >= 1.0 || sigma <= 0.0) { goto error; } diff --git a/Modules/_struct.c b/Modules/_struct.c index 9d66568a282662..4daf9529d882c5 100644 --- a/Modules/_struct.c +++ b/Modules/_struct.c @@ -1496,26 +1496,10 @@ Struct___init___impl(PyStructObject *self, PyObject *format) return ret; } -static int -s_clear(PyStructObject *s) -{ - Py_CLEAR(s->s_format); - return 0; -} - -static int -s_traverse(PyStructObject *s, visitproc visit, void *arg) -{ - Py_VISIT(Py_TYPE(s)); - Py_VISIT(s->s_format); - return 0; -} - static void s_dealloc(PyStructObject *s) { PyTypeObject *tp = Py_TYPE(s); - PyObject_GC_UnTrack(s); if (s->weakreflist != NULL) PyObject_ClearWeakRefs((PyObject *)s); if (s->s_codes != NULL) { @@ -1741,8 +1725,7 @@ static PyType_Spec unpackiter_type_spec = { "_struct.unpack_iterator", sizeof(unpackiterobject), 0, - (Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | - Py_TPFLAGS_IMMUTABLETYPE), + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, unpackiter_type_slots }; @@ -2095,15 +2078,13 @@ static PyType_Slot PyStructType_slots[] = { {Py_tp_getattro, PyObject_GenericGetAttr}, {Py_tp_setattro, PyObject_GenericSetAttr}, {Py_tp_doc, (void*)s__doc__}, - {Py_tp_traverse, s_traverse}, - {Py_tp_clear, s_clear}, {Py_tp_methods, s_methods}, {Py_tp_members, s_members}, {Py_tp_getset, s_getsetlist}, {Py_tp_init, Struct___init__}, {Py_tp_alloc, PyType_GenericAlloc}, {Py_tp_new, s_new}, - {Py_tp_free, PyObject_GC_Del}, + {Py_tp_free, PyObject_Del}, {0, 0}, }; @@ -2111,8 +2092,7 @@ static PyType_Spec PyStructType_spec = { "_struct.Struct", sizeof(PyStructObject), 0, - (Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | - Py_TPFLAGS_BASETYPE | Py_TPFLAGS_IMMUTABLETYPE), + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, PyStructType_slots }; diff --git a/Modules/_testcapi/README.txt b/Modules/_testcapi/README.txt deleted file mode 100644 index 134b6efc638095..00000000000000 --- a/Modules/_testcapi/README.txt +++ /dev/null @@ -1,3 +0,0 @@ -Tests in this directory are compiled into the _testcapi extension. -The main file for the extension is Modules/_testcapimodule.c, which -calls `_PyTestCapi_Init_*` from these functions. diff --git a/Modules/_testcapi/clinic/vectorcall.c.h b/Modules/_testcapi/clinic/vectorcall.c.h deleted file mode 100644 index 765afeda9b306c..00000000000000 --- a/Modules/_testcapi/clinic/vectorcall.c.h +++ /dev/null @@ -1,113 +0,0 @@ -/*[clinic input] -preserve -[clinic start generated code]*/ - -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - -PyDoc_STRVAR(_testcapi_VectorCallClass_set_vectorcall__doc__, -"set_vectorcall($self, type, /)\n" -"--\n" -"\n" -"Set self\'s vectorcall function for `type` to one that returns \"vectorcall\""); - -#define _TESTCAPI_VECTORCALLCLASS_SET_VECTORCALL_METHODDEF \ - {"set_vectorcall", (PyCFunction)_testcapi_VectorCallClass_set_vectorcall, METH_O, _testcapi_VectorCallClass_set_vectorcall__doc__}, - -static PyObject * -_testcapi_VectorCallClass_set_vectorcall_impl(PyObject *self, - PyTypeObject *type); - -static PyObject * -_testcapi_VectorCallClass_set_vectorcall(PyObject *self, PyObject *arg) -{ - PyObject *return_value = NULL; - PyTypeObject *type; - - if (!PyObject_TypeCheck(arg, &PyType_Type)) { - _PyArg_BadArgument("set_vectorcall", "argument", (&PyType_Type)->tp_name, arg); - goto exit; - } - type = (PyTypeObject *)arg; - return_value = _testcapi_VectorCallClass_set_vectorcall_impl(self, type); - -exit: - return return_value; -} - -PyDoc_STRVAR(_testcapi_make_vectorcall_class__doc__, -"make_vectorcall_class($module, base=<unrepresentable>, /)\n" -"--\n" -"\n" -"Create a class whose instances return \"tpcall\" when called.\n" -"\n" -"When the \"set_vectorcall\" method is called on an instance, a vectorcall\n" -"function that returns \"vectorcall\" will be installed."); - -#define _TESTCAPI_MAKE_VECTORCALL_CLASS_METHODDEF \ - {"make_vectorcall_class", _PyCFunction_CAST(_testcapi_make_vectorcall_class), METH_FASTCALL, _testcapi_make_vectorcall_class__doc__}, - -static PyObject * -_testcapi_make_vectorcall_class_impl(PyObject *module, PyTypeObject *base); - -static PyObject * -_testcapi_make_vectorcall_class(PyObject *module, PyObject *const *args, Py_ssize_t nargs) -{ - PyObject *return_value = NULL; - PyTypeObject *base = NULL; - - if (!_PyArg_CheckPositional("make_vectorcall_class", nargs, 0, 1)) { - goto exit; - } - if (nargs < 1) { - goto skip_optional; - } - if (!PyObject_TypeCheck(args[0], &PyType_Type)) { - _PyArg_BadArgument("make_vectorcall_class", "argument 1", (&PyType_Type)->tp_name, args[0]); - goto exit; - } - base = (PyTypeObject *)args[0]; -skip_optional: - return_value = _testcapi_make_vectorcall_class_impl(module, base); - -exit: - return return_value; -} - -PyDoc_STRVAR(_testcapi_has_vectorcall_flag__doc__, -"has_vectorcall_flag($module, type, /)\n" -"--\n" -"\n" -"Return true iff Py_TPFLAGS_HAVE_VECTORCALL is set on the class."); - -#define _TESTCAPI_HAS_VECTORCALL_FLAG_METHODDEF \ - {"has_vectorcall_flag", (PyCFunction)_testcapi_has_vectorcall_flag, METH_O, _testcapi_has_vectorcall_flag__doc__}, - -static int -_testcapi_has_vectorcall_flag_impl(PyObject *module, PyTypeObject *type); - -static PyObject * -_testcapi_has_vectorcall_flag(PyObject *module, PyObject *arg) -{ - PyObject *return_value = NULL; - PyTypeObject *type; - int _return_value; - - if (!PyObject_TypeCheck(arg, &PyType_Type)) { - _PyArg_BadArgument("has_vectorcall_flag", "argument", (&PyType_Type)->tp_name, arg); - goto exit; - } - type = (PyTypeObject *)arg; - _return_value = _testcapi_has_vectorcall_flag_impl(module, type); - if ((_return_value == -1) && PyErr_Occurred()) { - goto exit; - } - return_value = PyBool_FromLong((long)_return_value); - -exit: - return return_value; -} -/*[clinic end generated code: output=609569aa9942584f input=a9049054013a1b77]*/ diff --git a/Modules/_testcapi/heaptype.c b/Modules/_testcapi/heaptype.c deleted file mode 100644 index bf80fd64d80b35..00000000000000 --- a/Modules/_testcapi/heaptype.c +++ /dev/null @@ -1,1095 +0,0 @@ -#include "parts.h" -#include "structmember.h" // PyMemberDef - -static struct PyModuleDef *_testcapimodule = NULL; // set at initialization - -/* Tests for heap types (PyType_From*) */ - -static PyObject *pytype_fromspec_meta(PyObject* self, PyObject *meta) -{ - if (!PyType_Check(meta)) { - PyErr_SetString( - PyExc_TypeError, - "pytype_fromspec_meta: must be invoked with a type argument!"); - return NULL; - } - - PyType_Slot HeapCTypeViaMetaclass_slots[] = { - {0}, - }; - - PyType_Spec HeapCTypeViaMetaclass_spec = { - "_testcapi.HeapCTypeViaMetaclass", - sizeof(PyObject), - 0, - Py_TPFLAGS_DEFAULT, - HeapCTypeViaMetaclass_slots - }; - - return PyType_FromMetaclass( - (PyTypeObject *) meta, NULL, &HeapCTypeViaMetaclass_spec, NULL); -} - - -static PyType_Slot empty_type_slots[] = { - {0, 0}, -}; - -static PyType_Spec MinimalMetaclass_spec = { - .name = "_testcapi.MinimalMetaclass", - .basicsize = sizeof(PyHeapTypeObject), - .flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, - .slots = empty_type_slots, -}; - -static PyType_Spec MinimalType_spec = { - .name = "_testcapi.MinimalSpecType", - .basicsize = 0, // Updated later - .flags = Py_TPFLAGS_DEFAULT, - .slots = empty_type_slots, -}; - - -static PyObject * -test_from_spec_metatype_inheritance(PyObject *self, PyObject *Py_UNUSED(ignored)) -{ - PyObject *metaclass = NULL; - PyObject *class = NULL; - PyObject *new = NULL; - PyObject *subclasses = NULL; - PyObject *result = NULL; - int r; - - metaclass = PyType_FromSpecWithBases(&MinimalMetaclass_spec, (PyObject*)&PyType_Type); - if (metaclass == NULL) { - goto finally; - } - class = PyObject_CallFunction(metaclass, "s(){}", "TestClass"); - if (class == NULL) { - goto finally; - } - - MinimalType_spec.basicsize = (int)(((PyTypeObject*)class)->tp_basicsize); - new = PyType_FromSpecWithBases(&MinimalType_spec, class); - if (new == NULL) { - goto finally; - } - if (Py_TYPE(new) != (PyTypeObject*)metaclass) { - PyErr_SetString(PyExc_AssertionError, - "Metaclass not set properly!"); - goto finally; - } - - /* Assert that __subclasses__ is updated */ - subclasses = PyObject_CallMethod(class, "__subclasses__", ""); - if (!subclasses) { - goto finally; - } - r = PySequence_Contains(subclasses, new); - if (r < 0) { - goto finally; - } - if (r == 0) { - PyErr_SetString(PyExc_AssertionError, - "subclasses not set properly!"); - goto finally; - } - - result = Py_NewRef(Py_None); - -finally: - Py_XDECREF(metaclass); - Py_XDECREF(class); - Py_XDECREF(new); - Py_XDECREF(subclasses); - return result; -} - - -static PyObject * -test_from_spec_invalid_metatype_inheritance(PyObject *self, PyObject *Py_UNUSED(ignored)) -{ - PyObject *metaclass_a = NULL; - PyObject *metaclass_b = NULL; - PyObject *class_a = NULL; - PyObject *class_b = NULL; - PyObject *bases = NULL; - PyObject *new = NULL; - PyObject *meta_error_string = NULL; - PyObject *exc_type = NULL; - PyObject *exc_value = NULL; - PyObject *exc_traceback = NULL; - PyObject *result = NULL; - - metaclass_a = PyType_FromSpecWithBases(&MinimalMetaclass_spec, (PyObject*)&PyType_Type); - if (metaclass_a == NULL) { - goto finally; - } - metaclass_b = PyType_FromSpecWithBases(&MinimalMetaclass_spec, (PyObject*)&PyType_Type); - if (metaclass_b == NULL) { - goto finally; - } - class_a = PyObject_CallFunction(metaclass_a, "s(){}", "TestClassA"); - if (class_a == NULL) { - goto finally; - } - - class_b = PyObject_CallFunction(metaclass_b, "s(){}", "TestClassB"); - if (class_b == NULL) { - goto finally; - } - - bases = PyTuple_Pack(2, class_a, class_b); - if (bases == NULL) { - goto finally; - } - - /* - * The following should raise a TypeError due to a MetaClass conflict. - */ - new = PyType_FromSpecWithBases(&MinimalType_spec, bases); - if (new != NULL) { - PyErr_SetString(PyExc_AssertionError, - "MetaType conflict not recognized by PyType_FromSpecWithBases"); - goto finally; - } - - // Assert that the correct exception was raised - if (PyErr_ExceptionMatches(PyExc_TypeError)) { - PyErr_Fetch(&exc_type, &exc_value, &exc_traceback); - - meta_error_string = PyUnicode_FromString("metaclass conflict:"); - if (meta_error_string == NULL) { - goto finally; - } - int res = PyUnicode_Contains(exc_value, meta_error_string); - if (res < 0) { - goto finally; - } - if (res == 0) { - PyErr_SetString(PyExc_AssertionError, - "TypeError did not inlclude expected message."); - goto finally; - } - result = Py_NewRef(Py_None); - } -finally: - Py_XDECREF(metaclass_a); - Py_XDECREF(metaclass_b); - Py_XDECREF(bases); - Py_XDECREF(new); - Py_XDECREF(meta_error_string); - Py_XDECREF(exc_type); - Py_XDECREF(exc_value); - Py_XDECREF(exc_traceback); - Py_XDECREF(class_a); - Py_XDECREF(class_b); - return result; -} - - -static PyObject * -simple_str(PyObject *self) { - return PyUnicode_FromString("<test>"); -} - - -static PyObject * -test_type_from_ephemeral_spec(PyObject *self, PyObject *Py_UNUSED(ignored)) -{ - // Test that a heap type can be created from a spec that's later deleted - // (along with all its contents). - // All necessary data must be copied and held by the class - PyType_Spec *spec = NULL; - char *name = NULL; - char *doc = NULL; - PyType_Slot *slots = NULL; - PyObject *class = NULL; - PyObject *instance = NULL; - PyObject *obj = NULL; - PyObject *result = NULL; - - /* create a spec (and all its contents) on the heap */ - - const char NAME[] = "testcapi._Test"; - const char DOC[] = "a test class"; - - spec = PyMem_New(PyType_Spec, 1); - if (spec == NULL) { - PyErr_NoMemory(); - goto finally; - } - name = PyMem_New(char, sizeof(NAME)); - if (name == NULL) { - PyErr_NoMemory(); - goto finally; - } - memcpy(name, NAME, sizeof(NAME)); - - doc = PyMem_New(char, sizeof(DOC)); - if (doc == NULL) { - PyErr_NoMemory(); - goto finally; - } - memcpy(doc, DOC, sizeof(DOC)); - - spec->name = name; - spec->basicsize = sizeof(PyObject); - spec->itemsize = 0; - spec->flags = Py_TPFLAGS_DEFAULT; - slots = PyMem_New(PyType_Slot, 3); - if (slots == NULL) { - PyErr_NoMemory(); - goto finally; - } - slots[0].slot = Py_tp_str; - slots[0].pfunc = simple_str; - slots[1].slot = Py_tp_doc; - slots[1].pfunc = doc; - slots[2].slot = 0; - slots[2].pfunc = NULL; - spec->slots = slots; - - /* create the class */ - - class = PyType_FromSpec(spec); - if (class == NULL) { - goto finally; - } - - /* deallocate the spec (and all contents) */ - - // (Explicitly ovewrite memory before freeing, - // so bugs show themselves even without the debug allocator's help.) - memset(spec, 0xdd, sizeof(PyType_Spec)); - PyMem_Del(spec); - spec = NULL; - memset(name, 0xdd, sizeof(NAME)); - PyMem_Del(name); - name = NULL; - memset(doc, 0xdd, sizeof(DOC)); - PyMem_Del(doc); - doc = NULL; - memset(slots, 0xdd, 3 * sizeof(PyType_Slot)); - PyMem_Del(slots); - slots = NULL; - - /* check that everything works */ - - PyTypeObject *class_tp = (PyTypeObject *)class; - PyHeapTypeObject *class_ht = (PyHeapTypeObject *)class; - assert(strcmp(class_tp->tp_name, "testcapi._Test") == 0); - assert(strcmp(PyUnicode_AsUTF8(class_ht->ht_name), "_Test") == 0); - assert(strcmp(PyUnicode_AsUTF8(class_ht->ht_qualname), "_Test") == 0); - assert(strcmp(class_tp->tp_doc, "a test class") == 0); - - // call and check __str__ - instance = PyObject_CallNoArgs(class); - if (instance == NULL) { - goto finally; - } - obj = PyObject_Str(instance); - if (obj == NULL) { - goto finally; - } - assert(strcmp(PyUnicode_AsUTF8(obj), "<test>") == 0); - Py_CLEAR(obj); - - result = Py_NewRef(Py_None); - finally: - PyMem_Del(spec); - PyMem_Del(name); - PyMem_Del(doc); - PyMem_Del(slots); - Py_XDECREF(class); - Py_XDECREF(instance); - Py_XDECREF(obj); - return result; -} - -PyType_Slot repeated_doc_slots[] = { - {Py_tp_doc, "A class used for tests·"}, - {Py_tp_doc, "A class used for tests"}, - {0, 0}, -}; - -PyType_Spec repeated_doc_slots_spec = { - .name = "RepeatedDocSlotClass", - .basicsize = sizeof(PyObject), - .slots = repeated_doc_slots, -}; - -typedef struct { - PyObject_HEAD - int data; -} HeapCTypeWithDataObject; - - -static struct PyMemberDef members_to_repeat[] = { - {"T_INT", T_INT, offsetof(HeapCTypeWithDataObject, data), 0, NULL}, - {NULL} -}; - -PyType_Slot repeated_members_slots[] = { - {Py_tp_members, members_to_repeat}, - {Py_tp_members, members_to_repeat}, - {0, 0}, -}; - -PyType_Spec repeated_members_slots_spec = { - .name = "RepeatedMembersSlotClass", - .basicsize = sizeof(HeapCTypeWithDataObject), - .slots = repeated_members_slots, -}; - -static PyObject * -create_type_from_repeated_slots(PyObject *self, PyObject *variant_obj) -{ - PyObject *class = NULL; - int variant = PyLong_AsLong(variant_obj); - if (PyErr_Occurred()) { - return NULL; - } - switch (variant) { - case 0: - class = PyType_FromSpec(&repeated_doc_slots_spec); - break; - case 1: - class = PyType_FromSpec(&repeated_members_slots_spec); - break; - default: - PyErr_SetString(PyExc_ValueError, "bad test variant"); - break; - } - return class; -} - - - -static PyObject * -make_immutable_type_with_base(PyObject *self, PyObject *base) -{ - assert(PyType_Check(base)); - PyType_Spec ImmutableSubclass_spec = { - .name = "ImmutableSubclass", - .basicsize = (int)((PyTypeObject*)base)->tp_basicsize, - .slots = empty_type_slots, - .flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_IMMUTABLETYPE, - }; - return PyType_FromSpecWithBases(&ImmutableSubclass_spec, base); -} - - -static PyMethodDef TestMethods[] = { - {"pytype_fromspec_meta", pytype_fromspec_meta, METH_O}, - {"test_type_from_ephemeral_spec", test_type_from_ephemeral_spec, METH_NOARGS}, - {"create_type_from_repeated_slots", - create_type_from_repeated_slots, METH_O}, - {"test_from_spec_metatype_inheritance", test_from_spec_metatype_inheritance, - METH_NOARGS}, - {"test_from_spec_invalid_metatype_inheritance", - test_from_spec_invalid_metatype_inheritance, - METH_NOARGS}, - {"make_immutable_type_with_base", make_immutable_type_with_base, METH_O}, - {NULL}, -}; - - -PyDoc_STRVAR(heapdocctype__doc__, -"HeapDocCType(arg1, arg2)\n" -"--\n" -"\n" -"somedoc"); - -typedef struct { - PyObject_HEAD -} HeapDocCTypeObject; - -static PyType_Slot HeapDocCType_slots[] = { - {Py_tp_doc, (char*)heapdocctype__doc__}, - {0}, -}; - -static PyType_Spec HeapDocCType_spec = { - "_testcapi.HeapDocCType", - sizeof(HeapDocCTypeObject), - 0, - Py_TPFLAGS_DEFAULT, - HeapDocCType_slots -}; - -typedef struct { - PyObject_HEAD -} NullTpDocTypeObject; - -static PyType_Slot NullTpDocType_slots[] = { - {Py_tp_doc, NULL}, - {0, 0}, -}; - -static PyType_Spec NullTpDocType_spec = { - "_testcapi.NullTpDocType", - sizeof(NullTpDocTypeObject), - 0, - Py_TPFLAGS_DEFAULT, - NullTpDocType_slots -}; - - -PyDoc_STRVAR(heapgctype__doc__, -"A heap type with GC, and with overridden dealloc.\n\n" -"The 'value' attribute is set to 10 in __init__."); - -typedef struct { - PyObject_HEAD - int value; -} HeapCTypeObject; - -static struct PyMemberDef heapctype_members[] = { - {"value", T_INT, offsetof(HeapCTypeObject, value)}, - {NULL} /* Sentinel */ -}; - -static int -heapctype_init(PyObject *self, PyObject *args, PyObject *kwargs) -{ - ((HeapCTypeObject *)self)->value = 10; - return 0; -} - -static int -heapgcctype_traverse(HeapCTypeObject *self, visitproc visit, void *arg) -{ - Py_VISIT(Py_TYPE(self)); - return 0; -} - -static void -heapgcctype_dealloc(HeapCTypeObject *self) -{ - PyTypeObject *tp = Py_TYPE(self); - PyObject_GC_UnTrack(self); - PyObject_GC_Del(self); - Py_DECREF(tp); -} - -static PyType_Slot HeapGcCType_slots[] = { - {Py_tp_init, heapctype_init}, - {Py_tp_members, heapctype_members}, - {Py_tp_dealloc, heapgcctype_dealloc}, - {Py_tp_traverse, heapgcctype_traverse}, - {Py_tp_doc, (char*)heapgctype__doc__}, - {0, 0}, -}; - -static PyType_Spec HeapGcCType_spec = { - "_testcapi.HeapGcCType", - sizeof(HeapCTypeObject), - 0, - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC, - HeapGcCType_slots -}; - -PyDoc_STRVAR(heapctype__doc__, -"A heap type without GC, but with overridden dealloc.\n\n" -"The 'value' attribute is set to 10 in __init__."); - -static void -heapctype_dealloc(HeapCTypeObject *self) -{ - PyTypeObject *tp = Py_TYPE(self); - PyObject_Free(self); - Py_DECREF(tp); -} - -static PyType_Slot HeapCType_slots[] = { - {Py_tp_init, heapctype_init}, - {Py_tp_members, heapctype_members}, - {Py_tp_dealloc, heapctype_dealloc}, - {Py_tp_doc, (char*)heapctype__doc__}, - {0, 0}, -}; - -static PyType_Spec HeapCType_spec = { - "_testcapi.HeapCType", - sizeof(HeapCTypeObject), - 0, - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, - HeapCType_slots -}; - -PyDoc_STRVAR(heapctypesubclass__doc__, -"Subclass of HeapCType, without GC.\n\n" -"__init__ sets the 'value' attribute to 10 and 'value2' to 20."); - -typedef struct { - HeapCTypeObject base; - int value2; -} HeapCTypeSubclassObject; - -static int -heapctypesubclass_init(PyObject *self, PyObject *args, PyObject *kwargs) -{ - /* Call __init__ of the superclass */ - if (heapctype_init(self, args, kwargs) < 0) { - return -1; - } - /* Initialize additional element */ - ((HeapCTypeSubclassObject *)self)->value2 = 20; - return 0; -} - -static struct PyMemberDef heapctypesubclass_members[] = { - {"value2", T_INT, offsetof(HeapCTypeSubclassObject, value2)}, - {NULL} /* Sentinel */ -}; - -static PyType_Slot HeapCTypeSubclass_slots[] = { - {Py_tp_init, heapctypesubclass_init}, - {Py_tp_members, heapctypesubclass_members}, - {Py_tp_doc, (char*)heapctypesubclass__doc__}, - {0, 0}, -}; - -static PyType_Spec HeapCTypeSubclass_spec = { - "_testcapi.HeapCTypeSubclass", - sizeof(HeapCTypeSubclassObject), - 0, - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, - HeapCTypeSubclass_slots -}; - -PyDoc_STRVAR(heapctypewithbuffer__doc__, -"Heap type with buffer support.\n\n" -"The buffer is set to [b'1', b'2', b'3', b'4']"); - -typedef struct { - HeapCTypeObject base; - char buffer[4]; -} HeapCTypeWithBufferObject; - -static int -heapctypewithbuffer_getbuffer(HeapCTypeWithBufferObject *self, Py_buffer *view, int flags) -{ - self->buffer[0] = '1'; - self->buffer[1] = '2'; - self->buffer[2] = '3'; - self->buffer[3] = '4'; - return PyBuffer_FillInfo( - view, (PyObject*)self, (void *)self->buffer, 4, 1, flags); -} - -static void -heapctypewithbuffer_releasebuffer(HeapCTypeWithBufferObject *self, Py_buffer *view) -{ - assert(view->obj == (void*) self); -} - -static PyType_Slot HeapCTypeWithBuffer_slots[] = { - {Py_bf_getbuffer, heapctypewithbuffer_getbuffer}, - {Py_bf_releasebuffer, heapctypewithbuffer_releasebuffer}, - {Py_tp_doc, (char*)heapctypewithbuffer__doc__}, - {0, 0}, -}; - -static PyType_Spec HeapCTypeWithBuffer_spec = { - "_testcapi.HeapCTypeWithBuffer", - sizeof(HeapCTypeWithBufferObject), - 0, - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, - HeapCTypeWithBuffer_slots -}; - -PyDoc_STRVAR(heapctypesubclasswithfinalizer__doc__, -"Subclass of HeapCType with a finalizer that reassigns __class__.\n\n" -"__class__ is set to plain HeapCTypeSubclass during finalization.\n" -"__init__ sets the 'value' attribute to 10 and 'value2' to 20."); - -static int -heapctypesubclasswithfinalizer_init(PyObject *self, PyObject *args, PyObject *kwargs) -{ - PyTypeObject *base = (PyTypeObject *)PyType_GetSlot(Py_TYPE(self), Py_tp_base); - initproc base_init = PyType_GetSlot(base, Py_tp_init); - base_init(self, args, kwargs); - return 0; -} - -static void -heapctypesubclasswithfinalizer_finalize(PyObject *self) -{ - PyObject *error_type, *error_value, *error_traceback, *m; - PyObject *oldtype = NULL, *newtype = NULL, *refcnt = NULL; - - /* Save the current exception, if any. */ - PyErr_Fetch(&error_type, &error_value, &error_traceback); - - if (_testcapimodule == NULL) { - goto cleanup_finalize; - } - m = PyState_FindModule(_testcapimodule); - if (m == NULL) { - goto cleanup_finalize; - } - oldtype = PyObject_GetAttrString(m, "HeapCTypeSubclassWithFinalizer"); - newtype = PyObject_GetAttrString(m, "HeapCTypeSubclass"); - if (oldtype == NULL || newtype == NULL) { - goto cleanup_finalize; - } - - if (PyObject_SetAttrString(self, "__class__", newtype) < 0) { - goto cleanup_finalize; - } - refcnt = PyLong_FromSsize_t(Py_REFCNT(oldtype)); - if (refcnt == NULL) { - goto cleanup_finalize; - } - if (PyObject_SetAttrString(oldtype, "refcnt_in_del", refcnt) < 0) { - goto cleanup_finalize; - } - Py_DECREF(refcnt); - refcnt = PyLong_FromSsize_t(Py_REFCNT(newtype)); - if (refcnt == NULL) { - goto cleanup_finalize; - } - if (PyObject_SetAttrString(newtype, "refcnt_in_del", refcnt) < 0) { - goto cleanup_finalize; - } - -cleanup_finalize: - Py_XDECREF(oldtype); - Py_XDECREF(newtype); - Py_XDECREF(refcnt); - - /* Restore the saved exception. */ - PyErr_Restore(error_type, error_value, error_traceback); -} - -static PyType_Slot HeapCTypeSubclassWithFinalizer_slots[] = { - {Py_tp_init, heapctypesubclasswithfinalizer_init}, - {Py_tp_members, heapctypesubclass_members}, - {Py_tp_finalize, heapctypesubclasswithfinalizer_finalize}, - {Py_tp_doc, (char*)heapctypesubclasswithfinalizer__doc__}, - {0, 0}, -}; - -static PyType_Spec HeapCTypeSubclassWithFinalizer_spec = { - "_testcapi.HeapCTypeSubclassWithFinalizer", - sizeof(HeapCTypeSubclassObject), - 0, - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_FINALIZE, - HeapCTypeSubclassWithFinalizer_slots -}; - -static PyType_Slot HeapCTypeMetaclass_slots[] = { - {0}, -}; - -static PyType_Spec HeapCTypeMetaclass_spec = { - "_testcapi.HeapCTypeMetaclass", - sizeof(PyHeapTypeObject), - sizeof(PyMemberDef), - Py_TPFLAGS_DEFAULT, - HeapCTypeMetaclass_slots -}; - -static PyObject * -heap_ctype_metaclass_custom_tp_new(PyTypeObject *tp, PyObject *args, PyObject *kwargs) -{ - return PyType_Type.tp_new(tp, args, kwargs); -} - -static PyType_Slot HeapCTypeMetaclassCustomNew_slots[] = { - { Py_tp_new, heap_ctype_metaclass_custom_tp_new }, - {0}, -}; - -static PyType_Spec HeapCTypeMetaclassCustomNew_spec = { - "_testcapi.HeapCTypeMetaclassCustomNew", - sizeof(PyHeapTypeObject), - sizeof(PyMemberDef), - Py_TPFLAGS_DEFAULT, - HeapCTypeMetaclassCustomNew_slots -}; - - -typedef struct { - PyObject_HEAD - PyObject *dict; -} HeapCTypeWithDictObject; - -static void -heapctypewithdict_dealloc(HeapCTypeWithDictObject* self) -{ - - PyTypeObject *tp = Py_TYPE(self); - Py_XDECREF(self->dict); - PyObject_Free(self); - Py_DECREF(tp); -} - -static PyGetSetDef heapctypewithdict_getsetlist[] = { - {"__dict__", PyObject_GenericGetDict, PyObject_GenericSetDict}, - {NULL} /* Sentinel */ -}; - -static struct PyMemberDef heapctypewithdict_members[] = { - {"dictobj", T_OBJECT, offsetof(HeapCTypeWithDictObject, dict)}, - {"__dictoffset__", T_PYSSIZET, offsetof(HeapCTypeWithDictObject, dict), READONLY}, - {NULL} /* Sentinel */ -}; - -static PyType_Slot HeapCTypeWithDict_slots[] = { - {Py_tp_members, heapctypewithdict_members}, - {Py_tp_getset, heapctypewithdict_getsetlist}, - {Py_tp_dealloc, heapctypewithdict_dealloc}, - {0, 0}, -}; - -static PyType_Spec HeapCTypeWithDict_spec = { - "_testcapi.HeapCTypeWithDict", - sizeof(HeapCTypeWithDictObject), - 0, - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, - HeapCTypeWithDict_slots -}; - -static PyType_Spec HeapCTypeWithDict2_spec = { - "_testcapi.HeapCTypeWithDict2", - sizeof(HeapCTypeWithDictObject), - 0, - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, - HeapCTypeWithDict_slots -}; - -static int -heapmanaged_traverse(HeapCTypeObject *self, visitproc visit, void *arg) -{ - Py_VISIT(Py_TYPE(self)); - return _PyObject_VisitManagedDict((PyObject *)self, visit, arg); -} - -static int -heapmanaged_clear(HeapCTypeObject *self) -{ - _PyObject_ClearManagedDict((PyObject *)self); - return 0; -} - -static void -heapmanaged_dealloc(HeapCTypeObject *self) -{ - PyTypeObject *tp = Py_TYPE(self); - _PyObject_ClearManagedDict((PyObject *)self); - PyObject_GC_UnTrack(self); - PyObject_GC_Del(self); - Py_DECREF(tp); -} - -static PyType_Slot HeapCTypeWithManagedDict_slots[] = { - {Py_tp_traverse, heapmanaged_traverse}, - {Py_tp_getset, heapctypewithdict_getsetlist}, - {Py_tp_clear, heapmanaged_clear}, - {Py_tp_dealloc, heapmanaged_dealloc}, - {0, 0}, -}; - -static PyType_Spec HeapCTypeWithManagedDict_spec = { - "_testcapi.HeapCTypeWithManagedDict", - sizeof(PyObject), - 0, - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_MANAGED_DICT, - HeapCTypeWithManagedDict_slots -}; - -static void -heapctypewithmanagedweakref_dealloc(PyObject* self) -{ - - PyTypeObject *tp = Py_TYPE(self); - PyObject_ClearWeakRefs(self); - PyObject_GC_UnTrack(self); - PyObject_GC_Del(self); - Py_DECREF(tp); -} - -static PyType_Slot HeapCTypeWithManagedWeakref_slots[] = { - {Py_tp_traverse, heapgcctype_traverse}, - {Py_tp_getset, heapctypewithdict_getsetlist}, - {Py_tp_dealloc, heapctypewithmanagedweakref_dealloc}, - {0, 0}, -}; - -static PyType_Spec HeapCTypeWithManagedWeakref_spec = { - "_testcapi.HeapCTypeWithManagedWeakref", - sizeof(PyObject), - 0, - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_MANAGED_WEAKREF, - HeapCTypeWithManagedWeakref_slots -}; - -static struct PyMemberDef heapctypewithnegativedict_members[] = { - {"dictobj", T_OBJECT, offsetof(HeapCTypeWithDictObject, dict)}, - {"__dictoffset__", T_PYSSIZET, -(Py_ssize_t)sizeof(void*), READONLY}, - {NULL} /* Sentinel */ -}; - -static PyType_Slot HeapCTypeWithNegativeDict_slots[] = { - {Py_tp_members, heapctypewithnegativedict_members}, - {Py_tp_getset, heapctypewithdict_getsetlist}, - {Py_tp_dealloc, heapctypewithdict_dealloc}, - {0, 0}, -}; - -static PyType_Spec HeapCTypeWithNegativeDict_spec = { - "_testcapi.HeapCTypeWithNegativeDict", - sizeof(HeapCTypeWithDictObject), - 0, - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, - HeapCTypeWithNegativeDict_slots -}; - -typedef struct { - PyObject_HEAD - PyObject *weakreflist; -} HeapCTypeWithWeakrefObject; - -static struct PyMemberDef heapctypewithweakref_members[] = { - {"weakreflist", T_OBJECT, offsetof(HeapCTypeWithWeakrefObject, weakreflist)}, - {"__weaklistoffset__", T_PYSSIZET, - offsetof(HeapCTypeWithWeakrefObject, weakreflist), READONLY}, - {NULL} /* Sentinel */ -}; - -static void -heapctypewithweakref_dealloc(HeapCTypeWithWeakrefObject* self) -{ - - PyTypeObject *tp = Py_TYPE(self); - if (self->weakreflist != NULL) - PyObject_ClearWeakRefs((PyObject *) self); - Py_XDECREF(self->weakreflist); - PyObject_Free(self); - Py_DECREF(tp); -} - -static PyType_Slot HeapCTypeWithWeakref_slots[] = { - {Py_tp_members, heapctypewithweakref_members}, - {Py_tp_dealloc, heapctypewithweakref_dealloc}, - {0, 0}, -}; - -static PyType_Spec HeapCTypeWithWeakref_spec = { - "_testcapi.HeapCTypeWithWeakref", - sizeof(HeapCTypeWithWeakrefObject), - 0, - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, - HeapCTypeWithWeakref_slots -}; - -static PyType_Spec HeapCTypeWithWeakref2_spec = { - "_testcapi.HeapCTypeWithWeakref2", - sizeof(HeapCTypeWithWeakrefObject), - 0, - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, - HeapCTypeWithWeakref_slots -}; - -PyDoc_STRVAR(heapctypesetattr__doc__, -"A heap type without GC, but with overridden __setattr__.\n\n" -"The 'value' attribute is set to 10 in __init__ and updated via attribute setting."); - -typedef struct { - PyObject_HEAD - long value; -} HeapCTypeSetattrObject; - -static struct PyMemberDef heapctypesetattr_members[] = { - {"pvalue", T_LONG, offsetof(HeapCTypeSetattrObject, value)}, - {NULL} /* Sentinel */ -}; - -static int -heapctypesetattr_init(PyObject *self, PyObject *args, PyObject *kwargs) -{ - ((HeapCTypeSetattrObject *)self)->value = 10; - return 0; -} - -static void -heapctypesetattr_dealloc(HeapCTypeSetattrObject *self) -{ - PyTypeObject *tp = Py_TYPE(self); - PyObject_Free(self); - Py_DECREF(tp); -} - -static int -heapctypesetattr_setattro(HeapCTypeSetattrObject *self, PyObject *attr, PyObject *value) -{ - PyObject *svalue = PyUnicode_FromString("value"); - if (svalue == NULL) - return -1; - int eq = PyObject_RichCompareBool(svalue, attr, Py_EQ); - Py_DECREF(svalue); - if (eq < 0) - return -1; - if (!eq) { - return PyObject_GenericSetAttr((PyObject*) self, attr, value); - } - if (value == NULL) { - self->value = 0; - return 0; - } - PyObject *ivalue = PyNumber_Long(value); - if (ivalue == NULL) - return -1; - long v = PyLong_AsLong(ivalue); - Py_DECREF(ivalue); - if (v == -1 && PyErr_Occurred()) - return -1; - self->value = v; - return 0; -} - -static PyType_Slot HeapCTypeSetattr_slots[] = { - {Py_tp_init, heapctypesetattr_init}, - {Py_tp_members, heapctypesetattr_members}, - {Py_tp_setattro, heapctypesetattr_setattro}, - {Py_tp_dealloc, heapctypesetattr_dealloc}, - {Py_tp_doc, (char*)heapctypesetattr__doc__}, - {0, 0}, -}; - -static PyType_Spec HeapCTypeSetattr_spec = { - "_testcapi.HeapCTypeSetattr", - sizeof(HeapCTypeSetattrObject), - 0, - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, - HeapCTypeSetattr_slots -}; - -int -_PyTestCapi_Init_Heaptype(PyObject *m) { - _testcapimodule = PyModule_GetDef(m); - - if (PyModule_AddFunctions(m, TestMethods) < 0) { - return -1; - } - - PyObject *HeapDocCType = PyType_FromSpec(&HeapDocCType_spec); - if (HeapDocCType == NULL) { - return -1; - } - PyModule_AddObject(m, "HeapDocCType", HeapDocCType); - - /* bpo-41832: Add a new type to test PyType_FromSpec() - now can accept a NULL tp_doc slot. */ - PyObject *NullTpDocType = PyType_FromSpec(&NullTpDocType_spec); - if (NullTpDocType == NULL) { - return -1; - } - PyModule_AddObject(m, "NullTpDocType", NullTpDocType); - - PyObject *HeapGcCType = PyType_FromSpec(&HeapGcCType_spec); - if (HeapGcCType == NULL) { - return -1; - } - PyModule_AddObject(m, "HeapGcCType", HeapGcCType); - - PyObject *HeapCType = PyType_FromSpec(&HeapCType_spec); - if (HeapCType == NULL) { - return -1; - } - PyObject *subclass_bases = PyTuple_Pack(1, HeapCType); - if (subclass_bases == NULL) { - return -1; - } - PyObject *HeapCTypeSubclass = PyType_FromSpecWithBases(&HeapCTypeSubclass_spec, subclass_bases); - if (HeapCTypeSubclass == NULL) { - return -1; - } - Py_DECREF(subclass_bases); - PyModule_AddObject(m, "HeapCTypeSubclass", HeapCTypeSubclass); - - PyObject *HeapCTypeWithDict = PyType_FromSpec(&HeapCTypeWithDict_spec); - if (HeapCTypeWithDict == NULL) { - return -1; - } - PyModule_AddObject(m, "HeapCTypeWithDict", HeapCTypeWithDict); - - PyObject *HeapCTypeWithDict2 = PyType_FromSpec(&HeapCTypeWithDict2_spec); - if (HeapCTypeWithDict2 == NULL) { - return -1; - } - PyModule_AddObject(m, "HeapCTypeWithDict2", HeapCTypeWithDict2); - - PyObject *HeapCTypeWithNegativeDict = PyType_FromSpec(&HeapCTypeWithNegativeDict_spec); - if (HeapCTypeWithNegativeDict == NULL) { - return -1; - } - PyModule_AddObject(m, "HeapCTypeWithNegativeDict", HeapCTypeWithNegativeDict); - - PyObject *HeapCTypeWithManagedDict = PyType_FromSpec(&HeapCTypeWithManagedDict_spec); - if (HeapCTypeWithManagedDict == NULL) { - return -1; - } - PyModule_AddObject(m, "HeapCTypeWithManagedDict", HeapCTypeWithManagedDict); - - PyObject *HeapCTypeWithManagedWeakref = PyType_FromSpec(&HeapCTypeWithManagedWeakref_spec); - if (HeapCTypeWithManagedWeakref == NULL) { - return -1; - } - PyModule_AddObject(m, "HeapCTypeWithManagedWeakref", HeapCTypeWithManagedWeakref); - - PyObject *HeapCTypeWithWeakref = PyType_FromSpec(&HeapCTypeWithWeakref_spec); - if (HeapCTypeWithWeakref == NULL) { - return -1; - } - PyModule_AddObject(m, "HeapCTypeWithWeakref", HeapCTypeWithWeakref); - - PyObject *HeapCTypeWithWeakref2 = PyType_FromSpec(&HeapCTypeWithWeakref2_spec); - if (HeapCTypeWithWeakref2 == NULL) { - return -1; - } - PyModule_AddObject(m, "HeapCTypeWithWeakref2", HeapCTypeWithWeakref2); - - PyObject *HeapCTypeWithBuffer = PyType_FromSpec(&HeapCTypeWithBuffer_spec); - if (HeapCTypeWithBuffer == NULL) { - return -1; - } - PyModule_AddObject(m, "HeapCTypeWithBuffer", HeapCTypeWithBuffer); - - PyObject *HeapCTypeSetattr = PyType_FromSpec(&HeapCTypeSetattr_spec); - if (HeapCTypeSetattr == NULL) { - return -1; - } - PyModule_AddObject(m, "HeapCTypeSetattr", HeapCTypeSetattr); - - PyObject *subclass_with_finalizer_bases = PyTuple_Pack(1, HeapCTypeSubclass); - if (subclass_with_finalizer_bases == NULL) { - return -1; - } - PyObject *HeapCTypeSubclassWithFinalizer = PyType_FromSpecWithBases( - &HeapCTypeSubclassWithFinalizer_spec, subclass_with_finalizer_bases); - if (HeapCTypeSubclassWithFinalizer == NULL) { - return -1; - } - Py_DECREF(subclass_with_finalizer_bases); - PyModule_AddObject(m, "HeapCTypeSubclassWithFinalizer", HeapCTypeSubclassWithFinalizer); - - PyObject *HeapCTypeMetaclass = PyType_FromMetaclass( - &PyType_Type, m, &HeapCTypeMetaclass_spec, (PyObject *) &PyType_Type); - if (HeapCTypeMetaclass == NULL) { - return -1; - } - PyModule_AddObject(m, "HeapCTypeMetaclass", HeapCTypeMetaclass); - - PyObject *HeapCTypeMetaclassCustomNew = PyType_FromMetaclass( - &PyType_Type, m, &HeapCTypeMetaclassCustomNew_spec, (PyObject *) &PyType_Type); - if (HeapCTypeMetaclassCustomNew == NULL) { - return -1; - } - PyModule_AddObject(m, "HeapCTypeMetaclassCustomNew", HeapCTypeMetaclassCustomNew); - - return 0; -} diff --git a/Modules/_testcapi/parts.h b/Modules/_testcapi/parts.h deleted file mode 100644 index 304e5922c0d50b..00000000000000 --- a/Modules/_testcapi/parts.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef Py_TESTCAPI_PARTS_H -#define Py_TESTCAPI_PARTS_H - -#include "pyconfig.h" // for Py_TRACE_REFS - -// Figure out if Limited API is available for this build. If it isn't we won't -// build tests for it. -// Currently, only Py_TRACE_REFS disables Limited API. -#ifdef Py_TRACE_REFS -#undef LIMITED_API_AVAILABLE -#else -#define LIMITED_API_AVAILABLE 1 -#endif - -// Always enable assertions -#undef NDEBUG - -#if !defined(LIMITED_API_AVAILABLE) && defined(Py_LIMITED_API) -// Limited API being unavailable means that with Py_LIMITED_API defined -// we can't even include Python.h. -// Do nothing; the .c file that defined Py_LIMITED_API should also do nothing. - -#else - -#include "Python.h" - -int _PyTestCapi_Init_Vectorcall(PyObject *module); -int _PyTestCapi_Init_Heaptype(PyObject *module); -int _PyTestCapi_Init_Unicode(PyObject *module); - -#ifdef LIMITED_API_AVAILABLE -int _PyTestCapi_Init_VectorcallLimited(PyObject *module); -#endif // LIMITED_API_AVAILABLE - -#endif -#endif // Py_TESTCAPI_PARTS_H diff --git a/Modules/_testcapi/unicode.c b/Modules/_testcapi/unicode.c deleted file mode 100644 index d0f1e2abdc8259..00000000000000 --- a/Modules/_testcapi/unicode.c +++ /dev/null @@ -1,713 +0,0 @@ -#include "parts.h" - -static struct PyModuleDef *_testcapimodule = NULL; // set at initialization - -static PyObject * -codec_incrementalencoder(PyObject *self, PyObject *args) -{ - const char *encoding, *errors = NULL; - if (!PyArg_ParseTuple(args, "s|s:test_incrementalencoder", - &encoding, &errors)) - return NULL; - return PyCodec_IncrementalEncoder(encoding, errors); -} - -static PyObject * -codec_incrementaldecoder(PyObject *self, PyObject *args) -{ - const char *encoding, *errors = NULL; - if (!PyArg_ParseTuple(args, "s|s:test_incrementaldecoder", - &encoding, &errors)) - return NULL; - return PyCodec_IncrementalDecoder(encoding, errors); -} - -static PyObject * -test_unicode_compare_with_ascii(PyObject *self, PyObject *Py_UNUSED(ignored)) { - PyObject *py_s = PyUnicode_FromStringAndSize("str\0", 4); - int result; - if (py_s == NULL) - return NULL; - result = PyUnicode_CompareWithASCIIString(py_s, "str"); - Py_DECREF(py_s); - if (!result) { - PyErr_SetString(PyExc_AssertionError, "Python string ending in NULL " - "should not compare equal to c string."); - return NULL; - } - Py_RETURN_NONE; -} - -static PyObject * -test_widechar(PyObject *self, PyObject *Py_UNUSED(ignored)) -{ -#if defined(SIZEOF_WCHAR_T) && (SIZEOF_WCHAR_T == 4) - const wchar_t wtext[2] = {(wchar_t)0x10ABCDu}; - size_t wtextlen = 1; - const wchar_t invalid[1] = {(wchar_t)0x110000u}; -#else - const wchar_t wtext[3] = {(wchar_t)0xDBEAu, (wchar_t)0xDFCDu}; - size_t wtextlen = 2; -#endif - PyObject *wide, *utf8; - - wide = PyUnicode_FromWideChar(wtext, wtextlen); - if (wide == NULL) - return NULL; - - utf8 = PyUnicode_FromString("\xf4\x8a\xaf\x8d"); - if (utf8 == NULL) { - Py_DECREF(wide); - return NULL; - } - - if (PyUnicode_GET_LENGTH(wide) != PyUnicode_GET_LENGTH(utf8)) { - Py_DECREF(wide); - Py_DECREF(utf8); - PyErr_SetString(PyExc_AssertionError, - "test_widechar: " - "wide string and utf8 string " - "have different length"); - return NULL; - } - if (PyUnicode_Compare(wide, utf8)) { - Py_DECREF(wide); - Py_DECREF(utf8); - if (PyErr_Occurred()) - return NULL; - PyErr_SetString(PyExc_AssertionError, - "test_widechar: " - "wide string and utf8 string " - "are different"); - return NULL; - } - - Py_DECREF(wide); - Py_DECREF(utf8); - -#if defined(SIZEOF_WCHAR_T) && (SIZEOF_WCHAR_T == 4) - wide = PyUnicode_FromWideChar(invalid, 1); - if (wide == NULL) - PyErr_Clear(); - else { - PyErr_SetString(PyExc_AssertionError, - "test_widechar: " - "PyUnicode_FromWideChar(L\"\\U00110000\", 1) didn't fail"); - return NULL; - } -#endif - Py_RETURN_NONE; -} - -static PyObject * -unicode_aswidechar(PyObject *self, PyObject *args) -{ - PyObject *unicode, *result; - Py_ssize_t buflen, size; - wchar_t *buffer; - - if (!PyArg_ParseTuple(args, "Un", &unicode, &buflen)) - return NULL; - buffer = PyMem_New(wchar_t, buflen); - if (buffer == NULL) - return PyErr_NoMemory(); - - size = PyUnicode_AsWideChar(unicode, buffer, buflen); - if (size == -1) { - PyMem_Free(buffer); - return NULL; - } - - if (size < buflen) - buflen = size + 1; - else - buflen = size; - result = PyUnicode_FromWideChar(buffer, buflen); - PyMem_Free(buffer); - if (result == NULL) - return NULL; - - return Py_BuildValue("(Nn)", result, size); -} - -static PyObject * -unicode_aswidecharstring(PyObject *self, PyObject *args) -{ - PyObject *unicode, *result; - Py_ssize_t size; - wchar_t *buffer; - - if (!PyArg_ParseTuple(args, "U", &unicode)) - return NULL; - - buffer = PyUnicode_AsWideCharString(unicode, &size); - if (buffer == NULL) - return NULL; - - result = PyUnicode_FromWideChar(buffer, size + 1); - PyMem_Free(buffer); - if (result == NULL) - return NULL; - return Py_BuildValue("(Nn)", result, size); -} - -static PyObject * -unicode_asucs4(PyObject *self, PyObject *args) -{ - PyObject *unicode, *result; - Py_UCS4 *buffer; - int copy_null; - Py_ssize_t str_len, buf_len; - - if (!PyArg_ParseTuple(args, "Unp:unicode_asucs4", &unicode, &str_len, &copy_null)) { - return NULL; - } - - buf_len = str_len + 1; - buffer = PyMem_NEW(Py_UCS4, buf_len); - if (buffer == NULL) { - return PyErr_NoMemory(); - } - memset(buffer, 0, sizeof(Py_UCS4)*buf_len); - buffer[str_len] = 0xffffU; - - if (!PyUnicode_AsUCS4(unicode, buffer, buf_len, copy_null)) { - PyMem_Free(buffer); - return NULL; - } - - result = PyUnicode_FromKindAndData(PyUnicode_4BYTE_KIND, buffer, buf_len); - PyMem_Free(buffer); - return result; -} - -static PyObject * -unicode_asutf8(PyObject *self, PyObject *args) -{ - PyObject *unicode; - const char *buffer; - - if (!PyArg_ParseTuple(args, "U", &unicode)) { - return NULL; - } - - buffer = PyUnicode_AsUTF8(unicode); - if (buffer == NULL) { - return NULL; - } - - return PyBytes_FromString(buffer); -} - -static PyObject * -unicode_asutf8andsize(PyObject *self, PyObject *args) -{ - PyObject *unicode, *result; - const char *buffer; - Py_ssize_t utf8_len; - - if(!PyArg_ParseTuple(args, "U", &unicode)) { - return NULL; - } - - buffer = PyUnicode_AsUTF8AndSize(unicode, &utf8_len); - if (buffer == NULL) { - return NULL; - } - - result = PyBytes_FromString(buffer); - if (result == NULL) { - return NULL; - } - - return Py_BuildValue("(Nn)", result, utf8_len); -} - -static PyObject * -unicode_findchar(PyObject *self, PyObject *args) -{ - PyObject *str; - int direction; - unsigned int ch; - Py_ssize_t result; - Py_ssize_t start, end; - - if (!PyArg_ParseTuple(args, "UInni:unicode_findchar", &str, &ch, - &start, &end, &direction)) { - return NULL; - } - - result = PyUnicode_FindChar(str, (Py_UCS4)ch, start, end, direction); - if (result == -2) - return NULL; - else - return PyLong_FromSsize_t(result); -} - -static PyObject * -unicode_copycharacters(PyObject *self, PyObject *args) -{ - PyObject *from, *to, *to_copy; - Py_ssize_t from_start, to_start, how_many, copied; - - if (!PyArg_ParseTuple(args, "UnOnn:unicode_copycharacters", &to, &to_start, - &from, &from_start, &how_many)) { - return NULL; - } - - if (!(to_copy = PyUnicode_New(PyUnicode_GET_LENGTH(to), - PyUnicode_MAX_CHAR_VALUE(to)))) { - return NULL; - } - if (PyUnicode_Fill(to_copy, 0, PyUnicode_GET_LENGTH(to_copy), 0U) < 0) { - Py_DECREF(to_copy); - return NULL; - } - - if ((copied = PyUnicode_CopyCharacters(to_copy, to_start, from, - from_start, how_many)) < 0) { - Py_DECREF(to_copy); - return NULL; - } - - return Py_BuildValue("(Nn)", to_copy, copied); -} - -static int -check_raised_systemerror(PyObject *result, char* msg) -{ - if (result) { - // no exception - PyErr_Format(PyExc_AssertionError, - "SystemError not raised: %s", - msg); - return 0; - } - if (PyErr_ExceptionMatches(PyExc_SystemError)) { - // expected exception - PyErr_Clear(); - return 1; - } - // unexpected exception - return 0; -} - -static PyObject * -test_string_from_format(PyObject *self, PyObject *Py_UNUSED(ignored)) -{ - PyObject *result; - PyObject *unicode = PyUnicode_FromString("None"); - -#define CHECK_FORMAT_2(FORMAT, EXPECTED, ARG1, ARG2) \ - result = PyUnicode_FromFormat(FORMAT, ARG1, ARG2); \ - if (EXPECTED == NULL) { \ - if (!check_raised_systemerror(result, FORMAT)) { \ - goto Fail; \ - } \ - } \ - else if (result == NULL) \ - return NULL; \ - else if (!_PyUnicode_EqualToASCIIString(result, EXPECTED)) { \ - PyErr_Format(PyExc_AssertionError, \ - "test_string_from_format: failed at \"%s\" " \ - "expected \"%s\" got \"%s\"", \ - FORMAT, EXPECTED, PyUnicode_AsUTF8(result)); \ - goto Fail; \ - } \ - Py_XDECREF(result) - -#define CHECK_FORMAT_1(FORMAT, EXPECTED, ARG) \ - CHECK_FORMAT_2(FORMAT, EXPECTED, ARG, 0) - -#define CHECK_FORMAT_0(FORMAT, EXPECTED) \ - CHECK_FORMAT_2(FORMAT, EXPECTED, 0, 0) - - // Unrecognized - CHECK_FORMAT_2("%u %? %u", NULL, 1, 2); - - // "%%" (options are rejected) - CHECK_FORMAT_0( "%%", "%"); - CHECK_FORMAT_0( "%0%", NULL); - CHECK_FORMAT_0("%00%", NULL); - CHECK_FORMAT_0( "%2%", NULL); - CHECK_FORMAT_0("%02%", NULL); - CHECK_FORMAT_0("%.0%", NULL); - CHECK_FORMAT_0("%.2%", NULL); - - // "%c" - CHECK_FORMAT_1( "%c", "c", 'c'); - CHECK_FORMAT_1( "%0c", "c", 'c'); - CHECK_FORMAT_1("%00c", "c", 'c'); - CHECK_FORMAT_1( "%2c", "c", 'c'); - CHECK_FORMAT_1("%02c", "c", 'c'); - CHECK_FORMAT_1("%.0c", "c", 'c'); - CHECK_FORMAT_1("%.2c", "c", 'c'); - - // Integers - CHECK_FORMAT_1("%d", "123", (int)123); - CHECK_FORMAT_1("%i", "123", (int)123); - CHECK_FORMAT_1("%u", "123", (unsigned int)123); - CHECK_FORMAT_1("%ld", "123", (long)123); - CHECK_FORMAT_1("%li", "123", (long)123); - CHECK_FORMAT_1("%lu", "123", (unsigned long)123); - CHECK_FORMAT_1("%lld", "123", (long long)123); - CHECK_FORMAT_1("%lli", "123", (long long)123); - CHECK_FORMAT_1("%llu", "123", (unsigned long long)123); - CHECK_FORMAT_1("%zd", "123", (Py_ssize_t)123); - CHECK_FORMAT_1("%zi", "123", (Py_ssize_t)123); - CHECK_FORMAT_1("%zu", "123", (size_t)123); - CHECK_FORMAT_1("%x", "7b", (int)123); - - CHECK_FORMAT_1("%d", "-123", (int)-123); - CHECK_FORMAT_1("%i", "-123", (int)-123); - CHECK_FORMAT_1("%ld", "-123", (long)-123); - CHECK_FORMAT_1("%li", "-123", (long)-123); - CHECK_FORMAT_1("%lld", "-123", (long long)-123); - CHECK_FORMAT_1("%lli", "-123", (long long)-123); - CHECK_FORMAT_1("%zd", "-123", (Py_ssize_t)-123); - CHECK_FORMAT_1("%zi", "-123", (Py_ssize_t)-123); - CHECK_FORMAT_1("%x", "ffffff85", (int)-123); - - // Integers: width < length - CHECK_FORMAT_1("%1d", "123", (int)123); - CHECK_FORMAT_1("%1i", "123", (int)123); - CHECK_FORMAT_1("%1u", "123", (unsigned int)123); - CHECK_FORMAT_1("%1ld", "123", (long)123); - CHECK_FORMAT_1("%1li", "123", (long)123); - CHECK_FORMAT_1("%1lu", "123", (unsigned long)123); - CHECK_FORMAT_1("%1lld", "123", (long long)123); - CHECK_FORMAT_1("%1lli", "123", (long long)123); - CHECK_FORMAT_1("%1llu", "123", (unsigned long long)123); - CHECK_FORMAT_1("%1zd", "123", (Py_ssize_t)123); - CHECK_FORMAT_1("%1zi", "123", (Py_ssize_t)123); - CHECK_FORMAT_1("%1zu", "123", (size_t)123); - CHECK_FORMAT_1("%1x", "7b", (int)123); - - CHECK_FORMAT_1("%1d", "-123", (int)-123); - CHECK_FORMAT_1("%1i", "-123", (int)-123); - CHECK_FORMAT_1("%1ld", "-123", (long)-123); - CHECK_FORMAT_1("%1li", "-123", (long)-123); - CHECK_FORMAT_1("%1lld", "-123", (long long)-123); - CHECK_FORMAT_1("%1lli", "-123", (long long)-123); - CHECK_FORMAT_1("%1zd", "-123", (Py_ssize_t)-123); - CHECK_FORMAT_1("%1zi", "-123", (Py_ssize_t)-123); - CHECK_FORMAT_1("%1x", "ffffff85", (int)-123); - - // Integers: width > length - CHECK_FORMAT_1("%5d", " 123", (int)123); - CHECK_FORMAT_1("%5i", " 123", (int)123); - CHECK_FORMAT_1("%5u", " 123", (unsigned int)123); - CHECK_FORMAT_1("%5ld", " 123", (long)123); - CHECK_FORMAT_1("%5li", " 123", (long)123); - CHECK_FORMAT_1("%5lu", " 123", (unsigned long)123); - CHECK_FORMAT_1("%5lld", " 123", (long long)123); - CHECK_FORMAT_1("%5lli", " 123", (long long)123); - CHECK_FORMAT_1("%5llu", " 123", (unsigned long long)123); - CHECK_FORMAT_1("%5zd", " 123", (Py_ssize_t)123); - CHECK_FORMAT_1("%5zi", " 123", (Py_ssize_t)123); - CHECK_FORMAT_1("%5zu", " 123", (size_t)123); - CHECK_FORMAT_1("%5x", " 7b", (int)123); - - CHECK_FORMAT_1("%5d", " -123", (int)-123); - CHECK_FORMAT_1("%5i", " -123", (int)-123); - CHECK_FORMAT_1("%5ld", " -123", (long)-123); - CHECK_FORMAT_1("%5li", " -123", (long)-123); - CHECK_FORMAT_1("%5lld", " -123", (long long)-123); - CHECK_FORMAT_1("%5lli", " -123", (long long)-123); - CHECK_FORMAT_1("%5zd", " -123", (Py_ssize_t)-123); - CHECK_FORMAT_1("%5zi", " -123", (Py_ssize_t)-123); - CHECK_FORMAT_1("%9x", " ffffff85", (int)-123); - - // Integers: width > length, 0-flag - CHECK_FORMAT_1("%05d", "00123", (int)123); - CHECK_FORMAT_1("%05i", "00123", (int)123); - CHECK_FORMAT_1("%05u", "00123", (unsigned int)123); - CHECK_FORMAT_1("%05ld", "00123", (long)123); - CHECK_FORMAT_1("%05li", "00123", (long)123); - CHECK_FORMAT_1("%05lu", "00123", (unsigned long)123); - CHECK_FORMAT_1("%05lld", "00123", (long long)123); - CHECK_FORMAT_1("%05lli", "00123", (long long)123); - CHECK_FORMAT_1("%05llu", "00123", (unsigned long long)123); - CHECK_FORMAT_1("%05zd", "00123", (Py_ssize_t)123); - CHECK_FORMAT_1("%05zi", "00123", (Py_ssize_t)123); - CHECK_FORMAT_1("%05zu", "00123", (size_t)123); - CHECK_FORMAT_1("%05x", "0007b", (int)123); - - CHECK_FORMAT_1("%05d", "-0123", (int)-123); - CHECK_FORMAT_1("%05i", "-0123", (int)-123); - CHECK_FORMAT_1("%05ld", "-0123", (long)-123); - CHECK_FORMAT_1("%05li", "-0123", (long)-123); - CHECK_FORMAT_1("%05lld", "-0123", (long long)-123); - CHECK_FORMAT_1("%05lli", "-0123", (long long)-123); - CHECK_FORMAT_1("%05zd", "-0123", (Py_ssize_t)-123); - CHECK_FORMAT_1("%05zi", "-0123", (Py_ssize_t)-123); - CHECK_FORMAT_1("%09x", "0ffffff85", (int)-123); - - // Integers: precision < length - CHECK_FORMAT_1("%.1d", "123", (int)123); - CHECK_FORMAT_1("%.1i", "123", (int)123); - CHECK_FORMAT_1("%.1u", "123", (unsigned int)123); - CHECK_FORMAT_1("%.1ld", "123", (long)123); - CHECK_FORMAT_1("%.1li", "123", (long)123); - CHECK_FORMAT_1("%.1lu", "123", (unsigned long)123); - CHECK_FORMAT_1("%.1lld", "123", (long long)123); - CHECK_FORMAT_1("%.1lli", "123", (long long)123); - CHECK_FORMAT_1("%.1llu", "123", (unsigned long long)123); - CHECK_FORMAT_1("%.1zd", "123", (Py_ssize_t)123); - CHECK_FORMAT_1("%.1zi", "123", (Py_ssize_t)123); - CHECK_FORMAT_1("%.1zu", "123", (size_t)123); - CHECK_FORMAT_1("%.1x", "7b", (int)123); - - CHECK_FORMAT_1("%.1d", "-123", (int)-123); - CHECK_FORMAT_1("%.1i", "-123", (int)-123); - CHECK_FORMAT_1("%.1ld", "-123", (long)-123); - CHECK_FORMAT_1("%.1li", "-123", (long)-123); - CHECK_FORMAT_1("%.1lld", "-123", (long long)-123); - CHECK_FORMAT_1("%.1lli", "-123", (long long)-123); - CHECK_FORMAT_1("%.1zd", "-123", (Py_ssize_t)-123); - CHECK_FORMAT_1("%.1zi", "-123", (Py_ssize_t)-123); - CHECK_FORMAT_1("%.1x", "ffffff85", (int)-123); - - // Integers: precision > length - CHECK_FORMAT_1("%.5d", "00123", (int)123); - CHECK_FORMAT_1("%.5i", "00123", (int)123); - CHECK_FORMAT_1("%.5u", "00123", (unsigned int)123); - CHECK_FORMAT_1("%.5ld", "00123", (long)123); - CHECK_FORMAT_1("%.5li", "00123", (long)123); - CHECK_FORMAT_1("%.5lu", "00123", (unsigned long)123); - CHECK_FORMAT_1("%.5lld", "00123", (long long)123); - CHECK_FORMAT_1("%.5lli", "00123", (long long)123); - CHECK_FORMAT_1("%.5llu", "00123", (unsigned long long)123); - CHECK_FORMAT_1("%.5zd", "00123", (Py_ssize_t)123); - CHECK_FORMAT_1("%.5zi", "00123", (Py_ssize_t)123); - CHECK_FORMAT_1("%.5zu", "00123", (size_t)123); - CHECK_FORMAT_1("%.5x", "0007b", (int)123); - - CHECK_FORMAT_1("%.5d", "-00123", (int)-123); - CHECK_FORMAT_1("%.5i", "-00123", (int)-123); - CHECK_FORMAT_1("%.5ld", "-00123", (long)-123); - CHECK_FORMAT_1("%.5li", "-00123", (long)-123); - CHECK_FORMAT_1("%.5lld", "-00123", (long long)-123); - CHECK_FORMAT_1("%.5lli", "-00123", (long long)-123); - CHECK_FORMAT_1("%.5zd", "-00123", (Py_ssize_t)-123); - CHECK_FORMAT_1("%.5zi", "-00123", (Py_ssize_t)-123); - CHECK_FORMAT_1("%.9x", "0ffffff85", (int)-123); - - // Integers: width > precision > length - CHECK_FORMAT_1("%7.5d", " 00123", (int)123); - CHECK_FORMAT_1("%7.5i", " 00123", (int)123); - CHECK_FORMAT_1("%7.5u", " 00123", (unsigned int)123); - CHECK_FORMAT_1("%7.5ld", " 00123", (long)123); - CHECK_FORMAT_1("%7.5li", " 00123", (long)123); - CHECK_FORMAT_1("%7.5lu", " 00123", (unsigned long)123); - CHECK_FORMAT_1("%7.5lld", " 00123", (long long)123); - CHECK_FORMAT_1("%7.5lli", " 00123", (long long)123); - CHECK_FORMAT_1("%7.5llu", " 00123", (unsigned long long)123); - CHECK_FORMAT_1("%7.5zd", " 00123", (Py_ssize_t)123); - CHECK_FORMAT_1("%7.5zi", " 00123", (Py_ssize_t)123); - CHECK_FORMAT_1("%7.5zu", " 00123", (size_t)123); - CHECK_FORMAT_1("%7.5x", " 0007b", (int)123); - - CHECK_FORMAT_1("%7.5d", " -00123", (int)-123); - CHECK_FORMAT_1("%7.5i", " -00123", (int)-123); - CHECK_FORMAT_1("%7.5ld", " -00123", (long)-123); - CHECK_FORMAT_1("%7.5li", " -00123", (long)-123); - CHECK_FORMAT_1("%7.5lld", " -00123", (long long)-123); - CHECK_FORMAT_1("%7.5lli", " -00123", (long long)-123); - CHECK_FORMAT_1("%7.5zd", " -00123", (Py_ssize_t)-123); - CHECK_FORMAT_1("%7.5zi", " -00123", (Py_ssize_t)-123); - CHECK_FORMAT_1("%10.9x", " 0ffffff85", (int)-123); - - // Integers: width > precision > length, 0-flag - CHECK_FORMAT_1("%07.5d", "0000123", (int)123); - CHECK_FORMAT_1("%07.5i", "0000123", (int)123); - CHECK_FORMAT_1("%07.5u", "0000123", (unsigned int)123); - CHECK_FORMAT_1("%07.5ld", "0000123", (long)123); - CHECK_FORMAT_1("%07.5li", "0000123", (long)123); - CHECK_FORMAT_1("%07.5lu", "0000123", (unsigned long)123); - CHECK_FORMAT_1("%07.5lld", "0000123", (long long)123); - CHECK_FORMAT_1("%07.5lli", "0000123", (long long)123); - CHECK_FORMAT_1("%07.5llu", "0000123", (unsigned long long)123); - CHECK_FORMAT_1("%07.5zd", "0000123", (Py_ssize_t)123); - CHECK_FORMAT_1("%07.5zi", "0000123", (Py_ssize_t)123); - CHECK_FORMAT_1("%07.5zu", "0000123", (size_t)123); - CHECK_FORMAT_1("%07.5x", "000007b", (int)123); - - CHECK_FORMAT_1("%07.5d", "-000123", (int)-123); - CHECK_FORMAT_1("%07.5i", "-000123", (int)-123); - CHECK_FORMAT_1("%07.5ld", "-000123", (long)-123); - CHECK_FORMAT_1("%07.5li", "-000123", (long)-123); - CHECK_FORMAT_1("%07.5lld", "-000123", (long long)-123); - CHECK_FORMAT_1("%07.5lli", "-000123", (long long)-123); - CHECK_FORMAT_1("%07.5zd", "-000123", (Py_ssize_t)-123); - CHECK_FORMAT_1("%07.5zi", "-000123", (Py_ssize_t)-123); - CHECK_FORMAT_1("%010.9x", "00ffffff85", (int)-123); - - // Integers: precision > width > length - CHECK_FORMAT_1("%5.7d", "0000123", (int)123); - CHECK_FORMAT_1("%5.7i", "0000123", (int)123); - CHECK_FORMAT_1("%5.7u", "0000123", (unsigned int)123); - CHECK_FORMAT_1("%5.7ld", "0000123", (long)123); - CHECK_FORMAT_1("%5.7li", "0000123", (long)123); - CHECK_FORMAT_1("%5.7lu", "0000123", (unsigned long)123); - CHECK_FORMAT_1("%5.7lld", "0000123", (long long)123); - CHECK_FORMAT_1("%5.7lli", "0000123", (long long)123); - CHECK_FORMAT_1("%5.7llu", "0000123", (unsigned long long)123); - CHECK_FORMAT_1("%5.7zd", "0000123", (Py_ssize_t)123); - CHECK_FORMAT_1("%5.7zi", "0000123", (Py_ssize_t)123); - CHECK_FORMAT_1("%5.7zu", "0000123", (size_t)123); - CHECK_FORMAT_1("%5.7x", "000007b", (int)123); - - CHECK_FORMAT_1("%5.7d", "-0000123", (int)-123); - CHECK_FORMAT_1("%5.7i", "-0000123", (int)-123); - CHECK_FORMAT_1("%5.7ld", "-0000123", (long)-123); - CHECK_FORMAT_1("%5.7li", "-0000123", (long)-123); - CHECK_FORMAT_1("%5.7lld", "-0000123", (long long)-123); - CHECK_FORMAT_1("%5.7lli", "-0000123", (long long)-123); - CHECK_FORMAT_1("%5.7zd", "-0000123", (Py_ssize_t)-123); - CHECK_FORMAT_1("%5.7zi", "-0000123", (Py_ssize_t)-123); - CHECK_FORMAT_1("%9.10x", "00ffffff85", (int)-123); - - // Integers: precision > width > length, 0-flag - CHECK_FORMAT_1("%05.7d", "0000123", (int)123); - CHECK_FORMAT_1("%05.7i", "0000123", (int)123); - CHECK_FORMAT_1("%05.7u", "0000123", (unsigned int)123); - CHECK_FORMAT_1("%05.7ld", "0000123", (long)123); - CHECK_FORMAT_1("%05.7li", "0000123", (long)123); - CHECK_FORMAT_1("%05.7lu", "0000123", (unsigned long)123); - CHECK_FORMAT_1("%05.7lld", "0000123", (long long)123); - CHECK_FORMAT_1("%05.7lli", "0000123", (long long)123); - CHECK_FORMAT_1("%05.7llu", "0000123", (unsigned long long)123); - CHECK_FORMAT_1("%05.7zd", "0000123", (Py_ssize_t)123); - CHECK_FORMAT_1("%05.7zi", "0000123", (Py_ssize_t)123); - CHECK_FORMAT_1("%05.7zu", "0000123", (size_t)123); - CHECK_FORMAT_1("%05.7x", "000007b", (int)123); - - CHECK_FORMAT_1("%05.7d", "-0000123", (int)-123); - CHECK_FORMAT_1("%05.7i", "-0000123", (int)-123); - CHECK_FORMAT_1("%05.7ld", "-0000123", (long)-123); - CHECK_FORMAT_1("%05.7li", "-0000123", (long)-123); - CHECK_FORMAT_1("%05.7lld", "-0000123", (long long)-123); - CHECK_FORMAT_1("%05.7lli", "-0000123", (long long)-123); - CHECK_FORMAT_1("%05.7zd", "-0000123", (Py_ssize_t)-123); - CHECK_FORMAT_1("%05.7zi", "-0000123", (Py_ssize_t)-123); - CHECK_FORMAT_1("%09.10x", "00ffffff85", (int)-123); - - // Integers: precision = 0, arg = 0 (empty string in C) - CHECK_FORMAT_1("%.0d", "0", (int)0); - CHECK_FORMAT_1("%.0i", "0", (int)0); - CHECK_FORMAT_1("%.0u", "0", (unsigned int)0); - CHECK_FORMAT_1("%.0ld", "0", (long)0); - CHECK_FORMAT_1("%.0li", "0", (long)0); - CHECK_FORMAT_1("%.0lu", "0", (unsigned long)0); - CHECK_FORMAT_1("%.0lld", "0", (long long)0); - CHECK_FORMAT_1("%.0lli", "0", (long long)0); - CHECK_FORMAT_1("%.0llu", "0", (unsigned long long)0); - CHECK_FORMAT_1("%.0zd", "0", (Py_ssize_t)0); - CHECK_FORMAT_1("%.0zi", "0", (Py_ssize_t)0); - CHECK_FORMAT_1("%.0zu", "0", (size_t)0); - CHECK_FORMAT_1("%.0x", "0", (int)0); - - // Strings - CHECK_FORMAT_1("%s", "None", "None"); - CHECK_FORMAT_1("%U", "None", unicode); - CHECK_FORMAT_1("%A", "None", Py_None); - CHECK_FORMAT_1("%S", "None", Py_None); - CHECK_FORMAT_1("%R", "None", Py_None); - CHECK_FORMAT_2("%V", "None", unicode, "ignored"); - CHECK_FORMAT_2("%V", "None", NULL, "None"); - - // Strings: width < length - CHECK_FORMAT_1("%1s", "None", "None"); - CHECK_FORMAT_1("%1U", "None", unicode); - CHECK_FORMAT_1("%1A", "None", Py_None); - CHECK_FORMAT_1("%1S", "None", Py_None); - CHECK_FORMAT_1("%1R", "None", Py_None); - CHECK_FORMAT_2("%1V", "None", unicode, "ignored"); - CHECK_FORMAT_2("%1V", "None", NULL, "None"); - - // Strings: width > length - CHECK_FORMAT_1("%5s", " None", "None"); - CHECK_FORMAT_1("%5U", " None", unicode); - CHECK_FORMAT_1("%5A", " None", Py_None); - CHECK_FORMAT_1("%5S", " None", Py_None); - CHECK_FORMAT_1("%5R", " None", Py_None); - CHECK_FORMAT_2("%5V", " None", unicode, "ignored"); - CHECK_FORMAT_2("%5V", " None", NULL, "None"); - - // Strings: precision < length - CHECK_FORMAT_1("%.1s", "N", "None"); - CHECK_FORMAT_1("%.1U", "N", unicode); - CHECK_FORMAT_1("%.1A", "N", Py_None); - CHECK_FORMAT_1("%.1S", "N", Py_None); - CHECK_FORMAT_1("%.1R", "N", Py_None); - CHECK_FORMAT_2("%.1V", "N", unicode, "ignored"); - CHECK_FORMAT_2("%.1V", "N", NULL, "None"); - - // Strings: precision > length - CHECK_FORMAT_1("%.5s", "None", "None"); - CHECK_FORMAT_1("%.5U", "None", unicode); - CHECK_FORMAT_1("%.5A", "None", Py_None); - CHECK_FORMAT_1("%.5S", "None", Py_None); - CHECK_FORMAT_1("%.5R", "None", Py_None); - CHECK_FORMAT_2("%.5V", "None", unicode, "ignored"); - CHECK_FORMAT_2("%.5V", "None", NULL, "None"); - - // Strings: precision < length, width > length - CHECK_FORMAT_1("%5.1s", " N", "None"); - CHECK_FORMAT_1("%5.1U", " N", unicode); - CHECK_FORMAT_1("%5.1A", " N", Py_None); - CHECK_FORMAT_1("%5.1S", " N", Py_None); - CHECK_FORMAT_1("%5.1R", " N", Py_None); - CHECK_FORMAT_2("%5.1V", " N", unicode, "ignored"); - CHECK_FORMAT_2("%5.1V", " N", NULL, "None"); - - // Strings: width < length, precision > length - CHECK_FORMAT_1("%1.5s", "None", "None"); - CHECK_FORMAT_1("%1.5U", "None", unicode); - CHECK_FORMAT_1("%1.5A", "None", Py_None); - CHECK_FORMAT_1("%1.5S", "None", Py_None); - CHECK_FORMAT_1("%1.5R", "None", Py_None); - CHECK_FORMAT_2("%1.5V", "None", unicode, "ignored"); - CHECK_FORMAT_2("%1.5V", "None", NULL, "None"); - - Py_XDECREF(unicode); - Py_RETURN_NONE; - - Fail: - Py_XDECREF(result); - Py_XDECREF(unicode); - return NULL; - -#undef CHECK_FORMAT_2 -#undef CHECK_FORMAT_1 -#undef CHECK_FORMAT_0 -} - -static PyMethodDef TestMethods[] = { - {"codec_incrementalencoder", codec_incrementalencoder, METH_VARARGS}, - {"codec_incrementaldecoder", codec_incrementaldecoder, METH_VARARGS}, - {"test_unicode_compare_with_ascii", - test_unicode_compare_with_ascii, METH_NOARGS}, - {"test_string_from_format", test_string_from_format, METH_NOARGS}, - {"test_widechar", test_widechar, METH_NOARGS}, - {"unicode_aswidechar", unicode_aswidechar, METH_VARARGS}, - {"unicode_aswidecharstring", unicode_aswidecharstring, METH_VARARGS}, - {"unicode_asucs4", unicode_asucs4, METH_VARARGS}, - {"unicode_asutf8", unicode_asutf8, METH_VARARGS}, - {"unicode_asutf8andsize", unicode_asutf8andsize, METH_VARARGS}, - {"unicode_findchar", unicode_findchar, METH_VARARGS}, - {"unicode_copycharacters", unicode_copycharacters, METH_VARARGS}, - {NULL}, -}; - -int -_PyTestCapi_Init_Unicode(PyObject *m) { - _testcapimodule = PyModule_GetDef(m); - - if (PyModule_AddFunctions(m, TestMethods) < 0) { - return -1; - } - - return 0; -} diff --git a/Modules/_testcapi/vectorcall.c b/Modules/_testcapi/vectorcall.c deleted file mode 100644 index e9c863a7570458..00000000000000 --- a/Modules/_testcapi/vectorcall.c +++ /dev/null @@ -1,409 +0,0 @@ -#include "parts.h" -#include "clinic/vectorcall.c.h" - -#include "structmember.h" // PyMemberDef -#include <stddef.h> // offsetof - - -/* Test PEP 590 - Vectorcall */ - -static int -fastcall_args(PyObject *args, PyObject ***stack, Py_ssize_t *nargs) -{ - if (args == Py_None) { - *stack = NULL; - *nargs = 0; - } - else if (PyTuple_Check(args)) { - *stack = ((PyTupleObject *)args)->ob_item; - *nargs = PyTuple_GET_SIZE(args); - } - else { - PyErr_SetString(PyExc_TypeError, "args must be None or a tuple"); - return -1; - } - return 0; -} - - -static PyObject * -test_pyobject_fastcall(PyObject *self, PyObject *args) -{ - PyObject *func, *func_args; - PyObject **stack; - Py_ssize_t nargs; - - if (!PyArg_ParseTuple(args, "OO", &func, &func_args)) { - return NULL; - } - - if (fastcall_args(func_args, &stack, &nargs) < 0) { - return NULL; - } - return _PyObject_FastCall(func, stack, nargs); -} - -static PyObject * -test_pyobject_fastcalldict(PyObject *self, PyObject *args) -{ - PyObject *func, *func_args, *kwargs; - PyObject **stack; - Py_ssize_t nargs; - - if (!PyArg_ParseTuple(args, "OOO", &func, &func_args, &kwargs)) { - return NULL; - } - - if (fastcall_args(func_args, &stack, &nargs) < 0) { - return NULL; - } - - if (kwargs == Py_None) { - kwargs = NULL; - } - else if (!PyDict_Check(kwargs)) { - PyErr_SetString(PyExc_TypeError, "kwnames must be None or a dict"); - return NULL; - } - - return PyObject_VectorcallDict(func, stack, nargs, kwargs); -} - -static PyObject * -test_pyobject_vectorcall(PyObject *self, PyObject *args) -{ - PyObject *func, *func_args, *kwnames = NULL; - PyObject **stack; - Py_ssize_t nargs, nkw; - - if (!PyArg_ParseTuple(args, "OOO", &func, &func_args, &kwnames)) { - return NULL; - } - - if (fastcall_args(func_args, &stack, &nargs) < 0) { - return NULL; - } - - if (kwnames == Py_None) { - kwnames = NULL; - } - else if (PyTuple_Check(kwnames)) { - nkw = PyTuple_GET_SIZE(kwnames); - if (nargs < nkw) { - PyErr_SetString(PyExc_ValueError, "kwnames longer than args"); - return NULL; - } - nargs -= nkw; - } - else { - PyErr_SetString(PyExc_TypeError, "kwnames must be None or a tuple"); - return NULL; - } - return PyObject_Vectorcall(func, stack, nargs, kwnames); -} - -static PyObject * -override_vectorcall(PyObject *callable, PyObject *const *args, size_t nargsf, - PyObject *kwnames) -{ - return PyUnicode_FromString("overridden"); -} - -static PyObject * -function_setvectorcall(PyObject *self, PyObject *func) -{ - if (!PyFunction_Check(func)) { - PyErr_SetString(PyExc_TypeError, "'func' must be a function"); - return NULL; - } - PyFunction_SetVectorcall((PyFunctionObject *)func, (vectorcallfunc)override_vectorcall); - Py_RETURN_NONE; -} - -static PyObject * -test_pyvectorcall_call(PyObject *self, PyObject *args) -{ - PyObject *func; - PyObject *argstuple; - PyObject *kwargs = NULL; - - if (!PyArg_ParseTuple(args, "OO|O", &func, &argstuple, &kwargs)) { - return NULL; - } - - if (!PyTuple_Check(argstuple)) { - PyErr_SetString(PyExc_TypeError, "args must be a tuple"); - return NULL; - } - if (kwargs != NULL && !PyDict_Check(kwargs)) { - PyErr_SetString(PyExc_TypeError, "kwargs must be a dict"); - return NULL; - } - - return PyVectorcall_Call(func, argstuple, kwargs); -} - -PyObject * -VectorCallClass_tpcall(PyObject *self, PyObject *args, PyObject *kwargs) { - return PyUnicode_FromString("tp_call"); -} - -PyObject * -VectorCallClass_vectorcall(PyObject *callable, - PyObject *const *args, - size_t nargsf, - PyObject *kwnames) { - return PyUnicode_FromString("vectorcall"); -} - -/*[clinic input] -module _testcapi -class _testcapi.VectorCallClass "PyObject *" "&PyType_Type" -[clinic start generated code]*/ -/*[clinic end generated code: output=da39a3ee5e6b4b0d input=8423a8e919f2f0df]*/ - -/*[clinic input] -_testcapi.VectorCallClass.set_vectorcall - - type: object(subclass_of="&PyType_Type", type="PyTypeObject *") - / - -Set self's vectorcall function for `type` to one that returns "vectorcall" -[clinic start generated code]*/ - -static PyObject * -_testcapi_VectorCallClass_set_vectorcall_impl(PyObject *self, - PyTypeObject *type) -/*[clinic end generated code: output=b37f0466f15da903 input=840de66182c7d71a]*/ -{ - if (!PyObject_TypeCheck(self, type)) { - return PyErr_Format( - PyExc_TypeError, - "expected %s instance", - PyType_GetName(type)); - } - if (!type->tp_vectorcall_offset) { - return PyErr_Format( - PyExc_TypeError, - "type %s has no vectorcall offset", - PyType_GetName(type)); - } - *(vectorcallfunc*)((char*)self + type->tp_vectorcall_offset) = ( - VectorCallClass_vectorcall); - Py_RETURN_NONE; -} - -PyMethodDef VectorCallClass_methods[] = { - _TESTCAPI_VECTORCALLCLASS_SET_VECTORCALL_METHODDEF - {NULL, NULL} -}; - -PyMemberDef VectorCallClass_members[] = { - {"__vectorcalloffset__", T_PYSSIZET, 0/* set later */, READONLY}, - {NULL} -}; - -PyType_Slot VectorCallClass_slots[] = { - {Py_tp_call, VectorCallClass_tpcall}, - {Py_tp_members, VectorCallClass_members}, - {Py_tp_methods, VectorCallClass_methods}, - {0}, -}; - -/*[clinic input] -_testcapi.make_vectorcall_class - - base: object(subclass_of="&PyType_Type", type="PyTypeObject *") = NULL - / - -Create a class whose instances return "tpcall" when called. - -When the "set_vectorcall" method is called on an instance, a vectorcall -function that returns "vectorcall" will be installed. -[clinic start generated code]*/ - -static PyObject * -_testcapi_make_vectorcall_class_impl(PyObject *module, PyTypeObject *base) -/*[clinic end generated code: output=16dcfc3062ddf968 input=f72e01ccf52de2b4]*/ -{ - if (!base) { - base = (PyTypeObject *)&PyBaseObject_Type; - } - VectorCallClass_members[0].offset = base->tp_basicsize; - PyType_Spec spec = { - .name = "_testcapi.VectorcallClass", - .basicsize = (int)(base->tp_basicsize + sizeof(vectorcallfunc)), - .flags = Py_TPFLAGS_DEFAULT - | Py_TPFLAGS_HAVE_VECTORCALL - | Py_TPFLAGS_BASETYPE, - .slots = VectorCallClass_slots, - }; - - return PyType_FromSpecWithBases(&spec, (PyObject *)base); -} - -/*[clinic input] -_testcapi.has_vectorcall_flag -> bool - - type: object(subclass_of="&PyType_Type", type="PyTypeObject *") - / - -Return true iff Py_TPFLAGS_HAVE_VECTORCALL is set on the class. -[clinic start generated code]*/ - -static int -_testcapi_has_vectorcall_flag_impl(PyObject *module, PyTypeObject *type) -/*[clinic end generated code: output=3ae8d1374388c671 input=8eee492ac548749e]*/ -{ - return PyType_HasFeature(type, Py_TPFLAGS_HAVE_VECTORCALL); -} - -static PyMethodDef TestMethods[] = { - {"pyobject_fastcall", test_pyobject_fastcall, METH_VARARGS}, - {"pyobject_fastcalldict", test_pyobject_fastcalldict, METH_VARARGS}, - {"pyobject_vectorcall", test_pyobject_vectorcall, METH_VARARGS}, - {"function_setvectorcall", function_setvectorcall, METH_O}, - {"pyvectorcall_call", test_pyvectorcall_call, METH_VARARGS}, - _TESTCAPI_MAKE_VECTORCALL_CLASS_METHODDEF - _TESTCAPI_HAS_VECTORCALL_FLAG_METHODDEF - {NULL}, -}; - - -typedef struct { - PyObject_HEAD - vectorcallfunc vectorcall; -} MethodDescriptorObject; - -static PyObject * -MethodDescriptor_vectorcall(PyObject *callable, PyObject *const *args, - size_t nargsf, PyObject *kwnames) -{ - /* True if using the vectorcall function in MethodDescriptorObject - * but False for MethodDescriptor2Object */ - MethodDescriptorObject *md = (MethodDescriptorObject *)callable; - return PyBool_FromLong(md->vectorcall != NULL); -} - -static PyObject * -MethodDescriptor_new(PyTypeObject* type, PyObject* args, PyObject *kw) -{ - MethodDescriptorObject *op = (MethodDescriptorObject *)type->tp_alloc(type, 0); - op->vectorcall = MethodDescriptor_vectorcall; - return (PyObject *)op; -} - -static PyObject * -func_descr_get(PyObject *func, PyObject *obj, PyObject *type) -{ - if (obj == Py_None || obj == NULL) { - Py_INCREF(func); - return func; - } - return PyMethod_New(func, obj); -} - -static PyObject * -nop_descr_get(PyObject *func, PyObject *obj, PyObject *type) -{ - Py_INCREF(func); - return func; -} - -static PyObject * -call_return_args(PyObject *self, PyObject *args, PyObject *kwargs) -{ - Py_INCREF(args); - return args; -} - -static PyTypeObject MethodDescriptorBase_Type = { - PyVarObject_HEAD_INIT(NULL, 0) - "MethodDescriptorBase", - sizeof(MethodDescriptorObject), - .tp_new = MethodDescriptor_new, - .tp_call = PyVectorcall_Call, - .tp_vectorcall_offset = offsetof(MethodDescriptorObject, vectorcall), - .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | - Py_TPFLAGS_METHOD_DESCRIPTOR | Py_TPFLAGS_HAVE_VECTORCALL, - .tp_descr_get = func_descr_get, -}; - -static PyTypeObject MethodDescriptorDerived_Type = { - PyVarObject_HEAD_INIT(NULL, 0) - "MethodDescriptorDerived", - .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, -}; - -static PyTypeObject MethodDescriptorNopGet_Type = { - PyVarObject_HEAD_INIT(NULL, 0) - "MethodDescriptorNopGet", - .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, - .tp_call = call_return_args, - .tp_descr_get = nop_descr_get, -}; - -typedef struct { - MethodDescriptorObject base; - vectorcallfunc vectorcall; -} MethodDescriptor2Object; - -static PyObject * -MethodDescriptor2_new(PyTypeObject* type, PyObject* args, PyObject *kw) -{ - MethodDescriptor2Object *op = PyObject_New(MethodDescriptor2Object, type); - op->base.vectorcall = NULL; - op->vectorcall = MethodDescriptor_vectorcall; - return (PyObject *)op; -} - -static PyTypeObject MethodDescriptor2_Type = { - PyVarObject_HEAD_INIT(NULL, 0) - "MethodDescriptor2", - sizeof(MethodDescriptor2Object), - .tp_new = MethodDescriptor2_new, - .tp_call = PyVectorcall_Call, - .tp_vectorcall_offset = offsetof(MethodDescriptor2Object, vectorcall), - .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_VECTORCALL, -}; - - -int -_PyTestCapi_Init_Vectorcall(PyObject *m) { - if (PyModule_AddFunctions(m, TestMethods) < 0) { - return -1; - } - - if (PyType_Ready(&MethodDescriptorBase_Type) < 0) { - return -1; - } - if (PyModule_AddType(m, &MethodDescriptorBase_Type) < 0) { - return -1; - } - - MethodDescriptorDerived_Type.tp_base = &MethodDescriptorBase_Type; - if (PyType_Ready(&MethodDescriptorDerived_Type) < 0) { - return -1; - } - if (PyModule_AddType(m, &MethodDescriptorDerived_Type) < 0) { - return -1; - } - - MethodDescriptorNopGet_Type.tp_base = &MethodDescriptorBase_Type; - if (PyType_Ready(&MethodDescriptorNopGet_Type) < 0) { - return -1; - } - if (PyModule_AddType(m, &MethodDescriptorNopGet_Type) < 0) { - return -1; - } - - MethodDescriptor2_Type.tp_base = &MethodDescriptorBase_Type; - if (PyType_Ready(&MethodDescriptor2_Type) < 0) { - return -1; - } - if (PyModule_AddType(m, &MethodDescriptor2_Type) < 0) { - return -1; - } - - return 0; -} diff --git a/Modules/_testcapi/vectorcall_limited.c b/Modules/_testcapi/vectorcall_limited.c deleted file mode 100644 index ee57af84b1bb5f..00000000000000 --- a/Modules/_testcapi/vectorcall_limited.c +++ /dev/null @@ -1,82 +0,0 @@ -#define Py_LIMITED_API 0x030c0000 // 3.12 -#include "parts.h" - -#ifdef LIMITED_API_AVAILABLE - -#include "structmember.h" // PyMemberDef - -/* Test Vectorcall in the limited API */ - -static PyObject * -LimitedVectorCallClass_tpcall(PyObject *self, PyObject *args, PyObject *kwargs) { - return PyUnicode_FromString("tp_call called"); -} - -static PyObject * -LimitedVectorCallClass_vectorcall(PyObject *callable, - PyObject *const *args, - size_t nargsf, - PyObject *kwnames) { - return PyUnicode_FromString("vectorcall called"); -} - -static PyObject * -LimitedVectorCallClass_new(PyTypeObject *tp, PyTypeObject *a, PyTypeObject *kw) -{ - PyObject *self = ((allocfunc)PyType_GetSlot(tp, Py_tp_alloc))(tp, 0); - if (!self) { - return NULL; - } - *(vectorcallfunc*)((char*)self + sizeof(PyObject)) = ( - LimitedVectorCallClass_vectorcall); - return self; -} - -static PyMemberDef LimitedVectorCallClass_members[] = { - {"__vectorcalloffset__", T_PYSSIZET, sizeof(PyObject), READONLY}, - {NULL} -}; - -static PyType_Slot LimitedVectorallClass_slots[] = { - {Py_tp_new, LimitedVectorCallClass_new}, - {Py_tp_call, LimitedVectorCallClass_tpcall}, - {Py_tp_members, LimitedVectorCallClass_members}, - {0}, -}; - -static PyType_Spec LimitedVectorCallClass_spec = { - .name = "_testcapi.LimitedVectorCallClass", - .basicsize = (int)(sizeof(PyObject) + sizeof(vectorcallfunc)), - .flags = Py_TPFLAGS_DEFAULT - | Py_TPFLAGS_HAVE_VECTORCALL - | Py_TPFLAGS_BASETYPE, - .slots = LimitedVectorallClass_slots, -}; - -static PyMethodDef TestMethods[] = { - /* Add module methods here. - * (Empty list left here as template/example, since using - * PyModule_AddFunctions isn't very common.) - */ - {NULL}, -}; - -int -_PyTestCapi_Init_VectorcallLimited(PyObject *m) { - if (PyModule_AddFunctions(m, TestMethods) < 0) { - return -1; - } - - PyObject *LimitedVectorCallClass = PyType_FromModuleAndSpec( - m, &LimitedVectorCallClass_spec, NULL); - if (!LimitedVectorCallClass) { - return -1; - } - if (PyModule_AddType(m, (PyTypeObject *)LimitedVectorCallClass) < 0) { - return -1; - } - - return 0; -} - -#endif // LIMITED_API_AVAILABLE diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c index 2d4c73cfe97097..ac0c96a11d3f4a 100644 --- a/Modules/_testcapimodule.c +++ b/Modules/_testcapimodule.c @@ -21,6 +21,7 @@ #define PY_SSIZE_T_CLEAN #include "Python.h" +#include "frameobject.h" // PyFrame_Check() #include "datetime.h" // PyDateTimeAPI #include "marshal.h" // PyMarshal_WriteLongToFile #include "structmember.h" // PyMemberDef @@ -43,12 +44,9 @@ # error "The public headers should not include <stdbool.h>, see bpo-46748" #endif -// Several parts of this module are broken out into files in _testcapi/. -// Include definitions from there. -#include "_testcapi/parts.h" - // Forward declarations static struct PyModuleDef _testcapimodule; +static PyType_Spec HeapTypeNameType_Spec; static PyObject *TestError; /* set to exception object in init */ @@ -310,6 +308,30 @@ test_dict_inner(int count) } } +static PyObject *pytype_fromspec_meta(PyObject* self, PyObject *meta) +{ + if (!PyType_Check(meta)) { + PyErr_SetString( + TestError, + "pytype_fromspec_meta: must be invoked with a type argument!"); + return NULL; + } + + PyType_Slot HeapCTypeViaMetaclass_slots[] = { + {0}, + }; + + PyType_Spec HeapCTypeViaMetaclass_spec = { + "_testcapi.HeapCTypeViaMetaclass", + sizeof(PyObject), + 0, + Py_TPFLAGS_DEFAULT, + HeapCTypeViaMetaclass_slots + }; + + return PyType_FromMetaclass( + (PyTypeObject *) meta, NULL, &HeapCTypeViaMetaclass_spec, NULL); +} static PyObject* @@ -1148,17 +1170,6 @@ test_get_statictype_slots(PyObject *self, PyObject *Py_UNUSED(ignored)) } -static PyType_Slot HeapTypeNameType_slots[] = { - {0}, -}; - -static PyType_Spec HeapTypeNameType_Spec = { - .name = "_testcapi.HeapTypeNameType", - .basicsize = sizeof(PyObject), - .flags = Py_TPFLAGS_DEFAULT, - .slots = HeapTypeNameType_slots, -}; - static PyObject * test_get_type_name(PyObject *self, PyObject *Py_UNUSED(ignored)) { @@ -1197,6 +1208,126 @@ test_get_type_name(PyObject *self, PyObject *Py_UNUSED(ignored)) } +static PyObject * +simple_str(PyObject *self) { + return PyUnicode_FromString("<test>"); +} + + +static PyObject * +test_type_from_ephemeral_spec(PyObject *self, PyObject *Py_UNUSED(ignored)) +{ + // Test that a heap type can be created from a spec that's later deleted + // (along with all its contents). + // All necessary data must be copied and held by the class + PyType_Spec *spec = NULL; + char *name = NULL; + char *doc = NULL; + PyType_Slot *slots = NULL; + PyObject *class = NULL; + PyObject *instance = NULL; + PyObject *obj = NULL; + PyObject *result = NULL; + + /* create a spec (and all its contents) on the heap */ + + const char NAME[] = "testcapi._Test"; + const char DOC[] = "a test class"; + + spec = PyMem_New(PyType_Spec, 1); + if (spec == NULL) { + PyErr_NoMemory(); + goto finally; + } + name = PyMem_New(char, sizeof(NAME)); + if (name == NULL) { + PyErr_NoMemory(); + goto finally; + } + memcpy(name, NAME, sizeof(NAME)); + + doc = PyMem_New(char, sizeof(DOC)); + if (doc == NULL) { + PyErr_NoMemory(); + goto finally; + } + memcpy(doc, DOC, sizeof(DOC)); + + spec->name = name; + spec->basicsize = sizeof(PyObject); + spec->itemsize = 0; + spec->flags = Py_TPFLAGS_DEFAULT; + slots = PyMem_New(PyType_Slot, 3); + if (slots == NULL) { + PyErr_NoMemory(); + goto finally; + } + slots[0].slot = Py_tp_str; + slots[0].pfunc = simple_str; + slots[1].slot = Py_tp_doc; + slots[1].pfunc = doc; + slots[2].slot = 0; + slots[2].pfunc = NULL; + spec->slots = slots; + + /* create the class */ + + class = PyType_FromSpec(spec); + if (class == NULL) { + goto finally; + } + + /* deallocate the spec (and all contents) */ + + // (Explicitly ovewrite memory before freeing, + // so bugs show themselves even without the debug allocator's help.) + memset(spec, 0xdd, sizeof(PyType_Spec)); + PyMem_Del(spec); + spec = NULL; + memset(name, 0xdd, sizeof(NAME)); + PyMem_Del(name); + name = NULL; + memset(doc, 0xdd, sizeof(DOC)); + PyMem_Del(doc); + doc = NULL; + memset(slots, 0xdd, 3 * sizeof(PyType_Slot)); + PyMem_Del(slots); + slots = NULL; + + /* check that everything works */ + + PyTypeObject *class_tp = (PyTypeObject *)class; + PyHeapTypeObject *class_ht = (PyHeapTypeObject *)class; + assert(strcmp(class_tp->tp_name, "testcapi._Test") == 0); + assert(strcmp(PyUnicode_AsUTF8(class_ht->ht_name), "_Test") == 0); + assert(strcmp(PyUnicode_AsUTF8(class_ht->ht_qualname), "_Test") == 0); + assert(strcmp(class_tp->tp_doc, "a test class") == 0); + + // call and check __str__ + instance = PyObject_CallNoArgs(class); + if (instance == NULL) { + goto finally; + } + obj = PyObject_Str(instance); + if (obj == NULL) { + goto finally; + } + assert(strcmp(PyUnicode_AsUTF8(obj), "<test>") == 0); + Py_CLEAR(obj); + + result = Py_NewRef(Py_None); + finally: + PyMem_Del(spec); + PyMem_Del(name); + PyMem_Del(doc); + PyMem_Del(slots); + Py_XDECREF(class); + Py_XDECREF(instance); + Py_XDECREF(obj); + return result; +} + + static PyObject * test_get_type_qualname(PyObject *self, PyObject *Py_UNUSED(ignored)) { @@ -1886,6 +2017,234 @@ parse_tuple_and_keywords(PyObject *self, PyObject *args) return return_value; } +static PyObject * +test_widechar(PyObject *self, PyObject *Py_UNUSED(ignored)) +{ +#if defined(SIZEOF_WCHAR_T) && (SIZEOF_WCHAR_T == 4) + const wchar_t wtext[2] = {(wchar_t)0x10ABCDu}; + size_t wtextlen = 1; + const wchar_t invalid[1] = {(wchar_t)0x110000u}; +#else + const wchar_t wtext[3] = {(wchar_t)0xDBEAu, (wchar_t)0xDFCDu}; + size_t wtextlen = 2; +#endif + PyObject *wide, *utf8; + + wide = PyUnicode_FromWideChar(wtext, wtextlen); + if (wide == NULL) + return NULL; + + utf8 = PyUnicode_FromString("\xf4\x8a\xaf\x8d"); + if (utf8 == NULL) { + Py_DECREF(wide); + return NULL; + } + + if (PyUnicode_GET_LENGTH(wide) != PyUnicode_GET_LENGTH(utf8)) { + Py_DECREF(wide); + Py_DECREF(utf8); + return raiseTestError("test_widechar", + "wide string and utf8 string " + "have different length"); + } + if (PyUnicode_Compare(wide, utf8)) { + Py_DECREF(wide); + Py_DECREF(utf8); + if (PyErr_Occurred()) + return NULL; + return raiseTestError("test_widechar", + "wide string and utf8 string " + "are different"); + } + + Py_DECREF(wide); + Py_DECREF(utf8); + +#if defined(SIZEOF_WCHAR_T) && (SIZEOF_WCHAR_T == 4) + wide = PyUnicode_FromWideChar(invalid, 1); + if (wide == NULL) + PyErr_Clear(); + else + return raiseTestError("test_widechar", + "PyUnicode_FromWideChar(L\"\\U00110000\", 1) didn't fail"); +#endif + Py_RETURN_NONE; +} + +static PyObject * +unicode_aswidechar(PyObject *self, PyObject *args) +{ + PyObject *unicode, *result; + Py_ssize_t buflen, size; + wchar_t *buffer; + + if (!PyArg_ParseTuple(args, "Un", &unicode, &buflen)) + return NULL; + buffer = PyMem_New(wchar_t, buflen); + if (buffer == NULL) + return PyErr_NoMemory(); + + size = PyUnicode_AsWideChar(unicode, buffer, buflen); + if (size == -1) { + PyMem_Free(buffer); + return NULL; + } + + if (size < buflen) + buflen = size + 1; + else + buflen = size; + result = PyUnicode_FromWideChar(buffer, buflen); + PyMem_Free(buffer); + if (result == NULL) + return NULL; + + return Py_BuildValue("(Nn)", result, size); +} + +static PyObject * +unicode_aswidecharstring(PyObject *self, PyObject *args) +{ + PyObject *unicode, *result; + Py_ssize_t size; + wchar_t *buffer; + + if (!PyArg_ParseTuple(args, "U", &unicode)) + return NULL; + + buffer = PyUnicode_AsWideCharString(unicode, &size); + if (buffer == NULL) + return NULL; + + result = PyUnicode_FromWideChar(buffer, size + 1); + PyMem_Free(buffer); + if (result == NULL) + return NULL; + return Py_BuildValue("(Nn)", result, size); +} + +static PyObject * +unicode_asucs4(PyObject *self, PyObject *args) +{ + PyObject *unicode, *result; + Py_UCS4 *buffer; + int copy_null; + Py_ssize_t str_len, buf_len; + + if (!PyArg_ParseTuple(args, "Unp:unicode_asucs4", &unicode, &str_len, &copy_null)) { + return NULL; + } + + buf_len = str_len + 1; + buffer = PyMem_NEW(Py_UCS4, buf_len); + if (buffer == NULL) { + return PyErr_NoMemory(); + } + memset(buffer, 0, sizeof(Py_UCS4)*buf_len); + buffer[str_len] = 0xffffU; + + if (!PyUnicode_AsUCS4(unicode, buffer, buf_len, copy_null)) { + PyMem_Free(buffer); + return NULL; + } + + result = PyUnicode_FromKindAndData(PyUnicode_4BYTE_KIND, buffer, buf_len); + PyMem_Free(buffer); + return result; +} + +static PyObject * +unicode_asutf8(PyObject *self, PyObject *args) +{ + PyObject *unicode; + const char *buffer; + + if (!PyArg_ParseTuple(args, "U", &unicode)) { + return NULL; + } + + buffer = PyUnicode_AsUTF8(unicode); + if (buffer == NULL) { + return NULL; + } + + return PyBytes_FromString(buffer); +} + +static PyObject * +unicode_asutf8andsize(PyObject *self, PyObject *args) +{ + PyObject *unicode, *result; + const char *buffer; + Py_ssize_t utf8_len; + + if(!PyArg_ParseTuple(args, "U", &unicode)) { + return NULL; + } + + buffer = PyUnicode_AsUTF8AndSize(unicode, &utf8_len); + if (buffer == NULL) { + return NULL; + } + + result = PyBytes_FromString(buffer); + if (result == NULL) { + return NULL; + } + + return Py_BuildValue("(Nn)", result, utf8_len); +} + +static PyObject * +unicode_findchar(PyObject *self, PyObject *args) +{ + PyObject *str; + int direction; + unsigned int ch; + Py_ssize_t result; + Py_ssize_t start, end; + + if (!PyArg_ParseTuple(args, "UInni:unicode_findchar", &str, &ch, + &start, &end, &direction)) { + return NULL; + } + + result = PyUnicode_FindChar(str, (Py_UCS4)ch, start, end, direction); + if (result == -2) + return NULL; + else + return PyLong_FromSsize_t(result); +} + +static PyObject * +unicode_copycharacters(PyObject *self, PyObject *args) +{ + PyObject *from, *to, *to_copy; + Py_ssize_t from_start, to_start, how_many, copied; + + if (!PyArg_ParseTuple(args, "UnOnn:unicode_copycharacters", &to, &to_start, + &from, &from_start, &how_many)) { + return NULL; + } + + if (!(to_copy = PyUnicode_New(PyUnicode_GET_LENGTH(to), + PyUnicode_MAX_CHAR_VALUE(to)))) { + return NULL; + } + if (PyUnicode_Fill(to_copy, 0, PyUnicode_GET_LENGTH(to_copy), 0U) < 0) { + Py_DECREF(to_copy); + return NULL; + } + + if ((copied = PyUnicode_CopyCharacters(to_copy, to_start, from, + from_start, how_many)) < 0) { + Py_DECREF(to_copy); + return NULL; + } + + return Py_BuildValue("(Nn)", to_copy, copied); +} + static PyObject * getargs_w_star(PyObject *self, PyObject *args) { @@ -1936,6 +2295,27 @@ test_empty_argparse(PyObject *self, PyObject *Py_UNUSED(ignored)) } } +static PyObject * +codec_incrementalencoder(PyObject *self, PyObject *args) +{ + const char *encoding, *errors = NULL; + if (!PyArg_ParseTuple(args, "s|s:test_incrementalencoder", + &encoding, &errors)) + return NULL; + return PyCodec_IncrementalEncoder(encoding, errors); +} + +static PyObject * +codec_incrementaldecoder(PyObject *self, PyObject *args) +{ + const char *encoding, *errors = NULL; + if (!PyArg_ParseTuple(args, "s|s:test_incrementaldecoder", + &encoding, &errors)) + return NULL; + return PyCodec_IncrementalDecoder(encoding, errors); +} + + /* Simple test of _PyLong_NumBits and _PyLong_Sign. */ static PyObject * test_long_numbits(PyObject *self, PyObject *Py_UNUSED(ignored)) @@ -2438,7 +2818,7 @@ test_PyDateTime_GET(PyObject *self, PyObject *obj) month = PyDateTime_GET_MONTH(obj); day = PyDateTime_GET_DAY(obj); - return Py_BuildValue("(iii)", year, month, day); + return Py_BuildValue("(lll)", year, month, day); } static PyObject * @@ -2452,7 +2832,7 @@ test_PyDateTime_DATE_GET(PyObject *self, PyObject *obj) microsecond = PyDateTime_DATE_GET_MICROSECOND(obj); PyObject *tzinfo = PyDateTime_DATE_GET_TZINFO(obj); - return Py_BuildValue("(iiiiO)", hour, minute, second, microsecond, tzinfo); + return Py_BuildValue("(llllO)", hour, minute, second, microsecond, tzinfo); } static PyObject * @@ -2466,7 +2846,7 @@ test_PyDateTime_TIME_GET(PyObject *self, PyObject *obj) microsecond = PyDateTime_TIME_GET_MICROSECOND(obj); PyObject *tzinfo = PyDateTime_TIME_GET_TZINFO(obj); - return Py_BuildValue("(iiiiO)", hour, minute, second, microsecond, tzinfo); + return Py_BuildValue("(llllO)", hour, minute, second, microsecond, tzinfo); } static PyObject * @@ -2478,7 +2858,7 @@ test_PyDateTime_DELTA_GET(PyObject *self, PyObject *obj) seconds = PyDateTime_DELTA_GET_SECONDS(obj); microseconds = PyDateTime_DELTA_GET_MICROSECONDS(obj); - return Py_BuildValue("(iii)", days, seconds, microseconds); + return Py_BuildValue("(lll)", days, seconds, microseconds); } /* test_thread_state spawns a thread of its own, and that thread releases @@ -2598,6 +2978,63 @@ pending_threadfunc(PyObject *self, PyObject *arg) Py_RETURN_TRUE; } +/* Some tests of PyUnicode_FromFormat(). This needs more tests. */ +static PyObject * +test_string_from_format(PyObject *self, PyObject *Py_UNUSED(ignored)) +{ + PyObject *result; + char *msg; + +#define CHECK_1_FORMAT(FORMAT, TYPE) \ + result = PyUnicode_FromFormat(FORMAT, (TYPE)1); \ + if (result == NULL) \ + return NULL; \ + if (!_PyUnicode_EqualToASCIIString(result, "1")) { \ + msg = FORMAT " failed at 1"; \ + goto Fail; \ + } \ + Py_DECREF(result) + + CHECK_1_FORMAT("%d", int); + CHECK_1_FORMAT("%ld", long); + /* The z width modifier was added in Python 2.5. */ + CHECK_1_FORMAT("%zd", Py_ssize_t); + + /* The u type code was added in Python 2.5. */ + CHECK_1_FORMAT("%u", unsigned int); + CHECK_1_FORMAT("%lu", unsigned long); + CHECK_1_FORMAT("%zu", size_t); + + /* "%lld" and "%llu" support added in Python 2.7. */ + CHECK_1_FORMAT("%llu", unsigned long long); + CHECK_1_FORMAT("%lld", long long); + + Py_RETURN_NONE; + + Fail: + Py_XDECREF(result); + return raiseTestError("test_string_from_format", msg); + +#undef CHECK_1_FORMAT +} + + +static PyObject * +test_unicode_compare_with_ascii(PyObject *self, PyObject *Py_UNUSED(ignored)) { + PyObject *py_s = PyUnicode_FromStringAndSize("str\0", 4); + int result; + if (py_s == NULL) + return NULL; + result = PyUnicode_CompareWithASCIIString(py_s, "str"); + Py_DECREF(py_s); + if (!result) { + PyErr_SetString(TestError, "Python string ending in NULL " + "should not compare equal to c string."); + return NULL; + } + Py_RETURN_NONE; +} + /* This is here to provide a docstring for test_descr. */ static PyObject * test_with_docstring(PyObject *self, PyObject *Py_UNUSED(ignored)) @@ -3539,48 +3976,6 @@ test_pymem_alloc0(PyObject *self, PyObject *Py_UNUSED(ignored)) Py_RETURN_NONE; } -static PyObject * -test_pyobject_new(PyObject *self, PyObject *Py_UNUSED(ignored)) -{ - PyObject *obj; - PyTypeObject *type = &PyBaseObject_Type; - PyTypeObject *var_type = &PyLong_Type; - - // PyObject_New() - obj = PyObject_New(PyObject, type); - if (obj == NULL) { - goto alloc_failed; - } - Py_DECREF(obj); - - // PyObject_NEW() - obj = PyObject_NEW(PyObject, type); - if (obj == NULL) { - goto alloc_failed; - } - Py_DECREF(obj); - - // PyObject_NewVar() - obj = PyObject_NewVar(PyObject, var_type, 3); - if (obj == NULL) { - goto alloc_failed; - } - Py_DECREF(obj); - - // PyObject_NEW_VAR() - obj = PyObject_NEW_VAR(PyObject, var_type, 3); - if (obj == NULL) { - goto alloc_failed; - } - Py_DECREF(obj); - - Py_RETURN_NONE; - -alloc_failed: - PyErr_NoMemory(); - return NULL; -} - typedef struct { PyMemAllocatorEx alloc; @@ -4650,39 +5045,161 @@ raise_SIGINT_then_send_None(PyObject *self, PyObject *args) } -static PyObject* -stack_pointer(PyObject *self, PyObject *args) +static int +fastcall_args(PyObject *args, PyObject ***stack, Py_ssize_t *nargs) { - int v = 5; - return PyLong_FromVoidPtr(&v); + if (args == Py_None) { + *stack = NULL; + *nargs = 0; + } + else if (PyTuple_Check(args)) { + *stack = ((PyTupleObject *)args)->ob_item; + *nargs = PyTuple_GET_SIZE(args); + } + else { + PyErr_SetString(PyExc_TypeError, "args must be None or a tuple"); + return -1; + } + return 0; } -#ifdef W_STOPCODE -static PyObject* -py_w_stopcode(PyObject *self, PyObject *args) +static PyObject * +test_pyobject_fastcall(PyObject *self, PyObject *args) { - int sig, status; - if (!PyArg_ParseTuple(args, "i", &sig)) { + PyObject *func, *func_args; + PyObject **stack; + Py_ssize_t nargs; + + if (!PyArg_ParseTuple(args, "OO", &func, &func_args)) { return NULL; } - status = W_STOPCODE(sig); - return PyLong_FromLong(status); + + if (fastcall_args(func_args, &stack, &nargs) < 0) { + return NULL; + } + return _PyObject_FastCall(func, stack, nargs); } -#endif static PyObject * -get_mapping_keys(PyObject* self, PyObject *obj) +test_pyobject_fastcalldict(PyObject *self, PyObject *args) { - return PyMapping_Keys(obj); -} + PyObject *func, *func_args, *kwargs; + PyObject **stack; + Py_ssize_t nargs; -static PyObject * -get_mapping_values(PyObject* self, PyObject *obj) -{ - return PyMapping_Values(obj); -} + if (!PyArg_ParseTuple(args, "OOO", &func, &func_args, &kwargs)) { + return NULL; + } + + if (fastcall_args(func_args, &stack, &nargs) < 0) { + return NULL; + } + + if (kwargs == Py_None) { + kwargs = NULL; + } + else if (!PyDict_Check(kwargs)) { + PyErr_SetString(PyExc_TypeError, "kwnames must be None or a dict"); + return NULL; + } + + return PyObject_VectorcallDict(func, stack, nargs, kwargs); +} + + +static PyObject * +test_pyobject_vectorcall(PyObject *self, PyObject *args) +{ + PyObject *func, *func_args, *kwnames = NULL; + PyObject **stack; + Py_ssize_t nargs, nkw; + + if (!PyArg_ParseTuple(args, "OOO", &func, &func_args, &kwnames)) { + return NULL; + } + + if (fastcall_args(func_args, &stack, &nargs) < 0) { + return NULL; + } + + if (kwnames == Py_None) { + kwnames = NULL; + } + else if (PyTuple_Check(kwnames)) { + nkw = PyTuple_GET_SIZE(kwnames); + if (nargs < nkw) { + PyErr_SetString(PyExc_ValueError, "kwnames longer than args"); + return NULL; + } + nargs -= nkw; + } + else { + PyErr_SetString(PyExc_TypeError, "kwnames must be None or a tuple"); + return NULL; + } + return PyObject_Vectorcall(func, stack, nargs, kwnames); +} + + +static PyObject * +test_pyvectorcall_call(PyObject *self, PyObject *args) +{ + PyObject *func; + PyObject *argstuple; + PyObject *kwargs = NULL; + + if (!PyArg_ParseTuple(args, "OO|O", &func, &argstuple, &kwargs)) { + return NULL; + } + + if (!PyTuple_Check(argstuple)) { + PyErr_SetString(PyExc_TypeError, "args must be a tuple"); + return NULL; + } + if (kwargs != NULL && !PyDict_Check(kwargs)) { + PyErr_SetString(PyExc_TypeError, "kwargs must be a dict"); + return NULL; + } + + return PyVectorcall_Call(func, argstuple, kwargs); +} + + +static PyObject* +stack_pointer(PyObject *self, PyObject *args) +{ + int v = 5; + return PyLong_FromVoidPtr(&v); +} + + +#ifdef W_STOPCODE +static PyObject* +py_w_stopcode(PyObject *self, PyObject *args) +{ + int sig, status; + if (!PyArg_ParseTuple(args, "i", &sig)) { + return NULL; + } + status = W_STOPCODE(sig); + return PyLong_FromLong(status); +} +#endif + + +static PyObject * +get_mapping_keys(PyObject* self, PyObject *obj) +{ + return PyMapping_Keys(obj); +} + +static PyObject * +get_mapping_values(PyObject* self, PyObject *obj) +{ + return PyMapping_Values(obj); +} static PyObject * get_mapping_items(PyObject* self, PyObject *obj) @@ -4831,21 +5348,6 @@ sequence_getitem(PyObject *self, PyObject *args) } -static PyObject * -sequence_setitem(PyObject *self, PyObject *args) -{ - Py_ssize_t i; - PyObject *seq, *val; - if (!PyArg_ParseTuple(args, "OnO", &seq, &i, &val)) { - return NULL; - } - if (PySequence_SetItem(seq, i, val)) { - return NULL; - } - Py_RETURN_NONE; -} - - /* Functions for testing C calling conventions (METH_*) are named meth_*, * e.g. "meth_varargs" for METH_VARARGS. * @@ -5294,79 +5796,21 @@ test_code_api(PyObject *self, PyObject *Py_UNUSED(args)) if (co == NULL) { return NULL; } - /* co_code */ - { - PyObject *co_code = PyCode_GetCode(co); - if (co_code == NULL) { - goto fail; - } - assert(PyBytes_CheckExact(co_code)); - if (PyObject_Length(co_code) == 0) { - PyErr_SetString(PyExc_ValueError, "empty co_code"); - Py_DECREF(co_code); - goto fail; - } - Py_DECREF(co_code); - } - /* co_varnames */ - { - PyObject *co_varnames = PyCode_GetVarnames(co); - if (co_varnames == NULL) { - goto fail; - } - if (!PyTuple_CheckExact(co_varnames)) { - PyErr_SetString(PyExc_TypeError, "co_varnames not tuple"); - Py_DECREF(co_varnames); - goto fail; - } - if (PyTuple_GET_SIZE(co_varnames) != 0) { - PyErr_SetString(PyExc_ValueError, "non-empty co_varnames"); - Py_DECREF(co_varnames); - goto fail; - } - Py_DECREF(co_varnames); - } - /* co_cellvars */ - { - PyObject *co_cellvars = PyCode_GetCellvars(co); - if (co_cellvars == NULL) { - goto fail; - } - if (!PyTuple_CheckExact(co_cellvars)) { - PyErr_SetString(PyExc_TypeError, "co_cellvars not tuple"); - Py_DECREF(co_cellvars); - goto fail; - } - if (PyTuple_GET_SIZE(co_cellvars) != 0) { - PyErr_SetString(PyExc_ValueError, "non-empty co_cellvars"); - Py_DECREF(co_cellvars); - goto fail; - } - Py_DECREF(co_cellvars); + PyObject *co_code = PyCode_GetCode(co); + if (co_code == NULL) { + Py_DECREF(co); + return NULL; } - /* co_freevars */ - { - PyObject *co_freevars = PyCode_GetFreevars(co); - if (co_freevars == NULL) { - goto fail; - } - if (!PyTuple_CheckExact(co_freevars)) { - PyErr_SetString(PyExc_TypeError, "co_freevars not tuple"); - Py_DECREF(co_freevars); - goto fail; - } - if (PyTuple_GET_SIZE(co_freevars) != 0) { - PyErr_SetString(PyExc_ValueError, "non-empty co_freevars"); - Py_DECREF(co_freevars); - goto fail; - } - Py_DECREF(co_freevars); + assert(PyBytes_CheckExact(co_code)); + if (PyObject_Length(co_code) == 0) { + PyErr_SetString(PyExc_ValueError, "empty co_code"); + Py_DECREF(co); + Py_DECREF(co_code); + return NULL; } Py_DECREF(co); + Py_DECREF(co_code); Py_RETURN_NONE; -fail: - Py_DECREF(co); - return NULL; } static int @@ -5414,42 +5858,12 @@ settrace_to_record(PyObject *self, PyObject *list) Py_RETURN_NONE; } -static PyObject * -clear_managed_dict(PyObject *self, PyObject *obj) -{ - _PyObject_ClearManagedDict(obj); - Py_RETURN_NONE; -} - - static PyObject * test_macros(PyObject *self, PyObject *Py_UNUSED(args)) { - struct MyStruct { - int x; - }; - wchar_t array[3]; - - // static_assert(), Py_BUILD_ASSERT() - static_assert(1 == 1, "bug"); - Py_BUILD_ASSERT(1 == 1); - - - // Py_MIN(), Py_MAX(), Py_ABS() + // Py_MIN(), Py_MAX() assert(Py_MIN(5, 11) == 5); assert(Py_MAX(5, 11) == 11); - assert(Py_ABS(-5) == 5); - - // Py_STRINGIFY() - assert(strcmp(Py_STRINGIFY(123), "123") == 0); - - // Py_MEMBER_SIZE(), Py_ARRAY_LENGTH() - assert(Py_MEMBER_SIZE(struct MyStruct, x) == sizeof(int)); - assert(Py_ARRAY_LENGTH(array) == 3); - - // Py_CHARMASK() - int c = 0xab00 | 7; - assert(Py_CHARMASK(c) == 7); // _Py_IS_TYPE_SIGNED() assert(_Py_IS_TYPE_SIGNED(int)); @@ -5458,10 +5872,9 @@ test_macros(PyObject *self, PyObject *Py_UNUSED(args)) Py_RETURN_NONE; } - +static PyObject *negative_dictoffset(PyObject *, PyObject *); static PyObject *test_buildvalue_issue38913(PyObject *, PyObject *); static PyObject *getargs_s_hash_int(PyObject *, PyObject *, PyObject*); -static PyObject *getargs_s_hash_int2(PyObject *, PyObject *, PyObject*); static PyMethodDef TestMethods[] = { {"raise_exception", raise_exception, METH_VARARGS}, @@ -5513,13 +5926,17 @@ static PyMethodDef TestMethods[] = { {"test_long_numbits", test_long_numbits, METH_NOARGS}, {"test_k_code", test_k_code, METH_NOARGS}, {"test_empty_argparse", test_empty_argparse, METH_NOARGS}, + {"pytype_fromspec_meta", pytype_fromspec_meta, METH_O}, {"parse_tuple_and_keywords", parse_tuple_and_keywords, METH_VARARGS}, {"pyobject_repr_from_null", pyobject_repr_from_null, METH_NOARGS}, {"pyobject_str_from_null", pyobject_str_from_null, METH_NOARGS}, {"pyobject_bytes_from_null", pyobject_bytes_from_null, METH_NOARGS}, + {"test_string_from_format", (PyCFunction)test_string_from_format, METH_NOARGS}, {"test_with_docstring", test_with_docstring, METH_NOARGS, PyDoc_STR("This is a pretty normal docstring.")}, {"test_string_to_double", test_string_to_double, METH_NOARGS}, + {"test_unicode_compare_with_ascii", test_unicode_compare_with_ascii, + METH_NOARGS}, {"test_capsule", (PyCFunction)test_capsule, METH_NOARGS}, {"test_from_contiguous", (PyCFunction)test_from_contiguous, METH_NOARGS}, #if (defined(__linux__) || defined(__FreeBSD__)) && defined(__GNUC__) @@ -5528,11 +5945,13 @@ static PyMethodDef TestMethods[] = { {"getbuffer_with_null_view", getbuffer_with_null_view, METH_O}, {"PyBuffer_SizeFromFormat", test_PyBuffer_SizeFromFormat, METH_VARARGS}, {"test_buildvalue_N", test_buildvalue_N, METH_NOARGS}, + {"negative_dictoffset", negative_dictoffset, METH_NOARGS}, {"test_buildvalue_issue38913", test_buildvalue_issue38913, METH_NOARGS}, {"get_args", get_args, METH_VARARGS}, {"test_get_statictype_slots", test_get_statictype_slots, METH_NOARGS}, {"test_get_type_name", test_get_type_name, METH_NOARGS}, {"test_get_type_qualname", test_get_type_qualname, METH_NOARGS}, + {"test_type_from_ephemeral_spec", test_type_from_ephemeral_spec, METH_NOARGS}, {"get_kwargs", _PyCFunction_CAST(get_kwargs), METH_VARARGS|METH_KEYWORDS}, {"getargs_tuple", getargs_tuple, METH_VARARGS}, @@ -5571,8 +5990,6 @@ static PyMethodDef TestMethods[] = { {"getargs_s_hash", getargs_s_hash, METH_VARARGS}, {"getargs_s_hash_int", _PyCFunction_CAST(getargs_s_hash_int), METH_VARARGS|METH_KEYWORDS}, - {"getargs_s_hash_int2", _PyCFunction_CAST(getargs_s_hash_int2), - METH_VARARGS|METH_KEYWORDS}, {"getargs_z", getargs_z, METH_VARARGS}, {"getargs_z_star", getargs_z_star, METH_VARARGS}, {"getargs_z_hash", getargs_z_hash, METH_VARARGS}, @@ -5588,7 +6005,19 @@ static PyMethodDef TestMethods[] = { {"getargs_et", getargs_et, METH_VARARGS}, {"getargs_es_hash", getargs_es_hash, METH_VARARGS}, {"getargs_et_hash", getargs_et_hash, METH_VARARGS}, + {"codec_incrementalencoder", + (PyCFunction)codec_incrementalencoder, METH_VARARGS}, + {"codec_incrementaldecoder", + (PyCFunction)codec_incrementaldecoder, METH_VARARGS}, {"test_s_code", test_s_code, METH_NOARGS}, + {"test_widechar", test_widechar, METH_NOARGS}, + {"unicode_aswidechar", unicode_aswidechar, METH_VARARGS}, + {"unicode_aswidecharstring",unicode_aswidecharstring, METH_VARARGS}, + {"unicode_asucs4", unicode_asucs4, METH_VARARGS}, + {"unicode_asutf8", unicode_asutf8, METH_VARARGS}, + {"unicode_asutf8andsize", unicode_asutf8andsize, METH_VARARGS}, + {"unicode_findchar", unicode_findchar, METH_VARARGS}, + {"unicode_copycharacters", unicode_copycharacters, METH_VARARGS}, {"_test_thread_state", test_thread_state, METH_VARARGS}, {"_pending_threadfunc", pending_threadfunc, METH_VARARGS}, #ifdef HAVE_GETTIMEOFDAY @@ -5612,7 +6041,6 @@ static PyMethodDef TestMethods[] = { {"with_tp_del", with_tp_del, METH_VARARGS}, {"create_cfunction", create_cfunction, METH_NOARGS}, {"test_pymem_alloc0", test_pymem_alloc0, METH_NOARGS}, - {"test_pyobject_new", test_pyobject_new, METH_NOARGS}, {"test_pymem_setrawallocators",test_pymem_setrawallocators, METH_NOARGS}, {"test_pymem_setallocators",test_pymem_setallocators, METH_NOARGS}, {"test_pyobject_setallocators",test_pyobject_setallocators, METH_NOARGS}, @@ -5689,6 +6117,10 @@ static PyMethodDef TestMethods[] = { {"tracemalloc_get_traceback", tracemalloc_get_traceback, METH_VARARGS}, {"dict_get_version", dict_get_version, METH_VARARGS}, {"raise_SIGINT_then_send_None", raise_SIGINT_then_send_None, METH_VARARGS}, + {"pyobject_fastcall", test_pyobject_fastcall, METH_VARARGS}, + {"pyobject_fastcalldict", test_pyobject_fastcalldict, METH_VARARGS}, + {"pyobject_vectorcall", test_pyobject_vectorcall, METH_VARARGS}, + {"pyvectorcall_call", test_pyvectorcall_call, METH_VARARGS}, {"stack_pointer", stack_pointer, METH_NOARGS}, #ifdef W_STOPCODE {"W_STOPCODE", py_w_stopcode, METH_VARARGS}, @@ -5704,7 +6136,6 @@ static PyMethodDef TestMethods[] = { #endif {"write_unraisable_exc", test_write_unraisable_exc, METH_VARARGS}, {"sequence_getitem", sequence_getitem, METH_VARARGS}, - {"sequence_setitem", sequence_setitem, METH_VARARGS}, {"meth_varargs", meth_varargs, METH_VARARGS}, {"meth_varargs_keywords", _PyCFunction_CAST(meth_varargs_keywords), METH_VARARGS|METH_KEYWORDS}, {"meth_o", meth_o, METH_O}, @@ -5733,7 +6164,6 @@ static PyMethodDef TestMethods[] = { {"test_code_api", test_code_api, METH_NOARGS, NULL}, {"settrace_to_record", settrace_to_record, METH_O, NULL}, {"test_macros", test_macros, METH_NOARGS, NULL}, - {"clear_managed_dict", clear_managed_dict, METH_O, NULL}, {NULL, NULL} /* sentinel */ }; @@ -6293,6 +6723,609 @@ static PyTypeObject Generic_Type = { .tp_methods = generic_methods, }; + +/* Test PEP 590 */ + +typedef struct { + PyObject_HEAD + vectorcallfunc vectorcall; +} MethodDescriptorObject; + +static PyObject * +MethodDescriptor_vectorcall(PyObject *callable, PyObject *const *args, + size_t nargsf, PyObject *kwnames) +{ + /* True if using the vectorcall function in MethodDescriptorObject + * but False for MethodDescriptor2Object */ + MethodDescriptorObject *md = (MethodDescriptorObject *)callable; + return PyBool_FromLong(md->vectorcall != NULL); +} + +static PyObject * +MethodDescriptor_new(PyTypeObject* type, PyObject* args, PyObject *kw) +{ + MethodDescriptorObject *op = (MethodDescriptorObject *)type->tp_alloc(type, 0); + op->vectorcall = MethodDescriptor_vectorcall; + return (PyObject *)op; +} + +static PyObject * +func_descr_get(PyObject *func, PyObject *obj, PyObject *type) +{ + if (obj == Py_None || obj == NULL) { + Py_INCREF(func); + return func; + } + return PyMethod_New(func, obj); +} + +static PyObject * +nop_descr_get(PyObject *func, PyObject *obj, PyObject *type) +{ + Py_INCREF(func); + return func; +} + +static PyObject * +call_return_args(PyObject *self, PyObject *args, PyObject *kwargs) +{ + Py_INCREF(args); + return args; +} + +static PyTypeObject MethodDescriptorBase_Type = { + PyVarObject_HEAD_INIT(NULL, 0) + "MethodDescriptorBase", + sizeof(MethodDescriptorObject), + .tp_new = MethodDescriptor_new, + .tp_call = PyVectorcall_Call, + .tp_vectorcall_offset = offsetof(MethodDescriptorObject, vectorcall), + .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | + Py_TPFLAGS_METHOD_DESCRIPTOR | Py_TPFLAGS_HAVE_VECTORCALL, + .tp_descr_get = func_descr_get, +}; + +static PyTypeObject MethodDescriptorDerived_Type = { + PyVarObject_HEAD_INIT(NULL, 0) + "MethodDescriptorDerived", + .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, +}; + +static PyTypeObject MethodDescriptorNopGet_Type = { + PyVarObject_HEAD_INIT(NULL, 0) + "MethodDescriptorNopGet", + .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, + .tp_call = call_return_args, + .tp_descr_get = nop_descr_get, +}; + +typedef struct { + MethodDescriptorObject base; + vectorcallfunc vectorcall; +} MethodDescriptor2Object; + +static PyObject * +MethodDescriptor2_new(PyTypeObject* type, PyObject* args, PyObject *kw) +{ + MethodDescriptor2Object *op = PyObject_New(MethodDescriptor2Object, type); + op->base.vectorcall = NULL; + op->vectorcall = MethodDescriptor_vectorcall; + return (PyObject *)op; +} + +static PyTypeObject MethodDescriptor2_Type = { + PyVarObject_HEAD_INIT(NULL, 0) + "MethodDescriptor2", + sizeof(MethodDescriptor2Object), + .tp_new = MethodDescriptor2_new, + .tp_call = PyVectorcall_Call, + .tp_vectorcall_offset = offsetof(MethodDescriptor2Object, vectorcall), + .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_VECTORCALL, +}; + +PyDoc_STRVAR(heapdocctype__doc__, +"HeapDocCType(arg1, arg2)\n" +"--\n" +"\n" +"somedoc"); + +typedef struct { + PyObject_HEAD +} HeapDocCTypeObject; + +static PyType_Slot HeapDocCType_slots[] = { + {Py_tp_doc, (char*)heapdocctype__doc__}, + {0}, +}; + +static PyType_Spec HeapDocCType_spec = { + "_testcapi.HeapDocCType", + sizeof(HeapDocCTypeObject), + 0, + Py_TPFLAGS_DEFAULT, + HeapDocCType_slots +}; + +typedef struct { + PyObject_HEAD +} HeapTypeNameObject; + +static PyType_Slot HeapTypeNameType_slots[] = { + {0}, +}; + +static PyType_Spec HeapTypeNameType_Spec = { + .name = "_testcapi.HeapTypeNameType", + .basicsize = sizeof(HeapTypeNameObject), + .flags = Py_TPFLAGS_DEFAULT, + .slots = HeapTypeNameType_slots, +}; + +typedef struct { + PyObject_HEAD +} NullTpDocTypeObject; + +static PyType_Slot NullTpDocType_slots[] = { + {Py_tp_doc, NULL}, + {0, 0}, +}; + +static PyType_Spec NullTpDocType_spec = { + "_testcapi.NullTpDocType", + sizeof(NullTpDocTypeObject), + 0, + Py_TPFLAGS_DEFAULT, + NullTpDocType_slots +}; + + +PyDoc_STRVAR(heapgctype__doc__, +"A heap type with GC, and with overridden dealloc.\n\n" +"The 'value' attribute is set to 10 in __init__."); + +typedef struct { + PyObject_HEAD + int value; +} HeapCTypeObject; + +static struct PyMemberDef heapctype_members[] = { + {"value", T_INT, offsetof(HeapCTypeObject, value)}, + {NULL} /* Sentinel */ +}; + +static int +heapctype_init(PyObject *self, PyObject *args, PyObject *kwargs) +{ + ((HeapCTypeObject *)self)->value = 10; + return 0; +} + +static int +heapgcctype_traverse(HeapCTypeObject *self, visitproc visit, void *arg) +{ + Py_VISIT(Py_TYPE(self)); + return 0; +} + +static void +heapgcctype_dealloc(HeapCTypeObject *self) +{ + PyTypeObject *tp = Py_TYPE(self); + PyObject_GC_UnTrack(self); + PyObject_GC_Del(self); + Py_DECREF(tp); +} + +static PyType_Slot HeapGcCType_slots[] = { + {Py_tp_init, heapctype_init}, + {Py_tp_members, heapctype_members}, + {Py_tp_dealloc, heapgcctype_dealloc}, + {Py_tp_traverse, heapgcctype_traverse}, + {Py_tp_doc, (char*)heapgctype__doc__}, + {0, 0}, +}; + +static PyType_Spec HeapGcCType_spec = { + "_testcapi.HeapGcCType", + sizeof(HeapCTypeObject), + 0, + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC, + HeapGcCType_slots +}; + +PyDoc_STRVAR(heapctype__doc__, +"A heap type without GC, but with overridden dealloc.\n\n" +"The 'value' attribute is set to 10 in __init__."); + +static void +heapctype_dealloc(HeapCTypeObject *self) +{ + PyTypeObject *tp = Py_TYPE(self); + PyObject_Free(self); + Py_DECREF(tp); +} + +static PyType_Slot HeapCType_slots[] = { + {Py_tp_init, heapctype_init}, + {Py_tp_members, heapctype_members}, + {Py_tp_dealloc, heapctype_dealloc}, + {Py_tp_doc, (char*)heapctype__doc__}, + {0, 0}, +}; + +static PyType_Spec HeapCType_spec = { + "_testcapi.HeapCType", + sizeof(HeapCTypeObject), + 0, + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, + HeapCType_slots +}; + +PyDoc_STRVAR(heapctypesubclass__doc__, +"Subclass of HeapCType, without GC.\n\n" +"__init__ sets the 'value' attribute to 10 and 'value2' to 20."); + +typedef struct { + HeapCTypeObject base; + int value2; +} HeapCTypeSubclassObject; + +static int +heapctypesubclass_init(PyObject *self, PyObject *args, PyObject *kwargs) +{ + /* Call __init__ of the superclass */ + if (heapctype_init(self, args, kwargs) < 0) { + return -1; + } + /* Initialize additional element */ + ((HeapCTypeSubclassObject *)self)->value2 = 20; + return 0; +} + +static struct PyMemberDef heapctypesubclass_members[] = { + {"value2", T_INT, offsetof(HeapCTypeSubclassObject, value2)}, + {NULL} /* Sentinel */ +}; + +static PyType_Slot HeapCTypeSubclass_slots[] = { + {Py_tp_init, heapctypesubclass_init}, + {Py_tp_members, heapctypesubclass_members}, + {Py_tp_doc, (char*)heapctypesubclass__doc__}, + {0, 0}, +}; + +static PyType_Spec HeapCTypeSubclass_spec = { + "_testcapi.HeapCTypeSubclass", + sizeof(HeapCTypeSubclassObject), + 0, + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, + HeapCTypeSubclass_slots +}; + +PyDoc_STRVAR(heapctypewithbuffer__doc__, +"Heap type with buffer support.\n\n" +"The buffer is set to [b'1', b'2', b'3', b'4']"); + +typedef struct { + HeapCTypeObject base; + char buffer[4]; +} HeapCTypeWithBufferObject; + +static int +heapctypewithbuffer_getbuffer(HeapCTypeWithBufferObject *self, Py_buffer *view, int flags) +{ + self->buffer[0] = '1'; + self->buffer[1] = '2'; + self->buffer[2] = '3'; + self->buffer[3] = '4'; + return PyBuffer_FillInfo( + view, (PyObject*)self, (void *)self->buffer, 4, 1, flags); +} + +static void +heapctypewithbuffer_releasebuffer(HeapCTypeWithBufferObject *self, Py_buffer *view) +{ + assert(view->obj == (void*) self); +} + +static PyType_Slot HeapCTypeWithBuffer_slots[] = { + {Py_bf_getbuffer, heapctypewithbuffer_getbuffer}, + {Py_bf_releasebuffer, heapctypewithbuffer_releasebuffer}, + {Py_tp_doc, (char*)heapctypewithbuffer__doc__}, + {0, 0}, +}; + +static PyType_Spec HeapCTypeWithBuffer_spec = { + "_testcapi.HeapCTypeWithBuffer", + sizeof(HeapCTypeWithBufferObject), + 0, + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, + HeapCTypeWithBuffer_slots +}; + +PyDoc_STRVAR(heapctypesubclasswithfinalizer__doc__, +"Subclass of HeapCType with a finalizer that reassigns __class__.\n\n" +"__class__ is set to plain HeapCTypeSubclass during finalization.\n" +"__init__ sets the 'value' attribute to 10 and 'value2' to 20."); + +static int +heapctypesubclasswithfinalizer_init(PyObject *self, PyObject *args, PyObject *kwargs) +{ + PyTypeObject *base = (PyTypeObject *)PyType_GetSlot(Py_TYPE(self), Py_tp_base); + initproc base_init = PyType_GetSlot(base, Py_tp_init); + base_init(self, args, kwargs); + return 0; +} + +static void +heapctypesubclasswithfinalizer_finalize(PyObject *self) +{ + PyObject *error_type, *error_value, *error_traceback, *m; + PyObject *oldtype = NULL, *newtype = NULL, *refcnt = NULL; + + /* Save the current exception, if any. */ + PyErr_Fetch(&error_type, &error_value, &error_traceback); + + m = PyState_FindModule(&_testcapimodule); + if (m == NULL) { + goto cleanup_finalize; + } + oldtype = PyObject_GetAttrString(m, "HeapCTypeSubclassWithFinalizer"); + newtype = PyObject_GetAttrString(m, "HeapCTypeSubclass"); + if (oldtype == NULL || newtype == NULL) { + goto cleanup_finalize; + } + + if (PyObject_SetAttrString(self, "__class__", newtype) < 0) { + goto cleanup_finalize; + } + refcnt = PyLong_FromSsize_t(Py_REFCNT(oldtype)); + if (refcnt == NULL) { + goto cleanup_finalize; + } + if (PyObject_SetAttrString(oldtype, "refcnt_in_del", refcnt) < 0) { + goto cleanup_finalize; + } + Py_DECREF(refcnt); + refcnt = PyLong_FromSsize_t(Py_REFCNT(newtype)); + if (refcnt == NULL) { + goto cleanup_finalize; + } + if (PyObject_SetAttrString(newtype, "refcnt_in_del", refcnt) < 0) { + goto cleanup_finalize; + } + +cleanup_finalize: + Py_XDECREF(oldtype); + Py_XDECREF(newtype); + Py_XDECREF(refcnt); + + /* Restore the saved exception. */ + PyErr_Restore(error_type, error_value, error_traceback); +} + +static PyType_Slot HeapCTypeSubclassWithFinalizer_slots[] = { + {Py_tp_init, heapctypesubclasswithfinalizer_init}, + {Py_tp_members, heapctypesubclass_members}, + {Py_tp_finalize, heapctypesubclasswithfinalizer_finalize}, + {Py_tp_doc, (char*)heapctypesubclasswithfinalizer__doc__}, + {0, 0}, +}; + +static PyType_Spec HeapCTypeSubclassWithFinalizer_spec = { + "_testcapi.HeapCTypeSubclassWithFinalizer", + sizeof(HeapCTypeSubclassObject), + 0, + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_FINALIZE, + HeapCTypeSubclassWithFinalizer_slots +}; + +static PyType_Slot HeapCTypeMetaclass_slots[] = { + {0}, +}; + +static PyType_Spec HeapCTypeMetaclass_spec = { + "_testcapi.HeapCTypeMetaclass", + sizeof(PyHeapTypeObject), + sizeof(PyMemberDef), + Py_TPFLAGS_DEFAULT, + HeapCTypeMetaclass_slots +}; + +static PyObject * +heap_ctype_metaclass_custom_tp_new(PyTypeObject *tp, PyObject *args, PyObject *kwargs) +{ + return PyType_Type.tp_new(tp, args, kwargs); +} + +static PyType_Slot HeapCTypeMetaclassCustomNew_slots[] = { + { Py_tp_new, heap_ctype_metaclass_custom_tp_new }, + {0}, +}; + +static PyType_Spec HeapCTypeMetaclassCustomNew_spec = { + "_testcapi.HeapCTypeMetaclassCustomNew", + sizeof(PyHeapTypeObject), + sizeof(PyMemberDef), + Py_TPFLAGS_DEFAULT, + HeapCTypeMetaclassCustomNew_slots +}; + + +typedef struct { + PyObject_HEAD + PyObject *dict; +} HeapCTypeWithDictObject; + +static void +heapctypewithdict_dealloc(HeapCTypeWithDictObject* self) +{ + + PyTypeObject *tp = Py_TYPE(self); + Py_XDECREF(self->dict); + PyObject_Free(self); + Py_DECREF(tp); +} + +static PyGetSetDef heapctypewithdict_getsetlist[] = { + {"__dict__", PyObject_GenericGetDict, PyObject_GenericSetDict}, + {NULL} /* Sentinel */ +}; + +static struct PyMemberDef heapctypewithdict_members[] = { + {"dictobj", T_OBJECT, offsetof(HeapCTypeWithDictObject, dict)}, + {"__dictoffset__", T_PYSSIZET, offsetof(HeapCTypeWithDictObject, dict), READONLY}, + {NULL} /* Sentinel */ +}; + +static PyType_Slot HeapCTypeWithDict_slots[] = { + {Py_tp_members, heapctypewithdict_members}, + {Py_tp_getset, heapctypewithdict_getsetlist}, + {Py_tp_dealloc, heapctypewithdict_dealloc}, + {0, 0}, +}; + +static PyType_Spec HeapCTypeWithDict_spec = { + "_testcapi.HeapCTypeWithDict", + sizeof(HeapCTypeWithDictObject), + 0, + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, + HeapCTypeWithDict_slots +}; + +static struct PyMemberDef heapctypewithnegativedict_members[] = { + {"dictobj", T_OBJECT, offsetof(HeapCTypeWithDictObject, dict)}, + {"__dictoffset__", T_PYSSIZET, -(Py_ssize_t)sizeof(void*), READONLY}, + {NULL} /* Sentinel */ +}; + +static PyType_Slot HeapCTypeWithNegativeDict_slots[] = { + {Py_tp_members, heapctypewithnegativedict_members}, + {Py_tp_getset, heapctypewithdict_getsetlist}, + {Py_tp_dealloc, heapctypewithdict_dealloc}, + {0, 0}, +}; + +static PyType_Spec HeapCTypeWithNegativeDict_spec = { + "_testcapi.HeapCTypeWithNegativeDict", + sizeof(HeapCTypeWithDictObject), + 0, + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, + HeapCTypeWithNegativeDict_slots +}; + +typedef struct { + PyObject_HEAD + PyObject *weakreflist; +} HeapCTypeWithWeakrefObject; + +static struct PyMemberDef heapctypewithweakref_members[] = { + {"weakreflist", T_OBJECT, offsetof(HeapCTypeWithWeakrefObject, weakreflist)}, + {"__weaklistoffset__", T_PYSSIZET, + offsetof(HeapCTypeWithWeakrefObject, weakreflist), READONLY}, + {NULL} /* Sentinel */ +}; + +static void +heapctypewithweakref_dealloc(HeapCTypeWithWeakrefObject* self) +{ + + PyTypeObject *tp = Py_TYPE(self); + if (self->weakreflist != NULL) + PyObject_ClearWeakRefs((PyObject *) self); + Py_XDECREF(self->weakreflist); + PyObject_Free(self); + Py_DECREF(tp); +} + +static PyType_Slot HeapCTypeWithWeakref_slots[] = { + {Py_tp_members, heapctypewithweakref_members}, + {Py_tp_dealloc, heapctypewithweakref_dealloc}, + {0, 0}, +}; + +static PyType_Spec HeapCTypeWithWeakref_spec = { + "_testcapi.HeapCTypeWithWeakref", + sizeof(HeapCTypeWithWeakrefObject), + 0, + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, + HeapCTypeWithWeakref_slots +}; + +PyDoc_STRVAR(heapctypesetattr__doc__, +"A heap type without GC, but with overridden __setattr__.\n\n" +"The 'value' attribute is set to 10 in __init__ and updated via attribute setting."); + +typedef struct { + PyObject_HEAD + long value; +} HeapCTypeSetattrObject; + +static struct PyMemberDef heapctypesetattr_members[] = { + {"pvalue", T_LONG, offsetof(HeapCTypeSetattrObject, value)}, + {NULL} /* Sentinel */ +}; + +static int +heapctypesetattr_init(PyObject *self, PyObject *args, PyObject *kwargs) +{ + ((HeapCTypeSetattrObject *)self)->value = 10; + return 0; +} + +static void +heapctypesetattr_dealloc(HeapCTypeSetattrObject *self) +{ + PyTypeObject *tp = Py_TYPE(self); + PyObject_Free(self); + Py_DECREF(tp); +} + +static int +heapctypesetattr_setattro(HeapCTypeSetattrObject *self, PyObject *attr, PyObject *value) +{ + PyObject *svalue = PyUnicode_FromString("value"); + if (svalue == NULL) + return -1; + int eq = PyObject_RichCompareBool(svalue, attr, Py_EQ); + Py_DECREF(svalue); + if (eq < 0) + return -1; + if (!eq) { + return PyObject_GenericSetAttr((PyObject*) self, attr, value); + } + if (value == NULL) { + self->value = 0; + return 0; + } + PyObject *ivalue = PyNumber_Long(value); + if (ivalue == NULL) + return -1; + long v = PyLong_AsLong(ivalue); + Py_DECREF(ivalue); + if (v == -1 && PyErr_Occurred()) + return -1; + self->value = v; + return 0; +} + +static PyType_Slot HeapCTypeSetattr_slots[] = { + {Py_tp_init, heapctypesetattr_init}, + {Py_tp_members, heapctypesetattr_members}, + {Py_tp_setattro, heapctypesetattr_setattro}, + {Py_tp_dealloc, heapctypesetattr_dealloc}, + {Py_tp_doc, (char*)heapctypesetattr__doc__}, + {0, 0}, +}; + +static PyType_Spec HeapCTypeSetattr_spec = { + "_testcapi.HeapCTypeSetattr", + sizeof(HeapCTypeSetattrObject), + 0, + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, + HeapCTypeSetattr_slots +}; + static PyMethodDef meth_instance_methods[] = { {"meth_varargs", meth_varargs, METH_VARARGS}, {"meth_varargs_keywords", _PyCFunction_CAST(meth_varargs_keywords), METH_VARARGS|METH_KEYWORDS}, @@ -6459,6 +7492,29 @@ PyInit__testcapi(void) Py_INCREF(&MyList_Type); PyModule_AddObject(m, "MyList", (PyObject *)&MyList_Type); + if (PyType_Ready(&MethodDescriptorBase_Type) < 0) + return NULL; + Py_INCREF(&MethodDescriptorBase_Type); + PyModule_AddObject(m, "MethodDescriptorBase", (PyObject *)&MethodDescriptorBase_Type); + + MethodDescriptorDerived_Type.tp_base = &MethodDescriptorBase_Type; + if (PyType_Ready(&MethodDescriptorDerived_Type) < 0) + return NULL; + Py_INCREF(&MethodDescriptorDerived_Type); + PyModule_AddObject(m, "MethodDescriptorDerived", (PyObject *)&MethodDescriptorDerived_Type); + + MethodDescriptorNopGet_Type.tp_base = &MethodDescriptorBase_Type; + if (PyType_Ready(&MethodDescriptorNopGet_Type) < 0) + return NULL; + Py_INCREF(&MethodDescriptorNopGet_Type); + PyModule_AddObject(m, "MethodDescriptorNopGet", (PyObject *)&MethodDescriptorNopGet_Type); + + MethodDescriptor2_Type.tp_base = &MethodDescriptorBase_Type; + if (PyType_Ready(&MethodDescriptor2_Type) < 0) + return NULL; + Py_INCREF(&MethodDescriptor2_Type); + PyModule_AddObject(m, "MethodDescriptor2", (PyObject *)&MethodDescriptor2_Type); + if (PyType_Ready(&GenericAlias_Type) < 0) return NULL; Py_INCREF(&GenericAlias_Type); @@ -6532,38 +7588,115 @@ PyInit__testcapi(void) Py_INCREF(TestError); PyModule_AddObject(m, "error", TestError); - if (PyType_Ready(&ContainerNoGC_type) < 0) { + PyObject *HeapDocCType = PyType_FromSpec(&HeapDocCType_spec); + if (HeapDocCType == NULL) { return NULL; } - Py_INCREF(&ContainerNoGC_type); - if (PyModule_AddObject(m, "ContainerNoGC", - (PyObject *) &ContainerNoGC_type) < 0) + PyModule_AddObject(m, "HeapDocCType", HeapDocCType); + + /* bpo-41832: Add a new type to test PyType_FromSpec() + now can accept a NULL tp_doc slot. */ + PyObject *NullTpDocType = PyType_FromSpec(&NullTpDocType_spec); + if (NullTpDocType == NULL) { return NULL; + } + PyModule_AddObject(m, "NullTpDocType", NullTpDocType); - /* Include tests from the _testcapi/ directory */ - if (_PyTestCapi_Init_Vectorcall(m) < 0) { + PyObject *HeapGcCType = PyType_FromSpec(&HeapGcCType_spec); + if (HeapGcCType == NULL) { return NULL; } - if (_PyTestCapi_Init_Heaptype(m) < 0) { + PyModule_AddObject(m, "HeapGcCType", HeapGcCType); + + PyObject *HeapCType = PyType_FromSpec(&HeapCType_spec); + if (HeapCType == NULL) { return NULL; } - if (_PyTestCapi_Init_Unicode(m) < 0) { + PyObject *subclass_bases = PyTuple_Pack(1, HeapCType); + if (subclass_bases == NULL) { return NULL; } + PyObject *HeapCTypeSubclass = PyType_FromSpecWithBases(&HeapCTypeSubclass_spec, subclass_bases); + if (HeapCTypeSubclass == NULL) { + return NULL; + } + Py_DECREF(subclass_bases); + PyModule_AddObject(m, "HeapCTypeSubclass", HeapCTypeSubclass); -#ifndef LIMITED_API_AVAILABLE - PyModule_AddObjectRef(m, "LIMITED_API_AVAILABLE", Py_False); -#else - PyModule_AddObjectRef(m, "LIMITED_API_AVAILABLE", Py_True); - if (_PyTestCapi_Init_VectorcallLimited(m) < 0) { + PyObject *HeapCTypeWithDict = PyType_FromSpec(&HeapCTypeWithDict_spec); + if (HeapCTypeWithDict == NULL) { return NULL; } -#endif + PyModule_AddObject(m, "HeapCTypeWithDict", HeapCTypeWithDict); + + PyObject *HeapCTypeWithNegativeDict = PyType_FromSpec(&HeapCTypeWithNegativeDict_spec); + if (HeapCTypeWithNegativeDict == NULL) { + return NULL; + } + PyModule_AddObject(m, "HeapCTypeWithNegativeDict", HeapCTypeWithNegativeDict); + + PyObject *HeapCTypeWithWeakref = PyType_FromSpec(&HeapCTypeWithWeakref_spec); + if (HeapCTypeWithWeakref == NULL) { + return NULL; + } + PyModule_AddObject(m, "HeapCTypeWithWeakref", HeapCTypeWithWeakref); + + PyObject *HeapCTypeWithBuffer = PyType_FromSpec(&HeapCTypeWithBuffer_spec); + if (HeapCTypeWithBuffer == NULL) { + return NULL; + } + PyModule_AddObject(m, "HeapCTypeWithBuffer", HeapCTypeWithBuffer); + + PyObject *HeapCTypeSetattr = PyType_FromSpec(&HeapCTypeSetattr_spec); + if (HeapCTypeSetattr == NULL) { + return NULL; + } + PyModule_AddObject(m, "HeapCTypeSetattr", HeapCTypeSetattr); + + PyObject *subclass_with_finalizer_bases = PyTuple_Pack(1, HeapCTypeSubclass); + if (subclass_with_finalizer_bases == NULL) { + return NULL; + } + PyObject *HeapCTypeSubclassWithFinalizer = PyType_FromSpecWithBases( + &HeapCTypeSubclassWithFinalizer_spec, subclass_with_finalizer_bases); + if (HeapCTypeSubclassWithFinalizer == NULL) { + return NULL; + } + Py_DECREF(subclass_with_finalizer_bases); + PyModule_AddObject(m, "HeapCTypeSubclassWithFinalizer", HeapCTypeSubclassWithFinalizer); + + PyObject *HeapCTypeMetaclass = PyType_FromMetaclass( + &PyType_Type, m, &HeapCTypeMetaclass_spec, (PyObject *) &PyType_Type); + if (HeapCTypeMetaclass == NULL) { + return NULL; + } + PyModule_AddObject(m, "HeapCTypeMetaclass", HeapCTypeMetaclass); + + PyObject *HeapCTypeMetaclassCustomNew = PyType_FromMetaclass( + &PyType_Type, m, &HeapCTypeMetaclassCustomNew_spec, (PyObject *) &PyType_Type); + if (HeapCTypeMetaclassCustomNew == NULL) { + return NULL; + } + PyModule_AddObject(m, "HeapCTypeMetaclassCustomNew", HeapCTypeMetaclassCustomNew); + + if (PyType_Ready(&ContainerNoGC_type) < 0) { + return NULL; + } + Py_INCREF(&ContainerNoGC_type); + if (PyModule_AddObject(m, "ContainerNoGC", + (PyObject *) &ContainerNoGC_type) < 0) + return NULL; PyState_AddModule(m, &_testcapimodule); return m; } +static PyObject * +negative_dictoffset(PyObject *self, PyObject *Py_UNUSED(ignored)) +{ + return PyType_FromSpec(&HeapCTypeWithNegativeDict_spec); +} + /* Test the C API exposed when PY_SSIZE_T_CLEAN is not defined */ #undef Py_BuildValue @@ -6605,6 +7738,7 @@ test_buildvalue_issue38913(PyObject *self, PyObject *Py_UNUSED(ignored)) } PyErr_Clear(); + Py_RETURN_NONE; } @@ -6615,27 +7749,11 @@ PyAPI_FUNC(int) PyArg_ParseTupleAndKeywords(PyObject *, PyObject *, static PyObject * getargs_s_hash_int(PyObject *self, PyObject *args, PyObject *kwargs) { - static char *keywords[] = {"", "", "x", NULL}; - Py_buffer buf = {NULL}; - const char *s; - int len; - int i = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "w*|s#i", keywords, &buf, &s, &len, &i)) - return NULL; - PyBuffer_Release(&buf); - Py_RETURN_NONE; -} - -static PyObject * -getargs_s_hash_int2(PyObject *self, PyObject *args, PyObject *kwargs) -{ - static char *keywords[] = {"", "", "x", NULL}; - Py_buffer buf = {NULL}; + static char *keywords[] = {"", "x", NULL}; const char *s; int len; int i = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "w*|(s#)i", keywords, &buf, &s, &len, &i)) + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|s#i", keywords, &s, &len, &i)) return NULL; - PyBuffer_Release(&buf); Py_RETURN_NONE; } diff --git a/Modules/_testinternalcapi.c b/Modules/_testinternalcapi.c index 02a061b84f85a3..238de749fffc5d 100644 --- a/Modules/_testinternalcapi.c +++ b/Modules/_testinternalcapi.c @@ -14,7 +14,6 @@ #include "Python.h" #include "pycore_atomic_funcs.h" // _Py_atomic_int_get() #include "pycore_bitutils.h" // _Py_bswap32() -#include "pycore_compile.h" // _PyCompile_OptimizeCfg() #include "pycore_fileutils.h" // _Py_normpath #include "pycore_frame.h" // _PyInterpreterFrame #include "pycore_gc.h" // PyGC_Head @@ -26,12 +25,7 @@ #include "pycore_pystate.h" // _PyThreadState_GET() #include "osdefs.h" // MAXPATHLEN -#include "clinic/_testinternalcapi.c.h" -/*[clinic input] -module _testinternalcapi -[clinic start generated code]*/ -/*[clinic end generated code: output=da39a3ee5e6b4b0d input=7bb583d8c9eb9a78]*/ static PyObject * get_configs(PyObject *self, PyObject *Py_UNUSED(args)) { @@ -511,9 +505,7 @@ set_eval_frame_default(PyObject *self, PyObject *Py_UNUSED(args)) static PyObject * record_eval(PyThreadState *tstate, struct _PyInterpreterFrame *f, int exc) { - if (PyFunction_Check(f->f_funcobj)) { - PyList_Append(record_list, ((PyFunctionObject *)f->f_funcobj)->func_name); - } + PyList_Append(record_list, f->f_func->func_name); return _PyEval_EvalFrameDefault(tstate, f, exc); } @@ -533,25 +525,6 @@ set_eval_frame_record(PyObject *self, PyObject *list) } -/*[clinic input] - -_testinternalcapi.optimize_cfg -> object - - instructions: object - consts: object - -Apply compiler optimizations to an instruction list. -[clinic start generated code]*/ - -static PyObject * -_testinternalcapi_optimize_cfg_impl(PyObject *module, PyObject *instructions, - PyObject *consts) -/*[clinic end generated code: output=5412aeafca683c8b input=7e8a3de86ebdd0f9]*/ -{ - return _PyCompile_OptimizeCfg(instructions, consts); -} - - static PyMethodDef TestMethods[] = { {"get_configs", get_configs, METH_NOARGS}, {"get_recursion_depth", get_recursion_depth, METH_NOARGS}, @@ -570,7 +543,6 @@ static PyMethodDef TestMethods[] = { {"DecodeLocaleEx", decode_locale_ex, METH_VARARGS}, {"set_eval_frame_default", set_eval_frame_default, METH_NOARGS, NULL}, {"set_eval_frame_record", set_eval_frame_record, METH_O, NULL}, - _TESTINTERNALCAPI_OPTIMIZE_CFG_METHODDEF {NULL, NULL} /* sentinel */ }; diff --git a/Modules/_threadmodule.c b/Modules/_threadmodule.c index 4ac90dc8068934..ace0282ea6fce6 100644 --- a/Modules/_threadmodule.c +++ b/Modules/_threadmodule.c @@ -57,7 +57,6 @@ lock_traverse(lockobject *self, visitproc visit, void *arg) static void lock_dealloc(lockobject *self) { - PyObject_GC_UnTrack(self); if (self->in_weakreflist != NULL) { PyObject_ClearWeakRefs((PyObject *) self); } @@ -334,7 +333,6 @@ rlock_traverse(rlockobject *self, visitproc visit, void *arg) static void rlock_dealloc(rlockobject *self) { - PyObject_GC_UnTrack(self); if (self->in_weakreflist != NULL) PyObject_ClearWeakRefs((PyObject *) self); /* self->rlock_lock can be NULL if PyThread_allocate_lock() failed diff --git a/Modules/_tracemalloc.c b/Modules/_tracemalloc.c index 44a1f7b673c0eb..ae09869deda704 100644 --- a/Modules/_tracemalloc.c +++ b/Modules/_tracemalloc.c @@ -400,13 +400,7 @@ traceback_get_frames(traceback_t *traceback) } _PyInterpreterFrame *pyframe = tstate->cframe->current_frame; - for (;;) { - while (pyframe && _PyFrame_IsIncomplete(pyframe)) { - pyframe = pyframe->previous; - } - if (pyframe == NULL) { - break; - } + for (; pyframe != NULL;) { if (traceback->nframe < _Py_tracemalloc_config.max_nframe) { tracemalloc_get_frame(pyframe, &traceback->frames[traceback->nframe]); assert(traceback->frames[traceback->nframe].filename != NULL); @@ -416,7 +410,8 @@ traceback_get_frames(traceback_t *traceback) traceback->total_nframe++; } - pyframe = pyframe->previous; + _PyInterpreterFrame *back = pyframe->previous; + pyframe = back; } } diff --git a/Modules/_winapi.c b/Modules/_winapi.c index 4845b4e6d4ad7c..3e24d512cac384 100644 --- a/Modules/_winapi.c +++ b/Modules/_winapi.c @@ -1512,50 +1512,6 @@ _winapi_PeekNamedPipe_impl(PyObject *module, HANDLE handle, int size) } } -/*[clinic input] -_winapi.LCMapStringEx - - locale: LPCWSTR - flags: DWORD - src: LPCWSTR - -[clinic start generated code]*/ - -static PyObject * -_winapi_LCMapStringEx_impl(PyObject *module, LPCWSTR locale, DWORD flags, - LPCWSTR src) -/*[clinic end generated code: output=cf4713d80e2b47c9 input=9fe26f95d5ab0001]*/ -{ - if (flags & (LCMAP_SORTHANDLE | LCMAP_HASH | LCMAP_BYTEREV | - LCMAP_SORTKEY)) { - return PyErr_Format(PyExc_ValueError, "unsupported flags"); - } - - int dest_size = LCMapStringEx(locale, flags, src, -1, NULL, 0, - NULL, NULL, 0); - if (dest_size == 0) { - return PyErr_SetFromWindowsErr(0); - } - - wchar_t* dest = PyMem_NEW(wchar_t, dest_size); - if (dest == NULL) { - return PyErr_NoMemory(); - } - - int nmapped = LCMapStringEx(locale, flags, src, -1, dest, dest_size, - NULL, NULL, 0); - if (nmapped == 0) { - DWORD error = GetLastError(); - PyMem_DEL(dest); - return PyErr_SetFromWindowsErr(error); - } - - PyObject *ret = PyUnicode_FromWideChar(dest, dest_size - 1); - PyMem_DEL(dest); - - return ret; -} - /*[clinic input] _winapi.ReadFile @@ -2067,7 +2023,6 @@ static PyMethodDef winapi_functions[] = { _WINAPI_OPENFILEMAPPING_METHODDEF _WINAPI_OPENPROCESS_METHODDEF _WINAPI_PEEKNAMEDPIPE_METHODDEF - _WINAPI_LCMAPSTRINGEX_METHODDEF _WINAPI_READFILE_METHODDEF _WINAPI_SETNAMEDPIPEHANDLESTATE_METHODDEF _WINAPI_TERMINATEPROCESS_METHODDEF @@ -2205,22 +2160,6 @@ static int winapi_exec(PyObject *m) WINAPI_CONSTANT(F_DWORD, FILE_TYPE_PIPE); WINAPI_CONSTANT(F_DWORD, FILE_TYPE_REMOTE); - WINAPI_CONSTANT("u", LOCALE_NAME_INVARIANT); - WINAPI_CONSTANT(F_DWORD, LOCALE_NAME_MAX_LENGTH); - WINAPI_CONSTANT("u", LOCALE_NAME_SYSTEM_DEFAULT); - WINAPI_CONSTANT("u", LOCALE_NAME_USER_DEFAULT); - - WINAPI_CONSTANT(F_DWORD, LCMAP_FULLWIDTH); - WINAPI_CONSTANT(F_DWORD, LCMAP_HALFWIDTH); - WINAPI_CONSTANT(F_DWORD, LCMAP_HIRAGANA); - WINAPI_CONSTANT(F_DWORD, LCMAP_KATAKANA); - WINAPI_CONSTANT(F_DWORD, LCMAP_LINGUISTIC_CASING); - WINAPI_CONSTANT(F_DWORD, LCMAP_LOWERCASE); - WINAPI_CONSTANT(F_DWORD, LCMAP_SIMPLIFIED_CHINESE); - WINAPI_CONSTANT(F_DWORD, LCMAP_TITLECASE); - WINAPI_CONSTANT(F_DWORD, LCMAP_TRADITIONAL_CHINESE); - WINAPI_CONSTANT(F_DWORD, LCMAP_UPPERCASE); - WINAPI_CONSTANT("i", NULL); return 0; diff --git a/Modules/_xxsubinterpretersmodule.c b/Modules/_xxsubinterpretersmodule.c index f40601ad3a1a72..ee04e308fe554f 100644 --- a/Modules/_xxsubinterpretersmodule.c +++ b/Modules/_xxsubinterpretersmodule.c @@ -6,6 +6,7 @@ #endif #include "Python.h" +#include "frameobject.h" #include "pycore_frame.h" #include "pycore_pystate.h" // _PyThreadState_GET() #include "pycore_interpreteridobject.h" @@ -1931,6 +1932,20 @@ _run_script_in_interpreter(PyInterpreterState *interp, const char *codestr, return -1; } +#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS + // Switch to interpreter. + PyThreadState *new_tstate = PyInterpreterState_ThreadHead(interp); + PyThreadState *save1 = PyEval_SaveThread(); + + (void)PyThreadState_Swap(new_tstate); + + // Run the script. + _sharedexception *exc = NULL; + int result = _run_script(interp, codestr, shared, &exc); + + // Switch back. + PyEval_RestoreThread(save1); +#else // Switch to interpreter. PyThreadState *save_tstate = NULL; if (interp != PyInterpreterState_Get()) { @@ -1948,6 +1963,7 @@ _run_script_in_interpreter(PyInterpreterState *interp, const char *codestr, if (save_tstate != NULL) { PyThreadState_Swap(save_tstate); } +#endif // Propagate any exception out to the caller. if (exc != NULL) { diff --git a/Modules/_zoneinfo.c b/Modules/_zoneinfo.c index 207340adec152f..1535721b026d1f 100644 --- a/Modules/_zoneinfo.c +++ b/Modules/_zoneinfo.c @@ -659,8 +659,14 @@ zoneinfo_reduce(PyObject *obj_self, PyObject *unused) PyZoneInfo_ZoneInfo *self = (PyZoneInfo_ZoneInfo *)obj_self; if (self->source == SOURCE_FILE) { // Objects constructed from files cannot be pickled. + PyObject *pickle = PyImport_ImportModule("pickle"); + if (pickle == NULL) { + return NULL; + } + PyObject *pickle_error = - _PyImport_GetModuleAttrString("pickle", "PicklingError"); + PyObject_GetAttrString(pickle, "PicklingError"); + Py_DECREF(pickle); if (pickle_error == NULL) { return NULL; } @@ -2486,13 +2492,14 @@ clear_strong_cache(const PyTypeObject *const type) static PyObject * new_weak_cache(void) { - PyObject *WeakValueDictionary = - _PyImport_GetModuleAttrString("weakref", "WeakValueDictionary"); - if (WeakValueDictionary == NULL) { + PyObject *weakref_module = PyImport_ImportModule("weakref"); + if (weakref_module == NULL) { return NULL; } - PyObject *weak_cache = PyObject_CallNoArgs(WeakValueDictionary); - Py_DECREF(WeakValueDictionary); + + PyObject *weak_cache = + PyObject_CallMethod(weakref_module, "WeakValueDictionary", ""); + Py_DECREF(weakref_module); return weak_cache; } @@ -2649,13 +2656,25 @@ zoneinfomodule_exec(PyObject *m) PyModule_AddObject(m, "ZoneInfo", (PyObject *)&PyZoneInfo_ZoneInfoType); /* Populate imports */ + PyObject *_tzpath_module = PyImport_ImportModule("zoneinfo._tzpath"); + if (_tzpath_module == NULL) { + goto error; + } + _tzpath_find_tzfile = - _PyImport_GetModuleAttrString("zoneinfo._tzpath", "find_tzfile"); + PyObject_GetAttrString(_tzpath_module, "find_tzfile"); + Py_DECREF(_tzpath_module); if (_tzpath_find_tzfile == NULL) { goto error; } - io_open = _PyImport_GetModuleAttrString("io", "open"); + PyObject *io_module = PyImport_ImportModule("io"); + if (io_module == NULL) { + goto error; + } + + io_open = PyObject_GetAttrString(io_module, "open"); + Py_DECREF(io_module); if (io_open == NULL) { goto error; } diff --git a/Modules/addrinfo.h b/Modules/addrinfo.h index 66e5a795f86f19..c3c86248dd4360 100644 --- a/Modules/addrinfo.h +++ b/Modules/addrinfo.h @@ -162,9 +162,7 @@ struct sockaddr_storage { #ifdef __cplusplus extern "C" { #endif -#ifdef ENABLE_IPV6 extern void freehostent(struct hostent *); -#endif #ifdef __cplusplus } #endif diff --git a/Modules/arraymodule.c b/Modules/arraymodule.c index 924fbf29bfb889..a04e6a4e070d9e 100644 --- a/Modules/arraymodule.c +++ b/Modules/arraymodule.c @@ -60,6 +60,7 @@ typedef struct { PyObject *str_read; PyObject *str_write; + PyObject *str__array_reconstructor; PyObject *str___dict__; PyObject *str_iter; } array_state; @@ -2198,8 +2199,13 @@ array_array___reduce_ex___impl(arrayobject *self, PyTypeObject *cls, assert(state != NULL); if (array_reconstructor == NULL) { - array_reconstructor = _PyImport_GetModuleAttrString( - "array", "_array_reconstructor"); + PyObject *array_module = PyImport_ImportModule("array"); + if (array_module == NULL) + return NULL; + array_reconstructor = PyObject_GetAttr( + array_module, + state->str__array_reconstructor); + Py_DECREF(array_module); if (array_reconstructor == NULL) return NULL; } @@ -3023,6 +3029,7 @@ array_clear(PyObject *module) Py_CLEAR(state->ArrayIterType); Py_CLEAR(state->str_read); Py_CLEAR(state->str_write); + Py_CLEAR(state->str__array_reconstructor); Py_CLEAR(state->str___dict__); Py_CLEAR(state->str_iter); return 0; @@ -3068,6 +3075,7 @@ array_modexec(PyObject *m) /* Add interned strings */ ADD_INTERNED(state, read); ADD_INTERNED(state, write); + ADD_INTERNED(state, _array_reconstructor); ADD_INTERNED(state, __dict__); ADD_INTERNED(state, iter); @@ -3081,8 +3089,13 @@ array_modexec(PyObject *m) return -1; } - PyObject *mutablesequence = _PyImport_GetModuleAttrString( - "collections.abc", "MutableSequence"); + PyObject *abc_mod = PyImport_ImportModule("collections.abc"); + if (!abc_mod) { + Py_DECREF((PyObject *)state->ArrayType); + return -1; + } + PyObject *mutablesequence = PyObject_GetAttrString(abc_mod, "MutableSequence"); + Py_DECREF(abc_mod); if (!mutablesequence) { Py_DECREF((PyObject *)state->ArrayType); return -1; diff --git a/Modules/atexitmodule.c b/Modules/atexitmodule.c index a1c511e09d704e..e806730aa9cf2a 100644 --- a/Modules/atexitmodule.c +++ b/Modules/atexitmodule.c @@ -185,7 +185,7 @@ PyDoc_STRVAR(atexit_run_exitfuncs__doc__, \n\ Run all registered exit functions.\n\ \n\ -If a callback raises an exception, it is logged with sys.unraisablehook."); +If a callaback raises an exception, it is logged with sys.unraisablehook."); static PyObject * atexit_run_exitfuncs(PyObject *module, PyObject *unused) diff --git a/Modules/cjkcodecs/cjkcodecs.h b/Modules/cjkcodecs/cjkcodecs.h index d9aeec2ff40b08..ba8fad26055a8b 100644 --- a/Modules/cjkcodecs/cjkcodecs.h +++ b/Modules/cjkcodecs/cjkcodecs.h @@ -245,7 +245,14 @@ static const struct dbcs_map *mapping_list; static PyObject * getmultibytecodec(void) { - return _PyImport_GetModuleAttrString("_multibytecodec", "__create_codec"); + PyObject *mod = PyImport_ImportModuleNoBlock("_multibytecodec"); + if (mod == NULL) { + return NULL; + } + + PyObject *cofunc = PyObject_GetAttrString(mod, "__create_codec"); + Py_DECREF(mod); + return cofunc; } static PyObject * diff --git a/Modules/cjkcodecs/clinic/multibytecodec.c.h b/Modules/cjkcodecs/clinic/multibytecodec.c.h index b7e340e68796fa..8f850aa8195ca2 100644 --- a/Modules/cjkcodecs/clinic/multibytecodec.c.h +++ b/Modules/cjkcodecs/clinic/multibytecodec.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_multibytecodec_MultibyteCodec_encode__doc__, "encode($self, /, input, errors=None)\n" "--\n" @@ -31,31 +25,8 @@ static PyObject * _multibytecodec_MultibyteCodec_encode(MultibyteCodecObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(input), &_Py_ID(errors), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"input", "errors", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "encode", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "encode", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *input; @@ -117,31 +88,8 @@ static PyObject * _multibytecodec_MultibyteCodec_decode(MultibyteCodecObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(input), &_Py_ID(errors), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"input", "errors", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "decode", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "decode", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer input = {NULL, NULL}; @@ -208,31 +156,8 @@ static PyObject * _multibytecodec_MultibyteIncrementalEncoder_encode(MultibyteIncrementalEncoderObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(input), &_Py_ID(final), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"input", "final", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "encode", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "encode", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *input; @@ -337,31 +262,8 @@ static PyObject * _multibytecodec_MultibyteIncrementalDecoder_decode(MultibyteIncrementalDecoderObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(input), &_Py_ID(final), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"input", "final", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "decode", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "decode", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer input = {NULL, NULL}; @@ -590,19 +492,8 @@ static PyObject * _multibytecodec_MultibyteStreamWriter_write(MultibyteStreamWriterObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) - #else - # define KWTUPLE NULL - #endif - static const char * const _keywords[] = {"", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "write", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "write", 0}; PyObject *argsbuf[1]; PyObject *strobj; @@ -634,19 +525,8 @@ static PyObject * _multibytecodec_MultibyteStreamWriter_writelines(MultibyteStreamWriterObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) - #else - # define KWTUPLE NULL - #endif - static const char * const _keywords[] = {"", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "writelines", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "writelines", 0}; PyObject *argsbuf[1]; PyObject *lines; @@ -690,4 +570,4 @@ PyDoc_STRVAR(_multibytecodec___create_codec__doc__, #define _MULTIBYTECODEC___CREATE_CODEC_METHODDEF \ {"__create_codec", (PyCFunction)_multibytecodec___create_codec, METH_O, _multibytecodec___create_codec__doc__}, -/*[clinic end generated code: output=b034ec7126c11bde input=a9049054013a1b77]*/ +/*[clinic end generated code: output=9e4e3da5ca3c8288 input=a9049054013a1b77]*/ diff --git a/Modules/cjkcodecs/mappings_hk.h b/Modules/cjkcodecs/mappings_hk.h index 9012ae350c4def..1b1d70e7c1750c 100644 --- a/Modules/cjkcodecs/mappings_hk.h +++ b/Modules/cjkcodecs/mappings_hk.h @@ -1,4 +1,3 @@ -// AUTO-GENERATED FILE FROM genmap_tchinese.py: DO NOT EDIT static const ucs2_t __big5hkscs_decmap[6219] = { 17392,19506,17923,17830,17784,29287,19831,17843,31921,19682,31941,15253,18230, 18244,19527,19520,17087,13847,29522,28299,28882,19543,41809,18255,17882,19589, diff --git a/Modules/cjkcodecs/mappings_tw.h b/Modules/cjkcodecs/mappings_tw.h index ceb4bc56a218f2..ec3f9f7468e41b 100644 --- a/Modules/cjkcodecs/mappings_tw.h +++ b/Modules/cjkcodecs/mappings_tw.h @@ -1,4 +1,3 @@ -// AUTO-GENERATED FILE FROM genmap_tchinese.py: DO NOT EDIT static const ucs2_t __big5_decmap[16702] = { 12288,65292,12289,12290,65294,8226,65307,65306,65311,65281,65072,8230,8229, 65104,65380,65106,183,65108,65109,65110,65111,65372,8211,65073,8212,65075, @@ -2632,4 +2631,3 @@ static const struct unim_index cp950ext_encmap[256] = { 0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{__cp950ext_encmap+342,81,104},{ __cp950ext_encmap+366,15,229}, }; - diff --git a/Modules/clinic/_abc.c.h b/Modules/clinic/_abc.c.h index 2adec818c91311..8d3832e1b83d2d 100644 --- a/Modules/clinic/_abc.c.h +++ b/Modules/clinic/_abc.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_abc__reset_registry__doc__, "_reset_registry($module, self, /)\n" "--\n" @@ -165,4 +159,4 @@ _abc_get_cache_token(PyObject *module, PyObject *Py_UNUSED(ignored)) { return _abc_get_cache_token_impl(module); } -/*[clinic end generated code: output=c2e69611a495c98d input=a9049054013a1b77]*/ +/*[clinic end generated code: output=babb3ce445fa9b21 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_asynciomodule.c.h b/Modules/clinic/_asynciomodule.c.h index daf524c3456ca8..7cc27b8289598d 100644 --- a/Modules/clinic/_asynciomodule.c.h +++ b/Modules/clinic/_asynciomodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_asyncio_Future___init____doc__, "Future(*, loop=None)\n" "--\n" @@ -32,31 +26,8 @@ static int _asyncio_Future___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(loop), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"loop", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "Future", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "Future", 0}; PyObject *argsbuf[1]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -168,31 +139,8 @@ static PyObject * _asyncio_Future_add_done_callback(FutureObj *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(context), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "context", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "add_done_callback", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "add_done_callback", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *fn; @@ -245,31 +193,8 @@ static PyObject * _asyncio_Future_cancel(FutureObj *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(msg), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"msg", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "cancel", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "cancel", 0}; PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *msg = Py_None; @@ -381,31 +306,8 @@ static int _asyncio_Task___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 4 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(coro), &_Py_ID(loop), &_Py_ID(name), &_Py_ID(context), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"coro", "loop", "name", "context", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "Task", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "Task", 0}; PyObject *argsbuf[4]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -499,31 +401,8 @@ static PyObject * _asyncio_Task_cancel(TaskObj *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(msg), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"msg", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "cancel", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "cancel", 0}; PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *msg = Py_None; @@ -587,6 +466,43 @@ _asyncio_Task_uncancel(TaskObj *self, PyObject *Py_UNUSED(ignored)) return _asyncio_Task_uncancel_impl(self); } +PyDoc_STRVAR(_asyncio_Task__check_future__doc__, +"_check_future($self, /, future)\n" +"--\n" +"\n" +"Return False if task and future loops are not compatible."); + +#define _ASYNCIO_TASK__CHECK_FUTURE_METHODDEF \ + {"_check_future", _PyCFunction_CAST(_asyncio_Task__check_future), METH_FASTCALL|METH_KEYWORDS, _asyncio_Task__check_future__doc__}, + +static int +_asyncio_Task__check_future_impl(TaskObj *self, PyObject *future); + +static PyObject * +_asyncio_Task__check_future(TaskObj *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) +{ + PyObject *return_value = NULL; + static const char * const _keywords[] = {"future", NULL}; + static _PyArg_Parser _parser = {NULL, _keywords, "_check_future", 0}; + PyObject *argsbuf[1]; + PyObject *future; + int _return_value; + + args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf); + if (!args) { + goto exit; + } + future = args[0]; + _return_value = _asyncio_Task__check_future_impl(self, future); + if ((_return_value == -1) && PyErr_Occurred()) { + goto exit; + } + return_value = PyBool_FromLong((long)_return_value); + +exit: + return return_value; +} + PyDoc_STRVAR(_asyncio_Task_get_stack__doc__, "get_stack($self, /, *, limit=None)\n" "--\n" @@ -621,31 +537,8 @@ static PyObject * _asyncio_Task_get_stack(TaskObj *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(limit), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"limit", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "get_stack", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "get_stack", 0}; PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *limit = Py_None; @@ -688,31 +581,8 @@ static PyObject * _asyncio_Task_print_stack(TaskObj *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(limit), &_Py_ID(file), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"limit", "file", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "print_stack", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "print_stack", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *limit = Py_None; @@ -870,31 +740,8 @@ static PyObject * _asyncio__get_event_loop(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(stacklevel), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"stacklevel", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "_get_event_loop", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "_get_event_loop", 0}; PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int stacklevel = 3; @@ -955,31 +802,8 @@ static PyObject * _asyncio__register_task(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(task), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"task", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "_register_task", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "_register_task", 0}; PyObject *argsbuf[1]; PyObject *task; @@ -1012,31 +836,8 @@ static PyObject * _asyncio__unregister_task(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(task), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"task", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "_unregister_task", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "_unregister_task", 0}; PyObject *argsbuf[1]; PyObject *task; @@ -1071,31 +872,8 @@ static PyObject * _asyncio__enter_task(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(loop), &_Py_ID(task), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"loop", "task", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "_enter_task", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "_enter_task", 0}; PyObject *argsbuf[2]; PyObject *loop; PyObject *task; @@ -1132,31 +910,8 @@ static PyObject * _asyncio__leave_task(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(loop), &_Py_ID(task), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"loop", "task", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "_leave_task", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "_leave_task", 0}; PyObject *argsbuf[2]; PyObject *loop; PyObject *task; @@ -1172,4 +927,4 @@ _asyncio__leave_task(PyObject *module, PyObject *const *args, Py_ssize_t nargs, exit: return return_value; } -/*[clinic end generated code: output=459a7c7f21bbc290 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=eccf150c9c30efd5 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_bisectmodule.c.h b/Modules/clinic/_bisectmodule.c.h index bbf456e4b0f411..2f0a3575cc5ced 100644 --- a/Modules/clinic/_bisectmodule.c.h +++ b/Modules/clinic/_bisectmodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_bisect_bisect_right__doc__, "bisect_right($module, /, a, x, lo=0, hi=None, *, key=None)\n" "--\n" @@ -32,31 +26,8 @@ static PyObject * _bisect_bisect_right(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 5 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(a), &_Py_ID(x), &_Py_ID(lo), &_Py_ID(hi), &_Py_ID(key), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"a", "x", "lo", "hi", "key", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "bisect_right", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "bisect_right", 0}; PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; PyObject *a; @@ -138,31 +109,8 @@ static PyObject * _bisect_insort_right(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 5 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(a), &_Py_ID(x), &_Py_ID(lo), &_Py_ID(hi), &_Py_ID(key), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"a", "x", "lo", "hi", "key", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "insort_right", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "insort_right", 0}; PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; PyObject *a; @@ -241,31 +189,8 @@ static PyObject * _bisect_bisect_left(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 5 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(a), &_Py_ID(x), &_Py_ID(lo), &_Py_ID(hi), &_Py_ID(key), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"a", "x", "lo", "hi", "key", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "bisect_left", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "bisect_left", 0}; PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; PyObject *a; @@ -347,31 +272,8 @@ static PyObject * _bisect_insort_left(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 5 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(a), &_Py_ID(x), &_Py_ID(lo), &_Py_ID(hi), &_Py_ID(key), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"a", "x", "lo", "hi", "key", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "insort_left", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "insort_left", 0}; PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; PyObject *a; @@ -425,4 +327,4 @@ _bisect_insort_left(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P exit: return return_value; } -/*[clinic end generated code: output=7dc87f7af75275a1 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=ee8c32ff8d3d1fac input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_bz2module.c.h b/Modules/clinic/_bz2module.c.h index 50a48b0bf2b825..3ed72f8bceb174 100644 --- a/Modules/clinic/_bz2module.c.h +++ b/Modules/clinic/_bz2module.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_bz2_BZ2Compressor_compress__doc__, "compress($self, data, /)\n" "--\n" @@ -101,31 +95,8 @@ static PyObject * _bz2_BZ2Decompressor_decompress(BZ2Decompressor *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(data), &_Py_ID(max_length), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"data", "max_length", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "decompress", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "decompress", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer data = {NULL, NULL}; @@ -168,4 +139,4 @@ _bz2_BZ2Decompressor_decompress(BZ2Decompressor *self, PyObject *const *args, Py return return_value; } -/*[clinic end generated code: output=829bed4097cf2e63 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=a1175204a414fe2a input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_codecsmodule.c.h b/Modules/clinic/_codecsmodule.c.h index 25db060cd900fa..29e9d5ea86aa24 100644 --- a/Modules/clinic/_codecsmodule.c.h +++ b/Modules/clinic/_codecsmodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_codecs_register__doc__, "register($module, search_function, /)\n" "--\n" @@ -92,31 +86,8 @@ static PyObject * _codecs_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(obj), &_Py_ID(encoding), &_Py_ID(errors), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"obj", "encoding", "errors", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "encode", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "encode", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *obj; @@ -192,31 +163,8 @@ static PyObject * _codecs_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(obj), &_Py_ID(encoding), &_Py_ID(errors), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"obj", "encoding", "errors", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "decode", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "decode", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *obj; @@ -2869,4 +2817,4 @@ _codecs_lookup_error(PyObject *module, PyObject *arg) #ifndef _CODECS_CODE_PAGE_ENCODE_METHODDEF #define _CODECS_CODE_PAGE_ENCODE_METHODDEF #endif /* !defined(_CODECS_CODE_PAGE_ENCODE_METHODDEF) */ -/*[clinic end generated code: output=e885abad241bc54d input=a9049054013a1b77]*/ +/*[clinic end generated code: output=92250568c3a6f0a0 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_collectionsmodule.c.h b/Modules/clinic/_collectionsmodule.c.h index ad4da8856ac3c3..e53acd6afb4468 100644 --- a/Modules/clinic/_collectionsmodule.c.h +++ b/Modules/clinic/_collectionsmodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_collections__count_elements__doc__, "_count_elements($module, mapping, iterable, /)\n" "--\n" @@ -75,4 +69,4 @@ tuplegetter_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=12168d58a11a4fb9 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=36b0948c4676c831 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_contextvarsmodule.c.h b/Modules/clinic/_contextvarsmodule.c.h index 461d4845635ef0..b1885e41c355d2 100644 --- a/Modules/clinic/_contextvarsmodule.c.h +++ b/Modules/clinic/_contextvarsmodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_contextvars_copy_context__doc__, "copy_context($module, /)\n" "--\n" @@ -24,4 +18,4 @@ _contextvars_copy_context(PyObject *module, PyObject *Py_UNUSED(ignored)) { return _contextvars_copy_context_impl(module); } -/*[clinic end generated code: output=1736c27450823e70 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=26e07024451baf52 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_cryptmodule.c.h b/Modules/clinic/_cryptmodule.c.h index 97b70b3c17e9a2..401d04623e43c7 100644 --- a/Modules/clinic/_cryptmodule.c.h +++ b/Modules/clinic/_cryptmodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(crypt_crypt__doc__, "crypt($module, word, salt, /)\n" "--\n" @@ -66,4 +60,4 @@ crypt_crypt(PyObject *module, PyObject *const *args, Py_ssize_t nargs) exit: return return_value; } -/*[clinic end generated code: output=235ccef9211184f4 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=6f61ab29e361f9d0 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_csv.c.h b/Modules/clinic/_csv.c.h index 8900946350a524..ae5dec74a173ea 100644 --- a/Modules/clinic/_csv.c.h +++ b/Modules/clinic/_csv.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_csv_list_dialects__doc__, "list_dialects($module, /)\n" "--\n" @@ -46,31 +40,8 @@ static PyObject * _csv_unregister_dialect(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(name), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"name", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "unregister_dialect", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "unregister_dialect", 0}; PyObject *argsbuf[1]; PyObject *name; @@ -103,31 +74,8 @@ static PyObject * _csv_get_dialect(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(name), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"name", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "get_dialect", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "get_dialect", 0}; PyObject *argsbuf[1]; PyObject *name; @@ -163,31 +111,8 @@ static PyObject * _csv_field_size_limit(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(new_limit), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"new_limit", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "field_size_limit", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "field_size_limit", 0}; PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *new_limit = NULL; @@ -206,4 +131,4 @@ _csv_field_size_limit(PyObject *module, PyObject *const *args, Py_ssize_t nargs, exit: return return_value; } -/*[clinic end generated code: output=94374e41eb2806ee input=a9049054013a1b77]*/ +/*[clinic end generated code: output=6235abc491b02188 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_curses_panel.c.h b/Modules/clinic/_curses_panel.c.h index bb6cc90f0438c0..31101c1011ccd6 100644 --- a/Modules/clinic/_curses_panel.c.h +++ b/Modules/clinic/_curses_panel.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_curses_panel_panel_bottom__doc__, "bottom($self, /)\n" "--\n" @@ -169,19 +163,8 @@ static PyObject * _curses_panel_panel_move(PyCursesPanelObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) - #else - # define KWTUPLE NULL - #endif - static const char * const _keywords[] = {"", "", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "move", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "move", 0}; PyObject *argsbuf[2]; int y; int x; @@ -240,19 +223,8 @@ static PyObject * _curses_panel_panel_replace(PyCursesPanelObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) - #else - # define KWTUPLE NULL - #endif - static const char * const _keywords[] = {"", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "replace", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "replace", 0}; PyObject *argsbuf[1]; PyCursesWindowObject *win; @@ -288,19 +260,8 @@ static PyObject * _curses_panel_panel_set_userptr(PyCursesPanelObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) - #else - # define KWTUPLE NULL - #endif - static const char * const _keywords[] = {"", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "set_userptr", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "set_userptr", 0}; PyObject *argsbuf[1]; PyObject *obj; @@ -422,4 +383,4 @@ _curses_panel_update_panels(PyObject *module, PyObject *Py_UNUSED(ignored)) { return _curses_panel_update_panels_impl(module); } -/*[clinic end generated code: output=8d0533681891523c input=a9049054013a1b77]*/ +/*[clinic end generated code: output=c471aed62bc31e79 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_cursesmodule.c.h b/Modules/clinic/_cursesmodule.c.h index 67fadace863970..c7d1eca6559b67 100644 --- a/Modules/clinic/_cursesmodule.c.h +++ b/Modules/clinic/_cursesmodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_curses_window_addch__doc__, "addch([y, x,] ch, [attr=_curses.A_NORMAL])\n" "Paint the character.\n" @@ -2684,31 +2678,8 @@ static PyObject * _curses_setupterm(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(term), &_Py_ID(fd), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"term", "fd", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "setupterm", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "setupterm", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; const char *term = NULL; @@ -4313,4 +4284,4 @@ _curses_has_extended_color_support(PyObject *module, PyObject *Py_UNUSED(ignored #ifndef _CURSES_USE_DEFAULT_COLORS_METHODDEF #define _CURSES_USE_DEFAULT_COLORS_METHODDEF #endif /* !defined(_CURSES_USE_DEFAULT_COLORS_METHODDEF) */ -/*[clinic end generated code: output=b2e71e2012f16197 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=1e2a8a160a0fe811 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_datetimemodule.c.h b/Modules/clinic/_datetimemodule.c.h index 51e51e3791cc24..31d2f75f7a86ae 100644 --- a/Modules/clinic/_datetimemodule.c.h +++ b/Modules/clinic/_datetimemodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(datetime_date_fromtimestamp__doc__, "fromtimestamp($type, timestamp, /)\n" "--\n" @@ -28,31 +22,8 @@ static PyObject * iso_calendar_date_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(year), &_Py_ID(week), &_Py_ID(weekday), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"year", "week", "weekday", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "IsoCalendarDate", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "IsoCalendarDate", 0}; PyObject *argsbuf[3]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -103,31 +74,8 @@ static PyObject * datetime_datetime_now(PyTypeObject *type, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(tz), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"tz", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "now", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "now", 0}; PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *tz = Py_None; @@ -146,4 +94,4 @@ datetime_datetime_now(PyTypeObject *type, PyObject *const *args, Py_ssize_t narg exit: return return_value; } -/*[clinic end generated code: output=42654669940e0e3a input=a9049054013a1b77]*/ +/*[clinic end generated code: output=1a3da7479e443e17 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_dbmmodule.c.h b/Modules/clinic/_dbmmodule.c.h index 172dc4b9d5793e..8157716a940810 100644 --- a/Modules/clinic/_dbmmodule.c.h +++ b/Modules/clinic/_dbmmodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_dbm_dbm_close__doc__, "close($self, /)\n" "--\n" @@ -65,19 +59,8 @@ static PyObject * _dbm_dbm_get(dbmobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) - #else - # define KWTUPLE NULL - #endif - static const char * const _keywords[] = {"", "", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .format = "s#|O:get", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {"s#|O:get", _keywords, 0}; const char *key; Py_ssize_t key_length; PyObject *default_value = Py_None; @@ -111,19 +94,8 @@ static PyObject * _dbm_dbm_setdefault(dbmobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) - #else - # define KWTUPLE NULL - #endif - static const char * const _keywords[] = {"", "", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .format = "s#|O:setdefault", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {"s#|O:setdefault", _keywords, 0}; const char *key; Py_ssize_t key_length; PyObject *default_value = NULL; @@ -200,4 +172,4 @@ dbmopen(PyObject *module, PyObject *const *args, Py_ssize_t nargs) exit: return return_value; } -/*[clinic end generated code: output=28dcf736654137c2 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=5798278a05032d0e input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_elementtree.c.h b/Modules/clinic/_elementtree.c.h index 0a2a74e220c2d1..047203eefa3579 100644 --- a/Modules/clinic/_elementtree.c.h +++ b/Modules/clinic/_elementtree.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_elementtree_Element_append__doc__, "append($self, subelement, /)\n" "--\n" @@ -174,31 +168,8 @@ static PyObject * _elementtree_Element_find(ElementObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), &_Py_ID(namespaces), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", "namespaces", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "find", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "find", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *path; @@ -237,31 +208,8 @@ static PyObject * _elementtree_Element_findtext(ElementObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), &_Py_ID(default), &_Py_ID(namespaces), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", "default", "namespaces", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "findtext", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "findtext", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *path; @@ -306,31 +254,8 @@ static PyObject * _elementtree_Element_findall(ElementObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), &_Py_ID(namespaces), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", "namespaces", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "findall", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "findall", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *path; @@ -368,31 +293,8 @@ static PyObject * _elementtree_Element_iterfind(ElementObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), &_Py_ID(namespaces), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", "namespaces", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "iterfind", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "iterfind", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *path; @@ -430,31 +332,8 @@ static PyObject * _elementtree_Element_get(ElementObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(key), &_Py_ID(default), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"key", "default", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "get", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "get", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *key; @@ -491,31 +370,8 @@ static PyObject * _elementtree_Element_iter(ElementObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(tag), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"tag", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "iter", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "iter", 0}; PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *tag = Py_None; @@ -734,31 +590,8 @@ static int _elementtree_TreeBuilder___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 5 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(element_factory), &_Py_ID(comment_factory), &_Py_ID(pi_factory), &_Py_ID(insert_comments), &_Py_ID(insert_pis), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"element_factory", "comment_factory", "pi_factory", "insert_comments", "insert_pis", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "TreeBuilder", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "TreeBuilder", 0}; PyObject *argsbuf[5]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -968,31 +801,8 @@ static int _elementtree_XMLParser___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(target), &_Py_ID(encoding), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"target", "encoding", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "XMLParser", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "XMLParser", 0}; PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -1105,4 +915,4 @@ _elementtree_XMLParser__setevents(XMLParserObject *self, PyObject *const *args, exit: return return_value; } -/*[clinic end generated code: output=67a80531eaf43815 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=3fd6fa2ce1aeca76 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_gdbmmodule.c.h b/Modules/clinic/_gdbmmodule.c.h index 5c6aeeee7789f7..e4cb1e9477f3ac 100644 --- a/Modules/clinic/_gdbmmodule.c.h +++ b/Modules/clinic/_gdbmmodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_gdbm_gdbm_get__doc__, "get($self, key, default=None, /)\n" "--\n" @@ -168,19 +162,8 @@ static PyObject * _gdbm_gdbm_nextkey(gdbmobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) - #else - # define KWTUPLE NULL - #endif - static const char * const _keywords[] = {"", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .format = "s#:nextkey", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {"s#:nextkey", _keywords, 0}; const char *key; Py_ssize_t key_length; @@ -322,4 +305,4 @@ dbmopen(PyObject *module, PyObject *const *args, Py_ssize_t nargs) exit: return return_value; } -/*[clinic end generated code: output=c6e721d82335adb3 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=617117d16956ac4d input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_hashopenssl.c.h b/Modules/clinic/_hashopenssl.c.h index fb61a444018dbb..5d84f4ac4e5547 100644 --- a/Modules/clinic/_hashopenssl.c.h +++ b/Modules/clinic/_hashopenssl.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(EVP_copy__doc__, "copy($self, /)\n" "--\n" @@ -89,31 +83,8 @@ static PyObject * EVPXOF_digest(EVPobject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(length), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"length", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "digest", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "digest", 0}; PyObject *argsbuf[1]; Py_ssize_t length; @@ -159,31 +130,8 @@ static PyObject * EVPXOF_hexdigest(EVPobject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(length), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"length", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "hexdigest", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "hexdigest", 0}; PyObject *argsbuf[1]; Py_ssize_t length; @@ -233,31 +181,8 @@ static PyObject * EVP_new(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(name), &_Py_ID(string), &_Py_ID(usedforsecurity), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"name", "string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "new", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "new", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *name_obj; @@ -310,31 +235,8 @@ static PyObject * _hashlib_openssl_md5(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "openssl_md5", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "openssl_md5", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *data_obj = NULL; @@ -385,31 +287,8 @@ static PyObject * _hashlib_openssl_sha1(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "openssl_sha1", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha1", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *data_obj = NULL; @@ -460,31 +339,8 @@ static PyObject * _hashlib_openssl_sha224(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "openssl_sha224", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha224", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *data_obj = NULL; @@ -535,31 +391,8 @@ static PyObject * _hashlib_openssl_sha256(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "openssl_sha256", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha256", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *data_obj = NULL; @@ -610,31 +443,8 @@ static PyObject * _hashlib_openssl_sha384(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "openssl_sha384", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha384", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *data_obj = NULL; @@ -685,31 +495,8 @@ static PyObject * _hashlib_openssl_sha512(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "openssl_sha512", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha512", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *data_obj = NULL; @@ -762,31 +549,8 @@ static PyObject * _hashlib_openssl_sha3_224(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "openssl_sha3_224", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha3_224", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *data_obj = NULL; @@ -841,31 +605,8 @@ static PyObject * _hashlib_openssl_sha3_256(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "openssl_sha3_256", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha3_256", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *data_obj = NULL; @@ -920,31 +661,8 @@ static PyObject * _hashlib_openssl_sha3_384(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "openssl_sha3_384", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha3_384", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *data_obj = NULL; @@ -999,31 +717,8 @@ static PyObject * _hashlib_openssl_sha3_512(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "openssl_sha3_512", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha3_512", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *data_obj = NULL; @@ -1078,31 +773,8 @@ static PyObject * _hashlib_openssl_shake_128(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "openssl_shake_128", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "openssl_shake_128", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *data_obj = NULL; @@ -1157,31 +829,8 @@ static PyObject * _hashlib_openssl_shake_256(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "openssl_shake_256", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "openssl_shake_256", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *data_obj = NULL; @@ -1236,31 +885,8 @@ static PyObject * pbkdf2_hmac(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 5 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(hash_name), &_Py_ID(password), &_Py_ID(salt), &_Py_ID(iterations), &_Py_ID(dklen), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"hash_name", "password", "salt", "iterations", "dklen", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "pbkdf2_hmac", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "pbkdf2_hmac", 0}; PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 4; const char *hash_name; @@ -1345,31 +971,8 @@ static PyObject * _hashlib_scrypt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 7 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(password), &_Py_ID(salt), &_Py_ID(n), &_Py_ID(r), &_Py_ID(p), &_Py_ID(maxmem), &_Py_ID(dklen), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"password", "salt", "n", "r", "p", "maxmem", "dklen", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "scrypt", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "scrypt", 0}; PyObject *argsbuf[7]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer password = {NULL, NULL}; @@ -1484,31 +1087,8 @@ static PyObject * _hashlib_hmac_singleshot(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(key), &_Py_ID(msg), &_Py_ID(digest), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"key", "msg", "digest", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "hmac_digest", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "hmac_digest", 0}; PyObject *argsbuf[3]; Py_buffer key = {NULL, NULL}; Py_buffer msg = {NULL, NULL}; @@ -1565,31 +1145,8 @@ static PyObject * _hashlib_hmac_new(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(key), &_Py_ID(msg), &_Py_ID(digestmod), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"key", "msg", "digestmod", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "hmac_new", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "hmac_new", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer key = {NULL, NULL}; @@ -1663,31 +1220,8 @@ static PyObject * _hashlib_HMAC_update(HMACobject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(msg), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"msg", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "update", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "update", 0}; PyObject *argsbuf[1]; PyObject *msg; @@ -1851,4 +1385,4 @@ _hashlib_compare_digest(PyObject *module, PyObject *const *args, Py_ssize_t narg #ifndef _HASHLIB_SCRYPT_METHODDEF #define _HASHLIB_SCRYPT_METHODDEF #endif /* !defined(_HASHLIB_SCRYPT_METHODDEF) */ -/*[clinic end generated code: output=b339e255db698147 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=69f2374071bff707 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_heapqmodule.c.h b/Modules/clinic/_heapqmodule.c.h index 3ee3f51702fa30..8d73b5b48d6a0e 100644 --- a/Modules/clinic/_heapqmodule.c.h +++ b/Modules/clinic/_heapqmodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_heapq_heappush__doc__, "heappush($module, heap, item, /)\n" "--\n" @@ -271,4 +265,4 @@ _heapq__heapify_max(PyObject *module, PyObject *arg) exit: return return_value; } -/*[clinic end generated code: output=29e99a48c57f82bb input=a9049054013a1b77]*/ +/*[clinic end generated code: output=9a22715a8bf0c91d input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_localemodule.c.h b/Modules/clinic/_localemodule.c.h index e6b99962d15fc8..0694263573947a 100644 --- a/Modules/clinic/_localemodule.c.h +++ b/Modules/clinic/_localemodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_locale_setlocale__doc__, "setlocale($module, category, locale=<unrepresentable>, /)\n" "--\n" @@ -608,4 +602,4 @@ _locale_getencoding(PyObject *module, PyObject *Py_UNUSED(ignored)) #ifndef _LOCALE_BIND_TEXTDOMAIN_CODESET_METHODDEF #define _LOCALE_BIND_TEXTDOMAIN_CODESET_METHODDEF #endif /* !defined(_LOCALE_BIND_TEXTDOMAIN_CODESET_METHODDEF) */ -/*[clinic end generated code: output=406842c3441559cb input=a9049054013a1b77]*/ +/*[clinic end generated code: output=cfde12e987960245 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_lsprof.c.h b/Modules/clinic/_lsprof.c.h index 5fcc7ae02e3b00..dfc003eb54774c 100644 --- a/Modules/clinic/_lsprof.c.h +++ b/Modules/clinic/_lsprof.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_lsprof_Profiler_getstats__doc__, "getstats($self, /)\n" "--\n" @@ -51,4 +45,4 @@ _lsprof_Profiler_getstats(ProfilerObject *self, PyTypeObject *cls, PyObject *con } return _lsprof_Profiler_getstats_impl(self, cls); } -/*[clinic end generated code: output=7425d3481349629a input=a9049054013a1b77]*/ +/*[clinic end generated code: output=0615a53cce828f06 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_lzmamodule.c.h b/Modules/clinic/_lzmamodule.c.h index 286d2b0070659f..d98af74b4aacab 100644 --- a/Modules/clinic/_lzmamodule.c.h +++ b/Modules/clinic/_lzmamodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_lzma_LZMACompressor_compress__doc__, "compress($self, data, /)\n" "--\n" @@ -101,31 +95,8 @@ static PyObject * _lzma_LZMADecompressor_decompress(Decompressor *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(data), &_Py_ID(max_length), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"data", "max_length", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "decompress", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "decompress", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer data = {NULL, NULL}; @@ -200,31 +171,8 @@ static int _lzma_LZMADecompressor___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(format), &_Py_ID(memlimit), &_Py_ID(filters), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"format", "memlimit", "filters", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "LZMADecompressor", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "LZMADecompressor", 0}; PyObject *argsbuf[3]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -338,4 +286,4 @@ _lzma__decode_filter_properties(PyObject *module, PyObject *const *args, Py_ssiz return return_value; } -/*[clinic end generated code: output=da3e83ba97244044 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=bce20bac13b0f252 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_opcode.c.h b/Modules/clinic/_opcode.c.h index 3bd3ba02387435..d7e96a95c084fe 100644 --- a/Modules/clinic/_opcode.c.h +++ b/Modules/clinic/_opcode.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_opcode_stack_effect__doc__, "stack_effect($module, opcode, oparg=None, /, *, jump=None)\n" "--\n" @@ -25,31 +19,8 @@ static PyObject * _opcode_stack_effect(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(jump), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "", "jump", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "stack_effect", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "stack_effect", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; int opcode; @@ -103,4 +74,4 @@ _opcode_get_specialization_stats(PyObject *module, PyObject *Py_UNUSED(ignored)) { return _opcode_get_specialization_stats_impl(module); } -/*[clinic end generated code: output=21e3d53a659c651a input=a9049054013a1b77]*/ +/*[clinic end generated code: output=b904260bf022f953 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_operator.c.h b/Modules/clinic/_operator.c.h index b68e6e0144a586..3b5be7bf2c07ac 100644 --- a/Modules/clinic/_operator.c.h +++ b/Modules/clinic/_operator.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_operator_truth__doc__, "truth($module, a, /)\n" "--\n" @@ -1492,4 +1486,4 @@ _operator__compare_digest(PyObject *module, PyObject *const *args, Py_ssize_t na exit: return return_value; } -/*[clinic end generated code: output=227cbcfed44f736e input=a9049054013a1b77]*/ +/*[clinic end generated code: output=44164c4fbd67e5c5 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_pickle.c.h b/Modules/clinic/_pickle.c.h index e9ff2604719abd..5dc62fe190176c 100644 --- a/Modules/clinic/_pickle.c.h +++ b/Modules/clinic/_pickle.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_pickle_Pickler_clear_memo__doc__, "clear_memo($self, /)\n" "--\n" @@ -112,31 +106,8 @@ static int _pickle_Pickler___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 4 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(file), &_Py_ID(protocol), &_Py_ID(fix_imports), &_Py_ID(buffer_callback), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"file", "protocol", "fix_imports", "buffer_callback", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "Pickler", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "Pickler", 0}; PyObject *argsbuf[4]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -355,31 +326,8 @@ static int _pickle_Unpickler___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 5 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(file), &_Py_ID(fix_imports), &_Py_ID(encoding), &_Py_ID(errors), &_Py_ID(buffers), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"file", "fix_imports", "encoding", "errors", "buffers", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "Unpickler", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "Unpickler", 0}; PyObject *argsbuf[5]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -549,31 +497,8 @@ static PyObject * _pickle_dump(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 5 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(obj), &_Py_ID(file), &_Py_ID(protocol), &_Py_ID(fix_imports), &_Py_ID(buffer_callback), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"obj", "file", "protocol", "fix_imports", "buffer_callback", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "dump", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "dump", 0}; PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; PyObject *obj; @@ -653,31 +578,8 @@ static PyObject * _pickle_dumps(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 4 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(obj), &_Py_ID(protocol), &_Py_ID(fix_imports), &_Py_ID(buffer_callback), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"obj", "protocol", "fix_imports", "buffer_callback", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "dumps", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "dumps", 0}; PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *obj; @@ -761,31 +663,8 @@ static PyObject * _pickle_load(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 5 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(file), &_Py_ID(fix_imports), &_Py_ID(encoding), &_Py_ID(errors), &_Py_ID(buffers), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"file", "fix_imports", "encoding", "errors", "buffers", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "load", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "load", 0}; PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *file; @@ -887,31 +766,8 @@ static PyObject * _pickle_loads(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 4 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(fix_imports), &_Py_ID(encoding), &_Py_ID(errors), &_Py_ID(buffers), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "fix_imports", "encoding", "errors", "buffers", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "loads", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "loads", 0}; PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *data; @@ -980,4 +836,4 @@ _pickle_loads(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec exit: return return_value; } -/*[clinic end generated code: output=3321309c2157ee74 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=1bb1ead3c828e108 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_queuemodule.c.h b/Modules/clinic/_queuemodule.c.h index f86dac3c497d64..b0b00f8199b54a 100644 --- a/Modules/clinic/_queuemodule.c.h +++ b/Modules/clinic/_queuemodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(simplequeue_new__doc__, "SimpleQueue()\n" "--\n" @@ -58,31 +52,8 @@ static PyObject * _queue_SimpleQueue_put(simplequeueobject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(item), &_Py_ID(block), &_Py_ID(timeout), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"item", "block", "timeout", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "put", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "put", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *item; @@ -133,31 +104,8 @@ static PyObject * _queue_SimpleQueue_put_nowait(simplequeueobject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(item), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"item", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "put_nowait", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "put_nowait", 0}; PyObject *argsbuf[1]; PyObject *item; @@ -197,31 +145,8 @@ static PyObject * _queue_SimpleQueue_get(simplequeueobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(block), &_Py_ID(timeout), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"block", "timeout", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "get", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "get", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int block = 1; @@ -332,4 +257,4 @@ _queue_SimpleQueue_qsize(simplequeueobject *self, PyObject *Py_UNUSED(ignored)) exit: return return_value; } -/*[clinic end generated code: output=628e992d38f50aac input=a9049054013a1b77]*/ +/*[clinic end generated code: output=88ec8033aeb7241c input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_randommodule.c.h b/Modules/clinic/_randommodule.c.h index ec8531ce006649..503c1f93ed8143 100644 --- a/Modules/clinic/_randommodule.c.h +++ b/Modules/clinic/_randommodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_random_Random_random__doc__, "random($self, /)\n" "--\n" @@ -115,4 +109,4 @@ _random_Random_getrandbits(RandomObject *self, PyObject *arg) exit: return return_value; } -/*[clinic end generated code: output=bc17406a886824fc input=a9049054013a1b77]*/ +/*[clinic end generated code: output=d144826cde89e605 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_ssl.c.h b/Modules/clinic/_ssl.c.h index 622e321fa1d8b3..67b125f3d76167 100644 --- a/Modules/clinic/_ssl.c.h +++ b/Modules/clinic/_ssl.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_ssl__SSLSocket_do_handshake__doc__, "do_handshake($self, /)\n" "--\n" @@ -354,31 +348,8 @@ static PyObject * _ssl__SSLSocket_get_channel_binding(PySSLSocket *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(cb_type), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"cb_type", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "get_channel_binding", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "get_channel_binding", 0}; PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; const char *cb_type = "tls-unique"; @@ -560,31 +531,8 @@ static PyObject * _ssl__SSLContext_load_cert_chain(PySSLContext *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(certfile), &_Py_ID(keyfile), &_Py_ID(password), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"certfile", "keyfile", "password", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "load_cert_chain", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "load_cert_chain", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *certfile; @@ -631,31 +579,8 @@ static PyObject * _ssl__SSLContext_load_verify_locations(PySSLContext *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(cafile), &_Py_ID(capath), &_Py_ID(cadata), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"cafile", "capath", "cadata", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "load_verify_locations", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "load_verify_locations", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *cafile = Py_None; @@ -715,31 +640,8 @@ static PyObject * _ssl__SSLContext__wrap_socket(PySSLContext *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 5 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(sock), &_Py_ID(server_side), &_Py_ID(server_hostname), &_Py_ID(owner), &_Py_ID(session), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"sock", "server_side", "server_hostname", "owner", "session", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "_wrap_socket", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "_wrap_socket", 0}; PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; PyObject *sock; @@ -807,31 +709,8 @@ static PyObject * _ssl__SSLContext__wrap_bio(PySSLContext *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 6 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(incoming), &_Py_ID(outgoing), &_Py_ID(server_side), &_Py_ID(server_hostname), &_Py_ID(owner), &_Py_ID(session), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"incoming", "outgoing", "server_side", "server_hostname", "owner", "session", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "_wrap_bio", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "_wrap_bio", 0}; PyObject *argsbuf[6]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3; PySSLMemoryBIO *incoming; @@ -974,31 +853,8 @@ static PyObject * _ssl__SSLContext_get_ca_certs(PySSLContext *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(binary_form), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"binary_form", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "get_ca_certs", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "get_ca_certs", 0}; PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int binary_form = 0; @@ -1234,6 +1090,37 @@ _ssl_RAND_bytes(PyObject *module, PyObject *arg) return return_value; } +PyDoc_STRVAR(_ssl_RAND_pseudo_bytes__doc__, +"RAND_pseudo_bytes($module, n, /)\n" +"--\n" +"\n" +"Generate n pseudo-random bytes.\n" +"\n" +"Return a pair (bytes, is_cryptographic). is_cryptographic is True\n" +"if the bytes generated are cryptographically strong."); + +#define _SSL_RAND_PSEUDO_BYTES_METHODDEF \ + {"RAND_pseudo_bytes", (PyCFunction)_ssl_RAND_pseudo_bytes, METH_O, _ssl_RAND_pseudo_bytes__doc__}, + +static PyObject * +_ssl_RAND_pseudo_bytes_impl(PyObject *module, int n); + +static PyObject * +_ssl_RAND_pseudo_bytes(PyObject *module, PyObject *arg) +{ + PyObject *return_value = NULL; + int n; + + n = _PyLong_AsInt(arg); + if (n == -1 && PyErr_Occurred()) { + goto exit; + } + return_value = _ssl_RAND_pseudo_bytes_impl(module, n); + +exit: + return return_value; +} + PyDoc_STRVAR(_ssl_RAND_status__doc__, "RAND_status($module, /)\n" "--\n" @@ -1294,31 +1181,8 @@ static PyObject * _ssl_txt2obj(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(txt), &_Py_ID(name), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"txt", "name", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "txt2obj", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "txt2obj", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; const char *txt; @@ -1407,31 +1271,8 @@ static PyObject * _ssl_enum_certificates(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(store_name), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"store_name", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "enum_certificates", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "enum_certificates", 0}; PyObject *argsbuf[1]; const char *store_name; @@ -1483,31 +1324,8 @@ static PyObject * _ssl_enum_crls(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(store_name), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"store_name", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "enum_crls", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "enum_crls", 0}; PyObject *argsbuf[1]; const char *store_name; @@ -1543,4 +1361,4 @@ _ssl_enum_crls(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje #ifndef _SSL_ENUM_CRLS_METHODDEF #define _SSL_ENUM_CRLS_METHODDEF #endif /* !defined(_SSL_ENUM_CRLS_METHODDEF) */ -/*[clinic end generated code: output=9f477b0c709acb28 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=2a488dd0cbc777df input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_statisticsmodule.c.h b/Modules/clinic/_statisticsmodule.c.h index 4dedadd2939ad6..03543e41af7f5a 100644 --- a/Modules/clinic/_statisticsmodule.c.h +++ b/Modules/clinic/_statisticsmodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_statistics__normal_dist_inv_cdf__doc__, "_normal_dist_inv_cdf($module, p, mu, sigma, /)\n" "--\n" @@ -71,4 +65,4 @@ _statistics__normal_dist_inv_cdf(PyObject *module, PyObject *const *args, Py_ssi exit: return return_value; } -/*[clinic end generated code: output=6899dc752cc6b457 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=b807a8243e7801e6 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_struct.c.h b/Modules/clinic/_struct.c.h index b21d9ff292433b..39b8ccb5ca49b8 100644 --- a/Modules/clinic/_struct.c.h +++ b/Modules/clinic/_struct.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(Struct___init____doc__, "Struct(format)\n" "--\n" @@ -26,31 +20,8 @@ static int Struct___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(format), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"format", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "Struct", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "Struct", 0}; PyObject *argsbuf[1]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -132,31 +103,8 @@ static PyObject * Struct_unpack_from(PyStructObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(buffer), &_Py_ID(offset), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"buffer", "offset", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "unpack_from", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "unpack_from", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer buffer = {NULL, NULL}; @@ -337,31 +285,8 @@ static PyObject * unpack_from(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(buffer), &_Py_ID(offset), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "buffer", "offset", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "unpack_from", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "unpack_from", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; PyStructObject *s_object = NULL; @@ -451,4 +376,4 @@ iter_unpack(PyObject *module, PyObject *const *args, Py_ssize_t nargs) return return_value; } -/*[clinic end generated code: output=eca7df0e75f8919d input=a9049054013a1b77]*/ +/*[clinic end generated code: output=2065c9b007be631c input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_testinternalcapi.c.h b/Modules/clinic/_testinternalcapi.c.h deleted file mode 100644 index 8113fff37997af..00000000000000 --- a/Modules/clinic/_testinternalcapi.c.h +++ /dev/null @@ -1,68 +0,0 @@ -/*[clinic input] -preserve -[clinic start generated code]*/ - -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - -PyDoc_STRVAR(_testinternalcapi_optimize_cfg__doc__, -"optimize_cfg($module, /, instructions, consts)\n" -"--\n" -"\n" -"Apply compiler optimizations to an instruction list."); - -#define _TESTINTERNALCAPI_OPTIMIZE_CFG_METHODDEF \ - {"optimize_cfg", _PyCFunction_CAST(_testinternalcapi_optimize_cfg), METH_FASTCALL|METH_KEYWORDS, _testinternalcapi_optimize_cfg__doc__}, - -static PyObject * -_testinternalcapi_optimize_cfg_impl(PyObject *module, PyObject *instructions, - PyObject *consts); - -static PyObject * -_testinternalcapi_optimize_cfg(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) -{ - PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(instructions), &_Py_ID(consts), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - - static const char * const _keywords[] = {"instructions", "consts", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "optimize_cfg", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE - PyObject *argsbuf[2]; - PyObject *instructions; - PyObject *consts; - - args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf); - if (!args) { - goto exit; - } - instructions = args[0]; - consts = args[1]; - return_value = _testinternalcapi_optimize_cfg_impl(module, instructions, consts); - -exit: - return return_value; -} -/*[clinic end generated code: output=3b1fd713290f68a9 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_testmultiphase.c.h b/Modules/clinic/_testmultiphase.c.h index 42ec7475e5e4be..eabaea635d50dc 100644 --- a/Modules/clinic/_testmultiphase.c.h +++ b/Modules/clinic/_testmultiphase.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_testmultiphase_StateAccessType_get_defining_module__doc__, "get_defining_module($self, /)\n" "--\n" @@ -79,31 +73,8 @@ static PyObject * _testmultiphase_StateAccessType_increment_count_clinic(StateAccessTypeObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(n), &_Py_ID(twice), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"n", "twice", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "increment_count_clinic", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "increment_count_clinic", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int n = 1; @@ -162,4 +133,4 @@ _testmultiphase_StateAccessType_get_count(StateAccessTypeObject *self, PyTypeObj } return _testmultiphase_StateAccessType_get_count_impl(self, cls); } -/*[clinic end generated code: output=52ea97ab2f03bb6d input=a9049054013a1b77]*/ +/*[clinic end generated code: output=48739d81c3834078 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_tkinter.c.h b/Modules/clinic/_tkinter.c.h index a251202f9bba2c..9103565ead7027 100644 --- a/Modules/clinic/_tkinter.c.h +++ b/Modules/clinic/_tkinter.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_tkinter_tkapp_eval__doc__, "eval($self, script, /)\n" "--\n" @@ -865,4 +859,4 @@ _tkinter_getbusywaitinterval(PyObject *module, PyObject *Py_UNUSED(ignored)) #ifndef _TKINTER_TKAPP_DELETEFILEHANDLER_METHODDEF #define _TKINTER_TKAPP_DELETEFILEHANDLER_METHODDEF #endif /* !defined(_TKINTER_TKAPP_DELETEFILEHANDLER_METHODDEF) */ -/*[clinic end generated code: output=d022835d05fc8608 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=b0667ac928eb0c28 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_tracemalloc.c.h b/Modules/clinic/_tracemalloc.c.h index a89cd9aabca8d6..20c4d5d81b9e9b 100644 --- a/Modules/clinic/_tracemalloc.c.h +++ b/Modules/clinic/_tracemalloc.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_tracemalloc_is_tracing__doc__, "is_tracing($module, /)\n" "--\n" @@ -218,4 +212,4 @@ _tracemalloc_reset_peak(PyObject *module, PyObject *Py_UNUSED(ignored)) { return _tracemalloc_reset_peak_impl(module); } -/*[clinic end generated code: output=44e3f8553aae2535 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=2ae4fe05f1a340c9 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_typingmodule.c.h b/Modules/clinic/_typingmodule.c.h index f980aa0d0844da..ea415e67153ed8 100644 --- a/Modules/clinic/_typingmodule.c.h +++ b/Modules/clinic/_typingmodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_typing__idfunc__doc__, "_idfunc($module, x, /)\n" "--\n" @@ -15,4 +9,4 @@ PyDoc_STRVAR(_typing__idfunc__doc__, #define _TYPING__IDFUNC_METHODDEF \ {"_idfunc", (PyCFunction)_typing__idfunc, METH_O, _typing__idfunc__doc__}, -/*[clinic end generated code: output=97457fda45072c7d input=a9049054013a1b77]*/ +/*[clinic end generated code: output=e7ea2a3cb7ab301a input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_weakref.c.h b/Modules/clinic/_weakref.c.h index 48feb042cac039..541cba75e6813c 100644 --- a/Modules/clinic/_weakref.c.h +++ b/Modules/clinic/_weakref.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_weakref_getweakrefcount__doc__, "getweakrefcount($module, object, /)\n" "--\n" @@ -116,4 +110,4 @@ _weakref_proxy(PyObject *module, PyObject *const *args, Py_ssize_t nargs) exit: return return_value; } -/*[clinic end generated code: output=28265e89d583273d input=a9049054013a1b77]*/ +/*[clinic end generated code: output=f4be6b8177fbceb8 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_winapi.c.h b/Modules/clinic/_winapi.c.h index 53d5cccdd7db37..4d89888af9054a 100644 --- a/Modules/clinic/_winapi.c.h +++ b/Modules/clinic/_winapi.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_winapi_Overlapped_GetOverlappedResult__doc__, "GetOverlappedResult($self, wait, /)\n" "--\n" @@ -112,31 +106,8 @@ static PyObject * _winapi_ConnectNamedPipe(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(handle), &_Py_ID(overlapped), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"handle", "overlapped", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .format = "" F_HANDLE "|i:ConnectNamedPipe", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {"" F_HANDLE "|i:ConnectNamedPipe", _keywords, 0}; HANDLE handle; int use_overlapped = 0; @@ -849,66 +820,6 @@ _winapi_PeekNamedPipe(PyObject *module, PyObject *const *args, Py_ssize_t nargs) return return_value; } -PyDoc_STRVAR(_winapi_LCMapStringEx__doc__, -"LCMapStringEx($module, /, locale, flags, src)\n" -"--\n" -"\n"); - -#define _WINAPI_LCMAPSTRINGEX_METHODDEF \ - {"LCMapStringEx", _PyCFunction_CAST(_winapi_LCMapStringEx), METH_FASTCALL|METH_KEYWORDS, _winapi_LCMapStringEx__doc__}, - -static PyObject * -_winapi_LCMapStringEx_impl(PyObject *module, LPCWSTR locale, DWORD flags, - LPCWSTR src); - -static PyObject * -_winapi_LCMapStringEx(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) -{ - PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(locale), &_Py_ID(flags), &_Py_ID(src), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - - static const char * const _keywords[] = {"locale", "flags", "src", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .format = "O&kO&:LCMapStringEx", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE - LPCWSTR locale; - DWORD flags; - LPCWSTR src; - - if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser, - _PyUnicode_WideCharString_Converter, &locale, &flags, _PyUnicode_WideCharString_Converter, &src)) { - goto exit; - } - return_value = _winapi_LCMapStringEx_impl(module, locale, flags, src); - -exit: - /* Cleanup for locale */ - PyMem_Free((void *)locale); - /* Cleanup for src */ - PyMem_Free((void *)src); - - return return_value; -} - PyDoc_STRVAR(_winapi_ReadFile__doc__, "ReadFile($module, /, handle, size, overlapped=False)\n" "--\n" @@ -925,31 +836,8 @@ static PyObject * _winapi_ReadFile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(handle), &_Py_ID(size), &_Py_ID(overlapped), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"handle", "size", "overlapped", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .format = "" F_HANDLE "k|i:ReadFile", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {"" F_HANDLE "k|i:ReadFile", _keywords, 0}; HANDLE handle; DWORD size; int use_overlapped = 0; @@ -1173,31 +1061,8 @@ static PyObject * _winapi_WriteFile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(handle), &_Py_ID(buffer), &_Py_ID(overlapped), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"handle", "buffer", "overlapped", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .format = "" F_HANDLE "O|i:WriteFile", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {"" F_HANDLE "O|i:WriteFile", _keywords, 0}; HANDLE handle; PyObject *buffer; int use_overlapped = 0; @@ -1245,31 +1110,8 @@ static PyObject * _winapi_GetFileType(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(handle), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"handle", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .format = "" F_HANDLE ":GetFileType", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {"" F_HANDLE ":GetFileType", _keywords, 0}; HANDLE handle; DWORD _return_value; @@ -1307,31 +1149,8 @@ static PyObject * _winapi__mimetypes_read_windows_registry(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(on_type_read), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"on_type_read", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "_mimetypes_read_windows_registry", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "_mimetypes_read_windows_registry", 0}; PyObject *argsbuf[1]; PyObject *on_type_read; @@ -1345,4 +1164,4 @@ _winapi__mimetypes_read_windows_registry(PyObject *module, PyObject *const *args exit: return return_value; } -/*[clinic end generated code: output=3e51e0b2ea3fea5a input=a9049054013a1b77]*/ +/*[clinic end generated code: output=b007dde2e7f2fff8 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/arraymodule.c.h b/Modules/clinic/arraymodule.c.h index e68c3920072dbb..6358ba2f81fa38 100644 --- a/Modules/clinic/arraymodule.c.h +++ b/Modules/clinic/arraymodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(array_array___copy____doc__, "__copy__($self, /)\n" "--\n" @@ -160,19 +154,8 @@ static PyObject * array_array_extend(arrayobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) - #else - # define KWTUPLE NULL - #endif - static const char * const _keywords[] = {"", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "extend", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "extend", 0}; PyObject *argsbuf[1]; PyObject *bb; @@ -314,19 +297,8 @@ static PyObject * array_array_fromfile(arrayobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) - #else - # define KWTUPLE NULL - #endif - static const char * const _keywords[] = {"", "", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "fromfile", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "fromfile", 0}; PyObject *argsbuf[2]; PyObject *f; Py_ssize_t n; @@ -370,19 +342,8 @@ static PyObject * array_array_tofile(arrayobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) - #else - # define KWTUPLE NULL - #endif - static const char * const _keywords[] = {"", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "tofile", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "tofile", 0}; PyObject *argsbuf[1]; PyObject *f; @@ -623,19 +584,8 @@ static PyObject * array_array___reduce_ex__(arrayobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) - #else - # define KWTUPLE NULL - #endif - static const char * const _keywords[] = {"", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "__reduce_ex__", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "__reduce_ex__", 0}; PyObject *argsbuf[1]; PyObject *value; @@ -680,4 +630,4 @@ PyDoc_STRVAR(array_arrayiterator___setstate____doc__, #define ARRAY_ARRAYITERATOR___SETSTATE___METHODDEF \ {"__setstate__", (PyCFunction)array_arrayiterator___setstate__, METH_O, array_arrayiterator___setstate____doc__}, -/*[clinic end generated code: output=69bc1451f7bda234 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=85a5fec90d9615b9 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/audioop.c.h b/Modules/clinic/audioop.c.h index 1a7ccf8b8284cb..43103855fa1a2f 100644 --- a/Modules/clinic/audioop.c.h +++ b/Modules/clinic/audioop.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(audioop_getsample__doc__, "getsample($module, fragment, width, index, /)\n" "--\n" @@ -1315,4 +1309,4 @@ audioop_adpcm2lin(PyObject *module, PyObject *const *args, Py_ssize_t nargs) return return_value; } -/*[clinic end generated code: output=9a7e36f1179f0223 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=a581c3893ef8ad75 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/binascii.c.h b/Modules/clinic/binascii.c.h index 23ebdff2108258..2c766eddee8dcc 100644 --- a/Modules/clinic/binascii.c.h +++ b/Modules/clinic/binascii.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(binascii_a2b_uu__doc__, "a2b_uu($module, data, /)\n" "--\n" @@ -55,31 +49,8 @@ static PyObject * binascii_b2a_uu(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(backtick), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "backtick", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "b2a_uu", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "b2a_uu", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer data = {NULL, NULL}; @@ -135,31 +106,8 @@ static PyObject * binascii_a2b_base64(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(strict_mode), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "strict_mode", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "a2b_base64", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "a2b_base64", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer data = {NULL, NULL}; @@ -206,31 +154,8 @@ static PyObject * binascii_b2a_base64(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(newline), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "newline", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "b2a_base64", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "b2a_base64", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer data = {NULL, NULL}; @@ -397,31 +322,8 @@ static PyObject * binascii_b2a_hex(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(data), &_Py_ID(sep), &_Py_ID(bytes_per_sep), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"data", "sep", "bytes_per_sep", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "b2a_hex", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "b2a_hex", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer data = {NULL, NULL}; @@ -490,31 +392,8 @@ static PyObject * binascii_hexlify(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(data), &_Py_ID(sep), &_Py_ID(bytes_per_sep), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"data", "sep", "bytes_per_sep", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "hexlify", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "hexlify", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer data = {NULL, NULL}; @@ -640,31 +519,8 @@ static PyObject * binascii_a2b_qp(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(data), &_Py_ID(header), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"data", "header", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "a2b_qp", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "a2b_qp", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer data = {NULL, NULL}; @@ -716,31 +572,8 @@ static PyObject * binascii_b2a_qp(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 4 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(data), &_Py_ID(quotetabs), &_Py_ID(istext), &_Py_ID(header), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"data", "quotetabs", "istext", "header", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "b2a_qp", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "b2a_qp", 0}; PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer data = {NULL, NULL}; @@ -795,4 +628,4 @@ binascii_b2a_qp(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj return return_value; } -/*[clinic end generated code: output=a266ba13c374aefa input=a9049054013a1b77]*/ +/*[clinic end generated code: output=ba9ed7b810b8762d input=a9049054013a1b77]*/ diff --git a/Modules/clinic/cmathmodule.c.h b/Modules/clinic/cmathmodule.c.h index b1da9452c61db8..ab556922c029fb 100644 --- a/Modules/clinic/cmathmodule.c.h +++ b/Modules/clinic/cmathmodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(cmath_acos__doc__, "acos($module, z, /)\n" "--\n" @@ -899,31 +893,8 @@ static PyObject * cmath_isclose(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 4 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(a), &_Py_ID(b), &_Py_ID(rel_tol), &_Py_ID(abs_tol), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"a", "b", "rel_tol", "abs_tol", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "isclose", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "isclose", 0}; PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; Py_complex a; @@ -982,4 +953,4 @@ cmath_isclose(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec exit: return return_value; } -/*[clinic end generated code: output=0146c656e67f5d5f input=a9049054013a1b77]*/ +/*[clinic end generated code: output=b8e445fcd2a3da65 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/fcntlmodule.c.h b/Modules/clinic/fcntlmodule.c.h index 20eb50b0e76b38..c41f088ff1528b 100644 --- a/Modules/clinic/fcntlmodule.c.h +++ b/Modules/clinic/fcntlmodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(fcntl_fcntl__doc__, "fcntl($module, fd, cmd, arg=0, /)\n" "--\n" @@ -249,4 +243,4 @@ fcntl_lockf(PyObject *module, PyObject *const *args, Py_ssize_t nargs) exit: return return_value; } -/*[clinic end generated code: output=1db859412172dd53 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=b8cb14ab35de4c6a input=a9049054013a1b77]*/ diff --git a/Modules/clinic/gcmodule.c.h b/Modules/clinic/gcmodule.c.h index 2d18e2ee0978e0..5391b8be42db98 100644 --- a/Modules/clinic/gcmodule.c.h +++ b/Modules/clinic/gcmodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(gc_enable__doc__, "enable($module, /)\n" "--\n" @@ -94,31 +88,8 @@ static PyObject * gc_collect(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(generation), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"generation", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "collect", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "collect", 0}; PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int generation = NUM_GENERATIONS - 1; @@ -271,31 +242,8 @@ static PyObject * gc_get_objects(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(generation), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"generation", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "get_objects", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "get_objects", 0}; PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; Py_ssize_t generation = -1; @@ -424,4 +372,4 @@ gc_get_freeze_count(PyObject *module, PyObject *Py_UNUSED(ignored)) exit: return return_value; } -/*[clinic end generated code: output=66432ac0e17fd04f input=a9049054013a1b77]*/ +/*[clinic end generated code: output=71f7136d6e3f2323 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/grpmodule.c.h b/Modules/clinic/grpmodule.c.h index 4914bc9abd67b5..3dd35e7e6ba072 100644 --- a/Modules/clinic/grpmodule.c.h +++ b/Modules/clinic/grpmodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(grp_getgrgid__doc__, "getgrgid($module, /, id)\n" "--\n" @@ -26,31 +20,8 @@ static PyObject * grp_getgrgid(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(id), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"id", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "getgrgid", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "getgrgid", 0}; PyObject *argsbuf[1]; PyObject *id; @@ -83,31 +54,8 @@ static PyObject * grp_getgrnam(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(name), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"name", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "getgrnam", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "getgrnam", 0}; PyObject *argsbuf[1]; PyObject *name; @@ -149,4 +97,4 @@ grp_getgrall(PyObject *module, PyObject *Py_UNUSED(ignored)) { return grp_getgrall_impl(module); } -/*[clinic end generated code: output=0916fdbcdeaf5d7d input=a9049054013a1b77]*/ +/*[clinic end generated code: output=ba680465f71ed779 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/itertoolsmodule.c.h b/Modules/clinic/itertoolsmodule.c.h index 8806606d85befe..81608ccc089be9 100644 --- a/Modules/clinic/itertoolsmodule.c.h +++ b/Modules/clinic/itertoolsmodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(pairwise_new__doc__, "pairwise(iterable, /)\n" "--\n" @@ -60,31 +54,8 @@ static PyObject * itertools_groupby(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(iterable), &_Py_ID(key), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"iterable", "key", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "groupby", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "groupby", 0}; PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -406,31 +377,8 @@ static PyObject * itertools_combinations(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(iterable), &_Py_ID(r), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"iterable", "r", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "combinations", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "combinations", 0}; PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -477,31 +425,8 @@ static PyObject * itertools_combinations_with_replacement(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(iterable), &_Py_ID(r), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"iterable", "r", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "combinations_with_replacement", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "combinations_with_replacement", 0}; PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -547,31 +472,8 @@ static PyObject * itertools_permutations(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(iterable), &_Py_ID(r), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"iterable", "r", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "permutations", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "permutations", 0}; PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -609,31 +511,8 @@ static PyObject * itertools_accumulate(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(iterable), &_Py_ID(func), &_Py_ID(initial), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"iterable", "func", "initial", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "accumulate", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "accumulate", 0}; PyObject *argsbuf[3]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -684,31 +563,8 @@ static PyObject * itertools_compress(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(data), &_Py_ID(selectors), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"data", "selectors", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "compress", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "compress", 0}; PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -782,31 +638,8 @@ static PyObject * itertools_count(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(start), &_Py_ID(step), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"start", "step", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "count", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "count", 0}; PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -834,4 +667,4 @@ itertools_count(PyTypeObject *type, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=b1056d63f68a9059 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=659251a811ff89ed input=a9049054013a1b77]*/ diff --git a/Modules/clinic/mathmodule.c.h b/Modules/clinic/mathmodule.c.h index 9fac1037e52528..efabbf9714237c 100644 --- a/Modules/clinic/mathmodule.c.h +++ b/Modules/clinic/mathmodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(math_ceil__doc__, "ceil($module, x, /)\n" "--\n" @@ -584,31 +578,8 @@ static PyObject * math_isclose(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 4 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(a), &_Py_ID(b), &_Py_ID(rel_tol), &_Py_ID(abs_tol), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"a", "b", "rel_tol", "abs_tol", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "isclose", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "isclose", 0}; PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; double a; @@ -702,31 +673,8 @@ static PyObject * math_prod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(start), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "start", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "prod", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "prod", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *iterable; @@ -917,4 +865,4 @@ math_ulp(PyObject *module, PyObject *arg) exit: return return_value; } -/*[clinic end generated code: output=c2c2f42452d63734 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=965f99dabaa72165 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/md5module.c.h b/Modules/clinic/md5module.c.h index b4602104f18042..999406ba13518c 100644 --- a/Modules/clinic/md5module.c.h +++ b/Modules/clinic/md5module.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(MD5Type_copy__doc__, "copy($self, /)\n" "--\n" @@ -91,31 +85,8 @@ static PyObject * _md5_md5(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "md5", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "md5", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *string = NULL; @@ -148,4 +119,4 @@ _md5_md5(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw exit: return return_value; } -/*[clinic end generated code: output=b4924c9905cc9f34 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=e5dac1237beb2788 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/overlapped.c.h b/Modules/clinic/overlapped.c.h index cc0c74cc1d2946..cac44d0a5764ce 100644 --- a/Modules/clinic/overlapped.c.h +++ b/Modules/clinic/overlapped.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_overlapped_CreateIoCompletionPort__doc__, "CreateIoCompletionPort($module, handle, port, key, concurrency, /)\n" "--\n" @@ -32,22 +26,8 @@ _overlapped_CreateIoCompletionPort(PyObject *module, PyObject *const *args, Py_s ULONG_PTR CompletionKey; DWORD NumberOfConcurrentThreads; - if (!_PyArg_CheckPositional("CreateIoCompletionPort", nargs, 4, 4)) { - goto exit; - } - FileHandle = PyLong_AsVoidPtr(args[0]); - if (!FileHandle && PyErr_Occurred()) { - goto exit; - } - ExistingCompletionPort = PyLong_AsVoidPtr(args[1]); - if (!ExistingCompletionPort && PyErr_Occurred()) { - goto exit; - } - CompletionKey = (uintptr_t)PyLong_AsVoidPtr(args[2]); - if (!CompletionKey && PyErr_Occurred()) { - goto exit; - } - if (!_PyLong_UnsignedLong_Converter(args[3], &NumberOfConcurrentThreads)) { + if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE""F_HANDLE""F_ULONG_PTR"k:CreateIoCompletionPort", + &FileHandle, &ExistingCompletionPort, &CompletionKey, &NumberOfConcurrentThreads)) { goto exit; } return_value = _overlapped_CreateIoCompletionPort_impl(module, FileHandle, ExistingCompletionPort, CompletionKey, NumberOfConcurrentThreads); @@ -79,14 +59,8 @@ _overlapped_GetQueuedCompletionStatus(PyObject *module, PyObject *const *args, P HANDLE CompletionPort; DWORD Milliseconds; - if (!_PyArg_CheckPositional("GetQueuedCompletionStatus", nargs, 2, 2)) { - goto exit; - } - CompletionPort = PyLong_AsVoidPtr(args[0]); - if (!CompletionPort && PyErr_Occurred()) { - goto exit; - } - if (!_PyLong_UnsignedLong_Converter(args[1], &Milliseconds)) { + if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE"k:GetQueuedCompletionStatus", + &CompletionPort, &Milliseconds)) { goto exit; } return_value = _overlapped_GetQueuedCompletionStatus_impl(module, CompletionPort, Milliseconds); @@ -120,22 +94,8 @@ _overlapped_PostQueuedCompletionStatus(PyObject *module, PyObject *const *args, ULONG_PTR CompletionKey; OVERLAPPED *Overlapped; - if (!_PyArg_CheckPositional("PostQueuedCompletionStatus", nargs, 4, 4)) { - goto exit; - } - CompletionPort = PyLong_AsVoidPtr(args[0]); - if (!CompletionPort && PyErr_Occurred()) { - goto exit; - } - if (!_PyLong_UnsignedLong_Converter(args[1], &NumberOfBytes)) { - goto exit; - } - CompletionKey = (uintptr_t)PyLong_AsVoidPtr(args[2]); - if (!CompletionKey && PyErr_Occurred()) { - goto exit; - } - Overlapped = PyLong_AsVoidPtr(args[3]); - if (!Overlapped && PyErr_Occurred()) { + if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE"k"F_ULONG_PTR""F_POINTER":PostQueuedCompletionStatus", + &CompletionPort, &NumberOfBytes, &CompletionKey, &Overlapped)) { goto exit; } return_value = _overlapped_PostQueuedCompletionStatus_impl(module, CompletionPort, NumberOfBytes, CompletionKey, Overlapped); @@ -169,22 +129,8 @@ _overlapped_RegisterWaitWithQueue(PyObject *module, PyObject *const *args, Py_ss OVERLAPPED *Overlapped; DWORD Milliseconds; - if (!_PyArg_CheckPositional("RegisterWaitWithQueue", nargs, 4, 4)) { - goto exit; - } - Object = PyLong_AsVoidPtr(args[0]); - if (!Object && PyErr_Occurred()) { - goto exit; - } - CompletionPort = PyLong_AsVoidPtr(args[1]); - if (!CompletionPort && PyErr_Occurred()) { - goto exit; - } - Overlapped = PyLong_AsVoidPtr(args[2]); - if (!Overlapped && PyErr_Occurred()) { - goto exit; - } - if (!_PyLong_UnsignedLong_Converter(args[3], &Milliseconds)) { + if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE""F_HANDLE""F_POINTER"k:RegisterWaitWithQueue", + &Object, &CompletionPort, &Overlapped, &Milliseconds)) { goto exit; } return_value = _overlapped_RegisterWaitWithQueue_impl(module, Object, CompletionPort, Overlapped, Milliseconds); @@ -211,8 +157,7 @@ _overlapped_UnregisterWait(PyObject *module, PyObject *arg) PyObject *return_value = NULL; HANDLE WaitHandle; - WaitHandle = PyLong_AsVoidPtr(arg); - if (!WaitHandle && PyErr_Occurred()) { + if (!PyArg_Parse(arg, ""F_HANDLE":UnregisterWait", &WaitHandle)) { goto exit; } return_value = _overlapped_UnregisterWait_impl(module, WaitHandle); @@ -241,15 +186,8 @@ _overlapped_UnregisterWaitEx(PyObject *module, PyObject *const *args, Py_ssize_t HANDLE WaitHandle; HANDLE Event; - if (!_PyArg_CheckPositional("UnregisterWaitEx", nargs, 2, 2)) { - goto exit; - } - WaitHandle = PyLong_AsVoidPtr(args[0]); - if (!WaitHandle && PyErr_Occurred()) { - goto exit; - } - Event = PyLong_AsVoidPtr(args[1]); - if (!Event && PyErr_Occurred()) { + if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE""F_HANDLE":UnregisterWaitEx", + &WaitHandle, &Event)) { goto exit; } return_value = _overlapped_UnregisterWaitEx_impl(module, WaitHandle, Event); @@ -284,29 +222,8 @@ _overlapped_CreateEvent(PyObject *module, PyObject *const *args, Py_ssize_t narg BOOL InitialState; const Py_UNICODE *Name; - if (!_PyArg_CheckPositional("CreateEvent", nargs, 4, 4)) { - goto exit; - } - EventAttributes = args[0]; - ManualReset = _PyLong_AsInt(args[1]); - if (ManualReset == -1 && PyErr_Occurred()) { - goto exit; - } - InitialState = _PyLong_AsInt(args[2]); - if (InitialState == -1 && PyErr_Occurred()) { - goto exit; - } - if (args[3] == Py_None) { - Name = NULL; - } - else if (PyUnicode_Check(args[3])) { - Name = PyUnicode_AsWideCharString(args[3], NULL); - if (Name == NULL) { - goto exit; - } - } - else { - _PyArg_BadArgument("CreateEvent", "argument 4", "str or None", args[3]); + if (!_PyArg_ParseStack(args, nargs, "OiiO&:CreateEvent", + &EventAttributes, &ManualReset, &InitialState, _PyUnicode_WideCharString_Opt_Converter, &Name)) { goto exit; } return_value = _overlapped_CreateEvent_impl(module, EventAttributes, ManualReset, InitialState, Name); @@ -336,8 +253,7 @@ _overlapped_SetEvent(PyObject *module, PyObject *arg) PyObject *return_value = NULL; HANDLE Handle; - Handle = PyLong_AsVoidPtr(arg); - if (!Handle && PyErr_Occurred()) { + if (!PyArg_Parse(arg, ""F_HANDLE":SetEvent", &Handle)) { goto exit; } return_value = _overlapped_SetEvent_impl(module, Handle); @@ -364,8 +280,7 @@ _overlapped_ResetEvent(PyObject *module, PyObject *arg) PyObject *return_value = NULL; HANDLE Handle; - Handle = PyLong_AsVoidPtr(arg); - if (!Handle && PyErr_Occurred()) { + if (!PyArg_Parse(arg, ""F_HANDLE":ResetEvent", &Handle)) { goto exit; } return_value = _overlapped_ResetEvent_impl(module, Handle); @@ -395,15 +310,8 @@ _overlapped_BindLocal(PyObject *module, PyObject *const *args, Py_ssize_t nargs) HANDLE Socket; int Family; - if (!_PyArg_CheckPositional("BindLocal", nargs, 2, 2)) { - goto exit; - } - Socket = PyLong_AsVoidPtr(args[0]); - if (!Socket && PyErr_Occurred()) { - goto exit; - } - Family = _PyLong_AsInt(args[1]); - if (Family == -1 && PyErr_Occurred()) { + if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE"i:BindLocal", + &Socket, &Family)) { goto exit; } return_value = _overlapped_BindLocal_impl(module, Socket, Family); @@ -430,7 +338,7 @@ _overlapped_FormatMessage(PyObject *module, PyObject *arg) PyObject *return_value = NULL; DWORD code; - if (!_PyLong_UnsignedLong_Converter(arg, &code)) { + if (!PyArg_Parse(arg, "k:FormatMessage", &code)) { goto exit; } return_value = _overlapped_FormatMessage_impl(module, code); @@ -452,49 +360,14 @@ static PyObject * _overlapped_Overlapped(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(event), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"event", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "Overlapped", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE - PyObject *argsbuf[1]; - PyObject * const *fastargs; - Py_ssize_t nargs = PyTuple_GET_SIZE(args); - Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0; + static _PyArg_Parser _parser = {"|"F_HANDLE":Overlapped", _keywords, 0}; HANDLE event = INVALID_HANDLE_VALUE; - fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 1, 0, argsbuf); - if (!fastargs) { + if (!_PyArg_ParseTupleAndKeywordsFast(args, kwargs, &_parser, + &event)) { goto exit; } - if (!noptargs) { - goto skip_optional_pos; - } - event = PyLong_AsVoidPtr(fastargs[0]); - if (!event && PyErr_Occurred()) { - goto exit; - } -skip_optional_pos: return_value = _overlapped_Overlapped_impl(type, event); exit: @@ -540,17 +413,10 @@ _overlapped_Overlapped_getresult(OverlappedObject *self, PyObject *const *args, PyObject *return_value = NULL; BOOL wait = FALSE; - if (!_PyArg_CheckPositional("getresult", nargs, 0, 1)) { + if (!_PyArg_ParseStack(args, nargs, "|i:getresult", + &wait)) { goto exit; } - if (nargs < 1) { - goto skip_optional; - } - wait = _PyLong_AsInt(args[0]); - if (wait == -1 && PyErr_Occurred()) { - goto exit; - } -skip_optional: return_value = _overlapped_Overlapped_getresult_impl(self, wait); exit: @@ -577,14 +443,8 @@ _overlapped_Overlapped_ReadFile(OverlappedObject *self, PyObject *const *args, P HANDLE handle; DWORD size; - if (!_PyArg_CheckPositional("ReadFile", nargs, 2, 2)) { - goto exit; - } - handle = PyLong_AsVoidPtr(args[0]); - if (!handle && PyErr_Occurred()) { - goto exit; - } - if (!_PyLong_UnsignedLong_Converter(args[1], &size)) { + if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE"k:ReadFile", + &handle, &size)) { goto exit; } return_value = _overlapped_Overlapped_ReadFile_impl(self, handle, size); @@ -613,18 +473,8 @@ _overlapped_Overlapped_ReadFileInto(OverlappedObject *self, PyObject *const *arg HANDLE handle; Py_buffer bufobj = {NULL, NULL}; - if (!_PyArg_CheckPositional("ReadFileInto", nargs, 2, 2)) { - goto exit; - } - handle = PyLong_AsVoidPtr(args[0]); - if (!handle && PyErr_Occurred()) { - goto exit; - } - if (PyObject_GetBuffer(args[1], &bufobj, PyBUF_SIMPLE) != 0) { - goto exit; - } - if (!PyBuffer_IsContiguous(&bufobj, 'C')) { - _PyArg_BadArgument("ReadFileInto", "argument 2", "contiguous buffer", args[1]); + if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE"y*:ReadFileInto", + &handle, &bufobj)) { goto exit; } return_value = _overlapped_Overlapped_ReadFileInto_impl(self, handle, &bufobj); @@ -659,23 +509,10 @@ _overlapped_Overlapped_WSARecv(OverlappedObject *self, PyObject *const *args, Py DWORD size; DWORD flags = 0; - if (!_PyArg_CheckPositional("WSARecv", nargs, 2, 3)) { - goto exit; - } - handle = PyLong_AsVoidPtr(args[0]); - if (!handle && PyErr_Occurred()) { - goto exit; - } - if (!_PyLong_UnsignedLong_Converter(args[1], &size)) { + if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE"k|k:WSARecv", + &handle, &size, &flags)) { goto exit; } - if (nargs < 3) { - goto skip_optional; - } - if (!_PyLong_UnsignedLong_Converter(args[2], &flags)) { - goto exit; - } -skip_optional: return_value = _overlapped_Overlapped_WSARecv_impl(self, handle, size, flags); exit: @@ -704,21 +541,8 @@ _overlapped_Overlapped_WSARecvInto(OverlappedObject *self, PyObject *const *args Py_buffer bufobj = {NULL, NULL}; DWORD flags; - if (!_PyArg_CheckPositional("WSARecvInto", nargs, 3, 3)) { - goto exit; - } - handle = PyLong_AsVoidPtr(args[0]); - if (!handle && PyErr_Occurred()) { - goto exit; - } - if (PyObject_GetBuffer(args[1], &bufobj, PyBUF_SIMPLE) != 0) { - goto exit; - } - if (!PyBuffer_IsContiguous(&bufobj, 'C')) { - _PyArg_BadArgument("WSARecvInto", "argument 2", "contiguous buffer", args[1]); - goto exit; - } - if (!_PyLong_UnsignedLong_Converter(args[2], &flags)) { + if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE"y*k:WSARecvInto", + &handle, &bufobj, &flags)) { goto exit; } return_value = _overlapped_Overlapped_WSARecvInto_impl(self, handle, &bufobj, flags); @@ -752,18 +576,8 @@ _overlapped_Overlapped_WriteFile(OverlappedObject *self, PyObject *const *args, HANDLE handle; Py_buffer bufobj = {NULL, NULL}; - if (!_PyArg_CheckPositional("WriteFile", nargs, 2, 2)) { - goto exit; - } - handle = PyLong_AsVoidPtr(args[0]); - if (!handle && PyErr_Occurred()) { - goto exit; - } - if (PyObject_GetBuffer(args[1], &bufobj, PyBUF_SIMPLE) != 0) { - goto exit; - } - if (!PyBuffer_IsContiguous(&bufobj, 'C')) { - _PyArg_BadArgument("WriteFile", "argument 2", "contiguous buffer", args[1]); + if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE"y*:WriteFile", + &handle, &bufobj)) { goto exit; } return_value = _overlapped_Overlapped_WriteFile_impl(self, handle, &bufobj); @@ -798,21 +612,8 @@ _overlapped_Overlapped_WSASend(OverlappedObject *self, PyObject *const *args, Py Py_buffer bufobj = {NULL, NULL}; DWORD flags; - if (!_PyArg_CheckPositional("WSASend", nargs, 3, 3)) { - goto exit; - } - handle = PyLong_AsVoidPtr(args[0]); - if (!handle && PyErr_Occurred()) { - goto exit; - } - if (PyObject_GetBuffer(args[1], &bufobj, PyBUF_SIMPLE) != 0) { - goto exit; - } - if (!PyBuffer_IsContiguous(&bufobj, 'C')) { - _PyArg_BadArgument("WSASend", "argument 2", "contiguous buffer", args[1]); - goto exit; - } - if (!_PyLong_UnsignedLong_Converter(args[2], &flags)) { + if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE"y*k:WSASend", + &handle, &bufobj, &flags)) { goto exit; } return_value = _overlapped_Overlapped_WSASend_impl(self, handle, &bufobj, flags); @@ -847,15 +648,8 @@ _overlapped_Overlapped_AcceptEx(OverlappedObject *self, PyObject *const *args, P HANDLE ListenSocket; HANDLE AcceptSocket; - if (!_PyArg_CheckPositional("AcceptEx", nargs, 2, 2)) { - goto exit; - } - ListenSocket = PyLong_AsVoidPtr(args[0]); - if (!ListenSocket && PyErr_Occurred()) { - goto exit; - } - AcceptSocket = PyLong_AsVoidPtr(args[1]); - if (!AcceptSocket && PyErr_Occurred()) { + if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE""F_HANDLE":AcceptEx", + &ListenSocket, &AcceptSocket)) { goto exit; } return_value = _overlapped_Overlapped_AcceptEx_impl(self, ListenSocket, AcceptSocket); @@ -887,18 +681,10 @@ _overlapped_Overlapped_ConnectEx(OverlappedObject *self, PyObject *const *args, HANDLE ConnectSocket; PyObject *AddressObj; - if (!_PyArg_CheckPositional("ConnectEx", nargs, 2, 2)) { + if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE"O!:ConnectEx", + &ConnectSocket, &PyTuple_Type, &AddressObj)) { goto exit; } - ConnectSocket = PyLong_AsVoidPtr(args[0]); - if (!ConnectSocket && PyErr_Occurred()) { - goto exit; - } - if (!PyTuple_Check(args[1])) { - _PyArg_BadArgument("ConnectEx", "argument 2", "tuple", args[1]); - goto exit; - } - AddressObj = args[1]; return_value = _overlapped_Overlapped_ConnectEx_impl(self, ConnectSocket, AddressObj); exit: @@ -924,14 +710,8 @@ _overlapped_Overlapped_DisconnectEx(OverlappedObject *self, PyObject *const *arg HANDLE Socket; DWORD flags; - if (!_PyArg_CheckPositional("DisconnectEx", nargs, 2, 2)) { - goto exit; - } - Socket = PyLong_AsVoidPtr(args[0]); - if (!Socket && PyErr_Occurred()) { - goto exit; - } - if (!_PyLong_UnsignedLong_Converter(args[1], &flags)) { + if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE"k:DisconnectEx", + &Socket, &flags)) { goto exit; } return_value = _overlapped_Overlapped_DisconnectEx_impl(self, Socket, flags); @@ -969,30 +749,8 @@ _overlapped_Overlapped_TransmitFile(OverlappedObject *self, PyObject *const *arg DWORD count_per_send; DWORD flags; - if (!_PyArg_CheckPositional("TransmitFile", nargs, 7, 7)) { - goto exit; - } - Socket = PyLong_AsVoidPtr(args[0]); - if (!Socket && PyErr_Occurred()) { - goto exit; - } - File = PyLong_AsVoidPtr(args[1]); - if (!File && PyErr_Occurred()) { - goto exit; - } - if (!_PyLong_UnsignedLong_Converter(args[2], &offset)) { - goto exit; - } - if (!_PyLong_UnsignedLong_Converter(args[3], &offset_high)) { - goto exit; - } - if (!_PyLong_UnsignedLong_Converter(args[4], &count_to_write)) { - goto exit; - } - if (!_PyLong_UnsignedLong_Converter(args[5], &count_per_send)) { - goto exit; - } - if (!_PyLong_UnsignedLong_Converter(args[6], &flags)) { + if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE""F_HANDLE"kkkkk:TransmitFile", + &Socket, &File, &offset, &offset_high, &count_to_write, &count_per_send, &flags)) { goto exit; } return_value = _overlapped_Overlapped_TransmitFile_impl(self, Socket, File, offset, offset_high, count_to_write, count_per_send, flags); @@ -1020,8 +778,7 @@ _overlapped_Overlapped_ConnectNamedPipe(OverlappedObject *self, PyObject *arg) PyObject *return_value = NULL; HANDLE Pipe; - Pipe = PyLong_AsVoidPtr(arg); - if (!Pipe && PyErr_Occurred()) { + if (!PyArg_Parse(arg, ""F_HANDLE":ConnectNamedPipe", &Pipe)) { goto exit; } return_value = _overlapped_Overlapped_ConnectNamedPipe_impl(self, Pipe); @@ -1086,14 +843,10 @@ _overlapped_WSAConnect(PyObject *module, PyObject *const *args, Py_ssize_t nargs HANDLE ConnectSocket; PyObject *AddressObj; - if (!_PyArg_CheckPositional("WSAConnect", nargs, 2, 2)) { - goto exit; - } - ConnectSocket = PyLong_AsVoidPtr(args[0]); - if (!ConnectSocket && PyErr_Occurred()) { + if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE"O:WSAConnect", + &ConnectSocket, &AddressObj)) { goto exit; } - AddressObj = args[1]; return_value = _overlapped_WSAConnect_impl(module, ConnectSocket, AddressObj); exit: @@ -1123,24 +876,10 @@ _overlapped_Overlapped_WSASendTo(OverlappedObject *self, PyObject *const *args, DWORD flags; PyObject *AddressObj; - if (!_PyArg_CheckPositional("WSASendTo", nargs, 4, 4)) { - goto exit; - } - handle = PyLong_AsVoidPtr(args[0]); - if (!handle && PyErr_Occurred()) { - goto exit; - } - if (PyObject_GetBuffer(args[1], &bufobj, PyBUF_SIMPLE) != 0) { - goto exit; - } - if (!PyBuffer_IsContiguous(&bufobj, 'C')) { - _PyArg_BadArgument("WSASendTo", "argument 2", "contiguous buffer", args[1]); - goto exit; - } - if (!_PyLong_UnsignedLong_Converter(args[2], &flags)) { + if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE"y*kO:WSASendTo", + &handle, &bufobj, &flags, &AddressObj)) { goto exit; } - AddressObj = args[3]; return_value = _overlapped_Overlapped_WSASendTo_impl(self, handle, &bufobj, flags, AddressObj); exit: @@ -1174,23 +913,10 @@ _overlapped_Overlapped_WSARecvFrom(OverlappedObject *self, PyObject *const *args DWORD size; DWORD flags = 0; - if (!_PyArg_CheckPositional("WSARecvFrom", nargs, 2, 3)) { + if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE"k|k:WSARecvFrom", + &handle, &size, &flags)) { goto exit; } - handle = PyLong_AsVoidPtr(args[0]); - if (!handle && PyErr_Occurred()) { - goto exit; - } - if (!_PyLong_UnsignedLong_Converter(args[1], &size)) { - goto exit; - } - if (nargs < 3) { - goto skip_optional; - } - if (!_PyLong_UnsignedLong_Converter(args[2], &flags)) { - goto exit; - } -skip_optional: return_value = _overlapped_Overlapped_WSARecvFrom_impl(self, handle, size, flags); exit: @@ -1220,30 +946,10 @@ _overlapped_Overlapped_WSARecvFromInto(OverlappedObject *self, PyObject *const * DWORD size; DWORD flags = 0; - if (!_PyArg_CheckPositional("WSARecvFromInto", nargs, 3, 4)) { - goto exit; - } - handle = PyLong_AsVoidPtr(args[0]); - if (!handle && PyErr_Occurred()) { - goto exit; - } - if (PyObject_GetBuffer(args[1], &bufobj, PyBUF_SIMPLE) != 0) { - goto exit; - } - if (!PyBuffer_IsContiguous(&bufobj, 'C')) { - _PyArg_BadArgument("WSARecvFromInto", "argument 2", "contiguous buffer", args[1]); - goto exit; - } - if (!_PyLong_UnsignedLong_Converter(args[2], &size)) { - goto exit; - } - if (nargs < 4) { - goto skip_optional; - } - if (!_PyLong_UnsignedLong_Converter(args[3], &flags)) { + if (!_PyArg_ParseStack(args, nargs, ""F_HANDLE"y*k|k:WSARecvFromInto", + &handle, &bufobj, &size, &flags)) { goto exit; } -skip_optional: return_value = _overlapped_Overlapped_WSARecvFromInto_impl(self, handle, &bufobj, size, flags); exit: @@ -1254,4 +960,4 @@ _overlapped_Overlapped_WSARecvFromInto(OverlappedObject *self, PyObject *const * return return_value; } -/*[clinic end generated code: output=ed7ca699b5cf6260 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=9078d9f9984864a2 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/posixmodule.c.h b/Modules/clinic/posixmodule.c.h index a26cb8261083a9..1ce7d86204e6f3 100644 --- a/Modules/clinic/posixmodule.c.h +++ b/Modules/clinic/posixmodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(os_stat__doc__, "stat($module, /, path, *, dir_fd=None, follow_symlinks=True)\n" "--\n" @@ -43,31 +37,8 @@ static PyObject * os_stat(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), &_Py_ID(dir_fd), &_Py_ID(follow_symlinks), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", "dir_fd", "follow_symlinks", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "stat", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "stat", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; path_t path = PATH_T_INITIALIZE("stat", "path", 0, 1); @@ -125,31 +96,8 @@ static PyObject * os_lstat(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), &_Py_ID(dir_fd), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", "dir_fd", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "lstat", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "lstat", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; path_t path = PATH_T_INITIALIZE("lstat", "path", 0, 0); @@ -221,31 +169,8 @@ static PyObject * os_access(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 5 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), &_Py_ID(mode), &_Py_ID(dir_fd), &_Py_ID(effective_ids), &_Py_ID(follow_symlinks), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", "mode", "dir_fd", "effective_ids", "follow_symlinks", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "access", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "access", 0}; PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; path_t path = PATH_T_INITIALIZE("access", "path", 0, 0); @@ -381,31 +306,8 @@ static PyObject * os_chdir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "chdir", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "chdir", 0}; PyObject *argsbuf[1]; path_t path = PATH_T_INITIALIZE("chdir", "path", 0, PATH_HAVE_FCHDIR); @@ -446,31 +348,8 @@ static PyObject * os_fchdir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(fd), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"fd", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "fchdir", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "fchdir", 0}; PyObject *argsbuf[1]; int fd; @@ -526,31 +405,8 @@ static PyObject * os_chmod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 4 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), &_Py_ID(mode), &_Py_ID(dir_fd), &_Py_ID(follow_symlinks), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", "mode", "dir_fd", "follow_symlinks", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "chmod", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "chmod", 0}; PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; path_t path = PATH_T_INITIALIZE("chmod", "path", 0, PATH_HAVE_FCHMOD); @@ -614,31 +470,8 @@ static PyObject * os_fchmod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(fd), &_Py_ID(mode), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"fd", "mode", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "fchmod", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "fchmod", 0}; PyObject *argsbuf[2]; int fd; int mode; @@ -684,31 +517,8 @@ static PyObject * os_lchmod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), &_Py_ID(mode), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", "mode", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "lchmod", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "lchmod", 0}; PyObject *argsbuf[2]; path_t path = PATH_T_INITIALIZE("lchmod", "path", 0, 0); int mode; @@ -760,31 +570,8 @@ static PyObject * os_chflags(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), &_Py_ID(flags), &_Py_ID(follow_symlinks), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", "flags", "follow_symlinks", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "chflags", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "chflags", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; path_t path = PATH_T_INITIALIZE("chflags", "path", 0, 0); @@ -843,31 +630,8 @@ static PyObject * os_lchflags(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), &_Py_ID(flags), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", "flags", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "lchflags", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "lchflags", 0}; PyObject *argsbuf[2]; path_t path = PATH_T_INITIALIZE("lchflags", "path", 0, 0); unsigned long flags; @@ -913,31 +677,8 @@ static PyObject * os_chroot(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "chroot", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "chroot", 0}; PyObject *argsbuf[1]; path_t path = PATH_T_INITIALIZE("chroot", "path", 0, 0); @@ -977,31 +718,8 @@ static PyObject * os_fsync(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(fd), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"fd", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "fsync", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "fsync", 0}; PyObject *argsbuf[1]; int fd; @@ -1060,31 +778,8 @@ static PyObject * os_fdatasync(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(fd), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"fd", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "fdatasync", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "fdatasync", 0}; PyObject *argsbuf[1]; int fd; @@ -1146,31 +841,8 @@ static PyObject * os_chown(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 5 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), &_Py_ID(uid), &_Py_ID(gid), &_Py_ID(dir_fd), &_Py_ID(follow_symlinks), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", "uid", "gid", "dir_fd", "follow_symlinks", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "chown", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "chown", 0}; PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3; path_t path = PATH_T_INITIALIZE("chown", "path", 0, PATH_HAVE_FCHOWN); @@ -1239,31 +911,8 @@ static PyObject * os_fchown(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(fd), &_Py_ID(uid), &_Py_ID(gid), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"fd", "uid", "gid", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "fchown", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "fchown", 0}; PyObject *argsbuf[3]; int fd; uid_t uid; @@ -1312,31 +961,8 @@ static PyObject * os_lchown(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), &_Py_ID(uid), &_Py_ID(gid), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", "uid", "gid", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "lchown", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "lchown", 0}; PyObject *argsbuf[3]; path_t path = PATH_T_INITIALIZE("lchown", "path", 0, 0); uid_t uid; @@ -1432,31 +1058,8 @@ static PyObject * os_link(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 5 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(src), &_Py_ID(dst), &_Py_ID(src_dir_fd), &_Py_ID(dst_dir_fd), &_Py_ID(follow_symlinks), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"src", "dst", "src_dir_fd", "dst_dir_fd", "follow_symlinks", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "link", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "link", 0}; PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; path_t src = PATH_T_INITIALIZE("link", "src", 0, 0); @@ -1539,31 +1142,8 @@ static PyObject * os_listdir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "listdir", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "listdir", 0}; PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; path_t path = PATH_T_INITIALIZE("listdir", "path", 1, PATH_HAVE_FDOPENDIR); @@ -1673,31 +1253,8 @@ static PyObject * os__getvolumepathname(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "_getvolumepathname", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "_getvolumepathname", 0}; PyObject *argsbuf[1]; path_t path = PATH_T_INITIALIZE("_getvolumepathname", "path", 0, 0); @@ -1737,31 +1294,8 @@ static PyObject * os__path_splitroot(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "_path_splitroot", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "_path_splitroot", 0}; PyObject *argsbuf[1]; path_t path = PATH_T_INITIALIZE("_path_splitroot", "path", 0, 0); @@ -1799,31 +1333,8 @@ static PyObject * os__path_normpath(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "_path_normpath", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "_path_normpath", 0}; PyObject *argsbuf[1]; PyObject *path; @@ -1861,31 +1372,8 @@ static PyObject * os_mkdir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), &_Py_ID(mode), &_Py_ID(dir_fd), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", "mode", "dir_fd", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "mkdir", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "mkdir", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; path_t path = PATH_T_INITIALIZE("mkdir", "path", 0, 0); @@ -1978,31 +1466,8 @@ static PyObject * os_getpriority(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(which), &_Py_ID(who), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"which", "who", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "getpriority", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "getpriority", 0}; PyObject *argsbuf[2]; int which; int who; @@ -2045,31 +1510,8 @@ static PyObject * os_setpriority(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(which), &_Py_ID(who), &_Py_ID(priority), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"which", "who", "priority", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "setpriority", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "setpriority", 0}; PyObject *argsbuf[3]; int which; int who; @@ -2122,31 +1564,8 @@ static PyObject * os_rename(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 4 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(src), &_Py_ID(dst), &_Py_ID(src_dir_fd), &_Py_ID(dst_dir_fd), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"src", "dst", "src_dir_fd", "dst_dir_fd", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "rename", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "rename", 0}; PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; path_t src = PATH_T_INITIALIZE("rename", "src", 0, 0); @@ -2213,31 +1632,8 @@ static PyObject * os_replace(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 4 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(src), &_Py_ID(dst), &_Py_ID(src_dir_fd), &_Py_ID(dst_dir_fd), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"src", "dst", "src_dir_fd", "dst_dir_fd", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "replace", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "replace", 0}; PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; path_t src = PATH_T_INITIALIZE("replace", "src", 0, 0); @@ -2302,31 +1698,8 @@ static PyObject * os_rmdir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), &_Py_ID(dir_fd), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", "dir_fd", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "rmdir", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "rmdir", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; path_t path = PATH_T_INITIALIZE("rmdir", "path", 0, 0); @@ -2373,31 +1746,8 @@ static PyObject * os_system(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(command), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"command", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "system", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "system", 0}; PyObject *argsbuf[1]; const Py_UNICODE *command; long _return_value; @@ -2447,31 +1797,8 @@ static PyObject * os_system(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(command), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"command", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "system", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "system", 0}; PyObject *argsbuf[1]; PyObject *command = NULL; long _return_value; @@ -2551,31 +1878,8 @@ static PyObject * os_unlink(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), &_Py_ID(dir_fd), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", "dir_fd", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "unlink", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "unlink", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; path_t path = PATH_T_INITIALIZE("unlink", "path", 0, 0); @@ -2625,31 +1929,8 @@ static PyObject * os_remove(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), &_Py_ID(dir_fd), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", "dir_fd", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "remove", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "remove", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; path_t path = PATH_T_INITIALIZE("remove", "path", 0, 0); @@ -2743,31 +2024,8 @@ static PyObject * os_utime(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 5 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), &_Py_ID(times), &_Py_ID(ns), &_Py_ID(dir_fd), &_Py_ID(follow_symlinks), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", "times", "ns", "dir_fd", "follow_symlinks", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "utime", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "utime", 0}; PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; path_t path = PATH_T_INITIALIZE("utime", "path", 0, PATH_UTIME_HAVE_FD); @@ -2840,31 +2098,8 @@ static PyObject * os__exit(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(status), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"status", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "_exit", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "_exit", 0}; PyObject *argsbuf[1]; int status; @@ -2951,31 +2186,8 @@ static PyObject * os_execve(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), &_Py_ID(argv), &_Py_ID(env), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", "argv", "env", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "execve", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "execve", 0}; PyObject *argsbuf[3]; path_t path = PATH_T_INITIALIZE("execve", "path", 0, PATH_HAVE_FEXECVE); PyObject *argv; @@ -3046,31 +2258,8 @@ static PyObject * os_posix_spawn(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 7 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(file_actions), &_Py_ID(setpgroup), &_Py_ID(resetids), &_Py_ID(setsid), &_Py_ID(setsigmask), &_Py_ID(setsigdef), &_Py_ID(scheduler), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "", "", "file_actions", "setpgroup", "resetids", "setsid", "setsigmask", "setsigdef", "scheduler", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "posix_spawn", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "posix_spawn", 0}; PyObject *argsbuf[10]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3; path_t path = PATH_T_INITIALIZE("posix_spawn", "path", 0, 0); @@ -3196,31 +2385,8 @@ static PyObject * os_posix_spawnp(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 7 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(file_actions), &_Py_ID(setpgroup), &_Py_ID(resetids), &_Py_ID(setsid), &_Py_ID(setsigmask), &_Py_ID(setsigdef), &_Py_ID(scheduler), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "", "", "file_actions", "setpgroup", "resetids", "setsid", "setsigmask", "setsigdef", "scheduler", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "posix_spawnp", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "posix_spawnp", 0}; PyObject *argsbuf[10]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3; path_t path = PATH_T_INITIALIZE("posix_spawnp", "path", 0, 0); @@ -3439,31 +2605,8 @@ static PyObject * os_register_at_fork(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(before), &_Py_ID(after_in_child), &_Py_ID(after_in_parent), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"before", "after_in_child", "after_in_parent", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "register_at_fork", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "register_at_fork", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *before = NULL; @@ -3565,31 +2708,8 @@ static PyObject * os_sched_get_priority_max(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(policy), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"policy", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "sched_get_priority_max", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "sched_get_priority_max", 0}; PyObject *argsbuf[1]; int policy; @@ -3627,31 +2747,8 @@ static PyObject * os_sched_get_priority_min(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(policy), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"policy", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "sched_get_priority_min", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "sched_get_priority_min", 0}; PyObject *argsbuf[1]; int policy; @@ -3722,31 +2819,8 @@ static PyObject * os_sched_param(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(sched_priority), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"sched_priority", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "sched_param", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "sched_param", 0}; PyObject *argsbuf[1]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -4414,31 +3488,8 @@ static PyObject * os_getpgid(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(pid), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"pid", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .format = "" _Py_PARSE_PID ":getpgid", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {"" _Py_PARSE_PID ":getpgid", _keywords, 0}; pid_t pid; if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser, @@ -4898,31 +3949,8 @@ static PyObject * os_wait3(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(options), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"options", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "wait3", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "wait3", 0}; PyObject *argsbuf[1]; int options; @@ -4963,31 +3991,8 @@ static PyObject * os_wait4(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(pid), &_Py_ID(options), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"pid", "options", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .format = "" _Py_PARSE_PID "i:wait4", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {"" _Py_PARSE_PID "i:wait4", _keywords, 0}; pid_t pid; int options; @@ -5170,31 +4175,8 @@ static PyObject * os_pidfd_open(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(pid), &_Py_ID(flags), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"pid", "flags", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .format = "" _Py_PARSE_PID "|O&:pidfd_open", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {"" _Py_PARSE_PID "|O&:pidfd_open", _keywords, 0}; pid_t pid; unsigned int flags = 0; @@ -5234,31 +4216,8 @@ static PyObject * os_readlink(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), &_Py_ID(dir_fd), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", "dir_fd", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "readlink", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "readlink", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; path_t path = PATH_T_INITIALIZE("readlink", "path", 0, 0); @@ -5318,31 +4277,8 @@ static PyObject * os_symlink(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 4 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(src), &_Py_ID(dst), &_Py_ID(target_is_directory), &_Py_ID(dir_fd), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"src", "dst", "target_is_directory", "dir_fd", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "symlink", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "symlink", 0}; PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; path_t src = PATH_T_INITIALIZE("symlink", "src", 0, 0); @@ -5591,31 +4527,8 @@ static PyObject * os_open(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 4 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), &_Py_ID(flags), &_Py_ID(mode), &_Py_ID(dir_fd), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", "flags", "mode", "dir_fd", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "open", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "open", 0}; PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; path_t path = PATH_T_INITIALIZE("open", "path", 0, 0); @@ -5684,31 +4597,8 @@ static PyObject * os_close(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(fd), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"fd", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "close", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "close", 0}; PyObject *argsbuf[1]; int fd; @@ -5795,8 +4685,6 @@ os_dup(PyObject *module, PyObject *arg) return return_value; } -#if ((defined(HAVE_DUP3) || defined(F_DUPFD) || defined(MS_WINDOWS))) - PyDoc_STRVAR(os_dup2__doc__, "dup2($module, /, fd, fd2, inheritable=True)\n" "--\n" @@ -5813,31 +4701,8 @@ static PyObject * os_dup2(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(fd), &_Py_ID(fd2), &_Py_ID(inheritable), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"fd", "fd2", "inheritable", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "dup2", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "dup2", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; int fd; @@ -5875,8 +4740,6 @@ os_dup2(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwn return return_value; } -#endif /* ((defined(HAVE_DUP3) || defined(F_DUPFD) || defined(MS_WINDOWS))) */ - #if defined(HAVE_LOCKF) PyDoc_STRVAR(os_lockf__doc__, @@ -6265,31 +5128,8 @@ static PyObject * os_sendfile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 7 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(out_fd), &_Py_ID(in_fd), &_Py_ID(offset), &_Py_ID(count), &_Py_ID(headers), &_Py_ID(trailers), &_Py_ID(flags), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"out_fd", "in_fd", "offset", "count", "headers", "trailers", "flags", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "sendfile", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "sendfile", 0}; PyObject *argsbuf[7]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 4; int out_fd; @@ -6367,31 +5207,8 @@ static PyObject * os_sendfile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 7 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(out_fd), &_Py_ID(in_fd), &_Py_ID(offset), &_Py_ID(count), &_Py_ID(headers), &_Py_ID(trailers), &_Py_ID(flags), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"out_fd", "in_fd", "offset", "count", "headers", "trailers", "flags", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "sendfile", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "sendfile", 0}; PyObject *argsbuf[7]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 4; int out_fd; @@ -6476,31 +5293,8 @@ static PyObject * os_sendfile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 4 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(out_fd), &_Py_ID(in_fd), &_Py_ID(offset), &_Py_ID(count), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"out_fd", "in_fd", "offset", "count", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "sendfile", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "sendfile", 0}; PyObject *argsbuf[4]; int out_fd; int in_fd; @@ -6604,31 +5398,8 @@ static PyObject * os_fstat(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(fd), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"fd", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "fstat", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "fstat", 0}; PyObject *argsbuf[1]; int fd; @@ -6956,31 +5727,8 @@ static PyObject * os_copy_file_range(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 5 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(src), &_Py_ID(dst), &_Py_ID(count), &_Py_ID(offset_src), &_Py_ID(offset_dst), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"src", "dst", "count", "offset_src", "offset_dst", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "copy_file_range", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "copy_file_range", 0}; PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3; int src; @@ -7070,31 +5818,8 @@ static PyObject * os_splice(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 6 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(src), &_Py_ID(dst), &_Py_ID(count), &_Py_ID(offset_src), &_Py_ID(offset_dst), &_Py_ID(flags), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"src", "dst", "count", "offset_src", "offset_dst", "flags", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "splice", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "splice", 0}; PyObject *argsbuf[6]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3; int src; @@ -7178,31 +5903,8 @@ static PyObject * os_mkfifo(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), &_Py_ID(mode), &_Py_ID(dir_fd), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", "mode", "dir_fd", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "mkfifo", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "mkfifo", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; path_t path = PATH_T_INITIALIZE("mkfifo", "path", 0, 0); @@ -7278,31 +5980,8 @@ static PyObject * os_mknod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 4 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), &_Py_ID(mode), &_Py_ID(device), &_Py_ID(dir_fd), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", "mode", "device", "dir_fd", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "mknod", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "mknod", 0}; PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; path_t path = PATH_T_INITIALIZE("mknod", "path", 0, 0); @@ -7533,31 +6212,8 @@ static PyObject * os_truncate(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), &_Py_ID(length), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", "length", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "truncate", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "truncate", 0}; PyObject *argsbuf[2]; path_t path = PATH_T_INITIALIZE("truncate", "path", 0, PATH_HAVE_FTRUNCATE); Py_off_t length; @@ -7934,31 +6590,8 @@ static PyObject * os_WIFCONTINUED(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(status), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"status", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "WIFCONTINUED", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "WIFCONTINUED", 0}; PyObject *argsbuf[1]; int status; int _return_value; @@ -8001,31 +6634,8 @@ static PyObject * os_WIFSTOPPED(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(status), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"status", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "WIFSTOPPED", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "WIFSTOPPED", 0}; PyObject *argsbuf[1]; int status; int _return_value; @@ -8068,31 +6678,8 @@ static PyObject * os_WIFSIGNALED(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(status), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"status", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "WIFSIGNALED", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "WIFSIGNALED", 0}; PyObject *argsbuf[1]; int status; int _return_value; @@ -8135,31 +6722,8 @@ static PyObject * os_WIFEXITED(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(status), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"status", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "WIFEXITED", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "WIFEXITED", 0}; PyObject *argsbuf[1]; int status; int _return_value; @@ -8202,31 +6766,8 @@ static PyObject * os_WEXITSTATUS(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(status), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"status", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "WEXITSTATUS", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "WEXITSTATUS", 0}; PyObject *argsbuf[1]; int status; int _return_value; @@ -8269,31 +6810,8 @@ static PyObject * os_WTERMSIG(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(status), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"status", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "WTERMSIG", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "WTERMSIG", 0}; PyObject *argsbuf[1]; int status; int _return_value; @@ -8336,31 +6854,8 @@ static PyObject * os_WSTOPSIG(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(status), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"status", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "WSTOPSIG", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "WSTOPSIG", 0}; PyObject *argsbuf[1]; int status; int _return_value; @@ -8441,31 +6936,8 @@ static PyObject * os_statvfs(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "statvfs", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "statvfs", 0}; PyObject *argsbuf[1]; path_t path = PATH_T_INITIALIZE("statvfs", "path", 0, PATH_HAVE_FSTATVFS); @@ -8505,31 +6977,8 @@ static PyObject * os__getdiskusage(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "_getdiskusage", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "_getdiskusage", 0}; PyObject *argsbuf[1]; path_t path = PATH_T_INITIALIZE("_getdiskusage", "path", 0, 0); @@ -8618,31 +7067,8 @@ static PyObject * os_pathconf(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), &_Py_ID(name), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", "name", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "pathconf", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "pathconf", 0}; PyObject *argsbuf[2]; path_t path = PATH_T_INITIALIZE("pathconf", "path", 0, PATH_HAVE_FPATHCONF); int name; @@ -8807,31 +7233,8 @@ static PyObject * os_startfile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 5 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(filepath), &_Py_ID(operation), &_Py_ID(arguments), &_Py_ID(cwd), &_Py_ID(show_cmd), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"filepath", "operation", "arguments", "cwd", "show_cmd", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "startfile", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "startfile", 0}; PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; path_t filepath = PATH_T_INITIALIZE("startfile", "filepath", 0, 0); @@ -8951,31 +7354,8 @@ static PyObject * os_device_encoding(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(fd), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"fd", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "device_encoding", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "device_encoding", 0}; PyObject *argsbuf[1]; int fd; @@ -9145,31 +7525,8 @@ static PyObject * os_getxattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), &_Py_ID(attribute), &_Py_ID(follow_symlinks), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", "attribute", "follow_symlinks", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "getxattr", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "getxattr", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; path_t path = PATH_T_INITIALIZE("getxattr", "path", 0, 1); @@ -9232,31 +7589,8 @@ static PyObject * os_setxattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 5 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), &_Py_ID(attribute), &_Py_ID(value), &_Py_ID(flags), &_Py_ID(follow_symlinks), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", "attribute", "value", "flags", "follow_symlinks", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "setxattr", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "setxattr", 0}; PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3; path_t path = PATH_T_INITIALIZE("setxattr", "path", 0, 1); @@ -9344,31 +7678,8 @@ static PyObject * os_removexattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), &_Py_ID(attribute), &_Py_ID(follow_symlinks), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", "attribute", "follow_symlinks", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "removexattr", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "removexattr", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; path_t path = PATH_T_INITIALIZE("removexattr", "path", 0, 1); @@ -9430,31 +7741,8 @@ static PyObject * os_listxattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), &_Py_ID(follow_symlinks), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", "follow_symlinks", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "listxattr", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "listxattr", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; path_t path = PATH_T_INITIALIZE("listxattr", "path", 1, 1); @@ -9548,31 +7836,8 @@ static PyObject * os_memfd_create(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(name), &_Py_ID(flags), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"name", "flags", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "memfd_create", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "memfd_create", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *name = NULL; @@ -9604,7 +7869,7 @@ os_memfd_create(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj #endif /* defined(HAVE_MEMFD_CREATE) */ -#if (defined(HAVE_EVENTFD) && defined(EFD_CLOEXEC)) +#if defined(HAVE_EVENTFD) PyDoc_STRVAR(os_eventfd__doc__, "eventfd($module, /, initval, flags=EFD_CLOEXEC)\n" @@ -9622,31 +7887,8 @@ static PyObject * os_eventfd(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(initval), &_Py_ID(flags), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"initval", "flags", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "eventfd", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "eventfd", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; unsigned int initval; @@ -9673,9 +7915,9 @@ os_eventfd(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject * return return_value; } -#endif /* (defined(HAVE_EVENTFD) && defined(EFD_CLOEXEC)) */ +#endif /* defined(HAVE_EVENTFD) */ -#if (defined(HAVE_EVENTFD) && defined(EFD_CLOEXEC)) +#if defined(HAVE_EVENTFD) PyDoc_STRVAR(os_eventfd_read__doc__, "eventfd_read($module, /, fd)\n" @@ -9693,31 +7935,8 @@ static PyObject * os_eventfd_read(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(fd), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"fd", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "eventfd_read", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "eventfd_read", 0}; PyObject *argsbuf[1]; int fd; @@ -9734,9 +7953,9 @@ os_eventfd_read(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj return return_value; } -#endif /* (defined(HAVE_EVENTFD) && defined(EFD_CLOEXEC)) */ +#endif /* defined(HAVE_EVENTFD) */ -#if (defined(HAVE_EVENTFD) && defined(EFD_CLOEXEC)) +#if defined(HAVE_EVENTFD) PyDoc_STRVAR(os_eventfd_write__doc__, "eventfd_write($module, /, fd, value)\n" @@ -9754,31 +7973,8 @@ static PyObject * os_eventfd_write(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(fd), &_Py_ID(value), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"fd", "value", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "eventfd_write", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "eventfd_write", 0}; PyObject *argsbuf[2]; int fd; unsigned long long value; @@ -9799,7 +7995,7 @@ os_eventfd_write(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb return return_value; } -#endif /* (defined(HAVE_EVENTFD) && defined(EFD_CLOEXEC)) */ +#endif /* defined(HAVE_EVENTFD) */ #if (defined(TERMSIZE_USE_CONIO) || defined(TERMSIZE_USE_IOCTL)) @@ -10144,31 +8340,8 @@ static PyObject * os_DirEntry_stat(DirEntry *self, PyTypeObject *defining_class, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(follow_symlinks), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"follow_symlinks", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "stat", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "stat", 0}; PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int follow_symlinks = 1; @@ -10208,31 +8381,8 @@ static PyObject * os_DirEntry_is_dir(DirEntry *self, PyTypeObject *defining_class, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(follow_symlinks), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"follow_symlinks", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "is_dir", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "is_dir", 0}; PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int follow_symlinks = 1; @@ -10277,31 +8427,8 @@ static PyObject * os_DirEntry_is_file(DirEntry *self, PyTypeObject *defining_class, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(follow_symlinks), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"follow_symlinks", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "is_file", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "is_file", 0}; PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int follow_symlinks = 1; @@ -10387,31 +8514,8 @@ static PyObject * os_scandir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "scandir", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "scandir", 0}; PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; path_t path = PATH_T_INITIALIZE("scandir", "path", 1, PATH_HAVE_FDOPENDIR); @@ -10456,31 +8560,8 @@ static PyObject * os_fspath(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "fspath", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "fspath", 0}; PyObject *argsbuf[1]; PyObject *path; @@ -10513,31 +8594,8 @@ static PyObject * os_getrandom(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(size), &_Py_ID(flags), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"size", "flags", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "getrandom", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "getrandom", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_ssize_t size; @@ -10600,31 +8658,8 @@ static PyObject * os__add_dll_directory(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(path), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"path", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "_add_dll_directory", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "_add_dll_directory", 0}; PyObject *argsbuf[1]; path_t path = PATH_T_INITIALIZE("_add_dll_directory", "path", 0, 0); @@ -10668,31 +8703,8 @@ static PyObject * os__remove_dll_directory(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(cookie), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"cookie", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "_remove_dll_directory", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "_remove_dll_directory", 0}; PyObject *argsbuf[1]; PyObject *cookie; @@ -10739,31 +8751,8 @@ static PyObject * os_waitstatus_to_exitcode(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(status), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"status", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "waitstatus_to_exitcode", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "waitstatus_to_exitcode", 0}; PyObject *argsbuf[1]; PyObject *status_obj; @@ -11116,10 +9105,6 @@ os_waitstatus_to_exitcode(PyObject *module, PyObject *const *args, Py_ssize_t na #define OS_TCSETPGRP_METHODDEF #endif /* !defined(OS_TCSETPGRP_METHODDEF) */ -#ifndef OS_DUP2_METHODDEF - #define OS_DUP2_METHODDEF -#endif /* !defined(OS_DUP2_METHODDEF) */ - #ifndef OS_LOCKF_METHODDEF #define OS_LOCKF_METHODDEF #endif /* !defined(OS_LOCKF_METHODDEF) */ @@ -11367,4 +9352,4 @@ os_waitstatus_to_exitcode(PyObject *module, PyObject *const *args, Py_ssize_t na #ifndef OS_WAITSTATUS_TO_EXITCODE_METHODDEF #define OS_WAITSTATUS_TO_EXITCODE_METHODDEF #endif /* !defined(OS_WAITSTATUS_TO_EXITCODE_METHODDEF) */ -/*[clinic end generated code: output=dc71eece3fc988a7 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=bae15f09a1b3d2e7 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/pwdmodule.c.h b/Modules/clinic/pwdmodule.c.h index f2603eaf322588..cb83062495dcf9 100644 --- a/Modules/clinic/pwdmodule.c.h +++ b/Modules/clinic/pwdmodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(pwd_getpwuid__doc__, "getpwuid($module, uidobj, /)\n" "--\n" @@ -80,4 +74,4 @@ pwd_getpwall(PyObject *module, PyObject *Py_UNUSED(ignored)) #ifndef PWD_GETPWALL_METHODDEF #define PWD_GETPWALL_METHODDEF #endif /* !defined(PWD_GETPWALL_METHODDEF) */ -/*[clinic end generated code: output=a95bc08653cda56b input=a9049054013a1b77]*/ +/*[clinic end generated code: output=7fceab7f1a85da36 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/pyexpat.c.h b/Modules/clinic/pyexpat.c.h index 0454fbc9994504..b2648320aad78d 100644 --- a/Modules/clinic/pyexpat.c.h +++ b/Modules/clinic/pyexpat.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(pyexpat_xmlparser_Parse__doc__, "Parse($self, data, isfinal=False, /)\n" "--\n" @@ -27,19 +21,8 @@ static PyObject * pyexpat_xmlparser_Parse(xmlparseobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) - #else - # define KWTUPLE NULL - #endif - static const char * const _keywords[] = {"", "", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "Parse", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "Parse", 0}; PyObject *argsbuf[2]; PyObject *data; int isfinal = 0; @@ -80,19 +63,8 @@ static PyObject * pyexpat_xmlparser_ParseFile(xmlparseobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) - #else - # define KWTUPLE NULL - #endif - static const char * const _keywords[] = {"", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "ParseFile", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "ParseFile", 0}; PyObject *argsbuf[1]; PyObject *file; @@ -203,19 +175,8 @@ static PyObject * pyexpat_xmlparser_ExternalEntityParserCreate(xmlparseobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) - #else - # define KWTUPLE NULL - #endif - static const char * const _keywords[] = {"", "", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "ExternalEntityParserCreate", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "ExternalEntityParserCreate", 0}; PyObject *argsbuf[2]; const char *context; const char *encoding = NULL; @@ -321,19 +282,8 @@ static PyObject * pyexpat_xmlparser_UseForeignDTD(xmlparseobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) - #else - # define KWTUPLE NULL - #endif - static const char * const _keywords[] = {"", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "UseForeignDTD", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "UseForeignDTD", 0}; PyObject *argsbuf[1]; int flag = 1; @@ -375,31 +325,8 @@ static PyObject * pyexpat_ParserCreate(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(encoding), &_Py_ID(namespace_separator), &_Py_ID(intern), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"encoding", "namespace_separator", "intern", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "ParserCreate", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "ParserCreate", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; const char *encoding = NULL; @@ -498,4 +425,4 @@ pyexpat_ErrorString(PyObject *module, PyObject *arg) #ifndef PYEXPAT_XMLPARSER_USEFOREIGNDTD_METHODDEF #define PYEXPAT_XMLPARSER_USEFOREIGNDTD_METHODDEF #endif /* !defined(PYEXPAT_XMLPARSER_USEFOREIGNDTD_METHODDEF) */ -/*[clinic end generated code: output=de5f664ef05ef34a input=a9049054013a1b77]*/ +/*[clinic end generated code: output=3e333b89da3aa58c input=a9049054013a1b77]*/ diff --git a/Modules/clinic/readline.c.h b/Modules/clinic/readline.c.h index e36d651f67f6eb..c64a84ed81ddfb 100644 --- a/Modules/clinic/readline.c.h +++ b/Modules/clinic/readline.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(readline_parse_and_bind__doc__, "parse_and_bind($module, string, /)\n" "--\n" @@ -691,4 +685,4 @@ readline_redisplay(PyObject *module, PyObject *Py_UNUSED(ignored)) #ifndef READLINE_CLEAR_HISTORY_METHODDEF #define READLINE_CLEAR_HISTORY_METHODDEF #endif /* !defined(READLINE_CLEAR_HISTORY_METHODDEF) */ -/*[clinic end generated code: output=9097fcb749c19e27 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=1fd4c04c2e7ba475 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/resource.c.h b/Modules/clinic/resource.c.h index d0ca8e7150fa86..c591823ed7170c 100644 --- a/Modules/clinic/resource.c.h +++ b/Modules/clinic/resource.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - #if defined(HAVE_GETRUSAGE) PyDoc_STRVAR(resource_getrusage__doc__, @@ -101,42 +95,41 @@ resource_setrlimit(PyObject *module, PyObject *const *args, Py_ssize_t nargs) #if defined(HAVE_PRLIMIT) PyDoc_STRVAR(resource_prlimit__doc__, -"prlimit($module, pid, resource, limits=None, /)\n" -"--\n" -"\n"); +"prlimit(pid, resource, [limits])"); #define RESOURCE_PRLIMIT_METHODDEF \ - {"prlimit", _PyCFunction_CAST(resource_prlimit), METH_FASTCALL, resource_prlimit__doc__}, + {"prlimit", (PyCFunction)resource_prlimit, METH_VARARGS, resource_prlimit__doc__}, static PyObject * resource_prlimit_impl(PyObject *module, pid_t pid, int resource, - PyObject *limits); + int group_right_1, PyObject *limits); static PyObject * -resource_prlimit(PyObject *module, PyObject *const *args, Py_ssize_t nargs) +resource_prlimit(PyObject *module, PyObject *args) { PyObject *return_value = NULL; pid_t pid; int resource; - PyObject *limits = Py_None; - - if (!_PyArg_CheckPositional("prlimit", nargs, 2, 3)) { - goto exit; - } - pid = PyLong_AsPid(args[0]); - if (pid == -1 && PyErr_Occurred()) { - goto exit; - } - resource = _PyLong_AsInt(args[1]); - if (resource == -1 && PyErr_Occurred()) { - goto exit; - } - if (nargs < 3) { - goto skip_optional; + int group_right_1 = 0; + PyObject *limits = NULL; + + switch (PyTuple_GET_SIZE(args)) { + case 2: + if (!PyArg_ParseTuple(args, "" _Py_PARSE_PID "i:prlimit", &pid, &resource)) { + goto exit; + } + break; + case 3: + if (!PyArg_ParseTuple(args, "" _Py_PARSE_PID "iO:prlimit", &pid, &resource, &limits)) { + goto exit; + } + group_right_1 = 1; + break; + default: + PyErr_SetString(PyExc_TypeError, "resource.prlimit requires 2 to 3 arguments"); + goto exit; } - limits = args[2]; -skip_optional: - return_value = resource_prlimit_impl(module, pid, resource, limits); + return_value = resource_prlimit_impl(module, pid, resource, group_right_1, limits); exit: return return_value; @@ -178,4 +171,4 @@ resource_getpagesize(PyObject *module, PyObject *Py_UNUSED(ignored)) #ifndef RESOURCE_PRLIMIT_METHODDEF #define RESOURCE_PRLIMIT_METHODDEF #endif /* !defined(RESOURCE_PRLIMIT_METHODDEF) */ -/*[clinic end generated code: output=2fbec74335a57230 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=7c57d4f3688d3f07 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/selectmodule.c.h b/Modules/clinic/selectmodule.c.h index fda9aaab475567..daa75427319a14 100644 --- a/Modules/clinic/selectmodule.c.h +++ b/Modules/clinic/selectmodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(select_select__doc__, "select($module, rlist, wlist, xlist, timeout=None, /)\n" "--\n" @@ -528,31 +522,8 @@ static PyObject * select_epoll(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(sizehint), &_Py_ID(flags), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"sizehint", "flags", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "epoll", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "epoll", 0}; PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -694,31 +665,8 @@ static PyObject * select_epoll_register(pyEpoll_Object *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(fd), &_Py_ID(eventmask), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"fd", "eventmask", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "register", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "register", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; int fd; @@ -771,31 +719,8 @@ static PyObject * select_epoll_modify(pyEpoll_Object *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(fd), &_Py_ID(eventmask), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"fd", "eventmask", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "modify", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "modify", 0}; PyObject *argsbuf[2]; int fd; unsigned int eventmask; @@ -840,31 +765,8 @@ static PyObject * select_epoll_unregister(pyEpoll_Object *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(fd), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"fd", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "unregister", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "unregister", 0}; PyObject *argsbuf[1]; int fd; @@ -911,31 +813,8 @@ static PyObject * select_epoll_poll(pyEpoll_Object *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(timeout), &_Py_ID(maxevents), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"timeout", "maxevents", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "poll", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "poll", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *timeout_obj = Py_None; @@ -1310,4 +1189,4 @@ select_kqueue_control(kqueue_queue_Object *self, PyObject *const *args, Py_ssize #ifndef SELECT_KQUEUE_CONTROL_METHODDEF #define SELECT_KQUEUE_CONTROL_METHODDEF #endif /* !defined(SELECT_KQUEUE_CONTROL_METHODDEF) */ -/*[clinic end generated code: output=9556c7d6cd5192d1 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=e77cc5c8a6c77860 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/sha1module.c.h b/Modules/clinic/sha1module.c.h index ad15ddaadfc86c..e2338e4a1280a5 100644 --- a/Modules/clinic/sha1module.c.h +++ b/Modules/clinic/sha1module.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(SHA1Type_copy__doc__, "copy($self, /)\n" "--\n" @@ -91,31 +85,8 @@ static PyObject * _sha1_sha1(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "sha1", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "sha1", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *string = NULL; @@ -148,4 +119,4 @@ _sha1_sha1(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject * exit: return return_value; } -/*[clinic end generated code: output=4d1293ca3472acdb input=a9049054013a1b77]*/ +/*[clinic end generated code: output=322d77ba0a4282fc input=a9049054013a1b77]*/ diff --git a/Modules/clinic/sha256module.c.h b/Modules/clinic/sha256module.c.h index 10d09fac695fc4..b94c1c548a394b 100644 --- a/Modules/clinic/sha256module.c.h +++ b/Modules/clinic/sha256module.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(SHA256Type_copy__doc__, "copy($self, /)\n" "--\n" @@ -91,31 +85,8 @@ static PyObject * _sha256_sha256(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "sha256", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "sha256", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *string = NULL; @@ -165,31 +136,8 @@ static PyObject * _sha256_sha224(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "sha224", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "sha224", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *string = NULL; @@ -222,4 +170,4 @@ _sha256_sha224(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje exit: return return_value; } -/*[clinic end generated code: output=ae926f7ec85e7c97 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=58b48051890d3fde input=a9049054013a1b77]*/ diff --git a/Modules/clinic/sha512module.c.h b/Modules/clinic/sha512module.c.h index f8d326363c398e..b7227480c342a1 100644 --- a/Modules/clinic/sha512module.c.h +++ b/Modules/clinic/sha512module.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(SHA512Type_copy__doc__, "copy($self, /)\n" "--\n" @@ -91,31 +85,8 @@ static PyObject * _sha512_sha512(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "sha512", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "sha512", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *string = NULL; @@ -165,31 +136,8 @@ static PyObject * _sha512_sha384(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"string", "usedforsecurity", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "sha384", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "sha384", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *string = NULL; @@ -222,4 +170,4 @@ _sha512_sha384(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje exit: return return_value; } -/*[clinic end generated code: output=dd168f3f21097afe input=a9049054013a1b77]*/ +/*[clinic end generated code: output=60a0a1a28c07f391 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/signalmodule.c.h b/Modules/clinic/signalmodule.c.h index f0276c63df18f2..9e4a8eb0b998a6 100644 --- a/Modules/clinic/signalmodule.c.h +++ b/Modules/clinic/signalmodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(signal_default_int_handler__doc__, "default_int_handler($module, signalnum, frame, /)\n" "--\n" @@ -704,4 +698,4 @@ signal_pidfd_send_signal(PyObject *module, PyObject *const *args, Py_ssize_t nar #ifndef SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF #define SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF #endif /* !defined(SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF) */ -/*[clinic end generated code: output=f2a3321b32b0637c input=a9049054013a1b77]*/ +/*[clinic end generated code: output=6ca1b70310eecdba input=a9049054013a1b77]*/ diff --git a/Modules/clinic/socketmodule.c.h b/Modules/clinic/socketmodule.c.h index 8ff1044d013b0f..dab2b6dc45cef6 100644 --- a/Modules/clinic/socketmodule.c.h +++ b/Modules/clinic/socketmodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - static int sock_initobj_impl(PySocketSockObject *self, int family, int type, int proto, PyObject *fdobj); @@ -16,31 +10,8 @@ static int sock_initobj(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 4 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(family), &_Py_ID(type), &_Py_ID(proto), &_Py_ID(fileno), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"family", "type", "proto", "fileno", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "socket", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "socket", 0}; PyObject *argsbuf[4]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -91,4 +62,4 @@ sock_initobj(PyObject *self, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=987155ac4b48a198 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=2433d6ac51bc962a input=a9049054013a1b77]*/ diff --git a/Modules/clinic/spwdmodule.c.h b/Modules/clinic/spwdmodule.c.h index f47aa9a77f3f86..411d2344e18fba 100644 --- a/Modules/clinic/spwdmodule.c.h +++ b/Modules/clinic/spwdmodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - #if defined(HAVE_GETSPNAM) PyDoc_STRVAR(spwd_getspnam__doc__, @@ -77,4 +71,4 @@ spwd_getspall(PyObject *module, PyObject *Py_UNUSED(ignored)) #ifndef SPWD_GETSPALL_METHODDEF #define SPWD_GETSPALL_METHODDEF #endif /* !defined(SPWD_GETSPALL_METHODDEF) */ -/*[clinic end generated code: output=dd61827a7b708e11 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=eec8d0bedcd312e5 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/symtablemodule.c.h b/Modules/clinic/symtablemodule.c.h index 04fdb9f2d9b776..2cd08f81782007 100644 --- a/Modules/clinic/symtablemodule.c.h +++ b/Modules/clinic/symtablemodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_symtable_symtable__doc__, "symtable($module, source, filename, startstr, /)\n" "--\n" @@ -54,4 +48,4 @@ _symtable_symtable(PyObject *module, PyObject *const *args, Py_ssize_t nargs) exit: return return_value; } -/*[clinic end generated code: output=07716ddbd6c7efe1 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=3f7ccf535d750238 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/termios.c.h b/Modules/clinic/termios.c.h index 78863e53c42ffb..29858fe8d05ea1 100644 --- a/Modules/clinic/termios.c.h +++ b/Modules/clinic/termios.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(termios_tcgetattr__doc__, "tcgetattr($module, fd, /)\n" "--\n" @@ -292,4 +286,4 @@ termios_tcsetwinsize(PyObject *module, PyObject *const *args, Py_ssize_t nargs) exit: return return_value; } -/*[clinic end generated code: output=d286a3906a051869 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=ef9ab888876fac17 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/unicodedata.c.h b/Modules/clinic/unicodedata.c.h index 6102027d07abda..835a776fe172f7 100644 --- a/Modules/clinic/unicodedata.c.h +++ b/Modules/clinic/unicodedata.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(unicodedata_UCD_decimal__doc__, "decimal($self, chr, default=<unrepresentable>, /)\n" "--\n" @@ -565,4 +559,4 @@ unicodedata_UCD_lookup(PyObject *self, PyObject *arg) exit: return return_value; } -/*[clinic end generated code: output=aaf601d28b352353 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=78d7a7ae57014502 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/zlibmodule.c.h b/Modules/clinic/zlibmodule.c.h index a04b954a57f353..ad6a7d470c5e5e 100644 --- a/Modules/clinic/zlibmodule.c.h +++ b/Modules/clinic/zlibmodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(zlib_compress__doc__, "compress($module, data, /, level=Z_DEFAULT_COMPRESSION, wbits=MAX_WBITS)\n" "--\n" @@ -31,31 +25,8 @@ static PyObject * zlib_compress(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(level), &_Py_ID(wbits), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "level", "wbits", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "compress", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "compress", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer data = {NULL, NULL}; @@ -125,31 +96,8 @@ static PyObject * zlib_decompress(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(wbits), &_Py_ID(bufsize), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "wbits", "bufsize", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "decompress", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "decompress", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer data = {NULL, NULL}; @@ -244,31 +192,8 @@ static PyObject * zlib_compressobj(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 6 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(level), &_Py_ID(method), &_Py_ID(wbits), &_Py_ID(memLevel), &_Py_ID(strategy), &_Py_ID(zdict), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"level", "method", "wbits", "memLevel", "strategy", "zdict", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "compressobj", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "compressobj", 0}; PyObject *argsbuf[6]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int level = Z_DEFAULT_COMPRESSION; @@ -371,31 +296,8 @@ static PyObject * zlib_decompressobj(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(wbits), &_Py_ID(zdict), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"wbits", "zdict", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "decompressobj", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "decompressobj", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int wbits = MAX_WBITS; @@ -449,19 +351,8 @@ static PyObject * zlib_Compress_compress(compobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) - #else - # define KWTUPLE NULL - #endif - static const char * const _keywords[] = {"", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "compress", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "compress", 0}; PyObject *argsbuf[1]; Py_buffer data = {NULL, NULL}; @@ -515,31 +406,8 @@ static PyObject * zlib_Decompress_decompress(compobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(max_length), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "max_length", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "decompress", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "decompress", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer data = {NULL, NULL}; @@ -605,19 +473,8 @@ static PyObject * zlib_Compress_flush(compobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) - #else - # define KWTUPLE NULL - #endif - static const char * const _keywords[] = {"", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "flush", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "flush", 0}; PyObject *argsbuf[1]; int mode = Z_FINISH; @@ -708,19 +565,8 @@ static PyObject * zlib_Compress___deepcopy__(compobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) - #else - # define KWTUPLE NULL - #endif - static const char * const _keywords[] = {"", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "__deepcopy__", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "__deepcopy__", 0}; PyObject *argsbuf[1]; PyObject *memo; @@ -806,19 +652,8 @@ static PyObject * zlib_Decompress___deepcopy__(compobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) - #else - # define KWTUPLE NULL - #endif - static const char * const _keywords[] = {"", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "__deepcopy__", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "__deepcopy__", 0}; PyObject *argsbuf[1]; PyObject *memo; @@ -855,19 +690,8 @@ static PyObject * zlib_Decompress_flush(compobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) - #else - # define KWTUPLE NULL - #endif - static const char * const _keywords[] = {"", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "flush", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "flush", 0}; PyObject *argsbuf[1]; Py_ssize_t length = DEF_BUF_SIZE; @@ -1031,4 +855,4 @@ zlib_crc32(PyObject *module, PyObject *const *args, Py_ssize_t nargs) #ifndef ZLIB_DECOMPRESS___DEEPCOPY___METHODDEF #define ZLIB_DECOMPRESS___DEEPCOPY___METHODDEF #endif /* !defined(ZLIB_DECOMPRESS___DEEPCOPY___METHODDEF) */ -/*[clinic end generated code: output=9e5f9911d0c273e1 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=757804b3ad33454f input=a9049054013a1b77]*/ diff --git a/Modules/errnomodule.c b/Modules/errnomodule.c index 4de4144520aa48..bf6766e02349c0 100644 --- a/Modules/errnomodule.c +++ b/Modules/errnomodule.c @@ -280,10 +280,6 @@ errno_exec(PyObject *module) #ifdef ENOANO add_errcode("ENOANO", ENOANO, "No anode"); #endif -#if defined(__wasi__) && !defined(ESHUTDOWN) - // WASI SDK 16 does not have ESHUTDOWN, shutdown results in EPIPE. - #define ESHUTDOWN EPIPE -#endif #ifdef ESHUTDOWN add_errcode("ESHUTDOWN", ESHUTDOWN, "Cannot send after transport endpoint shutdown"); #else @@ -927,10 +923,6 @@ errno_exec(PyObject *module) #ifdef EQFULL add_errcode("EQFULL", EQFULL, "Interface output queue is full"); #endif -#ifdef ENOTCAPABLE - // WASI extension - add_errcode("ENOTCAPABLE", ENOTCAPABLE, "Capabilities insufficient"); -#endif Py_DECREF(error_dict); return 0; diff --git a/Modules/faulthandler.c b/Modules/faulthandler.c index 8b5cf276afc1dc..08c40834c45f20 100644 --- a/Modules/faulthandler.c +++ b/Modules/faulthandler.c @@ -5,6 +5,8 @@ #include "pycore_signal.h" // Py_NSIG #include "pycore_traceback.h" // _Py_DumpTracebackThreads +#include "frameobject.h" + #include <object.h> #include <signal.h> #include <signal.h> @@ -862,7 +864,7 @@ faulthandler_user(int signum) errno = save_errno; } #else - if (user->chain && user->previous != NULL) { + if (user->chain) { errno = save_errno; /* call the previous signal handler */ user->previous(signum); @@ -1338,13 +1340,13 @@ PyInit_faulthandler(void) static int faulthandler_init_enable(void) { - PyObject *enable = _PyImport_GetModuleAttrString("faulthandler", "enable"); - if (enable == NULL) { + PyObject *module = PyImport_ImportModule("faulthandler"); + if (module == NULL) { return -1; } - PyObject *res = PyObject_CallNoArgs(enable); - Py_DECREF(enable); + PyObject *res = PyObject_CallMethodNoArgs(module, &_Py_ID(enable)); + Py_DECREF(module); if (res == NULL) { return -1; } diff --git a/Modules/fcntlmodule.c b/Modules/fcntlmodule.c index 9a8ec8dc9858d7..ea9b2bc14a9f24 100644 --- a/Modules/fcntlmodule.c +++ b/Modules/fcntlmodule.c @@ -8,9 +8,6 @@ #ifdef HAVE_SYS_FILE_H #include <sys/file.h> #endif -#ifdef HAVE_LINUX_FS_H -#include <linux/fs.h> -#endif #include <sys/ioctl.h> #include <fcntl.h> @@ -575,12 +572,6 @@ all_ins(PyObject* m) #ifdef F_GETPIPE_SZ if (PyModule_AddIntMacro(m, F_GETPIPE_SZ)) return -1; #endif -#ifdef FICLONE - if (PyModule_AddIntMacro(m, FICLONE)) return -1; -#endif -#ifdef FICLONERANGE - if (PyModule_AddIntMacro(m, FICLONERANGE)) return -1; -#endif /* OS X specifics */ #ifdef F_FULLFSYNC diff --git a/Modules/gc_weakref.txt b/Modules/gc_weakref.txt index f53fb99dd6cdcb..6d07cce1236431 100644 --- a/Modules/gc_weakref.txt +++ b/Modules/gc_weakref.txt @@ -47,7 +47,7 @@ soon as we execute Python code, threads other than the gc thread can run too, and they can do ordinary things with weakrefs that end up resurrecting CT while gc is running. - https://bugs.python.org/issue1055820 + https://www.python.org/sf/1055820 shows how innocent it can be, and also how nasty. Variants of the three focused test cases attached to that bug report are now part of Python's diff --git a/Modules/gcmodule.c b/Modules/gcmodule.c index 97cb6e6e1efb1f..45dad8f0824df8 100644 --- a/Modules/gcmodule.c +++ b/Modules/gcmodule.c @@ -794,12 +794,9 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old) if (! _PyType_SUPPORTS_WEAKREFS(Py_TYPE(op))) continue; - /* It supports weakrefs. Does it have any? - * - * This is never triggered for static types so we can avoid the - * (slightly) more costly _PyObject_GET_WEAKREFS_LISTPTR(). - */ - wrlist = _PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET(op); + /* It supports weakrefs. Does it have any? */ + wrlist = (PyWeakReference **) + _PyObject_GET_WEAKREFS_LISTPTR(op); /* `op` may have some weakrefs. March over the list, clear * all the weakrefs, and move the weakrefs with callbacks @@ -1198,6 +1195,14 @@ gc_collect_main(PyThreadState *tstate, int generation, assert(gcstate->garbage != NULL); assert(!_PyErr_Occurred(tstate)); +#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS + if (tstate->interp->config._isolated_interpreter) { + // bpo-40533: The garbage collector must not be run on parallel on + // Python objects shared by multiple interpreters. + return 0; + } +#endif + if (gcstate->debug & DEBUG_STATS) { PySys_WriteStderr("gc: collecting generation %d...\n", generation); show_stats_each_generations(gcstate); @@ -2350,13 +2355,6 @@ PyObject_GC_Del(void *op) size_t presize = _PyType_PreHeaderSize(((PyObject *)op)->ob_type); PyGC_Head *g = AS_GC(op); if (_PyObject_GC_IS_TRACKED(op)) { -#ifdef Py_DEBUG - if (PyErr_WarnExplicitFormat(PyExc_ResourceWarning, "gc", 0, - "gc", NULL, "Object of type %s is not untracked before destruction", - ((PyObject*)op)->ob_type->tp_name)) { - PyErr_WriteUnraisable(NULL); - } -#endif gc_list_remove(g); } GCState *gcstate = get_gc_state(); diff --git a/Modules/getaddrinfo.c b/Modules/getaddrinfo.c index 0b4620ed683de9..5aaa6e7c8144f7 100644 --- a/Modules/getaddrinfo.c +++ b/Modules/getaddrinfo.c @@ -61,9 +61,6 @@ # define FAITH #endif -#ifdef HAVE_NETDB_H -#define HAVE_GETADDRINFO 1 - #define SUCCESS 0 #define GAI_ANY 0 #define YES 1 @@ -639,5 +636,3 @@ get_addr(hostname, af, res, pai, port0) *res = NULL; return error; } - -#endif // HAVE_NETDB_H diff --git a/Modules/getnameinfo.c b/Modules/getnameinfo.c index 335021f79bafea..f014c11ae157e4 100644 --- a/Modules/getnameinfo.c +++ b/Modules/getnameinfo.c @@ -48,9 +48,6 @@ #include "addrinfo.h" #endif -#ifdef HAVE_NETDB_H -#define HAVE_GETNAMEINFO 1 - #define SUCCESS 0 #define YES 1 #define NO 0 @@ -107,8 +104,8 @@ getnameinfo(sa, salen, host, hostlen, serv, servlen, flags) u_long v4a; #ifdef ENABLE_IPV6 u_char pfx; - int h_error; #endif + int h_error; char numserv[512]; char numaddr[512]; @@ -184,6 +181,7 @@ getnameinfo(sa, salen, host, hostlen, serv, servlen, flags) hp = getipnodebyaddr(addr, gni_afd->a_addrlen, gni_afd->a_af, &h_error); #else hp = gethostbyaddr(addr, gni_afd->a_addrlen, gni_afd->a_af); + h_error = h_errno; #endif if (hp) { @@ -214,4 +212,3 @@ getnameinfo(sa, salen, host, hostlen, serv, servlen, flags) } return SUCCESS; } -#endif // HAVE_NETDB_H diff --git a/Modules/getpath.py b/Modules/getpath.py index e3558bc49e389f..47f075caf5551b 100644 --- a/Modules/getpath.py +++ b/Modules/getpath.py @@ -351,11 +351,11 @@ def search_up(prefix, *landmarks, test=isfile): try: # Read pyvenv.cfg from one level above executable pyvenvcfg = readlines(joinpath(venv_prefix, VENV_LANDMARK)) - except (FileNotFoundError, PermissionError): + except FileNotFoundError: # Try the same directory as executable pyvenvcfg = readlines(joinpath(venv_prefix2, VENV_LANDMARK)) venv_prefix = venv_prefix2 - except (FileNotFoundError, PermissionError): + except FileNotFoundError: venv_prefix = None pyvenvcfg = [] @@ -422,7 +422,7 @@ def search_up(prefix, *landmarks, test=isfile): # ****************************************************************************** # The contents of an optional ._pth file are used to totally override -# sys.path calculation. Its presence also implies isolated mode and +# sys.path calcualation. Its presence also implies isolated mode and # no-site (unless explicitly requested) pth = None pth_dir = None @@ -461,8 +461,7 @@ def search_up(prefix, *landmarks, test=isfile): build_prefix = None -if ((not home_was_set and real_executable_dir and not py_setpath) - or config.get('_is_python_build', 0) > 0): +if not home_was_set and real_executable_dir and not py_setpath: # Detect a build marker and use it to infer prefix, exec_prefix, # stdlib_dir and the platstdlib_dir directories. try: @@ -475,7 +474,7 @@ def search_up(prefix, *landmarks, test=isfile): # File exists but is empty platstdlib_dir = real_executable_dir build_prefix = joinpath(real_executable_dir, VPATH) - except (FileNotFoundError, PermissionError): + except FileNotFoundError: if isfile(joinpath(real_executable_dir, BUILD_LANDMARK)): build_prefix = joinpath(real_executable_dir, VPATH) if os_name == 'nt': diff --git a/Modules/main.c b/Modules/main.c index aa523fc58d93fb..cca669bdbf4b84 100644 --- a/Modules/main.c +++ b/Modules/main.c @@ -479,23 +479,12 @@ pymain_run_interactive_hook(int *exitcode) } -static void -pymain_set_inspect(PyConfig *config, int inspect) -{ - config->inspect = inspect; -_Py_COMP_DIAG_PUSH -_Py_COMP_DIAG_IGNORE_DEPR_DECLS - Py_InspectFlag = inspect; -_Py_COMP_DIAG_POP -} - - static int pymain_run_stdin(PyConfig *config) { if (stdin_is_interactive(config)) { - // do exit on SystemExit - pymain_set_inspect(config, 0); + config->inspect = 0; + Py_InspectFlag = 0; /* do exit on SystemExit */ int exitcode; if (pymain_run_startup(config, &exitcode)) { @@ -528,14 +517,16 @@ pymain_repl(PyConfig *config, int *exitcode) /* Check this environment variable at the end, to give programs the opportunity to set it from Python. */ if (!config->inspect && _Py_GetEnv(config->use_environment, "PYTHONINSPECT")) { - pymain_set_inspect(config, 1); + config->inspect = 1; + Py_InspectFlag = 1; } if (!(config->inspect && stdin_is_interactive(config) && config_run_code(config))) { return; } - pymain_set_inspect(config, 0); + config->inspect = 0; + Py_InspectFlag = 0; if (pymain_run_interactive_hook(exitcode)) { return; } @@ -649,7 +640,7 @@ exit_sigint(void) * SIG_DFL handler for SIGINT if KeyboardInterrupt went unhandled. * If we don't, a calling process such as a shell may not know * about the user's ^C. https://www.cons.org/cracauer/sigint.html */ -#if defined(HAVE_GETPID) && defined(HAVE_KILL) && !defined(MS_WINDOWS) +#if defined(HAVE_GETPID) && !defined(MS_WINDOWS) if (PyOS_setsig(SIGINT, SIG_DFL) == SIG_ERR) { perror("signal"); /* Impossible in normal environments. */ } else { diff --git a/Modules/makesetup b/Modules/makesetup index 5c275ac9a04945..9b20e3c9f63442 100755 --- a/Modules/makesetup +++ b/Modules/makesetup @@ -1,5 +1,4 @@ #! /bin/sh -set -e # Convert templates into Makefile and config.c, based on the module # definitions found in the file Setup. @@ -260,14 +259,13 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' | \$*) ;; *) src='$(srcdir)/'"$srcdir/$src";; esac - # custom flags first, PY_STDMODULE_CFLAGS may contain -I with system libmpdec case $doconfig in - no) cc="$cc $cpps \$(PY_STDMODULE_CFLAGS) \$(CCSHARED)";; + no) cc="$cc \$(CCSHARED) \$(PY_CFLAGS_NODIST) \$(PY_CPPFLAGS)";; *) - cc="$cc $cpps \$(PY_BUILTIN_MODULE_CFLAGS)";; + cc="$cc \$(PY_BUILTIN_MODULE_CFLAGS)";; esac # force rebuild when header file or module build flavor (static/shared) is changed - rule="$obj: $src \$(MODULE_${mods_upper}_DEPS) \$(MODULE_DEPS); $cc -c $src -o $obj" + rule="$obj: $src \$(MODULE_${mods_upper}_DEPS) \$(PYTHON_HEADERS) Modules/config.c; $cc $cpps -c $src -o $obj" echo "$rule" >>$rulesf done case $doconfig in @@ -324,13 +322,8 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' | case $makepre in -) ;; - *) - # macOS' sed has issues with 'a' command. Use 'r' command with an - # external replacement file instead. - sedf="@sed.in.$$" - sedr="@sed.replace.$$" - trap 'rm -f $sedf $sedr' 0 1 2 3 - echo "$NL$NL$DEFS" | sed 's/\\$//' > $sedr + *) sedf="@sed.in.$$" + trap 'rm -f $sedf' 0 1 2 3 echo "1i\\" >$sedf str="# Generated automatically from $makepre by makesetup." echo "$str" >>$sedf @@ -339,10 +332,10 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' | echo "s%_MODDISABLED_NAMES_%$DISABLED%" >>$sedf echo "s%_MODOBJS_%$OBJS%" >>$sedf echo "s%_MODLIBS_%$LIBS%" >>$sedf - echo "/Definitions added by makesetup/r $sedr" >>$sedf + echo "/Definitions added by makesetup/a$NL$NL$DEFS" >>$sedf sed -f $sedf $makepre >Makefile cat $rulesf >>Makefile - rm -f $sedf $sedr + rm -f $sedf ;; esac diff --git a/Modules/mathmodule.c b/Modules/mathmodule.c index 48625c8c18d70e..aa93e756c606ba 100644 --- a/Modules/mathmodule.c +++ b/Modules/mathmodule.c @@ -55,14 +55,13 @@ raised for division by zero and mod by zero. #ifndef Py_BUILD_CORE_BUILTIN # define Py_BUILD_CORE_MODULE 1 #endif +#define NEEDS_PY_IDENTIFIER #include "Python.h" #include "pycore_bitutils.h" // _Py_bit_length() #include "pycore_call.h" // _PyObject_CallNoArgs() #include "pycore_dtoa.h" // _Py_dg_infinity() #include "pycore_long.h" // _PyLong_GetZero() -#include "pycore_moduleobject.h" // _PyModule_GetState() -#include "pycore_object.h" // _PyObject_LookupSpecial() #include "pycore_pymath.h" // _PY_SHORT_FLOAT_REPR /* For DBL_EPSILON in _math.h */ #include <float.h> @@ -77,20 +76,6 @@ module math /*[clinic end generated code: output=da39a3ee5e6b4b0d input=76bc7002685dd942]*/ -typedef struct { - PyObject *str___ceil__; - PyObject *str___floor__; - PyObject *str___trunc__; -} math_module_state; - -static inline math_module_state* -get_math_module_state(PyObject *module) -{ - void *state = _PyModule_GetState(module); - assert(state != NULL); - return (math_module_state *)state; -} - /* 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 @@ -1230,10 +1215,10 @@ static PyObject * math_ceil(PyObject *module, PyObject *number) /*[clinic end generated code: output=6c3b8a78bc201c67 input=2725352806399cab]*/ { + _Py_IDENTIFIER(__ceil__); if (!PyFloat_CheckExact(number)) { - math_module_state *state = get_math_module_state(module); - PyObject *method = _PyObject_LookupSpecial(number, state->str___ceil__); + PyObject *method = _PyObject_LookupSpecialId(number, &PyId___ceil__); if (method != NULL) { PyObject *result = _PyObject_CallNoArgs(method); Py_DECREF(method); @@ -1298,13 +1283,14 @@ math_floor(PyObject *module, PyObject *number) { double x; + _Py_IDENTIFIER(__floor__); + if (PyFloat_CheckExact(number)) { x = PyFloat_AS_DOUBLE(number); } else { - math_module_state *state = get_math_module_state(module); - PyObject *method = _PyObject_LookupSpecial(number, state->str___floor__); + PyObject *method = _PyObject_LookupSpecialId(number, &PyId___floor__); if (method != NULL) { PyObject *result = _PyObject_CallNoArgs(method); Py_DECREF(method); @@ -2170,6 +2156,7 @@ static PyObject * math_trunc(PyObject *module, PyObject *x) /*[clinic end generated code: output=34b9697b707e1031 input=2168b34e0a09134d]*/ { + _Py_IDENTIFIER(__trunc__); PyObject *trunc, *result; if (PyFloat_CheckExact(x)) { @@ -2181,8 +2168,7 @@ math_trunc(PyObject *module, PyObject *x) return NULL; } - math_module_state *state = get_math_module_state(module); - trunc = _PyObject_LookupSpecial(x, state->str___trunc__); + trunc = _PyObject_LookupSpecialId(x, &PyId___trunc__); if (trunc == NULL) { if (!PyErr_Occurred()) PyErr_Format(PyExc_TypeError, @@ -2326,7 +2312,7 @@ math_modf_impl(PyObject *module, double x) in that int is larger than PY_SSIZE_T_MAX. */ static PyObject* -loghelper(PyObject* arg, double (*func)(double)) +loghelper(PyObject* arg, double (*func)(double), const char *funcname) { /* If it is int, do it ourselves. */ if (PyLong_Check(arg)) { @@ -2386,11 +2372,11 @@ math_log_impl(PyObject *module, PyObject *x, int group_right_1, PyObject *num, *den; PyObject *ans; - num = loghelper(x, m_log); + num = loghelper(x, m_log, "log"); if (num == NULL || base == NULL) return num; - den = loghelper(base, m_log); + den = loghelper(base, m_log, "log"); if (den == NULL) { Py_DECREF(num); return NULL; @@ -2416,7 +2402,7 @@ static PyObject * math_log2(PyObject *module, PyObject *x) /*[clinic end generated code: output=5425899a4d5d6acb input=08321262bae4f39b]*/ { - return loghelper(x, m_log2); + return loghelper(x, m_log2, "log2"); } @@ -2433,7 +2419,7 @@ static PyObject * math_log10(PyObject *module, PyObject *x) /*[clinic end generated code: output=be72a64617df9c6f input=b2469d02c6469e53]*/ { - return loghelper(x, m_log10); + return loghelper(x, m_log10, "log10"); } @@ -3839,20 +3825,6 @@ math_ulp_impl(PyObject *module, double x) static int math_exec(PyObject *module) { - - math_module_state *state = get_math_module_state(module); - state->str___ceil__ = PyUnicode_InternFromString("__ceil__"); - if (state->str___ceil__ == NULL) { - return -1; - } - state->str___floor__ = PyUnicode_InternFromString("__floor__"); - if (state->str___floor__ == NULL) { - return -1; - } - state->str___trunc__ = PyUnicode_InternFromString("__trunc__"); - if (state->str___trunc__ == NULL) { - return -1; - } if (PyModule_AddObject(module, "pi", PyFloat_FromDouble(Py_MATH_PI)) < 0) { return -1; } @@ -3874,22 +3846,6 @@ math_exec(PyObject *module) return 0; } -static int -math_clear(PyObject *module) -{ - math_module_state *state = get_math_module_state(module); - Py_CLEAR(state->str___ceil__); - Py_CLEAR(state->str___floor__); - Py_CLEAR(state->str___trunc__); - return 0; -} - -static void -math_free(void *module) -{ - math_clear((PyObject *)module); -} - static PyMethodDef math_methods[] = { {"acos", math_acos, METH_O, math_acos_doc}, {"acosh", math_acosh, METH_O, math_acosh_doc}, @@ -3962,11 +3918,9 @@ static struct PyModuleDef mathmodule = { PyModuleDef_HEAD_INIT, .m_name = "math", .m_doc = module_doc, - .m_size = sizeof(math_module_state), + .m_size = 0, .m_methods = math_methods, .m_slots = math_slots, - .m_clear = math_clear, - .m_free = math_free, }; PyMODINIT_FUNC diff --git a/Modules/mmapmodule.c b/Modules/mmapmodule.c index 5c05aa738ef564..ec36465728c3a6 100644 --- a/Modules/mmapmodule.c +++ b/Modules/mmapmodule.c @@ -120,6 +120,18 @@ typedef struct { access_mode access; } mmap_object; +typedef struct { + PyTypeObject *mmap_object_type; +} mmap_state; + +static mmap_state * +get_mmap_state(PyObject *module) +{ + mmap_state *state = PyModule_GetState(module); + assert(state); + return state; +} + static int mmap_object_traverse(mmap_object *m_obj, visitproc visit, void *arg) { @@ -1543,23 +1555,46 @@ new_mmap_object(PyTypeObject *type, PyObject *args, PyObject *kwdict) } #endif /* MS_WINDOWS */ +static int +mmap_traverse(PyObject *module, visitproc visit, void *arg) +{ + mmap_state *state = get_mmap_state(module); + Py_VISIT(state->mmap_object_type); + return 0; +} + +static int +mmap_clear(PyObject *module) +{ + mmap_state *state = get_mmap_state(module); + Py_CLEAR(state->mmap_object_type); + return 0; +} + +static void +mmap_free(void *module) +{ + mmap_clear((PyObject *)module); +} + static int mmap_exec(PyObject *module) { + mmap_state *state = get_mmap_state(module); + Py_INCREF(PyExc_OSError); if (PyModule_AddObject(module, "error", PyExc_OSError) < 0) { Py_DECREF(PyExc_OSError); return -1; } - PyObject *mmap_object_type = PyType_FromModuleAndSpec(module, - &mmap_object_spec, NULL); - if (mmap_object_type == NULL) { + state->mmap_object_type = (PyTypeObject *)PyType_FromModuleAndSpec(module, + &mmap_object_spec, + NULL); + if (state->mmap_object_type == NULL) { return -1; } - int rc = PyModule_AddType(module, (PyTypeObject *)mmap_object_type); - Py_DECREF(mmap_object_type); - if (rc < 0) { + if (PyModule_AddType(module, state->mmap_object_type) < 0) { return -1; } @@ -1709,10 +1744,13 @@ static PyModuleDef_Slot mmap_slots[] = { }; static struct PyModuleDef mmapmodule = { - .m_base = PyModuleDef_HEAD_INIT, + PyModuleDef_HEAD_INIT, .m_name = "mmap", - .m_size = 0, + .m_size = sizeof(mmap_state), .m_slots = mmap_slots, + .m_traverse = mmap_traverse, + .m_clear = mmap_clear, + .m_free = mmap_free, }; PyMODINIT_FUNC diff --git a/Modules/overlapped.c b/Modules/overlapped.c index 369b1beae84e3f..e40a52476bd19a 100644 --- a/Modules/overlapped.c +++ b/Modules/overlapped.c @@ -32,41 +32,27 @@ #define T_HANDLE T_POINTER /*[python input] -class pointer_converter(CConverter): - format_unit = '"F_POINTER"' - - def parse_arg(self, argname, displayname): - return """ - {paramname} = PyLong_AsVoidPtr({argname}); - if (!{paramname} && PyErr_Occurred()) {{{{ - goto exit; - }}}} - """.format(argname=argname, paramname=self.parser_name) - -class OVERLAPPED_converter(pointer_converter): +class OVERLAPPED_converter(CConverter): type = 'OVERLAPPED *' + format_unit = '"F_POINTER"' -class HANDLE_converter(pointer_converter): +class HANDLE_converter(CConverter): type = 'HANDLE' + format_unit = '"F_HANDLE"' -class ULONG_PTR_converter(pointer_converter): +class ULONG_PTR_converter(CConverter): type = 'ULONG_PTR' + format_unit = '"F_ULONG_PTR"' - def parse_arg(self, argname, displayname): - return """ - {paramname} = (uintptr_t)PyLong_AsVoidPtr({argname}); - if (!{paramname} && PyErr_Occurred()) {{{{ - goto exit; - }}}} - """.format(argname=argname, paramname=self.parser_name) - -class DWORD_converter(unsigned_long_converter): +class DWORD_converter(CConverter): type = 'DWORD' + format_unit = 'k' -class BOOL_converter(int_converter): +class BOOL_converter(CConverter): type = 'BOOL' + format_unit = 'i' [python start generated code]*/ -/*[python end generated code: output=da39a3ee5e6b4b0d input=8a07ea3018f4cec8]*/ +/*[python end generated code: output=da39a3ee5e6b4b0d input=83bb8c2c2514f2a8]*/ /*[clinic input] module _overlapped @@ -119,6 +105,18 @@ typedef struct { }; } OverlappedObject; +typedef struct { + PyTypeObject *overlapped_type; +} OverlappedState; + +static inline OverlappedState* +overlapped_get_state(PyObject *module) +{ + void *state = PyModule_GetState(module); + assert(state != NULL); + return (OverlappedState *)state; +} + static inline void steal_buffer(Py_buffer * dst, Py_buffer * src) @@ -1998,6 +1996,28 @@ static PyMethodDef overlapped_functions[] = { {NULL} }; +static int +overlapped_traverse(PyObject *module, visitproc visit, void *arg) +{ + OverlappedState *state = overlapped_get_state(module); + Py_VISIT(state->overlapped_type); + return 0; +} + +static int +overlapped_clear(PyObject *module) +{ + OverlappedState *state = overlapped_get_state(module); + Py_CLEAR(state->overlapped_type); + return 0; +} + +static void +overlapped_free(void *module) +{ + overlapped_clear((PyObject *)module); +} + #define WINAPI_CONSTANT(fmt, con) \ do { \ PyObject *value = Py_BuildValue(fmt, con); \ @@ -2025,15 +2045,14 @@ overlapped_exec(PyObject *module) return -1; } - PyTypeObject *overlapped_type = (PyTypeObject *)PyType_FromModuleAndSpec( + OverlappedState *st = overlapped_get_state(module); + st->overlapped_type = (PyTypeObject *)PyType_FromModuleAndSpec( module, &overlapped_type_spec, NULL); - if (overlapped_type == NULL) { + if (st->overlapped_type == NULL) { return -1; } - int rc = PyModule_AddType(module, overlapped_type); - Py_DECREF(overlapped_type); - if (rc < 0) { + if (PyModule_AddType(module, st->overlapped_type) < 0) { return -1; } @@ -2058,10 +2077,14 @@ static PyModuleDef_Slot overlapped_slots[] = { }; static struct PyModuleDef overlapped_module = { - .m_base = PyModuleDef_HEAD_INIT, + PyModuleDef_HEAD_INIT, .m_name = "_overlapped", + .m_size = sizeof(OverlappedState), .m_methods = overlapped_functions, .m_slots = overlapped_slots, + .m_traverse = overlapped_traverse, + .m_clear = overlapped_clear, + .m_free = overlapped_free }; PyMODINIT_FUNC diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index 3810bc87c1fbab..0a72aca8d51fa2 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -606,11 +606,6 @@ PyOS_AfterFork_Child(void) } assert(_PyThreadState_GET() == tstate); - status = _PyPerfTrampoline_AfterFork_Child(); - if (_PyStatus_EXCEPTION(status)) { - goto fatal_error; - } - run_at_forkers(tstate->interp->after_forkers_child, 0); return; @@ -3287,10 +3282,6 @@ os_chmod_impl(PyObject *module, path_t *path, int mode, int dir_fd, { #ifdef HAVE_CHMOD result = chmod(path->narrow, mode); -#elif defined(__wasi__) - // WASI SDK 15.0 does not support chmod. - // Ignore missing syscall for now. - result = 0; #else result = -1; errno = ENOSYS; @@ -8284,7 +8275,11 @@ wait_helper(PyObject *module, pid_t pid, int status, struct rusage *ru) memset(ru, 0, sizeof(*ru)); } - struct_rusage = _PyImport_GetModuleAttrString("resource", "struct_rusage"); + PyObject *m = PyImport_ImportModule("resource"); + if (m == NULL) + return NULL; + struct_rusage = PyObject_GetAttr(m, get_posix_state(module)->struct_rusage); + Py_DECREF(m); if (struct_rusage == NULL) return NULL; @@ -9321,9 +9316,7 @@ os_dup_impl(PyObject *module, int fd) return _Py_dup(fd); } -// dup2() is either provided by libc or dup2.c with AC_REPLACE_FUNCS(). -// dup2.c provides working dup2() if and only if F_DUPFD is available. -#if (defined(HAVE_DUP3) || defined(F_DUPFD) || defined(MS_WINDOWS)) + /*[clinic input] os.dup2 -> int fd: int @@ -9423,7 +9416,6 @@ os_dup2_impl(PyObject *module, int fd, int fd2, int inheritable) return res; } -#endif #ifdef HAVE_LOCKF @@ -13112,7 +13104,7 @@ os_memfd_create_impl(PyObject *module, PyObject *name, unsigned int flags) } #endif -#if defined(HAVE_EVENTFD) && defined(EFD_CLOEXEC) +#ifdef HAVE_EVENTFD /*[clinic input] os.eventfd @@ -13183,7 +13175,7 @@ os_eventfd_write_impl(PyObject *module, int fd, unsigned long long value) } Py_RETURN_NONE; } -#endif /* HAVE_EVENTFD && EFD_CLOEXEC */ +#endif /* HAVE_EVENTFD */ /* Terminal size querying */ @@ -13252,11 +13244,24 @@ os_get_terminal_size_impl(PyObject *module, int fd) #ifdef TERMSIZE_USE_CONIO { + DWORD nhandle; HANDLE handle; CONSOLE_SCREEN_BUFFER_INFO csbi; - handle = _Py_get_osfhandle(fd); + switch (fd) { + case 0: nhandle = STD_INPUT_HANDLE; + break; + case 1: nhandle = STD_OUTPUT_HANDLE; + break; + case 2: nhandle = STD_ERROR_HANDLE; + break; + default: + return PyErr_Format(PyExc_ValueError, "bad file descriptor"); + } + handle = GetStdHandle(nhandle); + if (handle == NULL) + return PyErr_Format(PyExc_OSError, "handle cannot be retrieved"); if (handle == INVALID_HANDLE_VALUE) - return NULL; + return PyErr_SetFromWindowsErr(0); if (!GetConsoleScreenBufferInfo(handle, &csbi)) return PyErr_SetFromWindowsErr(0); @@ -15250,9 +15255,6 @@ all_ins(PyObject *m) #ifdef P_PIDFD if (PyModule_AddIntMacro(m, P_PIDFD)) return -1; #endif -#ifdef PIDFD_NONBLOCK - if (PyModule_AddIntMacro(m, PIDFD_NONBLOCK)) return -1; -#endif #endif #ifdef WEXITED if (PyModule_AddIntMacro(m, WEXITED)) return -1; @@ -15457,15 +15459,11 @@ all_ins(PyObject *m) #endif #endif /* HAVE_MEMFD_CREATE */ -#if defined(HAVE_EVENTFD) && defined(EFD_CLOEXEC) +#ifdef HAVE_EVENTFD if (PyModule_AddIntMacro(m, EFD_CLOEXEC)) return -1; -#ifdef EFD_NONBLOCK if (PyModule_AddIntMacro(m, EFD_NONBLOCK)) return -1; -#endif -#ifdef EFD_SEMAPHORE if (PyModule_AddIntMacro(m, EFD_SEMAPHORE)) return -1; #endif -#endif /* HAVE_EVENTFD && EFD_CLOEXEC */ #if defined(__APPLE__) if (PyModule_AddIntConstant(m, "_COPYFILE_DATA", COPYFILE_DATA)) return -1; diff --git a/Modules/pyexpat.c b/Modules/pyexpat.c index 165cb0effae2e4..b8535dfe7115a1 100644 --- a/Modules/pyexpat.c +++ b/Modules/pyexpat.c @@ -2,6 +2,7 @@ #include <ctype.h> #include "structmember.h" // PyMemberDef +#include "frameobject.h" #include "expat.h" #include "pyexpat.h" @@ -775,7 +776,7 @@ readinst(char *buf, int buf_size, PyObject *meth) Py_ssize_t len; const char *ptr; - str = PyObject_CallFunction(meth, "i", buf_size); + str = PyObject_CallFunction(meth, "n", buf_size); if (str == NULL) goto error; diff --git a/Modules/resource.c b/Modules/resource.c index a97fb870062b82..d8bba2e39847a1 100644 --- a/Modules/resource.c +++ b/Modules/resource.c @@ -24,16 +24,8 @@ module resource class pid_t_converter(CConverter): type = 'pid_t' format_unit = '" _Py_PARSE_PID "' - - def parse_arg(self, argname, displayname): - return """ - {paramname} = PyLong_AsPid({argname}); - if ({paramname} == -1 && PyErr_Occurred()) {{{{ - goto exit; - }}}} - """.format(argname=argname, paramname=self.parser_name) [python start generated code]*/ -/*[python end generated code: output=da39a3ee5e6b4b0d input=5af1c116d56cbb5a]*/ +/*[python end generated code: output=da39a3ee5e6b4b0d input=0c1d19f640d57e48]*/ #include "clinic/resource.c.h" @@ -276,15 +268,17 @@ resource.prlimit pid: pid_t resource: int - limits: object = None + [ + limits: object + ] / [clinic start generated code]*/ static PyObject * resource_prlimit_impl(PyObject *module, pid_t pid, int resource, - PyObject *limits) -/*[clinic end generated code: output=6ebc49ff8c3a816e input=54bb69c9585e33bf]*/ + int group_right_1, PyObject *limits) +/*[clinic end generated code: output=ee976b393187a7a3 input=b77743bdccc83564]*/ { struct rlimit old_limit, new_limit; int retval; @@ -300,7 +294,7 @@ resource_prlimit_impl(PyObject *module, pid_t pid, int resource, return NULL; } - if (limits != Py_None) { + if (group_right_1) { if (py2rlimit(limits, &new_limit) < 0) { return NULL; } diff --git a/Modules/selectmodule.c b/Modules/selectmodule.c index 4eea928a2683ae..5c36eaaedeb70b 100644 --- a/Modules/selectmodule.c +++ b/Modules/selectmodule.c @@ -63,11 +63,6 @@ extern void bzero(void *, int); # define SOCKET int #endif -// WASI SDK 16 does not have POLLPRIO, define as no-op -#if defined(__wasi__) && !defined(POLLPRI) -# define POLLPRI 0 -#endif - typedef struct { PyObject *close; PyTypeObject *poll_Type; diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c index 0f30b4da036313..dfb1f923cdccf9 100644 --- a/Modules/signalmodule.c +++ b/Modules/signalmodule.c @@ -189,8 +189,8 @@ compare_handler(PyObject *func, PyObject *dfl_ign_handler) return PyObject_RichCompareBool(func, dfl_ign_handler, Py_EQ) == 1; } -#ifdef HAVE_SETITIMER -/* auxiliary function for setitimer */ +#ifdef HAVE_GETITIMER +/* auxiliary functions for setitimer */ static int timeval_from_double(PyObject *obj, struct timeval *tv) { @@ -206,10 +206,7 @@ timeval_from_double(PyObject *obj, struct timeval *tv) } return _PyTime_AsTimeval(t, tv, _PyTime_ROUND_CEILING); } -#endif -#if defined(HAVE_SETITIMER) || defined(HAVE_GETITIMER) -/* auxiliary functions for get/setitimer */ Py_LOCAL_INLINE(double) double_from_timeval(struct timeval *tv) { @@ -1832,9 +1829,6 @@ _PyErr_CheckSignalsTstate(PyThreadState *tstate) _Py_atomic_store(&is_tripped, 0); _PyInterpreterFrame *frame = tstate->cframe->current_frame; - while (frame && _PyFrame_IsIncomplete(frame)) { - frame = frame->previous; - } signal_state_t *state = &signal_global_state; for (int i = 1; i < Py_NSIG; i++) { if (!_Py_atomic_load_relaxed(&Handlers[i].tripped)) { diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c index 869bacde924d83..002762e2e41efc 100644 --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -227,7 +227,7 @@ shutdown(how) -- shut down traffic in one or both directions\n\ #define HAVE_INET_PTON #include <netdb.h> -#endif // __sgi +#endif /* Solaris fails to define this variable at all. */ #if (defined(__sun) && defined(__SVR4)) && !defined(INET_ADDRSTRLEN) @@ -256,9 +256,7 @@ shutdown(how) -- shut down traffic in one or both directions\n\ #ifndef MS_WINDOWS /* Non-MS WINDOWS includes */ -#ifdef HAVE_NETDB_H -# include <netdb.h> -#endif +# include <netdb.h> # include <unistd.h> /* Headers needed for inet_ntoa() and inet_addr() */ @@ -441,11 +439,10 @@ remove_unusable_flags(PyObject *m) #define freeaddrinfo fake_freeaddrinfo #include "getaddrinfo.c" #endif - #if !defined(HAVE_GETNAMEINFO) #define getnameinfo fake_getnameinfo #include "getnameinfo.c" -#endif // HAVE_GETNAMEINFO +#endif #ifdef MS_WINDOWS #define SOCKETCLOSE closesocket @@ -626,7 +623,6 @@ set_error(void) } -#if defined(HAVE_GETHOSTBYNAME_R) || defined (HAVE_GETHOSTBYNAME) || defined (HAVE_GETHOSTBYADDR) static PyObject * set_herror(int h_error) { @@ -644,10 +640,8 @@ set_herror(int h_error) return NULL; } -#endif -#ifdef HAVE_GETADDRINFO static PyObject * set_gaierror(int error) { @@ -671,7 +665,6 @@ set_gaierror(int error) return NULL; } -#endif /* Function to perform the setting of socket blocking mode internally. block = (1 | 0). */ @@ -1023,7 +1016,6 @@ init_sockobject(PySocketSockObject *s, } -#ifdef HAVE_SOCKETPAIR /* Create a new socket object. This just creates the object and initializes it. If the creation fails, return NULL and set an exception (implicit @@ -1043,7 +1035,6 @@ new_sockobject(SOCKET_T fd, int family, int type, int proto) } return s; } -#endif /* Lock to allow python interpreter to continue, but only allow one @@ -1053,7 +1044,6 @@ static PyThread_type_lock netdb_lock; #endif -#ifdef HAVE_GETADDRINFO /* Convert a string specifying a host name or one of a few symbolic names to a numeric IP address. This usually calls gethostbyname() to do the work; the names "" and "<broadcast>" are special. @@ -1210,7 +1200,7 @@ setipaddr(const char *name, struct sockaddr *addr_ret, size_t addr_ret_size, int return -1; } } -#endif // HAVE_GETADDRINFO + /* Convert IPv4 sockaddr to a Python str. */ @@ -1634,7 +1624,6 @@ makesockaddr(SOCKET_T sockfd, struct sockaddr *addr, size_t addrlen, int proto) } } -#if defined(HAVE_BIND) || defined(HAVE_CONNECTTO) || defined(CMSG_LEN) /* Helper for getsockaddrarg: bypass IDNA for ASCII-only host names (in particular, numeric IP addresses). */ struct maybe_idna { @@ -1733,10 +1722,8 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args, struct sockaddr_un* addr = &addrbuf->un; #ifdef __linux__ - if (path.len == 0 || *(const char *)path.buf == 0) { - /* Linux abstract namespace extension: - - Empty address auto-binding to an abstract address - - Address that starts with null byte */ + if (path.len > 0 && *(const char *)path.buf == 0) { + /* Linux abstract namespace extension */ if ((size_t)path.len > sizeof addr->sun_path) { PyErr_SetString(PyExc_OSError, "AF_UNIX path too long"); @@ -2499,7 +2486,6 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args, } } -#endif // defined(HAVE_BIND) || defined(HAVE_CONNECTTO) || defined(CMSG_LEN) /* Get the address length according to the socket object's address family. @@ -2797,7 +2783,6 @@ struct sock_accept { SOCKET_T result; }; -#if defined(HAVE_ACCEPT) || defined(HAVE_ACCEPT4) #if defined(HAVE_ACCEPT4) && defined(SOCK_CLOEXEC) /* accept4() is available on Linux 2.6.28+ and glibc 2.10 */ static int accept4_works = -1; @@ -2911,8 +2896,6 @@ PyDoc_STRVAR(accept_doc, Wait for an incoming connection. Return a new socket file descriptor\n\ representing the connection, and the address of the client.\n\ For IP sockets, the address info is a pair (hostaddr, port)."); -#endif // defined(HAVE_ACCEPT) || defined(HAVE_ACCEPT4) - /* s.setblocking(flag) method. Argument: False -- non-blocking mode; same as settimeout(0) @@ -3077,7 +3060,6 @@ Returns the timeout in seconds (float) associated with socket\n\ operations. A timeout of None indicates that timeouts on socket\n\ operations are disabled."); -#ifdef HAVE_SETSOCKOPT /* s.setsockopt() method. With an integer third argument, sets an integer optval with optlen=4. With None as third argument and an integer fourth argument, set @@ -3167,7 +3149,7 @@ setsockopt(level, option, None, optlen: int)\n\ Set a socket option. See the Unix manual for level and option.\n\ The value argument can either be an integer, a string buffer, or\n\ None, optlen."); -#endif + /* s.getsockopt() method. With two arguments, retrieves an integer option. @@ -3241,7 +3223,6 @@ If a nonzero buffersize argument is given, the return value is a\n\ string of that length; otherwise it is an integer."); -#ifdef HAVE_BIND /* s.bind(sockaddr) method */ static PyObject * @@ -3273,7 +3254,6 @@ PyDoc_STRVAR(bind_doc, Bind the socket to a local address. For IP sockets, the address is a\n\ pair (host, port); the host must refer to the local host. For raw packet\n\ sockets the address is a tuple (ifname, proto [,pkttype [,hatype [,addr]]])"); -#endif /* s.close() method. @@ -3326,7 +3306,6 @@ Close the socket object without closing the underlying file descriptor.\n\ The object cannot be used after this call, but the file descriptor\n\ can be reused for other purposes. The file descriptor is returned."); -#ifdef HAVE_CONNECT static int sock_connect_impl(PySocketSockObject *s, void* Py_UNUSED(data)) { @@ -3474,7 +3453,6 @@ PyDoc_STRVAR(connect_ex_doc, \n\ This is like connect(address), but returns an error code (the errno value)\n\ instead of raising an exception when an error occurs."); -#endif // HAVE_CONNECT /* s.fileno() method */ @@ -3491,7 +3469,6 @@ PyDoc_STRVAR(fileno_doc, Return the integer file descriptor of the socket."); -#ifdef HAVE_GETSOCKNAME /* s.getsockname() method */ static PyObject * @@ -3519,7 +3496,6 @@ PyDoc_STRVAR(getsockname_doc, Return the address of the local endpoint. The format depends on the\n\ address family. For IPv4 sockets, the address info is a pair\n\ (hostaddr, port)."); -#endif #ifdef HAVE_GETPEERNAME /* Cray APP doesn't have this :-( */ @@ -3553,7 +3529,6 @@ info is a pair (hostaddr, port)."); #endif /* HAVE_GETPEERNAME */ -#ifdef HAVE_LISTEN /* s.listen(n) method */ static PyObject * @@ -3586,7 +3561,6 @@ Enable a server to accept connections. If backlog is specified, it must be\n\ at least 0 (if it is lower, it is set to 0); it specifies the number of\n\ unaccepted connections that the system will allow before refusing new\n\ connections. If not specified, a default reasonable value is chosen."); -#endif struct sock_recv { char *cbuf; @@ -3763,7 +3737,6 @@ struct sock_recvfrom { Py_ssize_t result; }; -#ifdef HAVE_RECVFROM static int sock_recvfrom_impl(PySocketSockObject *s, void *data) { @@ -3936,7 +3909,6 @@ PyDoc_STRVAR(recvfrom_into_doc, "recvfrom_into(buffer[, nbytes[, flags]]) -> (nbytes, address info)\n\ \n\ Like recv_into(buffer[, nbytes[, flags]]) but also return the sender's address info."); -#endif /* The sendmsg() and recvmsg[_into]() methods require a working CMSG_LEN(). See the comment near get_CMSG_LEN(). */ @@ -4403,7 +4375,6 @@ until all data is sent. If an error occurs, it's impossible\n\ to tell how much data has been sent."); -#ifdef HAVE_SENDTO struct sock_sendto { char *buf; Py_ssize_t len; @@ -4496,7 +4467,6 @@ PyDoc_STRVAR(sendto_doc, \n\ Like send(data, flags) but allows specifying the destination address.\n\ For IP sockets, the address is a pair (hostaddr, port)."); -#endif /* The sendmsg() and recvmsg[_into]() methods require a working @@ -5060,22 +5030,16 @@ socket.fromshare()."); /* List of methods for socket objects */ static PyMethodDef sock_methods[] = { -#if defined(HAVE_ACCEPT) || defined(HAVE_ACCEPT4) {"_accept", (PyCFunction)sock_accept, METH_NOARGS, accept_doc}, -#endif -#ifdef HAVE_BIND {"bind", (PyCFunction)sock_bind, METH_O, bind_doc}, -#endif {"close", (PyCFunction)sock_close, METH_NOARGS, sock_close_doc}, -#ifdef HAVE_CONNECT {"connect", (PyCFunction)sock_connect, METH_O, connect_doc}, {"connect_ex", (PyCFunction)sock_connect_ex, METH_O, connect_ex_doc}, -#endif {"detach", (PyCFunction)sock_detach, METH_NOARGS, detach_doc}, {"fileno", (PyCFunction)sock_fileno, METH_NOARGS, @@ -5084,10 +5048,8 @@ static PyMethodDef sock_methods[] = { {"getpeername", (PyCFunction)sock_getpeername, METH_NOARGS, getpeername_doc}, #endif -#ifdef HAVE_GETSOCKNAME {"getsockname", (PyCFunction)sock_getsockname, METH_NOARGS, getsockname_doc}, -#endif {"getsockopt", (PyCFunction)sock_getsockopt, METH_VARARGS, getsockopt_doc}, #if defined(MS_WINDOWS) && defined(SIO_RCVALL) @@ -5098,28 +5060,22 @@ static PyMethodDef sock_methods[] = { {"share", (PyCFunction)sock_share, METH_VARARGS, sock_share_doc}, #endif -#ifdef HAVE_LISTEN {"listen", (PyCFunction)sock_listen, METH_VARARGS, listen_doc}, -#endif {"recv", (PyCFunction)sock_recv, METH_VARARGS, recv_doc}, {"recv_into", _PyCFunction_CAST(sock_recv_into), METH_VARARGS | METH_KEYWORDS, recv_into_doc}, -#ifdef HAVE_RECVFROM {"recvfrom", (PyCFunction)sock_recvfrom, METH_VARARGS, recvfrom_doc}, {"recvfrom_into", _PyCFunction_CAST(sock_recvfrom_into), METH_VARARGS | METH_KEYWORDS, recvfrom_into_doc}, -#endif {"send", (PyCFunction)sock_send, METH_VARARGS, send_doc}, {"sendall", (PyCFunction)sock_sendall, METH_VARARGS, sendall_doc}, -#ifdef HAVE_SENDTO {"sendto", (PyCFunction)sock_sendto, METH_VARARGS, sendto_doc}, -#endif {"setblocking", (PyCFunction)sock_setblocking, METH_O, setblocking_doc}, {"getblocking", (PyCFunction)sock_getblocking, METH_NOARGS, @@ -5128,10 +5084,8 @@ static PyMethodDef sock_methods[] = { settimeout_doc}, {"gettimeout", (PyCFunction)sock_gettimeout, METH_NOARGS, gettimeout_doc}, -#ifdef HAVE_SETSOCKOPT {"setsockopt", (PyCFunction)sock_setsockopt, METH_VARARGS, setsockopt_doc}, -#endif #ifdef HAVE_SHUTDOWN {"shutdown", (PyCFunction)sock_shutdown, METH_O, shutdown_doc}, @@ -5267,16 +5221,6 @@ static int sock_cloexec_works = -1; /*ARGSUSED*/ -#ifndef HAVE_SOCKET -#define socket stub_socket -static int -socket(int domain, int type, int protocol) -{ - errno = ENOTSUP; - return INVALID_SOCKET; -} -#endif - /*[clinic input] _socket.socket.__init__ as sock_initobj family: int = -1 @@ -5363,7 +5307,6 @@ sock_initobj_impl(PySocketSockObject *self, int family, int type, int proto, socklen_t addrlen = sizeof(sock_addr_t); memset(&addrbuf, 0, addrlen); -#ifdef HAVE_GETSOCKNAME if (getsockname(fd, SAS2SA(&addrbuf), &addrlen) == 0) { if (family == -1) { family = SAS2SA(&addrbuf)->sa_family; @@ -5382,7 +5325,6 @@ sock_initobj_impl(PySocketSockObject *self, int family, int type, int proto, return -1; } } -#endif // HAVE_GETSOCKNAME #ifdef SO_TYPE if (type == -1) { int tmp; @@ -5561,7 +5503,6 @@ static PyTypeObject sock_type = { }; -#ifdef HAVE_GETHOSTNAME /* Python interface to gethostname(). */ /*ARGSUSED*/ @@ -5625,7 +5566,6 @@ PyDoc_STRVAR(gethostname_doc, "gethostname() -> string\n\ \n\ Return the current host name."); -#endif #ifdef HAVE_SETHOSTNAME PyDoc_STRVAR(sethostname_doc, @@ -5669,7 +5609,6 @@ extern int sethostname(const char *, size_t); } #endif -#ifdef HAVE_GETADDRINFO /* Python interface to gethostbyname(name). */ /*ARGSUSED*/ @@ -5697,10 +5636,8 @@ PyDoc_STRVAR(gethostbyname_doc, "gethostbyname(host) -> address\n\ \n\ Return the IP address (a string of the form '255.255.255.255') for a host."); -#endif -#if defined(HAVE_GETHOSTBYNAME_R) || defined (HAVE_GETHOSTBYNAME) || defined (HAVE_GETHOSTBYADDR) static PyObject* sock_decode_hostname(const char *name) { @@ -5842,9 +5779,8 @@ gethost_common(struct hostent *h, struct sockaddr *addr, size_t alen, int af) Py_XDECREF(addr_list); return rtn_tuple; } -#endif -#if defined(HAVE_GETHOSTBYNAME_R) || defined (HAVE_GETHOSTBYNAME) + /* Python interface to gethostbyname_ex(name). */ /*ARGSUSED*/ @@ -5917,9 +5853,8 @@ PyDoc_STRVAR(ghbn_ex_doc, \n\ Return the true host name, a list of aliases, and a list of IP addresses,\n\ for a host. The host argument is a string giving a host name or IP number."); -#endif -#if defined(HAVE_GETHOSTBYNAME_R) || defined (HAVE_GETHOSTBYADDR) + /* Python interface to gethostbyaddr(IP). */ /*ARGSUSED*/ @@ -6014,9 +5949,8 @@ PyDoc_STRVAR(gethostbyaddr_doc, \n\ Return the true host name, a list of aliases, and a list of IP addresses,\n\ for a host. The host argument is a string giving a host name or IP number."); -#endif -#ifdef HAVE_GETSERVBYNAME + /* Python interface to getservbyname(name). This only returns the port number, since the other info is already known or not useful (like the list of aliases). */ @@ -6050,9 +5984,8 @@ PyDoc_STRVAR(getservbyname_doc, Return a port number from a service name and protocol name.\n\ The optional protocol name, if given, should be 'tcp' or 'udp',\n\ otherwise any protocol will match."); -#endif -#ifdef HAVE_GETSERVBYPORT + /* Python interface to getservbyport(port). This only returns the service name, since the other info is already known or not useful (like the list of aliases). */ @@ -6093,9 +6026,7 @@ PyDoc_STRVAR(getservbyport_doc, Return the service name from a port number and protocol name.\n\ The optional protocol name, if given, should be 'tcp' or 'udp',\n\ otherwise any protocol will match."); -#endif -#ifdef HAVE_GETPROTOBYNAME /* Python interface to getprotobyname(name). This only returns the protocol number, since the other info is already known or not useful (like the list of aliases). */ @@ -6122,7 +6053,6 @@ PyDoc_STRVAR(getprotobyname_doc, "getprotobyname(name) -> integer\n\ \n\ Return the protocol number for the named protocol. (Rarely used.)"); -#endif static PyObject * socket_close(PyObject *self, PyObject *fdobj) @@ -6492,7 +6422,6 @@ socket_inet_aton(PyObject *self, PyObject *args) #endif } -#ifdef HAVE_INET_NTOA PyDoc_STRVAR(inet_ntoa_doc, "inet_ntoa(packed_ip) -> ip_address_string\n\ \n\ @@ -6521,7 +6450,6 @@ socket_inet_ntoa(PyObject *self, PyObject *args) SUPPRESS_DEPRECATED_CALL return PyUnicode_FromString(inet_ntoa(packed_addr)); } -#endif // HAVE_INET_NTOA #ifdef HAVE_INET_PTON @@ -6633,7 +6561,6 @@ socket_inet_ntop(PyObject *self, PyObject *args) #endif /* HAVE_INET_PTON */ -#ifdef HAVE_GETADDRINFO /* Python interface to getaddrinfo(host, port). */ /*ARGSUSED*/ @@ -6761,9 +6688,7 @@ PyDoc_STRVAR(getaddrinfo_doc, -> list of (family, type, proto, canonname, sockaddr)\n\ \n\ Resolve host and port into addrinfo struct."); -#endif // HAVE_GETADDRINFO -#ifdef HAVE_GETNAMEINFO /* Python interface to getnameinfo(sa, flags). */ /*ARGSUSED*/ @@ -6864,7 +6789,7 @@ PyDoc_STRVAR(getnameinfo_doc, "getnameinfo(sockaddr, flags) --> (host, port)\n\ \n\ Get host and port for a sockaddr."); -#endif // HAVE_GETNAMEINFO + /* Python API to getting and setting the default timeout value. */ @@ -7120,38 +7045,24 @@ range of values."); /* List of functions exported by this module. */ static PyMethodDef socket_methods[] = { -#ifdef HAVE_GETADDRINFO {"gethostbyname", socket_gethostbyname, METH_VARARGS, gethostbyname_doc}, -#endif -#if defined(HAVE_GETHOSTBYNAME_R) || defined (HAVE_GETHOSTBYNAME) {"gethostbyname_ex", socket_gethostbyname_ex, METH_VARARGS, ghbn_ex_doc}, -#endif -#if defined(HAVE_GETHOSTBYNAME_R) || defined (HAVE_GETHOSTBYADDR) {"gethostbyaddr", socket_gethostbyaddr, METH_VARARGS, gethostbyaddr_doc}, -#endif -#ifdef HAVE_GETHOSTNAME {"gethostname", socket_gethostname, METH_NOARGS, gethostname_doc}, -#endif #ifdef HAVE_SETHOSTNAME {"sethostname", socket_sethostname, METH_VARARGS, sethostname_doc}, #endif -#ifdef HAVE_GETSERVBYNAME {"getservbyname", socket_getservbyname, METH_VARARGS, getservbyname_doc}, -#endif -#ifdef HAVE_GETSERVBYPORT {"getservbyport", socket_getservbyport, METH_VARARGS, getservbyport_doc}, -#endif -#ifdef HAVE_GETPROTOBYNAME {"getprotobyname", socket_getprotobyname, METH_VARARGS, getprotobyname_doc}, -#endif {"close", socket_close, METH_O, close_doc}, #ifndef NO_DUP @@ -7172,24 +7083,18 @@ static PyMethodDef socket_methods[] = { METH_O, htonl_doc}, {"inet_aton", socket_inet_aton, METH_VARARGS, inet_aton_doc}, -#ifdef HAVE_INET_NTOA {"inet_ntoa", socket_inet_ntoa, METH_VARARGS, inet_ntoa_doc}, -#endif #ifdef HAVE_INET_PTON {"inet_pton", socket_inet_pton, METH_VARARGS, inet_pton_doc}, {"inet_ntop", socket_inet_ntop, METH_VARARGS, inet_ntop_doc}, #endif -#ifdef HAVE_GETADDRINFO {"getaddrinfo", _PyCFunction_CAST(socket_getaddrinfo), METH_VARARGS | METH_KEYWORDS, getaddrinfo_doc}, -#endif -#ifdef HAVE_GETNAMEINFO {"getnameinfo", socket_getnameinfo, METH_VARARGS, getnameinfo_doc}, -#endif {"getdefaulttimeout", socket_getdefaulttimeout, METH_NOARGS, getdefaulttimeout_doc}, {"setdefaulttimeout", socket_setdefaulttimeout, @@ -7565,6 +7470,7 @@ PyInit__socket(void) /* for setsockopt() */ PyModule_AddIntMacro(m, HVSOCKET_CONNECT_TIMEOUT); PyModule_AddIntMacro(m, HVSOCKET_CONNECT_TIMEOUT_MAX); + PyModule_AddIntMacro(m, HVSOCKET_CONTAINER_PASSTHRU); PyModule_AddIntMacro(m, HVSOCKET_CONNECTED_SUSPEND); PyModule_AddIntMacro(m, HVSOCKET_ADDRESS_FLAG_PASSTHRU); @@ -7719,9 +7625,7 @@ PyInit__socket(void) /* SOCK_RAW is marked as optional in the POSIX specification */ PyModule_AddIntMacro(m, SOCK_RAW); #endif -#ifdef SOCK_SEQPACKET PyModule_AddIntMacro(m, SOCK_SEQPACKET); -#endif #if defined(SOCK_RDM) PyModule_AddIntMacro(m, SOCK_RDM); #endif @@ -7879,10 +7783,6 @@ PyInit__socket(void) PyModule_AddIntMacro(m, MSG_EOR); #endif #ifdef MSG_TRUNC - // workaround for https://github.com/WebAssembly/wasi-libc/issues/305 - #if defined(__wasi__) && !defined(__WASI_RIFLAGS_RECV_DATA_TRUNCATED) - # define __WASI_RIFLAGS_RECV_DATA_TRUNCATED 2 - #endif PyModule_AddIntMacro(m, MSG_TRUNC); #endif #ifdef MSG_CTRUNC diff --git a/Modules/syslogmodule.c b/Modules/syslogmodule.c index c409fe968f8894..2655a0c94bbd95 100644 --- a/Modules/syslogmodule.c +++ b/Modules/syslogmodule.c @@ -87,10 +87,6 @@ syslog_get_argv(void) } scriptobj = PyList_GetItem(argv, 0); - if (scriptobj == NULL) { - PyErr_Clear(); - return NULL; - } if (!PyUnicode_Check(scriptobj)) { return(NULL); } @@ -100,16 +96,16 @@ syslog_get_argv(void) } slash = PyUnicode_FindChar(scriptobj, SEP, 0, scriptlen, -1); - if (slash == -2) { - PyErr_Clear(); + if (slash == -2) return NULL; - } if (slash != -1) { return PyUnicode_Substring(scriptobj, slash + 1, scriptlen); } else { Py_INCREF(scriptobj); return(scriptobj); } + + return(NULL); } @@ -118,41 +114,42 @@ syslog_openlog(PyObject * self, PyObject * args, PyObject *kwds) { long logopt = 0; long facility = LOG_USER; - PyObject *ident = NULL; + PyObject *new_S_ident_o = NULL; static char *keywords[] = {"ident", "logoption", "facility", 0}; - const char *ident_str = NULL; + const char *ident = NULL; if (!PyArg_ParseTupleAndKeywords(args, kwds, - "|Ull:openlog", keywords, &ident, &logopt, &facility)) + "|Ull:openlog", keywords, &new_S_ident_o, &logopt, &facility)) return NULL; - if (ident) { - Py_INCREF(ident); + if (new_S_ident_o) { + Py_INCREF(new_S_ident_o); } - else { - /* get sys.argv[0] or NULL if we can't for some reason */ - ident = syslog_get_argv(); + + /* get sys.argv[0] or NULL if we can't for some reason */ + if (!new_S_ident_o) { + new_S_ident_o = syslog_get_argv(); } - /* At this point, ident should be INCREF()ed. openlog(3) does not - * make a copy, and syslog(3) later uses it. We can't garbagecollect it. + Py_XDECREF(S_ident_o); + S_ident_o = new_S_ident_o; + + /* At this point, S_ident_o should be INCREF()ed. openlog(3) does not + * make a copy, and syslog(3) later uses it. We can't garbagecollect it * If NULL, just let openlog figure it out (probably using C argv[0]). */ - if (ident) { - ident_str = PyUnicode_AsUTF8(ident); - if (ident_str == NULL) { - Py_DECREF(ident); + if (S_ident_o) { + ident = PyUnicode_AsUTF8(S_ident_o); + if (ident == NULL) return NULL; - } } - if (PySys_Audit("syslog.openlog", "Oll", ident ? ident : Py_None, logopt, facility) < 0) { - Py_DECREF(ident); + + if (PySys_Audit("syslog.openlog", "sll", ident, logopt, facility) < 0) { return NULL; } - openlog(ident_str, logopt, facility); + openlog(ident, logopt, facility); S_log_open = 1; - Py_XSETREF(S_ident_o, ident); Py_RETURN_NONE; } @@ -191,26 +188,14 @@ syslog_syslog(PyObject * self, PyObject * args) */ if ((openargs = PyTuple_New(0))) { PyObject *openlog_ret = syslog_openlog(self, openargs, NULL); + Py_XDECREF(openlog_ret); Py_DECREF(openargs); - if (openlog_ret == NULL) { - return NULL; - } - Py_DECREF(openlog_ret); - } - else { - return NULL; } } - /* Incref ident, because it can be decrefed if syslog.openlog() is - * called when the GIL is released. - */ - PyObject *ident = S_ident_o; - Py_XINCREF(ident); Py_BEGIN_ALLOW_THREADS; syslog(priority, "%s", message); Py_END_ALLOW_THREADS; - Py_XDECREF(ident); Py_RETURN_NONE; } @@ -370,4 +355,4 @@ PyMODINIT_FUNC PyInit_syslog(void) { return PyModuleDef_Init(&syslogmodule); -} +} \ No newline at end of file diff --git a/Modules/timemodule.c b/Modules/timemodule.c index 11c888af03e82d..18f9ddb909c028 100644 --- a/Modules/timemodule.c +++ b/Modules/timemodule.c @@ -910,9 +910,14 @@ is not present, current time as returned by localtime() is used.\n\ static PyObject * time_strptime(PyObject *self, PyObject *args) { - PyObject *func, *result; + PyObject *module, *func, *result; - func = _PyImport_GetModuleAttrString("_strptime", "_strptime_time"); + module = PyImport_ImportModule("_strptime"); + if (!module) + return NULL; + + func = PyObject_GetAttr(module, &_Py_ID(_strptime_time)); + Py_DECREF(module); if (!func) { return NULL; } diff --git a/Modules/unicodedata.c b/Modules/unicodedata.c index 32014707bce747..64918115283d1a 100644 --- a/Modules/unicodedata.c +++ b/Modules/unicodedata.c @@ -1046,12 +1046,11 @@ is_unified_ideograph(Py_UCS4 code) (0x3400 <= code && code <= 0x4DBF) || /* CJK Ideograph Extension A */ (0x4E00 <= code && code <= 0x9FFF) || /* CJK Ideograph */ (0x20000 <= code && code <= 0x2A6DF) || /* CJK Ideograph Extension B */ - (0x2A700 <= code && code <= 0x2B739) || /* CJK Ideograph Extension C */ + (0x2A700 <= code && code <= 0x2B738) || /* CJK Ideograph Extension C */ (0x2B740 <= code && code <= 0x2B81D) || /* CJK Ideograph Extension D */ (0x2B820 <= code && code <= 0x2CEA1) || /* CJK Ideograph Extension E */ (0x2CEB0 <= code && code <= 0x2EBE0) || /* CJK Ideograph Extension F */ - (0x30000 <= code && code <= 0x3134A) || /* CJK Ideograph Extension G */ - (0x31350 <= code && code <= 0x323AF); /* CJK Ideograph Extension H */ + (0x30000 <= code && code <= 0x3134A); /* CJK Ideograph Extension G */ } /* macros used to determine if the given code point is in the PUA range that diff --git a/Modules/unicodedata_db.h b/Modules/unicodedata_db.h index 4c4b2f589c50bf..f56fa035b685f7 100644 --- a/Modules/unicodedata_db.h +++ b/Modules/unicodedata_db.h @@ -1,13 +1,13 @@ /* this file was generated by Tools/unicode/makeunicodedata.py 3.3 */ -#define UNIDATA_VERSION "15.0.0" +#define UNIDATA_VERSION "14.0.0" /* a list of unique database records */ const _PyUnicode_DatabaseRecord _PyUnicode_Database_Records[] = { {0, 0, 0, 0, 0, 0}, - {13, 0, 15, 0, 0, 0}, - {13, 0, 17, 0, 0, 0}, - {13, 0, 16, 0, 0, 0}, - {13, 0, 18, 0, 0, 0}, + {13, 0, 15, 0, 5, 0}, + {13, 0, 17, 0, 5, 0}, + {13, 0, 16, 0, 5, 0}, + {13, 0, 18, 0, 5, 0}, {10, 0, 18, 0, 3, 0}, {26, 0, 19, 0, 3, 0}, {26, 0, 11, 0, 3, 0}, @@ -24,44 +24,44 @@ const _PyUnicode_DatabaseRecord _PyUnicode_Database_Records[] = { {29, 0, 19, 0, 3, 0}, {20, 0, 19, 0, 3, 0}, {2, 0, 1, 0, 3, 0}, - {10, 0, 13, 0, 0, 136}, + {10, 0, 13, 0, 5, 136}, {26, 0, 19, 0, 4, 0}, {28, 0, 11, 0, 4, 0}, {30, 0, 19, 0, 3, 0}, {29, 0, 19, 0, 4, 136}, - {30, 0, 19, 0, 0, 0}, + {30, 0, 19, 0, 5, 0}, {19, 0, 1, 0, 4, 136}, - {24, 0, 19, 1, 0, 0}, + {24, 0, 19, 1, 5, 0}, {14, 0, 15, 0, 4, 0}, {30, 0, 19, 0, 4, 0}, {29, 0, 19, 0, 3, 136}, {30, 0, 11, 0, 4, 0}, {27, 0, 11, 0, 4, 0}, {9, 0, 9, 0, 4, 136}, - {2, 0, 1, 0, 0, 136}, - {25, 0, 19, 1, 0, 0}, + {2, 0, 1, 0, 5, 136}, + {25, 0, 19, 1, 5, 0}, {9, 0, 19, 0, 4, 136}, - {1, 0, 1, 0, 0, 10}, + {1, 0, 1, 0, 5, 10}, {1, 0, 1, 0, 4, 0}, {27, 0, 19, 0, 4, 0}, {2, 0, 1, 0, 4, 0}, {2, 0, 1, 0, 4, 10}, - {2, 0, 1, 0, 0, 10}, - {1, 0, 1, 0, 0, 0}, + {2, 0, 1, 0, 5, 10}, + {1, 0, 1, 0, 5, 0}, {1, 0, 1, 0, 4, 136}, {2, 0, 1, 0, 4, 136}, - {2, 0, 1, 0, 0, 0}, - {19, 0, 1, 0, 0, 0}, - {1, 0, 1, 0, 0, 136}, - {3, 0, 1, 0, 0, 136}, - {18, 0, 1, 0, 0, 136}, - {18, 0, 19, 0, 0, 0}, - {18, 0, 1, 0, 0, 0}, - {29, 0, 19, 0, 0, 0}, + {2, 0, 1, 0, 5, 0}, + {19, 0, 1, 0, 5, 0}, + {1, 0, 1, 0, 5, 136}, + {3, 0, 1, 0, 5, 136}, + {18, 0, 1, 0, 5, 136}, + {18, 0, 19, 0, 5, 0}, + {18, 0, 1, 0, 5, 0}, + {29, 0, 19, 0, 5, 0}, {29, 0, 19, 0, 4, 0}, {18, 0, 19, 0, 4, 0}, {18, 0, 1, 0, 4, 0}, - {29, 0, 19, 0, 0, 136}, + {29, 0, 19, 0, 5, 136}, {4, 230, 14, 0, 4, 80}, {4, 230, 14, 0, 4, 0}, {4, 232, 14, 0, 4, 0}, @@ -77,173 +77,173 @@ const _PyUnicode_DatabaseRecord _PyUnicode_Database_Records[] = { {4, 0, 14, 0, 4, 0}, {4, 233, 14, 0, 4, 0}, {4, 234, 14, 0, 4, 0}, - {18, 0, 19, 0, 0, 170}, - {26, 0, 19, 0, 0, 170}, - {29, 0, 19, 0, 0, 138}, - {1, 0, 1, 0, 0, 138}, - {27, 0, 19, 0, 0, 0}, + {18, 0, 19, 0, 5, 170}, + {26, 0, 19, 0, 5, 170}, + {29, 0, 19, 0, 5, 138}, + {1, 0, 1, 0, 5, 138}, + {27, 0, 19, 0, 5, 0}, {1, 0, 1, 0, 4, 10}, - {30, 0, 1, 0, 0, 0}, - {4, 230, 14, 0, 0, 0}, - {6, 0, 14, 0, 0, 0}, - {26, 0, 1, 0, 0, 0}, - {21, 0, 19, 0, 0, 0}, - {28, 0, 11, 0, 0, 0}, - {4, 220, 14, 0, 0, 0}, - {4, 222, 14, 0, 0, 0}, - {4, 228, 14, 0, 0, 0}, - {4, 10, 14, 0, 0, 0}, - {4, 11, 14, 0, 0, 0}, - {4, 12, 14, 0, 0, 0}, - {4, 13, 14, 0, 0, 0}, - {4, 14, 14, 0, 0, 0}, - {4, 15, 14, 0, 0, 0}, - {4, 16, 14, 0, 0, 0}, - {4, 17, 14, 0, 0, 0}, - {4, 18, 14, 0, 0, 0}, - {4, 19, 14, 0, 0, 0}, - {4, 20, 14, 0, 0, 0}, - {4, 21, 14, 0, 0, 0}, - {4, 22, 14, 0, 0, 0}, - {21, 0, 4, 0, 0, 0}, - {4, 23, 14, 0, 0, 0}, - {26, 0, 4, 0, 0, 0}, - {4, 24, 14, 0, 0, 0}, - {4, 25, 14, 0, 0, 0}, - {19, 0, 4, 0, 0, 0}, - {14, 0, 12, 0, 0, 0}, - {27, 0, 5, 0, 0, 0}, - {26, 0, 11, 0, 0, 0}, - {28, 0, 5, 0, 0, 0}, - {26, 0, 13, 0, 0, 0}, - {26, 0, 5, 0, 0, 0}, - {4, 30, 14, 0, 0, 0}, - {4, 31, 14, 0, 0, 0}, - {4, 32, 14, 0, 0, 0}, - {14, 0, 5, 0, 0, 0}, - {19, 0, 5, 0, 0, 0}, - {19, 0, 5, 0, 0, 10}, - {18, 0, 5, 0, 0, 0}, - {4, 27, 14, 0, 0, 0}, - {4, 28, 14, 0, 0, 0}, - {4, 29, 14, 0, 0, 0}, - {4, 33, 14, 0, 0, 0}, - {4, 34, 14, 0, 0, 0}, - {4, 230, 14, 0, 0, 80}, - {4, 220, 14, 0, 0, 80}, - {7, 0, 12, 0, 0, 0}, - {26, 0, 12, 0, 0, 0}, - {4, 35, 14, 0, 0, 0}, - {19, 0, 5, 0, 0, 136}, - {7, 0, 9, 0, 0, 0}, - {30, 0, 5, 0, 0, 0}, - {4, 36, 14, 0, 0, 0}, - {4, 0, 14, 0, 0, 0}, - {7, 0, 4, 0, 0, 0}, - {18, 0, 4, 0, 0, 0}, - {26, 0, 19, 0, 0, 0}, - {28, 0, 4, 0, 0, 0}, - {29, 0, 5, 0, 0, 0}, - {5, 0, 1, 0, 0, 0}, - {19, 0, 1, 0, 0, 10}, - {4, 7, 14, 0, 0, 80}, - {4, 9, 14, 0, 0, 0}, - {19, 0, 1, 0, 0, 170}, - {7, 0, 1, 0, 0, 0}, - {4, 7, 14, 0, 0, 0}, - {5, 0, 1, 0, 0, 80}, - {5, 0, 1, 0, 0, 10}, - {9, 0, 1, 0, 0, 0}, - {4, 0, 14, 0, 0, 80}, - {4, 0, 14, 0, 0, 10}, - {4, 84, 14, 0, 0, 0}, - {4, 91, 14, 0, 0, 80}, - {9, 0, 19, 0, 0, 0}, - {4, 0, 1, 0, 0, 0}, - {4, 9, 14, 0, 0, 80}, - {19, 0, 1, 0, 0, 136}, - {4, 103, 14, 0, 0, 0}, - {4, 107, 14, 0, 0, 0}, - {4, 118, 14, 0, 0, 0}, - {4, 122, 14, 0, 0, 0}, - {26, 0, 1, 0, 0, 136}, - {4, 216, 14, 0, 0, 0}, - {22, 0, 19, 1, 0, 0}, - {23, 0, 19, 1, 0, 0}, - {4, 129, 14, 0, 0, 0}, - {4, 130, 14, 0, 0, 0}, - {4, 0, 14, 0, 0, 170}, - {4, 132, 14, 0, 0, 0}, - {4, 0, 14, 0, 0, 136}, + {30, 0, 1, 0, 5, 0}, + {4, 230, 14, 0, 5, 0}, + {6, 0, 14, 0, 5, 0}, + {26, 0, 1, 0, 5, 0}, + {21, 0, 19, 0, 5, 0}, + {28, 0, 11, 0, 5, 0}, + {4, 220, 14, 0, 5, 0}, + {4, 222, 14, 0, 5, 0}, + {4, 228, 14, 0, 5, 0}, + {4, 10, 14, 0, 5, 0}, + {4, 11, 14, 0, 5, 0}, + {4, 12, 14, 0, 5, 0}, + {4, 13, 14, 0, 5, 0}, + {4, 14, 14, 0, 5, 0}, + {4, 15, 14, 0, 5, 0}, + {4, 16, 14, 0, 5, 0}, + {4, 17, 14, 0, 5, 0}, + {4, 18, 14, 0, 5, 0}, + {4, 19, 14, 0, 5, 0}, + {4, 20, 14, 0, 5, 0}, + {4, 21, 14, 0, 5, 0}, + {4, 22, 14, 0, 5, 0}, + {21, 0, 4, 0, 5, 0}, + {4, 23, 14, 0, 5, 0}, + {26, 0, 4, 0, 5, 0}, + {4, 24, 14, 0, 5, 0}, + {4, 25, 14, 0, 5, 0}, + {19, 0, 4, 0, 5, 0}, + {14, 0, 12, 0, 5, 0}, + {27, 0, 5, 0, 5, 0}, + {26, 0, 11, 0, 5, 0}, + {28, 0, 5, 0, 5, 0}, + {26, 0, 13, 0, 5, 0}, + {26, 0, 5, 0, 5, 0}, + {4, 30, 14, 0, 5, 0}, + {4, 31, 14, 0, 5, 0}, + {4, 32, 14, 0, 5, 0}, + {14, 0, 5, 0, 5, 0}, + {19, 0, 5, 0, 5, 0}, + {19, 0, 5, 0, 5, 10}, + {18, 0, 5, 0, 5, 0}, + {4, 27, 14, 0, 5, 0}, + {4, 28, 14, 0, 5, 0}, + {4, 29, 14, 0, 5, 0}, + {4, 33, 14, 0, 5, 0}, + {4, 34, 14, 0, 5, 0}, + {4, 230, 14, 0, 5, 80}, + {4, 220, 14, 0, 5, 80}, + {7, 0, 12, 0, 5, 0}, + {26, 0, 12, 0, 5, 0}, + {4, 35, 14, 0, 5, 0}, + {19, 0, 5, 0, 5, 136}, + {7, 0, 9, 0, 5, 0}, + {30, 0, 5, 0, 5, 0}, + {4, 36, 14, 0, 5, 0}, + {4, 0, 14, 0, 5, 0}, + {7, 0, 4, 0, 5, 0}, + {18, 0, 4, 0, 5, 0}, + {26, 0, 19, 0, 5, 0}, + {28, 0, 4, 0, 5, 0}, + {29, 0, 5, 0, 5, 0}, + {5, 0, 1, 0, 5, 0}, + {19, 0, 1, 0, 5, 10}, + {4, 7, 14, 0, 5, 80}, + {4, 9, 14, 0, 5, 0}, + {19, 0, 1, 0, 5, 170}, + {7, 0, 1, 0, 5, 0}, + {4, 7, 14, 0, 5, 0}, + {5, 0, 1, 0, 5, 80}, + {5, 0, 1, 0, 5, 10}, + {9, 0, 1, 0, 5, 0}, + {4, 0, 14, 0, 5, 80}, + {4, 0, 14, 0, 5, 10}, + {4, 84, 14, 0, 5, 0}, + {4, 91, 14, 0, 5, 80}, + {9, 0, 19, 0, 5, 0}, + {4, 0, 1, 0, 5, 0}, + {4, 9, 14, 0, 5, 80}, + {19, 0, 1, 0, 5, 136}, + {4, 103, 14, 0, 5, 0}, + {4, 107, 14, 0, 5, 0}, + {4, 118, 14, 0, 5, 0}, + {4, 122, 14, 0, 5, 0}, + {26, 0, 1, 0, 5, 136}, + {4, 216, 14, 0, 5, 0}, + {22, 0, 19, 1, 5, 0}, + {23, 0, 19, 1, 5, 0}, + {4, 129, 14, 0, 5, 0}, + {4, 130, 14, 0, 5, 0}, + {4, 0, 14, 0, 5, 170}, + {4, 132, 14, 0, 5, 0}, + {4, 0, 14, 0, 5, 136}, {19, 0, 1, 0, 2, 0}, - {19, 0, 1, 0, 0, 80}, - {10, 0, 18, 0, 0, 0}, - {8, 0, 1, 0, 0, 0}, - {5, 9, 1, 0, 0, 0}, - {14, 0, 15, 0, 0, 0}, - {4, 1, 14, 0, 0, 0}, - {4, 234, 14, 0, 0, 0}, - {4, 214, 14, 0, 0, 0}, - {4, 202, 14, 0, 0, 0}, - {4, 232, 14, 0, 0, 0}, - {4, 218, 14, 0, 0, 0}, - {4, 233, 14, 0, 0, 0}, - {2, 0, 1, 0, 0, 138}, - {2, 0, 1, 0, 0, 170}, - {3, 0, 1, 0, 0, 10}, - {1, 0, 1, 0, 0, 170}, - {29, 0, 19, 0, 0, 170}, - {10, 0, 18, 0, 0, 170}, - {10, 0, 18, 0, 0, 136}, - {14, 0, 1, 0, 0, 0}, - {14, 0, 4, 0, 0, 0}, + {19, 0, 1, 0, 5, 80}, + {10, 0, 18, 0, 5, 0}, + {8, 0, 1, 0, 5, 0}, + {5, 9, 1, 0, 5, 0}, + {14, 0, 15, 0, 5, 0}, + {4, 1, 14, 0, 5, 0}, + {4, 234, 14, 0, 5, 0}, + {4, 214, 14, 0, 5, 0}, + {4, 202, 14, 0, 5, 0}, + {4, 232, 14, 0, 5, 0}, + {4, 218, 14, 0, 5, 0}, + {4, 233, 14, 0, 5, 0}, + {2, 0, 1, 0, 5, 138}, + {2, 0, 1, 0, 5, 170}, + {3, 0, 1, 0, 5, 10}, + {1, 0, 1, 0, 5, 170}, + {29, 0, 19, 0, 5, 170}, + {10, 0, 18, 0, 5, 170}, + {10, 0, 18, 0, 5, 136}, + {14, 0, 1, 0, 5, 0}, + {14, 0, 4, 0, 5, 0}, {21, 0, 19, 0, 4, 0}, - {21, 0, 19, 0, 0, 136}, - {26, 0, 19, 0, 0, 136}, + {21, 0, 19, 0, 5, 136}, + {26, 0, 19, 0, 5, 136}, {24, 0, 19, 0, 4, 0}, {25, 0, 19, 0, 4, 0}, - {22, 0, 19, 0, 0, 0}, - {24, 0, 19, 0, 0, 0}, + {22, 0, 19, 0, 5, 0}, + {24, 0, 19, 0, 5, 0}, {26, 0, 19, 0, 4, 136}, - {11, 0, 18, 0, 0, 0}, - {12, 0, 16, 0, 0, 0}, - {14, 0, 2, 0, 0, 0}, - {14, 0, 6, 0, 0, 0}, - {14, 0, 8, 0, 0, 0}, - {14, 0, 3, 0, 0, 0}, - {14, 0, 7, 0, 0, 0}, + {11, 0, 18, 0, 5, 0}, + {12, 0, 16, 0, 5, 0}, + {14, 0, 2, 0, 5, 0}, + {14, 0, 6, 0, 5, 0}, + {14, 0, 8, 0, 5, 0}, + {14, 0, 3, 0, 5, 0}, + {14, 0, 7, 0, 5, 0}, {26, 0, 11, 0, 4, 0}, {26, 0, 11, 0, 4, 136}, - {26, 0, 11, 0, 0, 136}, - {20, 0, 19, 0, 0, 0}, - {27, 0, 13, 0, 0, 0}, - {14, 0, 20, 0, 0, 0}, - {14, 0, 21, 0, 0, 0}, - {14, 0, 22, 0, 0, 0}, - {14, 0, 23, 0, 0, 0}, - {9, 0, 9, 0, 0, 136}, - {27, 0, 10, 0, 0, 136}, - {27, 0, 19, 0, 0, 136}, - {22, 0, 19, 1, 0, 136}, - {23, 0, 19, 1, 0, 136}, + {26, 0, 11, 0, 5, 136}, + {20, 0, 19, 0, 5, 0}, + {27, 0, 13, 0, 5, 0}, + {14, 0, 20, 0, 5, 0}, + {14, 0, 21, 0, 5, 0}, + {14, 0, 22, 0, 5, 0}, + {14, 0, 23, 0, 5, 0}, + {9, 0, 9, 0, 5, 136}, + {27, 0, 10, 0, 5, 136}, + {27, 0, 19, 0, 5, 136}, + {22, 0, 19, 1, 5, 136}, + {23, 0, 19, 1, 5, 136}, {18, 0, 1, 0, 4, 136}, - {28, 0, 11, 0, 0, 136}, + {28, 0, 11, 0, 5, 136}, {28, 0, 11, 0, 1, 0}, - {30, 0, 19, 0, 0, 136}, + {30, 0, 19, 0, 5, 136}, {30, 0, 19, 0, 4, 136}, {1, 0, 1, 0, 4, 170}, - {30, 0, 11, 0, 0, 0}, - {27, 0, 19, 1, 0, 136}, - {9, 0, 19, 0, 0, 136}, + {30, 0, 11, 0, 5, 0}, + {27, 0, 19, 1, 5, 136}, + {9, 0, 19, 0, 5, 136}, {8, 0, 1, 0, 4, 136}, - {8, 0, 1, 0, 0, 136}, - {27, 0, 19, 0, 0, 10}, - {30, 0, 19, 0, 0, 10}, - {27, 0, 19, 1, 0, 0}, + {8, 0, 1, 0, 5, 136}, + {27, 0, 19, 0, 5, 10}, + {30, 0, 19, 0, 5, 10}, + {27, 0, 19, 1, 5, 0}, {27, 0, 19, 1, 4, 0}, - {27, 0, 19, 1, 0, 10}, - {27, 0, 10, 0, 0, 0}, - {27, 0, 11, 0, 0, 0}, + {27, 0, 19, 1, 5, 10}, + {27, 0, 10, 0, 5, 0}, + {27, 0, 11, 0, 5, 0}, {27, 0, 19, 1, 4, 136}, {27, 0, 19, 1, 4, 10}, {30, 0, 19, 0, 2, 0}, @@ -252,10 +252,10 @@ const _PyUnicode_DatabaseRecord _PyUnicode_Database_Records[] = { {30, 0, 1, 0, 4, 136}, {9, 0, 19, 0, 4, 0}, {27, 0, 19, 0, 2, 0}, - {27, 0, 19, 1, 0, 170}, - {30, 0, 19, 1, 0, 0}, + {27, 0, 19, 1, 5, 170}, + {30, 0, 19, 1, 5, 0}, {30, 0, 19, 0, 2, 136}, - {10, 0, 18, 0, 5, 136}, + {10, 0, 18, 0, 0, 136}, {26, 0, 19, 0, 2, 0}, {18, 0, 1, 0, 2, 0}, {8, 0, 1, 0, 2, 0}, @@ -280,16 +280,15 @@ const _PyUnicode_DatabaseRecord _PyUnicode_Database_Records[] = { {30, 0, 1, 0, 2, 136}, {9, 0, 1, 0, 4, 0}, {9, 0, 19, 0, 2, 136}, - {29, 0, 1, 0, 0, 0}, - {15, 0, 1, 0, 0, 0}, + {29, 0, 1, 0, 5, 0}, + {15, 0, 1, 0, 5, 0}, {16, 0, 1, 0, 4, 0}, {19, 0, 1, 0, 2, 170}, - {0, 0, 0, 0, 2, 0}, - {19, 0, 4, 0, 0, 170}, - {4, 26, 14, 0, 0, 0}, - {19, 0, 4, 0, 0, 136}, - {23, 0, 19, 0, 0, 0}, - {28, 0, 5, 0, 0, 136}, + {19, 0, 4, 0, 5, 170}, + {4, 26, 14, 0, 5, 0}, + {19, 0, 4, 0, 5, 136}, + {23, 0, 19, 0, 5, 0}, + {28, 0, 5, 0, 5, 136}, {26, 0, 19, 0, 2, 136}, {22, 0, 19, 0, 2, 136}, {23, 0, 19, 0, 2, 136}, @@ -304,47 +303,47 @@ const _PyUnicode_DatabaseRecord _PyUnicode_Database_Records[] = { {27, 0, 19, 1, 2, 136}, {27, 0, 19, 0, 2, 136}, {28, 0, 11, 0, 2, 136}, - {26, 0, 19, 0, 5, 136}, - {26, 0, 11, 0, 5, 136}, - {28, 0, 11, 0, 5, 136}, - {22, 0, 19, 1, 5, 136}, - {23, 0, 19, 1, 5, 136}, - {27, 0, 10, 0, 5, 136}, - {26, 0, 13, 0, 5, 136}, - {21, 0, 10, 0, 5, 136}, - {7, 0, 9, 0, 5, 136}, - {27, 0, 19, 1, 5, 136}, - {27, 0, 19, 0, 5, 136}, - {1, 0, 1, 0, 5, 136}, - {29, 0, 19, 0, 5, 136}, - {20, 0, 19, 0, 5, 136}, - {2, 0, 1, 0, 5, 136}, + {26, 0, 19, 0, 0, 136}, + {26, 0, 11, 0, 0, 136}, + {28, 0, 11, 0, 0, 136}, + {22, 0, 19, 1, 0, 136}, + {23, 0, 19, 1, 0, 136}, + {27, 0, 10, 0, 0, 136}, + {26, 0, 13, 0, 0, 136}, + {21, 0, 10, 0, 0, 136}, + {7, 0, 9, 0, 0, 136}, + {27, 0, 19, 1, 0, 136}, + {27, 0, 19, 0, 0, 136}, + {1, 0, 1, 0, 0, 136}, + {29, 0, 19, 0, 0, 136}, + {20, 0, 19, 0, 0, 136}, + {2, 0, 1, 0, 0, 136}, {26, 0, 19, 0, 1, 136}, {22, 0, 19, 1, 1, 136}, {23, 0, 19, 1, 1, 136}, {19, 0, 1, 0, 1, 136}, {18, 0, 1, 0, 1, 136}, - {30, 0, 19, 0, 5, 136}, + {30, 0, 19, 0, 0, 136}, {30, 0, 19, 0, 1, 136}, {27, 0, 19, 0, 1, 136}, - {14, 0, 19, 0, 0, 0}, - {8, 0, 19, 0, 0, 0}, - {9, 0, 9, 0, 0, 0}, - {9, 0, 4, 0, 0, 0}, - {30, 0, 4, 0, 0, 0}, - {1, 0, 4, 0, 0, 0}, - {2, 0, 4, 0, 0, 0}, - {9, 0, 12, 0, 0, 0}, - {9, 0, 5, 0, 0, 0}, - {4, 9, 1, 0, 0, 0}, + {14, 0, 19, 0, 5, 0}, + {8, 0, 19, 0, 5, 0}, + {9, 0, 9, 0, 5, 0}, + {9, 0, 4, 0, 5, 0}, + {30, 0, 4, 0, 5, 0}, + {1, 0, 4, 0, 5, 0}, + {2, 0, 4, 0, 5, 0}, + {9, 0, 12, 0, 5, 0}, + {9, 0, 5, 0, 5, 0}, + {4, 9, 1, 0, 5, 0}, {4, 0, 14, 0, 2, 0}, {5, 6, 1, 0, 2, 0}, - {30, 0, 1, 0, 0, 170}, - {5, 216, 1, 0, 0, 0}, - {5, 226, 1, 0, 0, 0}, - {27, 0, 1, 0, 0, 136}, - {7, 0, 9, 0, 0, 136}, - {30, 0, 1, 0, 0, 136}, + {30, 0, 1, 0, 5, 170}, + {5, 216, 1, 0, 5, 0}, + {5, 226, 1, 0, 5, 0}, + {27, 0, 1, 0, 5, 136}, + {7, 0, 9, 0, 5, 136}, + {30, 0, 1, 0, 5, 136}, {30, 0, 1, 0, 4, 0}, {29, 0, 19, 0, 2, 0}, }; @@ -675,12 +674,12 @@ const char *_PyUnicode_BidirectionalNames[] = { NULL }; const char *_PyUnicode_EastAsianWidthNames[] = { - "N", + "F", "H", "W", "Na", "A", - "F", + "N", NULL }; static const char *decomp_prefix[] = { @@ -744,38 +743,38 @@ static const unsigned short index1[] = { 137, 138, 139, 140, 141, 142, 143, 144, 41, 41, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 137, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 137, 169, 170, 137, 171, 172, 173, 174, - 137, 175, 176, 177, 178, 179, 180, 181, 137, 182, 183, 184, 185, 137, - 186, 187, 188, 41, 41, 41, 41, 41, 41, 41, 189, 190, 41, 191, 137, 137, + 137, 175, 176, 177, 178, 179, 180, 137, 137, 181, 182, 183, 184, 137, + 185, 137, 186, 41, 41, 41, 41, 41, 41, 41, 187, 188, 41, 189, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 192, 41, 41, 41, 41, 41, 41, 41, 41, 193, 137, 137, + 137, 137, 137, 137, 190, 41, 41, 41, 41, 41, 41, 41, 41, 191, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 41, 41, 41, 41, 194, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 41, 41, 41, 41, 192, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 41, 41, 41, 41, 195, 196, 197, 198, 137, 137, 137, 137, 199, - 200, 201, 202, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, + 137, 137, 41, 41, 41, 41, 193, 194, 195, 196, 137, 137, 137, 137, 197, + 198, 199, 200, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, - 101, 101, 101, 101, 101, 101, 101, 101, 203, 101, 101, 101, 101, 101, - 101, 101, 101, 101, 204, 205, 137, 137, 137, 137, 137, 137, 137, 137, + 101, 101, 101, 101, 101, 101, 101, 101, 201, 101, 101, 101, 101, 101, + 101, 101, 101, 101, 202, 203, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 206, 101, 101, 207, 101, 101, 208, 137, 137, 137, + 137, 137, 137, 137, 204, 101, 101, 205, 101, 101, 206, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 209, 210, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 207, 208, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 211, 212, 78, 213, - 214, 215, 216, 217, 218, 137, 219, 220, 221, 222, 223, 224, 225, 226, 78, - 78, 78, 78, 227, 228, 137, 137, 137, 137, 137, 137, 137, 137, 229, 137, - 230, 231, 232, 137, 137, 233, 137, 137, 137, 234, 137, 137, 137, 137, - 137, 235, 236, 237, 238, 137, 137, 137, 137, 137, 239, 240, 241, 137, - 242, 243, 137, 137, 244, 245, 246, 247, 248, 137, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 209, 210, 78, 211, + 212, 213, 214, 215, 216, 137, 217, 218, 219, 220, 221, 222, 223, 224, 78, + 78, 78, 78, 225, 226, 137, 137, 137, 137, 137, 137, 137, 137, 227, 137, + 228, 137, 229, 137, 137, 230, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 231, 232, 233, 234, 137, 137, 137, 137, 137, 235, 236, 237, 137, + 238, 239, 137, 137, 240, 241, 242, 243, 244, 137, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 137, 137, 137, 137, 137, 137, 137, 137, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, @@ -800,56 +799,51 @@ static const unsigned short index1[] = { 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, - 101, 101, 101, 101, 101, 267, 101, 101, 101, 101, 101, 101, 101, 101, - 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, - 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 268, 101, 269, 101, + 101, 101, 101, 101, 101, 263, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 264, 101, 265, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, - 101, 270, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, + 101, 266, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, - 101, 101, 101, 271, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 121, 121, 121, 121, 273, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 274, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, - 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, - 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 275, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, + 101, 101, 101, 267, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 121, 121, 121, 121, 268, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, - 101, 101, 101, 276, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 274, 137, 137, 137, 137, + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 269, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, @@ -1215,7 +1209,12 @@ static const unsigned short index1[] = { 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 277, 137, 278, 279, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 270, 137, 271, 272, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, @@ -1288,7 +1287,7 @@ static const unsigned short index1[] = { 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 280, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 273, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, @@ -1325,7 +1324,7 @@ static const unsigned short index1[] = { 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 280, + 120, 273, }; static const unsigned short index2[] = { @@ -1520,7 +1519,7 @@ static const unsigned short index2[] = { 48, 0, 0, 147, 48, 141, 156, 149, 141, 148, 141, 141, 0, 156, 149, 149, 0, 149, 149, 135, 144, 0, 0, 0, 0, 0, 0, 0, 148, 148, 0, 0, 0, 0, 0, 0, 48, 48, 0, 48, 48, 135, 135, 0, 0, 146, 146, 146, 146, 146, 146, 146, - 146, 146, 146, 0, 48, 48, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, + 146, 146, 146, 0, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, 135, 141, 141, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, @@ -1546,76 +1545,76 @@ static const unsigned short index2[] = { 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, 48, 158, 135, 135, 135, 135, 161, 161, 144, 135, 135, 48, 0, - 0, 48, 48, 48, 48, 48, 0, 53, 0, 162, 162, 162, 162, 135, 135, 135, 0, - 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 0, 0, 158, 158, 48, 48, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48, 80, 80, 80, 83, 83, 83, 83, 83, 83, 83, 83, - 163, 83, 83, 83, 83, 83, 83, 80, 83, 80, 80, 80, 86, 86, 80, 80, 80, 80, - 80, 80, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 150, 80, 86, 80, 86, 80, 164, 165, 166, - 165, 166, 141, 141, 48, 48, 48, 145, 48, 48, 48, 48, 0, 48, 48, 48, 48, - 145, 48, 48, 48, 48, 145, 48, 48, 48, 48, 145, 48, 48, 48, 48, 145, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 145, 48, 48, 48, 0, 0, 0, 0, - 167, 168, 169, 170, 169, 169, 171, 169, 171, 168, 168, 168, 168, 135, - 141, 168, 169, 81, 81, 144, 83, 81, 81, 48, 48, 48, 48, 48, 135, 135, - 135, 135, 135, 135, 169, 135, 135, 135, 135, 0, 135, 135, 135, 135, 169, - 135, 135, 135, 135, 169, 135, 135, 135, 135, 169, 135, 135, 135, 135, - 169, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 169, - 135, 135, 135, 0, 80, 80, 80, 80, 80, 80, 80, 80, 86, 80, 80, 80, 80, 80, - 80, 0, 80, 80, 83, 83, 83, 83, 83, 80, 80, 80, 80, 83, 83, 0, 0, 0, 0, 0, + 0, 48, 48, 48, 48, 48, 0, 53, 0, 162, 162, 162, 162, 135, 135, 0, 0, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 0, 0, 158, 158, 48, 48, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 48, 80, 80, 80, 83, 83, 83, 83, 83, 83, 83, 83, 163, + 83, 83, 83, 83, 83, 83, 80, 83, 80, 80, 80, 86, 86, 80, 80, 80, 80, 80, + 80, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 150, 150, 150, 150, + 150, 150, 150, 150, 150, 150, 80, 86, 80, 86, 80, 164, 165, 166, 165, + 166, 141, 141, 48, 48, 48, 145, 48, 48, 48, 48, 0, 48, 48, 48, 48, 145, + 48, 48, 48, 48, 145, 48, 48, 48, 48, 145, 48, 48, 48, 48, 145, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 145, 48, 48, 48, 0, 0, 0, 0, 167, + 168, 169, 170, 169, 169, 171, 169, 171, 168, 168, 168, 168, 135, 141, + 168, 169, 81, 81, 144, 83, 81, 81, 48, 48, 48, 48, 48, 135, 135, 135, + 135, 135, 135, 169, 135, 135, 135, 135, 0, 135, 135, 135, 135, 169, 135, + 135, 135, 135, 169, 135, 135, 135, 135, 169, 135, 135, 135, 135, 169, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 169, 135, + 135, 135, 0, 80, 80, 80, 80, 80, 80, 80, 80, 86, 80, 80, 80, 80, 80, 80, + 0, 80, 80, 83, 83, 83, 83, 83, 80, 80, 80, 80, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 142, 48, 48, 48, 48, 141, 141, 135, 151, - 135, 135, 141, 135, 135, 135, 135, 135, 147, 141, 144, 144, 141, 141, - 135, 135, 48, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 83, 83, - 83, 83, 83, 83, 48, 48, 48, 48, 48, 48, 141, 141, 135, 135, 48, 48, 48, - 48, 135, 135, 135, 48, 141, 141, 141, 48, 48, 141, 141, 141, 141, 141, - 141, 141, 48, 48, 48, 135, 135, 135, 135, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 135, 141, 141, 135, 135, 141, 141, 141, 141, 141, - 141, 86, 48, 141, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 141, - 141, 141, 135, 80, 80, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, + 48, 48, 48, 48, 48, 48, 48, 142, 48, 48, 48, 48, 141, 141, 135, 151, 135, + 135, 141, 135, 135, 135, 135, 135, 147, 141, 144, 144, 141, 141, 135, + 135, 48, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 83, 83, 83, + 83, 83, 83, 48, 48, 48, 48, 48, 48, 141, 141, 135, 135, 48, 48, 48, 48, + 135, 135, 135, 48, 141, 141, 141, 48, 48, 141, 141, 141, 141, 141, 141, + 141, 48, 48, 48, 135, 135, 135, 135, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 135, 141, 141, 135, 135, 141, 141, 141, 141, 141, 141, + 86, 48, 141, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 141, 141, + 141, 135, 80, 80, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 0, 44, 0, 0, 0, 0, 0, 44, 0, 0, 47, 47, + 44, 44, 44, 44, 44, 44, 0, 44, 0, 0, 0, 0, 0, 44, 0, 0, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 83, 51, 47, 47, 47, 172, 172, 172, 172, 172, 172, + 47, 47, 47, 83, 51, 47, 47, 47, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 48, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 48, 48, + 172, 172, 172, 172, 48, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 173, 173, 173, 173, 173, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 173, 173, 173, 173, 173, 173, 173, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 0, 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 0, 48, 48, - 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, + 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 0, 48, 48, 48, + 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 0, 0, 48, - 48, 48, 48, 48, 48, 48, 0, 48, 0, 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 0, 0, 48, 48, + 48, 48, 48, 48, 48, 0, 48, 0, 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, - 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, + 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 81, - 81, 81, 83, 83, 83, 83, 83, 83, 83, 83, 83, 150, 150, 150, 150, 150, 150, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 81, 81, + 81, 83, 83, 83, 83, 83, 83, 83, 83, 83, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 44, 44, 44, 44, 44, @@ -2260,7 +2259,7 @@ static const unsigned short index2[] = { 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 281, 281, 280, 280, 280, 280, 280, 280, + 280, 280, 280, 280, 280, 280, 0, 0, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, @@ -2268,23 +2267,22 @@ static const unsigned short index2[] = { 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 35, 35, 35, - 35, 35, 35, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 35, 35, 35, - 0, 0, 0, 0, 0, 282, 283, 282, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 219, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, - 282, 0, 282, 282, 282, 282, 282, 0, 282, 0, 282, 282, 0, 282, 282, 0, - 282, 282, 282, 282, 282, 282, 282, 282, 282, 284, 131, 131, 131, 131, + 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 35, 35, 35, 35, 35, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 35, 35, 35, 0, 0, 0, 0, 0, + 281, 282, 281, 283, 283, 283, 283, 283, 283, 283, 283, 283, 219, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 0, 281, 281, + 281, 281, 281, 0, 281, 0, 281, 281, 0, 281, 281, 0, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 283, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, @@ -2301,26 +2299,26 @@ static const unsigned short index2[] = { 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 285, 199, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 284, 199, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 0, 0, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 0, 0, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 0, 0, 0, 0, 0, 0, - 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 286, 26, 26, 26, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 287, 287, 287, 287, 287, 287, 287, 288, 289, - 287, 0, 0, 0, 0, 0, 0, 81, 81, 81, 81, 81, 81, 81, 86, 86, 86, 86, 86, - 86, 86, 81, 81, 287, 290, 290, 291, 291, 288, 289, 288, 289, 288, 289, - 288, 289, 288, 289, 288, 289, 288, 289, 288, 289, 253, 253, 288, 289, - 287, 287, 287, 287, 291, 291, 291, 292, 287, 292, 0, 287, 292, 287, 287, - 290, 293, 294, 293, 294, 293, 294, 295, 287, 287, 296, 297, 298, 298, - 299, 0, 287, 300, 295, 287, 0, 0, 0, 0, 131, 131, 131, 118, 131, 0, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 285, 26, 26, 26, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, + 71, 71, 71, 286, 286, 286, 286, 286, 286, 286, 287, 288, 286, 0, 0, 0, 0, + 0, 0, 81, 81, 81, 81, 81, 81, 81, 86, 86, 86, 86, 86, 86, 86, 81, 81, + 286, 289, 289, 290, 290, 287, 288, 287, 288, 287, 288, 287, 288, 287, + 288, 287, 288, 287, 288, 287, 288, 253, 253, 287, 288, 286, 286, 286, + 286, 290, 290, 290, 291, 286, 291, 0, 286, 291, 286, 286, 289, 292, 293, + 292, 293, 292, 293, 294, 286, 286, 295, 296, 297, 297, 298, 0, 286, 299, + 294, 286, 0, 0, 0, 0, 131, 131, 131, 118, 131, 0, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, @@ -2330,477 +2328,464 @@ static const unsigned short index2[] = { 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 131, 0, 0, 177, 0, 301, 301, 302, 303, - 302, 301, 301, 304, 305, 301, 306, 307, 308, 307, 307, 309, 309, 309, - 309, 309, 309, 309, 309, 309, 309, 307, 301, 310, 311, 310, 301, 301, - 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, - 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 304, 301, - 305, 313, 314, 313, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 304, 311, 305, 311, 304, 305, 316, 317, 318, 316, 316, 319, - 319, 319, 319, 319, 319, 319, 319, 319, 319, 320, 319, 319, 319, 319, - 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 320, - 320, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - 319, 319, 319, 319, 0, 0, 0, 319, 319, 319, 319, 319, 319, 0, 0, 319, - 319, 319, 319, 319, 319, 0, 0, 319, 319, 319, 319, 319, 319, 0, 0, 319, - 319, 319, 0, 0, 0, 303, 303, 311, 313, 321, 303, 303, 0, 322, 323, 323, - 323, 323, 322, 322, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 324, 324, 324, 26, 30, - 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 0, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, + 131, 131, 131, 131, 131, 0, 0, 177, 0, 300, 300, 301, 302, 301, 300, 300, + 303, 304, 300, 305, 306, 307, 306, 306, 308, 308, 308, 308, 308, 308, + 308, 308, 308, 308, 306, 300, 309, 310, 309, 300, 300, 311, 311, 311, + 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, + 311, 311, 311, 311, 311, 311, 311, 311, 311, 303, 300, 304, 312, 313, + 312, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 303, + 310, 304, 310, 303, 304, 315, 316, 317, 315, 315, 318, 318, 318, 318, + 318, 318, 318, 318, 318, 318, 319, 318, 318, 318, 318, 318, 318, 318, + 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, + 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, + 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 319, 319, 318, 318, + 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, + 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, + 318, 0, 0, 0, 318, 318, 318, 318, 318, 318, 0, 0, 318, 318, 318, 318, + 318, 318, 0, 0, 318, 318, 318, 318, 318, 318, 0, 0, 318, 318, 318, 0, 0, + 0, 302, 302, 310, 312, 320, 302, 302, 0, 321, 322, 322, 322, 322, 321, + 321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 323, 323, 323, 26, 30, 0, 0, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 0, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 83, 138, 83, 0, 0, 0, 0, 150, - 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 0, 0, 0, 0, 0, 83, 138, 83, 0, 0, 0, 0, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, - 150, 150, 0, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 325, 325, 325, - 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, - 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, - 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, - 325, 325, 325, 325, 325, 325, 325, 325, 155, 155, 155, 155, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 155, 155, 26, 80, - 80, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 26, + 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 0, + 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 324, 324, 324, 324, 324, 324, + 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, + 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, + 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, + 324, 324, 324, 324, 324, 155, 155, 155, 155, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 155, 155, 26, 80, 80, 0, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 80, 80, 80, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 0, 0, 0, - 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 150, 150, - 150, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 175, 48, 48, 48, 48, 48, 48, - 48, 48, 175, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 325, 325, 325, + 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, + 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 0, 0, 0, 0, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 150, 150, 150, 150, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 175, 48, 48, 48, 48, 48, 48, 48, 48, 175, 0, 0, + 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 81, 81, 81, 81, 81, 0, 0, 0, 0, 0, + 48, 48, 48, 48, 81, 81, 81, 81, 81, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 83, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 0, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 48, - 48, 48, 48, 48, 48, 48, 48, 83, 175, 175, 175, 175, 175, 0, 0, 0, 0, 0, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, + 48, 48, 83, 175, 175, 175, 175, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 44, 44, 44, 44, 44, 44, 44, + 0, 0, 0, 0, 0, 0, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, + 44, 44, 44, 44, 44, 44, 44, 44, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, + 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 0, 0, 146, 146, 146, 146, 146, 146, 146, 146, - 146, 146, 0, 0, 0, 0, 0, 0, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, + 0, 0, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 0, 0, 0, 0, 0, 0, + 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 0, 0, 0, 0, 47, 47, 47, 47, 47, 47, 47, 47, + 0, 0, 0, 0, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 0, 0, 0, 0, 48, 48, 48, 48, 48, + 47, 47, 47, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, - 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 0, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 0, 44, 44, 44, 44, 44, 44, 44, 0, 44, 44, 0, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 0, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 0, 47, 47, 47, 47, 47, 47, 47, 0, 47, 47, 0, 0, 0, 0, 0, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 83, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 0, 44, 44, + 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 0, 44, 44, 44, 44, + 44, 44, 44, 0, 44, 44, 0, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 0, + 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 0, 47, 47, + 47, 47, 47, 47, 47, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, - 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 53, 51, 51, 51, 51, 51, 0, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, + 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 51, 51, 51, 51, + 51, 0, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 0, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 51, 51, 51, 51, 51, 51, 51, 51, 0, 51, 51, 51, 51, 51, 51, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 107, 107, 107, 107, 107, 107, 0, 0, 107, 0, 107, 107, 107, 107, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, + 107, 107, 107, 107, 0, 0, 107, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 107, 107, - 0, 0, 0, 107, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 104, - 327, 327, 327, 327, 327, 327, 327, 327, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 0, 107, 107, 0, 0, 0, 107, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 328, 328, 327, 327, 327, 327, 327, 327, 327, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 104, 326, 326, 326, 326, + 326, 326, 326, 326, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 327, + 327, 326, 326, 326, 326, 326, 326, 326, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 0, 0, 0, 0, 0, 0, 0, 0, 327, 327, 327, 327, 327, 327, 327, 327, 327, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 0, 0, 0, 0, + 0, 0, 326, 326, 326, 326, 326, 326, 326, 326, 326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 0, 107, 107, 0, 0, 0, 0, 0, 327, 327, 327, 327, - 327, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 327, 327, 327, 327, 327, - 327, 0, 0, 0, 138, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 0, 107, 107, 0, 0, 0, 0, 0, 326, 326, 326, 326, 326, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 0, 0, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 107, 107, 107, 107, 107, 326, 326, 326, 326, 326, 326, 0, 0, 0, 138, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 0, 0, 0, + 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, - 0, 0, 0, 327, 327, 107, 107, 327, 327, 327, 327, 327, 327, 327, 327, 327, - 327, 327, 327, 327, 327, 327, 327, 0, 0, 327, 327, 327, 327, 327, 327, - 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, - 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, - 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 107, 135, - 135, 135, 0, 135, 135, 0, 0, 0, 0, 0, 135, 86, 135, 81, 107, 107, 107, - 107, 0, 107, 107, 107, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 0, 0, 326, 326, + 107, 107, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 0, 0, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 107, 135, 135, 135, 0, 135, + 135, 0, 0, 0, 0, 0, 135, 86, 135, 81, 107, 107, 107, 107, 0, 107, 107, + 107, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 0, 0, 81, 178, 86, 0, 0, 0, 0, 144, 327, - 327, 327, 327, 327, 327, 327, 327, 327, 0, 0, 0, 0, 0, 0, 0, 104, 104, - 104, 104, 104, 104, 104, 104, 104, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, + 107, 107, 0, 0, 81, 178, 86, 0, 0, 0, 0, 144, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 0, 0, 0, 0, 0, 0, 0, 104, 104, 104, 104, 104, 104, + 104, 104, 104, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 327, 327, - 104, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 326, 326, 104, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 327, 327, 327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, - 107, 107, 107, 328, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 326, 326, + 326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 327, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 81, 86, 0, 0, 0, 0, 327, 327, 327, 327, 327, 104, - 104, 104, 104, 104, 104, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 81, + 86, 0, 0, 0, 0, 326, 326, 326, 326, 326, 104, 104, 104, 104, 104, 104, + 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 0, 138, 138, 138, 138, - 138, 138, 138, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 327, 327, - 327, 327, 327, 327, 327, 327, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 0, 0, 0, - 327, 327, 327, 327, 327, 327, 327, 327, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 0, 0, - 0, 0, 0, 104, 104, 104, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 327, - 327, 327, 327, 327, 327, 327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 107, 107, 107, 107, 0, 0, 0, 138, 138, 138, 138, 138, 138, 138, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 0, 0, 326, 326, 326, 326, 326, 326, 326, + 326, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 0, 0, 0, 0, 0, 326, 326, 326, 326, 326, + 326, 326, 326, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 0, 0, 0, 0, 0, 0, 0, 104, 104, 104, + 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 326, 326, 326, 326, 326, 326, + 326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 0, + 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, - 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, - 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, - 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, - 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 0, 0, 0, - 0, 0, 0, 0, 327, 327, 327, 327, 327, 327, 118, 118, 118, 118, 118, 118, - 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 0, 0, 0, 0, 0, 0, 0, 326, + 326, 326, 326, 326, 326, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, - 118, 118, 81, 81, 81, 81, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 81, 81, + 81, 81, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, - 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, - 331, 331, 331, 331, 331, 331, 331, 0, 107, 107, 107, 107, 107, 107, 107, + 0, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, + 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, + 330, 330, 330, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 0, 81, 81, 102, 0, 0, 107, 107, 0, 0, + 107, 107, 107, 0, 81, 81, 102, 0, 0, 107, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 107, 0, 0, 0, 0, 0, 0, 0, 0, + 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, + 118, 118, 118, 118, 118, 118, 118, 118, 86, 86, 81, 81, 81, 86, 81, 86, + 86, 86, 86, 331, 331, 331, 331, 113, 113, 113, 113, 113, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 81, + 86, 81, 86, 104, 104, 104, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 86, 86, 86, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, - 107, 0, 0, 0, 0, 0, 0, 0, 0, 118, 118, 118, 118, 118, 118, 118, 118, 118, - 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 86, 86, - 81, 81, 81, 86, 81, 86, 86, 86, 86, 332, 332, 332, 332, 113, 113, 113, - 113, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 81, 86, 81, 86, 104, 104, 104, 104, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 327, 327, 327, - 327, 327, 327, 327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 141, 135, 141, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 144, 83, 83, 83, 83, 83, 83, 83, 0, 0, 0, 0, 155, 155, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 144, 48, - 48, 135, 135, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 135, 135, 141, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 142, 48, 142, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 142, 48, 48, 48, 48, 141, 141, 141, 135, 135, 135, 135, 141, 141, - 144, 143, 83, 83, 192, 83, 83, 83, 83, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 192, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 146, 146, - 146, 146, 146, 146, 146, 146, 146, 146, 0, 0, 0, 0, 0, 0, 81, 81, 81, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 151, - 135, 135, 135, 135, 141, 135, 152, 152, 135, 135, 135, 144, 144, 0, 146, - 146, 146, 146, 146, 146, 146, 146, 146, 146, 83, 83, 83, 83, 48, 141, - 141, 48, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 147, 83, 83, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 135, 135, 141, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 107, 107, 107, 107, 107, 107, 107, 326, 326, 326, 326, 326, 326, 326, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 141, 135, 141, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 144, 83, + 83, 83, 83, 83, 83, 83, 0, 0, 0, 0, 155, 155, 155, 155, 155, 155, 155, + 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 144, 48, 48, 135, 135, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 135, 135, 141, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 142, + 48, 142, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 142, 48, + 48, 48, 48, 141, 141, 141, 135, 135, 135, 135, 141, 141, 144, 143, 83, + 83, 192, 83, 83, 83, 83, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 0, 0, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 0, 0, 0, 0, 0, 0, 81, 81, 81, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 151, 135, 135, + 135, 135, 141, 135, 152, 152, 135, 135, 135, 144, 144, 0, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 83, 83, 83, 83, 48, 141, 141, 48, 0, + 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 141, 141, - 141, 135, 135, 135, 135, 135, 135, 135, 135, 135, 141, 176, 48, 48, 48, - 48, 83, 83, 83, 83, 135, 147, 135, 135, 83, 141, 135, 146, 146, 146, 146, - 146, 146, 146, 146, 146, 146, 48, 83, 48, 83, 83, 83, 0, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, - 150, 150, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 147, 83, 83, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, 135, + 141, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 141, 141, 141, 135, 135, 135, 141, 141, 135, 176, 147, 135, 83, - 83, 83, 83, 83, 83, 135, 48, 48, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 141, 141, 141, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 141, 176, 48, 48, 48, 48, 83, 83, + 83, 83, 135, 147, 135, 135, 83, 141, 135, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 48, 83, 48, 83, 83, 83, 0, 150, 150, 150, 150, 150, + 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, + 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 141, + 141, 141, 135, 135, 135, 141, 141, 135, 176, 147, 135, 83, 83, 83, 83, + 83, 83, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 0, 48, 48, 48, 48, 0, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 83, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, + 48, 48, 48, 48, 48, 0, 48, 0, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 83, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 135, 141, 141, 141, 135, 135, 135, 135, 135, 135, 147, - 144, 0, 0, 0, 0, 0, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 0, - 0, 0, 0, 0, 0, 135, 135, 141, 141, 0, 48, 48, 48, 48, 48, 48, 48, 48, 0, - 0, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, - 0, 48, 48, 48, 48, 48, 0, 147, 147, 48, 148, 141, 135, 141, 141, 141, - 141, 0, 0, 141, 141, 0, 0, 149, 149, 176, 0, 0, 48, 0, 0, 0, 0, 0, 0, - 148, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 141, 141, 0, 0, 81, 81, 81, 81, - 81, 81, 81, 0, 0, 0, 81, 81, 81, 81, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 135, 141, 141, 141, 135, 135, 135, 135, 135, 135, 147, 144, 0, 0, 0, 0, + 0, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 0, 0, 0, 0, 0, 0, + 135, 135, 141, 141, 0, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 48, 48, 0, + 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 0, 48, 48, + 48, 48, 48, 0, 147, 147, 48, 148, 141, 135, 141, 141, 141, 141, 0, 0, + 141, 141, 0, 0, 149, 149, 176, 0, 0, 48, 0, 0, 0, 0, 0, 0, 148, 0, 0, 0, + 0, 0, 48, 48, 48, 48, 48, 141, 141, 0, 0, 81, 81, 81, 81, 81, 81, 81, 0, + 0, 0, 81, 81, 81, 81, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 141, - 141, 141, 135, 135, 135, 135, 135, 135, 135, 135, 141, 141, 144, 135, - 135, 141, 147, 48, 48, 48, 48, 83, 83, 83, 83, 83, 146, 146, 146, 146, - 146, 146, 146, 146, 146, 146, 83, 83, 0, 83, 81, 48, 48, 48, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 148, 141, 141, 135, - 135, 135, 135, 135, 135, 141, 151, 149, 149, 148, 149, 135, 135, 141, - 144, 147, 48, 48, 83, 48, 0, 0, 0, 0, 0, 0, 0, 0, 146, 146, 146, 146, - 146, 146, 146, 146, 146, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 141, 141, 141, + 135, 135, 135, 135, 135, 135, 135, 135, 141, 141, 144, 135, 135, 141, + 147, 48, 48, 48, 48, 83, 83, 83, 83, 83, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 83, 83, 0, 83, 81, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 148, 141, 141, 135, 135, 135, - 135, 0, 0, 141, 141, 149, 149, 135, 135, 141, 144, 147, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 48, 48, 48, 48, 135, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, + 135, 135, 135, 141, 151, 149, 149, 148, 149, 135, 135, 141, 144, 147, 48, + 48, 83, 48, 0, 0, 0, 0, 0, 0, 0, 0, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 141, 141, 141, 135, 135, 135, 135, - 135, 135, 135, 135, 141, 141, 135, 141, 144, 135, 83, 83, 83, 48, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 146, 146, 146, 146, 146, 146, 146, 146, - 146, 0, 0, 0, 0, 0, 0, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, - 138, 138, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 48, 48, 48, 48, 48, 48, 148, 141, 141, 135, 135, 135, 135, 0, 0, 141, + 141, 149, 149, 135, 135, 141, 144, 147, 83, 83, 83, 83, 83, 83, 83, 83, + 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 48, 48, 48, + 48, 135, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 135, 141, 135, 141, 141, 135, 135, 135, 135, - 135, 135, 176, 147, 48, 83, 0, 0, 0, 0, 0, 0, 146, 146, 146, 146, 146, - 146, 146, 146, 146, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 141, 141, 141, 135, 135, 135, 135, 135, 135, 135, 135, + 141, 141, 135, 141, 144, 135, 83, 83, 83, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 0, 0, 0, 0, 0, 0, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 0, 0, 135, 135, 135, 141, 141, 135, 135, 135, 135, 141, 135, 135, - 135, 135, 144, 0, 0, 0, 0, 146, 146, 146, 146, 146, 146, 146, 146, 146, - 146, 150, 150, 83, 83, 83, 80, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 135, 141, 135, 141, 141, 135, 135, 135, 135, 135, 135, 176, 147, 48, + 83, 0, 0, 0, 0, 0, 0, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 135, 135, 135, + 141, 141, 135, 135, 135, 135, 141, 135, 135, 135, 135, 144, 0, 0, 0, 0, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 150, 150, 83, 83, 83, + 80, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 141, 141, 141, 135, 135, 135, - 135, 135, 135, 135, 135, 135, 141, 144, 147, 83, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 141, 141, 141, 135, 135, 135, 135, 135, 135, 135, 135, + 135, 141, 144, 147, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 44, 44, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 47, 47, 47, 47, 47, 47, 47, + 44, 44, 44, 44, 44, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 146, 146, 146, 146, 146, 146, 146, 146, 146, - 146, 150, 150, 150, 150, 150, 150, 150, 150, 150, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 48, 0, 0, 48, 48, 48, - 48, 48, 48, 48, 48, 0, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 148, 141, 141, - 141, 141, 141, 0, 141, 149, 0, 0, 135, 135, 176, 144, 48, 141, 48, 141, - 147, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 146, 146, 146, 146, 146, - 146, 146, 146, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 47, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 150, 150, 150, 150, + 150, 150, 150, 150, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, + 48, 48, 48, 48, 48, 0, 0, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 0, + 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 148, 141, 141, 141, 141, 141, 0, 141, + 149, 0, 0, 135, 135, 176, 144, 48, 141, 48, 141, 147, 83, 83, 83, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, + 48, 48, 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 141, 141, - 141, 135, 135, 135, 135, 0, 0, 135, 135, 141, 141, 141, 141, 144, 48, 83, - 48, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 48, 135, 135, 135, 135, 135, 135, 156, 156, 135, 135, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 141, 141, 141, 135, 135, 135, + 135, 0, 0, 135, 135, 141, 141, 141, 141, 144, 48, 83, 48, 141, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 135, 135, 135, 135, 135, 135, 156, 156, 135, 135, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, + 144, 135, 135, 135, 135, 141, 48, 135, 135, 135, 135, 83, 83, 83, 83, 83, + 83, 83, 83, 144, 0, 0, 0, 0, 0, 0, 0, 0, 48, 135, 135, 135, 135, 135, + 135, 141, 141, 135, 135, 135, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 135, 144, 135, 135, 135, 135, 141, 48, 135, 135, 135, - 135, 83, 83, 83, 83, 83, 83, 83, 83, 144, 0, 0, 0, 0, 0, 0, 0, 0, 48, - 135, 135, 135, 135, 135, 135, 141, 141, 135, 135, 135, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 141, 135, + 144, 83, 83, 83, 48, 83, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 135, 141, 135, 144, 83, 83, 83, 48, 83, 83, 83, 83, 83, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 141, 135, - 135, 135, 135, 135, 135, 135, 0, 135, 135, 135, 135, 135, 135, 141, 333, - 48, 83, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 146, 146, 146, - 146, 146, 146, 146, 146, 146, 150, 150, 150, 150, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 0, 0, 0, 83, 83, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 135, 135, 135, 135, + 141, 135, 135, 135, 135, 135, 135, 135, 0, 135, 135, 135, 135, 135, 135, + 141, 332, 48, 83, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 150, 150, 150, 150, 150, 150, + 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 0, 0, 0, + 83, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 135, 135, 0, 141, 135, 135, 135, 135, 135, 135, 135, 141, 135, - 135, 141, 135, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 135, 135, 135, 135, 135, 135, 0, 141, 135, 135, 135, 135, 135, 135, 135, + 141, 135, 135, 141, 135, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 0, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, + 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 135, 135, 135, 135, 135, 135, 0, 0, 0, 135, 0, 135, 135, 0, 135, 135, - 135, 147, 135, 144, 144, 48, 135, 0, 0, 0, 0, 0, 0, 0, 0, 146, 146, 146, - 146, 146, 146, 146, 146, 146, 146, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, - 48, 0, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 135, 135, 135, 135, 135, 135, 0, 0, 0, 135, 0, 135, 135, 0, + 135, 135, 135, 147, 135, 144, 144, 48, 135, 0, 0, 0, 0, 0, 0, 0, 0, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 0, 0, 0, 0, 0, 0, 48, 48, + 48, 48, 48, 48, 0, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 141, 141, 141, 141, 141, 0, 135, 135, 0, 141, 141, 135, 141, 144, 48, 0, - 0, 0, 0, 0, 0, 0, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 0, 0, + 48, 48, 48, 141, 141, 141, 141, 141, 0, 135, 135, 0, 141, 141, 135, 141, + 144, 48, 0, 0, 0, 0, 0, 0, 0, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, 135, 141, + 141, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, 135, 141, 141, 83, 83, 0, 0, - 0, 0, 0, 0, 0, 135, 135, 48, 141, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, + 150, 150, 150, 150, 150, 150, 150, 150, 26, 26, 26, 26, 26, 26, 26, 26, + 85, 85, 85, 85, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 141, 141, 135, 135, 135, 135, 135, 0, 0, 0, 141, 141, 135, 176, - 144, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 146, 146, 146, - 146, 146, 146, 146, 146, 146, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, - 150, 150, 150, 26, 26, 26, 26, 26, 26, 26, 26, 85, 85, 85, 85, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 0, - 83, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, + 175, 175, 175, 175, 175, 0, 83, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 192, 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 135, 48, 48, 48, 48, 48, 48, 135, 135, - 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 0, 0, 0, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 0, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 0, 0, 0, 0, 83, - 83, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 0, 0, 0, 0, 83, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 0, 146, 146, 146, 146, 146, 146, 146, - 146, 146, 146, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 0, 0, 178, 178, 178, 178, 178, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 48, 48, 0, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 0, 0, 0, + 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 178, 178, + 178, 178, 178, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 81, 81, 81, 81, 81, 81, - 81, 83, 83, 83, 83, 83, 80, 80, 80, 80, 53, 53, 53, 53, 83, 80, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 0, - 150, 150, 150, 150, 150, 150, 150, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, + 48, 48, 48, 48, 48, 48, 81, 81, 81, 81, 81, 81, 81, 83, 83, 83, 83, 83, + 80, 80, 80, 80, 53, 53, 53, 53, 83, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 0, 150, 150, 150, 150, + 150, 150, 150, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2808,31 +2793,30 @@ static const unsigned short index2[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, + 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 150, 150, 150, + 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 150, 150, 150, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 0, 0, 0, 0, 135, 48, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 135, + 48, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 0, 0, 0, 0, 0, 0, 0, 135, 135, 135, 135, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 0, 0, 0, + 0, 0, 0, 0, 135, 135, 135, 135, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 254, 254, 253, 254, 334, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 335, 335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254, 254, + 253, 254, 333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 334, 334, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, @@ -2840,16 +2824,16 @@ static const unsigned short index2[] = { 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 0, 0, 0, + 0, 0, 0, 0, 0, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 172, 172, 172, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 172, 172, 172, 172, 172, 172, 172, 172, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2858,14 +2842,15 @@ static const unsigned short index2[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254, 254, 254, 254, 0, - 254, 254, 254, 254, 254, 254, 254, 0, 254, 254, 0, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 254, 254, 254, 254, 0, 254, 254, 254, 254, 254, + 254, 254, 0, 254, 254, 0, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 0, 0, 0, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 172, 172, 172, 0, 0, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 172, 172, 172, 172, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 172, 172, 172, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 172, 0, 0, 0, + 0, 0, 0, 0, 0, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, @@ -2875,74 +2860,73 @@ static const unsigned short index2[] = { 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 0, 0, 0, 0, 48, 48, 48, 48, 48, + 172, 172, 172, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 0, 0, 80, 135, 178, 83, 177, 177, 177, 177, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, + 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 80, 135, 178, + 83, 177, 177, 177, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, 135, 135, 135, 135, 135, 135, + 0, 0, 0, 0, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 0, 0, 135, 135, + 135, 135, 135, 135, 135, 135, 0, 0, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 135, 135, 135, 135, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 135, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 0, 0, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 336, 336, - 336, 336, 336, 336, 336, 337, 337, 178, 178, 178, 80, 80, 80, 338, 337, - 337, 337, 337, 337, 177, 177, 177, 177, 177, 177, 177, 177, 86, 86, 86, - 86, 86, 86, 86, 86, 80, 80, 81, 81, 81, 81, 81, 86, 86, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 81, 81, 81, 81, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 336, 336, 336, 336, 336, 336, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 335, 335, 335, 335, 335, 335, 335, + 336, 336, 178, 178, 178, 80, 80, 80, 337, 336, 336, 336, 336, 336, 177, + 177, 177, 177, 177, 177, 177, 177, 86, 86, 86, 86, 86, 86, 86, 86, 80, + 80, 81, 81, 81, 81, 81, 86, 86, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 81, 81, 81, 81, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 335, 335, 335, 335, 335, 335, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 26, 26, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 81, 81, 81, 26, 0, 0, 0, + 26, 26, 26, 26, 26, 81, 81, 81, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, - 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 150, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, - 150, 150, 150, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, + 150, 150, 150, 150, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 0, 0, 0, 0, 0, 0, 0, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 35, 35, 35, 35, 35, 35, 35, 35, 35, @@ -2982,26 +2966,26 @@ static const unsigned short index2[] = { 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 0, 0, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 339, 35, 35, 35, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 338, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 230, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 339, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 338, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 230, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 339, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 49, 49, 49, 49, 338, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 230, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 339, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 49, 49, 49, 49, 49, 49, 49, 49, 338, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 230, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 339, 35, 35, 35, 35, 35, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 338, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 230, 35, 35, 35, 35, 35, 35, 49, 35, 0, 0, 340, 340, 340, 340, - 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, - 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, - 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, - 340, 340, 340, 340, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + 35, 35, 230, 35, 35, 35, 35, 35, 35, 49, 35, 0, 0, 339, 339, 339, 339, + 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, + 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, + 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, + 339, 339, 339, 339, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, @@ -3017,48 +3001,36 @@ static const unsigned short index2[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 48, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 0, 0, 0, 0, 0, 0, 47, - 47, 47, 47, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 81, 81, 81, - 81, 81, 81, 0, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 0, 0, 81, 81, 81, 81, 81, 81, 81, 0, 81, 81, 0, 81, 81, 81, - 81, 81, 0, 0, 0, 0, 0, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 81, 81, 81, 81, + 81, 81, 0, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, + 81, 81, 0, 0, 81, 81, 81, 81, 81, 81, 81, 0, 81, 81, 0, 81, 81, 81, 81, + 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 0, 0, 0, 81, 81, 81, 81, 81, 81, 81, 53, 53, 53, - 53, 53, 53, 53, 0, 0, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, - 0, 0, 0, 0, 48, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 0, 0, 0, 81, 81, 81, 81, 81, 81, 81, 53, 53, 53, 53, 53, 53, 53, 0, + 0, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 0, 0, 0, 0, 48, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 81, 81, 81, 81, 146, - 146, 146, 146, 146, 146, 146, 146, 146, 146, 0, 0, 0, 0, 0, 85, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 53, 182, 182, 86, 81, - 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 81, 81, 81, 81, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 0, 0, 0, 0, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, - 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 0, 48, 48, 0, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 107, 107, 107, 107, 107, 107, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, + 48, 0, 48, 48, 48, 48, 0, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, @@ -3072,111 +3044,110 @@ static const unsigned short index2[] = { 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 327, 327, 327, 327, - 327, 327, 327, 327, 327, 86, 86, 86, 86, 86, 86, 86, 0, 0, 0, 0, 0, 0, 0, + 107, 107, 107, 107, 107, 107, 0, 0, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 86, 86, 86, 86, 86, 86, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 329, 329, 329, 329, 329, 329, 329, 329, + 0, 0, 0, 0, 0, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, - 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 330, 330, - 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, - 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, - 330, 330, 330, 330, 81, 81, 81, 81, 81, 81, 147, 137, 0, 0, 0, 0, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 0, 0, 0, 0, 104, 104, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 81, 81, 81, 81, 81, 81, 147, 137, 0, 0, 0, 0, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 0, 0, 0, 0, 104, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 332, - 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, - 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, - 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, - 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, - 332, 332, 133, 332, 332, 332, 111, 332, 332, 332, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 332, - 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, - 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, - 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, - 332, 332, 133, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, - 332, 332, 332, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 331, 331, 331, 331, + 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, + 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, + 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, + 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 133, + 331, 331, 331, 111, 331, 331, 331, 331, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 331, 331, 331, 331, + 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, + 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, + 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 133, + 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, + 331, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, 131, 131, + 131, 0, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 0, + 131, 131, 0, 131, 0, 0, 131, 0, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 0, 131, 131, 131, 131, 0, 131, 0, 131, 0, 0, 0, 0, 0, 0, 131, + 0, 0, 0, 0, 131, 0, 131, 0, 131, 0, 131, 131, 131, 0, 131, 131, 0, 131, + 0, 0, 131, 0, 131, 0, 131, 0, 131, 0, 131, 0, 131, 131, 0, 131, 0, 0, + 131, 131, 131, 131, 0, 131, 131, 131, 131, 131, 131, 131, 0, 131, 131, + 131, 131, 0, 131, 131, 131, 131, 0, 131, 0, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 0, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 0, 131, 131, 0, 131, 0, 0, 131, 0, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 0, 131, 131, 131, 131, 0, 131, 0, 131, 0, - 0, 0, 0, 0, 0, 131, 0, 0, 0, 0, 131, 0, 131, 0, 131, 0, 131, 131, 131, 0, - 131, 131, 0, 131, 0, 0, 131, 0, 131, 0, 131, 0, 131, 0, 131, 0, 131, 131, - 0, 131, 0, 0, 131, 131, 131, 131, 0, 131, 131, 131, 131, 131, 131, 131, - 0, 131, 131, 131, 131, 0, 131, 131, 131, 131, 0, 131, 0, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 0, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 0, 0, 0, 0, 0, 131, - 131, 131, 0, 131, 131, 131, 131, 131, 0, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 78, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 243, 26, 26, + 131, 131, 131, 131, 131, 131, 131, 0, 0, 0, 0, 0, 131, 131, 131, 0, 131, + 131, 131, 131, 131, 0, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 78, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 243, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 243, 0, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 243, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 155, - 155, 26, 26, 26, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 155, 155, 26, 26, 26, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 341, 26, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 342, 342, 342, 342, - 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, - 342, 342, 342, 342, 342, 342, 342, 342, 226, 226, 226, 26, 26, 26, 342, - 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, - 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, - 342, 272, 342, 246, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, - 342, 342, 342, 342, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 274, 274, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 274, 274, + 246, 246, 340, 26, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 226, 226, 226, 26, 26, 26, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 272, 341, + 246, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 274, 274, + 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 0, - 0, 0, 0, 274, 274, 274, 274, 274, 274, 274, 274, 274, 0, 0, 0, 0, 0, 0, - 0, 274, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 243, 243, 243, - 243, 243, 243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 0, 0, 0, 0, 274, 274, + 274, 274, 274, 274, 274, 274, 274, 0, 0, 0, 0, 0, 0, 0, 274, 274, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 243, 243, 243, 243, 243, 243, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 26, 26, 26, 26, 243, 243, 243, 243, 243, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 26, 26, 26, 243, 26, 26, 26, - 243, 243, 243, 343, 343, 343, 343, 343, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 26, 26, + 26, 26, 243, 243, 243, 243, 243, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 26, 26, 26, 243, 26, 26, 26, 243, 243, 243, 342, 342, + 342, 342, 342, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 26, 243, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 26, 243, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, @@ -3189,72 +3160,72 @@ static const unsigned short index2[] = { 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 26, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 26, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 243, 243, - 243, 243, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 243, 26, 26, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 243, 243, 243, 243, 26, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 243, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 243, 243, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 243, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 243, 243, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 243, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 243, 243, 243, 243, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 26, 26, 26, 26, 26, 26, - 243, 26, 26, 26, 243, 243, 243, 26, 26, 243, 243, 243, 0, 0, 0, 0, 243, - 243, 243, 243, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 243, 243, 0, - 0, 0, 26, 26, 26, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 0, 0, - 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 243, 243, 243, 243, 243, 243, 243, 26, 26, 26, 26, 26, 26, 243, 26, 26, + 26, 243, 243, 243, 26, 26, 243, 243, 243, 0, 0, 0, 0, 0, 243, 243, 243, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 243, 243, 0, 0, 0, 26, 26, + 26, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 0, 0, 0, 0, 0, 0, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 0, 0, 0, 0, 243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 0, 0, 0, 0, + 243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, - 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 0, 0, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, + 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 26, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 26, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 26, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, @@ -3266,22 +3237,22 @@ static const unsigned short index2[] = { 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 0, 0, 0, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 0, 0, 0, 0, 0, 0, 0, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 0, 0, 243, 243, 243, 243, 243, 0, 0, 0, 243, 243, 243, 243, + 243, 0, 0, 0, 243, 243, 243, 243, 243, 243, 243, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 0, 243, 243, - 243, 243, 243, 243, 243, 0, 0, 0, 0, 0, 0, 0, 0, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 0, 0, 0, 0, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 0, 0, 0, 0, 0, 0, 0, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, + 243, 0, 0, 0, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 0, + 0, 0, 0, 0, 243, 243, 243, 243, 243, 243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 0, 0, 0, 0, 0, 0, 243, + 243, 243, 243, 243, 243, 243, 243, 0, 0, 0, 0, 0, 0, 0, 0, 243, 243, 243, + 243, 243, 243, 243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, @@ -3289,48 +3260,42 @@ static const unsigned short index2[] = { 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 340, 340, 340, 340, 340, 340, 340, 340, - 340, 340, 0, 0, 0, 0, 0, 0, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 339, 339, 339, 339, 339, 339, 339, 339, + 339, 339, 0, 0, 0, 0, 0, 0, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 281, 281, 281, 281, 281, - 281, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 281, 281, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 0, 0, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, @@ -3338,64 +3303,35 @@ static const unsigned short index2[] = { 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 0, 0, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 281, 281, 281, - 281, 281, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, + 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, + 280, 280, 280, 280, 280, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 0, 177, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, + 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, @@ -3408,7 +3344,8 @@ static const unsigned short index2[] = { 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 279, 279, + 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, @@ -3417,7 +3354,7 @@ static const unsigned short index2[] = { 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 0, 0, + 279, 279, 279, 0, 0, }; /* decomposition data */ @@ -3483,120 +3420,121 @@ static const unsigned int decomp_data[] = { 259, 121, 514, 32, 774, 514, 32, 775, 514, 32, 778, 514, 32, 808, 514, 32, 771, 514, 32, 779, 259, 611, 259, 108, 259, 115, 259, 120, 259, 661, 256, 768, 256, 769, 256, 787, 512, 776, 769, 256, 697, 514, 32, 837, 256, - 59, 512, 168, 769, 512, 913, 769, 256, 183, 512, 917, 769, 512, 919, 769, - 512, 921, 769, 512, 927, 769, 512, 933, 769, 512, 937, 769, 512, 970, - 769, 512, 921, 776, 512, 933, 776, 512, 945, 769, 512, 949, 769, 512, - 951, 769, 512, 953, 769, 512, 971, 769, 512, 953, 776, 512, 965, 776, - 512, 959, 769, 512, 965, 769, 512, 969, 769, 258, 946, 258, 952, 258, - 933, 512, 978, 769, 512, 978, 776, 258, 966, 258, 960, 258, 954, 258, - 961, 258, 962, 258, 920, 258, 949, 258, 931, 512, 1045, 768, 512, 1045, - 776, 512, 1043, 769, 512, 1030, 776, 512, 1050, 769, 512, 1048, 768, 512, - 1059, 774, 512, 1048, 774, 512, 1080, 774, 512, 1077, 768, 512, 1077, - 776, 512, 1075, 769, 512, 1110, 776, 512, 1082, 769, 512, 1080, 768, 512, - 1091, 774, 512, 1140, 783, 512, 1141, 783, 512, 1046, 774, 512, 1078, - 774, 512, 1040, 774, 512, 1072, 774, 512, 1040, 776, 512, 1072, 776, 512, - 1045, 774, 512, 1077, 774, 512, 1240, 776, 512, 1241, 776, 512, 1046, - 776, 512, 1078, 776, 512, 1047, 776, 512, 1079, 776, 512, 1048, 772, 512, - 1080, 772, 512, 1048, 776, 512, 1080, 776, 512, 1054, 776, 512, 1086, - 776, 512, 1256, 776, 512, 1257, 776, 512, 1069, 776, 512, 1101, 776, 512, - 1059, 772, 512, 1091, 772, 512, 1059, 776, 512, 1091, 776, 512, 1059, - 779, 512, 1091, 779, 512, 1063, 776, 512, 1095, 776, 512, 1067, 776, 512, - 1099, 776, 514, 1381, 1410, 512, 1575, 1619, 512, 1575, 1620, 512, 1608, - 1620, 512, 1575, 1621, 512, 1610, 1620, 514, 1575, 1652, 514, 1608, 1652, - 514, 1735, 1652, 514, 1610, 1652, 512, 1749, 1620, 512, 1729, 1620, 512, - 1746, 1620, 512, 2344, 2364, 512, 2352, 2364, 512, 2355, 2364, 512, 2325, - 2364, 512, 2326, 2364, 512, 2327, 2364, 512, 2332, 2364, 512, 2337, 2364, - 512, 2338, 2364, 512, 2347, 2364, 512, 2351, 2364, 512, 2503, 2494, 512, - 2503, 2519, 512, 2465, 2492, 512, 2466, 2492, 512, 2479, 2492, 512, 2610, - 2620, 512, 2616, 2620, 512, 2582, 2620, 512, 2583, 2620, 512, 2588, 2620, - 512, 2603, 2620, 512, 2887, 2902, 512, 2887, 2878, 512, 2887, 2903, 512, - 2849, 2876, 512, 2850, 2876, 512, 2962, 3031, 512, 3014, 3006, 512, 3015, - 3006, 512, 3014, 3031, 512, 3142, 3158, 512, 3263, 3285, 512, 3270, 3285, - 512, 3270, 3286, 512, 3270, 3266, 512, 3274, 3285, 512, 3398, 3390, 512, - 3399, 3390, 512, 3398, 3415, 512, 3545, 3530, 512, 3545, 3535, 512, 3548, - 3530, 512, 3545, 3551, 514, 3661, 3634, 514, 3789, 3762, 514, 3755, 3737, - 514, 3755, 3745, 257, 3851, 512, 3906, 4023, 512, 3916, 4023, 512, 3921, - 4023, 512, 3926, 4023, 512, 3931, 4023, 512, 3904, 4021, 512, 3953, 3954, - 512, 3953, 3956, 512, 4018, 3968, 514, 4018, 3969, 512, 4019, 3968, 514, - 4019, 3969, 512, 3953, 3968, 512, 3986, 4023, 512, 3996, 4023, 512, 4001, - 4023, 512, 4006, 4023, 512, 4011, 4023, 512, 3984, 4021, 512, 4133, 4142, - 259, 4316, 512, 6917, 6965, 512, 6919, 6965, 512, 6921, 6965, 512, 6923, - 6965, 512, 6925, 6965, 512, 6929, 6965, 512, 6970, 6965, 512, 6972, 6965, - 512, 6974, 6965, 512, 6975, 6965, 512, 6978, 6965, 259, 65, 259, 198, - 259, 66, 259, 68, 259, 69, 259, 398, 259, 71, 259, 72, 259, 73, 259, 74, - 259, 75, 259, 76, 259, 77, 259, 78, 259, 79, 259, 546, 259, 80, 259, 82, - 259, 84, 259, 85, 259, 87, 259, 592, 259, 593, 259, 7426, 259, 98, 259, - 100, 259, 101, 259, 601, 259, 603, 259, 604, 259, 103, 259, 107, 259, - 109, 259, 331, 259, 596, 259, 7446, 259, 7447, 259, 112, 259, 116, 259, - 117, 259, 7453, 259, 623, 259, 118, 259, 7461, 259, 946, 259, 947, 259, - 948, 259, 966, 259, 967, 261, 105, 261, 114, 261, 117, 261, 118, 261, - 946, 261, 947, 261, 961, 261, 966, 261, 967, 259, 1085, 259, 594, 259, - 99, 259, 597, 259, 240, 259, 102, 259, 607, 259, 609, 259, 613, 259, 616, - 259, 617, 259, 618, 259, 7547, 259, 669, 259, 621, 259, 7557, 259, 671, - 259, 625, 259, 624, 259, 626, 259, 627, 259, 628, 259, 629, 259, 632, - 259, 642, 259, 643, 259, 427, 259, 649, 259, 650, 259, 7452, 259, 651, - 259, 652, 259, 122, 259, 656, 259, 657, 259, 658, 259, 952, 512, 65, 805, - 512, 97, 805, 512, 66, 775, 512, 98, 775, 512, 66, 803, 512, 98, 803, - 512, 66, 817, 512, 98, 817, 512, 199, 769, 512, 231, 769, 512, 68, 775, - 512, 100, 775, 512, 68, 803, 512, 100, 803, 512, 68, 817, 512, 100, 817, - 512, 68, 807, 512, 100, 807, 512, 68, 813, 512, 100, 813, 512, 274, 768, - 512, 275, 768, 512, 274, 769, 512, 275, 769, 512, 69, 813, 512, 101, 813, - 512, 69, 816, 512, 101, 816, 512, 552, 774, 512, 553, 774, 512, 70, 775, - 512, 102, 775, 512, 71, 772, 512, 103, 772, 512, 72, 775, 512, 104, 775, - 512, 72, 803, 512, 104, 803, 512, 72, 776, 512, 104, 776, 512, 72, 807, - 512, 104, 807, 512, 72, 814, 512, 104, 814, 512, 73, 816, 512, 105, 816, - 512, 207, 769, 512, 239, 769, 512, 75, 769, 512, 107, 769, 512, 75, 803, - 512, 107, 803, 512, 75, 817, 512, 107, 817, 512, 76, 803, 512, 108, 803, - 512, 7734, 772, 512, 7735, 772, 512, 76, 817, 512, 108, 817, 512, 76, - 813, 512, 108, 813, 512, 77, 769, 512, 109, 769, 512, 77, 775, 512, 109, - 775, 512, 77, 803, 512, 109, 803, 512, 78, 775, 512, 110, 775, 512, 78, - 803, 512, 110, 803, 512, 78, 817, 512, 110, 817, 512, 78, 813, 512, 110, - 813, 512, 213, 769, 512, 245, 769, 512, 213, 776, 512, 245, 776, 512, - 332, 768, 512, 333, 768, 512, 332, 769, 512, 333, 769, 512, 80, 769, 512, - 112, 769, 512, 80, 775, 512, 112, 775, 512, 82, 775, 512, 114, 775, 512, - 82, 803, 512, 114, 803, 512, 7770, 772, 512, 7771, 772, 512, 82, 817, - 512, 114, 817, 512, 83, 775, 512, 115, 775, 512, 83, 803, 512, 115, 803, - 512, 346, 775, 512, 347, 775, 512, 352, 775, 512, 353, 775, 512, 7778, - 775, 512, 7779, 775, 512, 84, 775, 512, 116, 775, 512, 84, 803, 512, 116, - 803, 512, 84, 817, 512, 116, 817, 512, 84, 813, 512, 116, 813, 512, 85, - 804, 512, 117, 804, 512, 85, 816, 512, 117, 816, 512, 85, 813, 512, 117, - 813, 512, 360, 769, 512, 361, 769, 512, 362, 776, 512, 363, 776, 512, 86, - 771, 512, 118, 771, 512, 86, 803, 512, 118, 803, 512, 87, 768, 512, 119, - 768, 512, 87, 769, 512, 119, 769, 512, 87, 776, 512, 119, 776, 512, 87, - 775, 512, 119, 775, 512, 87, 803, 512, 119, 803, 512, 88, 775, 512, 120, - 775, 512, 88, 776, 512, 120, 776, 512, 89, 775, 512, 121, 775, 512, 90, - 770, 512, 122, 770, 512, 90, 803, 512, 122, 803, 512, 90, 817, 512, 122, - 817, 512, 104, 817, 512, 116, 776, 512, 119, 778, 512, 121, 778, 514, 97, - 702, 512, 383, 775, 512, 65, 803, 512, 97, 803, 512, 65, 777, 512, 97, - 777, 512, 194, 769, 512, 226, 769, 512, 194, 768, 512, 226, 768, 512, - 194, 777, 512, 226, 777, 512, 194, 771, 512, 226, 771, 512, 7840, 770, - 512, 7841, 770, 512, 258, 769, 512, 259, 769, 512, 258, 768, 512, 259, - 768, 512, 258, 777, 512, 259, 777, 512, 258, 771, 512, 259, 771, 512, - 7840, 774, 512, 7841, 774, 512, 69, 803, 512, 101, 803, 512, 69, 777, - 512, 101, 777, 512, 69, 771, 512, 101, 771, 512, 202, 769, 512, 234, 769, - 512, 202, 768, 512, 234, 768, 512, 202, 777, 512, 234, 777, 512, 202, - 771, 512, 234, 771, 512, 7864, 770, 512, 7865, 770, 512, 73, 777, 512, - 105, 777, 512, 73, 803, 512, 105, 803, 512, 79, 803, 512, 111, 803, 512, - 79, 777, 512, 111, 777, 512, 212, 769, 512, 244, 769, 512, 212, 768, 512, - 244, 768, 512, 212, 777, 512, 244, 777, 512, 212, 771, 512, 244, 771, - 512, 7884, 770, 512, 7885, 770, 512, 416, 769, 512, 417, 769, 512, 416, - 768, 512, 417, 768, 512, 416, 777, 512, 417, 777, 512, 416, 771, 512, - 417, 771, 512, 416, 803, 512, 417, 803, 512, 85, 803, 512, 117, 803, 512, - 85, 777, 512, 117, 777, 512, 431, 769, 512, 432, 769, 512, 431, 768, 512, - 432, 768, 512, 431, 777, 512, 432, 777, 512, 431, 771, 512, 432, 771, - 512, 431, 803, 512, 432, 803, 512, 89, 768, 512, 121, 768, 512, 89, 803, - 512, 121, 803, 512, 89, 777, 512, 121, 777, 512, 89, 771, 512, 121, 771, - 512, 945, 787, 512, 945, 788, 512, 7936, 768, 512, 7937, 768, 512, 7936, - 769, 512, 7937, 769, 512, 7936, 834, 512, 7937, 834, 512, 913, 787, 512, - 913, 788, 512, 7944, 768, 512, 7945, 768, 512, 7944, 769, 512, 7945, 769, - 512, 7944, 834, 512, 7945, 834, 512, 949, 787, 512, 949, 788, 512, 7952, - 768, 512, 7953, 768, 512, 7952, 769, 512, 7953, 769, 512, 917, 787, 512, - 917, 788, 512, 7960, 768, 512, 7961, 768, 512, 7960, 769, 512, 7961, 769, - 512, 951, 787, 512, 951, 788, 512, 7968, 768, 512, 7969, 768, 512, 7968, - 769, 512, 7969, 769, 512, 7968, 834, 512, 7969, 834, 512, 919, 787, 512, - 919, 788, 512, 7976, 768, 512, 7977, 768, 512, 7976, 769, 512, 7977, 769, - 512, 7976, 834, 512, 7977, 834, 512, 953, 787, 512, 953, 788, 512, 7984, - 768, 512, 7985, 768, 512, 7984, 769, 512, 7985, 769, 512, 7984, 834, 512, + 59, 514, 32, 769, 512, 168, 769, 512, 913, 769, 256, 183, 512, 917, 769, + 512, 919, 769, 512, 921, 769, 512, 927, 769, 512, 933, 769, 512, 937, + 769, 512, 970, 769, 512, 921, 776, 512, 933, 776, 512, 945, 769, 512, + 949, 769, 512, 951, 769, 512, 953, 769, 512, 971, 769, 512, 953, 776, + 512, 965, 776, 512, 959, 769, 512, 965, 769, 512, 969, 769, 258, 946, + 258, 952, 258, 933, 512, 978, 769, 512, 978, 776, 258, 966, 258, 960, + 258, 954, 258, 961, 258, 962, 258, 920, 258, 949, 258, 931, 512, 1045, + 768, 512, 1045, 776, 512, 1043, 769, 512, 1030, 776, 512, 1050, 769, 512, + 1048, 768, 512, 1059, 774, 512, 1048, 774, 512, 1080, 774, 512, 1077, + 768, 512, 1077, 776, 512, 1075, 769, 512, 1110, 776, 512, 1082, 769, 512, + 1080, 768, 512, 1091, 774, 512, 1140, 783, 512, 1141, 783, 512, 1046, + 774, 512, 1078, 774, 512, 1040, 774, 512, 1072, 774, 512, 1040, 776, 512, + 1072, 776, 512, 1045, 774, 512, 1077, 774, 512, 1240, 776, 512, 1241, + 776, 512, 1046, 776, 512, 1078, 776, 512, 1047, 776, 512, 1079, 776, 512, + 1048, 772, 512, 1080, 772, 512, 1048, 776, 512, 1080, 776, 512, 1054, + 776, 512, 1086, 776, 512, 1256, 776, 512, 1257, 776, 512, 1069, 776, 512, + 1101, 776, 512, 1059, 772, 512, 1091, 772, 512, 1059, 776, 512, 1091, + 776, 512, 1059, 779, 512, 1091, 779, 512, 1063, 776, 512, 1095, 776, 512, + 1067, 776, 512, 1099, 776, 514, 1381, 1410, 512, 1575, 1619, 512, 1575, + 1620, 512, 1608, 1620, 512, 1575, 1621, 512, 1610, 1620, 514, 1575, 1652, + 514, 1608, 1652, 514, 1735, 1652, 514, 1610, 1652, 512, 1749, 1620, 512, + 1729, 1620, 512, 1746, 1620, 512, 2344, 2364, 512, 2352, 2364, 512, 2355, + 2364, 512, 2325, 2364, 512, 2326, 2364, 512, 2327, 2364, 512, 2332, 2364, + 512, 2337, 2364, 512, 2338, 2364, 512, 2347, 2364, 512, 2351, 2364, 512, + 2503, 2494, 512, 2503, 2519, 512, 2465, 2492, 512, 2466, 2492, 512, 2479, + 2492, 512, 2610, 2620, 512, 2616, 2620, 512, 2582, 2620, 512, 2583, 2620, + 512, 2588, 2620, 512, 2603, 2620, 512, 2887, 2902, 512, 2887, 2878, 512, + 2887, 2903, 512, 2849, 2876, 512, 2850, 2876, 512, 2962, 3031, 512, 3014, + 3006, 512, 3015, 3006, 512, 3014, 3031, 512, 3142, 3158, 512, 3263, 3285, + 512, 3270, 3285, 512, 3270, 3286, 512, 3270, 3266, 512, 3274, 3285, 512, + 3398, 3390, 512, 3399, 3390, 512, 3398, 3415, 512, 3545, 3530, 512, 3545, + 3535, 512, 3548, 3530, 512, 3545, 3551, 514, 3661, 3634, 514, 3789, 3762, + 514, 3755, 3737, 514, 3755, 3745, 257, 3851, 512, 3906, 4023, 512, 3916, + 4023, 512, 3921, 4023, 512, 3926, 4023, 512, 3931, 4023, 512, 3904, 4021, + 512, 3953, 3954, 512, 3953, 3956, 512, 4018, 3968, 514, 4018, 3969, 512, + 4019, 3968, 514, 4019, 3969, 512, 3953, 3968, 512, 3986, 4023, 512, 3996, + 4023, 512, 4001, 4023, 512, 4006, 4023, 512, 4011, 4023, 512, 3984, 4021, + 512, 4133, 4142, 259, 4316, 512, 6917, 6965, 512, 6919, 6965, 512, 6921, + 6965, 512, 6923, 6965, 512, 6925, 6965, 512, 6929, 6965, 512, 6970, 6965, + 512, 6972, 6965, 512, 6974, 6965, 512, 6975, 6965, 512, 6978, 6965, 259, + 65, 259, 198, 259, 66, 259, 68, 259, 69, 259, 398, 259, 71, 259, 72, 259, + 73, 259, 74, 259, 75, 259, 76, 259, 77, 259, 78, 259, 79, 259, 546, 259, + 80, 259, 82, 259, 84, 259, 85, 259, 87, 259, 97, 259, 592, 259, 593, 259, + 7426, 259, 98, 259, 100, 259, 101, 259, 601, 259, 603, 259, 604, 259, + 103, 259, 107, 259, 109, 259, 331, 259, 111, 259, 596, 259, 7446, 259, + 7447, 259, 112, 259, 116, 259, 117, 259, 7453, 259, 623, 259, 118, 259, + 7461, 259, 946, 259, 947, 259, 948, 259, 966, 259, 967, 261, 105, 261, + 114, 261, 117, 261, 118, 261, 946, 261, 947, 261, 961, 261, 966, 261, + 967, 259, 1085, 259, 594, 259, 99, 259, 597, 259, 240, 259, 604, 259, + 102, 259, 607, 259, 609, 259, 613, 259, 616, 259, 617, 259, 618, 259, + 7547, 259, 669, 259, 621, 259, 7557, 259, 671, 259, 625, 259, 624, 259, + 626, 259, 627, 259, 628, 259, 629, 259, 632, 259, 642, 259, 643, 259, + 427, 259, 649, 259, 650, 259, 7452, 259, 651, 259, 652, 259, 122, 259, + 656, 259, 657, 259, 658, 259, 952, 512, 65, 805, 512, 97, 805, 512, 66, + 775, 512, 98, 775, 512, 66, 803, 512, 98, 803, 512, 66, 817, 512, 98, + 817, 512, 199, 769, 512, 231, 769, 512, 68, 775, 512, 100, 775, 512, 68, + 803, 512, 100, 803, 512, 68, 817, 512, 100, 817, 512, 68, 807, 512, 100, + 807, 512, 68, 813, 512, 100, 813, 512, 274, 768, 512, 275, 768, 512, 274, + 769, 512, 275, 769, 512, 69, 813, 512, 101, 813, 512, 69, 816, 512, 101, + 816, 512, 552, 774, 512, 553, 774, 512, 70, 775, 512, 102, 775, 512, 71, + 772, 512, 103, 772, 512, 72, 775, 512, 104, 775, 512, 72, 803, 512, 104, + 803, 512, 72, 776, 512, 104, 776, 512, 72, 807, 512, 104, 807, 512, 72, + 814, 512, 104, 814, 512, 73, 816, 512, 105, 816, 512, 207, 769, 512, 239, + 769, 512, 75, 769, 512, 107, 769, 512, 75, 803, 512, 107, 803, 512, 75, + 817, 512, 107, 817, 512, 76, 803, 512, 108, 803, 512, 7734, 772, 512, + 7735, 772, 512, 76, 817, 512, 108, 817, 512, 76, 813, 512, 108, 813, 512, + 77, 769, 512, 109, 769, 512, 77, 775, 512, 109, 775, 512, 77, 803, 512, + 109, 803, 512, 78, 775, 512, 110, 775, 512, 78, 803, 512, 110, 803, 512, + 78, 817, 512, 110, 817, 512, 78, 813, 512, 110, 813, 512, 213, 769, 512, + 245, 769, 512, 213, 776, 512, 245, 776, 512, 332, 768, 512, 333, 768, + 512, 332, 769, 512, 333, 769, 512, 80, 769, 512, 112, 769, 512, 80, 775, + 512, 112, 775, 512, 82, 775, 512, 114, 775, 512, 82, 803, 512, 114, 803, + 512, 7770, 772, 512, 7771, 772, 512, 82, 817, 512, 114, 817, 512, 83, + 775, 512, 115, 775, 512, 83, 803, 512, 115, 803, 512, 346, 775, 512, 347, + 775, 512, 352, 775, 512, 353, 775, 512, 7778, 775, 512, 7779, 775, 512, + 84, 775, 512, 116, 775, 512, 84, 803, 512, 116, 803, 512, 84, 817, 512, + 116, 817, 512, 84, 813, 512, 116, 813, 512, 85, 804, 512, 117, 804, 512, + 85, 816, 512, 117, 816, 512, 85, 813, 512, 117, 813, 512, 360, 769, 512, + 361, 769, 512, 362, 776, 512, 363, 776, 512, 86, 771, 512, 118, 771, 512, + 86, 803, 512, 118, 803, 512, 87, 768, 512, 119, 768, 512, 87, 769, 512, + 119, 769, 512, 87, 776, 512, 119, 776, 512, 87, 775, 512, 119, 775, 512, + 87, 803, 512, 119, 803, 512, 88, 775, 512, 120, 775, 512, 88, 776, 512, + 120, 776, 512, 89, 775, 512, 121, 775, 512, 90, 770, 512, 122, 770, 512, + 90, 803, 512, 122, 803, 512, 90, 817, 512, 122, 817, 512, 104, 817, 512, + 116, 776, 512, 119, 778, 512, 121, 778, 514, 97, 702, 512, 383, 775, 512, + 65, 803, 512, 97, 803, 512, 65, 777, 512, 97, 777, 512, 194, 769, 512, + 226, 769, 512, 194, 768, 512, 226, 768, 512, 194, 777, 512, 226, 777, + 512, 194, 771, 512, 226, 771, 512, 7840, 770, 512, 7841, 770, 512, 258, + 769, 512, 259, 769, 512, 258, 768, 512, 259, 768, 512, 258, 777, 512, + 259, 777, 512, 258, 771, 512, 259, 771, 512, 7840, 774, 512, 7841, 774, + 512, 69, 803, 512, 101, 803, 512, 69, 777, 512, 101, 777, 512, 69, 771, + 512, 101, 771, 512, 202, 769, 512, 234, 769, 512, 202, 768, 512, 234, + 768, 512, 202, 777, 512, 234, 777, 512, 202, 771, 512, 234, 771, 512, + 7864, 770, 512, 7865, 770, 512, 73, 777, 512, 105, 777, 512, 73, 803, + 512, 105, 803, 512, 79, 803, 512, 111, 803, 512, 79, 777, 512, 111, 777, + 512, 212, 769, 512, 244, 769, 512, 212, 768, 512, 244, 768, 512, 212, + 777, 512, 244, 777, 512, 212, 771, 512, 244, 771, 512, 7884, 770, 512, + 7885, 770, 512, 416, 769, 512, 417, 769, 512, 416, 768, 512, 417, 768, + 512, 416, 777, 512, 417, 777, 512, 416, 771, 512, 417, 771, 512, 416, + 803, 512, 417, 803, 512, 85, 803, 512, 117, 803, 512, 85, 777, 512, 117, + 777, 512, 431, 769, 512, 432, 769, 512, 431, 768, 512, 432, 768, 512, + 431, 777, 512, 432, 777, 512, 431, 771, 512, 432, 771, 512, 431, 803, + 512, 432, 803, 512, 89, 768, 512, 121, 768, 512, 89, 803, 512, 121, 803, + 512, 89, 777, 512, 121, 777, 512, 89, 771, 512, 121, 771, 512, 945, 787, + 512, 945, 788, 512, 7936, 768, 512, 7937, 768, 512, 7936, 769, 512, 7937, + 769, 512, 7936, 834, 512, 7937, 834, 512, 913, 787, 512, 913, 788, 512, + 7944, 768, 512, 7945, 768, 512, 7944, 769, 512, 7945, 769, 512, 7944, + 834, 512, 7945, 834, 512, 949, 787, 512, 949, 788, 512, 7952, 768, 512, + 7953, 768, 512, 7952, 769, 512, 7953, 769, 512, 917, 787, 512, 917, 788, + 512, 7960, 768, 512, 7961, 768, 512, 7960, 769, 512, 7961, 769, 512, 951, + 787, 512, 951, 788, 512, 7968, 768, 512, 7969, 768, 512, 7968, 769, 512, + 7969, 769, 512, 7968, 834, 512, 7969, 834, 512, 919, 787, 512, 919, 788, + 512, 7976, 768, 512, 7977, 768, 512, 7976, 769, 512, 7977, 769, 512, + 7976, 834, 512, 7977, 834, 512, 953, 787, 512, 953, 788, 512, 7984, 768, + 512, 7985, 768, 512, 7984, 769, 512, 7985, 769, 512, 7984, 834, 512, 7985, 834, 512, 921, 787, 512, 921, 788, 512, 7992, 768, 512, 7993, 768, 512, 7992, 769, 512, 7993, 769, 512, 7992, 834, 512, 7993, 834, 512, 959, 787, 512, 959, 788, 512, 8000, 768, 512, 8001, 768, 512, 8000, 769, 512, @@ -3623,121 +3561,124 @@ static const unsigned int decomp_data[] = { 8045, 837, 512, 8046, 837, 512, 8047, 837, 512, 945, 774, 512, 945, 772, 512, 8048, 837, 512, 945, 837, 512, 940, 837, 512, 945, 834, 512, 8118, 837, 512, 913, 774, 512, 913, 772, 512, 913, 768, 256, 902, 512, 913, - 837, 514, 32, 787, 256, 953, 514, 32, 834, 512, 168, 834, 512, 8052, 837, - 512, 951, 837, 512, 942, 837, 512, 951, 834, 512, 8134, 837, 512, 917, - 768, 256, 904, 512, 919, 768, 256, 905, 512, 919, 837, 512, 8127, 768, - 512, 8127, 769, 512, 8127, 834, 512, 953, 774, 512, 953, 772, 512, 970, - 768, 256, 912, 512, 953, 834, 512, 970, 834, 512, 921, 774, 512, 921, - 772, 512, 921, 768, 256, 906, 512, 8190, 768, 512, 8190, 769, 512, 8190, - 834, 512, 965, 774, 512, 965, 772, 512, 971, 768, 256, 944, 512, 961, - 787, 512, 961, 788, 512, 965, 834, 512, 971, 834, 512, 933, 774, 512, - 933, 772, 512, 933, 768, 256, 910, 512, 929, 788, 512, 168, 768, 256, - 901, 256, 96, 512, 8060, 837, 512, 969, 837, 512, 974, 837, 512, 969, - 834, 512, 8182, 837, 512, 927, 768, 256, 908, 512, 937, 768, 256, 911, - 512, 937, 837, 256, 180, 514, 32, 788, 256, 8194, 256, 8195, 258, 32, - 257, 8208, 514, 32, 819, 258, 46, 514, 46, 46, 770, 46, 46, 46, 514, - 8242, 8242, 770, 8242, 8242, 8242, 514, 8245, 8245, 770, 8245, 8245, - 8245, 514, 33, 33, 514, 32, 773, 514, 63, 63, 514, 63, 33, 514, 33, 63, - 1026, 8242, 8242, 8242, 8242, 259, 48, 259, 105, 259, 52, 259, 53, 259, - 54, 259, 55, 259, 56, 259, 57, 259, 43, 259, 8722, 259, 61, 259, 40, 259, - 41, 259, 110, 261, 48, 261, 49, 261, 50, 261, 51, 261, 52, 261, 53, 261, - 54, 261, 55, 261, 56, 261, 57, 261, 43, 261, 8722, 261, 61, 261, 40, 261, - 41, 261, 97, 261, 101, 261, 111, 261, 120, 261, 601, 261, 104, 261, 107, - 261, 108, 261, 109, 261, 110, 261, 112, 261, 115, 261, 116, 514, 82, 115, - 770, 97, 47, 99, 770, 97, 47, 115, 262, 67, 514, 176, 67, 770, 99, 47, - 111, 770, 99, 47, 117, 258, 400, 514, 176, 70, 262, 103, 262, 72, 262, - 104, 262, 295, 262, 73, 262, 76, 262, 108, 262, 78, 514, 78, 111, 262, - 80, 262, 81, 262, 82, 515, 83, 77, 770, 84, 69, 76, 515, 84, 77, 262, 90, - 256, 937, 256, 75, 256, 197, 262, 66, 262, 101, 262, 69, 262, 70, 262, - 77, 262, 111, 258, 1488, 258, 1489, 258, 1490, 258, 1491, 262, 105, 770, - 70, 65, 88, 262, 960, 262, 947, 262, 915, 262, 928, 262, 8721, 262, 68, - 262, 100, 262, 106, 772, 49, 8260, 55, 772, 49, 8260, 57, 1028, 49, 8260, - 49, 48, 772, 49, 8260, 51, 772, 50, 8260, 51, 772, 49, 8260, 53, 772, 50, - 8260, 53, 772, 51, 8260, 53, 772, 52, 8260, 53, 772, 49, 8260, 54, 772, - 53, 8260, 54, 772, 49, 8260, 56, 772, 51, 8260, 56, 772, 53, 8260, 56, - 772, 55, 8260, 56, 516, 49, 8260, 258, 73, 514, 73, 73, 770, 73, 73, 73, - 514, 73, 86, 258, 86, 514, 86, 73, 770, 86, 73, 73, 1026, 86, 73, 73, 73, - 514, 73, 88, 258, 88, 514, 88, 73, 770, 88, 73, 73, 258, 76, 258, 67, - 258, 68, 258, 77, 258, 105, 514, 105, 105, 770, 105, 105, 105, 514, 105, - 118, 258, 118, 514, 118, 105, 770, 118, 105, 105, 1026, 118, 105, 105, - 105, 514, 105, 120, 258, 120, 514, 120, 105, 770, 120, 105, 105, 258, - 108, 258, 99, 258, 100, 258, 109, 772, 48, 8260, 51, 512, 8592, 824, 512, - 8594, 824, 512, 8596, 824, 512, 8656, 824, 512, 8660, 824, 512, 8658, - 824, 512, 8707, 824, 512, 8712, 824, 512, 8715, 824, 512, 8739, 824, 512, - 8741, 824, 514, 8747, 8747, 770, 8747, 8747, 8747, 514, 8750, 8750, 770, - 8750, 8750, 8750, 512, 8764, 824, 512, 8771, 824, 512, 8773, 824, 512, - 8776, 824, 512, 61, 824, 512, 8801, 824, 512, 8781, 824, 512, 60, 824, - 512, 62, 824, 512, 8804, 824, 512, 8805, 824, 512, 8818, 824, 512, 8819, - 824, 512, 8822, 824, 512, 8823, 824, 512, 8826, 824, 512, 8827, 824, 512, - 8834, 824, 512, 8835, 824, 512, 8838, 824, 512, 8839, 824, 512, 8866, - 824, 512, 8872, 824, 512, 8873, 824, 512, 8875, 824, 512, 8828, 824, 512, - 8829, 824, 512, 8849, 824, 512, 8850, 824, 512, 8882, 824, 512, 8883, - 824, 512, 8884, 824, 512, 8885, 824, 256, 12296, 256, 12297, 263, 49, - 263, 50, 263, 51, 263, 52, 263, 53, 263, 54, 263, 55, 263, 56, 263, 57, - 519, 49, 48, 519, 49, 49, 519, 49, 50, 519, 49, 51, 519, 49, 52, 519, 49, - 53, 519, 49, 54, 519, 49, 55, 519, 49, 56, 519, 49, 57, 519, 50, 48, 770, - 40, 49, 41, 770, 40, 50, 41, 770, 40, 51, 41, 770, 40, 52, 41, 770, 40, - 53, 41, 770, 40, 54, 41, 770, 40, 55, 41, 770, 40, 56, 41, 770, 40, 57, - 41, 1026, 40, 49, 48, 41, 1026, 40, 49, 49, 41, 1026, 40, 49, 50, 41, - 1026, 40, 49, 51, 41, 1026, 40, 49, 52, 41, 1026, 40, 49, 53, 41, 1026, - 40, 49, 54, 41, 1026, 40, 49, 55, 41, 1026, 40, 49, 56, 41, 1026, 40, 49, - 57, 41, 1026, 40, 50, 48, 41, 514, 49, 46, 514, 50, 46, 514, 51, 46, 514, - 52, 46, 514, 53, 46, 514, 54, 46, 514, 55, 46, 514, 56, 46, 514, 57, 46, - 770, 49, 48, 46, 770, 49, 49, 46, 770, 49, 50, 46, 770, 49, 51, 46, 770, - 49, 52, 46, 770, 49, 53, 46, 770, 49, 54, 46, 770, 49, 55, 46, 770, 49, - 56, 46, 770, 49, 57, 46, 770, 50, 48, 46, 770, 40, 97, 41, 770, 40, 98, - 41, 770, 40, 99, 41, 770, 40, 100, 41, 770, 40, 101, 41, 770, 40, 102, - 41, 770, 40, 103, 41, 770, 40, 104, 41, 770, 40, 105, 41, 770, 40, 106, - 41, 770, 40, 107, 41, 770, 40, 108, 41, 770, 40, 109, 41, 770, 40, 110, - 41, 770, 40, 111, 41, 770, 40, 112, 41, 770, 40, 113, 41, 770, 40, 114, - 41, 770, 40, 115, 41, 770, 40, 116, 41, 770, 40, 117, 41, 770, 40, 118, - 41, 770, 40, 119, 41, 770, 40, 120, 41, 770, 40, 121, 41, 770, 40, 122, - 41, 263, 65, 263, 66, 263, 67, 263, 68, 263, 69, 263, 70, 263, 71, 263, - 72, 263, 73, 263, 74, 263, 75, 263, 76, 263, 77, 263, 78, 263, 79, 263, - 80, 263, 81, 263, 82, 263, 83, 263, 84, 263, 85, 263, 86, 263, 87, 263, - 88, 263, 89, 263, 90, 263, 97, 263, 98, 263, 99, 263, 100, 263, 101, 263, - 102, 263, 103, 263, 104, 263, 105, 263, 106, 263, 107, 263, 108, 263, - 109, 263, 110, 263, 111, 263, 112, 263, 113, 263, 114, 263, 115, 263, - 116, 263, 117, 263, 118, 263, 119, 263, 120, 263, 121, 263, 122, 263, 48, - 1026, 8747, 8747, 8747, 8747, 770, 58, 58, 61, 514, 61, 61, 770, 61, 61, - 61, 512, 10973, 824, 261, 106, 259, 86, 259, 11617, 258, 27597, 258, - 40863, 258, 19968, 258, 20008, 258, 20022, 258, 20031, 258, 20057, 258, - 20101, 258, 20108, 258, 20128, 258, 20154, 258, 20799, 258, 20837, 258, - 20843, 258, 20866, 258, 20886, 258, 20907, 258, 20960, 258, 20981, 258, - 20992, 258, 21147, 258, 21241, 258, 21269, 258, 21274, 258, 21304, 258, - 21313, 258, 21340, 258, 21353, 258, 21378, 258, 21430, 258, 21448, 258, - 21475, 258, 22231, 258, 22303, 258, 22763, 258, 22786, 258, 22794, 258, - 22805, 258, 22823, 258, 22899, 258, 23376, 258, 23424, 258, 23544, 258, - 23567, 258, 23586, 258, 23608, 258, 23662, 258, 23665, 258, 24027, 258, - 24037, 258, 24049, 258, 24062, 258, 24178, 258, 24186, 258, 24191, 258, - 24308, 258, 24318, 258, 24331, 258, 24339, 258, 24400, 258, 24417, 258, - 24435, 258, 24515, 258, 25096, 258, 25142, 258, 25163, 258, 25903, 258, - 25908, 258, 25991, 258, 26007, 258, 26020, 258, 26041, 258, 26080, 258, - 26085, 258, 26352, 258, 26376, 258, 26408, 258, 27424, 258, 27490, 258, - 27513, 258, 27571, 258, 27595, 258, 27604, 258, 27611, 258, 27663, 258, - 27668, 258, 27700, 258, 28779, 258, 29226, 258, 29238, 258, 29243, 258, - 29247, 258, 29255, 258, 29273, 258, 29275, 258, 29356, 258, 29572, 258, - 29577, 258, 29916, 258, 29926, 258, 29976, 258, 29983, 258, 29992, 258, - 30000, 258, 30091, 258, 30098, 258, 30326, 258, 30333, 258, 30382, 258, - 30399, 258, 30446, 258, 30683, 258, 30690, 258, 30707, 258, 31034, 258, - 31160, 258, 31166, 258, 31348, 258, 31435, 258, 31481, 258, 31859, 258, - 31992, 258, 32566, 258, 32593, 258, 32650, 258, 32701, 258, 32769, 258, - 32780, 258, 32786, 258, 32819, 258, 32895, 258, 32905, 258, 33251, 258, - 33258, 258, 33267, 258, 33276, 258, 33292, 258, 33307, 258, 33311, 258, - 33390, 258, 33394, 258, 33400, 258, 34381, 258, 34411, 258, 34880, 258, - 34892, 258, 34915, 258, 35198, 258, 35211, 258, 35282, 258, 35328, 258, - 35895, 258, 35910, 258, 35925, 258, 35960, 258, 35997, 258, 36196, 258, - 36208, 258, 36275, 258, 36523, 258, 36554, 258, 36763, 258, 36784, 258, - 36789, 258, 37009, 258, 37193, 258, 37318, 258, 37324, 258, 37329, 258, - 38263, 258, 38272, 258, 38428, 258, 38582, 258, 38585, 258, 38632, 258, - 38737, 258, 38750, 258, 38754, 258, 38761, 258, 38859, 258, 38893, 258, - 38899, 258, 38913, 258, 39080, 258, 39131, 258, 39135, 258, 39318, 258, - 39321, 258, 39340, 258, 39592, 258, 39640, 258, 39647, 258, 39717, 258, - 39727, 258, 39730, 258, 39740, 258, 39770, 258, 40165, 258, 40565, 258, - 40575, 258, 40613, 258, 40635, 258, 40643, 258, 40653, 258, 40657, 258, - 40697, 258, 40701, 258, 40718, 258, 40723, 258, 40736, 258, 40763, 258, - 40778, 258, 40786, 258, 40845, 258, 40860, 258, 40864, 264, 32, 258, - 12306, 258, 21316, 258, 21317, 512, 12363, 12441, 512, 12365, 12441, 512, + 837, 514, 32, 787, 256, 953, 514, 32, 787, 514, 32, 834, 512, 168, 834, + 512, 8052, 837, 512, 951, 837, 512, 942, 837, 512, 951, 834, 512, 8134, + 837, 512, 917, 768, 256, 904, 512, 919, 768, 256, 905, 512, 919, 837, + 512, 8127, 768, 512, 8127, 769, 512, 8127, 834, 512, 953, 774, 512, 953, + 772, 512, 970, 768, 256, 912, 512, 953, 834, 512, 970, 834, 512, 921, + 774, 512, 921, 772, 512, 921, 768, 256, 906, 512, 8190, 768, 512, 8190, + 769, 512, 8190, 834, 512, 965, 774, 512, 965, 772, 512, 971, 768, 256, + 944, 512, 961, 787, 512, 961, 788, 512, 965, 834, 512, 971, 834, 512, + 933, 774, 512, 933, 772, 512, 933, 768, 256, 910, 512, 929, 788, 512, + 168, 768, 256, 901, 256, 96, 512, 8060, 837, 512, 969, 837, 512, 974, + 837, 512, 969, 834, 512, 8182, 837, 512, 927, 768, 256, 908, 512, 937, + 768, 256, 911, 512, 937, 837, 256, 180, 514, 32, 788, 256, 8194, 256, + 8195, 258, 32, 258, 32, 258, 32, 258, 32, 258, 32, 257, 32, 258, 32, 258, + 32, 258, 32, 257, 8208, 514, 32, 819, 258, 46, 514, 46, 46, 770, 46, 46, + 46, 257, 32, 514, 8242, 8242, 770, 8242, 8242, 8242, 514, 8245, 8245, + 770, 8245, 8245, 8245, 514, 33, 33, 514, 32, 773, 514, 63, 63, 514, 63, + 33, 514, 33, 63, 1026, 8242, 8242, 8242, 8242, 258, 32, 259, 48, 259, + 105, 259, 52, 259, 53, 259, 54, 259, 55, 259, 56, 259, 57, 259, 43, 259, + 8722, 259, 61, 259, 40, 259, 41, 259, 110, 261, 48, 261, 49, 261, 50, + 261, 51, 261, 52, 261, 53, 261, 54, 261, 55, 261, 56, 261, 57, 261, 43, + 261, 8722, 261, 61, 261, 40, 261, 41, 261, 97, 261, 101, 261, 111, 261, + 120, 261, 601, 261, 104, 261, 107, 261, 108, 261, 109, 261, 110, 261, + 112, 261, 115, 261, 116, 514, 82, 115, 770, 97, 47, 99, 770, 97, 47, 115, + 262, 67, 514, 176, 67, 770, 99, 47, 111, 770, 99, 47, 117, 258, 400, 514, + 176, 70, 262, 103, 262, 72, 262, 72, 262, 72, 262, 104, 262, 295, 262, + 73, 262, 73, 262, 76, 262, 108, 262, 78, 514, 78, 111, 262, 80, 262, 81, + 262, 82, 262, 82, 262, 82, 515, 83, 77, 770, 84, 69, 76, 515, 84, 77, + 262, 90, 256, 937, 262, 90, 256, 75, 256, 197, 262, 66, 262, 67, 262, + 101, 262, 69, 262, 70, 262, 77, 262, 111, 258, 1488, 258, 1489, 258, + 1490, 258, 1491, 262, 105, 770, 70, 65, 88, 262, 960, 262, 947, 262, 915, + 262, 928, 262, 8721, 262, 68, 262, 100, 262, 101, 262, 105, 262, 106, + 772, 49, 8260, 55, 772, 49, 8260, 57, 1028, 49, 8260, 49, 48, 772, 49, + 8260, 51, 772, 50, 8260, 51, 772, 49, 8260, 53, 772, 50, 8260, 53, 772, + 51, 8260, 53, 772, 52, 8260, 53, 772, 49, 8260, 54, 772, 53, 8260, 54, + 772, 49, 8260, 56, 772, 51, 8260, 56, 772, 53, 8260, 56, 772, 55, 8260, + 56, 516, 49, 8260, 258, 73, 514, 73, 73, 770, 73, 73, 73, 514, 73, 86, + 258, 86, 514, 86, 73, 770, 86, 73, 73, 1026, 86, 73, 73, 73, 514, 73, 88, + 258, 88, 514, 88, 73, 770, 88, 73, 73, 258, 76, 258, 67, 258, 68, 258, + 77, 258, 105, 514, 105, 105, 770, 105, 105, 105, 514, 105, 118, 258, 118, + 514, 118, 105, 770, 118, 105, 105, 1026, 118, 105, 105, 105, 514, 105, + 120, 258, 120, 514, 120, 105, 770, 120, 105, 105, 258, 108, 258, 99, 258, + 100, 258, 109, 772, 48, 8260, 51, 512, 8592, 824, 512, 8594, 824, 512, + 8596, 824, 512, 8656, 824, 512, 8660, 824, 512, 8658, 824, 512, 8707, + 824, 512, 8712, 824, 512, 8715, 824, 512, 8739, 824, 512, 8741, 824, 514, + 8747, 8747, 770, 8747, 8747, 8747, 514, 8750, 8750, 770, 8750, 8750, + 8750, 512, 8764, 824, 512, 8771, 824, 512, 8773, 824, 512, 8776, 824, + 512, 61, 824, 512, 8801, 824, 512, 8781, 824, 512, 60, 824, 512, 62, 824, + 512, 8804, 824, 512, 8805, 824, 512, 8818, 824, 512, 8819, 824, 512, + 8822, 824, 512, 8823, 824, 512, 8826, 824, 512, 8827, 824, 512, 8834, + 824, 512, 8835, 824, 512, 8838, 824, 512, 8839, 824, 512, 8866, 824, 512, + 8872, 824, 512, 8873, 824, 512, 8875, 824, 512, 8828, 824, 512, 8829, + 824, 512, 8849, 824, 512, 8850, 824, 512, 8882, 824, 512, 8883, 824, 512, + 8884, 824, 512, 8885, 824, 256, 12296, 256, 12297, 263, 49, 263, 50, 263, + 51, 263, 52, 263, 53, 263, 54, 263, 55, 263, 56, 263, 57, 519, 49, 48, + 519, 49, 49, 519, 49, 50, 519, 49, 51, 519, 49, 52, 519, 49, 53, 519, 49, + 54, 519, 49, 55, 519, 49, 56, 519, 49, 57, 519, 50, 48, 770, 40, 49, 41, + 770, 40, 50, 41, 770, 40, 51, 41, 770, 40, 52, 41, 770, 40, 53, 41, 770, + 40, 54, 41, 770, 40, 55, 41, 770, 40, 56, 41, 770, 40, 57, 41, 1026, 40, + 49, 48, 41, 1026, 40, 49, 49, 41, 1026, 40, 49, 50, 41, 1026, 40, 49, 51, + 41, 1026, 40, 49, 52, 41, 1026, 40, 49, 53, 41, 1026, 40, 49, 54, 41, + 1026, 40, 49, 55, 41, 1026, 40, 49, 56, 41, 1026, 40, 49, 57, 41, 1026, + 40, 50, 48, 41, 514, 49, 46, 514, 50, 46, 514, 51, 46, 514, 52, 46, 514, + 53, 46, 514, 54, 46, 514, 55, 46, 514, 56, 46, 514, 57, 46, 770, 49, 48, + 46, 770, 49, 49, 46, 770, 49, 50, 46, 770, 49, 51, 46, 770, 49, 52, 46, + 770, 49, 53, 46, 770, 49, 54, 46, 770, 49, 55, 46, 770, 49, 56, 46, 770, + 49, 57, 46, 770, 50, 48, 46, 770, 40, 97, 41, 770, 40, 98, 41, 770, 40, + 99, 41, 770, 40, 100, 41, 770, 40, 101, 41, 770, 40, 102, 41, 770, 40, + 103, 41, 770, 40, 104, 41, 770, 40, 105, 41, 770, 40, 106, 41, 770, 40, + 107, 41, 770, 40, 108, 41, 770, 40, 109, 41, 770, 40, 110, 41, 770, 40, + 111, 41, 770, 40, 112, 41, 770, 40, 113, 41, 770, 40, 114, 41, 770, 40, + 115, 41, 770, 40, 116, 41, 770, 40, 117, 41, 770, 40, 118, 41, 770, 40, + 119, 41, 770, 40, 120, 41, 770, 40, 121, 41, 770, 40, 122, 41, 263, 65, + 263, 66, 263, 67, 263, 68, 263, 69, 263, 70, 263, 71, 263, 72, 263, 73, + 263, 74, 263, 75, 263, 76, 263, 77, 263, 78, 263, 79, 263, 80, 263, 81, + 263, 82, 263, 83, 263, 84, 263, 85, 263, 86, 263, 87, 263, 88, 263, 89, + 263, 90, 263, 97, 263, 98, 263, 99, 263, 100, 263, 101, 263, 102, 263, + 103, 263, 104, 263, 105, 263, 106, 263, 107, 263, 108, 263, 109, 263, + 110, 263, 111, 263, 112, 263, 113, 263, 114, 263, 115, 263, 116, 263, + 117, 263, 118, 263, 119, 263, 120, 263, 121, 263, 122, 263, 48, 1026, + 8747, 8747, 8747, 8747, 770, 58, 58, 61, 514, 61, 61, 770, 61, 61, 61, + 512, 10973, 824, 261, 106, 259, 86, 259, 11617, 258, 27597, 258, 40863, + 258, 19968, 258, 20008, 258, 20022, 258, 20031, 258, 20057, 258, 20101, + 258, 20108, 258, 20128, 258, 20154, 258, 20799, 258, 20837, 258, 20843, + 258, 20866, 258, 20886, 258, 20907, 258, 20960, 258, 20981, 258, 20992, + 258, 21147, 258, 21241, 258, 21269, 258, 21274, 258, 21304, 258, 21313, + 258, 21340, 258, 21353, 258, 21378, 258, 21430, 258, 21448, 258, 21475, + 258, 22231, 258, 22303, 258, 22763, 258, 22786, 258, 22794, 258, 22805, + 258, 22823, 258, 22899, 258, 23376, 258, 23424, 258, 23544, 258, 23567, + 258, 23586, 258, 23608, 258, 23662, 258, 23665, 258, 24027, 258, 24037, + 258, 24049, 258, 24062, 258, 24178, 258, 24186, 258, 24191, 258, 24308, + 258, 24318, 258, 24331, 258, 24339, 258, 24400, 258, 24417, 258, 24435, + 258, 24515, 258, 25096, 258, 25142, 258, 25163, 258, 25903, 258, 25908, + 258, 25991, 258, 26007, 258, 26020, 258, 26041, 258, 26080, 258, 26085, + 258, 26352, 258, 26376, 258, 26408, 258, 27424, 258, 27490, 258, 27513, + 258, 27571, 258, 27595, 258, 27604, 258, 27611, 258, 27663, 258, 27668, + 258, 27700, 258, 28779, 258, 29226, 258, 29238, 258, 29243, 258, 29247, + 258, 29255, 258, 29273, 258, 29275, 258, 29356, 258, 29572, 258, 29577, + 258, 29916, 258, 29926, 258, 29976, 258, 29983, 258, 29992, 258, 30000, + 258, 30091, 258, 30098, 258, 30326, 258, 30333, 258, 30382, 258, 30399, + 258, 30446, 258, 30683, 258, 30690, 258, 30707, 258, 31034, 258, 31160, + 258, 31166, 258, 31348, 258, 31435, 258, 31481, 258, 31859, 258, 31992, + 258, 32566, 258, 32593, 258, 32650, 258, 32701, 258, 32769, 258, 32780, + 258, 32786, 258, 32819, 258, 32895, 258, 32905, 258, 33251, 258, 33258, + 258, 33267, 258, 33276, 258, 33292, 258, 33307, 258, 33311, 258, 33390, + 258, 33394, 258, 33400, 258, 34381, 258, 34411, 258, 34880, 258, 34892, + 258, 34915, 258, 35198, 258, 35211, 258, 35282, 258, 35328, 258, 35895, + 258, 35910, 258, 35925, 258, 35960, 258, 35997, 258, 36196, 258, 36208, + 258, 36275, 258, 36523, 258, 36554, 258, 36763, 258, 36784, 258, 36789, + 258, 37009, 258, 37193, 258, 37318, 258, 37324, 258, 37329, 258, 38263, + 258, 38272, 258, 38428, 258, 38582, 258, 38585, 258, 38632, 258, 38737, + 258, 38750, 258, 38754, 258, 38761, 258, 38859, 258, 38893, 258, 38899, + 258, 38913, 258, 39080, 258, 39131, 258, 39135, 258, 39318, 258, 39321, + 258, 39340, 258, 39592, 258, 39640, 258, 39647, 258, 39717, 258, 39727, + 258, 39730, 258, 39740, 258, 39770, 258, 40165, 258, 40565, 258, 40575, + 258, 40613, 258, 40635, 258, 40643, 258, 40653, 258, 40657, 258, 40697, + 258, 40701, 258, 40718, 258, 40723, 258, 40736, 258, 40763, 258, 40778, + 258, 40786, 258, 40845, 258, 40860, 258, 40864, 264, 32, 258, 12306, 258, + 21313, 258, 21316, 258, 21317, 512, 12363, 12441, 512, 12365, 12441, 512, 12367, 12441, 512, 12369, 12441, 512, 12371, 12441, 512, 12373, 12441, 512, 12375, 12441, 512, 12377, 12441, 512, 12379, 12441, 512, 12381, 12441, 512, 12383, 12441, 512, 12385, 12441, 512, 12388, 12441, 512, @@ -3903,42 +3844,43 @@ static const unsigned int decomp_data[] = { 51, 49, 26085, 778, 103, 97, 108, 259, 1098, 259, 1100, 259, 42863, 259, 67, 259, 70, 259, 81, 259, 294, 259, 339, 259, 42791, 259, 43831, 259, 619, 259, 43858, 259, 653, 256, 35912, 256, 26356, 256, 36554, 256, - 36040, 256, 28369, 256, 20018, 256, 21477, 256, 40860, 256, 22865, 256, - 37329, 256, 21895, 256, 22856, 256, 25078, 256, 30313, 256, 32645, 256, - 34367, 256, 34746, 256, 35064, 256, 37007, 256, 27138, 256, 27931, 256, - 28889, 256, 29662, 256, 33853, 256, 37226, 256, 39409, 256, 20098, 256, - 21365, 256, 27396, 256, 29211, 256, 34349, 256, 40478, 256, 23888, 256, - 28651, 256, 34253, 256, 35172, 256, 25289, 256, 33240, 256, 34847, 256, - 24266, 256, 26391, 256, 28010, 256, 29436, 256, 37070, 256, 20358, 256, - 20919, 256, 21214, 256, 25796, 256, 27347, 256, 29200, 256, 30439, 256, - 32769, 256, 34310, 256, 34396, 256, 36335, 256, 38706, 256, 39791, 256, - 40442, 256, 30860, 256, 31103, 256, 32160, 256, 33737, 256, 37636, 256, - 40575, 256, 35542, 256, 22751, 256, 24324, 256, 31840, 256, 32894, 256, - 29282, 256, 30922, 256, 36034, 256, 38647, 256, 22744, 256, 23650, 256, - 27155, 256, 28122, 256, 28431, 256, 32047, 256, 32311, 256, 38475, 256, - 21202, 256, 32907, 256, 20956, 256, 20940, 256, 31260, 256, 32190, 256, - 33777, 256, 38517, 256, 35712, 256, 25295, 256, 35582, 256, 20025, 256, - 23527, 256, 24594, 256, 29575, 256, 30064, 256, 21271, 256, 30971, 256, - 20415, 256, 24489, 256, 19981, 256, 27852, 256, 25976, 256, 32034, 256, - 21443, 256, 22622, 256, 30465, 256, 33865, 256, 35498, 256, 27578, 256, - 36784, 256, 27784, 256, 25342, 256, 33509, 256, 25504, 256, 30053, 256, - 20142, 256, 20841, 256, 20937, 256, 26753, 256, 31975, 256, 33391, 256, - 35538, 256, 37327, 256, 21237, 256, 21570, 256, 22899, 256, 24300, 256, - 26053, 256, 28670, 256, 31018, 256, 38317, 256, 39530, 256, 40599, 256, - 40654, 256, 21147, 256, 26310, 256, 27511, 256, 36706, 256, 24180, 256, - 24976, 256, 25088, 256, 25754, 256, 28451, 256, 29001, 256, 29833, 256, - 31178, 256, 32244, 256, 32879, 256, 36646, 256, 34030, 256, 36899, 256, - 37706, 256, 21015, 256, 21155, 256, 21693, 256, 28872, 256, 35010, 256, - 24265, 256, 24565, 256, 25467, 256, 27566, 256, 31806, 256, 29557, 256, - 20196, 256, 22265, 256, 23994, 256, 24604, 256, 29618, 256, 29801, 256, - 32666, 256, 32838, 256, 37428, 256, 38646, 256, 38728, 256, 38936, 256, - 20363, 256, 31150, 256, 37300, 256, 38584, 256, 24801, 256, 20102, 256, - 20698, 256, 23534, 256, 23615, 256, 26009, 256, 29134, 256, 30274, 256, - 34044, 256, 36988, 256, 40845, 256, 26248, 256, 38446, 256, 21129, 256, - 26491, 256, 26611, 256, 27969, 256, 28316, 256, 29705, 256, 30041, 256, - 30827, 256, 32016, 256, 39006, 256, 20845, 256, 25134, 256, 38520, 256, - 20523, 256, 23833, 256, 28138, 256, 36650, 256, 24459, 256, 24900, 256, - 26647, 256, 38534, 256, 21033, 256, 21519, 256, 23653, 256, 26131, 256, + 36040, 256, 28369, 256, 20018, 256, 21477, 256, 40860, 256, 40860, 256, + 22865, 256, 37329, 256, 21895, 256, 22856, 256, 25078, 256, 30313, 256, + 32645, 256, 34367, 256, 34746, 256, 35064, 256, 37007, 256, 27138, 256, + 27931, 256, 28889, 256, 29662, 256, 33853, 256, 37226, 256, 39409, 256, + 20098, 256, 21365, 256, 27396, 256, 29211, 256, 34349, 256, 40478, 256, + 23888, 256, 28651, 256, 34253, 256, 35172, 256, 25289, 256, 33240, 256, + 34847, 256, 24266, 256, 26391, 256, 28010, 256, 29436, 256, 37070, 256, + 20358, 256, 20919, 256, 21214, 256, 25796, 256, 27347, 256, 29200, 256, + 30439, 256, 32769, 256, 34310, 256, 34396, 256, 36335, 256, 38706, 256, + 39791, 256, 40442, 256, 30860, 256, 31103, 256, 32160, 256, 33737, 256, + 37636, 256, 40575, 256, 35542, 256, 22751, 256, 24324, 256, 31840, 256, + 32894, 256, 29282, 256, 30922, 256, 36034, 256, 38647, 256, 22744, 256, + 23650, 256, 27155, 256, 28122, 256, 28431, 256, 32047, 256, 32311, 256, + 38475, 256, 21202, 256, 32907, 256, 20956, 256, 20940, 256, 31260, 256, + 32190, 256, 33777, 256, 38517, 256, 35712, 256, 25295, 256, 27138, 256, + 35582, 256, 20025, 256, 23527, 256, 24594, 256, 29575, 256, 30064, 256, + 21271, 256, 30971, 256, 20415, 256, 24489, 256, 19981, 256, 27852, 256, + 25976, 256, 32034, 256, 21443, 256, 22622, 256, 30465, 256, 33865, 256, + 35498, 256, 27578, 256, 36784, 256, 27784, 256, 25342, 256, 33509, 256, + 25504, 256, 30053, 256, 20142, 256, 20841, 256, 20937, 256, 26753, 256, + 31975, 256, 33391, 256, 35538, 256, 37327, 256, 21237, 256, 21570, 256, + 22899, 256, 24300, 256, 26053, 256, 28670, 256, 31018, 256, 38317, 256, + 39530, 256, 40599, 256, 40654, 256, 21147, 256, 26310, 256, 27511, 256, + 36706, 256, 24180, 256, 24976, 256, 25088, 256, 25754, 256, 28451, 256, + 29001, 256, 29833, 256, 31178, 256, 32244, 256, 32879, 256, 36646, 256, + 34030, 256, 36899, 256, 37706, 256, 21015, 256, 21155, 256, 21693, 256, + 28872, 256, 35010, 256, 35498, 256, 24265, 256, 24565, 256, 25467, 256, + 27566, 256, 31806, 256, 29557, 256, 20196, 256, 22265, 256, 23527, 256, + 23994, 256, 24604, 256, 29618, 256, 29801, 256, 32666, 256, 32838, 256, + 37428, 256, 38646, 256, 38728, 256, 38936, 256, 20363, 256, 31150, 256, + 37300, 256, 38584, 256, 24801, 256, 20102, 256, 20698, 256, 23534, 256, + 23615, 256, 26009, 256, 27138, 256, 29134, 256, 30274, 256, 34044, 256, + 36988, 256, 40845, 256, 26248, 256, 38446, 256, 21129, 256, 26491, 256, + 26611, 256, 27969, 256, 28316, 256, 29705, 256, 30041, 256, 30827, 256, + 32016, 256, 39006, 256, 20845, 256, 25134, 256, 38520, 256, 20523, 256, + 23833, 256, 28138, 256, 36650, 256, 24459, 256, 24900, 256, 26647, 256, + 29575, 256, 38534, 256, 21033, 256, 21519, 256, 23653, 256, 26131, 256, 26446, 256, 26792, 256, 27877, 256, 29702, 256, 30178, 256, 32633, 256, 35023, 256, 35041, 256, 37324, 256, 38626, 256, 21311, 256, 28346, 256, 21533, 256, 29136, 256, 29848, 256, 34298, 256, 38563, 256, 40023, 256, @@ -3956,60 +3898,65 @@ static const unsigned int decomp_data[] = { 25935, 256, 26082, 256, 26257, 256, 26757, 256, 28023, 256, 28186, 256, 28450, 256, 29038, 256, 29227, 256, 29730, 256, 30865, 256, 31038, 256, 31049, 256, 31048, 256, 31056, 256, 31062, 256, 31069, 256, 31117, 256, - 31118, 256, 31296, 256, 31361, 256, 31680, 256, 32265, 256, 32321, 256, - 32626, 256, 32773, 256, 33261, 256, 33401, 256, 33879, 256, 35088, 256, - 35222, 256, 35585, 256, 35641, 256, 36051, 256, 36104, 256, 36790, 256, - 38627, 256, 38911, 256, 38971, 256, 24693, 256, 148206, 256, 33304, 256, - 20006, 256, 20917, 256, 20840, 256, 20352, 256, 20805, 256, 20864, 256, - 21191, 256, 21242, 256, 21845, 256, 21913, 256, 21986, 256, 22707, 256, - 22852, 256, 22868, 256, 23138, 256, 23336, 256, 24274, 256, 24281, 256, - 24425, 256, 24493, 256, 24792, 256, 24910, 256, 24840, 256, 24928, 256, - 25140, 256, 25540, 256, 25628, 256, 25682, 256, 25942, 256, 26395, 256, - 26454, 256, 27513, 256, 28379, 256, 28363, 256, 28702, 256, 30631, 256, - 29237, 256, 29359, 256, 29809, 256, 29958, 256, 30011, 256, 30237, 256, - 30239, 256, 30427, 256, 30452, 256, 30538, 256, 30528, 256, 30924, 256, - 31409, 256, 31867, 256, 32091, 256, 32574, 256, 33618, 256, 33775, 256, - 34681, 256, 35137, 256, 35206, 256, 35519, 256, 35531, 256, 35565, 256, - 35722, 256, 36664, 256, 36978, 256, 37273, 256, 37494, 256, 38524, 256, - 38875, 256, 38923, 256, 39698, 256, 141386, 256, 141380, 256, 144341, - 256, 15261, 256, 16408, 256, 16441, 256, 152137, 256, 154832, 256, - 163539, 256, 40771, 256, 40846, 514, 102, 102, 514, 102, 105, 514, 102, - 108, 770, 102, 102, 105, 770, 102, 102, 108, 514, 383, 116, 514, 115, - 116, 514, 1396, 1398, 514, 1396, 1381, 514, 1396, 1387, 514, 1406, 1398, - 514, 1396, 1389, 512, 1497, 1460, 512, 1522, 1463, 262, 1506, 262, 1488, - 262, 1491, 262, 1492, 262, 1499, 262, 1500, 262, 1501, 262, 1512, 262, - 1514, 262, 43, 512, 1513, 1473, 512, 1513, 1474, 512, 64329, 1473, 512, - 64329, 1474, 512, 1488, 1463, 512, 1488, 1464, 512, 1488, 1468, 512, - 1489, 1468, 512, 1490, 1468, 512, 1491, 1468, 512, 1492, 1468, 512, 1493, - 1468, 512, 1494, 1468, 512, 1496, 1468, 512, 1497, 1468, 512, 1498, 1468, - 512, 1499, 1468, 512, 1500, 1468, 512, 1502, 1468, 512, 1504, 1468, 512, - 1505, 1468, 512, 1507, 1468, 512, 1508, 1468, 512, 1510, 1468, 512, 1511, - 1468, 512, 1512, 1468, 512, 1513, 1468, 512, 1514, 1468, 512, 1493, 1465, - 512, 1489, 1471, 512, 1499, 1471, 512, 1508, 1471, 514, 1488, 1500, 267, - 1649, 268, 1649, 267, 1659, 268, 1659, 269, 1659, 270, 1659, 267, 1662, - 268, 1662, 269, 1662, 270, 1662, 267, 1664, 268, 1664, 269, 1664, 270, - 1664, 267, 1658, 268, 1658, 269, 1658, 270, 1658, 267, 1663, 268, 1663, - 269, 1663, 270, 1663, 267, 1657, 268, 1657, 269, 1657, 270, 1657, 267, - 1700, 268, 1700, 269, 1700, 270, 1700, 267, 1702, 268, 1702, 269, 1702, - 270, 1702, 267, 1668, 268, 1668, 269, 1668, 270, 1668, 267, 1667, 268, - 1667, 269, 1667, 270, 1667, 267, 1670, 268, 1670, 269, 1670, 270, 1670, - 267, 1671, 268, 1671, 269, 1671, 270, 1671, 267, 1677, 268, 1677, 267, - 1676, 268, 1676, 267, 1678, 268, 1678, 267, 1672, 268, 1672, 267, 1688, - 268, 1688, 267, 1681, 268, 1681, 267, 1705, 268, 1705, 269, 1705, 270, - 1705, 267, 1711, 268, 1711, 269, 1711, 270, 1711, 267, 1715, 268, 1715, - 269, 1715, 270, 1715, 267, 1713, 268, 1713, 269, 1713, 270, 1713, 267, - 1722, 268, 1722, 267, 1723, 268, 1723, 269, 1723, 270, 1723, 267, 1728, - 268, 1728, 267, 1729, 268, 1729, 269, 1729, 270, 1729, 267, 1726, 268, - 1726, 269, 1726, 270, 1726, 267, 1746, 268, 1746, 267, 1747, 268, 1747, - 267, 1709, 268, 1709, 269, 1709, 270, 1709, 267, 1735, 268, 1735, 267, - 1734, 268, 1734, 267, 1736, 268, 1736, 267, 1655, 267, 1739, 268, 1739, - 267, 1733, 268, 1733, 267, 1737, 268, 1737, 267, 1744, 268, 1744, 269, - 1744, 270, 1744, 269, 1609, 270, 1609, 523, 1574, 1575, 524, 1574, 1575, - 523, 1574, 1749, 524, 1574, 1749, 523, 1574, 1608, 524, 1574, 1608, 523, - 1574, 1735, 524, 1574, 1735, 523, 1574, 1734, 524, 1574, 1734, 523, 1574, - 1736, 524, 1574, 1736, 523, 1574, 1744, 524, 1574, 1744, 525, 1574, 1744, - 523, 1574, 1609, 524, 1574, 1609, 525, 1574, 1609, 267, 1740, 268, 1740, - 269, 1740, 270, 1740, 523, 1574, 1580, 523, 1574, 1581, 523, 1574, 1605, + 31118, 256, 31296, 256, 31361, 256, 31680, 256, 32244, 256, 32265, 256, + 32321, 256, 32626, 256, 32773, 256, 33261, 256, 33401, 256, 33401, 256, + 33879, 256, 35088, 256, 35222, 256, 35585, 256, 35641, 256, 36051, 256, + 36104, 256, 36790, 256, 36920, 256, 38627, 256, 38911, 256, 38971, 256, + 24693, 256, 148206, 256, 33304, 256, 20006, 256, 20917, 256, 20840, 256, + 20352, 256, 20805, 256, 20864, 256, 21191, 256, 21242, 256, 21917, 256, + 21845, 256, 21913, 256, 21986, 256, 22618, 256, 22707, 256, 22852, 256, + 22868, 256, 23138, 256, 23336, 256, 24274, 256, 24281, 256, 24425, 256, + 24493, 256, 24792, 256, 24910, 256, 24840, 256, 24974, 256, 24928, 256, + 25074, 256, 25140, 256, 25540, 256, 25628, 256, 25682, 256, 25942, 256, + 26228, 256, 26391, 256, 26395, 256, 26454, 256, 27513, 256, 27578, 256, + 27969, 256, 28379, 256, 28363, 256, 28450, 256, 28702, 256, 29038, 256, + 30631, 256, 29237, 256, 29359, 256, 29482, 256, 29809, 256, 29958, 256, + 30011, 256, 30237, 256, 30239, 256, 30410, 256, 30427, 256, 30452, 256, + 30538, 256, 30528, 256, 30924, 256, 31409, 256, 31680, 256, 31867, 256, + 32091, 256, 32244, 256, 32574, 256, 32773, 256, 33618, 256, 33775, 256, + 34681, 256, 35137, 256, 35206, 256, 35222, 256, 35519, 256, 35576, 256, + 35531, 256, 35585, 256, 35582, 256, 35565, 256, 35641, 256, 35722, 256, + 36104, 256, 36664, 256, 36978, 256, 37273, 256, 37494, 256, 38524, 256, + 38627, 256, 38742, 256, 38875, 256, 38911, 256, 38923, 256, 38971, 256, + 39698, 256, 40860, 256, 141386, 256, 141380, 256, 144341, 256, 15261, + 256, 16408, 256, 16441, 256, 152137, 256, 154832, 256, 163539, 256, + 40771, 256, 40846, 514, 102, 102, 514, 102, 105, 514, 102, 108, 770, 102, + 102, 105, 770, 102, 102, 108, 514, 383, 116, 514, 115, 116, 514, 1396, + 1398, 514, 1396, 1381, 514, 1396, 1387, 514, 1406, 1398, 514, 1396, 1389, + 512, 1497, 1460, 512, 1522, 1463, 262, 1506, 262, 1488, 262, 1491, 262, + 1492, 262, 1499, 262, 1500, 262, 1501, 262, 1512, 262, 1514, 262, 43, + 512, 1513, 1473, 512, 1513, 1474, 512, 64329, 1473, 512, 64329, 1474, + 512, 1488, 1463, 512, 1488, 1464, 512, 1488, 1468, 512, 1489, 1468, 512, + 1490, 1468, 512, 1491, 1468, 512, 1492, 1468, 512, 1493, 1468, 512, 1494, + 1468, 512, 1496, 1468, 512, 1497, 1468, 512, 1498, 1468, 512, 1499, 1468, + 512, 1500, 1468, 512, 1502, 1468, 512, 1504, 1468, 512, 1505, 1468, 512, + 1507, 1468, 512, 1508, 1468, 512, 1510, 1468, 512, 1511, 1468, 512, 1512, + 1468, 512, 1513, 1468, 512, 1514, 1468, 512, 1493, 1465, 512, 1489, 1471, + 512, 1499, 1471, 512, 1508, 1471, 514, 1488, 1500, 267, 1649, 268, 1649, + 267, 1659, 268, 1659, 269, 1659, 270, 1659, 267, 1662, 268, 1662, 269, + 1662, 270, 1662, 267, 1664, 268, 1664, 269, 1664, 270, 1664, 267, 1658, + 268, 1658, 269, 1658, 270, 1658, 267, 1663, 268, 1663, 269, 1663, 270, + 1663, 267, 1657, 268, 1657, 269, 1657, 270, 1657, 267, 1700, 268, 1700, + 269, 1700, 270, 1700, 267, 1702, 268, 1702, 269, 1702, 270, 1702, 267, + 1668, 268, 1668, 269, 1668, 270, 1668, 267, 1667, 268, 1667, 269, 1667, + 270, 1667, 267, 1670, 268, 1670, 269, 1670, 270, 1670, 267, 1671, 268, + 1671, 269, 1671, 270, 1671, 267, 1677, 268, 1677, 267, 1676, 268, 1676, + 267, 1678, 268, 1678, 267, 1672, 268, 1672, 267, 1688, 268, 1688, 267, + 1681, 268, 1681, 267, 1705, 268, 1705, 269, 1705, 270, 1705, 267, 1711, + 268, 1711, 269, 1711, 270, 1711, 267, 1715, 268, 1715, 269, 1715, 270, + 1715, 267, 1713, 268, 1713, 269, 1713, 270, 1713, 267, 1722, 268, 1722, + 267, 1723, 268, 1723, 269, 1723, 270, 1723, 267, 1728, 268, 1728, 267, + 1729, 268, 1729, 269, 1729, 270, 1729, 267, 1726, 268, 1726, 269, 1726, + 270, 1726, 267, 1746, 268, 1746, 267, 1747, 268, 1747, 267, 1709, 268, + 1709, 269, 1709, 270, 1709, 267, 1735, 268, 1735, 267, 1734, 268, 1734, + 267, 1736, 268, 1736, 267, 1655, 267, 1739, 268, 1739, 267, 1733, 268, + 1733, 267, 1737, 268, 1737, 267, 1744, 268, 1744, 269, 1744, 270, 1744, + 269, 1609, 270, 1609, 523, 1574, 1575, 524, 1574, 1575, 523, 1574, 1749, + 524, 1574, 1749, 523, 1574, 1608, 524, 1574, 1608, 523, 1574, 1735, 524, + 1574, 1735, 523, 1574, 1734, 524, 1574, 1734, 523, 1574, 1736, 524, 1574, + 1736, 523, 1574, 1744, 524, 1574, 1744, 525, 1574, 1744, 523, 1574, 1609, + 524, 1574, 1609, 525, 1574, 1609, 267, 1740, 268, 1740, 269, 1740, 270, + 1740, 523, 1574, 1580, 523, 1574, 1581, 523, 1574, 1605, 523, 1574, 1609, 523, 1574, 1610, 523, 1576, 1580, 523, 1576, 1581, 523, 1576, 1582, 523, 1576, 1605, 523, 1576, 1609, 523, 1576, 1610, 523, 1578, 1580, 523, 1578, 1581, 523, 1578, 1582, 523, 1578, 1605, 523, 1578, 1609, 523, 1578, 1610, @@ -4033,171 +3980,172 @@ static const unsigned int decomp_data[] = { 1610, 523, 1584, 1648, 523, 1585, 1648, 523, 1609, 1648, 779, 32, 1612, 1617, 779, 32, 1613, 1617, 779, 32, 1614, 1617, 779, 32, 1615, 1617, 779, 32, 1616, 1617, 779, 32, 1617, 1648, 524, 1574, 1585, 524, 1574, 1586, - 524, 1574, 1605, 524, 1574, 1606, 524, 1574, 1610, 524, 1576, 1585, 524, - 1576, 1586, 524, 1576, 1605, 524, 1576, 1606, 524, 1576, 1609, 524, 1576, - 1610, 524, 1578, 1585, 524, 1578, 1586, 524, 1578, 1605, 524, 1578, 1606, - 524, 1578, 1609, 524, 1578, 1610, 524, 1579, 1585, 524, 1579, 1586, 524, - 1579, 1605, 524, 1579, 1606, 524, 1579, 1609, 524, 1579, 1610, 524, 1601, - 1609, 524, 1601, 1610, 524, 1602, 1609, 524, 1602, 1610, 524, 1603, 1575, - 524, 1603, 1604, 524, 1603, 1605, 524, 1603, 1609, 524, 1603, 1610, 524, - 1604, 1605, 524, 1604, 1609, 524, 1604, 1610, 524, 1605, 1575, 524, 1605, - 1605, 524, 1606, 1585, 524, 1606, 1586, 524, 1606, 1605, 524, 1606, 1606, - 524, 1606, 1609, 524, 1606, 1610, 524, 1609, 1648, 524, 1610, 1585, 524, - 1610, 1586, 524, 1610, 1605, 524, 1610, 1606, 524, 1610, 1609, 524, 1610, - 1610, 525, 1574, 1580, 525, 1574, 1581, 525, 1574, 1582, 525, 1574, 1605, - 525, 1574, 1607, 525, 1576, 1580, 525, 1576, 1581, 525, 1576, 1582, 525, - 1576, 1605, 525, 1576, 1607, 525, 1578, 1580, 525, 1578, 1581, 525, 1578, - 1582, 525, 1578, 1605, 525, 1578, 1607, 525, 1579, 1605, 525, 1580, 1581, - 525, 1580, 1605, 525, 1581, 1580, 525, 1581, 1605, 525, 1582, 1580, 525, - 1582, 1605, 525, 1587, 1580, 525, 1587, 1581, 525, 1587, 1582, 525, 1587, - 1605, 525, 1589, 1581, 525, 1589, 1582, 525, 1589, 1605, 525, 1590, 1580, - 525, 1590, 1581, 525, 1590, 1582, 525, 1590, 1605, 525, 1591, 1581, 525, - 1592, 1605, 525, 1593, 1580, 525, 1593, 1605, 525, 1594, 1580, 525, 1594, - 1605, 525, 1601, 1580, 525, 1601, 1581, 525, 1601, 1582, 525, 1601, 1605, - 525, 1602, 1581, 525, 1602, 1605, 525, 1603, 1580, 525, 1603, 1581, 525, - 1603, 1582, 525, 1603, 1604, 525, 1603, 1605, 525, 1604, 1580, 525, 1604, - 1581, 525, 1604, 1582, 525, 1604, 1605, 525, 1604, 1607, 525, 1605, 1580, - 525, 1605, 1581, 525, 1605, 1582, 525, 1605, 1605, 525, 1606, 1580, 525, - 1606, 1581, 525, 1606, 1582, 525, 1606, 1605, 525, 1606, 1607, 525, 1607, - 1580, 525, 1607, 1605, 525, 1607, 1648, 525, 1610, 1580, 525, 1610, 1581, - 525, 1610, 1582, 525, 1610, 1605, 525, 1610, 1607, 526, 1574, 1605, 526, - 1574, 1607, 526, 1576, 1605, 526, 1576, 1607, 526, 1578, 1605, 526, 1578, - 1607, 526, 1579, 1605, 526, 1579, 1607, 526, 1587, 1605, 526, 1587, 1607, - 526, 1588, 1605, 526, 1588, 1607, 526, 1603, 1604, 526, 1603, 1605, 526, - 1604, 1605, 526, 1606, 1605, 526, 1606, 1607, 526, 1610, 1605, 526, 1610, - 1607, 782, 1600, 1614, 1617, 782, 1600, 1615, 1617, 782, 1600, 1616, - 1617, 523, 1591, 1609, 523, 1591, 1610, 523, 1593, 1609, 523, 1593, 1610, - 523, 1594, 1609, 523, 1594, 1610, 523, 1587, 1609, 523, 1587, 1610, 523, - 1588, 1609, 523, 1588, 1610, 523, 1581, 1609, 523, 1581, 1610, 523, 1580, - 1609, 523, 1580, 1610, 523, 1582, 1609, 523, 1582, 1610, 523, 1589, 1609, - 523, 1589, 1610, 523, 1590, 1609, 523, 1590, 1610, 523, 1588, 1580, 523, - 1588, 1581, 523, 1588, 1582, 523, 1588, 1605, 523, 1588, 1585, 523, 1587, - 1585, 523, 1589, 1585, 523, 1590, 1585, 524, 1591, 1609, 524, 1591, 1610, - 524, 1593, 1609, 524, 1593, 1610, 524, 1594, 1609, 524, 1594, 1610, 524, - 1587, 1609, 524, 1587, 1610, 524, 1588, 1609, 524, 1588, 1610, 524, 1581, - 1609, 524, 1581, 1610, 524, 1580, 1609, 524, 1580, 1610, 524, 1582, 1609, - 524, 1582, 1610, 524, 1589, 1609, 524, 1589, 1610, 524, 1590, 1609, 524, - 1590, 1610, 524, 1588, 1580, 524, 1588, 1581, 524, 1588, 1582, 524, 1588, - 1605, 524, 1588, 1585, 524, 1587, 1585, 524, 1589, 1585, 524, 1590, 1585, - 525, 1588, 1580, 525, 1588, 1581, 525, 1588, 1582, 525, 1588, 1605, 525, - 1587, 1607, 525, 1588, 1607, 525, 1591, 1605, 526, 1587, 1580, 526, 1587, - 1581, 526, 1587, 1582, 526, 1588, 1580, 526, 1588, 1581, 526, 1588, 1582, - 526, 1591, 1605, 526, 1592, 1605, 524, 1575, 1611, 523, 1575, 1611, 781, - 1578, 1580, 1605, 780, 1578, 1581, 1580, 781, 1578, 1581, 1580, 781, - 1578, 1581, 1605, 781, 1578, 1582, 1605, 781, 1578, 1605, 1580, 781, - 1578, 1605, 1581, 781, 1578, 1605, 1582, 780, 1580, 1605, 1581, 781, - 1580, 1605, 1581, 780, 1581, 1605, 1610, 780, 1581, 1605, 1609, 781, - 1587, 1581, 1580, 781, 1587, 1580, 1581, 780, 1587, 1580, 1609, 780, - 1587, 1605, 1581, 781, 1587, 1605, 1581, 781, 1587, 1605, 1580, 780, - 1587, 1605, 1605, 781, 1587, 1605, 1605, 780, 1589, 1581, 1581, 781, - 1589, 1581, 1581, 780, 1589, 1605, 1605, 780, 1588, 1581, 1605, 781, - 1588, 1581, 1605, 780, 1588, 1580, 1610, 780, 1588, 1605, 1582, 781, - 1588, 1605, 1582, 780, 1588, 1605, 1605, 781, 1588, 1605, 1605, 780, - 1590, 1581, 1609, 780, 1590, 1582, 1605, 781, 1590, 1582, 1605, 780, - 1591, 1605, 1581, 781, 1591, 1605, 1581, 781, 1591, 1605, 1605, 780, - 1591, 1605, 1610, 780, 1593, 1580, 1605, 780, 1593, 1605, 1605, 781, - 1593, 1605, 1605, 780, 1593, 1605, 1609, 780, 1594, 1605, 1605, 780, - 1594, 1605, 1610, 780, 1594, 1605, 1609, 780, 1601, 1582, 1605, 781, - 1601, 1582, 1605, 780, 1602, 1605, 1581, 780, 1602, 1605, 1605, 780, - 1604, 1581, 1605, 780, 1604, 1581, 1610, 780, 1604, 1581, 1609, 781, - 1604, 1580, 1580, 780, 1604, 1580, 1580, 780, 1604, 1582, 1605, 781, - 1604, 1582, 1605, 780, 1604, 1605, 1581, 781, 1604, 1605, 1581, 781, - 1605, 1581, 1580, 781, 1605, 1581, 1605, 780, 1605, 1581, 1610, 781, - 1605, 1580, 1581, 781, 1605, 1580, 1605, 781, 1605, 1582, 1580, 781, - 1605, 1582, 1605, 781, 1605, 1580, 1582, 781, 1607, 1605, 1580, 781, - 1607, 1605, 1605, 781, 1606, 1581, 1605, 780, 1606, 1581, 1609, 780, - 1606, 1580, 1605, 781, 1606, 1580, 1605, 780, 1606, 1580, 1609, 780, - 1606, 1605, 1610, 780, 1606, 1605, 1609, 780, 1610, 1605, 1605, 781, - 1610, 1605, 1605, 780, 1576, 1582, 1610, 780, 1578, 1580, 1610, 780, - 1578, 1580, 1609, 780, 1578, 1582, 1610, 780, 1578, 1582, 1609, 780, - 1578, 1605, 1610, 780, 1578, 1605, 1609, 780, 1580, 1605, 1610, 780, - 1580, 1581, 1609, 780, 1580, 1605, 1609, 780, 1587, 1582, 1609, 780, - 1589, 1581, 1610, 780, 1588, 1581, 1610, 780, 1590, 1581, 1610, 780, - 1604, 1580, 1610, 780, 1604, 1605, 1610, 780, 1610, 1581, 1610, 780, - 1610, 1580, 1610, 780, 1610, 1605, 1610, 780, 1605, 1605, 1610, 780, - 1602, 1605, 1610, 780, 1606, 1581, 1610, 781, 1602, 1605, 1581, 781, - 1604, 1581, 1605, 780, 1593, 1605, 1610, 780, 1603, 1605, 1610, 781, - 1606, 1580, 1581, 780, 1605, 1582, 1610, 781, 1604, 1580, 1605, 780, - 1603, 1605, 1605, 780, 1604, 1580, 1605, 780, 1606, 1580, 1581, 780, - 1580, 1581, 1610, 780, 1581, 1580, 1610, 780, 1605, 1580, 1610, 780, - 1601, 1605, 1610, 780, 1576, 1581, 1610, 781, 1603, 1605, 1605, 781, - 1593, 1580, 1605, 781, 1589, 1605, 1605, 780, 1587, 1582, 1610, 780, - 1606, 1580, 1610, 779, 1589, 1604, 1746, 779, 1602, 1604, 1746, 1035, - 1575, 1604, 1604, 1607, 1035, 1575, 1603, 1576, 1585, 1035, 1605, 1581, - 1605, 1583, 1035, 1589, 1604, 1593, 1605, 1035, 1585, 1587, 1608, 1604, - 1035, 1593, 1604, 1610, 1607, 1035, 1608, 1587, 1604, 1605, 779, 1589, - 1604, 1609, 4619, 1589, 1604, 1609, 32, 1575, 1604, 1604, 1607, 32, 1593, - 1604, 1610, 1607, 32, 1608, 1587, 1604, 1605, 2059, 1580, 1604, 32, 1580, - 1604, 1575, 1604, 1607, 1035, 1585, 1740, 1575, 1604, 265, 44, 265, - 12289, 265, 12290, 265, 58, 265, 59, 265, 33, 265, 63, 265, 12310, 265, - 12311, 265, 8230, 265, 8229, 265, 8212, 265, 8211, 265, 95, 265, 40, 265, - 41, 265, 123, 265, 125, 265, 12308, 265, 12309, 265, 12304, 265, 12305, - 265, 12298, 265, 12299, 265, 12296, 265, 12297, 265, 12300, 265, 12301, - 265, 12302, 265, 12303, 265, 91, 265, 93, 258, 8254, 258, 95, 271, 44, - 271, 12289, 271, 46, 271, 59, 271, 58, 271, 63, 271, 33, 271, 8212, 271, - 40, 271, 41, 271, 123, 271, 125, 271, 12308, 271, 12309, 271, 35, 271, - 38, 271, 42, 271, 43, 271, 45, 271, 60, 271, 62, 271, 61, 271, 92, 271, - 36, 271, 37, 271, 64, 523, 32, 1611, 526, 1600, 1611, 523, 32, 1612, 523, - 32, 1613, 523, 32, 1614, 526, 1600, 1614, 523, 32, 1615, 526, 1600, 1615, - 523, 32, 1616, 526, 1600, 1616, 523, 32, 1617, 526, 1600, 1617, 523, 32, - 1618, 526, 1600, 1618, 267, 1569, 267, 1570, 268, 1570, 267, 1571, 268, - 1571, 267, 1572, 268, 1572, 267, 1573, 268, 1573, 267, 1574, 268, 1574, - 269, 1574, 270, 1574, 267, 1575, 268, 1575, 267, 1576, 268, 1576, 269, - 1576, 270, 1576, 267, 1577, 268, 1577, 267, 1578, 268, 1578, 269, 1578, - 270, 1578, 267, 1579, 268, 1579, 269, 1579, 270, 1579, 267, 1580, 268, - 1580, 269, 1580, 270, 1580, 267, 1581, 268, 1581, 269, 1581, 270, 1581, - 267, 1582, 268, 1582, 269, 1582, 270, 1582, 267, 1583, 268, 1583, 267, - 1584, 268, 1584, 267, 1585, 268, 1585, 267, 1586, 268, 1586, 267, 1587, - 268, 1587, 269, 1587, 270, 1587, 267, 1588, 268, 1588, 269, 1588, 270, - 1588, 267, 1589, 268, 1589, 269, 1589, 270, 1589, 267, 1590, 268, 1590, - 269, 1590, 270, 1590, 267, 1591, 268, 1591, 269, 1591, 270, 1591, 267, - 1592, 268, 1592, 269, 1592, 270, 1592, 267, 1593, 268, 1593, 269, 1593, - 270, 1593, 267, 1594, 268, 1594, 269, 1594, 270, 1594, 267, 1601, 268, - 1601, 269, 1601, 270, 1601, 267, 1602, 268, 1602, 269, 1602, 270, 1602, - 267, 1603, 268, 1603, 269, 1603, 270, 1603, 267, 1604, 268, 1604, 269, - 1604, 270, 1604, 267, 1605, 268, 1605, 269, 1605, 270, 1605, 267, 1606, - 268, 1606, 269, 1606, 270, 1606, 267, 1607, 268, 1607, 269, 1607, 270, - 1607, 267, 1608, 268, 1608, 267, 1609, 268, 1609, 267, 1610, 268, 1610, - 269, 1610, 270, 1610, 523, 1604, 1570, 524, 1604, 1570, 523, 1604, 1571, - 524, 1604, 1571, 523, 1604, 1573, 524, 1604, 1573, 523, 1604, 1575, 524, - 1604, 1575, 264, 33, 264, 34, 264, 35, 264, 36, 264, 37, 264, 38, 264, - 39, 264, 40, 264, 41, 264, 42, 264, 43, 264, 44, 264, 45, 264, 46, 264, - 47, 264, 48, 264, 49, 264, 50, 264, 51, 264, 52, 264, 53, 264, 54, 264, - 55, 264, 56, 264, 57, 264, 58, 264, 59, 264, 60, 264, 61, 264, 62, 264, - 63, 264, 64, 264, 65, 264, 66, 264, 67, 264, 68, 264, 69, 264, 70, 264, - 71, 264, 72, 264, 73, 264, 74, 264, 75, 264, 76, 264, 77, 264, 78, 264, - 79, 264, 80, 264, 81, 264, 82, 264, 83, 264, 84, 264, 85, 264, 86, 264, - 87, 264, 88, 264, 89, 264, 90, 264, 91, 264, 92, 264, 93, 264, 94, 264, - 95, 264, 96, 264, 97, 264, 98, 264, 99, 264, 100, 264, 101, 264, 102, - 264, 103, 264, 104, 264, 105, 264, 106, 264, 107, 264, 108, 264, 109, - 264, 110, 264, 111, 264, 112, 264, 113, 264, 114, 264, 115, 264, 116, - 264, 117, 264, 118, 264, 119, 264, 120, 264, 121, 264, 122, 264, 123, - 264, 124, 264, 125, 264, 126, 264, 10629, 264, 10630, 272, 12290, 272, - 12300, 272, 12301, 272, 12289, 272, 12539, 272, 12530, 272, 12449, 272, - 12451, 272, 12453, 272, 12455, 272, 12457, 272, 12515, 272, 12517, 272, - 12519, 272, 12483, 272, 12540, 272, 12450, 272, 12452, 272, 12454, 272, - 12456, 272, 12458, 272, 12459, 272, 12461, 272, 12463, 272, 12465, 272, - 12467, 272, 12469, 272, 12471, 272, 12473, 272, 12475, 272, 12477, 272, - 12479, 272, 12481, 272, 12484, 272, 12486, 272, 12488, 272, 12490, 272, - 12491, 272, 12492, 272, 12493, 272, 12494, 272, 12495, 272, 12498, 272, - 12501, 272, 12504, 272, 12507, 272, 12510, 272, 12511, 272, 12512, 272, - 12513, 272, 12514, 272, 12516, 272, 12518, 272, 12520, 272, 12521, 272, - 12522, 272, 12523, 272, 12524, 272, 12525, 272, 12527, 272, 12531, 272, - 12441, 272, 12442, 272, 12644, 272, 12593, 272, 12594, 272, 12595, 272, - 12596, 272, 12597, 272, 12598, 272, 12599, 272, 12600, 272, 12601, 272, - 12602, 272, 12603, 272, 12604, 272, 12605, 272, 12606, 272, 12607, 272, - 12608, 272, 12609, 272, 12610, 272, 12611, 272, 12612, 272, 12613, 272, - 12614, 272, 12615, 272, 12616, 272, 12617, 272, 12618, 272, 12619, 272, - 12620, 272, 12621, 272, 12622, 272, 12623, 272, 12624, 272, 12625, 272, - 12626, 272, 12627, 272, 12628, 272, 12629, 272, 12630, 272, 12631, 272, - 12632, 272, 12633, 272, 12634, 272, 12635, 272, 12636, 272, 12637, 272, - 12638, 272, 12639, 272, 12640, 272, 12641, 272, 12642, 272, 12643, 264, - 162, 264, 163, 264, 172, 264, 175, 264, 166, 264, 165, 264, 8361, 272, - 9474, 272, 8592, 272, 8593, 272, 8594, 272, 8595, 272, 9632, 272, 9675, - 259, 720, 259, 721, 259, 230, 259, 665, 259, 595, 259, 675, 259, 43878, - 259, 677, 259, 676, 259, 598, 259, 599, 259, 7569, 259, 600, 259, 606, - 259, 681, 259, 612, 259, 610, 259, 608, 259, 667, 259, 295, 259, 668, - 259, 615, 259, 644, 259, 682, 259, 683, 259, 620, 259, 122628, 259, + 524, 1574, 1605, 524, 1574, 1606, 524, 1574, 1609, 524, 1574, 1610, 524, + 1576, 1585, 524, 1576, 1586, 524, 1576, 1605, 524, 1576, 1606, 524, 1576, + 1609, 524, 1576, 1610, 524, 1578, 1585, 524, 1578, 1586, 524, 1578, 1605, + 524, 1578, 1606, 524, 1578, 1609, 524, 1578, 1610, 524, 1579, 1585, 524, + 1579, 1586, 524, 1579, 1605, 524, 1579, 1606, 524, 1579, 1609, 524, 1579, + 1610, 524, 1601, 1609, 524, 1601, 1610, 524, 1602, 1609, 524, 1602, 1610, + 524, 1603, 1575, 524, 1603, 1604, 524, 1603, 1605, 524, 1603, 1609, 524, + 1603, 1610, 524, 1604, 1605, 524, 1604, 1609, 524, 1604, 1610, 524, 1605, + 1575, 524, 1605, 1605, 524, 1606, 1585, 524, 1606, 1586, 524, 1606, 1605, + 524, 1606, 1606, 524, 1606, 1609, 524, 1606, 1610, 524, 1609, 1648, 524, + 1610, 1585, 524, 1610, 1586, 524, 1610, 1605, 524, 1610, 1606, 524, 1610, + 1609, 524, 1610, 1610, 525, 1574, 1580, 525, 1574, 1581, 525, 1574, 1582, + 525, 1574, 1605, 525, 1574, 1607, 525, 1576, 1580, 525, 1576, 1581, 525, + 1576, 1582, 525, 1576, 1605, 525, 1576, 1607, 525, 1578, 1580, 525, 1578, + 1581, 525, 1578, 1582, 525, 1578, 1605, 525, 1578, 1607, 525, 1579, 1605, + 525, 1580, 1581, 525, 1580, 1605, 525, 1581, 1580, 525, 1581, 1605, 525, + 1582, 1580, 525, 1582, 1605, 525, 1587, 1580, 525, 1587, 1581, 525, 1587, + 1582, 525, 1587, 1605, 525, 1589, 1581, 525, 1589, 1582, 525, 1589, 1605, + 525, 1590, 1580, 525, 1590, 1581, 525, 1590, 1582, 525, 1590, 1605, 525, + 1591, 1581, 525, 1592, 1605, 525, 1593, 1580, 525, 1593, 1605, 525, 1594, + 1580, 525, 1594, 1605, 525, 1601, 1580, 525, 1601, 1581, 525, 1601, 1582, + 525, 1601, 1605, 525, 1602, 1581, 525, 1602, 1605, 525, 1603, 1580, 525, + 1603, 1581, 525, 1603, 1582, 525, 1603, 1604, 525, 1603, 1605, 525, 1604, + 1580, 525, 1604, 1581, 525, 1604, 1582, 525, 1604, 1605, 525, 1604, 1607, + 525, 1605, 1580, 525, 1605, 1581, 525, 1605, 1582, 525, 1605, 1605, 525, + 1606, 1580, 525, 1606, 1581, 525, 1606, 1582, 525, 1606, 1605, 525, 1606, + 1607, 525, 1607, 1580, 525, 1607, 1605, 525, 1607, 1648, 525, 1610, 1580, + 525, 1610, 1581, 525, 1610, 1582, 525, 1610, 1605, 525, 1610, 1607, 526, + 1574, 1605, 526, 1574, 1607, 526, 1576, 1605, 526, 1576, 1607, 526, 1578, + 1605, 526, 1578, 1607, 526, 1579, 1605, 526, 1579, 1607, 526, 1587, 1605, + 526, 1587, 1607, 526, 1588, 1605, 526, 1588, 1607, 526, 1603, 1604, 526, + 1603, 1605, 526, 1604, 1605, 526, 1606, 1605, 526, 1606, 1607, 526, 1610, + 1605, 526, 1610, 1607, 782, 1600, 1614, 1617, 782, 1600, 1615, 1617, 782, + 1600, 1616, 1617, 523, 1591, 1609, 523, 1591, 1610, 523, 1593, 1609, 523, + 1593, 1610, 523, 1594, 1609, 523, 1594, 1610, 523, 1587, 1609, 523, 1587, + 1610, 523, 1588, 1609, 523, 1588, 1610, 523, 1581, 1609, 523, 1581, 1610, + 523, 1580, 1609, 523, 1580, 1610, 523, 1582, 1609, 523, 1582, 1610, 523, + 1589, 1609, 523, 1589, 1610, 523, 1590, 1609, 523, 1590, 1610, 523, 1588, + 1580, 523, 1588, 1581, 523, 1588, 1582, 523, 1588, 1605, 523, 1588, 1585, + 523, 1587, 1585, 523, 1589, 1585, 523, 1590, 1585, 524, 1591, 1609, 524, + 1591, 1610, 524, 1593, 1609, 524, 1593, 1610, 524, 1594, 1609, 524, 1594, + 1610, 524, 1587, 1609, 524, 1587, 1610, 524, 1588, 1609, 524, 1588, 1610, + 524, 1581, 1609, 524, 1581, 1610, 524, 1580, 1609, 524, 1580, 1610, 524, + 1582, 1609, 524, 1582, 1610, 524, 1589, 1609, 524, 1589, 1610, 524, 1590, + 1609, 524, 1590, 1610, 524, 1588, 1580, 524, 1588, 1581, 524, 1588, 1582, + 524, 1588, 1605, 524, 1588, 1585, 524, 1587, 1585, 524, 1589, 1585, 524, + 1590, 1585, 525, 1588, 1580, 525, 1588, 1581, 525, 1588, 1582, 525, 1588, + 1605, 525, 1587, 1607, 525, 1588, 1607, 525, 1591, 1605, 526, 1587, 1580, + 526, 1587, 1581, 526, 1587, 1582, 526, 1588, 1580, 526, 1588, 1581, 526, + 1588, 1582, 526, 1591, 1605, 526, 1592, 1605, 524, 1575, 1611, 523, 1575, + 1611, 781, 1578, 1580, 1605, 780, 1578, 1581, 1580, 781, 1578, 1581, + 1580, 781, 1578, 1581, 1605, 781, 1578, 1582, 1605, 781, 1578, 1605, + 1580, 781, 1578, 1605, 1581, 781, 1578, 1605, 1582, 780, 1580, 1605, + 1581, 781, 1580, 1605, 1581, 780, 1581, 1605, 1610, 780, 1581, 1605, + 1609, 781, 1587, 1581, 1580, 781, 1587, 1580, 1581, 780, 1587, 1580, + 1609, 780, 1587, 1605, 1581, 781, 1587, 1605, 1581, 781, 1587, 1605, + 1580, 780, 1587, 1605, 1605, 781, 1587, 1605, 1605, 780, 1589, 1581, + 1581, 781, 1589, 1581, 1581, 780, 1589, 1605, 1605, 780, 1588, 1581, + 1605, 781, 1588, 1581, 1605, 780, 1588, 1580, 1610, 780, 1588, 1605, + 1582, 781, 1588, 1605, 1582, 780, 1588, 1605, 1605, 781, 1588, 1605, + 1605, 780, 1590, 1581, 1609, 780, 1590, 1582, 1605, 781, 1590, 1582, + 1605, 780, 1591, 1605, 1581, 781, 1591, 1605, 1581, 781, 1591, 1605, + 1605, 780, 1591, 1605, 1610, 780, 1593, 1580, 1605, 780, 1593, 1605, + 1605, 781, 1593, 1605, 1605, 780, 1593, 1605, 1609, 780, 1594, 1605, + 1605, 780, 1594, 1605, 1610, 780, 1594, 1605, 1609, 780, 1601, 1582, + 1605, 781, 1601, 1582, 1605, 780, 1602, 1605, 1581, 780, 1602, 1605, + 1605, 780, 1604, 1581, 1605, 780, 1604, 1581, 1610, 780, 1604, 1581, + 1609, 781, 1604, 1580, 1580, 780, 1604, 1580, 1580, 780, 1604, 1582, + 1605, 781, 1604, 1582, 1605, 780, 1604, 1605, 1581, 781, 1604, 1605, + 1581, 781, 1605, 1581, 1580, 781, 1605, 1581, 1605, 780, 1605, 1581, + 1610, 781, 1605, 1580, 1581, 781, 1605, 1580, 1605, 781, 1605, 1582, + 1580, 781, 1605, 1582, 1605, 781, 1605, 1580, 1582, 781, 1607, 1605, + 1580, 781, 1607, 1605, 1605, 781, 1606, 1581, 1605, 780, 1606, 1581, + 1609, 780, 1606, 1580, 1605, 781, 1606, 1580, 1605, 780, 1606, 1580, + 1609, 780, 1606, 1605, 1610, 780, 1606, 1605, 1609, 780, 1610, 1605, + 1605, 781, 1610, 1605, 1605, 780, 1576, 1582, 1610, 780, 1578, 1580, + 1610, 780, 1578, 1580, 1609, 780, 1578, 1582, 1610, 780, 1578, 1582, + 1609, 780, 1578, 1605, 1610, 780, 1578, 1605, 1609, 780, 1580, 1605, + 1610, 780, 1580, 1581, 1609, 780, 1580, 1605, 1609, 780, 1587, 1582, + 1609, 780, 1589, 1581, 1610, 780, 1588, 1581, 1610, 780, 1590, 1581, + 1610, 780, 1604, 1580, 1610, 780, 1604, 1605, 1610, 780, 1610, 1581, + 1610, 780, 1610, 1580, 1610, 780, 1610, 1605, 1610, 780, 1605, 1605, + 1610, 780, 1602, 1605, 1610, 780, 1606, 1581, 1610, 781, 1602, 1605, + 1581, 781, 1604, 1581, 1605, 780, 1593, 1605, 1610, 780, 1603, 1605, + 1610, 781, 1606, 1580, 1581, 780, 1605, 1582, 1610, 781, 1604, 1580, + 1605, 780, 1603, 1605, 1605, 780, 1604, 1580, 1605, 780, 1606, 1580, + 1581, 780, 1580, 1581, 1610, 780, 1581, 1580, 1610, 780, 1605, 1580, + 1610, 780, 1601, 1605, 1610, 780, 1576, 1581, 1610, 781, 1603, 1605, + 1605, 781, 1593, 1580, 1605, 781, 1589, 1605, 1605, 780, 1587, 1582, + 1610, 780, 1606, 1580, 1610, 779, 1589, 1604, 1746, 779, 1602, 1604, + 1746, 1035, 1575, 1604, 1604, 1607, 1035, 1575, 1603, 1576, 1585, 1035, + 1605, 1581, 1605, 1583, 1035, 1589, 1604, 1593, 1605, 1035, 1585, 1587, + 1608, 1604, 1035, 1593, 1604, 1610, 1607, 1035, 1608, 1587, 1604, 1605, + 779, 1589, 1604, 1609, 4619, 1589, 1604, 1609, 32, 1575, 1604, 1604, + 1607, 32, 1593, 1604, 1610, 1607, 32, 1608, 1587, 1604, 1605, 2059, 1580, + 1604, 32, 1580, 1604, 1575, 1604, 1607, 1035, 1585, 1740, 1575, 1604, + 265, 44, 265, 12289, 265, 12290, 265, 58, 265, 59, 265, 33, 265, 63, 265, + 12310, 265, 12311, 265, 8230, 265, 8229, 265, 8212, 265, 8211, 265, 95, + 265, 95, 265, 40, 265, 41, 265, 123, 265, 125, 265, 12308, 265, 12309, + 265, 12304, 265, 12305, 265, 12298, 265, 12299, 265, 12296, 265, 12297, + 265, 12300, 265, 12301, 265, 12302, 265, 12303, 265, 91, 265, 93, 258, + 8254, 258, 8254, 258, 8254, 258, 8254, 258, 95, 258, 95, 258, 95, 271, + 44, 271, 12289, 271, 46, 271, 59, 271, 58, 271, 63, 271, 33, 271, 8212, + 271, 40, 271, 41, 271, 123, 271, 125, 271, 12308, 271, 12309, 271, 35, + 271, 38, 271, 42, 271, 43, 271, 45, 271, 60, 271, 62, 271, 61, 271, 92, + 271, 36, 271, 37, 271, 64, 523, 32, 1611, 526, 1600, 1611, 523, 32, 1612, + 523, 32, 1613, 523, 32, 1614, 526, 1600, 1614, 523, 32, 1615, 526, 1600, + 1615, 523, 32, 1616, 526, 1600, 1616, 523, 32, 1617, 526, 1600, 1617, + 523, 32, 1618, 526, 1600, 1618, 267, 1569, 267, 1570, 268, 1570, 267, + 1571, 268, 1571, 267, 1572, 268, 1572, 267, 1573, 268, 1573, 267, 1574, + 268, 1574, 269, 1574, 270, 1574, 267, 1575, 268, 1575, 267, 1576, 268, + 1576, 269, 1576, 270, 1576, 267, 1577, 268, 1577, 267, 1578, 268, 1578, + 269, 1578, 270, 1578, 267, 1579, 268, 1579, 269, 1579, 270, 1579, 267, + 1580, 268, 1580, 269, 1580, 270, 1580, 267, 1581, 268, 1581, 269, 1581, + 270, 1581, 267, 1582, 268, 1582, 269, 1582, 270, 1582, 267, 1583, 268, + 1583, 267, 1584, 268, 1584, 267, 1585, 268, 1585, 267, 1586, 268, 1586, + 267, 1587, 268, 1587, 269, 1587, 270, 1587, 267, 1588, 268, 1588, 269, + 1588, 270, 1588, 267, 1589, 268, 1589, 269, 1589, 270, 1589, 267, 1590, + 268, 1590, 269, 1590, 270, 1590, 267, 1591, 268, 1591, 269, 1591, 270, + 1591, 267, 1592, 268, 1592, 269, 1592, 270, 1592, 267, 1593, 268, 1593, + 269, 1593, 270, 1593, 267, 1594, 268, 1594, 269, 1594, 270, 1594, 267, + 1601, 268, 1601, 269, 1601, 270, 1601, 267, 1602, 268, 1602, 269, 1602, + 270, 1602, 267, 1603, 268, 1603, 269, 1603, 270, 1603, 267, 1604, 268, + 1604, 269, 1604, 270, 1604, 267, 1605, 268, 1605, 269, 1605, 270, 1605, + 267, 1606, 268, 1606, 269, 1606, 270, 1606, 267, 1607, 268, 1607, 269, + 1607, 270, 1607, 267, 1608, 268, 1608, 267, 1609, 268, 1609, 267, 1610, + 268, 1610, 269, 1610, 270, 1610, 523, 1604, 1570, 524, 1604, 1570, 523, + 1604, 1571, 524, 1604, 1571, 523, 1604, 1573, 524, 1604, 1573, 523, 1604, + 1575, 524, 1604, 1575, 264, 33, 264, 34, 264, 35, 264, 36, 264, 37, 264, + 38, 264, 39, 264, 40, 264, 41, 264, 42, 264, 43, 264, 44, 264, 45, 264, + 46, 264, 47, 264, 48, 264, 49, 264, 50, 264, 51, 264, 52, 264, 53, 264, + 54, 264, 55, 264, 56, 264, 57, 264, 58, 264, 59, 264, 60, 264, 61, 264, + 62, 264, 63, 264, 64, 264, 65, 264, 66, 264, 67, 264, 68, 264, 69, 264, + 70, 264, 71, 264, 72, 264, 73, 264, 74, 264, 75, 264, 76, 264, 77, 264, + 78, 264, 79, 264, 80, 264, 81, 264, 82, 264, 83, 264, 84, 264, 85, 264, + 86, 264, 87, 264, 88, 264, 89, 264, 90, 264, 91, 264, 92, 264, 93, 264, + 94, 264, 95, 264, 96, 264, 97, 264, 98, 264, 99, 264, 100, 264, 101, 264, + 102, 264, 103, 264, 104, 264, 105, 264, 106, 264, 107, 264, 108, 264, + 109, 264, 110, 264, 111, 264, 112, 264, 113, 264, 114, 264, 115, 264, + 116, 264, 117, 264, 118, 264, 119, 264, 120, 264, 121, 264, 122, 264, + 123, 264, 124, 264, 125, 264, 126, 264, 10629, 264, 10630, 272, 12290, + 272, 12300, 272, 12301, 272, 12289, 272, 12539, 272, 12530, 272, 12449, + 272, 12451, 272, 12453, 272, 12455, 272, 12457, 272, 12515, 272, 12517, + 272, 12519, 272, 12483, 272, 12540, 272, 12450, 272, 12452, 272, 12454, + 272, 12456, 272, 12458, 272, 12459, 272, 12461, 272, 12463, 272, 12465, + 272, 12467, 272, 12469, 272, 12471, 272, 12473, 272, 12475, 272, 12477, + 272, 12479, 272, 12481, 272, 12484, 272, 12486, 272, 12488, 272, 12490, + 272, 12491, 272, 12492, 272, 12493, 272, 12494, 272, 12495, 272, 12498, + 272, 12501, 272, 12504, 272, 12507, 272, 12510, 272, 12511, 272, 12512, + 272, 12513, 272, 12514, 272, 12516, 272, 12518, 272, 12520, 272, 12521, + 272, 12522, 272, 12523, 272, 12524, 272, 12525, 272, 12527, 272, 12531, + 272, 12441, 272, 12442, 272, 12644, 272, 12593, 272, 12594, 272, 12595, + 272, 12596, 272, 12597, 272, 12598, 272, 12599, 272, 12600, 272, 12601, + 272, 12602, 272, 12603, 272, 12604, 272, 12605, 272, 12606, 272, 12607, + 272, 12608, 272, 12609, 272, 12610, 272, 12611, 272, 12612, 272, 12613, + 272, 12614, 272, 12615, 272, 12616, 272, 12617, 272, 12618, 272, 12619, + 272, 12620, 272, 12621, 272, 12622, 272, 12623, 272, 12624, 272, 12625, + 272, 12626, 272, 12627, 272, 12628, 272, 12629, 272, 12630, 272, 12631, + 272, 12632, 272, 12633, 272, 12634, 272, 12635, 272, 12636, 272, 12637, + 272, 12638, 272, 12639, 272, 12640, 272, 12641, 272, 12642, 272, 12643, + 264, 162, 264, 163, 264, 172, 264, 175, 264, 166, 264, 165, 264, 8361, + 272, 9474, 272, 8592, 272, 8593, 272, 8594, 272, 8595, 272, 9632, 272, + 9675, 259, 720, 259, 721, 259, 230, 259, 665, 259, 595, 259, 675, 259, + 43878, 259, 677, 259, 676, 259, 598, 259, 599, 259, 7569, 259, 600, 259, + 606, 259, 681, 259, 612, 259, 610, 259, 608, 259, 667, 259, 295, 259, + 668, 259, 615, 259, 644, 259, 682, 259, 683, 259, 620, 259, 122628, 259, 42894, 259, 622, 259, 122629, 259, 654, 259, 122630, 259, 248, 259, 630, 259, 631, 259, 113, 259, 634, 259, 122632, 259, 637, 259, 638, 259, 640, 259, 680, 259, 678, 259, 43879, 259, 679, 259, 648, 259, 11377, 259, 655, @@ -4209,141 +4157,281 @@ static const unsigned int decomp_data[] = { 512, 119128, 119141, 512, 119135, 119150, 512, 119135, 119151, 512, 119135, 119152, 512, 119135, 119153, 512, 119135, 119154, 512, 119225, 119141, 512, 119226, 119141, 512, 119227, 119150, 512, 119228, 119150, - 512, 119227, 119151, 512, 119228, 119151, 262, 65, 262, 71, 262, 74, 262, - 75, 262, 79, 262, 83, 262, 84, 262, 85, 262, 86, 262, 87, 262, 88, 262, - 89, 262, 97, 262, 98, 262, 99, 262, 102, 262, 107, 262, 109, 262, 110, - 262, 112, 262, 113, 262, 114, 262, 115, 262, 116, 262, 117, 262, 118, - 262, 119, 262, 120, 262, 121, 262, 122, 262, 305, 262, 567, 262, 913, - 262, 914, 262, 916, 262, 917, 262, 918, 262, 919, 262, 920, 262, 921, - 262, 922, 262, 923, 262, 924, 262, 925, 262, 926, 262, 927, 262, 929, - 262, 1012, 262, 931, 262, 932, 262, 933, 262, 934, 262, 935, 262, 936, - 262, 937, 262, 8711, 262, 945, 262, 946, 262, 948, 262, 949, 262, 950, - 262, 951, 262, 952, 262, 953, 262, 954, 262, 955, 262, 956, 262, 957, - 262, 958, 262, 959, 262, 961, 262, 962, 262, 963, 262, 964, 262, 965, - 262, 966, 262, 967, 262, 968, 262, 969, 262, 8706, 262, 1013, 262, 977, - 262, 1008, 262, 981, 262, 1009, 262, 982, 262, 988, 262, 989, 262, 48, - 262, 49, 262, 50, 262, 51, 262, 52, 262, 53, 262, 54, 262, 55, 262, 56, - 262, 57, 259, 1072, 259, 1073, 259, 1074, 259, 1075, 259, 1076, 259, - 1077, 259, 1078, 259, 1079, 259, 1080, 259, 1082, 259, 1083, 259, 1084, - 259, 1086, 259, 1087, 259, 1088, 259, 1089, 259, 1090, 259, 1091, 259, - 1092, 259, 1093, 259, 1094, 259, 1095, 259, 1096, 259, 1099, 259, 1101, - 259, 1102, 259, 42633, 259, 1241, 259, 1110, 259, 1112, 259, 1257, 259, - 1199, 259, 1231, 261, 1072, 261, 1073, 261, 1074, 261, 1075, 261, 1076, - 261, 1077, 261, 1078, 261, 1079, 261, 1080, 261, 1082, 261, 1083, 261, - 1086, 261, 1087, 261, 1089, 261, 1091, 261, 1092, 261, 1093, 261, 1094, - 261, 1095, 261, 1096, 261, 1098, 261, 1099, 261, 1169, 261, 1110, 261, - 1109, 261, 1119, 259, 1195, 259, 42577, 259, 1201, 262, 1575, 262, 1576, - 262, 1580, 262, 1583, 262, 1608, 262, 1586, 262, 1581, 262, 1591, 262, - 1610, 262, 1603, 262, 1604, 262, 1605, 262, 1606, 262, 1587, 262, 1593, + 512, 119227, 119151, 512, 119228, 119151, 262, 65, 262, 66, 262, 67, 262, + 68, 262, 69, 262, 70, 262, 71, 262, 72, 262, 73, 262, 74, 262, 75, 262, + 76, 262, 77, 262, 78, 262, 79, 262, 80, 262, 81, 262, 82, 262, 83, 262, + 84, 262, 85, 262, 86, 262, 87, 262, 88, 262, 89, 262, 90, 262, 97, 262, + 98, 262, 99, 262, 100, 262, 101, 262, 102, 262, 103, 262, 104, 262, 105, + 262, 106, 262, 107, 262, 108, 262, 109, 262, 110, 262, 111, 262, 112, + 262, 113, 262, 114, 262, 115, 262, 116, 262, 117, 262, 118, 262, 119, + 262, 120, 262, 121, 262, 122, 262, 65, 262, 66, 262, 67, 262, 68, 262, + 69, 262, 70, 262, 71, 262, 72, 262, 73, 262, 74, 262, 75, 262, 76, 262, + 77, 262, 78, 262, 79, 262, 80, 262, 81, 262, 82, 262, 83, 262, 84, 262, + 85, 262, 86, 262, 87, 262, 88, 262, 89, 262, 90, 262, 97, 262, 98, 262, + 99, 262, 100, 262, 101, 262, 102, 262, 103, 262, 105, 262, 106, 262, 107, + 262, 108, 262, 109, 262, 110, 262, 111, 262, 112, 262, 113, 262, 114, + 262, 115, 262, 116, 262, 117, 262, 118, 262, 119, 262, 120, 262, 121, + 262, 122, 262, 65, 262, 66, 262, 67, 262, 68, 262, 69, 262, 70, 262, 71, + 262, 72, 262, 73, 262, 74, 262, 75, 262, 76, 262, 77, 262, 78, 262, 79, + 262, 80, 262, 81, 262, 82, 262, 83, 262, 84, 262, 85, 262, 86, 262, 87, + 262, 88, 262, 89, 262, 90, 262, 97, 262, 98, 262, 99, 262, 100, 262, 101, + 262, 102, 262, 103, 262, 104, 262, 105, 262, 106, 262, 107, 262, 108, + 262, 109, 262, 110, 262, 111, 262, 112, 262, 113, 262, 114, 262, 115, + 262, 116, 262, 117, 262, 118, 262, 119, 262, 120, 262, 121, 262, 122, + 262, 65, 262, 67, 262, 68, 262, 71, 262, 74, 262, 75, 262, 78, 262, 79, + 262, 80, 262, 81, 262, 83, 262, 84, 262, 85, 262, 86, 262, 87, 262, 88, + 262, 89, 262, 90, 262, 97, 262, 98, 262, 99, 262, 100, 262, 102, 262, + 104, 262, 105, 262, 106, 262, 107, 262, 108, 262, 109, 262, 110, 262, + 112, 262, 113, 262, 114, 262, 115, 262, 116, 262, 117, 262, 118, 262, + 119, 262, 120, 262, 121, 262, 122, 262, 65, 262, 66, 262, 67, 262, 68, + 262, 69, 262, 70, 262, 71, 262, 72, 262, 73, 262, 74, 262, 75, 262, 76, + 262, 77, 262, 78, 262, 79, 262, 80, 262, 81, 262, 82, 262, 83, 262, 84, + 262, 85, 262, 86, 262, 87, 262, 88, 262, 89, 262, 90, 262, 97, 262, 98, + 262, 99, 262, 100, 262, 101, 262, 102, 262, 103, 262, 104, 262, 105, 262, + 106, 262, 107, 262, 108, 262, 109, 262, 110, 262, 111, 262, 112, 262, + 113, 262, 114, 262, 115, 262, 116, 262, 117, 262, 118, 262, 119, 262, + 120, 262, 121, 262, 122, 262, 65, 262, 66, 262, 68, 262, 69, 262, 70, + 262, 71, 262, 74, 262, 75, 262, 76, 262, 77, 262, 78, 262, 79, 262, 80, + 262, 81, 262, 83, 262, 84, 262, 85, 262, 86, 262, 87, 262, 88, 262, 89, + 262, 97, 262, 98, 262, 99, 262, 100, 262, 101, 262, 102, 262, 103, 262, + 104, 262, 105, 262, 106, 262, 107, 262, 108, 262, 109, 262, 110, 262, + 111, 262, 112, 262, 113, 262, 114, 262, 115, 262, 116, 262, 117, 262, + 118, 262, 119, 262, 120, 262, 121, 262, 122, 262, 65, 262, 66, 262, 68, + 262, 69, 262, 70, 262, 71, 262, 73, 262, 74, 262, 75, 262, 76, 262, 77, + 262, 79, 262, 83, 262, 84, 262, 85, 262, 86, 262, 87, 262, 88, 262, 89, + 262, 97, 262, 98, 262, 99, 262, 100, 262, 101, 262, 102, 262, 103, 262, + 104, 262, 105, 262, 106, 262, 107, 262, 108, 262, 109, 262, 110, 262, + 111, 262, 112, 262, 113, 262, 114, 262, 115, 262, 116, 262, 117, 262, + 118, 262, 119, 262, 120, 262, 121, 262, 122, 262, 65, 262, 66, 262, 67, + 262, 68, 262, 69, 262, 70, 262, 71, 262, 72, 262, 73, 262, 74, 262, 75, + 262, 76, 262, 77, 262, 78, 262, 79, 262, 80, 262, 81, 262, 82, 262, 83, + 262, 84, 262, 85, 262, 86, 262, 87, 262, 88, 262, 89, 262, 90, 262, 97, + 262, 98, 262, 99, 262, 100, 262, 101, 262, 102, 262, 103, 262, 104, 262, + 105, 262, 106, 262, 107, 262, 108, 262, 109, 262, 110, 262, 111, 262, + 112, 262, 113, 262, 114, 262, 115, 262, 116, 262, 117, 262, 118, 262, + 119, 262, 120, 262, 121, 262, 122, 262, 65, 262, 66, 262, 67, 262, 68, + 262, 69, 262, 70, 262, 71, 262, 72, 262, 73, 262, 74, 262, 75, 262, 76, + 262, 77, 262, 78, 262, 79, 262, 80, 262, 81, 262, 82, 262, 83, 262, 84, + 262, 85, 262, 86, 262, 87, 262, 88, 262, 89, 262, 90, 262, 97, 262, 98, + 262, 99, 262, 100, 262, 101, 262, 102, 262, 103, 262, 104, 262, 105, 262, + 106, 262, 107, 262, 108, 262, 109, 262, 110, 262, 111, 262, 112, 262, + 113, 262, 114, 262, 115, 262, 116, 262, 117, 262, 118, 262, 119, 262, + 120, 262, 121, 262, 122, 262, 65, 262, 66, 262, 67, 262, 68, 262, 69, + 262, 70, 262, 71, 262, 72, 262, 73, 262, 74, 262, 75, 262, 76, 262, 77, + 262, 78, 262, 79, 262, 80, 262, 81, 262, 82, 262, 83, 262, 84, 262, 85, + 262, 86, 262, 87, 262, 88, 262, 89, 262, 90, 262, 97, 262, 98, 262, 99, + 262, 100, 262, 101, 262, 102, 262, 103, 262, 104, 262, 105, 262, 106, + 262, 107, 262, 108, 262, 109, 262, 110, 262, 111, 262, 112, 262, 113, + 262, 114, 262, 115, 262, 116, 262, 117, 262, 118, 262, 119, 262, 120, + 262, 121, 262, 122, 262, 65, 262, 66, 262, 67, 262, 68, 262, 69, 262, 70, + 262, 71, 262, 72, 262, 73, 262, 74, 262, 75, 262, 76, 262, 77, 262, 78, + 262, 79, 262, 80, 262, 81, 262, 82, 262, 83, 262, 84, 262, 85, 262, 86, + 262, 87, 262, 88, 262, 89, 262, 90, 262, 97, 262, 98, 262, 99, 262, 100, + 262, 101, 262, 102, 262, 103, 262, 104, 262, 105, 262, 106, 262, 107, + 262, 108, 262, 109, 262, 110, 262, 111, 262, 112, 262, 113, 262, 114, + 262, 115, 262, 116, 262, 117, 262, 118, 262, 119, 262, 120, 262, 121, + 262, 122, 262, 65, 262, 66, 262, 67, 262, 68, 262, 69, 262, 70, 262, 71, + 262, 72, 262, 73, 262, 74, 262, 75, 262, 76, 262, 77, 262, 78, 262, 79, + 262, 80, 262, 81, 262, 82, 262, 83, 262, 84, 262, 85, 262, 86, 262, 87, + 262, 88, 262, 89, 262, 90, 262, 97, 262, 98, 262, 99, 262, 100, 262, 101, + 262, 102, 262, 103, 262, 104, 262, 105, 262, 106, 262, 107, 262, 108, + 262, 109, 262, 110, 262, 111, 262, 112, 262, 113, 262, 114, 262, 115, + 262, 116, 262, 117, 262, 118, 262, 119, 262, 120, 262, 121, 262, 122, + 262, 65, 262, 66, 262, 67, 262, 68, 262, 69, 262, 70, 262, 71, 262, 72, + 262, 73, 262, 74, 262, 75, 262, 76, 262, 77, 262, 78, 262, 79, 262, 80, + 262, 81, 262, 82, 262, 83, 262, 84, 262, 85, 262, 86, 262, 87, 262, 88, + 262, 89, 262, 90, 262, 97, 262, 98, 262, 99, 262, 100, 262, 101, 262, + 102, 262, 103, 262, 104, 262, 105, 262, 106, 262, 107, 262, 108, 262, + 109, 262, 110, 262, 111, 262, 112, 262, 113, 262, 114, 262, 115, 262, + 116, 262, 117, 262, 118, 262, 119, 262, 120, 262, 121, 262, 122, 262, + 305, 262, 567, 262, 913, 262, 914, 262, 915, 262, 916, 262, 917, 262, + 918, 262, 919, 262, 920, 262, 921, 262, 922, 262, 923, 262, 924, 262, + 925, 262, 926, 262, 927, 262, 928, 262, 929, 262, 1012, 262, 931, 262, + 932, 262, 933, 262, 934, 262, 935, 262, 936, 262, 937, 262, 8711, 262, + 945, 262, 946, 262, 947, 262, 948, 262, 949, 262, 950, 262, 951, 262, + 952, 262, 953, 262, 954, 262, 955, 262, 956, 262, 957, 262, 958, 262, + 959, 262, 960, 262, 961, 262, 962, 262, 963, 262, 964, 262, 965, 262, + 966, 262, 967, 262, 968, 262, 969, 262, 8706, 262, 1013, 262, 977, 262, + 1008, 262, 981, 262, 1009, 262, 982, 262, 913, 262, 914, 262, 915, 262, + 916, 262, 917, 262, 918, 262, 919, 262, 920, 262, 921, 262, 922, 262, + 923, 262, 924, 262, 925, 262, 926, 262, 927, 262, 928, 262, 929, 262, + 1012, 262, 931, 262, 932, 262, 933, 262, 934, 262, 935, 262, 936, 262, + 937, 262, 8711, 262, 945, 262, 946, 262, 947, 262, 948, 262, 949, 262, + 950, 262, 951, 262, 952, 262, 953, 262, 954, 262, 955, 262, 956, 262, + 957, 262, 958, 262, 959, 262, 960, 262, 961, 262, 962, 262, 963, 262, + 964, 262, 965, 262, 966, 262, 967, 262, 968, 262, 969, 262, 8706, 262, + 1013, 262, 977, 262, 1008, 262, 981, 262, 1009, 262, 982, 262, 913, 262, + 914, 262, 915, 262, 916, 262, 917, 262, 918, 262, 919, 262, 920, 262, + 921, 262, 922, 262, 923, 262, 924, 262, 925, 262, 926, 262, 927, 262, + 928, 262, 929, 262, 1012, 262, 931, 262, 932, 262, 933, 262, 934, 262, + 935, 262, 936, 262, 937, 262, 8711, 262, 945, 262, 946, 262, 947, 262, + 948, 262, 949, 262, 950, 262, 951, 262, 952, 262, 953, 262, 954, 262, + 955, 262, 956, 262, 957, 262, 958, 262, 959, 262, 960, 262, 961, 262, + 962, 262, 963, 262, 964, 262, 965, 262, 966, 262, 967, 262, 968, 262, + 969, 262, 8706, 262, 1013, 262, 977, 262, 1008, 262, 981, 262, 1009, 262, + 982, 262, 913, 262, 914, 262, 915, 262, 916, 262, 917, 262, 918, 262, + 919, 262, 920, 262, 921, 262, 922, 262, 923, 262, 924, 262, 925, 262, + 926, 262, 927, 262, 928, 262, 929, 262, 1012, 262, 931, 262, 932, 262, + 933, 262, 934, 262, 935, 262, 936, 262, 937, 262, 8711, 262, 945, 262, + 946, 262, 947, 262, 948, 262, 949, 262, 950, 262, 951, 262, 952, 262, + 953, 262, 954, 262, 955, 262, 956, 262, 957, 262, 958, 262, 959, 262, + 960, 262, 961, 262, 962, 262, 963, 262, 964, 262, 965, 262, 966, 262, + 967, 262, 968, 262, 969, 262, 8706, 262, 1013, 262, 977, 262, 1008, 262, + 981, 262, 1009, 262, 982, 262, 913, 262, 914, 262, 915, 262, 916, 262, + 917, 262, 918, 262, 919, 262, 920, 262, 921, 262, 922, 262, 923, 262, + 924, 262, 925, 262, 926, 262, 927, 262, 928, 262, 929, 262, 1012, 262, + 931, 262, 932, 262, 933, 262, 934, 262, 935, 262, 936, 262, 937, 262, + 8711, 262, 945, 262, 946, 262, 947, 262, 948, 262, 949, 262, 950, 262, + 951, 262, 952, 262, 953, 262, 954, 262, 955, 262, 956, 262, 957, 262, + 958, 262, 959, 262, 960, 262, 961, 262, 962, 262, 963, 262, 964, 262, + 965, 262, 966, 262, 967, 262, 968, 262, 969, 262, 8706, 262, 1013, 262, + 977, 262, 1008, 262, 981, 262, 1009, 262, 982, 262, 988, 262, 989, 262, + 48, 262, 49, 262, 50, 262, 51, 262, 52, 262, 53, 262, 54, 262, 55, 262, + 56, 262, 57, 262, 48, 262, 49, 262, 50, 262, 51, 262, 52, 262, 53, 262, + 54, 262, 55, 262, 56, 262, 57, 262, 48, 262, 49, 262, 50, 262, 51, 262, + 52, 262, 53, 262, 54, 262, 55, 262, 56, 262, 57, 262, 48, 262, 49, 262, + 50, 262, 51, 262, 52, 262, 53, 262, 54, 262, 55, 262, 56, 262, 57, 262, + 48, 262, 49, 262, 50, 262, 51, 262, 52, 262, 53, 262, 54, 262, 55, 262, + 56, 262, 57, 262, 1575, 262, 1576, 262, 1580, 262, 1583, 262, 1608, 262, + 1586, 262, 1581, 262, 1591, 262, 1610, 262, 1603, 262, 1604, 262, 1605, + 262, 1606, 262, 1587, 262, 1593, 262, 1601, 262, 1589, 262, 1602, 262, + 1585, 262, 1588, 262, 1578, 262, 1579, 262, 1582, 262, 1584, 262, 1590, + 262, 1592, 262, 1594, 262, 1646, 262, 1722, 262, 1697, 262, 1647, 262, + 1576, 262, 1580, 262, 1607, 262, 1581, 262, 1610, 262, 1603, 262, 1604, + 262, 1605, 262, 1606, 262, 1587, 262, 1593, 262, 1601, 262, 1589, 262, + 1602, 262, 1588, 262, 1578, 262, 1579, 262, 1582, 262, 1590, 262, 1594, + 262, 1580, 262, 1581, 262, 1610, 262, 1604, 262, 1606, 262, 1587, 262, + 1593, 262, 1589, 262, 1602, 262, 1588, 262, 1582, 262, 1590, 262, 1594, + 262, 1722, 262, 1647, 262, 1576, 262, 1580, 262, 1607, 262, 1581, 262, + 1591, 262, 1610, 262, 1603, 262, 1605, 262, 1606, 262, 1587, 262, 1593, + 262, 1601, 262, 1589, 262, 1602, 262, 1588, 262, 1578, 262, 1579, 262, + 1582, 262, 1590, 262, 1592, 262, 1594, 262, 1646, 262, 1697, 262, 1575, + 262, 1576, 262, 1580, 262, 1583, 262, 1607, 262, 1608, 262, 1586, 262, + 1581, 262, 1591, 262, 1610, 262, 1604, 262, 1605, 262, 1606, 262, 1587, + 262, 1593, 262, 1601, 262, 1589, 262, 1602, 262, 1585, 262, 1588, 262, + 1578, 262, 1579, 262, 1582, 262, 1584, 262, 1590, 262, 1592, 262, 1594, + 262, 1576, 262, 1580, 262, 1583, 262, 1608, 262, 1586, 262, 1581, 262, + 1591, 262, 1610, 262, 1604, 262, 1605, 262, 1606, 262, 1587, 262, 1593, 262, 1601, 262, 1589, 262, 1602, 262, 1585, 262, 1588, 262, 1578, 262, - 1579, 262, 1582, 262, 1584, 262, 1590, 262, 1592, 262, 1594, 262, 1646, - 262, 1722, 262, 1697, 262, 1647, 262, 1607, 514, 48, 46, 514, 48, 44, - 514, 49, 44, 514, 50, 44, 514, 51, 44, 514, 52, 44, 514, 53, 44, 514, 54, - 44, 514, 55, 44, 514, 56, 44, 514, 57, 44, 770, 40, 65, 41, 770, 40, 66, - 41, 770, 40, 67, 41, 770, 40, 68, 41, 770, 40, 69, 41, 770, 40, 70, 41, - 770, 40, 71, 41, 770, 40, 72, 41, 770, 40, 73, 41, 770, 40, 74, 41, 770, - 40, 75, 41, 770, 40, 76, 41, 770, 40, 77, 41, 770, 40, 78, 41, 770, 40, - 79, 41, 770, 40, 80, 41, 770, 40, 81, 41, 770, 40, 82, 41, 770, 40, 83, - 41, 770, 40, 84, 41, 770, 40, 85, 41, 770, 40, 86, 41, 770, 40, 87, 41, - 770, 40, 88, 41, 770, 40, 89, 41, 770, 40, 90, 41, 770, 12308, 83, 12309, - 519, 67, 68, 519, 87, 90, 266, 65, 266, 66, 266, 67, 266, 68, 266, 69, - 266, 70, 266, 71, 266, 72, 266, 73, 266, 74, 266, 75, 266, 76, 266, 77, - 266, 78, 266, 79, 266, 80, 266, 81, 266, 82, 266, 83, 266, 84, 266, 85, - 266, 86, 266, 87, 266, 88, 266, 89, 266, 90, 522, 72, 86, 522, 83, 68, - 522, 83, 83, 778, 80, 80, 86, 522, 87, 67, 515, 77, 67, 515, 77, 68, 515, - 77, 82, 522, 68, 74, 522, 12411, 12363, 522, 12467, 12467, 266, 12469, - 266, 25163, 266, 23383, 266, 21452, 266, 12487, 266, 20108, 266, 22810, - 266, 35299, 266, 22825, 266, 20132, 266, 26144, 266, 28961, 266, 26009, - 266, 21069, 266, 24460, 266, 20877, 266, 26032, 266, 21021, 266, 32066, - 266, 29983, 266, 36009, 266, 22768, 266, 21561, 266, 28436, 266, 25237, - 266, 25429, 266, 19968, 266, 19977, 266, 36938, 266, 24038, 266, 20013, - 266, 21491, 266, 25351, 266, 36208, 266, 25171, 266, 31105, 266, 31354, - 266, 21512, 266, 28288, 266, 26377, 266, 26376, 266, 30003, 266, 21106, - 266, 21942, 266, 37197, 770, 12308, 26412, 12309, 770, 12308, 19977, - 12309, 770, 12308, 20108, 12309, 770, 12308, 23433, 12309, 770, 12308, - 28857, 12309, 770, 12308, 25171, 12309, 770, 12308, 30423, 12309, 770, - 12308, 21213, 12309, 770, 12308, 25943, 12309, 263, 24471, 263, 21487, - 256, 20029, 256, 20024, 256, 20033, 256, 131362, 256, 20320, 256, 20411, - 256, 20482, 256, 20602, 256, 20633, 256, 20687, 256, 13470, 256, 132666, - 256, 20820, 256, 20836, 256, 20855, 256, 132380, 256, 13497, 256, 20839, - 256, 20877, 256, 132427, 256, 20887, 256, 20900, 256, 20172, 256, 20908, - 256, 168415, 256, 20981, 256, 20995, 256, 13535, 256, 21051, 256, 21062, - 256, 21106, 256, 21111, 256, 13589, 256, 21253, 256, 21254, 256, 21321, - 256, 21338, 256, 21363, 256, 21373, 256, 21375, 256, 133676, 256, 28784, - 256, 21450, 256, 21471, 256, 133987, 256, 21483, 256, 21489, 256, 21510, - 256, 21662, 256, 21560, 256, 21576, 256, 21608, 256, 21666, 256, 21750, - 256, 21776, 256, 21843, 256, 21859, 256, 21892, 256, 21931, 256, 21939, - 256, 21954, 256, 22294, 256, 22295, 256, 22097, 256, 22132, 256, 22766, - 256, 22478, 256, 22516, 256, 22541, 256, 22411, 256, 22578, 256, 22577, - 256, 22700, 256, 136420, 256, 22770, 256, 22775, 256, 22790, 256, 22810, - 256, 22818, 256, 22882, 256, 136872, 256, 136938, 256, 23020, 256, 23067, - 256, 23079, 256, 23000, 256, 23142, 256, 14062, 256, 14076, 256, 23304, - 256, 23358, 256, 137672, 256, 23491, 256, 23512, 256, 23539, 256, 138008, - 256, 23551, 256, 23558, 256, 24403, 256, 23586, 256, 14209, 256, 23648, - 256, 23744, 256, 23693, 256, 138724, 256, 23875, 256, 138726, 256, 23918, - 256, 23915, 256, 23932, 256, 24033, 256, 24034, 256, 14383, 256, 24061, - 256, 24104, 256, 24125, 256, 24169, 256, 14434, 256, 139651, 256, 14460, - 256, 24240, 256, 24243, 256, 24246, 256, 172946, 256, 24318, 256, 140081, - 256, 33281, 256, 24354, 256, 14535, 256, 144056, 256, 156122, 256, 24418, - 256, 24427, 256, 14563, 256, 24474, 256, 24525, 256, 24535, 256, 24569, - 256, 24705, 256, 14650, 256, 14620, 256, 141012, 256, 24775, 256, 24904, - 256, 24908, 256, 24954, 256, 25010, 256, 24996, 256, 25007, 256, 25054, - 256, 25104, 256, 25115, 256, 25181, 256, 25265, 256, 25300, 256, 25424, - 256, 142092, 256, 25405, 256, 25340, 256, 25448, 256, 25475, 256, 25572, - 256, 142321, 256, 25634, 256, 25541, 256, 25513, 256, 14894, 256, 25705, - 256, 25726, 256, 25757, 256, 25719, 256, 14956, 256, 25964, 256, 143370, - 256, 26083, 256, 26360, 256, 26185, 256, 15129, 256, 15112, 256, 15076, - 256, 20882, 256, 20885, 256, 26368, 256, 26268, 256, 32941, 256, 17369, - 256, 26401, 256, 26462, 256, 26451, 256, 144323, 256, 15177, 256, 26618, - 256, 26501, 256, 26706, 256, 144493, 256, 26766, 256, 26655, 256, 26900, - 256, 26946, 256, 27043, 256, 27114, 256, 27304, 256, 145059, 256, 27355, - 256, 15384, 256, 27425, 256, 145575, 256, 27476, 256, 15438, 256, 27506, - 256, 27551, 256, 27579, 256, 146061, 256, 138507, 256, 146170, 256, - 27726, 256, 146620, 256, 27839, 256, 27853, 256, 27751, 256, 27926, 256, - 27966, 256, 28009, 256, 28024, 256, 28037, 256, 146718, 256, 27956, 256, - 28207, 256, 28270, 256, 15667, 256, 28359, 256, 147153, 256, 28153, 256, - 28526, 256, 147294, 256, 147342, 256, 28614, 256, 28729, 256, 28699, 256, - 15766, 256, 28746, 256, 28797, 256, 28791, 256, 28845, 256, 132389, 256, - 28997, 256, 148067, 256, 29084, 256, 148395, 256, 29224, 256, 29264, 256, - 149000, 256, 29312, 256, 29333, 256, 149301, 256, 149524, 256, 29562, - 256, 29579, 256, 16044, 256, 29605, 256, 16056, 256, 29767, 256, 29788, - 256, 29829, 256, 29898, 256, 16155, 256, 29988, 256, 150582, 256, 30014, - 256, 150674, 256, 139679, 256, 30224, 256, 151457, 256, 151480, 256, - 151620, 256, 16380, 256, 16392, 256, 151795, 256, 151794, 256, 151833, - 256, 151859, 256, 30494, 256, 30495, 256, 30603, 256, 16454, 256, 16534, - 256, 152605, 256, 30798, 256, 16611, 256, 153126, 256, 153242, 256, - 153285, 256, 31211, 256, 16687, 256, 31306, 256, 31311, 256, 153980, 256, - 154279, 256, 31470, 256, 16898, 256, 154539, 256, 31686, 256, 31689, 256, - 16935, 256, 154752, 256, 31954, 256, 17056, 256, 31976, 256, 31971, 256, - 32000, 256, 155526, 256, 32099, 256, 17153, 256, 32199, 256, 32258, 256, - 32325, 256, 17204, 256, 156200, 256, 156231, 256, 17241, 256, 156377, - 256, 32634, 256, 156478, 256, 32661, 256, 32762, 256, 156890, 256, - 156963, 256, 32864, 256, 157096, 256, 32880, 256, 144223, 256, 17365, - 256, 32946, 256, 33027, 256, 17419, 256, 33086, 256, 23221, 256, 157607, - 256, 157621, 256, 144275, 256, 144284, 256, 33284, 256, 36766, 256, - 17515, 256, 33425, 256, 33419, 256, 33437, 256, 21171, 256, 33457, 256, - 33459, 256, 33469, 256, 33510, 256, 158524, 256, 33565, 256, 33635, 256, - 33709, 256, 33571, 256, 33725, 256, 33767, 256, 33619, 256, 33738, 256, - 33740, 256, 33756, 256, 158774, 256, 159083, 256, 158933, 256, 17707, - 256, 34033, 256, 34035, 256, 34070, 256, 160714, 256, 34148, 256, 159532, - 256, 17757, 256, 17761, 256, 159665, 256, 159954, 256, 17771, 256, 34384, - 256, 34407, 256, 34409, 256, 34473, 256, 34440, 256, 34574, 256, 34530, - 256, 34600, 256, 34667, 256, 34694, 256, 17879, 256, 34785, 256, 34817, - 256, 17913, 256, 34912, 256, 34915, 256, 161383, 256, 35031, 256, 35038, - 256, 17973, 256, 35066, 256, 13499, 256, 161966, 256, 162150, 256, 18110, - 256, 18119, 256, 35488, 256, 35925, 256, 162984, 256, 36011, 256, 36033, - 256, 36123, 256, 36215, 256, 163631, 256, 133124, 256, 36299, 256, 36284, - 256, 36336, 256, 133342, 256, 36564, 256, 165330, 256, 165357, 256, + 1579, 262, 1582, 262, 1584, 262, 1590, 262, 1592, 262, 1594, 514, 48, 46, + 514, 48, 44, 514, 49, 44, 514, 50, 44, 514, 51, 44, 514, 52, 44, 514, 53, + 44, 514, 54, 44, 514, 55, 44, 514, 56, 44, 514, 57, 44, 770, 40, 65, 41, + 770, 40, 66, 41, 770, 40, 67, 41, 770, 40, 68, 41, 770, 40, 69, 41, 770, + 40, 70, 41, 770, 40, 71, 41, 770, 40, 72, 41, 770, 40, 73, 41, 770, 40, + 74, 41, 770, 40, 75, 41, 770, 40, 76, 41, 770, 40, 77, 41, 770, 40, 78, + 41, 770, 40, 79, 41, 770, 40, 80, 41, 770, 40, 81, 41, 770, 40, 82, 41, + 770, 40, 83, 41, 770, 40, 84, 41, 770, 40, 85, 41, 770, 40, 86, 41, 770, + 40, 87, 41, 770, 40, 88, 41, 770, 40, 89, 41, 770, 40, 90, 41, 770, + 12308, 83, 12309, 263, 67, 263, 82, 519, 67, 68, 519, 87, 90, 266, 65, + 266, 66, 266, 67, 266, 68, 266, 69, 266, 70, 266, 71, 266, 72, 266, 73, + 266, 74, 266, 75, 266, 76, 266, 77, 266, 78, 266, 79, 266, 80, 266, 81, + 266, 82, 266, 83, 266, 84, 266, 85, 266, 86, 266, 87, 266, 88, 266, 89, + 266, 90, 522, 72, 86, 522, 77, 86, 522, 83, 68, 522, 83, 83, 778, 80, 80, + 86, 522, 87, 67, 515, 77, 67, 515, 77, 68, 515, 77, 82, 522, 68, 74, 522, + 12411, 12363, 522, 12467, 12467, 266, 12469, 266, 25163, 266, 23383, 266, + 21452, 266, 12487, 266, 20108, 266, 22810, 266, 35299, 266, 22825, 266, + 20132, 266, 26144, 266, 28961, 266, 26009, 266, 21069, 266, 24460, 266, + 20877, 266, 26032, 266, 21021, 266, 32066, 266, 29983, 266, 36009, 266, + 22768, 266, 21561, 266, 28436, 266, 25237, 266, 25429, 266, 19968, 266, + 19977, 266, 36938, 266, 24038, 266, 20013, 266, 21491, 266, 25351, 266, + 36208, 266, 25171, 266, 31105, 266, 31354, 266, 21512, 266, 28288, 266, + 26377, 266, 26376, 266, 30003, 266, 21106, 266, 21942, 266, 37197, 770, + 12308, 26412, 12309, 770, 12308, 19977, 12309, 770, 12308, 20108, 12309, + 770, 12308, 23433, 12309, 770, 12308, 28857, 12309, 770, 12308, 25171, + 12309, 770, 12308, 30423, 12309, 770, 12308, 21213, 12309, 770, 12308, + 25943, 12309, 263, 24471, 263, 21487, 262, 48, 262, 49, 262, 50, 262, 51, + 262, 52, 262, 53, 262, 54, 262, 55, 262, 56, 262, 57, 256, 20029, 256, + 20024, 256, 20033, 256, 131362, 256, 20320, 256, 20398, 256, 20411, 256, + 20482, 256, 20602, 256, 20633, 256, 20711, 256, 20687, 256, 13470, 256, + 132666, 256, 20813, 256, 20820, 256, 20836, 256, 20855, 256, 132380, 256, + 13497, 256, 20839, 256, 20877, 256, 132427, 256, 20887, 256, 20900, 256, + 20172, 256, 20908, 256, 20917, 256, 168415, 256, 20981, 256, 20995, 256, + 13535, 256, 21051, 256, 21062, 256, 21106, 256, 21111, 256, 13589, 256, + 21191, 256, 21193, 256, 21220, 256, 21242, 256, 21253, 256, 21254, 256, + 21271, 256, 21321, 256, 21329, 256, 21338, 256, 21363, 256, 21373, 256, + 21375, 256, 21375, 256, 21375, 256, 133676, 256, 28784, 256, 21450, 256, + 21471, 256, 133987, 256, 21483, 256, 21489, 256, 21510, 256, 21662, 256, + 21560, 256, 21576, 256, 21608, 256, 21666, 256, 21750, 256, 21776, 256, + 21843, 256, 21859, 256, 21892, 256, 21892, 256, 21913, 256, 21931, 256, + 21939, 256, 21954, 256, 22294, 256, 22022, 256, 22295, 256, 22097, 256, + 22132, 256, 20999, 256, 22766, 256, 22478, 256, 22516, 256, 22541, 256, + 22411, 256, 22578, 256, 22577, 256, 22700, 256, 136420, 256, 22770, 256, + 22775, 256, 22790, 256, 22810, 256, 22818, 256, 22882, 256, 136872, 256, + 136938, 256, 23020, 256, 23067, 256, 23079, 256, 23000, 256, 23142, 256, + 14062, 256, 14076, 256, 23304, 256, 23358, 256, 23358, 256, 137672, 256, + 23491, 256, 23512, 256, 23527, 256, 23539, 256, 138008, 256, 23551, 256, + 23558, 256, 24403, 256, 23586, 256, 14209, 256, 23648, 256, 23662, 256, + 23744, 256, 23693, 256, 138724, 256, 23875, 256, 138726, 256, 23918, 256, + 23915, 256, 23932, 256, 24033, 256, 24034, 256, 14383, 256, 24061, 256, + 24104, 256, 24125, 256, 24169, 256, 14434, 256, 139651, 256, 14460, 256, + 24240, 256, 24243, 256, 24246, 256, 24266, 256, 172946, 256, 24318, 256, + 140081, 256, 140081, 256, 33281, 256, 24354, 256, 24354, 256, 14535, 256, + 144056, 256, 156122, 256, 24418, 256, 24427, 256, 14563, 256, 24474, 256, + 24525, 256, 24535, 256, 24569, 256, 24705, 256, 14650, 256, 14620, 256, + 24724, 256, 141012, 256, 24775, 256, 24904, 256, 24908, 256, 24910, 256, + 24908, 256, 24954, 256, 24974, 256, 25010, 256, 24996, 256, 25007, 256, + 25054, 256, 25074, 256, 25078, 256, 25104, 256, 25115, 256, 25181, 256, + 25265, 256, 25300, 256, 25424, 256, 142092, 256, 25405, 256, 25340, 256, + 25448, 256, 25475, 256, 25572, 256, 142321, 256, 25634, 256, 25541, 256, + 25513, 256, 14894, 256, 25705, 256, 25726, 256, 25757, 256, 25719, 256, + 14956, 256, 25935, 256, 25964, 256, 143370, 256, 26083, 256, 26360, 256, + 26185, 256, 15129, 256, 26257, 256, 15112, 256, 15076, 256, 20882, 256, + 20885, 256, 26368, 256, 26268, 256, 32941, 256, 17369, 256, 26391, 256, + 26395, 256, 26401, 256, 26462, 256, 26451, 256, 144323, 256, 15177, 256, + 26618, 256, 26501, 256, 26706, 256, 26757, 256, 144493, 256, 26766, 256, + 26655, 256, 26900, 256, 15261, 256, 26946, 256, 27043, 256, 27114, 256, + 27304, 256, 145059, 256, 27355, 256, 15384, 256, 27425, 256, 145575, 256, + 27476, 256, 15438, 256, 27506, 256, 27551, 256, 27578, 256, 27579, 256, + 146061, 256, 138507, 256, 146170, 256, 27726, 256, 146620, 256, 27839, + 256, 27853, 256, 27751, 256, 27926, 256, 27966, 256, 28023, 256, 27969, + 256, 28009, 256, 28024, 256, 28037, 256, 146718, 256, 27956, 256, 28207, + 256, 28270, 256, 15667, 256, 28363, 256, 28359, 256, 147153, 256, 28153, + 256, 28526, 256, 147294, 256, 147342, 256, 28614, 256, 28729, 256, 28702, + 256, 28699, 256, 15766, 256, 28746, 256, 28797, 256, 28791, 256, 28845, + 256, 132389, 256, 28997, 256, 148067, 256, 29084, 256, 148395, 256, + 29224, 256, 29237, 256, 29264, 256, 149000, 256, 29312, 256, 29333, 256, + 149301, 256, 149524, 256, 29562, 256, 29579, 256, 16044, 256, 29605, 256, + 16056, 256, 16056, 256, 29767, 256, 29788, 256, 29809, 256, 29829, 256, + 29898, 256, 16155, 256, 29988, 256, 150582, 256, 30014, 256, 150674, 256, + 30064, 256, 139679, 256, 30224, 256, 151457, 256, 151480, 256, 151620, + 256, 16380, 256, 16392, 256, 30452, 256, 151795, 256, 151794, 256, + 151833, 256, 151859, 256, 30494, 256, 30495, 256, 30495, 256, 30538, 256, + 16441, 256, 30603, 256, 16454, 256, 16534, 256, 152605, 256, 30798, 256, + 30860, 256, 30924, 256, 16611, 256, 153126, 256, 31062, 256, 153242, 256, + 153285, 256, 31119, 256, 31211, 256, 16687, 256, 31296, 256, 31306, 256, + 31311, 256, 153980, 256, 154279, 256, 154279, 256, 31470, 256, 16898, + 256, 154539, 256, 31686, 256, 31689, 256, 16935, 256, 154752, 256, 31954, + 256, 17056, 256, 31976, 256, 31971, 256, 32000, 256, 155526, 256, 32099, + 256, 17153, 256, 32199, 256, 32258, 256, 32325, 256, 17204, 256, 156200, + 256, 156231, 256, 17241, 256, 156377, 256, 32634, 256, 156478, 256, + 32661, 256, 32762, 256, 32773, 256, 156890, 256, 156963, 256, 32864, 256, + 157096, 256, 32880, 256, 144223, 256, 17365, 256, 32946, 256, 33027, 256, + 17419, 256, 33086, 256, 23221, 256, 157607, 256, 157621, 256, 144275, + 256, 144284, 256, 33281, 256, 33284, 256, 36766, 256, 17515, 256, 33425, + 256, 33419, 256, 33437, 256, 21171, 256, 33457, 256, 33459, 256, 33469, + 256, 33510, 256, 158524, 256, 33509, 256, 33565, 256, 33635, 256, 33709, + 256, 33571, 256, 33725, 256, 33767, 256, 33879, 256, 33619, 256, 33738, + 256, 33740, 256, 33756, 256, 158774, 256, 159083, 256, 158933, 256, + 17707, 256, 34033, 256, 34035, 256, 34070, 256, 160714, 256, 34148, 256, + 159532, 256, 17757, 256, 17761, 256, 159665, 256, 159954, 256, 17771, + 256, 34384, 256, 34396, 256, 34407, 256, 34409, 256, 34473, 256, 34440, + 256, 34574, 256, 34530, 256, 34681, 256, 34600, 256, 34667, 256, 34694, + 256, 17879, 256, 34785, 256, 34817, 256, 17913, 256, 34912, 256, 34915, + 256, 161383, 256, 35031, 256, 35038, 256, 17973, 256, 35066, 256, 13499, + 256, 161966, 256, 162150, 256, 18110, 256, 18119, 256, 35488, 256, 35565, + 256, 35722, 256, 35925, 256, 162984, 256, 36011, 256, 36033, 256, 36123, + 256, 36215, 256, 163631, 256, 133124, 256, 36299, 256, 36284, 256, 36336, + 256, 133342, 256, 36564, 256, 36664, 256, 165330, 256, 165357, 256, 37012, 256, 37105, 256, 37137, 256, 165678, 256, 37147, 256, 37432, 256, 37591, 256, 37592, 256, 37500, 256, 37881, 256, 37909, 256, 166906, 256, 38283, 256, 18837, 256, 38327, 256, 167287, 256, 18918, 256, 38595, 256, 23986, 256, 38691, 256, 168261, 256, 168474, 256, 19054, 256, 19062, 256, - 38880, 256, 168970, 256, 19122, 256, 169110, 256, 38953, 256, 169398, - 256, 39138, 256, 19251, 256, 39209, 256, 39335, 256, 39362, 256, 39422, - 256, 19406, 256, 170800, 256, 40000, 256, 40189, 256, 19662, 256, 19693, - 256, 40295, 256, 172238, 256, 19704, 256, 172293, 256, 172558, 256, - 172689, 256, 40635, 256, 19798, 256, 40697, 256, 40702, 256, 40709, 256, - 40719, 256, 40726, 256, 40763, 256, 173568, + 38880, 256, 168970, 256, 19122, 256, 169110, 256, 38923, 256, 38923, 256, + 38953, 256, 169398, 256, 39138, 256, 19251, 256, 39209, 256, 39335, 256, + 39362, 256, 39422, 256, 19406, 256, 170800, 256, 39698, 256, 40000, 256, + 40189, 256, 19662, 256, 19693, 256, 40295, 256, 172238, 256, 19704, 256, + 172293, 256, 172558, 256, 172689, 256, 40635, 256, 19798, 256, 40697, + 256, 40702, 256, 40709, 256, 40719, 256, 40726, 256, 40763, 256, 173568, }; /* index tables for the decomposition data */ @@ -4390,9 +4478,9 @@ static const unsigned char decomp_index1[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 85, 0, 0, 0, 0, 86, 87, 88, 89, 90, 91, 92, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 95, 96, 0, 0, 0, 0, 97, 98, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 94, 95, 0, 0, 0, 0, 96, 97, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4413,7 +4501,7 @@ static const unsigned char decomp_index1[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 102, 103, 104, 105, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 101, 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4761,116 +4849,116 @@ static const unsigned short decomp_index2[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 894, 896, 0, 898, 900, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 903, 0, 0, 0, 0, - 0, 905, 0, 0, 0, 908, 0, 0, 0, 0, 0, 15, 910, 913, 916, 918, 921, 924, 0, - 927, 0, 930, 933, 936, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 939, 942, 945, 948, 951, 954, 957, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 960, 963, - 966, 969, 972, 0, 975, 977, 979, 981, 984, 987, 989, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 991, 993, 995, 0, - 997, 999, 0, 0, 0, 1001, 0, 0, 0, 0, 0, 0, 1003, 1006, 0, 1009, 0, 0, 0, - 1012, 0, 0, 0, 0, 1015, 1018, 1021, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1024, + 0, 905, 0, 0, 0, 908, 0, 0, 0, 0, 0, 910, 913, 916, 919, 921, 924, 927, + 0, 930, 0, 933, 936, 939, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 942, 945, 948, 951, 954, 957, 960, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 963, 966, + 969, 972, 975, 0, 978, 980, 982, 984, 987, 990, 992, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 994, 996, 998, 0, + 1000, 1002, 0, 0, 0, 1004, 0, 0, 0, 0, 0, 0, 1006, 1009, 0, 1012, 0, 0, + 0, 1015, 0, 0, 0, 0, 1018, 1021, 1024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1030, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1033, 1036, 0, 1039, 0, 0, 0, 1042, 0, 0, 0, + 0, 1045, 1048, 1051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1054, 1057, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1030, 1033, 0, 1036, 0, 0, 0, 1039, 0, 0, 0, 0, - 1042, 1045, 1048, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1051, 1054, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1060, 1063, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1066, 1069, 1072, 1075, 0, 0, 1078, 1081, 0, 0, 1084, 1087, + 1090, 1093, 1096, 1099, 0, 0, 1102, 1105, 1108, 1111, 1114, 1117, 0, 0, + 1120, 1123, 1126, 1129, 1132, 1135, 1138, 1141, 1144, 1147, 1150, 1153, + 0, 0, 1156, 1159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1057, 1060, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1063, 1066, 1069, 1072, 0, 0, 1075, 1078, 0, 0, 1081, 1084, - 1087, 1090, 1093, 1096, 0, 0, 1099, 1102, 1105, 1108, 1111, 1114, 0, 0, - 1117, 1120, 1123, 1126, 1129, 1132, 1135, 1138, 1141, 1144, 1147, 1150, - 0, 0, 1153, 1156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1162, 1165, 1168, 1171, 1174, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1165, 1168, 1171, 1174, 1177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1177, 1180, 1183, 1186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1180, 1183, 1186, 1189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1189, 0, 1192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1192, 0, 1195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1198, 0, 0, 0, - 0, 0, 0, 0, 1201, 0, 0, 1204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1207, - 1210, 1213, 1216, 1219, 1222, 1225, 1228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1201, 0, 0, 0, + 0, 0, 0, 0, 1204, 0, 0, 1207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1210, + 1213, 1216, 1219, 1222, 1225, 1228, 1231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1231, 1234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1237, 1240, - 0, 1243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1234, 1237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1240, 1243, + 0, 1246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1246, 0, 0, 1249, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1249, 0, 0, 1252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1252, 1255, 1258, 0, 0, 1261, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1255, 1258, 1261, 0, 0, 1264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1264, 0, 0, 1267, 1270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1273, 1276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1267, 0, 0, 1270, 1273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1276, 1279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1282, 1285, 1288, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1285, 1288, 1291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1294, 0, 0, 0, 0, 0, 0, 1297, 1300, 0, 1303, 1306, 0, 0, 0, 0, + 0, 0, 0, 1297, 0, 0, 0, 0, 0, 0, 1300, 1303, 0, 1306, 1309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1309, 1312, 1315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1312, 1315, 1318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1318, 0, 1321, 1324, 1327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1321, 0, 1324, 1327, 1330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1336, 1339, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1339, 1342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1345, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1344, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1347, 0, 0, 0, 0, 1350, 0, 0, 0, 0, 1353, 0, 0, 0, 0, 1356, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1362, 0, - 1365, 1368, 1371, 1374, 1377, 0, 0, 0, 0, 0, 0, 0, 1380, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1383, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1386, 0, 0, 0, 0, 1389, 0, 0, 0, 0, 1392, 0, 0, 0, 0, 1395, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1347, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1350, 0, 0, 0, 0, 1353, 0, 0, 0, 0, 1356, 0, 0, 0, 0, 1359, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1365, 0, + 1368, 1371, 1374, 1377, 1380, 0, 0, 0, 0, 0, 0, 0, 1383, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1386, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1389, 0, 0, 0, 0, 1392, 0, 0, 0, 0, 1395, 0, 0, 0, 0, 1398, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1401, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1401, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4879,678 +4967,676 @@ static const unsigned short decomp_index2[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1404, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1406, 0, 1409, 0, 1412, 0, 1415, 0, 1418, 0, 0, - 0, 1421, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1424, 0, 1427, - 0, 0, 1430, 1433, 0, 1436, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1407, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1409, 0, 1412, 0, 1415, 0, 1418, 0, 1421, 0, 0, + 0, 1424, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1427, 0, 1430, + 0, 0, 1433, 1436, 0, 1439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1439, 1441, 1443, 0, - 1445, 1447, 1449, 1451, 1453, 1455, 1457, 1459, 1461, 1463, 1465, 0, - 1467, 1469, 1471, 1473, 1475, 1477, 1479, 6, 1481, 1483, 1485, 1487, - 1489, 1491, 1493, 1495, 1497, 1499, 0, 1501, 1503, 1505, 25, 1507, 1509, - 1511, 1513, 1515, 1517, 1519, 1521, 1523, 1525, 1527, 1529, 1531, 1533, - 1535, 1537, 1539, 1541, 1543, 1545, 1547, 1549, 1551, 1553, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1555, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1557, - 1559, 1561, 1563, 1497, 1565, 1567, 1569, 1571, 1573, 1575, 1577, 1579, - 1581, 1583, 1585, 1587, 1589, 1591, 1593, 1595, 1597, 1599, 1601, 1603, - 1605, 1607, 1609, 1611, 1613, 1615, 1617, 1619, 1621, 1623, 1625, 1627, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1442, 1444, 1446, 0, + 1448, 1450, 1452, 1454, 1456, 1458, 1460, 1462, 1464, 1466, 1468, 0, + 1470, 1472, 1474, 1476, 1478, 1480, 1482, 1484, 1486, 1488, 1490, 1492, + 1494, 1496, 1498, 1500, 1502, 1504, 0, 1506, 1508, 1510, 1512, 1514, + 1516, 1518, 1520, 1522, 1524, 1526, 1528, 1530, 1532, 1534, 1536, 1538, + 1540, 1542, 1544, 1546, 1548, 1550, 1552, 1554, 1556, 1558, 1560, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1564, 1566, 1568, 1570, 1572, 1574, 1576, 1578, 1580, 1582, 1584, 1586, + 1588, 1590, 1592, 1594, 1596, 1598, 1600, 1602, 1604, 1606, 1608, 1610, + 1612, 1614, 1616, 1618, 1620, 1622, 1624, 1626, 1628, 1630, 1632, 1634, + 1636, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1638, 1641, 1644, + 1647, 1650, 1653, 1656, 1659, 1662, 1665, 1668, 1671, 1674, 1677, 1680, + 1683, 1686, 1689, 1692, 1695, 1698, 1701, 1704, 1707, 1710, 1713, 1716, + 1719, 1722, 1725, 1728, 1731, 1734, 1737, 1740, 1743, 1746, 1749, 1752, + 1755, 1758, 1761, 1764, 1767, 1770, 1773, 1776, 1779, 1782, 1785, 1788, + 1791, 1794, 1797, 1800, 1803, 1806, 1809, 1812, 1815, 1818, 1821, 1824, + 1827, 1830, 1833, 1836, 1839, 1842, 1845, 1848, 1851, 1854, 1857, 1860, + 1863, 1866, 1869, 1872, 1875, 1878, 1881, 1884, 1887, 1890, 1893, 1896, + 1899, 1902, 1905, 1908, 1911, 1914, 1917, 1920, 1923, 1926, 1929, 1932, + 1935, 1938, 1941, 1944, 1947, 1950, 1953, 1956, 1959, 1962, 1965, 1968, + 1971, 1974, 1977, 1980, 1983, 1986, 1989, 1992, 1995, 1998, 2001, 2004, + 2007, 2010, 2013, 2016, 2019, 2022, 2025, 2028, 2031, 2034, 2037, 2040, + 2043, 2046, 2049, 2052, 2055, 2058, 2061, 2064, 2067, 2070, 2073, 2076, + 2079, 2082, 2085, 2088, 2091, 2094, 2097, 2100, 2103, 0, 0, 0, 0, 2106, + 2109, 2112, 2115, 2118, 2121, 2124, 2127, 2130, 2133, 2136, 2139, 2142, + 2145, 2148, 2151, 2154, 2157, 2160, 2163, 2166, 2169, 2172, 2175, 2178, + 2181, 2184, 2187, 2190, 2193, 2196, 2199, 2202, 2205, 2208, 2211, 2214, + 2217, 2220, 2223, 2226, 2229, 2232, 2235, 2238, 2241, 2244, 2247, 2250, + 2253, 2256, 2259, 2262, 2265, 2268, 2271, 2274, 2277, 2280, 2283, 2286, + 2289, 2292, 2295, 2298, 2301, 2304, 2307, 2310, 2313, 2316, 2319, 2322, + 2325, 2328, 2331, 2334, 2337, 2340, 2343, 2346, 2349, 2352, 2355, 2358, + 2361, 2364, 2367, 2370, 2373, 0, 0, 0, 0, 0, 0, 2376, 2379, 2382, 2385, + 2388, 2391, 2394, 2397, 2400, 2403, 2406, 2409, 2412, 2415, 2418, 2421, + 2424, 2427, 2430, 2433, 2436, 2439, 0, 0, 2442, 2445, 2448, 2451, 2454, + 2457, 0, 0, 2460, 2463, 2466, 2469, 2472, 2475, 2478, 2481, 2484, 2487, + 2490, 2493, 2496, 2499, 2502, 2505, 2508, 2511, 2514, 2517, 2520, 2523, + 2526, 2529, 2532, 2535, 2538, 2541, 2544, 2547, 2550, 2553, 2556, 2559, + 2562, 2565, 2568, 2571, 0, 0, 2574, 2577, 2580, 2583, 2586, 2589, 0, 0, + 2592, 2595, 2598, 2601, 2604, 2607, 2610, 2613, 0, 2616, 0, 2619, 0, + 2622, 0, 2625, 2628, 2631, 2634, 2637, 2640, 2643, 2646, 2649, 2652, + 2655, 2658, 2661, 2664, 2667, 2670, 2673, 2676, 2679, 2681, 2684, 2686, + 2689, 2691, 2694, 2696, 2699, 2701, 2704, 2706, 2709, 0, 0, 2711, 2714, + 2717, 2720, 2723, 2726, 2729, 2732, 2735, 2738, 2741, 2744, 2747, 2750, + 2753, 2756, 2759, 2762, 2765, 2768, 2771, 2774, 2777, 2780, 2783, 2786, + 2789, 2792, 2795, 2798, 2801, 2804, 2807, 2810, 2813, 2816, 2819, 2822, + 2825, 2828, 2831, 2834, 2837, 2840, 2843, 2846, 2849, 2852, 2855, 2858, + 2861, 2864, 2867, 0, 2870, 2873, 2876, 2879, 2882, 2885, 2887, 2890, + 2893, 2895, 2898, 2901, 2904, 2907, 2910, 0, 2913, 2916, 2919, 2922, + 2924, 2927, 2929, 2932, 2935, 2938, 2941, 2944, 2947, 2950, 0, 0, 2952, + 2955, 2958, 2961, 2964, 2967, 0, 2969, 2972, 2975, 2978, 2981, 2984, + 2987, 2989, 2992, 2995, 2998, 3001, 3004, 3007, 3010, 3012, 3015, 3018, + 3020, 0, 0, 3022, 3025, 3028, 0, 3031, 3034, 3037, 3040, 3042, 3045, + 3047, 3050, 3052, 0, 3055, 3057, 3059, 3061, 3063, 3065, 3067, 3069, + 3071, 3073, 3075, 0, 0, 0, 0, 0, 0, 3077, 0, 0, 0, 0, 0, 3079, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3082, 3084, 3087, 0, 0, 0, 0, 0, 0, 0, 0, + 3091, 0, 0, 0, 3093, 3096, 0, 3100, 3103, 0, 0, 0, 0, 3107, 0, 3110, 0, + 0, 0, 0, 0, 0, 0, 0, 3113, 3116, 3119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3122, 0, 0, 0, 0, 0, 0, 0, 3127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3129, 3131, 0, 0, 3133, 3135, 3137, 3139, 3141, 3143, + 3145, 3147, 3149, 3151, 3153, 3155, 3157, 3159, 3161, 3163, 3165, 3167, + 3169, 3171, 3173, 3175, 3177, 3179, 3181, 3183, 3185, 0, 3187, 3189, + 3191, 3193, 3195, 3197, 3199, 3201, 3203, 3205, 3207, 3209, 3211, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3216, 3220, 3224, 3226, 0, 3229, 3233, 3237, 0, 3239, 3242, 3244, + 3246, 3248, 3250, 3252, 3254, 3256, 3258, 3260, 0, 3262, 3264, 0, 0, + 3267, 3269, 3271, 3273, 3275, 0, 0, 3277, 3280, 3284, 0, 3287, 0, 3289, + 0, 3291, 0, 3293, 3295, 3297, 3299, 0, 3301, 3303, 3305, 0, 3307, 3309, + 3311, 3313, 3315, 3317, 3319, 0, 3321, 3325, 3327, 3329, 3331, 3333, 0, + 0, 0, 0, 3335, 3337, 3339, 3341, 3343, 0, 0, 0, 0, 0, 0, 3345, 3349, + 3353, 3358, 3362, 3366, 3370, 3374, 3378, 3382, 3386, 3390, 3394, 3398, + 3402, 3406, 3409, 3411, 3414, 3418, 3421, 3423, 3426, 3430, 3435, 3438, + 3440, 3443, 3447, 3449, 3451, 3453, 3455, 3457, 3460, 3464, 3467, 3469, + 3472, 3476, 3481, 3484, 3486, 3489, 3493, 3495, 3497, 3499, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3501, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3505, 3508, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3511, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3514, 3517, 3520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3523, 0, 0, 0, 0, 3526, + 0, 0, 3529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3532, 0, 3535, 0, 0, 0, 0, 0, 3538, 3541, 0, 3545, 3548, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3552, 0, 0, 3555, 0, 0, 3558, + 0, 3561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3564, 0, 3567, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3570, 3573, 3576, 3579, + 3582, 0, 0, 3585, 3588, 0, 0, 3591, 3594, 0, 0, 0, 0, 0, 0, 3597, 3600, + 0, 0, 3603, 3606, 0, 0, 3609, 3612, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3615, + 3618, 3621, 3624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3627, 3630, 3633, 3636, 0, 0, 0, 0, 0, 0, 3639, 3642, + 3645, 3648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3651, 3653, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3655, 3657, 3659, 3661, 3663, 3665, 3667, 3669, + 3671, 3673, 3676, 3679, 3682, 3685, 3688, 3691, 3694, 3697, 3700, 3703, + 3706, 3710, 3714, 3718, 3722, 3726, 3730, 3734, 3738, 3742, 3747, 3752, + 3757, 3762, 3767, 3772, 3777, 3782, 3787, 3792, 3797, 3800, 3803, 3806, + 3809, 3812, 3815, 3818, 3821, 3824, 3828, 3832, 3836, 3840, 3844, 3848, + 3852, 3856, 3860, 3864, 3868, 3872, 3876, 3880, 3884, 3888, 3892, 3896, + 3900, 3904, 3908, 3912, 3916, 3920, 3924, 3928, 3932, 3936, 3940, 3944, + 3948, 3952, 3956, 3960, 3964, 3968, 3972, 3974, 3976, 3978, 3980, 3982, + 3984, 3986, 3988, 3990, 3992, 3994, 3996, 3998, 4000, 4002, 4004, 4006, + 4008, 4010, 4012, 4014, 4016, 4018, 4020, 4022, 4024, 4026, 4028, 4030, + 4032, 4034, 4036, 4038, 4040, 4042, 4044, 4046, 4048, 4050, 4052, 4054, + 4056, 4058, 4060, 4062, 4064, 4066, 4068, 4070, 4072, 4074, 4076, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4083, 4087, 4090, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4097, 4099, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4101, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4103, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4107, + 4109, 4111, 4113, 4115, 4117, 4119, 4121, 4123, 4125, 4127, 4129, 4131, + 4133, 4135, 4137, 4139, 4141, 4143, 4145, 4147, 4149, 4151, 4153, 4155, + 4157, 4159, 4161, 4163, 4165, 4167, 4169, 4171, 4173, 4175, 4177, 4179, + 4181, 4183, 4185, 4187, 4189, 4191, 4193, 4195, 4197, 4199, 4201, 4203, + 4205, 4207, 4209, 4211, 4213, 4215, 4217, 4219, 4221, 4223, 4225, 4227, + 4229, 4231, 4233, 4235, 4237, 4239, 4241, 4243, 4245, 4247, 4249, 4251, + 4253, 4255, 4257, 4259, 4261, 4263, 4265, 4267, 4269, 4271, 4273, 4275, + 4277, 4279, 4281, 4283, 4285, 4287, 4289, 4291, 4293, 4295, 4297, 4299, + 4301, 4303, 4305, 4307, 4309, 4311, 4313, 4315, 4317, 4319, 4321, 4323, + 4325, 4327, 4329, 4331, 4333, 4335, 4337, 4339, 4341, 4343, 4345, 4347, + 4349, 4351, 4353, 4355, 4357, 4359, 4361, 4363, 4365, 4367, 4369, 4371, + 4373, 4375, 4377, 4379, 4381, 4383, 4385, 4387, 4389, 4391, 4393, 4395, + 4397, 4399, 4401, 4403, 4405, 4407, 4409, 4411, 4413, 4415, 4417, 4419, + 4421, 4423, 4425, 4427, 4429, 4431, 4433, 4435, 4437, 4439, 4441, 4443, + 4445, 4447, 4449, 4451, 4453, 4455, 4457, 4459, 4461, 4463, 4465, 4467, + 4469, 4471, 4473, 4475, 4477, 4479, 4481, 4483, 4485, 4487, 4489, 4491, + 4493, 4495, 4497, 4499, 4501, 4503, 4505, 4507, 4509, 4511, 4513, 4515, + 4517, 4519, 4521, 4523, 4525, 4527, 4529, 4531, 4533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1629, 1632, 1635, 1638, - 1641, 1644, 1647, 1650, 1653, 1656, 1659, 1662, 1665, 1668, 1671, 1674, - 1677, 1680, 1683, 1686, 1689, 1692, 1695, 1698, 1701, 1704, 1707, 1710, - 1713, 1716, 1719, 1722, 1725, 1728, 1731, 1734, 1737, 1740, 1743, 1746, - 1749, 1752, 1755, 1758, 1761, 1764, 1767, 1770, 1773, 1776, 1779, 1782, - 1785, 1788, 1791, 1794, 1797, 1800, 1803, 1806, 1809, 1812, 1815, 1818, - 1821, 1824, 1827, 1830, 1833, 1836, 1839, 1842, 1845, 1848, 1851, 1854, - 1857, 1860, 1863, 1866, 1869, 1872, 1875, 1878, 1881, 1884, 1887, 1890, - 1893, 1896, 1899, 1902, 1905, 1908, 1911, 1914, 1917, 1920, 1923, 1926, - 1929, 1932, 1935, 1938, 1941, 1944, 1947, 1950, 1953, 1956, 1959, 1962, - 1965, 1968, 1971, 1974, 1977, 1980, 1983, 1986, 1989, 1992, 1995, 1998, - 2001, 2004, 2007, 2010, 2013, 2016, 2019, 2022, 2025, 2028, 2031, 2034, - 2037, 2040, 2043, 2046, 2049, 2052, 2055, 2058, 2061, 2064, 2067, 2070, - 2073, 2076, 2079, 2082, 2085, 2088, 2091, 2094, 0, 0, 0, 0, 2097, 2100, - 2103, 2106, 2109, 2112, 2115, 2118, 2121, 2124, 2127, 2130, 2133, 2136, - 2139, 2142, 2145, 2148, 2151, 2154, 2157, 2160, 2163, 2166, 2169, 2172, - 2175, 2178, 2181, 2184, 2187, 2190, 2193, 2196, 2199, 2202, 2205, 2208, - 2211, 2214, 2217, 2220, 2223, 2226, 2229, 2232, 2235, 2238, 2241, 2244, - 2247, 2250, 2253, 2256, 2259, 2262, 2265, 2268, 2271, 2274, 2277, 2280, - 2283, 2286, 2289, 2292, 2295, 2298, 2301, 2304, 2307, 2310, 2313, 2316, - 2319, 2322, 2325, 2328, 2331, 2334, 2337, 2340, 2343, 2346, 2349, 2352, - 2355, 2358, 2361, 2364, 0, 0, 0, 0, 0, 0, 2367, 2370, 2373, 2376, 2379, - 2382, 2385, 2388, 2391, 2394, 2397, 2400, 2403, 2406, 2409, 2412, 2415, - 2418, 2421, 2424, 2427, 2430, 0, 0, 2433, 2436, 2439, 2442, 2445, 2448, - 0, 0, 2451, 2454, 2457, 2460, 2463, 2466, 2469, 2472, 2475, 2478, 2481, - 2484, 2487, 2490, 2493, 2496, 2499, 2502, 2505, 2508, 2511, 2514, 2517, - 2520, 2523, 2526, 2529, 2532, 2535, 2538, 2541, 2544, 2547, 2550, 2553, - 2556, 2559, 2562, 0, 0, 2565, 2568, 2571, 2574, 2577, 2580, 0, 0, 2583, - 2586, 2589, 2592, 2595, 2598, 2601, 2604, 0, 2607, 0, 2610, 0, 2613, 0, - 2616, 2619, 2622, 2625, 2628, 2631, 2634, 2637, 2640, 2643, 2646, 2649, - 2652, 2655, 2658, 2661, 2664, 2667, 2670, 2672, 2675, 2677, 2680, 2682, - 2685, 2687, 2690, 2692, 2695, 2697, 2700, 0, 0, 2702, 2705, 2708, 2711, - 2714, 2717, 2720, 2723, 2726, 2729, 2732, 2735, 2738, 2741, 2744, 2747, - 2750, 2753, 2756, 2759, 2762, 2765, 2768, 2771, 2774, 2777, 2780, 2783, - 2786, 2789, 2792, 2795, 2798, 2801, 2804, 2807, 2810, 2813, 2816, 2819, - 2822, 2825, 2828, 2831, 2834, 2837, 2840, 2843, 2846, 2849, 2852, 2855, - 2858, 0, 2861, 2864, 2867, 2870, 2873, 2876, 2878, 2881, 2884, 2881, - 2886, 2889, 2892, 2895, 2898, 0, 2901, 2904, 2907, 2910, 2912, 2915, - 2917, 2920, 2923, 2926, 2929, 2932, 2935, 2938, 0, 0, 2940, 2943, 2946, - 2949, 2952, 2955, 0, 2957, 2960, 2963, 2966, 2969, 2972, 2975, 2977, - 2980, 2983, 2986, 2989, 2992, 2995, 2998, 3000, 3003, 3006, 3008, 0, 0, - 3010, 3013, 3016, 0, 3019, 3022, 3025, 3028, 3030, 3033, 3035, 3038, - 3040, 0, 3043, 3045, 3047, 3047, 3047, 3047, 3047, 1, 3047, 3047, 3047, - 0, 0, 0, 0, 0, 0, 3049, 0, 0, 0, 0, 0, 3051, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3054, 3056, 3059, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3063, - 3066, 0, 3070, 3073, 0, 0, 0, 0, 3077, 0, 3080, 0, 0, 0, 0, 0, 0, 0, 0, - 3083, 3086, 3089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3092, 0, 0, 0, - 0, 0, 0, 0, 3047, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3097, - 3099, 0, 0, 3101, 3103, 3105, 3107, 3109, 3111, 3113, 3115, 3117, 3119, - 3121, 3123, 3125, 3127, 3129, 3131, 3133, 3135, 3137, 3139, 3141, 3143, - 3145, 3147, 3149, 3151, 3153, 0, 3155, 3157, 3159, 3161, 3163, 3165, - 3167, 3169, 3171, 3173, 3175, 3177, 3179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3184, 3188, 3192, - 3194, 0, 3197, 3201, 3205, 0, 3207, 3210, 3212, 3212, 3212, 3214, 3216, - 3218, 3218, 3220, 3222, 0, 3224, 3226, 0, 0, 3229, 3231, 3233, 3233, - 3233, 0, 0, 3235, 3238, 3242, 0, 3245, 0, 3247, 0, 3245, 0, 3249, 3251, - 3253, 3192, 0, 3255, 3257, 3259, 0, 3261, 3263, 3265, 3267, 3269, 3271, - 3273, 0, 3275, 3279, 3281, 3283, 3285, 3287, 0, 0, 0, 0, 3289, 3291, - 3255, 3273, 3293, 0, 0, 0, 0, 0, 0, 3295, 3299, 3303, 3308, 3312, 3316, - 3320, 3324, 3328, 3332, 3336, 3340, 3344, 3348, 3352, 3356, 3359, 3361, - 3364, 3368, 3371, 3373, 3376, 3380, 3385, 3388, 3390, 3393, 3397, 3399, - 3401, 3403, 3405, 3407, 3410, 3414, 3417, 3419, 3422, 3426, 3431, 3434, - 3436, 3439, 3443, 3445, 3447, 3449, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3451, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3455, 3458, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3461, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3464, - 3467, 3470, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3473, 0, 0, 0, 0, 3476, 0, 0, 3479, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3482, 0, 3485, - 0, 0, 0, 0, 0, 3488, 3491, 0, 3495, 3498, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3502, 0, 0, 3505, 0, 0, 3508, 0, 3511, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3514, 0, 3517, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3520, 3523, 3526, 3529, 3532, 0, 0, 3535, 3538, - 0, 0, 3541, 3544, 0, 0, 0, 0, 0, 0, 3547, 3550, 0, 0, 3553, 3556, 0, 0, - 3559, 3562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3565, 3568, 3571, 3574, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3577, - 3580, 3583, 3586, 0, 0, 0, 0, 0, 0, 3589, 3592, 3595, 3598, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3601, 3603, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3605, 3607, 3609, 3611, 3613, 3615, 3617, 3619, 3621, 3623, 3626, 3629, - 3632, 3635, 3638, 3641, 3644, 3647, 3650, 3653, 3656, 3660, 3664, 3668, - 3672, 3676, 3680, 3684, 3688, 3692, 3697, 3702, 3707, 3712, 3717, 3722, - 3727, 3732, 3737, 3742, 3747, 3750, 3753, 3756, 3759, 3762, 3765, 3768, - 3771, 3774, 3778, 3782, 3786, 3790, 3794, 3798, 3802, 3806, 3810, 3814, - 3818, 3822, 3826, 3830, 3834, 3838, 3842, 3846, 3850, 3854, 3858, 3862, - 3866, 3870, 3874, 3878, 3882, 3886, 3890, 3894, 3898, 3902, 3906, 3910, - 3914, 3918, 3922, 3924, 3926, 3928, 3930, 3932, 3934, 3936, 3938, 3940, - 3942, 3944, 3946, 3948, 3950, 3952, 3954, 3956, 3958, 3960, 3962, 3964, - 3966, 3968, 3970, 3972, 3974, 3976, 3978, 3980, 3982, 3984, 3986, 3988, - 3990, 3992, 3994, 3996, 3998, 4000, 4002, 4004, 4006, 4008, 4010, 4012, - 4014, 4016, 4018, 4020, 4022, 4024, 4026, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4028, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4537, 0, 4539, + 4541, 4543, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4545, 0, + 4548, 0, 4551, 0, 4554, 0, 4557, 0, 4560, 0, 4563, 0, 4566, 0, 4569, 0, + 4572, 0, 4575, 0, 4578, 0, 0, 4581, 0, 4584, 0, 4587, 0, 0, 0, 0, 0, 0, + 4590, 4593, 0, 4596, 4599, 0, 4602, 4605, 0, 4608, 4611, 0, 4614, 4617, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4620, + 0, 0, 0, 0, 0, 0, 4623, 4626, 0, 4629, 4632, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4635, 0, 4638, 0, 4641, 0, 4644, 0, 4647, 0, 4650, 0, 4653, 0, + 4656, 0, 4659, 0, 4662, 0, 4665, 0, 4668, 0, 0, 4671, 0, 4674, 0, 4677, + 0, 0, 0, 0, 0, 0, 4680, 4683, 0, 4686, 4689, 0, 4692, 4695, 0, 4698, + 4701, 0, 4704, 4707, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4710, 0, 0, 4713, 4716, 4719, 4722, 0, 0, 0, 4725, 4728, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 4731, 4733, 4735, 4737, 4739, 4741, 4743, 4745, 4747, 4749, 4751, + 4753, 4755, 4757, 4759, 4761, 4763, 4765, 4767, 4769, 4771, 4773, 4775, + 4777, 4779, 4781, 4783, 4785, 4787, 4789, 4791, 4793, 4795, 4797, 4799, + 4801, 4803, 4805, 4807, 4809, 4811, 4813, 4815, 4817, 4819, 4821, 4823, + 4825, 4827, 4829, 4831, 4833, 4835, 4837, 4839, 4841, 4843, 4845, 4847, + 4849, 4851, 4853, 4855, 4857, 4859, 4861, 4863, 4865, 4867, 4869, 4871, + 4873, 4875, 4877, 4879, 4881, 4883, 4885, 4887, 4889, 4891, 4893, 4895, + 4897, 4899, 4901, 4903, 4905, 4907, 4909, 4911, 4913, 4915, 4917, 0, 0, + 0, 4919, 4921, 4923, 4925, 4927, 4929, 4931, 4933, 4935, 4937, 4939, + 4941, 4943, 4945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4033, 4037, 4040, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4044, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4047, 4049, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4053, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4947, 4951, 4955, 4959, 4963, 4967, 4971, 4975, 4979, + 4983, 4987, 4991, 4995, 4999, 5003, 5008, 5013, 5018, 5023, 5028, 5033, + 5038, 5043, 5048, 5053, 5058, 5063, 5068, 5073, 5078, 5086, 0, 5093, + 5097, 5101, 5105, 5109, 5113, 5117, 5121, 5125, 5129, 5133, 5137, 5141, + 5145, 5149, 5153, 5157, 5161, 5165, 5169, 5173, 5177, 5181, 5185, 5189, + 5193, 5197, 5201, 5205, 5209, 5213, 5217, 5221, 5225, 5229, 5233, 5237, + 5239, 5241, 5243, 0, 0, 0, 0, 0, 0, 0, 0, 5245, 5249, 5252, 5255, 5258, + 5261, 5264, 5267, 5270, 5273, 5276, 5279, 5282, 5285, 5288, 5291, 5294, + 5296, 5298, 5300, 5302, 5304, 5306, 5308, 5310, 5312, 5314, 5316, 5318, + 5320, 5322, 5325, 5328, 5331, 5334, 5337, 5340, 5343, 5346, 5349, 5352, + 5355, 5358, 5361, 5364, 5370, 5375, 0, 5378, 5380, 5382, 5384, 5386, + 5388, 5390, 5392, 5394, 5396, 5398, 5400, 5402, 5404, 5406, 5408, 5410, + 5412, 5414, 5416, 5418, 5420, 5422, 5424, 5426, 5428, 5430, 5432, 5434, + 5436, 5438, 5440, 5442, 5444, 5446, 5448, 5450, 5452, 5454, 5456, 5458, + 5460, 5462, 5464, 5466, 5468, 5470, 5472, 5474, 5476, 5479, 5482, 5485, + 5488, 5491, 5494, 5497, 5500, 5503, 5506, 5509, 5512, 5515, 5518, 5521, + 5524, 5527, 5530, 5533, 5536, 5539, 5542, 5545, 5548, 5552, 5556, 5560, + 5563, 5567, 5570, 5574, 5576, 5578, 5580, 5582, 5584, 5586, 5588, 5590, + 5592, 5594, 5596, 5598, 5600, 5602, 5604, 5606, 5608, 5610, 5612, 5614, + 5616, 5618, 5620, 5622, 5624, 5626, 5628, 5630, 5632, 5634, 5636, 5638, + 5640, 5642, 5644, 5646, 5648, 5650, 5652, 5654, 5656, 5658, 5660, 5662, + 5664, 5666, 5668, 5671, 5676, 5681, 5686, 5690, 5695, 5699, 5703, 5709, + 5714, 5718, 5722, 5726, 5731, 5736, 5740, 5744, 5747, 5751, 5756, 5761, + 5764, 5770, 5777, 5783, 5787, 5793, 5799, 5804, 5808, 5812, 5816, 5821, + 5827, 5832, 5836, 5840, 5844, 5847, 5850, 5853, 5856, 5860, 5864, 5870, + 5874, 5879, 5885, 5889, 5892, 5895, 5901, 5906, 5912, 5916, 5922, 5925, + 5929, 5933, 5937, 5941, 5945, 5950, 5954, 5957, 5961, 5965, 5969, 5974, + 5978, 5982, 5986, 5992, 5997, 6000, 6006, 6009, 6014, 6019, 6023, 6027, + 6031, 6036, 6039, 6043, 6048, 6051, 6057, 6061, 6064, 6067, 6070, 6073, + 6076, 6079, 6082, 6085, 6088, 6091, 6095, 6099, 6103, 6107, 6111, 6115, + 6119, 6123, 6127, 6131, 6135, 6139, 6143, 6147, 6151, 6155, 6158, 6161, + 6165, 6168, 6171, 6174, 6178, 6182, 6185, 6188, 6191, 6194, 6197, 6202, + 6205, 6208, 6211, 6214, 6217, 6220, 6223, 6226, 6230, 6235, 6238, 6241, + 6244, 6247, 6250, 6253, 6256, 6260, 6264, 6268, 6272, 6275, 6278, 6281, + 6284, 6287, 6290, 6293, 6296, 6299, 6302, 6306, 6310, 6313, 6317, 6321, + 6325, 6328, 6332, 6336, 6341, 6344, 6348, 6352, 6356, 6360, 6366, 6373, + 6376, 6379, 6382, 6385, 6388, 6391, 6394, 6397, 6400, 6403, 6406, 6409, + 6412, 6415, 6418, 6421, 6424, 6427, 6432, 6435, 6438, 6441, 6446, 6450, + 6453, 6456, 6459, 6462, 6465, 6468, 6471, 6474, 6477, 6480, 6484, 6487, + 6490, 6494, 6498, 6501, 6506, 6510, 6513, 6516, 6519, 6522, 6526, 6530, + 6533, 6536, 6539, 6542, 6545, 6548, 6551, 6554, 6557, 6561, 6565, 6569, + 6573, 6577, 6581, 6585, 6589, 6593, 6597, 6601, 6605, 6609, 6613, 6617, + 6621, 6625, 6629, 6633, 6637, 6641, 6645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6649, 6651, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6653, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 6655, 6657, 6659, 0, 0, 0, 6661, 6663, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6665, 6667, 6669, + 6671, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6673, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6675, 6677, 6679, 6681, 6683, 6685, + 6687, 6689, 6691, 6693, 6695, 6697, 6699, 6701, 6703, 6705, 6707, 6709, + 6711, 6713, 6715, 6717, 6719, 6721, 6723, 6725, 6727, 6729, 6731, 6733, + 6735, 6737, 6739, 6741, 6743, 6745, 6747, 6749, 6751, 6753, 6755, 6757, + 6759, 6761, 6763, 6765, 6767, 6769, 6771, 6773, 6775, 6777, 6779, 6781, + 6783, 6785, 6787, 6789, 6791, 6793, 6795, 6797, 6799, 6801, 6803, 6805, + 6807, 6809, 6811, 6813, 6815, 6817, 6819, 6821, 6823, 6825, 6827, 6829, + 6831, 6833, 6835, 6837, 6839, 6841, 6843, 6845, 6847, 6849, 6851, 6853, + 6855, 6857, 6859, 6861, 6863, 6865, 6867, 6869, 6871, 6873, 6875, 6877, + 6879, 6881, 6883, 6885, 6887, 6889, 6891, 6893, 6895, 6897, 6899, 6901, + 6903, 6905, 6907, 6909, 6911, 6913, 6915, 6917, 6919, 6921, 6923, 6925, + 6927, 6929, 6931, 6933, 6935, 6937, 6939, 6941, 6943, 6945, 6947, 6949, + 6951, 6953, 6955, 6957, 6959, 6961, 6963, 6965, 6967, 6969, 6971, 6973, + 6975, 6977, 6979, 6981, 6983, 6985, 6987, 6989, 6991, 6993, 6995, 6997, + 6999, 7001, 7003, 7005, 7007, 7009, 7011, 7013, 7015, 7017, 7019, 7021, + 7023, 7025, 7027, 7029, 7031, 7033, 7035, 7037, 7039, 7041, 7043, 7045, + 7047, 7049, 7051, 7053, 7055, 7057, 7059, 7061, 7063, 7065, 7067, 7069, + 7071, 7073, 7075, 7077, 7079, 7081, 7083, 7085, 7087, 7089, 7091, 7093, + 7095, 7097, 7099, 7101, 7103, 7105, 7107, 7109, 7111, 7113, 7115, 7117, + 7119, 7121, 7123, 7125, 7127, 7129, 7131, 7133, 7135, 7137, 7139, 7141, + 7143, 7145, 7147, 7149, 7151, 7153, 7155, 7157, 7159, 7161, 7163, 7165, + 7167, 7169, 7171, 7173, 7175, 7177, 7179, 7181, 7183, 7185, 7187, 7189, + 7191, 7193, 7195, 7197, 7199, 7201, 7203, 7205, 7207, 7209, 7211, 7213, + 0, 0, 7215, 0, 7217, 0, 0, 7219, 7221, 7223, 7225, 7227, 7229, 7231, + 7233, 7235, 7237, 0, 7239, 0, 7241, 0, 0, 7243, 7245, 0, 0, 0, 7247, + 7249, 7251, 7253, 7255, 7257, 7259, 7261, 7263, 7265, 7267, 7269, 7271, + 7273, 7275, 7277, 7279, 7281, 7283, 7285, 7287, 7289, 7291, 7293, 7295, + 7297, 7299, 7301, 7303, 7305, 7307, 7309, 7311, 7313, 7315, 7317, 7319, + 7321, 7323, 7325, 7327, 7329, 7331, 7333, 7335, 7337, 7339, 7341, 7343, + 7345, 7347, 7349, 7351, 7353, 7355, 7357, 7359, 7361, 7363, 7365, 7367, + 7369, 7371, 7373, 7375, 7377, 7379, 7381, 0, 0, 7383, 7385, 7387, 7389, + 7391, 7393, 7395, 7397, 7399, 7401, 7403, 7405, 7407, 7409, 7411, 7413, + 7415, 7417, 7419, 7421, 7423, 7425, 7427, 7429, 7431, 7433, 7435, 7437, + 7439, 7441, 7443, 7445, 7447, 7449, 7451, 7453, 7455, 7457, 7459, 7461, + 7463, 7465, 7467, 7469, 7471, 7473, 7475, 7477, 7479, 7481, 7483, 7485, + 7487, 7489, 7491, 7493, 7495, 7497, 7499, 7501, 7503, 7505, 7507, 7509, + 7511, 7513, 7515, 7517, 7519, 7521, 7523, 7525, 7527, 7529, 7531, 7533, + 7535, 7537, 7539, 7541, 7543, 7545, 7547, 7549, 7551, 7553, 7555, 7557, + 7559, 7561, 7563, 7565, 7567, 7569, 7571, 7573, 7575, 7577, 7579, 7581, + 7583, 7585, 7587, 7589, 7591, 7593, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7595, 7598, 7601, 7604, 7608, 7612, 7615, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7618, 7621, 7624, 7627, 7630, 0, 0, 0, 0, 0, 7633, 0, 7636, + 7639, 7641, 7643, 7645, 7647, 7649, 7651, 7653, 7655, 7657, 7659, 7662, + 7665, 7668, 7671, 7674, 7677, 7680, 7683, 7686, 7689, 7692, 7695, 0, + 7698, 7701, 7704, 7707, 7710, 0, 7713, 0, 7716, 7719, 0, 7722, 7725, 0, + 7728, 7731, 7734, 7737, 7740, 7743, 7746, 7749, 7752, 7755, 7758, 7760, + 7762, 7764, 7766, 7768, 7770, 7772, 7774, 7776, 7778, 7780, 7782, 7784, + 7786, 7788, 7790, 7792, 7794, 7796, 7798, 7800, 7802, 7804, 7806, 7808, + 7810, 7812, 7814, 7816, 7818, 7820, 7822, 7824, 7826, 7828, 7830, 7832, + 7834, 7836, 7838, 7840, 7842, 7844, 7846, 7848, 7850, 7852, 7854, 7856, + 7858, 7860, 7862, 7864, 7866, 7868, 7870, 7872, 7874, 7876, 7878, 7880, + 7882, 7884, 7886, 7888, 7890, 7892, 7894, 7896, 7898, 7900, 7902, 7904, + 7906, 7908, 7910, 7912, 7914, 7916, 7918, 7920, 7922, 7924, 7926, 7928, + 7930, 7932, 7934, 7936, 7938, 7940, 7942, 7944, 7946, 7948, 7950, 7952, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 7954, 7956, 7958, 7960, 7962, 7964, 7966, + 7968, 7970, 7972, 7974, 7976, 7978, 7980, 7982, 7984, 7986, 7988, 7990, + 7992, 7994, 7996, 7998, 8000, 8003, 8006, 8009, 8012, 8015, 8018, 8021, + 8024, 8027, 8030, 8033, 8036, 8039, 8042, 8045, 8048, 8051, 8054, 8056, + 8058, 8060, 8062, 8065, 8068, 8071, 8074, 8077, 8080, 8083, 8086, 8089, + 8092, 8095, 8098, 8101, 8104, 8107, 8110, 8113, 8116, 8119, 8122, 8125, + 8128, 8131, 8134, 8137, 8140, 8143, 8146, 8149, 8152, 8155, 8158, 8161, + 8164, 8167, 8170, 8173, 8176, 8179, 8182, 8185, 8188, 8191, 8194, 8197, + 8200, 8203, 8206, 8209, 8212, 8215, 8218, 8221, 8224, 8227, 8230, 8233, + 8236, 8239, 8242, 8245, 8248, 8251, 8254, 8257, 8260, 8263, 8266, 8269, + 8272, 8275, 8278, 8281, 8284, 8287, 8290, 8293, 8296, 8299, 8302, 8305, + 8308, 8311, 8314, 8317, 8320, 8323, 8326, 8329, 8332, 8335, 8338, 8341, + 8344, 8348, 8352, 8356, 8360, 8364, 8368, 8371, 8374, 8377, 8380, 8383, + 8386, 8389, 8392, 8395, 8398, 8401, 8404, 8407, 8410, 8413, 8416, 8419, + 8422, 8425, 8428, 8431, 8434, 8437, 8440, 8443, 8446, 8449, 8452, 8455, + 8458, 8461, 8464, 8467, 8470, 8473, 8476, 8479, 8482, 8485, 8488, 8491, + 8494, 8497, 8500, 8503, 8506, 8509, 8512, 8515, 8518, 8521, 8524, 8527, + 8530, 8533, 8536, 8539, 8542, 8545, 8548, 8551, 8554, 8557, 8560, 8563, + 8566, 8569, 8572, 8575, 8578, 8581, 8584, 8587, 8590, 8593, 8596, 8599, + 8602, 8605, 8608, 8611, 8614, 8617, 8620, 8623, 8626, 8629, 8632, 8635, + 8638, 8641, 8644, 8647, 8650, 8653, 8656, 8659, 8662, 8665, 8668, 8671, + 8674, 8677, 8680, 8683, 8686, 8689, 8692, 8695, 8698, 8701, 8704, 8707, + 8710, 8713, 8716, 8719, 8722, 8725, 8728, 8731, 8734, 8737, 8740, 8743, + 8746, 8749, 8752, 8755, 8758, 8761, 8764, 8767, 8770, 8773, 8776, 8779, + 8782, 8785, 8788, 8791, 8794, 8798, 8802, 8806, 8809, 8812, 8815, 8818, + 8821, 8824, 8827, 8830, 8833, 8836, 8839, 8842, 8845, 8848, 8851, 8854, + 8857, 8860, 8863, 8866, 8869, 8872, 8875, 8878, 8881, 8884, 8887, 8890, + 8893, 8896, 8899, 8902, 8905, 8908, 8911, 8914, 8917, 8920, 8923, 8926, + 8929, 8932, 8935, 8938, 8941, 8944, 8947, 8950, 8953, 8956, 8959, 8962, + 8965, 8968, 8971, 8974, 8977, 8980, 8983, 8986, 8989, 8992, 8995, 8998, + 9001, 9004, 9007, 9010, 9013, 9016, 9019, 9022, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9025, 9029, 9033, 9037, 9041, 9045, 9049, + 9053, 9057, 9061, 9065, 9069, 9073, 9077, 9081, 9085, 9089, 9093, 9097, + 9101, 9105, 9109, 9113, 9117, 9121, 9125, 9129, 9133, 9137, 9141, 9145, + 9149, 9153, 9157, 9161, 9165, 9169, 9173, 9177, 9181, 9185, 9189, 9193, + 9197, 9201, 9205, 9209, 9213, 9217, 9221, 9225, 9229, 9233, 9237, 9241, + 9245, 9249, 9253, 9257, 9261, 9265, 9269, 9273, 9277, 0, 0, 9281, 9285, + 9289, 9293, 9297, 9301, 9305, 9309, 9313, 9317, 9321, 9325, 9329, 9333, + 9337, 9341, 9345, 9349, 9353, 9357, 9361, 9365, 9369, 9373, 9377, 9381, + 9385, 9389, 9393, 9397, 9401, 9405, 9409, 9413, 9417, 9421, 9425, 9429, + 9433, 9437, 9441, 9445, 9449, 9453, 9457, 9461, 9465, 9469, 9473, 9477, + 9481, 9485, 9489, 9493, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9497, 9501, 9505, 9510, 9515, 9520, 9525, 9530, 9535, 9540, 9544, 9563, + 9572, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9577, + 9579, 9581, 9583, 9585, 9587, 9589, 9591, 9593, 9595, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9597, 9599, 9601, 9603, + 9605, 9607, 9609, 9611, 9613, 9615, 9617, 9619, 9621, 9623, 9625, 9627, + 9629, 9631, 9633, 9635, 9637, 0, 0, 9639, 9641, 9643, 9645, 9647, 9649, + 9651, 9653, 9655, 9657, 9659, 9661, 0, 9663, 9665, 9667, 9669, 9671, + 9673, 9675, 9677, 9679, 9681, 9683, 9685, 9687, 9689, 9691, 9693, 9695, + 9697, 9699, 0, 9701, 9703, 9705, 9707, 0, 0, 0, 0, 9709, 9712, 9715, 0, + 9718, 0, 9721, 9724, 9727, 9730, 9733, 9736, 9739, 9742, 9745, 9748, + 9751, 9753, 9755, 9757, 9759, 9761, 9763, 9765, 9767, 9769, 9771, 9773, + 9775, 9777, 9779, 9781, 9783, 9785, 9787, 9789, 9791, 9793, 9795, 9797, + 9799, 9801, 9803, 9805, 9807, 9809, 9811, 9813, 9815, 9817, 9819, 9821, + 9823, 9825, 9827, 9829, 9831, 9833, 9835, 9837, 9839, 9841, 9843, 9845, + 9847, 9849, 9851, 9853, 9855, 9857, 9859, 9861, 9863, 9865, 9867, 9869, + 9871, 9873, 9875, 9877, 9879, 9881, 9883, 9885, 9887, 9889, 9891, 9893, + 9895, 9897, 9899, 9901, 9903, 9905, 9907, 9909, 9911, 9913, 9915, 9917, + 9919, 9921, 9923, 9925, 9927, 9929, 9931, 9933, 9935, 9937, 9939, 9941, + 9943, 9945, 9947, 9949, 9951, 9953, 9955, 9957, 9959, 9961, 9963, 9965, + 9967, 9969, 9971, 9973, 9975, 9977, 9979, 9981, 9983, 9985, 9988, 9991, + 9994, 9997, 10000, 10003, 10006, 0, 0, 0, 0, 10009, 10011, 10013, 10015, + 10017, 10019, 10021, 10023, 10025, 10027, 10029, 10031, 10033, 10035, + 10037, 10039, 10041, 10043, 10045, 10047, 10049, 10051, 10053, 10055, + 10057, 10059, 10061, 10063, 10065, 10067, 10069, 10071, 10073, 10075, + 10077, 10079, 10081, 10083, 10085, 10087, 10089, 10091, 10093, 10095, + 10097, 10099, 10101, 10103, 10105, 10107, 10109, 10111, 10113, 10115, + 10117, 10119, 10121, 10123, 10125, 10127, 10129, 10131, 10133, 10135, + 10137, 10139, 10141, 10143, 10145, 10147, 10149, 10151, 10153, 10155, + 10157, 10159, 10161, 10163, 10165, 10167, 10169, 10171, 10173, 10175, + 10177, 10179, 10181, 10183, 10185, 10187, 10189, 10191, 10193, 10195, + 10197, 10199, 10201, 10203, 10205, 10207, 10209, 10211, 10213, 10215, + 10217, 10219, 10221, 10223, 10225, 10227, 10229, 10231, 10233, 10235, + 10237, 10239, 10241, 10243, 10245, 10247, 10249, 10251, 10253, 10255, + 10257, 10259, 10261, 10263, 10265, 10267, 10269, 10271, 10273, 10275, + 10277, 10279, 10281, 10283, 10285, 10287, 10289, 10291, 10293, 10295, + 10297, 10299, 10301, 10303, 10305, 10307, 10309, 10311, 10313, 10315, + 10317, 10319, 10321, 10323, 10325, 10327, 10329, 10331, 10333, 10335, + 10337, 10339, 10341, 10343, 10345, 10347, 10349, 10351, 10353, 10355, + 10357, 10359, 10361, 10363, 10365, 10367, 10369, 10371, 10373, 10375, + 10377, 10379, 10381, 10383, 10385, 10387, 0, 0, 0, 10389, 10391, 10393, + 10395, 10397, 10399, 0, 0, 10401, 10403, 10405, 10407, 10409, 10411, 0, + 0, 10413, 10415, 10417, 10419, 10421, 10423, 0, 0, 10425, 10427, 10429, + 0, 0, 0, 10431, 10433, 10435, 10437, 10439, 10441, 10443, 0, 10445, + 10447, 10449, 10451, 10453, 10455, 10457, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 10459, 10461, 10463, 10465, 10467, 0, 10469, + 10471, 10473, 10475, 10477, 10479, 10481, 10483, 10485, 10487, 10489, + 10491, 10493, 10495, 10497, 10499, 10501, 10503, 10505, 10507, 10509, + 10511, 10513, 10515, 10517, 10519, 10521, 10523, 10525, 10527, 10529, + 10531, 10533, 10535, 10537, 10539, 10541, 10543, 10545, 10547, 10549, + 10551, 0, 10553, 10555, 10557, 10559, 10561, 10563, 10565, 10567, 10569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4055, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4057, 4059, 4061, 4063, 4065, - 4067, 4069, 4071, 4073, 4075, 4077, 4079, 4081, 4083, 4085, 4087, 4089, - 4091, 4093, 4095, 4097, 4099, 4101, 4103, 4105, 4107, 4109, 4111, 4113, - 4115, 4117, 4119, 4121, 4123, 4125, 4127, 4129, 4131, 4133, 4135, 4137, - 4139, 4141, 4143, 4145, 4147, 4149, 4151, 4153, 4155, 4157, 4159, 4161, - 4163, 4165, 4167, 4169, 4171, 4173, 4175, 4177, 4179, 4181, 4183, 4185, - 4187, 4189, 4191, 4193, 4195, 4197, 4199, 4201, 4203, 4205, 4207, 4209, - 4211, 4213, 4215, 4217, 4219, 4221, 4223, 4225, 4227, 4229, 4231, 4233, - 4235, 4237, 4239, 4241, 4243, 4245, 4247, 4249, 4251, 4253, 4255, 4257, - 4259, 4261, 4263, 4265, 4267, 4269, 4271, 4273, 4275, 4277, 4279, 4281, - 4283, 4285, 4287, 4289, 4291, 4293, 4295, 4297, 4299, 4301, 4303, 4305, - 4307, 4309, 4311, 4313, 4315, 4317, 4319, 4321, 4323, 4325, 4327, 4329, - 4331, 4333, 4335, 4337, 4339, 4341, 4343, 4345, 4347, 4349, 4351, 4353, - 4355, 4357, 4359, 4361, 4363, 4365, 4367, 4369, 4371, 4373, 4375, 4377, - 4379, 4381, 4383, 4385, 4387, 4389, 4391, 4393, 4395, 4397, 4399, 4401, - 4403, 4405, 4407, 4409, 4411, 4413, 4415, 4417, 4419, 4421, 4423, 4425, - 4427, 4429, 4431, 4433, 4435, 4437, 4439, 4441, 4443, 4445, 4447, 4449, - 4451, 4453, 4455, 4457, 4459, 4461, 4463, 4465, 4467, 4469, 4471, 4473, - 4475, 4477, 4479, 4481, 4483, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10571, 0, 10574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4485, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4487, 0, 4103, 4489, 4491, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4493, 0, 4496, 0, 4499, 0, 4502, - 0, 4505, 0, 4508, 0, 4511, 0, 4514, 0, 4517, 0, 4520, 0, 4523, 0, 4526, - 0, 0, 4529, 0, 4532, 0, 4535, 0, 0, 0, 0, 0, 0, 4538, 4541, 0, 4544, - 4547, 0, 4550, 4553, 0, 4556, 4559, 0, 4562, 4565, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4568, 0, 0, 0, 0, 0, 0, - 4571, 4574, 0, 4577, 4580, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4583, 0, - 4586, 0, 4589, 0, 4592, 0, 4595, 0, 4598, 0, 4601, 0, 4604, 0, 4607, 0, - 4610, 0, 4613, 0, 4616, 0, 0, 4619, 0, 4622, 0, 4625, 0, 0, 0, 0, 0, 0, - 4628, 4631, 0, 4634, 4637, 0, 4640, 4643, 0, 4646, 4649, 0, 4652, 4655, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4658, - 0, 0, 4661, 4664, 4667, 4670, 0, 0, 0, 4673, 4676, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4679, 4681, 4683, - 4685, 4687, 4689, 4691, 4693, 4695, 4697, 4699, 4701, 4703, 4705, 4707, - 4709, 4711, 4713, 4715, 4717, 4719, 4721, 4723, 4725, 4727, 4729, 4731, - 4733, 4735, 4737, 4739, 4741, 4743, 4745, 4747, 4749, 4751, 4753, 4755, - 4757, 4759, 4761, 4763, 4765, 4767, 4769, 4771, 4773, 4775, 4777, 4779, - 4781, 4783, 4785, 4787, 4789, 4791, 4793, 4795, 4797, 4799, 4801, 4803, - 4805, 4807, 4809, 4811, 4813, 4815, 4817, 4819, 4821, 4823, 4825, 4827, - 4829, 4831, 4833, 4835, 4837, 4839, 4841, 4843, 4845, 4847, 4849, 4851, - 4853, 4855, 4857, 4859, 4861, 4863, 4865, 0, 0, 0, 4867, 4869, 4871, - 4873, 4875, 4877, 4879, 4881, 4883, 4885, 4887, 4889, 4891, 4893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 10580, 10583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4895, - 4899, 4903, 4907, 4911, 4915, 4919, 4923, 4927, 4931, 4935, 4939, 4943, - 4947, 4951, 4956, 4961, 4966, 4971, 4976, 4981, 4986, 4991, 4996, 5001, - 5006, 5011, 5016, 5021, 5026, 5034, 0, 5041, 5045, 5049, 5053, 5057, - 5061, 5065, 5069, 5073, 5077, 5081, 5085, 5089, 5093, 5097, 5101, 5105, - 5109, 5113, 5117, 5121, 5125, 5129, 5133, 5137, 5141, 5145, 5149, 5153, - 5157, 5161, 5165, 5169, 5173, 5177, 5181, 5185, 5187, 5189, 5191, 0, 0, - 0, 0, 0, 0, 0, 0, 5193, 5197, 5200, 5203, 5206, 5209, 5212, 5215, 5218, - 5221, 5224, 5227, 5230, 5233, 5236, 5239, 5242, 5244, 5246, 5248, 5250, - 5252, 5254, 5256, 5258, 5260, 5262, 5264, 5266, 5268, 5270, 5273, 5276, - 5279, 5282, 5285, 5288, 5291, 5294, 5297, 5300, 5303, 5306, 5309, 5312, - 5318, 5323, 0, 5326, 5328, 5330, 5332, 5334, 5336, 5338, 5340, 5342, - 5344, 5346, 5348, 5350, 5352, 5354, 5356, 5358, 5360, 5362, 5364, 5366, - 5368, 5370, 5372, 5374, 5376, 5378, 5380, 5382, 5384, 5386, 5388, 5390, - 5392, 5394, 5396, 5398, 5400, 5402, 5404, 5406, 5408, 5410, 5412, 5414, - 5416, 5418, 5420, 5422, 5424, 5427, 5430, 5433, 5436, 5439, 5442, 5445, - 5448, 5451, 5454, 5457, 5460, 5463, 5466, 5469, 5472, 5475, 5478, 5481, - 5484, 5487, 5490, 5493, 5496, 5500, 5504, 5508, 5511, 5515, 5518, 5522, - 5524, 5526, 5528, 5530, 5532, 5534, 5536, 5538, 5540, 5542, 5544, 5546, - 5548, 5550, 5552, 5554, 5556, 5558, 5560, 5562, 5564, 5566, 5568, 5570, - 5572, 5574, 5576, 5578, 5580, 5582, 5584, 5586, 5588, 5590, 5592, 5594, - 5596, 5598, 5600, 5602, 5604, 5606, 5608, 5610, 5612, 5614, 5616, 5619, - 5624, 5629, 5634, 5638, 5643, 5647, 5651, 5657, 5662, 5666, 5670, 5674, - 5679, 5684, 5688, 5692, 5695, 5699, 5704, 5709, 5712, 5718, 5725, 5731, - 5735, 5741, 5747, 5752, 5756, 5760, 5764, 5769, 5775, 5780, 5784, 5788, - 5792, 5795, 5798, 5801, 5804, 5808, 5812, 5818, 5822, 5827, 5833, 5837, - 5840, 5843, 5849, 5854, 5860, 5864, 5870, 5873, 5877, 5881, 5885, 5889, - 5893, 5898, 5902, 5905, 5909, 5913, 5917, 5922, 5926, 5930, 5934, 5940, - 5945, 5948, 5954, 5957, 5962, 5967, 5971, 5975, 5979, 5984, 5987, 5991, - 5996, 5999, 6005, 6009, 6012, 6015, 6018, 6021, 6024, 6027, 6030, 6033, - 6036, 6039, 6043, 6047, 6051, 6055, 6059, 6063, 6067, 6071, 6075, 6079, - 6083, 6087, 6091, 6095, 6099, 6103, 6106, 6109, 6113, 6116, 6119, 6122, - 6126, 6130, 6133, 6136, 6139, 6142, 6145, 6150, 6153, 6156, 6159, 6162, - 6165, 6168, 6171, 6174, 6178, 6183, 6186, 6189, 6192, 6195, 6198, 6201, - 6204, 6208, 6212, 6216, 6220, 6223, 6226, 6229, 6232, 6235, 6238, 6241, - 6244, 6247, 6250, 6254, 6258, 6261, 6265, 6269, 6273, 6276, 6280, 6284, - 6289, 6292, 6296, 6300, 6304, 6308, 6314, 6321, 6324, 6327, 6330, 6333, - 6336, 6339, 6342, 6345, 6348, 6351, 6354, 6357, 6360, 6363, 6366, 6369, - 6372, 6375, 6380, 6383, 6386, 6389, 6394, 6398, 6401, 6404, 6407, 6410, - 6413, 6416, 6419, 6422, 6425, 6428, 6432, 6435, 6438, 6442, 6446, 6449, - 6454, 6458, 6461, 6464, 6467, 6470, 6474, 6478, 6481, 6484, 6487, 6490, - 6493, 6496, 6499, 6502, 6505, 6509, 6513, 6517, 6521, 6525, 6529, 6533, - 6537, 6541, 6545, 6549, 6553, 6557, 6561, 6565, 6569, 6573, 6577, 6581, - 6585, 6589, 6593, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6597, 6599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 6601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6603, 6605, - 6607, 0, 0, 0, 6609, 6611, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6613, 6615, 6617, 6619, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6623, 6625, 6627, 6629, 6631, 6633, 6635, 6637, 6637, 6639, - 6641, 6643, 6645, 6647, 6649, 6651, 6653, 6655, 6657, 6659, 6661, 6663, - 6665, 6667, 6669, 6671, 6673, 6675, 6677, 6679, 6681, 6683, 6685, 6687, - 6689, 6691, 6693, 6695, 6697, 6699, 6701, 6703, 6705, 6707, 6709, 6711, - 6713, 6715, 6717, 6719, 6721, 6723, 6725, 6727, 6729, 6731, 6733, 6735, - 6737, 6739, 6741, 6743, 6745, 6747, 6749, 6751, 6753, 6755, 6757, 6759, - 6761, 6763, 6765, 6767, 6769, 6771, 6773, 6775, 6777, 6779, 6781, 6783, - 6785, 6787, 6789, 6791, 6793, 6795, 6797, 6799, 6801, 6803, 6661, 6805, - 6807, 6809, 6811, 6813, 6815, 6817, 6819, 6821, 6823, 6825, 6827, 6829, - 6831, 6833, 6835, 6837, 6839, 6841, 6843, 6845, 6847, 6849, 6851, 6853, - 6855, 6857, 6859, 6861, 6863, 6865, 6867, 6869, 6871, 6873, 6875, 6877, - 6879, 6881, 6883, 6885, 6887, 6889, 6891, 6893, 6895, 6897, 6899, 6901, - 6903, 6905, 6907, 6909, 6911, 6913, 6915, 6917, 6919, 6921, 6923, 6925, - 6927, 6929, 6931, 6933, 6935, 6937, 6939, 6841, 6941, 6943, 6945, 6947, - 6949, 6951, 6953, 6955, 6809, 6957, 6959, 6961, 6963, 6965, 6967, 6969, - 6971, 6973, 6975, 6977, 6979, 6981, 6983, 6985, 6987, 6989, 6991, 6993, - 6995, 6661, 6997, 6999, 7001, 7003, 7005, 7007, 7009, 7011, 7013, 7015, - 7017, 7019, 7021, 7023, 7025, 7027, 7029, 7031, 7033, 7035, 7037, 7039, - 7041, 7043, 7045, 7047, 7049, 6813, 7051, 7053, 7055, 7057, 7059, 7061, - 7063, 7065, 7067, 7069, 7071, 7073, 7075, 7077, 7079, 7081, 7083, 7085, - 7087, 7089, 7091, 7093, 7095, 7097, 7099, 7101, 7103, 7105, 7107, 7109, - 7111, 7113, 7115, 7117, 7119, 7121, 7123, 7125, 7127, 7129, 7131, 7133, - 7135, 7137, 7139, 7141, 7143, 7145, 7147, 7149, 0, 0, 7151, 0, 7153, 0, - 0, 7155, 7157, 7159, 7161, 7163, 7165, 7167, 7169, 7171, 7173, 0, 7175, - 0, 7177, 0, 0, 7179, 7181, 0, 0, 0, 7183, 7185, 7187, 7189, 7191, 7193, - 7195, 7197, 7199, 7201, 7203, 7205, 7207, 7209, 7211, 7213, 7215, 7217, - 7219, 7221, 7223, 7225, 7227, 7229, 7231, 7233, 7235, 7237, 7239, 7241, - 7243, 7245, 7247, 7249, 7251, 7253, 7255, 7257, 7259, 7261, 7263, 7265, - 7267, 7269, 7271, 6919, 7273, 7275, 7277, 7279, 7281, 7283, 7283, 7285, - 7287, 7289, 7291, 7293, 7295, 7297, 7299, 7179, 7301, 7303, 7305, 7307, - 7309, 7311, 0, 0, 7313, 7315, 7317, 7319, 7321, 7323, 7325, 7327, 7207, - 7329, 7331, 7333, 7151, 7335, 7337, 7339, 7341, 7343, 7345, 7347, 7349, - 7351, 7353, 7355, 7357, 7225, 7359, 7227, 7361, 7363, 7365, 7367, 7369, - 7153, 6703, 7371, 7373, 7375, 6843, 7017, 7377, 7379, 7241, 7381, 7243, - 7383, 7385, 7387, 7157, 7389, 7391, 7393, 7395, 7397, 7159, 7399, 7401, - 7403, 7405, 7407, 7409, 7271, 7411, 7413, 6919, 7415, 7279, 7417, 7419, - 7421, 7423, 7425, 7289, 7427, 7177, 7429, 7291, 6805, 7431, 7293, 7433, - 7297, 7435, 7437, 7439, 7441, 7443, 7301, 7169, 7445, 7303, 7447, 7305, - 7449, 6637, 7451, 7453, 7455, 7457, 7459, 7461, 7463, 7465, 7467, 7469, - 7471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7473, 7476, 7479, 7482, - 7486, 7490, 7493, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7496, 7499, 7502, - 7505, 7508, 0, 0, 0, 0, 0, 7511, 0, 7514, 7517, 7519, 7521, 7523, 7525, - 7527, 7529, 7531, 7533, 7535, 7537, 7540, 7543, 7546, 7549, 7552, 7555, - 7558, 7561, 7564, 7567, 7570, 7573, 0, 7576, 7579, 7582, 7585, 7588, 0, - 7591, 0, 7594, 7597, 0, 7600, 7603, 0, 7606, 7609, 7612, 7615, 7618, - 7621, 7624, 7627, 7630, 7633, 7636, 7638, 7640, 7642, 7644, 7646, 7648, - 7650, 7652, 7654, 7656, 7658, 7660, 7662, 7664, 7666, 7668, 7670, 7672, - 7674, 7676, 7678, 7680, 7682, 7684, 7686, 7688, 7690, 7692, 7694, 7696, - 7698, 7700, 7702, 7704, 7706, 7708, 7710, 7712, 7714, 7716, 7718, 7720, - 7722, 7724, 7726, 7728, 7730, 7732, 7734, 7736, 7738, 7740, 7742, 7744, - 7746, 7748, 7750, 7752, 7754, 7756, 7758, 7760, 7762, 7764, 7766, 7768, - 7770, 7772, 7774, 7776, 7778, 7780, 7782, 7784, 7786, 7788, 7790, 7792, - 7794, 7796, 7798, 7800, 7802, 7804, 7806, 7808, 7810, 7812, 7814, 7816, - 7818, 7820, 7822, 7824, 7826, 7828, 7830, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 7832, 7834, 7836, 7838, 7840, 7842, 7844, 7846, 7848, 7850, 7852, 7854, - 7856, 7858, 7860, 7862, 7864, 7866, 7868, 7870, 7872, 7874, 7876, 7878, - 7881, 7884, 7887, 7890, 7893, 7896, 7899, 7902, 7905, 7908, 7911, 7914, - 7917, 7920, 7923, 7926, 7929, 7932, 7934, 7936, 7938, 7940, 7943, 7946, - 7923, 7949, 7952, 7955, 7958, 7961, 7964, 7967, 7970, 7973, 7976, 7979, - 7982, 7985, 7988, 7991, 7994, 7997, 8000, 8003, 8006, 8009, 8012, 8015, - 8018, 8021, 8024, 8027, 8030, 8033, 8036, 8039, 8042, 8045, 8048, 8051, - 8054, 8057, 8060, 8063, 8066, 8069, 8072, 8075, 8078, 8081, 8084, 8087, - 8090, 8093, 8096, 8099, 8102, 8105, 8108, 8111, 8114, 8117, 8120, 8123, - 8126, 8129, 8132, 8135, 8138, 8141, 8144, 8147, 8150, 8153, 8156, 8159, - 8162, 8165, 8168, 8171, 8174, 8177, 8180, 8183, 8186, 8189, 8192, 8195, - 8198, 8201, 8204, 8207, 8210, 8213, 8216, 8219, 8223, 8227, 8231, 8235, - 8239, 8243, 8246, 8249, 8252, 7926, 8255, 8258, 8261, 8264, 8267, 8270, - 8273, 8276, 8279, 8282, 8285, 8288, 8291, 8294, 8297, 8300, 8303, 8306, - 8309, 8312, 8315, 8318, 8321, 8324, 8327, 8330, 8333, 8336, 8339, 8342, - 8345, 8348, 8351, 8354, 8357, 8360, 8363, 8366, 8369, 8372, 8375, 8378, - 8381, 8384, 8387, 8390, 8393, 8396, 8399, 8402, 8405, 8408, 8411, 8414, - 8417, 8420, 8423, 8426, 8429, 8432, 8435, 8438, 8441, 8444, 8447, 8450, - 8453, 8456, 8459, 8462, 8465, 8468, 8471, 8474, 8477, 8480, 8483, 8486, - 8489, 8492, 8495, 8498, 8501, 8504, 8507, 8510, 8513, 8516, 8519, 8522, - 8525, 8528, 8531, 8534, 8537, 8540, 8543, 8546, 8549, 8552, 8555, 8558, - 8561, 8564, 8567, 8570, 8573, 8576, 8579, 8582, 8585, 8588, 8591, 8594, - 8597, 8600, 8603, 8606, 8609, 8612, 8615, 8618, 8621, 8624, 8627, 8630, - 8633, 8636, 8639, 8642, 8645, 8648, 8651, 8654, 8657, 8660, 8663, 8666, - 8670, 8674, 8678, 8681, 8684, 8687, 8690, 8693, 8696, 8699, 8702, 8705, - 8708, 8711, 8714, 8717, 8720, 8723, 8726, 8729, 8732, 8735, 8738, 8741, - 8744, 8747, 8750, 8753, 8756, 8759, 8762, 8765, 8768, 8771, 8774, 8777, - 8780, 8783, 8786, 8789, 8792, 8795, 8798, 8801, 8804, 8807, 8810, 8813, - 8816, 8819, 8822, 8825, 8828, 8831, 8834, 8837, 8840, 8843, 8846, 8849, - 8852, 8855, 8858, 8861, 8864, 8867, 8870, 8873, 8876, 8879, 8882, 8885, - 8888, 8891, 8894, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8897, 8901, 8905, 8909, 8913, 8917, 8921, 8925, 8929, 8933, 8937, 8941, - 8945, 8949, 8953, 8957, 8961, 8965, 8969, 8973, 8977, 8981, 8985, 8989, - 8993, 8997, 9001, 9005, 9009, 9013, 9017, 9021, 9025, 9029, 9033, 9037, - 9041, 9045, 9049, 9053, 9057, 9061, 9065, 9069, 9073, 9077, 9081, 9085, - 9089, 9093, 9097, 9101, 9105, 9109, 9113, 9117, 9121, 9125, 9129, 9133, - 9137, 9141, 9145, 9149, 0, 0, 9153, 9157, 9161, 9165, 9169, 9173, 9177, - 9181, 9185, 9189, 9193, 9197, 9201, 9205, 9209, 9213, 9217, 9221, 9225, - 9229, 9233, 9237, 9241, 9245, 9249, 9253, 9257, 9261, 9265, 9269, 9273, - 9277, 9281, 9285, 9289, 9293, 9297, 9301, 9305, 9309, 9313, 9317, 9321, - 9325, 9329, 9333, 9337, 9341, 9345, 9349, 9353, 9357, 9361, 9365, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9369, 9373, 9377, 9382, 9387, - 9392, 9397, 9402, 9407, 9412, 9416, 9435, 9444, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9449, 9451, 9453, 9455, 9457, 9459, - 9461, 9463, 9465, 9467, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 9469, 9471, 9473, 9475, 9475, 9477, 9479, 9481, 9483, - 9485, 9487, 9489, 9491, 9493, 9495, 9497, 9499, 9501, 9503, 9505, 9507, - 0, 0, 9509, 9511, 9513, 9513, 9513, 9513, 9515, 9515, 9515, 9517, 9519, - 9521, 0, 9523, 9525, 9527, 9529, 9531, 9533, 9535, 9537, 9539, 9541, - 9543, 9545, 9547, 9549, 9551, 9553, 9555, 9557, 9559, 0, 9561, 9563, - 9565, 9567, 0, 0, 0, 0, 9569, 9572, 9575, 0, 9578, 0, 9581, 9584, 9587, - 9590, 9593, 9596, 9599, 9602, 9605, 9608, 9611, 9613, 9615, 9617, 9619, - 9621, 9623, 9625, 9627, 9629, 9631, 9633, 9635, 9637, 9639, 9641, 9643, - 9645, 9647, 9649, 9651, 9653, 9655, 9657, 9659, 9661, 9663, 9665, 9667, - 9669, 9671, 9673, 9675, 9677, 9679, 9681, 9683, 9685, 9687, 9689, 9691, - 9693, 9695, 9697, 9699, 9701, 9703, 9705, 9707, 9709, 9711, 9713, 9715, - 9717, 9719, 9721, 9723, 9725, 9727, 9729, 9731, 9733, 9735, 9737, 9739, - 9741, 9743, 9745, 9747, 9749, 9751, 9753, 9755, 9757, 9759, 9761, 9763, - 9765, 9767, 9769, 9771, 9773, 9775, 9777, 9779, 9781, 9783, 9785, 9787, - 9789, 9791, 9793, 9795, 9797, 9799, 9801, 9803, 9805, 9807, 9809, 9811, - 9813, 9815, 9817, 9819, 9821, 9823, 9825, 9827, 9829, 9831, 9833, 9835, - 9837, 9839, 9841, 9843, 9845, 9848, 9851, 9854, 9857, 9860, 9863, 9866, - 0, 0, 0, 0, 9869, 9871, 9873, 9875, 9877, 9879, 9881, 9883, 9885, 9887, - 9889, 9891, 9893, 9895, 9897, 9899, 9901, 9903, 9905, 9907, 9909, 9911, - 9913, 9915, 9917, 9919, 9921, 9923, 9925, 9927, 9929, 9931, 9933, 9935, - 9937, 9939, 9941, 9943, 9945, 9947, 9949, 9951, 9953, 9955, 9957, 9959, - 9961, 9963, 9965, 9967, 9969, 9971, 9973, 9975, 9977, 9979, 9981, 9983, - 9985, 9987, 9989, 9991, 9993, 9995, 9997, 9999, 10001, 10003, 10005, - 10007, 10009, 10011, 10013, 10015, 10017, 10019, 10021, 10023, 10025, - 10027, 10029, 10031, 10033, 10035, 10037, 10039, 10041, 10043, 10045, - 10047, 10049, 10051, 10053, 10055, 10057, 10059, 10061, 10063, 10065, - 10067, 10069, 10071, 10073, 10075, 10077, 10079, 10081, 10083, 10085, - 10087, 10089, 10091, 10093, 10095, 10097, 10099, 10101, 10103, 10105, - 10107, 10109, 10111, 10113, 10115, 10117, 10119, 10121, 10123, 10125, - 10127, 10129, 10131, 10133, 10135, 10137, 10139, 10141, 10143, 10145, - 10147, 10149, 10151, 10153, 10155, 10157, 10159, 10161, 10163, 10165, - 10167, 10169, 10171, 10173, 10175, 10177, 10179, 10181, 10183, 10185, - 10187, 10189, 10191, 10193, 10195, 10197, 10199, 10201, 10203, 10205, - 10207, 10209, 10211, 10213, 10215, 10217, 10219, 10221, 10223, 10225, - 10227, 10229, 10231, 10233, 10235, 10237, 10239, 10241, 10243, 10245, - 10247, 0, 0, 0, 10249, 10251, 10253, 10255, 10257, 10259, 0, 0, 10261, - 10263, 10265, 10267, 10269, 10271, 0, 0, 10273, 10275, 10277, 10279, - 10281, 10283, 0, 0, 10285, 10287, 10289, 0, 0, 0, 10291, 10293, 10295, - 10297, 10299, 10301, 10303, 0, 10305, 10307, 10309, 10311, 10313, 10315, - 10317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10319, - 10321, 10323, 10325, 10327, 0, 10329, 10331, 10333, 10335, 10337, 10339, - 10341, 10343, 10345, 10347, 10349, 10351, 10353, 10355, 10357, 10359, - 10361, 10363, 10365, 10367, 10369, 10371, 10373, 10375, 10377, 10379, - 10381, 10383, 10385, 10387, 10389, 10391, 10393, 10395, 10397, 10399, - 10401, 10403, 10405, 10407, 10409, 10411, 0, 10413, 10415, 10417, 10419, - 10421, 10423, 10425, 10427, 10429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10431, 0, 10434, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 10437, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10440, 10443, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 10446, 10449, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 10452, 10455, 0, 10458, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10461, 10464, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10467, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10470, 10473, - 10476, 10479, 10482, 10485, 10488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 10491, 10494, 10497, 10500, 10503, 10506, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 10509, 3253, 3192, 3289, 3257, 3259, 10511, 3212, 3218, - 10513, 10515, 3220, 3261, 3224, 10517, 3229, 3231, 3233, 10519, 10521, - 10523, 10525, 10527, 10529, 10531, 3245, 10533, 10535, 10537, 3291, 3255, - 10539, 3210, 3214, 3273, 3293, 10541, 3222, 10543, 10545, 3263, 10547, - 10549, 10551, 10553, 10555, 10557, 10559, 10561, 10563, 10565, 10567, - 10509, 3253, 3192, 3289, 3257, 3259, 10511, 3212, 3218, 10513, 10515, - 3220, 3261, 3224, 10517, 3229, 3231, 3233, 10519, 10521, 10523, 10525, - 10527, 10529, 10531, 3245, 10533, 10535, 10537, 3291, 3255, 10539, 3210, - 0, 3273, 3293, 10541, 3222, 10543, 10545, 3263, 10547, 10549, 10551, - 10553, 10555, 10557, 10559, 10561, 10563, 10565, 10567, 10509, 3253, - 3192, 3289, 3257, 3259, 10511, 3212, 3218, 10513, 10515, 3220, 3261, - 3224, 10517, 3229, 3231, 3233, 10519, 10521, 10523, 10525, 10527, 10529, - 10531, 3245, 10533, 10535, 10537, 3291, 3255, 10539, 3210, 3214, 3273, - 3293, 10541, 3222, 10543, 10545, 3263, 10547, 10549, 10551, 10553, 10555, - 10557, 10559, 10561, 10563, 10565, 10567, 10509, 0, 3192, 3289, 0, 0, - 10511, 0, 0, 10513, 10515, 0, 0, 3224, 10517, 3229, 3231, 0, 10519, - 10521, 10523, 10525, 10527, 10529, 10531, 3245, 10533, 10535, 10537, - 3291, 0, 10539, 0, 3214, 3273, 3293, 10541, 3222, 10543, 10545, 0, 10547, - 10549, 10551, 10553, 10555, 10557, 10559, 10561, 10563, 10565, 10567, - 10509, 3253, 3192, 3289, 3257, 3259, 10511, 3212, 3218, 10513, 10515, - 3220, 3261, 3224, 10517, 3229, 3231, 3233, 10519, 10521, 10523, 10525, - 10527, 10529, 10531, 3245, 10533, 10535, 10537, 3291, 3255, 10539, 3210, - 3214, 3273, 3293, 10541, 3222, 10543, 10545, 3263, 10547, 10549, 10551, - 10553, 10555, 10557, 10559, 10561, 10563, 10565, 10567, 10509, 3253, 0, - 3289, 3257, 3259, 10511, 0, 0, 10513, 10515, 3220, 3261, 3224, 10517, - 3229, 3231, 0, 10519, 10521, 10523, 10525, 10527, 10529, 10531, 0, 10533, - 10535, 10537, 3291, 3255, 10539, 3210, 3214, 3273, 3293, 10541, 3222, - 10543, 10545, 3263, 10547, 10549, 10551, 10553, 10555, 10557, 10559, - 10561, 10563, 10565, 10567, 10509, 3253, 0, 3289, 3257, 3259, 10511, 0, - 3218, 10513, 10515, 3220, 3261, 0, 10517, 0, 0, 0, 10519, 10521, 10523, - 10525, 10527, 10529, 10531, 0, 10533, 10535, 10537, 3291, 3255, 10539, - 3210, 3214, 3273, 3293, 10541, 3222, 10543, 10545, 3263, 10547, 10549, - 10551, 10553, 10555, 10557, 10559, 10561, 10563, 10565, 10567, 10509, - 3253, 3192, 3289, 3257, 3259, 10511, 3212, 3218, 10513, 10515, 3220, - 3261, 3224, 10517, 3229, 3231, 3233, 10519, 10521, 10523, 10525, 10527, - 10529, 10531, 3245, 10533, 10535, 10537, 3291, 3255, 10539, 3210, 3214, - 3273, 3293, 10541, 3222, 10543, 10545, 3263, 10547, 10549, 10551, 10553, - 10555, 10557, 10559, 10561, 10563, 10565, 10567, 10509, 3253, 3192, 3289, - 3257, 3259, 10511, 3212, 3218, 10513, 10515, 3220, 3261, 3224, 10517, - 3229, 3231, 3233, 10519, 10521, 10523, 10525, 10527, 10529, 10531, 3245, - 10533, 10535, 10537, 3291, 3255, 10539, 3210, 3214, 3273, 3293, 10541, - 3222, 10543, 10545, 3263, 10547, 10549, 10551, 10553, 10555, 10557, - 10559, 10561, 10563, 10565, 10567, 10509, 3253, 3192, 3289, 3257, 3259, - 10511, 3212, 3218, 10513, 10515, 3220, 3261, 3224, 10517, 3229, 3231, - 3233, 10519, 10521, 10523, 10525, 10527, 10529, 10531, 3245, 10533, - 10535, 10537, 3291, 3255, 10539, 3210, 3214, 3273, 3293, 10541, 3222, - 10543, 10545, 3263, 10547, 10549, 10551, 10553, 10555, 10557, 10559, - 10561, 10563, 10565, 10567, 10509, 3253, 3192, 3289, 3257, 3259, 10511, - 3212, 3218, 10513, 10515, 3220, 3261, 3224, 10517, 3229, 3231, 3233, - 10519, 10521, 10523, 10525, 10527, 10529, 10531, 3245, 10533, 10535, - 10537, 3291, 3255, 10539, 3210, 3214, 3273, 3293, 10541, 3222, 10543, - 10545, 3263, 10547, 10549, 10551, 10553, 10555, 10557, 10559, 10561, - 10563, 10565, 10567, 10509, 3253, 3192, 3289, 3257, 3259, 10511, 3212, - 3218, 10513, 10515, 3220, 3261, 3224, 10517, 3229, 3231, 3233, 10519, - 10521, 10523, 10525, 10527, 10529, 10531, 3245, 10533, 10535, 10537, - 3291, 3255, 10539, 3210, 3214, 3273, 3293, 10541, 3222, 10543, 10545, - 3263, 10547, 10549, 10551, 10553, 10555, 10557, 10559, 10561, 10563, - 10565, 10567, 10509, 3253, 3192, 3289, 3257, 3259, 10511, 3212, 3218, - 10513, 10515, 3220, 3261, 3224, 10517, 3229, 3231, 3233, 10519, 10521, - 10523, 10525, 10527, 10529, 10531, 3245, 10533, 10535, 10537, 3291, 3255, - 10539, 3210, 3214, 3273, 3293, 10541, 3222, 10543, 10545, 3263, 10547, - 10549, 10551, 10553, 10555, 10557, 10559, 10561, 10563, 10565, 10567, - 10569, 10571, 0, 0, 10573, 10575, 3283, 10577, 10579, 10581, 10583, - 10585, 10587, 10589, 10591, 10593, 10595, 10597, 10599, 3285, 10601, - 10603, 10605, 10607, 10609, 10611, 10613, 10615, 10617, 10619, 10621, - 10623, 3281, 10625, 10627, 10629, 10631, 10633, 10635, 10637, 10639, - 10641, 10643, 10645, 10647, 3279, 10649, 10651, 10653, 10655, 10657, - 10659, 10661, 10663, 10665, 10667, 10669, 10671, 10673, 10675, 10677, - 10679, 10573, 10575, 3283, 10577, 10579, 10581, 10583, 10585, 10587, - 10589, 10591, 10593, 10595, 10597, 10599, 3285, 10601, 10603, 10605, - 10607, 10609, 10611, 10613, 10615, 10617, 10619, 10621, 10623, 3281, - 10625, 10627, 10629, 10631, 10633, 10635, 10637, 10639, 10641, 10643, - 10645, 10647, 3279, 10649, 10651, 10653, 10655, 10657, 10659, 10661, - 10663, 10665, 10667, 10669, 10671, 10673, 10675, 10677, 10679, 10573, - 10575, 3283, 10577, 10579, 10581, 10583, 10585, 10587, 10589, 10591, - 10593, 10595, 10597, 10599, 3285, 10601, 10603, 10605, 10607, 10609, - 10611, 10613, 10615, 10617, 10619, 10621, 10623, 3281, 10625, 10627, - 10629, 10631, 10633, 10635, 10637, 10639, 10641, 10643, 10645, 10647, - 3279, 10649, 10651, 10653, 10655, 10657, 10659, 10661, 10663, 10665, - 10667, 10669, 10671, 10673, 10675, 10677, 10679, 10573, 10575, 3283, - 10577, 10579, 10581, 10583, 10585, 10587, 10589, 10591, 10593, 10595, - 10597, 10599, 3285, 10601, 10603, 10605, 10607, 10609, 10611, 10613, - 10615, 10617, 10619, 10621, 10623, 3281, 10625, 10627, 10629, 10631, - 10633, 10635, 10637, 10639, 10641, 10643, 10645, 10647, 3279, 10649, - 10651, 10653, 10655, 10657, 10659, 10661, 10663, 10665, 10667, 10669, - 10671, 10673, 10675, 10677, 10679, 10573, 10575, 3283, 10577, 10579, - 10581, 10583, 10585, 10587, 10589, 10591, 10593, 10595, 10597, 10599, - 3285, 10601, 10603, 10605, 10607, 10609, 10611, 10613, 10615, 10617, - 10619, 10621, 10623, 3281, 10625, 10627, 10629, 10631, 10633, 10635, - 10637, 10639, 10641, 10643, 10645, 10647, 3279, 10649, 10651, 10653, - 10655, 10657, 10659, 10661, 10663, 10665, 10667, 10669, 10671, 10673, - 10675, 10677, 10679, 10681, 10683, 0, 0, 10685, 10687, 10689, 10691, - 10693, 10695, 10697, 10699, 10701, 10703, 10685, 10687, 10689, 10691, - 10693, 10695, 10697, 10699, 10701, 10703, 10685, 10687, 10689, 10691, - 10693, 10695, 10697, 10699, 10701, 10703, 10685, 10687, 10689, 10691, - 10693, 10695, 10697, 10699, 10701, 10703, 10685, 10687, 10689, 10691, - 10693, 10695, 10697, 10699, 10701, 10703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10705, 10707, 10709, 10711, - 10713, 10715, 10717, 10719, 10721, 10723, 10725, 10727, 10729, 10731, - 10733, 10735, 10737, 10739, 10741, 10743, 10745, 10747, 10749, 10751, - 10753, 10755, 10757, 10759, 10761, 10763, 10765, 10767, 10769, 10771, - 10773, 10775, 10777, 10779, 10781, 10783, 10785, 10787, 10789, 10791, - 10793, 10795, 10797, 10799, 10801, 10803, 10805, 10807, 10809, 10811, - 10813, 10815, 10817, 10819, 10821, 10823, 10825, 10827, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10829, 10831, 10833, 10835, 0, 10837, - 10839, 10841, 10843, 10845, 10847, 10849, 10851, 10853, 10855, 10857, - 10859, 10861, 10863, 10865, 10867, 10869, 10871, 10873, 10875, 10877, - 10879, 10881, 10883, 10885, 10887, 10889, 0, 10831, 10833, 0, 10891, 0, - 0, 10841, 0, 10845, 10847, 10849, 10851, 10853, 10855, 10857, 10859, - 10861, 10863, 0, 10867, 10869, 10871, 10873, 0, 10877, 0, 10881, 0, 0, 0, - 0, 0, 0, 10833, 0, 0, 0, 0, 10841, 0, 10845, 0, 10849, 0, 10853, 10855, - 10857, 0, 10861, 10863, 0, 10867, 0, 0, 10873, 0, 10877, 0, 10881, 0, - 10885, 0, 10889, 0, 10831, 10833, 0, 10891, 0, 0, 10841, 10843, 10845, - 10847, 0, 10851, 10853, 10855, 10857, 10859, 10861, 10863, 0, 10867, - 10869, 10871, 10873, 0, 10877, 10879, 10881, 10883, 0, 10887, 0, 10829, - 10831, 10833, 10835, 10891, 10837, 10839, 10841, 10843, 10845, 0, 10849, - 10851, 10853, 10855, 10857, 10859, 10861, 10863, 10865, 10867, 10869, - 10871, 10873, 10875, 10877, 10879, 10881, 0, 0, 0, 0, 0, 10831, 10833, - 10835, 0, 10837, 10839, 10841, 10843, 10845, 0, 10849, 10851, 10853, - 10855, 10857, 10859, 10861, 10863, 10865, 10867, 10869, 10871, 10873, - 10875, 10877, 10879, 10881, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 10893, 10896, 10899, 10902, 10905, 10908, 10911, 10914, - 10917, 10920, 10923, 0, 0, 0, 0, 0, 10926, 10930, 10934, 10938, 10942, - 10946, 10950, 10954, 10958, 10962, 10966, 10970, 10974, 10978, 10982, - 10986, 10990, 10994, 10998, 11002, 11006, 11010, 11014, 11018, 11022, - 11026, 11030, 3926, 3956, 11034, 11037, 0, 11040, 11042, 11044, 11046, - 11048, 11050, 11052, 11054, 11056, 11058, 11060, 11062, 11064, 11066, - 11068, 11070, 11072, 11074, 11076, 11078, 11080, 11082, 11084, 11086, - 11088, 11090, 11092, 6348, 11095, 11098, 11101, 11105, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11108, 11111, - 11114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11117, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 11120, 11123, 11126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 11128, 11130, 11132, 11134, 11136, 11138, 11140, 11142, 11144, - 11146, 11148, 11150, 11152, 11154, 11156, 11158, 11160, 11162, 11164, - 11166, 11168, 11170, 11172, 11174, 11176, 11178, 11180, 11182, 11184, - 11186, 11188, 11190, 11192, 11194, 11196, 11198, 11200, 11202, 11204, - 11206, 11208, 11210, 11212, 11214, 0, 0, 0, 0, 11216, 11220, 11224, - 11228, 11232, 11236, 11240, 11244, 11248, 0, 0, 0, 0, 0, 0, 0, 11252, - 11254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10685, 10687, 10689, - 10691, 10693, 10695, 10697, 10699, 10701, 10703, 0, 0, 0, 0, 0, 0, 11256, - 11258, 11260, 11262, 11264, 7195, 11266, 11268, 11270, 11272, 7197, - 11274, 11276, 11278, 7199, 11280, 11282, 11284, 11286, 11288, 11290, - 11292, 11294, 11296, 11298, 11300, 11302, 7315, 11304, 11306, 11308, - 11310, 11312, 11314, 11316, 11318, 11320, 7325, 7201, 7203, 7327, 11322, - 11324, 6817, 11326, 7205, 11328, 11330, 11332, 11334, 11334, 11334, - 11336, 11338, 11340, 11342, 11344, 11346, 11348, 11350, 11352, 11354, - 11356, 11358, 11360, 11362, 11364, 11366, 11368, 11370, 11370, 7331, - 11372, 11374, 11376, 11378, 7209, 11380, 11382, 11384, 7123, 11386, - 11388, 11390, 11392, 11394, 11396, 11398, 11400, 11402, 11404, 11406, - 11408, 11410, 11412, 11414, 11416, 11418, 11420, 11422, 11424, 11426, - 11428, 11430, 11432, 11434, 11436, 11436, 11438, 11440, 11442, 6809, - 11444, 11446, 11448, 11450, 11452, 11454, 11456, 11458, 7219, 11460, - 11462, 11464, 11466, 11468, 11470, 11472, 11474, 11476, 11478, 11480, - 11482, 11484, 11486, 11488, 11490, 11492, 11494, 11496, 11498, 11500, - 6701, 11502, 11504, 11506, 11506, 11508, 11510, 11510, 11512, 11514, - 11516, 11518, 11520, 11522, 11524, 11526, 11528, 11530, 11532, 11534, - 11536, 7221, 11538, 11540, 11542, 11544, 7355, 11544, 11546, 7225, 11548, - 11550, 11552, 11554, 7227, 6647, 11556, 11558, 11560, 11562, 11564, - 11566, 11568, 11570, 11572, 11574, 11576, 11578, 11580, 11582, 11584, - 11586, 11588, 11590, 11592, 11594, 11596, 11598, 7229, 11600, 11602, - 11604, 11606, 11608, 11610, 7233, 11612, 11614, 11616, 11618, 11620, - 11622, 11624, 11626, 6703, 7371, 11628, 11630, 11632, 11634, 11636, - 11638, 11640, 11642, 7235, 11644, 11646, 11648, 11650, 7457, 11652, - 11654, 11656, 11658, 11660, 11662, 11664, 11666, 11668, 11670, 11672, - 11674, 11676, 6843, 11678, 11680, 11682, 11684, 11686, 11688, 11690, - 11692, 11694, 11696, 11698, 7237, 7017, 11700, 11702, 11704, 11706, - 11708, 11710, 11712, 11714, 7379, 11716, 11718, 11720, 11722, 11724, - 11726, 11728, 11730, 7381, 11732, 11734, 11736, 11738, 11740, 11742, - 11744, 11746, 11748, 11750, 11752, 11754, 7385, 11756, 11758, 11760, - 11762, 11764, 11766, 11768, 11770, 11772, 11774, 11776, 11776, 11778, - 11780, 7389, 11782, 11784, 11786, 11788, 11790, 11792, 11794, 6815, - 11796, 11798, 11800, 11802, 11804, 11806, 11808, 7401, 11810, 11812, - 11814, 11816, 11818, 11820, 11820, 7403, 7461, 11822, 11824, 11826, - 11828, 11830, 6739, 7407, 11832, 11834, 7259, 11836, 11838, 7167, 11840, - 11842, 7267, 11844, 11846, 11848, 11850, 11850, 11852, 11854, 11856, - 11858, 11860, 11862, 11864, 11866, 11868, 11870, 11872, 11874, 11876, - 11878, 11880, 11882, 11884, 11886, 11888, 11890, 11892, 11894, 11896, - 11898, 11900, 11902, 11904, 7279, 11906, 11908, 11910, 11912, 11914, - 11916, 11918, 11920, 11922, 11924, 11926, 11928, 11930, 11932, 11934, - 11936, 11508, 11938, 11940, 11942, 11944, 11946, 11948, 11950, 11952, - 11954, 11956, 11958, 11960, 6851, 11962, 11964, 11966, 11968, 11970, - 11972, 7285, 11974, 11976, 11978, 11980, 11982, 11984, 11986, 11988, - 11990, 11992, 11994, 11996, 11998, 12000, 12002, 12004, 12006, 12008, - 12010, 12012, 6729, 12014, 12016, 12018, 12020, 12022, 12024, 7421, - 12026, 12028, 12030, 12032, 12034, 12036, 12038, 12040, 12042, 12044, - 12046, 12048, 12050, 12052, 12054, 12056, 12058, 12060, 12062, 12064, - 7431, 7433, 12066, 12068, 12070, 12072, 12074, 12076, 12078, 12080, - 12082, 12084, 12086, 12088, 12090, 7435, 12092, 12094, 12096, 12098, - 12100, 12102, 12104, 12106, 12108, 12110, 12112, 12114, 12116, 12118, - 12120, 12122, 12124, 12126, 12128, 12130, 12132, 12134, 12136, 12138, - 12140, 12142, 12144, 12146, 12148, 12150, 7447, 7447, 12152, 12154, - 12156, 12158, 12160, 12162, 12164, 12166, 12168, 12170, 7449, 12172, - 12174, 12176, 12178, 12180, 12182, 12184, 12186, 12188, 12190, 12192, - 12194, 12196, 12198, 12200, 12202, 12204, 12206, 12208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10586, 10589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10592, 10595, 0, + 10598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 10601, 10604, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10607, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10610, 10613, 10616, 10619, 10622, + 10625, 10628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10631, 10634, + 10637, 10640, 10643, 10646, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10649, 10651, 10653, 10655, 10657, 10659, 10661, 10663, 10665, 10667, + 10669, 10671, 10673, 10675, 10677, 10679, 10681, 10683, 10685, 10687, + 10689, 10691, 10693, 10695, 10697, 10699, 10701, 10703, 10705, 10707, + 10709, 10711, 10713, 10715, 10717, 10719, 10721, 10723, 10725, 10727, + 10729, 10731, 10733, 10735, 10737, 10739, 10741, 10743, 10745, 10747, + 10749, 10751, 10753, 10755, 10757, 10759, 10761, 10763, 10765, 10767, + 10769, 10771, 10773, 10775, 10777, 10779, 10781, 10783, 10785, 10787, + 10789, 10791, 10793, 10795, 10797, 10799, 10801, 10803, 10805, 10807, + 10809, 10811, 10813, 10815, 10817, 0, 10819, 10821, 10823, 10825, 10827, + 10829, 10831, 10833, 10835, 10837, 10839, 10841, 10843, 10845, 10847, + 10849, 10851, 10853, 10855, 10857, 10859, 10861, 10863, 10865, 10867, + 10869, 10871, 10873, 10875, 10877, 10879, 10881, 10883, 10885, 10887, + 10889, 10891, 10893, 10895, 10897, 10899, 10901, 10903, 10905, 10907, + 10909, 10911, 10913, 10915, 10917, 10919, 10921, 10923, 10925, 10927, + 10929, 10931, 10933, 10935, 10937, 10939, 10941, 10943, 10945, 10947, + 10949, 10951, 10953, 10955, 10957, 10959, 0, 10961, 10963, 0, 0, 10965, + 0, 0, 10967, 10969, 0, 0, 10971, 10973, 10975, 10977, 0, 10979, 10981, + 10983, 10985, 10987, 10989, 10991, 10993, 10995, 10997, 10999, 11001, 0, + 11003, 0, 11005, 11007, 11009, 11011, 11013, 11015, 11017, 0, 11019, + 11021, 11023, 11025, 11027, 11029, 11031, 11033, 11035, 11037, 11039, + 11041, 11043, 11045, 11047, 11049, 11051, 11053, 11055, 11057, 11059, + 11061, 11063, 11065, 11067, 11069, 11071, 11073, 11075, 11077, 11079, + 11081, 11083, 11085, 11087, 11089, 11091, 11093, 11095, 11097, 11099, + 11101, 11103, 11105, 11107, 11109, 11111, 11113, 11115, 11117, 11119, + 11121, 11123, 11125, 11127, 11129, 11131, 11133, 11135, 11137, 11139, + 11141, 11143, 11145, 11147, 0, 11149, 11151, 11153, 11155, 0, 0, 11157, + 11159, 11161, 11163, 11165, 11167, 11169, 11171, 0, 11173, 11175, 11177, + 11179, 11181, 11183, 11185, 0, 11187, 11189, 11191, 11193, 11195, 11197, + 11199, 11201, 11203, 11205, 11207, 11209, 11211, 11213, 11215, 11217, + 11219, 11221, 11223, 11225, 11227, 11229, 11231, 11233, 11235, 11237, + 11239, 11241, 0, 11243, 11245, 11247, 11249, 0, 11251, 11253, 11255, + 11257, 11259, 0, 11261, 0, 0, 0, 11263, 11265, 11267, 11269, 11271, + 11273, 11275, 0, 11277, 11279, 11281, 11283, 11285, 11287, 11289, 11291, + 11293, 11295, 11297, 11299, 11301, 11303, 11305, 11307, 11309, 11311, + 11313, 11315, 11317, 11319, 11321, 11323, 11325, 11327, 11329, 11331, + 11333, 11335, 11337, 11339, 11341, 11343, 11345, 11347, 11349, 11351, + 11353, 11355, 11357, 11359, 11361, 11363, 11365, 11367, 11369, 11371, + 11373, 11375, 11377, 11379, 11381, 11383, 11385, 11387, 11389, 11391, + 11393, 11395, 11397, 11399, 11401, 11403, 11405, 11407, 11409, 11411, + 11413, 11415, 11417, 11419, 11421, 11423, 11425, 11427, 11429, 11431, + 11433, 11435, 11437, 11439, 11441, 11443, 11445, 11447, 11449, 11451, + 11453, 11455, 11457, 11459, 11461, 11463, 11465, 11467, 11469, 11471, + 11473, 11475, 11477, 11479, 11481, 11483, 11485, 11487, 11489, 11491, + 11493, 11495, 11497, 11499, 11501, 11503, 11505, 11507, 11509, 11511, + 11513, 11515, 11517, 11519, 11521, 11523, 11525, 11527, 11529, 11531, + 11533, 11535, 11537, 11539, 11541, 11543, 11545, 11547, 11549, 11551, + 11553, 11555, 11557, 11559, 11561, 11563, 11565, 11567, 11569, 11571, + 11573, 11575, 11577, 11579, 11581, 11583, 11585, 11587, 11589, 11591, + 11593, 11595, 11597, 11599, 11601, 11603, 11605, 11607, 11609, 11611, + 11613, 11615, 11617, 11619, 11621, 11623, 11625, 11627, 11629, 11631, + 11633, 11635, 11637, 11639, 11641, 11643, 11645, 11647, 11649, 11651, + 11653, 11655, 11657, 11659, 11661, 11663, 11665, 11667, 11669, 11671, + 11673, 11675, 11677, 11679, 11681, 11683, 11685, 11687, 11689, 11691, + 11693, 11695, 11697, 11699, 11701, 11703, 11705, 11707, 11709, 11711, + 11713, 11715, 11717, 11719, 11721, 11723, 11725, 11727, 11729, 11731, + 11733, 11735, 11737, 11739, 11741, 11743, 11745, 11747, 11749, 11751, + 11753, 11755, 11757, 11759, 11761, 11763, 11765, 11767, 11769, 11771, + 11773, 11775, 11777, 11779, 11781, 11783, 11785, 11787, 11789, 11791, + 11793, 11795, 11797, 11799, 11801, 11803, 11805, 11807, 11809, 11811, + 11813, 11815, 11817, 11819, 11821, 11823, 11825, 11827, 11829, 11831, + 11833, 11835, 11837, 11839, 11841, 11843, 11845, 11847, 11849, 11851, + 11853, 11855, 11857, 11859, 11861, 11863, 11865, 11867, 11869, 11871, + 11873, 11875, 11877, 11879, 11881, 11883, 11885, 11887, 11889, 11891, + 11893, 11895, 11897, 11899, 11901, 11903, 11905, 11907, 11909, 11911, + 11913, 11915, 11917, 11919, 11921, 11923, 11925, 11927, 11929, 11931, + 11933, 11935, 11937, 11939, 11941, 11943, 11945, 11947, 11949, 11951, + 11953, 11955, 0, 0, 11957, 11959, 11961, 11963, 11965, 11967, 11969, + 11971, 11973, 11975, 11977, 11979, 11981, 11983, 11985, 11987, 11989, + 11991, 11993, 11995, 11997, 11999, 12001, 12003, 12005, 12007, 12009, + 12011, 12013, 12015, 12017, 12019, 12021, 12023, 12025, 12027, 12029, + 12031, 12033, 12035, 12037, 12039, 12041, 12043, 12045, 12047, 12049, + 12051, 12053, 12055, 12057, 12059, 12061, 12063, 12065, 12067, 12069, + 12071, 12073, 12075, 12077, 12079, 12081, 12083, 12085, 12087, 12089, + 12091, 12093, 12095, 12097, 12099, 12101, 12103, 12105, 12107, 12109, + 12111, 12113, 12115, 12117, 12119, 12121, 12123, 12125, 12127, 12129, + 12131, 12133, 12135, 12137, 12139, 12141, 12143, 12145, 12147, 12149, + 12151, 12153, 12155, 12157, 12159, 12161, 12163, 12165, 12167, 12169, + 12171, 12173, 12175, 12177, 12179, 12181, 12183, 12185, 12187, 12189, + 12191, 12193, 12195, 12197, 12199, 12201, 12203, 12205, 12207, 12209, + 12211, 12213, 12215, 12217, 12219, 12221, 12223, 12225, 12227, 12229, + 12231, 12233, 12235, 12237, 12239, 12241, 12243, 12245, 12247, 12249, + 12251, 12253, 12255, 12257, 12259, 12261, 12263, 12265, 12267, 12269, + 12271, 12273, 12275, 12277, 12279, 12281, 12283, 12285, 12287, 12289, + 12291, 12293, 12295, 12297, 12299, 12301, 12303, 12305, 12307, 12309, + 12311, 12313, 12315, 12317, 12319, 12321, 12323, 12325, 12327, 12329, + 12331, 12333, 12335, 12337, 12339, 12341, 12343, 12345, 12347, 12349, + 12351, 12353, 12355, 12357, 12359, 12361, 12363, 12365, 12367, 12369, + 12371, 12373, 12375, 12377, 12379, 12381, 12383, 12385, 12387, 12389, + 12391, 12393, 12395, 12397, 12399, 12401, 12403, 12405, 12407, 12409, + 12411, 12413, 12415, 12417, 12419, 12421, 12423, 12425, 12427, 12429, + 12431, 12433, 12435, 12437, 12439, 12441, 12443, 12445, 12447, 12449, + 12451, 12453, 12455, 12457, 12459, 12461, 12463, 12465, 12467, 12469, + 12471, 12473, 12475, 12477, 12479, 12481, 12483, 12485, 12487, 12489, + 12491, 12493, 12495, 12497, 12499, 12501, 12503, 12505, 12507, 12509, + 12511, 12513, 12515, 12517, 12519, 12521, 12523, 12525, 12527, 12529, + 12531, 12533, 12535, 12537, 12539, 0, 0, 12541, 12543, 12545, 12547, + 12549, 12551, 12553, 12555, 12557, 12559, 12561, 12563, 12565, 12567, + 12569, 12571, 12573, 12575, 12577, 12579, 12581, 12583, 12585, 12587, + 12589, 12591, 12593, 12595, 12597, 12599, 12601, 12603, 12605, 12607, + 12609, 12611, 12613, 12615, 12617, 12619, 12621, 12623, 12625, 12627, + 12629, 12631, 12633, 12635, 12637, 12639, 12641, 12643, 12645, 12647, 0, + 12649, 12651, 12653, 12655, 12657, 12659, 12661, 12663, 12665, 12667, + 12669, 12671, 12673, 12675, 12677, 12679, 12681, 12683, 12685, 12687, + 12689, 12691, 12693, 12695, 12697, 12699, 12701, 0, 12703, 12705, 0, + 12707, 0, 0, 12709, 0, 12711, 12713, 12715, 12717, 12719, 12721, 12723, + 12725, 12727, 12729, 0, 12731, 12733, 12735, 12737, 0, 12739, 0, 12741, + 0, 0, 0, 0, 0, 0, 12743, 0, 0, 0, 0, 12745, 0, 12747, 0, 12749, 0, 12751, + 12753, 12755, 0, 12757, 12759, 0, 12761, 0, 0, 12763, 0, 12765, 0, 12767, + 0, 12769, 0, 12771, 0, 12773, 12775, 0, 12777, 0, 0, 12779, 12781, 12783, + 12785, 0, 12787, 12789, 12791, 12793, 12795, 12797, 12799, 0, 12801, + 12803, 12805, 12807, 0, 12809, 12811, 12813, 12815, 0, 12817, 0, 12819, + 12821, 12823, 12825, 12827, 12829, 12831, 12833, 12835, 12837, 0, 12839, + 12841, 12843, 12845, 12847, 12849, 12851, 12853, 12855, 12857, 12859, + 12861, 12863, 12865, 12867, 12869, 12871, 0, 0, 0, 0, 0, 12873, 12875, + 12877, 0, 12879, 12881, 12883, 12885, 12887, 0, 12889, 12891, 12893, + 12895, 12897, 12899, 12901, 12903, 12905, 12907, 12909, 12911, 12913, + 12915, 12917, 12919, 12921, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 12923, 12926, 12929, 12932, 12935, 12938, 12941, 12944, + 12947, 12950, 12953, 0, 0, 0, 0, 0, 12956, 12960, 12964, 12968, 12972, + 12976, 12980, 12984, 12988, 12992, 12996, 13000, 13004, 13008, 13012, + 13016, 13020, 13024, 13028, 13032, 13036, 13040, 13044, 13048, 13052, + 13056, 13060, 13064, 13066, 13068, 13071, 0, 13074, 13076, 13078, 13080, + 13082, 13084, 13086, 13088, 13090, 13092, 13094, 13096, 13098, 13100, + 13102, 13104, 13106, 13108, 13110, 13112, 13114, 13116, 13118, 13120, + 13122, 13124, 13126, 13129, 13132, 13135, 13138, 13142, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13145, 13148, + 13151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13154, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 13157, 13160, 13163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 13165, 13167, 13169, 13171, 13173, 13175, 13177, 13179, 13181, + 13183, 13185, 13187, 13189, 13191, 13193, 13195, 13197, 13199, 13201, + 13203, 13205, 13207, 13209, 13211, 13213, 13215, 13217, 13219, 13221, + 13223, 13225, 13227, 13229, 13231, 13233, 13235, 13237, 13239, 13241, + 13243, 13245, 13247, 13249, 13251, 0, 0, 0, 0, 13253, 13257, 13261, + 13265, 13269, 13273, 13277, 13281, 13285, 0, 0, 0, 0, 0, 0, 0, 13289, + 13291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13293, 13295, 13297, + 13299, 13301, 13303, 13305, 13307, 13309, 13311, 0, 0, 0, 0, 0, 0, 13313, + 13315, 13317, 13319, 13321, 13323, 13325, 13327, 13329, 13331, 13333, + 13335, 13337, 13339, 13341, 13343, 13345, 13347, 13349, 13351, 13353, + 13355, 13357, 13359, 13361, 13363, 13365, 13367, 13369, 13371, 13373, + 13375, 13377, 13379, 13381, 13383, 13385, 13387, 13389, 13391, 13393, + 13395, 13397, 13399, 13401, 13403, 13405, 13407, 13409, 13411, 13413, + 13415, 13417, 13419, 13421, 13423, 13425, 13427, 13429, 13431, 13433, + 13435, 13437, 13439, 13441, 13443, 13445, 13447, 13449, 13451, 13453, + 13455, 13457, 13459, 13461, 13463, 13465, 13467, 13469, 13471, 13473, + 13475, 13477, 13479, 13481, 13483, 13485, 13487, 13489, 13491, 13493, + 13495, 13497, 13499, 13501, 13503, 13505, 13507, 13509, 13511, 13513, + 13515, 13517, 13519, 13521, 13523, 13525, 13527, 13529, 13531, 13533, + 13535, 13537, 13539, 13541, 13543, 13545, 13547, 13549, 13551, 13553, + 13555, 13557, 13559, 13561, 13563, 13565, 13567, 13569, 13571, 13573, + 13575, 13577, 13579, 13581, 13583, 13585, 13587, 13589, 13591, 13593, + 13595, 13597, 13599, 13601, 13603, 13605, 13607, 13609, 13611, 13613, + 13615, 13617, 13619, 13621, 13623, 13625, 13627, 13629, 13631, 13633, + 13635, 13637, 13639, 13641, 13643, 13645, 13647, 13649, 13651, 13653, + 13655, 13657, 13659, 13661, 13663, 13665, 13667, 13669, 13671, 13673, + 13675, 13677, 13679, 13681, 13683, 13685, 13687, 13689, 13691, 13693, + 13695, 13697, 13699, 13701, 13703, 13705, 13707, 13709, 13711, 13713, + 13715, 13717, 13719, 13721, 13723, 13725, 13727, 13729, 13731, 13733, + 13735, 13737, 13739, 13741, 13743, 13745, 13747, 13749, 13751, 13753, + 13755, 13757, 13759, 13761, 13763, 13765, 13767, 13769, 13771, 13773, + 13775, 13777, 13779, 13781, 13783, 13785, 13787, 13789, 13791, 13793, + 13795, 13797, 13799, 13801, 13803, 13805, 13807, 13809, 13811, 13813, + 13815, 13817, 13819, 13821, 13823, 13825, 13827, 13829, 13831, 13833, + 13835, 13837, 13839, 13841, 13843, 13845, 13847, 13849, 13851, 13853, + 13855, 13857, 13859, 13861, 13863, 13865, 13867, 13869, 13871, 13873, + 13875, 13877, 13879, 13881, 13883, 13885, 13887, 13889, 13891, 13893, + 13895, 13897, 13899, 13901, 13903, 13905, 13907, 13909, 13911, 13913, + 13915, 13917, 13919, 13921, 13923, 13925, 13927, 13929, 13931, 13933, + 13935, 13937, 13939, 13941, 13943, 13945, 13947, 13949, 13951, 13953, + 13955, 13957, 13959, 13961, 13963, 13965, 13967, 13969, 13971, 13973, + 13975, 13977, 13979, 13981, 13983, 13985, 13987, 13989, 13991, 13993, + 13995, 13997, 13999, 14001, 14003, 14005, 14007, 14009, 14011, 14013, + 14015, 14017, 14019, 14021, 14023, 14025, 14027, 14029, 14031, 14033, + 14035, 14037, 14039, 14041, 14043, 14045, 14047, 14049, 14051, 14053, + 14055, 14057, 14059, 14061, 14063, 14065, 14067, 14069, 14071, 14073, + 14075, 14077, 14079, 14081, 14083, 14085, 14087, 14089, 14091, 14093, + 14095, 14097, 14099, 14101, 14103, 14105, 14107, 14109, 14111, 14113, + 14115, 14117, 14119, 14121, 14123, 14125, 14127, 14129, 14131, 14133, + 14135, 14137, 14139, 14141, 14143, 14145, 14147, 14149, 14151, 14153, + 14155, 14157, 14159, 14161, 14163, 14165, 14167, 14169, 14171, 14173, + 14175, 14177, 14179, 14181, 14183, 14185, 14187, 14189, 14191, 14193, + 14195, 14197, 14199, 14201, 14203, 14205, 14207, 14209, 14211, 14213, + 14215, 14217, 14219, 14221, 14223, 14225, 14227, 14229, 14231, 14233, + 14235, 14237, 14239, 14241, 14243, 14245, 14247, 14249, 14251, 14253, + 14255, 14257, 14259, 14261, 14263, 14265, 14267, 14269, 14271, 14273, + 14275, 14277, 14279, 14281, 14283, 14285, 14287, 14289, 14291, 14293, + 14295, 14297, 14299, 14301, 14303, 14305, 14307, 14309, 14311, 14313, + 14315, 14317, 14319, 14321, 14323, 14325, 14327, 14329, 14331, 14333, + 14335, 14337, 14339, 14341, 14343, 14345, 14347, 14349, 14351, 14353, + 14355, 14357, 14359, 14361, 14363, 14365, 14367, 14369, 14371, 14373, + 14375, 14377, 14379, 14381, 14383, 14385, 14387, 14389, 14391, 14393, + 14395, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, }; /* NFC pairs */ @@ -6021,7 +6107,7 @@ static const change_record change_records_3_2_0[] = { { 19, 30, 255, 255, 255, 0 }, { 255, 8, 255, 255, 255, 0 }, { 255, 27, 255, 255, 255, 0 }, - { 255, 255, 255, 255, 0, 0 }, + { 255, 255, 255, 255, 5, 0 }, { 255, 22, 255, 255, 255, 0 }, { 255, 23, 255, 255, 255, 0 }, { 9, 255, 255, 255, 255, 0 }, @@ -6059,57 +6145,55 @@ static const unsigned char changes_3_2_0_index[] = { 2, 122, 123, 124, 125, 126, 127, 2, 128, 129, 130, 131, 132, 133, 134, 52, 52, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 2, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 2, 159, 160, 2, - 161, 162, 163, 164, 2, 165, 166, 167, 168, 169, 170, 171, 2, 172, 173, - 174, 175, 2, 176, 177, 178, 52, 52, 52, 52, 52, 52, 52, 179, 180, 52, - 181, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 182, 52, - 52, 52, 52, 52, 52, 52, 52, 183, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 52, 52, 52, 52, - 184, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 52, 52, 52, - 52, 185, 186, 187, 188, 2, 2, 2, 2, 189, 190, 191, 192, 52, 52, 52, 52, + 161, 162, 163, 164, 2, 165, 166, 167, 168, 169, 170, 2, 2, 171, 172, 173, + 174, 2, 175, 2, 176, 52, 52, 52, 52, 52, 52, 52, 177, 178, 52, 179, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 180, 52, 52, 52, + 52, 52, 52, 52, 52, 181, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 52, 52, 52, 52, 182, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 52, 52, 52, 52, 183, + 184, 185, 186, 2, 2, 2, 2, 187, 188, 189, 190, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 102, 52, 52, 52, 52, 52, 52, 52, 52, 52, 183, - 193, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 52, 52, 52, 52, 52, 102, 52, 52, 52, 52, 52, 52, 52, 52, 52, 191, 192, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 194, 52, - 52, 195, 52, 52, 196, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 197, 198, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 199, 181, 2, 2, 200, 201, - 202, 203, 204, 2, 2, 205, 2, 2, 2, 206, 207, 208, 52, 52, 52, 52, 52, - 209, 2, 2, 2, 2, 2, 2, 2, 2, 210, 2, 211, 212, 213, 2, 2, 214, 2, 2, 2, - 215, 2, 2, 2, 2, 2, 216, 52, 217, 218, 2, 2, 2, 2, 2, 219, 220, 221, 2, - 222, 223, 2, 2, 224, 225, 52, 226, 227, 2, 52, 52, 52, 52, 52, 52, 52, - 228, 229, 230, 231, 232, 52, 52, 233, 234, 52, 235, 2, 2, 2, 2, 2, 2, 2, - 2, 236, 237, 97, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 86, 238, 2, - 239, 240, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 241, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 242, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 193, 52, 52, + 194, 52, 52, 195, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 196, 197, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 198, 179, 2, 2, 199, 200, + 201, 202, 203, 2, 2, 204, 2, 2, 2, 205, 206, 207, 52, 52, 52, 52, 52, + 208, 2, 2, 2, 2, 2, 2, 2, 2, 209, 2, 210, 2, 211, 2, 2, 212, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 213, 52, 214, 215, 2, 2, 2, 2, 2, 216, 217, 218, 2, 219, + 220, 2, 2, 221, 222, 52, 223, 224, 2, 52, 52, 52, 52, 52, 52, 52, 225, + 226, 227, 228, 229, 52, 52, 230, 231, 52, 232, 2, 2, 2, 2, 2, 2, 2, 2, + 233, 234, 97, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 86, 235, 2, + 236, 237, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 243, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 238, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 239, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 240, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 244, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 241, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 245, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 246, - 52, 247, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 242, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 243, + 52, 244, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 248, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 245, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 249, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 241, 2, 2, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 246, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 238, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 250, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 251, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 247, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -6341,8 +6425,8 @@ static const unsigned char changes_3_2_0_index[] = { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 52, 252, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 52, 248, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -6405,7 +6489,8 @@ static const unsigned char changes_3_2_0_index[] = { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, }; static const unsigned char changes_3_2_0_data[] = { @@ -6536,7 +6621,7 @@ static const unsigned char changes_3_2_0_data[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 20, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 9, 9, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, @@ -6551,7 +6636,7 @@ static const unsigned char changes_3_2_0_data[] = { 0, 0, 9, 0, 0, 9, 0, 0, 9, 0, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7213,7 +7298,7 @@ static const unsigned char changes_3_2_0_data[] = { 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, @@ -7248,7 +7333,7 @@ static const unsigned char changes_3_2_0_data[] = { 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 0, 9, 9, 9, 9, 0, 9, 9, 9, 9, @@ -7326,125 +7411,119 @@ static const unsigned char changes_3_2_0_data[] = { 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, + 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, - 9, 9, 9, 9, 0, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 0, 0, 0, 9, 0, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9, 9, - 9, 9, 9, 0, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 0, - 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, + 0, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 0, 9, 9, 0, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 0, 9, 9, 9, 9, 9, 9, 0, 0, + 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, + 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, - 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, - 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, - 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, + 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, - 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, - 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7453,119 +7532,109 @@ static const unsigned char changes_3_2_0_data[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 0, 9, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, + 9, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 9, 9, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 0, 0, 0, + 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, - 0, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, + 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, + 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 9, + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 57, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 0, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, + 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 0, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 0, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, - 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, + 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7633,18 +7702,18 @@ static const unsigned char changes_3_2_0_data[] = { 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, @@ -7661,12 +7730,12 @@ static const unsigned char changes_3_2_0_data[] = { 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, - 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, + 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, + 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9, 9, + 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, @@ -7728,7 +7797,7 @@ static const unsigned char changes_3_2_0_data[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, @@ -7750,20 +7819,14 @@ static const unsigned char changes_3_2_0_data[] = { 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, + 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; static const change_record* get_change_3_2_0(Py_UCS4 n) diff --git a/Modules/unicodename_db.h b/Modules/unicodename_db.h index f6320c43e53f77..690470485996f1 100644 --- a/Modules/unicodename_db.h +++ b/Modules/unicodename_db.h @@ -12,744 +12,742 @@ static const unsigned char lexicon[] = { 65, 206, 67, 79, 77, 80, 65, 84, 73, 66, 73, 76, 73, 84, 217, 83, 89, 77, 66, 79, 204, 68, 73, 71, 73, 212, 86, 79, 87, 69, 204, 84, 65, 78, 71, 85, 212, 70, 79, 82, 77, 128, 67, 65, 78, 65, 68, 73, 65, 206, 83, 89, - 76, 76, 65, 66, 73, 67, 211, 65, 78, 196, 83, 73, 71, 78, 87, 82, 73, 84, - 73, 78, 199, 84, 73, 77, 69, 211, 66, 65, 77, 85, 205, 83, 67, 82, 73, + 76, 76, 65, 66, 73, 67, 211, 83, 73, 71, 78, 87, 82, 73, 84, 73, 78, 199, + 65, 78, 196, 84, 73, 77, 69, 211, 66, 65, 77, 85, 205, 83, 67, 82, 73, 80, 212, 66, 79, 76, 196, 65, 78, 65, 84, 79, 76, 73, 65, 206, 72, 65, 78, 71, 85, 204, 78, 85, 77, 66, 69, 210, 76, 73, 78, 69, 65, 210, 67, 79, 77, 66, 73, 78, 73, 78, 199, 76, 73, 71, 65, 84, 85, 82, 197, 71, 82, 69, 69, 203, 69, 84, 72, 73, 79, 80, 73, 195, 77, 85, 83, 73, 67, 65, - 204, 67, 89, 82, 73, 76, 76, 73, 195, 70, 79, 210, 75, 72, 73, 84, 65, - 206, 193, 73, 84, 65, 76, 73, 195, 84, 65, 77, 73, 204, 76, 69, 70, 212, + 204, 70, 79, 210, 75, 72, 73, 84, 65, 206, 193, 67, 89, 82, 73, 76, 76, + 73, 195, 73, 84, 65, 76, 73, 195, 84, 65, 77, 73, 204, 76, 69, 70, 212, 78, 85, 83, 72, 213, 67, 73, 82, 67, 76, 69, 196, 82, 65, 68, 73, 67, 65, 204, 83, 65, 78, 83, 45, 83, 69, 82, 73, 198, 82, 73, 71, 72, 212, 83, - 81, 85, 65, 82, 197, 77, 79, 68, 73, 70, 73, 69, 210, 70, 73, 78, 65, - 204, 84, 65, 201, 68, 79, 85, 66, 76, 197, 83, 73, 71, 78, 128, 65, 82, - 82, 79, 87, 128, 65, 66, 79, 86, 69, 128, 86, 65, 201, 66, 69, 76, 79, + 81, 85, 65, 82, 197, 70, 73, 78, 65, 204, 84, 65, 201, 68, 79, 85, 66, + 76, 197, 65, 82, 82, 79, 87, 128, 65, 66, 79, 86, 69, 128, 83, 73, 71, + 78, 128, 86, 65, 201, 77, 79, 68, 73, 70, 73, 69, 210, 66, 69, 76, 79, 87, 128, 72, 69, 78, 84, 65, 73, 71, 65, 78, 193, 66, 76, 65, 67, 203, - 87, 72, 73, 84, 197, 65, 82, 82, 79, 215, 65, 128, 85, 128, 86, 65, 82, - 73, 65, 84, 73, 79, 206, 73, 128, 66, 82, 65, 73, 76, 76, 197, 80, 65, - 84, 84, 69, 82, 206, 75, 65, 84, 65, 75, 65, 78, 193, 66, 89, 90, 65, 78, - 84, 73, 78, 197, 79, 128, 68, 79, 212, 73, 83, 79, 76, 65, 84, 69, 196, - 77, 65, 82, 75, 128, 194, 79, 198, 77, 89, 65, 78, 77, 65, 210, 86, 69, - 82, 84, 73, 67, 65, 204, 77, 73, 68, 68, 76, 197, 75, 65, 78, 71, 88, + 65, 82, 82, 79, 215, 87, 72, 73, 84, 197, 65, 128, 86, 65, 82, 73, 65, + 84, 73, 79, 206, 66, 82, 65, 73, 76, 76, 197, 80, 65, 84, 84, 69, 82, + 206, 85, 128, 73, 128, 75, 65, 84, 65, 75, 65, 78, 193, 66, 89, 90, 65, + 78, 84, 73, 78, 197, 79, 128, 68, 79, 212, 73, 83, 79, 76, 65, 84, 69, + 196, 77, 65, 82, 75, 128, 194, 77, 89, 65, 78, 77, 65, 210, 79, 198, 86, + 69, 82, 84, 73, 67, 65, 204, 77, 73, 68, 68, 76, 197, 75, 65, 78, 71, 88, 201, 75, 73, 75, 65, 75, 85, 201, 77, 69, 78, 68, 197, 84, 73, 66, 69, 84, 65, 206, 77, 65, 82, 203, 72, 69, 65, 86, 217, 73, 78, 73, 84, 73, - 65, 204, 72, 77, 79, 78, 199, 79, 78, 197, 77, 69, 69, 205, 65, 66, 79, - 86, 197, 67, 79, 80, 84, 73, 195, 75, 72, 77, 69, 210, 82, 73, 71, 72, + 65, 204, 72, 77, 79, 78, 199, 79, 78, 197, 77, 69, 69, 205, 67, 79, 80, + 84, 73, 195, 75, 72, 77, 69, 210, 65, 66, 79, 86, 197, 82, 73, 71, 72, 84, 87, 65, 82, 68, 211, 90, 78, 65, 77, 69, 78, 78, 217, 67, 65, 82, 82, - 73, 69, 210, 89, 69, 200, 68, 69, 86, 65, 78, 65, 71, 65, 82, 201, 71, - 69, 79, 82, 71, 73, 65, 206, 72, 79, 79, 75, 128, 67, 72, 69, 82, 79, 75, - 69, 197, 77, 79, 78, 71, 79, 76, 73, 65, 206, 84, 87, 207, 83, 84, 82, - 79, 75, 69, 128, 79, 78, 69, 128, 80, 76, 85, 211, 84, 87, 79, 128, 76, + 73, 69, 210, 89, 69, 200, 71, 69, 79, 82, 71, 73, 65, 206, 67, 72, 69, + 82, 79, 75, 69, 197, 77, 79, 78, 71, 79, 76, 73, 65, 206, 84, 87, 207, + 68, 69, 86, 65, 78, 65, 71, 65, 82, 201, 83, 84, 82, 79, 75, 69, 128, 72, + 79, 79, 75, 128, 80, 76, 85, 211, 79, 78, 69, 128, 84, 87, 79, 128, 76, 79, 87, 69, 210, 66, 79, 216, 83, 81, 85, 65, 82, 69, 196, 83, 89, 77, 66, 79, 76, 128, 80, 72, 65, 83, 69, 45, 197, 84, 72, 82, 69, 197, 85, - 80, 80, 69, 210, 86, 79, 67, 65, 76, 73, 195, 76, 69, 70, 84, 87, 65, 82, - 68, 211, 84, 207, 67, 79, 78, 83, 79, 78, 65, 78, 212, 77, 73, 65, 207, - 68, 82, 65, 87, 73, 78, 71, 211, 84, 73, 76, 197, 68, 85, 80, 76, 79, 89, - 65, 206, 74, 79, 78, 71, 83, 69, 79, 78, 199, 80, 65, 82, 69, 78, 84, 72, - 69, 83, 73, 90, 69, 196, 84, 72, 65, 205, 71, 79, 78, 68, 201, 76, 79, - 215, 65, 76, 69, 198, 72, 65, 76, 198, 85, 208, 70, 79, 85, 82, 128, 71, - 76, 65, 71, 79, 76, 73, 84, 73, 195, 72, 69, 66, 82, 69, 215, 72, 73, 71, - 200, 84, 72, 82, 69, 69, 128, 79, 86, 69, 210, 72, 65, 128, 73, 78, 68, + 80, 80, 69, 210, 76, 69, 70, 84, 87, 65, 82, 68, 211, 84, 207, 67, 79, + 78, 83, 79, 78, 65, 78, 212, 77, 73, 65, 207, 86, 79, 67, 65, 76, 73, + 195, 68, 82, 65, 87, 73, 78, 71, 211, 84, 73, 76, 197, 68, 85, 80, 76, + 79, 89, 65, 206, 74, 79, 78, 71, 83, 69, 79, 78, 199, 80, 65, 82, 69, 78, + 84, 72, 69, 83, 73, 90, 69, 196, 84, 72, 65, 205, 71, 79, 78, 68, 201, + 65, 76, 69, 198, 76, 79, 215, 85, 208, 71, 76, 65, 71, 79, 76, 73, 84, + 73, 195, 72, 65, 76, 198, 72, 69, 66, 82, 69, 215, 72, 73, 71, 200, 70, + 79, 85, 82, 128, 79, 86, 69, 210, 84, 72, 82, 69, 69, 128, 73, 78, 68, 69, 216, 77, 65, 76, 65, 89, 65, 76, 65, 205, 83, 73, 89, 65, 209, 68, - 79, 87, 206, 80, 65, 72, 65, 87, 200, 67, 72, 79, 83, 69, 79, 78, 199, - 66, 65, 76, 73, 78, 69, 83, 197, 70, 73, 86, 69, 128, 72, 65, 76, 70, 87, - 73, 68, 84, 200, 72, 65, 78, 68, 45, 70, 73, 83, 212, 77, 69, 82, 79, 73, - 84, 73, 195, 84, 85, 82, 78, 69, 196, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 73, 195, 75, 65, 128, 76, 73, 71, 72, 212, 73, 68, 69, 79, 71, 82, 65, - 205, 80, 72, 65, 83, 69, 45, 196, 84, 79, 128, 65, 76, 67, 72, 69, 77, - 73, 67, 65, 204, 78, 69, 85, 77, 197, 66, 82, 65, 72, 77, 201, 84, 79, - 78, 197, 66, 65, 82, 128, 82, 65, 128, 83, 73, 78, 72, 65, 76, 193, 78, - 85, 77, 69, 82, 73, 195, 80, 65, 128, 83, 73, 88, 128, 89, 65, 128, 69, - 73, 71, 72, 84, 128, 76, 65, 128, 77, 65, 128, 83, 69, 86, 69, 78, 128, - 84, 72, 85, 77, 194, 72, 85, 78, 71, 65, 82, 73, 65, 206, 78, 73, 78, 69, - 128, 76, 79, 78, 199, 78, 65, 128, 66, 65, 82, 194, 72, 65, 200, 82, 73, - 71, 72, 84, 128, 66, 76, 79, 67, 203, 68, 79, 84, 211, 78, 79, 82, 84, - 200, 83, 65, 128, 84, 72, 79, 85, 83, 65, 78, 68, 128, 84, 65, 128, 90, - 90, 89, 88, 128, 90, 90, 89, 84, 128, 90, 90, 89, 82, 88, 128, 90, 90, - 89, 82, 128, 90, 90, 89, 80, 128, 90, 90, 89, 65, 128, 90, 90, 89, 128, - 90, 90, 85, 88, 128, 90, 90, 85, 82, 88, 128, 90, 90, 85, 82, 128, 90, - 90, 85, 80, 128, 90, 90, 85, 128, 90, 90, 83, 89, 65, 128, 90, 90, 83, - 65, 128, 90, 90, 79, 88, 128, 90, 90, 79, 80, 128, 90, 90, 79, 128, 90, - 90, 73, 88, 128, 90, 90, 73, 84, 128, 90, 90, 73, 80, 128, 90, 90, 73, - 69, 88, 128, 90, 90, 73, 69, 84, 128, 90, 90, 73, 69, 80, 128, 90, 90, - 73, 69, 128, 90, 90, 73, 128, 90, 90, 69, 88, 128, 90, 90, 69, 80, 128, - 90, 90, 69, 69, 128, 90, 90, 69, 128, 90, 90, 65, 88, 128, 90, 90, 65, - 84, 128, 90, 90, 65, 80, 128, 90, 90, 65, 65, 128, 90, 90, 65, 128, 90, - 89, 71, 79, 83, 128, 90, 87, 83, 80, 128, 90, 87, 78, 74, 128, 90, 87, - 78, 66, 83, 80, 128, 90, 87, 74, 128, 90, 87, 202, 90, 87, 65, 82, 65, - 75, 65, 89, 128, 90, 87, 65, 128, 90, 85, 84, 128, 90, 85, 79, 88, 128, - 90, 85, 79, 80, 128, 90, 85, 79, 128, 90, 85, 77, 128, 90, 85, 66, 85, - 82, 128, 90, 85, 53, 128, 90, 85, 181, 90, 213, 90, 83, 72, 65, 128, 90, - 82, 65, 128, 90, 81, 65, 80, 72, 193, 90, 79, 84, 128, 90, 79, 79, 128, - 90, 79, 77, 66, 73, 69, 128, 90, 79, 65, 128, 90, 77, 69, 89, 84, 83, 65, - 128, 90, 76, 65, 77, 193, 90, 76, 65, 128, 90, 76, 193, 90, 74, 69, 128, - 90, 73, 90, 50, 128, 90, 73, 81, 65, 65, 128, 90, 73, 80, 80, 69, 82, 45, - 77, 79, 85, 84, 200, 90, 73, 78, 79, 82, 128, 90, 73, 76, 68, 69, 128, - 90, 73, 71, 90, 65, 199, 90, 73, 71, 128, 90, 73, 68, 193, 90, 73, 66, - 128, 90, 73, 194, 90, 73, 51, 128, 90, 201, 90, 72, 89, 88, 128, 90, 72, - 89, 84, 128, 90, 72, 89, 82, 88, 128, 90, 72, 89, 82, 128, 90, 72, 89, - 80, 128, 90, 72, 89, 128, 90, 72, 87, 69, 128, 90, 72, 87, 65, 128, 90, - 72, 85, 88, 128, 90, 72, 85, 84, 128, 90, 72, 85, 82, 88, 128, 90, 72, - 85, 82, 128, 90, 72, 85, 80, 128, 90, 72, 85, 79, 88, 128, 90, 72, 85, - 79, 80, 128, 90, 72, 85, 79, 128, 90, 72, 85, 128, 90, 72, 79, 88, 128, - 90, 72, 79, 84, 128, 90, 72, 79, 80, 128, 90, 72, 79, 79, 128, 90, 72, - 79, 73, 128, 90, 72, 79, 128, 90, 72, 73, 86, 69, 84, 69, 128, 90, 72, - 73, 76, 128, 90, 72, 73, 128, 90, 72, 69, 88, 128, 90, 72, 69, 84, 128, - 90, 72, 69, 80, 128, 90, 72, 69, 69, 128, 90, 72, 69, 128, 90, 72, 197, - 90, 72, 65, 89, 73, 78, 128, 90, 72, 65, 88, 128, 90, 72, 65, 84, 128, - 90, 72, 65, 82, 128, 90, 72, 65, 80, 128, 90, 72, 65, 73, 78, 128, 90, - 72, 65, 65, 128, 90, 72, 65, 128, 90, 72, 128, 90, 69, 86, 79, 75, 128, - 90, 69, 85, 83, 128, 90, 69, 84, 65, 128, 90, 69, 82, 79, 128, 90, 69, - 82, 207, 90, 69, 78, 128, 90, 69, 77, 76, 89, 65, 128, 90, 69, 77, 76, - 74, 65, 128, 90, 69, 76, 79, 128, 90, 69, 66, 82, 193, 90, 69, 50, 128, - 90, 197, 90, 65, 89, 78, 128, 90, 65, 89, 73, 78, 45, 89, 79, 68, 72, - 128, 90, 65, 89, 73, 78, 128, 90, 65, 89, 73, 206, 90, 65, 86, 73, 89, - 65, 78, 73, 128, 90, 65, 84, 65, 128, 90, 65, 82, 81, 65, 128, 90, 65, - 82, 76, 128, 90, 65, 81, 69, 198, 90, 65, 80, 89, 65, 84, 89, 77, 73, - 128, 90, 65, 80, 89, 65, 84, 79, 89, 128, 90, 65, 80, 89, 65, 84, 79, - 217, 90, 65, 80, 89, 65, 84, 65, 89, 65, 128, 90, 65, 78, 79, 90, 72, 69, - 75, 128, 90, 65, 78, 65, 66, 65, 90, 65, 210, 90, 65, 77, 88, 128, 90, - 65, 76, 128, 90, 65, 204, 90, 65, 75, 82, 89, 84, 79, 69, 128, 90, 65, - 75, 82, 89, 84, 65, 89, 65, 128, 90, 65, 75, 82, 89, 84, 65, 89, 193, 90, - 65, 73, 78, 128, 90, 65, 73, 206, 90, 65, 73, 128, 90, 65, 72, 128, 90, - 65, 200, 90, 65, 71, 128, 90, 65, 69, 70, 128, 90, 65, 68, 69, 82, 90, - 72, 75, 65, 128, 90, 65, 55, 128, 90, 193, 90, 48, 49, 54, 72, 128, 90, - 48, 49, 54, 71, 128, 90, 48, 49, 54, 70, 128, 90, 48, 49, 54, 69, 128, - 90, 48, 49, 54, 68, 128, 90, 48, 49, 54, 67, 128, 90, 48, 49, 54, 66, - 128, 90, 48, 49, 54, 65, 128, 90, 48, 49, 54, 128, 90, 48, 49, 53, 73, - 128, 90, 48, 49, 53, 72, 128, 90, 48, 49, 53, 71, 128, 90, 48, 49, 53, - 70, 128, 90, 48, 49, 53, 69, 128, 90, 48, 49, 53, 68, 128, 90, 48, 49, - 53, 67, 128, 90, 48, 49, 53, 66, 128, 90, 48, 49, 53, 65, 128, 90, 48, - 49, 53, 128, 90, 48, 49, 52, 128, 90, 48, 49, 51, 128, 90, 48, 49, 50, - 128, 90, 48, 49, 49, 128, 90, 48, 49, 48, 128, 90, 48, 48, 57, 128, 90, - 48, 48, 56, 128, 90, 48, 48, 55, 128, 90, 48, 48, 54, 128, 90, 48, 48, - 53, 65, 128, 90, 48, 48, 53, 128, 90, 48, 48, 52, 65, 128, 90, 48, 48, - 52, 128, 90, 48, 48, 51, 66, 128, 90, 48, 48, 51, 65, 128, 90, 48, 48, - 51, 128, 90, 48, 48, 50, 68, 128, 90, 48, 48, 50, 67, 128, 90, 48, 48, - 50, 66, 128, 90, 48, 48, 50, 65, 128, 90, 48, 48, 50, 128, 90, 48, 48, - 49, 128, 90, 128, 218, 89, 89, 88, 128, 89, 89, 84, 128, 89, 89, 82, 88, - 128, 89, 89, 82, 128, 89, 89, 80, 128, 89, 89, 69, 128, 89, 89, 65, 65, - 128, 89, 89, 65, 128, 89, 89, 128, 89, 87, 79, 79, 128, 89, 87, 79, 128, - 89, 87, 73, 73, 128, 89, 87, 73, 128, 89, 87, 69, 128, 89, 87, 65, 65, - 128, 89, 87, 65, 128, 89, 86, 128, 89, 85, 88, 128, 89, 85, 87, 79, 81, - 128, 89, 85, 85, 75, 65, 76, 69, 65, 80, 73, 78, 84, 85, 128, 89, 85, 85, - 128, 89, 85, 84, 128, 89, 85, 83, 128, 89, 85, 211, 89, 85, 82, 88, 128, - 89, 85, 82, 128, 89, 85, 81, 128, 89, 85, 209, 89, 85, 80, 128, 89, 85, - 79, 88, 128, 89, 85, 79, 84, 128, 89, 85, 79, 80, 128, 89, 85, 79, 77, - 128, 89, 85, 79, 128, 89, 85, 78, 128, 89, 85, 77, 128, 89, 85, 74, 128, - 89, 85, 73, 128, 89, 85, 69, 81, 128, 89, 85, 69, 128, 89, 85, 68, 72, - 128, 89, 85, 68, 200, 89, 85, 65, 78, 128, 89, 85, 65, 69, 78, 128, 89, - 85, 45, 89, 69, 79, 128, 89, 85, 45, 89, 69, 128, 89, 85, 45, 85, 128, - 89, 85, 45, 79, 128, 89, 85, 45, 73, 128, 89, 85, 45, 69, 79, 128, 89, - 85, 45, 69, 128, 89, 85, 45, 65, 69, 128, 89, 85, 45, 65, 128, 89, 85, - 45, 52, 128, 89, 85, 45, 51, 128, 89, 85, 45, 50, 128, 89, 85, 45, 49, - 128, 89, 85, 128, 89, 213, 89, 82, 89, 128, 89, 80, 83, 73, 76, 73, 128, - 89, 80, 79, 82, 82, 79, 73, 128, 89, 80, 79, 75, 82, 73, 83, 73, 83, 128, - 89, 80, 79, 75, 82, 73, 83, 73, 211, 89, 80, 79, 71, 69, 71, 82, 65, 77, - 77, 69, 78, 73, 128, 89, 79, 89, 128, 89, 79, 88, 128, 89, 79, 87, 68, - 128, 89, 79, 85, 84, 72, 70, 85, 76, 78, 69, 83, 83, 128, 89, 79, 85, 84, - 72, 70, 85, 204, 89, 79, 213, 89, 79, 84, 128, 89, 79, 212, 89, 79, 82, - 73, 128, 89, 79, 81, 128, 89, 79, 209, 89, 79, 80, 128, 89, 79, 79, 128, - 89, 79, 77, 79, 128, 89, 79, 71, 72, 128, 89, 79, 68, 128, 89, 79, 196, - 89, 79, 65, 128, 89, 79, 45, 89, 79, 128, 89, 79, 45, 89, 69, 79, 128, - 89, 79, 45, 89, 65, 69, 128, 89, 79, 45, 89, 65, 128, 89, 79, 45, 79, - 128, 89, 79, 45, 73, 128, 89, 79, 45, 69, 79, 128, 89, 79, 45, 65, 69, - 128, 89, 79, 45, 65, 128, 89, 79, 45, 54, 128, 89, 79, 45, 53, 128, 89, - 79, 45, 52, 128, 89, 79, 45, 51, 128, 89, 79, 45, 50, 128, 89, 79, 45, - 49, 128, 89, 207, 89, 73, 90, 69, 84, 128, 89, 73, 88, 128, 89, 73, 87, - 78, 128, 89, 73, 84, 128, 89, 73, 80, 128, 89, 73, 78, 71, 128, 89, 73, - 73, 128, 89, 73, 72, 128, 89, 73, 199, 89, 73, 69, 88, 128, 89, 73, 69, - 84, 128, 89, 73, 69, 80, 128, 89, 73, 69, 69, 128, 89, 73, 69, 128, 89, - 73, 68, 68, 73, 83, 200, 89, 73, 45, 85, 128, 89, 73, 128, 89, 72, 69, - 128, 89, 72, 65, 128, 89, 70, 69, 83, 73, 83, 128, 89, 70, 69, 83, 73, - 211, 89, 70, 69, 206, 89, 69, 90, 73, 68, 201, 89, 69, 89, 128, 89, 69, - 87, 128, 89, 69, 85, 88, 128, 89, 69, 85, 82, 65, 69, 128, 89, 69, 85, - 81, 128, 89, 69, 85, 77, 128, 89, 69, 85, 65, 69, 84, 128, 89, 69, 85, - 65, 69, 128, 89, 69, 84, 73, 86, 128, 89, 69, 83, 84, 85, 128, 89, 69, - 83, 73, 69, 85, 78, 71, 45, 83, 83, 65, 78, 71, 75, 73, 89, 69, 79, 75, - 128, 89, 69, 83, 73, 69, 85, 78, 71, 45, 83, 73, 79, 83, 128, 89, 69, 83, - 73, 69, 85, 78, 71, 45, 80, 65, 78, 83, 73, 79, 83, 128, 89, 69, 83, 73, - 69, 85, 78, 71, 45, 77, 73, 69, 85, 77, 128, 89, 69, 83, 73, 69, 85, 78, - 71, 45, 75, 73, 89, 69, 79, 75, 128, 89, 69, 83, 73, 69, 85, 78, 71, 45, - 75, 72, 73, 69, 85, 75, 72, 128, 89, 69, 83, 73, 69, 85, 78, 71, 45, 72, - 73, 69, 85, 72, 128, 89, 69, 83, 73, 69, 85, 78, 71, 128, 89, 69, 82, 85, - 128, 89, 69, 82, 213, 89, 69, 82, 73, 128, 89, 69, 82, 65, 200, 89, 69, - 82, 128, 89, 69, 79, 82, 73, 78, 72, 73, 69, 85, 72, 128, 89, 69, 79, 45, - 89, 65, 128, 89, 69, 79, 45, 85, 128, 89, 69, 79, 45, 79, 128, 89, 69, - 78, 73, 83, 69, 201, 89, 69, 78, 65, 80, 128, 89, 69, 78, 128, 89, 69, - 206, 89, 69, 76, 76, 79, 87, 128, 89, 69, 76, 76, 79, 215, 89, 69, 73, - 78, 128, 89, 69, 72, 128, 89, 69, 69, 71, 128, 89, 69, 69, 128, 89, 69, - 65, 210, 89, 69, 65, 128, 89, 65, 90, 90, 128, 89, 65, 90, 72, 128, 89, - 65, 90, 128, 89, 65, 89, 68, 128, 89, 65, 89, 65, 78, 78, 65, 128, 89, - 65, 89, 128, 89, 65, 87, 78, 73, 78, 199, 89, 65, 87, 78, 128, 89, 65, - 87, 128, 89, 65, 86, 128, 89, 65, 85, 128, 89, 65, 84, 84, 128, 89, 65, - 84, 73, 128, 89, 65, 84, 72, 128, 89, 65, 84, 128, 89, 65, 83, 83, 128, - 89, 65, 83, 72, 128, 89, 65, 83, 128, 89, 65, 82, 82, 128, 89, 65, 82, - 78, 128, 89, 65, 82, 128, 89, 65, 210, 89, 65, 81, 128, 89, 65, 80, 128, - 89, 65, 78, 83, 65, 89, 65, 128, 89, 65, 78, 71, 128, 89, 65, 78, 199, - 89, 65, 78, 128, 89, 65, 77, 79, 75, 128, 89, 65, 77, 65, 75, 75, 65, 78, - 128, 89, 65, 77, 128, 89, 65, 76, 128, 89, 65, 75, 72, 72, 128, 89, 65, - 75, 72, 128, 89, 65, 75, 65, 83, 72, 128, 89, 65, 75, 128, 89, 65, 74, - 85, 82, 86, 69, 68, 73, 195, 89, 65, 74, 128, 89, 65, 73, 128, 89, 65, - 72, 72, 128, 89, 65, 72, 128, 89, 65, 71, 78, 128, 89, 65, 71, 72, 72, - 128, 89, 65, 71, 72, 128, 89, 65, 71, 128, 89, 65, 70, 213, 89, 65, 70, - 128, 89, 65, 69, 77, 77, 65, 69, 128, 89, 65, 68, 72, 128, 89, 65, 68, - 68, 72, 128, 89, 65, 68, 68, 128, 89, 65, 68, 128, 89, 65, 67, 72, 128, - 89, 65, 66, 72, 128, 89, 65, 66, 128, 89, 65, 65, 82, 85, 128, 89, 65, - 65, 73, 128, 89, 65, 65, 68, 79, 128, 89, 65, 45, 89, 79, 128, 89, 65, - 45, 85, 128, 89, 65, 45, 79, 128, 89, 65, 45, 53, 128, 89, 65, 45, 52, - 128, 89, 65, 45, 51, 128, 89, 65, 45, 50, 128, 89, 65, 45, 49, 128, 89, - 48, 48, 56, 128, 89, 48, 48, 55, 128, 89, 48, 48, 54, 128, 89, 48, 48, - 53, 128, 89, 48, 48, 52, 128, 89, 48, 48, 51, 128, 89, 48, 48, 50, 128, - 89, 48, 48, 49, 65, 128, 89, 48, 48, 49, 128, 89, 45, 67, 82, 69, 197, - 88, 89, 88, 128, 88, 89, 85, 128, 88, 89, 84, 128, 88, 89, 82, 88, 128, - 88, 89, 82, 128, 88, 89, 80, 128, 88, 89, 79, 79, 74, 128, 88, 89, 79, - 79, 128, 88, 89, 79, 128, 88, 89, 73, 128, 88, 89, 69, 69, 205, 88, 89, - 69, 69, 128, 88, 89, 69, 128, 88, 89, 65, 65, 128, 88, 89, 65, 128, 88, - 89, 128, 88, 87, 73, 128, 88, 87, 69, 69, 128, 88, 87, 69, 128, 88, 87, - 65, 65, 128, 88, 87, 65, 128, 88, 87, 128, 88, 215, 88, 86, 69, 128, 88, - 86, 65, 128, 88, 85, 79, 88, 128, 88, 85, 79, 128, 88, 85, 128, 88, 83, - 72, 65, 65, 89, 65, 84, 72, 73, 89, 65, 128, 88, 79, 88, 128, 88, 79, 84, - 128, 88, 79, 82, 128, 88, 79, 80, 72, 128, 88, 79, 80, 128, 88, 79, 65, - 128, 88, 79, 128, 88, 73, 88, 128, 88, 73, 84, 128, 88, 73, 82, 79, 206, - 88, 73, 80, 128, 88, 73, 69, 88, 128, 88, 73, 69, 84, 128, 88, 73, 69, - 80, 128, 88, 73, 69, 128, 88, 73, 65, 78, 71, 81, 201, 88, 73, 65, 66, - 128, 88, 73, 128, 88, 72, 69, 89, 78, 128, 88, 71, 128, 88, 69, 89, 78, - 128, 88, 69, 83, 84, 69, 211, 88, 69, 72, 128, 88, 69, 69, 128, 88, 69, - 128, 88, 65, 85, 83, 128, 88, 65, 85, 128, 88, 65, 80, 72, 128, 88, 65, - 78, 128, 88, 65, 65, 128, 88, 65, 128, 88, 48, 48, 56, 65, 128, 88, 48, - 48, 56, 128, 88, 48, 48, 55, 128, 88, 48, 48, 54, 65, 128, 88, 48, 48, - 54, 128, 88, 48, 48, 53, 128, 88, 48, 48, 52, 66, 128, 88, 48, 48, 52, - 65, 128, 88, 48, 48, 52, 128, 88, 48, 48, 51, 128, 88, 48, 48, 50, 128, - 88, 48, 48, 49, 128, 88, 45, 216, 88, 45, 82, 65, 89, 128, 87, 90, 128, - 87, 89, 78, 78, 128, 87, 89, 78, 206, 87, 86, 73, 128, 87, 86, 69, 128, - 87, 86, 65, 128, 87, 86, 128, 87, 85, 80, 128, 87, 85, 79, 88, 128, 87, - 85, 79, 80, 128, 87, 85, 79, 128, 87, 85, 78, 74, 207, 87, 85, 78, 128, - 87, 85, 76, 85, 128, 87, 85, 76, 213, 87, 85, 73, 128, 87, 85, 69, 128, - 87, 85, 65, 69, 84, 128, 87, 85, 65, 69, 78, 128, 87, 85, 128, 87, 82, - 217, 87, 82, 79, 78, 71, 128, 87, 82, 73, 83, 212, 87, 82, 73, 78, 75, - 76, 69, 83, 128, 87, 82, 73, 78, 75, 76, 69, 211, 87, 82, 73, 78, 75, 76, - 69, 68, 128, 87, 82, 69, 83, 84, 76, 69, 82, 83, 128, 87, 82, 69, 78, 67, - 72, 128, 87, 82, 69, 65, 84, 200, 87, 82, 65, 80, 80, 69, 196, 87, 82, - 65, 80, 128, 87, 79, 88, 128, 87, 79, 87, 128, 87, 79, 82, 83, 72, 73, - 80, 128, 87, 79, 82, 82, 73, 69, 196, 87, 79, 82, 77, 128, 87, 79, 82, - 76, 196, 87, 79, 82, 75, 69, 82, 128, 87, 79, 82, 75, 128, 87, 79, 82, - 203, 87, 79, 82, 68, 83, 80, 65, 67, 69, 128, 87, 79, 82, 196, 87, 79, - 80, 128, 87, 79, 79, 78, 128, 87, 79, 79, 76, 128, 87, 79, 79, 68, 83, - 45, 67, 82, 69, 197, 87, 79, 79, 68, 128, 87, 79, 78, 128, 87, 79, 206, - 87, 79, 77, 69, 78, 211, 87, 79, 77, 69, 206, 87, 79, 77, 65, 78, 211, - 87, 79, 77, 65, 78, 128, 87, 79, 77, 65, 206, 87, 79, 76, 79, 83, 79, - 128, 87, 79, 76, 198, 87, 79, 69, 128, 87, 79, 65, 128, 87, 79, 45, 55, - 128, 87, 79, 45, 54, 128, 87, 79, 45, 53, 128, 87, 79, 45, 52, 128, 87, - 79, 45, 51, 128, 87, 79, 45, 50, 128, 87, 79, 45, 49, 128, 87, 73, 84, - 72, 79, 85, 212, 87, 73, 84, 72, 73, 78, 128, 87, 73, 84, 72, 73, 206, - 87, 73, 82, 69, 76, 69, 83, 83, 128, 87, 73, 82, 69, 196, 87, 73, 78, 84, - 69, 82, 128, 87, 73, 78, 75, 73, 78, 199, 87, 73, 78, 75, 128, 87, 73, - 78, 74, 65, 128, 87, 73, 78, 71, 83, 128, 87, 73, 78, 71, 128, 87, 73, - 78, 69, 128, 87, 73, 78, 197, 87, 73, 78, 68, 85, 128, 87, 73, 78, 68, - 79, 87, 128, 87, 73, 78, 68, 128, 87, 73, 78, 196, 87, 73, 78, 128, 87, - 73, 76, 84, 69, 196, 87, 73, 71, 78, 89, 65, 78, 128, 87, 73, 71, 71, 76, - 217, 87, 73, 71, 71, 76, 69, 83, 128, 87, 73, 68, 84, 72, 128, 87, 73, - 68, 69, 78, 73, 78, 199, 87, 73, 68, 69, 45, 72, 69, 65, 68, 69, 196, 87, - 73, 68, 197, 87, 73, 65, 78, 71, 87, 65, 65, 75, 128, 87, 73, 65, 78, 71, - 128, 87, 73, 45, 53, 128, 87, 73, 45, 52, 128, 87, 73, 45, 51, 128, 87, - 73, 45, 50, 128, 87, 73, 45, 49, 128, 87, 72, 79, 76, 197, 87, 72, 73, - 84, 69, 45, 70, 69, 65, 84, 72, 69, 82, 69, 196, 87, 72, 73, 84, 69, 128, - 87, 72, 69, 69, 76, 69, 196, 87, 72, 69, 69, 76, 67, 72, 65, 73, 82, 128, - 87, 72, 69, 69, 76, 67, 72, 65, 73, 210, 87, 72, 69, 69, 76, 128, 87, 72, - 69, 69, 204, 87, 72, 69, 65, 84, 128, 87, 72, 65, 76, 69, 128, 87, 72, - 128, 87, 71, 128, 87, 69, 88, 128, 87, 69, 85, 88, 128, 87, 69, 212, 87, - 69, 83, 84, 69, 82, 206, 87, 69, 83, 84, 45, 67, 82, 69, 197, 87, 69, 83, - 84, 128, 87, 69, 83, 212, 87, 69, 80, 128, 87, 69, 79, 128, 87, 69, 78, - 128, 87, 69, 76, 76, 128, 87, 69, 73, 71, 72, 212, 87, 69, 73, 69, 82, - 83, 84, 82, 65, 83, 211, 87, 69, 73, 128, 87, 69, 69, 78, 128, 87, 69, - 68, 71, 69, 45, 84, 65, 73, 76, 69, 196, 87, 69, 68, 71, 69, 128, 87, 69, - 68, 68, 73, 78, 71, 128, 87, 69, 66, 128, 87, 69, 65, 82, 217, 87, 69, - 65, 80, 79, 78, 128, 87, 69, 45, 52, 128, 87, 69, 45, 51, 128, 87, 69, - 45, 50, 128, 87, 69, 45, 49, 128, 87, 67, 128, 87, 66, 128, 87, 65, 89, - 128, 87, 65, 217, 87, 65, 88, 73, 78, 199, 87, 65, 88, 128, 87, 65, 87, - 45, 65, 89, 73, 78, 45, 82, 69, 83, 72, 128, 87, 65, 87, 128, 87, 65, - 215, 87, 65, 86, 217, 87, 65, 86, 73, 78, 199, 87, 65, 86, 69, 83, 128, - 87, 65, 86, 69, 128, 87, 65, 86, 197, 87, 65, 85, 128, 87, 65, 84, 84, - 79, 128, 87, 65, 84, 69, 82, 77, 69, 76, 79, 78, 128, 87, 65, 84, 69, 82, - 128, 87, 65, 84, 69, 210, 87, 65, 84, 67, 72, 128, 87, 65, 84, 128, 87, - 65, 83, 84, 73, 78, 71, 128, 87, 65, 83, 84, 69, 66, 65, 83, 75, 69, 84, - 128, 87, 65, 83, 83, 65, 76, 76, 65, 77, 128, 87, 65, 83, 76, 65, 128, - 87, 65, 83, 76, 193, 87, 65, 83, 65, 76, 76, 65, 77, 128, 87, 65, 83, 65, - 76, 76, 65, 205, 87, 65, 83, 45, 83, 65, 76, 65, 65, 77, 128, 87, 65, 82, - 78, 73, 78, 199, 87, 65, 82, 65, 78, 199, 87, 65, 81, 70, 65, 128, 87, - 65, 80, 128, 87, 65, 78, 73, 78, 199, 87, 65, 78, 71, 75, 85, 79, 81, - 128, 87, 65, 78, 68, 69, 82, 69, 82, 128, 87, 65, 78, 68, 128, 87, 65, - 78, 67, 72, 207, 87, 65, 78, 128, 87, 65, 76, 76, 80, 76, 65, 78, 197, - 87, 65, 76, 76, 69, 196, 87, 65, 76, 76, 128, 87, 65, 76, 204, 87, 65, - 76, 75, 128, 87, 65, 76, 203, 87, 65, 73, 84, 73, 78, 71, 128, 87, 65, - 73, 83, 84, 128, 87, 65, 73, 128, 87, 65, 70, 70, 76, 69, 128, 87, 65, - 69, 78, 128, 87, 65, 69, 128, 87, 65, 68, 68, 65, 128, 87, 65, 65, 86, - 85, 128, 87, 65, 65, 74, 73, 66, 128, 87, 65, 65, 65, 76, 73, 72, 69, - 197, 87, 65, 45, 84, 65, 65, 65, 76, 65, 65, 128, 87, 65, 45, 83, 65, 76, - 76, 65, 77, 128, 87, 65, 45, 65, 65, 76, 73, 72, 128, 87, 65, 45, 53, - 128, 87, 65, 45, 52, 128, 87, 65, 45, 51, 128, 87, 65, 45, 50, 128, 87, - 65, 45, 49, 128, 87, 193, 87, 48, 50, 53, 128, 87, 48, 50, 52, 65, 128, - 87, 48, 50, 52, 128, 87, 48, 50, 51, 128, 87, 48, 50, 50, 128, 87, 48, - 50, 49, 128, 87, 48, 50, 48, 128, 87, 48, 49, 57, 128, 87, 48, 49, 56, - 65, 128, 87, 48, 49, 56, 128, 87, 48, 49, 55, 65, 128, 87, 48, 49, 55, - 128, 87, 48, 49, 54, 128, 87, 48, 49, 53, 128, 87, 48, 49, 52, 65, 128, - 87, 48, 49, 52, 128, 87, 48, 49, 51, 128, 87, 48, 49, 50, 128, 87, 48, - 49, 49, 128, 87, 48, 49, 48, 65, 128, 87, 48, 49, 48, 128, 87, 48, 48, - 57, 65, 128, 87, 48, 48, 57, 128, 87, 48, 48, 56, 128, 87, 48, 48, 55, - 128, 87, 48, 48, 54, 128, 87, 48, 48, 53, 128, 87, 48, 48, 52, 128, 87, - 48, 48, 51, 65, 128, 87, 48, 48, 51, 128, 87, 48, 48, 50, 128, 87, 48, - 48, 49, 128, 86, 90, 77, 69, 84, 128, 86, 90, 128, 86, 89, 88, 128, 86, - 89, 84, 128, 86, 89, 83, 79, 75, 79, 128, 86, 89, 83, 79, 75, 207, 86, - 89, 82, 88, 128, 86, 89, 82, 128, 86, 89, 80, 128, 86, 89, 128, 86, 88, - 128, 86, 87, 74, 128, 86, 87, 65, 128, 86, 87, 128, 86, 85, 88, 128, 86, - 85, 85, 128, 86, 85, 84, 128, 86, 85, 82, 88, 128, 86, 85, 82, 128, 86, - 85, 80, 128, 86, 85, 76, 71, 65, 210, 86, 85, 76, 67, 65, 78, 85, 83, - 128, 86, 85, 69, 81, 128, 86, 84, 83, 128, 86, 84, 128, 86, 83, 57, 57, - 128, 86, 83, 57, 56, 128, 86, 83, 57, 55, 128, 86, 83, 57, 54, 128, 86, - 83, 57, 53, 128, 86, 83, 57, 52, 128, 86, 83, 57, 51, 128, 86, 83, 57, - 50, 128, 86, 83, 57, 49, 128, 86, 83, 57, 48, 128, 86, 83, 57, 128, 86, - 83, 56, 57, 128, 86, 83, 56, 56, 128, 86, 83, 56, 55, 128, 86, 83, 56, - 54, 128, 86, 83, 56, 53, 128, 86, 83, 56, 52, 128, 86, 83, 56, 51, 128, - 86, 83, 56, 50, 128, 86, 83, 56, 49, 128, 86, 83, 56, 48, 128, 86, 83, - 56, 128, 86, 83, 55, 57, 128, 86, 83, 55, 56, 128, 86, 83, 55, 55, 128, - 86, 83, 55, 54, 128, 86, 83, 55, 53, 128, 86, 83, 55, 52, 128, 86, 83, - 55, 51, 128, 86, 83, 55, 50, 128, 86, 83, 55, 49, 128, 86, 83, 55, 48, - 128, 86, 83, 55, 128, 86, 83, 54, 57, 128, 86, 83, 54, 56, 128, 86, 83, - 54, 55, 128, 86, 83, 54, 54, 128, 86, 83, 54, 53, 128, 86, 83, 54, 52, - 128, 86, 83, 54, 51, 128, 86, 83, 54, 50, 128, 86, 83, 54, 49, 128, 86, - 83, 54, 48, 128, 86, 83, 54, 128, 86, 83, 53, 57, 128, 86, 83, 53, 56, - 128, 86, 83, 53, 55, 128, 86, 83, 53, 54, 128, 86, 83, 53, 53, 128, 86, - 83, 53, 52, 128, 86, 83, 53, 51, 128, 86, 83, 53, 50, 128, 86, 83, 53, - 49, 128, 86, 83, 53, 48, 128, 86, 83, 53, 128, 86, 83, 52, 57, 128, 86, - 83, 52, 56, 128, 86, 83, 52, 55, 128, 86, 83, 52, 54, 128, 86, 83, 52, - 53, 128, 86, 83, 52, 52, 128, 86, 83, 52, 51, 128, 86, 83, 52, 50, 128, - 86, 83, 52, 49, 128, 86, 83, 52, 48, 128, 86, 83, 52, 128, 86, 83, 51, - 57, 128, 86, 83, 51, 56, 128, 86, 83, 51, 55, 128, 86, 83, 51, 54, 128, - 86, 83, 51, 53, 128, 86, 83, 51, 52, 128, 86, 83, 51, 51, 128, 86, 83, - 51, 50, 128, 86, 83, 51, 49, 128, 86, 83, 51, 48, 128, 86, 83, 51, 128, - 86, 83, 50, 57, 128, 86, 83, 50, 56, 128, 86, 83, 50, 55, 128, 86, 83, - 50, 54, 128, 86, 83, 50, 53, 54, 128, 86, 83, 50, 53, 53, 128, 86, 83, - 50, 53, 52, 128, 86, 83, 50, 53, 51, 128, 86, 83, 50, 53, 50, 128, 86, - 83, 50, 53, 49, 128, 86, 83, 50, 53, 48, 128, 86, 83, 50, 53, 128, 86, - 83, 50, 52, 57, 128, 86, 83, 50, 52, 56, 128, 86, 83, 50, 52, 55, 128, - 86, 83, 50, 52, 54, 128, 86, 83, 50, 52, 53, 128, 86, 83, 50, 52, 52, - 128, 86, 83, 50, 52, 51, 128, 86, 83, 50, 52, 50, 128, 86, 83, 50, 52, - 49, 128, 86, 83, 50, 52, 48, 128, 86, 83, 50, 52, 128, 86, 83, 50, 51, - 57, 128, 86, 83, 50, 51, 56, 128, 86, 83, 50, 51, 55, 128, 86, 83, 50, - 51, 54, 128, 86, 83, 50, 51, 53, 128, 86, 83, 50, 51, 52, 128, 86, 83, - 50, 51, 51, 128, 86, 83, 50, 51, 50, 128, 86, 83, 50, 51, 49, 128, 86, - 83, 50, 51, 48, 128, 86, 83, 50, 51, 128, 86, 83, 50, 50, 57, 128, 86, - 83, 50, 50, 56, 128, 86, 83, 50, 50, 55, 128, 86, 83, 50, 50, 54, 128, - 86, 83, 50, 50, 53, 128, 86, 83, 50, 50, 52, 128, 86, 83, 50, 50, 51, - 128, 86, 83, 50, 50, 50, 128, 86, 83, 50, 50, 49, 128, 86, 83, 50, 50, - 48, 128, 86, 83, 50, 50, 128, 86, 83, 50, 49, 57, 128, 86, 83, 50, 49, - 56, 128, 86, 83, 50, 49, 55, 128, 86, 83, 50, 49, 54, 128, 86, 83, 50, - 49, 53, 128, 86, 83, 50, 49, 52, 128, 86, 83, 50, 49, 51, 128, 86, 83, - 50, 49, 50, 128, 86, 83, 50, 49, 49, 128, 86, 83, 50, 49, 48, 128, 86, - 83, 50, 49, 128, 86, 83, 50, 48, 57, 128, 86, 83, 50, 48, 56, 128, 86, - 83, 50, 48, 55, 128, 86, 83, 50, 48, 54, 128, 86, 83, 50, 48, 53, 128, - 86, 83, 50, 48, 52, 128, 86, 83, 50, 48, 51, 128, 86, 83, 50, 48, 50, - 128, 86, 83, 50, 48, 49, 128, 86, 83, 50, 48, 48, 128, 86, 83, 50, 48, - 128, 86, 83, 50, 128, 86, 83, 49, 57, 57, 128, 86, 83, 49, 57, 56, 128, - 86, 83, 49, 57, 55, 128, 86, 83, 49, 57, 54, 128, 86, 83, 49, 57, 53, - 128, 86, 83, 49, 57, 52, 128, 86, 83, 49, 57, 51, 128, 86, 83, 49, 57, - 50, 128, 86, 83, 49, 57, 49, 128, 86, 83, 49, 57, 48, 128, 86, 83, 49, - 57, 128, 86, 83, 49, 56, 57, 128, 86, 83, 49, 56, 56, 128, 86, 83, 49, - 56, 55, 128, 86, 83, 49, 56, 54, 128, 86, 83, 49, 56, 53, 128, 86, 83, - 49, 56, 52, 128, 86, 83, 49, 56, 51, 128, 86, 83, 49, 56, 50, 128, 86, - 83, 49, 56, 49, 128, 86, 83, 49, 56, 48, 128, 86, 83, 49, 56, 128, 86, - 83, 49, 55, 57, 128, 86, 83, 49, 55, 56, 128, 86, 83, 49, 55, 55, 128, - 86, 83, 49, 55, 54, 128, 86, 83, 49, 55, 53, 128, 86, 83, 49, 55, 52, - 128, 86, 83, 49, 55, 51, 128, 86, 83, 49, 55, 50, 128, 86, 83, 49, 55, - 49, 128, 86, 83, 49, 55, 48, 128, 86, 83, 49, 55, 128, 86, 83, 49, 54, - 57, 128, 86, 83, 49, 54, 56, 128, 86, 83, 49, 54, 55, 128, 86, 83, 49, - 54, 54, 128, 86, 83, 49, 54, 53, 128, 86, 83, 49, 54, 52, 128, 86, 83, - 49, 54, 51, 128, 86, 83, 49, 54, 50, 128, 86, 83, 49, 54, 49, 128, 86, - 83, 49, 54, 48, 128, 86, 83, 49, 54, 128, 86, 83, 49, 53, 57, 128, 86, - 83, 49, 53, 56, 128, 86, 83, 49, 53, 55, 128, 86, 83, 49, 53, 54, 128, - 86, 83, 49, 53, 53, 128, 86, 83, 49, 53, 52, 128, 86, 83, 49, 53, 51, - 128, 86, 83, 49, 53, 50, 128, 86, 83, 49, 53, 49, 128, 86, 83, 49, 53, - 48, 128, 86, 83, 49, 53, 128, 86, 83, 49, 52, 57, 128, 86, 83, 49, 52, - 56, 128, 86, 83, 49, 52, 55, 128, 86, 83, 49, 52, 54, 128, 86, 83, 49, - 52, 53, 128, 86, 83, 49, 52, 52, 128, 86, 83, 49, 52, 51, 128, 86, 83, - 49, 52, 50, 128, 86, 83, 49, 52, 49, 128, 86, 83, 49, 52, 48, 128, 86, - 83, 49, 52, 128, 86, 83, 49, 51, 57, 128, 86, 83, 49, 51, 56, 128, 86, - 83, 49, 51, 55, 128, 86, 83, 49, 51, 54, 128, 86, 83, 49, 51, 53, 128, - 86, 83, 49, 51, 52, 128, 86, 83, 49, 51, 51, 128, 86, 83, 49, 51, 50, - 128, 86, 83, 49, 51, 49, 128, 86, 83, 49, 51, 48, 128, 86, 83, 49, 51, - 128, 86, 83, 49, 50, 57, 128, 86, 83, 49, 50, 56, 128, 86, 83, 49, 50, - 55, 128, 86, 83, 49, 50, 54, 128, 86, 83, 49, 50, 53, 128, 86, 83, 49, - 50, 52, 128, 86, 83, 49, 50, 51, 128, 86, 83, 49, 50, 50, 128, 86, 83, - 49, 50, 49, 128, 86, 83, 49, 50, 48, 128, 86, 83, 49, 50, 128, 86, 83, - 49, 49, 57, 128, 86, 83, 49, 49, 56, 128, 86, 83, 49, 49, 55, 128, 86, - 83, 49, 49, 54, 128, 86, 83, 49, 49, 53, 128, 86, 83, 49, 49, 52, 128, - 86, 83, 49, 49, 51, 128, 86, 83, 49, 49, 50, 128, 86, 83, 49, 49, 49, - 128, 86, 83, 49, 49, 48, 128, 86, 83, 49, 49, 128, 86, 83, 49, 48, 57, - 128, 86, 83, 49, 48, 56, 128, 86, 83, 49, 48, 55, 128, 86, 83, 49, 48, - 54, 128, 86, 83, 49, 48, 53, 128, 86, 83, 49, 48, 52, 128, 86, 83, 49, - 48, 51, 128, 86, 83, 49, 48, 50, 128, 86, 83, 49, 48, 49, 128, 86, 83, - 49, 48, 48, 128, 86, 83, 49, 48, 128, 86, 83, 49, 128, 86, 83, 128, 86, - 82, 65, 75, 72, 73, 89, 193, 86, 82, 65, 67, 72, 89, 128, 86, 81, 128, - 86, 79, 88, 128, 86, 79, 87, 69, 76, 45, 67, 65, 82, 82, 73, 69, 210, 86, - 79, 87, 128, 86, 79, 85, 128, 86, 79, 84, 128, 86, 79, 211, 86, 79, 80, - 128, 86, 79, 79, 73, 128, 86, 79, 79, 128, 86, 79, 77, 73, 84, 73, 78, - 71, 128, 86, 79, 77, 128, 86, 79, 76, 85, 77, 197, 86, 79, 76, 84, 65, - 71, 197, 86, 79, 76, 76, 69, 89, 66, 65, 76, 76, 128, 86, 79, 76, 67, 65, - 78, 79, 128, 86, 79, 76, 65, 80, 85, 203, 86, 79, 73, 68, 69, 196, 86, - 79, 73, 196, 86, 79, 73, 67, 73, 78, 71, 128, 86, 79, 73, 67, 69, 76, 69, - 83, 211, 86, 79, 73, 67, 69, 196, 86, 79, 68, 128, 86, 79, 67, 65, 76, - 73, 90, 65, 84, 73, 79, 206, 86, 79, 67, 65, 204, 86, 79, 128, 86, 73, - 89, 79, 128, 86, 73, 88, 128, 86, 73, 84, 82, 73, 79, 76, 45, 50, 128, - 86, 73, 84, 82, 73, 79, 76, 128, 86, 73, 84, 72, 75, 85, 81, 201, 86, 73, - 84, 65, 69, 45, 50, 128, 86, 73, 84, 65, 69, 128, 86, 73, 84, 128, 86, - 73, 83, 73, 71, 79, 84, 72, 73, 195, 86, 73, 83, 65, 82, 71, 65, 89, 65, - 128, 86, 73, 83, 65, 82, 71, 65, 128, 86, 73, 83, 65, 82, 71, 193, 86, - 73, 82, 73, 65, 77, 128, 86, 73, 82, 71, 79, 128, 86, 73, 82, 71, 65, - 128, 86, 73, 82, 65, 77, 65, 128, 86, 73, 80, 128, 86, 73, 79, 76, 73, - 78, 128, 86, 73, 78, 69, 71, 65, 82, 45, 51, 128, 86, 73, 78, 69, 71, 65, - 82, 45, 50, 128, 86, 73, 78, 69, 71, 65, 82, 128, 86, 73, 78, 69, 71, 65, - 210, 86, 73, 78, 69, 128, 86, 73, 78, 197, 86, 73, 78, 128, 86, 73, 76, - 76, 65, 71, 69, 128, 86, 73, 73, 128, 86, 73, 71, 73, 78, 84, 73, 76, 69, - 128, 86, 73, 69, 88, 128, 86, 73, 69, 87, 73, 78, 199, 86, 73, 69, 87, - 69, 82, 128, 86, 73, 69, 87, 68, 65, 84, 193, 86, 73, 69, 84, 78, 65, 77, - 69, 83, 197, 86, 73, 69, 84, 128, 86, 73, 69, 212, 86, 73, 69, 80, 128, - 86, 73, 69, 128, 86, 73, 68, 74, 45, 50, 128, 86, 73, 68, 74, 128, 86, - 73, 68, 69, 79, 67, 65, 83, 83, 69, 84, 84, 69, 128, 86, 73, 68, 69, 207, - 86, 73, 68, 65, 128, 86, 73, 67, 84, 79, 82, 217, 86, 73, 66, 82, 65, 84, - 73, 79, 206, 86, 72, 65, 128, 86, 70, 65, 128, 86, 69, 89, 90, 128, 86, - 69, 88, 128, 86, 69, 87, 128, 86, 69, 215, 86, 69, 85, 88, 128, 86, 69, - 85, 77, 128, 86, 69, 85, 65, 69, 80, 69, 78, 128, 86, 69, 85, 65, 69, - 128, 86, 69, 83, 84, 65, 128, 86, 69, 83, 84, 128, 86, 69, 83, 83, 69, - 204, 86, 69, 82, 217, 86, 69, 82, 84, 73, 67, 65, 76, 76, 89, 128, 86, - 69, 82, 84, 73, 67, 65, 76, 76, 217, 86, 69, 82, 84, 73, 67, 65, 76, 45, - 48, 54, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 54, 45, - 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 54, 45, 48, 52, 128, - 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 54, 45, 48, 51, 128, 86, 69, 82, - 84, 73, 67, 65, 76, 45, 48, 54, 45, 48, 50, 128, 86, 69, 82, 84, 73, 67, - 65, 76, 45, 48, 54, 45, 48, 49, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, - 48, 54, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 53, 45, - 48, 54, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 53, 45, 48, 53, 128, - 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 53, 45, 48, 52, 128, 86, 69, 82, - 84, 73, 67, 65, 76, 45, 48, 53, 45, 48, 51, 128, 86, 69, 82, 84, 73, 67, - 65, 76, 45, 48, 53, 45, 48, 50, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, - 48, 53, 45, 48, 49, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 53, 45, - 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 52, 45, 48, 54, 128, - 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 52, 45, 48, 53, 128, 86, 69, 82, - 84, 73, 67, 65, 76, 45, 48, 52, 45, 48, 52, 128, 86, 69, 82, 84, 73, 67, - 65, 76, 45, 48, 52, 45, 48, 51, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, - 48, 52, 45, 48, 50, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 52, 45, - 48, 49, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 52, 45, 48, 48, 128, - 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, 54, 128, 86, 69, 82, - 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, - 65, 76, 45, 48, 51, 45, 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, - 48, 51, 45, 48, 51, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, - 48, 50, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, 49, 128, - 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, 48, 128, 86, 69, 82, - 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67, - 65, 76, 45, 48, 50, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, - 48, 50, 45, 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, - 48, 51, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 50, 128, - 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 49, 128, 86, 69, 82, - 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, - 65, 76, 45, 48, 49, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, - 48, 49, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 49, 45, - 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, 51, 128, - 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, 50, 128, 86, 69, 82, - 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, 49, 128, 86, 69, 82, 84, 73, 67, - 65, 76, 45, 48, 49, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, - 48, 48, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 48, 45, - 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 48, 45, 48, 52, 128, - 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 48, 45, 48, 51, 128, 86, 69, 82, - 84, 73, 67, 65, 76, 45, 48, 48, 45, 48, 50, 128, 86, 69, 82, 84, 73, 67, - 65, 76, 45, 48, 48, 45, 48, 49, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, - 48, 48, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 128, 86, 69, 82, - 83, 73, 67, 76, 69, 128, 86, 69, 82, 83, 197, 86, 69, 82, 71, 69, 128, - 86, 69, 82, 68, 73, 71, 82, 73, 83, 128, 86, 69, 82, 128, 86, 69, 80, - 128, 86, 69, 78, 68, 128, 86, 69, 76, 73, 128, 86, 69, 73, 76, 128, 86, - 69, 72, 73, 67, 76, 69, 128, 86, 69, 72, 128, 86, 69, 200, 86, 69, 69, - 128, 86, 69, 197, 86, 69, 68, 69, 128, 86, 69, 67, 84, 79, 210, 86, 67, - 128, 86, 65, 89, 65, 78, 78, 65, 128, 86, 65, 88, 128, 86, 65, 86, 128, - 86, 65, 214, 86, 65, 85, 128, 86, 65, 84, 72, 89, 128, 86, 65, 84, 128, - 86, 65, 83, 84, 78, 69, 83, 211, 86, 65, 83, 73, 83, 128, 86, 65, 82, 89, - 211, 86, 65, 82, 73, 75, 65, 128, 86, 65, 82, 73, 65, 78, 84, 128, 86, - 65, 82, 73, 65, 78, 212, 86, 65, 82, 73, 65, 128, 86, 65, 82, 73, 193, - 86, 65, 82, 69, 73, 65, 201, 86, 65, 82, 69, 73, 193, 86, 65, 82, 65, 65, - 75, 65, 78, 128, 86, 65, 80, 79, 85, 82, 83, 128, 86, 65, 80, 128, 86, - 65, 78, 69, 128, 86, 65, 77, 80, 73, 82, 69, 128, 86, 65, 77, 65, 71, 79, - 77, 85, 75, 72, 65, 128, 86, 65, 77, 65, 71, 79, 77, 85, 75, 72, 193, 86, - 65, 76, 76, 69, 89, 128, 86, 65, 75, 65, 73, 89, 65, 82, 65, 65, 128, 86, - 65, 74, 128, 86, 65, 73, 128, 86, 65, 72, 128, 86, 65, 200, 86, 65, 65, - 86, 85, 128, 86, 65, 65, 128, 86, 193, 86, 48, 52, 48, 65, 128, 86, 48, - 52, 48, 128, 86, 48, 51, 57, 128, 86, 48, 51, 56, 128, 86, 48, 51, 55, - 65, 128, 86, 48, 51, 55, 128, 86, 48, 51, 54, 128, 86, 48, 51, 53, 128, - 86, 48, 51, 52, 128, 86, 48, 51, 51, 65, 128, 86, 48, 51, 51, 128, 86, - 48, 51, 50, 128, 86, 48, 51, 49, 65, 128, 86, 48, 51, 49, 128, 86, 48, - 51, 48, 65, 128, 86, 48, 51, 48, 128, 86, 48, 50, 57, 65, 128, 86, 48, - 50, 57, 128, 86, 48, 50, 56, 65, 128, 86, 48, 50, 56, 128, 86, 48, 50, - 55, 128, 86, 48, 50, 54, 128, 86, 48, 50, 53, 128, 86, 48, 50, 52, 128, - 86, 48, 50, 51, 65, 128, 86, 48, 50, 51, 128, 86, 48, 50, 50, 128, 86, - 48, 50, 49, 128, 86, 48, 50, 48, 76, 128, 86, 48, 50, 48, 75, 128, 86, - 48, 50, 48, 74, 128, 86, 48, 50, 48, 73, 128, 86, 48, 50, 48, 72, 128, - 86, 48, 50, 48, 71, 128, 86, 48, 50, 48, 70, 128, 86, 48, 50, 48, 69, - 128, 86, 48, 50, 48, 68, 128, 86, 48, 50, 48, 67, 128, 86, 48, 50, 48, - 66, 128, 86, 48, 50, 48, 65, 128, 86, 48, 50, 48, 128, 86, 48, 49, 57, - 128, 86, 48, 49, 56, 128, 86, 48, 49, 55, 128, 86, 48, 49, 54, 128, 86, - 48, 49, 53, 128, 86, 48, 49, 52, 128, 86, 48, 49, 51, 128, 86, 48, 49, - 50, 66, 128, 86, 48, 49, 50, 65, 128, 86, 48, 49, 50, 128, 86, 48, 49, - 49, 68, 128, 86, 48, 49, 49, 67, 128, 86, 48, 49, 49, 66, 128, 86, 48, - 49, 49, 65, 128, 86, 48, 49, 49, 128, 86, 48, 49, 48, 128, 86, 48, 48, - 57, 128, 86, 48, 48, 56, 128, 86, 48, 48, 55, 66, 128, 86, 48, 48, 55, - 65, 128, 86, 48, 48, 55, 128, 86, 48, 48, 54, 128, 86, 48, 48, 53, 128, - 86, 48, 48, 52, 128, 86, 48, 48, 51, 128, 86, 48, 48, 50, 65, 128, 86, - 48, 48, 50, 128, 86, 48, 48, 49, 73, 128, 86, 48, 48, 49, 72, 128, 86, - 48, 48, 49, 71, 128, 86, 48, 48, 49, 70, 128, 86, 48, 48, 49, 69, 128, - 86, 48, 48, 49, 68, 128, 86, 48, 48, 49, 67, 128, 86, 48, 48, 49, 66, - 128, 86, 48, 48, 49, 65, 128, 86, 48, 48, 49, 128, 85, 90, 85, 128, 85, - 90, 72, 65, 75, 75, 85, 128, 85, 90, 51, 128, 85, 90, 179, 85, 90, 128, - 85, 89, 71, 72, 85, 210, 85, 89, 65, 78, 78, 65, 128, 85, 89, 128, 85, - 87, 85, 128, 85, 85, 89, 65, 78, 78, 65, 128, 85, 85, 85, 85, 128, 85, - 85, 85, 51, 128, 85, 85, 85, 50, 128, 85, 85, 69, 128, 85, 84, 85, 75, - 73, 128, 85, 83, 83, 85, 51, 128, 85, 83, 83, 85, 128, 85, 83, 72, 88, - 128, 85, 83, 72, 85, 77, 88, 128, 85, 83, 72, 69, 78, 78, 65, 128, 85, - 83, 72, 50, 128, 85, 83, 72, 128, 85, 83, 200, 85, 83, 69, 196, 85, 83, - 69, 45, 50, 128, 85, 83, 69, 45, 49, 128, 85, 83, 69, 128, 85, 83, 197, - 85, 82, 85, 218, 85, 82, 85, 83, 128, 85, 82, 85, 68, 65, 128, 85, 82, - 85, 68, 193, 85, 82, 85, 128, 85, 82, 213, 85, 82, 78, 128, 85, 82, 73, - 78, 69, 128, 85, 82, 73, 51, 128, 85, 82, 73, 128, 85, 82, 65, 78, 85, - 83, 128, 85, 82, 65, 128, 85, 82, 52, 128, 85, 82, 50, 128, 85, 82, 178, - 85, 80, 87, 65, 82, 68, 83, 128, 85, 80, 87, 65, 82, 68, 211, 85, 80, 87, - 65, 82, 68, 128, 85, 80, 87, 65, 82, 196, 85, 80, 84, 85, 82, 78, 128, - 85, 80, 83, 73, 76, 79, 78, 128, 85, 80, 83, 73, 76, 79, 206, 85, 80, 83, - 73, 68, 69, 45, 68, 79, 87, 206, 85, 80, 82, 73, 71, 72, 212, 85, 80, 80, - 69, 82, 128, 85, 80, 65, 68, 72, 77, 65, 78, 73, 89, 65, 128, 85, 80, 45, - 80, 79, 73, 78, 84, 73, 78, 199, 85, 79, 78, 128, 85, 79, 71, 128, 85, - 78, 78, 128, 85, 78, 77, 65, 82, 82, 73, 69, 196, 85, 78, 75, 78, 79, 87, - 78, 128, 85, 78, 75, 128, 85, 78, 73, 86, 69, 82, 83, 65, 204, 85, 78, - 73, 84, 89, 128, 85, 78, 73, 84, 69, 196, 85, 78, 73, 84, 128, 85, 78, - 73, 212, 85, 78, 73, 79, 78, 128, 85, 78, 73, 79, 206, 85, 78, 73, 70, - 79, 82, 77, 128, 85, 78, 73, 70, 73, 69, 196, 85, 78, 73, 67, 79, 82, - 206, 85, 78, 69, 86, 69, 206, 85, 78, 68, 207, 85, 78, 68, 69, 82, 84, - 73, 69, 128, 85, 78, 68, 69, 82, 76, 73, 78, 197, 85, 78, 68, 69, 82, 68, - 79, 84, 128, 85, 78, 68, 69, 82, 66, 65, 82, 128, 85, 78, 68, 69, 82, - 128, 85, 78, 68, 69, 210, 85, 78, 67, 73, 193, 85, 78, 67, 69, 82, 84, - 65, 73, 78, 84, 217, 85, 78, 66, 76, 69, 78, 68, 69, 196, 85, 78, 65, 83, - 80, 73, 82, 65, 84, 69, 68, 128, 85, 78, 65, 80, 128, 85, 78, 65, 77, 85, - 83, 69, 196, 85, 78, 65, 128, 85, 206, 85, 77, 85, 77, 128, 85, 77, 85, - 205, 85, 77, 66, 82, 69, 76, 76, 65, 128, 85, 77, 66, 82, 69, 76, 76, - 193, 85, 77, 66, 73, 78, 128, 85, 75, 85, 128, 85, 75, 82, 65, 73, 78, - 73, 65, 206, 85, 75, 65, 82, 65, 128, 85, 75, 65, 82, 193, 85, 75, 128, - 85, 73, 90, 128, 85, 73, 88, 128, 85, 73, 85, 90, 128, 85, 73, 85, 88, - 128, 85, 73, 85, 81, 128, 85, 73, 85, 67, 128, 85, 73, 81, 128, 85, 73, - 76, 76, 69, 65, 78, 78, 128, 85, 73, 71, 72, 85, 210, 85, 73, 67, 128, - 85, 72, 68, 128, 85, 71, 65, 82, 73, 84, 73, 195, 85, 69, 90, 128, 85, - 69, 89, 128, 85, 69, 88, 128, 85, 69, 78, 128, 85, 69, 73, 128, 85, 69, - 69, 128, 85, 69, 67, 128, 85, 69, 65, 128, 85, 68, 85, 71, 128, 85, 68, - 65, 84, 84, 65, 128, 85, 68, 65, 84, 84, 193, 85, 68, 65, 82, 75, 65, - 128, 85, 68, 65, 65, 84, 128, 85, 68, 128, 85, 196, 85, 66, 85, 70, 73, - 76, 73, 128, 85, 66, 72, 65, 89, 65, 84, 207, 85, 66, 65, 68, 65, 77, 65, - 128, 85, 66, 128, 85, 65, 84, 72, 128, 85, 65, 78, 71, 128, 85, 65, 128, - 85, 178, 85, 48, 52, 50, 128, 85, 48, 52, 49, 128, 85, 48, 52, 48, 128, - 85, 48, 51, 57, 128, 85, 48, 51, 56, 128, 85, 48, 51, 55, 128, 85, 48, - 51, 54, 128, 85, 48, 51, 53, 128, 85, 48, 51, 52, 128, 85, 48, 51, 51, - 128, 85, 48, 51, 50, 65, 128, 85, 48, 51, 50, 128, 85, 48, 51, 49, 128, - 85, 48, 51, 48, 128, 85, 48, 50, 57, 65, 128, 85, 48, 50, 57, 128, 85, - 48, 50, 56, 128, 85, 48, 50, 55, 128, 85, 48, 50, 54, 128, 85, 48, 50, - 53, 128, 85, 48, 50, 52, 128, 85, 48, 50, 51, 65, 128, 85, 48, 50, 51, - 128, 85, 48, 50, 50, 128, 85, 48, 50, 49, 128, 85, 48, 50, 48, 128, 85, - 48, 49, 57, 128, 85, 48, 49, 56, 128, 85, 48, 49, 55, 128, 85, 48, 49, - 54, 128, 85, 48, 49, 53, 128, 85, 48, 49, 52, 128, 85, 48, 49, 51, 128, - 85, 48, 49, 50, 128, 85, 48, 49, 49, 128, 85, 48, 49, 48, 128, 85, 48, - 48, 57, 128, 85, 48, 48, 56, 128, 85, 48, 48, 55, 128, 85, 48, 48, 54, - 66, 128, 85, 48, 48, 54, 65, 128, 85, 48, 48, 54, 128, 85, 48, 48, 53, - 128, 85, 48, 48, 52, 128, 85, 48, 48, 51, 128, 85, 48, 48, 50, 128, 85, - 48, 48, 49, 128, 85, 45, 83, 72, 65, 80, 69, 196, 85, 45, 73, 45, 73, - 128, 85, 45, 69, 79, 45, 69, 85, 128, 85, 45, 66, 82, 74, 71, 85, 128, - 85, 45, 53, 128, 84, 90, 85, 128, 84, 90, 79, 65, 128, 84, 90, 79, 128, - 84, 90, 73, 210, 84, 90, 73, 128, 84, 90, 69, 69, 128, 84, 90, 69, 128, - 84, 90, 65, 65, 128, 84, 90, 65, 128, 84, 90, 128, 84, 89, 210, 84, 89, - 80, 69, 45, 183, 84, 89, 80, 69, 45, 54, 128, 84, 89, 80, 69, 45, 182, - 84, 89, 80, 69, 45, 53, 128, 84, 89, 80, 69, 45, 181, 84, 89, 80, 69, 45, - 52, 128, 84, 89, 80, 69, 45, 180, 84, 89, 80, 69, 45, 51, 128, 84, 89, - 80, 69, 45, 179, 84, 89, 80, 69, 45, 178, 84, 89, 80, 69, 45, 49, 45, 50, - 128, 84, 89, 80, 69, 45, 177, 84, 89, 80, 197, 84, 89, 79, 128, 84, 89, - 73, 128, 84, 89, 69, 128, 84, 89, 65, 89, 128, 84, 89, 65, 128, 84, 88, - 87, 86, 128, 84, 88, 87, 214, 84, 88, 72, 69, 69, 202, 84, 88, 65, 128, - 84, 87, 79, 79, 128, 84, 87, 79, 45, 87, 65, 217, 84, 87, 79, 45, 84, 72, - 73, 82, 84, 89, 128, 84, 87, 79, 45, 76, 73, 78, 197, 84, 87, 79, 45, 72, - 69, 65, 68, 69, 196, 84, 87, 79, 45, 69, 205, 84, 87, 79, 45, 67, 73, 82, - 67, 76, 197, 84, 87, 73, 83, 84, 73, 78, 71, 128, 84, 87, 73, 83, 84, 69, - 196, 84, 87, 73, 73, 128, 84, 87, 73, 128, 84, 87, 69, 78, 84, 89, 45, - 84, 87, 79, 128, 84, 87, 69, 78, 84, 89, 45, 84, 87, 207, 84, 87, 69, 78, - 84, 89, 45, 84, 72, 82, 69, 69, 128, 84, 87, 69, 78, 84, 89, 45, 83, 73, - 88, 128, 84, 87, 69, 78, 84, 89, 45, 83, 69, 86, 69, 78, 128, 84, 87, 69, - 78, 84, 89, 45, 79, 78, 69, 128, 84, 87, 69, 78, 84, 89, 45, 78, 73, 78, - 69, 128, 84, 87, 69, 78, 84, 89, 45, 70, 79, 85, 82, 128, 84, 87, 69, 78, - 84, 89, 45, 70, 73, 86, 69, 128, 84, 87, 69, 78, 84, 89, 45, 70, 73, 86, - 197, 84, 87, 69, 78, 84, 89, 45, 69, 73, 71, 72, 84, 200, 84, 87, 69, 78, - 84, 89, 45, 69, 73, 71, 72, 84, 128, 84, 87, 69, 78, 84, 89, 128, 84, 87, - 69, 78, 84, 217, 84, 87, 69, 78, 84, 73, 69, 84, 72, 83, 128, 84, 87, 69, - 78, 84, 73, 69, 84, 72, 128, 84, 87, 69, 76, 86, 69, 45, 84, 72, 73, 82, - 84, 89, 128, 84, 87, 69, 76, 86, 69, 128, 84, 87, 69, 76, 86, 197, 84, - 87, 69, 76, 70, 84, 72, 83, 128, 84, 87, 69, 76, 70, 84, 72, 128, 84, 87, - 69, 128, 84, 87, 65, 65, 128, 84, 87, 65, 128, 84, 86, 82, 73, 68, 79, - 128, 84, 86, 73, 77, 65, 68, 85, 210, 84, 85, 88, 69, 68, 79, 128, 84, - 85, 88, 128, 84, 85, 85, 77, 85, 128, 84, 85, 85, 128, 84, 85, 84, 84, - 89, 128, 84, 85, 84, 69, 89, 65, 83, 65, 84, 128, 84, 85, 84, 128, 84, - 85, 82, 88, 128, 84, 85, 82, 85, 128, 84, 85, 82, 84, 76, 69, 128, 84, - 85, 82, 79, 50, 128, 84, 85, 82, 78, 83, 84, 73, 76, 69, 128, 84, 85, 82, - 206, 84, 85, 82, 75, 73, 83, 200, 84, 85, 82, 75, 73, 195, 84, 85, 82, - 75, 69, 89, 128, 84, 85, 82, 66, 65, 78, 128, 84, 85, 82, 128, 84, 85, - 210, 84, 85, 80, 78, 73, 128, 84, 85, 80, 128, 84, 85, 79, 88, 128, 84, - 85, 79, 84, 128, 84, 85, 79, 80, 128, 84, 85, 79, 128, 84, 85, 78, 78, - 89, 128, 84, 85, 77, 69, 84, 69, 83, 128, 84, 85, 77, 66, 76, 69, 210, - 84, 85, 77, 65, 69, 128, 84, 85, 77, 128, 84, 85, 205, 84, 85, 76, 73, - 80, 128, 84, 85, 75, 87, 69, 78, 84, 73, 83, 128, 84, 85, 75, 128, 84, - 85, 71, 82, 73, 203, 84, 85, 71, 50, 128, 84, 85, 71, 178, 84, 85, 66, - 69, 128, 84, 85, 66, 128, 84, 85, 65, 82, 69, 199, 84, 85, 65, 69, 80, - 128, 84, 85, 65, 69, 128, 84, 85, 45, 84, 79, 128, 84, 85, 45, 52, 128, - 84, 85, 45, 51, 128, 84, 85, 45, 50, 128, 84, 85, 45, 49, 128, 84, 213, - 84, 84, 85, 85, 128, 84, 84, 85, 68, 68, 65, 71, 128, 84, 84, 85, 68, 68, - 65, 65, 71, 128, 84, 84, 85, 128, 84, 84, 84, 72, 65, 128, 84, 84, 84, - 65, 128, 84, 84, 83, 85, 128, 84, 84, 83, 79, 128, 84, 84, 83, 73, 128, - 84, 84, 83, 69, 69, 128, 84, 84, 83, 69, 128, 84, 84, 83, 65, 128, 84, - 84, 79, 79, 128, 84, 84, 73, 73, 128, 84, 84, 73, 128, 84, 84, 72, 87, - 69, 128, 84, 84, 72, 85, 128, 84, 84, 72, 79, 79, 128, 84, 84, 72, 79, - 128, 84, 84, 72, 73, 128, 84, 84, 72, 69, 69, 128, 84, 84, 72, 69, 128, - 84, 84, 72, 65, 65, 128, 84, 84, 72, 128, 84, 84, 69, 72, 69, 72, 128, - 84, 84, 69, 72, 69, 200, 84, 84, 69, 72, 128, 84, 84, 69, 200, 84, 84, - 69, 69, 128, 84, 84, 65, 89, 65, 78, 78, 65, 128, 84, 84, 65, 85, 128, - 84, 84, 65, 73, 128, 84, 84, 65, 65, 128, 84, 84, 50, 128, 84, 83, 87, - 69, 128, 84, 83, 87, 66, 128, 84, 83, 87, 65, 128, 84, 83, 86, 128, 84, - 83, 83, 69, 128, 84, 83, 83, 65, 128, 84, 83, 79, 214, 84, 83, 73, 85, - 128, 84, 83, 72, 85, 71, 83, 128, 84, 83, 72, 79, 79, 75, 128, 84, 83, - 72, 79, 79, 203, 84, 83, 72, 79, 79, 74, 128, 84, 83, 72, 69, 83, 128, - 84, 83, 72, 69, 71, 128, 84, 83, 72, 69, 199, 84, 83, 72, 69, 69, 74, - 128, 84, 83, 72, 69, 128, 84, 83, 72, 65, 194, 84, 83, 72, 65, 128, 84, - 83, 69, 82, 69, 128, 84, 83, 69, 69, 66, 128, 84, 83, 65, 84, 193, 84, - 83, 65, 68, 73, 128, 84, 83, 65, 68, 201, 84, 83, 65, 66, 128, 84, 83, - 65, 65, 68, 73, 89, 128, 84, 83, 65, 65, 128, 84, 83, 193, 84, 82, 89, - 66, 76, 73, 79, 206, 84, 82, 89, 65, 83, 79, 83, 84, 82, 69, 76, 78, 65, - 89, 65, 128, 84, 82, 89, 65, 83, 79, 80, 79, 86, 79, 68, 78, 65, 89, 65, - 128, 84, 82, 89, 65, 83, 79, 71, 76, 65, 83, 78, 65, 89, 65, 128, 84, 82, - 89, 65, 83, 75, 65, 128, 84, 82, 85, 84, 72, 128, 84, 82, 85, 78, 75, - 128, 84, 82, 85, 78, 67, 65, 84, 69, 196, 84, 82, 85, 77, 80, 69, 84, - 128, 84, 82, 85, 77, 80, 45, 57, 128, 84, 82, 85, 77, 80, 45, 56, 128, - 84, 82, 85, 77, 80, 45, 55, 128, 84, 82, 85, 77, 80, 45, 54, 128, 84, 82, - 85, 77, 80, 45, 53, 128, 84, 82, 85, 77, 80, 45, 52, 128, 84, 82, 85, 77, - 80, 45, 51, 128, 84, 82, 85, 77, 80, 45, 50, 49, 128, 84, 82, 85, 77, 80, - 45, 50, 48, 128, 84, 82, 85, 77, 80, 45, 50, 128, 84, 82, 85, 77, 80, 45, - 49, 57, 128, 84, 82, 85, 77, 80, 45, 49, 56, 128, 84, 82, 85, 77, 80, 45, - 49, 55, 128, 84, 82, 85, 77, 80, 45, 49, 54, 128, 84, 82, 85, 77, 80, 45, - 49, 53, 128, 84, 82, 85, 77, 80, 45, 49, 52, 128, 84, 82, 85, 77, 80, 45, - 49, 51, 128, 84, 82, 85, 77, 80, 45, 49, 50, 128, 84, 82, 85, 77, 80, 45, - 49, 49, 128, 84, 82, 85, 77, 80, 45, 49, 48, 128, 84, 82, 85, 77, 80, 45, - 49, 128, 84, 82, 85, 69, 128, 84, 82, 85, 197, 84, 82, 85, 67, 75, 128, - 84, 82, 79, 80, 73, 67, 65, 204, 84, 82, 79, 80, 72, 89, 128, 84, 82, 79, - 77, 73, 75, 79, 83, 89, 78, 65, 71, 77, 65, 128, 84, 82, 79, 77, 73, 75, - 79, 80, 83, 73, 70, 73, 83, 84, 79, 78, 128, 84, 82, 79, 77, 73, 75, 79, - 80, 65, 82, 65, 75, 65, 76, 69, 83, 77, 65, 128, 84, 82, 79, 77, 73, 75, - 79, 78, 128, 84, 82, 79, 77, 73, 75, 79, 206, 84, 82, 79, 77, 73, 75, 79, - 76, 89, 71, 73, 83, 77, 65, 128, 84, 82, 79, 76, 76, 69, 89, 66, 85, 83, - 128, 84, 82, 79, 76, 76, 69, 89, 128, 84, 82, 79, 76, 76, 128, 84, 82, - 79, 75, 85, 84, 65, 83, 84, 201, 84, 82, 79, 69, 90, 69, 78, 73, 65, 206, - 84, 82, 73, 85, 77, 80, 72, 128, 84, 82, 73, 84, 79, 211, 84, 82, 73, 84, - 73, 77, 79, 82, 73, 79, 78, 128, 84, 82, 73, 83, 73, 77, 79, 85, 128, 84, - 82, 73, 83, 69, 77, 69, 128, 84, 82, 73, 80, 79, 68, 128, 84, 82, 73, 80, - 76, 73, 128, 84, 82, 73, 80, 76, 69, 128, 84, 82, 73, 80, 76, 197, 84, - 82, 73, 79, 206, 84, 82, 73, 76, 76, 73, 79, 78, 83, 128, 84, 82, 73, 76, - 76, 128, 84, 82, 73, 73, 83, 65, 80, 128, 84, 82, 73, 71, 82, 65, 77, 77, - 79, 211, 84, 82, 73, 71, 82, 65, 205, 84, 82, 73, 71, 79, 82, 71, 79, 78, - 128, 84, 82, 73, 70, 79, 78, 73, 65, 83, 128, 84, 82, 73, 70, 79, 76, 73, - 65, 84, 197, 84, 82, 73, 68, 69, 78, 84, 128, 84, 82, 73, 68, 69, 78, - 212, 84, 82, 73, 67, 79, 76, 79, 78, 128, 84, 82, 73, 65, 78, 71, 85, 76, - 65, 210, 84, 82, 73, 65, 78, 71, 76, 69, 45, 82, 79, 85, 78, 196, 84, 82, - 73, 65, 78, 71, 76, 69, 45, 72, 69, 65, 68, 69, 196, 84, 82, 73, 65, 78, - 71, 76, 69, 128, 84, 82, 73, 65, 78, 71, 76, 197, 84, 82, 73, 65, 128, - 84, 82, 73, 128, 84, 82, 69, 83, 86, 69, 84, 76, 89, 128, 84, 82, 69, 83, - 86, 69, 84, 76, 79, 128, 84, 82, 69, 83, 86, 69, 84, 76, 65, 89, 65, 128, - 84, 82, 69, 83, 73, 76, 76, 79, 128, 84, 82, 69, 78, 68, 128, 84, 82, 69, - 78, 196, 84, 82, 69, 77, 79, 76, 79, 45, 51, 128, 84, 82, 69, 77, 79, 76, - 79, 45, 50, 128, 84, 82, 69, 77, 79, 76, 79, 45, 49, 128, 84, 82, 69, 69, - 128, 84, 82, 69, 197, 84, 82, 69, 68, 69, 67, 73, 76, 69, 128, 84, 82, - 69, 65, 68, 73, 78, 71, 128, 84, 82, 65, 89, 128, 84, 82, 65, 86, 69, 76, - 45, 87, 65, 76, 76, 80, 76, 65, 78, 197, 84, 82, 65, 86, 69, 76, 45, 70, - 76, 79, 79, 82, 80, 76, 65, 78, 197, 84, 82, 65, 80, 69, 90, 73, 85, 77, - 128, 84, 82, 65, 80, 128, 84, 82, 65, 78, 83, 86, 69, 82, 83, 65, 204, - 84, 82, 65, 78, 83, 80, 79, 83, 73, 84, 73, 79, 206, 84, 82, 65, 78, 83, - 80, 76, 85, 84, 79, 128, 84, 82, 65, 78, 83, 77, 73, 212, 84, 82, 65, 78, - 83, 77, 73, 83, 83, 73, 79, 78, 128, 84, 82, 65, 78, 83, 77, 73, 83, 83, - 73, 79, 206, 84, 82, 65, 77, 87, 65, 89, 128, 84, 82, 65, 77, 128, 84, - 82, 65, 205, 84, 82, 65, 73, 78, 128, 84, 82, 65, 73, 206, 84, 82, 65, - 73, 76, 73, 78, 199, 84, 82, 65, 70, 70, 73, 67, 128, 84, 82, 65, 70, 70, - 73, 195, 84, 82, 65, 68, 73, 84, 73, 79, 78, 65, 204, 84, 82, 65, 68, - 197, 84, 82, 65, 67, 84, 79, 82, 128, 84, 82, 65, 67, 75, 66, 65, 76, 76, - 128, 84, 82, 65, 67, 75, 128, 84, 82, 65, 128, 84, 82, 128, 84, 79, 89, - 79, 82, 128, 84, 79, 88, 128, 84, 79, 87, 69, 82, 128, 84, 79, 87, 65, - 82, 68, 211, 84, 79, 86, 128, 84, 79, 85, 82, 78, 79, 73, 211, 84, 79, - 85, 67, 72, 84, 79, 78, 197, 84, 79, 85, 67, 72, 73, 78, 199, 84, 79, 85, - 67, 72, 69, 211, 84, 79, 85, 67, 200, 84, 79, 84, 207, 84, 79, 84, 65, - 204, 84, 79, 84, 128, 84, 79, 83, 128, 84, 79, 82, 84, 79, 73, 83, 197, - 84, 79, 82, 83, 79, 45, 87, 65, 76, 76, 80, 76, 65, 78, 197, 84, 79, 82, - 83, 79, 45, 70, 76, 79, 79, 82, 80, 76, 65, 78, 197, 84, 79, 82, 83, 79, - 128, 84, 79, 82, 78, 65, 68, 79, 128, 84, 79, 82, 67, 85, 76, 85, 83, - 128, 84, 79, 82, 67, 85, 76, 85, 211, 84, 79, 82, 67, 72, 128, 84, 79, - 81, 128, 84, 79, 80, 66, 65, 82, 128, 84, 79, 80, 45, 76, 73, 71, 72, 84, - 69, 196, 84, 79, 80, 128, 84, 79, 208, 84, 79, 79, 84, 72, 66, 82, 85, - 83, 72, 128, 84, 79, 79, 84, 72, 128, 84, 79, 79, 78, 128, 84, 79, 79, - 76, 66, 79, 88, 128, 84, 79, 78, 79, 83, 128, 84, 79, 78, 71, 85, 69, - 128, 84, 79, 78, 71, 85, 197, 84, 79, 78, 71, 128, 84, 79, 78, 69, 45, - 86, 128, 84, 79, 78, 69, 45, 83, 128, 84, 79, 78, 69, 45, 77, 128, 84, - 79, 78, 69, 45, 74, 128, 84, 79, 78, 69, 45, 71, 128, 84, 79, 78, 69, 45, - 68, 128, 84, 79, 78, 69, 45, 66, 128, 84, 79, 78, 69, 45, 56, 128, 84, - 79, 78, 69, 45, 55, 128, 84, 79, 78, 69, 45, 54, 128, 84, 79, 78, 69, 45, - 53, 128, 84, 79, 78, 69, 45, 52, 128, 84, 79, 78, 69, 45, 51, 128, 84, - 79, 78, 69, 45, 50, 128, 84, 79, 78, 69, 45, 49, 128, 84, 79, 78, 69, - 128, 84, 79, 78, 65, 204, 84, 79, 77, 80, 73, 128, 84, 79, 77, 65, 84, - 79, 128, 84, 79, 76, 79, 78, 71, 128, 84, 79, 75, 89, 207, 84, 79, 73, - 76, 69, 84, 128, 84, 79, 71, 69, 84, 72, 69, 82, 128, 84, 79, 68, 207, - 84, 79, 67, 72, 75, 65, 128, 84, 79, 65, 78, 68, 65, 75, 72, 73, 65, 84, - 128, 84, 79, 65, 128, 84, 79, 45, 82, 65, 128, 84, 79, 45, 54, 128, 84, - 79, 45, 53, 128, 84, 79, 45, 52, 128, 84, 79, 45, 51, 128, 84, 79, 45, - 50, 128, 84, 79, 45, 49, 128, 84, 78, 128, 84, 76, 86, 128, 84, 76, 85, - 128, 84, 76, 73, 128, 84, 76, 72, 89, 65, 128, 84, 76, 72, 87, 69, 128, - 84, 76, 72, 85, 128, 84, 76, 72, 79, 79, 128, 84, 76, 72, 79, 128, 84, - 76, 72, 73, 128, 84, 76, 72, 69, 69, 128, 84, 76, 72, 69, 128, 84, 76, - 72, 65, 128, 84, 76, 69, 69, 128, 84, 76, 65, 128, 84, 74, 69, 128, 84, - 73, 88, 128, 84, 73, 87, 82, 128, 84, 73, 87, 78, 128, 84, 73, 87, 65, - 218, 84, 73, 84, 85, 65, 69, 80, 128, 84, 73, 84, 76, 79, 128, 84, 73, - 84, 76, 207, 84, 73, 84, 193, 84, 73, 84, 128, 84, 73, 82, 89, 65, 75, - 128, 84, 73, 82, 84, 193, 84, 73, 82, 79, 78, 73, 65, 206, 84, 73, 82, - 72, 85, 84, 193, 84, 73, 82, 69, 196, 84, 73, 82, 128, 84, 73, 210, 84, - 73, 80, 80, 73, 128, 84, 73, 80, 69, 72, 65, 128, 84, 73, 80, 128, 84, - 73, 208, 84, 73, 78, 89, 128, 84, 73, 78, 217, 84, 73, 78, 78, 69, 128, - 84, 73, 78, 67, 84, 85, 82, 69, 128, 84, 73, 78, 65, 71, 77, 65, 128, 84, - 73, 77, 69, 83, 128, 84, 73, 77, 69, 210, 84, 73, 77, 69, 128, 84, 73, - 76, 84, 73, 78, 71, 128, 84, 73, 76, 84, 73, 78, 199, 84, 73, 76, 84, - 128, 84, 73, 76, 69, 83, 128, 84, 73, 76, 68, 69, 128, 84, 73, 76, 68, - 197, 84, 73, 76, 128, 84, 73, 204, 84, 73, 75, 72, 89, 128, 84, 73, 75, - 72, 65, 89, 65, 128, 84, 73, 75, 72, 65, 89, 193, 84, 73, 75, 69, 85, 84, - 45, 84, 72, 73, 69, 85, 84, 72, 128, 84, 73, 75, 69, 85, 84, 45, 83, 73, - 79, 83, 45, 75, 73, 89, 69, 79, 75, 128, 84, 73, 75, 69, 85, 84, 45, 83, - 73, 79, 83, 128, 84, 73, 75, 69, 85, 84, 45, 82, 73, 69, 85, 76, 128, 84, - 73, 75, 69, 85, 84, 45, 80, 73, 69, 85, 80, 128, 84, 73, 75, 69, 85, 84, - 45, 77, 73, 69, 85, 77, 128, 84, 73, 75, 69, 85, 84, 45, 75, 73, 89, 69, - 79, 75, 128, 84, 73, 75, 69, 85, 84, 45, 67, 73, 69, 85, 67, 128, 84, 73, - 75, 69, 85, 84, 45, 67, 72, 73, 69, 85, 67, 72, 128, 84, 73, 75, 69, 85, - 84, 128, 84, 73, 75, 69, 85, 212, 84, 73, 71, 72, 84, 76, 89, 45, 67, 76, - 79, 83, 69, 196, 84, 73, 71, 72, 212, 84, 73, 71, 69, 82, 128, 84, 73, - 71, 69, 210, 84, 73, 70, 73, 78, 65, 71, 200, 84, 73, 69, 88, 128, 84, - 73, 69, 80, 128, 84, 73, 197, 84, 73, 67, 75, 69, 84, 83, 128, 84, 73, - 67, 75, 69, 84, 128, 84, 73, 67, 75, 128, 84, 73, 67, 203, 84, 73, 65, - 82, 65, 128, 84, 73, 50, 128, 84, 73, 45, 55, 128, 84, 73, 45, 54, 128, - 84, 73, 45, 53, 128, 84, 73, 45, 52, 128, 84, 73, 45, 51, 128, 84, 73, - 45, 50, 128, 84, 73, 45, 49, 128, 84, 72, 90, 128, 84, 72, 89, 79, 79, - 205, 84, 72, 87, 79, 79, 128, 84, 72, 87, 79, 128, 84, 72, 87, 73, 73, - 128, 84, 72, 87, 73, 128, 84, 72, 87, 69, 69, 128, 84, 72, 87, 65, 65, - 128, 84, 72, 87, 65, 128, 84, 72, 85, 82, 211, 84, 72, 85, 82, 73, 83, - 65, 218, 84, 72, 85, 78, 71, 128, 84, 72, 85, 78, 68, 69, 82, 83, 84, 79, - 82, 77, 128, 84, 72, 85, 78, 68, 69, 82, 128, 84, 72, 85, 78, 68, 69, + 79, 87, 206, 72, 65, 128, 80, 65, 72, 65, 87, 200, 67, 72, 79, 83, 69, + 79, 78, 199, 66, 65, 76, 73, 78, 69, 83, 197, 72, 65, 76, 70, 87, 73, 68, + 84, 200, 72, 65, 78, 68, 45, 70, 73, 83, 212, 77, 69, 82, 79, 73, 84, 73, + 195, 84, 85, 82, 78, 69, 196, 70, 73, 86, 69, 128, 73, 68, 69, 79, 71, + 82, 65, 80, 72, 73, 195, 76, 73, 71, 72, 212, 73, 68, 69, 79, 71, 82, 65, + 205, 75, 65, 128, 80, 72, 65, 83, 69, 45, 196, 84, 79, 128, 65, 76, 67, + 72, 69, 77, 73, 67, 65, 204, 78, 69, 85, 77, 197, 66, 82, 65, 72, 77, + 201, 84, 79, 78, 197, 66, 65, 82, 128, 83, 73, 78, 72, 65, 76, 193, 82, + 65, 128, 78, 85, 77, 69, 82, 73, 195, 80, 65, 128, 89, 65, 128, 76, 65, + 128, 77, 65, 128, 83, 73, 88, 128, 84, 72, 85, 77, 194, 72, 85, 78, 71, + 65, 82, 73, 65, 206, 69, 73, 71, 72, 84, 128, 76, 79, 78, 199, 66, 65, + 82, 194, 72, 65, 200, 78, 65, 128, 83, 69, 86, 69, 78, 128, 66, 76, 79, + 67, 203, 68, 79, 84, 211, 78, 73, 78, 69, 128, 78, 79, 82, 84, 200, 82, + 73, 71, 72, 84, 128, 84, 72, 79, 85, 83, 65, 78, 68, 128, 83, 65, 128, + 70, 85, 76, 76, 87, 73, 68, 84, 200, 90, 90, 89, 88, 128, 90, 90, 89, 84, + 128, 90, 90, 89, 82, 88, 128, 90, 90, 89, 82, 128, 90, 90, 89, 80, 128, + 90, 90, 89, 65, 128, 90, 90, 89, 128, 90, 90, 85, 88, 128, 90, 90, 85, + 82, 88, 128, 90, 90, 85, 82, 128, 90, 90, 85, 80, 128, 90, 90, 85, 128, + 90, 90, 83, 89, 65, 128, 90, 90, 83, 65, 128, 90, 90, 79, 88, 128, 90, + 90, 79, 80, 128, 90, 90, 79, 128, 90, 90, 73, 88, 128, 90, 90, 73, 84, + 128, 90, 90, 73, 80, 128, 90, 90, 73, 69, 88, 128, 90, 90, 73, 69, 84, + 128, 90, 90, 73, 69, 80, 128, 90, 90, 73, 69, 128, 90, 90, 73, 128, 90, + 90, 69, 88, 128, 90, 90, 69, 80, 128, 90, 90, 69, 69, 128, 90, 90, 69, + 128, 90, 90, 65, 88, 128, 90, 90, 65, 84, 128, 90, 90, 65, 80, 128, 90, + 90, 65, 65, 128, 90, 90, 65, 128, 90, 89, 71, 79, 83, 128, 90, 87, 83, + 80, 128, 90, 87, 78, 74, 128, 90, 87, 78, 66, 83, 80, 128, 90, 87, 74, + 128, 90, 87, 202, 90, 87, 65, 82, 65, 75, 65, 89, 128, 90, 87, 65, 128, + 90, 85, 84, 128, 90, 85, 79, 88, 128, 90, 85, 79, 80, 128, 90, 85, 79, + 128, 90, 85, 77, 128, 90, 85, 66, 85, 82, 128, 90, 85, 53, 128, 90, 85, + 181, 90, 213, 90, 83, 72, 65, 128, 90, 82, 65, 128, 90, 81, 65, 80, 72, + 193, 90, 79, 84, 128, 90, 79, 79, 128, 90, 79, 77, 66, 73, 69, 128, 90, + 79, 65, 128, 90, 77, 69, 89, 84, 83, 65, 128, 90, 76, 65, 77, 193, 90, + 76, 65, 128, 90, 76, 193, 90, 74, 69, 128, 90, 73, 90, 50, 128, 90, 73, + 81, 65, 65, 128, 90, 73, 80, 80, 69, 82, 45, 77, 79, 85, 84, 200, 90, 73, + 78, 79, 82, 128, 90, 73, 76, 68, 69, 128, 90, 73, 71, 90, 65, 199, 90, + 73, 71, 128, 90, 73, 68, 193, 90, 73, 66, 128, 90, 73, 194, 90, 73, 51, + 128, 90, 201, 90, 72, 89, 88, 128, 90, 72, 89, 84, 128, 90, 72, 89, 82, + 88, 128, 90, 72, 89, 82, 128, 90, 72, 89, 80, 128, 90, 72, 89, 128, 90, + 72, 87, 69, 128, 90, 72, 87, 65, 128, 90, 72, 85, 88, 128, 90, 72, 85, + 84, 128, 90, 72, 85, 82, 88, 128, 90, 72, 85, 82, 128, 90, 72, 85, 80, + 128, 90, 72, 85, 79, 88, 128, 90, 72, 85, 79, 80, 128, 90, 72, 85, 79, + 128, 90, 72, 85, 128, 90, 72, 79, 88, 128, 90, 72, 79, 84, 128, 90, 72, + 79, 80, 128, 90, 72, 79, 79, 128, 90, 72, 79, 73, 128, 90, 72, 79, 128, + 90, 72, 73, 86, 69, 84, 69, 128, 90, 72, 73, 76, 128, 90, 72, 73, 128, + 90, 72, 69, 88, 128, 90, 72, 69, 84, 128, 90, 72, 69, 80, 128, 90, 72, + 69, 69, 128, 90, 72, 69, 128, 90, 72, 197, 90, 72, 65, 89, 73, 78, 128, + 90, 72, 65, 88, 128, 90, 72, 65, 84, 128, 90, 72, 65, 82, 128, 90, 72, + 65, 80, 128, 90, 72, 65, 73, 78, 128, 90, 72, 65, 65, 128, 90, 72, 65, + 128, 90, 72, 128, 90, 69, 86, 79, 75, 128, 90, 69, 85, 83, 128, 90, 69, + 84, 65, 128, 90, 69, 82, 79, 128, 90, 69, 82, 207, 90, 69, 78, 128, 90, + 69, 77, 76, 89, 65, 128, 90, 69, 77, 76, 74, 65, 128, 90, 69, 76, 79, + 128, 90, 69, 66, 82, 193, 90, 69, 50, 128, 90, 197, 90, 65, 89, 78, 128, + 90, 65, 89, 73, 78, 45, 89, 79, 68, 72, 128, 90, 65, 89, 73, 78, 128, 90, + 65, 89, 73, 206, 90, 65, 86, 73, 89, 65, 78, 73, 128, 90, 65, 84, 65, + 128, 90, 65, 82, 81, 65, 128, 90, 65, 82, 76, 128, 90, 65, 81, 69, 198, + 90, 65, 80, 89, 65, 84, 89, 77, 73, 128, 90, 65, 80, 89, 65, 84, 79, 89, + 128, 90, 65, 80, 89, 65, 84, 79, 217, 90, 65, 80, 89, 65, 84, 65, 89, 65, + 128, 90, 65, 78, 79, 90, 72, 69, 75, 128, 90, 65, 78, 65, 66, 65, 90, 65, + 210, 90, 65, 77, 88, 128, 90, 65, 76, 128, 90, 65, 204, 90, 65, 75, 82, + 89, 84, 79, 69, 128, 90, 65, 75, 82, 89, 84, 65, 89, 65, 128, 90, 65, 75, + 82, 89, 84, 65, 89, 193, 90, 65, 73, 78, 128, 90, 65, 73, 206, 90, 65, + 73, 128, 90, 65, 72, 128, 90, 65, 200, 90, 65, 71, 128, 90, 65, 69, 70, + 128, 90, 65, 68, 69, 82, 90, 72, 75, 65, 128, 90, 65, 55, 128, 90, 193, + 90, 48, 49, 54, 72, 128, 90, 48, 49, 54, 71, 128, 90, 48, 49, 54, 70, + 128, 90, 48, 49, 54, 69, 128, 90, 48, 49, 54, 68, 128, 90, 48, 49, 54, + 67, 128, 90, 48, 49, 54, 66, 128, 90, 48, 49, 54, 65, 128, 90, 48, 49, + 54, 128, 90, 48, 49, 53, 73, 128, 90, 48, 49, 53, 72, 128, 90, 48, 49, + 53, 71, 128, 90, 48, 49, 53, 70, 128, 90, 48, 49, 53, 69, 128, 90, 48, + 49, 53, 68, 128, 90, 48, 49, 53, 67, 128, 90, 48, 49, 53, 66, 128, 90, + 48, 49, 53, 65, 128, 90, 48, 49, 53, 128, 90, 48, 49, 52, 128, 90, 48, + 49, 51, 128, 90, 48, 49, 50, 128, 90, 48, 49, 49, 128, 90, 48, 49, 48, + 128, 90, 48, 48, 57, 128, 90, 48, 48, 56, 128, 90, 48, 48, 55, 128, 90, + 48, 48, 54, 128, 90, 48, 48, 53, 65, 128, 90, 48, 48, 53, 128, 90, 48, + 48, 52, 65, 128, 90, 48, 48, 52, 128, 90, 48, 48, 51, 66, 128, 90, 48, + 48, 51, 65, 128, 90, 48, 48, 51, 128, 90, 48, 48, 50, 68, 128, 90, 48, + 48, 50, 67, 128, 90, 48, 48, 50, 66, 128, 90, 48, 48, 50, 65, 128, 90, + 48, 48, 50, 128, 90, 48, 48, 49, 128, 90, 128, 218, 89, 89, 88, 128, 89, + 89, 84, 128, 89, 89, 82, 88, 128, 89, 89, 82, 128, 89, 89, 80, 128, 89, + 89, 69, 128, 89, 89, 65, 65, 128, 89, 89, 65, 128, 89, 89, 128, 89, 87, + 79, 79, 128, 89, 87, 79, 128, 89, 87, 73, 73, 128, 89, 87, 73, 128, 89, + 87, 69, 128, 89, 87, 65, 65, 128, 89, 87, 65, 128, 89, 86, 128, 89, 85, + 88, 128, 89, 85, 87, 79, 81, 128, 89, 85, 85, 75, 65, 76, 69, 65, 80, 73, + 78, 84, 85, 128, 89, 85, 85, 128, 89, 85, 84, 128, 89, 85, 83, 128, 89, + 85, 211, 89, 85, 82, 88, 128, 89, 85, 82, 128, 89, 85, 81, 128, 89, 85, + 209, 89, 85, 80, 128, 89, 85, 79, 88, 128, 89, 85, 79, 84, 128, 89, 85, + 79, 80, 128, 89, 85, 79, 77, 128, 89, 85, 79, 128, 89, 85, 78, 128, 89, + 85, 77, 128, 89, 85, 74, 128, 89, 85, 73, 128, 89, 85, 69, 81, 128, 89, + 85, 69, 128, 89, 85, 68, 72, 128, 89, 85, 68, 200, 89, 85, 65, 78, 128, + 89, 85, 65, 69, 78, 128, 89, 85, 45, 89, 69, 79, 128, 89, 85, 45, 89, 69, + 128, 89, 85, 45, 85, 128, 89, 85, 45, 79, 128, 89, 85, 45, 73, 128, 89, + 85, 45, 69, 79, 128, 89, 85, 45, 69, 128, 89, 85, 45, 65, 69, 128, 89, + 85, 45, 65, 128, 89, 85, 45, 52, 128, 89, 85, 45, 51, 128, 89, 85, 45, + 50, 128, 89, 85, 45, 49, 128, 89, 85, 128, 89, 213, 89, 82, 89, 128, 89, + 80, 83, 73, 76, 73, 128, 89, 80, 79, 82, 82, 79, 73, 128, 89, 80, 79, 75, + 82, 73, 83, 73, 83, 128, 89, 80, 79, 75, 82, 73, 83, 73, 211, 89, 80, 79, + 71, 69, 71, 82, 65, 77, 77, 69, 78, 73, 128, 89, 79, 89, 128, 89, 79, 88, + 128, 89, 79, 87, 68, 128, 89, 79, 85, 84, 72, 70, 85, 76, 78, 69, 83, 83, + 128, 89, 79, 85, 84, 72, 70, 85, 204, 89, 79, 213, 89, 79, 84, 128, 89, + 79, 212, 89, 79, 82, 73, 128, 89, 79, 81, 128, 89, 79, 209, 89, 79, 80, + 128, 89, 79, 79, 128, 89, 79, 77, 79, 128, 89, 79, 71, 72, 128, 89, 79, + 68, 128, 89, 79, 196, 89, 79, 65, 128, 89, 79, 45, 89, 79, 128, 89, 79, + 45, 89, 69, 79, 128, 89, 79, 45, 89, 65, 69, 128, 89, 79, 45, 89, 65, + 128, 89, 79, 45, 79, 128, 89, 79, 45, 73, 128, 89, 79, 45, 69, 79, 128, + 89, 79, 45, 65, 69, 128, 89, 79, 45, 65, 128, 89, 79, 45, 54, 128, 89, + 79, 45, 53, 128, 89, 79, 45, 52, 128, 89, 79, 45, 51, 128, 89, 79, 45, + 50, 128, 89, 79, 45, 49, 128, 89, 207, 89, 73, 90, 69, 84, 128, 89, 73, + 88, 128, 89, 73, 87, 78, 128, 89, 73, 84, 128, 89, 73, 80, 128, 89, 73, + 78, 71, 128, 89, 73, 73, 128, 89, 73, 72, 128, 89, 73, 199, 89, 73, 69, + 88, 128, 89, 73, 69, 84, 128, 89, 73, 69, 80, 128, 89, 73, 69, 69, 128, + 89, 73, 69, 128, 89, 73, 68, 68, 73, 83, 200, 89, 73, 45, 85, 128, 89, + 73, 128, 89, 72, 69, 128, 89, 72, 65, 128, 89, 70, 69, 83, 73, 83, 128, + 89, 70, 69, 83, 73, 211, 89, 70, 69, 206, 89, 69, 90, 73, 68, 201, 89, + 69, 89, 128, 89, 69, 87, 128, 89, 69, 85, 88, 128, 89, 69, 85, 82, 65, + 69, 128, 89, 69, 85, 81, 128, 89, 69, 85, 77, 128, 89, 69, 85, 65, 69, + 84, 128, 89, 69, 85, 65, 69, 128, 89, 69, 84, 73, 86, 128, 89, 69, 83, + 84, 85, 128, 89, 69, 83, 73, 69, 85, 78, 71, 45, 83, 83, 65, 78, 71, 75, + 73, 89, 69, 79, 75, 128, 89, 69, 83, 73, 69, 85, 78, 71, 45, 83, 73, 79, + 83, 128, 89, 69, 83, 73, 69, 85, 78, 71, 45, 80, 65, 78, 83, 73, 79, 83, + 128, 89, 69, 83, 73, 69, 85, 78, 71, 45, 77, 73, 69, 85, 77, 128, 89, 69, + 83, 73, 69, 85, 78, 71, 45, 75, 73, 89, 69, 79, 75, 128, 89, 69, 83, 73, + 69, 85, 78, 71, 45, 75, 72, 73, 69, 85, 75, 72, 128, 89, 69, 83, 73, 69, + 85, 78, 71, 45, 72, 73, 69, 85, 72, 128, 89, 69, 83, 73, 69, 85, 78, 71, + 128, 89, 69, 82, 85, 128, 89, 69, 82, 213, 89, 69, 82, 73, 128, 89, 69, + 82, 65, 200, 89, 69, 82, 128, 89, 69, 79, 82, 73, 78, 72, 73, 69, 85, 72, + 128, 89, 69, 79, 45, 89, 65, 128, 89, 69, 79, 45, 85, 128, 89, 69, 79, + 45, 79, 128, 89, 69, 78, 73, 83, 69, 201, 89, 69, 78, 65, 80, 128, 89, + 69, 78, 128, 89, 69, 206, 89, 69, 76, 76, 79, 87, 128, 89, 69, 76, 76, + 79, 215, 89, 69, 73, 78, 128, 89, 69, 72, 128, 89, 69, 69, 71, 128, 89, + 69, 69, 128, 89, 69, 65, 210, 89, 69, 65, 128, 89, 65, 90, 90, 128, 89, + 65, 90, 72, 128, 89, 65, 90, 128, 89, 65, 89, 68, 128, 89, 65, 89, 65, + 78, 78, 65, 128, 89, 65, 89, 128, 89, 65, 87, 78, 73, 78, 199, 89, 65, + 87, 78, 128, 89, 65, 87, 128, 89, 65, 86, 128, 89, 65, 85, 128, 89, 65, + 84, 84, 128, 89, 65, 84, 73, 128, 89, 65, 84, 72, 128, 89, 65, 84, 128, + 89, 65, 83, 83, 128, 89, 65, 83, 72, 128, 89, 65, 83, 128, 89, 65, 82, + 82, 128, 89, 65, 82, 78, 128, 89, 65, 82, 128, 89, 65, 210, 89, 65, 81, + 128, 89, 65, 80, 128, 89, 65, 78, 83, 65, 89, 65, 128, 89, 65, 78, 71, + 128, 89, 65, 78, 199, 89, 65, 78, 128, 89, 65, 77, 79, 75, 128, 89, 65, + 77, 65, 75, 75, 65, 78, 128, 89, 65, 77, 128, 89, 65, 76, 128, 89, 65, + 75, 72, 72, 128, 89, 65, 75, 72, 128, 89, 65, 75, 65, 83, 72, 128, 89, + 65, 75, 128, 89, 65, 74, 85, 82, 86, 69, 68, 73, 195, 89, 65, 74, 128, + 89, 65, 73, 128, 89, 65, 72, 72, 128, 89, 65, 72, 128, 89, 65, 71, 78, + 128, 89, 65, 71, 72, 72, 128, 89, 65, 71, 72, 128, 89, 65, 71, 128, 89, + 65, 70, 213, 89, 65, 70, 128, 89, 65, 69, 77, 77, 65, 69, 128, 89, 65, + 68, 72, 128, 89, 65, 68, 68, 72, 128, 89, 65, 68, 68, 128, 89, 65, 68, + 128, 89, 65, 67, 72, 128, 89, 65, 66, 72, 128, 89, 65, 66, 128, 89, 65, + 65, 82, 85, 128, 89, 65, 65, 73, 128, 89, 65, 65, 68, 79, 128, 89, 65, + 45, 89, 79, 128, 89, 65, 45, 85, 128, 89, 65, 45, 79, 128, 89, 65, 45, + 53, 128, 89, 65, 45, 52, 128, 89, 65, 45, 51, 128, 89, 65, 45, 50, 128, + 89, 65, 45, 49, 128, 89, 48, 48, 56, 128, 89, 48, 48, 55, 128, 89, 48, + 48, 54, 128, 89, 48, 48, 53, 128, 89, 48, 48, 52, 128, 89, 48, 48, 51, + 128, 89, 48, 48, 50, 128, 89, 48, 48, 49, 65, 128, 89, 48, 48, 49, 128, + 89, 45, 67, 82, 69, 197, 88, 89, 88, 128, 88, 89, 85, 128, 88, 89, 84, + 128, 88, 89, 82, 88, 128, 88, 89, 82, 128, 88, 89, 80, 128, 88, 89, 79, + 79, 74, 128, 88, 89, 79, 79, 128, 88, 89, 79, 128, 88, 89, 73, 128, 88, + 89, 69, 69, 205, 88, 89, 69, 69, 128, 88, 89, 69, 128, 88, 89, 65, 65, + 128, 88, 89, 65, 128, 88, 89, 128, 88, 87, 73, 128, 88, 87, 69, 69, 128, + 88, 87, 69, 128, 88, 87, 65, 65, 128, 88, 87, 65, 128, 88, 87, 128, 88, + 215, 88, 86, 69, 128, 88, 86, 65, 128, 88, 85, 79, 88, 128, 88, 85, 79, + 128, 88, 85, 128, 88, 83, 72, 65, 65, 89, 65, 84, 72, 73, 89, 65, 128, + 88, 79, 88, 128, 88, 79, 84, 128, 88, 79, 82, 128, 88, 79, 80, 72, 128, + 88, 79, 80, 128, 88, 79, 65, 128, 88, 79, 128, 88, 73, 88, 128, 88, 73, + 84, 128, 88, 73, 82, 79, 206, 88, 73, 80, 128, 88, 73, 69, 88, 128, 88, + 73, 69, 84, 128, 88, 73, 69, 80, 128, 88, 73, 69, 128, 88, 73, 65, 78, + 71, 81, 201, 88, 73, 65, 66, 128, 88, 73, 128, 88, 72, 69, 89, 78, 128, + 88, 71, 128, 88, 69, 89, 78, 128, 88, 69, 83, 84, 69, 211, 88, 69, 72, + 128, 88, 69, 69, 128, 88, 69, 128, 88, 65, 85, 83, 128, 88, 65, 85, 128, + 88, 65, 80, 72, 128, 88, 65, 78, 128, 88, 65, 65, 128, 88, 65, 128, 88, + 48, 48, 56, 65, 128, 88, 48, 48, 56, 128, 88, 48, 48, 55, 128, 88, 48, + 48, 54, 65, 128, 88, 48, 48, 54, 128, 88, 48, 48, 53, 128, 88, 48, 48, + 52, 66, 128, 88, 48, 48, 52, 65, 128, 88, 48, 48, 52, 128, 88, 48, 48, + 51, 128, 88, 48, 48, 50, 128, 88, 48, 48, 49, 128, 88, 45, 216, 88, 45, + 82, 65, 89, 128, 87, 90, 128, 87, 89, 78, 78, 128, 87, 89, 78, 206, 87, + 86, 73, 128, 87, 86, 69, 128, 87, 86, 65, 128, 87, 86, 128, 87, 85, 80, + 128, 87, 85, 79, 88, 128, 87, 85, 79, 80, 128, 87, 85, 79, 128, 87, 85, + 78, 74, 207, 87, 85, 78, 128, 87, 85, 76, 85, 128, 87, 85, 76, 213, 87, + 85, 73, 128, 87, 85, 69, 128, 87, 85, 65, 69, 84, 128, 87, 85, 65, 69, + 78, 128, 87, 85, 128, 87, 82, 217, 87, 82, 79, 78, 71, 128, 87, 82, 73, + 83, 212, 87, 82, 73, 78, 75, 76, 69, 83, 128, 87, 82, 73, 78, 75, 76, 69, + 211, 87, 82, 73, 78, 75, 76, 69, 68, 128, 87, 82, 69, 83, 84, 76, 69, 82, + 83, 128, 87, 82, 69, 78, 67, 72, 128, 87, 82, 69, 65, 84, 200, 87, 82, + 65, 80, 80, 69, 196, 87, 82, 65, 80, 128, 87, 79, 88, 128, 87, 79, 87, + 128, 87, 79, 82, 83, 72, 73, 80, 128, 87, 79, 82, 82, 73, 69, 196, 87, + 79, 82, 77, 128, 87, 79, 82, 76, 196, 87, 79, 82, 75, 69, 82, 128, 87, + 79, 82, 75, 128, 87, 79, 82, 203, 87, 79, 82, 68, 83, 80, 65, 67, 69, + 128, 87, 79, 82, 196, 87, 79, 80, 128, 87, 79, 79, 78, 128, 87, 79, 79, + 76, 128, 87, 79, 79, 68, 83, 45, 67, 82, 69, 197, 87, 79, 79, 68, 128, + 87, 79, 78, 128, 87, 79, 206, 87, 79, 77, 69, 78, 211, 87, 79, 77, 69, + 206, 87, 79, 77, 65, 78, 211, 87, 79, 77, 65, 78, 128, 87, 79, 77, 65, + 206, 87, 79, 76, 79, 83, 79, 128, 87, 79, 76, 198, 87, 79, 69, 128, 87, + 79, 65, 128, 87, 79, 45, 55, 128, 87, 79, 45, 54, 128, 87, 79, 45, 53, + 128, 87, 79, 45, 52, 128, 87, 79, 45, 51, 128, 87, 79, 45, 50, 128, 87, + 79, 45, 49, 128, 87, 73, 84, 72, 79, 85, 212, 87, 73, 84, 72, 73, 78, + 128, 87, 73, 84, 72, 73, 206, 87, 73, 82, 69, 196, 87, 73, 78, 84, 69, + 82, 128, 87, 73, 78, 75, 73, 78, 199, 87, 73, 78, 75, 128, 87, 73, 78, + 74, 65, 128, 87, 73, 78, 71, 83, 128, 87, 73, 78, 69, 128, 87, 73, 78, + 197, 87, 73, 78, 68, 85, 128, 87, 73, 78, 68, 79, 87, 128, 87, 73, 78, + 68, 128, 87, 73, 78, 196, 87, 73, 78, 128, 87, 73, 76, 84, 69, 196, 87, + 73, 71, 78, 89, 65, 78, 128, 87, 73, 71, 71, 76, 217, 87, 73, 71, 71, 76, + 69, 83, 128, 87, 73, 68, 84, 72, 128, 87, 73, 68, 69, 78, 73, 78, 199, + 87, 73, 68, 69, 45, 72, 69, 65, 68, 69, 196, 87, 73, 68, 197, 87, 73, 65, + 78, 71, 87, 65, 65, 75, 128, 87, 73, 65, 78, 71, 128, 87, 73, 45, 53, + 128, 87, 73, 45, 52, 128, 87, 73, 45, 51, 128, 87, 73, 45, 50, 128, 87, + 73, 45, 49, 128, 87, 72, 79, 76, 197, 87, 72, 73, 84, 69, 45, 70, 69, 65, + 84, 72, 69, 82, 69, 196, 87, 72, 73, 84, 69, 128, 87, 72, 69, 69, 76, 69, + 196, 87, 72, 69, 69, 76, 67, 72, 65, 73, 82, 128, 87, 72, 69, 69, 76, 67, + 72, 65, 73, 210, 87, 72, 69, 69, 76, 128, 87, 72, 69, 69, 204, 87, 72, + 69, 65, 84, 128, 87, 72, 65, 76, 69, 128, 87, 72, 128, 87, 71, 128, 87, + 69, 88, 128, 87, 69, 85, 88, 128, 87, 69, 212, 87, 69, 83, 84, 69, 82, + 206, 87, 69, 83, 84, 45, 67, 82, 69, 197, 87, 69, 83, 84, 128, 87, 69, + 83, 212, 87, 69, 80, 128, 87, 69, 79, 128, 87, 69, 78, 128, 87, 69, 76, + 76, 128, 87, 69, 73, 71, 72, 212, 87, 69, 73, 69, 82, 83, 84, 82, 65, 83, + 211, 87, 69, 73, 128, 87, 69, 69, 78, 128, 87, 69, 68, 71, 69, 45, 84, + 65, 73, 76, 69, 196, 87, 69, 68, 71, 69, 128, 87, 69, 68, 68, 73, 78, 71, + 128, 87, 69, 66, 128, 87, 69, 65, 82, 217, 87, 69, 65, 80, 79, 78, 128, + 87, 69, 45, 52, 128, 87, 69, 45, 51, 128, 87, 69, 45, 50, 128, 87, 69, + 45, 49, 128, 87, 67, 128, 87, 66, 128, 87, 65, 89, 128, 87, 65, 217, 87, + 65, 88, 73, 78, 199, 87, 65, 88, 128, 87, 65, 87, 45, 65, 89, 73, 78, 45, + 82, 69, 83, 72, 128, 87, 65, 87, 128, 87, 65, 215, 87, 65, 86, 217, 87, + 65, 86, 73, 78, 199, 87, 65, 86, 69, 83, 128, 87, 65, 86, 69, 128, 87, + 65, 86, 197, 87, 65, 85, 128, 87, 65, 84, 84, 79, 128, 87, 65, 84, 69, + 82, 77, 69, 76, 79, 78, 128, 87, 65, 84, 69, 82, 128, 87, 65, 84, 69, + 210, 87, 65, 84, 67, 72, 128, 87, 65, 84, 128, 87, 65, 83, 84, 73, 78, + 71, 128, 87, 65, 83, 84, 69, 66, 65, 83, 75, 69, 84, 128, 87, 65, 83, 83, + 65, 76, 76, 65, 77, 128, 87, 65, 83, 76, 65, 128, 87, 65, 83, 76, 193, + 87, 65, 83, 65, 76, 76, 65, 77, 128, 87, 65, 83, 65, 76, 76, 65, 205, 87, + 65, 83, 45, 83, 65, 76, 65, 65, 77, 128, 87, 65, 82, 78, 73, 78, 199, 87, + 65, 82, 65, 78, 199, 87, 65, 81, 70, 65, 128, 87, 65, 80, 128, 87, 65, + 78, 73, 78, 199, 87, 65, 78, 71, 75, 85, 79, 81, 128, 87, 65, 78, 68, 69, + 82, 69, 82, 128, 87, 65, 78, 68, 128, 87, 65, 78, 67, 72, 207, 87, 65, + 78, 128, 87, 65, 76, 76, 80, 76, 65, 78, 197, 87, 65, 76, 76, 128, 87, + 65, 76, 204, 87, 65, 76, 75, 128, 87, 65, 76, 203, 87, 65, 73, 84, 73, + 78, 71, 128, 87, 65, 73, 83, 84, 128, 87, 65, 73, 128, 87, 65, 70, 70, + 76, 69, 128, 87, 65, 69, 78, 128, 87, 65, 69, 128, 87, 65, 68, 68, 65, + 128, 87, 65, 65, 86, 85, 128, 87, 65, 65, 74, 73, 66, 128, 87, 65, 65, + 65, 76, 73, 72, 69, 197, 87, 65, 45, 84, 65, 65, 65, 76, 65, 65, 128, 87, + 65, 45, 83, 65, 76, 76, 65, 77, 128, 87, 65, 45, 65, 65, 76, 73, 72, 128, + 87, 65, 45, 53, 128, 87, 65, 45, 52, 128, 87, 65, 45, 51, 128, 87, 65, + 45, 50, 128, 87, 65, 45, 49, 128, 87, 193, 87, 48, 50, 53, 128, 87, 48, + 50, 52, 65, 128, 87, 48, 50, 52, 128, 87, 48, 50, 51, 128, 87, 48, 50, + 50, 128, 87, 48, 50, 49, 128, 87, 48, 50, 48, 128, 87, 48, 49, 57, 128, + 87, 48, 49, 56, 65, 128, 87, 48, 49, 56, 128, 87, 48, 49, 55, 65, 128, + 87, 48, 49, 55, 128, 87, 48, 49, 54, 128, 87, 48, 49, 53, 128, 87, 48, + 49, 52, 65, 128, 87, 48, 49, 52, 128, 87, 48, 49, 51, 128, 87, 48, 49, + 50, 128, 87, 48, 49, 49, 128, 87, 48, 49, 48, 65, 128, 87, 48, 49, 48, + 128, 87, 48, 48, 57, 65, 128, 87, 48, 48, 57, 128, 87, 48, 48, 56, 128, + 87, 48, 48, 55, 128, 87, 48, 48, 54, 128, 87, 48, 48, 53, 128, 87, 48, + 48, 52, 128, 87, 48, 48, 51, 65, 128, 87, 48, 48, 51, 128, 87, 48, 48, + 50, 128, 87, 48, 48, 49, 128, 86, 90, 77, 69, 84, 128, 86, 90, 128, 86, + 89, 88, 128, 86, 89, 84, 128, 86, 89, 83, 79, 75, 79, 128, 86, 89, 83, + 79, 75, 207, 86, 89, 82, 88, 128, 86, 89, 82, 128, 86, 89, 80, 128, 86, + 89, 128, 86, 88, 128, 86, 87, 74, 128, 86, 87, 65, 128, 86, 87, 128, 86, + 85, 88, 128, 86, 85, 85, 128, 86, 85, 84, 128, 86, 85, 82, 88, 128, 86, + 85, 82, 128, 86, 85, 80, 128, 86, 85, 76, 71, 65, 210, 86, 85, 76, 67, + 65, 78, 85, 83, 128, 86, 85, 69, 81, 128, 86, 84, 83, 128, 86, 84, 128, + 86, 83, 57, 57, 128, 86, 83, 57, 56, 128, 86, 83, 57, 55, 128, 86, 83, + 57, 54, 128, 86, 83, 57, 53, 128, 86, 83, 57, 52, 128, 86, 83, 57, 51, + 128, 86, 83, 57, 50, 128, 86, 83, 57, 49, 128, 86, 83, 57, 48, 128, 86, + 83, 57, 128, 86, 83, 56, 57, 128, 86, 83, 56, 56, 128, 86, 83, 56, 55, + 128, 86, 83, 56, 54, 128, 86, 83, 56, 53, 128, 86, 83, 56, 52, 128, 86, + 83, 56, 51, 128, 86, 83, 56, 50, 128, 86, 83, 56, 49, 128, 86, 83, 56, + 48, 128, 86, 83, 56, 128, 86, 83, 55, 57, 128, 86, 83, 55, 56, 128, 86, + 83, 55, 55, 128, 86, 83, 55, 54, 128, 86, 83, 55, 53, 128, 86, 83, 55, + 52, 128, 86, 83, 55, 51, 128, 86, 83, 55, 50, 128, 86, 83, 55, 49, 128, + 86, 83, 55, 48, 128, 86, 83, 55, 128, 86, 83, 54, 57, 128, 86, 83, 54, + 56, 128, 86, 83, 54, 55, 128, 86, 83, 54, 54, 128, 86, 83, 54, 53, 128, + 86, 83, 54, 52, 128, 86, 83, 54, 51, 128, 86, 83, 54, 50, 128, 86, 83, + 54, 49, 128, 86, 83, 54, 48, 128, 86, 83, 54, 128, 86, 83, 53, 57, 128, + 86, 83, 53, 56, 128, 86, 83, 53, 55, 128, 86, 83, 53, 54, 128, 86, 83, + 53, 53, 128, 86, 83, 53, 52, 128, 86, 83, 53, 51, 128, 86, 83, 53, 50, + 128, 86, 83, 53, 49, 128, 86, 83, 53, 48, 128, 86, 83, 53, 128, 86, 83, + 52, 57, 128, 86, 83, 52, 56, 128, 86, 83, 52, 55, 128, 86, 83, 52, 54, + 128, 86, 83, 52, 53, 128, 86, 83, 52, 52, 128, 86, 83, 52, 51, 128, 86, + 83, 52, 50, 128, 86, 83, 52, 49, 128, 86, 83, 52, 48, 128, 86, 83, 52, + 128, 86, 83, 51, 57, 128, 86, 83, 51, 56, 128, 86, 83, 51, 55, 128, 86, + 83, 51, 54, 128, 86, 83, 51, 53, 128, 86, 83, 51, 52, 128, 86, 83, 51, + 51, 128, 86, 83, 51, 50, 128, 86, 83, 51, 49, 128, 86, 83, 51, 48, 128, + 86, 83, 51, 128, 86, 83, 50, 57, 128, 86, 83, 50, 56, 128, 86, 83, 50, + 55, 128, 86, 83, 50, 54, 128, 86, 83, 50, 53, 54, 128, 86, 83, 50, 53, + 53, 128, 86, 83, 50, 53, 52, 128, 86, 83, 50, 53, 51, 128, 86, 83, 50, + 53, 50, 128, 86, 83, 50, 53, 49, 128, 86, 83, 50, 53, 48, 128, 86, 83, + 50, 53, 128, 86, 83, 50, 52, 57, 128, 86, 83, 50, 52, 56, 128, 86, 83, + 50, 52, 55, 128, 86, 83, 50, 52, 54, 128, 86, 83, 50, 52, 53, 128, 86, + 83, 50, 52, 52, 128, 86, 83, 50, 52, 51, 128, 86, 83, 50, 52, 50, 128, + 86, 83, 50, 52, 49, 128, 86, 83, 50, 52, 48, 128, 86, 83, 50, 52, 128, + 86, 83, 50, 51, 57, 128, 86, 83, 50, 51, 56, 128, 86, 83, 50, 51, 55, + 128, 86, 83, 50, 51, 54, 128, 86, 83, 50, 51, 53, 128, 86, 83, 50, 51, + 52, 128, 86, 83, 50, 51, 51, 128, 86, 83, 50, 51, 50, 128, 86, 83, 50, + 51, 49, 128, 86, 83, 50, 51, 48, 128, 86, 83, 50, 51, 128, 86, 83, 50, + 50, 57, 128, 86, 83, 50, 50, 56, 128, 86, 83, 50, 50, 55, 128, 86, 83, + 50, 50, 54, 128, 86, 83, 50, 50, 53, 128, 86, 83, 50, 50, 52, 128, 86, + 83, 50, 50, 51, 128, 86, 83, 50, 50, 50, 128, 86, 83, 50, 50, 49, 128, + 86, 83, 50, 50, 48, 128, 86, 83, 50, 50, 128, 86, 83, 50, 49, 57, 128, + 86, 83, 50, 49, 56, 128, 86, 83, 50, 49, 55, 128, 86, 83, 50, 49, 54, + 128, 86, 83, 50, 49, 53, 128, 86, 83, 50, 49, 52, 128, 86, 83, 50, 49, + 51, 128, 86, 83, 50, 49, 50, 128, 86, 83, 50, 49, 49, 128, 86, 83, 50, + 49, 48, 128, 86, 83, 50, 49, 128, 86, 83, 50, 48, 57, 128, 86, 83, 50, + 48, 56, 128, 86, 83, 50, 48, 55, 128, 86, 83, 50, 48, 54, 128, 86, 83, + 50, 48, 53, 128, 86, 83, 50, 48, 52, 128, 86, 83, 50, 48, 51, 128, 86, + 83, 50, 48, 50, 128, 86, 83, 50, 48, 49, 128, 86, 83, 50, 48, 48, 128, + 86, 83, 50, 48, 128, 86, 83, 50, 128, 86, 83, 49, 57, 57, 128, 86, 83, + 49, 57, 56, 128, 86, 83, 49, 57, 55, 128, 86, 83, 49, 57, 54, 128, 86, + 83, 49, 57, 53, 128, 86, 83, 49, 57, 52, 128, 86, 83, 49, 57, 51, 128, + 86, 83, 49, 57, 50, 128, 86, 83, 49, 57, 49, 128, 86, 83, 49, 57, 48, + 128, 86, 83, 49, 57, 128, 86, 83, 49, 56, 57, 128, 86, 83, 49, 56, 56, + 128, 86, 83, 49, 56, 55, 128, 86, 83, 49, 56, 54, 128, 86, 83, 49, 56, + 53, 128, 86, 83, 49, 56, 52, 128, 86, 83, 49, 56, 51, 128, 86, 83, 49, + 56, 50, 128, 86, 83, 49, 56, 49, 128, 86, 83, 49, 56, 48, 128, 86, 83, + 49, 56, 128, 86, 83, 49, 55, 57, 128, 86, 83, 49, 55, 56, 128, 86, 83, + 49, 55, 55, 128, 86, 83, 49, 55, 54, 128, 86, 83, 49, 55, 53, 128, 86, + 83, 49, 55, 52, 128, 86, 83, 49, 55, 51, 128, 86, 83, 49, 55, 50, 128, + 86, 83, 49, 55, 49, 128, 86, 83, 49, 55, 48, 128, 86, 83, 49, 55, 128, + 86, 83, 49, 54, 57, 128, 86, 83, 49, 54, 56, 128, 86, 83, 49, 54, 55, + 128, 86, 83, 49, 54, 54, 128, 86, 83, 49, 54, 53, 128, 86, 83, 49, 54, + 52, 128, 86, 83, 49, 54, 51, 128, 86, 83, 49, 54, 50, 128, 86, 83, 49, + 54, 49, 128, 86, 83, 49, 54, 48, 128, 86, 83, 49, 54, 128, 86, 83, 49, + 53, 57, 128, 86, 83, 49, 53, 56, 128, 86, 83, 49, 53, 55, 128, 86, 83, + 49, 53, 54, 128, 86, 83, 49, 53, 53, 128, 86, 83, 49, 53, 52, 128, 86, + 83, 49, 53, 51, 128, 86, 83, 49, 53, 50, 128, 86, 83, 49, 53, 49, 128, + 86, 83, 49, 53, 48, 128, 86, 83, 49, 53, 128, 86, 83, 49, 52, 57, 128, + 86, 83, 49, 52, 56, 128, 86, 83, 49, 52, 55, 128, 86, 83, 49, 52, 54, + 128, 86, 83, 49, 52, 53, 128, 86, 83, 49, 52, 52, 128, 86, 83, 49, 52, + 51, 128, 86, 83, 49, 52, 50, 128, 86, 83, 49, 52, 49, 128, 86, 83, 49, + 52, 48, 128, 86, 83, 49, 52, 128, 86, 83, 49, 51, 57, 128, 86, 83, 49, + 51, 56, 128, 86, 83, 49, 51, 55, 128, 86, 83, 49, 51, 54, 128, 86, 83, + 49, 51, 53, 128, 86, 83, 49, 51, 52, 128, 86, 83, 49, 51, 51, 128, 86, + 83, 49, 51, 50, 128, 86, 83, 49, 51, 49, 128, 86, 83, 49, 51, 48, 128, + 86, 83, 49, 51, 128, 86, 83, 49, 50, 57, 128, 86, 83, 49, 50, 56, 128, + 86, 83, 49, 50, 55, 128, 86, 83, 49, 50, 54, 128, 86, 83, 49, 50, 53, + 128, 86, 83, 49, 50, 52, 128, 86, 83, 49, 50, 51, 128, 86, 83, 49, 50, + 50, 128, 86, 83, 49, 50, 49, 128, 86, 83, 49, 50, 48, 128, 86, 83, 49, + 50, 128, 86, 83, 49, 49, 57, 128, 86, 83, 49, 49, 56, 128, 86, 83, 49, + 49, 55, 128, 86, 83, 49, 49, 54, 128, 86, 83, 49, 49, 53, 128, 86, 83, + 49, 49, 52, 128, 86, 83, 49, 49, 51, 128, 86, 83, 49, 49, 50, 128, 86, + 83, 49, 49, 49, 128, 86, 83, 49, 49, 48, 128, 86, 83, 49, 49, 128, 86, + 83, 49, 48, 57, 128, 86, 83, 49, 48, 56, 128, 86, 83, 49, 48, 55, 128, + 86, 83, 49, 48, 54, 128, 86, 83, 49, 48, 53, 128, 86, 83, 49, 48, 52, + 128, 86, 83, 49, 48, 51, 128, 86, 83, 49, 48, 50, 128, 86, 83, 49, 48, + 49, 128, 86, 83, 49, 48, 48, 128, 86, 83, 49, 48, 128, 86, 83, 49, 128, + 86, 83, 128, 86, 82, 65, 75, 72, 73, 89, 193, 86, 82, 65, 67, 72, 89, + 128, 86, 81, 128, 86, 79, 88, 128, 86, 79, 87, 69, 76, 45, 67, 65, 82, + 82, 73, 69, 210, 86, 79, 87, 128, 86, 79, 85, 128, 86, 79, 84, 128, 86, + 79, 211, 86, 79, 80, 128, 86, 79, 79, 73, 128, 86, 79, 79, 128, 86, 79, + 77, 73, 84, 73, 78, 71, 128, 86, 79, 77, 128, 86, 79, 76, 85, 77, 197, + 86, 79, 76, 84, 65, 71, 197, 86, 79, 76, 76, 69, 89, 66, 65, 76, 76, 128, + 86, 79, 76, 67, 65, 78, 79, 128, 86, 79, 76, 65, 80, 85, 203, 86, 79, 73, + 68, 69, 196, 86, 79, 73, 196, 86, 79, 73, 67, 73, 78, 71, 128, 86, 79, + 73, 67, 69, 76, 69, 83, 211, 86, 79, 73, 67, 69, 196, 86, 79, 68, 128, + 86, 79, 67, 65, 76, 73, 90, 65, 84, 73, 79, 206, 86, 79, 67, 65, 204, 86, + 79, 128, 86, 73, 89, 79, 128, 86, 73, 88, 128, 86, 73, 84, 82, 73, 79, + 76, 45, 50, 128, 86, 73, 84, 82, 73, 79, 76, 128, 86, 73, 84, 72, 75, 85, + 81, 201, 86, 73, 84, 65, 69, 45, 50, 128, 86, 73, 84, 65, 69, 128, 86, + 73, 84, 128, 86, 73, 83, 73, 71, 79, 84, 72, 73, 195, 86, 73, 83, 65, 82, + 71, 65, 89, 65, 128, 86, 73, 83, 65, 82, 71, 65, 128, 86, 73, 83, 65, 82, + 71, 193, 86, 73, 82, 73, 65, 77, 128, 86, 73, 82, 71, 79, 128, 86, 73, + 82, 71, 65, 128, 86, 73, 82, 65, 77, 65, 128, 86, 73, 80, 128, 86, 73, + 79, 76, 73, 78, 128, 86, 73, 78, 69, 71, 65, 82, 45, 51, 128, 86, 73, 78, + 69, 71, 65, 82, 45, 50, 128, 86, 73, 78, 69, 71, 65, 82, 128, 86, 73, 78, + 69, 71, 65, 210, 86, 73, 78, 69, 128, 86, 73, 78, 197, 86, 73, 78, 128, + 86, 73, 76, 76, 65, 71, 69, 128, 86, 73, 73, 128, 86, 73, 71, 73, 78, 84, + 73, 76, 69, 128, 86, 73, 69, 88, 128, 86, 73, 69, 87, 73, 78, 199, 86, + 73, 69, 87, 69, 82, 128, 86, 73, 69, 87, 68, 65, 84, 193, 86, 73, 69, 84, + 78, 65, 77, 69, 83, 197, 86, 73, 69, 84, 128, 86, 73, 69, 212, 86, 73, + 69, 80, 128, 86, 73, 69, 128, 86, 73, 68, 74, 45, 50, 128, 86, 73, 68, + 74, 128, 86, 73, 68, 69, 79, 67, 65, 83, 83, 69, 84, 84, 69, 128, 86, 73, + 68, 69, 207, 86, 73, 68, 65, 128, 86, 73, 67, 84, 79, 82, 217, 86, 73, + 66, 82, 65, 84, 73, 79, 206, 86, 72, 65, 128, 86, 70, 65, 128, 86, 69, + 89, 90, 128, 86, 69, 88, 128, 86, 69, 87, 128, 86, 69, 215, 86, 69, 85, + 88, 128, 86, 69, 85, 77, 128, 86, 69, 85, 65, 69, 80, 69, 78, 128, 86, + 69, 85, 65, 69, 128, 86, 69, 83, 84, 65, 128, 86, 69, 83, 84, 128, 86, + 69, 83, 83, 69, 204, 86, 69, 82, 217, 86, 69, 82, 84, 73, 67, 65, 76, 76, + 89, 128, 86, 69, 82, 84, 73, 67, 65, 76, 76, 217, 86, 69, 82, 84, 73, 67, + 65, 76, 45, 48, 54, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, + 48, 54, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 54, 45, + 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 54, 45, 48, 51, 128, + 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 54, 45, 48, 50, 128, 86, 69, 82, + 84, 73, 67, 65, 76, 45, 48, 54, 45, 48, 49, 128, 86, 69, 82, 84, 73, 67, + 65, 76, 45, 48, 54, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, + 48, 53, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 53, 45, + 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 53, 45, 48, 52, 128, + 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 53, 45, 48, 51, 128, 86, 69, 82, + 84, 73, 67, 65, 76, 45, 48, 53, 45, 48, 50, 128, 86, 69, 82, 84, 73, 67, + 65, 76, 45, 48, 53, 45, 48, 49, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, + 48, 53, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 52, 45, + 48, 54, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 52, 45, 48, 53, 128, + 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 52, 45, 48, 52, 128, 86, 69, 82, + 84, 73, 67, 65, 76, 45, 48, 52, 45, 48, 51, 128, 86, 69, 82, 84, 73, 67, + 65, 76, 45, 48, 52, 45, 48, 50, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, + 48, 52, 45, 48, 49, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 52, 45, + 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, 54, 128, + 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, 53, 128, 86, 69, 82, + 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, 52, 128, 86, 69, 82, 84, 73, 67, + 65, 76, 45, 48, 51, 45, 48, 51, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, + 48, 51, 45, 48, 50, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, + 48, 49, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, 48, 128, + 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 54, 128, 86, 69, 82, + 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, + 65, 76, 45, 48, 50, 45, 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, + 48, 50, 45, 48, 51, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, + 48, 50, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 49, 128, + 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 48, 128, 86, 69, 82, + 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67, + 65, 76, 45, 48, 49, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, + 48, 49, 45, 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 49, 45, + 48, 51, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, 50, 128, + 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, 49, 128, 86, 69, 82, + 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, + 65, 76, 45, 48, 48, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, + 48, 48, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 48, 45, + 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 48, 45, 48, 51, 128, + 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 48, 45, 48, 50, 128, 86, 69, 82, + 84, 73, 67, 65, 76, 45, 48, 48, 45, 48, 49, 128, 86, 69, 82, 84, 73, 67, + 65, 76, 45, 48, 48, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 128, + 86, 69, 82, 83, 73, 67, 76, 69, 128, 86, 69, 82, 83, 197, 86, 69, 82, 71, + 69, 128, 86, 69, 82, 68, 73, 71, 82, 73, 83, 128, 86, 69, 82, 128, 86, + 69, 80, 128, 86, 69, 78, 68, 128, 86, 69, 76, 73, 128, 86, 69, 73, 76, + 128, 86, 69, 72, 73, 67, 76, 69, 128, 86, 69, 72, 128, 86, 69, 200, 86, + 69, 69, 128, 86, 69, 197, 86, 69, 68, 69, 128, 86, 69, 67, 84, 79, 210, + 86, 67, 128, 86, 65, 89, 65, 78, 78, 65, 128, 86, 65, 88, 128, 86, 65, + 86, 128, 86, 65, 214, 86, 65, 85, 128, 86, 65, 84, 72, 89, 128, 86, 65, + 84, 128, 86, 65, 83, 84, 78, 69, 83, 211, 86, 65, 83, 73, 83, 128, 86, + 65, 82, 89, 211, 86, 65, 82, 73, 75, 65, 128, 86, 65, 82, 73, 65, 78, 84, + 128, 86, 65, 82, 73, 65, 78, 212, 86, 65, 82, 73, 65, 128, 86, 65, 82, + 73, 193, 86, 65, 82, 69, 73, 65, 201, 86, 65, 82, 69, 73, 193, 86, 65, + 82, 65, 65, 75, 65, 78, 128, 86, 65, 80, 79, 85, 82, 83, 128, 86, 65, 80, + 128, 86, 65, 78, 69, 128, 86, 65, 77, 80, 73, 82, 69, 128, 86, 65, 77, + 65, 71, 79, 77, 85, 75, 72, 65, 128, 86, 65, 77, 65, 71, 79, 77, 85, 75, + 72, 193, 86, 65, 76, 76, 69, 89, 128, 86, 65, 75, 65, 73, 89, 65, 82, 65, + 65, 128, 86, 65, 74, 128, 86, 65, 73, 128, 86, 65, 72, 128, 86, 65, 200, + 86, 65, 65, 86, 85, 128, 86, 65, 65, 128, 86, 193, 86, 48, 52, 48, 65, + 128, 86, 48, 52, 48, 128, 86, 48, 51, 57, 128, 86, 48, 51, 56, 128, 86, + 48, 51, 55, 65, 128, 86, 48, 51, 55, 128, 86, 48, 51, 54, 128, 86, 48, + 51, 53, 128, 86, 48, 51, 52, 128, 86, 48, 51, 51, 65, 128, 86, 48, 51, + 51, 128, 86, 48, 51, 50, 128, 86, 48, 51, 49, 65, 128, 86, 48, 51, 49, + 128, 86, 48, 51, 48, 65, 128, 86, 48, 51, 48, 128, 86, 48, 50, 57, 65, + 128, 86, 48, 50, 57, 128, 86, 48, 50, 56, 65, 128, 86, 48, 50, 56, 128, + 86, 48, 50, 55, 128, 86, 48, 50, 54, 128, 86, 48, 50, 53, 128, 86, 48, + 50, 52, 128, 86, 48, 50, 51, 65, 128, 86, 48, 50, 51, 128, 86, 48, 50, + 50, 128, 86, 48, 50, 49, 128, 86, 48, 50, 48, 76, 128, 86, 48, 50, 48, + 75, 128, 86, 48, 50, 48, 74, 128, 86, 48, 50, 48, 73, 128, 86, 48, 50, + 48, 72, 128, 86, 48, 50, 48, 71, 128, 86, 48, 50, 48, 70, 128, 86, 48, + 50, 48, 69, 128, 86, 48, 50, 48, 68, 128, 86, 48, 50, 48, 67, 128, 86, + 48, 50, 48, 66, 128, 86, 48, 50, 48, 65, 128, 86, 48, 50, 48, 128, 86, + 48, 49, 57, 128, 86, 48, 49, 56, 128, 86, 48, 49, 55, 128, 86, 48, 49, + 54, 128, 86, 48, 49, 53, 128, 86, 48, 49, 52, 128, 86, 48, 49, 51, 128, + 86, 48, 49, 50, 66, 128, 86, 48, 49, 50, 65, 128, 86, 48, 49, 50, 128, + 86, 48, 49, 49, 67, 128, 86, 48, 49, 49, 66, 128, 86, 48, 49, 49, 65, + 128, 86, 48, 49, 49, 128, 86, 48, 49, 48, 128, 86, 48, 48, 57, 128, 86, + 48, 48, 56, 128, 86, 48, 48, 55, 66, 128, 86, 48, 48, 55, 65, 128, 86, + 48, 48, 55, 128, 86, 48, 48, 54, 128, 86, 48, 48, 53, 128, 86, 48, 48, + 52, 128, 86, 48, 48, 51, 128, 86, 48, 48, 50, 65, 128, 86, 48, 48, 50, + 128, 86, 48, 48, 49, 73, 128, 86, 48, 48, 49, 72, 128, 86, 48, 48, 49, + 71, 128, 86, 48, 48, 49, 70, 128, 86, 48, 48, 49, 69, 128, 86, 48, 48, + 49, 68, 128, 86, 48, 48, 49, 67, 128, 86, 48, 48, 49, 66, 128, 86, 48, + 48, 49, 65, 128, 86, 48, 48, 49, 128, 85, 90, 85, 128, 85, 90, 72, 65, + 75, 75, 85, 128, 85, 90, 51, 128, 85, 90, 179, 85, 90, 128, 85, 89, 71, + 72, 85, 210, 85, 89, 65, 78, 78, 65, 128, 85, 89, 128, 85, 87, 85, 128, + 85, 85, 89, 65, 78, 78, 65, 128, 85, 85, 85, 85, 128, 85, 85, 85, 51, + 128, 85, 85, 85, 50, 128, 85, 85, 69, 128, 85, 84, 85, 75, 73, 128, 85, + 83, 83, 85, 51, 128, 85, 83, 83, 85, 128, 85, 83, 72, 88, 128, 85, 83, + 72, 85, 77, 88, 128, 85, 83, 72, 69, 78, 78, 65, 128, 85, 83, 72, 50, + 128, 85, 83, 72, 128, 85, 83, 200, 85, 83, 69, 196, 85, 83, 69, 45, 50, + 128, 85, 83, 69, 45, 49, 128, 85, 83, 69, 128, 85, 83, 197, 85, 82, 85, + 218, 85, 82, 85, 83, 128, 85, 82, 85, 68, 65, 128, 85, 82, 85, 68, 193, + 85, 82, 85, 128, 85, 82, 213, 85, 82, 78, 128, 85, 82, 73, 78, 69, 128, + 85, 82, 73, 51, 128, 85, 82, 73, 128, 85, 82, 65, 78, 85, 83, 128, 85, + 82, 65, 128, 85, 82, 52, 128, 85, 82, 50, 128, 85, 82, 178, 85, 80, 87, + 65, 82, 68, 83, 128, 85, 80, 87, 65, 82, 68, 211, 85, 80, 87, 65, 82, 68, + 128, 85, 80, 87, 65, 82, 196, 85, 80, 84, 85, 82, 78, 128, 85, 80, 83, + 73, 76, 79, 78, 128, 85, 80, 83, 73, 76, 79, 206, 85, 80, 83, 73, 68, 69, + 45, 68, 79, 87, 206, 85, 80, 82, 73, 71, 72, 212, 85, 80, 80, 69, 82, + 128, 85, 80, 65, 68, 72, 77, 65, 78, 73, 89, 65, 128, 85, 80, 45, 80, 79, + 73, 78, 84, 73, 78, 199, 85, 79, 78, 128, 85, 79, 71, 128, 85, 78, 78, + 128, 85, 78, 77, 65, 82, 82, 73, 69, 196, 85, 78, 75, 78, 79, 87, 78, + 128, 85, 78, 75, 128, 85, 78, 73, 86, 69, 82, 83, 65, 204, 85, 78, 73, + 84, 89, 128, 85, 78, 73, 84, 69, 196, 85, 78, 73, 84, 128, 85, 78, 73, + 212, 85, 78, 73, 79, 78, 128, 85, 78, 73, 79, 206, 85, 78, 73, 70, 79, + 82, 77, 128, 85, 78, 73, 70, 73, 69, 196, 85, 78, 73, 67, 79, 82, 206, + 85, 78, 69, 86, 69, 206, 85, 78, 68, 207, 85, 78, 68, 69, 82, 84, 73, 69, + 128, 85, 78, 68, 69, 82, 76, 73, 78, 197, 85, 78, 68, 69, 82, 68, 79, 84, + 128, 85, 78, 68, 69, 82, 66, 65, 82, 128, 85, 78, 68, 69, 82, 128, 85, + 78, 68, 69, 210, 85, 78, 67, 73, 193, 85, 78, 67, 69, 82, 84, 65, 73, 78, + 84, 217, 85, 78, 66, 76, 69, 78, 68, 69, 196, 85, 78, 65, 83, 80, 73, 82, + 65, 84, 69, 68, 128, 85, 78, 65, 80, 128, 85, 78, 65, 77, 85, 83, 69, + 196, 85, 78, 65, 128, 85, 206, 85, 77, 85, 77, 128, 85, 77, 85, 205, 85, + 77, 66, 82, 69, 76, 76, 65, 128, 85, 77, 66, 82, 69, 76, 76, 193, 85, 77, + 66, 73, 78, 128, 85, 75, 85, 128, 85, 75, 82, 65, 73, 78, 73, 65, 206, + 85, 75, 65, 82, 65, 128, 85, 75, 65, 82, 193, 85, 75, 128, 85, 73, 90, + 128, 85, 73, 88, 128, 85, 73, 85, 90, 128, 85, 73, 85, 88, 128, 85, 73, + 85, 81, 128, 85, 73, 85, 67, 128, 85, 73, 81, 128, 85, 73, 76, 76, 69, + 65, 78, 78, 128, 85, 73, 71, 72, 85, 210, 85, 73, 67, 128, 85, 72, 68, + 128, 85, 71, 65, 82, 73, 84, 73, 195, 85, 69, 90, 128, 85, 69, 89, 128, + 85, 69, 88, 128, 85, 69, 78, 128, 85, 69, 73, 128, 85, 69, 69, 128, 85, + 69, 67, 128, 85, 69, 65, 128, 85, 68, 85, 71, 128, 85, 68, 65, 84, 84, + 65, 128, 85, 68, 65, 84, 84, 193, 85, 68, 65, 82, 75, 65, 128, 85, 68, + 65, 65, 84, 128, 85, 68, 128, 85, 196, 85, 66, 85, 70, 73, 76, 73, 128, + 85, 66, 72, 65, 89, 65, 84, 207, 85, 66, 65, 68, 65, 77, 65, 128, 85, 66, + 128, 85, 65, 84, 72, 128, 85, 65, 78, 71, 128, 85, 65, 128, 85, 178, 85, + 48, 52, 50, 128, 85, 48, 52, 49, 128, 85, 48, 52, 48, 128, 85, 48, 51, + 57, 128, 85, 48, 51, 56, 128, 85, 48, 51, 55, 128, 85, 48, 51, 54, 128, + 85, 48, 51, 53, 128, 85, 48, 51, 52, 128, 85, 48, 51, 51, 128, 85, 48, + 51, 50, 65, 128, 85, 48, 51, 50, 128, 85, 48, 51, 49, 128, 85, 48, 51, + 48, 128, 85, 48, 50, 57, 65, 128, 85, 48, 50, 57, 128, 85, 48, 50, 56, + 128, 85, 48, 50, 55, 128, 85, 48, 50, 54, 128, 85, 48, 50, 53, 128, 85, + 48, 50, 52, 128, 85, 48, 50, 51, 65, 128, 85, 48, 50, 51, 128, 85, 48, + 50, 50, 128, 85, 48, 50, 49, 128, 85, 48, 50, 48, 128, 85, 48, 49, 57, + 128, 85, 48, 49, 56, 128, 85, 48, 49, 55, 128, 85, 48, 49, 54, 128, 85, + 48, 49, 53, 128, 85, 48, 49, 52, 128, 85, 48, 49, 51, 128, 85, 48, 49, + 50, 128, 85, 48, 49, 49, 128, 85, 48, 49, 48, 128, 85, 48, 48, 57, 128, + 85, 48, 48, 56, 128, 85, 48, 48, 55, 128, 85, 48, 48, 54, 66, 128, 85, + 48, 48, 54, 65, 128, 85, 48, 48, 54, 128, 85, 48, 48, 53, 128, 85, 48, + 48, 52, 128, 85, 48, 48, 51, 128, 85, 48, 48, 50, 128, 85, 48, 48, 49, + 128, 85, 45, 83, 72, 65, 80, 69, 196, 85, 45, 73, 45, 73, 128, 85, 45, + 69, 79, 45, 69, 85, 128, 85, 45, 66, 82, 74, 71, 85, 128, 85, 45, 53, + 128, 84, 90, 85, 128, 84, 90, 79, 65, 128, 84, 90, 79, 128, 84, 90, 73, + 210, 84, 90, 73, 128, 84, 90, 69, 69, 128, 84, 90, 69, 128, 84, 90, 65, + 65, 128, 84, 90, 65, 128, 84, 90, 128, 84, 89, 210, 84, 89, 80, 69, 45, + 183, 84, 89, 80, 69, 45, 54, 128, 84, 89, 80, 69, 45, 182, 84, 89, 80, + 69, 45, 53, 128, 84, 89, 80, 69, 45, 181, 84, 89, 80, 69, 45, 52, 128, + 84, 89, 80, 69, 45, 180, 84, 89, 80, 69, 45, 51, 128, 84, 89, 80, 69, 45, + 179, 84, 89, 80, 69, 45, 178, 84, 89, 80, 69, 45, 49, 45, 50, 128, 84, + 89, 80, 69, 45, 177, 84, 89, 80, 197, 84, 89, 79, 128, 84, 89, 73, 128, + 84, 89, 69, 128, 84, 89, 65, 89, 128, 84, 89, 65, 128, 84, 88, 87, 86, + 128, 84, 88, 87, 214, 84, 88, 72, 69, 69, 202, 84, 88, 65, 128, 84, 87, + 79, 79, 128, 84, 87, 79, 45, 87, 65, 217, 84, 87, 79, 45, 84, 72, 73, 82, + 84, 89, 128, 84, 87, 79, 45, 76, 73, 78, 197, 84, 87, 79, 45, 72, 69, 65, + 68, 69, 196, 84, 87, 79, 45, 69, 205, 84, 87, 79, 45, 67, 73, 82, 67, 76, + 197, 84, 87, 73, 83, 84, 73, 78, 71, 128, 84, 87, 73, 83, 84, 69, 196, + 84, 87, 73, 73, 128, 84, 87, 73, 128, 84, 87, 69, 78, 84, 89, 45, 84, 87, + 79, 128, 84, 87, 69, 78, 84, 89, 45, 84, 87, 207, 84, 87, 69, 78, 84, 89, + 45, 84, 72, 82, 69, 69, 128, 84, 87, 69, 78, 84, 89, 45, 83, 73, 88, 128, + 84, 87, 69, 78, 84, 89, 45, 83, 69, 86, 69, 78, 128, 84, 87, 69, 78, 84, + 89, 45, 79, 78, 69, 128, 84, 87, 69, 78, 84, 89, 45, 78, 73, 78, 69, 128, + 84, 87, 69, 78, 84, 89, 45, 70, 79, 85, 82, 128, 84, 87, 69, 78, 84, 89, + 45, 70, 73, 86, 69, 128, 84, 87, 69, 78, 84, 89, 45, 70, 73, 86, 197, 84, + 87, 69, 78, 84, 89, 45, 69, 73, 71, 72, 84, 200, 84, 87, 69, 78, 84, 89, + 45, 69, 73, 71, 72, 84, 128, 84, 87, 69, 78, 84, 89, 128, 84, 87, 69, 78, + 84, 217, 84, 87, 69, 78, 84, 73, 69, 84, 72, 83, 128, 84, 87, 69, 78, 84, + 73, 69, 84, 72, 128, 84, 87, 69, 76, 86, 69, 45, 84, 72, 73, 82, 84, 89, + 128, 84, 87, 69, 76, 86, 69, 128, 84, 87, 69, 76, 86, 197, 84, 87, 69, + 76, 70, 84, 72, 83, 128, 84, 87, 69, 76, 70, 84, 72, 128, 84, 87, 69, + 128, 84, 87, 65, 65, 128, 84, 87, 65, 128, 84, 86, 82, 73, 68, 79, 128, + 84, 86, 73, 77, 65, 68, 85, 210, 84, 85, 88, 69, 68, 79, 128, 84, 85, 88, + 128, 84, 85, 85, 77, 85, 128, 84, 85, 85, 128, 84, 85, 84, 84, 89, 128, + 84, 85, 84, 69, 89, 65, 83, 65, 84, 128, 84, 85, 84, 128, 84, 85, 82, 88, + 128, 84, 85, 82, 85, 128, 84, 85, 82, 84, 76, 69, 128, 84, 85, 82, 79, + 50, 128, 84, 85, 82, 78, 83, 84, 73, 76, 69, 128, 84, 85, 82, 206, 84, + 85, 82, 75, 73, 83, 200, 84, 85, 82, 75, 73, 195, 84, 85, 82, 75, 69, 89, + 128, 84, 85, 82, 66, 65, 78, 128, 84, 85, 82, 128, 84, 85, 210, 84, 85, + 80, 78, 73, 128, 84, 85, 80, 128, 84, 85, 79, 88, 128, 84, 85, 79, 84, + 128, 84, 85, 79, 80, 128, 84, 85, 79, 128, 84, 85, 78, 78, 89, 128, 84, + 85, 77, 69, 84, 69, 83, 128, 84, 85, 77, 66, 76, 69, 210, 84, 85, 77, 65, + 69, 128, 84, 85, 77, 128, 84, 85, 205, 84, 85, 76, 73, 80, 128, 84, 85, + 75, 87, 69, 78, 84, 73, 83, 128, 84, 85, 75, 128, 84, 85, 71, 82, 73, + 203, 84, 85, 71, 50, 128, 84, 85, 71, 178, 84, 85, 66, 69, 128, 84, 85, + 66, 128, 84, 85, 65, 82, 69, 199, 84, 85, 65, 69, 80, 128, 84, 85, 65, + 69, 128, 84, 85, 45, 84, 79, 128, 84, 85, 45, 52, 128, 84, 85, 45, 51, + 128, 84, 85, 45, 50, 128, 84, 85, 45, 49, 128, 84, 213, 84, 84, 85, 85, + 128, 84, 84, 85, 68, 68, 65, 71, 128, 84, 84, 85, 68, 68, 65, 65, 71, + 128, 84, 84, 85, 128, 84, 84, 84, 72, 65, 128, 84, 84, 84, 65, 128, 84, + 84, 83, 85, 128, 84, 84, 83, 79, 128, 84, 84, 83, 73, 128, 84, 84, 83, + 69, 69, 128, 84, 84, 83, 69, 128, 84, 84, 83, 65, 128, 84, 84, 79, 79, + 128, 84, 84, 73, 73, 128, 84, 84, 73, 128, 84, 84, 72, 87, 69, 128, 84, + 84, 72, 85, 128, 84, 84, 72, 79, 79, 128, 84, 84, 72, 79, 128, 84, 84, + 72, 73, 128, 84, 84, 72, 69, 69, 128, 84, 84, 72, 69, 128, 84, 84, 72, + 65, 65, 128, 84, 84, 72, 128, 84, 84, 69, 72, 69, 72, 128, 84, 84, 69, + 72, 69, 200, 84, 84, 69, 72, 128, 84, 84, 69, 200, 84, 84, 69, 69, 128, + 84, 84, 65, 89, 65, 78, 78, 65, 128, 84, 84, 65, 85, 128, 84, 84, 65, 73, + 128, 84, 84, 65, 65, 128, 84, 84, 50, 128, 84, 83, 87, 69, 128, 84, 83, + 87, 66, 128, 84, 83, 87, 65, 128, 84, 83, 86, 128, 84, 83, 83, 69, 128, + 84, 83, 83, 65, 128, 84, 83, 79, 214, 84, 83, 73, 85, 128, 84, 83, 72, + 85, 71, 83, 128, 84, 83, 72, 79, 79, 75, 128, 84, 83, 72, 79, 79, 203, + 84, 83, 72, 79, 79, 74, 128, 84, 83, 72, 69, 83, 128, 84, 83, 72, 69, 71, + 128, 84, 83, 72, 69, 199, 84, 83, 72, 69, 69, 74, 128, 84, 83, 72, 69, + 128, 84, 83, 72, 65, 194, 84, 83, 72, 65, 128, 84, 83, 69, 82, 69, 128, + 84, 83, 69, 69, 66, 128, 84, 83, 65, 84, 193, 84, 83, 65, 68, 73, 128, + 84, 83, 65, 68, 201, 84, 83, 65, 66, 128, 84, 83, 65, 65, 68, 73, 89, + 128, 84, 83, 65, 65, 128, 84, 83, 193, 84, 82, 89, 66, 76, 73, 79, 206, + 84, 82, 89, 65, 83, 79, 83, 84, 82, 69, 76, 78, 65, 89, 65, 128, 84, 82, + 89, 65, 83, 79, 80, 79, 86, 79, 68, 78, 65, 89, 65, 128, 84, 82, 89, 65, + 83, 79, 71, 76, 65, 83, 78, 65, 89, 65, 128, 84, 82, 89, 65, 83, 75, 65, + 128, 84, 82, 85, 84, 72, 128, 84, 82, 85, 78, 75, 128, 84, 82, 85, 78, + 67, 65, 84, 69, 196, 84, 82, 85, 77, 80, 69, 84, 128, 84, 82, 85, 77, 80, + 45, 57, 128, 84, 82, 85, 77, 80, 45, 56, 128, 84, 82, 85, 77, 80, 45, 55, + 128, 84, 82, 85, 77, 80, 45, 54, 128, 84, 82, 85, 77, 80, 45, 53, 128, + 84, 82, 85, 77, 80, 45, 52, 128, 84, 82, 85, 77, 80, 45, 51, 128, 84, 82, + 85, 77, 80, 45, 50, 49, 128, 84, 82, 85, 77, 80, 45, 50, 48, 128, 84, 82, + 85, 77, 80, 45, 50, 128, 84, 82, 85, 77, 80, 45, 49, 57, 128, 84, 82, 85, + 77, 80, 45, 49, 56, 128, 84, 82, 85, 77, 80, 45, 49, 55, 128, 84, 82, 85, + 77, 80, 45, 49, 54, 128, 84, 82, 85, 77, 80, 45, 49, 53, 128, 84, 82, 85, + 77, 80, 45, 49, 52, 128, 84, 82, 85, 77, 80, 45, 49, 51, 128, 84, 82, 85, + 77, 80, 45, 49, 50, 128, 84, 82, 85, 77, 80, 45, 49, 49, 128, 84, 82, 85, + 77, 80, 45, 49, 48, 128, 84, 82, 85, 77, 80, 45, 49, 128, 84, 82, 85, 69, + 128, 84, 82, 85, 197, 84, 82, 85, 67, 75, 128, 84, 82, 79, 80, 73, 67, + 65, 204, 84, 82, 79, 80, 72, 89, 128, 84, 82, 79, 77, 73, 75, 79, 83, 89, + 78, 65, 71, 77, 65, 128, 84, 82, 79, 77, 73, 75, 79, 80, 83, 73, 70, 73, + 83, 84, 79, 78, 128, 84, 82, 79, 77, 73, 75, 79, 80, 65, 82, 65, 75, 65, + 76, 69, 83, 77, 65, 128, 84, 82, 79, 77, 73, 75, 79, 78, 128, 84, 82, 79, + 77, 73, 75, 79, 206, 84, 82, 79, 77, 73, 75, 79, 76, 89, 71, 73, 83, 77, + 65, 128, 84, 82, 79, 76, 76, 69, 89, 66, 85, 83, 128, 84, 82, 79, 76, 76, + 69, 89, 128, 84, 82, 79, 76, 76, 128, 84, 82, 79, 75, 85, 84, 65, 83, 84, + 201, 84, 82, 79, 69, 90, 69, 78, 73, 65, 206, 84, 82, 73, 85, 77, 80, 72, + 128, 84, 82, 73, 84, 79, 211, 84, 82, 73, 84, 73, 77, 79, 82, 73, 79, 78, + 128, 84, 82, 73, 83, 73, 77, 79, 85, 128, 84, 82, 73, 83, 69, 77, 69, + 128, 84, 82, 73, 80, 79, 68, 128, 84, 82, 73, 80, 76, 73, 128, 84, 82, + 73, 80, 76, 69, 128, 84, 82, 73, 80, 76, 197, 84, 82, 73, 79, 206, 84, + 82, 73, 76, 76, 73, 79, 78, 83, 128, 84, 82, 73, 76, 76, 128, 84, 82, 73, + 73, 83, 65, 80, 128, 84, 82, 73, 71, 82, 65, 77, 77, 79, 211, 84, 82, 73, + 71, 82, 65, 205, 84, 82, 73, 71, 79, 82, 71, 79, 78, 128, 84, 82, 73, 70, + 79, 78, 73, 65, 83, 128, 84, 82, 73, 70, 79, 76, 73, 65, 84, 197, 84, 82, + 73, 68, 69, 78, 84, 128, 84, 82, 73, 68, 69, 78, 212, 84, 82, 73, 67, 79, + 76, 79, 78, 128, 84, 82, 73, 65, 78, 71, 85, 76, 65, 210, 84, 82, 73, 65, + 78, 71, 76, 69, 45, 82, 79, 85, 78, 196, 84, 82, 73, 65, 78, 71, 76, 69, + 45, 72, 69, 65, 68, 69, 196, 84, 82, 73, 65, 78, 71, 76, 69, 128, 84, 82, + 73, 65, 78, 71, 76, 197, 84, 82, 73, 65, 128, 84, 82, 73, 128, 84, 82, + 69, 83, 86, 69, 84, 76, 89, 128, 84, 82, 69, 83, 86, 69, 84, 76, 79, 128, + 84, 82, 69, 83, 86, 69, 84, 76, 65, 89, 65, 128, 84, 82, 69, 83, 73, 76, + 76, 79, 128, 84, 82, 69, 78, 68, 128, 84, 82, 69, 78, 196, 84, 82, 69, + 77, 79, 76, 79, 45, 51, 128, 84, 82, 69, 77, 79, 76, 79, 45, 50, 128, 84, + 82, 69, 77, 79, 76, 79, 45, 49, 128, 84, 82, 69, 69, 128, 84, 82, 69, + 197, 84, 82, 69, 68, 69, 67, 73, 76, 69, 128, 84, 82, 69, 65, 68, 73, 78, + 71, 128, 84, 82, 65, 89, 128, 84, 82, 65, 86, 69, 76, 45, 87, 65, 76, 76, + 80, 76, 65, 78, 197, 84, 82, 65, 86, 69, 76, 45, 70, 76, 79, 79, 82, 80, + 76, 65, 78, 197, 84, 82, 65, 80, 69, 90, 73, 85, 77, 128, 84, 82, 65, 80, + 128, 84, 82, 65, 78, 83, 86, 69, 82, 83, 65, 204, 84, 82, 65, 78, 83, 80, + 79, 83, 73, 84, 73, 79, 206, 84, 82, 65, 78, 83, 80, 76, 85, 84, 79, 128, + 84, 82, 65, 78, 83, 77, 73, 212, 84, 82, 65, 78, 83, 77, 73, 83, 83, 73, + 79, 78, 128, 84, 82, 65, 78, 83, 77, 73, 83, 83, 73, 79, 206, 84, 82, 65, + 77, 87, 65, 89, 128, 84, 82, 65, 77, 128, 84, 82, 65, 205, 84, 82, 65, + 73, 78, 128, 84, 82, 65, 73, 206, 84, 82, 65, 73, 76, 73, 78, 199, 84, + 82, 65, 70, 70, 73, 67, 128, 84, 82, 65, 70, 70, 73, 195, 84, 82, 65, 68, + 73, 84, 73, 79, 78, 65, 204, 84, 82, 65, 68, 197, 84, 82, 65, 67, 84, 79, + 82, 128, 84, 82, 65, 67, 75, 66, 65, 76, 76, 128, 84, 82, 65, 67, 75, + 128, 84, 82, 65, 128, 84, 82, 128, 84, 79, 88, 128, 84, 79, 87, 69, 82, + 128, 84, 79, 87, 65, 82, 68, 211, 84, 79, 86, 128, 84, 79, 85, 82, 78, + 79, 73, 211, 84, 79, 85, 67, 72, 84, 79, 78, 197, 84, 79, 85, 67, 72, 73, + 78, 199, 84, 79, 85, 67, 72, 69, 211, 84, 79, 85, 67, 200, 84, 79, 84, + 207, 84, 79, 84, 65, 204, 84, 79, 84, 128, 84, 79, 83, 128, 84, 79, 82, + 84, 79, 73, 83, 197, 84, 79, 82, 83, 79, 45, 87, 65, 76, 76, 80, 76, 65, + 78, 197, 84, 79, 82, 83, 79, 45, 70, 76, 79, 79, 82, 80, 76, 65, 78, 197, + 84, 79, 82, 83, 79, 128, 84, 79, 82, 78, 65, 68, 79, 128, 84, 79, 82, 67, + 85, 76, 85, 83, 128, 84, 79, 82, 67, 85, 76, 85, 211, 84, 79, 82, 67, 72, + 128, 84, 79, 81, 128, 84, 79, 80, 66, 65, 82, 128, 84, 79, 80, 45, 76, + 73, 71, 72, 84, 69, 196, 84, 79, 80, 128, 84, 79, 208, 84, 79, 79, 84, + 72, 66, 82, 85, 83, 72, 128, 84, 79, 79, 84, 72, 128, 84, 79, 79, 78, + 128, 84, 79, 79, 76, 66, 79, 88, 128, 84, 79, 78, 79, 83, 128, 84, 79, + 78, 71, 85, 69, 128, 84, 79, 78, 71, 85, 197, 84, 79, 78, 71, 128, 84, + 79, 78, 69, 45, 86, 128, 84, 79, 78, 69, 45, 83, 128, 84, 79, 78, 69, 45, + 77, 128, 84, 79, 78, 69, 45, 74, 128, 84, 79, 78, 69, 45, 71, 128, 84, + 79, 78, 69, 45, 68, 128, 84, 79, 78, 69, 45, 66, 128, 84, 79, 78, 69, 45, + 56, 128, 84, 79, 78, 69, 45, 55, 128, 84, 79, 78, 69, 45, 54, 128, 84, + 79, 78, 69, 45, 53, 128, 84, 79, 78, 69, 45, 52, 128, 84, 79, 78, 69, 45, + 51, 128, 84, 79, 78, 69, 45, 50, 128, 84, 79, 78, 69, 45, 49, 128, 84, + 79, 78, 69, 128, 84, 79, 78, 65, 204, 84, 79, 77, 80, 73, 128, 84, 79, + 77, 65, 84, 79, 128, 84, 79, 76, 79, 78, 71, 128, 84, 79, 75, 89, 207, + 84, 79, 73, 76, 69, 84, 128, 84, 79, 71, 69, 84, 72, 69, 82, 128, 84, 79, + 68, 207, 84, 79, 67, 72, 75, 65, 128, 84, 79, 65, 78, 68, 65, 75, 72, 73, + 65, 84, 128, 84, 79, 65, 128, 84, 79, 45, 82, 65, 128, 84, 79, 45, 54, + 128, 84, 79, 45, 53, 128, 84, 79, 45, 52, 128, 84, 79, 45, 51, 128, 84, + 79, 45, 50, 128, 84, 79, 45, 49, 128, 84, 78, 128, 84, 76, 86, 128, 84, + 76, 85, 128, 84, 76, 73, 128, 84, 76, 72, 89, 65, 128, 84, 76, 72, 87, + 69, 128, 84, 76, 72, 85, 128, 84, 76, 72, 79, 79, 128, 84, 76, 72, 79, + 128, 84, 76, 72, 73, 128, 84, 76, 72, 69, 69, 128, 84, 76, 72, 69, 128, + 84, 76, 72, 65, 128, 84, 76, 69, 69, 128, 84, 76, 65, 128, 84, 74, 69, + 128, 84, 73, 88, 128, 84, 73, 87, 82, 128, 84, 73, 87, 78, 128, 84, 73, + 87, 65, 218, 84, 73, 84, 85, 65, 69, 80, 128, 84, 73, 84, 76, 79, 128, + 84, 73, 84, 76, 207, 84, 73, 84, 193, 84, 73, 84, 128, 84, 73, 82, 89, + 65, 75, 128, 84, 73, 82, 84, 193, 84, 73, 82, 79, 78, 73, 65, 206, 84, + 73, 82, 72, 85, 84, 193, 84, 73, 82, 69, 196, 84, 73, 82, 128, 84, 73, + 210, 84, 73, 80, 80, 73, 128, 84, 73, 80, 69, 72, 65, 128, 84, 73, 80, + 128, 84, 73, 208, 84, 73, 78, 89, 128, 84, 73, 78, 217, 84, 73, 78, 78, + 69, 128, 84, 73, 78, 67, 84, 85, 82, 69, 128, 84, 73, 78, 65, 71, 77, 65, + 128, 84, 73, 77, 69, 83, 128, 84, 73, 77, 69, 210, 84, 73, 77, 69, 128, + 84, 73, 76, 84, 73, 78, 71, 128, 84, 73, 76, 84, 73, 78, 199, 84, 73, 76, + 84, 128, 84, 73, 76, 69, 83, 128, 84, 73, 76, 68, 69, 128, 84, 73, 76, + 68, 197, 84, 73, 76, 128, 84, 73, 204, 84, 73, 75, 72, 89, 128, 84, 73, + 75, 72, 65, 89, 65, 128, 84, 73, 75, 72, 65, 89, 193, 84, 73, 75, 69, 85, + 84, 45, 84, 72, 73, 69, 85, 84, 72, 128, 84, 73, 75, 69, 85, 84, 45, 83, + 73, 79, 83, 45, 75, 73, 89, 69, 79, 75, 128, 84, 73, 75, 69, 85, 84, 45, + 83, 73, 79, 83, 128, 84, 73, 75, 69, 85, 84, 45, 82, 73, 69, 85, 76, 128, + 84, 73, 75, 69, 85, 84, 45, 80, 73, 69, 85, 80, 128, 84, 73, 75, 69, 85, + 84, 45, 77, 73, 69, 85, 77, 128, 84, 73, 75, 69, 85, 84, 45, 75, 73, 89, + 69, 79, 75, 128, 84, 73, 75, 69, 85, 84, 45, 67, 73, 69, 85, 67, 128, 84, + 73, 75, 69, 85, 84, 45, 67, 72, 73, 69, 85, 67, 72, 128, 84, 73, 75, 69, + 85, 84, 128, 84, 73, 75, 69, 85, 212, 84, 73, 71, 72, 84, 76, 89, 45, 67, + 76, 79, 83, 69, 196, 84, 73, 71, 72, 212, 84, 73, 71, 69, 82, 128, 84, + 73, 71, 69, 210, 84, 73, 70, 73, 78, 65, 71, 200, 84, 73, 69, 88, 128, + 84, 73, 69, 80, 128, 84, 73, 197, 84, 73, 67, 75, 69, 84, 83, 128, 84, + 73, 67, 75, 69, 84, 128, 84, 73, 67, 75, 128, 84, 73, 67, 203, 84, 73, + 65, 82, 65, 128, 84, 73, 50, 128, 84, 73, 45, 55, 128, 84, 73, 45, 54, + 128, 84, 73, 45, 53, 128, 84, 73, 45, 52, 128, 84, 73, 45, 51, 128, 84, + 73, 45, 50, 128, 84, 73, 45, 49, 128, 84, 72, 90, 128, 84, 72, 89, 79, + 79, 205, 84, 72, 87, 79, 79, 128, 84, 72, 87, 79, 128, 84, 72, 87, 73, + 73, 128, 84, 72, 87, 73, 128, 84, 72, 87, 69, 69, 128, 84, 72, 87, 65, + 65, 128, 84, 72, 87, 65, 128, 84, 72, 85, 82, 211, 84, 72, 85, 82, 73, + 83, 65, 218, 84, 72, 85, 78, 71, 128, 84, 72, 85, 78, 68, 69, 82, 83, 84, + 79, 82, 77, 128, 84, 72, 85, 78, 68, 69, 82, 128, 84, 72, 85, 78, 68, 69, 210, 84, 72, 85, 77, 66, 211, 84, 72, 85, 77, 66, 128, 84, 72, 82, 79, 87, 73, 78, 199, 84, 72, 82, 79, 85, 71, 72, 128, 84, 72, 82, 79, 85, 71, 200, 84, 72, 82, 69, 69, 45, 84, 72, 73, 82, 84, 89, 128, 84, 72, 82, 69, @@ -912,274 +910,274 @@ static const unsigned char lexicon[] = { 65, 212, 83, 87, 65, 83, 200, 83, 87, 65, 80, 80, 73, 78, 71, 128, 83, 87, 65, 78, 128, 83, 87, 65, 65, 128, 83, 87, 128, 83, 86, 65, 83, 84, 201, 83, 86, 65, 82, 73, 84, 65, 128, 83, 86, 65, 82, 73, 84, 193, 83, - 85, 88, 128, 83, 85, 85, 128, 83, 85, 84, 85, 72, 128, 83, 85, 84, 82, - 193, 83, 85, 84, 128, 83, 85, 83, 80, 69, 78, 83, 73, 79, 206, 83, 85, - 83, 72, 73, 128, 83, 85, 82, 89, 65, 128, 83, 85, 82, 88, 128, 83, 85, - 82, 82, 79, 85, 78, 68, 128, 83, 85, 82, 82, 79, 85, 78, 196, 83, 85, 82, - 70, 69, 82, 128, 83, 85, 82, 70, 65, 67, 197, 83, 85, 82, 69, 128, 83, - 85, 82, 65, 78, 71, 128, 83, 85, 82, 57, 128, 83, 85, 82, 128, 83, 85, - 210, 83, 85, 80, 82, 65, 76, 73, 78, 69, 65, 210, 83, 85, 80, 69, 82, 86, - 73, 83, 69, 128, 83, 85, 80, 69, 82, 86, 73, 76, 76, 65, 73, 78, 128, 83, - 85, 80, 69, 82, 83, 69, 84, 128, 83, 85, 80, 69, 82, 83, 69, 212, 83, 85, - 80, 69, 82, 83, 67, 82, 73, 80, 212, 83, 85, 80, 69, 82, 73, 77, 80, 79, - 83, 69, 196, 83, 85, 80, 69, 82, 72, 69, 82, 79, 128, 83, 85, 80, 69, 82, - 70, 73, 88, 69, 196, 83, 85, 80, 69, 210, 83, 85, 80, 128, 83, 85, 79, - 88, 128, 83, 85, 79, 80, 128, 83, 85, 79, 128, 83, 85, 78, 83, 69, 212, - 83, 85, 78, 82, 73, 83, 69, 128, 83, 85, 78, 82, 73, 83, 197, 83, 85, 78, - 71, 76, 65, 83, 83, 69, 83, 128, 83, 85, 78, 71, 128, 83, 85, 78, 70, 76, - 79, 87, 69, 82, 128, 83, 85, 78, 68, 65, 78, 69, 83, 197, 83, 85, 78, - 128, 83, 85, 206, 83, 85, 77, 77, 69, 82, 128, 83, 85, 77, 77, 65, 84, - 73, 79, 78, 128, 83, 85, 77, 77, 65, 84, 73, 79, 206, 83, 85, 77, 65, 83, - 72, 128, 83, 85, 77, 128, 83, 85, 76, 70, 85, 82, 128, 83, 85, 75, 85, - 78, 128, 83, 85, 75, 85, 206, 83, 85, 75, 85, 128, 83, 85, 75, 213, 83, - 85, 73, 84, 65, 66, 76, 69, 128, 83, 85, 73, 212, 83, 85, 72, 85, 82, - 128, 83, 85, 69, 128, 83, 85, 68, 50, 128, 83, 85, 68, 128, 83, 85, 67, - 75, 73, 78, 199, 83, 85, 67, 75, 69, 68, 128, 83, 85, 67, 203, 83, 85, - 67, 67, 69, 69, 68, 83, 128, 83, 85, 67, 67, 69, 69, 68, 211, 83, 85, 67, - 67, 69, 69, 68, 128, 83, 85, 67, 67, 69, 69, 196, 83, 85, 66, 85, 78, 73, - 84, 128, 83, 85, 66, 83, 84, 73, 84, 85, 84, 73, 79, 206, 83, 85, 66, 83, - 84, 73, 84, 85, 84, 69, 128, 83, 85, 66, 83, 84, 73, 84, 85, 84, 197, 83, - 85, 66, 83, 69, 84, 128, 83, 85, 66, 83, 69, 212, 83, 85, 66, 83, 67, 82, - 73, 80, 212, 83, 85, 66, 80, 85, 78, 67, 84, 73, 83, 128, 83, 85, 66, 76, - 73, 78, 69, 65, 210, 83, 85, 66, 76, 73, 77, 65, 84, 73, 79, 78, 128, 83, - 85, 66, 76, 73, 77, 65, 84, 69, 45, 51, 128, 83, 85, 66, 76, 73, 77, 65, - 84, 69, 45, 50, 128, 83, 85, 66, 76, 73, 77, 65, 84, 69, 128, 83, 85, 66, - 76, 73, 77, 65, 84, 197, 83, 85, 66, 74, 79, 73, 78, 69, 82, 128, 83, 85, - 66, 74, 79, 73, 78, 69, 196, 83, 85, 66, 74, 69, 67, 84, 128, 83, 85, 66, - 73, 84, 79, 128, 83, 85, 66, 72, 65, 65, 78, 65, 72, 213, 83, 85, 66, 71, - 82, 79, 85, 80, 128, 83, 85, 66, 71, 82, 79, 85, 208, 83, 85, 66, 128, - 83, 85, 65, 77, 128, 83, 85, 65, 69, 84, 128, 83, 85, 65, 69, 78, 128, - 83, 85, 65, 69, 128, 83, 85, 65, 66, 128, 83, 85, 65, 128, 83, 85, 45, - 56, 128, 83, 85, 45, 55, 128, 83, 85, 45, 54, 128, 83, 85, 45, 53, 128, - 83, 85, 45, 52, 128, 83, 85, 45, 51, 128, 83, 85, 45, 50, 128, 83, 85, - 45, 49, 128, 83, 213, 83, 84, 88, 128, 83, 84, 87, 65, 128, 83, 84, 85, - 80, 65, 128, 83, 84, 85, 70, 70, 69, 196, 83, 84, 85, 68, 89, 128, 83, - 84, 85, 68, 73, 207, 83, 84, 85, 67, 75, 45, 79, 85, 212, 83, 84, 83, - 128, 83, 84, 82, 79, 78, 199, 83, 84, 82, 79, 75, 69, 83, 128, 83, 84, - 82, 79, 75, 69, 211, 83, 84, 82, 79, 75, 69, 45, 57, 128, 83, 84, 82, 79, - 75, 69, 45, 56, 128, 83, 84, 82, 79, 75, 69, 45, 55, 128, 83, 84, 82, 79, - 75, 69, 45, 54, 128, 83, 84, 82, 79, 75, 69, 45, 53, 128, 83, 84, 82, 79, - 75, 69, 45, 52, 128, 83, 84, 82, 79, 75, 69, 45, 51, 128, 83, 84, 82, 79, - 75, 69, 45, 50, 128, 83, 84, 82, 79, 75, 69, 45, 49, 49, 128, 83, 84, 82, - 79, 75, 69, 45, 49, 48, 128, 83, 84, 82, 79, 75, 69, 45, 49, 128, 83, 84, - 82, 79, 75, 197, 83, 84, 82, 73, 80, 69, 128, 83, 84, 82, 73, 78, 71, - 128, 83, 84, 82, 73, 78, 199, 83, 84, 82, 73, 75, 69, 84, 72, 82, 79, 85, - 71, 72, 128, 83, 84, 82, 73, 75, 197, 83, 84, 82, 73, 68, 69, 128, 83, - 84, 82, 73, 67, 84, 76, 217, 83, 84, 82, 69, 84, 67, 72, 69, 196, 83, 84, - 82, 69, 84, 67, 72, 128, 83, 84, 82, 69, 83, 211, 83, 84, 82, 69, 78, 71, - 84, 72, 128, 83, 84, 82, 69, 76, 193, 83, 84, 82, 69, 65, 77, 69, 82, - 128, 83, 84, 82, 65, 87, 66, 69, 82, 82, 89, 128, 83, 84, 82, 65, 87, - 128, 83, 84, 82, 65, 84, 85, 77, 45, 50, 128, 83, 84, 82, 65, 84, 85, 77, - 128, 83, 84, 82, 65, 84, 85, 205, 83, 84, 82, 65, 84, 73, 65, 206, 83, - 84, 82, 65, 78, 78, 79, 128, 83, 84, 82, 65, 78, 78, 207, 83, 84, 82, 65, - 73, 78, 69, 82, 128, 83, 84, 82, 65, 73, 71, 72, 84, 78, 69, 83, 83, 128, - 83, 84, 82, 65, 73, 71, 72, 84, 128, 83, 84, 82, 65, 73, 71, 72, 212, 83, - 84, 82, 65, 73, 70, 128, 83, 84, 82, 65, 71, 71, 73, 83, 77, 65, 84, 65, - 128, 83, 84, 79, 86, 69, 128, 83, 84, 79, 82, 69, 128, 83, 84, 79, 80, - 87, 65, 84, 67, 72, 128, 83, 84, 79, 80, 80, 73, 78, 71, 128, 83, 84, 79, - 80, 80, 65, 71, 69, 128, 83, 84, 79, 80, 73, 84, 83, 65, 128, 83, 84, 79, - 80, 73, 84, 83, 193, 83, 84, 79, 80, 128, 83, 84, 79, 208, 83, 84, 79, - 78, 69, 128, 83, 84, 79, 67, 75, 128, 83, 84, 79, 67, 203, 83, 84, 73, - 82, 82, 85, 208, 83, 84, 73, 77, 77, 69, 128, 83, 84, 73, 76, 204, 83, - 84, 73, 76, 197, 83, 84, 73, 71, 77, 65, 128, 83, 84, 73, 67, 75, 73, 78, - 199, 83, 84, 73, 67, 203, 83, 84, 69, 84, 72, 79, 83, 67, 79, 80, 69, - 128, 83, 84, 69, 82, 69, 79, 128, 83, 84, 69, 80, 128, 83, 84, 69, 78, - 79, 71, 82, 65, 80, 72, 73, 195, 83, 84, 69, 77, 128, 83, 84, 69, 65, 77, - 217, 83, 84, 69, 65, 77, 73, 78, 199, 83, 84, 69, 65, 77, 128, 83, 84, - 69, 65, 205, 83, 84, 65, 86, 82, 79, 85, 128, 83, 84, 65, 86, 82, 79, 83, - 128, 83, 84, 65, 86, 82, 79, 211, 83, 84, 65, 85, 82, 79, 83, 128, 83, - 84, 65, 84, 89, 65, 128, 83, 84, 65, 84, 89, 193, 83, 84, 65, 84, 85, - 197, 83, 84, 65, 84, 73, 79, 78, 128, 83, 84, 65, 84, 69, 82, 83, 128, - 83, 84, 65, 84, 69, 128, 83, 84, 65, 82, 84, 73, 78, 199, 83, 84, 65, 82, - 84, 128, 83, 84, 65, 82, 212, 83, 84, 65, 82, 83, 128, 83, 84, 65, 82, - 82, 69, 196, 83, 84, 65, 82, 75, 128, 83, 84, 65, 82, 128, 83, 84, 65, - 210, 83, 84, 65, 78, 68, 83, 84, 73, 76, 76, 128, 83, 84, 65, 78, 68, 73, - 78, 199, 83, 84, 65, 78, 68, 65, 82, 196, 83, 84, 65, 78, 68, 128, 83, - 84, 65, 78, 128, 83, 84, 65, 77, 80, 69, 196, 83, 84, 65, 76, 76, 73, 79, - 78, 128, 83, 84, 65, 70, 70, 128, 83, 84, 65, 70, 198, 83, 84, 65, 68, - 73, 85, 77, 128, 83, 84, 65, 67, 75, 69, 196, 83, 84, 65, 67, 67, 65, 84, - 79, 128, 83, 84, 65, 67, 67, 65, 84, 73, 83, 83, 73, 77, 79, 128, 83, 84, - 50, 128, 83, 83, 89, 88, 128, 83, 83, 89, 84, 128, 83, 83, 89, 82, 88, - 128, 83, 83, 89, 82, 128, 83, 83, 89, 80, 128, 83, 83, 89, 128, 83, 83, - 85, 88, 128, 83, 83, 85, 85, 128, 83, 83, 85, 84, 128, 83, 83, 85, 80, - 128, 83, 83, 79, 88, 128, 83, 83, 79, 84, 128, 83, 83, 79, 80, 128, 83, - 83, 79, 79, 128, 83, 83, 79, 128, 83, 83, 73, 88, 128, 83, 83, 73, 84, - 128, 83, 83, 73, 80, 128, 83, 83, 73, 73, 128, 83, 83, 73, 69, 88, 128, - 83, 83, 73, 69, 80, 128, 83, 83, 73, 69, 128, 83, 83, 72, 73, 78, 128, - 83, 83, 72, 69, 128, 83, 83, 69, 88, 128, 83, 83, 69, 80, 128, 83, 83, - 69, 69, 128, 83, 83, 65, 88, 128, 83, 83, 65, 85, 128, 83, 83, 65, 84, - 128, 83, 83, 65, 80, 128, 83, 83, 65, 78, 71, 89, 69, 83, 73, 69, 85, 78, - 71, 128, 83, 83, 65, 78, 71, 89, 69, 79, 82, 73, 78, 72, 73, 69, 85, 72, - 128, 83, 83, 65, 78, 71, 84, 73, 75, 69, 85, 84, 45, 80, 73, 69, 85, 80, - 128, 83, 83, 65, 78, 71, 84, 73, 75, 69, 85, 84, 128, 83, 83, 65, 78, 71, - 84, 72, 73, 69, 85, 84, 72, 128, 83, 83, 65, 78, 71, 83, 73, 79, 83, 45, - 84, 73, 75, 69, 85, 84, 128, 83, 83, 65, 78, 71, 83, 73, 79, 83, 45, 80, - 73, 69, 85, 80, 128, 83, 83, 65, 78, 71, 83, 73, 79, 83, 45, 75, 73, 89, - 69, 79, 75, 128, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 83, 83, 65, 78, - 71, 82, 73, 69, 85, 76, 45, 75, 72, 73, 69, 85, 75, 72, 128, 83, 83, 65, - 78, 71, 82, 73, 69, 85, 76, 128, 83, 83, 65, 78, 71, 80, 73, 69, 85, 80, - 128, 83, 83, 65, 78, 71, 78, 73, 69, 85, 78, 128, 83, 83, 65, 78, 71, 77, - 73, 69, 85, 77, 128, 83, 83, 65, 78, 71, 73, 69, 85, 78, 71, 128, 83, 83, - 65, 78, 71, 72, 73, 69, 85, 72, 128, 83, 83, 65, 78, 71, 67, 73, 69, 85, - 67, 45, 72, 73, 69, 85, 72, 128, 83, 83, 65, 78, 71, 67, 73, 69, 85, 67, - 128, 83, 83, 65, 78, 71, 65, 82, 65, 69, 65, 128, 83, 83, 65, 73, 128, - 83, 83, 65, 65, 128, 83, 83, 51, 128, 83, 83, 50, 128, 83, 82, 69, 68, - 78, 197, 83, 82, 128, 83, 81, 85, 73, 83, 200, 83, 81, 85, 73, 82, 82, - 69, 204, 83, 81, 85, 73, 71, 71, 76, 197, 83, 81, 85, 73, 68, 128, 83, - 81, 85, 69, 69, 90, 69, 68, 128, 83, 81, 85, 69, 69, 90, 197, 83, 81, 85, - 65, 212, 83, 81, 85, 65, 82, 69, 83, 128, 83, 81, 85, 65, 82, 69, 68, - 128, 83, 81, 85, 65, 82, 69, 128, 83, 80, 89, 128, 83, 80, 87, 65, 128, - 83, 80, 85, 78, 71, 211, 83, 80, 82, 79, 85, 84, 128, 83, 80, 82, 73, 78, - 71, 83, 128, 83, 80, 82, 73, 78, 71, 128, 83, 80, 82, 69, 67, 72, 71, 69, - 83, 65, 78, 199, 83, 80, 82, 69, 65, 68, 128, 83, 80, 82, 69, 65, 196, - 83, 80, 79, 85, 84, 73, 78, 199, 83, 80, 79, 84, 128, 83, 80, 79, 82, 84, - 211, 83, 80, 79, 79, 78, 128, 83, 80, 79, 79, 204, 83, 80, 79, 78, 71, - 69, 128, 83, 80, 79, 128, 83, 80, 76, 73, 84, 84, 73, 78, 199, 83, 80, - 76, 73, 84, 128, 83, 80, 76, 73, 212, 83, 80, 76, 65, 89, 69, 68, 128, - 83, 80, 76, 65, 83, 72, 73, 78, 199, 83, 80, 73, 82, 73, 84, 85, 211, 83, - 80, 73, 82, 73, 84, 128, 83, 80, 73, 82, 73, 212, 83, 80, 73, 82, 65, 78, - 84, 128, 83, 80, 73, 82, 65, 76, 128, 83, 80, 73, 82, 65, 204, 83, 80, - 73, 78, 69, 128, 83, 80, 73, 68, 69, 82, 217, 83, 80, 73, 68, 69, 82, - 128, 83, 80, 73, 68, 69, 210, 83, 80, 73, 67, 69, 128, 83, 80, 73, 128, - 83, 80, 72, 69, 82, 73, 67, 65, 204, 83, 80, 69, 83, 77, 73, 76, 207, 83, - 80, 69, 78, 212, 83, 80, 69, 69, 68, 66, 79, 65, 84, 128, 83, 80, 69, 69, - 67, 72, 128, 83, 80, 69, 69, 67, 200, 83, 80, 69, 67, 73, 65, 76, 128, - 83, 80, 69, 65, 82, 128, 83, 80, 69, 65, 75, 73, 78, 199, 83, 80, 69, 65, - 75, 69, 82, 128, 83, 80, 69, 65, 75, 69, 210, 83, 80, 69, 65, 75, 45, 78, - 79, 45, 69, 86, 73, 204, 83, 80, 69, 128, 83, 80, 65, 84, 72, 73, 128, - 83, 80, 65, 82, 75, 76, 73, 78, 199, 83, 80, 65, 82, 75, 76, 69, 83, 128, - 83, 80, 65, 82, 75, 76, 69, 82, 128, 83, 80, 65, 82, 75, 76, 69, 128, 83, - 80, 65, 71, 72, 69, 84, 84, 73, 128, 83, 80, 65, 68, 69, 83, 128, 83, 80, - 65, 68, 197, 83, 80, 65, 67, 73, 78, 199, 83, 80, 65, 67, 197, 83, 80, - 65, 128, 83, 79, 89, 79, 77, 66, 207, 83, 79, 89, 128, 83, 79, 87, 73, - 76, 207, 83, 79, 87, 128, 83, 79, 85, 84, 72, 69, 82, 206, 83, 79, 85, - 84, 72, 45, 83, 76, 65, 86, 69, 217, 83, 79, 85, 84, 200, 83, 79, 85, 82, - 67, 69, 128, 83, 79, 85, 78, 68, 128, 83, 79, 85, 78, 196, 83, 79, 85, - 78, 65, 80, 128, 83, 79, 85, 128, 83, 79, 83, 128, 83, 79, 82, 79, 67, - 72, 89, 193, 83, 79, 82, 73, 128, 83, 79, 82, 193, 83, 79, 81, 128, 83, - 79, 79, 206, 83, 79, 78, 74, 65, 77, 128, 83, 79, 78, 71, 128, 83, 79, - 78, 128, 83, 79, 77, 80, 69, 78, 199, 83, 79, 77, 128, 83, 79, 205, 83, - 79, 76, 73, 68, 85, 83, 128, 83, 79, 76, 73, 68, 85, 211, 83, 79, 76, 73, - 196, 83, 79, 76, 68, 73, 69, 82, 128, 83, 79, 72, 128, 83, 79, 71, 68, - 73, 65, 206, 83, 79, 70, 84, 87, 65, 82, 69, 45, 70, 85, 78, 67, 84, 73, - 79, 206, 83, 79, 70, 84, 78, 69, 83, 83, 128, 83, 79, 70, 84, 66, 65, 76, - 76, 128, 83, 79, 70, 212, 83, 79, 198, 83, 79, 67, 75, 83, 128, 83, 79, - 67, 73, 69, 84, 89, 128, 83, 79, 67, 67, 69, 210, 83, 79, 65, 80, 128, - 83, 79, 65, 128, 83, 79, 45, 55, 128, 83, 79, 45, 54, 128, 83, 79, 45, - 53, 128, 83, 79, 45, 52, 128, 83, 79, 45, 51, 128, 83, 79, 45, 50, 128, - 83, 79, 45, 49, 128, 83, 207, 83, 78, 79, 87, 77, 65, 78, 128, 83, 78, - 79, 87, 77, 65, 206, 83, 78, 79, 87, 70, 76, 65, 75, 69, 128, 83, 78, 79, - 87, 66, 79, 65, 82, 68, 69, 82, 128, 83, 78, 79, 87, 128, 83, 78, 79, - 215, 83, 78, 79, 85, 84, 128, 83, 78, 79, 85, 212, 83, 78, 69, 69, 90, - 73, 78, 199, 83, 78, 65, 208, 83, 78, 65, 75, 69, 128, 83, 78, 65, 75, - 197, 83, 78, 65, 73, 76, 128, 83, 78, 193, 83, 77, 79, 75, 73, 78, 199, - 83, 77, 73, 82, 75, 73, 78, 199, 83, 77, 73, 76, 73, 78, 199, 83, 77, 73, - 76, 69, 128, 83, 77, 73, 76, 197, 83, 77, 69, 65, 82, 128, 83, 77, 65, - 83, 200, 83, 77, 65, 76, 76, 69, 210, 83, 77, 65, 76, 76, 128, 83, 76, - 85, 82, 128, 83, 76, 79, 90, 72, 73, 84, 73, 69, 128, 83, 76, 79, 90, 72, - 73, 84, 73, 197, 83, 76, 79, 87, 76, 89, 128, 83, 76, 79, 87, 128, 83, - 76, 79, 215, 83, 76, 79, 86, 79, 128, 83, 76, 79, 84, 72, 128, 83, 76, - 79, 212, 83, 76, 79, 80, 73, 78, 199, 83, 76, 79, 80, 69, 128, 83, 76, - 79, 65, 206, 83, 76, 73, 78, 71, 128, 83, 76, 73, 71, 72, 84, 76, 217, - 83, 76, 73, 68, 73, 78, 71, 128, 83, 76, 73, 68, 69, 82, 128, 83, 76, 73, - 68, 69, 128, 83, 76, 73, 67, 69, 128, 83, 76, 73, 67, 197, 83, 76, 69, - 85, 84, 200, 83, 76, 69, 69, 80, 217, 83, 76, 69, 69, 80, 73, 78, 199, - 83, 76, 69, 69, 208, 83, 76, 69, 68, 128, 83, 76, 65, 86, 79, 78, 73, - 195, 83, 76, 65, 86, 69, 128, 83, 76, 65, 83, 72, 128, 83, 76, 65, 83, - 200, 83, 76, 65, 78, 84, 69, 196, 83, 75, 87, 65, 128, 83, 75, 87, 128, - 83, 75, 85, 78, 75, 128, 83, 75, 85, 76, 76, 128, 83, 75, 85, 76, 204, - 83, 75, 79, 66, 65, 128, 83, 75, 76, 73, 82, 79, 206, 83, 75, 73, 78, - 128, 83, 75, 73, 69, 82, 128, 83, 75, 201, 83, 75, 69, 87, 69, 196, 83, - 75, 65, 84, 69, 66, 79, 65, 82, 68, 128, 83, 75, 65, 84, 69, 128, 83, 75, - 65, 77, 69, 89, 84, 83, 193, 83, 75, 128, 83, 74, 69, 128, 83, 73, 90, - 197, 83, 73, 88, 84, 89, 45, 70, 79, 85, 82, 84, 72, 83, 128, 83, 73, 88, - 84, 89, 45, 70, 79, 85, 82, 84, 72, 128, 83, 73, 88, 84, 89, 45, 70, 79, - 85, 82, 84, 200, 83, 73, 88, 84, 89, 128, 83, 73, 88, 84, 217, 83, 73, - 88, 84, 72, 83, 128, 83, 73, 88, 84, 72, 211, 83, 73, 88, 84, 72, 128, - 83, 73, 88, 84, 69, 69, 78, 84, 72, 83, 128, 83, 73, 88, 84, 69, 69, 78, - 84, 72, 45, 50, 128, 83, 73, 88, 84, 69, 69, 78, 84, 72, 45, 49, 128, 83, - 73, 88, 84, 69, 69, 78, 84, 72, 128, 83, 73, 88, 84, 69, 69, 78, 84, 200, - 83, 73, 88, 84, 69, 69, 78, 128, 83, 73, 88, 84, 69, 69, 206, 83, 73, 88, - 45, 84, 72, 73, 82, 84, 89, 128, 83, 73, 88, 45, 83, 84, 82, 73, 78, 199, - 83, 73, 88, 45, 80, 69, 82, 45, 69, 205, 83, 73, 88, 45, 76, 73, 78, 197, - 83, 73, 216, 83, 73, 84, 69, 128, 83, 73, 83, 65, 128, 83, 73, 82, 82, - 65, 72, 128, 83, 73, 82, 73, 78, 71, 85, 128, 83, 73, 79, 83, 45, 84, 72, - 73, 69, 85, 84, 72, 128, 83, 73, 79, 83, 45, 83, 83, 65, 78, 71, 83, 73, - 79, 83, 128, 83, 73, 79, 83, 45, 82, 73, 69, 85, 76, 128, 83, 73, 79, 83, - 45, 80, 73, 69, 85, 80, 45, 75, 73, 89, 69, 79, 75, 128, 83, 73, 79, 83, - 45, 80, 72, 73, 69, 85, 80, 72, 128, 83, 73, 79, 83, 45, 80, 65, 78, 83, - 73, 79, 83, 128, 83, 73, 79, 83, 45, 78, 73, 69, 85, 78, 128, 83, 73, 79, - 83, 45, 77, 73, 69, 85, 77, 128, 83, 73, 79, 83, 45, 75, 72, 73, 69, 85, - 75, 72, 128, 83, 73, 79, 83, 45, 75, 65, 80, 89, 69, 79, 85, 78, 80, 73, - 69, 85, 80, 128, 83, 73, 79, 83, 45, 73, 69, 85, 78, 71, 128, 83, 73, 79, - 83, 45, 72, 73, 69, 85, 72, 128, 83, 73, 79, 83, 45, 67, 73, 69, 85, 67, - 128, 83, 73, 79, 83, 45, 67, 72, 73, 69, 85, 67, 72, 128, 83, 73, 79, - 211, 83, 73, 78, 85, 83, 79, 73, 196, 83, 73, 78, 79, 76, 79, 71, 73, 67, - 65, 204, 83, 73, 78, 78, 89, 73, 73, 89, 72, 69, 128, 83, 73, 78, 75, 73, - 78, 71, 128, 83, 73, 78, 71, 76, 69, 45, 83, 72, 73, 70, 84, 45, 51, 128, - 83, 73, 78, 71, 76, 69, 45, 83, 72, 73, 70, 84, 45, 50, 128, 83, 73, 78, - 71, 76, 69, 45, 76, 73, 78, 197, 83, 73, 78, 71, 76, 69, 128, 83, 73, 78, - 71, 76, 197, 83, 73, 78, 71, 65, 65, 84, 128, 83, 73, 78, 197, 83, 73, - 78, 68, 72, 201, 83, 73, 78, 128, 83, 73, 206, 83, 73, 77, 85, 76, 84, - 65, 78, 69, 79, 85, 83, 128, 83, 73, 77, 85, 76, 84, 65, 78, 69, 79, 85, - 211, 83, 73, 77, 80, 76, 73, 70, 73, 69, 196, 83, 73, 77, 73, 76, 65, 82, - 128, 83, 73, 77, 73, 76, 65, 210, 83, 73, 77, 65, 78, 83, 73, 211, 83, - 73, 77, 65, 76, 85, 78, 71, 85, 206, 83, 73, 77, 65, 128, 83, 73, 76, 86, - 69, 82, 128, 83, 73, 76, 75, 128, 83, 73, 76, 73, 81, 85, 193, 83, 73, - 76, 72, 79, 85, 69, 84, 84, 69, 128, 83, 73, 76, 72, 79, 85, 69, 84, 84, - 197, 83, 73, 76, 65, 51, 128, 83, 73, 75, 73, 128, 83, 73, 75, 50, 128, - 83, 73, 75, 178, 83, 73, 71, 78, 83, 128, 83, 73, 71, 77, 79, 73, 196, - 83, 73, 71, 77, 65, 128, 83, 73, 71, 77, 193, 83, 73, 71, 69, 204, 83, - 73, 71, 52, 128, 83, 73, 71, 180, 83, 73, 71, 128, 83, 73, 69, 69, 128, - 83, 73, 68, 69, 87, 65, 89, 211, 83, 73, 68, 69, 128, 83, 73, 68, 197, - 83, 73, 68, 68, 72, 73, 128, 83, 73, 68, 68, 72, 65, 77, 128, 83, 73, 68, - 68, 72, 65, 205, 83, 73, 67, 75, 78, 69, 83, 83, 128, 83, 73, 67, 75, 76, - 69, 128, 83, 73, 66, 197, 83, 73, 65, 128, 83, 73, 45, 54, 128, 83, 73, - 45, 53, 128, 83, 73, 45, 52, 128, 83, 73, 45, 51, 128, 83, 73, 45, 50, - 128, 83, 73, 45, 49, 128, 83, 201, 83, 72, 89, 88, 128, 83, 72, 89, 84, - 128, 83, 72, 89, 82, 88, 128, 83, 72, 89, 82, 128, 83, 72, 89, 80, 128, - 83, 72, 89, 69, 128, 83, 72, 89, 65, 128, 83, 72, 89, 128, 83, 72, 87, - 79, 89, 128, 83, 72, 87, 79, 79, 128, 83, 72, 87, 79, 128, 83, 72, 87, - 73, 73, 128, 83, 72, 87, 73, 128, 83, 72, 87, 69, 128, 83, 72, 87, 197, - 83, 72, 87, 65, 65, 128, 83, 72, 87, 65, 128, 83, 72, 86, 128, 83, 72, - 85, 88, 128, 83, 72, 85, 85, 128, 83, 72, 85, 84, 84, 76, 69, 67, 79, 67, - 75, 128, 83, 72, 85, 84, 128, 83, 72, 85, 82, 88, 128, 83, 72, 85, 82, - 128, 83, 72, 85, 80, 128, 83, 72, 85, 79, 88, 128, 83, 72, 85, 79, 80, - 128, 83, 72, 85, 79, 128, 83, 72, 85, 77, 128, 83, 72, 85, 76, 128, 83, - 72, 85, 70, 70, 76, 197, 83, 72, 85, 69, 81, 128, 83, 72, 85, 69, 78, 83, - 72, 85, 69, 84, 128, 83, 72, 85, 66, 85, 82, 128, 83, 72, 85, 65, 78, 71, - 88, 73, 128, 83, 72, 85, 50, 128, 83, 72, 85, 178, 83, 72, 85, 128, 83, - 72, 84, 65, 80, 73, 67, 128, 83, 72, 84, 65, 128, 83, 72, 82, 85, 71, - 128, 83, 72, 82, 79, 79, 128, 83, 72, 82, 79, 128, 83, 72, 82, 73, 78, - 69, 128, 83, 72, 82, 73, 77, 80, 128, 83, 72, 82, 73, 73, 128, 83, 72, - 82, 73, 128, 83, 72, 82, 65, 65, 128, 83, 72, 82, 65, 128, 83, 72, 79, - 89, 128, 83, 72, 79, 88, 128, 83, 72, 79, 87, 69, 82, 128, 83, 72, 79, - 85, 76, 68, 69, 82, 69, 196, 83, 72, 79, 85, 76, 68, 69, 210, 83, 72, 79, - 85, 128, 83, 72, 79, 84, 128, 83, 72, 79, 82, 84, 83, 128, 83, 72, 79, - 82, 84, 211, 83, 72, 79, 82, 84, 72, 65, 78, 196, 83, 72, 79, 82, 84, 69, - 78, 69, 82, 128, 83, 72, 79, 82, 84, 67, 65, 75, 69, 128, 83, 72, 79, 82, - 84, 45, 84, 87, 73, 71, 45, 89, 82, 128, 83, 72, 79, 82, 84, 45, 84, 87, - 73, 71, 45, 84, 89, 210, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 83, - 79, 204, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 79, 83, 211, 83, 72, - 79, 82, 84, 45, 84, 87, 73, 71, 45, 78, 65, 85, 196, 83, 72, 79, 82, 84, - 45, 84, 87, 73, 71, 45, 77, 65, 68, 210, 83, 72, 79, 82, 84, 45, 84, 87, - 73, 71, 45, 72, 65, 71, 65, 76, 204, 83, 72, 79, 82, 84, 45, 84, 87, 73, - 71, 45, 66, 74, 65, 82, 75, 65, 206, 83, 72, 79, 82, 84, 45, 84, 87, 73, - 71, 45, 65, 210, 83, 72, 79, 82, 84, 128, 83, 72, 79, 82, 212, 83, 72, - 79, 81, 128, 83, 72, 79, 209, 83, 72, 79, 80, 80, 73, 78, 199, 83, 72, - 79, 80, 128, 83, 72, 79, 79, 84, 73, 78, 199, 83, 72, 79, 79, 84, 128, - 83, 72, 79, 79, 73, 128, 83, 72, 79, 79, 128, 83, 72, 79, 71, 201, 83, - 72, 79, 199, 83, 72, 79, 69, 83, 128, 83, 72, 79, 69, 128, 83, 72, 79, - 197, 83, 72, 79, 67, 75, 69, 196, 83, 72, 79, 65, 128, 83, 72, 79, 128, - 83, 72, 73, 89, 89, 65, 65, 76, 65, 65, 128, 83, 72, 73, 84, 65, 128, 83, - 72, 73, 84, 193, 83, 72, 73, 82, 212, 83, 72, 73, 82, 65, 69, 128, 83, - 72, 73, 82, 128, 83, 72, 73, 210, 83, 72, 73, 81, 128, 83, 72, 73, 78, - 84, 207, 83, 72, 73, 78, 73, 71, 128, 83, 72, 73, 78, 68, 193, 83, 72, - 73, 206, 83, 72, 73, 77, 65, 128, 83, 72, 73, 77, 193, 83, 72, 73, 77, - 128, 83, 72, 73, 205, 83, 72, 73, 73, 78, 128, 83, 72, 73, 73, 128, 83, - 72, 73, 70, 212, 83, 72, 73, 69, 76, 68, 128, 83, 72, 73, 68, 128, 83, - 72, 73, 196, 83, 72, 72, 65, 128, 83, 72, 72, 193, 83, 72, 69, 88, 128, - 83, 72, 69, 86, 65, 128, 83, 72, 69, 85, 88, 128, 83, 72, 69, 85, 79, 81, + 85, 88, 128, 83, 85, 85, 128, 83, 85, 84, 82, 193, 83, 85, 84, 128, 83, + 85, 83, 80, 69, 78, 83, 73, 79, 206, 83, 85, 83, 72, 73, 128, 83, 85, 82, + 89, 65, 128, 83, 85, 82, 88, 128, 83, 85, 82, 82, 79, 85, 78, 68, 128, + 83, 85, 82, 82, 79, 85, 78, 196, 83, 85, 82, 70, 69, 82, 128, 83, 85, 82, + 70, 65, 67, 197, 83, 85, 82, 69, 128, 83, 85, 82, 65, 78, 71, 128, 83, + 85, 82, 57, 128, 83, 85, 82, 128, 83, 85, 210, 83, 85, 80, 82, 65, 76, + 73, 78, 69, 65, 210, 83, 85, 80, 69, 82, 86, 73, 83, 69, 128, 83, 85, 80, + 69, 82, 86, 73, 76, 76, 65, 73, 78, 128, 83, 85, 80, 69, 82, 83, 69, 84, + 128, 83, 85, 80, 69, 82, 83, 69, 212, 83, 85, 80, 69, 82, 83, 67, 82, 73, + 80, 212, 83, 85, 80, 69, 82, 73, 77, 80, 79, 83, 69, 196, 83, 85, 80, 69, + 82, 72, 69, 82, 79, 128, 83, 85, 80, 69, 82, 70, 73, 88, 69, 196, 83, 85, + 80, 69, 210, 83, 85, 80, 128, 83, 85, 79, 88, 128, 83, 85, 79, 80, 128, + 83, 85, 79, 128, 83, 85, 78, 83, 69, 212, 83, 85, 78, 82, 73, 83, 69, + 128, 83, 85, 78, 82, 73, 83, 197, 83, 85, 78, 71, 76, 65, 83, 83, 69, 83, + 128, 83, 85, 78, 71, 128, 83, 85, 78, 70, 76, 79, 87, 69, 82, 128, 83, + 85, 78, 68, 65, 78, 69, 83, 197, 83, 85, 78, 128, 83, 85, 206, 83, 85, + 77, 77, 69, 82, 128, 83, 85, 77, 77, 65, 84, 73, 79, 78, 128, 83, 85, 77, + 77, 65, 84, 73, 79, 206, 83, 85, 77, 65, 83, 72, 128, 83, 85, 77, 128, + 83, 85, 76, 70, 85, 82, 128, 83, 85, 75, 85, 78, 128, 83, 85, 75, 85, + 206, 83, 85, 75, 85, 128, 83, 85, 75, 213, 83, 85, 73, 84, 65, 66, 76, + 69, 128, 83, 85, 73, 212, 83, 85, 72, 85, 82, 128, 83, 85, 69, 128, 83, + 85, 68, 50, 128, 83, 85, 68, 128, 83, 85, 67, 75, 73, 78, 199, 83, 85, + 67, 75, 69, 68, 128, 83, 85, 67, 203, 83, 85, 67, 67, 69, 69, 68, 83, + 128, 83, 85, 67, 67, 69, 69, 68, 211, 83, 85, 67, 67, 69, 69, 68, 128, + 83, 85, 67, 67, 69, 69, 196, 83, 85, 66, 85, 78, 73, 84, 128, 83, 85, 66, + 83, 84, 73, 84, 85, 84, 73, 79, 206, 83, 85, 66, 83, 84, 73, 84, 85, 84, + 69, 128, 83, 85, 66, 83, 84, 73, 84, 85, 84, 197, 83, 85, 66, 83, 69, 84, + 128, 83, 85, 66, 83, 69, 212, 83, 85, 66, 83, 67, 82, 73, 80, 212, 83, + 85, 66, 80, 85, 78, 67, 84, 73, 83, 128, 83, 85, 66, 76, 73, 78, 69, 65, + 210, 83, 85, 66, 76, 73, 77, 65, 84, 73, 79, 78, 128, 83, 85, 66, 76, 73, + 77, 65, 84, 69, 45, 51, 128, 83, 85, 66, 76, 73, 77, 65, 84, 69, 45, 50, + 128, 83, 85, 66, 76, 73, 77, 65, 84, 69, 128, 83, 85, 66, 76, 73, 77, 65, + 84, 197, 83, 85, 66, 74, 79, 73, 78, 69, 82, 128, 83, 85, 66, 74, 79, 73, + 78, 69, 196, 83, 85, 66, 74, 69, 67, 84, 128, 83, 85, 66, 73, 84, 79, + 128, 83, 85, 66, 72, 65, 65, 78, 65, 72, 213, 83, 85, 66, 71, 82, 79, 85, + 80, 128, 83, 85, 66, 71, 82, 79, 85, 208, 83, 85, 66, 128, 83, 85, 65, + 77, 128, 83, 85, 65, 69, 84, 128, 83, 85, 65, 69, 78, 128, 83, 85, 65, + 69, 128, 83, 85, 65, 66, 128, 83, 85, 65, 128, 83, 85, 45, 56, 128, 83, + 85, 45, 55, 128, 83, 85, 45, 54, 128, 83, 85, 45, 53, 128, 83, 85, 45, + 52, 128, 83, 85, 45, 51, 128, 83, 85, 45, 50, 128, 83, 85, 45, 49, 128, + 83, 213, 83, 84, 88, 128, 83, 84, 87, 65, 128, 83, 84, 85, 80, 65, 128, + 83, 84, 85, 70, 70, 69, 196, 83, 84, 85, 68, 89, 128, 83, 84, 85, 68, 73, + 207, 83, 84, 85, 67, 75, 45, 79, 85, 212, 83, 84, 83, 128, 83, 84, 82, + 79, 78, 199, 83, 84, 82, 79, 75, 69, 83, 128, 83, 84, 82, 79, 75, 69, + 211, 83, 84, 82, 79, 75, 69, 45, 57, 128, 83, 84, 82, 79, 75, 69, 45, 56, + 128, 83, 84, 82, 79, 75, 69, 45, 55, 128, 83, 84, 82, 79, 75, 69, 45, 54, + 128, 83, 84, 82, 79, 75, 69, 45, 53, 128, 83, 84, 82, 79, 75, 69, 45, 52, + 128, 83, 84, 82, 79, 75, 69, 45, 51, 128, 83, 84, 82, 79, 75, 69, 45, 50, + 128, 83, 84, 82, 79, 75, 69, 45, 49, 49, 128, 83, 84, 82, 79, 75, 69, 45, + 49, 48, 128, 83, 84, 82, 79, 75, 69, 45, 49, 128, 83, 84, 82, 79, 75, + 197, 83, 84, 82, 73, 80, 69, 128, 83, 84, 82, 73, 78, 71, 128, 83, 84, + 82, 73, 78, 199, 83, 84, 82, 73, 75, 69, 84, 72, 82, 79, 85, 71, 72, 128, + 83, 84, 82, 73, 75, 197, 83, 84, 82, 73, 68, 69, 128, 83, 84, 82, 73, 67, + 84, 76, 217, 83, 84, 82, 69, 84, 67, 72, 69, 196, 83, 84, 82, 69, 84, 67, + 72, 128, 83, 84, 82, 69, 83, 211, 83, 84, 82, 69, 78, 71, 84, 72, 128, + 83, 84, 82, 69, 76, 193, 83, 84, 82, 69, 65, 77, 69, 82, 128, 83, 84, 82, + 65, 87, 66, 69, 82, 82, 89, 128, 83, 84, 82, 65, 87, 128, 83, 84, 82, 65, + 84, 85, 77, 45, 50, 128, 83, 84, 82, 65, 84, 85, 77, 128, 83, 84, 82, 65, + 84, 85, 205, 83, 84, 82, 65, 84, 73, 65, 206, 83, 84, 82, 65, 78, 78, 79, + 128, 83, 84, 82, 65, 78, 78, 207, 83, 84, 82, 65, 73, 78, 69, 82, 128, + 83, 84, 82, 65, 73, 71, 72, 84, 78, 69, 83, 83, 128, 83, 84, 82, 65, 73, + 71, 72, 84, 128, 83, 84, 82, 65, 73, 71, 72, 212, 83, 84, 82, 65, 73, 70, + 128, 83, 84, 82, 65, 71, 71, 73, 83, 77, 65, 84, 65, 128, 83, 84, 79, 86, + 69, 128, 83, 84, 79, 82, 69, 128, 83, 84, 79, 80, 87, 65, 84, 67, 72, + 128, 83, 84, 79, 80, 80, 73, 78, 71, 128, 83, 84, 79, 80, 80, 65, 71, 69, + 128, 83, 84, 79, 80, 73, 84, 83, 65, 128, 83, 84, 79, 80, 73, 84, 83, + 193, 83, 84, 79, 80, 128, 83, 84, 79, 208, 83, 84, 79, 78, 69, 128, 83, + 84, 79, 67, 75, 128, 83, 84, 79, 67, 203, 83, 84, 73, 82, 82, 85, 208, + 83, 84, 73, 77, 77, 69, 128, 83, 84, 73, 76, 204, 83, 84, 73, 76, 197, + 83, 84, 73, 71, 77, 65, 128, 83, 84, 73, 67, 75, 73, 78, 199, 83, 84, 73, + 67, 203, 83, 84, 69, 84, 72, 79, 83, 67, 79, 80, 69, 128, 83, 84, 69, 82, + 69, 79, 128, 83, 84, 69, 80, 128, 83, 84, 69, 78, 79, 71, 82, 65, 80, 72, + 73, 195, 83, 84, 69, 77, 128, 83, 84, 69, 65, 77, 217, 83, 84, 69, 65, + 77, 73, 78, 199, 83, 84, 69, 65, 77, 128, 83, 84, 69, 65, 205, 83, 84, + 65, 86, 82, 79, 85, 128, 83, 84, 65, 86, 82, 79, 83, 128, 83, 84, 65, 86, + 82, 79, 211, 83, 84, 65, 85, 82, 79, 83, 128, 83, 84, 65, 84, 89, 65, + 128, 83, 84, 65, 84, 89, 193, 83, 84, 65, 84, 85, 197, 83, 84, 65, 84, + 73, 79, 78, 128, 83, 84, 65, 84, 69, 82, 83, 128, 83, 84, 65, 84, 69, + 128, 83, 84, 65, 82, 84, 73, 78, 199, 83, 84, 65, 82, 84, 128, 83, 84, + 65, 82, 212, 83, 84, 65, 82, 83, 128, 83, 84, 65, 82, 82, 69, 196, 83, + 84, 65, 82, 75, 128, 83, 84, 65, 82, 128, 83, 84, 65, 210, 83, 84, 65, + 78, 68, 83, 84, 73, 76, 76, 128, 83, 84, 65, 78, 68, 73, 78, 199, 83, 84, + 65, 78, 68, 65, 82, 196, 83, 84, 65, 78, 68, 128, 83, 84, 65, 78, 128, + 83, 84, 65, 77, 80, 69, 196, 83, 84, 65, 76, 76, 73, 79, 78, 128, 83, 84, + 65, 70, 70, 128, 83, 84, 65, 70, 198, 83, 84, 65, 68, 73, 85, 77, 128, + 83, 84, 65, 67, 75, 69, 196, 83, 84, 65, 67, 67, 65, 84, 79, 128, 83, 84, + 65, 67, 67, 65, 84, 73, 83, 83, 73, 77, 79, 128, 83, 84, 50, 128, 83, 83, + 89, 88, 128, 83, 83, 89, 84, 128, 83, 83, 89, 82, 88, 128, 83, 83, 89, + 82, 128, 83, 83, 89, 80, 128, 83, 83, 89, 128, 83, 83, 85, 88, 128, 83, + 83, 85, 85, 128, 83, 83, 85, 84, 128, 83, 83, 85, 80, 128, 83, 83, 79, + 88, 128, 83, 83, 79, 84, 128, 83, 83, 79, 80, 128, 83, 83, 79, 79, 128, + 83, 83, 79, 128, 83, 83, 73, 88, 128, 83, 83, 73, 84, 128, 83, 83, 73, + 80, 128, 83, 83, 73, 73, 128, 83, 83, 73, 69, 88, 128, 83, 83, 73, 69, + 80, 128, 83, 83, 73, 69, 128, 83, 83, 72, 73, 78, 128, 83, 83, 72, 69, + 128, 83, 83, 69, 88, 128, 83, 83, 69, 80, 128, 83, 83, 69, 69, 128, 83, + 83, 65, 88, 128, 83, 83, 65, 85, 128, 83, 83, 65, 84, 128, 83, 83, 65, + 80, 128, 83, 83, 65, 78, 71, 89, 69, 83, 73, 69, 85, 78, 71, 128, 83, 83, + 65, 78, 71, 89, 69, 79, 82, 73, 78, 72, 73, 69, 85, 72, 128, 83, 83, 65, + 78, 71, 84, 73, 75, 69, 85, 84, 45, 80, 73, 69, 85, 80, 128, 83, 83, 65, + 78, 71, 84, 73, 75, 69, 85, 84, 128, 83, 83, 65, 78, 71, 84, 72, 73, 69, + 85, 84, 72, 128, 83, 83, 65, 78, 71, 83, 73, 79, 83, 45, 84, 73, 75, 69, + 85, 84, 128, 83, 83, 65, 78, 71, 83, 73, 79, 83, 45, 80, 73, 69, 85, 80, + 128, 83, 83, 65, 78, 71, 83, 73, 79, 83, 45, 75, 73, 89, 69, 79, 75, 128, + 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 83, 83, 65, 78, 71, 82, 73, 69, + 85, 76, 45, 75, 72, 73, 69, 85, 75, 72, 128, 83, 83, 65, 78, 71, 82, 73, + 69, 85, 76, 128, 83, 83, 65, 78, 71, 80, 73, 69, 85, 80, 128, 83, 83, 65, + 78, 71, 78, 73, 69, 85, 78, 128, 83, 83, 65, 78, 71, 77, 73, 69, 85, 77, + 128, 83, 83, 65, 78, 71, 73, 69, 85, 78, 71, 128, 83, 83, 65, 78, 71, 72, + 73, 69, 85, 72, 128, 83, 83, 65, 78, 71, 67, 73, 69, 85, 67, 45, 72, 73, + 69, 85, 72, 128, 83, 83, 65, 78, 71, 67, 73, 69, 85, 67, 128, 83, 83, 65, + 78, 71, 65, 82, 65, 69, 65, 128, 83, 83, 65, 73, 128, 83, 83, 65, 65, + 128, 83, 83, 51, 128, 83, 83, 50, 128, 83, 82, 69, 68, 78, 197, 83, 82, + 128, 83, 81, 85, 73, 83, 200, 83, 81, 85, 73, 82, 82, 69, 204, 83, 81, + 85, 73, 71, 71, 76, 197, 83, 81, 85, 73, 68, 128, 83, 81, 85, 69, 69, 90, + 69, 68, 128, 83, 81, 85, 69, 69, 90, 197, 83, 81, 85, 65, 212, 83, 81, + 85, 65, 82, 69, 83, 128, 83, 81, 85, 65, 82, 69, 68, 128, 83, 81, 85, 65, + 82, 69, 128, 83, 80, 89, 128, 83, 80, 87, 65, 128, 83, 80, 85, 78, 71, + 211, 83, 80, 82, 79, 85, 84, 128, 83, 80, 82, 73, 78, 71, 83, 128, 83, + 80, 82, 73, 78, 71, 128, 83, 80, 82, 69, 67, 72, 71, 69, 83, 65, 78, 199, + 83, 80, 82, 69, 65, 68, 128, 83, 80, 82, 69, 65, 196, 83, 80, 79, 85, 84, + 73, 78, 199, 83, 80, 79, 84, 128, 83, 80, 79, 82, 84, 211, 83, 80, 79, + 79, 78, 128, 83, 80, 79, 79, 204, 83, 80, 79, 78, 71, 69, 128, 83, 80, + 79, 128, 83, 80, 76, 73, 84, 84, 73, 78, 199, 83, 80, 76, 73, 84, 128, + 83, 80, 76, 73, 212, 83, 80, 76, 65, 89, 69, 68, 128, 83, 80, 76, 65, 83, + 72, 73, 78, 199, 83, 80, 73, 82, 73, 84, 85, 211, 83, 80, 73, 82, 73, 84, + 128, 83, 80, 73, 82, 73, 212, 83, 80, 73, 82, 65, 78, 84, 128, 83, 80, + 73, 82, 65, 76, 128, 83, 80, 73, 82, 65, 204, 83, 80, 73, 78, 69, 128, + 83, 80, 73, 68, 69, 82, 217, 83, 80, 73, 68, 69, 82, 128, 83, 80, 73, 68, + 69, 210, 83, 80, 73, 67, 69, 128, 83, 80, 73, 128, 83, 80, 72, 69, 82, + 73, 67, 65, 204, 83, 80, 69, 83, 77, 73, 76, 207, 83, 80, 69, 78, 212, + 83, 80, 69, 69, 68, 66, 79, 65, 84, 128, 83, 80, 69, 69, 67, 72, 128, 83, + 80, 69, 69, 67, 200, 83, 80, 69, 67, 73, 65, 76, 128, 83, 80, 69, 65, 82, + 128, 83, 80, 69, 65, 75, 73, 78, 199, 83, 80, 69, 65, 75, 69, 82, 128, + 83, 80, 69, 65, 75, 69, 210, 83, 80, 69, 65, 75, 45, 78, 79, 45, 69, 86, + 73, 204, 83, 80, 69, 128, 83, 80, 65, 84, 72, 73, 128, 83, 80, 65, 82, + 75, 76, 73, 78, 199, 83, 80, 65, 82, 75, 76, 69, 83, 128, 83, 80, 65, 82, + 75, 76, 69, 82, 128, 83, 80, 65, 82, 75, 76, 69, 128, 83, 80, 65, 71, 72, + 69, 84, 84, 73, 128, 83, 80, 65, 68, 69, 83, 128, 83, 80, 65, 68, 197, + 83, 80, 65, 67, 73, 78, 199, 83, 80, 65, 67, 197, 83, 80, 65, 128, 83, + 79, 89, 79, 77, 66, 207, 83, 79, 89, 128, 83, 79, 87, 73, 76, 207, 83, + 79, 87, 128, 83, 79, 85, 84, 72, 69, 82, 206, 83, 79, 85, 84, 72, 45, 83, + 76, 65, 86, 69, 217, 83, 79, 85, 84, 200, 83, 79, 85, 82, 67, 69, 128, + 83, 79, 85, 78, 68, 128, 83, 79, 85, 78, 196, 83, 79, 85, 78, 65, 80, + 128, 83, 79, 85, 128, 83, 79, 83, 128, 83, 79, 82, 79, 67, 72, 89, 193, + 83, 79, 82, 73, 128, 83, 79, 82, 193, 83, 79, 81, 128, 83, 79, 79, 206, + 83, 79, 78, 74, 65, 77, 128, 83, 79, 78, 71, 128, 83, 79, 78, 128, 83, + 79, 77, 80, 69, 78, 199, 83, 79, 77, 128, 83, 79, 205, 83, 79, 76, 73, + 68, 85, 83, 128, 83, 79, 76, 73, 68, 85, 211, 83, 79, 76, 73, 196, 83, + 79, 76, 68, 73, 69, 82, 128, 83, 79, 72, 128, 83, 79, 71, 68, 73, 65, + 206, 83, 79, 70, 84, 87, 65, 82, 69, 45, 70, 85, 78, 67, 84, 73, 79, 206, + 83, 79, 70, 84, 78, 69, 83, 83, 128, 83, 79, 70, 84, 66, 65, 76, 76, 128, + 83, 79, 70, 212, 83, 79, 198, 83, 79, 67, 75, 83, 128, 83, 79, 67, 73, + 69, 84, 89, 128, 83, 79, 67, 67, 69, 210, 83, 79, 65, 80, 128, 83, 79, + 65, 128, 83, 79, 45, 55, 128, 83, 79, 45, 54, 128, 83, 79, 45, 53, 128, + 83, 79, 45, 52, 128, 83, 79, 45, 51, 128, 83, 79, 45, 50, 128, 83, 79, + 45, 49, 128, 83, 207, 83, 78, 79, 87, 77, 65, 78, 128, 83, 78, 79, 87, + 77, 65, 206, 83, 78, 79, 87, 70, 76, 65, 75, 69, 128, 83, 78, 79, 87, 66, + 79, 65, 82, 68, 69, 82, 128, 83, 78, 79, 87, 128, 83, 78, 79, 215, 83, + 78, 79, 85, 84, 128, 83, 78, 79, 85, 212, 83, 78, 69, 69, 90, 73, 78, + 199, 83, 78, 65, 208, 83, 78, 65, 75, 69, 128, 83, 78, 65, 75, 197, 83, + 78, 65, 73, 76, 128, 83, 78, 193, 83, 77, 79, 75, 73, 78, 199, 83, 77, + 73, 82, 75, 73, 78, 199, 83, 77, 73, 76, 73, 78, 199, 83, 77, 73, 76, 69, + 128, 83, 77, 73, 76, 197, 83, 77, 69, 65, 82, 128, 83, 77, 65, 83, 200, + 83, 77, 65, 76, 76, 69, 210, 83, 77, 65, 76, 76, 128, 83, 76, 85, 82, + 128, 83, 76, 79, 90, 72, 73, 84, 73, 69, 128, 83, 76, 79, 90, 72, 73, 84, + 73, 197, 83, 76, 79, 87, 76, 89, 128, 83, 76, 79, 87, 128, 83, 76, 79, + 215, 83, 76, 79, 86, 79, 128, 83, 76, 79, 84, 72, 128, 83, 76, 79, 212, + 83, 76, 79, 80, 73, 78, 199, 83, 76, 79, 80, 69, 128, 83, 76, 79, 65, + 206, 83, 76, 73, 78, 71, 128, 83, 76, 73, 71, 72, 84, 76, 217, 83, 76, + 73, 68, 73, 78, 71, 128, 83, 76, 73, 68, 69, 82, 128, 83, 76, 73, 68, 69, + 128, 83, 76, 73, 67, 69, 128, 83, 76, 73, 67, 197, 83, 76, 69, 85, 84, + 200, 83, 76, 69, 69, 80, 217, 83, 76, 69, 69, 80, 73, 78, 199, 83, 76, + 69, 69, 208, 83, 76, 69, 68, 128, 83, 76, 65, 86, 79, 78, 73, 195, 83, + 76, 65, 86, 69, 128, 83, 76, 65, 83, 72, 128, 83, 76, 65, 83, 200, 83, + 76, 65, 78, 84, 69, 196, 83, 75, 87, 65, 128, 83, 75, 87, 128, 83, 75, + 85, 78, 75, 128, 83, 75, 85, 76, 76, 128, 83, 75, 85, 76, 204, 83, 75, + 79, 66, 65, 128, 83, 75, 76, 73, 82, 79, 206, 83, 75, 73, 78, 128, 83, + 75, 73, 69, 82, 128, 83, 75, 201, 83, 75, 69, 87, 69, 196, 83, 75, 65, + 84, 69, 66, 79, 65, 82, 68, 128, 83, 75, 65, 84, 69, 128, 83, 75, 65, 77, + 69, 89, 84, 83, 193, 83, 75, 128, 83, 74, 69, 128, 83, 73, 90, 197, 83, + 73, 88, 84, 89, 45, 70, 79, 85, 82, 84, 72, 83, 128, 83, 73, 88, 84, 89, + 45, 70, 79, 85, 82, 84, 72, 128, 83, 73, 88, 84, 89, 45, 70, 79, 85, 82, + 84, 200, 83, 73, 88, 84, 89, 128, 83, 73, 88, 84, 217, 83, 73, 88, 84, + 72, 83, 128, 83, 73, 88, 84, 72, 211, 83, 73, 88, 84, 72, 128, 83, 73, + 88, 84, 69, 69, 78, 84, 72, 83, 128, 83, 73, 88, 84, 69, 69, 78, 84, 72, + 45, 50, 128, 83, 73, 88, 84, 69, 69, 78, 84, 72, 45, 49, 128, 83, 73, 88, + 84, 69, 69, 78, 84, 72, 128, 83, 73, 88, 84, 69, 69, 78, 84, 200, 83, 73, + 88, 84, 69, 69, 78, 128, 83, 73, 88, 84, 69, 69, 206, 83, 73, 88, 45, 84, + 72, 73, 82, 84, 89, 128, 83, 73, 88, 45, 83, 84, 82, 73, 78, 199, 83, 73, + 88, 45, 80, 69, 82, 45, 69, 205, 83, 73, 88, 45, 76, 73, 78, 197, 83, 73, + 216, 83, 73, 84, 69, 128, 83, 73, 83, 65, 128, 83, 73, 82, 82, 65, 72, + 128, 83, 73, 82, 73, 78, 71, 85, 128, 83, 73, 79, 83, 45, 84, 72, 73, 69, + 85, 84, 72, 128, 83, 73, 79, 83, 45, 83, 83, 65, 78, 71, 83, 73, 79, 83, + 128, 83, 73, 79, 83, 45, 82, 73, 69, 85, 76, 128, 83, 73, 79, 83, 45, 80, + 73, 69, 85, 80, 45, 75, 73, 89, 69, 79, 75, 128, 83, 73, 79, 83, 45, 80, + 72, 73, 69, 85, 80, 72, 128, 83, 73, 79, 83, 45, 80, 65, 78, 83, 73, 79, + 83, 128, 83, 73, 79, 83, 45, 78, 73, 69, 85, 78, 128, 83, 73, 79, 83, 45, + 77, 73, 69, 85, 77, 128, 83, 73, 79, 83, 45, 75, 72, 73, 69, 85, 75, 72, + 128, 83, 73, 79, 83, 45, 75, 65, 80, 89, 69, 79, 85, 78, 80, 73, 69, 85, + 80, 128, 83, 73, 79, 83, 45, 73, 69, 85, 78, 71, 128, 83, 73, 79, 83, 45, + 72, 73, 69, 85, 72, 128, 83, 73, 79, 83, 45, 67, 73, 69, 85, 67, 128, 83, + 73, 79, 83, 45, 67, 72, 73, 69, 85, 67, 72, 128, 83, 73, 79, 211, 83, 73, + 78, 85, 83, 79, 73, 196, 83, 73, 78, 79, 76, 79, 71, 73, 67, 65, 204, 83, + 73, 78, 78, 89, 73, 73, 89, 72, 69, 128, 83, 73, 78, 75, 73, 78, 71, 128, + 83, 73, 78, 71, 76, 69, 45, 83, 72, 73, 70, 84, 45, 51, 128, 83, 73, 78, + 71, 76, 69, 45, 83, 72, 73, 70, 84, 45, 50, 128, 83, 73, 78, 71, 76, 69, + 45, 76, 73, 78, 197, 83, 73, 78, 71, 76, 69, 128, 83, 73, 78, 71, 76, + 197, 83, 73, 78, 71, 65, 65, 84, 128, 83, 73, 78, 197, 83, 73, 78, 68, + 72, 201, 83, 73, 78, 128, 83, 73, 206, 83, 73, 77, 85, 76, 84, 65, 78, + 69, 79, 85, 83, 128, 83, 73, 77, 85, 76, 84, 65, 78, 69, 79, 85, 211, 83, + 73, 77, 80, 76, 73, 70, 73, 69, 196, 83, 73, 77, 73, 76, 65, 82, 128, 83, + 73, 77, 73, 76, 65, 210, 83, 73, 77, 65, 78, 83, 73, 211, 83, 73, 77, 65, + 76, 85, 78, 71, 85, 206, 83, 73, 77, 65, 128, 83, 73, 76, 86, 69, 82, + 128, 83, 73, 76, 75, 128, 83, 73, 76, 73, 81, 85, 193, 83, 73, 76, 72, + 79, 85, 69, 84, 84, 69, 128, 83, 73, 76, 72, 79, 85, 69, 84, 84, 197, 83, + 73, 76, 65, 51, 128, 83, 73, 75, 73, 128, 83, 73, 75, 50, 128, 83, 73, + 75, 178, 83, 73, 71, 78, 83, 128, 83, 73, 71, 77, 79, 73, 196, 83, 73, + 71, 77, 65, 128, 83, 73, 71, 77, 193, 83, 73, 71, 69, 204, 83, 73, 71, + 52, 128, 83, 73, 71, 180, 83, 73, 71, 128, 83, 73, 69, 69, 128, 83, 73, + 68, 69, 87, 65, 89, 211, 83, 73, 68, 69, 128, 83, 73, 68, 197, 83, 73, + 68, 68, 72, 73, 128, 83, 73, 68, 68, 72, 65, 77, 128, 83, 73, 68, 68, 72, + 65, 205, 83, 73, 67, 75, 78, 69, 83, 83, 128, 83, 73, 67, 75, 76, 69, + 128, 83, 73, 66, 197, 83, 73, 65, 128, 83, 73, 45, 54, 128, 83, 73, 45, + 53, 128, 83, 73, 45, 52, 128, 83, 73, 45, 51, 128, 83, 73, 45, 50, 128, + 83, 73, 45, 49, 128, 83, 201, 83, 72, 89, 88, 128, 83, 72, 89, 84, 128, + 83, 72, 89, 82, 88, 128, 83, 72, 89, 82, 128, 83, 72, 89, 80, 128, 83, + 72, 89, 69, 128, 83, 72, 89, 65, 128, 83, 72, 89, 128, 83, 72, 87, 79, + 89, 128, 83, 72, 87, 79, 79, 128, 83, 72, 87, 79, 128, 83, 72, 87, 73, + 73, 128, 83, 72, 87, 73, 128, 83, 72, 87, 69, 128, 83, 72, 87, 197, 83, + 72, 87, 65, 65, 128, 83, 72, 87, 65, 128, 83, 72, 86, 128, 83, 72, 85, + 88, 128, 83, 72, 85, 85, 128, 83, 72, 85, 84, 84, 76, 69, 67, 79, 67, 75, + 128, 83, 72, 85, 84, 128, 83, 72, 85, 82, 88, 128, 83, 72, 85, 82, 128, + 83, 72, 85, 80, 128, 83, 72, 85, 79, 88, 128, 83, 72, 85, 79, 80, 128, + 83, 72, 85, 79, 128, 83, 72, 85, 77, 128, 83, 72, 85, 76, 128, 83, 72, + 85, 70, 70, 76, 197, 83, 72, 85, 69, 81, 128, 83, 72, 85, 69, 78, 83, 72, + 85, 69, 84, 128, 83, 72, 85, 66, 85, 82, 128, 83, 72, 85, 65, 78, 71, 88, + 73, 128, 83, 72, 85, 50, 128, 83, 72, 85, 178, 83, 72, 85, 128, 83, 72, + 84, 65, 80, 73, 67, 128, 83, 72, 84, 65, 128, 83, 72, 82, 85, 71, 128, + 83, 72, 82, 79, 79, 128, 83, 72, 82, 79, 128, 83, 72, 82, 73, 78, 69, + 128, 83, 72, 82, 73, 77, 80, 128, 83, 72, 82, 73, 73, 128, 83, 72, 82, + 73, 128, 83, 72, 82, 65, 65, 128, 83, 72, 82, 65, 128, 83, 72, 79, 89, + 128, 83, 72, 79, 88, 128, 83, 72, 79, 87, 69, 82, 128, 83, 72, 79, 85, + 76, 68, 69, 82, 69, 196, 83, 72, 79, 85, 76, 68, 69, 210, 83, 72, 79, 85, + 128, 83, 72, 79, 84, 128, 83, 72, 79, 82, 84, 83, 128, 83, 72, 79, 82, + 84, 211, 83, 72, 79, 82, 84, 72, 65, 78, 196, 83, 72, 79, 82, 84, 69, 78, + 69, 82, 128, 83, 72, 79, 82, 84, 67, 65, 75, 69, 128, 83, 72, 79, 82, 84, + 45, 84, 87, 73, 71, 45, 89, 82, 128, 83, 72, 79, 82, 84, 45, 84, 87, 73, + 71, 45, 84, 89, 210, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 83, 79, + 204, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 79, 83, 211, 83, 72, 79, + 82, 84, 45, 84, 87, 73, 71, 45, 78, 65, 85, 196, 83, 72, 79, 82, 84, 45, + 84, 87, 73, 71, 45, 77, 65, 68, 210, 83, 72, 79, 82, 84, 45, 84, 87, 73, + 71, 45, 72, 65, 71, 65, 76, 204, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, + 45, 66, 74, 65, 82, 75, 65, 206, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, + 45, 65, 210, 83, 72, 79, 82, 84, 128, 83, 72, 79, 82, 212, 83, 72, 79, + 81, 128, 83, 72, 79, 209, 83, 72, 79, 80, 80, 73, 78, 199, 83, 72, 79, + 80, 128, 83, 72, 79, 79, 84, 73, 78, 199, 83, 72, 79, 79, 84, 128, 83, + 72, 79, 79, 73, 128, 83, 72, 79, 79, 128, 83, 72, 79, 71, 201, 83, 72, + 79, 199, 83, 72, 79, 69, 83, 128, 83, 72, 79, 69, 128, 83, 72, 79, 197, + 83, 72, 79, 67, 75, 69, 196, 83, 72, 79, 65, 128, 83, 72, 79, 128, 83, + 72, 73, 89, 89, 65, 65, 76, 65, 65, 128, 83, 72, 73, 84, 65, 128, 83, 72, + 73, 84, 193, 83, 72, 73, 82, 212, 83, 72, 73, 82, 65, 69, 128, 83, 72, + 73, 82, 128, 83, 72, 73, 210, 83, 72, 73, 81, 128, 83, 72, 73, 78, 84, + 207, 83, 72, 73, 78, 73, 71, 128, 83, 72, 73, 78, 68, 193, 83, 72, 73, + 206, 83, 72, 73, 77, 65, 128, 83, 72, 73, 77, 193, 83, 72, 73, 77, 128, + 83, 72, 73, 205, 83, 72, 73, 73, 78, 128, 83, 72, 73, 73, 128, 83, 72, + 73, 70, 212, 83, 72, 73, 69, 76, 68, 128, 83, 72, 73, 68, 128, 83, 72, + 73, 196, 83, 72, 72, 65, 128, 83, 72, 72, 193, 83, 72, 69, 88, 128, 83, + 72, 69, 86, 65, 128, 83, 72, 69, 85, 88, 128, 83, 72, 69, 85, 79, 81, 128, 83, 72, 69, 85, 65, 69, 81, 84, 85, 128, 83, 72, 69, 85, 65, 69, 81, 128, 83, 72, 69, 85, 65, 69, 128, 83, 72, 69, 84, 128, 83, 72, 69, 212, 83, 72, 69, 83, 72, 76, 65, 77, 128, 83, 72, 69, 83, 72, 73, 71, 128, 83, @@ -1718,137 +1716,136 @@ static const unsigned char lexicon[] = { 128, 81, 85, 69, 69, 206, 81, 85, 69, 128, 81, 85, 68, 68, 73, 83, 193, 81, 85, 66, 85, 84, 83, 128, 81, 85, 65, 84, 69, 82, 78, 73, 79, 206, 81, 85, 65, 82, 84, 69, 82, 83, 128, 81, 85, 65, 82, 84, 69, 82, 211, 81, 85, - 65, 82, 84, 69, 82, 128, 81, 85, 65, 79, 65, 82, 128, 81, 85, 65, 78, 84, - 73, 84, 217, 81, 85, 65, 68, 82, 85, 80, 76, 197, 81, 85, 65, 68, 82, 65, - 78, 84, 128, 81, 85, 65, 68, 82, 65, 78, 212, 81, 85, 65, 68, 67, 79, 76, - 79, 78, 128, 81, 85, 65, 68, 128, 81, 85, 65, 196, 81, 85, 65, 128, 81, - 85, 128, 81, 208, 81, 79, 88, 128, 81, 79, 84, 128, 81, 79, 80, 72, 128, - 81, 79, 80, 65, 128, 81, 79, 80, 128, 81, 79, 79, 128, 81, 79, 207, 81, - 79, 70, 128, 81, 79, 198, 81, 79, 65, 128, 81, 79, 128, 81, 78, 128, 81, - 73, 88, 128, 81, 73, 84, 83, 65, 128, 81, 73, 84, 128, 81, 73, 80, 128, - 81, 73, 73, 128, 81, 73, 70, 128, 81, 73, 69, 88, 128, 81, 73, 69, 84, - 128, 81, 73, 69, 80, 128, 81, 73, 69, 128, 81, 73, 128, 81, 72, 87, 73, - 128, 81, 72, 87, 69, 69, 128, 81, 72, 87, 69, 128, 81, 72, 87, 65, 65, - 128, 81, 72, 87, 65, 128, 81, 72, 85, 128, 81, 72, 79, 80, 72, 128, 81, - 72, 79, 128, 81, 72, 73, 128, 81, 72, 69, 69, 128, 81, 72, 69, 128, 81, - 72, 65, 85, 128, 81, 72, 65, 65, 128, 81, 72, 65, 128, 81, 71, 65, 128, - 81, 69, 84, 65, 78, 65, 128, 81, 69, 69, 128, 81, 69, 128, 81, 65, 89, - 128, 81, 65, 85, 128, 81, 65, 84, 65, 78, 128, 81, 65, 83, 82, 128, 81, - 65, 82, 78, 69, 217, 81, 65, 82, 128, 81, 65, 81, 128, 81, 65, 80, 72, - 128, 81, 65, 77, 65, 84, 83, 128, 81, 65, 77, 65, 84, 211, 81, 65, 76, - 193, 81, 65, 73, 82, 84, 72, 82, 65, 128, 81, 65, 73, 128, 81, 65, 70, - 128, 81, 65, 198, 81, 65, 68, 77, 65, 128, 81, 65, 65, 73, 128, 81, 65, - 65, 70, 85, 128, 81, 65, 65, 70, 128, 81, 48, 48, 55, 128, 81, 48, 48, - 54, 128, 81, 48, 48, 53, 128, 81, 48, 48, 52, 128, 81, 48, 48, 51, 128, - 81, 48, 48, 50, 128, 81, 48, 48, 49, 128, 80, 90, 128, 80, 89, 88, 128, - 80, 89, 84, 128, 80, 89, 82, 88, 128, 80, 89, 82, 128, 80, 89, 80, 128, - 80, 87, 79, 89, 128, 80, 87, 79, 79, 128, 80, 87, 79, 128, 80, 87, 207, - 80, 87, 73, 73, 128, 80, 87, 73, 128, 80, 87, 69, 69, 128, 80, 87, 69, - 128, 80, 87, 65, 65, 128, 80, 87, 128, 80, 86, 128, 80, 85, 90, 90, 76, - 197, 80, 85, 88, 128, 80, 85, 85, 84, 128, 80, 85, 85, 128, 80, 85, 84, - 82, 69, 70, 65, 67, 84, 73, 79, 78, 128, 80, 85, 84, 78, 65, 89, 65, 128, - 80, 85, 84, 128, 80, 85, 212, 80, 85, 83, 72, 80, 73, 78, 128, 80, 85, - 83, 72, 80, 73, 75, 65, 128, 80, 85, 83, 72, 73, 78, 199, 80, 85, 82, 88, - 128, 80, 85, 82, 83, 69, 128, 80, 85, 82, 80, 76, 197, 80, 85, 82, 78, - 65, 77, 65, 128, 80, 85, 82, 73, 84, 89, 128, 80, 85, 82, 73, 70, 89, - 128, 80, 85, 82, 128, 80, 85, 81, 128, 80, 85, 80, 128, 80, 85, 79, 88, - 128, 80, 85, 79, 80, 128, 80, 85, 79, 128, 80, 85, 78, 71, 65, 65, 77, - 128, 80, 85, 78, 71, 128, 80, 85, 78, 67, 84, 85, 211, 80, 85, 78, 67, - 84, 85, 65, 84, 73, 79, 78, 128, 80, 85, 78, 67, 84, 85, 65, 84, 73, 79, - 206, 80, 85, 77, 80, 128, 80, 85, 77, 128, 80, 85, 70, 70, 69, 68, 128, - 80, 85, 69, 128, 80, 85, 67, 75, 128, 80, 85, 66, 76, 73, 195, 80, 85, - 194, 80, 85, 65, 81, 128, 80, 85, 65, 69, 128, 80, 85, 65, 67, 72, 85, - 197, 80, 85, 50, 128, 80, 85, 49, 128, 80, 85, 128, 80, 84, 72, 65, 72, - 193, 80, 84, 69, 128, 80, 83, 73, 76, 201, 80, 83, 73, 70, 73, 83, 84, - 79, 83, 89, 78, 65, 71, 77, 65, 128, 80, 83, 73, 70, 73, 83, 84, 79, 80, - 65, 82, 65, 75, 65, 76, 69, 83, 77, 65, 128, 80, 83, 73, 70, 73, 83, 84, - 79, 206, 80, 83, 73, 70, 73, 83, 84, 79, 76, 89, 71, 73, 83, 77, 65, 128, - 80, 83, 73, 128, 80, 83, 65, 76, 84, 69, 210, 80, 83, 128, 80, 82, 79, - 86, 69, 128, 80, 82, 79, 84, 79, 86, 65, 82, 89, 211, 80, 82, 79, 84, 79, - 211, 80, 82, 79, 84, 69, 67, 84, 69, 196, 80, 82, 79, 83, 84, 65, 89, 65, - 128, 80, 82, 79, 83, 71, 69, 71, 82, 65, 77, 77, 69, 78, 73, 128, 80, 82, - 79, 83, 69, 82, 80, 73, 78, 65, 128, 80, 82, 79, 80, 79, 82, 84, 73, 79, - 78, 65, 204, 80, 82, 79, 80, 79, 82, 84, 73, 79, 78, 128, 80, 82, 79, 80, - 69, 82, 84, 217, 80, 82, 79, 80, 69, 76, 76, 69, 210, 80, 82, 79, 79, 70, - 128, 80, 82, 79, 76, 79, 78, 71, 69, 196, 80, 82, 79, 76, 65, 84, 73, 79, - 78, 197, 80, 82, 79, 74, 69, 67, 84, 79, 82, 128, 80, 82, 79, 74, 69, 67, - 84, 73, 86, 69, 128, 80, 82, 79, 74, 69, 67, 84, 73, 79, 78, 128, 80, 82, - 79, 72, 73, 66, 73, 84, 69, 196, 80, 82, 79, 71, 82, 69, 83, 83, 128, 80, - 82, 79, 71, 82, 65, 205, 80, 82, 79, 70, 79, 85, 78, 68, 128, 80, 82, 79, - 68, 85, 67, 84, 128, 80, 82, 79, 68, 85, 67, 212, 80, 82, 79, 66, 73, 78, - 199, 80, 82, 73, 90, 78, 65, 203, 80, 82, 73, 86, 65, 84, 69, 128, 80, - 82, 73, 86, 65, 84, 197, 80, 82, 73, 86, 65, 67, 217, 80, 82, 73, 83, 72, - 84, 72, 65, 77, 65, 84, 82, 193, 80, 82, 73, 78, 84, 83, 128, 80, 82, 73, - 78, 84, 69, 82, 128, 80, 82, 73, 78, 84, 69, 210, 80, 82, 73, 78, 84, - 128, 80, 82, 73, 78, 212, 80, 82, 73, 78, 67, 69, 83, 83, 128, 80, 82, - 73, 78, 67, 69, 128, 80, 82, 73, 77, 69, 128, 80, 82, 73, 77, 197, 80, - 82, 69, 86, 73, 79, 85, 211, 80, 82, 69, 84, 90, 69, 76, 128, 80, 82, 69, - 83, 83, 69, 196, 80, 82, 69, 83, 69, 84, 128, 80, 82, 69, 83, 69, 78, 84, - 65, 84, 73, 79, 206, 80, 82, 69, 83, 67, 82, 73, 80, 84, 73, 79, 206, 80, - 82, 69, 80, 79, 78, 68, 69, 82, 65, 78, 67, 69, 128, 80, 82, 69, 78, 75, - 72, 65, 128, 80, 82, 69, 71, 78, 65, 78, 212, 80, 82, 69, 70, 73, 88, 69, - 196, 80, 82, 69, 70, 65, 67, 197, 80, 82, 69, 67, 73, 80, 73, 84, 65, 84, - 69, 128, 80, 82, 69, 67, 69, 68, 73, 78, 199, 80, 82, 69, 67, 69, 68, 69, - 83, 128, 80, 82, 69, 67, 69, 68, 69, 211, 80, 82, 69, 67, 69, 68, 69, - 196, 80, 82, 69, 67, 69, 68, 69, 128, 80, 82, 69, 67, 69, 68, 197, 80, - 82, 65, 89, 69, 210, 80, 82, 65, 77, 45, 80, 73, 73, 128, 80, 82, 65, 77, - 45, 80, 73, 201, 80, 82, 65, 77, 45, 77, 85, 79, 89, 128, 80, 82, 65, 77, - 45, 77, 85, 79, 217, 80, 82, 65, 77, 45, 66, 85, 79, 78, 128, 80, 82, 65, - 77, 45, 66, 85, 79, 206, 80, 82, 65, 77, 45, 66, 69, 73, 128, 80, 82, 65, - 77, 45, 66, 69, 201, 80, 82, 65, 77, 128, 80, 82, 65, 205, 80, 82, 128, - 80, 80, 86, 128, 80, 80, 77, 128, 80, 80, 65, 128, 80, 79, 89, 128, 80, - 79, 88, 128, 80, 79, 87, 69, 82, 211, 80, 79, 87, 69, 82, 128, 80, 79, - 87, 69, 210, 80, 79, 87, 68, 69, 82, 69, 196, 80, 79, 87, 68, 69, 82, - 128, 80, 79, 86, 89, 83, 72, 69, 128, 80, 79, 86, 89, 83, 72, 197, 80, - 79, 86, 79, 68, 78, 89, 128, 80, 79, 85, 82, 73, 78, 199, 80, 79, 85, 78, - 196, 80, 79, 85, 76, 84, 82, 217, 80, 79, 85, 67, 72, 128, 80, 79, 84, - 84, 69, 196, 80, 79, 84, 65, 84, 79, 128, 80, 79, 84, 65, 66, 76, 197, - 80, 79, 212, 80, 79, 83, 84, 80, 79, 83, 73, 84, 73, 79, 206, 80, 79, 83, - 84, 66, 79, 88, 128, 80, 79, 83, 84, 65, 204, 80, 79, 83, 84, 128, 80, - 79, 83, 212, 80, 79, 83, 83, 69, 83, 83, 73, 79, 78, 128, 80, 79, 83, 83, - 69, 83, 83, 73, 79, 206, 80, 79, 83, 73, 84, 73, 79, 78, 83, 128, 80, 79, - 83, 73, 84, 73, 79, 78, 128, 80, 79, 83, 69, 73, 68, 79, 78, 128, 80, 79, - 82, 84, 65, 66, 76, 197, 80, 79, 82, 82, 69, 67, 84, 85, 83, 128, 80, 79, - 82, 82, 69, 67, 84, 85, 211, 80, 79, 80, 80, 73, 78, 199, 80, 79, 80, 80, - 69, 82, 128, 80, 79, 80, 67, 79, 82, 78, 128, 80, 79, 80, 128, 80, 79, - 208, 80, 79, 79, 68, 76, 69, 128, 80, 79, 79, 128, 80, 79, 78, 68, 79, - 128, 80, 79, 206, 80, 79, 77, 77, 69, 69, 128, 80, 79, 77, 77, 69, 197, - 80, 79, 76, 85, 80, 79, 86, 79, 68, 78, 65, 89, 65, 128, 80, 79, 76, 79, - 128, 80, 79, 76, 78, 65, 89, 65, 128, 80, 79, 76, 76, 85, 128, 80, 79, - 76, 75, 85, 76, 73, 90, 77, 89, 128, 80, 79, 76, 73, 83, 72, 128, 80, 79, - 76, 73, 83, 200, 80, 79, 76, 73, 67, 197, 80, 79, 76, 201, 80, 79, 76, - 69, 128, 80, 79, 76, 197, 80, 79, 75, 82, 89, 84, 73, 69, 128, 80, 79, - 75, 79, 74, 73, 128, 80, 79, 73, 78, 84, 211, 80, 79, 73, 78, 84, 79, - 128, 80, 79, 73, 78, 84, 69, 82, 128, 80, 79, 73, 78, 84, 69, 196, 80, - 79, 73, 78, 84, 128, 80, 79, 73, 78, 212, 80, 79, 69, 84, 82, 217, 80, - 79, 69, 84, 73, 195, 80, 79, 68, 86, 69, 82, 84, 75, 65, 128, 80, 79, 68, - 67, 72, 65, 83, 72, 73, 69, 77, 128, 80, 79, 68, 67, 72, 65, 83, 72, 73, - 69, 128, 80, 79, 68, 67, 72, 65, 83, 72, 73, 197, 80, 79, 68, 65, 84, 85, - 83, 128, 80, 79, 67, 75, 69, 212, 80, 79, 65, 128, 80, 207, 80, 78, 69, - 85, 77, 65, 84, 65, 128, 80, 76, 85, 84, 207, 80, 76, 85, 84, 65, 128, - 80, 76, 85, 83, 45, 77, 73, 78, 85, 211, 80, 76, 85, 83, 128, 80, 76, 85, - 82, 65, 76, 128, 80, 76, 85, 78, 71, 69, 82, 128, 80, 76, 85, 77, 69, - 196, 80, 76, 85, 77, 128, 80, 76, 85, 75, 128, 80, 76, 85, 71, 128, 80, - 76, 85, 128, 80, 76, 79, 87, 128, 80, 76, 79, 80, 72, 85, 128, 80, 76, - 72, 65, 85, 128, 80, 76, 69, 84, 72, 82, 79, 78, 128, 80, 76, 69, 65, 68, - 73, 78, 199, 80, 76, 68, 128, 80, 76, 65, 89, 73, 78, 199, 80, 76, 65, - 89, 71, 82, 79, 85, 78, 196, 80, 76, 65, 84, 69, 128, 80, 76, 65, 83, 84, - 73, 67, 83, 128, 80, 76, 65, 78, 84, 128, 80, 76, 65, 78, 69, 84, 128, - 80, 76, 65, 78, 69, 128, 80, 76, 65, 78, 67, 203, 80, 76, 65, 75, 128, - 80, 76, 65, 71, 73, 79, 211, 80, 76, 65, 67, 69, 72, 79, 76, 68, 69, 82, - 128, 80, 76, 65, 67, 69, 72, 79, 76, 68, 69, 210, 80, 76, 65, 67, 197, - 80, 76, 65, 67, 65, 82, 68, 128, 80, 76, 65, 128, 80, 73, 90, 90, 73, 67, - 65, 84, 79, 128, 80, 73, 90, 90, 65, 128, 80, 73, 88, 128, 80, 73, 87, - 82, 128, 80, 73, 84, 67, 72, 70, 79, 82, 75, 128, 80, 73, 84, 67, 72, 70, - 79, 82, 203, 80, 73, 84, 128, 80, 73, 83, 84, 79, 76, 128, 80, 73, 83, - 69, 76, 69, 72, 128, 80, 73, 83, 67, 69, 83, 128, 80, 73, 82, 73, 71, - 128, 80, 73, 82, 73, 199, 80, 73, 82, 73, 69, 69, 78, 128, 80, 73, 82, - 65, 67, 89, 128, 80, 73, 82, 50, 128, 80, 73, 80, 73, 78, 71, 128, 80, - 73, 80, 65, 69, 77, 71, 66, 73, 69, 69, 128, 80, 73, 80, 65, 69, 77, 66, - 65, 128, 80, 73, 80, 128, 80, 73, 78, 87, 72, 69, 69, 204, 80, 73, 78, - 203, 80, 73, 78, 69, 65, 80, 80, 76, 69, 128, 80, 73, 78, 197, 80, 73, - 78, 67, 72, 73, 78, 199, 80, 73, 78, 67, 72, 69, 196, 80, 73, 78, 65, 84, - 65, 128, 80, 73, 78, 65, 82, 66, 79, 82, 65, 83, 128, 80, 73, 76, 76, + 65, 82, 84, 69, 82, 128, 81, 85, 65, 78, 84, 73, 84, 217, 81, 85, 65, 68, + 82, 85, 80, 76, 197, 81, 85, 65, 68, 82, 65, 78, 84, 128, 81, 85, 65, 68, + 82, 65, 78, 212, 81, 85, 65, 68, 67, 79, 76, 79, 78, 128, 81, 85, 65, 68, + 128, 81, 85, 65, 196, 81, 85, 65, 128, 81, 85, 128, 81, 208, 81, 79, 88, + 128, 81, 79, 84, 128, 81, 79, 80, 72, 128, 81, 79, 80, 65, 128, 81, 79, + 80, 128, 81, 79, 79, 128, 81, 79, 207, 81, 79, 70, 128, 81, 79, 198, 81, + 79, 65, 128, 81, 79, 128, 81, 78, 128, 81, 73, 88, 128, 81, 73, 84, 83, + 65, 128, 81, 73, 84, 128, 81, 73, 80, 128, 81, 73, 73, 128, 81, 73, 70, + 128, 81, 73, 69, 88, 128, 81, 73, 69, 84, 128, 81, 73, 69, 80, 128, 81, + 73, 69, 128, 81, 73, 128, 81, 72, 87, 73, 128, 81, 72, 87, 69, 69, 128, + 81, 72, 87, 69, 128, 81, 72, 87, 65, 65, 128, 81, 72, 87, 65, 128, 81, + 72, 85, 128, 81, 72, 79, 80, 72, 128, 81, 72, 79, 128, 81, 72, 73, 128, + 81, 72, 69, 69, 128, 81, 72, 69, 128, 81, 72, 65, 85, 128, 81, 72, 65, + 65, 128, 81, 72, 65, 128, 81, 71, 65, 128, 81, 69, 84, 65, 78, 65, 128, + 81, 69, 69, 128, 81, 69, 128, 81, 65, 89, 128, 81, 65, 85, 128, 81, 65, + 84, 65, 78, 128, 81, 65, 82, 78, 69, 217, 81, 65, 82, 128, 81, 65, 81, + 128, 81, 65, 80, 72, 128, 81, 65, 77, 65, 84, 83, 128, 81, 65, 77, 65, + 84, 211, 81, 65, 76, 193, 81, 65, 73, 82, 84, 72, 82, 65, 128, 81, 65, + 73, 128, 81, 65, 70, 128, 81, 65, 198, 81, 65, 68, 77, 65, 128, 81, 65, + 65, 73, 128, 81, 65, 65, 70, 85, 128, 81, 65, 65, 70, 128, 81, 48, 48, + 55, 128, 81, 48, 48, 54, 128, 81, 48, 48, 53, 128, 81, 48, 48, 52, 128, + 81, 48, 48, 51, 128, 81, 48, 48, 50, 128, 81, 48, 48, 49, 128, 80, 90, + 128, 80, 89, 88, 128, 80, 89, 84, 128, 80, 89, 82, 88, 128, 80, 89, 82, + 128, 80, 89, 80, 128, 80, 87, 79, 89, 128, 80, 87, 79, 79, 128, 80, 87, + 79, 128, 80, 87, 207, 80, 87, 73, 73, 128, 80, 87, 73, 128, 80, 87, 69, + 69, 128, 80, 87, 69, 128, 80, 87, 65, 65, 128, 80, 87, 128, 80, 86, 128, + 80, 85, 90, 90, 76, 197, 80, 85, 88, 128, 80, 85, 85, 84, 128, 80, 85, + 85, 128, 80, 85, 84, 82, 69, 70, 65, 67, 84, 73, 79, 78, 128, 80, 85, 84, + 78, 65, 89, 65, 128, 80, 85, 84, 128, 80, 85, 212, 80, 85, 83, 72, 80, + 73, 78, 128, 80, 85, 83, 72, 80, 73, 75, 65, 128, 80, 85, 83, 72, 73, 78, + 199, 80, 85, 82, 88, 128, 80, 85, 82, 83, 69, 128, 80, 85, 82, 80, 76, + 197, 80, 85, 82, 78, 65, 77, 65, 128, 80, 85, 82, 73, 84, 89, 128, 80, + 85, 82, 73, 70, 89, 128, 80, 85, 82, 128, 80, 85, 81, 128, 80, 85, 80, + 128, 80, 85, 79, 88, 128, 80, 85, 79, 80, 128, 80, 85, 79, 128, 80, 85, + 78, 71, 65, 65, 77, 128, 80, 85, 78, 71, 128, 80, 85, 78, 67, 84, 85, + 211, 80, 85, 78, 67, 84, 85, 65, 84, 73, 79, 78, 128, 80, 85, 78, 67, 84, + 85, 65, 84, 73, 79, 206, 80, 85, 77, 80, 128, 80, 85, 77, 128, 80, 85, + 70, 70, 69, 68, 128, 80, 85, 69, 128, 80, 85, 67, 75, 128, 80, 85, 66, + 76, 73, 195, 80, 85, 194, 80, 85, 65, 81, 128, 80, 85, 65, 69, 128, 80, + 85, 65, 67, 72, 85, 197, 80, 85, 50, 128, 80, 85, 49, 128, 80, 85, 128, + 80, 84, 72, 65, 72, 193, 80, 84, 69, 128, 80, 83, 73, 76, 201, 80, 83, + 73, 70, 73, 83, 84, 79, 83, 89, 78, 65, 71, 77, 65, 128, 80, 83, 73, 70, + 73, 83, 84, 79, 80, 65, 82, 65, 75, 65, 76, 69, 83, 77, 65, 128, 80, 83, + 73, 70, 73, 83, 84, 79, 206, 80, 83, 73, 70, 73, 83, 84, 79, 76, 89, 71, + 73, 83, 77, 65, 128, 80, 83, 73, 128, 80, 83, 65, 76, 84, 69, 210, 80, + 83, 128, 80, 82, 79, 86, 69, 128, 80, 82, 79, 84, 79, 86, 65, 82, 89, + 211, 80, 82, 79, 84, 79, 211, 80, 82, 79, 84, 69, 67, 84, 69, 196, 80, + 82, 79, 83, 84, 65, 89, 65, 128, 80, 82, 79, 83, 71, 69, 71, 82, 65, 77, + 77, 69, 78, 73, 128, 80, 82, 79, 83, 69, 82, 80, 73, 78, 65, 128, 80, 82, + 79, 80, 79, 82, 84, 73, 79, 78, 65, 204, 80, 82, 79, 80, 79, 82, 84, 73, + 79, 78, 128, 80, 82, 79, 80, 69, 82, 84, 217, 80, 82, 79, 80, 69, 76, 76, + 69, 210, 80, 82, 79, 79, 70, 128, 80, 82, 79, 76, 79, 78, 71, 69, 196, + 80, 82, 79, 76, 65, 84, 73, 79, 78, 197, 80, 82, 79, 74, 69, 67, 84, 79, + 82, 128, 80, 82, 79, 74, 69, 67, 84, 73, 86, 69, 128, 80, 82, 79, 74, 69, + 67, 84, 73, 79, 78, 128, 80, 82, 79, 72, 73, 66, 73, 84, 69, 196, 80, 82, + 79, 71, 82, 69, 83, 83, 128, 80, 82, 79, 71, 82, 65, 205, 80, 82, 79, 70, + 79, 85, 78, 68, 128, 80, 82, 79, 68, 85, 67, 84, 128, 80, 82, 79, 68, 85, + 67, 212, 80, 82, 79, 66, 73, 78, 199, 80, 82, 73, 90, 78, 65, 203, 80, + 82, 73, 86, 65, 84, 69, 128, 80, 82, 73, 86, 65, 84, 197, 80, 82, 73, 86, + 65, 67, 217, 80, 82, 73, 83, 72, 84, 72, 65, 77, 65, 84, 82, 193, 80, 82, + 73, 78, 84, 83, 128, 80, 82, 73, 78, 84, 69, 82, 128, 80, 82, 73, 78, 84, + 69, 210, 80, 82, 73, 78, 84, 128, 80, 82, 73, 78, 212, 80, 82, 73, 78, + 67, 69, 83, 83, 128, 80, 82, 73, 78, 67, 69, 128, 80, 82, 73, 77, 69, + 128, 80, 82, 73, 77, 197, 80, 82, 69, 86, 73, 79, 85, 211, 80, 82, 69, + 84, 90, 69, 76, 128, 80, 82, 69, 83, 83, 69, 196, 80, 82, 69, 83, 69, 84, + 128, 80, 82, 69, 83, 69, 78, 84, 65, 84, 73, 79, 206, 80, 82, 69, 83, 67, + 82, 73, 80, 84, 73, 79, 206, 80, 82, 69, 80, 79, 78, 68, 69, 82, 65, 78, + 67, 69, 128, 80, 82, 69, 78, 75, 72, 65, 128, 80, 82, 69, 71, 78, 65, 78, + 212, 80, 82, 69, 70, 73, 88, 69, 196, 80, 82, 69, 70, 65, 67, 197, 80, + 82, 69, 67, 73, 80, 73, 84, 65, 84, 69, 128, 80, 82, 69, 67, 69, 68, 73, + 78, 199, 80, 82, 69, 67, 69, 68, 69, 83, 128, 80, 82, 69, 67, 69, 68, 69, + 211, 80, 82, 69, 67, 69, 68, 69, 196, 80, 82, 69, 67, 69, 68, 69, 128, + 80, 82, 69, 67, 69, 68, 197, 80, 82, 65, 89, 69, 210, 80, 82, 65, 77, 45, + 80, 73, 73, 128, 80, 82, 65, 77, 45, 80, 73, 201, 80, 82, 65, 77, 45, 77, + 85, 79, 89, 128, 80, 82, 65, 77, 45, 77, 85, 79, 217, 80, 82, 65, 77, 45, + 66, 85, 79, 78, 128, 80, 82, 65, 77, 45, 66, 85, 79, 206, 80, 82, 65, 77, + 45, 66, 69, 73, 128, 80, 82, 65, 77, 45, 66, 69, 201, 80, 82, 65, 77, + 128, 80, 82, 65, 205, 80, 82, 128, 80, 80, 86, 128, 80, 80, 77, 128, 80, + 80, 65, 128, 80, 79, 89, 128, 80, 79, 88, 128, 80, 79, 87, 69, 82, 211, + 80, 79, 87, 69, 82, 128, 80, 79, 87, 69, 210, 80, 79, 87, 68, 69, 82, 69, + 196, 80, 79, 87, 68, 69, 82, 128, 80, 79, 86, 89, 83, 72, 69, 128, 80, + 79, 86, 89, 83, 72, 197, 80, 79, 86, 79, 68, 78, 89, 128, 80, 79, 85, 82, + 73, 78, 199, 80, 79, 85, 78, 196, 80, 79, 85, 76, 84, 82, 217, 80, 79, + 85, 67, 72, 128, 80, 79, 84, 84, 69, 196, 80, 79, 84, 65, 84, 79, 128, + 80, 79, 84, 65, 66, 76, 197, 80, 79, 212, 80, 79, 83, 84, 80, 79, 83, 73, + 84, 73, 79, 206, 80, 79, 83, 84, 66, 79, 88, 128, 80, 79, 83, 84, 65, + 204, 80, 79, 83, 84, 128, 80, 79, 83, 212, 80, 79, 83, 83, 69, 83, 83, + 73, 79, 78, 128, 80, 79, 83, 83, 69, 83, 83, 73, 79, 206, 80, 79, 83, 73, + 84, 73, 79, 78, 83, 128, 80, 79, 83, 73, 84, 73, 79, 78, 128, 80, 79, 83, + 69, 73, 68, 79, 78, 128, 80, 79, 82, 84, 65, 66, 76, 197, 80, 79, 82, 82, + 69, 67, 84, 85, 83, 128, 80, 79, 82, 82, 69, 67, 84, 85, 211, 80, 79, 80, + 80, 73, 78, 199, 80, 79, 80, 80, 69, 82, 128, 80, 79, 80, 67, 79, 82, 78, + 128, 80, 79, 80, 128, 80, 79, 208, 80, 79, 79, 68, 76, 69, 128, 80, 79, + 79, 128, 80, 79, 78, 68, 79, 128, 80, 79, 206, 80, 79, 77, 77, 69, 69, + 128, 80, 79, 77, 77, 69, 197, 80, 79, 76, 85, 80, 79, 86, 79, 68, 78, 65, + 89, 65, 128, 80, 79, 76, 79, 128, 80, 79, 76, 78, 65, 89, 65, 128, 80, + 79, 76, 76, 85, 128, 80, 79, 76, 75, 85, 76, 73, 90, 77, 89, 128, 80, 79, + 76, 73, 83, 72, 128, 80, 79, 76, 73, 83, 200, 80, 79, 76, 73, 67, 197, + 80, 79, 76, 201, 80, 79, 76, 69, 128, 80, 79, 76, 197, 80, 79, 75, 82, + 89, 84, 73, 69, 128, 80, 79, 75, 79, 74, 73, 128, 80, 79, 73, 78, 84, + 211, 80, 79, 73, 78, 84, 79, 128, 80, 79, 73, 78, 84, 69, 82, 128, 80, + 79, 73, 78, 84, 69, 196, 80, 79, 73, 78, 84, 128, 80, 79, 73, 78, 212, + 80, 79, 69, 84, 82, 217, 80, 79, 69, 84, 73, 195, 80, 79, 68, 86, 69, 82, + 84, 75, 65, 128, 80, 79, 68, 67, 72, 65, 83, 72, 73, 69, 77, 128, 80, 79, + 68, 67, 72, 65, 83, 72, 73, 69, 128, 80, 79, 68, 67, 72, 65, 83, 72, 73, + 197, 80, 79, 68, 65, 84, 85, 83, 128, 80, 79, 67, 75, 69, 212, 80, 79, + 65, 128, 80, 207, 80, 78, 69, 85, 77, 65, 84, 65, 128, 80, 76, 85, 84, + 207, 80, 76, 85, 84, 65, 128, 80, 76, 85, 83, 45, 77, 73, 78, 85, 211, + 80, 76, 85, 83, 128, 80, 76, 85, 82, 65, 76, 128, 80, 76, 85, 78, 71, 69, + 82, 128, 80, 76, 85, 77, 69, 196, 80, 76, 85, 77, 128, 80, 76, 85, 75, + 128, 80, 76, 85, 71, 128, 80, 76, 85, 128, 80, 76, 79, 87, 128, 80, 76, + 79, 80, 72, 85, 128, 80, 76, 72, 65, 85, 128, 80, 76, 69, 84, 72, 82, 79, + 78, 128, 80, 76, 69, 65, 68, 73, 78, 199, 80, 76, 68, 128, 80, 76, 65, + 89, 73, 78, 199, 80, 76, 65, 89, 71, 82, 79, 85, 78, 196, 80, 76, 65, 84, + 69, 128, 80, 76, 65, 83, 84, 73, 67, 83, 128, 80, 76, 65, 78, 84, 128, + 80, 76, 65, 78, 69, 84, 128, 80, 76, 65, 78, 69, 128, 80, 76, 65, 78, 67, + 203, 80, 76, 65, 75, 128, 80, 76, 65, 71, 73, 79, 211, 80, 76, 65, 67, + 69, 72, 79, 76, 68, 69, 82, 128, 80, 76, 65, 67, 69, 72, 79, 76, 68, 69, + 210, 80, 76, 65, 67, 197, 80, 76, 65, 67, 65, 82, 68, 128, 80, 76, 65, + 128, 80, 73, 90, 90, 73, 67, 65, 84, 79, 128, 80, 73, 90, 90, 65, 128, + 80, 73, 88, 128, 80, 73, 87, 82, 128, 80, 73, 84, 67, 72, 70, 79, 82, 75, + 128, 80, 73, 84, 67, 72, 70, 79, 82, 203, 80, 73, 84, 128, 80, 73, 83, + 84, 79, 76, 128, 80, 73, 83, 69, 76, 69, 72, 128, 80, 73, 83, 67, 69, 83, + 128, 80, 73, 82, 73, 71, 128, 80, 73, 82, 73, 199, 80, 73, 82, 73, 69, + 69, 78, 128, 80, 73, 82, 65, 67, 89, 128, 80, 73, 82, 50, 128, 80, 73, + 80, 73, 78, 71, 128, 80, 73, 80, 65, 69, 77, 71, 66, 73, 69, 69, 128, 80, + 73, 80, 65, 69, 77, 66, 65, 128, 80, 73, 80, 128, 80, 73, 78, 87, 72, 69, + 69, 204, 80, 73, 78, 69, 65, 80, 80, 76, 69, 128, 80, 73, 78, 197, 80, + 73, 78, 67, 72, 73, 78, 199, 80, 73, 78, 67, 72, 69, 196, 80, 73, 78, 65, + 84, 65, 128, 80, 73, 78, 65, 82, 66, 79, 82, 65, 83, 128, 80, 73, 76, 76, 128, 80, 73, 76, 197, 80, 73, 76, 67, 82, 79, 215, 80, 73, 75, 85, 82, 85, 128, 80, 73, 75, 79, 128, 80, 73, 71, 128, 80, 73, 199, 80, 73, 69, 88, 128, 80, 73, 69, 85, 80, 45, 84, 72, 73, 69, 85, 84, 72, 128, 80, 73, @@ -1919,2298 +1916,2286 @@ static const unsigned char lexicon[] = { 65, 76, 128, 80, 69, 68, 69, 83, 84, 65, 204, 80, 69, 68, 65, 204, 80, 69, 65, 78, 85, 84, 83, 128, 80, 69, 65, 75, 211, 80, 69, 65, 67, 79, 67, 75, 128, 80, 69, 65, 67, 72, 128, 80, 69, 65, 67, 69, 128, 80, 69, 65, - 67, 197, 80, 69, 193, 80, 68, 73, 128, 80, 68, 70, 128, 80, 68, 128, 80, - 67, 128, 80, 65, 90, 69, 82, 128, 80, 65, 89, 69, 82, 79, 75, 128, 80, - 65, 89, 65, 78, 78, 65, 128, 80, 65, 89, 128, 80, 65, 88, 128, 80, 65, - 87, 78, 128, 80, 65, 87, 206, 80, 65, 215, 80, 65, 86, 73, 89, 65, 78, - 73, 128, 80, 65, 85, 83, 197, 80, 65, 85, 75, 128, 80, 65, 85, 128, 80, - 65, 213, 80, 65, 84, 84, 217, 80, 65, 84, 84, 69, 82, 78, 128, 80, 65, - 84, 72, 65, 77, 65, 83, 65, 84, 128, 80, 65, 84, 72, 65, 75, 75, 85, 128, - 80, 65, 84, 200, 80, 65, 84, 65, 75, 128, 80, 65, 84, 65, 72, 128, 80, - 65, 84, 128, 80, 65, 83, 85, 81, 128, 80, 65, 83, 83, 80, 79, 82, 212, - 80, 65, 83, 83, 73, 86, 69, 45, 80, 85, 76, 76, 45, 85, 80, 45, 79, 85, - 84, 80, 85, 212, 80, 65, 83, 83, 73, 86, 69, 45, 80, 85, 76, 76, 45, 68, - 79, 87, 78, 45, 79, 85, 84, 80, 85, 212, 80, 65, 83, 83, 73, 77, 66, 65, - 78, 71, 128, 80, 65, 83, 83, 69, 78, 71, 69, 210, 80, 65, 83, 83, 69, - 196, 80, 65, 83, 72, 84, 65, 128, 80, 65, 83, 72, 65, 69, 128, 80, 65, - 83, 69, 81, 128, 80, 65, 83, 65, 78, 71, 65, 206, 80, 65, 82, 85, 77, - 128, 80, 65, 82, 84, 217, 80, 65, 82, 84, 78, 69, 82, 83, 72, 73, 208, - 80, 65, 82, 84, 73, 65, 76, 76, 89, 45, 82, 69, 67, 89, 67, 76, 69, 196, - 80, 65, 82, 84, 73, 65, 204, 80, 65, 82, 84, 72, 73, 65, 206, 80, 65, 82, - 212, 80, 65, 82, 82, 79, 84, 128, 80, 65, 82, 75, 128, 80, 65, 82, 73, - 67, 72, 79, 78, 128, 80, 65, 82, 69, 83, 84, 73, 71, 77, 69, 78, 79, 206, - 80, 65, 82, 69, 82, 69, 78, 128, 80, 65, 82, 69, 78, 84, 72, 69, 83, 73, - 83, 128, 80, 65, 82, 69, 78, 84, 72, 69, 83, 73, 211, 80, 65, 82, 69, 78, - 84, 72, 69, 83, 69, 211, 80, 65, 82, 65, 80, 72, 82, 65, 83, 197, 80, 65, - 82, 65, 76, 76, 69, 76, 79, 71, 82, 65, 77, 128, 80, 65, 82, 65, 76, 76, - 69, 76, 128, 80, 65, 82, 65, 76, 76, 69, 204, 80, 65, 82, 65, 75, 76, 73, - 84, 73, 75, 73, 128, 80, 65, 82, 65, 75, 76, 73, 84, 73, 75, 201, 80, 65, - 82, 65, 75, 76, 73, 84, 128, 80, 65, 82, 65, 75, 65, 76, 69, 83, 77, 193, - 80, 65, 82, 65, 71, 82, 65, 80, 72, 85, 211, 80, 65, 82, 65, 71, 82, 65, - 80, 72, 79, 83, 128, 80, 65, 82, 65, 71, 82, 65, 80, 72, 128, 80, 65, 82, - 65, 71, 82, 65, 80, 200, 80, 65, 82, 65, 67, 72, 85, 84, 69, 128, 80, 65, - 82, 65, 128, 80, 65, 82, 128, 80, 65, 80, 89, 82, 85, 83, 128, 80, 65, - 80, 69, 82, 67, 76, 73, 80, 83, 128, 80, 65, 80, 69, 82, 67, 76, 73, 80, - 128, 80, 65, 80, 69, 82, 128, 80, 65, 80, 69, 210, 80, 65, 80, 128, 80, - 65, 208, 80, 65, 207, 80, 65, 78, 89, 85, 75, 85, 128, 80, 65, 78, 89, - 73, 75, 85, 128, 80, 65, 78, 89, 69, 67, 69, 75, 128, 80, 65, 78, 89, 65, - 78, 71, 71, 65, 128, 80, 65, 78, 89, 65, 75, 82, 65, 128, 80, 65, 78, 84, - 73, 128, 80, 65, 78, 84, 201, 80, 65, 78, 83, 73, 79, 83, 45, 80, 73, 69, - 85, 80, 128, 80, 65, 78, 83, 73, 79, 83, 45, 75, 65, 80, 89, 69, 79, 85, - 78, 80, 73, 69, 85, 80, 128, 80, 65, 78, 79, 78, 71, 79, 78, 65, 78, 128, - 80, 65, 78, 79, 76, 79, 78, 71, 128, 80, 65, 78, 71, 87, 73, 83, 65, 68, - 128, 80, 65, 78, 71, 82, 65, 78, 71, 75, 69, 80, 128, 80, 65, 78, 71, 79, - 76, 65, 84, 128, 80, 65, 78, 71, 76, 79, 78, 71, 128, 80, 65, 78, 71, 76, - 65, 89, 65, 82, 128, 80, 65, 78, 71, 75, 79, 78, 128, 80, 65, 78, 71, 75, - 65, 84, 128, 80, 65, 78, 71, 72, 85, 76, 85, 128, 80, 65, 78, 71, 128, - 80, 65, 78, 69, 85, 76, 69, 85, 78, 71, 128, 80, 65, 78, 68, 193, 80, 65, - 78, 67, 65, 75, 69, 83, 128, 80, 65, 78, 65, 77, 128, 80, 65, 78, 65, 69, - 76, 65, 69, 78, 71, 128, 80, 65, 78, 128, 80, 65, 206, 80, 65, 77, 85, - 78, 71, 75, 65, 72, 128, 80, 65, 77, 85, 68, 80, 79, 68, 128, 80, 65, 77, - 83, 72, 65, 69, 128, 80, 65, 77, 80, 72, 89, 76, 73, 65, 206, 80, 65, 77, - 73, 78, 71, 75, 65, 76, 128, 80, 65, 77, 69, 80, 69, 84, 128, 80, 65, 77, - 69, 78, 69, 78, 71, 128, 80, 65, 77, 65, 68, 65, 128, 80, 65, 77, 65, 68, - 193, 80, 65, 77, 65, 65, 69, 72, 128, 80, 65, 76, 85, 84, 65, 128, 80, - 65, 76, 79, 67, 72, 75, 65, 128, 80, 65, 76, 77, 89, 82, 69, 78, 197, 80, - 65, 76, 77, 211, 80, 65, 76, 77, 128, 80, 65, 76, 205, 80, 65, 76, 76, - 65, 87, 65, 128, 80, 65, 76, 76, 65, 83, 128, 80, 65, 76, 75, 65, 128, - 80, 65, 76, 201, 80, 65, 76, 69, 84, 84, 69, 128, 80, 65, 76, 65, 85, 78, - 199, 80, 65, 76, 65, 84, 65, 76, 73, 90, 69, 196, 80, 65, 76, 65, 84, 65, - 76, 73, 90, 65, 84, 73, 79, 78, 128, 80, 65, 76, 65, 84, 65, 204, 80, 65, - 75, 80, 65, 203, 80, 65, 73, 89, 65, 78, 78, 79, 73, 128, 80, 65, 73, 82, - 84, 72, 82, 65, 128, 80, 65, 73, 82, 69, 196, 80, 65, 73, 78, 84, 66, 82, - 85, 83, 72, 128, 80, 65, 73, 128, 80, 65, 72, 76, 65, 86, 201, 80, 65, - 72, 128, 80, 65, 71, 79, 68, 65, 128, 80, 65, 71, 69, 83, 128, 80, 65, - 71, 69, 82, 128, 80, 65, 71, 197, 80, 65, 68, 77, 193, 80, 65, 68, 68, - 76, 197, 80, 65, 68, 68, 73, 78, 199, 80, 65, 68, 193, 80, 65, 68, 128, - 80, 65, 67, 75, 73, 78, 71, 128, 80, 65, 67, 75, 65, 71, 69, 128, 80, 65, - 65, 84, 85, 128, 80, 65, 65, 83, 69, 78, 84, 79, 128, 80, 65, 65, 82, 65, - 77, 128, 80, 65, 65, 82, 65, 69, 128, 80, 65, 65, 77, 128, 80, 65, 65, - 73, 128, 80, 65, 65, 45, 80, 73, 76, 76, 65, 128, 80, 65, 65, 128, 80, - 50, 128, 80, 48, 49, 49, 128, 80, 48, 49, 48, 128, 80, 48, 48, 57, 128, - 80, 48, 48, 56, 128, 80, 48, 48, 55, 128, 80, 48, 48, 54, 128, 80, 48, - 48, 53, 128, 80, 48, 48, 52, 128, 80, 48, 48, 51, 65, 128, 80, 48, 48, - 51, 128, 80, 48, 48, 50, 128, 80, 48, 48, 49, 65, 128, 80, 48, 48, 49, - 128, 79, 90, 128, 79, 89, 83, 84, 69, 82, 128, 79, 89, 82, 65, 78, 73, - 83, 77, 193, 79, 89, 65, 78, 78, 65, 128, 79, 88, 73, 65, 128, 79, 88, - 73, 193, 79, 88, 69, 73, 65, 201, 79, 88, 69, 73, 193, 79, 87, 76, 128, - 79, 86, 69, 82, 83, 84, 82, 85, 67, 203, 79, 86, 69, 82, 82, 73, 68, 69, - 128, 79, 86, 69, 82, 76, 79, 78, 199, 79, 86, 69, 82, 76, 73, 78, 69, - 128, 79, 86, 69, 82, 76, 65, 89, 128, 79, 86, 69, 82, 76, 65, 217, 79, - 86, 69, 82, 76, 65, 80, 80, 73, 78, 199, 79, 86, 69, 82, 76, 65, 80, 128, - 79, 86, 69, 82, 76, 65, 73, 68, 128, 79, 86, 69, 82, 76, 65, 73, 196, 79, - 86, 69, 82, 72, 69, 65, 84, 69, 196, 79, 86, 69, 82, 66, 65, 82, 128, 79, - 86, 65, 76, 128, 79, 86, 65, 204, 79, 85, 84, 76, 73, 78, 69, 196, 79, - 85, 84, 76, 73, 78, 69, 128, 79, 85, 84, 69, 210, 79, 85, 84, 66, 79, - 216, 79, 85, 78, 75, 73, 193, 79, 85, 78, 67, 69, 128, 79, 85, 78, 67, - 197, 79, 84, 85, 128, 79, 84, 84, 79, 77, 65, 206, 79, 84, 84, 69, 82, - 128, 79, 84, 84, 65, 86, 193, 79, 84, 84, 128, 79, 84, 83, 69, 67, 72, - 75, 65, 128, 79, 84, 72, 69, 82, 211, 79, 84, 72, 69, 210, 79, 84, 72, - 65, 76, 65, 206, 79, 84, 72, 65, 76, 128, 79, 83, 79, 75, 65, 128, 79, - 83, 79, 75, 193, 79, 83, 77, 65, 78, 89, 193, 79, 83, 67, 128, 79, 83, - 65, 71, 197, 79, 82, 84, 72, 79, 71, 79, 78, 65, 204, 79, 82, 84, 72, 79, - 68, 79, 216, 79, 82, 78, 65, 84, 197, 79, 82, 78, 65, 77, 69, 78, 84, 83, - 128, 79, 82, 78, 65, 77, 69, 78, 84, 128, 79, 82, 78, 65, 77, 69, 78, - 212, 79, 82, 75, 72, 79, 206, 79, 82, 73, 89, 193, 79, 82, 73, 71, 73, - 78, 65, 204, 79, 82, 73, 71, 73, 78, 128, 79, 82, 69, 45, 50, 128, 79, - 82, 68, 73, 78, 65, 204, 79, 82, 68, 69, 210, 79, 82, 67, 85, 83, 128, - 79, 82, 67, 72, 73, 68, 128, 79, 82, 65, 78, 71, 85, 84, 65, 78, 128, 79, - 82, 65, 78, 71, 197, 79, 80, 84, 73, 79, 206, 79, 80, 84, 73, 67, 65, - 204, 79, 80, 80, 82, 69, 83, 83, 73, 79, 78, 128, 79, 80, 80, 79, 83, 73, - 84, 73, 79, 78, 128, 79, 80, 80, 79, 83, 73, 78, 199, 79, 80, 80, 79, 83, - 69, 128, 79, 80, 72, 73, 85, 67, 72, 85, 83, 128, 79, 80, 69, 82, 65, 84, - 79, 82, 128, 79, 80, 69, 82, 65, 84, 79, 210, 79, 80, 69, 82, 65, 84, 73, - 78, 199, 79, 80, 69, 78, 73, 78, 199, 79, 80, 69, 78, 45, 80, 128, 79, - 80, 69, 78, 45, 79, 85, 84, 76, 73, 78, 69, 196, 79, 80, 69, 78, 45, 79, - 128, 79, 80, 69, 78, 45, 207, 79, 80, 69, 78, 45, 72, 69, 65, 68, 69, - 196, 79, 80, 69, 78, 45, 67, 73, 82, 67, 85, 73, 84, 45, 79, 85, 84, 80, - 85, 212, 79, 80, 69, 78, 128, 79, 80, 69, 206, 79, 79, 90, 69, 128, 79, - 79, 89, 65, 78, 78, 65, 128, 79, 79, 85, 128, 79, 79, 77, 85, 128, 79, - 79, 72, 128, 79, 79, 69, 128, 79, 79, 66, 79, 79, 70, 73, 76, 73, 128, - 79, 78, 85, 128, 79, 78, 83, 85, 128, 79, 78, 78, 128, 79, 78, 75, 65, - 82, 128, 79, 78, 73, 79, 78, 128, 79, 78, 69, 83, 69, 76, 70, 128, 79, - 78, 69, 45, 87, 65, 217, 79, 78, 69, 45, 84, 72, 73, 82, 84, 89, 128, 79, - 78, 69, 45, 80, 73, 69, 67, 197, 79, 78, 69, 45, 76, 73, 78, 197, 79, 78, - 69, 45, 72, 85, 78, 68, 82, 69, 68, 45, 65, 78, 68, 45, 83, 73, 88, 84, - 73, 69, 84, 72, 128, 79, 78, 67, 79, 77, 73, 78, 199, 79, 78, 65, 80, - 128, 79, 78, 45, 79, 70, 198, 79, 77, 73, 83, 83, 73, 79, 206, 79, 77, - 73, 67, 82, 79, 78, 128, 79, 77, 73, 67, 82, 79, 206, 79, 77, 69, 84, - 128, 79, 77, 69, 71, 65, 128, 79, 77, 69, 71, 193, 79, 77, 65, 76, 79, - 78, 128, 79, 76, 73, 86, 69, 128, 79, 76, 73, 71, 79, 206, 79, 76, 68, - 128, 79, 75, 84, 207, 79, 75, 65, 82, 65, 128, 79, 75, 65, 82, 193, 79, - 74, 79, 68, 128, 79, 74, 73, 66, 87, 65, 217, 79, 74, 69, 79, 78, 128, - 79, 73, 78, 128, 79, 73, 76, 128, 79, 73, 204, 79, 72, 77, 128, 79, 72, - 205, 79, 71, 82, 69, 128, 79, 71, 79, 78, 69, 75, 128, 79, 71, 79, 78, - 69, 203, 79, 71, 72, 65, 205, 79, 70, 70, 73, 67, 69, 82, 128, 79, 70, - 70, 73, 67, 69, 128, 79, 70, 70, 73, 67, 197, 79, 70, 70, 128, 79, 69, - 89, 128, 79, 69, 82, 128, 79, 69, 75, 128, 79, 69, 69, 128, 79, 68, 69, - 78, 128, 79, 68, 68, 128, 79, 68, 196, 79, 67, 84, 79, 80, 85, 83, 128, - 79, 67, 84, 79, 66, 69, 82, 128, 79, 67, 84, 69, 212, 79, 67, 84, 65, 71, - 79, 78, 65, 204, 79, 67, 84, 65, 71, 79, 78, 128, 79, 67, 210, 79, 67, - 76, 79, 67, 75, 128, 79, 67, 72, 75, 79, 77, 128, 79, 67, 67, 85, 76, 84, - 65, 84, 73, 79, 78, 128, 79, 67, 67, 76, 85, 83, 73, 79, 78, 128, 79, 66, - 83, 84, 82, 85, 67, 84, 73, 79, 78, 128, 79, 66, 83, 69, 82, 86, 69, 210, - 79, 66, 79, 76, 211, 79, 66, 79, 204, 79, 66, 79, 70, 73, 76, 73, 128, - 79, 66, 76, 73, 81, 85, 197, 79, 66, 76, 65, 75, 79, 128, 79, 66, 76, 65, - 67, 72, 75, 79, 128, 79, 66, 74, 69, 67, 212, 79, 66, 69, 76, 85, 83, - 128, 79, 66, 69, 76, 79, 83, 128, 79, 66, 128, 79, 65, 89, 128, 79, 65, - 75, 128, 79, 65, 66, 79, 65, 70, 73, 76, 73, 128, 79, 193, 79, 48, 53, - 49, 128, 79, 48, 53, 48, 66, 128, 79, 48, 53, 48, 65, 128, 79, 48, 53, - 48, 128, 79, 48, 52, 57, 128, 79, 48, 52, 56, 128, 79, 48, 52, 55, 128, - 79, 48, 52, 54, 128, 79, 48, 52, 53, 128, 79, 48, 52, 52, 128, 79, 48, - 52, 51, 128, 79, 48, 52, 50, 128, 79, 48, 52, 49, 128, 79, 48, 52, 48, - 128, 79, 48, 51, 57, 128, 79, 48, 51, 56, 128, 79, 48, 51, 55, 128, 79, - 48, 51, 54, 68, 128, 79, 48, 51, 54, 67, 128, 79, 48, 51, 54, 66, 128, - 79, 48, 51, 54, 65, 128, 79, 48, 51, 54, 128, 79, 48, 51, 53, 128, 79, - 48, 51, 52, 128, 79, 48, 51, 51, 65, 128, 79, 48, 51, 51, 128, 79, 48, - 51, 50, 128, 79, 48, 51, 49, 128, 79, 48, 51, 48, 65, 128, 79, 48, 51, - 48, 128, 79, 48, 50, 57, 65, 128, 79, 48, 50, 57, 128, 79, 48, 50, 56, - 128, 79, 48, 50, 55, 128, 79, 48, 50, 54, 128, 79, 48, 50, 53, 65, 128, - 79, 48, 50, 53, 128, 79, 48, 50, 52, 65, 128, 79, 48, 50, 52, 128, 79, - 48, 50, 51, 128, 79, 48, 50, 50, 128, 79, 48, 50, 49, 128, 79, 48, 50, - 48, 65, 128, 79, 48, 50, 48, 128, 79, 48, 49, 57, 65, 128, 79, 48, 49, - 57, 128, 79, 48, 49, 56, 128, 79, 48, 49, 55, 128, 79, 48, 49, 54, 128, - 79, 48, 49, 53, 128, 79, 48, 49, 52, 128, 79, 48, 49, 51, 128, 79, 48, - 49, 50, 128, 79, 48, 49, 49, 128, 79, 48, 49, 48, 67, 128, 79, 48, 49, - 48, 66, 128, 79, 48, 49, 48, 65, 128, 79, 48, 49, 48, 128, 79, 48, 48, - 57, 128, 79, 48, 48, 56, 128, 79, 48, 48, 55, 128, 79, 48, 48, 54, 70, - 128, 79, 48, 48, 54, 69, 128, 79, 48, 48, 54, 68, 128, 79, 48, 48, 54, - 67, 128, 79, 48, 48, 54, 66, 128, 79, 48, 48, 54, 65, 128, 79, 48, 48, - 54, 128, 79, 48, 48, 53, 65, 128, 79, 48, 48, 53, 128, 79, 48, 48, 52, - 128, 79, 48, 48, 51, 128, 79, 48, 48, 50, 128, 79, 48, 48, 49, 65, 128, - 79, 48, 48, 49, 128, 79, 45, 89, 69, 128, 79, 45, 79, 45, 73, 128, 79, - 45, 69, 128, 78, 90, 89, 88, 128, 78, 90, 89, 84, 128, 78, 90, 89, 82, - 88, 128, 78, 90, 89, 82, 128, 78, 90, 89, 80, 128, 78, 90, 89, 128, 78, - 90, 85, 88, 128, 78, 90, 85, 82, 88, 128, 78, 90, 85, 82, 128, 78, 90, - 85, 81, 128, 78, 90, 85, 80, 128, 78, 90, 85, 79, 88, 128, 78, 90, 85, - 79, 128, 78, 90, 85, 206, 78, 90, 85, 128, 78, 90, 79, 88, 128, 78, 90, - 79, 80, 128, 78, 90, 73, 88, 128, 78, 90, 73, 84, 128, 78, 90, 73, 80, - 128, 78, 90, 73, 69, 88, 128, 78, 90, 73, 69, 80, 128, 78, 90, 73, 69, - 128, 78, 90, 73, 128, 78, 90, 69, 88, 128, 78, 90, 69, 85, 77, 128, 78, - 90, 69, 128, 78, 90, 65, 88, 128, 78, 90, 65, 84, 128, 78, 90, 65, 81, - 128, 78, 90, 65, 80, 128, 78, 90, 65, 128, 78, 90, 193, 78, 89, 87, 65, - 128, 78, 89, 85, 88, 128, 78, 89, 85, 85, 128, 78, 89, 85, 84, 128, 78, - 89, 85, 80, 128, 78, 89, 85, 79, 88, 128, 78, 89, 85, 79, 80, 128, 78, - 89, 85, 79, 128, 78, 89, 85, 78, 128, 78, 89, 85, 69, 128, 78, 89, 85, - 128, 78, 89, 79, 88, 128, 78, 89, 79, 84, 128, 78, 89, 79, 80, 128, 78, - 89, 79, 79, 128, 78, 89, 79, 78, 128, 78, 89, 79, 65, 128, 78, 89, 79, - 128, 78, 89, 74, 65, 128, 78, 89, 73, 88, 128, 78, 89, 73, 84, 128, 78, - 89, 73, 212, 78, 89, 73, 211, 78, 89, 73, 210, 78, 89, 73, 80, 128, 78, - 89, 73, 78, 45, 68, 79, 128, 78, 89, 73, 78, 128, 78, 89, 73, 73, 128, - 78, 89, 73, 69, 88, 128, 78, 89, 73, 69, 84, 128, 78, 89, 73, 69, 80, - 128, 78, 89, 73, 69, 128, 78, 89, 73, 65, 75, 69, 78, 199, 78, 89, 73, - 128, 78, 89, 201, 78, 89, 72, 65, 128, 78, 89, 69, 84, 128, 78, 89, 69, - 212, 78, 89, 69, 78, 128, 78, 89, 69, 72, 128, 78, 89, 69, 200, 78, 89, - 69, 69, 128, 78, 89, 69, 128, 78, 89, 196, 78, 89, 67, 65, 128, 78, 89, - 65, 85, 128, 78, 89, 65, 74, 128, 78, 89, 65, 73, 128, 78, 89, 65, 72, - 128, 78, 89, 65, 69, 77, 65, 69, 128, 78, 89, 65, 65, 128, 78, 87, 79, - 79, 128, 78, 87, 79, 128, 78, 87, 73, 73, 128, 78, 87, 73, 128, 78, 87, - 69, 128, 78, 87, 65, 65, 128, 78, 87, 65, 128, 78, 87, 128, 78, 86, 128, - 78, 85, 88, 128, 78, 85, 85, 78, 128, 78, 85, 85, 128, 78, 85, 84, 73, - 76, 76, 85, 128, 78, 85, 84, 128, 78, 85, 212, 78, 85, 82, 88, 128, 78, - 85, 82, 128, 78, 85, 80, 128, 78, 85, 79, 88, 128, 78, 85, 79, 80, 128, - 78, 85, 79, 128, 78, 85, 78, 85, 90, 128, 78, 85, 78, 85, 218, 78, 85, - 78, 71, 128, 78, 85, 78, 65, 86, 85, 212, 78, 85, 78, 65, 86, 73, 203, - 78, 85, 78, 128, 78, 85, 206, 78, 85, 77, 69, 82, 207, 78, 85, 77, 69, - 82, 65, 84, 79, 210, 78, 85, 77, 69, 82, 65, 204, 78, 85, 77, 66, 69, 82, - 83, 128, 78, 85, 77, 66, 69, 82, 128, 78, 85, 77, 128, 78, 85, 76, 76, - 128, 78, 85, 76, 204, 78, 85, 76, 128, 78, 85, 75, 84, 65, 128, 78, 85, - 75, 84, 193, 78, 85, 69, 78, 71, 128, 78, 85, 69, 128, 78, 85, 66, 73, - 65, 206, 78, 85, 65, 69, 128, 78, 85, 49, 49, 128, 78, 85, 49, 177, 78, - 85, 48, 50, 50, 65, 128, 78, 85, 48, 50, 50, 128, 78, 85, 48, 50, 49, - 128, 78, 85, 48, 50, 48, 128, 78, 85, 48, 49, 57, 128, 78, 85, 48, 49, - 56, 65, 128, 78, 85, 48, 49, 56, 128, 78, 85, 48, 49, 55, 128, 78, 85, - 48, 49, 54, 128, 78, 85, 48, 49, 53, 128, 78, 85, 48, 49, 52, 128, 78, - 85, 48, 49, 51, 128, 78, 85, 48, 49, 50, 128, 78, 85, 48, 49, 49, 65, - 128, 78, 85, 48, 49, 49, 128, 78, 85, 48, 49, 48, 65, 128, 78, 85, 48, - 49, 48, 128, 78, 85, 48, 48, 57, 128, 78, 85, 48, 48, 56, 128, 78, 85, - 48, 48, 55, 128, 78, 85, 48, 48, 54, 128, 78, 85, 48, 48, 53, 128, 78, - 85, 48, 48, 52, 128, 78, 85, 48, 48, 51, 128, 78, 85, 48, 48, 50, 128, - 78, 85, 48, 48, 49, 128, 78, 85, 45, 51, 128, 78, 85, 45, 50, 128, 78, - 85, 45, 49, 128, 78, 84, 88, 73, 86, 128, 78, 84, 88, 65, 128, 78, 84, - 85, 85, 128, 78, 84, 85, 77, 128, 78, 84, 85, 74, 128, 78, 84, 213, 78, - 84, 83, 65, 85, 128, 78, 84, 83, 65, 128, 78, 84, 79, 81, 80, 69, 78, - 128, 78, 84, 79, 71, 128, 78, 84, 79, 199, 78, 84, 73, 69, 197, 78, 84, - 72, 65, 85, 128, 78, 84, 69, 85, 78, 71, 66, 65, 128, 78, 84, 69, 85, 77, - 128, 78, 84, 69, 78, 128, 78, 84, 69, 69, 128, 78, 84, 65, 80, 128, 78, - 84, 65, 208, 78, 84, 65, 65, 128, 78, 84, 65, 128, 78, 83, 85, 79, 212, - 78, 83, 85, 78, 128, 78, 83, 85, 77, 128, 78, 83, 79, 77, 128, 78, 83, - 73, 69, 69, 84, 128, 78, 83, 73, 69, 69, 80, 128, 78, 83, 73, 69, 69, - 128, 78, 83, 72, 85, 84, 128, 78, 83, 72, 85, 212, 78, 83, 72, 85, 79, - 80, 128, 78, 83, 72, 85, 69, 128, 78, 83, 72, 73, 69, 69, 128, 78, 83, - 72, 69, 69, 128, 78, 83, 72, 65, 81, 128, 78, 83, 72, 65, 128, 78, 83, - 69, 85, 65, 69, 78, 128, 78, 83, 69, 78, 128, 78, 83, 65, 128, 78, 82, - 89, 88, 128, 78, 82, 89, 84, 128, 78, 82, 89, 82, 88, 128, 78, 82, 89, - 82, 128, 78, 82, 89, 80, 128, 78, 82, 89, 128, 78, 82, 85, 88, 128, 78, - 82, 85, 84, 128, 78, 82, 85, 82, 88, 128, 78, 82, 85, 82, 128, 78, 82, - 85, 80, 128, 78, 82, 85, 65, 128, 78, 82, 85, 128, 78, 82, 79, 88, 128, - 78, 82, 79, 80, 128, 78, 82, 79, 128, 78, 82, 69, 88, 128, 78, 82, 69, - 84, 128, 78, 82, 69, 211, 78, 82, 69, 80, 128, 78, 82, 69, 128, 78, 82, - 65, 88, 128, 78, 82, 65, 84, 128, 78, 82, 65, 80, 128, 78, 82, 65, 128, - 78, 81, 73, 71, 128, 78, 81, 65, 128, 78, 80, 76, 65, 128, 78, 80, 65, - 128, 78, 79, 90, 72, 75, 65, 128, 78, 79, 89, 128, 78, 79, 88, 128, 78, - 79, 87, 67, 128, 78, 79, 86, 73, 76, 69, 128, 78, 79, 86, 69, 77, 66, 69, - 82, 128, 78, 79, 84, 84, 79, 128, 78, 79, 84, 69, 83, 128, 78, 79, 84, - 69, 72, 69, 65, 68, 128, 78, 79, 84, 69, 72, 69, 65, 196, 78, 79, 84, 69, - 66, 79, 79, 75, 128, 78, 79, 84, 69, 66, 79, 79, 203, 78, 79, 84, 69, - 128, 78, 79, 84, 197, 78, 79, 84, 67, 72, 69, 196, 78, 79, 84, 67, 72, - 128, 78, 79, 84, 65, 84, 73, 79, 206, 78, 79, 84, 128, 78, 79, 212, 78, - 79, 83, 69, 128, 78, 79, 83, 197, 78, 79, 82, 84, 72, 87, 69, 83, 212, - 78, 79, 82, 84, 72, 69, 82, 206, 78, 79, 82, 84, 72, 69, 65, 83, 84, 45, - 80, 79, 73, 78, 84, 73, 78, 199, 78, 79, 82, 77, 65, 204, 78, 79, 82, 68, - 73, 195, 78, 79, 210, 78, 79, 80, 128, 78, 79, 79, 78, 85, 128, 78, 79, - 79, 128, 78, 79, 78, 70, 79, 82, 75, 73, 78, 71, 128, 78, 79, 78, 45, 80, - 79, 84, 65, 66, 76, 197, 78, 79, 78, 45, 74, 79, 73, 78, 69, 82, 128, 78, - 79, 78, 45, 66, 82, 69, 65, 75, 73, 78, 199, 78, 79, 78, 128, 78, 79, 77, - 73, 83, 77, 193, 78, 79, 77, 73, 78, 65, 204, 78, 79, 75, 72, 85, 75, - 128, 78, 79, 68, 69, 128, 78, 79, 65, 128, 78, 79, 45, 66, 82, 69, 65, - 203, 78, 79, 45, 53, 128, 78, 79, 45, 52, 128, 78, 79, 45, 51, 128, 78, - 79, 45, 50, 128, 78, 79, 45, 49, 128, 78, 78, 85, 85, 128, 78, 78, 85, - 128, 78, 78, 79, 79, 128, 78, 78, 78, 85, 85, 128, 78, 78, 78, 85, 128, - 78, 78, 78, 79, 79, 128, 78, 78, 78, 79, 128, 78, 78, 78, 73, 73, 128, - 78, 78, 78, 73, 128, 78, 78, 78, 69, 69, 128, 78, 78, 78, 69, 128, 78, - 78, 78, 65, 85, 128, 78, 78, 78, 65, 73, 128, 78, 78, 78, 65, 65, 128, - 78, 78, 78, 65, 128, 78, 78, 78, 128, 78, 78, 72, 65, 128, 78, 78, 71, - 79, 79, 128, 78, 78, 71, 79, 128, 78, 78, 71, 73, 73, 128, 78, 78, 71, - 73, 128, 78, 78, 71, 65, 65, 128, 78, 78, 71, 65, 128, 78, 78, 71, 128, - 78, 78, 66, 83, 80, 128, 78, 77, 128, 78, 76, 65, 85, 128, 78, 76, 48, - 50, 48, 128, 78, 76, 48, 49, 57, 128, 78, 76, 48, 49, 56, 128, 78, 76, - 48, 49, 55, 65, 128, 78, 76, 48, 49, 55, 128, 78, 76, 48, 49, 54, 128, - 78, 76, 48, 49, 53, 128, 78, 76, 48, 49, 52, 128, 78, 76, 48, 49, 51, - 128, 78, 76, 48, 49, 50, 128, 78, 76, 48, 49, 49, 128, 78, 76, 48, 49, - 48, 128, 78, 76, 48, 48, 57, 128, 78, 76, 48, 48, 56, 128, 78, 76, 48, - 48, 55, 128, 78, 76, 48, 48, 54, 128, 78, 76, 48, 48, 53, 65, 128, 78, - 76, 48, 48, 53, 128, 78, 76, 48, 48, 52, 128, 78, 76, 48, 48, 51, 128, - 78, 76, 48, 48, 50, 128, 78, 76, 48, 48, 49, 128, 78, 76, 128, 78, 75, - 79, 77, 128, 78, 75, 207, 78, 75, 73, 78, 68, 73, 128, 78, 75, 65, 85, - 128, 78, 75, 65, 65, 82, 65, 69, 128, 78, 75, 65, 128, 78, 74, 89, 88, - 128, 78, 74, 89, 84, 128, 78, 74, 89, 82, 88, 128, 78, 74, 89, 82, 128, - 78, 74, 89, 80, 128, 78, 74, 89, 128, 78, 74, 85, 88, 128, 78, 74, 85, - 82, 88, 128, 78, 74, 85, 82, 128, 78, 74, 85, 81, 65, 128, 78, 74, 85, - 80, 128, 78, 74, 85, 79, 88, 128, 78, 74, 85, 79, 128, 78, 74, 85, 69, - 81, 128, 78, 74, 85, 65, 69, 128, 78, 74, 85, 128, 78, 74, 79, 88, 128, - 78, 74, 79, 84, 128, 78, 74, 79, 80, 128, 78, 74, 79, 79, 128, 78, 74, - 79, 128, 78, 74, 73, 88, 128, 78, 74, 73, 84, 128, 78, 74, 73, 80, 128, - 78, 74, 73, 69, 88, 128, 78, 74, 73, 69, 84, 128, 78, 74, 73, 69, 80, - 128, 78, 74, 73, 69, 69, 128, 78, 74, 73, 69, 128, 78, 74, 73, 128, 78, - 74, 201, 78, 74, 69, 85, 88, 128, 78, 74, 69, 85, 84, 128, 78, 74, 69, - 85, 65, 69, 78, 65, 128, 78, 74, 69, 85, 65, 69, 77, 128, 78, 74, 69, 69, - 69, 69, 128, 78, 74, 69, 69, 128, 78, 74, 69, 197, 78, 74, 69, 128, 78, - 74, 65, 81, 128, 78, 74, 65, 80, 128, 78, 74, 65, 69, 77, 76, 73, 128, - 78, 74, 65, 69, 77, 128, 78, 74, 65, 65, 128, 78, 73, 90, 75, 207, 78, - 73, 88, 128, 78, 73, 84, 82, 69, 128, 78, 73, 83, 65, 71, 128, 78, 73, - 82, 85, 71, 85, 128, 78, 73, 80, 128, 78, 73, 78, 84, 72, 128, 78, 73, - 78, 74, 65, 128, 78, 73, 78, 69, 84, 89, 128, 78, 73, 78, 69, 84, 217, - 78, 73, 78, 69, 84, 69, 69, 78, 128, 78, 73, 78, 69, 84, 69, 69, 206, 78, - 73, 78, 69, 45, 84, 72, 73, 82, 84, 89, 128, 78, 73, 78, 69, 45, 76, 73, - 75, 197, 78, 73, 78, 197, 78, 73, 78, 68, 65, 50, 128, 78, 73, 78, 68, - 65, 178, 78, 73, 78, 57, 128, 78, 73, 78, 128, 78, 73, 77, 128, 78, 73, - 205, 78, 73, 75, 79, 76, 83, 66, 85, 82, 199, 78, 73, 75, 72, 65, 72, 73, - 84, 128, 78, 73, 75, 65, 72, 73, 84, 128, 78, 73, 75, 65, 128, 78, 73, - 72, 83, 72, 86, 65, 83, 65, 128, 78, 73, 71, 73, 68, 65, 77, 73, 78, 128, - 78, 73, 71, 73, 68, 65, 69, 83, 72, 128, 78, 73, 71, 72, 84, 128, 78, 73, - 71, 72, 212, 78, 73, 71, 71, 65, 72, 73, 84, 65, 128, 78, 73, 69, 88, - 128, 78, 73, 69, 85, 78, 45, 84, 73, 75, 69, 85, 84, 128, 78, 73, 69, 85, - 78, 45, 84, 72, 73, 69, 85, 84, 72, 128, 78, 73, 69, 85, 78, 45, 83, 73, - 79, 83, 128, 78, 73, 69, 85, 78, 45, 82, 73, 69, 85, 76, 128, 78, 73, 69, - 85, 78, 45, 80, 73, 69, 85, 80, 128, 78, 73, 69, 85, 78, 45, 80, 65, 78, - 83, 73, 79, 83, 128, 78, 73, 69, 85, 78, 45, 75, 73, 89, 69, 79, 75, 128, - 78, 73, 69, 85, 78, 45, 72, 73, 69, 85, 72, 128, 78, 73, 69, 85, 78, 45, - 67, 73, 69, 85, 67, 128, 78, 73, 69, 85, 78, 45, 67, 72, 73, 69, 85, 67, - 72, 128, 78, 73, 69, 85, 206, 78, 73, 69, 80, 128, 78, 73, 69, 128, 78, - 73, 66, 128, 78, 73, 65, 128, 78, 73, 50, 128, 78, 73, 45, 84, 69, 128, - 78, 73, 45, 55, 128, 78, 73, 45, 54, 128, 78, 73, 45, 53, 128, 78, 73, - 45, 52, 128, 78, 73, 45, 51, 128, 78, 73, 45, 50, 128, 78, 73, 45, 49, - 128, 78, 72, 85, 69, 128, 78, 72, 74, 65, 128, 78, 72, 65, 89, 128, 78, - 72, 128, 78, 71, 89, 69, 128, 78, 71, 86, 69, 128, 78, 71, 85, 85, 128, - 78, 71, 85, 79, 88, 128, 78, 71, 85, 79, 84, 128, 78, 71, 85, 79, 128, - 78, 71, 85, 65, 78, 128, 78, 71, 85, 65, 69, 84, 128, 78, 71, 85, 65, 69, - 128, 78, 71, 79, 88, 128, 78, 71, 79, 85, 128, 78, 71, 79, 213, 78, 71, - 79, 84, 128, 78, 71, 79, 81, 128, 78, 71, 79, 80, 128, 78, 71, 79, 78, - 128, 78, 71, 79, 77, 128, 78, 71, 79, 69, 72, 128, 78, 71, 79, 69, 200, - 78, 71, 207, 78, 71, 75, 89, 69, 69, 128, 78, 71, 75, 87, 65, 69, 78, - 128, 78, 71, 75, 85, 80, 128, 78, 71, 75, 85, 78, 128, 78, 71, 75, 85, - 77, 128, 78, 71, 75, 85, 69, 78, 90, 69, 85, 77, 128, 78, 71, 75, 85, - 197, 78, 71, 75, 73, 78, 68, 201, 78, 71, 75, 73, 69, 69, 128, 78, 71, - 75, 69, 85, 88, 128, 78, 71, 75, 69, 85, 82, 73, 128, 78, 71, 75, 69, 85, - 65, 69, 81, 128, 78, 71, 75, 69, 85, 65, 69, 77, 128, 78, 71, 75, 65, 81, - 128, 78, 71, 75, 65, 80, 128, 78, 71, 75, 65, 65, 77, 73, 128, 78, 71, - 75, 65, 128, 78, 71, 73, 69, 88, 128, 78, 71, 73, 69, 80, 128, 78, 71, - 73, 69, 128, 78, 71, 72, 65, 128, 78, 71, 71, 87, 65, 69, 78, 128, 78, - 71, 71, 85, 82, 65, 69, 128, 78, 71, 71, 85, 80, 128, 78, 71, 71, 85, 79, - 81, 128, 78, 71, 71, 85, 79, 209, 78, 71, 71, 85, 79, 78, 128, 78, 71, - 71, 85, 79, 77, 128, 78, 71, 71, 85, 77, 128, 78, 71, 71, 85, 69, 69, 84, - 128, 78, 71, 71, 85, 65, 69, 83, 72, 65, 197, 78, 71, 71, 85, 65, 69, - 206, 78, 71, 71, 85, 65, 128, 78, 71, 71, 85, 128, 78, 71, 71, 79, 79, - 128, 78, 71, 71, 79, 128, 78, 71, 71, 73, 128, 78, 71, 71, 69, 85, 88, - 128, 78, 71, 71, 69, 85, 65, 69, 84, 128, 78, 71, 71, 69, 85, 65, 69, - 128, 78, 71, 71, 69, 213, 78, 71, 71, 69, 78, 128, 78, 71, 71, 69, 69, - 84, 128, 78, 71, 71, 69, 69, 69, 69, 128, 78, 71, 71, 69, 69, 128, 78, - 71, 71, 69, 128, 78, 71, 71, 65, 80, 128, 78, 71, 71, 65, 65, 77, 65, 69, - 128, 78, 71, 71, 65, 65, 77, 128, 78, 71, 71, 65, 65, 128, 78, 71, 71, - 128, 78, 71, 69, 88, 128, 78, 71, 69, 85, 82, 69, 85, 84, 128, 78, 71, - 69, 80, 128, 78, 71, 69, 78, 128, 78, 71, 69, 69, 128, 78, 71, 69, 65, - 68, 65, 76, 128, 78, 71, 65, 88, 128, 78, 71, 65, 85, 128, 78, 71, 65, - 84, 128, 78, 71, 65, 211, 78, 71, 65, 81, 128, 78, 71, 65, 80, 128, 78, - 71, 65, 78, 71, 85, 128, 78, 71, 65, 78, 128, 78, 71, 65, 73, 128, 78, - 71, 65, 72, 128, 78, 71, 65, 65, 73, 128, 78, 71, 193, 78, 70, 128, 78, - 69, 88, 212, 78, 69, 88, 128, 78, 69, 87, 83, 80, 65, 80, 69, 82, 128, - 78, 69, 87, 76, 73, 78, 69, 128, 78, 69, 87, 76, 73, 78, 197, 78, 69, 87, - 193, 78, 69, 87, 128, 78, 69, 215, 78, 69, 85, 84, 82, 65, 76, 128, 78, - 69, 85, 84, 82, 65, 204, 78, 69, 85, 84, 69, 82, 128, 78, 69, 84, 87, 79, - 82, 75, 69, 196, 78, 69, 212, 78, 69, 83, 84, 73, 78, 199, 78, 69, 83, - 84, 69, 196, 78, 69, 83, 84, 128, 78, 69, 83, 212, 78, 69, 83, 83, 85, - 83, 128, 78, 69, 82, 196, 78, 69, 81, 85, 68, 65, 65, 128, 78, 69, 80, - 84, 85, 78, 69, 128, 78, 69, 80, 84, 85, 78, 197, 78, 69, 80, 79, 83, 84, - 79, 89, 65, 78, 78, 65, 89, 65, 128, 78, 69, 80, 128, 78, 69, 79, 128, - 78, 69, 207, 78, 69, 78, 79, 69, 128, 78, 69, 78, 65, 78, 79, 128, 78, - 69, 78, 128, 78, 69, 77, 75, 65, 128, 78, 69, 76, 128, 78, 69, 73, 84, - 72, 69, 210, 78, 69, 71, 65, 84, 73, 86, 197, 78, 69, 71, 65, 84, 73, 79, - 206, 78, 69, 71, 65, 84, 69, 196, 78, 69, 69, 68, 76, 69, 128, 78, 69, - 67, 75, 84, 73, 69, 128, 78, 69, 67, 75, 128, 78, 69, 66, 69, 78, 83, 84, - 73, 77, 77, 69, 128, 78, 69, 45, 75, 79, 128, 78, 68, 85, 88, 128, 78, - 68, 85, 84, 128, 78, 68, 85, 82, 88, 128, 78, 68, 85, 82, 128, 78, 68, - 85, 80, 128, 78, 68, 85, 78, 128, 78, 68, 213, 78, 68, 79, 88, 128, 78, - 68, 79, 84, 128, 78, 68, 79, 80, 128, 78, 68, 79, 79, 128, 78, 68, 79, - 78, 128, 78, 68, 79, 77, 66, 85, 128, 78, 68, 79, 76, 197, 78, 68, 73, - 88, 128, 78, 68, 73, 84, 128, 78, 68, 73, 81, 128, 78, 68, 73, 80, 128, - 78, 68, 73, 69, 88, 128, 78, 68, 73, 69, 128, 78, 68, 73, 68, 65, 128, - 78, 68, 73, 65, 81, 128, 78, 68, 69, 88, 128, 78, 68, 69, 85, 88, 128, - 78, 68, 69, 85, 84, 128, 78, 68, 69, 85, 65, 69, 82, 69, 69, 128, 78, 68, - 69, 80, 128, 78, 68, 69, 69, 128, 78, 68, 69, 128, 78, 68, 65, 88, 128, - 78, 68, 65, 84, 128, 78, 68, 65, 80, 128, 78, 68, 65, 77, 128, 78, 68, - 65, 65, 78, 71, 71, 69, 85, 65, 69, 84, 128, 78, 68, 65, 65, 128, 78, 68, - 65, 193, 78, 67, 72, 65, 85, 128, 78, 67, 65, 128, 78, 66, 89, 88, 128, - 78, 66, 89, 84, 128, 78, 66, 89, 82, 88, 128, 78, 66, 89, 82, 128, 78, - 66, 89, 80, 128, 78, 66, 89, 128, 78, 66, 85, 88, 128, 78, 66, 85, 84, - 128, 78, 66, 85, 82, 88, 128, 78, 66, 85, 82, 128, 78, 66, 85, 80, 128, - 78, 66, 85, 128, 78, 66, 79, 88, 128, 78, 66, 79, 84, 128, 78, 66, 79, - 80, 128, 78, 66, 79, 128, 78, 66, 73, 88, 128, 78, 66, 73, 84, 128, 78, - 66, 73, 80, 128, 78, 66, 73, 69, 88, 128, 78, 66, 73, 69, 80, 128, 78, - 66, 73, 69, 128, 78, 66, 73, 128, 78, 66, 72, 128, 78, 66, 65, 88, 128, - 78, 66, 65, 84, 128, 78, 66, 65, 80, 128, 78, 66, 65, 128, 78, 65, 90, - 65, 210, 78, 65, 89, 65, 78, 78, 65, 128, 78, 65, 89, 128, 78, 65, 88, - 73, 65, 206, 78, 65, 88, 128, 78, 65, 85, 84, 72, 83, 128, 78, 65, 85, - 83, 69, 65, 84, 69, 196, 78, 65, 85, 68, 73, 218, 78, 65, 84, 85, 82, 65, - 204, 78, 65, 84, 84, 73, 76, 73, 203, 78, 65, 84, 73, 79, 78, 65, 204, - 78, 65, 83, 75, 65, 80, 201, 78, 65, 83, 72, 73, 128, 78, 65, 83, 65, 76, - 73, 90, 69, 196, 78, 65, 83, 65, 76, 73, 90, 65, 84, 73, 79, 78, 128, 78, - 65, 83, 65, 76, 73, 90, 65, 84, 73, 79, 206, 78, 65, 83, 65, 204, 78, 65, - 82, 82, 79, 215, 78, 65, 82, 128, 78, 65, 81, 128, 78, 65, 79, 211, 78, - 65, 78, 83, 65, 78, 65, 81, 128, 78, 65, 78, 71, 77, 79, 78, 84, 72, 79, - 128, 78, 65, 78, 68, 73, 78, 65, 71, 65, 82, 201, 78, 65, 78, 68, 128, - 78, 65, 78, 65, 128, 78, 65, 77, 69, 128, 78, 65, 77, 197, 78, 65, 77, - 50, 128, 78, 65, 75, 65, 65, 82, 193, 78, 65, 75, 128, 78, 65, 73, 82, - 193, 78, 65, 73, 204, 78, 65, 71, 82, 201, 78, 65, 71, 65, 82, 128, 78, - 65, 71, 65, 128, 78, 65, 71, 193, 78, 65, 71, 128, 78, 65, 199, 78, 65, - 69, 128, 78, 65, 66, 76, 65, 128, 78, 65, 66, 65, 84, 65, 69, 65, 206, - 78, 65, 65, 83, 73, 75, 89, 65, 89, 65, 128, 78, 65, 65, 75, 83, 73, 75, - 89, 65, 89, 65, 128, 78, 65, 65, 73, 128, 78, 65, 193, 78, 65, 52, 128, - 78, 65, 50, 128, 78, 65, 45, 57, 128, 78, 65, 45, 56, 128, 78, 65, 45, - 55, 128, 78, 65, 45, 54, 128, 78, 65, 45, 53, 128, 78, 65, 45, 52, 128, - 78, 65, 45, 51, 128, 78, 65, 45, 50, 128, 78, 65, 45, 49, 128, 78, 48, - 52, 50, 128, 78, 48, 52, 49, 128, 78, 48, 52, 48, 128, 78, 48, 51, 57, - 128, 78, 48, 51, 56, 128, 78, 48, 51, 55, 65, 128, 78, 48, 51, 55, 128, - 78, 48, 51, 54, 128, 78, 48, 51, 53, 65, 128, 78, 48, 51, 53, 128, 78, - 48, 51, 52, 65, 128, 78, 48, 51, 52, 128, 78, 48, 51, 51, 65, 128, 78, - 48, 51, 51, 128, 78, 48, 51, 50, 128, 78, 48, 51, 49, 128, 78, 48, 51, - 48, 128, 78, 48, 50, 57, 128, 78, 48, 50, 56, 128, 78, 48, 50, 55, 128, - 78, 48, 50, 54, 128, 78, 48, 50, 53, 65, 128, 78, 48, 50, 53, 128, 78, - 48, 50, 52, 128, 78, 48, 50, 51, 128, 78, 48, 50, 50, 128, 78, 48, 50, - 49, 128, 78, 48, 50, 48, 128, 78, 48, 49, 57, 128, 78, 48, 49, 56, 66, - 128, 78, 48, 49, 56, 65, 128, 78, 48, 49, 56, 128, 78, 48, 49, 55, 128, - 78, 48, 49, 54, 128, 78, 48, 49, 53, 128, 78, 48, 49, 52, 128, 78, 48, - 49, 51, 128, 78, 48, 49, 50, 128, 78, 48, 49, 49, 128, 78, 48, 49, 48, - 128, 78, 48, 48, 57, 128, 78, 48, 48, 56, 128, 78, 48, 48, 55, 128, 78, - 48, 48, 54, 128, 78, 48, 48, 53, 128, 78, 48, 48, 52, 128, 78, 48, 48, - 51, 128, 78, 48, 48, 50, 128, 78, 48, 48, 49, 128, 78, 45, 77, 85, 45, - 77, 79, 45, 50, 128, 78, 45, 77, 85, 45, 77, 79, 45, 49, 128, 78, 45, 67, - 82, 69, 197, 78, 45, 65, 82, 217, 77, 90, 128, 77, 89, 88, 128, 77, 89, - 84, 128, 77, 89, 83, 76, 73, 84, 69, 128, 77, 89, 80, 128, 77, 89, 65, - 128, 77, 89, 193, 77, 87, 79, 79, 128, 77, 87, 79, 128, 77, 87, 73, 73, - 128, 77, 87, 73, 128, 77, 87, 69, 69, 128, 77, 87, 69, 128, 77, 87, 65, - 65, 128, 77, 87, 65, 128, 77, 87, 128, 77, 215, 77, 86, 83, 128, 77, 86, - 79, 80, 128, 77, 86, 73, 128, 77, 86, 69, 85, 65, 69, 78, 71, 65, 77, - 128, 77, 86, 128, 77, 214, 77, 85, 88, 128, 77, 85, 85, 86, 85, 90, 72, - 65, 75, 75, 85, 128, 77, 85, 85, 83, 73, 75, 65, 84, 79, 65, 78, 128, 77, - 85, 85, 82, 68, 72, 65, 74, 193, 77, 85, 85, 128, 77, 85, 84, 72, 65, 76, - 73, 89, 65, 128, 77, 85, 84, 128, 77, 85, 83, 73, 67, 128, 77, 85, 83, - 73, 195, 77, 85, 83, 72, 82, 79, 79, 77, 128, 77, 85, 83, 72, 51, 128, - 77, 85, 83, 72, 179, 77, 85, 83, 72, 128, 77, 85, 83, 200, 77, 85, 83, - 128, 77, 85, 82, 88, 128, 77, 85, 82, 71, 85, 50, 128, 77, 85, 82, 69, - 128, 77, 85, 82, 68, 65, 128, 77, 85, 82, 68, 193, 77, 85, 82, 128, 77, - 85, 81, 68, 65, 77, 128, 77, 85, 80, 128, 77, 85, 79, 88, 128, 77, 85, - 79, 84, 128, 77, 85, 79, 80, 128, 77, 85, 79, 77, 65, 69, 128, 77, 85, - 79, 128, 77, 85, 78, 83, 85, 66, 128, 77, 85, 78, 68, 65, 82, 201, 77, - 85, 78, 65, 72, 128, 77, 85, 78, 128, 77, 85, 76, 84, 73, 83, 69, 84, + 67, 197, 80, 68, 73, 128, 80, 68, 70, 128, 80, 68, 128, 80, 67, 128, 80, + 65, 90, 69, 82, 128, 80, 65, 89, 69, 82, 79, 75, 128, 80, 65, 89, 65, 78, + 78, 65, 128, 80, 65, 89, 128, 80, 65, 88, 128, 80, 65, 87, 78, 128, 80, + 65, 87, 206, 80, 65, 215, 80, 65, 86, 73, 89, 65, 78, 73, 128, 80, 65, + 85, 83, 197, 80, 65, 85, 75, 128, 80, 65, 85, 128, 80, 65, 213, 80, 65, + 84, 84, 217, 80, 65, 84, 84, 69, 82, 78, 128, 80, 65, 84, 72, 65, 77, 65, + 83, 65, 84, 128, 80, 65, 84, 72, 65, 75, 75, 85, 128, 80, 65, 84, 200, + 80, 65, 84, 65, 75, 128, 80, 65, 84, 65, 72, 128, 80, 65, 84, 128, 80, + 65, 83, 85, 81, 128, 80, 65, 83, 83, 80, 79, 82, 212, 80, 65, 83, 83, 73, + 86, 69, 45, 80, 85, 76, 76, 45, 85, 80, 45, 79, 85, 84, 80, 85, 212, 80, + 65, 83, 83, 73, 86, 69, 45, 80, 85, 76, 76, 45, 68, 79, 87, 78, 45, 79, + 85, 84, 80, 85, 212, 80, 65, 83, 83, 73, 77, 66, 65, 78, 71, 128, 80, 65, + 83, 83, 69, 78, 71, 69, 210, 80, 65, 83, 83, 69, 196, 80, 65, 83, 72, 84, + 65, 128, 80, 65, 83, 72, 65, 69, 128, 80, 65, 83, 69, 81, 128, 80, 65, + 83, 65, 78, 71, 65, 206, 80, 65, 82, 85, 77, 128, 80, 65, 82, 84, 217, + 80, 65, 82, 84, 78, 69, 82, 83, 72, 73, 208, 80, 65, 82, 84, 73, 65, 76, + 76, 89, 45, 82, 69, 67, 89, 67, 76, 69, 196, 80, 65, 82, 84, 73, 65, 204, + 80, 65, 82, 84, 72, 73, 65, 206, 80, 65, 82, 212, 80, 65, 82, 82, 79, 84, + 128, 80, 65, 82, 75, 128, 80, 65, 82, 73, 67, 72, 79, 78, 128, 80, 65, + 82, 69, 83, 84, 73, 71, 77, 69, 78, 79, 206, 80, 65, 82, 69, 82, 69, 78, + 128, 80, 65, 82, 69, 78, 84, 72, 69, 83, 73, 83, 128, 80, 65, 82, 69, 78, + 84, 72, 69, 83, 73, 211, 80, 65, 82, 69, 78, 84, 72, 69, 83, 69, 211, 80, + 65, 82, 65, 80, 72, 82, 65, 83, 197, 80, 65, 82, 65, 76, 76, 69, 76, 79, + 71, 82, 65, 77, 128, 80, 65, 82, 65, 76, 76, 69, 76, 128, 80, 65, 82, 65, + 76, 76, 69, 204, 80, 65, 82, 65, 75, 76, 73, 84, 73, 75, 73, 128, 80, 65, + 82, 65, 75, 76, 73, 84, 73, 75, 201, 80, 65, 82, 65, 75, 76, 73, 84, 128, + 80, 65, 82, 65, 75, 65, 76, 69, 83, 77, 193, 80, 65, 82, 65, 71, 82, 65, + 80, 72, 85, 211, 80, 65, 82, 65, 71, 82, 65, 80, 72, 79, 83, 128, 80, 65, + 82, 65, 71, 82, 65, 80, 72, 128, 80, 65, 82, 65, 71, 82, 65, 80, 200, 80, + 65, 82, 65, 67, 72, 85, 84, 69, 128, 80, 65, 82, 65, 128, 80, 65, 82, + 128, 80, 65, 80, 89, 82, 85, 83, 128, 80, 65, 80, 69, 82, 67, 76, 73, 80, + 83, 128, 80, 65, 80, 69, 82, 67, 76, 73, 80, 128, 80, 65, 80, 69, 82, + 128, 80, 65, 80, 69, 210, 80, 65, 80, 128, 80, 65, 208, 80, 65, 207, 80, + 65, 78, 89, 85, 75, 85, 128, 80, 65, 78, 89, 73, 75, 85, 128, 80, 65, 78, + 89, 69, 67, 69, 75, 128, 80, 65, 78, 89, 65, 78, 71, 71, 65, 128, 80, 65, + 78, 89, 65, 75, 82, 65, 128, 80, 65, 78, 84, 73, 128, 80, 65, 78, 84, + 201, 80, 65, 78, 83, 73, 79, 83, 45, 80, 73, 69, 85, 80, 128, 80, 65, 78, + 83, 73, 79, 83, 45, 75, 65, 80, 89, 69, 79, 85, 78, 80, 73, 69, 85, 80, + 128, 80, 65, 78, 79, 78, 71, 79, 78, 65, 78, 128, 80, 65, 78, 79, 76, 79, + 78, 71, 128, 80, 65, 78, 71, 87, 73, 83, 65, 68, 128, 80, 65, 78, 71, 82, + 65, 78, 71, 75, 69, 80, 128, 80, 65, 78, 71, 79, 76, 65, 84, 128, 80, 65, + 78, 71, 76, 79, 78, 71, 128, 80, 65, 78, 71, 76, 65, 89, 65, 82, 128, 80, + 65, 78, 71, 75, 79, 78, 128, 80, 65, 78, 71, 75, 65, 84, 128, 80, 65, 78, + 71, 72, 85, 76, 85, 128, 80, 65, 78, 71, 128, 80, 65, 78, 69, 85, 76, 69, + 85, 78, 71, 128, 80, 65, 78, 68, 193, 80, 65, 78, 67, 65, 75, 69, 83, + 128, 80, 65, 78, 65, 77, 128, 80, 65, 78, 65, 69, 76, 65, 69, 78, 71, + 128, 80, 65, 78, 128, 80, 65, 206, 80, 65, 77, 85, 78, 71, 75, 65, 72, + 128, 80, 65, 77, 85, 68, 80, 79, 68, 128, 80, 65, 77, 83, 72, 65, 69, + 128, 80, 65, 77, 80, 72, 89, 76, 73, 65, 206, 80, 65, 77, 73, 78, 71, 75, + 65, 76, 128, 80, 65, 77, 69, 80, 69, 84, 128, 80, 65, 77, 69, 78, 69, 78, + 71, 128, 80, 65, 77, 65, 68, 65, 128, 80, 65, 77, 65, 68, 193, 80, 65, + 77, 65, 65, 69, 72, 128, 80, 65, 76, 85, 84, 65, 128, 80, 65, 76, 79, 67, + 72, 75, 65, 128, 80, 65, 76, 77, 89, 82, 69, 78, 197, 80, 65, 76, 77, + 211, 80, 65, 76, 77, 128, 80, 65, 76, 205, 80, 65, 76, 76, 65, 87, 65, + 128, 80, 65, 76, 76, 65, 83, 128, 80, 65, 76, 75, 65, 128, 80, 65, 76, + 201, 80, 65, 76, 69, 84, 84, 69, 128, 80, 65, 76, 65, 85, 78, 199, 80, + 65, 76, 65, 84, 65, 76, 73, 90, 69, 196, 80, 65, 76, 65, 84, 65, 76, 73, + 90, 65, 84, 73, 79, 78, 128, 80, 65, 76, 65, 84, 65, 204, 80, 65, 75, 80, + 65, 203, 80, 65, 73, 89, 65, 78, 78, 79, 73, 128, 80, 65, 73, 82, 84, 72, + 82, 65, 128, 80, 65, 73, 82, 69, 196, 80, 65, 73, 78, 84, 66, 82, 85, 83, + 72, 128, 80, 65, 73, 128, 80, 65, 72, 76, 65, 86, 201, 80, 65, 72, 128, + 80, 65, 71, 79, 68, 65, 128, 80, 65, 71, 69, 83, 128, 80, 65, 71, 69, 82, + 128, 80, 65, 71, 197, 80, 65, 68, 77, 193, 80, 65, 68, 68, 76, 197, 80, + 65, 68, 68, 73, 78, 199, 80, 65, 68, 193, 80, 65, 68, 128, 80, 65, 67, + 75, 73, 78, 71, 128, 80, 65, 67, 75, 65, 71, 69, 128, 80, 65, 65, 84, 85, + 128, 80, 65, 65, 83, 69, 78, 84, 79, 128, 80, 65, 65, 82, 65, 77, 128, + 80, 65, 65, 82, 65, 69, 128, 80, 65, 65, 77, 128, 80, 65, 65, 73, 128, + 80, 65, 65, 45, 80, 73, 76, 76, 65, 128, 80, 65, 65, 128, 80, 50, 128, + 80, 48, 49, 49, 128, 80, 48, 49, 48, 128, 80, 48, 48, 57, 128, 80, 48, + 48, 56, 128, 80, 48, 48, 55, 128, 80, 48, 48, 54, 128, 80, 48, 48, 53, + 128, 80, 48, 48, 52, 128, 80, 48, 48, 51, 65, 128, 80, 48, 48, 51, 128, + 80, 48, 48, 50, 128, 80, 48, 48, 49, 65, 128, 80, 48, 48, 49, 128, 79, + 90, 128, 79, 89, 83, 84, 69, 82, 128, 79, 89, 82, 65, 78, 73, 83, 77, + 193, 79, 89, 65, 78, 78, 65, 128, 79, 88, 73, 65, 128, 79, 88, 73, 193, + 79, 88, 69, 73, 65, 201, 79, 88, 69, 73, 193, 79, 87, 76, 128, 79, 86, + 69, 82, 83, 84, 82, 85, 67, 203, 79, 86, 69, 82, 82, 73, 68, 69, 128, 79, + 86, 69, 82, 76, 79, 78, 199, 79, 86, 69, 82, 76, 73, 78, 69, 128, 79, 86, + 69, 82, 76, 65, 89, 128, 79, 86, 69, 82, 76, 65, 217, 79, 86, 69, 82, 76, + 65, 80, 80, 73, 78, 199, 79, 86, 69, 82, 76, 65, 80, 128, 79, 86, 69, 82, + 76, 65, 73, 68, 128, 79, 86, 69, 82, 76, 65, 73, 196, 79, 86, 69, 82, 72, + 69, 65, 84, 69, 196, 79, 86, 69, 82, 66, 65, 82, 128, 79, 86, 65, 76, + 128, 79, 86, 65, 204, 79, 85, 84, 76, 73, 78, 69, 196, 79, 85, 84, 76, + 73, 78, 69, 128, 79, 85, 84, 69, 210, 79, 85, 84, 66, 79, 216, 79, 85, + 78, 75, 73, 193, 79, 85, 78, 67, 69, 128, 79, 85, 78, 67, 197, 79, 84, + 85, 128, 79, 84, 84, 79, 77, 65, 206, 79, 84, 84, 69, 82, 128, 79, 84, + 84, 65, 86, 193, 79, 84, 84, 128, 79, 84, 83, 69, 67, 72, 75, 65, 128, + 79, 84, 72, 69, 82, 211, 79, 84, 72, 69, 210, 79, 84, 72, 65, 76, 65, + 206, 79, 84, 72, 65, 76, 128, 79, 83, 79, 75, 65, 128, 79, 83, 79, 75, + 193, 79, 83, 77, 65, 78, 89, 193, 79, 83, 67, 128, 79, 83, 65, 71, 197, + 79, 82, 84, 72, 79, 71, 79, 78, 65, 204, 79, 82, 84, 72, 79, 68, 79, 216, + 79, 82, 78, 65, 84, 197, 79, 82, 78, 65, 77, 69, 78, 84, 83, 128, 79, 82, + 78, 65, 77, 69, 78, 84, 128, 79, 82, 78, 65, 77, 69, 78, 212, 79, 82, 75, + 72, 79, 206, 79, 82, 73, 89, 193, 79, 82, 73, 71, 73, 78, 65, 204, 79, + 82, 73, 71, 73, 78, 128, 79, 82, 69, 45, 50, 128, 79, 82, 68, 73, 78, 65, + 204, 79, 82, 68, 69, 210, 79, 82, 67, 72, 73, 68, 128, 79, 82, 65, 78, + 71, 85, 84, 65, 78, 128, 79, 82, 65, 78, 71, 197, 79, 80, 84, 73, 79, + 206, 79, 80, 84, 73, 67, 65, 204, 79, 80, 80, 82, 69, 83, 83, 73, 79, 78, + 128, 79, 80, 80, 79, 83, 73, 84, 73, 79, 78, 128, 79, 80, 80, 79, 83, 73, + 78, 199, 79, 80, 80, 79, 83, 69, 128, 79, 80, 72, 73, 85, 67, 72, 85, 83, + 128, 79, 80, 69, 82, 65, 84, 79, 82, 128, 79, 80, 69, 82, 65, 84, 79, + 210, 79, 80, 69, 82, 65, 84, 73, 78, 199, 79, 80, 69, 78, 73, 78, 199, + 79, 80, 69, 78, 45, 80, 128, 79, 80, 69, 78, 45, 79, 85, 84, 76, 73, 78, + 69, 196, 79, 80, 69, 78, 45, 79, 128, 79, 80, 69, 78, 45, 207, 79, 80, + 69, 78, 45, 72, 69, 65, 68, 69, 196, 79, 80, 69, 78, 45, 67, 73, 82, 67, + 85, 73, 84, 45, 79, 85, 84, 80, 85, 212, 79, 80, 69, 78, 128, 79, 80, 69, + 206, 79, 79, 90, 69, 128, 79, 79, 89, 65, 78, 78, 65, 128, 79, 79, 85, + 128, 79, 79, 77, 85, 128, 79, 79, 72, 128, 79, 79, 69, 128, 79, 79, 66, + 79, 79, 70, 73, 76, 73, 128, 79, 78, 85, 128, 79, 78, 83, 85, 128, 79, + 78, 78, 128, 79, 78, 75, 65, 82, 128, 79, 78, 73, 79, 78, 128, 79, 78, + 69, 83, 69, 76, 70, 128, 79, 78, 69, 45, 87, 65, 217, 79, 78, 69, 45, 84, + 72, 73, 82, 84, 89, 128, 79, 78, 69, 45, 80, 73, 69, 67, 197, 79, 78, 69, + 45, 76, 73, 78, 197, 79, 78, 69, 45, 72, 85, 78, 68, 82, 69, 68, 45, 65, + 78, 68, 45, 83, 73, 88, 84, 73, 69, 84, 72, 128, 79, 78, 67, 79, 77, 73, + 78, 199, 79, 78, 65, 80, 128, 79, 78, 45, 79, 70, 198, 79, 77, 73, 83, + 83, 73, 79, 206, 79, 77, 73, 67, 82, 79, 78, 128, 79, 77, 73, 67, 82, 79, + 206, 79, 77, 69, 84, 128, 79, 77, 69, 71, 65, 128, 79, 77, 69, 71, 193, + 79, 77, 65, 76, 79, 78, 128, 79, 76, 73, 86, 69, 128, 79, 76, 73, 71, 79, + 206, 79, 76, 68, 128, 79, 75, 84, 207, 79, 75, 65, 82, 65, 128, 79, 75, + 65, 82, 193, 79, 74, 73, 66, 87, 65, 217, 79, 74, 69, 79, 78, 128, 79, + 73, 78, 128, 79, 73, 76, 128, 79, 73, 204, 79, 72, 77, 128, 79, 72, 205, + 79, 71, 82, 69, 128, 79, 71, 79, 78, 69, 75, 128, 79, 71, 79, 78, 69, + 203, 79, 71, 72, 65, 205, 79, 70, 70, 73, 67, 69, 82, 128, 79, 70, 70, + 73, 67, 69, 128, 79, 70, 70, 73, 67, 197, 79, 70, 70, 128, 79, 69, 89, + 128, 79, 69, 82, 128, 79, 69, 75, 128, 79, 69, 69, 128, 79, 68, 69, 78, + 128, 79, 68, 68, 128, 79, 68, 196, 79, 67, 84, 79, 80, 85, 83, 128, 79, + 67, 84, 79, 66, 69, 82, 128, 79, 67, 84, 69, 212, 79, 67, 84, 65, 71, 79, + 78, 65, 204, 79, 67, 84, 65, 71, 79, 78, 128, 79, 67, 210, 79, 67, 76, + 79, 67, 75, 128, 79, 67, 72, 75, 79, 77, 128, 79, 67, 67, 76, 85, 83, 73, + 79, 78, 128, 79, 66, 83, 84, 82, 85, 67, 84, 73, 79, 78, 128, 79, 66, 83, + 69, 82, 86, 69, 210, 79, 66, 79, 76, 211, 79, 66, 79, 204, 79, 66, 79, + 70, 73, 76, 73, 128, 79, 66, 76, 73, 81, 85, 197, 79, 66, 76, 65, 75, 79, + 128, 79, 66, 76, 65, 67, 72, 75, 79, 128, 79, 66, 74, 69, 67, 212, 79, + 66, 69, 76, 85, 83, 128, 79, 66, 69, 76, 79, 83, 128, 79, 66, 128, 79, + 65, 89, 128, 79, 65, 75, 128, 79, 65, 66, 79, 65, 70, 73, 76, 73, 128, + 79, 193, 79, 48, 53, 49, 128, 79, 48, 53, 48, 66, 128, 79, 48, 53, 48, + 65, 128, 79, 48, 53, 48, 128, 79, 48, 52, 57, 128, 79, 48, 52, 56, 128, + 79, 48, 52, 55, 128, 79, 48, 52, 54, 128, 79, 48, 52, 53, 128, 79, 48, + 52, 52, 128, 79, 48, 52, 51, 128, 79, 48, 52, 50, 128, 79, 48, 52, 49, + 128, 79, 48, 52, 48, 128, 79, 48, 51, 57, 128, 79, 48, 51, 56, 128, 79, + 48, 51, 55, 128, 79, 48, 51, 54, 68, 128, 79, 48, 51, 54, 67, 128, 79, + 48, 51, 54, 66, 128, 79, 48, 51, 54, 65, 128, 79, 48, 51, 54, 128, 79, + 48, 51, 53, 128, 79, 48, 51, 52, 128, 79, 48, 51, 51, 65, 128, 79, 48, + 51, 51, 128, 79, 48, 51, 50, 128, 79, 48, 51, 49, 128, 79, 48, 51, 48, + 65, 128, 79, 48, 51, 48, 128, 79, 48, 50, 57, 65, 128, 79, 48, 50, 57, + 128, 79, 48, 50, 56, 128, 79, 48, 50, 55, 128, 79, 48, 50, 54, 128, 79, + 48, 50, 53, 65, 128, 79, 48, 50, 53, 128, 79, 48, 50, 52, 65, 128, 79, + 48, 50, 52, 128, 79, 48, 50, 51, 128, 79, 48, 50, 50, 128, 79, 48, 50, + 49, 128, 79, 48, 50, 48, 65, 128, 79, 48, 50, 48, 128, 79, 48, 49, 57, + 65, 128, 79, 48, 49, 57, 128, 79, 48, 49, 56, 128, 79, 48, 49, 55, 128, + 79, 48, 49, 54, 128, 79, 48, 49, 53, 128, 79, 48, 49, 52, 128, 79, 48, + 49, 51, 128, 79, 48, 49, 50, 128, 79, 48, 49, 49, 128, 79, 48, 49, 48, + 67, 128, 79, 48, 49, 48, 66, 128, 79, 48, 49, 48, 65, 128, 79, 48, 49, + 48, 128, 79, 48, 48, 57, 128, 79, 48, 48, 56, 128, 79, 48, 48, 55, 128, + 79, 48, 48, 54, 70, 128, 79, 48, 48, 54, 69, 128, 79, 48, 48, 54, 68, + 128, 79, 48, 48, 54, 67, 128, 79, 48, 48, 54, 66, 128, 79, 48, 48, 54, + 65, 128, 79, 48, 48, 54, 128, 79, 48, 48, 53, 65, 128, 79, 48, 48, 53, + 128, 79, 48, 48, 52, 128, 79, 48, 48, 51, 128, 79, 48, 48, 50, 128, 79, + 48, 48, 49, 65, 128, 79, 48, 48, 49, 128, 79, 45, 89, 69, 128, 79, 45, + 79, 45, 73, 128, 79, 45, 69, 128, 78, 90, 89, 88, 128, 78, 90, 89, 84, + 128, 78, 90, 89, 82, 88, 128, 78, 90, 89, 82, 128, 78, 90, 89, 80, 128, + 78, 90, 89, 128, 78, 90, 85, 88, 128, 78, 90, 85, 82, 88, 128, 78, 90, + 85, 82, 128, 78, 90, 85, 81, 128, 78, 90, 85, 80, 128, 78, 90, 85, 79, + 88, 128, 78, 90, 85, 79, 128, 78, 90, 85, 206, 78, 90, 85, 128, 78, 90, + 79, 88, 128, 78, 90, 79, 80, 128, 78, 90, 73, 88, 128, 78, 90, 73, 84, + 128, 78, 90, 73, 80, 128, 78, 90, 73, 69, 88, 128, 78, 90, 73, 69, 80, + 128, 78, 90, 73, 69, 128, 78, 90, 73, 128, 78, 90, 69, 88, 128, 78, 90, + 69, 85, 77, 128, 78, 90, 69, 128, 78, 90, 65, 88, 128, 78, 90, 65, 84, + 128, 78, 90, 65, 81, 128, 78, 90, 65, 80, 128, 78, 90, 65, 128, 78, 90, + 193, 78, 89, 87, 65, 128, 78, 89, 85, 88, 128, 78, 89, 85, 85, 128, 78, + 89, 85, 84, 128, 78, 89, 85, 80, 128, 78, 89, 85, 79, 88, 128, 78, 89, + 85, 79, 80, 128, 78, 89, 85, 79, 128, 78, 89, 85, 78, 128, 78, 89, 85, + 69, 128, 78, 89, 85, 128, 78, 89, 79, 88, 128, 78, 89, 79, 84, 128, 78, + 89, 79, 80, 128, 78, 89, 79, 79, 128, 78, 89, 79, 78, 128, 78, 89, 79, + 65, 128, 78, 89, 79, 128, 78, 89, 74, 65, 128, 78, 89, 73, 88, 128, 78, + 89, 73, 84, 128, 78, 89, 73, 212, 78, 89, 73, 211, 78, 89, 73, 210, 78, + 89, 73, 80, 128, 78, 89, 73, 78, 45, 68, 79, 128, 78, 89, 73, 78, 128, + 78, 89, 73, 73, 128, 78, 89, 73, 69, 88, 128, 78, 89, 73, 69, 84, 128, + 78, 89, 73, 69, 80, 128, 78, 89, 73, 69, 128, 78, 89, 73, 65, 75, 69, 78, + 199, 78, 89, 73, 128, 78, 89, 201, 78, 89, 72, 65, 128, 78, 89, 69, 84, + 128, 78, 89, 69, 212, 78, 89, 69, 78, 128, 78, 89, 69, 72, 128, 78, 89, + 69, 200, 78, 89, 69, 69, 128, 78, 89, 69, 128, 78, 89, 196, 78, 89, 67, + 65, 128, 78, 89, 65, 85, 128, 78, 89, 65, 74, 128, 78, 89, 65, 73, 128, + 78, 89, 65, 72, 128, 78, 89, 65, 69, 77, 65, 69, 128, 78, 89, 65, 65, + 128, 78, 87, 79, 79, 128, 78, 87, 79, 128, 78, 87, 73, 73, 128, 78, 87, + 73, 128, 78, 87, 69, 128, 78, 87, 65, 65, 128, 78, 87, 65, 128, 78, 87, + 128, 78, 86, 128, 78, 85, 88, 128, 78, 85, 85, 78, 128, 78, 85, 85, 128, + 78, 85, 84, 73, 76, 76, 85, 128, 78, 85, 84, 128, 78, 85, 212, 78, 85, + 82, 88, 128, 78, 85, 82, 128, 78, 85, 80, 128, 78, 85, 79, 88, 128, 78, + 85, 79, 80, 128, 78, 85, 79, 128, 78, 85, 78, 85, 90, 128, 78, 85, 78, + 85, 218, 78, 85, 78, 71, 128, 78, 85, 78, 65, 86, 85, 212, 78, 85, 78, + 65, 86, 73, 203, 78, 85, 78, 128, 78, 85, 206, 78, 85, 77, 69, 82, 207, + 78, 85, 77, 69, 82, 65, 84, 79, 210, 78, 85, 77, 69, 82, 65, 204, 78, 85, + 77, 66, 69, 82, 83, 128, 78, 85, 77, 66, 69, 82, 128, 78, 85, 77, 128, + 78, 85, 76, 76, 128, 78, 85, 76, 204, 78, 85, 76, 128, 78, 85, 75, 84, + 65, 128, 78, 85, 75, 84, 193, 78, 85, 69, 78, 71, 128, 78, 85, 69, 128, + 78, 85, 66, 73, 65, 206, 78, 85, 65, 69, 128, 78, 85, 49, 49, 128, 78, + 85, 49, 177, 78, 85, 48, 50, 50, 65, 128, 78, 85, 48, 50, 50, 128, 78, + 85, 48, 50, 49, 128, 78, 85, 48, 50, 48, 128, 78, 85, 48, 49, 57, 128, + 78, 85, 48, 49, 56, 65, 128, 78, 85, 48, 49, 56, 128, 78, 85, 48, 49, 55, + 128, 78, 85, 48, 49, 54, 128, 78, 85, 48, 49, 53, 128, 78, 85, 48, 49, + 52, 128, 78, 85, 48, 49, 51, 128, 78, 85, 48, 49, 50, 128, 78, 85, 48, + 49, 49, 65, 128, 78, 85, 48, 49, 49, 128, 78, 85, 48, 49, 48, 65, 128, + 78, 85, 48, 49, 48, 128, 78, 85, 48, 48, 57, 128, 78, 85, 48, 48, 56, + 128, 78, 85, 48, 48, 55, 128, 78, 85, 48, 48, 54, 128, 78, 85, 48, 48, + 53, 128, 78, 85, 48, 48, 52, 128, 78, 85, 48, 48, 51, 128, 78, 85, 48, + 48, 50, 128, 78, 85, 48, 48, 49, 128, 78, 85, 45, 51, 128, 78, 85, 45, + 50, 128, 78, 85, 45, 49, 128, 78, 84, 88, 73, 86, 128, 78, 84, 88, 65, + 128, 78, 84, 85, 85, 128, 78, 84, 85, 77, 128, 78, 84, 85, 74, 128, 78, + 84, 213, 78, 84, 83, 65, 85, 128, 78, 84, 83, 65, 128, 78, 84, 79, 81, + 80, 69, 78, 128, 78, 84, 79, 71, 128, 78, 84, 79, 199, 78, 84, 73, 69, + 197, 78, 84, 72, 65, 85, 128, 78, 84, 69, 85, 78, 71, 66, 65, 128, 78, + 84, 69, 85, 77, 128, 78, 84, 69, 78, 128, 78, 84, 69, 69, 128, 78, 84, + 65, 80, 128, 78, 84, 65, 208, 78, 84, 65, 65, 128, 78, 84, 65, 128, 78, + 83, 85, 79, 212, 78, 83, 85, 78, 128, 78, 83, 85, 77, 128, 78, 83, 79, + 77, 128, 78, 83, 73, 69, 69, 84, 128, 78, 83, 73, 69, 69, 80, 128, 78, + 83, 73, 69, 69, 128, 78, 83, 72, 85, 84, 128, 78, 83, 72, 85, 212, 78, + 83, 72, 85, 79, 80, 128, 78, 83, 72, 85, 69, 128, 78, 83, 72, 73, 69, 69, + 128, 78, 83, 72, 69, 69, 128, 78, 83, 72, 65, 81, 128, 78, 83, 72, 65, + 128, 78, 83, 69, 85, 65, 69, 78, 128, 78, 83, 69, 78, 128, 78, 83, 65, + 128, 78, 82, 89, 88, 128, 78, 82, 89, 84, 128, 78, 82, 89, 82, 88, 128, + 78, 82, 89, 82, 128, 78, 82, 89, 80, 128, 78, 82, 89, 128, 78, 82, 85, + 88, 128, 78, 82, 85, 84, 128, 78, 82, 85, 82, 88, 128, 78, 82, 85, 82, + 128, 78, 82, 85, 80, 128, 78, 82, 85, 65, 128, 78, 82, 85, 128, 78, 82, + 79, 88, 128, 78, 82, 79, 80, 128, 78, 82, 79, 128, 78, 82, 69, 88, 128, + 78, 82, 69, 84, 128, 78, 82, 69, 211, 78, 82, 69, 80, 128, 78, 82, 69, + 128, 78, 82, 65, 88, 128, 78, 82, 65, 84, 128, 78, 82, 65, 80, 128, 78, + 82, 65, 128, 78, 81, 73, 71, 128, 78, 81, 65, 128, 78, 80, 76, 65, 128, + 78, 80, 65, 128, 78, 79, 90, 72, 75, 65, 128, 78, 79, 89, 128, 78, 79, + 88, 128, 78, 79, 87, 67, 128, 78, 79, 86, 73, 76, 69, 128, 78, 79, 86, + 69, 77, 66, 69, 82, 128, 78, 79, 84, 84, 79, 128, 78, 79, 84, 69, 83, + 128, 78, 79, 84, 69, 72, 69, 65, 68, 128, 78, 79, 84, 69, 72, 69, 65, + 196, 78, 79, 84, 69, 66, 79, 79, 75, 128, 78, 79, 84, 69, 66, 79, 79, + 203, 78, 79, 84, 69, 128, 78, 79, 84, 197, 78, 79, 84, 67, 72, 69, 196, + 78, 79, 84, 67, 72, 128, 78, 79, 84, 65, 84, 73, 79, 206, 78, 79, 84, + 128, 78, 79, 212, 78, 79, 83, 69, 128, 78, 79, 83, 197, 78, 79, 82, 84, + 72, 87, 69, 83, 212, 78, 79, 82, 84, 72, 69, 82, 206, 78, 79, 82, 84, 72, + 69, 65, 83, 84, 45, 80, 79, 73, 78, 84, 73, 78, 199, 78, 79, 82, 77, 65, + 204, 78, 79, 82, 68, 73, 195, 78, 79, 210, 78, 79, 80, 128, 78, 79, 79, + 78, 85, 128, 78, 79, 79, 128, 78, 79, 78, 70, 79, 82, 75, 73, 78, 71, + 128, 78, 79, 78, 45, 80, 79, 84, 65, 66, 76, 197, 78, 79, 78, 45, 74, 79, + 73, 78, 69, 82, 128, 78, 79, 78, 45, 66, 82, 69, 65, 75, 73, 78, 199, 78, + 79, 78, 128, 78, 79, 77, 73, 83, 77, 193, 78, 79, 77, 73, 78, 65, 204, + 78, 79, 75, 72, 85, 75, 128, 78, 79, 68, 69, 128, 78, 79, 65, 128, 78, + 79, 45, 66, 82, 69, 65, 203, 78, 79, 45, 53, 128, 78, 79, 45, 52, 128, + 78, 79, 45, 51, 128, 78, 79, 45, 50, 128, 78, 79, 45, 49, 128, 78, 78, + 85, 85, 128, 78, 78, 85, 128, 78, 78, 79, 79, 128, 78, 78, 78, 85, 85, + 128, 78, 78, 78, 85, 128, 78, 78, 78, 79, 79, 128, 78, 78, 78, 79, 128, + 78, 78, 78, 73, 73, 128, 78, 78, 78, 73, 128, 78, 78, 78, 69, 69, 128, + 78, 78, 78, 69, 128, 78, 78, 78, 65, 85, 128, 78, 78, 78, 65, 73, 128, + 78, 78, 78, 65, 65, 128, 78, 78, 78, 65, 128, 78, 78, 78, 128, 78, 78, + 72, 65, 128, 78, 78, 71, 79, 79, 128, 78, 78, 71, 79, 128, 78, 78, 71, + 73, 73, 128, 78, 78, 71, 73, 128, 78, 78, 71, 65, 65, 128, 78, 78, 71, + 65, 128, 78, 78, 71, 128, 78, 78, 66, 83, 80, 128, 78, 77, 128, 78, 76, + 65, 85, 128, 78, 76, 48, 50, 48, 128, 78, 76, 48, 49, 57, 128, 78, 76, + 48, 49, 56, 128, 78, 76, 48, 49, 55, 65, 128, 78, 76, 48, 49, 55, 128, + 78, 76, 48, 49, 54, 128, 78, 76, 48, 49, 53, 128, 78, 76, 48, 49, 52, + 128, 78, 76, 48, 49, 51, 128, 78, 76, 48, 49, 50, 128, 78, 76, 48, 49, + 49, 128, 78, 76, 48, 49, 48, 128, 78, 76, 48, 48, 57, 128, 78, 76, 48, + 48, 56, 128, 78, 76, 48, 48, 55, 128, 78, 76, 48, 48, 54, 128, 78, 76, + 48, 48, 53, 65, 128, 78, 76, 48, 48, 53, 128, 78, 76, 48, 48, 52, 128, + 78, 76, 48, 48, 51, 128, 78, 76, 48, 48, 50, 128, 78, 76, 48, 48, 49, + 128, 78, 76, 128, 78, 75, 79, 77, 128, 78, 75, 207, 78, 75, 73, 78, 68, + 73, 128, 78, 75, 65, 85, 128, 78, 75, 65, 65, 82, 65, 69, 128, 78, 75, + 65, 128, 78, 74, 89, 88, 128, 78, 74, 89, 84, 128, 78, 74, 89, 82, 88, + 128, 78, 74, 89, 82, 128, 78, 74, 89, 80, 128, 78, 74, 89, 128, 78, 74, + 85, 88, 128, 78, 74, 85, 82, 88, 128, 78, 74, 85, 82, 128, 78, 74, 85, + 81, 65, 128, 78, 74, 85, 80, 128, 78, 74, 85, 79, 88, 128, 78, 74, 85, + 79, 128, 78, 74, 85, 69, 81, 128, 78, 74, 85, 65, 69, 128, 78, 74, 85, + 128, 78, 74, 79, 88, 128, 78, 74, 79, 84, 128, 78, 74, 79, 80, 128, 78, + 74, 79, 79, 128, 78, 74, 79, 128, 78, 74, 73, 88, 128, 78, 74, 73, 84, + 128, 78, 74, 73, 80, 128, 78, 74, 73, 69, 88, 128, 78, 74, 73, 69, 84, + 128, 78, 74, 73, 69, 80, 128, 78, 74, 73, 69, 69, 128, 78, 74, 73, 69, + 128, 78, 74, 73, 128, 78, 74, 201, 78, 74, 69, 85, 88, 128, 78, 74, 69, + 85, 84, 128, 78, 74, 69, 85, 65, 69, 78, 65, 128, 78, 74, 69, 85, 65, 69, + 77, 128, 78, 74, 69, 69, 69, 69, 128, 78, 74, 69, 69, 128, 78, 74, 69, + 197, 78, 74, 69, 128, 78, 74, 65, 81, 128, 78, 74, 65, 80, 128, 78, 74, + 65, 69, 77, 76, 73, 128, 78, 74, 65, 69, 77, 128, 78, 74, 65, 65, 128, + 78, 73, 90, 75, 207, 78, 73, 88, 128, 78, 73, 84, 82, 69, 128, 78, 73, + 83, 65, 71, 128, 78, 73, 82, 85, 71, 85, 128, 78, 73, 80, 128, 78, 73, + 78, 84, 72, 128, 78, 73, 78, 74, 65, 128, 78, 73, 78, 69, 84, 89, 128, + 78, 73, 78, 69, 84, 217, 78, 73, 78, 69, 84, 69, 69, 78, 128, 78, 73, 78, + 69, 84, 69, 69, 206, 78, 73, 78, 69, 45, 84, 72, 73, 82, 84, 89, 128, 78, + 73, 78, 197, 78, 73, 78, 68, 65, 50, 128, 78, 73, 78, 68, 65, 178, 78, + 73, 78, 57, 128, 78, 73, 78, 128, 78, 73, 77, 128, 78, 73, 205, 78, 73, + 75, 79, 76, 83, 66, 85, 82, 199, 78, 73, 75, 72, 65, 72, 73, 84, 128, 78, + 73, 75, 65, 72, 73, 84, 128, 78, 73, 75, 65, 128, 78, 73, 72, 83, 72, 86, + 65, 83, 65, 128, 78, 73, 71, 73, 68, 65, 77, 73, 78, 128, 78, 73, 71, 73, + 68, 65, 69, 83, 72, 128, 78, 73, 71, 72, 84, 128, 78, 73, 71, 72, 212, + 78, 73, 71, 71, 65, 72, 73, 84, 65, 128, 78, 73, 69, 88, 128, 78, 73, 69, + 85, 78, 45, 84, 73, 75, 69, 85, 84, 128, 78, 73, 69, 85, 78, 45, 84, 72, + 73, 69, 85, 84, 72, 128, 78, 73, 69, 85, 78, 45, 83, 73, 79, 83, 128, 78, + 73, 69, 85, 78, 45, 82, 73, 69, 85, 76, 128, 78, 73, 69, 85, 78, 45, 80, + 73, 69, 85, 80, 128, 78, 73, 69, 85, 78, 45, 80, 65, 78, 83, 73, 79, 83, + 128, 78, 73, 69, 85, 78, 45, 75, 73, 89, 69, 79, 75, 128, 78, 73, 69, 85, + 78, 45, 72, 73, 69, 85, 72, 128, 78, 73, 69, 85, 78, 45, 67, 73, 69, 85, + 67, 128, 78, 73, 69, 85, 78, 45, 67, 72, 73, 69, 85, 67, 72, 128, 78, 73, + 69, 85, 206, 78, 73, 69, 80, 128, 78, 73, 69, 128, 78, 73, 66, 128, 78, + 73, 65, 128, 78, 73, 50, 128, 78, 73, 45, 84, 69, 128, 78, 73, 45, 55, + 128, 78, 73, 45, 54, 128, 78, 73, 45, 53, 128, 78, 73, 45, 52, 128, 78, + 73, 45, 51, 128, 78, 73, 45, 50, 128, 78, 73, 45, 49, 128, 78, 72, 85, + 69, 128, 78, 72, 74, 65, 128, 78, 72, 65, 89, 128, 78, 72, 128, 78, 71, + 89, 69, 128, 78, 71, 86, 69, 128, 78, 71, 85, 85, 128, 78, 71, 85, 79, + 88, 128, 78, 71, 85, 79, 84, 128, 78, 71, 85, 79, 128, 78, 71, 85, 65, + 78, 128, 78, 71, 85, 65, 69, 84, 128, 78, 71, 85, 65, 69, 128, 78, 71, + 79, 88, 128, 78, 71, 79, 85, 128, 78, 71, 79, 213, 78, 71, 79, 84, 128, + 78, 71, 79, 81, 128, 78, 71, 79, 80, 128, 78, 71, 79, 78, 128, 78, 71, + 79, 77, 128, 78, 71, 79, 69, 72, 128, 78, 71, 79, 69, 200, 78, 71, 207, + 78, 71, 75, 89, 69, 69, 128, 78, 71, 75, 87, 65, 69, 78, 128, 78, 71, 75, + 85, 80, 128, 78, 71, 75, 85, 78, 128, 78, 71, 75, 85, 77, 128, 78, 71, + 75, 85, 69, 78, 90, 69, 85, 77, 128, 78, 71, 75, 85, 197, 78, 71, 75, 73, + 78, 68, 201, 78, 71, 75, 73, 69, 69, 128, 78, 71, 75, 69, 85, 88, 128, + 78, 71, 75, 69, 85, 82, 73, 128, 78, 71, 75, 69, 85, 65, 69, 81, 128, 78, + 71, 75, 69, 85, 65, 69, 77, 128, 78, 71, 75, 65, 81, 128, 78, 71, 75, 65, + 80, 128, 78, 71, 75, 65, 65, 77, 73, 128, 78, 71, 75, 65, 128, 78, 71, + 73, 69, 88, 128, 78, 71, 73, 69, 80, 128, 78, 71, 73, 69, 128, 78, 71, + 72, 65, 128, 78, 71, 71, 87, 65, 69, 78, 128, 78, 71, 71, 85, 82, 65, 69, + 128, 78, 71, 71, 85, 80, 128, 78, 71, 71, 85, 79, 81, 128, 78, 71, 71, + 85, 79, 209, 78, 71, 71, 85, 79, 78, 128, 78, 71, 71, 85, 79, 77, 128, + 78, 71, 71, 85, 77, 128, 78, 71, 71, 85, 69, 69, 84, 128, 78, 71, 71, 85, + 65, 69, 83, 72, 65, 197, 78, 71, 71, 85, 65, 69, 206, 78, 71, 71, 85, 65, + 128, 78, 71, 71, 85, 128, 78, 71, 71, 79, 79, 128, 78, 71, 71, 79, 128, + 78, 71, 71, 73, 128, 78, 71, 71, 69, 85, 88, 128, 78, 71, 71, 69, 85, 65, + 69, 84, 128, 78, 71, 71, 69, 85, 65, 69, 128, 78, 71, 71, 69, 213, 78, + 71, 71, 69, 78, 128, 78, 71, 71, 69, 69, 84, 128, 78, 71, 71, 69, 69, 69, + 69, 128, 78, 71, 71, 69, 69, 128, 78, 71, 71, 69, 128, 78, 71, 71, 65, + 80, 128, 78, 71, 71, 65, 65, 77, 65, 69, 128, 78, 71, 71, 65, 65, 77, + 128, 78, 71, 71, 65, 65, 128, 78, 71, 71, 128, 78, 71, 69, 88, 128, 78, + 71, 69, 85, 82, 69, 85, 84, 128, 78, 71, 69, 80, 128, 78, 71, 69, 78, + 128, 78, 71, 69, 69, 128, 78, 71, 69, 65, 68, 65, 76, 128, 78, 71, 65, + 88, 128, 78, 71, 65, 85, 128, 78, 71, 65, 84, 128, 78, 71, 65, 211, 78, + 71, 65, 81, 128, 78, 71, 65, 80, 128, 78, 71, 65, 78, 71, 85, 128, 78, + 71, 65, 78, 128, 78, 71, 65, 73, 128, 78, 71, 65, 72, 128, 78, 71, 65, + 65, 73, 128, 78, 71, 193, 78, 70, 128, 78, 69, 88, 212, 78, 69, 88, 128, + 78, 69, 87, 83, 80, 65, 80, 69, 82, 128, 78, 69, 87, 76, 73, 78, 69, 128, + 78, 69, 87, 76, 73, 78, 197, 78, 69, 87, 193, 78, 69, 87, 128, 78, 69, + 215, 78, 69, 85, 84, 82, 65, 76, 128, 78, 69, 85, 84, 82, 65, 204, 78, + 69, 85, 84, 69, 82, 128, 78, 69, 84, 87, 79, 82, 75, 69, 196, 78, 69, + 212, 78, 69, 83, 84, 73, 78, 199, 78, 69, 83, 84, 69, 196, 78, 69, 83, + 84, 128, 78, 69, 83, 212, 78, 69, 83, 83, 85, 83, 128, 78, 69, 82, 196, + 78, 69, 81, 85, 68, 65, 65, 128, 78, 69, 80, 84, 85, 78, 69, 128, 78, 69, + 80, 84, 85, 78, 197, 78, 69, 80, 79, 83, 84, 79, 89, 65, 78, 78, 65, 89, + 65, 128, 78, 69, 80, 128, 78, 69, 79, 128, 78, 69, 207, 78, 69, 78, 79, + 69, 128, 78, 69, 78, 65, 78, 79, 128, 78, 69, 78, 128, 78, 69, 77, 75, + 65, 128, 78, 69, 76, 128, 78, 69, 73, 84, 72, 69, 210, 78, 69, 71, 65, + 84, 73, 86, 197, 78, 69, 71, 65, 84, 73, 79, 206, 78, 69, 71, 65, 84, 69, + 196, 78, 69, 69, 68, 76, 69, 128, 78, 69, 67, 75, 84, 73, 69, 128, 78, + 69, 67, 75, 128, 78, 69, 66, 69, 78, 83, 84, 73, 77, 77, 69, 128, 78, 69, + 45, 75, 79, 128, 78, 68, 85, 88, 128, 78, 68, 85, 84, 128, 78, 68, 85, + 82, 88, 128, 78, 68, 85, 82, 128, 78, 68, 85, 80, 128, 78, 68, 85, 78, + 128, 78, 68, 213, 78, 68, 79, 88, 128, 78, 68, 79, 84, 128, 78, 68, 79, + 80, 128, 78, 68, 79, 79, 128, 78, 68, 79, 78, 128, 78, 68, 79, 77, 66, + 85, 128, 78, 68, 79, 76, 197, 78, 68, 73, 88, 128, 78, 68, 73, 84, 128, + 78, 68, 73, 81, 128, 78, 68, 73, 80, 128, 78, 68, 73, 69, 88, 128, 78, + 68, 73, 69, 128, 78, 68, 73, 68, 65, 128, 78, 68, 73, 65, 81, 128, 78, + 68, 69, 88, 128, 78, 68, 69, 85, 88, 128, 78, 68, 69, 85, 84, 128, 78, + 68, 69, 85, 65, 69, 82, 69, 69, 128, 78, 68, 69, 80, 128, 78, 68, 69, 69, + 128, 78, 68, 69, 128, 78, 68, 65, 88, 128, 78, 68, 65, 84, 128, 78, 68, + 65, 80, 128, 78, 68, 65, 77, 128, 78, 68, 65, 65, 78, 71, 71, 69, 85, 65, + 69, 84, 128, 78, 68, 65, 65, 128, 78, 68, 65, 193, 78, 67, 72, 65, 85, + 128, 78, 67, 65, 128, 78, 66, 89, 88, 128, 78, 66, 89, 84, 128, 78, 66, + 89, 82, 88, 128, 78, 66, 89, 82, 128, 78, 66, 89, 80, 128, 78, 66, 89, + 128, 78, 66, 85, 88, 128, 78, 66, 85, 84, 128, 78, 66, 85, 82, 88, 128, + 78, 66, 85, 82, 128, 78, 66, 85, 80, 128, 78, 66, 85, 128, 78, 66, 79, + 88, 128, 78, 66, 79, 84, 128, 78, 66, 79, 80, 128, 78, 66, 79, 128, 78, + 66, 73, 88, 128, 78, 66, 73, 84, 128, 78, 66, 73, 80, 128, 78, 66, 73, + 69, 88, 128, 78, 66, 73, 69, 80, 128, 78, 66, 73, 69, 128, 78, 66, 73, + 128, 78, 66, 72, 128, 78, 66, 65, 88, 128, 78, 66, 65, 84, 128, 78, 66, + 65, 80, 128, 78, 66, 65, 128, 78, 65, 90, 65, 210, 78, 65, 89, 65, 78, + 78, 65, 128, 78, 65, 89, 128, 78, 65, 88, 73, 65, 206, 78, 65, 88, 128, + 78, 65, 85, 84, 72, 83, 128, 78, 65, 85, 83, 69, 65, 84, 69, 196, 78, 65, + 85, 68, 73, 218, 78, 65, 84, 85, 82, 65, 204, 78, 65, 84, 84, 73, 76, 73, + 203, 78, 65, 84, 73, 79, 78, 65, 204, 78, 65, 83, 75, 65, 80, 201, 78, + 65, 83, 72, 73, 128, 78, 65, 83, 65, 76, 73, 90, 69, 196, 78, 65, 83, 65, + 76, 73, 90, 65, 84, 73, 79, 78, 128, 78, 65, 83, 65, 76, 73, 90, 65, 84, + 73, 79, 206, 78, 65, 83, 65, 204, 78, 65, 82, 82, 79, 215, 78, 65, 82, + 128, 78, 65, 81, 128, 78, 65, 79, 211, 78, 65, 78, 83, 65, 78, 65, 81, + 128, 78, 65, 78, 71, 77, 79, 78, 84, 72, 79, 128, 78, 65, 78, 68, 73, 78, + 65, 71, 65, 82, 201, 78, 65, 78, 68, 128, 78, 65, 78, 65, 128, 78, 65, + 77, 69, 128, 78, 65, 77, 197, 78, 65, 77, 50, 128, 78, 65, 75, 65, 65, + 82, 193, 78, 65, 75, 128, 78, 65, 73, 82, 193, 78, 65, 73, 204, 78, 65, + 71, 82, 201, 78, 65, 71, 65, 82, 128, 78, 65, 71, 65, 128, 78, 65, 71, + 193, 78, 65, 71, 128, 78, 65, 199, 78, 65, 69, 128, 78, 65, 66, 76, 65, + 128, 78, 65, 66, 65, 84, 65, 69, 65, 206, 78, 65, 65, 83, 73, 75, 89, 65, + 89, 65, 128, 78, 65, 65, 75, 83, 73, 75, 89, 65, 89, 65, 128, 78, 65, 65, + 73, 128, 78, 65, 193, 78, 65, 52, 128, 78, 65, 50, 128, 78, 65, 45, 57, + 128, 78, 65, 45, 56, 128, 78, 65, 45, 55, 128, 78, 65, 45, 54, 128, 78, + 65, 45, 53, 128, 78, 65, 45, 52, 128, 78, 65, 45, 51, 128, 78, 65, 45, + 50, 128, 78, 65, 45, 49, 128, 78, 48, 52, 50, 128, 78, 48, 52, 49, 128, + 78, 48, 52, 48, 128, 78, 48, 51, 57, 128, 78, 48, 51, 56, 128, 78, 48, + 51, 55, 65, 128, 78, 48, 51, 55, 128, 78, 48, 51, 54, 128, 78, 48, 51, + 53, 65, 128, 78, 48, 51, 53, 128, 78, 48, 51, 52, 65, 128, 78, 48, 51, + 52, 128, 78, 48, 51, 51, 65, 128, 78, 48, 51, 51, 128, 78, 48, 51, 50, + 128, 78, 48, 51, 49, 128, 78, 48, 51, 48, 128, 78, 48, 50, 57, 128, 78, + 48, 50, 56, 128, 78, 48, 50, 55, 128, 78, 48, 50, 54, 128, 78, 48, 50, + 53, 65, 128, 78, 48, 50, 53, 128, 78, 48, 50, 52, 128, 78, 48, 50, 51, + 128, 78, 48, 50, 50, 128, 78, 48, 50, 49, 128, 78, 48, 50, 48, 128, 78, + 48, 49, 57, 128, 78, 48, 49, 56, 66, 128, 78, 48, 49, 56, 65, 128, 78, + 48, 49, 56, 128, 78, 48, 49, 55, 128, 78, 48, 49, 54, 128, 78, 48, 49, + 53, 128, 78, 48, 49, 52, 128, 78, 48, 49, 51, 128, 78, 48, 49, 50, 128, + 78, 48, 49, 49, 128, 78, 48, 49, 48, 128, 78, 48, 48, 57, 128, 78, 48, + 48, 56, 128, 78, 48, 48, 55, 128, 78, 48, 48, 54, 128, 78, 48, 48, 53, + 128, 78, 48, 48, 52, 128, 78, 48, 48, 51, 128, 78, 48, 48, 50, 128, 78, + 48, 48, 49, 128, 78, 45, 77, 85, 45, 77, 79, 45, 50, 128, 78, 45, 77, 85, + 45, 77, 79, 45, 49, 128, 78, 45, 67, 82, 69, 197, 78, 45, 65, 82, 217, + 77, 90, 128, 77, 89, 88, 128, 77, 89, 84, 128, 77, 89, 83, 76, 73, 84, + 69, 128, 77, 89, 80, 128, 77, 89, 65, 128, 77, 89, 193, 77, 87, 79, 79, + 128, 77, 87, 79, 128, 77, 87, 73, 73, 128, 77, 87, 73, 128, 77, 87, 69, + 69, 128, 77, 87, 69, 128, 77, 87, 65, 65, 128, 77, 87, 65, 128, 77, 87, + 128, 77, 215, 77, 86, 83, 128, 77, 86, 79, 80, 128, 77, 86, 73, 128, 77, + 86, 69, 85, 65, 69, 78, 71, 65, 77, 128, 77, 86, 128, 77, 214, 77, 85, + 88, 128, 77, 85, 85, 86, 85, 90, 72, 65, 75, 75, 85, 128, 77, 85, 85, 83, + 73, 75, 65, 84, 79, 65, 78, 128, 77, 85, 85, 82, 68, 72, 65, 74, 193, 77, + 85, 85, 128, 77, 85, 84, 72, 65, 76, 73, 89, 65, 128, 77, 85, 84, 128, + 77, 85, 83, 73, 67, 128, 77, 85, 83, 73, 195, 77, 85, 83, 72, 82, 79, 79, + 77, 128, 77, 85, 83, 72, 51, 128, 77, 85, 83, 72, 179, 77, 85, 83, 72, + 128, 77, 85, 83, 200, 77, 85, 83, 128, 77, 85, 82, 88, 128, 77, 85, 82, + 71, 85, 50, 128, 77, 85, 82, 69, 128, 77, 85, 82, 68, 65, 128, 77, 85, + 82, 68, 193, 77, 85, 82, 128, 77, 85, 81, 68, 65, 77, 128, 77, 85, 80, + 128, 77, 85, 79, 88, 128, 77, 85, 79, 84, 128, 77, 85, 79, 80, 128, 77, + 85, 79, 77, 65, 69, 128, 77, 85, 79, 128, 77, 85, 78, 83, 85, 66, 128, + 77, 85, 78, 65, 72, 128, 77, 85, 78, 128, 77, 85, 76, 84, 73, 83, 69, 84, 128, 77, 85, 76, 84, 73, 83, 69, 212, 77, 85, 76, 84, 73, 80, 76, 73, 67, 65, 84, 73, 79, 78, 128, 77, 85, 76, 84, 73, 80, 76, 73, 67, 65, 84, 73, 79, 206, 77, 85, 76, 84, 73, 80, 76, 69, 128, 77, 85, 76, 84, 73, 80, 76, 197, 77, 85, 76, 84, 73, 79, 67, 85, 76, 65, 210, 77, 85, 76, 84, 73, 77, 65, 80, 128, 77, 85, 76, 84, 201, 77, 85, 76, 84, 65, 78, 201, 77, 85, 75, 80, 72, 82, 69, 78, 71, 128, 77, 85, 75, 75, 85, 82, 85, 78, 73, 128, - 77, 85, 73, 78, 128, 77, 85, 72, 79, 82, 128, 77, 85, 71, 83, 128, 77, - 85, 71, 128, 77, 85, 199, 77, 85, 69, 78, 128, 77, 85, 69, 128, 77, 85, - 67, 72, 128, 77, 85, 67, 200, 77, 85, 67, 65, 65, 68, 128, 77, 85, 65, - 83, 128, 77, 85, 65, 78, 128, 77, 85, 65, 69, 128, 77, 85, 45, 71, 65, - 65, 72, 76, 65, 193, 77, 85, 45, 52, 128, 77, 85, 45, 51, 128, 77, 85, - 45, 50, 128, 77, 85, 45, 49, 128, 77, 213, 77, 84, 65, 86, 82, 85, 76, - 201, 77, 83, 128, 77, 82, 207, 77, 82, 65, 67, 72, 78, 89, 128, 77, 82, - 65, 67, 72, 78, 79, 84, 73, 75, 72, 65, 89, 65, 128, 77, 82, 65, 67, 72, - 78, 79, 128, 77, 82, 65, 67, 72, 78, 65, 89, 65, 128, 77, 210, 77, 81, - 128, 77, 80, 65, 128, 77, 79, 89, 65, 73, 128, 77, 79, 88, 128, 77, 79, - 86, 73, 197, 77, 79, 86, 69, 211, 77, 79, 86, 69, 77, 69, 78, 84, 45, 87, - 65, 76, 76, 80, 76, 65, 78, 197, 77, 79, 86, 69, 77, 69, 78, 84, 45, 72, - 73, 78, 71, 197, 77, 79, 86, 69, 77, 69, 78, 84, 45, 70, 76, 79, 79, 82, - 80, 76, 65, 78, 197, 77, 79, 86, 69, 77, 69, 78, 84, 45, 68, 73, 65, 71, - 79, 78, 65, 204, 77, 79, 86, 69, 77, 69, 78, 84, 128, 77, 79, 86, 69, 77, - 69, 78, 212, 77, 79, 86, 69, 196, 77, 79, 86, 69, 128, 77, 79, 85, 84, - 72, 128, 77, 79, 85, 83, 69, 128, 77, 79, 85, 83, 197, 77, 79, 85, 78, - 84, 65, 73, 78, 83, 128, 77, 79, 85, 78, 84, 65, 73, 78, 128, 77, 79, 85, - 78, 84, 65, 73, 206, 77, 79, 85, 78, 212, 77, 79, 85, 78, 68, 128, 77, - 79, 85, 78, 196, 77, 79, 84, 79, 82, 87, 65, 89, 128, 77, 79, 84, 79, 82, - 73, 90, 69, 196, 77, 79, 84, 79, 82, 67, 89, 67, 76, 69, 128, 77, 79, 84, - 79, 210, 77, 79, 84, 72, 69, 82, 128, 77, 79, 84, 72, 69, 210, 77, 79, - 84, 128, 77, 79, 83, 81, 85, 73, 84, 79, 128, 77, 79, 83, 81, 85, 69, - 128, 77, 79, 82, 84, 85, 85, 77, 128, 77, 79, 82, 84, 65, 82, 128, 77, - 79, 82, 80, 72, 79, 76, 79, 71, 73, 67, 65, 204, 77, 79, 82, 78, 73, 78, - 71, 128, 77, 79, 80, 128, 77, 79, 79, 83, 69, 45, 67, 82, 69, 197, 77, - 79, 79, 83, 69, 128, 77, 79, 79, 78, 128, 77, 79, 79, 206, 77, 79, 79, - 77, 80, 85, 81, 128, 77, 79, 79, 77, 69, 85, 84, 128, 77, 79, 79, 68, - 128, 77, 79, 79, 196, 77, 79, 79, 128, 77, 79, 78, 84, 73, 69, 69, 78, - 128, 77, 79, 78, 84, 72, 128, 77, 79, 78, 84, 200, 77, 79, 78, 83, 84, - 69, 82, 128, 77, 79, 78, 79, 83, 84, 65, 66, 76, 197, 77, 79, 78, 79, 83, - 80, 65, 67, 197, 77, 79, 78, 79, 82, 65, 73, 76, 128, 77, 79, 78, 79, 71, - 82, 65, 80, 200, 77, 79, 78, 79, 71, 82, 65, 77, 77, 79, 211, 77, 79, 78, - 79, 71, 82, 65, 205, 77, 79, 78, 79, 70, 79, 78, 73, 65, 83, 128, 77, 79, - 78, 79, 67, 85, 76, 65, 210, 77, 79, 78, 79, 67, 76, 69, 128, 77, 79, 78, - 75, 69, 89, 128, 77, 79, 78, 75, 69, 217, 77, 79, 78, 73, 128, 77, 79, - 78, 71, 75, 69, 85, 65, 69, 81, 128, 77, 79, 78, 69, 89, 45, 77, 79, 85, - 84, 200, 77, 79, 78, 69, 217, 77, 79, 78, 128, 77, 79, 206, 77, 79, 76, - 128, 77, 79, 75, 72, 65, 83, 83, 65, 83, 128, 77, 79, 72, 65, 77, 77, 65, - 196, 77, 79, 68, 85, 76, 207, 77, 79, 68, 73, 70, 73, 69, 82, 45, 57, - 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 56, 128, 77, 79, 68, 73, 70, 73, - 69, 82, 45, 55, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 54, 128, 77, 79, - 68, 73, 70, 73, 69, 82, 45, 53, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, - 52, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 51, 128, 77, 79, 68, 73, 70, - 73, 69, 82, 45, 50, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 49, 54, 128, - 77, 79, 68, 73, 70, 73, 69, 82, 45, 49, 53, 128, 77, 79, 68, 73, 70, 73, - 69, 82, 45, 49, 52, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 49, 51, 128, - 77, 79, 68, 73, 70, 73, 69, 82, 45, 49, 50, 128, 77, 79, 68, 73, 70, 73, - 69, 82, 45, 49, 49, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 49, 48, 128, - 77, 79, 68, 73, 70, 73, 69, 82, 128, 77, 79, 68, 201, 77, 79, 68, 69, 83, - 84, 89, 128, 77, 79, 68, 69, 82, 206, 77, 79, 68, 69, 77, 128, 77, 79, - 68, 69, 76, 83, 128, 77, 79, 68, 69, 76, 128, 77, 79, 68, 69, 128, 77, - 79, 66, 73, 76, 197, 77, 79, 65, 128, 77, 79, 45, 54, 128, 77, 79, 45, - 53, 128, 77, 79, 45, 52, 128, 77, 79, 45, 51, 128, 77, 207, 77, 78, 89, - 65, 205, 77, 78, 65, 83, 128, 77, 77, 83, 80, 128, 77, 77, 128, 77, 205, - 77, 76, 65, 128, 77, 76, 128, 77, 75, 80, 65, 82, 65, 209, 77, 73, 88, - 128, 77, 73, 84, 128, 77, 73, 83, 82, 65, 128, 77, 73, 82, 82, 79, 82, - 128, 77, 73, 82, 82, 79, 210, 77, 73, 82, 73, 66, 65, 65, 82, 85, 128, - 77, 73, 82, 73, 128, 77, 73, 82, 69, 68, 128, 77, 73, 80, 128, 77, 73, - 78, 89, 128, 77, 73, 78, 85, 83, 45, 79, 82, 45, 80, 76, 85, 211, 77, 73, - 78, 85, 83, 128, 77, 73, 78, 78, 65, 206, 77, 73, 78, 73, 83, 84, 69, 82, - 128, 77, 73, 78, 73, 77, 73, 90, 69, 128, 77, 73, 78, 73, 77, 65, 128, - 77, 73, 78, 73, 68, 73, 83, 67, 128, 77, 73, 78, 73, 66, 85, 83, 128, 77, - 73, 78, 68, 85, 128, 77, 73, 77, 69, 128, 77, 73, 77, 128, 77, 73, 76, - 76, 73, 79, 78, 83, 128, 77, 73, 76, 76, 73, 79, 78, 211, 77, 73, 76, 76, - 69, 84, 128, 77, 73, 76, 76, 197, 77, 73, 76, 204, 77, 73, 76, 75, 217, - 77, 73, 76, 75, 128, 77, 73, 76, 73, 84, 65, 82, 217, 77, 73, 76, 128, - 77, 73, 75, 85, 82, 79, 78, 128, 77, 73, 75, 82, 79, 206, 77, 73, 75, 82, - 73, 128, 77, 73, 73, 78, 128, 77, 73, 73, 77, 128, 77, 73, 73, 128, 77, - 73, 199, 77, 73, 69, 88, 128, 77, 73, 69, 85, 77, 45, 84, 73, 75, 69, 85, - 84, 128, 77, 73, 69, 85, 77, 45, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, - 77, 73, 69, 85, 77, 45, 83, 83, 65, 78, 71, 78, 73, 69, 85, 78, 128, 77, - 73, 69, 85, 77, 45, 82, 73, 69, 85, 76, 128, 77, 73, 69, 85, 77, 45, 80, - 73, 69, 85, 80, 45, 83, 73, 79, 83, 128, 77, 73, 69, 85, 77, 45, 80, 73, - 69, 85, 80, 128, 77, 73, 69, 85, 77, 45, 80, 65, 78, 83, 73, 79, 83, 128, - 77, 73, 69, 85, 77, 45, 78, 73, 69, 85, 78, 128, 77, 73, 69, 85, 77, 45, - 67, 73, 69, 85, 67, 128, 77, 73, 69, 85, 77, 45, 67, 72, 73, 69, 85, 67, - 72, 128, 77, 73, 69, 85, 205, 77, 73, 69, 80, 128, 77, 73, 69, 69, 128, - 77, 73, 69, 128, 77, 73, 68, 76, 73, 78, 197, 77, 73, 68, 68, 76, 69, 45, - 87, 69, 76, 83, 200, 77, 73, 68, 68, 76, 69, 128, 77, 73, 68, 45, 76, 69, - 86, 69, 204, 77, 73, 68, 45, 72, 69, 73, 71, 72, 212, 77, 73, 196, 77, - 73, 67, 82, 79, 83, 67, 79, 80, 69, 128, 77, 73, 67, 82, 79, 80, 72, 79, - 78, 69, 128, 77, 73, 67, 82, 79, 66, 69, 128, 77, 73, 67, 82, 207, 77, - 73, 67, 210, 77, 73, 45, 55, 128, 77, 73, 45, 54, 128, 77, 73, 45, 53, - 128, 77, 73, 45, 52, 128, 77, 73, 45, 51, 128, 77, 73, 45, 50, 128, 77, - 73, 45, 49, 128, 77, 72, 90, 128, 77, 72, 65, 128, 77, 72, 128, 77, 71, - 85, 88, 128, 77, 71, 85, 84, 128, 77, 71, 85, 82, 88, 128, 77, 71, 85, - 82, 128, 77, 71, 85, 80, 128, 77, 71, 85, 79, 88, 128, 77, 71, 85, 79, - 80, 128, 77, 71, 85, 79, 128, 77, 71, 85, 128, 77, 71, 79, 88, 128, 77, - 71, 79, 84, 128, 77, 71, 79, 80, 128, 77, 71, 79, 128, 77, 71, 207, 77, - 71, 73, 69, 88, 128, 77, 71, 73, 69, 128, 77, 71, 69, 88, 128, 77, 71, - 69, 80, 128, 77, 71, 69, 128, 77, 71, 66, 85, 128, 77, 71, 66, 79, 79, - 128, 77, 71, 66, 79, 70, 85, 77, 128, 77, 71, 66, 79, 128, 77, 71, 66, - 73, 128, 77, 71, 66, 69, 85, 78, 128, 77, 71, 66, 69, 78, 128, 77, 71, - 66, 69, 69, 128, 77, 71, 66, 69, 128, 77, 71, 66, 65, 83, 65, 81, 128, - 77, 71, 66, 65, 83, 65, 128, 77, 71, 65, 88, 128, 77, 71, 65, 84, 128, - 77, 71, 65, 80, 128, 77, 71, 65, 128, 77, 71, 128, 77, 70, 79, 78, 128, - 77, 70, 79, 206, 77, 70, 79, 128, 77, 70, 73, 89, 65, 81, 128, 77, 70, - 73, 69, 69, 128, 77, 70, 69, 85, 84, 128, 77, 70, 69, 85, 81, 128, 77, - 70, 69, 85, 65, 69, 128, 77, 70, 65, 65, 128, 77, 69, 90, 90, 79, 128, - 77, 69, 88, 128, 77, 69, 85, 212, 77, 69, 85, 81, 128, 77, 69, 85, 78, - 74, 79, 77, 78, 68, 69, 85, 81, 128, 77, 69, 85, 78, 128, 77, 69, 84, 82, - 79, 128, 77, 69, 84, 82, 73, 67, 65, 204, 77, 69, 84, 82, 73, 65, 128, - 77, 69, 84, 82, 69, 84, 69, 211, 77, 69, 84, 79, 66, 69, 76, 85, 83, 128, - 77, 69, 84, 69, 75, 128, 77, 69, 84, 69, 71, 128, 77, 69, 84, 65, 76, - 128, 77, 69, 84, 193, 77, 69, 83, 83, 69, 78, 73, 65, 206, 77, 69, 83, - 83, 65, 71, 69, 128, 77, 69, 83, 83, 65, 71, 197, 77, 69, 83, 79, 128, - 77, 69, 83, 73, 128, 77, 69, 83, 72, 128, 77, 69, 82, 80, 69, 82, 83, 79, - 78, 128, 77, 69, 82, 75, 72, 65, 128, 77, 69, 82, 75, 72, 193, 77, 69, - 82, 73, 68, 73, 65, 78, 83, 128, 77, 69, 82, 73, 128, 77, 69, 82, 71, 69, - 128, 77, 69, 82, 67, 85, 82, 89, 128, 77, 69, 82, 67, 85, 82, 217, 77, - 69, 78, 79, 82, 65, 200, 77, 69, 78, 79, 69, 128, 77, 69, 78, 68, 85, 84, - 128, 77, 69, 78, 128, 77, 69, 77, 79, 128, 77, 69, 77, 66, 69, 82, 83, - 72, 73, 80, 128, 77, 69, 77, 66, 69, 82, 128, 77, 69, 77, 66, 69, 210, - 77, 69, 77, 45, 81, 79, 80, 72, 128, 77, 69, 77, 128, 77, 69, 205, 77, - 69, 76, 84, 73, 78, 199, 77, 69, 76, 79, 68, 73, 195, 77, 69, 76, 73, 75, - 128, 77, 69, 73, 90, 73, 128, 77, 69, 71, 65, 84, 79, 78, 128, 77, 69, - 71, 65, 80, 72, 79, 78, 69, 128, 77, 69, 71, 65, 76, 73, 128, 77, 69, 69, - 84, 79, 82, 85, 128, 77, 69, 69, 84, 69, 201, 77, 69, 69, 84, 128, 77, - 69, 69, 77, 85, 128, 77, 69, 69, 77, 128, 77, 69, 69, 202, 77, 69, 69, - 69, 69, 128, 77, 69, 68, 73, 85, 77, 128, 77, 69, 68, 73, 85, 205, 77, - 69, 68, 73, 69, 86, 65, 204, 77, 69, 68, 73, 67, 73, 78, 69, 128, 77, 69, - 68, 73, 67, 65, 204, 77, 69, 68, 73, 65, 204, 77, 69, 68, 69, 70, 65, 73, - 68, 82, 73, 206, 77, 69, 68, 65, 76, 128, 77, 69, 67, 72, 73, 75, 128, - 77, 69, 67, 72, 73, 203, 77, 69, 67, 72, 65, 78, 73, 67, 65, 204, 77, 69, - 65, 84, 128, 77, 69, 65, 212, 77, 69, 65, 83, 85, 82, 69, 196, 77, 69, - 65, 83, 85, 82, 69, 128, 77, 69, 65, 83, 85, 82, 197, 77, 69, 45, 77, 65, - 128, 77, 69, 45, 50, 128, 77, 69, 45, 49, 128, 77, 68, 85, 206, 77, 196, - 77, 67, 72, 213, 77, 67, 72, 65, 206, 77, 67, 128, 77, 195, 77, 66, 85, - 85, 128, 77, 66, 85, 79, 81, 128, 77, 66, 85, 79, 128, 77, 66, 85, 69, - 128, 77, 66, 85, 65, 69, 77, 128, 77, 66, 85, 65, 69, 128, 77, 66, 79, - 79, 128, 77, 66, 79, 128, 77, 66, 73, 84, 128, 77, 66, 73, 212, 77, 66, - 73, 82, 73, 69, 69, 78, 128, 77, 66, 73, 128, 77, 66, 69, 85, 88, 128, - 77, 66, 69, 85, 82, 73, 128, 77, 66, 69, 85, 77, 128, 77, 66, 69, 82, 65, - 69, 128, 77, 66, 69, 78, 128, 77, 66, 69, 69, 75, 69, 69, 84, 128, 77, - 66, 69, 69, 128, 77, 66, 69, 128, 77, 66, 65, 81, 128, 77, 66, 65, 78, - 89, 73, 128, 77, 66, 65, 65, 82, 65, 69, 128, 77, 66, 65, 65, 75, 69, 84, - 128, 77, 66, 65, 65, 128, 77, 66, 65, 193, 77, 66, 193, 77, 66, 52, 128, - 77, 66, 51, 128, 77, 66, 50, 128, 77, 65, 89, 69, 203, 77, 65, 89, 65, - 78, 78, 65, 128, 77, 65, 89, 65, 206, 77, 65, 89, 128, 77, 65, 88, 73, - 77, 73, 90, 69, 128, 77, 65, 88, 73, 77, 65, 128, 77, 65, 88, 128, 77, - 65, 85, 128, 77, 65, 84, 84, 79, 67, 75, 128, 77, 65, 84, 82, 73, 88, - 128, 77, 65, 84, 69, 82, 73, 65, 76, 83, 128, 77, 65, 84, 128, 77, 65, - 83, 213, 77, 65, 83, 83, 73, 78, 71, 128, 77, 65, 83, 83, 65, 71, 69, - 128, 77, 65, 83, 79, 82, 193, 77, 65, 83, 75, 128, 77, 65, 83, 203, 77, - 65, 83, 72, 70, 65, 65, 84, 128, 77, 65, 83, 72, 50, 128, 77, 65, 83, 67, - 85, 76, 73, 78, 197, 77, 65, 83, 65, 82, 65, 205, 77, 65, 82, 89, 128, - 77, 65, 82, 87, 65, 82, 201, 77, 65, 82, 85, 75, 85, 128, 77, 65, 82, 84, - 89, 82, 73, 193, 77, 65, 82, 84, 73, 65, 204, 77, 65, 82, 82, 89, 73, 78, - 199, 77, 65, 82, 82, 73, 65, 71, 197, 77, 65, 82, 82, 65, 84, 65, 78, - 128, 77, 65, 82, 75, 211, 77, 65, 82, 75, 69, 82, 128, 77, 65, 82, 75, - 45, 52, 128, 77, 65, 82, 75, 45, 51, 128, 77, 65, 82, 75, 45, 50, 128, - 77, 65, 82, 75, 45, 49, 128, 77, 65, 82, 69, 128, 77, 65, 82, 67, 72, 69, - 206, 77, 65, 82, 67, 72, 128, 77, 65, 82, 67, 65, 84, 79, 45, 83, 84, 65, - 67, 67, 65, 84, 79, 128, 77, 65, 82, 67, 65, 84, 79, 128, 77, 65, 82, 67, - 65, 83, 73, 84, 69, 128, 77, 65, 82, 66, 85, 84, 65, 128, 77, 65, 82, 66, - 85, 84, 193, 77, 65, 82, 65, 67, 65, 83, 128, 77, 65, 82, 128, 77, 65, - 81, 65, 70, 128, 77, 65, 81, 128, 77, 65, 80, 76, 197, 77, 65, 80, 73, - 81, 128, 77, 65, 208, 77, 65, 79, 128, 77, 65, 78, 85, 65, 204, 77, 65, - 78, 84, 69, 76, 80, 73, 69, 67, 197, 77, 65, 78, 83, 89, 79, 78, 128, 77, - 65, 78, 83, 85, 65, 69, 128, 77, 65, 78, 78, 65, 218, 77, 65, 78, 78, 65, - 128, 77, 65, 78, 73, 67, 72, 65, 69, 65, 206, 77, 65, 78, 71, 79, 128, - 77, 65, 78, 71, 65, 76, 65, 77, 128, 77, 65, 78, 68, 65, 82, 73, 78, 128, - 77, 65, 78, 68, 65, 73, 76, 73, 78, 199, 77, 65, 78, 68, 65, 73, 195, 77, - 65, 78, 67, 72, 213, 77, 65, 78, 65, 212, 77, 65, 78, 65, 67, 76, 69, 83, - 128, 77, 65, 77, 77, 79, 84, 72, 128, 77, 65, 76, 84, 69, 83, 197, 77, - 65, 76, 207, 77, 65, 76, 69, 69, 82, 73, 128, 77, 65, 76, 197, 77, 65, - 76, 65, 75, 79, 206, 77, 65, 75, 83, 85, 82, 65, 128, 77, 65, 75, 83, 85, - 82, 193, 77, 65, 75, 69, 77, 65, 75, 69, 128, 77, 65, 75, 65, 83, 65, - 210, 77, 65, 73, 90, 69, 128, 77, 65, 73, 89, 65, 77, 79, 75, 128, 77, - 65, 73, 84, 65, 73, 75, 72, 85, 128, 77, 65, 73, 82, 85, 128, 77, 65, 73, - 77, 85, 65, 78, 128, 77, 65, 73, 77, 65, 76, 65, 73, 128, 77, 65, 73, 76, - 66, 79, 216, 77, 65, 73, 75, 85, 82, 79, 128, 77, 65, 73, 68, 69, 78, - 128, 77, 65, 73, 128, 77, 65, 72, 74, 79, 78, 199, 77, 65, 72, 72, 65, - 128, 77, 65, 72, 65, 80, 82, 65, 78, 65, 128, 77, 65, 72, 65, 80, 65, 75, - 72, 128, 77, 65, 72, 65, 74, 65, 78, 201, 77, 65, 72, 65, 65, 80, 82, 65, - 65, 78, 193, 77, 65, 72, 128, 77, 65, 71, 78, 73, 70, 89, 73, 78, 199, - 77, 65, 71, 78, 69, 84, 128, 77, 65, 71, 73, 195, 77, 65, 71, 69, 128, - 77, 65, 69, 83, 73, 128, 77, 65, 69, 78, 89, 73, 128, 77, 65, 69, 78, 74, - 69, 84, 128, 77, 65, 69, 77, 86, 69, 85, 88, 128, 77, 65, 69, 77, 75, 80, - 69, 78, 128, 77, 65, 69, 77, 71, 66, 73, 69, 69, 128, 77, 65, 69, 77, 66, - 71, 66, 73, 69, 69, 128, 77, 65, 69, 77, 66, 65, 128, 77, 65, 69, 77, - 128, 77, 65, 69, 76, 69, 69, 128, 77, 65, 69, 75, 69, 85, 80, 128, 77, - 65, 68, 89, 65, 128, 77, 65, 68, 85, 128, 77, 65, 68, 68, 65, 72, 128, - 77, 65, 68, 68, 65, 200, 77, 65, 68, 68, 65, 128, 77, 65, 68, 68, 193, - 77, 65, 67, 82, 79, 78, 45, 71, 82, 65, 86, 69, 128, 77, 65, 67, 82, 79, - 78, 45, 66, 82, 69, 86, 69, 128, 77, 65, 67, 82, 79, 78, 45, 65, 67, 85, - 84, 69, 128, 77, 65, 67, 82, 79, 78, 128, 77, 65, 67, 82, 79, 206, 77, - 65, 67, 72, 73, 78, 69, 128, 77, 65, 65, 89, 89, 65, 65, 128, 77, 65, 65, - 73, 128, 77, 65, 65, 128, 77, 65, 50, 128, 77, 65, 45, 55, 128, 77, 65, - 45, 54, 128, 77, 65, 45, 53, 128, 77, 65, 45, 52, 128, 77, 65, 45, 51, - 128, 77, 65, 45, 50, 128, 77, 65, 45, 49, 128, 77, 49, 57, 183, 77, 49, - 57, 182, 77, 49, 57, 181, 77, 49, 57, 180, 77, 49, 57, 179, 77, 49, 57, - 178, 77, 49, 57, 177, 77, 49, 57, 176, 77, 49, 56, 185, 77, 49, 56, 184, - 77, 49, 56, 183, 77, 49, 56, 182, 77, 49, 56, 181, 77, 49, 56, 180, 77, - 49, 56, 179, 77, 49, 56, 178, 77, 49, 56, 177, 77, 49, 56, 176, 77, 49, - 55, 185, 77, 49, 55, 184, 77, 49, 55, 183, 77, 49, 55, 182, 77, 49, 55, - 181, 77, 49, 55, 180, 77, 49, 55, 179, 77, 49, 55, 178, 77, 49, 55, 177, - 77, 49, 55, 176, 77, 49, 54, 185, 77, 49, 54, 184, 77, 49, 54, 183, 77, - 49, 54, 182, 77, 49, 54, 181, 77, 49, 54, 180, 77, 49, 54, 179, 77, 49, - 54, 178, 77, 49, 54, 177, 77, 49, 54, 176, 77, 49, 53, 185, 77, 49, 53, - 184, 77, 49, 53, 183, 77, 49, 53, 182, 77, 49, 53, 181, 77, 49, 53, 180, - 77, 49, 53, 179, 77, 49, 53, 178, 77, 49, 53, 177, 77, 49, 53, 176, 77, - 49, 52, 185, 77, 49, 52, 184, 77, 49, 52, 183, 77, 49, 52, 182, 77, 49, - 52, 181, 77, 49, 52, 180, 77, 49, 52, 179, 77, 49, 52, 178, 77, 49, 52, - 177, 77, 49, 52, 176, 77, 49, 51, 185, 77, 49, 51, 184, 77, 49, 51, 183, - 77, 49, 51, 182, 77, 49, 51, 181, 77, 49, 51, 180, 77, 49, 51, 179, 77, - 49, 51, 178, 77, 49, 51, 177, 77, 49, 51, 176, 77, 49, 50, 185, 77, 49, - 50, 184, 77, 49, 50, 183, 77, 49, 50, 182, 77, 49, 50, 181, 77, 49, 50, - 180, 77, 49, 50, 179, 77, 49, 50, 178, 77, 49, 50, 177, 77, 49, 50, 176, - 77, 49, 49, 185, 77, 49, 49, 184, 77, 49, 49, 183, 77, 49, 49, 182, 77, - 49, 49, 181, 77, 49, 49, 180, 77, 49, 49, 179, 77, 49, 49, 178, 77, 49, - 49, 177, 77, 49, 49, 176, 77, 49, 48, 185, 77, 49, 48, 184, 77, 49, 48, - 183, 77, 49, 48, 182, 77, 49, 48, 181, 77, 49, 48, 180, 77, 49, 48, 179, - 77, 49, 48, 178, 77, 49, 48, 177, 77, 49, 48, 176, 77, 48, 57, 185, 77, - 48, 57, 184, 77, 48, 57, 183, 77, 48, 57, 182, 77, 48, 57, 181, 77, 48, - 57, 180, 77, 48, 57, 179, 77, 48, 57, 178, 77, 48, 57, 177, 77, 48, 57, - 176, 77, 48, 56, 185, 77, 48, 56, 184, 77, 48, 56, 183, 77, 48, 56, 182, - 77, 48, 56, 181, 77, 48, 56, 180, 77, 48, 56, 179, 77, 48, 56, 178, 77, - 48, 56, 177, 77, 48, 56, 176, 77, 48, 55, 185, 77, 48, 55, 184, 77, 48, - 55, 183, 77, 48, 55, 182, 77, 48, 55, 181, 77, 48, 55, 180, 77, 48, 55, - 179, 77, 48, 55, 178, 77, 48, 55, 177, 77, 48, 55, 176, 77, 48, 54, 185, - 77, 48, 54, 184, 77, 48, 54, 183, 77, 48, 54, 182, 77, 48, 54, 181, 77, - 48, 54, 180, 77, 48, 54, 179, 77, 48, 54, 178, 77, 48, 54, 177, 77, 48, - 54, 176, 77, 48, 53, 185, 77, 48, 53, 184, 77, 48, 53, 183, 77, 48, 53, - 182, 77, 48, 53, 181, 77, 48, 53, 180, 77, 48, 53, 179, 77, 48, 53, 178, - 77, 48, 53, 177, 77, 48, 53, 176, 77, 48, 52, 185, 77, 48, 52, 184, 77, - 48, 52, 183, 77, 48, 52, 182, 77, 48, 52, 181, 77, 48, 52, 52, 128, 77, - 48, 52, 180, 77, 48, 52, 51, 128, 77, 48, 52, 179, 77, 48, 52, 50, 128, - 77, 48, 52, 178, 77, 48, 52, 49, 128, 77, 48, 52, 177, 77, 48, 52, 48, - 65, 128, 77, 48, 52, 48, 128, 77, 48, 52, 176, 77, 48, 51, 57, 128, 77, - 48, 51, 185, 77, 48, 51, 56, 128, 77, 48, 51, 184, 77, 48, 51, 55, 128, - 77, 48, 51, 183, 77, 48, 51, 54, 128, 77, 48, 51, 182, 77, 48, 51, 53, - 128, 77, 48, 51, 181, 77, 48, 51, 52, 128, 77, 48, 51, 180, 77, 48, 51, - 51, 66, 128, 77, 48, 51, 51, 65, 128, 77, 48, 51, 51, 128, 77, 48, 51, - 179, 77, 48, 51, 50, 128, 77, 48, 51, 178, 77, 48, 51, 49, 65, 128, 77, - 48, 51, 49, 128, 77, 48, 51, 177, 77, 48, 51, 48, 128, 77, 48, 51, 176, - 77, 48, 50, 57, 128, 77, 48, 50, 185, 77, 48, 50, 56, 65, 128, 77, 48, - 50, 56, 128, 77, 48, 50, 184, 77, 48, 50, 55, 128, 77, 48, 50, 183, 77, - 48, 50, 54, 128, 77, 48, 50, 182, 77, 48, 50, 53, 128, 77, 48, 50, 181, - 77, 48, 50, 52, 65, 128, 77, 48, 50, 52, 128, 77, 48, 50, 180, 77, 48, - 50, 51, 128, 77, 48, 50, 179, 77, 48, 50, 50, 65, 128, 77, 48, 50, 50, - 128, 77, 48, 50, 178, 77, 48, 50, 49, 128, 77, 48, 50, 177, 77, 48, 50, - 48, 128, 77, 48, 50, 176, 77, 48, 49, 57, 128, 77, 48, 49, 185, 77, 48, - 49, 56, 128, 77, 48, 49, 184, 77, 48, 49, 55, 65, 128, 77, 48, 49, 55, - 128, 77, 48, 49, 183, 77, 48, 49, 54, 65, 128, 77, 48, 49, 54, 128, 77, - 48, 49, 182, 77, 48, 49, 53, 65, 128, 77, 48, 49, 53, 128, 77, 48, 49, - 181, 77, 48, 49, 52, 128, 77, 48, 49, 180, 77, 48, 49, 51, 128, 77, 48, - 49, 179, 77, 48, 49, 50, 72, 128, 77, 48, 49, 50, 71, 128, 77, 48, 49, - 50, 70, 128, 77, 48, 49, 50, 69, 128, 77, 48, 49, 50, 68, 128, 77, 48, - 49, 50, 67, 128, 77, 48, 49, 50, 66, 128, 77, 48, 49, 50, 65, 128, 77, - 48, 49, 50, 128, 77, 48, 49, 178, 77, 48, 49, 49, 128, 77, 48, 49, 177, - 77, 48, 49, 48, 65, 128, 77, 48, 49, 48, 128, 77, 48, 49, 176, 77, 48, - 48, 57, 128, 77, 48, 48, 185, 77, 48, 48, 56, 128, 77, 48, 48, 184, 77, - 48, 48, 55, 128, 77, 48, 48, 183, 77, 48, 48, 54, 128, 77, 48, 48, 182, - 77, 48, 48, 53, 128, 77, 48, 48, 181, 77, 48, 48, 52, 128, 77, 48, 48, - 180, 77, 48, 48, 51, 65, 128, 77, 48, 48, 51, 128, 77, 48, 48, 179, 77, - 48, 48, 50, 128, 77, 48, 48, 178, 77, 48, 48, 49, 66, 128, 77, 48, 48, - 49, 65, 128, 77, 48, 48, 49, 128, 77, 48, 48, 177, 76, 218, 76, 89, 89, - 128, 76, 89, 88, 128, 76, 89, 84, 128, 76, 89, 82, 88, 128, 76, 89, 82, - 128, 76, 89, 80, 128, 76, 89, 73, 84, 128, 76, 89, 73, 78, 199, 76, 89, - 68, 73, 65, 206, 76, 89, 67, 73, 65, 206, 76, 88, 128, 76, 87, 79, 79, - 128, 76, 87, 79, 128, 76, 87, 73, 73, 128, 76, 87, 73, 128, 76, 87, 69, - 128, 76, 87, 65, 65, 128, 76, 87, 65, 128, 76, 85, 88, 128, 76, 85, 85, - 128, 76, 85, 84, 128, 76, 85, 82, 88, 128, 76, 85, 80, 128, 76, 85, 79, - 88, 128, 76, 85, 79, 84, 128, 76, 85, 79, 80, 128, 76, 85, 79, 128, 76, - 85, 78, 71, 83, 73, 128, 76, 85, 78, 71, 83, 128, 76, 85, 78, 65, 84, - 197, 76, 85, 78, 65, 210, 76, 85, 205, 76, 85, 76, 128, 76, 85, 73, 83, - 128, 76, 85, 72, 85, 82, 128, 76, 85, 72, 128, 76, 85, 200, 76, 85, 71, - 71, 65, 71, 69, 128, 76, 85, 71, 65, 76, 128, 76, 85, 71, 65, 204, 76, - 85, 69, 128, 76, 85, 197, 76, 85, 66, 128, 76, 85, 65, 69, 80, 128, 76, - 85, 51, 128, 76, 85, 50, 128, 76, 85, 178, 76, 82, 79, 128, 76, 82, 77, - 128, 76, 82, 73, 128, 76, 82, 69, 128, 76, 79, 90, 69, 78, 71, 69, 128, - 76, 79, 90, 69, 78, 71, 197, 76, 79, 88, 128, 76, 79, 87, 69, 82, 69, - 196, 76, 79, 87, 45, 82, 69, 86, 69, 82, 83, 69, 68, 45, 185, 76, 79, 87, - 45, 77, 73, 196, 76, 79, 87, 45, 70, 65, 76, 76, 73, 78, 199, 76, 79, 87, - 45, 185, 76, 79, 86, 197, 76, 79, 85, 82, 69, 128, 76, 79, 85, 68, 83, - 80, 69, 65, 75, 69, 82, 128, 76, 79, 85, 68, 76, 217, 76, 79, 84, 85, 83, - 128, 76, 79, 84, 85, 211, 76, 79, 84, 73, 79, 206, 76, 79, 84, 128, 76, - 79, 83, 212, 76, 79, 83, 83, 76, 69, 83, 83, 128, 76, 79, 82, 82, 89, - 128, 76, 79, 82, 82, 65, 73, 78, 69, 128, 76, 79, 81, 128, 76, 79, 80, - 128, 76, 79, 79, 84, 128, 76, 79, 79, 80, 69, 196, 76, 79, 79, 80, 128, - 76, 79, 79, 208, 76, 79, 79, 78, 128, 76, 79, 79, 203, 76, 79, 79, 128, - 76, 79, 78, 83, 85, 77, 128, 76, 79, 78, 71, 65, 128, 76, 79, 78, 71, - 193, 76, 79, 78, 71, 45, 76, 69, 71, 71, 69, 196, 76, 79, 78, 71, 45, 66, - 82, 65, 78, 67, 72, 45, 89, 82, 128, 76, 79, 78, 71, 45, 66, 82, 65, 78, - 67, 72, 45, 83, 79, 204, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, - 79, 83, 211, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 77, 65, 68, - 210, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 72, 65, 71, 65, 76, - 204, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 65, 210, 76, 79, 77, - 77, 65, 69, 128, 76, 79, 77, 75, 65, 128, 76, 79, 77, 128, 76, 79, 205, - 76, 79, 76, 76, 73, 80, 79, 80, 128, 76, 79, 76, 76, 128, 76, 79, 71, - 210, 76, 79, 71, 79, 84, 89, 80, 197, 76, 79, 71, 79, 71, 82, 65, 205, - 76, 79, 71, 128, 76, 79, 68, 69, 83, 84, 79, 78, 69, 128, 76, 79, 67, 79, - 77, 79, 84, 73, 86, 69, 128, 76, 79, 67, 75, 73, 78, 71, 45, 83, 72, 73, - 70, 212, 76, 79, 67, 65, 84, 73, 86, 69, 128, 76, 79, 67, 65, 84, 73, 79, - 78, 45, 87, 65, 76, 76, 80, 76, 65, 78, 197, 76, 79, 67, 65, 84, 73, 79, - 78, 45, 70, 76, 79, 79, 82, 80, 76, 65, 78, 197, 76, 79, 67, 65, 84, 73, - 79, 78, 128, 76, 79, 67, 65, 84, 73, 79, 206, 76, 79, 66, 83, 84, 69, 82, - 128, 76, 79, 65, 128, 76, 78, 128, 76, 76, 85, 85, 128, 76, 76, 79, 79, - 128, 76, 76, 76, 85, 85, 128, 76, 76, 76, 85, 128, 76, 76, 76, 79, 79, - 128, 76, 76, 76, 79, 128, 76, 76, 76, 73, 73, 128, 76, 76, 76, 73, 128, - 76, 76, 76, 69, 69, 128, 76, 76, 76, 69, 128, 76, 76, 76, 65, 85, 128, - 76, 76, 76, 65, 73, 128, 76, 76, 76, 65, 65, 128, 76, 76, 76, 65, 128, - 76, 76, 76, 128, 76, 76, 72, 65, 128, 76, 76, 65, 77, 65, 128, 76, 74, - 85, 68, 73, 74, 69, 128, 76, 74, 69, 128, 76, 74, 128, 76, 73, 90, 65, - 82, 68, 128, 76, 73, 88, 128, 76, 73, 87, 78, 128, 76, 73, 86, 82, 197, - 76, 73, 84, 84, 76, 69, 128, 76, 73, 84, 84, 76, 197, 76, 73, 84, 84, 69, - 210, 76, 73, 84, 82, 193, 76, 73, 84, 200, 76, 73, 83, 213, 76, 73, 83, - 128, 76, 73, 82, 193, 76, 73, 81, 85, 73, 68, 128, 76, 73, 81, 85, 73, - 196, 76, 73, 81, 128, 76, 73, 80, 83, 84, 73, 67, 75, 128, 76, 73, 80, - 211, 76, 73, 208, 76, 73, 78, 75, 73, 78, 199, 76, 73, 78, 75, 69, 196, - 76, 73, 78, 203, 76, 73, 78, 71, 83, 65, 128, 76, 73, 78, 69, 83, 128, - 76, 73, 78, 69, 211, 76, 73, 78, 69, 45, 57, 128, 76, 73, 78, 69, 45, 55, - 128, 76, 73, 78, 69, 45, 51, 128, 76, 73, 78, 69, 45, 49, 128, 76, 73, - 77, 77, 85, 52, 128, 76, 73, 77, 77, 85, 50, 128, 76, 73, 77, 77, 85, - 128, 76, 73, 77, 77, 213, 76, 73, 77, 73, 84, 69, 196, 76, 73, 77, 73, - 84, 65, 84, 73, 79, 78, 128, 76, 73, 77, 73, 84, 128, 76, 73, 77, 69, - 128, 76, 73, 77, 66, 213, 76, 73, 77, 66, 211, 76, 73, 77, 194, 76, 73, - 76, 89, 128, 76, 73, 76, 73, 84, 72, 128, 76, 73, 76, 128, 76, 73, 71, - 72, 84, 78, 73, 78, 71, 128, 76, 73, 71, 72, 84, 78, 73, 78, 199, 76, 73, - 71, 72, 84, 72, 79, 85, 83, 69, 128, 76, 73, 71, 72, 84, 128, 76, 73, 71, - 65, 84, 73, 78, 199, 76, 73, 70, 84, 69, 82, 128, 76, 73, 70, 69, 128, - 76, 73, 69, 88, 128, 76, 73, 69, 84, 128, 76, 73, 69, 80, 128, 76, 73, - 69, 69, 128, 76, 73, 69, 128, 76, 73, 68, 128, 76, 73, 67, 75, 73, 78, - 199, 76, 73, 66, 82, 65, 128, 76, 73, 66, 69, 82, 84, 89, 128, 76, 73, - 65, 66, 73, 76, 73, 84, 217, 76, 72, 73, 73, 128, 76, 72, 65, 86, 73, 89, - 65, 78, 73, 128, 76, 72, 65, 199, 76, 72, 65, 65, 128, 76, 72, 128, 76, - 69, 90, 72, 128, 76, 69, 90, 200, 76, 69, 88, 128, 76, 69, 86, 73, 84, - 65, 84, 73, 78, 71, 128, 76, 69, 86, 69, 76, 45, 51, 128, 76, 69, 86, 69, - 76, 45, 50, 128, 76, 69, 85, 77, 128, 76, 69, 85, 65, 69, 80, 128, 76, - 69, 85, 65, 69, 77, 128, 76, 69, 85, 128, 76, 69, 213, 76, 69, 84, 84, - 69, 82, 83, 128, 76, 69, 84, 84, 69, 82, 128, 76, 69, 212, 76, 69, 83, - 83, 69, 210, 76, 69, 83, 83, 45, 84, 72, 65, 78, 128, 76, 69, 83, 83, 45, - 84, 72, 65, 206, 76, 69, 83, 72, 128, 76, 69, 80, 67, 72, 193, 76, 69, - 80, 128, 76, 69, 79, 80, 65, 82, 68, 128, 76, 69, 79, 128, 76, 69, 78, - 84, 73, 67, 85, 76, 65, 210, 76, 69, 78, 73, 83, 128, 76, 69, 78, 73, - 211, 76, 69, 78, 71, 84, 72, 69, 78, 69, 82, 128, 76, 69, 78, 71, 84, 72, - 45, 55, 128, 76, 69, 78, 71, 84, 72, 45, 54, 128, 76, 69, 78, 71, 84, 72, - 45, 53, 128, 76, 69, 78, 71, 84, 72, 45, 52, 128, 76, 69, 78, 71, 84, 72, - 45, 51, 128, 76, 69, 78, 71, 84, 72, 45, 50, 128, 76, 69, 78, 71, 84, 72, - 45, 49, 128, 76, 69, 78, 71, 84, 200, 76, 69, 78, 71, 65, 128, 76, 69, - 78, 71, 193, 76, 69, 77, 79, 78, 128, 76, 69, 77, 79, 73, 128, 76, 69, - 76, 69, 84, 128, 76, 69, 76, 69, 212, 76, 69, 203, 76, 69, 73, 77, 77, - 65, 128, 76, 69, 73, 77, 77, 193, 76, 69, 73, 128, 76, 69, 71, 83, 128, - 76, 69, 71, 73, 79, 78, 128, 76, 69, 71, 69, 84, 79, 211, 76, 69, 71, - 128, 76, 69, 199, 76, 69, 70, 84, 87, 65, 82, 68, 83, 128, 76, 69, 70, - 84, 45, 84, 79, 45, 82, 73, 71, 72, 212, 76, 69, 70, 84, 45, 83, 84, 69, - 205, 76, 69, 70, 84, 45, 83, 73, 68, 197, 76, 69, 70, 84, 45, 83, 72, 65, - 68, 69, 196, 76, 69, 70, 84, 45, 80, 79, 73, 78, 84, 73, 78, 199, 76, 69, - 70, 84, 45, 76, 73, 71, 72, 84, 69, 196, 76, 69, 70, 84, 45, 72, 65, 78, - 68, 69, 196, 76, 69, 70, 84, 45, 72, 65, 78, 196, 76, 69, 70, 84, 45, 70, - 65, 67, 73, 78, 199, 76, 69, 70, 84, 128, 76, 69, 69, 82, 65, 69, 87, 65, - 128, 76, 69, 69, 75, 128, 76, 69, 69, 69, 69, 128, 76, 69, 68, 71, 69, - 82, 128, 76, 69, 65, 84, 72, 69, 82, 128, 76, 69, 65, 78, 73, 78, 199, - 76, 69, 65, 70, 217, 76, 69, 65, 70, 128, 76, 69, 65, 198, 76, 69, 65, - 68, 69, 82, 128, 76, 69, 65, 196, 76, 68, 65, 78, 128, 76, 68, 50, 128, - 76, 67, 201, 76, 67, 197, 76, 65, 90, 217, 76, 65, 89, 65, 78, 78, 65, - 128, 76, 65, 88, 128, 76, 65, 87, 128, 76, 65, 215, 76, 65, 85, 76, 65, - 128, 76, 65, 85, 75, 65, 218, 76, 65, 85, 74, 128, 76, 65, 85, 71, 72, - 73, 78, 71, 128, 76, 65, 84, 73, 78, 65, 84, 197, 76, 65, 84, 73, 75, - 128, 76, 65, 84, 69, 82, 65, 204, 76, 65, 84, 197, 76, 65, 83, 212, 76, - 65, 82, 89, 78, 71, 69, 65, 204, 76, 65, 82, 201, 76, 65, 82, 71, 69, 83, - 84, 128, 76, 65, 82, 71, 69, 210, 76, 65, 82, 71, 69, 128, 76, 65, 82, - 71, 197, 76, 65, 81, 128, 76, 65, 80, 65, 81, 128, 76, 65, 207, 76, 65, - 78, 84, 69, 82, 78, 128, 76, 65, 78, 84, 65, 78, 71, 128, 76, 65, 78, 71, - 85, 65, 71, 197, 76, 65, 78, 69, 83, 128, 76, 65, 78, 196, 76, 65, 78, - 128, 76, 65, 77, 80, 128, 76, 65, 77, 69, 68, 72, 128, 76, 65, 77, 69, - 68, 128, 76, 65, 77, 69, 196, 76, 65, 77, 69, 128, 76, 65, 77, 197, 76, - 65, 77, 68, 65, 128, 76, 65, 77, 68, 128, 76, 65, 77, 66, 68, 193, 76, - 65, 77, 65, 68, 72, 128, 76, 65, 76, 128, 76, 65, 204, 76, 65, 75, 75, - 72, 65, 78, 71, 89, 65, 79, 128, 76, 65, 75, 72, 65, 78, 128, 76, 65, 75, - 72, 128, 76, 65, 75, 200, 76, 65, 75, 45, 55, 52, 57, 128, 76, 65, 75, - 45, 55, 50, 52, 128, 76, 65, 75, 45, 54, 54, 56, 128, 76, 65, 75, 45, 54, - 52, 56, 128, 76, 65, 75, 45, 54, 52, 184, 76, 65, 75, 45, 54, 51, 54, - 128, 76, 65, 75, 45, 54, 49, 55, 128, 76, 65, 75, 45, 54, 49, 183, 76, - 65, 75, 45, 54, 48, 56, 128, 76, 65, 75, 45, 53, 53, 48, 128, 76, 65, 75, - 45, 52, 57, 53, 128, 76, 65, 75, 45, 52, 57, 51, 128, 76, 65, 75, 45, 52, - 57, 50, 128, 76, 65, 75, 45, 52, 57, 48, 128, 76, 65, 75, 45, 52, 56, 51, - 128, 76, 65, 75, 45, 52, 55, 48, 128, 76, 65, 75, 45, 52, 53, 55, 128, - 76, 65, 75, 45, 52, 53, 48, 128, 76, 65, 75, 45, 52, 52, 57, 128, 76, 65, - 75, 45, 52, 52, 185, 76, 65, 75, 45, 52, 52, 49, 128, 76, 65, 75, 45, 51, - 57, 48, 128, 76, 65, 75, 45, 51, 56, 52, 128, 76, 65, 75, 45, 51, 56, 51, - 128, 76, 65, 75, 45, 51, 52, 56, 128, 76, 65, 75, 45, 51, 52, 55, 128, - 76, 65, 75, 45, 51, 52, 51, 128, 76, 65, 75, 45, 50, 54, 54, 128, 76, 65, - 75, 45, 50, 54, 53, 128, 76, 65, 75, 45, 50, 51, 56, 128, 76, 65, 75, 45, - 50, 50, 56, 128, 76, 65, 75, 45, 50, 50, 53, 128, 76, 65, 75, 45, 50, 50, - 48, 128, 76, 65, 75, 45, 50, 49, 57, 128, 76, 65, 75, 45, 50, 49, 48, - 128, 76, 65, 75, 45, 49, 52, 50, 128, 76, 65, 75, 45, 49, 51, 48, 128, - 76, 65, 75, 45, 48, 57, 50, 128, 76, 65, 75, 45, 48, 56, 49, 128, 76, 65, - 75, 45, 48, 56, 177, 76, 65, 75, 45, 48, 56, 48, 128, 76, 65, 75, 45, 48, - 55, 185, 76, 65, 75, 45, 48, 54, 50, 128, 76, 65, 75, 45, 48, 53, 49, - 128, 76, 65, 75, 45, 48, 53, 48, 128, 76, 65, 75, 45, 48, 51, 48, 128, - 76, 65, 75, 45, 48, 50, 53, 128, 76, 65, 75, 45, 48, 50, 49, 128, 76, 65, - 75, 45, 48, 50, 48, 128, 76, 65, 75, 45, 48, 48, 51, 128, 76, 65, 74, 65, - 78, 89, 65, 76, 65, 78, 128, 76, 65, 73, 78, 199, 76, 65, 201, 76, 65, - 72, 83, 72, 85, 128, 76, 65, 72, 128, 76, 65, 71, 85, 83, 128, 76, 65, - 71, 213, 76, 65, 71, 65, 82, 128, 76, 65, 71, 65, 210, 76, 65, 71, 65, - 66, 128, 76, 65, 71, 65, 194, 76, 65, 69, 86, 128, 76, 65, 69, 128, 76, - 65, 68, 217, 76, 65, 68, 68, 69, 82, 128, 76, 65, 67, 82, 79, 83, 83, - 197, 76, 65, 67, 75, 128, 76, 65, 67, 65, 128, 76, 65, 66, 79, 85, 82, - 73, 78, 71, 128, 76, 65, 66, 79, 82, 128, 76, 65, 66, 73, 65, 76, 73, 90, - 65, 84, 73, 79, 206, 76, 65, 66, 73, 65, 204, 76, 65, 66, 69, 76, 128, - 76, 65, 66, 65, 84, 128, 76, 65, 194, 76, 65, 65, 78, 65, 69, 128, 76, - 65, 65, 78, 128, 76, 65, 65, 77, 85, 128, 76, 65, 65, 73, 128, 76, 54, - 128, 76, 52, 128, 76, 51, 128, 76, 50, 128, 76, 48, 48, 54, 65, 128, 76, - 48, 48, 50, 65, 128, 76, 45, 84, 89, 80, 197, 76, 45, 83, 72, 65, 80, 69, - 196, 75, 89, 85, 82, 73, 73, 128, 75, 89, 85, 128, 75, 89, 79, 128, 75, - 89, 76, 73, 83, 77, 65, 128, 75, 89, 73, 128, 75, 89, 69, 128, 75, 89, - 65, 84, 72, 79, 211, 75, 89, 65, 65, 128, 75, 89, 65, 128, 75, 88, 87, - 73, 128, 75, 88, 87, 69, 69, 128, 75, 88, 87, 69, 128, 75, 88, 87, 65, - 65, 128, 75, 88, 87, 65, 128, 75, 88, 85, 128, 75, 88, 79, 128, 75, 88, - 73, 128, 75, 88, 69, 69, 128, 75, 88, 69, 128, 75, 88, 65, 65, 128, 75, - 88, 65, 128, 75, 87, 86, 128, 75, 87, 85, 51, 49, 56, 128, 75, 87, 79, - 79, 128, 75, 87, 79, 128, 75, 87, 77, 128, 75, 87, 73, 73, 128, 75, 87, - 73, 128, 75, 87, 69, 69, 128, 75, 87, 69, 128, 75, 87, 66, 128, 75, 87, - 65, 89, 128, 75, 87, 65, 69, 84, 128, 75, 87, 65, 65, 128, 75, 86, 65, - 128, 75, 86, 128, 75, 85, 90, 72, 73, 128, 75, 85, 88, 128, 75, 85, 86, - 128, 75, 85, 85, 72, 128, 75, 85, 84, 128, 75, 85, 83, 77, 65, 128, 75, - 85, 83, 72, 85, 50, 128, 75, 85, 83, 72, 85, 178, 75, 85, 82, 88, 128, - 75, 85, 82, 85, 90, 69, 73, 82, 79, 128, 75, 85, 82, 84, 128, 75, 85, 82, - 79, 79, 78, 69, 128, 75, 85, 82, 128, 75, 85, 210, 75, 85, 81, 128, 75, - 85, 80, 78, 65, 89, 65, 128, 75, 85, 79, 88, 128, 75, 85, 79, 80, 128, - 75, 85, 79, 208, 75, 85, 79, 77, 128, 75, 85, 79, 128, 75, 85, 78, 71, - 128, 75, 85, 78, 68, 68, 65, 76, 73, 89, 65, 128, 75, 85, 76, 128, 75, - 85, 204, 75, 85, 71, 128, 75, 85, 70, 73, 83, 77, 65, 128, 75, 85, 69, - 84, 128, 75, 85, 66, 128, 75, 85, 65, 86, 128, 75, 85, 65, 66, 128, 75, - 85, 65, 128, 75, 85, 55, 128, 75, 85, 52, 128, 75, 85, 180, 75, 85, 51, - 128, 75, 85, 179, 75, 85, 45, 55, 128, 75, 85, 45, 54, 128, 75, 85, 45, - 53, 128, 75, 85, 45, 52, 128, 75, 85, 45, 51, 128, 75, 85, 45, 50, 128, - 75, 85, 45, 49, 128, 75, 84, 128, 75, 83, 83, 85, 85, 128, 75, 83, 83, - 85, 128, 75, 83, 83, 79, 79, 128, 75, 83, 83, 79, 128, 75, 83, 83, 73, - 73, 128, 75, 83, 83, 73, 128, 75, 83, 83, 69, 69, 128, 75, 83, 83, 69, - 128, 75, 83, 83, 65, 85, 128, 75, 83, 83, 65, 73, 128, 75, 83, 83, 65, - 65, 128, 75, 83, 83, 65, 128, 75, 83, 83, 128, 75, 83, 73, 128, 75, 82, - 89, 90, 72, 69, 86, 65, 89, 65, 128, 75, 82, 89, 90, 72, 69, 77, 128, 75, - 82, 89, 90, 72, 69, 205, 75, 82, 89, 90, 72, 128, 75, 82, 89, 90, 200, - 75, 82, 89, 85, 75, 79, 86, 65, 89, 65, 128, 75, 82, 89, 85, 75, 79, 86, - 65, 89, 193, 75, 82, 89, 85, 75, 128, 75, 82, 89, 85, 203, 75, 82, 79, - 78, 79, 83, 128, 75, 82, 69, 77, 65, 83, 84, 73, 128, 75, 82, 65, 84, 73, - 77, 79, 89, 80, 79, 82, 82, 79, 79, 78, 128, 75, 82, 65, 84, 73, 77, 79, - 75, 79, 85, 70, 73, 83, 77, 65, 128, 75, 82, 65, 84, 73, 77, 65, 84, 65, - 128, 75, 82, 65, 84, 73, 77, 193, 75, 80, 85, 128, 75, 80, 79, 81, 128, - 75, 80, 79, 79, 128, 75, 80, 79, 128, 75, 80, 73, 128, 75, 80, 69, 85, - 88, 128, 75, 80, 69, 69, 128, 75, 80, 69, 128, 75, 80, 65, 82, 65, 81, - 128, 75, 80, 65, 78, 128, 75, 80, 65, 72, 128, 75, 80, 65, 128, 75, 80, - 128, 75, 79, 88, 128, 75, 79, 86, 85, 85, 128, 75, 79, 86, 128, 75, 79, - 84, 79, 128, 75, 79, 82, 85, 78, 65, 128, 75, 79, 82, 79, 78, 73, 83, - 128, 75, 79, 82, 79, 78, 128, 75, 79, 82, 69, 65, 206, 75, 79, 82, 65, - 78, 73, 195, 75, 79, 81, 78, 68, 79, 78, 128, 75, 79, 80, 80, 65, 128, - 75, 79, 80, 128, 75, 79, 79, 86, 128, 75, 79, 79, 80, 79, 128, 75, 79, - 79, 77, 85, 85, 84, 128, 75, 79, 79, 66, 128, 75, 79, 79, 128, 75, 79, - 78, 84, 69, 86, 77, 65, 128, 75, 79, 78, 84, 69, 86, 77, 193, 75, 79, 77, - 201, 75, 79, 77, 66, 85, 86, 65, 128, 75, 79, 77, 66, 85, 86, 193, 75, - 79, 77, 66, 213, 75, 79, 75, 79, 128, 75, 79, 75, 69, 128, 75, 79, 75, - 128, 75, 79, 203, 75, 79, 73, 78, 73, 128, 75, 79, 73, 128, 75, 79, 201, - 75, 79, 72, 128, 75, 79, 71, 72, 79, 77, 128, 75, 79, 69, 84, 128, 75, - 79, 66, 89, 76, 65, 128, 75, 79, 66, 128, 75, 79, 65, 76, 65, 128, 75, - 79, 65, 128, 75, 79, 45, 75, 73, 128, 75, 79, 45, 51, 128, 75, 79, 45, - 50, 128, 75, 79, 45, 49, 128, 75, 78, 85, 67, 75, 76, 69, 83, 128, 75, - 78, 85, 67, 75, 76, 69, 128, 75, 78, 79, 84, 128, 75, 78, 79, 66, 83, - 128, 75, 78, 73, 71, 72, 84, 45, 82, 79, 79, 75, 128, 75, 78, 73, 71, 72, - 84, 45, 81, 85, 69, 69, 78, 128, 75, 78, 73, 71, 72, 84, 45, 66, 73, 83, - 72, 79, 80, 128, 75, 78, 73, 71, 72, 84, 128, 75, 78, 73, 71, 72, 212, - 75, 78, 73, 70, 69, 128, 75, 78, 73, 70, 197, 75, 78, 69, 69, 76, 73, 78, - 199, 75, 77, 128, 75, 205, 75, 76, 89, 85, 67, 72, 69, 86, 79, 89, 128, - 75, 76, 89, 85, 67, 72, 69, 86, 65, 89, 65, 128, 75, 76, 89, 85, 67, 72, - 69, 86, 65, 89, 193, 75, 76, 89, 85, 67, 72, 69, 80, 79, 86, 79, 68, 78, - 89, 128, 75, 76, 89, 85, 67, 72, 69, 80, 79, 86, 79, 68, 78, 65, 89, 65, - 128, 75, 76, 89, 85, 67, 72, 69, 78, 69, 80, 79, 83, 84, 79, 89, 65, 78, - 78, 89, 128, 75, 76, 89, 85, 67, 72, 69, 78, 69, 80, 79, 83, 84, 79, 89, - 65, 78, 78, 65, 89, 65, 128, 75, 76, 89, 85, 67, 72, 128, 75, 76, 73, 84, - 79, 78, 128, 75, 76, 65, 83, 77, 65, 128, 75, 76, 65, 83, 77, 193, 75, - 76, 65, 128, 75, 76, 128, 75, 75, 79, 128, 75, 75, 73, 128, 75, 75, 69, - 69, 128, 75, 75, 69, 128, 75, 75, 65, 128, 75, 75, 128, 75, 74, 69, 128, - 75, 73, 89, 69, 79, 75, 45, 84, 73, 75, 69, 85, 84, 128, 75, 73, 89, 69, - 79, 75, 45, 83, 73, 79, 83, 45, 75, 73, 89, 69, 79, 75, 128, 75, 73, 89, - 69, 79, 75, 45, 82, 73, 69, 85, 76, 128, 75, 73, 89, 69, 79, 75, 45, 80, - 73, 69, 85, 80, 128, 75, 73, 89, 69, 79, 75, 45, 78, 73, 69, 85, 78, 128, - 75, 73, 89, 69, 79, 75, 45, 75, 72, 73, 69, 85, 75, 72, 128, 75, 73, 89, - 69, 79, 75, 45, 67, 72, 73, 69, 85, 67, 72, 128, 75, 73, 89, 69, 79, 203, - 75, 73, 88, 128, 75, 73, 87, 73, 70, 82, 85, 73, 84, 128, 75, 73, 87, - 128, 75, 73, 86, 128, 75, 73, 84, 69, 128, 75, 73, 84, 128, 75, 73, 83, - 83, 73, 78, 199, 75, 73, 83, 83, 128, 75, 73, 83, 211, 75, 73, 83, 73, - 77, 53, 128, 75, 73, 83, 73, 77, 181, 75, 73, 83, 72, 128, 75, 73, 83, - 65, 76, 128, 75, 73, 82, 79, 87, 65, 84, 84, 79, 128, 75, 73, 82, 79, 77, - 69, 69, 84, 79, 82, 85, 128, 75, 73, 82, 79, 71, 85, 82, 65, 77, 85, 128, - 75, 73, 82, 79, 128, 75, 73, 82, 71, 72, 73, 218, 75, 73, 81, 128, 75, - 73, 80, 128, 75, 73, 208, 75, 73, 78, 83, 72, 73, 80, 128, 75, 73, 78, - 78, 193, 75, 73, 78, 68, 69, 82, 71, 65, 82, 84, 69, 78, 128, 75, 73, 77, - 79, 78, 79, 128, 75, 73, 76, 76, 69, 82, 128, 75, 73, 73, 90, 72, 128, - 75, 73, 73, 128, 75, 73, 72, 128, 75, 73, 69, 88, 128, 75, 73, 69, 86, - 65, 206, 75, 73, 69, 80, 128, 75, 73, 69, 69, 77, 128, 75, 73, 69, 128, - 75, 73, 68, 128, 75, 73, 196, 75, 73, 67, 75, 128, 75, 73, 66, 128, 75, - 73, 65, 86, 128, 75, 73, 65, 66, 128, 75, 73, 45, 56, 128, 75, 73, 45, - 55, 128, 75, 73, 45, 54, 128, 75, 73, 45, 53, 128, 75, 73, 45, 52, 128, - 75, 73, 45, 51, 128, 75, 73, 45, 50, 128, 75, 73, 45, 49, 128, 75, 72, - 90, 128, 75, 72, 87, 65, 73, 128, 75, 72, 85, 69, 78, 45, 76, 85, 197, - 75, 72, 85, 69, 206, 75, 72, 85, 68, 65, 87, 65, 68, 201, 75, 72, 85, 68, - 65, 77, 128, 75, 72, 85, 65, 84, 128, 75, 72, 79, 85, 128, 75, 72, 79, - 212, 75, 72, 79, 78, 78, 65, 128, 75, 72, 79, 78, 128, 75, 72, 79, 77, - 85, 84, 128, 75, 72, 79, 75, 72, 76, 79, 205, 75, 72, 79, 74, 75, 201, - 75, 72, 79, 128, 75, 72, 207, 75, 72, 77, 213, 75, 72, 73, 84, 128, 75, - 72, 73, 78, 89, 65, 128, 75, 72, 73, 69, 85, 75, 200, 75, 72, 73, 128, - 75, 72, 201, 75, 72, 72, 79, 128, 75, 72, 72, 65, 128, 75, 72, 69, 84, - 72, 128, 75, 72, 69, 73, 128, 75, 72, 69, 69, 128, 75, 72, 69, 128, 75, - 72, 65, 86, 128, 75, 72, 65, 82, 79, 83, 72, 84, 72, 201, 75, 72, 65, 82, - 128, 75, 72, 65, 80, 72, 128, 75, 72, 65, 78, 199, 75, 72, 65, 78, 68, - 65, 128, 75, 72, 65, 78, 68, 193, 75, 72, 65, 77, 84, 201, 75, 72, 65, - 77, 73, 76, 79, 128, 75, 72, 65, 75, 65, 83, 83, 73, 65, 206, 75, 72, 65, - 73, 128, 75, 72, 65, 72, 128, 75, 72, 65, 200, 75, 72, 65, 70, 128, 75, - 72, 65, 66, 128, 75, 72, 65, 65, 128, 75, 71, 128, 75, 69, 89, 67, 65, - 80, 128, 75, 69, 89, 67, 65, 208, 75, 69, 89, 66, 79, 65, 82, 68, 128, - 75, 69, 89, 66, 79, 65, 82, 196, 75, 69, 88, 128, 75, 69, 86, 128, 75, - 69, 85, 89, 69, 85, 88, 128, 75, 69, 85, 83, 72, 69, 85, 65, 69, 80, 128, - 75, 69, 85, 83, 69, 85, 88, 128, 75, 69, 85, 80, 85, 81, 128, 75, 69, 85, - 79, 212, 75, 69, 85, 77, 128, 75, 69, 85, 75, 69, 85, 84, 78, 68, 65, - 128, 75, 69, 85, 75, 65, 81, 128, 75, 69, 85, 65, 69, 84, 77, 69, 85, 78, - 128, 75, 69, 85, 65, 69, 82, 73, 128, 75, 69, 84, 84, 201, 75, 69, 83, - 72, 50, 128, 75, 69, 82, 69, 84, 128, 75, 69, 79, 87, 128, 75, 69, 78, - 84, 73, 77, 65, 84, 65, 128, 75, 69, 78, 84, 73, 77, 65, 84, 193, 75, 69, - 78, 84, 73, 77, 193, 75, 69, 78, 65, 84, 128, 75, 69, 78, 128, 75, 69, - 206, 75, 69, 77, 80, 85, 76, 128, 75, 69, 77, 80, 85, 204, 75, 69, 77, - 80, 76, 73, 128, 75, 69, 77, 80, 76, 201, 75, 69, 77, 80, 72, 82, 69, 78, - 71, 128, 75, 69, 77, 66, 65, 78, 71, 128, 75, 69, 76, 86, 73, 206, 75, - 69, 72, 69, 72, 128, 75, 69, 72, 69, 200, 75, 69, 72, 128, 75, 69, 70, - 85, 76, 65, 128, 75, 69, 69, 86, 128, 75, 69, 69, 83, 85, 128, 75, 69, - 69, 80, 73, 78, 199, 75, 69, 69, 78, 71, 128, 75, 69, 69, 66, 128, 75, - 69, 66, 128, 75, 69, 65, 65, 69, 128, 75, 67, 65, 76, 128, 75, 66, 128, - 75, 65, 90, 65, 75, 200, 75, 65, 89, 65, 78, 78, 65, 128, 75, 65, 89, 65, - 200, 75, 65, 88, 128, 75, 65, 87, 86, 128, 75, 65, 87, 73, 128, 75, 65, - 87, 201, 75, 65, 87, 66, 128, 75, 65, 86, 89, 75, 65, 128, 75, 65, 86, - 89, 75, 193, 75, 65, 86, 128, 75, 65, 85, 86, 128, 75, 65, 85, 78, 65, - 128, 75, 65, 85, 206, 75, 65, 85, 66, 128, 75, 65, 84, 79, 128, 75, 65, - 84, 72, 73, 83, 84, 73, 128, 75, 65, 84, 72, 65, 75, 193, 75, 65, 84, 65, - 86, 65, 83, 77, 65, 128, 75, 65, 84, 65, 86, 193, 75, 65, 84, 65, 75, 65, - 78, 65, 45, 72, 73, 82, 65, 71, 65, 78, 193, 75, 65, 83, 82, 65, 84, 65, - 78, 128, 75, 65, 83, 82, 65, 84, 65, 206, 75, 65, 83, 82, 65, 128, 75, - 65, 83, 82, 193, 75, 65, 83, 75, 65, 76, 128, 75, 65, 83, 75, 65, 204, - 75, 65, 83, 72, 77, 73, 82, 201, 75, 65, 82, 83, 72, 65, 78, 65, 128, 75, - 65, 82, 79, 82, 73, 73, 128, 75, 65, 82, 79, 82, 65, 78, 128, 75, 65, 82, - 79, 82, 128, 75, 65, 82, 207, 75, 65, 82, 69, 206, 75, 65, 82, 65, 84, - 84, 79, 128, 75, 65, 82, 65, 78, 128, 75, 65, 80, 89, 69, 79, 85, 78, 83, - 83, 65, 78, 71, 80, 73, 69, 85, 80, 128, 75, 65, 80, 89, 69, 79, 85, 78, - 82, 73, 69, 85, 76, 128, 75, 65, 80, 89, 69, 79, 85, 78, 80, 72, 73, 69, - 85, 80, 72, 128, 75, 65, 80, 89, 69, 79, 85, 78, 77, 73, 69, 85, 77, 128, - 75, 65, 80, 80, 65, 128, 75, 65, 80, 80, 193, 75, 65, 80, 79, 128, 75, - 65, 80, 72, 128, 75, 65, 80, 65, 76, 128, 75, 65, 80, 65, 128, 75, 65, - 208, 75, 65, 78, 84, 65, 74, 193, 75, 65, 78, 78, 65, 68, 193, 75, 65, - 78, 71, 65, 82, 79, 79, 128, 75, 65, 78, 71, 128, 75, 65, 78, 199, 75, - 65, 78, 65, 75, 79, 128, 75, 65, 77, 52, 128, 75, 65, 77, 50, 128, 75, - 65, 77, 128, 75, 65, 75, 84, 79, 86, 73, 203, 75, 65, 75, 79, 128, 75, - 65, 75, 65, 66, 65, 84, 128, 75, 65, 75, 128, 75, 65, 203, 75, 65, 73, - 86, 128, 75, 65, 73, 84, 72, 201, 75, 65, 73, 82, 73, 128, 75, 65, 73, - 66, 128, 75, 65, 73, 128, 75, 65, 201, 75, 65, 70, 65, 128, 75, 65, 70, - 128, 75, 65, 198, 75, 65, 68, 53, 128, 75, 65, 68, 181, 75, 65, 68, 52, - 128, 75, 65, 68, 51, 128, 75, 65, 68, 179, 75, 65, 68, 50, 128, 75, 65, - 68, 128, 75, 65, 67, 72, 75, 65, 128, 75, 65, 66, 193, 75, 65, 66, 128, - 75, 65, 65, 86, 128, 75, 65, 65, 73, 128, 75, 65, 65, 70, 85, 128, 75, - 65, 65, 70, 128, 75, 65, 65, 67, 85, 128, 75, 65, 65, 66, 65, 128, 75, - 65, 65, 66, 128, 75, 65, 50, 128, 75, 65, 178, 75, 65, 45, 75, 69, 128, - 75, 65, 45, 57, 128, 75, 65, 45, 56, 128, 75, 65, 45, 55, 128, 75, 65, - 45, 54, 128, 75, 65, 45, 53, 128, 75, 65, 45, 52, 128, 75, 65, 45, 51, - 128, 75, 65, 45, 50, 128, 75, 65, 45, 49, 49, 128, 75, 65, 45, 49, 48, - 128, 75, 65, 45, 49, 128, 75, 48, 48, 56, 128, 75, 48, 48, 55, 128, 75, - 48, 48, 54, 128, 75, 48, 48, 53, 128, 75, 48, 48, 52, 128, 75, 48, 48, - 51, 128, 75, 48, 48, 50, 128, 75, 48, 48, 49, 128, 74, 87, 65, 128, 74, - 85, 85, 128, 74, 85, 84, 128, 74, 85, 83, 84, 73, 70, 73, 67, 65, 84, 73, - 79, 78, 128, 74, 85, 80, 73, 84, 69, 82, 128, 74, 85, 79, 84, 128, 74, - 85, 79, 80, 128, 74, 85, 78, 79, 128, 74, 85, 78, 71, 83, 69, 79, 78, - 199, 74, 85, 78, 69, 128, 74, 85, 76, 89, 128, 74, 85, 71, 71, 76, 73, - 78, 71, 128, 74, 85, 69, 85, 73, 128, 74, 85, 68, 85, 76, 128, 74, 85, - 68, 71, 69, 128, 74, 85, 68, 69, 79, 45, 83, 80, 65, 78, 73, 83, 200, 74, - 79, 89, 83, 84, 73, 67, 75, 128, 74, 79, 89, 79, 85, 211, 74, 79, 89, - 128, 74, 79, 86, 69, 128, 74, 79, 212, 74, 79, 78, 71, 128, 74, 79, 78, - 193, 74, 79, 75, 69, 82, 128, 74, 79, 73, 78, 84, 83, 128, 74, 79, 73, - 78, 69, 68, 128, 74, 79, 73, 78, 128, 74, 79, 65, 128, 74, 78, 89, 65, - 128, 74, 74, 89, 88, 128, 74, 74, 89, 84, 128, 74, 74, 89, 80, 128, 74, - 74, 89, 128, 74, 74, 85, 88, 128, 74, 74, 85, 84, 128, 74, 74, 85, 82, - 88, 128, 74, 74, 85, 82, 128, 74, 74, 85, 80, 128, 74, 74, 85, 79, 88, - 128, 74, 74, 85, 79, 80, 128, 74, 74, 85, 79, 128, 74, 74, 85, 128, 74, - 74, 79, 88, 128, 74, 74, 79, 84, 128, 74, 74, 79, 80, 128, 74, 74, 79, - 128, 74, 74, 73, 88, 128, 74, 74, 73, 84, 128, 74, 74, 73, 80, 128, 74, - 74, 73, 69, 88, 128, 74, 74, 73, 69, 84, 128, 74, 74, 73, 69, 80, 128, - 74, 74, 73, 69, 128, 74, 74, 73, 128, 74, 74, 69, 69, 128, 74, 74, 69, - 128, 74, 74, 65, 128, 74, 73, 76, 128, 74, 73, 73, 77, 128, 74, 73, 73, - 128, 74, 73, 72, 86, 65, 77, 85, 76, 73, 89, 65, 128, 74, 73, 71, 83, 65, - 215, 74, 73, 65, 128, 74, 72, 79, 88, 128, 74, 72, 79, 128, 74, 72, 69, - 72, 128, 74, 72, 65, 89, 73, 78, 128, 74, 72, 65, 78, 128, 74, 72, 65, - 77, 128, 74, 72, 65, 65, 128, 74, 72, 65, 128, 74, 69, 85, 128, 74, 69, - 82, 85, 83, 65, 76, 69, 77, 128, 74, 69, 82, 65, 206, 74, 69, 82, 65, - 128, 74, 69, 82, 128, 74, 69, 76, 76, 89, 70, 73, 83, 72, 128, 74, 69, - 72, 128, 74, 69, 200, 74, 69, 71, 79, 71, 65, 78, 128, 74, 69, 69, 77, - 128, 74, 69, 69, 205, 74, 69, 65, 78, 83, 128, 74, 65, 89, 78, 128, 74, - 65, 89, 73, 78, 128, 74, 65, 89, 65, 78, 78, 65, 128, 74, 65, 87, 128, - 74, 65, 86, 73, 89, 65, 78, 73, 128, 74, 65, 86, 65, 78, 69, 83, 197, 74, - 65, 85, 128, 74, 65, 82, 128, 74, 65, 80, 65, 78, 69, 83, 197, 74, 65, - 80, 65, 78, 128, 74, 65, 78, 85, 65, 82, 89, 128, 74, 65, 76, 76, 65, 74, - 65, 76, 65, 76, 79, 85, 72, 79, 85, 128, 74, 65, 76, 76, 128, 74, 65, 73, - 206, 74, 65, 73, 128, 74, 65, 72, 128, 74, 65, 68, 69, 128, 74, 65, 67, - 75, 83, 128, 74, 65, 67, 75, 45, 79, 45, 76, 65, 78, 84, 69, 82, 78, 128, - 74, 65, 67, 203, 74, 45, 83, 73, 77, 80, 76, 73, 70, 73, 69, 196, 73, 90, - 72, 73, 84, 83, 65, 128, 73, 90, 72, 73, 84, 83, 193, 73, 90, 72, 69, - 128, 73, 90, 65, 75, 65, 89, 193, 73, 89, 69, 75, 128, 73, 89, 65, 78, - 78, 65, 128, 73, 85, 74, 65, 128, 73, 84, 211, 73, 84, 69, 82, 65, 84, - 73, 79, 206, 73, 84, 69, 77, 128, 73, 83, 83, 72, 65, 82, 128, 73, 83, - 79, 83, 67, 69, 76, 69, 211, 73, 83, 79, 78, 128, 73, 83, 79, 206, 73, - 83, 79, 76, 65, 84, 69, 128, 73, 83, 76, 65, 78, 68, 128, 73, 83, 72, 77, - 65, 65, 77, 128, 73, 83, 69, 78, 45, 73, 83, 69, 78, 128, 73, 83, 65, 75, - 73, 193, 73, 83, 45, 80, 73, 76, 76, 65, 128, 73, 82, 85, 89, 65, 78, 78, - 65, 128, 73, 82, 85, 85, 89, 65, 78, 78, 65, 128, 73, 82, 79, 78, 45, 67, - 79, 80, 80, 69, 210, 73, 82, 79, 78, 128, 73, 82, 66, 128, 73, 79, 84, - 73, 70, 73, 69, 196, 73, 79, 84, 65, 84, 69, 196, 73, 79, 84, 65, 128, - 73, 79, 84, 193, 73, 79, 82, 128, 73, 79, 78, 71, 128, 73, 79, 68, 72, - 65, 68, 72, 128, 73, 78, 86, 73, 83, 73, 66, 76, 197, 73, 78, 86, 69, 82, - 84, 69, 68, 128, 73, 78, 86, 69, 82, 84, 69, 196, 73, 78, 86, 69, 82, 84, - 69, 66, 82, 65, 84, 69, 128, 73, 78, 86, 69, 82, 83, 197, 73, 78, 84, 82, - 79, 68, 85, 67, 69, 82, 128, 73, 78, 84, 73, 128, 73, 78, 84, 69, 82, 83, - 89, 76, 76, 65, 66, 73, 195, 73, 78, 84, 69, 82, 83, 69, 67, 84, 73, 79, - 78, 128, 73, 78, 84, 69, 82, 83, 69, 67, 84, 73, 79, 206, 73, 78, 84, 69, - 82, 83, 69, 67, 84, 73, 78, 199, 73, 78, 84, 69, 82, 82, 79, 66, 65, 78, - 71, 128, 73, 78, 84, 69, 82, 82, 79, 66, 65, 78, 199, 73, 78, 84, 69, 82, - 80, 79, 76, 65, 84, 73, 79, 206, 73, 78, 84, 69, 82, 76, 79, 67, 75, 69, - 196, 73, 78, 84, 69, 82, 76, 73, 78, 69, 65, 210, 73, 78, 84, 69, 82, 76, - 65, 67, 69, 196, 73, 78, 84, 69, 82, 73, 79, 210, 73, 78, 84, 69, 82, 69, - 83, 212, 73, 78, 84, 69, 82, 67, 65, 76, 65, 84, 69, 128, 73, 78, 84, 69, - 71, 82, 65, 84, 73, 79, 78, 128, 73, 78, 84, 69, 71, 82, 65, 84, 73, 79, - 206, 73, 78, 84, 69, 71, 82, 65, 76, 128, 73, 78, 84, 69, 71, 82, 65, - 204, 73, 78, 83, 85, 76, 65, 210, 73, 78, 83, 84, 82, 85, 77, 69, 78, 84, - 65, 204, 73, 78, 83, 73, 68, 69, 128, 73, 78, 83, 73, 68, 197, 73, 78, - 83, 69, 82, 84, 73, 79, 206, 73, 78, 83, 69, 82, 212, 73, 78, 83, 69, 67, - 84, 128, 73, 78, 83, 67, 82, 73, 80, 84, 73, 79, 78, 65, 204, 73, 78, 80, - 85, 212, 73, 78, 78, 79, 67, 69, 78, 67, 69, 128, 73, 78, 78, 78, 128, - 73, 78, 78, 69, 82, 128, 73, 78, 78, 69, 210, 73, 78, 78, 128, 73, 78, - 73, 78, 71, 85, 128, 73, 78, 72, 73, 66, 73, 212, 73, 78, 72, 69, 82, 69, - 78, 212, 73, 78, 72, 65, 76, 69, 128, 73, 78, 71, 87, 65, 90, 128, 73, - 78, 70, 79, 82, 77, 65, 84, 73, 79, 206, 73, 78, 70, 76, 85, 69, 78, 67, - 69, 128, 73, 78, 70, 73, 78, 73, 84, 89, 128, 73, 78, 70, 73, 78, 73, 84, - 217, 73, 78, 68, 85, 83, 84, 82, 73, 65, 204, 73, 78, 68, 73, 82, 69, 67, - 212, 73, 78, 68, 73, 67, 84, 73, 79, 206, 73, 78, 68, 73, 67, 65, 84, 79, - 82, 128, 73, 78, 68, 73, 67, 65, 84, 79, 210, 73, 78, 68, 73, 195, 73, - 78, 68, 73, 65, 206, 73, 78, 68, 69, 88, 128, 73, 78, 68, 69, 80, 69, 78, - 68, 69, 78, 212, 73, 78, 67, 82, 69, 77, 69, 78, 84, 128, 73, 78, 67, 82, - 69, 65, 83, 69, 211, 73, 78, 67, 82, 69, 65, 83, 69, 128, 73, 78, 67, 82, - 69, 65, 83, 197, 73, 78, 67, 79, 77, 80, 76, 69, 84, 197, 73, 78, 67, 79, - 77, 73, 78, 199, 73, 78, 67, 76, 85, 68, 73, 78, 199, 73, 78, 67, 72, - 128, 73, 78, 66, 79, 216, 73, 78, 65, 80, 128, 73, 78, 45, 65, 76, 65, - 70, 128, 73, 77, 80, 69, 82, 73, 65, 204, 73, 77, 80, 69, 82, 70, 69, 67, - 84, 85, 205, 73, 77, 80, 69, 82, 70, 69, 67, 84, 65, 128, 73, 77, 80, 69, - 82, 70, 69, 67, 84, 193, 73, 77, 78, 128, 73, 77, 73, 83, 69, 79, 211, - 73, 77, 73, 78, 51, 128, 73, 77, 73, 78, 128, 73, 77, 73, 206, 73, 77, - 73, 70, 84, 72, 79, 82, 79, 78, 128, 73, 77, 73, 70, 84, 72, 79, 82, 65, - 128, 73, 77, 73, 70, 79, 78, 79, 78, 128, 73, 77, 73, 68, 73, 65, 82, 71, - 79, 78, 128, 73, 77, 65, 71, 197, 73, 77, 65, 65, 76, 65, 128, 73, 76, - 85, 89, 65, 78, 78, 65, 128, 73, 76, 85, 89, 128, 73, 76, 85, 85, 89, 65, - 78, 78, 65, 128, 73, 76, 85, 84, 128, 73, 76, 73, 77, 77, 85, 52, 128, - 73, 76, 73, 77, 77, 85, 51, 128, 73, 76, 73, 77, 77, 85, 128, 73, 76, 73, - 77, 77, 213, 73, 76, 50, 128, 73, 75, 73, 82, 128, 73, 75, 65, 82, 65, - 128, 73, 75, 65, 82, 193, 73, 74, 128, 73, 73, 89, 65, 78, 78, 65, 128, - 73, 71, 73, 128, 73, 71, 201, 73, 71, 71, 87, 83, 128, 73, 70, 73, 78, - 128, 73, 69, 85, 78, 71, 45, 84, 73, 75, 69, 85, 84, 128, 73, 69, 85, 78, - 71, 45, 84, 72, 73, 69, 85, 84, 72, 128, 73, 69, 85, 78, 71, 45, 82, 73, - 69, 85, 76, 128, 73, 69, 85, 78, 71, 45, 80, 73, 69, 85, 80, 128, 73, 69, - 85, 78, 71, 45, 80, 72, 73, 69, 85, 80, 72, 128, 73, 69, 85, 78, 71, 45, - 67, 73, 69, 85, 67, 128, 73, 69, 85, 78, 71, 45, 67, 72, 73, 69, 85, 67, - 72, 128, 73, 69, 85, 78, 199, 73, 68, 76, 69, 128, 73, 68, 73, 77, 128, - 73, 68, 73, 205, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 57, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 56, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 55, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 68, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 68, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 68, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 51, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 50, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 49, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 68, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 67, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 67, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 68, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 67, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 66, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 67, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 67, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 67, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 55, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 54, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 53, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 67, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 67, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 67, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 49, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 48, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 70, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 66, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 66, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 66, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 66, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 65, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 57, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 66, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 66, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 66, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 53, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 52, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 51, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 66, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 66, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 66, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 70, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 69, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 68, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 65, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 65, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 65, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 57, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 56, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 55, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 65, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 65, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 65, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 51, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 50, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 49, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 65, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 57, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 57, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 68, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 67, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 66, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 57, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 57, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 57, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 55, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 54, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 53, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 57, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 57, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 57, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 49, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 48, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 70, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 56, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 56, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 56, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 66, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 65, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 57, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 56, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 56, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 56, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 53, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 52, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 51, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 56, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 56, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 56, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 70, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 69, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 68, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 55, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 55, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 55, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 57, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 56, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 55, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 55, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 55, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 55, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 51, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 50, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 49, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 55, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 54, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 54, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 66, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 65, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 57, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 54, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 54, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 54, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 53, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 52, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 51, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 54, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 54, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 54, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 70, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 69, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 68, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 53, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 53, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 53, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 57, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 56, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 55, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 53, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 53, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 53, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 51, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 50, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 49, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 53, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 52, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 52, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 68, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 67, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 66, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 52, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 52, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 52, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 55, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 54, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 53, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 52, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 52, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 52, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 49, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 48, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 70, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 51, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 51, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 51, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 66, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 65, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 57, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 51, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 51, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 51, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 53, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 52, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 51, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 51, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 51, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 51, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 70, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 69, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 68, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 50, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 50, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 50, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 57, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 56, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 55, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 50, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 50, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 50, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 51, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 50, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 49, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 50, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 49, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 49, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 68, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 67, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 66, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 49, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 49, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 49, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 55, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 54, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 53, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 49, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 49, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 49, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 49, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 48, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 70, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 48, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 48, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 48, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 66, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 65, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 57, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 48, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 48, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 48, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 53, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 52, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 51, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 48, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 48, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 70, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 69, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 68, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 70, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 70, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 70, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 57, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 56, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 55, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 70, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 70, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 70, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 51, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 50, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 49, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 70, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 69, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 69, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 68, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 67, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 66, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 69, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 69, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 69, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 55, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 54, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 53, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 69, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 69, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 69, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 49, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 48, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 70, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 68, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 68, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 68, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 66, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 65, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 57, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 68, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 68, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 68, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 53, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 52, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 51, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 68, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 68, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 68, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 70, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 69, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 68, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 67, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 67, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 67, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 57, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 56, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 55, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 67, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 67, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 67, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 51, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 50, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 49, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 67, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 66, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 66, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 68, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 67, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 66, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 66, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 66, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 66, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 55, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 54, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 53, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 66, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 66, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 66, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 49, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 48, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 70, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 65, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 65, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 65, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 66, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 65, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 57, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 65, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 65, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 65, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 53, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 52, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 51, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 65, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 65, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 65, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 70, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 69, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 68, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 57, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 57, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 57, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 57, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 56, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 55, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 57, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 57, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 57, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 51, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 50, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 49, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 57, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 56, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 56, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 68, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 67, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 66, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 56, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 56, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 56, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 55, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 54, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 53, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 56, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 56, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 56, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 49, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 48, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 70, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 55, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 55, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 55, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 66, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 65, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 57, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 55, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 55, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 55, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 53, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 52, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 51, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 55, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 55, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 55, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 70, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 69, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 68, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 54, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 54, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 54, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 57, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 56, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 55, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 54, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 54, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 54, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 51, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 50, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 49, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 54, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 53, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 53, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 68, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 67, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 66, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 53, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 53, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 53, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 55, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 54, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 53, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 53, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 53, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 53, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 49, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 48, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 70, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 52, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 52, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 52, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 66, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 65, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 57, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 52, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 52, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 52, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 53, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 52, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 51, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 52, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 52, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 52, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 70, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 69, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 68, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 51, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 51, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 51, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 57, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 56, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 55, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 51, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 51, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 51, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 51, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 50, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 49, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 51, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 50, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 50, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 68, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 67, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 66, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 50, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 50, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 55, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 54, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 53, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 50, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 50, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 50, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 49, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 48, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 70, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 49, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 49, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 66, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 65, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 57, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 49, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 49, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 49, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 53, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 52, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 51, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 49, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 49, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 49, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 70, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 69, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 68, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 48, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 48, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 48, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 57, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 56, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 55, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 48, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 48, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 48, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 51, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 50, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 49, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 57, 49, 52, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 57, - 48, 52, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 56, 68, 55, 48, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 56, 67, 65, 57, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 56, 57, 69, 51, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 55, 68, 52, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 55, 65, 55, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 55, - 57, 56, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 55, 54, 68, 55, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 55, 53, 51, 51, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 55, 53, 49, 70, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 55, 49, 50, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 55, 48, 66, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, - 70, 49, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 69, 56, 48, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 55, 50, 67, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 54, 55, 48, 57, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 54, 55, 48, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 54, 54, 50, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, - 53, 66, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 53, 57, 57, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 53, 53, 55, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 54, 51, 53, 53, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 54, 51, 48, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 54, 50, 57, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, - 50, 53, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 50, 52, 66, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 70, 56, 67, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 53, 68, 69, 54, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 53, 66, 56, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 53, 66, 53, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, - 57, 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 57, 49, 65, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 56, 70, 48, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 53, 53, 66, 54, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 53, 52, 51, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 53, 52, 48, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, - 51, 70, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 51, 67, 67, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 50, 68, 68, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 53, 50, 55, 50, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 53, 50, 52, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 53, 50, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, - 49, 56, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 52, 69, 65, 52, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 52, 69, 56, 67, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 52, 69, 50, 68, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 52, 69, 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 52, 69, 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 65, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, - 49, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 66, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 65, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 57, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 56, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 65, 49, 55, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 65, 49, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 65, 49, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 65, 49, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, - 49, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 50, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 49, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 48, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 70, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 65, 48, 69, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 65, 48, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 65, 48, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 65, 48, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, - 48, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 57, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 56, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 55, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 54, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 65, 48, 53, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 65, 48, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 65, 48, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 65, 48, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, - 48, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 48, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 70, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 69, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 68, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 70, 67, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 70, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 70, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 70, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 70, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 55, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 54, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 53, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 52, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 70, 51, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 70, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 70, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 70, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 69, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 69, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 68, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 67, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 66, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 69, 65, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 69, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 69, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 69, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 69, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 53, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 52, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 51, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 50, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 69, 49, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 69, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 68, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 68, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 68, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 67, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 66, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 65, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 57, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 68, 56, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 68, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 68, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 68, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 68, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 51, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 50, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 49, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 48, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 67, 70, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 67, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 67, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 67, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 67, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 65, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 57, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 56, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 55, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 67, 54, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 67, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 67, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 67, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 67, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 49, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 48, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 70, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 69, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 66, 68, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 66, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 66, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 66, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 66, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 56, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 55, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 54, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 53, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 66, 52, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 66, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 66, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 66, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 66, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 70, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 69, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 68, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 67, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 65, 66, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 65, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 65, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 65, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 65, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 54, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 53, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 52, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 51, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 65, 50, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 65, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 65, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 57, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 57, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 68, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 67, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 66, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 65, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 57, 57, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 57, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 57, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 57, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 57, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 52, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 51, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 50, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 49, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 57, 48, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 56, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 56, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 56, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 56, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 66, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 65, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 57, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 56, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 56, 55, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 56, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 56, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 56, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 56, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 50, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 49, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 48, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 70, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 55, 69, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 55, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 55, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 55, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 55, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 57, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 56, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 55, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 54, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 55, 53, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 55, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 55, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 55, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 55, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 48, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 70, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 69, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 68, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 54, 67, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 54, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 54, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 54, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 54, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 55, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 54, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 53, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 52, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 54, 51, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 54, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 54, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 54, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 53, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 69, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 68, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 67, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 66, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 53, 65, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 53, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 53, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 53, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 53, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 53, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 52, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 51, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 50, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 53, 49, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 53, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 52, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 52, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 52, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 67, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 66, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 65, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 57, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 52, 56, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 52, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 52, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 52, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 52, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 51, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 50, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 49, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 48, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 51, 70, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 51, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 51, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 51, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 51, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 65, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 57, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 56, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 55, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 51, 54, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 51, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 51, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 51, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 51, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 49, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 48, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 70, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 69, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 50, 68, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 50, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 50, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 50, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 56, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 55, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 54, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 53, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 50, 52, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 50, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 50, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 50, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 50, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 70, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 69, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 68, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 67, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 49, 66, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 49, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 49, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 49, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 49, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 54, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 53, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 52, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 51, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 49, 50, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 49, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 49, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 48, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 48, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 68, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 67, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 66, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 65, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 48, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 48, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 48, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 48, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 52, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 51, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 50, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 49, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 70, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 70, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 70, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 70, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 66, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 65, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 57, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 56, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 70, 55, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 70, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 70, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 70, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 70, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 50, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 49, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 48, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 70, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 69, 69, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 69, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 69, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 69, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 69, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 57, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 56, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 55, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 54, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 69, 53, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 69, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 69, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 69, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 69, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 48, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 70, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 69, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 68, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 68, 67, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 68, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 68, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 68, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 68, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 55, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 54, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 53, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 52, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 68, 51, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 68, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 68, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 68, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 67, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 69, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 68, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 67, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 66, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 67, 65, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 67, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 67, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 67, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 67, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 53, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 52, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 51, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 50, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 67, 49, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 67, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 66, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 66, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 66, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 67, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 66, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 65, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 57, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 66, 56, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 66, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 66, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 66, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 66, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 51, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 50, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 49, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 48, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 65, 70, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 65, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 65, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 65, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 65, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 65, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 57, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 56, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 55, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 65, 54, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 65, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 65, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 65, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 65, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 49, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 48, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 70, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 69, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 57, 68, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 57, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 57, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 57, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 57, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 56, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 55, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 54, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 53, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 57, 52, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 57, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 57, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 57, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 57, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 70, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 69, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 68, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 67, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 56, 66, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 56, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 56, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 56, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 56, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 54, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 53, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 52, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 51, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 56, 50, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 56, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 56, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 55, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 55, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 68, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 67, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 66, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 65, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 55, 57, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 55, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 55, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 55, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 55, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 52, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 51, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 50, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 49, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 55, 48, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 54, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 54, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 54, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 54, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 66, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 65, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 57, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 56, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 54, 55, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 54, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 54, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 54, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 54, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 50, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 49, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 48, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 70, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 53, 69, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 53, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 53, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 53, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 53, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 57, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 56, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 55, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 54, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 53, 53, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 53, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 53, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 53, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 53, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 48, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 70, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 69, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 68, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 52, 67, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 52, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 52, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 52, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 52, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 55, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 54, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 53, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 52, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 52, 51, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 52, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 52, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 52, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 51, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 69, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 68, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 67, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 66, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 51, 65, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 51, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 51, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 51, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 51, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 53, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 52, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 51, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 50, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 51, 49, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 51, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 50, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 50, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 50, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 67, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 66, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 65, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 57, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 50, 56, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 50, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 50, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 50, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 50, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 51, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 50, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 49, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 48, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 49, 70, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 49, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 49, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 49, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 65, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 57, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 56, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 55, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 49, 54, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 49, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 49, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 49, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 49, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 49, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 48, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 70, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 69, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 48, 68, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 48, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 48, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 48, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 56, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 55, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 54, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 53, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 48, 52, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 48, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 48, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 48, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 200, 73, 68, 69, 78, 84, 73, - 70, 73, 67, 65, 84, 73, 79, 78, 128, 73, 68, 69, 78, 84, 73, 70, 73, 67, - 65, 84, 73, 79, 206, 73, 68, 69, 78, 84, 73, 67, 65, 204, 73, 68, 68, - 128, 73, 67, 79, 78, 128, 73, 67, 72, 79, 85, 128, 73, 67, 72, 79, 83, - 128, 73, 67, 72, 73, 77, 65, 84, 79, 83, 128, 73, 67, 72, 65, 68, 73, 78, - 128, 73, 67, 69, 76, 65, 78, 68, 73, 67, 45, 89, 82, 128, 73, 66, 73, 70, - 73, 76, 73, 128, 73, 65, 85, 68, 65, 128, 73, 48, 49, 53, 128, 73, 48, - 49, 52, 128, 73, 48, 49, 51, 128, 73, 48, 49, 50, 128, 73, 48, 49, 49, - 65, 128, 73, 48, 49, 49, 128, 73, 48, 49, 48, 65, 128, 73, 48, 49, 48, - 128, 73, 48, 48, 57, 65, 128, 73, 48, 48, 57, 128, 73, 48, 48, 56, 128, - 73, 48, 48, 55, 128, 73, 48, 48, 54, 128, 73, 48, 48, 53, 65, 128, 73, - 48, 48, 53, 128, 73, 48, 48, 52, 128, 73, 48, 48, 51, 128, 73, 48, 48, - 50, 128, 73, 48, 48, 49, 128, 73, 45, 89, 85, 128, 73, 45, 89, 79, 128, - 73, 45, 89, 69, 79, 128, 73, 45, 89, 69, 128, 73, 45, 89, 65, 69, 128, - 73, 45, 89, 65, 45, 79, 128, 73, 45, 89, 65, 128, 73, 45, 79, 45, 73, - 128, 73, 45, 79, 128, 73, 45, 69, 85, 128, 73, 45, 66, 69, 65, 77, 128, - 73, 45, 65, 82, 65, 69, 65, 128, 73, 45, 65, 128, 72, 90, 90, 90, 71, - 128, 72, 90, 90, 90, 128, 72, 90, 90, 80, 128, 72, 90, 90, 128, 72, 90, - 87, 71, 128, 72, 90, 87, 128, 72, 90, 84, 128, 72, 90, 71, 128, 72, 89, - 83, 84, 69, 82, 69, 83, 73, 211, 72, 89, 80, 79, 68, 73, 65, 83, 84, 79, - 76, 69, 128, 72, 89, 80, 72, 69, 78, 65, 84, 73, 79, 206, 72, 89, 80, 72, - 69, 78, 45, 77, 73, 78, 85, 83, 128, 72, 89, 80, 72, 69, 78, 128, 72, 89, - 80, 72, 69, 206, 72, 89, 71, 73, 69, 73, 65, 128, 72, 89, 71, 73, 69, 65, - 128, 72, 89, 65, 67, 73, 78, 84, 72, 128, 72, 88, 87, 71, 128, 72, 88, - 85, 79, 88, 128, 72, 88, 85, 79, 84, 128, 72, 88, 85, 79, 80, 128, 72, - 88, 85, 79, 128, 72, 88, 79, 88, 128, 72, 88, 79, 84, 128, 72, 88, 79, - 80, 128, 72, 88, 79, 128, 72, 88, 73, 88, 128, 72, 88, 73, 84, 128, 72, - 88, 73, 80, 128, 72, 88, 73, 69, 88, 128, 72, 88, 73, 69, 84, 128, 72, - 88, 73, 69, 80, 128, 72, 88, 73, 69, 128, 72, 88, 73, 128, 72, 88, 69, - 88, 128, 72, 88, 69, 80, 128, 72, 88, 69, 128, 72, 88, 65, 88, 128, 72, - 88, 65, 84, 128, 72, 88, 65, 80, 128, 72, 88, 65, 128, 72, 87, 85, 128, - 72, 87, 65, 73, 82, 128, 72, 87, 65, 72, 128, 72, 85, 86, 65, 128, 72, - 85, 83, 72, 69, 196, 72, 85, 83, 72, 128, 72, 85, 82, 65, 78, 128, 72, - 85, 79, 84, 128, 72, 85, 78, 68, 82, 69, 68, 83, 128, 72, 85, 78, 68, 82, - 69, 68, 211, 72, 85, 78, 68, 82, 69, 68, 128, 72, 85, 78, 68, 82, 69, - 196, 72, 85, 78, 128, 72, 85, 77, 208, 72, 85, 77, 65, 78, 128, 72, 85, - 77, 65, 206, 72, 85, 76, 50, 128, 72, 85, 73, 73, 84, 79, 128, 72, 85, - 71, 71, 73, 78, 71, 128, 72, 85, 71, 71, 73, 78, 199, 72, 85, 66, 50, - 128, 72, 85, 66, 178, 72, 85, 66, 128, 72, 85, 65, 82, 65, 68, 68, 79, - 128, 72, 85, 65, 78, 128, 72, 85, 45, 51, 128, 72, 85, 45, 50, 128, 72, - 85, 45, 49, 128, 72, 84, 84, 65, 128, 72, 84, 83, 128, 72, 84, 74, 128, - 72, 82, 89, 86, 78, 73, 193, 72, 80, 87, 71, 128, 72, 80, 65, 128, 72, - 80, 128, 72, 79, 85, 83, 197, 72, 79, 85, 82, 71, 76, 65, 83, 83, 128, - 72, 79, 85, 82, 71, 76, 65, 83, 211, 72, 79, 85, 82, 128, 72, 79, 85, - 210, 72, 79, 84, 69, 76, 128, 72, 79, 84, 65, 128, 72, 79, 83, 80, 73, - 84, 65, 76, 128, 72, 79, 82, 83, 69, 128, 72, 79, 82, 83, 197, 72, 79, - 82, 82, 128, 72, 79, 82, 78, 83, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, - 76, 76, 89, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 76, 217, 72, 79, - 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 54, 45, 48, 54, 128, 72, 79, 82, - 73, 90, 79, 78, 84, 65, 76, 45, 48, 54, 45, 48, 53, 128, 72, 79, 82, 73, - 90, 79, 78, 84, 65, 76, 45, 48, 54, 45, 48, 52, 128, 72, 79, 82, 73, 90, - 79, 78, 84, 65, 76, 45, 48, 54, 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, - 78, 84, 65, 76, 45, 48, 54, 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, 78, - 84, 65, 76, 45, 48, 54, 45, 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, - 65, 76, 45, 48, 54, 45, 48, 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, - 76, 45, 48, 53, 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, - 45, 48, 53, 45, 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, - 48, 53, 45, 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, - 53, 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, - 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, - 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, 48, - 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 52, 45, 48, 54, - 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 52, 45, 48, 53, 128, - 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 52, 45, 48, 52, 128, 72, - 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 52, 45, 48, 51, 128, 72, 79, - 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 52, 45, 48, 50, 128, 72, 79, 82, - 73, 90, 79, 78, 84, 65, 76, 45, 48, 52, 45, 48, 49, 128, 72, 79, 82, 73, - 90, 79, 78, 84, 65, 76, 45, 48, 52, 45, 48, 48, 128, 72, 79, 82, 73, 90, - 79, 78, 84, 65, 76, 45, 48, 51, 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, - 78, 84, 65, 76, 45, 48, 51, 45, 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, - 84, 65, 76, 45, 48, 51, 45, 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, - 65, 76, 45, 48, 51, 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, - 76, 45, 48, 51, 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, - 45, 48, 51, 45, 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, - 48, 51, 45, 48, 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, - 50, 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 50, - 45, 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 50, 45, - 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 50, 45, 48, - 51, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 50, 45, 48, 50, - 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 50, 45, 48, 49, 128, - 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 50, 45, 48, 48, 128, 72, - 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 49, 45, 48, 54, 128, 72, 79, - 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 49, 45, 48, 53, 128, 72, 79, 82, - 73, 90, 79, 78, 84, 65, 76, 45, 48, 49, 45, 48, 52, 128, 72, 79, 82, 73, - 90, 79, 78, 84, 65, 76, 45, 48, 49, 45, 48, 51, 128, 72, 79, 82, 73, 90, - 79, 78, 84, 65, 76, 45, 48, 49, 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, - 78, 84, 65, 76, 45, 48, 49, 45, 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, - 84, 65, 76, 45, 48, 49, 45, 48, 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, - 65, 76, 45, 48, 48, 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, - 76, 45, 48, 48, 45, 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, - 45, 48, 48, 45, 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, - 48, 48, 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, - 48, 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, - 45, 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, - 48, 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 128, 72, 79, 82, 73, - 90, 79, 78, 84, 65, 204, 72, 79, 82, 73, 128, 72, 79, 82, 193, 72, 79, - 79, 85, 128, 72, 79, 79, 82, 85, 128, 72, 79, 79, 80, 128, 72, 79, 79, - 78, 128, 72, 79, 79, 75, 69, 68, 128, 72, 79, 79, 75, 69, 196, 72, 79, - 78, 69, 89, 66, 69, 69, 128, 72, 79, 78, 69, 217, 72, 79, 77, 79, 84, 72, - 69, 84, 73, 67, 128, 72, 79, 77, 79, 84, 72, 69, 84, 73, 195, 72, 79, 76, - 79, 128, 72, 79, 76, 76, 79, 215, 72, 79, 76, 69, 128, 72, 79, 76, 68, - 73, 78, 199, 72, 79, 76, 65, 77, 128, 72, 79, 76, 65, 205, 72, 79, 75, - 65, 128, 72, 79, 67, 75, 69, 217, 72, 79, 67, 72, 79, 128, 72, 79, 45, - 56, 128, 72, 79, 45, 55, 128, 72, 79, 45, 54, 128, 72, 79, 45, 53, 128, - 72, 79, 45, 52, 128, 72, 79, 45, 51, 128, 72, 79, 45, 50, 128, 72, 79, - 45, 49, 128, 72, 78, 85, 84, 128, 72, 78, 85, 79, 88, 128, 72, 78, 85, - 79, 128, 72, 78, 85, 66, 128, 72, 78, 79, 88, 128, 72, 78, 79, 84, 128, - 72, 78, 79, 80, 128, 72, 78, 73, 88, 128, 72, 78, 73, 84, 128, 72, 78, - 73, 80, 128, 72, 78, 73, 69, 88, 128, 72, 78, 73, 69, 84, 128, 72, 78, - 73, 69, 80, 128, 72, 78, 73, 69, 128, 72, 78, 73, 128, 72, 78, 69, 88, - 128, 72, 78, 69, 80, 128, 72, 78, 69, 128, 72, 78, 65, 88, 128, 72, 78, - 65, 85, 128, 72, 78, 65, 84, 128, 72, 78, 65, 80, 128, 72, 78, 65, 128, - 72, 77, 89, 88, 128, 72, 77, 89, 82, 88, 128, 72, 77, 89, 82, 128, 72, - 77, 89, 80, 128, 72, 77, 89, 128, 72, 77, 85, 88, 128, 72, 77, 85, 84, - 128, 72, 77, 85, 82, 88, 128, 72, 77, 85, 82, 128, 72, 77, 85, 80, 128, - 72, 77, 85, 79, 88, 128, 72, 77, 85, 79, 80, 128, 72, 77, 85, 79, 128, - 72, 77, 85, 128, 72, 77, 79, 88, 128, 72, 77, 79, 84, 128, 72, 77, 79, - 80, 128, 72, 77, 79, 128, 72, 77, 73, 88, 128, 72, 77, 73, 84, 128, 72, - 77, 73, 80, 128, 72, 77, 73, 69, 88, 128, 72, 77, 73, 69, 80, 128, 72, - 77, 73, 69, 128, 72, 77, 73, 128, 72, 77, 69, 128, 72, 77, 65, 88, 128, - 72, 77, 65, 84, 128, 72, 77, 65, 80, 128, 72, 77, 65, 128, 72, 76, 89, - 88, 128, 72, 76, 89, 84, 128, 72, 76, 89, 82, 88, 128, 72, 76, 89, 82, - 128, 72, 76, 89, 80, 128, 72, 76, 89, 128, 72, 76, 85, 88, 128, 72, 76, - 85, 84, 128, 72, 76, 85, 82, 88, 128, 72, 76, 85, 82, 128, 72, 76, 85, - 80, 128, 72, 76, 85, 79, 88, 128, 72, 76, 85, 79, 80, 128, 72, 76, 85, - 79, 128, 72, 76, 85, 128, 72, 76, 79, 88, 128, 72, 76, 79, 80, 128, 72, - 76, 79, 128, 72, 76, 73, 88, 128, 72, 76, 73, 84, 128, 72, 76, 73, 80, - 128, 72, 76, 73, 69, 88, 128, 72, 76, 73, 69, 80, 128, 72, 76, 73, 69, - 128, 72, 76, 73, 128, 72, 76, 69, 88, 128, 72, 76, 69, 80, 128, 72, 76, - 69, 128, 72, 76, 65, 88, 128, 72, 76, 65, 85, 128, 72, 76, 65, 84, 128, - 72, 76, 65, 80, 128, 72, 76, 65, 128, 72, 76, 128, 72, 75, 128, 72, 73, - 90, 66, 128, 72, 73, 89, 79, 128, 72, 73, 84, 84, 73, 78, 199, 72, 73, - 83, 84, 79, 82, 73, 195, 72, 73, 82, 73, 81, 128, 72, 73, 80, 80, 79, 80, - 79, 84, 65, 77, 85, 83, 128, 72, 73, 78, 71, 69, 68, 128, 72, 73, 78, 71, - 69, 196, 72, 73, 78, 71, 69, 128, 72, 73, 78, 68, 213, 72, 73, 75, 73, - 78, 199, 72, 73, 71, 72, 45, 83, 80, 69, 69, 196, 72, 73, 71, 72, 45, 82, - 69, 86, 69, 82, 83, 69, 68, 45, 185, 72, 73, 71, 72, 45, 76, 79, 215, 72, - 73, 71, 72, 45, 72, 69, 69, 76, 69, 196, 72, 73, 69, 88, 128, 72, 73, 69, - 85, 72, 45, 83, 73, 79, 83, 128, 72, 73, 69, 85, 72, 45, 82, 73, 69, 85, - 76, 128, 72, 73, 69, 85, 72, 45, 80, 73, 69, 85, 80, 128, 72, 73, 69, 85, - 72, 45, 78, 73, 69, 85, 78, 128, 72, 73, 69, 85, 72, 45, 77, 73, 69, 85, - 77, 128, 72, 73, 69, 85, 200, 72, 73, 69, 82, 79, 71, 76, 89, 80, 72, 73, - 195, 72, 73, 68, 73, 78, 199, 72, 73, 68, 69, 84, 128, 72, 73, 68, 69, - 128, 72, 73, 66, 73, 83, 67, 85, 83, 128, 72, 73, 45, 82, 69, 83, 128, - 72, 73, 45, 55, 128, 72, 73, 45, 54, 128, 72, 73, 45, 53, 128, 72, 73, - 45, 52, 128, 72, 73, 45, 51, 128, 72, 73, 45, 50, 128, 72, 73, 45, 49, - 128, 72, 72, 89, 85, 128, 72, 72, 89, 79, 128, 72, 72, 89, 73, 128, 72, - 72, 89, 69, 69, 128, 72, 72, 89, 69, 128, 72, 72, 89, 65, 65, 128, 72, - 72, 89, 65, 128, 72, 72, 87, 73, 128, 72, 72, 87, 69, 69, 128, 72, 72, - 87, 69, 128, 72, 72, 87, 65, 128, 72, 72, 85, 128, 72, 72, 73, 128, 72, - 72, 69, 69, 128, 72, 72, 69, 128, 72, 72, 65, 65, 128, 72, 71, 128, 72, - 69, 89, 84, 128, 72, 69, 88, 73, 70, 79, 82, 205, 72, 69, 88, 65, 71, 82, - 65, 205, 72, 69, 88, 65, 71, 79, 78, 128, 72, 69, 82, 85, 84, 85, 128, - 72, 69, 82, 85, 128, 72, 69, 82, 77, 73, 84, 73, 65, 206, 72, 69, 82, 77, - 73, 79, 78, 73, 65, 206, 72, 69, 82, 77, 69, 83, 128, 72, 69, 82, 69, - 128, 72, 69, 82, 66, 128, 72, 69, 82, 65, 69, 85, 205, 72, 69, 78, 71, - 128, 72, 69, 78, 199, 72, 69, 77, 80, 128, 72, 69, 76, 77, 69, 84, 128, - 72, 69, 76, 77, 69, 212, 72, 69, 76, 205, 72, 69, 76, 76, 83, 67, 72, 82, - 69, 73, 66, 69, 210, 72, 69, 76, 73, 88, 128, 72, 69, 76, 73, 67, 79, 80, - 84, 69, 82, 128, 72, 69, 75, 85, 84, 65, 65, 82, 85, 128, 72, 69, 73, 83, - 69, 73, 128, 72, 69, 73, 71, 72, 84, 128, 72, 69, 69, 73, 128, 72, 69, - 68, 71, 69, 72, 79, 71, 128, 72, 69, 65, 86, 89, 128, 72, 69, 65, 86, 69, - 78, 76, 217, 72, 69, 65, 86, 69, 78, 128, 72, 69, 65, 86, 69, 206, 72, - 69, 65, 82, 84, 83, 128, 72, 69, 65, 82, 84, 45, 83, 72, 65, 80, 69, 196, - 72, 69, 65, 82, 84, 128, 72, 69, 65, 82, 212, 72, 69, 65, 82, 73, 78, - 199, 72, 69, 65, 82, 45, 78, 79, 45, 69, 86, 73, 204, 72, 69, 65, 68, 83, - 84, 82, 79, 75, 69, 128, 72, 69, 65, 68, 83, 84, 79, 78, 69, 128, 72, 69, - 65, 68, 83, 84, 79, 78, 197, 72, 69, 65, 68, 83, 67, 65, 82, 70, 128, 72, - 69, 65, 68, 80, 72, 79, 78, 69, 128, 72, 69, 65, 68, 73, 78, 71, 128, 72, - 69, 65, 68, 45, 66, 65, 78, 68, 65, 71, 69, 128, 72, 69, 45, 55, 128, 72, - 69, 45, 54, 128, 72, 69, 45, 53, 128, 72, 69, 45, 52, 128, 72, 69, 45, - 51, 128, 72, 69, 45, 50, 128, 72, 69, 45, 49, 128, 72, 68, 82, 128, 72, - 67, 128, 72, 66, 65, 83, 65, 45, 69, 83, 65, 83, 193, 72, 66, 65, 83, - 193, 72, 65, 89, 65, 78, 78, 65, 128, 72, 65, 87, 74, 128, 72, 65, 86, - 69, 128, 72, 65, 85, 80, 84, 83, 84, 73, 77, 77, 69, 128, 72, 65, 85, 77, - 69, 65, 128, 72, 65, 213, 72, 65, 84, 82, 65, 206, 72, 65, 84, 72, 73, - 128, 72, 65, 84, 69, 128, 72, 65, 84, 67, 72, 73, 78, 199, 72, 65, 84, - 65, 198, 72, 65, 83, 69, 210, 72, 65, 83, 65, 78, 84, 65, 128, 72, 65, - 82, 80, 79, 79, 78, 128, 72, 65, 82, 80, 79, 79, 206, 72, 65, 82, 77, 79, - 78, 73, 67, 128, 72, 65, 82, 75, 76, 69, 65, 206, 72, 65, 82, 68, 78, 69, - 83, 83, 128, 72, 65, 82, 196, 72, 65, 82, 66, 65, 72, 65, 89, 128, 72, - 65, 80, 80, 217, 72, 65, 78, 85, 78, 79, 207, 72, 65, 78, 73, 70, 201, - 72, 65, 78, 71, 90, 72, 79, 213, 72, 65, 78, 68, 83, 72, 65, 75, 69, 128, - 72, 65, 78, 68, 83, 128, 72, 65, 78, 68, 211, 72, 65, 78, 68, 76, 69, 83, - 128, 72, 65, 78, 68, 76, 69, 128, 72, 65, 78, 68, 66, 65, 76, 76, 128, - 72, 65, 78, 68, 66, 65, 71, 128, 72, 65, 78, 68, 45, 79, 86, 65, 76, 128, - 72, 65, 78, 68, 45, 79, 86, 65, 204, 72, 65, 78, 68, 45, 72, 79, 79, 75, - 128, 72, 65, 78, 68, 45, 72, 79, 79, 203, 72, 65, 78, 68, 45, 72, 73, 78, - 71, 69, 128, 72, 65, 78, 68, 45, 72, 73, 78, 71, 197, 72, 65, 78, 68, 45, - 70, 76, 65, 84, 128, 72, 65, 78, 68, 45, 70, 76, 65, 212, 72, 65, 78, 68, - 45, 70, 73, 83, 84, 128, 72, 65, 78, 68, 45, 67, 85, 82, 76, 73, 67, 85, - 69, 128, 72, 65, 78, 68, 45, 67, 85, 82, 76, 73, 67, 85, 197, 72, 65, 78, - 68, 45, 67, 85, 80, 128, 72, 65, 78, 68, 45, 67, 85, 208, 72, 65, 78, 68, - 45, 67, 76, 65, 87, 128, 72, 65, 78, 68, 45, 67, 76, 65, 215, 72, 65, 78, - 68, 45, 67, 73, 82, 67, 76, 69, 128, 72, 65, 78, 68, 45, 67, 73, 82, 67, - 76, 197, 72, 65, 78, 68, 45, 65, 78, 71, 76, 69, 128, 72, 65, 78, 68, 45, - 65, 78, 71, 76, 197, 72, 65, 78, 68, 128, 72, 65, 78, 45, 65, 75, 65, 84, - 128, 72, 65, 77, 90, 65, 128, 72, 65, 77, 90, 193, 72, 65, 77, 83, 84, - 69, 210, 72, 65, 77, 83, 65, 128, 72, 65, 77, 77, 69, 82, 128, 72, 65, - 77, 77, 69, 210, 72, 65, 77, 66, 85, 82, 71, 69, 82, 128, 72, 65, 76, 81, - 65, 128, 72, 65, 76, 79, 128, 72, 65, 76, 70, 45, 67, 73, 82, 67, 76, - 197, 72, 65, 76, 70, 45, 50, 128, 72, 65, 76, 70, 45, 49, 128, 72, 65, - 76, 70, 128, 72, 65, 76, 66, 69, 82, 68, 128, 72, 65, 76, 65, 78, 84, 65, - 128, 72, 65, 73, 84, 85, 128, 72, 65, 73, 211, 72, 65, 73, 82, 67, 85, - 84, 128, 72, 65, 71, 76, 65, 218, 72, 65, 71, 76, 128, 72, 65, 70, 85, - 75, 72, 65, 128, 72, 65, 70, 85, 75, 72, 128, 72, 65, 69, 71, 204, 72, - 65, 68, 69, 83, 128, 72, 65, 65, 82, 85, 128, 72, 65, 65, 77, 128, 72, - 65, 193, 72, 65, 45, 72, 65, 128, 72, 65, 45, 57, 128, 72, 65, 45, 56, - 128, 72, 65, 45, 55, 128, 72, 65, 45, 54, 128, 72, 65, 45, 53, 128, 72, - 65, 45, 52, 128, 72, 65, 45, 51, 128, 72, 65, 45, 50, 128, 72, 65, 45, - 49, 49, 128, 72, 65, 45, 49, 48, 128, 72, 65, 45, 49, 128, 72, 48, 48, - 56, 128, 72, 48, 48, 55, 128, 72, 48, 48, 54, 65, 128, 72, 48, 48, 54, - 128, 72, 48, 48, 53, 128, 72, 48, 48, 52, 128, 72, 48, 48, 51, 128, 72, - 48, 48, 50, 128, 72, 48, 48, 49, 128, 72, 45, 84, 89, 80, 197, 71, 89, - 85, 128, 71, 89, 79, 78, 128, 71, 89, 79, 128, 71, 89, 73, 128, 71, 89, - 70, 213, 71, 89, 69, 69, 128, 71, 89, 65, 83, 128, 71, 89, 65, 65, 128, - 71, 89, 65, 128, 71, 89, 128, 71, 87, 85, 128, 71, 87, 73, 128, 71, 87, - 69, 69, 128, 71, 87, 69, 128, 71, 87, 65, 65, 128, 71, 87, 65, 128, 71, - 87, 128, 71, 86, 65, 78, 71, 128, 71, 86, 128, 71, 85, 82, 85, 83, 72, - 128, 71, 85, 82, 85, 78, 128, 71, 85, 82, 77, 85, 75, 72, 201, 71, 85, - 82, 65, 77, 85, 84, 79, 78, 128, 71, 85, 82, 65, 71, 197, 71, 85, 82, 55, - 128, 71, 85, 78, 85, 128, 71, 85, 78, 213, 71, 85, 78, 74, 65, 76, 193, - 71, 85, 205, 71, 85, 76, 128, 71, 85, 74, 65, 82, 65, 84, 201, 71, 85, - 73, 84, 65, 82, 128, 71, 85, 73, 68, 197, 71, 85, 199, 71, 85, 69, 73, - 128, 71, 85, 69, 72, 128, 71, 85, 69, 200, 71, 85, 68, 128, 71, 85, 196, - 71, 85, 65, 82, 68, 83, 77, 65, 78, 128, 71, 85, 65, 82, 68, 69, 68, 78, - 69, 83, 83, 128, 71, 85, 65, 82, 68, 69, 196, 71, 85, 65, 82, 68, 128, - 71, 85, 65, 82, 65, 78, 201, 71, 85, 193, 71, 85, 178, 71, 84, 69, 210, - 71, 83, 85, 77, 128, 71, 83, 85, 205, 71, 82, 213, 71, 82, 79, 87, 73, - 78, 199, 71, 82, 79, 85, 78, 68, 128, 71, 82, 79, 78, 84, 72, 73, 83, 77, - 65, 84, 65, 128, 71, 82, 79, 77, 79, 80, 79, 86, 79, 68, 78, 65, 89, 65, - 128, 71, 82, 79, 77, 79, 80, 79, 86, 79, 68, 78, 65, 89, 193, 71, 82, 79, - 77, 79, 75, 82, 89, 90, 72, 69, 86, 65, 89, 65, 128, 71, 82, 79, 77, 79, - 75, 82, 89, 90, 72, 69, 86, 65, 89, 193, 71, 82, 79, 77, 78, 65, 89, 65, - 128, 71, 82, 79, 77, 78, 65, 89, 193, 71, 82, 73, 78, 78, 73, 78, 199, - 71, 82, 73, 77, 65, 67, 73, 78, 199, 71, 82, 69, 217, 71, 82, 69, 71, 79, - 82, 73, 65, 206, 71, 82, 69, 69, 78, 128, 71, 82, 69, 69, 206, 71, 82, - 69, 65, 84, 78, 69, 83, 83, 128, 71, 82, 69, 65, 84, 69, 82, 45, 84, 72, - 65, 78, 128, 71, 82, 69, 65, 84, 69, 82, 45, 84, 72, 65, 206, 71, 82, 69, - 65, 84, 69, 210, 71, 82, 69, 65, 212, 71, 82, 65, 86, 69, 89, 65, 82, - 196, 71, 82, 65, 86, 69, 45, 77, 65, 67, 82, 79, 78, 128, 71, 82, 65, 86, - 69, 45, 65, 67, 85, 84, 69, 45, 71, 82, 65, 86, 69, 128, 71, 82, 65, 86, - 197, 71, 82, 65, 84, 69, 82, 128, 71, 82, 65, 83, 83, 128, 71, 82, 65, - 83, 211, 71, 82, 65, 83, 208, 71, 82, 65, 80, 72, 69, 77, 197, 71, 82, - 65, 80, 69, 83, 128, 71, 82, 65, 78, 84, 72, 193, 71, 82, 65, 77, 77, - 193, 71, 82, 65, 73, 78, 128, 71, 82, 65, 70, 128, 71, 82, 65, 68, 85, - 65, 84, 73, 79, 206, 71, 82, 65, 68, 85, 65, 76, 128, 71, 82, 65, 67, 69, - 128, 71, 82, 65, 67, 197, 71, 80, 65, 128, 71, 79, 82, 84, 72, 77, 73, - 75, 79, 206, 71, 79, 82, 84, 128, 71, 79, 82, 73, 76, 76, 65, 128, 71, - 79, 82, 71, 79, 84, 69, 82, 73, 128, 71, 79, 82, 71, 79, 83, 89, 78, 84, - 72, 69, 84, 79, 78, 128, 71, 79, 82, 71, 79, 206, 71, 79, 82, 71, 73, - 128, 71, 79, 82, 65, 90, 68, 207, 71, 79, 82, 65, 128, 71, 79, 79, 83, - 69, 128, 71, 79, 79, 196, 71, 79, 78, 71, 71, 79, 78, 71, 128, 71, 79, - 76, 85, 66, 67, 72, 73, 203, 71, 79, 76, 70, 69, 82, 128, 71, 79, 76, 68, - 128, 71, 79, 75, 128, 71, 79, 73, 78, 199, 71, 79, 71, 71, 76, 69, 83, - 128, 71, 79, 66, 76, 73, 78, 128, 71, 79, 65, 76, 128, 71, 79, 65, 204, - 71, 79, 65, 128, 71, 78, 89, 73, 83, 128, 71, 78, 65, 86, 73, 89, 65, 78, - 73, 128, 71, 76, 79, 87, 73, 78, 199, 71, 76, 79, 86, 69, 83, 128, 71, - 76, 79, 86, 69, 128, 71, 76, 79, 84, 84, 65, 204, 71, 76, 79, 66, 197, - 71, 76, 73, 83, 83, 65, 78, 68, 207, 71, 76, 69, 73, 67, 200, 71, 76, 65, - 71, 79, 76, 73, 128, 71, 76, 65, 128, 71, 74, 69, 128, 71, 73, 88, 128, - 71, 73, 84, 128, 71, 73, 83, 72, 128, 71, 73, 83, 200, 71, 73, 83, 65, - 76, 128, 71, 73, 82, 85, 68, 65, 65, 128, 71, 73, 82, 76, 211, 71, 73, - 82, 76, 128, 71, 73, 82, 65, 70, 70, 197, 71, 73, 82, 51, 128, 71, 73, - 82, 179, 71, 73, 82, 50, 128, 71, 73, 82, 178, 71, 73, 80, 128, 71, 73, - 78, 73, 73, 128, 71, 73, 78, 71, 69, 210, 71, 73, 77, 69, 76, 45, 72, 69, - 84, 72, 128, 71, 73, 77, 69, 76, 128, 71, 73, 77, 69, 204, 71, 73, 77, - 128, 71, 73, 71, 65, 128, 71, 73, 71, 128, 71, 73, 70, 212, 71, 73, 69, - 84, 128, 71, 73, 68, 73, 77, 128, 71, 73, 66, 66, 79, 85, 211, 71, 73, - 66, 65, 128, 71, 73, 52, 128, 71, 73, 180, 71, 72, 90, 128, 71, 72, 87, - 65, 128, 71, 72, 85, 78, 78, 65, 128, 71, 72, 85, 78, 78, 193, 71, 72, - 85, 128, 71, 72, 79, 85, 128, 71, 72, 79, 83, 84, 128, 71, 72, 79, 128, - 71, 72, 73, 77, 69, 76, 128, 71, 72, 73, 128, 71, 72, 72, 65, 128, 71, - 72, 69, 89, 83, 128, 71, 72, 69, 85, 88, 128, 71, 72, 69, 85, 78, 128, - 71, 72, 69, 85, 71, 72, 69, 85, 65, 69, 77, 128, 71, 72, 69, 85, 71, 72, - 69, 78, 128, 71, 72, 69, 85, 65, 69, 82, 65, 69, 128, 71, 72, 69, 85, 65, - 69, 71, 72, 69, 85, 65, 69, 128, 71, 72, 69, 84, 128, 71, 72, 69, 69, - 128, 71, 72, 69, 128, 71, 72, 197, 71, 72, 65, 89, 78, 128, 71, 72, 65, - 82, 65, 69, 128, 71, 72, 65, 80, 128, 71, 72, 65, 78, 128, 71, 72, 65, - 77, 77, 65, 128, 71, 72, 65, 77, 65, 76, 128, 71, 72, 65, 73, 78, 85, + 77, 85, 73, 78, 128, 77, 85, 71, 83, 128, 77, 85, 71, 128, 77, 85, 199, + 77, 85, 69, 78, 128, 77, 85, 69, 128, 77, 85, 67, 72, 128, 77, 85, 67, + 200, 77, 85, 67, 65, 65, 68, 128, 77, 85, 65, 83, 128, 77, 85, 65, 78, + 128, 77, 85, 65, 69, 128, 77, 85, 45, 71, 65, 65, 72, 76, 65, 193, 77, + 85, 45, 52, 128, 77, 85, 45, 51, 128, 77, 85, 45, 50, 128, 77, 85, 45, + 49, 128, 77, 213, 77, 84, 65, 86, 82, 85, 76, 201, 77, 83, 128, 77, 82, + 207, 77, 82, 65, 67, 72, 78, 89, 128, 77, 82, 65, 67, 72, 78, 79, 84, 73, + 75, 72, 65, 89, 65, 128, 77, 82, 65, 67, 72, 78, 79, 128, 77, 82, 65, 67, + 72, 78, 65, 89, 65, 128, 77, 210, 77, 81, 128, 77, 80, 65, 128, 77, 79, + 89, 65, 73, 128, 77, 79, 88, 128, 77, 79, 86, 73, 197, 77, 79, 86, 69, + 211, 77, 79, 86, 69, 77, 69, 78, 84, 45, 87, 65, 76, 76, 80, 76, 65, 78, + 197, 77, 79, 86, 69, 77, 69, 78, 84, 45, 72, 73, 78, 71, 197, 77, 79, 86, + 69, 77, 69, 78, 84, 45, 70, 76, 79, 79, 82, 80, 76, 65, 78, 197, 77, 79, + 86, 69, 77, 69, 78, 84, 45, 68, 73, 65, 71, 79, 78, 65, 204, 77, 79, 86, + 69, 77, 69, 78, 84, 128, 77, 79, 86, 69, 77, 69, 78, 212, 77, 79, 86, 69, + 196, 77, 79, 86, 69, 128, 77, 79, 85, 84, 72, 128, 77, 79, 85, 83, 69, + 128, 77, 79, 85, 83, 197, 77, 79, 85, 78, 84, 65, 73, 78, 83, 128, 77, + 79, 85, 78, 84, 65, 73, 78, 128, 77, 79, 85, 78, 84, 65, 73, 206, 77, 79, + 85, 78, 212, 77, 79, 85, 78, 68, 128, 77, 79, 85, 78, 196, 77, 79, 84, + 79, 82, 87, 65, 89, 128, 77, 79, 84, 79, 82, 73, 90, 69, 196, 77, 79, 84, + 79, 82, 67, 89, 67, 76, 69, 128, 77, 79, 84, 79, 210, 77, 79, 84, 72, 69, + 82, 128, 77, 79, 84, 72, 69, 210, 77, 79, 84, 128, 77, 79, 83, 81, 85, + 73, 84, 79, 128, 77, 79, 83, 81, 85, 69, 128, 77, 79, 82, 84, 85, 85, 77, + 128, 77, 79, 82, 84, 65, 82, 128, 77, 79, 82, 80, 72, 79, 76, 79, 71, 73, + 67, 65, 204, 77, 79, 82, 78, 73, 78, 71, 128, 77, 79, 80, 128, 77, 79, + 79, 83, 69, 45, 67, 82, 69, 197, 77, 79, 79, 78, 128, 77, 79, 79, 206, + 77, 79, 79, 77, 80, 85, 81, 128, 77, 79, 79, 77, 69, 85, 84, 128, 77, 79, + 79, 68, 128, 77, 79, 79, 196, 77, 79, 79, 128, 77, 79, 78, 84, 73, 69, + 69, 78, 128, 77, 79, 78, 84, 72, 128, 77, 79, 78, 84, 200, 77, 79, 78, + 83, 84, 69, 82, 128, 77, 79, 78, 79, 83, 84, 65, 66, 76, 197, 77, 79, 78, + 79, 83, 80, 65, 67, 197, 77, 79, 78, 79, 82, 65, 73, 76, 128, 77, 79, 78, + 79, 71, 82, 65, 80, 200, 77, 79, 78, 79, 71, 82, 65, 77, 77, 79, 211, 77, + 79, 78, 79, 71, 82, 65, 205, 77, 79, 78, 79, 70, 79, 78, 73, 65, 83, 128, + 77, 79, 78, 79, 67, 85, 76, 65, 210, 77, 79, 78, 79, 67, 76, 69, 128, 77, + 79, 78, 75, 69, 89, 128, 77, 79, 78, 75, 69, 217, 77, 79, 78, 73, 128, + 77, 79, 78, 71, 75, 69, 85, 65, 69, 81, 128, 77, 79, 78, 69, 89, 45, 77, + 79, 85, 84, 200, 77, 79, 78, 69, 217, 77, 79, 78, 128, 77, 79, 206, 77, + 79, 76, 128, 77, 79, 75, 72, 65, 83, 83, 65, 83, 128, 77, 79, 72, 65, 77, + 77, 65, 196, 77, 79, 68, 85, 76, 207, 77, 79, 68, 73, 70, 73, 69, 82, 45, + 57, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 56, 128, 77, 79, 68, 73, 70, + 73, 69, 82, 45, 55, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 54, 128, 77, + 79, 68, 73, 70, 73, 69, 82, 45, 53, 128, 77, 79, 68, 73, 70, 73, 69, 82, + 45, 52, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 51, 128, 77, 79, 68, 73, + 70, 73, 69, 82, 45, 50, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 49, 54, + 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 49, 53, 128, 77, 79, 68, 73, 70, + 73, 69, 82, 45, 49, 52, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 49, 51, + 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 49, 50, 128, 77, 79, 68, 73, 70, + 73, 69, 82, 45, 49, 49, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 49, 48, + 128, 77, 79, 68, 73, 70, 73, 69, 82, 128, 77, 79, 68, 201, 77, 79, 68, + 69, 83, 84, 89, 128, 77, 79, 68, 69, 82, 206, 77, 79, 68, 69, 77, 128, + 77, 79, 68, 69, 76, 83, 128, 77, 79, 68, 69, 76, 128, 77, 79, 68, 69, + 128, 77, 79, 66, 73, 76, 197, 77, 79, 65, 128, 77, 79, 45, 54, 128, 77, + 79, 45, 53, 128, 77, 79, 45, 52, 128, 77, 79, 45, 51, 128, 77, 207, 77, + 78, 89, 65, 205, 77, 78, 65, 83, 128, 77, 77, 83, 80, 128, 77, 77, 128, + 77, 205, 77, 76, 65, 128, 77, 76, 128, 77, 75, 80, 65, 82, 65, 209, 77, + 73, 88, 128, 77, 73, 84, 128, 77, 73, 83, 82, 65, 128, 77, 73, 82, 82, + 79, 82, 128, 77, 73, 82, 82, 79, 210, 77, 73, 82, 73, 66, 65, 65, 82, 85, + 128, 77, 73, 82, 73, 128, 77, 73, 82, 69, 68, 128, 77, 73, 80, 128, 77, + 73, 78, 89, 128, 77, 73, 78, 85, 83, 45, 79, 82, 45, 80, 76, 85, 211, 77, + 73, 78, 85, 83, 128, 77, 73, 78, 78, 65, 206, 77, 73, 78, 73, 83, 84, 69, + 82, 128, 77, 73, 78, 73, 77, 73, 90, 69, 128, 77, 73, 78, 73, 77, 65, + 128, 77, 73, 78, 73, 68, 73, 83, 67, 128, 77, 73, 78, 73, 66, 85, 83, + 128, 77, 73, 77, 69, 128, 77, 73, 77, 128, 77, 73, 76, 76, 73, 79, 78, + 83, 128, 77, 73, 76, 76, 73, 79, 78, 211, 77, 73, 76, 76, 69, 84, 128, + 77, 73, 76, 76, 197, 77, 73, 76, 204, 77, 73, 76, 75, 217, 77, 73, 76, + 75, 128, 77, 73, 76, 73, 84, 65, 82, 217, 77, 73, 76, 128, 77, 73, 75, + 85, 82, 79, 78, 128, 77, 73, 75, 82, 79, 206, 77, 73, 75, 82, 73, 128, + 77, 73, 73, 78, 128, 77, 73, 73, 77, 128, 77, 73, 73, 128, 77, 73, 199, + 77, 73, 69, 88, 128, 77, 73, 69, 85, 77, 45, 84, 73, 75, 69, 85, 84, 128, + 77, 73, 69, 85, 77, 45, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 77, 73, + 69, 85, 77, 45, 83, 83, 65, 78, 71, 78, 73, 69, 85, 78, 128, 77, 73, 69, + 85, 77, 45, 82, 73, 69, 85, 76, 128, 77, 73, 69, 85, 77, 45, 80, 73, 69, + 85, 80, 45, 83, 73, 79, 83, 128, 77, 73, 69, 85, 77, 45, 80, 73, 69, 85, + 80, 128, 77, 73, 69, 85, 77, 45, 80, 65, 78, 83, 73, 79, 83, 128, 77, 73, + 69, 85, 77, 45, 78, 73, 69, 85, 78, 128, 77, 73, 69, 85, 77, 45, 67, 73, + 69, 85, 67, 128, 77, 73, 69, 85, 77, 45, 67, 72, 73, 69, 85, 67, 72, 128, + 77, 73, 69, 85, 205, 77, 73, 69, 80, 128, 77, 73, 69, 69, 128, 77, 73, + 69, 128, 77, 73, 68, 76, 73, 78, 197, 77, 73, 68, 68, 76, 69, 45, 87, 69, + 76, 83, 200, 77, 73, 68, 68, 76, 69, 128, 77, 73, 68, 45, 76, 69, 86, 69, + 204, 77, 73, 196, 77, 73, 67, 82, 79, 83, 67, 79, 80, 69, 128, 77, 73, + 67, 82, 79, 80, 72, 79, 78, 69, 128, 77, 73, 67, 82, 79, 66, 69, 128, 77, + 73, 67, 82, 207, 77, 73, 67, 210, 77, 73, 45, 55, 128, 77, 73, 45, 54, + 128, 77, 73, 45, 53, 128, 77, 73, 45, 52, 128, 77, 73, 45, 51, 128, 77, + 73, 45, 50, 128, 77, 73, 45, 49, 128, 77, 72, 90, 128, 77, 72, 65, 128, + 77, 72, 128, 77, 71, 85, 88, 128, 77, 71, 85, 84, 128, 77, 71, 85, 82, + 88, 128, 77, 71, 85, 82, 128, 77, 71, 85, 80, 128, 77, 71, 85, 79, 88, + 128, 77, 71, 85, 79, 80, 128, 77, 71, 85, 79, 128, 77, 71, 85, 128, 77, + 71, 79, 88, 128, 77, 71, 79, 84, 128, 77, 71, 79, 80, 128, 77, 71, 79, + 128, 77, 71, 207, 77, 71, 73, 69, 88, 128, 77, 71, 73, 69, 128, 77, 71, + 69, 88, 128, 77, 71, 69, 80, 128, 77, 71, 69, 128, 77, 71, 66, 85, 128, + 77, 71, 66, 79, 79, 128, 77, 71, 66, 79, 70, 85, 77, 128, 77, 71, 66, 79, + 128, 77, 71, 66, 73, 128, 77, 71, 66, 69, 85, 78, 128, 77, 71, 66, 69, + 78, 128, 77, 71, 66, 69, 69, 128, 77, 71, 66, 69, 128, 77, 71, 66, 65, + 83, 65, 81, 128, 77, 71, 66, 65, 83, 65, 128, 77, 71, 65, 88, 128, 77, + 71, 65, 84, 128, 77, 71, 65, 80, 128, 77, 71, 65, 128, 77, 71, 128, 77, + 70, 79, 78, 128, 77, 70, 79, 206, 77, 70, 79, 128, 77, 70, 73, 89, 65, + 81, 128, 77, 70, 73, 69, 69, 128, 77, 70, 69, 85, 84, 128, 77, 70, 69, + 85, 81, 128, 77, 70, 69, 85, 65, 69, 128, 77, 70, 65, 65, 128, 77, 69, + 90, 90, 79, 128, 77, 69, 88, 128, 77, 69, 85, 212, 77, 69, 85, 81, 128, + 77, 69, 85, 78, 74, 79, 77, 78, 68, 69, 85, 81, 128, 77, 69, 85, 78, 128, + 77, 69, 84, 82, 79, 128, 77, 69, 84, 82, 73, 67, 65, 204, 77, 69, 84, 82, + 73, 65, 128, 77, 69, 84, 82, 69, 84, 69, 211, 77, 69, 84, 79, 66, 69, 76, + 85, 83, 128, 77, 69, 84, 69, 75, 128, 77, 69, 84, 69, 71, 128, 77, 69, + 84, 65, 76, 128, 77, 69, 84, 193, 77, 69, 83, 83, 69, 78, 73, 65, 206, + 77, 69, 83, 83, 65, 71, 69, 128, 77, 69, 83, 83, 65, 71, 197, 77, 69, 83, + 79, 128, 77, 69, 83, 73, 128, 77, 69, 83, 72, 128, 77, 69, 82, 80, 69, + 82, 83, 79, 78, 128, 77, 69, 82, 75, 72, 65, 128, 77, 69, 82, 75, 72, + 193, 77, 69, 82, 73, 68, 73, 65, 78, 83, 128, 77, 69, 82, 73, 128, 77, + 69, 82, 71, 69, 128, 77, 69, 82, 67, 85, 82, 89, 128, 77, 69, 82, 67, 85, + 82, 217, 77, 69, 78, 79, 82, 65, 200, 77, 69, 78, 79, 69, 128, 77, 69, + 78, 68, 85, 84, 128, 77, 69, 78, 128, 77, 69, 77, 79, 128, 77, 69, 77, + 66, 69, 82, 83, 72, 73, 80, 128, 77, 69, 77, 66, 69, 82, 128, 77, 69, 77, + 66, 69, 210, 77, 69, 77, 45, 81, 79, 80, 72, 128, 77, 69, 77, 128, 77, + 69, 205, 77, 69, 76, 84, 73, 78, 199, 77, 69, 76, 79, 68, 73, 195, 77, + 69, 76, 73, 75, 128, 77, 69, 73, 90, 73, 128, 77, 69, 71, 65, 84, 79, 78, + 128, 77, 69, 71, 65, 80, 72, 79, 78, 69, 128, 77, 69, 71, 65, 76, 73, + 128, 77, 69, 69, 84, 79, 82, 85, 128, 77, 69, 69, 84, 69, 201, 77, 69, + 69, 84, 128, 77, 69, 69, 77, 85, 128, 77, 69, 69, 77, 128, 77, 69, 69, + 202, 77, 69, 69, 69, 69, 128, 77, 69, 68, 73, 85, 77, 128, 77, 69, 68, + 73, 85, 205, 77, 69, 68, 73, 69, 86, 65, 204, 77, 69, 68, 73, 67, 73, 78, + 69, 128, 77, 69, 68, 73, 67, 65, 204, 77, 69, 68, 73, 65, 204, 77, 69, + 68, 69, 70, 65, 73, 68, 82, 73, 206, 77, 69, 68, 65, 76, 128, 77, 69, 67, + 72, 73, 75, 128, 77, 69, 67, 72, 73, 203, 77, 69, 67, 72, 65, 78, 73, 67, + 65, 204, 77, 69, 65, 84, 128, 77, 69, 65, 212, 77, 69, 65, 83, 85, 82, + 69, 196, 77, 69, 65, 83, 85, 82, 69, 128, 77, 69, 65, 83, 85, 82, 197, + 77, 69, 45, 77, 65, 128, 77, 69, 45, 50, 128, 77, 69, 45, 49, 128, 77, + 68, 85, 206, 77, 196, 77, 67, 72, 213, 77, 67, 72, 65, 206, 77, 67, 128, + 77, 195, 77, 66, 85, 85, 128, 77, 66, 85, 79, 81, 128, 77, 66, 85, 79, + 128, 77, 66, 85, 69, 128, 77, 66, 85, 65, 69, 77, 128, 77, 66, 85, 65, + 69, 128, 77, 66, 79, 79, 128, 77, 66, 79, 128, 77, 66, 73, 84, 128, 77, + 66, 73, 212, 77, 66, 73, 82, 73, 69, 69, 78, 128, 77, 66, 73, 128, 77, + 66, 69, 85, 88, 128, 77, 66, 69, 85, 82, 73, 128, 77, 66, 69, 85, 77, + 128, 77, 66, 69, 82, 65, 69, 128, 77, 66, 69, 78, 128, 77, 66, 69, 69, + 75, 69, 69, 84, 128, 77, 66, 69, 69, 128, 77, 66, 69, 128, 77, 66, 65, + 81, 128, 77, 66, 65, 78, 89, 73, 128, 77, 66, 65, 65, 82, 65, 69, 128, + 77, 66, 65, 65, 75, 69, 84, 128, 77, 66, 65, 65, 128, 77, 66, 65, 193, + 77, 66, 193, 77, 66, 52, 128, 77, 66, 51, 128, 77, 66, 50, 128, 77, 65, + 89, 69, 203, 77, 65, 89, 65, 78, 78, 65, 128, 77, 65, 89, 65, 206, 77, + 65, 89, 128, 77, 65, 88, 73, 77, 73, 90, 69, 128, 77, 65, 88, 73, 77, 65, + 128, 77, 65, 88, 128, 77, 65, 85, 128, 77, 65, 84, 84, 79, 67, 75, 128, + 77, 65, 84, 82, 73, 88, 128, 77, 65, 84, 69, 82, 73, 65, 76, 83, 128, 77, + 65, 84, 128, 77, 65, 83, 213, 77, 65, 83, 83, 73, 78, 71, 128, 77, 65, + 83, 83, 65, 71, 69, 128, 77, 65, 83, 79, 82, 193, 77, 65, 83, 75, 128, + 77, 65, 83, 203, 77, 65, 83, 72, 70, 65, 65, 84, 128, 77, 65, 83, 72, 50, + 128, 77, 65, 83, 67, 85, 76, 73, 78, 197, 77, 65, 83, 65, 82, 65, 205, + 77, 65, 82, 89, 128, 77, 65, 82, 87, 65, 82, 201, 77, 65, 82, 85, 75, 85, + 128, 77, 65, 82, 84, 89, 82, 73, 193, 77, 65, 82, 84, 73, 65, 204, 77, + 65, 82, 82, 89, 73, 78, 199, 77, 65, 82, 82, 73, 65, 71, 197, 77, 65, 82, + 82, 65, 84, 65, 78, 128, 77, 65, 82, 75, 211, 77, 65, 82, 75, 69, 82, + 128, 77, 65, 82, 75, 45, 52, 128, 77, 65, 82, 75, 45, 51, 128, 77, 65, + 82, 75, 45, 50, 128, 77, 65, 82, 75, 45, 49, 128, 77, 65, 82, 69, 128, + 77, 65, 82, 67, 72, 69, 206, 77, 65, 82, 67, 72, 128, 77, 65, 82, 67, 65, + 84, 79, 45, 83, 84, 65, 67, 67, 65, 84, 79, 128, 77, 65, 82, 67, 65, 84, + 79, 128, 77, 65, 82, 67, 65, 83, 73, 84, 69, 128, 77, 65, 82, 66, 85, 84, + 65, 128, 77, 65, 82, 66, 85, 84, 193, 77, 65, 82, 128, 77, 65, 81, 65, + 70, 128, 77, 65, 81, 128, 77, 65, 80, 76, 197, 77, 65, 80, 73, 81, 128, + 77, 65, 208, 77, 65, 79, 128, 77, 65, 78, 85, 65, 204, 77, 65, 78, 84, + 69, 76, 80, 73, 69, 67, 197, 77, 65, 78, 83, 89, 79, 78, 128, 77, 65, 78, + 83, 85, 65, 69, 128, 77, 65, 78, 78, 65, 218, 77, 65, 78, 78, 65, 128, + 77, 65, 78, 73, 67, 72, 65, 69, 65, 206, 77, 65, 78, 71, 79, 128, 77, 65, + 78, 71, 65, 76, 65, 77, 128, 77, 65, 78, 68, 65, 82, 73, 78, 128, 77, 65, + 78, 68, 65, 73, 76, 73, 78, 199, 77, 65, 78, 68, 65, 73, 195, 77, 65, 78, + 67, 72, 213, 77, 65, 78, 65, 212, 77, 65, 78, 65, 67, 76, 69, 83, 128, + 77, 65, 77, 77, 79, 84, 72, 128, 77, 65, 76, 84, 69, 83, 197, 77, 65, 76, + 207, 77, 65, 76, 69, 69, 82, 73, 128, 77, 65, 76, 197, 77, 65, 76, 65, + 75, 79, 206, 77, 65, 75, 83, 85, 82, 65, 128, 77, 65, 75, 83, 85, 82, + 193, 77, 65, 75, 65, 83, 65, 210, 77, 65, 73, 90, 69, 128, 77, 65, 73, + 89, 65, 77, 79, 75, 128, 77, 65, 73, 84, 65, 73, 75, 72, 85, 128, 77, 65, + 73, 82, 85, 128, 77, 65, 73, 77, 85, 65, 78, 128, 77, 65, 73, 77, 65, 76, + 65, 73, 128, 77, 65, 73, 76, 66, 79, 216, 77, 65, 73, 75, 85, 82, 79, + 128, 77, 65, 73, 68, 69, 78, 128, 77, 65, 73, 128, 77, 65, 72, 74, 79, + 78, 199, 77, 65, 72, 72, 65, 128, 77, 65, 72, 65, 80, 82, 65, 78, 65, + 128, 77, 65, 72, 65, 80, 65, 75, 72, 128, 77, 65, 72, 65, 74, 65, 78, + 201, 77, 65, 72, 65, 65, 80, 82, 65, 65, 78, 193, 77, 65, 72, 128, 77, + 65, 71, 78, 73, 70, 89, 73, 78, 199, 77, 65, 71, 78, 69, 84, 128, 77, 65, + 71, 73, 195, 77, 65, 71, 69, 128, 77, 65, 69, 83, 73, 128, 77, 65, 69, + 78, 89, 73, 128, 77, 65, 69, 78, 74, 69, 84, 128, 77, 65, 69, 77, 86, 69, + 85, 88, 128, 77, 65, 69, 77, 75, 80, 69, 78, 128, 77, 65, 69, 77, 71, 66, + 73, 69, 69, 128, 77, 65, 69, 77, 66, 71, 66, 73, 69, 69, 128, 77, 65, 69, + 77, 66, 65, 128, 77, 65, 69, 77, 128, 77, 65, 69, 76, 69, 69, 128, 77, + 65, 69, 75, 69, 85, 80, 128, 77, 65, 68, 89, 65, 128, 77, 65, 68, 85, + 128, 77, 65, 68, 68, 65, 72, 128, 77, 65, 68, 68, 65, 200, 77, 65, 68, + 68, 65, 128, 77, 65, 68, 68, 193, 77, 65, 67, 82, 79, 78, 45, 71, 82, 65, + 86, 69, 128, 77, 65, 67, 82, 79, 78, 45, 66, 82, 69, 86, 69, 128, 77, 65, + 67, 82, 79, 78, 45, 65, 67, 85, 84, 69, 128, 77, 65, 67, 82, 79, 78, 128, + 77, 65, 67, 82, 79, 206, 77, 65, 67, 72, 73, 78, 69, 128, 77, 65, 65, 89, + 89, 65, 65, 128, 77, 65, 65, 73, 128, 77, 65, 65, 128, 77, 65, 50, 128, + 77, 65, 45, 55, 128, 77, 65, 45, 54, 128, 77, 65, 45, 53, 128, 77, 65, + 45, 52, 128, 77, 65, 45, 51, 128, 77, 65, 45, 50, 128, 77, 65, 45, 49, + 128, 77, 49, 57, 183, 77, 49, 57, 182, 77, 49, 57, 181, 77, 49, 57, 180, + 77, 49, 57, 179, 77, 49, 57, 178, 77, 49, 57, 177, 77, 49, 57, 176, 77, + 49, 56, 185, 77, 49, 56, 184, 77, 49, 56, 183, 77, 49, 56, 182, 77, 49, + 56, 181, 77, 49, 56, 180, 77, 49, 56, 179, 77, 49, 56, 178, 77, 49, 56, + 177, 77, 49, 56, 176, 77, 49, 55, 185, 77, 49, 55, 184, 77, 49, 55, 183, + 77, 49, 55, 182, 77, 49, 55, 181, 77, 49, 55, 180, 77, 49, 55, 179, 77, + 49, 55, 178, 77, 49, 55, 177, 77, 49, 55, 176, 77, 49, 54, 185, 77, 49, + 54, 184, 77, 49, 54, 183, 77, 49, 54, 182, 77, 49, 54, 181, 77, 49, 54, + 180, 77, 49, 54, 179, 77, 49, 54, 178, 77, 49, 54, 177, 77, 49, 54, 176, + 77, 49, 53, 185, 77, 49, 53, 184, 77, 49, 53, 183, 77, 49, 53, 182, 77, + 49, 53, 181, 77, 49, 53, 180, 77, 49, 53, 179, 77, 49, 53, 178, 77, 49, + 53, 177, 77, 49, 53, 176, 77, 49, 52, 185, 77, 49, 52, 184, 77, 49, 52, + 183, 77, 49, 52, 182, 77, 49, 52, 181, 77, 49, 52, 180, 77, 49, 52, 179, + 77, 49, 52, 178, 77, 49, 52, 177, 77, 49, 52, 176, 77, 49, 51, 185, 77, + 49, 51, 184, 77, 49, 51, 183, 77, 49, 51, 182, 77, 49, 51, 181, 77, 49, + 51, 180, 77, 49, 51, 179, 77, 49, 51, 178, 77, 49, 51, 177, 77, 49, 51, + 176, 77, 49, 50, 185, 77, 49, 50, 184, 77, 49, 50, 183, 77, 49, 50, 182, + 77, 49, 50, 181, 77, 49, 50, 180, 77, 49, 50, 179, 77, 49, 50, 178, 77, + 49, 50, 177, 77, 49, 50, 176, 77, 49, 49, 185, 77, 49, 49, 184, 77, 49, + 49, 183, 77, 49, 49, 182, 77, 49, 49, 181, 77, 49, 49, 180, 77, 49, 49, + 179, 77, 49, 49, 178, 77, 49, 49, 177, 77, 49, 49, 176, 77, 49, 48, 185, + 77, 49, 48, 184, 77, 49, 48, 183, 77, 49, 48, 182, 77, 49, 48, 181, 77, + 49, 48, 180, 77, 49, 48, 179, 77, 49, 48, 178, 77, 49, 48, 177, 77, 49, + 48, 176, 77, 48, 57, 185, 77, 48, 57, 184, 77, 48, 57, 183, 77, 48, 57, + 182, 77, 48, 57, 181, 77, 48, 57, 180, 77, 48, 57, 179, 77, 48, 57, 178, + 77, 48, 57, 177, 77, 48, 57, 176, 77, 48, 56, 185, 77, 48, 56, 184, 77, + 48, 56, 183, 77, 48, 56, 182, 77, 48, 56, 181, 77, 48, 56, 180, 77, 48, + 56, 179, 77, 48, 56, 178, 77, 48, 56, 177, 77, 48, 56, 176, 77, 48, 55, + 185, 77, 48, 55, 184, 77, 48, 55, 183, 77, 48, 55, 182, 77, 48, 55, 181, + 77, 48, 55, 180, 77, 48, 55, 179, 77, 48, 55, 178, 77, 48, 55, 177, 77, + 48, 55, 176, 77, 48, 54, 185, 77, 48, 54, 184, 77, 48, 54, 183, 77, 48, + 54, 182, 77, 48, 54, 181, 77, 48, 54, 180, 77, 48, 54, 179, 77, 48, 54, + 178, 77, 48, 54, 177, 77, 48, 54, 176, 77, 48, 53, 185, 77, 48, 53, 184, + 77, 48, 53, 183, 77, 48, 53, 182, 77, 48, 53, 181, 77, 48, 53, 180, 77, + 48, 53, 179, 77, 48, 53, 178, 77, 48, 53, 177, 77, 48, 53, 176, 77, 48, + 52, 185, 77, 48, 52, 184, 77, 48, 52, 183, 77, 48, 52, 182, 77, 48, 52, + 181, 77, 48, 52, 52, 128, 77, 48, 52, 180, 77, 48, 52, 51, 128, 77, 48, + 52, 179, 77, 48, 52, 50, 128, 77, 48, 52, 178, 77, 48, 52, 49, 128, 77, + 48, 52, 177, 77, 48, 52, 48, 65, 128, 77, 48, 52, 48, 128, 77, 48, 52, + 176, 77, 48, 51, 57, 128, 77, 48, 51, 185, 77, 48, 51, 56, 128, 77, 48, + 51, 184, 77, 48, 51, 55, 128, 77, 48, 51, 183, 77, 48, 51, 54, 128, 77, + 48, 51, 182, 77, 48, 51, 53, 128, 77, 48, 51, 181, 77, 48, 51, 52, 128, + 77, 48, 51, 180, 77, 48, 51, 51, 66, 128, 77, 48, 51, 51, 65, 128, 77, + 48, 51, 51, 128, 77, 48, 51, 179, 77, 48, 51, 50, 128, 77, 48, 51, 178, + 77, 48, 51, 49, 65, 128, 77, 48, 51, 49, 128, 77, 48, 51, 177, 77, 48, + 51, 48, 128, 77, 48, 51, 176, 77, 48, 50, 57, 128, 77, 48, 50, 185, 77, + 48, 50, 56, 65, 128, 77, 48, 50, 56, 128, 77, 48, 50, 184, 77, 48, 50, + 55, 128, 77, 48, 50, 183, 77, 48, 50, 54, 128, 77, 48, 50, 182, 77, 48, + 50, 53, 128, 77, 48, 50, 181, 77, 48, 50, 52, 65, 128, 77, 48, 50, 52, + 128, 77, 48, 50, 180, 77, 48, 50, 51, 128, 77, 48, 50, 179, 77, 48, 50, + 50, 65, 128, 77, 48, 50, 50, 128, 77, 48, 50, 178, 77, 48, 50, 49, 128, + 77, 48, 50, 177, 77, 48, 50, 48, 128, 77, 48, 50, 176, 77, 48, 49, 57, + 128, 77, 48, 49, 185, 77, 48, 49, 56, 128, 77, 48, 49, 184, 77, 48, 49, + 55, 65, 128, 77, 48, 49, 55, 128, 77, 48, 49, 183, 77, 48, 49, 54, 65, + 128, 77, 48, 49, 54, 128, 77, 48, 49, 182, 77, 48, 49, 53, 65, 128, 77, + 48, 49, 53, 128, 77, 48, 49, 181, 77, 48, 49, 52, 128, 77, 48, 49, 180, + 77, 48, 49, 51, 128, 77, 48, 49, 179, 77, 48, 49, 50, 72, 128, 77, 48, + 49, 50, 71, 128, 77, 48, 49, 50, 70, 128, 77, 48, 49, 50, 69, 128, 77, + 48, 49, 50, 68, 128, 77, 48, 49, 50, 67, 128, 77, 48, 49, 50, 66, 128, + 77, 48, 49, 50, 65, 128, 77, 48, 49, 50, 128, 77, 48, 49, 178, 77, 48, + 49, 49, 128, 77, 48, 49, 177, 77, 48, 49, 48, 65, 128, 77, 48, 49, 48, + 128, 77, 48, 49, 176, 77, 48, 48, 57, 128, 77, 48, 48, 185, 77, 48, 48, + 56, 128, 77, 48, 48, 184, 77, 48, 48, 55, 128, 77, 48, 48, 183, 77, 48, + 48, 54, 128, 77, 48, 48, 182, 77, 48, 48, 53, 128, 77, 48, 48, 181, 77, + 48, 48, 52, 128, 77, 48, 48, 180, 77, 48, 48, 51, 65, 128, 77, 48, 48, + 51, 128, 77, 48, 48, 179, 77, 48, 48, 50, 128, 77, 48, 48, 178, 77, 48, + 48, 49, 66, 128, 77, 48, 48, 49, 65, 128, 77, 48, 48, 49, 128, 77, 48, + 48, 177, 76, 218, 76, 89, 89, 128, 76, 89, 88, 128, 76, 89, 84, 128, 76, + 89, 82, 88, 128, 76, 89, 82, 128, 76, 89, 80, 128, 76, 89, 73, 84, 128, + 76, 89, 73, 78, 199, 76, 89, 68, 73, 65, 206, 76, 89, 67, 73, 65, 206, + 76, 88, 128, 76, 87, 79, 79, 128, 76, 87, 79, 128, 76, 87, 73, 73, 128, + 76, 87, 73, 128, 76, 87, 69, 128, 76, 87, 65, 65, 128, 76, 87, 65, 128, + 76, 85, 88, 128, 76, 85, 85, 128, 76, 85, 84, 128, 76, 85, 82, 88, 128, + 76, 85, 80, 128, 76, 85, 79, 88, 128, 76, 85, 79, 84, 128, 76, 85, 79, + 80, 128, 76, 85, 79, 128, 76, 85, 78, 71, 83, 73, 128, 76, 85, 78, 71, + 83, 128, 76, 85, 78, 65, 84, 197, 76, 85, 205, 76, 85, 76, 128, 76, 85, + 73, 83, 128, 76, 85, 72, 85, 82, 128, 76, 85, 72, 128, 76, 85, 200, 76, + 85, 71, 71, 65, 71, 69, 128, 76, 85, 71, 65, 76, 128, 76, 85, 71, 65, + 204, 76, 85, 69, 128, 76, 85, 197, 76, 85, 66, 128, 76, 85, 65, 69, 80, + 128, 76, 85, 51, 128, 76, 85, 50, 128, 76, 85, 178, 76, 82, 79, 128, 76, + 82, 77, 128, 76, 82, 73, 128, 76, 82, 69, 128, 76, 79, 90, 69, 78, 71, + 69, 128, 76, 79, 90, 69, 78, 71, 197, 76, 79, 88, 128, 76, 79, 87, 69, + 82, 69, 196, 76, 79, 87, 45, 82, 69, 86, 69, 82, 83, 69, 68, 45, 185, 76, + 79, 87, 45, 77, 73, 196, 76, 79, 87, 45, 70, 65, 76, 76, 73, 78, 199, 76, + 79, 87, 45, 185, 76, 79, 86, 197, 76, 79, 85, 82, 69, 128, 76, 79, 85, + 68, 83, 80, 69, 65, 75, 69, 82, 128, 76, 79, 85, 68, 76, 217, 76, 79, 84, + 85, 83, 128, 76, 79, 84, 85, 211, 76, 79, 84, 73, 79, 206, 76, 79, 84, + 128, 76, 79, 83, 83, 76, 69, 83, 83, 128, 76, 79, 82, 82, 89, 128, 76, + 79, 82, 82, 65, 73, 78, 69, 128, 76, 79, 81, 128, 76, 79, 80, 128, 76, + 79, 79, 84, 128, 76, 79, 79, 80, 69, 196, 76, 79, 79, 80, 128, 76, 79, + 79, 208, 76, 79, 79, 78, 128, 76, 79, 79, 203, 76, 79, 79, 128, 76, 79, + 78, 83, 85, 77, 128, 76, 79, 78, 71, 65, 128, 76, 79, 78, 71, 193, 76, + 79, 78, 71, 45, 76, 69, 71, 71, 69, 196, 76, 79, 78, 71, 45, 66, 82, 65, + 78, 67, 72, 45, 89, 82, 128, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, + 45, 83, 79, 204, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 79, 83, + 211, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 77, 65, 68, 210, 76, + 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 72, 65, 71, 65, 76, 204, 76, + 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 65, 210, 76, 79, 77, 77, 65, + 69, 128, 76, 79, 77, 75, 65, 128, 76, 79, 77, 128, 76, 79, 205, 76, 79, + 76, 76, 73, 80, 79, 80, 128, 76, 79, 76, 76, 128, 76, 79, 71, 210, 76, + 79, 71, 79, 84, 89, 80, 197, 76, 79, 71, 79, 71, 82, 65, 205, 76, 79, 71, + 128, 76, 79, 68, 69, 83, 84, 79, 78, 69, 128, 76, 79, 67, 79, 77, 79, 84, + 73, 86, 69, 128, 76, 79, 67, 75, 73, 78, 71, 45, 83, 72, 73, 70, 212, 76, + 79, 67, 65, 84, 73, 86, 69, 128, 76, 79, 67, 65, 84, 73, 79, 78, 45, 87, + 65, 76, 76, 80, 76, 65, 78, 197, 76, 79, 67, 65, 84, 73, 79, 78, 45, 70, + 76, 79, 79, 82, 80, 76, 65, 78, 197, 76, 79, 67, 65, 84, 73, 79, 78, 128, + 76, 79, 67, 65, 84, 73, 79, 206, 76, 79, 66, 83, 84, 69, 82, 128, 76, 79, + 65, 128, 76, 78, 128, 76, 76, 85, 85, 128, 76, 76, 79, 79, 128, 76, 76, + 76, 85, 85, 128, 76, 76, 76, 85, 128, 76, 76, 76, 79, 79, 128, 76, 76, + 76, 79, 128, 76, 76, 76, 73, 73, 128, 76, 76, 76, 73, 128, 76, 76, 76, + 69, 69, 128, 76, 76, 76, 69, 128, 76, 76, 76, 65, 85, 128, 76, 76, 76, + 65, 73, 128, 76, 76, 76, 65, 65, 128, 76, 76, 76, 65, 128, 76, 76, 76, + 128, 76, 76, 72, 65, 128, 76, 76, 65, 77, 65, 128, 76, 74, 85, 68, 73, + 74, 69, 128, 76, 74, 69, 128, 76, 74, 128, 76, 73, 90, 65, 82, 68, 128, + 76, 73, 88, 128, 76, 73, 87, 78, 128, 76, 73, 86, 82, 197, 76, 73, 84, + 84, 76, 69, 128, 76, 73, 84, 84, 76, 197, 76, 73, 84, 84, 69, 210, 76, + 73, 84, 82, 193, 76, 73, 84, 200, 76, 73, 83, 213, 76, 73, 83, 128, 76, + 73, 82, 193, 76, 73, 81, 85, 73, 68, 128, 76, 73, 81, 85, 73, 196, 76, + 73, 81, 128, 76, 73, 80, 83, 84, 73, 67, 75, 128, 76, 73, 80, 211, 76, + 73, 208, 76, 73, 78, 75, 73, 78, 199, 76, 73, 78, 75, 69, 196, 76, 73, + 78, 203, 76, 73, 78, 71, 83, 65, 128, 76, 73, 78, 69, 83, 128, 76, 73, + 78, 69, 211, 76, 73, 78, 69, 45, 57, 128, 76, 73, 78, 69, 45, 55, 128, + 76, 73, 78, 69, 45, 51, 128, 76, 73, 78, 69, 45, 49, 128, 76, 73, 77, 77, + 85, 52, 128, 76, 73, 77, 77, 85, 50, 128, 76, 73, 77, 77, 85, 128, 76, + 73, 77, 77, 213, 76, 73, 77, 73, 84, 69, 196, 76, 73, 77, 73, 84, 65, 84, + 73, 79, 78, 128, 76, 73, 77, 73, 84, 128, 76, 73, 77, 69, 128, 76, 73, + 77, 66, 213, 76, 73, 77, 66, 211, 76, 73, 77, 194, 76, 73, 76, 89, 128, + 76, 73, 76, 73, 84, 72, 128, 76, 73, 76, 128, 76, 73, 71, 72, 84, 78, 73, + 78, 71, 128, 76, 73, 71, 72, 84, 78, 73, 78, 199, 76, 73, 71, 72, 84, 72, + 79, 85, 83, 69, 128, 76, 73, 71, 72, 84, 128, 76, 73, 71, 65, 84, 73, 78, + 199, 76, 73, 70, 84, 69, 82, 128, 76, 73, 70, 69, 128, 76, 73, 69, 88, + 128, 76, 73, 69, 84, 128, 76, 73, 69, 80, 128, 76, 73, 69, 69, 128, 76, + 73, 69, 128, 76, 73, 68, 128, 76, 73, 67, 75, 73, 78, 199, 76, 73, 66, + 82, 65, 128, 76, 73, 66, 69, 82, 84, 89, 128, 76, 73, 65, 66, 73, 76, 73, + 84, 217, 76, 72, 73, 73, 128, 76, 72, 65, 86, 73, 89, 65, 78, 73, 128, + 76, 72, 65, 199, 76, 72, 65, 65, 128, 76, 72, 128, 76, 69, 90, 72, 128, + 76, 69, 90, 200, 76, 69, 88, 128, 76, 69, 86, 73, 84, 65, 84, 73, 78, 71, + 128, 76, 69, 86, 69, 76, 45, 51, 128, 76, 69, 86, 69, 76, 45, 50, 128, + 76, 69, 85, 77, 128, 76, 69, 85, 65, 69, 80, 128, 76, 69, 85, 65, 69, 77, + 128, 76, 69, 85, 128, 76, 69, 213, 76, 69, 84, 84, 69, 82, 83, 128, 76, + 69, 84, 84, 69, 82, 128, 76, 69, 212, 76, 69, 83, 83, 69, 210, 76, 69, + 83, 83, 45, 84, 72, 65, 78, 128, 76, 69, 83, 83, 45, 84, 72, 65, 206, 76, + 69, 83, 72, 128, 76, 69, 80, 67, 72, 193, 76, 69, 80, 128, 76, 69, 79, + 80, 65, 82, 68, 128, 76, 69, 79, 128, 76, 69, 78, 84, 73, 67, 85, 76, 65, + 210, 76, 69, 78, 73, 83, 128, 76, 69, 78, 73, 211, 76, 69, 78, 71, 84, + 72, 69, 78, 69, 82, 128, 76, 69, 78, 71, 84, 72, 45, 55, 128, 76, 69, 78, + 71, 84, 72, 45, 54, 128, 76, 69, 78, 71, 84, 72, 45, 53, 128, 76, 69, 78, + 71, 84, 72, 45, 52, 128, 76, 69, 78, 71, 84, 72, 45, 51, 128, 76, 69, 78, + 71, 84, 72, 45, 50, 128, 76, 69, 78, 71, 84, 72, 45, 49, 128, 76, 69, 78, + 71, 84, 200, 76, 69, 78, 71, 65, 128, 76, 69, 78, 71, 193, 76, 69, 77, + 79, 78, 128, 76, 69, 77, 79, 73, 128, 76, 69, 76, 69, 84, 128, 76, 69, + 76, 69, 212, 76, 69, 203, 76, 69, 73, 77, 77, 65, 128, 76, 69, 73, 77, + 77, 193, 76, 69, 73, 128, 76, 69, 71, 83, 128, 76, 69, 71, 73, 79, 78, + 128, 76, 69, 71, 69, 84, 79, 211, 76, 69, 71, 128, 76, 69, 199, 76, 69, + 70, 84, 87, 65, 82, 68, 83, 128, 76, 69, 70, 84, 45, 84, 79, 45, 82, 73, + 71, 72, 212, 76, 69, 70, 84, 45, 83, 84, 69, 205, 76, 69, 70, 84, 45, 83, + 73, 68, 197, 76, 69, 70, 84, 45, 83, 72, 65, 68, 69, 196, 76, 69, 70, 84, + 45, 80, 79, 73, 78, 84, 73, 78, 199, 76, 69, 70, 84, 45, 76, 73, 71, 72, + 84, 69, 196, 76, 69, 70, 84, 45, 72, 65, 78, 68, 69, 196, 76, 69, 70, 84, + 45, 72, 65, 78, 196, 76, 69, 70, 84, 45, 70, 65, 67, 73, 78, 199, 76, 69, + 70, 84, 128, 76, 69, 69, 82, 65, 69, 87, 65, 128, 76, 69, 69, 75, 128, + 76, 69, 69, 69, 69, 128, 76, 69, 68, 71, 69, 82, 128, 76, 69, 65, 84, 72, + 69, 82, 128, 76, 69, 65, 78, 73, 78, 199, 76, 69, 65, 70, 217, 76, 69, + 65, 70, 128, 76, 69, 65, 198, 76, 69, 65, 68, 69, 82, 128, 76, 69, 65, + 196, 76, 68, 65, 78, 128, 76, 68, 50, 128, 76, 67, 201, 76, 67, 197, 76, + 65, 90, 217, 76, 65, 89, 65, 78, 78, 65, 128, 76, 65, 88, 128, 76, 65, + 87, 128, 76, 65, 215, 76, 65, 85, 76, 65, 128, 76, 65, 85, 75, 65, 218, + 76, 65, 85, 74, 128, 76, 65, 85, 71, 72, 73, 78, 71, 128, 76, 65, 84, 73, + 78, 65, 84, 197, 76, 65, 84, 73, 75, 128, 76, 65, 84, 69, 82, 65, 204, + 76, 65, 84, 197, 76, 65, 83, 212, 76, 65, 82, 89, 78, 71, 69, 65, 204, + 76, 65, 82, 201, 76, 65, 82, 71, 69, 83, 84, 128, 76, 65, 82, 71, 69, + 210, 76, 65, 82, 71, 69, 128, 76, 65, 82, 71, 197, 76, 65, 81, 128, 76, + 65, 80, 65, 81, 128, 76, 65, 207, 76, 65, 78, 84, 69, 82, 78, 128, 76, + 65, 78, 84, 65, 78, 71, 128, 76, 65, 78, 71, 85, 65, 71, 197, 76, 65, 78, + 69, 83, 128, 76, 65, 78, 196, 76, 65, 78, 128, 76, 65, 77, 80, 128, 76, + 65, 77, 69, 68, 72, 128, 76, 65, 77, 69, 68, 128, 76, 65, 77, 69, 196, + 76, 65, 77, 69, 128, 76, 65, 77, 197, 76, 65, 77, 68, 65, 128, 76, 65, + 77, 68, 128, 76, 65, 77, 66, 68, 193, 76, 65, 77, 65, 68, 72, 128, 76, + 65, 76, 128, 76, 65, 204, 76, 65, 75, 75, 72, 65, 78, 71, 89, 65, 79, + 128, 76, 65, 75, 72, 65, 78, 128, 76, 65, 75, 72, 128, 76, 65, 75, 200, + 76, 65, 75, 45, 55, 52, 57, 128, 76, 65, 75, 45, 55, 50, 52, 128, 76, 65, + 75, 45, 54, 54, 56, 128, 76, 65, 75, 45, 54, 52, 56, 128, 76, 65, 75, 45, + 54, 52, 184, 76, 65, 75, 45, 54, 51, 54, 128, 76, 65, 75, 45, 54, 49, 55, + 128, 76, 65, 75, 45, 54, 49, 183, 76, 65, 75, 45, 54, 48, 56, 128, 76, + 65, 75, 45, 53, 53, 48, 128, 76, 65, 75, 45, 52, 57, 53, 128, 76, 65, 75, + 45, 52, 57, 51, 128, 76, 65, 75, 45, 52, 57, 50, 128, 76, 65, 75, 45, 52, + 57, 48, 128, 76, 65, 75, 45, 52, 56, 51, 128, 76, 65, 75, 45, 52, 55, 48, + 128, 76, 65, 75, 45, 52, 53, 55, 128, 76, 65, 75, 45, 52, 53, 48, 128, + 76, 65, 75, 45, 52, 52, 57, 128, 76, 65, 75, 45, 52, 52, 185, 76, 65, 75, + 45, 52, 52, 49, 128, 76, 65, 75, 45, 51, 57, 48, 128, 76, 65, 75, 45, 51, + 56, 52, 128, 76, 65, 75, 45, 51, 56, 51, 128, 76, 65, 75, 45, 51, 52, 56, + 128, 76, 65, 75, 45, 51, 52, 55, 128, 76, 65, 75, 45, 51, 52, 51, 128, + 76, 65, 75, 45, 50, 54, 54, 128, 76, 65, 75, 45, 50, 54, 53, 128, 76, 65, + 75, 45, 50, 51, 56, 128, 76, 65, 75, 45, 50, 50, 56, 128, 76, 65, 75, 45, + 50, 50, 53, 128, 76, 65, 75, 45, 50, 50, 48, 128, 76, 65, 75, 45, 50, 49, + 57, 128, 76, 65, 75, 45, 50, 49, 48, 128, 76, 65, 75, 45, 49, 52, 50, + 128, 76, 65, 75, 45, 49, 51, 48, 128, 76, 65, 75, 45, 48, 57, 50, 128, + 76, 65, 75, 45, 48, 56, 49, 128, 76, 65, 75, 45, 48, 56, 177, 76, 65, 75, + 45, 48, 56, 48, 128, 76, 65, 75, 45, 48, 55, 185, 76, 65, 75, 45, 48, 54, + 50, 128, 76, 65, 75, 45, 48, 53, 49, 128, 76, 65, 75, 45, 48, 53, 48, + 128, 76, 65, 75, 45, 48, 51, 48, 128, 76, 65, 75, 45, 48, 50, 53, 128, + 76, 65, 75, 45, 48, 50, 49, 128, 76, 65, 75, 45, 48, 50, 48, 128, 76, 65, + 75, 45, 48, 48, 51, 128, 76, 65, 74, 65, 78, 89, 65, 76, 65, 78, 128, 76, + 65, 73, 78, 199, 76, 65, 201, 76, 65, 72, 83, 72, 85, 128, 76, 65, 72, + 128, 76, 65, 71, 85, 83, 128, 76, 65, 71, 213, 76, 65, 71, 65, 82, 128, + 76, 65, 71, 65, 210, 76, 65, 71, 65, 66, 128, 76, 65, 71, 65, 194, 76, + 65, 69, 86, 128, 76, 65, 69, 128, 76, 65, 68, 217, 76, 65, 68, 68, 69, + 82, 128, 76, 65, 67, 82, 79, 83, 83, 197, 76, 65, 67, 75, 128, 76, 65, + 67, 65, 128, 76, 65, 66, 79, 85, 82, 73, 78, 71, 128, 76, 65, 66, 79, 82, + 128, 76, 65, 66, 73, 65, 76, 73, 90, 65, 84, 73, 79, 206, 76, 65, 66, 73, + 65, 204, 76, 65, 66, 69, 76, 128, 76, 65, 66, 65, 84, 128, 76, 65, 194, + 76, 65, 65, 78, 65, 69, 128, 76, 65, 65, 78, 128, 76, 65, 65, 77, 85, + 128, 76, 65, 65, 73, 128, 76, 54, 128, 76, 52, 128, 76, 51, 128, 76, 50, + 128, 76, 48, 48, 54, 65, 128, 76, 48, 48, 50, 65, 128, 76, 45, 84, 89, + 80, 197, 76, 45, 83, 72, 65, 80, 69, 196, 75, 89, 85, 82, 73, 73, 128, + 75, 89, 85, 128, 75, 89, 79, 128, 75, 89, 76, 73, 83, 77, 65, 128, 75, + 89, 73, 128, 75, 89, 69, 128, 75, 89, 65, 84, 72, 79, 211, 75, 89, 65, + 65, 128, 75, 89, 65, 128, 75, 88, 87, 73, 128, 75, 88, 87, 69, 69, 128, + 75, 88, 87, 69, 128, 75, 88, 87, 65, 65, 128, 75, 88, 87, 65, 128, 75, + 88, 85, 128, 75, 88, 79, 128, 75, 88, 73, 128, 75, 88, 69, 69, 128, 75, + 88, 69, 128, 75, 88, 65, 65, 128, 75, 88, 65, 128, 75, 87, 86, 128, 75, + 87, 85, 51, 49, 56, 128, 75, 87, 79, 79, 128, 75, 87, 79, 128, 75, 87, + 77, 128, 75, 87, 73, 73, 128, 75, 87, 73, 128, 75, 87, 69, 69, 128, 75, + 87, 69, 128, 75, 87, 66, 128, 75, 87, 65, 89, 128, 75, 87, 65, 69, 84, + 128, 75, 87, 65, 65, 128, 75, 86, 65, 128, 75, 86, 128, 75, 85, 90, 72, + 73, 128, 75, 85, 88, 128, 75, 85, 86, 128, 75, 85, 85, 72, 128, 75, 85, + 84, 128, 75, 85, 83, 77, 65, 128, 75, 85, 83, 72, 85, 50, 128, 75, 85, + 83, 72, 85, 178, 75, 85, 82, 88, 128, 75, 85, 82, 85, 90, 69, 73, 82, 79, + 128, 75, 85, 82, 84, 128, 75, 85, 82, 79, 79, 78, 69, 128, 75, 85, 82, + 128, 75, 85, 210, 75, 85, 81, 128, 75, 85, 80, 78, 65, 89, 65, 128, 75, + 85, 79, 88, 128, 75, 85, 79, 80, 128, 75, 85, 79, 208, 75, 85, 79, 77, + 128, 75, 85, 79, 128, 75, 85, 78, 71, 128, 75, 85, 78, 68, 68, 65, 76, + 73, 89, 65, 128, 75, 85, 76, 128, 75, 85, 204, 75, 85, 71, 128, 75, 85, + 70, 73, 83, 77, 65, 128, 75, 85, 69, 84, 128, 75, 85, 66, 128, 75, 85, + 65, 86, 128, 75, 85, 65, 66, 128, 75, 85, 65, 128, 75, 85, 55, 128, 75, + 85, 52, 128, 75, 85, 180, 75, 85, 51, 128, 75, 85, 179, 75, 85, 45, 55, + 128, 75, 85, 45, 54, 128, 75, 85, 45, 53, 128, 75, 85, 45, 52, 128, 75, + 85, 45, 51, 128, 75, 85, 45, 50, 128, 75, 85, 45, 49, 128, 75, 84, 128, + 75, 83, 83, 85, 85, 128, 75, 83, 83, 85, 128, 75, 83, 83, 79, 79, 128, + 75, 83, 83, 79, 128, 75, 83, 83, 73, 73, 128, 75, 83, 83, 73, 128, 75, + 83, 83, 69, 69, 128, 75, 83, 83, 69, 128, 75, 83, 83, 65, 85, 128, 75, + 83, 83, 65, 73, 128, 75, 83, 83, 65, 65, 128, 75, 83, 83, 65, 128, 75, + 83, 83, 128, 75, 83, 73, 128, 75, 82, 89, 90, 72, 69, 86, 65, 89, 65, + 128, 75, 82, 89, 90, 72, 69, 77, 128, 75, 82, 89, 90, 72, 69, 205, 75, + 82, 89, 90, 72, 128, 75, 82, 89, 90, 200, 75, 82, 89, 85, 75, 79, 86, 65, + 89, 65, 128, 75, 82, 89, 85, 75, 79, 86, 65, 89, 193, 75, 82, 89, 85, 75, + 128, 75, 82, 89, 85, 203, 75, 82, 79, 78, 79, 83, 128, 75, 82, 69, 77, + 65, 83, 84, 73, 128, 75, 82, 65, 84, 73, 77, 79, 89, 80, 79, 82, 82, 79, + 79, 78, 128, 75, 82, 65, 84, 73, 77, 79, 75, 79, 85, 70, 73, 83, 77, 65, + 128, 75, 82, 65, 84, 73, 77, 65, 84, 65, 128, 75, 82, 65, 84, 73, 77, + 193, 75, 80, 85, 128, 75, 80, 79, 81, 128, 75, 80, 79, 79, 128, 75, 80, + 79, 128, 75, 80, 73, 128, 75, 80, 69, 85, 88, 128, 75, 80, 69, 69, 128, + 75, 80, 69, 128, 75, 80, 65, 82, 65, 81, 128, 75, 80, 65, 78, 128, 75, + 80, 65, 72, 128, 75, 80, 65, 128, 75, 80, 128, 75, 79, 88, 128, 75, 79, + 86, 85, 85, 128, 75, 79, 86, 128, 75, 79, 84, 79, 128, 75, 79, 82, 85, + 78, 65, 128, 75, 79, 82, 79, 78, 73, 83, 128, 75, 79, 82, 79, 78, 128, + 75, 79, 82, 69, 65, 206, 75, 79, 82, 65, 78, 73, 195, 75, 79, 81, 78, 68, + 79, 78, 128, 75, 79, 80, 80, 65, 128, 75, 79, 80, 128, 75, 79, 79, 86, + 128, 75, 79, 79, 80, 79, 128, 75, 79, 79, 77, 85, 85, 84, 128, 75, 79, + 79, 66, 128, 75, 79, 79, 128, 75, 79, 78, 84, 69, 86, 77, 65, 128, 75, + 79, 78, 84, 69, 86, 77, 193, 75, 79, 77, 201, 75, 79, 77, 66, 85, 86, 65, + 128, 75, 79, 77, 66, 85, 86, 193, 75, 79, 77, 66, 213, 75, 79, 75, 79, + 128, 75, 79, 75, 69, 128, 75, 79, 75, 128, 75, 79, 203, 75, 79, 73, 78, + 73, 128, 75, 79, 73, 128, 75, 79, 201, 75, 79, 72, 128, 75, 79, 71, 72, + 79, 77, 128, 75, 79, 69, 84, 128, 75, 79, 66, 89, 76, 65, 128, 75, 79, + 66, 128, 75, 79, 65, 76, 65, 128, 75, 79, 65, 128, 75, 79, 45, 75, 73, + 128, 75, 79, 45, 51, 128, 75, 79, 45, 50, 128, 75, 79, 45, 49, 128, 75, + 78, 85, 67, 75, 76, 69, 83, 128, 75, 78, 85, 67, 75, 76, 69, 128, 75, 78, + 79, 84, 128, 75, 78, 79, 66, 83, 128, 75, 78, 73, 71, 72, 84, 45, 82, 79, + 79, 75, 128, 75, 78, 73, 71, 72, 84, 45, 81, 85, 69, 69, 78, 128, 75, 78, + 73, 71, 72, 84, 45, 66, 73, 83, 72, 79, 80, 128, 75, 78, 73, 71, 72, 84, + 128, 75, 78, 73, 71, 72, 212, 75, 78, 73, 70, 69, 128, 75, 78, 73, 70, + 197, 75, 78, 69, 69, 76, 73, 78, 199, 75, 77, 128, 75, 205, 75, 76, 89, + 85, 67, 72, 69, 86, 79, 89, 128, 75, 76, 89, 85, 67, 72, 69, 86, 65, 89, + 65, 128, 75, 76, 89, 85, 67, 72, 69, 86, 65, 89, 193, 75, 76, 89, 85, 67, + 72, 69, 80, 79, 86, 79, 68, 78, 89, 128, 75, 76, 89, 85, 67, 72, 69, 80, + 79, 86, 79, 68, 78, 65, 89, 65, 128, 75, 76, 89, 85, 67, 72, 69, 78, 69, + 80, 79, 83, 84, 79, 89, 65, 78, 78, 89, 128, 75, 76, 89, 85, 67, 72, 69, + 78, 69, 80, 79, 83, 84, 79, 89, 65, 78, 78, 65, 89, 65, 128, 75, 76, 89, + 85, 67, 72, 128, 75, 76, 73, 84, 79, 78, 128, 75, 76, 65, 83, 77, 65, + 128, 75, 76, 65, 83, 77, 193, 75, 76, 65, 128, 75, 76, 128, 75, 75, 79, + 128, 75, 75, 73, 128, 75, 75, 69, 69, 128, 75, 75, 69, 128, 75, 75, 65, + 128, 75, 75, 128, 75, 74, 69, 128, 75, 73, 89, 69, 79, 75, 45, 84, 73, + 75, 69, 85, 84, 128, 75, 73, 89, 69, 79, 75, 45, 83, 73, 79, 83, 45, 75, + 73, 89, 69, 79, 75, 128, 75, 73, 89, 69, 79, 75, 45, 82, 73, 69, 85, 76, + 128, 75, 73, 89, 69, 79, 75, 45, 80, 73, 69, 85, 80, 128, 75, 73, 89, 69, + 79, 75, 45, 78, 73, 69, 85, 78, 128, 75, 73, 89, 69, 79, 75, 45, 75, 72, + 73, 69, 85, 75, 72, 128, 75, 73, 89, 69, 79, 75, 45, 67, 72, 73, 69, 85, + 67, 72, 128, 75, 73, 89, 69, 79, 203, 75, 73, 88, 128, 75, 73, 87, 73, + 70, 82, 85, 73, 84, 128, 75, 73, 87, 128, 75, 73, 86, 128, 75, 73, 84, + 69, 128, 75, 73, 84, 128, 75, 73, 83, 83, 73, 78, 199, 75, 73, 83, 83, + 128, 75, 73, 83, 211, 75, 73, 83, 73, 77, 53, 128, 75, 73, 83, 73, 77, + 181, 75, 73, 83, 72, 128, 75, 73, 83, 65, 76, 128, 75, 73, 82, 79, 87, + 65, 84, 84, 79, 128, 75, 73, 82, 79, 77, 69, 69, 84, 79, 82, 85, 128, 75, + 73, 82, 79, 71, 85, 82, 65, 77, 85, 128, 75, 73, 82, 79, 128, 75, 73, 82, + 71, 72, 73, 218, 75, 73, 81, 128, 75, 73, 80, 128, 75, 73, 208, 75, 73, + 78, 83, 72, 73, 80, 128, 75, 73, 78, 78, 193, 75, 73, 78, 68, 69, 82, 71, + 65, 82, 84, 69, 78, 128, 75, 73, 77, 79, 78, 79, 128, 75, 73, 76, 76, 69, + 82, 128, 75, 73, 73, 90, 72, 128, 75, 73, 73, 128, 75, 73, 72, 128, 75, + 73, 69, 88, 128, 75, 73, 69, 86, 65, 206, 75, 73, 69, 80, 128, 75, 73, + 69, 69, 77, 128, 75, 73, 69, 128, 75, 73, 68, 128, 75, 73, 196, 75, 73, + 67, 75, 128, 75, 73, 66, 128, 75, 73, 65, 86, 128, 75, 73, 65, 66, 128, + 75, 73, 45, 56, 128, 75, 73, 45, 55, 128, 75, 73, 45, 54, 128, 75, 73, + 45, 53, 128, 75, 73, 45, 52, 128, 75, 73, 45, 51, 128, 75, 73, 45, 50, + 128, 75, 73, 45, 49, 128, 75, 72, 90, 128, 75, 72, 87, 65, 73, 128, 75, + 72, 85, 69, 78, 45, 76, 85, 197, 75, 72, 85, 69, 206, 75, 72, 85, 68, 65, + 87, 65, 68, 201, 75, 72, 85, 68, 65, 77, 128, 75, 72, 85, 65, 84, 128, + 75, 72, 79, 85, 128, 75, 72, 79, 212, 75, 72, 79, 78, 78, 65, 128, 75, + 72, 79, 78, 128, 75, 72, 79, 77, 85, 84, 128, 75, 72, 79, 75, 72, 76, 79, + 205, 75, 72, 79, 74, 75, 201, 75, 72, 79, 128, 75, 72, 207, 75, 72, 77, + 213, 75, 72, 73, 84, 128, 75, 72, 73, 78, 89, 65, 128, 75, 72, 73, 69, + 85, 75, 200, 75, 72, 73, 128, 75, 72, 201, 75, 72, 72, 79, 128, 75, 72, + 72, 65, 128, 75, 72, 69, 84, 72, 128, 75, 72, 69, 73, 128, 75, 72, 69, + 69, 128, 75, 72, 69, 128, 75, 72, 65, 86, 128, 75, 72, 65, 82, 79, 83, + 72, 84, 72, 201, 75, 72, 65, 82, 128, 75, 72, 65, 80, 72, 128, 75, 72, + 65, 78, 199, 75, 72, 65, 78, 68, 193, 75, 72, 65, 77, 84, 201, 75, 72, + 65, 77, 73, 76, 79, 128, 75, 72, 65, 75, 65, 83, 83, 73, 65, 206, 75, 72, + 65, 73, 128, 75, 72, 65, 72, 128, 75, 72, 65, 200, 75, 72, 65, 70, 128, + 75, 72, 65, 66, 128, 75, 72, 65, 65, 128, 75, 71, 128, 75, 69, 89, 67, + 65, 80, 128, 75, 69, 89, 67, 65, 208, 75, 69, 89, 66, 79, 65, 82, 68, + 128, 75, 69, 89, 66, 79, 65, 82, 196, 75, 69, 88, 128, 75, 69, 86, 128, + 75, 69, 85, 89, 69, 85, 88, 128, 75, 69, 85, 83, 72, 69, 85, 65, 69, 80, + 128, 75, 69, 85, 83, 69, 85, 88, 128, 75, 69, 85, 80, 85, 81, 128, 75, + 69, 85, 79, 212, 75, 69, 85, 77, 128, 75, 69, 85, 75, 69, 85, 84, 78, 68, + 65, 128, 75, 69, 85, 75, 65, 81, 128, 75, 69, 85, 65, 69, 84, 77, 69, 85, + 78, 128, 75, 69, 85, 65, 69, 82, 73, 128, 75, 69, 84, 84, 201, 75, 69, + 83, 72, 50, 128, 75, 69, 82, 69, 84, 128, 75, 69, 79, 87, 128, 75, 69, + 78, 84, 73, 77, 65, 84, 65, 128, 75, 69, 78, 84, 73, 77, 65, 84, 193, 75, + 69, 78, 84, 73, 77, 193, 75, 69, 78, 65, 84, 128, 75, 69, 78, 128, 75, + 69, 206, 75, 69, 77, 80, 85, 76, 128, 75, 69, 77, 80, 85, 204, 75, 69, + 77, 80, 76, 73, 128, 75, 69, 77, 80, 76, 201, 75, 69, 77, 80, 72, 82, 69, + 78, 71, 128, 75, 69, 77, 66, 65, 78, 71, 128, 75, 69, 76, 86, 73, 206, + 75, 69, 72, 69, 72, 128, 75, 69, 72, 69, 200, 75, 69, 72, 128, 75, 69, + 70, 85, 76, 65, 128, 75, 69, 69, 86, 128, 75, 69, 69, 83, 85, 128, 75, + 69, 69, 80, 73, 78, 199, 75, 69, 69, 78, 71, 128, 75, 69, 69, 66, 128, + 75, 69, 66, 128, 75, 69, 65, 65, 69, 128, 75, 67, 65, 76, 128, 75, 66, + 128, 75, 65, 90, 65, 75, 200, 75, 65, 89, 65, 78, 78, 65, 128, 75, 65, + 89, 65, 200, 75, 65, 88, 128, 75, 65, 87, 86, 128, 75, 65, 87, 73, 128, + 75, 65, 87, 66, 128, 75, 65, 86, 89, 75, 65, 128, 75, 65, 86, 89, 75, + 193, 75, 65, 86, 128, 75, 65, 85, 86, 128, 75, 65, 85, 78, 65, 128, 75, + 65, 85, 206, 75, 65, 85, 66, 128, 75, 65, 84, 79, 128, 75, 65, 84, 72, + 73, 83, 84, 73, 128, 75, 65, 84, 72, 65, 75, 193, 75, 65, 84, 65, 86, 65, + 83, 77, 65, 128, 75, 65, 84, 65, 86, 193, 75, 65, 84, 65, 75, 65, 78, 65, + 45, 72, 73, 82, 65, 71, 65, 78, 193, 75, 65, 83, 82, 65, 84, 65, 78, 128, + 75, 65, 83, 82, 65, 84, 65, 206, 75, 65, 83, 82, 65, 128, 75, 65, 83, 82, + 193, 75, 65, 83, 75, 65, 76, 128, 75, 65, 83, 75, 65, 204, 75, 65, 83, + 72, 77, 73, 82, 201, 75, 65, 82, 83, 72, 65, 78, 65, 128, 75, 65, 82, 79, + 82, 73, 73, 128, 75, 65, 82, 79, 82, 65, 78, 128, 75, 65, 82, 79, 82, + 128, 75, 65, 82, 207, 75, 65, 82, 69, 206, 75, 65, 82, 65, 84, 84, 79, + 128, 75, 65, 82, 65, 78, 128, 75, 65, 80, 89, 69, 79, 85, 78, 83, 83, 65, + 78, 71, 80, 73, 69, 85, 80, 128, 75, 65, 80, 89, 69, 79, 85, 78, 82, 73, + 69, 85, 76, 128, 75, 65, 80, 89, 69, 79, 85, 78, 80, 72, 73, 69, 85, 80, + 72, 128, 75, 65, 80, 89, 69, 79, 85, 78, 77, 73, 69, 85, 77, 128, 75, 65, + 80, 80, 65, 128, 75, 65, 80, 80, 193, 75, 65, 80, 79, 128, 75, 65, 80, + 72, 128, 75, 65, 80, 65, 76, 128, 75, 65, 80, 65, 128, 75, 65, 208, 75, + 65, 78, 84, 65, 74, 193, 75, 65, 78, 78, 65, 68, 193, 75, 65, 78, 71, 65, + 82, 79, 79, 128, 75, 65, 78, 71, 128, 75, 65, 78, 199, 75, 65, 78, 65, + 75, 79, 128, 75, 65, 77, 52, 128, 75, 65, 77, 50, 128, 75, 65, 77, 128, + 75, 65, 75, 79, 128, 75, 65, 75, 65, 66, 65, 84, 128, 75, 65, 75, 128, + 75, 65, 203, 75, 65, 73, 86, 128, 75, 65, 73, 84, 72, 201, 75, 65, 73, + 82, 73, 128, 75, 65, 73, 66, 128, 75, 65, 73, 128, 75, 65, 201, 75, 65, + 70, 65, 128, 75, 65, 70, 128, 75, 65, 198, 75, 65, 68, 53, 128, 75, 65, + 68, 181, 75, 65, 68, 52, 128, 75, 65, 68, 51, 128, 75, 65, 68, 179, 75, + 65, 68, 50, 128, 75, 65, 68, 128, 75, 65, 67, 72, 75, 65, 128, 75, 65, + 66, 193, 75, 65, 66, 128, 75, 65, 65, 86, 128, 75, 65, 65, 73, 128, 75, + 65, 65, 70, 85, 128, 75, 65, 65, 70, 128, 75, 65, 65, 67, 85, 128, 75, + 65, 65, 66, 65, 128, 75, 65, 65, 66, 128, 75, 65, 50, 128, 75, 65, 178, + 75, 65, 45, 75, 69, 128, 75, 65, 45, 57, 128, 75, 65, 45, 56, 128, 75, + 65, 45, 55, 128, 75, 65, 45, 54, 128, 75, 65, 45, 53, 128, 75, 65, 45, + 52, 128, 75, 65, 45, 51, 128, 75, 65, 45, 50, 128, 75, 65, 45, 49, 49, + 128, 75, 65, 45, 49, 48, 128, 75, 65, 45, 49, 128, 75, 48, 48, 56, 128, + 75, 48, 48, 55, 128, 75, 48, 48, 54, 128, 75, 48, 48, 53, 128, 75, 48, + 48, 52, 128, 75, 48, 48, 51, 128, 75, 48, 48, 50, 128, 75, 48, 48, 49, + 128, 74, 87, 65, 128, 74, 85, 85, 128, 74, 85, 84, 128, 74, 85, 83, 84, + 73, 70, 73, 67, 65, 84, 73, 79, 78, 128, 74, 85, 80, 73, 84, 69, 82, 128, + 74, 85, 79, 84, 128, 74, 85, 79, 80, 128, 74, 85, 78, 79, 128, 74, 85, + 78, 71, 83, 69, 79, 78, 199, 74, 85, 78, 69, 128, 74, 85, 76, 89, 128, + 74, 85, 71, 71, 76, 73, 78, 71, 128, 74, 85, 69, 85, 73, 128, 74, 85, 68, + 85, 76, 128, 74, 85, 68, 71, 69, 128, 74, 85, 68, 69, 79, 45, 83, 80, 65, + 78, 73, 83, 200, 74, 79, 89, 83, 84, 73, 67, 75, 128, 74, 79, 89, 79, 85, + 211, 74, 79, 89, 128, 74, 79, 86, 69, 128, 74, 79, 212, 74, 79, 78, 71, + 128, 74, 79, 78, 193, 74, 79, 75, 69, 82, 128, 74, 79, 73, 78, 84, 83, + 128, 74, 79, 73, 78, 69, 68, 128, 74, 79, 73, 78, 128, 74, 79, 65, 128, + 74, 78, 89, 65, 128, 74, 74, 89, 88, 128, 74, 74, 89, 84, 128, 74, 74, + 89, 80, 128, 74, 74, 89, 128, 74, 74, 85, 88, 128, 74, 74, 85, 84, 128, + 74, 74, 85, 82, 88, 128, 74, 74, 85, 82, 128, 74, 74, 85, 80, 128, 74, + 74, 85, 79, 88, 128, 74, 74, 85, 79, 80, 128, 74, 74, 85, 79, 128, 74, + 74, 85, 128, 74, 74, 79, 88, 128, 74, 74, 79, 84, 128, 74, 74, 79, 80, + 128, 74, 74, 79, 128, 74, 74, 73, 88, 128, 74, 74, 73, 84, 128, 74, 74, + 73, 80, 128, 74, 74, 73, 69, 88, 128, 74, 74, 73, 69, 84, 128, 74, 74, + 73, 69, 80, 128, 74, 74, 73, 69, 128, 74, 74, 73, 128, 74, 74, 69, 69, + 128, 74, 74, 69, 128, 74, 74, 65, 128, 74, 73, 76, 128, 74, 73, 73, 77, + 128, 74, 73, 73, 128, 74, 73, 72, 86, 65, 77, 85, 76, 73, 89, 65, 128, + 74, 73, 71, 83, 65, 215, 74, 73, 65, 128, 74, 72, 79, 88, 128, 74, 72, + 79, 128, 74, 72, 69, 72, 128, 74, 72, 65, 89, 73, 78, 128, 74, 72, 65, + 78, 128, 74, 72, 65, 77, 128, 74, 72, 65, 65, 128, 74, 72, 65, 128, 74, + 69, 85, 128, 74, 69, 82, 85, 83, 65, 76, 69, 77, 128, 74, 69, 82, 65, + 206, 74, 69, 82, 65, 128, 74, 69, 82, 128, 74, 69, 72, 128, 74, 69, 200, + 74, 69, 71, 79, 71, 65, 78, 128, 74, 69, 69, 77, 128, 74, 69, 69, 205, + 74, 69, 65, 78, 83, 128, 74, 65, 89, 78, 128, 74, 65, 89, 73, 78, 128, + 74, 65, 89, 65, 78, 78, 65, 128, 74, 65, 87, 128, 74, 65, 86, 73, 89, 65, + 78, 73, 128, 74, 65, 86, 65, 78, 69, 83, 197, 74, 65, 85, 128, 74, 65, + 82, 128, 74, 65, 80, 65, 78, 69, 83, 197, 74, 65, 80, 65, 78, 128, 74, + 65, 78, 85, 65, 82, 89, 128, 74, 65, 76, 76, 65, 74, 65, 76, 65, 76, 79, + 85, 72, 79, 85, 128, 74, 65, 76, 76, 128, 74, 65, 73, 206, 74, 65, 73, + 128, 74, 65, 72, 128, 74, 65, 68, 69, 128, 74, 65, 67, 75, 83, 128, 74, + 65, 67, 75, 45, 79, 45, 76, 65, 78, 84, 69, 82, 78, 128, 74, 65, 67, 203, + 74, 45, 83, 73, 77, 80, 76, 73, 70, 73, 69, 196, 73, 90, 72, 73, 84, 83, + 65, 128, 73, 90, 72, 73, 84, 83, 193, 73, 90, 72, 69, 128, 73, 90, 65, + 75, 65, 89, 193, 73, 89, 69, 75, 128, 73, 89, 65, 78, 78, 65, 128, 73, + 85, 74, 65, 128, 73, 84, 211, 73, 84, 69, 82, 65, 84, 73, 79, 206, 73, + 84, 69, 77, 128, 73, 83, 83, 72, 65, 82, 128, 73, 83, 79, 83, 67, 69, 76, + 69, 211, 73, 83, 79, 78, 128, 73, 83, 79, 206, 73, 83, 79, 76, 65, 84, + 69, 128, 73, 83, 76, 65, 78, 68, 128, 73, 83, 72, 77, 65, 65, 77, 128, + 73, 83, 69, 78, 45, 73, 83, 69, 78, 128, 73, 83, 65, 75, 73, 193, 73, 83, + 45, 80, 73, 76, 76, 65, 128, 73, 82, 85, 89, 65, 78, 78, 65, 128, 73, 82, + 85, 85, 89, 65, 78, 78, 65, 128, 73, 82, 79, 78, 45, 67, 79, 80, 80, 69, + 210, 73, 82, 79, 78, 128, 73, 82, 66, 128, 73, 79, 84, 73, 70, 73, 69, + 196, 73, 79, 84, 65, 84, 69, 196, 73, 79, 84, 65, 128, 73, 79, 84, 193, + 73, 79, 82, 128, 73, 79, 78, 71, 128, 73, 79, 68, 72, 65, 68, 72, 128, + 73, 78, 86, 73, 83, 73, 66, 76, 197, 73, 78, 86, 69, 82, 84, 69, 68, 128, + 73, 78, 86, 69, 82, 84, 69, 196, 73, 78, 86, 69, 82, 84, 69, 66, 82, 65, + 84, 69, 128, 73, 78, 86, 69, 82, 83, 197, 73, 78, 84, 82, 79, 68, 85, 67, + 69, 82, 128, 73, 78, 84, 73, 128, 73, 78, 84, 69, 82, 83, 89, 76, 76, 65, + 66, 73, 195, 73, 78, 84, 69, 82, 83, 69, 67, 84, 73, 79, 78, 128, 73, 78, + 84, 69, 82, 83, 69, 67, 84, 73, 79, 206, 73, 78, 84, 69, 82, 83, 69, 67, + 84, 73, 78, 199, 73, 78, 84, 69, 82, 82, 79, 66, 65, 78, 71, 128, 73, 78, + 84, 69, 82, 82, 79, 66, 65, 78, 199, 73, 78, 84, 69, 82, 80, 79, 76, 65, + 84, 73, 79, 206, 73, 78, 84, 69, 82, 76, 79, 67, 75, 69, 196, 73, 78, 84, + 69, 82, 76, 73, 78, 69, 65, 210, 73, 78, 84, 69, 82, 76, 65, 67, 69, 196, + 73, 78, 84, 69, 82, 73, 79, 210, 73, 78, 84, 69, 82, 69, 83, 212, 73, 78, + 84, 69, 82, 67, 65, 76, 65, 84, 69, 128, 73, 78, 84, 69, 71, 82, 65, 84, + 73, 79, 78, 128, 73, 78, 84, 69, 71, 82, 65, 84, 73, 79, 206, 73, 78, 84, + 69, 71, 82, 65, 76, 128, 73, 78, 84, 69, 71, 82, 65, 204, 73, 78, 83, 85, + 76, 65, 210, 73, 78, 83, 84, 82, 85, 77, 69, 78, 84, 65, 204, 73, 78, 83, + 73, 68, 69, 128, 73, 78, 83, 73, 68, 197, 73, 78, 83, 69, 82, 84, 73, 79, + 206, 73, 78, 83, 69, 82, 212, 73, 78, 83, 69, 67, 84, 128, 73, 78, 83, + 67, 82, 73, 80, 84, 73, 79, 78, 65, 204, 73, 78, 80, 85, 212, 73, 78, 78, + 79, 67, 69, 78, 67, 69, 128, 73, 78, 78, 78, 128, 73, 78, 78, 69, 82, + 128, 73, 78, 78, 69, 210, 73, 78, 78, 128, 73, 78, 73, 78, 71, 85, 128, + 73, 78, 72, 73, 66, 73, 212, 73, 78, 72, 69, 82, 69, 78, 212, 73, 78, 72, + 65, 76, 69, 128, 73, 78, 71, 87, 65, 90, 128, 73, 78, 70, 79, 82, 77, 65, + 84, 73, 79, 206, 73, 78, 70, 76, 85, 69, 78, 67, 69, 128, 73, 78, 70, 73, + 78, 73, 84, 89, 128, 73, 78, 70, 73, 78, 73, 84, 217, 73, 78, 68, 85, 83, + 84, 82, 73, 65, 204, 73, 78, 68, 73, 82, 69, 67, 212, 73, 78, 68, 73, 67, + 84, 73, 79, 206, 73, 78, 68, 73, 67, 65, 84, 79, 82, 128, 73, 78, 68, 73, + 67, 65, 84, 79, 210, 73, 78, 68, 73, 195, 73, 78, 68, 73, 65, 206, 73, + 78, 68, 69, 88, 128, 73, 78, 68, 69, 80, 69, 78, 68, 69, 78, 212, 73, 78, + 67, 82, 69, 77, 69, 78, 84, 128, 73, 78, 67, 82, 69, 65, 83, 69, 211, 73, + 78, 67, 82, 69, 65, 83, 69, 128, 73, 78, 67, 82, 69, 65, 83, 197, 73, 78, + 67, 79, 77, 80, 76, 69, 84, 197, 73, 78, 67, 79, 77, 73, 78, 199, 73, 78, + 67, 76, 85, 68, 73, 78, 199, 73, 78, 67, 72, 128, 73, 78, 66, 79, 216, + 73, 78, 65, 80, 128, 73, 78, 45, 65, 76, 65, 70, 128, 73, 77, 80, 69, 82, + 73, 65, 204, 73, 77, 80, 69, 82, 70, 69, 67, 84, 85, 205, 73, 77, 80, 69, + 82, 70, 69, 67, 84, 65, 128, 73, 77, 80, 69, 82, 70, 69, 67, 84, 193, 73, + 77, 78, 128, 73, 77, 73, 83, 69, 79, 211, 73, 77, 73, 78, 51, 128, 73, + 77, 73, 78, 128, 73, 77, 73, 206, 73, 77, 73, 70, 84, 72, 79, 82, 79, 78, + 128, 73, 77, 73, 70, 84, 72, 79, 82, 65, 128, 73, 77, 73, 70, 79, 78, 79, + 78, 128, 73, 77, 73, 68, 73, 65, 82, 71, 79, 78, 128, 73, 77, 65, 71, + 197, 73, 77, 65, 65, 76, 65, 128, 73, 76, 85, 89, 65, 78, 78, 65, 128, + 73, 76, 85, 89, 128, 73, 76, 85, 85, 89, 65, 78, 78, 65, 128, 73, 76, 85, + 84, 128, 73, 76, 73, 77, 77, 85, 52, 128, 73, 76, 73, 77, 77, 85, 51, + 128, 73, 76, 73, 77, 77, 85, 128, 73, 76, 73, 77, 77, 213, 73, 76, 50, + 128, 73, 75, 65, 82, 65, 128, 73, 75, 65, 82, 193, 73, 74, 128, 73, 73, + 89, 65, 78, 78, 65, 128, 73, 71, 73, 128, 73, 71, 201, 73, 71, 71, 87, + 83, 128, 73, 70, 73, 78, 128, 73, 69, 85, 78, 71, 45, 84, 73, 75, 69, 85, + 84, 128, 73, 69, 85, 78, 71, 45, 84, 72, 73, 69, 85, 84, 72, 128, 73, 69, + 85, 78, 71, 45, 82, 73, 69, 85, 76, 128, 73, 69, 85, 78, 71, 45, 80, 73, + 69, 85, 80, 128, 73, 69, 85, 78, 71, 45, 80, 72, 73, 69, 85, 80, 72, 128, + 73, 69, 85, 78, 71, 45, 67, 73, 69, 85, 67, 128, 73, 69, 85, 78, 71, 45, + 67, 72, 73, 69, 85, 67, 72, 128, 73, 69, 85, 78, 199, 73, 68, 76, 69, + 128, 73, 68, 73, 77, 128, 73, 68, 73, 205, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 68, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 68, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, + 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 54, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 53, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 68, 52, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 68, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 68, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, + 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 48, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 70, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 67, 69, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 67, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 67, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, + 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 65, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 57, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 67, 56, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 67, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 67, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, + 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 52, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 51, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 67, 50, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 67, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 67, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, + 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 69, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 68, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 66, 67, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 66, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 66, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, + 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 56, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 55, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 66, 54, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 66, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 66, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, + 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 50, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 49, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 66, 48, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 65, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 65, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, + 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 67, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 66, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 65, 65, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 65, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 65, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, + 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 54, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 53, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 65, 52, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 65, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 65, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, + 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 48, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 70, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 57, 69, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 57, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 57, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, + 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 65, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 57, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 57, 56, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 57, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 57, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, + 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 52, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 51, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 57, 50, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 57, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 57, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, + 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 69, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 68, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 56, 67, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 56, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 56, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, + 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 56, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 55, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 56, 54, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 56, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 56, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, + 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 50, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 49, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 56, 48, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 55, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 55, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, + 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 67, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 66, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 55, 65, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 55, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 55, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, + 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 54, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 53, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 55, 52, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 55, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 55, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, + 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 48, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 68, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 54, 67, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 54, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 54, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, + 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 56, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 55, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 54, 54, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 54, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 54, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, + 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 50, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 49, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 54, 48, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 53, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 53, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, + 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 67, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 66, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 53, 65, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 53, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 53, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, + 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 54, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 53, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 53, 52, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 53, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 53, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, + 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 48, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 70, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 52, 69, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 52, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 52, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, + 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 65, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 57, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 52, 56, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 52, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 52, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, + 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 52, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 51, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 52, 50, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 52, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 52, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, + 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 69, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 68, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 51, 67, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 51, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 51, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, + 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 56, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 55, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 51, 54, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 51, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 51, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, + 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 50, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 49, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 51, 48, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 50, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 50, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, + 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 67, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 66, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 50, 65, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 50, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, + 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 54, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 53, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 50, 52, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 50, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 50, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, + 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 48, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 70, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 49, 69, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 49, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, + 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 65, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 57, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 49, 56, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 49, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 49, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, + 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 52, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 51, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 49, 50, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 49, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 49, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, + 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 69, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 68, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 48, 67, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 48, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 48, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, + 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 56, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 55, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 48, 54, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 48, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 48, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, + 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 50, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 49, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 70, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 70, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, + 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 67, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 66, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 70, 65, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 70, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 70, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, + 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 54, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 53, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 70, 52, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 70, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 70, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, + 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 48, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 70, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 69, 69, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 69, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 69, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, + 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 65, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 57, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 69, 56, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 69, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 69, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, + 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 52, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 51, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 69, 50, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 69, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 69, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, + 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 69, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 68, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 68, 67, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 68, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 68, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, + 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 56, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 55, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 68, 54, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 68, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 68, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, + 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 50, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 49, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 68, 48, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 67, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 67, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, + 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 67, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 66, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 67, 65, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 67, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 67, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, + 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 54, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 53, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 67, 52, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 67, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 67, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, + 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 48, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 70, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 66, 69, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 66, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 66, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, + 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 65, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 57, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 66, 56, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 66, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 66, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, + 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 52, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 51, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 66, 50, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 66, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 66, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, + 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 69, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 68, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 65, 67, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 65, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 65, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, + 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 56, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 55, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 65, 54, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 65, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 65, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, + 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 50, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 49, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 65, 48, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 57, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 57, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, + 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 67, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 66, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 57, 65, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 57, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 57, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, + 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 54, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 53, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 57, 52, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 57, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 57, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, + 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 48, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 70, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 56, 69, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 56, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 56, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, + 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 65, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 57, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 56, 56, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 56, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 56, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, + 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 52, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 51, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 56, 50, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 56, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 56, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, + 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 69, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 68, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 55, 67, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 55, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 55, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, + 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 56, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 55, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 55, 54, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 55, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 55, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, + 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 50, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 49, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 55, 48, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 54, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 54, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, + 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 67, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 66, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 54, 65, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 54, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 54, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, + 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 54, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 53, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 54, 52, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 54, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 54, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, + 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 48, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 70, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 53, 69, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 53, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 53, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, + 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 65, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 57, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 53, 56, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 53, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 53, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, + 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 52, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 51, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 53, 50, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 53, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 53, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, + 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 69, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 68, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 52, 67, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 52, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 52, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, + 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 56, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 55, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 52, 54, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 52, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 52, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, + 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 50, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 49, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 52, 48, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 51, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 51, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, + 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 67, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 66, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 51, 65, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 51, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 51, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, + 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 54, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 53, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 51, 52, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 51, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 51, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, + 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 48, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 70, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 50, 69, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 50, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 50, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, + 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 65, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 57, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 50, 56, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 50, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 50, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, + 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 52, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 51, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 50, 50, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 50, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 50, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, + 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 69, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 68, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 49, 67, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 49, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 49, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, + 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 56, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 55, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 49, 54, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 49, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 49, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, + 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 50, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 49, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 49, 48, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 48, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 48, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, + 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 67, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 66, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 48, 65, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 48, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, + 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 54, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 53, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 48, 52, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 48, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 48, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, + 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 48, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 57, 49, 52, 68, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 57, 48, 52, 65, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 56, 68, 55, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 56, 67, 65, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 56, 57, 69, + 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 55, 68, 52, 50, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 55, 65, 55, 65, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 55, 57, 56, 49, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 55, 54, 68, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 55, 53, 51, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 55, 53, 49, + 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 55, 49, 50, 49, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 55, 48, 66, 57, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 54, 70, 49, 52, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 54, 69, 56, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 54, 55, 50, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 55, 48, + 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 55, 48, 56, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 54, 50, 48, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 54, 53, 66, 48, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 54, 53, 57, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 54, 53, 53, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 51, 53, + 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 51, 48, 55, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 50, 57, 53, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 54, 50, 53, 51, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 54, 50, 52, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 53, 70, 56, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 68, 69, + 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 66, 56, 57, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 66, 53, 55, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 53, 57, 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 53, 57, 49, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 53, 56, 70, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 53, 66, + 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 52, 51, 57, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 52, 48, 56, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 53, 51, 70, 51, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 53, 51, 67, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 53, 50, 68, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 50, 55, + 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 50, 52, 68, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 50, 49, 68, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 53, 49, 56, 68, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 52, 69, 65, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 52, 69, 56, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 52, 69, 50, + 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 52, 69, 48, 57, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 52, 69, 48, 48, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 68, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 65, 49, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 65, 49, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 65, 49, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 65, 49, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, + 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 55, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 54, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 53, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 52, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 65, 49, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 65, 49, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 65, 49, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 65, 49, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, + 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 69, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 68, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 67, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 66, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 65, 48, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 65, 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 65, 48, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 65, 48, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, + 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 53, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 52, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 51, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 50, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 65, 48, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 65, 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 70, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 70, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, + 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 67, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 66, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 65, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 57, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 70, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 70, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 70, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 70, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, + 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 51, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 50, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 49, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 48, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 69, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 69, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 69, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 69, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, + 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 65, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 57, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 56, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 55, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 69, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 69, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 69, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 69, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, + 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 49, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 48, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 70, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 69, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 68, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 68, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 68, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 68, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, + 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 56, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 55, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 54, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 53, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 68, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 68, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 68, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 68, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, + 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 70, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 69, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 68, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 67, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 67, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 67, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 67, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 67, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, + 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 54, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 53, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 52, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 51, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 67, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 67, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 67, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 66, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, + 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 68, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 67, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 66, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 65, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 66, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 66, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 66, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 66, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, + 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 52, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 51, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 50, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 49, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 66, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 65, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 65, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 65, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, + 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 66, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 65, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 57, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 56, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 65, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 65, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 65, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 65, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, + 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 50, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 49, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 48, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 70, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 57, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 57, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 57, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 57, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, + 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 57, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 56, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 55, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 54, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 57, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 57, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 57, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 57, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, + 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 48, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 70, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 69, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 68, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 56, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 56, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 56, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 56, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, + 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 55, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 54, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 53, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 52, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 56, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 56, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 56, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 56, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, + 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 69, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 68, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 67, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 66, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 55, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 55, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 55, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 55, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, + 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 53, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 52, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 51, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 50, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 55, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 55, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 54, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 54, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, + 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 67, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 66, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 65, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 57, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 54, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 54, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 54, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 54, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, + 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 51, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 50, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 49, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 48, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 53, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 53, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 53, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 53, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, + 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 65, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 57, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 56, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 55, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 53, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 53, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 53, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 53, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, + 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 49, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 48, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 70, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 69, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 52, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 52, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 52, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 52, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, + 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 56, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 55, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 54, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 53, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 52, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 52, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 52, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 52, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, + 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 70, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 69, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 68, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 67, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 51, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 51, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 51, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 51, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, + 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 54, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 53, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 52, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 51, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 51, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 51, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 51, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 50, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, + 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 68, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 67, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 66, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 65, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 50, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 50, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 50, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, + 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 52, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 51, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 50, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 49, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 50, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 49, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 49, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, + 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 66, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 65, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 57, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 56, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 49, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 49, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 49, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 49, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, + 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 50, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 49, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 48, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 70, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 48, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 48, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 48, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 48, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, + 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 57, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 56, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 55, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 54, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 48, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 48, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 48, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 48, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, + 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 48, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 70, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 69, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 68, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 70, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 70, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 70, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 70, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, + 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 55, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 54, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 53, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 52, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 70, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 70, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 70, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 70, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, + 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 69, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 68, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 67, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 66, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 69, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 69, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 69, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 69, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, + 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 53, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 52, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 51, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 50, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 69, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 69, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 68, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 68, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, + 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 67, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 66, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 65, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 57, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 68, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 68, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 68, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 68, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, + 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 51, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 50, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 49, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 48, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 67, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 67, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 67, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 67, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, + 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 65, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 57, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 56, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 55, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 67, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 67, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 67, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 67, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, + 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 49, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 48, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 70, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 69, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 66, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 66, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 66, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 66, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, + 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 56, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 55, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 54, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 53, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 66, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 66, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 66, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 66, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, + 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 70, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 69, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 68, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 67, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 65, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 65, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 65, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 65, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, + 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 54, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 53, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 52, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 51, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 65, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 65, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 65, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 57, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, + 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 68, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 67, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 66, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 65, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 57, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 57, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 57, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 57, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, + 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 52, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 51, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 50, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 49, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 57, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 56, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 56, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 56, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, + 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 66, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 65, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 57, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 56, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 56, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 56, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 56, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 56, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, + 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 50, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 49, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 48, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 70, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 55, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 55, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 55, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 55, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, + 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 57, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 56, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 55, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 54, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 55, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 55, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 55, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 55, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, + 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 48, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 70, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 69, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 68, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 54, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 54, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 54, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 54, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, + 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 55, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 54, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 53, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 52, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 54, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 54, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 54, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 54, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, + 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 69, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 68, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 67, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 66, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 53, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 53, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 53, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 53, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, + 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 53, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 52, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 51, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 50, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 53, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 53, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 52, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 52, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, + 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 67, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 66, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 65, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 57, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 52, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 52, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 52, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 52, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, + 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 51, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 50, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 49, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 48, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 51, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 51, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 51, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 51, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, + 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 65, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 57, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 56, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 55, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 51, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 51, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 51, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 51, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, + 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 49, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 48, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 70, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 69, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 50, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 50, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 50, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 50, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, + 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 56, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 55, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 54, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 53, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 50, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 50, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 50, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 50, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, + 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 70, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 69, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 68, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 67, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 49, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 49, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 49, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 49, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, + 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 54, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 53, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 52, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 51, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 49, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 49, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 49, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 48, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, + 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 68, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 67, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 66, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 65, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 48, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 48, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 48, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, + 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 52, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 51, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 50, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 49, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 200, 73, 68, 69, 78, 84, 73, 70, 73, 67, 65, 84, 73, 79, 78, 128, 73, 68, + 69, 78, 84, 73, 70, 73, 67, 65, 84, 73, 79, 206, 73, 68, 69, 78, 84, 73, + 67, 65, 204, 73, 67, 79, 78, 128, 73, 67, 72, 79, 85, 128, 73, 67, 72, + 79, 83, 128, 73, 67, 72, 73, 77, 65, 84, 79, 83, 128, 73, 67, 72, 65, 68, + 73, 78, 128, 73, 67, 69, 76, 65, 78, 68, 73, 67, 45, 89, 82, 128, 73, 66, + 73, 70, 73, 76, 73, 128, 73, 65, 85, 68, 65, 128, 73, 48, 49, 53, 128, + 73, 48, 49, 52, 128, 73, 48, 49, 51, 128, 73, 48, 49, 50, 128, 73, 48, + 49, 49, 65, 128, 73, 48, 49, 49, 128, 73, 48, 49, 48, 65, 128, 73, 48, + 49, 48, 128, 73, 48, 48, 57, 65, 128, 73, 48, 48, 57, 128, 73, 48, 48, + 56, 128, 73, 48, 48, 55, 128, 73, 48, 48, 54, 128, 73, 48, 48, 53, 65, + 128, 73, 48, 48, 53, 128, 73, 48, 48, 52, 128, 73, 48, 48, 51, 128, 73, + 48, 48, 50, 128, 73, 48, 48, 49, 128, 73, 45, 89, 85, 128, 73, 45, 89, + 79, 128, 73, 45, 89, 69, 79, 128, 73, 45, 89, 69, 128, 73, 45, 89, 65, + 69, 128, 73, 45, 89, 65, 45, 79, 128, 73, 45, 89, 65, 128, 73, 45, 79, + 45, 73, 128, 73, 45, 79, 128, 73, 45, 69, 85, 128, 73, 45, 66, 69, 65, + 77, 128, 73, 45, 65, 82, 65, 69, 65, 128, 73, 45, 65, 128, 72, 90, 90, + 90, 71, 128, 72, 90, 90, 90, 128, 72, 90, 90, 80, 128, 72, 90, 90, 128, + 72, 90, 87, 71, 128, 72, 90, 87, 128, 72, 90, 84, 128, 72, 90, 71, 128, + 72, 89, 83, 84, 69, 82, 69, 83, 73, 211, 72, 89, 80, 79, 68, 73, 65, 83, + 84, 79, 76, 69, 128, 72, 89, 80, 72, 69, 78, 65, 84, 73, 79, 206, 72, 89, + 80, 72, 69, 78, 45, 77, 73, 78, 85, 83, 128, 72, 89, 80, 72, 69, 78, 128, + 72, 89, 80, 72, 69, 206, 72, 89, 71, 73, 69, 73, 65, 128, 72, 89, 71, 73, + 69, 65, 128, 72, 88, 87, 71, 128, 72, 88, 85, 79, 88, 128, 72, 88, 85, + 79, 84, 128, 72, 88, 85, 79, 80, 128, 72, 88, 85, 79, 128, 72, 88, 79, + 88, 128, 72, 88, 79, 84, 128, 72, 88, 79, 80, 128, 72, 88, 79, 128, 72, + 88, 73, 88, 128, 72, 88, 73, 84, 128, 72, 88, 73, 80, 128, 72, 88, 73, + 69, 88, 128, 72, 88, 73, 69, 84, 128, 72, 88, 73, 69, 80, 128, 72, 88, + 73, 69, 128, 72, 88, 73, 128, 72, 88, 69, 88, 128, 72, 88, 69, 80, 128, + 72, 88, 69, 128, 72, 88, 65, 88, 128, 72, 88, 65, 84, 128, 72, 88, 65, + 80, 128, 72, 88, 65, 128, 72, 87, 85, 128, 72, 87, 65, 73, 82, 128, 72, + 87, 65, 72, 128, 72, 85, 86, 65, 128, 72, 85, 83, 72, 69, 196, 72, 85, + 83, 72, 128, 72, 85, 82, 65, 78, 128, 72, 85, 79, 84, 128, 72, 85, 78, + 68, 82, 69, 68, 83, 128, 72, 85, 78, 68, 82, 69, 68, 211, 72, 85, 78, 68, + 82, 69, 68, 128, 72, 85, 78, 68, 82, 69, 196, 72, 85, 78, 128, 72, 85, + 77, 208, 72, 85, 77, 65, 78, 128, 72, 85, 77, 65, 206, 72, 85, 76, 50, + 128, 72, 85, 73, 73, 84, 79, 128, 72, 85, 71, 71, 73, 78, 71, 128, 72, + 85, 71, 71, 73, 78, 199, 72, 85, 66, 50, 128, 72, 85, 66, 178, 72, 85, + 66, 128, 72, 85, 65, 82, 65, 68, 68, 79, 128, 72, 85, 65, 78, 128, 72, + 85, 45, 51, 128, 72, 85, 45, 50, 128, 72, 85, 45, 49, 128, 72, 84, 84, + 65, 128, 72, 84, 83, 128, 72, 84, 74, 128, 72, 82, 89, 86, 78, 73, 193, + 72, 80, 87, 71, 128, 72, 80, 65, 128, 72, 80, 128, 72, 79, 85, 83, 197, + 72, 79, 85, 82, 71, 76, 65, 83, 83, 128, 72, 79, 85, 82, 71, 76, 65, 83, + 211, 72, 79, 85, 82, 128, 72, 79, 85, 210, 72, 79, 84, 69, 76, 128, 72, + 79, 84, 65, 128, 72, 79, 83, 80, 73, 84, 65, 76, 128, 72, 79, 82, 83, 69, + 128, 72, 79, 82, 83, 197, 72, 79, 82, 82, 128, 72, 79, 82, 78, 83, 128, + 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 76, 217, 72, 79, 82, 73, 90, 79, + 78, 84, 65, 76, 45, 48, 54, 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, 78, + 84, 65, 76, 45, 48, 54, 45, 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, + 65, 76, 45, 48, 54, 45, 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, + 76, 45, 48, 54, 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, + 45, 48, 54, 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, + 48, 54, 45, 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, + 54, 45, 48, 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, + 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, + 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, 48, + 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, 48, 51, + 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, 48, 50, 128, + 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, 48, 49, 128, 72, + 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, 48, 48, 128, 72, 79, + 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 52, 45, 48, 54, 128, 72, 79, 82, + 73, 90, 79, 78, 84, 65, 76, 45, 48, 52, 45, 48, 53, 128, 72, 79, 82, 73, + 90, 79, 78, 84, 65, 76, 45, 48, 52, 45, 48, 52, 128, 72, 79, 82, 73, 90, + 79, 78, 84, 65, 76, 45, 48, 52, 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, + 78, 84, 65, 76, 45, 48, 52, 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, 78, + 84, 65, 76, 45, 48, 52, 45, 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, + 65, 76, 45, 48, 52, 45, 48, 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, + 76, 45, 48, 51, 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, + 45, 48, 51, 45, 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, + 48, 51, 45, 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, + 51, 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, + 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, + 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, 48, + 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 50, 45, 48, 54, + 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 50, 45, 48, 53, 128, + 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 50, 45, 48, 52, 128, 72, + 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 50, 45, 48, 51, 128, 72, 79, + 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 50, 45, 48, 50, 128, 72, 79, 82, + 73, 90, 79, 78, 84, 65, 76, 45, 48, 50, 45, 48, 49, 128, 72, 79, 82, 73, + 90, 79, 78, 84, 65, 76, 45, 48, 50, 45, 48, 48, 128, 72, 79, 82, 73, 90, + 79, 78, 84, 65, 76, 45, 48, 49, 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, + 78, 84, 65, 76, 45, 48, 49, 45, 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, + 84, 65, 76, 45, 48, 49, 45, 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, + 65, 76, 45, 48, 49, 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, + 76, 45, 48, 49, 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, + 45, 48, 49, 45, 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, + 48, 49, 45, 48, 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, + 48, 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, + 45, 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, + 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, 48, + 51, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, 48, 50, + 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, 48, 49, 128, + 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, 48, 48, 128, 72, + 79, 82, 73, 90, 79, 78, 84, 65, 76, 128, 72, 79, 82, 73, 90, 79, 78, 84, + 65, 204, 72, 79, 82, 73, 128, 72, 79, 82, 193, 72, 79, 79, 85, 128, 72, + 79, 79, 82, 85, 128, 72, 79, 79, 80, 128, 72, 79, 79, 78, 128, 72, 79, + 79, 75, 69, 68, 128, 72, 79, 79, 75, 69, 196, 72, 79, 78, 69, 89, 66, 69, + 69, 128, 72, 79, 78, 69, 217, 72, 79, 77, 79, 84, 72, 69, 84, 73, 67, + 128, 72, 79, 77, 79, 84, 72, 69, 84, 73, 195, 72, 79, 76, 79, 128, 72, + 79, 76, 76, 79, 215, 72, 79, 76, 69, 128, 72, 79, 76, 68, 73, 78, 199, + 72, 79, 76, 65, 77, 128, 72, 79, 76, 65, 205, 72, 79, 75, 65, 128, 72, + 79, 67, 75, 69, 217, 72, 79, 67, 72, 79, 128, 72, 79, 45, 56, 128, 72, + 79, 45, 55, 128, 72, 79, 45, 54, 128, 72, 79, 45, 53, 128, 72, 79, 45, + 52, 128, 72, 79, 45, 51, 128, 72, 79, 45, 50, 128, 72, 79, 45, 49, 128, + 72, 78, 85, 84, 128, 72, 78, 85, 79, 88, 128, 72, 78, 85, 79, 128, 72, + 78, 85, 66, 128, 72, 78, 79, 88, 128, 72, 78, 79, 84, 128, 72, 78, 79, + 80, 128, 72, 78, 73, 88, 128, 72, 78, 73, 84, 128, 72, 78, 73, 80, 128, + 72, 78, 73, 69, 88, 128, 72, 78, 73, 69, 84, 128, 72, 78, 73, 69, 80, + 128, 72, 78, 73, 69, 128, 72, 78, 73, 128, 72, 78, 69, 88, 128, 72, 78, + 69, 80, 128, 72, 78, 69, 128, 72, 78, 65, 88, 128, 72, 78, 65, 85, 128, + 72, 78, 65, 84, 128, 72, 78, 65, 80, 128, 72, 78, 65, 128, 72, 77, 89, + 88, 128, 72, 77, 89, 82, 88, 128, 72, 77, 89, 82, 128, 72, 77, 89, 80, + 128, 72, 77, 89, 128, 72, 77, 85, 88, 128, 72, 77, 85, 84, 128, 72, 77, + 85, 82, 88, 128, 72, 77, 85, 82, 128, 72, 77, 85, 80, 128, 72, 77, 85, + 79, 88, 128, 72, 77, 85, 79, 80, 128, 72, 77, 85, 79, 128, 72, 77, 85, + 128, 72, 77, 79, 88, 128, 72, 77, 79, 84, 128, 72, 77, 79, 80, 128, 72, + 77, 79, 128, 72, 77, 73, 88, 128, 72, 77, 73, 84, 128, 72, 77, 73, 80, + 128, 72, 77, 73, 69, 88, 128, 72, 77, 73, 69, 80, 128, 72, 77, 73, 69, + 128, 72, 77, 73, 128, 72, 77, 69, 128, 72, 77, 65, 88, 128, 72, 77, 65, + 84, 128, 72, 77, 65, 80, 128, 72, 77, 65, 128, 72, 76, 89, 88, 128, 72, + 76, 89, 84, 128, 72, 76, 89, 82, 88, 128, 72, 76, 89, 82, 128, 72, 76, + 89, 80, 128, 72, 76, 89, 128, 72, 76, 85, 88, 128, 72, 76, 85, 84, 128, + 72, 76, 85, 82, 88, 128, 72, 76, 85, 82, 128, 72, 76, 85, 80, 128, 72, + 76, 85, 79, 88, 128, 72, 76, 85, 79, 80, 128, 72, 76, 85, 79, 128, 72, + 76, 85, 128, 72, 76, 79, 88, 128, 72, 76, 79, 80, 128, 72, 76, 79, 128, + 72, 76, 73, 88, 128, 72, 76, 73, 84, 128, 72, 76, 73, 80, 128, 72, 76, + 73, 69, 88, 128, 72, 76, 73, 69, 80, 128, 72, 76, 73, 69, 128, 72, 76, + 73, 128, 72, 76, 69, 88, 128, 72, 76, 69, 80, 128, 72, 76, 69, 128, 72, + 76, 65, 88, 128, 72, 76, 65, 85, 128, 72, 76, 65, 84, 128, 72, 76, 65, + 80, 128, 72, 76, 65, 128, 72, 76, 128, 72, 75, 128, 72, 73, 90, 66, 128, + 72, 73, 89, 79, 128, 72, 73, 84, 84, 73, 78, 199, 72, 73, 83, 84, 79, 82, + 73, 195, 72, 73, 82, 73, 81, 128, 72, 73, 80, 80, 79, 80, 79, 84, 65, 77, + 85, 83, 128, 72, 73, 78, 71, 69, 68, 128, 72, 73, 78, 71, 69, 196, 72, + 73, 78, 71, 69, 128, 72, 73, 78, 68, 213, 72, 73, 75, 73, 78, 199, 72, + 73, 71, 72, 45, 83, 80, 69, 69, 196, 72, 73, 71, 72, 45, 82, 69, 86, 69, + 82, 83, 69, 68, 45, 185, 72, 73, 71, 72, 45, 76, 79, 215, 72, 73, 71, 72, + 45, 72, 69, 69, 76, 69, 196, 72, 73, 69, 88, 128, 72, 73, 69, 85, 72, 45, + 83, 73, 79, 83, 128, 72, 73, 69, 85, 72, 45, 82, 73, 69, 85, 76, 128, 72, + 73, 69, 85, 72, 45, 80, 73, 69, 85, 80, 128, 72, 73, 69, 85, 72, 45, 78, + 73, 69, 85, 78, 128, 72, 73, 69, 85, 72, 45, 77, 73, 69, 85, 77, 128, 72, + 73, 69, 85, 200, 72, 73, 69, 82, 79, 71, 76, 89, 80, 72, 73, 195, 72, 73, + 68, 73, 78, 199, 72, 73, 68, 69, 84, 128, 72, 73, 68, 69, 128, 72, 73, + 66, 73, 83, 67, 85, 83, 128, 72, 73, 45, 82, 69, 83, 128, 72, 73, 45, 55, + 128, 72, 73, 45, 54, 128, 72, 73, 45, 53, 128, 72, 73, 45, 52, 128, 72, + 73, 45, 51, 128, 72, 73, 45, 50, 128, 72, 73, 45, 49, 128, 72, 72, 89, + 85, 128, 72, 72, 89, 79, 128, 72, 72, 89, 73, 128, 72, 72, 89, 69, 69, + 128, 72, 72, 89, 69, 128, 72, 72, 89, 65, 65, 128, 72, 72, 89, 65, 128, + 72, 72, 87, 73, 128, 72, 72, 87, 69, 69, 128, 72, 72, 87, 69, 128, 72, + 72, 87, 65, 128, 72, 72, 85, 128, 72, 72, 73, 128, 72, 72, 69, 69, 128, + 72, 72, 69, 128, 72, 72, 65, 65, 128, 72, 71, 128, 72, 69, 89, 84, 128, + 72, 69, 88, 73, 70, 79, 82, 205, 72, 69, 88, 65, 71, 82, 65, 205, 72, 69, + 88, 65, 71, 79, 78, 128, 72, 69, 82, 85, 84, 85, 128, 72, 69, 82, 85, + 128, 72, 69, 82, 77, 73, 84, 73, 65, 206, 72, 69, 82, 77, 73, 79, 78, 73, + 65, 206, 72, 69, 82, 77, 69, 83, 128, 72, 69, 82, 69, 128, 72, 69, 82, + 66, 128, 72, 69, 82, 65, 69, 85, 205, 72, 69, 78, 71, 128, 72, 69, 78, + 199, 72, 69, 77, 80, 128, 72, 69, 76, 77, 69, 84, 128, 72, 69, 76, 77, + 69, 212, 72, 69, 76, 205, 72, 69, 76, 76, 83, 67, 72, 82, 69, 73, 66, 69, + 210, 72, 69, 76, 73, 88, 128, 72, 69, 76, 73, 67, 79, 80, 84, 69, 82, + 128, 72, 69, 75, 85, 84, 65, 65, 82, 85, 128, 72, 69, 73, 83, 69, 73, + 128, 72, 69, 73, 71, 72, 84, 128, 72, 69, 69, 73, 128, 72, 69, 68, 71, + 69, 72, 79, 71, 128, 72, 69, 65, 86, 89, 128, 72, 69, 65, 86, 69, 78, 76, + 217, 72, 69, 65, 86, 69, 78, 128, 72, 69, 65, 86, 69, 206, 72, 69, 65, + 82, 84, 83, 128, 72, 69, 65, 82, 84, 45, 83, 72, 65, 80, 69, 196, 72, 69, + 65, 82, 84, 128, 72, 69, 65, 82, 212, 72, 69, 65, 82, 73, 78, 199, 72, + 69, 65, 82, 45, 78, 79, 45, 69, 86, 73, 204, 72, 69, 65, 68, 83, 84, 82, + 79, 75, 69, 128, 72, 69, 65, 68, 83, 84, 79, 78, 69, 128, 72, 69, 65, 68, + 83, 84, 79, 78, 197, 72, 69, 65, 68, 83, 67, 65, 82, 70, 128, 72, 69, 65, + 68, 80, 72, 79, 78, 69, 128, 72, 69, 65, 68, 73, 78, 71, 128, 72, 69, 65, + 68, 45, 66, 65, 78, 68, 65, 71, 69, 128, 72, 69, 45, 55, 128, 72, 69, 45, + 54, 128, 72, 69, 45, 53, 128, 72, 69, 45, 52, 128, 72, 69, 45, 51, 128, + 72, 69, 45, 50, 128, 72, 69, 45, 49, 128, 72, 68, 82, 128, 72, 67, 128, + 72, 66, 65, 83, 65, 45, 69, 83, 65, 83, 193, 72, 66, 65, 83, 193, 72, 65, + 89, 65, 78, 78, 65, 128, 72, 65, 87, 74, 128, 72, 65, 86, 69, 128, 72, + 65, 85, 80, 84, 83, 84, 73, 77, 77, 69, 128, 72, 65, 213, 72, 65, 84, 82, + 65, 206, 72, 65, 84, 72, 73, 128, 72, 65, 84, 69, 128, 72, 65, 84, 67, + 72, 73, 78, 199, 72, 65, 84, 65, 198, 72, 65, 83, 69, 210, 72, 65, 83, + 65, 78, 84, 65, 128, 72, 65, 82, 80, 79, 79, 78, 128, 72, 65, 82, 80, 79, + 79, 206, 72, 65, 82, 77, 79, 78, 73, 67, 128, 72, 65, 82, 75, 76, 69, 65, + 206, 72, 65, 82, 68, 78, 69, 83, 83, 128, 72, 65, 82, 196, 72, 65, 82, + 66, 65, 72, 65, 89, 128, 72, 65, 80, 80, 217, 72, 65, 78, 85, 78, 79, + 207, 72, 65, 78, 73, 70, 201, 72, 65, 78, 71, 90, 72, 79, 213, 72, 65, + 78, 68, 83, 72, 65, 75, 69, 128, 72, 65, 78, 68, 83, 128, 72, 65, 78, 68, + 211, 72, 65, 78, 68, 76, 69, 83, 128, 72, 65, 78, 68, 76, 69, 128, 72, + 65, 78, 68, 66, 65, 76, 76, 128, 72, 65, 78, 68, 66, 65, 71, 128, 72, 65, + 78, 68, 45, 79, 86, 65, 76, 128, 72, 65, 78, 68, 45, 79, 86, 65, 204, 72, + 65, 78, 68, 45, 72, 79, 79, 75, 128, 72, 65, 78, 68, 45, 72, 79, 79, 203, + 72, 65, 78, 68, 45, 72, 73, 78, 71, 69, 128, 72, 65, 78, 68, 45, 72, 73, + 78, 71, 197, 72, 65, 78, 68, 45, 70, 76, 65, 84, 128, 72, 65, 78, 68, 45, + 70, 76, 65, 212, 72, 65, 78, 68, 45, 70, 73, 83, 84, 128, 72, 65, 78, 68, + 45, 67, 85, 82, 76, 73, 67, 85, 69, 128, 72, 65, 78, 68, 45, 67, 85, 82, + 76, 73, 67, 85, 197, 72, 65, 78, 68, 45, 67, 85, 80, 128, 72, 65, 78, 68, + 45, 67, 85, 208, 72, 65, 78, 68, 45, 67, 76, 65, 87, 128, 72, 65, 78, 68, + 45, 67, 76, 65, 215, 72, 65, 78, 68, 45, 67, 73, 82, 67, 76, 69, 128, 72, + 65, 78, 68, 45, 67, 73, 82, 67, 76, 197, 72, 65, 78, 68, 45, 65, 78, 71, + 76, 69, 128, 72, 65, 78, 68, 45, 65, 78, 71, 76, 197, 72, 65, 78, 68, + 128, 72, 65, 78, 45, 65, 75, 65, 84, 128, 72, 65, 77, 90, 65, 128, 72, + 65, 77, 90, 193, 72, 65, 77, 83, 84, 69, 210, 72, 65, 77, 83, 65, 128, + 72, 65, 77, 77, 69, 82, 128, 72, 65, 77, 77, 69, 210, 72, 65, 77, 66, 85, + 82, 71, 69, 82, 128, 72, 65, 76, 81, 65, 128, 72, 65, 76, 79, 128, 72, + 65, 76, 70, 45, 67, 73, 82, 67, 76, 197, 72, 65, 76, 70, 45, 50, 128, 72, + 65, 76, 70, 45, 49, 128, 72, 65, 76, 70, 128, 72, 65, 76, 66, 69, 82, 68, + 128, 72, 65, 76, 65, 78, 84, 65, 128, 72, 65, 73, 84, 85, 128, 72, 65, + 73, 211, 72, 65, 73, 82, 67, 85, 84, 128, 72, 65, 71, 76, 65, 218, 72, + 65, 71, 76, 128, 72, 65, 70, 85, 75, 72, 65, 128, 72, 65, 70, 85, 75, 72, + 128, 72, 65, 69, 71, 204, 72, 65, 68, 69, 83, 128, 72, 65, 65, 82, 85, + 128, 72, 65, 65, 77, 128, 72, 65, 193, 72, 65, 45, 72, 65, 128, 72, 65, + 45, 57, 128, 72, 65, 45, 56, 128, 72, 65, 45, 55, 128, 72, 65, 45, 54, + 128, 72, 65, 45, 53, 128, 72, 65, 45, 52, 128, 72, 65, 45, 51, 128, 72, + 65, 45, 50, 128, 72, 65, 45, 49, 49, 128, 72, 65, 45, 49, 48, 128, 72, + 65, 45, 49, 128, 72, 48, 48, 56, 128, 72, 48, 48, 55, 128, 72, 48, 48, + 54, 65, 128, 72, 48, 48, 54, 128, 72, 48, 48, 53, 128, 72, 48, 48, 52, + 128, 72, 48, 48, 51, 128, 72, 48, 48, 50, 128, 72, 48, 48, 49, 128, 72, + 45, 84, 89, 80, 197, 71, 89, 85, 128, 71, 89, 79, 78, 128, 71, 89, 79, + 128, 71, 89, 73, 128, 71, 89, 70, 213, 71, 89, 69, 69, 128, 71, 89, 65, + 83, 128, 71, 89, 65, 65, 128, 71, 89, 65, 128, 71, 89, 128, 71, 87, 85, + 128, 71, 87, 73, 128, 71, 87, 69, 69, 128, 71, 87, 69, 128, 71, 87, 65, + 65, 128, 71, 87, 65, 128, 71, 87, 128, 71, 86, 65, 78, 71, 128, 71, 86, + 128, 71, 85, 82, 85, 83, 72, 128, 71, 85, 82, 85, 78, 128, 71, 85, 82, + 77, 85, 75, 72, 201, 71, 85, 82, 65, 77, 85, 84, 79, 78, 128, 71, 85, 82, + 65, 71, 197, 71, 85, 82, 55, 128, 71, 85, 78, 85, 128, 71, 85, 78, 213, + 71, 85, 78, 74, 65, 76, 193, 71, 85, 205, 71, 85, 76, 128, 71, 85, 74, + 65, 82, 65, 84, 201, 71, 85, 73, 84, 65, 82, 128, 71, 85, 73, 68, 197, + 71, 85, 199, 71, 85, 69, 73, 128, 71, 85, 69, 72, 128, 71, 85, 69, 200, + 71, 85, 68, 128, 71, 85, 196, 71, 85, 65, 82, 68, 83, 77, 65, 78, 128, + 71, 85, 65, 82, 68, 69, 68, 78, 69, 83, 83, 128, 71, 85, 65, 82, 68, 69, + 196, 71, 85, 65, 82, 68, 128, 71, 85, 65, 82, 65, 78, 201, 71, 85, 193, + 71, 85, 178, 71, 84, 69, 210, 71, 83, 85, 77, 128, 71, 83, 85, 205, 71, + 82, 213, 71, 82, 79, 87, 73, 78, 199, 71, 82, 79, 85, 78, 68, 128, 71, + 82, 79, 78, 84, 72, 73, 83, 77, 65, 84, 65, 128, 71, 82, 79, 77, 79, 80, + 79, 86, 79, 68, 78, 65, 89, 65, 128, 71, 82, 79, 77, 79, 80, 79, 86, 79, + 68, 78, 65, 89, 193, 71, 82, 79, 77, 79, 75, 82, 89, 90, 72, 69, 86, 65, + 89, 65, 128, 71, 82, 79, 77, 79, 75, 82, 89, 90, 72, 69, 86, 65, 89, 193, + 71, 82, 79, 77, 78, 65, 89, 65, 128, 71, 82, 79, 77, 78, 65, 89, 193, 71, + 82, 73, 78, 78, 73, 78, 199, 71, 82, 73, 77, 65, 67, 73, 78, 199, 71, 82, + 69, 71, 79, 82, 73, 65, 206, 71, 82, 69, 69, 78, 128, 71, 82, 69, 69, + 206, 71, 82, 69, 65, 84, 78, 69, 83, 83, 128, 71, 82, 69, 65, 84, 69, 82, + 45, 84, 72, 65, 78, 128, 71, 82, 69, 65, 84, 69, 82, 45, 84, 72, 65, 206, + 71, 82, 69, 65, 84, 69, 210, 71, 82, 69, 65, 212, 71, 82, 65, 86, 69, 89, + 65, 82, 196, 71, 82, 65, 86, 69, 45, 77, 65, 67, 82, 79, 78, 128, 71, 82, + 65, 86, 69, 45, 65, 67, 85, 84, 69, 45, 71, 82, 65, 86, 69, 128, 71, 82, + 65, 86, 197, 71, 82, 65, 84, 69, 82, 128, 71, 82, 65, 83, 83, 128, 71, + 82, 65, 83, 211, 71, 82, 65, 83, 208, 71, 82, 65, 80, 72, 69, 77, 197, + 71, 82, 65, 80, 69, 83, 128, 71, 82, 65, 78, 84, 72, 193, 71, 82, 65, 77, + 77, 193, 71, 82, 65, 73, 78, 128, 71, 82, 65, 70, 128, 71, 82, 65, 68, + 85, 65, 84, 73, 79, 206, 71, 82, 65, 68, 85, 65, 76, 128, 71, 82, 65, 67, + 69, 128, 71, 82, 65, 67, 197, 71, 80, 65, 128, 71, 79, 82, 84, 72, 77, + 73, 75, 79, 206, 71, 79, 82, 84, 128, 71, 79, 82, 73, 76, 76, 65, 128, + 71, 79, 82, 71, 79, 84, 69, 82, 73, 128, 71, 79, 82, 71, 79, 83, 89, 78, + 84, 72, 69, 84, 79, 78, 128, 71, 79, 82, 71, 79, 206, 71, 79, 82, 71, 73, + 128, 71, 79, 82, 65, 90, 68, 207, 71, 79, 82, 65, 128, 71, 79, 79, 196, + 71, 79, 78, 71, 128, 71, 79, 76, 85, 66, 67, 72, 73, 203, 71, 79, 76, 70, + 69, 82, 128, 71, 79, 76, 68, 128, 71, 79, 75, 128, 71, 79, 73, 78, 199, + 71, 79, 71, 71, 76, 69, 83, 128, 71, 79, 66, 76, 73, 78, 128, 71, 79, 65, + 76, 128, 71, 79, 65, 204, 71, 79, 65, 128, 71, 78, 89, 73, 83, 128, 71, + 78, 65, 86, 73, 89, 65, 78, 73, 128, 71, 76, 79, 87, 73, 78, 199, 71, 76, + 79, 86, 69, 83, 128, 71, 76, 79, 86, 69, 128, 71, 76, 79, 84, 84, 65, + 204, 71, 76, 79, 66, 197, 71, 76, 73, 83, 83, 65, 78, 68, 207, 71, 76, + 69, 73, 67, 200, 71, 76, 65, 71, 79, 76, 73, 128, 71, 76, 65, 128, 71, + 74, 69, 128, 71, 73, 88, 128, 71, 73, 84, 128, 71, 73, 83, 72, 128, 71, + 73, 83, 200, 71, 73, 83, 65, 76, 128, 71, 73, 82, 85, 68, 65, 65, 128, + 71, 73, 82, 76, 211, 71, 73, 82, 76, 128, 71, 73, 82, 65, 70, 70, 197, + 71, 73, 82, 51, 128, 71, 73, 82, 179, 71, 73, 82, 50, 128, 71, 73, 82, + 178, 71, 73, 80, 128, 71, 73, 78, 73, 73, 128, 71, 73, 77, 69, 76, 45, + 72, 69, 84, 72, 128, 71, 73, 77, 69, 76, 128, 71, 73, 77, 69, 204, 71, + 73, 77, 128, 71, 73, 71, 65, 128, 71, 73, 71, 128, 71, 73, 70, 212, 71, + 73, 69, 84, 128, 71, 73, 68, 73, 77, 128, 71, 73, 66, 66, 79, 85, 211, + 71, 73, 66, 65, 128, 71, 73, 52, 128, 71, 73, 180, 71, 72, 90, 128, 71, + 72, 87, 65, 128, 71, 72, 85, 78, 78, 65, 128, 71, 72, 85, 78, 78, 193, + 71, 72, 85, 128, 71, 72, 79, 85, 128, 71, 72, 79, 83, 84, 128, 71, 72, + 79, 128, 71, 72, 73, 77, 69, 76, 128, 71, 72, 73, 128, 71, 72, 72, 65, + 128, 71, 72, 69, 89, 83, 128, 71, 72, 69, 85, 88, 128, 71, 72, 69, 85, + 78, 128, 71, 72, 69, 85, 71, 72, 69, 85, 65, 69, 77, 128, 71, 72, 69, 85, + 71, 72, 69, 78, 128, 71, 72, 69, 85, 65, 69, 82, 65, 69, 128, 71, 72, 69, + 85, 65, 69, 71, 72, 69, 85, 65, 69, 128, 71, 72, 69, 84, 128, 71, 72, 69, + 69, 128, 71, 72, 69, 128, 71, 72, 197, 71, 72, 65, 89, 78, 128, 71, 72, + 65, 82, 65, 69, 128, 71, 72, 65, 80, 128, 71, 72, 65, 78, 128, 71, 72, + 65, 77, 77, 65, 128, 71, 72, 65, 77, 65, 76, 128, 71, 72, 65, 73, 78, 85, 128, 71, 72, 65, 73, 78, 128, 71, 72, 65, 73, 206, 71, 72, 65, 68, 128, 71, 72, 65, 65, 77, 65, 69, 128, 71, 72, 65, 65, 128, 71, 71, 87, 73, 128, 71, 71, 87, 69, 69, 128, 71, 71, 87, 69, 128, 71, 71, 87, 65, 65, @@ -4275,157 +4260,155 @@ static const unsigned char lexicon[] = { 128, 70, 86, 83, 50, 128, 70, 86, 83, 49, 128, 70, 85, 88, 128, 70, 85, 84, 128, 70, 85, 83, 69, 128, 70, 85, 83, 193, 70, 85, 82, 88, 128, 70, 85, 80, 128, 70, 85, 78, 69, 82, 65, 204, 70, 85, 78, 67, 84, 73, 79, 78, - 65, 204, 70, 85, 78, 67, 84, 73, 79, 78, 128, 70, 85, 76, 76, 87, 73, 68, - 84, 200, 70, 85, 76, 76, 78, 69, 83, 83, 128, 70, 85, 76, 204, 70, 85, - 74, 73, 128, 70, 85, 69, 84, 128, 70, 85, 69, 204, 70, 85, 69, 128, 70, - 85, 65, 128, 70, 84, 72, 79, 82, 193, 70, 83, 73, 128, 70, 82, 79, 87, - 78, 73, 78, 71, 128, 70, 82, 79, 87, 78, 73, 78, 199, 70, 82, 79, 87, 78, - 128, 70, 82, 79, 87, 206, 70, 82, 79, 78, 84, 45, 84, 73, 76, 84, 69, - 196, 70, 82, 79, 78, 84, 45, 70, 65, 67, 73, 78, 199, 70, 82, 79, 78, - 212, 70, 82, 79, 205, 70, 82, 79, 71, 128, 70, 82, 79, 199, 70, 82, 73, - 84, 85, 128, 70, 82, 73, 69, 83, 128, 70, 82, 73, 69, 196, 70, 82, 73, - 67, 65, 84, 73, 86, 69, 128, 70, 82, 69, 84, 66, 79, 65, 82, 68, 128, 70, - 82, 69, 78, 67, 200, 70, 82, 69, 69, 90, 73, 78, 199, 70, 82, 69, 69, - 128, 70, 82, 69, 197, 70, 82, 65, 78, 75, 211, 70, 82, 65, 78, 195, 70, - 82, 65, 77, 69, 83, 128, 70, 82, 65, 77, 69, 128, 70, 82, 65, 77, 197, - 70, 82, 65, 75, 84, 85, 210, 70, 82, 65, 71, 82, 65, 78, 84, 128, 70, 82, - 65, 71, 77, 69, 78, 84, 128, 70, 82, 65, 67, 84, 73, 79, 206, 70, 79, 88, - 128, 70, 79, 216, 70, 79, 85, 82, 84, 69, 69, 78, 128, 70, 79, 85, 82, - 84, 69, 69, 206, 70, 79, 85, 82, 45, 84, 72, 73, 82, 84, 89, 128, 70, 79, - 85, 82, 45, 83, 84, 82, 73, 78, 199, 70, 79, 85, 82, 45, 80, 69, 82, 45, - 69, 205, 70, 79, 85, 82, 45, 76, 73, 78, 197, 70, 79, 85, 210, 70, 79, - 85, 78, 84, 65, 73, 78, 128, 70, 79, 85, 78, 84, 65, 73, 206, 70, 79, 83, - 84, 69, 82, 73, 78, 71, 128, 70, 79, 82, 87, 65, 82, 68, 128, 70, 79, 82, - 87, 65, 82, 196, 70, 79, 82, 84, 89, 45, 70, 73, 86, 197, 70, 79, 82, 84, - 89, 128, 70, 79, 82, 84, 217, 70, 79, 82, 84, 85, 78, 69, 128, 70, 79, - 82, 84, 85, 78, 197, 70, 79, 82, 84, 73, 69, 84, 72, 128, 70, 79, 82, 84, - 69, 128, 70, 79, 82, 77, 211, 70, 79, 82, 77, 69, 69, 128, 70, 79, 82, - 77, 69, 197, 70, 79, 82, 77, 65, 84, 84, 73, 78, 71, 128, 70, 79, 82, 77, - 65, 212, 70, 79, 82, 75, 69, 196, 70, 79, 82, 69, 72, 69, 65, 196, 70, - 79, 82, 67, 69, 83, 128, 70, 79, 82, 67, 69, 128, 70, 79, 80, 128, 70, - 79, 79, 84, 83, 84, 79, 79, 76, 128, 70, 79, 79, 84, 80, 82, 73, 78, 84, - 83, 128, 70, 79, 79, 84, 78, 79, 84, 197, 70, 79, 79, 84, 66, 65, 76, 76, + 65, 204, 70, 85, 78, 67, 84, 73, 79, 78, 128, 70, 85, 76, 76, 78, 69, 83, + 83, 128, 70, 85, 76, 204, 70, 85, 74, 73, 128, 70, 85, 69, 84, 128, 70, + 85, 69, 204, 70, 85, 69, 128, 70, 85, 65, 128, 70, 84, 72, 79, 82, 193, + 70, 83, 73, 128, 70, 82, 79, 87, 78, 73, 78, 71, 128, 70, 82, 79, 87, 78, + 73, 78, 199, 70, 82, 79, 87, 78, 128, 70, 82, 79, 87, 206, 70, 82, 79, + 78, 84, 45, 84, 73, 76, 84, 69, 196, 70, 82, 79, 78, 84, 45, 70, 65, 67, + 73, 78, 199, 70, 82, 79, 78, 212, 70, 82, 79, 205, 70, 82, 79, 71, 128, + 70, 82, 79, 199, 70, 82, 73, 84, 85, 128, 70, 82, 73, 69, 83, 128, 70, + 82, 73, 69, 196, 70, 82, 73, 67, 65, 84, 73, 86, 69, 128, 70, 82, 69, 84, + 66, 79, 65, 82, 68, 128, 70, 82, 69, 78, 67, 200, 70, 82, 69, 69, 90, 73, + 78, 199, 70, 82, 69, 69, 128, 70, 82, 69, 197, 70, 82, 65, 78, 75, 211, + 70, 82, 65, 78, 195, 70, 82, 65, 77, 69, 83, 128, 70, 82, 65, 77, 69, + 128, 70, 82, 65, 77, 197, 70, 82, 65, 75, 84, 85, 210, 70, 82, 65, 71, + 82, 65, 78, 84, 128, 70, 82, 65, 71, 77, 69, 78, 84, 128, 70, 82, 65, 67, + 84, 73, 79, 206, 70, 79, 88, 128, 70, 79, 216, 70, 79, 85, 82, 84, 69, + 69, 78, 128, 70, 79, 85, 82, 84, 69, 69, 206, 70, 79, 85, 82, 45, 84, 72, + 73, 82, 84, 89, 128, 70, 79, 85, 82, 45, 83, 84, 82, 73, 78, 199, 70, 79, + 85, 82, 45, 80, 69, 82, 45, 69, 205, 70, 79, 85, 82, 45, 76, 73, 78, 197, + 70, 79, 85, 210, 70, 79, 85, 78, 84, 65, 73, 78, 128, 70, 79, 85, 78, 84, + 65, 73, 206, 70, 79, 83, 84, 69, 82, 73, 78, 71, 128, 70, 79, 82, 87, 65, + 82, 68, 128, 70, 79, 82, 87, 65, 82, 196, 70, 79, 82, 84, 89, 45, 70, 73, + 86, 197, 70, 79, 82, 84, 89, 128, 70, 79, 82, 84, 217, 70, 79, 82, 84, + 85, 78, 197, 70, 79, 82, 84, 73, 69, 84, 72, 128, 70, 79, 82, 84, 69, + 128, 70, 79, 82, 77, 211, 70, 79, 82, 77, 69, 69, 128, 70, 79, 82, 77, + 69, 197, 70, 79, 82, 77, 65, 84, 84, 73, 78, 71, 128, 70, 79, 82, 77, 65, + 212, 70, 79, 82, 75, 69, 196, 70, 79, 82, 69, 72, 69, 65, 196, 70, 79, + 82, 67, 69, 83, 128, 70, 79, 82, 67, 69, 128, 70, 79, 80, 128, 70, 79, + 79, 84, 83, 84, 79, 79, 76, 128, 70, 79, 79, 84, 80, 82, 73, 78, 84, 83, + 128, 70, 79, 79, 84, 78, 79, 84, 197, 70, 79, 79, 84, 66, 65, 76, 76, 128, 70, 79, 79, 84, 128, 70, 79, 79, 76, 128, 70, 79, 79, 68, 128, 70, 79, 79, 128, 70, 79, 78, 212, 70, 79, 78, 71, 77, 65, 78, 128, 70, 79, 78, 68, 85, 69, 128, 70, 79, 77, 128, 70, 79, 76, 76, 89, 128, 70, 79, - 76, 76, 79, 87, 73, 78, 71, 128, 70, 79, 76, 68, 73, 78, 199, 70, 79, 76, - 68, 69, 82, 128, 70, 79, 76, 68, 69, 196, 70, 79, 71, 71, 89, 128, 70, - 79, 71, 128, 70, 207, 70, 77, 128, 70, 76, 89, 73, 78, 199, 70, 76, 89, - 128, 70, 76, 85, 84, 84, 69, 82, 73, 78, 71, 128, 70, 76, 85, 84, 84, 69, - 82, 73, 78, 199, 70, 76, 85, 84, 69, 128, 70, 76, 85, 83, 72, 69, 196, - 70, 76, 79, 87, 73, 78, 199, 70, 76, 79, 87, 69, 82, 83, 128, 70, 76, 79, - 87, 69, 210, 70, 76, 79, 85, 82, 73, 83, 72, 128, 70, 76, 79, 82, 69, 84, - 84, 69, 128, 70, 76, 79, 82, 65, 204, 70, 76, 79, 80, 80, 217, 70, 76, - 79, 79, 82, 128, 70, 76, 79, 79, 210, 70, 76, 73, 80, 128, 70, 76, 73, - 71, 72, 84, 128, 70, 76, 73, 67, 203, 70, 76, 69, 88, 85, 83, 128, 70, - 76, 69, 88, 69, 196, 70, 76, 69, 88, 128, 70, 76, 69, 85, 82, 79, 78, - 128, 70, 76, 69, 85, 82, 45, 68, 69, 45, 76, 73, 83, 128, 70, 76, 65, 84, - 84, 69, 78, 69, 196, 70, 76, 65, 84, 78, 69, 83, 83, 128, 70, 76, 65, 84, - 66, 82, 69, 65, 68, 128, 70, 76, 65, 83, 72, 128, 70, 76, 65, 77, 73, 78, - 71, 79, 128, 70, 76, 65, 77, 69, 128, 70, 76, 65, 71, 83, 128, 70, 76, - 65, 71, 45, 53, 128, 70, 76, 65, 71, 45, 52, 128, 70, 76, 65, 71, 45, 51, - 128, 70, 76, 65, 71, 45, 50, 128, 70, 76, 65, 71, 45, 49, 128, 70, 76, - 65, 71, 128, 70, 76, 65, 199, 70, 76, 65, 128, 70, 76, 128, 70, 73, 88, - 69, 68, 45, 70, 79, 82, 205, 70, 73, 88, 128, 70, 73, 86, 69, 45, 84, 72, - 73, 82, 84, 89, 128, 70, 73, 86, 69, 45, 76, 73, 78, 197, 70, 73, 86, 69, - 45, 76, 73, 75, 197, 70, 73, 84, 90, 80, 65, 84, 82, 73, 67, 203, 70, 73, - 84, 65, 128, 70, 73, 84, 128, 70, 73, 83, 84, 69, 196, 70, 73, 83, 72, - 73, 78, 199, 70, 73, 83, 72, 72, 79, 79, 75, 128, 70, 73, 83, 72, 72, 79, - 79, 203, 70, 73, 83, 72, 69, 89, 69, 128, 70, 73, 83, 200, 70, 73, 82, - 83, 212, 70, 73, 82, 73, 128, 70, 73, 82, 69, 87, 79, 82, 75, 83, 128, - 70, 73, 82, 69, 87, 79, 82, 203, 70, 73, 82, 69, 67, 82, 65, 67, 75, 69, - 82, 128, 70, 73, 82, 69, 128, 70, 73, 82, 197, 70, 73, 80, 128, 70, 73, - 78, 73, 84, 197, 70, 73, 78, 71, 69, 82, 83, 128, 70, 73, 78, 71, 69, 82, - 211, 70, 73, 78, 71, 69, 82, 78, 65, 73, 76, 83, 128, 70, 73, 78, 71, 69, - 82, 69, 196, 70, 73, 78, 71, 69, 82, 45, 80, 79, 83, 212, 70, 73, 78, 71, - 69, 82, 128, 70, 73, 78, 71, 69, 210, 70, 73, 78, 65, 78, 67, 73, 65, 76, - 128, 70, 73, 78, 65, 76, 128, 70, 73, 76, 205, 70, 73, 76, 76, 69, 82, - 45, 50, 128, 70, 73, 76, 76, 69, 82, 45, 49, 128, 70, 73, 76, 76, 69, 82, - 128, 70, 73, 76, 76, 69, 196, 70, 73, 76, 76, 128, 70, 73, 76, 204, 70, - 73, 76, 197, 70, 73, 73, 128, 70, 73, 71, 85, 82, 69, 45, 51, 128, 70, - 73, 71, 85, 82, 69, 45, 50, 128, 70, 73, 71, 85, 82, 69, 45, 49, 128, 70, - 73, 71, 85, 82, 69, 128, 70, 73, 71, 85, 82, 197, 70, 73, 71, 72, 84, - 128, 70, 73, 70, 84, 89, 128, 70, 73, 70, 84, 217, 70, 73, 70, 84, 72, - 83, 128, 70, 73, 70, 84, 72, 128, 70, 73, 70, 84, 69, 69, 78, 128, 70, - 73, 70, 84, 69, 69, 206, 70, 73, 69, 76, 68, 128, 70, 73, 69, 76, 196, - 70, 72, 84, 79, 82, 193, 70, 70, 76, 128, 70, 70, 73, 128, 70, 69, 85, - 88, 128, 70, 69, 85, 70, 69, 85, 65, 69, 84, 128, 70, 69, 84, 72, 128, - 70, 69, 83, 84, 73, 86, 65, 76, 128, 70, 69, 82, 82, 89, 128, 70, 69, 82, - 82, 73, 211, 70, 69, 82, 77, 65, 84, 65, 128, 70, 69, 82, 77, 65, 84, - 193, 70, 69, 79, 200, 70, 69, 78, 199, 70, 69, 78, 67, 69, 82, 128, 70, - 69, 78, 67, 69, 128, 70, 69, 77, 73, 78, 73, 78, 197, 70, 69, 77, 65, 76, - 69, 128, 70, 69, 77, 65, 76, 197, 70, 69, 76, 76, 79, 87, 83, 72, 73, 80, - 128, 70, 69, 73, 128, 70, 69, 72, 213, 70, 69, 72, 128, 70, 69, 200, 70, - 69, 69, 78, 71, 128, 70, 69, 69, 77, 128, 70, 69, 69, 68, 128, 70, 69, - 69, 196, 70, 69, 69, 128, 70, 69, 66, 82, 85, 65, 82, 89, 128, 70, 69, - 65, 84, 72, 69, 82, 128, 70, 69, 65, 84, 72, 69, 210, 70, 69, 65, 82, 78, - 128, 70, 69, 65, 82, 70, 85, 204, 70, 69, 65, 82, 128, 70, 65, 89, 65, - 78, 78, 65, 128, 70, 65, 89, 128, 70, 65, 88, 128, 70, 65, 216, 70, 65, - 84, 73, 71, 85, 69, 128, 70, 65, 84, 72, 69, 82, 128, 70, 65, 84, 72, 69, - 210, 70, 65, 84, 72, 65, 84, 65, 78, 128, 70, 65, 84, 72, 65, 84, 65, - 206, 70, 65, 84, 72, 65, 128, 70, 65, 84, 72, 193, 70, 65, 84, 128, 70, - 65, 83, 84, 128, 70, 65, 82, 83, 201, 70, 65, 82, 128, 70, 65, 81, 128, - 70, 65, 80, 128, 70, 65, 78, 71, 128, 70, 65, 78, 69, 82, 79, 83, 73, - 211, 70, 65, 78, 128, 70, 65, 77, 73, 76, 89, 128, 70, 65, 77, 128, 70, - 65, 76, 76, 69, 206, 70, 65, 76, 65, 70, 69, 76, 128, 70, 65, 74, 128, - 70, 65, 73, 82, 89, 128, 70, 65, 73, 76, 85, 82, 69, 128, 70, 65, 73, 72, - 85, 128, 70, 65, 73, 66, 128, 70, 65, 72, 82, 69, 78, 72, 69, 73, 84, - 128, 70, 65, 67, 84, 79, 82, 89, 128, 70, 65, 67, 84, 79, 210, 70, 65, - 67, 83, 73, 77, 73, 76, 197, 70, 65, 67, 73, 78, 71, 83, 128, 70, 65, 67, - 69, 45, 54, 128, 70, 65, 67, 69, 45, 53, 128, 70, 65, 67, 69, 45, 52, - 128, 70, 65, 67, 69, 45, 51, 128, 70, 65, 67, 69, 45, 50, 128, 70, 65, - 67, 69, 45, 49, 128, 70, 65, 65, 77, 65, 69, 128, 70, 65, 65, 73, 128, - 70, 65, 65, 70, 85, 128, 70, 48, 53, 51, 128, 70, 48, 53, 50, 128, 70, - 48, 53, 49, 67, 128, 70, 48, 53, 49, 66, 128, 70, 48, 53, 49, 65, 128, - 70, 48, 53, 49, 128, 70, 48, 53, 48, 128, 70, 48, 52, 57, 128, 70, 48, - 52, 56, 128, 70, 48, 52, 55, 65, 128, 70, 48, 52, 55, 128, 70, 48, 52, - 54, 65, 128, 70, 48, 52, 54, 128, 70, 48, 52, 53, 65, 128, 70, 48, 52, - 53, 128, 70, 48, 52, 52, 128, 70, 48, 52, 51, 128, 70, 48, 52, 50, 128, - 70, 48, 52, 49, 128, 70, 48, 52, 48, 128, 70, 48, 51, 57, 128, 70, 48, - 51, 56, 65, 128, 70, 48, 51, 56, 128, 70, 48, 51, 55, 65, 128, 70, 48, - 51, 55, 128, 70, 48, 51, 54, 128, 70, 48, 51, 53, 128, 70, 48, 51, 52, - 128, 70, 48, 51, 51, 128, 70, 48, 51, 50, 128, 70, 48, 51, 49, 65, 128, - 70, 48, 51, 49, 128, 70, 48, 51, 48, 128, 70, 48, 50, 57, 128, 70, 48, - 50, 56, 128, 70, 48, 50, 55, 128, 70, 48, 50, 54, 128, 70, 48, 50, 53, - 128, 70, 48, 50, 52, 128, 70, 48, 50, 51, 128, 70, 48, 50, 50, 128, 70, - 48, 50, 49, 65, 128, 70, 48, 50, 49, 128, 70, 48, 50, 48, 128, 70, 48, - 49, 57, 128, 70, 48, 49, 56, 128, 70, 48, 49, 55, 128, 70, 48, 49, 54, - 128, 70, 48, 49, 53, 128, 70, 48, 49, 52, 128, 70, 48, 49, 51, 65, 128, - 70, 48, 49, 51, 128, 70, 48, 49, 50, 128, 70, 48, 49, 49, 128, 70, 48, - 49, 48, 128, 70, 48, 48, 57, 128, 70, 48, 48, 56, 128, 70, 48, 48, 55, - 128, 70, 48, 48, 54, 128, 70, 48, 48, 53, 128, 70, 48, 48, 52, 128, 70, - 48, 48, 51, 128, 70, 48, 48, 50, 128, 70, 48, 48, 49, 65, 128, 70, 48, - 48, 49, 128, 69, 90, 83, 128, 69, 90, 69, 78, 128, 69, 90, 69, 206, 69, - 89, 89, 89, 128, 69, 89, 69, 83, 128, 69, 89, 69, 211, 69, 89, 69, 76, - 65, 83, 72, 69, 211, 69, 89, 69, 71, 76, 65, 83, 83, 69, 83, 128, 69, 89, - 69, 71, 65, 90, 69, 45, 87, 65, 76, 76, 80, 76, 65, 78, 197, 69, 89, 69, - 71, 65, 90, 69, 45, 70, 76, 79, 79, 82, 80, 76, 65, 78, 197, 69, 89, 69, - 66, 82, 79, 87, 211, 69, 89, 69, 66, 82, 79, 215, 69, 89, 197, 69, 89, - 66, 69, 89, 70, 73, 76, 73, 128, 69, 89, 65, 78, 78, 65, 128, 69, 88, 84, - 82, 69, 77, 69, 76, 217, 69, 88, 84, 82, 65, 84, 69, 82, 82, 69, 83, 84, - 82, 73, 65, 204, 69, 88, 84, 82, 65, 45, 76, 79, 215, 69, 88, 84, 82, 65, - 45, 72, 73, 71, 200, 69, 88, 84, 82, 193, 69, 88, 84, 73, 78, 71, 85, 73, - 83, 72, 69, 82, 128, 69, 88, 84, 69, 78, 83, 73, 79, 78, 128, 69, 88, 84, - 69, 78, 68, 69, 68, 128, 69, 88, 84, 69, 78, 68, 69, 196, 69, 88, 80, 82, - 69, 83, 83, 73, 79, 78, 76, 69, 83, 211, 69, 88, 80, 79, 78, 69, 78, 212, - 69, 88, 80, 76, 79, 68, 73, 78, 199, 69, 88, 79, 128, 69, 88, 207, 69, - 88, 73, 83, 84, 83, 128, 69, 88, 73, 83, 84, 128, 69, 88, 72, 65, 85, 83, - 84, 73, 79, 78, 128, 69, 88, 72, 65, 76, 69, 128, 69, 88, 67, 76, 65, 77, - 65, 84, 73, 79, 78, 128, 69, 88, 67, 76, 65, 77, 65, 84, 73, 79, 206, 69, - 88, 67, 73, 84, 69, 77, 69, 78, 84, 128, 69, 88, 67, 72, 65, 78, 71, 69, - 128, 69, 88, 67, 69, 83, 83, 128, 69, 88, 67, 69, 76, 76, 69, 78, 84, - 128, 69, 87, 69, 128, 69, 86, 69, 82, 217, 69, 86, 69, 82, 71, 82, 69, - 69, 206, 69, 86, 69, 78, 73, 78, 71, 128, 69, 85, 82, 79, 80, 69, 65, - 206, 69, 85, 82, 79, 80, 69, 45, 65, 70, 82, 73, 67, 65, 128, 69, 85, 82, - 79, 45, 67, 85, 82, 82, 69, 78, 67, 217, 69, 85, 82, 207, 69, 85, 76, 69, - 210, 69, 85, 45, 85, 128, 69, 85, 45, 79, 128, 69, 85, 45, 69, 85, 128, - 69, 85, 45, 69, 79, 128, 69, 85, 45, 69, 128, 69, 85, 45, 65, 128, 69, - 84, 88, 128, 69, 84, 84, 128, 69, 84, 78, 65, 72, 84, 65, 128, 69, 84, - 72, 69, 204, 69, 84, 69, 82, 79, 206, 69, 84, 69, 82, 78, 73, 84, 89, - 128, 69, 84, 69, 82, 78, 73, 84, 217, 69, 84, 66, 128, 69, 83, 90, 128, - 69, 83, 85, 75, 85, 85, 68, 79, 128, 69, 83, 84, 73, 77, 65, 84, 69, 83, - 128, 69, 83, 84, 73, 77, 65, 84, 69, 196, 69, 83, 72, 69, 51, 128, 69, - 83, 72, 50, 49, 128, 69, 83, 72, 49, 54, 128, 69, 83, 67, 65, 80, 69, + 76, 76, 79, 87, 73, 78, 71, 128, 70, 79, 76, 68, 69, 82, 128, 70, 79, 76, + 68, 69, 196, 70, 79, 71, 71, 89, 128, 70, 79, 71, 128, 70, 207, 70, 77, + 128, 70, 76, 89, 73, 78, 199, 70, 76, 89, 128, 70, 76, 85, 84, 84, 69, + 82, 73, 78, 71, 128, 70, 76, 85, 84, 84, 69, 82, 73, 78, 199, 70, 76, 85, + 84, 69, 128, 70, 76, 85, 83, 72, 69, 196, 70, 76, 79, 87, 73, 78, 199, + 70, 76, 79, 87, 69, 82, 83, 128, 70, 76, 79, 87, 69, 210, 70, 76, 79, 85, + 82, 73, 83, 72, 128, 70, 76, 79, 82, 69, 84, 84, 69, 128, 70, 76, 79, 82, + 65, 204, 70, 76, 79, 80, 80, 217, 70, 76, 79, 79, 82, 128, 70, 76, 79, + 79, 210, 70, 76, 73, 80, 128, 70, 76, 73, 71, 72, 84, 128, 70, 76, 73, + 67, 203, 70, 76, 69, 88, 85, 83, 128, 70, 76, 69, 88, 69, 196, 70, 76, + 69, 88, 128, 70, 76, 69, 85, 82, 79, 78, 128, 70, 76, 69, 85, 82, 45, 68, + 69, 45, 76, 73, 83, 128, 70, 76, 65, 84, 84, 69, 78, 69, 196, 70, 76, 65, + 84, 78, 69, 83, 83, 128, 70, 76, 65, 84, 66, 82, 69, 65, 68, 128, 70, 76, + 65, 83, 72, 128, 70, 76, 65, 77, 73, 78, 71, 79, 128, 70, 76, 65, 77, 69, + 128, 70, 76, 65, 71, 83, 128, 70, 76, 65, 71, 45, 53, 128, 70, 76, 65, + 71, 45, 52, 128, 70, 76, 65, 71, 45, 51, 128, 70, 76, 65, 71, 45, 50, + 128, 70, 76, 65, 71, 45, 49, 128, 70, 76, 65, 71, 128, 70, 76, 65, 199, + 70, 76, 65, 128, 70, 76, 128, 70, 73, 88, 69, 68, 45, 70, 79, 82, 205, + 70, 73, 88, 128, 70, 73, 86, 69, 45, 84, 72, 73, 82, 84, 89, 128, 70, 73, + 86, 69, 45, 76, 73, 78, 197, 70, 73, 84, 90, 80, 65, 84, 82, 73, 67, 203, + 70, 73, 84, 65, 128, 70, 73, 84, 128, 70, 73, 83, 84, 69, 196, 70, 73, + 83, 72, 73, 78, 199, 70, 73, 83, 72, 72, 79, 79, 75, 128, 70, 73, 83, 72, + 72, 79, 79, 203, 70, 73, 83, 72, 69, 89, 69, 128, 70, 73, 83, 72, 128, + 70, 73, 83, 200, 70, 73, 82, 83, 212, 70, 73, 82, 73, 128, 70, 73, 82, + 69, 87, 79, 82, 75, 83, 128, 70, 73, 82, 69, 87, 79, 82, 203, 70, 73, 82, + 69, 67, 82, 65, 67, 75, 69, 82, 128, 70, 73, 82, 69, 128, 70, 73, 82, + 197, 70, 73, 80, 128, 70, 73, 78, 73, 84, 197, 70, 73, 78, 71, 69, 82, + 83, 128, 70, 73, 78, 71, 69, 82, 211, 70, 73, 78, 71, 69, 82, 78, 65, 73, + 76, 83, 128, 70, 73, 78, 71, 69, 82, 69, 196, 70, 73, 78, 71, 69, 82, 45, + 80, 79, 83, 212, 70, 73, 78, 71, 69, 82, 128, 70, 73, 78, 71, 69, 210, + 70, 73, 78, 65, 78, 67, 73, 65, 76, 128, 70, 73, 78, 65, 76, 128, 70, 73, + 76, 205, 70, 73, 76, 76, 69, 82, 45, 50, 128, 70, 73, 76, 76, 69, 82, 45, + 49, 128, 70, 73, 76, 76, 69, 82, 128, 70, 73, 76, 76, 69, 196, 70, 73, + 76, 76, 128, 70, 73, 76, 204, 70, 73, 76, 197, 70, 73, 73, 128, 70, 73, + 71, 85, 82, 69, 45, 51, 128, 70, 73, 71, 85, 82, 69, 45, 50, 128, 70, 73, + 71, 85, 82, 69, 45, 49, 128, 70, 73, 71, 85, 82, 69, 128, 70, 73, 71, 85, + 82, 197, 70, 73, 71, 72, 84, 128, 70, 73, 70, 84, 89, 128, 70, 73, 70, + 84, 217, 70, 73, 70, 84, 72, 83, 128, 70, 73, 70, 84, 72, 128, 70, 73, + 70, 84, 69, 69, 78, 128, 70, 73, 70, 84, 69, 69, 206, 70, 73, 69, 76, 68, + 128, 70, 73, 69, 76, 196, 70, 72, 84, 79, 82, 193, 70, 70, 76, 128, 70, + 70, 73, 128, 70, 69, 85, 88, 128, 70, 69, 85, 70, 69, 85, 65, 69, 84, + 128, 70, 69, 84, 72, 128, 70, 69, 83, 84, 73, 86, 65, 76, 128, 70, 69, + 82, 82, 89, 128, 70, 69, 82, 82, 73, 211, 70, 69, 82, 77, 65, 84, 65, + 128, 70, 69, 82, 77, 65, 84, 193, 70, 69, 79, 200, 70, 69, 78, 199, 70, + 69, 78, 67, 69, 82, 128, 70, 69, 78, 67, 69, 128, 70, 69, 77, 73, 78, 73, + 78, 197, 70, 69, 77, 65, 76, 69, 128, 70, 69, 77, 65, 76, 197, 70, 69, + 76, 76, 79, 87, 83, 72, 73, 80, 128, 70, 69, 73, 128, 70, 69, 72, 213, + 70, 69, 72, 128, 70, 69, 200, 70, 69, 69, 78, 71, 128, 70, 69, 69, 77, + 128, 70, 69, 69, 68, 128, 70, 69, 69, 196, 70, 69, 69, 128, 70, 69, 66, + 82, 85, 65, 82, 89, 128, 70, 69, 65, 84, 72, 69, 82, 128, 70, 69, 65, 84, + 72, 69, 210, 70, 69, 65, 82, 78, 128, 70, 69, 65, 82, 70, 85, 204, 70, + 69, 65, 82, 128, 70, 65, 89, 65, 78, 78, 65, 128, 70, 65, 89, 128, 70, + 65, 88, 128, 70, 65, 216, 70, 65, 84, 73, 71, 85, 69, 128, 70, 65, 84, + 72, 69, 82, 128, 70, 65, 84, 72, 69, 210, 70, 65, 84, 72, 65, 84, 65, 78, + 128, 70, 65, 84, 72, 65, 84, 65, 206, 70, 65, 84, 72, 65, 128, 70, 65, + 84, 72, 193, 70, 65, 84, 128, 70, 65, 83, 84, 128, 70, 65, 82, 83, 201, + 70, 65, 82, 128, 70, 65, 81, 128, 70, 65, 80, 128, 70, 65, 78, 71, 128, + 70, 65, 78, 69, 82, 79, 83, 73, 211, 70, 65, 78, 128, 70, 65, 77, 73, 76, + 89, 128, 70, 65, 77, 128, 70, 65, 76, 76, 69, 206, 70, 65, 76, 65, 70, + 69, 76, 128, 70, 65, 74, 128, 70, 65, 73, 82, 89, 128, 70, 65, 73, 76, + 85, 82, 69, 128, 70, 65, 73, 72, 85, 128, 70, 65, 73, 66, 128, 70, 65, + 72, 82, 69, 78, 72, 69, 73, 84, 128, 70, 65, 67, 84, 79, 82, 89, 128, 70, + 65, 67, 84, 79, 210, 70, 65, 67, 83, 73, 77, 73, 76, 197, 70, 65, 67, 73, + 78, 71, 83, 128, 70, 65, 67, 69, 45, 54, 128, 70, 65, 67, 69, 45, 53, + 128, 70, 65, 67, 69, 45, 52, 128, 70, 65, 67, 69, 45, 51, 128, 70, 65, + 67, 69, 45, 50, 128, 70, 65, 67, 69, 45, 49, 128, 70, 65, 65, 77, 65, 69, + 128, 70, 65, 65, 73, 128, 70, 65, 65, 70, 85, 128, 70, 48, 53, 51, 128, + 70, 48, 53, 50, 128, 70, 48, 53, 49, 67, 128, 70, 48, 53, 49, 66, 128, + 70, 48, 53, 49, 65, 128, 70, 48, 53, 49, 128, 70, 48, 53, 48, 128, 70, + 48, 52, 57, 128, 70, 48, 52, 56, 128, 70, 48, 52, 55, 65, 128, 70, 48, + 52, 55, 128, 70, 48, 52, 54, 65, 128, 70, 48, 52, 54, 128, 70, 48, 52, + 53, 65, 128, 70, 48, 52, 53, 128, 70, 48, 52, 52, 128, 70, 48, 52, 51, + 128, 70, 48, 52, 50, 128, 70, 48, 52, 49, 128, 70, 48, 52, 48, 128, 70, + 48, 51, 57, 128, 70, 48, 51, 56, 65, 128, 70, 48, 51, 56, 128, 70, 48, + 51, 55, 65, 128, 70, 48, 51, 55, 128, 70, 48, 51, 54, 128, 70, 48, 51, + 53, 128, 70, 48, 51, 52, 128, 70, 48, 51, 51, 128, 70, 48, 51, 50, 128, + 70, 48, 51, 49, 65, 128, 70, 48, 51, 49, 128, 70, 48, 51, 48, 128, 70, + 48, 50, 57, 128, 70, 48, 50, 56, 128, 70, 48, 50, 55, 128, 70, 48, 50, + 54, 128, 70, 48, 50, 53, 128, 70, 48, 50, 52, 128, 70, 48, 50, 51, 128, + 70, 48, 50, 50, 128, 70, 48, 50, 49, 65, 128, 70, 48, 50, 49, 128, 70, + 48, 50, 48, 128, 70, 48, 49, 57, 128, 70, 48, 49, 56, 128, 70, 48, 49, + 55, 128, 70, 48, 49, 54, 128, 70, 48, 49, 53, 128, 70, 48, 49, 52, 128, + 70, 48, 49, 51, 65, 128, 70, 48, 49, 51, 128, 70, 48, 49, 50, 128, 70, + 48, 49, 49, 128, 70, 48, 49, 48, 128, 70, 48, 48, 57, 128, 70, 48, 48, + 56, 128, 70, 48, 48, 55, 128, 70, 48, 48, 54, 128, 70, 48, 48, 53, 128, + 70, 48, 48, 52, 128, 70, 48, 48, 51, 128, 70, 48, 48, 50, 128, 70, 48, + 48, 49, 65, 128, 70, 48, 48, 49, 128, 69, 90, 83, 128, 69, 90, 69, 78, + 128, 69, 90, 69, 206, 69, 89, 89, 89, 128, 69, 89, 69, 83, 128, 69, 89, + 69, 211, 69, 89, 69, 76, 65, 83, 72, 69, 211, 69, 89, 69, 71, 76, 65, 83, + 83, 69, 83, 128, 69, 89, 69, 71, 65, 90, 69, 45, 87, 65, 76, 76, 80, 76, + 65, 78, 197, 69, 89, 69, 71, 65, 90, 69, 45, 70, 76, 79, 79, 82, 80, 76, + 65, 78, 197, 69, 89, 69, 66, 82, 79, 87, 211, 69, 89, 69, 66, 82, 79, + 215, 69, 89, 197, 69, 89, 66, 69, 89, 70, 73, 76, 73, 128, 69, 89, 65, + 78, 78, 65, 128, 69, 88, 84, 82, 69, 77, 69, 76, 217, 69, 88, 84, 82, 65, + 84, 69, 82, 82, 69, 83, 84, 82, 73, 65, 204, 69, 88, 84, 82, 65, 45, 76, + 79, 215, 69, 88, 84, 82, 65, 45, 72, 73, 71, 200, 69, 88, 84, 82, 193, + 69, 88, 84, 73, 78, 71, 85, 73, 83, 72, 69, 82, 128, 69, 88, 84, 69, 78, + 83, 73, 79, 78, 128, 69, 88, 84, 69, 78, 68, 69, 68, 128, 69, 88, 84, 69, + 78, 68, 69, 196, 69, 88, 80, 82, 69, 83, 83, 73, 79, 78, 76, 69, 83, 211, + 69, 88, 80, 79, 78, 69, 78, 212, 69, 88, 80, 76, 79, 68, 73, 78, 199, 69, + 88, 79, 128, 69, 88, 207, 69, 88, 73, 83, 84, 83, 128, 69, 88, 73, 83, + 84, 128, 69, 88, 72, 65, 85, 83, 84, 73, 79, 78, 128, 69, 88, 72, 65, 76, + 69, 128, 69, 88, 67, 76, 65, 77, 65, 84, 73, 79, 78, 128, 69, 88, 67, 76, + 65, 77, 65, 84, 73, 79, 206, 69, 88, 67, 73, 84, 69, 77, 69, 78, 84, 128, + 69, 88, 67, 72, 65, 78, 71, 69, 128, 69, 88, 67, 69, 83, 83, 128, 69, 88, + 67, 69, 76, 76, 69, 78, 84, 128, 69, 87, 69, 128, 69, 86, 69, 82, 217, + 69, 86, 69, 82, 71, 82, 69, 69, 206, 69, 86, 69, 78, 73, 78, 71, 128, 69, + 85, 82, 79, 80, 69, 65, 206, 69, 85, 82, 79, 80, 69, 45, 65, 70, 82, 73, + 67, 65, 128, 69, 85, 82, 79, 45, 67, 85, 82, 82, 69, 78, 67, 217, 69, 85, + 82, 207, 69, 85, 76, 69, 210, 69, 85, 45, 85, 128, 69, 85, 45, 79, 128, + 69, 85, 45, 69, 85, 128, 69, 85, 45, 69, 79, 128, 69, 85, 45, 69, 128, + 69, 85, 45, 65, 128, 69, 84, 88, 128, 69, 84, 78, 65, 72, 84, 65, 128, + 69, 84, 72, 69, 204, 69, 84, 69, 82, 79, 206, 69, 84, 69, 82, 78, 73, 84, + 89, 128, 69, 84, 69, 82, 78, 73, 84, 217, 69, 84, 66, 128, 69, 83, 90, + 128, 69, 83, 85, 75, 85, 85, 68, 79, 128, 69, 83, 84, 73, 77, 65, 84, 69, + 83, 128, 69, 83, 84, 73, 77, 65, 84, 69, 196, 69, 83, 72, 69, 51, 128, + 69, 83, 72, 50, 49, 128, 69, 83, 72, 49, 54, 128, 69, 83, 67, 65, 80, 69, 128, 69, 83, 67, 128, 69, 83, 65, 128, 69, 83, 45, 84, 69, 128, 69, 83, 45, 51, 128, 69, 83, 45, 50, 128, 69, 83, 45, 49, 128, 69, 82, 82, 79, 82, 45, 66, 65, 82, 82, 69, 196, 69, 82, 82, 128, 69, 82, 73, 211, 69, @@ -4481,102 +4464,101 @@ static const unsigned char lexicon[] = { 89, 128, 69, 71, 73, 82, 128, 69, 71, 71, 83, 128, 69, 71, 71, 128, 69, 69, 89, 65, 78, 78, 65, 128, 69, 69, 75, 65, 65, 128, 69, 69, 72, 128, 69, 69, 66, 69, 69, 70, 73, 76, 73, 128, 69, 68, 73, 84, 79, 82, 73, 65, - 204, 69, 68, 73, 78, 128, 69, 68, 68, 128, 69, 67, 83, 128, 69, 67, 76, - 73, 80, 83, 69, 128, 69, 66, 69, 70, 73, 76, 73, 128, 69, 65, 83, 84, 69, - 82, 206, 69, 65, 83, 84, 128, 69, 65, 83, 212, 69, 65, 82, 84, 72, 76, - 217, 69, 65, 82, 84, 72, 128, 69, 65, 82, 84, 200, 69, 65, 82, 76, 217, - 69, 65, 77, 72, 65, 78, 67, 72, 79, 76, 76, 128, 69, 65, 71, 76, 69, 128, - 69, 65, 68, 72, 65, 68, 72, 128, 69, 65, 66, 72, 65, 68, 72, 128, 69, - 178, 69, 48, 51, 56, 128, 69, 48, 51, 55, 128, 69, 48, 51, 54, 128, 69, - 48, 51, 52, 65, 128, 69, 48, 51, 52, 128, 69, 48, 51, 51, 128, 69, 48, - 51, 50, 128, 69, 48, 51, 49, 128, 69, 48, 51, 48, 128, 69, 48, 50, 57, - 128, 69, 48, 50, 56, 65, 128, 69, 48, 50, 56, 128, 69, 48, 50, 55, 128, - 69, 48, 50, 54, 128, 69, 48, 50, 53, 128, 69, 48, 50, 52, 128, 69, 48, - 50, 51, 128, 69, 48, 50, 50, 128, 69, 48, 50, 49, 128, 69, 48, 50, 48, - 65, 128, 69, 48, 50, 48, 128, 69, 48, 49, 57, 128, 69, 48, 49, 56, 128, - 69, 48, 49, 55, 65, 128, 69, 48, 49, 55, 128, 69, 48, 49, 54, 65, 128, - 69, 48, 49, 54, 128, 69, 48, 49, 53, 128, 69, 48, 49, 52, 128, 69, 48, - 49, 51, 128, 69, 48, 49, 50, 128, 69, 48, 49, 49, 128, 69, 48, 49, 48, - 128, 69, 48, 48, 57, 65, 128, 69, 48, 48, 57, 128, 69, 48, 48, 56, 65, - 128, 69, 48, 48, 56, 128, 69, 48, 48, 55, 128, 69, 48, 48, 54, 128, 69, - 48, 48, 53, 128, 69, 48, 48, 52, 128, 69, 48, 48, 51, 128, 69, 48, 48, - 50, 128, 69, 48, 48, 49, 128, 69, 45, 77, 65, 73, 204, 68, 90, 90, 72, - 69, 128, 68, 90, 90, 69, 128, 68, 90, 90, 65, 128, 68, 90, 89, 73, 128, - 68, 90, 89, 65, 89, 128, 68, 90, 87, 69, 128, 68, 90, 85, 128, 68, 90, - 79, 128, 68, 90, 74, 69, 128, 68, 90, 73, 84, 65, 128, 68, 90, 73, 128, - 68, 90, 72, 79, 73, 128, 68, 90, 72, 69, 128, 68, 90, 72, 65, 128, 68, - 90, 69, 76, 79, 128, 68, 90, 69, 69, 128, 68, 90, 69, 128, 68, 90, 65, - 89, 128, 68, 90, 65, 65, 128, 68, 90, 65, 128, 68, 90, 128, 68, 218, 68, - 89, 79, 128, 68, 89, 207, 68, 89, 78, 65, 77, 73, 195, 68, 89, 69, 72, - 128, 68, 89, 69, 200, 68, 89, 65, 78, 128, 68, 87, 79, 128, 68, 87, 69, - 128, 68, 87, 65, 128, 68, 86, 85, 77, 89, 193, 68, 86, 79, 69, 84, 79, - 67, 72, 73, 69, 128, 68, 86, 79, 69, 67, 72, 69, 76, 78, 79, 80, 79, 86, - 79, 68, 78, 65, 89, 65, 128, 68, 86, 79, 69, 67, 72, 69, 76, 78, 79, 80, - 79, 86, 79, 68, 78, 65, 89, 193, 68, 86, 79, 69, 67, 72, 69, 76, 78, 79, - 75, 82, 89, 90, 72, 69, 86, 65, 89, 65, 128, 68, 86, 79, 69, 67, 72, 69, - 76, 78, 65, 89, 65, 128, 68, 86, 79, 69, 67, 72, 69, 76, 78, 65, 89, 193, - 68, 86, 73, 83, 86, 65, 82, 65, 128, 68, 86, 68, 128, 68, 86, 193, 68, - 86, 128, 68, 85, 84, 73, 69, 83, 128, 68, 85, 83, 75, 128, 68, 85, 83, - 72, 69, 78, 78, 65, 128, 68, 85, 82, 65, 84, 73, 79, 78, 128, 68, 85, 82, - 50, 128, 68, 85, 80, 79, 78, 68, 73, 85, 211, 68, 85, 79, 88, 128, 68, - 85, 79, 128, 68, 85, 78, 52, 128, 68, 85, 78, 51, 128, 68, 85, 78, 179, - 68, 85, 77, 80, 76, 73, 78, 71, 128, 68, 85, 77, 128, 68, 85, 204, 68, - 85, 72, 128, 68, 85, 71, 85, 68, 128, 68, 85, 199, 68, 85, 68, 65, 128, - 68, 85, 67, 75, 128, 68, 85, 66, 50, 128, 68, 85, 66, 128, 68, 85, 194, - 68, 82, 89, 128, 68, 82, 217, 68, 82, 85, 77, 83, 84, 73, 67, 75, 83, - 128, 68, 82, 85, 77, 128, 68, 82, 85, 205, 68, 82, 79, 80, 83, 128, 68, - 82, 79, 80, 76, 69, 84, 128, 68, 82, 79, 80, 45, 83, 72, 65, 68, 79, 87, - 69, 196, 68, 82, 79, 208, 68, 82, 79, 79, 76, 73, 78, 199, 68, 82, 79, - 77, 69, 68, 65, 82, 217, 68, 82, 73, 86, 69, 128, 68, 82, 73, 86, 197, - 68, 82, 73, 78, 75, 128, 68, 82, 73, 204, 68, 82, 69, 83, 83, 128, 68, - 82, 69, 65, 77, 217, 68, 82, 65, 85, 71, 72, 84, 211, 68, 82, 65, 77, - 128, 68, 82, 65, 205, 68, 82, 65, 71, 79, 78, 128, 68, 82, 65, 71, 79, - 206, 68, 82, 65, 70, 84, 73, 78, 199, 68, 82, 65, 67, 72, 77, 65, 83, - 128, 68, 82, 65, 67, 72, 77, 65, 128, 68, 82, 65, 67, 72, 77, 193, 68, - 79, 87, 78, 87, 65, 82, 68, 83, 128, 68, 79, 87, 78, 87, 65, 82, 68, 211, - 68, 79, 87, 78, 87, 65, 82, 196, 68, 79, 87, 78, 83, 67, 65, 76, 73, 78, - 199, 68, 79, 87, 78, 45, 80, 79, 73, 78, 84, 73, 78, 199, 68, 79, 87, 78, - 128, 68, 79, 86, 69, 128, 68, 79, 86, 197, 68, 79, 85, 71, 72, 78, 85, - 84, 128, 68, 79, 85, 66, 84, 128, 68, 79, 85, 66, 76, 69, 196, 68, 79, - 85, 66, 76, 69, 45, 83, 84, 82, 85, 67, 203, 68, 79, 85, 66, 76, 69, 45, - 76, 73, 78, 69, 196, 68, 79, 85, 66, 76, 69, 45, 76, 73, 78, 197, 68, 79, - 85, 66, 76, 69, 45, 69, 78, 68, 69, 196, 68, 79, 85, 66, 76, 69, 128, 68, - 79, 84, 84, 69, 68, 45, 80, 128, 68, 79, 84, 84, 69, 68, 45, 78, 128, 68, - 79, 84, 84, 69, 68, 45, 76, 128, 68, 79, 84, 84, 69, 68, 128, 68, 79, 84, - 84, 69, 196, 68, 79, 84, 83, 45, 56, 128, 68, 79, 84, 83, 45, 55, 56, - 128, 68, 79, 84, 83, 45, 55, 128, 68, 79, 84, 83, 45, 54, 56, 128, 68, - 79, 84, 83, 45, 54, 55, 56, 128, 68, 79, 84, 83, 45, 54, 55, 128, 68, 79, - 84, 83, 45, 54, 128, 68, 79, 84, 83, 45, 53, 56, 128, 68, 79, 84, 83, 45, - 53, 55, 56, 128, 68, 79, 84, 83, 45, 53, 55, 128, 68, 79, 84, 83, 45, 53, - 54, 56, 128, 68, 79, 84, 83, 45, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, - 53, 54, 55, 128, 68, 79, 84, 83, 45, 53, 54, 128, 68, 79, 84, 83, 45, 53, - 128, 68, 79, 84, 83, 45, 52, 56, 128, 68, 79, 84, 83, 45, 52, 55, 56, - 128, 68, 79, 84, 83, 45, 52, 55, 128, 68, 79, 84, 83, 45, 52, 54, 56, - 128, 68, 79, 84, 83, 45, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 52, 54, - 55, 128, 68, 79, 84, 83, 45, 52, 54, 128, 68, 79, 84, 83, 45, 52, 53, 56, - 128, 68, 79, 84, 83, 45, 52, 53, 55, 56, 128, 68, 79, 84, 83, 45, 52, 53, - 55, 128, 68, 79, 84, 83, 45, 52, 53, 54, 56, 128, 68, 79, 84, 83, 45, 52, - 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 52, 53, 54, 55, 128, 68, 79, 84, - 83, 45, 52, 53, 54, 128, 68, 79, 84, 83, 45, 52, 53, 128, 68, 79, 84, 83, - 45, 52, 128, 68, 79, 84, 83, 45, 51, 56, 128, 68, 79, 84, 83, 45, 51, 55, - 56, 128, 68, 79, 84, 83, 45, 51, 55, 128, 68, 79, 84, 83, 45, 51, 54, 56, - 128, 68, 79, 84, 83, 45, 51, 54, 55, 56, 128, 68, 79, 84, 83, 45, 51, 54, - 55, 128, 68, 79, 84, 83, 45, 51, 54, 128, 68, 79, 84, 83, 45, 51, 53, 56, - 128, 68, 79, 84, 83, 45, 51, 53, 55, 56, 128, 68, 79, 84, 83, 45, 51, 53, - 55, 128, 68, 79, 84, 83, 45, 51, 53, 54, 56, 128, 68, 79, 84, 83, 45, 51, - 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 51, 53, 54, 55, 128, 68, 79, 84, - 83, 45, 51, 53, 54, 128, 68, 79, 84, 83, 45, 51, 53, 128, 68, 79, 84, 83, - 45, 51, 52, 56, 128, 68, 79, 84, 83, 45, 51, 52, 55, 56, 128, 68, 79, 84, - 83, 45, 51, 52, 55, 128, 68, 79, 84, 83, 45, 51, 52, 54, 56, 128, 68, 79, - 84, 83, 45, 51, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 51, 52, 54, 55, - 128, 68, 79, 84, 83, 45, 51, 52, 54, 128, 68, 79, 84, 83, 45, 51, 52, 53, - 56, 128, 68, 79, 84, 83, 45, 51, 52, 53, 55, 56, 128, 68, 79, 84, 83, 45, - 51, 52, 53, 55, 128, 68, 79, 84, 83, 45, 51, 52, 53, 54, 56, 128, 68, 79, - 84, 83, 45, 51, 52, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 51, 52, 53, - 54, 55, 128, 68, 79, 84, 83, 45, 51, 52, 53, 54, 128, 68, 79, 84, 83, 45, - 51, 52, 53, 128, 68, 79, 84, 83, 45, 51, 52, 128, 68, 79, 84, 83, 45, 51, - 128, 68, 79, 84, 83, 45, 50, 56, 128, 68, 79, 84, 83, 45, 50, 55, 56, - 128, 68, 79, 84, 83, 45, 50, 55, 128, 68, 79, 84, 83, 45, 50, 54, 56, + 204, 69, 68, 73, 78, 128, 69, 68, 68, 128, 69, 67, 83, 128, 69, 66, 69, + 70, 73, 76, 73, 128, 69, 65, 83, 84, 69, 82, 206, 69, 65, 83, 84, 128, + 69, 65, 83, 212, 69, 65, 82, 84, 72, 76, 217, 69, 65, 82, 84, 72, 128, + 69, 65, 82, 84, 200, 69, 65, 82, 76, 217, 69, 65, 77, 72, 65, 78, 67, 72, + 79, 76, 76, 128, 69, 65, 71, 76, 69, 128, 69, 65, 68, 72, 65, 68, 72, + 128, 69, 65, 66, 72, 65, 68, 72, 128, 69, 178, 69, 48, 51, 56, 128, 69, + 48, 51, 55, 128, 69, 48, 51, 54, 128, 69, 48, 51, 52, 65, 128, 69, 48, + 51, 52, 128, 69, 48, 51, 51, 128, 69, 48, 51, 50, 128, 69, 48, 51, 49, + 128, 69, 48, 51, 48, 128, 69, 48, 50, 57, 128, 69, 48, 50, 56, 65, 128, + 69, 48, 50, 56, 128, 69, 48, 50, 55, 128, 69, 48, 50, 54, 128, 69, 48, + 50, 53, 128, 69, 48, 50, 52, 128, 69, 48, 50, 51, 128, 69, 48, 50, 50, + 128, 69, 48, 50, 49, 128, 69, 48, 50, 48, 65, 128, 69, 48, 50, 48, 128, + 69, 48, 49, 57, 128, 69, 48, 49, 56, 128, 69, 48, 49, 55, 65, 128, 69, + 48, 49, 55, 128, 69, 48, 49, 54, 65, 128, 69, 48, 49, 54, 128, 69, 48, + 49, 53, 128, 69, 48, 49, 52, 128, 69, 48, 49, 51, 128, 69, 48, 49, 50, + 128, 69, 48, 49, 49, 128, 69, 48, 49, 48, 128, 69, 48, 48, 57, 65, 128, + 69, 48, 48, 57, 128, 69, 48, 48, 56, 65, 128, 69, 48, 48, 56, 128, 69, + 48, 48, 55, 128, 69, 48, 48, 54, 128, 69, 48, 48, 53, 128, 69, 48, 48, + 52, 128, 69, 48, 48, 51, 128, 69, 48, 48, 50, 128, 69, 48, 48, 49, 128, + 69, 45, 77, 65, 73, 204, 68, 90, 90, 72, 69, 128, 68, 90, 90, 69, 128, + 68, 90, 90, 65, 128, 68, 90, 89, 73, 128, 68, 90, 89, 65, 89, 128, 68, + 90, 87, 69, 128, 68, 90, 85, 128, 68, 90, 79, 128, 68, 90, 74, 69, 128, + 68, 90, 73, 84, 65, 128, 68, 90, 73, 128, 68, 90, 72, 79, 73, 128, 68, + 90, 72, 69, 128, 68, 90, 72, 65, 128, 68, 90, 69, 76, 79, 128, 68, 90, + 69, 69, 128, 68, 90, 69, 128, 68, 90, 65, 89, 128, 68, 90, 65, 65, 128, + 68, 90, 65, 128, 68, 90, 128, 68, 218, 68, 89, 79, 128, 68, 89, 207, 68, + 89, 78, 65, 77, 73, 195, 68, 89, 69, 72, 128, 68, 89, 69, 200, 68, 89, + 65, 78, 128, 68, 87, 79, 128, 68, 87, 69, 128, 68, 87, 65, 128, 68, 86, + 85, 77, 89, 193, 68, 86, 79, 69, 84, 79, 67, 72, 73, 69, 128, 68, 86, 79, + 69, 67, 72, 69, 76, 78, 79, 80, 79, 86, 79, 68, 78, 65, 89, 65, 128, 68, + 86, 79, 69, 67, 72, 69, 76, 78, 79, 80, 79, 86, 79, 68, 78, 65, 89, 193, + 68, 86, 79, 69, 67, 72, 69, 76, 78, 79, 75, 82, 89, 90, 72, 69, 86, 65, + 89, 65, 128, 68, 86, 79, 69, 67, 72, 69, 76, 78, 65, 89, 65, 128, 68, 86, + 79, 69, 67, 72, 69, 76, 78, 65, 89, 193, 68, 86, 73, 83, 86, 65, 82, 65, + 128, 68, 86, 68, 128, 68, 86, 193, 68, 86, 128, 68, 85, 84, 73, 69, 83, + 128, 68, 85, 83, 75, 128, 68, 85, 83, 72, 69, 78, 78, 65, 128, 68, 85, + 82, 65, 84, 73, 79, 78, 128, 68, 85, 82, 50, 128, 68, 85, 80, 79, 78, 68, + 73, 85, 211, 68, 85, 79, 88, 128, 68, 85, 79, 128, 68, 85, 78, 52, 128, + 68, 85, 78, 51, 128, 68, 85, 78, 179, 68, 85, 77, 80, 76, 73, 78, 71, + 128, 68, 85, 77, 128, 68, 85, 204, 68, 85, 72, 128, 68, 85, 71, 85, 68, + 128, 68, 85, 199, 68, 85, 68, 65, 128, 68, 85, 67, 75, 128, 68, 85, 66, + 50, 128, 68, 85, 66, 128, 68, 85, 194, 68, 82, 89, 128, 68, 82, 217, 68, + 82, 85, 77, 83, 84, 73, 67, 75, 83, 128, 68, 82, 85, 77, 128, 68, 82, 85, + 205, 68, 82, 79, 80, 83, 128, 68, 82, 79, 80, 76, 69, 84, 128, 68, 82, + 79, 80, 45, 83, 72, 65, 68, 79, 87, 69, 196, 68, 82, 79, 208, 68, 82, 79, + 79, 76, 73, 78, 199, 68, 82, 79, 77, 69, 68, 65, 82, 217, 68, 82, 73, 86, + 69, 128, 68, 82, 73, 86, 197, 68, 82, 73, 78, 75, 128, 68, 82, 73, 204, + 68, 82, 69, 83, 83, 128, 68, 82, 69, 65, 77, 217, 68, 82, 65, 85, 71, 72, + 84, 211, 68, 82, 65, 77, 128, 68, 82, 65, 205, 68, 82, 65, 71, 79, 78, + 128, 68, 82, 65, 71, 79, 206, 68, 82, 65, 70, 84, 73, 78, 199, 68, 82, + 65, 67, 72, 77, 65, 83, 128, 68, 82, 65, 67, 72, 77, 65, 128, 68, 82, 65, + 67, 72, 77, 193, 68, 79, 87, 78, 87, 65, 82, 68, 83, 128, 68, 79, 87, 78, + 87, 65, 82, 68, 211, 68, 79, 87, 78, 87, 65, 82, 196, 68, 79, 87, 78, 83, + 67, 65, 76, 73, 78, 199, 68, 79, 87, 78, 45, 80, 79, 73, 78, 84, 73, 78, + 199, 68, 79, 87, 78, 128, 68, 79, 86, 69, 128, 68, 79, 86, 197, 68, 79, + 85, 71, 72, 78, 85, 84, 128, 68, 79, 85, 66, 84, 128, 68, 79, 85, 66, 76, + 69, 196, 68, 79, 85, 66, 76, 69, 45, 83, 84, 82, 85, 67, 203, 68, 79, 85, + 66, 76, 69, 45, 76, 73, 78, 69, 196, 68, 79, 85, 66, 76, 69, 45, 76, 73, + 78, 197, 68, 79, 85, 66, 76, 69, 45, 69, 78, 68, 69, 196, 68, 79, 85, 66, + 76, 69, 128, 68, 79, 84, 84, 69, 68, 45, 80, 128, 68, 79, 84, 84, 69, 68, + 45, 78, 128, 68, 79, 84, 84, 69, 68, 45, 76, 128, 68, 79, 84, 84, 69, 68, + 128, 68, 79, 84, 84, 69, 196, 68, 79, 84, 83, 45, 56, 128, 68, 79, 84, + 83, 45, 55, 56, 128, 68, 79, 84, 83, 45, 55, 128, 68, 79, 84, 83, 45, 54, + 56, 128, 68, 79, 84, 83, 45, 54, 55, 56, 128, 68, 79, 84, 83, 45, 54, 55, + 128, 68, 79, 84, 83, 45, 54, 128, 68, 79, 84, 83, 45, 53, 56, 128, 68, + 79, 84, 83, 45, 53, 55, 56, 128, 68, 79, 84, 83, 45, 53, 55, 128, 68, 79, + 84, 83, 45, 53, 54, 56, 128, 68, 79, 84, 83, 45, 53, 54, 55, 56, 128, 68, + 79, 84, 83, 45, 53, 54, 55, 128, 68, 79, 84, 83, 45, 53, 54, 128, 68, 79, + 84, 83, 45, 53, 128, 68, 79, 84, 83, 45, 52, 56, 128, 68, 79, 84, 83, 45, + 52, 55, 56, 128, 68, 79, 84, 83, 45, 52, 55, 128, 68, 79, 84, 83, 45, 52, + 54, 56, 128, 68, 79, 84, 83, 45, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, + 52, 54, 55, 128, 68, 79, 84, 83, 45, 52, 54, 128, 68, 79, 84, 83, 45, 52, + 53, 56, 128, 68, 79, 84, 83, 45, 52, 53, 55, 56, 128, 68, 79, 84, 83, 45, + 52, 53, 55, 128, 68, 79, 84, 83, 45, 52, 53, 54, 56, 128, 68, 79, 84, 83, + 45, 52, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 52, 53, 54, 55, 128, 68, + 79, 84, 83, 45, 52, 53, 54, 128, 68, 79, 84, 83, 45, 52, 53, 128, 68, 79, + 84, 83, 45, 52, 128, 68, 79, 84, 83, 45, 51, 56, 128, 68, 79, 84, 83, 45, + 51, 55, 56, 128, 68, 79, 84, 83, 45, 51, 55, 128, 68, 79, 84, 83, 45, 51, + 54, 56, 128, 68, 79, 84, 83, 45, 51, 54, 55, 56, 128, 68, 79, 84, 83, 45, + 51, 54, 55, 128, 68, 79, 84, 83, 45, 51, 54, 128, 68, 79, 84, 83, 45, 51, + 53, 56, 128, 68, 79, 84, 83, 45, 51, 53, 55, 56, 128, 68, 79, 84, 83, 45, + 51, 53, 55, 128, 68, 79, 84, 83, 45, 51, 53, 54, 56, 128, 68, 79, 84, 83, + 45, 51, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 51, 53, 54, 55, 128, 68, + 79, 84, 83, 45, 51, 53, 54, 128, 68, 79, 84, 83, 45, 51, 53, 128, 68, 79, + 84, 83, 45, 51, 52, 56, 128, 68, 79, 84, 83, 45, 51, 52, 55, 56, 128, 68, + 79, 84, 83, 45, 51, 52, 55, 128, 68, 79, 84, 83, 45, 51, 52, 54, 56, 128, + 68, 79, 84, 83, 45, 51, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 51, 52, + 54, 55, 128, 68, 79, 84, 83, 45, 51, 52, 54, 128, 68, 79, 84, 83, 45, 51, + 52, 53, 56, 128, 68, 79, 84, 83, 45, 51, 52, 53, 55, 56, 128, 68, 79, 84, + 83, 45, 51, 52, 53, 55, 128, 68, 79, 84, 83, 45, 51, 52, 53, 54, 56, 128, + 68, 79, 84, 83, 45, 51, 52, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 51, + 52, 53, 54, 55, 128, 68, 79, 84, 83, 45, 51, 52, 53, 54, 128, 68, 79, 84, + 83, 45, 51, 52, 53, 128, 68, 79, 84, 83, 45, 51, 52, 128, 68, 79, 84, 83, + 45, 51, 128, 68, 79, 84, 83, 45, 50, 56, 128, 68, 79, 84, 83, 45, 50, 55, + 56, 128, 68, 79, 84, 83, 45, 50, 55, 128, 68, 79, 84, 83, 45, 50, 54, 56, 128, 68, 79, 84, 83, 45, 50, 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 54, 55, 128, 68, 79, 84, 83, 45, 50, 54, 128, 68, 79, 84, 83, 45, 50, 53, 56, 128, 68, 79, 84, 83, 45, 50, 53, 55, 56, 128, 68, 79, 84, 83, 45, 50, 53, @@ -4687,173 +4669,172 @@ static const unsigned char lexicon[] = { 128, 68, 79, 84, 83, 45, 49, 50, 51, 128, 68, 79, 84, 83, 45, 49, 50, 128, 68, 79, 84, 83, 45, 49, 128, 68, 79, 84, 83, 128, 68, 79, 84, 76, 69, 83, 211, 68, 79, 82, 85, 128, 68, 79, 82, 79, 77, 197, 68, 79, 79, - 82, 128, 68, 79, 79, 78, 71, 128, 68, 79, 78, 75, 69, 89, 128, 68, 79, - 78, 71, 128, 68, 79, 77, 73, 78, 207, 68, 79, 77, 65, 73, 206, 68, 79, - 76, 80, 72, 73, 78, 128, 68, 79, 76, 76, 83, 128, 68, 79, 76, 76, 65, - 210, 68, 79, 76, 73, 85, 77, 128, 68, 79, 75, 77, 65, 73, 128, 68, 79, - 73, 84, 128, 68, 79, 73, 78, 199, 68, 79, 73, 128, 68, 79, 71, 82, 193, - 68, 79, 71, 128, 68, 79, 199, 68, 79, 69, 211, 68, 79, 68, 79, 128, 68, - 79, 68, 69, 75, 65, 84, 65, 128, 68, 79, 67, 85, 77, 69, 78, 84, 128, 68, - 79, 67, 85, 77, 69, 78, 212, 68, 79, 66, 82, 79, 128, 68, 79, 65, 67, 72, - 65, 83, 72, 77, 69, 69, 128, 68, 79, 65, 67, 72, 65, 83, 72, 77, 69, 197, - 68, 79, 65, 128, 68, 79, 45, 79, 128, 68, 78, 193, 68, 77, 128, 68, 205, - 68, 76, 85, 128, 68, 76, 79, 128, 68, 76, 73, 128, 68, 76, 72, 89, 65, - 128, 68, 76, 72, 65, 128, 68, 76, 69, 69, 128, 68, 76, 65, 128, 68, 76, - 128, 68, 75, 65, 82, 128, 68, 75, 65, 210, 68, 74, 69, 82, 86, 73, 128, - 68, 74, 69, 82, 86, 128, 68, 74, 69, 128, 68, 74, 65, 128, 68, 73, 90, - 90, 217, 68, 73, 89, 193, 68, 73, 86, 79, 82, 67, 197, 68, 73, 86, 73, - 83, 73, 79, 78, 128, 68, 73, 86, 73, 83, 73, 79, 206, 68, 73, 86, 73, 78, - 199, 68, 73, 86, 73, 78, 65, 84, 73, 79, 78, 128, 68, 73, 86, 73, 68, 69, - 83, 128, 68, 73, 86, 73, 68, 69, 82, 83, 128, 68, 73, 86, 73, 68, 69, 82, - 128, 68, 73, 86, 73, 68, 69, 196, 68, 73, 86, 73, 68, 69, 128, 68, 73, - 86, 73, 68, 197, 68, 73, 86, 69, 211, 68, 73, 86, 69, 82, 71, 69, 78, 67, - 69, 128, 68, 73, 84, 84, 207, 68, 73, 83, 84, 79, 82, 84, 73, 79, 78, - 128, 68, 73, 83, 84, 73, 78, 71, 85, 73, 83, 72, 128, 68, 73, 83, 84, 73, - 76, 76, 128, 68, 73, 83, 83, 79, 76, 86, 69, 45, 50, 128, 68, 73, 83, 83, - 79, 76, 86, 69, 128, 68, 73, 83, 80, 85, 84, 69, 196, 68, 73, 83, 80, 69, - 82, 83, 73, 79, 78, 128, 68, 73, 83, 75, 128, 68, 73, 83, 73, 77, 79, 85, - 128, 68, 73, 83, 72, 128, 68, 73, 83, 71, 85, 73, 83, 69, 196, 68, 73, - 83, 67, 79, 78, 84, 73, 78, 85, 79, 85, 211, 68, 73, 83, 195, 68, 73, 83, - 65, 80, 80, 79, 73, 78, 84, 69, 196, 68, 73, 83, 65, 66, 76, 69, 196, 68, - 73, 82, 71, 193, 68, 73, 82, 69, 67, 84, 76, 217, 68, 73, 82, 69, 67, 84, - 73, 79, 78, 65, 204, 68, 73, 82, 69, 67, 84, 73, 79, 206, 68, 73, 80, 84, - 69, 128, 68, 73, 80, 80, 69, 82, 128, 68, 73, 80, 76, 79, 85, 78, 128, - 68, 73, 80, 76, 73, 128, 68, 73, 80, 76, 201, 68, 73, 78, 71, 66, 65, - 212, 68, 73, 206, 68, 73, 77, 77, 73, 78, 71, 128, 68, 73, 77, 73, 78, - 85, 84, 73, 79, 78, 45, 51, 128, 68, 73, 77, 73, 78, 85, 84, 73, 79, 78, - 45, 50, 128, 68, 73, 77, 73, 78, 85, 84, 73, 79, 78, 45, 49, 128, 68, 73, - 77, 73, 78, 73, 83, 72, 77, 69, 78, 84, 128, 68, 73, 77, 73, 68, 73, 193, - 68, 73, 77, 69, 78, 83, 73, 79, 78, 65, 204, 68, 73, 77, 69, 78, 83, 73, - 79, 206, 68, 73, 77, 50, 128, 68, 73, 77, 178, 68, 73, 76, 128, 68, 73, - 71, 82, 65, 80, 72, 128, 68, 73, 71, 82, 65, 80, 200, 68, 73, 71, 82, 65, - 77, 77, 79, 211, 68, 73, 71, 82, 65, 77, 77, 193, 68, 73, 71, 82, 65, - 205, 68, 73, 71, 79, 82, 71, 79, 78, 128, 68, 73, 71, 79, 82, 71, 79, - 206, 68, 73, 71, 73, 84, 83, 128, 68, 73, 71, 65, 77, 77, 65, 128, 68, - 73, 71, 193, 68, 73, 70, 84, 79, 71, 71, 79, 211, 68, 73, 70, 79, 78, 73, - 65, 83, 128, 68, 73, 70, 70, 73, 67, 85, 76, 84, 217, 68, 73, 70, 70, 73, - 67, 85, 76, 84, 73, 69, 83, 128, 68, 73, 70, 70, 69, 82, 69, 78, 84, 73, - 65, 76, 128, 68, 73, 70, 70, 69, 82, 69, 78, 67, 197, 68, 73, 70, 65, 84, - 128, 68, 73, 69, 83, 73, 83, 128, 68, 73, 69, 83, 73, 211, 68, 73, 69, - 83, 69, 204, 68, 73, 69, 80, 128, 68, 73, 197, 68, 73, 66, 128, 68, 73, - 65, 84, 79, 78, 79, 206, 68, 73, 65, 84, 79, 78, 73, 75, 201, 68, 73, 65, - 83, 84, 79, 76, 201, 68, 73, 65, 77, 79, 78, 68, 83, 128, 68, 73, 65, 77, - 79, 78, 68, 128, 68, 73, 65, 77, 79, 78, 196, 68, 73, 65, 77, 69, 84, 69, - 210, 68, 73, 65, 76, 89, 84, 73, 75, 65, 128, 68, 73, 65, 76, 89, 84, 73, - 75, 193, 68, 73, 65, 76, 69, 67, 84, 45, 208, 68, 73, 65, 71, 79, 78, 65, - 76, 128, 68, 73, 65, 69, 82, 69, 83, 73, 90, 69, 196, 68, 73, 65, 69, 82, - 69, 83, 73, 83, 45, 82, 73, 78, 71, 128, 68, 73, 65, 69, 82, 69, 83, 73, - 83, 128, 68, 73, 65, 69, 82, 69, 83, 73, 211, 68, 72, 79, 85, 128, 68, - 72, 79, 79, 128, 68, 72, 79, 128, 68, 72, 73, 73, 128, 68, 72, 72, 85, - 128, 68, 72, 72, 79, 79, 128, 68, 72, 72, 79, 128, 68, 72, 72, 73, 128, - 68, 72, 72, 69, 69, 128, 68, 72, 72, 69, 128, 68, 72, 72, 65, 128, 68, - 72, 69, 69, 128, 68, 72, 65, 82, 77, 65, 128, 68, 72, 65, 77, 69, 68, 72, - 128, 68, 72, 65, 76, 69, 84, 72, 128, 68, 72, 65, 76, 65, 84, 72, 128, - 68, 72, 65, 76, 128, 68, 72, 65, 68, 72, 69, 128, 68, 72, 65, 65, 76, 85, - 128, 68, 72, 65, 65, 128, 68, 72, 65, 128, 68, 69, 90, 200, 68, 69, 89, - 84, 69, 82, 79, 213, 68, 69, 89, 84, 69, 82, 79, 211, 68, 69, 88, 73, 65, - 128, 68, 69, 86, 73, 67, 197, 68, 69, 86, 69, 76, 79, 80, 77, 69, 78, 84, - 128, 68, 69, 85, 78, 71, 128, 68, 69, 83, 75, 84, 79, 208, 68, 69, 83, - 203, 68, 69, 83, 73, 71, 78, 128, 68, 69, 83, 73, 128, 68, 69, 83, 69, - 82, 84, 128, 68, 69, 83, 69, 82, 212, 68, 69, 83, 69, 82, 69, 212, 68, - 69, 83, 67, 82, 73, 80, 84, 73, 79, 206, 68, 69, 83, 67, 69, 78, 68, 73, - 78, 199, 68, 69, 83, 67, 69, 78, 68, 69, 82, 128, 68, 69, 82, 69, 84, 45, - 72, 73, 68, 69, 84, 128, 68, 69, 82, 69, 84, 128, 68, 69, 82, 69, 76, 73, - 67, 212, 68, 69, 82, 66, 73, 84, 83, 65, 128, 68, 69, 80, 84, 72, 128, - 68, 69, 80, 65, 82, 84, 85, 82, 69, 128, 68, 69, 80, 65, 82, 84, 77, 69, - 78, 212, 68, 69, 80, 65, 82, 84, 73, 78, 199, 68, 69, 78, 84, 73, 83, 84, - 82, 217, 68, 69, 78, 84, 65, 204, 68, 69, 78, 79, 77, 73, 78, 65, 84, 79, - 82, 128, 68, 69, 78, 79, 77, 73, 78, 65, 84, 79, 210, 68, 69, 78, 78, 69, - 78, 128, 68, 69, 78, 71, 128, 68, 69, 78, 197, 68, 69, 78, 65, 82, 73, - 85, 211, 68, 69, 77, 69, 83, 84, 86, 69, 78, 78, 217, 68, 69, 76, 84, 65, - 128, 68, 69, 76, 84, 193, 68, 69, 76, 84, 128, 68, 69, 76, 80, 72, 73, - 195, 68, 69, 76, 73, 86, 69, 82, 217, 68, 69, 76, 73, 86, 69, 82, 65, 78, - 67, 69, 128, 68, 69, 76, 73, 77, 73, 84, 69, 82, 128, 68, 69, 76, 73, 77, - 73, 84, 69, 210, 68, 69, 76, 73, 67, 73, 79, 85, 211, 68, 69, 76, 69, 84, - 73, 79, 206, 68, 69, 76, 69, 84, 69, 128, 68, 69, 76, 69, 84, 197, 68, - 69, 75, 65, 128, 68, 69, 75, 128, 68, 69, 73, 128, 68, 69, 72, 73, 128, - 68, 69, 71, 82, 69, 69, 83, 128, 68, 69, 71, 82, 69, 197, 68, 69, 70, 73, - 78, 73, 84, 73, 79, 78, 128, 68, 69, 70, 69, 67, 84, 73, 86, 69, 78, 69, - 83, 211, 68, 69, 69, 82, 128, 68, 69, 69, 80, 76, 89, 128, 68, 69, 69, - 76, 128, 68, 69, 67, 82, 69, 83, 67, 69, 78, 68, 79, 128, 68, 69, 67, 82, - 69, 65, 83, 69, 128, 68, 69, 67, 82, 69, 65, 83, 197, 68, 69, 67, 79, 82, - 65, 84, 73, 86, 197, 68, 69, 67, 79, 82, 65, 84, 73, 79, 78, 128, 68, 69, - 67, 73, 83, 73, 86, 69, 78, 69, 83, 83, 128, 68, 69, 67, 73, 77, 65, 204, - 68, 69, 67, 73, 68, 85, 79, 85, 211, 68, 69, 67, 69, 77, 66, 69, 82, 128, - 68, 69, 67, 65, 89, 69, 68, 128, 68, 69, 66, 73, 212, 68, 69, 65, 84, 72, - 128, 68, 69, 65, 198, 68, 69, 65, 68, 128, 68, 68, 87, 65, 128, 68, 68, - 85, 88, 128, 68, 68, 85, 84, 128, 68, 68, 85, 82, 88, 128, 68, 68, 85, - 82, 128, 68, 68, 85, 80, 128, 68, 68, 85, 79, 88, 128, 68, 68, 85, 79, - 80, 128, 68, 68, 85, 79, 128, 68, 68, 85, 128, 68, 68, 79, 88, 128, 68, - 68, 79, 84, 128, 68, 68, 79, 80, 128, 68, 68, 79, 65, 128, 68, 68, 73, - 88, 128, 68, 68, 73, 84, 128, 68, 68, 73, 80, 128, 68, 68, 73, 69, 88, - 128, 68, 68, 73, 69, 80, 128, 68, 68, 73, 69, 128, 68, 68, 73, 128, 68, - 68, 72, 85, 128, 68, 68, 72, 79, 128, 68, 68, 72, 69, 69, 128, 68, 68, - 72, 69, 128, 68, 68, 72, 65, 65, 128, 68, 68, 72, 65, 128, 68, 68, 69, - 88, 128, 68, 68, 69, 80, 128, 68, 68, 69, 69, 128, 68, 68, 69, 128, 68, - 68, 68, 72, 65, 128, 68, 68, 68, 65, 128, 68, 68, 65, 89, 65, 78, 78, 65, - 128, 68, 68, 65, 88, 128, 68, 68, 65, 84, 128, 68, 68, 65, 80, 128, 68, - 68, 65, 76, 128, 68, 68, 65, 204, 68, 68, 65, 72, 65, 76, 128, 68, 68, - 65, 72, 65, 204, 68, 68, 65, 65, 128, 68, 67, 83, 128, 68, 67, 72, 69, - 128, 68, 67, 52, 128, 68, 67, 51, 128, 68, 67, 50, 128, 68, 67, 49, 128, - 68, 194, 68, 65, 89, 45, 78, 73, 71, 72, 84, 128, 68, 65, 217, 68, 65, - 87, 66, 128, 68, 65, 86, 73, 89, 65, 78, 73, 128, 68, 65, 86, 73, 68, - 128, 68, 65, 84, 197, 68, 65, 83, 73, 65, 128, 68, 65, 83, 73, 193, 68, - 65, 83, 72, 69, 196, 68, 65, 83, 72, 128, 68, 65, 83, 200, 68, 65, 83, - 69, 73, 65, 128, 68, 65, 82, 84, 128, 68, 65, 82, 75, 69, 78, 73, 78, 71, - 128, 68, 65, 82, 75, 69, 78, 73, 78, 199, 68, 65, 82, 203, 68, 65, 82, - 71, 65, 128, 68, 65, 82, 65, 52, 128, 68, 65, 82, 65, 51, 128, 68, 65, - 82, 128, 68, 65, 80, 45, 80, 82, 65, 205, 68, 65, 80, 45, 80, 73, 201, - 68, 65, 80, 45, 77, 85, 79, 217, 68, 65, 80, 45, 66, 85, 79, 206, 68, 65, - 80, 45, 66, 69, 201, 68, 65, 208, 68, 65, 78, 84, 65, 89, 65, 76, 65, 78, - 128, 68, 65, 78, 84, 65, 74, 193, 68, 65, 78, 71, 79, 128, 68, 65, 78, - 71, 128, 68, 65, 78, 199, 68, 65, 78, 68, 65, 128, 68, 65, 78, 67, 73, - 78, 71, 128, 68, 65, 78, 67, 69, 82, 128, 68, 65, 77, 80, 128, 68, 65, - 77, 208, 68, 65, 77, 77, 65, 84, 65, 78, 128, 68, 65, 77, 77, 65, 84, 65, - 206, 68, 65, 77, 77, 65, 128, 68, 65, 77, 77, 193, 68, 65, 77, 65, 82, - 85, 128, 68, 65, 77, 65, 71, 69, 68, 128, 68, 65, 77, 65, 71, 69, 196, - 68, 65, 76, 69, 84, 72, 45, 82, 69, 83, 72, 128, 68, 65, 76, 69, 84, 128, - 68, 65, 76, 69, 212, 68, 65, 76, 68, 65, 128, 68, 65, 76, 65, 84, 72, - 128, 68, 65, 76, 65, 84, 200, 68, 65, 76, 65, 84, 128, 68, 65, 73, 82, - 128, 68, 65, 73, 78, 71, 128, 68, 65, 73, 128, 68, 65, 72, 89, 65, 65, - 85, 83, 72, 45, 50, 128, 68, 65, 72, 89, 65, 65, 85, 83, 72, 128, 68, 65, - 71, 83, 128, 68, 65, 71, 71, 69, 82, 128, 68, 65, 71, 71, 69, 210, 68, - 65, 71, 69, 83, 72, 128, 68, 65, 71, 69, 83, 200, 68, 65, 71, 66, 65, 83, - 73, 78, 78, 65, 128, 68, 65, 71, 65, 218, 68, 65, 71, 65, 76, 71, 65, - 128, 68, 65, 71, 51, 128, 68, 65, 199, 68, 65, 69, 78, 71, 128, 68, 65, - 69, 199, 68, 65, 68, 128, 68, 65, 196, 68, 65, 65, 83, 85, 128, 68, 65, - 65, 76, 73, 128, 68, 65, 65, 68, 72, 85, 128, 68, 48, 54, 55, 72, 128, - 68, 48, 54, 55, 71, 128, 68, 48, 54, 55, 70, 128, 68, 48, 54, 55, 69, - 128, 68, 48, 54, 55, 68, 128, 68, 48, 54, 55, 67, 128, 68, 48, 54, 55, - 66, 128, 68, 48, 54, 55, 65, 128, 68, 48, 54, 55, 128, 68, 48, 54, 54, - 128, 68, 48, 54, 53, 128, 68, 48, 54, 52, 128, 68, 48, 54, 51, 128, 68, - 48, 54, 50, 128, 68, 48, 54, 49, 128, 68, 48, 54, 48, 128, 68, 48, 53, - 57, 128, 68, 48, 53, 56, 128, 68, 48, 53, 55, 128, 68, 48, 53, 54, 128, - 68, 48, 53, 53, 128, 68, 48, 53, 52, 65, 128, 68, 48, 53, 52, 128, 68, - 48, 53, 51, 128, 68, 48, 53, 50, 65, 128, 68, 48, 53, 50, 128, 68, 48, - 53, 49, 128, 68, 48, 53, 48, 73, 128, 68, 48, 53, 48, 72, 128, 68, 48, - 53, 48, 71, 128, 68, 48, 53, 48, 70, 128, 68, 48, 53, 48, 69, 128, 68, - 48, 53, 48, 68, 128, 68, 48, 53, 48, 67, 128, 68, 48, 53, 48, 66, 128, - 68, 48, 53, 48, 65, 128, 68, 48, 53, 48, 128, 68, 48, 52, 57, 128, 68, - 48, 52, 56, 65, 128, 68, 48, 52, 56, 128, 68, 48, 52, 55, 128, 68, 48, - 52, 54, 65, 128, 68, 48, 52, 54, 128, 68, 48, 52, 53, 128, 68, 48, 52, - 52, 128, 68, 48, 52, 51, 128, 68, 48, 52, 50, 128, 68, 48, 52, 49, 128, - 68, 48, 52, 48, 128, 68, 48, 51, 57, 128, 68, 48, 51, 56, 128, 68, 48, - 51, 55, 128, 68, 48, 51, 54, 128, 68, 48, 51, 53, 128, 68, 48, 51, 52, - 65, 128, 68, 48, 51, 52, 128, 68, 48, 51, 51, 128, 68, 48, 51, 50, 128, - 68, 48, 51, 49, 65, 128, 68, 48, 51, 49, 128, 68, 48, 51, 48, 128, 68, - 48, 50, 57, 128, 68, 48, 50, 56, 128, 68, 48, 50, 55, 65, 128, 68, 48, - 50, 55, 128, 68, 48, 50, 54, 128, 68, 48, 50, 53, 128, 68, 48, 50, 52, - 128, 68, 48, 50, 51, 128, 68, 48, 50, 50, 128, 68, 48, 50, 49, 128, 68, - 48, 50, 48, 128, 68, 48, 49, 57, 128, 68, 48, 49, 56, 128, 68, 48, 49, - 55, 128, 68, 48, 49, 54, 128, 68, 48, 49, 53, 128, 68, 48, 49, 52, 128, - 68, 48, 49, 51, 128, 68, 48, 49, 50, 128, 68, 48, 49, 49, 128, 68, 48, - 49, 48, 128, 68, 48, 48, 57, 128, 68, 48, 48, 56, 65, 128, 68, 48, 48, - 56, 128, 68, 48, 48, 55, 128, 68, 48, 48, 54, 128, 68, 48, 48, 53, 128, - 68, 48, 48, 52, 128, 68, 48, 48, 51, 128, 68, 48, 48, 50, 128, 68, 48, - 48, 49, 128, 67, 89, 88, 128, 67, 89, 84, 128, 67, 89, 82, 88, 128, 67, - 89, 82, 69, 78, 65, 73, 195, 67, 89, 82, 128, 67, 89, 80, 82, 79, 45, 77, - 73, 78, 79, 65, 206, 67, 89, 80, 82, 73, 79, 212, 67, 89, 80, 69, 82, 85, - 83, 128, 67, 89, 80, 128, 67, 89, 76, 73, 78, 68, 82, 73, 67, 73, 84, 89, + 82, 128, 68, 79, 79, 78, 71, 128, 68, 79, 78, 71, 128, 68, 79, 77, 73, + 78, 207, 68, 79, 77, 65, 73, 206, 68, 79, 76, 80, 72, 73, 78, 128, 68, + 79, 76, 76, 83, 128, 68, 79, 76, 76, 65, 210, 68, 79, 76, 73, 85, 77, + 128, 68, 79, 75, 77, 65, 73, 128, 68, 79, 73, 84, 128, 68, 79, 73, 78, + 199, 68, 79, 73, 128, 68, 79, 71, 82, 193, 68, 79, 71, 128, 68, 79, 199, + 68, 79, 69, 211, 68, 79, 68, 79, 128, 68, 79, 68, 69, 75, 65, 84, 65, + 128, 68, 79, 67, 85, 77, 69, 78, 84, 128, 68, 79, 67, 85, 77, 69, 78, + 212, 68, 79, 66, 82, 79, 128, 68, 79, 65, 67, 72, 65, 83, 72, 77, 69, 69, + 128, 68, 79, 65, 67, 72, 65, 83, 72, 77, 69, 197, 68, 79, 65, 128, 68, + 79, 45, 79, 128, 68, 78, 193, 68, 77, 128, 68, 205, 68, 76, 85, 128, 68, + 76, 79, 128, 68, 76, 73, 128, 68, 76, 72, 89, 65, 128, 68, 76, 72, 65, + 128, 68, 76, 69, 69, 128, 68, 76, 65, 128, 68, 76, 128, 68, 75, 65, 82, + 128, 68, 75, 65, 210, 68, 74, 69, 82, 86, 73, 128, 68, 74, 69, 82, 86, + 128, 68, 74, 69, 128, 68, 74, 65, 128, 68, 73, 90, 90, 217, 68, 73, 89, + 193, 68, 73, 86, 79, 82, 67, 197, 68, 73, 86, 73, 83, 73, 79, 78, 128, + 68, 73, 86, 73, 83, 73, 79, 206, 68, 73, 86, 73, 78, 199, 68, 73, 86, 73, + 78, 65, 84, 73, 79, 78, 128, 68, 73, 86, 73, 68, 69, 83, 128, 68, 73, 86, + 73, 68, 69, 82, 83, 128, 68, 73, 86, 73, 68, 69, 82, 128, 68, 73, 86, 73, + 68, 69, 196, 68, 73, 86, 73, 68, 69, 128, 68, 73, 86, 73, 68, 197, 68, + 73, 86, 69, 211, 68, 73, 86, 69, 82, 71, 69, 78, 67, 69, 128, 68, 73, 84, + 84, 207, 68, 73, 83, 84, 79, 82, 84, 73, 79, 78, 128, 68, 73, 83, 84, 73, + 78, 71, 85, 73, 83, 72, 128, 68, 73, 83, 84, 73, 76, 76, 128, 68, 73, 83, + 83, 79, 76, 86, 69, 45, 50, 128, 68, 73, 83, 83, 79, 76, 86, 69, 128, 68, + 73, 83, 80, 85, 84, 69, 196, 68, 73, 83, 80, 69, 82, 83, 73, 79, 78, 128, + 68, 73, 83, 75, 128, 68, 73, 83, 73, 77, 79, 85, 128, 68, 73, 83, 72, + 128, 68, 73, 83, 71, 85, 73, 83, 69, 196, 68, 73, 83, 67, 79, 78, 84, 73, + 78, 85, 79, 85, 211, 68, 73, 83, 195, 68, 73, 83, 65, 80, 80, 79, 73, 78, + 84, 69, 196, 68, 73, 83, 65, 66, 76, 69, 196, 68, 73, 82, 71, 193, 68, + 73, 82, 69, 67, 84, 76, 217, 68, 73, 82, 69, 67, 84, 73, 79, 78, 65, 204, + 68, 73, 82, 69, 67, 84, 73, 79, 206, 68, 73, 80, 84, 69, 128, 68, 73, 80, + 80, 69, 82, 128, 68, 73, 80, 76, 79, 85, 78, 128, 68, 73, 80, 76, 73, + 128, 68, 73, 80, 76, 201, 68, 73, 78, 71, 66, 65, 212, 68, 73, 206, 68, + 73, 77, 77, 73, 78, 71, 128, 68, 73, 77, 73, 78, 85, 84, 73, 79, 78, 45, + 51, 128, 68, 73, 77, 73, 78, 85, 84, 73, 79, 78, 45, 50, 128, 68, 73, 77, + 73, 78, 85, 84, 73, 79, 78, 45, 49, 128, 68, 73, 77, 73, 78, 73, 83, 72, + 77, 69, 78, 84, 128, 68, 73, 77, 73, 68, 73, 193, 68, 73, 77, 69, 78, 83, + 73, 79, 78, 65, 204, 68, 73, 77, 69, 78, 83, 73, 79, 206, 68, 73, 77, 50, + 128, 68, 73, 77, 178, 68, 73, 76, 128, 68, 73, 71, 82, 65, 80, 72, 128, + 68, 73, 71, 82, 65, 80, 200, 68, 73, 71, 82, 65, 77, 77, 79, 211, 68, 73, + 71, 82, 65, 77, 77, 193, 68, 73, 71, 82, 65, 205, 68, 73, 71, 79, 82, 71, + 79, 78, 128, 68, 73, 71, 79, 82, 71, 79, 206, 68, 73, 71, 73, 84, 83, + 128, 68, 73, 71, 65, 77, 77, 65, 128, 68, 73, 71, 193, 68, 73, 70, 84, + 79, 71, 71, 79, 211, 68, 73, 70, 79, 78, 73, 65, 83, 128, 68, 73, 70, 70, + 73, 67, 85, 76, 84, 217, 68, 73, 70, 70, 73, 67, 85, 76, 84, 73, 69, 83, + 128, 68, 73, 70, 70, 69, 82, 69, 78, 84, 73, 65, 76, 128, 68, 73, 70, 70, + 69, 82, 69, 78, 67, 197, 68, 73, 70, 65, 84, 128, 68, 73, 69, 83, 73, 83, + 128, 68, 73, 69, 83, 73, 211, 68, 73, 69, 83, 69, 204, 68, 73, 69, 80, + 128, 68, 73, 197, 68, 73, 66, 128, 68, 73, 65, 84, 79, 78, 79, 206, 68, + 73, 65, 84, 79, 78, 73, 75, 201, 68, 73, 65, 83, 84, 79, 76, 201, 68, 73, + 65, 77, 79, 78, 68, 83, 128, 68, 73, 65, 77, 79, 78, 68, 128, 68, 73, 65, + 77, 79, 78, 196, 68, 73, 65, 77, 69, 84, 69, 210, 68, 73, 65, 76, 89, 84, + 73, 75, 65, 128, 68, 73, 65, 76, 89, 84, 73, 75, 193, 68, 73, 65, 76, 69, + 67, 84, 45, 208, 68, 73, 65, 71, 79, 78, 65, 76, 128, 68, 73, 65, 69, 82, + 69, 83, 73, 90, 69, 196, 68, 73, 65, 69, 82, 69, 83, 73, 83, 45, 82, 73, + 78, 71, 128, 68, 73, 65, 69, 82, 69, 83, 73, 83, 128, 68, 73, 65, 69, 82, + 69, 83, 73, 211, 68, 72, 79, 85, 128, 68, 72, 79, 79, 128, 68, 72, 79, + 128, 68, 72, 73, 73, 128, 68, 72, 72, 85, 128, 68, 72, 72, 79, 79, 128, + 68, 72, 72, 79, 128, 68, 72, 72, 73, 128, 68, 72, 72, 69, 69, 128, 68, + 72, 72, 69, 128, 68, 72, 72, 65, 128, 68, 72, 69, 69, 128, 68, 72, 65, + 82, 77, 65, 128, 68, 72, 65, 77, 69, 68, 72, 128, 68, 72, 65, 76, 69, 84, + 72, 128, 68, 72, 65, 76, 65, 84, 72, 128, 68, 72, 65, 76, 128, 68, 72, + 65, 68, 72, 69, 128, 68, 72, 65, 65, 76, 85, 128, 68, 72, 65, 65, 128, + 68, 72, 65, 128, 68, 69, 90, 200, 68, 69, 89, 84, 69, 82, 79, 213, 68, + 69, 89, 84, 69, 82, 79, 211, 68, 69, 88, 73, 65, 128, 68, 69, 86, 73, 67, + 197, 68, 69, 86, 69, 76, 79, 80, 77, 69, 78, 84, 128, 68, 69, 85, 78, 71, + 128, 68, 69, 83, 75, 84, 79, 208, 68, 69, 83, 203, 68, 69, 83, 73, 71, + 78, 128, 68, 69, 83, 73, 128, 68, 69, 83, 69, 82, 84, 128, 68, 69, 83, + 69, 82, 212, 68, 69, 83, 69, 82, 69, 212, 68, 69, 83, 67, 82, 73, 80, 84, + 73, 79, 206, 68, 69, 83, 67, 69, 78, 68, 73, 78, 199, 68, 69, 83, 67, 69, + 78, 68, 69, 82, 128, 68, 69, 82, 69, 84, 45, 72, 73, 68, 69, 84, 128, 68, + 69, 82, 69, 84, 128, 68, 69, 82, 69, 76, 73, 67, 212, 68, 69, 82, 66, 73, + 84, 83, 65, 128, 68, 69, 80, 84, 72, 128, 68, 69, 80, 65, 82, 84, 85, 82, + 69, 128, 68, 69, 80, 65, 82, 84, 77, 69, 78, 212, 68, 69, 80, 65, 82, 84, + 73, 78, 199, 68, 69, 78, 84, 73, 83, 84, 82, 217, 68, 69, 78, 84, 65, + 204, 68, 69, 78, 79, 77, 73, 78, 65, 84, 79, 82, 128, 68, 69, 78, 79, 77, + 73, 78, 65, 84, 79, 210, 68, 69, 78, 78, 69, 78, 128, 68, 69, 78, 71, + 128, 68, 69, 78, 197, 68, 69, 78, 65, 82, 73, 85, 211, 68, 69, 77, 69, + 83, 84, 86, 69, 78, 78, 217, 68, 69, 76, 84, 65, 128, 68, 69, 76, 84, + 193, 68, 69, 76, 84, 128, 68, 69, 76, 80, 72, 73, 195, 68, 69, 76, 73, + 86, 69, 82, 217, 68, 69, 76, 73, 86, 69, 82, 65, 78, 67, 69, 128, 68, 69, + 76, 73, 77, 73, 84, 69, 82, 128, 68, 69, 76, 73, 77, 73, 84, 69, 210, 68, + 69, 76, 73, 67, 73, 79, 85, 211, 68, 69, 76, 69, 84, 73, 79, 206, 68, 69, + 76, 69, 84, 69, 128, 68, 69, 76, 69, 84, 197, 68, 69, 75, 65, 128, 68, + 69, 75, 128, 68, 69, 73, 128, 68, 69, 72, 73, 128, 68, 69, 71, 82, 69, + 69, 83, 128, 68, 69, 71, 82, 69, 197, 68, 69, 70, 73, 78, 73, 84, 73, 79, + 78, 128, 68, 69, 70, 69, 67, 84, 73, 86, 69, 78, 69, 83, 211, 68, 69, 69, + 82, 128, 68, 69, 69, 80, 76, 89, 128, 68, 69, 69, 76, 128, 68, 69, 67, + 82, 69, 83, 67, 69, 78, 68, 79, 128, 68, 69, 67, 82, 69, 65, 83, 69, 128, + 68, 69, 67, 82, 69, 65, 83, 197, 68, 69, 67, 79, 82, 65, 84, 73, 86, 197, + 68, 69, 67, 79, 82, 65, 84, 73, 79, 78, 128, 68, 69, 67, 73, 83, 73, 86, + 69, 78, 69, 83, 83, 128, 68, 69, 67, 73, 77, 65, 204, 68, 69, 67, 73, 68, + 85, 79, 85, 211, 68, 69, 67, 69, 77, 66, 69, 82, 128, 68, 69, 67, 65, 89, + 69, 68, 128, 68, 69, 66, 73, 212, 68, 69, 65, 84, 72, 128, 68, 69, 65, + 198, 68, 69, 65, 68, 128, 68, 68, 87, 65, 128, 68, 68, 85, 88, 128, 68, + 68, 85, 84, 128, 68, 68, 85, 82, 88, 128, 68, 68, 85, 82, 128, 68, 68, + 85, 80, 128, 68, 68, 85, 79, 88, 128, 68, 68, 85, 79, 80, 128, 68, 68, + 85, 79, 128, 68, 68, 85, 128, 68, 68, 79, 88, 128, 68, 68, 79, 84, 128, + 68, 68, 79, 80, 128, 68, 68, 79, 65, 128, 68, 68, 73, 88, 128, 68, 68, + 73, 84, 128, 68, 68, 73, 80, 128, 68, 68, 73, 69, 88, 128, 68, 68, 73, + 69, 80, 128, 68, 68, 73, 69, 128, 68, 68, 73, 128, 68, 68, 72, 85, 128, + 68, 68, 72, 79, 128, 68, 68, 72, 69, 69, 128, 68, 68, 72, 69, 128, 68, + 68, 72, 65, 65, 128, 68, 68, 72, 65, 128, 68, 68, 69, 88, 128, 68, 68, + 69, 80, 128, 68, 68, 69, 69, 128, 68, 68, 69, 128, 68, 68, 68, 72, 65, + 128, 68, 68, 68, 65, 128, 68, 68, 65, 89, 65, 78, 78, 65, 128, 68, 68, + 65, 88, 128, 68, 68, 65, 84, 128, 68, 68, 65, 80, 128, 68, 68, 65, 76, + 128, 68, 68, 65, 204, 68, 68, 65, 72, 65, 76, 128, 68, 68, 65, 72, 65, + 204, 68, 68, 65, 65, 128, 68, 67, 83, 128, 68, 67, 72, 69, 128, 68, 67, + 52, 128, 68, 67, 51, 128, 68, 67, 50, 128, 68, 67, 49, 128, 68, 194, 68, + 65, 89, 45, 78, 73, 71, 72, 84, 128, 68, 65, 217, 68, 65, 87, 66, 128, + 68, 65, 86, 73, 89, 65, 78, 73, 128, 68, 65, 86, 73, 68, 128, 68, 65, 84, + 197, 68, 65, 83, 73, 65, 128, 68, 65, 83, 73, 193, 68, 65, 83, 72, 69, + 196, 68, 65, 83, 72, 128, 68, 65, 83, 200, 68, 65, 83, 69, 73, 65, 128, + 68, 65, 82, 84, 128, 68, 65, 82, 75, 69, 78, 73, 78, 71, 128, 68, 65, 82, + 75, 69, 78, 73, 78, 199, 68, 65, 82, 203, 68, 65, 82, 71, 65, 128, 68, + 65, 82, 65, 52, 128, 68, 65, 82, 65, 51, 128, 68, 65, 82, 128, 68, 65, + 80, 45, 80, 82, 65, 205, 68, 65, 80, 45, 80, 73, 201, 68, 65, 80, 45, 77, + 85, 79, 217, 68, 65, 80, 45, 66, 85, 79, 206, 68, 65, 80, 45, 66, 69, + 201, 68, 65, 208, 68, 65, 78, 84, 65, 89, 65, 76, 65, 78, 128, 68, 65, + 78, 84, 65, 74, 193, 68, 65, 78, 71, 79, 128, 68, 65, 78, 71, 128, 68, + 65, 78, 199, 68, 65, 78, 68, 65, 128, 68, 65, 78, 67, 73, 78, 71, 128, + 68, 65, 78, 67, 69, 82, 128, 68, 65, 77, 80, 128, 68, 65, 77, 208, 68, + 65, 77, 77, 65, 84, 65, 78, 128, 68, 65, 77, 77, 65, 84, 65, 206, 68, 65, + 77, 77, 65, 128, 68, 65, 77, 77, 193, 68, 65, 77, 65, 82, 85, 128, 68, + 65, 76, 69, 84, 72, 45, 82, 69, 83, 72, 128, 68, 65, 76, 69, 84, 128, 68, + 65, 76, 69, 212, 68, 65, 76, 68, 65, 128, 68, 65, 76, 65, 84, 72, 128, + 68, 65, 76, 65, 84, 200, 68, 65, 76, 65, 84, 128, 68, 65, 73, 82, 128, + 68, 65, 73, 78, 71, 128, 68, 65, 73, 128, 68, 65, 72, 89, 65, 65, 85, 83, + 72, 45, 50, 128, 68, 65, 72, 89, 65, 65, 85, 83, 72, 128, 68, 65, 71, 83, + 128, 68, 65, 71, 71, 69, 82, 128, 68, 65, 71, 71, 69, 210, 68, 65, 71, + 69, 83, 72, 128, 68, 65, 71, 69, 83, 200, 68, 65, 71, 66, 65, 83, 73, 78, + 78, 65, 128, 68, 65, 71, 65, 218, 68, 65, 71, 65, 76, 71, 65, 128, 68, + 65, 71, 51, 128, 68, 65, 199, 68, 65, 69, 78, 71, 128, 68, 65, 69, 199, + 68, 65, 68, 128, 68, 65, 196, 68, 65, 65, 83, 85, 128, 68, 65, 65, 76, + 73, 128, 68, 65, 65, 68, 72, 85, 128, 68, 48, 54, 55, 72, 128, 68, 48, + 54, 55, 71, 128, 68, 48, 54, 55, 70, 128, 68, 48, 54, 55, 69, 128, 68, + 48, 54, 55, 68, 128, 68, 48, 54, 55, 67, 128, 68, 48, 54, 55, 66, 128, + 68, 48, 54, 55, 65, 128, 68, 48, 54, 55, 128, 68, 48, 54, 54, 128, 68, + 48, 54, 53, 128, 68, 48, 54, 52, 128, 68, 48, 54, 51, 128, 68, 48, 54, + 50, 128, 68, 48, 54, 49, 128, 68, 48, 54, 48, 128, 68, 48, 53, 57, 128, + 68, 48, 53, 56, 128, 68, 48, 53, 55, 128, 68, 48, 53, 54, 128, 68, 48, + 53, 53, 128, 68, 48, 53, 52, 65, 128, 68, 48, 53, 52, 128, 68, 48, 53, + 51, 128, 68, 48, 53, 50, 65, 128, 68, 48, 53, 50, 128, 68, 48, 53, 49, + 128, 68, 48, 53, 48, 73, 128, 68, 48, 53, 48, 72, 128, 68, 48, 53, 48, + 71, 128, 68, 48, 53, 48, 70, 128, 68, 48, 53, 48, 69, 128, 68, 48, 53, + 48, 68, 128, 68, 48, 53, 48, 67, 128, 68, 48, 53, 48, 66, 128, 68, 48, + 53, 48, 65, 128, 68, 48, 53, 48, 128, 68, 48, 52, 57, 128, 68, 48, 52, + 56, 65, 128, 68, 48, 52, 56, 128, 68, 48, 52, 55, 128, 68, 48, 52, 54, + 65, 128, 68, 48, 52, 54, 128, 68, 48, 52, 53, 128, 68, 48, 52, 52, 128, + 68, 48, 52, 51, 128, 68, 48, 52, 50, 128, 68, 48, 52, 49, 128, 68, 48, + 52, 48, 128, 68, 48, 51, 57, 128, 68, 48, 51, 56, 128, 68, 48, 51, 55, + 128, 68, 48, 51, 54, 128, 68, 48, 51, 53, 128, 68, 48, 51, 52, 65, 128, + 68, 48, 51, 52, 128, 68, 48, 51, 51, 128, 68, 48, 51, 50, 128, 68, 48, + 51, 49, 65, 128, 68, 48, 51, 49, 128, 68, 48, 51, 48, 128, 68, 48, 50, + 57, 128, 68, 48, 50, 56, 128, 68, 48, 50, 55, 65, 128, 68, 48, 50, 55, + 128, 68, 48, 50, 54, 128, 68, 48, 50, 53, 128, 68, 48, 50, 52, 128, 68, + 48, 50, 51, 128, 68, 48, 50, 50, 128, 68, 48, 50, 49, 128, 68, 48, 50, + 48, 128, 68, 48, 49, 57, 128, 68, 48, 49, 56, 128, 68, 48, 49, 55, 128, + 68, 48, 49, 54, 128, 68, 48, 49, 53, 128, 68, 48, 49, 52, 128, 68, 48, + 49, 51, 128, 68, 48, 49, 50, 128, 68, 48, 49, 49, 128, 68, 48, 49, 48, + 128, 68, 48, 48, 57, 128, 68, 48, 48, 56, 65, 128, 68, 48, 48, 56, 128, + 68, 48, 48, 55, 128, 68, 48, 48, 54, 128, 68, 48, 48, 53, 128, 68, 48, + 48, 52, 128, 68, 48, 48, 51, 128, 68, 48, 48, 50, 128, 68, 48, 48, 49, + 128, 67, 89, 88, 128, 67, 89, 84, 128, 67, 89, 82, 88, 128, 67, 89, 82, + 69, 78, 65, 73, 195, 67, 89, 82, 128, 67, 89, 80, 82, 79, 45, 77, 73, 78, + 79, 65, 206, 67, 89, 80, 82, 73, 79, 212, 67, 89, 80, 69, 82, 85, 83, + 128, 67, 89, 80, 128, 67, 89, 76, 73, 78, 68, 82, 73, 67, 73, 84, 89, 128, 67, 89, 67, 76, 79, 78, 69, 128, 67, 89, 65, 89, 128, 67, 89, 65, 87, 128, 67, 89, 65, 128, 67, 87, 79, 79, 128, 67, 87, 79, 128, 67, 87, 73, 73, 128, 67, 87, 73, 128, 67, 87, 69, 79, 82, 84, 72, 128, 67, 87, @@ -4918,1672 +4899,1671 @@ static const unsigned char lexicon[] = { 83, 84, 65, 78, 67, 89, 128, 67, 79, 78, 83, 69, 67, 85, 84, 73, 86, 197, 67, 79, 78, 74, 85, 78, 67, 84, 73, 79, 78, 128, 67, 79, 78, 74, 85, 71, 65, 84, 197, 67, 79, 78, 74, 79, 73, 78, 73, 78, 199, 67, 79, 78, 74, 79, - 73, 78, 69, 82, 128, 67, 79, 78, 74, 79, 73, 78, 69, 68, 128, 67, 79, 78, - 74, 79, 73, 78, 69, 196, 67, 79, 78, 73, 67, 65, 204, 67, 79, 78, 71, 82, - 85, 69, 78, 212, 67, 79, 78, 71, 82, 65, 84, 85, 76, 65, 84, 73, 79, 78, - 128, 67, 79, 78, 70, 85, 83, 69, 196, 67, 79, 78, 70, 79, 85, 78, 68, 69, - 196, 67, 79, 78, 70, 76, 73, 67, 84, 128, 67, 79, 78, 70, 69, 84, 84, - 201, 67, 79, 78, 67, 65, 86, 69, 45, 83, 73, 68, 69, 196, 67, 79, 78, 67, - 65, 86, 69, 45, 80, 79, 73, 78, 84, 69, 196, 67, 79, 77, 80, 85, 84, 69, - 82, 83, 128, 67, 79, 77, 80, 85, 84, 69, 82, 128, 67, 79, 77, 80, 82, 69, - 83, 83, 73, 79, 78, 128, 67, 79, 77, 80, 82, 69, 83, 83, 69, 196, 67, 79, - 77, 80, 79, 83, 73, 84, 73, 79, 78, 128, 67, 79, 77, 80, 79, 83, 73, 84, - 73, 79, 206, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 54, 56, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 54, 55, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 55, 54, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 55, 54, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 54, 52, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 54, 51, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 55, 54, 50, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 55, 54, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, - 54, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 53, 57, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 53, 56, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 55, 53, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 55, 53, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 53, 53, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 53, 52, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 55, 53, 51, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 55, 53, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, - 53, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 53, 48, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 52, 57, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 55, 52, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 55, 52, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 52, 54, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 52, 53, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 55, 52, 52, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 55, 52, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, - 52, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 52, 49, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 52, 48, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 55, 51, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 55, 51, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 51, 55, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 51, 54, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 55, 51, 53, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 55, 51, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, - 51, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 51, 50, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 51, 49, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 55, 51, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 55, 50, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 50, 56, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 50, 55, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 55, 50, 54, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 55, 50, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, - 50, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 50, 51, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 50, 50, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 55, 50, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 55, 50, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 49, 57, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 49, 56, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 55, 49, 55, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 55, 49, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, - 49, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 49, 52, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 49, 51, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 55, 49, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 55, 49, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 49, 48, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 48, 57, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 55, 48, 56, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 55, 48, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, - 48, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 48, 53, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 48, 52, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 55, 48, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 55, 48, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 48, 49, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 48, 48, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 54, 57, 57, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 54, 57, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, - 57, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 57, 54, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 57, 53, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 54, 57, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 54, 57, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 57, 50, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 57, 49, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 54, 57, 48, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 54, 56, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, - 56, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 56, 55, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 56, 54, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 54, 56, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 54, 56, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 56, 51, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 56, 50, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 54, 56, 49, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 54, 56, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, - 55, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 55, 56, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 55, 55, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 54, 55, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 54, 55, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 55, 52, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 55, 51, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 54, 55, 50, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 54, 55, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, - 55, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 54, 57, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 54, 56, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 54, 54, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 54, 54, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 54, 53, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 54, 52, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 54, 54, 51, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 54, 54, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, - 54, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 54, 48, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 53, 57, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 54, 53, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 54, 53, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 53, 54, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 53, 53, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 54, 53, 52, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 54, 53, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, - 53, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 53, 49, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 53, 48, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 54, 52, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 54, 52, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 52, 55, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 52, 54, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 54, 52, 53, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 54, 52, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, - 52, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 52, 50, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 52, 49, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 54, 52, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 54, 51, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 51, 56, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 51, 55, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 54, 51, 54, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 54, 51, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, - 51, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 51, 51, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 51, 50, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 54, 51, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 54, 51, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 50, 57, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 50, 56, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 54, 50, 55, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 54, 50, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, - 50, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 50, 52, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 50, 51, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 54, 50, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 54, 50, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 50, 48, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 49, 57, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 54, 49, 56, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 54, 49, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, - 49, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 49, 53, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 49, 52, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 54, 49, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 54, 49, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 49, 49, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 49, 48, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 54, 48, 57, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 54, 48, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, - 48, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 48, 54, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 48, 53, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 54, 48, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 54, 48, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 48, 50, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 48, 49, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 54, 48, 48, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 53, 57, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, - 57, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 57, 55, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 57, 54, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 53, 57, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 53, 57, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 57, 51, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 57, 50, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 53, 57, 49, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 53, 57, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, - 56, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 56, 56, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 56, 55, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 53, 56, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 53, 56, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 56, 52, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 56, 51, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 53, 56, 50, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 53, 56, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, - 56, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 55, 57, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 55, 56, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 53, 55, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 53, 55, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 55, 53, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 55, 52, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 53, 55, 51, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 53, 55, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, - 55, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 55, 48, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 54, 57, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 53, 54, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 53, 54, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 54, 54, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 54, 53, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 53, 54, 52, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 53, 54, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, - 54, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 54, 49, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 54, 48, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 53, 53, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 53, 53, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 53, 55, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 53, 54, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 53, 53, 53, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 53, 53, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, - 53, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 53, 50, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 53, 49, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 53, 53, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 53, 52, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 52, 56, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 52, 55, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 53, 52, 54, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 53, 52, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, - 52, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 52, 51, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 52, 50, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 53, 52, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 53, 52, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 51, 57, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 51, 56, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 53, 51, 55, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 53, 51, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, - 51, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 51, 52, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 51, 51, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 53, 51, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 53, 51, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 51, 48, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 50, 57, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 53, 50, 56, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 53, 50, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, - 50, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 50, 53, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 50, 52, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 53, 50, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 53, 50, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 50, 49, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 50, 48, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 53, 49, 57, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 53, 49, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, - 49, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 49, 54, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 49, 53, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 53, 49, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 53, 49, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 49, 50, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 49, 49, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 53, 49, 48, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 53, 48, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, - 48, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 48, 55, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 48, 54, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 53, 48, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 53, 48, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 48, 51, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 48, 50, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 53, 48, 49, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 53, 48, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, - 57, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 57, 56, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 57, 55, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 52, 57, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 52, 57, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 57, 52, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 57, 51, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 52, 57, 50, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 52, 57, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, - 57, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 56, 57, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 56, 56, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 52, 56, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 52, 56, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 56, 53, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 56, 52, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 52, 56, 51, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 52, 56, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, - 56, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 56, 48, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 55, 57, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 52, 55, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 52, 55, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 55, 54, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 55, 53, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 52, 55, 52, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 52, 55, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, - 55, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 55, 49, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 55, 48, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 52, 54, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 52, 54, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 54, 55, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 54, 54, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 52, 54, 53, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 52, 54, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, - 54, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 54, 50, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 54, 49, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 52, 54, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 52, 53, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 53, 56, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 53, 55, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 52, 53, 54, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 52, 53, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, - 53, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 53, 51, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 53, 50, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 52, 53, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 52, 53, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 52, 57, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 52, 56, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 52, 52, 55, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 52, 52, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, - 52, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 52, 52, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 52, 51, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 52, 52, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 52, 52, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 52, 48, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 51, 57, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 52, 51, 56, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 52, 51, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, - 51, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 51, 53, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 51, 52, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 52, 51, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 52, 51, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 51, 49, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 51, 48, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 52, 50, 57, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 52, 50, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, - 50, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 50, 54, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 50, 53, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 52, 50, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 52, 50, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 50, 50, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 50, 49, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 52, 50, 48, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 52, 49, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, - 49, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 49, 55, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 49, 54, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 52, 49, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 52, 49, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 49, 51, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 49, 50, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 52, 49, 49, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 52, 49, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, - 48, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 48, 56, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 48, 55, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 52, 48, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 52, 48, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 48, 52, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 48, 51, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 52, 48, 50, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 52, 48, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, - 48, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 57, 57, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 57, 56, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 51, 57, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 51, 57, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 57, 53, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 57, 52, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 51, 57, 51, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 51, 57, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, - 57, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 57, 48, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 56, 57, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 51, 56, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 51, 56, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 56, 54, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 56, 53, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 51, 56, 52, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 51, 56, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, - 56, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 56, 49, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 56, 48, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 51, 55, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 51, 55, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 55, 55, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 55, 54, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 51, 55, 53, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 51, 55, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, - 55, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 55, 50, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 55, 49, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 51, 55, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 51, 54, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 54, 56, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 54, 55, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 51, 54, 54, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 51, 54, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, - 54, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 54, 51, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 54, 50, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 51, 54, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 51, 54, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 53, 57, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 53, 56, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 51, 53, 55, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 51, 53, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, - 53, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 53, 52, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 53, 51, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 51, 53, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 51, 53, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 53, 48, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 52, 57, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 51, 52, 56, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 51, 52, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, - 52, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 52, 53, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 52, 52, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 51, 52, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 51, 52, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 52, 49, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 52, 48, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 51, 51, 57, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 51, 51, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, - 51, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 51, 54, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 51, 53, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 51, 51, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 51, 51, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 51, 50, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 51, 49, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 51, 51, 48, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 51, 50, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, - 50, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 50, 55, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 50, 54, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 51, 50, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 51, 50, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 50, 51, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 50, 50, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 51, 50, 49, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 51, 50, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, - 49, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 49, 56, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 49, 55, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 51, 49, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 51, 49, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 49, 52, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 49, 51, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 51, 49, 50, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 51, 49, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, - 49, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 48, 57, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 48, 56, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 51, 48, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 51, 48, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 48, 53, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 48, 52, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 51, 48, 51, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 51, 48, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, - 48, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 48, 48, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 57, 57, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 50, 57, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 50, 57, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 57, 54, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 57, 53, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 50, 57, 52, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 50, 57, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, - 57, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 57, 49, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 57, 48, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 50, 56, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 50, 56, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 56, 55, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 56, 54, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 50, 56, 53, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 50, 56, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, - 56, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 56, 50, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 56, 49, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 50, 56, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 50, 55, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 55, 56, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 55, 55, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 50, 55, 54, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 50, 55, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, - 55, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 55, 51, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 55, 50, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 50, 55, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 50, 55, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 54, 57, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 54, 56, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 50, 54, 55, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 50, 54, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, - 54, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 54, 52, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 54, 51, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 50, 54, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 50, 54, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 54, 48, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 53, 57, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 50, 53, 56, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 50, 53, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, - 53, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 53, 53, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 53, 52, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 50, 53, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 50, 53, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 53, 49, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 53, 48, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 50, 52, 57, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 50, 52, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, - 52, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 52, 54, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 52, 53, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 50, 52, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 50, 52, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 52, 50, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 52, 49, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 50, 52, 48, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 50, 51, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, - 51, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 51, 55, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 51, 54, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 50, 51, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 50, 51, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 51, 51, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 51, 50, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 50, 51, 49, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 50, 51, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, - 50, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 50, 56, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 50, 55, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 50, 50, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 50, 50, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 50, 52, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 50, 51, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 50, 50, 50, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 50, 50, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, - 50, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 49, 57, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 49, 56, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 50, 49, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 50, 49, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 49, 53, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 49, 52, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 50, 49, 51, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 50, 49, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, - 49, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 49, 48, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 48, 57, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 50, 48, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 50, 48, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 48, 54, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 48, 53, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 50, 48, 52, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 50, 48, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, - 48, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 48, 49, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 48, 48, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 49, 57, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 49, 57, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 57, 55, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 57, 54, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 49, 57, 53, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 49, 57, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, - 57, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 57, 50, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 57, 49, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 49, 57, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 49, 56, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 56, 56, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 56, 55, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 49, 56, 54, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 49, 56, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, - 56, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 56, 51, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 56, 50, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 49, 56, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 49, 56, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 55, 57, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 55, 56, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 49, 55, 55, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 49, 55, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, - 55, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 55, 52, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 55, 51, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 49, 55, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 49, 55, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 55, 48, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 54, 57, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 49, 54, 56, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 49, 54, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, - 54, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 54, 53, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 54, 52, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 49, 54, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 49, 54, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 54, 49, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 54, 48, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 49, 53, 57, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 49, 53, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, - 53, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 53, 54, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 53, 53, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 49, 53, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 49, 53, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 53, 50, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 53, 49, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 49, 53, 48, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 49, 52, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, - 52, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 52, 55, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 52, 54, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 49, 52, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 49, 52, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 52, 51, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 52, 50, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 49, 52, 49, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 49, 52, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, - 51, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 51, 56, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 51, 55, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 49, 51, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 49, 51, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 51, 52, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 51, 51, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 49, 51, 50, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 49, 51, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, - 51, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 50, 57, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 50, 56, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 49, 50, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 49, 50, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 50, 53, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 50, 52, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 49, 50, 51, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 49, 50, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, - 50, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 50, 48, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 49, 57, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 49, 49, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 49, 49, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 49, 54, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 49, 53, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 49, 49, 52, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 49, 49, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, - 49, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 49, 49, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 49, 48, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 49, 48, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 49, 48, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 48, 55, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 48, 54, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 49, 48, 53, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 49, 48, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, - 48, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 48, 50, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 48, 49, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 49, 48, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 48, 57, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 57, 56, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 57, 55, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 48, 57, 54, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 48, 57, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, - 57, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 57, 51, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 57, 50, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 48, 57, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 48, 57, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 56, 57, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 56, 56, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 48, 56, 55, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 48, 56, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, - 56, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 56, 52, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 56, 51, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 48, 56, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 48, 56, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 56, 48, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 55, 57, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 48, 55, 56, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 48, 55, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, - 55, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 55, 53, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 55, 52, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 48, 55, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 48, 55, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 55, 49, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 55, 48, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 48, 54, 57, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 48, 54, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, - 54, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 54, 54, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 54, 53, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 48, 54, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 48, 54, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 54, 50, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 54, 49, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 48, 54, 48, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 48, 53, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, - 53, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 53, 55, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 53, 54, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 48, 53, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 48, 53, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 53, 51, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 53, 50, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 48, 53, 49, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 48, 53, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, - 52, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 52, 56, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 52, 55, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 48, 52, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 48, 52, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 52, 52, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 52, 51, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 48, 52, 50, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 48, 52, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, - 52, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 51, 57, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 51, 56, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 48, 51, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 48, 51, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 51, 53, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 51, 52, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 48, 51, 51, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 48, 51, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, - 51, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 51, 48, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 50, 57, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 48, 50, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 48, 50, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 50, 54, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 50, 53, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 48, 50, 52, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 48, 50, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, - 50, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 50, 49, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 50, 48, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 48, 49, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 48, 49, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 49, 55, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 49, 54, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 48, 49, 53, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 48, 49, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, - 49, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 49, 50, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 49, 49, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 48, 49, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, - 45, 48, 48, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 48, 56, - 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 48, 55, 128, 67, 79, 77, - 80, 79, 78, 69, 78, 84, 45, 48, 48, 54, 128, 67, 79, 77, 80, 79, 78, 69, - 78, 84, 45, 48, 48, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, - 48, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 48, 51, 128, 67, - 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 48, 50, 128, 67, 79, 77, 80, 79, - 78, 69, 78, 84, 45, 48, 48, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 212, - 67, 79, 77, 80, 76, 73, 65, 78, 67, 69, 128, 67, 79, 77, 80, 76, 69, 84, - 73, 79, 78, 128, 67, 79, 77, 80, 76, 69, 84, 69, 68, 128, 67, 79, 77, 80, - 76, 69, 77, 69, 78, 84, 128, 67, 79, 77, 80, 65, 83, 83, 128, 67, 79, 77, - 80, 65, 82, 69, 128, 67, 79, 77, 77, 79, 206, 67, 79, 77, 77, 69, 82, 67, - 73, 65, 204, 67, 79, 77, 77, 65, 78, 68, 128, 67, 79, 77, 77, 65, 128, - 67, 79, 77, 77, 193, 67, 79, 77, 69, 84, 128, 67, 79, 77, 66, 73, 78, 69, - 68, 128, 67, 79, 77, 66, 73, 78, 65, 84, 73, 79, 78, 128, 67, 79, 77, 66, - 128, 67, 79, 76, 85, 77, 78, 128, 67, 79, 76, 79, 82, 128, 67, 79, 76, - 76, 73, 83, 73, 79, 206, 67, 79, 76, 76, 128, 67, 79, 76, 196, 67, 79, - 73, 78, 128, 67, 79, 70, 70, 73, 78, 128, 67, 79, 69, 78, 71, 128, 67, - 79, 69, 78, 199, 67, 79, 68, 65, 128, 67, 79, 67, 79, 78, 85, 84, 128, - 67, 79, 67, 75, 84, 65, 73, 204, 67, 79, 67, 75, 82, 79, 65, 67, 72, 128, - 67, 79, 65, 84, 128, 67, 79, 65, 83, 84, 69, 82, 128, 67, 79, 65, 128, - 67, 77, 51, 48, 50, 128, 67, 77, 51, 48, 49, 128, 67, 77, 49, 49, 52, - 128, 67, 77, 49, 49, 50, 128, 67, 77, 49, 49, 48, 128, 67, 77, 49, 48, - 57, 128, 67, 77, 49, 48, 56, 128, 67, 77, 49, 48, 55, 128, 67, 77, 49, - 48, 53, 128, 67, 77, 49, 48, 52, 128, 67, 77, 49, 48, 51, 128, 67, 77, - 49, 48, 50, 128, 67, 77, 49, 48, 49, 128, 67, 77, 49, 48, 48, 128, 67, - 77, 48, 57, 57, 128, 67, 77, 48, 57, 56, 128, 67, 77, 48, 57, 55, 128, - 67, 77, 48, 57, 54, 128, 67, 77, 48, 57, 53, 128, 67, 77, 48, 57, 52, - 128, 67, 77, 48, 57, 50, 128, 67, 77, 48, 57, 49, 128, 67, 77, 48, 57, - 48, 128, 67, 77, 48, 56, 57, 128, 67, 77, 48, 56, 56, 128, 67, 77, 48, - 56, 55, 128, 67, 77, 48, 56, 54, 128, 67, 77, 48, 56, 53, 128, 67, 77, - 48, 56, 52, 128, 67, 77, 48, 56, 51, 128, 67, 77, 48, 56, 50, 128, 67, - 77, 48, 56, 49, 128, 67, 77, 48, 56, 48, 128, 67, 77, 48, 55, 57, 128, - 67, 77, 48, 55, 56, 128, 67, 77, 48, 55, 54, 128, 67, 77, 48, 55, 53, 66, - 128, 67, 77, 48, 55, 53, 128, 67, 77, 48, 55, 52, 128, 67, 77, 48, 55, - 51, 128, 67, 77, 48, 55, 50, 128, 67, 77, 48, 55, 49, 128, 67, 77, 48, - 55, 48, 128, 67, 77, 48, 54, 57, 128, 67, 77, 48, 54, 56, 128, 67, 77, - 48, 54, 55, 128, 67, 77, 48, 54, 54, 128, 67, 77, 48, 54, 52, 128, 67, - 77, 48, 54, 51, 128, 67, 77, 48, 54, 50, 128, 67, 77, 48, 54, 49, 128, - 67, 77, 48, 54, 48, 128, 67, 77, 48, 53, 57, 128, 67, 77, 48, 53, 56, - 128, 67, 77, 48, 53, 54, 128, 67, 77, 48, 53, 53, 128, 67, 77, 48, 53, - 52, 128, 67, 77, 48, 53, 51, 128, 67, 77, 48, 53, 50, 128, 67, 77, 48, - 53, 49, 128, 67, 77, 48, 53, 48, 128, 67, 77, 48, 52, 57, 128, 67, 77, - 48, 52, 55, 128, 67, 77, 48, 52, 54, 128, 67, 77, 48, 52, 52, 128, 67, - 77, 48, 52, 49, 128, 67, 77, 48, 52, 48, 128, 67, 77, 48, 51, 57, 128, - 67, 77, 48, 51, 56, 128, 67, 77, 48, 51, 55, 128, 67, 77, 48, 51, 54, - 128, 67, 77, 48, 51, 53, 128, 67, 77, 48, 51, 52, 128, 67, 77, 48, 51, - 51, 128, 67, 77, 48, 51, 48, 128, 67, 77, 48, 50, 57, 128, 67, 77, 48, - 50, 56, 128, 67, 77, 48, 50, 55, 128, 67, 77, 48, 50, 54, 128, 67, 77, - 48, 50, 53, 128, 67, 77, 48, 50, 52, 128, 67, 77, 48, 50, 51, 128, 67, - 77, 48, 50, 49, 128, 67, 77, 48, 49, 57, 128, 67, 77, 48, 49, 55, 128, - 67, 77, 48, 49, 53, 128, 67, 77, 48, 49, 51, 128, 67, 77, 48, 49, 50, 66, - 128, 67, 77, 48, 49, 50, 128, 67, 77, 48, 49, 49, 128, 67, 77, 48, 49, - 48, 128, 67, 77, 48, 48, 57, 128, 67, 77, 48, 48, 56, 128, 67, 77, 48, - 48, 55, 128, 67, 77, 48, 48, 54, 128, 67, 77, 48, 48, 53, 128, 67, 77, - 48, 48, 52, 128, 67, 77, 48, 48, 50, 128, 67, 77, 48, 48, 49, 128, 67, - 77, 128, 67, 205, 67, 76, 85, 83, 84, 69, 82, 45, 73, 78, 73, 84, 73, 65, - 204, 67, 76, 85, 83, 84, 69, 82, 45, 70, 73, 78, 65, 204, 67, 76, 85, 83, - 84, 69, 210, 67, 76, 85, 66, 83, 128, 67, 76, 85, 66, 45, 83, 80, 79, 75, - 69, 196, 67, 76, 85, 66, 128, 67, 76, 85, 194, 67, 76, 79, 87, 206, 67, - 76, 79, 86, 69, 82, 128, 67, 76, 79, 85, 68, 128, 67, 76, 79, 85, 196, - 67, 76, 79, 84, 72, 69, 83, 128, 67, 76, 79, 84, 72, 128, 67, 76, 79, 83, - 69, 84, 128, 67, 76, 79, 83, 69, 78, 69, 83, 83, 128, 67, 76, 79, 83, 69, - 68, 128, 67, 76, 79, 83, 197, 67, 76, 79, 67, 75, 87, 73, 83, 197, 67, - 76, 79, 67, 203, 67, 76, 73, 86, 73, 83, 128, 67, 76, 73, 80, 66, 79, 65, - 82, 68, 128, 67, 76, 73, 78, 75, 73, 78, 199, 67, 76, 73, 78, 71, 73, 78, - 199, 67, 76, 73, 77, 66, 73, 78, 71, 128, 67, 76, 73, 77, 65, 67, 85, 83, - 128, 67, 76, 73, 70, 70, 128, 67, 76, 73, 67, 75, 128, 67, 76, 73, 67, - 203, 67, 76, 69, 70, 45, 50, 128, 67, 76, 69, 70, 45, 49, 128, 67, 76, - 69, 70, 128, 67, 76, 69, 198, 67, 76, 69, 65, 86, 69, 82, 128, 67, 76, - 69, 65, 210, 67, 76, 65, 83, 83, 73, 67, 65, 204, 67, 76, 65, 80, 80, 73, - 78, 199, 67, 76, 65, 80, 80, 69, 210, 67, 76, 65, 78, 128, 67, 76, 65, - 206, 67, 76, 65, 77, 83, 72, 69, 76, 204, 67, 76, 65, 73, 77, 128, 67, - 76, 128, 67, 73, 88, 128, 67, 73, 86, 73, 76, 73, 65, 78, 128, 67, 73, - 84, 89, 83, 67, 65, 80, 69, 128, 67, 73, 84, 89, 83, 67, 65, 80, 197, 67, - 73, 84, 201, 67, 73, 84, 65, 84, 73, 79, 206, 67, 73, 84, 128, 67, 73, - 82, 67, 85, 211, 67, 73, 82, 67, 85, 77, 70, 76, 69, 88, 128, 67, 73, 82, - 67, 85, 77, 70, 76, 69, 216, 67, 73, 82, 67, 85, 76, 65, 84, 73, 79, 206, - 67, 73, 82, 67, 76, 73, 78, 71, 128, 67, 73, 82, 67, 76, 73, 78, 199, 67, - 73, 82, 67, 76, 69, 83, 128, 67, 73, 82, 67, 76, 69, 211, 67, 73, 82, 67, - 76, 69, 68, 128, 67, 73, 80, 128, 67, 73, 78, 78, 65, 66, 65, 82, 128, - 67, 73, 78, 69, 77, 65, 128, 67, 73, 206, 67, 73, 77, 128, 67, 73, 205, - 67, 73, 73, 128, 67, 73, 69, 88, 128, 67, 73, 69, 85, 67, 45, 83, 83, 65, - 78, 71, 80, 73, 69, 85, 80, 128, 67, 73, 69, 85, 67, 45, 80, 73, 69, 85, - 80, 128, 67, 73, 69, 85, 67, 45, 73, 69, 85, 78, 71, 128, 67, 73, 69, 85, - 195, 67, 73, 69, 84, 128, 67, 73, 69, 80, 128, 67, 73, 69, 128, 67, 72, - 89, 88, 128, 67, 72, 89, 84, 128, 67, 72, 89, 82, 88, 128, 67, 72, 89, - 82, 128, 67, 72, 89, 80, 128, 67, 72, 87, 86, 128, 67, 72, 85, 88, 128, - 67, 72, 85, 82, 88, 128, 67, 72, 85, 82, 67, 72, 128, 67, 72, 85, 82, - 128, 67, 72, 85, 80, 128, 67, 72, 85, 79, 88, 128, 67, 72, 85, 79, 84, - 128, 67, 72, 85, 79, 80, 128, 67, 72, 85, 79, 128, 67, 72, 85, 76, 65, - 128, 67, 72, 85, 128, 67, 72, 82, 89, 83, 65, 78, 84, 72, 69, 77, 85, 77, - 128, 67, 72, 82, 79, 78, 79, 85, 128, 67, 72, 82, 79, 78, 79, 78, 128, - 67, 72, 82, 79, 77, 193, 67, 72, 82, 79, 193, 67, 72, 82, 73, 86, 73, - 128, 67, 72, 82, 73, 83, 84, 77, 65, 83, 128, 67, 72, 82, 73, 83, 84, 77, - 65, 211, 67, 72, 79, 89, 128, 67, 72, 79, 88, 128, 67, 72, 79, 84, 128, - 67, 72, 79, 82, 69, 86, 77, 193, 67, 72, 79, 82, 65, 83, 77, 73, 65, 206, - 67, 72, 79, 80, 83, 84, 73, 67, 75, 83, 128, 67, 72, 79, 80, 128, 67, 72, - 79, 75, 69, 128, 67, 72, 79, 69, 128, 67, 72, 79, 67, 79, 76, 65, 84, - 197, 67, 72, 79, 65, 128, 67, 72, 73, 84, 85, 69, 85, 77, 83, 83, 65, 78, - 71, 83, 73, 79, 83, 128, 67, 72, 73, 84, 85, 69, 85, 77, 83, 83, 65, 78, - 71, 67, 73, 69, 85, 67, 128, 67, 72, 73, 84, 85, 69, 85, 77, 83, 73, 79, - 83, 128, 67, 72, 73, 84, 85, 69, 85, 77, 67, 73, 69, 85, 67, 128, 67, 72, - 73, 84, 85, 69, 85, 77, 67, 72, 73, 69, 85, 67, 72, 128, 67, 72, 73, 82, - 79, 78, 128, 67, 72, 73, 82, 69, 84, 128, 67, 72, 73, 80, 77, 85, 78, 75, - 128, 67, 72, 73, 78, 79, 79, 203, 67, 72, 73, 78, 71, 128, 67, 72, 73, - 78, 69, 83, 197, 67, 72, 73, 78, 128, 67, 72, 73, 77, 69, 128, 67, 72, - 73, 77, 128, 67, 72, 73, 76, 76, 213, 67, 72, 73, 76, 68, 82, 69, 206, - 67, 72, 73, 76, 68, 128, 67, 72, 73, 76, 128, 67, 72, 73, 75, 201, 67, - 72, 73, 69, 85, 67, 72, 45, 75, 72, 73, 69, 85, 75, 72, 128, 67, 72, 73, - 69, 85, 67, 72, 45, 72, 73, 69, 85, 72, 128, 67, 72, 73, 69, 85, 67, 200, - 67, 72, 73, 67, 75, 69, 78, 128, 67, 72, 73, 67, 75, 128, 67, 72, 73, - 128, 67, 72, 201, 67, 72, 72, 73, 77, 128, 67, 72, 72, 65, 128, 67, 72, - 69, 88, 128, 67, 72, 69, 86, 82, 79, 78, 128, 67, 72, 69, 86, 82, 79, - 206, 67, 72, 69, 84, 128, 67, 72, 69, 83, 84, 78, 85, 84, 128, 67, 72, - 69, 83, 84, 128, 67, 72, 69, 83, 211, 67, 72, 69, 82, 89, 128, 67, 72, - 69, 82, 82, 217, 67, 72, 69, 82, 82, 73, 69, 83, 128, 67, 72, 69, 81, 85, - 69, 82, 69, 196, 67, 72, 69, 80, 128, 67, 72, 69, 76, 89, 85, 83, 84, 75, - 65, 128, 67, 72, 69, 76, 78, 85, 128, 67, 72, 69, 73, 78, 65, 80, 128, - 67, 72, 69, 73, 75, 72, 69, 73, 128, 67, 72, 69, 73, 75, 72, 65, 78, 128, - 67, 72, 69, 69, 83, 197, 67, 72, 69, 69, 82, 73, 78, 199, 67, 72, 69, 69, - 77, 128, 67, 72, 69, 69, 75, 211, 67, 72, 69, 69, 75, 128, 67, 72, 69, - 69, 128, 67, 72, 69, 67, 75, 69, 210, 67, 72, 69, 67, 75, 128, 67, 72, - 69, 67, 203, 67, 72, 197, 67, 72, 65, 88, 128, 67, 72, 65, 86, 73, 89, - 65, 78, 73, 128, 67, 72, 65, 84, 84, 65, 87, 65, 128, 67, 72, 65, 84, - 128, 67, 72, 65, 83, 72, 75, 65, 128, 67, 72, 65, 83, 72, 75, 193, 67, - 72, 65, 82, 84, 128, 67, 72, 65, 82, 212, 67, 72, 65, 82, 73, 79, 84, - 128, 67, 72, 65, 82, 73, 79, 212, 67, 72, 65, 82, 65, 67, 84, 69, 82, 83, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 70, 66, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 70, 65, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 70, 57, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 70, 56, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 70, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 70, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 70, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 70, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 70, 51, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 70, 50, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 70, 49, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 70, 48, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 69, 70, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 69, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 69, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 69, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 69, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 69, 65, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 69, 57, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 69, 56, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 69, 55, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 69, 54, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 69, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 69, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 69, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 69, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 69, 49, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 69, 48, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 68, 70, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 68, 69, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 68, 68, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 68, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 68, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 68, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 68, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 68, 56, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 68, 55, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 68, 54, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 68, 53, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 68, 52, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 68, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 68, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 68, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 68, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 67, 70, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 67, 69, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 67, 68, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 67, 67, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 67, 66, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 67, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 67, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 67, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 67, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 67, 54, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 67, 53, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 67, 52, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 67, 51, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 67, 50, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 67, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 67, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 66, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 66, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 66, 68, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 66, 67, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 66, 66, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 66, 65, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 66, 57, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 66, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 66, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 66, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 66, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 66, 52, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 66, 51, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 66, 50, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 66, 49, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 66, 48, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 65, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 65, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 65, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 65, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 65, 66, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 65, 65, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 65, 57, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 65, 56, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 65, 55, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 65, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 65, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 65, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 65, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 65, 50, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 65, 49, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 65, 48, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 57, 70, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 57, 69, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 57, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 57, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 57, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 57, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 57, 57, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 57, 56, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 57, 55, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 57, 54, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 57, 53, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 57, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 57, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 57, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 57, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 57, 48, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 56, 70, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 56, 69, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 56, 68, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 56, 67, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 56, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 56, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 56, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 56, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 56, 55, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 56, 54, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 56, 53, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 56, 52, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 56, 51, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 56, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 56, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 56, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 55, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 55, 69, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 55, 68, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 55, 67, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 55, 66, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 55, 65, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 55, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 55, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 55, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 55, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 55, 53, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 55, 52, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 55, 51, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 55, 50, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 55, 49, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 55, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 54, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 54, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 54, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 54, 67, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 54, 66, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 54, 65, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 54, 57, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 54, 56, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 54, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 54, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 54, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 54, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 54, 51, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 54, 50, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 54, 49, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 54, 48, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 53, 70, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 53, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 53, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 53, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 53, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 53, 65, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 53, 57, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 53, 56, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 53, 55, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 53, 54, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 53, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 53, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 53, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 53, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 53, 49, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 53, 48, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 52, 70, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 52, 69, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 52, 68, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 52, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 52, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 52, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 52, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 52, 56, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 52, 55, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 52, 54, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 52, 53, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 52, 52, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 52, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 52, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 52, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 52, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 51, 70, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 51, 69, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 51, 68, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 51, 67, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 51, 66, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 51, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 51, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 51, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 51, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 51, 54, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 51, 53, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 51, 52, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 51, 51, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 51, 50, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 51, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 51, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 50, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 50, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 50, 68, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 50, 67, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 50, 66, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 50, 65, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 50, 57, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 50, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 50, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 50, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 50, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 50, 52, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 50, 51, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 50, 50, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 50, 49, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 50, 48, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 49, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 49, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 49, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 49, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 49, 66, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 49, 65, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 49, 57, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 49, 56, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 49, 55, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 49, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 49, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 49, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 49, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 49, 50, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 49, 49, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 49, 48, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 48, 70, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 48, 69, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 48, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 48, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 48, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 48, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 48, 57, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 48, 56, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 48, 55, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 48, 54, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 50, 48, 53, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 50, 48, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 50, 48, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 50, 48, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, - 48, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 48, 48, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 70, 70, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 70, 69, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 70, 68, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 49, 70, 67, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 49, 70, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 49, 70, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 49, 70, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, - 70, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 70, 55, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 70, 54, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 70, 53, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 70, 52, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 49, 70, 51, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 49, 70, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 49, 70, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 49, 70, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, - 69, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 69, 69, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 69, 68, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 69, 67, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 69, 66, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 49, 69, 65, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 49, 69, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 49, 69, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 49, 69, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, - 69, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 69, 53, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 69, 52, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 69, 51, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 69, 50, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 49, 69, 49, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 49, 69, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 49, 68, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 49, 68, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, - 68, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 68, 67, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 68, 66, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 68, 65, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 68, 57, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 49, 68, 56, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 49, 68, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 49, 68, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 49, 68, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, - 68, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 68, 51, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 68, 50, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 68, 49, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 68, 48, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 49, 67, 70, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 49, 67, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 49, 67, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 49, 67, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, - 67, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 67, 65, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 67, 57, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 67, 56, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 67, 55, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 49, 67, 54, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 49, 67, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 49, 67, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 49, 67, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, - 67, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 67, 49, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 67, 48, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 66, 70, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 66, 69, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 49, 66, 68, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 49, 66, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 49, 66, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 49, 66, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, - 66, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 66, 56, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 66, 55, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 66, 54, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 66, 53, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 49, 66, 52, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 49, 66, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 49, 66, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 49, 66, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, - 66, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 65, 70, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 65, 69, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 65, 68, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 65, 67, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 49, 65, 66, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 49, 65, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 49, 65, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 49, 65, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, - 65, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 65, 54, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 65, 53, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 65, 52, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 65, 51, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 49, 65, 50, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 49, 65, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 49, 65, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 49, 57, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, - 57, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 57, 68, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 57, 67, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 57, 66, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 57, 65, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 49, 57, 57, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 49, 57, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 49, 57, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 49, 57, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, - 57, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 57, 52, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 57, 51, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 57, 50, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 57, 49, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 49, 57, 48, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 49, 56, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 49, 56, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 49, 56, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, - 56, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 56, 66, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 56, 65, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 56, 57, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 56, 56, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 49, 56, 55, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 49, 56, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 49, 56, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 49, 56, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, - 56, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 56, 50, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 56, 49, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 56, 48, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 55, 70, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 49, 55, 69, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 49, 55, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 49, 55, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 49, 55, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, - 55, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 55, 57, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 55, 56, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 55, 55, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 55, 54, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 66, 49, 55, 53, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 66, 49, 55, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 66, 49, 55, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 66, 49, 55, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, - 55, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 55, 48, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 68, 53, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 68, 52, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 68, 51, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 68, 50, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 68, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 68, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 67, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 67, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 68, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 67, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 66, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 65, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 67, 57, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 67, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 67, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 67, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 67, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 52, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 51, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 50, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 49, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 67, 48, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 66, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 66, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 66, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 66, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 66, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 65, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 57, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 56, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 66, 55, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 66, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 66, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 66, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 66, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 50, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 49, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 48, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 70, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 65, 69, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 65, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 65, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 65, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 65, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 57, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 56, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 55, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 54, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 65, 53, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 65, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 65, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 65, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 65, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 48, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 70, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 69, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 68, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 57, 67, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 57, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 57, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 57, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 57, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 55, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 54, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 53, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 52, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 57, 51, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 57, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 57, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 57, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 56, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 69, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 68, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 67, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 66, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 56, 65, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 56, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 56, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 56, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 56, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 53, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 52, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 51, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 50, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 56, 49, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 56, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 55, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 55, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 55, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 67, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 66, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 65, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 57, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 55, 56, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 55, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 55, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 55, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 55, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 51, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 50, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 49, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 48, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 54, 70, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 54, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 54, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 54, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 54, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 65, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 57, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 56, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 55, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 54, 54, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 54, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 54, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 54, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 54, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 49, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 48, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 70, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 69, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 53, 68, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 53, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 53, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 53, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 53, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 56, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 55, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 54, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 53, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 53, 52, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 53, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 53, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 53, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 53, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 70, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 69, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 68, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 67, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 52, 66, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 52, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 52, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 52, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 52, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 54, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 53, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 52, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 51, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 52, 50, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 52, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 52, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 51, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 51, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 68, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 67, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 66, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 65, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 51, 57, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 51, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 51, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 51, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 51, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 52, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 51, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 50, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 49, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 51, 48, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 50, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 50, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 50, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 50, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 66, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 65, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 57, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 56, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 50, 55, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 50, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 50, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 50, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 50, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 50, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 49, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 48, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 70, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 49, 69, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 49, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 49, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 49, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 49, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 57, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 56, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 55, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 54, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 49, 53, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 49, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 49, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 49, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 49, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 48, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 70, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 69, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 68, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 48, 67, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 48, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 48, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 48, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, - 48, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 55, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 54, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 53, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 52, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 67, 48, 51, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 67, 48, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 67, 48, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 67, 48, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 70, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 69, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 68, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 67, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 66, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 70, 65, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 70, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 70, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 70, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 70, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 53, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 52, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 51, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 50, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 70, 49, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 70, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 69, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 69, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 69, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 67, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 66, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 65, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 57, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 69, 56, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 69, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 69, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 69, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 69, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 51, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 50, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 49, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 48, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 68, 70, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 68, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 68, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 68, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 68, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 65, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 57, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 56, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 55, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 68, 54, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 68, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 68, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 68, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 68, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 49, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 48, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 70, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 69, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 67, 68, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 67, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 67, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 67, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 67, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 56, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 55, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 54, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 53, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 67, 52, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 67, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 67, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 67, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 67, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 70, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 69, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 68, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 67, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 66, 66, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 66, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 66, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 66, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 66, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 54, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 53, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 52, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 51, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 66, 50, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 66, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 66, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 65, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 65, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 68, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 67, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 66, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 65, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 65, 57, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 65, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 65, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 65, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 65, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 52, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 51, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 50, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 49, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 65, 48, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 57, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 57, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 57, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 57, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 66, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 65, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 57, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 56, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 57, 55, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 57, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 57, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 57, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 57, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 50, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 49, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 48, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 70, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 56, 69, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 56, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 56, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 56, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 56, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 57, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 56, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 55, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 54, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 56, 53, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 56, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 56, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 56, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 56, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 48, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 70, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 69, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 68, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 55, 67, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 55, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 55, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 55, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 55, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 55, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 54, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 53, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 52, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 55, 51, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 55, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 55, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 55, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 54, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 69, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 68, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 67, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 66, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 54, 65, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 54, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 54, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 54, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 54, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 53, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 52, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 51, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 50, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 54, 49, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 54, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 53, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 53, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 53, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 67, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 66, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 65, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 57, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 53, 56, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 53, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 53, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 53, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 53, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 51, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 50, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 49, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 48, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 52, 70, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 52, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 52, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 52, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 52, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 65, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 57, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 56, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 55, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 52, 54, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 52, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 52, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 52, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 52, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 49, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 48, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 70, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 69, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 51, 68, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 51, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 51, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 51, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 51, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 56, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 55, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 54, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 53, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 51, 52, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 51, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 51, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 51, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 51, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 70, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 69, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 68, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 67, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 50, 66, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 50, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 50, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 50, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 50, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 54, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 53, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 52, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 51, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 50, 50, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 50, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 50, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 49, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 49, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 68, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 67, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 66, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 65, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 49, 57, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 49, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 49, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 49, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 49, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 52, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 51, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 50, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 49, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 49, 48, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 48, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 48, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 48, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 48, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 66, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 65, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 57, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 56, 128, 67, 72, 65, 82, 65, - 67, 84, 69, 82, 45, 49, 56, 66, 48, 55, 128, 67, 72, 65, 82, 65, 67, 84, - 69, 82, 45, 49, 56, 66, 48, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, - 45, 49, 56, 66, 48, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, - 56, 66, 48, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, - 48, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 50, - 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 49, 128, 67, - 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 48, 128, 67, 72, 65, - 82, 65, 67, 84, 69, 82, 128, 67, 72, 65, 82, 65, 67, 84, 69, 210, 67, 72, - 65, 82, 128, 67, 72, 65, 80, 84, 69, 82, 128, 67, 72, 65, 80, 128, 67, - 72, 65, 78, 71, 128, 67, 72, 65, 78, 128, 67, 72, 65, 77, 75, 79, 128, - 67, 72, 65, 77, 73, 76, 79, 78, 128, 67, 72, 65, 77, 73, 76, 73, 128, 67, - 72, 65, 205, 67, 72, 65, 75, 77, 193, 67, 72, 65, 73, 78, 83, 128, 67, - 72, 65, 68, 65, 128, 67, 72, 65, 196, 67, 72, 65, 65, 128, 67, 71, 74, - 128, 67, 69, 88, 128, 67, 69, 86, 73, 84, 85, 128, 67, 69, 82, 69, 83, - 128, 67, 69, 82, 69, 77, 79, 78, 89, 128, 67, 69, 82, 69, 75, 128, 67, - 69, 82, 45, 87, 65, 128, 67, 69, 80, 128, 67, 69, 79, 78, 71, 67, 72, 73, - 69, 85, 77, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 67, 69, 79, 78, 71, - 67, 72, 73, 69, 85, 77, 83, 83, 65, 78, 71, 67, 73, 69, 85, 67, 128, 67, - 69, 79, 78, 71, 67, 72, 73, 69, 85, 77, 83, 73, 79, 83, 128, 67, 69, 79, - 78, 71, 67, 72, 73, 69, 85, 77, 67, 73, 69, 85, 67, 128, 67, 69, 79, 78, - 71, 67, 72, 73, 69, 85, 77, 67, 72, 73, 69, 85, 67, 72, 128, 67, 69, 78, - 84, 85, 82, 73, 65, 204, 67, 69, 78, 84, 82, 69, 76, 73, 78, 197, 67, 69, - 78, 84, 82, 69, 68, 128, 67, 69, 78, 84, 82, 69, 196, 67, 69, 78, 84, 82, - 69, 128, 67, 69, 78, 84, 82, 197, 67, 69, 78, 84, 82, 65, 76, 73, 90, 65, - 84, 73, 79, 206, 67, 69, 78, 128, 67, 69, 76, 84, 73, 195, 67, 69, 76, - 83, 73, 85, 83, 128, 67, 69, 76, 69, 66, 82, 65, 84, 73, 79, 78, 128, 67, - 69, 73, 82, 84, 128, 67, 69, 73, 76, 73, 78, 71, 128, 67, 69, 73, 76, 73, - 78, 199, 67, 69, 69, 86, 128, 67, 69, 69, 66, 128, 67, 69, 69, 128, 67, - 69, 68, 73, 76, 76, 65, 128, 67, 69, 68, 73, 76, 76, 193, 67, 69, 68, - 201, 67, 69, 67, 69, 75, 128, 67, 69, 67, 65, 75, 128, 67, 69, 67, 65, - 203, 67, 69, 65, 76, 67, 128, 67, 67, 85, 128, 67, 67, 79, 128, 67, 67, - 73, 128, 67, 67, 72, 85, 128, 67, 67, 72, 79, 128, 67, 67, 72, 73, 128, - 67, 67, 72, 72, 85, 128, 67, 67, 72, 72, 79, 128, 67, 67, 72, 72, 73, - 128, 67, 67, 72, 72, 69, 69, 128, 67, 67, 72, 72, 69, 128, 67, 67, 72, - 72, 65, 65, 128, 67, 67, 72, 72, 65, 128, 67, 67, 72, 69, 69, 128, 67, - 67, 72, 69, 128, 67, 67, 72, 65, 65, 128, 67, 67, 72, 65, 128, 67, 67, - 72, 128, 67, 67, 69, 69, 128, 67, 67, 65, 65, 128, 67, 65, 89, 78, 128, - 67, 65, 89, 65, 78, 78, 65, 128, 67, 65, 88, 128, 67, 65, 86, 69, 128, - 67, 65, 85, 84, 73, 79, 206, 67, 65, 85, 76, 68, 82, 79, 78, 128, 67, 65, - 85, 68, 65, 84, 197, 67, 65, 85, 68, 65, 128, 67, 65, 85, 67, 65, 83, 73, - 65, 206, 67, 65, 85, 128, 67, 65, 84, 65, 87, 65, 128, 67, 65, 84, 128, - 67, 65, 212, 67, 65, 83, 84, 76, 69, 128, 67, 65, 83, 75, 69, 212, 67, - 65, 82, 89, 83, 84, 73, 65, 206, 67, 65, 82, 84, 87, 72, 69, 69, 76, 128, - 67, 65, 82, 84, 82, 73, 68, 71, 69, 128, 67, 65, 82, 84, 128, 67, 65, 82, - 211, 67, 65, 82, 82, 79, 84, 128, 67, 65, 82, 82, 73, 65, 71, 197, 67, - 65, 82, 80, 69, 78, 84, 82, 217, 67, 65, 82, 208, 67, 65, 82, 79, 85, 83, - 69, 204, 67, 65, 82, 79, 78, 128, 67, 65, 82, 79, 206, 67, 65, 82, 73, - 203, 67, 65, 82, 73, 65, 206, 67, 65, 82, 69, 84, 128, 67, 65, 82, 69, - 212, 67, 65, 82, 197, 67, 65, 82, 68, 83, 128, 67, 65, 82, 196, 67, 65, - 82, 128, 67, 65, 210, 67, 65, 80, 85, 212, 67, 65, 80, 84, 73, 86, 69, - 128, 67, 65, 80, 82, 73, 67, 79, 82, 78, 128, 67, 65, 80, 80, 69, 196, - 67, 65, 80, 79, 128, 67, 65, 80, 73, 84, 85, 76, 85, 77, 128, 67, 65, 80, - 73, 84, 65, 76, 128, 67, 65, 78, 84, 73, 76, 76, 65, 84, 73, 79, 206, 67, - 65, 78, 79, 69, 128, 67, 65, 78, 78, 79, 78, 128, 67, 65, 78, 78, 69, - 196, 67, 65, 78, 199, 67, 65, 78, 69, 128, 67, 65, 78, 68, 89, 128, 67, - 65, 78, 68, 82, 65, 66, 73, 78, 68, 85, 128, 67, 65, 78, 68, 82, 65, 66, - 73, 78, 68, 213, 67, 65, 78, 68, 82, 65, 128, 67, 65, 78, 68, 82, 193, - 67, 65, 78, 68, 76, 69, 128, 67, 65, 78, 67, 69, 82, 128, 67, 65, 78, 67, - 69, 76, 76, 65, 84, 73, 79, 206, 67, 65, 78, 67, 69, 76, 128, 67, 65, 78, - 67, 69, 204, 67, 65, 78, 128, 67, 65, 77, 80, 73, 78, 71, 128, 67, 65, - 77, 78, 85, 195, 67, 65, 77, 69, 82, 65, 128, 67, 65, 77, 69, 82, 193, - 67, 65, 77, 69, 76, 128, 67, 65, 76, 89, 65, 128, 67, 65, 76, 89, 193, - 67, 65, 76, 88, 128, 67, 65, 76, 76, 128, 67, 65, 76, 204, 67, 65, 76, - 69, 78, 68, 65, 82, 128, 67, 65, 76, 69, 78, 68, 65, 210, 67, 65, 76, 67, - 85, 76, 65, 84, 79, 82, 128, 67, 65, 76, 67, 128, 67, 65, 75, 82, 65, - 128, 67, 65, 75, 197, 67, 65, 73, 128, 67, 65, 72, 128, 67, 65, 69, 83, - 85, 82, 65, 128, 67, 65, 68, 85, 67, 69, 85, 83, 128, 67, 65, 68, 193, - 67, 65, 67, 84, 85, 83, 128, 67, 65, 66, 76, 69, 87, 65, 89, 128, 67, 65, - 66, 73, 78, 69, 84, 128, 67, 65, 66, 66, 65, 71, 69, 45, 84, 82, 69, 69, - 128, 67, 65, 65, 78, 71, 128, 67, 65, 65, 73, 128, 67, 193, 67, 48, 50, - 52, 128, 67, 48, 50, 51, 128, 67, 48, 50, 50, 128, 67, 48, 50, 49, 128, - 67, 48, 50, 48, 128, 67, 48, 49, 57, 128, 67, 48, 49, 56, 128, 67, 48, - 49, 55, 128, 67, 48, 49, 54, 128, 67, 48, 49, 53, 128, 67, 48, 49, 52, - 128, 67, 48, 49, 51, 128, 67, 48, 49, 50, 128, 67, 48, 49, 49, 128, 67, - 48, 49, 48, 65, 128, 67, 48, 49, 48, 128, 67, 48, 48, 57, 128, 67, 48, - 48, 56, 128, 67, 48, 48, 55, 128, 67, 48, 48, 54, 128, 67, 48, 48, 53, - 128, 67, 48, 48, 52, 128, 67, 48, 48, 51, 128, 67, 48, 48, 50, 67, 128, - 67, 48, 48, 50, 66, 128, 67, 48, 48, 50, 65, 128, 67, 48, 48, 50, 128, - 67, 48, 48, 49, 128, 67, 45, 83, 73, 77, 80, 76, 73, 70, 73, 69, 196, 67, - 45, 51, 57, 128, 67, 45, 49, 56, 128, 66, 90, 85, 78, 199, 66, 90, 72, - 201, 66, 89, 84, 197, 66, 89, 69, 76, 79, 82, 85, 83, 83, 73, 65, 78, 45, - 85, 75, 82, 65, 73, 78, 73, 65, 206, 66, 88, 71, 128, 66, 87, 73, 128, - 66, 87, 69, 69, 128, 66, 87, 69, 128, 66, 87, 65, 128, 66, 85, 85, 77, - 73, 83, 72, 128, 66, 85, 84, 84, 79, 78, 128, 66, 85, 84, 84, 79, 206, - 66, 85, 84, 84, 69, 82, 70, 76, 89, 128, 66, 85, 84, 84, 69, 82, 128, 66, - 85, 212, 66, 85, 83, 84, 211, 66, 85, 83, 212, 66, 85, 83, 83, 89, 69, - 82, 85, 128, 66, 85, 83, 73, 78, 69, 83, 211, 66, 85, 211, 66, 85, 82, - 213, 66, 85, 82, 82, 73, 84, 79, 128, 66, 85, 82, 50, 128, 66, 85, 210, - 66, 85, 79, 89, 128, 66, 85, 79, 88, 128, 66, 85, 79, 80, 128, 66, 85, - 78, 78, 217, 66, 85, 78, 71, 128, 66, 85, 77, 80, 217, 66, 85, 76, 85, - 71, 128, 66, 85, 76, 85, 199, 66, 85, 76, 76, 83, 69, 89, 69, 128, 66, - 85, 76, 76, 211, 66, 85, 76, 76, 72, 79, 82, 78, 128, 66, 85, 76, 76, 72, - 79, 82, 206, 66, 85, 76, 76, 69, 84, 128, 66, 85, 76, 76, 69, 212, 66, - 85, 76, 76, 128, 66, 85, 76, 66, 128, 66, 85, 75, 89, 128, 66, 85, 73, - 76, 68, 73, 78, 71, 83, 128, 66, 85, 73, 76, 68, 73, 78, 71, 128, 66, 85, - 73, 76, 68, 73, 78, 199, 66, 85, 72, 73, 196, 66, 85, 71, 73, 78, 69, 83, - 197, 66, 85, 71, 128, 66, 85, 70, 70, 65, 76, 79, 128, 66, 85, 68, 128, - 66, 85, 67, 75, 76, 69, 128, 66, 85, 67, 75, 69, 84, 128, 66, 85, 66, 66, - 76, 69, 83, 128, 66, 85, 66, 66, 76, 69, 128, 66, 85, 66, 66, 76, 197, - 66, 83, 84, 65, 82, 128, 66, 83, 75, 85, 210, 66, 83, 75, 65, 173, 66, - 83, 68, 85, 211, 66, 82, 85, 83, 200, 66, 82, 79, 87, 206, 66, 82, 79, - 79, 77, 128, 66, 82, 79, 78, 90, 69, 128, 66, 82, 79, 75, 69, 206, 66, - 82, 79, 67, 67, 79, 76, 73, 128, 66, 82, 79, 65, 196, 66, 82, 73, 83, 84, - 76, 69, 128, 66, 82, 73, 71, 72, 84, 78, 69, 83, 211, 66, 82, 73, 69, 70, - 83, 128, 66, 82, 73, 69, 70, 67, 65, 83, 69, 128, 66, 82, 73, 68, 71, - 197, 66, 82, 73, 68, 197, 66, 82, 73, 67, 75, 128, 66, 82, 73, 128, 66, - 82, 69, 86, 73, 83, 128, 66, 82, 69, 86, 69, 45, 77, 65, 67, 82, 79, 78, - 128, 66, 82, 69, 86, 197, 66, 82, 69, 65, 84, 72, 217, 66, 82, 69, 65, - 84, 200, 66, 82, 69, 65, 83, 84, 45, 70, 69, 69, 68, 73, 78, 71, 128, 66, - 82, 69, 65, 75, 84, 72, 82, 79, 85, 71, 72, 128, 66, 82, 68, 193, 66, 82, - 65, 78, 67, 72, 73, 78, 199, 66, 82, 65, 78, 67, 72, 69, 83, 128, 66, 82, - 65, 78, 67, 72, 128, 66, 82, 65, 78, 67, 200, 66, 82, 65, 75, 67, 69, 84, - 128, 66, 82, 65, 73, 78, 128, 66, 82, 65, 67, 75, 69, 84, 211, 66, 82, - 65, 67, 75, 69, 84, 69, 196, 66, 82, 65, 67, 75, 69, 84, 128, 66, 82, 65, - 67, 75, 69, 212, 66, 82, 65, 67, 69, 128, 66, 81, 128, 66, 80, 72, 128, - 66, 79, 89, 211, 66, 79, 89, 128, 66, 79, 88, 73, 78, 199, 66, 79, 87, - 84, 73, 69, 128, 66, 79, 87, 84, 73, 197, 66, 79, 87, 76, 73, 78, 71, - 128, 66, 79, 87, 76, 128, 66, 79, 87, 204, 66, 79, 87, 73, 78, 199, 66, - 79, 215, 66, 79, 85, 81, 85, 69, 84, 128, 66, 79, 85, 81, 85, 69, 212, - 66, 79, 85, 78, 68, 65, 82, 217, 66, 79, 84, 84, 79, 77, 45, 83, 72, 65, - 68, 69, 196, 66, 79, 84, 84, 79, 77, 45, 76, 73, 71, 72, 84, 69, 196, 66, - 79, 84, 84, 79, 77, 128, 66, 79, 84, 84, 79, 205, 66, 79, 84, 84, 76, 69, - 128, 66, 79, 84, 84, 76, 197, 66, 79, 84, 200, 66, 79, 82, 90, 89, 128, - 66, 79, 82, 90, 65, 89, 65, 128, 66, 79, 82, 85, 84, 79, 128, 66, 79, 82, - 65, 88, 45, 51, 128, 66, 79, 82, 65, 88, 45, 50, 128, 66, 79, 82, 65, 88, - 128, 66, 79, 80, 79, 77, 79, 70, 207, 66, 79, 79, 84, 83, 128, 66, 79, - 79, 84, 128, 66, 79, 79, 77, 69, 82, 65, 78, 71, 128, 66, 79, 79, 75, 83, - 128, 66, 79, 79, 75, 77, 65, 82, 75, 128, 66, 79, 79, 75, 77, 65, 82, - 203, 66, 79, 78, 69, 128, 66, 79, 77, 66, 128, 66, 79, 77, 128, 66, 79, - 76, 84, 128, 66, 79, 76, 212, 66, 79, 72, 65, 73, 82, 73, 195, 66, 79, - 68, 89, 128, 66, 79, 68, 217, 66, 79, 65, 82, 128, 66, 79, 65, 128, 66, - 76, 85, 69, 66, 69, 82, 82, 73, 69, 83, 128, 66, 76, 85, 69, 128, 66, 76, - 85, 197, 66, 76, 79, 87, 73, 78, 199, 66, 76, 79, 87, 70, 73, 83, 72, - 128, 66, 76, 79, 215, 66, 76, 79, 83, 83, 79, 77, 128, 66, 76, 79, 79, - 68, 128, 66, 76, 79, 78, 196, 66, 76, 79, 67, 75, 45, 55, 128, 66, 76, - 79, 67, 75, 45, 54, 128, 66, 76, 79, 67, 75, 45, 53, 128, 66, 76, 79, 67, - 75, 45, 52, 128, 66, 76, 79, 67, 75, 45, 51, 128, 66, 76, 79, 67, 75, 45, - 50, 128, 66, 76, 79, 67, 75, 45, 49, 51, 53, 56, 128, 66, 76, 79, 67, 75, - 128, 66, 76, 73, 78, 203, 66, 76, 65, 78, 75, 128, 66, 76, 65, 78, 203, - 66, 76, 65, 68, 197, 66, 76, 65, 67, 75, 76, 69, 84, 84, 69, 210, 66, 76, - 65, 67, 75, 70, 79, 79, 212, 66, 76, 65, 67, 75, 45, 76, 69, 84, 84, 69, - 210, 66, 76, 65, 67, 75, 45, 70, 69, 65, 84, 72, 69, 82, 69, 196, 66, 76, - 65, 67, 75, 128, 66, 75, 65, 173, 66, 73, 84, 84, 69, 82, 128, 66, 73, - 84, 73, 78, 199, 66, 73, 84, 197, 66, 73, 84, 67, 79, 73, 206, 66, 73, - 83, 79, 78, 128, 66, 73, 83, 77, 85, 84, 200, 66, 73, 83, 77, 73, 76, 76, - 65, 200, 66, 73, 83, 72, 79, 208, 66, 73, 83, 69, 67, 84, 73, 78, 199, - 66, 73, 83, 65, 72, 128, 66, 73, 82, 85, 128, 66, 73, 82, 84, 72, 68, 65, - 217, 66, 73, 82, 71, 65, 128, 66, 73, 82, 71, 193, 66, 73, 82, 68, 128, - 66, 73, 79, 72, 65, 90, 65, 82, 196, 66, 73, 78, 79, 86, 73, 76, 69, 128, - 66, 73, 78, 79, 67, 85, 76, 65, 210, 66, 73, 78, 68, 73, 78, 199, 66, 73, - 78, 68, 73, 128, 66, 73, 78, 65, 82, 217, 66, 73, 76, 76, 73, 79, 78, 83, - 128, 66, 73, 76, 76, 73, 65, 82, 68, 83, 128, 66, 73, 76, 76, 69, 196, - 66, 73, 76, 65, 66, 73, 65, 204, 66, 73, 75, 73, 78, 73, 128, 66, 73, 71, - 128, 66, 73, 199, 66, 73, 69, 84, 128, 66, 73, 68, 69, 78, 84, 65, 204, - 66, 73, 68, 65, 75, 85, 79, 206, 66, 73, 67, 89, 67, 76, 73, 83, 84, 128, - 66, 73, 67, 89, 67, 76, 69, 83, 128, 66, 73, 67, 89, 67, 76, 69, 128, 66, - 73, 67, 69, 80, 83, 128, 66, 73, 66, 76, 69, 45, 67, 82, 69, 197, 66, 73, - 66, 128, 66, 201, 66, 72, 85, 128, 66, 72, 79, 79, 128, 66, 72, 79, 128, - 66, 72, 73, 128, 66, 72, 69, 84, 72, 128, 66, 72, 69, 69, 128, 66, 72, - 69, 128, 66, 72, 65, 84, 84, 73, 80, 82, 79, 76, 213, 66, 72, 65, 77, - 128, 66, 72, 65, 76, 69, 128, 66, 72, 65, 76, 197, 66, 72, 65, 73, 75, - 83, 85, 75, 201, 66, 72, 65, 65, 128, 66, 72, 65, 128, 66, 69, 89, 89, - 65, 76, 128, 66, 69, 88, 128, 66, 69, 86, 69, 82, 65, 71, 69, 128, 66, - 69, 86, 69, 82, 65, 71, 197, 66, 69, 84, 87, 69, 69, 78, 128, 66, 69, 84, - 87, 69, 69, 206, 66, 69, 84, 72, 128, 66, 69, 84, 65, 128, 66, 69, 84, - 193, 66, 69, 212, 66, 69, 83, 73, 68, 197, 66, 69, 82, 75, 65, 78, 65, - 206, 66, 69, 82, 66, 69, 210, 66, 69, 80, 128, 66, 69, 79, 82, 195, 66, - 69, 78, 90, 69, 78, 197, 66, 69, 78, 84, 207, 66, 69, 78, 84, 128, 66, - 69, 78, 212, 66, 69, 78, 71, 65, 76, 201, 66, 69, 78, 68, 69, 128, 66, - 69, 78, 68, 128, 66, 69, 78, 196, 66, 69, 206, 66, 69, 76, 84, 128, 66, - 69, 76, 212, 66, 69, 76, 79, 215, 66, 69, 76, 76, 72, 79, 208, 66, 69, - 76, 76, 128, 66, 69, 76, 204, 66, 69, 76, 71, 84, 72, 79, 210, 66, 69, - 73, 84, 72, 128, 66, 69, 72, 73, 78, 196, 66, 69, 72, 69, 72, 128, 66, - 69, 72, 69, 200, 66, 69, 72, 128, 66, 69, 200, 66, 69, 71, 73, 78, 78, - 73, 78, 71, 128, 66, 69, 71, 73, 78, 78, 69, 82, 128, 66, 69, 71, 73, + 73, 78, 69, 68, 128, 67, 79, 78, 74, 79, 73, 78, 69, 196, 67, 79, 78, 73, + 67, 65, 204, 67, 79, 78, 71, 82, 85, 69, 78, 212, 67, 79, 78, 71, 82, 65, + 84, 85, 76, 65, 84, 73, 79, 78, 128, 67, 79, 78, 70, 85, 83, 69, 196, 67, + 79, 78, 70, 79, 85, 78, 68, 69, 196, 67, 79, 78, 70, 76, 73, 67, 84, 128, + 67, 79, 78, 70, 69, 84, 84, 201, 67, 79, 78, 67, 65, 86, 69, 45, 83, 73, + 68, 69, 196, 67, 79, 78, 67, 65, 86, 69, 45, 80, 79, 73, 78, 84, 69, 196, + 67, 79, 77, 80, 85, 84, 69, 82, 83, 128, 67, 79, 77, 80, 85, 84, 69, 82, + 128, 67, 79, 77, 80, 82, 69, 83, 83, 73, 79, 78, 128, 67, 79, 77, 80, 82, + 69, 83, 83, 69, 196, 67, 79, 77, 80, 79, 83, 73, 84, 73, 79, 78, 128, 67, + 79, 77, 80, 79, 83, 73, 84, 73, 79, 206, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 55, 54, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 54, + 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 54, 54, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 55, 54, 53, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 55, 54, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 55, 54, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 54, 50, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 54, 49, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 55, 54, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 55, 53, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 53, + 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 53, 55, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 55, 53, 54, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 55, 53, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 55, 53, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 53, 51, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 53, 50, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 55, 53, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 55, 53, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 52, + 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 52, 56, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 55, 52, 55, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 55, 52, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 55, 52, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 52, 52, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 52, 51, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 55, 52, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 55, 52, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 52, + 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 51, 57, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 55, 51, 56, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 55, 51, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 55, 51, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 51, 53, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 51, 52, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 55, 51, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 55, 51, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 51, + 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 51, 48, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 55, 50, 57, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 55, 50, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 55, 50, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 50, 54, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 50, 53, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 55, 50, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 55, 50, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 50, + 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 50, 49, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 55, 50, 48, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 55, 49, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 55, 49, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 49, 55, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 49, 54, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 55, 49, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 55, 49, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 49, + 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 49, 50, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 55, 49, 49, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 55, 49, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 55, 48, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 48, 56, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 48, 55, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 55, 48, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 55, 48, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 48, + 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 48, 51, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 55, 48, 50, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 55, 48, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 55, 48, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 57, 57, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 57, 56, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 54, 57, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 54, 57, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 57, + 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 57, 52, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 54, 57, 51, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 54, 57, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 54, 57, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 57, 48, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 56, 57, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 54, 56, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 54, 56, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 56, + 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 56, 53, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 54, 56, 52, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 54, 56, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 54, 56, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 56, 49, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 56, 48, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 54, 55, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 54, 55, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 55, + 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 55, 54, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 54, 55, 53, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 54, 55, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 54, 55, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 55, 50, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 55, 49, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 54, 55, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 54, 54, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 54, + 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 54, 55, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 54, 54, 54, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 54, 54, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 54, 54, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 54, 51, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 54, 50, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 54, 54, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 54, 54, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 53, + 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 53, 56, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 54, 53, 55, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 54, 53, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 54, 53, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 53, 52, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 53, 51, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 54, 53, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 54, 53, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 53, + 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 52, 57, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 54, 52, 56, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 54, 52, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 54, 52, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 52, 53, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 52, 52, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 54, 52, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 54, 52, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 52, + 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 52, 48, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 54, 51, 57, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 54, 51, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 54, 51, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 51, 54, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 51, 53, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 54, 51, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 54, 51, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 51, + 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 51, 49, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 54, 51, 48, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 54, 50, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 54, 50, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 50, 55, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 50, 54, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 54, 50, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 54, 50, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 50, + 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 50, 50, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 54, 50, 49, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 54, 50, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 54, 49, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 49, 56, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 49, 55, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 54, 49, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 54, 49, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 49, + 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 49, 51, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 54, 49, 50, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 54, 49, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 54, 49, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 48, 57, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 48, 56, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 54, 48, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 54, 48, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 48, + 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 48, 52, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 54, 48, 51, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 54, 48, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 54, 48, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 48, 48, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 57, 57, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 53, 57, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 53, 57, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 57, + 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 57, 53, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 53, 57, 52, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 53, 57, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 53, 57, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 57, 49, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 57, 48, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 53, 56, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 53, 56, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 56, + 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 56, 54, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 53, 56, 53, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 53, 56, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 53, 56, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 56, 50, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 56, 49, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 53, 56, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 53, 55, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 55, + 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 55, 55, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 53, 55, 54, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 53, 55, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 53, 55, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 55, 51, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 55, 50, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 53, 55, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 53, 55, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 54, + 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 54, 56, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 53, 54, 55, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 53, 54, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 53, 54, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 54, 52, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 54, 51, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 53, 54, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 53, 54, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 54, + 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 53, 57, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 53, 53, 56, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 53, 53, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 53, 53, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 53, 53, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 53, 52, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 53, 53, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 53, 53, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 53, + 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 53, 48, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 53, 52, 57, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 53, 52, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 53, 52, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 52, 54, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 52, 53, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 53, 52, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 53, 52, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 52, + 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 52, 49, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 53, 52, 48, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 53, 51, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 53, 51, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 51, 55, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 51, 54, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 53, 51, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 53, 51, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 51, + 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 51, 50, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 53, 51, 49, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 53, 51, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 53, 50, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 50, 56, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 50, 55, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 53, 50, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 53, 50, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 50, + 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 50, 51, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 53, 50, 50, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 53, 50, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 53, 50, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 49, 57, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 49, 56, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 53, 49, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 53, 49, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 49, + 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 49, 52, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 53, 49, 51, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 53, 49, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 53, 49, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 49, 48, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 48, 57, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 53, 48, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 53, 48, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 48, + 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 48, 53, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 53, 48, 52, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 53, 48, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 53, 48, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 48, 49, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 48, 48, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 52, 57, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 52, 57, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 57, + 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 57, 54, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 52, 57, 53, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 52, 57, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 52, 57, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 57, 50, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 57, 49, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 52, 57, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 52, 56, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 56, + 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 56, 55, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 52, 56, 54, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 52, 56, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 52, 56, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 56, 51, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 56, 50, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 52, 56, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 52, 56, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 55, + 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 55, 56, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 52, 55, 55, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 52, 55, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 52, 55, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 55, 52, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 55, 51, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 52, 55, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 52, 55, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 55, + 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 54, 57, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 52, 54, 56, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 52, 54, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 52, 54, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 54, 53, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 54, 52, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 52, 54, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 52, 54, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 54, + 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 54, 48, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 52, 53, 57, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 52, 53, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 52, 53, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 53, 54, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 53, 53, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 52, 53, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 52, 53, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 53, + 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 53, 49, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 52, 53, 48, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 52, 52, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 52, 52, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 52, 55, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 52, 54, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 52, 52, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 52, 52, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 52, + 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 52, 50, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 52, 52, 49, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 52, 52, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 52, 51, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 51, 56, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 51, 55, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 52, 51, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 52, 51, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 51, + 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 51, 51, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 52, 51, 50, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 52, 51, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 52, 51, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 50, 57, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 50, 56, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 52, 50, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 52, 50, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 50, + 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 50, 52, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 52, 50, 51, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 52, 50, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 52, 50, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 50, 48, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 49, 57, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 52, 49, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 52, 49, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 49, + 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 49, 53, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 52, 49, 52, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 52, 49, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 52, 49, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 49, 49, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 49, 48, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 52, 48, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 52, 48, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 48, + 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 48, 54, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 52, 48, 53, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 52, 48, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 52, 48, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 48, 50, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 48, 49, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 52, 48, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 51, 57, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 57, + 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 57, 55, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 51, 57, 54, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 51, 57, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 51, 57, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 57, 51, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 57, 50, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 51, 57, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 51, 57, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 56, + 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 56, 56, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 51, 56, 55, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 51, 56, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 51, 56, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 56, 52, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 56, 51, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 51, 56, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 51, 56, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 56, + 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 55, 57, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 51, 55, 56, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 51, 55, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 51, 55, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 55, 53, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 55, 52, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 51, 55, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 51, 55, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 55, + 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 55, 48, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 51, 54, 57, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 51, 54, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 51, 54, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 54, 54, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 54, 53, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 51, 54, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 51, 54, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 54, + 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 54, 49, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 51, 54, 48, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 51, 53, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 51, 53, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 53, 55, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 53, 54, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 51, 53, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 51, 53, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 53, + 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 53, 50, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 51, 53, 49, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 51, 53, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 51, 52, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 52, 56, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 52, 55, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 51, 52, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 51, 52, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 52, + 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 52, 51, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 51, 52, 50, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 51, 52, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 51, 52, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 51, 57, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 51, 56, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 51, 51, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 51, 51, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 51, + 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 51, 52, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 51, 51, 51, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 51, 51, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 51, 51, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 51, 48, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 50, 57, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 51, 50, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 51, 50, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 50, + 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 50, 53, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 51, 50, 52, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 51, 50, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 51, 50, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 50, 49, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 50, 48, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 51, 49, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 51, 49, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 49, + 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 49, 54, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 51, 49, 53, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 51, 49, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 51, 49, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 49, 50, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 49, 49, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 51, 49, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 51, 48, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 48, + 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 48, 55, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 51, 48, 54, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 51, 48, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 51, 48, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 48, 51, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 48, 50, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 51, 48, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 51, 48, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 57, + 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 57, 56, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 50, 57, 55, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 50, 57, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 50, 57, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 57, 52, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 57, 51, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 50, 57, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 50, 57, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 57, + 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 56, 57, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 50, 56, 56, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 50, 56, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 50, 56, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 56, 53, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 56, 52, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 50, 56, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 50, 56, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 56, + 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 56, 48, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 50, 55, 57, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 50, 55, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 50, 55, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 55, 54, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 55, 53, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 50, 55, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 50, 55, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 55, + 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 55, 49, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 50, 55, 48, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 50, 54, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 50, 54, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 54, 55, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 54, 54, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 50, 54, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 50, 54, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 54, + 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 54, 50, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 50, 54, 49, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 50, 54, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 50, 53, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 53, 56, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 53, 55, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 50, 53, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 50, 53, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 53, + 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 53, 51, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 50, 53, 50, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 50, 53, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 50, 53, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 52, 57, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 52, 56, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 50, 52, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 50, 52, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 52, + 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 52, 52, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 50, 52, 51, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 50, 52, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 50, 52, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 52, 48, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 51, 57, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 50, 51, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 50, 51, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 51, + 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 51, 53, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 50, 51, 52, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 50, 51, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 50, 51, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 51, 49, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 51, 48, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 50, 50, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 50, 50, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 50, + 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 50, 54, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 50, 50, 53, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 50, 50, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 50, 50, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 50, 50, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 50, 49, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 50, 50, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 50, 49, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 49, + 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 49, 55, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 50, 49, 54, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 50, 49, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 50, 49, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 49, 51, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 49, 50, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 50, 49, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 50, 49, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 48, + 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 48, 56, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 50, 48, 55, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 50, 48, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 50, 48, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 48, 52, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 48, 51, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 50, 48, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 50, 48, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 48, + 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 57, 57, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 49, 57, 56, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 49, 57, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 49, 57, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 57, 53, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 57, 52, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 49, 57, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 49, 57, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 57, + 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 57, 48, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 49, 56, 57, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 49, 56, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 49, 56, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 56, 54, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 56, 53, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 49, 56, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 49, 56, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 56, + 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 56, 49, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 49, 56, 48, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 49, 55, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 49, 55, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 55, 55, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 55, 54, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 49, 55, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 49, 55, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 55, + 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 55, 50, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 49, 55, 49, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 49, 55, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 49, 54, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 54, 56, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 54, 55, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 49, 54, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 49, 54, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 54, + 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 54, 51, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 49, 54, 50, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 49, 54, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 49, 54, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 53, 57, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 53, 56, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 49, 53, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 49, 53, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 53, + 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 53, 52, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 49, 53, 51, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 49, 53, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 49, 53, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 53, 48, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 52, 57, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 49, 52, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 49, 52, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 52, + 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 52, 53, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 49, 52, 52, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 49, 52, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 49, 52, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 52, 49, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 52, 48, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 49, 51, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 49, 51, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 51, + 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 51, 54, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 49, 51, 53, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 49, 51, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 49, 51, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 51, 50, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 51, 49, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 49, 51, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 49, 50, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 50, + 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 50, 55, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 49, 50, 54, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 49, 50, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 49, 50, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 50, 51, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 50, 50, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 49, 50, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 49, 50, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 49, + 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 49, 56, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 49, 49, 55, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 49, 49, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 49, 49, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 49, 52, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 49, 51, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 49, 49, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 49, 49, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 49, + 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 48, 57, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 49, 48, 56, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 49, 48, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 49, 48, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 48, 53, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 48, 52, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 49, 48, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 49, 48, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 48, + 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 48, 48, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 48, 57, 57, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 48, 57, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 48, 57, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 57, 54, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 57, 53, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 48, 57, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 48, 57, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 57, + 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 57, 49, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 48, 57, 48, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 48, 56, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 48, 56, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 56, 55, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 56, 54, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 48, 56, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 48, 56, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 56, + 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 56, 50, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 48, 56, 49, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 48, 56, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 48, 55, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 55, 56, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 55, 55, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 48, 55, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 48, 55, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 55, + 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 55, 51, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 48, 55, 50, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 48, 55, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 48, 55, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 54, 57, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 54, 56, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 48, 54, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 48, 54, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 54, + 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 54, 52, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 48, 54, 51, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 48, 54, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 48, 54, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 54, 48, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 53, 57, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 48, 53, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 48, 53, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 53, + 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 53, 53, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 48, 53, 52, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 48, 53, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 48, 53, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 53, 49, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 53, 48, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 48, 52, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 48, 52, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 52, + 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 52, 54, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 48, 52, 53, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 48, 52, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 48, 52, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 52, 50, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 52, 49, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 48, 52, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 48, 51, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 51, + 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 51, 55, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 48, 51, 54, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 48, 51, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 48, 51, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 51, 51, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 51, 50, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 48, 51, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 48, 51, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 50, + 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 50, 56, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 48, 50, 55, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 48, 50, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 48, 50, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 50, 52, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 50, 51, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 48, 50, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 48, 50, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 50, + 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 49, 57, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 48, 49, 56, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 48, 49, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 48, 49, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 49, 53, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 49, 52, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 48, 49, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 48, 49, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 49, + 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 49, 48, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 84, 45, 48, 48, 57, 128, 67, 79, 77, 80, 79, 78, + 69, 78, 84, 45, 48, 48, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, + 48, 48, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 48, 54, 128, + 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 48, 53, 128, 67, 79, 77, 80, + 79, 78, 69, 78, 84, 45, 48, 48, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, + 84, 45, 48, 48, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 48, + 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 48, 49, 128, 67, 79, + 77, 80, 79, 78, 69, 78, 212, 67, 79, 77, 80, 76, 73, 65, 78, 67, 69, 128, + 67, 79, 77, 80, 76, 69, 84, 73, 79, 78, 128, 67, 79, 77, 80, 76, 69, 84, + 69, 68, 128, 67, 79, 77, 80, 76, 69, 77, 69, 78, 84, 128, 67, 79, 77, 80, + 65, 83, 83, 128, 67, 79, 77, 80, 65, 82, 69, 128, 67, 79, 77, 77, 79, + 206, 67, 79, 77, 77, 69, 82, 67, 73, 65, 204, 67, 79, 77, 77, 65, 78, 68, + 128, 67, 79, 77, 77, 65, 128, 67, 79, 77, 77, 193, 67, 79, 77, 69, 84, + 128, 67, 79, 77, 66, 73, 78, 69, 68, 128, 67, 79, 77, 66, 73, 78, 65, 84, + 73, 79, 78, 128, 67, 79, 77, 66, 128, 67, 79, 76, 85, 77, 78, 128, 67, + 79, 76, 79, 82, 128, 67, 79, 76, 76, 73, 83, 73, 79, 206, 67, 79, 76, 76, + 128, 67, 79, 76, 196, 67, 79, 73, 78, 128, 67, 79, 70, 70, 73, 78, 128, + 67, 79, 69, 78, 71, 128, 67, 79, 69, 78, 199, 67, 79, 68, 65, 128, 67, + 79, 67, 79, 78, 85, 84, 128, 67, 79, 67, 75, 84, 65, 73, 204, 67, 79, 67, + 75, 82, 79, 65, 67, 72, 128, 67, 79, 65, 84, 128, 67, 79, 65, 83, 84, 69, + 82, 128, 67, 79, 65, 128, 67, 77, 51, 48, 50, 128, 67, 77, 51, 48, 49, + 128, 67, 77, 49, 49, 52, 128, 67, 77, 49, 49, 50, 128, 67, 77, 49, 49, + 48, 128, 67, 77, 49, 48, 57, 128, 67, 77, 49, 48, 56, 128, 67, 77, 49, + 48, 55, 128, 67, 77, 49, 48, 53, 128, 67, 77, 49, 48, 52, 128, 67, 77, + 49, 48, 51, 128, 67, 77, 49, 48, 50, 128, 67, 77, 49, 48, 49, 128, 67, + 77, 49, 48, 48, 128, 67, 77, 48, 57, 57, 128, 67, 77, 48, 57, 56, 128, + 67, 77, 48, 57, 55, 128, 67, 77, 48, 57, 54, 128, 67, 77, 48, 57, 53, + 128, 67, 77, 48, 57, 52, 128, 67, 77, 48, 57, 50, 128, 67, 77, 48, 57, + 49, 128, 67, 77, 48, 57, 48, 128, 67, 77, 48, 56, 57, 128, 67, 77, 48, + 56, 56, 128, 67, 77, 48, 56, 55, 128, 67, 77, 48, 56, 54, 128, 67, 77, + 48, 56, 53, 128, 67, 77, 48, 56, 52, 128, 67, 77, 48, 56, 51, 128, 67, + 77, 48, 56, 50, 128, 67, 77, 48, 56, 49, 128, 67, 77, 48, 56, 48, 128, + 67, 77, 48, 55, 57, 128, 67, 77, 48, 55, 56, 128, 67, 77, 48, 55, 54, + 128, 67, 77, 48, 55, 53, 66, 128, 67, 77, 48, 55, 53, 128, 67, 77, 48, + 55, 52, 128, 67, 77, 48, 55, 51, 128, 67, 77, 48, 55, 50, 128, 67, 77, + 48, 55, 49, 128, 67, 77, 48, 55, 48, 128, 67, 77, 48, 54, 57, 128, 67, + 77, 48, 54, 56, 128, 67, 77, 48, 54, 55, 128, 67, 77, 48, 54, 54, 128, + 67, 77, 48, 54, 52, 128, 67, 77, 48, 54, 51, 128, 67, 77, 48, 54, 50, + 128, 67, 77, 48, 54, 49, 128, 67, 77, 48, 54, 48, 128, 67, 77, 48, 53, + 57, 128, 67, 77, 48, 53, 56, 128, 67, 77, 48, 53, 54, 128, 67, 77, 48, + 53, 53, 128, 67, 77, 48, 53, 52, 128, 67, 77, 48, 53, 51, 128, 67, 77, + 48, 53, 50, 128, 67, 77, 48, 53, 49, 128, 67, 77, 48, 53, 48, 128, 67, + 77, 48, 52, 57, 128, 67, 77, 48, 52, 55, 128, 67, 77, 48, 52, 54, 128, + 67, 77, 48, 52, 52, 128, 67, 77, 48, 52, 49, 128, 67, 77, 48, 52, 48, + 128, 67, 77, 48, 51, 57, 128, 67, 77, 48, 51, 56, 128, 67, 77, 48, 51, + 55, 128, 67, 77, 48, 51, 54, 128, 67, 77, 48, 51, 53, 128, 67, 77, 48, + 51, 52, 128, 67, 77, 48, 51, 51, 128, 67, 77, 48, 51, 48, 128, 67, 77, + 48, 50, 57, 128, 67, 77, 48, 50, 56, 128, 67, 77, 48, 50, 55, 128, 67, + 77, 48, 50, 54, 128, 67, 77, 48, 50, 53, 128, 67, 77, 48, 50, 52, 128, + 67, 77, 48, 50, 51, 128, 67, 77, 48, 50, 49, 128, 67, 77, 48, 49, 57, + 128, 67, 77, 48, 49, 55, 128, 67, 77, 48, 49, 53, 128, 67, 77, 48, 49, + 51, 128, 67, 77, 48, 49, 50, 66, 128, 67, 77, 48, 49, 50, 128, 67, 77, + 48, 49, 49, 128, 67, 77, 48, 49, 48, 128, 67, 77, 48, 48, 57, 128, 67, + 77, 48, 48, 56, 128, 67, 77, 48, 48, 55, 128, 67, 77, 48, 48, 54, 128, + 67, 77, 48, 48, 53, 128, 67, 77, 48, 48, 52, 128, 67, 77, 48, 48, 50, + 128, 67, 77, 48, 48, 49, 128, 67, 77, 128, 67, 205, 67, 76, 85, 83, 84, + 69, 82, 45, 73, 78, 73, 84, 73, 65, 204, 67, 76, 85, 83, 84, 69, 82, 45, + 70, 73, 78, 65, 204, 67, 76, 85, 83, 84, 69, 210, 67, 76, 85, 66, 83, + 128, 67, 76, 85, 66, 45, 83, 80, 79, 75, 69, 196, 67, 76, 85, 66, 128, + 67, 76, 85, 194, 67, 76, 79, 87, 206, 67, 76, 79, 86, 69, 82, 128, 67, + 76, 79, 85, 68, 128, 67, 76, 79, 85, 196, 67, 76, 79, 84, 72, 69, 83, + 128, 67, 76, 79, 84, 72, 128, 67, 76, 79, 83, 69, 84, 128, 67, 76, 79, + 83, 69, 78, 69, 83, 83, 128, 67, 76, 79, 83, 69, 68, 128, 67, 76, 79, 83, + 197, 67, 76, 79, 67, 75, 87, 73, 83, 197, 67, 76, 79, 67, 203, 67, 76, + 73, 86, 73, 83, 128, 67, 76, 73, 80, 66, 79, 65, 82, 68, 128, 67, 76, 73, + 78, 75, 73, 78, 199, 67, 76, 73, 78, 71, 73, 78, 199, 67, 76, 73, 77, 66, + 73, 78, 71, 128, 67, 76, 73, 77, 65, 67, 85, 83, 128, 67, 76, 73, 70, 70, + 128, 67, 76, 73, 67, 75, 128, 67, 76, 73, 67, 203, 67, 76, 69, 70, 45, + 50, 128, 67, 76, 69, 70, 45, 49, 128, 67, 76, 69, 70, 128, 67, 76, 69, + 198, 67, 76, 69, 65, 86, 69, 82, 128, 67, 76, 69, 65, 210, 67, 76, 65, + 83, 83, 73, 67, 65, 204, 67, 76, 65, 80, 80, 73, 78, 199, 67, 76, 65, 80, + 80, 69, 210, 67, 76, 65, 78, 128, 67, 76, 65, 206, 67, 76, 65, 77, 83, + 72, 69, 76, 204, 67, 76, 65, 73, 77, 128, 67, 76, 128, 67, 73, 88, 128, + 67, 73, 86, 73, 76, 73, 65, 78, 128, 67, 73, 84, 89, 83, 67, 65, 80, 69, + 128, 67, 73, 84, 89, 83, 67, 65, 80, 197, 67, 73, 84, 201, 67, 73, 84, + 65, 84, 73, 79, 206, 67, 73, 84, 128, 67, 73, 82, 67, 85, 211, 67, 73, + 82, 67, 85, 77, 70, 76, 69, 88, 128, 67, 73, 82, 67, 85, 77, 70, 76, 69, + 216, 67, 73, 82, 67, 85, 76, 65, 84, 73, 79, 206, 67, 73, 82, 67, 76, 73, + 78, 71, 128, 67, 73, 82, 67, 76, 73, 78, 199, 67, 73, 82, 67, 76, 69, 83, + 128, 67, 73, 82, 67, 76, 69, 211, 67, 73, 82, 67, 76, 69, 68, 128, 67, + 73, 80, 128, 67, 73, 78, 78, 65, 66, 65, 82, 128, 67, 73, 78, 69, 77, 65, + 128, 67, 73, 206, 67, 73, 77, 128, 67, 73, 205, 67, 73, 73, 128, 67, 73, + 69, 88, 128, 67, 73, 69, 85, 67, 45, 83, 83, 65, 78, 71, 80, 73, 69, 85, + 80, 128, 67, 73, 69, 85, 67, 45, 80, 73, 69, 85, 80, 128, 67, 73, 69, 85, + 67, 45, 73, 69, 85, 78, 71, 128, 67, 73, 69, 85, 195, 67, 73, 69, 84, + 128, 67, 73, 69, 80, 128, 67, 73, 69, 128, 67, 72, 89, 88, 128, 67, 72, + 89, 84, 128, 67, 72, 89, 82, 88, 128, 67, 72, 89, 82, 128, 67, 72, 89, + 80, 128, 67, 72, 87, 86, 128, 67, 72, 85, 88, 128, 67, 72, 85, 82, 88, + 128, 67, 72, 85, 82, 67, 72, 128, 67, 72, 85, 82, 128, 67, 72, 85, 80, + 128, 67, 72, 85, 79, 88, 128, 67, 72, 85, 79, 84, 128, 67, 72, 85, 79, + 80, 128, 67, 72, 85, 79, 128, 67, 72, 85, 76, 65, 128, 67, 72, 85, 128, + 67, 72, 82, 89, 83, 65, 78, 84, 72, 69, 77, 85, 77, 128, 67, 72, 82, 79, + 78, 79, 85, 128, 67, 72, 82, 79, 78, 79, 78, 128, 67, 72, 82, 79, 77, + 193, 67, 72, 82, 79, 193, 67, 72, 82, 73, 86, 73, 128, 67, 72, 82, 73, + 83, 84, 77, 65, 83, 128, 67, 72, 82, 73, 83, 84, 77, 65, 211, 67, 72, 79, + 89, 128, 67, 72, 79, 88, 128, 67, 72, 79, 84, 128, 67, 72, 79, 82, 69, + 86, 77, 193, 67, 72, 79, 82, 65, 83, 77, 73, 65, 206, 67, 72, 79, 80, 83, + 84, 73, 67, 75, 83, 128, 67, 72, 79, 80, 128, 67, 72, 79, 75, 69, 128, + 67, 72, 79, 69, 128, 67, 72, 79, 67, 79, 76, 65, 84, 197, 67, 72, 79, 65, + 128, 67, 72, 73, 84, 85, 69, 85, 77, 83, 83, 65, 78, 71, 83, 73, 79, 83, + 128, 67, 72, 73, 84, 85, 69, 85, 77, 83, 83, 65, 78, 71, 67, 73, 69, 85, + 67, 128, 67, 72, 73, 84, 85, 69, 85, 77, 83, 73, 79, 83, 128, 67, 72, 73, + 84, 85, 69, 85, 77, 67, 73, 69, 85, 67, 128, 67, 72, 73, 84, 85, 69, 85, + 77, 67, 72, 73, 69, 85, 67, 72, 128, 67, 72, 73, 82, 79, 78, 128, 67, 72, + 73, 82, 69, 84, 128, 67, 72, 73, 80, 77, 85, 78, 75, 128, 67, 72, 73, 78, + 79, 79, 203, 67, 72, 73, 78, 71, 128, 67, 72, 73, 78, 69, 83, 197, 67, + 72, 73, 78, 128, 67, 72, 73, 77, 69, 128, 67, 72, 73, 77, 128, 67, 72, + 73, 76, 76, 213, 67, 72, 73, 76, 68, 82, 69, 206, 67, 72, 73, 76, 68, + 128, 67, 72, 73, 76, 128, 67, 72, 73, 75, 201, 67, 72, 73, 69, 85, 67, + 72, 45, 75, 72, 73, 69, 85, 75, 72, 128, 67, 72, 73, 69, 85, 67, 72, 45, + 72, 73, 69, 85, 72, 128, 67, 72, 73, 69, 85, 67, 200, 67, 72, 73, 67, 75, + 69, 78, 128, 67, 72, 73, 67, 75, 128, 67, 72, 73, 128, 67, 72, 201, 67, + 72, 72, 73, 77, 128, 67, 72, 72, 65, 128, 67, 72, 69, 88, 128, 67, 72, + 69, 86, 82, 79, 78, 128, 67, 72, 69, 86, 82, 79, 206, 67, 72, 69, 84, + 128, 67, 72, 69, 83, 84, 78, 85, 84, 128, 67, 72, 69, 83, 84, 128, 67, + 72, 69, 83, 211, 67, 72, 69, 82, 89, 128, 67, 72, 69, 82, 82, 217, 67, + 72, 69, 82, 82, 73, 69, 83, 128, 67, 72, 69, 81, 85, 69, 82, 69, 196, 67, + 72, 69, 80, 128, 67, 72, 69, 76, 89, 85, 83, 84, 75, 65, 128, 67, 72, 69, + 76, 78, 85, 128, 67, 72, 69, 73, 78, 65, 80, 128, 67, 72, 69, 73, 75, 72, + 69, 73, 128, 67, 72, 69, 73, 75, 72, 65, 78, 128, 67, 72, 69, 69, 83, + 197, 67, 72, 69, 69, 82, 73, 78, 199, 67, 72, 69, 69, 77, 128, 67, 72, + 69, 69, 75, 211, 67, 72, 69, 69, 75, 128, 67, 72, 69, 69, 128, 67, 72, + 69, 67, 75, 69, 210, 67, 72, 69, 67, 75, 128, 67, 72, 69, 67, 203, 67, + 72, 197, 67, 72, 65, 88, 128, 67, 72, 65, 86, 73, 89, 65, 78, 73, 128, + 67, 72, 65, 84, 84, 65, 87, 65, 128, 67, 72, 65, 84, 128, 67, 72, 65, 83, + 72, 75, 65, 128, 67, 72, 65, 83, 72, 75, 193, 67, 72, 65, 82, 84, 128, + 67, 72, 65, 82, 212, 67, 72, 65, 82, 73, 79, 84, 128, 67, 72, 65, 82, 73, + 79, 212, 67, 72, 65, 82, 65, 67, 84, 69, 82, 83, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 70, 66, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 70, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 70, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 70, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 70, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 70, 54, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 70, 53, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 70, 52, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 70, 51, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 70, 50, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 70, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 70, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 69, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 69, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 69, 68, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 69, 67, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 69, 66, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 69, 65, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 69, 57, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 69, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 69, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 69, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 69, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 69, 52, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 69, 51, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 69, 50, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 69, 49, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 69, 48, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 68, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 68, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 68, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 68, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 68, 66, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 68, 65, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 68, 57, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 68, 56, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 68, 55, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 68, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 68, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 68, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 68, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 68, 50, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 68, 49, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 68, 48, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 67, 70, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 67, 69, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 67, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 67, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 67, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 67, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 67, 57, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 67, 56, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 67, 55, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 67, 54, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 67, 53, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 67, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 67, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 67, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 67, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 67, 48, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 66, 70, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 66, 69, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 66, 68, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 66, 67, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 66, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 66, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 66, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 66, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 66, 55, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 66, 54, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 66, 53, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 66, 52, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 66, 51, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 66, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 66, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 66, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 65, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 65, 69, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 65, 68, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 65, 67, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 65, 66, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 65, 65, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 65, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 65, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 65, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 65, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 65, 53, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 65, 52, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 65, 51, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 65, 50, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 65, 49, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 65, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 57, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 57, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 57, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 57, 67, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 57, 66, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 57, 65, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 57, 57, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 57, 56, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 57, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 57, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 57, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 57, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 57, 51, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 57, 50, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 57, 49, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 57, 48, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 56, 70, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 56, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 56, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 56, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 56, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 56, 65, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 56, 57, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 56, 56, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 56, 55, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 56, 54, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 56, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 56, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 56, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 56, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 56, 49, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 56, 48, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 55, 70, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 55, 69, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 55, 68, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 55, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 55, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 55, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 55, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 55, 56, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 55, 55, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 55, 54, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 55, 53, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 55, 52, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 55, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 55, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 55, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 55, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 54, 70, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 54, 69, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 54, 68, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 54, 67, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 54, 66, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 54, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 54, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 54, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 54, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 54, 54, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 54, 53, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 54, 52, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 54, 51, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 54, 50, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 54, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 54, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 53, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 53, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 53, 68, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 53, 67, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 53, 66, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 53, 65, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 53, 57, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 53, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 53, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 53, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 53, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 53, 52, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 53, 51, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 53, 50, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 53, 49, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 53, 48, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 52, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 52, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 52, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 52, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 52, 66, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 52, 65, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 52, 57, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 52, 56, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 52, 55, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 52, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 52, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 52, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 52, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 52, 50, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 52, 49, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 52, 48, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 51, 70, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 51, 69, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 51, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 51, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 51, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 51, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 51, 57, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 51, 56, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 51, 55, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 51, 54, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 51, 53, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 51, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 51, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 51, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 51, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 51, 48, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 50, 70, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 50, 69, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 50, 68, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 50, 67, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 50, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 50, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 50, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 50, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 50, 55, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 50, 54, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 50, 53, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 50, 52, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 50, 51, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 50, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 50, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 50, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 49, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 49, 69, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 49, 68, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 49, 67, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 49, 66, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 49, 65, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 49, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 49, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 49, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 49, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 49, 53, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 49, 52, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 49, 51, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 49, 50, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 49, 49, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 49, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 48, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 48, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 48, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 48, 67, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 48, 66, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 48, 65, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 48, 57, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 50, 48, 56, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 50, 48, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 50, 48, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 50, 48, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, + 48, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 48, 51, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 48, 50, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 48, 49, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 50, 48, 48, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 49, 70, 70, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 49, 70, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 49, 70, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 49, 70, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, + 70, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 70, 65, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 70, 57, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 70, 56, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 70, 55, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 49, 70, 54, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 49, 70, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 49, 70, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 49, 70, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, + 70, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 70, 49, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 70, 48, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 69, 70, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 69, 69, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 49, 69, 68, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 49, 69, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 49, 69, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 49, 69, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, + 69, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 69, 56, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 69, 55, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 69, 54, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 69, 53, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 49, 69, 52, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 49, 69, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 49, 69, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 49, 69, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, + 69, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 68, 70, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 68, 69, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 68, 68, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 68, 67, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 49, 68, 66, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 49, 68, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 49, 68, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 49, 68, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, + 68, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 68, 54, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 68, 53, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 68, 52, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 68, 51, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 49, 68, 50, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 49, 68, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 49, 68, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 49, 67, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, + 67, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 67, 68, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 67, 67, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 67, 66, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 67, 65, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 49, 67, 57, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 49, 67, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 49, 67, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 49, 67, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, + 67, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 67, 52, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 67, 51, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 67, 50, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 67, 49, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 49, 67, 48, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 49, 66, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 49, 66, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 49, 66, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, + 66, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 66, 66, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 66, 65, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 66, 57, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 66, 56, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 49, 66, 55, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 49, 66, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 49, 66, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 49, 66, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, + 66, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 66, 50, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 66, 49, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 66, 48, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 65, 70, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 49, 65, 69, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 49, 65, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 49, 65, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 49, 65, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, + 65, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 65, 57, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 65, 56, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 65, 55, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 65, 54, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 49, 65, 53, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 49, 65, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 49, 65, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 49, 65, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, + 65, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 65, 48, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 57, 70, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 57, 69, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 57, 68, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 49, 57, 67, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 49, 57, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 49, 57, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 49, 57, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, + 57, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 57, 55, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 57, 54, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 57, 53, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 57, 52, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 49, 57, 51, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 49, 57, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 49, 57, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 49, 57, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, + 56, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 56, 69, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 56, 68, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 56, 67, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 56, 66, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 49, 56, 65, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 49, 56, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 49, 56, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 49, 56, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, + 56, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 56, 53, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 56, 52, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 56, 51, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 56, 50, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 49, 56, 49, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 49, 56, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 49, 55, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 49, 55, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, + 55, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 55, 67, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 55, 66, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 55, 65, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 55, 57, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 66, 49, 55, 56, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 66, 49, 55, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 66, 49, 55, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 66, 49, 55, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, + 55, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 55, 51, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 55, 50, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 55, 49, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 55, 48, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 68, 53, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 68, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 68, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 68, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 68, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 68, 48, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 70, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 69, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 68, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 67, 67, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 67, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 67, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 67, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 67, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 55, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 54, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 53, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 52, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 67, 51, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 67, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 67, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 67, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 66, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 69, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 68, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 67, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 66, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 66, 65, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 66, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 66, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 66, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 66, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 53, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 52, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 51, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 50, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 66, 49, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 66, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 65, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 65, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 65, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 67, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 66, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 65, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 57, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 65, 56, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 65, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 65, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 65, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 65, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 51, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 50, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 49, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 48, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 57, 70, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 57, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 57, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 57, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 57, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 65, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 57, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 56, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 55, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 57, 54, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 57, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 57, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 57, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 57, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 49, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 48, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 70, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 69, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 56, 68, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 56, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 56, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 56, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 56, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 56, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 55, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 54, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 53, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 56, 52, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 56, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 56, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 56, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 56, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 70, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 69, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 68, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 67, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 55, 66, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 55, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 55, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 55, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 55, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 54, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 53, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 52, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 51, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 55, 50, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 55, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 55, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 54, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 54, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 68, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 67, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 66, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 65, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 54, 57, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 54, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 54, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 54, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 54, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 52, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 51, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 50, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 49, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 54, 48, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 53, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 53, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 53, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 53, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 66, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 65, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 57, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 56, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 53, 55, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 53, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 53, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 53, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 53, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 50, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 49, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 48, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 70, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 52, 69, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 52, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 52, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 52, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 52, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 57, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 56, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 55, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 54, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 52, 53, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 52, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 52, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 52, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 52, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 48, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 70, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 69, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 68, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 51, 67, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 51, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 51, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 51, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 51, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 55, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 54, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 53, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 52, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 51, 51, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 51, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 51, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 51, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 50, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 69, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 68, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 67, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 66, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 50, 65, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 50, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 50, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 50, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 50, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 53, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 52, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 51, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 50, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 50, 49, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 50, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 49, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 49, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 49, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 67, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 66, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 65, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 57, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 49, 56, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 49, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 49, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 49, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 49, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 51, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 50, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 49, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 48, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 48, 70, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 48, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 48, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 48, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 48, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 65, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 57, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 56, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 55, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 67, 48, 54, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 67, 48, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 67, 48, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 67, 48, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, + 48, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 49, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 48, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 70, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 69, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 70, 68, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 70, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 70, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 70, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 70, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 56, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 55, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 54, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 53, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 70, 52, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 70, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 70, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 70, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 70, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 70, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 69, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 68, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 67, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 69, 66, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 69, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 69, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 69, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 69, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 54, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 53, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 52, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 51, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 69, 50, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 69, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 69, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 68, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 68, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 68, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 67, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 66, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 65, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 68, 57, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 68, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 68, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 68, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 68, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 52, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 51, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 50, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 49, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 68, 48, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 67, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 67, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 67, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 67, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 66, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 65, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 57, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 56, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 67, 55, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 67, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 67, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 67, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 67, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 50, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 49, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 48, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 70, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 66, 69, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 66, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 66, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 66, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 66, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 57, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 56, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 55, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 54, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 66, 53, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 66, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 66, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 66, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 66, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 48, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 70, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 69, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 68, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 65, 67, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 65, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 65, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 65, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 65, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 55, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 54, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 53, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 52, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 65, 51, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 65, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 65, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 65, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 57, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 69, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 68, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 67, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 66, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 57, 65, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 57, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 57, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 57, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 57, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 53, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 52, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 51, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 50, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 57, 49, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 57, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 56, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 56, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 56, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 67, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 66, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 65, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 57, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 56, 56, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 56, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 56, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 56, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 56, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 51, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 50, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 49, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 48, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 55, 70, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 55, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 55, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 55, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 55, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 65, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 57, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 56, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 55, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 55, 54, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 55, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 55, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 55, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 55, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 49, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 48, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 70, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 69, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 54, 68, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 54, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 54, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 54, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 54, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 56, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 55, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 54, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 53, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 54, 52, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 54, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 54, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 54, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 54, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 70, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 69, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 68, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 67, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 53, 66, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 53, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 53, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 53, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 53, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 54, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 53, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 52, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 51, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 53, 50, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 53, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 53, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 52, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 52, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 68, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 67, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 66, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 65, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 52, 57, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 52, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 52, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 52, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 52, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 52, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 51, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 50, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 49, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 52, 48, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 51, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 51, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 51, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 51, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 66, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 65, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 57, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 56, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 51, 55, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 51, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 51, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 51, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 51, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 50, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 49, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 48, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 70, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 50, 69, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 50, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 50, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 50, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 50, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 57, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 56, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 55, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 54, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 50, 53, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 50, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 50, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 50, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 50, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 48, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 70, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 69, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 68, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 49, 67, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 49, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 49, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 49, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 49, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 55, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 54, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 53, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 52, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 49, 51, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 49, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 49, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 49, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 48, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 69, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 68, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 67, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 66, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 48, 65, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 48, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 45, 49, 56, 66, 48, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, + 56, 66, 48, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, + 48, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 53, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 52, 128, 67, + 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 51, 128, 67, 72, 65, + 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 50, 128, 67, 72, 65, 82, 65, + 67, 84, 69, 82, 45, 49, 56, 66, 48, 49, 128, 67, 72, 65, 82, 65, 67, 84, + 69, 82, 45, 49, 56, 66, 48, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, + 128, 67, 72, 65, 82, 65, 67, 84, 69, 210, 67, 72, 65, 82, 128, 67, 72, + 65, 80, 84, 69, 82, 128, 67, 72, 65, 80, 128, 67, 72, 65, 78, 71, 128, + 67, 72, 65, 78, 128, 67, 72, 65, 77, 75, 79, 128, 67, 72, 65, 77, 73, 76, + 79, 78, 128, 67, 72, 65, 77, 73, 76, 73, 128, 67, 72, 65, 205, 67, 72, + 65, 75, 77, 193, 67, 72, 65, 73, 78, 83, 128, 67, 72, 65, 68, 65, 128, + 67, 72, 65, 196, 67, 72, 65, 65, 128, 67, 71, 74, 128, 67, 69, 88, 128, + 67, 69, 86, 73, 84, 85, 128, 67, 69, 82, 69, 83, 128, 67, 69, 82, 69, 77, + 79, 78, 89, 128, 67, 69, 82, 69, 75, 128, 67, 69, 82, 45, 87, 65, 128, + 67, 69, 80, 128, 67, 69, 79, 78, 71, 67, 72, 73, 69, 85, 77, 83, 83, 65, + 78, 71, 83, 73, 79, 83, 128, 67, 69, 79, 78, 71, 67, 72, 73, 69, 85, 77, + 83, 83, 65, 78, 71, 67, 73, 69, 85, 67, 128, 67, 69, 79, 78, 71, 67, 72, + 73, 69, 85, 77, 83, 73, 79, 83, 128, 67, 69, 79, 78, 71, 67, 72, 73, 69, + 85, 77, 67, 73, 69, 85, 67, 128, 67, 69, 79, 78, 71, 67, 72, 73, 69, 85, + 77, 67, 72, 73, 69, 85, 67, 72, 128, 67, 69, 78, 84, 85, 82, 73, 65, 204, + 67, 69, 78, 84, 82, 69, 76, 73, 78, 197, 67, 69, 78, 84, 82, 69, 68, 128, + 67, 69, 78, 84, 82, 69, 196, 67, 69, 78, 84, 82, 69, 128, 67, 69, 78, 84, + 82, 197, 67, 69, 78, 84, 82, 65, 76, 73, 90, 65, 84, 73, 79, 206, 67, 69, + 78, 128, 67, 69, 76, 84, 73, 195, 67, 69, 76, 83, 73, 85, 83, 128, 67, + 69, 76, 69, 66, 82, 65, 84, 73, 79, 78, 128, 67, 69, 73, 82, 84, 128, 67, + 69, 73, 76, 73, 78, 71, 128, 67, 69, 73, 76, 73, 78, 199, 67, 69, 69, 86, + 128, 67, 69, 69, 66, 128, 67, 69, 69, 128, 67, 69, 68, 73, 76, 76, 65, + 128, 67, 69, 68, 73, 76, 76, 193, 67, 69, 68, 201, 67, 69, 67, 69, 75, + 128, 67, 69, 67, 65, 75, 128, 67, 69, 67, 65, 203, 67, 69, 65, 76, 67, + 128, 67, 67, 85, 128, 67, 67, 79, 128, 67, 67, 73, 128, 67, 67, 72, 85, + 128, 67, 67, 72, 79, 128, 67, 67, 72, 73, 128, 67, 67, 72, 72, 85, 128, + 67, 67, 72, 72, 79, 128, 67, 67, 72, 72, 73, 128, 67, 67, 72, 72, 69, 69, + 128, 67, 67, 72, 72, 69, 128, 67, 67, 72, 72, 65, 65, 128, 67, 67, 72, + 72, 65, 128, 67, 67, 72, 69, 69, 128, 67, 67, 72, 69, 128, 67, 67, 72, + 65, 65, 128, 67, 67, 72, 65, 128, 67, 67, 72, 128, 67, 67, 69, 69, 128, + 67, 67, 65, 65, 128, 67, 65, 89, 78, 128, 67, 65, 89, 65, 78, 78, 65, + 128, 67, 65, 88, 128, 67, 65, 86, 69, 128, 67, 65, 85, 84, 73, 79, 206, + 67, 65, 85, 76, 68, 82, 79, 78, 128, 67, 65, 85, 68, 65, 84, 197, 67, 65, + 85, 68, 65, 128, 67, 65, 85, 67, 65, 83, 73, 65, 206, 67, 65, 85, 128, + 67, 65, 84, 65, 87, 65, 128, 67, 65, 84, 128, 67, 65, 212, 67, 65, 83, + 84, 76, 69, 128, 67, 65, 83, 75, 69, 212, 67, 65, 82, 89, 83, 84, 73, 65, + 206, 67, 65, 82, 84, 87, 72, 69, 69, 76, 128, 67, 65, 82, 84, 82, 73, 68, + 71, 69, 128, 67, 65, 82, 84, 128, 67, 65, 82, 211, 67, 65, 82, 82, 79, + 84, 128, 67, 65, 82, 82, 73, 65, 71, 197, 67, 65, 82, 80, 69, 78, 84, 82, + 217, 67, 65, 82, 208, 67, 65, 82, 79, 85, 83, 69, 204, 67, 65, 82, 79, + 78, 128, 67, 65, 82, 79, 206, 67, 65, 82, 73, 203, 67, 65, 82, 73, 65, + 206, 67, 65, 82, 69, 84, 128, 67, 65, 82, 69, 212, 67, 65, 82, 197, 67, + 65, 82, 68, 83, 128, 67, 65, 82, 196, 67, 65, 82, 128, 67, 65, 210, 67, + 65, 80, 85, 212, 67, 65, 80, 84, 73, 86, 69, 128, 67, 65, 80, 82, 73, 67, + 79, 82, 78, 128, 67, 65, 80, 80, 69, 196, 67, 65, 80, 79, 128, 67, 65, + 80, 73, 84, 85, 76, 85, 77, 128, 67, 65, 80, 73, 84, 65, 76, 128, 67, 65, + 78, 84, 73, 76, 76, 65, 84, 73, 79, 206, 67, 65, 78, 79, 69, 128, 67, 65, + 78, 78, 79, 78, 128, 67, 65, 78, 78, 69, 196, 67, 65, 78, 199, 67, 65, + 78, 69, 128, 67, 65, 78, 68, 89, 128, 67, 65, 78, 68, 82, 65, 66, 73, 78, + 68, 85, 128, 67, 65, 78, 68, 82, 65, 66, 73, 78, 68, 213, 67, 65, 78, 68, + 82, 65, 128, 67, 65, 78, 68, 82, 193, 67, 65, 78, 68, 76, 69, 128, 67, + 65, 78, 67, 69, 82, 128, 67, 65, 78, 67, 69, 76, 76, 65, 84, 73, 79, 206, + 67, 65, 78, 67, 69, 76, 128, 67, 65, 78, 67, 69, 204, 67, 65, 78, 128, + 67, 65, 77, 80, 73, 78, 71, 128, 67, 65, 77, 78, 85, 195, 67, 65, 77, 69, + 82, 65, 128, 67, 65, 77, 69, 82, 193, 67, 65, 77, 69, 76, 128, 67, 65, + 76, 89, 65, 128, 67, 65, 76, 89, 193, 67, 65, 76, 88, 128, 67, 65, 76, + 76, 128, 67, 65, 76, 204, 67, 65, 76, 69, 78, 68, 65, 82, 128, 67, 65, + 76, 69, 78, 68, 65, 210, 67, 65, 76, 67, 85, 76, 65, 84, 79, 82, 128, 67, + 65, 76, 67, 128, 67, 65, 75, 82, 65, 128, 67, 65, 75, 197, 67, 65, 73, + 128, 67, 65, 72, 128, 67, 65, 69, 83, 85, 82, 65, 128, 67, 65, 68, 85, + 67, 69, 85, 83, 128, 67, 65, 68, 193, 67, 65, 67, 84, 85, 83, 128, 67, + 65, 66, 76, 69, 87, 65, 89, 128, 67, 65, 66, 73, 78, 69, 84, 128, 67, 65, + 66, 66, 65, 71, 69, 45, 84, 82, 69, 69, 128, 67, 65, 65, 78, 71, 128, 67, + 65, 65, 73, 128, 67, 193, 67, 48, 50, 52, 128, 67, 48, 50, 51, 128, 67, + 48, 50, 50, 128, 67, 48, 50, 49, 128, 67, 48, 50, 48, 128, 67, 48, 49, + 57, 128, 67, 48, 49, 56, 128, 67, 48, 49, 55, 128, 67, 48, 49, 54, 128, + 67, 48, 49, 53, 128, 67, 48, 49, 52, 128, 67, 48, 49, 51, 128, 67, 48, + 49, 50, 128, 67, 48, 49, 49, 128, 67, 48, 49, 48, 65, 128, 67, 48, 49, + 48, 128, 67, 48, 48, 57, 128, 67, 48, 48, 56, 128, 67, 48, 48, 55, 128, + 67, 48, 48, 54, 128, 67, 48, 48, 53, 128, 67, 48, 48, 52, 128, 67, 48, + 48, 51, 128, 67, 48, 48, 50, 67, 128, 67, 48, 48, 50, 66, 128, 67, 48, + 48, 50, 65, 128, 67, 48, 48, 50, 128, 67, 48, 48, 49, 128, 67, 45, 83, + 73, 77, 80, 76, 73, 70, 73, 69, 196, 67, 45, 51, 57, 128, 67, 45, 49, 56, + 128, 66, 90, 85, 78, 199, 66, 90, 72, 201, 66, 89, 84, 197, 66, 89, 69, + 76, 79, 82, 85, 83, 83, 73, 65, 78, 45, 85, 75, 82, 65, 73, 78, 73, 65, + 206, 66, 88, 71, 128, 66, 87, 73, 128, 66, 87, 69, 69, 128, 66, 87, 69, + 128, 66, 87, 65, 128, 66, 85, 85, 77, 73, 83, 72, 128, 66, 85, 84, 84, + 79, 78, 128, 66, 85, 84, 84, 79, 206, 66, 85, 84, 84, 69, 82, 70, 76, 89, + 128, 66, 85, 84, 84, 69, 82, 128, 66, 85, 212, 66, 85, 83, 84, 211, 66, + 85, 83, 212, 66, 85, 83, 83, 89, 69, 82, 85, 128, 66, 85, 83, 73, 78, 69, + 83, 211, 66, 85, 211, 66, 85, 82, 213, 66, 85, 82, 82, 73, 84, 79, 128, + 66, 85, 82, 50, 128, 66, 85, 210, 66, 85, 79, 89, 128, 66, 85, 79, 88, + 128, 66, 85, 79, 80, 128, 66, 85, 78, 78, 217, 66, 85, 78, 71, 128, 66, + 85, 77, 80, 217, 66, 85, 76, 85, 71, 128, 66, 85, 76, 85, 199, 66, 85, + 76, 76, 83, 69, 89, 69, 128, 66, 85, 76, 76, 211, 66, 85, 76, 76, 72, 79, + 82, 78, 128, 66, 85, 76, 76, 72, 79, 82, 206, 66, 85, 76, 76, 69, 84, + 128, 66, 85, 76, 76, 69, 212, 66, 85, 76, 76, 128, 66, 85, 76, 66, 128, + 66, 85, 75, 89, 128, 66, 85, 73, 76, 68, 73, 78, 71, 83, 128, 66, 85, 73, + 76, 68, 73, 78, 71, 128, 66, 85, 73, 76, 68, 73, 78, 199, 66, 85, 72, 73, + 196, 66, 85, 71, 73, 78, 69, 83, 197, 66, 85, 71, 128, 66, 85, 70, 70, + 65, 76, 79, 128, 66, 85, 68, 128, 66, 85, 67, 75, 76, 69, 128, 66, 85, + 67, 75, 69, 84, 128, 66, 85, 66, 66, 76, 69, 83, 128, 66, 85, 66, 66, 76, + 69, 128, 66, 85, 66, 66, 76, 197, 66, 83, 84, 65, 82, 128, 66, 83, 75, + 85, 210, 66, 83, 75, 65, 173, 66, 83, 68, 85, 211, 66, 82, 85, 83, 200, + 66, 82, 79, 87, 206, 66, 82, 79, 79, 77, 128, 66, 82, 79, 78, 90, 69, + 128, 66, 82, 79, 75, 69, 206, 66, 82, 79, 67, 67, 79, 76, 73, 128, 66, + 82, 79, 65, 196, 66, 82, 73, 83, 84, 76, 69, 128, 66, 82, 73, 71, 72, 84, + 78, 69, 83, 211, 66, 82, 73, 69, 70, 83, 128, 66, 82, 73, 69, 70, 67, 65, + 83, 69, 128, 66, 82, 73, 68, 71, 197, 66, 82, 73, 68, 197, 66, 82, 73, + 67, 75, 128, 66, 82, 73, 128, 66, 82, 69, 86, 73, 83, 128, 66, 82, 69, + 86, 69, 45, 77, 65, 67, 82, 79, 78, 128, 66, 82, 69, 86, 197, 66, 82, 69, + 65, 84, 72, 217, 66, 82, 69, 65, 84, 200, 66, 82, 69, 65, 83, 84, 45, 70, + 69, 69, 68, 73, 78, 71, 128, 66, 82, 69, 65, 75, 84, 72, 82, 79, 85, 71, + 72, 128, 66, 82, 68, 193, 66, 82, 65, 78, 67, 72, 73, 78, 199, 66, 82, + 65, 78, 67, 72, 69, 83, 128, 66, 82, 65, 78, 67, 72, 128, 66, 82, 65, 78, + 67, 200, 66, 82, 65, 75, 67, 69, 84, 128, 66, 82, 65, 73, 78, 128, 66, + 82, 65, 67, 75, 69, 84, 211, 66, 82, 65, 67, 75, 69, 84, 69, 196, 66, 82, + 65, 67, 75, 69, 84, 128, 66, 82, 65, 67, 75, 69, 212, 66, 82, 65, 67, 69, + 128, 66, 81, 128, 66, 80, 72, 128, 66, 79, 89, 211, 66, 79, 89, 128, 66, + 79, 88, 73, 78, 199, 66, 79, 87, 84, 73, 69, 128, 66, 79, 87, 84, 73, + 197, 66, 79, 87, 76, 73, 78, 71, 128, 66, 79, 87, 76, 128, 66, 79, 87, + 204, 66, 79, 87, 73, 78, 199, 66, 79, 215, 66, 79, 85, 81, 85, 69, 84, + 128, 66, 79, 85, 81, 85, 69, 212, 66, 79, 85, 78, 68, 65, 82, 217, 66, + 79, 84, 84, 79, 77, 45, 83, 72, 65, 68, 69, 196, 66, 79, 84, 84, 79, 77, + 45, 76, 73, 71, 72, 84, 69, 196, 66, 79, 84, 84, 79, 77, 128, 66, 79, 84, + 84, 79, 205, 66, 79, 84, 84, 76, 69, 128, 66, 79, 84, 84, 76, 197, 66, + 79, 84, 200, 66, 79, 82, 90, 89, 128, 66, 79, 82, 90, 65, 89, 65, 128, + 66, 79, 82, 85, 84, 79, 128, 66, 79, 82, 65, 88, 45, 51, 128, 66, 79, 82, + 65, 88, 45, 50, 128, 66, 79, 82, 65, 88, 128, 66, 79, 80, 79, 77, 79, 70, + 207, 66, 79, 79, 84, 83, 128, 66, 79, 79, 84, 128, 66, 79, 79, 77, 69, + 82, 65, 78, 71, 128, 66, 79, 79, 75, 83, 128, 66, 79, 79, 75, 77, 65, 82, + 75, 128, 66, 79, 79, 75, 77, 65, 82, 203, 66, 79, 78, 69, 128, 66, 79, + 77, 66, 128, 66, 79, 77, 128, 66, 79, 76, 84, 128, 66, 79, 76, 212, 66, + 79, 72, 65, 73, 82, 73, 195, 66, 79, 68, 89, 128, 66, 79, 68, 217, 66, + 79, 65, 82, 128, 66, 79, 65, 128, 66, 76, 85, 69, 66, 69, 82, 82, 73, 69, + 83, 128, 66, 76, 85, 69, 128, 66, 76, 85, 197, 66, 76, 79, 87, 73, 78, + 199, 66, 76, 79, 87, 70, 73, 83, 72, 128, 66, 76, 79, 215, 66, 76, 79, + 83, 83, 79, 77, 128, 66, 76, 79, 79, 68, 128, 66, 76, 79, 78, 196, 66, + 76, 79, 67, 75, 45, 55, 128, 66, 76, 79, 67, 75, 45, 54, 128, 66, 76, 79, + 67, 75, 45, 53, 128, 66, 76, 79, 67, 75, 45, 52, 128, 66, 76, 79, 67, 75, + 45, 51, 128, 66, 76, 79, 67, 75, 45, 50, 128, 66, 76, 79, 67, 75, 45, 49, + 51, 53, 56, 128, 66, 76, 79, 67, 75, 128, 66, 76, 73, 78, 203, 66, 76, + 65, 78, 75, 128, 66, 76, 65, 78, 203, 66, 76, 65, 68, 197, 66, 76, 65, + 67, 75, 76, 69, 84, 84, 69, 210, 66, 76, 65, 67, 75, 70, 79, 79, 212, 66, + 76, 65, 67, 75, 45, 76, 69, 84, 84, 69, 210, 66, 76, 65, 67, 75, 45, 70, + 69, 65, 84, 72, 69, 82, 69, 196, 66, 76, 65, 67, 75, 128, 66, 75, 65, + 173, 66, 73, 84, 84, 69, 82, 128, 66, 73, 84, 73, 78, 199, 66, 73, 84, + 197, 66, 73, 84, 67, 79, 73, 206, 66, 73, 83, 79, 78, 128, 66, 73, 83, + 77, 85, 84, 200, 66, 73, 83, 77, 73, 76, 76, 65, 200, 66, 73, 83, 72, 79, + 208, 66, 73, 83, 69, 67, 84, 73, 78, 199, 66, 73, 83, 65, 72, 128, 66, + 73, 82, 85, 128, 66, 73, 82, 84, 72, 68, 65, 217, 66, 73, 82, 71, 65, + 128, 66, 73, 82, 71, 193, 66, 73, 82, 68, 128, 66, 73, 79, 72, 65, 90, + 65, 82, 196, 66, 73, 78, 79, 86, 73, 76, 69, 128, 66, 73, 78, 79, 67, 85, + 76, 65, 210, 66, 73, 78, 68, 73, 78, 199, 66, 73, 78, 68, 73, 128, 66, + 73, 78, 65, 82, 217, 66, 73, 76, 76, 73, 79, 78, 83, 128, 66, 73, 76, 76, + 73, 65, 82, 68, 83, 128, 66, 73, 76, 76, 69, 196, 66, 73, 76, 65, 66, 73, + 65, 204, 66, 73, 75, 73, 78, 73, 128, 66, 73, 71, 128, 66, 73, 199, 66, + 73, 69, 84, 128, 66, 73, 68, 69, 78, 84, 65, 204, 66, 73, 68, 65, 75, 85, + 79, 206, 66, 73, 67, 89, 67, 76, 73, 83, 84, 128, 66, 73, 67, 89, 67, 76, + 69, 83, 128, 66, 73, 67, 89, 67, 76, 69, 128, 66, 73, 67, 69, 80, 83, + 128, 66, 73, 66, 76, 69, 45, 67, 82, 69, 197, 66, 73, 66, 128, 66, 201, + 66, 72, 85, 128, 66, 72, 79, 79, 128, 66, 72, 79, 128, 66, 72, 73, 128, + 66, 72, 69, 84, 72, 128, 66, 72, 69, 69, 128, 66, 72, 69, 128, 66, 72, + 65, 84, 84, 73, 80, 82, 79, 76, 213, 66, 72, 65, 77, 128, 66, 72, 65, 73, + 75, 83, 85, 75, 201, 66, 72, 65, 65, 128, 66, 72, 65, 128, 66, 69, 89, + 89, 65, 76, 128, 66, 69, 88, 128, 66, 69, 86, 69, 82, 65, 71, 69, 128, + 66, 69, 86, 69, 82, 65, 71, 197, 66, 69, 84, 87, 69, 69, 78, 128, 66, 69, + 84, 87, 69, 69, 206, 66, 69, 84, 72, 128, 66, 69, 84, 65, 128, 66, 69, + 84, 193, 66, 69, 212, 66, 69, 83, 73, 68, 197, 66, 69, 82, 75, 65, 78, + 65, 206, 66, 69, 82, 66, 69, 210, 66, 69, 80, 128, 66, 69, 79, 82, 195, + 66, 69, 78, 90, 69, 78, 197, 66, 69, 78, 84, 207, 66, 69, 78, 84, 128, + 66, 69, 78, 212, 66, 69, 78, 71, 65, 76, 201, 66, 69, 78, 68, 69, 128, + 66, 69, 78, 68, 128, 66, 69, 78, 196, 66, 69, 206, 66, 69, 76, 84, 128, + 66, 69, 76, 212, 66, 69, 76, 79, 215, 66, 69, 76, 76, 72, 79, 208, 66, + 69, 76, 76, 128, 66, 69, 76, 204, 66, 69, 76, 71, 84, 72, 79, 210, 66, + 69, 73, 84, 72, 128, 66, 69, 72, 73, 78, 196, 66, 69, 72, 69, 72, 128, + 66, 69, 72, 69, 200, 66, 69, 72, 128, 66, 69, 200, 66, 69, 71, 73, 78, + 78, 73, 78, 71, 128, 66, 69, 71, 73, 78, 78, 69, 82, 128, 66, 69, 71, 73, 206, 66, 69, 70, 79, 82, 197, 66, 69, 69, 84, 76, 69, 128, 66, 69, 69, 84, 65, 128, 66, 69, 69, 210, 66, 69, 69, 72, 73, 86, 69, 128, 66, 69, 69, 72, 128, 66, 69, 69, 200, 66, 69, 67, 65, 85, 83, 69, 128, 66, 69, @@ -6749,10122 +6729,10083 @@ static const unsigned char lexicon[] = { 68, 69, 82, 77, 193, 65, 80, 76, 79, 85, 78, 128, 65, 80, 76, 201, 65, 80, 204, 65, 80, 73, 78, 128, 65, 80, 69, 83, 207, 65, 80, 67, 128, 65, 80, 65, 82, 84, 128, 65, 80, 65, 65, 84, 79, 128, 65, 79, 85, 128, 65, - 79, 82, 128, 65, 78, 89, 128, 65, 78, 85, 83, 86, 65, 82, 65, 89, 65, - 128, 65, 78, 85, 83, 86, 65, 82, 65, 128, 65, 78, 85, 83, 86, 65, 82, - 193, 65, 78, 85, 68, 65, 84, 84, 65, 128, 65, 78, 85, 68, 65, 84, 84, - 193, 65, 78, 84, 73, 82, 69, 83, 84, 82, 73, 67, 84, 73, 79, 78, 128, 65, - 78, 84, 73, 77, 79, 78, 89, 45, 50, 128, 65, 78, 84, 73, 77, 79, 78, 89, - 128, 65, 78, 84, 73, 77, 79, 78, 217, 65, 78, 84, 73, 77, 79, 78, 73, 65, - 84, 69, 128, 65, 78, 84, 73, 75, 69, 78, 79, 77, 65, 128, 65, 78, 84, 73, - 75, 69, 78, 79, 75, 89, 76, 73, 83, 77, 65, 128, 65, 78, 84, 73, 70, 79, - 78, 73, 65, 128, 65, 78, 84, 73, 67, 76, 79, 67, 75, 87, 73, 83, 69, 45, - 82, 79, 84, 65, 84, 69, 196, 65, 78, 84, 73, 67, 76, 79, 67, 75, 87, 73, - 83, 69, 128, 65, 78, 84, 73, 67, 76, 79, 67, 75, 87, 73, 83, 197, 65, 78, - 84, 69, 78, 78, 65, 128, 65, 78, 84, 69, 78, 78, 193, 65, 78, 84, 65, 82, - 71, 79, 77, 85, 75, 72, 65, 128, 65, 78, 83, 85, 218, 65, 78, 83, 72, 69, - 128, 65, 78, 80, 69, 65, 128, 65, 78, 207, 65, 78, 78, 85, 73, 84, 217, - 65, 78, 78, 79, 84, 65, 84, 73, 79, 206, 65, 78, 78, 65, 65, 85, 128, 65, - 78, 75, 72, 128, 65, 78, 74, 73, 128, 65, 78, 73, 77, 65, 76, 128, 65, - 78, 72, 85, 78, 78, 65, 128, 65, 78, 72, 85, 77, 65, 65, 128, 65, 78, 72, - 85, 77, 128, 65, 78, 72, 85, 128, 65, 78, 72, 65, 65, 128, 65, 78, 72, - 128, 65, 78, 71, 85, 76, 65, 82, 128, 65, 78, 71, 85, 73, 83, 72, 69, - 196, 65, 78, 71, 83, 84, 82, 79, 205, 65, 78, 71, 82, 217, 65, 78, 71, - 76, 73, 67, 65, 78, 193, 65, 78, 71, 76, 69, 68, 128, 65, 78, 71, 76, 69, - 196, 65, 78, 71, 75, 72, 65, 78, 75, 72, 85, 128, 65, 78, 71, 75, 65, - 128, 65, 78, 71, 69, 210, 65, 78, 71, 69, 76, 128, 65, 78, 71, 69, 68, - 128, 65, 78, 68, 65, 80, 128, 65, 78, 67, 79, 82, 65, 128, 65, 78, 67, - 72, 79, 82, 128, 65, 78, 65, 84, 82, 73, 67, 72, 73, 83, 77, 65, 128, 65, - 78, 65, 84, 79, 77, 73, 67, 65, 204, 65, 78, 65, 80, 128, 65, 78, 45, 78, - 73, 83, 70, 128, 65, 77, 85, 76, 69, 84, 128, 65, 77, 80, 83, 128, 65, - 77, 80, 72, 79, 82, 65, 128, 65, 77, 80, 69, 82, 83, 65, 78, 68, 128, 65, - 77, 80, 69, 82, 83, 65, 78, 196, 65, 77, 79, 85, 78, 212, 65, 77, 69, 82, - 73, 67, 65, 83, 128, 65, 77, 69, 82, 73, 67, 65, 206, 65, 77, 66, 85, 76, - 65, 78, 67, 69, 128, 65, 77, 66, 193, 65, 77, 66, 128, 65, 77, 65, 82, - 128, 65, 77, 65, 210, 65, 77, 65, 76, 71, 65, 77, 65, 84, 73, 79, 206, - 65, 77, 65, 76, 71, 65, 77, 128, 65, 76, 86, 69, 79, 76, 65, 210, 65, 76, - 85, 77, 128, 65, 76, 84, 69, 82, 78, 65, 84, 73, 86, 197, 65, 76, 84, 69, - 82, 78, 65, 84, 73, 79, 206, 65, 76, 84, 69, 82, 78, 65, 84, 73, 78, 71, - 128, 65, 76, 84, 69, 82, 78, 65, 84, 73, 78, 199, 65, 76, 84, 69, 82, 78, - 65, 84, 69, 128, 65, 76, 84, 69, 82, 78, 65, 84, 197, 65, 76, 84, 65, - 128, 65, 76, 80, 72, 65, 128, 65, 76, 80, 72, 193, 65, 76, 80, 65, 80, - 82, 65, 78, 65, 128, 65, 76, 80, 65, 80, 82, 65, 65, 78, 193, 65, 76, 80, - 65, 128, 65, 76, 77, 79, 83, 212, 65, 76, 76, 79, 128, 65, 76, 76, 73, - 65, 78, 67, 69, 128, 65, 76, 76, 201, 65, 76, 76, 65, 200, 65, 76, 76, - 65, 65, 72, 128, 65, 76, 75, 65, 76, 73, 45, 50, 128, 65, 76, 75, 65, 76, - 73, 128, 65, 76, 73, 71, 78, 69, 196, 65, 76, 73, 70, 85, 128, 65, 76, - 73, 70, 128, 65, 76, 73, 198, 65, 76, 73, 69, 78, 128, 65, 76, 73, 69, - 206, 65, 76, 71, 73, 218, 65, 76, 70, 65, 128, 65, 76, 69, 85, 212, 65, - 76, 69, 82, 84, 128, 65, 76, 69, 80, 72, 128, 65, 76, 69, 77, 66, 73, 67, - 128, 65, 76, 69, 70, 128, 65, 76, 66, 65, 78, 73, 65, 206, 65, 76, 65, - 89, 78, 65, 65, 128, 65, 76, 65, 89, 72, 73, 77, 65, 193, 65, 76, 65, 89, - 72, 73, 205, 65, 76, 65, 89, 72, 201, 65, 76, 65, 89, 72, 69, 128, 65, - 76, 65, 89, 72, 197, 65, 76, 65, 89, 72, 65, 193, 65, 76, 65, 82, 205, - 65, 76, 65, 80, 72, 128, 65, 76, 45, 76, 65, 75, 85, 78, 65, 128, 65, 76, - 45, 74, 85, 90, 128, 65, 75, 85, 82, 213, 65, 75, 84, 73, 69, 83, 69, 76, - 83, 75, 65, 66, 128, 65, 75, 83, 65, 128, 65, 75, 72, 77, 73, 77, 73, - 195, 65, 75, 66, 65, 210, 65, 75, 65, 82, 65, 128, 65, 75, 65, 82, 193, - 65, 73, 89, 65, 78, 78, 65, 128, 65, 73, 86, 73, 76, 73, 203, 65, 73, 86, - 65, 128, 65, 73, 84, 79, 206, 65, 73, 82, 80, 76, 65, 78, 69, 128, 65, - 73, 82, 80, 76, 65, 78, 197, 65, 73, 78, 213, 65, 73, 78, 78, 128, 65, - 73, 76, 77, 128, 65, 73, 75, 65, 82, 65, 128, 65, 73, 72, 86, 85, 83, - 128, 65, 72, 83, 68, 65, 128, 65, 72, 83, 65, 128, 65, 72, 79, 205, 65, - 72, 65, 78, 199, 65, 72, 65, 71, 71, 65, 210, 65, 72, 65, 68, 128, 65, - 71, 85, 78, 71, 128, 65, 71, 79, 71, 201, 65, 71, 71, 82, 65, 86, 65, 84, - 73, 79, 78, 128, 65, 71, 71, 82, 65, 86, 65, 84, 69, 196, 65, 71, 65, 73, - 78, 83, 212, 65, 71, 65, 73, 78, 128, 65, 70, 84, 69, 210, 65, 70, 83, - 65, 65, 81, 128, 65, 70, 82, 73, 67, 65, 206, 65, 70, 79, 82, 69, 77, 69, - 78, 84, 73, 79, 78, 69, 68, 128, 65, 70, 71, 72, 65, 78, 201, 65, 70, 70, - 82, 73, 67, 65, 84, 73, 79, 206, 65, 70, 70, 73, 216, 65, 69, 89, 65, 78, - 78, 65, 128, 65, 69, 89, 128, 65, 69, 83, 67, 85, 76, 65, 80, 73, 85, 83, - 128, 65, 69, 83, 67, 128, 65, 69, 83, 128, 65, 69, 82, 73, 65, 204, 65, - 69, 82, 128, 65, 69, 76, 65, 45, 80, 73, 76, 76, 65, 128, 65, 69, 76, - 128, 65, 69, 75, 128, 65, 69, 71, 69, 65, 206, 65, 69, 71, 128, 65, 69, - 69, 89, 65, 78, 78, 65, 128, 65, 69, 69, 128, 65, 69, 68, 65, 45, 80, 73, - 76, 76, 65, 128, 65, 69, 68, 128, 65, 69, 66, 128, 65, 68, 86, 65, 78, - 84, 65, 71, 69, 128, 65, 68, 86, 65, 78, 67, 69, 128, 65, 68, 85, 76, 84, - 128, 65, 68, 77, 73, 83, 83, 73, 79, 206, 65, 68, 77, 69, 84, 79, 83, - 128, 65, 68, 76, 65, 205, 65, 68, 72, 69, 83, 73, 86, 197, 65, 68, 69, - 71, 128, 65, 68, 69, 199, 65, 68, 68, 82, 69, 83, 83, 69, 196, 65, 68, - 68, 82, 69, 83, 211, 65, 68, 68, 65, 75, 128, 65, 68, 65, 203, 65, 67, - 85, 84, 69, 45, 77, 65, 67, 82, 79, 78, 128, 65, 67, 85, 84, 69, 45, 71, - 82, 65, 86, 69, 45, 65, 67, 85, 84, 69, 128, 65, 67, 85, 84, 197, 65, 67, - 84, 85, 65, 76, 76, 217, 65, 67, 84, 73, 86, 65, 84, 197, 65, 67, 82, 79, - 80, 72, 79, 78, 73, 195, 65, 67, 75, 78, 79, 87, 76, 69, 68, 71, 69, 128, - 65, 67, 67, 85, 77, 85, 76, 65, 84, 73, 79, 78, 128, 65, 67, 67, 79, 85, - 78, 212, 65, 67, 67, 79, 82, 68, 73, 79, 78, 128, 65, 67, 67, 79, 77, 77, - 79, 68, 65, 84, 73, 79, 78, 128, 65, 67, 67, 69, 80, 84, 128, 65, 67, 67, - 69, 78, 84, 45, 83, 84, 65, 67, 67, 65, 84, 79, 128, 65, 67, 67, 69, 78, - 84, 128, 65, 67, 67, 69, 78, 212, 65, 67, 65, 68, 69, 77, 217, 65, 66, - 89, 83, 77, 65, 204, 65, 66, 85, 78, 68, 65, 78, 67, 69, 128, 65, 66, 75, - 72, 65, 83, 73, 65, 206, 65, 66, 66, 82, 69, 86, 73, 65, 84, 73, 79, 206, - 65, 66, 65, 70, 73, 76, 73, 128, 65, 66, 65, 67, 85, 83, 128, 65, 66, - 178, 65, 66, 49, 57, 49, 128, 65, 66, 49, 56, 56, 128, 65, 66, 49, 56, - 48, 128, 65, 66, 49, 55, 49, 128, 65, 66, 49, 54, 52, 128, 65, 66, 49, - 51, 49, 66, 128, 65, 66, 49, 51, 49, 65, 128, 65, 66, 49, 50, 51, 128, - 65, 66, 49, 50, 50, 128, 65, 66, 49, 50, 48, 128, 65, 66, 49, 49, 56, - 128, 65, 66, 48, 56, 55, 128, 65, 66, 48, 56, 54, 128, 65, 66, 48, 56, - 53, 128, 65, 66, 48, 56, 50, 128, 65, 66, 48, 56, 49, 128, 65, 66, 48, - 56, 48, 128, 65, 66, 48, 55, 57, 128, 65, 66, 48, 55, 56, 128, 65, 66, - 48, 55, 55, 128, 65, 66, 48, 55, 54, 128, 65, 66, 48, 55, 52, 128, 65, - 66, 48, 55, 51, 128, 65, 66, 48, 55, 48, 128, 65, 66, 48, 54, 57, 128, - 65, 66, 48, 54, 55, 128, 65, 66, 48, 54, 54, 128, 65, 66, 48, 54, 53, - 128, 65, 66, 48, 54, 49, 128, 65, 66, 48, 54, 48, 128, 65, 66, 48, 53, - 57, 128, 65, 66, 48, 53, 56, 128, 65, 66, 48, 53, 55, 128, 65, 66, 48, - 53, 54, 128, 65, 66, 48, 53, 53, 128, 65, 66, 48, 53, 52, 128, 65, 66, - 48, 53, 51, 128, 65, 66, 48, 53, 49, 128, 65, 66, 48, 53, 48, 128, 65, - 66, 48, 52, 57, 128, 65, 66, 48, 52, 56, 128, 65, 66, 48, 52, 55, 128, - 65, 66, 48, 52, 54, 128, 65, 66, 48, 52, 53, 128, 65, 66, 48, 52, 52, - 128, 65, 66, 48, 52, 49, 128, 65, 66, 48, 52, 48, 128, 65, 66, 48, 51, - 57, 128, 65, 66, 48, 51, 56, 128, 65, 66, 48, 51, 55, 128, 65, 66, 48, - 51, 52, 128, 65, 66, 48, 51, 49, 128, 65, 66, 48, 51, 48, 128, 65, 66, - 48, 50, 57, 128, 65, 66, 48, 50, 56, 128, 65, 66, 48, 50, 55, 128, 65, - 66, 48, 50, 54, 128, 65, 66, 48, 50, 52, 128, 65, 66, 48, 50, 51, 77, - 128, 65, 66, 48, 50, 51, 128, 65, 66, 48, 50, 50, 77, 128, 65, 66, 48, - 50, 50, 70, 128, 65, 66, 48, 50, 50, 128, 65, 66, 48, 50, 49, 77, 128, - 65, 66, 48, 50, 49, 70, 128, 65, 66, 48, 50, 49, 128, 65, 66, 48, 50, 48, - 128, 65, 66, 48, 49, 55, 128, 65, 66, 48, 49, 54, 128, 65, 66, 48, 49, - 51, 128, 65, 66, 48, 49, 49, 128, 65, 66, 48, 49, 48, 128, 65, 66, 48, - 48, 57, 128, 65, 66, 48, 48, 56, 128, 65, 66, 48, 48, 55, 128, 65, 66, - 48, 48, 54, 128, 65, 66, 48, 48, 53, 128, 65, 66, 48, 48, 52, 128, 65, - 66, 48, 48, 51, 128, 65, 66, 48, 48, 50, 128, 65, 66, 48, 48, 49, 128, - 65, 65, 90, 72, 65, 65, 75, 75, 85, 128, 65, 65, 89, 73, 78, 128, 65, 65, - 89, 65, 78, 78, 65, 128, 65, 65, 89, 128, 65, 65, 87, 128, 65, 65, 79, - 128, 65, 65, 74, 128, 65, 65, 66, 65, 65, 70, 73, 76, 73, 128, 65, 65, - 48, 51, 50, 128, 65, 65, 48, 51, 49, 128, 65, 65, 48, 51, 48, 128, 65, - 65, 48, 50, 57, 128, 65, 65, 48, 50, 56, 128, 65, 65, 48, 50, 55, 128, - 65, 65, 48, 50, 54, 128, 65, 65, 48, 50, 53, 128, 65, 65, 48, 50, 52, - 128, 65, 65, 48, 50, 51, 128, 65, 65, 48, 50, 50, 128, 65, 65, 48, 50, - 49, 128, 65, 65, 48, 50, 48, 128, 65, 65, 48, 49, 57, 128, 65, 65, 48, - 49, 56, 128, 65, 65, 48, 49, 55, 128, 65, 65, 48, 49, 54, 128, 65, 65, - 48, 49, 53, 128, 65, 65, 48, 49, 52, 128, 65, 65, 48, 49, 51, 128, 65, - 65, 48, 49, 50, 128, 65, 65, 48, 49, 49, 128, 65, 65, 48, 49, 48, 128, - 65, 65, 48, 48, 57, 128, 65, 65, 48, 48, 56, 128, 65, 65, 48, 48, 55, 66, - 128, 65, 65, 48, 48, 55, 65, 128, 65, 65, 48, 48, 55, 128, 65, 65, 48, - 48, 54, 128, 65, 65, 48, 48, 53, 128, 65, 65, 48, 48, 52, 128, 65, 65, - 48, 48, 51, 128, 65, 65, 48, 48, 50, 128, 65, 65, 48, 48, 49, 128, 65, - 56, 48, 55, 128, 65, 56, 48, 54, 128, 65, 56, 48, 53, 128, 65, 56, 48, - 52, 128, 65, 56, 48, 51, 128, 65, 56, 48, 50, 128, 65, 56, 48, 49, 128, - 65, 56, 48, 48, 128, 65, 55, 51, 178, 65, 55, 50, 182, 65, 55, 49, 183, - 65, 55, 49, 181, 65, 55, 49, 180, 65, 55, 49, 179, 65, 55, 49, 178, 65, - 55, 49, 177, 65, 55, 49, 176, 65, 55, 48, 57, 45, 182, 65, 55, 48, 57, - 45, 180, 65, 55, 48, 57, 45, 179, 65, 55, 48, 57, 45, 178, 65, 55, 48, - 185, 65, 55, 48, 184, 65, 55, 48, 183, 65, 55, 48, 182, 65, 55, 48, 181, - 65, 55, 48, 180, 65, 55, 48, 179, 65, 55, 48, 178, 65, 55, 48, 177, 65, - 54, 54, 52, 128, 65, 54, 54, 51, 128, 65, 54, 54, 50, 128, 65, 54, 54, - 49, 128, 65, 54, 54, 48, 128, 65, 54, 53, 57, 128, 65, 54, 53, 56, 128, - 65, 54, 53, 55, 128, 65, 54, 53, 54, 128, 65, 54, 53, 53, 128, 65, 54, - 53, 52, 128, 65, 54, 53, 51, 128, 65, 54, 53, 50, 128, 65, 54, 53, 49, - 128, 65, 54, 52, 57, 128, 65, 54, 52, 56, 128, 65, 54, 52, 54, 128, 65, - 54, 52, 53, 128, 65, 54, 52, 52, 128, 65, 54, 52, 51, 128, 65, 54, 52, - 50, 128, 65, 54, 52, 48, 128, 65, 54, 51, 56, 128, 65, 54, 51, 55, 128, - 65, 54, 51, 52, 128, 65, 54, 50, 57, 128, 65, 54, 50, 56, 128, 65, 54, - 50, 55, 128, 65, 54, 50, 54, 128, 65, 54, 50, 52, 128, 65, 54, 50, 51, - 128, 65, 54, 50, 50, 128, 65, 54, 50, 49, 128, 65, 54, 50, 48, 128, 65, - 54, 49, 57, 128, 65, 54, 49, 56, 128, 65, 54, 49, 55, 128, 65, 54, 49, - 54, 128, 65, 54, 49, 53, 128, 65, 54, 49, 52, 128, 65, 54, 49, 51, 128, - 65, 54, 49, 50, 128, 65, 54, 49, 49, 128, 65, 54, 49, 48, 128, 65, 54, - 48, 57, 128, 65, 54, 48, 56, 128, 65, 54, 48, 54, 128, 65, 54, 48, 52, - 128, 65, 54, 48, 51, 128, 65, 54, 48, 50, 128, 65, 54, 48, 49, 128, 65, - 54, 48, 48, 128, 65, 53, 57, 56, 128, 65, 53, 57, 54, 128, 65, 53, 57, - 53, 128, 65, 53, 57, 52, 128, 65, 53, 57, 50, 128, 65, 53, 57, 49, 128, - 65, 53, 56, 57, 128, 65, 53, 56, 56, 128, 65, 53, 56, 55, 128, 65, 53, - 56, 54, 128, 65, 53, 56, 53, 128, 65, 53, 56, 52, 128, 65, 53, 56, 51, - 128, 65, 53, 56, 50, 128, 65, 53, 56, 49, 128, 65, 53, 56, 48, 128, 65, - 53, 55, 57, 128, 65, 53, 55, 56, 128, 65, 53, 55, 55, 128, 65, 53, 55, - 54, 128, 65, 53, 55, 53, 128, 65, 53, 55, 52, 128, 65, 53, 55, 51, 128, - 65, 53, 55, 50, 128, 65, 53, 55, 49, 128, 65, 53, 55, 48, 128, 65, 53, - 54, 57, 128, 65, 53, 54, 56, 128, 65, 53, 54, 54, 128, 65, 53, 54, 53, - 128, 65, 53, 54, 52, 128, 65, 53, 54, 51, 128, 65, 53, 53, 57, 128, 65, - 53, 53, 55, 128, 65, 53, 53, 54, 128, 65, 53, 53, 53, 128, 65, 53, 53, - 52, 128, 65, 53, 53, 51, 128, 65, 53, 53, 50, 128, 65, 53, 53, 49, 128, - 65, 53, 53, 48, 128, 65, 53, 52, 57, 128, 65, 53, 52, 56, 128, 65, 53, - 52, 55, 128, 65, 53, 52, 53, 128, 65, 53, 52, 50, 128, 65, 53, 52, 49, - 128, 65, 53, 52, 48, 128, 65, 53, 51, 57, 128, 65, 53, 51, 56, 128, 65, - 53, 51, 55, 128, 65, 53, 51, 54, 128, 65, 53, 51, 53, 128, 65, 53, 51, - 52, 128, 65, 53, 51, 50, 128, 65, 53, 51, 49, 128, 65, 53, 51, 48, 128, - 65, 53, 50, 57, 128, 65, 53, 50, 56, 128, 65, 53, 50, 55, 128, 65, 53, - 50, 54, 128, 65, 53, 50, 53, 128, 65, 53, 50, 52, 128, 65, 53, 50, 51, - 128, 65, 53, 50, 50, 128, 65, 53, 50, 49, 128, 65, 53, 50, 48, 128, 65, - 53, 49, 57, 128, 65, 53, 49, 56, 128, 65, 53, 49, 55, 128, 65, 53, 49, - 54, 128, 65, 53, 49, 53, 128, 65, 53, 49, 52, 128, 65, 53, 49, 51, 128, - 65, 53, 49, 50, 128, 65, 53, 49, 49, 128, 65, 53, 49, 48, 128, 65, 53, - 48, 57, 128, 65, 53, 48, 56, 128, 65, 53, 48, 55, 128, 65, 53, 48, 54, - 128, 65, 53, 48, 53, 128, 65, 53, 48, 52, 128, 65, 53, 48, 51, 128, 65, - 53, 48, 50, 128, 65, 53, 48, 49, 128, 65, 52, 57, 55, 128, 65, 52, 57, - 54, 128, 65, 52, 57, 53, 128, 65, 52, 57, 52, 128, 65, 52, 57, 51, 128, - 65, 52, 57, 50, 128, 65, 52, 57, 49, 128, 65, 52, 57, 48, 128, 65, 52, - 56, 57, 128, 65, 52, 56, 56, 128, 65, 52, 56, 55, 128, 65, 52, 56, 54, - 128, 65, 52, 56, 53, 128, 65, 52, 56, 52, 128, 65, 52, 56, 51, 128, 65, - 52, 56, 50, 128, 65, 52, 56, 49, 128, 65, 52, 56, 48, 128, 65, 52, 55, - 57, 128, 65, 52, 55, 56, 128, 65, 52, 55, 55, 128, 65, 52, 55, 54, 128, - 65, 52, 55, 53, 128, 65, 52, 55, 52, 128, 65, 52, 55, 51, 128, 65, 52, - 55, 50, 128, 65, 52, 55, 49, 128, 65, 52, 55, 48, 128, 65, 52, 54, 57, - 128, 65, 52, 54, 56, 128, 65, 52, 54, 55, 128, 65, 52, 54, 54, 128, 65, - 52, 54, 53, 128, 65, 52, 54, 52, 128, 65, 52, 54, 51, 128, 65, 52, 54, - 50, 128, 65, 52, 54, 49, 128, 65, 52, 54, 48, 128, 65, 52, 53, 57, 128, - 65, 52, 53, 56, 128, 65, 52, 53, 55, 65, 128, 65, 52, 53, 55, 128, 65, - 52, 53, 54, 128, 65, 52, 53, 53, 128, 65, 52, 53, 52, 128, 65, 52, 53, - 51, 128, 65, 52, 53, 50, 128, 65, 52, 53, 49, 128, 65, 52, 53, 48, 65, - 128, 65, 52, 53, 48, 128, 65, 52, 52, 57, 128, 65, 52, 52, 56, 128, 65, - 52, 52, 55, 128, 65, 52, 52, 54, 128, 65, 52, 52, 53, 128, 65, 52, 52, - 52, 128, 65, 52, 52, 51, 128, 65, 52, 52, 50, 128, 65, 52, 52, 49, 128, - 65, 52, 52, 48, 128, 65, 52, 51, 57, 128, 65, 52, 51, 56, 128, 65, 52, - 51, 55, 128, 65, 52, 51, 54, 128, 65, 52, 51, 53, 128, 65, 52, 51, 52, - 128, 65, 52, 51, 51, 128, 65, 52, 51, 50, 128, 65, 52, 51, 49, 128, 65, - 52, 51, 48, 128, 65, 52, 50, 57, 128, 65, 52, 50, 56, 128, 65, 52, 50, - 55, 128, 65, 52, 50, 54, 128, 65, 52, 50, 53, 128, 65, 52, 50, 52, 128, - 65, 52, 50, 51, 128, 65, 52, 50, 50, 128, 65, 52, 50, 49, 128, 65, 52, - 50, 48, 128, 65, 52, 49, 57, 128, 65, 52, 49, 56, 45, 86, 65, 83, 128, - 65, 52, 49, 56, 128, 65, 52, 49, 55, 45, 86, 65, 83, 128, 65, 52, 49, 55, - 128, 65, 52, 49, 54, 45, 86, 65, 83, 128, 65, 52, 49, 54, 128, 65, 52, - 49, 53, 45, 86, 65, 83, 128, 65, 52, 49, 53, 128, 65, 52, 49, 52, 45, 86, - 65, 83, 128, 65, 52, 49, 52, 128, 65, 52, 49, 51, 45, 86, 65, 83, 128, - 65, 52, 49, 51, 128, 65, 52, 49, 50, 45, 86, 65, 83, 128, 65, 52, 49, 50, - 128, 65, 52, 49, 49, 45, 86, 65, 83, 128, 65, 52, 49, 49, 128, 65, 52, - 49, 48, 193, 65, 52, 49, 48, 45, 86, 65, 83, 128, 65, 52, 49, 176, 65, - 52, 48, 57, 45, 86, 65, 83, 128, 65, 52, 48, 57, 128, 65, 52, 48, 56, 45, - 86, 65, 83, 128, 65, 52, 48, 56, 128, 65, 52, 48, 55, 45, 86, 65, 83, - 128, 65, 52, 48, 55, 128, 65, 52, 48, 54, 45, 86, 65, 83, 128, 65, 52, - 48, 54, 128, 65, 52, 48, 53, 45, 86, 65, 83, 128, 65, 52, 48, 53, 128, - 65, 52, 48, 52, 45, 86, 65, 83, 128, 65, 52, 48, 52, 128, 65, 52, 48, 51, - 45, 86, 65, 83, 128, 65, 52, 48, 51, 128, 65, 52, 48, 50, 45, 86, 65, 83, - 128, 65, 52, 48, 50, 128, 65, 52, 48, 49, 45, 86, 65, 83, 128, 65, 52, - 48, 49, 128, 65, 52, 48, 48, 45, 86, 65, 83, 128, 65, 52, 48, 48, 128, - 65, 51, 57, 57, 128, 65, 51, 57, 56, 128, 65, 51, 57, 55, 128, 65, 51, - 57, 54, 128, 65, 51, 57, 53, 128, 65, 51, 57, 52, 128, 65, 51, 57, 179, - 65, 51, 57, 50, 128, 65, 51, 57, 49, 128, 65, 51, 57, 48, 128, 65, 51, - 56, 57, 128, 65, 51, 56, 56, 128, 65, 51, 56, 55, 128, 65, 51, 56, 54, - 65, 128, 65, 51, 56, 54, 128, 65, 51, 56, 53, 128, 65, 51, 56, 52, 128, - 65, 51, 56, 51, 65, 128, 65, 51, 56, 179, 65, 51, 56, 50, 128, 65, 51, - 56, 49, 65, 128, 65, 51, 56, 49, 128, 65, 51, 56, 48, 128, 65, 51, 55, - 57, 128, 65, 51, 55, 56, 128, 65, 51, 55, 55, 128, 65, 51, 55, 54, 128, - 65, 51, 55, 53, 128, 65, 51, 55, 52, 128, 65, 51, 55, 51, 128, 65, 51, - 55, 50, 128, 65, 51, 55, 49, 65, 128, 65, 51, 55, 49, 128, 65, 51, 55, - 48, 128, 65, 51, 54, 57, 128, 65, 51, 54, 56, 65, 128, 65, 51, 54, 56, - 128, 65, 51, 54, 55, 128, 65, 51, 54, 54, 128, 65, 51, 54, 53, 128, 65, - 51, 54, 52, 65, 128, 65, 51, 54, 52, 128, 65, 51, 54, 51, 128, 65, 51, - 54, 50, 128, 65, 51, 54, 49, 128, 65, 51, 54, 48, 128, 65, 51, 53, 57, - 65, 128, 65, 51, 53, 57, 128, 65, 51, 53, 56, 128, 65, 51, 53, 55, 128, - 65, 51, 53, 54, 128, 65, 51, 53, 53, 128, 65, 51, 53, 52, 128, 65, 51, - 53, 51, 128, 65, 51, 53, 50, 128, 65, 51, 53, 49, 128, 65, 51, 53, 48, - 128, 65, 51, 52, 57, 128, 65, 51, 52, 56, 128, 65, 51, 52, 55, 128, 65, - 51, 52, 54, 128, 65, 51, 52, 53, 128, 65, 51, 52, 52, 128, 65, 51, 52, - 51, 128, 65, 51, 52, 50, 128, 65, 51, 52, 49, 128, 65, 51, 52, 48, 128, - 65, 51, 51, 57, 128, 65, 51, 51, 56, 128, 65, 51, 51, 55, 128, 65, 51, - 51, 54, 67, 128, 65, 51, 51, 54, 66, 128, 65, 51, 51, 54, 65, 128, 65, - 51, 51, 54, 128, 65, 51, 51, 53, 128, 65, 51, 51, 52, 128, 65, 51, 51, - 51, 128, 65, 51, 51, 50, 67, 128, 65, 51, 51, 50, 66, 128, 65, 51, 51, - 50, 65, 128, 65, 51, 51, 50, 128, 65, 51, 51, 49, 128, 65, 51, 51, 48, - 128, 65, 51, 50, 57, 65, 128, 65, 51, 50, 57, 128, 65, 51, 50, 56, 128, - 65, 51, 50, 55, 128, 65, 51, 50, 54, 128, 65, 51, 50, 53, 128, 65, 51, - 50, 52, 128, 65, 51, 50, 51, 128, 65, 51, 50, 50, 128, 65, 51, 50, 49, - 128, 65, 51, 50, 48, 128, 65, 51, 49, 57, 128, 65, 51, 49, 56, 128, 65, - 51, 49, 55, 128, 65, 51, 49, 54, 128, 65, 51, 49, 53, 128, 65, 51, 49, - 52, 128, 65, 51, 49, 51, 67, 128, 65, 51, 49, 51, 66, 128, 65, 51, 49, - 51, 65, 128, 65, 51, 49, 51, 128, 65, 51, 49, 50, 128, 65, 51, 49, 49, - 128, 65, 51, 49, 48, 128, 65, 51, 48, 57, 67, 128, 65, 51, 48, 57, 66, - 128, 65, 51, 48, 57, 65, 128, 65, 51, 48, 57, 128, 65, 51, 48, 56, 128, - 65, 51, 48, 55, 128, 65, 51, 48, 54, 128, 65, 51, 48, 53, 128, 65, 51, - 48, 52, 128, 65, 51, 48, 51, 128, 65, 51, 48, 50, 128, 65, 51, 48, 49, - 128, 65, 51, 48, 48, 128, 65, 50, 57, 57, 65, 128, 65, 50, 57, 57, 128, - 65, 50, 57, 56, 128, 65, 50, 57, 55, 128, 65, 50, 57, 54, 128, 65, 50, - 57, 53, 128, 65, 50, 57, 52, 65, 128, 65, 50, 57, 52, 128, 65, 50, 57, - 51, 128, 65, 50, 57, 50, 128, 65, 50, 57, 49, 128, 65, 50, 57, 48, 128, - 65, 50, 56, 57, 65, 128, 65, 50, 56, 57, 128, 65, 50, 56, 56, 128, 65, - 50, 56, 55, 128, 65, 50, 56, 54, 128, 65, 50, 56, 53, 128, 65, 50, 56, - 52, 128, 65, 50, 56, 51, 128, 65, 50, 56, 50, 128, 65, 50, 56, 49, 128, - 65, 50, 56, 48, 128, 65, 50, 55, 57, 128, 65, 50, 55, 56, 128, 65, 50, - 55, 55, 128, 65, 50, 55, 54, 128, 65, 50, 55, 53, 128, 65, 50, 55, 52, - 128, 65, 50, 55, 51, 128, 65, 50, 55, 50, 128, 65, 50, 55, 49, 128, 65, - 50, 55, 48, 128, 65, 50, 54, 57, 128, 65, 50, 54, 56, 128, 65, 50, 54, - 55, 65, 128, 65, 50, 54, 55, 128, 65, 50, 54, 54, 128, 65, 50, 54, 53, - 128, 65, 50, 54, 52, 128, 65, 50, 54, 51, 128, 65, 50, 54, 50, 128, 65, - 50, 54, 49, 128, 65, 50, 54, 48, 128, 65, 50, 53, 57, 128, 65, 50, 53, - 56, 128, 65, 50, 53, 55, 128, 65, 50, 53, 54, 128, 65, 50, 53, 53, 128, - 65, 50, 53, 52, 128, 65, 50, 53, 51, 128, 65, 50, 53, 50, 128, 65, 50, - 53, 49, 128, 65, 50, 53, 48, 128, 65, 50, 52, 57, 128, 65, 50, 52, 56, - 128, 65, 50, 52, 55, 128, 65, 50, 52, 54, 128, 65, 50, 52, 53, 128, 65, - 50, 52, 52, 128, 65, 50, 52, 51, 128, 65, 50, 52, 50, 128, 65, 50, 52, - 49, 128, 65, 50, 52, 48, 128, 65, 50, 51, 57, 128, 65, 50, 51, 56, 128, - 65, 50, 51, 55, 128, 65, 50, 51, 54, 128, 65, 50, 51, 53, 128, 65, 50, - 51, 52, 128, 65, 50, 51, 51, 128, 65, 50, 51, 50, 128, 65, 50, 51, 49, - 128, 65, 50, 51, 48, 128, 65, 50, 50, 57, 128, 65, 50, 50, 56, 128, 65, - 50, 50, 55, 65, 128, 65, 50, 50, 55, 128, 65, 50, 50, 54, 128, 65, 50, - 50, 53, 128, 65, 50, 50, 52, 128, 65, 50, 50, 51, 128, 65, 50, 50, 50, - 128, 65, 50, 50, 49, 128, 65, 50, 50, 48, 128, 65, 50, 49, 57, 128, 65, - 50, 49, 56, 128, 65, 50, 49, 55, 128, 65, 50, 49, 54, 65, 128, 65, 50, - 49, 54, 128, 65, 50, 49, 53, 65, 128, 65, 50, 49, 53, 128, 65, 50, 49, - 52, 128, 65, 50, 49, 51, 128, 65, 50, 49, 50, 128, 65, 50, 49, 49, 128, - 65, 50, 49, 48, 128, 65, 50, 48, 57, 65, 128, 65, 50, 48, 57, 128, 65, - 50, 48, 56, 128, 65, 50, 48, 55, 65, 128, 65, 50, 48, 55, 128, 65, 50, - 48, 54, 128, 65, 50, 48, 53, 128, 65, 50, 48, 52, 128, 65, 50, 48, 51, - 128, 65, 50, 48, 50, 66, 128, 65, 50, 48, 50, 65, 128, 65, 50, 48, 50, - 128, 65, 50, 48, 49, 128, 65, 50, 48, 48, 128, 65, 49, 57, 57, 128, 65, - 49, 57, 56, 128, 65, 49, 57, 55, 128, 65, 49, 57, 54, 128, 65, 49, 57, - 53, 128, 65, 49, 57, 52, 128, 65, 49, 57, 51, 128, 65, 49, 57, 50, 128, - 65, 49, 57, 49, 128, 65, 49, 57, 48, 128, 65, 49, 56, 57, 128, 65, 49, - 56, 56, 128, 65, 49, 56, 55, 128, 65, 49, 56, 54, 128, 65, 49, 56, 53, - 128, 65, 49, 56, 52, 128, 65, 49, 56, 51, 128, 65, 49, 56, 50, 128, 65, - 49, 56, 49, 128, 65, 49, 56, 48, 128, 65, 49, 55, 57, 128, 65, 49, 55, - 56, 128, 65, 49, 55, 55, 128, 65, 49, 55, 54, 128, 65, 49, 55, 53, 128, - 65, 49, 55, 52, 128, 65, 49, 55, 51, 128, 65, 49, 55, 50, 128, 65, 49, - 55, 49, 128, 65, 49, 55, 48, 128, 65, 49, 54, 57, 128, 65, 49, 54, 56, - 128, 65, 49, 54, 55, 128, 65, 49, 54, 54, 128, 65, 49, 54, 53, 128, 65, - 49, 54, 52, 128, 65, 49, 54, 51, 128, 65, 49, 54, 50, 128, 65, 49, 54, - 49, 128, 65, 49, 54, 48, 128, 65, 49, 53, 57, 128, 65, 49, 53, 56, 128, - 65, 49, 53, 55, 128, 65, 49, 53, 54, 128, 65, 49, 53, 53, 128, 65, 49, - 53, 52, 128, 65, 49, 53, 51, 128, 65, 49, 53, 50, 128, 65, 49, 53, 49, - 128, 65, 49, 53, 48, 128, 65, 49, 52, 57, 128, 65, 49, 52, 56, 128, 65, - 49, 52, 55, 128, 65, 49, 52, 54, 128, 65, 49, 52, 53, 128, 65, 49, 52, - 52, 128, 65, 49, 52, 51, 128, 65, 49, 52, 50, 128, 65, 49, 52, 49, 128, - 65, 49, 52, 48, 128, 65, 49, 51, 57, 128, 65, 49, 51, 56, 128, 65, 49, - 51, 55, 128, 65, 49, 51, 54, 128, 65, 49, 51, 53, 65, 128, 65, 49, 51, - 53, 128, 65, 49, 51, 52, 128, 65, 49, 51, 51, 128, 65, 49, 51, 50, 128, - 65, 49, 51, 49, 67, 128, 65, 49, 51, 49, 128, 65, 49, 51, 48, 128, 65, - 49, 50, 57, 128, 65, 49, 50, 56, 128, 65, 49, 50, 55, 128, 65, 49, 50, - 54, 128, 65, 49, 50, 53, 65, 128, 65, 49, 50, 53, 128, 65, 49, 50, 52, - 128, 65, 49, 50, 51, 128, 65, 49, 50, 50, 128, 65, 49, 50, 49, 128, 65, - 49, 50, 48, 66, 128, 65, 49, 50, 48, 128, 65, 49, 49, 57, 128, 65, 49, - 49, 56, 128, 65, 49, 49, 55, 128, 65, 49, 49, 54, 128, 65, 49, 49, 53, - 65, 128, 65, 49, 49, 53, 128, 65, 49, 49, 52, 128, 65, 49, 49, 51, 128, - 65, 49, 49, 50, 128, 65, 49, 49, 49, 128, 65, 49, 49, 48, 66, 128, 65, - 49, 49, 48, 65, 128, 65, 49, 49, 48, 128, 65, 49, 48, 57, 128, 65, 49, - 48, 56, 128, 65, 49, 48, 55, 67, 128, 65, 49, 48, 55, 66, 128, 65, 49, - 48, 55, 65, 128, 65, 49, 48, 55, 128, 65, 49, 48, 54, 128, 65, 49, 48, - 53, 66, 128, 65, 49, 48, 53, 65, 128, 65, 49, 48, 53, 128, 65, 49, 48, - 52, 67, 128, 65, 49, 48, 52, 66, 128, 65, 49, 48, 52, 65, 128, 65, 49, - 48, 52, 128, 65, 49, 48, 51, 128, 65, 49, 48, 50, 65, 128, 65, 49, 48, - 50, 128, 65, 49, 48, 49, 65, 128, 65, 49, 48, 49, 128, 65, 49, 48, 48, - 65, 128, 65, 49, 48, 48, 45, 49, 48, 50, 128, 65, 49, 48, 48, 128, 65, - 48, 57, 57, 128, 65, 48, 57, 56, 65, 128, 65, 48, 57, 56, 128, 65, 48, - 57, 55, 65, 128, 65, 48, 57, 55, 128, 65, 48, 57, 54, 128, 65, 48, 57, - 53, 128, 65, 48, 57, 52, 128, 65, 48, 57, 51, 128, 65, 48, 57, 50, 128, - 65, 48, 57, 49, 128, 65, 48, 57, 48, 128, 65, 48, 56, 57, 128, 65, 48, - 56, 56, 128, 65, 48, 56, 55, 128, 65, 48, 56, 54, 128, 65, 48, 56, 53, - 128, 65, 48, 56, 52, 128, 65, 48, 56, 51, 128, 65, 48, 56, 50, 128, 65, - 48, 56, 49, 128, 65, 48, 56, 48, 128, 65, 48, 55, 57, 128, 65, 48, 55, - 56, 128, 65, 48, 55, 55, 128, 65, 48, 55, 54, 128, 65, 48, 55, 53, 128, - 65, 48, 55, 52, 128, 65, 48, 55, 51, 128, 65, 48, 55, 50, 128, 65, 48, - 55, 49, 128, 65, 48, 55, 48, 128, 65, 48, 54, 57, 128, 65, 48, 54, 56, - 128, 65, 48, 54, 55, 128, 65, 48, 54, 54, 67, 128, 65, 48, 54, 54, 66, - 128, 65, 48, 54, 54, 65, 128, 65, 48, 54, 54, 128, 65, 48, 54, 53, 128, - 65, 48, 54, 52, 128, 65, 48, 54, 51, 128, 65, 48, 54, 50, 128, 65, 48, - 54, 49, 128, 65, 48, 54, 48, 128, 65, 48, 53, 57, 128, 65, 48, 53, 56, - 128, 65, 48, 53, 55, 128, 65, 48, 53, 54, 128, 65, 48, 53, 53, 128, 65, - 48, 53, 52, 128, 65, 48, 53, 51, 128, 65, 48, 53, 50, 128, 65, 48, 53, - 49, 128, 65, 48, 53, 48, 128, 65, 48, 52, 57, 128, 65, 48, 52, 56, 128, - 65, 48, 52, 55, 128, 65, 48, 52, 54, 66, 128, 65, 48, 52, 54, 65, 128, - 65, 48, 52, 54, 128, 65, 48, 52, 53, 65, 128, 65, 48, 52, 53, 128, 65, - 48, 52, 52, 128, 65, 48, 52, 51, 65, 128, 65, 48, 52, 51, 128, 65, 48, - 52, 50, 65, 128, 65, 48, 52, 50, 128, 65, 48, 52, 49, 65, 128, 65, 48, - 52, 49, 128, 65, 48, 52, 48, 65, 128, 65, 48, 52, 48, 128, 65, 48, 51, - 57, 65, 128, 65, 48, 51, 57, 128, 65, 48, 51, 56, 128, 65, 48, 51, 55, - 128, 65, 48, 51, 54, 128, 65, 48, 51, 53, 128, 65, 48, 51, 52, 128, 65, - 48, 51, 51, 128, 65, 48, 51, 50, 65, 128, 65, 48, 50, 56, 66, 128, 65, - 48, 50, 54, 65, 128, 65, 48, 49, 55, 65, 128, 65, 48, 49, 52, 65, 128, - 65, 48, 49, 48, 65, 128, 65, 48, 48, 54, 66, 128, 65, 48, 48, 54, 65, - 128, 65, 48, 48, 53, 65, 128, 65, 45, 87, 79, 128, 65, 45, 69, 85, 128, - 45, 85, 205, 45, 80, 72, 82, 85, 128, 45, 75, 72, 89, 85, 196, 45, 75, - 72, 89, 73, 76, 128, 45, 68, 90, 85, 196, 45, 67, 72, 65, 210, 45, 67, - 72, 65, 76, 128, + 79, 82, 128, 65, 78, 85, 83, 86, 65, 82, 65, 89, 65, 128, 65, 78, 85, 83, + 86, 65, 82, 65, 128, 65, 78, 85, 83, 86, 65, 82, 193, 65, 78, 85, 68, 65, + 84, 84, 65, 128, 65, 78, 85, 68, 65, 84, 84, 193, 65, 78, 84, 73, 82, 69, + 83, 84, 82, 73, 67, 84, 73, 79, 78, 128, 65, 78, 84, 73, 77, 79, 78, 89, + 45, 50, 128, 65, 78, 84, 73, 77, 79, 78, 89, 128, 65, 78, 84, 73, 77, 79, + 78, 217, 65, 78, 84, 73, 77, 79, 78, 73, 65, 84, 69, 128, 65, 78, 84, 73, + 75, 69, 78, 79, 77, 65, 128, 65, 78, 84, 73, 75, 69, 78, 79, 75, 89, 76, + 73, 83, 77, 65, 128, 65, 78, 84, 73, 70, 79, 78, 73, 65, 128, 65, 78, 84, + 73, 67, 76, 79, 67, 75, 87, 73, 83, 69, 45, 82, 79, 84, 65, 84, 69, 196, + 65, 78, 84, 73, 67, 76, 79, 67, 75, 87, 73, 83, 69, 128, 65, 78, 84, 73, + 67, 76, 79, 67, 75, 87, 73, 83, 197, 65, 78, 84, 69, 78, 78, 65, 128, 65, + 78, 84, 69, 78, 78, 193, 65, 78, 84, 65, 82, 71, 79, 77, 85, 75, 72, 65, + 128, 65, 78, 83, 85, 218, 65, 78, 83, 72, 69, 128, 65, 78, 80, 69, 65, + 128, 65, 78, 207, 65, 78, 78, 85, 73, 84, 217, 65, 78, 78, 79, 84, 65, + 84, 73, 79, 206, 65, 78, 78, 65, 65, 85, 128, 65, 78, 75, 72, 128, 65, + 78, 74, 73, 128, 65, 78, 73, 77, 65, 76, 128, 65, 78, 72, 85, 78, 78, 65, + 128, 65, 78, 72, 85, 77, 65, 65, 128, 65, 78, 72, 85, 77, 128, 65, 78, + 72, 85, 128, 65, 78, 72, 65, 65, 128, 65, 78, 72, 128, 65, 78, 71, 85, + 76, 65, 82, 128, 65, 78, 71, 85, 73, 83, 72, 69, 196, 65, 78, 71, 83, 84, + 82, 79, 205, 65, 78, 71, 82, 217, 65, 78, 71, 76, 73, 67, 65, 78, 193, + 65, 78, 71, 76, 69, 68, 128, 65, 78, 71, 76, 69, 196, 65, 78, 71, 75, 72, + 65, 78, 75, 72, 85, 128, 65, 78, 71, 75, 65, 128, 65, 78, 71, 69, 210, + 65, 78, 71, 69, 76, 128, 65, 78, 71, 69, 68, 128, 65, 78, 68, 65, 80, + 128, 65, 78, 67, 79, 82, 65, 128, 65, 78, 67, 72, 79, 82, 128, 65, 78, + 65, 84, 82, 73, 67, 72, 73, 83, 77, 65, 128, 65, 78, 65, 84, 79, 77, 73, + 67, 65, 204, 65, 78, 65, 80, 128, 65, 78, 45, 78, 73, 83, 70, 128, 65, + 77, 85, 76, 69, 84, 128, 65, 77, 80, 83, 128, 65, 77, 80, 72, 79, 82, 65, + 128, 65, 77, 80, 69, 82, 83, 65, 78, 68, 128, 65, 77, 80, 69, 82, 83, 65, + 78, 196, 65, 77, 79, 85, 78, 212, 65, 77, 69, 82, 73, 67, 65, 83, 128, + 65, 77, 69, 82, 73, 67, 65, 206, 65, 77, 66, 85, 76, 65, 78, 67, 69, 128, + 65, 77, 66, 193, 65, 77, 66, 128, 65, 77, 65, 82, 128, 65, 77, 65, 210, + 65, 77, 65, 76, 71, 65, 77, 65, 84, 73, 79, 206, 65, 77, 65, 76, 71, 65, + 77, 128, 65, 76, 86, 69, 79, 76, 65, 210, 65, 76, 85, 77, 128, 65, 76, + 84, 69, 82, 78, 65, 84, 73, 86, 197, 65, 76, 84, 69, 82, 78, 65, 84, 73, + 79, 206, 65, 76, 84, 69, 82, 78, 65, 84, 73, 78, 71, 128, 65, 76, 84, 69, + 82, 78, 65, 84, 73, 78, 199, 65, 76, 84, 69, 82, 78, 65, 84, 69, 128, 65, + 76, 84, 69, 82, 78, 65, 84, 197, 65, 76, 84, 65, 128, 65, 76, 80, 72, 65, + 128, 65, 76, 80, 72, 193, 65, 76, 80, 65, 80, 82, 65, 78, 65, 128, 65, + 76, 80, 65, 80, 82, 65, 65, 78, 193, 65, 76, 80, 65, 128, 65, 76, 77, 79, + 83, 212, 65, 76, 76, 79, 128, 65, 76, 76, 73, 65, 78, 67, 69, 128, 65, + 76, 76, 201, 65, 76, 76, 65, 200, 65, 76, 76, 65, 65, 72, 128, 65, 76, + 75, 65, 76, 73, 45, 50, 128, 65, 76, 75, 65, 76, 73, 128, 65, 76, 73, 71, + 78, 69, 196, 65, 76, 73, 70, 85, 128, 65, 76, 73, 70, 128, 65, 76, 73, + 198, 65, 76, 73, 69, 78, 128, 65, 76, 73, 69, 206, 65, 76, 71, 73, 218, + 65, 76, 70, 65, 128, 65, 76, 69, 85, 212, 65, 76, 69, 82, 84, 128, 65, + 76, 69, 80, 72, 128, 65, 76, 69, 77, 66, 73, 67, 128, 65, 76, 69, 70, + 128, 65, 76, 66, 65, 78, 73, 65, 206, 65, 76, 65, 89, 78, 65, 65, 128, + 65, 76, 65, 89, 72, 73, 77, 65, 193, 65, 76, 65, 89, 72, 73, 205, 65, 76, + 65, 89, 72, 201, 65, 76, 65, 89, 72, 69, 128, 65, 76, 65, 89, 72, 197, + 65, 76, 65, 89, 72, 65, 193, 65, 76, 65, 82, 205, 65, 76, 65, 80, 72, + 128, 65, 76, 45, 76, 65, 75, 85, 78, 65, 128, 65, 76, 45, 74, 85, 90, + 128, 65, 75, 85, 82, 213, 65, 75, 84, 73, 69, 83, 69, 76, 83, 75, 65, 66, + 128, 65, 75, 83, 65, 128, 65, 75, 72, 77, 73, 77, 73, 195, 65, 75, 66, + 65, 210, 65, 75, 65, 82, 65, 128, 65, 75, 65, 82, 193, 65, 73, 89, 65, + 78, 78, 65, 128, 65, 73, 86, 73, 76, 73, 203, 65, 73, 86, 65, 128, 65, + 73, 84, 79, 206, 65, 73, 82, 80, 76, 65, 78, 69, 128, 65, 73, 82, 80, 76, + 65, 78, 197, 65, 73, 78, 213, 65, 73, 78, 78, 128, 65, 73, 76, 77, 128, + 65, 73, 75, 65, 82, 65, 128, 65, 73, 72, 86, 85, 83, 128, 65, 72, 83, 68, + 65, 128, 65, 72, 83, 65, 128, 65, 72, 79, 205, 65, 72, 65, 78, 199, 65, + 72, 65, 71, 71, 65, 210, 65, 72, 65, 68, 128, 65, 71, 85, 78, 71, 128, + 65, 71, 79, 71, 201, 65, 71, 71, 82, 65, 86, 65, 84, 73, 79, 78, 128, 65, + 71, 71, 82, 65, 86, 65, 84, 69, 196, 65, 71, 65, 73, 78, 83, 212, 65, 71, + 65, 73, 78, 128, 65, 70, 84, 69, 210, 65, 70, 83, 65, 65, 81, 128, 65, + 70, 82, 73, 67, 65, 206, 65, 70, 79, 82, 69, 77, 69, 78, 84, 73, 79, 78, + 69, 68, 128, 65, 70, 71, 72, 65, 78, 201, 65, 70, 70, 82, 73, 67, 65, 84, + 73, 79, 206, 65, 70, 70, 73, 216, 65, 69, 89, 65, 78, 78, 65, 128, 65, + 69, 89, 128, 65, 69, 83, 67, 85, 76, 65, 80, 73, 85, 83, 128, 65, 69, 83, + 67, 128, 65, 69, 83, 128, 65, 69, 82, 73, 65, 204, 65, 69, 82, 128, 65, + 69, 76, 65, 45, 80, 73, 76, 76, 65, 128, 65, 69, 76, 128, 65, 69, 75, + 128, 65, 69, 71, 69, 65, 206, 65, 69, 71, 128, 65, 69, 69, 89, 65, 78, + 78, 65, 128, 65, 69, 69, 128, 65, 69, 68, 65, 45, 80, 73, 76, 76, 65, + 128, 65, 69, 68, 128, 65, 69, 66, 128, 65, 68, 86, 65, 78, 84, 65, 71, + 69, 128, 65, 68, 86, 65, 78, 67, 69, 128, 65, 68, 85, 76, 84, 128, 65, + 68, 77, 73, 83, 83, 73, 79, 206, 65, 68, 77, 69, 84, 79, 83, 128, 65, 68, + 76, 65, 205, 65, 68, 72, 69, 83, 73, 86, 197, 65, 68, 69, 71, 128, 65, + 68, 69, 199, 65, 68, 68, 82, 69, 83, 83, 69, 196, 65, 68, 68, 82, 69, 83, + 211, 65, 68, 68, 65, 75, 128, 65, 68, 65, 203, 65, 67, 85, 84, 69, 45, + 77, 65, 67, 82, 79, 78, 128, 65, 67, 85, 84, 69, 45, 71, 82, 65, 86, 69, + 45, 65, 67, 85, 84, 69, 128, 65, 67, 85, 84, 197, 65, 67, 84, 85, 65, 76, + 76, 217, 65, 67, 84, 73, 86, 65, 84, 197, 65, 67, 82, 79, 80, 72, 79, 78, + 73, 195, 65, 67, 75, 78, 79, 87, 76, 69, 68, 71, 69, 128, 65, 67, 67, 85, + 77, 85, 76, 65, 84, 73, 79, 78, 128, 65, 67, 67, 79, 85, 78, 212, 65, 67, + 67, 79, 82, 68, 73, 79, 78, 128, 65, 67, 67, 79, 77, 77, 79, 68, 65, 84, + 73, 79, 78, 128, 65, 67, 67, 69, 80, 84, 128, 65, 67, 67, 69, 78, 84, 45, + 83, 84, 65, 67, 67, 65, 84, 79, 128, 65, 67, 67, 69, 78, 84, 128, 65, 67, + 67, 69, 78, 212, 65, 67, 65, 68, 69, 77, 217, 65, 66, 89, 83, 77, 65, + 204, 65, 66, 85, 78, 68, 65, 78, 67, 69, 128, 65, 66, 75, 72, 65, 83, 73, + 65, 206, 65, 66, 66, 82, 69, 86, 73, 65, 84, 73, 79, 206, 65, 66, 65, 70, + 73, 76, 73, 128, 65, 66, 65, 67, 85, 83, 128, 65, 66, 178, 65, 66, 49, + 57, 49, 128, 65, 66, 49, 56, 56, 128, 65, 66, 49, 56, 48, 128, 65, 66, + 49, 55, 49, 128, 65, 66, 49, 54, 52, 128, 65, 66, 49, 51, 49, 66, 128, + 65, 66, 49, 51, 49, 65, 128, 65, 66, 49, 50, 51, 128, 65, 66, 49, 50, 50, + 128, 65, 66, 49, 50, 48, 128, 65, 66, 49, 49, 56, 128, 65, 66, 48, 56, + 55, 128, 65, 66, 48, 56, 54, 128, 65, 66, 48, 56, 53, 128, 65, 66, 48, + 56, 50, 128, 65, 66, 48, 56, 49, 128, 65, 66, 48, 56, 48, 128, 65, 66, + 48, 55, 57, 128, 65, 66, 48, 55, 56, 128, 65, 66, 48, 55, 55, 128, 65, + 66, 48, 55, 54, 128, 65, 66, 48, 55, 52, 128, 65, 66, 48, 55, 51, 128, + 65, 66, 48, 55, 48, 128, 65, 66, 48, 54, 57, 128, 65, 66, 48, 54, 55, + 128, 65, 66, 48, 54, 54, 128, 65, 66, 48, 54, 53, 128, 65, 66, 48, 54, + 49, 128, 65, 66, 48, 54, 48, 128, 65, 66, 48, 53, 57, 128, 65, 66, 48, + 53, 56, 128, 65, 66, 48, 53, 55, 128, 65, 66, 48, 53, 54, 128, 65, 66, + 48, 53, 53, 128, 65, 66, 48, 53, 52, 128, 65, 66, 48, 53, 51, 128, 65, + 66, 48, 53, 49, 128, 65, 66, 48, 53, 48, 128, 65, 66, 48, 52, 57, 128, + 65, 66, 48, 52, 56, 128, 65, 66, 48, 52, 55, 128, 65, 66, 48, 52, 54, + 128, 65, 66, 48, 52, 53, 128, 65, 66, 48, 52, 52, 128, 65, 66, 48, 52, + 49, 128, 65, 66, 48, 52, 48, 128, 65, 66, 48, 51, 57, 128, 65, 66, 48, + 51, 56, 128, 65, 66, 48, 51, 55, 128, 65, 66, 48, 51, 52, 128, 65, 66, + 48, 51, 49, 128, 65, 66, 48, 51, 48, 128, 65, 66, 48, 50, 57, 128, 65, + 66, 48, 50, 56, 128, 65, 66, 48, 50, 55, 128, 65, 66, 48, 50, 54, 128, + 65, 66, 48, 50, 52, 128, 65, 66, 48, 50, 51, 77, 128, 65, 66, 48, 50, 51, + 128, 65, 66, 48, 50, 50, 77, 128, 65, 66, 48, 50, 50, 70, 128, 65, 66, + 48, 50, 50, 128, 65, 66, 48, 50, 49, 77, 128, 65, 66, 48, 50, 49, 70, + 128, 65, 66, 48, 50, 49, 128, 65, 66, 48, 50, 48, 128, 65, 66, 48, 49, + 55, 128, 65, 66, 48, 49, 54, 128, 65, 66, 48, 49, 51, 128, 65, 66, 48, + 49, 49, 128, 65, 66, 48, 49, 48, 128, 65, 66, 48, 48, 57, 128, 65, 66, + 48, 48, 56, 128, 65, 66, 48, 48, 55, 128, 65, 66, 48, 48, 54, 128, 65, + 66, 48, 48, 53, 128, 65, 66, 48, 48, 52, 128, 65, 66, 48, 48, 51, 128, + 65, 66, 48, 48, 50, 128, 65, 66, 48, 48, 49, 128, 65, 65, 90, 72, 65, 65, + 75, 75, 85, 128, 65, 65, 89, 73, 78, 128, 65, 65, 89, 65, 78, 78, 65, + 128, 65, 65, 89, 128, 65, 65, 87, 128, 65, 65, 79, 128, 65, 65, 74, 128, + 65, 65, 66, 65, 65, 70, 73, 76, 73, 128, 65, 65, 48, 51, 50, 128, 65, 65, + 48, 51, 49, 128, 65, 65, 48, 51, 48, 128, 65, 65, 48, 50, 57, 128, 65, + 65, 48, 50, 56, 128, 65, 65, 48, 50, 55, 128, 65, 65, 48, 50, 54, 128, + 65, 65, 48, 50, 53, 128, 65, 65, 48, 50, 52, 128, 65, 65, 48, 50, 51, + 128, 65, 65, 48, 50, 50, 128, 65, 65, 48, 50, 49, 128, 65, 65, 48, 50, + 48, 128, 65, 65, 48, 49, 57, 128, 65, 65, 48, 49, 56, 128, 65, 65, 48, + 49, 55, 128, 65, 65, 48, 49, 54, 128, 65, 65, 48, 49, 53, 128, 65, 65, + 48, 49, 52, 128, 65, 65, 48, 49, 51, 128, 65, 65, 48, 49, 50, 128, 65, + 65, 48, 49, 49, 128, 65, 65, 48, 49, 48, 128, 65, 65, 48, 48, 57, 128, + 65, 65, 48, 48, 56, 128, 65, 65, 48, 48, 55, 66, 128, 65, 65, 48, 48, 55, + 65, 128, 65, 65, 48, 48, 55, 128, 65, 65, 48, 48, 54, 128, 65, 65, 48, + 48, 53, 128, 65, 65, 48, 48, 52, 128, 65, 65, 48, 48, 51, 128, 65, 65, + 48, 48, 50, 128, 65, 65, 48, 48, 49, 128, 65, 56, 48, 55, 128, 65, 56, + 48, 54, 128, 65, 56, 48, 53, 128, 65, 56, 48, 52, 128, 65, 56, 48, 51, + 128, 65, 56, 48, 50, 128, 65, 56, 48, 49, 128, 65, 56, 48, 48, 128, 65, + 55, 51, 178, 65, 55, 50, 182, 65, 55, 49, 183, 65, 55, 49, 181, 65, 55, + 49, 180, 65, 55, 49, 179, 65, 55, 49, 178, 65, 55, 49, 177, 65, 55, 49, + 176, 65, 55, 48, 57, 45, 182, 65, 55, 48, 57, 45, 180, 65, 55, 48, 57, + 45, 179, 65, 55, 48, 57, 45, 178, 65, 55, 48, 185, 65, 55, 48, 184, 65, + 55, 48, 183, 65, 55, 48, 182, 65, 55, 48, 181, 65, 55, 48, 180, 65, 55, + 48, 179, 65, 55, 48, 178, 65, 55, 48, 177, 65, 54, 54, 52, 128, 65, 54, + 54, 51, 128, 65, 54, 54, 50, 128, 65, 54, 54, 49, 128, 65, 54, 54, 48, + 128, 65, 54, 53, 57, 128, 65, 54, 53, 56, 128, 65, 54, 53, 55, 128, 65, + 54, 53, 54, 128, 65, 54, 53, 53, 128, 65, 54, 53, 52, 128, 65, 54, 53, + 51, 128, 65, 54, 53, 50, 128, 65, 54, 53, 49, 128, 65, 54, 52, 57, 128, + 65, 54, 52, 56, 128, 65, 54, 52, 54, 128, 65, 54, 52, 53, 128, 65, 54, + 52, 52, 128, 65, 54, 52, 51, 128, 65, 54, 52, 50, 128, 65, 54, 52, 48, + 128, 65, 54, 51, 56, 128, 65, 54, 51, 55, 128, 65, 54, 51, 52, 128, 65, + 54, 50, 57, 128, 65, 54, 50, 56, 128, 65, 54, 50, 55, 128, 65, 54, 50, + 54, 128, 65, 54, 50, 52, 128, 65, 54, 50, 51, 128, 65, 54, 50, 50, 128, + 65, 54, 50, 49, 128, 65, 54, 50, 48, 128, 65, 54, 49, 57, 128, 65, 54, + 49, 56, 128, 65, 54, 49, 55, 128, 65, 54, 49, 54, 128, 65, 54, 49, 53, + 128, 65, 54, 49, 52, 128, 65, 54, 49, 51, 128, 65, 54, 49, 50, 128, 65, + 54, 49, 49, 128, 65, 54, 49, 48, 128, 65, 54, 48, 57, 128, 65, 54, 48, + 56, 128, 65, 54, 48, 54, 128, 65, 54, 48, 52, 128, 65, 54, 48, 51, 128, + 65, 54, 48, 50, 128, 65, 54, 48, 49, 128, 65, 54, 48, 48, 128, 65, 53, + 57, 56, 128, 65, 53, 57, 54, 128, 65, 53, 57, 53, 128, 65, 53, 57, 52, + 128, 65, 53, 57, 50, 128, 65, 53, 57, 49, 128, 65, 53, 56, 57, 128, 65, + 53, 56, 56, 128, 65, 53, 56, 55, 128, 65, 53, 56, 54, 128, 65, 53, 56, + 53, 128, 65, 53, 56, 52, 128, 65, 53, 56, 51, 128, 65, 53, 56, 50, 128, + 65, 53, 56, 49, 128, 65, 53, 56, 48, 128, 65, 53, 55, 57, 128, 65, 53, + 55, 56, 128, 65, 53, 55, 55, 128, 65, 53, 55, 54, 128, 65, 53, 55, 53, + 128, 65, 53, 55, 52, 128, 65, 53, 55, 51, 128, 65, 53, 55, 50, 128, 65, + 53, 55, 49, 128, 65, 53, 55, 48, 128, 65, 53, 54, 57, 128, 65, 53, 54, + 56, 128, 65, 53, 54, 54, 128, 65, 53, 54, 53, 128, 65, 53, 54, 52, 128, + 65, 53, 54, 51, 128, 65, 53, 53, 57, 128, 65, 53, 53, 55, 128, 65, 53, + 53, 54, 128, 65, 53, 53, 53, 128, 65, 53, 53, 52, 128, 65, 53, 53, 51, + 128, 65, 53, 53, 50, 128, 65, 53, 53, 49, 128, 65, 53, 53, 48, 128, 65, + 53, 52, 57, 128, 65, 53, 52, 56, 128, 65, 53, 52, 55, 128, 65, 53, 52, + 53, 128, 65, 53, 52, 50, 128, 65, 53, 52, 49, 128, 65, 53, 52, 48, 128, + 65, 53, 51, 57, 128, 65, 53, 51, 56, 128, 65, 53, 51, 55, 128, 65, 53, + 51, 54, 128, 65, 53, 51, 53, 128, 65, 53, 51, 52, 128, 65, 53, 51, 50, + 128, 65, 53, 51, 49, 128, 65, 53, 51, 48, 128, 65, 53, 50, 57, 128, 65, + 53, 50, 56, 128, 65, 53, 50, 55, 128, 65, 53, 50, 54, 128, 65, 53, 50, + 53, 128, 65, 53, 50, 52, 128, 65, 53, 50, 51, 128, 65, 53, 50, 50, 128, + 65, 53, 50, 49, 128, 65, 53, 50, 48, 128, 65, 53, 49, 57, 128, 65, 53, + 49, 56, 128, 65, 53, 49, 55, 128, 65, 53, 49, 54, 128, 65, 53, 49, 53, + 128, 65, 53, 49, 52, 128, 65, 53, 49, 51, 128, 65, 53, 49, 50, 128, 65, + 53, 49, 49, 128, 65, 53, 49, 48, 128, 65, 53, 48, 57, 128, 65, 53, 48, + 56, 128, 65, 53, 48, 55, 128, 65, 53, 48, 54, 128, 65, 53, 48, 53, 128, + 65, 53, 48, 52, 128, 65, 53, 48, 51, 128, 65, 53, 48, 50, 128, 65, 53, + 48, 49, 128, 65, 52, 57, 55, 128, 65, 52, 57, 54, 128, 65, 52, 57, 53, + 128, 65, 52, 57, 52, 128, 65, 52, 57, 51, 128, 65, 52, 57, 50, 128, 65, + 52, 57, 49, 128, 65, 52, 57, 48, 128, 65, 52, 56, 57, 128, 65, 52, 56, + 56, 128, 65, 52, 56, 55, 128, 65, 52, 56, 54, 128, 65, 52, 56, 53, 128, + 65, 52, 56, 52, 128, 65, 52, 56, 51, 128, 65, 52, 56, 50, 128, 65, 52, + 56, 49, 128, 65, 52, 56, 48, 128, 65, 52, 55, 57, 128, 65, 52, 55, 56, + 128, 65, 52, 55, 55, 128, 65, 52, 55, 54, 128, 65, 52, 55, 53, 128, 65, + 52, 55, 52, 128, 65, 52, 55, 51, 128, 65, 52, 55, 50, 128, 65, 52, 55, + 49, 128, 65, 52, 55, 48, 128, 65, 52, 54, 57, 128, 65, 52, 54, 56, 128, + 65, 52, 54, 55, 128, 65, 52, 54, 54, 128, 65, 52, 54, 53, 128, 65, 52, + 54, 52, 128, 65, 52, 54, 51, 128, 65, 52, 54, 50, 128, 65, 52, 54, 49, + 128, 65, 52, 54, 48, 128, 65, 52, 53, 57, 128, 65, 52, 53, 56, 128, 65, + 52, 53, 55, 65, 128, 65, 52, 53, 55, 128, 65, 52, 53, 54, 128, 65, 52, + 53, 53, 128, 65, 52, 53, 52, 128, 65, 52, 53, 51, 128, 65, 52, 53, 50, + 128, 65, 52, 53, 49, 128, 65, 52, 53, 48, 65, 128, 65, 52, 53, 48, 128, + 65, 52, 52, 57, 128, 65, 52, 52, 56, 128, 65, 52, 52, 55, 128, 65, 52, + 52, 54, 128, 65, 52, 52, 53, 128, 65, 52, 52, 52, 128, 65, 52, 52, 51, + 128, 65, 52, 52, 50, 128, 65, 52, 52, 49, 128, 65, 52, 52, 48, 128, 65, + 52, 51, 57, 128, 65, 52, 51, 56, 128, 65, 52, 51, 55, 128, 65, 52, 51, + 54, 128, 65, 52, 51, 53, 128, 65, 52, 51, 52, 128, 65, 52, 51, 51, 128, + 65, 52, 51, 50, 128, 65, 52, 51, 49, 128, 65, 52, 51, 48, 128, 65, 52, + 50, 57, 128, 65, 52, 50, 56, 128, 65, 52, 50, 55, 128, 65, 52, 50, 54, + 128, 65, 52, 50, 53, 128, 65, 52, 50, 52, 128, 65, 52, 50, 51, 128, 65, + 52, 50, 50, 128, 65, 52, 50, 49, 128, 65, 52, 50, 48, 128, 65, 52, 49, + 57, 128, 65, 52, 49, 56, 45, 86, 65, 83, 128, 65, 52, 49, 56, 128, 65, + 52, 49, 55, 45, 86, 65, 83, 128, 65, 52, 49, 55, 128, 65, 52, 49, 54, 45, + 86, 65, 83, 128, 65, 52, 49, 54, 128, 65, 52, 49, 53, 45, 86, 65, 83, + 128, 65, 52, 49, 53, 128, 65, 52, 49, 52, 45, 86, 65, 83, 128, 65, 52, + 49, 52, 128, 65, 52, 49, 51, 45, 86, 65, 83, 128, 65, 52, 49, 51, 128, + 65, 52, 49, 50, 45, 86, 65, 83, 128, 65, 52, 49, 50, 128, 65, 52, 49, 49, + 45, 86, 65, 83, 128, 65, 52, 49, 49, 128, 65, 52, 49, 48, 193, 65, 52, + 49, 48, 45, 86, 65, 83, 128, 65, 52, 49, 176, 65, 52, 48, 57, 45, 86, 65, + 83, 128, 65, 52, 48, 57, 128, 65, 52, 48, 56, 45, 86, 65, 83, 128, 65, + 52, 48, 56, 128, 65, 52, 48, 55, 45, 86, 65, 83, 128, 65, 52, 48, 55, + 128, 65, 52, 48, 54, 45, 86, 65, 83, 128, 65, 52, 48, 54, 128, 65, 52, + 48, 53, 45, 86, 65, 83, 128, 65, 52, 48, 53, 128, 65, 52, 48, 52, 45, 86, + 65, 83, 128, 65, 52, 48, 52, 128, 65, 52, 48, 51, 45, 86, 65, 83, 128, + 65, 52, 48, 51, 128, 65, 52, 48, 50, 45, 86, 65, 83, 128, 65, 52, 48, 50, + 128, 65, 52, 48, 49, 45, 86, 65, 83, 128, 65, 52, 48, 49, 128, 65, 52, + 48, 48, 45, 86, 65, 83, 128, 65, 52, 48, 48, 128, 65, 51, 57, 57, 128, + 65, 51, 57, 56, 128, 65, 51, 57, 55, 128, 65, 51, 57, 54, 128, 65, 51, + 57, 53, 128, 65, 51, 57, 52, 128, 65, 51, 57, 179, 65, 51, 57, 50, 128, + 65, 51, 57, 49, 128, 65, 51, 57, 48, 128, 65, 51, 56, 57, 128, 65, 51, + 56, 56, 128, 65, 51, 56, 55, 128, 65, 51, 56, 54, 65, 128, 65, 51, 56, + 54, 128, 65, 51, 56, 53, 128, 65, 51, 56, 52, 128, 65, 51, 56, 51, 65, + 128, 65, 51, 56, 179, 65, 51, 56, 50, 128, 65, 51, 56, 49, 65, 128, 65, + 51, 56, 49, 128, 65, 51, 56, 48, 128, 65, 51, 55, 57, 128, 65, 51, 55, + 56, 128, 65, 51, 55, 55, 128, 65, 51, 55, 54, 128, 65, 51, 55, 53, 128, + 65, 51, 55, 52, 128, 65, 51, 55, 51, 128, 65, 51, 55, 50, 128, 65, 51, + 55, 49, 65, 128, 65, 51, 55, 49, 128, 65, 51, 55, 48, 128, 65, 51, 54, + 57, 128, 65, 51, 54, 56, 65, 128, 65, 51, 54, 56, 128, 65, 51, 54, 55, + 128, 65, 51, 54, 54, 128, 65, 51, 54, 53, 128, 65, 51, 54, 52, 65, 128, + 65, 51, 54, 52, 128, 65, 51, 54, 51, 128, 65, 51, 54, 50, 128, 65, 51, + 54, 49, 128, 65, 51, 54, 48, 128, 65, 51, 53, 57, 65, 128, 65, 51, 53, + 57, 128, 65, 51, 53, 56, 128, 65, 51, 53, 55, 128, 65, 51, 53, 54, 128, + 65, 51, 53, 53, 128, 65, 51, 53, 52, 128, 65, 51, 53, 51, 128, 65, 51, + 53, 50, 128, 65, 51, 53, 49, 128, 65, 51, 53, 48, 128, 65, 51, 52, 57, + 128, 65, 51, 52, 56, 128, 65, 51, 52, 55, 128, 65, 51, 52, 54, 128, 65, + 51, 52, 53, 128, 65, 51, 52, 52, 128, 65, 51, 52, 51, 128, 65, 51, 52, + 50, 128, 65, 51, 52, 49, 128, 65, 51, 52, 48, 128, 65, 51, 51, 57, 128, + 65, 51, 51, 56, 128, 65, 51, 51, 55, 128, 65, 51, 51, 54, 67, 128, 65, + 51, 51, 54, 66, 128, 65, 51, 51, 54, 65, 128, 65, 51, 51, 54, 128, 65, + 51, 51, 53, 128, 65, 51, 51, 52, 128, 65, 51, 51, 51, 128, 65, 51, 51, + 50, 67, 128, 65, 51, 51, 50, 66, 128, 65, 51, 51, 50, 65, 128, 65, 51, + 51, 50, 128, 65, 51, 51, 49, 128, 65, 51, 51, 48, 128, 65, 51, 50, 57, + 65, 128, 65, 51, 50, 57, 128, 65, 51, 50, 56, 128, 65, 51, 50, 55, 128, + 65, 51, 50, 54, 128, 65, 51, 50, 53, 128, 65, 51, 50, 52, 128, 65, 51, + 50, 51, 128, 65, 51, 50, 50, 128, 65, 51, 50, 49, 128, 65, 51, 50, 48, + 128, 65, 51, 49, 57, 128, 65, 51, 49, 56, 128, 65, 51, 49, 55, 128, 65, + 51, 49, 54, 128, 65, 51, 49, 53, 128, 65, 51, 49, 52, 128, 65, 51, 49, + 51, 67, 128, 65, 51, 49, 51, 66, 128, 65, 51, 49, 51, 65, 128, 65, 51, + 49, 51, 128, 65, 51, 49, 50, 128, 65, 51, 49, 49, 128, 65, 51, 49, 48, + 128, 65, 51, 48, 57, 67, 128, 65, 51, 48, 57, 66, 128, 65, 51, 48, 57, + 65, 128, 65, 51, 48, 57, 128, 65, 51, 48, 56, 128, 65, 51, 48, 55, 128, + 65, 51, 48, 54, 128, 65, 51, 48, 53, 128, 65, 51, 48, 52, 128, 65, 51, + 48, 51, 128, 65, 51, 48, 50, 128, 65, 51, 48, 49, 128, 65, 51, 48, 48, + 128, 65, 50, 57, 57, 65, 128, 65, 50, 57, 57, 128, 65, 50, 57, 56, 128, + 65, 50, 57, 55, 128, 65, 50, 57, 54, 128, 65, 50, 57, 53, 128, 65, 50, + 57, 52, 65, 128, 65, 50, 57, 52, 128, 65, 50, 57, 51, 128, 65, 50, 57, + 50, 128, 65, 50, 57, 49, 128, 65, 50, 57, 48, 128, 65, 50, 56, 57, 65, + 128, 65, 50, 56, 57, 128, 65, 50, 56, 56, 128, 65, 50, 56, 55, 128, 65, + 50, 56, 54, 128, 65, 50, 56, 53, 128, 65, 50, 56, 52, 128, 65, 50, 56, + 51, 128, 65, 50, 56, 50, 128, 65, 50, 56, 49, 128, 65, 50, 56, 48, 128, + 65, 50, 55, 57, 128, 65, 50, 55, 56, 128, 65, 50, 55, 55, 128, 65, 50, + 55, 54, 128, 65, 50, 55, 53, 128, 65, 50, 55, 52, 128, 65, 50, 55, 51, + 128, 65, 50, 55, 50, 128, 65, 50, 55, 49, 128, 65, 50, 55, 48, 128, 65, + 50, 54, 57, 128, 65, 50, 54, 56, 128, 65, 50, 54, 55, 65, 128, 65, 50, + 54, 55, 128, 65, 50, 54, 54, 128, 65, 50, 54, 53, 128, 65, 50, 54, 52, + 128, 65, 50, 54, 51, 128, 65, 50, 54, 50, 128, 65, 50, 54, 49, 128, 65, + 50, 54, 48, 128, 65, 50, 53, 57, 128, 65, 50, 53, 56, 128, 65, 50, 53, + 55, 128, 65, 50, 53, 54, 128, 65, 50, 53, 53, 128, 65, 50, 53, 52, 128, + 65, 50, 53, 51, 128, 65, 50, 53, 50, 128, 65, 50, 53, 49, 128, 65, 50, + 53, 48, 128, 65, 50, 52, 57, 128, 65, 50, 52, 56, 128, 65, 50, 52, 55, + 128, 65, 50, 52, 54, 128, 65, 50, 52, 53, 128, 65, 50, 52, 52, 128, 65, + 50, 52, 51, 128, 65, 50, 52, 50, 128, 65, 50, 52, 49, 128, 65, 50, 52, + 48, 128, 65, 50, 51, 57, 128, 65, 50, 51, 56, 128, 65, 50, 51, 55, 128, + 65, 50, 51, 54, 128, 65, 50, 51, 53, 128, 65, 50, 51, 52, 128, 65, 50, + 51, 51, 128, 65, 50, 51, 50, 128, 65, 50, 51, 49, 128, 65, 50, 51, 48, + 128, 65, 50, 50, 57, 128, 65, 50, 50, 56, 128, 65, 50, 50, 55, 65, 128, + 65, 50, 50, 55, 128, 65, 50, 50, 54, 128, 65, 50, 50, 53, 128, 65, 50, + 50, 52, 128, 65, 50, 50, 51, 128, 65, 50, 50, 50, 128, 65, 50, 50, 49, + 128, 65, 50, 50, 48, 128, 65, 50, 49, 57, 128, 65, 50, 49, 56, 128, 65, + 50, 49, 55, 128, 65, 50, 49, 54, 65, 128, 65, 50, 49, 54, 128, 65, 50, + 49, 53, 65, 128, 65, 50, 49, 53, 128, 65, 50, 49, 52, 128, 65, 50, 49, + 51, 128, 65, 50, 49, 50, 128, 65, 50, 49, 49, 128, 65, 50, 49, 48, 128, + 65, 50, 48, 57, 65, 128, 65, 50, 48, 57, 128, 65, 50, 48, 56, 128, 65, + 50, 48, 55, 65, 128, 65, 50, 48, 55, 128, 65, 50, 48, 54, 128, 65, 50, + 48, 53, 128, 65, 50, 48, 52, 128, 65, 50, 48, 51, 128, 65, 50, 48, 50, + 66, 128, 65, 50, 48, 50, 65, 128, 65, 50, 48, 50, 128, 65, 50, 48, 49, + 128, 65, 50, 48, 48, 128, 65, 49, 57, 57, 128, 65, 49, 57, 56, 128, 65, + 49, 57, 55, 128, 65, 49, 57, 54, 128, 65, 49, 57, 53, 128, 65, 49, 57, + 52, 128, 65, 49, 57, 51, 128, 65, 49, 57, 50, 128, 65, 49, 57, 49, 128, + 65, 49, 57, 48, 128, 65, 49, 56, 57, 128, 65, 49, 56, 56, 128, 65, 49, + 56, 55, 128, 65, 49, 56, 54, 128, 65, 49, 56, 53, 128, 65, 49, 56, 52, + 128, 65, 49, 56, 51, 128, 65, 49, 56, 50, 128, 65, 49, 56, 49, 128, 65, + 49, 56, 48, 128, 65, 49, 55, 57, 128, 65, 49, 55, 56, 128, 65, 49, 55, + 55, 128, 65, 49, 55, 54, 128, 65, 49, 55, 53, 128, 65, 49, 55, 52, 128, + 65, 49, 55, 51, 128, 65, 49, 55, 50, 128, 65, 49, 55, 49, 128, 65, 49, + 55, 48, 128, 65, 49, 54, 57, 128, 65, 49, 54, 56, 128, 65, 49, 54, 55, + 128, 65, 49, 54, 54, 128, 65, 49, 54, 53, 128, 65, 49, 54, 52, 128, 65, + 49, 54, 51, 128, 65, 49, 54, 50, 128, 65, 49, 54, 49, 128, 65, 49, 54, + 48, 128, 65, 49, 53, 57, 128, 65, 49, 53, 56, 128, 65, 49, 53, 55, 128, + 65, 49, 53, 54, 128, 65, 49, 53, 53, 128, 65, 49, 53, 52, 128, 65, 49, + 53, 51, 128, 65, 49, 53, 50, 128, 65, 49, 53, 49, 128, 65, 49, 53, 48, + 128, 65, 49, 52, 57, 128, 65, 49, 52, 56, 128, 65, 49, 52, 55, 128, 65, + 49, 52, 54, 128, 65, 49, 52, 53, 128, 65, 49, 52, 52, 128, 65, 49, 52, + 51, 128, 65, 49, 52, 50, 128, 65, 49, 52, 49, 128, 65, 49, 52, 48, 128, + 65, 49, 51, 57, 128, 65, 49, 51, 56, 128, 65, 49, 51, 55, 128, 65, 49, + 51, 54, 128, 65, 49, 51, 53, 65, 128, 65, 49, 51, 53, 128, 65, 49, 51, + 52, 128, 65, 49, 51, 51, 128, 65, 49, 51, 50, 128, 65, 49, 51, 49, 67, + 128, 65, 49, 51, 49, 128, 65, 49, 51, 48, 128, 65, 49, 50, 57, 128, 65, + 49, 50, 56, 128, 65, 49, 50, 55, 128, 65, 49, 50, 54, 128, 65, 49, 50, + 53, 65, 128, 65, 49, 50, 53, 128, 65, 49, 50, 52, 128, 65, 49, 50, 51, + 128, 65, 49, 50, 50, 128, 65, 49, 50, 49, 128, 65, 49, 50, 48, 66, 128, + 65, 49, 50, 48, 128, 65, 49, 49, 57, 128, 65, 49, 49, 56, 128, 65, 49, + 49, 55, 128, 65, 49, 49, 54, 128, 65, 49, 49, 53, 65, 128, 65, 49, 49, + 53, 128, 65, 49, 49, 52, 128, 65, 49, 49, 51, 128, 65, 49, 49, 50, 128, + 65, 49, 49, 49, 128, 65, 49, 49, 48, 66, 128, 65, 49, 49, 48, 65, 128, + 65, 49, 49, 48, 128, 65, 49, 48, 57, 128, 65, 49, 48, 56, 128, 65, 49, + 48, 55, 67, 128, 65, 49, 48, 55, 66, 128, 65, 49, 48, 55, 65, 128, 65, + 49, 48, 55, 128, 65, 49, 48, 54, 128, 65, 49, 48, 53, 66, 128, 65, 49, + 48, 53, 65, 128, 65, 49, 48, 53, 128, 65, 49, 48, 52, 67, 128, 65, 49, + 48, 52, 66, 128, 65, 49, 48, 52, 65, 128, 65, 49, 48, 52, 128, 65, 49, + 48, 51, 128, 65, 49, 48, 50, 65, 128, 65, 49, 48, 50, 128, 65, 49, 48, + 49, 65, 128, 65, 49, 48, 49, 128, 65, 49, 48, 48, 65, 128, 65, 49, 48, + 48, 45, 49, 48, 50, 128, 65, 49, 48, 48, 128, 65, 48, 57, 57, 128, 65, + 48, 57, 56, 65, 128, 65, 48, 57, 56, 128, 65, 48, 57, 55, 65, 128, 65, + 48, 57, 55, 128, 65, 48, 57, 54, 128, 65, 48, 57, 53, 128, 65, 48, 57, + 52, 128, 65, 48, 57, 51, 128, 65, 48, 57, 50, 128, 65, 48, 57, 49, 128, + 65, 48, 57, 48, 128, 65, 48, 56, 57, 128, 65, 48, 56, 56, 128, 65, 48, + 56, 55, 128, 65, 48, 56, 54, 128, 65, 48, 56, 53, 128, 65, 48, 56, 52, + 128, 65, 48, 56, 51, 128, 65, 48, 56, 50, 128, 65, 48, 56, 49, 128, 65, + 48, 56, 48, 128, 65, 48, 55, 57, 128, 65, 48, 55, 56, 128, 65, 48, 55, + 55, 128, 65, 48, 55, 54, 128, 65, 48, 55, 53, 128, 65, 48, 55, 52, 128, + 65, 48, 55, 51, 128, 65, 48, 55, 50, 128, 65, 48, 55, 49, 128, 65, 48, + 55, 48, 128, 65, 48, 54, 57, 128, 65, 48, 54, 56, 128, 65, 48, 54, 55, + 128, 65, 48, 54, 54, 67, 128, 65, 48, 54, 54, 66, 128, 65, 48, 54, 54, + 65, 128, 65, 48, 54, 54, 128, 65, 48, 54, 53, 128, 65, 48, 54, 52, 128, + 65, 48, 54, 51, 128, 65, 48, 54, 50, 128, 65, 48, 54, 49, 128, 65, 48, + 54, 48, 128, 65, 48, 53, 57, 128, 65, 48, 53, 56, 128, 65, 48, 53, 55, + 128, 65, 48, 53, 54, 128, 65, 48, 53, 53, 128, 65, 48, 53, 52, 128, 65, + 48, 53, 51, 128, 65, 48, 53, 50, 128, 65, 48, 53, 49, 128, 65, 48, 53, + 48, 128, 65, 48, 52, 57, 128, 65, 48, 52, 56, 128, 65, 48, 52, 55, 128, + 65, 48, 52, 54, 66, 128, 65, 48, 52, 54, 65, 128, 65, 48, 52, 54, 128, + 65, 48, 52, 53, 65, 128, 65, 48, 52, 53, 128, 65, 48, 52, 52, 128, 65, + 48, 52, 51, 65, 128, 65, 48, 52, 51, 128, 65, 48, 52, 50, 65, 128, 65, + 48, 52, 50, 128, 65, 48, 52, 49, 65, 128, 65, 48, 52, 49, 128, 65, 48, + 52, 48, 65, 128, 65, 48, 52, 48, 128, 65, 48, 51, 57, 65, 128, 65, 48, + 51, 57, 128, 65, 48, 51, 56, 128, 65, 48, 51, 55, 128, 65, 48, 51, 54, + 128, 65, 48, 51, 53, 128, 65, 48, 51, 52, 128, 65, 48, 51, 51, 128, 65, + 48, 51, 50, 65, 128, 65, 48, 50, 56, 66, 128, 65, 48, 50, 54, 65, 128, + 65, 48, 49, 55, 65, 128, 65, 48, 49, 52, 65, 128, 65, 48, 49, 48, 65, + 128, 65, 48, 48, 54, 66, 128, 65, 48, 48, 54, 65, 128, 65, 48, 48, 53, + 65, 128, 65, 45, 87, 79, 128, 65, 45, 69, 85, 128, 45, 85, 205, 45, 80, + 72, 82, 85, 128, 45, 75, 72, 89, 85, 196, 45, 75, 72, 89, 73, 76, 128, + 45, 68, 90, 85, 196, 45, 67, 72, 65, 210, 45, 67, 72, 65, 76, 128, }; static const unsigned int lexicon_offset[] = { 0, 0, 6, 11, 15, 19, 27, 34, 44, 49, 55, 64, 66, 69, 81, 89, 102, 108, - 113, 118, 124, 129, 137, 146, 149, 160, 165, 170, 176, 180, 189, 195, - 201, 207, 216, 224, 229, 237, 244, 177, 252, 255, 261, 262, 268, 273, - 277, 282, 289, 296, 306, 311, 317, 325, 330, 333, 339, 344, 350, 356, - 359, 365, 375, 380, 385, 390, 392, 394, 403, 405, 412, 354, 419, 427, - 436, 438, 441, 449, 454, 455, 457, 464, 472, 478, 484, 491, 496, 503, - 507, 512, 519, 524, 527, 531, 536, 542, 547, 557, 565, 572, 575, 585, - 593, 598, 606, 615, 618, 625, 629, 633, 637, 642, 645, 652, 659, 666, - 671, 676, 683, 692, 694, 703, 707, 715, 719, 727, 281, 736, 749, 753, - 758, 761, 765, 769, 771, 776, 786, 792, 796, 802, 806, 809, 814, 823, - 828, 832, 774, 838, 846, 854, 859, 868, 877, 885, 891, 902, 905, 910, - 918, 925, 928, 938, 943, 949, 953, 957, 960, 967, 974, 977, 981, 984, - 657, 990, 993, 996, 1002, 1007, 1016, 1021, 1025, 1028, 1032, 1035, 1041, - 1046, 1050, 617, 1055, 1058, 1067, 1070, 1075, 1080, 1086, 1091, 1096, - 1101, 1105, 1110, 1116, 1121, 1126, 1130, 1136, 1141, 1146, 1151, 1155, - 1160, 1165, 1170, 1176, 1182, 1188, 1193, 1197, 1202, 1207, 1212, 1216, - 1221, 1226, 1231, 1236, 1071, 1076, 1081, 1087, 1092, 1240, 1102, 1246, - 1251, 1256, 1263, 1267, 1270, 1279, 1106, 1283, 1111, 1117, 1122, 1287, - 1292, 1297, 1301, 1305, 1311, 1315, 1127, 1318, 1320, 1137, 1325, 1329, - 1142, 1335, 1147, 1339, 1343, 1350, 1152, 1354, 1362, 1367, 1371, 1374, - 1378, 1156, 1161, 1383, 1389, 1166, 1401, 1407, 1413, 1419, 1171, 1183, - 1189, 1423, 1427, 1431, 1434, 1194, 1438, 1440, 1445, 1450, 1456, 1461, - 1466, 1470, 1475, 1480, 1485, 1490, 1496, 1501, 1506, 1512, 1518, 1523, - 1527, 1532, 1537, 1542, 1547, 1552, 1556, 1564, 1569, 1573, 1578, 1583, - 1588, 1593, 1597, 1600, 1607, 1612, 1617, 1622, 1627, 1633, 1638, 1642, - 1198, 1645, 1651, 1656, 1661, 1666, 1203, 1670, 1674, 1681, 1688, 1208, - 1693, 1698, 1213, 1702, 1704, 1709, 1720, 1726, 1217, 1731, 1740, 1222, - 1745, 1751, 1756, 1761, 1771, 1780, 1788, 1227, 1798, 1807, 1816, 1821, - 1825, 1828, 1837, 1847, 1856, 1861, 1865, 1869, 1873, 1876, 1880, 1885, - 1232, 1895, 1237, 1899, 1901, 1907, 1913, 1919, 1925, 1931, 1937, 1943, - 1949, 1954, 1960, 1966, 1972, 1978, 1984, 1990, 1996, 2002, 2008, 2013, - 2018, 2023, 2028, 2033, 2038, 2043, 2048, 2053, 2058, 2064, 2069, 2075, - 2080, 2086, 2092, 2097, 2103, 2109, 2115, 2121, 2126, 2131, 2133, 2134, - 2138, 2142, 2147, 2151, 2155, 2159, 2164, 2168, 2171, 2176, 2180, 2185, - 2189, 2193, 2198, 2202, 2205, 2209, 2215, 2229, 2233, 2237, 2241, 2244, - 2249, 2253, 2257, 2260, 2264, 2269, 2274, 2279, 2284, 2288, 2292, 2296, - 2300, 2304, 2309, 2313, 2318, 2322, 2327, 2333, 2340, 2346, 2351, 2356, - 2361, 2367, 2372, 2378, 2383, 2388, 2393, 2398, 2403, 2406, 2408, 1088, - 2412, 2419, 2427, 2437, 2446, 2460, 2464, 2468, 2473, 2486, 2494, 2497, - 2501, 2504, 2509, 2513, 2516, 2520, 2524, 2529, 1715, 2534, 2538, 2541, - 2545, 2551, 2558, 2565, 2571, 2576, 2581, 2587, 2593, 2598, 2603, 2608, - 2613, 2618, 2623, 2548, 2628, 1706, 2630, 2636, 2640, 2645, 2649, 2653, - 1603, 1728, 2658, 2662, 2666, 2669, 2674, 2679, 2684, 2689, 2693, 2700, - 2705, 2708, 2712, 2716, 2723, 2729, 2733, 2739, 2743, 2747, 2752, 2759, - 2764, 2769, 2776, 2782, 2788, 2794, 2815, 2829, 2846, 2861, 2877, 2894, - 2909, 2918, 2923, 2927, 2932, 2937, 2941, 2953, 2960, 2966, 2336, 2972, - 2979, 2985, 2989, 2992, 2999, 3005, 3010, 3014, 3019, 3023, 3027, 2156, - 3031, 3036, 3041, 3045, 3050, 3058, 3062, 3069, 3074, 3078, 3082, 3086, - 3091, 3096, 3101, 3105, 3110, 3115, 3119, 3124, 3129, 3133, 3136, 3140, - 3144, 3152, 3157, 3161, 3165, 3171, 3180, 3184, 3188, 3194, 3199, 3206, - 3210, 3220, 3224, 3228, 3233, 3237, 3242, 3248, 3253, 3257, 3261, 3265, - 2561, 3273, 3278, 3284, 3289, 3293, 3298, 3303, 3307, 3313, 3318, 2160, - 3324, 3330, 3335, 3340, 3345, 3350, 3355, 3360, 3365, 3370, 3375, 3380, - 3385, 3390, 3395, 3400, 3406, 3411, 1103, 101, 3417, 3421, 3425, 3429, - 3434, 3438, 3442, 3448, 3453, 3457, 3461, 3466, 3471, 3475, 3480, 3484, - 3487, 3491, 3496, 3500, 3505, 3509, 3512, 3514, 3518, 3522, 3527, 3531, - 3534, 3547, 3551, 3555, 3559, 3564, 3568, 3572, 3575, 3579, 3583, 3588, - 3592, 3597, 3602, 3607, 3611, 3618, 3623, 3626, 3632, 3635, 3640, 3646, - 3650, 3654, 3657, 3662, 3666, 3671, 3675, 3679, 3682, 3688, 3693, 3698, - 3704, 3709, 3714, 3720, 3726, 3731, 3736, 3741, 3746, 3749, 979, 644, - 3755, 3758, 3763, 3767, 3771, 3775, 3779, 3782, 3786, 3791, 3796, 3800, - 3805, 3809, 3814, 3818, 3822, 3826, 3832, 3838, 3841, 3844, 153, 3850, - 3855, 3864, 3872, 3881, 3891, 3898, 3904, 3911, 3916, 3920, 3924, 3932, - 3939, 3944, 3949, 3956, 3961, 3965, 3975, 3979, 3983, 3988, 3993, 4003, - 2172, 4008, 4012, 4015, 4021, 4026, 4032, 4038, 4043, 4050, 4054, 4058, - 4062, 4067, 4072, 4077, 4082, 4087, 4092, 634, 616, 1264, 4097, 4104, - 4111, 4117, 4126, 4131, 4138, 4145, 4150, 4156, 4162, 4167, 4172, 4176, - 4182, 4189, 4194, 4198, 4202, 2181, 4208, 4216, 4222, 4230, 863, 4236, - 4244, 4255, 4259, 4269, 4275, 4280, 4285, 4290, 4295, 2186, 4300, 4305, - 4320, 4326, 4333, 4344, 4354, 4360, 4365, 4371, 4377, 4380, 4383, 4387, - 4392, 4395, 4402, 4411, 4416, 4420, 4424, 4428, 4432, 4437, 4443, 4454, - 4458, 3492, 4463, 4475, 4481, 4489, 4493, 4498, 4505, 4510, 4515, 4520, - 1472, 4525, 4528, 4531, 4535, 4538, 4544, 4548, 4562, 4566, 4569, 4573, - 4579, 4585, 4590, 4594, 4598, 4604, 4615, 4621, 4626, 4632, 4636, 4644, - 4656, 4666, 4672, 4677, 4686, 4694, 4705, 4712, 4718, 4724, 4728, 4734, - 4743, 4752, 4757, 4763, 4767, 4776, 4782, 4787, 4791, 4796, 4800, 4808, - 4814, 4818, 4825, 4830, 4834, 4840, 4846, 4853, 2194, 4862, 4873, 4883, - 4892, 4897, 4902, 4907, 4912, 1280, 4917, 4919, 4924, 4930, 4935, 4940, - 4945, 4950, 4955, 4960, 4966, 4971, 4977, 4982, 4987, 4992, 4998, 5003, - 5008, 5013, 5018, 5024, 5029, 5035, 5040, 5045, 5050, 5055, 5060, 5065, - 5071, 5076, 5081, 348, 389, 5086, 5092, 5095, 5099, 5103, 5110, 5116, - 5121, 5125, 5129, 5132, 5135, 5139, 5143, 5146, 5150, 5154, 5158, 5163, - 5167, 5171, 5177, 5186, 4843, 5191, 5195, 5198, 5203, 5208, 5213, 5218, - 5223, 5228, 5233, 5238, 5243, 5248, 5252, 5257, 5262, 5267, 5272, 5277, - 5282, 5287, 5292, 5297, 5302, 5306, 5311, 5316, 5321, 5326, 5331, 5336, - 5341, 5346, 5351, 5356, 5360, 5365, 5370, 5375, 5380, 5385, 5390, 5395, - 5400, 5405, 5410, 5414, 5419, 5424, 5429, 5434, 5439, 5444, 5449, 5454, - 5459, 5464, 5468, 5473, 5478, 5483, 5488, 5493, 5498, 5503, 5508, 5513, - 5518, 5522, 5527, 5532, 5537, 5542, 5547, 5552, 5557, 5562, 5567, 5572, - 5576, 5581, 5586, 5591, 5596, 5602, 5608, 5614, 5620, 5626, 5632, 5638, - 5643, 5649, 5655, 5661, 5667, 5673, 5679, 5685, 5691, 5697, 5703, 5708, - 5714, 5720, 5726, 5732, 5738, 5744, 5750, 5756, 5762, 5768, 5773, 5779, - 5785, 5791, 5797, 5803, 5809, 5815, 5821, 5827, 5833, 5838, 5844, 5850, - 5856, 5862, 5868, 5874, 5880, 5886, 5892, 5898, 5903, 5909, 5915, 5921, - 5927, 5933, 5939, 5945, 5951, 5957, 5963, 5968, 5972, 5978, 5984, 5990, - 5996, 6002, 6008, 6014, 6020, 6026, 6032, 6037, 6043, 6049, 6055, 6061, - 6067, 6073, 6079, 6085, 6091, 6097, 6102, 6108, 6114, 6120, 6126, 6132, - 6138, 6144, 6150, 6156, 6162, 6167, 6173, 6179, 6185, 6191, 6197, 6203, - 6209, 6215, 6221, 6227, 6232, 6238, 6244, 6250, 6256, 6262, 6268, 6274, - 6280, 6286, 6292, 6297, 6303, 6309, 6315, 6321, 6327, 6333, 6339, 6345, - 6351, 6357, 6362, 6368, 6374, 6380, 6386, 6392, 6398, 6404, 6410, 6416, - 6422, 6427, 6433, 6439, 6445, 6451, 6457, 6463, 6469, 6475, 6481, 6487, - 6492, 6498, 6504, 6510, 6516, 6522, 6528, 6534, 6540, 6546, 6552, 6557, - 6563, 6569, 6575, 6581, 6587, 6593, 6599, 6605, 6611, 6617, 6622, 6626, - 6629, 6637, 6644, 6647, 6651, 6664, 6668, 6672, 6676, 6679, 6683, 6688, - 6692, 6701, 6705, 6711, 6718, 6729, 6737, 6744, 6750, 6754, 6762, 6771, - 6777, 6781, 6793, 6798, 6801, 6806, 6810, 6820, 6828, 6836, 6844, 6850, - 6854, 6864, 6874, 6882, 6889, 6896, 6902, 6908, 6915, 6919, 6926, 6936, - 6946, 6954, 6961, 6966, 6970, 6974, 6982, 6986, 6996, 7001, 7008, 7015, - 7023, 7033, 7038, 7042, 7047, 7051, 7058, 7063, 7077, 7082, 7087, 7094, - 3768, 7103, 7107, 7111, 7116, 7120, 7124, 7127, 7132, 7137, 7146, 7152, - 7158, 7163, 7169, 7173, 7184, 7194, 7209, 7224, 7239, 7254, 7269, 7284, - 7299, 7314, 7329, 7344, 7359, 7374, 7389, 7404, 7419, 7434, 7449, 7464, - 7479, 7494, 7509, 7524, 7539, 7554, 7569, 7584, 7599, 7614, 7629, 7644, - 7659, 7674, 7689, 7704, 7719, 7734, 7749, 7764, 7779, 7794, 7809, 7824, - 7839, 7854, 7869, 7884, 7899, 7914, 7929, 7938, 7947, 7952, 7958, 7968, - 7972, 7976, 7981, 7986, 7991, 7999, 8003, 8006, 8010, 3215, 8013, 8018, - 353, 534, 8024, 8027, 8035, 8039, 8043, 8046, 8050, 8056, 8060, 8068, - 8074, 8079, 8086, 8094, 8101, 8107, 8112, 8119, 8125, 8134, 8142, 8146, - 8151, 8159, 8171, 8182, 8189, 8200, 8204, 8208, 8212, 8215, 8221, 3519, - 8225, 8227, 8233, 8238, 8243, 8248, 8254, 8259, 8264, 8269, 8274, 8280, - 8285, 8290, 8296, 8301, 8307, 8312, 8318, 8323, 8329, 8334, 8339, 8344, - 8349, 8354, 8360, 8365, 8370, 8375, 8381, 8387, 8393, 8399, 8405, 8411, - 8417, 8423, 8429, 8435, 8441, 8447, 8452, 8457, 8462, 8467, 8472, 8477, - 8482, 8487, 8493, 8499, 8504, 8510, 8516, 8522, 8528, 8533, 8538, 8543, - 8548, 8554, 8560, 8565, 8570, 8575, 8580, 8585, 8591, 8596, 8602, 8608, - 8614, 8620, 8626, 8632, 8638, 8644, 8650, 2203, 8045, 8655, 8659, 8667, - 8671, 8674, 8677, 8683, 8690, 1107, 8693, 8697, 8705, 8710, 8715, 8706, - 8720, 2230, 8724, 8730, 8736, 8741, 8746, 8753, 8761, 8766, 8770, 8773, - 8777, 8783, 8789, 8793, 1653, 631, 8796, 8800, 8805, 8811, 8816, 8820, - 8823, 8827, 8833, 8838, 8842, 8849, 8853, 8857, 8861, 773, 8681, 2254, - 8864, 8872, 8879, 8886, 8892, 8899, 8907, 8914, 8925, 8932, 8938, 8950, - 1123, 1288, 1293, 8961, 8965, 1298, 8969, 8973, 8982, 8990, 8994, 9003, - 9009, 9015, 9020, 9024, 9030, 9035, 9043, 9050, 2914, 9057, 9063, 9067, - 9076, 9085, 9094, 9103, 9109, 9114, 9119, 9130, 9139, 9151, 9156, 9164, - 2289, 9168, 9170, 9175, 9179, 9188, 9196, 1302, 168, 3810, 3815, 9202, - 9206, 9215, 9221, 9226, 9229, 9233, 9237, 9242, 9247, 9252, 9257, 9261, - 9270, 9276, 2301, 9280, 2906, 9284, 9292, 9296, 9300, 2305, 9304, 9308, - 9312, 9316, 9320, 2310, 9324, 9329, 9336, 9342, 9349, 9355, 9358, 9254, - 9360, 9368, 9376, 9384, 9387, 9392, 2323, 9397, 8717, 9400, 9402, 9407, - 9412, 9417, 9422, 9427, 9432, 9437, 9442, 9447, 9452, 9458, 9463, 9468, - 9473, 9479, 9484, 9489, 9494, 9499, 9504, 9509, 9515, 9520, 9525, 9530, - 9535, 9540, 9545, 9550, 9555, 9560, 9565, 9570, 9575, 9580, 9585, 9590, - 9595, 9600, 9606, 9612, 9617, 9622, 9627, 9632, 9637, 2334, 2341, 2347, - 9642, 9650, 9656, 9664, 2373, 2379, 9672, 2384, 2389, 2394, 2399, 9676, - 9680, 9685, 9689, 9693, 9697, 9702, 9706, 9711, 9715, 9718, 9721, 9727, - 9734, 9740, 9747, 9753, 9760, 9766, 9773, 9779, 9785, 9794, 9800, 9804, - 9808, 9812, 9816, 9821, 9825, 9830, 9834, 9840, 9844, 9849, 9856, 9867, - 9875, 9885, 9891, 9901, 9910, 9917, 9922, 9926, 9937, 9947, 9960, 9971, - 9984, 9995, 10007, 10019, 10031, 10042, 10055, 10068, 10075, 10081, - 10092, 10102, 10116, 10123, 10129, 10138, 10146, 10150, 10155, 10159, - 10166, 10174, 10181, 10185, 10191, 10195, 10201, 10211, 10215, 10220, - 10225, 10232, 10238, 8894, 10248, 10252, 10259, 10265, 10272, 10279, - 10283, 10286, 10292, 10296, 10301, 10306, 10311, 10315, 10321, 10329, - 10336, 10342, 10346, 10349, 10355, 10365, 10369, 10375, 10380, 10384, - 10389, 10393, 10399, 10405, 10410, 10416, 10421, 10426, 10431, 2226, - 10436, 10438, 10443, 10451, 10460, 10464, 10470, 10475, 10480, 10485, - 10490, 10496, 10501, 10506, 4600, 10511, 10516, 10520, 10526, 10531, - 10537, 10542, 10547, 10553, 10558, 10465, 10564, 10568, 10575, 10581, - 10586, 10590, 7073, 10595, 10604, 10609, 10614, 9332, 9339, 10619, 3088, - 10623, 10628, 10633, 10638, 10476, 10642, 10647, 10652, 10481, 10656, - 10486, 10661, 10668, 10675, 10681, 10688, 10694, 10700, 10705, 10712, - 10717, 10722, 10727, 10733, 10491, 10497, 10739, 10744, 10750, 10755, - 10760, 10768, 1358, 10773, 1048, 10776, 10784, 10800, 10816, 10831, - 10839, 10845, 10851, 10860, 10868, 10876, 10884, 10892, 10900, 10908, - 10916, 10924, 10933, 10942, 10950, 10959, 10968, 10977, 10986, 10995, - 11004, 11013, 11022, 11031, 11040, 11048, 11053, 11057, 11063, 11071, - 11078, 11093, 11110, 11129, 11138, 11146, 11161, 11172, 11180, 11186, - 11196, 11206, 11214, 11220, 11232, 11241, 11249, 11256, 11263, 11270, - 11276, 11281, 11291, 11297, 11305, 11315, 11322, 11332, 11342, 11352, - 11360, 11367, 11376, 11386, 11400, 11415, 11424, 11432, 11437, 11441, - 11451, 11461, 11473, 11482, 11488, 11493, 11503, 11513, 11523, 11528, - 11532, 11542, 11551, 11556, 11572, 11589, 11599, 11604, 11615, 11628, - 11639, 11647, 11660, 11672, 11680, 11685, 11689, 11695, 11700, 11708, - 11716, 11723, 11734, 11739, 11747, 11757, 11763, 11767, 11770, 11776, - 11780, 11786, 11793, 11797, 11805, 11814, 11822, 11829, 11834, 11838, - 11843, 11847, 11851, 11859, 11874, 11890, 11896, 11904, 11913, 11921, - 11927, 11931, 11938, 11949, 11953, 11956, 11967, 11973, 11978, 10507, - 11986, 11992, 11999, 12005, 12010, 12017, 12024, 12031, 12038, 12045, - 12052, 12059, 12066, 12073, 12080, 12087, 12094, 12101, 12108, 12115, - 12120, 11106, 12125, 12131, 12138, 12145, 12150, 12157, 12166, 12170, - 12177, 12189, 12193, 12199, 12204, 12209, 12214, 12219, 12224, 12229, - 12232, 12236, 11457, 12240, 12244, 12250, 12256, 12261, 12267, 12272, - 12277, 12283, 12288, 12293, 10228, 12298, 12302, 12306, 12310, 12315, - 12320, 12325, 12333, 12339, 12344, 12348, 12352, 12359, 12364, 12372, - 12379, 12384, 12388, 12391, 12397, 12404, 12408, 12411, 12416, 12420, - 4639, 12426, 12435, 46, 12443, 12449, 12454, 12459, 12467, 12474, 12479, - 6991, 12485, 12491, 12496, 12500, 12503, 12509, 12517, 12524, 12539, - 12558, 12570, 12583, 12596, 12609, 12623, 12636, 12651, 12658, 10512, - 12664, 12678, 12683, 12689, 12694, 12702, 12707, 9072, 12712, 12715, - 12723, 12730, 12735, 12739, 12745, 12749, 12754, 12759, 12764, 12769, - 12774, 12779, 3093, 11194, 12784, 12788, 12794, 12800, 12805, 12811, - 12816, 10521, 12822, 12828, 12833, 12838, 12846, 12852, 12865, 12873, - 12880, 12886, 10527, 12892, 12900, 12908, 12915, 12928, 12941, 12953, - 12963, 12975, 13003, 13011, 13020, 13027, 13039, 13046, 13056, 13065, - 13073, 13080, 13085, 13091, 10532, 13096, 13102, 13107, 13112, 13117, - 10538, 13122, 13125, 13132, 13138, 13152, 13165, 13176, 9860, 13187, - 13193, 13202, 13210, 13217, 13223, 13234, 13240, 13245, 13253, 4113, - 13259, 13264, 12531, 13270, 13277, 13282, 10543, 13288, 13293, 13300, - 13306, 13312, 13317, 13325, 13333, 13340, 13344, 13356, 13370, 13380, - 13385, 13389, 13400, 13406, 13411, 13416, 10548, 13420, 10554, 13425, - 13428, 13433, 13445, 13452, 13457, 13461, 13469, 13474, 13478, 13483, - 13487, 13494, 13500, 10559, 10466, 13507, 3098, 17, 13514, 13519, 13523, - 13527, 13533, 13541, 13551, 13556, 13561, 13568, 13575, 13579, 13590, - 13600, 13609, 13618, 13630, 13635, 13639, 13647, 13661, 13665, 13668, - 13672, 13680, 13687, 13695, 13699, 13710, 13718, 13722, 13729, 13734, - 13738, 13744, 13749, 13755, 13760, 13765, 13769, 13775, 13780, 13791, - 13795, 13798, 13804, 13811, 13817, 13822, 13828, 13834, 13841, 13852, - 13862, 13872, 13881, 13888, 13897, 13901, 10569, 10576, 10582, 10587, - 13907, 13913, 13919, 13924, 13930, 10591, 13936, 13939, 13946, 13951, - 13957, 13962, 13977, 13993, 14008, 14016, 14021, 14028, 14034, 14038, - 14043, 14048, 14053, 14058, 14063, 14068, 14073, 14078, 14083, 1561, 383, - 14088, 14096, 14103, 14109, 14114, 14119, 10596, 14121, 14125, 14130, - 14134, 14144, 14149, 14153, 14156, 14165, 14169, 14172, 14179, 10605, - 14184, 14187, 14195, 14202, 14210, 14214, 14220, 14228, 14232, 14239, - 14248, 14255, 14251, 14262, 14266, 14272, 14276, 14280, 14284, 14290, - 14296, 14306, 14314, 14321, 14325, 14333, 14338, 14342, 14349, 14354, - 14361, 14365, 14370, 14375, 14379, 14386, 14392, 14400, 14406, 14411, - 14421, 14428, 14433, 14438, 14442, 14446, 14454, 4469, 14462, 14467, - 10610, 14471, 14478, 14482, 14485, 14493, 14500, 14504, 14507, 6846, - 14511, 14516, 14521, 14525, 14536, 14546, 14551, 14557, 14562, 14571, - 14575, 14578, 14586, 14591, 14596, 14603, 14608, 4865, 10615, 14613, - 14617, 14624, 14629, 14634, 14639, 7021, 14644, 14649, 14654, 14659, - 14665, 14670, 14676, 14681, 14686, 14691, 14696, 14701, 14706, 14711, - 14716, 14721, 14726, 14731, 14736, 14741, 14746, 14751, 14756, 14762, - 14767, 14772, 14777, 14782, 14787, 14793, 14798, 14803, 14809, 14814, - 14820, 14825, 14831, 14836, 14841, 14846, 14851, 14857, 14862, 14867, - 14872, 14880, 988, 112, 14886, 14890, 14895, 14900, 14904, 14908, 14912, - 14917, 14921, 14926, 14930, 14933, 14937, 14941, 14947, 14952, 14962, - 14968, 14976, 14982, 14986, 14990, 14997, 15005, 15014, 15025, 15035, - 15042, 15049, 15053, 15062, 15071, 15079, 15086, 15095, 15104, 15113, - 15122, 15132, 15142, 15152, 15162, 15172, 15181, 15191, 15201, 15211, - 15221, 15231, 15241, 15251, 15260, 15270, 15280, 15290, 15300, 15310, - 15320, 15329, 15339, 15349, 15359, 15369, 15379, 15389, 15399, 15409, - 15419, 15428, 15438, 15448, 15458, 15468, 15478, 15488, 15498, 15508, - 15518, 15528, 15537, 15543, 1132, 15547, 15550, 15554, 15559, 15566, - 15572, 15577, 15581, 15586, 15595, 15604, 15612, 15617, 15621, 15625, - 15631, 15636, 15642, 10624, 15647, 15652, 15661, 15666, 10634, 15671, - 11444, 11454, 11464, 15674, 15680, 15688, 10639, 15695, 15699, 15703, - 15709, 15714, 15718, 15728, 15734, 15740, 15745, 15754, 15762, 15769, - 15776, 15781, 15788, 15793, 15797, 15800, 15811, 15821, 15834, 15843, - 15851, 15862, 15874, 15884, 15894, 15899, 15903, 15908, 15913, 15917, - 15923, 15931, 15938, 15949, 15954, 15964, 15973, 15977, 15980, 15987, - 15997, 16006, 16013, 16017, 16024, 16030, 16035, 16040, 16044, 15590, - 16053, 16057, 16063, 16067, 16072, 16076, 16083, 16090, 16094, 16103, - 16111, 16119, 16126, 16134, 16146, 16157, 16167, 16174, 16180, 16189, - 16200, 16209, 16221, 16233, 16245, 16255, 16264, 16274, 16283, 16291, - 16298, 16308, 16317, 16325, 16329, 16334, 16340, 16346, 16351, 16356, - 16360, 16365, 16370, 16375, 16380, 16385, 16390, 16395, 8738, 16400, - 16402, 16406, 16411, 16417, 16424, 16430, 16436, 16445, 16449, 16455, - 16463, 16470, 16479, 16488, 16497, 16506, 16515, 16524, 16533, 16542, - 16552, 16562, 16571, 16577, 16584, 16591, 16597, 16611, 16617, 16624, - 16632, 16641, 16649, 16655, 16664, 16670, 16679, 16690, 16696, 16706, - 16714, 16721, 16729, 16737, 16744, 16753, 16766, 16775, 16783, 16790, - 16803, 16809, 16815, 16825, 16834, 16843, 16852, 16860, 16865, 16869, - 16875, 16881, 16886, 16893, 16900, 10242, 16905, 16910, 16917, 16925, - 16930, 16942, 16949, 16954, 16966, 14943, 16971, 16977, 16985, 16991, - 16996, 17004, 17012, 17019, 17027, 17034, 17040, 17046, 17054, 17062, - 17068, 17076, 17082, 17087, 17093, 17100, 17106, 17111, 17115, 17126, - 17134, 17142, 17148, 17153, 17160, 17169, 17175, 17180, 17188, 17195, - 17204, 17218, 4413, 17222, 17227, 17232, 17238, 17243, 17248, 17252, - 17257, 17262, 17267, 8737, 17272, 17277, 17282, 17287, 17292, 17296, - 17301, 17306, 17311, 17316, 17322, 17328, 14216, 17333, 17339, 17344, - 17349, 17354, 10643, 17359, 17364, 17369, 17374, 17379, 17393, 17410, - 17428, 17440, 17453, 17470, 17486, 17503, 17513, 17532, 17543, 17554, - 17565, 2803, 17576, 17587, 17598, 17615, 17626, 17637, 17642, 10648, - 17647, 17651, 2483, 17655, 17661, 17664, 17670, 17678, 17686, 17692, - 17701, 17708, 17713, 17721, 17729, 17736, 17740, 17745, 17751, 17758, - 17766, 17773, 17785, 17792, 17798, 17806, 17811, 17817, 17823, 17828, - 13971, 17835, 17839, 17848, 17854, 17859, 17867, 17876, 17884, 17891, - 17897, 17905, 17912, 17918, 17924, 17931, 17938, 17944, 17950, 17954, - 17963, 17971, 17976, 17986, 17993, 17999, 18007, 18013, 18021, 18029, - 18036, 18049, 18053, 18060, 18069, 18078, 18087, 18095, 18105, 18112, - 18117, 3969, 18124, 18129, 1248, 18133, 18140, 17273, 18144, 18150, - 18154, 18162, 18174, 18179, 18186, 18192, 18197, 18204, 17278, 18208, - 18212, 18220, 18225, 18229, 17283, 18233, 17288, 18237, 18244, 18249, - 18253, 18260, 18264, 18267, 18275, 18282, 18287, 18295, 18299, 18306, - 18323, 18332, 18341, 18345, 18348, 18354, 18362, 18368, 18373, 18377, - 18382, 18387, 18392, 18397, 18402, 18407, 4047, 18412, 18414, 18422, - 18429, 18439, 18451, 18456, 18460, 18466, 18471, 18479, 18483, 18489, - 18494, 18500, 18503, 18510, 18518, 18525, 18531, 18536, 18542, 18547, - 18554, 18560, 18565, 18575, 18584, 18591, 18596, 18600, 18606, 18612, - 18616, 18623, 18629, 18634, 18640, 18648, 18656, 18663, 18669, 18675, - 18680, 18686, 18692, 18700, 18705, 18710, 18718, 18724, 18730, 18735, - 18742, 18747, 18751, 18757, 18763, 18768, 18774, 18781, 18786, 18792, - 18795, 18801, 18812, 18818, 18827, 18830, 18834, 18838, 18852, 18865, - 18877, 18883, 18888, 18895, 18901, 18907, 18918, 18930, 18942, 18952, - 18961, 18969, 18976, 18987, 18997, 19007, 19015, 19018, 17302, 19023, - 19028, 19035, 17307, 17458, 19043, 19056, 19071, 19082, 17475, 19100, - 19113, 19126, 19137, 12546, 19148, 19161, 19180, 19191, 19202, 19213, - 2824, 19226, 19230, 19238, 19249, 19260, 19268, 19283, 19298, 19309, - 19316, 19322, 19330, 19334, 19340, 19344, 19347, 19360, 19372, 19382, - 19390, 19397, 19405, 19415, 19420, 19427, 19432, 19439, 19450, 19460, - 19466, 19471, 19476, 17312, 19480, 19486, 19493, 19499, 19504, 19509, - 19514, 19518, 17317, 17323, 19522, 17329, 19527, 19535, 19540, 19544, - 19551, 19559, 19566, 19575, 19582, 19586, 19590, 19595, 19600, 19605, - 19610, 19615, 10487, 19620, 19622, 19627, 19632, 19638, 19643, 19648, - 19653, 19658, 19662, 19668, 19674, 19679, 19685, 19690, 19695, 19699, - 19705, 19710, 19714, 19719, 19724, 19736, 19741, 19747, 19752, 19757, - 19763, 19769, 19774, 19779, 19784, 19791, 19797, 19808, 19815, 19824, - 19829, 19833, 279, 19837, 19845, 19850, 19856, 19862, 19867, 19874, - 19881, 19887, 19892, 19898, 19903, 19908, 19913, 19920, 19930, 19938, - 19943, 19948, 19955, 19961, 19970, 19980, 19990, 20004, 20018, 20032, - 20046, 20061, 20076, 20093, 20111, 20124, 20130, 20135, 20140, 20144, - 20152, 20157, 20165, 20171, 20177, 20182, 20187, 20191, 20197, 20202, - 20206, 20213, 20218, 20222, 20233, 20239, 20244, 20249, 20256, 20261, - 20265, 3927, 20270, 20276, 20283, 17334, 20289, 20293, 20299, 20304, - 20309, 20313, 20319, 20324, 20329, 20336, 20341, 15730, 20345, 20350, - 20354, 20359, 20365, 20371, 20378, 20388, 20396, 20403, 20408, 20412, - 20421, 20429, 20436, 20443, 20449, 20454, 20460, 20465, 20470, 20476, - 20481, 20487, 20492, 20498, 20504, 20511, 20517, 20522, 20527, 10713, - 20536, 20539, 20547, 20553, 20558, 20563, 20573, 20580, 20586, 20591, - 20596, 20602, 20607, 20613, 20618, 20624, 20631, 20637, 20643, 20648, - 20656, 20663, 20668, 20673, 20679, 20684, 20688, 20697, 20708, 20715, - 20722, 20730, 20737, 20744, 20749, 20754, 20760, 20765, 20773, 20779, - 20785, 20790, 20797, 20803, 20808, 20812, 20818, 20823, 20828, 20832, - 20837, 1321, 8762, 3112, 20841, 20845, 20849, 20853, 20857, 20861, 20864, - 20869, 20876, 20884, 20894, 20905, 20915, 20926, 20938, 20949, 20959, - 20970, 20982, 20993, 21005, 21018, 21030, 21041, 21051, 21062, 21074, - 21085, 21098, 21110, 21121, 21133, 21146, 21158, 21171, 21185, 21198, - 21210, 21221, 21231, 21242, 21254, 21265, 21277, 21290, 21302, 21313, - 21325, 21338, 21351, 21365, 21378, 21390, 21401, 21413, 21426, 21438, - 21451, 21465, 21478, 21490, 21503, 21517, 21530, 21544, 21558, 21571, - 21583, 21594, 21604, 17345, 21611, 21617, 21627, 21635, 21642, 21650, - 21660, 21669, 21682, 21687, 21692, 21700, 21707, 15839, 15848, 21714, - 21724, 21739, 21745, 21752, 21759, 21766, 21772, 21778, 21789, 21797, - 21805, 21815, 21825, 21834, 17350, 21843, 21849, 21855, 21864, 21872, - 21880, 21885, 21894, 21902, 21914, 21924, 21934, 21944, 21953, 21965, - 21975, 21985, 21996, 22003, 22008, 22015, 22027, 22039, 22051, 22063, - 22075, 22087, 22099, 22111, 22123, 22135, 22146, 22158, 22170, 22182, - 22194, 22206, 22218, 22230, 22242, 22254, 22266, 22277, 22289, 22301, - 22313, 22325, 22337, 22349, 22361, 22373, 22385, 22397, 22408, 22420, - 22432, 22444, 22456, 22468, 22480, 22492, 22504, 22516, 22528, 22539, - 22551, 22563, 22575, 22587, 22599, 22611, 22623, 22635, 22647, 22659, - 22670, 22682, 22694, 22706, 22718, 22730, 22742, 22754, 22766, 22778, - 22790, 22801, 22813, 22825, 22837, 22849, 22861, 22873, 22885, 22897, - 22909, 22921, 22932, 22944, 22956, 22968, 22980, 22993, 23006, 23019, - 23032, 23045, 23058, 23071, 23083, 23096, 23109, 23122, 23135, 23148, - 23161, 23174, 23187, 23200, 23213, 23225, 23238, 23251, 23264, 23277, - 23290, 23303, 23316, 23329, 23342, 23355, 23367, 23380, 23393, 23406, - 23419, 23432, 23445, 23458, 23471, 23484, 23497, 23509, 23522, 23535, - 23548, 23561, 23574, 23587, 23600, 23613, 23626, 23639, 23651, 23664, - 23677, 23690, 23703, 23716, 23729, 23742, 23755, 23768, 23781, 23793, - 23804, 23817, 23830, 23843, 23856, 23869, 23882, 23895, 23908, 23921, - 23934, 23946, 23959, 23972, 23985, 23998, 24011, 24024, 24037, 24050, - 24063, 24076, 24088, 24101, 24114, 24127, 24140, 24153, 24166, 24179, - 24192, 24205, 24218, 24230, 24243, 24256, 24269, 24282, 24295, 24308, - 24321, 24334, 24347, 24360, 24372, 24385, 24398, 24411, 24424, 24437, - 24450, 24463, 24476, 24489, 24502, 24514, 24527, 24540, 24553, 24566, - 24579, 24592, 24605, 24618, 24631, 24644, 24656, 24669, 24682, 24695, - 24708, 24721, 24734, 24747, 24760, 24773, 24786, 24798, 24811, 24824, - 24837, 24850, 24863, 24876, 24889, 24902, 24915, 24928, 24940, 24953, - 24966, 24979, 24992, 25005, 25018, 25031, 25044, 25057, 25070, 25082, - 25095, 25108, 25121, 25134, 25147, 25160, 25173, 25186, 25199, 25212, - 25224, 25235, 25244, 25252, 25260, 25267, 25273, 25277, 25283, 25289, - 25298, 25306, 25311, 25317, 25322, 25326, 25335, 10492, 25346, 25352, - 25359, 25367, 25374, 13145, 13159, 25381, 25388, 25397, 25402, 25407, - 25414, 25419, 25424, 8778, 8784, 8790, 25429, 25434, 25437, 25442, 25450, - 25457, 25464, 25476, 25483, 25489, 25498, 25503, 25512, 25521, 25527, - 25535, 25544, 25548, 25554, 25559, 25569, 25576, 25582, 25590, 25596, - 25603, 25609, 25619, 25628, 25632, 25639, 25643, 25648, 25654, 25662, - 25666, 25676, 17360, 25685, 25691, 25695, 25704, 25713, 25723, 25729, - 17365, 25736, 25743, 25754, 25762, 25772, 25781, 25789, 10207, 25797, - 25802, 25808, 25813, 25817, 25821, 25825, 11301, 25830, 25838, 25845, - 25854, 25862, 25869, 25876, 25885, 25891, 1062, 25898, 25904, 25908, - 25914, 25921, 25927, 25935, 25941, 25948, 25954, 25960, 25969, 25973, - 25981, 25989, 25996, 26005, 26012, 26017, 26021, 26031, 26042, 26053, - 26058, 26063, 26069, 26078, 26083, 26096, 9000, 26100, 26106, 26112, - 26118, 26123, 26131, 26135, 26142, 26151, 26156, 17638, 26164, 26168, - 26180, 26185, 26189, 26192, 26198, 26204, 26210, 26215, 26220, 26224, - 26227, 26238, 26243, 10769, 26250, 26255, 26260, 26265, 26270, 26275, - 26280, 26285, 26290, 10774, 26295, 26300, 26305, 26310, 26315, 26320, - 26325, 26330, 26335, 26340, 26345, 26350, 26356, 26361, 26366, 26371, - 26376, 26381, 26386, 26391, 26396, 26401, 26407, 26413, 26418, 26423, - 26428, 26433, 26438, 26443, 26448, 26453, 26458, 26464, 26469, 26474, - 26479, 26485, 26491, 26496, 26501, 26506, 26511, 26516, 26521, 26526, - 26531, 26537, 26542, 26547, 26552, 26557, 26563, 26568, 26573, 26577, - 1244, 145, 26585, 26589, 26593, 26597, 26602, 26606, 15736, 2409, 26610, - 26615, 26619, 26624, 26628, 26633, 26637, 26643, 26648, 26652, 26656, - 26664, 26668, 26672, 26679, 26684, 26689, 26693, 26699, 26704, 26708, - 26713, 26718, 26722, 26729, 26736, 26743, 26748, 26752, 26756, 26761, - 26765, 26768, 26774, 26787, 26792, 26798, 26807, 26812, 11049, 26817, - 26826, 26831, 26834, 26838, 26843, 26848, 26853, 26858, 26863, 2920, - 2925, 26868, 26874, 26878, 26884, 3888, 26889, 26894, 26899, 26905, - 26910, 16686, 26915, 26920, 26925, 26930, 26936, 26941, 26946, 26952, - 26957, 26961, 26966, 26971, 26976, 26981, 26986, 26990, 26995, 26999, - 27004, 27009, 27014, 27019, 27023, 27028, 27032, 27037, 27042, 27047, - 26962, 3121, 26967, 27052, 27060, 27067, 11395, 27079, 27087, 27097, - 27115, 27134, 27143, 27151, 26972, 27158, 27163, 27171, 26977, 27176, - 27181, 27189, 27194, 27199, 27203, 19858, 27208, 27216, 27221, 27225, - 27232, 27238, 27247, 27251, 27259, 27265, 27269, 27272, 20692, 27279, - 27283, 27287, 27292, 27298, 27305, 27310, 10234, 27314, 27319, 27324, - 27329, 27334, 27339, 1663, 1668, 27344, 27350, 27356, 27361, 27365, - 27369, 27373, 27377, 27381, 27385, 27389, 27393, 25470, 27396, 27403, - 27411, 27417, 27423, 27428, 27433, 27439, 27443, 27448, 27455, 16586, - 16593, 27461, 27473, 27476, 27483, 27487, 19883, 27494, 27502, 27513, - 27522, 27535, 27545, 27559, 27571, 27585, 27598, 27610, 27620, 27632, - 27638, 27653, 27677, 27695, 27714, 27727, 27741, 27759, 27775, 27792, - 27810, 27821, 27840, 27857, 27877, 27895, 27907, 27921, 27935, 27947, - 27964, 27983, 28001, 28013, 28031, 28050, 17518, 28063, 28083, 28095, - 12577, 28107, 28112, 28117, 28122, 28131, 28137, 28142, 28146, 28153, - 28159, 28163, 28168, 28173, 28178, 28183, 28188, 28193, 2506, 28198, - 28204, 28208, 28211, 28222, 28226, 28229, 28237, 28243, 14882, 28247, - 28256, 28267, 28273, 28279, 28294, 28303, 28311, 28318, 28323, 28327, - 28334, 28340, 28349, 28357, 28364, 28374, 28383, 28393, 28398, 28407, - 28416, 28427, 28438, 28448, 28465, 4557, 28475, 28479, 28489, 28497, - 28507, 28518, 28524, 28529, 28539, 28547, 28554, 28560, 28567, 28572, - 27010, 28576, 28585, 28589, 28592, 28597, 28605, 28612, 28621, 28629, - 28637, 28645, 28655, 28664, 28670, 28676, 28682, 28686, 27015, 27020, - 28690, 28700, 28710, 28720, 28728, 28735, 28745, 28753, 28761, 28767, - 28775, 798, 28784, 17725, 649, 28798, 28807, 28815, 28826, 28837, 28847, - 28856, 28868, 28877, 28886, 28893, 28899, 28909, 28918, 28927, 28935, - 28943, 28953, 28961, 28969, 28976, 28982, 28987, 28992, 28997, 8156, - 29002, 29005, 29009, 29014, 29022, 29028, 29033, 29037, 3751, 27033, - 29045, 27038, 29051, 29057, 29063, 29068, 29073, 29077, 29085, 29091, - 29097, 29101, 3912, 29109, 29114, 29119, 29123, 29127, 11681, 29134, - 29142, 29156, 29163, 29170, 29176, 11690, 11696, 29184, 29192, 29199, - 29204, 29209, 27043, 29215, 29226, 29235, 19031, 29243, 29248, 2755, - 29253, 29264, 29270, 29275, 29279, 29283, 29286, 29293, 29300, 29306, - 29314, 29321, 29327, 29331, 8196, 29336, 29340, 29344, 29352, 29357, - 29362, 29367, 1696, 29372, 29377, 29382, 29387, 29392, 29397, 29402, - 29407, 29412, 29417, 29422, 29427, 29432, 29437, 29443, 29448, 29453, - 29458, 29463, 29468, 29473, 29479, 29484, 29489, 29494, 29499, 29504, - 29509, 29514, 29520, 29526, 29531, 29537, 29542, 29547, 5, 29553, 29557, - 29561, 29565, 29570, 29574, 29578, 29582, 29586, 29591, 29595, 29600, - 29604, 29607, 29611, 29616, 29620, 29625, 29629, 29633, 29637, 29642, - 29646, 29650, 29660, 29665, 29669, 29673, 29678, 29683, 29692, 29697, - 29702, 29706, 29710, 29719, 29732, 29744, 29753, 29762, 29767, 29773, - 29778, 29782, 29786, 29796, 29805, 29813, 29819, 29824, 29828, 29835, - 29842, 29852, 29861, 29869, 12934, 29877, 29884, 29892, 29901, 29910, - 29918, 29928, 29933, 29937, 29941, 29944, 29946, 29950, 29954, 29959, - 29964, 29968, 29972, 29975, 29979, 29982, 29986, 29989, 29992, 29996, - 30002, 30006, 30010, 30014, 30018, 30023, 30028, 30033, 30037, 30040, - 30045, 30051, 30056, 30062, 30067, 30071, 30077, 30081, 30085, 30090, - 30094, 30099, 30104, 30108, 30112, 30119, 30123, 30126, 30130, 30134, - 30140, 30145, 30151, 30155, 30159, 30164, 30171, 30177, 30181, 30190, - 30194, 30198, 30201, 30207, 30212, 30218, 1385, 1748, 30223, 30228, - 30233, 30238, 30243, 30248, 30253, 2213, 827, 30258, 30261, 30265, 30269, - 30274, 30278, 17737, 30282, 30287, 30292, 30296, 30299, 30304, 30308, - 30313, 30317, 17741, 30322, 30325, 30328, 30334, 30338, 30343, 30347, - 30360, 30368, 30372, 30375, 30383, 30392, 30399, 30404, 30410, 30416, - 30424, 30431, 30438, 30442, 30446, 30450, 30455, 30460, 30464, 30472, - 30477, 30484, 30496, 30507, 30512, 30516, 30523, 30527, 30532, 30538, - 30541, 30546, 30551, 30558, 30562, 30566, 30569, 30575, 8900, 2413, - 30579, 30584, 30600, 11100, 30620, 30629, 30645, 30649, 30656, 30659, - 30665, 30675, 30681, 30690, 30699, 30714, 30725, 30737, 30748, 30756, - 30765, 30771, 30780, 30790, 30800, 30811, 30822, 30832, 30841, 30848, - 30857, 30865, 30872, 30879, 30886, 30894, 30901, 30908, 30921, 30928, - 30936, 30943, 30949, 30954, 30963, 30970, 30976, 30981, 30989, 30997, - 31004, 31011, 28499, 31023, 31035, 31049, 31057, 31065, 31073, 31080, - 31092, 31101, 31110, 31118, 31126, 31134, 31141, 31147, 31156, 31164, - 31174, 31183, 31193, 31202, 31211, 31219, 31224, 31228, 31231, 31235, - 31239, 31243, 31247, 31251, 31257, 31263, 31268, 31276, 31283, 31291, - 31298, 10806, 17799, 31306, 31313, 31318, 31325, 31331, 31337, 31344, - 14024, 31351, 31354, 31366, 31374, 31380, 31385, 31389, 31400, 31410, - 31420, 11620, 31429, 31438, 31446, 31456, 31465, 31472, 31479, 31487, - 31491, 17818, 31494, 31501, 31505, 4501, 31511, 31514, 31521, 31527, - 31541, 31546, 31554, 31560, 31571, 31578, 31584, 31590, 31594, 31599, - 31603, 31612, 31619, 31625, 8953, 31632, 31640, 31647, 31653, 31658, - 31664, 31670, 31680, 31692, 31703, 31713, 11252, 31721, 31727, 17836, - 31731, 31733, 31236, 11633, 31742, 31747, 31753, 31763, 31768, 31775, - 31783, 31789, 31794, 31799, 31804, 31808, 31813, 31820, 31826, 31835, - 31843, 31847, 31854, 31864, 31870, 31879, 31885, 31892, 4771, 31898, - 31904, 31909, 31916, 31928, 31939, 31944, 31952, 31956, 31966, 31972, - 31976, 31981, 31991, 32000, 32004, 32011, 32019, 32026, 32032, 32037, - 32045, 32052, 32057, 32064, 32076, 32085, 32089, 32097, 15656, 32101, - 32111, 32115, 32123, 32130, 32137, 30379, 32148, 32153, 32157, 32164, - 32171, 26695, 31161, 32176, 32180, 32183, 27827, 32188, 32202, 32218, - 32236, 32255, 32272, 32290, 27846, 32307, 32327, 27863, 32339, 32351, - 19087, 32363, 27883, 32377, 32389, 12590, 32403, 32408, 32413, 32418, - 32424, 32430, 32436, 32440, 32448, 32454, 32461, 32466, 32476, 32483, - 32489, 12128, 32495, 32497, 32502, 32510, 32514, 31816, 32520, 32527, - 13866, 13876, 32534, 32541, 32551, 32556, 32560, 32563, 32569, 32577, - 32589, 32599, 32615, 32628, 32642, 19105, 32656, 32663, 32667, 32670, - 32675, 32679, 32686, 32693, 32700, 32707, 32717, 32722, 32727, 32732, - 32740, 32748, 32753, 32762, 28520, 3561, 32767, 32770, 32773, 32778, - 32785, 32790, 32795, 32811, 32819, 32827, 10864, 32835, 32840, 32844, - 32850, 32855, 32861, 32864, 32870, 32882, 32890, 32897, 32903, 32910, - 32921, 32935, 32948, 32954, 32963, 32969, 32978, 32990, 33001, 33011, - 33020, 33029, 33037, 33047, 33056, 33067, 673, 33074, 33081, 33087, - 33092, 33098, 33105, 33111, 33122, 33132, 33142, 33151, 33157, 33164, - 33169, 33177, 33184, 33192, 33200, 33212, 7142, 33219, 33222, 33231, - 33239, 33245, 33251, 33256, 33260, 33263, 33269, 33276, 33281, 33286, - 33293, 33298, 33302, 33314, 33325, 33334, 33342, 18008, 33347, 33355, - 33360, 33368, 33374, 33380, 33385, 13859, 9802, 33388, 33392, 33396, - 33399, 33402, 33408, 33416, 33424, 33428, 33432, 33437, 33441, 33444, - 33453, 33458, 33463, 33467, 33470, 33475, 33483, 33494, 33503, 33507, - 33513, 33519, 33523, 33529, 33537, 33559, 33583, 33594, 33603, 33609, - 33616, 33623, 33629, 33637, 33643, 33648, 33659, 33677, 33684, 33692, - 33696, 33703, 33708, 33717, 33730, 33738, 33750, 33761, 33772, 33782, - 33796, 33805, 33813, 33825, 33836, 11117, 33845, 33856, 33867, 33879, - 33889, 33898, 33908, 33913, 33917, 33925, 33936, 33946, 33952, 33957, - 33961, 33964, 33967, 33975, 33983, 33992, 34002, 34011, 34017, 34022, - 34036, 2838, 34058, 34069, 34078, 34088, 34100, 34109, 34118, 34128, - 34136, 34144, 34153, 34158, 34169, 34174, 34183, 34189, 34200, 34204, - 34207, 34217, 34226, 34234, 34244, 34254, 34262, 34271, 34278, 34284, - 34292, 34299, 34308, 34317, 34322, 34327, 34331, 34339, 34346, 34352, - 34356, 34364, 34371, 34382, 34397, 34404, 34410, 34420, 34429, 34435, - 34446, 34450, 34457, 34461, 34468, 34474, 16838, 34480, 34484, 34489, - 34495, 34502, 34506, 34510, 34518, 34526, 34532, 34541, 34548, 34555, - 34560, 34565, 34575, 28574, 34579, 34582, 34587, 34592, 34597, 34602, - 34607, 34612, 34617, 34622, 34628, 34633, 34638, 34644, 1094, 770, 34649, - 34652, 34659, 34668, 1777, 34675, 34680, 34684, 34690, 1143, 643, 34695, - 347, 34699, 34709, 34718, 34726, 34735, 34743, 34750, 34761, 34769, - 34778, 34786, 34796, 34804, 34809, 11794, 34813, 34821, 34829, 34834, - 17754, 4101, 34840, 34846, 34852, 6669, 34857, 34861, 34868, 34874, - 34880, 34884, 34893, 34899, 34904, 34911, 1336, 34917, 34923, 34928, - 34935, 34939, 1243, 6677, 34944, 34954, 34962, 34968, 34978, 34987, - 34995, 35001, 35006, 35014, 35021, 13376, 35027, 35034, 35039, 35045, - 35052, 35062, 1404, 253, 2212, 35068, 35074, 35081, 35092, 35103, 35111, - 35118, 35128, 35137, 35145, 35154, 35161, 35168, 35181, 35188, 35194, - 35205, 35224, 35229, 1148, 35233, 35238, 35246, 3984, 35250, 35255, - 35259, 35263, 1340, 29973, 35273, 35277, 35282, 35286, 35292, 3846, - 35298, 35306, 35313, 35324, 35333, 35341, 35366, 35374, 35379, 3985, 401, - 35385, 35393, 35401, 35408, 35413, 35419, 35424, 2281, 12792, 35431, - 35437, 31595, 31934, 35443, 656, 106, 35447, 35451, 35457, 595, 10679, - 35462, 35467, 35474, 35480, 35484, 35488, 1549, 35491, 35495, 18296, - 35498, 35503, 35510, 35516, 8966, 35521, 35529, 35536, 35542, 27205, - 35546, 35550, 35554, 35558, 1834, 20204, 35562, 35567, 35571, 35574, - 35582, 35590, 35595, 35604, 35612, 35615, 35622, 35629, 35641, 27284, - 35651, 35663, 35671, 35676, 35680, 35688, 35695, 35702, 35711, 35717, - 35724, 35731, 35734, 35738, 35742, 1351, 35752, 35754, 35759, 35765, - 35771, 35776, 35781, 35786, 35791, 35796, 35801, 35806, 35811, 35816, - 35821, 35826, 35831, 35836, 35841, 35847, 35853, 35859, 35865, 35870, - 35875, 35880, 35886, 35891, 35896, 35901, 35907, 35912, 35918, 35923, - 35928, 35933, 35938, 35944, 35949, 35955, 35960, 35965, 35970, 35975, - 35981, 35986, 35992, 35997, 36002, 36007, 36012, 36017, 36022, 36027, - 36032, 36037, 36043, 36049, 36055, 36060, 36065, 36070, 36075, 36081, - 36087, 36093, 36099, 36105, 36111, 36116, 36122, 36127, 36132, 36137, - 36142, 36148, 2552, 36153, 2559, 2566, 2962, 36158, 2572, 2582, 36164, - 2614, 2619, 2624, 36168, 36173, 36178, 36184, 36189, 36194, 36198, 36203, - 36209, 36214, 36219, 36224, 36230, 36235, 36239, 36243, 36248, 36253, - 36258, 36263, 36268, 36274, 36280, 36285, 36289, 36294, 36300, 36304, - 36309, 36314, 36319, 36324, 36328, 36331, 36336, 36341, 36346, 36351, - 36356, 36362, 36368, 36373, 36378, 36383, 36387, 36392, 36397, 36402, - 36407, 36412, 36417, 36421, 36426, 36431, 36436, 36440, 36444, 36448, - 36453, 36461, 36466, 36471, 36477, 36483, 36489, 36494, 36502, 36506, - 36509, 36514, 36519, 36523, 36528, 36533, 36537, 36542, 36546, 36549, - 36554, 4211, 21695, 36559, 36564, 36569, 36574, 36582, 25865, 34932, - 10318, 36587, 36592, 36596, 36601, 36605, 36609, 36614, 36618, 36621, - 36624, 36628, 36633, 36637, 36645, 36649, 36652, 36657, 36661, 36665, - 36670, 36675, 36679, 36685, 36690, 36695, 36702, 36709, 36713, 36716, - 36722, 36731, 36738, 36746, 36753, 36757, 36762, 36766, 36770, 36776, - 36781, 36787, 36791, 36797, 36802, 36807, 36811, 36818, 36824, 36830, - 36836, 36842, 36849, 36855, 36861, 36867, 36873, 36879, 36885, 36891, - 36898, 36904, 36911, 36917, 36923, 36929, 36935, 36941, 36947, 36953, - 36959, 36965, 36971, 36976, 36981, 13731, 36986, 36992, 36997, 37002, - 37007, 37012, 37015, 37021, 37026, 37034, 37039, 37043, 37048, 37054, - 37063, 37069, 37074, 37079, 37084, 37088, 37093, 37097, 37102, 37107, - 37112, 37117, 37124, 37131, 37137, 37143, 37148, 19801, 37155, 37161, - 37168, 37174, 37180, 37185, 37193, 37198, 11288, 37202, 37207, 37212, - 37218, 37223, 37228, 37232, 37237, 37242, 37248, 37253, 37258, 37263, - 37267, 37272, 37277, 37281, 37286, 37291, 37295, 37300, 37304, 37309, - 37314, 37319, 37323, 37328, 37332, 37337, 37341, 37348, 37352, 37356, - 18452, 37361, 37368, 37377, 37383, 37389, 37398, 37406, 37415, 37423, - 37428, 37432, 37439, 37445, 37453, 37457, 37460, 37465, 37469, 37478, - 37486, 37504, 37510, 1403, 37516, 37519, 37523, 27351, 27357, 37529, - 37533, 37544, 37555, 37566, 37578, 37582, 37589, 37596, 37603, 37608, - 37612, 37620, 37625, 37630, 37635, 37640, 6734, 16742, 25864, 37645, - 37650, 37654, 16733, 37659, 37665, 37670, 37676, 37681, 37687, 37692, - 37698, 37703, 37709, 37715, 37721, 37726, 37682, 37688, 37730, 37735, - 37741, 37746, 37752, 37757, 37763, 37768, 37693, 12422, 37772, 37704, - 37710, 37716, 3054, 3760, 37778, 37781, 37786, 37792, 37798, 37804, - 37811, 37817, 37823, 37829, 37835, 37841, 37847, 37853, 37859, 37865, - 37871, 37877, 37883, 37890, 37896, 37902, 37908, 37914, 37920, 37923, - 37928, 37931, 37938, 37943, 37951, 37955, 37960, 37965, 37971, 37976, - 37981, 37985, 37990, 37996, 38001, 38007, 38012, 38018, 38023, 38029, - 38035, 38039, 38044, 38049, 38054, 38059, 38063, 38068, 38073, 38078, - 38084, 38090, 38096, 38102, 38107, 38111, 38114, 38120, 38126, 38135, - 38143, 38150, 38155, 38159, 38163, 38168, 18239, 38173, 38181, 38187, - 4152, 1253, 38192, 38197, 38201, 9016, 38207, 38213, 38220, 9025, 38224, - 38230, 38236, 38243, 38249, 38258, 38266, 38278, 38287, 38291, 38298, - 38304, 38309, 38313, 38317, 38320, 38330, 38339, 38347, 37683, 38352, - 38362, 38372, 38382, 38388, 38393, 38403, 38408, 38421, 38435, 38446, - 38458, 38470, 38484, 38497, 38509, 38521, 17559, 38535, 38540, 38545, - 38549, 38553, 38557, 38561, 38567, 38572, 38577, 38582, 38587, 38592, - 38597, 1737, 32999, 38602, 38607, 38612, 37731, 38617, 38620, 38625, - 38630, 38635, 38641, 38647, 19411, 11994, 38652, 38658, 38665, 19039, - 38671, 38676, 38681, 38685, 38690, 38695, 37736, 38700, 38705, 38710, - 38716, 37742, 38721, 38724, 38731, 38739, 38745, 38751, 38757, 38768, - 38773, 38780, 38787, 38794, 38802, 38811, 38820, 38826, 38832, 38840, - 37747, 38845, 38851, 38857, 37753, 38862, 38867, 38875, 38883, 38889, - 38896, 38902, 38909, 38916, 38922, 38930, 38940, 38947, 38953, 38958, - 38964, 38969, 38974, 38981, 38990, 38998, 39003, 39009, 39016, 39024, - 39030, 39035, 39041, 39050, 39057, 33997, 39063, 39067, 39072, 39081, - 39086, 39091, 39096, 14972, 39104, 39109, 39114, 39119, 39123, 39128, - 39133, 39140, 39145, 39150, 39155, 37758, 25793, 39161, 2655, 158, 39164, - 39167, 39171, 39175, 39185, 39193, 39200, 39204, 39208, 39211, 39219, - 39226, 39233, 31888, 39242, 39245, 39252, 39258, 39263, 39267, 39274, - 39278, 39286, 39294, 39301, 39316, 39320, 39324, 39327, 39333, 39340, - 39344, 39350, 39354, 39361, 39369, 39377, 39384, 37694, 39391, 39399, - 39404, 39416, 12075, 12082, 12089, 12096, 12103, 12110, 626, 434, 39422, - 39427, 39432, 39438, 39443, 39448, 4178, 39453, 39456, 39461, 39466, - 39471, 39476, 39481, 39488, 27469, 39493, 39498, 39503, 39508, 39513, - 39519, 39524, 39530, 37934, 39536, 39541, 39547, 39553, 39563, 39568, - 39573, 39577, 39582, 39587, 39592, 39597, 39610, 39615, 27083, 20286, - 1064, 39619, 39625, 39629, 39634, 39639, 39645, 39650, 39655, 39659, - 39664, 39669, 39675, 39680, 39685, 1258, 39689, 39694, 39699, 39704, - 39708, 39713, 39718, 39723, 39729, 39735, 39740, 39744, 39748, 39753, - 39758, 39763, 39767, 39772, 39780, 39784, 39790, 39794, 39801, 39810, - 20057, 37705, 39816, 39823, 39831, 39839, 39846, 39852, 39861, 39874, - 39886, 39891, 39897, 39901, 2981, 39905, 39909, 39335, 39918, 39929, - 39940, 39945, 34065, 39950, 39955, 39959, 34185, 27362, 39964, 39971, - 39975, 39980, 37711, 25900, 39984, 39989, 39995, 40000, 40004, 40008, - 40011, 40015, 40021, 40030, 40041, 40053, 37717, 40058, 40061, 40065, - 40069, 40074, 40079, 40084, 40089, 40094, 40099, 40104, 40109, 373, - 40114, 40119, 40124, 40129, 40134, 40139, 40145, 40150, 40155, 40161, - 40166, 40172, 40177, 40183, 40188, 40193, 40198, 40203, 40208, 40213, - 40218, 40223, 40229, 40234, 40239, 40244, 40249, 40254, 40259, 40264, - 40270, 40276, 40281, 40286, 40291, 40296, 40301, 40306, 40311, 40316, - 40321, 40326, 40331, 40336, 40341, 40346, 40351, 40356, 40361, 40366, - 40376, 40386, 40392, 342, 14, 40397, 40400, 40404, 40408, 40416, 40420, - 40424, 31568, 16975, 1818, 40427, 40432, 40436, 40441, 40445, 40450, - 40454, 40459, 40463, 40466, 40468, 40472, 40477, 40481, 40492, 40495, - 40497, 40501, 40513, 40525, 40534, 40538, 40548, 40552, 40558, 40563, - 40572, 40578, 40583, 40588, 40592, 40596, 40601, 40608, 40613, 40619, - 40624, 40628, 40635, 31169, 31179, 40639, 40644, 40649, 40654, 40661, - 40665, 40672, 40679, 40685, 9171, 40689, 40698, 40706, 40721, 40735, - 40744, 40752, 40763, 40772, 40777, 40784, 40794, 8165, 40804, 40809, - 40815, 40820, 40824, 40827, 40832, 40836, 40841, 40845, 40852, 40857, - 40862, 40867, 40877, 40882, 40887, 40892, 10188, 40897, 40899, 40907, - 40910, 40913, 40921, 40936, 40944, 40954, 40956, 40959, 40963, 40969, - 40973, 40978, 40983, 41001, 41015, 41034, 41051, 41060, 41068, 41073, - 41078, 1396, 41084, 41090, 41095, 41105, 41114, 41122, 41127, 41133, - 41138, 41147, 41156, 41167, 41172, 41179, 41185, 41189, 41198, 41205, - 41213, 41220, 41233, 41241, 41245, 41255, 41261, 41266, 41270, 41278, - 41286, 41291, 41295, 41299, 41308, 41314, 41319, 41327, 41337, 41346, - 41355, 41364, 41375, 41383, 41394, 41403, 41411, 41418, 41424, 41429, - 41440, 41451, 41456, 41460, 41463, 41467, 41477, 41485, 41491, 41502, - 41513, 41524, 41535, 41546, 41557, 41568, 41579, 41591, 41603, 41615, - 41627, 41639, 41651, 41663, 41672, 41676, 41684, 41690, 41696, 41703, - 41709, 41714, 41720, 41724, 41729, 41734, 41739, 40371, 40381, 2526, - 41744, 41746, 41751, 41756, 41761, 41764, 41766, 41770, 41773, 41780, - 41784, 11644, 41788, 41794, 41801, 41807, 41817, 41822, 41828, 41832, - 41837, 41850, 31758, 41856, 41862, 41871, 41880, 21918, 41887, 41896, - 41904, 38368, 41910, 41915, 41919, 41928, 41936, 41943, 41948, 41952, - 41957, 41962, 41970, 41974, 41982, 41988, 41994, 41999, 42004, 42008, - 42011, 42016, 42029, 42045, 27953, 42062, 42074, 42091, 42103, 42117, - 27970, 27989, 42129, 42141, 2855, 42155, 42160, 42165, 42170, 42174, - 42181, 42193, 42200, 42209, 42219, 42222, 42233, 42244, 42252, 42257, - 42261, 42266, 42271, 42276, 42281, 42286, 42291, 1768, 947, 42296, 42300, - 42304, 42307, 42312, 42317, 42323, 42328, 42333, 42339, 42345, 42350, - 42354, 42359, 42364, 42369, 42373, 42376, 42382, 42387, 42392, 42397, - 42401, 42406, 42412, 42420, 32069, 42425, 42430, 42437, 42443, 42449, - 42454, 42462, 27478, 42469, 42474, 42479, 42484, 42488, 42491, 42496, - 42500, 42504, 42511, 42517, 42523, 42529, 42536, 42541, 42547, 41281, - 42551, 42555, 42560, 42573, 42578, 42584, 42592, 42599, 42607, 42617, - 42623, 42629, 42635, 42639, 42648, 42656, 42663, 42668, 42673, 12445, - 42678, 42688, 42695, 42701, 42711, 42716, 42722, 42730, 4017, 42737, - 42744, 42750, 42757, 4023, 42761, 42766, 42777, 42784, 42790, 42799, - 42803, 42806, 4609, 42813, 42820, 42826, 42832, 42840, 42850, 35414, - 42857, 42865, 42871, 42876, 42882, 42887, 42891, 31517, 42897, 42904, - 42910, 42918, 42927, 42934, 42940, 42951, 28772, 42957, 42964, 42970, - 42980, 42985, 42989, 42997, 43005, 43012, 43018, 43023, 11246, 941, - 43028, 43032, 43034, 43038, 43043, 43046, 43048, 43053, 43059, 43064, - 43069, 43076, 39484, 43082, 43087, 43091, 43096, 43100, 43109, 43113, - 43119, 43126, 43132, 43139, 43144, 43153, 43158, 43162, 43167, 43174, - 43182, 43190, 43195, 25956, 43199, 43202, 43206, 43210, 12889, 1005, - 43214, 43219, 43227, 43232, 43236, 43245, 43252, 43256, 43260, 43268, - 43275, 16260, 43285, 43289, 43293, 43301, 43309, 43315, 43320, 43324, - 43333, 16008, 43339, 43348, 43355, 43360, 43367, 43374, 43382, 43389, - 43397, 43405, 43414, 43419, 43426, 43433, 43440, 43447, 43454, 43459, - 43466, 43472, 43489, 43497, 43507, 43515, 43522, 43530, 461, 43534, - 43540, 43544, 43549, 40768, 43555, 43558, 43562, 43568, 43579, 43587, - 4028, 43595, 43601, 43607, 43617, 43623, 43632, 43641, 43651, 43658, - 43664, 43669, 4034, 4040, 43678, 43686, 43693, 43697, 14356, 43705, - 43709, 43716, 43724, 43731, 43740, 43747, 43753, 43762, 43772, 43778, - 43786, 43795, 43802, 43810, 43817, 26758, 43821, 43828, 43834, 43844, - 43853, 43861, 43872, 43876, 43886, 43893, 43898, 43903, 43909, 43916, - 43924, 43933, 43942, 43952, 43963, 43970, 43975, 43982, 3269, 43990, - 43996, 44001, 44008, 44014, 44020, 44025, 44038, 44051, 44064, 44071, - 44077, 44085, 44093, 44098, 44102, 44106, 44111, 44116, 44121, 44126, - 44131, 44136, 1365, 44141, 44145, 44149, 44153, 44157, 44161, 44165, - 44169, 44173, 44177, 44181, 44185, 44189, 44193, 44197, 44201, 44205, - 44209, 44213, 44217, 44221, 44225, 44229, 44233, 44237, 44241, 44245, - 44249, 44253, 44257, 44261, 44265, 44269, 44273, 44277, 44281, 44285, - 44289, 44293, 44297, 44301, 44305, 44309, 44313, 44317, 44321, 44325, - 44329, 44333, 44337, 44341, 44345, 44349, 44353, 44357, 44361, 44365, - 44369, 44373, 44377, 44381, 44385, 44389, 44393, 44397, 44401, 44405, - 44409, 44413, 44417, 44421, 44425, 44429, 44433, 44437, 44441, 44445, - 44449, 44453, 44457, 44461, 44465, 44469, 44473, 44477, 44481, 44485, - 44489, 44493, 44497, 44501, 44505, 44509, 44513, 44517, 44521, 44525, - 44529, 44533, 44537, 44541, 44545, 44549, 44553, 44557, 44561, 44565, - 44569, 44573, 44577, 44581, 44585, 44589, 44593, 44597, 44601, 44605, - 44609, 44613, 44617, 44621, 44625, 44629, 44633, 44637, 44641, 44645, - 44649, 44653, 44657, 44661, 44665, 44669, 44673, 44677, 44681, 44685, - 44689, 44693, 44697, 44701, 44705, 44709, 44713, 44717, 44721, 44725, - 44729, 44733, 44737, 44741, 44745, 44749, 44753, 44758, 44762, 44767, - 44771, 44776, 44780, 44785, 44789, 44795, 44800, 44804, 44809, 44813, - 44818, 44822, 44827, 44831, 44836, 44840, 44845, 44849, 44854, 44858, - 44864, 44870, 44875, 44879, 44884, 44888, 44894, 44899, 44903, 44908, - 44912, 44917, 44921, 44927, 44932, 44936, 44941, 44945, 44950, 44954, - 44959, 44963, 44969, 44974, 44978, 44983, 44987, 44993, 44998, 45002, - 45007, 45011, 45016, 45020, 45025, 45029, 45034, 45038, 45044, 45049, - 45053, 45059, 45064, 45068, 45074, 45079, 45083, 45088, 45092, 45097, - 45101, 45107, 45113, 45119, 45125, 45131, 45137, 45143, 45149, 45154, - 45158, 45163, 45167, 45173, 45178, 45182, 45187, 45191, 45196, 45200, - 45205, 45209, 45214, 45218, 45223, 45227, 45232, 45236, 45242, 45247, - 45251, 45256, 45260, 45266, 45272, 45277, 127, 63, 45281, 45283, 45287, - 45291, 45295, 45300, 45304, 45308, 45313, 11153, 45318, 45324, 1677, - 7181, 45330, 45333, 45338, 45342, 45347, 45351, 45355, 45360, 12233, - 45364, 45368, 45372, 630, 45376, 18561, 45381, 45385, 45390, 45395, - 45400, 45404, 45411, 45417, 45423, 31790, 45428, 45431, 45435, 45440, - 45446, 45450, 45453, 45461, 45467, 45472, 45476, 45479, 45483, 45489, - 45493, 45497, 3811, 3816, 15084, 45500, 45504, 45508, 45512, 45516, - 45524, 45531, 45535, 15958, 45542, 45556, 45563, 45574, 361, 45579, - 45583, 45589, 45601, 45607, 45613, 45618, 45624, 18613, 45628, 45632, - 35727, 45641, 45647, 45656, 45660, 45664, 45669, 45675, 45680, 45684, - 45689, 45693, 45697, 45704, 45710, 45715, 45726, 45741, 45756, 45771, - 45787, 45805, 12140, 45819, 45826, 45832, 45836, 45839, 45848, 45853, - 45857, 45865, 19242, 45873, 45877, 45887, 45898, 35617, 1042, 45911, - 45920, 45938, 45957, 45966, 45974, 45982, 1690, 12342, 45986, 27374, - 45989, 31556, 45994, 11478, 45999, 46005, 46010, 46016, 46021, 46027, - 46032, 46038, 46043, 46049, 46055, 46061, 46066, 46022, 46028, 46070, - 46033, 46039, 46044, 46075, 46050, 46056, 9184, 4434, 46081, 46089, - 46093, 46096, 46103, 46107, 46112, 46117, 46124, 46130, 46136, 46141, - 17850, 46145, 31573, 46149, 46153, 46157, 46164, 46170, 46174, 33931, - 46183, 10351, 46187, 10780, 46190, 46197, 46203, 46207, 14381, 46214, - 46220, 46225, 46232, 46239, 46246, 34730, 9081, 46253, 46260, 46267, - 46273, 46278, 46285, 46296, 46302, 46307, 46312, 46317, 46321, 46326, - 46333, 46023, 46337, 46347, 46356, 46367, 46373, 46381, 46388, 46393, - 46398, 46403, 46408, 46413, 46417, 46421, 46428, 46434, 46442, 2416, - 30582, 12245, 12257, 12262, 12268, 46451, 12273, 12278, 12284, 46456, - 46466, 46470, 12289, 46475, 20484, 46478, 46483, 46487, 46491, 46502, - 46510, 42204, 46518, 46523, 46530, 46537, 46541, 46544, 46552, 12153, - 46559, 46562, 46568, 46578, 6767, 46587, 46592, 46598, 46602, 46610, - 46614, 46624, 46630, 46635, 46646, 46655, 46664, 46673, 46682, 46691, - 46700, 46709, 46715, 46721, 46726, 46732, 46738, 46744, 46749, 46752, - 46759, 46765, 46769, 46774, 46781, 46788, 46792, 46795, 46805, 46818, - 46827, 46836, 46847, 46860, 46872, 46883, 46892, 46903, 46908, 46917, - 46922, 12294, 46928, 46935, 46943, 46950, 46955, 46960, 31836, 46964, - 46971, 4374, 25, 46975, 46980, 20333, 46984, 46987, 46990, 34122, 46994, - 34739, 47002, 47006, 47010, 47013, 47019, 47025, 47030, 37782, 47039, - 47047, 47053, 47060, 34105, 47064, 34342, 47068, 47077, 47081, 47089, - 47095, 47101, 47106, 47110, 34765, 47116, 47119, 47127, 47135, 47143, - 4772, 47149, 47153, 47157, 47162, 47169, 47175, 47180, 47185, 47189, - 47195, 47200, 47206, 4662, 820, 47213, 47217, 47220, 47232, 47239, 47244, - 18434, 47248, 47256, 47264, 47272, 47280, 47287, 47295, 47303, 47310, - 47318, 47326, 47334, 47342, 47350, 47358, 47366, 47374, 47382, 47390, - 47398, 47405, 47413, 47421, 47429, 47437, 47445, 47453, 47461, 47469, - 47477, 47485, 47493, 47501, 47509, 47517, 47525, 47533, 47541, 47549, - 47557, 47564, 47572, 47579, 47587, 47595, 47603, 47611, 47619, 47627, - 47635, 47643, 47654, 26794, 47659, 47662, 47669, 47673, 47679, 47683, - 47689, 47694, 47700, 47705, 47710, 47714, 47718, 47725, 47733, 47738, - 47743, 47753, 47759, 47772, 47778, 47784, 47790, 47793, 47800, 47805, - 4700, 47811, 4869, 965, 47816, 47819, 47822, 47825, 37866, 37872, 47828, - 37878, 37891, 37897, 37903, 47834, 37909, 37915, 47840, 47846, 10, 47854, - 47861, 47865, 47869, 47877, 38726, 47881, 47885, 47892, 47897, 47901, - 47906, 47912, 47917, 47923, 47928, 47932, 47936, 47940, 47945, 47949, - 47954, 47958, 47962, 47969, 47974, 47978, 47982, 47987, 47991, 47996, - 48000, 48004, 48009, 48015, 18743, 18748, 48020, 48024, 48027, 48033, - 48037, 48041, 25750, 48046, 48050, 48056, 48063, 48069, 48074, 40797, - 48084, 48089, 48097, 48101, 48104, 48108, 38741, 48116, 4738, 48121, - 48126, 48130, 48135, 48139, 48144, 16026, 48155, 48159, 48162, 48166, - 48174, 48179, 48183, 48188, 48193, 48197, 48201, 48205, 48208, 48212, - 48215, 48220, 48225, 48230, 48235, 48240, 48245, 8664, 16042, 48250, - 48253, 48259, 48264, 48270, 48275, 48281, 48286, 48292, 48297, 48303, - 48309, 48315, 48320, 48324, 48328, 48339, 48347, 48354, 48360, 48365, - 48376, 48386, 48392, 48397, 48404, 48413, 48429, 48445, 48455, 34007, - 48462, 48466, 48471, 48476, 48480, 48484, 43937, 48490, 48495, 48499, - 48506, 48511, 48516, 48520, 48523, 48527, 48533, 32802, 48537, 26108, - 48542, 48549, 48557, 48563, 48569, 48576, 48584, 48590, 48594, 48599, - 48605, 48613, 48618, 48622, 48631, 11134, 48639, 48643, 48651, 48658, - 48663, 48668, 48673, 48677, 48680, 48686, 48690, 48693, 48697, 48704, - 48709, 48716, 48720, 48726, 48730, 48736, 48741, 48746, 5107, 5114, - 48751, 48760, 48768, 48773, 48779, 48791, 48804, 48818, 48825, 48831, - 48837, 48842, 48850, 48853, 48855, 48866, 48878, 48889, 48904, 48921, - 48941, 48963, 48970, 48977, 48984, 48990, 48994, 8663, 48997, 49001, - 49005, 49010, 49014, 49018, 49021, 49025, 49039, 28019, 49058, 49071, - 49084, 49097, 28037, 49112, 2808, 49127, 49133, 49137, 49147, 49151, - 49155, 49160, 49164, 49171, 49176, 49180, 49187, 49193, 49198, 49204, - 49214, 49226, 49237, 49242, 49249, 49253, 49257, 49260, 49268, 19263, - 4141, 49273, 18782, 49286, 49293, 49300, 49306, 49310, 49314, 49319, - 49325, 49330, 49336, 49340, 49344, 49347, 49352, 49356, 49361, 49366, - 49371, 49376, 49381, 49386, 49391, 49396, 49401, 8727, 18793, 49406, - 49410, 49416, 49425, 49430, 49439, 49446, 43768, 49452, 49457, 49461, - 49468, 49473, 49480, 49488, 49494, 49498, 49501, 49505, 49510, 2886, - 49517, 49524, 49528, 49531, 49536, 49541, 49547, 49552, 49557, 49561, - 49566, 49576, 49581, 49587, 49592, 49599, 47234, 49605, 49611, 49619, - 49629, 49634, 49639, 49643, 49648, 49653, 8167, 8179, 49658, 49661, - 49668, 49674, 49683, 10268, 41421, 49691, 49695, 49699, 38789, 49707, - 49718, 49726, 43985, 49733, 49738, 49743, 49754, 49761, 49772, 38813, - 26125, 49780, 4652, 49785, 16459, 49791, 34096, 49797, 49802, 49812, - 49821, 49828, 49834, 49838, 49841, 49848, 49854, 49861, 49867, 49877, - 49885, 49891, 49897, 49902, 49906, 49913, 49918, 49924, 49931, 49937, - 49006, 49942, 49946, 16501, 16510, 16519, 16528, 16537, 16566, 622, - 16575, 49952, 49957, 49960, 49966, 49974, 1275, 49979, 49983, 49988, - 49993, 49997, 50002, 50009, 50015, 50019, 50024, 50030, 50034, 37939, - 50039, 50044, 50053, 50060, 50070, 50076, 34140, 50093, 50102, 50110, - 50116, 50121, 50128, 50134, 50142, 50151, 50159, 50167, 50173, 50177, - 50182, 50190, 35288, 38822, 50196, 50215, 19166, 50229, 50245, 50259, - 50265, 50270, 50275, 50280, 50286, 38828, 50291, 50294, 50301, 50308, - 50317, 50322, 50326, 423, 3176, 50333, 50338, 50343, 33196, 50131, 50347, - 50355, 50360, 50368, 50372, 50375, 50380, 50386, 50392, 50397, 50401, - 34213, 50404, 50409, 50413, 50416, 50421, 50425, 50430, 50435, 50439, - 50444, 50448, 50455, 50459, 50463, 25746, 25757, 50468, 50473, 50479, - 50484, 50490, 50496, 32758, 50501, 50505, 50508, 50514, 50519, 50524, - 50529, 50534, 50539, 50544, 50549, 50554, 50560, 50566, 14569, 19473, - 50571, 50576, 50581, 50586, 50591, 50596, 50601, 50606, 452, 68, 37956, - 37961, 37966, 37972, 37977, 37982, 50611, 37986, 50615, 50619, 50623, - 37991, 37997, 50637, 38008, 38013, 50645, 50650, 38019, 50655, 50660, - 50669, 50674, 50679, 50688, 50694, 50700, 50706, 38036, 50719, 50728, - 50734, 38040, 50738, 38045, 50743, 38050, 38055, 50746, 50751, 50755, - 50761, 16267, 50768, 16277, 50775, 50780, 38060, 50784, 50789, 50794, - 50799, 50804, 50808, 50813, 50818, 50824, 50829, 50834, 50840, 50846, - 50851, 50855, 50860, 50865, 50870, 50874, 50879, 50884, 50889, 50895, - 50901, 50907, 50912, 50916, 50921, 50925, 38064, 38069, 38074, 50929, - 50933, 50938, 50942, 50954, 38079, 38085, 38091, 38103, 50960, 31616, - 50964, 50969, 50973, 50978, 50985, 50990, 50995, 51000, 51004, 51008, - 51018, 51023, 51028, 51032, 51042, 51046, 51049, 51057, 51062, 38151, - 51066, 1375, 51072, 51077, 51083, 51091, 51095, 51104, 51112, 51116, - 51120, 51128, 51134, 51142, 51158, 51163, 51167, 51171, 51175, 51180, - 51186, 51201, 38188, 1685, 14601, 51205, 1254, 1269, 51217, 51225, 51232, - 51237, 9230, 51244, 51249, 10765, 978, 2641, 12321, 51256, 10658, 51261, - 51264, 51273, 1162, 51278, 49177, 51285, 51294, 51299, 51303, 51311, - 51318, 27424, 2697, 51326, 12842, 51336, 51342, 2434, 2444, 51351, 51360, - 51370, 51381, 3584, 41818, 51386, 4341, 4352, 9258, 1167, 51390, 51398, - 51405, 51410, 51414, 51418, 51423, 29054, 49512, 12412, 51431, 51440, - 51449, 51457, 51470, 51477, 51488, 51493, 51506, 51519, 51531, 51543, - 51555, 51566, 51579, 51590, 51601, 51611, 51619, 51627, 51639, 51651, - 51662, 51671, 51679, 51686, 51698, 51705, 51711, 51720, 51726, 51733, - 51746, 51751, 51761, 51766, 51772, 51777, 32098, 51781, 48682, 51788, - 51795, 51803, 51810, 2654, 51817, 51828, 51838, 51847, 51855, 51865, - 51873, 51882, 51892, 51901, 51906, 51912, 51918, 4190, 51929, 51939, - 51948, 51957, 51965, 51975, 51983, 51992, 51997, 52002, 52007, 1604, 47, - 52015, 52023, 52034, 52045, 19877, 52055, 52059, 52066, 52072, 52077, - 52081, 52092, 52102, 52111, 52122, 52127, 20306, 20311, 52134, 52143, - 52148, 52158, 52163, 52171, 52179, 52186, 52192, 1566, 271, 52196, 52201, - 52207, 46085, 52212, 52215, 2182, 2663, 52223, 52227, 52230, 1420, 52236, - 16787, 1172, 52241, 52254, 2797, 2818, 52268, 52280, 52292, 2832, 2849, - 2864, 2880, 2897, 52306, 52318, 2912, 52332, 1178, 1184, 1190, 12713, - 52337, 52342, 52347, 52351, 52366, 52381, 52396, 52411, 52426, 52441, - 52456, 52471, 52486, 52501, 52516, 52531, 52546, 52561, 52576, 52591, - 52606, 52621, 52636, 52651, 52666, 52681, 52696, 52711, 52726, 52741, - 52756, 52771, 52786, 52801, 52816, 52831, 52846, 52861, 52876, 52891, - 52906, 52921, 52936, 52951, 52966, 52981, 52996, 53011, 53026, 53041, - 53056, 53071, 53086, 53101, 53116, 53131, 53146, 53161, 53176, 53191, - 53206, 53221, 53236, 53251, 53266, 53281, 53296, 53311, 53326, 53341, - 53356, 53371, 53386, 53401, 53416, 53431, 53446, 53461, 53476, 53491, - 53506, 53521, 53536, 53551, 53566, 53581, 53596, 53611, 53626, 53641, - 53656, 53671, 53686, 53701, 53716, 53731, 53746, 53761, 53776, 53791, - 53806, 53821, 53836, 53851, 53866, 53881, 53896, 53911, 53926, 53941, - 53956, 53971, 53986, 54001, 54016, 54031, 54046, 54061, 54076, 54091, - 54106, 54121, 54136, 54151, 54166, 54181, 54196, 54211, 54226, 54241, - 54256, 54271, 54286, 54301, 54316, 54331, 54346, 54361, 54376, 54391, - 54406, 54421, 54436, 54451, 54466, 54481, 54496, 54511, 54526, 54541, - 54556, 54571, 54586, 54601, 54616, 54631, 54646, 54661, 54676, 54691, - 54706, 54721, 54736, 54751, 54766, 54781, 54796, 54811, 54826, 54841, - 54856, 54871, 54886, 54901, 54916, 54931, 54946, 54961, 54976, 54991, - 55006, 55021, 55036, 55051, 55066, 55081, 55096, 55111, 55126, 55141, - 55156, 55171, 55186, 55201, 55216, 55231, 55246, 55261, 55276, 55291, - 55306, 55321, 55336, 55351, 55366, 55381, 55396, 55411, 55426, 55441, - 55456, 55471, 55486, 55501, 55516, 55531, 55546, 55561, 55576, 55591, - 55606, 55621, 55636, 55651, 55666, 55681, 55696, 55711, 55726, 55741, - 55756, 55771, 55786, 55801, 55816, 55831, 55846, 55861, 55876, 55891, - 55906, 55921, 55936, 55951, 55966, 55981, 55996, 56011, 56026, 56041, - 56056, 56071, 56086, 56101, 56116, 56131, 56146, 56161, 56176, 56191, - 56206, 56221, 56236, 56251, 56266, 56281, 56296, 56311, 56326, 56341, - 56356, 56371, 56386, 56401, 56416, 56431, 56446, 56461, 56476, 56491, - 56506, 56521, 56536, 56551, 56566, 56581, 56596, 56611, 56626, 56641, - 56656, 56671, 56686, 56701, 56716, 56731, 56746, 56761, 56776, 56791, - 56806, 56821, 56836, 56851, 56866, 56881, 56896, 56911, 56926, 56941, - 56956, 56971, 56986, 57001, 57016, 57031, 57046, 57061, 57076, 57091, - 57106, 57121, 57136, 57151, 57166, 57181, 57196, 57211, 57226, 57241, - 57256, 57271, 57286, 57301, 57316, 57331, 57346, 57361, 57376, 57391, - 57406, 57421, 57436, 57451, 57466, 57481, 57496, 57511, 57526, 57541, - 57556, 57571, 57586, 57601, 57616, 57631, 57646, 57661, 57676, 57691, - 57706, 57721, 57736, 57751, 57766, 57781, 57796, 57811, 57826, 57841, - 57856, 57871, 57886, 57901, 57916, 57931, 57946, 57961, 57976, 57991, - 58006, 58021, 58036, 58051, 58066, 58081, 58096, 58111, 58126, 58141, - 58156, 58171, 58186, 58201, 58216, 58231, 58246, 58261, 58276, 58291, - 58306, 58321, 58336, 58351, 58366, 58381, 58396, 58411, 58426, 58441, - 58456, 58471, 58486, 58501, 58516, 58531, 58546, 58561, 58576, 58591, - 58606, 58621, 58636, 58651, 58666, 58681, 58696, 58711, 58726, 58741, - 58756, 58771, 58786, 58801, 58816, 58831, 58846, 58861, 58876, 58891, - 58906, 58921, 58936, 58951, 58966, 58981, 58996, 59011, 59026, 59041, - 59056, 59071, 59086, 59101, 59116, 59131, 59146, 59161, 59176, 59191, - 59206, 59221, 59236, 59251, 59266, 59281, 59296, 59311, 59326, 59341, - 59356, 59371, 59386, 59401, 59416, 59431, 59446, 59461, 59476, 59491, - 59506, 59521, 59536, 59551, 59566, 59581, 59596, 59611, 59626, 59641, - 59656, 59671, 59686, 59701, 59716, 59731, 59746, 59761, 59776, 59791, - 59806, 59821, 59836, 59851, 59866, 59881, 59896, 59911, 59926, 59941, - 59956, 59971, 59986, 60001, 60016, 60031, 60046, 60061, 60076, 60091, - 60106, 60121, 60136, 60151, 60166, 60182, 60198, 60214, 60230, 60246, - 60262, 60278, 60294, 60310, 60326, 60342, 60358, 60374, 60390, 60406, - 60422, 60438, 60454, 60470, 60486, 60502, 60518, 60534, 60550, 60566, - 60582, 60598, 60614, 60630, 60646, 60662, 60678, 60694, 60710, 60726, - 60742, 60758, 60774, 60790, 60806, 60822, 60838, 60854, 60870, 60886, - 60902, 60918, 60934, 60950, 60966, 60982, 60998, 61014, 61030, 61046, - 61062, 61078, 61094, 61110, 61126, 61142, 61158, 61174, 61190, 61206, - 61222, 61238, 61254, 61270, 61286, 61302, 61318, 61334, 61350, 61366, - 61382, 61398, 61414, 61430, 61446, 61462, 61478, 61494, 61510, 61526, - 61542, 61558, 61574, 61590, 61606, 61622, 61638, 61654, 61670, 61686, - 61702, 61718, 61734, 61750, 61766, 61782, 61798, 61814, 61830, 61846, - 61862, 61878, 61894, 61910, 61926, 61942, 61958, 61974, 61990, 62006, - 62022, 62038, 62054, 62070, 62086, 62102, 62118, 62134, 62150, 62166, - 62182, 62198, 62214, 62230, 62246, 62262, 62278, 62294, 62310, 62326, - 62342, 62358, 62374, 62390, 62406, 62422, 62438, 62454, 62470, 62486, - 62502, 62518, 62534, 62550, 62566, 62582, 62598, 62614, 62630, 62646, - 62662, 62678, 62694, 62710, 62726, 62742, 62758, 62774, 62790, 62806, - 62822, 62838, 62854, 62870, 62886, 62902, 62918, 62934, 62950, 62966, - 62982, 62998, 63014, 63030, 63046, 63062, 63078, 63094, 63110, 63126, - 63142, 63158, 63174, 63190, 63206, 63222, 63238, 63254, 63270, 63286, - 63302, 63318, 63334, 63350, 63366, 63382, 63398, 63414, 63430, 63446, - 63462, 63478, 63494, 63510, 63526, 63542, 63558, 63574, 63590, 63606, - 63622, 63638, 63654, 63670, 63686, 63702, 63718, 63734, 63750, 63766, - 63782, 63798, 63814, 63830, 63846, 63862, 63878, 63894, 63910, 63926, - 63942, 63958, 63974, 63990, 64006, 64022, 64038, 64054, 64070, 64086, - 64102, 64118, 64134, 64150, 64166, 64182, 64198, 64214, 64230, 64246, - 64262, 64278, 64294, 64310, 64326, 64342, 64358, 64374, 64390, 64406, - 64422, 64438, 64454, 64470, 64486, 64502, 64518, 64534, 64550, 64566, - 64582, 64598, 64614, 64630, 64646, 64662, 64678, 64694, 64710, 64726, - 64742, 64758, 64774, 64790, 64806, 64822, 64838, 64854, 64870, 64886, - 64902, 64918, 64934, 64950, 64966, 64982, 64998, 65014, 65030, 65046, - 65062, 65078, 65094, 65110, 65126, 65142, 65158, 65174, 65190, 65206, - 65222, 65238, 65254, 65270, 65286, 65302, 65318, 65334, 65350, 65366, - 65382, 65398, 65414, 65430, 65446, 65462, 65478, 65494, 65510, 65526, - 65542, 65558, 65574, 65590, 65606, 65622, 65638, 65654, 65670, 65686, - 65702, 65718, 65734, 65750, 65766, 65782, 65798, 65814, 65830, 65846, - 65862, 65878, 65894, 65910, 65926, 65942, 65958, 65974, 65990, 66006, - 66022, 66038, 66054, 66070, 66086, 66102, 66118, 66134, 66150, 66166, - 66182, 66198, 66214, 66230, 66246, 66262, 66278, 66294, 66310, 66326, - 66342, 66358, 66374, 66390, 66406, 66422, 66438, 66454, 66470, 66486, - 66502, 66518, 66534, 66550, 66566, 66582, 66598, 66614, 66630, 66646, - 66662, 66678, 66694, 66710, 66726, 66742, 66758, 66774, 66790, 66806, - 66822, 66838, 66854, 66870, 66886, 66902, 66918, 66934, 66950, 66966, - 66982, 66998, 67014, 67030, 67046, 67062, 67078, 67094, 67110, 67126, - 67142, 67158, 67174, 67190, 67206, 67222, 67238, 67254, 67270, 67286, - 67302, 67318, 67334, 67350, 67366, 67382, 67398, 67414, 67430, 67446, - 67462, 67478, 67494, 67510, 67526, 67542, 67558, 67574, 67590, 67606, - 67622, 67638, 67654, 67670, 67686, 67702, 67718, 67734, 67750, 67766, - 67782, 67798, 67814, 67830, 67846, 67862, 67878, 67894, 67910, 67926, - 67942, 67958, 67974, 67990, 68006, 68022, 68038, 68054, 68070, 68086, - 68102, 68118, 68134, 68150, 68166, 68182, 68198, 68214, 68230, 68246, - 68262, 68278, 68294, 68310, 68326, 68342, 68358, 68374, 68390, 68406, - 68422, 68438, 68454, 68470, 68486, 68502, 68518, 68534, 68550, 68566, - 68582, 68598, 68614, 68630, 68646, 68662, 68678, 68694, 68710, 68726, - 68742, 68758, 68774, 68790, 68806, 68822, 68838, 68847, 68862, 68876, - 68885, 17689, 68889, 68894, 68900, 68906, 68916, 68924, 17946, 18677, - 9277, 68937, 1428, 1432, 68945, 4270, 33321, 8104, 68951, 68956, 68961, - 68966, 68971, 68977, 68982, 68988, 68993, 68999, 69004, 69009, 69014, - 69019, 69025, 69030, 69035, 69040, 69045, 69050, 69055, 69060, 69066, - 69071, 69077, 69084, 2701, 69089, 69095, 9652, 69099, 69104, 69111, - 69119, 4281, 4286, 4291, 4296, 65, 69123, 69129, 69134, 69139, 69143, - 69148, 69152, 69156, 12785, 69160, 69170, 69183, 69194, 69207, 69214, - 69220, 69228, 69235, 12246, 69244, 69249, 69255, 69261, 69267, 69272, - 69277, 69282, 69287, 69291, 69296, 69301, 69306, 69312, 69318, 69324, - 69329, 69333, 69338, 69343, 69347, 69352, 69357, 69362, 69366, 12801, - 12812, 12817, 1471, 69370, 69376, 1476, 19711, 69381, 19720, 1486, 69386, - 69392, 69397, 1507, 69403, 1513, 1519, 12847, 69408, 69417, 69425, 69433, - 69440, 69444, 69448, 69454, 69459, 37599, 69464, 69471, 69479, 69486, - 69491, 69495, 69499, 69508, 69513, 69518, 69523, 1524, 280, 69528, 69533, - 69537, 19846, 987, 69541, 69548, 69553, 69557, 19904, 1528, 46361, 69560, - 69565, 69575, 69584, 69589, 69593, 69599, 1533, 49458, 69604, 69613, - 69619, 69624, 69629, 13086, 13092, 69635, 69648, 69660, 69677, 69694, - 69711, 69728, 69745, 69762, 69779, 69796, 69813, 69830, 69847, 69864, - 69881, 69898, 69915, 69932, 69949, 69966, 69983, 70000, 70017, 70034, - 70051, 70068, 70085, 70102, 70119, 70136, 70153, 70170, 70187, 70204, - 70221, 70238, 70255, 70272, 70289, 70306, 70323, 70340, 70357, 70374, - 70391, 70408, 70425, 70442, 70459, 70476, 70493, 70504, 70514, 70519, - 1538, 70523, 70528, 70534, 70539, 70544, 70551, 10677, 1543, 70557, - 70566, 33713, 70571, 70582, 13108, 70592, 70597, 70603, 70608, 70615, - 70621, 70626, 1548, 20198, 70631, 70637, 13118, 70643, 70648, 70653, - 70658, 70663, 70668, 70673, 70678, 1553, 4761, 70683, 70688, 70694, - 70699, 70704, 70709, 70714, 70719, 70724, 70729, 70734, 70740, 70746, - 70752, 70757, 70761, 70766, 70771, 70775, 70780, 70785, 70790, 70795, - 70799, 70804, 70810, 70815, 70820, 70824, 70829, 70834, 70840, 70845, - 70850, 70856, 70862, 70867, 70871, 70876, 70881, 70886, 70890, 70895, - 70900, 70905, 70911, 70917, 70922, 70926, 70930, 70935, 70940, 70945, - 35492, 70949, 70954, 70959, 70965, 70970, 70975, 70979, 70984, 70989, - 70995, 71000, 71005, 71011, 71017, 71022, 71026, 71031, 71036, 71040, - 71045, 71050, 71055, 71061, 71067, 71072, 71076, 71081, 71086, 71090, - 71095, 71100, 71105, 71110, 71114, 71117, 71120, 71125, 71130, 38335, - 71137, 71145, 50085, 71151, 3928, 33656, 71164, 71171, 71177, 71183, - 4107, 71188, 13260, 71194, 71204, 71219, 71227, 13265, 71238, 71243, - 71254, 71266, 71278, 71290, 2903, 71302, 71307, 31699, 71319, 71325, - 71331, 71336, 71345, 71352, 71357, 71362, 71367, 71372, 71377, 71382, - 1570, 19338, 71387, 71392, 71397, 71402, 71408, 71413, 71419, 71424, - 71429, 71435, 71440, 71445, 49532, 71449, 71453, 71458, 71462, 20346, - 71467, 71470, 71475, 71483, 71491, 1574, 13301, 13307, 1579, 71499, - 71506, 71511, 71520, 71530, 71537, 71542, 71547, 1584, 71554, 71559, - 20466, 71563, 71568, 71575, 71581, 71585, 71598, 71604, 71615, 71625, - 71632, 20488, 10571, 10578, 4355, 4361, 71639, 1589, 71644, 71653, 71659, - 71667, 71674, 71680, 71687, 71699, 71705, 71710, 71717, 71729, 71740, - 71750, 71759, 71769, 71779, 4249, 71787, 37393, 37402, 20528, 71800, - 71805, 71810, 71815, 71820, 71825, 71830, 1594, 1598, 71835, 71839, - 71842, 71853, 71858, 20554, 1608, 71866, 71871, 71876, 71888, 20587, - 71895, 71898, 71904, 71910, 71915, 71923, 1613, 71928, 71933, 71941, - 71949, 71956, 71965, 71973, 71982, 71986, 1618, 71995, 1623, 25931, - 72000, 72007, 72013, 20674, 72021, 72031, 72037, 72042, 72050, 72057, - 72066, 72074, 72084, 72093, 72103, 72112, 72123, 72133, 72143, 72152, - 72162, 72176, 72189, 72198, 72206, 72216, 72225, 72237, 72248, 72259, - 72269, 19966, 72274, 13453, 72283, 72289, 72294, 72301, 72307, 72314, - 72320, 19555, 72330, 72336, 72341, 72352, 72359, 72366, 72371, 72379, - 13470, 13475, 72387, 72393, 72397, 4339, 4350, 20750, 49635, 72405, - 72411, 72416, 72424, 72431, 14582, 72436, 72442, 72448, 1634, 72453, - 72456, 72462, 72467, 72472, 72477, 72482, 72487, 72492, 72497, 72502, - 72508, 72514, 1333, 72519, 72524, 72529, 72535, 72540, 72545, 72550, - 72555, 72560, 72565, 1643, 18, 72571, 72575, 72580, 72584, 72588, 72592, - 38621, 72597, 28238, 72602, 72607, 72611, 72614, 72618, 72622, 72627, - 72631, 72636, 72640, 72643, 72649, 42308, 42313, 42318, 72652, 72659, - 72665, 72673, 49230, 72683, 72689, 42324, 38885, 38636, 38642, 42340, - 38648, 72694, 72699, 72703, 38918, 72710, 72713, 72717, 72725, 72732, - 72737, 72740, 72745, 72750, 72754, 72758, 72761, 72771, 72783, 72790, - 72796, 38653, 72803, 40604, 72806, 9669, 13815, 72809, 72813, 72818, - 4159, 72822, 72825, 16320, 72832, 72839, 72852, 72867, 72881, 72897, - 72912, 72921, 72929, 72937, 72946, 72950, 72959, 72965, 72970, 72980, - 72993, 73005, 73012, 73017, 73026, 73039, 44032, 73057, 73062, 73069, - 73075, 73080, 895, 73085, 73093, 73100, 73107, 33137, 914, 73113, 73119, - 73124, 73134, 73142, 73148, 73153, 38672, 6858, 38686, 73157, 73167, - 73172, 73180, 73190, 73205, 73211, 73217, 73224, 38696, 73229, 73235, - 37737, 73239, 73243, 73248, 73257, 73264, 73269, 73273, 73278, 73286, - 20531, 73293, 73298, 73302, 6899, 38722, 73306, 73312, 341, 73322, 73329, - 73336, 73342, 73349, 73354, 73363, 15941, 69569, 69579, 73369, 73377, - 73381, 73385, 73389, 73393, 73398, 73402, 73408, 73416, 73421, 73426, - 73433, 73438, 73442, 73447, 73451, 73455, 73461, 73467, 73478, 73484, - 73489, 73493, 73498, 73502, 38846, 73506, 38852, 38858, 73511, 73517, - 73524, 73529, 73533, 37754, 20185, 73536, 73540, 73545, 73552, 73558, - 73562, 73567, 48699, 73573, 73577, 73584, 73588, 73593, 73599, 73605, - 73611, 73623, 73632, 73642, 73648, 73655, 73660, 73665, 73669, 73672, - 73678, 73685, 73690, 73695, 73702, 73709, 73716, 73722, 73727, 73732, - 73740, 38863, 2531, 73745, 73750, 73756, 73761, 73767, 73772, 73777, - 73782, 73788, 38884, 73793, 73799, 73805, 73811, 38954, 73816, 73821, - 73826, 38965, 73831, 73836, 73841, 73847, 73853, 38970, 73858, 73863, - 73868, 39025, 39031, 73873, 73878, 39036, 39058, 33998, 39064, 39068, - 73883, 14258, 73887, 73895, 73901, 73909, 73916, 73922, 73932, 73938, - 73945, 12685, 39082, 73951, 73964, 73973, 73979, 73988, 73994, 74000, - 74007, 28581, 74015, 74022, 74032, 74040, 74043, 39026, 74048, 74055, - 74060, 74064, 74068, 74073, 74077, 4478, 74082, 74087, 74092, 42402, - 42407, 74096, 42421, 74101, 42426, 74106, 74112, 42438, 42444, 42450, - 74117, 74123, 27479, 74134, 74137, 74149, 74157, 39105, 74161, 74170, - 74180, 74189, 39115, 74194, 74201, 74210, 74216, 74224, 74231, 74238, - 6950, 5174, 74243, 39037, 74249, 74252, 74258, 74265, 74270, 74275, - 28485, 74279, 74285, 74291, 74296, 74301, 74305, 74311, 74317, 40488, - 74322, 43626, 45463, 45469, 39146, 39151, 74326, 74330, 74334, 74337, - 74350, 74356, 74360, 74363, 74368, 40870, 74372, 37759, 25872, 74378, - 6879, 6887, 10377, 74381, 74386, 74391, 74396, 74401, 74406, 74411, - 74416, 74421, 74426, 74432, 74437, 74442, 74448, 74453, 74458, 74463, - 74468, 74473, 74478, 74484, 74489, 74495, 74500, 74505, 74510, 74515, - 74520, 74525, 74530, 74535, 74540, 74545, 74551, 74556, 74561, 74566, - 74571, 74576, 74581, 74587, 74592, 74597, 74602, 74607, 74612, 74617, - 74622, 74627, 74632, 74638, 74643, 74648, 74653, 74658, 74664, 74670, - 74675, 74681, 74686, 74691, 74696, 74701, 74706, 1421, 159, 74711, 74715, - 74719, 74723, 30435, 74727, 74731, 74736, 74740, 74745, 74749, 74754, - 74759, 74764, 74769, 74773, 74777, 74782, 74786, 16020, 74791, 74795, - 74802, 74812, 18315, 74821, 74830, 74839, 74843, 74848, 74853, 74857, - 74861, 30215, 3259, 74865, 74871, 21763, 74875, 74884, 74892, 74898, - 74903, 74915, 74927, 74932, 74936, 74941, 74945, 74951, 74957, 74962, - 74972, 74982, 74988, 74996, 75001, 75005, 75011, 75016, 75023, 75029, - 75034, 75041, 75050, 75059, 75067, 75071, 18871, 75074, 75083, 75091, - 75103, 75114, 75125, 75134, 75138, 75147, 75155, 75165, 75173, 75180, - 75190, 75196, 75201, 75209, 75216, 75225, 75231, 75236, 75243, 75249, - 75260, 60, 37536, 75266, 31986, 31996, 75272, 75280, 75287, 75293, 75297, - 75307, 75318, 75326, 75335, 75340, 75345, 75350, 75354, 75358, 75366, - 21710, 75373, 75377, 75383, 75393, 75400, 75407, 75413, 75419, 42501, - 75423, 75425, 75428, 75434, 75438, 75449, 75459, 75465, 75472, 75479, - 15957, 75487, 75493, 75502, 75511, 75517, 11579, 75523, 75529, 75534, - 75539, 75546, 75551, 75558, 75564, 75569, 75577, 75590, 75599, 75608, - 72138, 72148, 75618, 75624, 75633, 75639, 75645, 75652, 75659, 75666, - 75673, 75680, 75685, 75689, 75693, 75696, 75706, 75710, 75722, 75731, - 10038, 75740, 75751, 75756, 75760, 72157, 75766, 75773, 75782, 75790, - 51037, 75798, 75802, 75807, 75812, 75822, 75830, 75842, 75847, 75851, - 75855, 75861, 75869, 75876, 75888, 75896, 75907, 75914, 75920, 75930, - 75936, 75940, 75949, 75958, 75965, 75971, 75976, 75980, 75984, 75988, - 75997, 76006, 76015, 76022, 76028, 76034, 76040, 76045, 76052, 76058, - 76066, 76073, 76079, 15046, 76084, 76090, 76094, 17172, 76098, 76103, - 76113, 76118, 76127, 76133, 76139, 76147, 76154, 76158, 76162, 76169, - 76175, 76183, 76190, 76196, 76207, 76211, 76215, 76219, 76222, 76228, - 76233, 76238, 76242, 76246, 76255, 76263, 76270, 76276, 76283, 29245, - 48840, 76288, 76296, 76300, 76304, 76307, 76315, 76322, 76328, 76337, - 76345, 76351, 76356, 76360, 76365, 76370, 76374, 76378, 76382, 76387, - 76396, 76400, 76407, 45567, 76411, 76417, 76425, 76429, 76435, 76443, - 76449, 76454, 76465, 76473, 76479, 76488, 27626, 76496, 76503, 76510, - 76517, 76524, 76531, 52526, 15772, 76538, 76545, 76550, 42537, 4721, - 76556, 76561, 76566, 76572, 76578, 76584, 76589, 76594, 76599, 76604, - 76610, 76615, 76621, 76626, 76632, 76637, 76642, 76647, 76652, 76657, - 76662, 76667, 76673, 76678, 76684, 76689, 76694, 76699, 76704, 76709, - 76714, 76720, 76725, 76730, 76735, 76740, 76745, 76750, 76755, 76760, - 76765, 76770, 76776, 76781, 76786, 76791, 76796, 76801, 76806, 76811, - 76816, 76822, 76827, 76832, 76837, 76842, 76847, 76852, 76857, 76862, - 76867, 76872, 76877, 76882, 76888, 1883, 305, 76893, 46479, 46484, 76897, - 76902, 9293, 76906, 3628, 76911, 76916, 76920, 76929, 76940, 76957, - 76975, 76983, 75794, 76990, 76993, 77003, 77010, 77019, 77035, 77044, - 77054, 77059, 77072, 77082, 77091, 77099, 77113, 77121, 77130, 77134, - 77137, 77144, 77150, 77161, 77168, 77180, 77191, 77202, 77211, 77218, - 1173, 812, 77228, 2744, 77232, 77237, 77246, 997, 9059, 25308, 77254, - 77262, 77276, 77289, 77293, 77298, 77303, 77308, 77314, 77320, 77325, - 9661, 18358, 77330, 77334, 77338, 77346, 10098, 77351, 77357, 77366, - 77374, 1657, 13314, 1179, 4393, 77378, 77382, 77391, 77401, 2482, 32836, - 77410, 77416, 20438, 32851, 77422, 4558, 13696, 77428, 77435, 71848, - 77439, 77443, 77449, 77454, 77459, 3861, 163, 3887, 77464, 77476, 77480, - 77484, 77490, 77495, 33733, 77499, 13684, 2938, 4, 77504, 77514, 77525, - 77536, 77546, 77552, 77563, 77570, 77576, 77582, 2306, 77587, 77595, - 77602, 77608, 77618, 77628, 77638, 77647, 28568, 1185, 77652, 77656, - 77660, 77666, 77670, 2961, 2967, 9658, 2337, 77674, 77678, 77687, 77695, - 77706, 77714, 77722, 77728, 77733, 77744, 77755, 77763, 77769, 77774, - 11356, 77784, 77792, 77796, 77800, 77805, 77809, 77821, 34196, 18257, - 77828, 77838, 77844, 77850, 7977, 11490, 77860, 77871, 77882, 77892, - 77901, 77905, 77912, 999, 2731, 77922, 77927, 77935, 71564, 77943, 77948, - 77959, 77966, 77980, 16968, 529, 77990, 77997, 78001, 78005, 78013, - 78022, 4433, 78030, 78036, 20483, 78041, 78055, 78062, 78068, 78076, - 78085, 78094, 78101, 78113, 78123, 78131, 78138, 78146, 78153, 4357, 116, - 78161, 78172, 78176, 78188, 78194, 1804, 227, 78199, 10709, 78204, 3006, - 78208, 78215, 78221, 78232, 78242, 78250, 78257, 10049, 78264, 78273, - 78281, 4438, 78294, 4455, 78298, 78303, 78309, 78314, 78319, 78324, 3011, - 573, 78330, 78343, 78347, 78352, 78357, 3016, 1882, 763, 78361, 4459, - 78369, 78375, 78379, 799, 78389, 78398, 78403, 3878, 78407, 78411, 17989, - 17996, 9317, 78419, 4490, 4367, 15644, 78427, 78434, 78439, 28632, 78443, - 78450, 78456, 13952, 78461, 14017, 204, 78466, 78478, 78484, 78492, 3028, - 1699, 78500, 78502, 78507, 78512, 78517, 78523, 78528, 78533, 78538, - 78543, 78548, 78553, 78559, 78564, 78569, 78574, 78579, 78584, 78589, - 78594, 78599, 78605, 78610, 78615, 78620, 78626, 78631, 78637, 78642, - 78647, 78652, 78657, 78662, 78667, 78672, 78678, 78683, 78689, 78694, - 78699, 78704, 78709, 78714, 78719, 78724, 78729, 9730, 9743, 4506, 4511, - 4516, 4521, 26, 78735, 78741, 78746, 78751, 78756, 78762, 78767, 78771, - 78775, 78780, 78786, 78790, 78796, 78801, 78806, 78812, 78817, 78821, - 78826, 78831, 78835, 78838, 78840, 78844, 78847, 78854, 78859, 78863, - 78868, 78872, 78876, 78880, 78886, 78897, 78917, 78936, 78957, 78970, - 78982, 78991, 78995, 78998, 39423, 79001, 39428, 79008, 79013, 39433, - 79022, 79031, 39439, 79036, 39444, 79045, 79050, 13941, 79054, 79059, - 79064, 39449, 79068, 79077, 50696, 79081, 79084, 79088, 9325, 79094, - 79097, 79102, 79107, 79112, 79116, 4179, 39454, 79119, 79123, 79126, - 79137, 79142, 79146, 79152, 79160, 79173, 79177, 79185, 79194, 79200, - 79205, 79211, 79215, 79221, 79227, 79235, 79240, 79244, 79251, 79257, - 79265, 79274, 79282, 39457, 79289, 79299, 79308, 79316, 79327, 79340, - 79345, 79350, 79354, 79363, 79369, 79376, 79389, 79401, 79412, 79424, - 79431, 79440, 79449, 79458, 79465, 79471, 79478, 79486, 79493, 79501, - 79510, 79518, 79525, 79533, 79542, 79550, 79559, 79569, 79578, 79586, - 79593, 79601, 79610, 79618, 79627, 79637, 79646, 79654, 79663, 79673, - 79682, 79692, 79703, 79713, 79722, 79730, 79737, 79745, 79754, 79762, - 79771, 79781, 79790, 79798, 79807, 79817, 79826, 79836, 79847, 79857, - 79866, 79874, 79883, 79893, 79902, 79912, 79923, 79933, 79942, 79952, - 79963, 79973, 79984, 79996, 80007, 80017, 80026, 80034, 80041, 80049, - 80058, 80066, 80075, 80085, 80094, 80102, 80111, 80121, 80130, 80140, - 80151, 80161, 80170, 80178, 80187, 80197, 80206, 80216, 80227, 80237, - 80246, 80256, 80267, 80277, 80288, 80300, 80311, 80321, 80330, 80338, - 80347, 80357, 80366, 80376, 80387, 80397, 80406, 80416, 80427, 80437, - 80448, 80460, 80471, 80481, 80490, 80500, 80511, 80521, 80532, 80544, - 80555, 80565, 80576, 80588, 80599, 80611, 80624, 80636, 80647, 80657, - 80666, 80674, 80681, 80689, 80698, 80706, 80715, 80725, 80734, 80742, - 80751, 80761, 80770, 80780, 80791, 80801, 80810, 80818, 80827, 80837, - 80846, 80856, 80867, 80877, 80886, 80896, 80907, 80917, 80928, 80940, - 80951, 80961, 80970, 80978, 80987, 80997, 81006, 81016, 81027, 81037, - 81046, 81056, 81067, 81077, 81088, 81100, 81111, 81121, 81130, 81140, - 81151, 81161, 81172, 81184, 81195, 81205, 81216, 81228, 81239, 81251, - 81264, 81276, 81287, 81297, 81306, 81314, 81323, 81333, 81342, 81352, - 81363, 81373, 81382, 81392, 81403, 81413, 81424, 81436, 81447, 81457, - 81466, 81476, 81487, 81497, 81508, 81520, 81531, 81541, 81552, 81564, - 81575, 81587, 81600, 81612, 81623, 81633, 81642, 81652, 81663, 81673, - 81684, 81696, 81707, 81717, 81728, 81740, 81751, 81763, 81776, 81788, - 81799, 81809, 81820, 81832, 81843, 81855, 81868, 81880, 81891, 81903, - 81916, 81928, 81941, 81955, 81968, 81980, 81991, 82001, 82010, 82018, - 82025, 82030, 9090, 82037, 82042, 39467, 82048, 82053, 39472, 82059, - 82066, 25430, 31434, 82071, 82077, 82083, 82091, 82097, 82103, 82110, - 82117, 82122, 82127, 82131, 82136, 82140, 82143, 82147, 82152, 82161, - 82170, 82178, 82184, 82196, 82207, 82211, 3321, 9065, 82216, 82219, - 82222, 82224, 82228, 82232, 82236, 82242, 82247, 31497, 82252, 82256, - 82259, 82264, 82268, 82275, 82281, 82285, 7060, 82289, 82294, 39494, - 82298, 82305, 82314, 82322, 82328, 82339, 82347, 82356, 82364, 82371, - 82378, 82384, 82389, 82400, 39499, 82405, 82416, 82428, 82436, 82447, - 82456, 82464, 82475, 82480, 82488, 2696, 82493, 82502, 41891, 82515, - 82519, 82531, 82539, 82544, 82552, 82563, 21928, 82572, 82578, 82585, - 82593, 82599, 39509, 82604, 4484, 68920, 82611, 82614, 82622, 82635, - 82648, 82661, 82674, 82681, 82692, 82701, 82706, 52343, 52348, 82710, - 82714, 82722, 82729, 82738, 82746, 82752, 82761, 82769, 82776, 82784, - 82788, 82797, 82806, 82816, 82829, 82842, 82852, 39514, 82858, 82865, - 82871, 82877, 39520, 82882, 82885, 82889, 82897, 82906, 52114, 82914, - 82923, 82931, 82938, 82946, 82956, 82965, 82974, 41043, 82983, 82994, - 83009, 83019, 10747, 26246, 83028, 83033, 83038, 83042, 19547, 83047, - 83052, 83058, 83063, 83068, 83074, 83079, 83084, 26206, 83089, 83096, - 83104, 83112, 83120, 83125, 83132, 83139, 83144, 1717, 83148, 83152, - 83160, 83168, 39537, 83174, 83180, 83192, 83198, 83205, 83209, 83216, - 83221, 83228, 83234, 83241, 83252, 83262, 83272, 83284, 83290, 83298, - 83307, 83313, 83323, 83333, 39564, 83342, 83351, 83357, 83369, 83380, - 83387, 83392, 83396, 83404, 83415, 83421, 83426, 83431, 83438, 83446, - 83458, 83468, 83477, 83486, 83494, 83501, 41705, 29006, 83507, 83512, - 83516, 83520, 83525, 83533, 83539, 83550, 83563, 83568, 83575, 39569, - 83580, 83592, 83601, 83609, 83619, 83630, 83643, 83650, 83659, 83668, - 83676, 83681, 83687, 83691, 1410, 83696, 83701, 83706, 83711, 83717, - 83722, 83727, 83733, 83739, 83744, 83748, 83753, 83758, 83763, 69504, - 83768, 83773, 83778, 83783, 83789, 83795, 83800, 83804, 83809, 19546, - 83814, 83820, 83825, 83831, 83836, 83841, 83846, 83851, 83855, 83861, - 83866, 83875, 83880, 83885, 83890, 83895, 83899, 83906, 83912, 4836, - 20800, 3286, 83917, 83921, 83926, 83930, 83934, 83938, 56143, 83942, - 83867, 83944, 83954, 39578, 83957, 83962, 83971, 83977, 7019, 39583, - 83981, 83987, 83992, 83998, 84003, 84007, 84014, 84019, 84029, 84038, - 84042, 84048, 84054, 84060, 84064, 84072, 84079, 84087, 84095, 39588, - 84102, 84105, 84116, 84123, 84129, 84134, 84138, 84144, 84152, 84159, - 84164, 84168, 84177, 84185, 84191, 84196, 84203, 84211, 39593, 84218, - 28458, 84230, 84236, 84241, 84247, 84254, 84260, 25894, 33344, 84266, - 84271, 84277, 84281, 84293, 83900, 83907, 26138, 84303, 84308, 84315, - 84321, 84328, 84334, 84345, 84350, 84358, 10447, 84363, 84366, 84372, - 84376, 84380, 84383, 84389, 84395, 39282, 4837, 1425, 16069, 84402, - 84408, 84414, 84420, 84426, 84432, 84438, 84444, 84450, 84455, 84460, - 84465, 84470, 84475, 84480, 84485, 84490, 84495, 84500, 84505, 84510, - 84515, 84521, 84526, 84531, 84537, 84542, 84547, 84553, 84559, 84565, - 84571, 84577, 84583, 84589, 84595, 84601, 84606, 84611, 84617, 84622, - 84627, 84633, 84638, 84643, 84648, 84653, 84658, 84663, 84668, 84673, - 84678, 84683, 84688, 84693, 84699, 84704, 84709, 84714, 84720, 84725, - 84730, 84735, 84740, 84746, 84751, 84756, 84761, 84766, 84771, 84776, - 84781, 84786, 84791, 84796, 84801, 84806, 84811, 84816, 84821, 84826, - 84831, 84836, 84841, 84847, 84852, 84857, 84862, 84867, 84872, 84877, - 84882, 1065, 148, 84887, 84891, 84895, 84900, 84908, 84912, 84924, 84931, - 84939, 84943, 84956, 84964, 84969, 84974, 32049, 84978, 84983, 84987, - 84992, 84996, 85004, 85008, 25438, 85013, 85017, 72401, 85021, 85024, - 85032, 85040, 85048, 85053, 85058, 85065, 85072, 85078, 85084, 85089, - 85096, 85101, 85109, 77281, 85116, 85121, 72167, 85128, 85134, 85139, - 85143, 85150, 85156, 85163, 72194, 14031, 85171, 85176, 85181, 85185, - 85188, 85199, 85208, 85214, 85219, 85223, 85233, 85242, 50487, 85246, - 85250, 85257, 85270, 85276, 85284, 85291, 85300, 85311, 85322, 85333, - 85344, 85353, 85359, 85368, 85376, 85386, 85399, 85407, 85414, 85425, - 85434, 85440, 85445, 85450, 85456, 85466, 85472, 85482, 85490, 85497, - 85507, 85516, 83582, 85524, 85530, 85538, 85544, 75834, 85551, 85556, - 85559, 85563, 85569, 85573, 85576, 85584, 85590, 85596, 85604, 85616, - 85628, 85635, 85640, 85644, 85655, 85663, 85670, 85682, 85690, 85697, - 85705, 85712, 85718, 85723, 85729, 85739, 85748, 85756, 85761, 85771, - 85780, 51375, 85787, 85791, 85796, 85804, 85811, 85817, 85821, 85831, - 85842, 85850, 85857, 85869, 85881, 85890, 82505, 85897, 85907, 85919, - 85930, 85944, 85952, 85962, 85969, 85977, 85990, 86002, 86011, 86019, - 86029, 86040, 86052, 86061, 86071, 86081, 86091, 86100, 86107, 86116, - 86131, 86139, 86149, 86158, 86166, 86179, 68890, 86194, 86204, 86213, - 86225, 86235, 86247, 86258, 86272, 86286, 86300, 86314, 86328, 86342, - 86356, 86370, 86384, 86398, 86412, 86426, 86440, 86454, 86468, 86482, - 86496, 86510, 86524, 86538, 86552, 86566, 86580, 86594, 86608, 86622, - 86636, 86650, 86664, 86678, 86692, 86706, 86720, 86734, 86748, 86762, - 86776, 86790, 86804, 86818, 86832, 86846, 86860, 86874, 86888, 86902, - 86916, 86930, 86944, 86958, 86972, 86986, 87000, 87014, 87028, 87042, - 87056, 87070, 87084, 87098, 87112, 87126, 87140, 87154, 87168, 87182, - 87196, 87210, 87224, 87238, 87252, 87266, 87280, 87294, 87308, 87322, - 87336, 87350, 87364, 87378, 87392, 87406, 87420, 87434, 87448, 87462, - 87476, 87490, 87504, 87518, 87532, 87546, 87560, 87574, 87588, 87602, - 87616, 87630, 87644, 87658, 87672, 87686, 87700, 87714, 87728, 87742, - 87756, 87770, 87784, 87798, 87812, 87826, 87840, 87854, 87868, 87882, - 87896, 87910, 87924, 87938, 87952, 87966, 87980, 87994, 88008, 88022, - 88036, 88050, 88064, 88078, 88092, 88106, 88120, 88134, 88148, 88162, - 88176, 88190, 88204, 88218, 88232, 88246, 88260, 88274, 88288, 88302, - 88316, 88330, 88344, 88358, 88372, 88386, 88400, 88414, 88428, 88442, - 88456, 88470, 88484, 88498, 88512, 88526, 88540, 88554, 88568, 88582, - 88596, 88610, 88624, 88638, 88652, 88666, 88680, 88694, 88708, 88722, - 88736, 88750, 88764, 88778, 88792, 88806, 88820, 88834, 88848, 88862, - 88876, 88890, 88904, 88918, 88932, 88946, 88960, 88974, 88988, 89002, - 89016, 89030, 89044, 89058, 89072, 89086, 89100, 89114, 89128, 89142, - 89156, 89170, 89184, 89198, 89212, 89226, 89240, 89254, 89268, 89282, - 89296, 89310, 89324, 89338, 89352, 89366, 89380, 89394, 89408, 89422, - 89436, 89450, 89464, 89478, 89492, 89506, 89520, 89534, 89548, 89562, - 89576, 89590, 89604, 89618, 89632, 89646, 89660, 89674, 89688, 89702, - 89716, 89730, 89744, 89758, 89772, 89786, 89800, 89814, 89828, 89842, - 89856, 89870, 89884, 89898, 89912, 89926, 89940, 89954, 89968, 89982, - 89996, 90010, 90024, 90038, 90052, 90066, 90080, 90094, 90108, 90122, - 90136, 90150, 90164, 90178, 90192, 90206, 90220, 90234, 90248, 90262, - 90276, 90290, 90304, 90318, 90332, 90346, 90360, 90374, 90388, 90402, - 90416, 90430, 90444, 90458, 90472, 90486, 90500, 90514, 90528, 90542, - 90556, 90570, 90584, 90598, 90612, 90626, 90640, 90654, 90668, 90682, - 90696, 90710, 90724, 90738, 90752, 90766, 90780, 90794, 90808, 90822, - 90836, 90850, 90864, 90878, 90892, 90906, 90920, 90934, 90948, 90962, - 90976, 90990, 91004, 91018, 91032, 91046, 91060, 91074, 91088, 91102, - 91116, 91130, 91144, 91158, 91172, 91186, 91200, 91214, 91228, 91242, - 91256, 91270, 91284, 91298, 91312, 91326, 91340, 91354, 91368, 91382, - 91396, 91410, 91424, 91438, 91452, 91466, 91480, 91494, 91508, 91522, - 91536, 91550, 91564, 91578, 91592, 91606, 91620, 91634, 91648, 91662, - 91676, 91690, 91704, 91718, 91732, 91746, 91760, 91774, 91788, 91802, - 91816, 91830, 91844, 91858, 91872, 91886, 91900, 91914, 91928, 91942, - 91956, 91970, 91984, 91998, 92012, 92026, 92040, 92054, 92068, 92082, - 92096, 92110, 92124, 92138, 92152, 92166, 92180, 92194, 92208, 92222, - 92236, 92250, 92264, 92278, 92292, 92306, 92320, 92334, 92348, 92362, - 92376, 92390, 92404, 92418, 92432, 92446, 92460, 92474, 92488, 92502, - 92516, 92530, 92544, 92558, 92572, 92586, 92600, 92614, 92628, 92642, - 92656, 92670, 92684, 92698, 92712, 92726, 92740, 92754, 92768, 92782, - 92796, 92810, 92824, 92838, 92852, 92866, 92880, 92894, 92908, 92922, - 92936, 92950, 92964, 92978, 92992, 93006, 93020, 93034, 93048, 93062, - 93076, 93090, 93104, 93118, 93132, 93146, 93160, 93174, 93188, 93202, - 93216, 93230, 93244, 93258, 93272, 93286, 93300, 93314, 93328, 93342, - 93356, 93370, 93384, 93398, 93412, 93426, 93440, 93454, 93468, 93482, - 93496, 93510, 93524, 93538, 93552, 93566, 93580, 93594, 93608, 93622, - 93636, 93650, 93664, 93678, 93692, 93706, 93720, 93734, 93748, 93762, - 93776, 93790, 93804, 93818, 93832, 93846, 93860, 93874, 93888, 93902, - 93916, 93930, 93944, 93958, 93972, 93986, 94000, 94014, 94028, 94042, - 94056, 94070, 94084, 94098, 94112, 94126, 94140, 94154, 94168, 94182, - 94196, 94210, 94224, 94238, 94252, 94266, 94280, 94294, 94308, 94322, - 94336, 94350, 94364, 94378, 94392, 94406, 94420, 94434, 94448, 94462, - 94476, 94490, 94504, 94518, 94532, 94546, 94560, 94574, 94588, 94602, - 94616, 94630, 94644, 94658, 94672, 94686, 94700, 94714, 94728, 94742, - 94756, 94770, 94784, 94798, 94812, 94826, 94840, 94854, 94868, 94882, - 94896, 94910, 94924, 94938, 94952, 94966, 94980, 94994, 95008, 95022, - 95036, 95050, 95064, 95078, 95092, 95106, 95120, 95134, 95148, 95162, - 95176, 95190, 95204, 95218, 95232, 95246, 95260, 95274, 95288, 95302, - 95316, 95330, 95344, 95358, 95372, 95386, 95400, 95414, 95428, 95442, - 95456, 95470, 95484, 95498, 95512, 95526, 95540, 95554, 95568, 95582, - 95596, 95610, 95624, 95638, 95652, 95666, 95680, 95694, 95708, 95722, - 95736, 95750, 95764, 95778, 95792, 95806, 95820, 95834, 95848, 95862, - 95876, 95890, 95904, 95918, 95932, 95946, 95960, 95974, 95988, 96002, - 96016, 96030, 96044, 96058, 96072, 96086, 96100, 96114, 96128, 96142, - 96156, 96170, 96184, 96198, 96212, 96226, 96240, 96254, 96268, 96282, - 96296, 96310, 96324, 96338, 96352, 96366, 96380, 96394, 96408, 96422, - 96436, 96450, 96464, 96478, 96492, 96506, 96520, 96534, 96548, 96562, - 96576, 96590, 96604, 96618, 96632, 96646, 96660, 96674, 96688, 96702, - 96716, 96730, 96744, 96758, 96772, 96786, 96800, 96814, 96828, 96842, - 96856, 96870, 96884, 96898, 96912, 96926, 96940, 96954, 96968, 96982, - 96996, 97010, 97019, 97030, 97041, 97051, 97062, 97070, 97078, 97084, - 97094, 97102, 97108, 35368, 97113, 97119, 97128, 97140, 97145, 97152, - 11370, 21948, 97158, 97167, 97172, 97176, 97181, 97188, 97194, 97199, - 97204, 97212, 97220, 97230, 97235, 97243, 14513, 97247, 97253, 97259, - 97265, 97271, 97277, 97283, 97289, 97295, 97301, 97307, 97313, 97319, - 97325, 97331, 97337, 97343, 97349, 97355, 97361, 97367, 97373, 97379, - 97385, 97391, 97397, 97403, 97409, 97415, 97421, 97427, 97433, 97439, - 97445, 97451, 97457, 97463, 97470, 97476, 97482, 97488, 97494, 97500, - 97506, 97512, 97518, 97524, 97530, 97536, 97542, 97548, 97554, 97560, - 97566, 97572, 97578, 97584, 97590, 97596, 97602, 97608, 97614, 97620, - 97626, 97632, 97638, 97644, 97650, 97656, 97662, 97668, 97674, 97680, - 97686, 97692, 97698, 97704, 97710, 97716, 97722, 97728, 97734, 97740, - 97746, 97752, 97758, 97764, 97770, 97777, 97783, 97789, 97795, 97801, - 97807, 97813, 97819, 97825, 97831, 97837, 97843, 97846, 97848, 97863, - 97876, 97883, 97889, 97900, 97905, 97909, 97914, 97921, 97927, 97932, - 97940, 77884, 77894, 97946, 97953, 97963, 12672, 97970, 97975, 35616, - 97984, 97989, 97996, 98006, 98014, 98022, 98031, 98040, 98046, 98052, - 98057, 98064, 98071, 98076, 98080, 98088, 72211, 98093, 98102, 98110, - 98117, 98122, 98126, 98135, 98141, 98144, 98148, 98157, 98167, 84951, - 98176, 98180, 98188, 98192, 98198, 98209, 98219, 21957, 98230, 98239, - 98247, 98255, 98262, 72230, 9895, 98270, 98274, 98283, 98290, 98293, - 98297, 33215, 98300, 98304, 98309, 98326, 98338, 12630, 98350, 98355, - 98360, 98365, 25545, 98369, 98374, 98379, 98385, 98390, 6640, 98395, - 25549, 98400, 98405, 98411, 98418, 98423, 98428, 98434, 98440, 98446, - 98451, 98457, 98461, 98475, 98483, 98491, 98497, 98502, 98509, 98519, - 98528, 98533, 98538, 98543, 98551, 98561, 98572, 98577, 98583, 98588, - 98597, 70639, 4760, 98602, 98620, 98639, 98652, 98666, 98682, 98689, - 98696, 98705, 98712, 98718, 98725, 98730, 98736, 98741, 98747, 98755, - 98761, 98766, 98771, 98787, 12643, 98801, 98808, 98816, 98822, 98826, - 98829, 98835, 98840, 98845, 98853, 98860, 98865, 98874, 98880, 98885, - 98891, 98897, 98906, 98915, 43462, 98920, 98931, 98938, 98946, 98955, - 14104, 98964, 98970, 98978, 98984, 98990, 98996, 99001, 99008, 99014, - 14115, 99019, 99022, 99027, 39620, 99037, 99046, 99051, 99059, 99066, - 99072, 99077, 99085, 99092, 99103, 99119, 99135, 99151, 99167, 99183, - 99199, 99215, 99231, 99247, 99263, 99279, 99295, 99311, 99327, 99343, - 99359, 99375, 99391, 99407, 99423, 99439, 99455, 99471, 99487, 99503, - 99519, 99535, 99551, 99567, 99583, 99599, 99615, 99631, 99647, 99663, - 99679, 99695, 99711, 99727, 99743, 99759, 99775, 99791, 99807, 99823, - 99839, 99855, 99871, 99887, 99903, 99919, 99935, 99951, 99967, 99983, - 99999, 100015, 100031, 100047, 100063, 100079, 100095, 100111, 100127, - 100143, 100159, 100175, 100191, 100207, 100223, 100239, 100255, 100271, - 100287, 100303, 100319, 100335, 100351, 100367, 100383, 100399, 100415, - 100431, 100447, 100463, 100479, 100495, 100511, 100527, 100543, 100559, - 100575, 100591, 100607, 100623, 100639, 100655, 100671, 100687, 100703, - 100719, 100735, 100751, 100767, 100783, 100799, 100815, 100831, 100847, - 100863, 100879, 100895, 100911, 100927, 100943, 100959, 100975, 100991, - 101007, 101023, 101039, 101055, 101071, 101087, 101103, 101119, 101135, - 101151, 101167, 101183, 101199, 101215, 101231, 101247, 101263, 101279, - 101295, 101311, 101327, 101343, 101359, 101375, 101391, 101407, 101423, - 101439, 101455, 101471, 101487, 101503, 101519, 101535, 101551, 101567, - 101583, 101599, 101615, 101631, 101647, 101663, 101679, 101695, 101711, - 101727, 101743, 101759, 101775, 101791, 101807, 101823, 101839, 101855, - 101871, 101887, 101903, 101919, 101935, 101951, 101967, 101983, 101999, - 102015, 102031, 102047, 102063, 102079, 102095, 102111, 102127, 102143, - 102159, 102175, 102191, 102207, 102223, 102239, 102255, 102271, 102287, - 102303, 102319, 102335, 102351, 102367, 102383, 102399, 102415, 102431, - 102447, 102463, 102479, 102495, 102511, 102527, 102543, 102559, 102575, - 102591, 102607, 102623, 102639, 102655, 102671, 102687, 102703, 102719, - 102735, 102751, 102767, 102783, 102799, 102815, 102831, 102847, 102863, - 102879, 102895, 102911, 102927, 102943, 102959, 102975, 102991, 103007, - 103023, 103039, 103055, 103071, 103087, 103103, 103119, 103135, 103151, - 103167, 103183, 103199, 103215, 103231, 103247, 103263, 103279, 103295, - 103311, 103327, 103343, 103359, 103375, 103391, 103407, 103423, 103439, - 103455, 103471, 103487, 103503, 103519, 103535, 103551, 103567, 103583, - 103599, 103615, 103631, 103647, 103663, 103679, 103695, 103711, 103727, - 103743, 103759, 103775, 103791, 103807, 103823, 103839, 103855, 103871, - 103887, 103903, 103919, 103935, 103951, 103967, 103983, 103999, 104015, - 104031, 104047, 104063, 104079, 104095, 104111, 104127, 104143, 104159, - 104175, 104191, 104207, 104223, 104239, 104255, 104271, 104287, 104303, - 104319, 104335, 104351, 104367, 104383, 104399, 104415, 104431, 104447, - 104463, 104479, 104495, 104511, 104527, 104543, 104559, 104575, 104591, - 104607, 104623, 104639, 104655, 104671, 104687, 104703, 104719, 104735, - 104751, 104767, 104783, 104799, 104815, 104831, 104847, 104863, 104879, - 104895, 104911, 104927, 104943, 104959, 104975, 104991, 105007, 105023, - 105039, 105055, 105071, 105087, 105103, 105119, 105135, 105151, 105167, - 105183, 105199, 105215, 105231, 105247, 105263, 105279, 105295, 105311, - 105327, 105343, 105359, 105375, 105391, 105407, 105423, 105439, 105455, - 105471, 105487, 105503, 105519, 105535, 105551, 105567, 105583, 105599, - 105615, 105631, 105647, 105663, 105679, 105695, 105711, 105727, 105743, - 105759, 105775, 105791, 105807, 105823, 105839, 105855, 105871, 105887, - 105903, 105919, 105935, 105951, 105967, 105983, 105999, 106015, 106031, - 106047, 106063, 106079, 106095, 106111, 106127, 106143, 106159, 106175, - 106191, 106207, 106223, 106239, 106255, 106271, 106287, 106303, 106319, - 106335, 106351, 106367, 106383, 106399, 106415, 106431, 106447, 106463, - 106479, 106495, 106511, 106527, 106543, 106559, 106575, 106591, 106607, - 106623, 106639, 106655, 106671, 106687, 106703, 106719, 106735, 106751, - 106767, 106783, 106799, 106815, 106831, 106847, 106863, 106879, 106895, - 106911, 106927, 106943, 106959, 106975, 106991, 107007, 107023, 107039, - 107055, 107071, 107087, 107103, 107119, 107135, 107151, 107167, 107183, - 107199, 107215, 107231, 107247, 107263, 107279, 107295, 107311, 107327, - 107343, 107359, 107375, 107391, 107407, 107423, 107439, 107455, 107471, - 107487, 107503, 107519, 107535, 107551, 107567, 107583, 107599, 107615, - 107631, 107647, 107663, 107679, 107695, 107711, 107727, 107743, 107759, - 107775, 107791, 107807, 107823, 107839, 107855, 107871, 107887, 107903, - 107919, 107935, 107951, 107967, 107983, 107999, 108015, 108031, 108047, - 108063, 108079, 108095, 108111, 108127, 108143, 108159, 108175, 108191, - 108207, 108223, 108239, 108255, 108271, 108287, 108303, 108319, 108335, - 108351, 108367, 108383, 108399, 108415, 108431, 108447, 108463, 108479, - 108495, 108511, 108527, 108543, 108559, 108575, 108591, 108607, 108623, - 108639, 108655, 108671, 108687, 108703, 108719, 108735, 108751, 108767, - 108783, 108799, 108815, 108831, 108847, 108863, 108879, 108895, 108911, - 108927, 108943, 108959, 108975, 108991, 109007, 109023, 109039, 109055, - 109071, 109087, 109103, 109119, 109135, 109151, 109167, 109183, 109199, - 109215, 109231, 109247, 109263, 109279, 109295, 109311, 109327, 109343, - 109359, 109375, 109391, 109407, 109423, 109439, 109455, 109471, 109487, - 109503, 109519, 109535, 109551, 109567, 109583, 109599, 109615, 109631, - 109647, 109663, 109679, 109695, 109711, 109727, 109743, 109759, 109775, - 109791, 109807, 109823, 109839, 109855, 109871, 109887, 109903, 109919, - 109935, 109951, 109967, 109983, 109999, 110015, 110031, 110047, 110063, - 110079, 110095, 110111, 110127, 110143, 110159, 110175, 110191, 110207, - 110223, 110239, 110255, 110271, 110287, 110303, 110319, 110335, 110351, - 110367, 110383, 110399, 110415, 110431, 110447, 110463, 110479, 110495, - 110511, 110527, 110543, 110559, 110575, 110591, 110607, 110623, 110639, - 110655, 110671, 110687, 110703, 110719, 110735, 110751, 110767, 110783, - 110799, 110815, 110831, 110847, 110863, 110879, 110895, 110911, 110927, - 110943, 110959, 110975, 110991, 111007, 111023, 111039, 111055, 111071, - 111087, 111103, 111119, 111135, 111151, 111167, 111183, 111199, 111215, - 111231, 111247, 111263, 111279, 111295, 111311, 111327, 111343, 111359, - 111375, 111391, 111407, 111423, 111439, 111455, 111471, 111487, 111503, - 111519, 111535, 111551, 111567, 111583, 111599, 111615, 111631, 111647, - 111663, 111679, 111695, 111711, 111727, 111743, 111759, 111775, 111791, - 111807, 111823, 111839, 111855, 111871, 111887, 111903, 111919, 111935, - 111951, 111967, 111983, 111999, 112015, 112031, 112047, 112063, 112079, - 112095, 112111, 112127, 112143, 112159, 112175, 112191, 112207, 112223, - 112239, 112255, 112271, 112287, 112303, 112319, 112335, 112351, 112367, - 112383, 112399, 112415, 112431, 112447, 112463, 112479, 112495, 112511, - 112527, 112543, 112559, 112575, 112591, 112607, 112623, 112639, 112655, - 112671, 112687, 112703, 112719, 112735, 112751, 112767, 112783, 112799, - 112815, 112831, 112847, 112863, 112879, 112895, 112911, 112927, 112943, - 112959, 112969, 112978, 112983, 112991, 77204, 112996, 113002, 113007, - 113014, 113023, 113031, 113035, 4338, 113041, 113048, 113054, 113058, - 20549, 46595, 3295, 113063, 113067, 113071, 113078, 113084, 113093, - 113099, 113106, 113110, 113131, 113153, 113169, 113186, 113205, 113214, - 113224, 113232, 113239, 113246, 113252, 33070, 113266, 113270, 113276, - 113284, 113296, 113302, 113310, 113317, 113322, 113327, 113331, 113339, - 113346, 113350, 113356, 113362, 113367, 3972, 52543, 113373, 113377, - 113381, 113385, 113390, 113395, 113400, 113406, 113412, 113418, 113425, - 113431, 113438, 113444, 113450, 113455, 113461, 113466, 113470, 105563, - 113475, 105627, 52558, 113480, 113485, 113493, 113497, 113502, 113509, - 113518, 113525, 113531, 113540, 113544, 113551, 113555, 113558, 113565, - 113571, 113580, 113590, 113600, 113605, 113609, 113616, 113624, 113633, - 113637, 113645, 113651, 113656, 113661, 113667, 113673, 113678, 113682, - 31947, 113688, 113692, 113696, 113699, 113704, 113712, 113722, 113728, - 113733, 113743, 49664, 113751, 113763, 113769, 113776, 113782, 113786, - 113791, 113797, 113809, 113820, 113827, 113833, 113840, 113847, 113859, - 113866, 113872, 25629, 113876, 113884, 113890, 113897, 113903, 113909, - 113915, 113920, 113925, 113930, 113934, 113943, 113951, 113962, 7934, - 113967, 19985, 113973, 113977, 113981, 113985, 113993, 114002, 114006, - 114013, 114022, 114030, 114043, 114049, 106139, 36551, 114054, 114056, - 114061, 114066, 114071, 114076, 114081, 114086, 114091, 114096, 114101, - 114106, 114111, 114116, 114121, 114126, 114132, 114137, 114142, 114147, - 114152, 114157, 114162, 114167, 114172, 114178, 114184, 114190, 114195, - 114200, 114212, 114217, 1935, 54, 114222, 114227, 39630, 114231, 39635, - 39640, 39646, 39651, 114235, 39656, 26815, 114257, 114261, 114265, - 114270, 114274, 39660, 114278, 114286, 114293, 114299, 114309, 39665, - 114316, 114319, 114324, 114328, 114337, 11168, 114345, 39670, 26659, - 114348, 114352, 114360, 1307, 114365, 39681, 114368, 114373, 114378, - 31188, 31198, 43060, 114383, 114388, 114393, 114398, 114404, 114409, - 114418, 114423, 114432, 114440, 114447, 114453, 114458, 114463, 114468, - 114478, 114487, 114495, 114500, 114508, 114512, 114520, 114524, 114531, - 114538, 114546, 114553, 39485, 46310, 114559, 114565, 114570, 114575, - 14548, 11961, 114580, 114585, 114590, 114596, 114603, 114609, 114618, - 114623, 114631, 114641, 114648, 114658, 114664, 114669, 114675, 114679, - 21979, 114686, 44045, 114699, 114704, 114711, 114717, 114732, 37615, - 75612, 114745, 114749, 114758, 114767, 114774, 114780, 114788, 114794, - 114802, 114811, 114819, 114826, 46430, 114832, 114835, 114839, 114843, - 114847, 11982, 114853, 114860, 114866, 114874, 114879, 114883, 29180, - 114889, 114892, 114900, 114907, 114915, 114928, 114942, 114949, 114955, - 114962, 114968, 39695, 114972, 114978, 114986, 114993, 115001, 115009, - 115015, 39700, 115023, 115029, 115034, 115044, 115050, 115059, 37410, - 42408, 115067, 115072, 115077, 115081, 115086, 115090, 115098, 115103, - 17981, 18806, 49686, 115107, 115112, 39705, 18138, 115116, 115128, - 115133, 115137, 115144, 115153, 115157, 115165, 115171, 115176, 115184, - 115192, 115200, 115208, 115216, 115224, 115235, 115241, 9132, 115246, - 115252, 115257, 115262, 115273, 115282, 115294, 115309, 40017, 115315, - 20104, 39709, 115319, 115326, 115332, 115336, 29317, 115343, 115349, - 115356, 48811, 115365, 115371, 115380, 115386, 115391, 115399, 115405, - 115410, 39719, 115415, 115424, 115433, 113815, 115442, 115449, 115455, - 115461, 115470, 115480, 115486, 115494, 115501, 115505, 39724, 115508, - 39730, 1346, 115513, 115521, 115529, 115539, 115548, 115556, 115563, - 115573, 39741, 115577, 115579, 115583, 115588, 115592, 115596, 115602, - 115607, 115611, 115622, 115627, 115633, 115638, 115647, 115652, 3300, - 115656, 115663, 115667, 115676, 115684, 115692, 115699, 115704, 115709, - 74113, 115713, 115716, 115722, 115730, 115736, 115740, 115745, 115752, - 115757, 115762, 115766, 115773, 115779, 115784, 42439, 115788, 115791, - 115796, 115800, 115805, 115812, 115817, 115821, 47780, 115829, 31207, - 31216, 115835, 115841, 115847, 115852, 115856, 115859, 115869, 115878, - 115883, 115889, 115896, 115902, 115906, 115914, 115919, 42445, 85210, - 115923, 115931, 115938, 115944, 115951, 115956, 115963, 115968, 115972, - 115978, 115983, 69106, 115989, 115995, 10386, 116000, 116005, 116009, - 116014, 116019, 116024, 116028, 116033, 116038, 116044, 116049, 116054, - 116060, 116066, 116071, 116075, 116080, 116085, 116090, 116094, 29316, - 116099, 116104, 116110, 116116, 116122, 116127, 116131, 116136, 116141, - 109915, 116146, 116151, 116156, 116161, 109979, 52813, 116166, 39749, - 116174, 116178, 116186, 116194, 116205, 116210, 116214, 27294, 82608, - 116219, 116225, 116230, 4649, 116240, 116247, 116252, 116260, 116269, - 116274, 116278, 116283, 116287, 116295, 116303, 116310, 77470, 116316, - 116324, 116331, 116342, 116348, 116354, 39759, 116357, 116364, 116372, - 116377, 116381, 33589, 71792, 116387, 116392, 116399, 116404, 10275, - 116408, 116416, 116423, 116430, 116439, 116446, 116452, 116466, 116474, - 6724, 116236, 116480, 116485, 116491, 116495, 116498, 116506, 116513, - 116518, 116531, 116538, 116544, 116548, 116556, 116561, 116568, 116574, - 116579, 72070, 116584, 116587, 116596, 116603, 110187, 116609, 116612, - 116620, 116626, 116635, 116645, 116655, 116664, 116675, 116683, 116694, - 116699, 116703, 116708, 116712, 43191, 116720, 18771, 43200, 116725, - 101706, 101722, 101738, 101754, 101770, 116730, 101802, 101818, 101834, - 101850, 101962, 101978, 116734, 102010, 102026, 116738, 116742, 116746, - 116750, 102266, 102298, 116754, 102330, 116758, 116762, 102474, 102490, - 102506, 102522, 116766, 102586, 102602, 116770, 102730, 102746, 102762, - 102778, 102794, 102810, 102826, 102842, 102858, 102874, 102986, 103002, - 103018, 103034, 103050, 103066, 103082, 103098, 103114, 103130, 116774, - 104922, 105034, 105098, 105114, 105130, 105146, 105162, 105178, 105290, - 105306, 105322, 116778, 105370, 116782, 105402, 105418, 105434, 116786, - 116791, 116796, 116801, 116806, 116811, 116816, 116820, 116824, 116829, - 116834, 116838, 116843, 116848, 116852, 116857, 116862, 116867, 116872, - 116876, 116881, 116886, 116890, 116895, 116899, 116903, 116907, 116911, - 116916, 116920, 116924, 116928, 116932, 116936, 116940, 116944, 116948, - 116952, 116957, 116962, 116967, 116972, 116977, 116982, 116987, 116992, - 116997, 117002, 117006, 117010, 117014, 117018, 117022, 117026, 117031, - 117035, 117040, 117044, 117049, 117054, 117058, 117062, 117067, 117071, - 117075, 117079, 117083, 117087, 117091, 117095, 117099, 117103, 117107, - 117111, 117115, 117119, 117123, 117128, 117133, 117137, 117141, 117145, - 117149, 117153, 117157, 117162, 117166, 117170, 117174, 117178, 117182, - 117186, 117191, 117195, 117200, 117204, 117208, 117212, 117216, 117220, - 117224, 117228, 117232, 117236, 117240, 117244, 117249, 117253, 117257, - 117261, 117265, 117269, 117273, 117277, 117281, 117285, 117289, 117293, - 117298, 117302, 117306, 117311, 117316, 117320, 117324, 117328, 117332, - 117336, 117340, 117344, 117348, 117353, 117357, 117362, 117366, 117371, - 117375, 117380, 117384, 117390, 117395, 117399, 117404, 117408, 117413, - 117417, 117422, 117426, 117431, 1429, 117435, 117439, 3042, 1705, 28453, - 1602, 31143, 117443, 3051, 117447, 1276, 117452, 1218, 117456, 117460, - 117464, 117468, 117472, 117476, 3075, 117480, 117488, 117495, 117502, - 117516, 3079, 8044, 117525, 117533, 117540, 117551, 117560, 117564, - 117571, 117583, 117596, 117609, 117620, 117625, 117632, 117644, 117648, - 3083, 14185, 117658, 117663, 117672, 117682, 117687, 117696, 3087, - 117704, 117708, 117713, 117720, 117726, 117731, 117740, 117748, 117760, - 117770, 1223, 15645, 117783, 117787, 117793, 117807, 117819, 117831, - 117839, 117849, 117858, 117867, 117876, 117884, 117895, 117903, 4657, - 117913, 117924, 117933, 117939, 117954, 117961, 117967, 117972, 43334, - 117977, 3111, 15649, 117981, 117986, 117993, 10206, 118002, 118008, 4695, - 118018, 3116, 39121, 118027, 71682, 118034, 118038, 118044, 118055, - 118061, 118066, 118073, 118079, 118087, 118094, 118100, 118111, 118127, - 118137, 118146, 118157, 118166, 118173, 118179, 118189, 118197, 118203, - 118218, 118224, 118229, 118233, 118240, 118248, 118252, 118255, 118261, - 118268, 118274, 118282, 118291, 118299, 118305, 118314, 52116, 118328, - 118333, 118339, 17732, 118344, 118357, 118369, 118378, 118386, 118393, - 118397, 118401, 118404, 118411, 118418, 118426, 118434, 118443, 118451, - 17631, 118459, 118464, 118468, 118480, 118487, 118494, 118503, 954, - 118513, 118522, 118533, 3137, 118537, 118541, 118547, 118560, 118572, - 118582, 118591, 118603, 32105, 118614, 118622, 118631, 118642, 118653, - 118663, 118673, 118681, 118690, 118698, 13604, 118705, 118709, 118712, - 118717, 118722, 118726, 118732, 1228, 118739, 118743, 14281, 118747, - 118751, 118762, 118771, 118779, 118788, 118796, 118812, 118823, 118832, - 118840, 118852, 118863, 118879, 118889, 118910, 118924, 118937, 118945, - 118952, 8090, 118965, 118970, 118976, 6733, 118982, 118985, 118992, - 119002, 9266, 119009, 119014, 119019, 119026, 119034, 119042, 119048, - 119053, 119059, 119063, 119071, 119080, 119088, 119093, 119102, 119109, - 11418, 11427, 119115, 119126, 119132, 119137, 119143, 3153, 3158, 119149, - 1063, 119155, 119162, 119169, 119182, 119192, 119197, 2324, 87, 119205, - 119212, 119217, 119225, 119235, 119244, 119250, 119259, 119267, 119277, - 119281, 119285, 119290, 119294, 119306, 3181, 119314, 119322, 119327, - 119338, 119349, 119361, 119372, 119382, 119391, 26013, 119396, 119402, - 119407, 119417, 119427, 119432, 34323, 119438, 119443, 119452, 26035, - 119456, 26046, 119461, 4783, 8, 119468, 119477, 119484, 119491, 119497, - 119502, 119506, 119512, 34353, 119517, 119522, 72367, 119527, 119532, - 119538, 119544, 119552, 119557, 119565, 119573, 119582, 119589, 119595, - 119602, 119608, 119615, 119620, 47649, 52010, 119626, 119636, 1822, 32, - 119643, 119648, 119661, 119666, 119674, 119679, 119685, 3207, 30884, - 3221, 119690, 119698, 119705, 119710, 119715, 119724, 4340, 4351, 73711, - 119732, 119736, 1629, 1862, 119741, 119746, 119753, 34774, 1866, 331, - 119760, 119766, 119771, 3229, 119775, 119780, 119787, 1870, 119792, - 119798, 119803, 119815, 6978, 119825, 119832, 1877, 119838, 119843, - 119850, 119857, 119872, 119879, 119890, 119895, 119903, 2772, 119907, - 119919, 119924, 119928, 119934, 34195, 2329, 119938, 119949, 119953, - 119957, 119963, 119967, 119976, 119980, 119991, 119995, 2375, 38938, - 119999, 120009, 120017, 3320, 120023, 120032, 120040, 10752, 120045, - 120053, 120058, 120062, 120071, 120078, 120084, 3290, 17796, 120088, - 120101, 44058, 120119, 120124, 120132, 120140, 120150, 11759, 15773, - 120162, 120175, 120182, 120192, 120206, 120213, 120229, 120236, 120242, - 26093, 14980, 120249, 120256, 120266, 120275, 52812, 120287, 120295, - 52947, 120302, 120305, 120311, 120317, 120323, 120329, 120335, 120342, - 120349, 120355, 120361, 120367, 120373, 120379, 120385, 120391, 120397, - 120403, 120409, 120415, 120421, 120427, 120433, 120439, 120445, 120451, - 120457, 120463, 120469, 120475, 120481, 120487, 120493, 120499, 120505, - 120511, 120517, 120523, 120529, 120535, 120541, 120547, 120553, 120559, - 120565, 120571, 120577, 120583, 120589, 120595, 120601, 120607, 120613, - 120619, 120625, 120631, 120637, 120643, 120649, 120655, 120662, 120668, - 120675, 120682, 120688, 120695, 120702, 120708, 120714, 120720, 120726, - 120732, 120738, 120744, 120750, 120756, 120762, 120768, 120774, 120780, - 120786, 120792, 3304, 10720, 120798, 120808, 120814, 120822, 120826, - 117716, 3308, 120830, 114044, 25758, 4701, 4265, 120834, 3314, 120838, - 120848, 120854, 120860, 120866, 120872, 120878, 120884, 120890, 120896, - 120902, 120908, 120914, 120920, 120926, 120932, 120938, 120944, 120950, - 120956, 120962, 120968, 120974, 120980, 120986, 120992, 120998, 121005, - 121012, 121018, 121024, 121030, 121036, 121042, 121048, 1233, 121054, - 121059, 121064, 121069, 121074, 121079, 121084, 121089, 121094, 121098, - 121102, 121106, 121110, 121114, 121118, 121122, 121126, 121130, 121136, - 121142, 121148, 121154, 121158, 121162, 121166, 121170, 121174, 121178, - 121182, 121186, 121190, 121195, 121200, 121205, 121210, 121215, 121220, - 121225, 121230, 121235, 121240, 121245, 121250, 121255, 121260, 121265, - 121270, 121275, 121280, 121285, 121290, 121295, 121300, 121305, 121310, - 121315, 121320, 121325, 121330, 121335, 121340, 121345, 121350, 121355, - 121360, 121365, 121370, 121375, 121380, 121385, 121390, 121395, 121400, - 121405, 121410, 121415, 121420, 121425, 121430, 121435, 121440, 121445, - 121450, 121455, 121460, 121465, 121470, 121475, 121480, 121485, 121490, - 121495, 121500, 121505, 121510, 121515, 121520, 121525, 121530, 121535, - 121540, 121545, 121550, 121555, 121560, 121565, 121570, 121575, 121580, - 121585, 121590, 121595, 121600, 121605, 121610, 121615, 121620, 121625, - 121630, 121635, 121640, 121645, 121650, 121655, 121660, 121665, 121670, - 121675, 121680, 121685, 121690, 121695, 121700, 121705, 121710, 121715, - 121720, 121725, 121730, 121735, 121740, 121745, 121750, 121755, 121760, - 121765, 121770, 121775, 121780, 121785, 121790, 121795, 121800, 121805, - 121810, 121815, 121820, 121825, 121830, 121835, 121840, 121845, 121850, - 121855, 121860, 121865, 121870, 121875, 121880, 121885, 121890, 121895, - 121900, 121905, 121910, 121915, 121920, 121925, 121930, 121935, 121940, - 121945, 121950, 121955, 121960, 121965, 121970, 121975, 121980, 121985, - 121990, 121995, 122000, 122005, 122010, 122015, 122020, 122025, 122030, - 122035, 122040, 122045, 122050, 122055, 122060, 122065, 122070, 122075, - 122080, 122086, 122091, 122096, 122101, 122106, 122111, 122116, 122121, - 122127, 122132, 122137, 122142, 122147, 122152, 122157, 122162, 122167, - 122172, 122177, 122182, 122187, 122192, 122197, 122202, 122207, 122212, - 122217, 122222, 122227, 122232, 122237, 122242, 122247, 122252, 122257, - 122262, 122267, 122272, 122277, 122282, 122287, 122296, 122301, 122310, - 122315, 122324, 122329, 122338, 122343, 122352, 122357, 122366, 122371, - 122380, 122385, 122394, 122399, 122404, 122413, 122417, 122426, 122431, - 122440, 122445, 122454, 122459, 122468, 122473, 122482, 122487, 122496, - 122501, 122510, 122515, 122524, 122529, 122538, 122543, 122552, 122557, - 122562, 122567, 122572, 122577, 122582, 122587, 122591, 122596, 122601, - 122606, 122611, 122616, 122621, 122627, 122632, 122637, 122642, 122648, - 122652, 122657, 122663, 122668, 122673, 122678, 122683, 122688, 122693, - 122698, 122703, 122708, 122713, 122719, 122724, 122729, 122734, 122740, - 122745, 122750, 122755, 122760, 122766, 122771, 122776, 122781, 122786, - 122791, 122797, 122802, 122807, 122812, 122817, 122822, 122827, 122832, - 122837, 122842, 122847, 122852, 122857, 122862, 122867, 122872, 122877, - 122882, 122887, 122892, 122897, 122902, 122907, 122912, 122918, 122924, - 122930, 122935, 122940, 122945, 122950, 122956, 122962, 122968, 122973, - 122978, 122983, 122989, 122994, 122999, 123004, 123009, 123014, 123019, - 123024, 123029, 123034, 123039, 123044, 123049, 123054, 123059, 123064, - 123069, 123075, 123081, 123087, 123092, 123097, 123102, 123107, 123113, - 123119, 123125, 123130, 123135, 123140, 123145, 123150, 123155, 123160, - 123165, 123170, 19463, 123175, 123181, 123186, 123191, 123196, 123201, - 123206, 123212, 123217, 123222, 123227, 123232, 123237, 123243, 123248, - 123253, 123258, 123263, 123268, 123273, 123278, 123283, 123288, 123293, - 123298, 123303, 123308, 123313, 123318, 123323, 123328, 123333, 123338, - 123343, 123348, 123353, 123359, 123364, 123369, 123374, 123379, 123384, - 123389, 123394, 123399, 123404, 123409, 123414, 123419, 123424, 123429, - 123434, 123439, 123444, 123449, 123454, 123459, 123464, 123469, 123474, - 123479, 123484, 123489, 123494, 123499, 123504, 123509, 123514, 123519, - 123524, 123529, 123534, 123539, 123544, 123549, 123554, 123559, 123565, - 123570, 123575, 123580, 123585, 123590, 123595, 123600, 123605, 123610, - 123615, 123620, 123626, 123631, 123637, 123642, 123647, 123652, 123657, - 123662, 123667, 123673, 123678, 123683, 123689, 123694, 123699, 123704, - 123709, 123714, 123720, 123726, 123731, 123736, 14614, 123741, 123746, - 123751, 123756, 123761, 123766, 123771, 123776, 123781, 123786, 123791, - 123796, 123801, 123806, 123811, 123816, 123821, 123826, 123831, 123836, - 123841, 123846, 123851, 123856, 123861, 123866, 123871, 123876, 123881, - 123886, 123891, 123896, 123901, 123906, 123911, 123916, 123921, 123926, - 123931, 123936, 123941, 123946, 123951, 123956, 123961, 123966, 123971, - 123976, 123981, 123986, 123991, 123996, 124001, 124006, 124011, 124016, - 124021, 124026, 124031, 124036, 124041, 124046, 124051, 124056, 124061, - 124067, 124072, 124077, 124082, 124087, 124093, 124098, 124103, 124108, - 124113, 124118, 124123, 124129, 124134, 124139, 124144, 124149, 124154, - 124160, 124165, 124170, 124175, 124180, 124185, 124191, 124196, 124201, - 124206, 124211, 124216, 124222, 124228, 124233, 124238, 124243, 124249, - 124255, 124261, 124266, 124271, 124277, 124283, 124288, 124294, 124300, - 124306, 124311, 124316, 124322, 124327, 124333, 124338, 124344, 124353, - 124358, 124363, 124369, 124374, 124380, 124385, 124390, 124395, 124400, - 124405, 124410, 124415, 124420, 124425, 124430, 124435, 124440, 124445, - 124450, 124455, 124460, 124465, 124470, 124475, 124480, 124485, 124490, - 124495, 124500, 124505, 124510, 124515, 124520, 124525, 124530, 124535, - 124541, 124547, 124553, 124558, 124563, 124568, 124573, 124578, 124583, - 124588, 124593, 124598, 124603, 124608, 124613, 124618, 124623, 124628, - 124633, 124638, 124643, 124648, 124653, 124659, 124665, 124670, 124676, - 124681, 124686, 124692, 124697, 124703, 124708, 124714, 124719, 124725, - 124730, 124736, 124741, 124746, 124751, 124756, 124761, 124766, 124771, - 120849, 120855, 120861, 120867, 124777, 120873, 120879, 124783, 120885, - 120891, 120897, 120903, 120909, 120915, 120921, 120927, 120933, 124789, - 120939, 120945, 120951, 124795, 120957, 120963, 120969, 120975, 124801, - 120981, 120987, 120993, 121013, 124807, 124813, 121019, 124819, 121025, - 121031, 121037, 121043, 121049, 124825, 3331, 3336, 124830, 3351, 3356, - 3361, 124835, 124838, 124844, 124850, 124857, 124862, 124867, 2380, + 113, 118, 124, 129, 137, 146, 157, 160, 165, 170, 176, 180, 189, 195, + 201, 207, 216, 224, 229, 237, 177, 244, 247, 253, 254, 262, 268, 273, + 277, 282, 289, 296, 306, 311, 317, 322, 325, 331, 337, 343, 348, 351, + 359, 365, 375, 380, 385, 390, 392, 401, 408, 415, 417, 419, 427, 341, + 436, 438, 441, 449, 454, 455, 462, 464, 472, 478, 484, 491, 496, 503, + 507, 512, 519, 524, 527, 531, 537, 542, 547, 557, 565, 572, 575, 583, + 591, 600, 603, 613, 620, 625, 629, 633, 637, 642, 645, 652, 659, 666, + 671, 676, 685, 687, 696, 700, 707, 715, 719, 727, 281, 736, 749, 753, + 758, 762, 765, 767, 777, 781, 787, 791, 796, 800, 806, 811, 820, 825, + 829, 832, 838, 846, 794, 854, 863, 872, 880, 886, 891, 902, 907, 915, + 918, 925, 928, 938, 943, 949, 953, 957, 964, 967, 974, 977, 657, 980, + 983, 986, 990, 995, 1004, 1010, 1014, 1018, 1021, 1024, 1030, 1035, 1039, + 1044, 602, 1049, 1055, 1064, 1067, 1076, 1081, 1086, 1092, 1097, 1102, + 1107, 1111, 1116, 1122, 1127, 1132, 1136, 1142, 1147, 1152, 1157, 1161, + 1166, 1171, 1176, 1182, 1188, 1194, 1199, 1203, 1208, 1213, 1218, 1222, + 1227, 1232, 1237, 1242, 1077, 1082, 1087, 1093, 1098, 1246, 1108, 1252, + 1257, 1262, 1269, 1273, 1276, 1285, 1112, 1289, 1117, 1123, 1128, 1293, + 1298, 1303, 1307, 1311, 1317, 1321, 1133, 1324, 1326, 1143, 1331, 1335, + 1148, 1341, 1153, 1345, 1349, 1356, 1158, 1360, 1368, 1373, 1377, 1380, + 1384, 1162, 1167, 1389, 1395, 1172, 1407, 1413, 1419, 1425, 1177, 1189, + 1195, 1429, 1433, 1437, 1440, 1200, 1444, 1446, 1451, 1456, 1462, 1467, + 1472, 1476, 1481, 1486, 1491, 1496, 1502, 1507, 1512, 1518, 1524, 1529, + 1533, 1538, 1543, 1548, 1553, 1558, 1562, 1570, 1575, 1579, 1584, 1589, + 1594, 1599, 1603, 1606, 1613, 1618, 1623, 1628, 1633, 1639, 1644, 1648, + 1204, 1651, 1657, 1662, 1667, 1672, 1209, 1676, 1680, 1687, 1694, 1214, + 1699, 1704, 1219, 1708, 1710, 1715, 1726, 1732, 1223, 1737, 1746, 1228, + 1751, 1757, 1762, 1767, 1777, 1786, 1794, 1233, 1804, 1813, 1822, 1827, + 1831, 1834, 1843, 1853, 1862, 1867, 1871, 1875, 1879, 1882, 1886, 1891, + 1238, 1901, 1243, 1905, 1907, 1913, 1919, 1925, 1931, 1937, 1943, 1949, + 1955, 1960, 1966, 1972, 1978, 1984, 1990, 1996, 2002, 2008, 2014, 2019, + 2024, 2029, 2034, 2039, 2044, 2049, 2054, 2059, 2064, 2070, 2075, 2081, + 2086, 2092, 2098, 2103, 2109, 2115, 2121, 2127, 2132, 2137, 2139, 2140, + 2144, 2148, 2153, 2157, 2161, 2165, 2170, 2174, 2177, 2182, 2186, 2191, + 2195, 2199, 2204, 2208, 2211, 2215, 2221, 2235, 2239, 2243, 2247, 2250, + 2255, 2259, 2263, 2266, 2270, 2275, 2280, 2285, 2290, 2294, 2298, 2302, + 2306, 2310, 2315, 2319, 2324, 2328, 2333, 2339, 2346, 2352, 2357, 2362, + 2367, 2373, 2378, 2384, 2389, 2394, 2399, 2404, 2409, 2412, 2414, 1094, + 2418, 2425, 2433, 2443, 2452, 2466, 2470, 2474, 2479, 2492, 2500, 2503, + 2507, 2510, 2515, 2519, 2522, 2526, 2530, 2535, 1721, 2540, 2544, 2547, + 2551, 2557, 2564, 2571, 2577, 2582, 2587, 2593, 2599, 2604, 2609, 2614, + 2619, 2624, 2629, 2554, 2634, 1712, 2636, 2642, 2646, 2651, 2655, 2659, + 1609, 1734, 2664, 2668, 2672, 2675, 2680, 2685, 2690, 2695, 2699, 2706, + 2711, 2714, 2718, 2722, 2729, 2735, 2739, 2745, 2749, 2753, 2758, 2765, + 2770, 2775, 2782, 2788, 2794, 2800, 2821, 2835, 2852, 2867, 2883, 2900, + 2915, 2924, 2929, 2933, 2938, 2943, 2947, 2959, 2966, 2972, 2342, 2978, + 2985, 2991, 2995, 2998, 3005, 3011, 3016, 3020, 3025, 3029, 3033, 2162, + 3037, 3042, 3047, 3051, 3056, 3064, 3068, 3075, 3080, 3084, 3088, 3092, + 3097, 3102, 3107, 3111, 3116, 3121, 3125, 3130, 3135, 3139, 3142, 3146, + 3150, 3158, 3163, 3167, 3171, 3177, 3186, 3190, 3194, 3200, 3205, 3212, + 3216, 3226, 3230, 3234, 3239, 3243, 3248, 3254, 3259, 3263, 3267, 3271, + 2567, 3279, 3284, 3290, 3295, 3299, 3304, 3309, 3313, 3319, 3324, 2166, + 3330, 3336, 3341, 3346, 3351, 3356, 3361, 3366, 3371, 3376, 3381, 3386, + 3391, 3396, 3401, 3406, 3412, 3417, 1109, 101, 3423, 3427, 3431, 3435, + 3440, 3444, 3448, 3454, 3459, 3463, 3467, 3472, 3477, 3481, 3486, 3490, + 3493, 3497, 3502, 3506, 3511, 3515, 3518, 3520, 3524, 3528, 3533, 3537, + 3540, 3553, 3557, 3561, 3565, 3570, 3574, 3578, 3581, 3585, 3589, 3594, + 3598, 3603, 3608, 3613, 3617, 3624, 3629, 3632, 3638, 3641, 3646, 3652, + 3656, 3660, 3663, 3668, 3672, 3677, 3681, 3685, 3688, 3694, 3699, 3704, + 3710, 3715, 3720, 3726, 3732, 3737, 3742, 3747, 3752, 3755, 988, 644, + 3761, 3764, 3769, 3773, 3777, 3781, 3785, 3788, 3792, 3797, 3802, 3806, + 3811, 3815, 3820, 3824, 3828, 3832, 3838, 3844, 3847, 3850, 150, 3856, + 3861, 3870, 3878, 3887, 3897, 3904, 3910, 3917, 3922, 3926, 3930, 3938, + 3945, 3950, 3955, 3962, 3967, 3971, 3981, 3985, 3989, 3994, 3999, 4009, + 2178, 4014, 4018, 4021, 4027, 4032, 4038, 4044, 4049, 4056, 4060, 4064, + 4068, 4073, 4078, 4083, 4088, 4093, 4098, 634, 601, 1270, 4103, 4110, + 4117, 4123, 4128, 4135, 4142, 4147, 4153, 4159, 4164, 4168, 4174, 4181, + 4186, 4190, 4194, 2187, 4200, 4208, 4214, 4222, 858, 4228, 4236, 4247, + 4251, 4261, 4267, 4272, 4277, 4282, 4287, 2192, 4292, 4297, 4312, 4318, + 4325, 4336, 4346, 4352, 4357, 4363, 4369, 4372, 4375, 4379, 4384, 4387, + 4394, 4403, 4408, 4412, 4416, 4420, 4424, 4429, 4435, 4446, 4450, 3498, + 4455, 4467, 4473, 4481, 4485, 4490, 4497, 4502, 4507, 4512, 1478, 4517, + 4520, 4523, 4527, 4530, 4536, 4540, 4554, 4558, 4561, 4565, 4571, 4577, + 4582, 4586, 4590, 4596, 4607, 4613, 4618, 4624, 4628, 4636, 4648, 4658, + 4664, 4669, 4678, 4686, 4697, 4704, 4710, 4716, 4720, 4726, 4735, 4744, + 4749, 4755, 4759, 4768, 4773, 4777, 4782, 4786, 4794, 4800, 4804, 4811, + 4816, 4820, 4826, 4832, 4839, 2200, 4848, 4859, 4869, 4878, 4883, 4888, + 4893, 4898, 1286, 4903, 4905, 4910, 4916, 4921, 4926, 4931, 4936, 4941, + 4946, 4952, 4957, 4963, 4968, 4973, 4978, 4984, 4989, 4994, 4999, 5004, + 5010, 5015, 5021, 5026, 5031, 5036, 5041, 5046, 5051, 5057, 5062, 5067, + 335, 384, 5072, 5078, 5081, 5085, 5089, 5096, 5102, 5107, 5111, 5115, + 5118, 5121, 5125, 5129, 5132, 5136, 5140, 5144, 5149, 5153, 5157, 5163, + 5172, 4829, 5177, 5181, 5184, 5189, 5194, 5199, 5204, 5209, 5214, 5219, + 5224, 5229, 5234, 5238, 5243, 5248, 5253, 5258, 5263, 5268, 5273, 5278, + 5283, 5288, 5292, 5297, 5302, 5307, 5312, 5317, 5322, 5327, 5332, 5337, + 5342, 5346, 5351, 5356, 5361, 5366, 5371, 5376, 5381, 5386, 5391, 5396, + 5400, 5405, 5410, 5415, 5420, 5425, 5430, 5435, 5440, 5445, 5450, 5454, + 5459, 5464, 5469, 5474, 5479, 5484, 5489, 5494, 5499, 5504, 5508, 5513, + 5518, 5523, 5528, 5533, 5538, 5543, 5548, 5553, 5558, 5562, 5567, 5572, + 5577, 5582, 5588, 5594, 5600, 5606, 5612, 5618, 5624, 5629, 5635, 5641, + 5647, 5653, 5659, 5665, 5671, 5677, 5683, 5689, 5694, 5700, 5706, 5712, + 5718, 5724, 5730, 5736, 5742, 5748, 5754, 5759, 5765, 5771, 5777, 5783, + 5789, 5795, 5801, 5807, 5813, 5819, 5824, 5830, 5836, 5842, 5848, 5854, + 5860, 5866, 5872, 5878, 5884, 5889, 5895, 5901, 5907, 5913, 5919, 5925, + 5931, 5937, 5943, 5949, 5954, 5958, 5964, 5970, 5976, 5982, 5988, 5994, + 6000, 6006, 6012, 6018, 6023, 6029, 6035, 6041, 6047, 6053, 6059, 6065, + 6071, 6077, 6083, 6088, 6094, 6100, 6106, 6112, 6118, 6124, 6130, 6136, + 6142, 6148, 6153, 6159, 6165, 6171, 6177, 6183, 6189, 6195, 6201, 6207, + 6213, 6218, 6224, 6230, 6236, 6242, 6248, 6254, 6260, 6266, 6272, 6278, + 6283, 6289, 6295, 6301, 6307, 6313, 6319, 6325, 6331, 6337, 6343, 6348, + 6354, 6360, 6366, 6372, 6378, 6384, 6390, 6396, 6402, 6408, 6413, 6419, + 6425, 6431, 6437, 6443, 6449, 6455, 6461, 6467, 6473, 6478, 6484, 6490, + 6496, 6502, 6508, 6514, 6520, 6526, 6532, 6538, 6543, 6549, 6555, 6561, + 6567, 6573, 6579, 6585, 6591, 6597, 6603, 6608, 6612, 6615, 6623, 6630, + 6633, 6637, 6650, 6654, 6658, 6662, 6665, 6669, 6674, 6678, 6687, 6691, + 6697, 6704, 6715, 6723, 6730, 6736, 6740, 6748, 6757, 6763, 6767, 6779, + 6784, 6787, 6792, 6796, 6806, 6814, 6822, 6830, 6836, 6840, 6850, 6860, + 6868, 6875, 6882, 6888, 6894, 6901, 6905, 6912, 6922, 6932, 6940, 6947, + 6952, 6956, 6960, 6968, 6972, 6982, 6987, 6994, 7001, 7009, 7019, 7024, + 7028, 7033, 7037, 7044, 7049, 7063, 7068, 7073, 7080, 3774, 7089, 7093, + 7097, 7102, 7106, 7110, 7113, 7118, 7123, 7132, 7138, 7144, 7149, 7155, + 7159, 7170, 7180, 7195, 7210, 7225, 7240, 7255, 7270, 7285, 7300, 7315, + 7330, 7345, 7360, 7375, 7390, 7405, 7420, 7435, 7450, 7465, 7480, 7495, + 7510, 7525, 7540, 7555, 7570, 7585, 7600, 7615, 7630, 7645, 7660, 7675, + 7690, 7705, 7720, 7735, 7750, 7765, 7780, 7795, 7810, 7825, 7840, 7855, + 7870, 7885, 7900, 7915, 7924, 7933, 7938, 7944, 7954, 7958, 7962, 7967, + 7972, 7977, 7985, 7989, 7992, 7996, 3221, 7999, 8004, 340, 545, 8010, + 8013, 8021, 8025, 8029, 8032, 8036, 8042, 8046, 8054, 8060, 8065, 8072, + 8080, 8087, 8093, 8098, 8105, 8111, 8120, 8128, 8132, 8137, 8145, 8157, + 8168, 8175, 8186, 8190, 8194, 8198, 8201, 8207, 3525, 8211, 8213, 8219, + 8224, 8229, 8234, 8240, 8245, 8250, 8255, 8260, 8266, 8271, 8276, 8282, + 8287, 8293, 8298, 8304, 8309, 8315, 8320, 8325, 8330, 8335, 8340, 8346, + 8351, 8356, 8361, 8367, 8373, 8379, 8385, 8391, 8397, 8403, 8409, 8415, + 8421, 8427, 8433, 8438, 8443, 8448, 8453, 8458, 8463, 8468, 8473, 8479, + 8485, 8490, 8496, 8502, 8508, 8513, 8518, 8523, 8528, 8534, 8540, 8545, + 8550, 8555, 8560, 8565, 8571, 8576, 8582, 8588, 8594, 8600, 8606, 8612, + 8618, 8624, 8630, 2209, 8031, 8635, 8639, 8647, 8651, 8654, 8657, 8663, + 8670, 1113, 8673, 8677, 8685, 8690, 8695, 8686, 8700, 2236, 8704, 8710, + 8716, 8721, 8726, 8733, 8741, 8746, 8750, 8753, 8757, 8763, 8769, 8773, + 1659, 627, 8776, 8780, 8785, 8791, 8796, 8800, 8803, 8807, 8813, 8818, + 8822, 8829, 8833, 8837, 8841, 793, 8661, 2260, 8844, 8852, 8859, 8866, + 8872, 8879, 8887, 8894, 8905, 8912, 8918, 8930, 1129, 1294, 1299, 8941, + 8945, 1304, 8949, 8953, 8962, 8970, 8974, 8983, 8989, 8995, 9000, 9004, + 9010, 9015, 9023, 9030, 2920, 9037, 9043, 9047, 9056, 9065, 9074, 9083, + 9089, 9094, 9099, 9110, 9119, 9131, 9136, 9144, 2295, 9148, 9150, 9155, + 9159, 9168, 9176, 1308, 168, 3816, 3821, 9182, 9186, 9195, 9201, 9206, + 9209, 9213, 9217, 9222, 9227, 9232, 9237, 9241, 9250, 9256, 2307, 9260, + 2912, 9264, 9272, 9276, 9280, 2311, 9284, 9288, 9292, 9296, 9300, 2316, + 9304, 9309, 9316, 9322, 9329, 9335, 9338, 9234, 9340, 9348, 9356, 9364, + 9367, 9372, 2329, 9377, 8697, 9380, 9382, 9387, 9392, 9397, 9402, 9407, + 9412, 9417, 9422, 9427, 9432, 9438, 9443, 9448, 9453, 9459, 9464, 9469, + 9474, 9479, 9484, 9489, 9495, 9500, 9505, 9510, 9515, 9520, 9525, 9530, + 9535, 9540, 9545, 9550, 9555, 9560, 9565, 9570, 9575, 9580, 9586, 9592, + 9597, 9602, 9607, 9612, 9617, 2340, 2347, 2353, 9622, 9630, 9636, 9644, + 2379, 2385, 9652, 2390, 2395, 2400, 2405, 9656, 9660, 9665, 9669, 9673, + 9677, 9682, 9686, 9691, 9695, 9698, 9701, 9707, 9714, 9720, 9727, 9733, + 9740, 9746, 9753, 9759, 9765, 9774, 9780, 9784, 9788, 9792, 9796, 9801, + 9805, 9810, 9814, 9820, 9824, 9829, 9836, 9847, 9855, 9865, 9871, 9881, + 9890, 9897, 9902, 9906, 9917, 9927, 9940, 9951, 9964, 9975, 9987, 9999, + 10011, 10022, 10035, 10048, 10055, 10061, 10072, 10082, 10096, 10103, + 10109, 10118, 10126, 10130, 10135, 10139, 10146, 10154, 10161, 10165, + 10171, 10175, 10181, 10191, 10195, 10200, 10205, 10212, 10218, 8874, + 10228, 10232, 10239, 10245, 10252, 10259, 10263, 10266, 10272, 10276, + 10281, 10286, 10291, 10295, 10301, 10309, 10316, 10322, 10326, 10329, + 10335, 10345, 10349, 10355, 10360, 10364, 10369, 10373, 10379, 10385, + 10390, 10396, 10401, 10406, 10411, 2232, 10416, 10418, 10423, 10431, + 10440, 10444, 10450, 10455, 10460, 10465, 10470, 10476, 10481, 10486, + 4592, 10491, 10496, 10500, 10506, 10511, 10517, 10522, 10527, 10533, + 10538, 10445, 10544, 10548, 10555, 10561, 10566, 10570, 7059, 10575, + 10584, 10589, 10594, 9312, 9319, 10599, 3094, 10603, 10608, 10613, 10618, + 10456, 10622, 10627, 10632, 10461, 10636, 10466, 10641, 10648, 10655, + 10661, 10668, 10674, 10680, 10685, 10692, 10697, 10702, 10707, 10713, + 10471, 10477, 10719, 10724, 10730, 10735, 10740, 10748, 1364, 10753, + 1037, 10756, 10764, 10780, 10796, 10811, 10819, 10825, 10831, 10840, + 10848, 10856, 10864, 10872, 10880, 10888, 10896, 10904, 10913, 10922, + 10930, 10939, 10948, 10957, 10966, 10975, 10984, 10993, 11002, 11011, + 11020, 11028, 11033, 11037, 11043, 11051, 11058, 11073, 11090, 11109, + 11118, 11126, 11141, 11152, 11160, 11166, 11176, 11186, 11194, 11200, + 11212, 11221, 11229, 11236, 11243, 11250, 11256, 11261, 11271, 11277, + 11285, 11295, 11302, 11312, 11322, 11332, 11340, 11347, 11356, 11366, + 11380, 11395, 11404, 11412, 11417, 11421, 11431, 11441, 11453, 11462, + 11468, 11473, 11483, 11493, 11503, 11508, 11512, 11522, 11531, 11536, + 11552, 11569, 11579, 11584, 11595, 11608, 11619, 11627, 11640, 11652, + 11660, 11665, 11669, 11675, 11680, 11688, 11696, 11703, 11714, 11719, + 11727, 11737, 11743, 11747, 11750, 11754, 11760, 11767, 11771, 11779, + 11788, 11796, 11803, 11808, 11812, 11817, 11821, 11825, 11833, 11848, + 11864, 11870, 11878, 11887, 11895, 11901, 11905, 11912, 11923, 11927, + 11930, 11941, 11947, 11952, 10487, 11960, 11966, 11973, 11979, 11984, + 11991, 11998, 12005, 12012, 12019, 12026, 12033, 12040, 12047, 12054, + 12061, 12068, 12075, 12082, 12089, 12094, 11086, 12099, 12105, 12112, + 12119, 12124, 12131, 12140, 12144, 12151, 12163, 12167, 12173, 12178, + 12183, 12188, 12193, 12198, 12203, 12206, 12210, 11437, 12214, 12218, + 12224, 12230, 12235, 12241, 12246, 12251, 12257, 12262, 12267, 10208, + 12272, 12276, 12280, 12284, 12289, 12294, 12299, 12307, 12313, 12318, + 12322, 12326, 12333, 12338, 12346, 12353, 12358, 12362, 12365, 12371, + 12378, 12382, 12385, 12390, 12394, 4631, 12400, 12409, 46, 12417, 12423, + 12428, 12433, 12441, 12448, 12453, 6977, 12459, 12465, 12470, 12474, + 12477, 12483, 12491, 12498, 12513, 12532, 12544, 12557, 12570, 12583, + 12597, 12610, 12625, 12632, 10492, 12638, 12652, 12657, 12663, 12668, + 12676, 12681, 9052, 12686, 12689, 12697, 12704, 12709, 12713, 12719, + 12723, 12728, 12733, 12738, 12743, 12748, 12753, 3099, 11174, 12758, + 12762, 12768, 12774, 12779, 12785, 12790, 10501, 12796, 12802, 12807, + 12812, 12820, 12826, 12839, 12847, 12854, 12860, 10507, 12866, 12874, + 12882, 12889, 12902, 12915, 12927, 12937, 12949, 12977, 12985, 12994, + 13001, 13013, 13020, 13030, 13039, 13047, 13054, 13059, 13065, 10512, + 13070, 13076, 13081, 13086, 13091, 10518, 13096, 13099, 13106, 13112, + 13126, 13139, 13150, 9840, 13161, 13167, 13176, 13184, 13191, 13197, + 13208, 13214, 13219, 13227, 4119, 13233, 13238, 12505, 13244, 13251, + 13256, 10523, 13262, 13267, 13274, 13280, 13286, 13291, 13299, 13307, + 13314, 13318, 13330, 13344, 13354, 13359, 13363, 13374, 13380, 13385, + 13390, 10528, 13394, 10534, 13399, 13402, 13407, 13419, 13426, 13431, + 13435, 13443, 13448, 13452, 13457, 13461, 13468, 13474, 10539, 10446, + 13481, 3104, 17, 13488, 13493, 13497, 13501, 13507, 13515, 13525, 13530, + 13535, 13542, 13549, 13553, 13564, 13574, 13583, 13592, 13604, 13609, + 13613, 13621, 13635, 13639, 13642, 13646, 13654, 13661, 13669, 13673, + 13684, 13692, 13696, 13703, 13708, 13712, 13718, 13723, 13729, 13734, + 13739, 13743, 13749, 13754, 13765, 13769, 13772, 13778, 13785, 13791, + 13796, 13802, 13808, 13815, 13826, 13836, 13846, 13855, 13862, 13871, + 13875, 10549, 10556, 10562, 10567, 13881, 13887, 13893, 13898, 13904, + 10571, 13910, 13913, 13920, 13925, 13931, 13936, 13951, 13967, 13982, + 13990, 13995, 14002, 14008, 14012, 14017, 14022, 14027, 14032, 14037, + 14042, 14047, 14052, 14057, 1567, 388, 14062, 14070, 14077, 14083, 14088, + 14093, 10576, 14095, 14099, 14104, 14108, 14118, 14123, 14127, 14130, + 14139, 14143, 14146, 14153, 10585, 14158, 14161, 14169, 14176, 14184, + 14188, 14194, 14202, 14206, 14213, 14222, 14229, 14225, 14236, 14240, + 14246, 14250, 14254, 14258, 14264, 14270, 14280, 14288, 14295, 14299, + 14307, 14312, 14316, 14323, 14328, 14335, 14339, 14344, 14349, 14353, + 14360, 14366, 14374, 14380, 14385, 14395, 14402, 14407, 14412, 14416, + 14420, 14428, 4461, 14436, 14441, 10590, 14445, 14452, 14456, 14459, + 14467, 14474, 14478, 14481, 6832, 14485, 14490, 14495, 14499, 14510, + 14520, 14525, 14531, 14536, 14545, 14549, 14552, 14560, 14565, 14570, + 14577, 14582, 4851, 10595, 14587, 14591, 14598, 14603, 14608, 14613, + 1664, 7007, 14618, 14623, 14628, 14633, 14639, 14644, 14650, 14655, + 14660, 14665, 14670, 14675, 14680, 14685, 14690, 14695, 14700, 14705, + 14710, 14715, 14720, 14725, 14730, 14736, 14741, 14746, 14751, 14756, + 14761, 14767, 14772, 14777, 14783, 14788, 14794, 14799, 14805, 14810, + 14815, 14820, 14825, 14831, 14836, 14841, 14846, 14854, 1008, 112, 14860, + 14864, 14869, 14874, 14878, 14882, 14886, 14891, 14895, 14900, 14904, + 14907, 14911, 14915, 14921, 14926, 14936, 14942, 14950, 14956, 14960, + 14964, 14971, 14979, 14988, 14999, 15009, 15016, 15023, 15027, 15036, + 15045, 15053, 15060, 15069, 15078, 15087, 15096, 15106, 15116, 15126, + 15136, 15146, 15155, 15165, 15175, 15185, 15195, 15205, 15215, 15225, + 15234, 15244, 15254, 15264, 15274, 15284, 15294, 15303, 15313, 15323, + 15333, 15343, 15353, 15363, 15373, 15383, 15393, 15402, 15412, 15422, + 15432, 15442, 15452, 15462, 15472, 15482, 15492, 15502, 15511, 15517, + 1138, 15521, 15524, 15528, 15533, 15540, 15546, 15551, 15555, 15560, + 15569, 15578, 15586, 15591, 15595, 15599, 15605, 15610, 15616, 10604, + 15621, 15626, 15635, 15640, 10614, 15645, 11424, 11434, 11444, 15648, + 15654, 15662, 10619, 15669, 15673, 15677, 15682, 15686, 15696, 15702, + 15708, 15713, 15722, 15730, 15737, 15744, 15749, 15756, 15761, 15765, + 15768, 15779, 15789, 15802, 15811, 15819, 15830, 15842, 15852, 15862, + 15867, 15871, 15876, 15881, 15885, 15891, 15899, 15906, 15917, 15922, + 15932, 15941, 15945, 15948, 15955, 15965, 15974, 15981, 15985, 15992, + 15998, 16003, 16008, 16012, 15564, 16021, 16025, 16031, 16035, 16040, + 16044, 16051, 16058, 16062, 16071, 16079, 16087, 16094, 16102, 16114, + 16125, 16135, 16142, 16148, 16157, 16168, 16177, 16189, 16201, 16213, + 16223, 16232, 16242, 16251, 16259, 16266, 16276, 16285, 16293, 16297, + 16302, 16308, 16314, 16319, 16324, 16328, 16333, 16338, 16343, 16348, + 16353, 16358, 16363, 8718, 16368, 16370, 16374, 16379, 16385, 16392, + 16398, 16404, 16413, 16417, 16423, 16431, 16438, 16447, 16456, 16465, + 16474, 16483, 16492, 16501, 16510, 16520, 16530, 16539, 16545, 16552, + 16559, 16565, 16579, 16585, 16592, 16600, 16609, 16617, 16623, 16632, + 16638, 16647, 16658, 16664, 16674, 16682, 16689, 16697, 16705, 16712, + 16721, 16734, 16743, 16751, 16758, 16771, 16777, 16783, 16793, 16802, + 16811, 16820, 16828, 16833, 16837, 16843, 16849, 16854, 16861, 16868, + 10222, 16873, 16878, 16885, 16893, 16898, 16910, 16917, 16922, 16934, + 14917, 16939, 16945, 16953, 16959, 16964, 16972, 16980, 16987, 16995, + 17002, 17008, 17014, 17022, 17030, 17036, 17044, 17050, 17055, 17061, + 17068, 17074, 17079, 17083, 17094, 17102, 17110, 17116, 17121, 17128, + 17137, 17143, 17148, 17156, 17163, 17172, 17186, 4405, 17190, 17195, + 17200, 17206, 17211, 17216, 17220, 17225, 17230, 17235, 8717, 17240, + 17245, 17250, 17255, 17260, 17264, 17269, 17274, 17279, 17284, 17290, + 17296, 14190, 17301, 17307, 17312, 17317, 17322, 10623, 17327, 17332, + 17337, 17342, 17347, 17361, 17378, 17396, 17408, 17421, 17438, 17454, + 17471, 17481, 17500, 17511, 17522, 17533, 2809, 17544, 17555, 17566, + 17583, 17594, 17605, 17610, 10628, 17615, 17619, 2489, 17623, 17629, + 17632, 17638, 17646, 17654, 17660, 17669, 17676, 17681, 17689, 17697, + 17704, 17708, 17713, 17719, 17726, 17734, 17741, 17753, 17760, 17766, + 17774, 17779, 17785, 17791, 17796, 13945, 17803, 17807, 17816, 17822, + 17827, 17835, 17844, 17852, 17859, 17865, 17873, 17880, 17886, 17892, + 17899, 17906, 17912, 17918, 17922, 17931, 17939, 17944, 17954, 17961, + 17967, 17975, 17981, 17989, 17997, 18004, 18017, 18021, 18028, 18037, + 18046, 18055, 18063, 18073, 18080, 18085, 3975, 18092, 18097, 1254, + 18101, 18108, 17241, 18112, 18118, 18122, 18130, 18142, 18147, 18154, + 18160, 18165, 18172, 17246, 18176, 18180, 18188, 18193, 18197, 17251, + 18201, 17256, 18205, 18212, 18217, 18221, 18228, 18232, 18235, 18243, + 18250, 18255, 18263, 18267, 18274, 18291, 18300, 18309, 18313, 18316, + 18322, 18330, 18336, 18341, 18345, 18350, 18355, 18360, 18365, 18370, + 18375, 4053, 18380, 18382, 18390, 18397, 18407, 18419, 18424, 18428, + 18434, 18439, 18447, 18451, 18457, 18462, 18468, 18471, 18478, 18486, + 18493, 18499, 18504, 18510, 18515, 18522, 18528, 18533, 18543, 18552, + 18559, 18564, 18568, 18574, 18580, 18584, 18591, 18597, 18602, 18608, + 18616, 18624, 18631, 18637, 18643, 18648, 18654, 18660, 18668, 18673, + 18678, 18686, 18692, 18698, 18703, 18710, 18715, 18719, 18725, 18731, + 18736, 18742, 18749, 18754, 18760, 18763, 18769, 18780, 18786, 18795, + 18798, 18802, 18806, 18820, 18833, 18845, 18851, 18856, 18863, 18869, + 18875, 18886, 18898, 18910, 18920, 18929, 18937, 18944, 18955, 18965, + 18975, 18983, 18986, 17270, 18991, 18996, 19003, 17275, 17426, 19011, + 19024, 19039, 19050, 17443, 19068, 19081, 19094, 19105, 12520, 19116, + 19129, 19148, 19159, 19170, 19181, 2830, 19194, 19198, 19206, 19217, + 19228, 19236, 19251, 19266, 19277, 19284, 19290, 19298, 19302, 19308, + 19312, 19315, 19328, 19340, 19350, 19358, 19365, 19373, 19383, 19388, + 19395, 19400, 19407, 19418, 19428, 19434, 19439, 19444, 17280, 19448, + 19454, 19461, 19467, 19472, 19477, 19482, 19486, 17285, 17291, 19490, + 17297, 19495, 19503, 19508, 19512, 19519, 19527, 19534, 19543, 19550, + 19554, 19558, 19563, 19568, 19573, 19578, 19583, 10467, 19588, 19590, + 19595, 19600, 19606, 19611, 19616, 19621, 19626, 19630, 19636, 19642, + 19647, 19653, 19658, 19663, 19667, 19673, 19678, 19682, 19687, 19692, + 19704, 19709, 19715, 19720, 19725, 19731, 19737, 19742, 19747, 19752, + 19759, 19765, 19776, 19783, 19792, 19797, 19801, 279, 19805, 19813, + 19818, 19824, 19830, 19835, 19842, 19849, 19855, 19860, 19866, 19871, + 19876, 19881, 19888, 19898, 19906, 19911, 19916, 19923, 19929, 19938, + 19948, 19958, 19972, 19986, 20000, 20014, 20029, 20044, 20061, 20079, + 20092, 20098, 20103, 20108, 20112, 20120, 20125, 20133, 20139, 20145, + 20150, 20155, 20159, 20165, 20170, 20174, 20181, 20186, 20190, 20201, + 20207, 20212, 20217, 20224, 20229, 20233, 3933, 20238, 20244, 20251, + 17302, 20257, 20261, 20267, 20272, 20277, 20281, 20287, 20292, 20297, + 20304, 20309, 15698, 20313, 20318, 20322, 20327, 20333, 20339, 20346, + 20356, 20364, 20371, 20376, 20380, 20389, 20397, 20404, 20411, 20417, + 20422, 20428, 20433, 20438, 20444, 20449, 20455, 20460, 20466, 20472, + 20479, 20485, 20490, 20495, 10693, 20504, 20507, 20515, 20521, 20526, + 20531, 20541, 20548, 20554, 20559, 20564, 20570, 20575, 20581, 20586, + 20592, 20599, 20605, 20611, 20616, 20624, 20631, 20636, 20641, 20647, + 20652, 20656, 20665, 20676, 20683, 20690, 20698, 20705, 20712, 20717, + 20722, 20728, 20733, 20741, 20747, 20753, 20758, 20765, 20771, 20776, + 20780, 20786, 20791, 20796, 20800, 20805, 1327, 8742, 3118, 20809, 20813, + 20817, 20821, 20825, 20829, 20832, 20837, 20844, 20852, 20862, 20873, + 20883, 20894, 20906, 20917, 20927, 20938, 20950, 20961, 20973, 20986, + 20998, 21009, 21019, 21030, 21042, 21053, 21066, 21078, 21089, 21101, + 21114, 21126, 21139, 21153, 21166, 21178, 21189, 21199, 21210, 21222, + 21233, 21245, 21258, 21270, 21281, 21293, 21306, 21319, 21333, 21346, + 21358, 21369, 21381, 21394, 21406, 21419, 21433, 21446, 21458, 21471, + 21485, 21498, 21512, 21526, 21539, 21551, 21562, 21572, 17313, 21579, + 21585, 21595, 21603, 21610, 21618, 21628, 21637, 21650, 21655, 21660, + 21668, 21675, 15807, 15816, 21682, 21692, 21707, 21713, 21720, 21727, + 21734, 21740, 21746, 21757, 21765, 21773, 21783, 21793, 21802, 17318, + 21811, 21817, 21823, 21832, 21840, 21848, 21853, 21862, 21870, 21882, + 21892, 21902, 21912, 21921, 21933, 21943, 21953, 21964, 21971, 21976, + 21983, 21995, 22007, 22019, 22031, 22043, 22055, 22067, 22079, 22091, + 22103, 22114, 22126, 22138, 22150, 22162, 22174, 22186, 22198, 22210, + 22222, 22234, 22245, 22257, 22269, 22281, 22293, 22305, 22317, 22329, + 22341, 22353, 22365, 22376, 22388, 22400, 22412, 22424, 22436, 22448, + 22460, 22472, 22484, 22496, 22507, 22519, 22531, 22543, 22555, 22567, + 22579, 22591, 22603, 22615, 22627, 22638, 22650, 22662, 22674, 22686, + 22698, 22710, 22722, 22734, 22746, 22758, 22769, 22781, 22793, 22805, + 22817, 22829, 22841, 22853, 22865, 22877, 22889, 22900, 22912, 22924, + 22936, 22948, 22961, 22974, 22987, 23000, 23013, 23026, 23039, 23051, + 23064, 23077, 23090, 23103, 23116, 23129, 23142, 23155, 23168, 23181, + 23193, 23206, 23219, 23232, 23245, 23258, 23271, 23284, 23297, 23310, + 23323, 23335, 23348, 23361, 23374, 23387, 23400, 23413, 23426, 23439, + 23452, 23465, 23477, 23490, 23503, 23516, 23529, 23542, 23555, 23568, + 23581, 23594, 23607, 23619, 23632, 23645, 23658, 23671, 23684, 23697, + 23710, 23723, 23736, 23749, 23761, 23772, 23785, 23798, 23811, 23824, + 23837, 23850, 23863, 23876, 23889, 23902, 23914, 23927, 23940, 23953, + 23966, 23979, 23992, 24005, 24018, 24031, 24044, 24056, 24069, 24082, + 24095, 24108, 24121, 24134, 24147, 24160, 24173, 24186, 24198, 24211, + 24224, 24237, 24250, 24263, 24276, 24289, 24302, 24315, 24328, 24340, + 24353, 24366, 24379, 24392, 24405, 24418, 24431, 24444, 24457, 24470, + 24482, 24495, 24508, 24521, 24534, 24547, 24560, 24573, 24586, 24599, + 24612, 24624, 24637, 24650, 24663, 24676, 24689, 24702, 24715, 24728, + 24741, 24754, 24766, 24779, 24792, 24805, 24818, 24831, 24844, 24857, + 24870, 24883, 24896, 24908, 24921, 24934, 24947, 24960, 24973, 24986, + 24999, 25012, 25025, 25038, 25050, 25063, 25076, 25089, 25102, 25115, + 25128, 25141, 25154, 25167, 25180, 25192, 25203, 25212, 25220, 25228, + 25235, 25241, 25245, 25251, 25257, 25266, 25274, 25279, 25285, 25290, + 25294, 25303, 10472, 25314, 25320, 25327, 25335, 25342, 13119, 13133, + 25349, 25356, 25365, 25370, 25375, 25382, 25387, 25392, 8758, 8764, 8770, + 25397, 25402, 25405, 25410, 25418, 25425, 25432, 25444, 25451, 25457, + 25466, 25471, 25480, 25489, 25495, 25503, 25512, 25516, 25522, 25527, + 25537, 25544, 25550, 25558, 25564, 25571, 25577, 25587, 25596, 25600, + 25607, 25611, 25616, 25622, 25630, 25634, 25644, 17328, 25653, 25659, + 25663, 25672, 25681, 25691, 25697, 17333, 25704, 25711, 25722, 25730, + 25740, 25749, 25757, 10187, 25765, 25770, 25776, 25781, 25785, 25789, + 25793, 11281, 25798, 25806, 25813, 25822, 25830, 25837, 25844, 25853, + 25859, 1059, 25866, 25872, 25876, 25882, 25889, 25895, 25903, 25909, + 25916, 25922, 25928, 25937, 25941, 25949, 25957, 25964, 25973, 25980, + 25985, 25989, 25999, 26010, 26021, 26026, 26031, 26037, 26046, 26051, + 26064, 8980, 26068, 26074, 26080, 26086, 26091, 26099, 26103, 26110, + 26119, 26124, 17606, 26132, 26136, 26148, 26153, 26157, 26160, 26166, + 26172, 26178, 26183, 26188, 26192, 26195, 26206, 26211, 10749, 26218, + 26223, 26228, 26233, 26238, 26243, 26248, 26253, 26258, 10754, 26263, + 26268, 26273, 26278, 26283, 26288, 26293, 26298, 26303, 26308, 26313, + 26318, 26324, 26329, 26334, 26339, 26344, 26349, 26354, 26359, 26364, + 26369, 26375, 26381, 26386, 26391, 26396, 26401, 26406, 26411, 26416, + 26421, 26426, 26432, 26437, 26442, 26447, 26453, 26459, 26464, 26469, + 26474, 26479, 26484, 26489, 26494, 26499, 26505, 26510, 26515, 26520, + 26525, 26531, 26536, 26541, 26545, 1250, 145, 26553, 26557, 26561, 26565, + 26570, 26574, 15704, 2415, 26578, 26583, 26587, 26592, 26596, 26601, + 26605, 26611, 26616, 26620, 26624, 26632, 26636, 26640, 26647, 26652, + 26657, 26661, 26667, 26672, 26676, 26681, 26686, 26690, 26697, 26704, + 26711, 26716, 26720, 26724, 26729, 26733, 26736, 26742, 26755, 26760, + 26766, 26775, 26780, 11029, 26785, 26794, 26799, 26802, 26806, 26811, + 26816, 26821, 26826, 26831, 2926, 2931, 26836, 26842, 26846, 26852, 3894, + 26857, 26862, 26867, 26873, 26878, 16654, 26883, 26888, 26893, 26898, + 26904, 26909, 26914, 26920, 26925, 26929, 26934, 26939, 26944, 26949, + 26954, 26958, 26963, 26967, 26972, 26977, 26982, 26987, 26991, 26996, + 27000, 27005, 27010, 27015, 26930, 3127, 26935, 27020, 27028, 27035, + 11375, 27047, 27055, 27065, 27083, 27102, 27111, 27119, 26940, 27126, + 27131, 27139, 26945, 27144, 27149, 27157, 27162, 27167, 27171, 19826, + 27176, 27184, 27189, 27193, 27200, 27206, 27215, 27219, 27227, 27233, + 27237, 27240, 20660, 27247, 27251, 27255, 27260, 27266, 27273, 27278, + 10214, 27282, 27287, 27292, 27297, 27302, 27307, 1669, 1674, 27312, + 27318, 27324, 27329, 27333, 27337, 27341, 27345, 27349, 27353, 27357, + 27361, 25438, 27364, 27371, 27379, 27385, 27391, 27396, 27401, 27407, + 27411, 27416, 27423, 16554, 16561, 27429, 27441, 27444, 27451, 27455, + 19851, 27462, 27470, 27481, 27490, 27503, 27513, 27527, 27539, 27553, + 27566, 27578, 27588, 27600, 27606, 27621, 27645, 27663, 27682, 27695, + 27709, 27727, 27743, 27760, 27778, 27789, 27808, 27825, 27845, 27863, + 27875, 27889, 27903, 27915, 27932, 27951, 27969, 27981, 27999, 28018, + 17486, 28031, 28051, 28063, 12551, 28075, 28080, 28085, 28090, 28099, + 28105, 28110, 28114, 28121, 28127, 28131, 28136, 28141, 28146, 28151, + 28156, 28161, 2512, 28166, 28172, 28176, 28179, 28190, 28194, 28197, + 28205, 28211, 14856, 28215, 28224, 28235, 28241, 28247, 28262, 28271, + 28279, 28286, 28291, 28295, 28302, 28308, 28317, 28325, 28332, 28342, + 28351, 28361, 28366, 28375, 28384, 28395, 28406, 28416, 28433, 4549, + 28443, 28447, 28457, 28465, 28475, 28486, 28492, 28497, 28507, 28515, + 28522, 28528, 28535, 28540, 26978, 28544, 28553, 28557, 28560, 28565, + 28573, 28580, 28589, 28597, 28605, 28613, 28623, 28632, 28638, 28644, + 28650, 28654, 26983, 26988, 28658, 28668, 28678, 28688, 28696, 28703, + 28713, 28721, 28729, 28735, 28743, 802, 28752, 17693, 649, 28766, 28775, + 28783, 28794, 28805, 28815, 28824, 28836, 28845, 28854, 28861, 28867, + 28877, 28886, 28895, 28903, 28911, 28921, 28929, 28937, 28944, 28950, + 28955, 28960, 28965, 8142, 28970, 28973, 28977, 28982, 28990, 28996, + 29001, 29005, 3757, 27001, 29013, 27006, 29019, 29025, 29031, 29036, + 29041, 29045, 29053, 29059, 29065, 29069, 3918, 29077, 29082, 29087, + 29091, 29095, 11661, 29102, 29110, 29124, 29131, 29138, 29144, 11670, + 11676, 29152, 29160, 29167, 29172, 29177, 27011, 29183, 29194, 29203, + 18999, 29211, 29216, 2761, 29221, 29232, 29238, 29243, 29247, 29251, + 29254, 29261, 29268, 29274, 29282, 29289, 29295, 29299, 8182, 29304, + 29308, 29312, 29320, 29325, 29330, 29335, 1702, 29340, 29345, 29350, + 29355, 29360, 29365, 29370, 29375, 29380, 29385, 29390, 29395, 29400, + 29405, 29411, 29416, 29421, 29426, 29431, 29436, 29441, 29447, 29452, + 29457, 29462, 29467, 29472, 29477, 29482, 29488, 29494, 29499, 29505, + 29510, 29515, 5, 29521, 29525, 29529, 29533, 29538, 29542, 29546, 29550, + 29554, 29559, 29563, 29568, 29572, 29575, 29579, 29584, 29588, 29593, + 29597, 29601, 29605, 29610, 29614, 29618, 29628, 29633, 29637, 29641, + 29646, 29651, 29660, 29665, 29670, 29674, 29678, 29687, 29700, 29712, + 29721, 29730, 29735, 29741, 29746, 29750, 29754, 29764, 29773, 29781, + 29787, 29792, 29796, 29803, 29810, 29820, 29829, 29837, 12908, 29845, + 29853, 29862, 29871, 29879, 29889, 29894, 29898, 29902, 29905, 29907, + 29911, 29915, 29920, 29925, 29929, 29933, 29936, 29940, 29943, 29947, + 29950, 29953, 29957, 29963, 29967, 29971, 29975, 29979, 29984, 29989, + 29994, 29998, 30001, 30006, 30012, 30017, 30023, 30028, 30032, 30038, + 30042, 30046, 30051, 30055, 30060, 30065, 30069, 30073, 30080, 30084, + 30087, 30091, 30095, 30101, 30107, 30111, 30115, 30120, 30127, 30133, + 30137, 30146, 30150, 30154, 30157, 30163, 30168, 30174, 1391, 1754, + 30179, 30184, 30189, 30194, 30199, 30204, 30209, 2219, 824, 30214, 30217, + 30221, 30225, 30230, 30234, 17705, 30238, 30243, 30248, 30252, 30255, + 30260, 30264, 30269, 30273, 17709, 30278, 30281, 30284, 30290, 30294, + 30299, 30303, 30316, 30324, 30328, 30331, 30339, 30348, 30355, 30360, + 30366, 30372, 30380, 30387, 30394, 30398, 30402, 30406, 30411, 30416, + 30420, 30428, 30433, 30440, 30452, 30463, 30468, 30472, 30479, 30483, + 30488, 30494, 30497, 30502, 30507, 30514, 30518, 30522, 30525, 30531, + 8880, 2419, 30535, 30540, 30556, 11080, 30576, 30585, 30601, 30605, + 30612, 30615, 30621, 30631, 30637, 30646, 30655, 30670, 30681, 30693, + 30704, 30712, 30721, 30727, 30736, 30746, 30756, 30767, 30778, 30788, + 30797, 30804, 30813, 30821, 30828, 30835, 30842, 30850, 30857, 30864, + 30877, 30884, 30892, 30899, 30905, 30910, 30919, 30926, 30932, 30937, + 30945, 30953, 30960, 30967, 28467, 30979, 30991, 31005, 31013, 31021, + 31029, 31036, 31048, 31057, 31066, 31074, 31082, 31090, 31097, 31103, + 31112, 31120, 31130, 31139, 31149, 31158, 31167, 31175, 31180, 31184, + 31187, 31191, 31195, 31199, 31203, 31207, 31213, 31219, 31224, 31232, + 31239, 31247, 31254, 10786, 17767, 31262, 31269, 31274, 31281, 31287, + 31293, 31300, 13998, 31307, 31310, 31322, 31330, 31336, 31341, 31345, + 31356, 31366, 31376, 11600, 31385, 31394, 31402, 31412, 31421, 31428, + 31435, 31443, 31447, 17786, 31450, 31457, 31461, 4493, 31467, 31470, + 31477, 31483, 31497, 31502, 31510, 31516, 31527, 31534, 31540, 31546, + 31550, 31555, 31559, 31568, 31575, 31581, 8933, 31588, 31596, 31603, + 31609, 31614, 31620, 31626, 31636, 31648, 31659, 31669, 31677, 31683, + 17804, 31687, 31689, 31192, 11613, 31698, 31703, 31709, 31719, 31724, + 31731, 31739, 31745, 31750, 31755, 31760, 31764, 31769, 31776, 31782, + 31791, 31799, 31803, 31810, 31820, 31826, 31835, 31841, 31848, 4763, + 31854, 31860, 31865, 31872, 31884, 31895, 31900, 31908, 31912, 31922, + 31928, 31932, 31937, 31947, 31956, 31960, 31967, 31975, 31982, 31988, + 31993, 32001, 32008, 32013, 32020, 32032, 32041, 32045, 15630, 32053, + 32063, 32067, 32075, 32082, 32089, 30335, 32100, 32105, 32109, 32116, + 32123, 26663, 31117, 32128, 32132, 32135, 27795, 32140, 32154, 32170, + 32188, 32207, 32224, 32242, 27814, 32259, 32279, 27831, 32291, 32303, + 19055, 32315, 27851, 32329, 32341, 12564, 32355, 32360, 32365, 32370, + 32376, 32382, 32388, 32392, 32400, 32406, 32413, 32418, 32428, 32435, + 32441, 12102, 32447, 32449, 32454, 32462, 32466, 31772, 32472, 32479, + 13840, 13850, 32486, 32493, 32503, 32508, 32512, 32515, 32521, 32529, + 32541, 32551, 32567, 32580, 32594, 19073, 32608, 32615, 32619, 32622, + 32627, 32631, 32638, 32645, 32652, 32659, 32669, 32674, 32679, 32684, + 32692, 32700, 32705, 32714, 28488, 3567, 32719, 32722, 32725, 32730, + 32737, 32742, 32747, 32763, 32771, 32779, 10844, 32787, 32792, 32796, + 32802, 32807, 32813, 32816, 32822, 32834, 32842, 32849, 32855, 32862, + 32873, 32887, 32900, 32906, 32915, 32921, 32930, 32942, 32953, 32963, + 32972, 32981, 32989, 32999, 33008, 33019, 673, 33026, 33033, 33039, + 33044, 33050, 33057, 33063, 33074, 33084, 33094, 33103, 33109, 33116, + 33121, 33129, 33136, 33144, 33152, 33164, 7128, 33171, 33174, 33183, + 33191, 33197, 33203, 33208, 33212, 33215, 33221, 33228, 33233, 33238, + 33245, 33250, 33254, 33266, 33277, 33286, 33294, 17976, 33299, 33307, + 33312, 33320, 33326, 33332, 13833, 9782, 33337, 33341, 33345, 33348, + 33351, 33357, 33365, 33373, 33377, 33381, 33386, 33390, 33393, 33402, + 33407, 33412, 33416, 33419, 33424, 33432, 33443, 33452, 33456, 33462, + 33468, 33472, 33478, 33486, 33508, 33532, 33543, 33552, 33558, 33565, + 33572, 33578, 33586, 33592, 33597, 33608, 33626, 33633, 33641, 33645, + 33652, 33657, 33666, 33679, 33687, 33699, 33710, 33721, 33731, 33745, + 33754, 33762, 33774, 33785, 11097, 33794, 33805, 33816, 33828, 33838, + 33847, 33857, 33862, 33866, 33874, 33885, 33895, 33901, 33906, 33910, + 33913, 33916, 33924, 33932, 33941, 33951, 33960, 33966, 33971, 33985, + 2844, 34007, 34018, 34027, 34037, 34049, 34058, 34067, 34077, 34085, + 34093, 34102, 34107, 34118, 34123, 34132, 34138, 34149, 34153, 34156, + 34166, 34175, 34183, 34193, 34203, 34211, 34220, 34227, 34233, 34241, + 34248, 34257, 34266, 34271, 34276, 34280, 34288, 34295, 34301, 34305, + 34313, 34320, 34331, 34346, 34353, 34359, 34369, 34378, 34384, 34395, + 34399, 34406, 34410, 34417, 34423, 16806, 34429, 34433, 34438, 34444, + 34451, 34455, 34459, 34467, 34475, 34481, 34490, 34497, 34504, 34509, + 34514, 34524, 28542, 34528, 34531, 34536, 34541, 34546, 34551, 34556, + 34561, 34566, 34571, 34577, 34582, 34587, 34593, 1100, 766, 34598, 34601, + 34608, 34617, 1783, 34624, 34629, 34633, 34639, 1149, 643, 34644, 334, + 34648, 34658, 34667, 34675, 34684, 34692, 34699, 34710, 34718, 34727, + 34735, 34745, 34753, 34758, 11768, 34762, 34770, 34778, 34783, 17722, + 4107, 34789, 34795, 34801, 6655, 34806, 34810, 34817, 34823, 34829, + 34833, 34842, 34848, 34853, 34860, 1342, 34866, 34872, 34877, 34884, + 34888, 1249, 6663, 34893, 34903, 34911, 34917, 34927, 34936, 34944, + 34950, 34955, 34963, 34970, 13350, 34976, 34983, 34988, 34995, 35005, + 1410, 245, 2218, 35011, 35017, 35024, 35035, 35046, 35054, 35061, 35071, + 35080, 35088, 35097, 35104, 35111, 35124, 35131, 35137, 35148, 35167, + 35172, 1154, 35176, 35181, 35189, 3990, 35193, 35198, 35202, 35206, 1346, + 29934, 35216, 35220, 35225, 35229, 35235, 3852, 35241, 35249, 35256, + 35267, 35276, 35284, 35309, 35317, 35322, 3991, 399, 35328, 35336, 35344, + 35351, 35356, 35362, 35367, 2287, 12766, 35374, 35380, 31551, 31890, + 35386, 656, 106, 35390, 35394, 35400, 622, 10659, 35405, 35412, 35418, + 35422, 35426, 1555, 35429, 35433, 18264, 35436, 35441, 35448, 35454, + 8946, 35459, 35467, 35474, 35480, 27173, 35484, 35488, 35492, 35496, + 1840, 20172, 35500, 35505, 35509, 35512, 35520, 35528, 35533, 35542, + 35550, 35553, 35560, 35567, 27252, 35577, 35589, 35597, 35602, 35606, + 35614, 35621, 35628, 35637, 35643, 35650, 35657, 35660, 35664, 35668, + 1357, 35678, 35680, 35685, 35691, 35697, 35702, 35707, 35712, 35717, + 35722, 35727, 35732, 35737, 35742, 35747, 35752, 35757, 35762, 35767, + 35773, 35779, 35785, 35791, 35796, 35801, 35806, 35812, 35817, 35822, + 35827, 35833, 35838, 35844, 35849, 35854, 35859, 35864, 35870, 35875, + 35881, 35886, 35891, 35896, 35901, 35907, 35912, 35918, 35923, 35928, + 35933, 35938, 35943, 35948, 35953, 35958, 35963, 35969, 35975, 35981, + 35986, 35991, 35996, 36001, 36007, 36013, 36019, 36025, 36031, 36037, + 36042, 36048, 36053, 36058, 36063, 36068, 36074, 2558, 36079, 2565, 2572, + 2968, 36084, 2578, 2588, 36090, 2620, 2625, 2630, 36094, 36099, 36104, + 36110, 36115, 36120, 36124, 36129, 36135, 36140, 36145, 36150, 36156, + 36161, 36165, 36169, 36174, 36179, 36184, 36189, 36194, 36200, 36206, + 36211, 36215, 36220, 36226, 36230, 36235, 36240, 36245, 36250, 36254, + 36257, 36262, 36267, 36272, 36277, 36282, 36288, 36294, 36299, 36304, + 36309, 36313, 36318, 36323, 36328, 36333, 36338, 36343, 36347, 36352, + 36357, 36362, 36366, 36370, 36374, 36379, 36387, 36392, 36397, 36403, + 36409, 36415, 36420, 36428, 36432, 36435, 36440, 36445, 36449, 36454, + 36459, 36463, 36468, 36472, 36475, 36480, 4203, 21663, 36485, 36490, + 36495, 36500, 36508, 25833, 34881, 10298, 36513, 36518, 36522, 36527, + 36531, 36535, 36540, 36544, 36547, 36550, 36554, 36559, 36563, 36571, + 36575, 36578, 36583, 36587, 36591, 36596, 36601, 36605, 36611, 36616, + 36621, 36628, 36635, 36639, 36642, 36648, 36657, 36664, 36672, 36679, + 36683, 36688, 36692, 36696, 36702, 36707, 36713, 36717, 36723, 36728, + 36733, 36737, 36744, 36750, 36756, 36762, 36768, 36775, 36781, 36787, + 36793, 36799, 36805, 36811, 36817, 36824, 36830, 36837, 36843, 36849, + 36855, 36861, 36867, 36873, 36879, 36885, 36891, 36897, 36902, 36907, + 13705, 36912, 36918, 36923, 36928, 36933, 36938, 36941, 36947, 36952, + 36960, 36965, 36969, 36974, 36980, 36989, 36995, 37000, 37005, 37010, + 37014, 37019, 37023, 37028, 37033, 37038, 37043, 37050, 37057, 37063, + 37069, 37074, 19769, 37081, 37087, 37094, 37100, 37106, 37111, 37119, + 37124, 11268, 37128, 37133, 37138, 37144, 37149, 37154, 37158, 37163, + 37168, 37174, 37179, 37184, 37189, 37193, 37198, 37203, 37207, 37212, + 37217, 37221, 37226, 37230, 37235, 37240, 37245, 37249, 37254, 37258, + 37263, 37267, 37274, 37278, 37282, 18420, 37287, 37294, 37303, 37309, + 37315, 37324, 37332, 37341, 37349, 37354, 37358, 37365, 37371, 37379, + 37383, 37386, 37391, 37395, 37404, 37412, 37430, 37436, 1409, 37442, + 37445, 37449, 27319, 27325, 37455, 37459, 37470, 37481, 37492, 37504, + 37508, 37515, 37522, 37529, 37534, 37538, 37546, 37551, 37556, 37561, + 37566, 6720, 16710, 25832, 37571, 37576, 37580, 16701, 37585, 37591, + 37596, 37602, 37607, 37613, 37618, 37624, 37629, 37635, 37641, 37647, + 37652, 37608, 37614, 37656, 37661, 37667, 37672, 37678, 37683, 37689, + 37694, 37619, 12396, 37698, 37630, 37636, 37642, 3060, 3766, 37704, + 37707, 37712, 37718, 37724, 37730, 37737, 37743, 37749, 37755, 37761, + 37767, 37773, 37779, 37785, 37791, 37797, 37803, 37809, 37816, 37822, + 37828, 37834, 37840, 37846, 37849, 37854, 37857, 37864, 37869, 37877, + 37881, 37886, 37891, 37897, 37902, 37907, 37911, 37916, 37922, 37927, + 37933, 37938, 37944, 37949, 37955, 37961, 37965, 37970, 37975, 37980, + 37985, 37989, 37994, 37999, 38004, 38010, 38016, 38022, 38028, 38033, + 38037, 38040, 38046, 38052, 38061, 38069, 38076, 38081, 38085, 38089, + 38094, 18207, 38099, 38107, 38113, 4149, 1259, 38118, 38123, 38127, 8996, + 38133, 38139, 38146, 9005, 38150, 38156, 38162, 38169, 38175, 38184, + 38192, 38204, 38208, 38215, 38221, 38226, 38230, 38234, 38237, 38247, + 38256, 38264, 37609, 38269, 38279, 38289, 38299, 38305, 38310, 38320, + 38325, 38338, 38352, 38363, 38375, 38387, 38401, 38414, 38426, 38438, + 17527, 38452, 38457, 38462, 38466, 38470, 38474, 38478, 38484, 38489, + 38494, 38499, 38504, 38509, 38514, 1743, 32951, 38519, 38524, 38529, + 37657, 38534, 38537, 38542, 38547, 38552, 38558, 38564, 19379, 11968, + 38569, 38575, 38582, 19007, 38588, 38593, 38598, 38602, 38607, 38612, + 37662, 38617, 38622, 38627, 38633, 37668, 38638, 38641, 38648, 38656, + 38662, 38668, 38674, 38685, 38690, 38697, 38704, 38711, 38719, 38728, + 38737, 38743, 38749, 38757, 37673, 38762, 38768, 38774, 37679, 38779, + 38784, 38792, 38800, 38806, 38813, 38819, 38826, 38833, 38839, 38847, + 38857, 38864, 38870, 38875, 38881, 38886, 38891, 38898, 38907, 38915, + 38920, 38926, 38933, 38941, 38947, 38952, 38958, 38967, 38974, 33946, + 38980, 38984, 38989, 38998, 39003, 39008, 39013, 14946, 39021, 39026, + 39031, 39036, 39040, 39045, 39050, 39057, 39062, 39067, 39072, 37684, + 25761, 39078, 2661, 155, 39081, 39084, 39088, 39092, 39102, 39110, 39117, + 39121, 39125, 39128, 39136, 39143, 39150, 31844, 39159, 39162, 39169, + 39175, 39180, 39184, 39191, 39195, 39203, 39211, 39218, 39233, 39237, + 39241, 39244, 39250, 39257, 39261, 39267, 39271, 39278, 39286, 39294, + 39301, 37620, 39308, 39316, 39321, 39333, 12049, 12056, 12063, 12070, + 12077, 12084, 630, 434, 39339, 39344, 39349, 39355, 39360, 39365, 4170, + 39370, 39373, 39378, 39383, 39388, 39393, 39398, 39405, 27437, 39410, + 39415, 39420, 39425, 39430, 39436, 39441, 39447, 37860, 39453, 39458, + 39464, 39470, 39480, 39485, 39490, 39494, 39499, 39504, 39509, 39514, + 39527, 39532, 27051, 20254, 1061, 39536, 39542, 39546, 39551, 39556, + 39562, 39567, 39572, 39576, 39581, 39586, 39592, 39597, 39602, 1264, + 39606, 39611, 39616, 39621, 39625, 39630, 39635, 39640, 39646, 39652, + 39657, 39661, 39665, 39670, 39675, 39680, 39684, 39689, 39697, 39701, + 39707, 39711, 39718, 39727, 20025, 37631, 39733, 39740, 39748, 39756, + 39763, 39769, 39778, 39791, 39803, 39808, 39814, 39818, 2987, 39822, + 39826, 39252, 39835, 39846, 39857, 39862, 34014, 39867, 39872, 39876, + 34134, 27330, 39881, 39888, 39892, 39897, 37637, 25868, 39901, 39906, + 39912, 39917, 39921, 39925, 39928, 39932, 39938, 39947, 39958, 39970, + 37643, 39975, 39978, 39982, 39986, 39991, 39996, 40001, 40006, 40011, + 40016, 40021, 40026, 373, 40031, 40036, 40041, 40046, 40051, 40056, + 40062, 40067, 40072, 40078, 40083, 40089, 40094, 40100, 40105, 40110, + 40115, 40120, 40125, 40130, 40135, 40140, 40146, 40151, 40156, 40161, + 40166, 40171, 40176, 40181, 40187, 40193, 40198, 40203, 40208, 40213, + 40218, 40223, 40228, 40233, 40238, 40243, 40248, 40253, 40258, 40263, + 40268, 40273, 40278, 40283, 40293, 40303, 40309, 346, 14, 40314, 40317, + 40321, 40325, 40333, 40337, 40341, 31524, 16943, 1824, 40344, 40349, + 40353, 40358, 40362, 40367, 40371, 40376, 40380, 40383, 40385, 40389, + 40394, 40398, 40409, 40412, 40414, 40418, 40430, 40442, 40451, 40455, + 40465, 40469, 40475, 40480, 40489, 40495, 40500, 40505, 40509, 40513, + 40518, 40525, 40530, 40536, 40541, 40545, 40552, 31125, 31135, 40556, + 40561, 40566, 40571, 40578, 40582, 40589, 40595, 9151, 40599, 40608, + 40616, 40631, 40645, 40654, 40662, 40673, 40682, 40687, 40694, 40704, + 8151, 40714, 40719, 40724, 40728, 40731, 40736, 40740, 40745, 40749, + 40756, 40761, 40766, 40771, 40781, 40786, 40791, 40796, 10168, 40801, + 40803, 40811, 40814, 40817, 40825, 40840, 40848, 40858, 40860, 40863, + 40867, 40873, 40877, 40882, 40887, 40905, 40919, 40938, 40955, 40964, + 40972, 40977, 40982, 1402, 40988, 40994, 40999, 41009, 41018, 41026, + 41031, 41037, 41042, 41051, 41060, 41071, 41076, 41083, 41089, 41093, + 41102, 41109, 41117, 41124, 41137, 41145, 41149, 41159, 41164, 41168, + 41176, 41184, 41189, 41193, 41197, 41206, 41212, 41217, 41225, 41235, + 41244, 41253, 41262, 41273, 41281, 41292, 41301, 41309, 41316, 41322, + 41327, 41338, 41349, 41354, 41358, 41361, 41365, 41375, 41383, 41389, + 41400, 41411, 41422, 41433, 41444, 41455, 41466, 41477, 41489, 41501, + 41513, 41525, 41537, 41549, 41561, 41570, 41574, 41582, 41588, 41594, + 41601, 41607, 41612, 41618, 41622, 41627, 41632, 41637, 40288, 40298, + 2532, 41642, 41644, 41649, 41654, 41659, 41662, 41664, 41668, 41671, + 41678, 41682, 11624, 41686, 41692, 41699, 41705, 41715, 41720, 41726, + 41730, 41735, 41748, 31714, 41754, 41760, 41769, 41778, 21886, 41785, + 41794, 38285, 41802, 41807, 41811, 41820, 41828, 41835, 41840, 41844, + 41849, 41854, 41862, 41866, 41874, 41880, 41886, 41891, 41896, 41900, + 41903, 41908, 41921, 41937, 27921, 41954, 41966, 41983, 41995, 42009, + 27938, 27957, 42021, 42033, 2861, 42047, 42052, 42057, 42062, 42066, + 42073, 42085, 42092, 42101, 42104, 42115, 42126, 42134, 42139, 42143, + 42148, 42153, 42158, 42163, 42168, 42173, 1774, 947, 42178, 42182, 42186, + 42189, 42194, 42199, 42205, 42210, 42215, 42221, 42227, 42232, 42236, + 42241, 42246, 42251, 42255, 42258, 42264, 42269, 42274, 42279, 42283, + 42288, 42294, 42302, 32025, 42307, 42312, 42319, 42325, 42331, 42336, + 42344, 27446, 42351, 42356, 42361, 42366, 42370, 42373, 42378, 42382, + 42386, 42393, 42399, 42405, 42411, 42418, 42423, 42429, 41179, 42433, + 42437, 42442, 42455, 42460, 42466, 42474, 42481, 42489, 42499, 42505, + 42511, 42517, 42521, 42530, 42538, 42545, 42550, 42555, 12419, 42560, + 42570, 42577, 42583, 42593, 42598, 42604, 42612, 4023, 42619, 42626, + 42632, 42639, 4029, 42643, 42648, 42659, 42666, 42672, 42681, 42685, + 42688, 4601, 42695, 42702, 42708, 42714, 42722, 42732, 35357, 42739, + 42747, 42753, 42758, 42764, 42769, 42773, 31473, 42779, 42786, 42792, + 42800, 42809, 42816, 42822, 42833, 28740, 42839, 42846, 42852, 42862, + 42867, 42871, 42879, 42887, 42894, 42900, 42905, 11226, 941, 42910, + 42914, 42916, 42920, 42925, 42928, 42930, 42935, 42941, 42946, 42951, + 42958, 39401, 42964, 42969, 42973, 42978, 42982, 42991, 42995, 43001, + 43008, 43014, 43021, 43026, 43035, 43040, 43044, 43049, 43056, 43064, + 43072, 43077, 25924, 43081, 43084, 43088, 43092, 12863, 993, 43096, + 43101, 43109, 43114, 43118, 43127, 43134, 43138, 43142, 43150, 43157, + 16228, 43167, 43171, 43175, 43183, 43191, 43197, 43202, 43206, 43215, + 15976, 43221, 43230, 43237, 43242, 43249, 43256, 43264, 43271, 43279, + 43287, 43296, 43301, 43308, 43315, 43322, 43329, 43336, 43341, 43348, + 43354, 43371, 43379, 43389, 43397, 43404, 459, 43408, 43414, 43418, + 43423, 40678, 43429, 43432, 43436, 43442, 43453, 43461, 4034, 43469, + 43475, 43481, 43491, 43497, 43506, 43515, 43525, 43532, 43538, 43543, + 4040, 4046, 43552, 43560, 43567, 43571, 14330, 43579, 43583, 43590, + 43598, 43605, 43612, 43618, 43627, 43637, 43643, 43651, 43660, 43667, + 43675, 43682, 26726, 43686, 43693, 43699, 43709, 43718, 43726, 43737, + 43741, 43751, 43758, 43763, 43768, 43774, 43781, 43789, 43798, 43807, + 43817, 43828, 43835, 43840, 43847, 3275, 43855, 43861, 43866, 43873, + 43879, 43885, 43890, 43903, 43916, 43929, 43936, 43942, 43950, 43958, + 43963, 43967, 43971, 43976, 43981, 43986, 43991, 43996, 44001, 1371, + 44006, 44010, 44014, 44018, 44022, 44026, 44030, 44034, 44038, 44042, + 44046, 44050, 44054, 44058, 44062, 44066, 44070, 44074, 44078, 44082, + 44086, 44090, 44094, 44098, 44102, 44106, 44110, 44114, 44118, 44122, + 44126, 44130, 44134, 44138, 44142, 44146, 44150, 44154, 44158, 44162, + 44166, 44170, 44174, 44178, 44182, 44186, 44190, 44194, 44198, 44202, + 44206, 44210, 44214, 44218, 44222, 44226, 44230, 44234, 44238, 44242, + 44246, 44250, 44254, 44258, 44262, 44266, 44270, 44274, 44278, 44282, + 44286, 44290, 44294, 44298, 44302, 44306, 44310, 44314, 44318, 44322, + 44326, 44330, 44334, 44338, 44342, 44346, 44350, 44354, 44358, 44362, + 44366, 44370, 44374, 44378, 44382, 44386, 44390, 44394, 44398, 44402, + 44406, 44410, 44414, 44418, 44422, 44426, 44430, 44434, 44438, 44442, + 44446, 44450, 44454, 44458, 44462, 44466, 44470, 44474, 44478, 44482, + 44486, 44490, 44494, 44498, 44502, 44506, 44510, 44514, 44518, 44522, + 44526, 44530, 44534, 44538, 44542, 44546, 44550, 44554, 44558, 44562, + 44566, 44570, 44574, 44578, 44582, 44586, 44590, 44594, 44598, 44602, + 44606, 44610, 44614, 44618, 44623, 44627, 44632, 44636, 44641, 44645, + 44650, 44654, 44660, 44665, 44669, 44674, 44678, 44683, 44687, 44692, + 44696, 44701, 44705, 44710, 44714, 44719, 44723, 44729, 44735, 44740, + 44744, 44749, 44753, 44759, 44764, 44768, 44773, 44777, 44782, 44786, + 44792, 44797, 44801, 44806, 44810, 44815, 44819, 44824, 44828, 44834, + 44839, 44843, 44848, 44852, 44858, 44863, 44867, 44872, 44876, 44881, + 44885, 44890, 44894, 44899, 44903, 44909, 44914, 44918, 44924, 44929, + 44933, 44939, 44944, 44948, 44953, 44957, 44962, 44966, 44972, 44978, + 44984, 44990, 44996, 45002, 45008, 45014, 45019, 45023, 45028, 45032, + 45038, 45043, 45047, 45052, 45056, 45061, 45065, 45070, 45074, 45079, + 45083, 45088, 45092, 45097, 45101, 45107, 45112, 45116, 45121, 45125, + 45131, 45137, 45142, 127, 63, 45146, 45148, 45152, 45156, 45160, 45165, + 45169, 45173, 45178, 11133, 45183, 45189, 1683, 7167, 45195, 45198, + 45203, 45207, 45212, 45216, 45220, 45225, 12207, 45229, 45233, 45237, + 626, 45241, 18529, 45246, 45250, 45255, 45260, 45265, 45269, 45276, + 45282, 31746, 45288, 45291, 45295, 45300, 45306, 45310, 45313, 45321, + 45327, 45332, 45336, 45339, 45343, 45349, 45353, 45357, 3817, 3822, + 15058, 45360, 45364, 45368, 45372, 45376, 45384, 45391, 45395, 15926, + 45402, 45416, 45423, 45434, 361, 45439, 45443, 45449, 45461, 45467, + 45473, 45478, 45484, 45488, 35653, 45497, 45503, 45512, 45516, 45520, + 45525, 45531, 45536, 45540, 45545, 45549, 45553, 45560, 45566, 45571, + 45582, 45597, 45612, 45627, 45643, 45661, 12114, 45675, 45682, 45688, + 45692, 45695, 45704, 45709, 45713, 45721, 19210, 45729, 45733, 45743, + 45754, 35555, 1031, 45767, 45776, 45794, 45813, 45822, 45830, 45838, + 1696, 12316, 45842, 27342, 45845, 31512, 45850, 11458, 45855, 45861, + 45866, 45872, 45877, 45883, 45888, 45894, 45899, 45905, 45911, 45917, + 45922, 45878, 45884, 45926, 45889, 45895, 45900, 45931, 45906, 45912, + 9164, 4426, 45937, 45945, 45949, 45952, 45959, 45963, 45968, 45973, + 45980, 45986, 45992, 45997, 17818, 46001, 31529, 46005, 46009, 46013, + 46020, 46026, 46030, 33880, 46039, 10331, 46043, 10760, 46046, 46053, + 46059, 46063, 14355, 46070, 46076, 46081, 46088, 46095, 46102, 34679, + 9061, 46109, 46116, 46123, 46129, 46134, 46141, 46152, 46158, 46163, + 46168, 46173, 46177, 46182, 46189, 45879, 46193, 46203, 46212, 46223, + 46229, 46237, 46244, 46249, 46254, 46259, 46264, 46269, 46273, 46277, + 46284, 46290, 46298, 2422, 30538, 12219, 12231, 12236, 12242, 46307, + 12247, 12252, 12258, 46312, 46322, 46326, 12263, 46331, 20452, 46334, + 46339, 46343, 46347, 46358, 46366, 42096, 46374, 46379, 46386, 46393, + 46397, 46400, 46408, 12127, 46415, 46418, 46424, 46434, 6753, 46443, + 46448, 46454, 46458, 46466, 46470, 46480, 46486, 46491, 46502, 46511, + 46520, 46529, 46538, 46547, 46556, 46565, 46571, 46577, 46582, 46588, + 46594, 46600, 46605, 46608, 46615, 46621, 46625, 46630, 46637, 46644, + 46648, 46651, 46661, 46674, 46683, 46692, 46703, 46716, 46728, 46739, + 46748, 46759, 46764, 46773, 46778, 12268, 46784, 46791, 46799, 46806, + 46811, 46816, 31792, 46820, 46827, 4366, 25, 46831, 46836, 20301, 46840, + 46843, 46846, 34071, 46850, 34688, 46858, 46862, 46866, 46869, 46875, + 46881, 46886, 37708, 46895, 46903, 46909, 46916, 34054, 46920, 34291, + 46924, 46933, 46937, 46945, 46951, 46957, 46962, 46966, 34714, 46972, + 46975, 46983, 46991, 46999, 4764, 47005, 47009, 47013, 47018, 47025, + 47031, 47036, 47041, 47045, 47051, 47056, 47062, 4654, 817, 47069, 47073, + 47076, 47088, 47095, 47100, 18402, 47104, 47112, 47120, 47128, 47136, + 47143, 47151, 47159, 47166, 47174, 47182, 47190, 47198, 47206, 47214, + 47222, 47230, 47238, 47246, 47254, 47261, 47269, 47277, 47285, 47293, + 47301, 47309, 47317, 47325, 47333, 47341, 47349, 47357, 47365, 47373, + 47381, 47389, 47397, 47405, 47413, 47420, 47428, 47435, 47443, 47451, + 47459, 47467, 47475, 47483, 47491, 47499, 47510, 26762, 47515, 47518, + 47525, 47529, 47535, 47539, 47545, 47550, 47556, 47561, 47566, 47570, + 47574, 47581, 47589, 47594, 47599, 47609, 47615, 47628, 47634, 47640, + 47646, 47649, 47656, 47661, 4692, 47667, 4855, 962, 47672, 47675, 47678, + 47681, 37792, 37798, 47684, 37804, 37817, 37823, 37829, 47690, 37835, + 37841, 47696, 47702, 10, 47710, 47717, 47721, 47725, 47733, 38643, 47737, + 47741, 47748, 47753, 47757, 47762, 47768, 47773, 47779, 47784, 47788, + 47792, 47796, 47801, 47805, 47810, 47814, 47818, 47825, 47830, 47834, + 47838, 47843, 47847, 47852, 47856, 47860, 47865, 47871, 18711, 18716, + 47876, 47880, 47883, 47889, 47893, 47897, 25718, 47902, 47906, 47912, + 47919, 47925, 47930, 40707, 47940, 47945, 47953, 47957, 47960, 47964, + 38658, 47972, 4730, 47977, 47982, 47986, 47991, 47995, 48000, 15994, + 48011, 48015, 48018, 48022, 48030, 48035, 48039, 48044, 48049, 48053, + 48057, 48061, 48064, 48068, 48071, 48076, 48081, 48086, 48091, 48096, + 48101, 8644, 16010, 48106, 48109, 48115, 48120, 48126, 48131, 48137, + 48142, 48148, 48153, 48159, 48165, 48171, 48176, 48180, 48184, 48195, + 48203, 48210, 48216, 48221, 48232, 48242, 48248, 48253, 48260, 48269, + 48285, 48301, 48311, 33956, 48318, 48322, 48327, 48332, 48336, 48340, + 43802, 48346, 48351, 48355, 48362, 48367, 48372, 48376, 48379, 48383, + 48389, 32754, 48393, 26076, 48398, 48405, 48413, 48419, 48425, 48432, + 48440, 48446, 48450, 48455, 48461, 48469, 48474, 48478, 48487, 11114, + 48495, 48499, 48507, 48514, 48519, 48524, 48529, 48533, 48536, 48542, + 48546, 48549, 48553, 48560, 48565, 48572, 48576, 48582, 48586, 48592, + 48597, 48602, 5093, 5100, 48607, 48616, 48624, 48629, 48635, 48647, + 48660, 48674, 48681, 48687, 48693, 48698, 48706, 48709, 48711, 48722, + 48734, 48745, 48760, 48777, 48797, 48819, 48826, 48833, 48840, 48846, + 48850, 8643, 48853, 48857, 48861, 48866, 48870, 48874, 48877, 48881, + 48895, 27987, 48914, 48927, 48940, 48953, 28005, 48968, 2814, 48983, + 48989, 48993, 49003, 49007, 49011, 49016, 49020, 49027, 49032, 49036, + 49043, 49049, 49054, 49060, 49070, 49082, 49093, 49098, 49105, 49109, + 49113, 49116, 49124, 19231, 4138, 49129, 18750, 49142, 49149, 49156, + 49162, 49166, 49170, 49175, 49181, 49186, 49192, 49196, 49200, 49203, + 49208, 49212, 49217, 49222, 49227, 49232, 49237, 49242, 49247, 49252, + 49257, 8707, 18761, 49262, 49266, 49272, 49281, 49286, 49295, 49302, + 43633, 49308, 49313, 49317, 49324, 49329, 49336, 49344, 49350, 49354, + 49357, 49361, 49366, 2892, 49373, 49380, 49384, 49387, 49392, 49397, + 49403, 49408, 49413, 49417, 49422, 49432, 49437, 49443, 49448, 47090, + 49454, 49460, 49468, 49478, 49483, 49488, 49492, 49497, 49502, 8153, + 8165, 49507, 49510, 49517, 49523, 49532, 10248, 41319, 49540, 49544, + 49548, 38706, 49556, 49567, 49575, 43850, 49582, 49587, 49592, 49603, + 49610, 49621, 38730, 26093, 49629, 4644, 49634, 16427, 49640, 34045, + 49646, 49651, 49661, 49670, 49677, 49683, 49687, 49690, 49697, 49703, + 49710, 49716, 49726, 49734, 49740, 49746, 49751, 49755, 49762, 49767, + 49773, 49780, 49786, 48862, 49791, 49795, 16469, 16478, 16487, 16496, + 16505, 16534, 617, 16543, 49801, 49806, 49809, 49815, 49823, 1281, 49828, + 49832, 49837, 49842, 49847, 49854, 49860, 49864, 49869, 49875, 49879, + 37865, 49884, 49889, 49898, 49905, 49915, 49921, 34089, 49938, 49947, + 49955, 49961, 49966, 49973, 49979, 49987, 49996, 50004, 50012, 50018, + 50022, 50027, 50035, 35231, 38739, 50041, 50060, 19134, 50074, 50090, + 50104, 50110, 50115, 50120, 50125, 50131, 38745, 50136, 50139, 50146, + 50153, 50162, 50167, 50171, 423, 3182, 50178, 50183, 50188, 33148, 49976, + 50192, 50197, 50205, 50209, 50212, 50217, 50223, 50229, 50234, 50238, + 34162, 50241, 50246, 50250, 50253, 50258, 50262, 50267, 50272, 50276, + 50281, 50285, 50292, 50296, 50300, 25714, 25725, 50305, 50310, 50316, + 50321, 50327, 50333, 32710, 50338, 50342, 50345, 50351, 50356, 50361, + 50366, 50371, 50376, 50381, 50386, 50391, 50397, 50403, 14543, 19441, + 50408, 50413, 50418, 50423, 50428, 50433, 50438, 50443, 452, 68, 37882, + 37887, 37892, 37898, 37903, 37908, 50448, 37912, 50452, 50456, 50460, + 37917, 37923, 50474, 37934, 37939, 50482, 50487, 37945, 50492, 50497, + 50506, 50511, 50516, 50525, 50531, 50537, 50543, 37962, 50556, 50565, + 50571, 37966, 50575, 37971, 50580, 37976, 37981, 50583, 50588, 50592, + 50598, 16235, 50605, 16245, 50612, 50617, 37986, 50621, 50626, 50631, + 50636, 50641, 50645, 50650, 50655, 50661, 50666, 50671, 50677, 50683, + 50688, 50692, 50697, 50702, 50707, 50711, 50716, 50721, 50726, 50732, + 50738, 50744, 50749, 50753, 50758, 50762, 37990, 37995, 38000, 50766, + 50770, 50775, 50779, 50791, 38005, 38011, 38017, 38029, 50797, 31572, + 50801, 50806, 50810, 50815, 50822, 50827, 50832, 50837, 50841, 50845, + 50855, 50860, 50865, 50869, 50873, 50876, 50884, 50889, 38077, 50893, + 1381, 50899, 50904, 50910, 50918, 50922, 50931, 50939, 50943, 50947, + 50955, 50961, 50969, 50985, 50990, 50994, 50998, 51002, 51007, 51013, + 51028, 38114, 1691, 14575, 51032, 1260, 1275, 51044, 51052, 51059, 51064, + 9210, 51071, 51076, 10745, 987, 2647, 12295, 51083, 10638, 51088, 51091, + 51100, 1168, 51105, 49033, 51112, 51121, 51126, 51130, 51138, 51145, + 27392, 2703, 51153, 12816, 51163, 51169, 2440, 2450, 51178, 51187, 51197, + 51208, 3590, 41716, 51213, 4333, 4344, 9238, 1173, 51217, 51225, 51232, + 51237, 51241, 51245, 51250, 29022, 49368, 12386, 51258, 51267, 51276, + 51284, 51297, 51304, 51315, 51320, 51333, 51346, 51358, 51370, 51382, + 51393, 51406, 51417, 51428, 51438, 51446, 51454, 51466, 51478, 51489, + 51498, 51506, 51513, 51525, 51532, 51538, 51547, 51553, 51560, 51573, + 51578, 51588, 51593, 51599, 51604, 46060, 51608, 48538, 51615, 51622, + 51630, 51637, 2660, 51644, 51655, 51665, 51674, 51682, 51692, 51700, + 51709, 51719, 51728, 51733, 51739, 51745, 4182, 51756, 51766, 51775, + 51784, 51792, 51802, 51810, 51819, 51824, 51829, 51834, 1610, 47, 51842, + 51850, 51861, 51872, 19845, 51882, 51886, 51893, 51899, 51904, 51908, + 51919, 51929, 51938, 51949, 51954, 20274, 20279, 51961, 51970, 51975, + 51985, 51990, 51998, 52006, 52013, 52019, 1572, 271, 52023, 52029, 45941, + 52034, 52037, 2188, 2669, 52045, 52049, 52052, 1426, 52058, 16755, 1178, + 52063, 52076, 2803, 2824, 52090, 52102, 52114, 2838, 2855, 2870, 2886, + 2903, 52128, 52140, 2918, 52154, 1184, 1190, 1196, 12687, 52159, 52164, + 52169, 52173, 52188, 52203, 52218, 52233, 52248, 52263, 52278, 52293, + 52308, 52323, 52338, 52353, 52368, 52383, 52398, 52413, 52428, 52443, + 52458, 52473, 52488, 52503, 52518, 52533, 52548, 52563, 52578, 52593, + 52608, 52623, 52638, 52653, 52668, 52683, 52698, 52713, 52728, 52743, + 52758, 52773, 52788, 52803, 52818, 52833, 52848, 52863, 52878, 52893, + 52908, 52923, 52938, 52953, 52968, 52983, 52998, 53013, 53028, 53043, + 53058, 53073, 53088, 53103, 53118, 53133, 53148, 53163, 53178, 53193, + 53208, 53223, 53238, 53253, 53268, 53283, 53298, 53313, 53328, 53343, + 53358, 53373, 53388, 53403, 53418, 53433, 53448, 53463, 53478, 53493, + 53508, 53523, 53538, 53553, 53568, 53583, 53598, 53613, 53628, 53643, + 53658, 53673, 53688, 53703, 53718, 53733, 53748, 53763, 53778, 53793, + 53808, 53823, 53838, 53853, 53868, 53883, 53898, 53913, 53928, 53943, + 53958, 53973, 53988, 54003, 54018, 54033, 54048, 54063, 54078, 54093, + 54108, 54123, 54138, 54153, 54168, 54183, 54198, 54213, 54228, 54243, + 54258, 54273, 54288, 54303, 54318, 54333, 54348, 54363, 54378, 54393, + 54408, 54423, 54438, 54453, 54468, 54483, 54498, 54513, 54528, 54543, + 54558, 54573, 54588, 54603, 54618, 54633, 54648, 54663, 54678, 54693, + 54708, 54723, 54738, 54753, 54768, 54783, 54798, 54813, 54828, 54843, + 54858, 54873, 54888, 54903, 54918, 54933, 54948, 54963, 54978, 54993, + 55008, 55023, 55038, 55053, 55068, 55083, 55098, 55113, 55128, 55143, + 55158, 55173, 55188, 55203, 55218, 55233, 55248, 55263, 55278, 55293, + 55308, 55323, 55338, 55353, 55368, 55383, 55398, 55413, 55428, 55443, + 55458, 55473, 55488, 55503, 55518, 55533, 55548, 55563, 55578, 55593, + 55608, 55623, 55638, 55653, 55668, 55683, 55698, 55713, 55728, 55743, + 55758, 55773, 55788, 55803, 55818, 55833, 55848, 55863, 55878, 55893, + 55908, 55923, 55938, 55953, 55968, 55983, 55998, 56013, 56028, 56043, + 56058, 56073, 56088, 56103, 56118, 56133, 56148, 56163, 56178, 56193, + 56208, 56223, 56238, 56253, 56268, 56283, 56298, 56313, 56328, 56343, + 56358, 56373, 56388, 56403, 56418, 56433, 56448, 56463, 56478, 56493, + 56508, 56523, 56538, 56553, 56568, 56583, 56598, 56613, 56628, 56643, + 56658, 56673, 56688, 56703, 56718, 56733, 56748, 56763, 56778, 56793, + 56808, 56823, 56838, 56853, 56868, 56883, 56898, 56913, 56928, 56943, + 56958, 56973, 56988, 57003, 57018, 57033, 57048, 57063, 57078, 57093, + 57108, 57123, 57138, 57153, 57168, 57183, 57198, 57213, 57228, 57243, + 57258, 57273, 57288, 57303, 57318, 57333, 57348, 57363, 57378, 57393, + 57408, 57423, 57438, 57453, 57468, 57483, 57498, 57513, 57528, 57543, + 57558, 57573, 57588, 57603, 57618, 57633, 57648, 57663, 57678, 57693, + 57708, 57723, 57738, 57753, 57768, 57783, 57798, 57813, 57828, 57843, + 57858, 57873, 57888, 57903, 57918, 57933, 57948, 57963, 57978, 57993, + 58008, 58023, 58038, 58053, 58068, 58083, 58098, 58113, 58128, 58143, + 58158, 58173, 58188, 58203, 58218, 58233, 58248, 58263, 58278, 58293, + 58308, 58323, 58338, 58353, 58368, 58383, 58398, 58413, 58428, 58443, + 58458, 58473, 58488, 58503, 58518, 58533, 58548, 58563, 58578, 58593, + 58608, 58623, 58638, 58653, 58668, 58683, 58698, 58713, 58728, 58743, + 58758, 58773, 58788, 58803, 58818, 58833, 58848, 58863, 58878, 58893, + 58908, 58923, 58938, 58953, 58968, 58983, 58998, 59013, 59028, 59043, + 59058, 59073, 59088, 59103, 59118, 59133, 59148, 59163, 59178, 59193, + 59208, 59223, 59238, 59253, 59268, 59283, 59298, 59313, 59328, 59343, + 59358, 59373, 59388, 59403, 59418, 59433, 59448, 59463, 59478, 59493, + 59508, 59523, 59538, 59553, 59568, 59583, 59598, 59613, 59628, 59643, + 59658, 59673, 59688, 59703, 59718, 59733, 59748, 59763, 59778, 59793, + 59808, 59823, 59838, 59853, 59868, 59883, 59898, 59913, 59928, 59943, + 59958, 59973, 59988, 60004, 60020, 60036, 60052, 60068, 60084, 60100, + 60116, 60132, 60148, 60164, 60180, 60196, 60212, 60228, 60244, 60260, + 60276, 60292, 60308, 60324, 60340, 60356, 60372, 60388, 60404, 60420, + 60436, 60452, 60468, 60484, 60500, 60516, 60532, 60548, 60564, 60580, + 60596, 60612, 60628, 60644, 60660, 60676, 60692, 60708, 60724, 60740, + 60756, 60772, 60788, 60804, 60820, 60836, 60852, 60868, 60884, 60900, + 60916, 60932, 60948, 60964, 60980, 60996, 61012, 61028, 61044, 61060, + 61076, 61092, 61108, 61124, 61140, 61156, 61172, 61188, 61204, 61220, + 61236, 61252, 61268, 61284, 61300, 61316, 61332, 61348, 61364, 61380, + 61396, 61412, 61428, 61444, 61460, 61476, 61492, 61508, 61524, 61540, + 61556, 61572, 61588, 61604, 61620, 61636, 61652, 61668, 61684, 61700, + 61716, 61732, 61748, 61764, 61780, 61796, 61812, 61828, 61844, 61860, + 61876, 61892, 61908, 61924, 61940, 61956, 61972, 61988, 62004, 62020, + 62036, 62052, 62068, 62084, 62100, 62116, 62132, 62148, 62164, 62180, + 62196, 62212, 62228, 62244, 62260, 62276, 62292, 62308, 62324, 62340, + 62356, 62372, 62388, 62404, 62420, 62436, 62452, 62468, 62484, 62500, + 62516, 62532, 62548, 62564, 62580, 62596, 62612, 62628, 62644, 62660, + 62676, 62692, 62708, 62724, 62740, 62756, 62772, 62788, 62804, 62820, + 62836, 62852, 62868, 62884, 62900, 62916, 62932, 62948, 62964, 62980, + 62996, 63012, 63028, 63044, 63060, 63076, 63092, 63108, 63124, 63140, + 63156, 63172, 63188, 63204, 63220, 63236, 63252, 63268, 63284, 63300, + 63316, 63332, 63348, 63364, 63380, 63396, 63412, 63428, 63444, 63460, + 63476, 63492, 63508, 63524, 63540, 63556, 63572, 63588, 63604, 63620, + 63636, 63652, 63668, 63684, 63700, 63716, 63732, 63748, 63764, 63780, + 63796, 63812, 63828, 63844, 63860, 63876, 63892, 63908, 63924, 63940, + 63956, 63972, 63988, 64004, 64020, 64036, 64052, 64068, 64084, 64100, + 64116, 64132, 64148, 64164, 64180, 64196, 64212, 64228, 64244, 64260, + 64276, 64292, 64308, 64324, 64340, 64356, 64372, 64388, 64404, 64420, + 64436, 64452, 64468, 64484, 64500, 64516, 64532, 64548, 64564, 64580, + 64596, 64612, 64628, 64644, 64660, 64676, 64692, 64708, 64724, 64740, + 64756, 64772, 64788, 64804, 64820, 64836, 64852, 64868, 64884, 64900, + 64916, 64932, 64948, 64964, 64980, 64996, 65012, 65028, 65044, 65060, + 65076, 65092, 65108, 65124, 65140, 65156, 65172, 65188, 65204, 65220, + 65236, 65252, 65268, 65284, 65300, 65316, 65332, 65348, 65364, 65380, + 65396, 65412, 65428, 65444, 65460, 65476, 65492, 65508, 65524, 65540, + 65556, 65572, 65588, 65604, 65620, 65636, 65652, 65668, 65684, 65700, + 65716, 65732, 65748, 65764, 65780, 65796, 65812, 65828, 65844, 65860, + 65876, 65892, 65908, 65924, 65940, 65956, 65972, 65988, 66004, 66020, + 66036, 66052, 66068, 66084, 66100, 66116, 66132, 66148, 66164, 66180, + 66196, 66212, 66228, 66244, 66260, 66276, 66292, 66308, 66324, 66340, + 66356, 66372, 66388, 66404, 66420, 66436, 66452, 66468, 66484, 66500, + 66516, 66532, 66548, 66564, 66580, 66596, 66612, 66628, 66644, 66660, + 66676, 66692, 66708, 66724, 66740, 66756, 66772, 66788, 66804, 66820, + 66836, 66852, 66868, 66884, 66900, 66916, 66932, 66948, 66964, 66980, + 66996, 67012, 67028, 67044, 67060, 67076, 67092, 67108, 67124, 67140, + 67156, 67172, 67188, 67204, 67220, 67236, 67252, 67268, 67284, 67300, + 67316, 67332, 67348, 67364, 67380, 67396, 67412, 67428, 67444, 67460, + 67476, 67492, 67508, 67524, 67540, 67556, 67572, 67588, 67604, 67620, + 67636, 67652, 67668, 67684, 67700, 67716, 67732, 67748, 67764, 67780, + 67796, 67812, 67828, 67844, 67860, 67876, 67892, 67908, 67924, 67940, + 67956, 67972, 67988, 68004, 68020, 68036, 68052, 68068, 68084, 68100, + 68116, 68132, 68148, 68164, 68180, 68196, 68212, 68228, 68244, 68260, + 68276, 68292, 68308, 68324, 68340, 68356, 68372, 68388, 68404, 68420, + 68436, 68452, 68468, 68484, 68500, 68516, 68532, 68548, 68564, 68580, + 68596, 68612, 68628, 68644, 68660, 68669, 68684, 68698, 17657, 68707, + 68712, 68718, 68724, 68734, 68742, 17914, 18645, 9257, 68755, 1434, 1438, + 68763, 4262, 33273, 8090, 68769, 68774, 68779, 68784, 68789, 68795, + 68800, 68806, 68811, 68817, 68822, 68827, 68832, 68837, 68843, 68848, + 68853, 68858, 68863, 68868, 68873, 68878, 68884, 68889, 68895, 68902, + 2707, 68907, 68913, 9632, 68917, 68922, 68929, 68937, 4273, 4278, 4283, + 4288, 65, 68941, 68947, 68952, 68957, 68961, 68966, 68970, 68974, 12759, + 68978, 68988, 69001, 69012, 69025, 69032, 69038, 69046, 12220, 69053, + 69058, 69064, 69070, 69076, 69081, 69086, 69091, 69096, 69100, 69105, + 69110, 69115, 69121, 69127, 69133, 69138, 69142, 69147, 69152, 69156, + 69161, 69166, 69171, 69175, 12775, 12786, 12791, 1477, 69179, 69185, + 1482, 19679, 69190, 19688, 1492, 69195, 69201, 69206, 1513, 69212, 1519, + 1525, 12821, 69217, 69226, 69234, 69242, 69249, 69253, 69257, 69263, + 69268, 37525, 69273, 69280, 69288, 69295, 69300, 69304, 69308, 69317, + 69322, 69327, 69332, 1530, 280, 69337, 69342, 69346, 19814, 1007, 69350, + 69357, 69362, 69366, 19872, 1534, 46217, 69369, 69374, 69384, 69393, + 69398, 69402, 69408, 1539, 49314, 69413, 69422, 69428, 69433, 69438, + 13060, 13066, 69444, 69456, 69473, 69490, 69507, 69524, 69541, 69558, + 69575, 69592, 69609, 69626, 69643, 69660, 69677, 69694, 69711, 69728, + 69745, 69762, 69779, 69796, 69813, 69830, 69847, 69864, 69881, 69898, + 69915, 69932, 69949, 69966, 69983, 70000, 70017, 70034, 70051, 70068, + 70085, 70102, 70119, 70136, 70153, 70170, 70187, 70204, 70221, 70238, + 70255, 70272, 70289, 70300, 70310, 70315, 1544, 70319, 70324, 70330, + 70335, 70340, 70347, 10657, 1549, 70353, 70362, 33662, 70367, 70378, + 13082, 70388, 70393, 70399, 70404, 70411, 70417, 70422, 1554, 20166, + 70427, 70433, 13092, 70439, 70444, 70449, 70454, 70459, 70464, 70469, + 70474, 1559, 4753, 70479, 70484, 70490, 70495, 70500, 70505, 70510, + 70515, 70520, 70525, 70530, 70536, 70542, 70548, 70553, 70557, 70562, + 70567, 70571, 70576, 70581, 70586, 70591, 70595, 70600, 70606, 70611, + 70616, 70620, 70625, 70630, 70636, 70641, 70646, 70652, 70658, 70663, + 70667, 70672, 70677, 70682, 70686, 70691, 70696, 70701, 70707, 70713, + 70718, 70722, 70726, 70731, 70736, 70741, 35430, 70745, 70750, 70755, + 70761, 70766, 70771, 70775, 70780, 70785, 70791, 70796, 70801, 70807, + 70813, 70818, 70822, 70827, 70832, 70836, 70841, 70846, 70851, 70857, + 70863, 70868, 70872, 70877, 70882, 70886, 70891, 70896, 70901, 70906, + 70910, 70913, 70916, 70921, 70926, 38252, 70933, 70941, 49930, 70947, + 3934, 33605, 70960, 70967, 70973, 70979, 4113, 70984, 13234, 70990, + 71000, 71015, 71023, 13239, 71034, 71039, 71050, 71062, 71074, 71086, + 2909, 71098, 71103, 31655, 71115, 71121, 71127, 71132, 71141, 71148, + 71153, 71158, 71163, 71168, 71173, 71178, 1576, 19306, 71183, 71188, + 71193, 71198, 71204, 71209, 71215, 71220, 71225, 71231, 71236, 71241, + 49388, 71245, 71249, 71254, 71258, 20314, 71263, 71266, 71271, 71279, + 71287, 1580, 13275, 13281, 1585, 71295, 71302, 71307, 71316, 71326, + 71333, 71338, 71343, 1590, 71350, 71355, 20434, 71359, 71364, 71371, + 71377, 71381, 71394, 71400, 71411, 71421, 71428, 20456, 10551, 10558, + 4347, 4353, 71435, 1595, 71440, 71449, 71455, 71463, 71470, 71476, 71483, + 71495, 71501, 71506, 71513, 71525, 71536, 71546, 71555, 71565, 71575, + 4241, 71583, 37319, 37328, 20496, 71596, 71601, 71606, 71611, 71616, + 71621, 71626, 1600, 1604, 71631, 71635, 71638, 71649, 71654, 20522, 1614, + 71662, 71667, 71672, 20555, 71684, 71687, 71693, 71699, 71704, 71712, + 1619, 71717, 71722, 71730, 71738, 71745, 71754, 71762, 71771, 71775, + 1624, 71784, 1629, 25899, 71789, 71796, 71802, 20642, 71810, 71820, + 71826, 71831, 71839, 71846, 71855, 71863, 71873, 71882, 71892, 71901, + 71912, 71922, 71932, 71941, 71951, 71965, 71978, 71987, 71995, 72005, + 72014, 72026, 72037, 72048, 72058, 19934, 72063, 13427, 72072, 72078, + 72083, 72090, 72096, 72103, 72109, 19523, 72119, 72125, 72130, 72141, + 72148, 72155, 72160, 72168, 13444, 13449, 72176, 72182, 72186, 4331, + 4342, 20718, 49484, 72194, 72200, 72205, 72213, 72220, 14556, 72225, + 72231, 72237, 1640, 72242, 72245, 72251, 72256, 72261, 72266, 72271, + 72276, 72281, 72286, 72291, 72297, 72303, 1339, 72308, 72313, 72318, + 72324, 72329, 72334, 72339, 72344, 72349, 72354, 1649, 18, 72360, 72364, + 72369, 72373, 72377, 72381, 38538, 72386, 28206, 72391, 72396, 72400, + 72403, 72407, 72411, 72416, 72420, 72425, 72429, 72432, 72438, 42190, + 42195, 42200, 72441, 72448, 72454, 72462, 49086, 72472, 72478, 42206, + 38802, 38553, 38559, 42222, 38565, 72483, 72488, 72492, 38835, 72499, + 72502, 72506, 72514, 72521, 72526, 72529, 72534, 72539, 72543, 72547, + 72550, 72560, 72572, 72579, 72585, 38570, 72592, 40521, 72595, 9649, + 13789, 72598, 72602, 72607, 4156, 72611, 72614, 16288, 72621, 72628, + 72641, 72656, 72670, 72686, 72701, 72710, 72718, 72726, 72735, 72744, + 72750, 72755, 72765, 72778, 72790, 72797, 72802, 72811, 72824, 43897, + 72842, 72847, 72854, 72860, 72865, 895, 72870, 72878, 72885, 72892, + 33089, 911, 72898, 72904, 72909, 72919, 72927, 72933, 72938, 38589, 6844, + 38603, 72942, 72952, 72957, 72965, 72975, 72990, 72996, 73002, 73009, + 38613, 73014, 37663, 73018, 73023, 73032, 73039, 73044, 73048, 73053, + 73061, 20499, 73068, 73073, 73077, 6885, 38639, 73081, 73087, 345, 73097, + 73104, 73111, 73117, 73124, 73129, 73138, 15909, 69378, 69388, 73144, + 73152, 73156, 73160, 73164, 73168, 73173, 73177, 73183, 73191, 73196, + 73201, 73208, 73213, 73217, 73222, 73226, 73230, 73236, 73247, 73253, + 73258, 73262, 73267, 73271, 38763, 73275, 38769, 38775, 73280, 73286, + 73293, 73298, 73302, 37680, 20153, 73305, 73309, 73314, 73321, 73327, + 73331, 73336, 48555, 73342, 73346, 73353, 73357, 73362, 73368, 73374, + 73380, 73392, 73401, 73411, 73417, 73424, 73429, 73434, 73438, 73441, + 73447, 73454, 73459, 73464, 73471, 73478, 73485, 73491, 73496, 73501, + 73509, 38780, 2537, 73514, 73519, 73525, 73530, 73536, 73541, 73546, + 73551, 73557, 38801, 73562, 73568, 73574, 73580, 38871, 73585, 73590, + 73595, 38882, 73600, 73605, 73610, 73616, 73622, 38887, 73627, 73632, + 73637, 38942, 38948, 73642, 73647, 38953, 38975, 33947, 38981, 38985, + 73652, 14232, 73656, 73664, 73670, 73678, 73685, 73691, 73701, 73707, + 73714, 12659, 38999, 73720, 73733, 73742, 73748, 73757, 73763, 73769, + 73776, 28549, 73784, 73791, 73801, 73809, 73812, 38943, 73817, 73824, + 73829, 73833, 73837, 73842, 73846, 4470, 73851, 73856, 73861, 42284, + 42289, 73865, 42303, 73870, 42308, 73875, 73881, 42320, 42326, 42332, + 73886, 73892, 27447, 73903, 73906, 73918, 73926, 39022, 73930, 73939, + 73949, 73958, 39032, 73963, 73970, 73979, 73985, 73993, 74000, 74007, + 6936, 5160, 74012, 38954, 74018, 74021, 74027, 74034, 74039, 74044, + 28453, 74048, 74054, 74060, 74065, 74070, 74074, 74080, 74086, 40405, + 74091, 43500, 45323, 45329, 39063, 39068, 74095, 74099, 74103, 74106, + 74119, 74125, 74129, 74132, 74137, 40774, 74141, 37685, 25840, 74147, + 6865, 6873, 10357, 74150, 74155, 74160, 74165, 74170, 74175, 74180, + 74185, 74190, 74195, 74201, 74206, 74211, 74217, 74222, 74227, 74232, + 74237, 74242, 74247, 74253, 74258, 74264, 74269, 74274, 74279, 74284, + 74289, 74294, 74299, 74304, 74309, 74314, 74320, 74325, 74330, 74335, + 74340, 74345, 74350, 74356, 74361, 74366, 74371, 74376, 74381, 74386, + 74391, 74396, 74401, 74407, 74412, 74417, 74422, 74427, 74433, 74439, + 74444, 74450, 74455, 74460, 74465, 74470, 74475, 1427, 156, 74480, 74484, + 74488, 74492, 30391, 74496, 74500, 74505, 74509, 74514, 74518, 74523, + 74528, 74533, 74538, 74542, 74546, 74551, 74555, 15988, 74560, 74564, + 74571, 74581, 18283, 74590, 74599, 74603, 74608, 74613, 74617, 74621, + 30171, 3265, 74625, 74631, 21731, 74635, 74644, 74652, 74658, 74663, + 74675, 74687, 74692, 74696, 74701, 74705, 74711, 74717, 74722, 74732, + 74742, 74748, 74756, 74761, 74765, 74771, 74776, 74783, 74789, 74794, + 74801, 74810, 74819, 74827, 74831, 18839, 74834, 74843, 74851, 74863, + 74874, 74885, 74894, 74898, 74907, 74915, 74925, 74933, 74940, 74950, + 74956, 74961, 74968, 74977, 74983, 74988, 74995, 75001, 75012, 60, 37462, + 75018, 31942, 31952, 75024, 75032, 75039, 75045, 75049, 75059, 75070, + 75078, 75087, 75092, 75097, 75102, 75106, 75110, 75118, 21678, 75125, + 75129, 75135, 75145, 75152, 75158, 75164, 42383, 75168, 75170, 75173, + 75179, 75183, 75194, 75204, 75210, 75217, 75224, 15925, 75232, 75238, + 75247, 75256, 75262, 11559, 75268, 75274, 75279, 75284, 75291, 75296, + 75303, 75309, 75314, 75322, 75335, 75344, 75353, 71927, 71937, 75363, + 75369, 75378, 75384, 75390, 75397, 75404, 75411, 75418, 75425, 75430, + 75434, 75438, 75441, 75451, 75455, 75467, 10018, 75476, 75487, 75492, + 75496, 71946, 75502, 75509, 75518, 75526, 75534, 75539, 75543, 75548, + 75553, 75563, 75571, 75583, 75588, 75592, 75596, 75602, 75610, 75617, + 75629, 75637, 75648, 75655, 75661, 75671, 75677, 75681, 75690, 75699, + 75706, 75712, 75717, 75721, 75725, 75729, 75738, 75747, 75756, 75763, + 75769, 75775, 75781, 75786, 75793, 75799, 75807, 75814, 75820, 15020, + 75825, 75831, 75835, 17140, 75839, 75844, 75854, 75859, 75868, 75874, + 75880, 75888, 75895, 75899, 75903, 75910, 75916, 75924, 75931, 75937, + 75948, 75952, 75956, 75960, 75963, 75969, 75974, 75979, 75983, 75987, + 75996, 76004, 76011, 76017, 76024, 29213, 48696, 76029, 76037, 76041, + 76045, 76048, 76056, 76063, 76069, 76078, 76086, 76092, 76097, 76101, + 76106, 76111, 76115, 76119, 76123, 76128, 76137, 76141, 76148, 45427, + 76152, 76158, 76166, 76170, 76176, 76184, 76190, 76195, 76206, 76214, + 76220, 76229, 27594, 76237, 76244, 76251, 76258, 76265, 76272, 52348, + 15740, 76279, 76286, 76291, 42419, 4713, 76297, 76302, 76307, 76313, + 76319, 76325, 76330, 76335, 76340, 76345, 76351, 76356, 76362, 76367, + 76373, 76378, 76383, 76388, 76393, 76398, 76403, 76408, 76414, 76419, + 76425, 76430, 76435, 76440, 76445, 76450, 76455, 76461, 76466, 76471, + 76476, 76481, 76486, 76491, 76496, 76501, 76506, 76511, 76517, 76522, + 76527, 76532, 76537, 76542, 76547, 76552, 76557, 76563, 76568, 76573, + 76578, 76583, 76588, 76593, 76598, 76603, 76608, 76613, 76618, 76623, + 76629, 1889, 305, 76634, 46335, 46340, 76638, 76643, 9273, 76647, 3634, + 76652, 76657, 76661, 76670, 76681, 76698, 76716, 76724, 75530, 76731, + 76734, 76744, 76751, 76760, 76776, 76785, 76795, 76800, 76813, 76823, + 76832, 76840, 76854, 76862, 76871, 76875, 76878, 76885, 76891, 76902, + 76909, 76921, 76932, 76943, 76952, 76959, 1179, 809, 76969, 2750, 76973, + 76978, 76987, 1025, 9039, 25276, 76995, 77003, 77017, 77030, 77034, + 77039, 77044, 77049, 77055, 77061, 77066, 9641, 18326, 77071, 77075, + 77083, 10078, 77088, 77094, 77103, 77111, 1663, 13288, 1185, 4385, 77115, + 77119, 77128, 77138, 2488, 32788, 77147, 77153, 20406, 32803, 77159, + 4550, 13670, 77165, 77172, 71644, 77176, 77180, 77186, 77191, 77196, + 3867, 163, 3893, 77201, 77213, 77217, 77221, 77227, 77232, 33682, 77236, + 13658, 2944, 4, 77241, 77251, 77262, 77273, 77283, 77289, 77300, 77307, + 77313, 77319, 2312, 77324, 77332, 77339, 77345, 77355, 77365, 77375, + 77384, 28536, 1191, 77389, 77393, 77397, 77403, 77407, 2967, 2973, 9638, + 2343, 77411, 77415, 77424, 77432, 77443, 77451, 77459, 77465, 77470, + 77481, 77492, 77500, 77506, 77511, 11336, 77521, 77529, 77533, 77537, + 77542, 77546, 77558, 34145, 18225, 77565, 77575, 77581, 77587, 7963, + 11470, 77597, 77608, 77619, 77629, 77638, 77642, 77649, 1027, 2737, + 77659, 77664, 77672, 71360, 77680, 77685, 77696, 77703, 77717, 16936, + 529, 77727, 77734, 77738, 77742, 77750, 77759, 77767, 77773, 20451, + 77778, 77792, 77799, 77805, 77813, 77822, 77831, 77838, 77850, 77860, + 77868, 77875, 77883, 77890, 4349, 116, 77898, 77909, 77913, 77925, 77931, + 1810, 227, 77936, 10689, 77941, 3012, 77945, 77952, 77958, 77969, 77979, + 77987, 77994, 10029, 78001, 78010, 78018, 4430, 78031, 4447, 78035, + 78040, 78046, 78051, 78056, 78061, 3017, 573, 78067, 78080, 78084, 78089, + 78094, 3022, 1888, 760, 78098, 4451, 78106, 78112, 78116, 803, 78126, + 78135, 78140, 3884, 78144, 17957, 17964, 9297, 78148, 4482, 4359, 15618, + 78156, 78163, 78168, 28600, 78172, 78179, 78185, 13926, 78190, 13991, + 204, 78195, 78207, 78213, 78221, 3034, 1705, 78229, 78231, 78236, 78241, + 78246, 78252, 78257, 78262, 78267, 78272, 78277, 78282, 78288, 78293, + 78298, 78303, 78308, 78313, 78318, 78323, 78328, 78334, 78339, 78344, + 78349, 78355, 78360, 78366, 78371, 78376, 78381, 78386, 78391, 78396, + 78401, 78407, 78412, 78418, 78423, 78428, 78433, 78438, 78443, 78448, + 78453, 78458, 9710, 9723, 4498, 4503, 4508, 4513, 26, 78464, 78470, + 78475, 78480, 78485, 78491, 78496, 78500, 78504, 78509, 78515, 78519, + 78525, 78530, 78535, 78541, 78546, 78550, 78555, 78560, 78564, 78567, + 78569, 78573, 78576, 78583, 78588, 78592, 78597, 78601, 78605, 78609, + 78615, 78626, 78646, 78665, 78686, 78699, 78711, 78720, 78724, 78727, + 39340, 78730, 39345, 78737, 78742, 39350, 78751, 78760, 39356, 78765, + 39361, 78774, 78779, 13915, 78783, 78788, 78793, 39366, 78797, 78806, + 50533, 78810, 78813, 78817, 9305, 78823, 78826, 78831, 78836, 78841, + 78845, 4171, 39371, 78848, 78852, 78855, 78866, 78871, 78875, 78881, + 78889, 78902, 78906, 78914, 78923, 78929, 78934, 78940, 78944, 78950, + 78956, 78964, 78969, 78973, 78980, 78986, 78994, 79003, 79011, 39374, + 79018, 79028, 79037, 79045, 79056, 79069, 79074, 79079, 79083, 79092, + 79098, 79105, 79118, 79130, 79141, 79153, 79160, 79169, 79178, 79187, + 79194, 79200, 79207, 79215, 79222, 79230, 79239, 79247, 79254, 79262, + 79271, 79279, 79288, 79298, 79307, 79315, 79322, 79330, 79339, 79347, + 79356, 79366, 79375, 79383, 79392, 79402, 79411, 79421, 79432, 79442, + 79451, 79459, 79466, 79474, 79483, 79491, 79500, 79510, 79519, 79527, + 79536, 79546, 79555, 79565, 79576, 79586, 79595, 79603, 79612, 79622, + 79631, 79641, 79652, 79662, 79671, 79681, 79692, 79702, 79713, 79725, + 79736, 79746, 79755, 79763, 79770, 79778, 79787, 79795, 79804, 79814, + 79823, 79831, 79840, 79850, 79859, 79869, 79880, 79890, 79899, 79907, + 79916, 79926, 79935, 79945, 79956, 79966, 79975, 79985, 79996, 80006, + 80017, 80029, 80040, 80050, 80059, 80067, 80076, 80086, 80095, 80105, + 80116, 80126, 80135, 80145, 80156, 80166, 80177, 80189, 80200, 80210, + 80219, 80229, 80240, 80250, 80261, 80273, 80284, 80294, 80305, 80317, + 80328, 80340, 80353, 80365, 80376, 80386, 80395, 80403, 80410, 80418, + 80427, 80435, 80444, 80454, 80463, 80471, 80480, 80490, 80499, 80509, + 80520, 80530, 80539, 80547, 80556, 80566, 80575, 80585, 80596, 80606, + 80615, 80625, 80636, 80646, 80657, 80669, 80680, 80690, 80699, 80707, + 80716, 80726, 80735, 80745, 80756, 80766, 80775, 80785, 80796, 80806, + 80817, 80829, 80840, 80850, 80859, 80869, 80880, 80890, 80901, 80913, + 80924, 80934, 80945, 80957, 80968, 80980, 80993, 81005, 81016, 81026, + 81035, 81043, 81052, 81062, 81071, 81081, 81092, 81102, 81111, 81121, + 81132, 81142, 81153, 81165, 81176, 81186, 81195, 81205, 81216, 81226, + 81237, 81249, 81260, 81270, 81281, 81293, 81304, 81316, 81329, 81341, + 81352, 81362, 81371, 81381, 81392, 81402, 81413, 81425, 81436, 81446, + 81457, 81469, 81480, 81492, 81505, 81517, 81528, 81538, 81549, 81561, + 81572, 81584, 81597, 81609, 81620, 81632, 81645, 81657, 81670, 81684, + 81697, 81709, 81720, 81730, 81739, 81747, 81754, 81759, 9070, 81766, + 81771, 39384, 81777, 81782, 39389, 81788, 25398, 31390, 81793, 81799, + 81805, 81813, 81819, 81825, 81832, 81839, 81844, 81849, 81853, 81858, + 81862, 81865, 81869, 81874, 81883, 81892, 81900, 81906, 81918, 81929, + 81933, 3327, 9045, 81938, 81941, 81944, 81946, 81950, 81954, 81958, + 81964, 81969, 31453, 81974, 81978, 81981, 81986, 81990, 81997, 82003, + 82007, 7046, 82011, 82016, 39411, 82020, 82027, 82036, 82044, 82050, + 82061, 82069, 82078, 82086, 82093, 82100, 82106, 82111, 82122, 39416, + 82127, 82138, 82150, 82158, 82169, 82178, 82186, 82197, 82202, 82210, + 2702, 82215, 82224, 41789, 82237, 82241, 82253, 82261, 82266, 82274, + 82285, 21896, 82294, 82300, 82307, 82315, 82321, 39426, 82326, 4476, + 68738, 82333, 82336, 82344, 82357, 82370, 82383, 82396, 82403, 82414, + 82423, 82428, 52165, 52170, 82432, 82436, 82444, 82451, 82460, 82468, + 82474, 82483, 82491, 82498, 82506, 82510, 82519, 82528, 82538, 82551, + 82564, 82574, 39431, 82580, 82587, 82593, 82599, 39437, 82604, 82607, + 82611, 82619, 82628, 51941, 82636, 82645, 82653, 82660, 82668, 82678, + 82687, 82696, 40947, 82705, 82716, 82731, 82741, 10727, 26214, 82750, + 82755, 82760, 82764, 19515, 82769, 82774, 82780, 82785, 82790, 82796, + 82801, 82806, 26174, 82811, 82818, 82826, 82834, 82842, 82847, 82854, + 82861, 82866, 1723, 82870, 82874, 82882, 82890, 39454, 82896, 82902, + 82914, 82920, 82927, 82931, 82938, 82943, 82950, 82956, 82963, 82974, + 82984, 82994, 83006, 83012, 83020, 83029, 83035, 83045, 83055, 39481, + 83064, 83073, 83079, 83091, 83102, 83109, 83114, 83118, 83126, 83137, + 83143, 83148, 83153, 83160, 83168, 83180, 83190, 83199, 83208, 83216, + 83223, 41603, 28974, 83229, 83234, 83238, 83242, 83247, 83255, 83261, + 83272, 83285, 83290, 83297, 39486, 83302, 83314, 83323, 83331, 83341, + 83352, 83365, 83372, 83381, 83390, 83398, 83403, 83409, 83413, 1416, + 83418, 83423, 83428, 83433, 83439, 83444, 83449, 83455, 83461, 83466, + 83470, 83475, 83480, 83485, 69313, 83490, 83495, 83500, 83505, 83511, + 83517, 83522, 83526, 83531, 19514, 83536, 83542, 83547, 83553, 83558, + 83563, 83568, 83573, 83577, 83583, 83588, 83597, 83602, 83607, 83612, + 83617, 83621, 83628, 83634, 4822, 20768, 3292, 83639, 83643, 83648, + 83652, 83656, 83660, 55965, 83664, 83589, 83666, 83676, 39495, 83679, + 83684, 83693, 83699, 7005, 39500, 83703, 83709, 83714, 83720, 83725, + 83729, 83736, 83741, 83751, 83760, 83764, 83770, 83776, 83782, 83786, + 83794, 83801, 83809, 83817, 39505, 83824, 83827, 83838, 83845, 83851, + 83856, 83860, 83866, 83874, 83881, 83886, 83890, 83899, 83907, 83913, + 83918, 39510, 83925, 28426, 83937, 83943, 83948, 83954, 83961, 83967, + 25862, 33296, 83973, 83978, 83984, 83988, 84000, 83622, 83629, 26106, + 84010, 84015, 84022, 84028, 84035, 84041, 84052, 84057, 84065, 10427, + 84070, 84073, 84079, 84083, 84087, 84090, 84096, 84102, 39199, 4823, + 1431, 16037, 84109, 84115, 84121, 84127, 84133, 84139, 84145, 84151, + 84157, 84162, 84167, 84172, 84177, 84182, 84187, 84192, 84197, 84202, + 84207, 84212, 84217, 84222, 84228, 84233, 84238, 84244, 84249, 84254, + 84260, 84266, 84272, 84278, 84284, 84290, 84296, 84302, 84308, 84313, + 84318, 84324, 84329, 84334, 84340, 84345, 84350, 84355, 84360, 84365, + 84370, 84375, 84380, 84385, 84390, 84395, 84400, 84406, 84411, 84416, + 84421, 84427, 84432, 84437, 84442, 84447, 84453, 84458, 84463, 84468, + 84473, 84478, 84483, 84488, 84493, 84498, 84503, 84508, 84513, 84518, + 84523, 84528, 84533, 84538, 84543, 84548, 84554, 84559, 84564, 84569, + 84574, 84579, 84584, 84589, 1062, 159, 84594, 84598, 84602, 84607, 84615, + 84619, 84631, 84638, 84646, 84650, 84663, 84671, 84676, 84681, 32005, + 84685, 84690, 84694, 84699, 84703, 84711, 84715, 25406, 84720, 84724, + 72190, 84728, 84731, 84739, 84747, 84755, 84760, 84765, 84772, 84779, + 84785, 84791, 84796, 84803, 84808, 84816, 77022, 84823, 84828, 71956, + 84835, 84841, 84846, 84850, 84857, 84863, 84870, 71983, 14005, 84878, + 84883, 84888, 84892, 84895, 84906, 84915, 84921, 84926, 84930, 84940, + 84949, 50324, 84953, 84957, 84964, 84977, 84983, 84991, 84998, 85007, + 85018, 85029, 85040, 85051, 85060, 85066, 85075, 85083, 85093, 85106, + 85114, 85121, 85132, 85141, 85147, 85152, 85157, 85163, 85173, 85179, + 85189, 85197, 85204, 85214, 85223, 83304, 85231, 85237, 85245, 85251, + 75575, 85258, 85263, 85266, 85270, 85276, 85280, 85283, 85291, 85297, + 85303, 85311, 85323, 85335, 85342, 85347, 85351, 85362, 85370, 85377, + 85389, 85397, 85404, 85412, 85419, 85425, 85430, 85436, 85446, 85455, + 85463, 85468, 85478, 85487, 51202, 85494, 85498, 85503, 85511, 85518, + 85524, 85528, 85538, 85549, 85557, 85564, 85576, 85588, 85597, 82227, + 85604, 85614, 85626, 85637, 85651, 85659, 85669, 85676, 85684, 85697, + 85709, 85718, 85726, 85736, 85747, 85759, 85768, 85778, 85788, 85797, + 85804, 85813, 85828, 85836, 85846, 85855, 85863, 85876, 68708, 85891, + 85901, 85910, 85922, 85932, 85944, 85955, 85969, 85983, 85997, 86011, + 86025, 86039, 86053, 86067, 86081, 86095, 86109, 86123, 86137, 86151, + 86165, 86179, 86193, 86207, 86221, 86235, 86249, 86263, 86277, 86291, + 86305, 86319, 86333, 86347, 86361, 86375, 86389, 86403, 86417, 86431, + 86445, 86459, 86473, 86487, 86501, 86515, 86529, 86543, 86557, 86571, + 86585, 86599, 86613, 86627, 86641, 86655, 86669, 86683, 86697, 86711, + 86725, 86739, 86753, 86767, 86781, 86795, 86809, 86823, 86837, 86851, + 86865, 86879, 86893, 86907, 86921, 86935, 86949, 86963, 86977, 86991, + 87005, 87019, 87033, 87047, 87061, 87075, 87089, 87103, 87117, 87131, + 87145, 87159, 87173, 87187, 87201, 87215, 87229, 87243, 87257, 87271, + 87285, 87299, 87313, 87327, 87341, 87355, 87369, 87383, 87397, 87411, + 87425, 87439, 87453, 87467, 87481, 87495, 87509, 87523, 87537, 87551, + 87565, 87579, 87593, 87607, 87621, 87635, 87649, 87663, 87677, 87691, + 87705, 87719, 87733, 87747, 87761, 87775, 87789, 87803, 87817, 87831, + 87845, 87859, 87873, 87887, 87901, 87915, 87929, 87943, 87957, 87971, + 87985, 87999, 88013, 88027, 88041, 88055, 88069, 88083, 88097, 88111, + 88125, 88139, 88153, 88167, 88181, 88195, 88209, 88223, 88237, 88251, + 88265, 88279, 88293, 88307, 88321, 88335, 88349, 88363, 88377, 88391, + 88405, 88419, 88433, 88447, 88461, 88475, 88489, 88503, 88517, 88531, + 88545, 88559, 88573, 88587, 88601, 88615, 88629, 88643, 88657, 88671, + 88685, 88699, 88713, 88727, 88741, 88755, 88769, 88783, 88797, 88811, + 88825, 88839, 88853, 88867, 88881, 88895, 88909, 88923, 88937, 88951, + 88965, 88979, 88993, 89007, 89021, 89035, 89049, 89063, 89077, 89091, + 89105, 89119, 89133, 89147, 89161, 89175, 89189, 89203, 89217, 89231, + 89245, 89259, 89273, 89287, 89301, 89315, 89329, 89343, 89357, 89371, + 89385, 89399, 89413, 89427, 89441, 89455, 89469, 89483, 89497, 89511, + 89525, 89539, 89553, 89567, 89581, 89595, 89609, 89623, 89637, 89651, + 89665, 89679, 89693, 89707, 89721, 89735, 89749, 89763, 89777, 89791, + 89805, 89819, 89833, 89847, 89861, 89875, 89889, 89903, 89917, 89931, + 89945, 89959, 89973, 89987, 90001, 90015, 90029, 90043, 90057, 90071, + 90085, 90099, 90113, 90127, 90141, 90155, 90169, 90183, 90197, 90211, + 90225, 90239, 90253, 90267, 90281, 90295, 90309, 90323, 90337, 90351, + 90365, 90379, 90393, 90407, 90421, 90435, 90449, 90463, 90477, 90491, + 90505, 90519, 90533, 90547, 90561, 90575, 90589, 90603, 90617, 90631, + 90645, 90659, 90673, 90687, 90701, 90715, 90729, 90743, 90757, 90771, + 90785, 90799, 90813, 90827, 90841, 90855, 90869, 90883, 90897, 90911, + 90925, 90939, 90953, 90967, 90981, 90995, 91009, 91023, 91037, 91051, + 91065, 91079, 91093, 91107, 91121, 91135, 91149, 91163, 91177, 91191, + 91205, 91219, 91233, 91247, 91261, 91275, 91289, 91303, 91317, 91331, + 91345, 91359, 91373, 91387, 91401, 91415, 91429, 91443, 91457, 91471, + 91485, 91499, 91513, 91527, 91541, 91555, 91569, 91583, 91597, 91611, + 91625, 91639, 91653, 91667, 91681, 91695, 91709, 91723, 91737, 91751, + 91765, 91779, 91793, 91807, 91821, 91835, 91849, 91863, 91877, 91891, + 91905, 91919, 91933, 91947, 91961, 91975, 91989, 92003, 92017, 92031, + 92045, 92059, 92073, 92087, 92101, 92115, 92129, 92143, 92157, 92171, + 92185, 92199, 92213, 92227, 92241, 92255, 92269, 92283, 92297, 92311, + 92325, 92339, 92353, 92367, 92381, 92395, 92409, 92423, 92437, 92451, + 92465, 92479, 92493, 92507, 92521, 92535, 92549, 92563, 92577, 92591, + 92605, 92619, 92633, 92647, 92661, 92675, 92689, 92703, 92717, 92731, + 92745, 92759, 92773, 92787, 92801, 92815, 92829, 92843, 92857, 92871, + 92885, 92899, 92913, 92927, 92941, 92955, 92969, 92983, 92997, 93011, + 93025, 93039, 93053, 93067, 93081, 93095, 93109, 93123, 93137, 93151, + 93165, 93179, 93193, 93207, 93221, 93235, 93249, 93263, 93277, 93291, + 93305, 93319, 93333, 93347, 93361, 93375, 93389, 93403, 93417, 93431, + 93445, 93459, 93473, 93487, 93501, 93515, 93529, 93543, 93557, 93571, + 93585, 93599, 93613, 93627, 93641, 93655, 93669, 93683, 93697, 93711, + 93725, 93739, 93753, 93767, 93781, 93795, 93809, 93823, 93837, 93851, + 93865, 93879, 93893, 93907, 93921, 93935, 93949, 93963, 93977, 93991, + 94005, 94019, 94033, 94047, 94061, 94075, 94089, 94103, 94117, 94131, + 94145, 94159, 94173, 94187, 94201, 94215, 94229, 94243, 94257, 94271, + 94285, 94299, 94313, 94327, 94341, 94355, 94369, 94383, 94397, 94411, + 94425, 94439, 94453, 94467, 94481, 94495, 94509, 94523, 94537, 94551, + 94565, 94579, 94593, 94607, 94621, 94635, 94649, 94663, 94677, 94691, + 94705, 94719, 94733, 94747, 94761, 94775, 94789, 94803, 94817, 94831, + 94845, 94859, 94873, 94887, 94901, 94915, 94929, 94943, 94957, 94971, + 94985, 94999, 95013, 95027, 95041, 95055, 95069, 95083, 95097, 95111, + 95125, 95139, 95153, 95167, 95181, 95195, 95209, 95223, 95237, 95251, + 95265, 95279, 95293, 95307, 95321, 95335, 95349, 95363, 95377, 95391, + 95405, 95419, 95433, 95447, 95461, 95475, 95489, 95503, 95517, 95531, + 95545, 95559, 95573, 95587, 95601, 95615, 95629, 95643, 95657, 95671, + 95685, 95699, 95713, 95727, 95741, 95755, 95769, 95783, 95797, 95811, + 95825, 95839, 95853, 95867, 95881, 95895, 95909, 95923, 95937, 95951, + 95965, 95979, 95993, 96007, 96021, 96035, 96049, 96063, 96077, 96091, + 96105, 96119, 96133, 96147, 96161, 96175, 96189, 96203, 96217, 96231, + 96245, 96259, 96273, 96287, 96301, 96315, 96329, 96343, 96357, 96371, + 96385, 96399, 96413, 96427, 96441, 96455, 96469, 96483, 96497, 96511, + 96525, 96539, 96553, 96567, 96581, 96595, 96609, 96623, 96637, 96651, + 96665, 96679, 96693, 96707, 96716, 96727, 96738, 96748, 96759, 96767, + 96775, 96781, 96791, 96799, 96805, 35311, 96810, 96816, 96825, 96837, + 96842, 96849, 11350, 21916, 96855, 96864, 96869, 96873, 96878, 96885, + 96891, 96896, 96901, 96909, 96917, 96927, 96932, 96940, 14487, 96944, + 96950, 96956, 96962, 96968, 96974, 96980, 96986, 96992, 96998, 97004, + 97010, 97016, 97022, 97028, 97034, 97040, 97046, 97052, 97058, 97064, + 97070, 97076, 97082, 97088, 97094, 97100, 97106, 97112, 97118, 97124, + 97130, 97136, 97142, 97148, 97154, 97160, 97167, 97173, 97179, 97185, + 97191, 97197, 97203, 97209, 97215, 97221, 97227, 97233, 97239, 97245, + 97251, 97257, 97263, 97269, 97275, 97281, 97287, 97293, 97299, 97305, + 97311, 97317, 97323, 97329, 97335, 97341, 97347, 97353, 97359, 97365, + 97371, 97377, 97383, 97389, 97395, 97401, 97407, 97413, 97419, 97425, + 97431, 97437, 97443, 97449, 97455, 97461, 97467, 97474, 97480, 97486, + 97492, 97498, 97504, 97510, 97516, 97522, 97528, 97534, 97540, 97543, + 97545, 97560, 97573, 97580, 97586, 97597, 97602, 97606, 97611, 97618, + 97624, 97629, 97637, 77621, 77631, 97643, 97650, 97660, 12646, 97667, + 97672, 35554, 97681, 97686, 97693, 97703, 97711, 97719, 97728, 97737, + 97743, 97749, 97754, 97761, 97768, 97773, 97777, 97785, 72000, 97790, + 97799, 97807, 97814, 97819, 97823, 97832, 97838, 97841, 97845, 97854, + 97864, 84658, 97873, 97877, 97885, 97889, 97895, 97906, 97916, 21925, + 97927, 97936, 97944, 97952, 97959, 72019, 9875, 97967, 97971, 97980, + 97987, 97990, 97994, 33167, 97997, 98001, 98006, 98023, 98035, 12604, + 98047, 98052, 98057, 98062, 25513, 98066, 98071, 98076, 98082, 98087, + 6626, 98092, 25517, 98097, 98102, 98108, 98115, 98120, 98125, 98131, + 98137, 98143, 98148, 98154, 98158, 98172, 98180, 98188, 98194, 98199, + 98206, 98216, 98225, 98230, 98235, 98240, 98248, 98258, 98269, 98274, + 98280, 98285, 98294, 70435, 4752, 98299, 98317, 98336, 98349, 98363, + 98379, 98386, 98393, 98402, 98409, 98415, 98422, 98427, 98433, 98438, + 98444, 98452, 98458, 98463, 98468, 98484, 12617, 98498, 98505, 98513, + 98519, 98523, 98526, 98532, 98537, 98542, 98550, 98557, 98562, 98571, + 98577, 98582, 98588, 98594, 98603, 98612, 43344, 98617, 98628, 98635, + 98643, 98652, 14078, 98661, 98667, 98675, 98681, 98687, 98693, 98698, + 98705, 98711, 14089, 98716, 98719, 98724, 39537, 98734, 98743, 98748, + 98756, 98763, 98769, 98774, 98782, 98789, 98800, 98816, 98832, 98848, + 98864, 98880, 98896, 98912, 98928, 98944, 98960, 98976, 98992, 99008, + 99024, 99040, 99056, 99072, 99088, 99104, 99120, 99136, 99152, 99168, + 99184, 99200, 99216, 99232, 99248, 99264, 99280, 99296, 99312, 99328, + 99344, 99360, 99376, 99392, 99408, 99424, 99440, 99456, 99472, 99488, + 99504, 99520, 99536, 99552, 99568, 99584, 99600, 99616, 99632, 99648, + 99664, 99680, 99696, 99712, 99728, 99744, 99760, 99776, 99792, 99808, + 99824, 99840, 99856, 99872, 99888, 99904, 99920, 99936, 99952, 99968, + 99984, 100000, 100016, 100032, 100048, 100064, 100080, 100096, 100112, + 100128, 100144, 100160, 100176, 100192, 100208, 100224, 100240, 100256, + 100272, 100288, 100304, 100320, 100336, 100352, 100368, 100384, 100400, + 100416, 100432, 100448, 100464, 100480, 100496, 100512, 100528, 100544, + 100560, 100576, 100592, 100608, 100624, 100640, 100656, 100672, 100688, + 100704, 100720, 100736, 100752, 100768, 100784, 100800, 100816, 100832, + 100848, 100864, 100880, 100896, 100912, 100928, 100944, 100960, 100976, + 100992, 101008, 101024, 101040, 101056, 101072, 101088, 101104, 101120, + 101136, 101152, 101168, 101184, 101200, 101216, 101232, 101248, 101264, + 101280, 101296, 101312, 101328, 101344, 101360, 101376, 101392, 101408, + 101424, 101440, 101456, 101472, 101488, 101504, 101520, 101536, 101552, + 101568, 101584, 101600, 101616, 101632, 101648, 101664, 101680, 101696, + 101712, 101728, 101744, 101760, 101776, 101792, 101808, 101824, 101840, + 101856, 101872, 101888, 101904, 101920, 101936, 101952, 101968, 101984, + 102000, 102016, 102032, 102048, 102064, 102080, 102096, 102112, 102128, + 102144, 102160, 102176, 102192, 102208, 102224, 102240, 102256, 102272, + 102288, 102304, 102320, 102336, 102352, 102368, 102384, 102400, 102416, + 102432, 102448, 102464, 102480, 102496, 102512, 102528, 102544, 102560, + 102576, 102592, 102608, 102624, 102640, 102656, 102672, 102688, 102704, + 102720, 102736, 102752, 102768, 102784, 102800, 102816, 102832, 102848, + 102864, 102880, 102896, 102912, 102928, 102944, 102960, 102976, 102992, + 103008, 103024, 103040, 103056, 103072, 103088, 103104, 103120, 103136, + 103152, 103168, 103184, 103200, 103216, 103232, 103248, 103264, 103280, + 103296, 103312, 103328, 103344, 103360, 103376, 103392, 103408, 103424, + 103440, 103456, 103472, 103488, 103504, 103520, 103536, 103552, 103568, + 103584, 103600, 103616, 103632, 103648, 103664, 103680, 103696, 103712, + 103728, 103744, 103760, 103776, 103792, 103808, 103824, 103840, 103856, + 103872, 103888, 103904, 103920, 103936, 103952, 103968, 103984, 104000, + 104016, 104032, 104048, 104064, 104080, 104096, 104112, 104128, 104144, + 104160, 104176, 104192, 104208, 104224, 104240, 104256, 104272, 104288, + 104304, 104320, 104336, 104352, 104368, 104384, 104400, 104416, 104432, + 104448, 104464, 104480, 104496, 104512, 104528, 104544, 104560, 104576, + 104592, 104608, 104624, 104640, 104656, 104672, 104688, 104704, 104720, + 104736, 104752, 104768, 104784, 104800, 104816, 104832, 104848, 104864, + 104880, 104896, 104912, 104928, 104944, 104960, 104976, 104992, 105008, + 105024, 105040, 105056, 105072, 105088, 105104, 105120, 105136, 105152, + 105168, 105184, 105200, 105216, 105232, 105248, 105264, 105280, 105296, + 105312, 105328, 105344, 105360, 105376, 105392, 105408, 105424, 105440, + 105456, 105472, 105488, 105504, 105520, 105536, 105552, 105568, 105584, + 105600, 105616, 105632, 105648, 105664, 105680, 105696, 105712, 105728, + 105744, 105760, 105776, 105792, 105808, 105824, 105840, 105856, 105872, + 105888, 105904, 105920, 105936, 105952, 105968, 105984, 106000, 106016, + 106032, 106048, 106064, 106080, 106096, 106112, 106128, 106144, 106160, + 106176, 106192, 106208, 106224, 106240, 106256, 106272, 106288, 106304, + 106320, 106336, 106352, 106368, 106384, 106400, 106416, 106432, 106448, + 106464, 106480, 106496, 106512, 106528, 106544, 106560, 106576, 106592, + 106608, 106624, 106640, 106656, 106672, 106688, 106704, 106720, 106736, + 106752, 106768, 106784, 106800, 106816, 106832, 106848, 106864, 106880, + 106896, 106912, 106928, 106944, 106960, 106976, 106992, 107008, 107024, + 107040, 107056, 107072, 107088, 107104, 107120, 107136, 107152, 107168, + 107184, 107200, 107216, 107232, 107248, 107264, 107280, 107296, 107312, + 107328, 107344, 107360, 107376, 107392, 107408, 107424, 107440, 107456, + 107472, 107488, 107504, 107520, 107536, 107552, 107568, 107584, 107600, + 107616, 107632, 107648, 107664, 107680, 107696, 107712, 107728, 107744, + 107760, 107776, 107792, 107808, 107824, 107840, 107856, 107872, 107888, + 107904, 107920, 107936, 107952, 107968, 107984, 108000, 108016, 108032, + 108048, 108064, 108080, 108096, 108112, 108128, 108144, 108160, 108176, + 108192, 108208, 108224, 108240, 108256, 108272, 108288, 108304, 108320, + 108336, 108352, 108368, 108384, 108400, 108416, 108432, 108448, 108464, + 108480, 108496, 108512, 108528, 108544, 108560, 108576, 108592, 108608, + 108624, 108640, 108656, 108672, 108688, 108704, 108720, 108736, 108752, + 108768, 108784, 108800, 108816, 108832, 108848, 108864, 108880, 108896, + 108912, 108928, 108944, 108960, 108976, 108992, 109008, 109024, 109040, + 109056, 109072, 109088, 109104, 109120, 109136, 109152, 109168, 109184, + 109200, 109216, 109232, 109248, 109264, 109280, 109296, 109312, 109328, + 109344, 109360, 109376, 109392, 109408, 109424, 109440, 109456, 109472, + 109488, 109504, 109520, 109536, 109552, 109568, 109584, 109600, 109616, + 109632, 109648, 109664, 109680, 109696, 109712, 109728, 109744, 109760, + 109776, 109792, 109808, 109824, 109840, 109856, 109872, 109888, 109904, + 109920, 109936, 109952, 109968, 109984, 110000, 110016, 110032, 110048, + 110064, 110080, 110096, 110112, 110128, 110144, 110160, 110176, 110192, + 110208, 110224, 110240, 110256, 110272, 110288, 110304, 110320, 110336, + 110352, 110368, 110384, 110400, 110416, 110432, 110448, 110464, 110480, + 110496, 110512, 110528, 110544, 110560, 110576, 110592, 110608, 110624, + 110640, 110656, 110672, 110688, 110704, 110720, 110736, 110752, 110768, + 110784, 110800, 110816, 110832, 110848, 110864, 110880, 110896, 110912, + 110928, 110944, 110960, 110976, 110992, 111008, 111024, 111040, 111056, + 111072, 111088, 111104, 111120, 111136, 111152, 111168, 111184, 111200, + 111216, 111232, 111248, 111264, 111280, 111296, 111312, 111328, 111344, + 111360, 111376, 111392, 111408, 111424, 111440, 111456, 111472, 111488, + 111504, 111520, 111536, 111552, 111568, 111584, 111600, 111616, 111632, + 111648, 111664, 111680, 111696, 111712, 111728, 111744, 111760, 111776, + 111792, 111808, 111824, 111840, 111856, 111872, 111888, 111904, 111920, + 111936, 111952, 111968, 111984, 112000, 112016, 112032, 112048, 112064, + 112080, 112096, 112112, 112128, 112144, 112160, 112176, 112192, 112208, + 112224, 112240, 112256, 112272, 112288, 112304, 112320, 112336, 112352, + 112368, 112384, 112400, 112416, 112432, 112448, 112464, 112480, 112496, + 112512, 112528, 112544, 112560, 112576, 112592, 112608, 112624, 112640, + 112656, 112666, 112675, 112680, 112688, 76945, 112693, 112699, 112704, + 112711, 112720, 112728, 112732, 4330, 112738, 112745, 112751, 112755, + 20517, 46451, 3301, 112760, 112764, 112768, 112775, 112781, 112790, + 112796, 112803, 112807, 112828, 112850, 112866, 112883, 112902, 112911, + 112921, 112929, 112936, 112943, 112949, 33022, 112963, 112967, 112973, + 112981, 112993, 112999, 113007, 113014, 113019, 113024, 113028, 113036, + 113043, 113047, 113053, 113059, 113064, 3978, 52365, 113070, 113074, + 113078, 113082, 113087, 113092, 113097, 113103, 113109, 113115, 113122, + 113128, 113135, 113141, 113147, 113152, 113158, 113163, 113167, 105260, + 113172, 105324, 52380, 113177, 113182, 113190, 113194, 113199, 113206, + 113215, 113222, 113228, 113237, 113241, 113248, 113252, 113255, 113262, + 113268, 113277, 113287, 113297, 113302, 113306, 113313, 113321, 113330, + 113334, 113342, 113348, 113353, 113358, 113364, 113370, 113375, 113379, + 31903, 113385, 113389, 113393, 113396, 113401, 113409, 113419, 113425, + 113430, 113440, 49513, 113448, 113460, 113466, 113473, 113479, 113483, + 113488, 113494, 113506, 113517, 113524, 113530, 113537, 113544, 113556, + 113563, 113569, 25597, 113573, 113581, 113587, 113594, 113600, 113606, + 113612, 113617, 113622, 113627, 113631, 113640, 113648, 113659, 7920, + 113664, 19953, 113670, 113674, 113678, 113682, 113690, 113699, 113703, + 113710, 113719, 113727, 113740, 113746, 105836, 36477, 113751, 113753, + 113758, 113763, 113768, 113773, 113778, 113783, 113788, 113793, 113798, + 113803, 113808, 113813, 113818, 113823, 113829, 113834, 113839, 113844, + 113849, 113854, 113859, 113864, 113869, 113875, 113881, 113887, 113892, + 113897, 113909, 113914, 1941, 54, 113919, 113924, 39547, 113928, 39552, + 39557, 39563, 39568, 113932, 39573, 26783, 113954, 113958, 113962, + 113967, 113971, 39577, 113975, 113983, 113990, 113996, 114006, 39582, + 114013, 114016, 114021, 114025, 114034, 11148, 114042, 39587, 26627, + 114045, 114049, 114057, 1313, 114062, 39598, 114065, 114070, 114075, + 31144, 31154, 42942, 114080, 114085, 114090, 114095, 114101, 114106, + 114115, 114120, 114129, 114137, 114144, 114150, 114155, 114160, 114165, + 114175, 114184, 114192, 114197, 114205, 114209, 114217, 114221, 114228, + 114235, 114243, 114250, 39402, 46166, 114256, 114262, 114267, 114272, + 14522, 11935, 114277, 114282, 114287, 114293, 114300, 114306, 114315, + 114320, 114328, 114338, 114345, 114355, 114361, 114366, 114372, 114376, + 21947, 114383, 43910, 114396, 114401, 114408, 114414, 114429, 37541, + 75357, 114442, 114446, 114455, 114464, 114471, 114477, 114485, 114491, + 114499, 114508, 114516, 114523, 46286, 114529, 114532, 114536, 114540, + 114544, 11956, 114550, 114557, 114563, 114571, 114576, 114580, 29148, + 114586, 114589, 114597, 114604, 114612, 114625, 114639, 114646, 114652, + 114659, 114665, 39612, 114669, 114675, 114683, 114690, 114698, 114706, + 114712, 39617, 114720, 114726, 114731, 114741, 114747, 114756, 37336, + 42290, 114764, 114769, 114774, 114778, 114783, 114787, 114795, 114800, + 17949, 18774, 49535, 114804, 114809, 39622, 18106, 114813, 114825, + 114830, 114834, 114841, 114850, 114854, 114862, 114868, 114873, 114881, + 114889, 114897, 114905, 114913, 114921, 114932, 114938, 9112, 114943, + 114949, 114954, 114959, 114970, 114979, 114991, 115006, 39934, 115012, + 20072, 39626, 115016, 115023, 115029, 115033, 29285, 115040, 115046, + 115053, 48667, 115062, 115068, 115077, 115083, 115088, 115096, 115102, + 115107, 39636, 115112, 115121, 115130, 113512, 115139, 115146, 115152, + 115158, 115167, 115177, 115183, 115191, 115198, 115202, 39641, 115205, + 39647, 1352, 115210, 115218, 115226, 115236, 115245, 115253, 115260, + 115270, 39658, 115274, 115276, 115280, 115285, 115289, 115293, 115299, + 115304, 115308, 115319, 115324, 115333, 115338, 3306, 115342, 115349, + 115353, 115362, 115370, 115378, 115385, 115390, 115395, 73882, 115399, + 115402, 115408, 115416, 115422, 115426, 115431, 115438, 115443, 115448, + 115452, 115459, 115465, 115470, 42321, 115474, 115477, 115482, 115486, + 115491, 115498, 115503, 115507, 47636, 115515, 31163, 31172, 115521, + 115527, 115533, 115538, 115542, 115545, 115555, 115564, 115569, 115575, + 115582, 115588, 115592, 115600, 115605, 42327, 84917, 115609, 115617, + 115624, 115630, 115637, 115642, 115649, 115654, 115658, 115664, 115669, + 68924, 115675, 115681, 10366, 115686, 115691, 115695, 115700, 115705, + 115710, 115714, 115719, 115724, 115730, 115735, 115740, 115746, 115752, + 115757, 115761, 115766, 115771, 115776, 115780, 29284, 115785, 115790, + 115796, 115802, 115808, 115813, 115817, 115822, 115827, 109612, 115832, + 115837, 115842, 115847, 109676, 52635, 115852, 39666, 115860, 115864, + 115872, 115880, 115891, 115896, 115900, 27262, 82330, 115905, 115911, + 115916, 4641, 115926, 115933, 115938, 115946, 115955, 115960, 115964, + 115969, 115973, 115981, 115989, 115996, 77207, 116002, 116010, 116017, + 116028, 116034, 116040, 39676, 116043, 116050, 116058, 116063, 116067, + 33538, 71588, 116073, 116078, 116085, 116090, 10255, 116094, 116102, + 116109, 116116, 116125, 116132, 116138, 116152, 116160, 6710, 115922, + 116166, 116171, 116177, 116181, 116184, 116192, 116199, 116204, 116217, + 116224, 116230, 116234, 116242, 116247, 116254, 116260, 116265, 71859, + 116270, 116273, 116282, 116289, 109884, 116295, 116298, 116306, 116312, + 116321, 116331, 116341, 116350, 116361, 116369, 116380, 116385, 116389, + 116394, 116398, 43073, 116406, 18739, 43082, 116411, 101403, 101419, + 101435, 101451, 101467, 116416, 101499, 101515, 101531, 101547, 101659, + 101675, 116420, 101707, 101723, 116424, 116428, 116432, 116436, 101963, + 101995, 116440, 102027, 116444, 116448, 102171, 102187, 102203, 102219, + 116452, 102283, 102299, 116456, 102427, 102443, 102459, 102475, 102491, + 102507, 102523, 102539, 102555, 102571, 102683, 102699, 102715, 102731, + 102747, 102763, 102779, 102795, 102811, 102827, 116460, 104619, 104731, + 104795, 104811, 104827, 104843, 104859, 104875, 104987, 105003, 105019, + 116464, 105067, 116468, 105099, 105115, 105131, 116472, 116477, 116482, + 116487, 116492, 116497, 116502, 116506, 116510, 116515, 116520, 116524, + 116529, 116534, 116538, 116543, 116548, 116553, 116558, 116562, 116567, + 116572, 116576, 116581, 116585, 116589, 116593, 116597, 116602, 116606, + 116610, 116614, 116618, 116622, 116626, 116630, 116634, 116638, 116643, + 116648, 116653, 116658, 116663, 116668, 116673, 116678, 116683, 116688, + 116692, 116696, 116700, 116704, 116708, 116712, 116717, 116721, 116726, + 116730, 116735, 116740, 116744, 116748, 116753, 116757, 116761, 116765, + 116769, 116773, 116777, 116781, 116785, 116789, 116793, 116797, 116801, + 116805, 116809, 116814, 116819, 116823, 116827, 116831, 116835, 116839, + 116843, 116848, 116852, 116856, 116860, 116864, 116868, 116872, 116877, + 116881, 116886, 116890, 116894, 116898, 116902, 116906, 116910, 116914, + 116918, 116922, 116926, 116930, 116935, 116939, 116943, 116947, 116951, + 116955, 116959, 116963, 116967, 116971, 116975, 116979, 116984, 116988, + 116992, 116997, 117002, 117006, 117010, 117014, 117018, 117022, 117026, + 117030, 117034, 117039, 117043, 117048, 117052, 117057, 117061, 117066, + 117070, 117076, 117081, 117085, 117090, 117094, 117099, 117103, 117108, + 117112, 117117, 1435, 117121, 117125, 3048, 1711, 28421, 1608, 31099, + 117129, 3057, 117133, 1282, 117138, 1224, 117142, 117146, 117150, 117154, + 117158, 117162, 3081, 117166, 117174, 117181, 117188, 117202, 3085, 8030, + 117211, 117219, 117226, 117237, 117246, 117250, 117257, 117269, 117282, + 117295, 117306, 117311, 117318, 117330, 117334, 3089, 14159, 117344, + 117349, 117358, 117368, 117373, 117382, 3093, 117390, 117394, 117399, + 117406, 117412, 117417, 117426, 117434, 117446, 117456, 1229, 15619, + 117469, 117473, 117479, 117493, 117505, 117517, 117525, 117535, 117544, + 117553, 117562, 117570, 117581, 117589, 4649, 117599, 117610, 117619, + 117625, 117640, 117647, 117653, 117658, 43216, 117663, 3117, 15623, + 117667, 117672, 117679, 10186, 117688, 117694, 4687, 117704, 3122, 39038, + 117713, 71478, 117720, 117724, 117730, 117741, 117747, 117752, 117759, + 117765, 117773, 117780, 117786, 117797, 117813, 117823, 117832, 117843, + 117852, 117859, 117865, 117875, 117883, 117889, 117904, 117910, 117915, + 117919, 117926, 117934, 117938, 117941, 117947, 117954, 117960, 117968, + 117977, 117985, 117991, 118000, 51943, 118014, 118019, 118025, 17700, + 118030, 118043, 118055, 118064, 118072, 118079, 118083, 118087, 118090, + 118097, 118104, 118112, 118120, 118129, 118137, 17599, 118145, 118150, + 118154, 118166, 118173, 118180, 118189, 954, 118199, 118208, 118219, + 3143, 118223, 118227, 118233, 118246, 118258, 118268, 118277, 118289, + 32057, 118300, 118308, 118317, 118328, 118339, 118349, 118359, 118367, + 118376, 118384, 13578, 118391, 118395, 118398, 118403, 118408, 118412, + 118418, 1234, 118425, 118429, 14255, 118433, 118444, 118453, 118461, + 118470, 118478, 118494, 118505, 118514, 118522, 118534, 118545, 118561, + 118571, 118592, 118606, 118619, 118627, 118634, 8076, 118647, 118652, + 118658, 6719, 118664, 118667, 118674, 118684, 9246, 118691, 118696, + 118701, 118708, 118716, 118724, 118730, 118735, 118741, 118745, 118753, + 118762, 118770, 118775, 118784, 118791, 11398, 11407, 118797, 118808, + 118814, 118819, 118825, 3159, 3164, 118831, 1060, 118837, 118844, 118851, + 118864, 118874, 118879, 2330, 87, 118887, 118894, 118899, 118907, 118917, + 118926, 118932, 118941, 118949, 118959, 118963, 118967, 118972, 118976, + 118988, 3187, 118996, 119004, 119009, 119020, 119031, 119043, 119054, + 119064, 119073, 25981, 119078, 119084, 119089, 119099, 119109, 119114, + 34272, 119120, 119125, 119134, 26003, 119138, 26014, 119143, 4769, 8, + 119150, 119159, 119166, 119173, 119179, 119184, 119188, 119194, 34302, + 119199, 119204, 72156, 119209, 119214, 119220, 119226, 119234, 119239, + 119247, 119255, 119264, 119271, 119277, 119284, 119290, 119297, 119302, + 47505, 51837, 119308, 119318, 1828, 32, 119325, 119330, 119343, 119348, + 119356, 119361, 119367, 3213, 30840, 119372, 119380, 119387, 119392, + 119397, 119406, 4332, 4343, 73480, 119414, 119418, 1635, 1868, 119423, + 119428, 119435, 34723, 1872, 323, 119442, 119448, 119453, 3235, 119457, + 119462, 119469, 1876, 119474, 119480, 119485, 119497, 6964, 119507, + 119514, 1883, 119520, 119525, 119532, 119539, 119554, 119561, 119572, + 119577, 119585, 2778, 119589, 119601, 119606, 119610, 119616, 34144, + 2335, 119620, 119631, 119635, 119639, 119645, 119649, 119658, 119662, + 119673, 119677, 2381, 38855, 119681, 119691, 119699, 3326, 119705, + 119714, 119722, 10732, 119727, 119735, 119740, 119744, 119753, 119760, + 119766, 3296, 17764, 119770, 119783, 43923, 119801, 119806, 119814, + 119822, 119832, 11739, 15741, 119844, 119857, 119864, 119874, 119888, + 119895, 119911, 119918, 119924, 26061, 14954, 119931, 119938, 119948, + 119957, 52634, 119969, 119977, 52769, 119984, 119987, 119993, 119999, + 120005, 120011, 120017, 120024, 120031, 120037, 120043, 120049, 120055, + 120061, 120067, 120073, 120079, 120085, 120091, 120097, 120103, 120109, + 120115, 120121, 120127, 120133, 120139, 120145, 120151, 120157, 120163, + 120169, 120175, 120181, 120187, 120193, 120199, 120205, 120211, 120217, + 120223, 120229, 120235, 120241, 120247, 120253, 120259, 120265, 120271, + 120277, 120283, 120289, 120295, 120301, 120307, 120313, 120319, 120325, + 120331, 120337, 120344, 120350, 120357, 120364, 120370, 120377, 120384, + 120390, 120396, 120402, 120408, 120414, 120420, 120426, 120432, 120438, + 120444, 120450, 120456, 120462, 120468, 120474, 3310, 10700, 120480, + 120490, 120496, 120504, 120508, 117402, 3314, 120512, 113741, 25726, + 4693, 4257, 120516, 3320, 120520, 120530, 120536, 120542, 120548, 120554, + 120560, 120566, 120572, 120578, 120584, 120590, 120596, 120602, 120608, + 120614, 120620, 120626, 120632, 120638, 120644, 120650, 120656, 120662, + 120668, 120674, 120680, 120687, 120694, 120700, 120706, 120712, 120718, + 120724, 120730, 1239, 120736, 120741, 120746, 120751, 120756, 120761, + 120766, 120771, 120776, 120780, 120784, 120788, 120792, 120796, 120800, + 120804, 120808, 120812, 120818, 120824, 120830, 120836, 120840, 120844, + 120848, 120852, 120856, 120860, 120864, 120868, 120872, 120877, 120882, + 120887, 120892, 120897, 120902, 120907, 120912, 120917, 120922, 120927, + 120932, 120937, 120942, 120947, 120952, 120957, 120962, 120967, 120972, + 120977, 120982, 120987, 120992, 120997, 121002, 121007, 121012, 121017, + 121022, 121027, 121032, 121037, 121042, 121047, 121052, 121057, 121062, + 121067, 121072, 121077, 121082, 121087, 121092, 121097, 121102, 121107, + 121112, 121117, 121122, 121127, 121132, 121137, 121142, 121147, 121152, + 121157, 121162, 121167, 121172, 121177, 121182, 121187, 121192, 121197, + 121202, 121207, 121212, 121217, 121222, 121227, 121232, 121237, 121242, + 121247, 121252, 121257, 121262, 121267, 121272, 121277, 121282, 121287, + 121292, 121297, 121302, 121307, 121312, 121317, 121322, 121327, 121332, + 121337, 121342, 121347, 121352, 121357, 121362, 121367, 121372, 121377, + 121382, 121387, 121392, 121397, 121402, 121407, 121412, 121417, 121422, + 121427, 121432, 121437, 121442, 121447, 121452, 121457, 121462, 121467, + 121472, 121477, 121482, 121487, 121492, 121497, 121502, 121507, 121512, + 121517, 121522, 121527, 121532, 121537, 121542, 121547, 121552, 121557, + 121562, 121567, 121572, 121577, 121582, 121587, 121592, 121597, 121602, + 121607, 121612, 121617, 121622, 121627, 121632, 121637, 121642, 121647, + 121652, 121657, 121662, 121667, 121672, 121677, 121682, 121687, 121692, + 121697, 121702, 121707, 121712, 121717, 121722, 121727, 121732, 121737, + 121742, 121747, 121752, 121757, 121762, 121768, 121773, 121778, 121783, + 121788, 121793, 121798, 121803, 121809, 121814, 121819, 121824, 121829, + 121834, 121839, 121844, 121849, 121854, 121859, 121864, 121869, 121874, + 121879, 121884, 121889, 121894, 121899, 121904, 121909, 121914, 121919, + 121924, 121929, 121934, 121939, 121944, 121949, 121954, 121959, 121964, + 121969, 121978, 121983, 121992, 121997, 122006, 122011, 122020, 122025, + 122034, 122039, 122048, 122053, 122062, 122067, 122076, 122081, 122086, + 122095, 122099, 122108, 122113, 122122, 122127, 122136, 122141, 122150, + 122155, 122164, 122169, 122178, 122183, 122192, 122197, 122206, 122211, + 122220, 122225, 122234, 122239, 122244, 122249, 122254, 122259, 122264, + 122269, 122273, 122278, 122283, 122288, 122293, 122298, 122303, 122309, + 122314, 122319, 122324, 122330, 122334, 122339, 122345, 122350, 122355, + 122360, 122365, 122370, 122375, 122380, 122385, 122390, 122395, 122401, + 122406, 122411, 122416, 122422, 122427, 122432, 122437, 122442, 122448, + 122453, 122458, 122463, 122468, 122473, 122479, 122484, 122489, 122494, + 122499, 122504, 122509, 122514, 122519, 122524, 122529, 122534, 122539, + 122544, 122549, 122554, 122559, 122564, 122569, 122574, 122579, 122584, + 122589, 122594, 122600, 122606, 122612, 122617, 122622, 122627, 122632, + 122638, 122644, 122650, 122655, 122660, 122665, 122671, 122676, 122681, + 122686, 122691, 122696, 122701, 122706, 122711, 122716, 122721, 122726, + 122731, 122736, 122741, 122746, 122751, 122757, 122763, 122769, 122774, + 122779, 122784, 122789, 122795, 122801, 122807, 122812, 122817, 122822, + 122827, 122832, 122837, 122842, 122847, 122852, 19431, 122857, 122863, + 122868, 122873, 122878, 122883, 122888, 122894, 122899, 122904, 122909, + 122914, 122919, 122925, 122930, 122935, 122940, 122945, 122950, 122955, + 122960, 122965, 122970, 122975, 122980, 122985, 122990, 122995, 123000, + 123005, 123010, 123015, 123020, 123025, 123030, 123035, 123041, 123046, + 123051, 123056, 123061, 123066, 123071, 123076, 123081, 123086, 123091, + 123096, 123101, 123106, 123111, 123116, 123121, 123126, 123131, 123136, + 123141, 123146, 123151, 123156, 123161, 123166, 123171, 123176, 123181, + 123186, 123191, 123196, 123201, 123206, 123211, 123216, 123221, 123226, + 123231, 123236, 123241, 123247, 123252, 123257, 123262, 123267, 123272, + 123277, 123282, 123287, 123292, 123297, 123302, 123308, 123313, 123319, + 123324, 123329, 123334, 123339, 123344, 123349, 123355, 123360, 123365, + 123371, 123376, 123381, 123386, 123391, 123396, 123402, 123408, 123413, + 123418, 14588, 123423, 123428, 123433, 123438, 123443, 123448, 123453, + 123458, 123463, 123468, 123473, 123478, 123483, 123488, 123493, 123498, + 123503, 123508, 123513, 123518, 123523, 123528, 123533, 123538, 123543, + 123548, 123553, 123558, 123563, 123568, 123573, 123578, 123583, 123588, + 123593, 123598, 123603, 123608, 123613, 123618, 123623, 123628, 123633, + 123638, 123643, 123648, 123653, 123658, 123663, 123668, 123673, 123678, + 123683, 123688, 123693, 123698, 123703, 123708, 123713, 123718, 123723, + 123728, 123733, 123738, 123743, 123749, 123754, 123759, 123764, 123769, + 123775, 123780, 123785, 123790, 123795, 123800, 123805, 123811, 123816, + 123821, 123826, 123831, 123836, 123842, 123847, 123852, 123857, 123862, + 123867, 123873, 123878, 123883, 123888, 123893, 123898, 123904, 123910, + 123915, 123920, 123925, 123931, 123937, 123943, 123948, 123953, 123959, + 123965, 123970, 123976, 123982, 123988, 123993, 123998, 124004, 124009, + 124015, 124020, 124026, 124035, 124040, 124045, 124051, 124056, 124062, + 124067, 124072, 124077, 124082, 124087, 124092, 124097, 124102, 124107, + 124112, 124117, 124122, 124127, 124132, 124137, 124142, 124147, 124152, + 124157, 124162, 124167, 124172, 124177, 124182, 124187, 124192, 124197, + 124202, 124207, 124212, 124217, 124223, 124229, 124235, 124240, 124245, + 124250, 124255, 124260, 124265, 124270, 124275, 124280, 124285, 124290, + 124295, 124300, 124305, 124310, 124315, 124320, 124325, 124330, 124335, + 124341, 124347, 124352, 124358, 124363, 124368, 124374, 124379, 124385, + 124390, 124396, 124401, 124407, 124412, 124418, 124423, 124428, 124433, + 124438, 124443, 124448, 124453, 120531, 120537, 120543, 120549, 124459, + 120555, 120561, 124465, 120567, 120573, 120579, 120585, 120591, 120597, + 120603, 120609, 120615, 124471, 120621, 120627, 120633, 124477, 120639, + 120645, 120651, 120657, 124483, 120663, 120669, 120675, 120695, 124489, + 124495, 120701, 124501, 120707, 120713, 120719, 120725, 120731, 124507, + 3337, 3342, 124512, 3357, 3362, 3367, 124517, 124520, 124526, 124532, + 124539, 124544, 124549, 2386, }; /* code->name phrasebook */ #define phrasebook_shift 7 #define phrasebook_short 190 static const unsigned char phrasebook[] = { - 0, 201, 247, 233, 216, 77, 207, 252, 77, 31, 56, 236, 155, 56, 210, 13, - 56, 251, 137, 251, 49, 45, 210, 113, 50, 210, 113, 250, 193, 108, 56, - 242, 74, 228, 87, 232, 80, 201, 63, 202, 23, 17, 191, 77, 17, 107, 17, - 109, 17, 138, 17, 134, 17, 149, 17, 169, 17, 175, 17, 171, 17, 178, 242, - 83, 204, 25, 219, 180, 56, 234, 43, 56, 230, 204, 56, 208, 13, 77, 242, - 72, 250, 182, 8, 6, 1, 65, 8, 6, 1, 250, 120, 8, 6, 1, 247, 193, 8, 6, 1, - 238, 127, 8, 6, 1, 71, 8, 6, 1, 233, 175, 8, 6, 1, 232, 51, 8, 6, 1, 230, - 116, 8, 6, 1, 68, 8, 6, 1, 223, 35, 8, 6, 1, 222, 152, 8, 6, 1, 172, 8, - 6, 1, 218, 168, 8, 6, 1, 215, 61, 8, 6, 1, 74, 8, 6, 1, 210, 236, 8, 6, - 1, 208, 104, 8, 6, 1, 146, 8, 6, 1, 206, 8, 8, 6, 1, 200, 43, 8, 6, 1, - 66, 8, 6, 1, 196, 12, 8, 6, 1, 193, 224, 8, 6, 1, 192, 235, 8, 6, 1, 192, - 159, 8, 6, 1, 191, 166, 45, 51, 248, 53, 207, 19, 202, 23, 50, 51, 248, - 53, 243, 2, 252, 60, 130, 219, 112, 230, 211, 252, 60, 8, 2, 1, 65, 8, 2, - 1, 250, 120, 8, 2, 1, 247, 193, 8, 2, 1, 238, 127, 8, 2, 1, 71, 8, 2, 1, - 233, 175, 8, 2, 1, 232, 51, 8, 2, 1, 230, 116, 8, 2, 1, 68, 8, 2, 1, 223, - 35, 8, 2, 1, 222, 152, 8, 2, 1, 172, 8, 2, 1, 218, 168, 8, 2, 1, 215, 61, - 8, 2, 1, 74, 8, 2, 1, 210, 236, 8, 2, 1, 208, 104, 8, 2, 1, 146, 8, 2, 1, - 206, 8, 8, 2, 1, 200, 43, 8, 2, 1, 66, 8, 2, 1, 196, 12, 8, 2, 1, 193, - 224, 8, 2, 1, 192, 235, 8, 2, 1, 192, 159, 8, 2, 1, 191, 166, 45, 238, - 171, 248, 53, 81, 219, 112, 50, 238, 171, 248, 53, 198, 152, 213, 37, - 201, 247, 223, 93, 233, 216, 77, 247, 24, 56, 209, 8, 56, 238, 170, 56, - 192, 71, 56, 248, 22, 164, 205, 54, 56, 237, 42, 239, 6, 56, 233, 40, - 211, 50, 223, 144, 219, 219, 55, 251, 116, 207, 252, 77, 213, 12, 56, - 202, 32, 228, 88, 207, 78, 56, 217, 146, 237, 125, 56, 209, 80, 56, 200, - 182, 109, 200, 182, 138, 252, 47, 252, 60, 216, 91, 56, 209, 142, 56, 82, - 236, 140, 247, 35, 200, 182, 107, 217, 40, 211, 50, 223, 144, 206, 203, - 55, 251, 116, 207, 252, 77, 193, 246, 232, 118, 91, 208, 22, 193, 246, - 232, 118, 91, 230, 70, 193, 246, 232, 118, 115, 208, 20, 223, 93, 208, - 13, 77, 8, 6, 1, 42, 4, 230, 210, 8, 6, 1, 42, 4, 252, 46, 8, 6, 1, 42, - 4, 243, 1, 8, 6, 1, 42, 4, 198, 152, 8, 6, 1, 42, 4, 237, 42, 8, 6, 1, - 42, 4, 206, 189, 58, 8, 6, 1, 252, 25, 8, 6, 1, 247, 194, 4, 247, 35, 8, - 6, 1, 235, 15, 4, 230, 210, 8, 6, 1, 235, 15, 4, 252, 46, 8, 6, 1, 235, - 15, 4, 243, 1, 8, 6, 1, 235, 15, 4, 237, 42, 8, 6, 1, 228, 74, 4, 230, - 210, 8, 6, 1, 228, 74, 4, 252, 46, 8, 6, 1, 228, 74, 4, 243, 1, 8, 6, 1, - 228, 74, 4, 237, 42, 8, 6, 1, 233, 248, 8, 6, 1, 215, 62, 4, 198, 152, 8, - 6, 1, 187, 4, 230, 210, 8, 6, 1, 187, 4, 252, 46, 8, 6, 1, 187, 4, 243, - 1, 8, 6, 1, 187, 4, 198, 152, 8, 6, 1, 187, 4, 237, 42, 215, 127, 56, 8, - 6, 1, 187, 4, 106, 8, 6, 1, 126, 4, 230, 210, 8, 6, 1, 126, 4, 252, 46, - 8, 6, 1, 126, 4, 243, 1, 8, 6, 1, 126, 4, 237, 42, 8, 6, 1, 192, 160, 4, - 252, 46, 8, 6, 1, 198, 233, 8, 2, 1, 203, 127, 206, 8, 8, 2, 1, 42, 4, - 230, 210, 8, 2, 1, 42, 4, 252, 46, 8, 2, 1, 42, 4, 243, 1, 8, 2, 1, 42, - 4, 198, 152, 8, 2, 1, 42, 4, 237, 42, 8, 2, 1, 42, 4, 206, 189, 58, 8, 2, - 1, 252, 25, 8, 2, 1, 247, 194, 4, 247, 35, 8, 2, 1, 235, 15, 4, 230, 210, - 8, 2, 1, 235, 15, 4, 252, 46, 8, 2, 1, 235, 15, 4, 243, 1, 8, 2, 1, 235, - 15, 4, 237, 42, 8, 2, 1, 228, 74, 4, 230, 210, 8, 2, 1, 228, 74, 4, 252, - 46, 8, 2, 1, 228, 74, 4, 243, 1, 8, 2, 1, 228, 74, 4, 237, 42, 8, 2, 1, - 233, 248, 8, 2, 1, 215, 62, 4, 198, 152, 8, 2, 1, 187, 4, 230, 210, 8, 2, - 1, 187, 4, 252, 46, 8, 2, 1, 187, 4, 243, 1, 8, 2, 1, 187, 4, 198, 152, - 8, 2, 1, 187, 4, 237, 42, 236, 200, 56, 8, 2, 1, 187, 4, 106, 8, 2, 1, - 126, 4, 230, 210, 8, 2, 1, 126, 4, 252, 46, 8, 2, 1, 126, 4, 243, 1, 8, - 2, 1, 126, 4, 237, 42, 8, 2, 1, 192, 160, 4, 252, 46, 8, 2, 1, 198, 233, - 8, 2, 1, 192, 160, 4, 237, 42, 8, 6, 1, 42, 4, 217, 146, 8, 2, 1, 42, 4, - 217, 146, 8, 6, 1, 42, 4, 248, 36, 8, 2, 1, 42, 4, 248, 36, 8, 6, 1, 42, - 4, 211, 138, 8, 2, 1, 42, 4, 211, 138, 8, 6, 1, 247, 194, 4, 252, 46, 8, - 2, 1, 247, 194, 4, 252, 46, 8, 6, 1, 247, 194, 4, 243, 1, 8, 2, 1, 247, - 194, 4, 243, 1, 8, 6, 1, 247, 194, 4, 75, 58, 8, 2, 1, 247, 194, 4, 75, - 58, 8, 6, 1, 247, 194, 4, 247, 92, 8, 2, 1, 247, 194, 4, 247, 92, 8, 6, - 1, 238, 128, 4, 247, 92, 8, 2, 1, 238, 128, 4, 247, 92, 8, 6, 1, 238, - 128, 4, 106, 8, 2, 1, 238, 128, 4, 106, 8, 6, 1, 235, 15, 4, 217, 146, 8, - 2, 1, 235, 15, 4, 217, 146, 8, 6, 1, 235, 15, 4, 248, 36, 8, 2, 1, 235, - 15, 4, 248, 36, 8, 6, 1, 235, 15, 4, 75, 58, 8, 2, 1, 235, 15, 4, 75, 58, - 8, 6, 1, 235, 15, 4, 211, 138, 8, 2, 1, 235, 15, 4, 211, 138, 8, 6, 1, - 235, 15, 4, 247, 92, 8, 2, 1, 235, 15, 4, 247, 92, 8, 6, 1, 232, 52, 4, - 243, 1, 8, 2, 1, 232, 52, 4, 243, 1, 8, 6, 1, 232, 52, 4, 248, 36, 8, 2, - 1, 232, 52, 4, 248, 36, 8, 6, 1, 232, 52, 4, 75, 58, 8, 2, 1, 232, 52, 4, - 75, 58, 8, 6, 1, 232, 52, 4, 247, 35, 8, 2, 1, 232, 52, 4, 247, 35, 8, 6, - 1, 230, 117, 4, 243, 1, 8, 2, 1, 230, 117, 4, 243, 1, 8, 6, 1, 230, 117, - 4, 106, 8, 2, 1, 230, 117, 4, 106, 8, 6, 1, 228, 74, 4, 198, 152, 8, 2, - 1, 228, 74, 4, 198, 152, 8, 6, 1, 228, 74, 4, 217, 146, 8, 2, 1, 228, 74, - 4, 217, 146, 8, 6, 1, 228, 74, 4, 248, 36, 8, 2, 1, 228, 74, 4, 248, 36, - 8, 6, 1, 228, 74, 4, 211, 138, 8, 2, 1, 228, 74, 4, 211, 138, 8, 6, 1, - 228, 74, 4, 75, 58, 8, 2, 1, 236, 139, 68, 8, 6, 34, 223, 197, 8, 2, 34, - 223, 197, 8, 6, 1, 223, 36, 4, 243, 1, 8, 2, 1, 223, 36, 4, 243, 1, 8, 6, - 1, 222, 153, 4, 247, 35, 8, 2, 1, 222, 153, 4, 247, 35, 8, 2, 1, 221, 8, - 8, 6, 1, 220, 143, 4, 252, 46, 8, 2, 1, 220, 143, 4, 252, 46, 8, 6, 1, - 220, 143, 4, 247, 35, 8, 2, 1, 220, 143, 4, 247, 35, 8, 6, 1, 220, 143, - 4, 247, 92, 8, 2, 1, 220, 143, 4, 247, 92, 8, 6, 1, 220, 143, 4, 82, 236, - 140, 8, 2, 1, 220, 143, 4, 82, 236, 140, 8, 6, 1, 220, 143, 4, 106, 8, 2, - 1, 220, 143, 4, 106, 8, 6, 1, 215, 62, 4, 252, 46, 8, 2, 1, 215, 62, 4, - 252, 46, 8, 6, 1, 215, 62, 4, 247, 35, 8, 2, 1, 215, 62, 4, 247, 35, 8, - 6, 1, 215, 62, 4, 247, 92, 8, 2, 1, 215, 62, 4, 247, 92, 8, 2, 1, 215, - 62, 208, 233, 247, 205, 251, 49, 8, 6, 1, 234, 88, 8, 2, 1, 234, 88, 8, - 6, 1, 187, 4, 217, 146, 8, 2, 1, 187, 4, 217, 146, 8, 6, 1, 187, 4, 248, - 36, 8, 2, 1, 187, 4, 248, 36, 8, 6, 1, 187, 4, 55, 252, 46, 8, 2, 1, 187, - 4, 55, 252, 46, 8, 6, 34, 211, 151, 8, 2, 34, 211, 151, 8, 6, 1, 207, - 222, 4, 252, 46, 8, 2, 1, 207, 222, 4, 252, 46, 8, 6, 1, 207, 222, 4, - 247, 35, 8, 2, 1, 207, 222, 4, 247, 35, 8, 6, 1, 207, 222, 4, 247, 92, 8, - 2, 1, 207, 222, 4, 247, 92, 8, 6, 1, 206, 9, 4, 252, 46, 8, 2, 1, 206, 9, - 4, 252, 46, 8, 6, 1, 206, 9, 4, 243, 1, 8, 2, 1, 206, 9, 4, 243, 1, 8, 6, - 1, 206, 9, 4, 247, 35, 8, 2, 1, 206, 9, 4, 247, 35, 8, 6, 1, 206, 9, 4, - 247, 92, 8, 2, 1, 206, 9, 4, 247, 92, 8, 6, 1, 200, 44, 4, 247, 35, 8, 2, - 1, 200, 44, 4, 247, 35, 8, 6, 1, 200, 44, 4, 247, 92, 8, 2, 1, 200, 44, - 4, 247, 92, 8, 6, 1, 200, 44, 4, 106, 8, 2, 1, 200, 44, 4, 106, 8, 6, 1, - 126, 4, 198, 152, 8, 2, 1, 126, 4, 198, 152, 8, 6, 1, 126, 4, 217, 146, - 8, 2, 1, 126, 4, 217, 146, 8, 6, 1, 126, 4, 248, 36, 8, 2, 1, 126, 4, - 248, 36, 8, 6, 1, 126, 4, 206, 189, 58, 8, 2, 1, 126, 4, 206, 189, 58, 8, - 6, 1, 126, 4, 55, 252, 46, 8, 2, 1, 126, 4, 55, 252, 46, 8, 6, 1, 126, 4, - 211, 138, 8, 2, 1, 126, 4, 211, 138, 8, 6, 1, 193, 225, 4, 243, 1, 8, 2, - 1, 193, 225, 4, 243, 1, 8, 6, 1, 192, 160, 4, 243, 1, 8, 2, 1, 192, 160, - 4, 243, 1, 8, 6, 1, 192, 160, 4, 237, 42, 8, 6, 1, 191, 167, 4, 252, 46, - 8, 2, 1, 191, 167, 4, 252, 46, 8, 6, 1, 191, 167, 4, 75, 58, 8, 2, 1, - 191, 167, 4, 75, 58, 8, 6, 1, 191, 167, 4, 247, 92, 8, 2, 1, 191, 167, 4, - 247, 92, 8, 2, 1, 179, 206, 8, 8, 2, 1, 78, 4, 106, 8, 6, 1, 78, 4, 102, - 8, 6, 1, 78, 4, 198, 51, 8, 2, 1, 78, 4, 198, 51, 8, 6, 1, 163, 169, 8, - 2, 1, 163, 169, 8, 6, 1, 211, 77, 74, 8, 6, 1, 247, 194, 4, 102, 8, 2, 1, - 247, 194, 4, 102, 8, 6, 1, 252, 0, 238, 127, 8, 6, 1, 238, 128, 4, 102, - 8, 6, 1, 238, 128, 4, 198, 51, 8, 2, 1, 238, 128, 4, 198, 51, 8, 2, 1, - 153, 237, 106, 8, 6, 1, 207, 18, 71, 8, 6, 1, 205, 86, 8, 6, 1, 211, 77, - 71, 8, 6, 1, 233, 176, 4, 102, 8, 2, 1, 233, 176, 4, 102, 8, 6, 1, 232, - 52, 4, 102, 8, 6, 1, 231, 211, 8, 2, 1, 228, 126, 8, 6, 1, 223, 83, 8, 6, - 1, 228, 74, 4, 106, 8, 6, 1, 222, 153, 4, 102, 8, 2, 1, 222, 153, 4, 102, - 8, 2, 1, 220, 143, 4, 164, 8, 2, 1, 220, 33, 4, 106, 8, 6, 1, 153, 218, - 168, 8, 6, 1, 215, 62, 4, 45, 102, 8, 2, 1, 215, 62, 4, 179, 50, 219, - 212, 8, 6, 1, 187, 4, 82, 198, 152, 8, 6, 1, 187, 4, 228, 187, 8, 2, 1, - 187, 4, 228, 187, 8, 6, 1, 211, 133, 8, 2, 1, 211, 133, 8, 6, 1, 210, - 237, 4, 102, 8, 2, 1, 210, 237, 4, 102, 8, 1, 191, 228, 8, 6, 1, 163, - 109, 8, 2, 1, 163, 109, 8, 6, 1, 234, 12, 8, 1, 207, 18, 234, 13, 219, 4, - 8, 2, 1, 200, 44, 4, 210, 192, 102, 8, 6, 1, 200, 44, 4, 102, 8, 2, 1, - 200, 44, 4, 102, 8, 6, 1, 200, 44, 4, 207, 24, 102, 8, 6, 1, 126, 4, 228, - 187, 8, 2, 1, 126, 4, 228, 187, 8, 6, 1, 196, 70, 8, 6, 1, 196, 13, 4, - 102, 8, 6, 1, 192, 160, 4, 102, 8, 2, 1, 192, 160, 4, 102, 8, 6, 1, 191, - 167, 4, 106, 8, 2, 1, 191, 167, 4, 106, 8, 6, 1, 233, 178, 8, 6, 1, 233, - 179, 207, 17, 8, 2, 1, 233, 179, 207, 17, 8, 2, 1, 233, 179, 4, 199, 215, - 8, 1, 105, 4, 106, 8, 6, 1, 163, 149, 8, 2, 1, 163, 149, 8, 1, 223, 93, - 231, 11, 201, 64, 4, 106, 8, 1, 192, 238, 8, 1, 237, 98, 242, 231, 8, 1, - 220, 3, 242, 231, 8, 1, 251, 150, 242, 231, 8, 1, 207, 24, 242, 231, 8, - 6, 1, 235, 37, 4, 247, 92, 8, 6, 1, 238, 128, 4, 2, 1, 191, 167, 4, 247, - 92, 8, 2, 1, 235, 37, 4, 247, 92, 8, 6, 1, 219, 77, 8, 6, 1, 220, 143, 4, - 2, 1, 223, 35, 8, 2, 1, 219, 77, 8, 6, 1, 213, 158, 8, 6, 1, 215, 62, 4, - 2, 1, 223, 35, 8, 2, 1, 213, 158, 8, 6, 1, 42, 4, 247, 92, 8, 2, 1, 42, - 4, 247, 92, 8, 6, 1, 228, 74, 4, 247, 92, 8, 2, 1, 228, 74, 4, 247, 92, - 8, 6, 1, 187, 4, 247, 92, 8, 2, 1, 187, 4, 247, 92, 8, 6, 1, 126, 4, 247, - 92, 8, 2, 1, 126, 4, 247, 92, 8, 6, 1, 126, 4, 237, 43, 23, 217, 146, 8, - 2, 1, 126, 4, 237, 43, 23, 217, 146, 8, 6, 1, 126, 4, 237, 43, 23, 252, - 46, 8, 2, 1, 126, 4, 237, 43, 23, 252, 46, 8, 6, 1, 126, 4, 237, 43, 23, - 247, 92, 8, 2, 1, 126, 4, 237, 43, 23, 247, 92, 8, 6, 1, 126, 4, 237, 43, - 23, 230, 210, 8, 2, 1, 126, 4, 237, 43, 23, 230, 210, 8, 2, 1, 153, 71, - 8, 6, 1, 42, 4, 237, 43, 23, 217, 146, 8, 2, 1, 42, 4, 237, 43, 23, 217, - 146, 8, 6, 1, 42, 4, 75, 93, 23, 217, 146, 8, 2, 1, 42, 4, 75, 93, 23, - 217, 146, 8, 6, 1, 252, 26, 4, 217, 146, 8, 2, 1, 252, 26, 4, 217, 146, - 8, 6, 1, 232, 52, 4, 106, 8, 2, 1, 232, 52, 4, 106, 8, 6, 1, 232, 52, 4, - 247, 92, 8, 2, 1, 232, 52, 4, 247, 92, 8, 6, 1, 222, 153, 4, 247, 92, 8, - 2, 1, 222, 153, 4, 247, 92, 8, 6, 1, 187, 4, 211, 138, 8, 2, 1, 187, 4, - 211, 138, 8, 6, 1, 187, 4, 211, 139, 23, 217, 146, 8, 2, 1, 187, 4, 211, - 139, 23, 217, 146, 8, 6, 1, 233, 179, 4, 247, 92, 8, 2, 1, 233, 179, 4, - 247, 92, 8, 2, 1, 223, 36, 4, 247, 92, 8, 6, 1, 235, 36, 8, 6, 1, 238, - 128, 4, 2, 1, 191, 166, 8, 2, 1, 235, 36, 8, 6, 1, 232, 52, 4, 252, 46, - 8, 2, 1, 232, 52, 4, 252, 46, 8, 6, 1, 228, 123, 8, 6, 1, 192, 238, 8, 6, - 1, 215, 62, 4, 230, 210, 8, 2, 1, 215, 62, 4, 230, 210, 8, 6, 1, 42, 4, - 206, 189, 93, 23, 252, 46, 8, 2, 1, 42, 4, 206, 189, 93, 23, 252, 46, 8, - 6, 1, 252, 26, 4, 252, 46, 8, 2, 1, 252, 26, 4, 252, 46, 8, 6, 1, 187, 4, - 201, 28, 23, 252, 46, 8, 2, 1, 187, 4, 201, 28, 23, 252, 46, 8, 6, 1, 42, - 4, 55, 230, 210, 8, 2, 1, 42, 4, 55, 230, 210, 8, 6, 1, 42, 4, 223, 93, - 248, 36, 8, 2, 1, 42, 4, 223, 93, 248, 36, 8, 6, 1, 235, 15, 4, 55, 230, - 210, 8, 2, 1, 235, 15, 4, 55, 230, 210, 8, 6, 1, 235, 15, 4, 223, 93, - 248, 36, 8, 2, 1, 235, 15, 4, 223, 93, 248, 36, 8, 6, 1, 228, 74, 4, 55, - 230, 210, 8, 2, 1, 228, 74, 4, 55, 230, 210, 8, 6, 1, 228, 74, 4, 223, - 93, 248, 36, 8, 2, 1, 228, 74, 4, 223, 93, 248, 36, 8, 6, 1, 187, 4, 55, - 230, 210, 8, 2, 1, 187, 4, 55, 230, 210, 8, 6, 1, 187, 4, 223, 93, 248, - 36, 8, 2, 1, 187, 4, 223, 93, 248, 36, 8, 6, 1, 207, 222, 4, 55, 230, - 210, 8, 2, 1, 207, 222, 4, 55, 230, 210, 8, 6, 1, 207, 222, 4, 223, 93, - 248, 36, 8, 2, 1, 207, 222, 4, 223, 93, 248, 36, 8, 6, 1, 126, 4, 55, - 230, 210, 8, 2, 1, 126, 4, 55, 230, 210, 8, 6, 1, 126, 4, 223, 93, 248, - 36, 8, 2, 1, 126, 4, 223, 93, 248, 36, 8, 6, 1, 206, 9, 4, 242, 75, 60, - 8, 2, 1, 206, 9, 4, 242, 75, 60, 8, 6, 1, 200, 44, 4, 242, 75, 60, 8, 2, - 1, 200, 44, 4, 242, 75, 60, 8, 6, 1, 191, 248, 8, 2, 1, 191, 248, 8, 6, - 1, 230, 117, 4, 247, 92, 8, 2, 1, 230, 117, 4, 247, 92, 8, 6, 1, 215, 62, - 4, 179, 50, 219, 212, 8, 2, 1, 238, 128, 4, 238, 175, 8, 6, 1, 211, 19, - 8, 2, 1, 211, 19, 8, 6, 1, 191, 167, 4, 102, 8, 2, 1, 191, 167, 4, 102, - 8, 6, 1, 42, 4, 75, 58, 8, 2, 1, 42, 4, 75, 58, 8, 6, 1, 235, 15, 4, 247, - 35, 8, 2, 1, 235, 15, 4, 247, 35, 8, 6, 1, 187, 4, 237, 43, 23, 217, 146, - 8, 2, 1, 187, 4, 237, 43, 23, 217, 146, 8, 6, 1, 187, 4, 198, 153, 23, - 217, 146, 8, 2, 1, 187, 4, 198, 153, 23, 217, 146, 8, 6, 1, 187, 4, 75, - 58, 8, 2, 1, 187, 4, 75, 58, 8, 6, 1, 187, 4, 75, 93, 23, 217, 146, 8, 2, - 1, 187, 4, 75, 93, 23, 217, 146, 8, 6, 1, 192, 160, 4, 217, 146, 8, 2, 1, - 192, 160, 4, 217, 146, 8, 2, 1, 220, 143, 4, 238, 175, 8, 2, 1, 215, 62, - 4, 238, 175, 8, 2, 1, 200, 44, 4, 238, 175, 8, 2, 1, 236, 139, 223, 35, - 8, 2, 1, 237, 201, 237, 2, 8, 2, 1, 208, 34, 237, 2, 8, 6, 1, 42, 4, 106, - 8, 6, 1, 247, 194, 4, 106, 8, 2, 1, 247, 194, 4, 106, 8, 6, 1, 220, 143, - 4, 164, 8, 6, 1, 200, 44, 4, 237, 39, 106, 8, 2, 1, 206, 9, 4, 200, 146, - 199, 215, 8, 2, 1, 191, 167, 4, 200, 146, 199, 215, 8, 6, 1, 231, 11, - 201, 63, 8, 2, 1, 231, 11, 201, 63, 8, 6, 1, 78, 4, 106, 8, 6, 1, 126, - 164, 8, 6, 1, 153, 196, 12, 8, 6, 1, 235, 15, 4, 106, 8, 2, 1, 235, 15, - 4, 106, 8, 6, 1, 223, 36, 4, 106, 8, 2, 1, 223, 36, 4, 106, 8, 6, 1, 2, - 208, 105, 4, 228, 251, 199, 215, 8, 2, 1, 208, 105, 4, 228, 251, 199, - 215, 8, 6, 1, 207, 222, 4, 106, 8, 2, 1, 207, 222, 4, 106, 8, 6, 1, 192, - 160, 4, 106, 8, 2, 1, 192, 160, 4, 106, 8, 2, 1, 153, 65, 8, 2, 1, 251, - 160, 8, 2, 1, 153, 251, 160, 8, 2, 1, 78, 4, 102, 8, 2, 1, 211, 77, 74, - 8, 2, 1, 247, 194, 4, 238, 175, 8, 2, 1, 238, 128, 4, 199, 215, 8, 2, 1, - 238, 128, 4, 102, 8, 2, 1, 207, 18, 71, 8, 2, 1, 205, 86, 8, 2, 1, 205, - 87, 4, 102, 8, 2, 1, 211, 77, 71, 8, 2, 1, 207, 18, 211, 77, 71, 8, 2, 1, - 207, 18, 211, 77, 235, 15, 4, 102, 8, 2, 1, 242, 219, 207, 18, 211, 77, - 71, 8, 2, 1, 236, 139, 223, 36, 4, 106, 8, 2, 1, 232, 52, 4, 102, 8, 2, - 1, 27, 232, 51, 8, 1, 2, 6, 232, 51, 8, 2, 1, 231, 211, 8, 2, 1, 207, - 140, 228, 187, 8, 2, 1, 153, 230, 116, 8, 2, 1, 230, 117, 4, 102, 8, 2, - 1, 229, 197, 4, 102, 8, 2, 1, 228, 74, 4, 106, 8, 2, 1, 223, 83, 8, 1, 2, - 6, 68, 8, 2, 1, 220, 143, 4, 82, 198, 152, 8, 2, 1, 220, 143, 4, 248, - 231, 8, 2, 1, 220, 143, 4, 207, 24, 102, 8, 2, 1, 219, 162, 8, 2, 1, 153, - 218, 168, 8, 2, 1, 153, 218, 169, 4, 179, 219, 212, 8, 2, 1, 218, 169, 4, - 102, 8, 2, 1, 215, 62, 4, 45, 102, 8, 2, 1, 215, 62, 4, 207, 24, 102, 8, - 1, 2, 6, 215, 61, 8, 2, 1, 249, 82, 74, 8, 1, 2, 6, 211, 151, 8, 2, 1, - 242, 219, 211, 110, 8, 2, 1, 209, 211, 8, 2, 1, 153, 146, 8, 2, 1, 153, - 207, 222, 4, 179, 219, 212, 8, 2, 1, 153, 207, 222, 4, 102, 8, 2, 1, 207, - 222, 4, 179, 219, 212, 8, 2, 1, 207, 222, 4, 199, 215, 8, 2, 1, 207, 222, - 4, 232, 233, 8, 2, 1, 207, 18, 207, 222, 4, 232, 233, 8, 1, 2, 6, 146, 8, - 1, 2, 6, 223, 93, 146, 8, 2, 1, 206, 9, 4, 102, 8, 2, 1, 234, 12, 8, 2, - 1, 236, 139, 223, 36, 4, 201, 28, 23, 102, 8, 2, 1, 201, 187, 207, 18, - 234, 12, 8, 2, 1, 234, 13, 4, 238, 175, 8, 2, 1, 153, 200, 43, 8, 2, 1, - 200, 44, 4, 207, 24, 102, 8, 2, 1, 126, 164, 8, 2, 1, 196, 70, 8, 2, 1, - 196, 13, 4, 102, 8, 2, 1, 153, 196, 12, 8, 2, 1, 153, 193, 224, 8, 2, 1, - 153, 192, 159, 8, 1, 2, 6, 192, 159, 8, 2, 1, 191, 167, 4, 207, 24, 102, - 8, 2, 1, 191, 167, 4, 238, 175, 8, 2, 1, 233, 178, 8, 2, 1, 233, 179, 4, - 238, 175, 8, 1, 231, 11, 201, 63, 8, 1, 209, 219, 195, 20, 232, 104, 8, - 1, 223, 93, 231, 11, 201, 63, 8, 1, 201, 36, 247, 193, 8, 1, 248, 172, - 242, 231, 8, 1, 2, 6, 250, 120, 8, 2, 1, 242, 219, 211, 77, 71, 8, 1, 2, - 6, 232, 52, 4, 102, 8, 1, 2, 6, 230, 116, 8, 2, 1, 223, 36, 4, 238, 212, - 8, 2, 1, 153, 222, 152, 8, 1, 2, 6, 172, 8, 2, 1, 208, 105, 4, 102, 8, 1, - 231, 11, 201, 64, 4, 106, 8, 1, 207, 18, 231, 11, 201, 64, 4, 106, 8, 2, - 1, 235, 37, 237, 2, 8, 2, 1, 237, 70, 237, 2, 8, 2, 1, 235, 37, 237, 3, - 4, 238, 175, 8, 2, 1, 197, 170, 237, 2, 8, 2, 1, 199, 79, 237, 2, 8, 2, - 1, 199, 152, 237, 3, 4, 238, 175, 8, 2, 1, 233, 37, 237, 2, 8, 2, 1, 218, - 227, 237, 2, 8, 2, 1, 218, 170, 237, 2, 8, 1, 248, 172, 210, 12, 8, 1, - 248, 180, 210, 12, 8, 2, 1, 153, 230, 117, 4, 232, 233, 8, 2, 1, 153, - 230, 117, 4, 232, 234, 23, 199, 215, 52, 1, 2, 230, 116, 52, 1, 2, 230, - 117, 4, 102, 52, 1, 2, 223, 35, 52, 1, 2, 146, 52, 1, 2, 153, 146, 52, 1, - 2, 153, 207, 222, 4, 102, 52, 1, 2, 6, 223, 93, 146, 52, 1, 2, 193, 224, - 52, 1, 2, 192, 159, 52, 1, 208, 215, 52, 1, 55, 208, 215, 52, 1, 153, - 242, 74, 52, 1, 251, 49, 52, 1, 207, 18, 242, 74, 52, 1, 50, 132, 206, - 188, 52, 1, 45, 132, 206, 188, 52, 1, 231, 11, 201, 63, 52, 1, 207, 18, - 231, 11, 201, 63, 52, 1, 45, 250, 235, 52, 1, 50, 250, 235, 52, 1, 133, - 250, 235, 52, 1, 144, 250, 235, 52, 1, 243, 2, 252, 60, 247, 92, 52, 1, - 81, 219, 112, 52, 1, 217, 146, 52, 1, 252, 47, 252, 60, 52, 1, 230, 211, - 252, 60, 52, 1, 130, 81, 219, 112, 52, 1, 130, 217, 146, 52, 1, 130, 230, - 211, 252, 60, 52, 1, 130, 252, 47, 252, 60, 52, 1, 197, 238, 242, 83, 52, - 1, 132, 197, 238, 242, 83, 52, 1, 247, 20, 50, 132, 206, 188, 52, 1, 247, - 20, 45, 132, 206, 188, 52, 1, 133, 199, 228, 52, 1, 144, 199, 228, 52, 1, - 108, 56, 52, 1, 216, 35, 56, 248, 36, 75, 58, 206, 189, 58, 211, 138, 2, - 198, 152, 55, 252, 47, 252, 60, 52, 1, 207, 2, 102, 52, 1, 238, 218, 252, - 60, 52, 1, 2, 231, 211, 52, 1, 2, 172, 52, 1, 2, 206, 8, 52, 1, 2, 192, - 235, 52, 1, 2, 207, 18, 231, 11, 201, 63, 52, 1, 233, 200, 163, 164, 52, - 1, 137, 163, 164, 52, 1, 216, 87, 163, 164, 52, 1, 130, 163, 164, 52, 1, - 233, 199, 163, 164, 52, 1, 192, 22, 237, 95, 163, 77, 52, 1, 192, 107, - 237, 95, 163, 77, 52, 1, 195, 18, 52, 1, 196, 109, 52, 1, 55, 251, 49, - 52, 1, 130, 144, 250, 235, 52, 1, 130, 133, 250, 235, 52, 1, 130, 45, - 250, 235, 52, 1, 130, 50, 250, 235, 52, 1, 130, 206, 188, 52, 1, 82, 230, - 211, 252, 60, 52, 1, 82, 55, 230, 211, 252, 60, 52, 1, 82, 55, 252, 47, - 252, 60, 52, 1, 130, 198, 152, 52, 1, 207, 147, 242, 83, 52, 1, 248, 249, - 137, 198, 79, 52, 1, 234, 95, 137, 198, 79, 52, 1, 248, 249, 130, 198, - 79, 52, 1, 234, 95, 130, 198, 79, 52, 1, 203, 104, 52, 1, 211, 77, 203, - 104, 52, 1, 130, 45, 57, 33, 230, 211, 252, 60, 33, 252, 47, 252, 60, 33, - 243, 2, 252, 60, 33, 198, 152, 33, 217, 146, 33, 210, 254, 33, 248, 36, - 33, 75, 58, 33, 237, 42, 33, 228, 251, 58, 33, 206, 189, 58, 33, 55, 252, - 47, 252, 60, 33, 247, 92, 33, 81, 219, 113, 58, 33, 55, 81, 219, 113, 58, - 33, 55, 230, 211, 252, 60, 33, 247, 119, 33, 223, 93, 248, 36, 33, 153, - 242, 75, 58, 33, 242, 75, 58, 33, 207, 18, 242, 75, 58, 33, 242, 75, 93, - 183, 33, 230, 211, 252, 61, 60, 33, 252, 47, 252, 61, 60, 33, 45, 199, - 229, 60, 33, 50, 199, 229, 60, 33, 45, 251, 116, 58, 33, 228, 187, 33, - 45, 132, 206, 189, 60, 33, 133, 199, 229, 60, 33, 144, 199, 229, 60, 33, - 108, 3, 60, 33, 216, 35, 3, 60, 33, 210, 190, 228, 251, 60, 33, 207, 24, - 228, 251, 60, 33, 75, 60, 33, 237, 43, 60, 33, 206, 189, 60, 33, 242, 75, - 60, 33, 247, 35, 33, 211, 138, 33, 81, 219, 113, 60, 33, 248, 29, 60, 33, - 223, 93, 55, 251, 15, 60, 33, 247, 93, 60, 33, 243, 2, 252, 61, 60, 33, - 248, 37, 60, 33, 223, 93, 248, 37, 60, 33, 198, 153, 60, 33, 217, 147, - 60, 33, 130, 219, 112, 33, 55, 130, 219, 112, 33, 198, 153, 210, 255, 33, - 203, 40, 201, 28, 210, 255, 33, 179, 201, 28, 210, 255, 33, 203, 40, 202, - 24, 210, 255, 33, 179, 202, 24, 210, 255, 33, 50, 132, 206, 189, 60, 33, - 223, 93, 248, 29, 60, 33, 51, 60, 33, 205, 62, 60, 33, 192, 236, 58, 33, - 81, 198, 152, 33, 55, 210, 254, 33, 230, 211, 163, 77, 33, 252, 47, 163, - 77, 33, 35, 210, 4, 33, 35, 221, 30, 33, 35, 237, 36, 198, 60, 33, 35, - 191, 233, 33, 248, 29, 58, 33, 234, 43, 3, 60, 33, 55, 81, 219, 113, 60, - 33, 45, 251, 116, 60, 33, 213, 12, 198, 153, 58, 33, 229, 1, 58, 33, 251, - 165, 234, 45, 119, 58, 33, 45, 50, 64, 60, 33, 196, 66, 64, 60, 33, 230, - 217, 222, 196, 33, 50, 250, 236, 58, 33, 45, 132, 206, 189, 58, 33, 233, - 34, 33, 192, 236, 60, 33, 45, 250, 236, 60, 33, 50, 250, 236, 60, 33, 50, - 250, 236, 23, 133, 250, 236, 60, 33, 50, 132, 206, 189, 58, 33, 75, 93, - 183, 33, 250, 194, 60, 33, 55, 206, 189, 60, 33, 191, 21, 58, 33, 55, - 248, 37, 60, 33, 55, 248, 36, 33, 55, 217, 146, 33, 55, 217, 147, 60, 33, - 55, 198, 152, 33, 55, 223, 93, 248, 36, 33, 55, 96, 64, 60, 33, 8, 2, 1, - 65, 33, 8, 2, 1, 71, 33, 8, 2, 1, 68, 33, 8, 2, 1, 74, 33, 8, 2, 1, 66, - 33, 8, 2, 1, 247, 193, 33, 8, 2, 1, 238, 127, 33, 8, 2, 1, 230, 116, 33, - 8, 2, 1, 218, 168, 33, 8, 2, 1, 146, 33, 8, 2, 1, 200, 43, 33, 8, 2, 1, - 196, 12, 33, 8, 2, 1, 192, 235, 35, 6, 1, 229, 185, 35, 2, 1, 229, 185, - 35, 6, 1, 251, 14, 205, 145, 35, 2, 1, 251, 14, 205, 145, 35, 212, 134, - 56, 35, 110, 212, 134, 56, 35, 6, 1, 210, 171, 237, 10, 35, 2, 1, 210, - 171, 237, 10, 35, 191, 233, 35, 2, 207, 18, 218, 206, 202, 197, 113, 35, - 2, 235, 138, 218, 206, 202, 197, 113, 35, 2, 207, 18, 235, 138, 218, 206, - 202, 197, 113, 35, 208, 13, 77, 35, 6, 1, 191, 240, 35, 198, 60, 35, 237, - 36, 198, 60, 35, 6, 1, 251, 161, 4, 198, 60, 35, 251, 94, 199, 108, 35, - 6, 1, 234, 48, 4, 198, 60, 35, 6, 1, 233, 254, 4, 198, 60, 35, 6, 1, 223, - 84, 4, 198, 60, 35, 6, 1, 211, 108, 4, 198, 60, 35, 6, 1, 196, 71, 4, - 198, 60, 35, 6, 1, 211, 111, 4, 198, 60, 35, 2, 1, 223, 84, 4, 237, 36, - 23, 198, 60, 35, 6, 1, 251, 160, 35, 6, 1, 248, 212, 35, 6, 1, 231, 211, - 35, 6, 1, 237, 106, 35, 6, 1, 234, 47, 35, 6, 1, 191, 76, 35, 6, 1, 233, - 253, 35, 6, 1, 199, 15, 35, 6, 1, 223, 83, 35, 6, 1, 222, 72, 35, 6, 1, - 220, 31, 35, 6, 1, 215, 155, 35, 6, 1, 212, 178, 35, 6, 1, 192, 207, 35, - 6, 1, 211, 107, 35, 6, 1, 209, 185, 35, 6, 1, 207, 3, 35, 6, 1, 202, 196, - 35, 6, 1, 199, 166, 35, 6, 1, 196, 70, 35, 6, 1, 209, 211, 35, 6, 1, 243, - 95, 35, 6, 1, 208, 176, 35, 6, 1, 211, 110, 35, 6, 1, 223, 84, 4, 237, - 35, 35, 6, 1, 196, 71, 4, 237, 35, 35, 2, 1, 251, 161, 4, 198, 60, 35, 2, - 1, 234, 48, 4, 198, 60, 35, 2, 1, 233, 254, 4, 198, 60, 35, 2, 1, 223, - 84, 4, 198, 60, 35, 2, 1, 196, 71, 4, 237, 36, 23, 198, 60, 35, 2, 1, - 251, 160, 35, 2, 1, 248, 212, 35, 2, 1, 231, 211, 35, 2, 1, 237, 106, 35, - 2, 1, 234, 47, 35, 2, 1, 191, 76, 35, 2, 1, 233, 253, 35, 2, 1, 199, 15, - 35, 2, 1, 223, 83, 35, 2, 1, 222, 72, 35, 2, 1, 220, 31, 35, 2, 1, 215, - 155, 35, 2, 1, 212, 178, 35, 2, 1, 192, 207, 35, 2, 1, 211, 107, 35, 2, - 1, 209, 185, 35, 2, 1, 207, 3, 35, 2, 1, 53, 202, 196, 35, 2, 1, 202, - 196, 35, 2, 1, 199, 166, 35, 2, 1, 196, 70, 35, 2, 1, 209, 211, 35, 2, 1, - 243, 95, 35, 2, 1, 208, 176, 35, 2, 1, 211, 110, 35, 2, 1, 223, 84, 4, - 237, 35, 35, 2, 1, 196, 71, 4, 237, 35, 35, 2, 1, 211, 108, 4, 198, 60, - 35, 2, 1, 196, 71, 4, 198, 60, 35, 2, 1, 211, 111, 4, 198, 60, 35, 6, - 222, 103, 113, 35, 248, 213, 113, 35, 199, 16, 113, 35, 196, 71, 4, 228, - 251, 113, 35, 196, 71, 4, 252, 47, 23, 228, 251, 113, 35, 196, 71, 4, - 237, 43, 23, 228, 251, 113, 35, 209, 212, 113, 35, 209, 186, 113, 35, - 222, 103, 113, 35, 1, 251, 14, 221, 35, 35, 2, 1, 251, 14, 221, 35, 35, - 1, 201, 73, 35, 2, 1, 201, 73, 35, 1, 237, 10, 35, 2, 1, 237, 10, 35, 1, - 221, 35, 35, 2, 1, 221, 35, 35, 1, 205, 145, 35, 2, 1, 205, 145, 94, 6, - 1, 203, 105, 94, 2, 1, 203, 105, 94, 6, 1, 233, 44, 94, 2, 1, 233, 44, - 94, 6, 1, 221, 195, 94, 2, 1, 221, 195, 94, 6, 1, 228, 242, 94, 2, 1, - 228, 242, 94, 6, 1, 231, 206, 94, 2, 1, 231, 206, 94, 6, 1, 203, 71, 94, - 2, 1, 203, 71, 94, 6, 1, 237, 122, 94, 2, 1, 237, 122, 35, 222, 73, 113, - 35, 207, 4, 113, 35, 218, 206, 202, 197, 113, 35, 1, 191, 240, 35, 6, - 199, 16, 113, 35, 218, 206, 234, 48, 113, 35, 207, 18, 218, 206, 234, 48, - 113, 35, 6, 1, 203, 56, 35, 2, 1, 203, 56, 35, 6, 218, 206, 202, 197, - 113, 35, 6, 1, 205, 142, 35, 2, 1, 205, 142, 35, 207, 4, 4, 201, 28, 113, - 35, 6, 207, 18, 218, 206, 202, 197, 113, 35, 6, 235, 138, 218, 206, 202, - 197, 113, 35, 6, 207, 18, 235, 138, 218, 206, 202, 197, 113, 38, 6, 1, - 223, 227, 4, 230, 210, 38, 6, 1, 223, 88, 38, 6, 1, 236, 192, 38, 6, 1, - 231, 20, 38, 6, 1, 196, 125, 223, 226, 38, 6, 1, 235, 32, 38, 6, 1, 247, - 203, 68, 38, 6, 1, 192, 33, 38, 6, 1, 223, 10, 38, 6, 1, 219, 76, 38, 6, - 1, 213, 150, 38, 6, 1, 197, 155, 38, 6, 1, 221, 103, 38, 6, 1, 228, 74, - 4, 230, 210, 38, 6, 1, 203, 40, 66, 38, 6, 1, 235, 28, 38, 6, 1, 65, 38, - 6, 1, 249, 17, 38, 6, 1, 195, 153, 38, 6, 1, 231, 77, 38, 6, 1, 237, 146, - 38, 6, 1, 223, 226, 38, 6, 1, 191, 62, 38, 6, 1, 191, 87, 38, 6, 1, 68, - 38, 6, 1, 203, 40, 68, 38, 6, 1, 155, 38, 6, 1, 234, 140, 38, 6, 1, 234, - 114, 38, 6, 1, 234, 103, 38, 6, 1, 74, 38, 6, 1, 210, 63, 38, 6, 1, 234, - 34, 38, 6, 1, 234, 22, 38, 6, 1, 199, 145, 38, 6, 1, 66, 38, 6, 1, 234, - 181, 38, 6, 1, 140, 38, 6, 1, 197, 161, 38, 6, 1, 243, 127, 38, 6, 1, - 203, 165, 38, 6, 1, 203, 116, 38, 6, 1, 230, 17, 56, 38, 6, 1, 192, 58, - 38, 6, 1, 202, 32, 56, 38, 6, 1, 71, 38, 6, 1, 191, 225, 38, 6, 1, 170, - 38, 2, 1, 65, 38, 2, 1, 249, 17, 38, 2, 1, 195, 153, 38, 2, 1, 231, 77, - 38, 2, 1, 237, 146, 38, 2, 1, 223, 226, 38, 2, 1, 191, 62, 38, 2, 1, 191, - 87, 38, 2, 1, 68, 38, 2, 1, 203, 40, 68, 38, 2, 1, 155, 38, 2, 1, 234, - 140, 38, 2, 1, 234, 114, 38, 2, 1, 234, 103, 38, 2, 1, 74, 38, 2, 1, 210, - 63, 38, 2, 1, 234, 34, 38, 2, 1, 234, 22, 38, 2, 1, 199, 145, 38, 2, 1, - 66, 38, 2, 1, 234, 181, 38, 2, 1, 140, 38, 2, 1, 197, 161, 38, 2, 1, 243, - 127, 38, 2, 1, 203, 165, 38, 2, 1, 203, 116, 38, 2, 1, 230, 17, 56, 38, - 2, 1, 192, 58, 38, 2, 1, 202, 32, 56, 38, 2, 1, 71, 38, 2, 1, 191, 225, - 38, 2, 1, 170, 38, 2, 1, 223, 227, 4, 230, 210, 38, 2, 1, 223, 88, 38, 2, - 1, 236, 192, 38, 2, 1, 231, 20, 38, 2, 1, 196, 125, 223, 226, 38, 2, 1, - 235, 32, 38, 2, 1, 247, 203, 68, 38, 2, 1, 192, 33, 38, 2, 1, 223, 10, - 38, 2, 1, 219, 76, 38, 2, 1, 213, 150, 38, 2, 1, 197, 155, 38, 2, 1, 221, - 103, 38, 2, 1, 228, 74, 4, 230, 210, 38, 2, 1, 203, 40, 66, 38, 2, 1, - 235, 28, 38, 6, 1, 211, 110, 38, 2, 1, 211, 110, 38, 6, 1, 192, 95, 38, - 2, 1, 192, 95, 38, 6, 1, 223, 81, 71, 38, 2, 1, 223, 81, 71, 38, 6, 1, - 219, 83, 191, 190, 38, 2, 1, 219, 83, 191, 190, 38, 6, 1, 223, 81, 219, - 83, 191, 190, 38, 2, 1, 223, 81, 219, 83, 191, 190, 38, 6, 1, 248, 175, - 191, 190, 38, 2, 1, 248, 175, 191, 190, 38, 6, 1, 223, 81, 248, 175, 191, - 190, 38, 2, 1, 223, 81, 248, 175, 191, 190, 38, 6, 1, 220, 248, 38, 2, 1, - 220, 248, 38, 6, 1, 208, 176, 38, 2, 1, 208, 176, 38, 6, 1, 232, 228, 38, - 2, 1, 232, 228, 38, 6, 1, 223, 37, 38, 2, 1, 223, 37, 38, 6, 1, 223, 38, - 4, 55, 230, 211, 252, 60, 38, 2, 1, 223, 38, 4, 55, 230, 211, 252, 60, - 38, 6, 1, 196, 128, 38, 2, 1, 196, 128, 38, 6, 1, 206, 115, 211, 110, 38, - 2, 1, 206, 115, 211, 110, 38, 6, 1, 211, 111, 4, 198, 122, 38, 2, 1, 211, - 111, 4, 198, 122, 38, 6, 1, 211, 30, 38, 2, 1, 211, 30, 38, 6, 1, 221, - 35, 38, 2, 1, 221, 35, 38, 198, 229, 56, 33, 38, 198, 122, 33, 38, 210, - 191, 33, 38, 237, 213, 209, 75, 33, 38, 208, 170, 209, 75, 33, 38, 209, - 54, 33, 38, 228, 141, 198, 229, 56, 33, 38, 216, 48, 56, 38, 6, 1, 203, - 40, 228, 74, 4, 199, 215, 38, 2, 1, 203, 40, 228, 74, 4, 199, 215, 38, 6, - 1, 204, 21, 56, 38, 2, 1, 204, 21, 56, 38, 6, 1, 234, 35, 4, 198, 182, - 38, 2, 1, 234, 35, 4, 198, 182, 38, 6, 1, 231, 78, 4, 196, 69, 38, 2, 1, - 231, 78, 4, 196, 69, 38, 6, 1, 231, 78, 4, 106, 38, 2, 1, 231, 78, 4, - 106, 38, 6, 1, 231, 78, 4, 82, 102, 38, 2, 1, 231, 78, 4, 82, 102, 38, 6, - 1, 191, 63, 4, 237, 87, 38, 2, 1, 191, 63, 4, 237, 87, 38, 6, 1, 191, 88, - 4, 237, 87, 38, 2, 1, 191, 88, 4, 237, 87, 38, 6, 1, 222, 142, 4, 237, - 87, 38, 2, 1, 222, 142, 4, 237, 87, 38, 6, 1, 222, 142, 4, 81, 106, 38, - 2, 1, 222, 142, 4, 81, 106, 38, 6, 1, 222, 142, 4, 106, 38, 2, 1, 222, - 142, 4, 106, 38, 6, 1, 249, 70, 155, 38, 2, 1, 249, 70, 155, 38, 6, 1, - 234, 104, 4, 237, 87, 38, 2, 1, 234, 104, 4, 237, 87, 38, 6, 34, 234, - 104, 231, 77, 38, 2, 34, 234, 104, 231, 77, 38, 6, 1, 210, 64, 4, 82, - 102, 38, 2, 1, 210, 64, 4, 82, 102, 38, 6, 1, 252, 67, 140, 38, 2, 1, - 252, 67, 140, 38, 6, 1, 234, 23, 4, 237, 87, 38, 2, 1, 234, 23, 4, 237, - 87, 38, 6, 1, 199, 146, 4, 237, 87, 38, 2, 1, 199, 146, 4, 237, 87, 38, - 6, 1, 201, 53, 66, 38, 2, 1, 201, 53, 66, 38, 6, 1, 201, 53, 126, 4, 106, - 38, 2, 1, 201, 53, 126, 4, 106, 38, 6, 1, 230, 105, 4, 237, 87, 38, 2, 1, - 230, 105, 4, 237, 87, 38, 6, 34, 199, 146, 197, 161, 38, 2, 34, 199, 146, - 197, 161, 38, 6, 1, 243, 128, 4, 237, 87, 38, 2, 1, 243, 128, 4, 237, 87, - 38, 6, 1, 243, 128, 4, 81, 106, 38, 2, 1, 243, 128, 4, 81, 106, 38, 6, 1, - 203, 82, 38, 2, 1, 203, 82, 38, 6, 1, 252, 67, 243, 127, 38, 2, 1, 252, - 67, 243, 127, 38, 6, 1, 252, 67, 243, 128, 4, 237, 87, 38, 2, 1, 252, 67, - 243, 128, 4, 237, 87, 38, 1, 210, 179, 38, 6, 1, 191, 63, 4, 248, 36, 38, - 2, 1, 191, 63, 4, 248, 36, 38, 6, 1, 222, 142, 4, 102, 38, 2, 1, 222, - 142, 4, 102, 38, 6, 1, 234, 141, 4, 199, 215, 38, 2, 1, 234, 141, 4, 199, - 215, 38, 6, 1, 234, 104, 4, 102, 38, 2, 1, 234, 104, 4, 102, 38, 6, 1, - 234, 104, 4, 199, 215, 38, 2, 1, 234, 104, 4, 199, 215, 38, 6, 1, 221, - 208, 243, 127, 38, 2, 1, 221, 208, 243, 127, 38, 6, 1, 234, 115, 4, 199, - 215, 38, 2, 1, 234, 115, 4, 199, 215, 38, 2, 1, 210, 179, 38, 6, 1, 42, - 4, 248, 36, 38, 2, 1, 42, 4, 248, 36, 38, 6, 1, 42, 4, 237, 42, 38, 2, 1, - 42, 4, 237, 42, 38, 6, 34, 42, 223, 226, 38, 2, 34, 42, 223, 226, 38, 6, - 1, 223, 227, 4, 248, 36, 38, 2, 1, 223, 227, 4, 248, 36, 38, 6, 1, 205, - 86, 38, 2, 1, 205, 86, 38, 6, 1, 205, 87, 4, 237, 42, 38, 2, 1, 205, 87, - 4, 237, 42, 38, 6, 1, 191, 63, 4, 237, 42, 38, 2, 1, 191, 63, 4, 237, 42, - 38, 6, 1, 191, 88, 4, 237, 42, 38, 2, 1, 191, 88, 4, 237, 42, 38, 6, 1, - 252, 67, 235, 32, 38, 2, 1, 252, 67, 235, 32, 38, 6, 1, 228, 74, 4, 217, - 146, 38, 2, 1, 228, 74, 4, 217, 146, 38, 6, 1, 228, 74, 4, 237, 42, 38, - 2, 1, 228, 74, 4, 237, 42, 38, 6, 1, 187, 4, 237, 42, 38, 2, 1, 187, 4, - 237, 42, 38, 6, 1, 249, 82, 74, 38, 2, 1, 249, 82, 74, 38, 6, 1, 249, 82, - 187, 4, 237, 42, 38, 2, 1, 249, 82, 187, 4, 237, 42, 38, 6, 1, 235, 15, - 4, 237, 42, 38, 2, 1, 235, 15, 4, 237, 42, 38, 6, 1, 126, 4, 217, 146, - 38, 2, 1, 126, 4, 217, 146, 38, 6, 1, 126, 4, 237, 42, 38, 2, 1, 126, 4, - 237, 42, 38, 6, 1, 126, 4, 55, 252, 46, 38, 2, 1, 126, 4, 55, 252, 46, - 38, 6, 1, 243, 128, 4, 237, 42, 38, 2, 1, 243, 128, 4, 237, 42, 38, 6, 1, - 231, 78, 4, 237, 87, 38, 2, 1, 231, 78, 4, 237, 87, 38, 6, 1, 192, 59, 4, - 237, 42, 38, 2, 1, 192, 59, 4, 237, 42, 38, 6, 1, 231, 78, 4, 201, 28, - 23, 102, 38, 2, 1, 231, 78, 4, 201, 28, 23, 102, 38, 6, 1, 230, 105, 4, - 102, 38, 2, 1, 230, 105, 4, 102, 38, 6, 1, 230, 105, 4, 106, 38, 2, 1, - 230, 105, 4, 106, 38, 6, 1, 221, 45, 237, 146, 38, 2, 1, 221, 45, 237, - 146, 38, 6, 1, 221, 45, 236, 192, 38, 2, 1, 221, 45, 236, 192, 38, 6, 1, - 221, 45, 191, 12, 38, 2, 1, 221, 45, 191, 12, 38, 6, 1, 221, 45, 235, 24, - 38, 2, 1, 221, 45, 235, 24, 38, 6, 1, 221, 45, 219, 76, 38, 2, 1, 221, - 45, 219, 76, 38, 6, 1, 221, 45, 213, 150, 38, 2, 1, 221, 45, 213, 150, - 38, 6, 1, 221, 45, 202, 115, 38, 2, 1, 221, 45, 202, 115, 38, 6, 1, 221, - 45, 198, 116, 38, 2, 1, 221, 45, 198, 116, 38, 6, 1, 207, 18, 191, 87, - 38, 2, 1, 207, 18, 191, 87, 38, 6, 1, 234, 141, 4, 102, 38, 2, 1, 234, - 141, 4, 102, 38, 6, 1, 219, 159, 38, 2, 1, 219, 159, 38, 6, 1, 207, 6, - 38, 2, 1, 207, 6, 38, 6, 1, 192, 129, 38, 2, 1, 192, 129, 38, 6, 1, 208, - 96, 38, 2, 1, 208, 96, 38, 6, 1, 193, 125, 38, 2, 1, 193, 125, 38, 6, 1, - 251, 188, 155, 38, 2, 1, 251, 188, 155, 38, 6, 1, 234, 141, 4, 82, 102, - 38, 2, 1, 234, 141, 4, 82, 102, 38, 6, 1, 234, 104, 4, 82, 102, 38, 2, 1, - 234, 104, 4, 82, 102, 38, 6, 1, 210, 64, 4, 237, 87, 38, 2, 1, 210, 64, - 4, 237, 87, 38, 6, 1, 203, 83, 4, 237, 87, 38, 2, 1, 203, 83, 4, 237, 87, - 38, 6, 1, 234, 104, 4, 45, 102, 38, 2, 1, 234, 104, 4, 45, 102, 38, 6, 1, - 235, 16, 38, 2, 1, 235, 16, 38, 6, 1, 237, 195, 38, 2, 1, 237, 195, 38, - 6, 1, 234, 141, 4, 237, 87, 38, 2, 1, 234, 141, 4, 237, 87, 250, 249, 6, - 1, 250, 128, 250, 249, 6, 1, 248, 229, 250, 249, 6, 1, 231, 40, 250, 249, - 6, 1, 238, 32, 250, 249, 6, 1, 234, 195, 250, 249, 6, 1, 191, 123, 250, - 249, 6, 1, 234, 173, 250, 249, 6, 1, 233, 255, 250, 249, 6, 1, 159, 250, - 249, 6, 1, 191, 62, 250, 249, 6, 1, 223, 131, 250, 249, 6, 1, 219, 80, - 250, 249, 6, 1, 192, 212, 250, 249, 6, 1, 247, 160, 250, 249, 6, 1, 221, - 251, 250, 249, 6, 1, 229, 23, 250, 249, 6, 1, 223, 32, 250, 249, 6, 1, - 231, 88, 250, 249, 6, 1, 243, 117, 250, 249, 6, 1, 216, 186, 250, 249, 6, - 1, 192, 33, 250, 249, 6, 1, 212, 253, 250, 249, 6, 1, 203, 165, 250, 249, - 6, 1, 195, 24, 250, 249, 6, 1, 247, 1, 250, 249, 6, 1, 210, 41, 250, 249, - 6, 1, 222, 247, 250, 249, 6, 1, 165, 250, 249, 6, 1, 205, 39, 250, 249, - 6, 1, 195, 74, 250, 249, 6, 1, 198, 119, 250, 249, 6, 1, 207, 71, 250, - 249, 6, 1, 242, 99, 250, 249, 6, 1, 192, 17, 250, 249, 6, 1, 209, 114, - 250, 249, 6, 1, 222, 6, 250, 249, 6, 1, 211, 136, 250, 249, 6, 1, 233, - 46, 250, 249, 52, 1, 45, 132, 206, 188, 250, 249, 251, 49, 250, 249, 234, - 107, 77, 250, 249, 233, 216, 77, 250, 249, 242, 74, 250, 249, 208, 13, - 77, 250, 249, 252, 68, 77, 250, 249, 2, 1, 153, 250, 128, 250, 249, 2, 1, - 250, 128, 250, 249, 2, 1, 248, 229, 250, 249, 2, 1, 231, 40, 250, 249, 2, - 1, 238, 32, 250, 249, 2, 1, 234, 195, 250, 249, 2, 1, 191, 123, 250, 249, - 2, 1, 234, 173, 250, 249, 2, 1, 233, 255, 250, 249, 2, 1, 159, 250, 249, - 2, 1, 191, 62, 250, 249, 2, 1, 223, 131, 250, 249, 2, 1, 219, 80, 250, - 249, 2, 1, 192, 212, 250, 249, 2, 1, 247, 160, 250, 249, 2, 1, 221, 251, - 250, 249, 2, 1, 229, 23, 250, 249, 2, 1, 223, 32, 250, 249, 2, 1, 231, - 88, 250, 249, 2, 1, 243, 117, 250, 249, 2, 1, 216, 186, 250, 249, 2, 1, - 192, 33, 250, 249, 2, 1, 212, 253, 250, 249, 2, 1, 203, 165, 250, 249, 2, - 1, 195, 24, 250, 249, 2, 1, 247, 1, 250, 249, 2, 1, 210, 41, 250, 249, 2, - 1, 222, 247, 250, 249, 2, 1, 165, 250, 249, 2, 1, 205, 39, 250, 249, 2, - 1, 195, 74, 250, 249, 2, 1, 198, 119, 250, 249, 2, 1, 207, 71, 250, 249, - 2, 1, 242, 99, 250, 249, 2, 1, 192, 17, 250, 249, 2, 1, 209, 114, 250, - 249, 2, 1, 222, 6, 250, 249, 2, 1, 211, 136, 250, 249, 2, 1, 233, 46, - 250, 249, 2, 34, 234, 196, 192, 17, 250, 249, 2, 1, 11, 4, 106, 250, 249, - 232, 80, 201, 63, 250, 249, 228, 88, 206, 207, 250, 249, 233, 251, 56, - 219, 223, 250, 249, 233, 251, 56, 250, 249, 235, 110, 56, 136, 252, 61, - 233, 246, 136, 252, 61, 205, 40, 136, 252, 61, 203, 141, 136, 252, 61, - 191, 99, 208, 78, 136, 252, 61, 191, 99, 231, 230, 136, 252, 61, 198, - 134, 136, 252, 61, 207, 15, 136, 252, 61, 191, 97, 136, 252, 61, 210, 97, - 136, 252, 61, 192, 48, 136, 252, 61, 199, 56, 136, 252, 61, 231, 139, - 136, 252, 61, 231, 140, 215, 110, 136, 252, 61, 231, 137, 136, 252, 61, - 208, 80, 210, 130, 136, 252, 61, 199, 103, 231, 158, 136, 252, 61, 210, - 69, 136, 252, 61, 250, 173, 230, 85, 136, 252, 61, 215, 121, 136, 252, - 61, 217, 117, 136, 252, 61, 216, 175, 136, 252, 61, 216, 176, 222, 7, - 136, 252, 61, 237, 222, 136, 252, 61, 208, 91, 136, 252, 61, 199, 103, - 208, 73, 136, 252, 61, 192, 61, 248, 230, 191, 247, 136, 252, 61, 211, - 117, 136, 252, 61, 223, 183, 136, 252, 61, 237, 123, 136, 252, 61, 191, - 19, 136, 87, 217, 34, 243, 10, 136, 209, 62, 203, 85, 136, 209, 62, 230, - 8, 205, 40, 136, 209, 62, 230, 8, 210, 88, 136, 209, 62, 230, 8, 208, 84, - 136, 209, 62, 229, 119, 136, 209, 62, 197, 158, 136, 209, 62, 205, 40, - 136, 209, 62, 210, 88, 136, 209, 62, 208, 84, 136, 209, 62, 229, 7, 136, - 209, 62, 229, 8, 230, 10, 40, 195, 158, 136, 209, 62, 208, 18, 136, 209, - 62, 238, 17, 211, 57, 217, 70, 136, 209, 62, 216, 164, 136, 208, 152, - 217, 67, 136, 209, 62, 207, 161, 136, 208, 152, 210, 99, 136, 209, 62, - 203, 70, 236, 140, 136, 209, 62, 202, 175, 236, 140, 136, 208, 152, 202, - 33, 210, 90, 136, 87, 116, 236, 140, 136, 87, 110, 236, 140, 136, 208, - 152, 212, 131, 230, 84, 136, 209, 62, 208, 85, 208, 78, 136, 1, 251, 192, - 136, 1, 248, 214, 136, 1, 231, 38, 136, 1, 237, 253, 136, 1, 229, 245, - 136, 1, 195, 158, 136, 1, 191, 91, 136, 1, 229, 186, 136, 1, 199, 73, - 136, 1, 191, 250, 136, 1, 53, 222, 106, 136, 1, 222, 106, 136, 1, 220, - 27, 136, 1, 53, 216, 193, 136, 1, 216, 193, 136, 1, 53, 212, 130, 136, 1, - 212, 130, 136, 1, 205, 148, 136, 1, 250, 126, 136, 1, 53, 210, 63, 136, - 1, 210, 63, 136, 1, 53, 197, 163, 136, 1, 197, 163, 136, 1, 208, 42, 136, - 1, 207, 38, 136, 1, 203, 69, 136, 1, 199, 162, 136, 191, 251, 197, 241, - 136, 34, 192, 31, 55, 195, 158, 136, 34, 192, 31, 195, 159, 191, 250, - 136, 34, 192, 31, 55, 191, 250, 136, 208, 152, 231, 139, 136, 208, 152, - 231, 137, 9, 31, 56, 9, 3, 205, 141, 9, 232, 157, 217, 51, 9, 3, 205, - 187, 9, 3, 205, 144, 9, 31, 87, 58, 251, 28, 238, 191, 206, 128, 251, 28, - 232, 121, 206, 128, 9, 207, 122, 251, 28, 210, 14, 216, 50, 56, 251, 28, - 210, 14, 199, 96, 198, 230, 56, 252, 2, 56, 9, 242, 74, 9, 237, 209, 204, - 10, 9, 209, 64, 195, 137, 56, 9, 3, 216, 25, 9, 3, 205, 161, 251, 199, - 193, 149, 9, 3, 251, 199, 250, 198, 9, 3, 207, 157, 251, 198, 9, 3, 207, - 167, 251, 170, 251, 105, 9, 3, 199, 206, 9, 2, 137, 199, 219, 9, 2, 137, - 34, 131, 4, 220, 36, 4, 192, 75, 9, 2, 137, 191, 113, 9, 2, 233, 70, 9, - 2, 237, 245, 9, 2, 222, 52, 9, 204, 25, 9, 1, 77, 9, 234, 95, 79, 199, - 54, 77, 9, 197, 225, 75, 208, 152, 77, 9, 208, 13, 77, 9, 1, 222, 56, - 192, 75, 9, 1, 230, 57, 9, 1, 131, 4, 217, 142, 58, 9, 1, 131, 4, 230, - 58, 58, 9, 1, 193, 134, 4, 230, 58, 58, 9, 1, 131, 4, 230, 58, 60, 9, 1, - 99, 4, 230, 58, 58, 9, 1, 251, 192, 9, 1, 248, 245, 9, 1, 199, 115, 217, - 62, 9, 1, 199, 114, 9, 1, 199, 29, 9, 1, 223, 6, 9, 1, 230, 81, 9, 1, - 221, 210, 9, 1, 238, 3, 9, 1, 199, 41, 9, 1, 207, 71, 9, 1, 191, 113, 9, - 1, 205, 46, 9, 1, 203, 109, 9, 1, 205, 192, 9, 1, 238, 26, 9, 1, 199, - 219, 9, 1, 191, 116, 9, 1, 251, 230, 9, 1, 231, 86, 9, 1, 222, 5, 4, 105, - 185, 58, 9, 1, 222, 5, 4, 115, 185, 60, 9, 1, 233, 74, 99, 4, 223, 93, - 196, 12, 9, 1, 233, 74, 99, 4, 105, 185, 58, 9, 1, 233, 74, 99, 4, 115, - 185, 58, 9, 199, 168, 9, 1, 233, 46, 9, 1, 208, 89, 9, 1, 222, 106, 9, 1, - 220, 35, 9, 1, 216, 208, 9, 1, 213, 24, 9, 1, 229, 210, 9, 1, 193, 133, - 9, 1, 131, 217, 99, 9, 1, 192, 75, 9, 233, 68, 9, 237, 243, 9, 222, 50, - 9, 233, 70, 9, 237, 245, 9, 222, 52, 9, 203, 155, 9, 200, 206, 9, 217, - 140, 58, 9, 230, 58, 58, 9, 230, 58, 60, 9, 200, 230, 251, 192, 9, 223, - 93, 237, 245, 9, 87, 213, 25, 231, 57, 9, 190, 237, 9, 18, 3, 2, 196, 13, - 58, 9, 18, 3, 223, 93, 2, 196, 13, 58, 9, 18, 3, 75, 60, 9, 207, 18, 237, - 245, 9, 233, 71, 4, 105, 236, 138, 9, 193, 135, 230, 58, 60, 251, 28, 17, - 191, 77, 251, 28, 17, 107, 251, 28, 17, 109, 251, 28, 17, 138, 251, 28, - 17, 134, 251, 28, 17, 149, 251, 28, 17, 169, 251, 28, 17, 175, 251, 28, - 17, 171, 251, 28, 17, 178, 9, 210, 13, 56, 9, 237, 138, 204, 10, 9, 198, - 229, 204, 10, 9, 232, 226, 209, 60, 201, 102, 9, 1, 236, 139, 248, 245, - 9, 1, 236, 139, 208, 89, 9, 1, 200, 182, 251, 192, 9, 1, 131, 193, 150, - 9, 1, 131, 4, 193, 135, 230, 58, 58, 9, 1, 131, 4, 193, 135, 230, 58, 60, - 9, 1, 137, 230, 57, 9, 1, 137, 230, 58, 251, 192, 9, 1, 137, 230, 58, - 193, 133, 9, 1, 126, 4, 230, 58, 58, 9, 1, 137, 230, 58, 192, 75, 9, 1, - 197, 124, 9, 1, 197, 122, 9, 1, 248, 255, 9, 1, 199, 115, 4, 206, 188, 9, - 1, 199, 115, 4, 115, 185, 93, 235, 118, 9, 1, 210, 41, 9, 1, 199, 112, 9, - 1, 248, 243, 9, 1, 182, 4, 230, 58, 58, 9, 1, 182, 4, 105, 185, 81, 58, - 9, 1, 212, 87, 9, 1, 235, 41, 9, 1, 182, 4, 115, 185, 58, 9, 1, 199, 149, - 9, 1, 199, 147, 9, 1, 237, 186, 9, 1, 238, 4, 4, 206, 188, 9, 1, 238, 4, - 4, 75, 60, 9, 1, 238, 4, 4, 75, 248, 233, 23, 2, 199, 219, 9, 1, 238, 10, - 9, 1, 237, 188, 9, 1, 235, 78, 9, 1, 238, 4, 4, 115, 185, 93, 235, 118, - 9, 1, 238, 4, 4, 232, 128, 185, 58, 9, 1, 206, 101, 9, 1, 207, 72, 4, 2, - 196, 12, 9, 1, 207, 72, 4, 206, 188, 9, 1, 207, 72, 4, 75, 60, 9, 1, 207, - 72, 4, 2, 196, 13, 60, 9, 1, 207, 72, 4, 75, 248, 233, 23, 75, 58, 9, 1, - 207, 72, 4, 105, 185, 58, 9, 1, 223, 3, 9, 1, 207, 72, 4, 232, 128, 185, - 58, 9, 1, 205, 47, 4, 75, 248, 233, 23, 75, 58, 9, 1, 205, 47, 4, 115, - 185, 60, 9, 1, 205, 47, 4, 115, 185, 248, 233, 23, 115, 185, 58, 9, 1, - 205, 193, 4, 105, 185, 60, 9, 1, 205, 193, 4, 115, 185, 58, 9, 1, 199, - 220, 4, 115, 185, 58, 9, 1, 251, 231, 4, 115, 185, 58, 9, 1, 236, 139, - 233, 46, 9, 1, 233, 47, 4, 75, 215, 177, 60, 9, 1, 233, 47, 4, 75, 60, 9, - 1, 195, 146, 9, 1, 233, 47, 4, 115, 185, 60, 9, 1, 210, 39, 9, 1, 208, - 90, 4, 75, 58, 9, 1, 208, 90, 4, 115, 185, 58, 9, 1, 222, 4, 9, 1, 200, - 146, 222, 106, 9, 1, 222, 107, 4, 206, 188, 9, 1, 222, 107, 4, 75, 58, 9, - 1, 214, 70, 9, 1, 222, 107, 4, 115, 185, 60, 9, 1, 231, 227, 9, 1, 231, - 228, 4, 206, 188, 9, 1, 213, 247, 9, 1, 231, 228, 4, 105, 185, 60, 9, 1, - 230, 166, 9, 1, 231, 228, 4, 115, 185, 58, 9, 1, 220, 36, 4, 2, 196, 12, - 9, 1, 220, 36, 4, 75, 58, 9, 1, 220, 36, 4, 115, 185, 58, 9, 1, 220, 36, - 4, 115, 185, 60, 9, 1, 213, 25, 4, 75, 60, 9, 1, 213, 25, 231, 57, 9, 1, - 206, 165, 9, 1, 213, 25, 4, 206, 188, 9, 1, 213, 25, 4, 115, 185, 58, 9, - 1, 229, 211, 236, 170, 9, 1, 199, 150, 4, 75, 58, 9, 1, 229, 211, 4, 99, - 58, 9, 1, 229, 211, 231, 0, 9, 1, 229, 211, 231, 1, 4, 230, 58, 58, 9, 1, - 199, 115, 217, 63, 231, 0, 9, 1, 193, 134, 4, 206, 188, 9, 1, 221, 132, - 211, 151, 9, 1, 211, 151, 9, 1, 66, 9, 1, 191, 225, 9, 1, 221, 132, 191, - 225, 9, 1, 193, 134, 4, 105, 185, 58, 9, 1, 195, 153, 9, 1, 233, 74, 192, - 75, 9, 1, 99, 4, 199, 215, 9, 1, 99, 4, 2, 196, 12, 9, 1, 193, 134, 4, - 75, 58, 9, 1, 71, 9, 1, 99, 4, 115, 185, 60, 9, 1, 99, 249, 80, 9, 1, 99, - 249, 81, 4, 230, 58, 58, 9, 232, 80, 201, 63, 9, 1, 252, 25, 9, 2, 137, - 34, 205, 193, 4, 220, 36, 4, 131, 217, 99, 9, 2, 137, 34, 208, 90, 4, - 220, 36, 4, 131, 217, 99, 9, 2, 137, 92, 89, 20, 9, 2, 137, 220, 36, 251, - 192, 9, 2, 137, 223, 6, 9, 2, 137, 115, 236, 138, 9, 2, 137, 205, 46, 9, - 234, 95, 79, 250, 130, 9, 201, 98, 79, 206, 60, 234, 141, 229, 114, 9, 2, - 137, 206, 113, 191, 77, 9, 2, 137, 196, 73, 207, 91, 191, 77, 9, 2, 137, - 236, 139, 229, 236, 79, 221, 210, 9, 2, 137, 92, 76, 20, 9, 2, 130, 205, - 46, 9, 2, 137, 217, 141, 9, 2, 193, 133, 9, 2, 192, 75, 9, 2, 137, 192, - 75, 9, 2, 137, 213, 24, 9, 209, 108, 79, 205, 177, 9, 234, 105, 247, 22, - 130, 201, 63, 9, 234, 105, 247, 22, 137, 201, 63, 9, 206, 113, 137, 201, - 64, 4, 233, 4, 247, 21, 9, 2, 130, 216, 208, 9, 1, 238, 4, 4, 223, 93, - 196, 12, 9, 1, 207, 72, 4, 223, 93, 196, 12, 233, 205, 251, 28, 17, 191, - 77, 233, 205, 251, 28, 17, 107, 233, 205, 251, 28, 17, 109, 233, 205, - 251, 28, 17, 138, 233, 205, 251, 28, 17, 134, 233, 205, 251, 28, 17, 149, - 233, 205, 251, 28, 17, 169, 233, 205, 251, 28, 17, 175, 233, 205, 251, - 28, 17, 171, 233, 205, 251, 28, 17, 178, 9, 1, 203, 110, 4, 75, 60, 9, 1, - 238, 27, 4, 75, 60, 9, 1, 231, 87, 4, 75, 60, 9, 3, 202, 173, 251, 137, - 9, 3, 202, 173, 209, 16, 216, 186, 9, 1, 229, 211, 4, 223, 93, 196, 12, - 200, 63, 234, 95, 79, 210, 127, 200, 63, 200, 177, 232, 80, 201, 63, 200, - 63, 200, 232, 232, 80, 201, 63, 200, 63, 200, 177, 242, 83, 200, 63, 200, - 232, 242, 83, 200, 63, 228, 241, 242, 83, 200, 63, 242, 84, 202, 110, - 219, 224, 200, 63, 242, 84, 202, 110, 183, 200, 63, 200, 177, 242, 84, - 202, 110, 219, 224, 200, 63, 200, 232, 242, 84, 202, 110, 183, 200, 63, - 239, 24, 200, 63, 230, 15, 211, 176, 200, 63, 230, 15, 216, 162, 200, 63, - 230, 15, 250, 195, 200, 63, 252, 68, 77, 200, 63, 1, 251, 202, 200, 63, - 1, 200, 182, 251, 202, 200, 63, 1, 248, 211, 200, 63, 1, 231, 217, 200, - 63, 1, 231, 218, 231, 194, 200, 63, 1, 238, 0, 200, 63, 1, 236, 139, 238, - 1, 206, 181, 200, 63, 1, 229, 245, 200, 63, 1, 193, 133, 200, 63, 1, 191, - 113, 200, 63, 1, 229, 184, 200, 63, 1, 199, 69, 200, 63, 1, 199, 70, 231, - 194, 200, 63, 1, 191, 208, 200, 63, 1, 191, 209, 229, 245, 200, 63, 1, - 222, 75, 200, 63, 1, 220, 34, 200, 63, 1, 216, 46, 200, 63, 1, 212, 130, - 200, 63, 1, 204, 18, 200, 63, 1, 53, 204, 18, 200, 63, 1, 71, 200, 63, 1, - 210, 63, 200, 63, 1, 207, 18, 210, 63, 200, 63, 1, 205, 189, 200, 63, 1, - 208, 83, 200, 63, 1, 206, 181, 200, 63, 1, 203, 69, 200, 63, 1, 199, 159, - 200, 63, 1, 209, 252, 248, 194, 200, 63, 1, 209, 252, 231, 84, 200, 63, - 1, 209, 252, 237, 63, 200, 63, 208, 166, 58, 200, 63, 208, 166, 60, 200, - 63, 208, 166, 235, 137, 200, 63, 191, 0, 58, 200, 63, 191, 0, 60, 200, - 63, 191, 0, 235, 137, 200, 63, 207, 116, 58, 200, 63, 207, 116, 60, 200, - 63, 235, 138, 191, 9, 228, 240, 200, 63, 235, 138, 191, 9, 251, 108, 200, - 63, 229, 250, 58, 200, 63, 229, 250, 60, 200, 63, 229, 249, 235, 137, - 200, 63, 234, 16, 58, 200, 63, 234, 16, 60, 200, 63, 206, 24, 200, 63, - 233, 40, 236, 140, 200, 63, 207, 246, 200, 63, 206, 54, 200, 63, 105, 81, - 185, 58, 200, 63, 105, 81, 185, 60, 200, 63, 115, 185, 58, 200, 63, 115, - 185, 60, 200, 63, 211, 172, 219, 113, 58, 200, 63, 211, 172, 219, 113, - 60, 200, 63, 215, 96, 200, 63, 249, 79, 200, 63, 1, 202, 28, 191, 69, - 200, 63, 1, 202, 28, 221, 201, 200, 63, 1, 202, 28, 233, 59, 9, 1, 248, - 246, 4, 115, 185, 228, 190, 60, 9, 1, 248, 246, 4, 75, 248, 233, 23, 115, - 185, 58, 9, 1, 248, 246, 4, 115, 185, 209, 58, 196, 66, 60, 9, 1, 248, - 246, 4, 115, 185, 209, 58, 196, 66, 248, 233, 23, 105, 185, 58, 9, 1, - 248, 246, 4, 105, 185, 248, 233, 23, 75, 58, 9, 1, 248, 246, 4, 223, 93, - 2, 196, 13, 60, 9, 1, 248, 246, 4, 2, 196, 12, 9, 1, 182, 4, 105, 185, - 58, 9, 1, 182, 4, 115, 185, 209, 58, 196, 66, 60, 9, 1, 238, 4, 4, 105, - 185, 195, 85, 248, 233, 23, 2, 199, 219, 9, 1, 238, 4, 4, 223, 93, 2, - 196, 13, 60, 9, 1, 207, 72, 4, 106, 9, 1, 205, 47, 4, 232, 128, 185, 58, - 9, 1, 251, 231, 4, 105, 185, 58, 9, 1, 251, 231, 4, 115, 185, 209, 58, - 235, 119, 58, 9, 1, 251, 231, 4, 105, 185, 195, 85, 58, 9, 1, 233, 47, 4, - 105, 185, 60, 9, 1, 233, 47, 4, 115, 185, 209, 58, 196, 66, 60, 9, 1, - 222, 5, 4, 75, 58, 9, 1, 222, 5, 4, 115, 185, 58, 9, 1, 222, 5, 4, 115, - 185, 209, 58, 196, 66, 60, 9, 1, 92, 4, 75, 58, 9, 1, 92, 4, 75, 60, 9, - 1, 213, 25, 4, 105, 185, 60, 9, 1, 213, 25, 4, 2, 199, 219, 9, 1, 213, - 25, 4, 2, 196, 12, 9, 1, 220, 36, 4, 164, 9, 1, 207, 72, 4, 105, 185, - 195, 85, 58, 9, 1, 207, 72, 4, 230, 58, 58, 9, 1, 205, 47, 4, 105, 185, - 195, 85, 58, 9, 1, 182, 4, 2, 9, 1, 199, 220, 60, 9, 1, 182, 4, 2, 9, 1, - 199, 220, 23, 105, 236, 138, 9, 1, 205, 47, 4, 2, 9, 1, 199, 220, 23, - 105, 236, 138, 9, 1, 207, 72, 4, 2, 9, 1, 199, 220, 23, 105, 236, 138, 9, - 1, 182, 4, 2, 9, 1, 199, 220, 58, 9, 1, 131, 4, 233, 205, 251, 28, 17, - 105, 58, 9, 1, 131, 4, 233, 205, 251, 28, 17, 115, 58, 9, 1, 233, 74, 99, - 4, 233, 205, 251, 28, 17, 105, 58, 9, 1, 233, 74, 99, 4, 233, 205, 251, - 28, 17, 115, 58, 9, 1, 233, 74, 99, 4, 233, 205, 251, 28, 17, 232, 128, - 60, 9, 1, 193, 134, 4, 233, 205, 251, 28, 17, 105, 58, 9, 1, 193, 134, 4, - 233, 205, 251, 28, 17, 115, 58, 9, 1, 99, 249, 81, 4, 233, 205, 251, 28, - 17, 105, 58, 9, 1, 99, 249, 81, 4, 233, 205, 251, 28, 17, 115, 58, 9, 1, - 182, 4, 233, 205, 251, 28, 17, 232, 128, 60, 9, 1, 205, 47, 4, 233, 205, - 251, 28, 17, 232, 128, 58, 9, 1, 205, 47, 4, 223, 93, 196, 12, 9, 1, 222, - 107, 4, 105, 185, 58, 199, 46, 1, 230, 91, 199, 46, 1, 203, 119, 199, 46, - 1, 213, 23, 199, 46, 1, 207, 178, 199, 46, 1, 249, 151, 199, 46, 1, 219, - 156, 199, 46, 1, 222, 122, 199, 46, 1, 251, 179, 199, 46, 1, 195, 186, - 199, 46, 1, 216, 207, 199, 46, 1, 233, 107, 199, 46, 1, 237, 66, 199, 46, - 1, 199, 48, 199, 46, 1, 220, 122, 199, 46, 1, 231, 236, 199, 46, 1, 231, - 6, 199, 46, 1, 205, 45, 199, 46, 1, 237, 207, 199, 46, 1, 191, 94, 199, - 46, 1, 199, 161, 199, 46, 1, 192, 140, 199, 46, 1, 210, 77, 199, 46, 1, - 223, 15, 199, 46, 1, 243, 130, 199, 46, 1, 197, 131, 199, 46, 1, 229, - 176, 199, 46, 1, 221, 214, 199, 46, 1, 199, 47, 199, 46, 1, 191, 121, - 199, 46, 1, 203, 108, 199, 46, 1, 205, 196, 199, 46, 1, 238, 30, 199, 46, - 1, 159, 199, 46, 1, 191, 7, 199, 46, 1, 251, 227, 199, 46, 1, 231, 85, - 199, 46, 1, 208, 93, 199, 46, 1, 193, 178, 199, 46, 252, 70, 199, 46, - 252, 171, 199, 46, 228, 29, 199, 46, 234, 187, 199, 46, 196, 161, 199, - 46, 211, 86, 199, 46, 234, 198, 199, 46, 233, 195, 199, 46, 211, 171, - 199, 46, 211, 181, 199, 46, 200, 206, 199, 46, 1, 214, 250, 213, 107, 17, - 191, 77, 213, 107, 17, 107, 213, 107, 17, 109, 213, 107, 17, 138, 213, - 107, 17, 134, 213, 107, 17, 149, 213, 107, 17, 169, 213, 107, 17, 175, - 213, 107, 17, 171, 213, 107, 17, 178, 213, 107, 1, 65, 213, 107, 1, 234, - 188, 213, 107, 1, 68, 213, 107, 1, 71, 213, 107, 1, 66, 213, 107, 1, 211, - 87, 213, 107, 1, 74, 213, 107, 1, 238, 18, 213, 107, 1, 215, 61, 213, - 107, 1, 249, 153, 213, 107, 1, 168, 213, 107, 1, 190, 190, 213, 107, 1, - 223, 32, 213, 107, 1, 247, 1, 213, 107, 1, 238, 32, 213, 107, 1, 165, - 213, 107, 1, 206, 109, 213, 107, 1, 188, 213, 107, 1, 231, 182, 213, 107, - 1, 233, 109, 213, 107, 1, 155, 213, 107, 1, 173, 213, 107, 1, 215, 7, - 193, 37, 213, 107, 1, 174, 213, 107, 1, 212, 101, 213, 107, 1, 180, 213, - 107, 1, 140, 213, 107, 1, 193, 190, 213, 107, 1, 170, 213, 107, 1, 212, - 102, 193, 37, 213, 107, 1, 222, 193, 223, 32, 213, 107, 1, 222, 193, 247, - 1, 213, 107, 1, 222, 193, 165, 213, 107, 33, 203, 40, 137, 198, 79, 213, - 107, 33, 203, 40, 130, 198, 79, 213, 107, 33, 203, 40, 206, 180, 198, 79, - 213, 107, 33, 179, 237, 86, 198, 79, 213, 107, 33, 179, 137, 198, 79, - 213, 107, 33, 179, 130, 198, 79, 213, 107, 33, 179, 206, 180, 198, 79, - 213, 107, 33, 214, 213, 77, 213, 107, 33, 55, 75, 58, 213, 107, 137, 163, - 251, 49, 213, 107, 130, 163, 251, 49, 213, 107, 16, 211, 88, 237, 101, - 213, 107, 16, 231, 181, 213, 107, 242, 74, 213, 107, 233, 216, 77, 213, - 107, 220, 94, 213, 107, 237, 233, 213, 107, 236, 142, 56, 213, 107, 199, - 195, 56, 205, 151, 1, 251, 204, 205, 151, 1, 248, 148, 205, 151, 1, 231, - 216, 205, 151, 1, 238, 2, 205, 151, 1, 223, 44, 205, 151, 1, 249, 151, - 205, 151, 1, 191, 80, 205, 151, 1, 223, 53, 205, 151, 1, 198, 125, 205, - 151, 1, 191, 189, 205, 151, 1, 222, 123, 205, 151, 1, 220, 118, 205, 151, - 1, 216, 46, 205, 151, 1, 212, 130, 205, 151, 1, 202, 171, 205, 151, 1, - 223, 162, 205, 151, 1, 233, 23, 205, 151, 1, 197, 166, 205, 151, 1, 208, - 10, 205, 151, 1, 206, 181, 205, 151, 1, 203, 138, 205, 151, 1, 199, 243, - 205, 151, 87, 223, 162, 205, 151, 87, 223, 161, 205, 151, 87, 211, 165, - 205, 151, 87, 238, 16, 205, 151, 52, 1, 234, 52, 191, 189, 205, 151, 87, - 234, 52, 191, 189, 205, 151, 18, 3, 179, 71, 205, 151, 18, 3, 71, 205, - 151, 18, 3, 210, 253, 252, 206, 205, 151, 18, 3, 179, 252, 206, 205, 151, - 18, 3, 252, 206, 205, 151, 18, 3, 210, 253, 65, 205, 151, 18, 3, 179, 65, - 205, 151, 18, 3, 65, 205, 151, 52, 1, 203, 40, 65, 205, 151, 18, 3, 203, - 40, 65, 205, 151, 18, 3, 179, 66, 205, 151, 18, 3, 66, 205, 151, 52, 1, - 68, 205, 151, 18, 3, 179, 68, 205, 151, 18, 3, 68, 205, 151, 18, 3, 74, - 205, 151, 18, 3, 200, 206, 205, 151, 87, 214, 93, 205, 151, 208, 152, - 214, 93, 205, 151, 208, 152, 251, 255, 205, 151, 208, 152, 251, 121, 205, - 151, 208, 152, 249, 57, 205, 151, 208, 152, 250, 174, 205, 151, 208, 152, - 203, 57, 205, 151, 252, 68, 77, 205, 151, 208, 152, 216, 197, 208, 48, - 205, 151, 208, 152, 191, 16, 205, 151, 208, 152, 208, 48, 205, 151, 208, - 152, 191, 119, 205, 151, 208, 152, 197, 54, 205, 151, 208, 152, 250, 255, - 205, 151, 208, 152, 202, 33, 217, 37, 205, 151, 208, 152, 251, 97, 217, - 86, 1, 230, 65, 217, 86, 1, 252, 155, 217, 86, 1, 251, 253, 217, 86, 1, - 252, 42, 217, 86, 1, 251, 245, 217, 86, 1, 196, 36, 217, 86, 1, 250, 123, - 217, 86, 1, 223, 53, 217, 86, 1, 250, 171, 217, 86, 1, 251, 211, 217, 86, - 1, 251, 216, 217, 86, 1, 251, 207, 217, 86, 1, 251, 149, 217, 86, 1, 251, - 132, 217, 86, 1, 250, 219, 217, 86, 1, 223, 162, 217, 86, 1, 251, 65, - 217, 86, 1, 250, 184, 217, 86, 1, 251, 37, 217, 86, 1, 251, 33, 217, 86, - 1, 250, 209, 217, 86, 1, 250, 182, 217, 86, 1, 235, 62, 217, 86, 1, 222, - 114, 217, 86, 1, 251, 230, 217, 86, 252, 3, 77, 217, 86, 195, 22, 77, - 217, 86, 231, 153, 77, 217, 86, 208, 151, 200, 63, 1, 142, 214, 68, 200, - 63, 1, 142, 223, 32, 200, 63, 1, 142, 212, 101, 200, 63, 1, 142, 197, - 132, 200, 63, 1, 142, 213, 79, 200, 63, 1, 142, 213, 61, 200, 63, 1, 142, - 248, 203, 200, 63, 1, 142, 165, 200, 63, 1, 142, 219, 73, 200, 63, 1, - 142, 219, 62, 200, 63, 1, 142, 201, 175, 9, 1, 131, 4, 250, 170, 233, 70, - 9, 1, 131, 4, 250, 170, 198, 54, 50, 233, 70, 9, 1, 131, 4, 50, 82, 106, - 9, 1, 131, 4, 45, 82, 106, 9, 1, 131, 4, 250, 170, 222, 52, 9, 1, 131, 4, - 250, 170, 248, 77, 50, 222, 52, 9, 1, 131, 4, 250, 170, 206, 115, 75, 58, - 9, 1, 131, 4, 250, 170, 50, 206, 115, 236, 140, 9, 1, 131, 4, 250, 170, - 45, 206, 115, 236, 140, 9, 1, 131, 4, 250, 170, 206, 115, 75, 60, 9, 1, - 131, 4, 75, 58, 9, 1, 131, 4, 250, 170, 198, 54, 50, 233, 71, 23, 75, 58, - 9, 1, 131, 4, 50, 82, 201, 28, 23, 75, 58, 9, 1, 131, 4, 250, 170, 248, - 77, 50, 222, 53, 23, 75, 58, 9, 1, 131, 4, 250, 170, 198, 54, 50, 233, - 71, 23, 45, 206, 188, 9, 1, 131, 4, 50, 82, 201, 28, 23, 45, 206, 188, 9, - 1, 131, 4, 250, 170, 248, 77, 50, 222, 53, 23, 45, 206, 188, 9, 1, 131, - 4, 250, 170, 50, 230, 57, 9, 1, 131, 4, 250, 170, 45, 230, 57, 9, 199, - 169, 4, 210, 251, 230, 57, 9, 199, 169, 4, 210, 251, 193, 133, 9, 199, - 169, 4, 105, 185, 60, 9, 1, 199, 4, 192, 75, 9, 249, 72, 206, 115, 236, - 140, 9, 207, 147, 206, 115, 236, 140, 9, 1, 213, 25, 4, 223, 93, 2, 196, - 12, 9, 1, 182, 4, 223, 93, 2, 196, 13, 60, 9, 1, 199, 220, 4, 75, 60, 9, - 1, 199, 220, 4, 115, 185, 60, 9, 1, 222, 5, 4, 105, 185, 195, 85, 60, 9, - 81, 199, 215, 9, 209, 8, 87, 58, 9, 209, 182, 87, 58, 9, 2, 137, 193, 23, - 251, 206, 9, 2, 130, 193, 23, 223, 61, 9, 2, 130, 193, 23, 223, 179, 9, - 2, 130, 193, 23, 199, 173, 9, 217, 142, 193, 179, 9, 200, 182, 131, 215, - 234, 9, 235, 128, 217, 141, 9, 132, 217, 142, 139, 217, 141, 9, 1, 248, - 246, 4, 2, 196, 13, 60, 9, 1, 248, 246, 4, 230, 58, 58, 9, 1, 223, 7, 4, - 105, 185, 58, 9, 1, 199, 220, 4, 105, 185, 58, 9, 1, 233, 47, 4, 75, 248, - 233, 23, 115, 185, 58, 9, 1, 208, 90, 4, 75, 60, 9, 1, 220, 36, 4, 55, - 164, 9, 1, 92, 4, 115, 185, 58, 9, 1, 99, 4, 105, 185, 248, 233, 23, 230, - 58, 58, 9, 1, 99, 4, 105, 185, 248, 233, 23, 75, 58, 9, 1, 207, 72, 4, - 219, 4, 9, 1, 193, 134, 4, 75, 193, 52, 9, 1, 206, 142, 192, 75, 9, 1, - 130, 251, 192, 9, 1, 238, 4, 4, 115, 185, 60, 9, 1, 205, 193, 4, 115, - 185, 60, 9, 1, 231, 228, 4, 223, 93, 106, 9, 1, 201, 53, 193, 133, 9, 1, - 191, 114, 4, 223, 93, 196, 13, 58, 9, 1, 251, 231, 4, 115, 185, 60, 9, 1, - 222, 107, 4, 75, 60, 9, 1, 208, 90, 4, 75, 248, 233, 23, 213, 44, 185, - 58, 9, 1, 248, 246, 4, 2, 92, 58, 9, 1, 210, 42, 4, 2, 92, 58, 9, 1, 199, - 115, 4, 2, 199, 115, 58, 9, 1, 207, 72, 4, 2, 213, 25, 58, 9, 1, 99, 4, - 105, 185, 248, 233, 23, 2, 213, 25, 58, 9, 1, 252, 0, 233, 46, 9, 1, 252, - 0, 208, 89, 9, 1, 252, 0, 213, 24, 9, 1, 210, 42, 4, 2, 196, 12, 9, 1, - 199, 115, 4, 2, 196, 12, 9, 1, 197, 125, 4, 2, 196, 12, 9, 1, 199, 150, - 4, 2, 196, 12, 9, 1, 222, 5, 4, 2, 196, 12, 9, 1, 231, 87, 4, 115, 185, - 58, 9, 1, 252, 0, 208, 90, 4, 115, 185, 58, 9, 1, 223, 7, 4, 115, 185, - 58, 9, 1, 223, 7, 4, 115, 185, 60, 9, 1, 220, 36, 4, 2, 9, 1, 199, 220, - 58, 9, 1, 230, 224, 9, 2, 233, 74, 192, 75, 9, 2, 137, 233, 74, 192, 75, - 9, 2, 137, 99, 249, 81, 4, 105, 185, 60, 9, 2, 137, 193, 23, 205, 182, 9, - 2, 137, 191, 116, 9, 220, 13, 206, 115, 75, 58, 9, 220, 13, 206, 115, 75, - 60, 9, 200, 207, 60, 9, 220, 13, 243, 11, 60, 9, 220, 13, 206, 115, 75, - 223, 118, 243, 11, 60, 9, 2, 130, 193, 133, 9, 2, 137, 193, 23, 251, 30, - 9, 2, 137, 205, 192, 9, 2, 137, 251, 230, 9, 2, 137, 208, 89, 9, 2, 137, - 213, 25, 4, 222, 52, 9, 2, 130, 213, 25, 4, 222, 52, 9, 2, 137, 193, 23, - 250, 181, 9, 2, 137, 193, 23, 250, 218, 9, 2, 137, 193, 23, 251, 131, 9, - 2, 137, 193, 23, 205, 171, 9, 2, 137, 193, 23, 208, 52, 9, 2, 137, 193, - 23, 193, 157, 9, 2, 137, 232, 157, 217, 51, 9, 2, 137, 3, 205, 187, 9, - 236, 218, 234, 95, 79, 250, 130, 9, 153, 237, 246, 60, 9, 238, 171, 233, - 70, 9, 238, 171, 237, 245, 9, 238, 171, 222, 52, 9, 238, 171, 233, 68, 9, - 238, 171, 237, 243, 9, 238, 171, 222, 50, 9, 163, 91, 75, 58, 9, 163, - 105, 185, 58, 9, 163, 219, 5, 58, 9, 163, 91, 75, 60, 9, 163, 105, 185, - 60, 9, 163, 219, 5, 60, 9, 211, 77, 233, 68, 9, 211, 77, 237, 243, 9, - 211, 77, 222, 50, 9, 2, 137, 193, 133, 9, 233, 71, 4, 206, 188, 9, 233, - 71, 4, 75, 58, 9, 222, 53, 4, 75, 60, 9, 45, 250, 236, 58, 9, 50, 250, - 236, 58, 9, 45, 250, 236, 60, 9, 50, 250, 236, 60, 9, 55, 50, 250, 236, - 58, 9, 55, 50, 250, 236, 93, 4, 236, 140, 9, 50, 250, 236, 93, 4, 236, - 140, 9, 237, 246, 4, 236, 140, 9, 87, 202, 206, 213, 25, 231, 57, 100, 3, - 223, 93, 247, 119, 100, 3, 247, 119, 100, 3, 251, 71, 100, 3, 195, 35, - 100, 1, 203, 40, 65, 100, 1, 65, 100, 1, 252, 206, 100, 1, 68, 100, 1, - 223, 199, 100, 1, 66, 100, 1, 196, 30, 100, 1, 117, 146, 100, 1, 117, - 172, 100, 1, 247, 122, 71, 100, 1, 203, 40, 71, 100, 1, 71, 100, 1, 251, - 236, 100, 1, 247, 122, 74, 100, 1, 203, 40, 74, 100, 1, 74, 100, 1, 250, - 163, 100, 1, 155, 100, 1, 221, 215, 100, 1, 231, 240, 100, 1, 231, 91, - 100, 1, 214, 68, 100, 1, 247, 160, 100, 1, 247, 1, 100, 1, 223, 32, 100, - 1, 222, 252, 100, 1, 212, 101, 100, 1, 197, 132, 100, 1, 197, 120, 100, - 1, 237, 191, 100, 1, 237, 175, 100, 1, 213, 79, 100, 1, 190, 190, 100, 1, - 199, 49, 100, 1, 238, 32, 100, 1, 237, 68, 100, 1, 180, 100, 1, 213, 61, - 100, 1, 168, 100, 1, 209, 228, 100, 1, 249, 153, 100, 1, 248, 203, 100, - 1, 174, 100, 1, 170, 100, 1, 165, 100, 1, 206, 109, 100, 1, 173, 100, 1, - 219, 73, 100, 1, 219, 62, 100, 1, 195, 188, 100, 1, 203, 165, 100, 1, - 201, 175, 100, 1, 188, 100, 1, 140, 100, 18, 3, 211, 151, 100, 18, 3, - 211, 85, 100, 3, 212, 141, 100, 3, 250, 145, 100, 18, 3, 252, 206, 100, - 18, 3, 68, 100, 18, 3, 223, 199, 100, 18, 3, 66, 100, 18, 3, 196, 30, - 100, 18, 3, 117, 146, 100, 18, 3, 117, 206, 110, 100, 18, 3, 247, 122, - 71, 100, 18, 3, 203, 40, 71, 100, 18, 3, 71, 100, 18, 3, 251, 236, 100, - 18, 3, 247, 122, 74, 100, 18, 3, 203, 40, 74, 100, 18, 3, 74, 100, 18, 3, - 250, 163, 100, 3, 195, 40, 100, 18, 3, 208, 207, 71, 100, 18, 3, 250, - 140, 100, 211, 113, 100, 201, 38, 3, 196, 154, 100, 201, 38, 3, 251, 73, - 100, 230, 211, 252, 60, 100, 252, 47, 252, 60, 100, 18, 3, 247, 122, 179, - 71, 100, 18, 3, 196, 152, 100, 18, 3, 196, 29, 100, 1, 208, 96, 100, 1, - 221, 193, 100, 1, 231, 66, 100, 1, 191, 123, 100, 1, 237, 180, 100, 1, - 207, 6, 100, 1, 233, 109, 100, 1, 191, 175, 100, 1, 117, 206, 110, 100, - 1, 117, 219, 74, 100, 18, 3, 117, 172, 100, 18, 3, 117, 219, 74, 100, - 237, 238, 100, 55, 237, 238, 100, 17, 191, 77, 100, 17, 107, 100, 17, - 109, 100, 17, 138, 100, 17, 134, 100, 17, 149, 100, 17, 169, 100, 17, - 175, 100, 17, 171, 100, 17, 178, 100, 252, 68, 56, 100, 3, 137, 201, 246, - 236, 140, 100, 1, 247, 122, 65, 100, 1, 211, 151, 100, 1, 211, 85, 100, - 1, 250, 140, 100, 1, 196, 152, 100, 1, 196, 29, 100, 1, 217, 43, 237, - 191, 100, 1, 191, 71, 100, 1, 88, 170, 100, 1, 231, 127, 100, 1, 222, - 230, 100, 1, 231, 11, 201, 63, 100, 1, 237, 181, 100, 1, 249, 53, 248, - 225, 251, 100, 248, 225, 3, 247, 119, 248, 225, 3, 251, 71, 248, 225, 3, - 195, 35, 248, 225, 1, 65, 248, 225, 1, 252, 206, 248, 225, 1, 68, 248, - 225, 1, 223, 199, 248, 225, 1, 66, 248, 225, 1, 196, 30, 248, 225, 1, - 117, 146, 248, 225, 1, 117, 172, 248, 225, 1, 71, 248, 225, 1, 251, 236, - 248, 225, 1, 74, 248, 225, 1, 250, 163, 248, 225, 1, 155, 248, 225, 1, - 221, 215, 248, 225, 1, 231, 240, 248, 225, 1, 231, 91, 248, 225, 1, 214, - 68, 248, 225, 1, 247, 160, 248, 225, 1, 247, 1, 248, 225, 1, 223, 32, - 248, 225, 1, 222, 252, 248, 225, 1, 212, 101, 248, 225, 1, 197, 132, 248, - 225, 1, 197, 120, 248, 225, 1, 237, 191, 248, 225, 1, 237, 175, 248, 225, - 1, 213, 79, 248, 225, 1, 190, 190, 248, 225, 1, 199, 49, 248, 225, 1, - 238, 32, 248, 225, 1, 237, 68, 248, 225, 1, 180, 248, 225, 1, 168, 248, - 225, 1, 209, 228, 248, 225, 1, 249, 153, 248, 225, 1, 248, 203, 248, 225, - 1, 174, 248, 225, 1, 170, 248, 225, 1, 165, 248, 225, 1, 173, 248, 225, - 1, 203, 165, 248, 225, 1, 201, 175, 248, 225, 1, 188, 248, 225, 1, 140, - 248, 225, 3, 212, 141, 248, 225, 3, 250, 145, 248, 225, 18, 3, 252, 206, - 248, 225, 18, 3, 68, 248, 225, 18, 3, 223, 199, 248, 225, 18, 3, 66, 248, - 225, 18, 3, 196, 30, 248, 225, 18, 3, 117, 146, 248, 225, 18, 3, 117, - 206, 110, 248, 225, 18, 3, 71, 248, 225, 18, 3, 251, 236, 248, 225, 18, - 3, 74, 248, 225, 18, 3, 250, 163, 248, 225, 3, 195, 40, 248, 225, 1, 221, - 204, 190, 190, 248, 225, 250, 164, 219, 198, 77, 248, 225, 1, 206, 109, - 248, 225, 1, 207, 6, 248, 225, 1, 191, 175, 248, 225, 1, 117, 206, 110, - 248, 225, 1, 117, 219, 74, 248, 225, 18, 3, 117, 172, 248, 225, 18, 3, - 117, 219, 74, 248, 225, 17, 191, 77, 248, 225, 17, 107, 248, 225, 17, - 109, 248, 225, 17, 138, 248, 225, 17, 134, 248, 225, 17, 149, 248, 225, - 17, 169, 248, 225, 17, 175, 248, 225, 17, 171, 248, 225, 17, 178, 248, - 225, 1, 207, 186, 4, 82, 237, 38, 248, 225, 1, 207, 186, 4, 110, 237, 38, - 248, 225, 206, 36, 77, 248, 225, 206, 36, 56, 248, 225, 238, 170, 212, - 133, 107, 248, 225, 238, 170, 212, 133, 109, 248, 225, 238, 170, 212, - 133, 138, 248, 225, 238, 170, 212, 133, 134, 248, 225, 238, 170, 212, - 133, 91, 219, 181, 199, 39, 199, 34, 237, 99, 248, 225, 238, 170, 237, - 100, 202, 130, 248, 225, 223, 54, 248, 225, 231, 207, 77, 248, 225, 1, - 195, 150, 251, 71, 248, 225, 252, 68, 56, 248, 225, 205, 138, 77, 230, - 144, 3, 252, 41, 248, 167, 230, 144, 3, 248, 167, 230, 144, 3, 195, 35, - 230, 144, 1, 65, 230, 144, 1, 252, 206, 230, 144, 1, 68, 230, 144, 1, - 223, 199, 230, 144, 1, 66, 230, 144, 1, 196, 30, 230, 144, 1, 234, 188, - 230, 144, 1, 251, 236, 230, 144, 1, 211, 87, 230, 144, 1, 250, 163, 230, - 144, 1, 155, 230, 144, 1, 221, 215, 230, 144, 1, 231, 240, 230, 144, 1, - 231, 91, 230, 144, 1, 214, 68, 230, 144, 1, 247, 160, 230, 144, 1, 247, - 1, 230, 144, 1, 223, 32, 230, 144, 1, 222, 252, 230, 144, 1, 212, 101, - 230, 144, 1, 197, 132, 230, 144, 1, 197, 120, 230, 144, 1, 237, 191, 230, - 144, 1, 237, 175, 230, 144, 1, 213, 79, 230, 144, 1, 190, 190, 230, 144, - 1, 199, 49, 230, 144, 1, 238, 32, 230, 144, 1, 237, 68, 230, 144, 1, 180, - 230, 144, 1, 168, 230, 144, 1, 209, 228, 230, 144, 1, 249, 153, 230, 144, - 1, 248, 203, 230, 144, 1, 174, 230, 144, 1, 170, 230, 144, 1, 165, 230, - 144, 1, 173, 230, 144, 1, 219, 73, 230, 144, 1, 195, 188, 230, 144, 1, - 203, 165, 230, 144, 1, 188, 230, 144, 1, 140, 230, 144, 3, 212, 141, 230, - 144, 18, 3, 252, 206, 230, 144, 18, 3, 68, 230, 144, 18, 3, 223, 199, - 230, 144, 18, 3, 66, 230, 144, 18, 3, 196, 30, 230, 144, 18, 3, 234, 188, - 230, 144, 18, 3, 251, 236, 230, 144, 18, 3, 211, 87, 230, 144, 18, 3, - 250, 163, 230, 144, 3, 195, 40, 230, 144, 3, 196, 157, 230, 144, 1, 221, - 193, 230, 144, 1, 231, 66, 230, 144, 1, 191, 123, 230, 144, 1, 206, 109, - 230, 144, 1, 233, 109, 230, 144, 17, 191, 77, 230, 144, 17, 107, 230, - 144, 17, 109, 230, 144, 17, 138, 230, 144, 17, 134, 230, 144, 17, 149, - 230, 144, 17, 169, 230, 144, 17, 175, 230, 144, 17, 171, 230, 144, 17, - 178, 230, 144, 198, 133, 230, 144, 252, 40, 230, 144, 223, 75, 230, 144, - 196, 58, 230, 144, 234, 148, 211, 92, 230, 144, 3, 192, 115, 230, 144, - 252, 68, 56, 230, 161, 3, 247, 119, 230, 161, 3, 251, 71, 230, 161, 3, - 195, 35, 230, 161, 1, 65, 230, 161, 1, 252, 206, 230, 161, 1, 68, 230, - 161, 1, 223, 199, 230, 161, 1, 66, 230, 161, 1, 196, 30, 230, 161, 1, - 117, 146, 230, 161, 1, 117, 172, 230, 161, 18, 247, 122, 71, 230, 161, 1, - 71, 230, 161, 1, 251, 236, 230, 161, 18, 247, 122, 74, 230, 161, 1, 74, - 230, 161, 1, 250, 163, 230, 161, 1, 155, 230, 161, 1, 221, 215, 230, 161, - 1, 231, 240, 230, 161, 1, 231, 91, 230, 161, 1, 214, 68, 230, 161, 1, - 247, 160, 230, 161, 1, 247, 1, 230, 161, 1, 223, 32, 230, 161, 1, 222, - 252, 230, 161, 1, 212, 101, 230, 161, 1, 197, 132, 230, 161, 1, 197, 120, - 230, 161, 1, 237, 191, 230, 161, 1, 237, 175, 230, 161, 1, 213, 79, 230, - 161, 1, 190, 190, 230, 161, 1, 199, 49, 230, 161, 1, 238, 32, 230, 161, - 1, 237, 68, 230, 161, 1, 180, 230, 161, 1, 168, 230, 161, 1, 209, 228, - 230, 161, 1, 249, 153, 230, 161, 1, 248, 203, 230, 161, 1, 174, 230, 161, - 1, 170, 230, 161, 1, 165, 230, 161, 1, 173, 230, 161, 1, 219, 73, 230, - 161, 1, 195, 188, 230, 161, 1, 203, 165, 230, 161, 1, 201, 175, 230, 161, - 1, 188, 230, 161, 1, 140, 230, 161, 3, 212, 141, 230, 161, 3, 250, 145, - 230, 161, 18, 3, 252, 206, 230, 161, 18, 3, 68, 230, 161, 18, 3, 223, - 199, 230, 161, 18, 3, 66, 230, 161, 18, 3, 196, 30, 230, 161, 18, 3, 117, - 146, 230, 161, 18, 3, 117, 206, 110, 230, 161, 18, 3, 247, 122, 71, 230, - 161, 18, 3, 71, 230, 161, 18, 3, 251, 236, 230, 161, 18, 3, 247, 122, 74, - 230, 161, 18, 3, 74, 230, 161, 18, 3, 250, 163, 230, 161, 3, 195, 40, - 230, 161, 211, 113, 230, 161, 1, 117, 206, 110, 230, 161, 1, 117, 219, - 74, 230, 161, 18, 3, 117, 172, 230, 161, 18, 3, 117, 219, 74, 230, 161, - 17, 191, 77, 230, 161, 17, 107, 230, 161, 17, 109, 230, 161, 17, 138, - 230, 161, 17, 134, 230, 161, 17, 149, 230, 161, 17, 169, 230, 161, 17, - 175, 230, 161, 17, 171, 230, 161, 17, 178, 230, 161, 252, 68, 56, 230, - 161, 206, 36, 56, 230, 161, 1, 191, 71, 230, 161, 3, 200, 206, 230, 161, - 3, 203, 155, 230, 161, 3, 217, 139, 230, 161, 3, 198, 224, 212, 142, 58, - 230, 161, 3, 243, 11, 212, 142, 58, 230, 161, 3, 197, 15, 212, 142, 58, - 211, 45, 3, 247, 119, 211, 45, 3, 251, 71, 211, 45, 3, 195, 35, 211, 45, - 1, 65, 211, 45, 1, 252, 206, 211, 45, 1, 68, 211, 45, 1, 223, 199, 211, - 45, 1, 66, 211, 45, 1, 196, 30, 211, 45, 1, 117, 146, 211, 45, 1, 117, - 172, 211, 45, 1, 71, 211, 45, 1, 251, 236, 211, 45, 1, 74, 211, 45, 1, - 250, 163, 211, 45, 1, 155, 211, 45, 1, 221, 215, 211, 45, 1, 231, 240, - 211, 45, 1, 231, 91, 211, 45, 1, 214, 68, 211, 45, 1, 247, 160, 211, 45, - 1, 247, 1, 211, 45, 1, 223, 32, 211, 45, 1, 222, 252, 211, 45, 1, 212, - 101, 211, 45, 1, 197, 132, 211, 45, 1, 197, 120, 211, 45, 1, 237, 191, - 211, 45, 1, 237, 175, 211, 45, 1, 213, 79, 211, 45, 1, 190, 190, 211, 45, - 1, 199, 49, 211, 45, 1, 238, 32, 211, 45, 1, 237, 68, 211, 45, 1, 180, - 211, 45, 1, 168, 211, 45, 1, 209, 228, 211, 45, 1, 249, 153, 211, 45, 1, - 248, 203, 211, 45, 1, 174, 211, 45, 1, 170, 211, 45, 1, 165, 211, 45, 1, - 173, 211, 45, 1, 219, 73, 211, 45, 1, 195, 188, 211, 45, 1, 203, 165, - 211, 45, 1, 201, 175, 211, 45, 1, 188, 211, 45, 1, 140, 211, 45, 3, 212, - 141, 211, 45, 3, 250, 145, 211, 45, 18, 3, 252, 206, 211, 45, 18, 3, 68, - 211, 45, 18, 3, 223, 199, 211, 45, 18, 3, 66, 211, 45, 18, 3, 196, 30, - 211, 45, 18, 3, 117, 146, 211, 45, 18, 3, 117, 206, 110, 211, 45, 18, 3, - 71, 211, 45, 18, 3, 251, 236, 211, 45, 18, 3, 74, 211, 45, 18, 3, 250, - 163, 211, 45, 3, 195, 40, 211, 45, 3, 210, 254, 211, 45, 251, 237, 219, - 198, 77, 211, 45, 250, 164, 219, 198, 77, 211, 45, 1, 206, 109, 211, 45, - 1, 207, 6, 211, 45, 1, 191, 175, 211, 45, 1, 117, 206, 110, 211, 45, 1, - 117, 219, 74, 211, 45, 18, 3, 117, 172, 211, 45, 18, 3, 117, 219, 74, - 211, 45, 17, 191, 77, 211, 45, 17, 107, 211, 45, 17, 109, 211, 45, 17, - 138, 211, 45, 17, 134, 211, 45, 17, 149, 211, 45, 17, 169, 211, 45, 17, - 175, 211, 45, 17, 171, 211, 45, 17, 178, 211, 45, 223, 54, 211, 45, 1, - 193, 190, 211, 45, 232, 118, 91, 208, 22, 211, 45, 232, 118, 91, 230, 70, - 211, 45, 232, 118, 115, 208, 20, 211, 45, 232, 118, 91, 202, 128, 211, - 45, 232, 118, 91, 234, 159, 211, 45, 232, 118, 115, 202, 125, 44, 3, 251, - 71, 44, 3, 195, 35, 44, 1, 65, 44, 1, 252, 206, 44, 1, 68, 44, 1, 223, - 199, 44, 1, 66, 44, 1, 196, 30, 44, 1, 71, 44, 1, 234, 188, 44, 1, 251, - 236, 44, 1, 74, 44, 1, 211, 87, 44, 1, 250, 163, 44, 1, 155, 44, 1, 214, - 68, 44, 1, 247, 160, 44, 1, 223, 32, 44, 1, 212, 101, 44, 1, 197, 132, - 44, 1, 213, 79, 44, 1, 190, 190, 44, 1, 180, 44, 1, 213, 61, 44, 1, 168, - 44, 1, 174, 44, 1, 170, 44, 1, 165, 44, 1, 206, 109, 44, 1, 173, 44, 1, - 219, 73, 44, 1, 219, 62, 44, 1, 195, 188, 44, 1, 203, 165, 44, 1, 201, - 175, 44, 1, 188, 44, 1, 140, 44, 18, 3, 252, 206, 44, 18, 3, 68, 44, 18, - 3, 223, 199, 44, 18, 3, 66, 44, 18, 3, 196, 30, 44, 18, 3, 71, 44, 18, 3, - 234, 188, 44, 18, 3, 251, 236, 44, 18, 3, 74, 44, 18, 3, 211, 87, 44, 18, - 3, 250, 163, 44, 3, 195, 40, 44, 211, 113, 44, 250, 164, 219, 198, 77, - 44, 17, 191, 77, 44, 17, 107, 44, 17, 109, 44, 17, 138, 44, 17, 134, 44, - 17, 149, 44, 17, 169, 44, 17, 175, 44, 17, 171, 44, 17, 178, 44, 31, 199, - 95, 44, 31, 91, 228, 140, 44, 31, 91, 189, 44, 237, 204, 56, 44, 215, - 214, 56, 44, 192, 78, 56, 44, 237, 142, 56, 44, 238, 230, 56, 44, 250, - 220, 93, 56, 44, 206, 36, 56, 44, 31, 56, 199, 99, 3, 33, 247, 120, 58, - 199, 99, 3, 247, 119, 199, 99, 3, 251, 71, 199, 99, 3, 195, 35, 199, 99, - 3, 33, 251, 72, 58, 199, 99, 1, 65, 199, 99, 1, 252, 206, 199, 99, 1, 68, - 199, 99, 1, 223, 199, 199, 99, 1, 66, 199, 99, 1, 196, 30, 199, 99, 1, - 117, 146, 199, 99, 1, 117, 172, 199, 99, 1, 71, 199, 99, 1, 234, 188, - 199, 99, 1, 251, 236, 199, 99, 1, 74, 199, 99, 1, 211, 87, 199, 99, 1, - 250, 163, 199, 99, 1, 155, 199, 99, 1, 221, 215, 199, 99, 1, 231, 240, - 199, 99, 1, 231, 91, 199, 99, 1, 214, 68, 199, 99, 1, 247, 160, 199, 99, - 1, 247, 1, 199, 99, 1, 223, 32, 199, 99, 1, 222, 252, 199, 99, 1, 212, - 101, 199, 99, 1, 197, 132, 199, 99, 1, 197, 120, 199, 99, 1, 237, 191, - 199, 99, 1, 237, 175, 199, 99, 1, 213, 79, 199, 99, 1, 190, 190, 199, 99, - 1, 199, 49, 199, 99, 1, 238, 32, 199, 99, 1, 237, 68, 199, 99, 1, 180, - 199, 99, 1, 168, 199, 99, 1, 209, 228, 199, 99, 1, 249, 153, 199, 99, 1, - 248, 203, 199, 99, 1, 174, 199, 99, 1, 170, 199, 99, 1, 165, 199, 99, 1, - 206, 109, 199, 99, 1, 173, 199, 99, 1, 219, 73, 199, 99, 1, 219, 62, 199, - 99, 1, 195, 188, 199, 99, 1, 203, 165, 199, 99, 1, 201, 175, 199, 99, 1, - 188, 199, 99, 1, 140, 199, 99, 3, 212, 141, 199, 99, 3, 250, 145, 199, - 99, 18, 3, 252, 206, 199, 99, 18, 3, 68, 199, 99, 18, 3, 223, 199, 199, - 99, 18, 3, 66, 199, 99, 18, 3, 196, 30, 199, 99, 18, 3, 117, 146, 199, - 99, 18, 3, 117, 206, 110, 199, 99, 18, 3, 71, 199, 99, 18, 3, 234, 188, - 199, 99, 18, 3, 251, 236, 199, 99, 18, 3, 74, 199, 99, 18, 3, 211, 87, - 199, 99, 18, 3, 250, 163, 199, 99, 3, 195, 40, 199, 99, 219, 198, 77, - 199, 99, 251, 237, 219, 198, 77, 199, 99, 1, 197, 168, 199, 99, 1, 235, - 35, 199, 99, 1, 206, 90, 199, 99, 1, 214, 232, 209, 46, 199, 99, 1, 117, - 206, 110, 199, 99, 1, 117, 219, 74, 199, 99, 18, 3, 117, 172, 199, 99, - 18, 3, 117, 219, 74, 199, 99, 17, 191, 77, 199, 99, 17, 107, 199, 99, 17, - 109, 199, 99, 17, 138, 199, 99, 17, 134, 199, 99, 17, 149, 199, 99, 17, - 169, 199, 99, 17, 175, 199, 99, 17, 171, 199, 99, 17, 178, 199, 99, 3, - 202, 210, 199, 99, 232, 118, 17, 191, 78, 40, 211, 155, 208, 253, 79, - 134, 199, 99, 232, 118, 17, 91, 40, 211, 155, 208, 253, 79, 134, 199, 99, - 232, 118, 17, 105, 40, 211, 155, 208, 253, 79, 134, 199, 99, 232, 118, - 17, 115, 40, 211, 155, 208, 253, 79, 134, 199, 99, 232, 118, 17, 91, 40, - 233, 229, 208, 253, 79, 134, 199, 99, 232, 118, 17, 105, 40, 233, 229, - 208, 253, 79, 134, 199, 99, 232, 118, 17, 115, 40, 233, 229, 208, 253, - 79, 134, 199, 99, 3, 197, 48, 222, 81, 3, 201, 246, 247, 119, 222, 81, 3, - 247, 119, 222, 81, 3, 251, 71, 222, 81, 3, 195, 35, 222, 81, 3, 202, 210, - 222, 81, 1, 65, 222, 81, 1, 252, 206, 222, 81, 1, 68, 222, 81, 1, 223, - 199, 222, 81, 1, 66, 222, 81, 1, 196, 30, 222, 81, 1, 117, 146, 222, 81, - 1, 117, 172, 222, 81, 1, 71, 222, 81, 1, 234, 188, 222, 81, 1, 251, 236, - 222, 81, 1, 74, 222, 81, 1, 211, 87, 222, 81, 1, 250, 163, 222, 81, 1, - 155, 222, 81, 1, 221, 215, 222, 81, 1, 231, 240, 222, 81, 1, 231, 91, - 222, 81, 1, 214, 68, 222, 81, 1, 247, 160, 222, 81, 1, 247, 1, 222, 81, - 1, 223, 32, 222, 81, 1, 222, 252, 222, 81, 1, 212, 101, 222, 81, 1, 197, - 132, 222, 81, 1, 197, 120, 222, 81, 1, 237, 191, 222, 81, 1, 237, 175, - 222, 81, 1, 213, 79, 222, 81, 1, 190, 190, 222, 81, 1, 199, 49, 222, 81, - 1, 238, 32, 222, 81, 1, 237, 68, 222, 81, 1, 180, 222, 81, 1, 168, 222, - 81, 1, 209, 228, 222, 81, 1, 249, 153, 222, 81, 1, 248, 203, 222, 81, 1, - 174, 222, 81, 1, 170, 222, 81, 1, 165, 222, 81, 1, 206, 109, 222, 81, 1, - 173, 222, 81, 1, 219, 73, 222, 81, 1, 195, 188, 222, 81, 1, 203, 165, - 222, 81, 1, 201, 175, 222, 81, 1, 188, 222, 81, 1, 140, 222, 81, 3, 212, - 141, 222, 81, 3, 250, 145, 222, 81, 18, 3, 252, 206, 222, 81, 18, 3, 68, - 222, 81, 18, 3, 223, 199, 222, 81, 18, 3, 66, 222, 81, 18, 3, 196, 30, - 222, 81, 18, 3, 117, 146, 222, 81, 18, 3, 117, 206, 110, 222, 81, 18, 3, - 71, 222, 81, 18, 3, 234, 188, 222, 81, 18, 3, 251, 236, 222, 81, 18, 3, - 74, 222, 81, 18, 3, 211, 87, 222, 81, 18, 3, 250, 163, 222, 81, 3, 195, - 40, 222, 81, 219, 198, 77, 222, 81, 251, 237, 219, 198, 77, 222, 81, 1, - 214, 232, 209, 46, 222, 81, 1, 233, 109, 222, 81, 1, 117, 206, 110, 222, - 81, 1, 117, 219, 74, 222, 81, 18, 3, 117, 172, 222, 81, 18, 3, 117, 219, - 74, 222, 81, 17, 191, 77, 222, 81, 17, 107, 222, 81, 17, 109, 222, 81, - 17, 138, 222, 81, 17, 134, 222, 81, 17, 149, 222, 81, 17, 169, 222, 81, - 17, 175, 222, 81, 17, 171, 222, 81, 17, 178, 222, 81, 3, 222, 237, 222, - 81, 3, 196, 75, 222, 81, 3, 33, 251, 72, 93, 183, 142, 3, 33, 251, 72, - 58, 142, 3, 247, 119, 142, 3, 251, 71, 142, 3, 195, 35, 142, 1, 195, 150, - 251, 71, 142, 1, 65, 142, 1, 252, 206, 142, 1, 68, 142, 1, 223, 199, 142, - 1, 66, 142, 1, 196, 30, 142, 1, 117, 146, 142, 1, 117, 172, 142, 1, 71, - 142, 1, 234, 188, 142, 1, 251, 236, 142, 1, 74, 142, 1, 211, 87, 142, 1, - 250, 163, 142, 1, 155, 142, 1, 221, 215, 142, 1, 231, 240, 142, 1, 231, - 91, 142, 1, 214, 68, 142, 1, 247, 160, 142, 1, 247, 1, 142, 1, 223, 32, - 142, 1, 222, 252, 142, 1, 212, 101, 142, 1, 197, 132, 142, 1, 197, 120, - 142, 1, 237, 191, 142, 1, 237, 175, 142, 1, 213, 79, 142, 1, 190, 190, - 142, 1, 199, 49, 142, 1, 238, 32, 142, 1, 237, 68, 142, 1, 180, 142, 1, - 213, 61, 142, 1, 168, 142, 1, 209, 228, 142, 1, 249, 153, 142, 1, 248, - 203, 142, 1, 174, 142, 1, 170, 142, 1, 165, 142, 1, 206, 109, 142, 1, - 173, 142, 1, 219, 73, 142, 1, 219, 62, 142, 1, 195, 188, 142, 1, 203, - 165, 142, 1, 201, 175, 142, 1, 188, 142, 1, 140, 142, 1, 197, 101, 142, - 3, 81, 249, 88, 195, 40, 142, 3, 243, 4, 195, 40, 142, 3, 250, 145, 142, - 18, 3, 252, 206, 142, 18, 3, 68, 142, 18, 3, 223, 199, 142, 18, 3, 66, - 142, 18, 3, 196, 30, 142, 18, 3, 117, 146, 142, 18, 3, 117, 206, 110, - 142, 18, 3, 71, 142, 18, 3, 234, 188, 142, 18, 3, 251, 236, 142, 18, 3, - 74, 142, 18, 3, 211, 87, 142, 18, 3, 250, 163, 142, 3, 195, 40, 142, 1, - 75, 207, 45, 142, 3, 210, 130, 142, 1, 243, 84, 218, 168, 142, 1, 243, - 84, 192, 159, 142, 1, 243, 84, 219, 63, 142, 250, 164, 219, 198, 77, 142, - 232, 118, 91, 211, 100, 142, 232, 118, 91, 232, 139, 142, 232, 118, 115, - 234, 155, 142, 232, 118, 91, 197, 35, 142, 232, 118, 91, 199, 86, 142, - 232, 118, 115, 197, 34, 142, 232, 118, 91, 233, 18, 142, 1, 251, 14, 223, - 199, 142, 1, 117, 206, 110, 142, 1, 117, 219, 74, 142, 18, 3, 117, 172, - 142, 18, 3, 117, 219, 74, 142, 17, 191, 77, 142, 17, 107, 142, 17, 109, - 142, 17, 138, 142, 17, 134, 142, 17, 149, 142, 17, 169, 142, 17, 175, - 142, 17, 171, 142, 17, 178, 142, 31, 199, 95, 142, 31, 91, 228, 140, 142, - 31, 91, 189, 142, 232, 118, 91, 208, 22, 142, 232, 118, 91, 230, 70, 142, - 232, 118, 115, 208, 20, 142, 232, 118, 91, 202, 128, 142, 232, 118, 91, - 234, 159, 142, 232, 118, 115, 202, 125, 142, 237, 209, 77, 142, 1, 243, - 84, 213, 80, 142, 1, 243, 84, 215, 61, 142, 1, 243, 84, 206, 110, 142, 1, - 243, 84, 172, 142, 1, 243, 84, 219, 74, 142, 1, 243, 84, 222, 152, 166, - 3, 247, 119, 166, 3, 251, 70, 166, 3, 195, 34, 166, 1, 250, 129, 166, 1, - 252, 159, 166, 1, 252, 5, 166, 1, 252, 20, 166, 1, 223, 43, 166, 1, 223, - 198, 166, 1, 196, 20, 166, 1, 196, 24, 166, 1, 223, 70, 166, 1, 223, 71, - 166, 1, 223, 182, 166, 1, 223, 184, 166, 1, 233, 196, 166, 1, 234, 183, - 166, 1, 251, 219, 166, 1, 210, 241, 166, 1, 211, 80, 166, 1, 250, 148, - 166, 1, 251, 163, 222, 27, 166, 1, 217, 119, 222, 27, 166, 1, 251, 163, - 231, 185, 166, 1, 217, 119, 231, 185, 166, 1, 222, 80, 214, 247, 166, 1, - 205, 132, 231, 185, 166, 1, 251, 163, 247, 68, 166, 1, 217, 119, 247, 68, - 166, 1, 251, 163, 223, 13, 166, 1, 217, 119, 223, 13, 166, 1, 199, 241, - 214, 247, 166, 1, 199, 241, 205, 131, 214, 248, 166, 1, 205, 132, 223, - 13, 166, 1, 251, 163, 197, 128, 166, 1, 217, 119, 197, 128, 166, 1, 251, - 163, 237, 182, 166, 1, 217, 119, 237, 182, 166, 1, 215, 92, 214, 197, - 166, 1, 205, 132, 237, 182, 166, 1, 251, 163, 199, 153, 166, 1, 217, 119, - 199, 153, 166, 1, 251, 163, 237, 202, 166, 1, 217, 119, 237, 202, 166, 1, - 237, 234, 214, 197, 166, 1, 205, 132, 237, 202, 166, 1, 251, 163, 210, - 71, 166, 1, 217, 119, 210, 71, 166, 1, 251, 163, 249, 55, 166, 1, 217, - 119, 249, 55, 166, 1, 217, 19, 166, 1, 251, 143, 249, 55, 166, 1, 192, - 85, 166, 1, 207, 121, 166, 1, 237, 234, 219, 247, 166, 1, 195, 156, 166, - 1, 199, 241, 205, 102, 166, 1, 215, 92, 205, 102, 166, 1, 237, 234, 205, - 102, 166, 1, 229, 251, 166, 1, 215, 92, 219, 247, 166, 1, 233, 61, 166, - 3, 251, 205, 166, 18, 3, 252, 15, 166, 18, 3, 221, 240, 252, 22, 166, 18, - 3, 237, 11, 252, 22, 166, 18, 3, 221, 240, 223, 67, 166, 18, 3, 237, 11, - 223, 67, 166, 18, 3, 221, 240, 210, 219, 166, 18, 3, 237, 11, 210, 219, - 166, 18, 3, 231, 229, 166, 18, 3, 221, 46, 166, 18, 3, 237, 11, 221, 46, - 166, 18, 3, 221, 48, 237, 120, 166, 18, 3, 221, 47, 230, 92, 252, 15, - 166, 18, 3, 221, 47, 230, 92, 237, 11, 252, 15, 166, 18, 3, 221, 47, 230, - 92, 231, 184, 166, 18, 3, 231, 184, 166, 219, 86, 17, 191, 77, 166, 219, - 86, 17, 107, 166, 219, 86, 17, 109, 166, 219, 86, 17, 138, 166, 219, 86, - 17, 134, 166, 219, 86, 17, 149, 166, 219, 86, 17, 169, 166, 219, 86, 17, - 175, 166, 219, 86, 17, 171, 166, 219, 86, 17, 178, 166, 18, 3, 237, 11, - 231, 229, 166, 18, 3, 237, 11, 231, 184, 166, 208, 152, 220, 209, 199, - 44, 246, 240, 221, 68, 222, 102, 199, 44, 246, 240, 221, 184, 221, 209, - 199, 44, 246, 240, 221, 184, 221, 174, 199, 44, 246, 240, 221, 184, 221, - 169, 199, 44, 246, 240, 221, 184, 221, 179, 199, 44, 246, 240, 221, 184, - 207, 143, 199, 44, 246, 240, 213, 250, 213, 237, 199, 44, 246, 240, 243, - 69, 246, 246, 199, 44, 246, 240, 243, 69, 243, 79, 199, 44, 246, 240, - 243, 69, 246, 245, 199, 44, 246, 240, 202, 47, 202, 46, 199, 44, 246, - 240, 243, 69, 243, 65, 199, 44, 246, 240, 192, 13, 192, 20, 199, 44, 246, - 240, 236, 175, 246, 254, 199, 44, 246, 240, 119, 210, 87, 199, 44, 246, - 240, 198, 242, 199, 38, 199, 44, 246, 240, 198, 242, 214, 222, 199, 44, - 246, 240, 198, 242, 209, 188, 199, 44, 246, 240, 213, 44, 214, 102, 199, - 44, 246, 240, 236, 175, 237, 121, 199, 44, 246, 240, 119, 199, 184, 199, - 44, 246, 240, 198, 242, 198, 207, 199, 44, 246, 240, 198, 242, 199, 45, - 199, 44, 246, 240, 198, 242, 198, 236, 199, 44, 246, 240, 213, 44, 212, - 178, 199, 44, 246, 240, 248, 112, 249, 118, 199, 44, 246, 240, 209, 74, - 209, 110, 199, 44, 246, 240, 209, 200, 209, 190, 199, 44, 246, 240, 232, - 176, 233, 109, 199, 44, 246, 240, 209, 200, 209, 221, 199, 44, 246, 240, - 232, 176, 233, 80, 199, 44, 246, 240, 209, 200, 205, 146, 199, 44, 246, - 240, 216, 13, 174, 199, 44, 246, 240, 192, 13, 192, 116, 199, 44, 246, - 240, 206, 163, 206, 61, 199, 44, 246, 240, 206, 68, 199, 44, 246, 240, - 219, 44, 219, 105, 199, 44, 246, 240, 218, 225, 199, 44, 246, 240, 193, - 49, 193, 175, 199, 44, 246, 240, 202, 47, 205, 167, 199, 44, 246, 240, - 202, 47, 206, 32, 199, 44, 246, 240, 202, 47, 200, 251, 199, 44, 246, - 240, 229, 24, 229, 122, 199, 44, 246, 240, 219, 44, 243, 47, 199, 44, - 246, 240, 187, 251, 122, 199, 44, 246, 240, 229, 24, 213, 34, 199, 44, - 246, 240, 210, 194, 199, 44, 246, 240, 205, 126, 65, 199, 44, 246, 240, - 217, 113, 230, 55, 199, 44, 246, 240, 205, 126, 252, 206, 199, 44, 246, - 240, 205, 126, 251, 149, 199, 44, 246, 240, 205, 126, 68, 199, 44, 246, - 240, 205, 126, 223, 199, 199, 44, 246, 240, 205, 126, 196, 152, 199, 44, - 246, 240, 205, 126, 196, 149, 199, 44, 246, 240, 205, 126, 66, 199, 44, - 246, 240, 205, 126, 196, 30, 199, 44, 246, 240, 209, 202, 199, 44, 238, - 170, 16, 249, 119, 199, 44, 246, 240, 205, 126, 71, 199, 44, 246, 240, - 205, 126, 252, 25, 199, 44, 246, 240, 205, 126, 74, 199, 44, 246, 240, - 205, 126, 251, 237, 217, 107, 199, 44, 246, 240, 205, 126, 251, 237, 217, - 108, 199, 44, 246, 240, 220, 39, 199, 44, 246, 240, 217, 104, 199, 44, - 246, 240, 217, 105, 199, 44, 246, 240, 217, 113, 234, 147, 199, 44, 246, - 240, 217, 113, 198, 241, 199, 44, 246, 240, 217, 113, 197, 244, 199, 44, - 246, 240, 217, 113, 243, 132, 199, 44, 246, 240, 199, 36, 199, 44, 246, - 240, 213, 183, 199, 44, 246, 240, 192, 110, 199, 44, 246, 240, 232, 164, - 199, 44, 17, 191, 77, 199, 44, 17, 107, 199, 44, 17, 109, 199, 44, 17, - 138, 199, 44, 17, 134, 199, 44, 17, 149, 199, 44, 17, 169, 199, 44, 17, - 175, 199, 44, 17, 171, 199, 44, 17, 178, 199, 44, 246, 240, 251, 117, - 199, 44, 246, 240, 221, 180, 220, 17, 1, 221, 67, 220, 17, 1, 221, 184, - 200, 195, 220, 17, 1, 221, 184, 199, 197, 220, 17, 1, 210, 187, 231, 91, - 220, 17, 1, 213, 249, 220, 17, 1, 242, 99, 220, 17, 1, 210, 187, 247, 1, - 220, 17, 1, 202, 47, 199, 197, 220, 17, 1, 210, 187, 222, 252, 220, 17, - 1, 212, 65, 220, 17, 1, 210, 187, 212, 101, 220, 17, 1, 210, 187, 197, - 132, 220, 17, 1, 210, 187, 197, 120, 220, 17, 1, 210, 187, 237, 191, 220, - 17, 1, 210, 187, 237, 175, 220, 17, 1, 210, 187, 213, 79, 220, 17, 1, - 236, 174, 220, 17, 1, 159, 220, 17, 1, 198, 242, 200, 195, 220, 17, 1, - 198, 242, 199, 197, 220, 17, 1, 210, 187, 237, 68, 220, 17, 1, 213, 43, - 220, 17, 1, 248, 111, 220, 17, 1, 209, 73, 220, 17, 1, 209, 200, 200, - 195, 220, 17, 1, 232, 176, 199, 197, 220, 17, 1, 209, 200, 199, 197, 220, - 17, 1, 232, 176, 200, 195, 220, 17, 1, 210, 187, 248, 203, 220, 17, 1, - 216, 12, 220, 17, 1, 192, 12, 220, 17, 1, 219, 44, 219, 105, 220, 17, 1, - 219, 44, 219, 2, 220, 17, 1, 193, 48, 220, 17, 1, 205, 134, 203, 165, - 220, 17, 1, 205, 134, 201, 175, 220, 17, 1, 202, 47, 200, 195, 220, 17, - 1, 229, 24, 200, 195, 220, 17, 1, 210, 187, 219, 73, 220, 17, 1, 74, 220, - 17, 1, 229, 24, 199, 197, 220, 17, 234, 120, 220, 17, 18, 3, 65, 220, 17, - 18, 3, 217, 113, 222, 87, 220, 17, 18, 3, 252, 206, 220, 17, 18, 3, 251, - 149, 220, 17, 18, 3, 68, 220, 17, 18, 3, 223, 199, 220, 17, 18, 3, 192, - 159, 220, 17, 18, 3, 191, 176, 220, 17, 18, 3, 66, 220, 17, 18, 3, 196, - 30, 220, 17, 3, 210, 187, 195, 40, 220, 17, 18, 3, 217, 113, 221, 44, - 220, 17, 204, 20, 3, 219, 43, 220, 17, 204, 20, 3, 212, 65, 220, 17, 18, - 3, 71, 220, 17, 18, 3, 234, 166, 220, 17, 18, 3, 74, 220, 17, 18, 3, 250, - 131, 220, 17, 18, 3, 251, 236, 220, 17, 221, 68, 173, 220, 17, 163, 217, - 113, 234, 147, 220, 17, 163, 217, 113, 198, 241, 220, 17, 163, 217, 113, - 198, 193, 220, 17, 163, 217, 113, 247, 77, 220, 17, 247, 125, 77, 220, - 17, 213, 192, 220, 17, 192, 110, 220, 17, 17, 191, 77, 220, 17, 17, 107, - 220, 17, 17, 109, 220, 17, 17, 138, 220, 17, 17, 134, 220, 17, 17, 149, - 220, 17, 17, 169, 220, 17, 17, 175, 220, 17, 17, 171, 220, 17, 17, 178, - 220, 17, 229, 24, 213, 43, 220, 17, 229, 24, 216, 12, 220, 17, 1, 221, - 185, 231, 3, 220, 17, 1, 221, 185, 212, 65, 86, 5, 211, 113, 86, 87, 230, - 181, 192, 25, 216, 118, 197, 178, 65, 86, 87, 230, 181, 192, 25, 216, - 118, 255, 207, 206, 167, 249, 19, 174, 86, 87, 230, 181, 192, 25, 216, - 118, 255, 207, 230, 181, 197, 153, 174, 86, 87, 89, 192, 25, 216, 118, - 216, 234, 174, 86, 87, 242, 215, 192, 25, 216, 118, 203, 172, 174, 86, - 87, 247, 97, 192, 25, 216, 118, 209, 189, 203, 158, 174, 86, 87, 192, 25, - 216, 118, 197, 153, 203, 158, 174, 86, 87, 205, 100, 203, 157, 86, 87, - 248, 13, 192, 25, 216, 117, 86, 87, 248, 141, 203, 50, 192, 25, 216, 117, - 86, 87, 223, 98, 197, 152, 86, 87, 237, 113, 197, 153, 248, 12, 86, 87, - 203, 157, 86, 87, 212, 70, 203, 157, 86, 87, 197, 153, 203, 157, 86, 87, - 212, 70, 197, 153, 203, 157, 86, 87, 206, 191, 243, 111, 201, 193, 203, - 157, 86, 87, 207, 10, 230, 222, 203, 157, 86, 87, 247, 97, 255, 211, 206, - 73, 216, 233, 179, 247, 128, 86, 87, 230, 181, 197, 152, 86, 219, 27, 3, - 246, 255, 206, 72, 86, 219, 27, 3, 219, 157, 206, 72, 86, 250, 188, 3, - 203, 168, 231, 168, 255, 212, 206, 72, 86, 250, 188, 3, 255, 209, 168, - 86, 250, 188, 3, 205, 69, 197, 147, 86, 3, 207, 115, 236, 189, 231, 167, - 86, 3, 207, 115, 236, 189, 231, 5, 86, 3, 207, 115, 236, 189, 230, 182, - 86, 3, 207, 115, 214, 243, 231, 167, 86, 3, 207, 115, 214, 243, 231, 5, - 86, 3, 207, 115, 236, 189, 207, 115, 214, 242, 86, 17, 191, 77, 86, 17, - 107, 86, 17, 109, 86, 17, 138, 86, 17, 134, 86, 17, 149, 86, 17, 169, 86, - 17, 175, 86, 17, 171, 86, 17, 178, 86, 17, 132, 107, 86, 17, 132, 109, - 86, 17, 132, 138, 86, 17, 132, 134, 86, 17, 132, 149, 86, 17, 132, 169, - 86, 17, 132, 175, 86, 17, 132, 171, 86, 17, 132, 178, 86, 17, 132, 191, - 77, 86, 87, 248, 15, 206, 72, 86, 87, 214, 59, 247, 195, 212, 82, 191, - 10, 86, 87, 247, 97, 255, 211, 206, 73, 247, 196, 216, 62, 247, 128, 86, - 87, 214, 59, 247, 195, 203, 169, 206, 72, 86, 87, 243, 128, 216, 117, 86, - 87, 197, 169, 255, 208, 86, 87, 230, 164, 206, 73, 230, 119, 86, 87, 230, - 164, 206, 73, 230, 125, 86, 87, 251, 123, 221, 202, 230, 119, 86, 87, - 251, 123, 221, 202, 230, 125, 86, 3, 192, 102, 197, 151, 86, 3, 217, 66, - 197, 151, 86, 1, 155, 86, 1, 221, 215, 86, 1, 231, 240, 86, 1, 231, 91, - 86, 1, 214, 68, 86, 1, 247, 160, 86, 1, 247, 1, 86, 1, 223, 32, 86, 1, - 212, 101, 86, 1, 197, 132, 86, 1, 197, 120, 86, 1, 237, 191, 86, 1, 237, - 175, 86, 1, 213, 79, 86, 1, 190, 190, 86, 1, 199, 49, 86, 1, 238, 32, 86, - 1, 237, 68, 86, 1, 180, 86, 1, 168, 86, 1, 209, 228, 86, 1, 249, 153, 86, - 1, 248, 203, 86, 1, 174, 86, 1, 197, 168, 86, 1, 197, 157, 86, 1, 235, - 35, 86, 1, 235, 29, 86, 1, 193, 190, 86, 1, 191, 71, 86, 1, 191, 123, 86, - 1, 255, 214, 86, 1, 170, 86, 1, 165, 86, 1, 173, 86, 1, 203, 165, 86, 1, - 201, 175, 86, 1, 188, 86, 1, 140, 86, 1, 65, 86, 1, 220, 246, 86, 1, 232, - 221, 165, 86, 1, 221, 101, 86, 1, 206, 109, 86, 18, 3, 252, 206, 86, 18, - 3, 68, 86, 18, 3, 223, 199, 86, 18, 3, 66, 86, 18, 3, 196, 30, 86, 18, 3, - 117, 146, 86, 18, 3, 117, 206, 110, 86, 18, 3, 117, 172, 86, 18, 3, 117, - 219, 74, 86, 18, 3, 71, 86, 18, 3, 234, 188, 86, 18, 3, 74, 86, 18, 3, - 211, 87, 86, 3, 206, 173, 201, 5, 214, 69, 206, 162, 86, 3, 206, 167, - 249, 18, 86, 18, 3, 207, 18, 68, 86, 18, 3, 207, 18, 223, 199, 86, 3, - 212, 82, 191, 11, 214, 251, 238, 32, 86, 3, 202, 61, 219, 240, 86, 87, - 230, 72, 86, 87, 210, 178, 86, 3, 219, 243, 206, 72, 86, 3, 192, 107, - 206, 72, 86, 3, 219, 244, 197, 169, 247, 128, 86, 3, 216, 236, 247, 128, - 86, 3, 230, 185, 247, 129, 207, 8, 86, 3, 230, 185, 216, 220, 207, 8, 86, - 3, 223, 93, 216, 236, 247, 128, 86, 200, 239, 3, 219, 244, 197, 169, 247, - 128, 86, 200, 239, 3, 216, 236, 247, 128, 86, 200, 239, 3, 223, 93, 216, - 236, 247, 128, 86, 200, 239, 1, 155, 86, 200, 239, 1, 221, 215, 86, 200, - 239, 1, 231, 240, 86, 200, 239, 1, 231, 91, 86, 200, 239, 1, 214, 68, 86, - 200, 239, 1, 247, 160, 86, 200, 239, 1, 247, 1, 86, 200, 239, 1, 223, 32, - 86, 200, 239, 1, 212, 101, 86, 200, 239, 1, 197, 132, 86, 200, 239, 1, - 197, 120, 86, 200, 239, 1, 237, 191, 86, 200, 239, 1, 237, 175, 86, 200, - 239, 1, 213, 79, 86, 200, 239, 1, 190, 190, 86, 200, 239, 1, 199, 49, 86, - 200, 239, 1, 238, 32, 86, 200, 239, 1, 237, 68, 86, 200, 239, 1, 180, 86, - 200, 239, 1, 168, 86, 200, 239, 1, 209, 228, 86, 200, 239, 1, 249, 153, - 86, 200, 239, 1, 248, 203, 86, 200, 239, 1, 174, 86, 200, 239, 1, 197, - 168, 86, 200, 239, 1, 197, 157, 86, 200, 239, 1, 235, 35, 86, 200, 239, - 1, 235, 29, 86, 200, 239, 1, 193, 190, 86, 200, 239, 1, 191, 71, 86, 200, - 239, 1, 191, 123, 86, 200, 239, 1, 255, 214, 86, 200, 239, 1, 170, 86, - 200, 239, 1, 165, 86, 200, 239, 1, 173, 86, 200, 239, 1, 203, 165, 86, - 200, 239, 1, 201, 175, 86, 200, 239, 1, 188, 86, 200, 239, 1, 140, 86, - 200, 239, 1, 65, 86, 200, 239, 1, 220, 246, 86, 200, 239, 1, 232, 221, - 193, 190, 86, 200, 239, 1, 232, 221, 170, 86, 200, 239, 1, 232, 221, 165, - 86, 220, 233, 206, 69, 221, 215, 86, 220, 233, 206, 69, 221, 216, 247, - 196, 216, 62, 247, 128, 86, 247, 112, 3, 88, 249, 7, 86, 247, 112, 3, - 156, 249, 7, 86, 247, 112, 3, 247, 116, 199, 135, 86, 247, 112, 3, 205, - 99, 255, 213, 86, 16, 235, 105, 248, 10, 86, 16, 207, 114, 206, 174, 86, - 16, 210, 206, 231, 166, 86, 16, 207, 114, 206, 175, 207, 10, 230, 221, - 86, 16, 209, 189, 168, 86, 16, 213, 21, 248, 10, 86, 16, 213, 21, 248, - 11, 212, 70, 255, 210, 86, 16, 213, 21, 248, 11, 230, 183, 255, 210, 86, - 16, 213, 21, 248, 11, 247, 196, 255, 210, 86, 3, 207, 115, 214, 243, 207, - 115, 236, 188, 86, 3, 207, 115, 214, 243, 230, 182, 86, 87, 248, 14, 203, - 50, 231, 54, 216, 118, 207, 9, 86, 87, 216, 14, 192, 25, 231, 54, 216, - 118, 207, 9, 86, 87, 212, 70, 197, 152, 86, 87, 89, 248, 44, 206, 164, - 192, 25, 216, 118, 216, 234, 174, 86, 87, 242, 215, 248, 44, 206, 164, - 192, 25, 216, 118, 203, 172, 174, 206, 207, 200, 155, 56, 219, 223, 200, - 155, 56, 206, 207, 200, 155, 3, 4, 236, 138, 219, 223, 200, 155, 3, 4, - 236, 138, 86, 87, 219, 235, 216, 237, 206, 72, 86, 87, 198, 18, 216, 237, - 206, 72, 80, 1, 155, 80, 1, 221, 215, 80, 1, 231, 240, 80, 1, 231, 91, - 80, 1, 214, 68, 80, 1, 247, 160, 80, 1, 247, 1, 80, 1, 223, 32, 80, 1, - 222, 252, 80, 1, 212, 101, 80, 1, 213, 45, 80, 1, 197, 132, 80, 1, 197, - 120, 80, 1, 237, 191, 80, 1, 237, 175, 80, 1, 213, 79, 80, 1, 190, 190, - 80, 1, 199, 49, 80, 1, 238, 32, 80, 1, 237, 68, 80, 1, 180, 80, 1, 168, - 80, 1, 209, 228, 80, 1, 249, 153, 80, 1, 248, 203, 80, 1, 174, 80, 1, - 170, 80, 1, 165, 80, 1, 173, 80, 1, 193, 190, 80, 1, 188, 80, 1, 140, 80, - 1, 219, 73, 80, 1, 65, 80, 1, 203, 139, 65, 80, 1, 68, 80, 1, 223, 199, - 80, 1, 66, 80, 1, 196, 30, 80, 1, 71, 80, 1, 215, 232, 71, 80, 1, 74, 80, - 1, 250, 163, 80, 18, 3, 199, 200, 252, 206, 80, 18, 3, 252, 206, 80, 18, - 3, 68, 80, 18, 3, 223, 199, 80, 18, 3, 66, 80, 18, 3, 196, 30, 80, 18, 3, - 71, 80, 18, 3, 251, 236, 80, 18, 3, 215, 232, 223, 199, 80, 18, 3, 215, - 232, 74, 80, 18, 3, 235, 15, 58, 80, 3, 251, 71, 80, 3, 75, 60, 80, 3, - 195, 35, 80, 3, 195, 40, 80, 3, 250, 214, 80, 120, 3, 216, 217, 170, 80, - 120, 3, 216, 217, 165, 80, 120, 3, 216, 217, 193, 190, 80, 120, 3, 216, - 217, 140, 80, 1, 230, 206, 188, 80, 17, 191, 77, 80, 17, 107, 80, 17, - 109, 80, 17, 138, 80, 17, 134, 80, 17, 149, 80, 17, 169, 80, 17, 175, 80, - 17, 171, 80, 17, 178, 80, 3, 219, 83, 205, 53, 80, 3, 205, 53, 80, 16, - 219, 36, 80, 16, 242, 67, 80, 16, 252, 1, 80, 16, 231, 146, 80, 1, 203, - 165, 80, 1, 201, 175, 80, 1, 117, 146, 80, 1, 117, 206, 110, 80, 1, 117, - 172, 80, 1, 117, 219, 74, 80, 18, 3, 117, 146, 80, 18, 3, 117, 206, 110, - 80, 18, 3, 117, 172, 80, 18, 3, 117, 219, 74, 80, 1, 215, 232, 214, 68, - 80, 1, 215, 232, 222, 252, 80, 1, 215, 232, 249, 53, 80, 1, 215, 232, - 249, 48, 80, 120, 3, 215, 232, 216, 217, 180, 80, 120, 3, 215, 232, 216, - 217, 174, 80, 120, 3, 215, 232, 216, 217, 173, 80, 1, 203, 171, 222, 62, - 203, 165, 80, 18, 3, 203, 171, 222, 62, 233, 242, 80, 163, 87, 203, 171, - 222, 62, 230, 5, 80, 163, 87, 203, 171, 222, 62, 222, 23, 209, 199, 80, - 1, 193, 102, 208, 116, 222, 62, 199, 49, 80, 1, 193, 102, 208, 116, 222, - 62, 208, 122, 80, 18, 3, 193, 102, 208, 116, 222, 62, 233, 242, 80, 18, - 3, 193, 102, 208, 116, 222, 62, 196, 152, 80, 3, 193, 102, 208, 116, 222, - 62, 198, 78, 80, 3, 193, 102, 208, 116, 222, 62, 198, 77, 80, 3, 193, - 102, 208, 116, 222, 62, 198, 76, 80, 3, 193, 102, 208, 116, 222, 62, 198, - 75, 80, 3, 193, 102, 208, 116, 222, 62, 198, 74, 80, 1, 234, 202, 208, - 116, 222, 62, 213, 79, 80, 1, 234, 202, 208, 116, 222, 62, 191, 183, 80, - 1, 234, 202, 208, 116, 222, 62, 231, 56, 80, 18, 3, 231, 161, 222, 62, - 68, 80, 18, 3, 222, 28, 211, 151, 80, 18, 3, 222, 28, 66, 80, 18, 3, 222, - 28, 234, 188, 80, 1, 203, 139, 155, 80, 1, 203, 139, 221, 215, 80, 1, - 203, 139, 231, 240, 80, 1, 203, 139, 247, 160, 80, 1, 203, 139, 191, 123, - 80, 1, 203, 139, 212, 101, 80, 1, 203, 139, 238, 32, 80, 1, 203, 139, - 180, 80, 1, 203, 139, 209, 228, 80, 1, 203, 139, 233, 109, 80, 1, 203, - 139, 249, 153, 80, 1, 203, 139, 199, 49, 80, 1, 203, 139, 140, 80, 120, - 3, 203, 139, 216, 217, 193, 190, 80, 18, 3, 203, 139, 252, 206, 80, 18, - 3, 203, 139, 71, 80, 18, 3, 203, 139, 235, 15, 58, 80, 18, 3, 203, 139, - 53, 192, 159, 80, 3, 203, 139, 198, 77, 80, 3, 203, 139, 198, 76, 80, 3, - 203, 139, 198, 74, 80, 3, 203, 139, 198, 73, 80, 3, 203, 139, 238, 247, - 198, 77, 80, 3, 203, 139, 238, 247, 198, 76, 80, 3, 203, 139, 238, 247, - 234, 106, 198, 79, 80, 1, 206, 47, 210, 189, 233, 109, 80, 3, 206, 47, - 210, 189, 198, 74, 80, 203, 139, 17, 191, 77, 80, 203, 139, 17, 107, 80, - 203, 139, 17, 109, 80, 203, 139, 17, 138, 80, 203, 139, 17, 134, 80, 203, - 139, 17, 149, 80, 203, 139, 17, 169, 80, 203, 139, 17, 175, 80, 203, 139, - 17, 171, 80, 203, 139, 17, 178, 80, 3, 221, 206, 198, 78, 80, 3, 221, - 206, 198, 76, 80, 18, 3, 251, 222, 65, 80, 18, 3, 251, 222, 251, 236, 80, - 16, 203, 139, 107, 80, 16, 203, 139, 233, 215, 101, 6, 1, 251, 132, 101, - 6, 1, 249, 101, 101, 6, 1, 231, 210, 101, 6, 1, 236, 150, 101, 6, 1, 234, - 103, 101, 6, 1, 195, 49, 101, 6, 1, 191, 80, 101, 6, 1, 199, 193, 101, 6, - 1, 223, 162, 101, 6, 1, 222, 87, 101, 6, 1, 220, 7, 101, 6, 1, 217, 90, - 101, 6, 1, 214, 216, 101, 6, 1, 211, 104, 101, 6, 1, 210, 131, 101, 6, 1, - 191, 67, 101, 6, 1, 207, 163, 101, 6, 1, 205, 142, 101, 6, 1, 199, 179, - 101, 6, 1, 196, 113, 101, 6, 1, 209, 220, 101, 6, 1, 221, 200, 101, 6, 1, - 231, 82, 101, 6, 1, 208, 81, 101, 6, 1, 203, 69, 101, 6, 1, 243, 81, 101, - 6, 1, 247, 128, 101, 6, 1, 222, 234, 101, 6, 1, 243, 18, 101, 6, 1, 246, - 241, 101, 6, 1, 192, 218, 101, 6, 1, 222, 249, 101, 6, 1, 230, 87, 101, - 6, 1, 229, 245, 101, 6, 1, 229, 145, 101, 6, 1, 193, 125, 101, 6, 1, 230, - 19, 101, 6, 1, 229, 11, 101, 6, 1, 192, 14, 101, 6, 1, 252, 14, 101, 1, - 251, 132, 101, 1, 249, 101, 101, 1, 231, 210, 101, 1, 236, 150, 101, 1, - 234, 103, 101, 1, 195, 49, 101, 1, 191, 80, 101, 1, 199, 193, 101, 1, - 223, 162, 101, 1, 222, 87, 101, 1, 220, 7, 101, 1, 217, 90, 101, 1, 214, - 216, 101, 1, 211, 104, 101, 1, 210, 131, 101, 1, 191, 67, 101, 1, 207, - 163, 101, 1, 205, 142, 101, 1, 199, 179, 101, 1, 196, 113, 101, 1, 209, - 220, 101, 1, 221, 200, 101, 1, 231, 82, 101, 1, 208, 81, 101, 1, 203, 69, - 101, 1, 243, 81, 101, 1, 247, 128, 101, 1, 222, 234, 101, 1, 243, 18, - 101, 1, 246, 241, 101, 1, 192, 218, 101, 1, 222, 249, 101, 1, 230, 87, - 101, 1, 229, 245, 101, 1, 229, 145, 101, 1, 193, 125, 101, 1, 230, 19, - 101, 1, 229, 11, 101, 1, 233, 23, 101, 1, 192, 14, 101, 1, 234, 123, 101, - 1, 153, 231, 210, 101, 1, 251, 230, 101, 210, 128, 204, 10, 52, 1, 101, - 214, 216, 101, 1, 252, 14, 101, 1, 230, 17, 56, 101, 1, 220, 116, 56, 30, - 147, 221, 113, 30, 147, 201, 167, 30, 147, 213, 204, 30, 147, 198, 168, - 30, 147, 201, 156, 30, 147, 206, 239, 30, 147, 216, 77, 30, 147, 209, - 169, 30, 147, 201, 164, 30, 147, 202, 160, 30, 147, 201, 161, 30, 147, - 223, 222, 30, 147, 243, 24, 30, 147, 201, 171, 30, 147, 243, 91, 30, 147, - 221, 188, 30, 147, 199, 7, 30, 147, 209, 209, 30, 147, 229, 142, 30, 147, - 213, 200, 30, 147, 201, 165, 30, 147, 213, 194, 30, 147, 213, 198, 30, - 147, 198, 165, 30, 147, 206, 227, 30, 147, 201, 163, 30, 147, 206, 237, - 30, 147, 222, 68, 30, 147, 216, 70, 30, 147, 222, 71, 30, 147, 209, 164, - 30, 147, 209, 162, 30, 147, 209, 150, 30, 147, 209, 158, 30, 147, 209, - 156, 30, 147, 209, 153, 30, 147, 209, 155, 30, 147, 209, 152, 30, 147, - 209, 157, 30, 147, 209, 167, 30, 147, 209, 168, 30, 147, 209, 151, 30, - 147, 209, 161, 30, 147, 222, 69, 30, 147, 222, 67, 30, 147, 202, 153, 30, - 147, 202, 151, 30, 147, 202, 143, 30, 147, 202, 146, 30, 147, 202, 152, - 30, 147, 202, 148, 30, 147, 202, 147, 30, 147, 202, 145, 30, 147, 202, - 156, 30, 147, 202, 158, 30, 147, 202, 159, 30, 147, 202, 154, 30, 147, - 202, 144, 30, 147, 202, 149, 30, 147, 202, 157, 30, 147, 243, 72, 30, - 147, 243, 70, 30, 147, 247, 14, 30, 147, 247, 12, 30, 147, 210, 149, 30, - 147, 223, 217, 30, 147, 223, 208, 30, 147, 223, 216, 30, 147, 223, 213, - 30, 147, 223, 211, 30, 147, 223, 215, 30, 147, 201, 168, 30, 147, 223, - 220, 30, 147, 223, 221, 30, 147, 223, 209, 30, 147, 223, 214, 30, 147, - 192, 57, 30, 147, 243, 23, 30, 147, 243, 73, 30, 147, 243, 71, 30, 147, - 247, 15, 30, 147, 247, 13, 30, 147, 243, 89, 30, 147, 243, 90, 30, 147, - 243, 74, 30, 147, 247, 16, 30, 147, 209, 207, 30, 147, 222, 70, 30, 147, - 201, 169, 30, 147, 192, 63, 30, 147, 221, 104, 30, 147, 213, 196, 30, - 147, 213, 202, 30, 147, 213, 201, 30, 147, 198, 162, 30, 147, 233, 3, 30, - 222, 174, 233, 3, 30, 222, 174, 65, 30, 222, 174, 252, 25, 30, 222, 174, - 170, 30, 222, 174, 192, 129, 30, 222, 174, 234, 65, 30, 222, 174, 71, 30, - 222, 174, 192, 67, 30, 222, 174, 192, 80, 30, 222, 174, 74, 30, 222, 174, - 193, 190, 30, 222, 174, 193, 176, 30, 222, 174, 211, 151, 30, 222, 174, - 192, 12, 30, 222, 174, 66, 30, 222, 174, 193, 107, 30, 222, 174, 193, - 125, 30, 222, 174, 193, 86, 30, 222, 174, 191, 225, 30, 222, 174, 233, - 242, 30, 222, 174, 192, 33, 30, 222, 174, 68, 30, 222, 174, 255, 202, 30, - 222, 174, 255, 201, 30, 222, 174, 192, 143, 30, 222, 174, 192, 141, 30, - 222, 174, 234, 63, 30, 222, 174, 234, 62, 30, 222, 174, 234, 64, 30, 222, - 174, 192, 66, 30, 222, 174, 192, 65, 30, 222, 174, 212, 10, 30, 222, 174, - 212, 11, 30, 222, 174, 212, 4, 30, 222, 174, 212, 9, 30, 222, 174, 212, - 7, 30, 222, 174, 192, 0, 30, 222, 174, 191, 255, 30, 222, 174, 191, 254, - 30, 222, 174, 192, 1, 30, 222, 174, 192, 2, 30, 222, 174, 196, 226, 30, - 222, 174, 196, 225, 30, 222, 174, 196, 223, 30, 222, 174, 196, 219, 30, - 222, 174, 196, 220, 30, 222, 174, 191, 220, 30, 222, 174, 191, 217, 30, - 222, 174, 191, 218, 30, 222, 174, 191, 212, 30, 222, 174, 191, 213, 30, - 222, 174, 191, 214, 30, 222, 174, 191, 216, 30, 222, 174, 233, 236, 30, - 222, 174, 233, 238, 30, 222, 174, 192, 32, 30, 222, 174, 228, 69, 30, - 222, 174, 228, 61, 30, 222, 174, 228, 64, 30, 222, 174, 228, 62, 30, 222, - 174, 228, 66, 30, 222, 174, 228, 68, 30, 222, 174, 251, 25, 30, 222, 174, - 251, 22, 30, 222, 174, 251, 20, 30, 222, 174, 251, 21, 30, 222, 174, 201, - 172, 30, 222, 174, 255, 203, 30, 222, 174, 192, 142, 30, 222, 174, 192, - 64, 30, 222, 174, 212, 6, 30, 222, 174, 212, 5, 30, 125, 221, 113, 30, - 125, 201, 167, 30, 125, 221, 106, 30, 125, 213, 204, 30, 125, 213, 202, - 30, 125, 213, 201, 30, 125, 198, 168, 30, 125, 206, 239, 30, 125, 206, - 234, 30, 125, 206, 231, 30, 125, 206, 224, 30, 125, 206, 219, 30, 125, - 206, 214, 30, 125, 206, 225, 30, 125, 206, 237, 30, 125, 216, 77, 30, - 125, 209, 169, 30, 125, 209, 158, 30, 125, 202, 160, 30, 125, 201, 161, - 30, 125, 223, 222, 30, 125, 243, 24, 30, 125, 243, 91, 30, 125, 221, 188, - 30, 125, 199, 7, 30, 125, 209, 209, 30, 125, 229, 142, 30, 125, 221, 107, - 30, 125, 221, 105, 30, 125, 213, 200, 30, 125, 213, 194, 30, 125, 213, - 196, 30, 125, 213, 199, 30, 125, 213, 195, 30, 125, 198, 165, 30, 125, - 198, 162, 30, 125, 206, 232, 30, 125, 206, 227, 30, 125, 206, 213, 30, - 125, 206, 212, 30, 125, 201, 163, 30, 125, 206, 229, 30, 125, 206, 228, - 30, 125, 206, 221, 30, 125, 206, 223, 30, 125, 206, 236, 30, 125, 206, - 216, 30, 125, 206, 226, 30, 125, 206, 235, 30, 125, 206, 211, 30, 125, - 216, 73, 30, 125, 216, 68, 30, 125, 216, 70, 30, 125, 216, 67, 30, 125, - 216, 65, 30, 125, 216, 71, 30, 125, 216, 76, 30, 125, 216, 74, 30, 125, - 222, 71, 30, 125, 209, 160, 30, 125, 209, 161, 30, 125, 209, 166, 30, - 125, 222, 69, 30, 125, 202, 153, 30, 125, 202, 143, 30, 125, 202, 146, - 30, 125, 202, 148, 30, 125, 210, 149, 30, 125, 223, 217, 30, 125, 223, - 210, 30, 125, 201, 168, 30, 125, 223, 218, 30, 125, 192, 57, 30, 125, - 192, 51, 30, 125, 192, 52, 30, 125, 209, 207, 30, 125, 222, 70, 30, 125, - 229, 140, 30, 125, 229, 138, 30, 125, 229, 141, 30, 125, 229, 139, 30, - 125, 192, 63, 30, 125, 221, 109, 30, 125, 221, 108, 30, 125, 221, 112, - 30, 125, 221, 110, 30, 125, 221, 111, 30, 125, 201, 165, 36, 5, 140, 36, - 5, 228, 159, 36, 5, 229, 158, 36, 5, 230, 91, 36, 5, 229, 215, 36, 5, - 229, 245, 36, 5, 229, 23, 36, 5, 229, 14, 36, 5, 173, 36, 5, 218, 225, - 36, 5, 219, 146, 36, 5, 220, 125, 36, 5, 219, 228, 36, 5, 219, 238, 36, - 5, 219, 43, 36, 5, 218, 191, 36, 5, 229, 177, 36, 5, 229, 171, 36, 5, - 229, 173, 36, 5, 229, 176, 36, 5, 229, 174, 36, 5, 229, 175, 36, 5, 229, - 172, 36, 5, 229, 170, 36, 5, 174, 36, 5, 215, 155, 36, 5, 216, 100, 36, - 5, 217, 151, 36, 5, 216, 211, 36, 5, 216, 232, 36, 5, 216, 12, 36, 5, - 215, 80, 36, 5, 200, 54, 36, 5, 200, 48, 36, 5, 200, 50, 36, 5, 200, 53, - 36, 5, 200, 51, 36, 5, 200, 52, 36, 5, 200, 49, 36, 5, 200, 47, 36, 5, - 165, 36, 5, 206, 68, 36, 5, 207, 1, 36, 5, 207, 178, 36, 5, 207, 84, 36, - 5, 207, 113, 36, 5, 206, 162, 36, 5, 206, 26, 36, 5, 188, 36, 5, 201, 4, - 36, 5, 202, 222, 36, 5, 205, 197, 36, 5, 205, 50, 36, 5, 205, 68, 36, 5, - 202, 46, 36, 5, 200, 150, 36, 5, 203, 165, 36, 5, 203, 5, 36, 5, 203, 81, - 36, 5, 203, 160, 36, 5, 203, 111, 36, 5, 203, 113, 36, 5, 203, 56, 36, 5, - 202, 240, 36, 5, 208, 96, 36, 5, 208, 33, 36, 5, 208, 57, 36, 5, 208, 95, - 36, 5, 208, 74, 36, 5, 208, 75, 36, 5, 208, 45, 36, 5, 208, 44, 36, 5, - 207, 240, 36, 5, 207, 236, 36, 5, 207, 239, 36, 5, 207, 237, 36, 5, 207, - 238, 36, 5, 208, 71, 36, 5, 208, 63, 36, 5, 208, 66, 36, 5, 208, 70, 36, - 5, 208, 67, 36, 5, 208, 68, 36, 5, 208, 65, 36, 5, 208, 62, 36, 5, 208, - 58, 36, 5, 208, 61, 36, 5, 208, 59, 36, 5, 208, 60, 36, 5, 249, 153, 36, - 5, 248, 10, 36, 5, 248, 188, 36, 5, 249, 151, 36, 5, 249, 1, 36, 5, 249, - 17, 36, 5, 248, 111, 36, 5, 247, 210, 36, 5, 195, 188, 36, 5, 193, 249, - 36, 5, 195, 69, 36, 5, 195, 187, 36, 5, 195, 148, 36, 5, 195, 153, 36, 5, - 195, 24, 36, 5, 193, 238, 36, 5, 190, 190, 36, 5, 197, 94, 36, 5, 198, - 193, 36, 5, 199, 245, 36, 5, 199, 121, 36, 5, 199, 145, 36, 5, 159, 36, - 5, 197, 43, 36, 5, 247, 160, 36, 5, 238, 195, 36, 5, 243, 29, 36, 5, 247, - 159, 36, 5, 247, 34, 36, 5, 247, 42, 36, 5, 242, 99, 36, 5, 238, 151, 36, - 5, 192, 220, 36, 5, 192, 188, 36, 5, 192, 207, 36, 5, 192, 219, 36, 5, - 192, 213, 36, 5, 192, 214, 36, 5, 192, 196, 36, 5, 192, 195, 36, 5, 192, - 181, 36, 5, 192, 177, 36, 5, 192, 180, 36, 5, 192, 178, 36, 5, 192, 179, - 36, 5, 180, 36, 5, 212, 178, 36, 5, 213, 219, 36, 5, 214, 250, 36, 5, - 214, 110, 36, 5, 214, 121, 36, 5, 213, 43, 36, 5, 212, 110, 36, 5, 212, - 101, 36, 5, 212, 58, 36, 5, 212, 81, 36, 5, 212, 100, 36, 5, 212, 89, 36, - 5, 212, 90, 36, 5, 212, 65, 36, 5, 212, 48, 36, 5, 231, 11, 65, 36, 5, - 231, 11, 66, 36, 5, 231, 11, 68, 36, 5, 231, 11, 252, 206, 36, 5, 231, - 11, 234, 188, 36, 5, 231, 11, 71, 36, 5, 231, 11, 74, 36, 5, 231, 11, - 193, 190, 36, 5, 155, 36, 5, 220, 232, 36, 5, 221, 166, 36, 5, 222, 127, - 36, 5, 222, 13, 36, 5, 222, 22, 36, 5, 221, 67, 36, 5, 221, 62, 36, 5, - 220, 179, 36, 5, 220, 172, 36, 5, 220, 178, 36, 5, 220, 173, 36, 5, 220, - 174, 36, 5, 220, 165, 36, 5, 220, 159, 36, 5, 220, 161, 36, 5, 220, 164, - 36, 5, 220, 162, 36, 5, 220, 163, 36, 5, 220, 160, 36, 5, 220, 158, 36, - 5, 220, 154, 36, 5, 220, 157, 36, 5, 220, 155, 36, 5, 220, 156, 36, 5, - 193, 190, 36, 5, 193, 0, 36, 5, 193, 86, 36, 5, 193, 181, 36, 5, 193, - 114, 36, 5, 193, 125, 36, 5, 193, 48, 36, 5, 193, 40, 36, 5, 209, 219, - 65, 36, 5, 209, 219, 66, 36, 5, 209, 219, 68, 36, 5, 209, 219, 252, 206, - 36, 5, 209, 219, 234, 188, 36, 5, 209, 219, 71, 36, 5, 209, 219, 74, 36, - 5, 191, 123, 36, 5, 190, 251, 36, 5, 191, 30, 36, 5, 191, 121, 36, 5, - 191, 84, 36, 5, 191, 87, 36, 5, 191, 7, 36, 5, 190, 238, 36, 5, 191, 71, - 36, 5, 191, 48, 36, 5, 191, 57, 36, 5, 191, 70, 36, 5, 191, 61, 36, 5, - 191, 62, 36, 5, 191, 54, 36, 5, 191, 39, 36, 5, 170, 36, 5, 191, 225, 36, - 5, 192, 33, 36, 5, 192, 140, 36, 5, 192, 77, 36, 5, 192, 80, 36, 5, 192, - 12, 36, 5, 191, 252, 36, 5, 238, 32, 36, 5, 235, 89, 36, 5, 237, 44, 36, - 5, 238, 31, 36, 5, 237, 131, 36, 5, 237, 146, 36, 5, 236, 174, 36, 5, - 235, 46, 36, 5, 237, 191, 36, 5, 237, 156, 36, 5, 237, 168, 36, 5, 237, - 190, 36, 5, 237, 178, 36, 5, 237, 179, 36, 5, 237, 161, 36, 5, 237, 147, - 36, 5, 223, 32, 36, 5, 222, 182, 36, 5, 222, 244, 36, 5, 223, 31, 36, 5, - 223, 8, 36, 5, 223, 10, 36, 5, 222, 201, 36, 5, 222, 160, 36, 5, 231, - 240, 36, 5, 230, 179, 36, 5, 231, 53, 36, 5, 231, 237, 36, 5, 231, 157, - 36, 5, 231, 165, 36, 5, 231, 3, 36, 5, 231, 2, 36, 5, 230, 135, 36, 5, - 230, 131, 36, 5, 230, 134, 36, 5, 230, 132, 36, 5, 230, 133, 36, 5, 231, - 127, 36, 5, 231, 107, 36, 5, 231, 117, 36, 5, 231, 126, 36, 5, 231, 121, - 36, 5, 231, 122, 36, 5, 231, 111, 36, 5, 231, 96, 36, 5, 199, 49, 36, 5, - 198, 213, 36, 5, 199, 11, 36, 5, 199, 48, 36, 5, 199, 31, 36, 5, 199, 33, - 36, 5, 198, 241, 36, 5, 198, 204, 36, 5, 247, 1, 36, 5, 243, 48, 36, 5, - 243, 95, 36, 5, 247, 0, 36, 5, 243, 123, 36, 5, 243, 127, 36, 5, 243, 68, - 36, 5, 243, 37, 36, 5, 209, 228, 36, 5, 209, 191, 36, 5, 209, 211, 36, 5, - 209, 227, 36, 5, 209, 213, 36, 5, 209, 214, 36, 5, 209, 199, 36, 5, 209, - 187, 36, 5, 197, 168, 36, 5, 197, 140, 36, 5, 197, 146, 36, 5, 197, 167, - 36, 5, 197, 160, 36, 5, 197, 161, 36, 5, 197, 144, 36, 5, 197, 138, 36, - 5, 196, 240, 36, 5, 196, 232, 36, 5, 196, 236, 36, 5, 196, 239, 36, 5, - 196, 237, 36, 5, 196, 238, 36, 5, 196, 234, 36, 5, 196, 233, 36, 5, 233, - 109, 36, 5, 232, 86, 36, 5, 233, 23, 36, 5, 233, 108, 36, 5, 233, 52, 36, - 5, 233, 59, 36, 5, 232, 175, 36, 5, 232, 62, 36, 5, 168, 36, 5, 208, 165, - 36, 5, 209, 185, 36, 5, 210, 220, 36, 5, 210, 49, 36, 5, 210, 63, 36, 5, - 209, 73, 36, 5, 208, 122, 36, 5, 206, 16, 36, 5, 215, 68, 36, 5, 232, 56, - 36, 33, 231, 153, 23, 18, 219, 198, 77, 36, 33, 18, 219, 198, 77, 36, 33, - 231, 153, 77, 36, 205, 54, 77, 36, 193, 22, 36, 232, 80, 201, 63, 36, - 242, 74, 36, 204, 25, 36, 242, 83, 36, 208, 228, 242, 83, 36, 208, 13, - 77, 36, 210, 128, 204, 10, 36, 17, 107, 36, 17, 109, 36, 17, 138, 36, 17, - 134, 36, 17, 149, 36, 17, 169, 36, 17, 175, 36, 17, 171, 36, 17, 178, 36, - 31, 199, 95, 36, 31, 197, 32, 36, 31, 198, 249, 36, 31, 232, 135, 36, 31, - 233, 15, 36, 31, 202, 120, 36, 31, 203, 241, 36, 31, 234, 153, 36, 31, - 213, 169, 36, 31, 228, 140, 36, 31, 199, 96, 189, 36, 5, 205, 59, 215, - 80, 36, 5, 215, 76, 36, 5, 215, 77, 36, 5, 215, 78, 36, 5, 205, 59, 247, - 210, 36, 5, 247, 207, 36, 5, 247, 208, 36, 5, 247, 209, 36, 5, 205, 59, - 232, 62, 36, 5, 232, 58, 36, 5, 232, 59, 36, 5, 232, 60, 36, 5, 205, 59, - 208, 122, 36, 5, 208, 118, 36, 5, 208, 119, 36, 5, 208, 120, 36, 198, 80, - 87, 192, 15, 36, 198, 80, 87, 237, 89, 36, 198, 80, 87, 206, 194, 36, - 198, 80, 87, 203, 40, 206, 194, 36, 198, 80, 87, 237, 18, 36, 198, 80, - 87, 221, 250, 36, 198, 80, 87, 243, 76, 36, 198, 80, 87, 229, 147, 36, - 198, 80, 87, 237, 88, 36, 198, 80, 87, 220, 195, 103, 1, 65, 103, 1, 71, - 103, 1, 68, 103, 1, 74, 103, 1, 66, 103, 1, 196, 12, 103, 1, 231, 240, - 103, 1, 155, 103, 1, 231, 165, 103, 1, 231, 53, 103, 1, 231, 3, 103, 1, - 230, 179, 103, 1, 230, 138, 103, 1, 140, 103, 1, 229, 245, 103, 1, 229, - 158, 103, 1, 229, 23, 103, 1, 228, 159, 103, 1, 228, 126, 103, 1, 173, - 103, 1, 219, 238, 103, 1, 219, 146, 103, 1, 219, 43, 103, 1, 218, 225, - 103, 1, 218, 192, 103, 1, 174, 103, 1, 216, 232, 103, 1, 216, 100, 103, - 1, 216, 12, 103, 1, 215, 155, 103, 1, 180, 103, 1, 229, 47, 103, 1, 214, - 237, 103, 1, 214, 121, 103, 1, 213, 219, 103, 1, 213, 43, 103, 1, 212, - 178, 103, 1, 212, 112, 103, 1, 208, 32, 103, 1, 208, 16, 103, 1, 208, 9, - 103, 1, 207, 255, 103, 1, 207, 244, 103, 1, 207, 242, 103, 1, 188, 103, - 1, 206, 8, 103, 1, 205, 68, 103, 1, 202, 222, 103, 1, 202, 46, 103, 1, - 201, 4, 103, 1, 200, 158, 103, 1, 238, 32, 103, 1, 190, 190, 103, 1, 237, - 146, 103, 1, 199, 145, 103, 1, 237, 44, 103, 1, 198, 193, 103, 1, 236, - 174, 103, 1, 235, 89, 103, 1, 235, 57, 103, 1, 236, 186, 103, 1, 198, - 115, 103, 1, 198, 114, 103, 1, 198, 103, 103, 1, 198, 102, 103, 1, 198, - 101, 103, 1, 198, 100, 103, 1, 197, 168, 103, 1, 197, 161, 103, 1, 197, - 146, 103, 1, 197, 144, 103, 1, 197, 140, 103, 1, 197, 139, 103, 1, 193, - 190, 103, 1, 193, 125, 103, 1, 193, 86, 103, 1, 193, 48, 103, 1, 193, 0, - 103, 1, 192, 243, 103, 1, 170, 103, 1, 192, 80, 103, 1, 192, 33, 103, 1, - 192, 12, 103, 1, 191, 225, 103, 1, 191, 184, 103, 1, 215, 87, 103, 2, 1, - 192, 80, 103, 2, 1, 192, 33, 103, 2, 1, 192, 12, 103, 2, 1, 191, 225, - 103, 2, 1, 191, 184, 103, 2, 1, 215, 87, 21, 22, 228, 88, 21, 22, 71, 21, - 22, 252, 170, 21, 22, 68, 21, 22, 223, 199, 21, 22, 74, 21, 22, 211, 87, - 21, 22, 192, 158, 211, 87, 21, 22, 98, 234, 188, 21, 22, 98, 68, 21, 22, - 65, 21, 22, 252, 206, 21, 22, 193, 125, 21, 22, 193, 103, 193, 125, 21, - 22, 193, 86, 21, 22, 193, 103, 193, 86, 21, 22, 193, 70, 21, 22, 193, - 103, 193, 70, 21, 22, 193, 48, 21, 22, 193, 103, 193, 48, 21, 22, 193, - 29, 21, 22, 193, 103, 193, 29, 21, 22, 214, 209, 193, 29, 21, 22, 193, - 190, 21, 22, 193, 103, 193, 190, 21, 22, 193, 181, 21, 22, 193, 103, 193, - 181, 21, 22, 214, 209, 193, 181, 21, 22, 251, 236, 21, 22, 192, 158, 193, - 224, 21, 22, 231, 11, 201, 63, 21, 22, 53, 252, 46, 21, 22, 53, 230, 210, - 21, 22, 53, 248, 77, 132, 206, 188, 21, 22, 53, 198, 54, 132, 206, 188, - 21, 22, 53, 50, 132, 206, 188, 21, 22, 53, 206, 188, 21, 22, 53, 55, 252, - 46, 21, 22, 53, 55, 203, 40, 81, 201, 15, 21, 22, 53, 82, 236, 140, 21, - 22, 53, 203, 40, 228, 241, 106, 21, 22, 53, 209, 81, 21, 22, 53, 144, - 199, 228, 21, 22, 234, 103, 21, 22, 223, 162, 21, 22, 211, 104, 21, 22, - 251, 132, 21, 22, 210, 63, 21, 22, 210, 218, 21, 22, 209, 185, 21, 22, - 209, 145, 21, 22, 209, 73, 21, 22, 209, 37, 21, 22, 192, 158, 209, 37, - 21, 22, 98, 229, 215, 21, 22, 98, 229, 158, 21, 22, 168, 21, 22, 210, - 220, 21, 22, 208, 120, 21, 22, 193, 103, 208, 120, 21, 22, 208, 118, 21, - 22, 193, 103, 208, 118, 21, 22, 208, 117, 21, 22, 193, 103, 208, 117, 21, - 22, 208, 115, 21, 22, 193, 103, 208, 115, 21, 22, 208, 114, 21, 22, 193, - 103, 208, 114, 21, 22, 208, 122, 21, 22, 193, 103, 208, 122, 21, 22, 208, - 121, 21, 22, 193, 103, 208, 121, 21, 22, 192, 158, 208, 121, 21, 22, 210, - 236, 21, 22, 193, 103, 210, 236, 21, 22, 98, 230, 116, 21, 22, 199, 145, - 21, 22, 199, 242, 21, 22, 198, 193, 21, 22, 198, 170, 21, 22, 159, 21, - 22, 198, 59, 21, 22, 192, 158, 198, 59, 21, 22, 98, 237, 131, 21, 22, 98, - 237, 44, 21, 22, 190, 190, 21, 22, 199, 245, 21, 22, 197, 41, 21, 22, - 193, 103, 197, 41, 21, 22, 197, 19, 21, 22, 193, 103, 197, 19, 21, 22, - 197, 18, 21, 22, 193, 103, 197, 18, 21, 22, 109, 21, 22, 193, 103, 109, - 21, 22, 197, 9, 21, 22, 193, 103, 197, 9, 21, 22, 197, 43, 21, 22, 193, - 103, 197, 43, 21, 22, 197, 42, 21, 22, 193, 103, 197, 42, 21, 22, 214, - 209, 197, 42, 21, 22, 200, 43, 21, 22, 197, 127, 21, 22, 197, 111, 21, - 22, 197, 109, 21, 22, 197, 132, 21, 22, 222, 22, 21, 22, 222, 121, 21, - 22, 221, 166, 21, 22, 221, 145, 21, 22, 221, 67, 21, 22, 221, 41, 21, 22, - 192, 158, 221, 41, 21, 22, 155, 21, 22, 222, 127, 21, 22, 220, 174, 21, - 22, 193, 103, 220, 174, 21, 22, 220, 172, 21, 22, 193, 103, 220, 172, 21, - 22, 220, 171, 21, 22, 193, 103, 220, 171, 21, 22, 220, 169, 21, 22, 193, - 103, 220, 169, 21, 22, 220, 168, 21, 22, 193, 103, 220, 168, 21, 22, 220, - 179, 21, 22, 193, 103, 220, 179, 21, 22, 220, 178, 21, 22, 193, 103, 220, - 178, 21, 22, 214, 209, 220, 178, 21, 22, 222, 152, 21, 22, 220, 180, 21, - 22, 202, 1, 222, 6, 21, 22, 202, 1, 221, 146, 21, 22, 202, 1, 221, 56, - 21, 22, 202, 1, 222, 104, 21, 22, 247, 42, 21, 22, 247, 158, 21, 22, 243, - 29, 21, 22, 243, 19, 21, 22, 242, 99, 21, 22, 239, 18, 21, 22, 192, 158, - 239, 18, 21, 22, 247, 160, 21, 22, 247, 159, 21, 22, 238, 149, 21, 22, - 193, 103, 238, 149, 21, 22, 238, 147, 21, 22, 193, 103, 238, 147, 21, 22, - 238, 146, 21, 22, 193, 103, 238, 146, 21, 22, 238, 145, 21, 22, 193, 103, - 238, 145, 21, 22, 238, 144, 21, 22, 193, 103, 238, 144, 21, 22, 238, 151, - 21, 22, 193, 103, 238, 151, 21, 22, 238, 150, 21, 22, 193, 103, 238, 150, - 21, 22, 214, 209, 238, 150, 21, 22, 247, 193, 21, 22, 205, 101, 199, 51, - 21, 22, 216, 232, 21, 22, 217, 150, 21, 22, 216, 100, 21, 22, 216, 61, - 21, 22, 216, 12, 21, 22, 215, 211, 21, 22, 192, 158, 215, 211, 21, 22, - 174, 21, 22, 217, 151, 21, 22, 215, 78, 21, 22, 193, 103, 215, 78, 21, - 22, 215, 76, 21, 22, 193, 103, 215, 76, 21, 22, 215, 75, 21, 22, 193, - 103, 215, 75, 21, 22, 215, 74, 21, 22, 193, 103, 215, 74, 21, 22, 215, - 73, 21, 22, 193, 103, 215, 73, 21, 22, 215, 80, 21, 22, 193, 103, 215, - 80, 21, 22, 215, 79, 21, 22, 193, 103, 215, 79, 21, 22, 214, 209, 215, - 79, 21, 22, 218, 168, 21, 22, 193, 103, 218, 168, 21, 22, 216, 104, 21, - 22, 250, 180, 218, 168, 21, 22, 205, 101, 218, 168, 21, 22, 214, 121, 21, - 22, 214, 249, 21, 22, 213, 219, 21, 22, 213, 186, 21, 22, 213, 43, 21, - 22, 213, 26, 21, 22, 192, 158, 213, 26, 21, 22, 180, 21, 22, 214, 250, - 21, 22, 212, 108, 21, 22, 193, 103, 212, 108, 21, 22, 212, 110, 21, 22, - 193, 103, 212, 110, 21, 22, 212, 109, 21, 22, 193, 103, 212, 109, 21, 22, - 214, 209, 212, 109, 21, 22, 215, 61, 21, 22, 98, 214, 70, 21, 22, 213, - 225, 21, 22, 219, 238, 21, 22, 220, 124, 21, 22, 219, 146, 21, 22, 219, - 128, 21, 22, 219, 43, 21, 22, 219, 8, 21, 22, 192, 158, 219, 8, 21, 22, - 173, 21, 22, 220, 125, 21, 22, 218, 189, 21, 22, 193, 103, 218, 189, 21, - 22, 218, 188, 21, 22, 193, 103, 218, 188, 21, 22, 218, 187, 21, 22, 193, - 103, 218, 187, 21, 22, 218, 186, 21, 22, 193, 103, 218, 186, 21, 22, 218, - 185, 21, 22, 193, 103, 218, 185, 21, 22, 218, 191, 21, 22, 193, 103, 218, - 191, 21, 22, 218, 190, 21, 22, 193, 103, 218, 190, 21, 22, 172, 21, 22, - 193, 103, 172, 21, 22, 216, 217, 172, 21, 22, 205, 68, 21, 22, 205, 195, - 21, 22, 202, 222, 21, 22, 202, 193, 21, 22, 202, 46, 21, 22, 202, 16, 21, - 22, 192, 158, 202, 16, 21, 22, 188, 21, 22, 205, 197, 21, 22, 200, 145, - 21, 22, 193, 103, 200, 145, 21, 22, 200, 139, 21, 22, 193, 103, 200, 139, - 21, 22, 200, 138, 21, 22, 193, 103, 200, 138, 21, 22, 200, 133, 21, 22, - 193, 103, 200, 133, 21, 22, 200, 132, 21, 22, 193, 103, 200, 132, 21, 22, - 200, 150, 21, 22, 193, 103, 200, 150, 21, 22, 200, 149, 21, 22, 193, 103, - 200, 149, 21, 22, 214, 209, 200, 149, 21, 22, 206, 8, 21, 22, 250, 180, - 206, 8, 21, 22, 200, 151, 21, 22, 248, 136, 206, 8, 21, 22, 215, 203, - 202, 114, 21, 22, 214, 209, 202, 101, 21, 22, 214, 209, 206, 6, 21, 22, - 214, 209, 201, 192, 21, 22, 214, 209, 201, 7, 21, 22, 214, 209, 202, 100, - 21, 22, 214, 209, 205, 71, 21, 22, 203, 113, 21, 22, 203, 81, 21, 22, - 203, 76, 21, 22, 203, 56, 21, 22, 203, 48, 21, 22, 203, 165, 21, 22, 203, - 160, 21, 22, 202, 237, 21, 22, 193, 103, 202, 237, 21, 22, 202, 236, 21, - 22, 193, 103, 202, 236, 21, 22, 202, 235, 21, 22, 193, 103, 202, 235, 21, - 22, 202, 234, 21, 22, 193, 103, 202, 234, 21, 22, 202, 233, 21, 22, 193, - 103, 202, 233, 21, 22, 202, 240, 21, 22, 193, 103, 202, 240, 21, 22, 202, - 239, 21, 22, 193, 103, 202, 239, 21, 22, 203, 167, 21, 22, 192, 80, 21, - 22, 192, 138, 21, 22, 192, 33, 21, 22, 192, 23, 21, 22, 192, 12, 21, 22, - 191, 246, 21, 22, 192, 158, 191, 246, 21, 22, 170, 21, 22, 192, 140, 21, - 22, 191, 181, 21, 22, 193, 103, 191, 181, 21, 22, 191, 180, 21, 22, 193, - 103, 191, 180, 21, 22, 191, 179, 21, 22, 193, 103, 191, 179, 21, 22, 191, - 178, 21, 22, 193, 103, 191, 178, 21, 22, 191, 177, 21, 22, 193, 103, 191, - 177, 21, 22, 191, 183, 21, 22, 193, 103, 191, 183, 21, 22, 191, 182, 21, - 22, 193, 103, 191, 182, 21, 22, 214, 209, 191, 182, 21, 22, 192, 159, 21, - 22, 248, 186, 192, 159, 21, 22, 193, 103, 192, 159, 21, 22, 205, 101, - 192, 33, 21, 22, 207, 113, 21, 22, 207, 221, 207, 113, 21, 22, 193, 103, - 219, 238, 21, 22, 207, 177, 21, 22, 207, 1, 21, 22, 206, 195, 21, 22, - 206, 162, 21, 22, 206, 134, 21, 22, 193, 103, 219, 43, 21, 22, 165, 21, - 22, 207, 178, 21, 22, 193, 103, 173, 21, 22, 206, 25, 21, 22, 193, 103, - 206, 25, 21, 22, 146, 21, 22, 193, 103, 146, 21, 22, 216, 217, 146, 21, - 22, 233, 59, 21, 22, 233, 106, 21, 22, 233, 23, 21, 22, 233, 8, 21, 22, - 232, 175, 21, 22, 232, 162, 21, 22, 233, 109, 21, 22, 233, 108, 21, 22, - 232, 61, 21, 22, 193, 103, 232, 61, 21, 22, 233, 175, 21, 22, 199, 33, - 21, 22, 215, 59, 199, 33, 21, 22, 199, 11, 21, 22, 215, 59, 199, 11, 21, - 22, 199, 5, 21, 22, 215, 59, 199, 5, 21, 22, 198, 241, 21, 22, 198, 235, - 21, 22, 199, 49, 21, 22, 199, 48, 21, 22, 198, 203, 21, 22, 193, 103, - 198, 203, 21, 22, 199, 51, 21, 22, 197, 118, 21, 22, 197, 116, 21, 22, - 197, 115, 21, 22, 197, 120, 21, 22, 197, 121, 21, 22, 197, 2, 21, 22, - 197, 1, 21, 22, 197, 0, 21, 22, 197, 4, 21, 22, 212, 129, 229, 245, 21, - 22, 212, 129, 229, 158, 21, 22, 212, 129, 229, 130, 21, 22, 212, 129, - 229, 23, 21, 22, 212, 129, 228, 252, 21, 22, 212, 129, 140, 21, 22, 212, - 129, 230, 91, 21, 22, 212, 129, 230, 116, 21, 22, 212, 128, 230, 116, 21, - 22, 229, 113, 21, 22, 208, 92, 21, 22, 208, 57, 21, 22, 208, 51, 21, 22, - 208, 45, 21, 22, 208, 40, 21, 22, 208, 96, 21, 22, 208, 95, 21, 22, 208, - 104, 21, 22, 198, 111, 21, 22, 198, 109, 21, 22, 198, 108, 21, 22, 198, - 112, 21, 22, 193, 103, 207, 113, 21, 22, 193, 103, 207, 1, 21, 22, 193, - 103, 206, 162, 21, 22, 193, 103, 165, 21, 22, 214, 66, 21, 22, 214, 16, - 21, 22, 214, 12, 21, 22, 213, 249, 21, 22, 213, 244, 21, 22, 214, 68, 21, - 22, 214, 67, 21, 22, 214, 70, 21, 22, 213, 72, 21, 22, 205, 101, 203, - 113, 21, 22, 205, 101, 203, 81, 21, 22, 205, 101, 203, 56, 21, 22, 205, - 101, 203, 165, 21, 22, 193, 27, 199, 33, 21, 22, 193, 27, 199, 11, 21, - 22, 193, 27, 198, 241, 21, 22, 193, 27, 199, 49, 21, 22, 193, 27, 199, - 51, 21, 22, 219, 153, 21, 22, 219, 152, 21, 22, 219, 151, 21, 22, 219, - 150, 21, 22, 219, 159, 21, 22, 219, 158, 21, 22, 219, 160, 21, 22, 199, - 50, 199, 33, 21, 22, 199, 50, 199, 11, 21, 22, 199, 50, 199, 5, 21, 22, - 199, 50, 198, 241, 21, 22, 199, 50, 198, 235, 21, 22, 199, 50, 199, 49, - 21, 22, 199, 50, 199, 48, 21, 22, 199, 50, 199, 51, 21, 22, 251, 220, - 250, 120, 21, 22, 248, 136, 71, 21, 22, 248, 136, 68, 21, 22, 248, 136, - 74, 21, 22, 248, 136, 65, 21, 22, 248, 136, 193, 125, 21, 22, 248, 136, - 193, 86, 21, 22, 248, 136, 193, 48, 21, 22, 248, 136, 193, 190, 21, 22, - 248, 136, 214, 121, 21, 22, 248, 136, 213, 219, 21, 22, 248, 136, 213, - 43, 21, 22, 248, 136, 180, 21, 22, 248, 136, 222, 22, 21, 22, 248, 136, - 221, 166, 21, 22, 248, 136, 221, 67, 21, 22, 248, 136, 155, 21, 22, 205, - 101, 229, 245, 21, 22, 205, 101, 229, 158, 21, 22, 205, 101, 229, 23, 21, - 22, 205, 101, 140, 21, 22, 98, 231, 59, 21, 22, 98, 231, 63, 21, 22, 98, - 231, 77, 21, 22, 98, 231, 76, 21, 22, 98, 231, 65, 21, 22, 98, 231, 91, - 21, 22, 98, 206, 68, 21, 22, 98, 206, 162, 21, 22, 98, 207, 113, 21, 22, - 98, 207, 84, 21, 22, 98, 207, 1, 21, 22, 98, 165, 21, 22, 98, 193, 0, 21, - 22, 98, 193, 48, 21, 22, 98, 193, 125, 21, 22, 98, 193, 114, 21, 22, 98, - 193, 86, 21, 22, 98, 193, 190, 21, 22, 98, 228, 118, 21, 22, 98, 228, - 119, 21, 22, 98, 228, 122, 21, 22, 98, 228, 121, 21, 22, 98, 228, 120, - 21, 22, 98, 228, 125, 21, 22, 98, 198, 213, 21, 22, 98, 198, 241, 21, 22, - 98, 199, 33, 21, 22, 98, 199, 31, 21, 22, 98, 199, 11, 21, 22, 98, 199, - 49, 21, 22, 98, 197, 99, 21, 22, 98, 197, 109, 21, 22, 98, 197, 127, 21, - 22, 98, 197, 126, 21, 22, 98, 197, 111, 21, 22, 98, 197, 132, 21, 22, 98, - 208, 165, 21, 22, 98, 209, 73, 21, 22, 98, 210, 63, 21, 22, 98, 210, 49, - 21, 22, 98, 209, 185, 21, 22, 98, 168, 21, 22, 98, 210, 236, 21, 22, 98, - 230, 179, 21, 22, 98, 231, 3, 21, 22, 98, 231, 165, 21, 22, 98, 231, 157, - 21, 22, 98, 231, 53, 21, 22, 98, 231, 240, 21, 22, 98, 221, 175, 21, 22, - 98, 221, 183, 21, 22, 98, 221, 197, 21, 22, 98, 221, 196, 21, 22, 98, - 221, 190, 21, 22, 98, 221, 215, 21, 22, 98, 221, 96, 21, 22, 98, 221, 97, - 21, 22, 98, 221, 100, 21, 22, 98, 221, 99, 21, 22, 98, 221, 98, 21, 22, - 98, 221, 101, 21, 22, 98, 221, 102, 21, 22, 98, 212, 178, 21, 22, 98, - 213, 43, 21, 22, 98, 214, 121, 21, 22, 98, 214, 110, 21, 22, 98, 213, - 219, 21, 22, 98, 180, 21, 22, 98, 215, 155, 21, 22, 98, 216, 12, 21, 22, - 98, 216, 232, 21, 22, 98, 216, 211, 21, 22, 98, 216, 100, 21, 22, 98, - 174, 21, 22, 98, 191, 225, 21, 22, 98, 192, 12, 21, 22, 98, 192, 80, 21, - 22, 98, 192, 77, 21, 22, 98, 192, 33, 21, 22, 98, 170, 21, 22, 98, 222, - 182, 21, 22, 205, 101, 222, 182, 21, 22, 98, 222, 201, 21, 22, 98, 223, - 10, 21, 22, 98, 223, 8, 21, 22, 98, 222, 244, 21, 22, 205, 101, 222, 244, - 21, 22, 98, 223, 32, 21, 22, 98, 222, 215, 21, 22, 98, 222, 219, 21, 22, - 98, 222, 229, 21, 22, 98, 222, 228, 21, 22, 98, 222, 227, 21, 22, 98, - 222, 230, 21, 22, 98, 218, 225, 21, 22, 98, 219, 43, 21, 22, 98, 219, - 238, 21, 22, 98, 219, 228, 21, 22, 98, 219, 146, 21, 22, 98, 173, 21, 22, - 98, 236, 179, 21, 22, 98, 236, 180, 21, 22, 98, 236, 185, 21, 22, 98, - 236, 184, 21, 22, 98, 236, 181, 21, 22, 98, 236, 186, 21, 22, 98, 219, - 149, 21, 22, 98, 219, 151, 21, 22, 98, 219, 155, 21, 22, 98, 219, 154, - 21, 22, 98, 219, 153, 21, 22, 98, 219, 159, 21, 22, 98, 198, 106, 21, 22, - 98, 198, 108, 21, 22, 98, 198, 111, 21, 22, 98, 198, 110, 21, 22, 98, - 198, 109, 21, 22, 98, 198, 112, 21, 22, 98, 198, 101, 21, 22, 98, 198, - 102, 21, 22, 98, 198, 114, 21, 22, 98, 198, 113, 21, 22, 98, 198, 103, - 21, 22, 98, 198, 115, 21, 22, 98, 190, 251, 21, 22, 98, 191, 7, 21, 22, - 98, 191, 87, 21, 22, 98, 191, 84, 21, 22, 98, 191, 30, 21, 22, 98, 191, - 123, 21, 22, 98, 191, 166, 21, 22, 98, 89, 191, 166, 21, 22, 98, 235, 22, - 21, 22, 98, 235, 23, 21, 22, 98, 235, 32, 21, 22, 98, 235, 31, 21, 22, - 98, 235, 26, 21, 22, 98, 235, 35, 21, 22, 98, 201, 4, 21, 22, 98, 202, - 46, 21, 22, 98, 205, 68, 21, 22, 98, 205, 50, 21, 22, 98, 202, 222, 21, - 22, 98, 188, 21, 22, 98, 203, 5, 21, 22, 98, 203, 56, 21, 22, 98, 203, - 113, 21, 22, 98, 203, 111, 21, 22, 98, 203, 81, 21, 22, 98, 203, 165, 21, - 22, 98, 203, 167, 21, 22, 98, 197, 140, 21, 22, 98, 197, 144, 21, 22, 98, - 197, 161, 21, 22, 98, 197, 160, 21, 22, 98, 197, 146, 21, 22, 98, 197, - 168, 21, 22, 98, 243, 48, 21, 22, 98, 243, 68, 21, 22, 98, 243, 127, 21, - 22, 98, 243, 123, 21, 22, 98, 243, 95, 21, 22, 98, 247, 1, 21, 22, 98, - 197, 102, 21, 22, 98, 197, 103, 21, 22, 98, 197, 106, 21, 22, 98, 197, - 105, 21, 22, 98, 197, 104, 21, 22, 98, 197, 107, 21, 22, 243, 96, 56, 21, - 22, 232, 80, 201, 63, 21, 22, 208, 88, 21, 22, 214, 64, 21, 22, 213, 69, - 21, 22, 213, 68, 21, 22, 213, 67, 21, 22, 213, 66, 21, 22, 213, 71, 21, - 22, 213, 70, 21, 22, 193, 27, 198, 201, 21, 22, 193, 27, 198, 200, 21, - 22, 193, 27, 198, 199, 21, 22, 193, 27, 198, 198, 21, 22, 193, 27, 198, - 197, 21, 22, 193, 27, 198, 204, 21, 22, 193, 27, 198, 203, 21, 22, 193, - 27, 53, 199, 51, 21, 22, 248, 136, 193, 224, 211, 140, 201, 248, 77, 211, - 140, 1, 248, 239, 211, 140, 1, 218, 211, 211, 140, 1, 233, 56, 211, 140, - 1, 205, 179, 211, 140, 1, 213, 166, 211, 140, 1, 196, 165, 211, 140, 1, - 238, 5, 211, 140, 1, 198, 139, 211, 140, 1, 242, 86, 211, 140, 1, 247, - 29, 211, 140, 1, 215, 137, 211, 140, 1, 230, 234, 211, 140, 1, 214, 54, - 211, 140, 1, 201, 54, 211, 140, 1, 206, 55, 211, 140, 1, 251, 232, 211, - 140, 1, 211, 91, 211, 140, 1, 196, 62, 211, 140, 1, 234, 215, 211, 140, - 1, 223, 87, 211, 140, 1, 234, 216, 211, 140, 1, 211, 56, 211, 140, 1, - 196, 136, 211, 140, 1, 223, 205, 211, 140, 1, 234, 213, 211, 140, 1, 210, - 38, 211, 140, 233, 55, 77, 211, 140, 207, 18, 233, 55, 77, 206, 44, 1, - 233, 45, 233, 36, 233, 60, 233, 175, 206, 44, 1, 196, 12, 206, 44, 1, - 196, 47, 196, 63, 66, 206, 44, 1, 191, 228, 206, 44, 1, 192, 159, 206, - 44, 1, 193, 224, 206, 44, 1, 198, 206, 198, 205, 198, 233, 206, 44, 1, - 233, 248, 206, 44, 1, 251, 90, 65, 206, 44, 1, 211, 37, 74, 206, 44, 1, - 252, 64, 65, 206, 44, 1, 252, 9, 206, 44, 1, 219, 15, 74, 206, 44, 1, - 203, 33, 74, 206, 44, 1, 74, 206, 44, 1, 211, 151, 206, 44, 1, 211, 104, - 206, 44, 1, 207, 154, 207, 169, 207, 69, 146, 206, 44, 1, 222, 39, 206, - 44, 1, 247, 25, 206, 44, 1, 222, 40, 222, 152, 206, 44, 1, 232, 51, 206, - 44, 1, 234, 88, 206, 44, 1, 231, 160, 230, 122, 232, 51, 206, 44, 1, 231, - 200, 206, 44, 1, 192, 248, 192, 239, 193, 224, 206, 44, 1, 230, 82, 230, - 116, 206, 44, 1, 230, 86, 230, 116, 206, 44, 1, 219, 17, 230, 116, 206, - 44, 1, 203, 36, 230, 116, 206, 44, 1, 214, 203, 212, 91, 214, 204, 215, - 61, 206, 44, 1, 203, 34, 215, 61, 206, 44, 1, 235, 135, 206, 44, 1, 223, - 65, 223, 69, 223, 55, 68, 206, 44, 1, 71, 206, 44, 1, 222, 255, 223, 35, - 206, 44, 1, 231, 141, 206, 44, 1, 219, 18, 252, 25, 206, 44, 1, 203, 38, - 65, 206, 44, 1, 223, 47, 234, 61, 206, 44, 1, 209, 247, 210, 18, 210, - 236, 206, 44, 1, 251, 185, 234, 59, 206, 44, 1, 201, 254, 206, 8, 206, - 44, 1, 202, 198, 219, 14, 206, 8, 206, 44, 1, 203, 32, 206, 8, 206, 44, - 1, 247, 193, 206, 44, 1, 191, 166, 206, 44, 1, 198, 120, 198, 132, 196, - 242, 200, 43, 206, 44, 1, 203, 31, 200, 43, 206, 44, 1, 238, 127, 206, - 44, 1, 248, 217, 248, 220, 248, 142, 250, 120, 206, 44, 1, 203, 37, 250, - 120, 206, 44, 1, 235, 134, 206, 44, 1, 211, 70, 206, 44, 1, 234, 167, - 234, 174, 71, 206, 44, 1, 217, 79, 217, 91, 218, 168, 206, 44, 1, 219, - 16, 218, 168, 206, 44, 1, 203, 35, 218, 168, 206, 44, 1, 219, 253, 220, - 101, 219, 26, 172, 206, 44, 1, 235, 136, 206, 44, 1, 223, 135, 206, 44, - 1, 223, 136, 206, 44, 1, 238, 19, 238, 25, 238, 127, 206, 44, 1, 211, 28, - 233, 247, 74, 206, 44, 1, 234, 211, 206, 44, 1, 223, 85, 206, 44, 1, 238, - 148, 206, 44, 1, 247, 143, 206, 44, 1, 247, 41, 206, 44, 1, 201, 108, - 206, 44, 1, 219, 13, 206, 44, 1, 203, 30, 206, 44, 1, 228, 25, 206, 44, - 1, 208, 104, 206, 44, 1, 192, 235, 206, 44, 202, 170, 208, 151, 206, 44, - 215, 129, 208, 151, 206, 44, 238, 218, 208, 151, 206, 44, 250, 252, 113, - 206, 44, 197, 45, 113, 206, 44, 248, 237, 113, 206, 44, 1, 222, 152, 206, - 44, 1, 203, 167, 206, 44, 1, 211, 87, 206, 44, 1, 232, 110, 247, 81, 211, - 36, 206, 44, 1, 232, 110, 247, 81, 223, 68, 206, 44, 1, 232, 110, 247, - 81, 234, 173, 206, 44, 1, 232, 110, 247, 81, 252, 63, 206, 44, 1, 232, - 110, 247, 81, 252, 9, 199, 222, 1, 65, 199, 222, 1, 68, 199, 222, 1, 66, - 199, 222, 1, 155, 199, 222, 1, 231, 240, 199, 222, 1, 214, 68, 199, 222, - 1, 190, 190, 199, 222, 1, 238, 32, 199, 222, 1, 180, 199, 222, 1, 168, - 199, 222, 1, 249, 153, 199, 222, 1, 174, 199, 222, 1, 170, 199, 222, 1, - 165, 199, 222, 1, 173, 199, 222, 1, 193, 190, 199, 222, 1, 188, 199, 222, - 1, 140, 199, 222, 18, 3, 68, 199, 222, 18, 3, 66, 199, 222, 3, 195, 40, - 199, 222, 3, 210, 169, 199, 222, 1, 251, 14, 165, 230, 23, 1, 65, 230, - 23, 1, 68, 230, 23, 1, 66, 230, 23, 1, 155, 230, 23, 1, 231, 240, 230, - 23, 1, 214, 68, 230, 23, 1, 190, 190, 230, 23, 1, 238, 32, 230, 23, 1, - 180, 230, 23, 1, 168, 230, 23, 1, 249, 153, 230, 23, 1, 174, 230, 23, 1, - 170, 230, 23, 1, 165, 230, 23, 1, 173, 230, 23, 1, 193, 190, 230, 23, 1, - 188, 230, 23, 1, 140, 230, 23, 18, 3, 68, 230, 23, 18, 3, 66, 230, 23, 3, - 210, 169, 209, 204, 202, 170, 208, 151, 209, 204, 55, 208, 151, 248, 0, - 1, 65, 248, 0, 1, 68, 248, 0, 1, 66, 248, 0, 1, 155, 248, 0, 1, 231, 240, - 248, 0, 1, 214, 68, 248, 0, 1, 190, 190, 248, 0, 1, 238, 32, 248, 0, 1, - 180, 248, 0, 1, 168, 248, 0, 1, 249, 153, 248, 0, 1, 174, 248, 0, 1, 170, - 248, 0, 1, 165, 248, 0, 1, 173, 248, 0, 1, 193, 190, 248, 0, 1, 188, 248, - 0, 1, 140, 248, 0, 18, 3, 68, 248, 0, 18, 3, 66, 199, 221, 1, 65, 199, - 221, 1, 68, 199, 221, 1, 66, 199, 221, 1, 155, 199, 221, 1, 231, 240, - 199, 221, 1, 214, 68, 199, 221, 1, 190, 190, 199, 221, 1, 238, 32, 199, - 221, 1, 180, 199, 221, 1, 168, 199, 221, 1, 249, 153, 199, 221, 1, 174, - 199, 221, 1, 170, 199, 221, 1, 173, 199, 221, 1, 193, 190, 199, 221, 1, - 188, 199, 221, 18, 3, 68, 199, 221, 18, 3, 66, 95, 1, 155, 95, 1, 221, - 215, 95, 1, 221, 67, 95, 1, 221, 183, 95, 1, 213, 249, 95, 1, 247, 160, - 95, 1, 247, 1, 95, 1, 242, 99, 95, 1, 243, 68, 95, 1, 212, 65, 95, 1, - 238, 32, 95, 1, 197, 120, 95, 1, 236, 174, 95, 1, 197, 115, 95, 1, 213, - 49, 95, 1, 190, 190, 95, 1, 199, 49, 95, 1, 159, 95, 1, 198, 241, 95, 1, - 213, 43, 95, 1, 249, 153, 95, 1, 209, 228, 95, 1, 209, 73, 95, 1, 209, - 199, 95, 1, 216, 12, 95, 1, 192, 12, 95, 1, 206, 162, 95, 1, 219, 43, 95, - 1, 195, 24, 95, 1, 203, 165, 95, 1, 201, 134, 95, 1, 188, 95, 1, 140, 95, - 1, 173, 95, 1, 208, 96, 95, 223, 149, 18, 208, 82, 95, 223, 149, 18, 208, - 95, 95, 223, 149, 18, 208, 57, 95, 223, 149, 18, 208, 51, 95, 223, 149, - 18, 208, 33, 95, 223, 149, 18, 208, 0, 95, 223, 149, 18, 207, 244, 95, - 223, 149, 18, 207, 243, 95, 223, 149, 18, 206, 17, 95, 223, 149, 18, 206, - 10, 95, 223, 149, 18, 218, 183, 95, 223, 149, 18, 218, 171, 95, 223, 149, - 18, 208, 75, 95, 223, 149, 18, 208, 88, 95, 223, 149, 18, 208, 41, 196, - 255, 107, 95, 223, 149, 18, 208, 41, 196, 255, 109, 95, 223, 149, 18, - 208, 77, 95, 18, 223, 133, 251, 37, 95, 18, 223, 133, 252, 206, 95, 18, - 3, 252, 206, 95, 18, 3, 68, 95, 18, 3, 223, 199, 95, 18, 3, 192, 159, 95, - 18, 3, 191, 176, 95, 18, 3, 66, 95, 18, 3, 196, 30, 95, 18, 3, 196, 168, - 95, 18, 3, 211, 151, 95, 18, 3, 170, 95, 18, 3, 223, 226, 95, 18, 3, 71, - 95, 18, 3, 252, 25, 95, 18, 3, 251, 236, 95, 18, 3, 211, 87, 95, 18, 3, - 250, 163, 95, 3, 213, 184, 95, 3, 207, 106, 95, 3, 191, 187, 95, 3, 215, - 91, 95, 3, 197, 229, 95, 3, 249, 90, 95, 3, 206, 151, 95, 3, 198, 90, 95, - 3, 222, 95, 95, 3, 251, 238, 95, 3, 205, 143, 205, 135, 95, 3, 195, 37, - 95, 3, 242, 90, 95, 3, 249, 60, 95, 3, 221, 205, 95, 3, 249, 85, 95, 3, - 247, 131, 209, 146, 220, 186, 95, 3, 219, 205, 198, 59, 95, 3, 248, 205, - 95, 3, 209, 201, 215, 148, 95, 3, 221, 39, 95, 238, 170, 16, 206, 241, - 95, 3, 250, 144, 95, 3, 250, 166, 95, 17, 191, 77, 95, 17, 107, 95, 17, - 109, 95, 17, 138, 95, 17, 134, 95, 17, 149, 95, 17, 169, 95, 17, 175, 95, - 17, 171, 95, 17, 178, 95, 16, 219, 205, 250, 168, 202, 19, 95, 16, 219, - 205, 250, 168, 215, 112, 95, 16, 219, 205, 250, 168, 209, 145, 95, 16, - 219, 205, 250, 168, 248, 240, 95, 16, 219, 205, 250, 168, 247, 236, 95, - 16, 219, 205, 250, 168, 208, 245, 95, 16, 219, 205, 250, 168, 208, 239, - 95, 16, 219, 205, 250, 168, 208, 237, 95, 16, 219, 205, 250, 168, 208, - 243, 95, 16, 219, 205, 250, 168, 208, 241, 104, 248, 158, 104, 234, 120, - 104, 242, 74, 104, 232, 80, 201, 63, 104, 242, 83, 104, 232, 128, 236, - 138, 104, 198, 88, 202, 32, 228, 88, 104, 202, 214, 5, 248, 73, 217, 51, - 104, 217, 87, 242, 74, 104, 217, 87, 232, 80, 201, 63, 104, 213, 164, - 104, 232, 109, 67, 205, 35, 107, 104, 232, 109, 67, 205, 35, 109, 104, - 232, 109, 67, 205, 35, 138, 104, 18, 204, 10, 104, 232, 109, 67, 205, 35, - 134, 104, 17, 191, 77, 104, 17, 107, 104, 17, 109, 104, 17, 138, 104, 17, - 134, 104, 17, 149, 104, 17, 169, 104, 17, 175, 104, 17, 171, 104, 17, - 178, 104, 1, 65, 104, 1, 71, 104, 1, 68, 104, 1, 74, 104, 1, 66, 104, 1, - 211, 151, 104, 1, 196, 152, 104, 1, 234, 188, 104, 1, 180, 104, 1, 251, - 122, 104, 1, 249, 153, 104, 1, 168, 104, 1, 208, 96, 104, 1, 231, 240, - 104, 1, 174, 104, 1, 173, 104, 1, 188, 104, 1, 203, 165, 104, 1, 190, - 190, 104, 1, 238, 32, 104, 1, 247, 1, 104, 1, 223, 32, 104, 1, 170, 104, - 1, 165, 104, 1, 193, 190, 104, 1, 233, 109, 104, 1, 155, 104, 1, 221, - 215, 104, 1, 197, 168, 104, 1, 191, 123, 104, 1, 230, 91, 104, 1, 190, - 255, 104, 1, 219, 159, 104, 1, 191, 57, 104, 1, 243, 95, 104, 1, 198, 88, - 179, 18, 56, 104, 1, 198, 88, 71, 104, 1, 198, 88, 68, 104, 1, 198, 88, - 74, 104, 1, 198, 88, 66, 104, 1, 198, 88, 211, 151, 104, 1, 198, 88, 196, - 152, 104, 1, 198, 88, 251, 122, 104, 1, 198, 88, 249, 153, 104, 1, 198, - 88, 168, 104, 1, 198, 88, 208, 96, 104, 1, 198, 88, 231, 240, 104, 1, - 198, 88, 174, 104, 1, 198, 88, 190, 190, 104, 1, 198, 88, 238, 32, 104, - 1, 198, 88, 247, 1, 104, 1, 198, 88, 223, 32, 104, 1, 198, 88, 197, 168, - 104, 1, 198, 88, 170, 104, 1, 198, 88, 193, 190, 104, 1, 198, 88, 155, - 104, 1, 198, 88, 231, 237, 104, 1, 198, 88, 230, 91, 104, 1, 198, 88, - 222, 243, 104, 1, 198, 88, 213, 209, 104, 1, 198, 88, 235, 35, 104, 1, - 202, 214, 71, 104, 1, 202, 214, 68, 104, 1, 202, 214, 223, 44, 104, 1, - 202, 214, 196, 152, 104, 1, 202, 214, 66, 104, 1, 202, 214, 251, 122, - 104, 1, 202, 214, 155, 104, 1, 202, 214, 231, 240, 104, 1, 202, 214, 140, - 104, 1, 202, 214, 168, 104, 1, 202, 214, 203, 165, 104, 1, 202, 214, 190, - 190, 104, 1, 202, 214, 238, 32, 104, 1, 202, 214, 223, 32, 104, 1, 202, - 214, 233, 109, 104, 1, 202, 214, 231, 237, 104, 1, 202, 214, 230, 91, - 104, 1, 202, 214, 197, 168, 104, 1, 202, 214, 191, 123, 104, 1, 202, 214, - 207, 178, 104, 1, 202, 214, 247, 1, 104, 1, 202, 214, 191, 71, 104, 1, - 217, 87, 68, 104, 1, 217, 87, 155, 104, 1, 217, 87, 165, 104, 1, 217, 87, - 233, 109, 104, 1, 217, 87, 191, 71, 104, 1, 247, 2, 4, 105, 236, 138, - 104, 1, 251, 184, 231, 220, 251, 72, 107, 104, 1, 251, 184, 231, 220, - 195, 36, 107, 104, 1, 251, 184, 231, 220, 237, 247, 104, 1, 251, 184, - 231, 220, 196, 163, 104, 1, 251, 184, 231, 220, 223, 93, 196, 163, 104, - 1, 251, 184, 231, 220, 249, 104, 104, 1, 251, 184, 231, 220, 115, 249, - 104, 104, 1, 251, 184, 231, 220, 65, 104, 1, 251, 184, 231, 220, 68, 104, - 1, 251, 184, 231, 220, 155, 104, 1, 251, 184, 231, 220, 214, 68, 104, 1, - 251, 184, 231, 220, 247, 160, 104, 1, 251, 184, 231, 220, 197, 132, 104, - 1, 251, 184, 231, 220, 197, 120, 104, 1, 251, 184, 231, 220, 237, 191, - 104, 1, 251, 184, 231, 220, 213, 79, 104, 1, 251, 184, 231, 220, 190, - 190, 104, 1, 251, 184, 231, 220, 238, 32, 104, 1, 251, 184, 231, 220, - 168, 104, 1, 251, 184, 231, 220, 209, 228, 104, 1, 251, 184, 231, 220, - 201, 175, 104, 1, 251, 184, 231, 220, 191, 71, 104, 1, 251, 184, 231, - 220, 191, 123, 104, 1, 251, 184, 231, 220, 251, 245, 104, 1, 198, 88, - 251, 184, 231, 220, 190, 190, 104, 1, 198, 88, 251, 184, 231, 220, 191, - 71, 104, 1, 217, 87, 251, 184, 231, 220, 231, 91, 104, 1, 217, 87, 251, - 184, 231, 220, 214, 68, 104, 1, 217, 87, 251, 184, 231, 220, 247, 160, - 104, 1, 217, 87, 251, 184, 231, 220, 222, 252, 104, 1, 217, 87, 251, 184, - 231, 220, 197, 132, 104, 1, 217, 87, 251, 184, 231, 220, 237, 175, 104, - 1, 217, 87, 251, 184, 231, 220, 190, 190, 104, 1, 217, 87, 251, 184, 231, - 220, 237, 68, 104, 1, 217, 87, 251, 184, 231, 220, 201, 175, 104, 1, 217, - 87, 251, 184, 231, 220, 238, 142, 104, 1, 217, 87, 251, 184, 231, 220, - 191, 71, 104, 1, 217, 87, 251, 184, 231, 220, 191, 123, 104, 1, 251, 184, - 231, 220, 132, 66, 104, 1, 251, 184, 231, 220, 132, 170, 104, 1, 217, 87, - 251, 184, 231, 220, 248, 203, 104, 1, 251, 184, 231, 220, 238, 20, 104, - 1, 217, 87, 251, 184, 231, 220, 219, 159, 21, 22, 210, 242, 21, 22, 250, - 131, 21, 22, 252, 160, 21, 22, 193, 128, 21, 22, 208, 251, 21, 22, 210, - 72, 21, 22, 208, 113, 21, 22, 199, 154, 21, 22, 222, 29, 21, 22, 220, - 176, 21, 22, 217, 21, 21, 22, 212, 250, 21, 22, 214, 198, 21, 22, 219, - 248, 21, 22, 201, 252, 21, 22, 205, 103, 21, 22, 203, 18, 21, 22, 203, - 117, 21, 22, 202, 232, 21, 22, 191, 234, 21, 22, 192, 86, 21, 22, 207, - 122, 21, 22, 212, 107, 21, 22, 211, 128, 212, 107, 21, 22, 212, 106, 21, - 22, 211, 128, 212, 106, 21, 22, 212, 105, 21, 22, 211, 128, 212, 105, 21, - 22, 212, 104, 21, 22, 211, 128, 212, 104, 21, 22, 206, 22, 21, 22, 206, - 21, 21, 22, 206, 20, 21, 22, 206, 19, 21, 22, 206, 18, 21, 22, 206, 26, - 21, 22, 211, 128, 210, 236, 21, 22, 211, 128, 200, 43, 21, 22, 211, 128, - 222, 152, 21, 22, 211, 128, 247, 193, 21, 22, 211, 128, 218, 168, 21, 22, - 211, 128, 215, 61, 21, 22, 211, 128, 206, 8, 21, 22, 211, 128, 203, 167, - 21, 22, 234, 202, 193, 224, 21, 22, 193, 102, 193, 224, 21, 22, 53, 2, - 206, 188, 21, 22, 53, 207, 147, 236, 140, 21, 22, 207, 221, 206, 23, 21, - 22, 193, 103, 219, 8, 21, 22, 193, 103, 220, 125, 21, 22, 198, 202, 21, - 22, 198, 204, 21, 22, 197, 112, 21, 22, 197, 114, 21, 22, 197, 119, 21, - 22, 198, 105, 21, 22, 198, 107, 21, 22, 205, 101, 202, 237, 21, 22, 205, - 101, 203, 48, 21, 22, 205, 101, 228, 252, 21, 22, 98, 230, 130, 21, 22, - 98, 237, 103, 231, 157, 21, 22, 98, 231, 237, 21, 22, 98, 230, 135, 21, - 22, 205, 101, 222, 162, 21, 22, 98, 222, 160, 21, 22, 249, 5, 237, 103, - 172, 21, 22, 249, 5, 237, 103, 146, 21, 22, 98, 237, 98, 206, 8, 219, - 122, 195, 1, 219, 175, 219, 122, 1, 155, 219, 122, 1, 221, 215, 219, 122, - 1, 231, 240, 219, 122, 1, 231, 91, 219, 122, 1, 214, 68, 219, 122, 1, - 247, 160, 219, 122, 1, 247, 1, 219, 122, 1, 223, 32, 219, 122, 1, 222, - 252, 219, 122, 1, 192, 108, 219, 122, 1, 190, 190, 219, 122, 1, 199, 49, - 219, 122, 1, 238, 32, 219, 122, 1, 237, 68, 219, 122, 1, 180, 219, 122, - 1, 168, 219, 122, 1, 209, 228, 219, 122, 1, 249, 153, 219, 122, 1, 248, - 203, 219, 122, 1, 174, 219, 122, 1, 170, 219, 122, 1, 165, 219, 122, 1, - 173, 219, 122, 1, 193, 190, 219, 122, 1, 203, 165, 219, 122, 1, 201, 175, - 219, 122, 1, 188, 219, 122, 1, 140, 219, 122, 1, 230, 126, 219, 122, 1, - 198, 26, 219, 122, 18, 3, 65, 219, 122, 18, 3, 68, 219, 122, 18, 3, 66, - 219, 122, 18, 3, 234, 188, 219, 122, 18, 3, 251, 236, 219, 122, 18, 3, - 211, 87, 219, 122, 18, 3, 250, 163, 219, 122, 18, 3, 71, 219, 122, 18, 3, - 74, 219, 122, 200, 239, 1, 170, 219, 122, 200, 239, 1, 165, 219, 122, - 200, 239, 1, 193, 190, 219, 122, 2, 1, 155, 219, 122, 2, 1, 214, 68, 219, - 122, 2, 1, 251, 71, 219, 122, 2, 1, 190, 190, 219, 122, 2, 1, 180, 219, - 122, 2, 1, 168, 219, 122, 2, 1, 174, 219, 122, 2, 1, 165, 219, 122, 2, 1, - 173, 219, 122, 3, 215, 134, 219, 122, 3, 222, 1, 219, 122, 3, 205, 198, - 219, 122, 3, 219, 8, 219, 122, 233, 216, 77, 219, 122, 208, 13, 77, 219, - 122, 17, 191, 77, 219, 122, 17, 107, 219, 122, 17, 109, 219, 122, 17, - 138, 219, 122, 17, 134, 219, 122, 17, 149, 219, 122, 17, 169, 219, 122, - 17, 175, 219, 122, 17, 171, 219, 122, 17, 178, 54, 219, 239, 1, 155, 54, - 219, 239, 1, 192, 220, 54, 219, 239, 1, 214, 68, 54, 219, 239, 1, 197, - 168, 54, 219, 239, 1, 188, 54, 219, 239, 1, 170, 54, 219, 239, 1, 190, - 190, 54, 219, 239, 1, 199, 49, 54, 219, 239, 1, 173, 54, 219, 239, 1, - 168, 54, 219, 239, 1, 209, 228, 54, 219, 239, 1, 174, 54, 219, 239, 1, - 233, 109, 54, 219, 239, 1, 195, 188, 54, 219, 239, 1, 140, 54, 219, 239, - 1, 208, 96, 54, 219, 239, 1, 221, 215, 54, 219, 239, 1, 197, 157, 54, - 219, 239, 1, 180, 54, 219, 239, 1, 65, 54, 219, 239, 1, 68, 54, 219, 239, - 1, 234, 188, 54, 219, 239, 1, 234, 173, 54, 219, 239, 1, 66, 54, 219, - 239, 1, 211, 87, 54, 219, 239, 1, 74, 54, 219, 239, 1, 196, 152, 54, 219, - 239, 1, 71, 54, 219, 239, 1, 250, 161, 54, 219, 239, 1, 251, 236, 54, - 219, 239, 1, 198, 77, 54, 219, 239, 1, 198, 76, 54, 219, 239, 1, 198, 75, - 54, 219, 239, 1, 198, 74, 54, 219, 239, 1, 198, 73, 214, 80, 54, 218, - 219, 1, 137, 208, 96, 214, 80, 54, 218, 219, 1, 130, 208, 96, 214, 80, - 54, 218, 219, 1, 137, 155, 214, 80, 54, 218, 219, 1, 137, 192, 220, 214, - 80, 54, 218, 219, 1, 137, 214, 68, 214, 80, 54, 218, 219, 1, 130, 155, - 214, 80, 54, 218, 219, 1, 130, 192, 220, 214, 80, 54, 218, 219, 1, 130, - 214, 68, 214, 80, 54, 218, 219, 1, 137, 197, 168, 214, 80, 54, 218, 219, - 1, 137, 188, 214, 80, 54, 218, 219, 1, 137, 170, 214, 80, 54, 218, 219, - 1, 130, 197, 168, 214, 80, 54, 218, 219, 1, 130, 188, 214, 80, 54, 218, - 219, 1, 130, 170, 214, 80, 54, 218, 219, 1, 137, 190, 190, 214, 80, 54, - 218, 219, 1, 137, 199, 49, 214, 80, 54, 218, 219, 1, 137, 180, 214, 80, - 54, 218, 219, 1, 130, 190, 190, 214, 80, 54, 218, 219, 1, 130, 199, 49, - 214, 80, 54, 218, 219, 1, 130, 180, 214, 80, 54, 218, 219, 1, 137, 168, - 214, 80, 54, 218, 219, 1, 137, 209, 228, 214, 80, 54, 218, 219, 1, 137, - 174, 214, 80, 54, 218, 219, 1, 130, 168, 214, 80, 54, 218, 219, 1, 130, - 209, 228, 214, 80, 54, 218, 219, 1, 130, 174, 214, 80, 54, 218, 219, 1, - 137, 233, 109, 214, 80, 54, 218, 219, 1, 137, 195, 188, 214, 80, 54, 218, - 219, 1, 137, 173, 214, 80, 54, 218, 219, 1, 130, 233, 109, 214, 80, 54, - 218, 219, 1, 130, 195, 188, 214, 80, 54, 218, 219, 1, 130, 173, 214, 80, - 54, 218, 219, 1, 137, 140, 214, 80, 54, 218, 219, 1, 137, 238, 32, 214, - 80, 54, 218, 219, 1, 137, 249, 153, 214, 80, 54, 218, 219, 1, 130, 140, - 214, 80, 54, 218, 219, 1, 130, 238, 32, 214, 80, 54, 218, 219, 1, 130, - 249, 153, 214, 80, 54, 218, 219, 1, 137, 220, 181, 214, 80, 54, 218, 219, - 1, 137, 192, 185, 214, 80, 54, 218, 219, 1, 130, 220, 181, 214, 80, 54, - 218, 219, 1, 130, 192, 185, 214, 80, 54, 218, 219, 1, 137, 200, 251, 214, - 80, 54, 218, 219, 1, 130, 200, 251, 214, 80, 54, 218, 219, 18, 3, 18, - 203, 28, 214, 80, 54, 218, 219, 18, 3, 252, 206, 214, 80, 54, 218, 219, - 18, 3, 223, 199, 214, 80, 54, 218, 219, 18, 3, 66, 214, 80, 54, 218, 219, - 18, 3, 196, 30, 214, 80, 54, 218, 219, 18, 3, 71, 214, 80, 54, 218, 219, - 18, 3, 252, 25, 214, 80, 54, 218, 219, 18, 3, 74, 214, 80, 54, 218, 219, - 18, 3, 211, 182, 214, 80, 54, 218, 219, 18, 3, 196, 152, 214, 80, 54, - 218, 219, 18, 3, 250, 131, 214, 80, 54, 218, 219, 18, 3, 252, 160, 214, - 80, 54, 218, 219, 18, 3, 196, 21, 214, 80, 54, 218, 219, 18, 3, 210, 242, - 214, 80, 54, 218, 219, 18, 3, 211, 179, 214, 80, 54, 218, 219, 18, 3, - 196, 144, 214, 80, 54, 218, 219, 18, 3, 223, 44, 214, 80, 54, 218, 219, - 1, 53, 196, 12, 214, 80, 54, 218, 219, 1, 53, 214, 70, 214, 80, 54, 218, - 219, 1, 53, 215, 61, 214, 80, 54, 218, 219, 1, 53, 218, 168, 214, 80, 54, - 218, 219, 1, 53, 222, 152, 214, 80, 54, 218, 219, 1, 53, 238, 127, 214, - 80, 54, 218, 219, 1, 53, 250, 120, 214, 80, 54, 218, 219, 163, 217, 55, - 214, 80, 54, 218, 219, 163, 217, 54, 214, 80, 54, 218, 219, 17, 191, 77, - 214, 80, 54, 218, 219, 17, 107, 214, 80, 54, 218, 219, 17, 109, 214, 80, - 54, 218, 219, 17, 138, 214, 80, 54, 218, 219, 17, 134, 214, 80, 54, 218, - 219, 17, 149, 214, 80, 54, 218, 219, 17, 169, 214, 80, 54, 218, 219, 17, - 175, 214, 80, 54, 218, 219, 17, 171, 214, 80, 54, 218, 219, 17, 178, 214, - 80, 54, 218, 219, 128, 17, 107, 214, 80, 54, 218, 219, 3, 220, 107, 214, - 80, 54, 218, 219, 3, 220, 106, 95, 16, 210, 84, 95, 16, 215, 113, 221, - 58, 95, 16, 209, 146, 221, 58, 95, 16, 248, 241, 221, 58, 95, 16, 247, - 237, 221, 58, 95, 16, 208, 246, 221, 58, 95, 16, 208, 240, 221, 58, 95, - 16, 208, 238, 221, 58, 95, 16, 208, 244, 221, 58, 95, 16, 208, 242, 221, - 58, 95, 16, 237, 232, 221, 58, 95, 16, 237, 228, 221, 58, 95, 16, 237, - 227, 221, 58, 95, 16, 237, 230, 221, 58, 95, 16, 237, 229, 221, 58, 95, - 16, 237, 226, 221, 58, 95, 16, 197, 51, 95, 16, 215, 113, 206, 149, 95, - 16, 209, 146, 206, 149, 95, 16, 248, 241, 206, 149, 95, 16, 247, 237, - 206, 149, 95, 16, 208, 246, 206, 149, 95, 16, 208, 240, 206, 149, 95, 16, - 208, 238, 206, 149, 95, 16, 208, 244, 206, 149, 95, 16, 208, 242, 206, - 149, 95, 16, 237, 232, 206, 149, 95, 16, 237, 228, 206, 149, 95, 16, 237, - 227, 206, 149, 95, 16, 237, 230, 206, 149, 95, 16, 237, 229, 206, 149, - 95, 16, 237, 226, 206, 149, 248, 1, 1, 155, 248, 1, 1, 231, 240, 248, 1, - 1, 214, 68, 248, 1, 1, 214, 11, 248, 1, 1, 168, 248, 1, 1, 249, 153, 248, - 1, 1, 174, 248, 1, 1, 215, 166, 248, 1, 1, 190, 190, 248, 1, 1, 238, 32, - 248, 1, 1, 180, 248, 1, 1, 212, 244, 248, 1, 1, 247, 160, 248, 1, 1, 223, - 32, 248, 1, 1, 212, 101, 248, 1, 1, 212, 92, 248, 1, 1, 170, 248, 1, 1, - 165, 248, 1, 1, 173, 248, 1, 1, 195, 188, 248, 1, 1, 188, 248, 1, 1, 65, - 248, 1, 1, 140, 248, 1, 18, 3, 68, 248, 1, 18, 3, 66, 248, 1, 18, 3, 71, - 248, 1, 18, 3, 74, 248, 1, 18, 3, 252, 25, 248, 1, 210, 184, 248, 1, 234, - 95, 79, 205, 53, 54, 128, 1, 137, 155, 54, 128, 1, 137, 221, 215, 54, - 128, 1, 137, 220, 165, 54, 128, 1, 130, 155, 54, 128, 1, 130, 220, 165, - 54, 128, 1, 130, 221, 215, 54, 128, 1, 214, 68, 54, 128, 1, 137, 247, - 160, 54, 128, 1, 137, 247, 1, 54, 128, 1, 130, 247, 160, 54, 128, 1, 130, - 188, 54, 128, 1, 130, 247, 1, 54, 128, 1, 212, 101, 54, 128, 1, 207, 129, - 54, 128, 1, 137, 207, 127, 54, 128, 1, 238, 32, 54, 128, 1, 130, 207, - 127, 54, 128, 1, 207, 138, 54, 128, 1, 137, 190, 190, 54, 128, 1, 137, - 199, 49, 54, 128, 1, 130, 190, 190, 54, 128, 1, 130, 199, 49, 54, 128, 1, - 180, 54, 128, 1, 249, 153, 54, 128, 1, 137, 168, 54, 128, 1, 137, 209, - 228, 54, 128, 1, 137, 233, 109, 54, 128, 1, 130, 168, 54, 128, 1, 130, - 233, 109, 54, 128, 1, 130, 209, 228, 54, 128, 1, 174, 54, 128, 1, 130, - 170, 54, 128, 1, 137, 170, 54, 128, 1, 165, 54, 128, 1, 206, 57, 54, 128, - 1, 173, 54, 128, 1, 218, 218, 54, 128, 1, 193, 190, 54, 128, 1, 137, 203, - 165, 54, 128, 1, 137, 201, 175, 54, 128, 1, 137, 188, 54, 128, 1, 137, - 140, 54, 128, 1, 219, 73, 54, 128, 1, 65, 54, 128, 1, 130, 140, 54, 128, - 1, 68, 54, 128, 1, 223, 199, 54, 128, 1, 66, 54, 128, 1, 196, 30, 54, - 128, 1, 234, 188, 54, 128, 1, 211, 87, 54, 128, 1, 220, 107, 54, 128, 1, - 230, 206, 188, 54, 128, 120, 3, 216, 217, 165, 54, 128, 120, 3, 216, 217, - 173, 54, 128, 120, 3, 220, 126, 199, 190, 220, 96, 54, 128, 3, 217, 113, - 222, 84, 220, 96, 54, 128, 120, 3, 53, 214, 68, 54, 128, 120, 3, 130, - 168, 54, 128, 120, 3, 137, 207, 128, 211, 57, 130, 168, 54, 128, 120, 3, - 174, 54, 128, 120, 3, 249, 153, 54, 128, 120, 3, 188, 54, 128, 3, 205, - 172, 54, 128, 18, 3, 65, 54, 128, 18, 3, 217, 113, 205, 122, 54, 128, 18, - 3, 252, 206, 54, 128, 18, 3, 199, 200, 252, 206, 54, 128, 18, 3, 68, 54, - 128, 18, 3, 223, 199, 54, 128, 18, 3, 196, 152, 54, 128, 18, 3, 196, 29, - 54, 128, 18, 3, 66, 54, 128, 18, 3, 196, 30, 54, 128, 18, 3, 74, 54, 128, - 18, 3, 211, 183, 60, 54, 128, 18, 3, 210, 242, 54, 128, 18, 3, 71, 54, - 128, 18, 3, 252, 25, 54, 128, 18, 3, 211, 87, 54, 128, 18, 3, 251, 236, - 54, 128, 18, 3, 128, 251, 236, 54, 128, 18, 3, 211, 183, 58, 54, 128, 3, - 217, 113, 222, 83, 54, 128, 3, 198, 78, 54, 128, 3, 198, 77, 54, 128, 3, - 221, 171, 198, 76, 54, 128, 3, 221, 171, 198, 75, 54, 128, 3, 221, 171, - 198, 74, 54, 128, 3, 207, 186, 230, 90, 54, 128, 3, 217, 113, 205, 152, - 54, 128, 3, 221, 170, 222, 64, 54, 128, 33, 238, 198, 236, 140, 54, 128, - 228, 243, 17, 191, 77, 54, 128, 228, 243, 17, 107, 54, 128, 228, 243, 17, - 109, 54, 128, 228, 243, 17, 138, 54, 128, 228, 243, 17, 134, 54, 128, - 228, 243, 17, 149, 54, 128, 228, 243, 17, 169, 54, 128, 228, 243, 17, - 175, 54, 128, 228, 243, 17, 171, 54, 128, 228, 243, 17, 178, 54, 128, - 128, 17, 191, 77, 54, 128, 128, 17, 107, 54, 128, 128, 17, 109, 54, 128, - 128, 17, 138, 54, 128, 128, 17, 134, 54, 128, 128, 17, 149, 54, 128, 128, - 17, 169, 54, 128, 128, 17, 175, 54, 128, 128, 17, 171, 54, 128, 128, 17, - 178, 54, 128, 3, 193, 80, 54, 128, 3, 193, 79, 54, 128, 3, 205, 107, 54, - 128, 3, 221, 246, 54, 128, 3, 228, 170, 54, 128, 3, 236, 157, 54, 128, 3, - 207, 18, 206, 122, 207, 138, 54, 128, 3, 217, 113, 192, 109, 54, 128, 3, - 222, 120, 54, 128, 3, 222, 119, 54, 128, 3, 205, 117, 54, 128, 3, 205, - 116, 54, 128, 3, 230, 26, 54, 128, 3, 247, 157, 33, 235, 128, 243, 2, - 252, 60, 33, 237, 41, 33, 223, 139, 33, 235, 119, 57, 33, 197, 225, 236, - 140, 33, 192, 233, 60, 33, 193, 72, 219, 113, 60, 33, 211, 77, 87, 60, - 33, 55, 211, 77, 87, 60, 33, 156, 247, 23, 201, 28, 60, 33, 201, 14, 247, - 23, 201, 28, 60, 33, 210, 115, 58, 33, 55, 210, 115, 58, 33, 210, 115, - 60, 33, 210, 115, 210, 255, 33, 8, 2, 1, 193, 225, 60, 33, 8, 2, 1, 153, - 193, 225, 60, 33, 45, 210, 114, 93, 219, 224, 33, 50, 210, 114, 93, 183, - 33, 45, 210, 114, 248, 233, 219, 224, 33, 50, 210, 114, 248, 233, 183, - 33, 51, 248, 51, 58, 33, 31, 3, 58, 33, 223, 93, 55, 251, 15, 58, 33, - 108, 3, 58, 33, 55, 108, 3, 58, 33, 55, 108, 3, 60, 33, 197, 225, 252, - 47, 252, 60, 33, 8, 2, 1, 223, 115, 232, 51, 33, 8, 2, 1, 223, 115, 146, - 33, 8, 2, 1, 223, 115, 200, 43, 148, 3, 196, 123, 206, 244, 148, 3, 196, - 123, 247, 121, 148, 3, 247, 38, 148, 3, 200, 173, 148, 3, 248, 155, 148, - 1, 251, 214, 148, 1, 251, 215, 199, 123, 148, 1, 223, 194, 148, 1, 223, - 195, 199, 123, 148, 1, 196, 126, 148, 1, 196, 127, 199, 123, 148, 1, 207, - 186, 207, 51, 148, 1, 207, 186, 207, 52, 199, 123, 148, 1, 220, 126, 219, - 199, 148, 1, 220, 126, 219, 200, 199, 123, 148, 1, 234, 145, 148, 1, 251, - 233, 148, 1, 211, 123, 148, 1, 211, 124, 199, 123, 148, 1, 155, 148, 1, - 222, 142, 217, 116, 148, 1, 231, 240, 148, 1, 231, 241, 230, 241, 148, 1, - 214, 68, 148, 1, 247, 160, 148, 1, 247, 161, 220, 112, 148, 1, 223, 32, - 148, 1, 223, 33, 223, 0, 148, 1, 212, 101, 148, 1, 199, 252, 220, 2, 148, - 1, 199, 252, 215, 108, 217, 116, 148, 1, 238, 33, 215, 108, 251, 162, - 148, 1, 238, 33, 215, 108, 217, 116, 148, 1, 215, 7, 207, 141, 148, 1, - 190, 190, 148, 1, 199, 252, 199, 158, 148, 1, 238, 32, 148, 1, 238, 33, - 217, 138, 148, 1, 180, 148, 1, 168, 148, 1, 210, 221, 222, 76, 148, 1, - 249, 153, 148, 1, 249, 154, 222, 2, 148, 1, 174, 148, 1, 170, 148, 1, - 165, 148, 1, 173, 148, 1, 193, 190, 148, 1, 205, 207, 205, 184, 148, 1, - 205, 207, 205, 129, 148, 1, 188, 148, 1, 140, 148, 3, 207, 41, 148, 18, - 3, 199, 123, 148, 18, 3, 196, 122, 148, 18, 3, 196, 123, 205, 125, 148, - 18, 3, 200, 208, 148, 18, 3, 200, 209, 223, 185, 148, 18, 3, 207, 186, - 207, 51, 148, 18, 3, 207, 186, 207, 52, 199, 123, 148, 18, 3, 220, 126, - 219, 199, 148, 18, 3, 220, 126, 219, 200, 199, 123, 148, 18, 3, 199, 201, - 148, 18, 3, 199, 202, 207, 51, 148, 18, 3, 199, 202, 199, 123, 148, 18, - 3, 199, 202, 207, 52, 199, 123, 148, 18, 3, 210, 16, 148, 18, 3, 210, 17, - 199, 123, 148, 252, 37, 252, 36, 148, 1, 222, 107, 205, 124, 148, 1, 221, - 177, 205, 124, 148, 1, 196, 235, 205, 124, 148, 1, 234, 182, 205, 124, - 148, 1, 195, 154, 205, 124, 148, 1, 191, 109, 205, 124, 148, 1, 250, 185, - 205, 124, 148, 1, 251, 14, 222, 202, 148, 17, 191, 77, 148, 17, 107, 148, - 17, 109, 148, 17, 138, 148, 17, 134, 148, 17, 149, 148, 17, 169, 148, 17, - 175, 148, 17, 171, 148, 17, 178, 148, 210, 145, 148, 210, 175, 148, 193, - 64, 148, 247, 94, 210, 168, 148, 247, 94, 202, 190, 148, 247, 94, 210, - 112, 148, 210, 174, 148, 37, 16, 236, 148, 148, 37, 16, 237, 102, 148, - 37, 16, 235, 71, 148, 37, 16, 237, 236, 148, 37, 16, 237, 237, 200, 173, - 148, 37, 16, 236, 242, 148, 37, 16, 238, 24, 148, 37, 16, 237, 77, 148, - 37, 16, 238, 6, 148, 37, 16, 237, 237, 231, 159, 148, 37, 16, 33, 199, - 116, 148, 37, 16, 33, 234, 92, 148, 37, 16, 33, 221, 253, 148, 37, 16, - 33, 221, 255, 148, 37, 16, 33, 223, 5, 148, 37, 16, 33, 221, 254, 4, 223, - 5, 148, 37, 16, 33, 222, 0, 4, 223, 5, 148, 37, 16, 33, 248, 226, 148, - 37, 16, 33, 230, 247, 148, 37, 16, 206, 206, 211, 77, 235, 82, 148, 37, - 16, 206, 206, 211, 77, 238, 22, 148, 37, 16, 206, 206, 242, 219, 197, 80, - 148, 37, 16, 206, 206, 242, 219, 199, 211, 148, 37, 16, 219, 222, 211, - 77, 210, 160, 148, 37, 16, 219, 222, 211, 77, 208, 149, 148, 37, 16, 219, - 222, 242, 219, 209, 104, 148, 37, 16, 219, 222, 242, 219, 209, 86, 148, - 37, 16, 219, 222, 211, 77, 209, 132, 148, 210, 146, 220, 19, 148, 210, - 176, 220, 19, 200, 197, 3, 210, 142, 200, 197, 3, 210, 156, 200, 197, 3, - 210, 152, 200, 197, 1, 65, 200, 197, 1, 68, 200, 197, 1, 66, 200, 197, 1, - 252, 25, 200, 197, 1, 74, 200, 197, 1, 71, 200, 197, 1, 233, 242, 200, - 197, 1, 155, 200, 197, 1, 208, 96, 200, 197, 1, 231, 240, 200, 197, 1, - 214, 68, 200, 197, 1, 247, 160, 200, 197, 1, 223, 32, 200, 197, 1, 191, - 123, 200, 197, 1, 212, 101, 200, 197, 1, 190, 190, 200, 197, 1, 238, 32, - 200, 197, 1, 180, 200, 197, 1, 168, 200, 197, 1, 233, 109, 200, 197, 1, - 195, 188, 200, 197, 1, 249, 153, 200, 197, 1, 174, 200, 197, 1, 170, 200, - 197, 1, 165, 200, 197, 1, 173, 200, 197, 1, 193, 190, 200, 197, 1, 188, - 200, 197, 1, 192, 220, 200, 197, 1, 140, 200, 197, 120, 3, 210, 172, 200, - 197, 120, 3, 210, 144, 200, 197, 120, 3, 210, 141, 200, 197, 18, 3, 210, - 159, 200, 197, 18, 3, 210, 140, 200, 197, 18, 3, 210, 165, 200, 197, 18, - 3, 210, 151, 200, 197, 18, 3, 210, 173, 200, 197, 18, 3, 210, 161, 200, - 197, 3, 210, 177, 200, 197, 3, 195, 40, 200, 197, 120, 3, 210, 100, 174, - 200, 197, 120, 3, 210, 100, 193, 190, 200, 197, 1, 221, 215, 200, 197, 1, - 200, 126, 200, 197, 17, 191, 77, 200, 197, 17, 107, 200, 197, 17, 109, - 200, 197, 17, 138, 200, 197, 17, 134, 200, 197, 17, 149, 200, 197, 17, - 169, 200, 197, 17, 175, 200, 197, 17, 171, 200, 197, 17, 178, 200, 197, - 250, 145, 200, 197, 1, 207, 21, 200, 197, 1, 219, 172, 200, 197, 1, 248, - 203, 200, 197, 1, 53, 222, 152, 200, 197, 1, 53, 218, 168, 249, 63, 1, - 65, 249, 63, 1, 202, 182, 65, 249, 63, 1, 140, 249, 63, 1, 202, 182, 140, - 249, 63, 1, 217, 85, 140, 249, 63, 1, 249, 153, 249, 63, 1, 222, 61, 249, - 153, 249, 63, 1, 168, 249, 63, 1, 202, 182, 168, 249, 63, 1, 180, 249, - 63, 1, 217, 85, 180, 249, 63, 1, 193, 190, 249, 63, 1, 202, 182, 193, - 190, 249, 63, 1, 210, 193, 193, 190, 249, 63, 1, 231, 240, 249, 63, 1, - 202, 182, 231, 240, 249, 63, 1, 223, 32, 249, 63, 1, 238, 32, 249, 63, 1, - 165, 249, 63, 1, 202, 182, 165, 249, 63, 1, 174, 249, 63, 1, 202, 182, - 174, 249, 63, 1, 202, 0, 190, 190, 249, 63, 1, 213, 16, 190, 190, 249, - 63, 1, 188, 249, 63, 1, 202, 182, 188, 249, 63, 1, 217, 85, 188, 249, 63, - 1, 170, 249, 63, 1, 202, 182, 170, 249, 63, 1, 214, 68, 249, 63, 1, 173, - 249, 63, 1, 202, 182, 173, 249, 63, 1, 212, 101, 249, 63, 1, 247, 160, - 249, 63, 1, 214, 162, 249, 63, 1, 217, 11, 249, 63, 1, 68, 249, 63, 1, - 66, 249, 63, 3, 198, 82, 249, 63, 18, 3, 71, 249, 63, 18, 3, 210, 193, - 71, 249, 63, 18, 3, 234, 188, 249, 63, 18, 3, 68, 249, 63, 18, 3, 222, - 61, 68, 249, 63, 18, 3, 74, 249, 63, 18, 3, 222, 61, 74, 249, 63, 18, 3, - 66, 249, 63, 18, 3, 126, 40, 202, 182, 188, 249, 63, 120, 3, 214, 70, - 249, 63, 120, 3, 230, 116, 249, 63, 210, 154, 249, 63, 210, 150, 249, 63, - 16, 248, 165, 215, 7, 216, 163, 249, 63, 16, 248, 165, 209, 138, 249, 63, - 16, 248, 165, 222, 179, 249, 63, 16, 248, 165, 210, 154, 219, 183, 1, - 155, 219, 183, 1, 221, 94, 219, 183, 1, 221, 215, 219, 183, 1, 231, 240, - 219, 183, 1, 231, 19, 219, 183, 1, 214, 68, 219, 183, 1, 247, 160, 219, - 183, 1, 247, 1, 219, 183, 1, 223, 32, 219, 183, 1, 212, 101, 219, 183, 1, - 190, 190, 219, 183, 1, 199, 49, 219, 183, 1, 238, 32, 219, 183, 1, 180, - 219, 183, 1, 168, 219, 183, 1, 209, 110, 219, 183, 1, 209, 228, 219, 183, - 1, 233, 109, 219, 183, 1, 232, 219, 219, 183, 1, 249, 153, 219, 183, 1, - 248, 140, 219, 183, 1, 174, 219, 183, 1, 216, 19, 219, 183, 1, 197, 168, - 219, 183, 1, 197, 157, 219, 183, 1, 235, 35, 219, 183, 1, 170, 219, 183, - 1, 165, 219, 183, 1, 173, 219, 183, 1, 140, 219, 183, 1, 229, 111, 219, - 183, 1, 195, 188, 219, 183, 1, 188, 219, 183, 1, 203, 165, 219, 183, 1, - 193, 190, 219, 183, 1, 65, 219, 183, 200, 239, 1, 170, 219, 183, 200, - 239, 1, 165, 219, 183, 18, 3, 252, 206, 219, 183, 18, 3, 68, 219, 183, - 18, 3, 74, 219, 183, 18, 3, 211, 87, 219, 183, 18, 3, 66, 219, 183, 18, - 3, 196, 30, 219, 183, 18, 3, 71, 219, 183, 120, 3, 222, 152, 219, 183, - 120, 3, 218, 168, 219, 183, 120, 3, 172, 219, 183, 120, 3, 215, 61, 219, - 183, 120, 3, 210, 236, 219, 183, 120, 3, 146, 219, 183, 120, 3, 200, 43, - 219, 183, 120, 3, 212, 73, 219, 183, 120, 3, 222, 83, 219, 183, 3, 207, - 139, 219, 183, 3, 212, 141, 219, 183, 208, 152, 199, 247, 219, 183, 208, - 152, 212, 85, 198, 196, 199, 247, 219, 183, 208, 152, 247, 10, 219, 183, - 208, 152, 197, 149, 247, 10, 219, 183, 208, 152, 197, 148, 219, 183, 17, - 191, 77, 219, 183, 17, 107, 219, 183, 17, 109, 219, 183, 17, 138, 219, - 183, 17, 134, 219, 183, 17, 149, 219, 183, 17, 169, 219, 183, 17, 175, - 219, 183, 17, 171, 219, 183, 17, 178, 219, 183, 1, 197, 132, 219, 183, 1, - 197, 120, 219, 183, 1, 237, 191, 211, 121, 243, 88, 17, 191, 77, 211, - 121, 243, 88, 17, 107, 211, 121, 243, 88, 17, 109, 211, 121, 243, 88, 17, - 138, 211, 121, 243, 88, 17, 134, 211, 121, 243, 88, 17, 149, 211, 121, - 243, 88, 17, 169, 211, 121, 243, 88, 17, 175, 211, 121, 243, 88, 17, 171, - 211, 121, 243, 88, 17, 178, 211, 121, 243, 88, 1, 173, 211, 121, 243, 88, - 1, 250, 182, 211, 121, 243, 88, 1, 251, 253, 211, 121, 243, 88, 1, 251, - 122, 211, 121, 243, 88, 1, 251, 207, 211, 121, 243, 88, 1, 220, 125, 211, - 121, 243, 88, 1, 252, 168, 211, 121, 243, 88, 1, 252, 169, 211, 121, 243, - 88, 1, 252, 167, 211, 121, 243, 88, 1, 252, 161, 211, 121, 243, 88, 1, - 219, 146, 211, 121, 243, 88, 1, 223, 68, 211, 121, 243, 88, 1, 223, 200, - 211, 121, 243, 88, 1, 223, 90, 211, 121, 243, 88, 1, 223, 77, 211, 121, - 243, 88, 1, 218, 225, 211, 121, 243, 88, 1, 196, 160, 211, 121, 243, 88, - 1, 196, 158, 211, 121, 243, 88, 1, 196, 83, 211, 121, 243, 88, 1, 196, - 21, 211, 121, 243, 88, 1, 219, 238, 211, 121, 243, 88, 1, 234, 56, 211, - 121, 243, 88, 1, 234, 191, 211, 121, 243, 88, 1, 234, 103, 211, 121, 243, - 88, 1, 234, 26, 211, 121, 243, 88, 1, 219, 43, 211, 121, 243, 88, 1, 211, - 24, 211, 121, 243, 88, 1, 211, 178, 211, 121, 243, 88, 1, 211, 9, 211, - 121, 243, 88, 1, 211, 136, 211, 121, 243, 88, 215, 156, 197, 97, 211, - 121, 243, 88, 231, 235, 197, 98, 211, 121, 243, 88, 215, 150, 197, 98, - 211, 121, 243, 88, 207, 66, 211, 121, 243, 88, 209, 226, 211, 121, 243, - 88, 251, 244, 211, 121, 243, 88, 208, 152, 215, 146, 211, 121, 243, 88, - 208, 152, 55, 215, 146, 38, 2, 1, 206, 113, 195, 153, 38, 2, 1, 219, 12, - 237, 146, 38, 2, 1, 214, 215, 74, 38, 2, 1, 193, 78, 234, 22, 38, 2, 1, - 199, 200, 199, 145, 38, 2, 1, 198, 221, 199, 145, 38, 2, 1, 199, 200, - 230, 17, 56, 38, 2, 1, 199, 200, 192, 95, 38, 2, 1, 196, 108, 196, 128, - 101, 215, 157, 6, 1, 251, 132, 101, 215, 157, 6, 1, 249, 101, 101, 215, - 157, 6, 1, 231, 210, 101, 215, 157, 6, 1, 236, 150, 101, 215, 157, 6, 1, - 234, 103, 101, 215, 157, 6, 1, 195, 49, 101, 215, 157, 6, 1, 191, 80, - 101, 215, 157, 6, 1, 199, 193, 101, 215, 157, 6, 1, 223, 162, 101, 215, - 157, 6, 1, 222, 87, 101, 215, 157, 6, 1, 220, 7, 101, 215, 157, 6, 1, - 217, 90, 101, 215, 157, 6, 1, 214, 216, 101, 215, 157, 6, 1, 211, 104, - 101, 215, 157, 6, 1, 210, 131, 101, 215, 157, 6, 1, 191, 67, 101, 215, - 157, 6, 1, 207, 163, 101, 215, 157, 6, 1, 205, 142, 101, 215, 157, 6, 1, - 199, 179, 101, 215, 157, 6, 1, 196, 113, 101, 215, 157, 6, 1, 209, 220, - 101, 215, 157, 6, 1, 221, 200, 101, 215, 157, 6, 1, 231, 82, 101, 215, - 157, 6, 1, 208, 81, 101, 215, 157, 6, 1, 203, 69, 101, 215, 157, 6, 1, - 243, 81, 101, 215, 157, 6, 1, 247, 128, 101, 215, 157, 6, 1, 222, 234, - 101, 215, 157, 6, 1, 243, 18, 101, 215, 157, 6, 1, 246, 241, 101, 215, - 157, 6, 1, 192, 218, 101, 215, 157, 6, 1, 222, 249, 101, 215, 157, 6, 1, - 230, 87, 101, 215, 157, 6, 1, 229, 245, 101, 215, 157, 6, 1, 229, 145, - 101, 215, 157, 6, 1, 193, 125, 101, 215, 157, 6, 1, 230, 19, 101, 215, - 157, 6, 1, 229, 11, 101, 215, 157, 6, 1, 233, 23, 101, 215, 157, 6, 1, - 192, 14, 101, 215, 157, 6, 1, 234, 123, 101, 215, 157, 6, 1, 153, 231, - 210, 101, 215, 157, 6, 1, 251, 230, 101, 215, 157, 6, 1, 252, 14, 101, - 215, 157, 6, 1, 230, 17, 56, 101, 215, 157, 6, 1, 220, 116, 56, 200, 197, - 208, 152, 248, 165, 200, 166, 200, 197, 208, 152, 248, 165, 210, 155, - 200, 197, 208, 152, 248, 165, 208, 139, 200, 197, 208, 152, 248, 165, - 247, 145, 200, 197, 208, 152, 248, 165, 219, 173, 205, 121, 200, 197, - 208, 152, 248, 165, 222, 142, 205, 121, 200, 197, 208, 152, 248, 165, - 238, 33, 205, 121, 200, 197, 208, 152, 248, 165, 249, 154, 205, 121, 195, - 150, 163, 222, 57, 195, 150, 163, 203, 130, 195, 150, 163, 208, 225, 195, - 150, 3, 213, 187, 195, 150, 3, 192, 117, 216, 82, 200, 156, 195, 150, - 163, 192, 117, 251, 249, 223, 149, 200, 156, 195, 150, 163, 192, 117, - 223, 149, 200, 156, 195, 150, 163, 192, 117, 222, 45, 223, 149, 200, 156, - 195, 150, 163, 247, 122, 60, 195, 150, 163, 192, 117, 222, 45, 223, 149, - 200, 157, 205, 88, 195, 150, 163, 55, 200, 156, 195, 150, 163, 197, 225, - 200, 156, 195, 150, 163, 222, 45, 251, 73, 195, 150, 163, 75, 60, 195, - 150, 163, 105, 185, 60, 195, 150, 163, 115, 185, 60, 195, 150, 163, 206, - 196, 222, 56, 223, 149, 200, 156, 195, 150, 163, 250, 179, 223, 149, 200, - 156, 195, 150, 3, 195, 36, 200, 156, 195, 150, 3, 195, 36, 196, 154, 195, - 150, 3, 207, 18, 195, 36, 196, 154, 195, 150, 3, 195, 36, 251, 73, 195, - 150, 3, 207, 18, 195, 36, 251, 73, 195, 150, 3, 195, 36, 196, 155, 4, - 199, 215, 195, 150, 3, 195, 36, 251, 74, 4, 199, 215, 195, 150, 3, 251, - 72, 251, 88, 195, 150, 3, 251, 72, 249, 120, 195, 150, 3, 251, 72, 195, - 178, 195, 150, 3, 251, 72, 195, 179, 4, 199, 215, 195, 150, 3, 198, 126, - 195, 150, 3, 229, 180, 179, 251, 71, 195, 150, 3, 179, 251, 71, 195, 150, - 3, 206, 70, 179, 251, 71, 195, 150, 3, 251, 72, 196, 162, 215, 136, 195, - 150, 3, 251, 10, 195, 150, 3, 206, 122, 251, 10, 195, 150, 163, 247, 122, - 58, 195, 150, 3, 222, 237, 195, 150, 3, 196, 75, 195, 150, 3, 250, 177, - 195, 150, 163, 206, 189, 58, 195, 150, 163, 55, 206, 189, 58, 195, 150, - 3, 55, 251, 72, 251, 88, 8, 1, 2, 6, 65, 8, 1, 2, 6, 252, 25, 8, 2, 1, - 153, 252, 25, 8, 1, 2, 6, 249, 82, 250, 120, 8, 1, 2, 6, 247, 193, 8, 1, - 2, 6, 238, 127, 8, 1, 2, 6, 233, 248, 8, 1, 2, 6, 71, 8, 2, 1, 153, 211, - 77, 71, 8, 2, 1, 153, 68, 8, 1, 2, 6, 223, 35, 8, 1, 2, 6, 222, 152, 8, - 1, 2, 6, 220, 143, 4, 106, 8, 1, 2, 6, 218, 168, 8, 1, 2, 6, 207, 18, - 215, 61, 8, 1, 2, 6, 74, 8, 1, 2, 6, 211, 77, 74, 8, 2, 1, 202, 206, 74, - 8, 2, 1, 202, 206, 211, 77, 74, 8, 2, 1, 202, 206, 187, 4, 106, 8, 2, 1, - 153, 211, 151, 8, 1, 2, 6, 211, 19, 8, 2, 1, 198, 54, 132, 74, 8, 2, 1, - 248, 77, 132, 74, 8, 1, 2, 6, 210, 236, 8, 1, 2, 6, 207, 18, 146, 8, 1, - 2, 6, 153, 146, 8, 1, 2, 6, 200, 43, 8, 1, 2, 6, 66, 8, 2, 1, 202, 206, - 66, 8, 2, 1, 202, 206, 237, 40, 66, 8, 2, 1, 202, 206, 153, 218, 168, 8, - 1, 2, 6, 196, 12, 8, 1, 2, 6, 193, 224, 8, 1, 2, 6, 191, 166, 8, 1, 2, 6, - 233, 178, 8, 1, 195, 20, 220, 8, 201, 216, 8, 1, 251, 230, 35, 1, 2, 6, - 231, 211, 35, 1, 2, 6, 220, 31, 35, 1, 2, 6, 209, 185, 35, 1, 2, 6, 207, - 3, 35, 1, 2, 6, 208, 176, 38, 1, 2, 6, 234, 140, 52, 1, 6, 65, 52, 1, 6, - 252, 25, 52, 1, 6, 250, 120, 52, 1, 6, 249, 82, 250, 120, 52, 1, 6, 238, - 127, 52, 1, 6, 71, 52, 1, 6, 207, 18, 71, 52, 1, 6, 232, 51, 52, 1, 6, - 230, 116, 52, 1, 6, 68, 52, 1, 6, 223, 35, 52, 1, 6, 222, 152, 52, 1, 6, - 172, 52, 1, 6, 218, 168, 52, 1, 6, 215, 61, 52, 1, 6, 207, 18, 215, 61, - 52, 1, 6, 74, 52, 1, 6, 211, 19, 52, 1, 6, 210, 236, 52, 1, 6, 146, 52, - 1, 6, 200, 43, 52, 1, 6, 66, 52, 1, 6, 193, 224, 52, 1, 2, 65, 52, 1, 2, - 153, 65, 52, 1, 2, 251, 160, 52, 1, 2, 153, 252, 25, 52, 1, 2, 250, 120, - 52, 1, 2, 238, 127, 52, 1, 2, 71, 52, 1, 2, 205, 86, 52, 1, 2, 211, 77, - 71, 52, 1, 2, 153, 211, 77, 71, 52, 1, 2, 232, 51, 52, 1, 2, 153, 68, 52, - 1, 2, 222, 152, 52, 1, 2, 218, 168, 52, 1, 2, 234, 88, 52, 1, 2, 74, 52, - 1, 2, 211, 77, 74, 52, 1, 2, 198, 54, 132, 74, 52, 1, 2, 248, 77, 132, - 74, 52, 1, 2, 210, 236, 52, 1, 2, 200, 43, 52, 1, 2, 66, 52, 1, 2, 202, - 206, 66, 52, 1, 2, 153, 218, 168, 52, 1, 2, 196, 12, 52, 1, 2, 251, 230, - 52, 1, 2, 248, 212, 52, 1, 2, 35, 231, 211, 52, 1, 2, 237, 106, 52, 1, 2, - 35, 209, 211, 52, 1, 2, 243, 95, 8, 200, 230, 2, 1, 68, 8, 200, 230, 2, - 1, 146, 8, 200, 230, 2, 1, 66, 8, 200, 230, 2, 1, 196, 12, 35, 200, 230, - 2, 1, 248, 212, 35, 200, 230, 2, 1, 231, 211, 35, 200, 230, 2, 1, 207, 3, - 35, 200, 230, 2, 1, 209, 211, 35, 200, 230, 2, 1, 243, 95, 8, 2, 1, 196, - 152, 8, 2, 1, 78, 4, 82, 198, 152, 8, 2, 1, 238, 128, 4, 82, 198, 152, 8, - 2, 1, 233, 176, 4, 82, 198, 152, 8, 2, 1, 218, 169, 4, 82, 198, 152, 8, - 2, 1, 215, 62, 4, 82, 198, 152, 8, 2, 1, 210, 237, 4, 82, 198, 152, 8, 2, - 1, 207, 222, 4, 82, 198, 152, 8, 2, 1, 207, 222, 4, 232, 234, 23, 82, - 198, 152, 8, 2, 1, 206, 9, 4, 82, 198, 152, 8, 2, 1, 200, 44, 4, 82, 198, - 152, 8, 2, 1, 191, 167, 4, 82, 198, 152, 8, 2, 1, 153, 232, 51, 52, 1, - 38, 234, 103, 8, 2, 1, 223, 115, 232, 51, 8, 2, 1, 199, 52, 4, 201, 32, - 8, 2, 6, 1, 228, 74, 4, 106, 8, 2, 1, 223, 84, 4, 106, 8, 2, 1, 210, 237, - 4, 106, 8, 2, 6, 1, 126, 4, 106, 8, 2, 1, 196, 71, 4, 106, 8, 2, 1, 78, - 4, 210, 192, 102, 8, 2, 1, 238, 128, 4, 210, 192, 102, 8, 2, 1, 233, 176, - 4, 210, 192, 102, 8, 2, 1, 232, 52, 4, 210, 192, 102, 8, 2, 1, 222, 153, - 4, 210, 192, 102, 8, 2, 1, 220, 143, 4, 210, 192, 102, 8, 2, 1, 218, 169, - 4, 210, 192, 102, 8, 2, 1, 215, 62, 4, 210, 192, 102, 8, 2, 1, 210, 237, - 4, 210, 192, 102, 8, 2, 1, 207, 222, 4, 210, 192, 102, 8, 2, 1, 206, 9, - 4, 210, 192, 102, 8, 2, 1, 234, 13, 4, 210, 192, 102, 8, 2, 1, 196, 13, - 4, 210, 192, 102, 8, 2, 1, 192, 236, 4, 210, 192, 102, 8, 2, 1, 191, 167, - 4, 210, 192, 102, 8, 2, 1, 42, 4, 207, 24, 102, 8, 2, 1, 251, 161, 4, - 207, 24, 102, 8, 2, 1, 238, 128, 4, 228, 251, 23, 199, 215, 8, 2, 1, 235, - 15, 4, 207, 24, 102, 8, 2, 1, 211, 77, 235, 15, 4, 207, 24, 102, 8, 2, 1, - 207, 18, 211, 77, 235, 15, 4, 207, 24, 102, 8, 2, 1, 205, 87, 4, 207, 24, - 102, 8, 2, 1, 228, 74, 4, 207, 24, 102, 8, 2, 1, 211, 77, 187, 4, 207, - 24, 102, 8, 2, 1, 234, 13, 4, 207, 24, 102, 8, 2, 1, 126, 4, 207, 24, - 102, 8, 2, 1, 233, 179, 4, 207, 24, 102, 52, 1, 2, 153, 251, 160, 52, 1, - 2, 247, 193, 52, 1, 2, 247, 194, 4, 238, 175, 52, 1, 2, 233, 248, 52, 1, - 2, 207, 18, 211, 77, 71, 52, 1, 2, 233, 175, 52, 1, 2, 236, 139, 223, 36, - 4, 106, 52, 1, 2, 27, 232, 51, 52, 1, 2, 153, 230, 116, 52, 1, 2, 228, - 74, 4, 106, 52, 1, 2, 223, 83, 52, 1, 2, 6, 68, 52, 1, 2, 6, 228, 74, 4, - 106, 52, 1, 2, 223, 36, 4, 238, 212, 52, 1, 2, 220, 143, 4, 207, 24, 102, - 52, 1, 2, 220, 143, 4, 210, 192, 102, 52, 1, 2, 6, 172, 52, 1, 2, 218, - 169, 4, 102, 52, 1, 2, 153, 218, 169, 4, 179, 219, 212, 52, 1, 2, 215, - 62, 4, 45, 102, 52, 1, 2, 215, 62, 4, 207, 24, 102, 52, 1, 2, 6, 215, 61, - 52, 1, 2, 249, 82, 74, 52, 1, 2, 209, 211, 52, 1, 2, 206, 9, 4, 102, 52, - 1, 2, 234, 12, 52, 1, 2, 200, 44, 4, 210, 192, 102, 52, 1, 2, 126, 164, - 52, 1, 2, 196, 70, 52, 1, 2, 6, 66, 52, 1, 2, 196, 13, 4, 102, 52, 1, 2, - 153, 196, 12, 52, 1, 2, 191, 166, 52, 1, 2, 191, 167, 4, 207, 24, 102, - 52, 1, 2, 191, 167, 4, 238, 175, 52, 1, 2, 233, 178, 52, 1, 2, 199, 15, - 33, 235, 138, 230, 211, 252, 60, 33, 235, 138, 252, 47, 252, 60, 33, 202, - 59, 60, 33, 200, 164, 77, 33, 217, 145, 33, 230, 208, 33, 217, 143, 33, - 252, 44, 33, 230, 209, 33, 252, 45, 33, 8, 2, 1, 207, 222, 60, 33, 248, - 35, 33, 217, 144, 33, 55, 243, 2, 58, 33, 211, 139, 58, 33, 191, 21, 60, - 33, 223, 69, 60, 33, 196, 63, 58, 33, 196, 46, 58, 33, 8, 2, 1, 232, 203, - 211, 77, 42, 58, 33, 8, 2, 1, 252, 25, 33, 8, 2, 1, 251, 68, 33, 8, 2, 1, - 250, 146, 33, 8, 2, 1, 247, 194, 247, 35, 33, 8, 2, 1, 223, 115, 238, - 127, 33, 8, 2, 1, 233, 248, 33, 8, 2, 1, 232, 51, 33, 8, 1, 2, 6, 232, - 51, 33, 8, 2, 1, 222, 152, 33, 8, 2, 1, 172, 33, 8, 1, 2, 6, 172, 33, 8, - 1, 2, 6, 218, 168, 33, 8, 2, 1, 215, 61, 33, 8, 1, 2, 6, 215, 61, 33, 8, - 1, 2, 6, 146, 33, 8, 2, 1, 207, 222, 206, 116, 33, 8, 2, 1, 206, 8, 33, - 8, 2, 1, 179, 206, 8, 33, 8, 2, 1, 191, 166, 33, 8, 2, 1, 251, 160, 33, - 8, 2, 1, 250, 120, 33, 8, 2, 1, 248, 212, 33, 8, 2, 1, 205, 86, 33, 8, 2, - 1, 233, 175, 33, 8, 2, 1, 220, 143, 4, 55, 82, 198, 152, 33, 8, 2, 1, - 187, 4, 156, 247, 23, 106, 33, 8, 2, 1, 210, 236, 33, 8, 2, 1, 234, 12, - 33, 8, 2, 1, 126, 4, 156, 247, 23, 106, 33, 8, 2, 1, 193, 224, 33, 8, 2, - 1, 42, 4, 237, 42, 33, 8, 2, 1, 187, 4, 237, 42, 33, 8, 2, 1, 126, 4, - 237, 42, 33, 133, 199, 229, 58, 33, 222, 36, 93, 183, 33, 222, 36, 93, - 219, 224, 33, 75, 93, 219, 224, 33, 193, 78, 223, 93, 248, 29, 60, 33, - 75, 248, 233, 219, 224, 33, 237, 115, 77, 33, 55, 223, 93, 248, 37, 60, - 33, 251, 165, 234, 45, 119, 60, 33, 45, 250, 236, 58, 33, 50, 250, 236, - 23, 144, 250, 236, 60, 8, 6, 1, 42, 4, 206, 189, 60, 8, 2, 1, 42, 4, 206, - 189, 60, 8, 6, 1, 78, 4, 75, 58, 8, 2, 1, 78, 4, 75, 58, 8, 6, 1, 78, 4, - 75, 60, 8, 2, 1, 78, 4, 75, 60, 8, 6, 1, 78, 4, 219, 113, 60, 8, 2, 1, - 78, 4, 219, 113, 60, 8, 6, 1, 247, 194, 4, 247, 36, 23, 252, 46, 8, 2, 1, - 247, 194, 4, 247, 36, 23, 252, 46, 8, 6, 1, 238, 128, 4, 75, 58, 8, 2, 1, - 238, 128, 4, 75, 58, 8, 6, 1, 238, 128, 4, 75, 60, 8, 2, 1, 238, 128, 4, - 75, 60, 8, 6, 1, 238, 128, 4, 219, 113, 60, 8, 2, 1, 238, 128, 4, 219, - 113, 60, 8, 6, 1, 238, 128, 4, 247, 35, 8, 2, 1, 238, 128, 4, 247, 35, 8, - 6, 1, 238, 128, 4, 243, 2, 60, 8, 2, 1, 238, 128, 4, 243, 2, 60, 8, 6, 1, - 235, 15, 4, 217, 147, 23, 230, 210, 8, 2, 1, 235, 15, 4, 217, 147, 23, - 230, 210, 8, 6, 1, 235, 15, 4, 217, 147, 23, 252, 46, 8, 2, 1, 235, 15, - 4, 217, 147, 23, 252, 46, 8, 6, 1, 235, 15, 4, 243, 2, 60, 8, 2, 1, 235, - 15, 4, 243, 2, 60, 8, 6, 1, 235, 15, 4, 198, 153, 60, 8, 2, 1, 235, 15, - 4, 198, 153, 60, 8, 6, 1, 235, 15, 4, 247, 36, 23, 248, 36, 8, 2, 1, 235, - 15, 4, 247, 36, 23, 248, 36, 8, 6, 1, 233, 176, 4, 75, 58, 8, 2, 1, 233, - 176, 4, 75, 58, 8, 6, 1, 232, 52, 4, 217, 146, 8, 2, 1, 232, 52, 4, 217, - 146, 8, 6, 1, 230, 117, 4, 75, 58, 8, 2, 1, 230, 117, 4, 75, 58, 8, 6, 1, - 230, 117, 4, 75, 60, 8, 2, 1, 230, 117, 4, 75, 60, 8, 6, 1, 230, 117, 4, - 237, 42, 8, 2, 1, 230, 117, 4, 237, 42, 8, 6, 1, 230, 117, 4, 247, 35, 8, - 2, 1, 230, 117, 4, 247, 35, 8, 6, 1, 230, 117, 4, 248, 37, 60, 8, 2, 1, - 230, 117, 4, 248, 37, 60, 8, 6, 1, 228, 74, 4, 198, 153, 60, 8, 2, 1, - 228, 74, 4, 198, 153, 60, 8, 6, 1, 228, 74, 4, 237, 43, 23, 252, 46, 8, - 2, 1, 228, 74, 4, 237, 43, 23, 252, 46, 8, 6, 1, 222, 153, 4, 252, 46, 8, - 2, 1, 222, 153, 4, 252, 46, 8, 6, 1, 222, 153, 4, 75, 60, 8, 2, 1, 222, - 153, 4, 75, 60, 8, 6, 1, 222, 153, 4, 219, 113, 60, 8, 2, 1, 222, 153, 4, - 219, 113, 60, 8, 6, 1, 220, 143, 4, 75, 60, 8, 2, 1, 220, 143, 4, 75, 60, - 8, 6, 1, 220, 143, 4, 75, 248, 233, 23, 217, 146, 8, 2, 1, 220, 143, 4, - 75, 248, 233, 23, 217, 146, 8, 6, 1, 220, 143, 4, 219, 113, 60, 8, 2, 1, - 220, 143, 4, 219, 113, 60, 8, 6, 1, 220, 143, 4, 243, 2, 60, 8, 2, 1, - 220, 143, 4, 243, 2, 60, 8, 6, 1, 218, 169, 4, 252, 46, 8, 2, 1, 218, - 169, 4, 252, 46, 8, 6, 1, 218, 169, 4, 75, 58, 8, 2, 1, 218, 169, 4, 75, - 58, 8, 6, 1, 218, 169, 4, 75, 60, 8, 2, 1, 218, 169, 4, 75, 60, 8, 6, 1, - 215, 62, 4, 75, 58, 8, 2, 1, 215, 62, 4, 75, 58, 8, 6, 1, 215, 62, 4, 75, - 60, 8, 2, 1, 215, 62, 4, 75, 60, 8, 6, 1, 215, 62, 4, 219, 113, 60, 8, 2, - 1, 215, 62, 4, 219, 113, 60, 8, 6, 1, 215, 62, 4, 243, 2, 60, 8, 2, 1, - 215, 62, 4, 243, 2, 60, 8, 6, 1, 187, 4, 198, 153, 23, 252, 46, 8, 2, 1, - 187, 4, 198, 153, 23, 252, 46, 8, 6, 1, 187, 4, 198, 153, 23, 237, 42, 8, - 2, 1, 187, 4, 198, 153, 23, 237, 42, 8, 6, 1, 187, 4, 217, 147, 23, 230, - 210, 8, 2, 1, 187, 4, 217, 147, 23, 230, 210, 8, 6, 1, 187, 4, 217, 147, - 23, 252, 46, 8, 2, 1, 187, 4, 217, 147, 23, 252, 46, 8, 6, 1, 210, 237, - 4, 252, 46, 8, 2, 1, 210, 237, 4, 252, 46, 8, 6, 1, 210, 237, 4, 75, 58, - 8, 2, 1, 210, 237, 4, 75, 58, 8, 6, 1, 207, 222, 4, 75, 58, 8, 2, 1, 207, - 222, 4, 75, 58, 8, 6, 1, 207, 222, 4, 75, 60, 8, 2, 1, 207, 222, 4, 75, - 60, 8, 6, 1, 207, 222, 4, 75, 248, 233, 23, 217, 146, 8, 2, 1, 207, 222, - 4, 75, 248, 233, 23, 217, 146, 8, 6, 1, 207, 222, 4, 219, 113, 60, 8, 2, - 1, 207, 222, 4, 219, 113, 60, 8, 6, 1, 206, 9, 4, 75, 58, 8, 2, 1, 206, - 9, 4, 75, 58, 8, 6, 1, 206, 9, 4, 75, 60, 8, 2, 1, 206, 9, 4, 75, 60, 8, - 6, 1, 206, 9, 4, 252, 47, 23, 75, 58, 8, 2, 1, 206, 9, 4, 252, 47, 23, - 75, 58, 8, 6, 1, 206, 9, 4, 247, 93, 23, 75, 58, 8, 2, 1, 206, 9, 4, 247, - 93, 23, 75, 58, 8, 6, 1, 206, 9, 4, 75, 248, 233, 23, 75, 58, 8, 2, 1, - 206, 9, 4, 75, 248, 233, 23, 75, 58, 8, 6, 1, 200, 44, 4, 75, 58, 8, 2, - 1, 200, 44, 4, 75, 58, 8, 6, 1, 200, 44, 4, 75, 60, 8, 2, 1, 200, 44, 4, - 75, 60, 8, 6, 1, 200, 44, 4, 219, 113, 60, 8, 2, 1, 200, 44, 4, 219, 113, - 60, 8, 6, 1, 200, 44, 4, 243, 2, 60, 8, 2, 1, 200, 44, 4, 243, 2, 60, 8, - 6, 1, 126, 4, 237, 43, 60, 8, 2, 1, 126, 4, 237, 43, 60, 8, 6, 1, 126, 4, - 198, 153, 60, 8, 2, 1, 126, 4, 198, 153, 60, 8, 6, 1, 126, 4, 243, 2, 60, - 8, 2, 1, 126, 4, 243, 2, 60, 8, 6, 1, 126, 4, 198, 153, 23, 252, 46, 8, - 2, 1, 126, 4, 198, 153, 23, 252, 46, 8, 6, 1, 126, 4, 217, 147, 23, 237, - 42, 8, 2, 1, 126, 4, 217, 147, 23, 237, 42, 8, 6, 1, 196, 13, 4, 198, - 152, 8, 2, 1, 196, 13, 4, 198, 152, 8, 6, 1, 196, 13, 4, 75, 60, 8, 2, 1, - 196, 13, 4, 75, 60, 8, 6, 1, 193, 225, 4, 230, 210, 8, 2, 1, 193, 225, 4, - 230, 210, 8, 6, 1, 193, 225, 4, 252, 46, 8, 2, 1, 193, 225, 4, 252, 46, - 8, 6, 1, 193, 225, 4, 237, 42, 8, 2, 1, 193, 225, 4, 237, 42, 8, 6, 1, - 193, 225, 4, 75, 58, 8, 2, 1, 193, 225, 4, 75, 58, 8, 6, 1, 193, 225, 4, - 75, 60, 8, 2, 1, 193, 225, 4, 75, 60, 8, 6, 1, 192, 236, 4, 75, 58, 8, 2, - 1, 192, 236, 4, 75, 58, 8, 6, 1, 192, 236, 4, 237, 42, 8, 2, 1, 192, 236, - 4, 237, 42, 8, 6, 1, 192, 160, 4, 75, 58, 8, 2, 1, 192, 160, 4, 75, 58, - 8, 6, 1, 191, 167, 4, 243, 1, 8, 2, 1, 191, 167, 4, 243, 1, 8, 6, 1, 191, - 167, 4, 75, 60, 8, 2, 1, 191, 167, 4, 75, 60, 8, 6, 1, 191, 167, 4, 219, - 113, 60, 8, 2, 1, 191, 167, 4, 219, 113, 60, 8, 2, 1, 230, 117, 4, 219, - 113, 60, 8, 2, 1, 200, 44, 4, 237, 42, 8, 2, 1, 193, 225, 4, 206, 189, - 58, 8, 2, 1, 192, 160, 4, 206, 189, 58, 8, 2, 1, 42, 4, 50, 132, 206, - 188, 8, 2, 1, 179, 206, 9, 4, 75, 58, 8, 2, 1, 179, 206, 9, 4, 237, 39, - 106, 8, 2, 1, 179, 206, 9, 4, 137, 106, 8, 6, 1, 203, 127, 206, 8, 8, 2, - 1, 237, 106, 8, 6, 1, 42, 4, 75, 60, 8, 2, 1, 42, 4, 75, 60, 8, 6, 1, 42, - 4, 228, 251, 58, 8, 2, 1, 42, 4, 228, 251, 58, 8, 6, 1, 42, 4, 243, 2, - 23, 252, 46, 8, 2, 1, 42, 4, 243, 2, 23, 252, 46, 8, 6, 1, 42, 4, 243, 2, - 23, 230, 210, 8, 2, 1, 42, 4, 243, 2, 23, 230, 210, 8, 6, 1, 42, 4, 243, - 2, 23, 228, 251, 58, 8, 2, 1, 42, 4, 243, 2, 23, 228, 251, 58, 8, 6, 1, - 42, 4, 243, 2, 23, 198, 152, 8, 2, 1, 42, 4, 243, 2, 23, 198, 152, 8, 6, - 1, 42, 4, 243, 2, 23, 75, 60, 8, 2, 1, 42, 4, 243, 2, 23, 75, 60, 8, 6, - 1, 42, 4, 248, 37, 23, 252, 46, 8, 2, 1, 42, 4, 248, 37, 23, 252, 46, 8, - 6, 1, 42, 4, 248, 37, 23, 230, 210, 8, 2, 1, 42, 4, 248, 37, 23, 230, - 210, 8, 6, 1, 42, 4, 248, 37, 23, 228, 251, 58, 8, 2, 1, 42, 4, 248, 37, - 23, 228, 251, 58, 8, 6, 1, 42, 4, 248, 37, 23, 198, 152, 8, 2, 1, 42, 4, - 248, 37, 23, 198, 152, 8, 6, 1, 42, 4, 248, 37, 23, 75, 60, 8, 2, 1, 42, - 4, 248, 37, 23, 75, 60, 8, 6, 1, 235, 15, 4, 75, 60, 8, 2, 1, 235, 15, 4, - 75, 60, 8, 6, 1, 235, 15, 4, 228, 251, 58, 8, 2, 1, 235, 15, 4, 228, 251, - 58, 8, 6, 1, 235, 15, 4, 198, 152, 8, 2, 1, 235, 15, 4, 198, 152, 8, 6, - 1, 235, 15, 4, 243, 2, 23, 252, 46, 8, 2, 1, 235, 15, 4, 243, 2, 23, 252, - 46, 8, 6, 1, 235, 15, 4, 243, 2, 23, 230, 210, 8, 2, 1, 235, 15, 4, 243, - 2, 23, 230, 210, 8, 6, 1, 235, 15, 4, 243, 2, 23, 228, 251, 58, 8, 2, 1, - 235, 15, 4, 243, 2, 23, 228, 251, 58, 8, 6, 1, 235, 15, 4, 243, 2, 23, - 198, 152, 8, 2, 1, 235, 15, 4, 243, 2, 23, 198, 152, 8, 6, 1, 235, 15, 4, - 243, 2, 23, 75, 60, 8, 2, 1, 235, 15, 4, 243, 2, 23, 75, 60, 8, 6, 1, - 228, 74, 4, 228, 251, 58, 8, 2, 1, 228, 74, 4, 228, 251, 58, 8, 6, 1, - 228, 74, 4, 75, 60, 8, 2, 1, 228, 74, 4, 75, 60, 8, 6, 1, 187, 4, 75, 60, - 8, 2, 1, 187, 4, 75, 60, 8, 6, 1, 187, 4, 228, 251, 58, 8, 2, 1, 187, 4, - 228, 251, 58, 8, 6, 1, 187, 4, 243, 2, 23, 252, 46, 8, 2, 1, 187, 4, 243, - 2, 23, 252, 46, 8, 6, 1, 187, 4, 243, 2, 23, 230, 210, 8, 2, 1, 187, 4, - 243, 2, 23, 230, 210, 8, 6, 1, 187, 4, 243, 2, 23, 228, 251, 58, 8, 2, 1, - 187, 4, 243, 2, 23, 228, 251, 58, 8, 6, 1, 187, 4, 243, 2, 23, 198, 152, - 8, 2, 1, 187, 4, 243, 2, 23, 198, 152, 8, 6, 1, 187, 4, 243, 2, 23, 75, - 60, 8, 2, 1, 187, 4, 243, 2, 23, 75, 60, 8, 6, 1, 187, 4, 228, 188, 23, - 252, 46, 8, 2, 1, 187, 4, 228, 188, 23, 252, 46, 8, 6, 1, 187, 4, 228, - 188, 23, 230, 210, 8, 2, 1, 187, 4, 228, 188, 23, 230, 210, 8, 6, 1, 187, - 4, 228, 188, 23, 228, 251, 58, 8, 2, 1, 187, 4, 228, 188, 23, 228, 251, - 58, 8, 6, 1, 187, 4, 228, 188, 23, 198, 152, 8, 2, 1, 187, 4, 228, 188, - 23, 198, 152, 8, 6, 1, 187, 4, 228, 188, 23, 75, 60, 8, 2, 1, 187, 4, - 228, 188, 23, 75, 60, 8, 6, 1, 126, 4, 75, 60, 8, 2, 1, 126, 4, 75, 60, - 8, 6, 1, 126, 4, 228, 251, 58, 8, 2, 1, 126, 4, 228, 251, 58, 8, 6, 1, - 126, 4, 228, 188, 23, 252, 46, 8, 2, 1, 126, 4, 228, 188, 23, 252, 46, 8, - 6, 1, 126, 4, 228, 188, 23, 230, 210, 8, 2, 1, 126, 4, 228, 188, 23, 230, - 210, 8, 6, 1, 126, 4, 228, 188, 23, 228, 251, 58, 8, 2, 1, 126, 4, 228, - 188, 23, 228, 251, 58, 8, 6, 1, 126, 4, 228, 188, 23, 198, 152, 8, 2, 1, - 126, 4, 228, 188, 23, 198, 152, 8, 6, 1, 126, 4, 228, 188, 23, 75, 60, 8, - 2, 1, 126, 4, 228, 188, 23, 75, 60, 8, 6, 1, 192, 160, 4, 230, 210, 8, 2, - 1, 192, 160, 4, 230, 210, 8, 6, 1, 192, 160, 4, 75, 60, 8, 2, 1, 192, - 160, 4, 75, 60, 8, 6, 1, 192, 160, 4, 228, 251, 58, 8, 2, 1, 192, 160, 4, - 228, 251, 58, 8, 6, 1, 192, 160, 4, 198, 152, 8, 2, 1, 192, 160, 4, 198, - 152, 8, 6, 1, 216, 83, 219, 74, 8, 2, 1, 216, 83, 219, 74, 8, 6, 1, 216, - 83, 196, 12, 8, 2, 1, 216, 83, 196, 12, 8, 6, 1, 192, 160, 4, 219, 4, 8, - 2, 1, 192, 160, 4, 219, 4, 35, 2, 1, 251, 161, 4, 208, 169, 35, 2, 1, - 251, 161, 4, 237, 212, 35, 2, 1, 251, 161, 4, 208, 170, 23, 195, 169, 35, - 2, 1, 251, 161, 4, 237, 213, 23, 195, 169, 35, 2, 1, 251, 161, 4, 208, - 170, 23, 210, 243, 35, 2, 1, 251, 161, 4, 237, 213, 23, 210, 243, 35, 2, - 1, 251, 161, 4, 208, 170, 23, 210, 4, 35, 2, 1, 251, 161, 4, 237, 213, - 23, 210, 4, 35, 6, 1, 251, 161, 4, 208, 169, 35, 6, 1, 251, 161, 4, 237, - 212, 35, 6, 1, 251, 161, 4, 208, 170, 23, 195, 169, 35, 6, 1, 251, 161, - 4, 237, 213, 23, 195, 169, 35, 6, 1, 251, 161, 4, 208, 170, 23, 210, 243, - 35, 6, 1, 251, 161, 4, 237, 213, 23, 210, 243, 35, 6, 1, 251, 161, 4, - 208, 170, 23, 210, 4, 35, 6, 1, 251, 161, 4, 237, 213, 23, 210, 4, 35, 2, - 1, 234, 48, 4, 208, 169, 35, 2, 1, 234, 48, 4, 237, 212, 35, 2, 1, 234, - 48, 4, 208, 170, 23, 195, 169, 35, 2, 1, 234, 48, 4, 237, 213, 23, 195, - 169, 35, 2, 1, 234, 48, 4, 208, 170, 23, 210, 243, 35, 2, 1, 234, 48, 4, - 237, 213, 23, 210, 243, 35, 6, 1, 234, 48, 4, 208, 169, 35, 6, 1, 234, - 48, 4, 237, 212, 35, 6, 1, 234, 48, 4, 208, 170, 23, 195, 169, 35, 6, 1, - 234, 48, 4, 237, 213, 23, 195, 169, 35, 6, 1, 234, 48, 4, 208, 170, 23, - 210, 243, 35, 6, 1, 234, 48, 4, 237, 213, 23, 210, 243, 35, 2, 1, 233, - 254, 4, 208, 169, 35, 2, 1, 233, 254, 4, 237, 212, 35, 2, 1, 233, 254, 4, - 208, 170, 23, 195, 169, 35, 2, 1, 233, 254, 4, 237, 213, 23, 195, 169, - 35, 2, 1, 233, 254, 4, 208, 170, 23, 210, 243, 35, 2, 1, 233, 254, 4, - 237, 213, 23, 210, 243, 35, 2, 1, 233, 254, 4, 208, 170, 23, 210, 4, 35, - 2, 1, 233, 254, 4, 237, 213, 23, 210, 4, 35, 6, 1, 233, 254, 4, 208, 169, - 35, 6, 1, 233, 254, 4, 237, 212, 35, 6, 1, 233, 254, 4, 208, 170, 23, - 195, 169, 35, 6, 1, 233, 254, 4, 237, 213, 23, 195, 169, 35, 6, 1, 233, - 254, 4, 208, 170, 23, 210, 243, 35, 6, 1, 233, 254, 4, 237, 213, 23, 210, - 243, 35, 6, 1, 233, 254, 4, 208, 170, 23, 210, 4, 35, 6, 1, 233, 254, 4, - 237, 213, 23, 210, 4, 35, 2, 1, 223, 84, 4, 208, 169, 35, 2, 1, 223, 84, - 4, 237, 212, 35, 2, 1, 223, 84, 4, 208, 170, 23, 195, 169, 35, 2, 1, 223, - 84, 4, 237, 213, 23, 195, 169, 35, 2, 1, 223, 84, 4, 208, 170, 23, 210, - 243, 35, 2, 1, 223, 84, 4, 237, 213, 23, 210, 243, 35, 2, 1, 223, 84, 4, - 208, 170, 23, 210, 4, 35, 2, 1, 223, 84, 4, 237, 213, 23, 210, 4, 35, 6, - 1, 223, 84, 4, 208, 169, 35, 6, 1, 223, 84, 4, 237, 212, 35, 6, 1, 223, - 84, 4, 208, 170, 23, 195, 169, 35, 6, 1, 223, 84, 4, 237, 213, 23, 195, - 169, 35, 6, 1, 223, 84, 4, 208, 170, 23, 210, 243, 35, 6, 1, 223, 84, 4, - 237, 213, 23, 210, 243, 35, 6, 1, 223, 84, 4, 208, 170, 23, 210, 4, 35, - 6, 1, 223, 84, 4, 237, 213, 23, 210, 4, 35, 2, 1, 211, 108, 4, 208, 169, - 35, 2, 1, 211, 108, 4, 237, 212, 35, 2, 1, 211, 108, 4, 208, 170, 23, - 195, 169, 35, 2, 1, 211, 108, 4, 237, 213, 23, 195, 169, 35, 2, 1, 211, - 108, 4, 208, 170, 23, 210, 243, 35, 2, 1, 211, 108, 4, 237, 213, 23, 210, - 243, 35, 6, 1, 211, 108, 4, 208, 169, 35, 6, 1, 211, 108, 4, 237, 212, - 35, 6, 1, 211, 108, 4, 208, 170, 23, 195, 169, 35, 6, 1, 211, 108, 4, - 237, 213, 23, 195, 169, 35, 6, 1, 211, 108, 4, 208, 170, 23, 210, 243, - 35, 6, 1, 211, 108, 4, 237, 213, 23, 210, 243, 35, 2, 1, 196, 71, 4, 208, - 169, 35, 2, 1, 196, 71, 4, 237, 212, 35, 2, 1, 196, 71, 4, 208, 170, 23, - 195, 169, 35, 2, 1, 196, 71, 4, 237, 213, 23, 195, 169, 35, 2, 1, 196, - 71, 4, 208, 170, 23, 210, 243, 35, 2, 1, 196, 71, 4, 237, 213, 23, 210, - 243, 35, 2, 1, 196, 71, 4, 208, 170, 23, 210, 4, 35, 2, 1, 196, 71, 4, - 237, 213, 23, 210, 4, 35, 6, 1, 196, 71, 4, 237, 212, 35, 6, 1, 196, 71, - 4, 237, 213, 23, 195, 169, 35, 6, 1, 196, 71, 4, 237, 213, 23, 210, 243, - 35, 6, 1, 196, 71, 4, 237, 213, 23, 210, 4, 35, 2, 1, 211, 111, 4, 208, - 169, 35, 2, 1, 211, 111, 4, 237, 212, 35, 2, 1, 211, 111, 4, 208, 170, - 23, 195, 169, 35, 2, 1, 211, 111, 4, 237, 213, 23, 195, 169, 35, 2, 1, - 211, 111, 4, 208, 170, 23, 210, 243, 35, 2, 1, 211, 111, 4, 237, 213, 23, - 210, 243, 35, 2, 1, 211, 111, 4, 208, 170, 23, 210, 4, 35, 2, 1, 211, - 111, 4, 237, 213, 23, 210, 4, 35, 6, 1, 211, 111, 4, 208, 169, 35, 6, 1, - 211, 111, 4, 237, 212, 35, 6, 1, 211, 111, 4, 208, 170, 23, 195, 169, 35, - 6, 1, 211, 111, 4, 237, 213, 23, 195, 169, 35, 6, 1, 211, 111, 4, 208, - 170, 23, 210, 243, 35, 6, 1, 211, 111, 4, 237, 213, 23, 210, 243, 35, 6, - 1, 211, 111, 4, 208, 170, 23, 210, 4, 35, 6, 1, 211, 111, 4, 237, 213, - 23, 210, 4, 35, 2, 1, 251, 161, 4, 195, 169, 35, 2, 1, 251, 161, 4, 210, - 243, 35, 2, 1, 234, 48, 4, 195, 169, 35, 2, 1, 234, 48, 4, 210, 243, 35, - 2, 1, 233, 254, 4, 195, 169, 35, 2, 1, 233, 254, 4, 210, 243, 35, 2, 1, - 223, 84, 4, 195, 169, 35, 2, 1, 223, 84, 4, 210, 243, 35, 2, 1, 211, 108, - 4, 195, 169, 35, 2, 1, 211, 108, 4, 210, 243, 35, 2, 1, 196, 71, 4, 195, - 169, 35, 2, 1, 196, 71, 4, 210, 243, 35, 2, 1, 211, 111, 4, 195, 169, 35, - 2, 1, 211, 111, 4, 210, 243, 35, 2, 1, 251, 161, 4, 208, 170, 23, 191, - 233, 35, 2, 1, 251, 161, 4, 237, 213, 23, 191, 233, 35, 2, 1, 251, 161, - 4, 208, 170, 23, 195, 170, 23, 191, 233, 35, 2, 1, 251, 161, 4, 237, 213, - 23, 195, 170, 23, 191, 233, 35, 2, 1, 251, 161, 4, 208, 170, 23, 210, - 244, 23, 191, 233, 35, 2, 1, 251, 161, 4, 237, 213, 23, 210, 244, 23, - 191, 233, 35, 2, 1, 251, 161, 4, 208, 170, 23, 210, 5, 23, 191, 233, 35, - 2, 1, 251, 161, 4, 237, 213, 23, 210, 5, 23, 191, 233, 35, 6, 1, 251, - 161, 4, 208, 170, 23, 208, 184, 35, 6, 1, 251, 161, 4, 237, 213, 23, 208, - 184, 35, 6, 1, 251, 161, 4, 208, 170, 23, 195, 170, 23, 208, 184, 35, 6, - 1, 251, 161, 4, 237, 213, 23, 195, 170, 23, 208, 184, 35, 6, 1, 251, 161, - 4, 208, 170, 23, 210, 244, 23, 208, 184, 35, 6, 1, 251, 161, 4, 237, 213, - 23, 210, 244, 23, 208, 184, 35, 6, 1, 251, 161, 4, 208, 170, 23, 210, 5, - 23, 208, 184, 35, 6, 1, 251, 161, 4, 237, 213, 23, 210, 5, 23, 208, 184, - 35, 2, 1, 233, 254, 4, 208, 170, 23, 191, 233, 35, 2, 1, 233, 254, 4, - 237, 213, 23, 191, 233, 35, 2, 1, 233, 254, 4, 208, 170, 23, 195, 170, - 23, 191, 233, 35, 2, 1, 233, 254, 4, 237, 213, 23, 195, 170, 23, 191, - 233, 35, 2, 1, 233, 254, 4, 208, 170, 23, 210, 244, 23, 191, 233, 35, 2, - 1, 233, 254, 4, 237, 213, 23, 210, 244, 23, 191, 233, 35, 2, 1, 233, 254, - 4, 208, 170, 23, 210, 5, 23, 191, 233, 35, 2, 1, 233, 254, 4, 237, 213, - 23, 210, 5, 23, 191, 233, 35, 6, 1, 233, 254, 4, 208, 170, 23, 208, 184, - 35, 6, 1, 233, 254, 4, 237, 213, 23, 208, 184, 35, 6, 1, 233, 254, 4, - 208, 170, 23, 195, 170, 23, 208, 184, 35, 6, 1, 233, 254, 4, 237, 213, - 23, 195, 170, 23, 208, 184, 35, 6, 1, 233, 254, 4, 208, 170, 23, 210, - 244, 23, 208, 184, 35, 6, 1, 233, 254, 4, 237, 213, 23, 210, 244, 23, - 208, 184, 35, 6, 1, 233, 254, 4, 208, 170, 23, 210, 5, 23, 208, 184, 35, - 6, 1, 233, 254, 4, 237, 213, 23, 210, 5, 23, 208, 184, 35, 2, 1, 211, - 111, 4, 208, 170, 23, 191, 233, 35, 2, 1, 211, 111, 4, 237, 213, 23, 191, - 233, 35, 2, 1, 211, 111, 4, 208, 170, 23, 195, 170, 23, 191, 233, 35, 2, - 1, 211, 111, 4, 237, 213, 23, 195, 170, 23, 191, 233, 35, 2, 1, 211, 111, - 4, 208, 170, 23, 210, 244, 23, 191, 233, 35, 2, 1, 211, 111, 4, 237, 213, - 23, 210, 244, 23, 191, 233, 35, 2, 1, 211, 111, 4, 208, 170, 23, 210, 5, - 23, 191, 233, 35, 2, 1, 211, 111, 4, 237, 213, 23, 210, 5, 23, 191, 233, - 35, 6, 1, 211, 111, 4, 208, 170, 23, 208, 184, 35, 6, 1, 211, 111, 4, - 237, 213, 23, 208, 184, 35, 6, 1, 211, 111, 4, 208, 170, 23, 195, 170, - 23, 208, 184, 35, 6, 1, 211, 111, 4, 237, 213, 23, 195, 170, 23, 208, - 184, 35, 6, 1, 211, 111, 4, 208, 170, 23, 210, 244, 23, 208, 184, 35, 6, - 1, 211, 111, 4, 237, 213, 23, 210, 244, 23, 208, 184, 35, 6, 1, 211, 111, - 4, 208, 170, 23, 210, 5, 23, 208, 184, 35, 6, 1, 211, 111, 4, 237, 213, - 23, 210, 5, 23, 208, 184, 35, 2, 1, 251, 161, 4, 194, 254, 35, 2, 1, 251, - 161, 4, 217, 146, 35, 2, 1, 251, 161, 4, 195, 170, 23, 191, 233, 35, 2, - 1, 251, 161, 4, 191, 233, 35, 2, 1, 251, 161, 4, 210, 244, 23, 191, 233, - 35, 2, 1, 251, 161, 4, 210, 4, 35, 2, 1, 251, 161, 4, 210, 5, 23, 191, - 233, 35, 6, 1, 251, 161, 4, 194, 254, 35, 6, 1, 251, 161, 4, 217, 146, - 35, 6, 1, 251, 161, 4, 195, 169, 35, 6, 1, 251, 161, 4, 210, 243, 35, 6, - 1, 251, 161, 4, 208, 184, 35, 221, 30, 35, 208, 184, 35, 208, 169, 35, - 210, 4, 35, 237, 36, 23, 210, 4, 35, 2, 1, 233, 254, 4, 195, 170, 23, - 191, 233, 35, 2, 1, 233, 254, 4, 191, 233, 35, 2, 1, 233, 254, 4, 210, - 244, 23, 191, 233, 35, 2, 1, 233, 254, 4, 210, 4, 35, 2, 1, 233, 254, 4, - 210, 5, 23, 191, 233, 35, 6, 1, 234, 48, 4, 195, 169, 35, 6, 1, 234, 48, - 4, 210, 243, 35, 6, 1, 233, 254, 4, 195, 169, 35, 6, 1, 233, 254, 4, 210, - 243, 35, 6, 1, 233, 254, 4, 208, 184, 35, 208, 170, 23, 195, 169, 35, - 208, 170, 23, 210, 243, 35, 208, 170, 23, 210, 4, 35, 2, 1, 223, 84, 4, - 194, 254, 35, 2, 1, 223, 84, 4, 217, 146, 35, 2, 1, 223, 84, 4, 237, 36, - 23, 195, 169, 35, 2, 1, 223, 84, 4, 237, 36, 23, 210, 243, 35, 2, 1, 223, - 84, 4, 210, 4, 35, 2, 1, 223, 84, 4, 237, 36, 23, 210, 4, 35, 6, 1, 223, - 84, 4, 194, 254, 35, 6, 1, 223, 84, 4, 217, 146, 35, 6, 1, 223, 84, 4, - 195, 169, 35, 6, 1, 223, 84, 4, 210, 243, 35, 237, 213, 23, 195, 169, 35, - 237, 213, 23, 210, 243, 35, 237, 213, 23, 210, 4, 35, 2, 1, 196, 71, 4, - 194, 254, 35, 2, 1, 196, 71, 4, 217, 146, 35, 2, 1, 196, 71, 4, 237, 36, - 23, 195, 169, 35, 2, 1, 196, 71, 4, 237, 36, 23, 210, 243, 35, 2, 1, 207, - 4, 4, 208, 169, 35, 2, 1, 207, 4, 4, 237, 212, 35, 2, 1, 196, 71, 4, 210, - 4, 35, 2, 1, 196, 71, 4, 237, 36, 23, 210, 4, 35, 6, 1, 196, 71, 4, 194, - 254, 35, 6, 1, 196, 71, 4, 217, 146, 35, 6, 1, 196, 71, 4, 195, 169, 35, - 6, 1, 196, 71, 4, 210, 243, 35, 6, 1, 207, 4, 4, 237, 212, 35, 237, 36, - 23, 195, 169, 35, 237, 36, 23, 210, 243, 35, 195, 169, 35, 2, 1, 211, - 111, 4, 195, 170, 23, 191, 233, 35, 2, 1, 211, 111, 4, 191, 233, 35, 2, - 1, 211, 111, 4, 210, 244, 23, 191, 233, 35, 2, 1, 211, 111, 4, 210, 4, - 35, 2, 1, 211, 111, 4, 210, 5, 23, 191, 233, 35, 6, 1, 211, 108, 4, 195, - 169, 35, 6, 1, 211, 108, 4, 210, 243, 35, 6, 1, 211, 111, 4, 195, 169, - 35, 6, 1, 211, 111, 4, 210, 243, 35, 6, 1, 211, 111, 4, 208, 184, 35, - 210, 243, 35, 237, 212, 234, 104, 208, 30, 234, 115, 208, 30, 234, 104, - 201, 247, 234, 115, 201, 247, 198, 219, 201, 247, 232, 126, 201, 247, - 202, 134, 201, 247, 233, 13, 201, 247, 208, 152, 201, 247, 199, 4, 201, - 247, 230, 79, 201, 247, 191, 78, 193, 75, 201, 247, 191, 78, 193, 75, - 213, 29, 191, 78, 193, 75, 222, 196, 219, 215, 77, 206, 199, 77, 228, 88, - 213, 30, 228, 88, 233, 13, 237, 215, 234, 104, 237, 215, 234, 115, 237, - 215, 228, 241, 164, 55, 81, 219, 112, 55, 130, 219, 112, 45, 202, 170, - 207, 252, 77, 50, 202, 170, 207, 252, 77, 202, 170, 218, 240, 207, 252, - 77, 202, 170, 229, 132, 207, 252, 77, 45, 55, 207, 252, 77, 50, 55, 207, - 252, 77, 55, 218, 240, 207, 252, 77, 55, 229, 132, 207, 252, 77, 238, 14, - 55, 238, 14, 247, 248, 197, 238, 247, 248, 91, 75, 219, 236, 105, 75, - 219, 236, 228, 241, 234, 120, 228, 86, 209, 61, 219, 113, 204, 10, 210, - 128, 204, 10, 219, 215, 234, 113, 206, 199, 234, 113, 209, 34, 236, 232, - 232, 144, 219, 215, 210, 252, 206, 199, 210, 252, 214, 215, 213, 37, 201, - 247, 210, 14, 216, 50, 56, 210, 14, 199, 96, 198, 230, 56, 208, 215, 55, - 208, 215, 197, 225, 208, 215, 207, 18, 208, 215, 207, 18, 55, 208, 215, - 207, 18, 197, 225, 208, 215, 247, 96, 202, 170, 219, 219, 251, 116, 207, - 252, 77, 202, 170, 206, 203, 251, 116, 207, 252, 77, 207, 83, 77, 55, - 233, 216, 77, 223, 102, 210, 254, 196, 100, 246, 240, 198, 178, 247, 97, - 223, 119, 209, 61, 250, 191, 228, 89, 247, 248, 232, 118, 202, 97, 45, - 51, 248, 54, 4, 208, 7, 50, 51, 248, 54, 4, 208, 7, 55, 208, 13, 77, 208, - 13, 233, 216, 77, 233, 216, 208, 13, 77, 198, 128, 3, 233, 255, 207, 18, - 209, 142, 56, 62, 118, 247, 248, 62, 96, 247, 248, 130, 250, 193, 207, - 18, 204, 25, 242, 220, 196, 77, 105, 250, 192, 251, 178, 195, 84, 242, - 72, 216, 35, 56, 200, 129, 237, 215, 223, 93, 196, 100, 232, 187, 208, - 152, 77, 115, 75, 208, 151, 208, 26, 208, 215, 232, 128, 75, 208, 151, - 232, 226, 75, 208, 151, 105, 75, 208, 151, 232, 128, 75, 77, 235, 138, - 238, 217, 197, 237, 81, 232, 128, 236, 138, 216, 213, 13, 201, 247, 193, - 23, 222, 196, 232, 77, 251, 44, 223, 91, 198, 144, 223, 91, 204, 10, 223, - 91, 209, 81, 219, 215, 223, 59, 206, 199, 223, 59, 232, 238, 201, 14, - 223, 59, 209, 34, 236, 232, 223, 59, 223, 132, 200, 75, 200, 147, 252, - 49, 200, 75, 200, 147, 223, 132, 9, 232, 146, 203, 133, 252, 49, 9, 232, - 146, 203, 133, 214, 208, 17, 203, 134, 213, 33, 17, 203, 134, 200, 182, - 191, 77, 200, 182, 8, 2, 1, 68, 200, 182, 134, 200, 182, 149, 200, 182, - 169, 200, 182, 175, 200, 182, 171, 200, 182, 178, 200, 182, 108, 56, 200, - 182, 216, 34, 200, 182, 234, 43, 56, 200, 182, 45, 210, 113, 200, 182, - 50, 210, 113, 200, 182, 8, 2, 1, 215, 61, 200, 230, 191, 77, 200, 230, - 107, 200, 230, 109, 200, 230, 138, 200, 230, 134, 200, 230, 149, 200, - 230, 169, 200, 230, 175, 200, 230, 171, 200, 230, 178, 200, 230, 108, 56, - 200, 230, 216, 34, 200, 230, 234, 43, 56, 200, 230, 45, 210, 113, 200, - 230, 50, 210, 113, 8, 200, 230, 2, 1, 65, 8, 200, 230, 2, 1, 71, 8, 200, - 230, 2, 1, 74, 8, 200, 230, 2, 1, 192, 235, 8, 200, 230, 2, 1, 205, 86, - 8, 200, 230, 2, 1, 230, 116, 8, 200, 230, 2, 1, 222, 152, 8, 200, 230, 2, - 1, 172, 8, 200, 230, 2, 1, 218, 168, 8, 200, 230, 2, 1, 215, 61, 8, 200, - 230, 2, 1, 210, 236, 8, 200, 230, 2, 1, 206, 8, 8, 200, 230, 2, 1, 200, - 43, 233, 233, 56, 242, 84, 56, 238, 200, 56, 232, 106, 232, 111, 56, 219, - 91, 56, 216, 51, 56, 214, 234, 56, 209, 245, 56, 206, 36, 56, 193, 31, - 56, 214, 80, 203, 99, 56, 236, 149, 56, 233, 234, 56, 221, 135, 56, 197, - 81, 56, 235, 116, 56, 231, 138, 210, 27, 56, 209, 242, 56, 230, 174, 56, - 250, 153, 56, 228, 166, 56, 247, 37, 56, 219, 81, 198, 33, 56, 201, 226, - 56, 199, 93, 56, 223, 147, 206, 36, 56, 197, 60, 219, 91, 56, 213, 19, - 87, 56, 217, 88, 56, 206, 59, 56, 220, 9, 56, 248, 147, 56, 202, 22, 56, - 33, 45, 230, 13, 58, 33, 50, 230, 13, 58, 33, 179, 81, 219, 113, 210, - 255, 33, 203, 40, 81, 219, 113, 210, 255, 33, 251, 85, 64, 58, 33, 242, - 221, 64, 58, 33, 45, 64, 58, 33, 50, 64, 58, 33, 206, 189, 210, 255, 33, - 242, 221, 206, 189, 210, 255, 33, 251, 85, 206, 189, 210, 255, 33, 115, - 185, 58, 33, 232, 128, 185, 58, 33, 234, 99, 243, 10, 33, 234, 99, 201, - 190, 33, 234, 99, 237, 32, 33, 234, 99, 243, 11, 249, 141, 33, 45, 50, - 64, 58, 33, 234, 99, 205, 76, 33, 234, 99, 221, 218, 33, 234, 99, 196, - 68, 209, 58, 197, 241, 33, 207, 19, 202, 24, 210, 255, 33, 55, 81, 201, - 28, 210, 255, 33, 251, 95, 113, 33, 197, 225, 196, 102, 33, 193, 78, 248, - 29, 58, 33, 118, 64, 210, 255, 33, 179, 55, 202, 24, 210, 255, 33, 96, - 230, 13, 4, 181, 235, 118, 33, 118, 230, 13, 4, 181, 235, 118, 33, 45, - 64, 60, 33, 50, 64, 60, 33, 250, 194, 58, 252, 55, 211, 146, 252, 38, - 119, 199, 34, 200, 240, 235, 129, 6, 247, 193, 237, 125, 247, 27, 247, - 22, 219, 113, 113, 247, 98, 211, 146, 247, 152, 196, 112, 233, 235, 239, - 38, 205, 72, 237, 125, 233, 91, 27, 2, 232, 51, 27, 6, 230, 116, 248, - 137, 6, 230, 116, 235, 129, 6, 230, 116, 209, 103, 239, 38, 209, 103, - 239, 39, 139, 105, 209, 185, 27, 6, 68, 248, 137, 6, 68, 27, 6, 172, 27, - 2, 172, 220, 143, 78, 249, 88, 113, 235, 129, 6, 215, 61, 212, 132, 56, - 202, 5, 207, 95, 239, 5, 27, 6, 210, 236, 235, 129, 6, 210, 236, 235, - 129, 6, 208, 104, 27, 6, 146, 248, 137, 6, 146, 235, 129, 6, 146, 208, - 223, 199, 208, 207, 31, 204, 1, 77, 199, 107, 56, 198, 22, 87, 56, 195, - 136, 235, 129, 6, 191, 166, 211, 18, 56, 211, 135, 56, 223, 93, 211, 135, - 56, 248, 137, 6, 191, 166, 153, 35, 2, 1, 223, 83, 222, 3, 56, 251, 110, - 56, 27, 6, 250, 120, 248, 137, 6, 247, 193, 234, 4, 113, 27, 2, 71, 27, - 6, 71, 27, 6, 233, 175, 153, 6, 233, 175, 27, 6, 218, 168, 27, 2, 74, - 131, 113, 248, 215, 113, 231, 39, 113, 237, 254, 113, 223, 137, 202, 3, - 206, 122, 6, 208, 104, 233, 94, 56, 235, 129, 2, 209, 185, 235, 129, 2, - 231, 211, 235, 129, 6, 231, 211, 235, 129, 6, 209, 185, 235, 129, 215, - 60, 200, 201, 153, 49, 6, 232, 51, 153, 49, 6, 172, 207, 18, 49, 6, 172, - 153, 49, 6, 192, 159, 235, 129, 43, 6, 238, 127, 235, 129, 43, 2, 238, - 127, 235, 129, 43, 2, 71, 235, 129, 43, 2, 68, 235, 129, 43, 2, 223, 35, - 208, 188, 219, 112, 153, 251, 137, 210, 14, 56, 251, 210, 153, 2, 233, - 175, 16, 40, 205, 151, 202, 3, 193, 246, 232, 118, 91, 203, 243, 193, - 246, 232, 118, 91, 213, 167, 193, 246, 232, 118, 91, 199, 86, 193, 246, - 232, 118, 91, 199, 0, 193, 246, 232, 118, 105, 198, 253, 193, 246, 232, - 118, 91, 233, 18, 193, 246, 232, 118, 105, 233, 17, 193, 246, 232, 118, - 115, 233, 17, 193, 246, 232, 118, 232, 128, 233, 17, 193, 246, 232, 118, - 91, 202, 124, 193, 246, 232, 118, 232, 226, 202, 122, 193, 246, 232, 118, - 91, 234, 159, 193, 246, 232, 118, 115, 234, 157, 193, 246, 232, 118, 232, - 226, 234, 157, 193, 246, 232, 118, 203, 247, 234, 157, 232, 118, 212, - 133, 107, 206, 136, 212, 134, 107, 206, 136, 212, 134, 109, 206, 136, - 212, 134, 138, 206, 136, 212, 134, 134, 206, 136, 212, 134, 149, 206, - 136, 212, 134, 169, 206, 136, 212, 134, 175, 206, 136, 212, 134, 171, - 206, 136, 212, 134, 178, 206, 136, 212, 134, 199, 95, 206, 136, 212, 134, - 234, 127, 206, 136, 212, 134, 197, 37, 206, 136, 212, 134, 233, 15, 206, - 136, 212, 134, 91, 228, 140, 206, 136, 212, 134, 232, 226, 228, 140, 206, - 136, 212, 134, 91, 189, 2, 206, 136, 212, 134, 107, 2, 206, 136, 212, - 134, 109, 2, 206, 136, 212, 134, 138, 2, 206, 136, 212, 134, 134, 2, 206, - 136, 212, 134, 149, 2, 206, 136, 212, 134, 169, 2, 206, 136, 212, 134, - 175, 2, 206, 136, 212, 134, 171, 2, 206, 136, 212, 134, 178, 2, 206, 136, - 212, 134, 199, 95, 2, 206, 136, 212, 134, 234, 127, 2, 206, 136, 212, - 134, 197, 37, 2, 206, 136, 212, 134, 233, 15, 2, 206, 136, 212, 134, 91, - 228, 140, 2, 206, 136, 212, 134, 232, 226, 228, 140, 2, 206, 136, 212, - 134, 91, 189, 206, 136, 212, 134, 91, 198, 230, 247, 194, 238, 127, 206, - 136, 212, 134, 232, 226, 189, 206, 136, 212, 134, 199, 96, 189, 206, 136, - 212, 134, 207, 18, 91, 228, 140, 8, 2, 1, 207, 18, 247, 193, 206, 136, - 212, 134, 202, 136, 220, 4, 20, 206, 136, 212, 134, 233, 16, 234, 210, - 20, 206, 136, 212, 134, 233, 16, 189, 206, 136, 212, 134, 91, 228, 141, - 189, 193, 246, 232, 118, 191, 78, 198, 253, 153, 17, 109, 153, 17, 138, - 118, 57, 196, 66, 57, 96, 57, 235, 119, 57, 45, 50, 57, 133, 144, 57, - 186, 193, 105, 57, 186, 234, 204, 57, 202, 2, 234, 204, 57, 202, 2, 193, - 105, 57, 118, 64, 4, 106, 96, 64, 4, 106, 118, 193, 139, 57, 96, 193, - 139, 57, 118, 105, 229, 233, 57, 196, 66, 105, 229, 233, 57, 96, 105, - 229, 233, 57, 235, 119, 105, 229, 233, 57, 118, 64, 4, 199, 215, 96, 64, - 4, 199, 215, 118, 64, 232, 98, 164, 196, 66, 64, 232, 98, 164, 96, 64, - 232, 98, 164, 235, 119, 64, 232, 98, 164, 133, 144, 64, 4, 249, 74, 118, - 64, 4, 102, 96, 64, 4, 102, 118, 64, 4, 219, 4, 96, 64, 4, 219, 4, 45, - 50, 193, 139, 57, 45, 50, 64, 4, 106, 235, 119, 191, 21, 57, 196, 66, 64, - 4, 198, 136, 219, 214, 196, 66, 64, 4, 198, 136, 206, 197, 235, 119, 64, - 4, 198, 136, 219, 214, 235, 119, 64, 4, 198, 136, 206, 197, 96, 64, 4, - 239, 2, 235, 118, 235, 119, 64, 4, 239, 2, 219, 214, 251, 85, 198, 54, - 204, 28, 57, 242, 221, 198, 54, 204, 28, 57, 186, 193, 105, 64, 119, 179, - 164, 118, 64, 119, 249, 88, 139, 96, 64, 119, 164, 251, 85, 211, 77, 243, - 11, 57, 242, 221, 211, 77, 243, 11, 57, 118, 230, 13, 4, 181, 196, 65, - 118, 230, 13, 4, 181, 235, 118, 196, 66, 230, 13, 4, 181, 206, 197, 196, - 66, 230, 13, 4, 181, 219, 214, 96, 230, 13, 4, 181, 196, 65, 96, 230, 13, - 4, 181, 235, 118, 235, 119, 230, 13, 4, 181, 206, 197, 235, 119, 230, 13, - 4, 181, 219, 214, 96, 64, 139, 118, 57, 196, 66, 64, 118, 79, 235, 119, - 57, 118, 64, 139, 96, 57, 118, 210, 196, 250, 231, 196, 66, 210, 196, - 250, 231, 96, 210, 196, 250, 231, 235, 119, 210, 196, 250, 231, 118, 230, - 13, 139, 96, 230, 12, 96, 230, 13, 139, 118, 230, 12, 118, 55, 64, 4, - 106, 45, 50, 55, 64, 4, 106, 96, 55, 64, 4, 106, 118, 55, 57, 196, 66, - 55, 57, 96, 55, 57, 235, 119, 55, 57, 45, 50, 55, 57, 133, 144, 55, 57, - 186, 193, 105, 55, 57, 186, 234, 204, 55, 57, 202, 2, 234, 204, 55, 57, - 202, 2, 193, 105, 55, 57, 118, 197, 225, 57, 96, 197, 225, 57, 118, 201, - 183, 57, 96, 201, 183, 57, 196, 66, 64, 4, 55, 106, 235, 119, 64, 4, 55, - 106, 118, 237, 214, 57, 196, 66, 237, 214, 57, 96, 237, 214, 57, 235, - 119, 237, 214, 57, 118, 64, 119, 164, 96, 64, 119, 164, 118, 63, 57, 196, - 66, 63, 57, 96, 63, 57, 235, 119, 63, 57, 196, 66, 63, 64, 232, 98, 164, - 196, 66, 63, 64, 211, 105, 210, 52, 196, 66, 63, 64, 211, 105, 210, 53, - 4, 228, 241, 164, 196, 66, 63, 64, 211, 105, 210, 53, 4, 81, 164, 196, - 66, 63, 55, 57, 196, 66, 63, 55, 64, 211, 105, 210, 52, 96, 63, 64, 232, - 98, 193, 167, 186, 193, 105, 64, 119, 239, 1, 202, 2, 234, 204, 64, 119, - 239, 1, 133, 144, 63, 57, 50, 64, 4, 2, 243, 10, 235, 119, 64, 118, 79, - 196, 66, 57, 115, 96, 250, 231, 118, 64, 4, 81, 106, 96, 64, 4, 81, 106, - 45, 50, 64, 4, 81, 106, 118, 64, 4, 55, 81, 106, 96, 64, 4, 55, 81, 106, - 45, 50, 64, 4, 55, 81, 106, 118, 211, 74, 57, 96, 211, 74, 57, 45, 50, - 211, 74, 57, 40, 251, 174, 242, 68, 210, 105, 237, 16, 199, 24, 233, 211, - 199, 24, 236, 164, 213, 12, 233, 212, 234, 105, 203, 252, 223, 151, 214, - 245, 234, 132, 211, 146, 213, 12, 251, 133, 234, 132, 211, 146, 2, 234, - 132, 211, 146, 239, 32, 250, 220, 216, 190, 236, 164, 213, 12, 239, 34, - 250, 220, 216, 190, 2, 239, 32, 250, 220, 216, 190, 234, 95, 79, 208, - 190, 215, 60, 208, 200, 215, 60, 239, 9, 215, 60, 200, 201, 216, 35, 56, - 216, 33, 56, 75, 209, 81, 236, 200, 202, 97, 203, 253, 216, 34, 250, 194, - 211, 66, 206, 189, 211, 66, 247, 249, 211, 66, 51, 206, 128, 238, 191, - 206, 128, 232, 121, 206, 128, 208, 186, 159, 223, 139, 50, 251, 115, 251, - 115, 216, 226, 251, 115, 201, 225, 251, 115, 236, 203, 236, 164, 213, 12, - 236, 207, 210, 119, 159, 213, 12, 210, 119, 159, 219, 29, 251, 125, 219, - 29, 211, 56, 223, 99, 196, 92, 223, 113, 55, 223, 113, 197, 225, 223, - 113, 239, 26, 223, 113, 200, 171, 223, 113, 195, 11, 223, 113, 242, 221, - 223, 113, 242, 221, 239, 26, 223, 113, 251, 85, 239, 26, 223, 113, 199, - 23, 249, 3, 207, 126, 208, 187, 75, 216, 34, 233, 219, 231, 144, 208, - 187, 229, 0, 198, 153, 211, 66, 207, 18, 198, 152, 223, 93, 219, 245, - 206, 8, 202, 172, 193, 138, 193, 10, 208, 200, 213, 12, 198, 152, 216, - 35, 198, 152, 250, 186, 234, 45, 159, 213, 12, 250, 186, 234, 45, 159, - 251, 40, 234, 45, 159, 251, 40, 247, 218, 213, 12, 252, 48, 234, 45, 159, - 214, 105, 251, 40, 213, 21, 252, 48, 234, 45, 159, 251, 165, 234, 45, - 159, 213, 12, 251, 165, 234, 45, 159, 251, 165, 234, 45, 211, 57, 234, - 45, 159, 197, 225, 198, 152, 251, 175, 234, 45, 159, 234, 36, 159, 231, - 143, 234, 36, 159, 237, 17, 248, 209, 251, 42, 199, 34, 219, 120, 231, - 143, 234, 45, 159, 251, 40, 234, 45, 119, 211, 57, 199, 34, 223, 178, - 211, 146, 223, 178, 79, 211, 57, 251, 40, 234, 45, 159, 242, 84, 234, 42, - 234, 43, 242, 83, 206, 189, 223, 163, 234, 45, 159, 206, 189, 234, 45, - 159, 238, 250, 159, 234, 3, 234, 41, 159, 201, 103, 234, 42, 237, 107, - 234, 45, 159, 234, 45, 119, 247, 205, 237, 126, 216, 226, 247, 204, 208, - 11, 234, 45, 159, 213, 12, 234, 45, 159, 228, 17, 159, 213, 12, 228, 17, - 159, 201, 35, 234, 36, 159, 219, 180, 211, 57, 234, 45, 159, 230, 204, - 211, 57, 234, 45, 159, 219, 180, 139, 234, 45, 159, 230, 204, 139, 234, - 45, 159, 219, 180, 247, 218, 213, 12, 234, 45, 159, 230, 204, 247, 218, - 213, 12, 234, 45, 159, 215, 145, 219, 179, 215, 145, 230, 203, 248, 209, - 213, 12, 234, 36, 159, 213, 12, 219, 179, 213, 12, 230, 203, 214, 105, - 219, 180, 213, 21, 234, 45, 159, 214, 105, 230, 204, 213, 21, 234, 45, - 159, 219, 180, 211, 57, 234, 36, 159, 230, 204, 211, 57, 234, 36, 159, - 214, 105, 219, 180, 213, 21, 234, 36, 159, 214, 105, 230, 204, 213, 21, - 234, 36, 159, 219, 180, 211, 57, 230, 203, 230, 204, 211, 57, 219, 179, - 214, 105, 219, 180, 213, 21, 230, 203, 214, 105, 230, 204, 213, 21, 219, - 179, 208, 231, 200, 220, 208, 232, 211, 57, 234, 45, 159, 200, 221, 211, - 57, 234, 45, 159, 208, 232, 211, 57, 234, 36, 159, 200, 221, 211, 57, - 234, 36, 159, 236, 164, 213, 12, 208, 234, 236, 164, 213, 12, 200, 222, - 200, 229, 211, 146, 200, 181, 211, 146, 213, 12, 42, 200, 229, 211, 146, - 213, 12, 42, 200, 181, 211, 146, 200, 229, 79, 211, 57, 234, 45, 159, - 200, 181, 79, 211, 57, 234, 45, 159, 214, 105, 42, 200, 229, 79, 213, 21, - 234, 45, 159, 214, 105, 42, 200, 181, 79, 213, 21, 234, 45, 159, 200, - 229, 79, 4, 213, 12, 234, 45, 159, 200, 181, 79, 4, 213, 12, 234, 45, - 159, 215, 124, 215, 125, 215, 126, 215, 125, 196, 92, 51, 223, 178, 211, - 146, 51, 211, 46, 211, 146, 51, 223, 178, 79, 211, 57, 234, 45, 159, 51, - 211, 46, 79, 211, 57, 234, 45, 159, 51, 247, 111, 51, 238, 181, 47, 209, - 81, 47, 216, 34, 47, 198, 144, 47, 236, 200, 202, 97, 47, 75, 211, 66, - 47, 206, 189, 211, 66, 47, 250, 194, 211, 66, 47, 234, 42, 47, 237, 215, - 112, 209, 81, 112, 216, 34, 112, 198, 144, 112, 75, 211, 66, 50, 199, - 228, 45, 199, 228, 144, 199, 228, 133, 199, 228, 250, 197, 216, 1, 197, - 201, 232, 152, 197, 225, 81, 249, 88, 50, 197, 57, 55, 81, 249, 88, 55, - 50, 197, 57, 236, 164, 213, 12, 208, 179, 213, 12, 197, 201, 236, 164, - 213, 12, 232, 153, 214, 108, 55, 81, 249, 88, 55, 50, 197, 57, 208, 232, - 196, 105, 207, 65, 200, 221, 196, 105, 207, 65, 213, 18, 200, 244, 211, - 146, 239, 32, 250, 220, 213, 18, 200, 243, 213, 18, 200, 244, 79, 211, - 57, 234, 45, 159, 239, 32, 250, 220, 213, 18, 200, 244, 211, 57, 234, 45, - 159, 211, 46, 211, 146, 223, 178, 211, 146, 215, 131, 229, 189, 239, 43, - 217, 27, 223, 110, 192, 192, 214, 224, 213, 20, 50, 251, 116, 4, 251, 16, - 50, 197, 241, 215, 60, 219, 29, 251, 125, 215, 60, 219, 29, 211, 56, 215, - 60, 223, 99, 215, 60, 196, 92, 237, 33, 211, 66, 75, 211, 66, 201, 103, - 211, 66, 236, 200, 198, 144, 248, 63, 45, 213, 18, 233, 93, 204, 24, 208, - 200, 50, 213, 18, 233, 93, 204, 24, 208, 200, 45, 204, 24, 208, 200, 50, - 204, 24, 208, 200, 207, 18, 198, 153, 234, 42, 238, 171, 219, 29, 211, - 56, 238, 171, 219, 29, 251, 125, 55, 200, 228, 55, 200, 180, 55, 223, 99, - 55, 196, 92, 209, 115, 234, 45, 23, 210, 119, 159, 219, 180, 4, 236, 140, - 230, 204, 4, 236, 140, 195, 83, 215, 145, 219, 179, 195, 83, 215, 145, - 230, 203, 219, 180, 234, 45, 119, 211, 57, 230, 203, 230, 204, 234, 45, - 119, 211, 57, 219, 179, 234, 45, 119, 211, 57, 219, 179, 234, 45, 119, - 211, 57, 230, 203, 234, 45, 119, 211, 57, 208, 231, 234, 45, 119, 211, - 57, 200, 220, 236, 164, 213, 12, 208, 235, 211, 57, 234, 44, 236, 164, - 213, 12, 200, 223, 211, 57, 234, 44, 213, 12, 51, 223, 178, 79, 211, 57, - 234, 45, 159, 213, 12, 51, 211, 46, 79, 211, 57, 234, 45, 159, 51, 223, - 178, 79, 211, 57, 213, 12, 234, 45, 159, 51, 211, 46, 79, 211, 57, 213, - 12, 234, 45, 159, 219, 180, 247, 218, 213, 12, 234, 36, 159, 230, 204, - 247, 218, 213, 12, 234, 36, 159, 208, 232, 247, 218, 213, 12, 234, 36, - 159, 200, 221, 247, 218, 213, 12, 234, 36, 159, 213, 12, 213, 18, 200, - 244, 211, 146, 236, 164, 213, 12, 239, 34, 250, 220, 213, 18, 200, 243, - 213, 12, 213, 18, 200, 244, 79, 211, 57, 234, 45, 159, 236, 164, 213, 12, - 239, 34, 250, 220, 213, 18, 200, 244, 211, 57, 234, 44, 81, 234, 120, - 216, 82, 228, 241, 234, 120, 133, 50, 237, 39, 234, 120, 144, 50, 237, - 39, 234, 120, 234, 132, 79, 4, 179, 228, 241, 106, 234, 132, 79, 4, 81, - 249, 88, 250, 183, 234, 95, 79, 228, 241, 106, 2, 234, 132, 79, 4, 81, - 249, 88, 250, 183, 234, 95, 79, 228, 241, 106, 234, 132, 79, 4, 75, 58, - 234, 132, 79, 4, 211, 6, 2, 234, 132, 79, 4, 211, 6, 234, 132, 79, 4, - 196, 103, 234, 132, 79, 4, 105, 228, 241, 201, 15, 239, 32, 4, 179, 228, - 241, 106, 239, 32, 4, 81, 249, 88, 250, 183, 234, 95, 79, 228, 241, 106, - 2, 239, 32, 4, 81, 249, 88, 250, 183, 234, 95, 79, 228, 241, 106, 239, - 32, 4, 211, 6, 2, 239, 32, 4, 211, 6, 191, 167, 213, 10, 249, 131, 216, - 189, 237, 34, 56, 234, 135, 57, 228, 172, 133, 250, 235, 144, 250, 235, - 208, 194, 209, 248, 193, 135, 219, 112, 45, 247, 30, 50, 247, 30, 45, - 232, 193, 50, 232, 193, 248, 77, 50, 238, 219, 248, 77, 45, 238, 219, - 198, 54, 50, 238, 219, 198, 54, 45, 238, 219, 207, 18, 213, 12, 56, 51, - 218, 232, 251, 16, 205, 43, 205, 52, 199, 107, 207, 96, 209, 25, 223, - 144, 195, 56, 201, 190, 209, 108, 79, 223, 109, 56, 153, 213, 12, 56, - 193, 145, 228, 174, 198, 54, 45, 239, 1, 198, 54, 50, 239, 1, 248, 77, - 45, 239, 1, 248, 77, 50, 239, 1, 198, 54, 132, 223, 113, 248, 77, 132, - 223, 113, 232, 93, 202, 65, 133, 250, 236, 248, 210, 105, 228, 241, 249, - 76, 211, 59, 221, 222, 234, 32, 119, 199, 34, 183, 192, 236, 223, 163, - 42, 207, 93, 248, 62, 221, 220, 219, 219, 251, 116, 248, 53, 206, 203, - 251, 116, 248, 53, 234, 32, 119, 199, 34, 219, 224, 248, 221, 206, 188, - 238, 138, 251, 175, 250, 244, 200, 74, 198, 39, 206, 41, 236, 252, 211, - 47, 239, 48, 199, 181, 202, 81, 238, 246, 238, 245, 251, 59, 232, 75, 16, - 228, 67, 251, 59, 232, 75, 16, 201, 181, 208, 30, 251, 59, 232, 75, 16, - 208, 31, 234, 44, 251, 59, 232, 75, 16, 208, 31, 236, 207, 251, 59, 232, - 75, 16, 208, 31, 237, 32, 251, 59, 232, 75, 16, 208, 31, 222, 188, 251, - 59, 232, 75, 16, 208, 31, 243, 10, 251, 59, 232, 75, 16, 243, 11, 201, - 71, 251, 59, 232, 75, 16, 243, 11, 222, 188, 251, 59, 232, 75, 16, 202, - 98, 164, 251, 59, 232, 75, 16, 249, 142, 164, 251, 59, 232, 75, 16, 208, - 31, 202, 97, 251, 59, 232, 75, 16, 208, 31, 249, 141, 251, 59, 232, 75, - 16, 208, 31, 219, 179, 251, 59, 232, 75, 16, 208, 31, 230, 203, 251, 59, - 232, 75, 16, 118, 195, 176, 251, 59, 232, 75, 16, 96, 195, 176, 251, 59, - 232, 75, 16, 208, 31, 118, 57, 251, 59, 232, 75, 16, 208, 31, 96, 57, - 251, 59, 232, 75, 16, 243, 11, 249, 141, 251, 59, 232, 75, 16, 144, 199, - 229, 196, 103, 251, 59, 232, 75, 16, 237, 107, 201, 71, 251, 59, 232, 75, - 16, 208, 31, 144, 247, 96, 251, 59, 232, 75, 16, 208, 31, 237, 106, 251, - 59, 232, 75, 16, 144, 199, 229, 222, 188, 251, 59, 232, 75, 16, 196, 66, - 195, 176, 251, 59, 232, 75, 16, 208, 31, 196, 66, 57, 251, 59, 232, 75, - 16, 133, 199, 229, 211, 6, 251, 59, 232, 75, 16, 237, 119, 201, 71, 251, - 59, 232, 75, 16, 208, 31, 133, 247, 96, 251, 59, 232, 75, 16, 208, 31, - 237, 118, 251, 59, 232, 75, 16, 133, 199, 229, 222, 188, 251, 59, 232, - 75, 16, 235, 119, 195, 176, 251, 59, 232, 75, 16, 208, 31, 235, 119, 57, - 251, 59, 232, 75, 16, 207, 251, 196, 103, 251, 59, 232, 75, 16, 237, 107, - 196, 103, 251, 59, 232, 75, 16, 237, 33, 196, 103, 251, 59, 232, 75, 16, - 222, 189, 196, 103, 251, 59, 232, 75, 16, 243, 11, 196, 103, 251, 59, - 232, 75, 16, 133, 203, 53, 222, 188, 251, 59, 232, 75, 16, 207, 251, 208, - 30, 251, 59, 232, 75, 16, 243, 11, 201, 102, 251, 59, 232, 75, 16, 208, - 31, 242, 83, 251, 59, 232, 75, 16, 133, 199, 229, 237, 42, 251, 59, 232, - 75, 16, 237, 119, 237, 42, 251, 59, 232, 75, 16, 201, 103, 237, 42, 251, - 59, 232, 75, 16, 222, 189, 237, 42, 251, 59, 232, 75, 16, 243, 11, 237, - 42, 251, 59, 232, 75, 16, 144, 203, 53, 201, 71, 251, 59, 232, 75, 16, - 45, 203, 53, 201, 71, 251, 59, 232, 75, 16, 198, 153, 237, 42, 251, 59, - 232, 75, 16, 230, 204, 237, 42, 251, 59, 232, 75, 16, 242, 75, 164, 251, - 59, 232, 75, 16, 237, 119, 198, 152, 251, 59, 232, 75, 16, 191, 20, 251, - 59, 232, 75, 16, 201, 72, 198, 152, 251, 59, 232, 75, 16, 204, 26, 196, - 103, 251, 59, 232, 75, 16, 208, 31, 213, 12, 234, 44, 251, 59, 232, 75, - 16, 208, 31, 208, 12, 251, 59, 232, 75, 16, 144, 247, 97, 198, 152, 251, - 59, 232, 75, 16, 133, 247, 97, 198, 152, 251, 59, 232, 75, 16, 223, 83, - 251, 59, 232, 75, 16, 207, 3, 251, 59, 232, 75, 16, 211, 110, 251, 59, - 232, 75, 16, 251, 161, 196, 103, 251, 59, 232, 75, 16, 234, 48, 196, 103, - 251, 59, 232, 75, 16, 223, 84, 196, 103, 251, 59, 232, 75, 16, 211, 111, - 196, 103, 251, 59, 232, 75, 16, 251, 160, 213, 12, 243, 126, 77, 50, 251, - 116, 4, 235, 119, 191, 21, 57, 203, 21, 211, 77, 248, 62, 248, 236, 113, - 81, 219, 113, 4, 82, 236, 140, 223, 119, 113, 239, 27, 196, 101, 113, - 236, 225, 196, 101, 113, 234, 107, 113, 239, 63, 113, 63, 51, 4, 247, 22, - 81, 219, 112, 234, 78, 113, 251, 152, 221, 223, 113, 229, 202, 113, 47, - 228, 241, 249, 88, 4, 213, 9, 47, 197, 242, 235, 123, 248, 22, 243, 11, - 4, 213, 15, 57, 196, 99, 113, 215, 216, 113, 228, 84, 113, 211, 75, 230, - 115, 113, 211, 75, 220, 141, 113, 210, 93, 113, 210, 92, 113, 236, 234, - 238, 169, 16, 232, 146, 109, 202, 29, 113, 251, 59, 232, 75, 16, 208, 30, - 237, 138, 204, 11, 221, 223, 113, 208, 217, 210, 204, 214, 73, 210, 204, - 208, 212, 205, 77, 113, 242, 238, 205, 77, 113, 45, 210, 114, 116, 102, - 45, 210, 114, 233, 203, 45, 210, 114, 110, 102, 50, 210, 114, 116, 102, - 50, 210, 114, 233, 203, 50, 210, 114, 110, 102, 45, 51, 248, 54, 116, - 239, 1, 45, 51, 248, 54, 233, 203, 45, 51, 248, 54, 110, 239, 1, 50, 51, - 248, 54, 116, 239, 1, 50, 51, 248, 54, 233, 203, 50, 51, 248, 54, 110, - 239, 1, 45, 238, 171, 248, 54, 116, 102, 45, 238, 171, 248, 54, 82, 209, - 175, 45, 238, 171, 248, 54, 110, 102, 238, 171, 248, 54, 233, 203, 50, - 238, 171, 248, 54, 116, 102, 50, 238, 171, 248, 54, 82, 209, 175, 50, - 238, 171, 248, 54, 110, 102, 223, 114, 233, 203, 228, 241, 219, 113, 233, - 203, 116, 45, 211, 57, 110, 50, 238, 171, 248, 54, 205, 53, 116, 50, 211, - 57, 110, 45, 238, 171, 248, 54, 205, 53, 200, 202, 198, 53, 200, 202, - 248, 76, 198, 54, 51, 248, 53, 248, 77, 51, 248, 53, 248, 77, 51, 248, - 54, 139, 198, 54, 51, 248, 53, 48, 16, 248, 76, 45, 81, 111, 219, 112, - 50, 81, 111, 219, 112, 228, 241, 205, 97, 219, 111, 228, 241, 205, 97, - 219, 110, 228, 241, 205, 97, 219, 109, 228, 241, 205, 97, 219, 108, 237, - 97, 16, 156, 81, 23, 198, 54, 183, 237, 97, 16, 156, 81, 23, 248, 77, - 183, 237, 97, 16, 156, 81, 4, 243, 10, 237, 97, 16, 156, 144, 23, 228, - 241, 4, 243, 10, 237, 97, 16, 156, 133, 23, 228, 241, 4, 243, 10, 237, - 97, 16, 156, 81, 4, 197, 241, 237, 97, 16, 156, 144, 23, 228, 241, 4, - 197, 241, 237, 97, 16, 156, 133, 23, 228, 241, 4, 197, 241, 237, 97, 16, - 156, 81, 23, 193, 138, 237, 97, 16, 156, 144, 23, 228, 241, 4, 193, 138, - 237, 97, 16, 156, 133, 23, 228, 241, 4, 193, 138, 237, 97, 16, 156, 144, - 23, 228, 240, 237, 97, 16, 156, 133, 23, 228, 240, 237, 97, 16, 156, 81, - 23, 198, 54, 219, 224, 237, 97, 16, 156, 81, 23, 248, 77, 219, 224, 51, - 232, 159, 207, 23, 113, 234, 149, 113, 81, 219, 113, 233, 203, 216, 159, - 248, 36, 216, 159, 179, 139, 203, 39, 216, 159, 203, 40, 139, 219, 19, - 216, 159, 179, 139, 105, 203, 25, 216, 159, 105, 203, 26, 139, 219, 19, - 216, 159, 105, 203, 26, 222, 197, 216, 159, 197, 221, 216, 159, 199, 65, - 216, 159, 210, 22, 234, 208, 230, 188, 232, 69, 198, 54, 210, 113, 248, - 77, 210, 113, 198, 54, 238, 171, 248, 53, 248, 77, 238, 171, 248, 53, - 198, 54, 198, 42, 203, 103, 248, 53, 248, 77, 198, 42, 203, 103, 248, 53, - 63, 198, 5, 248, 221, 206, 189, 4, 243, 10, 201, 51, 232, 204, 252, 64, - 238, 168, 234, 134, 223, 99, 237, 138, 233, 207, 113, 62, 206, 203, 55, - 197, 241, 62, 219, 219, 55, 197, 241, 62, 196, 76, 55, 197, 241, 62, 235, - 122, 55, 197, 241, 62, 206, 203, 55, 197, 242, 4, 81, 164, 62, 219, 219, - 55, 197, 242, 4, 81, 164, 62, 206, 203, 197, 242, 4, 55, 81, 164, 251, - 201, 242, 222, 201, 58, 198, 145, 242, 222, 228, 175, 4, 232, 184, 205, - 140, 62, 216, 213, 219, 219, 197, 241, 62, 216, 213, 206, 203, 197, 241, - 62, 216, 213, 196, 76, 197, 241, 62, 216, 213, 235, 122, 197, 241, 55, - 81, 164, 62, 51, 40, 201, 63, 62, 243, 11, 40, 207, 97, 208, 255, 113, - 208, 255, 211, 103, 113, 208, 255, 211, 105, 113, 208, 255, 202, 93, 113, - 211, 168, 233, 194, 113, 16, 40, 212, 138, 16, 40, 201, 98, 79, 229, 232, - 16, 40, 201, 98, 79, 199, 53, 16, 40, 234, 95, 79, 199, 53, 16, 40, 234, - 95, 79, 198, 11, 16, 40, 234, 81, 16, 40, 252, 51, 16, 40, 248, 235, 16, - 40, 249, 140, 16, 40, 228, 241, 199, 230, 16, 40, 219, 113, 233, 50, 16, - 40, 81, 199, 230, 16, 40, 232, 146, 233, 50, 16, 40, 247, 88, 207, 22, - 16, 40, 203, 77, 211, 14, 16, 40, 203, 77, 223, 162, 16, 40, 237, 210, - 219, 103, 234, 14, 16, 40, 237, 75, 239, 22, 107, 16, 40, 237, 75, 239, - 22, 109, 16, 40, 237, 75, 239, 22, 138, 16, 40, 237, 75, 239, 22, 134, - 16, 40, 214, 106, 252, 51, 16, 40, 200, 69, 223, 228, 16, 40, 234, 95, - 79, 198, 12, 248, 129, 16, 40, 247, 126, 16, 40, 234, 95, 79, 216, 212, - 16, 40, 200, 226, 16, 40, 234, 14, 16, 40, 233, 7, 204, 10, 16, 40, 230, - 187, 204, 10, 16, 40, 207, 98, 204, 10, 16, 40, 196, 91, 204, 10, 16, 40, - 201, 247, 16, 40, 237, 116, 248, 133, 113, 211, 77, 248, 62, 16, 40, 214, - 76, 16, 40, 237, 117, 232, 146, 109, 16, 40, 200, 227, 232, 146, 109, - 211, 161, 102, 211, 161, 246, 252, 211, 161, 232, 149, 211, 161, 223, 93, - 232, 149, 211, 161, 248, 232, 248, 5, 211, 161, 248, 70, 198, 178, 211, - 161, 248, 48, 249, 93, 228, 15, 211, 161, 251, 139, 79, 243, 125, 211, - 161, 237, 215, 211, 161, 238, 157, 252, 55, 212, 136, 211, 161, 55, 249, - 141, 47, 17, 107, 47, 17, 109, 47, 17, 138, 47, 17, 134, 47, 17, 149, 47, - 17, 169, 47, 17, 175, 47, 17, 171, 47, 17, 178, 47, 31, 199, 95, 47, 31, - 234, 127, 47, 31, 197, 37, 47, 31, 198, 251, 47, 31, 232, 122, 47, 31, - 233, 19, 47, 31, 202, 130, 47, 31, 203, 244, 47, 31, 234, 161, 47, 31, - 213, 171, 47, 31, 197, 32, 127, 17, 107, 127, 17, 109, 127, 17, 138, 127, - 17, 134, 127, 17, 149, 127, 17, 169, 127, 17, 175, 127, 17, 171, 127, 17, - 178, 127, 31, 199, 95, 127, 31, 234, 127, 127, 31, 197, 37, 127, 31, 198, - 251, 127, 31, 232, 122, 127, 31, 233, 19, 127, 31, 202, 130, 127, 31, - 203, 244, 127, 31, 234, 161, 127, 31, 213, 171, 127, 31, 197, 32, 17, 91, - 232, 80, 201, 63, 17, 105, 232, 80, 201, 63, 17, 115, 232, 80, 201, 63, - 17, 232, 128, 232, 80, 201, 63, 17, 232, 226, 232, 80, 201, 63, 17, 202, - 136, 232, 80, 201, 63, 17, 203, 247, 232, 80, 201, 63, 17, 234, 164, 232, - 80, 201, 63, 17, 213, 175, 232, 80, 201, 63, 31, 199, 96, 232, 80, 201, - 63, 31, 234, 128, 232, 80, 201, 63, 31, 197, 38, 232, 80, 201, 63, 31, - 198, 252, 232, 80, 201, 63, 31, 232, 123, 232, 80, 201, 63, 31, 233, 20, - 232, 80, 201, 63, 31, 202, 131, 232, 80, 201, 63, 31, 203, 245, 232, 80, - 201, 63, 31, 234, 162, 232, 80, 201, 63, 31, 213, 172, 232, 80, 201, 63, - 31, 197, 33, 232, 80, 201, 63, 127, 8, 2, 1, 65, 127, 8, 2, 1, 250, 120, - 127, 8, 2, 1, 247, 193, 127, 8, 2, 1, 238, 127, 127, 8, 2, 1, 71, 127, 8, - 2, 1, 233, 175, 127, 8, 2, 1, 232, 51, 127, 8, 2, 1, 230, 116, 127, 8, 2, - 1, 68, 127, 8, 2, 1, 223, 35, 127, 8, 2, 1, 222, 152, 127, 8, 2, 1, 172, - 127, 8, 2, 1, 218, 168, 127, 8, 2, 1, 215, 61, 127, 8, 2, 1, 74, 127, 8, - 2, 1, 210, 236, 127, 8, 2, 1, 208, 104, 127, 8, 2, 1, 146, 127, 8, 2, 1, - 206, 8, 127, 8, 2, 1, 200, 43, 127, 8, 2, 1, 66, 127, 8, 2, 1, 196, 12, - 127, 8, 2, 1, 193, 224, 127, 8, 2, 1, 192, 235, 127, 8, 2, 1, 192, 159, - 127, 8, 2, 1, 191, 166, 47, 8, 6, 1, 65, 47, 8, 6, 1, 250, 120, 47, 8, 6, - 1, 247, 193, 47, 8, 6, 1, 238, 127, 47, 8, 6, 1, 71, 47, 8, 6, 1, 233, - 175, 47, 8, 6, 1, 232, 51, 47, 8, 6, 1, 230, 116, 47, 8, 6, 1, 68, 47, 8, - 6, 1, 223, 35, 47, 8, 6, 1, 222, 152, 47, 8, 6, 1, 172, 47, 8, 6, 1, 218, - 168, 47, 8, 6, 1, 215, 61, 47, 8, 6, 1, 74, 47, 8, 6, 1, 210, 236, 47, 8, - 6, 1, 208, 104, 47, 8, 6, 1, 146, 47, 8, 6, 1, 206, 8, 47, 8, 6, 1, 200, - 43, 47, 8, 6, 1, 66, 47, 8, 6, 1, 196, 12, 47, 8, 6, 1, 193, 224, 47, 8, - 6, 1, 192, 235, 47, 8, 6, 1, 192, 159, 47, 8, 6, 1, 191, 166, 47, 8, 2, - 1, 65, 47, 8, 2, 1, 250, 120, 47, 8, 2, 1, 247, 193, 47, 8, 2, 1, 238, - 127, 47, 8, 2, 1, 71, 47, 8, 2, 1, 233, 175, 47, 8, 2, 1, 232, 51, 47, 8, - 2, 1, 230, 116, 47, 8, 2, 1, 68, 47, 8, 2, 1, 223, 35, 47, 8, 2, 1, 222, - 152, 47, 8, 2, 1, 172, 47, 8, 2, 1, 218, 168, 47, 8, 2, 1, 215, 61, 47, - 8, 2, 1, 74, 47, 8, 2, 1, 210, 236, 47, 8, 2, 1, 208, 104, 47, 8, 2, 1, - 146, 47, 8, 2, 1, 206, 8, 47, 8, 2, 1, 200, 43, 47, 8, 2, 1, 66, 47, 8, - 2, 1, 196, 12, 47, 8, 2, 1, 193, 224, 47, 8, 2, 1, 192, 235, 47, 8, 2, 1, - 192, 159, 47, 8, 2, 1, 191, 166, 47, 17, 191, 77, 214, 106, 47, 31, 234, - 127, 214, 106, 47, 31, 197, 37, 214, 106, 47, 31, 198, 251, 214, 106, 47, - 31, 232, 122, 214, 106, 47, 31, 233, 19, 214, 106, 47, 31, 202, 130, 214, - 106, 47, 31, 203, 244, 214, 106, 47, 31, 234, 161, 214, 106, 47, 31, 213, - 171, 214, 106, 47, 31, 197, 32, 55, 47, 17, 107, 55, 47, 17, 109, 55, 47, - 17, 138, 55, 47, 17, 134, 55, 47, 17, 149, 55, 47, 17, 169, 55, 47, 17, - 175, 55, 47, 17, 171, 55, 47, 17, 178, 55, 47, 31, 199, 95, 214, 106, 47, - 17, 191, 77, 111, 122, 156, 228, 240, 111, 122, 88, 228, 240, 111, 122, - 156, 195, 135, 111, 122, 88, 195, 135, 111, 122, 156, 197, 225, 237, 216, - 228, 240, 111, 122, 88, 197, 225, 237, 216, 228, 240, 111, 122, 156, 197, - 225, 237, 216, 195, 135, 111, 122, 88, 197, 225, 237, 216, 195, 135, 111, - 122, 156, 208, 26, 237, 216, 228, 240, 111, 122, 88, 208, 26, 237, 216, - 228, 240, 111, 122, 156, 208, 26, 237, 216, 195, 135, 111, 122, 88, 208, - 26, 237, 216, 195, 135, 111, 122, 156, 144, 23, 183, 111, 122, 144, 156, - 23, 50, 229, 217, 111, 122, 144, 88, 23, 50, 219, 132, 111, 122, 88, 144, - 23, 183, 111, 122, 156, 144, 23, 219, 224, 111, 122, 144, 156, 23, 45, - 229, 217, 111, 122, 144, 88, 23, 45, 219, 132, 111, 122, 88, 144, 23, - 219, 224, 111, 122, 156, 133, 23, 183, 111, 122, 133, 156, 23, 50, 229, - 217, 111, 122, 133, 88, 23, 50, 219, 132, 111, 122, 88, 133, 23, 183, - 111, 122, 156, 133, 23, 219, 224, 111, 122, 133, 156, 23, 45, 229, 217, - 111, 122, 133, 88, 23, 45, 219, 132, 111, 122, 88, 133, 23, 219, 224, - 111, 122, 156, 81, 23, 183, 111, 122, 81, 156, 23, 50, 229, 217, 111, - 122, 133, 88, 23, 50, 144, 219, 132, 111, 122, 144, 88, 23, 50, 133, 219, - 132, 111, 122, 81, 88, 23, 50, 219, 132, 111, 122, 144, 156, 23, 50, 133, - 229, 217, 111, 122, 133, 156, 23, 50, 144, 229, 217, 111, 122, 88, 81, - 23, 183, 111, 122, 156, 81, 23, 219, 224, 111, 122, 81, 156, 23, 45, 229, - 217, 111, 122, 133, 88, 23, 45, 144, 219, 132, 111, 122, 144, 88, 23, 45, - 133, 219, 132, 111, 122, 81, 88, 23, 45, 219, 132, 111, 122, 144, 156, - 23, 45, 133, 229, 217, 111, 122, 133, 156, 23, 45, 144, 229, 217, 111, - 122, 88, 81, 23, 219, 224, 111, 122, 156, 144, 23, 228, 240, 111, 122, - 45, 88, 23, 50, 144, 219, 132, 111, 122, 50, 88, 23, 45, 144, 219, 132, - 111, 122, 144, 156, 23, 228, 241, 229, 217, 111, 122, 144, 88, 23, 228, - 241, 219, 132, 111, 122, 50, 156, 23, 45, 144, 229, 217, 111, 122, 45, - 156, 23, 50, 144, 229, 217, 111, 122, 88, 144, 23, 228, 240, 111, 122, - 156, 133, 23, 228, 240, 111, 122, 45, 88, 23, 50, 133, 219, 132, 111, - 122, 50, 88, 23, 45, 133, 219, 132, 111, 122, 133, 156, 23, 228, 241, - 229, 217, 111, 122, 133, 88, 23, 228, 241, 219, 132, 111, 122, 50, 156, - 23, 45, 133, 229, 217, 111, 122, 45, 156, 23, 50, 133, 229, 217, 111, - 122, 88, 133, 23, 228, 240, 111, 122, 156, 81, 23, 228, 240, 111, 122, - 45, 88, 23, 50, 81, 219, 132, 111, 122, 50, 88, 23, 45, 81, 219, 132, - 111, 122, 81, 156, 23, 228, 241, 229, 217, 111, 122, 133, 88, 23, 144, - 228, 241, 219, 132, 111, 122, 144, 88, 23, 133, 228, 241, 219, 132, 111, - 122, 81, 88, 23, 228, 241, 219, 132, 111, 122, 45, 133, 88, 23, 50, 144, - 219, 132, 111, 122, 50, 133, 88, 23, 45, 144, 219, 132, 111, 122, 45, - 144, 88, 23, 50, 133, 219, 132, 111, 122, 50, 144, 88, 23, 45, 133, 219, - 132, 111, 122, 144, 156, 23, 133, 228, 241, 229, 217, 111, 122, 133, 156, - 23, 144, 228, 241, 229, 217, 111, 122, 50, 156, 23, 45, 81, 229, 217, - 111, 122, 45, 156, 23, 50, 81, 229, 217, 111, 122, 88, 81, 23, 228, 240, - 111, 122, 156, 55, 237, 216, 228, 240, 111, 122, 88, 55, 237, 216, 228, - 240, 111, 122, 156, 55, 237, 216, 195, 135, 111, 122, 88, 55, 237, 216, - 195, 135, 111, 122, 55, 228, 240, 111, 122, 55, 195, 135, 111, 122, 144, - 202, 170, 23, 50, 235, 133, 111, 122, 144, 55, 23, 50, 202, 169, 111, - 122, 55, 144, 23, 183, 111, 122, 144, 202, 170, 23, 45, 235, 133, 111, - 122, 144, 55, 23, 45, 202, 169, 111, 122, 55, 144, 23, 219, 224, 111, - 122, 133, 202, 170, 23, 50, 235, 133, 111, 122, 133, 55, 23, 50, 202, - 169, 111, 122, 55, 133, 23, 183, 111, 122, 133, 202, 170, 23, 45, 235, - 133, 111, 122, 133, 55, 23, 45, 202, 169, 111, 122, 55, 133, 23, 219, - 224, 111, 122, 81, 202, 170, 23, 50, 235, 133, 111, 122, 81, 55, 23, 50, - 202, 169, 111, 122, 55, 81, 23, 183, 111, 122, 81, 202, 170, 23, 45, 235, - 133, 111, 122, 81, 55, 23, 45, 202, 169, 111, 122, 55, 81, 23, 219, 224, - 111, 122, 144, 202, 170, 23, 228, 241, 235, 133, 111, 122, 144, 55, 23, - 228, 241, 202, 169, 111, 122, 55, 144, 23, 228, 240, 111, 122, 133, 202, - 170, 23, 228, 241, 235, 133, 111, 122, 133, 55, 23, 228, 241, 202, 169, - 111, 122, 55, 133, 23, 228, 240, 111, 122, 81, 202, 170, 23, 228, 241, - 235, 133, 111, 122, 81, 55, 23, 228, 241, 202, 169, 111, 122, 55, 81, 23, - 228, 240, 111, 122, 156, 251, 17, 144, 23, 183, 111, 122, 156, 251, 17, - 144, 23, 219, 224, 111, 122, 156, 251, 17, 133, 23, 219, 224, 111, 122, - 156, 251, 17, 133, 23, 183, 111, 122, 156, 237, 39, 116, 50, 119, 110, - 219, 224, 111, 122, 156, 237, 39, 116, 45, 119, 110, 183, 111, 122, 156, - 237, 39, 238, 217, 111, 122, 156, 219, 224, 111, 122, 156, 196, 77, 111, - 122, 156, 183, 111, 122, 156, 235, 123, 111, 122, 88, 219, 224, 111, 122, - 88, 196, 77, 111, 122, 88, 183, 111, 122, 88, 235, 123, 111, 122, 156, - 45, 23, 88, 183, 111, 122, 156, 133, 23, 88, 235, 123, 111, 122, 88, 45, - 23, 156, 183, 111, 122, 88, 133, 23, 156, 235, 123, 116, 132, 248, 129, - 110, 91, 234, 160, 248, 129, 110, 91, 208, 23, 248, 129, 110, 115, 234, - 158, 248, 129, 110, 132, 248, 129, 110, 232, 226, 234, 158, 248, 129, - 110, 115, 208, 21, 248, 129, 110, 203, 247, 234, 158, 248, 129, 232, 80, - 248, 129, 45, 203, 247, 234, 158, 248, 129, 45, 115, 208, 21, 248, 129, - 45, 232, 226, 234, 158, 248, 129, 45, 132, 248, 129, 45, 115, 234, 158, - 248, 129, 45, 91, 208, 23, 248, 129, 45, 91, 234, 160, 248, 129, 50, 132, - 248, 129, 156, 203, 153, 216, 213, 203, 153, 237, 221, 203, 153, 116, 91, - 234, 160, 248, 129, 50, 91, 234, 160, 248, 129, 208, 28, 110, 219, 224, - 208, 28, 110, 183, 208, 28, 116, 219, 224, 208, 28, 116, 45, 23, 110, 45, - 23, 110, 183, 208, 28, 116, 45, 23, 110, 183, 208, 28, 116, 45, 23, 116, - 50, 23, 110, 219, 224, 208, 28, 116, 45, 23, 116, 50, 23, 110, 183, 208, - 28, 116, 183, 208, 28, 116, 50, 23, 110, 219, 224, 208, 28, 116, 50, 23, - 110, 45, 23, 110, 183, 62, 201, 190, 63, 201, 190, 63, 51, 4, 206, 113, - 239, 0, 63, 51, 239, 33, 62, 2, 201, 190, 51, 4, 228, 241, 233, 5, 51, 4, - 81, 233, 5, 51, 4, 211, 38, 238, 211, 233, 5, 51, 4, 116, 45, 119, 110, - 50, 233, 5, 51, 4, 116, 50, 119, 110, 45, 233, 5, 51, 4, 237, 39, 238, - 211, 233, 5, 62, 2, 201, 190, 63, 2, 201, 190, 62, 207, 92, 63, 207, 92, - 62, 81, 207, 92, 63, 81, 207, 92, 62, 210, 117, 63, 210, 117, 62, 196, - 76, 197, 241, 63, 196, 76, 197, 241, 62, 196, 76, 2, 197, 241, 63, 196, - 76, 2, 197, 241, 62, 206, 203, 197, 241, 63, 206, 203, 197, 241, 62, 206, - 203, 2, 197, 241, 63, 206, 203, 2, 197, 241, 62, 206, 203, 209, 59, 63, - 206, 203, 209, 59, 62, 235, 122, 197, 241, 63, 235, 122, 197, 241, 62, - 235, 122, 2, 197, 241, 63, 235, 122, 2, 197, 241, 62, 219, 219, 197, 241, - 63, 219, 219, 197, 241, 62, 219, 219, 2, 197, 241, 63, 219, 219, 2, 197, - 241, 62, 219, 219, 209, 59, 63, 219, 219, 209, 59, 62, 237, 32, 63, 237, - 32, 63, 237, 33, 239, 33, 62, 2, 237, 32, 232, 235, 218, 232, 63, 243, - 10, 235, 138, 243, 10, 243, 11, 4, 81, 233, 5, 247, 244, 62, 243, 10, - 243, 11, 4, 45, 132, 248, 139, 243, 11, 4, 50, 132, 248, 139, 243, 11, 4, - 110, 132, 248, 139, 243, 11, 4, 116, 132, 248, 139, 243, 11, 4, 116, 50, - 208, 28, 248, 139, 243, 11, 4, 251, 175, 247, 218, 116, 45, 208, 28, 248, - 139, 45, 132, 62, 243, 10, 50, 132, 62, 243, 10, 223, 95, 247, 248, 223, - 95, 63, 243, 10, 116, 132, 223, 95, 63, 243, 10, 110, 132, 223, 95, 63, - 243, 10, 116, 45, 208, 28, 243, 4, 251, 16, 116, 50, 208, 28, 243, 4, - 251, 16, 110, 50, 208, 28, 243, 4, 251, 16, 110, 45, 208, 28, 243, 4, - 251, 16, 116, 132, 243, 10, 110, 132, 243, 10, 62, 110, 50, 197, 241, 62, - 110, 45, 197, 241, 62, 116, 45, 197, 241, 62, 116, 50, 197, 241, 63, 247, - 248, 51, 4, 45, 132, 248, 139, 51, 4, 50, 132, 248, 139, 51, 4, 116, 45, - 237, 39, 132, 248, 139, 51, 4, 110, 50, 237, 39, 132, 248, 139, 63, 51, - 4, 81, 248, 154, 219, 112, 63, 196, 76, 197, 242, 4, 236, 140, 196, 76, - 197, 242, 4, 45, 132, 248, 139, 196, 76, 197, 242, 4, 50, 132, 248, 139, - 220, 13, 243, 10, 63, 51, 4, 116, 45, 208, 27, 63, 51, 4, 110, 45, 208, - 27, 63, 51, 4, 110, 50, 208, 27, 63, 51, 4, 116, 50, 208, 27, 63, 243, - 11, 4, 116, 45, 208, 27, 63, 243, 11, 4, 110, 45, 208, 27, 63, 243, 11, - 4, 110, 50, 208, 27, 63, 243, 11, 4, 116, 50, 208, 27, 116, 45, 197, 241, - 116, 50, 197, 241, 110, 45, 197, 241, 63, 216, 213, 201, 190, 62, 216, - 213, 201, 190, 63, 216, 213, 2, 201, 190, 62, 216, 213, 2, 201, 190, 110, - 50, 197, 241, 62, 200, 199, 4, 207, 119, 242, 210, 196, 117, 202, 48, - 242, 77, 62, 201, 102, 63, 201, 102, 219, 129, 198, 208, 200, 198, 250, - 213, 213, 35, 237, 86, 213, 35, 239, 42, 211, 62, 62, 199, 106, 63, 199, - 106, 249, 107, 248, 62, 249, 107, 111, 4, 243, 125, 249, 107, 111, 4, - 192, 235, 205, 154, 196, 118, 4, 207, 150, 235, 96, 228, 181, 248, 207, - 63, 203, 49, 209, 175, 62, 203, 49, 209, 175, 203, 140, 207, 18, 206, - 122, 232, 190, 229, 224, 247, 248, 62, 45, 209, 58, 223, 148, 62, 50, - 209, 58, 223, 148, 63, 45, 209, 58, 223, 148, 63, 133, 209, 58, 223, 148, - 63, 50, 209, 58, 223, 148, 63, 144, 209, 58, 223, 148, 202, 104, 23, 238, - 215, 247, 71, 56, 207, 164, 56, 248, 162, 56, 247, 151, 251, 99, 211, 39, - 238, 217, 243, 96, 207, 3, 238, 218, 79, 218, 255, 238, 218, 79, 222, - 254, 201, 103, 23, 238, 227, 233, 74, 113, 252, 34, 203, 143, 230, 62, - 23, 202, 213, 210, 61, 113, 192, 22, 192, 106, 197, 231, 40, 229, 219, - 197, 231, 40, 220, 43, 197, 231, 40, 232, 243, 197, 231, 40, 198, 209, - 197, 231, 40, 193, 66, 197, 231, 40, 193, 143, 197, 231, 40, 215, 184, - 197, 231, 40, 234, 207, 193, 94, 79, 237, 60, 63, 232, 92, 233, 103, 63, - 202, 64, 233, 103, 62, 202, 64, 233, 103, 63, 200, 199, 4, 207, 119, 232, - 238, 208, 23, 215, 205, 220, 6, 208, 23, 215, 205, 216, 180, 233, 42, 56, - 234, 207, 217, 97, 56, 222, 167, 205, 115, 196, 57, 214, 94, 209, 77, - 251, 2, 199, 164, 231, 152, 247, 124, 219, 186, 195, 38, 219, 143, 205, - 80, 205, 183, 247, 106, 251, 34, 209, 120, 63, 243, 105, 221, 138, 63, - 243, 105, 208, 14, 63, 243, 105, 206, 131, 63, 243, 105, 248, 152, 63, - 243, 105, 221, 76, 63, 243, 105, 210, 74, 62, 243, 105, 221, 138, 62, - 243, 105, 208, 14, 62, 243, 105, 206, 131, 62, 243, 105, 248, 152, 62, - 243, 105, 221, 76, 62, 243, 105, 210, 74, 62, 201, 245, 200, 211, 63, - 229, 224, 200, 211, 63, 237, 33, 200, 211, 62, 242, 207, 200, 211, 63, - 201, 245, 200, 211, 62, 229, 224, 200, 211, 62, 237, 33, 200, 211, 63, - 242, 207, 200, 211, 228, 181, 201, 195, 208, 23, 213, 6, 234, 160, 213, - 6, 249, 13, 234, 160, 213, 1, 249, 13, 202, 129, 213, 1, 215, 97, 232, - 207, 56, 215, 97, 214, 206, 56, 215, 97, 203, 127, 56, 193, 105, 200, 63, - 238, 217, 234, 204, 200, 63, 238, 217, 196, 87, 207, 88, 113, 207, 88, - 16, 40, 196, 254, 209, 98, 207, 88, 16, 40, 196, 252, 209, 98, 207, 88, - 16, 40, 196, 251, 209, 98, 207, 88, 16, 40, 196, 249, 209, 98, 207, 88, - 16, 40, 196, 247, 209, 98, 207, 88, 16, 40, 196, 245, 209, 98, 207, 88, - 16, 40, 196, 243, 209, 98, 207, 88, 16, 40, 231, 149, 217, 28, 62, 196, - 87, 207, 88, 113, 207, 89, 210, 136, 113, 210, 104, 210, 136, 113, 210, - 3, 210, 136, 56, 193, 92, 113, 237, 25, 233, 102, 237, 25, 233, 101, 237, - 25, 233, 100, 237, 25, 233, 99, 237, 25, 233, 98, 237, 25, 233, 97, 63, - 243, 11, 4, 75, 183, 63, 243, 11, 4, 105, 236, 138, 62, 243, 11, 4, 63, - 75, 183, 62, 243, 11, 4, 105, 63, 236, 138, 215, 221, 40, 192, 106, 215, - 221, 40, 192, 21, 237, 6, 40, 230, 205, 192, 106, 237, 6, 40, 219, 178, - 192, 21, 237, 6, 40, 219, 178, 192, 106, 237, 6, 40, 230, 205, 192, 21, - 63, 232, 217, 62, 232, 217, 230, 62, 23, 209, 180, 251, 127, 238, 214, - 200, 130, 201, 112, 79, 252, 8, 205, 98, 251, 191, 232, 186, 231, 162, - 201, 112, 79, 229, 191, 250, 172, 113, 232, 202, 211, 10, 63, 201, 102, - 115, 219, 107, 239, 19, 183, 115, 219, 107, 239, 19, 219, 224, 193, 155, - 56, 137, 195, 12, 56, 235, 128, 233, 42, 56, 235, 128, 217, 97, 56, 223, - 105, 233, 42, 23, 217, 97, 56, 217, 97, 23, 233, 42, 56, 217, 97, 4, 201, - 28, 56, 217, 97, 4, 201, 28, 23, 217, 97, 23, 233, 42, 56, 81, 217, 97, - 4, 201, 28, 56, 228, 241, 217, 97, 4, 201, 28, 56, 216, 213, 63, 243, 10, - 216, 213, 62, 243, 10, 216, 213, 2, 63, 243, 10, 217, 48, 113, 236, 198, - 113, 196, 84, 210, 103, 113, 242, 89, 232, 74, 196, 53, 214, 83, 247, 7, - 210, 185, 222, 173, 195, 80, 243, 75, 62, 215, 206, 219, 126, 203, 176, - 204, 22, 208, 4, 203, 255, 202, 36, 249, 111, 249, 73, 112, 221, 222, 63, - 235, 108, 217, 90, 63, 235, 108, 221, 138, 62, 235, 108, 217, 90, 62, - 235, 108, 221, 138, 202, 49, 193, 51, 202, 52, 200, 199, 248, 242, 242, - 210, 207, 149, 62, 202, 48, 198, 210, 242, 211, 23, 207, 149, 153, 63, - 203, 49, 209, 175, 153, 62, 203, 49, 209, 175, 63, 237, 33, 223, 163, - 201, 190, 238, 210, 220, 21, 236, 229, 247, 102, 211, 65, 209, 180, 247, - 103, 202, 85, 229, 201, 4, 63, 238, 217, 47, 238, 210, 220, 21, 246, 253, - 213, 44, 234, 72, 251, 157, 211, 96, 45, 193, 129, 198, 19, 62, 197, 10, - 45, 193, 129, 198, 19, 63, 197, 10, 45, 193, 129, 198, 19, 62, 45, 220, - 22, 216, 179, 63, 45, 220, 22, 216, 179, 235, 103, 202, 76, 56, 88, 63, - 235, 122, 197, 241, 45, 242, 219, 234, 72, 112, 205, 154, 233, 83, 237, - 39, 223, 163, 63, 243, 11, 223, 163, 62, 201, 190, 62, 197, 203, 207, 29, - 45, 234, 71, 207, 29, 45, 234, 70, 250, 187, 16, 40, 196, 57, 88, 243, - 11, 4, 201, 28, 23, 105, 185, 58, 210, 23, 206, 205, 223, 107, 210, 23, - 219, 221, 223, 107, 210, 23, 223, 93, 210, 23, 62, 238, 218, 211, 105, - 203, 78, 203, 66, 203, 12, 243, 40, 247, 80, 229, 118, 202, 137, 231, - 163, 193, 51, 228, 153, 231, 163, 4, 230, 30, 217, 72, 16, 40, 219, 131, - 215, 184, 196, 118, 211, 105, 230, 188, 232, 129, 232, 218, 223, 163, - 229, 5, 233, 32, 205, 178, 51, 232, 128, 239, 0, 202, 108, 228, 27, 202, - 112, 209, 251, 4, 249, 111, 199, 87, 223, 19, 249, 93, 113, 229, 229, - 230, 207, 113, 232, 83, 208, 153, 238, 182, 211, 105, 62, 201, 190, 63, - 232, 218, 4, 228, 241, 82, 62, 201, 29, 62, 205, 188, 205, 84, 116, 248, - 134, 205, 84, 62, 205, 84, 110, 248, 134, 205, 84, 63, 205, 84, 63, 88, - 243, 126, 77, 199, 107, 219, 40, 56, 199, 182, 235, 102, 251, 223, 234, - 67, 207, 147, 232, 231, 207, 147, 230, 53, 195, 67, 230, 53, 193, 3, 230, - 53, 110, 50, 210, 33, 210, 33, 116, 50, 210, 33, 63, 213, 208, 62, 213, - 208, 243, 126, 77, 88, 243, 126, 77, 215, 127, 192, 235, 88, 215, 127, - 192, 235, 249, 107, 192, 235, 88, 249, 107, 192, 235, 211, 10, 35, 238, - 217, 88, 35, 238, 217, 211, 77, 247, 22, 238, 217, 88, 211, 77, 247, 22, - 238, 217, 8, 238, 217, 203, 151, 63, 8, 238, 217, 211, 10, 8, 238, 217, - 217, 93, 238, 217, 201, 103, 79, 237, 208, 232, 128, 199, 127, 250, 193, - 232, 128, 249, 108, 250, 193, 88, 232, 128, 249, 108, 250, 193, 232, 128, - 242, 205, 250, 193, 62, 232, 128, 209, 60, 201, 102, 63, 232, 128, 209, - 60, 201, 102, 201, 240, 201, 38, 211, 10, 63, 201, 102, 47, 63, 201, 102, - 211, 77, 247, 22, 62, 201, 102, 62, 247, 22, 63, 201, 102, 211, 10, 62, - 201, 102, 88, 211, 10, 62, 201, 102, 209, 130, 201, 102, 203, 151, 63, - 201, 102, 88, 250, 193, 211, 77, 247, 22, 250, 193, 234, 164, 201, 206, - 250, 193, 234, 164, 209, 60, 62, 201, 102, 234, 164, 209, 60, 209, 130, - 201, 102, 202, 136, 209, 60, 62, 201, 102, 234, 164, 209, 60, 207, 90, - 62, 201, 102, 88, 234, 164, 209, 60, 207, 90, 62, 201, 102, 197, 38, 209, - 60, 62, 201, 102, 202, 131, 209, 60, 250, 193, 199, 127, 250, 193, 211, - 77, 247, 22, 199, 127, 250, 193, 88, 199, 127, 250, 193, 202, 136, 209, - 239, 62, 23, 63, 232, 189, 62, 232, 189, 63, 232, 189, 234, 164, 209, - 239, 211, 10, 62, 232, 189, 47, 211, 77, 247, 22, 234, 164, 209, 60, 201, - 102, 88, 199, 127, 209, 130, 250, 193, 202, 50, 198, 172, 197, 234, 202, - 50, 88, 243, 101, 202, 50, 201, 242, 88, 201, 242, 249, 108, 250, 193, - 234, 164, 199, 127, 208, 189, 250, 193, 88, 234, 164, 199, 127, 208, 189, - 250, 193, 238, 218, 77, 203, 151, 63, 243, 10, 214, 106, 112, 238, 218, - 77, 110, 50, 235, 98, 63, 201, 190, 116, 50, 235, 98, 63, 201, 190, 110, - 50, 203, 151, 63, 201, 190, 116, 50, 203, 151, 63, 201, 190, 62, 208, 13, - 87, 211, 42, 63, 208, 13, 87, 211, 42, 63, 233, 216, 87, 211, 42, 62, - 237, 33, 216, 35, 63, 192, 235, 88, 233, 216, 87, 113, 156, 81, 164, 216, - 213, 81, 164, 88, 81, 164, 88, 202, 170, 153, 242, 75, 207, 252, 87, 211, - 42, 88, 202, 170, 242, 75, 207, 252, 87, 211, 42, 88, 55, 153, 242, 75, - 207, 252, 87, 211, 42, 88, 55, 242, 75, 207, 252, 87, 211, 42, 88, 130, - 202, 170, 242, 75, 207, 252, 87, 211, 42, 88, 130, 55, 242, 75, 207, 252, - 87, 211, 42, 238, 163, 201, 81, 210, 128, 3, 211, 42, 88, 233, 216, 87, - 211, 42, 88, 229, 224, 233, 216, 87, 211, 42, 88, 62, 229, 223, 206, 122, - 88, 62, 229, 224, 247, 248, 232, 190, 229, 223, 206, 122, 232, 190, 229, - 224, 247, 248, 216, 213, 45, 210, 114, 211, 42, 216, 213, 50, 210, 114, - 211, 42, 216, 213, 232, 203, 45, 210, 114, 211, 42, 216, 213, 232, 203, - 50, 210, 114, 211, 42, 216, 213, 219, 219, 251, 116, 248, 54, 211, 42, - 216, 213, 206, 203, 251, 116, 248, 54, 211, 42, 88, 219, 219, 251, 116, - 207, 252, 87, 211, 42, 88, 206, 203, 251, 116, 207, 252, 87, 211, 42, 88, - 219, 219, 251, 116, 248, 54, 211, 42, 88, 206, 203, 251, 116, 248, 54, - 211, 42, 156, 45, 198, 42, 203, 103, 248, 54, 211, 42, 156, 50, 198, 42, - 203, 103, 248, 54, 211, 42, 216, 213, 45, 238, 171, 248, 54, 211, 42, - 216, 213, 50, 238, 171, 248, 54, 211, 42, 236, 241, 214, 106, 47, 17, - 107, 236, 241, 214, 106, 47, 17, 109, 236, 241, 214, 106, 47, 17, 138, - 236, 241, 214, 106, 47, 17, 134, 236, 241, 214, 106, 47, 17, 149, 236, - 241, 214, 106, 47, 17, 169, 236, 241, 214, 106, 47, 17, 175, 236, 241, - 214, 106, 47, 17, 171, 236, 241, 214, 106, 47, 17, 178, 236, 241, 214, - 106, 47, 31, 199, 95, 236, 241, 47, 49, 17, 107, 236, 241, 47, 49, 17, - 109, 236, 241, 47, 49, 17, 138, 236, 241, 47, 49, 17, 134, 236, 241, 47, - 49, 17, 149, 236, 241, 47, 49, 17, 169, 236, 241, 47, 49, 17, 175, 236, - 241, 47, 49, 17, 171, 236, 241, 47, 49, 17, 178, 236, 241, 47, 49, 31, - 199, 95, 236, 241, 214, 106, 47, 49, 17, 107, 236, 241, 214, 106, 47, 49, - 17, 109, 236, 241, 214, 106, 47, 49, 17, 138, 236, 241, 214, 106, 47, 49, - 17, 134, 236, 241, 214, 106, 47, 49, 17, 149, 236, 241, 214, 106, 47, 49, - 17, 169, 236, 241, 214, 106, 47, 49, 17, 175, 236, 241, 214, 106, 47, 49, - 17, 171, 236, 241, 214, 106, 47, 49, 17, 178, 236, 241, 214, 106, 47, 49, - 31, 199, 95, 88, 193, 77, 96, 57, 88, 108, 56, 88, 216, 35, 56, 88, 236, - 200, 56, 88, 202, 2, 234, 204, 57, 88, 96, 57, 88, 186, 234, 204, 57, - 235, 113, 209, 62, 96, 57, 88, 206, 114, 96, 57, 197, 240, 96, 57, 88, - 197, 240, 96, 57, 237, 214, 197, 240, 96, 57, 88, 237, 214, 197, 240, 96, - 57, 62, 96, 57, 198, 225, 198, 52, 96, 250, 235, 198, 225, 248, 75, 96, - 250, 235, 62, 96, 250, 235, 88, 62, 238, 163, 235, 119, 23, 96, 57, 88, - 62, 238, 163, 196, 66, 23, 96, 57, 201, 187, 62, 96, 57, 88, 239, 56, 62, - 96, 57, 206, 202, 63, 96, 57, 219, 218, 63, 96, 57, 249, 145, 203, 151, - 63, 96, 57, 232, 95, 203, 151, 63, 96, 57, 88, 110, 206, 201, 63, 96, 57, - 88, 116, 206, 201, 63, 96, 57, 213, 8, 110, 206, 201, 63, 96, 57, 238, - 171, 219, 4, 213, 8, 116, 206, 201, 63, 96, 57, 47, 88, 63, 96, 57, 193, - 88, 96, 57, 248, 138, 202, 2, 234, 204, 57, 248, 138, 96, 57, 248, 138, - 186, 234, 204, 57, 88, 248, 138, 202, 2, 234, 204, 57, 88, 248, 138, 96, - 57, 88, 248, 138, 186, 234, 204, 57, 199, 129, 96, 57, 88, 199, 128, 96, - 57, 193, 115, 96, 57, 88, 193, 115, 96, 57, 211, 71, 96, 57, 55, 238, - 171, 219, 4, 115, 236, 251, 251, 115, 63, 197, 242, 239, 33, 2, 63, 197, - 241, 209, 254, 211, 77, 200, 228, 211, 77, 200, 180, 45, 206, 7, 249, - 131, 237, 112, 50, 206, 7, 249, 131, 237, 112, 211, 57, 4, 75, 223, 117, - 207, 19, 202, 24, 208, 230, 200, 228, 200, 181, 208, 230, 202, 23, 81, - 249, 88, 4, 228, 241, 106, 13, 206, 180, 237, 38, 179, 236, 199, 13, 233, - 83, 237, 38, 112, 219, 29, 251, 125, 112, 219, 29, 211, 56, 63, 237, 33, - 4, 247, 20, 236, 140, 23, 4, 236, 140, 234, 132, 79, 211, 69, 196, 65, - 110, 50, 239, 2, 4, 236, 140, 116, 45, 239, 2, 4, 236, 140, 45, 211, 12, - 222, 199, 50, 211, 12, 222, 199, 232, 80, 211, 12, 222, 199, 220, 13, - 133, 199, 228, 220, 13, 144, 199, 228, 45, 23, 50, 55, 197, 57, 45, 23, - 50, 199, 228, 45, 215, 131, 179, 50, 199, 228, 179, 45, 199, 228, 133, - 199, 229, 4, 243, 11, 58, 218, 233, 236, 206, 247, 205, 228, 241, 206, - 52, 63, 239, 55, 237, 32, 63, 239, 55, 237, 33, 4, 118, 198, 182, 63, - 239, 55, 237, 33, 4, 96, 198, 182, 63, 51, 4, 118, 198, 182, 63, 51, 4, - 96, 198, 182, 13, 45, 63, 51, 248, 53, 13, 50, 63, 51, 248, 53, 13, 45, - 251, 116, 248, 53, 13, 50, 251, 116, 248, 53, 13, 45, 55, 251, 116, 248, - 53, 13, 50, 55, 251, 116, 248, 53, 13, 45, 63, 198, 42, 203, 103, 248, - 53, 13, 50, 63, 198, 42, 203, 103, 248, 53, 13, 45, 232, 203, 210, 113, - 13, 50, 232, 203, 210, 113, 196, 66, 208, 26, 57, 235, 119, 208, 26, 57, - 251, 85, 231, 202, 243, 11, 57, 242, 221, 231, 202, 243, 11, 57, 50, 64, - 4, 47, 209, 81, 179, 118, 57, 179, 96, 57, 179, 45, 50, 57, 179, 118, 55, - 57, 179, 96, 55, 57, 179, 45, 50, 55, 57, 179, 118, 64, 232, 98, 164, - 179, 96, 64, 232, 98, 164, 179, 118, 55, 64, 232, 98, 164, 179, 96, 55, - 64, 232, 98, 164, 179, 96, 201, 183, 57, 69, 70, 248, 132, 69, 70, 236, - 137, 69, 70, 236, 9, 69, 70, 236, 136, 69, 70, 235, 201, 69, 70, 236, 72, - 69, 70, 236, 8, 69, 70, 236, 135, 69, 70, 235, 169, 69, 70, 236, 40, 69, - 70, 235, 232, 69, 70, 236, 103, 69, 70, 235, 200, 69, 70, 236, 71, 69, - 70, 236, 7, 69, 70, 236, 134, 69, 70, 235, 153, 69, 70, 236, 24, 69, 70, - 235, 216, 69, 70, 236, 87, 69, 70, 235, 184, 69, 70, 236, 55, 69, 70, - 235, 247, 69, 70, 236, 118, 69, 70, 235, 168, 69, 70, 236, 39, 69, 70, - 235, 231, 69, 70, 236, 102, 69, 70, 235, 199, 69, 70, 236, 70, 69, 70, - 236, 6, 69, 70, 236, 133, 69, 70, 235, 145, 69, 70, 236, 16, 69, 70, 235, - 208, 69, 70, 236, 79, 69, 70, 235, 176, 69, 70, 236, 47, 69, 70, 235, - 239, 69, 70, 236, 110, 69, 70, 235, 160, 69, 70, 236, 31, 69, 70, 235, - 223, 69, 70, 236, 94, 69, 70, 235, 191, 69, 70, 236, 62, 69, 70, 235, - 254, 69, 70, 236, 125, 69, 70, 235, 152, 69, 70, 236, 23, 69, 70, 235, - 215, 69, 70, 236, 86, 69, 70, 235, 183, 69, 70, 236, 54, 69, 70, 235, - 246, 69, 70, 236, 117, 69, 70, 235, 167, 69, 70, 236, 38, 69, 70, 235, - 230, 69, 70, 236, 101, 69, 70, 235, 198, 69, 70, 236, 69, 69, 70, 236, 5, - 69, 70, 236, 132, 69, 70, 235, 141, 69, 70, 236, 12, 69, 70, 235, 204, - 69, 70, 236, 75, 69, 70, 235, 172, 69, 70, 236, 43, 69, 70, 235, 235, 69, - 70, 236, 106, 69, 70, 235, 156, 69, 70, 236, 27, 69, 70, 235, 219, 69, - 70, 236, 90, 69, 70, 235, 187, 69, 70, 236, 58, 69, 70, 235, 250, 69, 70, - 236, 121, 69, 70, 235, 148, 69, 70, 236, 19, 69, 70, 235, 211, 69, 70, - 236, 82, 69, 70, 235, 179, 69, 70, 236, 50, 69, 70, 235, 242, 69, 70, - 236, 113, 69, 70, 235, 163, 69, 70, 236, 34, 69, 70, 235, 226, 69, 70, - 236, 97, 69, 70, 235, 194, 69, 70, 236, 65, 69, 70, 236, 1, 69, 70, 236, - 128, 69, 70, 235, 144, 69, 70, 236, 15, 69, 70, 235, 207, 69, 70, 236, - 78, 69, 70, 235, 175, 69, 70, 236, 46, 69, 70, 235, 238, 69, 70, 236, - 109, 69, 70, 235, 159, 69, 70, 236, 30, 69, 70, 235, 222, 69, 70, 236, - 93, 69, 70, 235, 190, 69, 70, 236, 61, 69, 70, 235, 253, 69, 70, 236, - 124, 69, 70, 235, 151, 69, 70, 236, 22, 69, 70, 235, 214, 69, 70, 236, - 85, 69, 70, 235, 182, 69, 70, 236, 53, 69, 70, 235, 245, 69, 70, 236, - 116, 69, 70, 235, 166, 69, 70, 236, 37, 69, 70, 235, 229, 69, 70, 236, - 100, 69, 70, 235, 197, 69, 70, 236, 68, 69, 70, 236, 4, 69, 70, 236, 131, - 69, 70, 235, 139, 69, 70, 236, 10, 69, 70, 235, 202, 69, 70, 236, 73, 69, - 70, 235, 170, 69, 70, 236, 41, 69, 70, 235, 233, 69, 70, 236, 104, 69, - 70, 235, 154, 69, 70, 236, 25, 69, 70, 235, 217, 69, 70, 236, 88, 69, 70, - 235, 185, 69, 70, 236, 56, 69, 70, 235, 248, 69, 70, 236, 119, 69, 70, - 235, 146, 69, 70, 236, 17, 69, 70, 235, 209, 69, 70, 236, 80, 69, 70, - 235, 177, 69, 70, 236, 48, 69, 70, 235, 240, 69, 70, 236, 111, 69, 70, - 235, 161, 69, 70, 236, 32, 69, 70, 235, 224, 69, 70, 236, 95, 69, 70, - 235, 192, 69, 70, 236, 63, 69, 70, 235, 255, 69, 70, 236, 126, 69, 70, - 235, 142, 69, 70, 236, 13, 69, 70, 235, 205, 69, 70, 236, 76, 69, 70, - 235, 173, 69, 70, 236, 44, 69, 70, 235, 236, 69, 70, 236, 107, 69, 70, - 235, 157, 69, 70, 236, 28, 69, 70, 235, 220, 69, 70, 236, 91, 69, 70, - 235, 188, 69, 70, 236, 59, 69, 70, 235, 251, 69, 70, 236, 122, 69, 70, - 235, 149, 69, 70, 236, 20, 69, 70, 235, 212, 69, 70, 236, 83, 69, 70, - 235, 180, 69, 70, 236, 51, 69, 70, 235, 243, 69, 70, 236, 114, 69, 70, - 235, 164, 69, 70, 236, 35, 69, 70, 235, 227, 69, 70, 236, 98, 69, 70, - 235, 195, 69, 70, 236, 66, 69, 70, 236, 2, 69, 70, 236, 129, 69, 70, 235, - 140, 69, 70, 236, 11, 69, 70, 235, 203, 69, 70, 236, 74, 69, 70, 235, - 171, 69, 70, 236, 42, 69, 70, 235, 234, 69, 70, 236, 105, 69, 70, 235, - 155, 69, 70, 236, 26, 69, 70, 235, 218, 69, 70, 236, 89, 69, 70, 235, - 186, 69, 70, 236, 57, 69, 70, 235, 249, 69, 70, 236, 120, 69, 70, 235, - 147, 69, 70, 236, 18, 69, 70, 235, 210, 69, 70, 236, 81, 69, 70, 235, - 178, 69, 70, 236, 49, 69, 70, 235, 241, 69, 70, 236, 112, 69, 70, 235, - 162, 69, 70, 236, 33, 69, 70, 235, 225, 69, 70, 236, 96, 69, 70, 235, - 193, 69, 70, 236, 64, 69, 70, 236, 0, 69, 70, 236, 127, 69, 70, 235, 143, - 69, 70, 236, 14, 69, 70, 235, 206, 69, 70, 236, 77, 69, 70, 235, 174, 69, - 70, 236, 45, 69, 70, 235, 237, 69, 70, 236, 108, 69, 70, 235, 158, 69, - 70, 236, 29, 69, 70, 235, 221, 69, 70, 236, 92, 69, 70, 235, 189, 69, 70, - 236, 60, 69, 70, 235, 252, 69, 70, 236, 123, 69, 70, 235, 150, 69, 70, - 236, 21, 69, 70, 235, 213, 69, 70, 236, 84, 69, 70, 235, 181, 69, 70, - 236, 52, 69, 70, 235, 244, 69, 70, 236, 115, 69, 70, 235, 165, 69, 70, - 236, 36, 69, 70, 235, 228, 69, 70, 236, 99, 69, 70, 235, 196, 69, 70, - 236, 67, 69, 70, 236, 3, 69, 70, 236, 130, 96, 197, 13, 64, 4, 81, 106, - 96, 197, 13, 64, 4, 55, 81, 106, 118, 55, 64, 4, 81, 106, 96, 55, 64, 4, - 81, 106, 45, 50, 55, 64, 4, 81, 106, 96, 197, 13, 64, 232, 98, 164, 118, - 55, 64, 232, 98, 164, 96, 55, 64, 232, 98, 164, 235, 119, 64, 4, 228, - 241, 106, 196, 66, 64, 4, 228, 241, 106, 196, 66, 197, 225, 57, 235, 119, - 197, 225, 57, 118, 55, 237, 216, 57, 96, 55, 237, 216, 57, 118, 197, 225, - 237, 216, 57, 96, 197, 225, 237, 216, 57, 96, 197, 13, 197, 225, 237, - 216, 57, 96, 64, 4, 235, 138, 201, 80, 196, 66, 64, 119, 164, 235, 119, - 64, 119, 164, 96, 64, 4, 199, 216, 4, 81, 106, 96, 64, 4, 199, 216, 4, - 55, 81, 106, 96, 197, 13, 64, 4, 199, 215, 96, 197, 13, 64, 4, 199, 216, - 4, 81, 106, 96, 197, 13, 64, 4, 199, 216, 4, 55, 81, 106, 118, 250, 237, - 96, 250, 237, 118, 55, 250, 237, 96, 55, 250, 237, 118, 64, 119, 62, 237, - 32, 96, 64, 119, 62, 237, 32, 118, 64, 232, 98, 249, 88, 119, 62, 237, - 32, 96, 64, 232, 98, 249, 88, 119, 62, 237, 32, 186, 193, 105, 23, 202, - 2, 234, 204, 57, 186, 234, 204, 23, 202, 2, 193, 105, 57, 186, 193, 105, - 64, 4, 102, 186, 234, 204, 64, 4, 102, 202, 2, 234, 204, 64, 4, 102, 202, - 2, 193, 105, 64, 4, 102, 186, 193, 105, 64, 23, 186, 234, 204, 57, 186, - 234, 204, 64, 23, 202, 2, 234, 204, 57, 202, 2, 234, 204, 64, 23, 202, 2, - 193, 105, 57, 202, 2, 193, 105, 64, 23, 186, 193, 105, 57, 206, 180, 237, - 39, 238, 210, 233, 83, 237, 38, 233, 83, 237, 39, 238, 210, 206, 180, - 237, 38, 202, 2, 234, 204, 64, 238, 210, 186, 234, 204, 57, 186, 234, - 204, 64, 238, 210, 202, 2, 234, 204, 57, 233, 83, 237, 39, 238, 210, 186, - 234, 204, 57, 206, 180, 237, 39, 238, 210, 202, 2, 234, 204, 57, 186, - 234, 204, 64, 238, 210, 186, 193, 105, 57, 186, 193, 105, 64, 238, 210, - 186, 234, 204, 57, 193, 139, 64, 209, 58, 236, 231, 183, 64, 209, 58, 96, - 199, 25, 238, 161, 196, 65, 64, 209, 58, 96, 199, 25, 238, 161, 235, 118, - 64, 209, 58, 235, 119, 199, 25, 238, 161, 219, 214, 64, 209, 58, 235, - 119, 199, 25, 238, 161, 206, 197, 206, 200, 251, 17, 242, 221, 57, 219, - 217, 251, 17, 251, 85, 57, 198, 54, 251, 17, 251, 85, 57, 248, 77, 251, - 17, 251, 85, 57, 198, 54, 251, 17, 242, 221, 64, 4, 216, 34, 198, 54, - 251, 17, 251, 85, 64, 4, 209, 81, 110, 50, 204, 27, 242, 221, 57, 110, - 45, 204, 27, 251, 85, 57, 251, 85, 242, 219, 243, 11, 57, 242, 221, 242, - 219, 243, 11, 57, 96, 64, 93, 203, 40, 118, 57, 118, 64, 93, 203, 40, 96, - 57, 203, 40, 96, 64, 93, 118, 57, 96, 64, 4, 108, 60, 118, 64, 4, 108, - 60, 96, 64, 198, 216, 192, 235, 45, 50, 64, 198, 216, 2, 243, 10, 196, - 66, 197, 13, 64, 232, 98, 2, 243, 10, 45, 181, 133, 50, 181, 144, 230, - 12, 45, 181, 144, 50, 181, 133, 230, 12, 133, 181, 50, 144, 181, 45, 230, - 12, 133, 181, 45, 144, 181, 50, 230, 12, 45, 181, 133, 50, 181, 133, 230, - 12, 133, 181, 50, 144, 181, 50, 230, 12, 45, 181, 144, 50, 181, 144, 230, - 12, 133, 181, 45, 144, 181, 45, 230, 12, 118, 230, 13, 4, 181, 133, 119, - 164, 96, 230, 13, 4, 181, 133, 119, 164, 196, 66, 230, 13, 4, 181, 50, - 119, 164, 235, 119, 230, 13, 4, 181, 50, 119, 164, 118, 230, 13, 4, 181, - 144, 119, 164, 96, 230, 13, 4, 181, 144, 119, 164, 196, 66, 230, 13, 4, - 181, 45, 119, 164, 235, 119, 230, 13, 4, 181, 45, 119, 164, 118, 230, 13, - 4, 181, 133, 232, 98, 164, 96, 230, 13, 4, 181, 133, 232, 98, 164, 196, - 66, 230, 13, 4, 181, 50, 232, 98, 164, 235, 119, 230, 13, 4, 181, 50, - 232, 98, 164, 118, 230, 13, 4, 181, 144, 232, 98, 164, 96, 230, 13, 4, - 181, 144, 232, 98, 164, 196, 66, 230, 13, 4, 181, 45, 232, 98, 164, 235, - 119, 230, 13, 4, 181, 45, 232, 98, 164, 118, 230, 13, 4, 181, 133, 93, - 118, 230, 13, 4, 181, 235, 123, 196, 66, 230, 13, 4, 181, 45, 248, 216, - 196, 66, 230, 13, 4, 181, 183, 96, 230, 13, 4, 181, 133, 93, 96, 230, 13, - 4, 181, 235, 123, 235, 119, 230, 13, 4, 181, 45, 248, 216, 235, 119, 230, - 13, 4, 181, 183, 118, 230, 13, 4, 181, 133, 93, 96, 230, 13, 4, 181, 196, - 77, 118, 230, 13, 4, 181, 144, 93, 96, 230, 13, 4, 181, 235, 123, 96, - 230, 13, 4, 181, 133, 93, 118, 230, 13, 4, 181, 196, 77, 96, 230, 13, 4, - 181, 144, 93, 118, 230, 13, 4, 181, 235, 123, 118, 230, 13, 4, 181, 133, - 93, 179, 237, 215, 118, 230, 13, 4, 181, 144, 248, 233, 179, 237, 215, - 96, 230, 13, 4, 181, 133, 93, 179, 237, 215, 96, 230, 13, 4, 181, 144, - 248, 233, 179, 237, 215, 196, 66, 230, 13, 4, 181, 45, 248, 216, 235, - 119, 230, 13, 4, 181, 183, 235, 119, 230, 13, 4, 181, 45, 248, 216, 196, - 66, 230, 13, 4, 181, 183, 50, 55, 64, 4, 206, 113, 229, 235, 234, 43, 3, - 93, 96, 57, 198, 153, 211, 67, 93, 96, 57, 118, 64, 93, 198, 153, 211, - 66, 96, 64, 93, 198, 153, 211, 66, 96, 64, 93, 251, 165, 234, 45, 159, - 219, 180, 93, 118, 57, 118, 64, 198, 216, 219, 179, 230, 204, 93, 96, 57, - 200, 229, 93, 96, 57, 118, 64, 198, 216, 200, 228, 200, 181, 93, 118, 57, - 45, 232, 237, 199, 215, 50, 232, 237, 199, 215, 133, 232, 237, 199, 215, - 144, 232, 237, 199, 215, 197, 225, 81, 249, 88, 237, 112, 191, 167, 213, - 10, 201, 201, 191, 167, 213, 10, 196, 255, 242, 83, 45, 63, 238, 171, - 248, 53, 50, 63, 238, 171, 248, 53, 45, 63, 210, 113, 50, 63, 210, 113, - 191, 167, 213, 10, 45, 223, 178, 248, 53, 191, 167, 213, 10, 50, 223, - 178, 248, 53, 191, 167, 213, 10, 45, 248, 166, 248, 53, 191, 167, 213, - 10, 50, 248, 166, 248, 53, 45, 51, 248, 54, 4, 196, 103, 50, 51, 248, 54, - 4, 196, 103, 45, 51, 248, 54, 4, 198, 183, 223, 163, 198, 54, 239, 1, 50, - 51, 248, 54, 4, 198, 183, 223, 163, 248, 77, 239, 1, 45, 51, 248, 54, 4, - 198, 183, 223, 163, 248, 77, 239, 1, 50, 51, 248, 54, 4, 198, 183, 223, - 163, 198, 54, 239, 1, 45, 251, 116, 248, 54, 4, 236, 140, 50, 251, 116, - 248, 54, 4, 236, 140, 45, 251, 17, 219, 180, 248, 53, 50, 251, 17, 230, - 204, 248, 53, 55, 45, 251, 17, 230, 204, 248, 53, 55, 50, 251, 17, 219, - 180, 248, 53, 45, 62, 198, 42, 203, 103, 248, 53, 50, 62, 198, 42, 203, - 103, 248, 53, 235, 138, 233, 39, 81, 191, 21, 219, 112, 216, 226, 251, - 116, 211, 69, 219, 224, 50, 251, 116, 195, 168, 4, 201, 190, 216, 226, - 50, 251, 116, 4, 236, 140, 251, 116, 4, 206, 9, 223, 117, 252, 47, 251, - 115, 201, 225, 251, 116, 211, 69, 219, 224, 201, 225, 251, 116, 211, 69, - 196, 77, 153, 251, 115, 207, 18, 251, 115, 251, 116, 4, 196, 103, 207, - 18, 251, 116, 4, 196, 103, 211, 172, 251, 116, 211, 69, 196, 77, 211, - 172, 251, 116, 211, 69, 235, 123, 216, 226, 251, 116, 4, 211, 77, 250, - 251, 234, 91, 223, 163, 64, 209, 58, 133, 23, 183, 216, 226, 251, 116, 4, - 211, 77, 250, 251, 234, 91, 223, 163, 64, 209, 58, 133, 23, 219, 224, - 216, 226, 251, 116, 4, 211, 77, 250, 251, 234, 91, 223, 163, 64, 209, 58, - 144, 23, 183, 216, 226, 251, 116, 4, 211, 77, 250, 251, 234, 91, 223, - 163, 64, 209, 58, 144, 23, 219, 224, 216, 226, 251, 116, 4, 211, 77, 250, - 251, 234, 91, 223, 163, 64, 209, 58, 50, 23, 196, 77, 216, 226, 251, 116, - 4, 211, 77, 250, 251, 234, 91, 223, 163, 64, 209, 58, 45, 23, 196, 77, - 216, 226, 251, 116, 4, 211, 77, 250, 251, 234, 91, 223, 163, 64, 209, 58, - 50, 23, 235, 123, 216, 226, 251, 116, 4, 211, 77, 250, 251, 234, 91, 223, - 163, 64, 209, 58, 45, 23, 235, 123, 207, 18, 234, 105, 203, 252, 234, - 105, 203, 253, 4, 211, 6, 234, 105, 203, 253, 4, 2, 243, 11, 58, 234, - 105, 203, 253, 4, 50, 64, 58, 234, 105, 203, 253, 4, 45, 64, 58, 243, 11, - 4, 228, 241, 164, 47, 81, 164, 47, 210, 118, 47, 207, 19, 202, 23, 47, - 209, 254, 243, 11, 236, 206, 247, 205, 228, 241, 249, 88, 23, 198, 54, - 132, 236, 206, 247, 205, 81, 164, 243, 11, 4, 200, 183, 192, 235, 47, - 251, 83, 236, 200, 56, 133, 64, 198, 216, 243, 10, 47, 63, 247, 248, 47, - 247, 248, 47, 219, 179, 47, 230, 203, 243, 11, 4, 2, 243, 11, 119, 199, - 34, 183, 243, 11, 4, 105, 228, 241, 201, 16, 119, 199, 34, 183, 112, 206, - 180, 237, 39, 202, 97, 112, 233, 83, 237, 39, 202, 97, 112, 250, 193, - 112, 2, 243, 10, 112, 201, 190, 105, 222, 198, 201, 188, 197, 242, 4, 75, - 58, 197, 242, 4, 196, 103, 206, 9, 223, 163, 197, 241, 197, 242, 4, 204, - 4, 250, 183, 248, 76, 50, 197, 242, 93, 45, 197, 241, 45, 197, 242, 248, - 216, 81, 164, 81, 249, 88, 248, 216, 50, 197, 241, 248, 64, 4, 45, 132, - 248, 139, 248, 64, 4, 50, 132, 248, 139, 62, 248, 63, 25, 4, 45, 132, - 248, 139, 25, 4, 50, 132, 248, 139, 63, 228, 174, 62, 228, 174, 45, 193, - 72, 233, 39, 50, 193, 72, 233, 39, 45, 55, 193, 72, 233, 39, 50, 55, 193, - 72, 233, 39, 223, 155, 223, 139, 198, 179, 139, 223, 139, 223, 140, 214, - 108, 4, 81, 164, 235, 132, 215, 131, 51, 4, 239, 25, 211, 11, 223, 152, - 250, 219, 202, 254, 208, 200, 234, 43, 3, 23, 202, 99, 210, 118, 234, 43, - 3, 23, 202, 99, 210, 119, 4, 198, 153, 58, 228, 17, 119, 23, 202, 99, - 210, 118, 231, 14, 201, 101, 199, 22, 235, 122, 197, 242, 4, 45, 132, - 248, 139, 235, 122, 197, 242, 4, 50, 132, 248, 139, 62, 237, 33, 4, 144, - 57, 62, 218, 232, 63, 243, 11, 4, 144, 57, 62, 243, 11, 4, 144, 57, 234, - 25, 63, 201, 190, 234, 25, 62, 201, 190, 234, 25, 63, 237, 32, 234, 25, - 62, 237, 32, 234, 25, 63, 243, 10, 234, 25, 62, 243, 10, 206, 51, 207, - 19, 202, 24, 211, 66, 202, 24, 4, 211, 6, 207, 19, 202, 24, 4, 228, 241, - 106, 248, 175, 202, 23, 248, 175, 207, 19, 202, 23, 55, 209, 81, 197, - 225, 209, 81, 219, 219, 238, 163, 251, 116, 248, 53, 206, 203, 238, 163, - 251, 116, 248, 53, 198, 137, 216, 32, 215, 60, 47, 75, 211, 66, 215, 60, - 47, 108, 211, 66, 215, 60, 47, 25, 211, 66, 215, 60, 196, 93, 211, 67, 4, - 236, 140, 215, 60, 196, 93, 211, 67, 4, 209, 81, 215, 60, 51, 223, 100, - 211, 66, 215, 60, 51, 196, 93, 211, 66, 105, 219, 29, 23, 211, 66, 105, - 219, 29, 211, 57, 211, 66, 215, 60, 25, 211, 66, 215, 236, 105, 200, 204, - 200, 202, 4, 223, 113, 208, 26, 223, 114, 211, 66, 232, 246, 210, 107, - 223, 113, 223, 114, 4, 55, 106, 223, 114, 250, 143, 4, 202, 97, 243, 3, - 232, 76, 251, 85, 223, 111, 219, 113, 223, 112, 4, 207, 91, 210, 86, 250, - 245, 209, 52, 219, 113, 223, 112, 4, 204, 27, 210, 86, 250, 245, 209, 52, - 219, 113, 223, 112, 213, 12, 223, 157, 199, 34, 209, 52, 223, 114, 250, - 245, 42, 209, 62, 211, 66, 208, 19, 223, 114, 211, 66, 223, 114, 4, 118, - 64, 4, 102, 223, 114, 4, 25, 56, 223, 114, 4, 223, 99, 223, 114, 4, 196, - 92, 223, 114, 4, 211, 6, 223, 114, 4, 196, 103, 222, 199, 220, 13, 45, - 197, 242, 211, 66, 191, 167, 213, 10, 205, 92, 239, 62, 191, 167, 213, - 10, 205, 92, 209, 126, 191, 167, 213, 10, 205, 92, 208, 195, 108, 3, 4, - 2, 243, 11, 58, 108, 3, 4, 243, 2, 252, 61, 58, 108, 3, 4, 198, 153, 58, - 108, 3, 4, 75, 60, 108, 3, 4, 198, 153, 60, 108, 3, 4, 200, 230, 109, - 108, 3, 4, 62, 197, 241, 216, 35, 3, 4, 242, 75, 58, 216, 35, 3, 4, 75, - 60, 216, 35, 3, 4, 233, 83, 236, 138, 216, 35, 3, 4, 206, 180, 236, 138, - 108, 3, 223, 163, 45, 132, 243, 10, 108, 3, 223, 163, 50, 132, 243, 10, - 195, 152, 211, 57, 238, 218, 208, 200, 215, 127, 3, 4, 75, 58, 215, 127, - 3, 4, 196, 103, 204, 24, 208, 201, 4, 248, 77, 242, 218, 202, 68, 208, - 200, 215, 127, 3, 223, 163, 45, 132, 243, 10, 215, 127, 3, 223, 163, 50, - 132, 243, 10, 47, 215, 127, 3, 4, 243, 2, 252, 60, 215, 127, 3, 223, 163, - 55, 243, 10, 47, 236, 200, 56, 108, 3, 223, 163, 197, 241, 216, 35, 3, - 223, 163, 197, 241, 215, 127, 3, 223, 163, 197, 241, 223, 108, 208, 200, - 206, 198, 223, 108, 208, 200, 191, 167, 213, 10, 207, 64, 239, 62, 251, - 147, 211, 57, 239, 9, 223, 100, 4, 236, 140, 196, 93, 4, 216, 35, 56, - 196, 93, 4, 211, 6, 223, 100, 4, 211, 6, 223, 100, 4, 219, 29, 251, 125, - 196, 93, 4, 219, 29, 211, 56, 196, 93, 93, 223, 99, 223, 100, 93, 196, - 92, 196, 93, 93, 249, 88, 93, 223, 99, 223, 100, 93, 249, 88, 93, 196, - 92, 196, 93, 248, 216, 23, 222, 198, 4, 196, 92, 223, 100, 248, 216, 23, - 222, 198, 4, 223, 99, 242, 219, 196, 93, 4, 204, 3, 242, 219, 223, 100, - 4, 204, 3, 55, 51, 223, 99, 55, 51, 196, 92, 242, 219, 196, 93, 4, 204, - 4, 23, 202, 68, 208, 200, 219, 29, 23, 4, 75, 58, 219, 29, 211, 57, 4, - 75, 58, 55, 219, 29, 251, 125, 55, 219, 29, 211, 56, 105, 223, 101, 219, - 29, 251, 125, 105, 223, 101, 219, 29, 211, 56, 202, 80, 220, 13, 211, 56, - 202, 80, 220, 13, 251, 125, 219, 29, 211, 57, 211, 1, 219, 29, 251, 125, - 219, 29, 23, 4, 82, 201, 80, 219, 29, 211, 57, 4, 82, 201, 80, 219, 29, - 23, 4, 228, 241, 237, 215, 219, 29, 211, 57, 4, 228, 241, 237, 215, 219, - 29, 23, 4, 55, 211, 6, 219, 29, 23, 4, 196, 103, 219, 29, 23, 4, 55, 196, - 103, 2, 195, 149, 4, 196, 103, 219, 29, 211, 57, 4, 55, 211, 6, 219, 29, - 211, 57, 4, 55, 196, 103, 191, 167, 213, 10, 236, 152, 251, 75, 191, 167, - 213, 10, 207, 137, 251, 75, 234, 43, 3, 4, 75, 60, 228, 17, 4, 75, 58, - 197, 225, 228, 241, 249, 88, 4, 55, 81, 106, 197, 225, 228, 241, 249, 88, - 4, 197, 225, 81, 106, 198, 153, 211, 67, 4, 75, 58, 198, 153, 211, 67, 4, - 206, 180, 236, 138, 202, 180, 216, 35, 202, 179, 239, 49, 4, 75, 58, 234, - 43, 4, 250, 193, 251, 165, 234, 45, 119, 4, 243, 2, 252, 60, 251, 40, - 234, 45, 211, 57, 234, 45, 159, 234, 43, 3, 93, 108, 56, 108, 3, 93, 234, - 43, 56, 234, 43, 3, 93, 198, 153, 211, 66, 55, 242, 84, 234, 44, 105, - 239, 41, 234, 43, 202, 194, 115, 239, 41, 234, 43, 202, 194, 234, 43, 3, - 4, 105, 185, 93, 23, 105, 185, 60, 234, 36, 4, 232, 128, 185, 58, 219, - 180, 4, 243, 11, 223, 117, 230, 204, 4, 243, 11, 223, 117, 219, 180, 4, - 208, 13, 87, 58, 230, 204, 4, 208, 13, 87, 58, 219, 180, 211, 57, 202, - 99, 234, 45, 159, 230, 204, 211, 57, 202, 99, 234, 45, 159, 219, 180, - 211, 57, 202, 99, 234, 45, 119, 4, 75, 223, 117, 230, 204, 211, 57, 202, - 99, 234, 45, 119, 4, 75, 223, 117, 219, 180, 211, 57, 202, 99, 234, 45, - 119, 4, 75, 58, 230, 204, 211, 57, 202, 99, 234, 45, 119, 4, 75, 58, 219, - 180, 211, 57, 202, 99, 234, 45, 119, 4, 75, 93, 183, 230, 204, 211, 57, - 202, 99, 234, 45, 119, 4, 75, 93, 219, 224, 219, 180, 211, 57, 251, 41, - 230, 204, 211, 57, 251, 41, 219, 180, 23, 202, 168, 213, 12, 234, 45, - 159, 230, 204, 23, 202, 168, 213, 12, 234, 45, 159, 219, 180, 23, 213, - 12, 251, 41, 230, 204, 23, 213, 12, 251, 41, 219, 180, 93, 235, 131, 234, - 45, 93, 230, 203, 230, 204, 93, 235, 131, 234, 45, 93, 219, 179, 219, - 180, 93, 202, 180, 211, 57, 234, 44, 230, 204, 93, 202, 180, 211, 57, - 234, 44, 219, 180, 93, 202, 180, 93, 230, 203, 230, 204, 93, 202, 180, - 93, 219, 179, 219, 180, 93, 230, 204, 93, 235, 131, 234, 44, 230, 204, - 93, 219, 180, 93, 235, 131, 234, 44, 219, 180, 93, 202, 99, 234, 45, 93, - 230, 204, 93, 202, 99, 234, 44, 230, 204, 93, 202, 99, 234, 45, 93, 219, - 180, 93, 202, 99, 234, 44, 202, 99, 234, 45, 119, 211, 57, 219, 179, 202, - 99, 234, 45, 119, 211, 57, 230, 203, 202, 99, 234, 45, 119, 211, 57, 219, - 180, 4, 75, 223, 117, 202, 99, 234, 45, 119, 211, 57, 230, 204, 4, 75, - 223, 117, 235, 131, 234, 45, 119, 211, 57, 219, 179, 235, 131, 234, 45, - 119, 211, 57, 230, 203, 235, 131, 202, 99, 234, 45, 119, 211, 57, 219, - 179, 235, 131, 202, 99, 234, 45, 119, 211, 57, 230, 203, 202, 180, 211, - 57, 219, 179, 202, 180, 211, 57, 230, 203, 202, 180, 93, 219, 180, 93, - 234, 43, 56, 202, 180, 93, 230, 204, 93, 234, 43, 56, 55, 214, 88, 219, - 179, 55, 214, 88, 230, 203, 55, 214, 88, 219, 180, 4, 196, 103, 230, 204, - 211, 1, 219, 179, 230, 204, 248, 216, 219, 179, 219, 180, 242, 219, 247, - 205, 238, 164, 230, 204, 242, 219, 247, 205, 238, 164, 219, 180, 242, - 219, 247, 205, 238, 165, 93, 202, 99, 234, 44, 230, 204, 242, 219, 247, - 205, 238, 165, 93, 202, 99, 234, 44, 202, 69, 199, 38, 220, 11, 199, 38, - 202, 69, 199, 39, 211, 57, 234, 45, 159, 220, 11, 199, 39, 211, 57, 234, - 45, 159, 234, 43, 3, 4, 247, 241, 58, 208, 232, 93, 202, 168, 234, 43, - 56, 200, 221, 93, 202, 168, 234, 43, 56, 208, 232, 93, 202, 168, 213, 12, - 234, 45, 159, 200, 221, 93, 202, 168, 213, 12, 234, 45, 159, 208, 232, - 93, 234, 43, 56, 200, 221, 93, 234, 43, 56, 208, 232, 93, 213, 12, 234, - 45, 159, 200, 221, 93, 213, 12, 234, 45, 159, 208, 232, 93, 251, 165, - 234, 45, 159, 200, 221, 93, 251, 165, 234, 45, 159, 208, 232, 93, 213, - 12, 251, 165, 234, 45, 159, 200, 221, 93, 213, 12, 251, 165, 234, 45, - 159, 55, 208, 231, 55, 200, 220, 200, 229, 4, 236, 140, 200, 181, 4, 236, - 140, 200, 229, 4, 108, 3, 60, 200, 181, 4, 108, 3, 60, 200, 229, 4, 215, - 127, 3, 60, 200, 181, 4, 215, 127, 3, 60, 200, 229, 79, 211, 57, 234, 45, - 119, 4, 75, 58, 200, 181, 79, 211, 57, 234, 45, 119, 4, 75, 58, 200, 229, - 79, 93, 234, 43, 56, 200, 181, 79, 93, 234, 43, 56, 200, 229, 79, 93, - 198, 153, 211, 66, 200, 181, 79, 93, 198, 153, 211, 66, 200, 229, 79, 93, - 251, 165, 234, 45, 159, 200, 181, 79, 93, 251, 165, 234, 45, 159, 200, - 229, 79, 93, 213, 12, 234, 45, 159, 200, 181, 79, 93, 213, 12, 234, 45, - 159, 51, 45, 211, 77, 111, 211, 66, 51, 50, 211, 77, 111, 211, 66, 242, - 219, 200, 228, 242, 219, 200, 180, 242, 219, 200, 229, 211, 57, 234, 45, - 159, 242, 219, 200, 181, 211, 57, 234, 45, 159, 200, 229, 93, 200, 180, - 200, 181, 93, 200, 228, 200, 229, 93, 200, 228, 200, 181, 93, 200, 180, - 200, 181, 248, 216, 200, 228, 200, 181, 248, 216, 23, 222, 198, 247, 205, - 237, 216, 4, 200, 228, 234, 132, 79, 211, 69, 235, 118, 209, 116, 4, 199, - 122, 198, 53, 198, 7, 223, 99, 232, 147, 213, 27, 203, 40, 45, 199, 228, - 203, 40, 144, 199, 228, 203, 40, 133, 199, 228, 209, 255, 4, 206, 8, 81, - 249, 88, 197, 225, 50, 197, 57, 55, 81, 249, 88, 45, 197, 57, 81, 249, - 88, 55, 45, 197, 57, 55, 81, 249, 88, 55, 45, 197, 57, 179, 237, 216, - 232, 98, 45, 216, 191, 79, 55, 195, 135, 203, 40, 144, 199, 229, 4, 211, - 6, 203, 40, 133, 199, 229, 4, 196, 103, 203, 40, 133, 199, 229, 93, 203, - 40, 144, 199, 228, 55, 144, 199, 228, 55, 133, 199, 228, 55, 201, 28, - 213, 12, 56, 207, 18, 55, 201, 28, 213, 12, 56, 236, 164, 213, 12, 236, - 208, 4, 207, 18, 214, 107, 202, 97, 81, 219, 113, 4, 243, 11, 58, 81, - 219, 113, 4, 243, 11, 60, 144, 199, 229, 4, 243, 11, 60, 210, 119, 4, - 228, 241, 106, 210, 119, 4, 198, 153, 211, 66, 197, 225, 81, 249, 88, - 248, 168, 207, 65, 197, 225, 81, 249, 88, 4, 228, 241, 106, 197, 225, - 242, 84, 211, 66, 197, 225, 214, 88, 219, 179, 197, 225, 214, 88, 230, - 203, 235, 131, 202, 99, 219, 180, 211, 57, 234, 45, 159, 235, 131, 202, - 99, 230, 204, 211, 57, 234, 45, 159, 197, 225, 202, 24, 248, 168, 207, - 65, 220, 13, 197, 225, 81, 249, 88, 211, 66, 55, 202, 24, 211, 66, 63, - 81, 164, 215, 60, 63, 81, 164, 186, 234, 204, 63, 57, 186, 193, 105, 63, - 57, 202, 2, 234, 204, 63, 57, 202, 2, 193, 105, 63, 57, 45, 50, 63, 57, - 118, 62, 57, 196, 66, 62, 57, 235, 119, 62, 57, 186, 234, 204, 62, 57, - 186, 193, 105, 62, 57, 202, 2, 234, 204, 62, 57, 202, 2, 193, 105, 62, - 57, 45, 50, 62, 57, 133, 144, 62, 57, 96, 64, 4, 198, 136, 235, 118, 96, - 64, 4, 198, 136, 196, 65, 118, 64, 4, 198, 136, 235, 118, 118, 64, 4, - 198, 136, 196, 65, 51, 4, 198, 54, 132, 248, 139, 51, 4, 248, 77, 132, - 248, 139, 51, 4, 116, 50, 237, 39, 132, 248, 139, 51, 4, 110, 45, 237, - 39, 132, 248, 139, 237, 33, 4, 45, 132, 248, 139, 237, 33, 4, 50, 132, - 248, 139, 237, 33, 4, 198, 54, 132, 248, 139, 237, 33, 4, 248, 77, 132, - 248, 139, 235, 138, 201, 190, 62, 220, 13, 201, 190, 63, 220, 13, 201, - 190, 62, 195, 83, 2, 201, 190, 63, 195, 83, 2, 201, 190, 62, 210, 24, 63, - 210, 24, 63, 229, 182, 62, 229, 182, 228, 241, 62, 229, 182, 62, 220, 13, - 243, 10, 62, 216, 213, 237, 32, 63, 216, 213, 237, 32, 62, 216, 213, 218, - 232, 63, 216, 213, 218, 232, 62, 2, 237, 32, 62, 2, 218, 232, 63, 2, 218, - 232, 62, 228, 241, 234, 121, 63, 228, 241, 234, 121, 62, 81, 234, 121, - 63, 81, 234, 121, 45, 64, 4, 2, 243, 10, 115, 118, 250, 231, 45, 64, 4, - 47, 209, 81, 179, 118, 201, 183, 57, 118, 197, 13, 64, 4, 81, 106, 118, - 197, 13, 64, 4, 55, 81, 106, 118, 197, 13, 64, 232, 98, 164, 118, 197, - 13, 197, 225, 237, 216, 57, 118, 64, 4, 235, 138, 201, 80, 118, 64, 4, - 199, 216, 4, 81, 106, 118, 64, 4, 199, 216, 4, 55, 81, 106, 118, 197, 13, - 64, 4, 199, 215, 118, 197, 13, 64, 4, 199, 216, 4, 81, 106, 118, 197, 13, - 64, 4, 199, 216, 4, 55, 81, 106, 118, 64, 198, 216, 192, 235, 193, 139, - 64, 209, 58, 236, 231, 219, 224, 234, 43, 3, 93, 118, 57, 207, 19, 198, - 153, 211, 67, 93, 118, 57, 118, 64, 93, 207, 19, 251, 165, 234, 45, 159, - 96, 64, 198, 216, 230, 203, 96, 64, 198, 216, 200, 180, 118, 208, 26, 57, - 96, 208, 26, 57, 207, 19, 198, 153, 211, 67, 93, 96, 57, 96, 64, 93, 207, - 19, 251, 165, 234, 45, 159, 198, 153, 211, 67, 93, 118, 57, 118, 64, 93, - 251, 165, 234, 45, 159, 118, 64, 93, 207, 19, 198, 153, 211, 66, 96, 64, - 93, 207, 19, 198, 153, 211, 66, 235, 119, 197, 240, 191, 21, 57, 203, 40, - 202, 99, 186, 57, 203, 40, 249, 143, 202, 2, 57, 63, 216, 213, 201, 102, - 62, 2, 201, 102, 63, 2, 201, 102, 62, 206, 203, 210, 24, 63, 206, 203, - 210, 24, 88, 220, 13, 243, 10, 88, 211, 8, 4, 211, 8, 223, 117, 88, 243, - 11, 4, 243, 11, 223, 117, 88, 243, 10, 88, 47, 205, 154, 202, 99, 186, - 64, 4, 228, 250, 229, 235, 249, 143, 202, 2, 64, 4, 228, 250, 199, 215, - 202, 99, 186, 64, 4, 228, 241, 199, 215, 249, 143, 202, 2, 64, 4, 228, - 241, 199, 215, 248, 224, 64, 209, 58, 235, 119, 199, 25, 186, 234, 203, - 203, 40, 248, 224, 64, 209, 58, 235, 119, 199, 25, 186, 234, 203, 118, - 197, 240, 57, 196, 66, 197, 240, 57, 96, 197, 240, 57, 235, 119, 197, - 240, 57, 45, 50, 197, 240, 57, 133, 144, 197, 240, 57, 186, 193, 105, - 197, 240, 57, 186, 234, 204, 197, 240, 57, 202, 2, 234, 204, 197, 240, - 57, 202, 2, 193, 105, 197, 240, 57, 118, 197, 240, 237, 214, 57, 196, 66, - 197, 240, 237, 214, 57, 96, 197, 240, 237, 214, 57, 235, 119, 197, 240, - 237, 214, 57, 242, 221, 197, 240, 211, 77, 243, 11, 57, 251, 85, 197, - 240, 211, 77, 243, 11, 57, 118, 197, 240, 64, 119, 164, 196, 66, 197, - 240, 64, 119, 164, 96, 197, 240, 64, 119, 164, 235, 119, 197, 240, 64, - 119, 164, 186, 193, 105, 197, 240, 64, 119, 164, 186, 234, 204, 197, 240, - 64, 119, 164, 202, 2, 234, 204, 197, 240, 64, 119, 164, 202, 2, 193, 105, - 197, 240, 64, 119, 164, 118, 197, 240, 64, 4, 55, 228, 241, 106, 196, 66, - 197, 240, 64, 4, 55, 228, 241, 106, 96, 197, 240, 64, 4, 55, 228, 241, - 106, 235, 119, 197, 240, 64, 4, 55, 228, 241, 106, 228, 241, 199, 237, - 221, 222, 81, 199, 237, 221, 222, 118, 197, 240, 64, 139, 96, 197, 240, - 57, 196, 66, 197, 240, 64, 118, 79, 235, 119, 197, 240, 57, 96, 197, 240, - 64, 139, 118, 197, 240, 57, 235, 119, 197, 240, 64, 118, 79, 196, 66, - 197, 240, 57, 118, 197, 240, 210, 196, 250, 231, 196, 66, 197, 240, 210, - 196, 250, 231, 96, 197, 240, 210, 196, 250, 231, 235, 119, 197, 240, 210, - 196, 250, 231, 118, 62, 47, 63, 57, 196, 66, 62, 47, 63, 57, 96, 62, 47, - 63, 57, 235, 119, 62, 47, 63, 57, 251, 85, 197, 240, 50, 196, 221, 57, - 251, 85, 197, 240, 248, 77, 196, 221, 57, 251, 85, 197, 240, 45, 196, - 221, 57, 251, 85, 197, 240, 198, 54, 196, 221, 57, 207, 23, 219, 224, - 207, 23, 183, 214, 77, 219, 224, 214, 77, 183, 232, 128, 239, 2, 250, - 232, 243, 6, 251, 84, 96, 62, 57, 16, 40, 196, 255, 42, 234, 133, 198, - 225, 198, 52, 118, 234, 37, 250, 235, 198, 225, 206, 204, 196, 66, 234, - 37, 250, 235, 198, 225, 198, 52, 96, 234, 37, 250, 235, 198, 225, 219, - 220, 235, 119, 234, 37, 250, 235, 62, 118, 234, 37, 250, 235, 62, 196, - 66, 234, 37, 250, 235, 62, 96, 234, 37, 250, 235, 62, 235, 119, 234, 37, - 250, 235, 235, 119, 197, 240, 64, 4, 179, 198, 136, 219, 214, 235, 119, - 197, 240, 64, 4, 179, 198, 136, 206, 197, 196, 66, 197, 240, 64, 4, 179, - 198, 136, 219, 214, 196, 66, 197, 240, 64, 4, 179, 198, 136, 206, 197, - 118, 197, 240, 64, 4, 179, 198, 136, 196, 65, 96, 197, 240, 64, 4, 179, - 198, 136, 196, 65, 118, 197, 240, 64, 4, 179, 198, 136, 235, 118, 96, - 197, 240, 64, 4, 179, 198, 136, 235, 118, 62, 238, 163, 235, 119, 23, - 118, 57, 62, 238, 163, 235, 119, 23, 96, 57, 62, 238, 163, 196, 66, 23, - 118, 57, 62, 238, 163, 196, 66, 23, 96, 57, 62, 238, 163, 118, 23, 196, - 66, 57, 62, 238, 163, 96, 23, 196, 66, 57, 62, 238, 163, 118, 23, 235, - 119, 57, 62, 238, 163, 96, 23, 235, 119, 57, 206, 248, 64, 144, 219, 224, - 206, 248, 64, 144, 183, 206, 248, 64, 133, 219, 224, 206, 248, 64, 133, - 183, 206, 248, 64, 45, 196, 77, 206, 248, 64, 50, 196, 77, 206, 248, 64, - 45, 235, 123, 206, 248, 64, 50, 235, 123, 196, 66, 63, 64, 232, 98, 249, - 88, 4, 228, 241, 164, 133, 250, 236, 223, 163, 42, 207, 93, 248, 62, 211, - 1, 63, 201, 188, 211, 1, 63, 23, 62, 201, 188, 211, 1, 62, 201, 188, 249, - 107, 111, 4, 156, 192, 235, 47, 192, 235, 47, 28, 192, 235, 62, 51, 247, - 19, 62, 237, 33, 247, 19, 153, 62, 210, 24, 228, 241, 62, 211, 160, 62, - 211, 160, 62, 216, 213, 196, 76, 197, 242, 247, 19, 62, 216, 213, 235, - 122, 197, 242, 247, 19, 62, 216, 213, 219, 219, 197, 242, 247, 19, 62, - 216, 213, 206, 203, 197, 242, 247, 19, 214, 95, 232, 146, 109, 198, 54, - 132, 62, 243, 10, 248, 77, 132, 62, 243, 10, 156, 232, 128, 209, 60, 62, - 238, 159, 206, 122, 156, 232, 128, 209, 60, 62, 238, 159, 63, 232, 128, - 209, 60, 238, 159, 206, 122, 63, 232, 128, 209, 60, 238, 159, 51, 209, - 25, 223, 144, 196, 107, 56, 230, 187, 77, 209, 78, 232, 146, 109, 209, - 78, 232, 146, 138, 209, 78, 232, 146, 134, 209, 78, 232, 146, 149, 198, - 9, 208, 185, 250, 189, 228, 91, 209, 196, 214, 91, 63, 215, 206, 204, 33, - 62, 237, 33, 211, 105, 238, 217, 197, 202, 156, 215, 206, 250, 227, 238, - 179, 230, 88, 191, 75, 221, 2, 251, 53, 252, 32, 193, 247, 209, 26, 45, - 132, 62, 201, 102, 50, 132, 62, 201, 102, 201, 103, 4, 45, 132, 248, 139, - 201, 103, 4, 50, 132, 248, 139, 118, 197, 13, 64, 4, 197, 242, 250, 233, - 196, 66, 197, 13, 64, 4, 197, 242, 250, 233, 96, 197, 13, 64, 4, 197, - 242, 250, 233, 235, 119, 197, 13, 64, 4, 197, 242, 250, 233, 234, 27, - 232, 146, 107, 234, 27, 232, 146, 109, 205, 51, 206, 31, 250, 188, 16, - 195, 52, 206, 31, 250, 188, 16, 212, 254, 206, 31, 250, 188, 16, 208, 1, - 206, 31, 250, 188, 16, 248, 163, 206, 31, 250, 188, 16, 204, 16, 206, 31, - 250, 188, 16, 198, 0, 234, 43, 3, 4, 223, 140, 60, 196, 89, 113, 204, 12, - 113, 235, 128, 113, 210, 96, 113, 207, 18, 50, 251, 115, 229, 203, 210, - 78, 113, 135, 6, 1, 250, 122, 135, 6, 1, 247, 252, 135, 6, 1, 195, 151, - 135, 6, 1, 231, 18, 135, 6, 1, 236, 169, 135, 6, 1, 192, 49, 135, 6, 1, - 191, 55, 135, 6, 1, 235, 30, 135, 6, 1, 191, 82, 135, 6, 1, 223, 39, 135, - 6, 1, 89, 223, 39, 135, 6, 1, 68, 135, 6, 1, 236, 190, 135, 6, 1, 222, - 94, 135, 6, 1, 219, 75, 135, 6, 1, 215, 66, 135, 6, 1, 214, 210, 135, 6, - 1, 211, 89, 135, 6, 1, 209, 55, 135, 6, 1, 206, 179, 135, 6, 1, 202, 77, - 135, 6, 1, 197, 44, 135, 6, 1, 196, 124, 135, 6, 1, 232, 101, 135, 6, 1, - 229, 188, 135, 6, 1, 211, 20, 135, 6, 1, 210, 63, 135, 6, 1, 203, 8, 135, - 6, 1, 197, 146, 135, 6, 1, 243, 54, 135, 6, 1, 203, 165, 135, 6, 1, 192, - 58, 135, 6, 1, 192, 60, 135, 6, 1, 192, 93, 135, 6, 1, 201, 220, 140, - 135, 6, 1, 191, 225, 135, 6, 1, 2, 191, 190, 135, 6, 1, 2, 191, 191, 4, - 199, 215, 135, 6, 1, 192, 12, 135, 6, 1, 223, 82, 2, 191, 190, 135, 6, 1, - 248, 175, 191, 190, 135, 6, 1, 223, 82, 248, 175, 191, 190, 135, 6, 1, - 232, 228, 135, 6, 1, 223, 37, 135, 6, 1, 203, 7, 135, 6, 1, 197, 215, 65, - 135, 6, 1, 220, 1, 215, 66, 135, 6, 1, 247, 73, 243, 54, 135, 2, 1, 250, - 122, 135, 2, 1, 247, 252, 135, 2, 1, 195, 151, 135, 2, 1, 231, 18, 135, - 2, 1, 236, 169, 135, 2, 1, 192, 49, 135, 2, 1, 191, 55, 135, 2, 1, 235, - 30, 135, 2, 1, 191, 82, 135, 2, 1, 223, 39, 135, 2, 1, 89, 223, 39, 135, - 2, 1, 68, 135, 2, 1, 236, 190, 135, 2, 1, 222, 94, 135, 2, 1, 219, 75, - 135, 2, 1, 215, 66, 135, 2, 1, 214, 210, 135, 2, 1, 211, 89, 135, 2, 1, - 209, 55, 135, 2, 1, 206, 179, 135, 2, 1, 202, 77, 135, 2, 1, 197, 44, - 135, 2, 1, 196, 124, 135, 2, 1, 232, 101, 135, 2, 1, 229, 188, 135, 2, 1, - 211, 20, 135, 2, 1, 210, 63, 135, 2, 1, 203, 8, 135, 2, 1, 197, 146, 135, - 2, 1, 243, 54, 135, 2, 1, 203, 165, 135, 2, 1, 192, 58, 135, 2, 1, 192, - 60, 135, 2, 1, 192, 93, 135, 2, 1, 201, 220, 140, 135, 2, 1, 191, 225, - 135, 2, 1, 2, 191, 190, 135, 2, 1, 2, 191, 191, 4, 199, 215, 135, 2, 1, - 192, 12, 135, 2, 1, 223, 82, 2, 191, 190, 135, 2, 1, 248, 175, 191, 190, - 135, 2, 1, 223, 82, 248, 175, 191, 190, 135, 2, 1, 232, 228, 135, 2, 1, - 223, 37, 135, 2, 1, 203, 7, 135, 2, 1, 197, 215, 65, 135, 2, 1, 220, 1, - 215, 66, 135, 2, 1, 247, 73, 243, 54, 8, 6, 1, 220, 143, 4, 55, 164, 8, - 2, 1, 220, 143, 4, 55, 164, 8, 6, 1, 220, 143, 4, 82, 198, 152, 8, 6, 1, - 210, 237, 4, 106, 8, 6, 1, 207, 222, 4, 199, 215, 8, 2, 1, 42, 4, 106, 8, - 2, 1, 200, 44, 4, 237, 39, 106, 8, 6, 1, 230, 117, 4, 237, 87, 8, 2, 1, - 230, 117, 4, 237, 87, 8, 6, 1, 222, 153, 4, 237, 87, 8, 2, 1, 222, 153, - 4, 237, 87, 8, 6, 1, 191, 167, 4, 237, 87, 8, 2, 1, 191, 167, 4, 237, 87, - 8, 6, 1, 251, 160, 8, 6, 1, 218, 169, 4, 102, 8, 6, 1, 153, 65, 8, 6, 1, - 153, 251, 160, 8, 2, 1, 196, 13, 4, 50, 102, 8, 6, 1, 193, 225, 4, 102, - 8, 2, 1, 193, 225, 4, 102, 8, 2, 1, 196, 13, 4, 238, 175, 8, 6, 1, 132, - 230, 116, 8, 2, 1, 132, 230, 116, 8, 2, 1, 199, 213, 209, 211, 8, 2, 1, - 235, 15, 4, 213, 9, 8, 2, 1, 153, 207, 222, 4, 199, 215, 8, 2, 1, 187, 4, - 130, 206, 189, 223, 117, 8, 1, 2, 6, 153, 71, 8, 200, 230, 2, 1, 223, 35, - 52, 1, 6, 196, 12, 8, 6, 1, 206, 9, 4, 200, 146, 199, 215, 8, 6, 1, 191, - 167, 4, 200, 146, 199, 215, 94, 6, 1, 251, 186, 94, 2, 1, 251, 186, 94, - 6, 1, 195, 66, 94, 2, 1, 195, 66, 94, 6, 1, 231, 211, 94, 2, 1, 231, 211, - 94, 6, 1, 237, 255, 94, 2, 1, 237, 255, 94, 6, 1, 234, 165, 94, 2, 1, - 234, 165, 94, 6, 1, 202, 7, 94, 2, 1, 202, 7, 94, 6, 1, 191, 95, 94, 2, - 1, 191, 95, 94, 6, 1, 230, 6, 94, 2, 1, 230, 6, 94, 6, 1, 199, 13, 94, 2, - 1, 199, 13, 94, 6, 1, 228, 32, 94, 2, 1, 228, 32, 94, 6, 1, 222, 77, 94, - 2, 1, 222, 77, 94, 6, 1, 219, 252, 94, 2, 1, 219, 252, 94, 6, 1, 216, - 100, 94, 2, 1, 216, 100, 94, 6, 1, 213, 219, 94, 2, 1, 213, 219, 94, 6, - 1, 220, 248, 94, 2, 1, 220, 248, 94, 6, 1, 74, 94, 2, 1, 74, 94, 6, 1, - 209, 185, 94, 2, 1, 209, 185, 94, 6, 1, 206, 162, 94, 2, 1, 206, 162, 94, - 6, 1, 202, 183, 94, 2, 1, 202, 183, 94, 6, 1, 199, 166, 94, 2, 1, 199, - 166, 94, 6, 1, 196, 168, 94, 2, 1, 196, 168, 94, 6, 1, 233, 23, 94, 2, 1, - 233, 23, 94, 6, 1, 221, 190, 94, 2, 1, 221, 190, 94, 6, 1, 208, 176, 94, - 2, 1, 208, 176, 94, 6, 1, 211, 81, 94, 2, 1, 211, 81, 94, 6, 1, 237, 37, - 251, 192, 94, 2, 1, 237, 37, 251, 192, 94, 6, 1, 39, 94, 251, 230, 94, 2, - 1, 39, 94, 251, 230, 94, 6, 1, 238, 198, 234, 165, 94, 2, 1, 238, 198, - 234, 165, 94, 6, 1, 237, 37, 222, 77, 94, 2, 1, 237, 37, 222, 77, 94, 6, - 1, 237, 37, 213, 219, 94, 2, 1, 237, 37, 213, 219, 94, 6, 1, 238, 198, - 213, 219, 94, 2, 1, 238, 198, 213, 219, 94, 6, 1, 39, 94, 211, 81, 94, 2, - 1, 39, 94, 211, 81, 94, 6, 1, 205, 145, 94, 2, 1, 205, 145, 94, 6, 1, - 238, 214, 203, 105, 94, 2, 1, 238, 214, 203, 105, 94, 6, 1, 39, 94, 203, - 105, 94, 2, 1, 39, 94, 203, 105, 94, 6, 1, 39, 94, 234, 12, 94, 2, 1, 39, - 94, 234, 12, 94, 6, 1, 251, 212, 221, 195, 94, 2, 1, 251, 212, 221, 195, - 94, 6, 1, 237, 37, 228, 242, 94, 2, 1, 237, 37, 228, 242, 94, 6, 1, 39, - 94, 228, 242, 94, 2, 1, 39, 94, 228, 242, 94, 6, 1, 39, 94, 140, 94, 2, - 1, 39, 94, 140, 94, 6, 1, 220, 142, 140, 94, 2, 1, 220, 142, 140, 94, 6, - 1, 39, 94, 229, 209, 94, 2, 1, 39, 94, 229, 209, 94, 6, 1, 39, 94, 230, - 9, 94, 2, 1, 39, 94, 230, 9, 94, 6, 1, 39, 94, 231, 206, 94, 2, 1, 39, - 94, 231, 206, 94, 6, 1, 39, 94, 236, 193, 94, 2, 1, 39, 94, 236, 193, 94, - 6, 1, 39, 94, 203, 71, 94, 2, 1, 39, 94, 203, 71, 94, 6, 1, 39, 212, 145, - 203, 71, 94, 2, 1, 39, 212, 145, 203, 71, 94, 6, 1, 39, 212, 145, 214, - 16, 94, 2, 1, 39, 212, 145, 214, 16, 94, 6, 1, 39, 212, 145, 212, 81, 94, - 2, 1, 39, 212, 145, 212, 81, 94, 6, 1, 39, 212, 145, 193, 140, 94, 2, 1, - 39, 212, 145, 193, 140, 94, 16, 222, 102, 94, 16, 216, 101, 206, 162, 94, - 16, 209, 186, 206, 162, 94, 16, 201, 89, 94, 16, 199, 167, 206, 162, 94, - 16, 221, 191, 206, 162, 94, 16, 203, 72, 202, 183, 94, 6, 1, 238, 198, - 203, 105, 94, 2, 1, 238, 198, 203, 105, 94, 6, 1, 238, 198, 231, 206, 94, - 2, 1, 238, 198, 231, 206, 94, 33, 213, 220, 58, 94, 33, 201, 213, 250, - 201, 94, 33, 201, 213, 219, 188, 94, 6, 1, 248, 103, 221, 195, 94, 2, 1, - 248, 103, 221, 195, 94, 39, 212, 145, 232, 80, 201, 63, 94, 39, 212, 145, - 236, 234, 208, 13, 77, 94, 39, 212, 145, 223, 142, 208, 13, 77, 94, 39, - 212, 145, 195, 137, 236, 205, 94, 232, 118, 91, 230, 70, 94, 232, 80, - 201, 63, 94, 215, 200, 236, 205, 101, 2, 1, 251, 132, 101, 2, 1, 249, - 101, 101, 2, 1, 231, 210, 101, 2, 1, 236, 150, 101, 2, 1, 234, 103, 101, - 2, 1, 195, 49, 101, 2, 1, 191, 80, 101, 2, 1, 199, 193, 101, 2, 1, 223, - 162, 101, 2, 1, 222, 87, 101, 2, 1, 220, 7, 101, 2, 1, 217, 90, 101, 2, - 1, 214, 216, 101, 2, 1, 211, 104, 101, 2, 1, 210, 131, 101, 2, 1, 191, - 67, 101, 2, 1, 207, 163, 101, 2, 1, 205, 142, 101, 2, 1, 199, 179, 101, - 2, 1, 196, 113, 101, 2, 1, 209, 220, 101, 2, 1, 221, 200, 101, 2, 1, 231, - 82, 101, 2, 1, 208, 81, 101, 2, 1, 203, 69, 101, 2, 1, 243, 81, 101, 2, - 1, 247, 128, 101, 2, 1, 222, 234, 101, 2, 1, 243, 18, 101, 2, 1, 246, - 241, 101, 2, 1, 192, 218, 101, 2, 1, 222, 249, 101, 2, 1, 230, 87, 101, - 2, 1, 229, 245, 101, 2, 1, 229, 145, 101, 2, 1, 193, 125, 101, 2, 1, 230, - 19, 101, 2, 1, 229, 11, 101, 2, 1, 192, 14, 101, 2, 1, 252, 14, 198, 175, - 1, 170, 198, 175, 1, 192, 136, 198, 175, 1, 192, 135, 198, 175, 1, 192, - 125, 198, 175, 1, 192, 123, 198, 175, 1, 248, 218, 252, 62, 192, 118, - 198, 175, 1, 192, 118, 198, 175, 1, 192, 133, 198, 175, 1, 192, 130, 198, - 175, 1, 192, 132, 198, 175, 1, 192, 131, 198, 175, 1, 192, 40, 198, 175, - 1, 192, 127, 198, 175, 1, 192, 116, 198, 175, 1, 197, 86, 192, 116, 198, - 175, 1, 192, 113, 198, 175, 1, 192, 121, 198, 175, 1, 248, 218, 252, 62, - 192, 121, 198, 175, 1, 197, 86, 192, 121, 198, 175, 1, 192, 120, 198, - 175, 1, 192, 140, 198, 175, 1, 192, 114, 198, 175, 1, 197, 86, 192, 114, - 198, 175, 1, 192, 103, 198, 175, 1, 197, 86, 192, 103, 198, 175, 1, 192, - 33, 198, 175, 1, 192, 82, 198, 175, 1, 251, 243, 192, 82, 198, 175, 1, - 197, 86, 192, 82, 198, 175, 1, 192, 112, 198, 175, 1, 192, 111, 198, 175, - 1, 192, 108, 198, 175, 1, 197, 86, 192, 122, 198, 175, 1, 197, 86, 192, - 106, 198, 175, 1, 192, 104, 198, 175, 1, 191, 225, 198, 175, 1, 192, 101, - 198, 175, 1, 192, 99, 198, 175, 1, 192, 124, 198, 175, 1, 197, 86, 192, - 124, 198, 175, 1, 250, 127, 192, 124, 198, 175, 1, 192, 98, 198, 175, 1, - 192, 96, 198, 175, 1, 192, 97, 198, 175, 1, 192, 95, 198, 175, 1, 192, - 94, 198, 175, 1, 192, 134, 198, 175, 1, 192, 92, 198, 175, 1, 192, 90, - 198, 175, 1, 192, 89, 198, 175, 1, 192, 86, 198, 175, 1, 192, 83, 198, - 175, 1, 199, 157, 192, 83, 198, 175, 1, 192, 81, 198, 175, 1, 192, 80, - 198, 175, 1, 192, 12, 198, 175, 52, 1, 220, 115, 77, 198, 175, 204, 11, - 77, 198, 175, 120, 222, 196, 36, 5, 219, 42, 36, 5, 216, 5, 36, 5, 206, - 154, 36, 5, 202, 38, 36, 5, 203, 55, 36, 5, 248, 110, 36, 5, 198, 91, 36, - 5, 242, 98, 36, 5, 213, 36, 36, 5, 212, 64, 36, 5, 231, 11, 211, 182, 36, - 5, 191, 6, 36, 5, 236, 172, 36, 5, 237, 160, 36, 5, 222, 200, 36, 5, 198, - 240, 36, 5, 243, 67, 36, 5, 209, 198, 36, 5, 209, 72, 36, 5, 231, 97, 36, - 5, 231, 93, 36, 5, 231, 94, 36, 5, 231, 95, 36, 5, 201, 175, 36, 5, 201, - 129, 36, 5, 201, 142, 36, 5, 201, 174, 36, 5, 201, 147, 36, 5, 201, 148, - 36, 5, 201, 134, 36, 5, 247, 65, 36, 5, 247, 44, 36, 5, 247, 46, 36, 5, - 247, 64, 36, 5, 247, 62, 36, 5, 247, 63, 36, 5, 247, 45, 36, 5, 190, 224, - 36, 5, 190, 202, 36, 5, 190, 215, 36, 5, 190, 223, 36, 5, 190, 218, 36, - 5, 190, 219, 36, 5, 190, 207, 36, 5, 247, 60, 36, 5, 247, 47, 36, 5, 247, - 49, 36, 5, 247, 59, 36, 5, 247, 57, 36, 5, 247, 58, 36, 5, 247, 48, 36, - 5, 207, 234, 36, 5, 207, 224, 36, 5, 207, 230, 36, 5, 207, 233, 36, 5, - 207, 231, 36, 5, 207, 232, 36, 5, 207, 229, 36, 5, 220, 153, 36, 5, 220, - 145, 36, 5, 220, 148, 36, 5, 220, 152, 36, 5, 220, 149, 36, 5, 220, 150, - 36, 5, 220, 146, 36, 5, 192, 175, 36, 5, 192, 162, 36, 5, 192, 170, 36, - 5, 192, 174, 36, 5, 192, 172, 36, 5, 192, 173, 36, 5, 192, 169, 36, 5, - 230, 128, 36, 5, 230, 118, 36, 5, 230, 121, 36, 5, 230, 127, 36, 5, 230, - 123, 36, 5, 230, 124, 36, 5, 230, 120, 33, 38, 1, 249, 17, 33, 38, 1, - 195, 153, 33, 38, 1, 231, 77, 33, 38, 1, 237, 146, 33, 38, 1, 191, 62, - 33, 38, 1, 191, 87, 33, 38, 1, 155, 33, 38, 1, 234, 140, 33, 38, 1, 234, - 114, 33, 38, 1, 234, 103, 33, 38, 1, 74, 33, 38, 1, 210, 63, 33, 38, 1, - 234, 34, 33, 38, 1, 234, 22, 33, 38, 1, 199, 145, 33, 38, 1, 140, 33, 38, - 1, 197, 161, 33, 38, 1, 243, 127, 33, 38, 1, 203, 165, 33, 38, 1, 203, - 116, 33, 38, 1, 232, 228, 33, 38, 1, 234, 18, 33, 38, 1, 65, 33, 38, 1, - 223, 226, 33, 38, 1, 236, 191, 33, 38, 1, 215, 219, 196, 128, 33, 38, 1, - 192, 95, 33, 38, 1, 191, 225, 33, 38, 1, 223, 81, 65, 33, 38, 1, 219, 83, - 191, 190, 33, 38, 1, 248, 175, 191, 190, 33, 38, 1, 223, 81, 248, 175, - 191, 190, 50, 251, 116, 200, 225, 217, 51, 50, 251, 116, 235, 138, 200, - 225, 217, 51, 45, 200, 225, 248, 53, 50, 200, 225, 248, 53, 45, 235, 138, - 200, 225, 248, 53, 50, 235, 138, 200, 225, 248, 53, 207, 147, 223, 104, - 217, 51, 207, 147, 235, 138, 223, 104, 217, 51, 235, 138, 198, 8, 217, - 51, 45, 198, 8, 248, 53, 50, 198, 8, 248, 53, 207, 147, 201, 190, 45, - 207, 147, 211, 106, 248, 53, 50, 207, 147, 211, 106, 248, 53, 234, 189, - 238, 254, 210, 126, 232, 148, 210, 126, 207, 18, 232, 148, 210, 126, 228, - 85, 235, 138, 211, 177, 235, 119, 251, 126, 196, 66, 251, 126, 235, 138, - 206, 203, 251, 115, 55, 211, 172, 228, 88, 223, 93, 223, 102, 210, 183, - 248, 47, 228, 89, 4, 237, 42, 198, 153, 4, 206, 189, 58, 45, 130, 210, - 116, 248, 53, 50, 130, 210, 116, 248, 53, 198, 153, 4, 75, 58, 198, 153, - 4, 75, 60, 45, 81, 249, 88, 4, 208, 7, 50, 81, 249, 88, 4, 208, 7, 198, - 54, 45, 132, 248, 53, 198, 54, 50, 132, 248, 53, 248, 77, 45, 132, 248, - 53, 248, 77, 50, 132, 248, 53, 45, 202, 206, 126, 248, 53, 50, 202, 206, - 126, 248, 53, 45, 55, 210, 113, 50, 55, 210, 113, 105, 185, 139, 91, 75, - 208, 151, 91, 75, 139, 105, 185, 208, 151, 112, 232, 128, 75, 208, 151, - 232, 226, 75, 77, 207, 18, 208, 13, 77, 81, 198, 152, 206, 189, 209, 61, - 193, 23, 204, 11, 82, 236, 140, 153, 242, 74, 207, 147, 236, 140, 207, - 147, 242, 74, 153, 204, 25, 238, 15, 4, 45, 230, 173, 238, 15, 4, 50, - 230, 173, 153, 238, 14, 198, 54, 132, 205, 54, 56, 197, 14, 237, 215, - 198, 223, 237, 215, 201, 79, 232, 80, 201, 63, 81, 202, 136, 236, 138, - 193, 72, 81, 219, 112, 247, 109, 55, 228, 88, 207, 18, 242, 74, 55, 218, - 237, 207, 252, 77, 237, 216, 4, 45, 196, 69, 55, 200, 164, 77, 223, 93, - 130, 222, 35, 223, 93, 130, 222, 36, 4, 222, 36, 58, 130, 222, 35, 130, - 222, 36, 4, 236, 140, 55, 201, 114, 242, 74, 235, 138, 202, 23, 197, 225, - 238, 14, 216, 214, 242, 74, 210, 125, 77, 208, 150, 234, 129, 77, 238, - 255, 195, 137, 236, 205, 238, 218, 210, 82, 4, 50, 238, 216, 238, 218, - 210, 82, 4, 45, 238, 216, 198, 128, 3, 6, 233, 255, 216, 214, 233, 216, - 77, 216, 214, 208, 13, 77, 45, 51, 248, 54, 4, 106, 50, 51, 248, 54, 4, - 106, 45, 51, 248, 54, 4, 55, 106, 50, 51, 248, 54, 4, 55, 106, 198, 54, - 132, 45, 210, 113, 198, 54, 132, 50, 210, 113, 248, 77, 132, 45, 210, - 113, 248, 77, 132, 50, 210, 113, 211, 172, 228, 88, 12, 48, 207, 48, 12, - 48, 242, 230, 12, 48, 205, 57, 107, 12, 48, 205, 57, 109, 12, 48, 205, - 57, 138, 12, 48, 209, 250, 12, 48, 248, 62, 12, 48, 199, 233, 12, 48, - 221, 79, 107, 12, 48, 221, 79, 109, 12, 48, 236, 202, 12, 48, 205, 61, - 12, 48, 2, 107, 12, 48, 2, 109, 12, 48, 220, 30, 107, 12, 48, 220, 30, - 109, 12, 48, 220, 30, 138, 12, 48, 220, 30, 134, 12, 48, 202, 58, 12, 48, - 198, 227, 12, 48, 202, 55, 107, 12, 48, 202, 55, 109, 12, 48, 229, 224, - 107, 12, 48, 229, 224, 109, 12, 48, 230, 53, 12, 48, 207, 136, 12, 48, - 243, 64, 12, 48, 200, 198, 12, 48, 215, 205, 12, 48, 237, 143, 12, 48, - 215, 193, 12, 48, 242, 249, 12, 48, 193, 144, 107, 12, 48, 193, 144, 109, - 12, 48, 232, 243, 12, 48, 210, 76, 107, 12, 48, 210, 76, 109, 12, 48, - 202, 178, 132, 197, 255, 197, 177, 12, 48, 238, 239, 12, 48, 236, 162, - 12, 48, 223, 27, 12, 48, 248, 102, 79, 242, 213, 12, 48, 233, 193, 12, - 48, 201, 215, 107, 12, 48, 201, 215, 109, 12, 48, 249, 103, 12, 48, 202, - 185, 12, 48, 247, 190, 202, 185, 12, 48, 214, 86, 107, 12, 48, 214, 86, - 109, 12, 48, 214, 86, 138, 12, 48, 214, 86, 134, 12, 48, 216, 172, 12, - 48, 203, 107, 12, 48, 207, 142, 12, 48, 233, 223, 12, 48, 211, 119, 12, - 48, 248, 18, 107, 12, 48, 248, 18, 109, 12, 48, 216, 224, 12, 48, 215, - 199, 12, 48, 230, 214, 107, 12, 48, 230, 214, 109, 12, 48, 230, 214, 138, - 12, 48, 198, 173, 12, 48, 242, 212, 12, 48, 193, 105, 107, 12, 48, 193, - 105, 109, 12, 48, 247, 190, 205, 50, 12, 48, 202, 178, 228, 187, 12, 48, - 228, 187, 12, 48, 247, 190, 201, 229, 12, 48, 247, 190, 203, 102, 12, 48, - 232, 159, 12, 48, 247, 190, 247, 85, 12, 48, 202, 178, 193, 169, 12, 48, - 193, 170, 107, 12, 48, 193, 170, 109, 12, 48, 242, 252, 12, 48, 247, 190, - 230, 250, 12, 48, 179, 107, 12, 48, 179, 109, 12, 48, 247, 190, 219, 19, - 12, 48, 247, 190, 231, 191, 12, 48, 215, 188, 107, 12, 48, 215, 188, 109, - 12, 48, 207, 149, 12, 48, 248, 114, 12, 48, 247, 190, 199, 185, 219, 230, - 12, 48, 247, 190, 219, 233, 12, 48, 247, 190, 193, 66, 12, 48, 247, 190, - 232, 179, 12, 48, 234, 201, 107, 12, 48, 234, 201, 109, 12, 48, 234, 201, - 138, 12, 48, 247, 190, 234, 200, 12, 48, 229, 235, 12, 48, 247, 190, 228, - 183, 12, 48, 248, 98, 12, 48, 231, 61, 12, 48, 247, 190, 232, 236, 12, - 48, 247, 190, 248, 160, 12, 48, 247, 190, 205, 158, 12, 48, 202, 178, - 193, 95, 12, 48, 202, 178, 192, 72, 12, 48, 247, 190, 232, 99, 12, 48, - 223, 34, 233, 228, 12, 48, 247, 190, 233, 228, 12, 48, 223, 34, 198, 56, - 12, 48, 247, 190, 198, 56, 12, 48, 223, 34, 235, 111, 12, 48, 247, 190, - 235, 111, 12, 48, 197, 55, 12, 48, 223, 34, 197, 55, 12, 48, 247, 190, - 197, 55, 83, 48, 107, 83, 48, 219, 112, 83, 48, 236, 140, 83, 48, 202, - 97, 83, 48, 205, 56, 83, 48, 102, 83, 48, 109, 83, 48, 219, 141, 83, 48, - 217, 90, 83, 48, 219, 209, 83, 48, 234, 77, 83, 48, 171, 83, 48, 144, - 248, 62, 83, 48, 238, 242, 83, 48, 228, 26, 83, 48, 199, 233, 83, 48, - 211, 77, 248, 62, 83, 48, 221, 78, 83, 48, 208, 254, 83, 48, 193, 12, 83, - 48, 201, 203, 83, 48, 50, 211, 77, 248, 62, 83, 48, 229, 146, 234, 98, - 83, 48, 199, 95, 83, 48, 236, 202, 83, 48, 205, 61, 83, 48, 242, 230, 83, - 48, 208, 204, 83, 48, 251, 252, 83, 48, 215, 179, 83, 48, 234, 98, 83, - 48, 234, 207, 83, 48, 205, 91, 83, 48, 231, 3, 83, 48, 231, 4, 202, 74, - 83, 48, 233, 227, 83, 48, 248, 174, 83, 48, 193, 35, 83, 48, 243, 86, 83, - 48, 206, 133, 83, 48, 223, 158, 83, 48, 202, 70, 83, 48, 220, 29, 83, 48, - 238, 252, 83, 48, 201, 194, 83, 48, 215, 184, 83, 48, 206, 176, 83, 48, - 193, 20, 83, 48, 211, 95, 83, 48, 197, 63, 83, 48, 235, 91, 83, 48, 203, - 40, 198, 227, 83, 48, 235, 138, 242, 230, 83, 48, 179, 201, 34, 83, 48, - 105, 230, 28, 83, 48, 203, 46, 83, 48, 248, 69, 83, 48, 202, 54, 83, 48, - 248, 25, 83, 48, 201, 78, 83, 48, 229, 223, 83, 48, 230, 71, 83, 48, 236, - 144, 83, 48, 230, 53, 83, 48, 248, 47, 83, 48, 207, 136, 83, 48, 205, 74, - 83, 48, 236, 236, 83, 48, 250, 132, 83, 48, 201, 190, 83, 48, 213, 11, - 83, 48, 200, 198, 83, 48, 205, 103, 83, 48, 215, 205, 83, 48, 197, 254, - 83, 48, 220, 111, 83, 48, 201, 63, 83, 48, 237, 143, 83, 48, 193, 120, - 83, 48, 236, 175, 213, 11, 83, 48, 242, 70, 83, 48, 232, 72, 83, 48, 242, - 243, 83, 48, 201, 84, 83, 48, 193, 143, 83, 48, 232, 243, 83, 48, 242, - 239, 83, 48, 233, 66, 83, 48, 55, 192, 235, 83, 48, 132, 197, 255, 197, - 177, 83, 48, 202, 88, 83, 48, 233, 78, 83, 48, 238, 239, 83, 48, 236, - 162, 83, 48, 208, 199, 83, 48, 223, 27, 83, 48, 216, 196, 83, 48, 198, - 151, 83, 48, 200, 141, 83, 48, 219, 135, 83, 48, 196, 43, 83, 48, 233, - 21, 83, 48, 248, 102, 79, 242, 213, 83, 48, 202, 212, 83, 48, 235, 138, - 199, 87, 83, 48, 193, 89, 83, 48, 202, 107, 83, 48, 236, 222, 83, 48, - 233, 193, 83, 48, 201, 232, 83, 48, 57, 83, 48, 201, 65, 83, 48, 201, - 214, 83, 48, 198, 25, 83, 48, 230, 223, 83, 48, 247, 70, 83, 48, 201, - 107, 83, 48, 249, 103, 83, 48, 206, 245, 83, 48, 202, 185, 83, 48, 223, - 18, 83, 48, 214, 85, 83, 48, 203, 107, 83, 48, 233, 54, 83, 48, 211, 119, - 83, 48, 251, 125, 83, 48, 209, 89, 83, 48, 234, 211, 83, 48, 248, 17, 83, - 48, 216, 224, 83, 48, 216, 37, 83, 48, 204, 32, 83, 48, 250, 239, 83, 48, - 215, 199, 83, 48, 198, 61, 83, 48, 211, 64, 83, 48, 248, 106, 83, 48, - 201, 59, 83, 48, 242, 82, 83, 48, 230, 213, 83, 48, 198, 173, 83, 48, - 223, 121, 83, 48, 248, 120, 83, 48, 193, 170, 234, 98, 83, 48, 242, 212, - 83, 48, 193, 104, 83, 48, 205, 50, 83, 48, 228, 187, 83, 48, 201, 229, - 83, 48, 195, 180, 83, 48, 249, 12, 83, 48, 209, 147, 83, 48, 249, 133, - 83, 48, 203, 102, 83, 48, 207, 86, 83, 48, 206, 45, 83, 48, 232, 159, 83, - 48, 248, 104, 83, 48, 247, 85, 83, 48, 248, 144, 83, 48, 215, 201, 83, - 48, 193, 169, 83, 48, 242, 252, 83, 48, 193, 62, 83, 48, 236, 214, 83, - 48, 195, 50, 83, 48, 230, 250, 83, 48, 219, 19, 83, 48, 231, 191, 83, 48, - 215, 187, 83, 48, 202, 96, 83, 48, 203, 40, 199, 214, 248, 160, 83, 48, - 207, 149, 83, 48, 248, 114, 83, 48, 193, 2, 83, 48, 233, 103, 83, 48, - 219, 230, 83, 48, 199, 185, 219, 230, 83, 48, 219, 226, 83, 48, 202, 4, - 83, 48, 219, 233, 83, 48, 193, 66, 83, 48, 232, 179, 83, 48, 234, 200, - 83, 48, 229, 235, 83, 48, 232, 116, 83, 48, 228, 183, 83, 48, 248, 98, - 83, 48, 199, 199, 83, 48, 230, 78, 83, 48, 233, 14, 83, 48, 205, 194, - 193, 62, 83, 48, 247, 72, 83, 48, 231, 61, 83, 48, 232, 236, 83, 48, 248, - 160, 83, 48, 205, 158, 83, 48, 237, 128, 83, 48, 193, 95, 83, 48, 229, - 199, 83, 48, 192, 72, 83, 48, 216, 49, 83, 48, 248, 139, 83, 48, 234, - 110, 83, 48, 232, 99, 83, 48, 197, 222, 83, 48, 235, 94, 83, 48, 207, - 130, 83, 48, 213, 13, 83, 48, 233, 228, 83, 48, 198, 56, 83, 48, 235, - 111, 83, 48, 197, 55, 83, 48, 232, 182, 154, 237, 85, 246, 240, 45, 119, - 183, 154, 237, 85, 246, 240, 93, 119, 60, 154, 237, 85, 246, 240, 45, - 119, 82, 23, 183, 154, 237, 85, 246, 240, 93, 119, 82, 23, 60, 154, 237, - 85, 246, 240, 232, 80, 200, 168, 154, 237, 85, 246, 240, 200, 169, 232, - 98, 58, 154, 237, 85, 246, 240, 200, 169, 232, 98, 60, 154, 237, 85, 246, - 240, 200, 169, 232, 98, 219, 224, 154, 237, 85, 246, 240, 200, 169, 232, - 98, 116, 219, 224, 154, 237, 85, 246, 240, 200, 169, 232, 98, 116, 183, - 154, 237, 85, 246, 240, 200, 169, 232, 98, 110, 219, 224, 154, 237, 85, - 246, 240, 211, 3, 154, 201, 247, 154, 242, 74, 154, 232, 80, 201, 63, - 236, 211, 77, 223, 19, 223, 141, 201, 106, 113, 154, 223, 51, 77, 154, - 242, 215, 77, 154, 31, 191, 77, 45, 251, 116, 248, 53, 50, 251, 116, 248, - 53, 45, 55, 251, 116, 248, 53, 50, 55, 251, 116, 248, 53, 45, 239, 2, - 248, 53, 50, 239, 2, 248, 53, 45, 63, 239, 2, 248, 53, 50, 63, 239, 2, - 248, 53, 45, 62, 219, 187, 248, 53, 50, 62, 219, 187, 248, 53, 209, 18, - 77, 231, 130, 77, 45, 198, 42, 203, 103, 248, 53, 50, 198, 42, 203, 103, - 248, 53, 45, 63, 219, 187, 248, 53, 50, 63, 219, 187, 248, 53, 45, 63, - 198, 42, 203, 103, 248, 53, 50, 63, 198, 42, 203, 103, 248, 53, 45, 63, - 51, 248, 53, 50, 63, 51, 248, 53, 193, 139, 237, 215, 207, 18, 55, 208, - 216, 207, 252, 77, 55, 208, 216, 207, 252, 77, 130, 55, 208, 216, 207, - 252, 77, 209, 18, 87, 233, 103, 230, 25, 212, 134, 107, 230, 25, 212, - 134, 109, 230, 25, 212, 134, 138, 230, 25, 212, 134, 134, 230, 25, 212, - 134, 149, 230, 25, 212, 134, 169, 230, 25, 212, 134, 175, 230, 25, 212, - 134, 171, 230, 25, 212, 134, 178, 154, 219, 168, 163, 77, 154, 206, 180, - 163, 77, 154, 237, 95, 163, 77, 154, 234, 76, 163, 77, 30, 202, 170, 75, - 163, 77, 30, 55, 75, 163, 77, 193, 135, 237, 215, 81, 222, 86, 207, 49, - 77, 81, 222, 86, 207, 49, 4, 195, 20, 202, 5, 77, 81, 222, 86, 207, 49, - 87, 116, 230, 70, 81, 222, 86, 207, 49, 4, 195, 20, 202, 5, 87, 116, 230, - 70, 81, 222, 86, 207, 49, 87, 110, 230, 70, 47, 209, 18, 77, 154, 199, - 109, 219, 113, 233, 51, 204, 11, 113, 230, 25, 212, 134, 199, 95, 230, - 25, 212, 134, 197, 32, 230, 25, 212, 134, 198, 249, 81, 154, 223, 51, 77, - 217, 31, 77, 210, 107, 251, 153, 77, 154, 67, 223, 144, 154, 132, 233, 6, - 201, 247, 229, 120, 1, 2, 65, 229, 120, 1, 65, 229, 120, 1, 2, 68, 229, - 120, 1, 68, 229, 120, 1, 2, 66, 229, 120, 1, 66, 229, 120, 1, 2, 71, 229, - 120, 1, 71, 229, 120, 1, 2, 74, 229, 120, 1, 74, 229, 120, 1, 155, 229, - 120, 1, 231, 240, 229, 120, 1, 221, 166, 229, 120, 1, 231, 53, 229, 120, - 1, 220, 232, 229, 120, 1, 230, 179, 229, 120, 1, 222, 22, 229, 120, 1, - 231, 165, 229, 120, 1, 221, 67, 229, 120, 1, 231, 3, 229, 120, 1, 188, - 229, 120, 1, 191, 123, 229, 120, 1, 202, 222, 229, 120, 1, 191, 30, 229, - 120, 1, 201, 4, 229, 120, 1, 190, 251, 229, 120, 1, 205, 68, 229, 120, 1, - 191, 87, 229, 120, 1, 202, 46, 229, 120, 1, 191, 7, 229, 120, 1, 190, - 190, 229, 120, 1, 238, 32, 229, 120, 1, 198, 193, 229, 120, 1, 237, 44, - 229, 120, 1, 2, 197, 94, 229, 120, 1, 197, 94, 229, 120, 1, 235, 89, 229, - 120, 1, 199, 145, 229, 120, 1, 237, 146, 229, 120, 1, 159, 229, 120, 1, - 236, 174, 229, 120, 1, 180, 229, 120, 1, 213, 219, 229, 120, 1, 212, 178, - 229, 120, 1, 214, 121, 229, 120, 1, 213, 43, 229, 120, 1, 140, 229, 120, - 1, 249, 153, 229, 120, 1, 168, 229, 120, 1, 229, 158, 229, 120, 1, 248, - 188, 229, 120, 1, 209, 185, 229, 120, 1, 228, 159, 229, 120, 1, 248, 10, - 229, 120, 1, 208, 165, 229, 120, 1, 229, 245, 229, 120, 1, 249, 17, 229, - 120, 1, 210, 63, 229, 120, 1, 229, 23, 229, 120, 1, 248, 111, 229, 120, - 1, 209, 73, 229, 120, 1, 174, 229, 120, 1, 216, 100, 229, 120, 1, 215, - 155, 229, 120, 1, 216, 232, 229, 120, 1, 216, 12, 229, 120, 1, 2, 170, - 229, 120, 1, 170, 229, 120, 1, 2, 191, 225, 229, 120, 1, 191, 225, 229, - 120, 1, 2, 192, 12, 229, 120, 1, 192, 12, 229, 120, 1, 165, 229, 120, 1, - 207, 1, 229, 120, 1, 206, 68, 229, 120, 1, 207, 113, 229, 120, 1, 206, - 162, 229, 120, 1, 2, 193, 190, 229, 120, 1, 193, 190, 229, 120, 1, 193, - 86, 229, 120, 1, 193, 125, 229, 120, 1, 193, 48, 229, 120, 1, 215, 61, - 229, 120, 1, 193, 249, 229, 120, 1, 2, 155, 229, 120, 1, 2, 222, 22, 33, - 222, 48, 195, 20, 202, 5, 77, 33, 222, 48, 204, 30, 202, 5, 77, 222, 48, - 195, 20, 202, 5, 77, 222, 48, 204, 30, 202, 5, 77, 229, 120, 223, 51, 77, - 229, 120, 195, 20, 223, 51, 77, 229, 120, 237, 3, 191, 242, 222, 48, 55, - 228, 88, 72, 1, 2, 65, 72, 1, 65, 72, 1, 2, 68, 72, 1, 68, 72, 1, 2, 66, - 72, 1, 66, 72, 1, 2, 71, 72, 1, 71, 72, 1, 2, 74, 72, 1, 74, 72, 1, 155, - 72, 1, 231, 240, 72, 1, 221, 166, 72, 1, 231, 53, 72, 1, 220, 232, 72, 1, - 230, 179, 72, 1, 222, 22, 72, 1, 231, 165, 72, 1, 221, 67, 72, 1, 231, 3, - 72, 1, 188, 72, 1, 191, 123, 72, 1, 202, 222, 72, 1, 191, 30, 72, 1, 201, - 4, 72, 1, 190, 251, 72, 1, 205, 68, 72, 1, 191, 87, 72, 1, 202, 46, 72, - 1, 191, 7, 72, 1, 190, 190, 72, 1, 238, 32, 72, 1, 198, 193, 72, 1, 237, - 44, 72, 1, 2, 197, 94, 72, 1, 197, 94, 72, 1, 235, 89, 72, 1, 199, 145, - 72, 1, 237, 146, 72, 1, 159, 72, 1, 236, 174, 72, 1, 180, 72, 1, 213, - 219, 72, 1, 212, 178, 72, 1, 214, 121, 72, 1, 213, 43, 72, 1, 140, 72, 1, - 249, 153, 72, 1, 168, 72, 1, 229, 158, 72, 1, 248, 188, 72, 1, 209, 185, - 72, 1, 228, 159, 72, 1, 248, 10, 72, 1, 208, 165, 72, 1, 229, 245, 72, 1, - 249, 17, 72, 1, 210, 63, 72, 1, 229, 23, 72, 1, 248, 111, 72, 1, 209, 73, - 72, 1, 174, 72, 1, 216, 100, 72, 1, 215, 155, 72, 1, 216, 232, 72, 1, - 216, 12, 72, 1, 2, 170, 72, 1, 170, 72, 1, 2, 191, 225, 72, 1, 191, 225, - 72, 1, 2, 192, 12, 72, 1, 192, 12, 72, 1, 165, 72, 1, 207, 1, 72, 1, 206, - 68, 72, 1, 207, 113, 72, 1, 206, 162, 72, 1, 2, 193, 190, 72, 1, 193, - 190, 72, 1, 193, 86, 72, 1, 193, 125, 72, 1, 193, 48, 72, 1, 215, 61, 72, - 1, 193, 249, 72, 1, 2, 155, 72, 1, 2, 222, 22, 72, 1, 195, 188, 72, 1, - 195, 69, 72, 1, 195, 153, 72, 1, 195, 24, 72, 82, 236, 140, 222, 48, 208, - 191, 202, 5, 77, 72, 223, 51, 77, 72, 195, 20, 223, 51, 77, 72, 237, 3, - 221, 27, 248, 88, 1, 250, 120, 248, 88, 1, 210, 236, 248, 88, 1, 218, - 168, 248, 88, 1, 233, 175, 248, 88, 1, 238, 127, 248, 88, 1, 200, 43, - 248, 88, 1, 215, 61, 248, 88, 1, 172, 248, 88, 1, 232, 51, 248, 88, 1, - 222, 152, 248, 88, 1, 230, 116, 248, 88, 1, 223, 35, 248, 88, 1, 208, - 104, 248, 88, 1, 192, 235, 248, 88, 1, 191, 72, 248, 88, 1, 247, 3, 248, - 88, 1, 203, 167, 248, 88, 1, 146, 248, 88, 1, 191, 166, 248, 88, 1, 247, - 193, 248, 88, 1, 206, 8, 248, 88, 1, 65, 248, 88, 1, 74, 248, 88, 1, 71, - 248, 88, 1, 234, 173, 248, 88, 1, 251, 236, 248, 88, 1, 234, 166, 248, - 88, 1, 250, 163, 248, 88, 1, 211, 19, 248, 88, 1, 251, 132, 248, 88, 1, - 234, 103, 248, 88, 1, 251, 122, 248, 88, 1, 234, 88, 248, 88, 1, 234, 34, - 248, 88, 1, 68, 248, 88, 1, 66, 248, 88, 1, 223, 49, 248, 88, 1, 196, 12, - 248, 88, 1, 214, 70, 248, 88, 1, 231, 7, 248, 88, 1, 223, 200, 248, 88, - 1, 187, 4, 75, 58, 248, 88, 1, 213, 80, 30, 1, 221, 113, 30, 1, 201, 167, - 30, 1, 221, 106, 30, 1, 213, 204, 30, 1, 213, 202, 30, 1, 213, 201, 30, - 1, 198, 168, 30, 1, 201, 156, 30, 1, 206, 239, 30, 1, 206, 234, 30, 1, - 206, 231, 30, 1, 206, 224, 30, 1, 206, 219, 30, 1, 206, 214, 30, 1, 206, - 225, 30, 1, 206, 237, 30, 1, 216, 77, 30, 1, 209, 169, 30, 1, 201, 164, - 30, 1, 209, 158, 30, 1, 202, 160, 30, 1, 201, 161, 30, 1, 223, 222, 30, - 1, 243, 24, 30, 1, 201, 171, 30, 1, 243, 91, 30, 1, 221, 188, 30, 1, 199, - 7, 30, 1, 209, 209, 30, 1, 229, 142, 30, 1, 65, 30, 1, 252, 25, 30, 1, - 170, 30, 1, 192, 129, 30, 1, 234, 65, 30, 1, 71, 30, 1, 192, 67, 30, 1, - 192, 80, 30, 1, 74, 30, 1, 193, 190, 30, 1, 193, 176, 30, 1, 211, 151, - 30, 1, 192, 12, 30, 1, 66, 30, 1, 193, 107, 30, 1, 193, 125, 30, 1, 193, - 86, 30, 1, 191, 225, 30, 1, 233, 242, 30, 1, 192, 33, 30, 1, 68, 30, 233, - 3, 30, 1, 201, 165, 30, 1, 213, 194, 30, 1, 213, 196, 30, 1, 213, 199, - 30, 1, 206, 232, 30, 1, 206, 213, 30, 1, 206, 221, 30, 1, 206, 226, 30, - 1, 206, 211, 30, 1, 216, 70, 30, 1, 216, 67, 30, 1, 216, 71, 30, 1, 222, - 71, 30, 1, 209, 164, 30, 1, 209, 150, 30, 1, 209, 156, 30, 1, 209, 153, - 30, 1, 209, 167, 30, 1, 209, 151, 30, 1, 222, 69, 30, 1, 222, 67, 30, 1, - 202, 153, 30, 1, 202, 151, 30, 1, 202, 143, 30, 1, 202, 148, 30, 1, 202, - 158, 30, 1, 210, 149, 30, 1, 201, 168, 30, 1, 192, 57, 30, 1, 192, 51, - 30, 1, 192, 52, 30, 1, 222, 70, 30, 1, 201, 169, 30, 1, 192, 63, 30, 1, - 192, 0, 30, 1, 191, 255, 30, 1, 192, 2, 30, 1, 191, 212, 30, 1, 191, 213, - 30, 1, 191, 216, 30, 1, 251, 25, 30, 1, 251, 19, 154, 251, 96, 219, 101, - 77, 154, 251, 96, 207, 19, 77, 154, 251, 96, 91, 77, 154, 251, 96, 105, - 77, 154, 251, 96, 115, 77, 154, 251, 96, 232, 128, 77, 154, 251, 96, 198, - 54, 77, 154, 251, 96, 82, 77, 154, 251, 96, 248, 77, 77, 154, 251, 96, - 232, 238, 77, 154, 251, 96, 205, 57, 77, 154, 251, 96, 199, 1, 77, 154, - 251, 96, 232, 121, 77, 154, 251, 96, 229, 220, 77, 154, 251, 96, 234, - 208, 77, 154, 251, 96, 217, 91, 77, 248, 88, 1, 248, 10, 248, 88, 1, 191, - 30, 248, 88, 1, 222, 244, 248, 88, 1, 230, 179, 248, 88, 1, 234, 188, - 248, 88, 1, 234, 85, 248, 88, 1, 211, 87, 248, 88, 1, 211, 91, 248, 88, - 1, 223, 77, 248, 88, 1, 251, 98, 248, 88, 1, 223, 128, 248, 88, 1, 196, - 83, 248, 88, 1, 223, 180, 248, 88, 1, 214, 48, 248, 88, 1, 251, 229, 248, - 88, 1, 250, 158, 248, 88, 1, 251, 149, 248, 88, 1, 211, 113, 248, 88, 1, - 211, 94, 248, 88, 1, 223, 125, 248, 88, 53, 1, 210, 236, 248, 88, 53, 1, - 200, 43, 248, 88, 53, 1, 222, 152, 248, 88, 53, 1, 230, 116, 248, 88, 1, - 231, 92, 248, 88, 1, 219, 160, 248, 88, 1, 190, 231, 248, 88, 53, 1, 232, - 51, 248, 88, 1, 230, 136, 248, 88, 1, 220, 180, 248, 88, 1, 211, 151, - 248, 88, 1, 251, 245, 12, 201, 28, 200, 43, 12, 201, 28, 193, 98, 12, - 201, 28, 192, 209, 12, 201, 28, 247, 206, 12, 201, 28, 200, 151, 12, 201, - 28, 228, 78, 12, 201, 28, 228, 82, 12, 201, 28, 228, 169, 12, 201, 28, - 228, 79, 12, 201, 28, 200, 46, 12, 201, 28, 228, 81, 12, 201, 28, 228, - 77, 12, 201, 28, 228, 167, 12, 201, 28, 228, 80, 12, 201, 28, 228, 76, - 12, 201, 28, 215, 61, 12, 201, 28, 230, 116, 12, 201, 28, 206, 8, 12, - 201, 28, 210, 236, 12, 201, 28, 201, 250, 12, 201, 28, 238, 127, 12, 201, - 28, 228, 83, 12, 201, 28, 229, 178, 12, 201, 28, 200, 55, 12, 201, 28, - 200, 128, 12, 201, 28, 201, 118, 12, 201, 28, 203, 173, 12, 201, 28, 210, - 67, 12, 201, 28, 208, 106, 12, 201, 28, 198, 99, 12, 201, 28, 200, 45, - 12, 201, 28, 200, 140, 12, 201, 28, 228, 94, 12, 201, 28, 228, 75, 12, - 201, 28, 209, 230, 12, 201, 28, 208, 104, 72, 1, 2, 220, 232, 72, 1, 2, - 202, 222, 72, 1, 2, 201, 4, 72, 1, 2, 159, 72, 1, 2, 212, 178, 72, 1, 2, - 140, 72, 1, 2, 229, 158, 72, 1, 2, 228, 159, 72, 1, 2, 229, 245, 72, 1, - 2, 229, 23, 72, 1, 2, 215, 155, 72, 1, 2, 165, 72, 1, 2, 207, 1, 72, 1, - 2, 206, 68, 72, 1, 2, 207, 113, 72, 1, 2, 206, 162, 127, 30, 221, 113, - 127, 30, 213, 204, 127, 30, 198, 168, 127, 30, 206, 239, 127, 30, 216, - 77, 127, 30, 209, 169, 127, 30, 202, 160, 127, 30, 223, 222, 127, 30, - 243, 24, 127, 30, 243, 91, 127, 30, 221, 188, 127, 30, 199, 7, 127, 30, - 209, 209, 127, 30, 229, 142, 127, 30, 221, 114, 65, 127, 30, 213, 205, - 65, 127, 30, 198, 169, 65, 127, 30, 206, 240, 65, 127, 30, 216, 78, 65, - 127, 30, 209, 170, 65, 127, 30, 202, 161, 65, 127, 30, 223, 223, 65, 127, - 30, 243, 25, 65, 127, 30, 243, 92, 65, 127, 30, 221, 189, 65, 127, 30, - 199, 8, 65, 127, 30, 209, 210, 65, 127, 30, 229, 143, 65, 127, 30, 243, - 25, 66, 127, 221, 32, 246, 240, 211, 129, 127, 221, 32, 246, 240, 187, - 228, 159, 127, 228, 14, 107, 127, 228, 14, 109, 127, 228, 14, 138, 127, - 228, 14, 134, 127, 228, 14, 149, 127, 228, 14, 169, 127, 228, 14, 175, - 127, 228, 14, 171, 127, 228, 14, 178, 127, 228, 14, 199, 95, 127, 228, - 14, 215, 205, 127, 228, 14, 232, 243, 127, 228, 14, 193, 143, 127, 228, - 14, 193, 28, 127, 228, 14, 216, 165, 127, 228, 14, 234, 207, 127, 228, - 14, 200, 198, 127, 228, 14, 201, 66, 127, 228, 14, 229, 255, 127, 228, - 14, 202, 35, 127, 228, 14, 214, 227, 127, 228, 14, 201, 231, 127, 228, - 14, 232, 254, 127, 228, 14, 239, 50, 127, 228, 14, 220, 114, 127, 228, - 14, 207, 42, 127, 228, 14, 247, 138, 127, 228, 14, 201, 10, 127, 228, 14, - 200, 178, 127, 228, 14, 234, 75, 127, 228, 14, 207, 32, 127, 228, 14, - 251, 168, 127, 228, 14, 233, 31, 127, 228, 14, 207, 30, 127, 228, 14, - 204, 32, 127, 228, 14, 207, 108, 47, 228, 14, 208, 12, 47, 228, 14, 221, - 140, 47, 228, 14, 205, 89, 47, 228, 14, 221, 27, 47, 31, 199, 96, 211, - 105, 62, 201, 190, 47, 31, 197, 33, 211, 105, 62, 201, 190, 47, 31, 198, - 250, 211, 105, 62, 201, 190, 47, 31, 232, 136, 211, 105, 62, 201, 190, - 47, 31, 233, 16, 211, 105, 62, 201, 190, 47, 31, 202, 121, 211, 105, 62, - 201, 190, 47, 31, 203, 242, 211, 105, 62, 201, 190, 47, 31, 234, 154, - 211, 105, 62, 201, 190, 210, 103, 56, 47, 31, 197, 33, 107, 47, 31, 197, - 33, 109, 47, 31, 197, 33, 138, 47, 31, 197, 33, 134, 47, 31, 197, 33, - 149, 47, 31, 197, 33, 169, 47, 31, 197, 33, 175, 47, 31, 197, 33, 171, - 47, 31, 197, 33, 178, 47, 31, 198, 249, 47, 31, 198, 250, 107, 47, 31, - 198, 250, 109, 47, 31, 198, 250, 138, 47, 31, 198, 250, 134, 47, 31, 198, - 250, 149, 47, 30, 221, 113, 47, 30, 213, 204, 47, 30, 198, 168, 47, 30, - 206, 239, 47, 30, 216, 77, 47, 30, 209, 169, 47, 30, 202, 160, 47, 30, - 223, 222, 47, 30, 243, 24, 47, 30, 243, 91, 47, 30, 221, 188, 47, 30, - 199, 7, 47, 30, 209, 209, 47, 30, 229, 142, 47, 30, 221, 114, 65, 47, 30, - 213, 205, 65, 47, 30, 198, 169, 65, 47, 30, 206, 240, 65, 47, 30, 216, - 78, 65, 47, 30, 209, 170, 65, 47, 30, 202, 161, 65, 47, 30, 223, 223, 65, - 47, 30, 243, 25, 65, 47, 30, 243, 92, 65, 47, 30, 221, 189, 65, 47, 30, - 199, 8, 65, 47, 30, 209, 210, 65, 47, 30, 229, 143, 65, 47, 221, 32, 246, - 240, 246, 247, 47, 221, 32, 246, 240, 222, 178, 47, 30, 223, 223, 66, - 221, 32, 201, 106, 113, 47, 228, 14, 107, 47, 228, 14, 109, 47, 228, 14, - 138, 47, 228, 14, 134, 47, 228, 14, 149, 47, 228, 14, 169, 47, 228, 14, - 175, 47, 228, 14, 171, 47, 228, 14, 178, 47, 228, 14, 199, 95, 47, 228, - 14, 215, 205, 47, 228, 14, 232, 243, 47, 228, 14, 193, 143, 47, 228, 14, - 193, 28, 47, 228, 14, 216, 165, 47, 228, 14, 234, 207, 47, 228, 14, 200, - 198, 47, 228, 14, 201, 66, 47, 228, 14, 229, 255, 47, 228, 14, 202, 35, - 47, 228, 14, 214, 227, 47, 228, 14, 201, 231, 47, 228, 14, 232, 254, 47, - 228, 14, 239, 50, 47, 228, 14, 220, 114, 47, 228, 14, 205, 55, 47, 228, - 14, 217, 96, 47, 228, 14, 233, 41, 47, 228, 14, 200, 210, 47, 228, 14, - 233, 220, 47, 228, 14, 208, 211, 47, 228, 14, 250, 167, 47, 228, 14, 223, - 52, 47, 228, 14, 207, 30, 47, 228, 14, 239, 8, 47, 228, 14, 238, 251, 47, - 228, 14, 229, 135, 47, 228, 14, 247, 21, 47, 228, 14, 218, 241, 47, 228, - 14, 219, 224, 47, 228, 14, 183, 47, 228, 14, 216, 215, 47, 228, 14, 207, - 60, 47, 228, 14, 201, 10, 47, 228, 14, 200, 178, 47, 228, 14, 234, 75, - 47, 228, 14, 207, 32, 47, 228, 14, 251, 168, 47, 228, 14, 213, 190, 47, - 31, 198, 250, 169, 47, 31, 198, 250, 175, 47, 31, 198, 250, 171, 47, 31, - 198, 250, 178, 47, 31, 232, 135, 47, 31, 232, 136, 107, 47, 31, 232, 136, - 109, 47, 31, 232, 136, 138, 47, 31, 232, 136, 134, 47, 31, 232, 136, 149, - 47, 31, 232, 136, 169, 47, 31, 232, 136, 175, 47, 31, 232, 136, 171, 47, - 31, 232, 136, 178, 47, 31, 233, 15, 154, 199, 109, 16, 40, 223, 21, 154, - 199, 109, 16, 40, 233, 53, 154, 199, 109, 16, 40, 217, 58, 154, 199, 109, - 16, 40, 251, 39, 154, 199, 109, 16, 40, 217, 21, 154, 199, 109, 16, 40, - 222, 175, 154, 199, 109, 16, 40, 222, 176, 154, 199, 109, 16, 40, 250, - 159, 154, 199, 109, 16, 40, 204, 9, 154, 199, 109, 16, 40, 211, 157, 154, - 199, 109, 16, 40, 212, 255, 154, 199, 109, 16, 40, 237, 140, 51, 229, - 178, 51, 234, 30, 51, 233, 230, 219, 118, 219, 145, 56, 47, 72, 65, 47, - 72, 68, 47, 72, 66, 47, 72, 71, 47, 72, 74, 47, 72, 155, 47, 72, 221, - 166, 47, 72, 220, 232, 47, 72, 222, 22, 47, 72, 221, 67, 47, 72, 188, 47, - 72, 202, 222, 47, 72, 201, 4, 47, 72, 205, 68, 47, 72, 202, 46, 47, 72, - 190, 190, 47, 72, 198, 193, 47, 72, 197, 94, 47, 72, 199, 145, 47, 72, - 159, 47, 72, 180, 47, 72, 213, 219, 47, 72, 212, 178, 47, 72, 214, 121, - 47, 72, 213, 43, 47, 72, 140, 47, 72, 229, 158, 47, 72, 228, 159, 47, 72, - 229, 245, 47, 72, 229, 23, 47, 72, 174, 47, 72, 216, 100, 47, 72, 215, - 155, 47, 72, 216, 232, 47, 72, 216, 12, 47, 72, 170, 47, 72, 191, 225, - 47, 72, 192, 12, 47, 72, 165, 47, 72, 207, 1, 47, 72, 206, 68, 47, 72, - 207, 113, 47, 72, 206, 162, 47, 72, 193, 190, 47, 72, 193, 86, 47, 72, - 193, 125, 47, 72, 193, 48, 51, 234, 33, 214, 228, 207, 68, 51, 251, 64, - 51, 250, 221, 51, 251, 92, 51, 252, 163, 51, 223, 130, 51, 223, 97, 51, - 196, 80, 51, 234, 2, 51, 234, 185, 51, 211, 90, 51, 211, 83, 51, 222, - 100, 51, 222, 63, 51, 222, 58, 51, 231, 195, 51, 231, 205, 51, 231, 41, - 51, 231, 35, 51, 220, 144, 51, 231, 26, 51, 221, 131, 51, 221, 130, 51, - 221, 129, 51, 221, 128, 51, 230, 146, 51, 230, 145, 51, 220, 193, 51, - 220, 196, 51, 222, 9, 51, 221, 29, 51, 221, 38, 51, 205, 180, 51, 205, - 133, 51, 202, 141, 51, 204, 15, 51, 204, 14, 51, 238, 28, 51, 237, 81, - 51, 236, 141, 51, 198, 81, 51, 214, 221, 51, 213, 0, 51, 230, 75, 51, - 210, 214, 51, 210, 213, 51, 249, 150, 51, 209, 181, 51, 209, 143, 51, - 209, 144, 51, 248, 156, 51, 228, 154, 51, 228, 148, 51, 247, 221, 51, - 228, 132, 51, 229, 206, 51, 209, 241, 51, 210, 29, 51, 229, 187, 51, 210, - 25, 51, 210, 43, 51, 248, 252, 51, 209, 57, 51, 248, 84, 51, 228, 255, - 51, 209, 38, 51, 228, 246, 51, 228, 248, 51, 217, 110, 51, 217, 106, 51, - 217, 115, 51, 217, 44, 51, 217, 76, 51, 216, 56, 51, 216, 29, 51, 216, - 28, 51, 216, 203, 51, 216, 200, 51, 216, 204, 51, 192, 139, 51, 192, 137, - 51, 191, 210, 51, 206, 178, 51, 206, 182, 51, 206, 35, 51, 206, 28, 51, - 207, 57, 51, 207, 54, 51, 193, 141, 154, 199, 109, 16, 40, 228, 177, 191, - 77, 154, 199, 109, 16, 40, 228, 177, 107, 154, 199, 109, 16, 40, 228, - 177, 109, 154, 199, 109, 16, 40, 228, 177, 138, 154, 199, 109, 16, 40, - 228, 177, 134, 154, 199, 109, 16, 40, 228, 177, 149, 154, 199, 109, 16, - 40, 228, 177, 169, 154, 199, 109, 16, 40, 228, 177, 175, 154, 199, 109, - 16, 40, 228, 177, 171, 154, 199, 109, 16, 40, 228, 177, 178, 154, 199, - 109, 16, 40, 228, 177, 199, 95, 154, 199, 109, 16, 40, 228, 177, 234, - 127, 154, 199, 109, 16, 40, 228, 177, 197, 37, 154, 199, 109, 16, 40, - 228, 177, 198, 251, 154, 199, 109, 16, 40, 228, 177, 232, 122, 154, 199, - 109, 16, 40, 228, 177, 233, 19, 154, 199, 109, 16, 40, 228, 177, 202, - 130, 154, 199, 109, 16, 40, 228, 177, 203, 244, 154, 199, 109, 16, 40, - 228, 177, 234, 161, 154, 199, 109, 16, 40, 228, 177, 213, 171, 154, 199, - 109, 16, 40, 228, 177, 197, 32, 154, 199, 109, 16, 40, 228, 177, 197, 25, - 154, 199, 109, 16, 40, 228, 177, 197, 20, 154, 199, 109, 16, 40, 228, - 177, 197, 22, 154, 199, 109, 16, 40, 228, 177, 197, 27, 51, 228, 168, 51, - 238, 32, 51, 250, 163, 51, 164, 51, 211, 9, 51, 210, 68, 51, 236, 177, - 51, 236, 178, 201, 189, 51, 236, 178, 238, 189, 51, 223, 49, 51, 234, 33, - 214, 228, 229, 207, 51, 234, 33, 214, 228, 200, 66, 51, 234, 33, 214, - 228, 199, 212, 51, 234, 33, 214, 228, 216, 199, 51, 238, 253, 51, 210, - 221, 251, 135, 51, 180, 51, 215, 156, 65, 51, 174, 51, 155, 51, 222, 25, - 51, 217, 16, 51, 231, 183, 51, 247, 144, 51, 222, 24, 51, 209, 231, 51, - 214, 72, 51, 215, 156, 233, 175, 51, 215, 156, 232, 51, 51, 216, 141, 51, - 221, 217, 51, 228, 83, 51, 221, 168, 51, 216, 102, 51, 231, 55, 51, 198, - 195, 51, 215, 156, 172, 51, 216, 20, 51, 236, 187, 51, 221, 95, 51, 232, - 177, 51, 213, 81, 51, 215, 156, 218, 168, 51, 216, 17, 51, 242, 199, 51, - 221, 81, 51, 216, 18, 201, 189, 51, 242, 200, 201, 189, 51, 218, 169, - 201, 189, 51, 221, 82, 201, 189, 51, 216, 18, 238, 189, 51, 242, 200, - 238, 189, 51, 218, 169, 238, 189, 51, 221, 82, 238, 189, 51, 218, 169, - 139, 206, 8, 51, 218, 169, 139, 206, 9, 201, 189, 51, 168, 51, 221, 21, - 51, 215, 166, 51, 230, 229, 51, 207, 168, 51, 207, 169, 139, 206, 8, 51, - 207, 169, 139, 206, 9, 201, 189, 51, 208, 178, 51, 212, 219, 51, 215, - 156, 206, 8, 51, 215, 158, 51, 208, 124, 51, 212, 112, 51, 215, 156, 196, - 12, 51, 215, 87, 51, 220, 182, 51, 215, 88, 216, 203, 51, 208, 123, 51, - 212, 111, 51, 215, 156, 193, 224, 51, 215, 81, 51, 220, 180, 51, 215, 82, - 216, 203, 51, 222, 153, 211, 134, 51, 218, 169, 211, 134, 51, 251, 149, - 51, 248, 57, 51, 247, 66, 51, 247, 43, 51, 247, 194, 139, 221, 217, 51, - 242, 99, 51, 237, 200, 51, 230, 129, 51, 140, 51, 228, 169, 51, 223, 162, - 51, 221, 102, 51, 221, 82, 247, 110, 51, 220, 234, 51, 219, 46, 51, 219, - 45, 51, 219, 30, 51, 218, 184, 51, 217, 17, 202, 70, 51, 216, 55, 51, - 215, 233, 51, 209, 229, 51, 209, 76, 51, 208, 249, 51, 208, 247, 51, 201, - 180, 51, 200, 158, 51, 193, 127, 51, 196, 13, 139, 218, 168, 51, 42, 139, - 218, 168, 154, 199, 109, 16, 40, 237, 204, 107, 154, 199, 109, 16, 40, - 237, 204, 109, 154, 199, 109, 16, 40, 237, 204, 138, 154, 199, 109, 16, - 40, 237, 204, 134, 154, 199, 109, 16, 40, 237, 204, 149, 154, 199, 109, - 16, 40, 237, 204, 169, 154, 199, 109, 16, 40, 237, 204, 175, 154, 199, - 109, 16, 40, 237, 204, 171, 154, 199, 109, 16, 40, 237, 204, 178, 154, - 199, 109, 16, 40, 237, 204, 199, 95, 154, 199, 109, 16, 40, 237, 204, - 234, 127, 154, 199, 109, 16, 40, 237, 204, 197, 37, 154, 199, 109, 16, - 40, 237, 204, 198, 251, 154, 199, 109, 16, 40, 237, 204, 232, 122, 154, - 199, 109, 16, 40, 237, 204, 233, 19, 154, 199, 109, 16, 40, 237, 204, - 202, 130, 154, 199, 109, 16, 40, 237, 204, 203, 244, 154, 199, 109, 16, - 40, 237, 204, 234, 161, 154, 199, 109, 16, 40, 237, 204, 213, 171, 154, - 199, 109, 16, 40, 237, 204, 197, 32, 154, 199, 109, 16, 40, 237, 204, - 197, 25, 154, 199, 109, 16, 40, 237, 204, 197, 20, 154, 199, 109, 16, 40, - 237, 204, 197, 22, 154, 199, 109, 16, 40, 237, 204, 197, 27, 154, 199, - 109, 16, 40, 237, 204, 197, 28, 154, 199, 109, 16, 40, 237, 204, 197, 23, - 154, 199, 109, 16, 40, 237, 204, 197, 24, 154, 199, 109, 16, 40, 237, - 204, 197, 31, 154, 199, 109, 16, 40, 237, 204, 197, 26, 154, 199, 109, - 16, 40, 237, 204, 198, 249, 154, 199, 109, 16, 40, 237, 204, 198, 247, - 51, 231, 222, 229, 181, 40, 199, 34, 238, 231, 229, 219, 229, 181, 40, - 199, 34, 207, 100, 234, 207, 229, 181, 40, 237, 14, 250, 183, 199, 34, - 248, 247, 229, 181, 40, 191, 238, 232, 168, 229, 181, 40, 193, 171, 229, - 181, 40, 239, 53, 229, 181, 40, 199, 34, 250, 246, 229, 181, 40, 229, 6, - 198, 87, 229, 181, 40, 2, 199, 194, 229, 181, 40, 198, 1, 229, 181, 40, - 210, 60, 229, 181, 40, 201, 104, 229, 181, 40, 233, 43, 229, 181, 40, - 230, 206, 209, 21, 229, 181, 40, 215, 254, 229, 181, 40, 234, 74, 229, - 181, 40, 232, 169, 229, 181, 40, 193, 21, 211, 105, 199, 34, 237, 141, - 229, 181, 40, 251, 43, 229, 181, 40, 239, 31, 229, 181, 40, 248, 145, - 198, 215, 229, 181, 40, 230, 227, 229, 181, 40, 201, 208, 251, 63, 229, - 181, 40, 207, 22, 229, 181, 40, 223, 124, 229, 181, 40, 230, 206, 199, - 194, 229, 181, 40, 215, 180, 239, 0, 229, 181, 40, 230, 206, 208, 224, - 229, 181, 40, 199, 34, 252, 65, 193, 143, 229, 181, 40, 199, 34, 242, - 227, 232, 243, 229, 181, 40, 223, 138, 229, 181, 40, 235, 64, 229, 181, - 40, 207, 25, 229, 181, 40, 230, 206, 208, 254, 229, 181, 40, 208, 197, - 229, 181, 40, 237, 220, 79, 199, 34, 219, 132, 229, 181, 40, 199, 34, - 233, 81, 229, 181, 40, 211, 62, 229, 181, 40, 211, 167, 229, 181, 40, - 237, 111, 229, 181, 40, 237, 133, 229, 181, 40, 223, 153, 229, 181, 40, - 248, 41, 229, 181, 40, 242, 76, 119, 216, 206, 229, 181, 40, 231, 190, - 198, 87, 229, 181, 40, 208, 135, 196, 67, 229, 181, 40, 211, 61, 229, - 181, 40, 199, 34, 193, 109, 229, 181, 40, 207, 13, 229, 181, 40, 199, 34, - 247, 72, 229, 181, 40, 199, 34, 250, 242, 198, 209, 229, 181, 40, 199, - 34, 222, 10, 201, 70, 215, 184, 229, 181, 40, 237, 76, 229, 181, 40, 199, - 34, 217, 47, 217, 111, 229, 181, 40, 252, 66, 229, 181, 40, 199, 34, 193, - 161, 229, 181, 40, 199, 34, 231, 145, 193, 66, 229, 181, 40, 199, 34, - 222, 184, 220, 43, 229, 181, 40, 236, 219, 229, 181, 40, 219, 119, 229, - 181, 40, 223, 127, 197, 176, 229, 181, 40, 2, 208, 224, 229, 181, 40, - 251, 254, 242, 66, 229, 181, 40, 248, 250, 242, 66, 11, 5, 223, 53, 11, - 5, 223, 45, 11, 5, 68, 11, 5, 223, 80, 11, 5, 223, 224, 11, 5, 223, 207, - 11, 5, 223, 226, 11, 5, 223, 225, 11, 5, 250, 182, 11, 5, 250, 133, 11, - 5, 65, 11, 5, 251, 65, 11, 5, 196, 78, 11, 5, 196, 82, 11, 5, 196, 79, - 11, 5, 211, 30, 11, 5, 210, 247, 11, 5, 74, 11, 5, 211, 78, 11, 5, 233, - 221, 11, 5, 71, 11, 5, 193, 0, 11, 5, 248, 148, 11, 5, 248, 143, 11, 5, - 248, 188, 11, 5, 248, 161, 11, 5, 248, 177, 11, 5, 248, 176, 11, 5, 248, - 179, 11, 5, 248, 178, 11, 5, 249, 64, 11, 5, 249, 56, 11, 5, 249, 153, - 11, 5, 249, 89, 11, 5, 247, 234, 11, 5, 247, 238, 11, 5, 247, 235, 11, 5, - 248, 81, 11, 5, 248, 62, 11, 5, 248, 111, 11, 5, 248, 89, 11, 5, 248, - 206, 11, 5, 249, 17, 11, 5, 248, 219, 11, 5, 247, 217, 11, 5, 247, 211, - 11, 5, 248, 10, 11, 5, 247, 232, 11, 5, 247, 225, 11, 5, 247, 230, 11, 5, - 247, 199, 11, 5, 247, 197, 11, 5, 247, 204, 11, 5, 247, 202, 11, 5, 247, - 200, 11, 5, 247, 201, 11, 5, 209, 117, 11, 5, 209, 113, 11, 5, 209, 185, - 11, 5, 209, 129, 11, 5, 209, 149, 11, 5, 209, 176, 11, 5, 209, 172, 11, - 5, 210, 89, 11, 5, 210, 73, 11, 5, 168, 11, 5, 210, 137, 11, 5, 208, 145, - 11, 5, 208, 147, 11, 5, 208, 146, 11, 5, 209, 14, 11, 5, 208, 252, 11, 5, - 209, 73, 11, 5, 209, 33, 11, 5, 208, 131, 11, 5, 208, 126, 11, 5, 208, - 165, 11, 5, 208, 144, 11, 5, 208, 136, 11, 5, 208, 142, 11, 5, 208, 108, - 11, 5, 208, 107, 11, 5, 208, 112, 11, 5, 208, 111, 11, 5, 208, 109, 11, - 5, 208, 110, 11, 5, 249, 38, 11, 5, 249, 37, 11, 5, 249, 44, 11, 5, 249, - 39, 11, 5, 249, 41, 11, 5, 249, 40, 11, 5, 249, 43, 11, 5, 249, 42, 11, - 5, 249, 50, 11, 5, 249, 49, 11, 5, 249, 53, 11, 5, 249, 51, 11, 5, 249, - 29, 11, 5, 249, 31, 11, 5, 249, 30, 11, 5, 249, 34, 11, 5, 249, 33, 11, - 5, 249, 36, 11, 5, 249, 35, 11, 5, 249, 45, 11, 5, 249, 48, 11, 5, 249, - 46, 11, 5, 249, 25, 11, 5, 249, 24, 11, 5, 249, 32, 11, 5, 249, 28, 11, - 5, 249, 26, 11, 5, 249, 27, 11, 5, 249, 21, 11, 5, 249, 20, 11, 5, 249, - 23, 11, 5, 249, 22, 11, 5, 214, 185, 11, 5, 214, 184, 11, 5, 214, 190, - 11, 5, 214, 186, 11, 5, 214, 187, 11, 5, 214, 189, 11, 5, 214, 188, 11, - 5, 214, 193, 11, 5, 214, 192, 11, 5, 214, 195, 11, 5, 214, 194, 11, 5, - 214, 181, 11, 5, 214, 180, 11, 5, 214, 183, 11, 5, 214, 182, 11, 5, 214, - 174, 11, 5, 214, 173, 11, 5, 214, 178, 11, 5, 214, 177, 11, 5, 214, 175, - 11, 5, 214, 176, 11, 5, 214, 168, 11, 5, 214, 167, 11, 5, 214, 172, 11, - 5, 214, 171, 11, 5, 214, 169, 11, 5, 214, 170, 11, 5, 229, 67, 11, 5, - 229, 66, 11, 5, 229, 72, 11, 5, 229, 68, 11, 5, 229, 69, 11, 5, 229, 71, - 11, 5, 229, 70, 11, 5, 229, 75, 11, 5, 229, 74, 11, 5, 229, 77, 11, 5, - 229, 76, 11, 5, 229, 58, 11, 5, 229, 60, 11, 5, 229, 59, 11, 5, 229, 63, - 11, 5, 229, 62, 11, 5, 229, 65, 11, 5, 229, 64, 11, 5, 229, 54, 11, 5, - 229, 53, 11, 5, 229, 61, 11, 5, 229, 57, 11, 5, 229, 55, 11, 5, 229, 56, - 11, 5, 229, 48, 11, 5, 229, 52, 11, 5, 229, 51, 11, 5, 229, 49, 11, 5, - 229, 50, 11, 5, 216, 23, 11, 5, 216, 22, 11, 5, 216, 100, 11, 5, 216, 31, - 11, 5, 216, 63, 11, 5, 216, 81, 11, 5, 216, 79, 11, 5, 217, 30, 11, 5, - 217, 24, 11, 5, 174, 11, 5, 217, 71, 11, 5, 215, 115, 11, 5, 215, 114, - 11, 5, 215, 118, 11, 5, 215, 116, 11, 5, 215, 195, 11, 5, 215, 168, 11, - 5, 216, 12, 11, 5, 215, 202, 11, 5, 216, 152, 11, 5, 216, 232, 11, 5, - 215, 95, 11, 5, 215, 89, 11, 5, 215, 155, 11, 5, 215, 111, 11, 5, 215, - 104, 11, 5, 215, 109, 11, 5, 215, 65, 11, 5, 215, 64, 11, 5, 215, 70, 11, - 5, 215, 67, 11, 5, 232, 229, 11, 5, 232, 222, 11, 5, 233, 23, 11, 5, 232, - 245, 11, 5, 233, 72, 11, 5, 233, 63, 11, 5, 233, 109, 11, 5, 233, 77, 11, - 5, 232, 119, 11, 5, 232, 175, 11, 5, 232, 154, 11, 5, 232, 68, 11, 5, - 232, 67, 11, 5, 232, 86, 11, 5, 232, 73, 11, 5, 232, 71, 11, 5, 232, 72, - 11, 5, 232, 54, 11, 5, 232, 53, 11, 5, 232, 57, 11, 5, 232, 55, 11, 5, - 195, 32, 11, 5, 195, 26, 11, 5, 195, 69, 11, 5, 195, 41, 11, 5, 195, 58, - 11, 5, 195, 53, 11, 5, 195, 61, 11, 5, 195, 60, 11, 5, 195, 162, 11, 5, - 195, 157, 11, 5, 195, 188, 11, 5, 195, 175, 11, 5, 195, 4, 11, 5, 195, 0, - 11, 5, 195, 24, 11, 5, 195, 6, 11, 5, 195, 73, 11, 5, 195, 141, 11, 5, - 193, 242, 11, 5, 193, 240, 11, 5, 193, 249, 11, 5, 193, 245, 11, 5, 193, - 243, 11, 5, 193, 244, 11, 5, 193, 229, 11, 5, 193, 228, 11, 5, 193, 235, - 11, 5, 193, 234, 11, 5, 193, 232, 11, 5, 193, 233, 11, 5, 236, 212, 11, - 5, 236, 197, 11, 5, 237, 44, 11, 5, 236, 240, 11, 5, 237, 19, 11, 5, 237, - 24, 11, 5, 237, 23, 11, 5, 237, 211, 11, 5, 237, 205, 11, 5, 238, 32, 11, - 5, 237, 231, 11, 5, 235, 69, 11, 5, 235, 70, 11, 5, 236, 140, 11, 5, 235, - 117, 11, 5, 236, 174, 11, 5, 236, 143, 11, 5, 237, 74, 11, 5, 237, 146, - 11, 5, 237, 96, 11, 5, 235, 60, 11, 5, 235, 58, 11, 5, 235, 89, 11, 5, - 235, 68, 11, 5, 235, 63, 11, 5, 235, 66, 11, 5, 198, 125, 11, 5, 198, - 117, 11, 5, 198, 193, 11, 5, 198, 135, 11, 5, 198, 176, 11, 5, 198, 178, - 11, 5, 198, 177, 11, 5, 199, 171, 11, 5, 199, 156, 11, 5, 190, 190, 11, - 5, 199, 183, 11, 5, 197, 69, 11, 5, 197, 68, 11, 5, 197, 71, 11, 5, 197, - 70, 11, 5, 198, 40, 11, 5, 198, 29, 11, 5, 159, 11, 5, 198, 53, 11, 5, - 199, 55, 11, 5, 199, 145, 11, 5, 199, 82, 11, 5, 197, 52, 11, 5, 197, 47, - 11, 5, 197, 94, 11, 5, 197, 67, 11, 5, 197, 53, 11, 5, 197, 64, 11, 5, - 237, 163, 11, 5, 237, 162, 11, 5, 237, 168, 11, 5, 237, 164, 11, 5, 237, - 165, 11, 5, 237, 167, 11, 5, 237, 166, 11, 5, 237, 184, 11, 5, 237, 183, - 11, 5, 237, 191, 11, 5, 237, 185, 11, 5, 237, 153, 11, 5, 237, 155, 11, - 5, 237, 154, 11, 5, 237, 158, 11, 5, 237, 157, 11, 5, 237, 161, 11, 5, - 237, 159, 11, 5, 237, 176, 11, 5, 237, 179, 11, 5, 237, 177, 11, 5, 237, - 149, 11, 5, 237, 148, 11, 5, 237, 156, 11, 5, 237, 152, 11, 5, 237, 150, - 11, 5, 237, 151, 11, 5, 214, 140, 11, 5, 214, 139, 11, 5, 214, 147, 11, - 5, 214, 142, 11, 5, 214, 143, 11, 5, 214, 144, 11, 5, 214, 156, 11, 5, - 214, 155, 11, 5, 214, 162, 11, 5, 214, 157, 11, 5, 214, 132, 11, 5, 214, - 131, 11, 5, 214, 138, 11, 5, 214, 133, 11, 5, 214, 148, 11, 5, 214, 154, - 11, 5, 214, 152, 11, 5, 214, 124, 11, 5, 214, 123, 11, 5, 214, 129, 11, - 5, 214, 127, 11, 5, 214, 125, 11, 5, 214, 126, 11, 5, 229, 33, 11, 5, - 229, 32, 11, 5, 229, 39, 11, 5, 229, 34, 11, 5, 229, 36, 11, 5, 229, 35, - 11, 5, 229, 38, 11, 5, 229, 37, 11, 5, 229, 45, 11, 5, 229, 43, 11, 5, - 229, 47, 11, 5, 229, 46, 11, 5, 229, 26, 11, 5, 229, 27, 11, 5, 229, 30, - 11, 5, 229, 29, 11, 5, 229, 31, 11, 5, 229, 40, 11, 5, 229, 42, 11, 5, - 229, 41, 11, 5, 229, 25, 11, 5, 213, 162, 11, 5, 213, 160, 11, 5, 213, - 219, 11, 5, 213, 165, 11, 5, 213, 193, 11, 5, 213, 207, 11, 5, 213, 206, - 11, 5, 214, 200, 11, 5, 180, 11, 5, 214, 218, 11, 5, 212, 122, 11, 5, - 212, 124, 11, 5, 212, 123, 11, 5, 213, 11, 11, 5, 212, 251, 11, 5, 213, - 43, 11, 5, 213, 22, 11, 5, 214, 74, 11, 5, 214, 121, 11, 5, 214, 97, 11, - 5, 212, 117, 11, 5, 212, 113, 11, 5, 212, 178, 11, 5, 212, 121, 11, 5, - 212, 119, 11, 5, 212, 120, 11, 5, 229, 98, 11, 5, 229, 97, 11, 5, 229, - 103, 11, 5, 229, 99, 11, 5, 229, 100, 11, 5, 229, 102, 11, 5, 229, 101, - 11, 5, 229, 109, 11, 5, 229, 107, 11, 5, 229, 111, 11, 5, 229, 110, 11, - 5, 229, 90, 11, 5, 229, 92, 11, 5, 229, 91, 11, 5, 229, 94, 11, 5, 229, - 96, 11, 5, 229, 95, 11, 5, 229, 104, 11, 5, 229, 106, 11, 5, 229, 105, - 11, 5, 229, 86, 11, 5, 229, 85, 11, 5, 229, 93, 11, 5, 229, 89, 11, 5, - 229, 87, 11, 5, 229, 88, 11, 5, 229, 80, 11, 5, 229, 79, 11, 5, 229, 84, - 11, 5, 229, 83, 11, 5, 229, 81, 11, 5, 229, 82, 11, 5, 219, 87, 11, 5, - 219, 79, 11, 5, 219, 146, 11, 5, 219, 98, 11, 5, 219, 137, 11, 5, 219, - 136, 11, 5, 219, 140, 11, 5, 219, 138, 11, 5, 220, 5, 11, 5, 219, 249, - 11, 5, 173, 11, 5, 220, 16, 11, 5, 218, 201, 11, 5, 218, 200, 11, 5, 218, - 203, 11, 5, 218, 202, 11, 5, 218, 249, 11, 5, 218, 234, 11, 5, 219, 43, - 11, 5, 219, 1, 11, 5, 219, 164, 11, 5, 219, 238, 11, 5, 219, 184, 11, 5, - 218, 195, 11, 5, 218, 193, 11, 5, 218, 225, 11, 5, 218, 199, 11, 5, 218, - 197, 11, 5, 218, 198, 11, 5, 218, 173, 11, 5, 218, 172, 11, 5, 218, 183, - 11, 5, 218, 176, 11, 5, 218, 174, 11, 5, 218, 175, 11, 5, 231, 22, 11, 5, - 231, 21, 11, 5, 231, 53, 11, 5, 231, 34, 11, 5, 231, 45, 11, 5, 231, 44, - 11, 5, 231, 47, 11, 5, 231, 46, 11, 5, 231, 192, 11, 5, 231, 187, 11, 5, - 231, 240, 11, 5, 231, 203, 11, 5, 230, 152, 11, 5, 230, 151, 11, 5, 230, - 154, 11, 5, 230, 153, 11, 5, 230, 232, 11, 5, 230, 230, 11, 5, 231, 3, - 11, 5, 230, 242, 11, 5, 231, 131, 11, 5, 231, 129, 11, 5, 231, 165, 11, - 5, 231, 142, 11, 5, 230, 140, 11, 5, 230, 139, 11, 5, 230, 179, 11, 5, - 230, 150, 11, 5, 230, 141, 11, 5, 230, 149, 11, 5, 221, 120, 11, 5, 221, - 115, 11, 5, 221, 166, 11, 5, 221, 134, 11, 5, 221, 147, 11, 5, 221, 151, - 11, 5, 221, 149, 11, 5, 222, 49, 11, 5, 222, 30, 11, 5, 155, 11, 5, 222, - 78, 11, 5, 220, 202, 11, 5, 220, 207, 11, 5, 220, 204, 11, 5, 221, 28, - 11, 5, 221, 23, 11, 5, 221, 67, 11, 5, 221, 36, 11, 5, 221, 241, 11, 5, - 221, 224, 11, 5, 222, 22, 11, 5, 221, 245, 11, 5, 220, 188, 11, 5, 220, - 184, 11, 5, 220, 232, 11, 5, 220, 201, 11, 5, 220, 192, 11, 5, 220, 197, - 11, 5, 231, 113, 11, 5, 231, 112, 11, 5, 231, 117, 11, 5, 231, 114, 11, - 5, 231, 116, 11, 5, 231, 115, 11, 5, 231, 124, 11, 5, 231, 123, 11, 5, - 231, 127, 11, 5, 231, 125, 11, 5, 231, 104, 11, 5, 231, 103, 11, 5, 231, - 106, 11, 5, 231, 105, 11, 5, 231, 109, 11, 5, 231, 108, 11, 5, 231, 111, - 11, 5, 231, 110, 11, 5, 231, 119, 11, 5, 231, 118, 11, 5, 231, 122, 11, - 5, 231, 120, 11, 5, 231, 99, 11, 5, 231, 98, 11, 5, 231, 107, 11, 5, 231, - 102, 11, 5, 231, 100, 11, 5, 231, 101, 11, 5, 216, 119, 11, 5, 216, 120, - 11, 5, 216, 138, 11, 5, 216, 137, 11, 5, 216, 140, 11, 5, 216, 139, 11, - 5, 216, 110, 11, 5, 216, 112, 11, 5, 216, 111, 11, 5, 216, 115, 11, 5, - 216, 114, 11, 5, 216, 117, 11, 5, 216, 116, 11, 5, 216, 121, 11, 5, 216, - 123, 11, 5, 216, 122, 11, 5, 216, 106, 11, 5, 216, 105, 11, 5, 216, 113, - 11, 5, 216, 109, 11, 5, 216, 107, 11, 5, 216, 108, 11, 5, 228, 104, 11, - 5, 228, 103, 11, 5, 228, 110, 11, 5, 228, 105, 11, 5, 228, 107, 11, 5, - 228, 106, 11, 5, 228, 109, 11, 5, 228, 108, 11, 5, 228, 115, 11, 5, 228, - 114, 11, 5, 228, 117, 11, 5, 228, 116, 11, 5, 228, 96, 11, 5, 228, 95, - 11, 5, 228, 98, 11, 5, 228, 97, 11, 5, 228, 100, 11, 5, 228, 99, 11, 5, - 228, 102, 11, 5, 228, 101, 11, 5, 228, 111, 11, 5, 228, 113, 11, 5, 228, - 112, 11, 5, 214, 13, 11, 5, 214, 15, 11, 5, 214, 14, 11, 5, 214, 58, 11, - 5, 214, 56, 11, 5, 214, 68, 11, 5, 214, 61, 11, 5, 213, 230, 11, 5, 213, - 229, 11, 5, 213, 231, 11, 5, 213, 241, 11, 5, 213, 238, 11, 5, 213, 249, - 11, 5, 213, 243, 11, 5, 214, 49, 11, 5, 214, 55, 11, 5, 214, 51, 11, 5, - 229, 117, 11, 5, 229, 136, 11, 5, 229, 145, 11, 5, 230, 9, 11, 5, 229, - 253, 11, 5, 140, 11, 5, 230, 21, 11, 5, 228, 134, 11, 5, 228, 133, 11, 5, - 228, 136, 11, 5, 228, 135, 11, 5, 228, 180, 11, 5, 228, 171, 11, 5, 229, - 23, 11, 5, 228, 244, 11, 5, 229, 183, 11, 5, 229, 245, 11, 5, 229, 195, - 11, 5, 193, 146, 11, 5, 193, 131, 11, 5, 193, 190, 11, 5, 193, 158, 11, - 5, 192, 245, 11, 5, 192, 247, 11, 5, 192, 246, 11, 5, 193, 13, 11, 5, - 193, 48, 11, 5, 193, 24, 11, 5, 193, 99, 11, 5, 193, 125, 11, 5, 193, - 106, 11, 5, 191, 15, 11, 5, 191, 14, 11, 5, 191, 30, 11, 5, 191, 18, 11, - 5, 191, 23, 11, 5, 191, 25, 11, 5, 191, 24, 11, 5, 191, 96, 11, 5, 191, - 93, 11, 5, 191, 123, 11, 5, 191, 104, 11, 5, 190, 244, 11, 5, 190, 246, - 11, 5, 190, 245, 11, 5, 191, 2, 11, 5, 191, 1, 11, 5, 191, 7, 11, 5, 191, - 3, 11, 5, 191, 73, 11, 5, 191, 87, 11, 5, 191, 79, 11, 5, 190, 240, 11, - 5, 190, 239, 11, 5, 190, 251, 11, 5, 190, 243, 11, 5, 190, 241, 11, 5, - 190, 242, 11, 5, 190, 226, 11, 5, 190, 225, 11, 5, 190, 231, 11, 5, 190, - 229, 11, 5, 190, 227, 11, 5, 190, 228, 11, 5, 242, 255, 11, 5, 242, 248, - 11, 5, 243, 29, 11, 5, 243, 12, 11, 5, 243, 26, 11, 5, 243, 20, 11, 5, - 243, 28, 11, 5, 243, 27, 11, 5, 247, 78, 11, 5, 247, 69, 11, 5, 247, 160, - 11, 5, 247, 111, 11, 5, 238, 183, 11, 5, 238, 185, 11, 5, 238, 184, 11, - 5, 238, 249, 11, 5, 238, 237, 11, 5, 242, 99, 11, 5, 239, 13, 11, 5, 247, - 5, 11, 5, 247, 42, 11, 5, 247, 11, 11, 5, 238, 154, 11, 5, 238, 152, 11, - 5, 238, 195, 11, 5, 238, 181, 11, 5, 238, 160, 11, 5, 238, 176, 11, 5, - 238, 130, 11, 5, 238, 129, 11, 5, 238, 143, 11, 5, 238, 137, 11, 5, 238, - 131, 11, 5, 238, 133, 11, 5, 190, 209, 11, 5, 190, 208, 11, 5, 190, 215, - 11, 5, 190, 210, 11, 5, 190, 212, 11, 5, 190, 211, 11, 5, 190, 214, 11, - 5, 190, 213, 11, 5, 190, 221, 11, 5, 190, 220, 11, 5, 190, 224, 11, 5, - 190, 222, 11, 5, 190, 205, 11, 5, 190, 207, 11, 5, 190, 206, 11, 5, 190, - 216, 11, 5, 190, 219, 11, 5, 190, 217, 11, 5, 190, 198, 11, 5, 190, 202, - 11, 5, 190, 201, 11, 5, 190, 199, 11, 5, 190, 200, 11, 5, 190, 192, 11, - 5, 190, 191, 11, 5, 190, 197, 11, 5, 190, 195, 11, 5, 190, 193, 11, 5, - 190, 194, 11, 5, 212, 33, 11, 5, 212, 32, 11, 5, 212, 38, 11, 5, 212, 34, - 11, 5, 212, 35, 11, 5, 212, 37, 11, 5, 212, 36, 11, 5, 212, 43, 11, 5, - 212, 42, 11, 5, 212, 46, 11, 5, 212, 45, 11, 5, 212, 26, 11, 5, 212, 27, - 11, 5, 212, 30, 11, 5, 212, 31, 11, 5, 212, 39, 11, 5, 212, 41, 11, 5, - 212, 21, 11, 5, 212, 29, 11, 5, 212, 25, 11, 5, 212, 22, 11, 5, 212, 23, - 11, 5, 212, 16, 11, 5, 212, 15, 11, 5, 212, 20, 11, 5, 212, 19, 11, 5, - 212, 17, 11, 5, 212, 18, 11, 5, 202, 138, 11, 5, 169, 11, 5, 202, 222, - 11, 5, 202, 142, 11, 5, 202, 202, 11, 5, 202, 205, 11, 5, 202, 203, 11, - 5, 205, 122, 11, 5, 205, 106, 11, 5, 188, 11, 5, 205, 130, 11, 5, 200, - 188, 11, 5, 200, 190, 11, 5, 200, 189, 11, 5, 202, 8, 11, 5, 201, 253, - 11, 5, 202, 46, 11, 5, 202, 14, 11, 5, 203, 238, 11, 5, 205, 68, 11, 5, - 204, 13, 11, 5, 200, 163, 11, 5, 200, 159, 11, 5, 201, 4, 11, 5, 200, - 187, 11, 5, 200, 167, 11, 5, 200, 175, 11, 5, 200, 57, 11, 5, 200, 56, - 11, 5, 200, 127, 11, 5, 200, 65, 11, 5, 200, 59, 11, 5, 200, 64, 11, 5, - 201, 136, 11, 5, 201, 135, 11, 5, 201, 142, 11, 5, 201, 137, 11, 5, 201, - 139, 11, 5, 201, 141, 11, 5, 201, 140, 11, 5, 201, 151, 11, 5, 201, 149, - 11, 5, 201, 175, 11, 5, 201, 152, 11, 5, 201, 131, 11, 5, 201, 130, 11, - 5, 201, 134, 11, 5, 201, 132, 11, 5, 201, 145, 11, 5, 201, 148, 11, 5, - 201, 146, 11, 5, 201, 127, 11, 5, 201, 125, 11, 5, 201, 129, 11, 5, 201, - 128, 11, 5, 201, 120, 11, 5, 201, 119, 11, 5, 201, 124, 11, 5, 201, 123, - 11, 5, 201, 121, 11, 5, 201, 122, 11, 5, 191, 66, 11, 5, 191, 65, 11, 5, - 191, 71, 11, 5, 191, 68, 11, 5, 191, 45, 11, 5, 191, 47, 11, 5, 191, 46, - 11, 5, 191, 50, 11, 5, 191, 49, 11, 5, 191, 54, 11, 5, 191, 51, 11, 5, - 191, 59, 11, 5, 191, 58, 11, 5, 191, 62, 11, 5, 191, 60, 11, 5, 191, 41, - 11, 5, 191, 40, 11, 5, 191, 48, 11, 5, 191, 44, 11, 5, 191, 42, 11, 5, - 191, 43, 11, 5, 191, 33, 11, 5, 191, 32, 11, 5, 191, 37, 11, 5, 191, 36, - 11, 5, 191, 34, 11, 5, 191, 35, 11, 5, 243, 133, 11, 5, 243, 129, 11, 5, - 247, 1, 11, 5, 246, 243, 11, 5, 243, 44, 11, 5, 243, 43, 11, 5, 243, 46, - 11, 5, 243, 45, 11, 5, 243, 59, 11, 5, 243, 58, 11, 5, 243, 68, 11, 5, - 243, 63, 11, 5, 243, 102, 11, 5, 243, 99, 11, 5, 243, 127, 11, 5, 243, - 110, 11, 5, 243, 38, 11, 5, 243, 48, 11, 5, 243, 42, 11, 5, 243, 39, 11, - 5, 243, 41, 11, 5, 243, 31, 11, 5, 243, 30, 11, 5, 243, 35, 11, 5, 243, - 34, 11, 5, 243, 32, 11, 5, 243, 33, 11, 5, 206, 105, 11, 5, 206, 109, 11, - 5, 206, 87, 11, 5, 206, 88, 11, 5, 206, 92, 11, 5, 206, 91, 11, 5, 206, - 95, 11, 5, 206, 93, 11, 5, 206, 99, 11, 5, 206, 98, 11, 5, 206, 104, 11, - 5, 206, 100, 11, 5, 206, 83, 11, 5, 206, 81, 11, 5, 206, 89, 11, 5, 206, - 86, 11, 5, 206, 84, 11, 5, 206, 85, 11, 5, 206, 76, 11, 5, 206, 75, 11, - 5, 206, 80, 11, 5, 206, 79, 11, 5, 206, 77, 11, 5, 206, 78, 11, 5, 212, - 242, 11, 5, 212, 241, 11, 5, 212, 244, 11, 5, 212, 243, 11, 5, 212, 233, - 11, 5, 212, 235, 11, 5, 212, 234, 11, 5, 212, 237, 11, 5, 212, 236, 11, - 5, 212, 240, 11, 5, 212, 239, 11, 5, 212, 227, 11, 5, 212, 226, 11, 5, - 212, 232, 11, 5, 212, 230, 11, 5, 212, 228, 11, 5, 212, 229, 11, 5, 212, - 221, 11, 5, 212, 220, 11, 5, 212, 225, 11, 5, 212, 224, 11, 5, 212, 222, - 11, 5, 212, 223, 11, 5, 203, 123, 11, 5, 203, 118, 11, 5, 203, 165, 11, - 5, 203, 136, 11, 5, 202, 249, 11, 5, 202, 251, 11, 5, 202, 250, 11, 5, - 203, 24, 11, 5, 203, 19, 11, 5, 203, 56, 11, 5, 203, 44, 11, 5, 203, 91, - 11, 5, 203, 84, 11, 5, 203, 113, 11, 5, 203, 100, 11, 5, 202, 245, 11, 5, - 202, 242, 11, 5, 203, 5, 11, 5, 202, 248, 11, 5, 202, 246, 11, 5, 202, - 247, 11, 5, 202, 225, 11, 5, 202, 224, 11, 5, 202, 231, 11, 5, 202, 228, - 11, 5, 202, 226, 11, 5, 202, 227, 11, 5, 207, 130, 11, 5, 207, 123, 11, - 5, 165, 11, 5, 207, 136, 11, 5, 206, 38, 11, 5, 206, 40, 11, 5, 206, 39, - 11, 5, 206, 123, 11, 5, 206, 111, 11, 5, 206, 162, 11, 5, 206, 127, 11, - 5, 207, 11, 11, 5, 207, 113, 11, 5, 207, 53, 11, 5, 206, 30, 11, 5, 206, - 27, 11, 5, 206, 68, 11, 5, 206, 37, 11, 5, 206, 33, 11, 5, 206, 34, 11, - 5, 206, 12, 11, 5, 206, 11, 11, 5, 206, 17, 11, 5, 206, 15, 11, 5, 206, - 13, 11, 5, 206, 14, 11, 5, 222, 232, 11, 5, 222, 231, 11, 5, 222, 244, - 11, 5, 222, 233, 11, 5, 222, 240, 11, 5, 222, 239, 11, 5, 222, 242, 11, - 5, 222, 241, 11, 5, 222, 170, 11, 5, 222, 169, 11, 5, 222, 172, 11, 5, - 222, 171, 11, 5, 222, 188, 11, 5, 222, 186, 11, 5, 222, 201, 11, 5, 222, - 190, 11, 5, 222, 163, 11, 5, 222, 161, 11, 5, 222, 182, 11, 5, 222, 168, - 11, 5, 222, 165, 11, 5, 222, 166, 11, 5, 222, 155, 11, 5, 222, 154, 11, - 5, 222, 159, 11, 5, 222, 158, 11, 5, 222, 156, 11, 5, 222, 157, 11, 5, - 208, 49, 11, 5, 208, 47, 11, 5, 208, 57, 11, 5, 208, 50, 11, 5, 208, 54, - 11, 5, 208, 53, 11, 5, 208, 56, 11, 5, 208, 55, 11, 5, 207, 253, 11, 5, - 207, 250, 11, 5, 207, 255, 11, 5, 207, 254, 11, 5, 208, 36, 11, 5, 208, - 35, 11, 5, 208, 45, 11, 5, 208, 39, 11, 5, 207, 245, 11, 5, 207, 241, 11, - 5, 208, 33, 11, 5, 207, 249, 11, 5, 207, 247, 11, 5, 207, 248, 11, 5, - 207, 225, 11, 5, 207, 223, 11, 5, 207, 235, 11, 5, 207, 228, 11, 5, 207, - 226, 11, 5, 207, 227, 11, 5, 222, 221, 11, 5, 222, 220, 11, 5, 222, 227, - 11, 5, 222, 222, 11, 5, 222, 224, 11, 5, 222, 223, 11, 5, 222, 226, 11, - 5, 222, 225, 11, 5, 222, 212, 11, 5, 222, 214, 11, 5, 222, 213, 11, 5, - 222, 217, 11, 5, 222, 216, 11, 5, 222, 219, 11, 5, 222, 218, 11, 5, 222, - 208, 11, 5, 222, 207, 11, 5, 222, 215, 11, 5, 222, 211, 11, 5, 222, 209, - 11, 5, 222, 210, 11, 5, 222, 204, 11, 5, 222, 203, 11, 5, 222, 206, 11, - 5, 222, 205, 11, 5, 213, 134, 11, 5, 213, 133, 11, 5, 213, 141, 11, 5, - 213, 135, 11, 5, 213, 137, 11, 5, 213, 136, 11, 5, 213, 140, 11, 5, 213, - 138, 11, 5, 213, 123, 11, 5, 213, 124, 11, 5, 213, 129, 11, 5, 213, 128, - 11, 5, 213, 132, 11, 5, 213, 130, 11, 5, 213, 118, 11, 5, 213, 127, 11, - 5, 213, 122, 11, 5, 213, 119, 11, 5, 213, 120, 11, 5, 213, 113, 11, 5, - 213, 112, 11, 5, 213, 117, 11, 5, 213, 116, 11, 5, 213, 114, 11, 5, 213, - 115, 11, 5, 212, 68, 11, 5, 212, 67, 11, 5, 212, 81, 11, 5, 212, 72, 11, - 5, 212, 77, 11, 5, 212, 76, 11, 5, 212, 79, 11, 5, 212, 78, 11, 5, 212, - 53, 11, 5, 212, 55, 11, 5, 212, 54, 11, 5, 212, 60, 11, 5, 212, 59, 11, - 5, 212, 65, 11, 5, 212, 61, 11, 5, 212, 51, 11, 5, 212, 49, 11, 5, 212, - 58, 11, 5, 212, 52, 11, 5, 192, 198, 11, 5, 192, 197, 11, 5, 192, 207, - 11, 5, 192, 200, 11, 5, 192, 202, 11, 5, 192, 201, 11, 5, 192, 204, 11, - 5, 192, 203, 11, 5, 192, 186, 11, 5, 192, 187, 11, 5, 192, 191, 11, 5, - 192, 190, 11, 5, 192, 196, 11, 5, 192, 194, 11, 5, 192, 163, 11, 5, 192, - 161, 11, 5, 192, 176, 11, 5, 192, 166, 11, 5, 192, 164, 11, 5, 192, 165, - 11, 5, 192, 18, 11, 5, 192, 16, 11, 5, 192, 33, 11, 5, 192, 19, 11, 5, - 192, 27, 11, 5, 192, 26, 11, 5, 192, 30, 11, 5, 192, 28, 11, 5, 191, 198, - 11, 5, 191, 197, 11, 5, 191, 201, 11, 5, 191, 199, 11, 5, 191, 240, 11, - 5, 191, 235, 11, 5, 192, 12, 11, 5, 191, 245, 11, 5, 191, 189, 11, 5, - 191, 185, 11, 5, 191, 225, 11, 5, 191, 196, 11, 5, 191, 192, 11, 5, 191, - 193, 11, 5, 191, 169, 11, 5, 191, 168, 11, 5, 191, 176, 11, 5, 191, 172, - 11, 5, 191, 170, 11, 5, 191, 171, 11, 48, 208, 36, 11, 48, 219, 146, 11, - 48, 221, 120, 11, 48, 212, 72, 11, 48, 238, 137, 11, 48, 201, 142, 11, - 48, 231, 110, 11, 48, 231, 142, 11, 48, 216, 100, 11, 48, 228, 104, 11, - 48, 218, 175, 11, 48, 249, 25, 11, 48, 215, 202, 11, 48, 192, 12, 11, 48, - 208, 131, 11, 48, 228, 98, 11, 48, 199, 171, 11, 48, 231, 240, 11, 48, - 190, 243, 11, 48, 238, 130, 11, 48, 237, 151, 11, 48, 247, 230, 11, 48, - 231, 106, 11, 48, 212, 61, 11, 48, 197, 94, 11, 48, 211, 78, 11, 48, 222, - 208, 11, 48, 191, 2, 11, 48, 208, 108, 11, 48, 229, 65, 11, 48, 192, 18, - 11, 48, 193, 244, 11, 48, 202, 231, 11, 48, 195, 141, 11, 48, 191, 123, - 11, 48, 222, 201, 11, 48, 212, 25, 11, 48, 222, 206, 11, 48, 230, 232, - 11, 48, 222, 226, 11, 48, 193, 48, 11, 48, 235, 89, 11, 48, 202, 247, 11, - 48, 219, 140, 11, 48, 238, 143, 11, 48, 238, 184, 11, 48, 243, 12, 11, - 48, 228, 101, 11, 48, 203, 123, 11, 48, 190, 242, 11, 48, 203, 44, 11, - 48, 243, 127, 11, 48, 190, 212, 11, 48, 214, 189, 11, 48, 222, 22, 219, - 88, 1, 249, 153, 219, 88, 1, 168, 219, 88, 1, 209, 228, 219, 88, 1, 238, - 32, 219, 88, 1, 190, 190, 219, 88, 1, 199, 49, 219, 88, 1, 231, 240, 219, - 88, 1, 155, 219, 88, 1, 221, 215, 219, 88, 1, 223, 32, 219, 88, 1, 247, - 160, 219, 88, 1, 247, 1, 219, 88, 1, 235, 35, 219, 88, 1, 197, 168, 219, - 88, 1, 197, 157, 219, 88, 1, 174, 219, 88, 1, 180, 219, 88, 1, 173, 219, - 88, 1, 188, 219, 88, 1, 191, 71, 219, 88, 1, 191, 123, 219, 88, 1, 214, - 68, 219, 88, 1, 140, 219, 88, 1, 192, 220, 219, 88, 1, 229, 177, 219, 88, - 1, 233, 109, 219, 88, 1, 193, 190, 219, 88, 1, 203, 165, 219, 88, 1, 170, - 219, 88, 1, 231, 91, 219, 88, 1, 65, 219, 88, 1, 252, 25, 219, 88, 1, 71, - 219, 88, 1, 233, 242, 219, 88, 1, 68, 219, 88, 1, 74, 219, 88, 1, 66, - 219, 88, 1, 196, 152, 219, 88, 1, 196, 141, 219, 88, 1, 211, 151, 219, - 88, 1, 163, 215, 69, 198, 193, 219, 88, 1, 163, 215, 7, 209, 73, 219, 88, - 1, 163, 215, 69, 238, 142, 219, 88, 1, 163, 215, 69, 248, 111, 219, 88, - 1, 163, 215, 69, 180, 219, 88, 1, 163, 215, 69, 222, 253, 219, 88, 208, - 152, 242, 74, 219, 88, 208, 152, 232, 80, 201, 63, 59, 5, 234, 188, 59, - 5, 234, 184, 59, 5, 229, 215, 59, 5, 193, 114, 59, 5, 193, 113, 59, 5, - 210, 49, 59, 5, 248, 195, 59, 5, 249, 1, 59, 5, 217, 3, 59, 5, 221, 16, - 59, 5, 216, 132, 59, 5, 231, 178, 59, 5, 233, 52, 59, 5, 195, 148, 59, 5, - 199, 121, 59, 5, 199, 31, 59, 5, 237, 58, 59, 5, 237, 55, 59, 5, 219, - 228, 59, 5, 207, 84, 59, 5, 237, 131, 59, 5, 214, 153, 59, 5, 205, 50, - 59, 5, 203, 111, 59, 5, 191, 84, 59, 5, 191, 61, 59, 5, 247, 34, 59, 5, - 223, 8, 59, 5, 213, 148, 59, 5, 192, 77, 59, 5, 222, 13, 59, 5, 214, 41, - 59, 5, 231, 157, 59, 5, 216, 211, 59, 5, 214, 110, 59, 5, 212, 89, 59, 5, - 68, 59, 5, 223, 162, 59, 5, 229, 158, 59, 5, 229, 128, 59, 5, 193, 86, - 59, 5, 193, 68, 59, 5, 209, 185, 59, 5, 248, 193, 59, 5, 248, 188, 59, 5, - 216, 252, 59, 5, 221, 13, 59, 5, 216, 129, 59, 5, 231, 174, 59, 5, 233, - 23, 59, 5, 195, 69, 59, 5, 198, 193, 59, 5, 199, 11, 59, 5, 237, 50, 59, - 5, 237, 54, 59, 5, 219, 146, 59, 5, 207, 1, 59, 5, 237, 44, 59, 5, 214, - 147, 59, 5, 202, 222, 59, 5, 203, 81, 59, 5, 191, 30, 59, 5, 191, 57, 59, - 5, 243, 29, 59, 5, 222, 244, 59, 5, 213, 141, 59, 5, 192, 33, 59, 5, 221, - 166, 59, 5, 214, 33, 59, 5, 231, 53, 59, 5, 216, 100, 59, 5, 213, 219, - 59, 5, 212, 81, 59, 5, 65, 59, 5, 251, 132, 59, 5, 214, 63, 59, 5, 140, - 59, 5, 230, 56, 59, 5, 193, 190, 59, 5, 193, 164, 59, 5, 168, 59, 5, 248, - 203, 59, 5, 249, 153, 59, 5, 217, 11, 59, 5, 221, 21, 59, 5, 221, 19, 59, - 5, 216, 136, 59, 5, 231, 182, 59, 5, 233, 109, 59, 5, 195, 188, 59, 5, - 190, 190, 59, 5, 199, 49, 59, 5, 237, 68, 59, 5, 237, 57, 59, 5, 173, 59, - 5, 165, 59, 5, 238, 32, 59, 5, 214, 162, 59, 5, 188, 59, 5, 203, 165, 59, - 5, 191, 123, 59, 5, 191, 71, 59, 5, 247, 160, 59, 5, 223, 32, 59, 5, 213, - 157, 59, 5, 170, 59, 5, 155, 59, 5, 222, 87, 59, 5, 214, 47, 59, 5, 231, - 240, 59, 5, 174, 59, 5, 180, 59, 5, 212, 101, 59, 5, 211, 87, 59, 5, 211, - 82, 59, 5, 228, 252, 59, 5, 193, 29, 59, 5, 193, 25, 59, 5, 209, 37, 59, - 5, 248, 191, 59, 5, 248, 97, 59, 5, 216, 247, 59, 5, 221, 11, 59, 5, 216, - 125, 59, 5, 231, 170, 59, 5, 232, 162, 59, 5, 195, 8, 59, 5, 198, 59, 59, - 5, 198, 235, 59, 5, 237, 47, 59, 5, 237, 52, 59, 5, 219, 8, 59, 5, 206, - 134, 59, 5, 236, 146, 59, 5, 214, 134, 59, 5, 202, 16, 59, 5, 203, 48, - 59, 5, 191, 4, 59, 5, 191, 52, 59, 5, 239, 18, 59, 5, 222, 191, 59, 5, - 213, 131, 59, 5, 191, 246, 59, 5, 221, 41, 59, 5, 214, 31, 59, 5, 230, - 245, 59, 5, 215, 211, 59, 5, 213, 26, 59, 5, 212, 62, 59, 5, 66, 59, 5, - 196, 113, 59, 5, 228, 159, 59, 5, 228, 142, 59, 5, 193, 0, 59, 5, 192, - 249, 59, 5, 208, 165, 59, 5, 248, 190, 59, 5, 248, 10, 59, 5, 216, 246, - 59, 5, 221, 9, 59, 5, 216, 124, 59, 5, 231, 169, 59, 5, 232, 86, 59, 5, - 193, 249, 59, 5, 197, 94, 59, 5, 198, 213, 59, 5, 237, 45, 59, 5, 237, - 51, 59, 5, 218, 225, 59, 5, 206, 68, 59, 5, 235, 89, 59, 5, 214, 129, 59, - 5, 201, 4, 59, 5, 203, 5, 59, 5, 190, 251, 59, 5, 191, 48, 59, 5, 238, - 195, 59, 5, 222, 182, 59, 5, 213, 127, 59, 5, 191, 225, 59, 5, 220, 232, - 59, 5, 214, 30, 59, 5, 230, 179, 59, 5, 215, 155, 59, 5, 212, 178, 59, 5, - 212, 58, 59, 5, 74, 59, 5, 211, 104, 59, 5, 213, 245, 59, 5, 229, 23, 59, - 5, 228, 255, 59, 5, 193, 48, 59, 5, 193, 30, 59, 5, 209, 73, 59, 5, 248, - 192, 59, 5, 248, 111, 59, 5, 216, 248, 59, 5, 221, 12, 59, 5, 216, 127, - 59, 5, 231, 172, 59, 5, 231, 171, 59, 5, 232, 175, 59, 5, 195, 24, 59, 5, - 159, 59, 5, 198, 241, 59, 5, 237, 48, 59, 5, 237, 53, 59, 5, 219, 43, 59, - 5, 206, 162, 59, 5, 236, 174, 59, 5, 214, 138, 59, 5, 202, 46, 59, 5, - 203, 56, 59, 5, 191, 7, 59, 5, 191, 54, 59, 5, 242, 99, 59, 5, 222, 201, - 59, 5, 213, 132, 59, 5, 192, 12, 59, 5, 221, 67, 59, 5, 214, 32, 59, 5, - 231, 3, 59, 5, 216, 12, 59, 5, 213, 43, 59, 5, 212, 65, 59, 5, 71, 59, 5, - 234, 103, 59, 5, 214, 52, 59, 5, 229, 245, 59, 5, 229, 198, 59, 5, 193, - 125, 59, 5, 193, 108, 59, 5, 210, 63, 59, 5, 248, 196, 59, 5, 249, 17, - 59, 5, 217, 4, 59, 5, 221, 17, 59, 5, 221, 15, 59, 5, 216, 133, 59, 5, - 231, 179, 59, 5, 231, 177, 59, 5, 233, 59, 59, 5, 195, 153, 59, 5, 199, - 145, 59, 5, 199, 33, 59, 5, 237, 59, 59, 5, 237, 56, 59, 5, 219, 238, 59, - 5, 207, 113, 59, 5, 237, 146, 59, 5, 214, 154, 59, 5, 205, 68, 59, 5, - 203, 113, 59, 5, 191, 87, 59, 5, 191, 62, 59, 5, 247, 42, 59, 5, 223, 10, - 59, 5, 213, 150, 59, 5, 192, 80, 59, 5, 222, 22, 59, 5, 214, 42, 59, 5, - 214, 38, 59, 5, 231, 165, 59, 5, 231, 151, 59, 5, 216, 232, 59, 5, 214, - 121, 59, 5, 212, 90, 59, 5, 214, 70, 59, 5, 219, 190, 59, 242, 74, 59, - 232, 80, 201, 63, 59, 208, 13, 77, 59, 5, 214, 137, 233, 109, 59, 5, 214, - 137, 155, 59, 5, 214, 137, 202, 16, 59, 16, 233, 48, 59, 16, 222, 11, 59, - 16, 198, 140, 59, 16, 213, 186, 59, 16, 249, 95, 59, 16, 233, 108, 59, - 16, 199, 245, 59, 16, 237, 236, 59, 16, 236, 145, 59, 16, 220, 208, 59, - 16, 198, 63, 59, 16, 236, 173, 59, 16, 222, 192, 59, 17, 191, 77, 59, 17, - 107, 59, 17, 109, 59, 17, 138, 59, 17, 134, 59, 17, 149, 59, 17, 169, 59, - 17, 175, 59, 17, 171, 59, 17, 178, 59, 5, 214, 137, 174, 59, 5, 214, 137, - 236, 174, 38, 6, 1, 191, 81, 38, 2, 1, 191, 81, 38, 6, 1, 235, 30, 38, 2, - 1, 235, 30, 38, 6, 1, 207, 18, 235, 32, 38, 2, 1, 207, 18, 235, 32, 38, - 6, 1, 223, 83, 38, 2, 1, 223, 83, 38, 6, 1, 236, 191, 38, 2, 1, 236, 191, - 38, 6, 1, 215, 219, 196, 128, 38, 2, 1, 215, 219, 196, 128, 38, 6, 1, - 248, 24, 211, 110, 38, 2, 1, 248, 24, 211, 110, 38, 6, 1, 214, 82, 192, - 62, 38, 2, 1, 214, 82, 192, 62, 38, 6, 1, 192, 59, 4, 249, 147, 192, 62, - 38, 2, 1, 192, 59, 4, 249, 147, 192, 62, 38, 6, 1, 223, 81, 192, 95, 38, - 2, 1, 223, 81, 192, 95, 38, 6, 1, 207, 18, 191, 225, 38, 2, 1, 207, 18, - 191, 225, 38, 6, 1, 223, 81, 65, 38, 2, 1, 223, 81, 65, 38, 6, 1, 242, - 219, 219, 83, 191, 190, 38, 2, 1, 242, 219, 219, 83, 191, 190, 38, 6, 1, - 248, 131, 191, 190, 38, 2, 1, 248, 131, 191, 190, 38, 6, 1, 223, 81, 242, - 219, 219, 83, 191, 190, 38, 2, 1, 223, 81, 242, 219, 219, 83, 191, 190, - 38, 6, 1, 192, 14, 38, 2, 1, 192, 14, 38, 6, 1, 207, 18, 197, 161, 38, 2, - 1, 207, 18, 197, 161, 38, 6, 1, 202, 32, 237, 146, 38, 2, 1, 202, 32, - 237, 146, 38, 6, 1, 202, 32, 234, 140, 38, 2, 1, 202, 32, 234, 140, 38, - 6, 1, 202, 32, 234, 114, 38, 2, 1, 202, 32, 234, 114, 38, 6, 1, 215, 223, - 74, 38, 2, 1, 215, 223, 74, 38, 6, 1, 248, 164, 74, 38, 2, 1, 248, 164, - 74, 38, 6, 1, 55, 215, 223, 74, 38, 2, 1, 55, 215, 223, 74, 38, 1, 215, - 130, 74, 33, 38, 193, 226, 33, 38, 199, 96, 216, 48, 56, 33, 38, 228, - 141, 216, 48, 56, 33, 38, 198, 230, 216, 48, 56, 202, 95, 250, 193, 33, - 38, 1, 196, 125, 223, 226, 33, 38, 1, 68, 33, 38, 1, 192, 33, 33, 38, 1, - 66, 33, 38, 1, 230, 17, 56, 33, 38, 1, 192, 58, 33, 38, 1, 202, 32, 56, - 33, 38, 1, 211, 110, 33, 38, 222, 35, 33, 38, 210, 70, 38, 222, 35, 38, - 210, 70, 38, 6, 1, 235, 45, 38, 2, 1, 235, 45, 38, 6, 1, 235, 21, 38, 2, - 1, 235, 21, 38, 6, 1, 191, 38, 38, 2, 1, 191, 38, 38, 6, 1, 247, 58, 38, - 2, 1, 247, 58, 38, 6, 1, 235, 17, 38, 2, 1, 235, 17, 38, 6, 1, 199, 146, - 4, 82, 102, 38, 2, 1, 199, 146, 4, 82, 102, 38, 6, 1, 197, 41, 38, 2, 1, - 197, 41, 38, 6, 1, 197, 136, 38, 2, 1, 197, 136, 38, 6, 1, 197, 141, 38, - 2, 1, 197, 141, 38, 6, 1, 199, 151, 38, 2, 1, 199, 151, 38, 6, 1, 228, - 122, 38, 2, 1, 228, 122, 38, 6, 1, 202, 237, 38, 2, 1, 202, 237, 38, 6, - 1, 55, 74, 38, 2, 1, 55, 74, 38, 6, 1, 238, 214, 74, 38, 2, 1, 238, 214, - 74, 52, 1, 38, 230, 17, 56, 52, 1, 38, 202, 32, 56, 33, 38, 1, 234, 181, - 33, 38, 1, 223, 81, 71, 26, 1, 65, 26, 1, 155, 26, 1, 66, 26, 1, 220, - 232, 26, 1, 234, 188, 26, 1, 207, 84, 26, 1, 199, 226, 26, 1, 74, 26, 1, - 212, 81, 26, 1, 68, 26, 1, 173, 26, 1, 168, 26, 1, 206, 195, 26, 1, 206, - 242, 26, 1, 219, 227, 26, 1, 216, 210, 26, 1, 199, 245, 26, 1, 214, 160, - 26, 1, 213, 155, 26, 1, 218, 168, 26, 1, 200, 160, 26, 1, 215, 155, 26, - 1, 203, 76, 26, 1, 202, 222, 26, 1, 203, 86, 26, 1, 203, 248, 26, 1, 220, - 149, 26, 1, 221, 241, 26, 1, 212, 146, 26, 1, 212, 178, 26, 1, 213, 126, - 26, 1, 191, 243, 26, 1, 203, 5, 26, 1, 191, 194, 26, 1, 170, 26, 1, 212, - 215, 26, 1, 221, 227, 26, 1, 209, 232, 26, 1, 213, 148, 26, 1, 212, 195, - 26, 1, 208, 156, 26, 1, 192, 253, 26, 1, 210, 49, 26, 1, 233, 52, 26, 1, - 206, 68, 26, 1, 218, 225, 26, 1, 216, 100, 26, 1, 213, 219, 26, 1, 207, - 20, 26, 1, 207, 163, 26, 1, 221, 251, 26, 1, 213, 252, 26, 1, 214, 47, - 26, 1, 214, 68, 26, 1, 203, 56, 26, 1, 208, 161, 26, 1, 232, 86, 26, 1, - 232, 167, 26, 1, 193, 190, 26, 1, 180, 26, 1, 219, 146, 26, 1, 209, 185, - 26, 1, 219, 0, 26, 1, 221, 67, 26, 1, 217, 1, 26, 1, 207, 55, 26, 1, 216, - 186, 26, 1, 174, 26, 1, 198, 193, 26, 1, 221, 166, 26, 1, 216, 12, 26, 1, - 217, 9, 26, 1, 199, 73, 26, 1, 221, 21, 26, 1, 199, 95, 26, 1, 212, 181, - 26, 1, 205, 150, 26, 1, 233, 105, 26, 1, 221, 24, 26, 1, 221, 57, 26, 33, - 87, 221, 34, 26, 33, 87, 197, 79, 26, 213, 154, 26, 232, 80, 201, 63, 26, - 242, 83, 26, 242, 74, 26, 204, 25, 26, 208, 13, 77, 52, 1, 243, 80, 163, - 192, 22, 209, 132, 52, 1, 243, 80, 163, 192, 107, 209, 132, 52, 1, 243, - 80, 163, 192, 22, 203, 137, 52, 1, 243, 80, 163, 192, 107, 203, 137, 52, - 1, 243, 80, 163, 192, 22, 208, 33, 52, 1, 243, 80, 163, 192, 107, 208, - 33, 52, 1, 243, 80, 163, 192, 22, 206, 68, 52, 1, 243, 80, 163, 192, 107, - 206, 68, 52, 1, 233, 200, 235, 138, 163, 164, 52, 1, 137, 235, 138, 163, - 164, 52, 1, 216, 87, 235, 138, 163, 164, 52, 1, 130, 235, 138, 163, 164, - 52, 1, 233, 199, 235, 138, 163, 164, 52, 1, 233, 200, 235, 138, 219, 216, - 163, 164, 52, 1, 137, 235, 138, 219, 216, 163, 164, 52, 1, 216, 87, 235, - 138, 219, 216, 163, 164, 52, 1, 130, 235, 138, 219, 216, 163, 164, 52, 1, - 233, 199, 235, 138, 219, 216, 163, 164, 52, 1, 233, 200, 219, 216, 163, - 164, 52, 1, 137, 219, 216, 163, 164, 52, 1, 216, 87, 219, 216, 163, 164, - 52, 1, 130, 219, 216, 163, 164, 52, 1, 233, 199, 219, 216, 163, 164, 52, - 1, 75, 81, 164, 52, 1, 75, 202, 97, 52, 1, 75, 228, 241, 164, 52, 1, 110, - 50, 239, 2, 251, 115, 52, 1, 207, 147, 133, 57, 52, 1, 207, 147, 144, 57, - 52, 1, 207, 147, 233, 216, 77, 52, 1, 207, 147, 223, 93, 233, 216, 77, - 52, 1, 130, 223, 93, 233, 216, 77, 52, 1, 201, 38, 23, 137, 198, 79, 52, - 1, 201, 38, 23, 130, 198, 79, 8, 6, 1, 234, 175, 251, 192, 8, 2, 1, 234, - 175, 251, 192, 8, 6, 1, 234, 175, 251, 230, 8, 2, 1, 234, 175, 251, 230, - 8, 6, 1, 229, 196, 8, 2, 1, 229, 196, 8, 6, 1, 196, 241, 8, 2, 1, 196, - 241, 8, 6, 1, 197, 248, 8, 2, 1, 197, 248, 8, 6, 1, 238, 192, 8, 2, 1, - 238, 192, 8, 6, 1, 238, 193, 4, 242, 74, 8, 2, 1, 238, 193, 4, 242, 74, - 8, 1, 2, 6, 233, 175, 8, 1, 2, 6, 206, 8, 8, 6, 1, 252, 206, 8, 2, 1, - 252, 206, 8, 6, 1, 251, 68, 8, 2, 1, 251, 68, 8, 6, 1, 250, 163, 8, 2, 1, - 250, 163, 8, 6, 1, 250, 146, 8, 2, 1, 250, 146, 8, 6, 1, 250, 147, 4, - 228, 241, 164, 8, 2, 1, 250, 147, 4, 228, 241, 164, 8, 6, 1, 250, 131, 8, - 2, 1, 250, 131, 8, 6, 1, 207, 18, 247, 194, 4, 236, 140, 8, 2, 1, 207, - 18, 247, 194, 4, 236, 140, 8, 6, 1, 222, 153, 4, 106, 8, 2, 1, 222, 153, - 4, 106, 8, 6, 1, 222, 153, 4, 237, 39, 106, 8, 2, 1, 222, 153, 4, 237, - 39, 106, 8, 6, 1, 222, 153, 4, 201, 28, 23, 237, 39, 106, 8, 2, 1, 222, - 153, 4, 201, 28, 23, 237, 39, 106, 8, 6, 1, 248, 22, 172, 8, 2, 1, 248, - 22, 172, 8, 6, 1, 220, 143, 4, 137, 106, 8, 2, 1, 220, 143, 4, 137, 106, - 8, 6, 1, 187, 4, 179, 201, 28, 210, 255, 8, 2, 1, 187, 4, 179, 201, 28, - 210, 255, 8, 6, 1, 187, 4, 219, 4, 8, 2, 1, 187, 4, 219, 4, 8, 6, 1, 211, - 87, 8, 2, 1, 211, 87, 8, 6, 1, 210, 237, 4, 201, 28, 198, 216, 237, 87, - 8, 2, 1, 210, 237, 4, 201, 28, 198, 216, 237, 87, 8, 6, 1, 210, 237, 4, - 232, 188, 8, 2, 1, 210, 237, 4, 232, 188, 8, 6, 1, 210, 237, 4, 201, 182, - 199, 215, 8, 2, 1, 210, 237, 4, 201, 182, 199, 215, 8, 6, 1, 208, 105, 4, - 201, 28, 198, 216, 237, 87, 8, 2, 1, 208, 105, 4, 201, 28, 198, 216, 237, - 87, 8, 6, 1, 208, 105, 4, 237, 39, 106, 8, 2, 1, 208, 105, 4, 237, 39, - 106, 8, 6, 1, 207, 222, 206, 116, 8, 2, 1, 207, 222, 206, 116, 8, 6, 1, - 206, 49, 206, 116, 8, 2, 1, 206, 49, 206, 116, 8, 6, 1, 196, 13, 4, 237, - 39, 106, 8, 2, 1, 196, 13, 4, 237, 39, 106, 8, 6, 1, 193, 235, 8, 2, 1, - 193, 235, 8, 6, 1, 195, 33, 191, 166, 8, 2, 1, 195, 33, 191, 166, 8, 6, - 1, 198, 234, 4, 106, 8, 2, 1, 198, 234, 4, 106, 8, 6, 1, 198, 234, 4, - 201, 28, 198, 216, 237, 87, 8, 2, 1, 198, 234, 4, 201, 28, 198, 216, 237, - 87, 8, 6, 1, 195, 142, 8, 2, 1, 195, 142, 8, 6, 1, 233, 255, 8, 2, 1, - 233, 255, 8, 6, 1, 223, 68, 8, 2, 1, 223, 68, 8, 6, 1, 239, 57, 8, 2, 1, - 239, 57, 52, 1, 196, 45, 8, 2, 1, 235, 77, 8, 2, 1, 218, 208, 8, 2, 1, - 215, 123, 8, 2, 1, 212, 137, 8, 2, 1, 206, 48, 8, 1, 2, 6, 206, 48, 8, 2, - 1, 197, 76, 8, 2, 1, 196, 120, 8, 6, 1, 223, 115, 238, 127, 8, 2, 1, 223, - 115, 238, 127, 8, 6, 1, 223, 115, 233, 175, 8, 2, 1, 223, 115, 233, 175, - 8, 6, 1, 223, 115, 232, 51, 8, 6, 1, 153, 223, 115, 232, 51, 8, 2, 1, - 153, 223, 115, 232, 51, 8, 6, 1, 153, 172, 8, 2, 1, 153, 172, 8, 6, 1, - 223, 115, 146, 8, 2, 1, 223, 115, 146, 8, 6, 1, 223, 115, 206, 8, 8, 2, - 1, 223, 115, 206, 8, 8, 6, 1, 223, 115, 200, 43, 8, 2, 1, 223, 115, 200, - 43, 52, 1, 130, 243, 2, 252, 60, 52, 1, 242, 83, 52, 1, 203, 40, 234, 43, - 56, 8, 6, 1, 205, 156, 8, 2, 1, 205, 156, 8, 6, 1, 153, 230, 116, 8, 2, - 1, 220, 143, 4, 207, 24, 228, 251, 23, 248, 231, 8, 1, 202, 163, 236, - 140, 8, 6, 1, 215, 62, 4, 237, 87, 8, 2, 1, 215, 62, 4, 237, 87, 8, 6, 1, - 247, 194, 4, 164, 8, 2, 1, 247, 194, 4, 164, 8, 2, 1, 247, 194, 4, 210, - 192, 102, 8, 2, 1, 230, 117, 4, 210, 192, 102, 8, 6, 1, 78, 4, 232, 188, - 8, 2, 1, 78, 4, 232, 188, 8, 6, 1, 233, 176, 4, 106, 8, 2, 1, 233, 176, - 4, 106, 8, 6, 1, 195, 15, 252, 25, 8, 2, 1, 195, 15, 252, 25, 8, 6, 1, - 195, 15, 211, 151, 8, 2, 1, 195, 15, 211, 151, 8, 6, 1, 195, 15, 196, - 152, 8, 2, 1, 195, 15, 196, 152, 8, 6, 1, 232, 52, 4, 211, 172, 106, 8, - 2, 1, 232, 52, 4, 211, 172, 106, 8, 6, 1, 222, 153, 4, 211, 172, 106, 8, - 2, 1, 222, 153, 4, 211, 172, 106, 8, 6, 1, 215, 62, 4, 211, 172, 106, 8, - 2, 1, 215, 62, 4, 211, 172, 106, 8, 6, 1, 207, 222, 4, 211, 172, 106, 8, - 2, 1, 207, 222, 4, 211, 172, 106, 8, 6, 1, 206, 9, 4, 211, 172, 106, 8, - 2, 1, 206, 9, 4, 211, 172, 106, 8, 6, 1, 230, 117, 4, 102, 8, 6, 1, 207, - 18, 211, 77, 71, 8, 6, 1, 27, 232, 51, 8, 6, 1, 220, 143, 4, 248, 231, 8, - 6, 1, 2, 6, 68, 8, 1, 2, 6, 208, 104, 8, 6, 1, 153, 222, 152, 8, 6, 1, - 153, 200, 43, 8, 6, 1, 223, 36, 4, 238, 212, 8, 6, 1, 243, 95, 8, 6, 1, - 248, 212, 8, 2, 1, 248, 212, 8, 6, 1, 211, 110, 8, 2, 1, 211, 110, 8, 6, - 1, 126, 4, 106, 8, 2, 1, 126, 4, 106, 8, 6, 1, 231, 11, 65, 8, 2, 1, 231, - 11, 65, 8, 6, 1, 231, 11, 68, 8, 2, 1, 231, 11, 68, 8, 6, 1, 231, 11, 66, - 8, 2, 1, 231, 11, 66, 8, 6, 1, 39, 209, 49, 74, 8, 2, 1, 39, 209, 49, 74, - 8, 6, 1, 251, 112, 193, 224, 8, 2, 1, 251, 112, 193, 224, 8, 6, 1, 247, - 194, 4, 210, 192, 102, 8, 6, 1, 206, 9, 4, 102, 8, 6, 1, 191, 167, 4, - 210, 192, 102, 8, 6, 1, 238, 128, 4, 203, 40, 201, 28, 210, 255, 8, 2, 1, - 238, 128, 4, 203, 40, 201, 28, 210, 255, 8, 6, 1, 206, 9, 4, 203, 40, - 201, 28, 210, 255, 8, 2, 1, 206, 9, 4, 203, 40, 201, 28, 210, 255, 8, 6, - 1, 242, 219, 223, 115, 232, 51, 8, 2, 1, 242, 219, 223, 115, 232, 51, 8, - 2, 1, 55, 198, 233, 8, 2, 1, 55, 192, 238, 8, 6, 1, 82, 205, 79, 206, 8, - 8, 2, 1, 82, 205, 79, 206, 8, 8, 6, 1, 202, 195, 206, 8, 8, 2, 1, 202, - 195, 206, 8, 52, 1, 6, 247, 193, 52, 1, 6, 233, 175, 52, 1, 6, 208, 104, - 8, 6, 1, 207, 18, 132, 230, 116, 8, 2, 1, 207, 18, 132, 230, 116, 8, 234, - 50, 1, 202, 206, 68, 52, 1, 6, 230, 117, 4, 106, 52, 1, 2, 34, 211, 151, - 8, 1, 2, 6, 153, 218, 168, 8, 234, 50, 1, 207, 18, 233, 175, 8, 234, 50, - 1, 207, 18, 210, 236, 8, 234, 50, 1, 223, 93, 218, 168, 8, 234, 50, 1, - 228, 74, 219, 10, 8, 234, 50, 1, 251, 14, 218, 168, 200, 124, 214, 238, - 1, 65, 200, 124, 214, 238, 1, 68, 200, 124, 214, 238, 3, 235, 54, 200, - 124, 214, 238, 1, 66, 200, 124, 214, 238, 1, 71, 200, 124, 214, 238, 1, - 74, 200, 124, 214, 238, 3, 230, 11, 200, 124, 214, 238, 1, 221, 67, 200, - 124, 214, 238, 1, 221, 183, 200, 124, 214, 238, 1, 231, 3, 200, 124, 214, - 238, 1, 231, 63, 200, 124, 214, 238, 3, 251, 71, 200, 124, 214, 238, 1, - 242, 99, 200, 124, 214, 238, 1, 243, 68, 200, 124, 214, 238, 1, 222, 201, - 200, 124, 214, 238, 1, 222, 246, 200, 124, 214, 238, 1, 197, 109, 200, - 124, 214, 238, 1, 197, 115, 200, 124, 214, 238, 1, 237, 161, 200, 124, - 214, 238, 1, 237, 170, 200, 124, 214, 238, 1, 159, 200, 124, 214, 238, 1, - 198, 241, 200, 124, 214, 238, 1, 236, 174, 200, 124, 214, 238, 1, 237, - 48, 200, 124, 214, 238, 1, 213, 43, 200, 124, 214, 238, 1, 209, 73, 200, - 124, 214, 238, 1, 209, 199, 200, 124, 214, 238, 1, 248, 111, 200, 124, - 214, 238, 1, 248, 192, 200, 124, 214, 238, 1, 216, 12, 200, 124, 214, - 238, 1, 206, 162, 200, 124, 214, 238, 1, 219, 43, 200, 124, 214, 238, 1, - 206, 95, 200, 124, 214, 238, 1, 202, 46, 200, 124, 214, 238, 1, 229, 23, - 200, 124, 214, 238, 18, 3, 65, 200, 124, 214, 238, 18, 3, 68, 200, 124, - 214, 238, 18, 3, 66, 200, 124, 214, 238, 18, 3, 71, 200, 124, 214, 238, - 18, 3, 211, 87, 200, 124, 214, 238, 209, 63, 217, 55, 200, 124, 214, 238, - 209, 63, 217, 54, 200, 124, 214, 238, 209, 63, 217, 53, 200, 124, 214, - 238, 209, 63, 217, 52, 200, 124, 214, 238, 3, 251, 157, 230, 11, 186, - 223, 146, 232, 118, 91, 208, 22, 186, 223, 146, 232, 118, 91, 230, 70, - 186, 223, 146, 232, 118, 115, 208, 20, 186, 223, 146, 232, 118, 91, 202, - 128, 186, 223, 146, 232, 118, 91, 234, 159, 186, 223, 146, 232, 118, 115, - 202, 125, 186, 223, 146, 208, 23, 77, 186, 223, 146, 209, 107, 77, 186, - 223, 146, 206, 36, 77, 186, 223, 146, 208, 25, 77, 209, 224, 1, 155, 209, - 224, 1, 221, 215, 209, 224, 1, 231, 240, 209, 224, 1, 214, 68, 209, 224, - 1, 247, 160, 209, 224, 1, 247, 1, 209, 224, 1, 223, 32, 209, 224, 1, 212, - 101, 209, 224, 1, 190, 190, 209, 224, 1, 199, 49, 209, 224, 1, 238, 32, - 209, 224, 1, 180, 209, 224, 1, 168, 209, 224, 1, 209, 228, 209, 224, 1, - 249, 153, 209, 224, 1, 174, 209, 224, 1, 197, 168, 209, 224, 1, 197, 157, - 209, 224, 1, 235, 35, 209, 224, 1, 193, 190, 209, 224, 1, 191, 71, 209, - 224, 1, 191, 123, 209, 224, 1, 2, 65, 209, 224, 1, 170, 209, 224, 1, 165, - 209, 224, 1, 173, 209, 224, 1, 203, 165, 209, 224, 1, 188, 209, 224, 1, - 140, 209, 224, 1, 65, 209, 224, 1, 68, 209, 224, 1, 66, 209, 224, 1, 71, - 209, 224, 1, 74, 209, 224, 1, 208, 96, 209, 224, 1, 192, 220, 209, 224, - 1, 233, 109, 209, 224, 1, 231, 127, 209, 224, 1, 234, 188, 209, 224, 200, - 239, 1, 193, 190, 209, 224, 200, 239, 1, 170, 209, 224, 1, 197, 132, 209, - 224, 1, 197, 120, 209, 224, 1, 237, 191, 209, 224, 1, 213, 79, 209, 224, - 1, 251, 157, 170, 209, 224, 1, 195, 19, 203, 165, 209, 224, 1, 195, 20, - 140, 209, 224, 1, 250, 200, 233, 109, 209, 224, 200, 239, 1, 165, 209, - 224, 200, 185, 1, 165, 209, 224, 1, 247, 119, 209, 224, 202, 170, 229, - 236, 77, 209, 224, 55, 229, 236, 77, 209, 224, 87, 203, 157, 209, 224, - 87, 55, 203, 157, 205, 111, 3, 251, 71, 205, 111, 3, 195, 35, 205, 111, - 1, 65, 205, 111, 1, 252, 206, 205, 111, 1, 68, 205, 111, 1, 223, 199, - 205, 111, 1, 66, 205, 111, 1, 196, 30, 205, 111, 1, 117, 146, 205, 111, - 1, 117, 206, 110, 205, 111, 1, 117, 172, 205, 111, 1, 117, 219, 74, 205, - 111, 1, 71, 205, 111, 1, 234, 188, 205, 111, 1, 251, 236, 205, 111, 1, - 74, 205, 111, 1, 211, 87, 205, 111, 1, 250, 163, 205, 111, 1, 155, 205, - 111, 1, 221, 215, 205, 111, 1, 231, 240, 205, 111, 1, 231, 91, 205, 111, - 1, 214, 68, 205, 111, 1, 247, 160, 205, 111, 1, 247, 1, 205, 111, 1, 223, - 32, 205, 111, 1, 222, 252, 205, 111, 1, 212, 101, 205, 111, 1, 197, 132, - 205, 111, 1, 197, 120, 205, 111, 1, 237, 191, 205, 111, 1, 237, 175, 205, - 111, 1, 213, 79, 205, 111, 1, 190, 190, 205, 111, 1, 199, 49, 205, 111, - 1, 238, 32, 205, 111, 1, 237, 68, 205, 111, 1, 180, 205, 111, 1, 168, - 205, 111, 1, 209, 228, 205, 111, 1, 249, 153, 205, 111, 1, 248, 203, 205, - 111, 1, 174, 205, 111, 1, 170, 205, 111, 1, 165, 205, 111, 1, 173, 205, - 111, 1, 195, 188, 205, 111, 1, 203, 165, 205, 111, 1, 201, 175, 205, 111, - 1, 188, 205, 111, 1, 140, 205, 111, 1, 219, 73, 205, 111, 120, 3, 230, - 89, 205, 111, 18, 3, 252, 206, 205, 111, 18, 3, 68, 205, 111, 18, 3, 223, - 199, 205, 111, 18, 3, 66, 205, 111, 18, 3, 196, 30, 205, 111, 18, 3, 117, - 146, 205, 111, 18, 3, 117, 206, 110, 205, 111, 18, 3, 117, 172, 205, 111, - 18, 3, 117, 219, 74, 205, 111, 18, 3, 71, 205, 111, 18, 3, 234, 188, 205, - 111, 18, 3, 251, 236, 205, 111, 18, 3, 74, 205, 111, 18, 3, 211, 87, 205, - 111, 18, 3, 250, 163, 205, 111, 3, 195, 40, 205, 111, 3, 247, 119, 205, - 111, 237, 238, 205, 111, 55, 237, 238, 205, 111, 17, 191, 77, 205, 111, - 17, 107, 205, 111, 17, 109, 205, 111, 17, 138, 205, 111, 17, 134, 205, - 111, 17, 149, 205, 111, 17, 169, 205, 111, 17, 175, 205, 111, 17, 171, - 205, 111, 17, 178, 33, 100, 17, 191, 77, 33, 100, 17, 107, 33, 100, 17, - 109, 33, 100, 17, 138, 33, 100, 17, 134, 33, 100, 17, 149, 33, 100, 17, - 169, 33, 100, 17, 175, 33, 100, 17, 171, 33, 100, 17, 178, 33, 100, 1, - 65, 33, 100, 1, 66, 33, 100, 1, 155, 33, 100, 1, 180, 33, 100, 1, 168, - 33, 100, 1, 165, 33, 100, 1, 195, 69, 33, 100, 3, 250, 145, 100, 3, 201, - 246, 247, 119, 100, 3, 247, 120, 195, 40, 100, 3, 55, 247, 120, 195, 40, - 100, 3, 247, 120, 109, 100, 3, 247, 120, 138, 100, 3, 247, 120, 250, 145, - 100, 3, 208, 134, 100, 231, 204, 233, 3, 100, 247, 96, 100, 229, 227, - 100, 3, 202, 210, 100, 223, 24, 211, 113, 100, 1, 250, 131, 100, 18, 3, - 250, 131, 222, 28, 219, 147, 17, 191, 77, 222, 28, 219, 147, 17, 107, - 222, 28, 219, 147, 17, 109, 222, 28, 219, 147, 17, 138, 222, 28, 219, - 147, 17, 134, 222, 28, 219, 147, 17, 149, 222, 28, 219, 147, 17, 169, - 222, 28, 219, 147, 17, 175, 222, 28, 219, 147, 17, 171, 222, 28, 219, - 147, 17, 178, 222, 28, 219, 147, 1, 155, 222, 28, 219, 147, 1, 221, 215, - 222, 28, 219, 147, 1, 231, 240, 222, 28, 219, 147, 1, 214, 68, 222, 28, - 219, 147, 1, 188, 222, 28, 219, 147, 1, 203, 165, 222, 28, 219, 147, 1, - 191, 123, 222, 28, 219, 147, 1, 212, 101, 222, 28, 219, 147, 1, 190, 190, - 222, 28, 219, 147, 1, 228, 164, 222, 28, 219, 147, 1, 180, 222, 28, 219, - 147, 1, 168, 222, 28, 219, 147, 1, 209, 228, 222, 28, 219, 147, 1, 174, - 222, 28, 219, 147, 1, 238, 32, 222, 28, 219, 147, 1, 249, 153, 222, 28, - 219, 147, 1, 165, 222, 28, 219, 147, 1, 170, 222, 28, 219, 147, 1, 173, - 222, 28, 219, 147, 1, 193, 190, 222, 28, 219, 147, 1, 199, 49, 222, 28, - 219, 147, 1, 140, 222, 28, 219, 147, 1, 195, 188, 222, 28, 219, 147, 1, - 247, 160, 222, 28, 219, 147, 1, 65, 222, 28, 219, 147, 1, 211, 151, 222, - 28, 219, 147, 1, 68, 222, 28, 219, 147, 1, 211, 87, 222, 28, 219, 147, - 18, 196, 152, 222, 28, 219, 147, 18, 71, 222, 28, 219, 147, 18, 66, 222, - 28, 219, 147, 18, 234, 188, 222, 28, 219, 147, 18, 74, 222, 28, 219, 147, - 163, 209, 90, 222, 28, 219, 147, 163, 247, 135, 222, 28, 219, 147, 163, - 247, 136, 209, 90, 222, 28, 219, 147, 3, 238, 147, 222, 28, 219, 147, 3, - 202, 230, 207, 67, 1, 155, 207, 67, 1, 231, 240, 207, 67, 1, 214, 68, - 207, 67, 1, 190, 190, 207, 67, 1, 238, 32, 207, 67, 1, 180, 207, 67, 1, - 168, 207, 67, 1, 249, 153, 207, 67, 1, 174, 207, 67, 1, 247, 160, 207, - 67, 1, 223, 32, 207, 67, 1, 212, 101, 207, 67, 1, 188, 207, 67, 1, 165, - 207, 67, 1, 173, 207, 67, 1, 170, 207, 67, 1, 193, 190, 207, 67, 1, 140, - 207, 67, 1, 217, 11, 207, 67, 1, 214, 47, 207, 67, 1, 214, 162, 207, 67, - 1, 212, 66, 207, 67, 1, 65, 207, 67, 18, 3, 68, 207, 67, 18, 3, 66, 207, - 67, 18, 3, 71, 207, 67, 18, 3, 251, 236, 207, 67, 18, 3, 74, 207, 67, 18, - 3, 250, 163, 207, 67, 18, 3, 233, 242, 207, 67, 18, 3, 234, 217, 207, 67, - 120, 3, 214, 70, 207, 67, 120, 3, 215, 61, 207, 67, 120, 3, 146, 207, 67, - 120, 3, 230, 116, 207, 67, 195, 40, 207, 67, 205, 54, 77, 30, 147, 198, - 164, 30, 147, 198, 163, 30, 147, 198, 161, 30, 147, 198, 166, 30, 147, - 206, 234, 30, 147, 206, 218, 30, 147, 206, 213, 30, 147, 206, 215, 30, - 147, 206, 231, 30, 147, 206, 224, 30, 147, 206, 217, 30, 147, 206, 236, - 30, 147, 206, 219, 30, 147, 206, 238, 30, 147, 206, 235, 30, 147, 216, - 73, 30, 147, 216, 64, 30, 147, 216, 67, 30, 147, 209, 154, 30, 147, 209, - 165, 30, 147, 209, 166, 30, 147, 201, 159, 30, 147, 223, 212, 30, 147, - 223, 219, 30, 147, 201, 170, 30, 147, 201, 157, 30, 147, 209, 208, 30, - 147, 229, 137, 30, 147, 201, 154, 223, 16, 3, 210, 143, 223, 16, 3, 247, - 39, 223, 16, 3, 219, 246, 223, 16, 3, 193, 71, 223, 16, 1, 65, 223, 16, - 1, 228, 74, 222, 32, 223, 16, 1, 68, 223, 16, 1, 223, 199, 223, 16, 1, - 66, 223, 16, 1, 210, 221, 247, 9, 223, 16, 1, 214, 69, 219, 203, 223, 16, - 1, 214, 69, 219, 204, 207, 131, 223, 16, 1, 71, 223, 16, 1, 251, 236, - 223, 16, 1, 74, 223, 16, 1, 155, 223, 16, 1, 222, 142, 205, 124, 223, 16, - 1, 222, 142, 215, 107, 223, 16, 1, 231, 240, 223, 16, 1, 231, 241, 215, - 107, 223, 16, 1, 214, 68, 223, 16, 1, 247, 160, 223, 16, 1, 247, 161, - 215, 107, 223, 16, 1, 223, 32, 223, 16, 1, 212, 102, 215, 107, 223, 16, - 1, 223, 33, 217, 116, 223, 16, 1, 212, 101, 223, 16, 1, 197, 132, 223, - 16, 1, 197, 133, 217, 116, 223, 16, 1, 237, 191, 223, 16, 1, 237, 192, - 217, 116, 223, 16, 1, 215, 7, 215, 107, 223, 16, 1, 190, 190, 223, 16, 1, - 199, 252, 215, 107, 223, 16, 1, 238, 32, 223, 16, 1, 238, 33, 217, 116, - 223, 16, 1, 180, 223, 16, 1, 168, 223, 16, 1, 210, 221, 215, 107, 223, - 16, 1, 249, 153, 223, 16, 1, 249, 154, 215, 107, 223, 16, 1, 174, 223, - 16, 1, 170, 223, 16, 1, 165, 223, 16, 1, 207, 186, 251, 246, 223, 16, 1, - 173, 223, 16, 1, 193, 190, 223, 16, 1, 205, 207, 215, 107, 223, 16, 1, - 205, 207, 217, 116, 223, 16, 1, 188, 223, 16, 1, 140, 223, 16, 3, 247, - 40, 199, 100, 223, 16, 18, 3, 199, 175, 223, 16, 18, 3, 198, 84, 223, 16, - 18, 3, 192, 250, 223, 16, 18, 3, 192, 251, 216, 198, 223, 16, 18, 3, 200, - 208, 223, 16, 18, 3, 200, 209, 216, 185, 223, 16, 18, 3, 199, 201, 223, - 16, 18, 3, 236, 230, 215, 106, 223, 16, 18, 3, 210, 16, 223, 16, 120, 3, - 221, 244, 223, 16, 120, 3, 210, 31, 223, 16, 120, 3, 247, 145, 223, 16, - 210, 157, 223, 16, 45, 207, 40, 223, 16, 50, 207, 40, 223, 16, 210, 209, - 251, 124, 223, 16, 210, 209, 217, 137, 223, 16, 210, 209, 218, 212, 223, - 16, 210, 209, 193, 64, 223, 16, 210, 209, 210, 158, 223, 16, 210, 209, - 219, 104, 223, 16, 210, 209, 218, 204, 223, 16, 210, 209, 252, 36, 223, - 16, 210, 209, 252, 37, 252, 36, 223, 16, 210, 209, 209, 119, 223, 16, - 153, 210, 209, 209, 119, 223, 16, 210, 153, 223, 16, 17, 191, 77, 223, - 16, 17, 107, 223, 16, 17, 109, 223, 16, 17, 138, 223, 16, 17, 134, 223, - 16, 17, 149, 223, 16, 17, 169, 223, 16, 17, 175, 223, 16, 17, 171, 223, - 16, 17, 178, 223, 16, 210, 209, 198, 127, 197, 73, 223, 16, 210, 209, - 223, 64, 80, 1, 203, 139, 231, 91, 80, 1, 203, 139, 247, 1, 80, 1, 203, - 139, 222, 252, 80, 1, 203, 139, 213, 79, 80, 1, 203, 139, 248, 203, 80, - 3, 203, 139, 205, 108, 80, 52, 1, 203, 139, 207, 85, 80, 1, 54, 220, 95, - 212, 101, 80, 1, 54, 220, 95, 233, 109, 80, 1, 54, 220, 95, 231, 240, 80, - 1, 54, 220, 95, 231, 91, 80, 1, 54, 220, 95, 223, 32, 80, 1, 54, 220, 95, - 222, 252, 80, 1, 54, 220, 95, 237, 191, 80, 1, 54, 220, 95, 237, 175, 80, - 1, 54, 220, 95, 213, 79, 80, 54, 220, 95, 17, 191, 77, 80, 54, 220, 95, - 17, 107, 80, 54, 220, 95, 17, 109, 80, 54, 220, 95, 17, 138, 80, 54, 220, - 95, 17, 134, 80, 54, 220, 95, 17, 149, 80, 54, 220, 95, 17, 169, 80, 54, - 220, 95, 17, 175, 80, 54, 220, 95, 17, 171, 80, 54, 220, 95, 17, 178, 80, - 1, 54, 220, 95, 219, 73, 80, 1, 54, 220, 95, 238, 32, 80, 1, 54, 220, 95, - 237, 68, 80, 1, 54, 220, 95, 249, 153, 80, 1, 54, 220, 95, 248, 203, 246, - 250, 1, 65, 246, 250, 1, 68, 246, 250, 1, 66, 246, 250, 1, 71, 246, 250, - 1, 251, 236, 246, 250, 1, 74, 246, 250, 1, 155, 246, 250, 1, 221, 215, - 246, 250, 1, 231, 240, 246, 250, 1, 231, 91, 246, 250, 1, 213, 233, 246, - 250, 1, 214, 68, 246, 250, 1, 247, 1, 246, 250, 1, 243, 98, 246, 250, 1, - 223, 32, 246, 250, 1, 222, 252, 246, 250, 1, 213, 221, 246, 250, 1, 213, - 224, 246, 250, 1, 213, 222, 246, 250, 1, 190, 190, 246, 250, 1, 199, 49, - 246, 250, 1, 238, 32, 246, 250, 1, 237, 68, 246, 250, 1, 212, 144, 246, - 250, 1, 180, 246, 250, 1, 237, 191, 246, 250, 1, 168, 246, 250, 1, 208, - 250, 246, 250, 1, 209, 228, 246, 250, 1, 249, 153, 246, 250, 1, 248, 203, - 246, 250, 1, 215, 143, 246, 250, 1, 174, 246, 250, 1, 249, 53, 246, 250, - 1, 170, 246, 250, 1, 165, 246, 250, 1, 173, 246, 250, 1, 195, 188, 246, - 250, 1, 201, 175, 246, 250, 1, 188, 246, 250, 1, 140, 246, 250, 18, 3, - 252, 206, 246, 250, 18, 3, 68, 246, 250, 18, 3, 223, 199, 246, 250, 18, - 3, 234, 166, 246, 250, 18, 3, 66, 246, 250, 18, 3, 211, 151, 246, 250, - 18, 3, 74, 246, 250, 18, 3, 251, 236, 246, 250, 18, 3, 250, 163, 246, - 250, 18, 3, 196, 152, 246, 250, 120, 3, 170, 246, 250, 120, 3, 165, 246, - 250, 120, 3, 173, 246, 250, 120, 3, 193, 190, 246, 250, 1, 53, 222, 152, - 246, 250, 1, 53, 232, 51, 246, 250, 1, 53, 214, 70, 246, 250, 120, 3, 53, - 214, 70, 246, 250, 1, 53, 247, 3, 246, 250, 1, 53, 200, 43, 246, 250, 1, - 53, 215, 61, 246, 250, 1, 53, 210, 236, 246, 250, 1, 53, 192, 159, 246, - 250, 1, 53, 146, 246, 250, 1, 53, 172, 246, 250, 1, 53, 201, 178, 246, - 250, 120, 3, 53, 218, 168, 246, 250, 120, 3, 53, 230, 116, 246, 250, 17, - 191, 77, 246, 250, 17, 107, 246, 250, 17, 109, 246, 250, 17, 138, 246, - 250, 17, 134, 246, 250, 17, 149, 246, 250, 17, 169, 246, 250, 17, 175, - 246, 250, 17, 171, 246, 250, 17, 178, 246, 250, 208, 152, 201, 217, 246, - 250, 208, 152, 237, 238, 246, 250, 208, 152, 55, 237, 238, 246, 250, 208, - 152, 197, 225, 237, 238, 80, 1, 221, 206, 231, 240, 80, 1, 221, 206, 247, - 160, 80, 1, 221, 206, 247, 1, 80, 1, 221, 206, 223, 32, 80, 1, 221, 206, - 222, 252, 80, 1, 221, 206, 212, 101, 80, 1, 221, 206, 197, 132, 80, 1, - 221, 206, 197, 120, 80, 1, 221, 206, 237, 191, 80, 1, 221, 206, 237, 175, - 80, 1, 221, 206, 237, 68, 80, 1, 221, 206, 180, 80, 1, 221, 206, 188, 80, - 1, 221, 206, 140, 80, 1, 221, 206, 229, 177, 80, 1, 221, 206, 233, 109, - 80, 52, 1, 221, 206, 207, 85, 80, 1, 221, 206, 192, 220, 80, 1, 221, 206, - 191, 123, 80, 1, 221, 206, 165, 80, 219, 28, 221, 206, 211, 179, 80, 219, - 28, 221, 206, 208, 46, 80, 219, 28, 221, 206, 229, 78, 80, 16, 251, 222, - 233, 215, 80, 16, 251, 222, 107, 80, 16, 251, 222, 109, 80, 1, 251, 222, - 165, 80, 3, 210, 139, 222, 62, 198, 79, 80, 3, 54, 220, 95, 198, 77, 80, - 3, 54, 220, 95, 198, 74, 80, 1, 202, 238, 210, 189, 247, 1, 80, 1, 202, - 238, 210, 189, 203, 165, 54, 195, 59, 1, 130, 221, 67, 54, 195, 59, 1, - 137, 221, 67, 54, 195, 59, 1, 130, 221, 183, 54, 195, 59, 1, 137, 221, - 183, 54, 195, 59, 1, 130, 221, 192, 54, 195, 59, 1, 137, 221, 192, 54, - 195, 59, 1, 130, 231, 3, 54, 195, 59, 1, 137, 231, 3, 54, 195, 59, 1, - 130, 213, 249, 54, 195, 59, 1, 137, 213, 249, 54, 195, 59, 1, 130, 242, - 99, 54, 195, 59, 1, 137, 242, 99, 54, 195, 59, 1, 130, 243, 68, 54, 195, - 59, 1, 137, 243, 68, 54, 195, 59, 1, 130, 202, 46, 54, 195, 59, 1, 137, - 202, 46, 54, 195, 59, 1, 130, 212, 65, 54, 195, 59, 1, 137, 212, 65, 54, - 195, 59, 1, 130, 236, 174, 54, 195, 59, 1, 137, 236, 174, 54, 195, 59, 1, - 130, 159, 54, 195, 59, 1, 137, 159, 54, 195, 59, 1, 130, 198, 241, 54, - 195, 59, 1, 137, 198, 241, 54, 195, 59, 1, 130, 213, 43, 54, 195, 59, 1, - 137, 213, 43, 54, 195, 59, 1, 130, 248, 111, 54, 195, 59, 1, 137, 248, - 111, 54, 195, 59, 1, 130, 209, 73, 54, 195, 59, 1, 137, 209, 73, 54, 195, - 59, 1, 130, 209, 199, 54, 195, 59, 1, 137, 209, 199, 54, 195, 59, 1, 130, - 232, 175, 54, 195, 59, 1, 137, 232, 175, 54, 195, 59, 1, 130, 216, 12, - 54, 195, 59, 1, 137, 216, 12, 54, 195, 59, 1, 130, 192, 12, 54, 195, 59, - 1, 137, 192, 12, 54, 195, 59, 1, 130, 206, 162, 54, 195, 59, 1, 137, 206, - 162, 54, 195, 59, 1, 130, 219, 43, 54, 195, 59, 1, 137, 219, 43, 54, 195, - 59, 1, 130, 195, 24, 54, 195, 59, 1, 137, 195, 24, 54, 195, 59, 1, 130, - 229, 23, 54, 195, 59, 1, 137, 229, 23, 54, 195, 59, 1, 130, 74, 54, 195, - 59, 1, 137, 74, 54, 195, 59, 217, 113, 222, 83, 54, 195, 59, 18, 252, - 206, 54, 195, 59, 18, 68, 54, 195, 59, 18, 196, 152, 54, 195, 59, 18, 66, - 54, 195, 59, 18, 71, 54, 195, 59, 18, 74, 54, 195, 59, 217, 113, 221, - 186, 54, 195, 59, 18, 228, 35, 54, 195, 59, 18, 196, 151, 54, 195, 59, - 18, 196, 168, 54, 195, 59, 18, 250, 161, 54, 195, 59, 18, 250, 131, 54, - 195, 59, 18, 251, 132, 54, 195, 59, 18, 251, 149, 54, 195, 59, 163, 217, - 113, 234, 147, 54, 195, 59, 163, 217, 113, 212, 143, 54, 195, 59, 163, - 217, 113, 198, 241, 54, 195, 59, 163, 217, 113, 202, 18, 54, 195, 59, 16, - 221, 44, 54, 195, 59, 16, 212, 143, 54, 195, 59, 16, 205, 152, 54, 195, - 59, 16, 229, 24, 229, 10, 54, 195, 59, 16, 221, 55, 221, 54, 216, 205, - 217, 18, 1, 71, 216, 205, 217, 18, 1, 74, 216, 205, 217, 18, 1, 247, 1, - 216, 205, 217, 18, 1, 212, 101, 216, 205, 217, 18, 1, 197, 132, 216, 205, - 217, 18, 1, 197, 120, 216, 205, 217, 18, 1, 237, 191, 216, 205, 217, 18, - 1, 237, 175, 216, 205, 217, 18, 1, 213, 79, 216, 205, 217, 18, 1, 203, - 165, 216, 205, 217, 18, 1, 201, 175, 216, 205, 217, 18, 18, 3, 223, 199, - 216, 205, 217, 18, 18, 3, 196, 30, 216, 205, 217, 18, 18, 3, 252, 170, - 216, 205, 217, 18, 18, 3, 250, 163, 216, 205, 217, 18, 18, 3, 252, 162, - 216, 205, 217, 18, 243, 116, 216, 205, 217, 18, 251, 242, 221, 173, 216, - 205, 217, 18, 251, 100, 216, 205, 217, 18, 5, 207, 46, 77, 216, 205, 217, - 18, 193, 23, 207, 46, 77, 216, 205, 217, 18, 18, 3, 195, 35, 216, 205, - 217, 18, 195, 40, 36, 5, 197, 113, 36, 5, 197, 116, 36, 5, 197, 119, 36, - 5, 197, 117, 36, 5, 197, 118, 36, 5, 197, 115, 36, 5, 237, 169, 36, 5, - 237, 171, 36, 5, 237, 174, 36, 5, 237, 172, 36, 5, 237, 173, 36, 5, 237, - 170, 36, 5, 235, 22, 36, 5, 235, 26, 36, 5, 235, 34, 36, 5, 235, 31, 36, - 5, 235, 32, 36, 5, 235, 23, 36, 5, 247, 56, 36, 5, 247, 50, 36, 5, 247, - 52, 36, 5, 247, 55, 36, 5, 247, 53, 36, 5, 247, 54, 36, 5, 247, 51, 36, - 5, 249, 53, 36, 5, 249, 32, 36, 5, 249, 44, 36, 5, 249, 52, 36, 5, 249, - 47, 36, 5, 249, 48, 36, 5, 249, 36, 8, 2, 1, 249, 82, 251, 160, 8, 2, 1, - 42, 207, 16, 8, 2, 1, 248, 135, 71, 8, 2, 1, 249, 82, 71, 8, 2, 1, 235, - 15, 4, 232, 188, 8, 2, 1, 219, 189, 233, 175, 8, 2, 1, 27, 232, 52, 4, - 238, 212, 8, 2, 1, 220, 143, 4, 223, 93, 219, 245, 206, 8, 8, 2, 1, 220, - 143, 4, 55, 82, 198, 152, 8, 2, 1, 220, 143, 4, 82, 206, 188, 8, 2, 1, - 218, 169, 4, 238, 212, 8, 2, 1, 215, 62, 4, 238, 212, 8, 2, 1, 234, 89, - 4, 238, 212, 8, 2, 1, 248, 135, 74, 8, 2, 1, 248, 135, 187, 4, 106, 8, 2, - 1, 211, 77, 187, 4, 106, 8, 2, 1, 223, 93, 211, 151, 8, 2, 1, 153, 211, - 152, 4, 106, 8, 2, 1, 153, 211, 152, 4, 228, 241, 106, 8, 2, 1, 153, 187, - 211, 72, 8, 2, 1, 153, 187, 211, 73, 4, 106, 8, 2, 1, 201, 68, 146, 8, 1, - 2, 6, 207, 222, 4, 50, 219, 212, 8, 2, 1, 207, 222, 193, 51, 230, 31, 8, - 2, 1, 55, 146, 8, 2, 1, 207, 222, 4, 238, 212, 8, 2, 1, 55, 207, 222, 4, - 238, 212, 8, 2, 1, 27, 146, 8, 2, 1, 27, 207, 222, 4, 206, 188, 8, 2, 1, - 249, 72, 234, 12, 8, 2, 1, 126, 4, 203, 40, 50, 219, 212, 8, 2, 1, 126, - 249, 88, 4, 203, 40, 50, 219, 212, 8, 2, 1, 196, 139, 8, 2, 1, 153, 196, - 139, 8, 2, 1, 126, 4, 45, 102, 8, 2, 1, 243, 95, 8, 2, 1, 243, 96, 4, - 130, 50, 206, 188, 8, 2, 1, 243, 96, 4, 130, 45, 204, 5, 8, 2, 1, 192, - 236, 4, 130, 50, 206, 188, 8, 2, 1, 192, 236, 4, 179, 45, 219, 212, 8, 2, - 1, 192, 236, 4, 179, 45, 219, 213, 23, 130, 50, 206, 188, 8, 2, 1, 192, - 236, 4, 179, 45, 219, 213, 4, 204, 5, 8, 2, 1, 192, 160, 4, 203, 40, 50, - 219, 212, 52, 248, 37, 4, 223, 93, 248, 36, 52, 1, 2, 229, 196, 52, 1, 2, - 220, 143, 4, 223, 93, 219, 245, 206, 8, 52, 1, 2, 220, 143, 4, 82, 198, - 152, 52, 1, 2, 126, 4, 45, 102, 8, 2, 1, 205, 174, 192, 95, 8, 2, 1, 223, - 81, 71, 8, 2, 1, 211, 77, 211, 151, 8, 2, 1, 196, 82, 8, 2, 1, 223, 93, - 251, 160, 35, 1, 2, 6, 211, 110, 8, 2, 1, 235, 37, 237, 3, 4, 207, 24, - 102, 8, 2, 1, 197, 170, 237, 3, 4, 207, 24, 102, 8, 2, 1, 153, 207, 222, - 4, 82, 198, 152, 52, 1, 2, 153, 193, 224, 52, 1, 45, 199, 228, 52, 1, 50, - 199, 228, 103, 2, 1, 65, 103, 2, 1, 71, 103, 2, 1, 68, 103, 2, 1, 74, - 103, 2, 1, 66, 103, 2, 1, 196, 12, 103, 2, 1, 231, 240, 103, 2, 1, 155, - 103, 2, 1, 231, 165, 103, 2, 1, 231, 53, 103, 2, 1, 231, 3, 103, 2, 1, - 230, 179, 103, 2, 1, 230, 138, 103, 2, 1, 140, 103, 2, 1, 229, 245, 103, - 2, 1, 229, 158, 103, 2, 1, 229, 23, 103, 2, 1, 228, 159, 103, 2, 1, 228, - 126, 103, 2, 1, 173, 103, 2, 1, 219, 238, 103, 2, 1, 219, 146, 103, 2, 1, - 219, 43, 103, 2, 1, 218, 225, 103, 2, 1, 218, 192, 103, 2, 1, 174, 103, - 2, 1, 216, 232, 103, 2, 1, 216, 100, 103, 2, 1, 216, 12, 103, 2, 1, 215, - 155, 103, 2, 1, 180, 103, 2, 1, 229, 47, 103, 2, 1, 214, 237, 103, 2, 1, - 214, 121, 103, 2, 1, 213, 219, 103, 2, 1, 213, 43, 103, 2, 1, 212, 178, - 103, 2, 1, 212, 112, 103, 2, 1, 208, 32, 103, 2, 1, 208, 16, 103, 2, 1, - 208, 9, 103, 2, 1, 207, 255, 103, 2, 1, 207, 244, 103, 2, 1, 207, 242, - 103, 2, 1, 188, 103, 2, 1, 206, 8, 103, 2, 1, 205, 68, 103, 2, 1, 202, - 222, 103, 2, 1, 202, 46, 103, 2, 1, 201, 4, 103, 2, 1, 200, 158, 103, 2, - 1, 238, 32, 103, 2, 1, 190, 190, 103, 2, 1, 237, 146, 103, 2, 1, 199, - 145, 103, 2, 1, 237, 44, 103, 2, 1, 198, 193, 103, 2, 1, 236, 174, 103, - 2, 1, 235, 89, 103, 2, 1, 235, 57, 103, 2, 1, 236, 186, 103, 2, 1, 198, - 115, 103, 2, 1, 198, 114, 103, 2, 1, 198, 103, 103, 2, 1, 198, 102, 103, - 2, 1, 198, 101, 103, 2, 1, 198, 100, 103, 2, 1, 197, 168, 103, 2, 1, 197, - 161, 103, 2, 1, 197, 146, 103, 2, 1, 197, 144, 103, 2, 1, 197, 140, 103, - 2, 1, 197, 139, 103, 2, 1, 193, 190, 103, 2, 1, 193, 125, 103, 2, 1, 193, - 86, 103, 2, 1, 193, 48, 103, 2, 1, 193, 0, 103, 2, 1, 192, 243, 103, 2, - 1, 170, 216, 205, 217, 18, 1, 221, 51, 216, 205, 217, 18, 1, 205, 152, - 216, 205, 217, 18, 1, 220, 96, 216, 205, 217, 18, 1, 216, 23, 216, 205, - 217, 18, 1, 168, 216, 205, 217, 18, 1, 180, 216, 205, 217, 18, 1, 243, - 87, 216, 205, 217, 18, 1, 198, 154, 216, 205, 217, 18, 1, 221, 176, 216, - 205, 217, 18, 1, 213, 239, 216, 205, 217, 18, 1, 198, 232, 216, 205, 217, - 18, 1, 193, 173, 216, 205, 217, 18, 1, 192, 106, 216, 205, 217, 18, 1, - 228, 147, 216, 205, 217, 18, 1, 196, 113, 216, 205, 217, 18, 1, 68, 216, - 205, 217, 18, 1, 209, 222, 216, 205, 217, 18, 1, 250, 175, 216, 205, 217, - 18, 1, 230, 251, 216, 205, 217, 18, 1, 222, 250, 216, 205, 217, 18, 1, - 207, 156, 216, 205, 217, 18, 1, 249, 153, 216, 205, 217, 18, 1, 222, 234, - 216, 205, 217, 18, 1, 237, 1, 216, 205, 217, 18, 1, 231, 60, 216, 205, - 217, 18, 1, 237, 46, 216, 205, 217, 18, 1, 248, 198, 216, 205, 217, 18, - 1, 221, 52, 219, 9, 216, 205, 217, 18, 1, 220, 97, 219, 9, 216, 205, 217, - 18, 1, 216, 24, 219, 9, 216, 205, 217, 18, 1, 210, 221, 219, 9, 216, 205, - 217, 18, 1, 215, 7, 219, 9, 216, 205, 217, 18, 1, 198, 155, 219, 9, 216, - 205, 217, 18, 1, 213, 240, 219, 9, 216, 205, 217, 18, 1, 228, 74, 219, 9, - 216, 205, 217, 18, 18, 3, 211, 102, 216, 205, 217, 18, 18, 3, 223, 160, - 216, 205, 217, 18, 18, 3, 251, 130, 216, 205, 217, 18, 18, 3, 192, 69, - 216, 205, 217, 18, 18, 3, 202, 6, 216, 205, 217, 18, 18, 3, 196, 110, - 216, 205, 217, 18, 18, 3, 243, 114, 216, 205, 217, 18, 18, 3, 212, 127, - 216, 205, 217, 18, 243, 115, 216, 205, 217, 18, 218, 209, 223, 42, 216, - 205, 217, 18, 251, 38, 223, 42, 216, 205, 217, 18, 17, 191, 77, 216, 205, - 217, 18, 17, 107, 216, 205, 217, 18, 17, 109, 216, 205, 217, 18, 17, 138, - 216, 205, 217, 18, 17, 134, 216, 205, 217, 18, 17, 149, 216, 205, 217, - 18, 17, 169, 216, 205, 217, 18, 17, 175, 216, 205, 217, 18, 17, 171, 216, - 205, 217, 18, 17, 178, 30, 222, 174, 212, 3, 30, 222, 174, 212, 8, 30, - 222, 174, 192, 5, 30, 222, 174, 192, 4, 30, 222, 174, 192, 3, 30, 222, - 174, 196, 218, 30, 222, 174, 196, 222, 30, 222, 174, 191, 219, 30, 222, - 174, 191, 215, 30, 222, 174, 233, 241, 30, 222, 174, 233, 239, 30, 222, - 174, 233, 240, 30, 222, 174, 233, 237, 30, 222, 174, 228, 60, 30, 222, - 174, 228, 59, 30, 222, 174, 228, 57, 30, 222, 174, 228, 58, 30, 222, 174, - 228, 63, 30, 222, 174, 228, 56, 30, 222, 174, 228, 55, 30, 222, 174, 228, - 65, 30, 222, 174, 251, 24, 30, 222, 174, 251, 23, 30, 125, 213, 197, 30, - 125, 213, 203, 30, 125, 201, 156, 30, 125, 201, 155, 30, 125, 198, 163, - 30, 125, 198, 161, 30, 125, 198, 160, 30, 125, 198, 166, 30, 125, 198, - 167, 30, 125, 198, 159, 30, 125, 206, 218, 30, 125, 206, 233, 30, 125, - 201, 162, 30, 125, 206, 230, 30, 125, 206, 220, 30, 125, 206, 222, 30, - 125, 206, 209, 30, 125, 206, 210, 30, 125, 222, 68, 30, 125, 216, 72, 30, - 125, 216, 66, 30, 125, 201, 166, 30, 125, 216, 69, 30, 125, 216, 75, 30, - 125, 209, 150, 30, 125, 209, 159, 30, 125, 209, 163, 30, 125, 201, 164, - 30, 125, 209, 153, 30, 125, 209, 167, 30, 125, 209, 168, 30, 125, 202, - 152, 30, 125, 202, 155, 30, 125, 201, 160, 30, 125, 201, 158, 30, 125, - 202, 150, 30, 125, 202, 158, 30, 125, 202, 159, 30, 125, 202, 144, 30, - 125, 202, 157, 30, 125, 210, 147, 30, 125, 210, 148, 30, 125, 192, 53, - 30, 125, 192, 56, 30, 125, 243, 22, 30, 125, 243, 21, 30, 125, 201, 171, - 30, 125, 209, 206, 30, 125, 209, 205, 12, 15, 225, 190, 12, 15, 225, 189, - 12, 15, 225, 188, 12, 15, 225, 187, 12, 15, 225, 186, 12, 15, 225, 185, - 12, 15, 225, 184, 12, 15, 225, 183, 12, 15, 225, 182, 12, 15, 225, 181, - 12, 15, 225, 180, 12, 15, 225, 179, 12, 15, 225, 178, 12, 15, 225, 177, - 12, 15, 225, 176, 12, 15, 225, 175, 12, 15, 225, 174, 12, 15, 225, 173, - 12, 15, 225, 172, 12, 15, 225, 171, 12, 15, 225, 170, 12, 15, 225, 169, - 12, 15, 225, 168, 12, 15, 225, 167, 12, 15, 225, 166, 12, 15, 225, 165, - 12, 15, 225, 164, 12, 15, 225, 163, 12, 15, 225, 162, 12, 15, 225, 161, - 12, 15, 225, 160, 12, 15, 225, 159, 12, 15, 225, 158, 12, 15, 225, 157, - 12, 15, 225, 156, 12, 15, 225, 155, 12, 15, 225, 154, 12, 15, 225, 153, - 12, 15, 225, 152, 12, 15, 225, 151, 12, 15, 225, 150, 12, 15, 225, 149, - 12, 15, 225, 148, 12, 15, 225, 147, 12, 15, 225, 146, 12, 15, 225, 145, - 12, 15, 225, 144, 12, 15, 225, 143, 12, 15, 225, 142, 12, 15, 225, 141, - 12, 15, 225, 140, 12, 15, 225, 139, 12, 15, 225, 138, 12, 15, 225, 137, - 12, 15, 225, 136, 12, 15, 225, 135, 12, 15, 225, 134, 12, 15, 225, 133, - 12, 15, 225, 132, 12, 15, 225, 131, 12, 15, 225, 130, 12, 15, 225, 129, - 12, 15, 225, 128, 12, 15, 225, 127, 12, 15, 225, 126, 12, 15, 225, 125, - 12, 15, 225, 124, 12, 15, 225, 123, 12, 15, 225, 122, 12, 15, 225, 121, - 12, 15, 225, 120, 12, 15, 225, 119, 12, 15, 225, 118, 12, 15, 225, 117, - 12, 15, 225, 116, 12, 15, 225, 115, 12, 15, 225, 114, 12, 15, 225, 113, - 12, 15, 225, 112, 12, 15, 225, 111, 12, 15, 225, 110, 12, 15, 225, 109, - 12, 15, 225, 108, 12, 15, 225, 107, 12, 15, 225, 106, 12, 15, 225, 105, - 12, 15, 225, 104, 12, 15, 225, 103, 12, 15, 225, 102, 12, 15, 225, 101, - 12, 15, 225, 100, 12, 15, 225, 99, 12, 15, 225, 98, 12, 15, 225, 97, 12, - 15, 225, 96, 12, 15, 225, 95, 12, 15, 225, 94, 12, 15, 225, 93, 12, 15, - 225, 92, 12, 15, 225, 91, 12, 15, 225, 90, 12, 15, 225, 89, 12, 15, 225, - 88, 12, 15, 225, 87, 12, 15, 225, 86, 12, 15, 225, 85, 12, 15, 225, 84, - 12, 15, 225, 83, 12, 15, 225, 82, 12, 15, 225, 81, 12, 15, 225, 80, 12, - 15, 225, 79, 12, 15, 225, 78, 12, 15, 225, 77, 12, 15, 225, 76, 12, 15, - 225, 75, 12, 15, 225, 74, 12, 15, 225, 73, 12, 15, 225, 72, 12, 15, 225, - 71, 12, 15, 225, 70, 12, 15, 225, 69, 12, 15, 225, 68, 12, 15, 225, 67, - 12, 15, 225, 66, 12, 15, 225, 65, 12, 15, 225, 64, 12, 15, 225, 63, 12, - 15, 225, 62, 12, 15, 225, 61, 12, 15, 225, 60, 12, 15, 225, 59, 12, 15, - 225, 58, 12, 15, 225, 57, 12, 15, 225, 56, 12, 15, 225, 55, 12, 15, 225, - 54, 12, 15, 225, 53, 12, 15, 225, 52, 12, 15, 225, 51, 12, 15, 225, 50, - 12, 15, 225, 49, 12, 15, 225, 48, 12, 15, 225, 47, 12, 15, 225, 46, 12, - 15, 225, 45, 12, 15, 225, 44, 12, 15, 225, 43, 12, 15, 225, 42, 12, 15, - 225, 41, 12, 15, 225, 40, 12, 15, 225, 39, 12, 15, 225, 38, 12, 15, 225, - 37, 12, 15, 225, 36, 12, 15, 225, 35, 12, 15, 225, 34, 12, 15, 225, 33, - 12, 15, 225, 32, 12, 15, 225, 31, 12, 15, 225, 30, 12, 15, 225, 29, 12, - 15, 225, 28, 12, 15, 225, 27, 12, 15, 225, 26, 12, 15, 225, 25, 12, 15, - 225, 24, 12, 15, 225, 23, 12, 15, 225, 22, 12, 15, 225, 21, 12, 15, 225, - 20, 12, 15, 225, 19, 12, 15, 225, 18, 12, 15, 225, 17, 12, 15, 225, 16, - 12, 15, 225, 15, 12, 15, 225, 14, 12, 15, 225, 13, 12, 15, 225, 12, 12, - 15, 225, 11, 12, 15, 225, 10, 12, 15, 225, 9, 12, 15, 225, 8, 12, 15, - 225, 7, 12, 15, 225, 6, 12, 15, 225, 5, 12, 15, 225, 4, 12, 15, 225, 3, - 12, 15, 225, 2, 12, 15, 225, 1, 12, 15, 225, 0, 12, 15, 224, 255, 12, 15, - 224, 254, 12, 15, 224, 253, 12, 15, 224, 252, 12, 15, 224, 251, 12, 15, - 224, 250, 12, 15, 224, 249, 12, 15, 224, 248, 12, 15, 224, 247, 12, 15, - 224, 246, 12, 15, 224, 245, 12, 15, 224, 244, 12, 15, 224, 243, 12, 15, - 224, 242, 12, 15, 224, 241, 12, 15, 224, 240, 12, 15, 224, 239, 12, 15, - 224, 238, 12, 15, 224, 237, 12, 15, 224, 236, 12, 15, 224, 235, 12, 15, - 224, 234, 12, 15, 224, 233, 12, 15, 224, 232, 12, 15, 224, 231, 12, 15, - 224, 230, 12, 15, 224, 229, 12, 15, 224, 228, 12, 15, 224, 227, 12, 15, - 224, 226, 12, 15, 224, 225, 12, 15, 224, 224, 12, 15, 224, 223, 12, 15, - 224, 222, 12, 15, 224, 221, 12, 15, 224, 220, 12, 15, 224, 219, 12, 15, - 224, 218, 12, 15, 224, 217, 12, 15, 224, 216, 12, 15, 224, 215, 12, 15, - 224, 214, 12, 15, 224, 213, 12, 15, 224, 212, 12, 15, 224, 211, 12, 15, - 224, 210, 12, 15, 224, 209, 12, 15, 224, 208, 12, 15, 224, 207, 12, 15, - 224, 206, 12, 15, 224, 205, 12, 15, 224, 204, 12, 15, 224, 203, 12, 15, - 224, 202, 12, 15, 224, 201, 12, 15, 224, 200, 12, 15, 224, 199, 12, 15, - 224, 198, 12, 15, 224, 197, 12, 15, 224, 196, 12, 15, 224, 195, 12, 15, - 224, 194, 12, 15, 224, 193, 12, 15, 224, 192, 12, 15, 224, 191, 12, 15, - 224, 190, 12, 15, 224, 189, 12, 15, 224, 188, 12, 15, 224, 187, 12, 15, - 224, 186, 12, 15, 224, 185, 12, 15, 224, 184, 12, 15, 224, 183, 12, 15, - 224, 182, 12, 15, 224, 181, 12, 15, 224, 180, 12, 15, 224, 179, 12, 15, - 224, 178, 12, 15, 224, 177, 12, 15, 224, 176, 12, 15, 224, 175, 12, 15, - 224, 174, 12, 15, 224, 173, 12, 15, 224, 172, 12, 15, 224, 171, 12, 15, - 224, 170, 12, 15, 224, 169, 12, 15, 224, 168, 12, 15, 224, 167, 12, 15, - 224, 166, 12, 15, 224, 165, 12, 15, 224, 164, 12, 15, 224, 163, 12, 15, - 224, 162, 12, 15, 224, 161, 12, 15, 224, 160, 12, 15, 224, 159, 12, 15, - 224, 158, 12, 15, 224, 157, 12, 15, 224, 156, 12, 15, 224, 155, 12, 15, - 224, 154, 12, 15, 224, 153, 12, 15, 224, 152, 12, 15, 224, 151, 12, 15, - 224, 150, 12, 15, 224, 149, 12, 15, 224, 148, 12, 15, 224, 147, 12, 15, - 224, 146, 12, 15, 224, 145, 12, 15, 224, 144, 12, 15, 224, 143, 12, 15, - 224, 142, 12, 15, 224, 141, 12, 15, 224, 140, 12, 15, 224, 139, 12, 15, - 224, 138, 12, 15, 224, 137, 12, 15, 224, 136, 12, 15, 224, 135, 12, 15, - 224, 134, 12, 15, 224, 133, 12, 15, 224, 132, 12, 15, 224, 131, 12, 15, - 224, 130, 12, 15, 224, 129, 12, 15, 224, 128, 12, 15, 224, 127, 12, 15, - 224, 126, 12, 15, 224, 125, 12, 15, 224, 124, 12, 15, 224, 123, 12, 15, - 224, 122, 12, 15, 224, 121, 12, 15, 224, 120, 12, 15, 224, 119, 12, 15, - 224, 118, 12, 15, 224, 117, 12, 15, 224, 116, 12, 15, 224, 115, 12, 15, - 224, 114, 12, 15, 224, 113, 12, 15, 224, 112, 12, 15, 224, 111, 12, 15, - 224, 110, 12, 15, 224, 109, 12, 15, 224, 108, 12, 15, 224, 107, 12, 15, - 224, 106, 12, 15, 224, 105, 12, 15, 224, 104, 12, 15, 224, 103, 12, 15, - 224, 102, 12, 15, 224, 101, 12, 15, 224, 100, 12, 15, 224, 99, 12, 15, - 224, 98, 12, 15, 224, 97, 12, 15, 224, 96, 12, 15, 224, 95, 12, 15, 224, - 94, 12, 15, 224, 93, 12, 15, 224, 92, 12, 15, 224, 91, 12, 15, 224, 90, - 12, 15, 224, 89, 12, 15, 224, 88, 12, 15, 224, 87, 12, 15, 224, 86, 12, - 15, 224, 85, 12, 15, 224, 84, 12, 15, 224, 83, 12, 15, 224, 82, 12, 15, - 224, 81, 12, 15, 224, 80, 12, 15, 224, 79, 12, 15, 224, 78, 12, 15, 224, - 77, 12, 15, 224, 76, 12, 15, 224, 75, 12, 15, 224, 74, 12, 15, 224, 73, - 12, 15, 224, 72, 12, 15, 224, 71, 12, 15, 224, 70, 12, 15, 224, 69, 12, - 15, 224, 68, 12, 15, 224, 67, 12, 15, 224, 66, 12, 15, 224, 65, 12, 15, - 224, 64, 12, 15, 224, 63, 12, 15, 224, 62, 12, 15, 224, 61, 12, 15, 224, - 60, 12, 15, 224, 59, 12, 15, 224, 58, 12, 15, 224, 57, 12, 15, 224, 56, - 12, 15, 224, 55, 12, 15, 224, 54, 12, 15, 224, 53, 12, 15, 224, 52, 12, - 15, 224, 51, 12, 15, 224, 50, 12, 15, 224, 49, 12, 15, 224, 48, 12, 15, - 224, 47, 12, 15, 224, 46, 12, 15, 224, 45, 12, 15, 224, 44, 12, 15, 224, - 43, 12, 15, 224, 42, 12, 15, 224, 41, 12, 15, 224, 40, 12, 15, 224, 39, - 12, 15, 224, 38, 12, 15, 224, 37, 12, 15, 224, 36, 12, 15, 224, 35, 12, - 15, 224, 34, 12, 15, 224, 33, 12, 15, 224, 32, 12, 15, 224, 31, 12, 15, - 224, 30, 12, 15, 224, 29, 12, 15, 224, 28, 12, 15, 224, 27, 12, 15, 224, - 26, 12, 15, 224, 25, 12, 15, 224, 24, 12, 15, 224, 23, 12, 15, 224, 22, - 12, 15, 224, 21, 12, 15, 224, 20, 12, 15, 224, 19, 12, 15, 224, 18, 12, - 15, 224, 17, 12, 15, 224, 16, 12, 15, 224, 15, 12, 15, 224, 14, 12, 15, - 224, 13, 12, 15, 224, 12, 12, 15, 224, 11, 12, 15, 224, 10, 12, 15, 224, - 9, 12, 15, 224, 8, 12, 15, 224, 7, 12, 15, 224, 6, 12, 15, 224, 5, 12, - 15, 224, 4, 12, 15, 224, 3, 12, 15, 224, 2, 12, 15, 224, 1, 12, 15, 224, - 0, 12, 15, 223, 255, 12, 15, 223, 254, 12, 15, 223, 253, 12, 15, 223, - 252, 12, 15, 223, 251, 12, 15, 223, 250, 12, 15, 223, 249, 12, 15, 223, - 248, 12, 15, 223, 247, 12, 15, 223, 246, 12, 15, 223, 245, 12, 15, 223, - 244, 12, 15, 223, 243, 12, 15, 223, 242, 12, 15, 223, 241, 12, 15, 223, - 240, 12, 15, 223, 239, 12, 15, 223, 238, 12, 15, 223, 237, 12, 15, 223, - 236, 12, 15, 223, 235, 12, 15, 223, 234, 12, 15, 223, 233, 12, 15, 223, - 232, 12, 15, 223, 231, 8, 2, 34, 233, 27, 8, 2, 34, 233, 23, 8, 2, 34, - 232, 220, 8, 2, 34, 233, 26, 8, 2, 34, 233, 25, 8, 2, 34, 179, 206, 9, - 200, 43, 8, 2, 34, 201, 118, 250, 249, 2, 34, 216, 187, 212, 253, 250, - 249, 2, 34, 216, 187, 234, 195, 250, 249, 2, 34, 216, 187, 223, 131, 250, - 249, 2, 34, 195, 75, 212, 253, 250, 249, 2, 34, 216, 187, 192, 212, 136, - 1, 191, 251, 4, 229, 119, 136, 209, 62, 222, 181, 195, 166, 136, 34, 192, - 31, 191, 251, 191, 251, 210, 88, 136, 1, 251, 152, 250, 126, 136, 1, 193, - 78, 251, 192, 136, 1, 193, 78, 237, 253, 136, 1, 193, 78, 229, 245, 136, - 1, 193, 78, 222, 106, 136, 1, 193, 78, 220, 27, 136, 1, 193, 78, 53, 216, - 193, 136, 1, 193, 78, 207, 38, 136, 1, 193, 78, 199, 162, 136, 1, 251, - 152, 108, 56, 136, 1, 203, 70, 4, 203, 70, 236, 140, 136, 1, 203, 70, 4, - 202, 175, 236, 140, 136, 1, 203, 70, 4, 238, 17, 23, 203, 70, 236, 140, - 136, 1, 203, 70, 4, 238, 17, 23, 202, 175, 236, 140, 136, 1, 131, 4, 210, - 88, 136, 1, 131, 4, 208, 84, 136, 1, 131, 4, 217, 70, 136, 1, 248, 215, - 4, 238, 16, 136, 1, 231, 39, 4, 238, 16, 136, 1, 237, 254, 4, 238, 16, - 136, 1, 229, 246, 4, 217, 70, 136, 1, 195, 159, 4, 238, 16, 136, 1, 191, - 92, 4, 238, 16, 136, 1, 199, 74, 4, 238, 16, 136, 1, 191, 251, 4, 238, - 16, 136, 1, 53, 222, 107, 4, 238, 16, 136, 1, 222, 107, 4, 238, 16, 136, - 1, 220, 28, 4, 238, 16, 136, 1, 216, 194, 4, 238, 16, 136, 1, 212, 131, - 4, 238, 16, 136, 1, 205, 149, 4, 238, 16, 136, 1, 53, 210, 64, 4, 238, - 16, 136, 1, 210, 64, 4, 238, 16, 136, 1, 197, 164, 4, 238, 16, 136, 1, - 208, 43, 4, 238, 16, 136, 1, 207, 39, 4, 238, 16, 136, 1, 203, 70, 4, - 238, 16, 136, 1, 199, 163, 4, 238, 16, 136, 1, 195, 159, 4, 229, 7, 136, - 1, 248, 215, 4, 207, 161, 136, 1, 222, 107, 4, 207, 161, 136, 1, 210, 64, - 4, 207, 161, 136, 34, 131, 220, 27, 9, 1, 131, 193, 151, 76, 20, 9, 1, - 131, 193, 151, 53, 20, 9, 1, 249, 0, 76, 20, 9, 1, 249, 0, 53, 20, 9, 1, - 249, 0, 89, 20, 9, 1, 249, 0, 216, 217, 20, 9, 1, 210, 42, 76, 20, 9, 1, - 210, 42, 53, 20, 9, 1, 210, 42, 89, 20, 9, 1, 210, 42, 216, 217, 20, 9, - 1, 248, 244, 76, 20, 9, 1, 248, 244, 53, 20, 9, 1, 248, 244, 89, 20, 9, - 1, 248, 244, 216, 217, 20, 9, 1, 197, 123, 76, 20, 9, 1, 197, 123, 53, - 20, 9, 1, 197, 123, 89, 20, 9, 1, 197, 123, 216, 217, 20, 9, 1, 199, 113, - 76, 20, 9, 1, 199, 113, 53, 20, 9, 1, 199, 113, 89, 20, 9, 1, 199, 113, - 216, 217, 20, 9, 1, 197, 125, 76, 20, 9, 1, 197, 125, 53, 20, 9, 1, 197, - 125, 89, 20, 9, 1, 197, 125, 216, 217, 20, 9, 1, 195, 147, 76, 20, 9, 1, - 195, 147, 53, 20, 9, 1, 195, 147, 89, 20, 9, 1, 195, 147, 216, 217, 20, - 9, 1, 210, 40, 76, 20, 9, 1, 210, 40, 53, 20, 9, 1, 210, 40, 89, 20, 9, - 1, 210, 40, 216, 217, 20, 9, 1, 235, 42, 76, 20, 9, 1, 235, 42, 53, 20, - 9, 1, 235, 42, 89, 20, 9, 1, 235, 42, 216, 217, 20, 9, 1, 212, 88, 76, - 20, 9, 1, 212, 88, 53, 20, 9, 1, 212, 88, 89, 20, 9, 1, 212, 88, 216, - 217, 20, 9, 1, 199, 150, 76, 20, 9, 1, 199, 150, 53, 20, 9, 1, 199, 150, - 89, 20, 9, 1, 199, 150, 216, 217, 20, 9, 1, 199, 148, 76, 20, 9, 1, 199, - 148, 53, 20, 9, 1, 199, 148, 89, 20, 9, 1, 199, 148, 216, 217, 20, 9, 1, - 237, 189, 76, 20, 9, 1, 237, 189, 53, 20, 9, 1, 238, 11, 76, 20, 9, 1, - 238, 11, 53, 20, 9, 1, 235, 79, 76, 20, 9, 1, 235, 79, 53, 20, 9, 1, 237, - 187, 76, 20, 9, 1, 237, 187, 53, 20, 9, 1, 223, 4, 76, 20, 9, 1, 223, 4, - 53, 20, 9, 1, 206, 102, 76, 20, 9, 1, 206, 102, 53, 20, 9, 1, 222, 5, 76, - 20, 9, 1, 222, 5, 53, 20, 9, 1, 222, 5, 89, 20, 9, 1, 222, 5, 216, 217, - 20, 9, 1, 231, 228, 76, 20, 9, 1, 231, 228, 53, 20, 9, 1, 231, 228, 89, - 20, 9, 1, 231, 228, 216, 217, 20, 9, 1, 230, 167, 76, 20, 9, 1, 230, 167, - 53, 20, 9, 1, 230, 167, 89, 20, 9, 1, 230, 167, 216, 217, 20, 9, 1, 213, - 248, 76, 20, 9, 1, 213, 248, 53, 20, 9, 1, 213, 248, 89, 20, 9, 1, 213, - 248, 216, 217, 20, 9, 1, 213, 25, 231, 58, 76, 20, 9, 1, 213, 25, 231, - 58, 53, 20, 9, 1, 206, 166, 76, 20, 9, 1, 206, 166, 53, 20, 9, 1, 206, - 166, 89, 20, 9, 1, 206, 166, 216, 217, 20, 9, 1, 229, 211, 4, 99, 93, 76, - 20, 9, 1, 229, 211, 4, 99, 93, 53, 20, 9, 1, 229, 211, 231, 1, 76, 20, 9, - 1, 229, 211, 231, 1, 53, 20, 9, 1, 229, 211, 231, 1, 89, 20, 9, 1, 229, - 211, 231, 1, 216, 217, 20, 9, 1, 229, 211, 236, 171, 76, 20, 9, 1, 229, - 211, 236, 171, 53, 20, 9, 1, 229, 211, 236, 171, 89, 20, 9, 1, 229, 211, - 236, 171, 216, 217, 20, 9, 1, 99, 249, 81, 76, 20, 9, 1, 99, 249, 81, 53, - 20, 9, 1, 99, 249, 81, 4, 230, 58, 93, 76, 20, 9, 1, 99, 249, 81, 4, 230, - 58, 93, 53, 20, 9, 16, 75, 58, 9, 16, 75, 60, 9, 16, 105, 185, 58, 9, 16, - 105, 185, 60, 9, 16, 115, 185, 58, 9, 16, 115, 185, 60, 9, 16, 115, 185, - 209, 58, 235, 119, 58, 9, 16, 115, 185, 209, 58, 235, 119, 60, 9, 16, - 232, 128, 185, 58, 9, 16, 232, 128, 185, 60, 9, 16, 55, 81, 249, 88, 60, - 9, 16, 105, 185, 195, 85, 58, 9, 16, 105, 185, 195, 85, 60, 9, 16, 206, - 188, 9, 16, 2, 199, 220, 58, 9, 16, 2, 199, 220, 60, 9, 16, 193, 151, 58, - 9, 1, 214, 71, 76, 20, 9, 1, 214, 71, 53, 20, 9, 1, 214, 71, 89, 20, 9, - 1, 214, 71, 216, 217, 20, 9, 1, 126, 76, 20, 9, 1, 126, 53, 20, 9, 1, - 211, 152, 76, 20, 9, 1, 211, 152, 53, 20, 9, 1, 191, 226, 76, 20, 9, 1, - 191, 226, 53, 20, 9, 1, 126, 4, 230, 58, 93, 76, 20, 9, 1, 195, 154, 76, - 20, 9, 1, 195, 154, 53, 20, 9, 1, 221, 132, 211, 152, 76, 20, 9, 1, 221, - 132, 211, 152, 53, 20, 9, 1, 221, 132, 191, 226, 76, 20, 9, 1, 221, 132, - 191, 226, 53, 20, 9, 1, 235, 15, 76, 20, 9, 1, 235, 15, 53, 20, 9, 1, - 235, 15, 89, 20, 9, 1, 235, 15, 216, 217, 20, 9, 1, 196, 137, 222, 26, - 221, 132, 131, 217, 100, 89, 20, 9, 1, 196, 137, 222, 26, 221, 132, 131, - 217, 100, 216, 217, 20, 9, 34, 99, 4, 230, 58, 93, 4, 131, 76, 20, 9, 34, - 99, 4, 230, 58, 93, 4, 131, 53, 20, 9, 34, 99, 4, 230, 58, 93, 4, 252, - 26, 76, 20, 9, 34, 99, 4, 230, 58, 93, 4, 252, 26, 53, 20, 9, 34, 99, 4, - 230, 58, 93, 4, 193, 134, 76, 20, 9, 34, 99, 4, 230, 58, 93, 4, 193, 134, - 53, 20, 9, 34, 99, 4, 230, 58, 93, 4, 126, 76, 20, 9, 34, 99, 4, 230, 58, - 93, 4, 126, 53, 20, 9, 34, 99, 4, 230, 58, 93, 4, 211, 152, 76, 20, 9, - 34, 99, 4, 230, 58, 93, 4, 211, 152, 53, 20, 9, 34, 99, 4, 230, 58, 93, - 4, 191, 226, 76, 20, 9, 34, 99, 4, 230, 58, 93, 4, 191, 226, 53, 20, 9, - 34, 99, 4, 230, 58, 93, 4, 235, 15, 76, 20, 9, 34, 99, 4, 230, 58, 93, 4, - 235, 15, 53, 20, 9, 34, 99, 4, 230, 58, 93, 4, 235, 15, 89, 20, 9, 34, - 196, 137, 221, 132, 99, 4, 230, 58, 93, 4, 131, 217, 100, 76, 20, 9, 34, - 196, 137, 221, 132, 99, 4, 230, 58, 93, 4, 131, 217, 100, 53, 20, 9, 34, - 196, 137, 221, 132, 99, 4, 230, 58, 93, 4, 131, 217, 100, 89, 20, 9, 1, - 233, 74, 99, 76, 20, 9, 1, 233, 74, 99, 53, 20, 9, 1, 233, 74, 99, 89, - 20, 9, 1, 233, 74, 99, 216, 217, 20, 9, 34, 99, 4, 230, 58, 93, 4, 223, - 7, 76, 20, 9, 34, 99, 4, 230, 58, 93, 4, 182, 76, 20, 9, 34, 99, 4, 230, - 58, 93, 4, 92, 76, 20, 9, 34, 99, 4, 230, 58, 93, 4, 131, 217, 100, 76, - 20, 9, 34, 99, 4, 230, 58, 93, 4, 99, 76, 20, 9, 34, 248, 246, 4, 223, 7, - 76, 20, 9, 34, 248, 246, 4, 182, 76, 20, 9, 34, 248, 246, 4, 221, 211, - 76, 20, 9, 34, 248, 246, 4, 92, 76, 20, 9, 34, 248, 246, 4, 131, 217, - 100, 76, 20, 9, 34, 248, 246, 4, 99, 76, 20, 9, 34, 199, 115, 4, 223, 7, - 76, 20, 9, 34, 199, 115, 4, 182, 76, 20, 9, 34, 199, 115, 4, 221, 211, - 76, 20, 9, 34, 199, 115, 4, 92, 76, 20, 9, 34, 199, 115, 4, 131, 217, - 100, 76, 20, 9, 34, 199, 115, 4, 99, 76, 20, 9, 34, 199, 30, 4, 223, 7, - 76, 20, 9, 34, 199, 30, 4, 92, 76, 20, 9, 34, 199, 30, 4, 131, 217, 100, - 76, 20, 9, 34, 199, 30, 4, 99, 76, 20, 9, 34, 223, 7, 4, 182, 76, 20, 9, - 34, 223, 7, 4, 92, 76, 20, 9, 34, 182, 4, 223, 7, 76, 20, 9, 34, 182, 4, - 92, 76, 20, 9, 34, 221, 211, 4, 223, 7, 76, 20, 9, 34, 221, 211, 4, 182, - 76, 20, 9, 34, 221, 211, 4, 92, 76, 20, 9, 34, 205, 47, 4, 223, 7, 76, - 20, 9, 34, 205, 47, 4, 182, 76, 20, 9, 34, 205, 47, 4, 221, 211, 76, 20, - 9, 34, 205, 47, 4, 92, 76, 20, 9, 34, 205, 193, 4, 182, 76, 20, 9, 34, - 205, 193, 4, 92, 76, 20, 9, 34, 238, 27, 4, 223, 7, 76, 20, 9, 34, 238, - 27, 4, 182, 76, 20, 9, 34, 238, 27, 4, 221, 211, 76, 20, 9, 34, 238, 27, - 4, 92, 76, 20, 9, 34, 199, 220, 4, 182, 76, 20, 9, 34, 199, 220, 4, 92, - 76, 20, 9, 34, 191, 117, 4, 92, 76, 20, 9, 34, 251, 231, 4, 223, 7, 76, - 20, 9, 34, 251, 231, 4, 92, 76, 20, 9, 34, 231, 87, 4, 223, 7, 76, 20, 9, - 34, 231, 87, 4, 92, 76, 20, 9, 34, 233, 47, 4, 223, 7, 76, 20, 9, 34, - 233, 47, 4, 182, 76, 20, 9, 34, 233, 47, 4, 221, 211, 76, 20, 9, 34, 233, - 47, 4, 92, 76, 20, 9, 34, 233, 47, 4, 131, 217, 100, 76, 20, 9, 34, 233, - 47, 4, 99, 76, 20, 9, 34, 208, 90, 4, 182, 76, 20, 9, 34, 208, 90, 4, 92, - 76, 20, 9, 34, 208, 90, 4, 131, 217, 100, 76, 20, 9, 34, 208, 90, 4, 99, - 76, 20, 9, 34, 222, 107, 4, 131, 76, 20, 9, 34, 222, 107, 4, 223, 7, 76, - 20, 9, 34, 222, 107, 4, 182, 76, 20, 9, 34, 222, 107, 4, 221, 211, 76, - 20, 9, 34, 222, 107, 4, 220, 36, 76, 20, 9, 34, 222, 107, 4, 92, 76, 20, - 9, 34, 222, 107, 4, 131, 217, 100, 76, 20, 9, 34, 222, 107, 4, 99, 76, - 20, 9, 34, 220, 36, 4, 223, 7, 76, 20, 9, 34, 220, 36, 4, 182, 76, 20, 9, - 34, 220, 36, 4, 221, 211, 76, 20, 9, 34, 220, 36, 4, 92, 76, 20, 9, 34, - 220, 36, 4, 131, 217, 100, 76, 20, 9, 34, 220, 36, 4, 99, 76, 20, 9, 34, - 92, 4, 223, 7, 76, 20, 9, 34, 92, 4, 182, 76, 20, 9, 34, 92, 4, 221, 211, - 76, 20, 9, 34, 92, 4, 92, 76, 20, 9, 34, 92, 4, 131, 217, 100, 76, 20, 9, - 34, 92, 4, 99, 76, 20, 9, 34, 213, 25, 4, 223, 7, 76, 20, 9, 34, 213, 25, - 4, 182, 76, 20, 9, 34, 213, 25, 4, 221, 211, 76, 20, 9, 34, 213, 25, 4, - 92, 76, 20, 9, 34, 213, 25, 4, 131, 217, 100, 76, 20, 9, 34, 213, 25, 4, - 99, 76, 20, 9, 34, 229, 211, 4, 223, 7, 76, 20, 9, 34, 229, 211, 4, 92, - 76, 20, 9, 34, 229, 211, 4, 131, 217, 100, 76, 20, 9, 34, 229, 211, 4, - 99, 76, 20, 9, 34, 99, 4, 223, 7, 76, 20, 9, 34, 99, 4, 182, 76, 20, 9, - 34, 99, 4, 221, 211, 76, 20, 9, 34, 99, 4, 92, 76, 20, 9, 34, 99, 4, 131, - 217, 100, 76, 20, 9, 34, 99, 4, 99, 76, 20, 9, 34, 199, 42, 4, 200, 182, - 131, 76, 20, 9, 34, 207, 72, 4, 200, 182, 131, 76, 20, 9, 34, 131, 217, - 100, 4, 200, 182, 131, 76, 20, 9, 34, 203, 156, 4, 237, 244, 76, 20, 9, - 34, 203, 156, 4, 222, 51, 76, 20, 9, 34, 203, 156, 4, 233, 71, 76, 20, 9, - 34, 203, 156, 4, 237, 246, 76, 20, 9, 34, 203, 156, 4, 222, 53, 76, 20, - 9, 34, 203, 156, 4, 200, 182, 131, 76, 20, 9, 34, 99, 4, 230, 58, 93, 4, - 207, 72, 53, 20, 9, 34, 99, 4, 230, 58, 93, 4, 191, 114, 53, 20, 9, 34, - 99, 4, 230, 58, 93, 4, 92, 53, 20, 9, 34, 99, 4, 230, 58, 93, 4, 213, 25, - 53, 20, 9, 34, 99, 4, 230, 58, 93, 4, 131, 217, 100, 53, 20, 9, 34, 99, - 4, 230, 58, 93, 4, 99, 53, 20, 9, 34, 248, 246, 4, 207, 72, 53, 20, 9, - 34, 248, 246, 4, 191, 114, 53, 20, 9, 34, 248, 246, 4, 92, 53, 20, 9, 34, - 248, 246, 4, 213, 25, 53, 20, 9, 34, 248, 246, 4, 131, 217, 100, 53, 20, - 9, 34, 248, 246, 4, 99, 53, 20, 9, 34, 199, 115, 4, 207, 72, 53, 20, 9, - 34, 199, 115, 4, 191, 114, 53, 20, 9, 34, 199, 115, 4, 92, 53, 20, 9, 34, - 199, 115, 4, 213, 25, 53, 20, 9, 34, 199, 115, 4, 131, 217, 100, 53, 20, - 9, 34, 199, 115, 4, 99, 53, 20, 9, 34, 199, 30, 4, 207, 72, 53, 20, 9, - 34, 199, 30, 4, 191, 114, 53, 20, 9, 34, 199, 30, 4, 92, 53, 20, 9, 34, - 199, 30, 4, 213, 25, 53, 20, 9, 34, 199, 30, 4, 131, 217, 100, 53, 20, 9, - 34, 199, 30, 4, 99, 53, 20, 9, 34, 233, 47, 4, 131, 217, 100, 53, 20, 9, - 34, 233, 47, 4, 99, 53, 20, 9, 34, 208, 90, 4, 131, 217, 100, 53, 20, 9, - 34, 208, 90, 4, 99, 53, 20, 9, 34, 222, 107, 4, 131, 53, 20, 9, 34, 222, - 107, 4, 220, 36, 53, 20, 9, 34, 222, 107, 4, 92, 53, 20, 9, 34, 222, 107, - 4, 131, 217, 100, 53, 20, 9, 34, 222, 107, 4, 99, 53, 20, 9, 34, 220, 36, - 4, 92, 53, 20, 9, 34, 220, 36, 4, 131, 217, 100, 53, 20, 9, 34, 220, 36, - 4, 99, 53, 20, 9, 34, 92, 4, 131, 53, 20, 9, 34, 92, 4, 92, 53, 20, 9, - 34, 213, 25, 4, 207, 72, 53, 20, 9, 34, 213, 25, 4, 191, 114, 53, 20, 9, - 34, 213, 25, 4, 92, 53, 20, 9, 34, 213, 25, 4, 213, 25, 53, 20, 9, 34, - 213, 25, 4, 131, 217, 100, 53, 20, 9, 34, 213, 25, 4, 99, 53, 20, 9, 34, - 131, 217, 100, 4, 200, 182, 131, 53, 20, 9, 34, 99, 4, 207, 72, 53, 20, - 9, 34, 99, 4, 191, 114, 53, 20, 9, 34, 99, 4, 92, 53, 20, 9, 34, 99, 4, - 213, 25, 53, 20, 9, 34, 99, 4, 131, 217, 100, 53, 20, 9, 34, 99, 4, 99, - 53, 20, 9, 34, 99, 4, 230, 58, 93, 4, 223, 7, 89, 20, 9, 34, 99, 4, 230, - 58, 93, 4, 182, 89, 20, 9, 34, 99, 4, 230, 58, 93, 4, 221, 211, 89, 20, - 9, 34, 99, 4, 230, 58, 93, 4, 92, 89, 20, 9, 34, 99, 4, 230, 58, 93, 4, - 229, 211, 89, 20, 9, 34, 248, 246, 4, 223, 7, 89, 20, 9, 34, 248, 246, 4, - 182, 89, 20, 9, 34, 248, 246, 4, 221, 211, 89, 20, 9, 34, 248, 246, 4, - 92, 89, 20, 9, 34, 248, 246, 4, 229, 211, 89, 20, 9, 34, 199, 115, 4, - 223, 7, 89, 20, 9, 34, 199, 115, 4, 182, 89, 20, 9, 34, 199, 115, 4, 221, - 211, 89, 20, 9, 34, 199, 115, 4, 92, 89, 20, 9, 34, 199, 115, 4, 229, - 211, 89, 20, 9, 34, 199, 30, 4, 92, 89, 20, 9, 34, 223, 7, 4, 182, 89, - 20, 9, 34, 223, 7, 4, 92, 89, 20, 9, 34, 182, 4, 223, 7, 89, 20, 9, 34, - 182, 4, 92, 89, 20, 9, 34, 221, 211, 4, 223, 7, 89, 20, 9, 34, 221, 211, - 4, 92, 89, 20, 9, 34, 205, 47, 4, 223, 7, 89, 20, 9, 34, 205, 47, 4, 182, - 89, 20, 9, 34, 205, 47, 4, 221, 211, 89, 20, 9, 34, 205, 47, 4, 92, 89, - 20, 9, 34, 205, 193, 4, 182, 89, 20, 9, 34, 205, 193, 4, 221, 211, 89, - 20, 9, 34, 205, 193, 4, 92, 89, 20, 9, 34, 238, 27, 4, 223, 7, 89, 20, 9, - 34, 238, 27, 4, 182, 89, 20, 9, 34, 238, 27, 4, 221, 211, 89, 20, 9, 34, - 238, 27, 4, 92, 89, 20, 9, 34, 199, 220, 4, 182, 89, 20, 9, 34, 191, 117, - 4, 92, 89, 20, 9, 34, 251, 231, 4, 223, 7, 89, 20, 9, 34, 251, 231, 4, - 92, 89, 20, 9, 34, 231, 87, 4, 223, 7, 89, 20, 9, 34, 231, 87, 4, 92, 89, - 20, 9, 34, 233, 47, 4, 223, 7, 89, 20, 9, 34, 233, 47, 4, 182, 89, 20, 9, - 34, 233, 47, 4, 221, 211, 89, 20, 9, 34, 233, 47, 4, 92, 89, 20, 9, 34, - 208, 90, 4, 182, 89, 20, 9, 34, 208, 90, 4, 92, 89, 20, 9, 34, 222, 107, - 4, 223, 7, 89, 20, 9, 34, 222, 107, 4, 182, 89, 20, 9, 34, 222, 107, 4, - 221, 211, 89, 20, 9, 34, 222, 107, 4, 220, 36, 89, 20, 9, 34, 222, 107, - 4, 92, 89, 20, 9, 34, 220, 36, 4, 223, 7, 89, 20, 9, 34, 220, 36, 4, 182, - 89, 20, 9, 34, 220, 36, 4, 221, 211, 89, 20, 9, 34, 220, 36, 4, 92, 89, - 20, 9, 34, 220, 36, 4, 229, 211, 89, 20, 9, 34, 92, 4, 223, 7, 89, 20, 9, - 34, 92, 4, 182, 89, 20, 9, 34, 92, 4, 221, 211, 89, 20, 9, 34, 92, 4, 92, - 89, 20, 9, 34, 213, 25, 4, 223, 7, 89, 20, 9, 34, 213, 25, 4, 182, 89, - 20, 9, 34, 213, 25, 4, 221, 211, 89, 20, 9, 34, 213, 25, 4, 92, 89, 20, - 9, 34, 213, 25, 4, 229, 211, 89, 20, 9, 34, 229, 211, 4, 223, 7, 89, 20, - 9, 34, 229, 211, 4, 92, 89, 20, 9, 34, 229, 211, 4, 200, 182, 131, 89, - 20, 9, 34, 99, 4, 223, 7, 89, 20, 9, 34, 99, 4, 182, 89, 20, 9, 34, 99, - 4, 221, 211, 89, 20, 9, 34, 99, 4, 92, 89, 20, 9, 34, 99, 4, 229, 211, - 89, 20, 9, 34, 99, 4, 230, 58, 93, 4, 92, 216, 217, 20, 9, 34, 99, 4, - 230, 58, 93, 4, 229, 211, 216, 217, 20, 9, 34, 248, 246, 4, 92, 216, 217, - 20, 9, 34, 248, 246, 4, 229, 211, 216, 217, 20, 9, 34, 199, 115, 4, 92, - 216, 217, 20, 9, 34, 199, 115, 4, 229, 211, 216, 217, 20, 9, 34, 199, 30, - 4, 92, 216, 217, 20, 9, 34, 199, 30, 4, 229, 211, 216, 217, 20, 9, 34, - 205, 47, 4, 92, 216, 217, 20, 9, 34, 205, 47, 4, 229, 211, 216, 217, 20, - 9, 34, 203, 110, 4, 92, 216, 217, 20, 9, 34, 203, 110, 4, 229, 211, 216, - 217, 20, 9, 34, 222, 107, 4, 220, 36, 216, 217, 20, 9, 34, 222, 107, 4, - 92, 216, 217, 20, 9, 34, 220, 36, 4, 92, 216, 217, 20, 9, 34, 213, 25, 4, - 92, 216, 217, 20, 9, 34, 213, 25, 4, 229, 211, 216, 217, 20, 9, 34, 99, - 4, 92, 216, 217, 20, 9, 34, 99, 4, 229, 211, 216, 217, 20, 9, 34, 203, - 156, 4, 233, 71, 216, 217, 20, 9, 34, 203, 156, 4, 237, 246, 216, 217, - 20, 9, 34, 203, 156, 4, 222, 53, 216, 217, 20, 9, 34, 199, 220, 4, 131, - 217, 100, 76, 20, 9, 34, 199, 220, 4, 99, 76, 20, 9, 34, 251, 231, 4, - 131, 217, 100, 76, 20, 9, 34, 251, 231, 4, 99, 76, 20, 9, 34, 231, 87, 4, - 131, 217, 100, 76, 20, 9, 34, 231, 87, 4, 99, 76, 20, 9, 34, 205, 47, 4, - 131, 217, 100, 76, 20, 9, 34, 205, 47, 4, 99, 76, 20, 9, 34, 203, 110, 4, - 131, 217, 100, 76, 20, 9, 34, 203, 110, 4, 99, 76, 20, 9, 34, 182, 4, - 131, 217, 100, 76, 20, 9, 34, 182, 4, 99, 76, 20, 9, 34, 223, 7, 4, 131, - 217, 100, 76, 20, 9, 34, 223, 7, 4, 99, 76, 20, 9, 34, 221, 211, 4, 131, - 217, 100, 76, 20, 9, 34, 221, 211, 4, 99, 76, 20, 9, 34, 205, 193, 4, - 131, 217, 100, 76, 20, 9, 34, 205, 193, 4, 99, 76, 20, 9, 34, 238, 27, 4, - 131, 217, 100, 76, 20, 9, 34, 238, 27, 4, 99, 76, 20, 9, 34, 203, 110, 4, - 223, 7, 76, 20, 9, 34, 203, 110, 4, 182, 76, 20, 9, 34, 203, 110, 4, 221, - 211, 76, 20, 9, 34, 203, 110, 4, 92, 76, 20, 9, 34, 203, 110, 4, 207, 72, - 76, 20, 9, 34, 205, 47, 4, 207, 72, 76, 20, 9, 34, 205, 193, 4, 207, 72, - 76, 20, 9, 34, 238, 27, 4, 207, 72, 76, 20, 9, 34, 199, 220, 4, 131, 217, - 100, 53, 20, 9, 34, 199, 220, 4, 99, 53, 20, 9, 34, 251, 231, 4, 131, - 217, 100, 53, 20, 9, 34, 251, 231, 4, 99, 53, 20, 9, 34, 231, 87, 4, 131, - 217, 100, 53, 20, 9, 34, 231, 87, 4, 99, 53, 20, 9, 34, 205, 47, 4, 131, - 217, 100, 53, 20, 9, 34, 205, 47, 4, 99, 53, 20, 9, 34, 203, 110, 4, 131, - 217, 100, 53, 20, 9, 34, 203, 110, 4, 99, 53, 20, 9, 34, 182, 4, 131, - 217, 100, 53, 20, 9, 34, 182, 4, 99, 53, 20, 9, 34, 223, 7, 4, 131, 217, - 100, 53, 20, 9, 34, 223, 7, 4, 99, 53, 20, 9, 34, 221, 211, 4, 131, 217, - 100, 53, 20, 9, 34, 221, 211, 4, 99, 53, 20, 9, 34, 205, 193, 4, 131, - 217, 100, 53, 20, 9, 34, 205, 193, 4, 99, 53, 20, 9, 34, 238, 27, 4, 131, - 217, 100, 53, 20, 9, 34, 238, 27, 4, 99, 53, 20, 9, 34, 203, 110, 4, 223, - 7, 53, 20, 9, 34, 203, 110, 4, 182, 53, 20, 9, 34, 203, 110, 4, 221, 211, - 53, 20, 9, 34, 203, 110, 4, 92, 53, 20, 9, 34, 203, 110, 4, 207, 72, 53, - 20, 9, 34, 205, 47, 4, 207, 72, 53, 20, 9, 34, 205, 193, 4, 207, 72, 53, - 20, 9, 34, 238, 27, 4, 207, 72, 53, 20, 9, 34, 203, 110, 4, 223, 7, 89, - 20, 9, 34, 203, 110, 4, 182, 89, 20, 9, 34, 203, 110, 4, 221, 211, 89, - 20, 9, 34, 203, 110, 4, 92, 89, 20, 9, 34, 205, 47, 4, 229, 211, 89, 20, - 9, 34, 203, 110, 4, 229, 211, 89, 20, 9, 34, 199, 220, 4, 92, 89, 20, 9, - 34, 205, 47, 4, 223, 7, 216, 217, 20, 9, 34, 205, 47, 4, 182, 216, 217, - 20, 9, 34, 205, 47, 4, 221, 211, 216, 217, 20, 9, 34, 203, 110, 4, 223, - 7, 216, 217, 20, 9, 34, 203, 110, 4, 182, 216, 217, 20, 9, 34, 203, 110, - 4, 221, 211, 216, 217, 20, 9, 34, 199, 220, 4, 92, 216, 217, 20, 9, 34, - 191, 117, 4, 92, 216, 217, 20, 9, 34, 131, 4, 233, 69, 53, 20, 9, 34, - 131, 4, 233, 69, 76, 20, 211, 40, 45, 210, 113, 211, 40, 50, 210, 113, 9, - 34, 207, 159, 251, 173, 9, 34, 207, 167, 251, 172, 251, 107, 9, 34, 207, - 167, 251, 172, 251, 106, 9, 34, 207, 167, 251, 172, 251, 104, 9, 34, 207, - 167, 251, 172, 251, 103, 9, 34, 207, 167, 251, 172, 251, 102, 9, 34, 205, - 162, 251, 197, 193, 184, 9, 34, 251, 197, 250, 217, 9, 34, 251, 196, 250, - 217, 9, 34, 251, 195, 250, 217, 9, 34, 251, 197, 250, 216, 193, 154, 9, - 34, 208, 17, 202, 140, 9, 34, 205, 160, 251, 197, 193, 180, 193, 183, 9, - 34, 251, 200, 250, 217, 9, 34, 199, 235, 193, 182, 9, 34, 207, 158, 251, - 173, 9, 34, 199, 115, 4, 223, 7, 4, 92, 89, 20, 9, 34, 199, 115, 4, 182, - 4, 223, 7, 53, 20, 9, 34, 199, 115, 4, 182, 4, 223, 7, 89, 20, 9, 34, - 199, 115, 4, 182, 4, 92, 89, 20, 9, 34, 199, 115, 4, 221, 211, 4, 92, 89, - 20, 9, 34, 199, 115, 4, 92, 4, 223, 7, 89, 20, 9, 34, 199, 115, 4, 92, 4, - 182, 89, 20, 9, 34, 199, 115, 4, 92, 4, 221, 211, 89, 20, 9, 34, 223, 7, - 4, 92, 4, 182, 53, 20, 9, 34, 223, 7, 4, 92, 4, 182, 89, 20, 9, 34, 182, - 4, 92, 4, 99, 53, 20, 9, 34, 182, 4, 92, 4, 131, 217, 100, 53, 20, 9, 34, - 205, 47, 4, 182, 4, 223, 7, 89, 20, 9, 34, 205, 47, 4, 223, 7, 4, 182, - 89, 20, 9, 34, 205, 47, 4, 223, 7, 4, 131, 217, 100, 53, 20, 9, 34, 205, - 47, 4, 92, 4, 182, 53, 20, 9, 34, 205, 47, 4, 92, 4, 182, 89, 20, 9, 34, - 205, 47, 4, 92, 4, 223, 7, 89, 20, 9, 34, 205, 47, 4, 92, 4, 92, 53, 20, - 9, 34, 205, 47, 4, 92, 4, 92, 89, 20, 9, 34, 205, 193, 4, 182, 4, 182, - 53, 20, 9, 34, 205, 193, 4, 182, 4, 182, 89, 20, 9, 34, 205, 193, 4, 92, - 4, 92, 53, 20, 9, 34, 203, 110, 4, 182, 4, 92, 53, 20, 9, 34, 203, 110, - 4, 182, 4, 92, 89, 20, 9, 34, 203, 110, 4, 223, 7, 4, 99, 53, 20, 9, 34, - 203, 110, 4, 92, 4, 221, 211, 53, 20, 9, 34, 203, 110, 4, 92, 4, 221, - 211, 89, 20, 9, 34, 203, 110, 4, 92, 4, 92, 53, 20, 9, 34, 203, 110, 4, - 92, 4, 92, 89, 20, 9, 34, 238, 27, 4, 182, 4, 131, 217, 100, 53, 20, 9, - 34, 238, 27, 4, 221, 211, 4, 92, 53, 20, 9, 34, 238, 27, 4, 221, 211, 4, - 92, 89, 20, 9, 34, 199, 220, 4, 92, 4, 182, 53, 20, 9, 34, 199, 220, 4, - 92, 4, 182, 89, 20, 9, 34, 199, 220, 4, 92, 4, 92, 89, 20, 9, 34, 199, - 220, 4, 92, 4, 99, 53, 20, 9, 34, 251, 231, 4, 223, 7, 4, 92, 53, 20, 9, - 34, 251, 231, 4, 92, 4, 92, 53, 20, 9, 34, 251, 231, 4, 92, 4, 92, 89, - 20, 9, 34, 251, 231, 4, 92, 4, 131, 217, 100, 53, 20, 9, 34, 231, 87, 4, - 92, 4, 92, 53, 20, 9, 34, 231, 87, 4, 92, 4, 99, 53, 20, 9, 34, 231, 87, - 4, 92, 4, 131, 217, 100, 53, 20, 9, 34, 233, 47, 4, 221, 211, 4, 92, 53, - 20, 9, 34, 233, 47, 4, 221, 211, 4, 92, 89, 20, 9, 34, 208, 90, 4, 92, 4, - 182, 53, 20, 9, 34, 208, 90, 4, 92, 4, 92, 53, 20, 9, 34, 220, 36, 4, - 182, 4, 92, 53, 20, 9, 34, 220, 36, 4, 182, 4, 99, 53, 20, 9, 34, 220, - 36, 4, 182, 4, 131, 217, 100, 53, 20, 9, 34, 220, 36, 4, 223, 7, 4, 223, - 7, 89, 20, 9, 34, 220, 36, 4, 223, 7, 4, 223, 7, 53, 20, 9, 34, 220, 36, - 4, 221, 211, 4, 92, 53, 20, 9, 34, 220, 36, 4, 221, 211, 4, 92, 89, 20, - 9, 34, 220, 36, 4, 92, 4, 182, 53, 20, 9, 34, 220, 36, 4, 92, 4, 182, 89, - 20, 9, 34, 92, 4, 182, 4, 223, 7, 89, 20, 9, 34, 92, 4, 182, 4, 92, 89, - 20, 9, 34, 92, 4, 182, 4, 99, 53, 20, 9, 34, 92, 4, 223, 7, 4, 182, 89, - 20, 9, 34, 92, 4, 223, 7, 4, 92, 89, 20, 9, 34, 92, 4, 221, 211, 4, 223, - 7, 89, 20, 9, 34, 92, 4, 221, 211, 4, 92, 89, 20, 9, 34, 92, 4, 223, 7, - 4, 221, 211, 89, 20, 9, 34, 229, 211, 4, 92, 4, 223, 7, 89, 20, 9, 34, - 229, 211, 4, 92, 4, 92, 89, 20, 9, 34, 213, 25, 4, 182, 4, 92, 89, 20, 9, - 34, 213, 25, 4, 182, 4, 131, 217, 100, 53, 20, 9, 34, 213, 25, 4, 223, 7, - 4, 92, 53, 20, 9, 34, 213, 25, 4, 223, 7, 4, 92, 89, 20, 9, 34, 213, 25, - 4, 223, 7, 4, 131, 217, 100, 53, 20, 9, 34, 213, 25, 4, 92, 4, 99, 53, - 20, 9, 34, 213, 25, 4, 92, 4, 131, 217, 100, 53, 20, 9, 34, 99, 4, 92, 4, - 92, 53, 20, 9, 34, 99, 4, 92, 4, 92, 89, 20, 9, 34, 248, 246, 4, 221, - 211, 4, 99, 53, 20, 9, 34, 199, 115, 4, 223, 7, 4, 99, 53, 20, 9, 34, - 199, 115, 4, 223, 7, 4, 131, 217, 100, 53, 20, 9, 34, 199, 115, 4, 221, - 211, 4, 99, 53, 20, 9, 34, 199, 115, 4, 221, 211, 4, 131, 217, 100, 53, - 20, 9, 34, 199, 115, 4, 92, 4, 99, 53, 20, 9, 34, 199, 115, 4, 92, 4, - 131, 217, 100, 53, 20, 9, 34, 223, 7, 4, 92, 4, 99, 53, 20, 9, 34, 223, - 7, 4, 182, 4, 131, 217, 100, 53, 20, 9, 34, 223, 7, 4, 92, 4, 131, 217, - 100, 53, 20, 9, 34, 205, 47, 4, 221, 211, 4, 131, 217, 100, 53, 20, 9, - 34, 205, 193, 4, 182, 4, 99, 53, 20, 9, 34, 203, 110, 4, 182, 4, 99, 53, - 20, 9, 34, 238, 27, 4, 182, 4, 99, 53, 20, 9, 34, 220, 36, 4, 223, 7, 4, - 99, 53, 20, 9, 34, 220, 36, 4, 92, 4, 99, 53, 20, 9, 34, 99, 4, 182, 4, - 99, 53, 20, 9, 34, 99, 4, 223, 7, 4, 99, 53, 20, 9, 34, 99, 4, 92, 4, 99, - 53, 20, 9, 34, 92, 4, 92, 4, 99, 53, 20, 9, 34, 208, 90, 4, 92, 4, 99, - 53, 20, 9, 34, 213, 25, 4, 182, 4, 99, 53, 20, 9, 34, 208, 90, 4, 92, 4, - 182, 89, 20, 9, 34, 220, 36, 4, 182, 4, 92, 89, 20, 9, 34, 251, 231, 4, - 92, 4, 99, 53, 20, 9, 34, 222, 107, 4, 92, 4, 99, 53, 20, 9, 34, 213, 25, - 4, 223, 7, 4, 182, 89, 20, 9, 34, 92, 4, 221, 211, 4, 99, 53, 20, 9, 34, - 220, 36, 4, 223, 7, 4, 92, 89, 20, 9, 34, 222, 107, 4, 92, 4, 92, 53, 20, - 9, 34, 220, 36, 4, 223, 7, 4, 92, 53, 20, 9, 34, 213, 25, 4, 223, 7, 4, - 182, 53, 20, 9, 34, 223, 7, 4, 182, 4, 99, 53, 20, 9, 34, 182, 4, 223, 7, - 4, 99, 53, 20, 9, 34, 92, 4, 223, 7, 4, 99, 53, 20, 9, 34, 233, 47, 4, - 92, 4, 99, 53, 20, 9, 34, 248, 246, 4, 182, 4, 99, 53, 20, 9, 34, 222, - 107, 4, 92, 4, 92, 89, 20, 9, 34, 251, 231, 4, 223, 7, 4, 92, 89, 20, 9, - 34, 205, 193, 4, 92, 4, 92, 89, 20, 9, 34, 205, 47, 4, 221, 211, 4, 99, - 53, 20, 9, 34, 213, 25, 4, 223, 7, 4, 99, 53, 20, 9, 34, 205, 166, 251, - 194, 9, 34, 205, 163, 196, 40, 250, 220, 221, 33, 201, 64, 3, 76, 20, 9, - 34, 208, 86, 196, 40, 250, 220, 221, 33, 201, 64, 3, 76, 20, 9, 34, 251, - 171, 76, 20, 9, 34, 251, 213, 76, 20, 9, 34, 215, 235, 76, 20, 9, 34, - 205, 164, 76, 20, 9, 34, 207, 132, 76, 20, 9, 34, 251, 199, 76, 20, 9, - 34, 193, 153, 76, 20, 9, 34, 205, 163, 76, 20, 9, 34, 205, 161, 251, 199, - 193, 152, 9, 34, 223, 22, 206, 249, 56, 9, 34, 248, 151, 251, 31, 251, - 32, 9, 34, 200, 242, 193, 191, 199, 244, 9, 34, 250, 121, 193, 191, 223, - 23, 67, 205, 33, 67, 204, 178, 67, 204, 110, 67, 204, 99, 67, 204, 88, - 67, 204, 77, 67, 204, 66, 67, 204, 55, 67, 204, 44, 67, 205, 32, 67, 205, - 21, 67, 205, 10, 67, 204, 255, 67, 204, 244, 67, 204, 233, 67, 204, 222, - 208, 221, 232, 146, 40, 81, 242, 74, 208, 221, 232, 146, 40, 81, 154, - 242, 74, 208, 221, 232, 146, 40, 81, 154, 232, 80, 201, 63, 208, 221, - 232, 146, 40, 81, 242, 83, 208, 221, 232, 146, 40, 81, 204, 25, 208, 221, - 232, 146, 40, 81, 233, 216, 77, 208, 221, 232, 146, 40, 81, 208, 13, 77, - 208, 221, 232, 146, 40, 81, 45, 63, 219, 187, 248, 53, 208, 221, 232, - 146, 40, 81, 50, 63, 219, 187, 248, 49, 208, 221, 232, 146, 40, 81, 228, - 241, 234, 120, 33, 34, 45, 230, 70, 33, 34, 50, 230, 70, 33, 55, 198, - 153, 45, 230, 70, 33, 55, 198, 153, 50, 230, 70, 33, 217, 147, 45, 230, - 70, 33, 217, 147, 50, 230, 70, 33, 239, 44, 217, 146, 33, 34, 45, 132, - 60, 33, 34, 50, 132, 60, 33, 198, 153, 45, 132, 60, 33, 198, 153, 50, - 132, 60, 33, 217, 147, 45, 132, 60, 33, 217, 147, 50, 132, 60, 33, 239, - 44, 217, 147, 60, 33, 38, 198, 123, 45, 230, 70, 33, 38, 198, 123, 50, - 230, 70, 208, 221, 232, 146, 40, 81, 105, 75, 219, 236, 208, 221, 232, - 146, 40, 81, 234, 115, 237, 215, 208, 221, 232, 146, 40, 81, 234, 104, - 237, 215, 208, 221, 232, 146, 40, 81, 130, 219, 112, 208, 221, 232, 146, - 40, 81, 193, 135, 130, 219, 112, 208, 221, 232, 146, 40, 81, 45, 210, - 113, 208, 221, 232, 146, 40, 81, 50, 210, 113, 208, 221, 232, 146, 40, - 81, 45, 238, 171, 248, 53, 208, 221, 232, 146, 40, 81, 50, 238, 171, 248, - 53, 208, 221, 232, 146, 40, 81, 45, 198, 42, 203, 103, 248, 53, 208, 221, - 232, 146, 40, 81, 50, 198, 42, 203, 103, 248, 53, 208, 221, 232, 146, 40, - 81, 45, 62, 219, 187, 248, 53, 208, 221, 232, 146, 40, 81, 50, 62, 219, - 187, 248, 53, 208, 221, 232, 146, 40, 81, 45, 55, 251, 116, 248, 53, 208, - 221, 232, 146, 40, 81, 50, 55, 251, 116, 248, 53, 208, 221, 232, 146, 40, - 81, 45, 251, 116, 248, 53, 208, 221, 232, 146, 40, 81, 50, 251, 116, 248, - 53, 208, 221, 232, 146, 40, 81, 45, 239, 2, 248, 53, 208, 221, 232, 146, - 40, 81, 50, 239, 2, 248, 53, 208, 221, 232, 146, 40, 81, 45, 63, 239, 2, - 248, 53, 208, 221, 232, 146, 40, 81, 50, 63, 239, 2, 248, 53, 204, 0, - 236, 140, 63, 204, 0, 236, 140, 208, 221, 232, 146, 40, 81, 45, 51, 248, - 53, 208, 221, 232, 146, 40, 81, 50, 51, 248, 53, 237, 214, 210, 254, 247, - 18, 210, 254, 193, 135, 210, 254, 55, 193, 135, 210, 254, 237, 214, 130, - 219, 112, 247, 18, 130, 219, 112, 193, 135, 130, 219, 112, 2, 242, 74, 2, - 154, 242, 74, 2, 232, 80, 201, 63, 2, 204, 25, 2, 242, 83, 2, 208, 13, - 77, 2, 233, 216, 77, 2, 234, 115, 237, 215, 2, 45, 210, 113, 2, 50, 210, - 113, 2, 45, 238, 171, 248, 53, 2, 50, 238, 171, 248, 53, 2, 45, 198, 42, - 203, 103, 248, 53, 2, 50, 198, 42, 203, 103, 248, 53, 2, 31, 56, 2, 251, - 137, 2, 250, 193, 2, 108, 56, 2, 228, 87, 2, 219, 180, 56, 2, 230, 204, - 56, 2, 234, 43, 56, 2, 207, 19, 202, 23, 2, 236, 155, 56, 2, 210, 13, 56, - 2, 242, 72, 250, 182, 9, 233, 69, 76, 20, 9, 199, 169, 4, 233, 69, 58, 9, - 237, 244, 76, 20, 9, 199, 216, 232, 117, 9, 222, 51, 76, 20, 9, 233, 71, - 76, 20, 9, 233, 71, 216, 217, 20, 9, 237, 246, 76, 20, 9, 237, 246, 216, - 217, 20, 9, 222, 53, 76, 20, 9, 222, 53, 216, 217, 20, 9, 203, 156, 76, - 20, 9, 203, 156, 216, 217, 20, 9, 200, 207, 76, 20, 9, 200, 207, 216, - 217, 20, 9, 1, 230, 58, 76, 20, 9, 1, 131, 4, 217, 142, 93, 76, 20, 9, 1, - 131, 4, 217, 142, 93, 53, 20, 9, 1, 131, 4, 230, 58, 93, 76, 20, 9, 1, - 131, 4, 230, 58, 93, 53, 20, 9, 1, 193, 134, 4, 230, 58, 93, 76, 20, 9, - 1, 193, 134, 4, 230, 58, 93, 53, 20, 9, 1, 131, 4, 230, 58, 248, 233, 76, - 20, 9, 1, 131, 4, 230, 58, 248, 233, 53, 20, 9, 1, 99, 4, 230, 58, 93, - 76, 20, 9, 1, 99, 4, 230, 58, 93, 53, 20, 9, 1, 99, 4, 230, 58, 93, 89, - 20, 9, 1, 99, 4, 230, 58, 93, 216, 217, 20, 9, 1, 131, 76, 20, 9, 1, 131, - 53, 20, 9, 1, 248, 246, 76, 20, 9, 1, 248, 246, 53, 20, 9, 1, 248, 246, - 89, 20, 9, 1, 248, 246, 216, 217, 20, 9, 1, 199, 115, 217, 63, 76, 20, 9, - 1, 199, 115, 217, 63, 53, 20, 9, 1, 199, 115, 76, 20, 9, 1, 199, 115, 53, - 20, 9, 1, 199, 115, 89, 20, 9, 1, 199, 115, 216, 217, 20, 9, 1, 199, 30, - 76, 20, 9, 1, 199, 30, 53, 20, 9, 1, 199, 30, 89, 20, 9, 1, 199, 30, 216, - 217, 20, 9, 1, 223, 7, 76, 20, 9, 1, 223, 7, 53, 20, 9, 1, 223, 7, 89, - 20, 9, 1, 223, 7, 216, 217, 20, 9, 1, 182, 76, 20, 9, 1, 182, 53, 20, 9, - 1, 182, 89, 20, 9, 1, 182, 216, 217, 20, 9, 1, 221, 211, 76, 20, 9, 1, - 221, 211, 53, 20, 9, 1, 221, 211, 89, 20, 9, 1, 221, 211, 216, 217, 20, - 9, 1, 238, 4, 76, 20, 9, 1, 238, 4, 53, 20, 9, 1, 199, 42, 76, 20, 9, 1, - 199, 42, 53, 20, 9, 1, 207, 72, 76, 20, 9, 1, 207, 72, 53, 20, 9, 1, 191, - 114, 76, 20, 9, 1, 191, 114, 53, 20, 9, 1, 205, 47, 76, 20, 9, 1, 205, - 47, 53, 20, 9, 1, 205, 47, 89, 20, 9, 1, 205, 47, 216, 217, 20, 9, 1, - 203, 110, 76, 20, 9, 1, 203, 110, 53, 20, 9, 1, 203, 110, 89, 20, 9, 1, - 203, 110, 216, 217, 20, 9, 1, 205, 193, 76, 20, 9, 1, 205, 193, 53, 20, - 9, 1, 205, 193, 89, 20, 9, 1, 205, 193, 216, 217, 20, 9, 1, 238, 27, 76, - 20, 9, 1, 238, 27, 53, 20, 9, 1, 238, 27, 89, 20, 9, 1, 238, 27, 216, - 217, 20, 9, 1, 199, 220, 76, 20, 9, 1, 199, 220, 53, 20, 9, 1, 199, 220, - 89, 20, 9, 1, 199, 220, 216, 217, 20, 9, 1, 191, 117, 76, 20, 9, 1, 191, - 117, 53, 20, 9, 1, 191, 117, 89, 20, 9, 1, 191, 117, 216, 217, 20, 9, 1, - 251, 231, 76, 20, 9, 1, 251, 231, 53, 20, 9, 1, 251, 231, 89, 20, 9, 1, - 251, 231, 216, 217, 20, 9, 1, 231, 87, 76, 20, 9, 1, 231, 87, 53, 20, 9, - 1, 231, 87, 89, 20, 9, 1, 231, 87, 216, 217, 20, 9, 1, 233, 47, 76, 20, - 9, 1, 233, 47, 53, 20, 9, 1, 233, 47, 89, 20, 9, 1, 233, 47, 216, 217, - 20, 9, 1, 208, 90, 76, 20, 9, 1, 208, 90, 53, 20, 9, 1, 208, 90, 89, 20, - 9, 1, 208, 90, 216, 217, 20, 9, 1, 222, 107, 76, 20, 9, 1, 222, 107, 53, - 20, 9, 1, 222, 107, 89, 20, 9, 1, 222, 107, 216, 217, 20, 9, 1, 220, 36, - 76, 20, 9, 1, 220, 36, 53, 20, 9, 1, 220, 36, 89, 20, 9, 1, 220, 36, 216, - 217, 20, 9, 1, 92, 76, 20, 9, 1, 92, 53, 20, 9, 1, 92, 89, 20, 9, 1, 92, - 216, 217, 20, 9, 1, 213, 25, 76, 20, 9, 1, 213, 25, 53, 20, 9, 1, 213, - 25, 89, 20, 9, 1, 213, 25, 216, 217, 20, 9, 1, 229, 211, 76, 20, 9, 1, - 229, 211, 53, 20, 9, 1, 229, 211, 89, 20, 9, 1, 229, 211, 216, 217, 20, - 9, 1, 193, 134, 76, 20, 9, 1, 193, 134, 53, 20, 9, 1, 131, 217, 100, 76, - 20, 9, 1, 131, 217, 100, 53, 20, 9, 1, 99, 76, 20, 9, 1, 99, 53, 20, 9, - 1, 99, 89, 20, 9, 1, 99, 216, 217, 20, 9, 34, 220, 36, 4, 131, 4, 217, - 142, 93, 76, 20, 9, 34, 220, 36, 4, 131, 4, 217, 142, 93, 53, 20, 9, 34, - 220, 36, 4, 131, 4, 230, 58, 93, 76, 20, 9, 34, 220, 36, 4, 131, 4, 230, - 58, 93, 53, 20, 9, 34, 220, 36, 4, 131, 4, 230, 58, 248, 233, 76, 20, 9, - 34, 220, 36, 4, 131, 4, 230, 58, 248, 233, 53, 20, 9, 34, 220, 36, 4, - 131, 76, 20, 9, 34, 220, 36, 4, 131, 53, 20, 191, 78, 193, 75, 213, 37, - 201, 247, 232, 78, 233, 216, 77, 232, 78, 207, 252, 77, 232, 78, 31, 56, - 232, 78, 236, 155, 56, 232, 78, 210, 13, 56, 232, 78, 251, 137, 232, 78, - 251, 49, 232, 78, 45, 210, 113, 232, 78, 50, 210, 113, 232, 78, 250, 193, - 232, 78, 108, 56, 232, 78, 242, 74, 232, 78, 228, 87, 232, 78, 232, 80, - 201, 63, 232, 78, 202, 23, 232, 78, 17, 191, 77, 232, 78, 17, 107, 232, - 78, 17, 109, 232, 78, 17, 138, 232, 78, 17, 134, 232, 78, 17, 149, 232, - 78, 17, 169, 232, 78, 17, 175, 232, 78, 17, 171, 232, 78, 17, 178, 232, - 78, 242, 83, 232, 78, 204, 25, 232, 78, 219, 180, 56, 232, 78, 234, 43, - 56, 232, 78, 230, 204, 56, 232, 78, 208, 13, 77, 232, 78, 242, 72, 250, - 182, 232, 78, 8, 6, 1, 65, 232, 78, 8, 6, 1, 250, 120, 232, 78, 8, 6, 1, - 247, 193, 232, 78, 8, 6, 1, 238, 127, 232, 78, 8, 6, 1, 71, 232, 78, 8, - 6, 1, 233, 175, 232, 78, 8, 6, 1, 232, 51, 232, 78, 8, 6, 1, 230, 116, - 232, 78, 8, 6, 1, 68, 232, 78, 8, 6, 1, 223, 35, 232, 78, 8, 6, 1, 222, - 152, 232, 78, 8, 6, 1, 172, 232, 78, 8, 6, 1, 218, 168, 232, 78, 8, 6, 1, - 215, 61, 232, 78, 8, 6, 1, 74, 232, 78, 8, 6, 1, 210, 236, 232, 78, 8, 6, - 1, 208, 104, 232, 78, 8, 6, 1, 146, 232, 78, 8, 6, 1, 206, 8, 232, 78, 8, - 6, 1, 200, 43, 232, 78, 8, 6, 1, 66, 232, 78, 8, 6, 1, 196, 12, 232, 78, - 8, 6, 1, 193, 224, 232, 78, 8, 6, 1, 192, 235, 232, 78, 8, 6, 1, 192, - 159, 232, 78, 8, 6, 1, 191, 166, 232, 78, 45, 51, 248, 53, 232, 78, 207, - 19, 202, 23, 232, 78, 50, 51, 248, 53, 232, 78, 243, 2, 252, 60, 232, 78, - 130, 219, 112, 232, 78, 230, 211, 252, 60, 232, 78, 8, 2, 1, 65, 232, 78, - 8, 2, 1, 250, 120, 232, 78, 8, 2, 1, 247, 193, 232, 78, 8, 2, 1, 238, - 127, 232, 78, 8, 2, 1, 71, 232, 78, 8, 2, 1, 233, 175, 232, 78, 8, 2, 1, - 232, 51, 232, 78, 8, 2, 1, 230, 116, 232, 78, 8, 2, 1, 68, 232, 78, 8, 2, - 1, 223, 35, 232, 78, 8, 2, 1, 222, 152, 232, 78, 8, 2, 1, 172, 232, 78, - 8, 2, 1, 218, 168, 232, 78, 8, 2, 1, 215, 61, 232, 78, 8, 2, 1, 74, 232, - 78, 8, 2, 1, 210, 236, 232, 78, 8, 2, 1, 208, 104, 232, 78, 8, 2, 1, 146, - 232, 78, 8, 2, 1, 206, 8, 232, 78, 8, 2, 1, 200, 43, 232, 78, 8, 2, 1, - 66, 232, 78, 8, 2, 1, 196, 12, 232, 78, 8, 2, 1, 193, 224, 232, 78, 8, 2, - 1, 192, 235, 232, 78, 8, 2, 1, 192, 159, 232, 78, 8, 2, 1, 191, 166, 232, - 78, 45, 238, 171, 248, 53, 232, 78, 81, 219, 112, 232, 78, 50, 238, 171, - 248, 53, 232, 78, 198, 152, 232, 78, 45, 63, 210, 113, 232, 78, 50, 63, - 210, 113, 150, 154, 232, 80, 201, 63, 150, 45, 239, 2, 248, 53, 150, 50, - 239, 2, 248, 53, 150, 154, 242, 74, 150, 72, 82, 236, 140, 150, 72, 1, - 193, 48, 150, 72, 1, 2, 65, 150, 72, 1, 2, 68, 150, 72, 1, 2, 66, 150, - 72, 1, 2, 71, 150, 72, 1, 2, 74, 150, 72, 1, 2, 170, 150, 72, 1, 2, 191, - 225, 150, 72, 1, 2, 192, 12, 150, 72, 1, 2, 197, 94, 150, 222, 48, 208, - 191, 202, 5, 77, 150, 72, 1, 65, 150, 72, 1, 68, 150, 72, 1, 66, 150, 72, - 1, 71, 150, 72, 1, 74, 150, 72, 1, 155, 150, 72, 1, 221, 166, 150, 72, 1, - 220, 232, 150, 72, 1, 222, 22, 150, 72, 1, 221, 67, 150, 72, 1, 188, 150, - 72, 1, 202, 222, 150, 72, 1, 201, 4, 150, 72, 1, 205, 68, 150, 72, 1, - 202, 46, 150, 72, 1, 190, 190, 150, 72, 1, 198, 193, 150, 72, 1, 197, 94, - 150, 72, 1, 199, 145, 150, 72, 1, 159, 150, 72, 1, 180, 150, 72, 1, 213, - 219, 150, 72, 1, 212, 178, 150, 72, 1, 214, 121, 150, 72, 1, 213, 43, - 150, 72, 1, 140, 150, 72, 1, 229, 158, 150, 72, 1, 228, 159, 150, 72, 1, - 229, 245, 150, 72, 1, 229, 23, 150, 72, 1, 174, 150, 72, 1, 216, 100, - 150, 72, 1, 215, 155, 150, 72, 1, 216, 232, 150, 72, 1, 216, 12, 150, 72, - 1, 170, 150, 72, 1, 191, 225, 150, 72, 1, 192, 12, 150, 72, 1, 165, 150, - 72, 1, 207, 1, 150, 72, 1, 206, 68, 150, 72, 1, 207, 113, 150, 72, 1, - 206, 162, 150, 72, 1, 193, 190, 150, 72, 1, 215, 61, 150, 72, 195, 20, - 202, 5, 77, 150, 72, 204, 30, 202, 5, 77, 150, 30, 233, 3, 150, 30, 1, - 221, 113, 150, 30, 1, 201, 167, 150, 30, 1, 221, 106, 150, 30, 1, 213, - 204, 150, 30, 1, 213, 202, 150, 30, 1, 213, 201, 150, 30, 1, 198, 168, - 150, 30, 1, 201, 156, 150, 30, 1, 206, 239, 150, 30, 1, 206, 234, 150, - 30, 1, 206, 231, 150, 30, 1, 206, 224, 150, 30, 1, 206, 219, 150, 30, 1, - 206, 214, 150, 30, 1, 206, 225, 150, 30, 1, 206, 237, 150, 30, 1, 216, - 77, 150, 30, 1, 209, 169, 150, 30, 1, 201, 164, 150, 30, 1, 209, 158, - 150, 30, 1, 202, 160, 150, 30, 1, 201, 161, 150, 30, 1, 223, 222, 150, - 30, 1, 243, 24, 150, 30, 1, 201, 171, 150, 30, 1, 243, 91, 150, 30, 1, - 221, 188, 150, 30, 1, 199, 7, 150, 30, 1, 209, 209, 150, 30, 1, 229, 142, - 150, 30, 1, 65, 150, 30, 1, 252, 25, 150, 30, 1, 170, 150, 30, 1, 192, - 129, 150, 30, 1, 234, 65, 150, 30, 1, 71, 150, 30, 1, 192, 67, 150, 30, - 1, 192, 80, 150, 30, 1, 74, 150, 30, 1, 193, 190, 150, 30, 1, 193, 176, - 150, 30, 1, 211, 151, 150, 30, 1, 192, 12, 150, 30, 1, 66, 150, 30, 1, - 193, 107, 150, 30, 1, 193, 125, 150, 30, 1, 193, 86, 150, 30, 1, 191, - 225, 150, 30, 1, 233, 242, 150, 30, 1, 192, 33, 150, 30, 1, 68, 232, 78, - 247, 24, 56, 232, 78, 209, 8, 56, 232, 78, 213, 12, 56, 232, 78, 217, - 146, 232, 78, 248, 22, 164, 232, 78, 192, 71, 56, 232, 78, 193, 31, 56, - 150, 232, 141, 156, 195, 135, 150, 118, 57, 150, 196, 66, 57, 150, 96, - 57, 150, 235, 119, 57, 150, 62, 201, 190, 150, 63, 243, 10, 223, 106, - 251, 96, 251, 127, 223, 106, 251, 96, 204, 10, 223, 106, 251, 96, 199, - 80, 211, 175, 207, 43, 246, 239, 207, 43, 246, 239, 32, 78, 5, 250, 104, - 65, 32, 78, 5, 250, 73, 71, 32, 78, 5, 250, 82, 68, 32, 78, 5, 250, 50, - 74, 32, 78, 5, 250, 100, 66, 32, 78, 5, 250, 119, 238, 32, 32, 78, 5, - 250, 66, 237, 146, 32, 78, 5, 250, 106, 237, 44, 32, 78, 5, 250, 96, 236, - 174, 32, 78, 5, 250, 60, 235, 89, 32, 78, 5, 250, 54, 223, 32, 32, 78, 5, - 250, 65, 223, 10, 32, 78, 5, 250, 75, 222, 201, 32, 78, 5, 250, 46, 222, - 182, 32, 78, 5, 250, 34, 155, 32, 78, 5, 250, 67, 222, 22, 32, 78, 5, - 250, 44, 221, 166, 32, 78, 5, 250, 41, 221, 67, 32, 78, 5, 250, 30, 220, - 232, 32, 78, 5, 250, 31, 174, 32, 78, 5, 250, 97, 216, 232, 32, 78, 5, - 250, 38, 216, 100, 32, 78, 5, 250, 95, 216, 12, 32, 78, 5, 250, 87, 215, - 155, 32, 78, 5, 250, 108, 180, 32, 78, 5, 250, 86, 214, 121, 32, 78, 5, - 250, 80, 213, 219, 32, 78, 5, 250, 59, 213, 43, 32, 78, 5, 250, 56, 212, - 178, 32, 78, 5, 250, 115, 168, 32, 78, 5, 250, 39, 210, 63, 32, 78, 5, - 250, 72, 209, 185, 32, 78, 5, 250, 99, 209, 73, 32, 78, 5, 250, 61, 208, - 165, 32, 78, 5, 250, 94, 208, 96, 32, 78, 5, 250, 33, 208, 75, 32, 78, 5, - 250, 89, 208, 57, 32, 78, 5, 250, 78, 208, 45, 32, 78, 5, 250, 51, 165, - 32, 78, 5, 250, 83, 207, 113, 32, 78, 5, 250, 58, 207, 1, 32, 78, 5, 250, - 117, 206, 162, 32, 78, 5, 250, 84, 206, 68, 32, 78, 5, 250, 79, 188, 32, - 78, 5, 250, 102, 205, 68, 32, 78, 5, 250, 70, 202, 222, 32, 78, 5, 250, - 98, 202, 46, 32, 78, 5, 250, 53, 201, 4, 32, 78, 5, 250, 52, 190, 190, - 32, 78, 5, 250, 113, 199, 145, 32, 78, 5, 250, 74, 198, 193, 32, 78, 5, - 250, 111, 159, 32, 78, 5, 250, 42, 197, 94, 32, 78, 5, 250, 57, 193, 190, - 32, 78, 5, 250, 36, 193, 125, 32, 78, 5, 250, 71, 193, 86, 32, 78, 5, - 250, 69, 193, 48, 32, 78, 5, 250, 93, 191, 123, 32, 78, 5, 250, 37, 191, - 87, 32, 78, 5, 250, 90, 191, 7, 32, 78, 5, 250, 85, 254, 215, 32, 78, 5, - 250, 68, 254, 103, 32, 78, 5, 250, 27, 250, 163, 32, 78, 5, 250, 40, 235, - 45, 32, 78, 5, 250, 23, 235, 44, 32, 78, 5, 250, 63, 212, 110, 32, 78, 5, - 250, 81, 208, 163, 32, 78, 5, 250, 49, 208, 167, 32, 78, 5, 250, 35, 207, - 180, 32, 78, 5, 250, 77, 207, 179, 32, 78, 5, 250, 43, 206, 155, 32, 78, - 5, 250, 45, 199, 246, 32, 78, 5, 250, 25, 197, 41, 32, 78, 5, 250, 22, - 109, 32, 78, 16, 250, 92, 32, 78, 16, 250, 91, 32, 78, 16, 250, 88, 32, - 78, 16, 250, 76, 32, 78, 16, 250, 64, 32, 78, 16, 250, 62, 32, 78, 16, - 250, 55, 32, 78, 16, 250, 48, 32, 78, 16, 250, 47, 32, 78, 16, 250, 32, - 32, 78, 16, 250, 29, 32, 78, 16, 250, 28, 32, 78, 16, 250, 26, 32, 78, - 16, 250, 24, 32, 78, 157, 250, 21, 217, 90, 32, 78, 157, 250, 20, 193, - 35, 32, 78, 157, 250, 19, 237, 128, 32, 78, 157, 250, 18, 234, 40, 32, - 78, 157, 250, 17, 217, 56, 32, 78, 157, 250, 16, 201, 110, 32, 78, 157, - 250, 15, 233, 223, 32, 78, 157, 250, 14, 207, 142, 32, 78, 157, 250, 13, - 203, 112, 32, 78, 157, 250, 12, 229, 237, 32, 78, 157, 250, 11, 201, 255, - 32, 78, 157, 250, 10, 248, 109, 32, 78, 157, 250, 9, 238, 239, 32, 78, - 157, 250, 8, 247, 250, 32, 78, 157, 250, 7, 193, 95, 32, 78, 157, 250, 6, - 249, 84, 32, 78, 157, 250, 5, 211, 115, 32, 78, 157, 250, 4, 201, 223, - 32, 78, 157, 250, 3, 238, 136, 32, 78, 215, 221, 250, 2, 222, 74, 32, 78, - 215, 221, 250, 1, 222, 85, 32, 78, 157, 250, 0, 211, 131, 32, 78, 157, - 249, 255, 193, 62, 32, 78, 157, 249, 254, 32, 78, 215, 221, 249, 253, - 251, 7, 32, 78, 215, 221, 249, 252, 216, 178, 32, 78, 157, 249, 251, 248, - 21, 32, 78, 157, 249, 250, 230, 250, 32, 78, 157, 249, 249, 32, 78, 157, - 249, 248, 193, 26, 32, 78, 157, 249, 247, 32, 78, 157, 249, 246, 32, 78, - 157, 249, 245, 228, 187, 32, 78, 157, 249, 244, 32, 78, 157, 249, 243, - 32, 78, 157, 249, 242, 32, 78, 215, 221, 249, 240, 197, 56, 32, 78, 157, - 249, 239, 32, 78, 157, 249, 238, 32, 78, 157, 249, 237, 242, 213, 32, 78, - 157, 249, 236, 32, 78, 157, 249, 235, 32, 78, 157, 249, 234, 231, 196, - 32, 78, 157, 249, 233, 250, 248, 32, 78, 157, 249, 232, 32, 78, 157, 249, - 231, 32, 78, 157, 249, 230, 32, 78, 157, 249, 229, 32, 78, 157, 249, 228, - 32, 78, 157, 249, 227, 32, 78, 157, 249, 226, 32, 78, 157, 249, 225, 32, - 78, 157, 249, 224, 32, 78, 157, 249, 223, 215, 213, 32, 78, 157, 249, - 222, 32, 78, 157, 249, 221, 197, 254, 32, 78, 157, 249, 220, 32, 78, 157, - 249, 219, 32, 78, 157, 249, 218, 32, 78, 157, 249, 217, 32, 78, 157, 249, - 216, 32, 78, 157, 249, 215, 32, 78, 157, 249, 214, 32, 78, 157, 249, 213, - 32, 78, 157, 249, 212, 32, 78, 157, 249, 211, 32, 78, 157, 249, 210, 32, - 78, 157, 249, 209, 229, 200, 32, 78, 157, 249, 188, 232, 155, 32, 78, - 157, 249, 185, 249, 59, 32, 78, 157, 249, 180, 201, 232, 32, 78, 157, - 249, 179, 57, 32, 78, 157, 249, 178, 32, 78, 157, 249, 177, 200, 131, 32, - 78, 157, 249, 176, 32, 78, 157, 249, 175, 32, 78, 157, 249, 174, 193, 90, - 243, 138, 32, 78, 157, 249, 173, 243, 138, 32, 78, 157, 249, 172, 243, - 139, 232, 113, 32, 78, 157, 249, 171, 193, 93, 32, 78, 157, 249, 170, 32, - 78, 157, 249, 169, 32, 78, 215, 221, 249, 168, 236, 235, 32, 78, 157, - 249, 167, 32, 78, 157, 249, 166, 32, 78, 157, 249, 164, 32, 78, 157, 249, - 163, 32, 78, 157, 249, 162, 32, 78, 157, 249, 161, 237, 218, 32, 78, 157, - 249, 160, 32, 78, 157, 249, 159, 32, 78, 157, 249, 158, 32, 78, 157, 249, - 157, 32, 78, 157, 249, 156, 32, 78, 157, 195, 82, 249, 241, 32, 78, 157, - 195, 82, 249, 208, 32, 78, 157, 195, 82, 249, 207, 32, 78, 157, 195, 82, - 249, 206, 32, 78, 157, 195, 82, 249, 205, 32, 78, 157, 195, 82, 249, 204, - 32, 78, 157, 195, 82, 249, 203, 32, 78, 157, 195, 82, 249, 202, 32, 78, - 157, 195, 82, 249, 201, 32, 78, 157, 195, 82, 249, 200, 32, 78, 157, 195, - 82, 249, 199, 32, 78, 157, 195, 82, 249, 198, 32, 78, 157, 195, 82, 249, - 197, 32, 78, 157, 195, 82, 249, 196, 32, 78, 157, 195, 82, 249, 195, 32, - 78, 157, 195, 82, 249, 194, 32, 78, 157, 195, 82, 249, 193, 32, 78, 157, - 195, 82, 249, 192, 32, 78, 157, 195, 82, 249, 191, 32, 78, 157, 195, 82, - 249, 190, 32, 78, 157, 195, 82, 249, 189, 32, 78, 157, 195, 82, 249, 187, - 32, 78, 157, 195, 82, 249, 186, 32, 78, 157, 195, 82, 249, 184, 32, 78, - 157, 195, 82, 249, 183, 32, 78, 157, 195, 82, 249, 182, 32, 78, 157, 195, - 82, 249, 181, 32, 78, 157, 195, 82, 249, 165, 32, 78, 157, 195, 82, 249, - 155, 252, 18, 193, 23, 204, 11, 219, 112, 252, 18, 193, 23, 204, 11, 236, - 140, 252, 18, 243, 126, 77, 252, 18, 31, 107, 252, 18, 31, 109, 252, 18, - 31, 138, 252, 18, 31, 134, 252, 18, 31, 149, 252, 18, 31, 169, 252, 18, - 31, 175, 252, 18, 31, 171, 252, 18, 31, 178, 252, 18, 31, 199, 95, 252, - 18, 31, 197, 32, 252, 18, 31, 198, 249, 252, 18, 31, 232, 135, 252, 18, - 31, 233, 15, 252, 18, 31, 202, 120, 252, 18, 31, 203, 241, 252, 18, 31, - 234, 153, 252, 18, 31, 213, 169, 252, 18, 31, 91, 228, 140, 252, 18, 31, - 105, 228, 140, 252, 18, 31, 115, 228, 140, 252, 18, 31, 232, 128, 228, - 140, 252, 18, 31, 232, 226, 228, 140, 252, 18, 31, 202, 136, 228, 140, - 252, 18, 31, 203, 247, 228, 140, 252, 18, 31, 234, 164, 228, 140, 252, - 18, 31, 213, 175, 228, 140, 252, 18, 31, 91, 189, 252, 18, 31, 105, 189, - 252, 18, 31, 115, 189, 252, 18, 31, 232, 128, 189, 252, 18, 31, 232, 226, - 189, 252, 18, 31, 202, 136, 189, 252, 18, 31, 203, 247, 189, 252, 18, 31, - 234, 164, 189, 252, 18, 31, 213, 175, 189, 252, 18, 31, 199, 96, 189, - 252, 18, 31, 197, 33, 189, 252, 18, 31, 198, 250, 189, 252, 18, 31, 232, - 136, 189, 252, 18, 31, 233, 16, 189, 252, 18, 31, 202, 121, 189, 252, 18, - 31, 203, 242, 189, 252, 18, 31, 234, 154, 189, 252, 18, 31, 213, 170, - 189, 252, 18, 193, 110, 249, 75, 196, 90, 252, 18, 193, 110, 232, 238, - 200, 224, 252, 18, 193, 110, 205, 57, 200, 224, 252, 18, 193, 110, 199, - 1, 200, 224, 252, 18, 193, 110, 232, 121, 200, 224, 252, 18, 235, 92, - 216, 228, 232, 238, 200, 224, 252, 18, 219, 93, 216, 228, 232, 238, 200, - 224, 252, 18, 216, 228, 205, 57, 200, 224, 252, 18, 216, 228, 199, 1, - 200, 224, 35, 252, 50, 250, 165, 91, 208, 22, 35, 252, 50, 250, 165, 91, - 230, 70, 35, 252, 50, 250, 165, 91, 235, 115, 35, 252, 50, 250, 165, 149, - 35, 252, 50, 250, 165, 233, 15, 35, 252, 50, 250, 165, 232, 226, 228, - 140, 35, 252, 50, 250, 165, 232, 226, 189, 35, 252, 50, 250, 165, 233, - 16, 189, 35, 252, 50, 250, 165, 232, 226, 199, 203, 35, 252, 50, 250, - 165, 199, 96, 199, 203, 35, 252, 50, 250, 165, 233, 16, 199, 203, 35, - 252, 50, 250, 165, 91, 228, 141, 199, 203, 35, 252, 50, 250, 165, 232, - 226, 228, 141, 199, 203, 35, 252, 50, 250, 165, 91, 198, 230, 199, 203, - 35, 252, 50, 250, 165, 232, 226, 198, 230, 199, 203, 35, 252, 50, 250, - 165, 232, 226, 201, 94, 35, 252, 50, 250, 165, 199, 96, 201, 94, 35, 252, - 50, 250, 165, 233, 16, 201, 94, 35, 252, 50, 250, 165, 91, 228, 141, 201, - 94, 35, 252, 50, 250, 165, 232, 226, 228, 141, 201, 94, 35, 252, 50, 250, - 165, 91, 198, 230, 201, 94, 35, 252, 50, 250, 165, 199, 96, 198, 230, - 201, 94, 35, 252, 50, 250, 165, 233, 16, 198, 230, 201, 94, 35, 252, 50, - 250, 165, 199, 96, 216, 15, 35, 252, 50, 229, 194, 91, 209, 92, 35, 252, - 50, 199, 17, 107, 35, 252, 50, 229, 190, 107, 35, 252, 50, 234, 51, 109, - 35, 252, 50, 199, 17, 109, 35, 252, 50, 238, 132, 105, 235, 114, 35, 252, - 50, 234, 51, 105, 235, 114, 35, 252, 50, 197, 216, 149, 35, 252, 50, 197, - 216, 199, 95, 35, 252, 50, 197, 216, 199, 96, 251, 157, 20, 35, 252, 50, - 229, 190, 199, 95, 35, 252, 50, 216, 167, 199, 95, 35, 252, 50, 199, 17, - 199, 95, 35, 252, 50, 199, 17, 198, 249, 35, 252, 50, 197, 216, 233, 15, - 35, 252, 50, 197, 216, 233, 16, 251, 157, 20, 35, 252, 50, 229, 190, 233, - 15, 35, 252, 50, 199, 17, 233, 15, 35, 252, 50, 199, 17, 91, 228, 140, - 35, 252, 50, 199, 17, 115, 228, 140, 35, 252, 50, 234, 51, 232, 226, 228, - 140, 35, 252, 50, 197, 216, 232, 226, 228, 140, 35, 252, 50, 199, 17, - 232, 226, 228, 140, 35, 252, 50, 247, 82, 232, 226, 228, 140, 35, 252, - 50, 214, 199, 232, 226, 228, 140, 35, 252, 50, 199, 17, 91, 189, 35, 252, - 50, 199, 17, 232, 226, 189, 35, 252, 50, 237, 109, 232, 226, 216, 15, 35, - 252, 50, 201, 47, 233, 16, 216, 15, 35, 91, 132, 56, 35, 91, 132, 3, 251, - 157, 20, 35, 105, 198, 254, 56, 35, 115, 208, 21, 56, 35, 192, 78, 56, - 35, 199, 204, 56, 35, 235, 116, 56, 35, 211, 170, 56, 35, 105, 211, 169, - 56, 35, 115, 211, 169, 56, 35, 232, 128, 211, 169, 56, 35, 232, 226, 211, - 169, 56, 35, 216, 161, 56, 35, 220, 151, 249, 75, 56, 35, 219, 85, 56, - 35, 211, 16, 56, 35, 192, 211, 56, 35, 250, 226, 56, 35, 250, 243, 56, - 35, 230, 220, 56, 35, 197, 171, 249, 75, 56, 35, 191, 78, 56, 35, 91, - 208, 23, 56, 35, 202, 162, 56, 35, 223, 143, 56, 213, 32, 56, 206, 136, - 203, 237, 56, 206, 136, 196, 106, 56, 206, 136, 204, 17, 56, 206, 136, - 203, 175, 56, 206, 136, 236, 250, 203, 175, 56, 206, 136, 202, 186, 56, - 206, 136, 237, 104, 56, 206, 136, 208, 5, 56, 206, 136, 203, 254, 56, - 206, 136, 235, 67, 56, 206, 136, 250, 220, 56, 206, 136, 247, 17, 56, - 250, 211, 113, 35, 16, 199, 167, 207, 3, 209, 223, 236, 227, 3, 210, 51, - 209, 223, 236, 227, 3, 209, 84, 229, 235, 209, 223, 236, 227, 3, 199, - 170, 229, 235, 209, 223, 236, 227, 3, 247, 105, 209, 223, 236, 227, 3, - 243, 86, 209, 223, 236, 227, 3, 193, 35, 209, 223, 236, 227, 3, 229, 200, - 209, 223, 236, 227, 3, 231, 188, 209, 223, 236, 227, 3, 198, 184, 209, - 223, 236, 227, 3, 57, 209, 223, 236, 227, 3, 248, 69, 209, 223, 236, 227, - 3, 203, 78, 209, 223, 236, 227, 3, 242, 206, 209, 223, 236, 227, 3, 217, - 89, 209, 223, 236, 227, 3, 217, 26, 209, 223, 236, 227, 3, 205, 108, 209, - 223, 236, 227, 3, 219, 141, 209, 223, 236, 227, 3, 248, 92, 209, 223, - 236, 227, 3, 247, 89, 209, 101, 209, 223, 236, 227, 3, 236, 156, 209, - 223, 236, 227, 3, 242, 80, 209, 223, 236, 227, 3, 202, 83, 209, 223, 236, - 227, 3, 242, 81, 209, 223, 236, 227, 3, 248, 254, 209, 223, 236, 227, 3, - 203, 65, 209, 223, 236, 227, 3, 228, 187, 209, 223, 236, 227, 3, 229, - 148, 209, 223, 236, 227, 3, 247, 245, 219, 212, 209, 223, 236, 227, 3, - 247, 78, 209, 223, 236, 227, 3, 207, 142, 209, 223, 236, 227, 3, 234, - 214, 209, 223, 236, 227, 3, 235, 124, 209, 223, 236, 227, 3, 197, 72, - 209, 223, 236, 227, 3, 249, 1, 209, 223, 236, 227, 3, 209, 102, 197, 254, - 209, 223, 236, 227, 3, 195, 47, 209, 223, 236, 227, 3, 210, 132, 209, - 223, 236, 227, 3, 206, 125, 209, 223, 236, 227, 3, 219, 125, 209, 223, - 236, 227, 3, 210, 248, 249, 146, 209, 223, 236, 227, 3, 232, 182, 209, - 223, 236, 227, 3, 230, 212, 209, 223, 236, 227, 3, 201, 50, 209, 223, - 236, 227, 3, 2, 250, 132, 209, 223, 236, 227, 3, 193, 135, 249, 97, 209, - 223, 236, 227, 3, 33, 211, 172, 106, 218, 181, 1, 65, 218, 181, 1, 71, - 218, 181, 1, 250, 120, 218, 181, 1, 248, 204, 218, 181, 1, 232, 51, 218, - 181, 1, 238, 127, 218, 181, 1, 68, 218, 181, 1, 193, 224, 218, 181, 1, - 191, 166, 218, 181, 1, 199, 51, 218, 181, 1, 223, 35, 218, 181, 1, 222, - 152, 218, 181, 1, 208, 104, 218, 181, 1, 172, 218, 181, 1, 218, 168, 218, - 181, 1, 215, 61, 218, 181, 1, 216, 17, 218, 181, 1, 213, 80, 218, 181, 1, - 66, 218, 181, 1, 210, 236, 218, 181, 1, 221, 102, 218, 181, 1, 146, 218, - 181, 1, 206, 8, 218, 181, 1, 200, 43, 218, 181, 1, 197, 135, 218, 181, 1, - 251, 132, 218, 181, 1, 234, 103, 218, 181, 1, 230, 116, 218, 181, 1, 192, - 235, 247, 95, 1, 65, 247, 95, 1, 210, 222, 247, 95, 1, 238, 127, 247, 95, - 1, 172, 247, 95, 1, 196, 28, 247, 95, 1, 146, 247, 95, 1, 219, 242, 247, - 95, 1, 254, 215, 247, 95, 1, 208, 104, 247, 95, 1, 250, 120, 247, 95, 1, - 218, 168, 247, 95, 1, 74, 247, 95, 1, 238, 34, 247, 95, 1, 200, 43, 247, - 95, 1, 203, 167, 247, 95, 1, 203, 166, 247, 95, 1, 206, 8, 247, 95, 1, - 247, 192, 247, 95, 1, 66, 247, 95, 1, 213, 80, 247, 95, 1, 192, 235, 247, - 95, 1, 215, 61, 247, 95, 1, 197, 134, 247, 95, 1, 210, 236, 247, 95, 1, - 201, 178, 247, 95, 1, 68, 247, 95, 1, 71, 247, 95, 1, 196, 25, 247, 95, - 1, 222, 152, 247, 95, 1, 222, 143, 247, 95, 1, 214, 164, 247, 95, 1, 196, - 30, 247, 95, 1, 232, 51, 247, 95, 1, 231, 242, 247, 95, 1, 201, 118, 247, - 95, 1, 201, 117, 247, 95, 1, 214, 70, 247, 95, 1, 223, 199, 247, 95, 1, - 247, 191, 247, 95, 1, 197, 135, 247, 95, 1, 196, 27, 247, 95, 1, 206, - 110, 247, 95, 1, 217, 16, 247, 95, 1, 217, 15, 247, 95, 1, 217, 14, 247, - 95, 1, 217, 13, 247, 95, 1, 219, 241, 247, 95, 1, 234, 218, 247, 95, 1, - 196, 26, 94, 234, 54, 198, 229, 77, 94, 234, 54, 17, 107, 94, 234, 54, - 17, 109, 94, 234, 54, 17, 138, 94, 234, 54, 17, 134, 94, 234, 54, 17, - 149, 94, 234, 54, 17, 169, 94, 234, 54, 17, 175, 94, 234, 54, 17, 171, - 94, 234, 54, 17, 178, 94, 234, 54, 31, 199, 95, 94, 234, 54, 31, 197, 32, - 94, 234, 54, 31, 198, 249, 94, 234, 54, 31, 232, 135, 94, 234, 54, 31, - 233, 15, 94, 234, 54, 31, 202, 120, 94, 234, 54, 31, 203, 241, 94, 234, - 54, 31, 234, 153, 94, 234, 54, 31, 213, 169, 94, 234, 54, 31, 91, 228, - 140, 94, 234, 54, 31, 105, 228, 140, 94, 234, 54, 31, 115, 228, 140, 94, - 234, 54, 31, 232, 128, 228, 140, 94, 234, 54, 31, 232, 226, 228, 140, 94, - 234, 54, 31, 202, 136, 228, 140, 94, 234, 54, 31, 203, 247, 228, 140, 94, - 234, 54, 31, 234, 164, 228, 140, 94, 234, 54, 31, 213, 175, 228, 140, 39, - 43, 1, 65, 39, 43, 1, 249, 17, 39, 43, 1, 222, 22, 39, 43, 1, 237, 146, - 39, 43, 1, 71, 39, 43, 1, 195, 153, 39, 43, 1, 191, 87, 39, 43, 1, 229, - 245, 39, 43, 1, 199, 33, 39, 43, 1, 68, 39, 43, 1, 155, 39, 43, 1, 234, - 140, 39, 43, 1, 234, 114, 39, 43, 1, 234, 103, 39, 43, 1, 234, 12, 39, - 43, 1, 74, 39, 43, 1, 210, 63, 39, 43, 1, 203, 113, 39, 43, 1, 220, 232, - 39, 43, 1, 234, 34, 39, 43, 1, 234, 22, 39, 43, 1, 199, 145, 39, 43, 1, - 66, 39, 43, 1, 234, 143, 39, 43, 1, 209, 214, 39, 43, 1, 221, 197, 39, - 43, 1, 234, 181, 39, 43, 1, 234, 24, 39, 43, 1, 243, 127, 39, 43, 1, 223, - 199, 39, 43, 1, 196, 30, 39, 43, 1, 234, 5, 39, 43, 212, 134, 107, 39, - 43, 212, 134, 149, 39, 43, 212, 134, 199, 95, 39, 43, 212, 134, 233, 15, - 39, 43, 1, 192, 80, 39, 43, 1, 213, 16, 197, 161, 39, 43, 1, 202, 0, 197, - 161, 230, 231, 1, 251, 239, 230, 231, 1, 249, 117, 230, 231, 1, 231, 50, - 230, 231, 1, 238, 13, 230, 231, 1, 251, 234, 230, 231, 1, 208, 87, 230, - 231, 1, 223, 48, 230, 231, 1, 230, 83, 230, 231, 1, 198, 243, 230, 231, - 1, 234, 151, 230, 231, 1, 220, 189, 230, 231, 1, 220, 100, 230, 231, 1, - 217, 80, 230, 231, 1, 214, 201, 230, 231, 1, 223, 1, 230, 231, 1, 196, - 48, 230, 231, 1, 210, 195, 230, 231, 1, 213, 169, 230, 231, 1, 207, 155, - 230, 231, 1, 205, 112, 230, 231, 1, 199, 111, 230, 231, 1, 193, 59, 230, - 231, 1, 233, 89, 230, 231, 1, 223, 203, 230, 231, 1, 228, 123, 230, 231, - 1, 211, 29, 230, 231, 1, 213, 175, 228, 140, 39, 210, 2, 1, 251, 132, 39, - 210, 2, 1, 247, 230, 39, 210, 2, 1, 231, 224, 39, 210, 2, 1, 236, 160, - 39, 210, 2, 1, 71, 39, 210, 2, 1, 191, 53, 39, 210, 2, 1, 235, 27, 39, - 210, 2, 1, 191, 95, 39, 210, 2, 1, 235, 25, 39, 210, 2, 1, 68, 39, 210, - 2, 1, 221, 50, 39, 210, 2, 1, 219, 208, 39, 210, 2, 1, 216, 184, 39, 210, - 2, 1, 214, 100, 39, 210, 2, 1, 195, 7, 39, 210, 2, 1, 210, 48, 39, 210, - 2, 1, 207, 70, 39, 210, 2, 1, 202, 193, 39, 210, 2, 1, 199, 217, 39, 210, - 2, 1, 66, 39, 210, 2, 1, 243, 106, 39, 210, 2, 1, 203, 47, 39, 210, 2, 1, - 203, 115, 39, 210, 2, 1, 191, 227, 39, 210, 2, 1, 192, 58, 39, 210, 2, 1, - 74, 39, 210, 2, 1, 211, 87, 39, 210, 2, 1, 234, 181, 39, 210, 2, 1, 140, - 39, 210, 2, 1, 197, 145, 39, 210, 2, 1, 195, 140, 39, 210, 2, 1, 192, 62, - 39, 210, 2, 1, 192, 60, 39, 210, 2, 1, 192, 95, 39, 210, 2, 1, 223, 226, - 39, 210, 2, 1, 191, 225, 39, 210, 2, 1, 170, 39, 210, 2, 1, 228, 35, 33, - 39, 210, 2, 1, 251, 132, 33, 39, 210, 2, 1, 236, 160, 33, 39, 210, 2, 1, - 191, 95, 33, 39, 210, 2, 1, 214, 100, 33, 39, 210, 2, 1, 202, 193, 196, - 142, 1, 251, 164, 196, 142, 1, 248, 212, 196, 142, 1, 231, 212, 196, 142, - 1, 221, 215, 196, 142, 1, 237, 106, 196, 142, 1, 229, 23, 196, 142, 1, - 193, 48, 196, 142, 1, 191, 76, 196, 142, 1, 228, 179, 196, 142, 1, 199, - 73, 196, 142, 1, 191, 250, 196, 142, 1, 222, 106, 196, 142, 1, 203, 69, - 196, 142, 1, 220, 31, 196, 142, 1, 216, 193, 196, 142, 1, 237, 64, 196, - 142, 1, 212, 130, 196, 142, 1, 190, 251, 196, 142, 1, 205, 147, 196, 142, - 1, 251, 230, 196, 142, 1, 208, 165, 196, 142, 1, 205, 191, 196, 142, 1, - 208, 38, 196, 142, 1, 207, 133, 196, 142, 1, 199, 37, 196, 142, 1, 231, - 86, 196, 142, 1, 159, 196, 142, 1, 68, 196, 142, 1, 66, 196, 142, 1, 201, - 129, 196, 142, 193, 23, 236, 205, 39, 209, 252, 3, 65, 39, 209, 252, 3, - 68, 39, 209, 252, 3, 66, 39, 209, 252, 3, 155, 39, 209, 252, 3, 220, 232, - 39, 209, 252, 3, 231, 240, 39, 209, 252, 3, 230, 179, 39, 209, 252, 3, - 192, 220, 39, 209, 252, 3, 247, 160, 39, 209, 252, 3, 223, 32, 39, 209, - 252, 3, 222, 244, 39, 209, 252, 3, 190, 190, 39, 209, 252, 3, 197, 94, - 39, 209, 252, 3, 238, 32, 39, 209, 252, 3, 237, 44, 39, 209, 252, 3, 235, - 89, 39, 209, 252, 3, 199, 49, 39, 209, 252, 3, 168, 39, 209, 252, 3, 249, - 153, 39, 209, 252, 3, 233, 109, 39, 209, 252, 3, 180, 39, 209, 252, 3, - 212, 178, 39, 209, 252, 3, 174, 39, 209, 252, 3, 216, 100, 39, 209, 252, - 3, 215, 155, 39, 209, 252, 3, 170, 39, 209, 252, 3, 195, 188, 39, 209, - 252, 3, 195, 69, 39, 209, 252, 3, 165, 39, 209, 252, 3, 206, 68, 39, 209, - 252, 3, 173, 39, 209, 252, 3, 188, 39, 209, 252, 3, 191, 123, 39, 209, - 252, 3, 203, 165, 39, 209, 252, 3, 201, 175, 39, 209, 252, 3, 140, 39, - 209, 252, 3, 250, 157, 39, 209, 252, 3, 250, 156, 39, 209, 252, 3, 250, - 155, 39, 209, 252, 3, 192, 189, 39, 209, 252, 3, 238, 9, 39, 209, 252, 3, - 238, 8, 39, 209, 252, 3, 249, 128, 39, 209, 252, 3, 247, 212, 39, 209, - 252, 193, 23, 236, 205, 39, 209, 252, 31, 107, 39, 209, 252, 31, 109, 39, - 209, 252, 31, 199, 95, 39, 209, 252, 31, 197, 32, 39, 209, 252, 31, 228, - 140, 237, 84, 6, 1, 179, 68, 237, 84, 6, 1, 179, 71, 237, 84, 6, 1, 179, - 65, 237, 84, 6, 1, 179, 251, 245, 237, 84, 6, 1, 179, 74, 237, 84, 6, 1, - 179, 211, 87, 237, 84, 6, 1, 203, 40, 68, 237, 84, 6, 1, 203, 40, 71, - 237, 84, 6, 1, 203, 40, 65, 237, 84, 6, 1, 203, 40, 251, 245, 237, 84, 6, - 1, 203, 40, 74, 237, 84, 6, 1, 203, 40, 211, 87, 237, 84, 6, 1, 250, 131, - 237, 84, 6, 1, 210, 250, 237, 84, 6, 1, 193, 0, 237, 84, 6, 1, 192, 77, - 237, 84, 6, 1, 230, 116, 237, 84, 6, 1, 210, 49, 237, 84, 6, 1, 249, 1, - 237, 84, 6, 1, 199, 121, 237, 84, 6, 1, 237, 131, 237, 84, 6, 1, 243, - 123, 237, 84, 6, 1, 223, 8, 237, 84, 6, 1, 222, 29, 237, 84, 6, 1, 231, - 186, 237, 84, 6, 1, 234, 181, 237, 84, 6, 1, 195, 148, 237, 84, 6, 1, - 233, 248, 237, 84, 6, 1, 199, 31, 237, 84, 6, 1, 234, 22, 237, 84, 6, 1, - 191, 84, 237, 84, 6, 1, 234, 12, 237, 84, 6, 1, 191, 61, 237, 84, 6, 1, - 234, 34, 237, 84, 6, 1, 234, 140, 237, 84, 6, 1, 234, 114, 237, 84, 6, 1, - 234, 103, 237, 84, 6, 1, 234, 88, 237, 84, 6, 1, 211, 133, 237, 84, 6, 1, - 233, 224, 237, 84, 2, 1, 179, 68, 237, 84, 2, 1, 179, 71, 237, 84, 2, 1, - 179, 65, 237, 84, 2, 1, 179, 251, 245, 237, 84, 2, 1, 179, 74, 237, 84, - 2, 1, 179, 211, 87, 237, 84, 2, 1, 203, 40, 68, 237, 84, 2, 1, 203, 40, - 71, 237, 84, 2, 1, 203, 40, 65, 237, 84, 2, 1, 203, 40, 251, 245, 237, - 84, 2, 1, 203, 40, 74, 237, 84, 2, 1, 203, 40, 211, 87, 237, 84, 2, 1, - 250, 131, 237, 84, 2, 1, 210, 250, 237, 84, 2, 1, 193, 0, 237, 84, 2, 1, - 192, 77, 237, 84, 2, 1, 230, 116, 237, 84, 2, 1, 210, 49, 237, 84, 2, 1, - 249, 1, 237, 84, 2, 1, 199, 121, 237, 84, 2, 1, 237, 131, 237, 84, 2, 1, - 243, 123, 237, 84, 2, 1, 223, 8, 237, 84, 2, 1, 222, 29, 237, 84, 2, 1, - 231, 186, 237, 84, 2, 1, 234, 181, 237, 84, 2, 1, 195, 148, 237, 84, 2, - 1, 233, 248, 237, 84, 2, 1, 199, 31, 237, 84, 2, 1, 234, 22, 237, 84, 2, - 1, 191, 84, 237, 84, 2, 1, 234, 12, 237, 84, 2, 1, 191, 61, 237, 84, 2, - 1, 234, 34, 237, 84, 2, 1, 234, 140, 237, 84, 2, 1, 234, 114, 237, 84, 2, - 1, 234, 103, 237, 84, 2, 1, 234, 88, 237, 84, 2, 1, 211, 133, 237, 84, 2, - 1, 233, 224, 203, 120, 1, 210, 45, 203, 120, 1, 198, 40, 203, 120, 1, - 221, 154, 203, 120, 1, 233, 52, 203, 120, 1, 199, 6, 203, 120, 1, 202, - 46, 203, 120, 1, 200, 172, 203, 120, 1, 243, 40, 203, 120, 1, 192, 79, - 203, 120, 1, 228, 137, 203, 120, 1, 248, 187, 203, 120, 1, 237, 145, 203, - 120, 1, 231, 226, 203, 120, 1, 195, 2, 203, 120, 1, 199, 12, 203, 120, 1, - 191, 4, 203, 120, 1, 216, 227, 203, 120, 1, 222, 180, 203, 120, 1, 193, - 39, 203, 120, 1, 230, 93, 203, 120, 1, 219, 25, 203, 120, 1, 216, 45, - 203, 120, 1, 223, 206, 203, 120, 1, 234, 179, 203, 120, 1, 250, 209, 203, - 120, 1, 252, 30, 203, 120, 1, 211, 104, 203, 120, 1, 193, 26, 203, 120, - 1, 211, 14, 203, 120, 1, 251, 245, 203, 120, 1, 206, 153, 203, 120, 1, - 212, 130, 203, 120, 1, 234, 200, 203, 120, 1, 251, 250, 203, 120, 1, 228, - 26, 203, 120, 1, 196, 77, 203, 120, 1, 211, 180, 203, 120, 1, 211, 79, - 203, 120, 1, 211, 131, 203, 120, 1, 250, 137, 203, 120, 1, 251, 9, 203, - 120, 1, 211, 56, 203, 120, 1, 251, 225, 203, 120, 1, 234, 26, 203, 120, - 1, 250, 240, 203, 120, 1, 234, 211, 203, 120, 1, 228, 34, 203, 120, 1, - 192, 41, 211, 33, 1, 251, 192, 211, 33, 1, 249, 153, 211, 33, 1, 190, - 190, 211, 33, 1, 223, 32, 211, 33, 1, 192, 220, 211, 33, 1, 221, 215, - 211, 33, 1, 237, 130, 211, 33, 1, 165, 211, 33, 1, 188, 211, 33, 1, 203, - 75, 211, 33, 1, 237, 68, 211, 33, 1, 247, 67, 211, 33, 1, 231, 240, 211, - 33, 1, 233, 109, 211, 33, 1, 208, 94, 211, 33, 1, 222, 123, 211, 33, 1, - 220, 121, 211, 33, 1, 216, 59, 211, 33, 1, 212, 114, 211, 33, 1, 193, - 133, 211, 33, 1, 140, 211, 33, 1, 170, 211, 33, 1, 65, 211, 33, 1, 71, - 211, 33, 1, 68, 211, 33, 1, 74, 211, 33, 1, 66, 211, 33, 1, 252, 206, - 211, 33, 1, 234, 188, 211, 33, 1, 211, 87, 211, 33, 17, 191, 77, 211, 33, - 17, 107, 211, 33, 17, 109, 211, 33, 17, 138, 211, 33, 17, 134, 211, 33, - 17, 149, 211, 33, 17, 169, 211, 33, 17, 175, 211, 33, 17, 171, 211, 33, - 17, 178, 211, 35, 6, 1, 65, 211, 35, 6, 1, 251, 236, 211, 35, 6, 1, 251, - 230, 211, 35, 6, 1, 251, 245, 211, 35, 6, 1, 248, 56, 211, 35, 6, 1, 247, - 1, 211, 35, 6, 1, 234, 172, 211, 35, 6, 1, 71, 211, 35, 6, 1, 234, 152, - 211, 35, 6, 1, 140, 211, 35, 6, 1, 228, 93, 211, 35, 6, 1, 68, 211, 35, - 6, 1, 155, 211, 35, 6, 1, 234, 171, 211, 35, 6, 1, 220, 153, 211, 35, 6, - 1, 173, 211, 35, 6, 1, 174, 211, 35, 6, 1, 180, 211, 35, 6, 1, 74, 211, - 35, 6, 1, 211, 130, 211, 35, 6, 1, 168, 211, 35, 6, 1, 234, 170, 211, 35, - 6, 1, 188, 211, 35, 6, 1, 203, 165, 211, 35, 6, 1, 190, 190, 211, 35, 6, - 1, 234, 169, 211, 35, 6, 1, 197, 168, 211, 35, 6, 1, 234, 168, 211, 35, - 6, 1, 197, 157, 211, 35, 6, 1, 237, 68, 211, 35, 6, 1, 66, 211, 35, 6, 1, - 193, 190, 211, 35, 6, 1, 221, 215, 211, 35, 6, 1, 231, 91, 211, 35, 6, 1, - 191, 123, 211, 35, 6, 1, 191, 71, 211, 35, 2, 1, 65, 211, 35, 2, 1, 251, - 236, 211, 35, 2, 1, 251, 230, 211, 35, 2, 1, 251, 245, 211, 35, 2, 1, - 248, 56, 211, 35, 2, 1, 247, 1, 211, 35, 2, 1, 234, 172, 211, 35, 2, 1, - 71, 211, 35, 2, 1, 234, 152, 211, 35, 2, 1, 140, 211, 35, 2, 1, 228, 93, - 211, 35, 2, 1, 68, 211, 35, 2, 1, 155, 211, 35, 2, 1, 234, 171, 211, 35, - 2, 1, 220, 153, 211, 35, 2, 1, 173, 211, 35, 2, 1, 174, 211, 35, 2, 1, - 180, 211, 35, 2, 1, 74, 211, 35, 2, 1, 211, 130, 211, 35, 2, 1, 168, 211, - 35, 2, 1, 234, 170, 211, 35, 2, 1, 188, 211, 35, 2, 1, 203, 165, 211, 35, - 2, 1, 190, 190, 211, 35, 2, 1, 234, 169, 211, 35, 2, 1, 197, 168, 211, - 35, 2, 1, 234, 168, 211, 35, 2, 1, 197, 157, 211, 35, 2, 1, 237, 68, 211, - 35, 2, 1, 66, 211, 35, 2, 1, 193, 190, 211, 35, 2, 1, 221, 215, 211, 35, - 2, 1, 231, 91, 211, 35, 2, 1, 191, 123, 211, 35, 2, 1, 191, 71, 234, 136, - 1, 65, 234, 136, 1, 249, 17, 234, 136, 1, 247, 42, 234, 136, 1, 243, 127, - 234, 136, 1, 237, 146, 234, 136, 1, 214, 154, 234, 136, 1, 237, 59, 234, - 136, 1, 234, 166, 234, 136, 1, 71, 234, 136, 1, 233, 59, 234, 136, 1, - 231, 165, 234, 136, 1, 231, 20, 234, 136, 1, 229, 245, 234, 136, 1, 68, - 234, 136, 1, 223, 10, 234, 136, 1, 222, 22, 234, 136, 1, 219, 238, 234, - 136, 1, 219, 68, 234, 136, 1, 216, 232, 234, 136, 1, 214, 121, 234, 136, - 1, 180, 234, 136, 1, 213, 150, 234, 136, 1, 74, 234, 136, 1, 210, 63, - 234, 136, 1, 208, 75, 234, 136, 1, 207, 113, 234, 136, 1, 206, 104, 234, - 136, 1, 205, 68, 234, 136, 1, 203, 113, 234, 136, 1, 199, 145, 234, 136, - 1, 199, 33, 234, 136, 1, 66, 234, 136, 1, 195, 153, 234, 136, 1, 192, - 214, 234, 136, 1, 192, 159, 234, 136, 1, 191, 87, 234, 136, 1, 191, 62, - 234, 136, 1, 231, 77, 234, 136, 1, 231, 83, 234, 136, 1, 221, 197, 247, - 75, 251, 193, 1, 251, 159, 247, 75, 251, 193, 1, 248, 214, 247, 75, 251, - 193, 1, 231, 40, 247, 75, 251, 193, 1, 237, 211, 247, 75, 251, 193, 1, - 234, 199, 247, 75, 251, 193, 1, 191, 98, 247, 75, 251, 193, 1, 233, 184, - 247, 75, 251, 193, 1, 191, 56, 247, 75, 251, 193, 1, 199, 174, 247, 75, - 251, 193, 1, 247, 1, 247, 75, 251, 193, 1, 191, 236, 247, 75, 251, 193, - 1, 191, 71, 247, 75, 251, 193, 1, 223, 76, 247, 75, 251, 193, 1, 203, - 165, 247, 75, 251, 193, 1, 220, 24, 247, 75, 251, 193, 1, 223, 89, 247, - 75, 251, 193, 1, 192, 210, 247, 75, 251, 193, 1, 235, 43, 247, 75, 251, - 193, 1, 247, 102, 247, 75, 251, 193, 1, 222, 245, 247, 75, 251, 193, 1, - 222, 65, 247, 75, 251, 193, 1, 218, 177, 247, 75, 251, 193, 1, 229, 179, - 247, 75, 251, 193, 1, 208, 76, 247, 75, 251, 193, 1, 251, 67, 247, 75, - 251, 193, 1, 243, 57, 247, 75, 251, 193, 1, 243, 95, 247, 75, 251, 193, - 1, 238, 140, 247, 75, 251, 193, 1, 217, 68, 247, 75, 251, 193, 1, 208, - 81, 247, 75, 251, 193, 1, 212, 252, 247, 75, 251, 193, 1, 235, 20, 247, - 75, 251, 193, 1, 203, 147, 247, 75, 251, 193, 1, 223, 11, 247, 75, 251, - 193, 1, 211, 104, 247, 75, 251, 193, 1, 197, 3, 247, 75, 251, 193, 1, - 233, 82, 247, 75, 251, 193, 1, 235, 33, 247, 75, 251, 193, 1, 243, 133, - 247, 75, 251, 193, 1, 210, 34, 247, 75, 251, 193, 1, 231, 67, 247, 75, - 251, 193, 1, 207, 130, 247, 75, 251, 193, 1, 203, 174, 247, 75, 251, 193, - 1, 195, 72, 247, 75, 251, 193, 1, 198, 118, 247, 75, 251, 193, 1, 203, - 18, 247, 75, 251, 193, 1, 223, 46, 247, 75, 251, 193, 1, 238, 141, 247, - 75, 251, 193, 1, 247, 67, 247, 75, 251, 193, 1, 192, 84, 247, 75, 251, - 193, 1, 209, 114, 247, 75, 251, 193, 1, 221, 117, 247, 75, 251, 193, 242, - 254, 77, 195, 29, 6, 1, 65, 195, 29, 6, 1, 249, 48, 195, 29, 6, 1, 249, - 17, 195, 29, 6, 1, 247, 42, 195, 29, 6, 1, 243, 127, 195, 29, 6, 1, 237, - 146, 195, 29, 6, 1, 237, 59, 195, 29, 6, 1, 234, 166, 195, 29, 6, 1, 71, - 195, 29, 6, 1, 233, 59, 195, 29, 6, 1, 231, 240, 195, 29, 6, 1, 140, 195, - 29, 6, 1, 229, 177, 195, 29, 6, 1, 68, 195, 29, 6, 1, 223, 196, 195, 29, - 6, 1, 223, 10, 195, 29, 6, 1, 155, 195, 29, 6, 1, 173, 195, 29, 6, 1, - 219, 73, 195, 29, 6, 1, 216, 232, 195, 29, 6, 1, 214, 121, 195, 29, 6, 1, - 213, 150, 195, 29, 6, 1, 74, 195, 29, 6, 1, 210, 63, 195, 29, 6, 1, 208, - 96, 195, 29, 6, 1, 207, 113, 195, 29, 6, 1, 205, 68, 195, 29, 6, 1, 203, - 113, 195, 29, 6, 1, 199, 145, 195, 29, 6, 1, 199, 33, 195, 29, 6, 1, 66, - 195, 29, 6, 1, 195, 153, 195, 29, 6, 1, 192, 214, 195, 29, 6, 1, 192, - 159, 195, 29, 6, 1, 191, 87, 195, 29, 2, 1, 65, 195, 29, 2, 1, 249, 48, - 195, 29, 2, 1, 249, 17, 195, 29, 2, 1, 247, 42, 195, 29, 2, 1, 243, 127, - 195, 29, 2, 1, 237, 146, 195, 29, 2, 1, 237, 59, 195, 29, 2, 1, 234, 166, - 195, 29, 2, 1, 71, 195, 29, 2, 1, 233, 59, 195, 29, 2, 1, 231, 240, 195, - 29, 2, 1, 140, 195, 29, 2, 1, 229, 177, 195, 29, 2, 1, 68, 195, 29, 2, 1, - 223, 196, 195, 29, 2, 1, 223, 10, 195, 29, 2, 1, 155, 195, 29, 2, 1, 173, - 195, 29, 2, 1, 219, 73, 195, 29, 2, 1, 216, 232, 195, 29, 2, 1, 214, 121, - 195, 29, 2, 1, 213, 150, 195, 29, 2, 1, 74, 195, 29, 2, 1, 210, 63, 195, - 29, 2, 1, 208, 96, 195, 29, 2, 1, 207, 113, 195, 29, 2, 1, 205, 68, 195, - 29, 2, 1, 203, 113, 195, 29, 2, 1, 199, 145, 195, 29, 2, 1, 199, 33, 195, - 29, 2, 1, 66, 195, 29, 2, 1, 195, 153, 195, 29, 2, 1, 192, 214, 195, 29, - 2, 1, 192, 159, 195, 29, 2, 1, 191, 87, 32, 42, 3, 252, 154, 32, 42, 3, - 252, 153, 32, 42, 3, 252, 152, 32, 42, 3, 252, 151, 32, 42, 3, 252, 150, - 32, 42, 3, 252, 149, 32, 42, 3, 252, 148, 32, 42, 3, 252, 147, 32, 42, 3, - 252, 146, 32, 42, 3, 252, 145, 32, 42, 3, 252, 144, 32, 42, 3, 252, 143, - 32, 42, 3, 252, 142, 32, 42, 3, 252, 141, 32, 42, 3, 252, 140, 32, 42, 3, - 252, 139, 32, 42, 3, 252, 138, 32, 42, 3, 252, 137, 32, 42, 3, 252, 136, - 32, 42, 3, 252, 135, 32, 42, 3, 252, 134, 32, 42, 3, 252, 133, 32, 42, 3, - 252, 132, 32, 42, 3, 252, 131, 32, 42, 3, 252, 130, 32, 42, 3, 252, 129, - 32, 42, 3, 252, 128, 32, 42, 3, 255, 164, 32, 42, 3, 252, 127, 32, 42, 3, - 252, 126, 32, 42, 3, 252, 125, 32, 42, 3, 252, 124, 32, 42, 3, 252, 123, - 32, 42, 3, 252, 122, 32, 42, 3, 252, 121, 32, 42, 3, 252, 120, 32, 42, 3, - 252, 119, 32, 42, 3, 252, 118, 32, 42, 3, 252, 117, 32, 42, 3, 252, 116, - 32, 42, 3, 252, 115, 32, 42, 3, 252, 114, 32, 42, 3, 252, 113, 32, 42, 3, - 252, 112, 32, 42, 3, 252, 111, 32, 42, 3, 252, 110, 32, 42, 3, 252, 109, - 32, 42, 3, 252, 108, 32, 42, 3, 252, 107, 32, 42, 3, 252, 106, 32, 42, 3, - 252, 105, 32, 42, 3, 252, 104, 32, 42, 3, 252, 103, 32, 42, 3, 252, 102, - 32, 42, 3, 252, 101, 32, 42, 3, 252, 100, 32, 42, 3, 252, 99, 32, 42, 3, - 252, 98, 32, 42, 3, 252, 97, 32, 42, 3, 252, 96, 32, 42, 3, 252, 95, 32, - 42, 3, 252, 94, 32, 42, 3, 252, 93, 32, 42, 3, 252, 92, 32, 42, 3, 252, - 91, 32, 42, 3, 252, 90, 32, 42, 3, 252, 89, 32, 42, 3, 252, 88, 32, 42, - 3, 252, 87, 32, 42, 3, 252, 86, 32, 42, 3, 252, 85, 32, 42, 3, 255, 77, - 32, 42, 3, 252, 84, 32, 42, 3, 252, 83, 32, 42, 3, 255, 42, 32, 42, 3, - 252, 82, 32, 42, 3, 252, 81, 32, 42, 3, 252, 80, 32, 42, 3, 252, 79, 32, - 42, 3, 255, 29, 32, 42, 3, 252, 78, 32, 42, 3, 252, 77, 32, 42, 3, 252, - 76, 32, 42, 3, 252, 75, 32, 42, 3, 252, 74, 32, 42, 3, 254, 101, 32, 42, - 3, 254, 100, 32, 42, 3, 254, 99, 32, 42, 3, 254, 98, 32, 42, 3, 254, 97, - 32, 42, 3, 254, 96, 32, 42, 3, 254, 95, 32, 42, 3, 254, 94, 32, 42, 3, - 254, 92, 32, 42, 3, 254, 91, 32, 42, 3, 254, 90, 32, 42, 3, 254, 89, 32, - 42, 3, 254, 88, 32, 42, 3, 254, 87, 32, 42, 3, 254, 85, 32, 42, 3, 254, - 84, 32, 42, 3, 254, 83, 32, 42, 3, 254, 82, 32, 42, 3, 254, 81, 32, 42, - 3, 254, 80, 32, 42, 3, 254, 79, 32, 42, 3, 254, 78, 32, 42, 3, 254, 77, - 32, 42, 3, 254, 76, 32, 42, 3, 254, 75, 32, 42, 3, 254, 74, 32, 42, 3, - 254, 73, 32, 42, 3, 254, 72, 32, 42, 3, 254, 71, 32, 42, 3, 254, 70, 32, - 42, 3, 254, 69, 32, 42, 3, 254, 68, 32, 42, 3, 254, 67, 32, 42, 3, 254, - 65, 32, 42, 3, 254, 64, 32, 42, 3, 254, 63, 32, 42, 3, 254, 59, 32, 42, - 3, 254, 58, 32, 42, 3, 254, 57, 32, 42, 3, 254, 56, 32, 42, 3, 254, 52, - 32, 42, 3, 254, 51, 32, 42, 3, 254, 50, 32, 42, 3, 254, 49, 32, 42, 3, - 254, 48, 32, 42, 3, 254, 47, 32, 42, 3, 254, 46, 32, 42, 3, 254, 45, 32, - 42, 3, 254, 44, 32, 42, 3, 254, 43, 32, 42, 3, 254, 42, 32, 42, 3, 254, - 41, 32, 42, 3, 254, 40, 32, 42, 3, 254, 39, 32, 42, 3, 254, 38, 32, 42, - 3, 254, 37, 32, 42, 3, 254, 36, 32, 42, 3, 254, 35, 32, 42, 3, 254, 34, - 32, 42, 3, 254, 33, 32, 42, 3, 254, 32, 32, 42, 3, 254, 31, 32, 42, 3, - 254, 30, 32, 42, 3, 254, 28, 32, 42, 3, 254, 27, 32, 42, 3, 254, 26, 32, - 42, 3, 254, 25, 32, 42, 3, 254, 24, 32, 42, 3, 254, 22, 32, 42, 3, 254, - 21, 32, 42, 3, 254, 20, 32, 42, 3, 254, 19, 32, 42, 3, 254, 17, 32, 42, - 3, 254, 16, 32, 42, 3, 254, 15, 32, 42, 3, 253, 237, 32, 42, 3, 253, 235, - 32, 42, 3, 253, 233, 32, 42, 3, 253, 231, 32, 42, 3, 253, 229, 32, 42, 3, - 253, 227, 32, 42, 3, 253, 225, 32, 42, 3, 253, 223, 32, 42, 3, 253, 221, - 32, 42, 3, 253, 219, 32, 42, 3, 253, 217, 32, 42, 3, 253, 214, 32, 42, 3, - 253, 212, 32, 42, 3, 253, 210, 32, 42, 3, 253, 208, 32, 42, 3, 253, 206, - 32, 42, 3, 253, 204, 32, 42, 3, 253, 202, 32, 42, 3, 253, 200, 32, 42, 3, - 253, 118, 32, 42, 3, 253, 117, 32, 42, 3, 253, 116, 32, 42, 3, 253, 115, - 32, 42, 3, 253, 114, 32, 42, 3, 253, 113, 32, 42, 3, 253, 111, 32, 42, 3, - 253, 110, 32, 42, 3, 253, 109, 32, 42, 3, 253, 108, 32, 42, 3, 253, 107, - 32, 42, 3, 253, 106, 32, 42, 3, 253, 104, 32, 42, 3, 253, 103, 32, 42, 3, - 253, 99, 32, 42, 3, 253, 98, 32, 42, 3, 253, 96, 32, 42, 3, 253, 95, 32, - 42, 3, 253, 94, 32, 42, 3, 253, 93, 32, 42, 3, 253, 92, 32, 42, 3, 253, - 91, 32, 42, 3, 253, 90, 32, 42, 3, 253, 89, 32, 42, 3, 253, 88, 32, 42, - 3, 253, 87, 32, 42, 3, 253, 86, 32, 42, 3, 253, 85, 32, 42, 3, 253, 84, - 32, 42, 3, 253, 83, 32, 42, 3, 253, 82, 32, 42, 3, 253, 81, 32, 42, 3, - 253, 80, 32, 42, 3, 253, 79, 32, 42, 3, 253, 78, 32, 42, 3, 253, 77, 32, - 42, 3, 253, 76, 32, 42, 3, 253, 75, 32, 42, 3, 253, 74, 32, 42, 3, 253, - 73, 32, 42, 3, 253, 72, 32, 42, 3, 253, 71, 32, 42, 3, 253, 70, 32, 42, - 3, 253, 69, 32, 42, 3, 253, 68, 32, 42, 3, 253, 67, 32, 42, 3, 253, 66, - 32, 42, 3, 253, 65, 32, 42, 3, 253, 64, 32, 42, 3, 253, 63, 32, 42, 3, - 253, 62, 32, 42, 3, 253, 61, 32, 42, 3, 253, 60, 32, 42, 3, 253, 59, 32, - 42, 3, 253, 58, 32, 42, 3, 253, 57, 32, 42, 3, 253, 56, 32, 42, 3, 253, - 55, 32, 42, 3, 253, 54, 32, 42, 3, 253, 53, 32, 42, 3, 253, 52, 32, 42, - 3, 253, 51, 32, 42, 3, 253, 50, 32, 42, 3, 253, 49, 32, 42, 3, 253, 48, - 32, 42, 3, 253, 47, 32, 42, 3, 253, 46, 32, 42, 3, 253, 45, 32, 42, 3, - 253, 44, 32, 42, 3, 253, 43, 32, 42, 3, 253, 42, 32, 42, 3, 253, 41, 32, - 42, 3, 253, 40, 32, 42, 3, 253, 39, 32, 42, 3, 253, 38, 32, 42, 3, 253, - 37, 32, 42, 3, 253, 36, 32, 42, 3, 253, 35, 32, 42, 3, 253, 34, 32, 42, - 3, 253, 33, 32, 42, 3, 253, 32, 32, 42, 3, 253, 31, 32, 42, 3, 253, 30, - 32, 42, 3, 253, 29, 32, 42, 3, 253, 28, 32, 42, 3, 253, 27, 32, 42, 3, - 253, 26, 32, 42, 3, 253, 25, 32, 42, 3, 253, 24, 32, 42, 3, 253, 23, 32, - 42, 3, 253, 22, 32, 42, 3, 253, 21, 32, 42, 3, 253, 20, 32, 42, 3, 253, - 19, 32, 42, 3, 253, 18, 32, 42, 3, 253, 17, 32, 42, 3, 253, 16, 32, 42, - 3, 253, 15, 32, 42, 3, 253, 14, 32, 42, 3, 253, 13, 32, 42, 3, 253, 12, - 32, 42, 3, 253, 11, 32, 42, 3, 253, 10, 32, 42, 3, 253, 9, 32, 42, 3, - 253, 8, 32, 42, 3, 253, 7, 32, 42, 3, 253, 6, 32, 42, 3, 253, 5, 32, 42, - 3, 253, 4, 32, 42, 3, 253, 3, 32, 42, 3, 253, 2, 32, 42, 3, 253, 1, 32, - 42, 3, 253, 0, 32, 42, 3, 252, 255, 32, 42, 3, 252, 254, 32, 42, 3, 252, - 253, 32, 42, 3, 252, 252, 32, 42, 3, 252, 251, 32, 42, 3, 252, 250, 32, - 42, 3, 252, 249, 32, 42, 3, 252, 248, 32, 42, 3, 252, 247, 32, 42, 3, - 252, 246, 32, 42, 3, 252, 245, 32, 42, 3, 252, 244, 32, 42, 3, 252, 243, - 32, 42, 3, 252, 242, 32, 42, 3, 252, 241, 32, 42, 3, 252, 240, 32, 42, 3, - 252, 239, 32, 42, 3, 252, 238, 32, 42, 3, 252, 237, 32, 42, 3, 252, 236, - 65, 32, 42, 3, 252, 235, 250, 120, 32, 42, 3, 252, 234, 238, 127, 32, 42, - 3, 252, 233, 71, 32, 42, 3, 252, 232, 233, 175, 32, 42, 3, 252, 231, 230, - 116, 32, 42, 3, 252, 230, 223, 35, 32, 42, 3, 252, 229, 222, 152, 32, 42, - 3, 252, 228, 172, 32, 42, 3, 252, 227, 220, 130, 32, 42, 3, 252, 226, - 220, 129, 32, 42, 3, 252, 225, 220, 128, 32, 42, 3, 252, 224, 220, 127, - 32, 42, 3, 252, 223, 193, 224, 32, 42, 3, 252, 222, 192, 235, 32, 42, 3, - 252, 221, 192, 159, 32, 42, 3, 252, 220, 211, 110, 32, 42, 3, 252, 219, - 252, 69, 32, 42, 3, 252, 218, 249, 54, 32, 42, 3, 252, 217, 237, 193, 32, - 42, 3, 252, 216, 233, 183, 32, 42, 3, 252, 215, 223, 10, 32, 42, 3, 252, - 214, 32, 42, 3, 252, 213, 32, 42, 3, 252, 212, 32, 42, 3, 252, 211, 32, - 42, 3, 252, 210, 32, 42, 3, 252, 209, 32, 42, 3, 252, 208, 32, 42, 3, - 252, 207, 52, 1, 2, 6, 252, 206, 52, 1, 200, 182, 197, 238, 242, 83, 52, - 1, 200, 182, 132, 197, 238, 242, 83, 52, 1, 2, 252, 25, 52, 1, 2, 6, 250, - 120, 52, 1, 2, 78, 4, 102, 52, 1, 2, 235, 37, 237, 2, 52, 1, 2, 235, 37, - 237, 3, 4, 207, 24, 102, 52, 1, 2, 235, 37, 237, 3, 4, 238, 175, 52, 1, - 2, 237, 70, 237, 2, 52, 1, 2, 238, 128, 4, 199, 215, 52, 1, 2, 238, 128, - 4, 102, 52, 1, 2, 238, 128, 4, 228, 251, 23, 199, 215, 52, 1, 2, 207, 18, - 71, 52, 1, 2, 242, 219, 207, 18, 211, 77, 71, 52, 1, 2, 233, 37, 237, 2, - 52, 1, 2, 207, 140, 228, 187, 52, 1, 2, 6, 232, 51, 52, 1, 2, 232, 52, 4, - 102, 52, 1, 2, 6, 232, 52, 4, 102, 52, 1, 2, 230, 117, 4, 106, 52, 1, 2, - 6, 230, 116, 52, 1, 2, 229, 197, 4, 102, 52, 1, 2, 236, 139, 223, 36, 4, - 201, 28, 23, 102, 52, 1, 2, 218, 227, 237, 2, 52, 1, 2, 218, 170, 237, 2, - 52, 1, 2, 220, 143, 4, 248, 231, 52, 1, 2, 6, 220, 143, 4, 248, 231, 52, - 1, 2, 220, 143, 4, 207, 24, 228, 251, 23, 248, 231, 52, 1, 2, 219, 162, - 52, 1, 2, 219, 163, 4, 207, 24, 102, 52, 1, 2, 153, 192, 159, 52, 1, 2, - 153, 192, 160, 4, 248, 231, 52, 1, 2, 187, 4, 106, 52, 1, 2, 6, 211, 151, - 52, 1, 2, 242, 219, 211, 110, 52, 1, 2, 208, 104, 52, 1, 2, 153, 207, - 222, 4, 179, 219, 212, 52, 1, 2, 153, 207, 222, 4, 179, 219, 213, 23, - 207, 24, 102, 52, 1, 2, 207, 222, 4, 199, 215, 52, 1, 2, 207, 222, 4, - 232, 233, 52, 1, 2, 6, 146, 52, 1, 2, 199, 152, 237, 3, 4, 238, 175, 52, - 1, 2, 197, 170, 237, 2, 52, 1, 2, 197, 170, 237, 3, 4, 207, 24, 102, 52, - 1, 2, 199, 79, 237, 2, 52, 1, 2, 200, 44, 4, 207, 24, 102, 52, 1, 2, 196, - 13, 4, 50, 102, 52, 1, 2, 6, 192, 159, 52, 1, 231, 11, 201, 64, 4, 106, - 52, 1, 207, 18, 231, 11, 201, 64, 4, 106, 52, 1, 248, 172, 242, 231, 52, - 1, 237, 98, 242, 231, 52, 1, 220, 3, 242, 231, 52, 1, 251, 150, 242, 231, - 52, 1, 207, 24, 242, 232, 4, 207, 24, 102, 52, 1, 2, 206, 9, 4, 238, 175, - 238, 135, 5, 65, 238, 135, 5, 71, 238, 135, 5, 68, 238, 135, 5, 74, 238, - 135, 5, 66, 238, 135, 5, 223, 32, 238, 135, 5, 222, 201, 238, 135, 5, - 155, 238, 135, 5, 222, 22, 238, 135, 5, 221, 166, 238, 135, 5, 221, 67, - 238, 135, 5, 220, 232, 238, 135, 5, 173, 238, 135, 5, 219, 238, 238, 135, - 5, 219, 146, 238, 135, 5, 219, 43, 238, 135, 5, 218, 225, 238, 135, 5, - 174, 238, 135, 5, 216, 232, 238, 135, 5, 216, 100, 238, 135, 5, 216, 12, - 238, 135, 5, 215, 155, 238, 135, 5, 180, 238, 135, 5, 214, 121, 238, 135, - 5, 213, 219, 238, 135, 5, 213, 43, 238, 135, 5, 212, 178, 238, 135, 5, - 168, 238, 135, 5, 210, 63, 238, 135, 5, 209, 185, 238, 135, 5, 209, 73, - 238, 135, 5, 208, 165, 238, 135, 5, 165, 238, 135, 5, 207, 113, 238, 135, - 5, 207, 1, 238, 135, 5, 206, 162, 238, 135, 5, 206, 68, 238, 135, 5, 188, - 238, 135, 5, 205, 68, 238, 135, 5, 202, 222, 238, 135, 5, 202, 46, 238, - 135, 5, 201, 4, 238, 135, 5, 190, 190, 238, 135, 5, 199, 145, 238, 135, - 5, 198, 193, 238, 135, 5, 159, 238, 135, 5, 197, 94, 238, 135, 5, 193, - 190, 238, 135, 5, 193, 125, 238, 135, 5, 193, 86, 238, 135, 5, 193, 48, - 238, 135, 5, 192, 220, 238, 135, 5, 192, 214, 238, 135, 5, 191, 123, 238, - 135, 5, 191, 7, 223, 164, 251, 18, 1, 251, 190, 223, 164, 251, 18, 1, - 248, 211, 223, 164, 251, 18, 1, 231, 38, 223, 164, 251, 18, 1, 237, 252, - 223, 164, 251, 18, 1, 229, 245, 223, 164, 251, 18, 1, 193, 133, 223, 164, - 251, 18, 1, 191, 91, 223, 164, 251, 18, 1, 229, 184, 223, 164, 251, 18, - 1, 199, 69, 223, 164, 251, 18, 1, 191, 249, 223, 164, 251, 18, 1, 222, - 75, 223, 164, 251, 18, 1, 220, 26, 223, 164, 251, 18, 1, 216, 193, 223, - 164, 251, 18, 1, 212, 130, 223, 164, 251, 18, 1, 205, 148, 223, 164, 251, - 18, 1, 250, 126, 223, 164, 251, 18, 1, 210, 63, 223, 164, 251, 18, 1, - 205, 189, 223, 164, 251, 18, 1, 208, 37, 223, 164, 251, 18, 1, 207, 38, - 223, 164, 251, 18, 1, 203, 69, 223, 164, 251, 18, 1, 199, 159, 223, 164, - 251, 18, 205, 54, 56, 223, 164, 251, 18, 31, 107, 223, 164, 251, 18, 31, - 109, 223, 164, 251, 18, 31, 138, 223, 164, 251, 18, 31, 199, 95, 223, - 164, 251, 18, 31, 197, 32, 223, 164, 251, 18, 31, 91, 228, 140, 223, 164, - 251, 18, 31, 91, 189, 223, 164, 251, 18, 31, 199, 96, 189, 210, 180, 1, - 251, 190, 210, 180, 1, 248, 211, 210, 180, 1, 231, 38, 210, 180, 1, 237, - 252, 210, 180, 1, 229, 245, 210, 180, 1, 193, 133, 210, 180, 1, 191, 91, - 210, 180, 1, 229, 184, 210, 180, 1, 199, 69, 210, 180, 1, 191, 249, 210, - 180, 1, 222, 75, 210, 180, 1, 220, 26, 210, 180, 1, 216, 193, 210, 180, - 1, 53, 212, 130, 210, 180, 1, 212, 130, 210, 180, 1, 205, 148, 210, 180, - 1, 250, 126, 210, 180, 1, 210, 63, 210, 180, 1, 205, 189, 210, 180, 1, - 208, 37, 210, 180, 1, 207, 38, 210, 180, 1, 203, 69, 210, 180, 1, 199, - 159, 210, 180, 219, 219, 232, 201, 210, 180, 206, 203, 232, 201, 210, - 180, 31, 107, 210, 180, 31, 109, 210, 180, 31, 138, 210, 180, 31, 134, - 210, 180, 31, 149, 210, 180, 31, 199, 95, 210, 180, 31, 197, 32, 214, - 246, 1, 53, 251, 190, 214, 246, 1, 251, 190, 214, 246, 1, 53, 248, 211, - 214, 246, 1, 248, 211, 214, 246, 1, 231, 38, 214, 246, 1, 237, 252, 214, - 246, 1, 53, 229, 245, 214, 246, 1, 229, 245, 214, 246, 1, 193, 133, 214, - 246, 1, 191, 91, 214, 246, 1, 229, 184, 214, 246, 1, 199, 69, 214, 246, - 1, 53, 191, 249, 214, 246, 1, 191, 249, 214, 246, 1, 53, 222, 75, 214, - 246, 1, 222, 75, 214, 246, 1, 53, 220, 26, 214, 246, 1, 220, 26, 214, - 246, 1, 53, 216, 193, 214, 246, 1, 216, 193, 214, 246, 1, 53, 212, 130, - 214, 246, 1, 212, 130, 214, 246, 1, 205, 148, 214, 246, 1, 250, 126, 214, - 246, 1, 210, 63, 214, 246, 1, 205, 189, 214, 246, 1, 208, 37, 214, 246, - 1, 207, 38, 214, 246, 1, 53, 203, 69, 214, 246, 1, 203, 69, 214, 246, 1, - 199, 159, 214, 246, 31, 107, 214, 246, 31, 109, 214, 246, 31, 138, 214, - 246, 31, 134, 214, 246, 238, 202, 31, 134, 214, 246, 31, 149, 214, 246, - 31, 199, 95, 214, 246, 31, 197, 32, 214, 246, 31, 91, 228, 140, 230, 4, - 1, 251, 190, 230, 4, 1, 248, 211, 230, 4, 1, 231, 38, 230, 4, 1, 237, - 251, 230, 4, 1, 229, 245, 230, 4, 1, 193, 133, 230, 4, 1, 191, 89, 230, - 4, 1, 229, 184, 230, 4, 1, 199, 69, 230, 4, 1, 191, 249, 230, 4, 1, 222, - 75, 230, 4, 1, 220, 26, 230, 4, 1, 216, 193, 230, 4, 1, 212, 130, 230, 4, - 1, 205, 148, 230, 4, 1, 250, 124, 230, 4, 1, 210, 63, 230, 4, 1, 205, - 189, 230, 4, 1, 208, 37, 230, 4, 1, 203, 69, 230, 4, 1, 199, 159, 230, 4, - 31, 107, 230, 4, 31, 149, 230, 4, 31, 199, 95, 230, 4, 31, 197, 32, 230, - 4, 31, 91, 228, 140, 209, 197, 1, 251, 187, 209, 197, 1, 248, 214, 209, - 197, 1, 231, 213, 209, 197, 1, 237, 108, 209, 197, 1, 229, 245, 209, 197, - 1, 193, 140, 209, 197, 1, 191, 115, 209, 197, 1, 229, 186, 209, 197, 1, - 199, 73, 209, 197, 1, 191, 250, 209, 197, 1, 222, 106, 209, 197, 1, 220, - 32, 209, 197, 1, 216, 193, 209, 197, 1, 212, 130, 209, 197, 1, 204, 19, - 209, 197, 1, 251, 230, 209, 197, 1, 210, 63, 209, 197, 1, 205, 191, 209, - 197, 1, 208, 42, 209, 197, 1, 206, 124, 209, 197, 1, 203, 69, 209, 197, - 1, 199, 166, 209, 197, 31, 107, 209, 197, 31, 199, 95, 209, 197, 31, 197, - 32, 209, 197, 31, 91, 228, 140, 209, 197, 31, 109, 209, 197, 31, 138, - 209, 197, 193, 23, 204, 10, 218, 180, 1, 65, 218, 180, 1, 250, 120, 218, - 180, 1, 232, 51, 218, 180, 1, 238, 127, 218, 180, 1, 71, 218, 180, 1, - 196, 12, 218, 180, 1, 68, 218, 180, 1, 192, 159, 218, 180, 1, 222, 152, - 218, 180, 1, 172, 218, 180, 1, 218, 168, 218, 180, 1, 215, 61, 218, 180, - 1, 74, 218, 180, 1, 146, 218, 180, 1, 201, 178, 218, 180, 1, 200, 43, - 218, 180, 1, 66, 218, 180, 1, 233, 175, 218, 180, 1, 208, 104, 218, 180, - 1, 206, 8, 218, 180, 1, 197, 135, 218, 180, 1, 251, 132, 218, 180, 1, - 234, 103, 218, 180, 1, 218, 183, 218, 180, 1, 213, 80, 218, 180, 1, 247, - 193, 218, 180, 197, 238, 77, 152, 229, 144, 1, 65, 152, 229, 144, 1, 71, - 152, 229, 144, 1, 68, 152, 229, 144, 1, 74, 152, 229, 144, 1, 170, 152, - 229, 144, 1, 193, 190, 152, 229, 144, 1, 249, 153, 152, 229, 144, 1, 249, - 152, 152, 229, 144, 1, 168, 152, 229, 144, 1, 174, 152, 229, 144, 1, 180, - 152, 229, 144, 1, 215, 5, 152, 229, 144, 1, 214, 121, 152, 229, 144, 1, - 214, 119, 152, 229, 144, 1, 165, 152, 229, 144, 1, 207, 184, 152, 229, - 144, 1, 173, 152, 229, 144, 1, 221, 215, 152, 229, 144, 1, 229, 177, 152, - 229, 144, 1, 188, 152, 229, 144, 1, 205, 205, 152, 229, 144, 1, 205, 68, - 152, 229, 144, 1, 155, 152, 229, 144, 1, 208, 96, 152, 229, 144, 1, 190, - 190, 152, 229, 144, 1, 199, 250, 152, 229, 144, 1, 199, 145, 152, 229, - 144, 1, 199, 143, 152, 229, 144, 1, 159, 152, 229, 144, 1, 238, 32, 152, - 229, 144, 16, 195, 63, 152, 229, 144, 16, 195, 62, 152, 238, 166, 1, 65, - 152, 238, 166, 1, 71, 152, 238, 166, 1, 68, 152, 238, 166, 1, 74, 152, - 238, 166, 1, 170, 152, 238, 166, 1, 193, 190, 152, 238, 166, 1, 249, 153, - 152, 238, 166, 1, 168, 152, 238, 166, 1, 174, 152, 238, 166, 1, 180, 152, - 238, 166, 1, 214, 121, 152, 238, 166, 1, 165, 152, 238, 166, 1, 173, 152, - 238, 166, 1, 221, 215, 152, 238, 166, 1, 229, 177, 152, 238, 166, 1, 188, - 152, 238, 166, 1, 251, 14, 188, 152, 238, 166, 1, 205, 68, 152, 238, 166, - 1, 155, 152, 238, 166, 1, 208, 96, 152, 238, 166, 1, 190, 190, 152, 238, - 166, 1, 199, 145, 152, 238, 166, 1, 159, 152, 238, 166, 1, 238, 32, 152, - 238, 166, 232, 118, 234, 128, 197, 39, 152, 238, 166, 232, 118, 91, 230, - 70, 152, 238, 166, 219, 28, 206, 168, 152, 238, 166, 219, 28, 223, 169, - 152, 238, 166, 31, 107, 152, 238, 166, 31, 109, 152, 238, 166, 31, 138, - 152, 238, 166, 31, 134, 152, 238, 166, 31, 149, 152, 238, 166, 31, 169, - 152, 238, 166, 31, 175, 152, 238, 166, 31, 171, 152, 238, 166, 31, 178, - 152, 238, 166, 31, 199, 95, 152, 238, 166, 31, 197, 32, 152, 238, 166, - 31, 198, 249, 152, 238, 166, 31, 232, 135, 152, 238, 166, 31, 233, 15, - 152, 238, 166, 31, 202, 120, 152, 238, 166, 31, 203, 241, 152, 238, 166, - 31, 91, 228, 140, 152, 238, 166, 31, 105, 228, 140, 152, 238, 166, 31, - 115, 228, 140, 152, 238, 166, 31, 232, 128, 228, 140, 152, 238, 166, 31, - 232, 226, 228, 140, 152, 238, 166, 31, 202, 136, 228, 140, 152, 238, 166, - 31, 203, 247, 228, 140, 152, 238, 166, 31, 234, 164, 228, 140, 152, 238, - 166, 31, 213, 175, 228, 140, 152, 238, 166, 31, 91, 189, 152, 238, 166, - 31, 105, 189, 152, 238, 166, 31, 115, 189, 152, 238, 166, 31, 232, 128, - 189, 152, 238, 166, 31, 232, 226, 189, 152, 238, 166, 31, 202, 136, 189, - 152, 238, 166, 31, 203, 247, 189, 152, 238, 166, 31, 234, 164, 189, 152, - 238, 166, 31, 213, 175, 189, 152, 238, 166, 31, 199, 96, 189, 152, 238, - 166, 31, 197, 33, 189, 152, 238, 166, 31, 198, 250, 189, 152, 238, 166, - 31, 232, 136, 189, 152, 238, 166, 31, 233, 16, 189, 152, 238, 166, 31, - 202, 121, 189, 152, 238, 166, 31, 203, 242, 189, 152, 238, 166, 31, 234, - 154, 189, 152, 238, 166, 31, 213, 170, 189, 152, 238, 166, 31, 91, 228, - 141, 189, 152, 238, 166, 31, 105, 228, 141, 189, 152, 238, 166, 31, 115, - 228, 141, 189, 152, 238, 166, 31, 232, 128, 228, 141, 189, 152, 238, 166, - 31, 232, 226, 228, 141, 189, 152, 238, 166, 31, 202, 136, 228, 141, 189, - 152, 238, 166, 31, 203, 247, 228, 141, 189, 152, 238, 166, 31, 234, 164, - 228, 141, 189, 152, 238, 166, 31, 213, 175, 228, 141, 189, 152, 238, 166, - 232, 118, 91, 197, 40, 152, 238, 166, 232, 118, 105, 197, 39, 152, 238, - 166, 232, 118, 115, 197, 39, 152, 238, 166, 232, 118, 232, 128, 197, 39, - 152, 238, 166, 232, 118, 232, 226, 197, 39, 152, 238, 166, 232, 118, 202, - 136, 197, 39, 152, 238, 166, 232, 118, 203, 247, 197, 39, 152, 238, 166, - 232, 118, 234, 164, 197, 39, 152, 238, 166, 232, 118, 213, 175, 197, 39, - 152, 238, 166, 232, 118, 199, 96, 197, 39, 221, 199, 1, 65, 221, 199, 18, - 3, 68, 221, 199, 18, 3, 66, 221, 199, 18, 3, 117, 146, 221, 199, 18, 3, - 71, 221, 199, 18, 3, 74, 221, 199, 18, 219, 198, 77, 221, 199, 3, 55, - 206, 189, 60, 221, 199, 3, 251, 71, 221, 199, 3, 195, 35, 221, 199, 1, - 155, 221, 199, 1, 221, 215, 221, 199, 1, 231, 240, 221, 199, 1, 231, 91, - 221, 199, 1, 247, 160, 221, 199, 1, 247, 1, 221, 199, 1, 223, 32, 221, - 199, 1, 212, 101, 221, 199, 1, 197, 132, 221, 199, 1, 197, 120, 221, 199, - 1, 237, 191, 221, 199, 1, 237, 175, 221, 199, 1, 213, 79, 221, 199, 1, - 190, 190, 221, 199, 1, 199, 49, 221, 199, 1, 238, 32, 221, 199, 1, 237, - 68, 221, 199, 1, 180, 221, 199, 1, 168, 221, 199, 1, 209, 228, 221, 199, - 1, 249, 153, 221, 199, 1, 248, 203, 221, 199, 1, 174, 221, 199, 1, 170, - 221, 199, 1, 165, 221, 199, 1, 173, 221, 199, 1, 195, 188, 221, 199, 1, - 203, 165, 221, 199, 1, 201, 175, 221, 199, 1, 188, 221, 199, 1, 191, 123, - 221, 199, 1, 140, 221, 199, 1, 221, 101, 221, 199, 1, 197, 100, 221, 199, - 1, 197, 101, 221, 199, 1, 195, 70, 221, 199, 3, 249, 88, 58, 221, 199, 3, - 247, 74, 221, 199, 3, 75, 60, 221, 199, 195, 40, 221, 199, 17, 107, 221, - 199, 17, 109, 221, 199, 17, 138, 221, 199, 17, 134, 221, 199, 31, 199, - 95, 221, 199, 31, 197, 32, 221, 199, 31, 91, 228, 140, 221, 199, 31, 91, - 189, 221, 199, 232, 118, 91, 230, 70, 221, 199, 208, 152, 236, 140, 221, - 199, 208, 152, 2, 243, 10, 221, 199, 208, 152, 243, 10, 221, 199, 208, - 152, 238, 228, 164, 221, 199, 208, 152, 217, 83, 221, 199, 208, 152, 218, - 246, 221, 199, 208, 152, 237, 238, 221, 199, 208, 152, 55, 237, 238, 221, - 199, 208, 152, 219, 106, 39, 202, 2, 251, 29, 1, 229, 245, 39, 202, 2, - 251, 29, 1, 220, 26, 39, 202, 2, 251, 29, 1, 229, 184, 39, 202, 2, 251, - 29, 1, 216, 193, 39, 202, 2, 251, 29, 1, 208, 37, 39, 202, 2, 251, 29, 1, - 193, 133, 39, 202, 2, 251, 29, 1, 203, 69, 39, 202, 2, 251, 29, 1, 207, - 38, 39, 202, 2, 251, 29, 1, 248, 211, 39, 202, 2, 251, 29, 1, 199, 159, - 39, 202, 2, 251, 29, 1, 205, 122, 39, 202, 2, 251, 29, 1, 222, 75, 39, - 202, 2, 251, 29, 1, 212, 130, 39, 202, 2, 251, 29, 1, 221, 194, 39, 202, - 2, 251, 29, 1, 205, 189, 39, 202, 2, 251, 29, 1, 205, 148, 39, 202, 2, - 251, 29, 1, 233, 59, 39, 202, 2, 251, 29, 1, 251, 192, 39, 202, 2, 251, - 29, 1, 250, 124, 39, 202, 2, 251, 29, 1, 237, 65, 39, 202, 2, 251, 29, 1, - 231, 38, 39, 202, 2, 251, 29, 1, 237, 252, 39, 202, 2, 251, 29, 1, 231, - 79, 39, 202, 2, 251, 29, 1, 199, 69, 39, 202, 2, 251, 29, 1, 191, 89, 39, - 202, 2, 251, 29, 1, 237, 62, 39, 202, 2, 251, 29, 1, 191, 249, 39, 202, - 2, 251, 29, 1, 199, 35, 39, 202, 2, 251, 29, 1, 199, 14, 39, 202, 2, 251, - 29, 31, 107, 39, 202, 2, 251, 29, 31, 233, 15, 39, 202, 2, 251, 29, 167, - 223, 144, 39, 186, 251, 29, 1, 229, 210, 39, 186, 251, 29, 1, 220, 35, - 39, 186, 251, 29, 1, 230, 81, 39, 186, 251, 29, 1, 216, 208, 39, 186, - 251, 29, 1, 208, 89, 39, 186, 251, 29, 1, 193, 133, 39, 186, 251, 29, 1, - 234, 20, 39, 186, 251, 29, 1, 207, 71, 39, 186, 251, 29, 1, 248, 245, 39, - 186, 251, 29, 1, 199, 114, 39, 186, 251, 29, 1, 234, 21, 39, 186, 251, - 29, 1, 222, 106, 39, 186, 251, 29, 1, 213, 24, 39, 186, 251, 29, 1, 221, - 210, 39, 186, 251, 29, 1, 205, 192, 39, 186, 251, 29, 1, 234, 19, 39, - 186, 251, 29, 1, 233, 46, 39, 186, 251, 29, 1, 251, 192, 39, 186, 251, - 29, 1, 251, 230, 39, 186, 251, 29, 1, 238, 26, 39, 186, 251, 29, 1, 231, - 156, 39, 186, 251, 29, 1, 238, 3, 39, 186, 251, 29, 1, 231, 86, 39, 186, - 251, 29, 1, 199, 219, 39, 186, 251, 29, 1, 191, 113, 39, 186, 251, 29, 1, - 199, 41, 39, 186, 251, 29, 1, 192, 75, 39, 186, 251, 29, 1, 199, 29, 39, - 186, 251, 29, 1, 191, 116, 39, 186, 251, 29, 31, 107, 39, 186, 251, 29, - 31, 199, 95, 39, 186, 251, 29, 31, 197, 32, 217, 81, 1, 251, 190, 217, - 81, 1, 248, 211, 217, 81, 1, 248, 194, 217, 81, 1, 231, 38, 217, 81, 1, - 231, 64, 217, 81, 1, 237, 252, 217, 81, 1, 229, 245, 217, 81, 1, 193, - 133, 217, 81, 3, 196, 158, 217, 81, 1, 191, 91, 217, 81, 1, 191, 64, 217, - 81, 1, 223, 12, 217, 81, 1, 222, 248, 217, 81, 1, 229, 184, 217, 81, 1, - 199, 69, 217, 81, 1, 191, 249, 217, 81, 1, 222, 75, 217, 81, 1, 192, 217, - 217, 81, 1, 221, 201, 217, 81, 1, 220, 26, 217, 81, 1, 237, 61, 217, 81, - 1, 199, 40, 217, 81, 1, 216, 193, 217, 81, 1, 212, 130, 217, 81, 1, 205, - 148, 217, 81, 1, 250, 126, 217, 81, 1, 252, 158, 217, 81, 1, 210, 63, - 217, 81, 1, 233, 59, 217, 81, 1, 205, 189, 217, 81, 1, 208, 37, 217, 81, - 1, 192, 193, 217, 81, 1, 208, 64, 217, 81, 1, 207, 38, 217, 81, 1, 203, - 69, 217, 81, 1, 201, 143, 217, 81, 1, 199, 159, 217, 81, 252, 68, 87, 58, - 217, 81, 252, 68, 87, 60, 217, 81, 31, 107, 217, 81, 31, 149, 217, 81, - 31, 199, 95, 217, 81, 31, 197, 32, 217, 81, 31, 91, 228, 140, 217, 81, - 208, 152, 201, 102, 217, 81, 208, 152, 232, 201, 217, 81, 208, 152, 55, - 75, 193, 53, 236, 140, 217, 81, 208, 152, 75, 193, 53, 236, 140, 217, 81, - 208, 152, 236, 140, 217, 81, 208, 152, 105, 236, 138, 217, 81, 208, 152, - 219, 113, 233, 3, 250, 142, 1, 65, 250, 142, 1, 252, 206, 250, 142, 1, - 251, 68, 250, 142, 1, 252, 164, 250, 142, 1, 251, 132, 250, 142, 1, 252, - 166, 250, 142, 1, 252, 25, 250, 142, 1, 252, 21, 250, 142, 1, 71, 250, - 142, 1, 234, 188, 250, 142, 1, 74, 250, 142, 1, 211, 87, 250, 142, 1, 68, - 250, 142, 1, 223, 199, 250, 142, 1, 66, 250, 142, 1, 196, 30, 250, 142, - 1, 222, 22, 250, 142, 1, 192, 214, 250, 142, 1, 192, 173, 250, 142, 1, - 192, 184, 250, 142, 1, 231, 165, 250, 142, 1, 231, 122, 250, 142, 1, 231, - 77, 250, 142, 1, 247, 42, 250, 142, 1, 223, 10, 250, 142, 1, 199, 145, - 250, 142, 1, 199, 33, 250, 142, 1, 237, 146, 250, 142, 1, 237, 59, 250, - 142, 1, 197, 127, 250, 142, 1, 210, 63, 250, 142, 1, 233, 59, 250, 142, - 1, 249, 17, 250, 142, 1, 248, 196, 250, 142, 1, 214, 55, 250, 142, 1, - 213, 226, 250, 142, 1, 213, 227, 250, 142, 1, 214, 121, 250, 142, 1, 212, - 90, 250, 142, 1, 213, 74, 250, 142, 1, 216, 232, 250, 142, 1, 229, 73, - 250, 142, 1, 191, 173, 250, 142, 1, 192, 80, 250, 142, 1, 195, 153, 250, - 142, 1, 207, 113, 250, 142, 1, 219, 238, 250, 142, 1, 205, 68, 250, 142, - 1, 191, 87, 250, 142, 1, 203, 113, 250, 142, 1, 191, 62, 250, 142, 1, - 202, 229, 250, 142, 1, 201, 144, 250, 142, 1, 229, 245, 250, 142, 252, - 68, 77, 198, 138, 105, 185, 139, 91, 75, 208, 151, 2, 105, 185, 139, 91, - 75, 208, 151, 220, 13, 105, 185, 139, 91, 75, 208, 151, 220, 13, 91, 75, - 139, 105, 185, 208, 151, 220, 13, 105, 206, 185, 139, 91, 206, 189, 208, - 151, 220, 13, 91, 206, 189, 139, 105, 206, 185, 208, 151, 223, 122, 210, - 106, 1, 251, 190, 223, 122, 210, 106, 1, 248, 211, 223, 122, 210, 106, 1, - 231, 38, 223, 122, 210, 106, 1, 237, 252, 223, 122, 210, 106, 1, 229, - 245, 223, 122, 210, 106, 1, 193, 133, 223, 122, 210, 106, 1, 191, 91, - 223, 122, 210, 106, 1, 229, 184, 223, 122, 210, 106, 1, 199, 69, 223, - 122, 210, 106, 1, 191, 249, 223, 122, 210, 106, 1, 222, 75, 223, 122, - 210, 106, 1, 220, 26, 223, 122, 210, 106, 1, 216, 193, 223, 122, 210, - 106, 1, 212, 130, 223, 122, 210, 106, 1, 205, 148, 223, 122, 210, 106, 1, - 250, 126, 223, 122, 210, 106, 1, 210, 63, 223, 122, 210, 106, 1, 205, - 189, 223, 122, 210, 106, 1, 208, 37, 223, 122, 210, 106, 1, 207, 38, 223, - 122, 210, 106, 1, 203, 69, 223, 122, 210, 106, 1, 199, 159, 223, 122, - 210, 106, 31, 107, 223, 122, 210, 106, 31, 109, 223, 122, 210, 106, 31, - 138, 223, 122, 210, 106, 31, 134, 223, 122, 210, 106, 31, 199, 95, 223, - 122, 210, 106, 31, 197, 32, 223, 122, 210, 106, 31, 91, 228, 140, 223, - 122, 210, 106, 31, 91, 189, 223, 122, 210, 199, 1, 251, 190, 223, 122, - 210, 199, 1, 248, 211, 223, 122, 210, 199, 1, 231, 38, 223, 122, 210, - 199, 1, 237, 252, 223, 122, 210, 199, 1, 229, 245, 223, 122, 210, 199, 1, - 193, 132, 223, 122, 210, 199, 1, 191, 91, 223, 122, 210, 199, 1, 229, - 184, 223, 122, 210, 199, 1, 199, 69, 223, 122, 210, 199, 1, 191, 249, - 223, 122, 210, 199, 1, 222, 75, 223, 122, 210, 199, 1, 220, 26, 223, 122, - 210, 199, 1, 216, 192, 223, 122, 210, 199, 1, 212, 130, 223, 122, 210, - 199, 1, 205, 148, 223, 122, 210, 199, 1, 210, 63, 223, 122, 210, 199, 1, - 205, 189, 223, 122, 210, 199, 1, 203, 69, 223, 122, 210, 199, 1, 199, - 159, 223, 122, 210, 199, 31, 107, 223, 122, 210, 199, 31, 109, 223, 122, - 210, 199, 31, 138, 223, 122, 210, 199, 31, 134, 223, 122, 210, 199, 31, - 199, 95, 223, 122, 210, 199, 31, 197, 32, 223, 122, 210, 199, 31, 91, - 228, 140, 223, 122, 210, 199, 31, 91, 189, 208, 177, 210, 199, 1, 251, - 190, 208, 177, 210, 199, 1, 248, 211, 208, 177, 210, 199, 1, 231, 38, - 208, 177, 210, 199, 1, 237, 252, 208, 177, 210, 199, 1, 229, 245, 208, - 177, 210, 199, 1, 193, 132, 208, 177, 210, 199, 1, 191, 91, 208, 177, - 210, 199, 1, 229, 184, 208, 177, 210, 199, 1, 191, 249, 208, 177, 210, - 199, 1, 222, 75, 208, 177, 210, 199, 1, 220, 26, 208, 177, 210, 199, 1, - 216, 192, 208, 177, 210, 199, 1, 212, 130, 208, 177, 210, 199, 1, 205, - 148, 208, 177, 210, 199, 1, 210, 63, 208, 177, 210, 199, 1, 205, 189, - 208, 177, 210, 199, 1, 203, 69, 208, 177, 210, 199, 1, 199, 159, 208, - 177, 210, 199, 205, 54, 77, 208, 177, 210, 199, 153, 205, 54, 77, 208, - 177, 210, 199, 232, 128, 185, 4, 238, 217, 208, 177, 210, 199, 232, 128, - 185, 4, 236, 140, 208, 177, 210, 199, 31, 107, 208, 177, 210, 199, 31, - 109, 208, 177, 210, 199, 31, 138, 208, 177, 210, 199, 31, 134, 208, 177, - 210, 199, 31, 199, 95, 208, 177, 210, 199, 31, 197, 32, 208, 177, 210, - 199, 31, 91, 228, 140, 39, 197, 61, 1, 211, 44, 65, 39, 197, 61, 1, 192, - 68, 65, 39, 197, 61, 1, 192, 68, 252, 25, 39, 197, 61, 1, 211, 44, 68, - 39, 197, 61, 1, 192, 68, 68, 39, 197, 61, 1, 192, 68, 71, 39, 197, 61, 1, - 211, 44, 74, 39, 197, 61, 1, 211, 44, 211, 151, 39, 197, 61, 1, 192, 68, - 211, 151, 39, 197, 61, 1, 211, 44, 252, 155, 39, 197, 61, 1, 192, 68, - 252, 155, 39, 197, 61, 1, 211, 44, 252, 24, 39, 197, 61, 1, 192, 68, 252, - 24, 39, 197, 61, 1, 211, 44, 251, 253, 39, 197, 61, 1, 192, 68, 251, 253, - 39, 197, 61, 1, 211, 44, 252, 19, 39, 197, 61, 1, 192, 68, 252, 19, 39, - 197, 61, 1, 211, 44, 252, 42, 39, 197, 61, 1, 192, 68, 252, 42, 39, 197, - 61, 1, 211, 44, 252, 23, 39, 197, 61, 1, 211, 44, 233, 182, 39, 197, 61, - 1, 192, 68, 233, 182, 39, 197, 61, 1, 211, 44, 250, 131, 39, 197, 61, 1, - 192, 68, 250, 131, 39, 197, 61, 1, 211, 44, 252, 6, 39, 197, 61, 1, 192, - 68, 252, 6, 39, 197, 61, 1, 211, 44, 252, 17, 39, 197, 61, 1, 192, 68, - 252, 17, 39, 197, 61, 1, 211, 44, 211, 149, 39, 197, 61, 1, 192, 68, 211, - 149, 39, 197, 61, 1, 211, 44, 251, 207, 39, 197, 61, 1, 192, 68, 251, - 207, 39, 197, 61, 1, 211, 44, 252, 16, 39, 197, 61, 1, 211, 44, 234, 118, - 39, 197, 61, 1, 211, 44, 234, 114, 39, 197, 61, 1, 211, 44, 251, 132, 39, - 197, 61, 1, 211, 44, 252, 14, 39, 197, 61, 1, 192, 68, 252, 14, 39, 197, - 61, 1, 211, 44, 234, 80, 39, 197, 61, 1, 192, 68, 234, 80, 39, 197, 61, - 1, 211, 44, 234, 100, 39, 197, 61, 1, 192, 68, 234, 100, 39, 197, 61, 1, - 211, 44, 234, 66, 39, 197, 61, 1, 192, 68, 234, 66, 39, 197, 61, 1, 192, - 68, 251, 122, 39, 197, 61, 1, 211, 44, 234, 88, 39, 197, 61, 1, 192, 68, - 252, 13, 39, 197, 61, 1, 211, 44, 234, 56, 39, 197, 61, 1, 211, 44, 211, - 78, 39, 197, 61, 1, 211, 44, 228, 28, 39, 197, 61, 1, 211, 44, 234, 197, - 39, 197, 61, 1, 192, 68, 234, 197, 39, 197, 61, 1, 211, 44, 251, 37, 39, - 197, 61, 1, 192, 68, 251, 37, 39, 197, 61, 1, 211, 44, 223, 79, 39, 197, - 61, 1, 192, 68, 223, 79, 39, 197, 61, 1, 211, 44, 211, 58, 39, 197, 61, - 1, 192, 68, 211, 58, 39, 197, 61, 1, 211, 44, 251, 33, 39, 197, 61, 1, - 192, 68, 251, 33, 39, 197, 61, 1, 211, 44, 252, 12, 39, 197, 61, 1, 211, - 44, 250, 219, 39, 197, 61, 1, 211, 44, 252, 10, 39, 197, 61, 1, 211, 44, - 250, 209, 39, 197, 61, 1, 192, 68, 250, 209, 39, 197, 61, 1, 211, 44, - 234, 12, 39, 197, 61, 1, 192, 68, 234, 12, 39, 197, 61, 1, 211, 44, 250, - 182, 39, 197, 61, 1, 192, 68, 250, 182, 39, 197, 61, 1, 211, 44, 252, 7, - 39, 197, 61, 1, 192, 68, 252, 7, 39, 197, 61, 1, 211, 44, 211, 30, 39, - 197, 61, 1, 211, 44, 249, 71, 39, 177, 6, 1, 65, 39, 177, 6, 1, 252, 206, - 39, 177, 6, 1, 234, 199, 39, 177, 6, 1, 251, 144, 39, 177, 6, 1, 234, - 197, 39, 177, 6, 1, 234, 100, 39, 177, 6, 1, 234, 193, 39, 177, 6, 1, - 234, 192, 39, 177, 6, 1, 251, 125, 39, 177, 6, 1, 71, 39, 177, 6, 1, 242, - 220, 71, 39, 177, 6, 1, 234, 188, 39, 177, 6, 1, 234, 181, 39, 177, 6, 1, - 234, 180, 39, 177, 6, 1, 234, 176, 39, 177, 6, 1, 234, 173, 39, 177, 6, - 1, 68, 39, 177, 6, 1, 223, 199, 39, 177, 6, 1, 234, 150, 39, 177, 6, 1, - 234, 147, 39, 177, 6, 1, 251, 216, 39, 177, 6, 1, 196, 86, 39, 177, 6, 1, - 234, 140, 39, 177, 6, 1, 234, 117, 39, 177, 6, 1, 234, 114, 39, 177, 6, - 1, 234, 103, 39, 177, 6, 1, 234, 66, 39, 177, 6, 1, 74, 39, 177, 6, 1, - 211, 87, 39, 177, 6, 1, 213, 182, 211, 151, 39, 177, 6, 1, 206, 58, 211, - 151, 39, 177, 6, 1, 211, 150, 39, 177, 6, 1, 234, 56, 39, 177, 6, 1, 234, - 108, 39, 177, 6, 1, 234, 34, 39, 177, 6, 1, 203, 40, 234, 34, 39, 177, 6, - 1, 234, 22, 39, 177, 6, 1, 234, 1, 39, 177, 6, 1, 233, 255, 39, 177, 6, - 1, 234, 80, 39, 177, 6, 1, 233, 243, 39, 177, 6, 1, 234, 195, 39, 177, 6, - 1, 66, 39, 177, 6, 1, 196, 30, 39, 177, 6, 1, 213, 182, 196, 152, 39, - 177, 6, 1, 206, 58, 196, 152, 39, 177, 6, 1, 233, 230, 39, 177, 6, 1, - 233, 182, 39, 177, 6, 1, 233, 177, 39, 177, 6, 1, 234, 79, 56, 39, 177, - 6, 1, 196, 45, 39, 177, 2, 1, 65, 39, 177, 2, 1, 252, 206, 39, 177, 2, 1, - 234, 199, 39, 177, 2, 1, 251, 144, 39, 177, 2, 1, 234, 197, 39, 177, 2, - 1, 234, 100, 39, 177, 2, 1, 234, 193, 39, 177, 2, 1, 234, 192, 39, 177, - 2, 1, 251, 125, 39, 177, 2, 1, 71, 39, 177, 2, 1, 242, 220, 71, 39, 177, - 2, 1, 234, 188, 39, 177, 2, 1, 234, 181, 39, 177, 2, 1, 234, 180, 39, - 177, 2, 1, 234, 176, 39, 177, 2, 1, 234, 173, 39, 177, 2, 1, 68, 39, 177, - 2, 1, 223, 199, 39, 177, 2, 1, 234, 150, 39, 177, 2, 1, 234, 147, 39, - 177, 2, 1, 251, 216, 39, 177, 2, 1, 196, 86, 39, 177, 2, 1, 234, 140, 39, - 177, 2, 1, 234, 117, 39, 177, 2, 1, 234, 114, 39, 177, 2, 1, 234, 103, - 39, 177, 2, 1, 234, 66, 39, 177, 2, 1, 74, 39, 177, 2, 1, 211, 87, 39, - 177, 2, 1, 213, 182, 211, 151, 39, 177, 2, 1, 206, 58, 211, 151, 39, 177, - 2, 1, 211, 150, 39, 177, 2, 1, 234, 56, 39, 177, 2, 1, 234, 108, 39, 177, - 2, 1, 234, 34, 39, 177, 2, 1, 203, 40, 234, 34, 39, 177, 2, 1, 234, 22, - 39, 177, 2, 1, 234, 1, 39, 177, 2, 1, 233, 255, 39, 177, 2, 1, 234, 80, - 39, 177, 2, 1, 233, 243, 39, 177, 2, 1, 234, 195, 39, 177, 2, 1, 66, 39, - 177, 2, 1, 196, 30, 39, 177, 2, 1, 213, 182, 196, 152, 39, 177, 2, 1, - 206, 58, 196, 152, 39, 177, 2, 1, 233, 230, 39, 177, 2, 1, 233, 182, 39, - 177, 2, 1, 233, 177, 39, 177, 2, 1, 234, 79, 56, 39, 177, 2, 1, 196, 45, - 39, 177, 31, 107, 39, 177, 31, 149, 39, 177, 31, 199, 95, 39, 177, 31, - 233, 15, 39, 177, 31, 91, 228, 140, 39, 177, 31, 91, 189, 230, 24, 206, - 142, 1, 65, 230, 24, 206, 142, 1, 249, 153, 230, 24, 206, 142, 1, 168, - 230, 24, 206, 142, 1, 190, 190, 230, 24, 206, 142, 1, 197, 132, 230, 24, - 206, 142, 1, 223, 32, 230, 24, 206, 142, 1, 247, 160, 230, 24, 206, 142, - 1, 140, 230, 24, 206, 142, 1, 221, 215, 230, 24, 206, 142, 1, 233, 109, - 230, 24, 206, 142, 1, 238, 32, 230, 24, 206, 142, 1, 237, 191, 230, 24, - 206, 142, 1, 165, 230, 24, 206, 142, 1, 206, 109, 230, 24, 206, 142, 1, - 191, 123, 230, 24, 206, 142, 1, 188, 230, 24, 206, 142, 1, 203, 165, 230, - 24, 206, 142, 1, 155, 230, 24, 206, 142, 1, 231, 240, 230, 24, 206, 142, - 1, 173, 230, 24, 206, 142, 1, 174, 230, 24, 206, 142, 1, 180, 230, 24, - 206, 142, 1, 193, 190, 230, 24, 206, 142, 1, 221, 137, 193, 190, 230, 24, - 206, 142, 1, 170, 230, 24, 206, 142, 1, 221, 137, 170, 230, 24, 206, 142, - 1, 214, 68, 230, 24, 206, 142, 1, 212, 101, 230, 24, 206, 142, 1, 195, - 188, 230, 24, 206, 142, 18, 65, 230, 24, 206, 142, 18, 68, 230, 24, 206, - 142, 18, 66, 230, 24, 206, 142, 18, 71, 230, 24, 206, 142, 18, 74, 230, - 24, 206, 142, 87, 205, 173, 230, 24, 206, 142, 87, 215, 7, 221, 178, 230, - 24, 206, 142, 3, 230, 18, 230, 24, 206, 142, 3, 199, 218, 230, 24, 206, - 142, 3, 199, 192, 230, 24, 206, 142, 3, 199, 172, 230, 24, 206, 142, 17, - 191, 77, 230, 24, 206, 142, 17, 107, 230, 24, 206, 142, 17, 109, 230, 24, - 206, 142, 17, 138, 230, 24, 206, 142, 17, 134, 230, 24, 206, 142, 17, - 149, 230, 24, 206, 142, 17, 169, 230, 24, 206, 142, 17, 175, 230, 24, - 206, 142, 17, 171, 230, 24, 206, 142, 17, 178, 206, 46, 17, 107, 206, 46, - 17, 109, 206, 46, 17, 138, 206, 46, 17, 134, 206, 46, 17, 149, 206, 46, - 17, 169, 206, 46, 17, 175, 206, 46, 17, 171, 206, 46, 17, 178, 206, 46, - 31, 199, 95, 206, 46, 31, 197, 32, 206, 46, 31, 198, 249, 206, 46, 31, - 232, 135, 206, 46, 31, 233, 15, 206, 46, 31, 202, 120, 206, 46, 31, 203, - 241, 206, 46, 31, 234, 153, 206, 46, 31, 213, 169, 206, 46, 31, 91, 228, - 140, 206, 46, 31, 105, 228, 140, 206, 46, 31, 115, 228, 140, 206, 46, 31, - 232, 128, 228, 140, 206, 46, 31, 232, 226, 228, 140, 206, 46, 31, 202, - 136, 228, 140, 206, 46, 31, 203, 247, 228, 140, 206, 46, 31, 234, 164, - 228, 140, 206, 46, 31, 213, 175, 228, 140, 206, 46, 232, 118, 91, 230, - 70, 206, 46, 232, 118, 91, 208, 22, 206, 46, 232, 118, 91, 199, 0, 206, - 46, 232, 118, 105, 198, 253, 192, 39, 1, 234, 124, 192, 39, 1, 249, 17, - 192, 39, 1, 210, 63, 192, 39, 1, 209, 214, 192, 39, 1, 199, 33, 192, 39, - 1, 205, 68, 192, 39, 1, 243, 16, 192, 39, 1, 243, 83, 192, 39, 1, 243, - 97, 192, 39, 1, 229, 177, 192, 39, 1, 192, 220, 192, 39, 1, 238, 3, 192, - 39, 1, 191, 108, 192, 39, 1, 165, 192, 39, 1, 207, 6, 192, 39, 1, 191, - 123, 192, 39, 1, 223, 32, 192, 39, 1, 202, 174, 192, 39, 1, 203, 69, 192, - 39, 1, 205, 192, 192, 39, 1, 238, 26, 192, 39, 1, 190, 190, 192, 39, 1, - 191, 87, 192, 39, 1, 233, 184, 192, 39, 1, 192, 208, 192, 39, 1, 233, - 109, 192, 39, 1, 195, 188, 192, 39, 1, 195, 189, 251, 157, 20, 192, 39, - 1, 208, 89, 192, 39, 1, 222, 106, 192, 39, 1, 221, 212, 192, 39, 1, 231, - 227, 192, 39, 1, 220, 35, 192, 39, 1, 216, 46, 192, 39, 1, 212, 130, 192, - 39, 1, 196, 120, 192, 39, 1, 193, 133, 192, 39, 1, 210, 250, 192, 39, 1, - 233, 224, 192, 39, 1, 229, 252, 192, 39, 1, 191, 240, 192, 39, 1, 233, - 255, 192, 39, 33, 230, 58, 77, 192, 39, 33, 217, 142, 77, 192, 39, 228, - 86, 77, 192, 39, 1, 220, 36, 4, 75, 58, 192, 39, 1, 191, 241, 4, 243, 2, - 58, 9, 2, 130, 193, 23, 205, 171, 9, 2, 130, 193, 23, 208, 79, 9, 2, 130, - 193, 23, 217, 141, 39, 202, 28, 1, 251, 190, 39, 202, 28, 1, 53, 251, - 190, 39, 202, 28, 1, 248, 211, 39, 202, 28, 1, 53, 248, 211, 39, 202, 28, - 1, 231, 38, 39, 202, 28, 1, 229, 245, 39, 202, 28, 1, 53, 229, 245, 39, - 202, 28, 1, 193, 133, 39, 202, 28, 1, 191, 91, 39, 202, 28, 1, 229, 184, - 39, 202, 28, 1, 191, 249, 39, 202, 28, 1, 222, 75, 39, 202, 28, 1, 220, - 26, 39, 202, 28, 1, 216, 193, 39, 202, 28, 1, 212, 130, 39, 202, 28, 1, - 53, 212, 130, 39, 202, 28, 1, 53, 212, 131, 4, 81, 199, 215, 39, 202, 28, - 1, 205, 148, 39, 202, 28, 1, 250, 126, 39, 202, 28, 1, 251, 157, 250, - 126, 39, 202, 28, 1, 210, 63, 39, 202, 28, 1, 205, 189, 39, 202, 28, 1, - 53, 205, 189, 39, 202, 28, 1, 53, 205, 190, 4, 81, 199, 215, 39, 202, 28, - 1, 207, 36, 39, 202, 28, 1, 203, 69, 39, 202, 28, 1, 199, 159, 39, 202, - 28, 1, 53, 199, 159, 39, 202, 28, 1, 53, 199, 160, 4, 81, 199, 215, 39, - 202, 28, 31, 107, 39, 202, 28, 31, 109, 39, 202, 28, 31, 138, 39, 202, - 28, 31, 134, 39, 202, 28, 31, 149, 39, 202, 28, 31, 199, 95, 39, 202, 28, - 31, 197, 32, 39, 202, 28, 31, 198, 249, 39, 202, 28, 31, 91, 228, 140, - 39, 202, 28, 232, 118, 91, 230, 70, 39, 202, 28, 34, 250, 125, 202, 28, - 1, 251, 190, 202, 28, 1, 248, 211, 202, 28, 1, 231, 38, 202, 28, 1, 229, - 245, 202, 28, 1, 193, 133, 202, 28, 1, 191, 91, 202, 28, 1, 229, 184, - 202, 28, 1, 191, 249, 202, 28, 1, 222, 75, 202, 28, 1, 220, 26, 202, 28, - 1, 216, 193, 202, 28, 1, 212, 130, 202, 28, 1, 205, 148, 202, 28, 1, 250, - 126, 202, 28, 1, 210, 63, 202, 28, 1, 205, 189, 202, 28, 1, 207, 37, 202, - 28, 1, 203, 69, 202, 28, 1, 199, 159, 202, 28, 1, 233, 30, 202, 28, 1, - 219, 182, 202, 28, 223, 149, 203, 69, 202, 28, 33, 75, 60, 202, 28, 33, - 105, 185, 60, 202, 28, 33, 75, 58, 202, 28, 33, 105, 185, 58, 202, 28, - 33, 238, 165, 58, 202, 28, 33, 238, 165, 60, 202, 28, 33, 228, 251, 58, - 202, 28, 33, 228, 251, 60, 202, 28, 33, 179, 228, 251, 60, 202, 28, 33, - 207, 39, 60, 202, 28, 33, 201, 28, 60, 202, 28, 31, 107, 202, 28, 31, - 199, 95, 202, 28, 31, 197, 32, 202, 28, 31, 91, 228, 140, 202, 28, 208, - 152, 105, 81, 249, 76, 202, 28, 208, 152, 105, 81, 249, 77, 4, 236, 138, - 202, 28, 208, 152, 243, 11, 4, 236, 140, 202, 28, 208, 152, 105, 243, 8, - 4, 236, 138, 202, 28, 208, 152, 132, 243, 11, 4, 236, 140, 39, 196, 19, - 1, 251, 190, 39, 196, 19, 1, 248, 211, 39, 196, 19, 1, 231, 37, 39, 196, - 19, 1, 193, 133, 39, 196, 19, 1, 191, 91, 39, 196, 19, 1, 53, 229, 184, - 39, 196, 19, 1, 191, 249, 39, 196, 19, 1, 222, 75, 39, 196, 19, 1, 220, - 26, 39, 196, 19, 1, 216, 193, 39, 196, 19, 1, 212, 130, 39, 196, 19, 1, - 205, 148, 39, 196, 19, 1, 210, 63, 39, 196, 19, 1, 205, 189, 39, 196, 19, - 1, 207, 38, 39, 196, 19, 1, 203, 69, 39, 196, 19, 1, 199, 159, 39, 196, - 19, 1, 219, 182, 39, 196, 19, 33, 75, 58, 39, 196, 19, 33, 75, 60, 39, - 196, 19, 33, 105, 185, 58, 39, 196, 19, 33, 105, 185, 60, 39, 196, 19, - 208, 152, 164, 39, 196, 19, 208, 152, 105, 249, 76, 39, 196, 19, 208, - 152, 105, 236, 138, 39, 196, 19, 208, 152, 232, 128, 236, 138, 243, 61, - 1, 251, 190, 243, 61, 1, 2, 251, 190, 243, 61, 1, 248, 211, 243, 61, 1, - 231, 38, 243, 61, 1, 237, 252, 243, 61, 1, 229, 245, 243, 61, 1, 193, - 133, 243, 61, 1, 238, 174, 193, 133, 243, 61, 1, 191, 91, 243, 61, 1, - 229, 184, 243, 61, 1, 191, 249, 243, 61, 1, 222, 75, 243, 61, 1, 220, 26, - 243, 61, 1, 216, 193, 243, 61, 1, 212, 130, 243, 61, 1, 205, 148, 243, - 61, 1, 250, 126, 243, 61, 1, 210, 63, 243, 61, 1, 207, 38, 243, 61, 1, - 203, 69, 243, 61, 1, 199, 159, 243, 61, 31, 107, 243, 61, 31, 109, 243, - 61, 31, 138, 243, 61, 31, 134, 243, 61, 31, 199, 95, 243, 61, 31, 197, - 32, 243, 61, 31, 91, 228, 140, 234, 116, 1, 251, 190, 234, 116, 1, 248, - 211, 234, 116, 1, 231, 38, 234, 116, 1, 237, 252, 234, 116, 1, 229, 245, - 234, 116, 1, 193, 133, 234, 116, 1, 191, 91, 234, 116, 1, 229, 184, 234, - 116, 1, 199, 69, 234, 116, 1, 191, 249, 234, 116, 1, 222, 75, 234, 116, - 1, 220, 26, 234, 116, 1, 216, 193, 234, 116, 1, 212, 130, 234, 116, 1, - 205, 148, 234, 116, 1, 250, 126, 234, 116, 1, 210, 63, 234, 116, 1, 205, - 189, 234, 116, 1, 208, 37, 234, 116, 1, 207, 38, 234, 116, 1, 203, 69, - 234, 116, 1, 199, 159, 234, 116, 34, 191, 90, 162, 3, 247, 119, 162, 3, - 251, 71, 162, 3, 195, 35, 162, 3, 222, 237, 162, 3, 196, 75, 162, 1, 65, - 162, 1, 252, 206, 162, 1, 68, 162, 1, 223, 199, 162, 1, 66, 162, 1, 196, - 30, 162, 1, 117, 146, 162, 1, 117, 206, 110, 162, 1, 117, 172, 162, 1, - 117, 219, 74, 162, 1, 71, 162, 1, 251, 236, 162, 1, 74, 162, 1, 250, 163, - 162, 1, 155, 162, 1, 221, 215, 162, 1, 231, 240, 162, 1, 231, 91, 162, 1, - 214, 68, 162, 1, 247, 160, 162, 1, 247, 1, 162, 1, 223, 32, 162, 1, 222, - 252, 162, 1, 212, 101, 162, 1, 197, 132, 162, 1, 197, 120, 162, 1, 237, - 191, 162, 1, 237, 175, 162, 1, 213, 79, 162, 1, 190, 190, 162, 1, 199, - 49, 162, 1, 238, 32, 162, 1, 237, 68, 162, 1, 180, 162, 1, 168, 162, 1, - 209, 228, 162, 1, 249, 153, 162, 1, 248, 203, 162, 1, 174, 162, 1, 170, - 162, 1, 165, 162, 1, 173, 162, 1, 195, 188, 162, 1, 203, 165, 162, 1, - 201, 175, 162, 1, 188, 162, 1, 140, 162, 1, 219, 73, 162, 1, 39, 44, 219, - 62, 162, 1, 39, 44, 206, 109, 162, 1, 39, 44, 213, 61, 162, 18, 3, 252, - 206, 162, 18, 3, 248, 197, 252, 206, 162, 18, 3, 68, 162, 18, 3, 223, - 199, 162, 18, 3, 66, 162, 18, 3, 196, 30, 162, 18, 3, 117, 146, 162, 18, - 3, 117, 206, 110, 162, 18, 3, 117, 172, 162, 18, 3, 117, 219, 74, 162, - 18, 3, 71, 162, 18, 3, 251, 236, 162, 18, 3, 74, 162, 18, 3, 250, 163, - 162, 195, 40, 162, 237, 238, 162, 55, 237, 238, 162, 208, 152, 236, 140, - 162, 208, 152, 55, 236, 140, 162, 208, 152, 219, 112, 162, 208, 152, 238, - 228, 164, 162, 208, 152, 218, 246, 162, 31, 107, 162, 31, 109, 162, 31, - 138, 162, 31, 134, 162, 31, 149, 162, 31, 169, 162, 31, 175, 162, 31, - 171, 162, 31, 178, 162, 31, 199, 95, 162, 31, 197, 32, 162, 31, 198, 249, - 162, 31, 232, 135, 162, 31, 233, 15, 162, 31, 202, 120, 162, 31, 203, - 241, 162, 31, 234, 153, 162, 31, 213, 169, 162, 31, 91, 228, 140, 162, - 31, 91, 189, 162, 17, 191, 77, 162, 17, 107, 162, 17, 109, 162, 17, 138, - 162, 17, 134, 162, 17, 149, 162, 17, 169, 162, 17, 175, 162, 17, 171, - 162, 17, 178, 162, 3, 39, 44, 195, 40, 162, 1, 39, 44, 203, 40, 71, 162, - 1, 39, 44, 203, 40, 74, 162, 18, 3, 39, 44, 203, 40, 71, 162, 18, 3, 39, - 44, 203, 40, 74, 162, 1, 39, 44, 219, 73, 162, 31, 222, 196, 222, 99, 3, - 247, 119, 222, 99, 3, 251, 71, 222, 99, 3, 195, 35, 222, 99, 1, 65, 222, - 99, 1, 252, 206, 222, 99, 1, 68, 222, 99, 1, 223, 199, 222, 99, 1, 66, - 222, 99, 1, 196, 30, 222, 99, 1, 71, 222, 99, 1, 251, 236, 222, 99, 1, - 74, 222, 99, 1, 250, 163, 222, 99, 1, 155, 222, 99, 1, 221, 215, 222, 99, - 1, 231, 240, 222, 99, 1, 231, 91, 222, 99, 1, 214, 68, 222, 99, 1, 247, - 160, 222, 99, 1, 247, 1, 222, 99, 1, 223, 32, 222, 99, 1, 222, 252, 222, - 99, 1, 212, 101, 222, 99, 1, 197, 132, 222, 99, 1, 197, 120, 222, 99, 1, - 237, 191, 222, 99, 1, 237, 180, 222, 99, 1, 237, 175, 222, 99, 1, 207, 6, - 222, 99, 1, 213, 79, 222, 99, 1, 190, 190, 222, 99, 1, 199, 49, 222, 99, - 1, 238, 32, 222, 99, 1, 237, 68, 222, 99, 1, 180, 222, 99, 1, 168, 222, - 99, 1, 209, 228, 222, 99, 1, 249, 153, 222, 99, 1, 248, 203, 222, 99, 1, - 174, 222, 99, 1, 170, 222, 99, 1, 165, 222, 99, 1, 173, 222, 99, 1, 195, - 188, 222, 99, 1, 203, 165, 222, 99, 1, 201, 175, 222, 99, 1, 188, 222, - 99, 1, 140, 222, 99, 18, 3, 252, 206, 222, 99, 18, 3, 68, 222, 99, 18, 3, - 223, 199, 222, 99, 18, 3, 66, 222, 99, 18, 3, 196, 30, 222, 99, 18, 3, - 71, 222, 99, 18, 3, 251, 236, 222, 99, 18, 3, 74, 222, 99, 18, 3, 250, - 163, 222, 99, 3, 195, 40, 222, 99, 3, 212, 141, 222, 99, 252, 68, 56, - 222, 99, 234, 69, 56, 222, 99, 31, 56, 222, 99, 205, 54, 77, 222, 99, 55, - 205, 54, 77, 222, 99, 237, 238, 222, 99, 55, 237, 238, 222, 99, 18, 3, - 117, 146, 222, 99, 31, 3, 58, 202, 12, 202, 20, 1, 205, 182, 202, 12, - 202, 20, 1, 199, 219, 202, 12, 202, 20, 1, 249, 123, 202, 12, 202, 20, 1, - 247, 149, 202, 12, 202, 20, 1, 238, 12, 202, 12, 202, 20, 1, 231, 225, - 202, 12, 202, 20, 1, 217, 120, 202, 12, 202, 20, 1, 214, 65, 202, 12, - 202, 20, 1, 220, 99, 202, 12, 202, 20, 1, 214, 237, 202, 12, 202, 20, 1, - 195, 184, 202, 12, 202, 20, 1, 210, 200, 202, 12, 202, 20, 1, 192, 121, - 202, 12, 202, 20, 1, 207, 160, 202, 12, 202, 20, 1, 230, 81, 202, 12, - 202, 20, 1, 222, 104, 202, 12, 202, 20, 1, 223, 26, 202, 12, 202, 20, 1, - 212, 98, 202, 12, 202, 20, 1, 251, 245, 202, 12, 202, 20, 1, 234, 186, - 202, 12, 202, 20, 1, 223, 200, 202, 12, 202, 20, 1, 196, 141, 202, 12, - 202, 20, 1, 211, 136, 202, 12, 202, 20, 1, 234, 173, 202, 12, 202, 20, 1, - 217, 136, 202, 12, 202, 20, 17, 191, 77, 202, 12, 202, 20, 17, 107, 202, - 12, 202, 20, 17, 109, 202, 12, 202, 20, 17, 138, 202, 12, 202, 20, 17, - 134, 202, 12, 202, 20, 17, 149, 202, 12, 202, 20, 17, 169, 202, 12, 202, - 20, 17, 175, 202, 12, 202, 20, 17, 171, 202, 12, 202, 20, 17, 178, 246, - 251, 3, 247, 119, 246, 251, 3, 251, 71, 246, 251, 3, 195, 35, 246, 251, - 1, 252, 206, 246, 251, 1, 68, 246, 251, 1, 66, 246, 251, 1, 71, 246, 251, - 1, 222, 127, 246, 251, 1, 221, 214, 246, 251, 1, 231, 237, 246, 251, 1, - 231, 90, 246, 251, 1, 214, 67, 246, 251, 1, 247, 159, 246, 251, 1, 247, - 0, 246, 251, 1, 223, 31, 246, 251, 1, 222, 251, 246, 251, 1, 212, 100, - 246, 251, 1, 197, 131, 246, 251, 1, 197, 119, 246, 251, 1, 237, 190, 246, - 251, 1, 237, 174, 246, 251, 1, 213, 78, 246, 251, 1, 199, 245, 246, 251, - 1, 199, 48, 246, 251, 1, 238, 31, 246, 251, 1, 237, 67, 246, 251, 1, 214, - 250, 246, 251, 1, 210, 220, 246, 251, 1, 209, 227, 246, 251, 1, 249, 151, - 246, 251, 1, 248, 202, 246, 251, 1, 217, 151, 246, 251, 1, 191, 174, 246, - 251, 1, 192, 140, 246, 251, 1, 207, 178, 246, 251, 1, 220, 125, 246, 251, - 1, 193, 181, 246, 251, 1, 205, 197, 246, 251, 1, 230, 91, 246, 251, 18, - 3, 65, 246, 251, 18, 3, 68, 246, 251, 18, 3, 223, 199, 246, 251, 18, 3, - 66, 246, 251, 18, 3, 196, 30, 246, 251, 18, 3, 71, 246, 251, 18, 3, 251, - 236, 246, 251, 18, 3, 74, 246, 251, 18, 3, 250, 163, 246, 251, 18, 3, - 211, 133, 246, 251, 187, 77, 246, 251, 250, 164, 77, 246, 251, 195, 40, - 246, 251, 217, 149, 246, 251, 17, 191, 77, 246, 251, 17, 107, 246, 251, - 17, 109, 246, 251, 17, 138, 246, 251, 17, 134, 246, 251, 17, 149, 246, - 251, 17, 169, 246, 251, 17, 175, 246, 251, 17, 171, 246, 251, 17, 178, - 246, 251, 205, 54, 77, 246, 251, 237, 238, 246, 251, 55, 237, 238, 246, - 251, 208, 13, 77, 246, 251, 1, 219, 158, 246, 251, 18, 3, 252, 206, 246, - 251, 18, 3, 234, 166, 246, 251, 1, 195, 187, 217, 118, 1, 65, 217, 118, - 1, 68, 217, 118, 1, 66, 217, 118, 1, 71, 217, 118, 1, 74, 217, 118, 1, - 155, 217, 118, 1, 221, 215, 217, 118, 1, 231, 240, 217, 118, 1, 231, 91, - 217, 118, 1, 247, 160, 217, 118, 1, 247, 1, 217, 118, 1, 223, 32, 217, - 118, 1, 222, 252, 217, 118, 1, 212, 101, 217, 118, 1, 197, 132, 217, 118, - 1, 197, 120, 217, 118, 1, 237, 191, 217, 118, 1, 237, 175, 217, 118, 1, - 213, 79, 217, 118, 1, 190, 190, 217, 118, 1, 199, 49, 217, 118, 1, 238, - 32, 217, 118, 1, 237, 68, 217, 118, 1, 180, 217, 118, 1, 168, 217, 118, - 1, 209, 228, 217, 118, 1, 249, 153, 217, 118, 1, 248, 203, 217, 118, 1, - 174, 217, 118, 1, 165, 217, 118, 1, 173, 217, 118, 1, 195, 188, 217, 118, - 1, 188, 217, 118, 1, 140, 217, 118, 1, 206, 109, 217, 118, 3, 212, 141, - 217, 118, 252, 68, 56, 217, 118, 205, 54, 77, 217, 118, 34, 203, 15, 203, - 129, 3, 247, 119, 203, 129, 3, 251, 71, 203, 129, 3, 195, 35, 203, 129, - 1, 65, 203, 129, 1, 252, 206, 203, 129, 1, 68, 203, 129, 1, 223, 199, - 203, 129, 1, 66, 203, 129, 1, 196, 30, 203, 129, 1, 117, 146, 203, 129, - 1, 117, 206, 110, 203, 129, 1, 117, 172, 203, 129, 1, 117, 219, 74, 203, - 129, 1, 71, 203, 129, 1, 251, 236, 203, 129, 1, 74, 203, 129, 1, 250, - 163, 203, 129, 1, 155, 203, 129, 1, 221, 215, 203, 129, 1, 231, 240, 203, - 129, 1, 231, 91, 203, 129, 1, 214, 68, 203, 129, 1, 247, 160, 203, 129, - 1, 247, 1, 203, 129, 1, 223, 32, 203, 129, 1, 222, 252, 203, 129, 1, 212, - 101, 203, 129, 1, 197, 132, 203, 129, 1, 197, 120, 203, 129, 1, 237, 191, - 203, 129, 1, 237, 175, 203, 129, 1, 213, 79, 203, 129, 1, 190, 190, 203, - 129, 1, 199, 49, 203, 129, 1, 238, 32, 203, 129, 1, 237, 68, 203, 129, 1, - 180, 203, 129, 1, 168, 203, 129, 1, 209, 228, 203, 129, 1, 249, 153, 203, - 129, 1, 248, 203, 203, 129, 1, 174, 203, 129, 1, 170, 203, 129, 1, 165, - 203, 129, 1, 173, 203, 129, 1, 219, 73, 203, 129, 1, 195, 188, 203, 129, - 1, 203, 165, 203, 129, 1, 201, 175, 203, 129, 1, 188, 203, 129, 1, 140, - 203, 129, 18, 3, 252, 206, 203, 129, 18, 3, 68, 203, 129, 18, 3, 223, - 199, 203, 129, 18, 3, 66, 203, 129, 18, 3, 196, 30, 203, 129, 18, 3, 117, - 146, 203, 129, 18, 3, 117, 206, 110, 203, 129, 18, 3, 117, 172, 203, 129, - 18, 3, 117, 219, 74, 203, 129, 18, 3, 71, 203, 129, 18, 3, 251, 236, 203, - 129, 18, 3, 74, 203, 129, 18, 3, 250, 163, 203, 129, 3, 195, 40, 203, - 129, 3, 250, 145, 203, 129, 3, 222, 237, 203, 129, 3, 196, 75, 203, 129, - 211, 113, 203, 129, 237, 238, 203, 129, 55, 237, 238, 203, 129, 252, 68, - 56, 203, 129, 204, 10, 203, 129, 205, 138, 77, 203, 129, 3, 212, 141, - 203, 129, 18, 52, 77, 203, 129, 233, 201, 203, 40, 18, 77, 203, 129, 200, - 162, 77, 203, 129, 18, 3, 208, 207, 71, 203, 129, 3, 223, 93, 247, 119, - 203, 129, 17, 191, 77, 203, 129, 17, 107, 203, 129, 17, 109, 203, 129, - 17, 138, 203, 129, 17, 134, 203, 129, 17, 149, 203, 129, 17, 169, 203, - 129, 17, 175, 203, 129, 17, 171, 203, 129, 17, 178, 203, 129, 234, 146, - 203, 129, 3, 202, 210, 203, 129, 229, 227, 203, 129, 239, 29, 56, 203, - 129, 205, 54, 217, 55, 203, 129, 205, 54, 217, 54, 166, 251, 14, 17, 107, - 166, 251, 14, 17, 109, 166, 251, 14, 17, 138, 166, 251, 14, 17, 134, 166, - 251, 14, 17, 149, 166, 251, 14, 17, 169, 166, 251, 14, 17, 175, 166, 251, - 14, 17, 171, 166, 251, 14, 17, 178, 166, 251, 14, 31, 199, 95, 166, 251, - 14, 31, 197, 32, 166, 251, 14, 31, 198, 249, 166, 251, 14, 31, 232, 135, - 166, 251, 14, 31, 233, 15, 166, 251, 14, 31, 202, 120, 166, 251, 14, 31, - 203, 241, 166, 251, 14, 31, 234, 153, 166, 251, 14, 31, 213, 169, 166, - 251, 14, 31, 91, 228, 140, 166, 251, 14, 31, 91, 189, 221, 182, 1, 65, - 221, 182, 1, 252, 206, 221, 182, 1, 68, 221, 182, 1, 66, 221, 182, 1, 71, - 221, 182, 1, 251, 236, 221, 182, 1, 74, 221, 182, 1, 250, 163, 221, 182, - 1, 155, 221, 182, 1, 221, 215, 221, 182, 1, 231, 240, 221, 182, 1, 231, - 127, 221, 182, 1, 231, 91, 221, 182, 1, 214, 68, 221, 182, 1, 247, 160, - 221, 182, 1, 247, 1, 221, 182, 1, 223, 32, 221, 182, 1, 222, 230, 221, - 182, 1, 212, 101, 221, 182, 1, 197, 132, 221, 182, 1, 197, 120, 221, 182, - 1, 237, 191, 221, 182, 1, 237, 175, 221, 182, 1, 213, 79, 221, 182, 1, - 190, 190, 221, 182, 1, 199, 49, 221, 182, 1, 238, 32, 221, 182, 1, 237, - 181, 221, 182, 1, 237, 68, 221, 182, 1, 180, 221, 182, 1, 168, 221, 182, - 1, 209, 228, 221, 182, 1, 249, 153, 221, 182, 1, 249, 53, 221, 182, 1, - 248, 203, 221, 182, 1, 174, 221, 182, 1, 170, 221, 182, 1, 165, 221, 182, - 1, 173, 221, 182, 1, 195, 188, 221, 182, 1, 188, 221, 182, 1, 140, 221, - 182, 1, 219, 73, 221, 182, 18, 3, 252, 206, 221, 182, 18, 3, 68, 221, - 182, 18, 3, 223, 199, 221, 182, 18, 3, 66, 221, 182, 18, 3, 71, 221, 182, - 18, 3, 251, 236, 221, 182, 18, 3, 74, 221, 182, 18, 3, 250, 163, 221, - 182, 3, 251, 71, 221, 182, 3, 195, 40, 221, 182, 3, 212, 141, 221, 182, - 3, 203, 155, 221, 182, 237, 238, 221, 182, 55, 237, 238, 221, 182, 193, - 23, 204, 10, 221, 182, 205, 54, 77, 221, 182, 55, 205, 54, 77, 221, 182, - 252, 68, 56, 221, 182, 3, 200, 206, 221, 182, 1, 208, 96, 221, 182, 1, - 203, 40, 68, 221, 182, 18, 3, 117, 146, 215, 133, 1, 65, 215, 133, 1, 68, - 215, 133, 1, 66, 215, 133, 1, 71, 215, 133, 1, 155, 215, 133, 1, 221, - 215, 215, 133, 1, 231, 240, 215, 133, 1, 231, 91, 215, 133, 1, 247, 160, - 215, 133, 1, 247, 1, 215, 133, 1, 223, 32, 215, 133, 1, 222, 230, 215, - 133, 1, 212, 101, 215, 133, 1, 197, 132, 215, 133, 1, 197, 120, 215, 133, - 1, 237, 191, 215, 133, 1, 237, 181, 215, 133, 1, 237, 175, 215, 133, 1, - 213, 79, 215, 133, 1, 190, 190, 215, 133, 1, 199, 49, 215, 133, 1, 238, - 32, 215, 133, 1, 237, 68, 215, 133, 1, 180, 215, 133, 1, 168, 215, 133, - 1, 209, 228, 215, 133, 1, 249, 153, 215, 133, 1, 248, 203, 215, 133, 1, - 174, 215, 133, 1, 170, 215, 133, 1, 165, 215, 133, 1, 173, 215, 133, 1, - 195, 188, 215, 133, 1, 188, 215, 133, 1, 140, 215, 133, 1, 206, 109, 215, - 133, 1, 207, 6, 215, 133, 205, 54, 77, 221, 172, 1, 65, 221, 172, 1, 252, - 206, 221, 172, 1, 68, 221, 172, 1, 223, 199, 221, 172, 1, 66, 221, 172, - 1, 196, 30, 221, 172, 1, 71, 221, 172, 1, 251, 236, 221, 172, 1, 74, 221, - 172, 1, 250, 163, 221, 172, 1, 155, 221, 172, 1, 221, 215, 221, 172, 1, - 231, 240, 221, 172, 1, 231, 127, 221, 172, 1, 231, 91, 221, 172, 1, 214, - 68, 221, 172, 1, 247, 160, 221, 172, 1, 247, 1, 221, 172, 1, 223, 32, - 221, 172, 1, 222, 230, 221, 172, 1, 222, 252, 221, 172, 1, 212, 101, 221, - 172, 1, 197, 132, 221, 172, 1, 197, 120, 221, 172, 1, 237, 191, 221, 172, - 1, 237, 181, 221, 172, 1, 206, 109, 221, 172, 1, 237, 175, 221, 172, 1, - 213, 79, 221, 172, 1, 190, 190, 221, 172, 1, 199, 49, 221, 172, 1, 238, - 32, 221, 172, 1, 237, 68, 221, 172, 1, 180, 221, 172, 1, 168, 221, 172, - 1, 209, 228, 221, 172, 1, 249, 153, 221, 172, 1, 249, 53, 221, 172, 1, - 248, 203, 221, 172, 1, 174, 221, 172, 1, 170, 221, 172, 1, 165, 221, 172, - 1, 173, 221, 172, 1, 195, 188, 221, 172, 1, 203, 165, 221, 172, 1, 188, - 221, 172, 1, 140, 221, 172, 3, 251, 71, 221, 172, 18, 3, 252, 206, 221, - 172, 18, 3, 68, 221, 172, 18, 3, 223, 199, 221, 172, 18, 3, 66, 221, 172, - 18, 3, 196, 30, 221, 172, 18, 3, 71, 221, 172, 18, 3, 251, 236, 221, 172, - 18, 3, 74, 221, 172, 18, 3, 250, 163, 221, 172, 3, 212, 141, 221, 172, 3, - 195, 40, 221, 172, 17, 191, 77, 221, 172, 17, 107, 221, 172, 17, 109, - 221, 172, 17, 138, 221, 172, 17, 134, 221, 172, 17, 149, 221, 172, 17, - 169, 221, 172, 17, 175, 221, 172, 17, 171, 221, 172, 17, 178, 230, 219, - 3, 33, 251, 72, 58, 230, 219, 3, 247, 119, 230, 219, 3, 251, 71, 230, - 219, 3, 195, 35, 230, 219, 1, 65, 230, 219, 1, 252, 206, 230, 219, 1, 68, - 230, 219, 1, 223, 199, 230, 219, 1, 66, 230, 219, 1, 196, 30, 230, 219, - 1, 117, 146, 230, 219, 1, 117, 172, 230, 219, 1, 234, 188, 230, 219, 1, - 251, 236, 230, 219, 1, 211, 87, 230, 219, 1, 250, 163, 230, 219, 1, 155, - 230, 219, 1, 221, 215, 230, 219, 1, 231, 240, 230, 219, 1, 231, 91, 230, - 219, 1, 214, 68, 230, 219, 1, 247, 160, 230, 219, 1, 247, 1, 230, 219, 1, - 223, 32, 230, 219, 1, 222, 252, 230, 219, 1, 212, 101, 230, 219, 1, 197, - 132, 230, 219, 1, 197, 120, 230, 219, 1, 237, 191, 230, 219, 1, 237, 175, - 230, 219, 1, 213, 79, 230, 219, 1, 190, 190, 230, 219, 1, 199, 49, 230, - 219, 1, 238, 32, 230, 219, 1, 237, 68, 230, 219, 1, 180, 230, 219, 1, - 168, 230, 219, 1, 209, 228, 230, 219, 1, 249, 153, 230, 219, 1, 248, 203, - 230, 219, 1, 174, 230, 219, 1, 170, 230, 219, 1, 165, 230, 219, 1, 173, - 230, 219, 1, 219, 73, 230, 219, 1, 195, 188, 230, 219, 1, 203, 165, 230, - 219, 1, 201, 175, 230, 219, 1, 188, 230, 219, 1, 140, 33, 248, 165, 60, - 230, 219, 3, 212, 141, 230, 219, 3, 250, 145, 230, 219, 18, 3, 252, 206, - 230, 219, 18, 3, 68, 230, 219, 18, 3, 223, 199, 230, 219, 18, 3, 66, 230, - 219, 18, 3, 196, 30, 230, 219, 18, 3, 117, 146, 230, 219, 18, 3, 117, - 206, 110, 230, 219, 18, 3, 234, 188, 230, 219, 18, 3, 251, 236, 230, 219, - 18, 3, 211, 87, 230, 219, 18, 3, 250, 163, 230, 219, 3, 195, 40, 230, - 219, 211, 113, 230, 219, 250, 164, 219, 198, 77, 230, 219, 3, 209, 79, - 230, 219, 1, 195, 150, 251, 71, 230, 219, 1, 195, 150, 55, 251, 71, 230, - 219, 1, 117, 206, 110, 230, 219, 1, 117, 219, 74, 230, 219, 18, 3, 117, - 172, 230, 219, 18, 3, 117, 219, 74, 33, 230, 219, 17, 191, 77, 33, 230, - 219, 17, 107, 33, 230, 219, 17, 109, 33, 230, 219, 17, 138, 33, 230, 219, - 17, 134, 33, 230, 219, 17, 149, 33, 230, 219, 17, 169, 33, 230, 219, 1, - 65, 33, 230, 219, 1, 155, 33, 230, 219, 1, 180, 33, 230, 219, 1, 195, 69, - 33, 230, 219, 1, 168, 214, 78, 1, 65, 214, 78, 1, 252, 206, 214, 78, 1, - 68, 214, 78, 1, 223, 199, 214, 78, 1, 66, 214, 78, 1, 196, 30, 214, 78, - 1, 117, 146, 214, 78, 1, 117, 206, 110, 214, 78, 1, 117, 172, 214, 78, 1, - 117, 219, 74, 214, 78, 1, 71, 214, 78, 1, 251, 236, 214, 78, 1, 74, 214, - 78, 1, 250, 163, 214, 78, 1, 155, 214, 78, 1, 221, 215, 214, 78, 1, 231, - 240, 214, 78, 1, 231, 91, 214, 78, 1, 214, 68, 214, 78, 1, 214, 17, 214, - 78, 1, 247, 160, 214, 78, 1, 247, 1, 214, 78, 1, 223, 32, 214, 78, 1, - 222, 252, 214, 78, 1, 212, 101, 214, 78, 1, 212, 83, 214, 78, 1, 197, - 132, 214, 78, 1, 197, 120, 214, 78, 1, 237, 191, 214, 78, 1, 237, 175, - 214, 78, 1, 213, 79, 214, 78, 1, 190, 190, 214, 78, 1, 199, 49, 214, 78, - 1, 238, 32, 214, 78, 1, 237, 68, 214, 78, 1, 180, 214, 78, 1, 213, 224, - 214, 78, 1, 168, 214, 78, 1, 209, 228, 214, 78, 1, 249, 153, 214, 78, 1, - 248, 203, 214, 78, 1, 174, 214, 78, 1, 216, 103, 214, 78, 1, 170, 214, - 78, 1, 165, 214, 78, 1, 207, 6, 214, 78, 1, 173, 214, 78, 1, 219, 159, - 214, 78, 1, 193, 190, 214, 78, 1, 203, 165, 214, 78, 1, 201, 175, 214, - 78, 1, 188, 214, 78, 1, 140, 214, 78, 18, 3, 252, 206, 214, 78, 18, 3, - 68, 214, 78, 18, 3, 223, 199, 214, 78, 18, 3, 66, 214, 78, 18, 3, 196, - 30, 214, 78, 18, 3, 117, 146, 214, 78, 18, 3, 117, 206, 110, 214, 78, 18, - 3, 117, 172, 214, 78, 18, 3, 117, 219, 74, 214, 78, 18, 3, 71, 214, 78, - 18, 3, 251, 236, 214, 78, 18, 3, 74, 214, 78, 18, 3, 250, 163, 214, 78, - 3, 195, 40, 214, 78, 3, 247, 119, 214, 78, 3, 251, 71, 214, 78, 3, 195, - 35, 214, 78, 3, 212, 141, 214, 78, 3, 250, 145, 214, 78, 3, 53, 251, 71, - 214, 78, 211, 113, 214, 78, 202, 209, 214, 78, 237, 238, 214, 78, 55, - 237, 238, 214, 78, 242, 74, 214, 78, 231, 204, 233, 3, 214, 78, 252, 68, - 56, 214, 78, 17, 191, 77, 214, 78, 17, 107, 214, 78, 17, 109, 214, 78, - 17, 138, 214, 78, 17, 134, 214, 78, 17, 149, 214, 78, 17, 169, 214, 78, - 17, 175, 214, 78, 17, 171, 214, 78, 17, 178, 214, 78, 55, 242, 74, 214, - 78, 209, 107, 77, 214, 78, 223, 119, 56, 214, 78, 205, 138, 77, 214, 78, - 1, 195, 150, 251, 71, 214, 78, 3, 222, 237, 214, 78, 3, 196, 75, 198, - 129, 251, 100, 198, 129, 1, 65, 198, 129, 1, 252, 206, 198, 129, 1, 68, - 198, 129, 1, 223, 199, 198, 129, 1, 66, 198, 129, 1, 196, 30, 198, 129, - 1, 117, 146, 198, 129, 1, 117, 206, 110, 198, 129, 1, 117, 172, 198, 129, - 1, 117, 219, 74, 198, 129, 1, 71, 198, 129, 1, 251, 236, 198, 129, 1, 74, - 198, 129, 1, 250, 163, 198, 129, 1, 155, 198, 129, 1, 221, 215, 198, 129, - 1, 231, 240, 198, 129, 1, 231, 91, 198, 129, 1, 214, 68, 198, 129, 1, - 247, 160, 198, 129, 1, 247, 1, 198, 129, 1, 223, 32, 198, 129, 1, 222, - 252, 198, 129, 1, 212, 101, 198, 129, 1, 197, 132, 198, 129, 1, 197, 120, - 198, 129, 1, 237, 191, 198, 129, 1, 237, 175, 198, 129, 1, 213, 79, 198, - 129, 1, 190, 190, 198, 129, 1, 199, 49, 198, 129, 1, 238, 32, 198, 129, - 1, 237, 68, 198, 129, 1, 180, 198, 129, 1, 168, 198, 129, 1, 209, 228, - 198, 129, 1, 249, 153, 198, 129, 1, 248, 203, 198, 129, 1, 174, 198, 129, - 1, 170, 198, 129, 1, 165, 198, 129, 1, 173, 198, 129, 1, 195, 188, 198, - 129, 1, 203, 165, 198, 129, 1, 201, 175, 198, 129, 1, 188, 198, 129, 1, - 140, 198, 129, 18, 3, 252, 206, 198, 129, 18, 3, 68, 198, 129, 18, 3, - 223, 199, 198, 129, 18, 3, 66, 198, 129, 18, 3, 196, 30, 198, 129, 18, 3, - 117, 146, 198, 129, 18, 3, 117, 206, 110, 198, 129, 18, 3, 117, 172, 198, - 129, 18, 3, 117, 219, 74, 198, 129, 18, 3, 71, 198, 129, 18, 3, 203, 40, - 71, 198, 129, 18, 3, 251, 236, 198, 129, 18, 3, 74, 198, 129, 18, 3, 203, - 40, 74, 198, 129, 18, 3, 250, 163, 198, 129, 3, 247, 119, 198, 129, 3, - 251, 71, 198, 129, 3, 195, 35, 198, 129, 3, 195, 40, 198, 129, 3, 212, - 141, 198, 129, 3, 250, 145, 198, 129, 230, 137, 198, 129, 252, 68, 56, - 198, 129, 211, 113, 198, 129, 17, 191, 77, 198, 129, 17, 107, 198, 129, - 17, 109, 198, 129, 17, 138, 198, 129, 17, 134, 198, 129, 17, 149, 198, - 129, 17, 169, 198, 129, 17, 175, 198, 129, 17, 171, 198, 129, 17, 178, - 202, 211, 1, 65, 202, 211, 1, 252, 206, 202, 211, 1, 68, 202, 211, 1, - 223, 199, 202, 211, 1, 66, 202, 211, 1, 196, 30, 202, 211, 1, 117, 146, - 202, 211, 1, 117, 206, 110, 202, 211, 1, 117, 172, 202, 211, 1, 117, 219, - 74, 202, 211, 1, 71, 202, 211, 1, 251, 236, 202, 211, 1, 74, 202, 211, 1, - 250, 163, 202, 211, 1, 155, 202, 211, 1, 221, 215, 202, 211, 1, 231, 240, - 202, 211, 1, 231, 91, 202, 211, 1, 214, 68, 202, 211, 1, 247, 160, 202, - 211, 1, 247, 1, 202, 211, 1, 223, 32, 202, 211, 1, 222, 252, 202, 211, 1, - 212, 101, 202, 211, 1, 197, 132, 202, 211, 1, 197, 120, 202, 211, 1, 237, - 191, 202, 211, 1, 237, 175, 202, 211, 1, 213, 79, 202, 211, 1, 190, 190, - 202, 211, 1, 199, 49, 202, 211, 1, 238, 32, 202, 211, 1, 237, 68, 202, - 211, 1, 180, 202, 211, 1, 168, 202, 211, 1, 209, 228, 202, 211, 1, 249, - 153, 202, 211, 1, 248, 203, 202, 211, 1, 174, 202, 211, 1, 170, 202, 211, - 1, 165, 202, 211, 1, 173, 202, 211, 1, 195, 188, 202, 211, 1, 203, 165, - 202, 211, 1, 201, 175, 202, 211, 1, 188, 202, 211, 1, 140, 202, 211, 18, - 3, 252, 206, 202, 211, 18, 3, 68, 202, 211, 18, 3, 223, 199, 202, 211, - 18, 3, 66, 202, 211, 18, 3, 196, 30, 202, 211, 18, 3, 117, 146, 202, 211, - 18, 3, 117, 206, 110, 202, 211, 18, 3, 71, 202, 211, 18, 3, 251, 236, - 202, 211, 18, 3, 74, 202, 211, 18, 3, 250, 163, 202, 211, 3, 247, 119, - 202, 211, 3, 251, 71, 202, 211, 3, 195, 35, 202, 211, 3, 195, 40, 202, - 211, 3, 212, 141, 202, 211, 3, 202, 210, 202, 211, 237, 238, 202, 211, - 55, 237, 238, 202, 211, 204, 11, 236, 140, 202, 211, 204, 11, 164, 202, - 211, 207, 46, 217, 55, 202, 211, 207, 46, 217, 54, 202, 211, 207, 46, - 217, 53, 202, 211, 234, 95, 79, 199, 54, 77, 202, 211, 205, 54, 87, 4, - 197, 236, 23, 196, 221, 211, 41, 202, 211, 205, 54, 87, 4, 197, 236, 23, - 235, 138, 238, 226, 202, 211, 205, 54, 87, 4, 207, 120, 23, 235, 138, - 238, 226, 202, 211, 205, 54, 87, 4, 207, 120, 23, 235, 138, 55, 238, 226, - 202, 211, 205, 54, 87, 4, 207, 120, 23, 235, 138, 197, 225, 238, 226, - 202, 211, 205, 54, 87, 55, 206, 188, 202, 211, 205, 54, 87, 55, 206, 189, - 4, 207, 119, 202, 211, 205, 54, 87, 4, 55, 238, 226, 202, 211, 205, 54, - 87, 4, 197, 225, 238, 226, 202, 211, 205, 54, 87, 4, 208, 26, 238, 226, - 202, 211, 205, 54, 87, 4, 204, 8, 238, 226, 202, 211, 205, 54, 87, 4, - 243, 8, 23, 207, 119, 202, 211, 205, 54, 87, 4, 243, 8, 23, 105, 234, 97, - 202, 211, 205, 54, 87, 4, 243, 8, 23, 232, 128, 234, 97, 202, 211, 1, - 198, 226, 251, 157, 68, 202, 211, 1, 197, 15, 251, 157, 68, 202, 211, 1, - 197, 15, 251, 157, 223, 199, 202, 211, 1, 251, 157, 66, 202, 211, 18, 3, - 251, 157, 66, 202, 211, 18, 3, 251, 157, 196, 30, 215, 253, 1, 65, 215, - 253, 1, 252, 206, 215, 253, 1, 68, 215, 253, 1, 223, 199, 215, 253, 1, - 66, 215, 253, 1, 196, 30, 215, 253, 1, 117, 146, 215, 253, 1, 117, 206, - 110, 215, 253, 1, 117, 172, 215, 253, 1, 117, 219, 74, 215, 253, 1, 71, - 215, 253, 1, 251, 236, 215, 253, 1, 74, 215, 253, 1, 250, 163, 215, 253, - 1, 155, 215, 253, 1, 221, 215, 215, 253, 1, 231, 240, 215, 253, 1, 231, - 91, 215, 253, 1, 214, 68, 215, 253, 1, 247, 160, 215, 253, 1, 247, 1, - 215, 253, 1, 223, 32, 215, 253, 1, 222, 252, 215, 253, 1, 212, 101, 215, - 253, 1, 197, 132, 215, 253, 1, 197, 120, 215, 253, 1, 237, 191, 215, 253, - 1, 237, 175, 215, 253, 1, 213, 79, 215, 253, 1, 190, 190, 215, 253, 1, - 199, 49, 215, 253, 1, 238, 32, 215, 253, 1, 237, 68, 215, 253, 1, 180, - 215, 253, 1, 168, 215, 253, 1, 209, 228, 215, 253, 1, 249, 153, 215, 253, - 1, 248, 203, 215, 253, 1, 174, 215, 253, 1, 170, 215, 253, 1, 165, 215, - 253, 1, 173, 215, 253, 1, 195, 188, 215, 253, 1, 203, 165, 215, 253, 1, - 201, 175, 215, 253, 1, 188, 215, 253, 1, 140, 215, 253, 1, 219, 73, 215, - 253, 18, 3, 252, 206, 215, 253, 18, 3, 68, 215, 253, 18, 3, 223, 199, - 215, 253, 18, 3, 66, 215, 253, 18, 3, 196, 30, 215, 253, 18, 3, 117, 146, - 215, 253, 18, 3, 117, 206, 110, 215, 253, 18, 3, 117, 172, 215, 253, 18, - 3, 117, 219, 74, 215, 253, 18, 3, 71, 215, 253, 18, 3, 251, 236, 215, - 253, 18, 3, 74, 215, 253, 18, 3, 250, 163, 215, 253, 3, 251, 71, 215, - 253, 3, 195, 35, 215, 253, 3, 195, 40, 215, 253, 3, 251, 11, 215, 253, - 237, 238, 215, 253, 55, 237, 238, 215, 253, 252, 68, 56, 215, 253, 3, - 228, 127, 215, 253, 17, 191, 77, 215, 253, 17, 107, 215, 253, 17, 109, - 215, 253, 17, 138, 215, 253, 17, 134, 215, 253, 17, 149, 215, 253, 17, - 169, 215, 253, 17, 175, 215, 253, 17, 171, 215, 253, 17, 178, 104, 248, - 159, 4, 211, 42, 104, 206, 122, 248, 158, 104, 55, 248, 159, 4, 211, 42, - 104, 197, 225, 248, 159, 4, 211, 42, 104, 248, 159, 4, 55, 211, 42, 104, - 206, 122, 248, 159, 4, 211, 42, 104, 206, 122, 248, 159, 4, 55, 211, 42, - 104, 223, 93, 248, 158, 104, 223, 93, 248, 159, 4, 55, 211, 42, 104, 200, - 134, 248, 158, 104, 200, 134, 248, 159, 4, 211, 42, 104, 200, 134, 248, - 159, 4, 55, 211, 42, 104, 153, 200, 134, 248, 159, 4, 55, 211, 42, 199, - 205, 1, 65, 199, 205, 1, 252, 206, 199, 205, 1, 68, 199, 205, 1, 223, - 199, 199, 205, 1, 66, 199, 205, 1, 196, 30, 199, 205, 1, 71, 199, 205, 1, - 251, 236, 199, 205, 1, 74, 199, 205, 1, 250, 163, 199, 205, 1, 155, 199, - 205, 1, 221, 215, 199, 205, 1, 231, 240, 199, 205, 1, 231, 91, 199, 205, - 1, 214, 68, 199, 205, 1, 247, 160, 199, 205, 1, 247, 1, 199, 205, 1, 223, - 32, 199, 205, 1, 222, 252, 199, 205, 1, 212, 101, 199, 205, 1, 197, 132, - 199, 205, 1, 197, 120, 199, 205, 1, 237, 191, 199, 205, 1, 237, 175, 199, - 205, 1, 213, 79, 199, 205, 1, 190, 190, 199, 205, 1, 199, 49, 199, 205, - 1, 238, 32, 199, 205, 1, 237, 68, 199, 205, 1, 180, 199, 205, 1, 168, - 199, 205, 1, 209, 228, 199, 205, 1, 249, 153, 199, 205, 1, 248, 203, 199, - 205, 1, 174, 199, 205, 1, 170, 199, 205, 1, 165, 199, 205, 1, 173, 199, - 205, 1, 195, 188, 199, 205, 1, 203, 165, 199, 205, 1, 188, 199, 205, 1, - 140, 199, 205, 1, 206, 109, 199, 205, 3, 251, 71, 199, 205, 3, 195, 35, - 199, 205, 18, 3, 252, 206, 199, 205, 18, 3, 68, 199, 205, 18, 3, 223, - 199, 199, 205, 18, 3, 66, 199, 205, 18, 3, 196, 30, 199, 205, 18, 3, 71, - 199, 205, 18, 3, 251, 236, 199, 205, 18, 3, 74, 199, 205, 18, 3, 250, - 163, 199, 205, 3, 195, 40, 199, 205, 3, 212, 141, 199, 205, 1, 251, 14, - 221, 215, 199, 205, 252, 68, 56, 199, 205, 17, 191, 77, 199, 205, 17, - 107, 199, 205, 17, 109, 199, 205, 17, 138, 199, 205, 17, 134, 199, 205, - 17, 149, 199, 205, 17, 169, 199, 205, 17, 175, 199, 205, 17, 171, 199, - 205, 17, 178, 251, 240, 1, 155, 251, 240, 1, 221, 215, 251, 240, 1, 214, - 68, 251, 240, 1, 180, 251, 240, 1, 190, 190, 251, 240, 1, 251, 157, 190, - 190, 251, 240, 1, 168, 251, 240, 1, 209, 228, 251, 240, 1, 249, 153, 251, - 240, 1, 174, 251, 240, 1, 223, 32, 251, 240, 1, 247, 1, 251, 240, 1, 199, - 49, 251, 240, 1, 165, 251, 240, 1, 173, 251, 240, 1, 188, 251, 240, 1, - 212, 101, 251, 240, 1, 140, 251, 240, 1, 65, 251, 240, 1, 238, 32, 251, - 240, 1, 237, 68, 251, 240, 1, 231, 240, 251, 240, 1, 251, 157, 231, 240, - 251, 240, 1, 231, 91, 251, 240, 1, 248, 203, 251, 240, 1, 222, 252, 251, - 240, 1, 251, 157, 249, 153, 251, 240, 120, 3, 216, 217, 173, 251, 240, - 120, 3, 216, 217, 165, 251, 240, 120, 3, 216, 217, 219, 133, 165, 251, - 240, 18, 3, 65, 251, 240, 18, 3, 252, 206, 251, 240, 18, 3, 68, 251, 240, - 18, 3, 223, 199, 251, 240, 18, 3, 66, 251, 240, 18, 3, 196, 30, 251, 240, - 18, 3, 71, 251, 240, 18, 3, 250, 140, 251, 240, 18, 3, 74, 251, 240, 18, - 3, 251, 236, 251, 240, 18, 3, 251, 149, 251, 240, 3, 221, 143, 251, 240, - 17, 191, 77, 251, 240, 17, 107, 251, 240, 17, 109, 251, 240, 17, 138, - 251, 240, 17, 134, 251, 240, 17, 149, 251, 240, 17, 169, 251, 240, 17, - 175, 251, 240, 17, 171, 251, 240, 17, 178, 251, 240, 31, 199, 95, 251, - 240, 31, 197, 32, 251, 240, 3, 2, 205, 53, 251, 240, 3, 205, 53, 251, - 240, 3, 206, 53, 251, 240, 16, 195, 69, 251, 240, 1, 247, 160, 251, 240, - 1, 197, 132, 251, 240, 1, 197, 120, 251, 240, 1, 237, 191, 251, 240, 1, - 237, 175, 251, 240, 1, 213, 79, 251, 240, 1, 219, 73, 236, 161, 1, 65, - 236, 161, 1, 252, 206, 236, 161, 1, 68, 236, 161, 1, 223, 199, 236, 161, - 1, 66, 236, 161, 1, 196, 30, 236, 161, 1, 71, 236, 161, 1, 251, 236, 236, - 161, 1, 74, 236, 161, 1, 250, 163, 236, 161, 1, 155, 236, 161, 1, 221, - 215, 236, 161, 1, 231, 240, 236, 161, 1, 231, 91, 236, 161, 1, 214, 68, - 236, 161, 1, 247, 160, 236, 161, 1, 247, 1, 236, 161, 1, 223, 32, 236, - 161, 1, 222, 252, 236, 161, 1, 212, 101, 236, 161, 1, 197, 132, 236, 161, - 1, 197, 120, 236, 161, 1, 237, 191, 236, 161, 1, 237, 175, 236, 161, 1, - 213, 79, 236, 161, 1, 190, 190, 236, 161, 1, 199, 49, 236, 161, 1, 238, - 32, 236, 161, 1, 237, 68, 236, 161, 1, 180, 236, 161, 1, 168, 236, 161, - 1, 209, 228, 236, 161, 1, 249, 153, 236, 161, 1, 248, 203, 236, 161, 1, - 174, 236, 161, 1, 170, 236, 161, 1, 165, 236, 161, 1, 173, 236, 161, 1, - 195, 188, 236, 161, 1, 203, 165, 236, 161, 1, 201, 175, 236, 161, 1, 188, - 236, 161, 1, 140, 236, 161, 1, 206, 109, 236, 161, 18, 3, 252, 206, 236, - 161, 18, 3, 68, 236, 161, 18, 3, 223, 199, 236, 161, 18, 3, 66, 236, 161, - 18, 3, 196, 30, 236, 161, 18, 3, 117, 146, 236, 161, 18, 3, 117, 206, - 110, 236, 161, 18, 3, 71, 236, 161, 18, 3, 251, 236, 236, 161, 18, 3, 74, - 236, 161, 18, 3, 250, 163, 236, 161, 3, 251, 71, 236, 161, 3, 195, 35, - 236, 161, 3, 195, 40, 236, 161, 3, 212, 141, 236, 161, 252, 68, 56, 193, - 156, 242, 253, 6, 1, 214, 67, 193, 156, 242, 253, 6, 1, 65, 193, 156, - 242, 253, 6, 1, 193, 86, 193, 156, 242, 253, 6, 1, 191, 225, 193, 156, - 242, 253, 6, 1, 170, 193, 156, 242, 253, 6, 1, 192, 12, 193, 156, 242, - 253, 6, 1, 223, 199, 193, 156, 242, 253, 6, 1, 196, 30, 193, 156, 242, - 253, 6, 1, 71, 193, 156, 242, 253, 6, 1, 74, 193, 156, 242, 253, 6, 1, - 251, 122, 193, 156, 242, 253, 6, 1, 231, 240, 193, 156, 242, 253, 6, 1, - 221, 67, 193, 156, 242, 253, 6, 1, 234, 66, 193, 156, 242, 253, 6, 1, - 191, 204, 193, 156, 242, 253, 6, 1, 196, 160, 193, 156, 242, 253, 6, 1, - 234, 85, 193, 156, 242, 253, 6, 1, 211, 154, 193, 156, 242, 253, 6, 1, - 197, 127, 193, 156, 242, 253, 6, 1, 212, 127, 193, 156, 242, 253, 6, 1, - 238, 32, 193, 156, 242, 253, 6, 1, 250, 182, 193, 156, 242, 253, 6, 1, - 251, 149, 193, 156, 242, 253, 6, 1, 248, 10, 193, 156, 242, 253, 6, 1, - 208, 165, 193, 156, 242, 253, 6, 1, 229, 115, 193, 156, 242, 253, 6, 1, - 229, 3, 193, 156, 242, 253, 6, 1, 228, 185, 193, 156, 242, 253, 6, 1, - 230, 19, 193, 156, 242, 253, 6, 1, 201, 126, 193, 156, 242, 253, 6, 1, - 202, 193, 193, 156, 242, 253, 6, 1, 195, 25, 193, 156, 242, 253, 2, 1, - 214, 67, 193, 156, 242, 253, 2, 1, 65, 193, 156, 242, 253, 2, 1, 193, 86, - 193, 156, 242, 253, 2, 1, 191, 225, 193, 156, 242, 253, 2, 1, 170, 193, - 156, 242, 253, 2, 1, 192, 12, 193, 156, 242, 253, 2, 1, 223, 199, 193, - 156, 242, 253, 2, 1, 196, 30, 193, 156, 242, 253, 2, 1, 71, 193, 156, - 242, 253, 2, 1, 74, 193, 156, 242, 253, 2, 1, 251, 122, 193, 156, 242, - 253, 2, 1, 231, 240, 193, 156, 242, 253, 2, 1, 221, 67, 193, 156, 242, - 253, 2, 1, 234, 66, 193, 156, 242, 253, 2, 1, 191, 204, 193, 156, 242, - 253, 2, 1, 196, 160, 193, 156, 242, 253, 2, 1, 234, 85, 193, 156, 242, - 253, 2, 1, 211, 154, 193, 156, 242, 253, 2, 1, 197, 127, 193, 156, 242, - 253, 2, 1, 212, 127, 193, 156, 242, 253, 2, 1, 238, 32, 193, 156, 242, - 253, 2, 1, 250, 182, 193, 156, 242, 253, 2, 1, 251, 149, 193, 156, 242, - 253, 2, 1, 248, 10, 193, 156, 242, 253, 2, 1, 208, 165, 193, 156, 242, - 253, 2, 1, 229, 115, 193, 156, 242, 253, 2, 1, 229, 3, 193, 156, 242, - 253, 2, 1, 228, 185, 193, 156, 242, 253, 2, 1, 230, 19, 193, 156, 242, - 253, 2, 1, 201, 126, 193, 156, 242, 253, 2, 1, 202, 193, 193, 156, 242, - 253, 2, 1, 195, 25, 193, 156, 242, 253, 17, 191, 77, 193, 156, 242, 253, - 17, 107, 193, 156, 242, 253, 17, 109, 193, 156, 242, 253, 17, 138, 193, - 156, 242, 253, 17, 134, 193, 156, 242, 253, 17, 149, 193, 156, 242, 253, - 17, 169, 193, 156, 242, 253, 17, 175, 193, 156, 242, 253, 17, 171, 193, - 156, 242, 253, 17, 178, 193, 156, 242, 253, 31, 199, 95, 193, 156, 242, - 253, 31, 197, 32, 193, 156, 242, 253, 31, 198, 249, 193, 156, 242, 253, - 31, 232, 135, 193, 156, 242, 253, 31, 233, 15, 193, 156, 242, 253, 31, - 202, 120, 193, 156, 242, 253, 31, 203, 241, 193, 156, 242, 253, 31, 234, - 153, 193, 156, 242, 253, 31, 213, 169, 193, 156, 242, 253, 211, 113, 236, - 209, 251, 209, 1, 65, 236, 209, 251, 209, 1, 252, 206, 236, 209, 251, - 209, 1, 68, 236, 209, 251, 209, 1, 223, 199, 236, 209, 251, 209, 1, 66, - 236, 209, 251, 209, 1, 196, 30, 236, 209, 251, 209, 1, 71, 236, 209, 251, - 209, 1, 74, 236, 209, 251, 209, 1, 155, 236, 209, 251, 209, 1, 221, 215, - 236, 209, 251, 209, 1, 231, 240, 236, 209, 251, 209, 1, 231, 91, 236, - 209, 251, 209, 1, 214, 68, 236, 209, 251, 209, 1, 247, 160, 236, 209, - 251, 209, 1, 247, 1, 236, 209, 251, 209, 1, 223, 32, 236, 209, 251, 209, - 1, 212, 101, 236, 209, 251, 209, 1, 197, 132, 236, 209, 251, 209, 1, 237, - 191, 236, 209, 251, 209, 1, 237, 175, 236, 209, 251, 209, 1, 213, 79, - 236, 209, 251, 209, 1, 190, 190, 236, 209, 251, 209, 1, 199, 49, 236, - 209, 251, 209, 1, 238, 32, 236, 209, 251, 209, 1, 237, 68, 236, 209, 251, - 209, 1, 180, 236, 209, 251, 209, 1, 168, 236, 209, 251, 209, 1, 209, 228, - 236, 209, 251, 209, 1, 249, 153, 236, 209, 251, 209, 1, 248, 203, 236, - 209, 251, 209, 1, 174, 236, 209, 251, 209, 1, 170, 236, 209, 251, 209, 1, - 191, 175, 236, 209, 251, 209, 1, 165, 236, 209, 251, 209, 1, 173, 236, - 209, 251, 209, 1, 195, 188, 236, 209, 251, 209, 1, 203, 165, 236, 209, - 251, 209, 1, 201, 175, 236, 209, 251, 209, 1, 188, 236, 209, 251, 209, 1, - 140, 236, 209, 251, 209, 1, 219, 73, 236, 209, 251, 209, 1, 191, 123, - 236, 209, 251, 209, 18, 3, 252, 206, 236, 209, 251, 209, 18, 3, 68, 236, - 209, 251, 209, 18, 3, 223, 199, 236, 209, 251, 209, 18, 3, 66, 236, 209, - 251, 209, 18, 3, 196, 30, 236, 209, 251, 209, 18, 3, 71, 236, 209, 251, - 209, 18, 3, 251, 236, 236, 209, 251, 209, 18, 3, 74, 236, 209, 251, 209, - 3, 251, 71, 236, 209, 251, 209, 3, 247, 119, 236, 209, 251, 209, 3, 230, - 72, 236, 209, 251, 209, 195, 40, 236, 209, 251, 209, 208, 227, 214, 214, - 56, 236, 209, 251, 209, 216, 217, 170, 236, 209, 251, 209, 89, 165, 236, - 209, 251, 209, 216, 217, 165, 236, 209, 251, 209, 3, 212, 141, 236, 209, - 251, 209, 55, 237, 238, 236, 209, 251, 209, 231, 204, 233, 3, 236, 209, - 251, 209, 234, 95, 79, 199, 54, 77, 236, 209, 251, 209, 17, 191, 77, 236, - 209, 251, 209, 17, 107, 236, 209, 251, 209, 17, 109, 236, 209, 251, 209, - 17, 138, 236, 209, 251, 209, 17, 134, 236, 209, 251, 209, 17, 149, 236, - 209, 251, 209, 17, 169, 236, 209, 251, 209, 17, 175, 236, 209, 251, 209, - 17, 171, 236, 209, 251, 209, 17, 178, 214, 223, 1, 65, 214, 223, 1, 252, - 206, 214, 223, 1, 68, 214, 223, 1, 223, 199, 214, 223, 1, 66, 214, 223, - 1, 196, 30, 214, 223, 1, 117, 146, 214, 223, 1, 117, 206, 110, 214, 223, - 1, 71, 214, 223, 1, 251, 236, 214, 223, 1, 74, 214, 223, 1, 250, 163, - 214, 223, 1, 155, 214, 223, 1, 221, 215, 214, 223, 1, 231, 240, 214, 223, - 1, 231, 91, 214, 223, 1, 214, 68, 214, 223, 1, 247, 160, 214, 223, 1, - 247, 1, 214, 223, 1, 223, 32, 214, 223, 1, 222, 252, 214, 223, 1, 212, - 101, 214, 223, 1, 197, 132, 214, 223, 1, 197, 120, 214, 223, 1, 237, 191, - 214, 223, 1, 237, 175, 214, 223, 1, 213, 79, 214, 223, 1, 190, 190, 214, - 223, 1, 199, 49, 214, 223, 1, 238, 32, 214, 223, 1, 237, 68, 214, 223, 1, - 180, 214, 223, 1, 168, 214, 223, 1, 209, 228, 214, 223, 1, 249, 153, 214, - 223, 1, 248, 203, 214, 223, 1, 174, 214, 223, 1, 170, 214, 223, 1, 165, - 214, 223, 1, 173, 214, 223, 1, 195, 188, 214, 223, 1, 203, 165, 214, 223, - 1, 201, 175, 214, 223, 1, 188, 214, 223, 1, 140, 214, 223, 1, 219, 73, - 214, 223, 1, 206, 109, 214, 223, 18, 3, 252, 206, 214, 223, 18, 3, 68, - 214, 223, 18, 3, 223, 199, 214, 223, 18, 3, 66, 214, 223, 18, 3, 196, 30, - 214, 223, 18, 3, 117, 146, 214, 223, 18, 3, 117, 206, 110, 214, 223, 18, - 3, 71, 214, 223, 18, 3, 251, 236, 214, 223, 18, 3, 74, 214, 223, 18, 3, - 250, 163, 214, 223, 3, 251, 71, 214, 223, 3, 195, 35, 214, 223, 3, 195, - 40, 214, 223, 3, 250, 145, 214, 223, 3, 202, 210, 214, 223, 229, 227, - 214, 223, 18, 3, 208, 207, 71, 191, 106, 51, 1, 65, 191, 106, 51, 18, 3, - 68, 191, 106, 51, 18, 3, 196, 152, 191, 106, 51, 18, 3, 66, 191, 106, 51, - 18, 3, 71, 191, 106, 51, 18, 3, 211, 151, 191, 106, 51, 18, 3, 74, 191, - 106, 51, 18, 3, 251, 236, 191, 106, 51, 18, 3, 250, 163, 191, 106, 51, - 18, 3, 207, 18, 68, 191, 106, 51, 18, 219, 198, 77, 191, 106, 51, 1, 155, - 191, 106, 51, 1, 221, 215, 191, 106, 51, 1, 231, 240, 191, 106, 51, 1, - 231, 91, 191, 106, 51, 1, 214, 68, 191, 106, 51, 1, 247, 160, 191, 106, - 51, 1, 247, 1, 191, 106, 51, 1, 223, 32, 191, 106, 51, 1, 212, 101, 191, - 106, 51, 1, 197, 132, 191, 106, 51, 1, 197, 120, 191, 106, 51, 1, 237, - 191, 191, 106, 51, 1, 237, 175, 191, 106, 51, 1, 213, 79, 191, 106, 51, - 1, 190, 190, 191, 106, 51, 1, 199, 49, 191, 106, 51, 1, 238, 32, 191, - 106, 51, 1, 237, 68, 191, 106, 51, 1, 180, 191, 106, 51, 1, 168, 191, - 106, 51, 1, 209, 228, 191, 106, 51, 1, 249, 153, 191, 106, 51, 1, 248, - 203, 191, 106, 51, 1, 174, 191, 106, 51, 1, 197, 168, 191, 106, 51, 1, - 197, 157, 191, 106, 51, 1, 235, 35, 191, 106, 51, 1, 235, 29, 191, 106, - 51, 1, 191, 71, 191, 106, 51, 1, 191, 123, 191, 106, 51, 1, 255, 214, - 191, 106, 51, 1, 170, 191, 106, 51, 1, 165, 191, 106, 51, 1, 173, 191, - 106, 51, 1, 195, 188, 191, 106, 51, 1, 203, 165, 191, 106, 51, 1, 201, - 175, 191, 106, 51, 1, 188, 191, 106, 51, 1, 140, 191, 106, 51, 1, 220, - 246, 191, 106, 51, 53, 120, 77, 191, 106, 51, 3, 195, 40, 191, 106, 51, - 3, 247, 119, 191, 106, 51, 3, 247, 120, 4, 211, 42, 191, 106, 51, 3, 247, - 122, 4, 211, 42, 191, 106, 51, 3, 251, 71, 191, 106, 51, 3, 195, 35, 191, - 106, 51, 242, 201, 1, 165, 191, 106, 51, 242, 202, 1, 170, 191, 106, 51, - 242, 202, 1, 165, 191, 106, 51, 242, 202, 1, 173, 191, 106, 51, 242, 202, - 1, 195, 188, 191, 106, 51, 89, 229, 236, 77, 191, 106, 51, 242, 215, 229, - 236, 77, 191, 106, 51, 87, 197, 152, 191, 106, 51, 87, 203, 157, 191, - 106, 51, 87, 55, 203, 157, 191, 106, 51, 87, 179, 197, 152, 191, 106, 51, - 89, 235, 130, 229, 236, 77, 191, 106, 51, 242, 215, 235, 130, 229, 236, - 77, 191, 106, 51, 200, 238, 201, 251, 1, 65, 201, 251, 18, 3, 68, 201, - 251, 18, 3, 196, 152, 201, 251, 18, 3, 66, 201, 251, 18, 3, 71, 201, 251, - 18, 3, 74, 201, 251, 18, 3, 211, 151, 201, 251, 18, 3, 251, 236, 201, - 251, 18, 3, 250, 163, 201, 251, 18, 3, 117, 146, 201, 251, 18, 3, 117, - 172, 201, 251, 18, 219, 198, 77, 201, 251, 1, 155, 201, 251, 1, 221, 215, - 201, 251, 1, 231, 240, 201, 251, 1, 231, 91, 201, 251, 1, 214, 68, 201, - 251, 1, 247, 160, 201, 251, 1, 247, 1, 201, 251, 1, 223, 32, 201, 251, 1, - 222, 252, 201, 251, 1, 212, 101, 201, 251, 1, 197, 132, 201, 251, 1, 197, - 120, 201, 251, 1, 237, 191, 201, 251, 1, 237, 175, 201, 251, 1, 213, 79, - 201, 251, 1, 190, 190, 201, 251, 1, 199, 49, 201, 251, 1, 238, 32, 201, - 251, 1, 237, 68, 201, 251, 1, 180, 201, 251, 1, 168, 201, 251, 1, 209, - 228, 201, 251, 1, 249, 153, 201, 251, 1, 248, 203, 201, 251, 1, 174, 201, - 251, 1, 197, 168, 201, 251, 1, 197, 157, 201, 251, 1, 235, 35, 201, 251, - 1, 191, 71, 201, 251, 1, 191, 123, 201, 251, 1, 255, 214, 201, 251, 1, - 170, 201, 251, 1, 165, 201, 251, 1, 173, 201, 251, 1, 195, 188, 201, 251, - 1, 203, 165, 201, 251, 1, 201, 175, 201, 251, 1, 188, 201, 251, 1, 140, - 201, 251, 1, 220, 246, 201, 251, 3, 222, 237, 201, 251, 3, 196, 75, 201, - 251, 242, 201, 1, 165, 201, 251, 242, 201, 1, 173, 201, 251, 242, 201, 1, - 203, 165, 201, 251, 242, 201, 1, 188, 201, 251, 53, 120, 3, 232, 51, 201, - 251, 53, 120, 3, 222, 152, 201, 251, 53, 120, 3, 214, 70, 201, 251, 53, - 120, 3, 238, 127, 201, 251, 53, 120, 3, 215, 61, 201, 251, 53, 120, 3, - 250, 120, 201, 251, 53, 120, 3, 218, 168, 201, 251, 53, 120, 3, 146, 201, - 251, 53, 120, 3, 172, 201, 251, 53, 120, 3, 203, 167, 201, 251, 53, 120, - 3, 206, 8, 201, 251, 53, 120, 3, 255, 214, 201, 251, 3, 251, 71, 201, - 251, 3, 195, 35, 201, 251, 231, 153, 77, 201, 251, 200, 238, 201, 251, - 87, 197, 152, 201, 251, 87, 203, 157, 201, 251, 87, 55, 203, 157, 201, - 251, 87, 209, 79, 201, 251, 229, 236, 87, 4, 215, 206, 23, 200, 199, 23, - 197, 225, 232, 210, 201, 251, 229, 236, 87, 4, 215, 206, 23, 200, 199, - 23, 232, 210, 201, 251, 229, 236, 87, 4, 215, 206, 23, 200, 198, 201, - 251, 199, 81, 217, 55, 201, 251, 199, 81, 217, 54, 21, 22, 214, 207, 229, - 158, 21, 22, 214, 207, 229, 130, 21, 22, 214, 207, 229, 23, 21, 22, 214, - 207, 228, 252, 21, 22, 214, 207, 140, 21, 22, 214, 207, 230, 91, 21, 22, - 214, 207, 203, 15, 21, 22, 214, 207, 203, 14, 21, 22, 214, 207, 203, 11, - 21, 22, 214, 207, 203, 10, 21, 22, 214, 207, 203, 17, 21, 22, 214, 207, - 203, 16, 21, 22, 201, 237, 21, 22, 201, 224, 21, 22, 201, 207, 21, 22, - 201, 249, 210, 81, 243, 15, 230, 3, 1, 168, 210, 81, 243, 15, 230, 3, 1, - 155, 210, 81, 243, 15, 230, 3, 1, 173, 210, 81, 243, 15, 230, 3, 1, 174, - 210, 81, 243, 15, 230, 3, 1, 238, 32, 210, 81, 243, 15, 230, 3, 1, 191, - 123, 210, 81, 243, 15, 230, 3, 1, 195, 188, 210, 81, 243, 15, 230, 3, 1, - 214, 68, 210, 81, 243, 15, 230, 3, 1, 140, 210, 81, 243, 15, 230, 3, 1, - 231, 240, 210, 81, 243, 15, 230, 3, 1, 221, 215, 210, 81, 243, 15, 230, - 3, 1, 188, 210, 81, 243, 15, 230, 3, 1, 249, 153, 210, 81, 243, 15, 230, - 3, 1, 247, 160, 210, 81, 243, 15, 230, 3, 1, 190, 190, 210, 81, 243, 15, - 230, 3, 1, 199, 49, 210, 81, 243, 15, 230, 3, 1, 180, 210, 81, 243, 15, - 230, 3, 1, 209, 228, 210, 81, 243, 15, 230, 3, 1, 165, 210, 81, 243, 15, - 230, 3, 1, 233, 109, 210, 81, 243, 15, 230, 3, 1, 247, 1, 210, 81, 243, - 15, 230, 3, 1, 65, 210, 81, 243, 15, 230, 3, 1, 71, 210, 81, 243, 15, - 230, 3, 1, 68, 210, 81, 243, 15, 230, 3, 1, 74, 210, 81, 243, 15, 230, 3, - 1, 66, 210, 81, 243, 15, 230, 3, 1, 196, 168, 210, 81, 243, 15, 230, 3, - 1, 228, 35, 210, 81, 243, 15, 230, 3, 1, 53, 210, 236, 210, 81, 243, 15, - 230, 3, 1, 53, 222, 152, 210, 81, 243, 15, 230, 3, 1, 53, 200, 43, 210, - 81, 243, 15, 230, 3, 1, 53, 218, 168, 210, 81, 243, 15, 230, 3, 1, 53, - 215, 61, 210, 81, 243, 15, 230, 3, 1, 53, 172, 210, 81, 243, 15, 230, 3, - 1, 53, 193, 224, 210, 81, 243, 15, 230, 3, 1, 53, 214, 70, 210, 81, 243, - 15, 230, 3, 1, 53, 192, 159, 210, 81, 243, 15, 230, 3, 206, 180, 163, - 219, 19, 210, 81, 243, 15, 230, 3, 206, 180, 198, 79, 210, 81, 243, 15, - 230, 3, 205, 138, 231, 11, 201, 63, 210, 81, 243, 15, 230, 3, 206, 180, - 163, 179, 232, 255, 210, 81, 243, 15, 230, 3, 206, 180, 163, 232, 255, - 210, 81, 243, 15, 230, 3, 205, 138, 231, 11, 201, 64, 232, 255, 210, 81, - 243, 15, 230, 3, 205, 138, 163, 219, 19, 210, 81, 243, 15, 230, 3, 205, - 138, 198, 79, 210, 81, 243, 15, 230, 3, 205, 138, 163, 179, 232, 255, - 210, 81, 243, 15, 230, 3, 205, 138, 163, 232, 255, 210, 81, 243, 15, 230, - 3, 216, 85, 198, 79, 210, 81, 243, 15, 230, 3, 231, 11, 201, 64, 195, - 167, 210, 81, 243, 15, 230, 3, 216, 85, 163, 179, 232, 255, 210, 81, 243, - 15, 230, 3, 216, 85, 163, 232, 255, 210, 81, 243, 15, 230, 3, 218, 239, - 163, 219, 19, 210, 81, 243, 15, 230, 3, 218, 239, 198, 79, 210, 81, 243, - 15, 230, 3, 231, 11, 201, 63, 210, 81, 243, 15, 230, 3, 218, 239, 163, - 179, 232, 255, 210, 81, 243, 15, 230, 3, 218, 239, 163, 232, 255, 210, - 81, 243, 15, 230, 3, 231, 11, 201, 64, 232, 255, 100, 229, 236, 77, 100, - 229, 236, 87, 4, 229, 227, 100, 3, 248, 199, 100, 3, 248, 200, 4, 102, - 100, 3, 233, 205, 248, 199, 100, 3, 233, 205, 248, 200, 4, 102, 100, 3, - 193, 102, 232, 225, 248, 199, 100, 3, 193, 102, 213, 174, 248, 199, 100, - 3, 207, 18, 213, 174, 248, 199, 100, 3, 216, 43, 248, 201, 1, 65, 248, - 201, 1, 252, 206, 248, 201, 1, 68, 248, 201, 1, 223, 199, 248, 201, 1, - 66, 248, 201, 1, 196, 30, 248, 201, 1, 117, 146, 248, 201, 1, 117, 206, - 110, 248, 201, 1, 117, 172, 248, 201, 1, 71, 248, 201, 1, 251, 236, 248, - 201, 1, 74, 248, 201, 1, 250, 163, 248, 201, 1, 155, 248, 201, 1, 221, - 215, 248, 201, 1, 231, 240, 248, 201, 1, 231, 91, 248, 201, 1, 214, 68, - 248, 201, 1, 247, 160, 248, 201, 1, 247, 1, 248, 201, 1, 223, 32, 248, - 201, 1, 222, 252, 248, 201, 1, 212, 101, 248, 201, 1, 197, 132, 248, 201, - 1, 197, 120, 248, 201, 1, 237, 191, 248, 201, 1, 237, 175, 248, 201, 1, - 213, 79, 248, 201, 1, 190, 190, 248, 201, 1, 199, 49, 248, 201, 1, 238, - 32, 248, 201, 1, 237, 68, 248, 201, 1, 180, 248, 201, 1, 168, 248, 201, - 1, 209, 228, 248, 201, 1, 249, 153, 248, 201, 1, 248, 203, 248, 201, 1, - 174, 248, 201, 1, 170, 248, 201, 1, 165, 248, 201, 1, 173, 248, 201, 1, - 195, 188, 248, 201, 1, 203, 165, 248, 201, 1, 201, 175, 248, 201, 1, 188, - 248, 201, 1, 140, 248, 201, 18, 3, 252, 206, 248, 201, 18, 3, 68, 248, - 201, 18, 3, 223, 199, 248, 201, 18, 3, 66, 248, 201, 18, 3, 196, 30, 248, - 201, 18, 3, 117, 146, 248, 201, 18, 3, 117, 206, 110, 248, 201, 18, 3, - 117, 172, 248, 201, 18, 3, 71, 248, 201, 18, 3, 251, 236, 248, 201, 18, - 3, 74, 248, 201, 18, 3, 250, 163, 248, 201, 3, 247, 119, 248, 201, 3, - 251, 71, 248, 201, 3, 195, 35, 248, 201, 3, 195, 40, 248, 201, 3, 250, - 145, 248, 201, 237, 238, 248, 201, 55, 237, 238, 248, 201, 193, 23, 204, - 10, 248, 201, 231, 204, 233, 2, 248, 201, 231, 204, 233, 1, 248, 201, 17, - 191, 77, 248, 201, 17, 107, 248, 201, 17, 109, 248, 201, 17, 138, 248, - 201, 17, 134, 248, 201, 17, 149, 248, 201, 17, 169, 248, 201, 17, 175, - 248, 201, 17, 171, 248, 201, 17, 178, 248, 201, 31, 107, 248, 201, 31, - 109, 248, 201, 31, 138, 248, 201, 31, 134, 248, 201, 31, 149, 248, 201, - 31, 169, 248, 201, 31, 175, 248, 201, 31, 171, 248, 201, 31, 178, 248, - 201, 31, 199, 95, 248, 201, 31, 197, 32, 248, 201, 31, 198, 249, 248, - 201, 31, 232, 135, 248, 201, 31, 233, 15, 248, 201, 31, 202, 120, 248, - 201, 31, 203, 241, 248, 201, 31, 234, 153, 248, 201, 31, 213, 169, 248, - 201, 228, 139, 196, 91, 77, 217, 57, 229, 236, 77, 217, 57, 87, 203, 157, - 217, 57, 1, 155, 217, 57, 1, 221, 215, 217, 57, 1, 231, 240, 217, 57, 1, - 214, 68, 217, 57, 1, 247, 160, 217, 57, 1, 247, 1, 217, 57, 1, 223, 32, - 217, 57, 1, 212, 101, 217, 57, 1, 190, 190, 217, 57, 1, 199, 49, 217, 57, - 1, 238, 32, 217, 57, 1, 180, 217, 57, 1, 168, 217, 57, 1, 209, 228, 217, - 57, 1, 249, 153, 217, 57, 1, 174, 217, 57, 1, 197, 168, 217, 57, 1, 197, - 157, 217, 57, 1, 235, 35, 217, 57, 1, 193, 190, 217, 57, 1, 191, 71, 217, - 57, 1, 191, 123, 217, 57, 1, 255, 214, 217, 57, 1, 170, 217, 57, 1, 165, - 217, 57, 1, 173, 217, 57, 1, 203, 165, 217, 57, 1, 188, 217, 57, 1, 140, - 217, 57, 1, 65, 217, 57, 200, 239, 1, 155, 217, 57, 200, 239, 1, 221, - 215, 217, 57, 200, 239, 1, 231, 240, 217, 57, 200, 239, 1, 214, 68, 217, - 57, 200, 239, 1, 247, 160, 217, 57, 200, 239, 1, 247, 1, 217, 57, 200, - 239, 1, 223, 32, 217, 57, 200, 239, 1, 212, 101, 217, 57, 200, 239, 1, - 190, 190, 217, 57, 200, 239, 1, 199, 49, 217, 57, 200, 239, 1, 238, 32, - 217, 57, 200, 239, 1, 180, 217, 57, 200, 239, 1, 168, 217, 57, 200, 239, - 1, 209, 228, 217, 57, 200, 239, 1, 249, 153, 217, 57, 200, 239, 1, 174, - 217, 57, 200, 239, 1, 197, 168, 217, 57, 200, 239, 1, 197, 157, 217, 57, - 200, 239, 1, 235, 35, 217, 57, 200, 239, 1, 193, 190, 217, 57, 200, 239, - 1, 191, 71, 217, 57, 200, 239, 1, 191, 123, 217, 57, 200, 239, 1, 170, - 217, 57, 200, 239, 1, 165, 217, 57, 200, 239, 1, 173, 217, 57, 200, 239, - 1, 203, 165, 217, 57, 200, 239, 1, 188, 217, 57, 200, 239, 1, 140, 217, - 57, 200, 239, 1, 65, 217, 57, 18, 3, 252, 206, 217, 57, 18, 3, 68, 217, - 57, 18, 3, 66, 217, 57, 18, 3, 71, 217, 57, 18, 3, 74, 217, 57, 3, 251, - 71, 217, 57, 3, 247, 119, 217, 41, 129, 1, 65, 217, 41, 129, 1, 252, 206, - 217, 41, 129, 1, 68, 217, 41, 129, 1, 223, 199, 217, 41, 129, 1, 66, 217, - 41, 129, 1, 196, 30, 217, 41, 129, 1, 71, 217, 41, 129, 1, 251, 236, 217, - 41, 129, 1, 74, 217, 41, 129, 1, 250, 163, 217, 41, 129, 1, 155, 217, 41, - 129, 1, 221, 215, 217, 41, 129, 1, 231, 240, 217, 41, 129, 1, 231, 91, - 217, 41, 129, 1, 214, 68, 217, 41, 129, 1, 247, 160, 217, 41, 129, 1, - 247, 1, 217, 41, 129, 1, 223, 32, 217, 41, 129, 1, 222, 252, 217, 41, - 129, 1, 212, 101, 217, 41, 129, 1, 197, 132, 217, 41, 129, 1, 197, 120, - 217, 41, 129, 1, 237, 191, 217, 41, 129, 1, 237, 175, 217, 41, 129, 1, - 213, 79, 217, 41, 129, 1, 190, 190, 217, 41, 129, 1, 199, 49, 217, 41, - 129, 1, 238, 32, 217, 41, 129, 1, 237, 68, 217, 41, 129, 1, 180, 217, 41, - 129, 1, 168, 217, 41, 129, 1, 209, 228, 217, 41, 129, 1, 249, 153, 217, - 41, 129, 1, 248, 203, 217, 41, 129, 1, 174, 217, 41, 129, 1, 170, 217, - 41, 129, 1, 165, 217, 41, 129, 1, 173, 217, 41, 129, 1, 195, 188, 217, - 41, 129, 1, 203, 165, 217, 41, 129, 1, 201, 175, 217, 41, 129, 1, 188, - 217, 41, 129, 1, 140, 217, 41, 129, 1, 219, 73, 217, 41, 129, 1, 220, - 246, 217, 41, 129, 1, 222, 202, 217, 41, 129, 1, 198, 26, 217, 41, 129, - 18, 3, 252, 206, 217, 41, 129, 18, 3, 68, 217, 41, 129, 18, 3, 223, 199, - 217, 41, 129, 18, 3, 66, 217, 41, 129, 18, 3, 196, 30, 217, 41, 129, 18, - 3, 117, 146, 217, 41, 129, 18, 3, 71, 217, 41, 129, 18, 3, 251, 236, 217, - 41, 129, 18, 3, 74, 217, 41, 129, 18, 3, 250, 163, 217, 41, 129, 3, 251, - 71, 217, 41, 129, 3, 195, 35, 217, 41, 129, 3, 212, 141, 217, 41, 129, 3, - 247, 121, 217, 41, 129, 3, 230, 72, 217, 41, 129, 195, 40, 217, 41, 129, - 207, 44, 217, 41, 129, 207, 181, 217, 41, 129, 17, 191, 77, 217, 41, 129, - 17, 107, 217, 41, 129, 17, 109, 217, 41, 129, 17, 138, 217, 41, 129, 17, - 134, 217, 41, 129, 17, 149, 217, 41, 129, 17, 169, 217, 41, 129, 17, 175, - 217, 41, 129, 17, 171, 217, 41, 129, 17, 178, 230, 157, 129, 1, 65, 230, - 157, 129, 1, 252, 206, 230, 157, 129, 1, 68, 230, 157, 129, 1, 223, 199, - 230, 157, 129, 1, 66, 230, 157, 129, 1, 196, 30, 230, 157, 129, 1, 234, - 188, 230, 157, 129, 1, 251, 236, 230, 157, 129, 1, 211, 87, 230, 157, - 129, 1, 250, 163, 230, 157, 129, 1, 170, 230, 157, 129, 1, 195, 188, 230, - 157, 129, 1, 249, 153, 230, 157, 129, 1, 248, 203, 230, 157, 129, 1, 174, - 230, 157, 129, 1, 155, 230, 157, 129, 1, 221, 215, 230, 157, 129, 1, 190, - 190, 230, 157, 129, 1, 199, 49, 230, 157, 129, 1, 173, 230, 157, 129, 1, - 231, 240, 230, 157, 129, 1, 231, 91, 230, 157, 129, 1, 238, 32, 230, 157, - 129, 1, 237, 68, 230, 157, 129, 1, 180, 230, 157, 129, 1, 247, 160, 230, - 157, 129, 1, 247, 1, 230, 157, 129, 1, 197, 132, 230, 157, 129, 1, 197, - 120, 230, 157, 129, 1, 219, 73, 230, 157, 129, 1, 223, 32, 230, 157, 129, - 1, 222, 252, 230, 157, 129, 1, 237, 191, 230, 157, 129, 1, 237, 175, 230, - 157, 129, 1, 214, 68, 230, 157, 129, 1, 168, 230, 157, 129, 1, 209, 228, - 230, 157, 129, 1, 140, 230, 157, 129, 1, 165, 230, 157, 129, 1, 188, 230, - 157, 129, 18, 3, 252, 206, 230, 157, 129, 18, 3, 68, 230, 157, 129, 18, - 3, 223, 199, 230, 157, 129, 18, 3, 66, 230, 157, 129, 18, 3, 196, 30, - 230, 157, 129, 18, 3, 234, 188, 230, 157, 129, 18, 3, 251, 236, 230, 157, - 129, 18, 3, 211, 87, 230, 157, 129, 18, 3, 250, 163, 230, 157, 129, 3, - 251, 71, 230, 157, 129, 3, 195, 35, 230, 157, 129, 195, 40, 230, 157, - 129, 211, 113, 230, 157, 129, 17, 191, 77, 230, 157, 129, 17, 107, 230, - 157, 129, 17, 109, 230, 157, 129, 17, 138, 230, 157, 129, 17, 134, 230, - 157, 129, 17, 149, 230, 157, 129, 17, 169, 230, 157, 129, 17, 175, 230, - 157, 129, 17, 171, 230, 157, 129, 17, 178, 217, 102, 1, 155, 217, 102, 1, - 231, 240, 217, 102, 1, 214, 68, 217, 102, 1, 168, 217, 102, 1, 249, 153, - 217, 102, 1, 174, 217, 102, 1, 190, 190, 217, 102, 1, 238, 32, 217, 102, - 1, 180, 217, 102, 1, 247, 160, 217, 102, 1, 223, 32, 217, 102, 1, 212, - 101, 217, 102, 1, 170, 217, 102, 1, 165, 217, 102, 1, 173, 217, 102, 1, - 195, 188, 217, 102, 1, 188, 217, 102, 1, 65, 217, 102, 251, 118, 217, - 102, 18, 3, 68, 217, 102, 18, 3, 66, 217, 102, 18, 3, 71, 217, 102, 18, - 3, 74, 217, 102, 210, 94, 217, 102, 234, 95, 79, 205, 53, 222, 33, 3, - 247, 119, 222, 33, 3, 251, 71, 222, 33, 3, 207, 44, 222, 33, 3, 195, 35, - 222, 33, 1, 65, 222, 33, 1, 252, 206, 222, 33, 1, 68, 222, 33, 1, 223, - 199, 222, 33, 1, 66, 222, 33, 1, 196, 30, 222, 33, 1, 117, 146, 222, 33, - 1, 117, 206, 110, 222, 33, 1, 117, 172, 222, 33, 1, 117, 219, 74, 222, - 33, 1, 71, 222, 33, 1, 251, 236, 222, 33, 1, 74, 222, 33, 1, 155, 222, - 33, 1, 221, 215, 222, 33, 1, 231, 240, 222, 33, 1, 231, 91, 222, 33, 1, - 214, 68, 222, 33, 1, 247, 160, 222, 33, 1, 247, 1, 222, 33, 1, 223, 32, - 222, 33, 1, 222, 252, 222, 33, 1, 212, 101, 222, 33, 1, 197, 132, 222, - 33, 1, 197, 120, 222, 33, 1, 237, 191, 222, 33, 1, 237, 175, 222, 33, 1, - 213, 79, 222, 33, 1, 190, 190, 222, 33, 1, 199, 49, 222, 33, 1, 238, 32, - 222, 33, 1, 237, 68, 222, 33, 1, 180, 222, 33, 1, 168, 222, 33, 1, 209, - 228, 222, 33, 1, 249, 153, 222, 33, 1, 248, 203, 222, 33, 1, 174, 222, - 33, 1, 170, 222, 33, 1, 165, 222, 33, 1, 173, 222, 33, 1, 193, 190, 222, - 33, 1, 203, 165, 222, 33, 1, 201, 175, 222, 33, 1, 188, 222, 33, 1, 140, - 222, 33, 1, 222, 202, 222, 33, 18, 3, 252, 206, 222, 33, 18, 3, 251, 157, - 252, 206, 222, 33, 18, 3, 68, 222, 33, 18, 3, 223, 199, 222, 33, 18, 3, - 66, 222, 33, 18, 3, 196, 30, 222, 33, 18, 3, 117, 146, 222, 33, 18, 3, - 71, 222, 33, 18, 3, 251, 236, 222, 33, 18, 3, 233, 242, 222, 33, 3, 221, - 143, 222, 33, 239, 45, 222, 33, 237, 238, 222, 33, 55, 237, 238, 222, 33, - 208, 152, 205, 54, 217, 51, 222, 33, 208, 152, 251, 157, 205, 54, 217, - 51, 222, 33, 208, 152, 232, 186, 222, 33, 208, 152, 201, 248, 233, 3, - 222, 33, 208, 152, 236, 140, 222, 33, 208, 152, 55, 236, 140, 222, 33, - 208, 152, 197, 225, 236, 140, 222, 33, 208, 152, 243, 10, 222, 33, 208, - 152, 233, 4, 243, 10, 222, 33, 208, 152, 201, 217, 222, 33, 208, 152, - 242, 215, 201, 217, 222, 33, 17, 191, 77, 222, 33, 17, 107, 222, 33, 17, - 109, 222, 33, 17, 138, 222, 33, 17, 134, 222, 33, 17, 149, 222, 33, 17, - 169, 222, 33, 17, 175, 222, 33, 17, 171, 222, 33, 17, 178, 219, 88, 1, - 192, 35, 44, 232, 118, 91, 198, 222, 44, 232, 118, 91, 211, 100, 44, 232, - 118, 91, 234, 156, 44, 232, 118, 91, 202, 118, 44, 232, 118, 91, 232, - 139, 44, 232, 118, 91, 198, 245, 44, 232, 118, 115, 234, 155, 44, 232, - 118, 115, 202, 117, 44, 232, 118, 91, 197, 35, 44, 232, 118, 91, 202, - 127, 44, 232, 118, 91, 202, 126, 44, 232, 118, 91, 199, 86, 44, 232, 118, - 91, 234, 159, 44, 232, 118, 115, 197, 34, 44, 232, 118, 115, 202, 125, - 44, 232, 118, 91, 233, 18, 44, 232, 118, 91, 208, 22, 44, 232, 118, 91, - 230, 69, 44, 232, 118, 91, 230, 68, 44, 232, 118, 115, 208, 20, 44, 232, - 118, 235, 121, 233, 93, 221, 144, 44, 3, 214, 104, 44, 3, 247, 6, 44, 3, - 252, 157, 44, 3, 196, 15, 44, 3, 215, 90, 44, 3, 220, 194, 44, 3, 210, - 85, 44, 3, 215, 135, 44, 3, 222, 124, 44, 3, 210, 164, 44, 3, 209, 39, - 44, 3, 195, 173, 44, 3, 210, 215, 44, 3, 220, 183, 44, 3, 195, 143, 44, - 193, 101, 238, 187, 56, 44, 235, 92, 238, 187, 56, 44, 220, 23, 56, 44, - 205, 159, 210, 167, 56, 44, 198, 21, 238, 230, 56, 44, 198, 21, 31, 56, - 44, 238, 169, 56, 44, 23, 211, 155, 56, 44, 201, 227, 56, 44, 198, 39, - 56, 44, 223, 163, 209, 22, 56, 44, 201, 96, 232, 98, 56, 44, 3, 215, 94, - 44, 3, 195, 181, 44, 208, 152, 234, 95, 79, 199, 53, 10, 3, 65, 10, 3, - 42, 25, 65, 10, 3, 42, 25, 249, 135, 10, 3, 42, 25, 231, 209, 199, 84, - 10, 3, 42, 25, 140, 10, 3, 42, 25, 223, 201, 10, 3, 42, 25, 220, 103, - 230, 155, 10, 3, 42, 25, 215, 101, 10, 3, 42, 25, 205, 185, 10, 3, 254, - 215, 10, 3, 252, 155, 10, 3, 252, 156, 25, 250, 207, 10, 3, 252, 156, 25, - 235, 74, 230, 155, 10, 3, 252, 156, 25, 231, 222, 10, 3, 252, 156, 25, - 231, 209, 199, 84, 10, 3, 252, 156, 25, 140, 10, 3, 252, 156, 25, 223, - 202, 230, 155, 10, 3, 252, 156, 25, 223, 172, 10, 3, 252, 156, 25, 220, - 104, 10, 3, 252, 156, 25, 203, 97, 10, 3, 252, 156, 25, 126, 108, 126, - 108, 66, 10, 3, 252, 156, 230, 155, 10, 3, 252, 72, 10, 3, 252, 73, 25, - 249, 114, 10, 3, 252, 73, 25, 231, 209, 199, 84, 10, 3, 252, 73, 25, 216, - 233, 108, 234, 103, 10, 3, 252, 73, 25, 203, 163, 10, 3, 252, 73, 25, - 199, 209, 10, 3, 252, 42, 10, 3, 251, 216, 10, 3, 251, 217, 25, 234, 28, - 10, 3, 251, 217, 25, 203, 59, 108, 231, 23, 10, 3, 251, 207, 10, 3, 251, - 208, 25, 251, 207, 10, 3, 251, 208, 25, 236, 253, 10, 3, 251, 208, 25, - 231, 23, 10, 3, 251, 208, 25, 140, 10, 3, 251, 208, 25, 222, 111, 10, 3, - 251, 208, 25, 221, 166, 10, 3, 251, 208, 25, 203, 113, 10, 3, 251, 208, - 25, 196, 38, 10, 3, 251, 203, 10, 3, 251, 190, 10, 3, 251, 145, 10, 3, - 251, 146, 25, 203, 113, 10, 3, 251, 132, 10, 3, 251, 133, 139, 251, 132, - 10, 3, 251, 133, 115, 198, 144, 10, 3, 251, 133, 108, 214, 241, 211, 63, - 251, 133, 108, 214, 240, 10, 3, 251, 133, 108, 214, 241, 201, 189, 10, 3, - 251, 91, 10, 3, 251, 60, 10, 3, 251, 26, 10, 3, 251, 27, 25, 220, 197, - 10, 3, 250, 254, 10, 3, 250, 215, 10, 3, 250, 209, 10, 3, 250, 210, 191, - 26, 199, 84, 10, 3, 250, 210, 222, 116, 199, 84, 10, 3, 250, 210, 139, - 250, 210, 197, 83, 139, 197, 83, 197, 83, 139, 197, 83, 210, 137, 10, 3, - 250, 210, 139, 250, 210, 139, 250, 209, 10, 3, 250, 210, 139, 250, 210, - 139, 250, 210, 238, 210, 250, 210, 139, 250, 210, 139, 250, 209, 10, 3, - 250, 207, 10, 3, 250, 203, 10, 3, 249, 153, 10, 3, 249, 135, 10, 3, 249, - 129, 10, 3, 249, 121, 10, 3, 249, 115, 10, 3, 249, 116, 139, 249, 115, - 10, 3, 249, 114, 10, 3, 164, 10, 3, 249, 87, 10, 3, 248, 188, 10, 3, 248, - 189, 25, 65, 10, 3, 248, 189, 25, 231, 200, 10, 3, 248, 189, 25, 223, - 202, 230, 155, 10, 3, 248, 10, 10, 3, 248, 11, 139, 248, 11, 252, 155, - 10, 3, 248, 11, 139, 248, 11, 196, 113, 10, 3, 248, 11, 238, 210, 248, - 10, 10, 3, 247, 242, 10, 3, 247, 243, 139, 247, 242, 10, 3, 247, 230, 10, - 3, 247, 229, 10, 3, 238, 32, 10, 3, 238, 22, 10, 3, 238, 23, 221, 125, - 25, 42, 108, 217, 39, 10, 3, 238, 23, 221, 125, 25, 251, 145, 10, 3, 238, - 23, 221, 125, 25, 249, 114, 10, 3, 238, 23, 221, 125, 25, 248, 188, 10, - 3, 238, 23, 221, 125, 25, 231, 240, 10, 3, 238, 23, 221, 125, 25, 231, - 241, 108, 217, 39, 10, 3, 238, 23, 221, 125, 25, 231, 53, 10, 3, 238, 23, - 221, 125, 25, 231, 32, 10, 3, 238, 23, 221, 125, 25, 230, 168, 10, 3, - 238, 23, 221, 125, 25, 140, 10, 3, 238, 23, 221, 125, 25, 223, 77, 10, 3, - 238, 23, 221, 125, 25, 223, 78, 108, 218, 225, 10, 3, 238, 23, 221, 125, - 25, 222, 96, 10, 3, 238, 23, 221, 125, 25, 173, 10, 3, 238, 23, 221, 125, - 25, 218, 225, 10, 3, 238, 23, 221, 125, 25, 218, 226, 108, 217, 38, 10, - 3, 238, 23, 221, 125, 25, 218, 208, 10, 3, 238, 23, 221, 125, 25, 214, - 121, 10, 3, 238, 23, 221, 125, 25, 210, 138, 108, 210, 137, 10, 3, 238, - 23, 221, 125, 25, 202, 222, 10, 3, 238, 23, 221, 125, 25, 199, 209, 10, - 3, 238, 23, 221, 125, 25, 196, 170, 108, 231, 32, 10, 3, 238, 23, 221, - 125, 25, 196, 38, 10, 3, 237, 250, 10, 3, 237, 225, 10, 3, 237, 224, 10, - 3, 237, 223, 10, 3, 237, 44, 10, 3, 237, 26, 10, 3, 236, 255, 10, 3, 237, - 0, 25, 203, 113, 10, 3, 236, 253, 10, 3, 236, 243, 10, 3, 236, 244, 222, - 55, 126, 230, 156, 236, 222, 10, 3, 236, 222, 10, 3, 235, 89, 10, 3, 235, - 90, 139, 235, 89, 10, 3, 235, 90, 230, 155, 10, 3, 235, 90, 203, 94, 10, - 3, 235, 87, 10, 3, 235, 88, 25, 234, 9, 10, 3, 235, 86, 10, 3, 235, 82, - 10, 3, 235, 81, 10, 3, 235, 80, 10, 3, 235, 75, 10, 3, 235, 73, 10, 3, - 235, 74, 230, 155, 10, 3, 235, 74, 230, 156, 230, 155, 10, 3, 235, 72, - 10, 3, 235, 65, 10, 3, 71, 10, 3, 235, 15, 25, 210, 137, 10, 3, 235, 15, - 139, 235, 15, 212, 131, 139, 212, 130, 10, 3, 234, 218, 10, 3, 234, 219, - 25, 42, 108, 230, 105, 108, 238, 32, 10, 3, 234, 219, 25, 231, 200, 10, - 3, 234, 219, 25, 216, 100, 10, 3, 234, 219, 25, 205, 169, 10, 3, 234, - 219, 25, 203, 113, 10, 3, 234, 219, 25, 66, 10, 3, 234, 190, 10, 3, 234, - 177, 10, 3, 234, 140, 10, 3, 234, 103, 10, 3, 234, 104, 25, 231, 208, 10, - 3, 234, 104, 25, 231, 209, 199, 84, 10, 3, 234, 104, 25, 216, 232, 10, 3, - 234, 104, 238, 210, 234, 103, 10, 3, 234, 104, 211, 63, 234, 103, 10, 3, - 234, 104, 201, 189, 10, 3, 234, 31, 10, 3, 234, 28, 10, 3, 234, 9, 10, 3, - 233, 180, 10, 3, 233, 181, 25, 65, 10, 3, 233, 181, 25, 42, 108, 220, 37, - 10, 3, 233, 181, 25, 42, 108, 220, 38, 25, 220, 37, 10, 3, 233, 181, 25, - 251, 132, 10, 3, 233, 181, 25, 249, 135, 10, 3, 233, 181, 25, 235, 74, - 230, 155, 10, 3, 233, 181, 25, 235, 74, 230, 156, 230, 155, 10, 3, 233, - 181, 25, 140, 10, 3, 233, 181, 25, 230, 105, 230, 155, 10, 3, 233, 181, - 25, 223, 202, 230, 155, 10, 3, 233, 181, 25, 222, 54, 10, 3, 233, 181, - 25, 222, 55, 201, 189, 10, 3, 233, 181, 25, 220, 223, 10, 3, 233, 181, - 25, 173, 10, 3, 233, 181, 25, 220, 38, 25, 220, 37, 10, 3, 233, 181, 25, - 219, 146, 10, 3, 233, 181, 25, 218, 225, 10, 3, 233, 181, 25, 196, 169, - 10, 3, 233, 181, 25, 196, 158, 10, 3, 231, 240, 10, 3, 231, 241, 230, - 155, 10, 3, 231, 238, 10, 3, 231, 239, 25, 42, 108, 238, 33, 108, 140, - 10, 3, 231, 239, 25, 42, 108, 140, 10, 3, 231, 239, 25, 42, 108, 223, - 201, 10, 3, 231, 239, 25, 252, 73, 199, 85, 108, 199, 236, 10, 3, 231, - 239, 25, 251, 132, 10, 3, 231, 239, 25, 250, 209, 10, 3, 231, 239, 25, - 250, 208, 108, 231, 222, 10, 3, 231, 239, 25, 249, 135, 10, 3, 231, 239, - 25, 249, 88, 108, 165, 10, 3, 231, 239, 25, 247, 230, 10, 3, 231, 239, - 25, 247, 231, 108, 165, 10, 3, 231, 239, 25, 238, 32, 10, 3, 231, 239, - 25, 237, 44, 10, 3, 231, 239, 25, 237, 0, 25, 203, 113, 10, 3, 231, 239, - 25, 235, 87, 10, 3, 231, 239, 25, 234, 140, 10, 3, 231, 239, 25, 234, - 141, 108, 173, 10, 3, 231, 239, 25, 234, 103, 10, 3, 231, 239, 25, 234, - 104, 25, 231, 209, 199, 84, 10, 3, 231, 239, 25, 231, 209, 199, 84, 10, - 3, 231, 239, 25, 231, 200, 10, 3, 231, 239, 25, 231, 53, 10, 3, 231, 239, - 25, 231, 51, 10, 3, 231, 239, 25, 231, 52, 108, 65, 10, 3, 231, 239, 25, - 231, 33, 108, 201, 4, 10, 3, 231, 239, 25, 230, 105, 108, 218, 226, 108, - 234, 9, 10, 3, 231, 239, 25, 230, 73, 10, 3, 231, 239, 25, 230, 74, 108, - 173, 10, 3, 231, 239, 25, 229, 159, 108, 219, 146, 10, 3, 231, 239, 25, - 228, 151, 10, 3, 231, 239, 25, 223, 202, 230, 155, 10, 3, 231, 239, 25, - 223, 63, 108, 228, 160, 108, 250, 209, 10, 3, 231, 239, 25, 222, 96, 10, - 3, 231, 239, 25, 222, 54, 10, 3, 231, 239, 25, 221, 152, 10, 3, 231, 239, - 25, 221, 153, 108, 220, 37, 10, 3, 231, 239, 25, 220, 224, 108, 251, 132, - 10, 3, 231, 239, 25, 173, 10, 3, 231, 239, 25, 216, 233, 108, 234, 103, - 10, 3, 231, 239, 25, 216, 100, 10, 3, 231, 239, 25, 212, 130, 10, 3, 231, - 239, 25, 212, 131, 139, 212, 130, 10, 3, 231, 239, 25, 168, 10, 3, 231, - 239, 25, 205, 169, 10, 3, 231, 239, 25, 205, 127, 10, 3, 231, 239, 25, - 203, 113, 10, 3, 231, 239, 25, 203, 114, 108, 197, 64, 10, 3, 231, 239, - 25, 203, 79, 10, 3, 231, 239, 25, 200, 204, 10, 3, 231, 239, 25, 199, - 209, 10, 3, 231, 239, 25, 66, 10, 3, 231, 239, 25, 196, 158, 10, 3, 231, - 239, 25, 196, 159, 108, 235, 89, 10, 3, 231, 239, 139, 231, 238, 10, 3, - 231, 233, 10, 3, 231, 234, 238, 210, 231, 233, 10, 3, 231, 231, 10, 3, - 231, 232, 139, 231, 232, 231, 201, 139, 231, 200, 10, 3, 231, 222, 10, 3, - 231, 223, 231, 232, 139, 231, 232, 231, 201, 139, 231, 200, 10, 3, 231, - 221, 10, 3, 231, 219, 10, 3, 231, 210, 10, 3, 231, 208, 10, 3, 231, 209, - 199, 84, 10, 3, 231, 209, 139, 231, 208, 10, 3, 231, 209, 238, 210, 231, - 208, 10, 3, 231, 200, 10, 3, 231, 199, 10, 3, 231, 193, 10, 3, 231, 134, - 10, 3, 231, 135, 25, 220, 197, 10, 3, 231, 53, 10, 3, 231, 54, 25, 71, - 10, 3, 231, 54, 25, 66, 10, 3, 231, 54, 238, 210, 231, 53, 10, 3, 231, - 51, 10, 3, 231, 52, 139, 231, 51, 10, 3, 231, 52, 238, 210, 231, 51, 10, - 3, 231, 48, 10, 3, 231, 32, 10, 3, 231, 33, 230, 155, 10, 3, 231, 30, 10, - 3, 231, 31, 25, 42, 108, 223, 201, 10, 3, 231, 31, 25, 231, 209, 199, 84, - 10, 3, 231, 31, 25, 223, 201, 10, 3, 231, 31, 25, 218, 226, 108, 223, - 201, 10, 3, 231, 31, 25, 168, 10, 3, 231, 25, 10, 3, 231, 23, 10, 3, 231, - 24, 238, 210, 231, 23, 10, 3, 231, 24, 25, 249, 135, 10, 3, 231, 24, 25, - 199, 209, 10, 3, 231, 24, 199, 84, 10, 3, 230, 179, 10, 3, 230, 180, 238, - 210, 230, 179, 10, 3, 230, 177, 10, 3, 230, 178, 25, 222, 96, 10, 3, 230, - 178, 25, 222, 97, 25, 223, 202, 230, 155, 10, 3, 230, 178, 25, 212, 130, - 10, 3, 230, 178, 25, 205, 170, 108, 197, 82, 10, 3, 230, 178, 230, 155, - 10, 3, 230, 168, 10, 3, 230, 169, 25, 42, 108, 220, 197, 10, 3, 230, 169, - 25, 220, 197, 10, 3, 230, 169, 139, 230, 169, 218, 216, 10, 3, 230, 160, - 10, 3, 230, 158, 10, 3, 230, 159, 25, 203, 113, 10, 3, 230, 149, 10, 3, - 230, 148, 10, 3, 230, 143, 10, 3, 230, 142, 10, 3, 140, 10, 3, 230, 105, - 199, 84, 10, 3, 230, 105, 230, 155, 10, 3, 230, 73, 10, 3, 229, 158, 10, - 3, 229, 159, 25, 250, 209, 10, 3, 229, 159, 25, 250, 207, 10, 3, 229, - 159, 25, 249, 135, 10, 3, 229, 159, 25, 236, 222, 10, 3, 229, 159, 25, - 231, 231, 10, 3, 229, 159, 25, 221, 141, 10, 3, 229, 159, 25, 212, 130, - 10, 3, 229, 159, 25, 203, 113, 10, 3, 229, 159, 25, 66, 10, 3, 228, 159, - 10, 3, 228, 151, 10, 3, 228, 152, 25, 251, 132, 10, 3, 228, 152, 25, 230, - 73, 10, 3, 228, 152, 25, 222, 54, 10, 3, 228, 152, 25, 219, 89, 10, 3, - 228, 152, 25, 196, 158, 10, 3, 228, 146, 10, 3, 68, 10, 3, 228, 74, 65, - 10, 3, 228, 30, 10, 3, 223, 229, 10, 3, 223, 230, 139, 223, 230, 247, - 230, 10, 3, 223, 230, 139, 223, 230, 201, 189, 10, 3, 223, 204, 10, 3, - 223, 201, 10, 3, 223, 202, 237, 26, 10, 3, 223, 202, 207, 1, 10, 3, 223, - 202, 139, 223, 202, 203, 63, 139, 203, 63, 196, 159, 139, 196, 158, 10, - 3, 223, 202, 230, 155, 10, 3, 223, 191, 10, 3, 223, 192, 25, 231, 209, - 199, 84, 10, 3, 223, 190, 10, 3, 223, 180, 10, 3, 223, 181, 25, 199, 209, - 10, 3, 223, 181, 238, 210, 223, 180, 10, 3, 223, 181, 211, 63, 223, 180, - 10, 3, 223, 181, 201, 189, 10, 3, 223, 172, 10, 3, 223, 162, 10, 3, 223, - 77, 10, 3, 223, 62, 10, 3, 155, 10, 3, 222, 142, 25, 65, 10, 3, 222, 142, - 25, 252, 42, 10, 3, 222, 142, 25, 252, 43, 108, 220, 223, 10, 3, 222, - 142, 25, 250, 207, 10, 3, 222, 142, 25, 249, 135, 10, 3, 222, 142, 25, - 249, 114, 10, 3, 222, 142, 25, 164, 10, 3, 222, 142, 25, 248, 188, 10, 3, - 222, 142, 25, 234, 28, 10, 3, 222, 142, 25, 234, 9, 10, 3, 222, 142, 25, - 231, 240, 10, 3, 222, 142, 25, 231, 222, 10, 3, 222, 142, 25, 231, 209, - 199, 84, 10, 3, 222, 142, 25, 231, 200, 10, 3, 222, 142, 25, 231, 201, - 108, 203, 164, 108, 65, 10, 3, 222, 142, 25, 231, 53, 10, 3, 222, 142, - 25, 231, 32, 10, 3, 222, 142, 25, 231, 24, 108, 205, 127, 10, 3, 222, - 142, 25, 231, 24, 238, 210, 231, 23, 10, 3, 222, 142, 25, 230, 179, 10, - 3, 222, 142, 25, 230, 148, 10, 3, 222, 142, 25, 223, 201, 10, 3, 222, - 142, 25, 223, 180, 10, 3, 222, 142, 25, 222, 96, 10, 3, 222, 142, 25, - 221, 166, 10, 3, 222, 142, 25, 221, 152, 10, 3, 222, 142, 25, 219, 146, - 10, 3, 222, 142, 25, 218, 225, 10, 3, 222, 142, 25, 216, 232, 10, 3, 222, - 142, 25, 216, 233, 108, 235, 89, 10, 3, 222, 142, 25, 216, 233, 108, 231, - 53, 10, 3, 222, 142, 25, 216, 233, 108, 199, 145, 10, 3, 222, 142, 25, - 216, 100, 10, 3, 222, 142, 25, 216, 101, 108, 212, 125, 10, 3, 222, 142, - 25, 214, 121, 10, 3, 222, 142, 25, 212, 130, 10, 3, 222, 142, 25, 209, - 185, 10, 3, 222, 142, 25, 206, 68, 10, 3, 222, 142, 25, 188, 10, 3, 222, - 142, 25, 205, 127, 10, 3, 222, 142, 25, 203, 165, 10, 3, 222, 142, 25, - 203, 113, 10, 3, 222, 142, 25, 203, 79, 10, 3, 222, 142, 25, 203, 5, 10, - 3, 222, 142, 25, 202, 201, 10, 3, 222, 142, 25, 200, 213, 10, 3, 222, - 142, 25, 199, 179, 10, 3, 222, 142, 25, 66, 10, 3, 222, 142, 25, 196, - 169, 10, 3, 222, 142, 25, 196, 158, 10, 3, 222, 142, 25, 196, 116, 25, - 168, 10, 3, 222, 142, 25, 196, 38, 10, 3, 222, 142, 25, 191, 30, 10, 3, - 222, 128, 10, 3, 222, 129, 238, 210, 222, 128, 10, 3, 222, 117, 10, 3, - 222, 113, 10, 3, 222, 111, 10, 3, 222, 110, 10, 3, 222, 108, 10, 3, 222, - 109, 139, 222, 108, 10, 3, 222, 96, 10, 3, 222, 97, 25, 223, 202, 230, - 155, 10, 3, 222, 91, 10, 3, 222, 92, 25, 249, 135, 10, 3, 222, 92, 238, - 210, 222, 91, 10, 3, 222, 89, 10, 3, 222, 88, 10, 3, 222, 54, 10, 3, 222, - 55, 220, 105, 25, 126, 139, 220, 105, 25, 66, 10, 3, 222, 55, 139, 222, - 55, 220, 105, 25, 126, 139, 220, 105, 25, 66, 10, 3, 221, 242, 10, 3, - 221, 166, 10, 3, 221, 167, 25, 249, 135, 10, 3, 221, 167, 25, 66, 10, 3, - 221, 167, 25, 196, 158, 10, 3, 221, 152, 10, 3, 221, 141, 10, 3, 221, - 127, 10, 3, 221, 126, 10, 3, 221, 124, 10, 3, 221, 125, 139, 221, 124, - 10, 3, 220, 232, 10, 3, 220, 233, 139, 229, 159, 25, 250, 208, 220, 233, - 139, 229, 159, 25, 250, 207, 10, 3, 220, 223, 10, 3, 220, 221, 10, 3, - 220, 222, 195, 168, 20, 10, 3, 220, 220, 10, 3, 220, 211, 10, 3, 220, - 212, 230, 155, 10, 3, 220, 210, 10, 3, 220, 197, 10, 3, 220, 198, 211, - 63, 220, 197, 10, 3, 220, 190, 10, 3, 220, 167, 10, 3, 173, 10, 3, 220, - 104, 10, 3, 220, 105, 25, 65, 10, 3, 220, 105, 25, 42, 108, 238, 33, 108, - 140, 10, 3, 220, 105, 25, 42, 108, 231, 200, 10, 3, 220, 105, 25, 42, - 108, 220, 37, 10, 3, 220, 105, 25, 251, 207, 10, 3, 220, 105, 25, 251, - 132, 10, 3, 220, 105, 25, 250, 210, 191, 26, 199, 84, 10, 3, 220, 105, - 25, 249, 135, 10, 3, 220, 105, 25, 248, 188, 10, 3, 220, 105, 25, 237, - 225, 10, 3, 220, 105, 25, 234, 103, 10, 3, 220, 105, 25, 231, 240, 10, 3, - 220, 105, 25, 231, 200, 10, 3, 220, 105, 25, 230, 168, 10, 3, 220, 105, - 25, 230, 169, 108, 230, 168, 10, 3, 220, 105, 25, 140, 10, 3, 220, 105, - 25, 230, 73, 10, 3, 220, 105, 25, 229, 159, 25, 212, 130, 10, 3, 220, - 105, 25, 223, 202, 230, 155, 10, 3, 220, 105, 25, 223, 180, 10, 3, 220, - 105, 25, 223, 181, 108, 140, 10, 3, 220, 105, 25, 223, 181, 108, 218, - 225, 10, 3, 220, 105, 25, 221, 166, 10, 3, 220, 105, 25, 221, 141, 10, 3, - 220, 105, 25, 220, 223, 10, 3, 220, 105, 25, 220, 211, 10, 3, 220, 105, - 25, 220, 212, 108, 229, 159, 108, 65, 10, 3, 220, 105, 25, 220, 104, 10, - 3, 220, 105, 25, 219, 89, 10, 3, 220, 105, 25, 218, 225, 10, 3, 220, 105, - 25, 218, 210, 10, 3, 220, 105, 25, 216, 232, 10, 3, 220, 105, 25, 216, - 233, 108, 234, 103, 10, 3, 220, 105, 25, 215, 101, 10, 3, 220, 105, 25, - 214, 121, 10, 3, 220, 105, 25, 203, 114, 108, 200, 204, 10, 3, 220, 105, - 25, 203, 59, 108, 231, 24, 108, 234, 28, 10, 3, 220, 105, 25, 203, 59, - 108, 231, 24, 199, 84, 10, 3, 220, 105, 25, 203, 3, 10, 3, 220, 105, 25, - 203, 4, 108, 203, 3, 10, 3, 220, 105, 25, 200, 204, 10, 3, 220, 105, 25, - 199, 223, 10, 3, 220, 105, 25, 199, 209, 10, 3, 220, 105, 25, 199, 146, - 108, 42, 108, 201, 5, 108, 180, 10, 3, 220, 105, 25, 66, 10, 3, 220, 105, - 25, 126, 108, 65, 10, 3, 220, 105, 25, 126, 108, 126, 108, 66, 10, 3, - 220, 105, 25, 196, 170, 108, 250, 209, 10, 3, 220, 105, 25, 196, 158, 10, - 3, 220, 105, 25, 196, 38, 10, 3, 220, 105, 201, 189, 10, 3, 220, 102, 10, - 3, 220, 103, 25, 203, 113, 10, 3, 220, 103, 25, 203, 114, 108, 200, 204, - 10, 3, 220, 103, 230, 155, 10, 3, 220, 103, 230, 156, 139, 220, 103, 230, - 156, 203, 113, 10, 3, 220, 98, 10, 3, 220, 37, 10, 3, 220, 38, 25, 220, - 37, 10, 3, 220, 35, 10, 3, 220, 36, 25, 220, 197, 10, 3, 220, 36, 25, - 220, 198, 108, 206, 68, 10, 3, 219, 146, 10, 3, 219, 127, 10, 3, 219, - 115, 10, 3, 219, 89, 10, 3, 218, 225, 10, 3, 218, 226, 25, 249, 135, 10, - 3, 218, 223, 10, 3, 218, 224, 25, 251, 207, 10, 3, 218, 224, 25, 249, - 135, 10, 3, 218, 224, 25, 234, 9, 10, 3, 218, 224, 25, 234, 10, 199, 84, - 10, 3, 218, 224, 25, 231, 209, 199, 84, 10, 3, 218, 224, 25, 229, 159, - 25, 249, 135, 10, 3, 218, 224, 25, 223, 180, 10, 3, 218, 224, 25, 222, - 113, 10, 3, 218, 224, 25, 222, 111, 10, 3, 218, 224, 25, 222, 112, 108, - 250, 209, 10, 3, 218, 224, 25, 221, 166, 10, 3, 218, 224, 25, 220, 126, - 108, 250, 209, 10, 3, 218, 224, 25, 220, 104, 10, 3, 218, 224, 25, 216, - 233, 108, 234, 103, 10, 3, 218, 224, 25, 214, 121, 10, 3, 218, 224, 25, - 212, 178, 10, 3, 218, 224, 25, 202, 223, 108, 250, 209, 10, 3, 218, 224, - 25, 202, 192, 108, 248, 10, 10, 3, 218, 224, 25, 197, 82, 10, 3, 218, - 224, 199, 84, 10, 3, 218, 224, 238, 210, 218, 223, 10, 3, 218, 224, 211, - 63, 218, 223, 10, 3, 218, 224, 201, 189, 10, 3, 218, 224, 203, 94, 10, 3, - 218, 222, 10, 3, 218, 216, 10, 3, 218, 217, 139, 218, 216, 10, 3, 218, - 217, 211, 63, 218, 216, 10, 3, 218, 217, 203, 94, 10, 3, 218, 213, 10, 3, - 218, 210, 10, 3, 218, 208, 10, 3, 218, 209, 139, 218, 208, 10, 3, 218, - 209, 139, 218, 209, 231, 201, 139, 231, 200, 10, 3, 174, 10, 3, 217, 160, - 25, 199, 209, 10, 3, 217, 160, 230, 155, 10, 3, 217, 152, 10, 3, 217, - 120, 10, 3, 217, 65, 10, 3, 217, 39, 10, 3, 217, 38, 10, 3, 216, 232, 10, - 3, 216, 173, 10, 3, 216, 100, 10, 3, 216, 44, 10, 3, 215, 155, 10, 3, - 215, 156, 139, 215, 155, 10, 3, 215, 140, 10, 3, 215, 141, 230, 155, 10, - 3, 215, 119, 10, 3, 215, 105, 10, 3, 215, 101, 10, 3, 215, 102, 25, 65, - 10, 3, 215, 102, 25, 220, 197, 10, 3, 215, 102, 25, 191, 123, 10, 3, 215, - 102, 139, 215, 101, 10, 3, 215, 102, 139, 215, 102, 25, 42, 108, 180, 10, - 3, 215, 102, 238, 210, 215, 101, 10, 3, 215, 99, 10, 3, 215, 100, 25, 65, - 10, 3, 215, 100, 25, 42, 108, 237, 44, 10, 3, 215, 100, 25, 237, 44, 10, - 3, 215, 100, 230, 155, 10, 3, 180, 10, 3, 214, 253, 10, 3, 214, 240, 10, - 3, 214, 241, 223, 92, 10, 3, 214, 241, 25, 203, 6, 199, 84, 10, 3, 214, - 241, 211, 63, 214, 240, 10, 3, 214, 239, 10, 3, 214, 231, 212, 116, 10, - 3, 214, 230, 10, 3, 214, 229, 10, 3, 214, 121, 10, 3, 214, 122, 25, 65, - 10, 3, 214, 122, 25, 196, 158, 10, 3, 214, 122, 203, 94, 10, 3, 213, 219, - 10, 3, 213, 220, 25, 71, 10, 3, 213, 210, 10, 3, 213, 180, 10, 3, 213, - 181, 25, 231, 209, 199, 84, 10, 3, 213, 181, 25, 231, 201, 108, 231, 209, - 199, 84, 10, 3, 213, 176, 10, 3, 213, 177, 25, 251, 132, 10, 3, 213, 177, - 25, 250, 209, 10, 3, 213, 177, 25, 250, 210, 108, 250, 209, 10, 3, 213, - 177, 25, 230, 168, 10, 3, 213, 177, 25, 216, 233, 108, 231, 209, 199, 84, - 10, 3, 213, 177, 25, 214, 121, 10, 3, 213, 177, 25, 212, 130, 10, 3, 213, - 177, 25, 203, 113, 10, 3, 213, 177, 25, 203, 114, 108, 42, 251, 132, 10, - 3, 213, 177, 25, 203, 114, 108, 250, 209, 10, 3, 213, 177, 25, 203, 114, - 108, 250, 210, 108, 250, 209, 10, 3, 213, 177, 25, 196, 170, 108, 250, - 209, 10, 3, 213, 177, 25, 196, 38, 10, 3, 213, 163, 10, 3, 212, 178, 10, - 3, 212, 147, 10, 3, 212, 130, 10, 3, 212, 131, 220, 103, 25, 231, 200, - 10, 3, 212, 131, 220, 103, 25, 217, 39, 10, 3, 212, 131, 220, 103, 25, - 205, 169, 10, 3, 212, 131, 220, 103, 25, 205, 170, 139, 212, 131, 220, - 103, 25, 205, 169, 10, 3, 212, 131, 220, 103, 25, 196, 38, 10, 3, 212, - 131, 199, 84, 10, 3, 212, 131, 139, 212, 130, 10, 3, 212, 131, 238, 210, - 212, 130, 10, 3, 212, 131, 238, 210, 212, 131, 220, 103, 139, 220, 102, - 10, 3, 212, 125, 10, 3, 212, 126, 252, 73, 25, 250, 203, 10, 3, 212, 126, - 252, 73, 25, 248, 188, 10, 3, 212, 126, 252, 73, 25, 235, 82, 10, 3, 212, - 126, 252, 73, 25, 230, 168, 10, 3, 212, 126, 252, 73, 25, 223, 202, 230, - 155, 10, 3, 212, 126, 252, 73, 25, 222, 111, 10, 3, 212, 126, 252, 73, - 25, 173, 10, 3, 212, 126, 252, 73, 25, 214, 121, 10, 3, 212, 126, 252, - 73, 25, 202, 189, 10, 3, 212, 126, 252, 73, 25, 196, 169, 10, 3, 212, - 126, 221, 125, 25, 248, 188, 10, 3, 212, 126, 221, 125, 25, 248, 189, 66, - 10, 3, 168, 10, 3, 210, 210, 10, 3, 210, 166, 10, 3, 210, 137, 10, 3, - 209, 243, 10, 3, 209, 185, 10, 3, 209, 186, 25, 65, 10, 3, 209, 186, 25, - 252, 155, 10, 3, 209, 186, 25, 248, 188, 10, 3, 209, 186, 25, 248, 10, - 10, 3, 209, 186, 25, 71, 10, 3, 209, 186, 25, 68, 10, 3, 209, 186, 25, - 228, 30, 10, 3, 209, 186, 25, 66, 10, 3, 209, 186, 25, 196, 169, 10, 3, - 209, 186, 238, 210, 209, 185, 10, 3, 209, 121, 10, 3, 209, 122, 25, 222, - 91, 10, 3, 209, 122, 25, 196, 158, 10, 3, 209, 122, 25, 191, 123, 10, 3, - 209, 122, 211, 63, 209, 121, 10, 3, 165, 10, 3, 207, 176, 10, 3, 207, 1, - 10, 3, 206, 68, 10, 3, 188, 10, 3, 205, 186, 212, 116, 10, 3, 205, 185, - 10, 3, 205, 186, 25, 65, 10, 3, 205, 186, 25, 235, 89, 10, 3, 205, 186, - 25, 235, 87, 10, 3, 205, 186, 25, 140, 10, 3, 205, 186, 25, 222, 96, 10, - 3, 205, 186, 25, 220, 197, 10, 3, 205, 186, 25, 218, 208, 10, 3, 205, - 186, 25, 216, 100, 10, 3, 205, 186, 25, 212, 130, 10, 3, 205, 186, 25, - 205, 169, 10, 3, 205, 186, 25, 203, 79, 10, 3, 205, 186, 25, 199, 236, - 10, 3, 205, 186, 25, 196, 169, 10, 3, 205, 186, 25, 196, 164, 10, 3, 205, - 186, 25, 196, 120, 10, 3, 205, 186, 25, 196, 62, 10, 3, 205, 186, 25, - 196, 38, 10, 3, 205, 186, 139, 205, 185, 10, 3, 205, 186, 230, 155, 10, - 3, 205, 169, 10, 3, 205, 170, 220, 105, 25, 250, 207, 10, 3, 205, 136, - 10, 3, 205, 127, 10, 3, 203, 165, 10, 3, 203, 163, 10, 3, 203, 164, 25, - 65, 10, 3, 203, 164, 25, 249, 135, 10, 3, 203, 164, 25, 231, 23, 10, 3, - 203, 164, 25, 214, 121, 10, 3, 203, 164, 25, 203, 3, 10, 3, 203, 164, 25, - 197, 64, 10, 3, 203, 164, 25, 66, 10, 3, 203, 164, 25, 126, 108, 65, 10, - 3, 203, 161, 10, 3, 203, 159, 10, 3, 203, 131, 10, 3, 203, 113, 10, 3, - 203, 114, 228, 159, 10, 3, 203, 114, 139, 203, 114, 231, 232, 139, 231, - 232, 231, 201, 139, 231, 200, 10, 3, 203, 114, 139, 203, 114, 199, 237, - 139, 199, 237, 231, 201, 139, 231, 200, 10, 3, 203, 106, 10, 3, 203, 101, - 10, 3, 203, 97, 10, 3, 203, 96, 10, 3, 203, 93, 10, 3, 203, 79, 10, 3, - 203, 80, 25, 65, 10, 3, 203, 80, 25, 223, 180, 10, 3, 203, 73, 10, 3, - 203, 74, 25, 65, 10, 3, 203, 74, 25, 249, 115, 10, 3, 203, 74, 25, 247, - 242, 10, 3, 203, 74, 25, 236, 243, 10, 3, 203, 74, 25, 231, 200, 10, 3, - 203, 74, 25, 223, 201, 10, 3, 203, 74, 25, 223, 202, 230, 155, 10, 3, - 203, 74, 25, 220, 190, 10, 3, 203, 74, 25, 218, 210, 10, 3, 203, 74, 25, - 215, 140, 10, 3, 203, 74, 25, 205, 169, 10, 3, 203, 67, 10, 3, 203, 62, - 10, 3, 203, 63, 199, 84, 10, 3, 203, 63, 139, 203, 63, 247, 231, 139, - 247, 230, 10, 3, 203, 58, 10, 3, 203, 5, 10, 3, 203, 6, 139, 223, 93, - 203, 5, 10, 3, 203, 3, 10, 3, 203, 1, 10, 3, 202, 222, 10, 3, 202, 223, - 230, 155, 10, 3, 202, 201, 10, 3, 202, 199, 10, 3, 202, 200, 139, 202, - 200, 203, 3, 10, 3, 202, 191, 10, 3, 202, 189, 10, 3, 201, 4, 10, 3, 201, - 5, 139, 201, 4, 10, 3, 200, 216, 10, 3, 200, 215, 10, 3, 200, 213, 10, 3, - 200, 204, 10, 3, 200, 203, 10, 3, 200, 175, 10, 3, 200, 174, 10, 3, 190, - 190, 10, 3, 199, 252, 250, 193, 10, 3, 199, 252, 25, 229, 158, 10, 3, - 199, 252, 25, 216, 100, 10, 3, 199, 252, 230, 155, 10, 3, 199, 236, 10, - 3, 199, 237, 139, 199, 237, 213, 220, 139, 213, 220, 236, 223, 139, 236, - 222, 10, 3, 199, 237, 201, 189, 10, 3, 199, 223, 10, 3, 199, 224, 25, - 248, 188, 10, 3, 199, 224, 25, 230, 168, 10, 3, 199, 224, 25, 203, 113, - 10, 3, 199, 224, 25, 203, 5, 10, 3, 199, 224, 25, 197, 82, 10, 3, 199, - 224, 25, 196, 158, 10, 3, 199, 209, 10, 3, 199, 179, 10, 3, 199, 145, 10, - 3, 199, 146, 230, 155, 10, 3, 198, 193, 10, 3, 198, 194, 199, 84, 10, 3, - 198, 154, 10, 3, 198, 131, 10, 3, 198, 132, 25, 199, 209, 10, 3, 198, - 132, 139, 198, 131, 10, 3, 198, 132, 139, 198, 132, 231, 232, 139, 231, - 232, 231, 201, 139, 231, 200, 10, 3, 197, 94, 10, 3, 197, 82, 10, 3, 197, - 80, 10, 3, 197, 76, 10, 3, 197, 64, 10, 3, 197, 65, 139, 197, 65, 191, - 124, 139, 191, 123, 10, 3, 66, 10, 3, 126, 230, 168, 10, 3, 126, 126, 66, - 10, 3, 126, 139, 126, 210, 221, 139, 210, 221, 231, 201, 139, 231, 200, - 10, 3, 126, 139, 126, 200, 176, 139, 200, 175, 10, 3, 126, 139, 126, 126, - 207, 18, 139, 126, 207, 17, 10, 3, 196, 169, 10, 3, 196, 164, 10, 3, 196, - 158, 10, 3, 196, 159, 220, 190, 10, 3, 196, 159, 25, 249, 135, 10, 3, - 196, 159, 25, 216, 100, 10, 3, 196, 159, 25, 126, 108, 126, 108, 66, 10, - 3, 196, 159, 25, 126, 108, 126, 108, 126, 230, 155, 10, 3, 196, 159, 230, - 155, 10, 3, 196, 159, 203, 94, 10, 3, 196, 159, 203, 95, 25, 249, 135, - 10, 3, 196, 153, 10, 3, 196, 120, 10, 3, 196, 121, 25, 220, 104, 10, 3, - 196, 121, 25, 216, 233, 108, 238, 32, 10, 3, 196, 121, 25, 203, 163, 10, - 3, 196, 121, 25, 66, 10, 3, 196, 119, 10, 3, 196, 115, 10, 3, 196, 116, - 25, 222, 54, 10, 3, 196, 116, 25, 168, 10, 3, 196, 113, 10, 3, 196, 114, - 230, 155, 10, 3, 196, 62, 10, 3, 196, 63, 238, 210, 196, 62, 10, 3, 196, - 63, 203, 94, 10, 3, 196, 60, 10, 3, 196, 61, 25, 42, 108, 140, 10, 3, - 196, 61, 25, 42, 108, 180, 10, 3, 196, 61, 25, 251, 207, 10, 3, 196, 61, - 25, 140, 10, 3, 196, 61, 25, 212, 130, 10, 3, 196, 61, 25, 196, 169, 10, - 3, 196, 61, 25, 196, 170, 108, 250, 209, 10, 3, 196, 61, 25, 196, 170, - 108, 248, 188, 10, 3, 196, 59, 10, 3, 196, 56, 10, 3, 196, 55, 10, 3, - 196, 51, 10, 3, 196, 52, 25, 65, 10, 3, 196, 52, 25, 250, 203, 10, 3, - 196, 52, 25, 164, 10, 3, 196, 52, 25, 235, 75, 10, 3, 196, 52, 25, 231, - 240, 10, 3, 196, 52, 25, 231, 222, 10, 3, 196, 52, 25, 231, 209, 199, 84, - 10, 3, 196, 52, 25, 231, 200, 10, 3, 196, 52, 25, 230, 179, 10, 3, 196, - 52, 25, 140, 10, 3, 196, 52, 25, 223, 201, 10, 3, 196, 52, 25, 223, 180, - 10, 3, 196, 52, 25, 223, 62, 10, 3, 196, 52, 25, 221, 166, 10, 3, 196, - 52, 25, 218, 208, 10, 3, 196, 52, 25, 216, 44, 10, 3, 196, 52, 25, 168, - 10, 3, 196, 52, 25, 203, 113, 10, 3, 196, 52, 25, 202, 199, 10, 3, 196, - 52, 25, 197, 94, 10, 3, 196, 52, 25, 126, 108, 230, 168, 10, 3, 196, 52, - 25, 196, 158, 10, 3, 196, 52, 25, 196, 49, 10, 3, 196, 49, 10, 3, 196, - 50, 25, 66, 10, 3, 196, 38, 10, 3, 196, 39, 25, 65, 10, 3, 196, 39, 25, - 220, 232, 10, 3, 196, 39, 25, 220, 197, 10, 3, 196, 39, 25, 199, 209, 10, - 3, 196, 34, 10, 3, 196, 37, 10, 3, 196, 35, 10, 3, 196, 31, 10, 3, 196, - 16, 10, 3, 196, 17, 25, 222, 54, 10, 3, 196, 14, 10, 3, 191, 123, 10, 3, - 191, 124, 199, 84, 10, 3, 191, 124, 112, 25, 220, 197, 10, 3, 191, 118, - 10, 3, 191, 107, 10, 3, 191, 86, 10, 3, 191, 30, 10, 3, 191, 31, 139, - 191, 30, 10, 3, 191, 29, 10, 3, 191, 27, 10, 3, 191, 28, 222, 116, 199, - 84, 10, 3, 191, 22, 10, 3, 191, 13, 10, 3, 190, 251, 10, 3, 190, 249, 10, - 3, 190, 250, 25, 65, 10, 3, 190, 248, 10, 3, 190, 247, 10, 3, 222, 79, - 234, 137, 10, 3, 252, 156, 25, 212, 130, 10, 3, 252, 73, 25, 65, 10, 3, - 251, 146, 25, 220, 213, 10, 3, 238, 23, 221, 125, 25, 196, 170, 108, 217, - 39, 10, 3, 238, 21, 10, 3, 236, 223, 108, 203, 5, 10, 3, 235, 88, 25, - 203, 113, 10, 3, 233, 181, 25, 230, 168, 10, 3, 233, 181, 25, 203, 113, - 10, 3, 231, 239, 25, 251, 133, 108, 222, 97, 108, 65, 10, 3, 231, 239, - 25, 250, 207, 10, 3, 231, 164, 10, 3, 231, 42, 10, 3, 228, 131, 10, 3, - 222, 142, 25, 251, 91, 10, 3, 222, 142, 25, 250, 206, 10, 3, 222, 142, - 25, 231, 23, 10, 3, 222, 142, 25, 230, 168, 10, 3, 222, 142, 25, 229, - 159, 25, 250, 207, 10, 3, 222, 142, 25, 218, 208, 10, 3, 222, 142, 25, - 168, 10, 3, 222, 142, 25, 202, 253, 10, 3, 222, 142, 25, 197, 94, 10, 3, - 222, 142, 25, 196, 60, 10, 3, 220, 105, 25, 231, 53, 10, 3, 218, 224, - 203, 95, 25, 249, 135, 10, 3, 218, 224, 25, 234, 10, 108, 220, 37, 10, 3, - 218, 224, 25, 203, 5, 10, 3, 216, 172, 10, 3, 215, 100, 25, 191, 123, 10, - 3, 214, 252, 10, 3, 213, 179, 10, 3, 213, 178, 10, 3, 213, 177, 25, 249, - 115, 10, 3, 213, 177, 25, 231, 53, 10, 3, 212, 148, 206, 122, 213, 170, - 237, 124, 10, 3, 209, 244, 250, 193, 10, 3, 209, 125, 10, 3, 205, 186, - 25, 223, 202, 230, 155, 10, 3, 198, 185, 10, 3, 196, 121, 25, 216, 232, - 10, 3, 126, 66, 10, 167, 3, 105, 250, 209, 10, 167, 3, 115, 250, 209, 10, - 167, 3, 232, 128, 250, 209, 10, 167, 3, 232, 226, 250, 209, 10, 167, 3, - 202, 136, 250, 209, 10, 167, 3, 203, 247, 250, 209, 10, 167, 3, 234, 164, - 250, 209, 10, 167, 3, 213, 175, 250, 209, 10, 167, 3, 115, 236, 222, 10, - 167, 3, 232, 128, 236, 222, 10, 167, 3, 232, 226, 236, 222, 10, 167, 3, - 202, 136, 236, 222, 10, 167, 3, 203, 247, 236, 222, 10, 167, 3, 234, 164, - 236, 222, 10, 167, 3, 213, 175, 236, 222, 10, 167, 3, 232, 128, 66, 10, - 167, 3, 232, 226, 66, 10, 167, 3, 202, 136, 66, 10, 167, 3, 203, 247, 66, - 10, 167, 3, 234, 164, 66, 10, 167, 3, 213, 175, 66, 10, 167, 3, 91, 231, - 136, 10, 167, 3, 105, 231, 136, 10, 167, 3, 115, 231, 136, 10, 167, 3, - 232, 128, 231, 136, 10, 167, 3, 232, 226, 231, 136, 10, 167, 3, 202, 136, - 231, 136, 10, 167, 3, 203, 247, 231, 136, 10, 167, 3, 234, 164, 231, 136, - 10, 167, 3, 213, 175, 231, 136, 10, 167, 3, 91, 231, 133, 10, 167, 3, - 105, 231, 133, 10, 167, 3, 115, 231, 133, 10, 167, 3, 232, 128, 231, 133, - 10, 167, 3, 232, 226, 231, 133, 10, 167, 3, 105, 203, 131, 10, 167, 3, - 115, 203, 131, 10, 167, 3, 115, 203, 132, 195, 168, 20, 10, 167, 3, 232, - 128, 203, 131, 10, 167, 3, 232, 226, 203, 131, 10, 167, 3, 202, 136, 203, - 131, 10, 167, 3, 203, 247, 203, 131, 10, 167, 3, 234, 164, 203, 131, 10, - 167, 3, 213, 175, 203, 131, 10, 167, 3, 91, 203, 124, 10, 167, 3, 105, - 203, 124, 10, 167, 3, 115, 203, 124, 10, 167, 3, 115, 203, 125, 195, 168, - 20, 10, 167, 3, 232, 128, 203, 124, 10, 167, 3, 232, 226, 203, 124, 10, - 167, 3, 203, 132, 25, 231, 223, 108, 236, 222, 10, 167, 3, 203, 132, 25, - 231, 223, 108, 216, 44, 10, 167, 3, 91, 247, 226, 10, 167, 3, 105, 247, - 226, 10, 167, 3, 115, 247, 226, 10, 167, 3, 115, 247, 227, 195, 168, 20, - 10, 167, 3, 232, 128, 247, 226, 10, 167, 3, 232, 226, 247, 226, 10, 167, - 3, 115, 195, 168, 232, 146, 234, 11, 10, 167, 3, 115, 195, 168, 232, 146, - 234, 8, 10, 167, 3, 232, 128, 195, 168, 232, 146, 219, 116, 10, 167, 3, - 232, 128, 195, 168, 232, 146, 219, 114, 10, 167, 3, 232, 128, 195, 168, - 232, 146, 219, 117, 65, 10, 167, 3, 232, 128, 195, 168, 232, 146, 219, - 117, 250, 120, 10, 167, 3, 202, 136, 195, 168, 232, 146, 250, 205, 10, - 167, 3, 203, 247, 195, 168, 232, 146, 223, 171, 10, 167, 3, 203, 247, - 195, 168, 232, 146, 223, 173, 65, 10, 167, 3, 203, 247, 195, 168, 232, - 146, 223, 173, 250, 120, 10, 167, 3, 234, 164, 195, 168, 232, 146, 196, - 33, 10, 167, 3, 234, 164, 195, 168, 232, 146, 196, 32, 10, 167, 3, 213, - 175, 195, 168, 232, 146, 223, 188, 10, 167, 3, 213, 175, 195, 168, 232, - 146, 223, 187, 10, 167, 3, 213, 175, 195, 168, 232, 146, 223, 186, 10, - 167, 3, 213, 175, 195, 168, 232, 146, 223, 189, 65, 10, 167, 3, 105, 250, - 210, 199, 84, 10, 167, 3, 115, 250, 210, 199, 84, 10, 167, 3, 232, 128, - 250, 210, 199, 84, 10, 167, 3, 232, 226, 250, 210, 199, 84, 10, 167, 3, - 202, 136, 250, 210, 199, 84, 10, 167, 3, 91, 249, 99, 10, 167, 3, 105, - 249, 99, 10, 167, 3, 115, 249, 99, 10, 167, 3, 232, 128, 249, 99, 10, - 167, 3, 232, 128, 249, 100, 195, 168, 20, 10, 167, 3, 232, 226, 249, 99, - 10, 167, 3, 232, 226, 249, 100, 195, 168, 20, 10, 167, 3, 213, 188, 10, - 167, 3, 213, 189, 10, 167, 3, 91, 234, 7, 10, 167, 3, 105, 234, 7, 10, - 167, 3, 91, 199, 1, 236, 222, 10, 167, 3, 105, 198, 254, 236, 222, 10, - 167, 3, 232, 226, 202, 123, 236, 222, 10, 167, 3, 91, 199, 1, 195, 168, - 232, 146, 65, 10, 167, 3, 105, 198, 254, 195, 168, 232, 146, 65, 10, 167, - 3, 91, 234, 160, 250, 209, 10, 167, 3, 91, 208, 23, 250, 209, 10, 167, 3, - 39, 250, 196, 91, 202, 124, 10, 167, 3, 39, 250, 196, 91, 208, 22, 10, - 167, 3, 91, 208, 23, 230, 149, 10, 167, 3, 91, 132, 230, 149, 10, 167, 3, - 234, 138, 91, 199, 0, 10, 167, 3, 234, 138, 105, 198, 253, 10, 167, 3, - 234, 138, 232, 135, 10, 167, 3, 234, 138, 233, 15, 10, 167, 3, 232, 128, - 126, 195, 168, 20, 10, 167, 3, 232, 226, 126, 195, 168, 20, 10, 167, 3, - 202, 136, 126, 195, 168, 20, 10, 167, 3, 203, 247, 126, 195, 168, 20, 10, - 167, 3, 234, 164, 126, 195, 168, 20, 10, 167, 3, 213, 175, 126, 195, 168, - 20, 10, 208, 152, 3, 39, 250, 196, 193, 23, 236, 205, 10, 208, 152, 3, - 81, 242, 83, 10, 208, 152, 3, 237, 39, 242, 83, 10, 208, 152, 3, 237, 39, - 197, 237, 10, 208, 152, 3, 237, 39, 208, 29, 10, 3, 252, 156, 25, 212, - 131, 199, 84, 10, 3, 252, 156, 25, 203, 3, 10, 3, 252, 43, 25, 234, 9, - 10, 3, 249, 136, 25, 236, 223, 199, 84, 10, 3, 249, 122, 25, 252, 72, 10, - 3, 249, 122, 25, 213, 219, 10, 3, 249, 122, 25, 191, 123, 10, 3, 248, 11, - 139, 248, 11, 25, 214, 253, 10, 3, 238, 33, 25, 199, 209, 10, 3, 238, 23, - 25, 220, 197, 10, 3, 237, 0, 25, 223, 201, 10, 3, 237, 0, 25, 126, 126, - 66, 10, 3, 236, 254, 25, 196, 158, 10, 3, 235, 83, 25, 251, 91, 10, 3, - 235, 83, 25, 250, 209, 10, 3, 235, 83, 25, 250, 210, 250, 183, 219, 224, - 10, 3, 235, 83, 25, 236, 243, 10, 3, 235, 83, 25, 235, 75, 10, 3, 235, - 83, 25, 234, 28, 10, 3, 235, 83, 25, 231, 240, 10, 3, 235, 83, 25, 231, - 53, 10, 3, 235, 83, 25, 231, 33, 230, 155, 10, 3, 235, 83, 25, 231, 23, - 10, 3, 235, 83, 25, 140, 10, 3, 235, 83, 25, 229, 158, 10, 3, 235, 83, - 25, 223, 202, 230, 155, 10, 3, 235, 83, 25, 222, 54, 10, 3, 235, 83, 25, - 220, 197, 10, 3, 235, 83, 25, 220, 190, 10, 3, 235, 83, 25, 220, 191, - 108, 222, 54, 10, 3, 235, 83, 25, 220, 92, 10, 3, 235, 83, 25, 220, 35, - 10, 3, 235, 83, 25, 220, 36, 25, 220, 197, 10, 3, 235, 83, 25, 218, 214, - 108, 231, 23, 10, 3, 235, 83, 25, 217, 39, 10, 3, 235, 83, 25, 216, 173, - 10, 3, 235, 83, 25, 216, 100, 10, 3, 235, 83, 25, 213, 219, 10, 3, 235, - 83, 25, 209, 185, 10, 3, 235, 83, 25, 203, 113, 10, 3, 235, 83, 25, 202, - 223, 230, 155, 10, 3, 234, 219, 25, 220, 197, 10, 3, 234, 219, 25, 210, - 137, 10, 3, 234, 29, 192, 235, 10, 3, 234, 10, 238, 210, 234, 9, 10, 3, - 233, 181, 203, 95, 25, 250, 209, 10, 3, 233, 181, 203, 95, 25, 229, 158, - 10, 3, 233, 181, 203, 95, 25, 223, 202, 230, 155, 10, 3, 233, 181, 203, - 95, 25, 173, 10, 3, 233, 181, 203, 95, 25, 220, 37, 10, 3, 233, 181, 203, - 95, 25, 216, 232, 10, 3, 233, 181, 203, 95, 25, 216, 173, 10, 3, 233, - 181, 203, 95, 25, 201, 4, 10, 3, 233, 181, 25, 201, 4, 10, 3, 231, 239, - 25, 249, 121, 10, 3, 231, 239, 25, 237, 0, 230, 155, 10, 3, 231, 239, 25, - 235, 83, 25, 223, 202, 230, 155, 10, 3, 231, 239, 25, 235, 83, 25, 222, - 54, 10, 3, 231, 239, 25, 234, 31, 10, 3, 231, 239, 25, 231, 240, 10, 3, - 231, 239, 25, 231, 201, 108, 237, 44, 10, 3, 231, 239, 25, 231, 201, 108, - 214, 121, 10, 3, 231, 239, 25, 230, 105, 108, 65, 10, 3, 231, 239, 25, - 220, 191, 108, 222, 54, 10, 3, 231, 239, 25, 220, 35, 10, 3, 231, 239, - 25, 220, 36, 25, 220, 197, 10, 3, 231, 239, 25, 218, 213, 10, 3, 231, - 239, 25, 215, 101, 10, 3, 231, 239, 25, 214, 121, 10, 3, 231, 239, 25, - 214, 122, 108, 234, 218, 10, 3, 231, 239, 25, 214, 122, 108, 231, 53, 10, - 3, 231, 239, 25, 203, 73, 10, 3, 231, 239, 25, 191, 13, 10, 3, 231, 234, - 206, 122, 213, 170, 237, 124, 10, 3, 231, 135, 25, 66, 10, 3, 231, 24, - 25, 231, 24, 238, 210, 231, 23, 10, 3, 230, 178, 25, 223, 202, 230, 155, - 10, 3, 230, 169, 108, 231, 24, 25, 199, 209, 10, 3, 230, 105, 199, 85, - 230, 155, 10, 3, 229, 159, 25, 250, 210, 139, 229, 159, 25, 250, 209, 10, - 3, 222, 142, 25, 248, 10, 10, 3, 222, 142, 25, 155, 10, 3, 222, 142, 25, - 126, 126, 66, 10, 3, 222, 142, 25, 196, 62, 10, 3, 220, 105, 25, 190, - 252, 139, 190, 251, 10, 3, 220, 93, 10, 3, 220, 91, 10, 3, 220, 90, 10, - 3, 220, 89, 10, 3, 220, 88, 10, 3, 220, 87, 10, 3, 220, 86, 10, 3, 220, - 85, 139, 220, 85, 230, 155, 10, 3, 220, 84, 10, 3, 220, 83, 139, 220, 82, - 10, 3, 220, 81, 10, 3, 220, 80, 10, 3, 220, 79, 10, 3, 220, 78, 10, 3, - 220, 77, 10, 3, 220, 76, 10, 3, 220, 75, 10, 3, 220, 74, 10, 3, 220, 73, - 10, 3, 220, 72, 10, 3, 220, 71, 10, 3, 220, 70, 10, 3, 220, 69, 10, 3, - 220, 68, 10, 3, 220, 67, 10, 3, 220, 66, 10, 3, 220, 65, 10, 3, 220, 64, - 10, 3, 220, 62, 10, 3, 220, 63, 25, 230, 179, 10, 3, 220, 63, 25, 223, - 201, 10, 3, 220, 63, 25, 210, 138, 108, 218, 222, 10, 3, 220, 63, 25, - 210, 138, 108, 210, 138, 108, 218, 222, 10, 3, 220, 63, 25, 196, 170, - 108, 249, 153, 10, 3, 220, 61, 10, 3, 220, 60, 10, 3, 220, 59, 10, 3, + 0, 201, 242, 233, 175, 77, 207, 247, 77, 31, 57, 236, 110, 57, 210, 4, + 57, 251, 86, 250, 255, 45, 210, 103, 50, 210, 103, 250, 143, 107, 57, + 242, 26, 228, 57, 232, 42, 201, 58, 202, 18, 17, 191, 77, 17, 108, 17, + 109, 17, 139, 17, 137, 17, 153, 17, 173, 17, 181, 17, 176, 17, 184, 242, + 35, 204, 20, 219, 156, 57, 234, 1, 57, 230, 170, 57, 208, 8, 77, 242, 24, + 250, 132, 8, 6, 1, 65, 8, 6, 1, 250, 70, 8, 6, 1, 247, 145, 8, 6, 1, 238, + 80, 8, 6, 1, 73, 8, 6, 1, 233, 134, 8, 6, 1, 232, 14, 8, 6, 1, 230, 83, + 8, 6, 1, 70, 8, 6, 1, 223, 7, 8, 6, 1, 222, 125, 8, 6, 1, 170, 8, 6, 1, + 218, 147, 8, 6, 1, 215, 47, 8, 6, 1, 74, 8, 6, 1, 210, 226, 8, 6, 1, 208, + 97, 8, 6, 1, 148, 8, 6, 1, 206, 3, 8, 6, 1, 200, 39, 8, 6, 1, 69, 8, 6, + 1, 196, 8, 8, 6, 1, 193, 221, 8, 6, 1, 192, 235, 8, 6, 1, 192, 159, 8, 6, + 1, 191, 166, 45, 51, 248, 5, 207, 14, 202, 18, 50, 51, 248, 5, 242, 210, + 252, 8, 131, 219, 88, 230, 177, 252, 8, 8, 2, 1, 65, 8, 2, 1, 250, 70, 8, + 2, 1, 247, 145, 8, 2, 1, 238, 80, 8, 2, 1, 73, 8, 2, 1, 233, 134, 8, 2, + 1, 232, 14, 8, 2, 1, 230, 83, 8, 2, 1, 70, 8, 2, 1, 223, 7, 8, 2, 1, 222, + 125, 8, 2, 1, 170, 8, 2, 1, 218, 147, 8, 2, 1, 215, 47, 8, 2, 1, 74, 8, + 2, 1, 210, 226, 8, 2, 1, 208, 97, 8, 2, 1, 148, 8, 2, 1, 206, 3, 8, 2, 1, + 200, 39, 8, 2, 1, 69, 8, 2, 1, 196, 8, 8, 2, 1, 193, 221, 8, 2, 1, 192, + 235, 8, 2, 1, 192, 159, 8, 2, 1, 191, 166, 45, 238, 124, 248, 5, 81, 219, + 88, 50, 238, 124, 248, 5, 198, 147, 213, 24, 201, 242, 223, 65, 233, 175, + 77, 246, 232, 57, 209, 1, 57, 238, 123, 57, 192, 71, 57, 247, 230, 164, + 205, 49, 57, 236, 253, 238, 215, 57, 232, 255, 211, 40, 223, 116, 219, + 195, 54, 251, 65, 207, 247, 77, 212, 255, 57, 202, 27, 228, 58, 207, 73, + 57, 217, 125, 237, 80, 57, 209, 72, 57, 200, 177, 109, 200, 177, 139, + 251, 251, 252, 8, 216, 72, 57, 209, 133, 57, 82, 236, 96, 246, 243, 200, + 177, 108, 217, 21, 211, 40, 223, 116, 206, 198, 54, 251, 65, 207, 247, + 77, 193, 243, 232, 80, 91, 208, 17, 193, 243, 232, 80, 91, 230, 37, 193, + 243, 232, 80, 115, 208, 15, 223, 65, 208, 8, 77, 8, 6, 1, 41, 4, 230, + 176, 8, 6, 1, 41, 4, 251, 250, 8, 6, 1, 41, 4, 242, 209, 8, 6, 1, 41, 4, + 198, 147, 8, 6, 1, 41, 4, 236, 253, 8, 6, 1, 41, 4, 206, 184, 56, 8, 6, + 1, 251, 229, 8, 6, 1, 247, 146, 4, 246, 243, 8, 6, 1, 234, 227, 4, 230, + 176, 8, 6, 1, 234, 227, 4, 251, 250, 8, 6, 1, 234, 227, 4, 242, 209, 8, + 6, 1, 234, 227, 4, 236, 253, 8, 6, 1, 228, 44, 4, 230, 176, 8, 6, 1, 228, + 44, 4, 251, 250, 8, 6, 1, 228, 44, 4, 242, 209, 8, 6, 1, 228, 44, 4, 236, + 253, 8, 6, 1, 233, 206, 8, 6, 1, 215, 48, 4, 198, 147, 8, 6, 1, 186, 4, + 230, 176, 8, 6, 1, 186, 4, 251, 250, 8, 6, 1, 186, 4, 242, 209, 8, 6, 1, + 186, 4, 198, 147, 8, 6, 1, 186, 4, 236, 253, 215, 112, 57, 8, 6, 1, 186, + 4, 105, 8, 6, 1, 126, 4, 230, 176, 8, 6, 1, 126, 4, 251, 250, 8, 6, 1, + 126, 4, 242, 209, 8, 6, 1, 126, 4, 236, 253, 8, 6, 1, 192, 160, 4, 251, + 250, 8, 6, 1, 198, 228, 8, 2, 1, 203, 122, 206, 3, 8, 2, 1, 41, 4, 230, + 176, 8, 2, 1, 41, 4, 251, 250, 8, 2, 1, 41, 4, 242, 209, 8, 2, 1, 41, 4, + 198, 147, 8, 2, 1, 41, 4, 236, 253, 8, 2, 1, 41, 4, 206, 184, 56, 8, 2, + 1, 251, 229, 8, 2, 1, 247, 146, 4, 246, 243, 8, 2, 1, 234, 227, 4, 230, + 176, 8, 2, 1, 234, 227, 4, 251, 250, 8, 2, 1, 234, 227, 4, 242, 209, 8, + 2, 1, 234, 227, 4, 236, 253, 8, 2, 1, 228, 44, 4, 230, 176, 8, 2, 1, 228, + 44, 4, 251, 250, 8, 2, 1, 228, 44, 4, 242, 209, 8, 2, 1, 228, 44, 4, 236, + 253, 8, 2, 1, 233, 206, 8, 2, 1, 215, 48, 4, 198, 147, 8, 2, 1, 186, 4, + 230, 176, 8, 2, 1, 186, 4, 251, 250, 8, 2, 1, 186, 4, 242, 209, 8, 2, 1, + 186, 4, 198, 147, 8, 2, 1, 186, 4, 236, 253, 236, 155, 57, 8, 2, 1, 186, + 4, 105, 8, 2, 1, 126, 4, 230, 176, 8, 2, 1, 126, 4, 251, 250, 8, 2, 1, + 126, 4, 242, 209, 8, 2, 1, 126, 4, 236, 253, 8, 2, 1, 192, 160, 4, 251, + 250, 8, 2, 1, 198, 228, 8, 2, 1, 192, 160, 4, 236, 253, 8, 6, 1, 41, 4, + 217, 125, 8, 2, 1, 41, 4, 217, 125, 8, 6, 1, 41, 4, 247, 244, 8, 2, 1, + 41, 4, 247, 244, 8, 6, 1, 41, 4, 211, 126, 8, 2, 1, 41, 4, 211, 126, 8, + 6, 1, 247, 146, 4, 251, 250, 8, 2, 1, 247, 146, 4, 251, 250, 8, 6, 1, + 247, 146, 4, 242, 209, 8, 2, 1, 247, 146, 4, 242, 209, 8, 6, 1, 247, 146, + 4, 75, 56, 8, 2, 1, 247, 146, 4, 75, 56, 8, 6, 1, 247, 146, 4, 247, 44, + 8, 2, 1, 247, 146, 4, 247, 44, 8, 6, 1, 238, 81, 4, 247, 44, 8, 2, 1, + 238, 81, 4, 247, 44, 8, 6, 1, 238, 81, 4, 105, 8, 2, 1, 238, 81, 4, 105, + 8, 6, 1, 234, 227, 4, 217, 125, 8, 2, 1, 234, 227, 4, 217, 125, 8, 6, 1, + 234, 227, 4, 247, 244, 8, 2, 1, 234, 227, 4, 247, 244, 8, 6, 1, 234, 227, + 4, 75, 56, 8, 2, 1, 234, 227, 4, 75, 56, 8, 6, 1, 234, 227, 4, 211, 126, + 8, 2, 1, 234, 227, 4, 211, 126, 8, 6, 1, 234, 227, 4, 247, 44, 8, 2, 1, + 234, 227, 4, 247, 44, 8, 6, 1, 232, 15, 4, 242, 209, 8, 2, 1, 232, 15, 4, + 242, 209, 8, 6, 1, 232, 15, 4, 247, 244, 8, 2, 1, 232, 15, 4, 247, 244, + 8, 6, 1, 232, 15, 4, 75, 56, 8, 2, 1, 232, 15, 4, 75, 56, 8, 6, 1, 232, + 15, 4, 246, 243, 8, 2, 1, 232, 15, 4, 246, 243, 8, 6, 1, 230, 84, 4, 242, + 209, 8, 2, 1, 230, 84, 4, 242, 209, 8, 6, 1, 230, 84, 4, 105, 8, 2, 1, + 230, 84, 4, 105, 8, 6, 1, 228, 44, 4, 198, 147, 8, 2, 1, 228, 44, 4, 198, + 147, 8, 6, 1, 228, 44, 4, 217, 125, 8, 2, 1, 228, 44, 4, 217, 125, 8, 6, + 1, 228, 44, 4, 247, 244, 8, 2, 1, 228, 44, 4, 247, 244, 8, 6, 1, 228, 44, + 4, 211, 126, 8, 2, 1, 228, 44, 4, 211, 126, 8, 6, 1, 228, 44, 4, 75, 56, + 8, 2, 1, 236, 95, 70, 8, 6, 34, 223, 168, 8, 2, 34, 223, 168, 8, 6, 1, + 223, 8, 4, 242, 209, 8, 2, 1, 223, 8, 4, 242, 209, 8, 6, 1, 222, 126, 4, + 246, 243, 8, 2, 1, 222, 126, 4, 246, 243, 8, 2, 1, 220, 240, 8, 6, 1, + 220, 119, 4, 251, 250, 8, 2, 1, 220, 119, 4, 251, 250, 8, 6, 1, 220, 119, + 4, 246, 243, 8, 2, 1, 220, 119, 4, 246, 243, 8, 6, 1, 220, 119, 4, 247, + 44, 8, 2, 1, 220, 119, 4, 247, 44, 8, 6, 1, 220, 119, 4, 82, 236, 96, 8, + 2, 1, 220, 119, 4, 82, 236, 96, 8, 6, 1, 220, 119, 4, 105, 8, 2, 1, 220, + 119, 4, 105, 8, 6, 1, 215, 48, 4, 251, 250, 8, 2, 1, 215, 48, 4, 251, + 250, 8, 6, 1, 215, 48, 4, 246, 243, 8, 2, 1, 215, 48, 4, 246, 243, 8, 6, + 1, 215, 48, 4, 247, 44, 8, 2, 1, 215, 48, 4, 247, 44, 8, 2, 1, 215, 48, + 208, 226, 247, 157, 250, 255, 8, 6, 1, 234, 46, 8, 2, 1, 234, 46, 8, 6, + 1, 186, 4, 217, 125, 8, 2, 1, 186, 4, 217, 125, 8, 6, 1, 186, 4, 247, + 244, 8, 2, 1, 186, 4, 247, 244, 8, 6, 1, 186, 4, 54, 251, 250, 8, 2, 1, + 186, 4, 54, 251, 250, 8, 6, 34, 211, 139, 8, 2, 34, 211, 139, 8, 6, 1, + 207, 217, 4, 251, 250, 8, 2, 1, 207, 217, 4, 251, 250, 8, 6, 1, 207, 217, + 4, 246, 243, 8, 2, 1, 207, 217, 4, 246, 243, 8, 6, 1, 207, 217, 4, 247, + 44, 8, 2, 1, 207, 217, 4, 247, 44, 8, 6, 1, 206, 4, 4, 251, 250, 8, 2, 1, + 206, 4, 4, 251, 250, 8, 6, 1, 206, 4, 4, 242, 209, 8, 2, 1, 206, 4, 4, + 242, 209, 8, 6, 1, 206, 4, 4, 246, 243, 8, 2, 1, 206, 4, 4, 246, 243, 8, + 6, 1, 206, 4, 4, 247, 44, 8, 2, 1, 206, 4, 4, 247, 44, 8, 6, 1, 200, 40, + 4, 246, 243, 8, 2, 1, 200, 40, 4, 246, 243, 8, 6, 1, 200, 40, 4, 247, 44, + 8, 2, 1, 200, 40, 4, 247, 44, 8, 6, 1, 200, 40, 4, 105, 8, 2, 1, 200, 40, + 4, 105, 8, 6, 1, 126, 4, 198, 147, 8, 2, 1, 126, 4, 198, 147, 8, 6, 1, + 126, 4, 217, 125, 8, 2, 1, 126, 4, 217, 125, 8, 6, 1, 126, 4, 247, 244, + 8, 2, 1, 126, 4, 247, 244, 8, 6, 1, 126, 4, 206, 184, 56, 8, 2, 1, 126, + 4, 206, 184, 56, 8, 6, 1, 126, 4, 54, 251, 250, 8, 2, 1, 126, 4, 54, 251, + 250, 8, 6, 1, 126, 4, 211, 126, 8, 2, 1, 126, 4, 211, 126, 8, 6, 1, 193, + 222, 4, 242, 209, 8, 2, 1, 193, 222, 4, 242, 209, 8, 6, 1, 192, 160, 4, + 242, 209, 8, 2, 1, 192, 160, 4, 242, 209, 8, 6, 1, 192, 160, 4, 236, 253, + 8, 6, 1, 191, 167, 4, 251, 250, 8, 2, 1, 191, 167, 4, 251, 250, 8, 6, 1, + 191, 167, 4, 75, 56, 8, 2, 1, 191, 167, 4, 75, 56, 8, 6, 1, 191, 167, 4, + 247, 44, 8, 2, 1, 191, 167, 4, 247, 44, 8, 2, 1, 177, 206, 3, 8, 2, 1, + 78, 4, 105, 8, 6, 1, 78, 4, 106, 8, 6, 1, 78, 4, 198, 46, 8, 2, 1, 78, 4, + 198, 46, 8, 6, 1, 163, 173, 8, 2, 1, 163, 173, 8, 6, 1, 211, 66, 74, 8, + 6, 1, 247, 146, 4, 106, 8, 2, 1, 247, 146, 4, 106, 8, 6, 1, 251, 204, + 238, 80, 8, 6, 1, 238, 81, 4, 106, 8, 6, 1, 238, 81, 4, 198, 46, 8, 2, 1, + 238, 81, 4, 198, 46, 8, 2, 1, 152, 237, 61, 8, 6, 1, 207, 13, 73, 8, 6, + 1, 205, 81, 8, 6, 1, 211, 66, 73, 8, 6, 1, 233, 135, 4, 106, 8, 2, 1, + 233, 135, 4, 106, 8, 6, 1, 232, 15, 4, 106, 8, 6, 1, 231, 174, 8, 2, 1, + 228, 95, 8, 6, 1, 223, 55, 8, 6, 1, 228, 44, 4, 105, 8, 6, 1, 222, 126, + 4, 106, 8, 2, 1, 222, 126, 4, 106, 8, 2, 1, 220, 119, 4, 164, 8, 2, 1, + 220, 9, 4, 105, 8, 6, 1, 152, 218, 147, 8, 6, 1, 215, 48, 4, 45, 106, 8, + 2, 1, 215, 48, 4, 177, 50, 219, 188, 8, 6, 1, 186, 4, 82, 198, 147, 8, 6, + 1, 186, 4, 228, 156, 8, 2, 1, 186, 4, 228, 156, 8, 6, 1, 211, 121, 8, 2, + 1, 211, 121, 8, 6, 1, 210, 227, 4, 106, 8, 2, 1, 210, 227, 4, 106, 8, 1, + 191, 228, 8, 6, 1, 163, 109, 8, 2, 1, 163, 109, 8, 6, 1, 233, 226, 8, 1, + 207, 13, 233, 227, 218, 236, 8, 2, 1, 200, 40, 4, 210, 182, 106, 8, 6, 1, + 200, 40, 4, 106, 8, 2, 1, 200, 40, 4, 106, 8, 6, 1, 200, 40, 4, 207, 19, + 106, 8, 6, 1, 126, 4, 228, 156, 8, 2, 1, 126, 4, 228, 156, 8, 6, 1, 196, + 66, 8, 6, 1, 196, 9, 4, 106, 8, 6, 1, 192, 160, 4, 106, 8, 2, 1, 192, + 160, 4, 106, 8, 6, 1, 191, 167, 4, 105, 8, 2, 1, 191, 167, 4, 105, 8, 6, + 1, 233, 137, 8, 6, 1, 233, 138, 207, 12, 8, 2, 1, 233, 138, 207, 12, 8, + 2, 1, 233, 138, 4, 199, 210, 8, 1, 103, 4, 105, 8, 6, 1, 163, 153, 8, 2, + 1, 163, 153, 8, 1, 223, 65, 230, 231, 201, 59, 4, 105, 8, 1, 192, 238, 8, + 1, 237, 53, 242, 183, 8, 1, 219, 235, 242, 183, 8, 1, 251, 99, 242, 183, + 8, 1, 207, 19, 242, 183, 8, 6, 1, 234, 249, 4, 247, 44, 8, 6, 1, 238, 81, + 4, 2, 1, 191, 167, 4, 247, 44, 8, 2, 1, 234, 249, 4, 247, 44, 8, 6, 1, + 219, 53, 8, 6, 1, 220, 119, 4, 2, 1, 223, 7, 8, 2, 1, 219, 53, 8, 6, 1, + 213, 145, 8, 6, 1, 215, 48, 4, 2, 1, 223, 7, 8, 2, 1, 213, 145, 8, 6, 1, + 41, 4, 247, 44, 8, 2, 1, 41, 4, 247, 44, 8, 6, 1, 228, 44, 4, 247, 44, 8, + 2, 1, 228, 44, 4, 247, 44, 8, 6, 1, 186, 4, 247, 44, 8, 2, 1, 186, 4, + 247, 44, 8, 6, 1, 126, 4, 247, 44, 8, 2, 1, 126, 4, 247, 44, 8, 6, 1, + 126, 4, 236, 254, 24, 217, 125, 8, 2, 1, 126, 4, 236, 254, 24, 217, 125, + 8, 6, 1, 126, 4, 236, 254, 24, 251, 250, 8, 2, 1, 126, 4, 236, 254, 24, + 251, 250, 8, 6, 1, 126, 4, 236, 254, 24, 247, 44, 8, 2, 1, 126, 4, 236, + 254, 24, 247, 44, 8, 6, 1, 126, 4, 236, 254, 24, 230, 176, 8, 2, 1, 126, + 4, 236, 254, 24, 230, 176, 8, 2, 1, 152, 73, 8, 6, 1, 41, 4, 236, 254, + 24, 217, 125, 8, 2, 1, 41, 4, 236, 254, 24, 217, 125, 8, 6, 1, 41, 4, 75, + 95, 24, 217, 125, 8, 2, 1, 41, 4, 75, 95, 24, 217, 125, 8, 6, 1, 251, + 230, 4, 217, 125, 8, 2, 1, 251, 230, 4, 217, 125, 8, 6, 1, 232, 15, 4, + 105, 8, 2, 1, 232, 15, 4, 105, 8, 6, 1, 232, 15, 4, 247, 44, 8, 2, 1, + 232, 15, 4, 247, 44, 8, 6, 1, 222, 126, 4, 247, 44, 8, 2, 1, 222, 126, 4, + 247, 44, 8, 6, 1, 186, 4, 211, 126, 8, 2, 1, 186, 4, 211, 126, 8, 6, 1, + 186, 4, 211, 127, 24, 217, 125, 8, 2, 1, 186, 4, 211, 127, 24, 217, 125, + 8, 6, 1, 233, 138, 4, 247, 44, 8, 2, 1, 233, 138, 4, 247, 44, 8, 2, 1, + 223, 8, 4, 247, 44, 8, 6, 1, 234, 248, 8, 6, 1, 238, 81, 4, 2, 1, 191, + 166, 8, 2, 1, 234, 248, 8, 6, 1, 232, 15, 4, 251, 250, 8, 2, 1, 232, 15, + 4, 251, 250, 8, 6, 1, 228, 92, 8, 6, 1, 192, 238, 8, 6, 1, 215, 48, 4, + 230, 176, 8, 2, 1, 215, 48, 4, 230, 176, 8, 6, 1, 41, 4, 206, 184, 95, + 24, 251, 250, 8, 2, 1, 41, 4, 206, 184, 95, 24, 251, 250, 8, 6, 1, 251, + 230, 4, 251, 250, 8, 2, 1, 251, 230, 4, 251, 250, 8, 6, 1, 186, 4, 201, + 23, 24, 251, 250, 8, 2, 1, 186, 4, 201, 23, 24, 251, 250, 8, 6, 1, 41, 4, + 54, 230, 176, 8, 2, 1, 41, 4, 54, 230, 176, 8, 6, 1, 41, 4, 223, 65, 247, + 244, 8, 2, 1, 41, 4, 223, 65, 247, 244, 8, 6, 1, 234, 227, 4, 54, 230, + 176, 8, 2, 1, 234, 227, 4, 54, 230, 176, 8, 6, 1, 234, 227, 4, 223, 65, + 247, 244, 8, 2, 1, 234, 227, 4, 223, 65, 247, 244, 8, 6, 1, 228, 44, 4, + 54, 230, 176, 8, 2, 1, 228, 44, 4, 54, 230, 176, 8, 6, 1, 228, 44, 4, + 223, 65, 247, 244, 8, 2, 1, 228, 44, 4, 223, 65, 247, 244, 8, 6, 1, 186, + 4, 54, 230, 176, 8, 2, 1, 186, 4, 54, 230, 176, 8, 6, 1, 186, 4, 223, 65, + 247, 244, 8, 2, 1, 186, 4, 223, 65, 247, 244, 8, 6, 1, 207, 217, 4, 54, + 230, 176, 8, 2, 1, 207, 217, 4, 54, 230, 176, 8, 6, 1, 207, 217, 4, 223, + 65, 247, 244, 8, 2, 1, 207, 217, 4, 223, 65, 247, 244, 8, 6, 1, 126, 4, + 54, 230, 176, 8, 2, 1, 126, 4, 54, 230, 176, 8, 6, 1, 126, 4, 223, 65, + 247, 244, 8, 2, 1, 126, 4, 223, 65, 247, 244, 8, 6, 1, 206, 4, 4, 242, + 27, 60, 8, 2, 1, 206, 4, 4, 242, 27, 60, 8, 6, 1, 200, 40, 4, 242, 27, + 60, 8, 2, 1, 200, 40, 4, 242, 27, 60, 8, 6, 1, 191, 248, 8, 2, 1, 191, + 248, 8, 6, 1, 230, 84, 4, 247, 44, 8, 2, 1, 230, 84, 4, 247, 44, 8, 6, 1, + 215, 48, 4, 177, 50, 219, 188, 8, 2, 1, 238, 81, 4, 238, 128, 8, 6, 1, + 211, 9, 8, 2, 1, 211, 9, 8, 6, 1, 191, 167, 4, 106, 8, 2, 1, 191, 167, 4, + 106, 8, 6, 1, 41, 4, 75, 56, 8, 2, 1, 41, 4, 75, 56, 8, 6, 1, 234, 227, + 4, 246, 243, 8, 2, 1, 234, 227, 4, 246, 243, 8, 6, 1, 186, 4, 236, 254, + 24, 217, 125, 8, 2, 1, 186, 4, 236, 254, 24, 217, 125, 8, 6, 1, 186, 4, + 198, 148, 24, 217, 125, 8, 2, 1, 186, 4, 198, 148, 24, 217, 125, 8, 6, 1, + 186, 4, 75, 56, 8, 2, 1, 186, 4, 75, 56, 8, 6, 1, 186, 4, 75, 95, 24, + 217, 125, 8, 2, 1, 186, 4, 75, 95, 24, 217, 125, 8, 6, 1, 192, 160, 4, + 217, 125, 8, 2, 1, 192, 160, 4, 217, 125, 8, 2, 1, 220, 119, 4, 238, 128, + 8, 2, 1, 215, 48, 4, 238, 128, 8, 2, 1, 200, 40, 4, 238, 128, 8, 2, 1, + 236, 95, 223, 7, 8, 2, 1, 237, 156, 236, 213, 8, 2, 1, 208, 28, 236, 213, + 8, 6, 1, 41, 4, 105, 8, 6, 1, 247, 146, 4, 105, 8, 2, 1, 247, 146, 4, + 105, 8, 6, 1, 220, 119, 4, 164, 8, 6, 1, 200, 40, 4, 236, 250, 105, 8, 2, + 1, 206, 4, 4, 200, 142, 199, 210, 8, 2, 1, 191, 167, 4, 200, 142, 199, + 210, 8, 6, 1, 230, 231, 201, 58, 8, 2, 1, 230, 231, 201, 58, 8, 6, 1, 78, + 4, 105, 8, 6, 1, 126, 164, 8, 6, 1, 152, 196, 8, 8, 6, 1, 234, 227, 4, + 105, 8, 2, 1, 234, 227, 4, 105, 8, 6, 1, 223, 8, 4, 105, 8, 2, 1, 223, 8, + 4, 105, 8, 6, 1, 2, 208, 98, 4, 228, 219, 199, 210, 8, 2, 1, 208, 98, 4, + 228, 219, 199, 210, 8, 6, 1, 207, 217, 4, 105, 8, 2, 1, 207, 217, 4, 105, + 8, 6, 1, 192, 160, 4, 105, 8, 2, 1, 192, 160, 4, 105, 8, 2, 1, 152, 65, + 8, 2, 1, 251, 109, 8, 2, 1, 152, 251, 109, 8, 2, 1, 78, 4, 106, 8, 2, 1, + 211, 66, 74, 8, 2, 1, 247, 146, 4, 238, 128, 8, 2, 1, 238, 81, 4, 199, + 210, 8, 2, 1, 238, 81, 4, 106, 8, 2, 1, 207, 13, 73, 8, 2, 1, 205, 81, 8, + 2, 1, 205, 82, 4, 106, 8, 2, 1, 211, 66, 73, 8, 2, 1, 207, 13, 211, 66, + 73, 8, 2, 1, 207, 13, 211, 66, 234, 227, 4, 106, 8, 2, 1, 242, 171, 207, + 13, 211, 66, 73, 8, 2, 1, 236, 95, 223, 8, 4, 105, 8, 2, 1, 232, 15, 4, + 106, 8, 2, 1, 27, 232, 14, 8, 1, 2, 6, 232, 14, 8, 2, 1, 231, 174, 8, 2, + 1, 207, 135, 228, 156, 8, 2, 1, 152, 230, 83, 8, 2, 1, 230, 84, 4, 106, + 8, 2, 1, 229, 165, 4, 106, 8, 2, 1, 228, 44, 4, 105, 8, 2, 1, 223, 55, 8, + 1, 2, 6, 70, 8, 2, 1, 220, 119, 4, 82, 198, 147, 8, 2, 1, 220, 119, 4, + 248, 181, 8, 2, 1, 220, 119, 4, 207, 19, 106, 8, 2, 1, 219, 138, 8, 2, 1, + 152, 218, 147, 8, 2, 1, 152, 218, 148, 4, 177, 219, 188, 8, 2, 1, 218, + 148, 4, 106, 8, 2, 1, 215, 48, 4, 45, 106, 8, 2, 1, 215, 48, 4, 207, 19, + 106, 8, 1, 2, 6, 215, 47, 8, 2, 1, 249, 32, 74, 8, 1, 2, 6, 211, 139, 8, + 2, 1, 242, 171, 211, 99, 8, 2, 1, 209, 202, 8, 2, 1, 152, 148, 8, 2, 1, + 152, 207, 217, 4, 177, 219, 188, 8, 2, 1, 152, 207, 217, 4, 106, 8, 2, 1, + 207, 217, 4, 177, 219, 188, 8, 2, 1, 207, 217, 4, 199, 210, 8, 2, 1, 207, + 217, 4, 232, 192, 8, 2, 1, 207, 13, 207, 217, 4, 232, 192, 8, 1, 2, 6, + 148, 8, 1, 2, 6, 223, 65, 148, 8, 2, 1, 206, 4, 4, 106, 8, 2, 1, 233, + 226, 8, 2, 1, 236, 95, 223, 8, 4, 201, 23, 24, 106, 8, 2, 1, 201, 182, + 207, 13, 233, 226, 8, 2, 1, 233, 227, 4, 238, 128, 8, 2, 1, 152, 200, 39, + 8, 2, 1, 200, 40, 4, 207, 19, 106, 8, 2, 1, 126, 164, 8, 2, 1, 196, 66, + 8, 2, 1, 196, 9, 4, 106, 8, 2, 1, 152, 196, 8, 8, 2, 1, 152, 193, 221, 8, + 2, 1, 152, 192, 159, 8, 1, 2, 6, 192, 159, 8, 2, 1, 191, 167, 4, 207, 19, + 106, 8, 2, 1, 191, 167, 4, 238, 128, 8, 2, 1, 233, 137, 8, 2, 1, 233, + 138, 4, 238, 128, 8, 1, 230, 231, 201, 58, 8, 1, 209, 210, 195, 17, 232, + 66, 8, 1, 223, 65, 230, 231, 201, 58, 8, 1, 201, 31, 247, 145, 8, 1, 248, + 124, 242, 183, 8, 1, 2, 6, 250, 70, 8, 2, 1, 242, 171, 211, 66, 73, 8, 1, + 2, 6, 232, 15, 4, 106, 8, 1, 2, 6, 230, 83, 8, 2, 1, 223, 8, 4, 238, 165, + 8, 2, 1, 152, 222, 125, 8, 1, 2, 6, 170, 8, 2, 1, 208, 98, 4, 106, 8, 1, + 230, 231, 201, 59, 4, 105, 8, 1, 207, 13, 230, 231, 201, 59, 4, 105, 8, + 2, 1, 234, 249, 236, 213, 8, 2, 1, 237, 25, 236, 213, 8, 2, 1, 234, 249, + 236, 214, 4, 238, 128, 8, 2, 1, 197, 166, 236, 213, 8, 2, 1, 199, 74, + 236, 213, 8, 2, 1, 199, 147, 236, 214, 4, 238, 128, 8, 2, 1, 232, 252, + 236, 213, 8, 2, 1, 218, 205, 236, 213, 8, 2, 1, 218, 149, 236, 213, 8, 1, + 248, 124, 210, 3, 8, 1, 248, 132, 210, 3, 8, 2, 1, 152, 230, 84, 4, 232, + 192, 8, 2, 1, 152, 230, 84, 4, 232, 193, 24, 199, 210, 59, 1, 2, 230, 83, + 59, 1, 2, 230, 84, 4, 106, 59, 1, 2, 223, 7, 59, 1, 2, 148, 59, 1, 2, + 152, 148, 59, 1, 2, 152, 207, 217, 4, 106, 59, 1, 2, 6, 223, 65, 148, 59, + 1, 2, 193, 221, 59, 1, 2, 192, 159, 59, 1, 208, 208, 59, 1, 54, 208, 208, + 59, 1, 152, 242, 26, 59, 1, 250, 255, 59, 1, 207, 13, 242, 26, 59, 1, 50, + 134, 206, 183, 59, 1, 45, 134, 206, 183, 59, 1, 230, 231, 201, 58, 59, 1, + 207, 13, 230, 231, 201, 58, 59, 1, 45, 250, 185, 59, 1, 50, 250, 185, 59, + 1, 132, 250, 185, 59, 1, 143, 250, 185, 59, 1, 242, 210, 252, 8, 247, 44, + 59, 1, 81, 219, 88, 59, 1, 217, 125, 59, 1, 251, 251, 252, 8, 59, 1, 230, + 177, 252, 8, 59, 1, 131, 81, 219, 88, 59, 1, 131, 217, 125, 59, 1, 131, + 230, 177, 252, 8, 59, 1, 131, 251, 251, 252, 8, 59, 1, 197, 234, 242, 35, + 59, 1, 134, 197, 234, 242, 35, 59, 1, 246, 228, 50, 134, 206, 183, 59, 1, + 246, 228, 45, 134, 206, 183, 59, 1, 132, 199, 223, 59, 1, 143, 199, 223, + 59, 1, 107, 57, 59, 1, 216, 18, 57, 247, 244, 75, 56, 206, 184, 56, 211, + 126, 2, 198, 147, 54, 251, 251, 252, 8, 59, 1, 206, 253, 106, 59, 1, 238, + 171, 252, 8, 59, 1, 2, 231, 174, 59, 1, 2, 170, 59, 1, 2, 206, 3, 59, 1, + 2, 192, 235, 59, 1, 2, 207, 13, 230, 231, 201, 58, 59, 1, 233, 159, 163, + 164, 59, 1, 136, 163, 164, 59, 1, 216, 68, 163, 164, 59, 1, 131, 163, + 164, 59, 1, 233, 158, 163, 164, 59, 1, 192, 22, 237, 50, 163, 77, 59, 1, + 192, 107, 237, 50, 163, 77, 59, 1, 195, 15, 59, 1, 196, 105, 59, 1, 54, + 250, 255, 59, 1, 131, 143, 250, 185, 59, 1, 131, 132, 250, 185, 59, 1, + 131, 45, 250, 185, 59, 1, 131, 50, 250, 185, 59, 1, 131, 206, 183, 59, 1, + 82, 230, 177, 252, 8, 59, 1, 82, 54, 230, 177, 252, 8, 59, 1, 82, 54, + 251, 251, 252, 8, 59, 1, 131, 198, 147, 59, 1, 207, 142, 242, 35, 59, 1, + 248, 199, 136, 198, 74, 59, 1, 234, 53, 136, 198, 74, 59, 1, 248, 199, + 131, 198, 74, 59, 1, 234, 53, 131, 198, 74, 59, 1, 203, 99, 59, 1, 211, + 66, 203, 99, 59, 1, 131, 45, 55, 33, 230, 177, 252, 8, 33, 251, 251, 252, + 8, 33, 242, 210, 252, 8, 33, 198, 147, 33, 217, 125, 33, 210, 244, 33, + 247, 244, 33, 75, 56, 33, 236, 253, 33, 228, 219, 56, 33, 206, 184, 56, + 33, 54, 251, 251, 252, 8, 33, 247, 44, 33, 81, 219, 89, 56, 33, 54, 81, + 219, 89, 56, 33, 54, 230, 177, 252, 8, 33, 247, 71, 33, 223, 65, 247, + 244, 33, 152, 242, 27, 56, 33, 242, 27, 56, 33, 207, 13, 242, 27, 56, 33, + 242, 27, 95, 187, 33, 230, 177, 252, 9, 60, 33, 251, 251, 252, 9, 60, 33, + 45, 199, 224, 60, 33, 50, 199, 224, 60, 33, 45, 251, 65, 56, 33, 228, + 156, 33, 45, 134, 206, 184, 60, 33, 132, 199, 224, 60, 33, 143, 199, 224, + 60, 33, 107, 3, 60, 33, 216, 18, 3, 60, 33, 210, 180, 228, 219, 60, 33, + 207, 19, 228, 219, 60, 33, 75, 60, 33, 236, 254, 60, 33, 206, 184, 60, + 33, 242, 27, 60, 33, 246, 243, 33, 211, 126, 33, 81, 219, 89, 60, 33, + 247, 237, 60, 33, 223, 65, 54, 250, 221, 60, 33, 247, 45, 60, 33, 242, + 210, 252, 9, 60, 33, 247, 245, 60, 33, 223, 65, 247, 245, 60, 33, 198, + 148, 60, 33, 217, 126, 60, 33, 131, 219, 88, 33, 54, 131, 219, 88, 33, + 198, 148, 210, 245, 33, 203, 35, 201, 23, 210, 245, 33, 177, 201, 23, + 210, 245, 33, 203, 35, 202, 19, 210, 245, 33, 177, 202, 19, 210, 245, 33, + 50, 134, 206, 184, 60, 33, 223, 65, 247, 237, 60, 33, 51, 60, 33, 205, + 57, 60, 33, 192, 236, 56, 33, 81, 198, 147, 33, 54, 210, 244, 33, 230, + 177, 163, 77, 33, 251, 251, 163, 77, 33, 35, 209, 251, 33, 35, 221, 6, + 33, 35, 236, 247, 198, 55, 33, 35, 191, 233, 33, 247, 237, 56, 33, 234, + 1, 3, 60, 33, 54, 81, 219, 89, 60, 33, 45, 251, 65, 60, 33, 212, 255, + 198, 148, 56, 33, 228, 225, 56, 33, 251, 114, 234, 3, 118, 56, 33, 45, + 50, 63, 60, 33, 196, 62, 63, 60, 33, 230, 183, 222, 169, 33, 50, 250, + 186, 56, 33, 45, 134, 206, 184, 56, 33, 232, 249, 33, 192, 236, 60, 33, + 45, 250, 186, 60, 33, 50, 250, 186, 60, 33, 50, 250, 186, 24, 132, 250, + 186, 60, 33, 50, 134, 206, 184, 56, 33, 75, 95, 187, 33, 250, 144, 60, + 33, 54, 206, 184, 60, 33, 191, 21, 56, 33, 54, 247, 245, 60, 33, 54, 247, + 244, 33, 54, 217, 125, 33, 54, 217, 126, 60, 33, 54, 198, 147, 33, 54, + 223, 65, 247, 244, 33, 54, 96, 63, 60, 33, 8, 2, 1, 65, 33, 8, 2, 1, 73, + 33, 8, 2, 1, 70, 33, 8, 2, 1, 74, 33, 8, 2, 1, 69, 33, 8, 2, 1, 247, 145, + 33, 8, 2, 1, 238, 80, 33, 8, 2, 1, 230, 83, 33, 8, 2, 1, 218, 147, 33, 8, + 2, 1, 148, 33, 8, 2, 1, 200, 39, 33, 8, 2, 1, 196, 8, 33, 8, 2, 1, 192, + 235, 35, 6, 1, 229, 153, 35, 2, 1, 229, 153, 35, 6, 1, 250, 220, 205, + 140, 35, 2, 1, 250, 220, 205, 140, 35, 212, 121, 57, 35, 110, 212, 121, + 57, 35, 6, 1, 210, 161, 236, 221, 35, 2, 1, 210, 161, 236, 221, 35, 191, + 233, 35, 2, 207, 13, 218, 185, 202, 192, 113, 35, 2, 235, 94, 218, 185, + 202, 192, 113, 35, 2, 207, 13, 235, 94, 218, 185, 202, 192, 113, 35, 208, + 8, 77, 35, 6, 1, 191, 240, 35, 198, 55, 35, 236, 247, 198, 55, 35, 6, 1, + 251, 110, 4, 198, 55, 35, 251, 43, 199, 103, 35, 6, 1, 234, 6, 4, 198, + 55, 35, 6, 1, 233, 212, 4, 198, 55, 35, 6, 1, 223, 56, 4, 198, 55, 35, 6, + 1, 211, 97, 4, 198, 55, 35, 6, 1, 196, 67, 4, 198, 55, 35, 6, 1, 211, + 100, 4, 198, 55, 35, 2, 1, 223, 56, 4, 236, 247, 24, 198, 55, 35, 6, 1, + 251, 109, 35, 6, 1, 248, 162, 35, 6, 1, 231, 174, 35, 6, 1, 237, 61, 35, + 6, 1, 234, 5, 35, 6, 1, 191, 76, 35, 6, 1, 233, 211, 35, 6, 1, 199, 10, + 35, 6, 1, 223, 55, 35, 6, 1, 222, 46, 35, 6, 1, 220, 7, 35, 6, 1, 215, + 139, 35, 6, 1, 212, 165, 35, 6, 1, 192, 207, 35, 6, 1, 211, 96, 35, 6, 1, + 209, 176, 35, 6, 1, 206, 254, 35, 6, 1, 202, 191, 35, 6, 1, 199, 161, 35, + 6, 1, 196, 66, 35, 6, 1, 209, 202, 35, 6, 1, 243, 47, 35, 6, 1, 208, 169, + 35, 6, 1, 211, 99, 35, 6, 1, 223, 56, 4, 236, 246, 35, 6, 1, 196, 67, 4, + 236, 246, 35, 2, 1, 251, 110, 4, 198, 55, 35, 2, 1, 234, 6, 4, 198, 55, + 35, 2, 1, 233, 212, 4, 198, 55, 35, 2, 1, 223, 56, 4, 198, 55, 35, 2, 1, + 196, 67, 4, 236, 247, 24, 198, 55, 35, 2, 1, 251, 109, 35, 2, 1, 248, + 162, 35, 2, 1, 231, 174, 35, 2, 1, 237, 61, 35, 2, 1, 234, 5, 35, 2, 1, + 191, 76, 35, 2, 1, 233, 211, 35, 2, 1, 199, 10, 35, 2, 1, 223, 55, 35, 2, + 1, 222, 46, 35, 2, 1, 220, 7, 35, 2, 1, 215, 139, 35, 2, 1, 212, 165, 35, + 2, 1, 192, 207, 35, 2, 1, 211, 96, 35, 2, 1, 209, 176, 35, 2, 1, 206, + 254, 35, 2, 1, 52, 202, 191, 35, 2, 1, 202, 191, 35, 2, 1, 199, 161, 35, + 2, 1, 196, 66, 35, 2, 1, 209, 202, 35, 2, 1, 243, 47, 35, 2, 1, 208, 169, + 35, 2, 1, 211, 99, 35, 2, 1, 223, 56, 4, 236, 246, 35, 2, 1, 196, 67, 4, + 236, 246, 35, 2, 1, 211, 97, 4, 198, 55, 35, 2, 1, 196, 67, 4, 198, 55, + 35, 2, 1, 211, 100, 4, 198, 55, 35, 6, 222, 76, 113, 35, 248, 163, 113, + 35, 199, 11, 113, 35, 196, 67, 4, 228, 219, 113, 35, 196, 67, 4, 251, + 251, 24, 228, 219, 113, 35, 196, 67, 4, 236, 254, 24, 228, 219, 113, 35, + 209, 203, 113, 35, 209, 177, 113, 35, 222, 76, 113, 35, 1, 250, 220, 221, + 11, 35, 2, 1, 250, 220, 221, 11, 35, 1, 201, 68, 35, 2, 1, 201, 68, 35, + 1, 236, 221, 35, 2, 1, 236, 221, 35, 1, 221, 11, 35, 2, 1, 221, 11, 35, + 1, 205, 140, 35, 2, 1, 205, 140, 93, 6, 1, 203, 100, 93, 2, 1, 203, 100, + 93, 6, 1, 233, 3, 93, 2, 1, 233, 3, 93, 6, 1, 221, 171, 93, 2, 1, 221, + 171, 93, 6, 1, 228, 210, 93, 2, 1, 228, 210, 93, 6, 1, 231, 169, 93, 2, + 1, 231, 169, 93, 6, 1, 203, 66, 93, 2, 1, 203, 66, 93, 6, 1, 237, 77, 93, + 2, 1, 237, 77, 35, 222, 47, 113, 35, 206, 255, 113, 35, 218, 185, 202, + 192, 113, 35, 1, 191, 240, 35, 6, 199, 11, 113, 35, 218, 185, 234, 6, + 113, 35, 207, 13, 218, 185, 234, 6, 113, 35, 6, 1, 203, 51, 35, 2, 1, + 203, 51, 35, 6, 218, 185, 202, 192, 113, 35, 6, 1, 205, 137, 35, 2, 1, + 205, 137, 35, 206, 255, 4, 201, 23, 113, 35, 6, 207, 13, 218, 185, 202, + 192, 113, 35, 6, 235, 94, 218, 185, 202, 192, 113, 35, 6, 207, 13, 235, + 94, 218, 185, 202, 192, 113, 42, 6, 1, 223, 198, 4, 230, 176, 42, 6, 1, + 223, 60, 42, 6, 1, 236, 147, 42, 6, 1, 230, 240, 42, 6, 1, 196, 121, 223, + 197, 42, 6, 1, 234, 244, 42, 6, 1, 247, 155, 70, 42, 6, 1, 192, 33, 42, + 6, 1, 222, 238, 42, 6, 1, 219, 52, 42, 6, 1, 213, 137, 42, 6, 1, 197, + 151, 42, 6, 1, 221, 79, 42, 6, 1, 228, 44, 4, 230, 176, 42, 6, 1, 203, + 35, 69, 42, 6, 1, 234, 240, 42, 6, 1, 65, 42, 6, 1, 248, 223, 42, 6, 1, + 195, 150, 42, 6, 1, 231, 40, 42, 6, 1, 237, 101, 42, 6, 1, 223, 197, 42, + 6, 1, 191, 62, 42, 6, 1, 191, 87, 42, 6, 1, 70, 42, 6, 1, 203, 35, 70, + 42, 6, 1, 157, 42, 6, 1, 234, 97, 42, 6, 1, 234, 72, 42, 6, 1, 234, 61, + 42, 6, 1, 74, 42, 6, 1, 210, 53, 42, 6, 1, 233, 248, 42, 6, 1, 233, 236, + 42, 6, 1, 199, 140, 42, 6, 1, 69, 42, 6, 1, 234, 138, 42, 6, 1, 144, 42, + 6, 1, 197, 157, 42, 6, 1, 243, 79, 42, 6, 1, 203, 160, 42, 6, 1, 203, + 111, 42, 6, 1, 229, 240, 57, 42, 6, 1, 192, 58, 42, 6, 1, 202, 27, 57, + 42, 6, 1, 73, 42, 6, 1, 191, 225, 42, 6, 1, 169, 42, 2, 1, 65, 42, 2, 1, + 248, 223, 42, 2, 1, 195, 150, 42, 2, 1, 231, 40, 42, 2, 1, 237, 101, 42, + 2, 1, 223, 197, 42, 2, 1, 191, 62, 42, 2, 1, 191, 87, 42, 2, 1, 70, 42, + 2, 1, 203, 35, 70, 42, 2, 1, 157, 42, 2, 1, 234, 97, 42, 2, 1, 234, 72, + 42, 2, 1, 234, 61, 42, 2, 1, 74, 42, 2, 1, 210, 53, 42, 2, 1, 233, 248, + 42, 2, 1, 233, 236, 42, 2, 1, 199, 140, 42, 2, 1, 69, 42, 2, 1, 234, 138, + 42, 2, 1, 144, 42, 2, 1, 197, 157, 42, 2, 1, 243, 79, 42, 2, 1, 203, 160, + 42, 2, 1, 203, 111, 42, 2, 1, 229, 240, 57, 42, 2, 1, 192, 58, 42, 2, 1, + 202, 27, 57, 42, 2, 1, 73, 42, 2, 1, 191, 225, 42, 2, 1, 169, 42, 2, 1, + 223, 198, 4, 230, 176, 42, 2, 1, 223, 60, 42, 2, 1, 236, 147, 42, 2, 1, + 230, 240, 42, 2, 1, 196, 121, 223, 197, 42, 2, 1, 234, 244, 42, 2, 1, + 247, 155, 70, 42, 2, 1, 192, 33, 42, 2, 1, 222, 238, 42, 2, 1, 219, 52, + 42, 2, 1, 213, 137, 42, 2, 1, 197, 151, 42, 2, 1, 221, 79, 42, 2, 1, 228, + 44, 4, 230, 176, 42, 2, 1, 203, 35, 69, 42, 2, 1, 234, 240, 42, 6, 1, + 211, 99, 42, 2, 1, 211, 99, 42, 6, 1, 192, 95, 42, 2, 1, 192, 95, 42, 6, + 1, 223, 53, 73, 42, 2, 1, 223, 53, 73, 42, 6, 1, 219, 59, 191, 190, 42, + 2, 1, 219, 59, 191, 190, 42, 6, 1, 223, 53, 219, 59, 191, 190, 42, 2, 1, + 223, 53, 219, 59, 191, 190, 42, 6, 1, 248, 127, 191, 190, 42, 2, 1, 248, + 127, 191, 190, 42, 6, 1, 223, 53, 248, 127, 191, 190, 42, 2, 1, 223, 53, + 248, 127, 191, 190, 42, 6, 1, 220, 224, 42, 2, 1, 220, 224, 42, 6, 1, + 208, 169, 42, 2, 1, 208, 169, 42, 6, 1, 232, 187, 42, 2, 1, 232, 187, 42, + 6, 1, 223, 9, 42, 2, 1, 223, 9, 42, 6, 1, 223, 10, 4, 54, 230, 177, 252, + 8, 42, 2, 1, 223, 10, 4, 54, 230, 177, 252, 8, 42, 6, 1, 196, 124, 42, 2, + 1, 196, 124, 42, 6, 1, 206, 110, 211, 99, 42, 2, 1, 206, 110, 211, 99, + 42, 6, 1, 211, 100, 4, 198, 117, 42, 2, 1, 211, 100, 4, 198, 117, 42, 6, + 1, 211, 20, 42, 2, 1, 211, 20, 42, 6, 1, 221, 11, 42, 2, 1, 221, 11, 42, + 198, 224, 57, 33, 42, 198, 117, 33, 42, 210, 181, 33, 42, 237, 168, 209, + 67, 33, 42, 208, 163, 209, 67, 33, 42, 209, 47, 33, 42, 228, 110, 198, + 224, 57, 33, 42, 216, 30, 57, 42, 6, 1, 203, 35, 228, 44, 4, 199, 210, + 42, 2, 1, 203, 35, 228, 44, 4, 199, 210, 42, 6, 1, 204, 16, 57, 42, 2, 1, + 204, 16, 57, 42, 6, 1, 233, 249, 4, 198, 177, 42, 2, 1, 233, 249, 4, 198, + 177, 42, 6, 1, 231, 41, 4, 196, 65, 42, 2, 1, 231, 41, 4, 196, 65, 42, 6, + 1, 231, 41, 4, 105, 42, 2, 1, 231, 41, 4, 105, 42, 6, 1, 231, 41, 4, 82, + 106, 42, 2, 1, 231, 41, 4, 82, 106, 42, 6, 1, 191, 63, 4, 237, 42, 42, 2, + 1, 191, 63, 4, 237, 42, 42, 6, 1, 191, 88, 4, 237, 42, 42, 2, 1, 191, 88, + 4, 237, 42, 42, 6, 1, 222, 115, 4, 237, 42, 42, 2, 1, 222, 115, 4, 237, + 42, 42, 6, 1, 222, 115, 4, 81, 105, 42, 2, 1, 222, 115, 4, 81, 105, 42, + 6, 1, 222, 115, 4, 105, 42, 2, 1, 222, 115, 4, 105, 42, 6, 1, 249, 20, + 157, 42, 2, 1, 249, 20, 157, 42, 6, 1, 234, 62, 4, 237, 42, 42, 2, 1, + 234, 62, 4, 237, 42, 42, 6, 34, 234, 62, 231, 40, 42, 2, 34, 234, 62, + 231, 40, 42, 6, 1, 210, 54, 4, 82, 106, 42, 2, 1, 210, 54, 4, 82, 106, + 42, 6, 1, 252, 15, 144, 42, 2, 1, 252, 15, 144, 42, 6, 1, 233, 237, 4, + 237, 42, 42, 2, 1, 233, 237, 4, 237, 42, 42, 6, 1, 199, 141, 4, 237, 42, + 42, 2, 1, 199, 141, 4, 237, 42, 42, 6, 1, 201, 48, 69, 42, 2, 1, 201, 48, + 69, 42, 6, 1, 201, 48, 126, 4, 105, 42, 2, 1, 201, 48, 126, 4, 105, 42, + 6, 1, 230, 72, 4, 237, 42, 42, 2, 1, 230, 72, 4, 237, 42, 42, 6, 34, 199, + 141, 197, 157, 42, 2, 34, 199, 141, 197, 157, 42, 6, 1, 243, 80, 4, 237, + 42, 42, 2, 1, 243, 80, 4, 237, 42, 42, 6, 1, 243, 80, 4, 81, 105, 42, 2, + 1, 243, 80, 4, 81, 105, 42, 6, 1, 203, 77, 42, 2, 1, 203, 77, 42, 6, 1, + 252, 15, 243, 79, 42, 2, 1, 252, 15, 243, 79, 42, 6, 1, 252, 15, 243, 80, + 4, 237, 42, 42, 2, 1, 252, 15, 243, 80, 4, 237, 42, 42, 1, 210, 169, 42, + 6, 1, 191, 63, 4, 247, 244, 42, 2, 1, 191, 63, 4, 247, 244, 42, 6, 1, + 222, 115, 4, 106, 42, 2, 1, 222, 115, 4, 106, 42, 6, 1, 234, 98, 4, 199, + 210, 42, 2, 1, 234, 98, 4, 199, 210, 42, 6, 1, 234, 62, 4, 106, 42, 2, 1, + 234, 62, 4, 106, 42, 6, 1, 234, 62, 4, 199, 210, 42, 2, 1, 234, 62, 4, + 199, 210, 42, 6, 1, 221, 183, 243, 79, 42, 2, 1, 221, 183, 243, 79, 42, + 6, 1, 234, 73, 4, 199, 210, 42, 2, 1, 234, 73, 4, 199, 210, 42, 2, 1, + 210, 169, 42, 6, 1, 41, 4, 247, 244, 42, 2, 1, 41, 4, 247, 244, 42, 6, 1, + 41, 4, 236, 253, 42, 2, 1, 41, 4, 236, 253, 42, 6, 34, 41, 223, 197, 42, + 2, 34, 41, 223, 197, 42, 6, 1, 223, 198, 4, 247, 244, 42, 2, 1, 223, 198, + 4, 247, 244, 42, 6, 1, 205, 81, 42, 2, 1, 205, 81, 42, 6, 1, 205, 82, 4, + 236, 253, 42, 2, 1, 205, 82, 4, 236, 253, 42, 6, 1, 191, 63, 4, 236, 253, + 42, 2, 1, 191, 63, 4, 236, 253, 42, 6, 1, 191, 88, 4, 236, 253, 42, 2, 1, + 191, 88, 4, 236, 253, 42, 6, 1, 252, 15, 234, 244, 42, 2, 1, 252, 15, + 234, 244, 42, 6, 1, 228, 44, 4, 217, 125, 42, 2, 1, 228, 44, 4, 217, 125, + 42, 6, 1, 228, 44, 4, 236, 253, 42, 2, 1, 228, 44, 4, 236, 253, 42, 6, 1, + 186, 4, 236, 253, 42, 2, 1, 186, 4, 236, 253, 42, 6, 1, 249, 32, 74, 42, + 2, 1, 249, 32, 74, 42, 6, 1, 249, 32, 186, 4, 236, 253, 42, 2, 1, 249, + 32, 186, 4, 236, 253, 42, 6, 1, 234, 227, 4, 236, 253, 42, 2, 1, 234, + 227, 4, 236, 253, 42, 6, 1, 126, 4, 217, 125, 42, 2, 1, 126, 4, 217, 125, + 42, 6, 1, 126, 4, 236, 253, 42, 2, 1, 126, 4, 236, 253, 42, 6, 1, 126, 4, + 54, 251, 250, 42, 2, 1, 126, 4, 54, 251, 250, 42, 6, 1, 243, 80, 4, 236, + 253, 42, 2, 1, 243, 80, 4, 236, 253, 42, 6, 1, 231, 41, 4, 237, 42, 42, + 2, 1, 231, 41, 4, 237, 42, 42, 6, 1, 192, 59, 4, 236, 253, 42, 2, 1, 192, + 59, 4, 236, 253, 42, 6, 1, 231, 41, 4, 201, 23, 24, 106, 42, 2, 1, 231, + 41, 4, 201, 23, 24, 106, 42, 6, 1, 230, 72, 4, 106, 42, 2, 1, 230, 72, 4, + 106, 42, 6, 1, 230, 72, 4, 105, 42, 2, 1, 230, 72, 4, 105, 42, 6, 1, 221, + 21, 237, 101, 42, 2, 1, 221, 21, 237, 101, 42, 6, 1, 221, 21, 236, 147, + 42, 2, 1, 221, 21, 236, 147, 42, 6, 1, 221, 21, 191, 12, 42, 2, 1, 221, + 21, 191, 12, 42, 6, 1, 221, 21, 234, 236, 42, 2, 1, 221, 21, 234, 236, + 42, 6, 1, 221, 21, 219, 52, 42, 2, 1, 221, 21, 219, 52, 42, 6, 1, 221, + 21, 213, 137, 42, 2, 1, 221, 21, 213, 137, 42, 6, 1, 221, 21, 202, 110, + 42, 2, 1, 221, 21, 202, 110, 42, 6, 1, 221, 21, 198, 111, 42, 2, 1, 221, + 21, 198, 111, 42, 6, 1, 207, 13, 191, 87, 42, 2, 1, 207, 13, 191, 87, 42, + 6, 1, 234, 98, 4, 106, 42, 2, 1, 234, 98, 4, 106, 42, 6, 1, 219, 135, 42, + 2, 1, 219, 135, 42, 6, 1, 207, 1, 42, 2, 1, 207, 1, 42, 6, 1, 192, 129, + 42, 2, 1, 192, 129, 42, 6, 1, 208, 89, 42, 2, 1, 208, 89, 42, 6, 1, 193, + 123, 42, 2, 1, 193, 123, 42, 6, 1, 251, 137, 157, 42, 2, 1, 251, 137, + 157, 42, 6, 1, 234, 98, 4, 82, 106, 42, 2, 1, 234, 98, 4, 82, 106, 42, 6, + 1, 234, 62, 4, 82, 106, 42, 2, 1, 234, 62, 4, 82, 106, 42, 6, 1, 210, 54, + 4, 237, 42, 42, 2, 1, 210, 54, 4, 237, 42, 42, 6, 1, 203, 78, 4, 237, 42, + 42, 2, 1, 203, 78, 4, 237, 42, 42, 6, 1, 234, 62, 4, 45, 106, 42, 2, 1, + 234, 62, 4, 45, 106, 42, 6, 1, 234, 228, 42, 2, 1, 234, 228, 42, 6, 1, + 237, 150, 42, 2, 1, 237, 150, 42, 6, 1, 234, 98, 4, 237, 42, 42, 2, 1, + 234, 98, 4, 237, 42, 250, 199, 6, 1, 250, 78, 250, 199, 6, 1, 248, 179, + 250, 199, 6, 1, 231, 3, 250, 199, 6, 1, 237, 241, 250, 199, 6, 1, 234, + 151, 250, 199, 6, 1, 191, 123, 250, 199, 6, 1, 234, 130, 250, 199, 6, 1, + 233, 213, 250, 199, 6, 1, 159, 250, 199, 6, 1, 191, 62, 250, 199, 6, 1, + 223, 103, 250, 199, 6, 1, 219, 56, 250, 199, 6, 1, 192, 212, 250, 199, 6, + 1, 247, 112, 250, 199, 6, 1, 221, 226, 250, 199, 6, 1, 228, 247, 250, + 199, 6, 1, 223, 4, 250, 199, 6, 1, 231, 51, 250, 199, 6, 1, 243, 69, 250, + 199, 6, 1, 216, 167, 250, 199, 6, 1, 192, 33, 250, 199, 6, 1, 212, 240, + 250, 199, 6, 1, 203, 160, 250, 199, 6, 1, 195, 21, 250, 199, 6, 1, 246, + 209, 250, 199, 6, 1, 210, 32, 250, 199, 6, 1, 222, 220, 250, 199, 6, 1, + 166, 250, 199, 6, 1, 205, 34, 250, 199, 6, 1, 195, 71, 250, 199, 6, 1, + 198, 114, 250, 199, 6, 1, 207, 66, 250, 199, 6, 1, 242, 51, 250, 199, 6, + 1, 192, 17, 250, 199, 6, 1, 209, 106, 250, 199, 6, 1, 221, 237, 250, 199, + 6, 1, 211, 124, 250, 199, 6, 1, 233, 5, 250, 199, 59, 1, 45, 134, 206, + 183, 250, 199, 250, 255, 250, 199, 234, 65, 77, 250, 199, 233, 175, 77, + 250, 199, 242, 26, 250, 199, 208, 8, 77, 250, 199, 252, 16, 77, 250, 199, + 2, 1, 152, 250, 78, 250, 199, 2, 1, 250, 78, 250, 199, 2, 1, 248, 179, + 250, 199, 2, 1, 231, 3, 250, 199, 2, 1, 237, 241, 250, 199, 2, 1, 234, + 151, 250, 199, 2, 1, 191, 123, 250, 199, 2, 1, 234, 130, 250, 199, 2, 1, + 233, 213, 250, 199, 2, 1, 159, 250, 199, 2, 1, 191, 62, 250, 199, 2, 1, + 223, 103, 250, 199, 2, 1, 219, 56, 250, 199, 2, 1, 192, 212, 250, 199, 2, + 1, 247, 112, 250, 199, 2, 1, 221, 226, 250, 199, 2, 1, 228, 247, 250, + 199, 2, 1, 223, 4, 250, 199, 2, 1, 231, 51, 250, 199, 2, 1, 243, 69, 250, + 199, 2, 1, 216, 167, 250, 199, 2, 1, 192, 33, 250, 199, 2, 1, 212, 240, + 250, 199, 2, 1, 203, 160, 250, 199, 2, 1, 195, 21, 250, 199, 2, 1, 246, + 209, 250, 199, 2, 1, 210, 32, 250, 199, 2, 1, 222, 220, 250, 199, 2, 1, + 166, 250, 199, 2, 1, 205, 34, 250, 199, 2, 1, 195, 71, 250, 199, 2, 1, + 198, 114, 250, 199, 2, 1, 207, 66, 250, 199, 2, 1, 242, 51, 250, 199, 2, + 1, 192, 17, 250, 199, 2, 1, 209, 106, 250, 199, 2, 1, 221, 237, 250, 199, + 2, 1, 211, 124, 250, 199, 2, 1, 233, 5, 250, 199, 2, 34, 234, 152, 192, + 17, 250, 199, 2, 1, 11, 4, 105, 250, 199, 232, 42, 201, 58, 250, 199, + 228, 58, 206, 202, 250, 199, 233, 209, 57, 219, 199, 250, 199, 233, 209, + 57, 250, 199, 235, 66, 57, 135, 252, 9, 233, 204, 135, 252, 9, 205, 35, + 135, 252, 9, 203, 136, 135, 252, 9, 191, 99, 208, 72, 135, 252, 9, 191, + 99, 231, 193, 135, 252, 9, 198, 129, 135, 252, 9, 207, 10, 135, 252, 9, + 191, 97, 135, 252, 9, 210, 87, 135, 252, 9, 192, 48, 135, 252, 9, 199, + 51, 135, 252, 9, 231, 102, 135, 252, 9, 231, 103, 215, 96, 135, 252, 9, + 231, 100, 135, 252, 9, 208, 73, 210, 120, 135, 252, 9, 199, 98, 231, 121, + 135, 252, 9, 210, 59, 135, 252, 9, 250, 123, 230, 52, 135, 252, 9, 215, + 106, 135, 252, 9, 217, 96, 135, 252, 9, 216, 156, 135, 252, 9, 216, 157, + 221, 238, 135, 252, 9, 237, 177, 135, 252, 9, 208, 84, 135, 252, 9, 199, + 98, 208, 67, 135, 252, 9, 192, 61, 248, 180, 191, 247, 135, 252, 9, 211, + 106, 135, 252, 9, 223, 155, 135, 252, 9, 237, 78, 135, 252, 9, 191, 19, + 135, 87, 217, 15, 242, 218, 135, 209, 55, 203, 80, 135, 209, 55, 229, + 231, 205, 35, 135, 209, 55, 229, 231, 210, 78, 135, 209, 55, 229, 231, + 208, 77, 135, 209, 55, 229, 87, 135, 209, 55, 197, 154, 135, 209, 55, + 205, 35, 135, 209, 55, 210, 78, 135, 209, 55, 208, 77, 135, 209, 55, 228, + 231, 135, 209, 55, 228, 232, 229, 233, 39, 195, 155, 135, 209, 55, 208, + 13, 135, 209, 55, 237, 226, 211, 46, 217, 50, 135, 209, 55, 216, 145, + 135, 208, 145, 217, 47, 135, 209, 55, 207, 156, 135, 208, 145, 210, 89, + 135, 209, 55, 203, 65, 236, 96, 135, 209, 55, 202, 170, 236, 96, 135, + 208, 145, 202, 28, 210, 80, 135, 87, 116, 236, 96, 135, 87, 110, 236, 96, + 135, 208, 145, 212, 118, 230, 51, 135, 209, 55, 208, 78, 208, 72, 135, 1, + 251, 141, 135, 1, 248, 164, 135, 1, 231, 1, 135, 1, 237, 206, 135, 1, + 229, 213, 135, 1, 195, 155, 135, 1, 191, 91, 135, 1, 229, 154, 135, 1, + 199, 68, 135, 1, 191, 250, 135, 1, 52, 222, 79, 135, 1, 222, 79, 135, 1, + 220, 3, 135, 1, 52, 216, 174, 135, 1, 216, 174, 135, 1, 52, 212, 117, + 135, 1, 212, 117, 135, 1, 205, 143, 135, 1, 250, 76, 135, 1, 52, 210, 53, + 135, 1, 210, 53, 135, 1, 52, 197, 159, 135, 1, 197, 159, 135, 1, 208, 36, + 135, 1, 207, 33, 135, 1, 203, 64, 135, 1, 199, 157, 135, 191, 251, 197, + 237, 135, 34, 192, 31, 54, 195, 155, 135, 34, 192, 31, 195, 156, 191, + 250, 135, 34, 192, 31, 54, 191, 250, 135, 208, 145, 231, 102, 135, 208, + 145, 231, 100, 9, 31, 57, 9, 3, 205, 136, 9, 232, 118, 217, 32, 9, 3, + 205, 182, 9, 3, 205, 139, 9, 31, 87, 56, 250, 234, 238, 144, 206, 123, + 250, 234, 232, 83, 206, 123, 9, 207, 117, 250, 234, 210, 5, 216, 32, 57, + 250, 234, 210, 5, 199, 91, 198, 225, 57, 251, 206, 57, 9, 242, 26, 9, + 237, 164, 204, 5, 9, 209, 57, 195, 134, 57, 9, 3, 216, 8, 9, 3, 205, 156, + 251, 148, 193, 147, 9, 3, 251, 148, 250, 148, 9, 3, 207, 152, 251, 147, + 9, 3, 207, 162, 251, 119, 251, 54, 9, 3, 199, 201, 9, 2, 136, 199, 214, + 9, 2, 136, 34, 130, 4, 220, 12, 4, 192, 75, 9, 2, 136, 191, 113, 9, 2, + 233, 29, 9, 2, 237, 200, 9, 2, 222, 26, 9, 204, 20, 9, 1, 77, 9, 234, 53, + 80, 199, 49, 77, 9, 197, 221, 75, 208, 145, 77, 9, 208, 8, 77, 9, 1, 222, + 30, 192, 75, 9, 1, 230, 24, 9, 1, 130, 4, 217, 121, 56, 9, 1, 130, 4, + 230, 25, 56, 9, 1, 193, 132, 4, 230, 25, 56, 9, 1, 130, 4, 230, 25, 60, + 9, 1, 99, 4, 230, 25, 56, 9, 1, 251, 141, 9, 1, 248, 195, 9, 1, 199, 110, + 217, 43, 9, 1, 199, 109, 9, 1, 199, 24, 9, 1, 222, 234, 9, 1, 230, 48, 9, + 1, 221, 185, 9, 1, 237, 212, 9, 1, 199, 36, 9, 1, 207, 66, 9, 1, 191, + 113, 9, 1, 205, 41, 9, 1, 203, 104, 9, 1, 205, 187, 9, 1, 237, 235, 9, 1, + 199, 214, 9, 1, 191, 116, 9, 1, 251, 178, 9, 1, 231, 49, 9, 1, 221, 236, + 4, 103, 183, 56, 9, 1, 221, 236, 4, 115, 183, 60, 9, 1, 233, 33, 99, 4, + 223, 65, 196, 8, 9, 1, 233, 33, 99, 4, 103, 183, 56, 9, 1, 233, 33, 99, + 4, 115, 183, 56, 9, 199, 163, 9, 1, 233, 5, 9, 1, 208, 82, 9, 1, 222, 79, + 9, 1, 220, 11, 9, 1, 216, 189, 9, 1, 213, 11, 9, 1, 229, 178, 9, 1, 193, + 131, 9, 1, 130, 217, 79, 9, 1, 192, 75, 9, 233, 27, 9, 237, 198, 9, 222, + 24, 9, 233, 29, 9, 237, 200, 9, 222, 26, 9, 203, 150, 9, 200, 201, 9, + 217, 119, 56, 9, 230, 25, 56, 9, 230, 25, 60, 9, 200, 225, 251, 141, 9, + 223, 65, 237, 200, 9, 87, 213, 12, 231, 20, 9, 190, 237, 9, 18, 3, 2, + 196, 9, 56, 9, 18, 3, 223, 65, 2, 196, 9, 56, 9, 18, 3, 75, 60, 9, 207, + 13, 237, 200, 9, 233, 30, 4, 103, 236, 94, 9, 193, 133, 230, 25, 60, 250, + 234, 17, 191, 77, 250, 234, 17, 108, 250, 234, 17, 109, 250, 234, 17, + 139, 250, 234, 17, 137, 250, 234, 17, 153, 250, 234, 17, 173, 250, 234, + 17, 181, 250, 234, 17, 176, 250, 234, 17, 184, 9, 210, 4, 57, 9, 237, 93, + 204, 5, 9, 198, 224, 204, 5, 9, 232, 185, 209, 53, 201, 97, 9, 1, 236, + 95, 248, 195, 9, 1, 236, 95, 208, 82, 9, 1, 200, 177, 251, 141, 9, 1, + 130, 193, 148, 9, 1, 130, 4, 193, 133, 230, 25, 56, 9, 1, 130, 4, 193, + 133, 230, 25, 60, 9, 1, 136, 230, 24, 9, 1, 136, 230, 25, 251, 141, 9, 1, + 136, 230, 25, 193, 131, 9, 1, 126, 4, 230, 25, 56, 9, 1, 136, 230, 25, + 192, 75, 9, 1, 197, 120, 9, 1, 197, 118, 9, 1, 248, 205, 9, 1, 199, 110, + 4, 206, 183, 9, 1, 199, 110, 4, 115, 183, 95, 235, 74, 9, 1, 210, 32, 9, + 1, 199, 107, 9, 1, 248, 193, 9, 1, 179, 4, 230, 25, 56, 9, 1, 179, 4, + 103, 183, 81, 56, 9, 1, 212, 74, 9, 1, 234, 253, 9, 1, 179, 4, 115, 183, + 56, 9, 1, 199, 144, 9, 1, 199, 142, 9, 1, 237, 141, 9, 1, 237, 213, 4, + 206, 183, 9, 1, 237, 213, 4, 75, 60, 9, 1, 237, 213, 4, 75, 248, 183, 24, + 2, 199, 214, 9, 1, 237, 219, 9, 1, 237, 143, 9, 1, 235, 34, 9, 1, 237, + 213, 4, 115, 183, 95, 235, 74, 9, 1, 237, 213, 4, 232, 90, 183, 56, 9, 1, + 206, 96, 9, 1, 207, 67, 4, 2, 196, 8, 9, 1, 207, 67, 4, 206, 183, 9, 1, + 207, 67, 4, 75, 60, 9, 1, 207, 67, 4, 2, 196, 9, 60, 9, 1, 207, 67, 4, + 75, 248, 183, 24, 75, 56, 9, 1, 207, 67, 4, 103, 183, 56, 9, 1, 222, 231, + 9, 1, 207, 67, 4, 232, 90, 183, 56, 9, 1, 205, 42, 4, 75, 248, 183, 24, + 75, 56, 9, 1, 205, 42, 4, 115, 183, 60, 9, 1, 205, 42, 4, 115, 183, 248, + 183, 24, 115, 183, 56, 9, 1, 205, 188, 4, 103, 183, 60, 9, 1, 205, 188, + 4, 115, 183, 56, 9, 1, 199, 215, 4, 115, 183, 56, 9, 1, 251, 179, 4, 115, + 183, 56, 9, 1, 236, 95, 233, 5, 9, 1, 233, 6, 4, 75, 215, 161, 60, 9, 1, + 233, 6, 4, 75, 60, 9, 1, 195, 143, 9, 1, 233, 6, 4, 115, 183, 60, 9, 1, + 210, 30, 9, 1, 208, 83, 4, 75, 56, 9, 1, 208, 83, 4, 115, 183, 56, 9, 1, + 221, 235, 9, 1, 200, 142, 222, 79, 9, 1, 222, 80, 4, 206, 183, 9, 1, 222, + 80, 4, 75, 56, 9, 1, 214, 56, 9, 1, 222, 80, 4, 115, 183, 60, 9, 1, 231, + 190, 9, 1, 231, 191, 4, 206, 183, 9, 1, 213, 233, 9, 1, 231, 191, 4, 103, + 183, 60, 9, 1, 230, 133, 9, 1, 231, 191, 4, 115, 183, 56, 9, 1, 220, 12, + 4, 2, 196, 8, 9, 1, 220, 12, 4, 75, 56, 9, 1, 220, 12, 4, 115, 183, 56, + 9, 1, 220, 12, 4, 115, 183, 60, 9, 1, 213, 12, 4, 75, 60, 9, 1, 213, 12, + 231, 20, 9, 1, 206, 160, 9, 1, 213, 12, 4, 206, 183, 9, 1, 213, 12, 4, + 115, 183, 56, 9, 1, 229, 179, 236, 125, 9, 1, 199, 145, 4, 75, 56, 9, 1, + 229, 179, 4, 99, 56, 9, 1, 229, 179, 230, 220, 9, 1, 229, 179, 230, 221, + 4, 230, 25, 56, 9, 1, 199, 110, 217, 44, 230, 220, 9, 1, 193, 132, 4, + 206, 183, 9, 1, 221, 108, 211, 139, 9, 1, 211, 139, 9, 1, 69, 9, 1, 191, + 225, 9, 1, 221, 108, 191, 225, 9, 1, 193, 132, 4, 103, 183, 56, 9, 1, + 195, 150, 9, 1, 233, 33, 192, 75, 9, 1, 99, 4, 199, 210, 9, 1, 99, 4, 2, + 196, 8, 9, 1, 193, 132, 4, 75, 56, 9, 1, 73, 9, 1, 99, 4, 115, 183, 60, + 9, 1, 99, 249, 30, 9, 1, 99, 249, 31, 4, 230, 25, 56, 9, 232, 42, 201, + 58, 9, 1, 251, 229, 9, 2, 136, 34, 205, 188, 4, 220, 12, 4, 130, 217, 79, + 9, 2, 136, 34, 208, 83, 4, 220, 12, 4, 130, 217, 79, 9, 2, 136, 92, 89, + 20, 9, 2, 136, 220, 12, 251, 141, 9, 2, 136, 222, 234, 9, 2, 136, 115, + 236, 94, 9, 2, 136, 205, 41, 9, 234, 53, 80, 250, 80, 9, 201, 93, 80, + 206, 55, 234, 98, 229, 82, 9, 2, 136, 206, 108, 191, 77, 9, 2, 136, 196, + 69, 207, 86, 191, 77, 9, 2, 136, 236, 95, 229, 204, 80, 221, 185, 9, 2, + 136, 92, 76, 20, 9, 2, 131, 205, 41, 9, 2, 136, 217, 120, 9, 2, 193, 131, + 9, 2, 192, 75, 9, 2, 136, 192, 75, 9, 2, 136, 213, 11, 9, 209, 100, 80, + 205, 172, 9, 234, 63, 246, 230, 131, 201, 58, 9, 234, 63, 246, 230, 136, + 201, 58, 9, 206, 108, 136, 201, 59, 4, 232, 219, 246, 229, 9, 2, 131, + 216, 189, 9, 1, 237, 213, 4, 223, 65, 196, 8, 9, 1, 207, 67, 4, 223, 65, + 196, 8, 233, 164, 250, 234, 17, 191, 77, 233, 164, 250, 234, 17, 108, + 233, 164, 250, 234, 17, 109, 233, 164, 250, 234, 17, 139, 233, 164, 250, + 234, 17, 137, 233, 164, 250, 234, 17, 153, 233, 164, 250, 234, 17, 173, + 233, 164, 250, 234, 17, 181, 233, 164, 250, 234, 17, 176, 233, 164, 250, + 234, 17, 184, 9, 1, 203, 105, 4, 75, 60, 9, 1, 237, 236, 4, 75, 60, 9, 1, + 231, 50, 4, 75, 60, 9, 3, 202, 168, 251, 86, 9, 3, 202, 168, 209, 9, 216, + 167, 9, 1, 229, 179, 4, 223, 65, 196, 8, 200, 59, 234, 53, 80, 210, 117, + 200, 59, 200, 172, 232, 42, 201, 58, 200, 59, 200, 227, 232, 42, 201, 58, + 200, 59, 200, 172, 242, 35, 200, 59, 200, 227, 242, 35, 200, 59, 228, + 209, 242, 35, 200, 59, 242, 36, 202, 105, 219, 200, 200, 59, 242, 36, + 202, 105, 187, 200, 59, 200, 172, 242, 36, 202, 105, 219, 200, 200, 59, + 200, 227, 242, 36, 202, 105, 187, 200, 59, 238, 233, 200, 59, 229, 238, + 211, 163, 200, 59, 229, 238, 216, 143, 200, 59, 229, 238, 250, 145, 200, + 59, 252, 16, 77, 200, 59, 1, 251, 151, 200, 59, 1, 200, 177, 251, 151, + 200, 59, 1, 248, 161, 200, 59, 1, 231, 180, 200, 59, 1, 231, 181, 231, + 157, 200, 59, 1, 237, 209, 200, 59, 1, 236, 95, 237, 210, 206, 176, 200, + 59, 1, 229, 213, 200, 59, 1, 193, 131, 200, 59, 1, 191, 113, 200, 59, 1, + 229, 152, 200, 59, 1, 199, 64, 200, 59, 1, 199, 65, 231, 157, 200, 59, 1, + 191, 208, 200, 59, 1, 191, 209, 229, 213, 200, 59, 1, 222, 49, 200, 59, + 1, 220, 10, 200, 59, 1, 216, 28, 200, 59, 1, 212, 117, 200, 59, 1, 204, + 13, 200, 59, 1, 52, 204, 13, 200, 59, 1, 73, 200, 59, 1, 210, 53, 200, + 59, 1, 207, 13, 210, 53, 200, 59, 1, 205, 184, 200, 59, 1, 208, 76, 200, + 59, 1, 206, 176, 200, 59, 1, 203, 64, 200, 59, 1, 199, 154, 200, 59, 1, + 209, 243, 248, 146, 200, 59, 1, 209, 243, 231, 47, 200, 59, 1, 209, 243, + 237, 18, 200, 59, 208, 159, 56, 200, 59, 208, 159, 60, 200, 59, 208, 159, + 235, 93, 200, 59, 191, 0, 56, 200, 59, 191, 0, 60, 200, 59, 191, 0, 235, + 93, 200, 59, 207, 111, 56, 200, 59, 207, 111, 60, 200, 59, 235, 94, 191, + 9, 228, 208, 200, 59, 235, 94, 191, 9, 251, 57, 200, 59, 229, 218, 56, + 200, 59, 229, 218, 60, 200, 59, 229, 217, 235, 93, 200, 59, 233, 230, 56, + 200, 59, 233, 230, 60, 200, 59, 206, 19, 200, 59, 232, 255, 236, 96, 200, + 59, 207, 241, 200, 59, 206, 49, 200, 59, 103, 81, 183, 56, 200, 59, 103, + 81, 183, 60, 200, 59, 115, 183, 56, 200, 59, 115, 183, 60, 200, 59, 211, + 159, 219, 89, 56, 200, 59, 211, 159, 219, 89, 60, 200, 59, 215, 82, 200, + 59, 249, 29, 200, 59, 1, 202, 23, 191, 69, 200, 59, 1, 202, 23, 221, 177, + 200, 59, 1, 202, 23, 233, 18, 9, 1, 248, 196, 4, 115, 183, 228, 158, 60, + 9, 1, 248, 196, 4, 75, 248, 183, 24, 115, 183, 56, 9, 1, 248, 196, 4, + 115, 183, 209, 51, 196, 62, 60, 9, 1, 248, 196, 4, 115, 183, 209, 51, + 196, 62, 248, 183, 24, 103, 183, 56, 9, 1, 248, 196, 4, 103, 183, 248, + 183, 24, 75, 56, 9, 1, 248, 196, 4, 223, 65, 2, 196, 9, 60, 9, 1, 248, + 196, 4, 2, 196, 8, 9, 1, 179, 4, 103, 183, 56, 9, 1, 179, 4, 115, 183, + 209, 51, 196, 62, 60, 9, 1, 237, 213, 4, 103, 183, 195, 82, 248, 183, 24, + 2, 199, 214, 9, 1, 237, 213, 4, 223, 65, 2, 196, 9, 60, 9, 1, 207, 67, 4, + 105, 9, 1, 205, 42, 4, 232, 90, 183, 56, 9, 1, 251, 179, 4, 103, 183, 56, + 9, 1, 251, 179, 4, 115, 183, 209, 51, 235, 75, 56, 9, 1, 251, 179, 4, + 103, 183, 195, 82, 56, 9, 1, 233, 6, 4, 103, 183, 60, 9, 1, 233, 6, 4, + 115, 183, 209, 51, 196, 62, 60, 9, 1, 221, 236, 4, 75, 56, 9, 1, 221, + 236, 4, 115, 183, 56, 9, 1, 221, 236, 4, 115, 183, 209, 51, 196, 62, 60, + 9, 1, 92, 4, 75, 56, 9, 1, 92, 4, 75, 60, 9, 1, 213, 12, 4, 103, 183, 60, + 9, 1, 213, 12, 4, 2, 199, 214, 9, 1, 213, 12, 4, 2, 196, 8, 9, 1, 220, + 12, 4, 164, 9, 1, 207, 67, 4, 103, 183, 195, 82, 56, 9, 1, 207, 67, 4, + 230, 25, 56, 9, 1, 205, 42, 4, 103, 183, 195, 82, 56, 9, 1, 179, 4, 2, 9, + 1, 199, 215, 60, 9, 1, 179, 4, 2, 9, 1, 199, 215, 24, 103, 236, 94, 9, 1, + 205, 42, 4, 2, 9, 1, 199, 215, 24, 103, 236, 94, 9, 1, 207, 67, 4, 2, 9, + 1, 199, 215, 24, 103, 236, 94, 9, 1, 179, 4, 2, 9, 1, 199, 215, 56, 9, 1, + 130, 4, 233, 164, 250, 234, 17, 103, 56, 9, 1, 130, 4, 233, 164, 250, + 234, 17, 115, 56, 9, 1, 233, 33, 99, 4, 233, 164, 250, 234, 17, 103, 56, + 9, 1, 233, 33, 99, 4, 233, 164, 250, 234, 17, 115, 56, 9, 1, 233, 33, 99, + 4, 233, 164, 250, 234, 17, 232, 90, 60, 9, 1, 193, 132, 4, 233, 164, 250, + 234, 17, 103, 56, 9, 1, 193, 132, 4, 233, 164, 250, 234, 17, 115, 56, 9, + 1, 99, 249, 31, 4, 233, 164, 250, 234, 17, 103, 56, 9, 1, 99, 249, 31, 4, + 233, 164, 250, 234, 17, 115, 56, 9, 1, 179, 4, 233, 164, 250, 234, 17, + 232, 90, 60, 9, 1, 205, 42, 4, 233, 164, 250, 234, 17, 232, 90, 56, 9, 1, + 205, 42, 4, 223, 65, 196, 8, 9, 1, 222, 80, 4, 103, 183, 56, 199, 41, 1, + 230, 58, 199, 41, 1, 203, 114, 199, 41, 1, 213, 10, 199, 41, 1, 207, 173, + 199, 41, 1, 249, 101, 199, 41, 1, 219, 132, 199, 41, 1, 222, 95, 199, 41, + 1, 251, 128, 199, 41, 1, 195, 183, 199, 41, 1, 216, 188, 199, 41, 1, 233, + 66, 199, 41, 1, 237, 21, 199, 41, 1, 199, 43, 199, 41, 1, 220, 98, 199, + 41, 1, 231, 199, 199, 41, 1, 230, 226, 199, 41, 1, 205, 40, 199, 41, 1, + 237, 162, 199, 41, 1, 191, 94, 199, 41, 1, 199, 156, 199, 41, 1, 192, + 140, 199, 41, 1, 210, 67, 199, 41, 1, 222, 243, 199, 41, 1, 243, 82, 199, + 41, 1, 197, 127, 199, 41, 1, 229, 144, 199, 41, 1, 221, 189, 199, 41, 1, + 199, 42, 199, 41, 1, 191, 121, 199, 41, 1, 203, 103, 199, 41, 1, 205, + 191, 199, 41, 1, 237, 239, 199, 41, 1, 159, 199, 41, 1, 191, 7, 199, 41, + 1, 251, 175, 199, 41, 1, 231, 48, 199, 41, 1, 208, 86, 199, 41, 1, 193, + 175, 199, 41, 252, 18, 199, 41, 252, 119, 199, 41, 227, 255, 199, 41, + 234, 144, 199, 41, 196, 157, 199, 41, 211, 75, 199, 41, 234, 154, 199, + 41, 233, 154, 199, 41, 211, 158, 199, 41, 211, 168, 199, 41, 200, 201, + 199, 41, 1, 214, 236, 213, 94, 17, 191, 77, 213, 94, 17, 108, 213, 94, + 17, 109, 213, 94, 17, 139, 213, 94, 17, 137, 213, 94, 17, 153, 213, 94, + 17, 173, 213, 94, 17, 181, 213, 94, 17, 176, 213, 94, 17, 184, 213, 94, + 1, 65, 213, 94, 1, 234, 145, 213, 94, 1, 70, 213, 94, 1, 73, 213, 94, 1, + 69, 213, 94, 1, 211, 76, 213, 94, 1, 74, 213, 94, 1, 237, 227, 213, 94, + 1, 215, 47, 213, 94, 1, 249, 103, 213, 94, 1, 168, 213, 94, 1, 199, 247, + 213, 94, 1, 223, 4, 213, 94, 1, 246, 209, 213, 94, 1, 237, 241, 213, 94, + 1, 166, 213, 94, 1, 206, 104, 213, 94, 1, 189, 213, 94, 1, 231, 145, 213, + 94, 1, 233, 68, 213, 94, 1, 157, 213, 94, 1, 171, 213, 94, 1, 214, 249, + 193, 37, 213, 94, 1, 172, 213, 94, 1, 212, 88, 213, 94, 1, 180, 213, 94, + 1, 144, 213, 94, 1, 193, 187, 213, 94, 1, 169, 213, 94, 1, 212, 89, 193, + 37, 213, 94, 1, 222, 166, 223, 4, 213, 94, 1, 222, 166, 246, 209, 213, + 94, 1, 222, 166, 166, 213, 94, 33, 203, 35, 136, 198, 74, 213, 94, 33, + 203, 35, 131, 198, 74, 213, 94, 33, 203, 35, 206, 175, 198, 74, 213, 94, + 33, 177, 237, 41, 198, 74, 213, 94, 33, 177, 136, 198, 74, 213, 94, 33, + 177, 131, 198, 74, 213, 94, 33, 177, 206, 175, 198, 74, 213, 94, 33, 214, + 199, 77, 213, 94, 33, 54, 75, 56, 213, 94, 136, 163, 250, 255, 213, 94, + 131, 163, 250, 255, 213, 94, 16, 211, 77, 237, 56, 213, 94, 16, 231, 144, + 213, 94, 242, 26, 213, 94, 233, 175, 77, 213, 94, 220, 70, 213, 94, 237, + 188, 213, 94, 236, 98, 57, 213, 94, 199, 190, 57, 205, 146, 1, 251, 153, + 205, 146, 1, 248, 100, 205, 146, 1, 231, 179, 205, 146, 1, 237, 211, 205, + 146, 1, 223, 16, 205, 146, 1, 249, 101, 205, 146, 1, 191, 80, 205, 146, + 1, 223, 25, 205, 146, 1, 198, 120, 205, 146, 1, 191, 189, 205, 146, 1, + 222, 96, 205, 146, 1, 220, 94, 205, 146, 1, 216, 28, 205, 146, 1, 212, + 117, 205, 146, 1, 202, 166, 205, 146, 1, 223, 134, 205, 146, 1, 232, 238, + 205, 146, 1, 197, 162, 205, 146, 1, 208, 5, 205, 146, 1, 206, 176, 205, + 146, 1, 203, 133, 205, 146, 1, 199, 238, 205, 146, 87, 223, 134, 205, + 146, 87, 223, 133, 205, 146, 87, 211, 152, 205, 146, 87, 237, 225, 205, + 146, 59, 1, 234, 10, 191, 189, 205, 146, 87, 234, 10, 191, 189, 205, 146, + 18, 3, 177, 73, 205, 146, 18, 3, 73, 205, 146, 18, 3, 210, 243, 252, 154, + 205, 146, 18, 3, 177, 252, 154, 205, 146, 18, 3, 252, 154, 205, 146, 18, + 3, 210, 243, 65, 205, 146, 18, 3, 177, 65, 205, 146, 18, 3, 65, 205, 146, + 59, 1, 203, 35, 65, 205, 146, 18, 3, 203, 35, 65, 205, 146, 18, 3, 177, + 69, 205, 146, 18, 3, 69, 205, 146, 59, 1, 70, 205, 146, 18, 3, 177, 70, + 205, 146, 18, 3, 70, 205, 146, 18, 3, 74, 205, 146, 18, 3, 200, 201, 205, + 146, 87, 214, 79, 205, 146, 208, 145, 214, 79, 205, 146, 208, 145, 251, + 203, 205, 146, 208, 145, 251, 70, 205, 146, 208, 145, 249, 7, 205, 146, + 208, 145, 250, 124, 205, 146, 208, 145, 203, 52, 205, 146, 252, 16, 77, + 205, 146, 208, 145, 216, 178, 208, 42, 205, 146, 208, 145, 191, 16, 205, + 146, 208, 145, 208, 42, 205, 146, 208, 145, 191, 119, 205, 146, 208, 145, + 197, 50, 205, 146, 208, 145, 250, 205, 205, 146, 208, 145, 202, 28, 217, + 18, 205, 146, 208, 145, 251, 46, 217, 66, 1, 230, 32, 217, 66, 1, 252, + 103, 217, 66, 1, 251, 201, 217, 66, 1, 251, 246, 217, 66, 1, 251, 193, + 217, 66, 1, 196, 32, 217, 66, 1, 250, 73, 217, 66, 1, 223, 25, 217, 66, + 1, 250, 121, 217, 66, 1, 251, 160, 217, 66, 1, 251, 165, 217, 66, 1, 251, + 156, 217, 66, 1, 251, 98, 217, 66, 1, 251, 81, 217, 66, 1, 250, 169, 217, + 66, 1, 223, 134, 217, 66, 1, 251, 15, 217, 66, 1, 250, 134, 217, 66, 1, + 250, 243, 217, 66, 1, 250, 239, 217, 66, 1, 250, 159, 217, 66, 1, 250, + 132, 217, 66, 1, 235, 18, 217, 66, 1, 222, 87, 217, 66, 1, 251, 178, 217, + 66, 251, 207, 77, 217, 66, 195, 19, 77, 217, 66, 231, 116, 77, 217, 66, + 208, 144, 200, 59, 1, 141, 214, 54, 200, 59, 1, 141, 223, 4, 200, 59, 1, + 141, 212, 88, 200, 59, 1, 141, 197, 128, 200, 59, 1, 141, 213, 66, 200, + 59, 1, 141, 213, 48, 200, 59, 1, 141, 248, 153, 200, 59, 1, 141, 166, + 200, 59, 1, 141, 219, 49, 200, 59, 1, 141, 219, 38, 200, 59, 1, 141, 201, + 170, 9, 1, 130, 4, 250, 120, 233, 29, 9, 1, 130, 4, 250, 120, 198, 49, + 50, 233, 29, 9, 1, 130, 4, 50, 82, 105, 9, 1, 130, 4, 45, 82, 105, 9, 1, + 130, 4, 250, 120, 222, 26, 9, 1, 130, 4, 250, 120, 248, 29, 50, 222, 26, + 9, 1, 130, 4, 250, 120, 206, 110, 75, 56, 9, 1, 130, 4, 250, 120, 50, + 206, 110, 236, 96, 9, 1, 130, 4, 250, 120, 45, 206, 110, 236, 96, 9, 1, + 130, 4, 250, 120, 206, 110, 75, 60, 9, 1, 130, 4, 75, 56, 9, 1, 130, 4, + 250, 120, 198, 49, 50, 233, 30, 24, 75, 56, 9, 1, 130, 4, 50, 82, 201, + 23, 24, 75, 56, 9, 1, 130, 4, 250, 120, 248, 29, 50, 222, 27, 24, 75, 56, + 9, 1, 130, 4, 250, 120, 198, 49, 50, 233, 30, 24, 45, 206, 183, 9, 1, + 130, 4, 50, 82, 201, 23, 24, 45, 206, 183, 9, 1, 130, 4, 250, 120, 248, + 29, 50, 222, 27, 24, 45, 206, 183, 9, 1, 130, 4, 250, 120, 50, 230, 24, + 9, 1, 130, 4, 250, 120, 45, 230, 24, 9, 199, 164, 4, 210, 241, 230, 24, + 9, 199, 164, 4, 210, 241, 193, 131, 9, 199, 164, 4, 103, 183, 60, 9, 1, + 198, 255, 192, 75, 9, 249, 22, 206, 110, 236, 96, 9, 207, 142, 206, 110, + 236, 96, 9, 1, 213, 12, 4, 223, 65, 2, 196, 8, 9, 1, 179, 4, 223, 65, 2, + 196, 9, 60, 9, 1, 199, 215, 4, 75, 60, 9, 1, 199, 215, 4, 115, 183, 60, + 9, 1, 221, 236, 4, 103, 183, 195, 82, 60, 9, 81, 199, 210, 9, 209, 1, 87, + 56, 9, 209, 173, 87, 56, 9, 2, 136, 193, 23, 251, 155, 9, 2, 131, 193, + 23, 223, 33, 9, 2, 131, 193, 23, 223, 151, 9, 2, 131, 193, 23, 199, 168, + 9, 217, 121, 193, 176, 9, 200, 177, 130, 215, 217, 9, 235, 84, 217, 120, + 9, 134, 217, 121, 138, 217, 120, 9, 1, 248, 196, 4, 2, 196, 9, 60, 9, 1, + 248, 196, 4, 230, 25, 56, 9, 1, 222, 235, 4, 103, 183, 56, 9, 1, 199, + 215, 4, 103, 183, 56, 9, 1, 233, 6, 4, 75, 248, 183, 24, 115, 183, 56, 9, + 1, 208, 83, 4, 75, 60, 9, 1, 220, 12, 4, 54, 164, 9, 1, 92, 4, 115, 183, + 56, 9, 1, 99, 4, 103, 183, 248, 183, 24, 230, 25, 56, 9, 1, 99, 4, 103, + 183, 248, 183, 24, 75, 56, 9, 1, 207, 67, 4, 218, 236, 9, 1, 193, 132, 4, + 75, 193, 52, 9, 1, 206, 137, 192, 75, 9, 1, 131, 251, 141, 9, 1, 237, + 213, 4, 115, 183, 60, 9, 1, 205, 188, 4, 115, 183, 60, 9, 1, 231, 191, 4, + 223, 65, 105, 9, 1, 201, 48, 193, 131, 9, 1, 191, 114, 4, 223, 65, 196, + 9, 56, 9, 1, 251, 179, 4, 115, 183, 60, 9, 1, 222, 80, 4, 75, 60, 9, 1, + 208, 83, 4, 75, 248, 183, 24, 213, 31, 183, 56, 9, 1, 248, 196, 4, 2, 92, + 56, 9, 1, 210, 33, 4, 2, 92, 56, 9, 1, 199, 110, 4, 2, 199, 110, 56, 9, + 1, 207, 67, 4, 2, 213, 12, 56, 9, 1, 99, 4, 103, 183, 248, 183, 24, 2, + 213, 12, 56, 9, 1, 251, 204, 233, 5, 9, 1, 251, 204, 208, 82, 9, 1, 251, + 204, 213, 11, 9, 1, 210, 33, 4, 2, 196, 8, 9, 1, 199, 110, 4, 2, 196, 8, + 9, 1, 197, 121, 4, 2, 196, 8, 9, 1, 199, 145, 4, 2, 196, 8, 9, 1, 221, + 236, 4, 2, 196, 8, 9, 1, 231, 50, 4, 115, 183, 56, 9, 1, 251, 204, 208, + 83, 4, 115, 183, 56, 9, 1, 222, 235, 4, 115, 183, 56, 9, 1, 222, 235, 4, + 115, 183, 60, 9, 1, 220, 12, 4, 2, 9, 1, 199, 215, 56, 9, 1, 230, 190, 9, + 2, 233, 33, 192, 75, 9, 2, 136, 233, 33, 192, 75, 9, 2, 136, 99, 249, 31, + 4, 103, 183, 60, 9, 2, 136, 193, 23, 205, 177, 9, 2, 136, 191, 116, 9, + 219, 245, 206, 110, 75, 56, 9, 219, 245, 206, 110, 75, 60, 9, 200, 202, + 60, 9, 219, 245, 242, 219, 60, 9, 219, 245, 206, 110, 75, 223, 90, 242, + 219, 60, 9, 2, 131, 193, 131, 9, 2, 136, 193, 23, 250, 236, 9, 2, 136, + 205, 187, 9, 2, 136, 251, 178, 9, 2, 136, 208, 82, 9, 2, 136, 213, 12, 4, + 222, 26, 9, 2, 131, 213, 12, 4, 222, 26, 9, 2, 136, 193, 23, 250, 131, 9, + 2, 136, 193, 23, 250, 168, 9, 2, 136, 193, 23, 251, 80, 9, 2, 136, 193, + 23, 205, 166, 9, 2, 136, 193, 23, 208, 46, 9, 2, 136, 193, 23, 193, 155, + 9, 2, 136, 232, 118, 217, 32, 9, 2, 136, 3, 205, 182, 9, 236, 173, 234, + 53, 80, 250, 80, 9, 152, 237, 201, 60, 9, 238, 124, 233, 29, 9, 238, 124, + 237, 200, 9, 238, 124, 222, 26, 9, 238, 124, 233, 27, 9, 238, 124, 237, + 198, 9, 238, 124, 222, 24, 9, 163, 91, 75, 56, 9, 163, 103, 183, 56, 9, + 163, 218, 237, 56, 9, 163, 91, 75, 60, 9, 163, 103, 183, 60, 9, 163, 218, + 237, 60, 9, 211, 66, 233, 27, 9, 211, 66, 237, 198, 9, 211, 66, 222, 24, + 9, 2, 136, 193, 131, 9, 233, 30, 4, 206, 183, 9, 233, 30, 4, 75, 56, 9, + 222, 27, 4, 75, 60, 9, 45, 250, 186, 56, 9, 50, 250, 186, 56, 9, 45, 250, + 186, 60, 9, 50, 250, 186, 60, 9, 54, 50, 250, 186, 56, 9, 54, 50, 250, + 186, 95, 4, 236, 96, 9, 50, 250, 186, 95, 4, 236, 96, 9, 237, 201, 4, + 236, 96, 9, 87, 202, 201, 213, 12, 231, 20, 104, 3, 223, 65, 247, 71, + 104, 3, 247, 71, 104, 3, 251, 20, 104, 3, 195, 32, 104, 1, 203, 35, 65, + 104, 1, 65, 104, 1, 252, 154, 104, 1, 70, 104, 1, 223, 170, 104, 1, 69, + 104, 1, 196, 26, 104, 1, 121, 148, 104, 1, 121, 170, 104, 1, 247, 74, 73, + 104, 1, 203, 35, 73, 104, 1, 73, 104, 1, 251, 184, 104, 1, 247, 74, 74, + 104, 1, 203, 35, 74, 104, 1, 74, 104, 1, 250, 113, 104, 1, 157, 104, 1, + 221, 190, 104, 1, 231, 203, 104, 1, 231, 54, 104, 1, 214, 54, 104, 1, + 247, 112, 104, 1, 246, 209, 104, 1, 223, 4, 104, 1, 222, 225, 104, 1, + 212, 88, 104, 1, 197, 128, 104, 1, 197, 116, 104, 1, 237, 146, 104, 1, + 237, 130, 104, 1, 213, 66, 104, 1, 199, 247, 104, 1, 199, 44, 104, 1, + 237, 241, 104, 1, 237, 23, 104, 1, 180, 104, 1, 213, 48, 104, 1, 168, + 104, 1, 209, 219, 104, 1, 249, 103, 104, 1, 248, 153, 104, 1, 172, 104, + 1, 169, 104, 1, 166, 104, 1, 206, 104, 104, 1, 171, 104, 1, 219, 49, 104, + 1, 219, 38, 104, 1, 195, 185, 104, 1, 203, 160, 104, 1, 201, 170, 104, 1, + 189, 104, 1, 144, 104, 18, 3, 211, 139, 104, 18, 3, 211, 74, 104, 3, 212, + 128, 104, 3, 250, 95, 104, 18, 3, 252, 154, 104, 18, 3, 70, 104, 18, 3, + 223, 170, 104, 18, 3, 69, 104, 18, 3, 196, 26, 104, 18, 3, 121, 148, 104, + 18, 3, 121, 206, 105, 104, 18, 3, 247, 74, 73, 104, 18, 3, 203, 35, 73, + 104, 18, 3, 73, 104, 18, 3, 251, 184, 104, 18, 3, 247, 74, 74, 104, 18, + 3, 203, 35, 74, 104, 18, 3, 74, 104, 18, 3, 250, 113, 104, 3, 195, 37, + 104, 18, 3, 208, 200, 73, 104, 18, 3, 250, 90, 104, 211, 102, 104, 201, + 33, 3, 196, 150, 104, 201, 33, 3, 251, 22, 104, 230, 177, 252, 8, 104, + 251, 251, 252, 8, 104, 18, 3, 247, 74, 177, 73, 104, 18, 3, 196, 148, + 104, 18, 3, 196, 25, 104, 1, 208, 89, 104, 1, 221, 169, 104, 1, 231, 29, + 104, 1, 191, 123, 104, 1, 237, 135, 104, 1, 207, 1, 104, 1, 233, 68, 104, + 1, 191, 175, 104, 1, 121, 206, 105, 104, 1, 121, 219, 50, 104, 18, 3, + 121, 170, 104, 18, 3, 121, 219, 50, 104, 237, 193, 104, 54, 237, 193, + 104, 17, 191, 77, 104, 17, 108, 104, 17, 109, 104, 17, 139, 104, 17, 137, + 104, 17, 153, 104, 17, 173, 104, 17, 181, 104, 17, 176, 104, 17, 184, + 104, 252, 16, 57, 104, 3, 136, 201, 241, 236, 96, 104, 1, 247, 74, 65, + 104, 1, 211, 139, 104, 1, 211, 74, 104, 1, 250, 90, 104, 1, 196, 148, + 104, 1, 196, 25, 104, 1, 217, 24, 237, 146, 104, 1, 191, 71, 104, 1, 88, + 169, 104, 1, 231, 90, 104, 1, 222, 203, 104, 1, 230, 231, 201, 58, 104, + 1, 237, 136, 104, 1, 249, 3, 248, 175, 251, 49, 248, 175, 3, 247, 71, + 248, 175, 3, 251, 20, 248, 175, 3, 195, 32, 248, 175, 1, 65, 248, 175, 1, + 252, 154, 248, 175, 1, 70, 248, 175, 1, 223, 170, 248, 175, 1, 69, 248, + 175, 1, 196, 26, 248, 175, 1, 121, 148, 248, 175, 1, 121, 170, 248, 175, + 1, 73, 248, 175, 1, 251, 184, 248, 175, 1, 74, 248, 175, 1, 250, 113, + 248, 175, 1, 157, 248, 175, 1, 221, 190, 248, 175, 1, 231, 203, 248, 175, + 1, 231, 54, 248, 175, 1, 214, 54, 248, 175, 1, 247, 112, 248, 175, 1, + 246, 209, 248, 175, 1, 223, 4, 248, 175, 1, 222, 225, 248, 175, 1, 212, + 88, 248, 175, 1, 197, 128, 248, 175, 1, 197, 116, 248, 175, 1, 237, 146, + 248, 175, 1, 237, 130, 248, 175, 1, 213, 66, 248, 175, 1, 199, 247, 248, + 175, 1, 199, 44, 248, 175, 1, 237, 241, 248, 175, 1, 237, 23, 248, 175, + 1, 180, 248, 175, 1, 168, 248, 175, 1, 209, 219, 248, 175, 1, 249, 103, + 248, 175, 1, 248, 153, 248, 175, 1, 172, 248, 175, 1, 169, 248, 175, 1, + 166, 248, 175, 1, 171, 248, 175, 1, 203, 160, 248, 175, 1, 201, 170, 248, + 175, 1, 189, 248, 175, 1, 144, 248, 175, 3, 212, 128, 248, 175, 3, 250, + 95, 248, 175, 18, 3, 252, 154, 248, 175, 18, 3, 70, 248, 175, 18, 3, 223, + 170, 248, 175, 18, 3, 69, 248, 175, 18, 3, 196, 26, 248, 175, 18, 3, 121, + 148, 248, 175, 18, 3, 121, 206, 105, 248, 175, 18, 3, 73, 248, 175, 18, + 3, 251, 184, 248, 175, 18, 3, 74, 248, 175, 18, 3, 250, 113, 248, 175, 3, + 195, 37, 248, 175, 1, 221, 179, 199, 247, 248, 175, 250, 114, 219, 174, + 77, 248, 175, 1, 206, 104, 248, 175, 1, 207, 1, 248, 175, 1, 191, 175, + 248, 175, 1, 121, 206, 105, 248, 175, 1, 121, 219, 50, 248, 175, 18, 3, + 121, 170, 248, 175, 18, 3, 121, 219, 50, 248, 175, 17, 191, 77, 248, 175, + 17, 108, 248, 175, 17, 109, 248, 175, 17, 139, 248, 175, 17, 137, 248, + 175, 17, 153, 248, 175, 17, 173, 248, 175, 17, 181, 248, 175, 17, 176, + 248, 175, 17, 184, 248, 175, 1, 207, 181, 4, 82, 236, 249, 248, 175, 1, + 207, 181, 4, 110, 236, 249, 248, 175, 206, 31, 77, 248, 175, 206, 31, 57, + 248, 175, 238, 123, 212, 120, 108, 248, 175, 238, 123, 212, 120, 109, + 248, 175, 238, 123, 212, 120, 139, 248, 175, 238, 123, 212, 120, 137, + 248, 175, 238, 123, 212, 120, 91, 219, 157, 199, 34, 199, 29, 237, 54, + 248, 175, 238, 123, 237, 55, 202, 125, 248, 175, 223, 26, 248, 175, 231, + 170, 77, 248, 175, 1, 195, 147, 251, 20, 248, 175, 252, 16, 57, 248, 175, + 205, 133, 77, 230, 111, 3, 251, 245, 248, 119, 230, 111, 3, 248, 119, + 230, 111, 3, 195, 32, 230, 111, 1, 65, 230, 111, 1, 252, 154, 230, 111, + 1, 70, 230, 111, 1, 223, 170, 230, 111, 1, 69, 230, 111, 1, 196, 26, 230, + 111, 1, 234, 145, 230, 111, 1, 251, 184, 230, 111, 1, 211, 76, 230, 111, + 1, 250, 113, 230, 111, 1, 157, 230, 111, 1, 221, 190, 230, 111, 1, 231, + 203, 230, 111, 1, 231, 54, 230, 111, 1, 214, 54, 230, 111, 1, 247, 112, + 230, 111, 1, 246, 209, 230, 111, 1, 223, 4, 230, 111, 1, 222, 225, 230, + 111, 1, 212, 88, 230, 111, 1, 197, 128, 230, 111, 1, 197, 116, 230, 111, + 1, 237, 146, 230, 111, 1, 237, 130, 230, 111, 1, 213, 66, 230, 111, 1, + 199, 247, 230, 111, 1, 199, 44, 230, 111, 1, 237, 241, 230, 111, 1, 237, + 23, 230, 111, 1, 180, 230, 111, 1, 168, 230, 111, 1, 209, 219, 230, 111, + 1, 249, 103, 230, 111, 1, 248, 153, 230, 111, 1, 172, 230, 111, 1, 169, + 230, 111, 1, 166, 230, 111, 1, 171, 230, 111, 1, 219, 49, 230, 111, 1, + 195, 185, 230, 111, 1, 203, 160, 230, 111, 1, 189, 230, 111, 1, 144, 230, + 111, 3, 212, 128, 230, 111, 18, 3, 252, 154, 230, 111, 18, 3, 70, 230, + 111, 18, 3, 223, 170, 230, 111, 18, 3, 69, 230, 111, 18, 3, 196, 26, 230, + 111, 18, 3, 234, 145, 230, 111, 18, 3, 251, 184, 230, 111, 18, 3, 211, + 76, 230, 111, 18, 3, 250, 113, 230, 111, 3, 195, 37, 230, 111, 3, 196, + 153, 230, 111, 1, 221, 169, 230, 111, 1, 231, 29, 230, 111, 1, 191, 123, + 230, 111, 1, 206, 104, 230, 111, 1, 233, 68, 230, 111, 17, 191, 77, 230, + 111, 17, 108, 230, 111, 17, 109, 230, 111, 17, 139, 230, 111, 17, 137, + 230, 111, 17, 153, 230, 111, 17, 173, 230, 111, 17, 181, 230, 111, 17, + 176, 230, 111, 17, 184, 230, 111, 198, 128, 230, 111, 251, 244, 230, 111, + 223, 47, 230, 111, 196, 54, 230, 111, 234, 105, 211, 81, 230, 111, 3, + 192, 115, 230, 111, 252, 16, 57, 230, 128, 3, 247, 71, 230, 128, 3, 251, + 20, 230, 128, 3, 195, 32, 230, 128, 1, 65, 230, 128, 1, 252, 154, 230, + 128, 1, 70, 230, 128, 1, 223, 170, 230, 128, 1, 69, 230, 128, 1, 196, 26, + 230, 128, 1, 121, 148, 230, 128, 1, 121, 170, 230, 128, 18, 247, 74, 73, + 230, 128, 1, 73, 230, 128, 1, 251, 184, 230, 128, 18, 247, 74, 74, 230, + 128, 1, 74, 230, 128, 1, 250, 113, 230, 128, 1, 157, 230, 128, 1, 221, + 190, 230, 128, 1, 231, 203, 230, 128, 1, 231, 54, 230, 128, 1, 214, 54, + 230, 128, 1, 247, 112, 230, 128, 1, 246, 209, 230, 128, 1, 223, 4, 230, + 128, 1, 222, 225, 230, 128, 1, 212, 88, 230, 128, 1, 197, 128, 230, 128, + 1, 197, 116, 230, 128, 1, 237, 146, 230, 128, 1, 237, 130, 230, 128, 1, + 213, 66, 230, 128, 1, 199, 247, 230, 128, 1, 199, 44, 230, 128, 1, 237, + 241, 230, 128, 1, 237, 23, 230, 128, 1, 180, 230, 128, 1, 168, 230, 128, + 1, 209, 219, 230, 128, 1, 249, 103, 230, 128, 1, 248, 153, 230, 128, 1, + 172, 230, 128, 1, 169, 230, 128, 1, 166, 230, 128, 1, 171, 230, 128, 1, + 219, 49, 230, 128, 1, 195, 185, 230, 128, 1, 203, 160, 230, 128, 1, 201, + 170, 230, 128, 1, 189, 230, 128, 1, 144, 230, 128, 3, 212, 128, 230, 128, + 3, 250, 95, 230, 128, 18, 3, 252, 154, 230, 128, 18, 3, 70, 230, 128, 18, + 3, 223, 170, 230, 128, 18, 3, 69, 230, 128, 18, 3, 196, 26, 230, 128, 18, + 3, 121, 148, 230, 128, 18, 3, 121, 206, 105, 230, 128, 18, 3, 247, 74, + 73, 230, 128, 18, 3, 73, 230, 128, 18, 3, 251, 184, 230, 128, 18, 3, 247, + 74, 74, 230, 128, 18, 3, 74, 230, 128, 18, 3, 250, 113, 230, 128, 3, 195, + 37, 230, 128, 211, 102, 230, 128, 1, 121, 206, 105, 230, 128, 1, 121, + 219, 50, 230, 128, 18, 3, 121, 170, 230, 128, 18, 3, 121, 219, 50, 230, + 128, 17, 191, 77, 230, 128, 17, 108, 230, 128, 17, 109, 230, 128, 17, + 139, 230, 128, 17, 137, 230, 128, 17, 153, 230, 128, 17, 173, 230, 128, + 17, 181, 230, 128, 17, 176, 230, 128, 17, 184, 230, 128, 252, 16, 57, + 230, 128, 206, 31, 57, 230, 128, 1, 191, 71, 230, 128, 3, 200, 201, 230, + 128, 3, 203, 150, 230, 128, 3, 217, 118, 230, 128, 3, 198, 219, 212, 129, + 56, 230, 128, 3, 242, 219, 212, 129, 56, 230, 128, 3, 197, 11, 212, 129, + 56, 211, 35, 3, 247, 71, 211, 35, 3, 251, 20, 211, 35, 3, 195, 32, 211, + 35, 1, 65, 211, 35, 1, 252, 154, 211, 35, 1, 70, 211, 35, 1, 223, 170, + 211, 35, 1, 69, 211, 35, 1, 196, 26, 211, 35, 1, 121, 148, 211, 35, 1, + 121, 170, 211, 35, 1, 73, 211, 35, 1, 251, 184, 211, 35, 1, 74, 211, 35, + 1, 250, 113, 211, 35, 1, 157, 211, 35, 1, 221, 190, 211, 35, 1, 231, 203, + 211, 35, 1, 231, 54, 211, 35, 1, 214, 54, 211, 35, 1, 247, 112, 211, 35, + 1, 246, 209, 211, 35, 1, 223, 4, 211, 35, 1, 222, 225, 211, 35, 1, 212, + 88, 211, 35, 1, 197, 128, 211, 35, 1, 197, 116, 211, 35, 1, 237, 146, + 211, 35, 1, 237, 130, 211, 35, 1, 213, 66, 211, 35, 1, 199, 247, 211, 35, + 1, 199, 44, 211, 35, 1, 237, 241, 211, 35, 1, 237, 23, 211, 35, 1, 180, + 211, 35, 1, 168, 211, 35, 1, 209, 219, 211, 35, 1, 249, 103, 211, 35, 1, + 248, 153, 211, 35, 1, 172, 211, 35, 1, 169, 211, 35, 1, 166, 211, 35, 1, + 171, 211, 35, 1, 219, 49, 211, 35, 1, 195, 185, 211, 35, 1, 203, 160, + 211, 35, 1, 201, 170, 211, 35, 1, 189, 211, 35, 1, 144, 211, 35, 3, 212, + 128, 211, 35, 3, 250, 95, 211, 35, 18, 3, 252, 154, 211, 35, 18, 3, 70, + 211, 35, 18, 3, 223, 170, 211, 35, 18, 3, 69, 211, 35, 18, 3, 196, 26, + 211, 35, 18, 3, 121, 148, 211, 35, 18, 3, 121, 206, 105, 211, 35, 18, 3, + 73, 211, 35, 18, 3, 251, 184, 211, 35, 18, 3, 74, 211, 35, 18, 3, 250, + 113, 211, 35, 3, 195, 37, 211, 35, 3, 210, 244, 211, 35, 251, 185, 219, + 174, 77, 211, 35, 250, 114, 219, 174, 77, 211, 35, 1, 206, 104, 211, 35, + 1, 207, 1, 211, 35, 1, 191, 175, 211, 35, 1, 121, 206, 105, 211, 35, 1, + 121, 219, 50, 211, 35, 18, 3, 121, 170, 211, 35, 18, 3, 121, 219, 50, + 211, 35, 17, 191, 77, 211, 35, 17, 108, 211, 35, 17, 109, 211, 35, 17, + 139, 211, 35, 17, 137, 211, 35, 17, 153, 211, 35, 17, 173, 211, 35, 17, + 181, 211, 35, 17, 176, 211, 35, 17, 184, 211, 35, 223, 26, 211, 35, 1, + 193, 187, 211, 35, 232, 80, 91, 208, 17, 211, 35, 232, 80, 91, 230, 37, + 211, 35, 232, 80, 115, 208, 15, 211, 35, 232, 80, 91, 202, 123, 211, 35, + 232, 80, 91, 234, 116, 211, 35, 232, 80, 115, 202, 120, 44, 3, 251, 20, + 44, 3, 195, 32, 44, 1, 65, 44, 1, 252, 154, 44, 1, 70, 44, 1, 223, 170, + 44, 1, 69, 44, 1, 196, 26, 44, 1, 73, 44, 1, 234, 145, 44, 1, 251, 184, + 44, 1, 74, 44, 1, 211, 76, 44, 1, 250, 113, 44, 1, 157, 44, 1, 214, 54, + 44, 1, 247, 112, 44, 1, 223, 4, 44, 1, 212, 88, 44, 1, 197, 128, 44, 1, + 213, 66, 44, 1, 199, 247, 44, 1, 180, 44, 1, 213, 48, 44, 1, 168, 44, 1, + 172, 44, 1, 169, 44, 1, 166, 44, 1, 206, 104, 44, 1, 171, 44, 1, 219, 49, + 44, 1, 219, 38, 44, 1, 195, 185, 44, 1, 203, 160, 44, 1, 201, 170, 44, 1, + 189, 44, 1, 144, 44, 18, 3, 252, 154, 44, 18, 3, 70, 44, 18, 3, 223, 170, + 44, 18, 3, 69, 44, 18, 3, 196, 26, 44, 18, 3, 73, 44, 18, 3, 234, 145, + 44, 18, 3, 251, 184, 44, 18, 3, 74, 44, 18, 3, 211, 76, 44, 18, 3, 250, + 113, 44, 3, 195, 37, 44, 211, 102, 44, 250, 114, 219, 174, 77, 44, 17, + 191, 77, 44, 17, 108, 44, 17, 109, 44, 17, 139, 44, 17, 137, 44, 17, 153, + 44, 17, 173, 44, 17, 181, 44, 17, 176, 44, 17, 184, 44, 31, 199, 90, 44, + 31, 91, 228, 109, 44, 31, 91, 188, 44, 237, 159, 57, 44, 215, 197, 57, + 44, 192, 78, 57, 44, 237, 97, 57, 44, 238, 183, 57, 44, 250, 170, 95, 57, + 44, 206, 31, 57, 44, 31, 57, 199, 94, 3, 33, 247, 72, 56, 199, 94, 3, + 247, 71, 199, 94, 3, 251, 20, 199, 94, 3, 195, 32, 199, 94, 3, 33, 251, + 21, 56, 199, 94, 1, 65, 199, 94, 1, 252, 154, 199, 94, 1, 70, 199, 94, 1, + 223, 170, 199, 94, 1, 69, 199, 94, 1, 196, 26, 199, 94, 1, 121, 148, 199, + 94, 1, 121, 170, 199, 94, 1, 73, 199, 94, 1, 234, 145, 199, 94, 1, 251, + 184, 199, 94, 1, 74, 199, 94, 1, 211, 76, 199, 94, 1, 250, 113, 199, 94, + 1, 157, 199, 94, 1, 221, 190, 199, 94, 1, 231, 203, 199, 94, 1, 231, 54, + 199, 94, 1, 214, 54, 199, 94, 1, 247, 112, 199, 94, 1, 246, 209, 199, 94, + 1, 223, 4, 199, 94, 1, 222, 225, 199, 94, 1, 212, 88, 199, 94, 1, 197, + 128, 199, 94, 1, 197, 116, 199, 94, 1, 237, 146, 199, 94, 1, 237, 130, + 199, 94, 1, 213, 66, 199, 94, 1, 199, 247, 199, 94, 1, 199, 44, 199, 94, + 1, 237, 241, 199, 94, 1, 237, 23, 199, 94, 1, 180, 199, 94, 1, 168, 199, + 94, 1, 209, 219, 199, 94, 1, 249, 103, 199, 94, 1, 248, 153, 199, 94, 1, + 172, 199, 94, 1, 169, 199, 94, 1, 166, 199, 94, 1, 206, 104, 199, 94, 1, + 171, 199, 94, 1, 219, 49, 199, 94, 1, 219, 38, 199, 94, 1, 195, 185, 199, + 94, 1, 203, 160, 199, 94, 1, 201, 170, 199, 94, 1, 189, 199, 94, 1, 144, + 199, 94, 3, 212, 128, 199, 94, 3, 250, 95, 199, 94, 18, 3, 252, 154, 199, + 94, 18, 3, 70, 199, 94, 18, 3, 223, 170, 199, 94, 18, 3, 69, 199, 94, 18, + 3, 196, 26, 199, 94, 18, 3, 121, 148, 199, 94, 18, 3, 121, 206, 105, 199, + 94, 18, 3, 73, 199, 94, 18, 3, 234, 145, 199, 94, 18, 3, 251, 184, 199, + 94, 18, 3, 74, 199, 94, 18, 3, 211, 76, 199, 94, 18, 3, 250, 113, 199, + 94, 3, 195, 37, 199, 94, 219, 174, 77, 199, 94, 251, 185, 219, 174, 77, + 199, 94, 1, 197, 164, 199, 94, 1, 234, 247, 199, 94, 1, 206, 85, 199, 94, + 1, 214, 218, 209, 39, 199, 94, 1, 121, 206, 105, 199, 94, 1, 121, 219, + 50, 199, 94, 18, 3, 121, 170, 199, 94, 18, 3, 121, 219, 50, 199, 94, 17, + 191, 77, 199, 94, 17, 108, 199, 94, 17, 109, 199, 94, 17, 139, 199, 94, + 17, 137, 199, 94, 17, 153, 199, 94, 17, 173, 199, 94, 17, 181, 199, 94, + 17, 176, 199, 94, 17, 184, 199, 94, 3, 202, 205, 199, 94, 232, 80, 17, + 191, 78, 39, 211, 143, 208, 246, 80, 137, 199, 94, 232, 80, 17, 91, 39, + 211, 143, 208, 246, 80, 137, 199, 94, 232, 80, 17, 103, 39, 211, 143, + 208, 246, 80, 137, 199, 94, 232, 80, 17, 115, 39, 211, 143, 208, 246, 80, + 137, 199, 94, 232, 80, 17, 91, 39, 233, 188, 208, 246, 80, 137, 199, 94, + 232, 80, 17, 103, 39, 233, 188, 208, 246, 80, 137, 199, 94, 232, 80, 17, + 115, 39, 233, 188, 208, 246, 80, 137, 199, 94, 3, 197, 44, 222, 55, 3, + 201, 241, 247, 71, 222, 55, 3, 247, 71, 222, 55, 3, 251, 20, 222, 55, 3, + 195, 32, 222, 55, 3, 202, 205, 222, 55, 1, 65, 222, 55, 1, 252, 154, 222, + 55, 1, 70, 222, 55, 1, 223, 170, 222, 55, 1, 69, 222, 55, 1, 196, 26, + 222, 55, 1, 121, 148, 222, 55, 1, 121, 170, 222, 55, 1, 73, 222, 55, 1, + 234, 145, 222, 55, 1, 251, 184, 222, 55, 1, 74, 222, 55, 1, 211, 76, 222, + 55, 1, 250, 113, 222, 55, 1, 157, 222, 55, 1, 221, 190, 222, 55, 1, 231, + 203, 222, 55, 1, 231, 54, 222, 55, 1, 214, 54, 222, 55, 1, 247, 112, 222, + 55, 1, 246, 209, 222, 55, 1, 223, 4, 222, 55, 1, 222, 225, 222, 55, 1, + 212, 88, 222, 55, 1, 197, 128, 222, 55, 1, 197, 116, 222, 55, 1, 237, + 146, 222, 55, 1, 237, 130, 222, 55, 1, 213, 66, 222, 55, 1, 199, 247, + 222, 55, 1, 199, 44, 222, 55, 1, 237, 241, 222, 55, 1, 237, 23, 222, 55, + 1, 180, 222, 55, 1, 168, 222, 55, 1, 209, 219, 222, 55, 1, 249, 103, 222, + 55, 1, 248, 153, 222, 55, 1, 172, 222, 55, 1, 169, 222, 55, 1, 166, 222, + 55, 1, 206, 104, 222, 55, 1, 171, 222, 55, 1, 219, 49, 222, 55, 1, 195, + 185, 222, 55, 1, 203, 160, 222, 55, 1, 201, 170, 222, 55, 1, 189, 222, + 55, 1, 144, 222, 55, 3, 212, 128, 222, 55, 3, 250, 95, 222, 55, 18, 3, + 252, 154, 222, 55, 18, 3, 70, 222, 55, 18, 3, 223, 170, 222, 55, 18, 3, + 69, 222, 55, 18, 3, 196, 26, 222, 55, 18, 3, 121, 148, 222, 55, 18, 3, + 121, 206, 105, 222, 55, 18, 3, 73, 222, 55, 18, 3, 234, 145, 222, 55, 18, + 3, 251, 184, 222, 55, 18, 3, 74, 222, 55, 18, 3, 211, 76, 222, 55, 18, 3, + 250, 113, 222, 55, 3, 195, 37, 222, 55, 219, 174, 77, 222, 55, 251, 185, + 219, 174, 77, 222, 55, 1, 214, 218, 209, 39, 222, 55, 1, 233, 68, 222, + 55, 1, 121, 206, 105, 222, 55, 1, 121, 219, 50, 222, 55, 18, 3, 121, 170, + 222, 55, 18, 3, 121, 219, 50, 222, 55, 17, 191, 77, 222, 55, 17, 108, + 222, 55, 17, 109, 222, 55, 17, 139, 222, 55, 17, 137, 222, 55, 17, 153, + 222, 55, 17, 173, 222, 55, 17, 181, 222, 55, 17, 176, 222, 55, 17, 184, + 222, 55, 3, 222, 210, 222, 55, 3, 196, 71, 141, 3, 33, 251, 21, 56, 141, + 3, 247, 71, 141, 3, 251, 20, 141, 3, 195, 32, 141, 1, 195, 147, 251, 20, + 141, 1, 65, 141, 1, 252, 154, 141, 1, 70, 141, 1, 223, 170, 141, 1, 69, + 141, 1, 196, 26, 141, 1, 121, 148, 141, 1, 121, 170, 141, 1, 73, 141, 1, + 234, 145, 141, 1, 251, 184, 141, 1, 74, 141, 1, 211, 76, 141, 1, 250, + 113, 141, 1, 157, 141, 1, 221, 190, 141, 1, 231, 203, 141, 1, 231, 54, + 141, 1, 214, 54, 141, 1, 247, 112, 141, 1, 246, 209, 141, 1, 223, 4, 141, + 1, 222, 225, 141, 1, 212, 88, 141, 1, 197, 128, 141, 1, 197, 116, 141, 1, + 237, 146, 141, 1, 237, 130, 141, 1, 213, 66, 141, 1, 199, 247, 141, 1, + 199, 44, 141, 1, 237, 241, 141, 1, 237, 23, 141, 1, 180, 141, 1, 213, 48, + 141, 1, 168, 141, 1, 209, 219, 141, 1, 249, 103, 141, 1, 248, 153, 141, + 1, 172, 141, 1, 169, 141, 1, 166, 141, 1, 206, 104, 141, 1, 171, 141, 1, + 219, 49, 141, 1, 219, 38, 141, 1, 195, 185, 141, 1, 203, 160, 141, 1, + 201, 170, 141, 1, 189, 141, 1, 144, 141, 1, 197, 97, 141, 3, 81, 249, 38, + 195, 37, 141, 3, 242, 212, 195, 37, 141, 3, 250, 95, 141, 18, 3, 252, + 154, 141, 18, 3, 70, 141, 18, 3, 223, 170, 141, 18, 3, 69, 141, 18, 3, + 196, 26, 141, 18, 3, 121, 148, 141, 18, 3, 121, 206, 105, 141, 18, 3, 73, + 141, 18, 3, 234, 145, 141, 18, 3, 251, 184, 141, 18, 3, 74, 141, 18, 3, + 211, 76, 141, 18, 3, 250, 113, 141, 3, 195, 37, 141, 1, 75, 207, 40, 141, + 3, 210, 120, 141, 1, 243, 36, 218, 147, 141, 1, 243, 36, 192, 159, 141, + 1, 243, 36, 219, 39, 141, 250, 114, 219, 174, 77, 141, 232, 80, 91, 211, + 89, 141, 232, 80, 91, 232, 100, 141, 232, 80, 115, 234, 112, 141, 232, + 80, 91, 197, 31, 141, 232, 80, 91, 199, 81, 141, 232, 80, 115, 197, 30, + 141, 232, 80, 91, 232, 233, 141, 1, 250, 220, 223, 170, 141, 1, 121, 206, + 105, 141, 1, 121, 219, 50, 141, 18, 3, 121, 170, 141, 18, 3, 121, 219, + 50, 141, 17, 191, 77, 141, 17, 108, 141, 17, 109, 141, 17, 139, 141, 17, + 137, 141, 17, 153, 141, 17, 173, 141, 17, 181, 141, 17, 176, 141, 17, + 184, 141, 31, 199, 90, 141, 31, 91, 228, 109, 141, 31, 91, 188, 141, 232, + 80, 91, 208, 17, 141, 232, 80, 91, 230, 37, 141, 232, 80, 115, 208, 15, + 141, 232, 80, 91, 202, 123, 141, 232, 80, 91, 234, 116, 141, 232, 80, + 115, 202, 120, 141, 237, 164, 77, 141, 1, 243, 36, 213, 67, 141, 1, 243, + 36, 215, 47, 141, 1, 243, 36, 206, 105, 141, 1, 243, 36, 170, 141, 1, + 243, 36, 219, 50, 141, 1, 243, 36, 222, 125, 165, 3, 247, 71, 165, 3, + 251, 19, 165, 3, 195, 31, 165, 1, 250, 79, 165, 1, 252, 107, 165, 1, 251, + 209, 165, 1, 251, 224, 165, 1, 223, 15, 165, 1, 223, 169, 165, 1, 196, + 16, 165, 1, 196, 20, 165, 1, 223, 42, 165, 1, 223, 43, 165, 1, 223, 154, + 165, 1, 223, 156, 165, 1, 233, 155, 165, 1, 234, 140, 165, 1, 251, 167, + 165, 1, 210, 231, 165, 1, 211, 69, 165, 1, 250, 98, 165, 1, 251, 112, + 222, 2, 165, 1, 217, 98, 222, 2, 165, 1, 251, 112, 231, 148, 165, 1, 217, + 98, 231, 148, 165, 1, 222, 54, 214, 233, 165, 1, 205, 127, 231, 148, 165, + 1, 251, 112, 247, 20, 165, 1, 217, 98, 247, 20, 165, 1, 251, 112, 222, + 241, 165, 1, 217, 98, 222, 241, 165, 1, 199, 236, 214, 233, 165, 1, 199, + 236, 205, 126, 214, 234, 165, 1, 205, 127, 222, 241, 165, 1, 251, 112, + 197, 124, 165, 1, 217, 98, 197, 124, 165, 1, 251, 112, 237, 137, 165, 1, + 217, 98, 237, 137, 165, 1, 215, 78, 214, 183, 165, 1, 205, 127, 237, 137, + 165, 1, 251, 112, 199, 148, 165, 1, 217, 98, 199, 148, 165, 1, 251, 112, + 237, 157, 165, 1, 217, 98, 237, 157, 165, 1, 237, 189, 214, 183, 165, 1, + 205, 127, 237, 157, 165, 1, 251, 112, 210, 61, 165, 1, 217, 98, 210, 61, + 165, 1, 251, 112, 249, 5, 165, 1, 217, 98, 249, 5, 165, 1, 217, 0, 165, + 1, 251, 92, 249, 5, 165, 1, 192, 85, 165, 1, 207, 116, 165, 1, 237, 189, + 219, 223, 165, 1, 195, 153, 165, 1, 199, 236, 205, 97, 165, 1, 215, 78, + 205, 97, 165, 1, 237, 189, 205, 97, 165, 1, 229, 219, 165, 1, 215, 78, + 219, 223, 165, 1, 233, 20, 165, 3, 251, 154, 165, 18, 3, 251, 219, 165, + 18, 3, 221, 215, 251, 226, 165, 18, 3, 236, 222, 251, 226, 165, 18, 3, + 221, 215, 223, 39, 165, 18, 3, 236, 222, 223, 39, 165, 18, 3, 221, 215, + 210, 209, 165, 18, 3, 236, 222, 210, 209, 165, 18, 3, 231, 192, 165, 18, + 3, 221, 22, 165, 18, 3, 236, 222, 221, 22, 165, 18, 3, 221, 24, 237, 75, + 165, 18, 3, 221, 23, 230, 59, 251, 219, 165, 18, 3, 221, 23, 230, 59, + 236, 222, 251, 219, 165, 18, 3, 221, 23, 230, 59, 231, 147, 165, 18, 3, + 231, 147, 165, 219, 62, 17, 191, 77, 165, 219, 62, 17, 108, 165, 219, 62, + 17, 109, 165, 219, 62, 17, 139, 165, 219, 62, 17, 137, 165, 219, 62, 17, + 153, 165, 219, 62, 17, 173, 165, 219, 62, 17, 181, 165, 219, 62, 17, 176, + 165, 219, 62, 17, 184, 165, 18, 3, 236, 222, 231, 192, 165, 18, 3, 236, + 222, 231, 147, 165, 208, 145, 220, 185, 199, 39, 246, 192, 221, 44, 222, + 75, 199, 39, 246, 192, 221, 160, 221, 184, 199, 39, 246, 192, 221, 160, + 221, 150, 199, 39, 246, 192, 221, 160, 221, 145, 199, 39, 246, 192, 221, + 160, 221, 155, 199, 39, 246, 192, 221, 160, 207, 138, 199, 39, 246, 192, + 213, 236, 213, 223, 199, 39, 246, 192, 243, 21, 246, 198, 199, 39, 246, + 192, 243, 21, 243, 31, 199, 39, 246, 192, 243, 21, 246, 197, 199, 39, + 246, 192, 202, 42, 202, 41, 199, 39, 246, 192, 243, 21, 243, 17, 199, 39, + 246, 192, 192, 13, 192, 20, 199, 39, 246, 192, 236, 130, 246, 206, 199, + 39, 246, 192, 118, 210, 77, 199, 39, 246, 192, 198, 237, 199, 33, 199, + 39, 246, 192, 198, 237, 214, 208, 199, 39, 246, 192, 198, 237, 209, 179, + 199, 39, 246, 192, 213, 31, 214, 88, 199, 39, 246, 192, 236, 130, 237, + 76, 199, 39, 246, 192, 118, 199, 179, 199, 39, 246, 192, 198, 237, 198, + 202, 199, 39, 246, 192, 198, 237, 199, 40, 199, 39, 246, 192, 198, 237, + 198, 231, 199, 39, 246, 192, 213, 31, 212, 165, 199, 39, 246, 192, 248, + 64, 249, 68, 199, 39, 246, 192, 209, 66, 209, 102, 199, 39, 246, 192, + 209, 191, 209, 181, 199, 39, 246, 192, 232, 136, 233, 68, 199, 39, 246, + 192, 209, 191, 209, 212, 199, 39, 246, 192, 232, 136, 233, 39, 199, 39, + 246, 192, 209, 191, 205, 141, 199, 39, 246, 192, 215, 252, 172, 199, 39, + 246, 192, 192, 13, 192, 116, 199, 39, 246, 192, 206, 158, 206, 56, 199, + 39, 246, 192, 206, 63, 199, 39, 246, 192, 219, 20, 219, 81, 199, 39, 246, + 192, 218, 203, 199, 39, 246, 192, 193, 49, 193, 172, 199, 39, 246, 192, + 202, 42, 205, 162, 199, 39, 246, 192, 202, 42, 206, 27, 199, 39, 246, + 192, 202, 42, 200, 246, 199, 39, 246, 192, 228, 248, 229, 90, 199, 39, + 246, 192, 219, 20, 242, 255, 199, 39, 246, 192, 186, 251, 71, 199, 39, + 246, 192, 228, 248, 213, 21, 199, 39, 246, 192, 210, 184, 199, 39, 246, + 192, 205, 121, 65, 199, 39, 246, 192, 217, 92, 230, 22, 199, 39, 246, + 192, 205, 121, 252, 154, 199, 39, 246, 192, 205, 121, 251, 98, 199, 39, + 246, 192, 205, 121, 70, 199, 39, 246, 192, 205, 121, 223, 170, 199, 39, + 246, 192, 205, 121, 196, 148, 199, 39, 246, 192, 205, 121, 196, 145, 199, + 39, 246, 192, 205, 121, 69, 199, 39, 246, 192, 205, 121, 196, 26, 199, + 39, 246, 192, 209, 193, 199, 39, 238, 123, 16, 249, 69, 199, 39, 246, + 192, 205, 121, 73, 199, 39, 246, 192, 205, 121, 251, 229, 199, 39, 246, + 192, 205, 121, 74, 199, 39, 246, 192, 205, 121, 251, 185, 217, 86, 199, + 39, 246, 192, 205, 121, 251, 185, 217, 87, 199, 39, 246, 192, 220, 15, + 199, 39, 246, 192, 217, 83, 199, 39, 246, 192, 217, 84, 199, 39, 246, + 192, 217, 92, 234, 104, 199, 39, 246, 192, 217, 92, 198, 236, 199, 39, + 246, 192, 217, 92, 197, 240, 199, 39, 246, 192, 217, 92, 243, 84, 199, + 39, 246, 192, 199, 31, 199, 39, 246, 192, 213, 169, 199, 39, 246, 192, + 192, 110, 199, 39, 246, 192, 232, 125, 199, 39, 17, 191, 77, 199, 39, 17, + 108, 199, 39, 17, 109, 199, 39, 17, 139, 199, 39, 17, 137, 199, 39, 17, + 153, 199, 39, 17, 173, 199, 39, 17, 181, 199, 39, 17, 176, 199, 39, 17, + 184, 199, 39, 246, 192, 251, 66, 199, 39, 246, 192, 221, 156, 219, 249, + 1, 221, 43, 219, 249, 1, 221, 160, 200, 190, 219, 249, 1, 221, 160, 199, + 192, 219, 249, 1, 210, 177, 231, 54, 219, 249, 1, 213, 235, 219, 249, 1, + 242, 51, 219, 249, 1, 210, 177, 246, 209, 219, 249, 1, 202, 42, 199, 192, + 219, 249, 1, 210, 177, 222, 225, 219, 249, 1, 212, 52, 219, 249, 1, 210, + 177, 212, 88, 219, 249, 1, 210, 177, 197, 128, 219, 249, 1, 210, 177, + 197, 116, 219, 249, 1, 210, 177, 237, 146, 219, 249, 1, 210, 177, 237, + 130, 219, 249, 1, 210, 177, 213, 66, 219, 249, 1, 236, 129, 219, 249, 1, + 159, 219, 249, 1, 198, 237, 200, 190, 219, 249, 1, 198, 237, 199, 192, + 219, 249, 1, 210, 177, 237, 23, 219, 249, 1, 213, 30, 219, 249, 1, 248, + 63, 219, 249, 1, 209, 65, 219, 249, 1, 209, 191, 200, 190, 219, 249, 1, + 232, 136, 199, 192, 219, 249, 1, 209, 191, 199, 192, 219, 249, 1, 232, + 136, 200, 190, 219, 249, 1, 210, 177, 248, 153, 219, 249, 1, 215, 251, + 219, 249, 1, 192, 12, 219, 249, 1, 219, 20, 219, 81, 219, 249, 1, 219, + 20, 218, 234, 219, 249, 1, 193, 48, 219, 249, 1, 205, 129, 203, 160, 219, + 249, 1, 205, 129, 201, 170, 219, 249, 1, 202, 42, 200, 190, 219, 249, 1, + 228, 248, 200, 190, 219, 249, 1, 210, 177, 219, 49, 219, 249, 1, 74, 219, + 249, 1, 228, 248, 199, 192, 219, 249, 234, 78, 219, 249, 18, 3, 65, 219, + 249, 18, 3, 217, 92, 222, 61, 219, 249, 18, 3, 252, 154, 219, 249, 18, 3, + 251, 98, 219, 249, 18, 3, 70, 219, 249, 18, 3, 223, 170, 219, 249, 18, 3, + 192, 159, 219, 249, 18, 3, 191, 176, 219, 249, 18, 3, 69, 219, 249, 18, + 3, 196, 26, 219, 249, 3, 210, 177, 195, 37, 219, 249, 18, 3, 217, 92, + 221, 20, 219, 249, 204, 15, 3, 219, 19, 219, 249, 204, 15, 3, 212, 52, + 219, 249, 18, 3, 73, 219, 249, 18, 3, 234, 123, 219, 249, 18, 3, 74, 219, + 249, 18, 3, 250, 81, 219, 249, 18, 3, 251, 184, 219, 249, 221, 44, 171, + 219, 249, 163, 217, 92, 234, 104, 219, 249, 163, 217, 92, 198, 236, 219, + 249, 163, 217, 92, 198, 188, 219, 249, 163, 217, 92, 247, 29, 219, 249, + 247, 77, 77, 219, 249, 213, 178, 219, 249, 17, 191, 77, 219, 249, 17, + 108, 219, 249, 17, 109, 219, 249, 17, 139, 219, 249, 17, 137, 219, 249, + 17, 153, 219, 249, 17, 173, 219, 249, 17, 181, 219, 249, 17, 176, 219, + 249, 17, 184, 219, 249, 228, 248, 213, 30, 219, 249, 228, 248, 215, 251, + 219, 249, 1, 221, 161, 230, 223, 219, 249, 1, 221, 161, 212, 52, 86, 5, + 211, 102, 86, 87, 230, 148, 192, 25, 216, 99, 197, 174, 65, 86, 87, 230, + 148, 192, 25, 216, 99, 255, 155, 206, 162, 248, 225, 172, 86, 87, 230, + 148, 192, 25, 216, 99, 255, 155, 230, 148, 197, 149, 172, 86, 87, 89, + 192, 25, 216, 99, 216, 215, 172, 86, 87, 242, 167, 192, 25, 216, 99, 203, + 167, 172, 86, 87, 247, 49, 192, 25, 216, 99, 209, 180, 203, 153, 172, 86, + 87, 192, 25, 216, 99, 197, 149, 203, 153, 172, 86, 87, 205, 95, 203, 152, + 86, 87, 247, 221, 192, 25, 216, 98, 86, 87, 248, 93, 203, 45, 192, 25, + 216, 98, 86, 87, 223, 70, 197, 148, 86, 87, 237, 68, 197, 149, 247, 220, + 86, 87, 203, 152, 86, 87, 212, 57, 203, 152, 86, 87, 197, 149, 203, 152, + 86, 87, 212, 57, 197, 149, 203, 152, 86, 87, 206, 186, 243, 63, 201, 188, + 203, 152, 86, 87, 207, 5, 230, 188, 203, 152, 86, 87, 247, 49, 255, 159, + 206, 68, 216, 214, 177, 247, 80, 86, 87, 230, 148, 197, 148, 86, 219, 3, + 3, 246, 207, 206, 67, 86, 219, 3, 3, 219, 133, 206, 67, 86, 250, 138, 3, + 203, 163, 231, 131, 255, 160, 206, 67, 86, 250, 138, 3, 255, 157, 168, + 86, 250, 138, 3, 205, 64, 197, 143, 86, 3, 207, 110, 236, 144, 231, 130, + 86, 3, 207, 110, 236, 144, 230, 225, 86, 3, 207, 110, 236, 144, 230, 149, + 86, 3, 207, 110, 214, 229, 231, 130, 86, 3, 207, 110, 214, 229, 230, 225, + 86, 3, 207, 110, 236, 144, 207, 110, 214, 228, 86, 17, 191, 77, 86, 17, + 108, 86, 17, 109, 86, 17, 139, 86, 17, 137, 86, 17, 153, 86, 17, 173, 86, + 17, 181, 86, 17, 176, 86, 17, 184, 86, 17, 134, 108, 86, 17, 134, 109, + 86, 17, 134, 139, 86, 17, 134, 137, 86, 17, 134, 153, 86, 17, 134, 173, + 86, 17, 134, 181, 86, 17, 134, 176, 86, 17, 134, 184, 86, 17, 134, 191, + 77, 86, 87, 247, 223, 206, 67, 86, 87, 214, 45, 247, 147, 212, 69, 191, + 10, 86, 87, 247, 49, 255, 159, 206, 68, 247, 148, 216, 44, 247, 80, 86, + 87, 214, 45, 247, 147, 203, 164, 206, 67, 86, 87, 243, 80, 216, 98, 86, + 87, 197, 165, 255, 156, 86, 87, 230, 131, 206, 68, 230, 86, 86, 87, 230, + 131, 206, 68, 230, 92, 86, 87, 251, 72, 221, 178, 230, 86, 86, 87, 251, + 72, 221, 178, 230, 92, 86, 3, 192, 102, 197, 147, 86, 3, 217, 46, 197, + 147, 86, 1, 157, 86, 1, 221, 190, 86, 1, 231, 203, 86, 1, 231, 54, 86, 1, + 214, 54, 86, 1, 247, 112, 86, 1, 246, 209, 86, 1, 223, 4, 86, 1, 212, 88, + 86, 1, 197, 128, 86, 1, 197, 116, 86, 1, 237, 146, 86, 1, 237, 130, 86, + 1, 213, 66, 86, 1, 199, 247, 86, 1, 199, 44, 86, 1, 237, 241, 86, 1, 237, + 23, 86, 1, 180, 86, 1, 168, 86, 1, 209, 219, 86, 1, 249, 103, 86, 1, 248, + 153, 86, 1, 172, 86, 1, 197, 164, 86, 1, 197, 153, 86, 1, 234, 247, 86, + 1, 234, 241, 86, 1, 193, 187, 86, 1, 191, 71, 86, 1, 191, 123, 86, 1, + 255, 162, 86, 1, 169, 86, 1, 166, 86, 1, 171, 86, 1, 203, 160, 86, 1, + 201, 170, 86, 1, 189, 86, 1, 144, 86, 1, 65, 86, 1, 220, 222, 86, 1, 232, + 181, 166, 86, 1, 221, 77, 86, 1, 206, 104, 86, 18, 3, 252, 154, 86, 18, + 3, 70, 86, 18, 3, 223, 170, 86, 18, 3, 69, 86, 18, 3, 196, 26, 86, 18, 3, + 121, 148, 86, 18, 3, 121, 206, 105, 86, 18, 3, 121, 170, 86, 18, 3, 121, + 219, 50, 86, 18, 3, 73, 86, 18, 3, 234, 145, 86, 18, 3, 74, 86, 18, 3, + 211, 76, 86, 3, 206, 168, 201, 0, 214, 55, 206, 157, 86, 3, 206, 162, + 248, 224, 86, 18, 3, 207, 13, 70, 86, 18, 3, 207, 13, 223, 170, 86, 3, + 212, 69, 191, 11, 214, 237, 237, 241, 86, 3, 202, 56, 219, 216, 86, 87, + 230, 39, 86, 87, 210, 168, 86, 3, 219, 219, 206, 67, 86, 3, 192, 107, + 206, 67, 86, 3, 219, 220, 197, 165, 247, 80, 86, 3, 216, 217, 247, 80, + 86, 3, 230, 152, 247, 81, 207, 3, 86, 3, 230, 152, 216, 201, 207, 3, 86, + 3, 223, 65, 216, 217, 247, 80, 86, 200, 234, 3, 219, 220, 197, 165, 247, + 80, 86, 200, 234, 3, 216, 217, 247, 80, 86, 200, 234, 3, 223, 65, 216, + 217, 247, 80, 86, 200, 234, 1, 157, 86, 200, 234, 1, 221, 190, 86, 200, + 234, 1, 231, 203, 86, 200, 234, 1, 231, 54, 86, 200, 234, 1, 214, 54, 86, + 200, 234, 1, 247, 112, 86, 200, 234, 1, 246, 209, 86, 200, 234, 1, 223, + 4, 86, 200, 234, 1, 212, 88, 86, 200, 234, 1, 197, 128, 86, 200, 234, 1, + 197, 116, 86, 200, 234, 1, 237, 146, 86, 200, 234, 1, 237, 130, 86, 200, + 234, 1, 213, 66, 86, 200, 234, 1, 199, 247, 86, 200, 234, 1, 199, 44, 86, + 200, 234, 1, 237, 241, 86, 200, 234, 1, 237, 23, 86, 200, 234, 1, 180, + 86, 200, 234, 1, 168, 86, 200, 234, 1, 209, 219, 86, 200, 234, 1, 249, + 103, 86, 200, 234, 1, 248, 153, 86, 200, 234, 1, 172, 86, 200, 234, 1, + 197, 164, 86, 200, 234, 1, 197, 153, 86, 200, 234, 1, 234, 247, 86, 200, + 234, 1, 234, 241, 86, 200, 234, 1, 193, 187, 86, 200, 234, 1, 191, 71, + 86, 200, 234, 1, 191, 123, 86, 200, 234, 1, 255, 162, 86, 200, 234, 1, + 169, 86, 200, 234, 1, 166, 86, 200, 234, 1, 171, 86, 200, 234, 1, 203, + 160, 86, 200, 234, 1, 201, 170, 86, 200, 234, 1, 189, 86, 200, 234, 1, + 144, 86, 200, 234, 1, 65, 86, 200, 234, 1, 220, 222, 86, 200, 234, 1, + 232, 181, 193, 187, 86, 200, 234, 1, 232, 181, 169, 86, 200, 234, 1, 232, + 181, 166, 86, 220, 209, 206, 64, 221, 190, 86, 220, 209, 206, 64, 221, + 191, 247, 148, 216, 44, 247, 80, 86, 247, 64, 3, 88, 248, 213, 86, 247, + 64, 3, 155, 248, 213, 86, 247, 64, 3, 247, 68, 199, 130, 86, 247, 64, 3, + 205, 94, 255, 161, 86, 16, 235, 61, 247, 218, 86, 16, 207, 109, 206, 169, + 86, 16, 210, 196, 231, 129, 86, 16, 207, 109, 206, 170, 207, 5, 230, 187, + 86, 16, 209, 180, 168, 86, 16, 213, 8, 247, 218, 86, 16, 213, 8, 247, + 219, 212, 57, 255, 158, 86, 16, 213, 8, 247, 219, 230, 150, 255, 158, 86, + 16, 213, 8, 247, 219, 247, 148, 255, 158, 86, 3, 207, 110, 214, 229, 207, + 110, 236, 143, 86, 3, 207, 110, 214, 229, 230, 149, 86, 87, 247, 222, + 203, 45, 231, 17, 216, 99, 207, 4, 86, 87, 215, 253, 192, 25, 231, 17, + 216, 99, 207, 4, 86, 87, 212, 57, 197, 148, 86, 87, 89, 247, 252, 206, + 159, 192, 25, 216, 99, 216, 215, 172, 86, 87, 242, 167, 247, 252, 206, + 159, 192, 25, 216, 99, 203, 167, 172, 206, 202, 200, 151, 57, 219, 199, + 200, 151, 57, 206, 202, 200, 151, 3, 4, 236, 94, 219, 199, 200, 151, 3, + 4, 236, 94, 86, 87, 219, 211, 216, 218, 206, 67, 86, 87, 198, 14, 216, + 218, 206, 67, 79, 1, 157, 79, 1, 221, 190, 79, 1, 231, 203, 79, 1, 231, + 54, 79, 1, 214, 54, 79, 1, 247, 112, 79, 1, 246, 209, 79, 1, 223, 4, 79, + 1, 222, 225, 79, 1, 212, 88, 79, 1, 213, 32, 79, 1, 197, 128, 79, 1, 197, + 116, 79, 1, 237, 146, 79, 1, 237, 130, 79, 1, 213, 66, 79, 1, 199, 247, + 79, 1, 199, 44, 79, 1, 237, 241, 79, 1, 237, 23, 79, 1, 180, 79, 1, 168, + 79, 1, 209, 219, 79, 1, 249, 103, 79, 1, 248, 153, 79, 1, 172, 79, 1, + 169, 79, 1, 166, 79, 1, 171, 79, 1, 193, 187, 79, 1, 189, 79, 1, 144, 79, + 1, 219, 49, 79, 1, 65, 79, 1, 203, 134, 65, 79, 1, 70, 79, 1, 223, 170, + 79, 1, 69, 79, 1, 196, 26, 79, 1, 73, 79, 1, 215, 215, 73, 79, 1, 74, 79, + 1, 250, 113, 79, 18, 3, 199, 195, 252, 154, 79, 18, 3, 252, 154, 79, 18, + 3, 70, 79, 18, 3, 223, 170, 79, 18, 3, 69, 79, 18, 3, 196, 26, 79, 18, 3, + 73, 79, 18, 3, 251, 184, 79, 18, 3, 215, 215, 223, 170, 79, 18, 3, 215, + 215, 74, 79, 18, 3, 234, 227, 56, 79, 3, 251, 20, 79, 3, 75, 60, 79, 3, + 195, 32, 79, 3, 195, 37, 79, 3, 250, 164, 79, 119, 3, 216, 198, 169, 79, + 119, 3, 216, 198, 166, 79, 119, 3, 216, 198, 193, 187, 79, 119, 3, 216, + 198, 144, 79, 1, 230, 172, 189, 79, 17, 191, 77, 79, 17, 108, 79, 17, + 109, 79, 17, 139, 79, 17, 137, 79, 17, 153, 79, 17, 173, 79, 17, 181, 79, + 17, 176, 79, 17, 184, 79, 3, 219, 59, 205, 48, 79, 3, 205, 48, 79, 16, + 219, 12, 79, 16, 242, 19, 79, 16, 251, 205, 79, 16, 231, 109, 79, 1, 203, + 160, 79, 1, 201, 170, 79, 1, 121, 148, 79, 1, 121, 206, 105, 79, 1, 121, + 170, 79, 1, 121, 219, 50, 79, 18, 3, 121, 148, 79, 18, 3, 121, 206, 105, + 79, 18, 3, 121, 170, 79, 18, 3, 121, 219, 50, 79, 1, 215, 215, 214, 54, + 79, 1, 215, 215, 222, 225, 79, 1, 215, 215, 249, 3, 79, 1, 215, 215, 248, + 254, 79, 119, 3, 215, 215, 216, 198, 180, 79, 119, 3, 215, 215, 216, 198, + 172, 79, 119, 3, 215, 215, 216, 198, 171, 79, 1, 203, 166, 222, 36, 203, + 160, 79, 18, 3, 203, 166, 222, 36, 233, 201, 79, 163, 87, 203, 166, 222, + 36, 229, 228, 79, 163, 87, 203, 166, 222, 36, 221, 254, 209, 190, 79, 1, + 193, 100, 208, 109, 222, 36, 199, 44, 79, 1, 193, 100, 208, 109, 222, 36, + 208, 115, 79, 18, 3, 193, 100, 208, 109, 222, 36, 233, 201, 79, 18, 3, + 193, 100, 208, 109, 222, 36, 196, 148, 79, 3, 193, 100, 208, 109, 222, + 36, 198, 73, 79, 3, 193, 100, 208, 109, 222, 36, 198, 72, 79, 3, 193, + 100, 208, 109, 222, 36, 198, 71, 79, 3, 193, 100, 208, 109, 222, 36, 198, + 70, 79, 3, 193, 100, 208, 109, 222, 36, 198, 69, 79, 1, 234, 158, 208, + 109, 222, 36, 213, 66, 79, 1, 234, 158, 208, 109, 222, 36, 191, 183, 79, + 1, 234, 158, 208, 109, 222, 36, 231, 19, 79, 18, 3, 231, 124, 222, 36, + 70, 79, 18, 3, 222, 3, 211, 139, 79, 18, 3, 222, 3, 69, 79, 18, 3, 222, + 3, 234, 145, 79, 1, 203, 134, 157, 79, 1, 203, 134, 221, 190, 79, 1, 203, + 134, 231, 203, 79, 1, 203, 134, 247, 112, 79, 1, 203, 134, 191, 123, 79, + 1, 203, 134, 212, 88, 79, 1, 203, 134, 237, 241, 79, 1, 203, 134, 180, + 79, 1, 203, 134, 209, 219, 79, 1, 203, 134, 233, 68, 79, 1, 203, 134, + 249, 103, 79, 1, 203, 134, 199, 44, 79, 1, 203, 134, 144, 79, 119, 3, + 203, 134, 216, 198, 193, 187, 79, 18, 3, 203, 134, 252, 154, 79, 18, 3, + 203, 134, 73, 79, 18, 3, 203, 134, 234, 227, 56, 79, 18, 3, 203, 134, 52, + 192, 159, 79, 3, 203, 134, 198, 72, 79, 3, 203, 134, 198, 71, 79, 3, 203, + 134, 198, 69, 79, 3, 203, 134, 198, 68, 79, 3, 203, 134, 238, 200, 198, + 72, 79, 3, 203, 134, 238, 200, 198, 71, 79, 3, 203, 134, 238, 200, 234, + 64, 198, 74, 79, 1, 206, 42, 210, 179, 233, 68, 79, 3, 206, 42, 210, 179, + 198, 69, 79, 203, 134, 17, 191, 77, 79, 203, 134, 17, 108, 79, 203, 134, + 17, 109, 79, 203, 134, 17, 139, 79, 203, 134, 17, 137, 79, 203, 134, 17, + 153, 79, 203, 134, 17, 173, 79, 203, 134, 17, 181, 79, 203, 134, 17, 176, + 79, 203, 134, 17, 184, 79, 3, 221, 181, 198, 73, 79, 3, 221, 181, 198, + 71, 79, 18, 3, 251, 170, 65, 79, 18, 3, 251, 170, 251, 184, 79, 16, 203, + 134, 108, 79, 16, 203, 134, 233, 174, 100, 6, 1, 251, 81, 100, 6, 1, 249, + 51, 100, 6, 1, 231, 173, 100, 6, 1, 236, 105, 100, 6, 1, 234, 61, 100, 6, + 1, 195, 46, 100, 6, 1, 191, 80, 100, 6, 1, 199, 188, 100, 6, 1, 223, 134, + 100, 6, 1, 222, 61, 100, 6, 1, 219, 239, 100, 6, 1, 217, 70, 100, 6, 1, + 214, 202, 100, 6, 1, 211, 93, 100, 6, 1, 210, 121, 100, 6, 1, 191, 67, + 100, 6, 1, 207, 158, 100, 6, 1, 205, 137, 100, 6, 1, 199, 174, 100, 6, 1, + 196, 109, 100, 6, 1, 209, 211, 100, 6, 1, 221, 176, 100, 6, 1, 231, 45, + 100, 6, 1, 208, 74, 100, 6, 1, 203, 64, 100, 6, 1, 243, 33, 100, 6, 1, + 247, 80, 100, 6, 1, 222, 207, 100, 6, 1, 242, 226, 100, 6, 1, 246, 193, + 100, 6, 1, 192, 218, 100, 6, 1, 222, 222, 100, 6, 1, 230, 54, 100, 6, 1, + 229, 213, 100, 6, 1, 229, 113, 100, 6, 1, 193, 123, 100, 6, 1, 229, 242, + 100, 6, 1, 228, 235, 100, 6, 1, 192, 14, 100, 6, 1, 251, 218, 100, 1, + 251, 81, 100, 1, 249, 51, 100, 1, 231, 173, 100, 1, 236, 105, 100, 1, + 234, 61, 100, 1, 195, 46, 100, 1, 191, 80, 100, 1, 199, 188, 100, 1, 223, + 134, 100, 1, 222, 61, 100, 1, 219, 239, 100, 1, 217, 70, 100, 1, 214, + 202, 100, 1, 211, 93, 100, 1, 210, 121, 100, 1, 191, 67, 100, 1, 207, + 158, 100, 1, 205, 137, 100, 1, 199, 174, 100, 1, 196, 109, 100, 1, 209, + 211, 100, 1, 221, 176, 100, 1, 231, 45, 100, 1, 208, 74, 100, 1, 203, 64, + 100, 1, 243, 33, 100, 1, 247, 80, 100, 1, 222, 207, 100, 1, 242, 226, + 100, 1, 246, 193, 100, 1, 192, 218, 100, 1, 222, 222, 100, 1, 230, 54, + 100, 1, 229, 213, 100, 1, 229, 113, 100, 1, 193, 123, 100, 1, 229, 242, + 100, 1, 228, 235, 100, 1, 232, 238, 100, 1, 192, 14, 100, 1, 234, 80, + 100, 1, 152, 231, 173, 100, 1, 251, 178, 100, 210, 118, 204, 5, 59, 1, + 100, 214, 202, 100, 1, 251, 218, 100, 1, 229, 240, 57, 100, 1, 220, 92, + 57, 30, 146, 221, 89, 30, 146, 201, 162, 30, 146, 213, 190, 30, 146, 198, + 163, 30, 146, 201, 151, 30, 146, 206, 234, 30, 146, 216, 59, 30, 146, + 209, 160, 30, 146, 201, 159, 30, 146, 202, 155, 30, 146, 201, 156, 30, + 146, 223, 193, 30, 146, 242, 232, 30, 146, 201, 166, 30, 146, 243, 43, + 30, 146, 221, 164, 30, 146, 199, 2, 30, 146, 209, 200, 30, 146, 229, 110, + 30, 146, 213, 186, 30, 146, 201, 160, 30, 146, 213, 180, 30, 146, 213, + 184, 30, 146, 198, 160, 30, 146, 206, 222, 30, 146, 201, 158, 30, 146, + 206, 232, 30, 146, 222, 42, 30, 146, 216, 52, 30, 146, 222, 45, 30, 146, + 209, 155, 30, 146, 209, 153, 30, 146, 209, 141, 30, 146, 209, 149, 30, + 146, 209, 147, 30, 146, 209, 144, 30, 146, 209, 146, 30, 146, 209, 143, + 30, 146, 209, 148, 30, 146, 209, 158, 30, 146, 209, 159, 30, 146, 209, + 142, 30, 146, 209, 152, 30, 146, 222, 43, 30, 146, 222, 41, 30, 146, 202, + 148, 30, 146, 202, 146, 30, 146, 202, 138, 30, 146, 202, 141, 30, 146, + 202, 147, 30, 146, 202, 143, 30, 146, 202, 142, 30, 146, 202, 140, 30, + 146, 202, 151, 30, 146, 202, 153, 30, 146, 202, 154, 30, 146, 202, 149, + 30, 146, 202, 139, 30, 146, 202, 144, 30, 146, 202, 152, 30, 146, 243, + 24, 30, 146, 243, 22, 30, 146, 246, 222, 30, 146, 246, 220, 30, 146, 210, + 139, 30, 146, 223, 188, 30, 146, 223, 179, 30, 146, 223, 187, 30, 146, + 223, 184, 30, 146, 223, 182, 30, 146, 223, 186, 30, 146, 201, 163, 30, + 146, 223, 191, 30, 146, 223, 192, 30, 146, 223, 180, 30, 146, 223, 185, + 30, 146, 192, 57, 30, 146, 242, 231, 30, 146, 243, 25, 30, 146, 243, 23, + 30, 146, 246, 223, 30, 146, 246, 221, 30, 146, 243, 41, 30, 146, 243, 42, + 30, 146, 243, 26, 30, 146, 246, 224, 30, 146, 209, 198, 30, 146, 222, 44, + 30, 146, 201, 164, 30, 146, 192, 63, 30, 146, 221, 80, 30, 146, 213, 182, + 30, 146, 213, 188, 30, 146, 213, 187, 30, 146, 198, 157, 30, 146, 232, + 218, 30, 222, 147, 232, 218, 30, 222, 147, 65, 30, 222, 147, 251, 229, + 30, 222, 147, 169, 30, 222, 147, 192, 129, 30, 222, 147, 234, 23, 30, + 222, 147, 73, 30, 222, 147, 192, 67, 30, 222, 147, 192, 80, 30, 222, 147, + 74, 30, 222, 147, 193, 187, 30, 222, 147, 193, 173, 30, 222, 147, 211, + 139, 30, 222, 147, 192, 12, 30, 222, 147, 69, 30, 222, 147, 193, 105, 30, + 222, 147, 193, 123, 30, 222, 147, 193, 84, 30, 222, 147, 191, 225, 30, + 222, 147, 233, 201, 30, 222, 147, 192, 33, 30, 222, 147, 70, 30, 222, + 147, 255, 150, 30, 222, 147, 255, 149, 30, 222, 147, 192, 143, 30, 222, + 147, 192, 141, 30, 222, 147, 234, 21, 30, 222, 147, 234, 20, 30, 222, + 147, 234, 22, 30, 222, 147, 192, 66, 30, 222, 147, 192, 65, 30, 222, 147, + 211, 253, 30, 222, 147, 211, 254, 30, 222, 147, 211, 247, 30, 222, 147, + 211, 252, 30, 222, 147, 211, 250, 30, 222, 147, 192, 0, 30, 222, 147, + 191, 255, 30, 222, 147, 191, 254, 30, 222, 147, 192, 1, 30, 222, 147, + 192, 2, 30, 222, 147, 196, 222, 30, 222, 147, 196, 221, 30, 222, 147, + 196, 219, 30, 222, 147, 196, 215, 30, 222, 147, 196, 216, 30, 222, 147, + 191, 220, 30, 222, 147, 191, 217, 30, 222, 147, 191, 218, 30, 222, 147, + 191, 212, 30, 222, 147, 191, 213, 30, 222, 147, 191, 214, 30, 222, 147, + 191, 216, 30, 222, 147, 233, 195, 30, 222, 147, 233, 197, 30, 222, 147, + 192, 32, 30, 222, 147, 228, 39, 30, 222, 147, 228, 31, 30, 222, 147, 228, + 34, 30, 222, 147, 228, 32, 30, 222, 147, 228, 36, 30, 222, 147, 228, 38, + 30, 222, 147, 250, 231, 30, 222, 147, 250, 228, 30, 222, 147, 250, 226, + 30, 222, 147, 250, 227, 30, 222, 147, 201, 167, 30, 222, 147, 255, 151, + 30, 222, 147, 192, 142, 30, 222, 147, 192, 64, 30, 222, 147, 211, 249, + 30, 222, 147, 211, 248, 30, 125, 221, 89, 30, 125, 201, 162, 30, 125, + 221, 82, 30, 125, 213, 190, 30, 125, 213, 188, 30, 125, 213, 187, 30, + 125, 198, 163, 30, 125, 206, 234, 30, 125, 206, 229, 30, 125, 206, 226, + 30, 125, 206, 219, 30, 125, 206, 214, 30, 125, 206, 209, 30, 125, 206, + 220, 30, 125, 206, 232, 30, 125, 216, 59, 30, 125, 209, 160, 30, 125, + 209, 149, 30, 125, 202, 155, 30, 125, 201, 156, 30, 125, 223, 193, 30, + 125, 242, 232, 30, 125, 243, 43, 30, 125, 221, 164, 30, 125, 199, 2, 30, + 125, 209, 200, 30, 125, 229, 110, 30, 125, 221, 83, 30, 125, 221, 81, 30, + 125, 213, 186, 30, 125, 213, 180, 30, 125, 213, 182, 30, 125, 213, 185, + 30, 125, 213, 181, 30, 125, 198, 160, 30, 125, 198, 157, 30, 125, 206, + 227, 30, 125, 206, 222, 30, 125, 206, 208, 30, 125, 206, 207, 30, 125, + 201, 158, 30, 125, 206, 224, 30, 125, 206, 223, 30, 125, 206, 216, 30, + 125, 206, 218, 30, 125, 206, 231, 30, 125, 206, 211, 30, 125, 206, 221, + 30, 125, 206, 230, 30, 125, 206, 206, 30, 125, 216, 55, 30, 125, 216, 50, + 30, 125, 216, 52, 30, 125, 216, 49, 30, 125, 216, 47, 30, 125, 216, 53, + 30, 125, 216, 58, 30, 125, 216, 56, 30, 125, 222, 45, 30, 125, 209, 151, + 30, 125, 209, 152, 30, 125, 209, 157, 30, 125, 222, 43, 30, 125, 202, + 148, 30, 125, 202, 138, 30, 125, 202, 141, 30, 125, 202, 143, 30, 125, + 210, 139, 30, 125, 223, 188, 30, 125, 223, 181, 30, 125, 201, 163, 30, + 125, 223, 189, 30, 125, 192, 57, 30, 125, 192, 51, 30, 125, 192, 52, 30, + 125, 209, 198, 30, 125, 222, 44, 30, 125, 229, 108, 30, 125, 229, 106, + 30, 125, 229, 109, 30, 125, 229, 107, 30, 125, 192, 63, 30, 125, 221, 85, + 30, 125, 221, 84, 30, 125, 221, 88, 30, 125, 221, 86, 30, 125, 221, 87, + 30, 125, 201, 160, 36, 5, 144, 36, 5, 228, 128, 36, 5, 229, 126, 36, 5, + 230, 58, 36, 5, 229, 183, 36, 5, 229, 213, 36, 5, 228, 247, 36, 5, 228, + 238, 36, 5, 171, 36, 5, 218, 203, 36, 5, 219, 122, 36, 5, 220, 101, 36, + 5, 219, 204, 36, 5, 219, 214, 36, 5, 219, 19, 36, 5, 218, 170, 36, 5, + 229, 145, 36, 5, 229, 139, 36, 5, 229, 141, 36, 5, 229, 144, 36, 5, 229, + 142, 36, 5, 229, 143, 36, 5, 229, 140, 36, 5, 229, 138, 36, 5, 172, 36, + 5, 215, 139, 36, 5, 216, 81, 36, 5, 217, 130, 36, 5, 216, 192, 36, 5, + 216, 213, 36, 5, 215, 251, 36, 5, 215, 66, 36, 5, 200, 50, 36, 5, 200, + 44, 36, 5, 200, 46, 36, 5, 200, 49, 36, 5, 200, 47, 36, 5, 200, 48, 36, + 5, 200, 45, 36, 5, 200, 43, 36, 5, 166, 36, 5, 206, 63, 36, 5, 206, 252, + 36, 5, 207, 173, 36, 5, 207, 79, 36, 5, 207, 108, 36, 5, 206, 157, 36, 5, + 206, 21, 36, 5, 189, 36, 5, 200, 255, 36, 5, 202, 217, 36, 5, 205, 192, + 36, 5, 205, 45, 36, 5, 205, 63, 36, 5, 202, 41, 36, 5, 200, 146, 36, 5, + 203, 160, 36, 5, 203, 0, 36, 5, 203, 76, 36, 5, 203, 155, 36, 5, 203, + 106, 36, 5, 203, 108, 36, 5, 203, 51, 36, 5, 202, 235, 36, 5, 208, 89, + 36, 5, 208, 27, 36, 5, 208, 51, 36, 5, 208, 88, 36, 5, 208, 68, 36, 5, + 208, 69, 36, 5, 208, 39, 36, 5, 208, 38, 36, 5, 207, 235, 36, 5, 207, + 231, 36, 5, 207, 234, 36, 5, 207, 232, 36, 5, 207, 233, 36, 5, 208, 65, + 36, 5, 208, 57, 36, 5, 208, 60, 36, 5, 208, 64, 36, 5, 208, 61, 36, 5, + 208, 62, 36, 5, 208, 59, 36, 5, 208, 56, 36, 5, 208, 52, 36, 5, 208, 55, + 36, 5, 208, 53, 36, 5, 208, 54, 36, 5, 249, 103, 36, 5, 247, 218, 36, 5, + 248, 140, 36, 5, 249, 101, 36, 5, 248, 207, 36, 5, 248, 223, 36, 5, 248, + 63, 36, 5, 247, 162, 36, 5, 195, 185, 36, 5, 193, 246, 36, 5, 195, 66, + 36, 5, 195, 184, 36, 5, 195, 145, 36, 5, 195, 150, 36, 5, 195, 21, 36, 5, + 193, 235, 36, 5, 199, 247, 36, 5, 197, 90, 36, 5, 198, 188, 36, 5, 199, + 240, 36, 5, 199, 116, 36, 5, 199, 140, 36, 5, 159, 36, 5, 197, 39, 36, 5, + 247, 112, 36, 5, 238, 148, 36, 5, 242, 237, 36, 5, 247, 111, 36, 5, 246, + 242, 36, 5, 246, 250, 36, 5, 242, 51, 36, 5, 238, 104, 36, 5, 192, 220, + 36, 5, 192, 188, 36, 5, 192, 207, 36, 5, 192, 219, 36, 5, 192, 213, 36, + 5, 192, 214, 36, 5, 192, 196, 36, 5, 192, 195, 36, 5, 192, 181, 36, 5, + 192, 177, 36, 5, 192, 180, 36, 5, 192, 178, 36, 5, 192, 179, 36, 5, 180, + 36, 5, 212, 165, 36, 5, 213, 205, 36, 5, 214, 236, 36, 5, 214, 96, 36, 5, + 214, 107, 36, 5, 213, 30, 36, 5, 212, 97, 36, 5, 212, 88, 36, 5, 212, 45, + 36, 5, 212, 68, 36, 5, 212, 87, 36, 5, 212, 76, 36, 5, 212, 77, 36, 5, + 212, 52, 36, 5, 212, 35, 36, 5, 230, 231, 65, 36, 5, 230, 231, 69, 36, 5, + 230, 231, 70, 36, 5, 230, 231, 252, 154, 36, 5, 230, 231, 234, 145, 36, + 5, 230, 231, 73, 36, 5, 230, 231, 74, 36, 5, 230, 231, 193, 187, 36, 5, + 157, 36, 5, 220, 208, 36, 5, 221, 142, 36, 5, 222, 100, 36, 5, 221, 244, + 36, 5, 221, 253, 36, 5, 221, 43, 36, 5, 221, 38, 36, 5, 220, 155, 36, 5, + 220, 148, 36, 5, 220, 154, 36, 5, 220, 149, 36, 5, 220, 150, 36, 5, 220, + 141, 36, 5, 220, 135, 36, 5, 220, 137, 36, 5, 220, 140, 36, 5, 220, 138, + 36, 5, 220, 139, 36, 5, 220, 136, 36, 5, 220, 134, 36, 5, 220, 130, 36, + 5, 220, 133, 36, 5, 220, 131, 36, 5, 220, 132, 36, 5, 193, 187, 36, 5, + 193, 0, 36, 5, 193, 84, 36, 5, 193, 178, 36, 5, 193, 112, 36, 5, 193, + 123, 36, 5, 193, 48, 36, 5, 193, 40, 36, 5, 209, 210, 65, 36, 5, 209, + 210, 69, 36, 5, 209, 210, 70, 36, 5, 209, 210, 252, 154, 36, 5, 209, 210, + 234, 145, 36, 5, 209, 210, 73, 36, 5, 209, 210, 74, 36, 5, 191, 123, 36, + 5, 190, 251, 36, 5, 191, 30, 36, 5, 191, 121, 36, 5, 191, 84, 36, 5, 191, + 87, 36, 5, 191, 7, 36, 5, 190, 238, 36, 5, 191, 71, 36, 5, 191, 48, 36, + 5, 191, 57, 36, 5, 191, 70, 36, 5, 191, 61, 36, 5, 191, 62, 36, 5, 191, + 54, 36, 5, 191, 39, 36, 5, 169, 36, 5, 191, 225, 36, 5, 192, 33, 36, 5, + 192, 140, 36, 5, 192, 77, 36, 5, 192, 80, 36, 5, 192, 12, 36, 5, 191, + 252, 36, 5, 237, 241, 36, 5, 235, 45, 36, 5, 236, 255, 36, 5, 237, 240, + 36, 5, 237, 86, 36, 5, 237, 101, 36, 5, 236, 129, 36, 5, 235, 2, 36, 5, + 237, 146, 36, 5, 237, 111, 36, 5, 237, 123, 36, 5, 237, 145, 36, 5, 237, + 133, 36, 5, 237, 134, 36, 5, 237, 116, 36, 5, 237, 102, 36, 5, 223, 4, + 36, 5, 222, 155, 36, 5, 222, 217, 36, 5, 223, 3, 36, 5, 222, 236, 36, 5, + 222, 238, 36, 5, 222, 174, 36, 5, 222, 133, 36, 5, 231, 203, 36, 5, 230, + 146, 36, 5, 231, 16, 36, 5, 231, 200, 36, 5, 231, 120, 36, 5, 231, 128, + 36, 5, 230, 223, 36, 5, 230, 222, 36, 5, 230, 102, 36, 5, 230, 98, 36, 5, + 230, 101, 36, 5, 230, 99, 36, 5, 230, 100, 36, 5, 231, 90, 36, 5, 231, + 70, 36, 5, 231, 80, 36, 5, 231, 89, 36, 5, 231, 84, 36, 5, 231, 85, 36, + 5, 231, 74, 36, 5, 231, 59, 36, 5, 199, 44, 36, 5, 198, 208, 36, 5, 199, + 6, 36, 5, 199, 43, 36, 5, 199, 26, 36, 5, 199, 28, 36, 5, 198, 236, 36, + 5, 198, 199, 36, 5, 246, 209, 36, 5, 243, 0, 36, 5, 243, 47, 36, 5, 246, + 208, 36, 5, 243, 75, 36, 5, 243, 79, 36, 5, 243, 20, 36, 5, 242, 245, 36, + 5, 209, 219, 36, 5, 209, 182, 36, 5, 209, 202, 36, 5, 209, 218, 36, 5, + 209, 204, 36, 5, 209, 205, 36, 5, 209, 190, 36, 5, 209, 178, 36, 5, 197, + 164, 36, 5, 197, 136, 36, 5, 197, 142, 36, 5, 197, 163, 36, 5, 197, 156, + 36, 5, 197, 157, 36, 5, 197, 140, 36, 5, 197, 134, 36, 5, 196, 236, 36, + 5, 196, 228, 36, 5, 196, 232, 36, 5, 196, 235, 36, 5, 196, 233, 36, 5, + 196, 234, 36, 5, 196, 230, 36, 5, 196, 229, 36, 5, 233, 68, 36, 5, 232, + 48, 36, 5, 232, 238, 36, 5, 233, 67, 36, 5, 233, 11, 36, 5, 233, 18, 36, + 5, 232, 135, 36, 5, 232, 25, 36, 5, 168, 36, 5, 208, 158, 36, 5, 209, + 176, 36, 5, 210, 210, 36, 5, 210, 40, 36, 5, 210, 53, 36, 5, 209, 65, 36, + 5, 208, 115, 36, 5, 206, 11, 36, 5, 215, 54, 36, 5, 232, 19, 36, 33, 231, + 116, 24, 18, 219, 174, 77, 36, 33, 18, 219, 174, 77, 36, 33, 231, 116, + 77, 36, 205, 49, 77, 36, 193, 22, 36, 232, 42, 201, 58, 36, 242, 26, 36, + 204, 20, 36, 242, 35, 36, 208, 221, 242, 35, 36, 208, 8, 77, 36, 210, + 118, 204, 5, 36, 17, 108, 36, 17, 109, 36, 17, 139, 36, 17, 137, 36, 17, + 153, 36, 17, 173, 36, 17, 181, 36, 17, 176, 36, 17, 184, 36, 31, 199, 90, + 36, 31, 197, 28, 36, 31, 198, 244, 36, 31, 232, 97, 36, 31, 232, 230, 36, + 31, 202, 115, 36, 31, 203, 236, 36, 31, 234, 110, 36, 31, 213, 156, 36, + 31, 228, 109, 36, 31, 199, 91, 188, 36, 5, 205, 54, 215, 66, 36, 5, 215, + 62, 36, 5, 215, 63, 36, 5, 215, 64, 36, 5, 205, 54, 247, 162, 36, 5, 247, + 159, 36, 5, 247, 160, 36, 5, 247, 161, 36, 5, 205, 54, 232, 25, 36, 5, + 232, 21, 36, 5, 232, 22, 36, 5, 232, 23, 36, 5, 205, 54, 208, 115, 36, 5, + 208, 111, 36, 5, 208, 112, 36, 5, 208, 113, 36, 198, 75, 87, 192, 15, 36, + 198, 75, 87, 237, 44, 36, 198, 75, 87, 206, 189, 36, 198, 75, 87, 203, + 35, 206, 189, 36, 198, 75, 87, 236, 229, 36, 198, 75, 87, 221, 225, 36, + 198, 75, 87, 243, 28, 36, 198, 75, 87, 229, 115, 36, 198, 75, 87, 237, + 43, 36, 198, 75, 87, 220, 171, 101, 1, 65, 101, 1, 73, 101, 1, 70, 101, + 1, 74, 101, 1, 69, 101, 1, 196, 8, 101, 1, 231, 203, 101, 1, 157, 101, 1, + 231, 128, 101, 1, 231, 16, 101, 1, 230, 223, 101, 1, 230, 146, 101, 1, + 230, 105, 101, 1, 144, 101, 1, 229, 213, 101, 1, 229, 126, 101, 1, 228, + 247, 101, 1, 228, 128, 101, 1, 228, 95, 101, 1, 171, 101, 1, 219, 214, + 101, 1, 219, 122, 101, 1, 219, 19, 101, 1, 218, 203, 101, 1, 218, 171, + 101, 1, 172, 101, 1, 216, 213, 101, 1, 216, 81, 101, 1, 215, 251, 101, 1, + 215, 139, 101, 1, 180, 101, 1, 229, 15, 101, 1, 214, 223, 101, 1, 214, + 107, 101, 1, 213, 205, 101, 1, 213, 30, 101, 1, 212, 165, 101, 1, 212, + 99, 101, 1, 208, 26, 101, 1, 208, 11, 101, 1, 208, 4, 101, 1, 207, 250, + 101, 1, 207, 239, 101, 1, 207, 237, 101, 1, 189, 101, 1, 206, 3, 101, 1, + 205, 63, 101, 1, 202, 217, 101, 1, 202, 41, 101, 1, 200, 255, 101, 1, + 200, 154, 101, 1, 237, 241, 101, 1, 199, 247, 101, 1, 237, 101, 101, 1, + 199, 140, 101, 1, 236, 255, 101, 1, 198, 188, 101, 1, 236, 129, 101, 1, + 235, 45, 101, 1, 235, 13, 101, 1, 236, 141, 101, 1, 198, 110, 101, 1, + 198, 109, 101, 1, 198, 98, 101, 1, 198, 97, 101, 1, 198, 96, 101, 1, 198, + 95, 101, 1, 197, 164, 101, 1, 197, 157, 101, 1, 197, 142, 101, 1, 197, + 140, 101, 1, 197, 136, 101, 1, 197, 135, 101, 1, 193, 187, 101, 1, 193, + 123, 101, 1, 193, 84, 101, 1, 193, 48, 101, 1, 193, 0, 101, 1, 192, 243, + 101, 1, 169, 101, 1, 192, 80, 101, 1, 192, 33, 101, 1, 192, 12, 101, 1, + 191, 225, 101, 1, 191, 184, 101, 1, 215, 73, 101, 2, 1, 192, 80, 101, 2, + 1, 192, 33, 101, 2, 1, 192, 12, 101, 2, 1, 191, 225, 101, 2, 1, 191, 184, + 101, 2, 1, 215, 73, 21, 22, 228, 58, 21, 22, 73, 21, 22, 252, 118, 21, + 22, 70, 21, 22, 223, 170, 21, 22, 74, 21, 22, 211, 76, 21, 22, 192, 158, + 211, 76, 21, 22, 98, 234, 145, 21, 22, 98, 70, 21, 22, 65, 21, 22, 252, + 154, 21, 22, 193, 123, 21, 22, 193, 101, 193, 123, 21, 22, 193, 84, 21, + 22, 193, 101, 193, 84, 21, 22, 193, 68, 21, 22, 193, 101, 193, 68, 21, + 22, 193, 48, 21, 22, 193, 101, 193, 48, 21, 22, 193, 29, 21, 22, 193, + 101, 193, 29, 21, 22, 214, 195, 193, 29, 21, 22, 193, 187, 21, 22, 193, + 101, 193, 187, 21, 22, 193, 178, 21, 22, 193, 101, 193, 178, 21, 22, 214, + 195, 193, 178, 21, 22, 251, 184, 21, 22, 192, 158, 193, 221, 21, 22, 230, + 231, 201, 58, 21, 22, 52, 251, 250, 21, 22, 52, 230, 176, 21, 22, 52, + 248, 29, 134, 206, 183, 21, 22, 52, 198, 49, 134, 206, 183, 21, 22, 52, + 50, 134, 206, 183, 21, 22, 52, 206, 183, 21, 22, 52, 54, 251, 250, 21, + 22, 52, 54, 203, 35, 81, 201, 10, 21, 22, 52, 82, 236, 96, 21, 22, 52, + 203, 35, 228, 209, 105, 21, 22, 52, 209, 73, 21, 22, 52, 143, 199, 223, + 21, 22, 234, 61, 21, 22, 223, 134, 21, 22, 211, 93, 21, 22, 251, 81, 21, + 22, 210, 53, 21, 22, 210, 208, 21, 22, 209, 176, 21, 22, 209, 136, 21, + 22, 209, 65, 21, 22, 209, 30, 21, 22, 192, 158, 209, 30, 21, 22, 98, 229, + 183, 21, 22, 98, 229, 126, 21, 22, 168, 21, 22, 210, 210, 21, 22, 208, + 113, 21, 22, 193, 101, 208, 113, 21, 22, 208, 111, 21, 22, 193, 101, 208, + 111, 21, 22, 208, 110, 21, 22, 193, 101, 208, 110, 21, 22, 208, 108, 21, + 22, 193, 101, 208, 108, 21, 22, 208, 107, 21, 22, 193, 101, 208, 107, 21, + 22, 208, 115, 21, 22, 193, 101, 208, 115, 21, 22, 208, 114, 21, 22, 193, + 101, 208, 114, 21, 22, 192, 158, 208, 114, 21, 22, 210, 226, 21, 22, 193, + 101, 210, 226, 21, 22, 98, 230, 83, 21, 22, 199, 140, 21, 22, 199, 237, + 21, 22, 198, 188, 21, 22, 198, 165, 21, 22, 159, 21, 22, 198, 54, 21, 22, + 192, 158, 198, 54, 21, 22, 98, 237, 86, 21, 22, 98, 236, 255, 21, 22, + 199, 247, 21, 22, 199, 240, 21, 22, 197, 37, 21, 22, 193, 101, 197, 37, + 21, 22, 197, 15, 21, 22, 193, 101, 197, 15, 21, 22, 197, 14, 21, 22, 193, + 101, 197, 14, 21, 22, 109, 21, 22, 193, 101, 109, 21, 22, 197, 5, 21, 22, + 193, 101, 197, 5, 21, 22, 197, 39, 21, 22, 193, 101, 197, 39, 21, 22, + 197, 38, 21, 22, 193, 101, 197, 38, 21, 22, 214, 195, 197, 38, 21, 22, + 200, 39, 21, 22, 197, 123, 21, 22, 197, 107, 21, 22, 197, 105, 21, 22, + 197, 128, 21, 22, 221, 253, 21, 22, 222, 94, 21, 22, 221, 142, 21, 22, + 221, 121, 21, 22, 221, 43, 21, 22, 221, 17, 21, 22, 192, 158, 221, 17, + 21, 22, 157, 21, 22, 222, 100, 21, 22, 220, 150, 21, 22, 193, 101, 220, + 150, 21, 22, 220, 148, 21, 22, 193, 101, 220, 148, 21, 22, 220, 147, 21, + 22, 193, 101, 220, 147, 21, 22, 220, 145, 21, 22, 193, 101, 220, 145, 21, + 22, 220, 144, 21, 22, 193, 101, 220, 144, 21, 22, 220, 155, 21, 22, 193, + 101, 220, 155, 21, 22, 220, 154, 21, 22, 193, 101, 220, 154, 21, 22, 214, + 195, 220, 154, 21, 22, 222, 125, 21, 22, 220, 156, 21, 22, 201, 252, 221, + 237, 21, 22, 201, 252, 221, 122, 21, 22, 201, 252, 221, 32, 21, 22, 201, + 252, 222, 77, 21, 22, 246, 250, 21, 22, 247, 110, 21, 22, 242, 237, 21, + 22, 242, 227, 21, 22, 242, 51, 21, 22, 238, 227, 21, 22, 192, 158, 238, + 227, 21, 22, 247, 112, 21, 22, 247, 111, 21, 22, 238, 102, 21, 22, 193, + 101, 238, 102, 21, 22, 238, 100, 21, 22, 193, 101, 238, 100, 21, 22, 238, + 99, 21, 22, 193, 101, 238, 99, 21, 22, 238, 98, 21, 22, 193, 101, 238, + 98, 21, 22, 238, 97, 21, 22, 193, 101, 238, 97, 21, 22, 238, 104, 21, 22, + 193, 101, 238, 104, 21, 22, 238, 103, 21, 22, 193, 101, 238, 103, 21, 22, + 214, 195, 238, 103, 21, 22, 247, 145, 21, 22, 205, 96, 199, 46, 21, 22, + 216, 213, 21, 22, 217, 129, 21, 22, 216, 81, 21, 22, 216, 43, 21, 22, + 215, 251, 21, 22, 215, 194, 21, 22, 192, 158, 215, 194, 21, 22, 172, 21, + 22, 217, 130, 21, 22, 215, 64, 21, 22, 193, 101, 215, 64, 21, 22, 215, + 62, 21, 22, 193, 101, 215, 62, 21, 22, 215, 61, 21, 22, 193, 101, 215, + 61, 21, 22, 215, 60, 21, 22, 193, 101, 215, 60, 21, 22, 215, 59, 21, 22, + 193, 101, 215, 59, 21, 22, 215, 66, 21, 22, 193, 101, 215, 66, 21, 22, + 215, 65, 21, 22, 193, 101, 215, 65, 21, 22, 214, 195, 215, 65, 21, 22, + 218, 147, 21, 22, 193, 101, 218, 147, 21, 22, 216, 85, 21, 22, 250, 130, + 218, 147, 21, 22, 205, 96, 218, 147, 21, 22, 214, 107, 21, 22, 214, 235, + 21, 22, 213, 205, 21, 22, 213, 172, 21, 22, 213, 30, 21, 22, 213, 13, 21, + 22, 192, 158, 213, 13, 21, 22, 180, 21, 22, 214, 236, 21, 22, 212, 95, + 21, 22, 193, 101, 212, 95, 21, 22, 212, 97, 21, 22, 193, 101, 212, 97, + 21, 22, 212, 96, 21, 22, 193, 101, 212, 96, 21, 22, 214, 195, 212, 96, + 21, 22, 215, 47, 21, 22, 98, 214, 56, 21, 22, 213, 211, 21, 22, 219, 214, + 21, 22, 220, 100, 21, 22, 219, 122, 21, 22, 219, 104, 21, 22, 219, 19, + 21, 22, 218, 240, 21, 22, 192, 158, 218, 240, 21, 22, 171, 21, 22, 220, + 101, 21, 22, 218, 168, 21, 22, 193, 101, 218, 168, 21, 22, 218, 167, 21, + 22, 193, 101, 218, 167, 21, 22, 218, 166, 21, 22, 193, 101, 218, 166, 21, + 22, 218, 165, 21, 22, 193, 101, 218, 165, 21, 22, 218, 164, 21, 22, 193, + 101, 218, 164, 21, 22, 218, 170, 21, 22, 193, 101, 218, 170, 21, 22, 218, + 169, 21, 22, 193, 101, 218, 169, 21, 22, 170, 21, 22, 193, 101, 170, 21, + 22, 216, 198, 170, 21, 22, 205, 63, 21, 22, 205, 190, 21, 22, 202, 217, + 21, 22, 202, 188, 21, 22, 202, 41, 21, 22, 202, 11, 21, 22, 192, 158, + 202, 11, 21, 22, 189, 21, 22, 205, 192, 21, 22, 200, 141, 21, 22, 193, + 101, 200, 141, 21, 22, 200, 135, 21, 22, 193, 101, 200, 135, 21, 22, 200, + 134, 21, 22, 193, 101, 200, 134, 21, 22, 200, 129, 21, 22, 193, 101, 200, + 129, 21, 22, 200, 128, 21, 22, 193, 101, 200, 128, 21, 22, 200, 146, 21, + 22, 193, 101, 200, 146, 21, 22, 200, 145, 21, 22, 193, 101, 200, 145, 21, + 22, 214, 195, 200, 145, 21, 22, 206, 3, 21, 22, 250, 130, 206, 3, 21, 22, + 200, 147, 21, 22, 248, 88, 206, 3, 21, 22, 215, 187, 202, 109, 21, 22, + 214, 195, 202, 96, 21, 22, 214, 195, 206, 1, 21, 22, 214, 195, 201, 187, + 21, 22, 214, 195, 201, 2, 21, 22, 214, 195, 202, 95, 21, 22, 214, 195, + 205, 66, 21, 22, 203, 108, 21, 22, 203, 76, 21, 22, 203, 71, 21, 22, 203, + 51, 21, 22, 203, 43, 21, 22, 203, 160, 21, 22, 203, 155, 21, 22, 202, + 232, 21, 22, 193, 101, 202, 232, 21, 22, 202, 231, 21, 22, 193, 101, 202, + 231, 21, 22, 202, 230, 21, 22, 193, 101, 202, 230, 21, 22, 202, 229, 21, + 22, 193, 101, 202, 229, 21, 22, 202, 228, 21, 22, 193, 101, 202, 228, 21, + 22, 202, 235, 21, 22, 193, 101, 202, 235, 21, 22, 202, 234, 21, 22, 193, + 101, 202, 234, 21, 22, 203, 162, 21, 22, 192, 80, 21, 22, 192, 138, 21, + 22, 192, 33, 21, 22, 192, 23, 21, 22, 192, 12, 21, 22, 191, 246, 21, 22, + 192, 158, 191, 246, 21, 22, 169, 21, 22, 192, 140, 21, 22, 191, 181, 21, + 22, 193, 101, 191, 181, 21, 22, 191, 180, 21, 22, 193, 101, 191, 180, 21, + 22, 191, 179, 21, 22, 193, 101, 191, 179, 21, 22, 191, 178, 21, 22, 193, + 101, 191, 178, 21, 22, 191, 177, 21, 22, 193, 101, 191, 177, 21, 22, 191, + 183, 21, 22, 193, 101, 191, 183, 21, 22, 191, 182, 21, 22, 193, 101, 191, + 182, 21, 22, 214, 195, 191, 182, 21, 22, 192, 159, 21, 22, 248, 138, 192, + 159, 21, 22, 193, 101, 192, 159, 21, 22, 205, 96, 192, 33, 21, 22, 207, + 108, 21, 22, 207, 216, 207, 108, 21, 22, 193, 101, 219, 214, 21, 22, 207, + 172, 21, 22, 206, 252, 21, 22, 206, 190, 21, 22, 206, 157, 21, 22, 206, + 129, 21, 22, 193, 101, 219, 19, 21, 22, 166, 21, 22, 207, 173, 21, 22, + 193, 101, 171, 21, 22, 206, 20, 21, 22, 193, 101, 206, 20, 21, 22, 148, + 21, 22, 193, 101, 148, 21, 22, 216, 198, 148, 21, 22, 233, 18, 21, 22, + 233, 65, 21, 22, 232, 238, 21, 22, 232, 223, 21, 22, 232, 135, 21, 22, + 232, 123, 21, 22, 233, 68, 21, 22, 233, 67, 21, 22, 232, 24, 21, 22, 193, + 101, 232, 24, 21, 22, 233, 134, 21, 22, 199, 28, 21, 22, 215, 45, 199, + 28, 21, 22, 199, 6, 21, 22, 215, 45, 199, 6, 21, 22, 199, 0, 21, 22, 215, + 45, 199, 0, 21, 22, 198, 236, 21, 22, 198, 230, 21, 22, 199, 44, 21, 22, + 199, 43, 21, 22, 198, 198, 21, 22, 193, 101, 198, 198, 21, 22, 199, 46, + 21, 22, 197, 114, 21, 22, 197, 112, 21, 22, 197, 111, 21, 22, 197, 116, + 21, 22, 197, 117, 21, 22, 196, 254, 21, 22, 196, 253, 21, 22, 196, 252, + 21, 22, 197, 0, 21, 22, 212, 116, 229, 213, 21, 22, 212, 116, 229, 126, + 21, 22, 212, 116, 229, 98, 21, 22, 212, 116, 228, 247, 21, 22, 212, 116, + 228, 220, 21, 22, 212, 116, 144, 21, 22, 212, 116, 230, 58, 21, 22, 212, + 116, 230, 83, 21, 22, 212, 115, 230, 83, 21, 22, 229, 81, 21, 22, 208, + 85, 21, 22, 208, 51, 21, 22, 208, 45, 21, 22, 208, 39, 21, 22, 208, 34, + 21, 22, 208, 89, 21, 22, 208, 88, 21, 22, 208, 97, 21, 22, 198, 106, 21, + 22, 198, 104, 21, 22, 198, 103, 21, 22, 198, 107, 21, 22, 193, 101, 207, + 108, 21, 22, 193, 101, 206, 252, 21, 22, 193, 101, 206, 157, 21, 22, 193, + 101, 166, 21, 22, 214, 52, 21, 22, 214, 2, 21, 22, 213, 254, 21, 22, 213, + 235, 21, 22, 213, 230, 21, 22, 214, 54, 21, 22, 214, 53, 21, 22, 214, 56, + 21, 22, 213, 59, 21, 22, 205, 96, 203, 108, 21, 22, 205, 96, 203, 76, 21, + 22, 205, 96, 203, 51, 21, 22, 205, 96, 203, 160, 21, 22, 193, 27, 199, + 28, 21, 22, 193, 27, 199, 6, 21, 22, 193, 27, 198, 236, 21, 22, 193, 27, + 199, 44, 21, 22, 193, 27, 199, 46, 21, 22, 219, 129, 21, 22, 219, 128, + 21, 22, 219, 127, 21, 22, 219, 126, 21, 22, 219, 135, 21, 22, 219, 134, + 21, 22, 219, 136, 21, 22, 199, 45, 199, 28, 21, 22, 199, 45, 199, 6, 21, + 22, 199, 45, 199, 0, 21, 22, 199, 45, 198, 236, 21, 22, 199, 45, 198, + 230, 21, 22, 199, 45, 199, 44, 21, 22, 199, 45, 199, 43, 21, 22, 199, 45, + 199, 46, 21, 22, 251, 168, 250, 70, 21, 22, 248, 88, 73, 21, 22, 248, 88, + 70, 21, 22, 248, 88, 74, 21, 22, 248, 88, 65, 21, 22, 248, 88, 193, 123, + 21, 22, 248, 88, 193, 84, 21, 22, 248, 88, 193, 48, 21, 22, 248, 88, 193, + 187, 21, 22, 248, 88, 214, 107, 21, 22, 248, 88, 213, 205, 21, 22, 248, + 88, 213, 30, 21, 22, 248, 88, 180, 21, 22, 248, 88, 221, 253, 21, 22, + 248, 88, 221, 142, 21, 22, 248, 88, 221, 43, 21, 22, 248, 88, 157, 21, + 22, 205, 96, 229, 213, 21, 22, 205, 96, 229, 126, 21, 22, 205, 96, 228, + 247, 21, 22, 205, 96, 144, 21, 22, 98, 231, 22, 21, 22, 98, 231, 26, 21, + 22, 98, 231, 40, 21, 22, 98, 231, 39, 21, 22, 98, 231, 28, 21, 22, 98, + 231, 54, 21, 22, 98, 206, 63, 21, 22, 98, 206, 157, 21, 22, 98, 207, 108, + 21, 22, 98, 207, 79, 21, 22, 98, 206, 252, 21, 22, 98, 166, 21, 22, 98, + 193, 0, 21, 22, 98, 193, 48, 21, 22, 98, 193, 123, 21, 22, 98, 193, 112, + 21, 22, 98, 193, 84, 21, 22, 98, 193, 187, 21, 22, 98, 228, 87, 21, 22, + 98, 228, 88, 21, 22, 98, 228, 91, 21, 22, 98, 228, 90, 21, 22, 98, 228, + 89, 21, 22, 98, 228, 94, 21, 22, 98, 198, 208, 21, 22, 98, 198, 236, 21, + 22, 98, 199, 28, 21, 22, 98, 199, 26, 21, 22, 98, 199, 6, 21, 22, 98, + 199, 44, 21, 22, 98, 197, 95, 21, 22, 98, 197, 105, 21, 22, 98, 197, 123, + 21, 22, 98, 197, 122, 21, 22, 98, 197, 107, 21, 22, 98, 197, 128, 21, 22, + 98, 208, 158, 21, 22, 98, 209, 65, 21, 22, 98, 210, 53, 21, 22, 98, 210, + 40, 21, 22, 98, 209, 176, 21, 22, 98, 168, 21, 22, 98, 210, 226, 21, 22, + 98, 230, 146, 21, 22, 98, 230, 223, 21, 22, 98, 231, 128, 21, 22, 98, + 231, 120, 21, 22, 98, 231, 16, 21, 22, 98, 231, 203, 21, 22, 98, 221, + 151, 21, 22, 98, 221, 159, 21, 22, 98, 221, 173, 21, 22, 98, 221, 172, + 21, 22, 98, 221, 166, 21, 22, 98, 221, 190, 21, 22, 98, 221, 72, 21, 22, + 98, 221, 73, 21, 22, 98, 221, 76, 21, 22, 98, 221, 75, 21, 22, 98, 221, + 74, 21, 22, 98, 221, 77, 21, 22, 98, 221, 78, 21, 22, 98, 212, 165, 21, + 22, 98, 213, 30, 21, 22, 98, 214, 107, 21, 22, 98, 214, 96, 21, 22, 98, + 213, 205, 21, 22, 98, 180, 21, 22, 98, 215, 139, 21, 22, 98, 215, 251, + 21, 22, 98, 216, 213, 21, 22, 98, 216, 192, 21, 22, 98, 216, 81, 21, 22, + 98, 172, 21, 22, 98, 191, 225, 21, 22, 98, 192, 12, 21, 22, 98, 192, 80, + 21, 22, 98, 192, 77, 21, 22, 98, 192, 33, 21, 22, 98, 169, 21, 22, 98, + 222, 155, 21, 22, 205, 96, 222, 155, 21, 22, 98, 222, 174, 21, 22, 98, + 222, 238, 21, 22, 98, 222, 236, 21, 22, 98, 222, 217, 21, 22, 205, 96, + 222, 217, 21, 22, 98, 223, 4, 21, 22, 98, 222, 188, 21, 22, 98, 222, 192, + 21, 22, 98, 222, 202, 21, 22, 98, 222, 201, 21, 22, 98, 222, 200, 21, 22, + 98, 222, 203, 21, 22, 98, 218, 203, 21, 22, 98, 219, 19, 21, 22, 98, 219, + 214, 21, 22, 98, 219, 204, 21, 22, 98, 219, 122, 21, 22, 98, 171, 21, 22, + 98, 236, 134, 21, 22, 98, 236, 135, 21, 22, 98, 236, 140, 21, 22, 98, + 236, 139, 21, 22, 98, 236, 136, 21, 22, 98, 236, 141, 21, 22, 98, 219, + 125, 21, 22, 98, 219, 127, 21, 22, 98, 219, 131, 21, 22, 98, 219, 130, + 21, 22, 98, 219, 129, 21, 22, 98, 219, 135, 21, 22, 98, 198, 101, 21, 22, + 98, 198, 103, 21, 22, 98, 198, 106, 21, 22, 98, 198, 105, 21, 22, 98, + 198, 104, 21, 22, 98, 198, 107, 21, 22, 98, 198, 96, 21, 22, 98, 198, 97, + 21, 22, 98, 198, 109, 21, 22, 98, 198, 108, 21, 22, 98, 198, 98, 21, 22, + 98, 198, 110, 21, 22, 98, 190, 251, 21, 22, 98, 191, 7, 21, 22, 98, 191, + 87, 21, 22, 98, 191, 84, 21, 22, 98, 191, 30, 21, 22, 98, 191, 123, 21, + 22, 98, 191, 166, 21, 22, 98, 89, 191, 166, 21, 22, 98, 234, 234, 21, 22, + 98, 234, 235, 21, 22, 98, 234, 244, 21, 22, 98, 234, 243, 21, 22, 98, + 234, 238, 21, 22, 98, 234, 247, 21, 22, 98, 200, 255, 21, 22, 98, 202, + 41, 21, 22, 98, 205, 63, 21, 22, 98, 205, 45, 21, 22, 98, 202, 217, 21, + 22, 98, 189, 21, 22, 98, 203, 0, 21, 22, 98, 203, 51, 21, 22, 98, 203, + 108, 21, 22, 98, 203, 106, 21, 22, 98, 203, 76, 21, 22, 98, 203, 160, 21, + 22, 98, 203, 162, 21, 22, 98, 197, 136, 21, 22, 98, 197, 140, 21, 22, 98, + 197, 157, 21, 22, 98, 197, 156, 21, 22, 98, 197, 142, 21, 22, 98, 197, + 164, 21, 22, 98, 243, 0, 21, 22, 98, 243, 20, 21, 22, 98, 243, 79, 21, + 22, 98, 243, 75, 21, 22, 98, 243, 47, 21, 22, 98, 246, 209, 21, 22, 98, + 197, 98, 21, 22, 98, 197, 99, 21, 22, 98, 197, 102, 21, 22, 98, 197, 101, + 21, 22, 98, 197, 100, 21, 22, 98, 197, 103, 21, 22, 243, 48, 57, 21, 22, + 232, 42, 201, 58, 21, 22, 208, 81, 21, 22, 214, 50, 21, 22, 213, 56, 21, + 22, 213, 55, 21, 22, 213, 54, 21, 22, 213, 53, 21, 22, 213, 58, 21, 22, + 213, 57, 21, 22, 193, 27, 198, 196, 21, 22, 193, 27, 198, 195, 21, 22, + 193, 27, 198, 194, 21, 22, 193, 27, 198, 193, 21, 22, 193, 27, 198, 192, + 21, 22, 193, 27, 198, 199, 21, 22, 193, 27, 198, 198, 21, 22, 193, 27, + 52, 199, 46, 21, 22, 248, 88, 193, 221, 211, 128, 201, 243, 77, 211, 128, + 1, 248, 189, 211, 128, 1, 218, 189, 211, 128, 1, 233, 15, 211, 128, 1, + 205, 174, 211, 128, 1, 213, 153, 211, 128, 1, 196, 161, 211, 128, 1, 237, + 214, 211, 128, 1, 198, 134, 211, 128, 1, 242, 38, 211, 128, 1, 246, 237, + 211, 128, 1, 215, 122, 211, 128, 1, 230, 200, 211, 128, 1, 214, 40, 211, + 128, 1, 201, 49, 211, 128, 1, 206, 50, 211, 128, 1, 251, 180, 211, 128, + 1, 211, 80, 211, 128, 1, 196, 58, 211, 128, 1, 234, 171, 211, 128, 1, + 223, 59, 211, 128, 1, 234, 172, 211, 128, 1, 211, 45, 211, 128, 1, 196, + 132, 211, 128, 1, 223, 176, 211, 128, 1, 234, 169, 211, 128, 1, 210, 29, + 211, 128, 233, 14, 77, 211, 128, 207, 13, 233, 14, 77, 206, 39, 1, 233, + 4, 232, 251, 233, 19, 233, 134, 206, 39, 1, 196, 8, 206, 39, 1, 196, 43, + 196, 59, 69, 206, 39, 1, 191, 228, 206, 39, 1, 192, 159, 206, 39, 1, 193, + 221, 206, 39, 1, 198, 201, 198, 200, 198, 228, 206, 39, 1, 233, 206, 206, + 39, 1, 251, 39, 65, 206, 39, 1, 211, 27, 74, 206, 39, 1, 252, 12, 65, + 206, 39, 1, 251, 213, 206, 39, 1, 218, 247, 74, 206, 39, 1, 203, 28, 74, + 206, 39, 1, 74, 206, 39, 1, 211, 139, 206, 39, 1, 211, 93, 206, 39, 1, + 207, 149, 207, 164, 207, 64, 148, 206, 39, 1, 222, 13, 206, 39, 1, 246, + 233, 206, 39, 1, 222, 14, 222, 125, 206, 39, 1, 232, 14, 206, 39, 1, 234, + 46, 206, 39, 1, 231, 123, 230, 89, 232, 14, 206, 39, 1, 231, 163, 206, + 39, 1, 192, 248, 192, 239, 193, 221, 206, 39, 1, 230, 49, 230, 83, 206, + 39, 1, 230, 53, 230, 83, 206, 39, 1, 218, 249, 230, 83, 206, 39, 1, 203, + 31, 230, 83, 206, 39, 1, 214, 189, 212, 78, 214, 190, 215, 47, 206, 39, + 1, 203, 29, 215, 47, 206, 39, 1, 235, 91, 206, 39, 1, 223, 37, 223, 41, + 223, 27, 70, 206, 39, 1, 73, 206, 39, 1, 222, 228, 223, 7, 206, 39, 1, + 231, 104, 206, 39, 1, 218, 250, 251, 229, 206, 39, 1, 203, 33, 65, 206, + 39, 1, 223, 19, 234, 19, 206, 39, 1, 209, 238, 210, 9, 210, 226, 206, 39, + 1, 251, 134, 234, 17, 206, 39, 1, 201, 249, 206, 3, 206, 39, 1, 202, 193, + 218, 246, 206, 3, 206, 39, 1, 203, 27, 206, 3, 206, 39, 1, 247, 145, 206, + 39, 1, 191, 166, 206, 39, 1, 198, 115, 198, 127, 196, 238, 200, 39, 206, + 39, 1, 203, 26, 200, 39, 206, 39, 1, 238, 80, 206, 39, 1, 248, 167, 248, + 170, 248, 94, 250, 70, 206, 39, 1, 203, 32, 250, 70, 206, 39, 1, 235, 90, + 206, 39, 1, 211, 59, 206, 39, 1, 234, 124, 234, 131, 73, 206, 39, 1, 217, + 59, 217, 71, 218, 147, 206, 39, 1, 218, 248, 218, 147, 206, 39, 1, 203, + 30, 218, 147, 206, 39, 1, 219, 229, 220, 77, 219, 2, 170, 206, 39, 1, + 235, 92, 206, 39, 1, 223, 107, 206, 39, 1, 223, 108, 206, 39, 1, 237, + 228, 237, 234, 238, 80, 206, 39, 1, 211, 18, 233, 205, 74, 206, 39, 1, + 234, 167, 206, 39, 1, 223, 57, 206, 39, 1, 238, 101, 206, 39, 1, 247, 95, + 206, 39, 1, 246, 249, 206, 39, 1, 201, 103, 206, 39, 1, 218, 245, 206, + 39, 1, 203, 25, 206, 39, 1, 227, 251, 206, 39, 1, 208, 97, 206, 39, 1, + 192, 235, 206, 39, 202, 165, 208, 144, 206, 39, 215, 114, 208, 144, 206, + 39, 238, 171, 208, 144, 206, 39, 250, 202, 113, 206, 39, 197, 41, 113, + 206, 39, 248, 187, 113, 206, 39, 1, 222, 125, 206, 39, 1, 203, 162, 206, + 39, 1, 211, 76, 206, 39, 1, 232, 72, 247, 33, 211, 26, 206, 39, 1, 232, + 72, 247, 33, 223, 40, 206, 39, 1, 232, 72, 247, 33, 234, 130, 206, 39, 1, + 232, 72, 247, 33, 252, 11, 206, 39, 1, 232, 72, 247, 33, 251, 213, 199, + 217, 1, 65, 199, 217, 1, 70, 199, 217, 1, 69, 199, 217, 1, 157, 199, 217, + 1, 231, 203, 199, 217, 1, 214, 54, 199, 217, 1, 199, 247, 199, 217, 1, + 237, 241, 199, 217, 1, 180, 199, 217, 1, 168, 199, 217, 1, 249, 103, 199, + 217, 1, 172, 199, 217, 1, 169, 199, 217, 1, 166, 199, 217, 1, 171, 199, + 217, 1, 193, 187, 199, 217, 1, 189, 199, 217, 1, 144, 199, 217, 18, 3, + 70, 199, 217, 18, 3, 69, 199, 217, 3, 195, 37, 199, 217, 3, 210, 159, + 199, 217, 1, 250, 220, 166, 229, 246, 1, 65, 229, 246, 1, 70, 229, 246, + 1, 69, 229, 246, 1, 157, 229, 246, 1, 231, 203, 229, 246, 1, 214, 54, + 229, 246, 1, 199, 247, 229, 246, 1, 237, 241, 229, 246, 1, 180, 229, 246, + 1, 168, 229, 246, 1, 249, 103, 229, 246, 1, 172, 229, 246, 1, 169, 229, + 246, 1, 166, 229, 246, 1, 171, 229, 246, 1, 193, 187, 229, 246, 1, 189, + 229, 246, 1, 144, 229, 246, 18, 3, 70, 229, 246, 18, 3, 69, 229, 246, 3, + 210, 159, 209, 195, 202, 165, 208, 144, 209, 195, 54, 208, 144, 247, 208, + 1, 65, 247, 208, 1, 70, 247, 208, 1, 69, 247, 208, 1, 157, 247, 208, 1, + 231, 203, 247, 208, 1, 214, 54, 247, 208, 1, 199, 247, 247, 208, 1, 237, + 241, 247, 208, 1, 180, 247, 208, 1, 168, 247, 208, 1, 249, 103, 247, 208, + 1, 172, 247, 208, 1, 169, 247, 208, 1, 166, 247, 208, 1, 171, 247, 208, + 1, 193, 187, 247, 208, 1, 189, 247, 208, 1, 144, 247, 208, 18, 3, 70, + 247, 208, 18, 3, 69, 199, 216, 1, 65, 199, 216, 1, 70, 199, 216, 1, 69, + 199, 216, 1, 157, 199, 216, 1, 231, 203, 199, 216, 1, 214, 54, 199, 216, + 1, 199, 247, 199, 216, 1, 237, 241, 199, 216, 1, 180, 199, 216, 1, 168, + 199, 216, 1, 249, 103, 199, 216, 1, 172, 199, 216, 1, 169, 199, 216, 1, + 171, 199, 216, 1, 193, 187, 199, 216, 1, 189, 199, 216, 18, 3, 70, 199, + 216, 18, 3, 69, 94, 1, 157, 94, 1, 221, 190, 94, 1, 221, 43, 94, 1, 221, + 159, 94, 1, 213, 235, 94, 1, 247, 112, 94, 1, 246, 209, 94, 1, 242, 51, + 94, 1, 243, 20, 94, 1, 212, 52, 94, 1, 237, 241, 94, 1, 197, 116, 94, 1, + 236, 129, 94, 1, 197, 111, 94, 1, 213, 36, 94, 1, 199, 247, 94, 1, 199, + 44, 94, 1, 159, 94, 1, 198, 236, 94, 1, 213, 30, 94, 1, 249, 103, 94, 1, + 209, 219, 94, 1, 209, 65, 94, 1, 209, 190, 94, 1, 215, 251, 94, 1, 192, + 12, 94, 1, 206, 157, 94, 1, 219, 19, 94, 1, 195, 21, 94, 1, 203, 160, 94, + 1, 201, 129, 94, 1, 189, 94, 1, 144, 94, 1, 171, 94, 1, 208, 89, 94, 223, + 121, 18, 208, 75, 94, 223, 121, 18, 208, 88, 94, 223, 121, 18, 208, 51, + 94, 223, 121, 18, 208, 45, 94, 223, 121, 18, 208, 27, 94, 223, 121, 18, + 207, 251, 94, 223, 121, 18, 207, 239, 94, 223, 121, 18, 207, 238, 94, + 223, 121, 18, 206, 12, 94, 223, 121, 18, 206, 5, 94, 223, 121, 18, 218, + 162, 94, 223, 121, 18, 218, 150, 94, 223, 121, 18, 208, 69, 94, 223, 121, + 18, 208, 81, 94, 223, 121, 18, 208, 35, 196, 251, 108, 94, 223, 121, 18, + 208, 35, 196, 251, 109, 94, 223, 121, 18, 208, 71, 94, 18, 223, 105, 250, + 243, 94, 18, 223, 105, 252, 154, 94, 18, 3, 252, 154, 94, 18, 3, 70, 94, + 18, 3, 223, 170, 94, 18, 3, 192, 159, 94, 18, 3, 191, 176, 94, 18, 3, 69, + 94, 18, 3, 196, 26, 94, 18, 3, 196, 164, 94, 18, 3, 211, 139, 94, 18, 3, + 169, 94, 18, 3, 223, 197, 94, 18, 3, 73, 94, 18, 3, 251, 229, 94, 18, 3, + 251, 184, 94, 18, 3, 211, 76, 94, 18, 3, 250, 113, 94, 3, 213, 170, 94, + 3, 207, 101, 94, 3, 191, 187, 94, 3, 215, 77, 94, 3, 197, 225, 94, 3, + 249, 40, 94, 3, 206, 146, 94, 3, 198, 85, 94, 3, 222, 68, 94, 3, 251, + 186, 94, 3, 205, 138, 205, 130, 94, 3, 195, 34, 94, 3, 242, 42, 94, 3, + 249, 10, 94, 3, 221, 180, 94, 3, 249, 35, 94, 3, 247, 83, 209, 137, 220, + 162, 94, 3, 219, 181, 198, 54, 94, 3, 248, 155, 94, 3, 209, 192, 215, + 132, 94, 3, 221, 15, 94, 238, 123, 16, 206, 236, 94, 3, 250, 94, 94, 3, + 250, 116, 94, 17, 191, 77, 94, 17, 108, 94, 17, 109, 94, 17, 139, 94, 17, + 137, 94, 17, 153, 94, 17, 173, 94, 17, 181, 94, 17, 176, 94, 17, 184, 94, + 16, 219, 181, 250, 118, 202, 14, 94, 16, 219, 181, 250, 118, 215, 98, 94, + 16, 219, 181, 250, 118, 209, 136, 94, 16, 219, 181, 250, 118, 248, 190, + 94, 16, 219, 181, 250, 118, 247, 188, 94, 16, 219, 181, 250, 118, 208, + 238, 94, 16, 219, 181, 250, 118, 208, 232, 94, 16, 219, 181, 250, 118, + 208, 230, 94, 16, 219, 181, 250, 118, 208, 236, 94, 16, 219, 181, 250, + 118, 208, 234, 102, 248, 110, 102, 234, 78, 102, 242, 26, 102, 232, 42, + 201, 58, 102, 242, 35, 102, 232, 90, 236, 94, 102, 198, 83, 202, 27, 228, + 58, 102, 202, 209, 5, 248, 25, 217, 32, 102, 217, 67, 242, 26, 102, 217, + 67, 232, 42, 201, 58, 102, 213, 151, 102, 232, 71, 66, 205, 30, 108, 102, + 232, 71, 66, 205, 30, 109, 102, 232, 71, 66, 205, 30, 139, 102, 18, 204, + 5, 102, 232, 71, 66, 205, 30, 137, 102, 17, 191, 77, 102, 17, 108, 102, + 17, 109, 102, 17, 139, 102, 17, 137, 102, 17, 153, 102, 17, 173, 102, 17, + 181, 102, 17, 176, 102, 17, 184, 102, 1, 65, 102, 1, 73, 102, 1, 70, 102, + 1, 74, 102, 1, 69, 102, 1, 211, 139, 102, 1, 196, 148, 102, 1, 234, 145, + 102, 1, 180, 102, 1, 251, 71, 102, 1, 249, 103, 102, 1, 168, 102, 1, 208, + 89, 102, 1, 231, 203, 102, 1, 172, 102, 1, 171, 102, 1, 189, 102, 1, 203, + 160, 102, 1, 199, 247, 102, 1, 237, 241, 102, 1, 246, 209, 102, 1, 223, + 4, 102, 1, 169, 102, 1, 166, 102, 1, 193, 187, 102, 1, 233, 68, 102, 1, + 157, 102, 1, 221, 190, 102, 1, 197, 164, 102, 1, 191, 123, 102, 1, 230, + 58, 102, 1, 190, 255, 102, 1, 219, 135, 102, 1, 191, 57, 102, 1, 243, 47, + 102, 1, 198, 83, 177, 18, 57, 102, 1, 198, 83, 73, 102, 1, 198, 83, 70, + 102, 1, 198, 83, 74, 102, 1, 198, 83, 69, 102, 1, 198, 83, 211, 139, 102, + 1, 198, 83, 196, 148, 102, 1, 198, 83, 251, 71, 102, 1, 198, 83, 249, + 103, 102, 1, 198, 83, 168, 102, 1, 198, 83, 208, 89, 102, 1, 198, 83, + 231, 203, 102, 1, 198, 83, 172, 102, 1, 198, 83, 199, 247, 102, 1, 198, + 83, 237, 241, 102, 1, 198, 83, 246, 209, 102, 1, 198, 83, 223, 4, 102, 1, + 198, 83, 197, 164, 102, 1, 198, 83, 169, 102, 1, 198, 83, 193, 187, 102, + 1, 198, 83, 157, 102, 1, 198, 83, 231, 200, 102, 1, 198, 83, 230, 58, + 102, 1, 198, 83, 222, 216, 102, 1, 198, 83, 213, 195, 102, 1, 198, 83, + 234, 247, 102, 1, 202, 209, 73, 102, 1, 202, 209, 70, 102, 1, 202, 209, + 223, 16, 102, 1, 202, 209, 196, 148, 102, 1, 202, 209, 69, 102, 1, 202, + 209, 251, 71, 102, 1, 202, 209, 157, 102, 1, 202, 209, 231, 203, 102, 1, + 202, 209, 144, 102, 1, 202, 209, 168, 102, 1, 202, 209, 203, 160, 102, 1, + 202, 209, 199, 247, 102, 1, 202, 209, 237, 241, 102, 1, 202, 209, 223, 4, + 102, 1, 202, 209, 233, 68, 102, 1, 202, 209, 231, 200, 102, 1, 202, 209, + 230, 58, 102, 1, 202, 209, 197, 164, 102, 1, 202, 209, 191, 123, 102, 1, + 202, 209, 207, 173, 102, 1, 202, 209, 246, 209, 102, 1, 202, 209, 191, + 71, 102, 1, 217, 67, 70, 102, 1, 217, 67, 157, 102, 1, 217, 67, 166, 102, + 1, 217, 67, 233, 68, 102, 1, 217, 67, 191, 71, 102, 1, 246, 210, 4, 103, + 236, 94, 102, 1, 251, 133, 231, 183, 251, 21, 108, 102, 1, 251, 133, 231, + 183, 195, 33, 108, 102, 1, 251, 133, 231, 183, 237, 202, 102, 1, 251, + 133, 231, 183, 196, 159, 102, 1, 251, 133, 231, 183, 223, 65, 196, 159, + 102, 1, 251, 133, 231, 183, 249, 54, 102, 1, 251, 133, 231, 183, 115, + 249, 54, 102, 1, 251, 133, 231, 183, 65, 102, 1, 251, 133, 231, 183, 70, + 102, 1, 251, 133, 231, 183, 157, 102, 1, 251, 133, 231, 183, 214, 54, + 102, 1, 251, 133, 231, 183, 247, 112, 102, 1, 251, 133, 231, 183, 197, + 128, 102, 1, 251, 133, 231, 183, 197, 116, 102, 1, 251, 133, 231, 183, + 237, 146, 102, 1, 251, 133, 231, 183, 213, 66, 102, 1, 251, 133, 231, + 183, 199, 247, 102, 1, 251, 133, 231, 183, 237, 241, 102, 1, 251, 133, + 231, 183, 168, 102, 1, 251, 133, 231, 183, 209, 219, 102, 1, 251, 133, + 231, 183, 201, 170, 102, 1, 251, 133, 231, 183, 191, 71, 102, 1, 251, + 133, 231, 183, 191, 123, 102, 1, 251, 133, 231, 183, 251, 193, 102, 1, + 198, 83, 251, 133, 231, 183, 199, 247, 102, 1, 198, 83, 251, 133, 231, + 183, 191, 71, 102, 1, 217, 67, 251, 133, 231, 183, 231, 54, 102, 1, 217, + 67, 251, 133, 231, 183, 214, 54, 102, 1, 217, 67, 251, 133, 231, 183, + 247, 112, 102, 1, 217, 67, 251, 133, 231, 183, 222, 225, 102, 1, 217, 67, + 251, 133, 231, 183, 197, 128, 102, 1, 217, 67, 251, 133, 231, 183, 237, + 130, 102, 1, 217, 67, 251, 133, 231, 183, 199, 247, 102, 1, 217, 67, 251, + 133, 231, 183, 237, 23, 102, 1, 217, 67, 251, 133, 231, 183, 201, 170, + 102, 1, 217, 67, 251, 133, 231, 183, 238, 95, 102, 1, 217, 67, 251, 133, + 231, 183, 191, 71, 102, 1, 217, 67, 251, 133, 231, 183, 191, 123, 102, 1, + 251, 133, 231, 183, 134, 69, 102, 1, 251, 133, 231, 183, 134, 169, 102, + 1, 217, 67, 251, 133, 231, 183, 248, 153, 102, 1, 251, 133, 231, 183, + 237, 229, 102, 1, 217, 67, 251, 133, 231, 183, 219, 135, 21, 22, 210, + 232, 21, 22, 250, 81, 21, 22, 252, 108, 21, 22, 193, 126, 21, 22, 208, + 244, 21, 22, 210, 62, 21, 22, 208, 106, 21, 22, 199, 149, 21, 22, 222, 4, + 21, 22, 220, 152, 21, 22, 217, 2, 21, 22, 212, 237, 21, 22, 214, 184, 21, + 22, 219, 224, 21, 22, 201, 247, 21, 22, 205, 98, 21, 22, 203, 13, 21, 22, + 203, 112, 21, 22, 202, 227, 21, 22, 191, 234, 21, 22, 192, 86, 21, 22, + 207, 117, 21, 22, 212, 94, 21, 22, 211, 116, 212, 94, 21, 22, 212, 93, + 21, 22, 211, 116, 212, 93, 21, 22, 212, 92, 21, 22, 211, 116, 212, 92, + 21, 22, 212, 91, 21, 22, 211, 116, 212, 91, 21, 22, 206, 17, 21, 22, 206, + 16, 21, 22, 206, 15, 21, 22, 206, 14, 21, 22, 206, 13, 21, 22, 206, 21, + 21, 22, 211, 116, 210, 226, 21, 22, 211, 116, 200, 39, 21, 22, 211, 116, + 222, 125, 21, 22, 211, 116, 247, 145, 21, 22, 211, 116, 218, 147, 21, 22, + 211, 116, 215, 47, 21, 22, 211, 116, 206, 3, 21, 22, 211, 116, 203, 162, + 21, 22, 234, 158, 193, 221, 21, 22, 193, 100, 193, 221, 21, 22, 52, 2, + 206, 183, 21, 22, 52, 207, 142, 236, 96, 21, 22, 207, 216, 206, 18, 21, + 22, 193, 101, 218, 240, 21, 22, 193, 101, 220, 101, 21, 22, 198, 197, 21, + 22, 198, 199, 21, 22, 197, 108, 21, 22, 197, 110, 21, 22, 197, 115, 21, + 22, 198, 100, 21, 22, 198, 102, 21, 22, 205, 96, 202, 232, 21, 22, 205, + 96, 203, 43, 21, 22, 205, 96, 228, 220, 21, 22, 98, 230, 97, 21, 22, 98, + 237, 58, 231, 120, 21, 22, 98, 231, 200, 21, 22, 98, 230, 102, 21, 22, + 205, 96, 222, 135, 21, 22, 98, 222, 133, 21, 22, 248, 211, 237, 58, 170, + 21, 22, 248, 211, 237, 58, 148, 21, 22, 98, 237, 53, 206, 3, 219, 98, + 194, 254, 219, 151, 219, 98, 1, 157, 219, 98, 1, 221, 190, 219, 98, 1, + 231, 203, 219, 98, 1, 231, 54, 219, 98, 1, 214, 54, 219, 98, 1, 247, 112, + 219, 98, 1, 246, 209, 219, 98, 1, 223, 4, 219, 98, 1, 222, 225, 219, 98, + 1, 192, 108, 219, 98, 1, 199, 247, 219, 98, 1, 199, 44, 219, 98, 1, 237, + 241, 219, 98, 1, 237, 23, 219, 98, 1, 180, 219, 98, 1, 168, 219, 98, 1, + 209, 219, 219, 98, 1, 249, 103, 219, 98, 1, 248, 153, 219, 98, 1, 172, + 219, 98, 1, 169, 219, 98, 1, 166, 219, 98, 1, 171, 219, 98, 1, 193, 187, + 219, 98, 1, 203, 160, 219, 98, 1, 201, 170, 219, 98, 1, 189, 219, 98, 1, + 144, 219, 98, 1, 230, 93, 219, 98, 1, 198, 22, 219, 98, 18, 3, 65, 219, + 98, 18, 3, 70, 219, 98, 18, 3, 69, 219, 98, 18, 3, 234, 145, 219, 98, 18, + 3, 251, 184, 219, 98, 18, 3, 211, 76, 219, 98, 18, 3, 250, 113, 219, 98, + 18, 3, 73, 219, 98, 18, 3, 74, 219, 98, 200, 234, 1, 169, 219, 98, 200, + 234, 1, 166, 219, 98, 200, 234, 1, 193, 187, 219, 98, 2, 1, 157, 219, 98, + 2, 1, 214, 54, 219, 98, 2, 1, 251, 20, 219, 98, 2, 1, 199, 247, 219, 98, + 2, 1, 180, 219, 98, 2, 1, 168, 219, 98, 2, 1, 172, 219, 98, 2, 1, 166, + 219, 98, 2, 1, 171, 219, 98, 3, 215, 119, 219, 98, 3, 221, 232, 219, 98, + 3, 205, 193, 219, 98, 3, 218, 240, 219, 98, 233, 175, 77, 219, 98, 208, + 8, 77, 219, 98, 17, 191, 77, 219, 98, 17, 108, 219, 98, 17, 109, 219, 98, + 17, 139, 219, 98, 17, 137, 219, 98, 17, 153, 219, 98, 17, 173, 219, 98, + 17, 181, 219, 98, 17, 176, 219, 98, 17, 184, 53, 219, 215, 1, 157, 53, + 219, 215, 1, 192, 220, 53, 219, 215, 1, 214, 54, 53, 219, 215, 1, 197, + 164, 53, 219, 215, 1, 189, 53, 219, 215, 1, 169, 53, 219, 215, 1, 199, + 247, 53, 219, 215, 1, 199, 44, 53, 219, 215, 1, 171, 53, 219, 215, 1, + 168, 53, 219, 215, 1, 209, 219, 53, 219, 215, 1, 172, 53, 219, 215, 1, + 233, 68, 53, 219, 215, 1, 195, 185, 53, 219, 215, 1, 144, 53, 219, 215, + 1, 208, 89, 53, 219, 215, 1, 221, 190, 53, 219, 215, 1, 197, 153, 53, + 219, 215, 1, 180, 53, 219, 215, 1, 65, 53, 219, 215, 1, 70, 53, 219, 215, + 1, 234, 145, 53, 219, 215, 1, 234, 130, 53, 219, 215, 1, 69, 53, 219, + 215, 1, 211, 76, 53, 219, 215, 1, 74, 53, 219, 215, 1, 196, 148, 53, 219, + 215, 1, 73, 53, 219, 215, 1, 250, 111, 53, 219, 215, 1, 251, 184, 53, + 219, 215, 1, 198, 72, 53, 219, 215, 1, 198, 71, 53, 219, 215, 1, 198, 70, + 53, 219, 215, 1, 198, 69, 53, 219, 215, 1, 198, 68, 214, 66, 53, 218, + 197, 1, 136, 208, 89, 214, 66, 53, 218, 197, 1, 131, 208, 89, 214, 66, + 53, 218, 197, 1, 136, 157, 214, 66, 53, 218, 197, 1, 136, 192, 220, 214, + 66, 53, 218, 197, 1, 136, 214, 54, 214, 66, 53, 218, 197, 1, 131, 157, + 214, 66, 53, 218, 197, 1, 131, 192, 220, 214, 66, 53, 218, 197, 1, 131, + 214, 54, 214, 66, 53, 218, 197, 1, 136, 197, 164, 214, 66, 53, 218, 197, + 1, 136, 189, 214, 66, 53, 218, 197, 1, 136, 169, 214, 66, 53, 218, 197, + 1, 131, 197, 164, 214, 66, 53, 218, 197, 1, 131, 189, 214, 66, 53, 218, + 197, 1, 131, 169, 214, 66, 53, 218, 197, 1, 136, 199, 247, 214, 66, 53, + 218, 197, 1, 136, 199, 44, 214, 66, 53, 218, 197, 1, 136, 180, 214, 66, + 53, 218, 197, 1, 131, 199, 247, 214, 66, 53, 218, 197, 1, 131, 199, 44, + 214, 66, 53, 218, 197, 1, 131, 180, 214, 66, 53, 218, 197, 1, 136, 168, + 214, 66, 53, 218, 197, 1, 136, 209, 219, 214, 66, 53, 218, 197, 1, 136, + 172, 214, 66, 53, 218, 197, 1, 131, 168, 214, 66, 53, 218, 197, 1, 131, + 209, 219, 214, 66, 53, 218, 197, 1, 131, 172, 214, 66, 53, 218, 197, 1, + 136, 233, 68, 214, 66, 53, 218, 197, 1, 136, 195, 185, 214, 66, 53, 218, + 197, 1, 136, 171, 214, 66, 53, 218, 197, 1, 131, 233, 68, 214, 66, 53, + 218, 197, 1, 131, 195, 185, 214, 66, 53, 218, 197, 1, 131, 171, 214, 66, + 53, 218, 197, 1, 136, 144, 214, 66, 53, 218, 197, 1, 136, 237, 241, 214, + 66, 53, 218, 197, 1, 136, 249, 103, 214, 66, 53, 218, 197, 1, 131, 144, + 214, 66, 53, 218, 197, 1, 131, 237, 241, 214, 66, 53, 218, 197, 1, 131, + 249, 103, 214, 66, 53, 218, 197, 1, 136, 220, 157, 214, 66, 53, 218, 197, + 1, 136, 192, 185, 214, 66, 53, 218, 197, 1, 131, 220, 157, 214, 66, 53, + 218, 197, 1, 131, 192, 185, 214, 66, 53, 218, 197, 1, 136, 200, 246, 214, + 66, 53, 218, 197, 1, 131, 200, 246, 214, 66, 53, 218, 197, 18, 3, 18, + 203, 23, 214, 66, 53, 218, 197, 18, 3, 252, 154, 214, 66, 53, 218, 197, + 18, 3, 223, 170, 214, 66, 53, 218, 197, 18, 3, 69, 214, 66, 53, 218, 197, + 18, 3, 196, 26, 214, 66, 53, 218, 197, 18, 3, 73, 214, 66, 53, 218, 197, + 18, 3, 251, 229, 214, 66, 53, 218, 197, 18, 3, 74, 214, 66, 53, 218, 197, + 18, 3, 211, 169, 214, 66, 53, 218, 197, 18, 3, 196, 148, 214, 66, 53, + 218, 197, 18, 3, 250, 81, 214, 66, 53, 218, 197, 18, 3, 252, 108, 214, + 66, 53, 218, 197, 18, 3, 196, 17, 214, 66, 53, 218, 197, 18, 3, 210, 232, + 214, 66, 53, 218, 197, 18, 3, 211, 166, 214, 66, 53, 218, 197, 18, 3, + 196, 140, 214, 66, 53, 218, 197, 18, 3, 223, 16, 214, 66, 53, 218, 197, + 1, 52, 196, 8, 214, 66, 53, 218, 197, 1, 52, 214, 56, 214, 66, 53, 218, + 197, 1, 52, 215, 47, 214, 66, 53, 218, 197, 1, 52, 218, 147, 214, 66, 53, + 218, 197, 1, 52, 222, 125, 214, 66, 53, 218, 197, 1, 52, 238, 80, 214, + 66, 53, 218, 197, 1, 52, 250, 70, 214, 66, 53, 218, 197, 163, 217, 36, + 214, 66, 53, 218, 197, 163, 217, 35, 214, 66, 53, 218, 197, 17, 191, 77, + 214, 66, 53, 218, 197, 17, 108, 214, 66, 53, 218, 197, 17, 109, 214, 66, + 53, 218, 197, 17, 139, 214, 66, 53, 218, 197, 17, 137, 214, 66, 53, 218, + 197, 17, 153, 214, 66, 53, 218, 197, 17, 173, 214, 66, 53, 218, 197, 17, + 181, 214, 66, 53, 218, 197, 17, 176, 214, 66, 53, 218, 197, 17, 184, 214, + 66, 53, 218, 197, 128, 17, 108, 214, 66, 53, 218, 197, 3, 220, 83, 214, + 66, 53, 218, 197, 3, 220, 82, 94, 16, 210, 74, 94, 16, 215, 99, 221, 34, + 94, 16, 209, 137, 221, 34, 94, 16, 248, 191, 221, 34, 94, 16, 247, 189, + 221, 34, 94, 16, 208, 239, 221, 34, 94, 16, 208, 233, 221, 34, 94, 16, + 208, 231, 221, 34, 94, 16, 208, 237, 221, 34, 94, 16, 208, 235, 221, 34, + 94, 16, 237, 187, 221, 34, 94, 16, 237, 183, 221, 34, 94, 16, 237, 182, + 221, 34, 94, 16, 237, 185, 221, 34, 94, 16, 237, 184, 221, 34, 94, 16, + 237, 181, 221, 34, 94, 16, 197, 47, 94, 16, 215, 99, 206, 144, 94, 16, + 209, 137, 206, 144, 94, 16, 248, 191, 206, 144, 94, 16, 247, 189, 206, + 144, 94, 16, 208, 239, 206, 144, 94, 16, 208, 233, 206, 144, 94, 16, 208, + 231, 206, 144, 94, 16, 208, 237, 206, 144, 94, 16, 208, 235, 206, 144, + 94, 16, 237, 187, 206, 144, 94, 16, 237, 183, 206, 144, 94, 16, 237, 182, + 206, 144, 94, 16, 237, 185, 206, 144, 94, 16, 237, 184, 206, 144, 94, 16, + 237, 181, 206, 144, 247, 209, 1, 157, 247, 209, 1, 231, 203, 247, 209, 1, + 214, 54, 247, 209, 1, 213, 253, 247, 209, 1, 168, 247, 209, 1, 249, 103, + 247, 209, 1, 172, 247, 209, 1, 215, 150, 247, 209, 1, 199, 247, 247, 209, + 1, 237, 241, 247, 209, 1, 180, 247, 209, 1, 212, 231, 247, 209, 1, 247, + 112, 247, 209, 1, 223, 4, 247, 209, 1, 212, 88, 247, 209, 1, 212, 79, + 247, 209, 1, 169, 247, 209, 1, 166, 247, 209, 1, 171, 247, 209, 1, 195, + 185, 247, 209, 1, 189, 247, 209, 1, 65, 247, 209, 1, 144, 247, 209, 18, + 3, 70, 247, 209, 18, 3, 69, 247, 209, 18, 3, 73, 247, 209, 18, 3, 74, + 247, 209, 18, 3, 251, 229, 247, 209, 210, 174, 247, 209, 234, 53, 80, + 205, 48, 53, 128, 1, 136, 157, 53, 128, 1, 136, 221, 190, 53, 128, 1, + 136, 220, 141, 53, 128, 1, 131, 157, 53, 128, 1, 131, 220, 141, 53, 128, + 1, 131, 221, 190, 53, 128, 1, 214, 54, 53, 128, 1, 136, 247, 112, 53, + 128, 1, 136, 246, 209, 53, 128, 1, 131, 247, 112, 53, 128, 1, 131, 189, + 53, 128, 1, 131, 246, 209, 53, 128, 1, 212, 88, 53, 128, 1, 207, 124, 53, + 128, 1, 136, 207, 122, 53, 128, 1, 237, 241, 53, 128, 1, 131, 207, 122, + 53, 128, 1, 207, 133, 53, 128, 1, 136, 199, 247, 53, 128, 1, 136, 199, + 44, 53, 128, 1, 131, 199, 247, 53, 128, 1, 131, 199, 44, 53, 128, 1, 180, + 53, 128, 1, 249, 103, 53, 128, 1, 136, 168, 53, 128, 1, 136, 209, 219, + 53, 128, 1, 136, 233, 68, 53, 128, 1, 131, 168, 53, 128, 1, 131, 233, 68, + 53, 128, 1, 131, 209, 219, 53, 128, 1, 172, 53, 128, 1, 131, 169, 53, + 128, 1, 136, 169, 53, 128, 1, 166, 53, 128, 1, 206, 52, 53, 128, 1, 171, + 53, 128, 1, 218, 196, 53, 128, 1, 193, 187, 53, 128, 1, 136, 203, 160, + 53, 128, 1, 136, 201, 170, 53, 128, 1, 136, 189, 53, 128, 1, 136, 144, + 53, 128, 1, 219, 49, 53, 128, 1, 65, 53, 128, 1, 131, 144, 53, 128, 1, + 70, 53, 128, 1, 223, 170, 53, 128, 1, 69, 53, 128, 1, 196, 26, 53, 128, + 1, 234, 145, 53, 128, 1, 211, 76, 53, 128, 1, 220, 83, 53, 128, 1, 230, + 172, 189, 53, 128, 119, 3, 216, 198, 166, 53, 128, 119, 3, 216, 198, 171, + 53, 128, 119, 3, 220, 102, 199, 185, 220, 72, 53, 128, 3, 217, 92, 222, + 58, 220, 72, 53, 128, 119, 3, 52, 214, 54, 53, 128, 119, 3, 131, 168, 53, + 128, 119, 3, 136, 207, 123, 211, 46, 131, 168, 53, 128, 119, 3, 172, 53, + 128, 119, 3, 249, 103, 53, 128, 119, 3, 189, 53, 128, 3, 205, 167, 53, + 128, 18, 3, 65, 53, 128, 18, 3, 217, 92, 205, 117, 53, 128, 18, 3, 252, + 154, 53, 128, 18, 3, 199, 195, 252, 154, 53, 128, 18, 3, 70, 53, 128, 18, + 3, 223, 170, 53, 128, 18, 3, 196, 148, 53, 128, 18, 3, 196, 25, 53, 128, + 18, 3, 69, 53, 128, 18, 3, 196, 26, 53, 128, 18, 3, 74, 53, 128, 18, 3, + 211, 170, 60, 53, 128, 18, 3, 210, 232, 53, 128, 18, 3, 73, 53, 128, 18, + 3, 251, 229, 53, 128, 18, 3, 211, 76, 53, 128, 18, 3, 251, 184, 53, 128, + 18, 3, 128, 251, 184, 53, 128, 18, 3, 211, 170, 56, 53, 128, 3, 217, 92, + 222, 57, 53, 128, 3, 198, 73, 53, 128, 3, 198, 72, 53, 128, 3, 221, 147, + 198, 71, 53, 128, 3, 221, 147, 198, 70, 53, 128, 3, 221, 147, 198, 69, + 53, 128, 3, 207, 181, 230, 57, 53, 128, 3, 217, 92, 205, 147, 53, 128, 3, + 221, 146, 222, 38, 53, 128, 33, 238, 151, 236, 96, 53, 128, 228, 211, 17, + 191, 77, 53, 128, 228, 211, 17, 108, 53, 128, 228, 211, 17, 109, 53, 128, + 228, 211, 17, 139, 53, 128, 228, 211, 17, 137, 53, 128, 228, 211, 17, + 153, 53, 128, 228, 211, 17, 173, 53, 128, 228, 211, 17, 181, 53, 128, + 228, 211, 17, 176, 53, 128, 228, 211, 17, 184, 53, 128, 128, 17, 191, 77, + 53, 128, 128, 17, 108, 53, 128, 128, 17, 109, 53, 128, 128, 17, 139, 53, + 128, 128, 17, 137, 53, 128, 128, 17, 153, 53, 128, 128, 17, 173, 53, 128, + 128, 17, 181, 53, 128, 128, 17, 176, 53, 128, 128, 17, 184, 53, 128, 3, + 193, 78, 53, 128, 3, 193, 77, 53, 128, 3, 205, 102, 53, 128, 3, 221, 221, + 53, 128, 3, 228, 139, 53, 128, 3, 236, 112, 53, 128, 3, 207, 13, 206, + 117, 207, 133, 53, 128, 3, 217, 92, 192, 109, 53, 128, 3, 222, 93, 53, + 128, 3, 222, 92, 53, 128, 3, 205, 112, 53, 128, 3, 205, 111, 53, 128, 3, + 229, 249, 53, 128, 3, 247, 109, 33, 235, 84, 242, 210, 252, 8, 33, 236, + 252, 33, 223, 111, 33, 235, 75, 55, 33, 197, 221, 236, 96, 33, 192, 233, + 60, 33, 193, 70, 219, 89, 60, 33, 211, 66, 87, 60, 33, 54, 211, 66, 87, + 60, 33, 155, 246, 231, 201, 23, 60, 33, 201, 9, 246, 231, 201, 23, 60, + 33, 210, 105, 56, 33, 54, 210, 105, 56, 33, 210, 105, 60, 33, 210, 105, + 210, 245, 33, 8, 2, 1, 193, 222, 60, 33, 8, 2, 1, 152, 193, 222, 60, 33, + 45, 210, 104, 95, 219, 200, 33, 50, 210, 104, 95, 187, 33, 45, 210, 104, + 248, 183, 219, 200, 33, 50, 210, 104, 248, 183, 187, 33, 51, 248, 3, 56, + 33, 31, 3, 56, 33, 223, 65, 54, 250, 221, 56, 33, 107, 3, 56, 33, 54, + 107, 3, 56, 33, 54, 107, 3, 60, 33, 197, 221, 251, 251, 252, 8, 33, 8, 2, + 1, 223, 87, 232, 14, 33, 8, 2, 1, 223, 87, 148, 33, 8, 2, 1, 223, 87, + 200, 39, 147, 3, 196, 119, 206, 239, 147, 3, 196, 119, 247, 73, 147, 3, + 246, 246, 147, 3, 200, 168, 147, 3, 248, 107, 147, 1, 251, 163, 147, 1, + 251, 164, 199, 118, 147, 1, 223, 165, 147, 1, 223, 166, 199, 118, 147, 1, + 196, 122, 147, 1, 196, 123, 199, 118, 147, 1, 207, 181, 207, 46, 147, 1, + 207, 181, 207, 47, 199, 118, 147, 1, 220, 102, 219, 175, 147, 1, 220, + 102, 219, 176, 199, 118, 147, 1, 234, 102, 147, 1, 251, 181, 147, 1, 211, + 112, 147, 1, 211, 113, 199, 118, 147, 1, 157, 147, 1, 222, 115, 217, 95, + 147, 1, 231, 203, 147, 1, 231, 204, 230, 207, 147, 1, 214, 54, 147, 1, + 247, 112, 147, 1, 247, 113, 220, 88, 147, 1, 223, 4, 147, 1, 223, 5, 222, + 229, 147, 1, 212, 88, 147, 1, 199, 248, 219, 234, 147, 1, 199, 248, 215, + 94, 217, 95, 147, 1, 237, 242, 215, 94, 251, 111, 147, 1, 237, 242, 215, + 94, 217, 95, 147, 1, 214, 249, 207, 136, 147, 1, 199, 247, 147, 1, 199, + 248, 199, 153, 147, 1, 237, 241, 147, 1, 237, 242, 217, 117, 147, 1, 180, + 147, 1, 168, 147, 1, 210, 211, 222, 50, 147, 1, 249, 103, 147, 1, 249, + 104, 221, 233, 147, 1, 172, 147, 1, 169, 147, 1, 166, 147, 1, 171, 147, + 1, 193, 187, 147, 1, 205, 202, 205, 179, 147, 1, 205, 202, 205, 124, 147, + 1, 189, 147, 1, 144, 147, 3, 207, 36, 147, 18, 3, 199, 118, 147, 18, 3, + 196, 118, 147, 18, 3, 196, 119, 205, 120, 147, 18, 3, 200, 203, 147, 18, + 3, 200, 204, 223, 157, 147, 18, 3, 207, 181, 207, 46, 147, 18, 3, 207, + 181, 207, 47, 199, 118, 147, 18, 3, 220, 102, 219, 175, 147, 18, 3, 220, + 102, 219, 176, 199, 118, 147, 18, 3, 199, 196, 147, 18, 3, 199, 197, 207, + 46, 147, 18, 3, 199, 197, 199, 118, 147, 18, 3, 199, 197, 207, 47, 199, + 118, 147, 18, 3, 210, 7, 147, 18, 3, 210, 8, 199, 118, 147, 251, 241, + 251, 240, 147, 1, 222, 80, 205, 119, 147, 1, 221, 153, 205, 119, 147, 1, + 196, 231, 205, 119, 147, 1, 234, 139, 205, 119, 147, 1, 195, 151, 205, + 119, 147, 1, 191, 109, 205, 119, 147, 1, 250, 135, 205, 119, 147, 1, 250, + 220, 222, 175, 147, 17, 191, 77, 147, 17, 108, 147, 17, 109, 147, 17, + 139, 147, 17, 137, 147, 17, 153, 147, 17, 173, 147, 17, 181, 147, 17, + 176, 147, 17, 184, 147, 210, 135, 147, 210, 165, 147, 193, 62, 147, 247, + 46, 210, 158, 147, 247, 46, 202, 185, 147, 247, 46, 210, 102, 147, 210, + 164, 147, 37, 16, 236, 103, 147, 37, 16, 237, 57, 147, 37, 16, 235, 27, + 147, 37, 16, 237, 191, 147, 37, 16, 237, 192, 200, 168, 147, 37, 16, 236, + 197, 147, 37, 16, 237, 233, 147, 37, 16, 237, 32, 147, 37, 16, 237, 215, + 147, 37, 16, 237, 192, 231, 122, 147, 37, 16, 33, 199, 111, 147, 37, 16, + 33, 234, 50, 147, 37, 16, 33, 221, 228, 147, 37, 16, 33, 221, 230, 147, + 37, 16, 33, 222, 233, 147, 37, 16, 33, 221, 229, 4, 222, 233, 147, 37, + 16, 33, 221, 231, 4, 222, 233, 147, 37, 16, 33, 248, 176, 147, 37, 16, + 33, 230, 211, 147, 37, 16, 206, 201, 211, 66, 235, 38, 147, 37, 16, 206, + 201, 211, 66, 237, 231, 147, 37, 16, 206, 201, 242, 171, 197, 76, 147, + 37, 16, 206, 201, 242, 171, 199, 206, 147, 37, 16, 219, 198, 211, 66, + 210, 150, 147, 37, 16, 219, 198, 211, 66, 208, 142, 147, 37, 16, 219, + 198, 242, 171, 209, 96, 147, 37, 16, 219, 198, 242, 171, 209, 78, 147, + 37, 16, 219, 198, 211, 66, 209, 123, 147, 210, 136, 219, 251, 147, 210, + 166, 219, 251, 200, 192, 3, 210, 132, 200, 192, 3, 210, 146, 200, 192, 3, + 210, 142, 200, 192, 1, 65, 200, 192, 1, 70, 200, 192, 1, 69, 200, 192, 1, + 251, 229, 200, 192, 1, 74, 200, 192, 1, 73, 200, 192, 1, 233, 201, 200, + 192, 1, 157, 200, 192, 1, 208, 89, 200, 192, 1, 231, 203, 200, 192, 1, + 214, 54, 200, 192, 1, 247, 112, 200, 192, 1, 223, 4, 200, 192, 1, 191, + 123, 200, 192, 1, 212, 88, 200, 192, 1, 199, 247, 200, 192, 1, 237, 241, + 200, 192, 1, 180, 200, 192, 1, 168, 200, 192, 1, 233, 68, 200, 192, 1, + 195, 185, 200, 192, 1, 249, 103, 200, 192, 1, 172, 200, 192, 1, 169, 200, + 192, 1, 166, 200, 192, 1, 171, 200, 192, 1, 193, 187, 200, 192, 1, 189, + 200, 192, 1, 192, 220, 200, 192, 1, 144, 200, 192, 119, 3, 210, 162, 200, + 192, 119, 3, 210, 134, 200, 192, 119, 3, 210, 131, 200, 192, 18, 3, 210, + 149, 200, 192, 18, 3, 210, 130, 200, 192, 18, 3, 210, 155, 200, 192, 18, + 3, 210, 141, 200, 192, 18, 3, 210, 163, 200, 192, 18, 3, 210, 151, 200, + 192, 3, 210, 167, 200, 192, 3, 195, 37, 200, 192, 119, 3, 210, 90, 172, + 200, 192, 119, 3, 210, 90, 193, 187, 200, 192, 1, 221, 190, 200, 192, 1, + 200, 122, 200, 192, 17, 191, 77, 200, 192, 17, 108, 200, 192, 17, 109, + 200, 192, 17, 139, 200, 192, 17, 137, 200, 192, 17, 153, 200, 192, 17, + 173, 200, 192, 17, 181, 200, 192, 17, 176, 200, 192, 17, 184, 200, 192, + 250, 95, 200, 192, 1, 207, 16, 200, 192, 1, 219, 148, 200, 192, 1, 248, + 153, 200, 192, 1, 52, 222, 125, 200, 192, 1, 52, 218, 147, 249, 13, 1, + 65, 249, 13, 1, 202, 177, 65, 249, 13, 1, 144, 249, 13, 1, 202, 177, 144, + 249, 13, 1, 217, 65, 144, 249, 13, 1, 249, 103, 249, 13, 1, 222, 35, 249, + 103, 249, 13, 1, 168, 249, 13, 1, 202, 177, 168, 249, 13, 1, 180, 249, + 13, 1, 217, 65, 180, 249, 13, 1, 193, 187, 249, 13, 1, 202, 177, 193, + 187, 249, 13, 1, 210, 183, 193, 187, 249, 13, 1, 231, 203, 249, 13, 1, + 202, 177, 231, 203, 249, 13, 1, 223, 4, 249, 13, 1, 237, 241, 249, 13, 1, + 166, 249, 13, 1, 202, 177, 166, 249, 13, 1, 172, 249, 13, 1, 202, 177, + 172, 249, 13, 1, 201, 251, 199, 247, 249, 13, 1, 213, 3, 199, 247, 249, + 13, 1, 189, 249, 13, 1, 202, 177, 189, 249, 13, 1, 217, 65, 189, 249, 13, + 1, 169, 249, 13, 1, 202, 177, 169, 249, 13, 1, 214, 54, 249, 13, 1, 171, + 249, 13, 1, 202, 177, 171, 249, 13, 1, 212, 88, 249, 13, 1, 247, 112, + 249, 13, 1, 214, 148, 249, 13, 1, 216, 248, 249, 13, 1, 70, 249, 13, 1, + 69, 249, 13, 3, 198, 77, 249, 13, 18, 3, 73, 249, 13, 18, 3, 210, 183, + 73, 249, 13, 18, 3, 234, 145, 249, 13, 18, 3, 70, 249, 13, 18, 3, 222, + 35, 70, 249, 13, 18, 3, 74, 249, 13, 18, 3, 222, 35, 74, 249, 13, 18, 3, + 69, 249, 13, 18, 3, 126, 39, 202, 177, 189, 249, 13, 119, 3, 214, 56, + 249, 13, 119, 3, 230, 83, 249, 13, 210, 144, 249, 13, 210, 140, 249, 13, + 16, 248, 117, 214, 249, 216, 144, 249, 13, 16, 248, 117, 209, 129, 249, + 13, 16, 248, 117, 222, 152, 249, 13, 16, 248, 117, 210, 144, 219, 159, 1, + 157, 219, 159, 1, 221, 70, 219, 159, 1, 221, 190, 219, 159, 1, 231, 203, + 219, 159, 1, 230, 239, 219, 159, 1, 214, 54, 219, 159, 1, 247, 112, 219, + 159, 1, 246, 209, 219, 159, 1, 223, 4, 219, 159, 1, 212, 88, 219, 159, 1, + 199, 247, 219, 159, 1, 199, 44, 219, 159, 1, 237, 241, 219, 159, 1, 180, + 219, 159, 1, 168, 219, 159, 1, 209, 102, 219, 159, 1, 209, 219, 219, 159, + 1, 233, 68, 219, 159, 1, 232, 179, 219, 159, 1, 249, 103, 219, 159, 1, + 248, 92, 219, 159, 1, 172, 219, 159, 1, 216, 2, 219, 159, 1, 197, 164, + 219, 159, 1, 197, 153, 219, 159, 1, 234, 247, 219, 159, 1, 169, 219, 159, + 1, 166, 219, 159, 1, 171, 219, 159, 1, 144, 219, 159, 1, 229, 79, 219, + 159, 1, 195, 185, 219, 159, 1, 189, 219, 159, 1, 203, 160, 219, 159, 1, + 193, 187, 219, 159, 1, 65, 219, 159, 200, 234, 1, 169, 219, 159, 200, + 234, 1, 166, 219, 159, 18, 3, 252, 154, 219, 159, 18, 3, 70, 219, 159, + 18, 3, 74, 219, 159, 18, 3, 211, 76, 219, 159, 18, 3, 69, 219, 159, 18, + 3, 196, 26, 219, 159, 18, 3, 73, 219, 159, 119, 3, 222, 125, 219, 159, + 119, 3, 218, 147, 219, 159, 119, 3, 170, 219, 159, 119, 3, 215, 47, 219, + 159, 119, 3, 210, 226, 219, 159, 119, 3, 148, 219, 159, 119, 3, 200, 39, + 219, 159, 119, 3, 212, 60, 219, 159, 119, 3, 222, 57, 219, 159, 3, 207, + 134, 219, 159, 3, 212, 128, 219, 159, 208, 145, 199, 242, 219, 159, 208, + 145, 212, 72, 198, 191, 199, 242, 219, 159, 208, 145, 246, 218, 219, 159, + 208, 145, 197, 145, 246, 218, 219, 159, 208, 145, 197, 144, 219, 159, 17, + 191, 77, 219, 159, 17, 108, 219, 159, 17, 109, 219, 159, 17, 139, 219, + 159, 17, 137, 219, 159, 17, 153, 219, 159, 17, 173, 219, 159, 17, 181, + 219, 159, 17, 176, 219, 159, 17, 184, 219, 159, 1, 197, 128, 219, 159, 1, + 197, 116, 219, 159, 1, 237, 146, 211, 110, 243, 40, 17, 191, 77, 211, + 110, 243, 40, 17, 108, 211, 110, 243, 40, 17, 109, 211, 110, 243, 40, 17, + 139, 211, 110, 243, 40, 17, 137, 211, 110, 243, 40, 17, 153, 211, 110, + 243, 40, 17, 173, 211, 110, 243, 40, 17, 181, 211, 110, 243, 40, 17, 176, + 211, 110, 243, 40, 17, 184, 211, 110, 243, 40, 1, 171, 211, 110, 243, 40, + 1, 250, 132, 211, 110, 243, 40, 1, 251, 201, 211, 110, 243, 40, 1, 251, + 71, 211, 110, 243, 40, 1, 251, 156, 211, 110, 243, 40, 1, 220, 101, 211, + 110, 243, 40, 1, 252, 116, 211, 110, 243, 40, 1, 252, 117, 211, 110, 243, + 40, 1, 252, 115, 211, 110, 243, 40, 1, 252, 109, 211, 110, 243, 40, 1, + 219, 122, 211, 110, 243, 40, 1, 223, 40, 211, 110, 243, 40, 1, 223, 171, + 211, 110, 243, 40, 1, 223, 62, 211, 110, 243, 40, 1, 223, 49, 211, 110, + 243, 40, 1, 218, 203, 211, 110, 243, 40, 1, 196, 156, 211, 110, 243, 40, + 1, 196, 154, 211, 110, 243, 40, 1, 196, 79, 211, 110, 243, 40, 1, 196, + 17, 211, 110, 243, 40, 1, 219, 214, 211, 110, 243, 40, 1, 234, 14, 211, + 110, 243, 40, 1, 234, 148, 211, 110, 243, 40, 1, 234, 61, 211, 110, 243, + 40, 1, 233, 240, 211, 110, 243, 40, 1, 219, 19, 211, 110, 243, 40, 1, + 211, 14, 211, 110, 243, 40, 1, 211, 165, 211, 110, 243, 40, 1, 210, 255, + 211, 110, 243, 40, 1, 211, 124, 211, 110, 243, 40, 215, 140, 197, 93, + 211, 110, 243, 40, 231, 198, 197, 94, 211, 110, 243, 40, 215, 134, 197, + 94, 211, 110, 243, 40, 207, 61, 211, 110, 243, 40, 209, 217, 211, 110, + 243, 40, 251, 192, 211, 110, 243, 40, 208, 145, 215, 130, 211, 110, 243, + 40, 208, 145, 54, 215, 130, 42, 2, 1, 206, 108, 195, 150, 42, 2, 1, 218, + 244, 237, 101, 42, 2, 1, 214, 201, 74, 42, 2, 1, 193, 76, 233, 236, 42, + 2, 1, 199, 195, 199, 140, 42, 2, 1, 198, 216, 199, 140, 42, 2, 1, 199, + 195, 229, 240, 57, 42, 2, 1, 199, 195, 192, 95, 42, 2, 1, 196, 104, 196, + 124, 100, 215, 141, 6, 1, 251, 81, 100, 215, 141, 6, 1, 249, 51, 100, + 215, 141, 6, 1, 231, 173, 100, 215, 141, 6, 1, 236, 105, 100, 215, 141, + 6, 1, 234, 61, 100, 215, 141, 6, 1, 195, 46, 100, 215, 141, 6, 1, 191, + 80, 100, 215, 141, 6, 1, 199, 188, 100, 215, 141, 6, 1, 223, 134, 100, + 215, 141, 6, 1, 222, 61, 100, 215, 141, 6, 1, 219, 239, 100, 215, 141, 6, + 1, 217, 70, 100, 215, 141, 6, 1, 214, 202, 100, 215, 141, 6, 1, 211, 93, + 100, 215, 141, 6, 1, 210, 121, 100, 215, 141, 6, 1, 191, 67, 100, 215, + 141, 6, 1, 207, 158, 100, 215, 141, 6, 1, 205, 137, 100, 215, 141, 6, 1, + 199, 174, 100, 215, 141, 6, 1, 196, 109, 100, 215, 141, 6, 1, 209, 211, + 100, 215, 141, 6, 1, 221, 176, 100, 215, 141, 6, 1, 231, 45, 100, 215, + 141, 6, 1, 208, 74, 100, 215, 141, 6, 1, 203, 64, 100, 215, 141, 6, 1, + 243, 33, 100, 215, 141, 6, 1, 247, 80, 100, 215, 141, 6, 1, 222, 207, + 100, 215, 141, 6, 1, 242, 226, 100, 215, 141, 6, 1, 246, 193, 100, 215, + 141, 6, 1, 192, 218, 100, 215, 141, 6, 1, 222, 222, 100, 215, 141, 6, 1, + 230, 54, 100, 215, 141, 6, 1, 229, 213, 100, 215, 141, 6, 1, 229, 113, + 100, 215, 141, 6, 1, 193, 123, 100, 215, 141, 6, 1, 229, 242, 100, 215, + 141, 6, 1, 228, 235, 100, 215, 141, 6, 1, 232, 238, 100, 215, 141, 6, 1, + 192, 14, 100, 215, 141, 6, 1, 234, 80, 100, 215, 141, 6, 1, 152, 231, + 173, 100, 215, 141, 6, 1, 251, 178, 100, 215, 141, 6, 1, 251, 218, 100, + 215, 141, 6, 1, 229, 240, 57, 100, 215, 141, 6, 1, 220, 92, 57, 200, 192, + 208, 145, 248, 117, 200, 161, 200, 192, 208, 145, 248, 117, 210, 145, + 200, 192, 208, 145, 248, 117, 208, 132, 200, 192, 208, 145, 248, 117, + 247, 97, 200, 192, 208, 145, 248, 117, 219, 149, 205, 116, 200, 192, 208, + 145, 248, 117, 222, 115, 205, 116, 200, 192, 208, 145, 248, 117, 237, + 242, 205, 116, 200, 192, 208, 145, 248, 117, 249, 104, 205, 116, 195, + 147, 163, 222, 31, 195, 147, 163, 203, 125, 195, 147, 163, 208, 218, 195, + 147, 3, 213, 173, 195, 147, 3, 192, 117, 216, 64, 200, 152, 195, 147, + 163, 192, 117, 251, 197, 223, 121, 200, 152, 195, 147, 163, 192, 117, + 223, 121, 200, 152, 195, 147, 163, 192, 117, 222, 19, 223, 121, 200, 152, + 195, 147, 163, 247, 74, 60, 195, 147, 163, 192, 117, 222, 19, 223, 121, + 200, 153, 205, 83, 195, 147, 163, 54, 200, 152, 195, 147, 163, 197, 221, + 200, 152, 195, 147, 163, 222, 19, 251, 22, 195, 147, 163, 75, 60, 195, + 147, 163, 103, 183, 60, 195, 147, 163, 115, 183, 60, 195, 147, 163, 206, + 191, 222, 30, 223, 121, 200, 152, 195, 147, 163, 250, 129, 223, 121, 200, + 152, 195, 147, 3, 195, 33, 200, 152, 195, 147, 3, 195, 33, 196, 150, 195, + 147, 3, 207, 13, 195, 33, 196, 150, 195, 147, 3, 195, 33, 251, 22, 195, + 147, 3, 207, 13, 195, 33, 251, 22, 195, 147, 3, 195, 33, 196, 151, 4, + 199, 210, 195, 147, 3, 195, 33, 251, 23, 4, 199, 210, 195, 147, 3, 251, + 21, 251, 37, 195, 147, 3, 251, 21, 249, 70, 195, 147, 3, 251, 21, 195, + 175, 195, 147, 3, 251, 21, 195, 176, 4, 199, 210, 195, 147, 3, 198, 121, + 195, 147, 3, 229, 148, 177, 251, 20, 195, 147, 3, 177, 251, 20, 195, 147, + 3, 206, 65, 177, 251, 20, 195, 147, 3, 251, 21, 196, 158, 215, 121, 195, + 147, 3, 250, 216, 195, 147, 3, 206, 117, 250, 216, 195, 147, 163, 247, + 74, 56, 195, 147, 3, 222, 210, 195, 147, 3, 196, 71, 195, 147, 3, 250, + 127, 195, 147, 163, 206, 184, 56, 195, 147, 163, 54, 206, 184, 56, 195, + 147, 3, 54, 251, 21, 251, 37, 8, 1, 2, 6, 65, 8, 1, 2, 6, 251, 229, 8, 2, + 1, 152, 251, 229, 8, 1, 2, 6, 249, 32, 250, 70, 8, 1, 2, 6, 247, 145, 8, + 1, 2, 6, 238, 80, 8, 1, 2, 6, 233, 206, 8, 1, 2, 6, 73, 8, 2, 1, 152, + 211, 66, 73, 8, 2, 1, 152, 70, 8, 1, 2, 6, 223, 7, 8, 1, 2, 6, 222, 125, + 8, 1, 2, 6, 220, 119, 4, 105, 8, 1, 2, 6, 218, 147, 8, 1, 2, 6, 207, 13, + 215, 47, 8, 1, 2, 6, 74, 8, 1, 2, 6, 211, 66, 74, 8, 2, 1, 202, 201, 74, + 8, 2, 1, 202, 201, 211, 66, 74, 8, 2, 1, 202, 201, 186, 4, 105, 8, 2, 1, + 152, 211, 139, 8, 1, 2, 6, 211, 9, 8, 2, 1, 198, 49, 134, 74, 8, 2, 1, + 248, 29, 134, 74, 8, 1, 2, 6, 210, 226, 8, 1, 2, 6, 207, 13, 148, 8, 1, + 2, 6, 152, 148, 8, 1, 2, 6, 200, 39, 8, 1, 2, 6, 69, 8, 2, 1, 202, 201, + 69, 8, 2, 1, 202, 201, 236, 251, 69, 8, 2, 1, 202, 201, 152, 218, 147, 8, + 1, 2, 6, 196, 8, 8, 1, 2, 6, 193, 221, 8, 1, 2, 6, 191, 166, 8, 1, 2, 6, + 233, 137, 8, 1, 195, 17, 219, 240, 201, 211, 8, 1, 251, 178, 35, 1, 2, 6, + 231, 174, 35, 1, 2, 6, 220, 7, 35, 1, 2, 6, 209, 176, 35, 1, 2, 6, 206, + 254, 35, 1, 2, 6, 208, 169, 42, 1, 2, 6, 234, 97, 59, 1, 6, 65, 59, 1, 6, + 251, 229, 59, 1, 6, 250, 70, 59, 1, 6, 249, 32, 250, 70, 59, 1, 6, 238, + 80, 59, 1, 6, 73, 59, 1, 6, 207, 13, 73, 59, 1, 6, 232, 14, 59, 1, 6, + 230, 83, 59, 1, 6, 70, 59, 1, 6, 223, 7, 59, 1, 6, 222, 125, 59, 1, 6, + 170, 59, 1, 6, 218, 147, 59, 1, 6, 215, 47, 59, 1, 6, 207, 13, 215, 47, + 59, 1, 6, 74, 59, 1, 6, 211, 9, 59, 1, 6, 210, 226, 59, 1, 6, 148, 59, 1, + 6, 200, 39, 59, 1, 6, 69, 59, 1, 6, 193, 221, 59, 1, 2, 65, 59, 1, 2, + 152, 65, 59, 1, 2, 251, 109, 59, 1, 2, 152, 251, 229, 59, 1, 2, 250, 70, + 59, 1, 2, 238, 80, 59, 1, 2, 73, 59, 1, 2, 205, 81, 59, 1, 2, 211, 66, + 73, 59, 1, 2, 152, 211, 66, 73, 59, 1, 2, 232, 14, 59, 1, 2, 152, 70, 59, + 1, 2, 222, 125, 59, 1, 2, 218, 147, 59, 1, 2, 234, 46, 59, 1, 2, 74, 59, + 1, 2, 211, 66, 74, 59, 1, 2, 198, 49, 134, 74, 59, 1, 2, 248, 29, 134, + 74, 59, 1, 2, 210, 226, 59, 1, 2, 200, 39, 59, 1, 2, 69, 59, 1, 2, 202, + 201, 69, 59, 1, 2, 152, 218, 147, 59, 1, 2, 196, 8, 59, 1, 2, 251, 178, + 59, 1, 2, 248, 162, 59, 1, 2, 35, 231, 174, 59, 1, 2, 237, 61, 59, 1, 2, + 35, 209, 202, 59, 1, 2, 243, 47, 8, 200, 225, 2, 1, 70, 8, 200, 225, 2, + 1, 148, 8, 200, 225, 2, 1, 69, 8, 200, 225, 2, 1, 196, 8, 35, 200, 225, + 2, 1, 248, 162, 35, 200, 225, 2, 1, 231, 174, 35, 200, 225, 2, 1, 206, + 254, 35, 200, 225, 2, 1, 209, 202, 35, 200, 225, 2, 1, 243, 47, 8, 2, 1, + 196, 148, 8, 2, 1, 78, 4, 82, 198, 147, 8, 2, 1, 238, 81, 4, 82, 198, + 147, 8, 2, 1, 233, 135, 4, 82, 198, 147, 8, 2, 1, 218, 148, 4, 82, 198, + 147, 8, 2, 1, 215, 48, 4, 82, 198, 147, 8, 2, 1, 210, 227, 4, 82, 198, + 147, 8, 2, 1, 207, 217, 4, 82, 198, 147, 8, 2, 1, 207, 217, 4, 232, 193, + 24, 82, 198, 147, 8, 2, 1, 206, 4, 4, 82, 198, 147, 8, 2, 1, 200, 40, 4, + 82, 198, 147, 8, 2, 1, 191, 167, 4, 82, 198, 147, 8, 2, 1, 152, 232, 14, + 59, 1, 42, 234, 61, 8, 2, 1, 223, 87, 232, 14, 8, 2, 1, 199, 47, 4, 201, + 27, 8, 2, 6, 1, 228, 44, 4, 105, 8, 2, 1, 223, 56, 4, 105, 8, 2, 1, 210, + 227, 4, 105, 8, 2, 6, 1, 126, 4, 105, 8, 2, 1, 196, 67, 4, 105, 8, 2, 1, + 78, 4, 210, 182, 106, 8, 2, 1, 238, 81, 4, 210, 182, 106, 8, 2, 1, 233, + 135, 4, 210, 182, 106, 8, 2, 1, 232, 15, 4, 210, 182, 106, 8, 2, 1, 222, + 126, 4, 210, 182, 106, 8, 2, 1, 220, 119, 4, 210, 182, 106, 8, 2, 1, 218, + 148, 4, 210, 182, 106, 8, 2, 1, 215, 48, 4, 210, 182, 106, 8, 2, 1, 210, + 227, 4, 210, 182, 106, 8, 2, 1, 207, 217, 4, 210, 182, 106, 8, 2, 1, 206, + 4, 4, 210, 182, 106, 8, 2, 1, 233, 227, 4, 210, 182, 106, 8, 2, 1, 196, + 9, 4, 210, 182, 106, 8, 2, 1, 192, 236, 4, 210, 182, 106, 8, 2, 1, 191, + 167, 4, 210, 182, 106, 8, 2, 1, 41, 4, 207, 19, 106, 8, 2, 1, 251, 110, + 4, 207, 19, 106, 8, 2, 1, 238, 81, 4, 228, 219, 24, 199, 210, 8, 2, 1, + 234, 227, 4, 207, 19, 106, 8, 2, 1, 211, 66, 234, 227, 4, 207, 19, 106, + 8, 2, 1, 207, 13, 211, 66, 234, 227, 4, 207, 19, 106, 8, 2, 1, 205, 82, + 4, 207, 19, 106, 8, 2, 1, 228, 44, 4, 207, 19, 106, 8, 2, 1, 211, 66, + 186, 4, 207, 19, 106, 8, 2, 1, 233, 227, 4, 207, 19, 106, 8, 2, 1, 126, + 4, 207, 19, 106, 8, 2, 1, 233, 138, 4, 207, 19, 106, 59, 1, 2, 152, 251, + 109, 59, 1, 2, 247, 145, 59, 1, 2, 247, 146, 4, 238, 128, 59, 1, 2, 233, + 206, 59, 1, 2, 207, 13, 211, 66, 73, 59, 1, 2, 233, 134, 59, 1, 2, 236, + 95, 223, 8, 4, 105, 59, 1, 2, 27, 232, 14, 59, 1, 2, 152, 230, 83, 59, 1, + 2, 228, 44, 4, 105, 59, 1, 2, 223, 55, 59, 1, 2, 6, 70, 59, 1, 2, 6, 228, + 44, 4, 105, 59, 1, 2, 223, 8, 4, 238, 165, 59, 1, 2, 220, 119, 4, 207, + 19, 106, 59, 1, 2, 220, 119, 4, 210, 182, 106, 59, 1, 2, 6, 170, 59, 1, + 2, 218, 148, 4, 106, 59, 1, 2, 152, 218, 148, 4, 177, 219, 188, 59, 1, 2, + 215, 48, 4, 45, 106, 59, 1, 2, 215, 48, 4, 207, 19, 106, 59, 1, 2, 6, + 215, 47, 59, 1, 2, 249, 32, 74, 59, 1, 2, 209, 202, 59, 1, 2, 206, 4, 4, + 106, 59, 1, 2, 233, 226, 59, 1, 2, 200, 40, 4, 210, 182, 106, 59, 1, 2, + 126, 164, 59, 1, 2, 196, 66, 59, 1, 2, 6, 69, 59, 1, 2, 196, 9, 4, 106, + 59, 1, 2, 152, 196, 8, 59, 1, 2, 191, 166, 59, 1, 2, 191, 167, 4, 207, + 19, 106, 59, 1, 2, 191, 167, 4, 238, 128, 59, 1, 2, 233, 137, 59, 1, 2, + 199, 10, 33, 235, 94, 230, 177, 252, 8, 33, 235, 94, 251, 251, 252, 8, + 33, 202, 54, 60, 33, 200, 159, 77, 33, 217, 124, 33, 230, 174, 33, 217, + 122, 33, 251, 248, 33, 230, 175, 33, 251, 249, 33, 8, 2, 1, 207, 217, 60, + 33, 247, 243, 33, 217, 123, 33, 54, 242, 210, 56, 33, 211, 127, 56, 33, + 191, 21, 60, 33, 223, 41, 60, 33, 196, 59, 56, 33, 196, 42, 56, 33, 8, 2, + 1, 232, 163, 211, 66, 41, 56, 33, 8, 2, 1, 251, 229, 33, 8, 2, 1, 251, + 18, 33, 8, 2, 1, 250, 96, 33, 8, 2, 1, 247, 146, 246, 243, 33, 8, 2, 1, + 223, 87, 238, 80, 33, 8, 2, 1, 233, 206, 33, 8, 2, 1, 232, 14, 33, 8, 1, + 2, 6, 232, 14, 33, 8, 2, 1, 222, 125, 33, 8, 2, 1, 170, 33, 8, 1, 2, 6, + 170, 33, 8, 1, 2, 6, 218, 147, 33, 8, 2, 1, 215, 47, 33, 8, 1, 2, 6, 215, + 47, 33, 8, 1, 2, 6, 148, 33, 8, 2, 1, 207, 217, 206, 111, 33, 8, 2, 1, + 206, 3, 33, 8, 2, 1, 177, 206, 3, 33, 8, 2, 1, 191, 166, 33, 8, 2, 1, + 251, 109, 33, 8, 2, 1, 250, 70, 33, 8, 2, 1, 248, 162, 33, 8, 2, 1, 205, + 81, 33, 8, 2, 1, 233, 134, 33, 8, 2, 1, 220, 119, 4, 54, 82, 198, 147, + 33, 8, 2, 1, 186, 4, 155, 246, 231, 105, 33, 8, 2, 1, 210, 226, 33, 8, 2, + 1, 233, 226, 33, 8, 2, 1, 126, 4, 155, 246, 231, 105, 33, 8, 2, 1, 193, + 221, 33, 8, 2, 1, 41, 4, 236, 253, 33, 8, 2, 1, 186, 4, 236, 253, 33, 8, + 2, 1, 126, 4, 236, 253, 33, 132, 199, 224, 56, 33, 222, 10, 95, 187, 33, + 222, 10, 95, 219, 200, 33, 75, 95, 219, 200, 33, 193, 76, 223, 65, 247, + 237, 60, 33, 75, 248, 183, 219, 200, 33, 237, 70, 77, 33, 54, 223, 65, + 247, 245, 60, 33, 251, 114, 234, 3, 118, 60, 33, 45, 250, 186, 56, 33, + 50, 250, 186, 24, 143, 250, 186, 60, 8, 6, 1, 41, 4, 206, 184, 60, 8, 2, + 1, 41, 4, 206, 184, 60, 8, 6, 1, 78, 4, 75, 56, 8, 2, 1, 78, 4, 75, 56, + 8, 6, 1, 78, 4, 75, 60, 8, 2, 1, 78, 4, 75, 60, 8, 6, 1, 78, 4, 219, 89, + 60, 8, 2, 1, 78, 4, 219, 89, 60, 8, 6, 1, 247, 146, 4, 246, 244, 24, 251, + 250, 8, 2, 1, 247, 146, 4, 246, 244, 24, 251, 250, 8, 6, 1, 238, 81, 4, + 75, 56, 8, 2, 1, 238, 81, 4, 75, 56, 8, 6, 1, 238, 81, 4, 75, 60, 8, 2, + 1, 238, 81, 4, 75, 60, 8, 6, 1, 238, 81, 4, 219, 89, 60, 8, 2, 1, 238, + 81, 4, 219, 89, 60, 8, 6, 1, 238, 81, 4, 246, 243, 8, 2, 1, 238, 81, 4, + 246, 243, 8, 6, 1, 238, 81, 4, 242, 210, 60, 8, 2, 1, 238, 81, 4, 242, + 210, 60, 8, 6, 1, 234, 227, 4, 217, 126, 24, 230, 176, 8, 2, 1, 234, 227, + 4, 217, 126, 24, 230, 176, 8, 6, 1, 234, 227, 4, 217, 126, 24, 251, 250, + 8, 2, 1, 234, 227, 4, 217, 126, 24, 251, 250, 8, 6, 1, 234, 227, 4, 242, + 210, 60, 8, 2, 1, 234, 227, 4, 242, 210, 60, 8, 6, 1, 234, 227, 4, 198, + 148, 60, 8, 2, 1, 234, 227, 4, 198, 148, 60, 8, 6, 1, 234, 227, 4, 246, + 244, 24, 247, 244, 8, 2, 1, 234, 227, 4, 246, 244, 24, 247, 244, 8, 6, 1, + 233, 135, 4, 75, 56, 8, 2, 1, 233, 135, 4, 75, 56, 8, 6, 1, 232, 15, 4, + 217, 125, 8, 2, 1, 232, 15, 4, 217, 125, 8, 6, 1, 230, 84, 4, 75, 56, 8, + 2, 1, 230, 84, 4, 75, 56, 8, 6, 1, 230, 84, 4, 75, 60, 8, 2, 1, 230, 84, + 4, 75, 60, 8, 6, 1, 230, 84, 4, 236, 253, 8, 2, 1, 230, 84, 4, 236, 253, + 8, 6, 1, 230, 84, 4, 246, 243, 8, 2, 1, 230, 84, 4, 246, 243, 8, 6, 1, + 230, 84, 4, 247, 245, 60, 8, 2, 1, 230, 84, 4, 247, 245, 60, 8, 6, 1, + 228, 44, 4, 198, 148, 60, 8, 2, 1, 228, 44, 4, 198, 148, 60, 8, 6, 1, + 228, 44, 4, 236, 254, 24, 251, 250, 8, 2, 1, 228, 44, 4, 236, 254, 24, + 251, 250, 8, 6, 1, 222, 126, 4, 251, 250, 8, 2, 1, 222, 126, 4, 251, 250, + 8, 6, 1, 222, 126, 4, 75, 60, 8, 2, 1, 222, 126, 4, 75, 60, 8, 6, 1, 222, + 126, 4, 219, 89, 60, 8, 2, 1, 222, 126, 4, 219, 89, 60, 8, 6, 1, 220, + 119, 4, 75, 60, 8, 2, 1, 220, 119, 4, 75, 60, 8, 6, 1, 220, 119, 4, 75, + 248, 183, 24, 217, 125, 8, 2, 1, 220, 119, 4, 75, 248, 183, 24, 217, 125, + 8, 6, 1, 220, 119, 4, 219, 89, 60, 8, 2, 1, 220, 119, 4, 219, 89, 60, 8, + 6, 1, 220, 119, 4, 242, 210, 60, 8, 2, 1, 220, 119, 4, 242, 210, 60, 8, + 6, 1, 218, 148, 4, 251, 250, 8, 2, 1, 218, 148, 4, 251, 250, 8, 6, 1, + 218, 148, 4, 75, 56, 8, 2, 1, 218, 148, 4, 75, 56, 8, 6, 1, 218, 148, 4, + 75, 60, 8, 2, 1, 218, 148, 4, 75, 60, 8, 6, 1, 215, 48, 4, 75, 56, 8, 2, + 1, 215, 48, 4, 75, 56, 8, 6, 1, 215, 48, 4, 75, 60, 8, 2, 1, 215, 48, 4, + 75, 60, 8, 6, 1, 215, 48, 4, 219, 89, 60, 8, 2, 1, 215, 48, 4, 219, 89, + 60, 8, 6, 1, 215, 48, 4, 242, 210, 60, 8, 2, 1, 215, 48, 4, 242, 210, 60, + 8, 6, 1, 186, 4, 198, 148, 24, 251, 250, 8, 2, 1, 186, 4, 198, 148, 24, + 251, 250, 8, 6, 1, 186, 4, 198, 148, 24, 236, 253, 8, 2, 1, 186, 4, 198, + 148, 24, 236, 253, 8, 6, 1, 186, 4, 217, 126, 24, 230, 176, 8, 2, 1, 186, + 4, 217, 126, 24, 230, 176, 8, 6, 1, 186, 4, 217, 126, 24, 251, 250, 8, 2, + 1, 186, 4, 217, 126, 24, 251, 250, 8, 6, 1, 210, 227, 4, 251, 250, 8, 2, + 1, 210, 227, 4, 251, 250, 8, 6, 1, 210, 227, 4, 75, 56, 8, 2, 1, 210, + 227, 4, 75, 56, 8, 6, 1, 207, 217, 4, 75, 56, 8, 2, 1, 207, 217, 4, 75, + 56, 8, 6, 1, 207, 217, 4, 75, 60, 8, 2, 1, 207, 217, 4, 75, 60, 8, 6, 1, + 207, 217, 4, 75, 248, 183, 24, 217, 125, 8, 2, 1, 207, 217, 4, 75, 248, + 183, 24, 217, 125, 8, 6, 1, 207, 217, 4, 219, 89, 60, 8, 2, 1, 207, 217, + 4, 219, 89, 60, 8, 6, 1, 206, 4, 4, 75, 56, 8, 2, 1, 206, 4, 4, 75, 56, + 8, 6, 1, 206, 4, 4, 75, 60, 8, 2, 1, 206, 4, 4, 75, 60, 8, 6, 1, 206, 4, + 4, 251, 251, 24, 75, 56, 8, 2, 1, 206, 4, 4, 251, 251, 24, 75, 56, 8, 6, + 1, 206, 4, 4, 247, 45, 24, 75, 56, 8, 2, 1, 206, 4, 4, 247, 45, 24, 75, + 56, 8, 6, 1, 206, 4, 4, 75, 248, 183, 24, 75, 56, 8, 2, 1, 206, 4, 4, 75, + 248, 183, 24, 75, 56, 8, 6, 1, 200, 40, 4, 75, 56, 8, 2, 1, 200, 40, 4, + 75, 56, 8, 6, 1, 200, 40, 4, 75, 60, 8, 2, 1, 200, 40, 4, 75, 60, 8, 6, + 1, 200, 40, 4, 219, 89, 60, 8, 2, 1, 200, 40, 4, 219, 89, 60, 8, 6, 1, + 200, 40, 4, 242, 210, 60, 8, 2, 1, 200, 40, 4, 242, 210, 60, 8, 6, 1, + 126, 4, 236, 254, 60, 8, 2, 1, 126, 4, 236, 254, 60, 8, 6, 1, 126, 4, + 198, 148, 60, 8, 2, 1, 126, 4, 198, 148, 60, 8, 6, 1, 126, 4, 242, 210, + 60, 8, 2, 1, 126, 4, 242, 210, 60, 8, 6, 1, 126, 4, 198, 148, 24, 251, + 250, 8, 2, 1, 126, 4, 198, 148, 24, 251, 250, 8, 6, 1, 126, 4, 217, 126, + 24, 236, 253, 8, 2, 1, 126, 4, 217, 126, 24, 236, 253, 8, 6, 1, 196, 9, + 4, 198, 147, 8, 2, 1, 196, 9, 4, 198, 147, 8, 6, 1, 196, 9, 4, 75, 60, 8, + 2, 1, 196, 9, 4, 75, 60, 8, 6, 1, 193, 222, 4, 230, 176, 8, 2, 1, 193, + 222, 4, 230, 176, 8, 6, 1, 193, 222, 4, 251, 250, 8, 2, 1, 193, 222, 4, + 251, 250, 8, 6, 1, 193, 222, 4, 236, 253, 8, 2, 1, 193, 222, 4, 236, 253, + 8, 6, 1, 193, 222, 4, 75, 56, 8, 2, 1, 193, 222, 4, 75, 56, 8, 6, 1, 193, + 222, 4, 75, 60, 8, 2, 1, 193, 222, 4, 75, 60, 8, 6, 1, 192, 236, 4, 75, + 56, 8, 2, 1, 192, 236, 4, 75, 56, 8, 6, 1, 192, 236, 4, 236, 253, 8, 2, + 1, 192, 236, 4, 236, 253, 8, 6, 1, 192, 160, 4, 75, 56, 8, 2, 1, 192, + 160, 4, 75, 56, 8, 6, 1, 191, 167, 4, 242, 209, 8, 2, 1, 191, 167, 4, + 242, 209, 8, 6, 1, 191, 167, 4, 75, 60, 8, 2, 1, 191, 167, 4, 75, 60, 8, + 6, 1, 191, 167, 4, 219, 89, 60, 8, 2, 1, 191, 167, 4, 219, 89, 60, 8, 2, + 1, 230, 84, 4, 219, 89, 60, 8, 2, 1, 200, 40, 4, 236, 253, 8, 2, 1, 193, + 222, 4, 206, 184, 56, 8, 2, 1, 192, 160, 4, 206, 184, 56, 8, 2, 1, 41, 4, + 50, 134, 206, 183, 8, 2, 1, 177, 206, 4, 4, 75, 56, 8, 2, 1, 177, 206, 4, + 4, 236, 250, 105, 8, 2, 1, 177, 206, 4, 4, 136, 105, 8, 6, 1, 203, 122, + 206, 3, 8, 2, 1, 237, 61, 8, 6, 1, 41, 4, 75, 60, 8, 2, 1, 41, 4, 75, 60, + 8, 6, 1, 41, 4, 228, 219, 56, 8, 2, 1, 41, 4, 228, 219, 56, 8, 6, 1, 41, + 4, 242, 210, 24, 251, 250, 8, 2, 1, 41, 4, 242, 210, 24, 251, 250, 8, 6, + 1, 41, 4, 242, 210, 24, 230, 176, 8, 2, 1, 41, 4, 242, 210, 24, 230, 176, + 8, 6, 1, 41, 4, 242, 210, 24, 228, 219, 56, 8, 2, 1, 41, 4, 242, 210, 24, + 228, 219, 56, 8, 6, 1, 41, 4, 242, 210, 24, 198, 147, 8, 2, 1, 41, 4, + 242, 210, 24, 198, 147, 8, 6, 1, 41, 4, 242, 210, 24, 75, 60, 8, 2, 1, + 41, 4, 242, 210, 24, 75, 60, 8, 6, 1, 41, 4, 247, 245, 24, 251, 250, 8, + 2, 1, 41, 4, 247, 245, 24, 251, 250, 8, 6, 1, 41, 4, 247, 245, 24, 230, + 176, 8, 2, 1, 41, 4, 247, 245, 24, 230, 176, 8, 6, 1, 41, 4, 247, 245, + 24, 228, 219, 56, 8, 2, 1, 41, 4, 247, 245, 24, 228, 219, 56, 8, 6, 1, + 41, 4, 247, 245, 24, 198, 147, 8, 2, 1, 41, 4, 247, 245, 24, 198, 147, 8, + 6, 1, 41, 4, 247, 245, 24, 75, 60, 8, 2, 1, 41, 4, 247, 245, 24, 75, 60, + 8, 6, 1, 234, 227, 4, 75, 60, 8, 2, 1, 234, 227, 4, 75, 60, 8, 6, 1, 234, + 227, 4, 228, 219, 56, 8, 2, 1, 234, 227, 4, 228, 219, 56, 8, 6, 1, 234, + 227, 4, 198, 147, 8, 2, 1, 234, 227, 4, 198, 147, 8, 6, 1, 234, 227, 4, + 242, 210, 24, 251, 250, 8, 2, 1, 234, 227, 4, 242, 210, 24, 251, 250, 8, + 6, 1, 234, 227, 4, 242, 210, 24, 230, 176, 8, 2, 1, 234, 227, 4, 242, + 210, 24, 230, 176, 8, 6, 1, 234, 227, 4, 242, 210, 24, 228, 219, 56, 8, + 2, 1, 234, 227, 4, 242, 210, 24, 228, 219, 56, 8, 6, 1, 234, 227, 4, 242, + 210, 24, 198, 147, 8, 2, 1, 234, 227, 4, 242, 210, 24, 198, 147, 8, 6, 1, + 234, 227, 4, 242, 210, 24, 75, 60, 8, 2, 1, 234, 227, 4, 242, 210, 24, + 75, 60, 8, 6, 1, 228, 44, 4, 228, 219, 56, 8, 2, 1, 228, 44, 4, 228, 219, + 56, 8, 6, 1, 228, 44, 4, 75, 60, 8, 2, 1, 228, 44, 4, 75, 60, 8, 6, 1, + 186, 4, 75, 60, 8, 2, 1, 186, 4, 75, 60, 8, 6, 1, 186, 4, 228, 219, 56, + 8, 2, 1, 186, 4, 228, 219, 56, 8, 6, 1, 186, 4, 242, 210, 24, 251, 250, + 8, 2, 1, 186, 4, 242, 210, 24, 251, 250, 8, 6, 1, 186, 4, 242, 210, 24, + 230, 176, 8, 2, 1, 186, 4, 242, 210, 24, 230, 176, 8, 6, 1, 186, 4, 242, + 210, 24, 228, 219, 56, 8, 2, 1, 186, 4, 242, 210, 24, 228, 219, 56, 8, 6, + 1, 186, 4, 242, 210, 24, 198, 147, 8, 2, 1, 186, 4, 242, 210, 24, 198, + 147, 8, 6, 1, 186, 4, 242, 210, 24, 75, 60, 8, 2, 1, 186, 4, 242, 210, + 24, 75, 60, 8, 6, 1, 186, 4, 228, 157, 24, 251, 250, 8, 2, 1, 186, 4, + 228, 157, 24, 251, 250, 8, 6, 1, 186, 4, 228, 157, 24, 230, 176, 8, 2, 1, + 186, 4, 228, 157, 24, 230, 176, 8, 6, 1, 186, 4, 228, 157, 24, 228, 219, + 56, 8, 2, 1, 186, 4, 228, 157, 24, 228, 219, 56, 8, 6, 1, 186, 4, 228, + 157, 24, 198, 147, 8, 2, 1, 186, 4, 228, 157, 24, 198, 147, 8, 6, 1, 186, + 4, 228, 157, 24, 75, 60, 8, 2, 1, 186, 4, 228, 157, 24, 75, 60, 8, 6, 1, + 126, 4, 75, 60, 8, 2, 1, 126, 4, 75, 60, 8, 6, 1, 126, 4, 228, 219, 56, + 8, 2, 1, 126, 4, 228, 219, 56, 8, 6, 1, 126, 4, 228, 157, 24, 251, 250, + 8, 2, 1, 126, 4, 228, 157, 24, 251, 250, 8, 6, 1, 126, 4, 228, 157, 24, + 230, 176, 8, 2, 1, 126, 4, 228, 157, 24, 230, 176, 8, 6, 1, 126, 4, 228, + 157, 24, 228, 219, 56, 8, 2, 1, 126, 4, 228, 157, 24, 228, 219, 56, 8, 6, + 1, 126, 4, 228, 157, 24, 198, 147, 8, 2, 1, 126, 4, 228, 157, 24, 198, + 147, 8, 6, 1, 126, 4, 228, 157, 24, 75, 60, 8, 2, 1, 126, 4, 228, 157, + 24, 75, 60, 8, 6, 1, 192, 160, 4, 230, 176, 8, 2, 1, 192, 160, 4, 230, + 176, 8, 6, 1, 192, 160, 4, 75, 60, 8, 2, 1, 192, 160, 4, 75, 60, 8, 6, 1, + 192, 160, 4, 228, 219, 56, 8, 2, 1, 192, 160, 4, 228, 219, 56, 8, 6, 1, + 192, 160, 4, 198, 147, 8, 2, 1, 192, 160, 4, 198, 147, 8, 6, 1, 216, 65, + 219, 50, 8, 2, 1, 216, 65, 219, 50, 8, 6, 1, 216, 65, 196, 8, 8, 2, 1, + 216, 65, 196, 8, 8, 6, 1, 192, 160, 4, 218, 236, 8, 2, 1, 192, 160, 4, + 218, 236, 35, 2, 1, 251, 110, 4, 208, 162, 35, 2, 1, 251, 110, 4, 237, + 167, 35, 2, 1, 251, 110, 4, 208, 163, 24, 195, 166, 35, 2, 1, 251, 110, + 4, 237, 168, 24, 195, 166, 35, 2, 1, 251, 110, 4, 208, 163, 24, 210, 233, + 35, 2, 1, 251, 110, 4, 237, 168, 24, 210, 233, 35, 2, 1, 251, 110, 4, + 208, 163, 24, 209, 251, 35, 2, 1, 251, 110, 4, 237, 168, 24, 209, 251, + 35, 6, 1, 251, 110, 4, 208, 162, 35, 6, 1, 251, 110, 4, 237, 167, 35, 6, + 1, 251, 110, 4, 208, 163, 24, 195, 166, 35, 6, 1, 251, 110, 4, 237, 168, + 24, 195, 166, 35, 6, 1, 251, 110, 4, 208, 163, 24, 210, 233, 35, 6, 1, + 251, 110, 4, 237, 168, 24, 210, 233, 35, 6, 1, 251, 110, 4, 208, 163, 24, + 209, 251, 35, 6, 1, 251, 110, 4, 237, 168, 24, 209, 251, 35, 2, 1, 234, + 6, 4, 208, 162, 35, 2, 1, 234, 6, 4, 237, 167, 35, 2, 1, 234, 6, 4, 208, + 163, 24, 195, 166, 35, 2, 1, 234, 6, 4, 237, 168, 24, 195, 166, 35, 2, 1, + 234, 6, 4, 208, 163, 24, 210, 233, 35, 2, 1, 234, 6, 4, 237, 168, 24, + 210, 233, 35, 6, 1, 234, 6, 4, 208, 162, 35, 6, 1, 234, 6, 4, 237, 167, + 35, 6, 1, 234, 6, 4, 208, 163, 24, 195, 166, 35, 6, 1, 234, 6, 4, 237, + 168, 24, 195, 166, 35, 6, 1, 234, 6, 4, 208, 163, 24, 210, 233, 35, 6, 1, + 234, 6, 4, 237, 168, 24, 210, 233, 35, 2, 1, 233, 212, 4, 208, 162, 35, + 2, 1, 233, 212, 4, 237, 167, 35, 2, 1, 233, 212, 4, 208, 163, 24, 195, + 166, 35, 2, 1, 233, 212, 4, 237, 168, 24, 195, 166, 35, 2, 1, 233, 212, + 4, 208, 163, 24, 210, 233, 35, 2, 1, 233, 212, 4, 237, 168, 24, 210, 233, + 35, 2, 1, 233, 212, 4, 208, 163, 24, 209, 251, 35, 2, 1, 233, 212, 4, + 237, 168, 24, 209, 251, 35, 6, 1, 233, 212, 4, 208, 162, 35, 6, 1, 233, + 212, 4, 237, 167, 35, 6, 1, 233, 212, 4, 208, 163, 24, 195, 166, 35, 6, + 1, 233, 212, 4, 237, 168, 24, 195, 166, 35, 6, 1, 233, 212, 4, 208, 163, + 24, 210, 233, 35, 6, 1, 233, 212, 4, 237, 168, 24, 210, 233, 35, 6, 1, + 233, 212, 4, 208, 163, 24, 209, 251, 35, 6, 1, 233, 212, 4, 237, 168, 24, + 209, 251, 35, 2, 1, 223, 56, 4, 208, 162, 35, 2, 1, 223, 56, 4, 237, 167, + 35, 2, 1, 223, 56, 4, 208, 163, 24, 195, 166, 35, 2, 1, 223, 56, 4, 237, + 168, 24, 195, 166, 35, 2, 1, 223, 56, 4, 208, 163, 24, 210, 233, 35, 2, + 1, 223, 56, 4, 237, 168, 24, 210, 233, 35, 2, 1, 223, 56, 4, 208, 163, + 24, 209, 251, 35, 2, 1, 223, 56, 4, 237, 168, 24, 209, 251, 35, 6, 1, + 223, 56, 4, 208, 162, 35, 6, 1, 223, 56, 4, 237, 167, 35, 6, 1, 223, 56, + 4, 208, 163, 24, 195, 166, 35, 6, 1, 223, 56, 4, 237, 168, 24, 195, 166, + 35, 6, 1, 223, 56, 4, 208, 163, 24, 210, 233, 35, 6, 1, 223, 56, 4, 237, + 168, 24, 210, 233, 35, 6, 1, 223, 56, 4, 208, 163, 24, 209, 251, 35, 6, + 1, 223, 56, 4, 237, 168, 24, 209, 251, 35, 2, 1, 211, 97, 4, 208, 162, + 35, 2, 1, 211, 97, 4, 237, 167, 35, 2, 1, 211, 97, 4, 208, 163, 24, 195, + 166, 35, 2, 1, 211, 97, 4, 237, 168, 24, 195, 166, 35, 2, 1, 211, 97, 4, + 208, 163, 24, 210, 233, 35, 2, 1, 211, 97, 4, 237, 168, 24, 210, 233, 35, + 6, 1, 211, 97, 4, 208, 162, 35, 6, 1, 211, 97, 4, 237, 167, 35, 6, 1, + 211, 97, 4, 208, 163, 24, 195, 166, 35, 6, 1, 211, 97, 4, 237, 168, 24, + 195, 166, 35, 6, 1, 211, 97, 4, 208, 163, 24, 210, 233, 35, 6, 1, 211, + 97, 4, 237, 168, 24, 210, 233, 35, 2, 1, 196, 67, 4, 208, 162, 35, 2, 1, + 196, 67, 4, 237, 167, 35, 2, 1, 196, 67, 4, 208, 163, 24, 195, 166, 35, + 2, 1, 196, 67, 4, 237, 168, 24, 195, 166, 35, 2, 1, 196, 67, 4, 208, 163, + 24, 210, 233, 35, 2, 1, 196, 67, 4, 237, 168, 24, 210, 233, 35, 2, 1, + 196, 67, 4, 208, 163, 24, 209, 251, 35, 2, 1, 196, 67, 4, 237, 168, 24, + 209, 251, 35, 6, 1, 196, 67, 4, 237, 167, 35, 6, 1, 196, 67, 4, 237, 168, + 24, 195, 166, 35, 6, 1, 196, 67, 4, 237, 168, 24, 210, 233, 35, 6, 1, + 196, 67, 4, 237, 168, 24, 209, 251, 35, 2, 1, 211, 100, 4, 208, 162, 35, + 2, 1, 211, 100, 4, 237, 167, 35, 2, 1, 211, 100, 4, 208, 163, 24, 195, + 166, 35, 2, 1, 211, 100, 4, 237, 168, 24, 195, 166, 35, 2, 1, 211, 100, + 4, 208, 163, 24, 210, 233, 35, 2, 1, 211, 100, 4, 237, 168, 24, 210, 233, + 35, 2, 1, 211, 100, 4, 208, 163, 24, 209, 251, 35, 2, 1, 211, 100, 4, + 237, 168, 24, 209, 251, 35, 6, 1, 211, 100, 4, 208, 162, 35, 6, 1, 211, + 100, 4, 237, 167, 35, 6, 1, 211, 100, 4, 208, 163, 24, 195, 166, 35, 6, + 1, 211, 100, 4, 237, 168, 24, 195, 166, 35, 6, 1, 211, 100, 4, 208, 163, + 24, 210, 233, 35, 6, 1, 211, 100, 4, 237, 168, 24, 210, 233, 35, 6, 1, + 211, 100, 4, 208, 163, 24, 209, 251, 35, 6, 1, 211, 100, 4, 237, 168, 24, + 209, 251, 35, 2, 1, 251, 110, 4, 195, 166, 35, 2, 1, 251, 110, 4, 210, + 233, 35, 2, 1, 234, 6, 4, 195, 166, 35, 2, 1, 234, 6, 4, 210, 233, 35, 2, + 1, 233, 212, 4, 195, 166, 35, 2, 1, 233, 212, 4, 210, 233, 35, 2, 1, 223, + 56, 4, 195, 166, 35, 2, 1, 223, 56, 4, 210, 233, 35, 2, 1, 211, 97, 4, + 195, 166, 35, 2, 1, 211, 97, 4, 210, 233, 35, 2, 1, 196, 67, 4, 195, 166, + 35, 2, 1, 196, 67, 4, 210, 233, 35, 2, 1, 211, 100, 4, 195, 166, 35, 2, + 1, 211, 100, 4, 210, 233, 35, 2, 1, 251, 110, 4, 208, 163, 24, 191, 233, + 35, 2, 1, 251, 110, 4, 237, 168, 24, 191, 233, 35, 2, 1, 251, 110, 4, + 208, 163, 24, 195, 167, 24, 191, 233, 35, 2, 1, 251, 110, 4, 237, 168, + 24, 195, 167, 24, 191, 233, 35, 2, 1, 251, 110, 4, 208, 163, 24, 210, + 234, 24, 191, 233, 35, 2, 1, 251, 110, 4, 237, 168, 24, 210, 234, 24, + 191, 233, 35, 2, 1, 251, 110, 4, 208, 163, 24, 209, 252, 24, 191, 233, + 35, 2, 1, 251, 110, 4, 237, 168, 24, 209, 252, 24, 191, 233, 35, 6, 1, + 251, 110, 4, 208, 163, 24, 208, 177, 35, 6, 1, 251, 110, 4, 237, 168, 24, + 208, 177, 35, 6, 1, 251, 110, 4, 208, 163, 24, 195, 167, 24, 208, 177, + 35, 6, 1, 251, 110, 4, 237, 168, 24, 195, 167, 24, 208, 177, 35, 6, 1, + 251, 110, 4, 208, 163, 24, 210, 234, 24, 208, 177, 35, 6, 1, 251, 110, 4, + 237, 168, 24, 210, 234, 24, 208, 177, 35, 6, 1, 251, 110, 4, 208, 163, + 24, 209, 252, 24, 208, 177, 35, 6, 1, 251, 110, 4, 237, 168, 24, 209, + 252, 24, 208, 177, 35, 2, 1, 233, 212, 4, 208, 163, 24, 191, 233, 35, 2, + 1, 233, 212, 4, 237, 168, 24, 191, 233, 35, 2, 1, 233, 212, 4, 208, 163, + 24, 195, 167, 24, 191, 233, 35, 2, 1, 233, 212, 4, 237, 168, 24, 195, + 167, 24, 191, 233, 35, 2, 1, 233, 212, 4, 208, 163, 24, 210, 234, 24, + 191, 233, 35, 2, 1, 233, 212, 4, 237, 168, 24, 210, 234, 24, 191, 233, + 35, 2, 1, 233, 212, 4, 208, 163, 24, 209, 252, 24, 191, 233, 35, 2, 1, + 233, 212, 4, 237, 168, 24, 209, 252, 24, 191, 233, 35, 6, 1, 233, 212, 4, + 208, 163, 24, 208, 177, 35, 6, 1, 233, 212, 4, 237, 168, 24, 208, 177, + 35, 6, 1, 233, 212, 4, 208, 163, 24, 195, 167, 24, 208, 177, 35, 6, 1, + 233, 212, 4, 237, 168, 24, 195, 167, 24, 208, 177, 35, 6, 1, 233, 212, 4, + 208, 163, 24, 210, 234, 24, 208, 177, 35, 6, 1, 233, 212, 4, 237, 168, + 24, 210, 234, 24, 208, 177, 35, 6, 1, 233, 212, 4, 208, 163, 24, 209, + 252, 24, 208, 177, 35, 6, 1, 233, 212, 4, 237, 168, 24, 209, 252, 24, + 208, 177, 35, 2, 1, 211, 100, 4, 208, 163, 24, 191, 233, 35, 2, 1, 211, + 100, 4, 237, 168, 24, 191, 233, 35, 2, 1, 211, 100, 4, 208, 163, 24, 195, + 167, 24, 191, 233, 35, 2, 1, 211, 100, 4, 237, 168, 24, 195, 167, 24, + 191, 233, 35, 2, 1, 211, 100, 4, 208, 163, 24, 210, 234, 24, 191, 233, + 35, 2, 1, 211, 100, 4, 237, 168, 24, 210, 234, 24, 191, 233, 35, 2, 1, + 211, 100, 4, 208, 163, 24, 209, 252, 24, 191, 233, 35, 2, 1, 211, 100, 4, + 237, 168, 24, 209, 252, 24, 191, 233, 35, 6, 1, 211, 100, 4, 208, 163, + 24, 208, 177, 35, 6, 1, 211, 100, 4, 237, 168, 24, 208, 177, 35, 6, 1, + 211, 100, 4, 208, 163, 24, 195, 167, 24, 208, 177, 35, 6, 1, 211, 100, 4, + 237, 168, 24, 195, 167, 24, 208, 177, 35, 6, 1, 211, 100, 4, 208, 163, + 24, 210, 234, 24, 208, 177, 35, 6, 1, 211, 100, 4, 237, 168, 24, 210, + 234, 24, 208, 177, 35, 6, 1, 211, 100, 4, 208, 163, 24, 209, 252, 24, + 208, 177, 35, 6, 1, 211, 100, 4, 237, 168, 24, 209, 252, 24, 208, 177, + 35, 2, 1, 251, 110, 4, 194, 251, 35, 2, 1, 251, 110, 4, 217, 125, 35, 2, + 1, 251, 110, 4, 195, 167, 24, 191, 233, 35, 2, 1, 251, 110, 4, 191, 233, + 35, 2, 1, 251, 110, 4, 210, 234, 24, 191, 233, 35, 2, 1, 251, 110, 4, + 209, 251, 35, 2, 1, 251, 110, 4, 209, 252, 24, 191, 233, 35, 6, 1, 251, + 110, 4, 194, 251, 35, 6, 1, 251, 110, 4, 217, 125, 35, 6, 1, 251, 110, 4, + 195, 166, 35, 6, 1, 251, 110, 4, 210, 233, 35, 6, 1, 251, 110, 4, 208, + 177, 35, 221, 6, 35, 208, 177, 35, 208, 162, 35, 209, 251, 35, 236, 247, + 24, 209, 251, 35, 2, 1, 233, 212, 4, 195, 167, 24, 191, 233, 35, 2, 1, + 233, 212, 4, 191, 233, 35, 2, 1, 233, 212, 4, 210, 234, 24, 191, 233, 35, + 2, 1, 233, 212, 4, 209, 251, 35, 2, 1, 233, 212, 4, 209, 252, 24, 191, + 233, 35, 6, 1, 234, 6, 4, 195, 166, 35, 6, 1, 234, 6, 4, 210, 233, 35, 6, + 1, 233, 212, 4, 195, 166, 35, 6, 1, 233, 212, 4, 210, 233, 35, 6, 1, 233, + 212, 4, 208, 177, 35, 208, 163, 24, 195, 166, 35, 208, 163, 24, 210, 233, + 35, 208, 163, 24, 209, 251, 35, 2, 1, 223, 56, 4, 194, 251, 35, 2, 1, + 223, 56, 4, 217, 125, 35, 2, 1, 223, 56, 4, 236, 247, 24, 195, 166, 35, + 2, 1, 223, 56, 4, 236, 247, 24, 210, 233, 35, 2, 1, 223, 56, 4, 209, 251, + 35, 2, 1, 223, 56, 4, 236, 247, 24, 209, 251, 35, 6, 1, 223, 56, 4, 194, + 251, 35, 6, 1, 223, 56, 4, 217, 125, 35, 6, 1, 223, 56, 4, 195, 166, 35, + 6, 1, 223, 56, 4, 210, 233, 35, 237, 168, 24, 195, 166, 35, 237, 168, 24, + 210, 233, 35, 237, 168, 24, 209, 251, 35, 2, 1, 196, 67, 4, 194, 251, 35, + 2, 1, 196, 67, 4, 217, 125, 35, 2, 1, 196, 67, 4, 236, 247, 24, 195, 166, + 35, 2, 1, 196, 67, 4, 236, 247, 24, 210, 233, 35, 2, 1, 206, 255, 4, 208, + 162, 35, 2, 1, 206, 255, 4, 237, 167, 35, 2, 1, 196, 67, 4, 209, 251, 35, + 2, 1, 196, 67, 4, 236, 247, 24, 209, 251, 35, 6, 1, 196, 67, 4, 194, 251, + 35, 6, 1, 196, 67, 4, 217, 125, 35, 6, 1, 196, 67, 4, 195, 166, 35, 6, 1, + 196, 67, 4, 210, 233, 35, 6, 1, 206, 255, 4, 237, 167, 35, 236, 247, 24, + 195, 166, 35, 236, 247, 24, 210, 233, 35, 195, 166, 35, 2, 1, 211, 100, + 4, 195, 167, 24, 191, 233, 35, 2, 1, 211, 100, 4, 191, 233, 35, 2, 1, + 211, 100, 4, 210, 234, 24, 191, 233, 35, 2, 1, 211, 100, 4, 209, 251, 35, + 2, 1, 211, 100, 4, 209, 252, 24, 191, 233, 35, 6, 1, 211, 97, 4, 195, + 166, 35, 6, 1, 211, 97, 4, 210, 233, 35, 6, 1, 211, 100, 4, 195, 166, 35, + 6, 1, 211, 100, 4, 210, 233, 35, 6, 1, 211, 100, 4, 208, 177, 35, 210, + 233, 35, 237, 167, 234, 62, 208, 24, 234, 73, 208, 24, 234, 62, 201, 242, + 234, 73, 201, 242, 198, 214, 201, 242, 232, 88, 201, 242, 202, 129, 201, + 242, 232, 228, 201, 242, 208, 145, 201, 242, 198, 255, 201, 242, 230, 46, + 201, 242, 191, 78, 193, 73, 201, 242, 191, 78, 193, 73, 213, 16, 191, 78, + 193, 73, 222, 169, 219, 191, 77, 206, 194, 77, 228, 58, 213, 17, 228, 58, + 232, 228, 237, 170, 234, 62, 237, 170, 234, 73, 237, 170, 228, 209, 164, + 54, 81, 219, 88, 54, 131, 219, 88, 45, 202, 165, 207, 247, 77, 50, 202, + 165, 207, 247, 77, 202, 165, 218, 218, 207, 247, 77, 202, 165, 229, 100, + 207, 247, 77, 45, 54, 207, 247, 77, 50, 54, 207, 247, 77, 54, 218, 218, + 207, 247, 77, 54, 229, 100, 207, 247, 77, 237, 223, 54, 237, 223, 247, + 200, 197, 234, 247, 200, 91, 75, 219, 212, 103, 75, 219, 212, 228, 209, + 234, 78, 228, 56, 209, 54, 219, 89, 204, 5, 210, 118, 204, 5, 219, 191, + 234, 71, 206, 194, 234, 71, 209, 27, 236, 187, 232, 105, 219, 191, 210, + 242, 206, 194, 210, 242, 214, 201, 213, 24, 201, 242, 210, 5, 216, 32, + 57, 210, 5, 199, 91, 198, 225, 57, 208, 208, 54, 208, 208, 197, 221, 208, + 208, 207, 13, 208, 208, 207, 13, 54, 208, 208, 207, 13, 197, 221, 208, + 208, 247, 48, 202, 165, 219, 195, 251, 65, 207, 247, 77, 202, 165, 206, + 198, 251, 65, 207, 247, 77, 207, 78, 77, 54, 233, 175, 77, 223, 74, 210, + 244, 196, 96, 246, 192, 198, 173, 247, 49, 223, 91, 209, 54, 250, 141, + 228, 59, 247, 200, 232, 80, 202, 92, 45, 51, 248, 6, 4, 208, 2, 50, 51, + 248, 6, 4, 208, 2, 54, 208, 8, 77, 208, 8, 233, 175, 77, 233, 175, 208, + 8, 77, 198, 123, 3, 233, 213, 207, 13, 209, 133, 57, 62, 117, 247, 200, + 62, 96, 247, 200, 131, 250, 143, 207, 13, 204, 20, 242, 172, 196, 73, + 103, 250, 142, 251, 127, 195, 81, 242, 24, 216, 18, 57, 200, 125, 237, + 170, 223, 65, 196, 96, 232, 147, 208, 145, 77, 115, 75, 208, 144, 208, + 20, 208, 208, 232, 90, 75, 208, 144, 232, 185, 75, 208, 144, 103, 75, + 208, 144, 232, 90, 75, 77, 235, 94, 238, 170, 197, 233, 81, 232, 90, 236, + 94, 216, 194, 13, 201, 242, 193, 23, 222, 169, 232, 40, 250, 250, 223, + 63, 198, 139, 223, 63, 204, 5, 223, 63, 209, 73, 219, 191, 223, 31, 206, + 194, 223, 31, 232, 197, 201, 9, 223, 31, 209, 27, 236, 187, 223, 31, 223, + 104, 200, 71, 200, 143, 251, 253, 200, 71, 200, 143, 223, 104, 9, 232, + 107, 203, 128, 251, 253, 9, 232, 107, 203, 128, 214, 194, 17, 203, 129, + 213, 20, 17, 203, 129, 200, 177, 191, 77, 200, 177, 8, 2, 1, 70, 200, + 177, 137, 200, 177, 153, 200, 177, 173, 200, 177, 181, 200, 177, 176, + 200, 177, 184, 200, 177, 107, 57, 200, 177, 216, 17, 200, 177, 234, 1, + 57, 200, 177, 45, 210, 103, 200, 177, 50, 210, 103, 200, 177, 8, 2, 1, + 215, 47, 200, 225, 191, 77, 200, 225, 108, 200, 225, 109, 200, 225, 139, + 200, 225, 137, 200, 225, 153, 200, 225, 173, 200, 225, 181, 200, 225, + 176, 200, 225, 184, 200, 225, 107, 57, 200, 225, 216, 17, 200, 225, 234, + 1, 57, 200, 225, 45, 210, 103, 200, 225, 50, 210, 103, 8, 200, 225, 2, 1, + 65, 8, 200, 225, 2, 1, 73, 8, 200, 225, 2, 1, 74, 8, 200, 225, 2, 1, 192, + 235, 8, 200, 225, 2, 1, 205, 81, 8, 200, 225, 2, 1, 230, 83, 8, 200, 225, + 2, 1, 222, 125, 8, 200, 225, 2, 1, 170, 8, 200, 225, 2, 1, 218, 147, 8, + 200, 225, 2, 1, 215, 47, 8, 200, 225, 2, 1, 210, 226, 8, 200, 225, 2, 1, + 206, 3, 8, 200, 225, 2, 1, 200, 39, 233, 192, 57, 242, 36, 57, 238, 153, + 57, 232, 68, 232, 73, 57, 219, 67, 57, 216, 33, 57, 214, 220, 57, 209, + 236, 57, 206, 31, 57, 193, 31, 57, 214, 66, 203, 94, 57, 236, 104, 57, + 233, 193, 57, 221, 111, 57, 197, 77, 57, 235, 72, 57, 231, 101, 210, 18, + 57, 209, 233, 57, 230, 141, 57, 250, 103, 57, 228, 135, 57, 246, 245, 57, + 219, 57, 198, 28, 57, 201, 221, 57, 199, 88, 57, 223, 119, 206, 31, 57, + 197, 56, 219, 67, 57, 213, 6, 87, 57, 217, 68, 57, 206, 54, 57, 219, 241, + 57, 248, 99, 57, 202, 17, 57, 33, 45, 229, 236, 56, 33, 50, 229, 236, 56, + 33, 177, 81, 219, 89, 210, 245, 33, 203, 35, 81, 219, 89, 210, 245, 33, + 251, 34, 63, 56, 33, 242, 173, 63, 56, 33, 45, 63, 56, 33, 50, 63, 56, + 33, 206, 184, 210, 245, 33, 242, 173, 206, 184, 210, 245, 33, 251, 34, + 206, 184, 210, 245, 33, 115, 183, 56, 33, 232, 90, 183, 56, 33, 234, 57, + 242, 218, 33, 234, 57, 201, 185, 33, 234, 57, 236, 243, 33, 234, 57, 242, + 219, 249, 91, 33, 45, 50, 63, 56, 33, 234, 57, 205, 71, 33, 234, 57, 221, + 193, 33, 234, 57, 196, 64, 209, 51, 197, 237, 33, 207, 14, 202, 19, 210, + 245, 33, 54, 81, 201, 23, 210, 245, 33, 251, 44, 113, 33, 197, 221, 196, + 98, 33, 193, 76, 247, 237, 56, 33, 117, 63, 210, 245, 33, 177, 54, 202, + 19, 210, 245, 33, 96, 229, 236, 4, 178, 235, 74, 33, 117, 229, 236, 4, + 178, 235, 74, 33, 45, 63, 60, 33, 50, 63, 60, 33, 250, 144, 56, 252, 3, + 211, 134, 251, 242, 118, 199, 29, 200, 235, 235, 85, 6, 247, 145, 237, + 80, 246, 235, 246, 230, 219, 89, 113, 247, 50, 211, 134, 247, 104, 196, + 108, 233, 194, 238, 247, 205, 67, 237, 80, 233, 50, 27, 2, 232, 14, 27, + 6, 230, 83, 248, 89, 6, 230, 83, 235, 85, 6, 230, 83, 209, 95, 238, 247, + 209, 95, 238, 248, 138, 103, 209, 176, 27, 6, 70, 248, 89, 6, 70, 27, 6, + 170, 27, 2, 170, 220, 119, 78, 249, 38, 113, 235, 85, 6, 215, 47, 212, + 119, 57, 202, 0, 207, 90, 238, 214, 27, 6, 210, 226, 235, 85, 6, 210, + 226, 235, 85, 6, 208, 97, 27, 6, 148, 248, 89, 6, 148, 235, 85, 6, 148, + 208, 216, 199, 203, 207, 26, 203, 252, 77, 199, 102, 57, 198, 18, 87, 57, + 195, 133, 235, 85, 6, 191, 166, 211, 8, 57, 211, 123, 57, 223, 65, 211, + 123, 57, 248, 89, 6, 191, 166, 152, 35, 2, 1, 223, 55, 221, 234, 57, 251, + 59, 57, 27, 6, 250, 70, 248, 89, 6, 247, 145, 233, 218, 113, 27, 2, 73, + 27, 6, 73, 27, 6, 233, 134, 152, 6, 233, 134, 27, 6, 218, 147, 27, 2, 74, + 130, 113, 248, 165, 113, 231, 2, 113, 237, 207, 113, 223, 109, 201, 254, + 206, 117, 6, 208, 97, 233, 53, 57, 235, 85, 2, 209, 176, 235, 85, 2, 231, + 174, 235, 85, 6, 231, 174, 235, 85, 6, 209, 176, 235, 85, 215, 46, 200, + 196, 152, 49, 6, 232, 14, 152, 49, 6, 170, 207, 13, 49, 6, 170, 152, 49, + 6, 192, 159, 235, 85, 43, 6, 238, 80, 235, 85, 43, 2, 238, 80, 235, 85, + 43, 2, 73, 235, 85, 43, 2, 70, 235, 85, 43, 2, 223, 7, 208, 181, 219, 88, + 152, 251, 86, 210, 5, 57, 251, 159, 152, 2, 233, 134, 16, 39, 205, 146, + 201, 254, 193, 243, 232, 80, 91, 203, 238, 193, 243, 232, 80, 91, 213, + 154, 193, 243, 232, 80, 91, 199, 81, 193, 243, 232, 80, 91, 198, 251, + 193, 243, 232, 80, 103, 198, 248, 193, 243, 232, 80, 91, 232, 233, 193, + 243, 232, 80, 103, 232, 232, 193, 243, 232, 80, 115, 232, 232, 193, 243, + 232, 80, 232, 90, 232, 232, 193, 243, 232, 80, 91, 202, 119, 193, 243, + 232, 80, 232, 185, 202, 117, 193, 243, 232, 80, 91, 234, 116, 193, 243, + 232, 80, 115, 234, 114, 193, 243, 232, 80, 232, 185, 234, 114, 193, 243, + 232, 80, 203, 242, 234, 114, 232, 80, 212, 120, 108, 206, 131, 212, 121, + 108, 206, 131, 212, 121, 109, 206, 131, 212, 121, 139, 206, 131, 212, + 121, 137, 206, 131, 212, 121, 153, 206, 131, 212, 121, 173, 206, 131, + 212, 121, 181, 206, 131, 212, 121, 176, 206, 131, 212, 121, 184, 206, + 131, 212, 121, 199, 90, 206, 131, 212, 121, 234, 84, 206, 131, 212, 121, + 197, 33, 206, 131, 212, 121, 232, 230, 206, 131, 212, 121, 91, 228, 109, + 206, 131, 212, 121, 232, 185, 228, 109, 206, 131, 212, 121, 91, 188, 2, + 206, 131, 212, 121, 108, 2, 206, 131, 212, 121, 109, 2, 206, 131, 212, + 121, 139, 2, 206, 131, 212, 121, 137, 2, 206, 131, 212, 121, 153, 2, 206, + 131, 212, 121, 173, 2, 206, 131, 212, 121, 181, 2, 206, 131, 212, 121, + 176, 2, 206, 131, 212, 121, 184, 2, 206, 131, 212, 121, 199, 90, 2, 206, + 131, 212, 121, 234, 84, 2, 206, 131, 212, 121, 197, 33, 2, 206, 131, 212, + 121, 232, 230, 2, 206, 131, 212, 121, 91, 228, 109, 2, 206, 131, 212, + 121, 232, 185, 228, 109, 2, 206, 131, 212, 121, 91, 188, 206, 131, 212, + 121, 91, 198, 225, 247, 146, 238, 80, 206, 131, 212, 121, 232, 185, 188, + 206, 131, 212, 121, 199, 91, 188, 206, 131, 212, 121, 207, 13, 91, 228, + 109, 8, 2, 1, 207, 13, 247, 145, 206, 131, 212, 121, 202, 131, 219, 236, + 20, 206, 131, 212, 121, 232, 231, 234, 166, 20, 206, 131, 212, 121, 232, + 231, 188, 206, 131, 212, 121, 91, 228, 110, 188, 193, 243, 232, 80, 191, + 78, 198, 248, 152, 17, 109, 152, 17, 139, 117, 55, 196, 62, 55, 96, 55, + 235, 75, 55, 45, 50, 55, 132, 143, 55, 185, 193, 103, 55, 185, 234, 160, + 55, 201, 253, 234, 160, 55, 201, 253, 193, 103, 55, 117, 63, 4, 105, 96, + 63, 4, 105, 117, 193, 137, 55, 96, 193, 137, 55, 117, 103, 229, 201, 55, + 196, 62, 103, 229, 201, 55, 96, 103, 229, 201, 55, 235, 75, 103, 229, + 201, 55, 117, 63, 4, 199, 210, 96, 63, 4, 199, 210, 117, 63, 232, 60, + 164, 196, 62, 63, 232, 60, 164, 96, 63, 232, 60, 164, 235, 75, 63, 232, + 60, 164, 132, 143, 63, 4, 249, 24, 117, 63, 4, 106, 96, 63, 4, 106, 117, + 63, 4, 218, 236, 96, 63, 4, 218, 236, 45, 50, 193, 137, 55, 45, 50, 63, + 4, 105, 235, 75, 191, 21, 55, 196, 62, 63, 4, 198, 131, 219, 190, 196, + 62, 63, 4, 198, 131, 206, 192, 235, 75, 63, 4, 198, 131, 219, 190, 235, + 75, 63, 4, 198, 131, 206, 192, 96, 63, 4, 238, 211, 235, 74, 235, 75, 63, + 4, 238, 211, 219, 190, 251, 34, 198, 49, 204, 23, 55, 242, 173, 198, 49, + 204, 23, 55, 185, 193, 103, 63, 118, 177, 164, 117, 63, 118, 249, 38, + 138, 96, 63, 118, 164, 251, 34, 211, 66, 242, 219, 55, 242, 173, 211, 66, + 242, 219, 55, 117, 229, 236, 4, 178, 196, 61, 117, 229, 236, 4, 178, 235, + 74, 196, 62, 229, 236, 4, 178, 206, 192, 196, 62, 229, 236, 4, 178, 219, + 190, 96, 229, 236, 4, 178, 196, 61, 96, 229, 236, 4, 178, 235, 74, 235, + 75, 229, 236, 4, 178, 206, 192, 235, 75, 229, 236, 4, 178, 219, 190, 96, + 63, 138, 117, 55, 196, 62, 63, 117, 80, 235, 75, 55, 117, 63, 138, 96, + 55, 117, 210, 186, 250, 181, 196, 62, 210, 186, 250, 181, 96, 210, 186, + 250, 181, 235, 75, 210, 186, 250, 181, 117, 229, 236, 138, 96, 229, 235, + 96, 229, 236, 138, 117, 229, 235, 117, 54, 63, 4, 105, 45, 50, 54, 63, 4, + 105, 96, 54, 63, 4, 105, 117, 54, 55, 196, 62, 54, 55, 96, 54, 55, 235, + 75, 54, 55, 45, 50, 54, 55, 132, 143, 54, 55, 185, 193, 103, 54, 55, 185, + 234, 160, 54, 55, 201, 253, 234, 160, 54, 55, 201, 253, 193, 103, 54, 55, + 117, 197, 221, 55, 96, 197, 221, 55, 117, 201, 178, 55, 96, 201, 178, 55, + 196, 62, 63, 4, 54, 105, 235, 75, 63, 4, 54, 105, 117, 237, 169, 55, 196, + 62, 237, 169, 55, 96, 237, 169, 55, 235, 75, 237, 169, 55, 117, 63, 118, + 164, 96, 63, 118, 164, 117, 64, 55, 196, 62, 64, 55, 96, 64, 55, 235, 75, + 64, 55, 196, 62, 64, 63, 232, 60, 164, 196, 62, 64, 63, 211, 94, 210, 43, + 196, 62, 64, 63, 211, 94, 210, 44, 4, 228, 209, 164, 196, 62, 64, 63, + 211, 94, 210, 44, 4, 81, 164, 196, 62, 64, 54, 55, 196, 62, 64, 54, 63, + 211, 94, 210, 43, 96, 64, 63, 232, 60, 193, 164, 185, 193, 103, 63, 118, + 238, 210, 201, 253, 234, 160, 63, 118, 238, 210, 132, 143, 64, 55, 50, + 63, 4, 2, 242, 218, 235, 75, 63, 117, 80, 196, 62, 55, 115, 96, 250, 181, + 117, 63, 4, 81, 105, 96, 63, 4, 81, 105, 45, 50, 63, 4, 81, 105, 117, 63, + 4, 54, 81, 105, 96, 63, 4, 54, 81, 105, 45, 50, 63, 4, 54, 81, 105, 117, + 211, 63, 55, 96, 211, 63, 55, 45, 50, 211, 63, 55, 39, 251, 123, 242, 20, + 210, 95, 236, 227, 199, 19, 233, 170, 199, 19, 236, 119, 212, 255, 233, + 171, 234, 63, 203, 247, 223, 123, 214, 231, 234, 89, 211, 134, 212, 255, + 251, 82, 234, 89, 211, 134, 2, 234, 89, 211, 134, 238, 241, 250, 170, + 216, 171, 236, 119, 212, 255, 238, 243, 250, 170, 216, 171, 2, 238, 241, + 250, 170, 216, 171, 234, 53, 80, 208, 183, 215, 46, 208, 193, 215, 46, + 238, 218, 215, 46, 200, 196, 216, 18, 57, 216, 16, 57, 75, 209, 73, 236, + 155, 202, 92, 203, 248, 216, 17, 250, 144, 211, 55, 206, 184, 211, 55, + 247, 201, 211, 55, 51, 206, 123, 238, 144, 206, 123, 232, 83, 206, 123, + 208, 179, 159, 223, 111, 50, 251, 64, 251, 64, 216, 207, 251, 64, 201, + 220, 251, 64, 236, 158, 236, 119, 212, 255, 236, 162, 210, 109, 159, 212, + 255, 210, 109, 159, 219, 5, 251, 74, 219, 5, 211, 45, 223, 71, 196, 88, + 223, 85, 54, 223, 85, 197, 221, 223, 85, 238, 235, 223, 85, 200, 166, + 223, 85, 195, 8, 223, 85, 242, 173, 223, 85, 242, 173, 238, 235, 223, 85, + 251, 34, 238, 235, 223, 85, 199, 18, 248, 209, 207, 121, 208, 180, 75, + 216, 17, 233, 178, 231, 107, 208, 180, 228, 224, 198, 148, 211, 55, 207, + 13, 198, 147, 223, 65, 219, 221, 206, 3, 202, 167, 193, 136, 193, 10, + 208, 193, 212, 255, 198, 147, 216, 18, 198, 147, 250, 136, 234, 3, 159, + 212, 255, 250, 136, 234, 3, 159, 250, 246, 234, 3, 159, 250, 246, 247, + 170, 212, 255, 251, 252, 234, 3, 159, 214, 91, 250, 246, 213, 8, 251, + 252, 234, 3, 159, 251, 114, 234, 3, 159, 212, 255, 251, 114, 234, 3, 159, + 251, 114, 234, 3, 211, 46, 234, 3, 159, 197, 221, 198, 147, 251, 124, + 234, 3, 159, 233, 250, 159, 231, 106, 233, 250, 159, 236, 228, 248, 159, + 250, 248, 199, 29, 219, 96, 231, 106, 234, 3, 159, 250, 246, 234, 3, 118, + 211, 46, 199, 29, 223, 150, 211, 134, 223, 150, 80, 211, 46, 250, 246, + 234, 3, 159, 242, 36, 234, 0, 234, 1, 242, 35, 206, 184, 223, 135, 234, + 3, 159, 206, 184, 234, 3, 159, 238, 203, 159, 233, 217, 233, 255, 159, + 201, 98, 234, 0, 237, 62, 234, 3, 159, 234, 3, 118, 247, 157, 237, 81, + 216, 207, 247, 156, 208, 6, 234, 3, 159, 212, 255, 234, 3, 159, 227, 244, + 159, 212, 255, 227, 244, 159, 201, 30, 233, 250, 159, 219, 156, 211, 46, + 234, 3, 159, 230, 170, 211, 46, 234, 3, 159, 219, 156, 138, 234, 3, 159, + 230, 170, 138, 234, 3, 159, 219, 156, 247, 170, 212, 255, 234, 3, 159, + 230, 170, 247, 170, 212, 255, 234, 3, 159, 215, 129, 219, 155, 215, 129, + 230, 169, 248, 159, 212, 255, 233, 250, 159, 212, 255, 219, 155, 212, + 255, 230, 169, 214, 91, 219, 156, 213, 8, 234, 3, 159, 214, 91, 230, 170, + 213, 8, 234, 3, 159, 219, 156, 211, 46, 233, 250, 159, 230, 170, 211, 46, + 233, 250, 159, 214, 91, 219, 156, 213, 8, 233, 250, 159, 214, 91, 230, + 170, 213, 8, 233, 250, 159, 219, 156, 211, 46, 230, 169, 230, 170, 211, + 46, 219, 155, 214, 91, 219, 156, 213, 8, 230, 169, 214, 91, 230, 170, + 213, 8, 219, 155, 208, 224, 200, 215, 208, 225, 211, 46, 234, 3, 159, + 200, 216, 211, 46, 234, 3, 159, 208, 225, 211, 46, 233, 250, 159, 200, + 216, 211, 46, 233, 250, 159, 236, 119, 212, 255, 208, 227, 236, 119, 212, + 255, 200, 217, 200, 224, 211, 134, 200, 176, 211, 134, 212, 255, 41, 200, + 224, 211, 134, 212, 255, 41, 200, 176, 211, 134, 200, 224, 80, 211, 46, + 234, 3, 159, 200, 176, 80, 211, 46, 234, 3, 159, 214, 91, 41, 200, 224, + 80, 213, 8, 234, 3, 159, 214, 91, 41, 200, 176, 80, 213, 8, 234, 3, 159, + 200, 224, 80, 4, 212, 255, 234, 3, 159, 200, 176, 80, 4, 212, 255, 234, + 3, 159, 215, 109, 215, 110, 215, 111, 215, 110, 196, 88, 51, 223, 150, + 211, 134, 51, 211, 36, 211, 134, 51, 223, 150, 80, 211, 46, 234, 3, 159, + 51, 211, 36, 80, 211, 46, 234, 3, 159, 51, 247, 63, 51, 238, 134, 47, + 209, 73, 47, 216, 17, 47, 198, 139, 47, 236, 155, 202, 92, 47, 75, 211, + 55, 47, 206, 184, 211, 55, 47, 250, 144, 211, 55, 47, 234, 0, 47, 237, + 170, 112, 209, 73, 112, 216, 17, 112, 198, 139, 112, 75, 211, 55, 50, + 199, 223, 45, 199, 223, 143, 199, 223, 132, 199, 223, 250, 147, 215, 240, + 197, 197, 232, 113, 197, 221, 81, 249, 38, 50, 197, 53, 54, 81, 249, 38, + 54, 50, 197, 53, 236, 119, 212, 255, 208, 172, 212, 255, 197, 197, 236, + 119, 212, 255, 232, 114, 214, 94, 54, 81, 249, 38, 54, 50, 197, 53, 208, + 225, 196, 101, 207, 60, 200, 216, 196, 101, 207, 60, 213, 5, 200, 239, + 211, 134, 238, 241, 250, 170, 213, 5, 200, 238, 213, 5, 200, 239, 80, + 211, 46, 234, 3, 159, 238, 241, 250, 170, 213, 5, 200, 239, 211, 46, 234, + 3, 159, 211, 36, 211, 134, 223, 150, 211, 134, 215, 116, 229, 157, 238, + 252, 217, 8, 223, 82, 192, 192, 214, 210, 213, 7, 50, 251, 65, 4, 250, + 222, 50, 197, 237, 215, 46, 219, 5, 251, 74, 215, 46, 219, 5, 211, 45, + 215, 46, 223, 71, 215, 46, 196, 88, 236, 244, 211, 55, 75, 211, 55, 201, + 98, 211, 55, 236, 155, 198, 139, 248, 15, 45, 213, 5, 233, 52, 204, 19, + 208, 193, 50, 213, 5, 233, 52, 204, 19, 208, 193, 45, 204, 19, 208, 193, + 50, 204, 19, 208, 193, 207, 13, 198, 148, 234, 0, 238, 124, 219, 5, 211, + 45, 238, 124, 219, 5, 251, 74, 54, 200, 223, 54, 200, 175, 54, 223, 71, + 54, 196, 88, 209, 107, 234, 3, 24, 210, 109, 159, 219, 156, 4, 236, 96, + 230, 170, 4, 236, 96, 195, 80, 215, 129, 219, 155, 195, 80, 215, 129, + 230, 169, 219, 156, 234, 3, 118, 211, 46, 230, 169, 230, 170, 234, 3, + 118, 211, 46, 219, 155, 234, 3, 118, 211, 46, 219, 155, 234, 3, 118, 211, + 46, 230, 169, 234, 3, 118, 211, 46, 208, 224, 234, 3, 118, 211, 46, 200, + 215, 236, 119, 212, 255, 208, 228, 211, 46, 234, 2, 236, 119, 212, 255, + 200, 218, 211, 46, 234, 2, 212, 255, 51, 223, 150, 80, 211, 46, 234, 3, + 159, 212, 255, 51, 211, 36, 80, 211, 46, 234, 3, 159, 51, 223, 150, 80, + 211, 46, 212, 255, 234, 3, 159, 51, 211, 36, 80, 211, 46, 212, 255, 234, + 3, 159, 219, 156, 247, 170, 212, 255, 233, 250, 159, 230, 170, 247, 170, + 212, 255, 233, 250, 159, 208, 225, 247, 170, 212, 255, 233, 250, 159, + 200, 216, 247, 170, 212, 255, 233, 250, 159, 212, 255, 213, 5, 200, 239, + 211, 134, 236, 119, 212, 255, 238, 243, 250, 170, 213, 5, 200, 238, 212, + 255, 213, 5, 200, 239, 80, 211, 46, 234, 3, 159, 236, 119, 212, 255, 238, + 243, 250, 170, 213, 5, 200, 239, 211, 46, 234, 2, 81, 234, 78, 216, 64, + 228, 209, 234, 78, 132, 50, 236, 250, 234, 78, 143, 50, 236, 250, 234, + 78, 234, 89, 80, 4, 177, 228, 209, 105, 234, 89, 80, 4, 81, 249, 38, 250, + 133, 234, 53, 80, 228, 209, 105, 2, 234, 89, 80, 4, 81, 249, 38, 250, + 133, 234, 53, 80, 228, 209, 105, 234, 89, 80, 4, 75, 56, 234, 89, 80, 4, + 210, 252, 2, 234, 89, 80, 4, 210, 252, 234, 89, 80, 4, 196, 99, 234, 89, + 80, 4, 103, 228, 209, 201, 10, 238, 241, 4, 177, 228, 209, 105, 238, 241, + 4, 81, 249, 38, 250, 133, 234, 53, 80, 228, 209, 105, 2, 238, 241, 4, 81, + 249, 38, 250, 133, 234, 53, 80, 228, 209, 105, 238, 241, 4, 210, 252, 2, + 238, 241, 4, 210, 252, 191, 167, 212, 253, 249, 81, 216, 170, 236, 245, + 57, 234, 92, 55, 228, 141, 132, 250, 185, 143, 250, 185, 208, 187, 209, + 239, 193, 133, 219, 88, 45, 246, 238, 50, 246, 238, 45, 232, 153, 50, + 232, 153, 248, 29, 50, 238, 172, 248, 29, 45, 238, 172, 198, 49, 50, 238, + 172, 198, 49, 45, 238, 172, 207, 13, 212, 255, 57, 51, 218, 210, 250, + 222, 205, 38, 205, 47, 199, 102, 207, 91, 209, 18, 223, 116, 195, 53, + 201, 185, 209, 100, 80, 223, 81, 57, 152, 212, 255, 57, 193, 143, 228, + 143, 198, 49, 45, 238, 210, 198, 49, 50, 238, 210, 248, 29, 45, 238, 210, + 248, 29, 50, 238, 210, 198, 49, 134, 223, 85, 248, 29, 134, 223, 85, 232, + 55, 202, 60, 132, 250, 186, 248, 160, 103, 228, 209, 249, 26, 211, 48, + 221, 197, 233, 246, 118, 199, 29, 187, 192, 236, 223, 135, 41, 207, 88, + 248, 14, 221, 195, 219, 195, 251, 65, 248, 5, 206, 198, 251, 65, 248, 5, + 233, 246, 118, 199, 29, 219, 200, 248, 171, 206, 183, 238, 91, 251, 124, + 250, 194, 200, 70, 198, 34, 206, 36, 236, 207, 211, 37, 239, 0, 199, 176, + 202, 76, 238, 199, 238, 198, 251, 9, 232, 38, 16, 228, 37, 251, 9, 232, + 38, 16, 201, 176, 208, 24, 251, 9, 232, 38, 16, 208, 25, 234, 2, 251, 9, + 232, 38, 16, 208, 25, 236, 162, 251, 9, 232, 38, 16, 208, 25, 236, 243, + 251, 9, 232, 38, 16, 208, 25, 222, 161, 251, 9, 232, 38, 16, 208, 25, + 242, 218, 251, 9, 232, 38, 16, 242, 219, 201, 66, 251, 9, 232, 38, 16, + 242, 219, 222, 161, 251, 9, 232, 38, 16, 202, 93, 164, 251, 9, 232, 38, + 16, 249, 92, 164, 251, 9, 232, 38, 16, 208, 25, 202, 92, 251, 9, 232, 38, + 16, 208, 25, 249, 91, 251, 9, 232, 38, 16, 208, 25, 219, 155, 251, 9, + 232, 38, 16, 208, 25, 230, 169, 251, 9, 232, 38, 16, 117, 195, 173, 251, + 9, 232, 38, 16, 96, 195, 173, 251, 9, 232, 38, 16, 208, 25, 117, 55, 251, + 9, 232, 38, 16, 208, 25, 96, 55, 251, 9, 232, 38, 16, 242, 219, 249, 91, + 251, 9, 232, 38, 16, 143, 199, 224, 196, 99, 251, 9, 232, 38, 16, 237, + 62, 201, 66, 251, 9, 232, 38, 16, 208, 25, 143, 247, 48, 251, 9, 232, 38, + 16, 208, 25, 237, 61, 251, 9, 232, 38, 16, 143, 199, 224, 222, 161, 251, + 9, 232, 38, 16, 196, 62, 195, 173, 251, 9, 232, 38, 16, 208, 25, 196, 62, + 55, 251, 9, 232, 38, 16, 132, 199, 224, 210, 252, 251, 9, 232, 38, 16, + 237, 74, 201, 66, 251, 9, 232, 38, 16, 208, 25, 132, 247, 48, 251, 9, + 232, 38, 16, 208, 25, 237, 73, 251, 9, 232, 38, 16, 132, 199, 224, 222, + 161, 251, 9, 232, 38, 16, 235, 75, 195, 173, 251, 9, 232, 38, 16, 208, + 25, 235, 75, 55, 251, 9, 232, 38, 16, 207, 246, 196, 99, 251, 9, 232, 38, + 16, 237, 62, 196, 99, 251, 9, 232, 38, 16, 236, 244, 196, 99, 251, 9, + 232, 38, 16, 222, 162, 196, 99, 251, 9, 232, 38, 16, 242, 219, 196, 99, + 251, 9, 232, 38, 16, 132, 203, 48, 222, 161, 251, 9, 232, 38, 16, 207, + 246, 208, 24, 251, 9, 232, 38, 16, 242, 219, 201, 97, 251, 9, 232, 38, + 16, 208, 25, 242, 35, 251, 9, 232, 38, 16, 132, 199, 224, 236, 253, 251, + 9, 232, 38, 16, 237, 74, 236, 253, 251, 9, 232, 38, 16, 201, 98, 236, + 253, 251, 9, 232, 38, 16, 222, 162, 236, 253, 251, 9, 232, 38, 16, 242, + 219, 236, 253, 251, 9, 232, 38, 16, 143, 203, 48, 201, 66, 251, 9, 232, + 38, 16, 45, 203, 48, 201, 66, 251, 9, 232, 38, 16, 198, 148, 236, 253, + 251, 9, 232, 38, 16, 230, 170, 236, 253, 251, 9, 232, 38, 16, 242, 27, + 164, 251, 9, 232, 38, 16, 237, 74, 198, 147, 251, 9, 232, 38, 16, 191, + 20, 251, 9, 232, 38, 16, 201, 67, 198, 147, 251, 9, 232, 38, 16, 204, 21, + 196, 99, 251, 9, 232, 38, 16, 208, 25, 212, 255, 234, 2, 251, 9, 232, 38, + 16, 208, 25, 208, 7, 251, 9, 232, 38, 16, 143, 247, 49, 198, 147, 251, 9, + 232, 38, 16, 132, 247, 49, 198, 147, 251, 9, 232, 38, 16, 223, 55, 251, + 9, 232, 38, 16, 206, 254, 251, 9, 232, 38, 16, 211, 99, 251, 9, 232, 38, + 16, 251, 110, 196, 99, 251, 9, 232, 38, 16, 234, 6, 196, 99, 251, 9, 232, + 38, 16, 223, 56, 196, 99, 251, 9, 232, 38, 16, 211, 100, 196, 99, 251, 9, + 232, 38, 16, 251, 109, 212, 255, 243, 78, 77, 50, 251, 65, 4, 235, 75, + 191, 21, 55, 203, 16, 211, 66, 248, 14, 248, 186, 113, 81, 219, 89, 4, + 82, 236, 96, 223, 91, 113, 238, 236, 196, 97, 113, 236, 180, 196, 97, + 113, 234, 65, 113, 239, 15, 113, 64, 51, 4, 246, 230, 81, 219, 88, 234, + 36, 113, 251, 101, 221, 198, 113, 229, 170, 113, 47, 228, 209, 249, 38, + 4, 212, 252, 47, 197, 238, 235, 79, 247, 230, 242, 219, 4, 213, 2, 55, + 196, 95, 113, 215, 199, 113, 228, 54, 113, 211, 64, 230, 82, 113, 211, + 64, 220, 117, 113, 210, 83, 113, 210, 82, 113, 236, 189, 238, 122, 16, + 232, 107, 109, 202, 24, 113, 251, 9, 232, 38, 16, 208, 24, 237, 93, 204, + 6, 221, 198, 113, 208, 210, 210, 194, 214, 59, 210, 194, 208, 205, 205, + 72, 113, 242, 190, 205, 72, 113, 45, 210, 104, 116, 106, 45, 210, 104, + 233, 162, 45, 210, 104, 110, 106, 50, 210, 104, 116, 106, 50, 210, 104, + 233, 162, 50, 210, 104, 110, 106, 45, 51, 248, 6, 116, 238, 210, 45, 51, + 248, 6, 233, 162, 45, 51, 248, 6, 110, 238, 210, 50, 51, 248, 6, 116, + 238, 210, 50, 51, 248, 6, 233, 162, 50, 51, 248, 6, 110, 238, 210, 45, + 238, 124, 248, 6, 116, 106, 45, 238, 124, 248, 6, 82, 209, 166, 45, 238, + 124, 248, 6, 110, 106, 238, 124, 248, 6, 233, 162, 50, 238, 124, 248, 6, + 116, 106, 50, 238, 124, 248, 6, 82, 209, 166, 50, 238, 124, 248, 6, 110, + 106, 223, 86, 233, 162, 228, 209, 219, 89, 233, 162, 116, 45, 211, 46, + 110, 50, 238, 124, 248, 6, 205, 48, 116, 50, 211, 46, 110, 45, 238, 124, + 248, 6, 205, 48, 200, 197, 198, 48, 200, 197, 248, 28, 198, 49, 51, 248, + 5, 248, 29, 51, 248, 5, 248, 29, 51, 248, 6, 138, 198, 49, 51, 248, 5, + 48, 16, 248, 28, 45, 81, 111, 219, 88, 50, 81, 111, 219, 88, 228, 209, + 205, 92, 219, 87, 228, 209, 205, 92, 219, 86, 228, 209, 205, 92, 219, 85, + 228, 209, 205, 92, 219, 84, 237, 52, 16, 155, 81, 24, 198, 49, 187, 237, + 52, 16, 155, 81, 24, 248, 29, 187, 237, 52, 16, 155, 81, 4, 242, 218, + 237, 52, 16, 155, 143, 24, 228, 209, 4, 242, 218, 237, 52, 16, 155, 132, + 24, 228, 209, 4, 242, 218, 237, 52, 16, 155, 81, 4, 197, 237, 237, 52, + 16, 155, 143, 24, 228, 209, 4, 197, 237, 237, 52, 16, 155, 132, 24, 228, + 209, 4, 197, 237, 237, 52, 16, 155, 81, 24, 193, 136, 237, 52, 16, 155, + 143, 24, 228, 209, 4, 193, 136, 237, 52, 16, 155, 132, 24, 228, 209, 4, + 193, 136, 237, 52, 16, 155, 143, 24, 228, 208, 237, 52, 16, 155, 132, 24, + 228, 208, 237, 52, 16, 155, 81, 24, 198, 49, 219, 200, 237, 52, 16, 155, + 81, 24, 248, 29, 219, 200, 51, 232, 120, 207, 18, 113, 234, 106, 113, 81, + 219, 89, 233, 162, 216, 140, 247, 244, 216, 140, 177, 138, 203, 34, 216, + 140, 203, 35, 138, 218, 251, 216, 140, 177, 138, 103, 203, 20, 216, 140, + 103, 203, 21, 138, 218, 251, 216, 140, 103, 203, 21, 222, 170, 216, 140, + 197, 217, 216, 140, 199, 60, 216, 140, 210, 13, 234, 164, 230, 155, 232, + 32, 198, 49, 210, 103, 248, 29, 210, 103, 198, 49, 238, 124, 248, 5, 248, + 29, 238, 124, 248, 5, 198, 49, 198, 37, 203, 98, 248, 5, 248, 29, 198, + 37, 203, 98, 248, 5, 64, 198, 1, 248, 171, 206, 184, 4, 242, 218, 201, + 46, 232, 164, 252, 12, 238, 121, 234, 91, 223, 71, 237, 93, 233, 166, + 113, 62, 206, 198, 54, 197, 237, 62, 219, 195, 54, 197, 237, 62, 196, 72, + 54, 197, 237, 62, 235, 78, 54, 197, 237, 62, 206, 198, 54, 197, 238, 4, + 81, 164, 62, 219, 195, 54, 197, 238, 4, 81, 164, 62, 206, 198, 197, 238, + 4, 54, 81, 164, 251, 150, 242, 174, 201, 53, 198, 140, 242, 174, 228, + 144, 4, 232, 144, 205, 135, 62, 216, 194, 219, 195, 197, 237, 62, 216, + 194, 206, 198, 197, 237, 62, 216, 194, 196, 72, 197, 237, 62, 216, 194, + 235, 78, 197, 237, 54, 81, 164, 62, 51, 39, 201, 58, 62, 242, 219, 39, + 207, 92, 208, 248, 113, 208, 248, 211, 92, 113, 208, 248, 211, 94, 113, + 208, 248, 202, 88, 113, 211, 155, 233, 153, 113, 16, 39, 212, 125, 16, + 39, 201, 93, 80, 229, 200, 16, 39, 201, 93, 80, 199, 48, 16, 39, 234, 53, + 80, 199, 48, 16, 39, 234, 53, 80, 198, 7, 16, 39, 234, 39, 16, 39, 251, + 255, 16, 39, 248, 185, 16, 39, 249, 90, 16, 39, 228, 209, 199, 225, 16, + 39, 219, 89, 233, 9, 16, 39, 81, 199, 225, 16, 39, 232, 107, 233, 9, 16, + 39, 247, 40, 207, 17, 16, 39, 203, 72, 211, 4, 16, 39, 203, 72, 223, 134, + 16, 39, 237, 165, 219, 79, 233, 228, 16, 39, 237, 30, 238, 231, 108, 16, + 39, 237, 30, 238, 231, 109, 16, 39, 237, 30, 238, 231, 139, 16, 39, 237, + 30, 238, 231, 137, 16, 39, 214, 92, 251, 255, 16, 39, 200, 65, 223, 199, + 16, 39, 234, 53, 80, 198, 8, 248, 81, 16, 39, 247, 78, 16, 39, 234, 53, + 80, 216, 193, 16, 39, 200, 221, 16, 39, 233, 228, 16, 39, 232, 222, 204, + 5, 16, 39, 230, 154, 204, 5, 16, 39, 207, 93, 204, 5, 16, 39, 196, 87, + 204, 5, 16, 39, 201, 242, 16, 39, 237, 71, 248, 85, 113, 211, 66, 248, + 14, 16, 39, 214, 62, 16, 39, 237, 72, 232, 107, 109, 16, 39, 200, 222, + 232, 107, 109, 211, 149, 106, 211, 149, 246, 204, 211, 149, 232, 110, + 211, 149, 223, 65, 232, 110, 211, 149, 248, 182, 247, 213, 211, 149, 248, + 22, 198, 173, 211, 149, 248, 0, 249, 43, 227, 242, 211, 149, 251, 88, 80, + 243, 77, 211, 149, 237, 170, 211, 149, 238, 110, 252, 3, 212, 123, 211, + 149, 54, 249, 91, 47, 17, 108, 47, 17, 109, 47, 17, 139, 47, 17, 137, 47, + 17, 153, 47, 17, 173, 47, 17, 181, 47, 17, 176, 47, 17, 184, 47, 31, 199, + 90, 47, 31, 234, 84, 47, 31, 197, 33, 47, 31, 198, 246, 47, 31, 232, 84, + 47, 31, 232, 234, 47, 31, 202, 125, 47, 31, 203, 239, 47, 31, 234, 118, + 47, 31, 213, 158, 47, 31, 197, 28, 127, 17, 108, 127, 17, 109, 127, 17, + 139, 127, 17, 137, 127, 17, 153, 127, 17, 173, 127, 17, 181, 127, 17, + 176, 127, 17, 184, 127, 31, 199, 90, 127, 31, 234, 84, 127, 31, 197, 33, + 127, 31, 198, 246, 127, 31, 232, 84, 127, 31, 232, 234, 127, 31, 202, + 125, 127, 31, 203, 239, 127, 31, 234, 118, 127, 31, 213, 158, 127, 31, + 197, 28, 17, 91, 232, 42, 201, 58, 17, 103, 232, 42, 201, 58, 17, 115, + 232, 42, 201, 58, 17, 232, 90, 232, 42, 201, 58, 17, 232, 185, 232, 42, + 201, 58, 17, 202, 131, 232, 42, 201, 58, 17, 203, 242, 232, 42, 201, 58, + 17, 234, 121, 232, 42, 201, 58, 17, 213, 161, 232, 42, 201, 58, 31, 199, + 91, 232, 42, 201, 58, 31, 234, 85, 232, 42, 201, 58, 31, 197, 34, 232, + 42, 201, 58, 31, 198, 247, 232, 42, 201, 58, 31, 232, 85, 232, 42, 201, + 58, 31, 232, 235, 232, 42, 201, 58, 31, 202, 126, 232, 42, 201, 58, 31, + 203, 240, 232, 42, 201, 58, 31, 234, 119, 232, 42, 201, 58, 31, 213, 159, + 232, 42, 201, 58, 31, 197, 29, 232, 42, 201, 58, 127, 8, 2, 1, 65, 127, + 8, 2, 1, 250, 70, 127, 8, 2, 1, 247, 145, 127, 8, 2, 1, 238, 80, 127, 8, + 2, 1, 73, 127, 8, 2, 1, 233, 134, 127, 8, 2, 1, 232, 14, 127, 8, 2, 1, + 230, 83, 127, 8, 2, 1, 70, 127, 8, 2, 1, 223, 7, 127, 8, 2, 1, 222, 125, + 127, 8, 2, 1, 170, 127, 8, 2, 1, 218, 147, 127, 8, 2, 1, 215, 47, 127, 8, + 2, 1, 74, 127, 8, 2, 1, 210, 226, 127, 8, 2, 1, 208, 97, 127, 8, 2, 1, + 148, 127, 8, 2, 1, 206, 3, 127, 8, 2, 1, 200, 39, 127, 8, 2, 1, 69, 127, + 8, 2, 1, 196, 8, 127, 8, 2, 1, 193, 221, 127, 8, 2, 1, 192, 235, 127, 8, + 2, 1, 192, 159, 127, 8, 2, 1, 191, 166, 47, 8, 6, 1, 65, 47, 8, 6, 1, + 250, 70, 47, 8, 6, 1, 247, 145, 47, 8, 6, 1, 238, 80, 47, 8, 6, 1, 73, + 47, 8, 6, 1, 233, 134, 47, 8, 6, 1, 232, 14, 47, 8, 6, 1, 230, 83, 47, 8, + 6, 1, 70, 47, 8, 6, 1, 223, 7, 47, 8, 6, 1, 222, 125, 47, 8, 6, 1, 170, + 47, 8, 6, 1, 218, 147, 47, 8, 6, 1, 215, 47, 47, 8, 6, 1, 74, 47, 8, 6, + 1, 210, 226, 47, 8, 6, 1, 208, 97, 47, 8, 6, 1, 148, 47, 8, 6, 1, 206, 3, + 47, 8, 6, 1, 200, 39, 47, 8, 6, 1, 69, 47, 8, 6, 1, 196, 8, 47, 8, 6, 1, + 193, 221, 47, 8, 6, 1, 192, 235, 47, 8, 6, 1, 192, 159, 47, 8, 6, 1, 191, + 166, 47, 8, 2, 1, 65, 47, 8, 2, 1, 250, 70, 47, 8, 2, 1, 247, 145, 47, 8, + 2, 1, 238, 80, 47, 8, 2, 1, 73, 47, 8, 2, 1, 233, 134, 47, 8, 2, 1, 232, + 14, 47, 8, 2, 1, 230, 83, 47, 8, 2, 1, 70, 47, 8, 2, 1, 223, 7, 47, 8, 2, + 1, 222, 125, 47, 8, 2, 1, 170, 47, 8, 2, 1, 218, 147, 47, 8, 2, 1, 215, + 47, 47, 8, 2, 1, 74, 47, 8, 2, 1, 210, 226, 47, 8, 2, 1, 208, 97, 47, 8, + 2, 1, 148, 47, 8, 2, 1, 206, 3, 47, 8, 2, 1, 200, 39, 47, 8, 2, 1, 69, + 47, 8, 2, 1, 196, 8, 47, 8, 2, 1, 193, 221, 47, 8, 2, 1, 192, 235, 47, 8, + 2, 1, 192, 159, 47, 8, 2, 1, 191, 166, 47, 17, 191, 77, 214, 92, 47, 31, + 234, 84, 214, 92, 47, 31, 197, 33, 214, 92, 47, 31, 198, 246, 214, 92, + 47, 31, 232, 84, 214, 92, 47, 31, 232, 234, 214, 92, 47, 31, 202, 125, + 214, 92, 47, 31, 203, 239, 214, 92, 47, 31, 234, 118, 214, 92, 47, 31, + 213, 158, 214, 92, 47, 31, 197, 28, 54, 47, 17, 108, 54, 47, 17, 109, 54, + 47, 17, 139, 54, 47, 17, 137, 54, 47, 17, 153, 54, 47, 17, 173, 54, 47, + 17, 181, 54, 47, 17, 176, 54, 47, 17, 184, 54, 47, 31, 199, 90, 214, 92, + 47, 17, 191, 77, 111, 122, 155, 228, 208, 111, 122, 88, 228, 208, 111, + 122, 155, 195, 132, 111, 122, 88, 195, 132, 111, 122, 155, 197, 221, 237, + 171, 228, 208, 111, 122, 88, 197, 221, 237, 171, 228, 208, 111, 122, 155, + 197, 221, 237, 171, 195, 132, 111, 122, 88, 197, 221, 237, 171, 195, 132, + 111, 122, 155, 208, 20, 237, 171, 228, 208, 111, 122, 88, 208, 20, 237, + 171, 228, 208, 111, 122, 155, 208, 20, 237, 171, 195, 132, 111, 122, 88, + 208, 20, 237, 171, 195, 132, 111, 122, 155, 143, 24, 187, 111, 122, 143, + 155, 24, 50, 229, 185, 111, 122, 143, 88, 24, 50, 219, 108, 111, 122, 88, + 143, 24, 187, 111, 122, 155, 143, 24, 219, 200, 111, 122, 143, 155, 24, + 45, 229, 185, 111, 122, 143, 88, 24, 45, 219, 108, 111, 122, 88, 143, 24, + 219, 200, 111, 122, 155, 132, 24, 187, 111, 122, 132, 155, 24, 50, 229, + 185, 111, 122, 132, 88, 24, 50, 219, 108, 111, 122, 88, 132, 24, 187, + 111, 122, 155, 132, 24, 219, 200, 111, 122, 132, 155, 24, 45, 229, 185, + 111, 122, 132, 88, 24, 45, 219, 108, 111, 122, 88, 132, 24, 219, 200, + 111, 122, 155, 81, 24, 187, 111, 122, 81, 155, 24, 50, 229, 185, 111, + 122, 132, 88, 24, 50, 143, 219, 108, 111, 122, 143, 88, 24, 50, 132, 219, + 108, 111, 122, 81, 88, 24, 50, 219, 108, 111, 122, 143, 155, 24, 50, 132, + 229, 185, 111, 122, 132, 155, 24, 50, 143, 229, 185, 111, 122, 88, 81, + 24, 187, 111, 122, 155, 81, 24, 219, 200, 111, 122, 81, 155, 24, 45, 229, + 185, 111, 122, 132, 88, 24, 45, 143, 219, 108, 111, 122, 143, 88, 24, 45, + 132, 219, 108, 111, 122, 81, 88, 24, 45, 219, 108, 111, 122, 143, 155, + 24, 45, 132, 229, 185, 111, 122, 132, 155, 24, 45, 143, 229, 185, 111, + 122, 88, 81, 24, 219, 200, 111, 122, 155, 143, 24, 228, 208, 111, 122, + 45, 88, 24, 50, 143, 219, 108, 111, 122, 50, 88, 24, 45, 143, 219, 108, + 111, 122, 143, 155, 24, 228, 209, 229, 185, 111, 122, 143, 88, 24, 228, + 209, 219, 108, 111, 122, 50, 155, 24, 45, 143, 229, 185, 111, 122, 45, + 155, 24, 50, 143, 229, 185, 111, 122, 88, 143, 24, 228, 208, 111, 122, + 155, 132, 24, 228, 208, 111, 122, 45, 88, 24, 50, 132, 219, 108, 111, + 122, 50, 88, 24, 45, 132, 219, 108, 111, 122, 132, 155, 24, 228, 209, + 229, 185, 111, 122, 132, 88, 24, 228, 209, 219, 108, 111, 122, 50, 155, + 24, 45, 132, 229, 185, 111, 122, 45, 155, 24, 50, 132, 229, 185, 111, + 122, 88, 132, 24, 228, 208, 111, 122, 155, 81, 24, 228, 208, 111, 122, + 45, 88, 24, 50, 81, 219, 108, 111, 122, 50, 88, 24, 45, 81, 219, 108, + 111, 122, 81, 155, 24, 228, 209, 229, 185, 111, 122, 132, 88, 24, 143, + 228, 209, 219, 108, 111, 122, 143, 88, 24, 132, 228, 209, 219, 108, 111, + 122, 81, 88, 24, 228, 209, 219, 108, 111, 122, 45, 132, 88, 24, 50, 143, + 219, 108, 111, 122, 50, 132, 88, 24, 45, 143, 219, 108, 111, 122, 45, + 143, 88, 24, 50, 132, 219, 108, 111, 122, 50, 143, 88, 24, 45, 132, 219, + 108, 111, 122, 143, 155, 24, 132, 228, 209, 229, 185, 111, 122, 132, 155, + 24, 143, 228, 209, 229, 185, 111, 122, 50, 155, 24, 45, 81, 229, 185, + 111, 122, 45, 155, 24, 50, 81, 229, 185, 111, 122, 88, 81, 24, 228, 208, + 111, 122, 155, 54, 237, 171, 228, 208, 111, 122, 88, 54, 237, 171, 228, + 208, 111, 122, 155, 54, 237, 171, 195, 132, 111, 122, 88, 54, 237, 171, + 195, 132, 111, 122, 54, 228, 208, 111, 122, 54, 195, 132, 111, 122, 143, + 202, 165, 24, 50, 235, 89, 111, 122, 143, 54, 24, 50, 202, 164, 111, 122, + 54, 143, 24, 187, 111, 122, 143, 202, 165, 24, 45, 235, 89, 111, 122, + 143, 54, 24, 45, 202, 164, 111, 122, 54, 143, 24, 219, 200, 111, 122, + 132, 202, 165, 24, 50, 235, 89, 111, 122, 132, 54, 24, 50, 202, 164, 111, + 122, 54, 132, 24, 187, 111, 122, 132, 202, 165, 24, 45, 235, 89, 111, + 122, 132, 54, 24, 45, 202, 164, 111, 122, 54, 132, 24, 219, 200, 111, + 122, 81, 202, 165, 24, 50, 235, 89, 111, 122, 81, 54, 24, 50, 202, 164, + 111, 122, 54, 81, 24, 187, 111, 122, 81, 202, 165, 24, 45, 235, 89, 111, + 122, 81, 54, 24, 45, 202, 164, 111, 122, 54, 81, 24, 219, 200, 111, 122, + 143, 202, 165, 24, 228, 209, 235, 89, 111, 122, 143, 54, 24, 228, 209, + 202, 164, 111, 122, 54, 143, 24, 228, 208, 111, 122, 132, 202, 165, 24, + 228, 209, 235, 89, 111, 122, 132, 54, 24, 228, 209, 202, 164, 111, 122, + 54, 132, 24, 228, 208, 111, 122, 81, 202, 165, 24, 228, 209, 235, 89, + 111, 122, 81, 54, 24, 228, 209, 202, 164, 111, 122, 54, 81, 24, 228, 208, + 111, 122, 155, 250, 223, 143, 24, 187, 111, 122, 155, 250, 223, 143, 24, + 219, 200, 111, 122, 155, 250, 223, 132, 24, 219, 200, 111, 122, 155, 250, + 223, 132, 24, 187, 111, 122, 155, 236, 250, 116, 50, 118, 110, 219, 200, + 111, 122, 155, 236, 250, 116, 45, 118, 110, 187, 111, 122, 155, 236, 250, + 238, 170, 111, 122, 155, 219, 200, 111, 122, 155, 196, 73, 111, 122, 155, + 187, 111, 122, 155, 235, 79, 111, 122, 88, 219, 200, 111, 122, 88, 196, + 73, 111, 122, 88, 187, 111, 122, 88, 235, 79, 111, 122, 155, 45, 24, 88, + 187, 111, 122, 155, 132, 24, 88, 235, 79, 111, 122, 88, 45, 24, 155, 187, + 111, 122, 88, 132, 24, 155, 235, 79, 116, 134, 248, 81, 110, 91, 234, + 117, 248, 81, 110, 91, 208, 18, 248, 81, 110, 115, 234, 115, 248, 81, + 110, 134, 248, 81, 110, 232, 185, 234, 115, 248, 81, 110, 115, 208, 16, + 248, 81, 110, 203, 242, 234, 115, 248, 81, 232, 42, 248, 81, 45, 203, + 242, 234, 115, 248, 81, 45, 115, 208, 16, 248, 81, 45, 232, 185, 234, + 115, 248, 81, 45, 134, 248, 81, 45, 115, 234, 115, 248, 81, 45, 91, 208, + 18, 248, 81, 45, 91, 234, 117, 248, 81, 50, 134, 248, 81, 155, 203, 148, + 216, 194, 203, 148, 237, 176, 203, 148, 116, 91, 234, 117, 248, 81, 50, + 91, 234, 117, 248, 81, 208, 22, 110, 219, 200, 208, 22, 110, 187, 208, + 22, 116, 219, 200, 208, 22, 116, 45, 24, 110, 45, 24, 110, 187, 208, 22, + 116, 45, 24, 110, 187, 208, 22, 116, 45, 24, 116, 50, 24, 110, 219, 200, + 208, 22, 116, 45, 24, 116, 50, 24, 110, 187, 208, 22, 116, 187, 208, 22, + 116, 50, 24, 110, 219, 200, 208, 22, 116, 50, 24, 110, 45, 24, 110, 187, + 62, 201, 185, 64, 201, 185, 64, 51, 4, 206, 108, 238, 209, 64, 51, 238, + 242, 62, 2, 201, 185, 51, 4, 228, 209, 232, 220, 51, 4, 81, 232, 220, 51, + 4, 211, 28, 238, 164, 232, 220, 51, 4, 116, 45, 118, 110, 50, 232, 220, + 51, 4, 116, 50, 118, 110, 45, 232, 220, 51, 4, 236, 250, 238, 164, 232, + 220, 62, 2, 201, 185, 64, 2, 201, 185, 62, 207, 87, 64, 207, 87, 62, 81, + 207, 87, 64, 81, 207, 87, 62, 210, 107, 64, 210, 107, 62, 196, 72, 197, + 237, 64, 196, 72, 197, 237, 62, 196, 72, 2, 197, 237, 64, 196, 72, 2, + 197, 237, 62, 206, 198, 197, 237, 64, 206, 198, 197, 237, 62, 206, 198, + 2, 197, 237, 64, 206, 198, 2, 197, 237, 62, 206, 198, 209, 52, 64, 206, + 198, 209, 52, 62, 235, 78, 197, 237, 64, 235, 78, 197, 237, 62, 235, 78, + 2, 197, 237, 64, 235, 78, 2, 197, 237, 62, 219, 195, 197, 237, 64, 219, + 195, 197, 237, 62, 219, 195, 2, 197, 237, 64, 219, 195, 2, 197, 237, 62, + 219, 195, 209, 52, 64, 219, 195, 209, 52, 62, 236, 243, 64, 236, 243, 64, + 236, 244, 238, 242, 62, 2, 236, 243, 232, 194, 218, 210, 64, 242, 218, + 235, 94, 242, 218, 242, 219, 4, 81, 232, 220, 247, 196, 62, 242, 218, + 242, 219, 4, 45, 134, 248, 91, 242, 219, 4, 50, 134, 248, 91, 242, 219, + 4, 110, 134, 248, 91, 242, 219, 4, 116, 134, 248, 91, 242, 219, 4, 116, + 50, 208, 22, 248, 91, 242, 219, 4, 251, 124, 247, 170, 116, 45, 208, 22, + 248, 91, 45, 134, 62, 242, 218, 50, 134, 62, 242, 218, 223, 67, 247, 200, + 223, 67, 64, 242, 218, 116, 134, 223, 67, 64, 242, 218, 110, 134, 223, + 67, 64, 242, 218, 116, 45, 208, 22, 242, 212, 250, 222, 116, 50, 208, 22, + 242, 212, 250, 222, 110, 50, 208, 22, 242, 212, 250, 222, 110, 45, 208, + 22, 242, 212, 250, 222, 116, 134, 242, 218, 110, 134, 242, 218, 62, 110, + 50, 197, 237, 62, 110, 45, 197, 237, 62, 116, 45, 197, 237, 62, 116, 50, + 197, 237, 64, 247, 200, 51, 4, 45, 134, 248, 91, 51, 4, 50, 134, 248, 91, + 51, 4, 116, 45, 236, 250, 134, 248, 91, 51, 4, 110, 50, 236, 250, 134, + 248, 91, 64, 51, 4, 81, 248, 106, 219, 88, 64, 196, 72, 197, 238, 4, 236, + 96, 196, 72, 197, 238, 4, 45, 134, 248, 91, 196, 72, 197, 238, 4, 50, + 134, 248, 91, 219, 245, 242, 218, 64, 51, 4, 116, 45, 208, 21, 64, 51, 4, + 110, 45, 208, 21, 64, 51, 4, 110, 50, 208, 21, 64, 51, 4, 116, 50, 208, + 21, 64, 242, 219, 4, 116, 45, 208, 21, 64, 242, 219, 4, 110, 45, 208, 21, + 64, 242, 219, 4, 110, 50, 208, 21, 64, 242, 219, 4, 116, 50, 208, 21, + 116, 45, 197, 237, 116, 50, 197, 237, 110, 45, 197, 237, 64, 216, 194, + 201, 185, 62, 216, 194, 201, 185, 64, 216, 194, 2, 201, 185, 62, 216, + 194, 2, 201, 185, 110, 50, 197, 237, 62, 200, 194, 4, 207, 114, 242, 162, + 196, 113, 202, 43, 242, 29, 62, 201, 97, 64, 201, 97, 219, 105, 198, 203, + 200, 193, 250, 163, 213, 22, 237, 41, 213, 22, 238, 251, 211, 51, 62, + 199, 101, 64, 199, 101, 249, 57, 248, 14, 249, 57, 111, 4, 243, 77, 249, + 57, 111, 4, 192, 235, 205, 149, 196, 114, 4, 207, 145, 235, 52, 228, 150, + 248, 157, 64, 203, 44, 209, 166, 62, 203, 44, 209, 166, 203, 135, 207, + 13, 206, 117, 232, 150, 229, 192, 247, 200, 62, 45, 209, 51, 223, 120, + 62, 50, 209, 51, 223, 120, 64, 45, 209, 51, 223, 120, 64, 132, 209, 51, + 223, 120, 64, 50, 209, 51, 223, 120, 64, 143, 209, 51, 223, 120, 202, 99, + 24, 238, 168, 247, 23, 57, 207, 159, 57, 248, 114, 57, 247, 103, 251, 48, + 211, 29, 238, 170, 243, 48, 206, 254, 238, 171, 80, 218, 231, 238, 171, + 80, 222, 227, 201, 98, 24, 238, 180, 233, 33, 113, 251, 238, 203, 138, + 230, 29, 24, 202, 208, 210, 52, 113, 192, 22, 192, 106, 197, 227, 39, + 229, 187, 197, 227, 39, 220, 19, 197, 227, 39, 232, 202, 197, 227, 39, + 198, 204, 197, 227, 39, 193, 64, 197, 227, 39, 193, 141, 197, 227, 39, + 215, 168, 197, 227, 39, 234, 163, 193, 92, 80, 237, 15, 64, 232, 54, 233, + 62, 64, 202, 59, 233, 62, 62, 202, 59, 233, 62, 64, 200, 194, 4, 207, + 114, 232, 197, 208, 18, 215, 188, 219, 238, 208, 18, 215, 188, 216, 161, + 233, 1, 57, 234, 163, 217, 77, 57, 222, 140, 205, 110, 196, 53, 214, 80, + 209, 69, 250, 208, 199, 159, 231, 115, 247, 76, 219, 162, 195, 35, 219, + 119, 205, 75, 205, 178, 247, 58, 250, 240, 209, 112, 64, 243, 57, 221, + 114, 64, 243, 57, 208, 9, 64, 243, 57, 206, 126, 64, 243, 57, 248, 104, + 64, 243, 57, 221, 52, 64, 243, 57, 210, 64, 62, 243, 57, 221, 114, 62, + 243, 57, 208, 9, 62, 243, 57, 206, 126, 62, 243, 57, 248, 104, 62, 243, + 57, 221, 52, 62, 243, 57, 210, 64, 62, 201, 240, 200, 206, 64, 229, 192, + 200, 206, 64, 236, 244, 200, 206, 62, 242, 159, 200, 206, 64, 201, 240, + 200, 206, 62, 229, 192, 200, 206, 62, 236, 244, 200, 206, 64, 242, 159, + 200, 206, 228, 150, 201, 190, 208, 18, 212, 249, 234, 117, 212, 249, 248, + 219, 234, 117, 212, 244, 248, 219, 202, 124, 212, 244, 215, 83, 232, 167, + 57, 215, 83, 214, 192, 57, 215, 83, 203, 122, 57, 193, 103, 200, 59, 238, + 170, 234, 160, 200, 59, 238, 170, 196, 83, 207, 83, 113, 207, 83, 16, 39, + 196, 250, 209, 90, 207, 83, 16, 39, 196, 248, 209, 90, 207, 83, 16, 39, + 196, 247, 209, 90, 207, 83, 16, 39, 196, 245, 209, 90, 207, 83, 16, 39, + 196, 243, 209, 90, 207, 83, 16, 39, 196, 241, 209, 90, 207, 83, 16, 39, + 196, 239, 209, 90, 207, 83, 16, 39, 231, 112, 217, 9, 62, 196, 83, 207, + 83, 113, 207, 84, 210, 126, 113, 210, 94, 210, 126, 113, 209, 250, 210, + 126, 57, 193, 90, 113, 236, 236, 233, 61, 236, 236, 233, 60, 236, 236, + 233, 59, 236, 236, 233, 58, 236, 236, 233, 57, 236, 236, 233, 56, 64, + 242, 219, 4, 75, 187, 64, 242, 219, 4, 103, 236, 94, 62, 242, 219, 4, 64, + 75, 187, 62, 242, 219, 4, 103, 64, 236, 94, 215, 204, 39, 192, 106, 215, + 204, 39, 192, 21, 236, 217, 39, 230, 171, 192, 106, 236, 217, 39, 219, + 154, 192, 21, 236, 217, 39, 219, 154, 192, 106, 236, 217, 39, 230, 171, + 192, 21, 64, 232, 177, 62, 232, 177, 230, 29, 24, 209, 171, 251, 76, 238, + 167, 200, 126, 201, 107, 80, 251, 212, 205, 93, 251, 140, 232, 146, 231, + 125, 201, 107, 80, 229, 159, 250, 122, 113, 232, 162, 211, 0, 64, 201, + 97, 115, 219, 83, 238, 228, 187, 115, 219, 83, 238, 228, 219, 200, 193, + 153, 57, 136, 195, 9, 57, 235, 84, 233, 1, 57, 235, 84, 217, 77, 57, 223, + 77, 233, 1, 24, 217, 77, 57, 217, 77, 24, 233, 1, 57, 217, 77, 4, 201, + 23, 57, 217, 77, 4, 201, 23, 24, 217, 77, 24, 233, 1, 57, 81, 217, 77, 4, + 201, 23, 57, 228, 209, 217, 77, 4, 201, 23, 57, 216, 194, 64, 242, 218, + 216, 194, 62, 242, 218, 216, 194, 2, 64, 242, 218, 217, 29, 113, 236, + 153, 113, 196, 80, 210, 93, 113, 242, 41, 232, 37, 196, 49, 214, 69, 246, + 215, 210, 175, 222, 146, 195, 77, 243, 27, 62, 215, 189, 219, 102, 203, + 171, 204, 17, 207, 255, 203, 250, 202, 31, 249, 61, 249, 23, 112, 221, + 197, 64, 235, 64, 217, 70, 64, 235, 64, 221, 114, 62, 235, 64, 217, 70, + 62, 235, 64, 221, 114, 202, 44, 193, 51, 202, 47, 200, 194, 248, 192, + 242, 162, 207, 144, 62, 202, 43, 198, 205, 242, 163, 24, 207, 144, 152, + 64, 203, 44, 209, 166, 152, 62, 203, 44, 209, 166, 64, 236, 244, 223, + 135, 201, 185, 238, 163, 219, 253, 236, 184, 247, 54, 211, 54, 209, 171, + 247, 55, 202, 80, 229, 169, 4, 64, 238, 170, 47, 238, 163, 219, 253, 246, + 205, 213, 31, 234, 30, 251, 106, 211, 85, 45, 193, 127, 198, 15, 62, 197, + 6, 45, 193, 127, 198, 15, 64, 197, 6, 45, 193, 127, 198, 15, 62, 45, 219, + 254, 216, 160, 64, 45, 219, 254, 216, 160, 235, 59, 202, 71, 57, 88, 64, + 235, 78, 197, 237, 45, 242, 171, 234, 30, 112, 205, 149, 233, 42, 236, + 250, 223, 135, 64, 242, 219, 223, 135, 62, 201, 185, 62, 197, 199, 207, + 24, 45, 234, 29, 207, 24, 45, 234, 28, 250, 137, 16, 39, 196, 53, 88, + 242, 219, 4, 201, 23, 24, 103, 183, 56, 210, 14, 206, 200, 223, 79, 210, + 14, 219, 197, 223, 79, 210, 14, 223, 65, 210, 14, 62, 238, 171, 211, 94, + 203, 73, 203, 61, 203, 7, 242, 248, 247, 32, 229, 86, 202, 132, 231, 126, + 193, 51, 228, 122, 231, 126, 4, 229, 253, 217, 52, 16, 39, 219, 107, 215, + 168, 196, 114, 211, 94, 230, 155, 232, 91, 232, 178, 223, 135, 228, 229, + 232, 247, 205, 173, 51, 232, 90, 238, 209, 202, 103, 227, 253, 202, 107, + 209, 242, 4, 249, 61, 199, 82, 222, 247, 249, 43, 113, 229, 197, 230, + 173, 113, 232, 45, 208, 146, 238, 135, 211, 94, 62, 201, 185, 64, 232, + 178, 4, 228, 209, 82, 62, 201, 24, 62, 205, 183, 205, 79, 116, 248, 86, + 205, 79, 62, 205, 79, 110, 248, 86, 205, 79, 64, 205, 79, 64, 88, 243, + 78, 77, 199, 102, 219, 16, 57, 199, 177, 235, 58, 251, 171, 234, 25, 207, + 142, 232, 190, 207, 142, 230, 20, 195, 64, 230, 20, 193, 3, 230, 20, 110, + 50, 210, 24, 210, 24, 116, 50, 210, 24, 64, 213, 194, 62, 213, 194, 243, + 78, 77, 88, 243, 78, 77, 215, 112, 192, 235, 88, 215, 112, 192, 235, 249, + 57, 192, 235, 88, 249, 57, 192, 235, 211, 0, 35, 238, 170, 88, 35, 238, + 170, 211, 66, 246, 230, 238, 170, 88, 211, 66, 246, 230, 238, 170, 8, + 238, 170, 203, 146, 64, 8, 238, 170, 211, 0, 8, 238, 170, 217, 73, 238, + 170, 201, 98, 80, 237, 163, 232, 90, 199, 122, 250, 143, 232, 90, 249, + 58, 250, 143, 88, 232, 90, 249, 58, 250, 143, 232, 90, 242, 157, 250, + 143, 62, 232, 90, 209, 53, 201, 97, 64, 232, 90, 209, 53, 201, 97, 201, + 235, 201, 33, 211, 0, 64, 201, 97, 47, 64, 201, 97, 211, 66, 246, 230, + 62, 201, 97, 62, 246, 230, 64, 201, 97, 211, 0, 62, 201, 97, 88, 211, 0, + 62, 201, 97, 209, 122, 201, 97, 203, 146, 64, 201, 97, 88, 250, 143, 211, + 66, 246, 230, 250, 143, 234, 121, 201, 201, 250, 143, 234, 121, 209, 53, + 62, 201, 97, 234, 121, 209, 53, 209, 122, 201, 97, 202, 131, 209, 53, 62, + 201, 97, 234, 121, 209, 53, 207, 85, 62, 201, 97, 88, 234, 121, 209, 53, + 207, 85, 62, 201, 97, 197, 34, 209, 53, 62, 201, 97, 202, 126, 209, 53, + 250, 143, 199, 122, 250, 143, 211, 66, 246, 230, 199, 122, 250, 143, 88, + 199, 122, 250, 143, 202, 131, 209, 230, 62, 24, 64, 232, 149, 62, 232, + 149, 64, 232, 149, 234, 121, 209, 230, 211, 0, 62, 232, 149, 47, 211, 66, + 246, 230, 234, 121, 209, 53, 201, 97, 88, 199, 122, 209, 122, 250, 143, + 202, 45, 198, 167, 197, 230, 202, 45, 88, 243, 53, 202, 45, 201, 237, 88, + 201, 237, 249, 58, 250, 143, 234, 121, 199, 122, 208, 182, 250, 143, 88, + 234, 121, 199, 122, 208, 182, 250, 143, 238, 171, 77, 203, 146, 64, 242, + 218, 214, 92, 112, 238, 171, 77, 110, 50, 235, 54, 64, 201, 185, 116, 50, + 235, 54, 64, 201, 185, 110, 50, 203, 146, 64, 201, 185, 116, 50, 203, + 146, 64, 201, 185, 62, 208, 8, 87, 211, 32, 64, 208, 8, 87, 211, 32, 64, + 233, 175, 87, 211, 32, 62, 236, 244, 216, 18, 64, 192, 235, 88, 233, 175, + 87, 113, 155, 81, 164, 216, 194, 81, 164, 88, 81, 164, 88, 202, 165, 152, + 242, 27, 207, 247, 87, 211, 32, 88, 202, 165, 242, 27, 207, 247, 87, 211, + 32, 88, 54, 152, 242, 27, 207, 247, 87, 211, 32, 88, 54, 242, 27, 207, + 247, 87, 211, 32, 88, 131, 202, 165, 242, 27, 207, 247, 87, 211, 32, 88, + 131, 54, 242, 27, 207, 247, 87, 211, 32, 238, 116, 201, 76, 210, 118, 3, + 211, 32, 88, 233, 175, 87, 211, 32, 88, 229, 192, 233, 175, 87, 211, 32, + 88, 62, 229, 191, 206, 117, 88, 62, 229, 192, 247, 200, 232, 150, 229, + 191, 206, 117, 232, 150, 229, 192, 247, 200, 216, 194, 45, 210, 104, 211, + 32, 216, 194, 50, 210, 104, 211, 32, 216, 194, 232, 163, 45, 210, 104, + 211, 32, 216, 194, 232, 163, 50, 210, 104, 211, 32, 216, 194, 219, 195, + 251, 65, 248, 6, 211, 32, 216, 194, 206, 198, 251, 65, 248, 6, 211, 32, + 88, 219, 195, 251, 65, 207, 247, 87, 211, 32, 88, 206, 198, 251, 65, 207, + 247, 87, 211, 32, 88, 219, 195, 251, 65, 248, 6, 211, 32, 88, 206, 198, + 251, 65, 248, 6, 211, 32, 155, 45, 198, 37, 203, 98, 248, 6, 211, 32, + 155, 50, 198, 37, 203, 98, 248, 6, 211, 32, 216, 194, 45, 238, 124, 248, + 6, 211, 32, 216, 194, 50, 238, 124, 248, 6, 211, 32, 236, 196, 214, 92, + 47, 17, 108, 236, 196, 214, 92, 47, 17, 109, 236, 196, 214, 92, 47, 17, + 139, 236, 196, 214, 92, 47, 17, 137, 236, 196, 214, 92, 47, 17, 153, 236, + 196, 214, 92, 47, 17, 173, 236, 196, 214, 92, 47, 17, 181, 236, 196, 214, + 92, 47, 17, 176, 236, 196, 214, 92, 47, 17, 184, 236, 196, 214, 92, 47, + 31, 199, 90, 236, 196, 47, 49, 17, 108, 236, 196, 47, 49, 17, 109, 236, + 196, 47, 49, 17, 139, 236, 196, 47, 49, 17, 137, 236, 196, 47, 49, 17, + 153, 236, 196, 47, 49, 17, 173, 236, 196, 47, 49, 17, 181, 236, 196, 47, + 49, 17, 176, 236, 196, 47, 49, 17, 184, 236, 196, 47, 49, 31, 199, 90, + 236, 196, 214, 92, 47, 49, 17, 108, 236, 196, 214, 92, 47, 49, 17, 109, + 236, 196, 214, 92, 47, 49, 17, 139, 236, 196, 214, 92, 47, 49, 17, 137, + 236, 196, 214, 92, 47, 49, 17, 153, 236, 196, 214, 92, 47, 49, 17, 173, + 236, 196, 214, 92, 47, 49, 17, 181, 236, 196, 214, 92, 47, 49, 17, 176, + 236, 196, 214, 92, 47, 49, 17, 184, 236, 196, 214, 92, 47, 49, 31, 199, + 90, 88, 193, 75, 96, 55, 88, 107, 57, 88, 216, 18, 57, 88, 236, 155, 57, + 88, 201, 253, 234, 160, 55, 88, 96, 55, 88, 185, 234, 160, 55, 235, 69, + 209, 55, 96, 55, 88, 206, 109, 96, 55, 197, 236, 96, 55, 88, 197, 236, + 96, 55, 237, 169, 197, 236, 96, 55, 88, 237, 169, 197, 236, 96, 55, 62, + 96, 55, 198, 220, 198, 47, 96, 250, 185, 198, 220, 248, 27, 96, 250, 185, + 62, 96, 250, 185, 88, 62, 238, 116, 235, 75, 24, 96, 55, 88, 62, 238, + 116, 196, 62, 24, 96, 55, 201, 182, 62, 96, 55, 88, 239, 8, 62, 96, 55, + 206, 197, 64, 96, 55, 219, 194, 64, 96, 55, 249, 95, 203, 146, 64, 96, + 55, 232, 57, 203, 146, 64, 96, 55, 88, 110, 206, 196, 64, 96, 55, 88, + 116, 206, 196, 64, 96, 55, 212, 251, 110, 206, 196, 64, 96, 55, 238, 124, + 218, 236, 212, 251, 116, 206, 196, 64, 96, 55, 47, 88, 64, 96, 55, 193, + 86, 96, 55, 248, 90, 201, 253, 234, 160, 55, 248, 90, 96, 55, 248, 90, + 185, 234, 160, 55, 88, 248, 90, 201, 253, 234, 160, 55, 88, 248, 90, 96, + 55, 88, 248, 90, 185, 234, 160, 55, 199, 124, 96, 55, 88, 199, 123, 96, + 55, 193, 113, 96, 55, 88, 193, 113, 96, 55, 211, 60, 96, 55, 54, 238, + 124, 218, 236, 115, 236, 206, 251, 64, 64, 197, 238, 238, 242, 2, 64, + 197, 237, 209, 245, 211, 66, 200, 223, 211, 66, 200, 175, 45, 206, 2, + 249, 81, 237, 67, 50, 206, 2, 249, 81, 237, 67, 211, 46, 4, 75, 223, 89, + 207, 14, 202, 19, 208, 223, 200, 223, 200, 176, 208, 223, 202, 18, 81, + 249, 38, 4, 228, 209, 105, 13, 206, 175, 236, 249, 177, 236, 154, 13, + 233, 42, 236, 249, 112, 219, 5, 251, 74, 112, 219, 5, 211, 45, 64, 236, + 244, 4, 246, 228, 236, 96, 24, 4, 236, 96, 234, 89, 80, 211, 58, 196, 61, + 110, 50, 238, 211, 4, 236, 96, 116, 45, 238, 211, 4, 236, 96, 45, 211, 2, + 222, 172, 50, 211, 2, 222, 172, 232, 42, 211, 2, 222, 172, 219, 245, 132, + 199, 223, 219, 245, 143, 199, 223, 45, 24, 50, 54, 197, 53, 45, 24, 50, + 199, 223, 45, 215, 116, 177, 50, 199, 223, 177, 45, 199, 223, 132, 199, + 224, 4, 242, 219, 56, 218, 211, 236, 161, 247, 157, 228, 209, 206, 47, + 64, 239, 7, 236, 243, 64, 239, 7, 236, 244, 4, 117, 198, 177, 64, 239, 7, + 236, 244, 4, 96, 198, 177, 64, 51, 4, 117, 198, 177, 64, 51, 4, 96, 198, + 177, 13, 45, 64, 51, 248, 5, 13, 50, 64, 51, 248, 5, 13, 45, 251, 65, + 248, 5, 13, 50, 251, 65, 248, 5, 13, 45, 54, 251, 65, 248, 5, 13, 50, 54, + 251, 65, 248, 5, 13, 45, 64, 198, 37, 203, 98, 248, 5, 13, 50, 64, 198, + 37, 203, 98, 248, 5, 13, 45, 232, 163, 210, 103, 13, 50, 232, 163, 210, + 103, 196, 62, 208, 20, 55, 235, 75, 208, 20, 55, 251, 34, 231, 165, 242, + 219, 55, 242, 173, 231, 165, 242, 219, 55, 50, 63, 4, 47, 209, 73, 177, + 117, 55, 177, 96, 55, 177, 45, 50, 55, 177, 117, 54, 55, 177, 96, 54, 55, + 177, 45, 50, 54, 55, 177, 117, 63, 232, 60, 164, 177, 96, 63, 232, 60, + 164, 177, 117, 54, 63, 232, 60, 164, 177, 96, 54, 63, 232, 60, 164, 177, + 96, 201, 178, 55, 67, 68, 248, 84, 67, 68, 236, 93, 67, 68, 235, 221, 67, + 68, 236, 92, 67, 68, 235, 157, 67, 68, 236, 28, 67, 68, 235, 220, 67, 68, + 236, 91, 67, 68, 235, 125, 67, 68, 235, 252, 67, 68, 235, 188, 67, 68, + 236, 59, 67, 68, 235, 156, 67, 68, 236, 27, 67, 68, 235, 219, 67, 68, + 236, 90, 67, 68, 235, 109, 67, 68, 235, 236, 67, 68, 235, 172, 67, 68, + 236, 43, 67, 68, 235, 140, 67, 68, 236, 11, 67, 68, 235, 203, 67, 68, + 236, 74, 67, 68, 235, 124, 67, 68, 235, 251, 67, 68, 235, 187, 67, 68, + 236, 58, 67, 68, 235, 155, 67, 68, 236, 26, 67, 68, 235, 218, 67, 68, + 236, 89, 67, 68, 235, 101, 67, 68, 235, 228, 67, 68, 235, 164, 67, 68, + 236, 35, 67, 68, 235, 132, 67, 68, 236, 3, 67, 68, 235, 195, 67, 68, 236, + 66, 67, 68, 235, 116, 67, 68, 235, 243, 67, 68, 235, 179, 67, 68, 236, + 50, 67, 68, 235, 147, 67, 68, 236, 18, 67, 68, 235, 210, 67, 68, 236, 81, + 67, 68, 235, 108, 67, 68, 235, 235, 67, 68, 235, 171, 67, 68, 236, 42, + 67, 68, 235, 139, 67, 68, 236, 10, 67, 68, 235, 202, 67, 68, 236, 73, 67, + 68, 235, 123, 67, 68, 235, 250, 67, 68, 235, 186, 67, 68, 236, 57, 67, + 68, 235, 154, 67, 68, 236, 25, 67, 68, 235, 217, 67, 68, 236, 88, 67, 68, + 235, 97, 67, 68, 235, 224, 67, 68, 235, 160, 67, 68, 236, 31, 67, 68, + 235, 128, 67, 68, 235, 255, 67, 68, 235, 191, 67, 68, 236, 62, 67, 68, + 235, 112, 67, 68, 235, 239, 67, 68, 235, 175, 67, 68, 236, 46, 67, 68, + 235, 143, 67, 68, 236, 14, 67, 68, 235, 206, 67, 68, 236, 77, 67, 68, + 235, 104, 67, 68, 235, 231, 67, 68, 235, 167, 67, 68, 236, 38, 67, 68, + 235, 135, 67, 68, 236, 6, 67, 68, 235, 198, 67, 68, 236, 69, 67, 68, 235, + 119, 67, 68, 235, 246, 67, 68, 235, 182, 67, 68, 236, 53, 67, 68, 235, + 150, 67, 68, 236, 21, 67, 68, 235, 213, 67, 68, 236, 84, 67, 68, 235, + 100, 67, 68, 235, 227, 67, 68, 235, 163, 67, 68, 236, 34, 67, 68, 235, + 131, 67, 68, 236, 2, 67, 68, 235, 194, 67, 68, 236, 65, 67, 68, 235, 115, + 67, 68, 235, 242, 67, 68, 235, 178, 67, 68, 236, 49, 67, 68, 235, 146, + 67, 68, 236, 17, 67, 68, 235, 209, 67, 68, 236, 80, 67, 68, 235, 107, 67, + 68, 235, 234, 67, 68, 235, 170, 67, 68, 236, 41, 67, 68, 235, 138, 67, + 68, 236, 9, 67, 68, 235, 201, 67, 68, 236, 72, 67, 68, 235, 122, 67, 68, + 235, 249, 67, 68, 235, 185, 67, 68, 236, 56, 67, 68, 235, 153, 67, 68, + 236, 24, 67, 68, 235, 216, 67, 68, 236, 87, 67, 68, 235, 95, 67, 68, 235, + 222, 67, 68, 235, 158, 67, 68, 236, 29, 67, 68, 235, 126, 67, 68, 235, + 253, 67, 68, 235, 189, 67, 68, 236, 60, 67, 68, 235, 110, 67, 68, 235, + 237, 67, 68, 235, 173, 67, 68, 236, 44, 67, 68, 235, 141, 67, 68, 236, + 12, 67, 68, 235, 204, 67, 68, 236, 75, 67, 68, 235, 102, 67, 68, 235, + 229, 67, 68, 235, 165, 67, 68, 236, 36, 67, 68, 235, 133, 67, 68, 236, 4, + 67, 68, 235, 196, 67, 68, 236, 67, 67, 68, 235, 117, 67, 68, 235, 244, + 67, 68, 235, 180, 67, 68, 236, 51, 67, 68, 235, 148, 67, 68, 236, 19, 67, + 68, 235, 211, 67, 68, 236, 82, 67, 68, 235, 98, 67, 68, 235, 225, 67, 68, + 235, 161, 67, 68, 236, 32, 67, 68, 235, 129, 67, 68, 236, 0, 67, 68, 235, + 192, 67, 68, 236, 63, 67, 68, 235, 113, 67, 68, 235, 240, 67, 68, 235, + 176, 67, 68, 236, 47, 67, 68, 235, 144, 67, 68, 236, 15, 67, 68, 235, + 207, 67, 68, 236, 78, 67, 68, 235, 105, 67, 68, 235, 232, 67, 68, 235, + 168, 67, 68, 236, 39, 67, 68, 235, 136, 67, 68, 236, 7, 67, 68, 235, 199, + 67, 68, 236, 70, 67, 68, 235, 120, 67, 68, 235, 247, 67, 68, 235, 183, + 67, 68, 236, 54, 67, 68, 235, 151, 67, 68, 236, 22, 67, 68, 235, 214, 67, + 68, 236, 85, 67, 68, 235, 96, 67, 68, 235, 223, 67, 68, 235, 159, 67, 68, + 236, 30, 67, 68, 235, 127, 67, 68, 235, 254, 67, 68, 235, 190, 67, 68, + 236, 61, 67, 68, 235, 111, 67, 68, 235, 238, 67, 68, 235, 174, 67, 68, + 236, 45, 67, 68, 235, 142, 67, 68, 236, 13, 67, 68, 235, 205, 67, 68, + 236, 76, 67, 68, 235, 103, 67, 68, 235, 230, 67, 68, 235, 166, 67, 68, + 236, 37, 67, 68, 235, 134, 67, 68, 236, 5, 67, 68, 235, 197, 67, 68, 236, + 68, 67, 68, 235, 118, 67, 68, 235, 245, 67, 68, 235, 181, 67, 68, 236, + 52, 67, 68, 235, 149, 67, 68, 236, 20, 67, 68, 235, 212, 67, 68, 236, 83, + 67, 68, 235, 99, 67, 68, 235, 226, 67, 68, 235, 162, 67, 68, 236, 33, 67, + 68, 235, 130, 67, 68, 236, 1, 67, 68, 235, 193, 67, 68, 236, 64, 67, 68, + 235, 114, 67, 68, 235, 241, 67, 68, 235, 177, 67, 68, 236, 48, 67, 68, + 235, 145, 67, 68, 236, 16, 67, 68, 235, 208, 67, 68, 236, 79, 67, 68, + 235, 106, 67, 68, 235, 233, 67, 68, 235, 169, 67, 68, 236, 40, 67, 68, + 235, 137, 67, 68, 236, 8, 67, 68, 235, 200, 67, 68, 236, 71, 67, 68, 235, + 121, 67, 68, 235, 248, 67, 68, 235, 184, 67, 68, 236, 55, 67, 68, 235, + 152, 67, 68, 236, 23, 67, 68, 235, 215, 67, 68, 236, 86, 96, 197, 9, 63, + 4, 81, 105, 96, 197, 9, 63, 4, 54, 81, 105, 117, 54, 63, 4, 81, 105, 96, + 54, 63, 4, 81, 105, 45, 50, 54, 63, 4, 81, 105, 96, 197, 9, 63, 232, 60, + 164, 117, 54, 63, 232, 60, 164, 96, 54, 63, 232, 60, 164, 235, 75, 63, 4, + 228, 209, 105, 196, 62, 63, 4, 228, 209, 105, 196, 62, 197, 221, 55, 235, + 75, 197, 221, 55, 117, 54, 237, 171, 55, 96, 54, 237, 171, 55, 117, 197, + 221, 237, 171, 55, 96, 197, 221, 237, 171, 55, 96, 197, 9, 197, 221, 237, + 171, 55, 96, 63, 4, 235, 94, 201, 75, 196, 62, 63, 118, 164, 235, 75, 63, + 118, 164, 96, 63, 4, 199, 211, 4, 81, 105, 96, 63, 4, 199, 211, 4, 54, + 81, 105, 96, 197, 9, 63, 4, 199, 210, 96, 197, 9, 63, 4, 199, 211, 4, 81, + 105, 96, 197, 9, 63, 4, 199, 211, 4, 54, 81, 105, 117, 250, 187, 96, 250, + 187, 117, 54, 250, 187, 96, 54, 250, 187, 117, 63, 118, 62, 236, 243, 96, + 63, 118, 62, 236, 243, 117, 63, 232, 60, 249, 38, 118, 62, 236, 243, 96, + 63, 232, 60, 249, 38, 118, 62, 236, 243, 185, 193, 103, 24, 201, 253, + 234, 160, 55, 185, 234, 160, 24, 201, 253, 193, 103, 55, 185, 193, 103, + 63, 4, 106, 185, 234, 160, 63, 4, 106, 201, 253, 234, 160, 63, 4, 106, + 201, 253, 193, 103, 63, 4, 106, 185, 193, 103, 63, 24, 185, 234, 160, 55, + 185, 234, 160, 63, 24, 201, 253, 234, 160, 55, 201, 253, 234, 160, 63, + 24, 201, 253, 193, 103, 55, 201, 253, 193, 103, 63, 24, 185, 193, 103, + 55, 206, 175, 236, 250, 238, 163, 233, 42, 236, 249, 233, 42, 236, 250, + 238, 163, 206, 175, 236, 249, 201, 253, 234, 160, 63, 238, 163, 185, 234, + 160, 55, 185, 234, 160, 63, 238, 163, 201, 253, 234, 160, 55, 233, 42, + 236, 250, 238, 163, 185, 234, 160, 55, 206, 175, 236, 250, 238, 163, 201, + 253, 234, 160, 55, 185, 234, 160, 63, 238, 163, 185, 193, 103, 55, 185, + 193, 103, 63, 238, 163, 185, 234, 160, 55, 193, 137, 63, 209, 51, 236, + 186, 187, 63, 209, 51, 96, 199, 20, 238, 114, 196, 61, 63, 209, 51, 96, + 199, 20, 238, 114, 235, 74, 63, 209, 51, 235, 75, 199, 20, 238, 114, 219, + 190, 63, 209, 51, 235, 75, 199, 20, 238, 114, 206, 192, 206, 195, 250, + 223, 242, 173, 55, 219, 193, 250, 223, 251, 34, 55, 198, 49, 250, 223, + 251, 34, 55, 248, 29, 250, 223, 251, 34, 55, 198, 49, 250, 223, 242, 173, + 63, 4, 216, 17, 198, 49, 250, 223, 251, 34, 63, 4, 209, 73, 110, 50, 204, + 22, 242, 173, 55, 110, 45, 204, 22, 251, 34, 55, 251, 34, 242, 171, 242, + 219, 55, 242, 173, 242, 171, 242, 219, 55, 96, 63, 95, 203, 35, 117, 55, + 117, 63, 95, 203, 35, 96, 55, 203, 35, 96, 63, 95, 117, 55, 96, 63, 4, + 107, 60, 117, 63, 4, 107, 60, 96, 63, 198, 211, 192, 235, 45, 50, 63, + 198, 211, 2, 242, 218, 196, 62, 197, 9, 63, 232, 60, 2, 242, 218, 45, + 178, 132, 50, 178, 143, 229, 235, 45, 178, 143, 50, 178, 132, 229, 235, + 132, 178, 50, 143, 178, 45, 229, 235, 132, 178, 45, 143, 178, 50, 229, + 235, 45, 178, 132, 50, 178, 132, 229, 235, 132, 178, 50, 143, 178, 50, + 229, 235, 45, 178, 143, 50, 178, 143, 229, 235, 132, 178, 45, 143, 178, + 45, 229, 235, 117, 229, 236, 4, 178, 132, 118, 164, 96, 229, 236, 4, 178, + 132, 118, 164, 196, 62, 229, 236, 4, 178, 50, 118, 164, 235, 75, 229, + 236, 4, 178, 50, 118, 164, 117, 229, 236, 4, 178, 143, 118, 164, 96, 229, + 236, 4, 178, 143, 118, 164, 196, 62, 229, 236, 4, 178, 45, 118, 164, 235, + 75, 229, 236, 4, 178, 45, 118, 164, 117, 229, 236, 4, 178, 132, 232, 60, + 164, 96, 229, 236, 4, 178, 132, 232, 60, 164, 196, 62, 229, 236, 4, 178, + 50, 232, 60, 164, 235, 75, 229, 236, 4, 178, 50, 232, 60, 164, 117, 229, + 236, 4, 178, 143, 232, 60, 164, 96, 229, 236, 4, 178, 143, 232, 60, 164, + 196, 62, 229, 236, 4, 178, 45, 232, 60, 164, 235, 75, 229, 236, 4, 178, + 45, 232, 60, 164, 117, 229, 236, 4, 178, 132, 95, 117, 229, 236, 4, 178, + 235, 79, 196, 62, 229, 236, 4, 178, 45, 248, 166, 196, 62, 229, 236, 4, + 178, 187, 96, 229, 236, 4, 178, 132, 95, 96, 229, 236, 4, 178, 235, 79, + 235, 75, 229, 236, 4, 178, 45, 248, 166, 235, 75, 229, 236, 4, 178, 187, + 117, 229, 236, 4, 178, 132, 95, 96, 229, 236, 4, 178, 196, 73, 117, 229, + 236, 4, 178, 143, 95, 96, 229, 236, 4, 178, 235, 79, 96, 229, 236, 4, + 178, 132, 95, 117, 229, 236, 4, 178, 196, 73, 96, 229, 236, 4, 178, 143, + 95, 117, 229, 236, 4, 178, 235, 79, 117, 229, 236, 4, 178, 132, 95, 177, + 237, 170, 117, 229, 236, 4, 178, 143, 248, 183, 177, 237, 170, 96, 229, + 236, 4, 178, 132, 95, 177, 237, 170, 96, 229, 236, 4, 178, 143, 248, 183, + 177, 237, 170, 196, 62, 229, 236, 4, 178, 45, 248, 166, 235, 75, 229, + 236, 4, 178, 187, 235, 75, 229, 236, 4, 178, 45, 248, 166, 196, 62, 229, + 236, 4, 178, 187, 50, 54, 63, 4, 206, 108, 229, 203, 234, 1, 3, 95, 96, + 55, 198, 148, 211, 56, 95, 96, 55, 117, 63, 95, 198, 148, 211, 55, 96, + 63, 95, 198, 148, 211, 55, 96, 63, 95, 251, 114, 234, 3, 159, 219, 156, + 95, 117, 55, 117, 63, 198, 211, 219, 155, 230, 170, 95, 96, 55, 200, 224, + 95, 96, 55, 117, 63, 198, 211, 200, 223, 200, 176, 95, 117, 55, 45, 232, + 196, 199, 210, 50, 232, 196, 199, 210, 132, 232, 196, 199, 210, 143, 232, + 196, 199, 210, 197, 221, 81, 249, 38, 237, 67, 191, 167, 212, 253, 201, + 196, 191, 167, 212, 253, 196, 251, 242, 35, 45, 64, 238, 124, 248, 5, 50, + 64, 238, 124, 248, 5, 45, 64, 210, 103, 50, 64, 210, 103, 191, 167, 212, + 253, 45, 223, 150, 248, 5, 191, 167, 212, 253, 50, 223, 150, 248, 5, 191, + 167, 212, 253, 45, 248, 118, 248, 5, 191, 167, 212, 253, 50, 248, 118, + 248, 5, 45, 51, 248, 6, 4, 196, 99, 50, 51, 248, 6, 4, 196, 99, 45, 51, + 248, 6, 4, 198, 178, 223, 135, 198, 49, 238, 210, 50, 51, 248, 6, 4, 198, + 178, 223, 135, 248, 29, 238, 210, 45, 51, 248, 6, 4, 198, 178, 223, 135, + 248, 29, 238, 210, 50, 51, 248, 6, 4, 198, 178, 223, 135, 198, 49, 238, + 210, 45, 251, 65, 248, 6, 4, 236, 96, 50, 251, 65, 248, 6, 4, 236, 96, + 45, 250, 223, 219, 156, 248, 5, 50, 250, 223, 230, 170, 248, 5, 54, 45, + 250, 223, 230, 170, 248, 5, 54, 50, 250, 223, 219, 156, 248, 5, 45, 62, + 198, 37, 203, 98, 248, 5, 50, 62, 198, 37, 203, 98, 248, 5, 235, 94, 232, + 254, 81, 191, 21, 219, 88, 216, 207, 251, 65, 211, 58, 219, 200, 50, 251, + 65, 195, 165, 4, 201, 185, 216, 207, 50, 251, 65, 4, 236, 96, 251, 65, 4, + 206, 4, 223, 89, 251, 251, 251, 64, 201, 220, 251, 65, 211, 58, 219, 200, + 201, 220, 251, 65, 211, 58, 196, 73, 152, 251, 64, 207, 13, 251, 64, 251, + 65, 4, 196, 99, 207, 13, 251, 65, 4, 196, 99, 211, 159, 251, 65, 211, 58, + 196, 73, 211, 159, 251, 65, 211, 58, 235, 79, 216, 207, 251, 65, 4, 211, + 66, 250, 201, 234, 49, 223, 135, 63, 209, 51, 132, 24, 187, 216, 207, + 251, 65, 4, 211, 66, 250, 201, 234, 49, 223, 135, 63, 209, 51, 132, 24, + 219, 200, 216, 207, 251, 65, 4, 211, 66, 250, 201, 234, 49, 223, 135, 63, + 209, 51, 143, 24, 187, 216, 207, 251, 65, 4, 211, 66, 250, 201, 234, 49, + 223, 135, 63, 209, 51, 143, 24, 219, 200, 216, 207, 251, 65, 4, 211, 66, + 250, 201, 234, 49, 223, 135, 63, 209, 51, 50, 24, 196, 73, 216, 207, 251, + 65, 4, 211, 66, 250, 201, 234, 49, 223, 135, 63, 209, 51, 45, 24, 196, + 73, 216, 207, 251, 65, 4, 211, 66, 250, 201, 234, 49, 223, 135, 63, 209, + 51, 50, 24, 235, 79, 216, 207, 251, 65, 4, 211, 66, 250, 201, 234, 49, + 223, 135, 63, 209, 51, 45, 24, 235, 79, 207, 13, 234, 63, 203, 247, 234, + 63, 203, 248, 4, 210, 252, 234, 63, 203, 248, 4, 2, 242, 219, 56, 234, + 63, 203, 248, 4, 50, 63, 56, 234, 63, 203, 248, 4, 45, 63, 56, 242, 219, + 4, 228, 209, 164, 47, 81, 164, 47, 210, 108, 47, 207, 14, 202, 18, 47, + 209, 245, 242, 219, 236, 161, 247, 157, 228, 209, 249, 38, 24, 198, 49, + 134, 236, 161, 247, 157, 81, 164, 242, 219, 4, 200, 178, 192, 235, 47, + 251, 32, 236, 155, 57, 132, 63, 198, 211, 242, 218, 47, 64, 247, 200, 47, + 247, 200, 47, 219, 155, 47, 230, 169, 242, 219, 4, 2, 242, 219, 118, 199, + 29, 187, 242, 219, 4, 103, 228, 209, 201, 11, 118, 199, 29, 187, 112, + 206, 175, 236, 250, 202, 92, 112, 233, 42, 236, 250, 202, 92, 112, 250, + 143, 112, 2, 242, 218, 112, 201, 185, 103, 222, 171, 201, 183, 197, 238, + 4, 75, 56, 197, 238, 4, 196, 99, 206, 4, 223, 135, 197, 237, 197, 238, 4, + 203, 255, 250, 133, 248, 28, 50, 197, 238, 95, 45, 197, 237, 45, 197, + 238, 248, 166, 81, 164, 81, 249, 38, 248, 166, 50, 197, 237, 248, 16, 4, + 45, 134, 248, 91, 248, 16, 4, 50, 134, 248, 91, 62, 248, 15, 25, 4, 45, + 134, 248, 91, 25, 4, 50, 134, 248, 91, 64, 228, 143, 62, 228, 143, 45, + 193, 70, 232, 254, 50, 193, 70, 232, 254, 45, 54, 193, 70, 232, 254, 50, + 54, 193, 70, 232, 254, 223, 127, 223, 111, 198, 174, 138, 223, 111, 223, + 112, 214, 94, 4, 81, 164, 235, 88, 215, 116, 51, 4, 238, 234, 211, 1, + 223, 124, 250, 169, 202, 249, 208, 193, 234, 1, 3, 24, 202, 94, 210, 108, + 234, 1, 3, 24, 202, 94, 210, 109, 4, 198, 148, 56, 227, 244, 118, 24, + 202, 94, 210, 108, 230, 234, 201, 96, 199, 17, 235, 78, 197, 238, 4, 45, + 134, 248, 91, 235, 78, 197, 238, 4, 50, 134, 248, 91, 62, 236, 244, 4, + 143, 55, 62, 218, 210, 64, 242, 219, 4, 143, 55, 62, 242, 219, 4, 143, + 55, 233, 239, 64, 201, 185, 233, 239, 62, 201, 185, 233, 239, 64, 236, + 243, 233, 239, 62, 236, 243, 233, 239, 64, 242, 218, 233, 239, 62, 242, + 218, 206, 46, 207, 14, 202, 19, 211, 55, 202, 19, 4, 210, 252, 207, 14, + 202, 19, 4, 228, 209, 105, 248, 127, 202, 18, 248, 127, 207, 14, 202, 18, + 54, 209, 73, 197, 221, 209, 73, 219, 195, 238, 116, 251, 65, 248, 5, 206, + 198, 238, 116, 251, 65, 248, 5, 198, 132, 216, 15, 215, 46, 47, 75, 211, + 55, 215, 46, 47, 107, 211, 55, 215, 46, 47, 25, 211, 55, 215, 46, 196, + 89, 211, 56, 4, 236, 96, 215, 46, 196, 89, 211, 56, 4, 209, 73, 215, 46, + 51, 223, 72, 211, 55, 215, 46, 51, 196, 89, 211, 55, 103, 219, 5, 24, + 211, 55, 103, 219, 5, 211, 46, 211, 55, 215, 46, 25, 211, 55, 215, 219, + 103, 200, 199, 200, 197, 4, 223, 85, 208, 20, 223, 86, 211, 55, 232, 205, + 210, 97, 223, 85, 223, 86, 4, 54, 105, 223, 86, 250, 93, 4, 202, 92, 242, + 211, 232, 39, 251, 34, 223, 83, 219, 89, 223, 84, 4, 207, 86, 210, 76, + 250, 195, 209, 45, 219, 89, 223, 84, 4, 204, 22, 210, 76, 250, 195, 209, + 45, 219, 89, 223, 84, 212, 255, 223, 129, 199, 29, 209, 45, 223, 86, 250, + 195, 41, 209, 55, 211, 55, 208, 14, 223, 86, 211, 55, 223, 86, 4, 117, + 63, 4, 106, 223, 86, 4, 25, 57, 223, 86, 4, 223, 71, 223, 86, 4, 196, 88, + 223, 86, 4, 210, 252, 223, 86, 4, 196, 99, 222, 172, 219, 245, 45, 197, + 238, 211, 55, 191, 167, 212, 253, 205, 87, 239, 14, 191, 167, 212, 253, + 205, 87, 209, 118, 191, 167, 212, 253, 205, 87, 208, 188, 107, 3, 4, 2, + 242, 219, 56, 107, 3, 4, 242, 210, 252, 9, 56, 107, 3, 4, 198, 148, 56, + 107, 3, 4, 75, 60, 107, 3, 4, 198, 148, 60, 107, 3, 4, 200, 225, 109, + 107, 3, 4, 62, 197, 237, 216, 18, 3, 4, 242, 27, 56, 216, 18, 3, 4, 75, + 60, 216, 18, 3, 4, 233, 42, 236, 94, 216, 18, 3, 4, 206, 175, 236, 94, + 107, 3, 223, 135, 45, 134, 242, 218, 107, 3, 223, 135, 50, 134, 242, 218, + 195, 149, 211, 46, 238, 171, 208, 193, 215, 112, 3, 4, 75, 56, 215, 112, + 3, 4, 196, 99, 204, 19, 208, 194, 4, 248, 29, 242, 170, 202, 63, 208, + 193, 215, 112, 3, 223, 135, 45, 134, 242, 218, 215, 112, 3, 223, 135, 50, + 134, 242, 218, 47, 215, 112, 3, 4, 242, 210, 252, 8, 215, 112, 3, 223, + 135, 54, 242, 218, 47, 236, 155, 57, 107, 3, 223, 135, 197, 237, 216, 18, + 3, 223, 135, 197, 237, 215, 112, 3, 223, 135, 197, 237, 223, 80, 208, + 193, 206, 193, 223, 80, 208, 193, 191, 167, 212, 253, 207, 59, 239, 14, + 251, 96, 211, 46, 238, 218, 223, 72, 4, 236, 96, 196, 89, 4, 216, 18, 57, + 196, 89, 4, 210, 252, 223, 72, 4, 210, 252, 223, 72, 4, 219, 5, 251, 74, + 196, 89, 4, 219, 5, 211, 45, 196, 89, 95, 223, 71, 223, 72, 95, 196, 88, + 196, 89, 95, 249, 38, 95, 223, 71, 223, 72, 95, 249, 38, 95, 196, 88, + 196, 89, 248, 166, 24, 222, 171, 4, 196, 88, 223, 72, 248, 166, 24, 222, + 171, 4, 223, 71, 242, 171, 196, 89, 4, 203, 254, 242, 171, 223, 72, 4, + 203, 254, 54, 51, 223, 71, 54, 51, 196, 88, 242, 171, 196, 89, 4, 203, + 255, 24, 202, 63, 208, 193, 219, 5, 24, 4, 75, 56, 219, 5, 211, 46, 4, + 75, 56, 54, 219, 5, 251, 74, 54, 219, 5, 211, 45, 103, 223, 73, 219, 5, + 251, 74, 103, 223, 73, 219, 5, 211, 45, 202, 75, 219, 245, 211, 45, 202, + 75, 219, 245, 251, 74, 219, 5, 211, 46, 210, 247, 219, 5, 251, 74, 219, + 5, 24, 4, 82, 201, 75, 219, 5, 211, 46, 4, 82, 201, 75, 219, 5, 24, 4, + 228, 209, 237, 170, 219, 5, 211, 46, 4, 228, 209, 237, 170, 219, 5, 24, + 4, 54, 210, 252, 219, 5, 24, 4, 196, 99, 219, 5, 24, 4, 54, 196, 99, 2, + 195, 146, 4, 196, 99, 219, 5, 211, 46, 4, 54, 210, 252, 219, 5, 211, 46, + 4, 54, 196, 99, 191, 167, 212, 253, 236, 107, 251, 24, 191, 167, 212, + 253, 207, 132, 251, 24, 234, 1, 3, 4, 75, 60, 227, 244, 4, 75, 56, 197, + 221, 228, 209, 249, 38, 4, 54, 81, 105, 197, 221, 228, 209, 249, 38, 4, + 197, 221, 81, 105, 198, 148, 211, 56, 4, 75, 56, 198, 148, 211, 56, 4, + 206, 175, 236, 94, 202, 175, 216, 18, 202, 174, 239, 1, 4, 75, 56, 234, + 1, 4, 250, 143, 251, 114, 234, 3, 118, 4, 242, 210, 252, 8, 250, 246, + 234, 3, 211, 46, 234, 3, 159, 234, 1, 3, 95, 107, 57, 107, 3, 95, 234, 1, + 57, 234, 1, 3, 95, 198, 148, 211, 55, 54, 242, 36, 234, 2, 103, 238, 250, + 234, 1, 202, 189, 115, 238, 250, 234, 1, 202, 189, 234, 1, 3, 4, 103, + 183, 95, 24, 103, 183, 60, 233, 250, 4, 232, 90, 183, 56, 219, 156, 4, + 242, 219, 223, 89, 230, 170, 4, 242, 219, 223, 89, 219, 156, 4, 208, 8, + 87, 56, 230, 170, 4, 208, 8, 87, 56, 219, 156, 211, 46, 202, 94, 234, 3, + 159, 230, 170, 211, 46, 202, 94, 234, 3, 159, 219, 156, 211, 46, 202, 94, + 234, 3, 118, 4, 75, 223, 89, 230, 170, 211, 46, 202, 94, 234, 3, 118, 4, + 75, 223, 89, 219, 156, 211, 46, 202, 94, 234, 3, 118, 4, 75, 56, 230, + 170, 211, 46, 202, 94, 234, 3, 118, 4, 75, 56, 219, 156, 211, 46, 202, + 94, 234, 3, 118, 4, 75, 95, 187, 230, 170, 211, 46, 202, 94, 234, 3, 118, + 4, 75, 95, 219, 200, 219, 156, 211, 46, 250, 247, 230, 170, 211, 46, 250, + 247, 219, 156, 24, 202, 163, 212, 255, 234, 3, 159, 230, 170, 24, 202, + 163, 212, 255, 234, 3, 159, 219, 156, 24, 212, 255, 250, 247, 230, 170, + 24, 212, 255, 250, 247, 219, 156, 95, 235, 87, 234, 3, 95, 230, 169, 230, + 170, 95, 235, 87, 234, 3, 95, 219, 155, 219, 156, 95, 202, 175, 211, 46, + 234, 2, 230, 170, 95, 202, 175, 211, 46, 234, 2, 219, 156, 95, 202, 175, + 95, 230, 169, 230, 170, 95, 202, 175, 95, 219, 155, 219, 156, 95, 230, + 170, 95, 235, 87, 234, 2, 230, 170, 95, 219, 156, 95, 235, 87, 234, 2, + 219, 156, 95, 202, 94, 234, 3, 95, 230, 170, 95, 202, 94, 234, 2, 230, + 170, 95, 202, 94, 234, 3, 95, 219, 156, 95, 202, 94, 234, 2, 202, 94, + 234, 3, 118, 211, 46, 219, 155, 202, 94, 234, 3, 118, 211, 46, 230, 169, + 202, 94, 234, 3, 118, 211, 46, 219, 156, 4, 75, 223, 89, 202, 94, 234, 3, + 118, 211, 46, 230, 170, 4, 75, 223, 89, 235, 87, 234, 3, 118, 211, 46, + 219, 155, 235, 87, 234, 3, 118, 211, 46, 230, 169, 235, 87, 202, 94, 234, + 3, 118, 211, 46, 219, 155, 235, 87, 202, 94, 234, 3, 118, 211, 46, 230, + 169, 202, 175, 211, 46, 219, 155, 202, 175, 211, 46, 230, 169, 202, 175, + 95, 219, 156, 95, 234, 1, 57, 202, 175, 95, 230, 170, 95, 234, 1, 57, 54, + 214, 74, 219, 155, 54, 214, 74, 230, 169, 54, 214, 74, 219, 156, 4, 196, + 99, 230, 170, 210, 247, 219, 155, 230, 170, 248, 166, 219, 155, 219, 156, + 242, 171, 247, 157, 238, 117, 230, 170, 242, 171, 247, 157, 238, 117, + 219, 156, 242, 171, 247, 157, 238, 118, 95, 202, 94, 234, 2, 230, 170, + 242, 171, 247, 157, 238, 118, 95, 202, 94, 234, 2, 202, 64, 199, 33, 219, + 243, 199, 33, 202, 64, 199, 34, 211, 46, 234, 3, 159, 219, 243, 199, 34, + 211, 46, 234, 3, 159, 234, 1, 3, 4, 247, 193, 56, 208, 225, 95, 202, 163, + 234, 1, 57, 200, 216, 95, 202, 163, 234, 1, 57, 208, 225, 95, 202, 163, + 212, 255, 234, 3, 159, 200, 216, 95, 202, 163, 212, 255, 234, 3, 159, + 208, 225, 95, 234, 1, 57, 200, 216, 95, 234, 1, 57, 208, 225, 95, 212, + 255, 234, 3, 159, 200, 216, 95, 212, 255, 234, 3, 159, 208, 225, 95, 251, + 114, 234, 3, 159, 200, 216, 95, 251, 114, 234, 3, 159, 208, 225, 95, 212, + 255, 251, 114, 234, 3, 159, 200, 216, 95, 212, 255, 251, 114, 234, 3, + 159, 54, 208, 224, 54, 200, 215, 200, 224, 4, 236, 96, 200, 176, 4, 236, + 96, 200, 224, 4, 107, 3, 60, 200, 176, 4, 107, 3, 60, 200, 224, 4, 215, + 112, 3, 60, 200, 176, 4, 215, 112, 3, 60, 200, 224, 80, 211, 46, 234, 3, + 118, 4, 75, 56, 200, 176, 80, 211, 46, 234, 3, 118, 4, 75, 56, 200, 224, + 80, 95, 234, 1, 57, 200, 176, 80, 95, 234, 1, 57, 200, 224, 80, 95, 198, + 148, 211, 55, 200, 176, 80, 95, 198, 148, 211, 55, 200, 224, 80, 95, 251, + 114, 234, 3, 159, 200, 176, 80, 95, 251, 114, 234, 3, 159, 200, 224, 80, + 95, 212, 255, 234, 3, 159, 200, 176, 80, 95, 212, 255, 234, 3, 159, 51, + 45, 211, 66, 111, 211, 55, 51, 50, 211, 66, 111, 211, 55, 242, 171, 200, + 223, 242, 171, 200, 175, 242, 171, 200, 224, 211, 46, 234, 3, 159, 242, + 171, 200, 176, 211, 46, 234, 3, 159, 200, 224, 95, 200, 175, 200, 176, + 95, 200, 223, 200, 224, 95, 200, 223, 200, 176, 95, 200, 175, 200, 176, + 248, 166, 200, 223, 200, 176, 248, 166, 24, 222, 171, 247, 157, 237, 171, + 4, 200, 223, 234, 89, 80, 211, 58, 235, 74, 209, 108, 4, 199, 117, 198, + 48, 198, 3, 223, 71, 232, 108, 213, 14, 203, 35, 45, 199, 223, 203, 35, + 143, 199, 223, 203, 35, 132, 199, 223, 209, 246, 4, 206, 3, 81, 249, 38, + 197, 221, 50, 197, 53, 54, 81, 249, 38, 45, 197, 53, 81, 249, 38, 54, 45, + 197, 53, 54, 81, 249, 38, 54, 45, 197, 53, 177, 237, 171, 232, 60, 45, + 216, 172, 80, 54, 195, 132, 203, 35, 143, 199, 224, 4, 210, 252, 203, 35, + 132, 199, 224, 4, 196, 99, 203, 35, 132, 199, 224, 95, 203, 35, 143, 199, + 223, 54, 143, 199, 223, 54, 132, 199, 223, 54, 201, 23, 212, 255, 57, + 207, 13, 54, 201, 23, 212, 255, 57, 236, 119, 212, 255, 236, 163, 4, 207, + 13, 214, 93, 202, 92, 81, 219, 89, 4, 242, 219, 56, 81, 219, 89, 4, 242, + 219, 60, 143, 199, 224, 4, 242, 219, 60, 210, 109, 4, 228, 209, 105, 210, + 109, 4, 198, 148, 211, 55, 197, 221, 81, 249, 38, 248, 120, 207, 60, 197, + 221, 81, 249, 38, 4, 228, 209, 105, 197, 221, 242, 36, 211, 55, 197, 221, + 214, 74, 219, 155, 197, 221, 214, 74, 230, 169, 235, 87, 202, 94, 219, + 156, 211, 46, 234, 3, 159, 235, 87, 202, 94, 230, 170, 211, 46, 234, 3, + 159, 197, 221, 202, 19, 248, 120, 207, 60, 219, 245, 197, 221, 81, 249, + 38, 211, 55, 54, 202, 19, 211, 55, 64, 81, 164, 215, 46, 64, 81, 164, + 185, 234, 160, 64, 55, 185, 193, 103, 64, 55, 201, 253, 234, 160, 64, 55, + 201, 253, 193, 103, 64, 55, 45, 50, 64, 55, 117, 62, 55, 196, 62, 62, 55, + 235, 75, 62, 55, 185, 234, 160, 62, 55, 185, 193, 103, 62, 55, 201, 253, + 234, 160, 62, 55, 201, 253, 193, 103, 62, 55, 45, 50, 62, 55, 132, 143, + 62, 55, 96, 63, 4, 198, 131, 235, 74, 96, 63, 4, 198, 131, 196, 61, 117, + 63, 4, 198, 131, 235, 74, 117, 63, 4, 198, 131, 196, 61, 51, 4, 198, 49, + 134, 248, 91, 51, 4, 248, 29, 134, 248, 91, 51, 4, 116, 50, 236, 250, + 134, 248, 91, 51, 4, 110, 45, 236, 250, 134, 248, 91, 236, 244, 4, 45, + 134, 248, 91, 236, 244, 4, 50, 134, 248, 91, 236, 244, 4, 198, 49, 134, + 248, 91, 236, 244, 4, 248, 29, 134, 248, 91, 235, 94, 201, 185, 62, 219, + 245, 201, 185, 64, 219, 245, 201, 185, 62, 195, 80, 2, 201, 185, 64, 195, + 80, 2, 201, 185, 62, 210, 15, 64, 210, 15, 64, 229, 150, 62, 229, 150, + 228, 209, 62, 229, 150, 62, 219, 245, 242, 218, 62, 216, 194, 236, 243, + 64, 216, 194, 236, 243, 62, 216, 194, 218, 210, 64, 216, 194, 218, 210, + 62, 2, 236, 243, 62, 2, 218, 210, 64, 2, 218, 210, 62, 228, 209, 234, 79, + 64, 228, 209, 234, 79, 62, 81, 234, 79, 64, 81, 234, 79, 45, 63, 4, 2, + 242, 218, 115, 117, 250, 181, 45, 63, 4, 47, 209, 73, 177, 117, 201, 178, + 55, 117, 197, 9, 63, 4, 81, 105, 117, 197, 9, 63, 4, 54, 81, 105, 117, + 197, 9, 63, 232, 60, 164, 117, 197, 9, 197, 221, 237, 171, 55, 117, 63, + 4, 235, 94, 201, 75, 117, 63, 4, 199, 211, 4, 81, 105, 117, 63, 4, 199, + 211, 4, 54, 81, 105, 117, 197, 9, 63, 4, 199, 210, 117, 197, 9, 63, 4, + 199, 211, 4, 81, 105, 117, 197, 9, 63, 4, 199, 211, 4, 54, 81, 105, 117, + 63, 198, 211, 192, 235, 193, 137, 63, 209, 51, 236, 186, 219, 200, 234, + 1, 3, 95, 117, 55, 207, 14, 198, 148, 211, 56, 95, 117, 55, 117, 63, 95, + 207, 14, 251, 114, 234, 3, 159, 96, 63, 198, 211, 230, 169, 96, 63, 198, + 211, 200, 175, 117, 208, 20, 55, 96, 208, 20, 55, 207, 14, 198, 148, 211, + 56, 95, 96, 55, 96, 63, 95, 207, 14, 251, 114, 234, 3, 159, 198, 148, + 211, 56, 95, 117, 55, 117, 63, 95, 251, 114, 234, 3, 159, 117, 63, 95, + 207, 14, 198, 148, 211, 55, 96, 63, 95, 207, 14, 198, 148, 211, 55, 235, + 75, 197, 236, 191, 21, 55, 203, 35, 202, 94, 185, 55, 203, 35, 249, 93, + 201, 253, 55, 64, 216, 194, 201, 97, 62, 2, 201, 97, 64, 2, 201, 97, 62, + 206, 198, 210, 15, 64, 206, 198, 210, 15, 88, 219, 245, 242, 218, 88, + 210, 254, 4, 210, 254, 223, 89, 88, 242, 219, 4, 242, 219, 223, 89, 88, + 242, 218, 88, 47, 205, 149, 202, 94, 185, 63, 4, 228, 218, 229, 203, 249, + 93, 201, 253, 63, 4, 228, 218, 199, 210, 202, 94, 185, 63, 4, 228, 209, + 199, 210, 249, 93, 201, 253, 63, 4, 228, 209, 199, 210, 248, 174, 63, + 209, 51, 235, 75, 199, 20, 185, 234, 159, 203, 35, 248, 174, 63, 209, 51, + 235, 75, 199, 20, 185, 234, 159, 117, 197, 236, 55, 196, 62, 197, 236, + 55, 96, 197, 236, 55, 235, 75, 197, 236, 55, 45, 50, 197, 236, 55, 132, + 143, 197, 236, 55, 185, 193, 103, 197, 236, 55, 185, 234, 160, 197, 236, + 55, 201, 253, 234, 160, 197, 236, 55, 201, 253, 193, 103, 197, 236, 55, + 117, 197, 236, 237, 169, 55, 196, 62, 197, 236, 237, 169, 55, 96, 197, + 236, 237, 169, 55, 235, 75, 197, 236, 237, 169, 55, 242, 173, 197, 236, + 211, 66, 242, 219, 55, 251, 34, 197, 236, 211, 66, 242, 219, 55, 117, + 197, 236, 63, 118, 164, 196, 62, 197, 236, 63, 118, 164, 96, 197, 236, + 63, 118, 164, 235, 75, 197, 236, 63, 118, 164, 185, 193, 103, 197, 236, + 63, 118, 164, 185, 234, 160, 197, 236, 63, 118, 164, 201, 253, 234, 160, + 197, 236, 63, 118, 164, 201, 253, 193, 103, 197, 236, 63, 118, 164, 117, + 197, 236, 63, 4, 54, 228, 209, 105, 196, 62, 197, 236, 63, 4, 54, 228, + 209, 105, 96, 197, 236, 63, 4, 54, 228, 209, 105, 235, 75, 197, 236, 63, + 4, 54, 228, 209, 105, 228, 209, 199, 232, 221, 197, 81, 199, 232, 221, + 197, 117, 197, 236, 63, 138, 96, 197, 236, 55, 196, 62, 197, 236, 63, + 117, 80, 235, 75, 197, 236, 55, 96, 197, 236, 63, 138, 117, 197, 236, 55, + 235, 75, 197, 236, 63, 117, 80, 196, 62, 197, 236, 55, 117, 197, 236, + 210, 186, 250, 181, 196, 62, 197, 236, 210, 186, 250, 181, 96, 197, 236, + 210, 186, 250, 181, 235, 75, 197, 236, 210, 186, 250, 181, 117, 62, 47, + 64, 55, 196, 62, 62, 47, 64, 55, 96, 62, 47, 64, 55, 235, 75, 62, 47, 64, + 55, 251, 34, 197, 236, 50, 196, 217, 55, 251, 34, 197, 236, 248, 29, 196, + 217, 55, 251, 34, 197, 236, 45, 196, 217, 55, 251, 34, 197, 236, 198, 49, + 196, 217, 55, 207, 18, 219, 200, 207, 18, 187, 214, 63, 219, 200, 214, + 63, 187, 232, 90, 238, 211, 250, 182, 242, 214, 251, 33, 96, 62, 55, 16, + 39, 196, 251, 41, 234, 90, 198, 220, 198, 47, 117, 233, 251, 250, 185, + 198, 220, 206, 199, 196, 62, 233, 251, 250, 185, 198, 220, 198, 47, 96, + 233, 251, 250, 185, 198, 220, 219, 196, 235, 75, 233, 251, 250, 185, 62, + 117, 233, 251, 250, 185, 62, 196, 62, 233, 251, 250, 185, 62, 96, 233, + 251, 250, 185, 62, 235, 75, 233, 251, 250, 185, 235, 75, 197, 236, 63, 4, + 177, 198, 131, 219, 190, 235, 75, 197, 236, 63, 4, 177, 198, 131, 206, + 192, 196, 62, 197, 236, 63, 4, 177, 198, 131, 219, 190, 196, 62, 197, + 236, 63, 4, 177, 198, 131, 206, 192, 117, 197, 236, 63, 4, 177, 198, 131, + 196, 61, 96, 197, 236, 63, 4, 177, 198, 131, 196, 61, 117, 197, 236, 63, + 4, 177, 198, 131, 235, 74, 96, 197, 236, 63, 4, 177, 198, 131, 235, 74, + 62, 238, 116, 235, 75, 24, 117, 55, 62, 238, 116, 235, 75, 24, 96, 55, + 62, 238, 116, 196, 62, 24, 117, 55, 62, 238, 116, 196, 62, 24, 96, 55, + 62, 238, 116, 117, 24, 196, 62, 55, 62, 238, 116, 96, 24, 196, 62, 55, + 62, 238, 116, 117, 24, 235, 75, 55, 62, 238, 116, 96, 24, 235, 75, 55, + 206, 243, 63, 143, 219, 200, 206, 243, 63, 143, 187, 206, 243, 63, 132, + 219, 200, 206, 243, 63, 132, 187, 206, 243, 63, 45, 196, 73, 206, 243, + 63, 50, 196, 73, 206, 243, 63, 45, 235, 79, 206, 243, 63, 50, 235, 79, + 196, 62, 64, 63, 232, 60, 249, 38, 4, 228, 209, 164, 132, 250, 186, 223, + 135, 41, 207, 88, 248, 14, 210, 247, 64, 201, 183, 210, 247, 64, 24, 62, + 201, 183, 210, 247, 62, 201, 183, 249, 57, 111, 4, 155, 192, 235, 47, + 192, 235, 47, 28, 192, 235, 62, 51, 246, 227, 62, 236, 244, 246, 227, + 152, 62, 210, 15, 228, 209, 62, 211, 148, 62, 211, 148, 62, 216, 194, + 196, 72, 197, 238, 246, 227, 62, 216, 194, 235, 78, 197, 238, 246, 227, + 62, 216, 194, 219, 195, 197, 238, 246, 227, 62, 216, 194, 206, 198, 197, + 238, 246, 227, 214, 81, 232, 107, 109, 198, 49, 134, 62, 242, 218, 248, + 29, 134, 62, 242, 218, 155, 232, 90, 209, 53, 62, 238, 112, 206, 117, + 155, 232, 90, 209, 53, 62, 238, 112, 64, 232, 90, 209, 53, 238, 112, 206, + 117, 64, 232, 90, 209, 53, 238, 112, 51, 209, 18, 223, 116, 196, 103, 57, + 230, 154, 77, 209, 70, 232, 107, 109, 209, 70, 232, 107, 139, 209, 70, + 232, 107, 137, 209, 70, 232, 107, 153, 198, 5, 208, 178, 250, 139, 228, + 61, 209, 187, 214, 77, 64, 215, 189, 204, 28, 62, 236, 244, 211, 94, 238, + 170, 197, 198, 155, 215, 189, 250, 177, 238, 132, 230, 55, 191, 75, 220, + 234, 251, 3, 251, 236, 193, 244, 209, 19, 45, 134, 62, 201, 97, 50, 134, + 62, 201, 97, 201, 98, 4, 45, 134, 248, 91, 201, 98, 4, 50, 134, 248, 91, + 117, 197, 9, 63, 4, 197, 238, 250, 183, 196, 62, 197, 9, 63, 4, 197, 238, + 250, 183, 96, 197, 9, 63, 4, 197, 238, 250, 183, 235, 75, 197, 9, 63, 4, + 197, 238, 250, 183, 233, 241, 232, 107, 108, 233, 241, 232, 107, 109, + 205, 46, 206, 26, 250, 138, 16, 195, 49, 206, 26, 250, 138, 16, 212, 241, + 206, 26, 250, 138, 16, 207, 252, 206, 26, 250, 138, 16, 248, 115, 206, + 26, 250, 138, 16, 204, 11, 206, 26, 250, 138, 16, 197, 252, 234, 1, 3, 4, + 223, 112, 60, 196, 85, 113, 204, 7, 113, 235, 84, 113, 210, 86, 113, 207, + 13, 50, 251, 64, 229, 171, 210, 68, 113, 133, 6, 1, 250, 72, 133, 6, 1, + 247, 204, 133, 6, 1, 195, 148, 133, 6, 1, 230, 238, 133, 6, 1, 236, 124, + 133, 6, 1, 192, 49, 133, 6, 1, 191, 55, 133, 6, 1, 234, 242, 133, 6, 1, + 191, 82, 133, 6, 1, 223, 11, 133, 6, 1, 89, 223, 11, 133, 6, 1, 70, 133, + 6, 1, 236, 145, 133, 6, 1, 222, 67, 133, 6, 1, 219, 51, 133, 6, 1, 215, + 52, 133, 6, 1, 214, 196, 133, 6, 1, 211, 78, 133, 6, 1, 209, 48, 133, 6, + 1, 206, 174, 133, 6, 1, 202, 72, 133, 6, 1, 197, 40, 133, 6, 1, 196, 120, + 133, 6, 1, 232, 63, 133, 6, 1, 229, 156, 133, 6, 1, 211, 10, 133, 6, 1, + 210, 53, 133, 6, 1, 203, 3, 133, 6, 1, 197, 142, 133, 6, 1, 243, 6, 133, + 6, 1, 203, 160, 133, 6, 1, 192, 58, 133, 6, 1, 192, 60, 133, 6, 1, 192, + 93, 133, 6, 1, 201, 215, 144, 133, 6, 1, 191, 225, 133, 6, 1, 2, 191, + 190, 133, 6, 1, 2, 191, 191, 4, 199, 210, 133, 6, 1, 192, 12, 133, 6, 1, + 223, 54, 2, 191, 190, 133, 6, 1, 248, 127, 191, 190, 133, 6, 1, 223, 54, + 248, 127, 191, 190, 133, 6, 1, 232, 187, 133, 6, 1, 223, 9, 133, 6, 1, + 203, 2, 133, 6, 1, 197, 211, 65, 133, 6, 1, 219, 233, 215, 52, 133, 6, 1, + 247, 25, 243, 6, 133, 2, 1, 250, 72, 133, 2, 1, 247, 204, 133, 2, 1, 195, + 148, 133, 2, 1, 230, 238, 133, 2, 1, 236, 124, 133, 2, 1, 192, 49, 133, + 2, 1, 191, 55, 133, 2, 1, 234, 242, 133, 2, 1, 191, 82, 133, 2, 1, 223, + 11, 133, 2, 1, 89, 223, 11, 133, 2, 1, 70, 133, 2, 1, 236, 145, 133, 2, + 1, 222, 67, 133, 2, 1, 219, 51, 133, 2, 1, 215, 52, 133, 2, 1, 214, 196, + 133, 2, 1, 211, 78, 133, 2, 1, 209, 48, 133, 2, 1, 206, 174, 133, 2, 1, + 202, 72, 133, 2, 1, 197, 40, 133, 2, 1, 196, 120, 133, 2, 1, 232, 63, + 133, 2, 1, 229, 156, 133, 2, 1, 211, 10, 133, 2, 1, 210, 53, 133, 2, 1, + 203, 3, 133, 2, 1, 197, 142, 133, 2, 1, 243, 6, 133, 2, 1, 203, 160, 133, + 2, 1, 192, 58, 133, 2, 1, 192, 60, 133, 2, 1, 192, 93, 133, 2, 1, 201, + 215, 144, 133, 2, 1, 191, 225, 133, 2, 1, 2, 191, 190, 133, 2, 1, 2, 191, + 191, 4, 199, 210, 133, 2, 1, 192, 12, 133, 2, 1, 223, 54, 2, 191, 190, + 133, 2, 1, 248, 127, 191, 190, 133, 2, 1, 223, 54, 248, 127, 191, 190, + 133, 2, 1, 232, 187, 133, 2, 1, 223, 9, 133, 2, 1, 203, 2, 133, 2, 1, + 197, 211, 65, 133, 2, 1, 219, 233, 215, 52, 133, 2, 1, 247, 25, 243, 6, + 8, 6, 1, 220, 119, 4, 54, 164, 8, 2, 1, 220, 119, 4, 54, 164, 8, 6, 1, + 220, 119, 4, 82, 198, 147, 8, 6, 1, 210, 227, 4, 105, 8, 6, 1, 207, 217, + 4, 199, 210, 8, 2, 1, 41, 4, 105, 8, 2, 1, 200, 40, 4, 236, 250, 105, 8, + 6, 1, 230, 84, 4, 237, 42, 8, 2, 1, 230, 84, 4, 237, 42, 8, 6, 1, 222, + 126, 4, 237, 42, 8, 2, 1, 222, 126, 4, 237, 42, 8, 6, 1, 191, 167, 4, + 237, 42, 8, 2, 1, 191, 167, 4, 237, 42, 8, 6, 1, 251, 109, 8, 6, 1, 218, + 148, 4, 106, 8, 6, 1, 152, 65, 8, 6, 1, 152, 251, 109, 8, 2, 1, 196, 9, + 4, 50, 106, 8, 6, 1, 193, 222, 4, 106, 8, 2, 1, 193, 222, 4, 106, 8, 2, + 1, 196, 9, 4, 238, 128, 8, 6, 1, 134, 230, 83, 8, 2, 1, 134, 230, 83, 8, + 2, 1, 199, 208, 209, 202, 8, 2, 1, 234, 227, 4, 212, 252, 8, 2, 1, 152, + 207, 217, 4, 199, 210, 8, 2, 1, 186, 4, 131, 206, 184, 223, 89, 8, 1, 2, + 6, 152, 73, 8, 200, 225, 2, 1, 223, 7, 59, 1, 6, 196, 8, 8, 6, 1, 206, 4, + 4, 200, 142, 199, 210, 8, 6, 1, 191, 167, 4, 200, 142, 199, 210, 93, 6, + 1, 251, 135, 93, 2, 1, 251, 135, 93, 6, 1, 195, 63, 93, 2, 1, 195, 63, + 93, 6, 1, 231, 174, 93, 2, 1, 231, 174, 93, 6, 1, 237, 208, 93, 2, 1, + 237, 208, 93, 6, 1, 234, 122, 93, 2, 1, 234, 122, 93, 6, 1, 202, 2, 93, + 2, 1, 202, 2, 93, 6, 1, 191, 95, 93, 2, 1, 191, 95, 93, 6, 1, 229, 229, + 93, 2, 1, 229, 229, 93, 6, 1, 199, 8, 93, 2, 1, 199, 8, 93, 6, 1, 228, 2, + 93, 2, 1, 228, 2, 93, 6, 1, 222, 51, 93, 2, 1, 222, 51, 93, 6, 1, 219, + 228, 93, 2, 1, 219, 228, 93, 6, 1, 216, 81, 93, 2, 1, 216, 81, 93, 6, 1, + 213, 205, 93, 2, 1, 213, 205, 93, 6, 1, 220, 224, 93, 2, 1, 220, 224, 93, + 6, 1, 74, 93, 2, 1, 74, 93, 6, 1, 209, 176, 93, 2, 1, 209, 176, 93, 6, 1, + 206, 157, 93, 2, 1, 206, 157, 93, 6, 1, 202, 178, 93, 2, 1, 202, 178, 93, + 6, 1, 199, 161, 93, 2, 1, 199, 161, 93, 6, 1, 196, 164, 93, 2, 1, 196, + 164, 93, 6, 1, 232, 238, 93, 2, 1, 232, 238, 93, 6, 1, 221, 166, 93, 2, + 1, 221, 166, 93, 6, 1, 208, 169, 93, 2, 1, 208, 169, 93, 6, 1, 211, 70, + 93, 2, 1, 211, 70, 93, 6, 1, 236, 248, 251, 141, 93, 2, 1, 236, 248, 251, + 141, 93, 6, 1, 38, 93, 251, 178, 93, 2, 1, 38, 93, 251, 178, 93, 6, 1, + 238, 151, 234, 122, 93, 2, 1, 238, 151, 234, 122, 93, 6, 1, 236, 248, + 222, 51, 93, 2, 1, 236, 248, 222, 51, 93, 6, 1, 236, 248, 213, 205, 93, + 2, 1, 236, 248, 213, 205, 93, 6, 1, 238, 151, 213, 205, 93, 2, 1, 238, + 151, 213, 205, 93, 6, 1, 38, 93, 211, 70, 93, 2, 1, 38, 93, 211, 70, 93, + 6, 1, 205, 140, 93, 2, 1, 205, 140, 93, 6, 1, 238, 167, 203, 100, 93, 2, + 1, 238, 167, 203, 100, 93, 6, 1, 38, 93, 203, 100, 93, 2, 1, 38, 93, 203, + 100, 93, 6, 1, 38, 93, 233, 226, 93, 2, 1, 38, 93, 233, 226, 93, 6, 1, + 251, 161, 221, 171, 93, 2, 1, 251, 161, 221, 171, 93, 6, 1, 236, 248, + 228, 210, 93, 2, 1, 236, 248, 228, 210, 93, 6, 1, 38, 93, 228, 210, 93, + 2, 1, 38, 93, 228, 210, 93, 6, 1, 38, 93, 144, 93, 2, 1, 38, 93, 144, 93, + 6, 1, 220, 118, 144, 93, 2, 1, 220, 118, 144, 93, 6, 1, 38, 93, 229, 177, + 93, 2, 1, 38, 93, 229, 177, 93, 6, 1, 38, 93, 229, 232, 93, 2, 1, 38, 93, + 229, 232, 93, 6, 1, 38, 93, 231, 169, 93, 2, 1, 38, 93, 231, 169, 93, 6, + 1, 38, 93, 236, 148, 93, 2, 1, 38, 93, 236, 148, 93, 6, 1, 38, 93, 203, + 66, 93, 2, 1, 38, 93, 203, 66, 93, 6, 1, 38, 212, 132, 203, 66, 93, 2, 1, + 38, 212, 132, 203, 66, 93, 6, 1, 38, 212, 132, 214, 2, 93, 2, 1, 38, 212, + 132, 214, 2, 93, 6, 1, 38, 212, 132, 212, 68, 93, 2, 1, 38, 212, 132, + 212, 68, 93, 6, 1, 38, 212, 132, 193, 138, 93, 2, 1, 38, 212, 132, 193, + 138, 93, 16, 222, 75, 93, 16, 216, 82, 206, 157, 93, 16, 209, 177, 206, + 157, 93, 16, 201, 84, 93, 16, 199, 162, 206, 157, 93, 16, 221, 167, 206, + 157, 93, 16, 203, 67, 202, 178, 93, 6, 1, 238, 151, 203, 100, 93, 2, 1, + 238, 151, 203, 100, 93, 6, 1, 238, 151, 231, 169, 93, 2, 1, 238, 151, + 231, 169, 93, 33, 213, 206, 56, 93, 33, 201, 208, 250, 151, 93, 33, 201, + 208, 219, 164, 93, 6, 1, 248, 55, 221, 171, 93, 2, 1, 248, 55, 221, 171, + 93, 38, 212, 132, 232, 42, 201, 58, 93, 38, 212, 132, 236, 189, 208, 8, + 77, 93, 38, 212, 132, 223, 114, 208, 8, 77, 93, 38, 212, 132, 195, 134, + 236, 160, 93, 232, 80, 91, 230, 37, 93, 232, 42, 201, 58, 93, 215, 184, + 236, 160, 100, 2, 1, 251, 81, 100, 2, 1, 249, 51, 100, 2, 1, 231, 173, + 100, 2, 1, 236, 105, 100, 2, 1, 234, 61, 100, 2, 1, 195, 46, 100, 2, 1, + 191, 80, 100, 2, 1, 199, 188, 100, 2, 1, 223, 134, 100, 2, 1, 222, 61, + 100, 2, 1, 219, 239, 100, 2, 1, 217, 70, 100, 2, 1, 214, 202, 100, 2, 1, + 211, 93, 100, 2, 1, 210, 121, 100, 2, 1, 191, 67, 100, 2, 1, 207, 158, + 100, 2, 1, 205, 137, 100, 2, 1, 199, 174, 100, 2, 1, 196, 109, 100, 2, 1, + 209, 211, 100, 2, 1, 221, 176, 100, 2, 1, 231, 45, 100, 2, 1, 208, 74, + 100, 2, 1, 203, 64, 100, 2, 1, 243, 33, 100, 2, 1, 247, 80, 100, 2, 1, + 222, 207, 100, 2, 1, 242, 226, 100, 2, 1, 246, 193, 100, 2, 1, 192, 218, + 100, 2, 1, 222, 222, 100, 2, 1, 230, 54, 100, 2, 1, 229, 213, 100, 2, 1, + 229, 113, 100, 2, 1, 193, 123, 100, 2, 1, 229, 242, 100, 2, 1, 228, 235, + 100, 2, 1, 192, 14, 100, 2, 1, 251, 218, 198, 170, 1, 169, 198, 170, 1, + 192, 136, 198, 170, 1, 192, 135, 198, 170, 1, 192, 125, 198, 170, 1, 192, + 123, 198, 170, 1, 248, 168, 252, 10, 192, 118, 198, 170, 1, 192, 118, + 198, 170, 1, 192, 133, 198, 170, 1, 192, 130, 198, 170, 1, 192, 132, 198, + 170, 1, 192, 131, 198, 170, 1, 192, 40, 198, 170, 1, 192, 127, 198, 170, + 1, 192, 116, 198, 170, 1, 197, 82, 192, 116, 198, 170, 1, 192, 113, 198, + 170, 1, 192, 121, 198, 170, 1, 248, 168, 252, 10, 192, 121, 198, 170, 1, + 197, 82, 192, 121, 198, 170, 1, 192, 120, 198, 170, 1, 192, 140, 198, + 170, 1, 192, 114, 198, 170, 1, 197, 82, 192, 114, 198, 170, 1, 192, 103, + 198, 170, 1, 197, 82, 192, 103, 198, 170, 1, 192, 33, 198, 170, 1, 192, + 82, 198, 170, 1, 251, 191, 192, 82, 198, 170, 1, 197, 82, 192, 82, 198, + 170, 1, 192, 112, 198, 170, 1, 192, 111, 198, 170, 1, 192, 108, 198, 170, + 1, 197, 82, 192, 122, 198, 170, 1, 197, 82, 192, 106, 198, 170, 1, 192, + 104, 198, 170, 1, 191, 225, 198, 170, 1, 192, 101, 198, 170, 1, 192, 99, + 198, 170, 1, 192, 124, 198, 170, 1, 197, 82, 192, 124, 198, 170, 1, 250, + 77, 192, 124, 198, 170, 1, 192, 98, 198, 170, 1, 192, 96, 198, 170, 1, + 192, 97, 198, 170, 1, 192, 95, 198, 170, 1, 192, 94, 198, 170, 1, 192, + 134, 198, 170, 1, 192, 92, 198, 170, 1, 192, 90, 198, 170, 1, 192, 89, + 198, 170, 1, 192, 86, 198, 170, 1, 192, 83, 198, 170, 1, 199, 152, 192, + 83, 198, 170, 1, 192, 81, 198, 170, 1, 192, 80, 198, 170, 1, 192, 12, + 198, 170, 59, 1, 220, 91, 77, 198, 170, 204, 6, 77, 198, 170, 119, 222, + 169, 36, 5, 219, 18, 36, 5, 215, 244, 36, 5, 206, 149, 36, 5, 202, 33, + 36, 5, 203, 50, 36, 5, 248, 62, 36, 5, 198, 86, 36, 5, 242, 50, 36, 5, + 213, 23, 36, 5, 212, 51, 36, 5, 230, 231, 211, 169, 36, 5, 191, 6, 36, 5, + 236, 127, 36, 5, 237, 115, 36, 5, 222, 173, 36, 5, 198, 235, 36, 5, 243, + 19, 36, 5, 209, 189, 36, 5, 209, 64, 36, 5, 231, 60, 36, 5, 231, 56, 36, + 5, 231, 57, 36, 5, 231, 58, 36, 5, 201, 170, 36, 5, 201, 124, 36, 5, 201, + 137, 36, 5, 201, 169, 36, 5, 201, 142, 36, 5, 201, 143, 36, 5, 201, 129, + 36, 5, 247, 17, 36, 5, 246, 252, 36, 5, 246, 254, 36, 5, 247, 16, 36, 5, + 247, 14, 36, 5, 247, 15, 36, 5, 246, 253, 36, 5, 190, 224, 36, 5, 190, + 202, 36, 5, 190, 215, 36, 5, 190, 223, 36, 5, 190, 218, 36, 5, 190, 219, + 36, 5, 190, 207, 36, 5, 247, 12, 36, 5, 246, 255, 36, 5, 247, 1, 36, 5, + 247, 11, 36, 5, 247, 9, 36, 5, 247, 10, 36, 5, 247, 0, 36, 5, 207, 229, + 36, 5, 207, 219, 36, 5, 207, 225, 36, 5, 207, 228, 36, 5, 207, 226, 36, + 5, 207, 227, 36, 5, 207, 224, 36, 5, 220, 129, 36, 5, 220, 121, 36, 5, + 220, 124, 36, 5, 220, 128, 36, 5, 220, 125, 36, 5, 220, 126, 36, 5, 220, + 122, 36, 5, 192, 175, 36, 5, 192, 162, 36, 5, 192, 170, 36, 5, 192, 174, + 36, 5, 192, 172, 36, 5, 192, 173, 36, 5, 192, 169, 36, 5, 230, 95, 36, 5, + 230, 85, 36, 5, 230, 88, 36, 5, 230, 94, 36, 5, 230, 90, 36, 5, 230, 91, + 36, 5, 230, 87, 33, 42, 1, 248, 223, 33, 42, 1, 195, 150, 33, 42, 1, 231, + 40, 33, 42, 1, 237, 101, 33, 42, 1, 191, 62, 33, 42, 1, 191, 87, 33, 42, + 1, 157, 33, 42, 1, 234, 97, 33, 42, 1, 234, 72, 33, 42, 1, 234, 61, 33, + 42, 1, 74, 33, 42, 1, 210, 53, 33, 42, 1, 233, 248, 33, 42, 1, 233, 236, + 33, 42, 1, 199, 140, 33, 42, 1, 144, 33, 42, 1, 197, 157, 33, 42, 1, 243, + 79, 33, 42, 1, 203, 160, 33, 42, 1, 203, 111, 33, 42, 1, 232, 187, 33, + 42, 1, 233, 232, 33, 42, 1, 65, 33, 42, 1, 223, 197, 33, 42, 1, 236, 146, + 33, 42, 1, 215, 202, 196, 124, 33, 42, 1, 192, 95, 33, 42, 1, 191, 225, + 33, 42, 1, 223, 53, 65, 33, 42, 1, 219, 59, 191, 190, 33, 42, 1, 248, + 127, 191, 190, 33, 42, 1, 223, 53, 248, 127, 191, 190, 50, 251, 65, 200, + 220, 217, 32, 50, 251, 65, 235, 94, 200, 220, 217, 32, 45, 200, 220, 248, + 5, 50, 200, 220, 248, 5, 45, 235, 94, 200, 220, 248, 5, 50, 235, 94, 200, + 220, 248, 5, 207, 142, 223, 76, 217, 32, 207, 142, 235, 94, 223, 76, 217, + 32, 235, 94, 198, 4, 217, 32, 45, 198, 4, 248, 5, 50, 198, 4, 248, 5, + 207, 142, 201, 185, 45, 207, 142, 211, 95, 248, 5, 50, 207, 142, 211, 95, + 248, 5, 234, 146, 238, 207, 210, 116, 232, 109, 210, 116, 207, 13, 232, + 109, 210, 116, 228, 55, 235, 94, 211, 164, 235, 75, 251, 75, 196, 62, + 251, 75, 235, 94, 206, 198, 251, 64, 54, 211, 159, 228, 58, 223, 65, 223, + 74, 210, 173, 247, 255, 228, 59, 4, 236, 253, 198, 148, 4, 206, 184, 56, + 45, 131, 210, 106, 248, 5, 50, 131, 210, 106, 248, 5, 198, 148, 4, 75, + 56, 198, 148, 4, 75, 60, 45, 81, 249, 38, 4, 208, 2, 50, 81, 249, 38, 4, + 208, 2, 198, 49, 45, 134, 248, 5, 198, 49, 50, 134, 248, 5, 248, 29, 45, + 134, 248, 5, 248, 29, 50, 134, 248, 5, 45, 202, 201, 126, 248, 5, 50, + 202, 201, 126, 248, 5, 45, 54, 210, 103, 50, 54, 210, 103, 103, 183, 138, + 91, 75, 208, 144, 91, 75, 138, 103, 183, 208, 144, 112, 232, 90, 75, 208, + 144, 232, 185, 75, 77, 207, 13, 208, 8, 77, 81, 198, 147, 206, 184, 209, + 54, 193, 23, 204, 6, 82, 236, 96, 152, 242, 26, 207, 142, 236, 96, 207, + 142, 242, 26, 152, 204, 20, 237, 224, 4, 45, 230, 140, 237, 224, 4, 50, + 230, 140, 152, 237, 223, 198, 49, 134, 205, 49, 57, 197, 10, 237, 170, + 198, 218, 237, 170, 201, 74, 232, 42, 201, 58, 81, 202, 131, 236, 94, + 193, 70, 81, 219, 88, 247, 61, 54, 228, 58, 207, 13, 242, 26, 54, 218, + 215, 207, 247, 77, 237, 171, 4, 45, 196, 65, 54, 200, 159, 77, 223, 65, + 131, 222, 9, 223, 65, 131, 222, 10, 4, 222, 10, 56, 131, 222, 9, 131, + 222, 10, 4, 236, 96, 54, 201, 109, 242, 26, 235, 94, 202, 18, 197, 221, + 237, 223, 216, 195, 242, 26, 210, 115, 77, 208, 143, 234, 86, 77, 238, + 208, 195, 134, 236, 160, 238, 171, 210, 72, 4, 50, 238, 169, 238, 171, + 210, 72, 4, 45, 238, 169, 198, 123, 3, 6, 233, 213, 216, 195, 233, 175, + 77, 216, 195, 208, 8, 77, 45, 51, 248, 6, 4, 105, 50, 51, 248, 6, 4, 105, + 45, 51, 248, 6, 4, 54, 105, 50, 51, 248, 6, 4, 54, 105, 198, 49, 134, 45, + 210, 103, 198, 49, 134, 50, 210, 103, 248, 29, 134, 45, 210, 103, 248, + 29, 134, 50, 210, 103, 211, 159, 228, 58, 12, 48, 207, 43, 12, 48, 242, + 182, 12, 48, 205, 52, 108, 12, 48, 205, 52, 109, 12, 48, 205, 52, 139, + 12, 48, 209, 241, 12, 48, 248, 14, 12, 48, 199, 228, 12, 48, 221, 55, + 108, 12, 48, 221, 55, 109, 12, 48, 236, 157, 12, 48, 205, 56, 12, 48, 2, + 108, 12, 48, 2, 109, 12, 48, 220, 6, 108, 12, 48, 220, 6, 109, 12, 48, + 220, 6, 139, 12, 48, 220, 6, 137, 12, 48, 202, 53, 12, 48, 198, 222, 12, + 48, 202, 50, 108, 12, 48, 202, 50, 109, 12, 48, 229, 192, 108, 12, 48, + 229, 192, 109, 12, 48, 230, 20, 12, 48, 207, 131, 12, 48, 243, 16, 12, + 48, 200, 193, 12, 48, 215, 188, 12, 48, 237, 98, 12, 48, 215, 177, 12, + 48, 242, 201, 12, 48, 193, 142, 108, 12, 48, 193, 142, 109, 12, 48, 232, + 202, 12, 48, 210, 66, 108, 12, 48, 210, 66, 109, 12, 48, 202, 173, 134, + 197, 251, 197, 173, 12, 48, 238, 192, 12, 48, 236, 117, 12, 48, 222, 255, + 12, 48, 248, 54, 80, 242, 165, 12, 48, 233, 152, 12, 48, 201, 210, 108, + 12, 48, 201, 210, 109, 12, 48, 249, 53, 12, 48, 202, 180, 12, 48, 247, + 142, 202, 180, 12, 48, 214, 72, 108, 12, 48, 214, 72, 109, 12, 48, 214, + 72, 139, 12, 48, 214, 72, 137, 12, 48, 216, 153, 12, 48, 203, 102, 12, + 48, 207, 137, 12, 48, 233, 182, 12, 48, 211, 108, 12, 48, 247, 226, 108, + 12, 48, 247, 226, 109, 12, 48, 216, 205, 12, 48, 215, 183, 12, 48, 230, + 180, 108, 12, 48, 230, 180, 109, 12, 48, 230, 180, 139, 12, 48, 198, 168, + 12, 48, 242, 164, 12, 48, 193, 103, 108, 12, 48, 193, 103, 109, 12, 48, + 247, 142, 205, 45, 12, 48, 202, 173, 228, 156, 12, 48, 228, 156, 12, 48, + 247, 142, 201, 224, 12, 48, 247, 142, 203, 97, 12, 48, 232, 120, 12, 48, + 247, 142, 247, 37, 12, 48, 202, 173, 193, 166, 12, 48, 193, 167, 108, 12, + 48, 193, 167, 109, 12, 48, 242, 204, 12, 48, 247, 142, 230, 214, 12, 48, + 177, 108, 12, 48, 177, 109, 12, 48, 247, 142, 218, 251, 12, 48, 247, 142, + 231, 154, 12, 48, 215, 172, 108, 12, 48, 215, 172, 109, 12, 48, 207, 144, + 12, 48, 248, 66, 12, 48, 247, 142, 199, 180, 219, 206, 12, 48, 247, 142, + 219, 209, 12, 48, 247, 142, 193, 64, 12, 48, 247, 142, 232, 139, 12, 48, + 234, 157, 108, 12, 48, 234, 157, 109, 12, 48, 234, 157, 139, 12, 48, 247, + 142, 234, 156, 12, 48, 229, 203, 12, 48, 247, 142, 228, 152, 12, 48, 248, + 50, 12, 48, 231, 24, 12, 48, 247, 142, 232, 195, 12, 48, 247, 142, 248, + 112, 12, 48, 247, 142, 205, 153, 12, 48, 202, 173, 193, 93, 12, 48, 202, + 173, 192, 72, 12, 48, 247, 142, 232, 61, 12, 48, 223, 6, 233, 187, 12, + 48, 247, 142, 233, 187, 12, 48, 223, 6, 198, 51, 12, 48, 247, 142, 198, + 51, 12, 48, 223, 6, 235, 67, 12, 48, 247, 142, 235, 67, 12, 48, 197, 51, + 12, 48, 223, 6, 197, 51, 12, 48, 247, 142, 197, 51, 83, 48, 108, 83, 48, + 219, 88, 83, 48, 236, 96, 83, 48, 202, 92, 83, 48, 205, 51, 83, 48, 106, + 83, 48, 109, 83, 48, 219, 117, 83, 48, 217, 70, 83, 48, 219, 185, 83, 48, + 234, 35, 83, 48, 176, 83, 48, 143, 248, 14, 83, 48, 238, 195, 83, 48, + 227, 252, 83, 48, 199, 228, 83, 48, 211, 66, 248, 14, 83, 48, 221, 54, + 83, 48, 208, 247, 83, 48, 193, 12, 83, 48, 201, 198, 83, 48, 50, 211, 66, + 248, 14, 83, 48, 229, 114, 234, 56, 83, 48, 199, 90, 83, 48, 236, 157, + 83, 48, 205, 56, 83, 48, 242, 182, 83, 48, 208, 197, 83, 48, 251, 200, + 83, 48, 215, 163, 83, 48, 234, 56, 83, 48, 234, 163, 83, 48, 205, 86, 83, + 48, 230, 223, 83, 48, 230, 224, 202, 69, 83, 48, 233, 186, 83, 48, 248, + 126, 83, 48, 193, 35, 83, 48, 243, 38, 83, 48, 206, 128, 83, 48, 223, + 130, 83, 48, 202, 65, 83, 48, 220, 5, 83, 48, 238, 205, 83, 48, 201, 189, + 83, 48, 215, 168, 83, 48, 206, 171, 83, 48, 193, 20, 83, 48, 211, 84, 83, + 48, 197, 59, 83, 48, 235, 47, 83, 48, 203, 35, 198, 222, 83, 48, 235, 94, + 242, 182, 83, 48, 177, 201, 29, 83, 48, 103, 229, 251, 83, 48, 203, 41, + 83, 48, 248, 21, 83, 48, 202, 49, 83, 48, 247, 233, 83, 48, 201, 73, 83, + 48, 229, 191, 83, 48, 230, 38, 83, 48, 236, 100, 83, 48, 230, 20, 83, 48, + 247, 255, 83, 48, 207, 131, 83, 48, 205, 69, 83, 48, 236, 191, 83, 48, + 250, 82, 83, 48, 201, 185, 83, 48, 212, 254, 83, 48, 200, 193, 83, 48, + 205, 98, 83, 48, 215, 188, 83, 48, 197, 250, 83, 48, 220, 87, 83, 48, + 201, 58, 83, 48, 237, 98, 83, 48, 193, 118, 83, 48, 236, 130, 212, 254, + 83, 48, 242, 22, 83, 48, 232, 35, 83, 48, 242, 195, 83, 48, 201, 79, 83, + 48, 193, 141, 83, 48, 232, 202, 83, 48, 242, 191, 83, 48, 233, 25, 83, + 48, 54, 192, 235, 83, 48, 134, 197, 251, 197, 173, 83, 48, 202, 83, 83, + 48, 233, 37, 83, 48, 238, 192, 83, 48, 236, 117, 83, 48, 208, 192, 83, + 48, 222, 255, 83, 48, 216, 177, 83, 48, 198, 146, 83, 48, 200, 137, 83, + 48, 219, 111, 83, 48, 196, 39, 83, 48, 232, 236, 83, 48, 248, 54, 80, + 242, 165, 83, 48, 202, 207, 83, 48, 235, 94, 199, 82, 83, 48, 193, 87, + 83, 48, 202, 102, 83, 48, 236, 177, 83, 48, 233, 152, 83, 48, 201, 227, + 83, 48, 55, 83, 48, 201, 60, 83, 48, 201, 209, 83, 48, 198, 21, 83, 48, + 230, 189, 83, 48, 247, 22, 83, 48, 201, 102, 83, 48, 249, 53, 83, 48, + 206, 240, 83, 48, 202, 180, 83, 48, 222, 246, 83, 48, 214, 71, 83, 48, + 203, 102, 83, 48, 233, 13, 83, 48, 211, 108, 83, 48, 251, 74, 83, 48, + 209, 81, 83, 48, 234, 167, 83, 48, 247, 225, 83, 48, 216, 205, 83, 48, + 216, 20, 83, 48, 204, 27, 83, 48, 250, 189, 83, 48, 215, 183, 83, 48, + 198, 56, 83, 48, 211, 53, 83, 48, 248, 58, 83, 48, 201, 54, 83, 48, 242, + 34, 83, 48, 230, 179, 83, 48, 198, 168, 83, 48, 223, 93, 83, 48, 248, 72, + 83, 48, 193, 167, 234, 56, 83, 48, 242, 164, 83, 48, 193, 102, 83, 48, + 205, 45, 83, 48, 228, 156, 83, 48, 201, 224, 83, 48, 195, 177, 83, 48, + 248, 218, 83, 48, 209, 138, 83, 48, 249, 83, 83, 48, 203, 97, 83, 48, + 207, 81, 83, 48, 206, 40, 83, 48, 232, 120, 83, 48, 248, 56, 83, 48, 247, + 37, 83, 48, 248, 96, 83, 48, 215, 185, 83, 48, 193, 166, 83, 48, 242, + 204, 83, 48, 193, 60, 83, 48, 236, 169, 83, 48, 195, 47, 83, 48, 230, + 214, 83, 48, 218, 251, 83, 48, 231, 154, 83, 48, 215, 171, 83, 48, 202, + 91, 83, 48, 203, 35, 199, 209, 248, 112, 83, 48, 207, 144, 83, 48, 248, + 66, 83, 48, 193, 2, 83, 48, 233, 62, 83, 48, 219, 206, 83, 48, 199, 180, + 219, 206, 83, 48, 219, 202, 83, 48, 201, 255, 83, 48, 219, 209, 83, 48, + 193, 64, 83, 48, 232, 139, 83, 48, 234, 156, 83, 48, 229, 203, 83, 48, + 232, 78, 83, 48, 228, 152, 83, 48, 248, 50, 83, 48, 199, 194, 83, 48, + 230, 45, 83, 48, 232, 229, 83, 48, 205, 189, 193, 60, 83, 48, 247, 24, + 83, 48, 231, 24, 83, 48, 232, 195, 83, 48, 248, 112, 83, 48, 205, 153, + 83, 48, 237, 83, 83, 48, 193, 93, 83, 48, 229, 167, 83, 48, 192, 72, 83, + 48, 216, 31, 83, 48, 248, 91, 83, 48, 234, 68, 83, 48, 232, 61, 83, 48, + 197, 218, 83, 48, 235, 50, 83, 48, 207, 125, 83, 48, 213, 0, 83, 48, 233, + 187, 83, 48, 198, 51, 83, 48, 235, 67, 83, 48, 197, 51, 83, 48, 232, 142, + 154, 237, 40, 246, 192, 45, 118, 187, 154, 237, 40, 246, 192, 95, 118, + 60, 154, 237, 40, 246, 192, 45, 118, 82, 24, 187, 154, 237, 40, 246, 192, + 95, 118, 82, 24, 60, 154, 237, 40, 246, 192, 232, 42, 200, 163, 154, 237, + 40, 246, 192, 200, 164, 232, 60, 56, 154, 237, 40, 246, 192, 200, 164, + 232, 60, 60, 154, 237, 40, 246, 192, 200, 164, 232, 60, 219, 200, 154, + 237, 40, 246, 192, 200, 164, 232, 60, 116, 219, 200, 154, 237, 40, 246, + 192, 200, 164, 232, 60, 116, 187, 154, 237, 40, 246, 192, 200, 164, 232, + 60, 110, 219, 200, 154, 237, 40, 246, 192, 210, 249, 154, 201, 242, 154, + 242, 26, 154, 232, 42, 201, 58, 236, 166, 77, 222, 247, 223, 113, 201, + 101, 113, 154, 223, 23, 77, 154, 242, 167, 77, 154, 31, 191, 77, 45, 251, + 65, 248, 5, 50, 251, 65, 248, 5, 45, 54, 251, 65, 248, 5, 50, 54, 251, + 65, 248, 5, 45, 238, 211, 248, 5, 50, 238, 211, 248, 5, 45, 64, 238, 211, + 248, 5, 50, 64, 238, 211, 248, 5, 45, 62, 219, 163, 248, 5, 50, 62, 219, + 163, 248, 5, 209, 11, 77, 231, 93, 77, 45, 198, 37, 203, 98, 248, 5, 50, + 198, 37, 203, 98, 248, 5, 45, 64, 219, 163, 248, 5, 50, 64, 219, 163, + 248, 5, 45, 64, 198, 37, 203, 98, 248, 5, 50, 64, 198, 37, 203, 98, 248, + 5, 45, 64, 51, 248, 5, 50, 64, 51, 248, 5, 193, 137, 237, 170, 207, 13, + 54, 208, 209, 207, 247, 77, 54, 208, 209, 207, 247, 77, 131, 54, 208, + 209, 207, 247, 77, 209, 11, 87, 233, 62, 229, 248, 212, 121, 108, 229, + 248, 212, 121, 109, 229, 248, 212, 121, 139, 229, 248, 212, 121, 137, + 229, 248, 212, 121, 153, 229, 248, 212, 121, 173, 229, 248, 212, 121, + 181, 229, 248, 212, 121, 176, 229, 248, 212, 121, 184, 154, 219, 144, + 163, 77, 154, 206, 175, 163, 77, 154, 237, 50, 163, 77, 154, 234, 34, + 163, 77, 30, 202, 165, 75, 163, 77, 30, 54, 75, 163, 77, 193, 133, 237, + 170, 81, 222, 60, 207, 44, 77, 81, 222, 60, 207, 44, 4, 195, 17, 202, 0, + 77, 81, 222, 60, 207, 44, 87, 116, 230, 37, 81, 222, 60, 207, 44, 4, 195, + 17, 202, 0, 87, 116, 230, 37, 81, 222, 60, 207, 44, 87, 110, 230, 37, 47, + 209, 11, 77, 154, 199, 104, 219, 89, 233, 10, 204, 6, 113, 229, 248, 212, + 121, 199, 90, 229, 248, 212, 121, 197, 28, 229, 248, 212, 121, 198, 244, + 81, 154, 223, 23, 77, 217, 12, 77, 210, 97, 251, 102, 77, 154, 66, 223, + 116, 154, 134, 232, 221, 201, 242, 229, 88, 1, 2, 65, 229, 88, 1, 65, + 229, 88, 1, 2, 70, 229, 88, 1, 70, 229, 88, 1, 2, 69, 229, 88, 1, 69, + 229, 88, 1, 2, 73, 229, 88, 1, 73, 229, 88, 1, 2, 74, 229, 88, 1, 74, + 229, 88, 1, 157, 229, 88, 1, 231, 203, 229, 88, 1, 221, 142, 229, 88, 1, + 231, 16, 229, 88, 1, 220, 208, 229, 88, 1, 230, 146, 229, 88, 1, 221, + 253, 229, 88, 1, 231, 128, 229, 88, 1, 221, 43, 229, 88, 1, 230, 223, + 229, 88, 1, 189, 229, 88, 1, 191, 123, 229, 88, 1, 202, 217, 229, 88, 1, + 191, 30, 229, 88, 1, 200, 255, 229, 88, 1, 190, 251, 229, 88, 1, 205, 63, + 229, 88, 1, 191, 87, 229, 88, 1, 202, 41, 229, 88, 1, 191, 7, 229, 88, 1, + 199, 247, 229, 88, 1, 237, 241, 229, 88, 1, 198, 188, 229, 88, 1, 236, + 255, 229, 88, 1, 2, 197, 90, 229, 88, 1, 197, 90, 229, 88, 1, 235, 45, + 229, 88, 1, 199, 140, 229, 88, 1, 237, 101, 229, 88, 1, 159, 229, 88, 1, + 236, 129, 229, 88, 1, 180, 229, 88, 1, 213, 205, 229, 88, 1, 212, 165, + 229, 88, 1, 214, 107, 229, 88, 1, 213, 30, 229, 88, 1, 144, 229, 88, 1, + 249, 103, 229, 88, 1, 168, 229, 88, 1, 229, 126, 229, 88, 1, 248, 140, + 229, 88, 1, 209, 176, 229, 88, 1, 228, 128, 229, 88, 1, 247, 218, 229, + 88, 1, 208, 158, 229, 88, 1, 229, 213, 229, 88, 1, 248, 223, 229, 88, 1, + 210, 53, 229, 88, 1, 228, 247, 229, 88, 1, 248, 63, 229, 88, 1, 209, 65, + 229, 88, 1, 172, 229, 88, 1, 216, 81, 229, 88, 1, 215, 139, 229, 88, 1, + 216, 213, 229, 88, 1, 215, 251, 229, 88, 1, 2, 169, 229, 88, 1, 169, 229, + 88, 1, 2, 191, 225, 229, 88, 1, 191, 225, 229, 88, 1, 2, 192, 12, 229, + 88, 1, 192, 12, 229, 88, 1, 166, 229, 88, 1, 206, 252, 229, 88, 1, 206, + 63, 229, 88, 1, 207, 108, 229, 88, 1, 206, 157, 229, 88, 1, 2, 193, 187, + 229, 88, 1, 193, 187, 229, 88, 1, 193, 84, 229, 88, 1, 193, 123, 229, 88, + 1, 193, 48, 229, 88, 1, 215, 47, 229, 88, 1, 193, 246, 229, 88, 1, 2, + 157, 229, 88, 1, 2, 221, 253, 33, 222, 22, 195, 17, 202, 0, 77, 33, 222, + 22, 204, 25, 202, 0, 77, 222, 22, 195, 17, 202, 0, 77, 222, 22, 204, 25, + 202, 0, 77, 229, 88, 223, 23, 77, 229, 88, 195, 17, 223, 23, 77, 229, 88, + 236, 214, 191, 242, 222, 22, 54, 228, 58, 71, 1, 2, 65, 71, 1, 65, 71, 1, + 2, 70, 71, 1, 70, 71, 1, 2, 69, 71, 1, 69, 71, 1, 2, 73, 71, 1, 73, 71, + 1, 2, 74, 71, 1, 74, 71, 1, 157, 71, 1, 231, 203, 71, 1, 221, 142, 71, 1, + 231, 16, 71, 1, 220, 208, 71, 1, 230, 146, 71, 1, 221, 253, 71, 1, 231, + 128, 71, 1, 221, 43, 71, 1, 230, 223, 71, 1, 189, 71, 1, 191, 123, 71, 1, + 202, 217, 71, 1, 191, 30, 71, 1, 200, 255, 71, 1, 190, 251, 71, 1, 205, + 63, 71, 1, 191, 87, 71, 1, 202, 41, 71, 1, 191, 7, 71, 1, 199, 247, 71, + 1, 237, 241, 71, 1, 198, 188, 71, 1, 236, 255, 71, 1, 2, 197, 90, 71, 1, + 197, 90, 71, 1, 235, 45, 71, 1, 199, 140, 71, 1, 237, 101, 71, 1, 159, + 71, 1, 236, 129, 71, 1, 180, 71, 1, 213, 205, 71, 1, 212, 165, 71, 1, + 214, 107, 71, 1, 213, 30, 71, 1, 144, 71, 1, 249, 103, 71, 1, 168, 71, 1, + 229, 126, 71, 1, 248, 140, 71, 1, 209, 176, 71, 1, 228, 128, 71, 1, 247, + 218, 71, 1, 208, 158, 71, 1, 229, 213, 71, 1, 248, 223, 71, 1, 210, 53, + 71, 1, 228, 247, 71, 1, 248, 63, 71, 1, 209, 65, 71, 1, 172, 71, 1, 216, + 81, 71, 1, 215, 139, 71, 1, 216, 213, 71, 1, 215, 251, 71, 1, 2, 169, 71, + 1, 169, 71, 1, 2, 191, 225, 71, 1, 191, 225, 71, 1, 2, 192, 12, 71, 1, + 192, 12, 71, 1, 166, 71, 1, 206, 252, 71, 1, 206, 63, 71, 1, 207, 108, + 71, 1, 206, 157, 71, 1, 2, 193, 187, 71, 1, 193, 187, 71, 1, 193, 84, 71, + 1, 193, 123, 71, 1, 193, 48, 71, 1, 215, 47, 71, 1, 193, 246, 71, 1, 2, + 157, 71, 1, 2, 221, 253, 71, 1, 195, 185, 71, 1, 195, 66, 71, 1, 195, + 150, 71, 1, 195, 21, 71, 82, 236, 96, 222, 22, 208, 184, 202, 0, 77, 71, + 223, 23, 77, 71, 195, 17, 223, 23, 77, 71, 236, 214, 221, 3, 248, 40, 1, + 250, 70, 248, 40, 1, 210, 226, 248, 40, 1, 218, 147, 248, 40, 1, 233, + 134, 248, 40, 1, 238, 80, 248, 40, 1, 200, 39, 248, 40, 1, 215, 47, 248, + 40, 1, 170, 248, 40, 1, 232, 14, 248, 40, 1, 222, 125, 248, 40, 1, 230, + 83, 248, 40, 1, 223, 7, 248, 40, 1, 208, 97, 248, 40, 1, 192, 235, 248, + 40, 1, 191, 72, 248, 40, 1, 246, 211, 248, 40, 1, 203, 162, 248, 40, 1, + 148, 248, 40, 1, 191, 166, 248, 40, 1, 247, 145, 248, 40, 1, 206, 3, 248, + 40, 1, 65, 248, 40, 1, 74, 248, 40, 1, 73, 248, 40, 1, 234, 130, 248, 40, + 1, 251, 184, 248, 40, 1, 234, 123, 248, 40, 1, 250, 113, 248, 40, 1, 211, + 9, 248, 40, 1, 251, 81, 248, 40, 1, 234, 61, 248, 40, 1, 251, 71, 248, + 40, 1, 234, 46, 248, 40, 1, 233, 248, 248, 40, 1, 70, 248, 40, 1, 69, + 248, 40, 1, 223, 21, 248, 40, 1, 196, 8, 248, 40, 1, 214, 56, 248, 40, 1, + 230, 227, 248, 40, 1, 223, 171, 248, 40, 1, 186, 4, 75, 56, 248, 40, 1, + 213, 67, 30, 1, 221, 89, 30, 1, 201, 162, 30, 1, 221, 82, 30, 1, 213, + 190, 30, 1, 213, 188, 30, 1, 213, 187, 30, 1, 198, 163, 30, 1, 201, 151, + 30, 1, 206, 234, 30, 1, 206, 229, 30, 1, 206, 226, 30, 1, 206, 219, 30, + 1, 206, 214, 30, 1, 206, 209, 30, 1, 206, 220, 30, 1, 206, 232, 30, 1, + 216, 59, 30, 1, 209, 160, 30, 1, 201, 159, 30, 1, 209, 149, 30, 1, 202, + 155, 30, 1, 201, 156, 30, 1, 223, 193, 30, 1, 242, 232, 30, 1, 201, 166, + 30, 1, 243, 43, 30, 1, 221, 164, 30, 1, 199, 2, 30, 1, 209, 200, 30, 1, + 229, 110, 30, 1, 65, 30, 1, 251, 229, 30, 1, 169, 30, 1, 192, 129, 30, 1, + 234, 23, 30, 1, 73, 30, 1, 192, 67, 30, 1, 192, 80, 30, 1, 74, 30, 1, + 193, 187, 30, 1, 193, 173, 30, 1, 211, 139, 30, 1, 192, 12, 30, 1, 69, + 30, 1, 193, 105, 30, 1, 193, 123, 30, 1, 193, 84, 30, 1, 191, 225, 30, 1, + 233, 201, 30, 1, 192, 33, 30, 1, 70, 30, 232, 218, 30, 1, 201, 160, 30, + 1, 213, 180, 30, 1, 213, 182, 30, 1, 213, 185, 30, 1, 206, 227, 30, 1, + 206, 208, 30, 1, 206, 216, 30, 1, 206, 221, 30, 1, 206, 206, 30, 1, 216, + 52, 30, 1, 216, 49, 30, 1, 216, 53, 30, 1, 222, 45, 30, 1, 209, 155, 30, + 1, 209, 141, 30, 1, 209, 147, 30, 1, 209, 144, 30, 1, 209, 158, 30, 1, + 209, 142, 30, 1, 222, 43, 30, 1, 222, 41, 30, 1, 202, 148, 30, 1, 202, + 146, 30, 1, 202, 138, 30, 1, 202, 143, 30, 1, 202, 153, 30, 1, 210, 139, + 30, 1, 201, 163, 30, 1, 192, 57, 30, 1, 192, 51, 30, 1, 192, 52, 30, 1, + 222, 44, 30, 1, 201, 164, 30, 1, 192, 63, 30, 1, 192, 0, 30, 1, 191, 255, + 30, 1, 192, 2, 30, 1, 191, 212, 30, 1, 191, 213, 30, 1, 191, 216, 30, 1, + 250, 231, 30, 1, 250, 225, 154, 251, 45, 219, 77, 77, 154, 251, 45, 207, + 14, 77, 154, 251, 45, 91, 77, 154, 251, 45, 103, 77, 154, 251, 45, 115, + 77, 154, 251, 45, 232, 90, 77, 154, 251, 45, 198, 49, 77, 154, 251, 45, + 82, 77, 154, 251, 45, 248, 29, 77, 154, 251, 45, 232, 197, 77, 154, 251, + 45, 205, 52, 77, 154, 251, 45, 198, 252, 77, 154, 251, 45, 232, 83, 77, + 154, 251, 45, 229, 188, 77, 154, 251, 45, 234, 164, 77, 154, 251, 45, + 217, 71, 77, 248, 40, 1, 247, 218, 248, 40, 1, 191, 30, 248, 40, 1, 222, + 217, 248, 40, 1, 230, 146, 248, 40, 1, 234, 145, 248, 40, 1, 234, 43, + 248, 40, 1, 211, 76, 248, 40, 1, 211, 80, 248, 40, 1, 223, 49, 248, 40, + 1, 251, 47, 248, 40, 1, 223, 100, 248, 40, 1, 196, 79, 248, 40, 1, 223, + 152, 248, 40, 1, 214, 34, 248, 40, 1, 251, 177, 248, 40, 1, 250, 108, + 248, 40, 1, 251, 98, 248, 40, 1, 211, 102, 248, 40, 1, 211, 83, 248, 40, + 1, 223, 97, 248, 40, 52, 1, 210, 226, 248, 40, 52, 1, 200, 39, 248, 40, + 52, 1, 222, 125, 248, 40, 52, 1, 230, 83, 248, 40, 1, 231, 55, 248, 40, + 1, 219, 136, 248, 40, 1, 190, 231, 248, 40, 52, 1, 232, 14, 248, 40, 1, + 230, 103, 248, 40, 1, 220, 156, 248, 40, 1, 211, 139, 248, 40, 1, 251, + 193, 12, 201, 23, 200, 39, 12, 201, 23, 193, 96, 12, 201, 23, 192, 209, + 12, 201, 23, 247, 158, 12, 201, 23, 200, 147, 12, 201, 23, 228, 48, 12, + 201, 23, 228, 52, 12, 201, 23, 228, 138, 12, 201, 23, 228, 49, 12, 201, + 23, 200, 42, 12, 201, 23, 228, 51, 12, 201, 23, 228, 47, 12, 201, 23, + 228, 136, 12, 201, 23, 228, 50, 12, 201, 23, 228, 46, 12, 201, 23, 215, + 47, 12, 201, 23, 230, 83, 12, 201, 23, 206, 3, 12, 201, 23, 210, 226, 12, + 201, 23, 201, 245, 12, 201, 23, 238, 80, 12, 201, 23, 228, 53, 12, 201, + 23, 229, 146, 12, 201, 23, 200, 51, 12, 201, 23, 200, 124, 12, 201, 23, + 201, 113, 12, 201, 23, 203, 168, 12, 201, 23, 210, 57, 12, 201, 23, 208, + 99, 12, 201, 23, 198, 94, 12, 201, 23, 200, 41, 12, 201, 23, 200, 136, + 12, 201, 23, 228, 63, 12, 201, 23, 228, 45, 12, 201, 23, 209, 221, 12, + 201, 23, 208, 97, 71, 1, 2, 220, 208, 71, 1, 2, 202, 217, 71, 1, 2, 200, + 255, 71, 1, 2, 159, 71, 1, 2, 212, 165, 71, 1, 2, 144, 71, 1, 2, 229, + 126, 71, 1, 2, 228, 128, 71, 1, 2, 229, 213, 71, 1, 2, 228, 247, 71, 1, + 2, 215, 139, 71, 1, 2, 166, 71, 1, 2, 206, 252, 71, 1, 2, 206, 63, 71, 1, + 2, 207, 108, 71, 1, 2, 206, 157, 127, 30, 221, 89, 127, 30, 213, 190, + 127, 30, 198, 163, 127, 30, 206, 234, 127, 30, 216, 59, 127, 30, 209, + 160, 127, 30, 202, 155, 127, 30, 223, 193, 127, 30, 242, 232, 127, 30, + 243, 43, 127, 30, 221, 164, 127, 30, 199, 2, 127, 30, 209, 200, 127, 30, + 229, 110, 127, 30, 221, 90, 65, 127, 30, 213, 191, 65, 127, 30, 198, 164, + 65, 127, 30, 206, 235, 65, 127, 30, 216, 60, 65, 127, 30, 209, 161, 65, + 127, 30, 202, 156, 65, 127, 30, 223, 194, 65, 127, 30, 242, 233, 65, 127, + 30, 243, 44, 65, 127, 30, 221, 165, 65, 127, 30, 199, 3, 65, 127, 30, + 209, 201, 65, 127, 30, 229, 111, 65, 127, 30, 242, 233, 69, 127, 221, 8, + 246, 192, 211, 117, 127, 221, 8, 246, 192, 186, 228, 128, 127, 227, 241, + 108, 127, 227, 241, 109, 127, 227, 241, 139, 127, 227, 241, 137, 127, + 227, 241, 153, 127, 227, 241, 173, 127, 227, 241, 181, 127, 227, 241, + 176, 127, 227, 241, 184, 127, 227, 241, 199, 90, 127, 227, 241, 215, 188, + 127, 227, 241, 232, 202, 127, 227, 241, 193, 141, 127, 227, 241, 193, 28, + 127, 227, 241, 216, 146, 127, 227, 241, 234, 163, 127, 227, 241, 200, + 193, 127, 227, 241, 201, 61, 127, 227, 241, 229, 223, 127, 227, 241, 202, + 30, 127, 227, 241, 214, 213, 127, 227, 241, 201, 226, 127, 227, 241, 232, + 213, 127, 227, 241, 239, 2, 127, 227, 241, 220, 90, 127, 227, 241, 207, + 37, 127, 227, 241, 247, 90, 127, 227, 241, 201, 5, 127, 227, 241, 200, + 173, 127, 227, 241, 234, 33, 127, 227, 241, 207, 27, 127, 227, 241, 251, + 117, 127, 227, 241, 232, 246, 127, 227, 241, 207, 25, 127, 227, 241, 204, + 27, 127, 227, 241, 207, 103, 47, 227, 241, 208, 7, 47, 227, 241, 221, + 116, 47, 227, 241, 205, 84, 47, 227, 241, 221, 3, 47, 31, 199, 91, 211, + 94, 62, 201, 185, 47, 31, 197, 29, 211, 94, 62, 201, 185, 47, 31, 198, + 245, 211, 94, 62, 201, 185, 47, 31, 232, 98, 211, 94, 62, 201, 185, 47, + 31, 232, 231, 211, 94, 62, 201, 185, 47, 31, 202, 116, 211, 94, 62, 201, + 185, 47, 31, 203, 237, 211, 94, 62, 201, 185, 47, 31, 234, 111, 211, 94, + 62, 201, 185, 210, 93, 57, 47, 31, 197, 29, 108, 47, 31, 197, 29, 109, + 47, 31, 197, 29, 139, 47, 31, 197, 29, 137, 47, 31, 197, 29, 153, 47, 31, + 197, 29, 173, 47, 31, 197, 29, 181, 47, 31, 197, 29, 176, 47, 31, 197, + 29, 184, 47, 31, 198, 244, 47, 31, 198, 245, 108, 47, 31, 198, 245, 109, + 47, 31, 198, 245, 139, 47, 31, 198, 245, 137, 47, 31, 198, 245, 153, 47, + 30, 221, 89, 47, 30, 213, 190, 47, 30, 198, 163, 47, 30, 206, 234, 47, + 30, 216, 59, 47, 30, 209, 160, 47, 30, 202, 155, 47, 30, 223, 193, 47, + 30, 242, 232, 47, 30, 243, 43, 47, 30, 221, 164, 47, 30, 199, 2, 47, 30, + 209, 200, 47, 30, 229, 110, 47, 30, 221, 90, 65, 47, 30, 213, 191, 65, + 47, 30, 198, 164, 65, 47, 30, 206, 235, 65, 47, 30, 216, 60, 65, 47, 30, + 209, 161, 65, 47, 30, 202, 156, 65, 47, 30, 223, 194, 65, 47, 30, 242, + 233, 65, 47, 30, 243, 44, 65, 47, 30, 221, 165, 65, 47, 30, 199, 3, 65, + 47, 30, 209, 201, 65, 47, 30, 229, 111, 65, 47, 221, 8, 246, 192, 246, + 199, 47, 221, 8, 246, 192, 222, 151, 47, 30, 223, 194, 69, 221, 8, 201, + 101, 113, 47, 227, 241, 108, 47, 227, 241, 109, 47, 227, 241, 139, 47, + 227, 241, 137, 47, 227, 241, 153, 47, 227, 241, 173, 47, 227, 241, 181, + 47, 227, 241, 176, 47, 227, 241, 184, 47, 227, 241, 199, 90, 47, 227, + 241, 215, 188, 47, 227, 241, 232, 202, 47, 227, 241, 193, 141, 47, 227, + 241, 193, 28, 47, 227, 241, 216, 146, 47, 227, 241, 234, 163, 47, 227, + 241, 200, 193, 47, 227, 241, 201, 61, 47, 227, 241, 229, 223, 47, 227, + 241, 202, 30, 47, 227, 241, 214, 213, 47, 227, 241, 201, 226, 47, 227, + 241, 232, 213, 47, 227, 241, 239, 2, 47, 227, 241, 220, 90, 47, 227, 241, + 205, 50, 47, 227, 241, 217, 76, 47, 227, 241, 233, 0, 47, 227, 241, 200, + 205, 47, 227, 241, 233, 179, 47, 227, 241, 208, 204, 47, 227, 241, 250, + 117, 47, 227, 241, 223, 24, 47, 227, 241, 207, 25, 47, 227, 241, 238, + 217, 47, 227, 241, 238, 204, 47, 227, 241, 229, 103, 47, 227, 241, 246, + 229, 47, 227, 241, 218, 219, 47, 227, 241, 219, 200, 47, 227, 241, 187, + 47, 227, 241, 216, 196, 47, 227, 241, 207, 55, 47, 227, 241, 201, 5, 47, + 227, 241, 200, 173, 47, 227, 241, 234, 33, 47, 227, 241, 207, 27, 47, + 227, 241, 251, 117, 47, 227, 241, 213, 176, 47, 31, 198, 245, 173, 47, + 31, 198, 245, 181, 47, 31, 198, 245, 176, 47, 31, 198, 245, 184, 47, 31, + 232, 97, 47, 31, 232, 98, 108, 47, 31, 232, 98, 109, 47, 31, 232, 98, + 139, 47, 31, 232, 98, 137, 47, 31, 232, 98, 153, 47, 31, 232, 98, 173, + 47, 31, 232, 98, 181, 47, 31, 232, 98, 176, 47, 31, 232, 98, 184, 47, 31, + 232, 230, 154, 199, 104, 16, 39, 222, 249, 154, 199, 104, 16, 39, 233, + 12, 154, 199, 104, 16, 39, 217, 39, 154, 199, 104, 16, 39, 250, 245, 154, + 199, 104, 16, 39, 217, 2, 154, 199, 104, 16, 39, 222, 148, 154, 199, 104, + 16, 39, 222, 149, 154, 199, 104, 16, 39, 250, 109, 154, 199, 104, 16, 39, + 204, 4, 154, 199, 104, 16, 39, 211, 145, 154, 199, 104, 16, 39, 212, 242, + 154, 199, 104, 16, 39, 237, 95, 51, 229, 146, 51, 233, 244, 51, 233, 189, + 219, 94, 219, 121, 57, 47, 71, 65, 47, 71, 70, 47, 71, 69, 47, 71, 73, + 47, 71, 74, 47, 71, 157, 47, 71, 221, 142, 47, 71, 220, 208, 47, 71, 221, + 253, 47, 71, 221, 43, 47, 71, 189, 47, 71, 202, 217, 47, 71, 200, 255, + 47, 71, 205, 63, 47, 71, 202, 41, 47, 71, 199, 247, 47, 71, 198, 188, 47, + 71, 197, 90, 47, 71, 199, 140, 47, 71, 159, 47, 71, 180, 47, 71, 213, + 205, 47, 71, 212, 165, 47, 71, 214, 107, 47, 71, 213, 30, 47, 71, 144, + 47, 71, 229, 126, 47, 71, 228, 128, 47, 71, 229, 213, 47, 71, 228, 247, + 47, 71, 172, 47, 71, 216, 81, 47, 71, 215, 139, 47, 71, 216, 213, 47, 71, + 215, 251, 47, 71, 169, 47, 71, 191, 225, 47, 71, 192, 12, 47, 71, 166, + 47, 71, 206, 252, 47, 71, 206, 63, 47, 71, 207, 108, 47, 71, 206, 157, + 47, 71, 193, 187, 47, 71, 193, 84, 47, 71, 193, 123, 47, 71, 193, 48, 51, + 233, 247, 214, 214, 207, 63, 51, 251, 14, 51, 250, 171, 51, 251, 41, 51, + 252, 111, 51, 223, 102, 51, 223, 69, 51, 196, 76, 51, 233, 216, 51, 234, + 142, 51, 211, 79, 51, 211, 72, 51, 222, 73, 51, 222, 37, 51, 222, 32, 51, + 231, 158, 51, 231, 168, 51, 231, 4, 51, 230, 255, 51, 220, 120, 51, 230, + 246, 51, 221, 107, 51, 221, 106, 51, 221, 105, 51, 221, 104, 51, 230, + 113, 51, 230, 112, 51, 220, 169, 51, 220, 172, 51, 221, 240, 51, 221, 5, + 51, 221, 14, 51, 205, 175, 51, 205, 128, 51, 202, 136, 51, 204, 10, 51, + 204, 9, 51, 237, 237, 51, 237, 36, 51, 236, 97, 51, 198, 76, 51, 214, + 207, 51, 212, 243, 51, 230, 42, 51, 210, 204, 51, 210, 203, 51, 249, 100, + 51, 209, 172, 51, 209, 134, 51, 209, 135, 51, 248, 108, 51, 228, 123, 51, + 228, 117, 51, 247, 173, 51, 228, 101, 51, 229, 174, 51, 209, 232, 51, + 210, 20, 51, 229, 155, 51, 210, 16, 51, 210, 34, 51, 248, 202, 51, 209, + 50, 51, 248, 36, 51, 228, 223, 51, 209, 31, 51, 228, 214, 51, 228, 216, + 51, 217, 89, 51, 217, 85, 51, 217, 94, 51, 217, 25, 51, 217, 56, 51, 216, + 38, 51, 216, 12, 51, 216, 11, 51, 216, 184, 51, 216, 181, 51, 216, 185, + 51, 192, 139, 51, 192, 137, 51, 191, 210, 51, 206, 173, 51, 206, 177, 51, + 206, 30, 51, 206, 23, 51, 207, 52, 51, 207, 49, 51, 193, 139, 154, 199, + 104, 16, 39, 228, 146, 191, 77, 154, 199, 104, 16, 39, 228, 146, 108, + 154, 199, 104, 16, 39, 228, 146, 109, 154, 199, 104, 16, 39, 228, 146, + 139, 154, 199, 104, 16, 39, 228, 146, 137, 154, 199, 104, 16, 39, 228, + 146, 153, 154, 199, 104, 16, 39, 228, 146, 173, 154, 199, 104, 16, 39, + 228, 146, 181, 154, 199, 104, 16, 39, 228, 146, 176, 154, 199, 104, 16, + 39, 228, 146, 184, 154, 199, 104, 16, 39, 228, 146, 199, 90, 154, 199, + 104, 16, 39, 228, 146, 234, 84, 154, 199, 104, 16, 39, 228, 146, 197, 33, + 154, 199, 104, 16, 39, 228, 146, 198, 246, 154, 199, 104, 16, 39, 228, + 146, 232, 84, 154, 199, 104, 16, 39, 228, 146, 232, 234, 154, 199, 104, + 16, 39, 228, 146, 202, 125, 154, 199, 104, 16, 39, 228, 146, 203, 239, + 154, 199, 104, 16, 39, 228, 146, 234, 118, 154, 199, 104, 16, 39, 228, + 146, 213, 158, 154, 199, 104, 16, 39, 228, 146, 197, 28, 154, 199, 104, + 16, 39, 228, 146, 197, 21, 154, 199, 104, 16, 39, 228, 146, 197, 16, 154, + 199, 104, 16, 39, 228, 146, 197, 18, 154, 199, 104, 16, 39, 228, 146, + 197, 23, 51, 228, 137, 51, 237, 241, 51, 250, 113, 51, 164, 51, 210, 255, + 51, 210, 58, 51, 236, 132, 51, 236, 133, 201, 184, 51, 236, 133, 238, + 142, 51, 223, 21, 51, 233, 247, 214, 214, 229, 175, 51, 233, 247, 214, + 214, 200, 62, 51, 233, 247, 214, 214, 199, 207, 51, 233, 247, 214, 214, + 216, 180, 51, 238, 206, 51, 210, 211, 251, 84, 51, 180, 51, 215, 140, 65, + 51, 172, 51, 157, 51, 222, 0, 51, 216, 253, 51, 231, 146, 51, 247, 96, + 51, 221, 255, 51, 209, 222, 51, 214, 58, 51, 215, 140, 233, 134, 51, 215, + 140, 232, 14, 51, 216, 122, 51, 221, 192, 51, 228, 53, 51, 221, 144, 51, + 216, 83, 51, 231, 18, 51, 198, 190, 51, 215, 140, 170, 51, 216, 3, 51, + 236, 142, 51, 221, 71, 51, 232, 137, 51, 213, 68, 51, 215, 140, 218, 147, + 51, 216, 0, 51, 242, 151, 51, 221, 57, 51, 216, 1, 201, 184, 51, 242, + 152, 201, 184, 51, 218, 148, 201, 184, 51, 221, 58, 201, 184, 51, 216, 1, + 238, 142, 51, 242, 152, 238, 142, 51, 218, 148, 238, 142, 51, 221, 58, + 238, 142, 51, 218, 148, 138, 206, 3, 51, 218, 148, 138, 206, 4, 201, 184, + 51, 168, 51, 220, 253, 51, 215, 150, 51, 230, 195, 51, 207, 163, 51, 207, + 164, 138, 206, 3, 51, 207, 164, 138, 206, 4, 201, 184, 51, 208, 171, 51, + 212, 206, 51, 215, 140, 206, 3, 51, 215, 142, 51, 208, 117, 51, 212, 99, + 51, 215, 140, 196, 8, 51, 215, 73, 51, 220, 158, 51, 215, 74, 216, 184, + 51, 208, 116, 51, 212, 98, 51, 215, 140, 193, 221, 51, 215, 67, 51, 220, + 156, 51, 215, 68, 216, 184, 51, 222, 126, 211, 122, 51, 218, 148, 211, + 122, 51, 251, 98, 51, 248, 9, 51, 247, 18, 51, 246, 251, 51, 247, 146, + 138, 221, 192, 51, 242, 51, 51, 237, 155, 51, 230, 96, 51, 144, 51, 228, + 138, 51, 223, 134, 51, 221, 78, 51, 221, 58, 247, 62, 51, 220, 210, 51, + 219, 22, 51, 219, 21, 51, 219, 6, 51, 218, 163, 51, 216, 254, 202, 65, + 51, 216, 37, 51, 215, 216, 51, 209, 220, 51, 209, 68, 51, 208, 242, 51, + 208, 240, 51, 201, 175, 51, 200, 154, 51, 193, 125, 51, 196, 9, 138, 218, + 147, 51, 41, 138, 218, 147, 154, 199, 104, 16, 39, 237, 159, 108, 154, + 199, 104, 16, 39, 237, 159, 109, 154, 199, 104, 16, 39, 237, 159, 139, + 154, 199, 104, 16, 39, 237, 159, 137, 154, 199, 104, 16, 39, 237, 159, + 153, 154, 199, 104, 16, 39, 237, 159, 173, 154, 199, 104, 16, 39, 237, + 159, 181, 154, 199, 104, 16, 39, 237, 159, 176, 154, 199, 104, 16, 39, + 237, 159, 184, 154, 199, 104, 16, 39, 237, 159, 199, 90, 154, 199, 104, + 16, 39, 237, 159, 234, 84, 154, 199, 104, 16, 39, 237, 159, 197, 33, 154, + 199, 104, 16, 39, 237, 159, 198, 246, 154, 199, 104, 16, 39, 237, 159, + 232, 84, 154, 199, 104, 16, 39, 237, 159, 232, 234, 154, 199, 104, 16, + 39, 237, 159, 202, 125, 154, 199, 104, 16, 39, 237, 159, 203, 239, 154, + 199, 104, 16, 39, 237, 159, 234, 118, 154, 199, 104, 16, 39, 237, 159, + 213, 158, 154, 199, 104, 16, 39, 237, 159, 197, 28, 154, 199, 104, 16, + 39, 237, 159, 197, 21, 154, 199, 104, 16, 39, 237, 159, 197, 16, 154, + 199, 104, 16, 39, 237, 159, 197, 18, 154, 199, 104, 16, 39, 237, 159, + 197, 23, 154, 199, 104, 16, 39, 237, 159, 197, 24, 154, 199, 104, 16, 39, + 237, 159, 197, 19, 154, 199, 104, 16, 39, 237, 159, 197, 20, 154, 199, + 104, 16, 39, 237, 159, 197, 27, 154, 199, 104, 16, 39, 237, 159, 197, 22, + 154, 199, 104, 16, 39, 237, 159, 198, 244, 154, 199, 104, 16, 39, 237, + 159, 198, 242, 51, 231, 185, 229, 149, 39, 199, 29, 238, 184, 229, 187, + 229, 149, 39, 199, 29, 207, 95, 234, 163, 229, 149, 39, 236, 225, 250, + 133, 199, 29, 248, 197, 229, 149, 39, 191, 238, 232, 129, 229, 149, 39, + 193, 168, 229, 149, 39, 239, 5, 229, 149, 39, 199, 29, 250, 196, 229, + 149, 39, 228, 230, 198, 82, 229, 149, 39, 2, 199, 189, 229, 149, 39, 197, + 253, 229, 149, 39, 210, 51, 229, 149, 39, 201, 99, 229, 149, 39, 233, 2, + 229, 149, 39, 230, 172, 209, 14, 229, 149, 39, 215, 237, 229, 149, 39, + 234, 32, 229, 149, 39, 232, 130, 229, 149, 39, 193, 21, 211, 94, 199, 29, + 237, 96, 229, 149, 39, 250, 249, 229, 149, 39, 238, 240, 229, 149, 39, + 248, 97, 198, 210, 229, 149, 39, 230, 193, 229, 149, 39, 201, 203, 251, + 13, 229, 149, 39, 207, 17, 229, 149, 39, 223, 96, 229, 149, 39, 230, 172, + 199, 189, 229, 149, 39, 215, 164, 238, 209, 229, 149, 39, 230, 172, 208, + 217, 229, 149, 39, 199, 29, 252, 13, 193, 141, 229, 149, 39, 199, 29, + 242, 179, 232, 202, 229, 149, 39, 223, 110, 229, 149, 39, 235, 20, 229, + 149, 39, 207, 20, 229, 149, 39, 230, 172, 208, 247, 229, 149, 39, 208, + 190, 229, 149, 39, 237, 175, 80, 199, 29, 219, 108, 229, 149, 39, 199, + 29, 233, 40, 229, 149, 39, 211, 51, 229, 149, 39, 211, 154, 229, 149, 39, + 237, 66, 229, 149, 39, 237, 88, 229, 149, 39, 223, 125, 229, 149, 39, + 247, 249, 229, 149, 39, 242, 28, 118, 216, 187, 229, 149, 39, 231, 153, + 198, 82, 229, 149, 39, 208, 128, 196, 63, 229, 149, 39, 211, 50, 229, + 149, 39, 199, 29, 193, 107, 229, 149, 39, 207, 8, 229, 149, 39, 199, 29, + 247, 24, 229, 149, 39, 199, 29, 250, 192, 198, 204, 229, 149, 39, 199, + 29, 221, 241, 201, 65, 215, 168, 229, 149, 39, 237, 31, 229, 149, 39, + 199, 29, 217, 28, 217, 90, 229, 149, 39, 252, 14, 229, 149, 39, 199, 29, + 193, 159, 229, 149, 39, 199, 29, 231, 108, 193, 64, 229, 149, 39, 199, + 29, 222, 157, 220, 19, 229, 149, 39, 236, 174, 229, 149, 39, 219, 95, + 229, 149, 39, 223, 99, 197, 172, 229, 149, 39, 2, 208, 217, 229, 149, 39, + 251, 202, 242, 18, 229, 149, 39, 248, 200, 242, 18, 11, 5, 223, 25, 11, + 5, 223, 17, 11, 5, 70, 11, 5, 223, 52, 11, 5, 223, 195, 11, 5, 223, 178, + 11, 5, 223, 197, 11, 5, 223, 196, 11, 5, 250, 132, 11, 5, 250, 83, 11, 5, + 65, 11, 5, 251, 15, 11, 5, 196, 74, 11, 5, 196, 78, 11, 5, 196, 75, 11, + 5, 211, 20, 11, 5, 210, 237, 11, 5, 74, 11, 5, 211, 67, 11, 5, 233, 180, + 11, 5, 73, 11, 5, 193, 0, 11, 5, 248, 100, 11, 5, 248, 95, 11, 5, 248, + 140, 11, 5, 248, 113, 11, 5, 248, 129, 11, 5, 248, 128, 11, 5, 248, 131, + 11, 5, 248, 130, 11, 5, 249, 14, 11, 5, 249, 6, 11, 5, 249, 103, 11, 5, + 249, 39, 11, 5, 247, 186, 11, 5, 247, 190, 11, 5, 247, 187, 11, 5, 248, + 33, 11, 5, 248, 14, 11, 5, 248, 63, 11, 5, 248, 41, 11, 5, 248, 156, 11, + 5, 248, 223, 11, 5, 248, 169, 11, 5, 247, 169, 11, 5, 247, 163, 11, 5, + 247, 218, 11, 5, 247, 184, 11, 5, 247, 177, 11, 5, 247, 182, 11, 5, 247, + 151, 11, 5, 247, 149, 11, 5, 247, 156, 11, 5, 247, 154, 11, 5, 247, 152, + 11, 5, 247, 153, 11, 5, 209, 109, 11, 5, 209, 105, 11, 5, 209, 176, 11, + 5, 209, 121, 11, 5, 209, 140, 11, 5, 209, 167, 11, 5, 209, 163, 11, 5, + 210, 79, 11, 5, 210, 63, 11, 5, 168, 11, 5, 210, 127, 11, 5, 208, 138, + 11, 5, 208, 140, 11, 5, 208, 139, 11, 5, 209, 7, 11, 5, 208, 245, 11, 5, + 209, 65, 11, 5, 209, 26, 11, 5, 208, 124, 11, 5, 208, 119, 11, 5, 208, + 158, 11, 5, 208, 137, 11, 5, 208, 129, 11, 5, 208, 135, 11, 5, 208, 101, + 11, 5, 208, 100, 11, 5, 208, 105, 11, 5, 208, 104, 11, 5, 208, 102, 11, + 5, 208, 103, 11, 5, 248, 244, 11, 5, 248, 243, 11, 5, 248, 250, 11, 5, + 248, 245, 11, 5, 248, 247, 11, 5, 248, 246, 11, 5, 248, 249, 11, 5, 248, + 248, 11, 5, 249, 0, 11, 5, 248, 255, 11, 5, 249, 3, 11, 5, 249, 1, 11, 5, + 248, 235, 11, 5, 248, 237, 11, 5, 248, 236, 11, 5, 248, 240, 11, 5, 248, + 239, 11, 5, 248, 242, 11, 5, 248, 241, 11, 5, 248, 251, 11, 5, 248, 254, + 11, 5, 248, 252, 11, 5, 248, 231, 11, 5, 248, 230, 11, 5, 248, 238, 11, + 5, 248, 234, 11, 5, 248, 232, 11, 5, 248, 233, 11, 5, 248, 227, 11, 5, + 248, 226, 11, 5, 248, 229, 11, 5, 248, 228, 11, 5, 214, 171, 11, 5, 214, + 170, 11, 5, 214, 176, 11, 5, 214, 172, 11, 5, 214, 173, 11, 5, 214, 175, + 11, 5, 214, 174, 11, 5, 214, 179, 11, 5, 214, 178, 11, 5, 214, 181, 11, + 5, 214, 180, 11, 5, 214, 167, 11, 5, 214, 166, 11, 5, 214, 169, 11, 5, + 214, 168, 11, 5, 214, 160, 11, 5, 214, 159, 11, 5, 214, 164, 11, 5, 214, + 163, 11, 5, 214, 161, 11, 5, 214, 162, 11, 5, 214, 154, 11, 5, 214, 153, + 11, 5, 214, 158, 11, 5, 214, 157, 11, 5, 214, 155, 11, 5, 214, 156, 11, + 5, 229, 35, 11, 5, 229, 34, 11, 5, 229, 40, 11, 5, 229, 36, 11, 5, 229, + 37, 11, 5, 229, 39, 11, 5, 229, 38, 11, 5, 229, 43, 11, 5, 229, 42, 11, + 5, 229, 45, 11, 5, 229, 44, 11, 5, 229, 26, 11, 5, 229, 28, 11, 5, 229, + 27, 11, 5, 229, 31, 11, 5, 229, 30, 11, 5, 229, 33, 11, 5, 229, 32, 11, + 5, 229, 22, 11, 5, 229, 21, 11, 5, 229, 29, 11, 5, 229, 25, 11, 5, 229, + 23, 11, 5, 229, 24, 11, 5, 229, 16, 11, 5, 229, 20, 11, 5, 229, 19, 11, + 5, 229, 17, 11, 5, 229, 18, 11, 5, 216, 6, 11, 5, 216, 5, 11, 5, 216, 81, + 11, 5, 216, 14, 11, 5, 216, 45, 11, 5, 216, 63, 11, 5, 216, 61, 11, 5, + 217, 11, 11, 5, 217, 5, 11, 5, 172, 11, 5, 217, 51, 11, 5, 215, 101, 11, + 5, 215, 100, 11, 5, 215, 104, 11, 5, 215, 102, 11, 5, 215, 179, 11, 5, + 215, 152, 11, 5, 215, 251, 11, 5, 215, 186, 11, 5, 216, 133, 11, 5, 216, + 213, 11, 5, 215, 81, 11, 5, 215, 75, 11, 5, 215, 139, 11, 5, 215, 97, 11, + 5, 215, 90, 11, 5, 215, 95, 11, 5, 215, 51, 11, 5, 215, 50, 11, 5, 215, + 56, 11, 5, 215, 53, 11, 5, 232, 188, 11, 5, 232, 182, 11, 5, 232, 238, + 11, 5, 232, 204, 11, 5, 233, 31, 11, 5, 233, 22, 11, 5, 233, 68, 11, 5, + 233, 36, 11, 5, 232, 81, 11, 5, 232, 135, 11, 5, 232, 115, 11, 5, 232, + 31, 11, 5, 232, 30, 11, 5, 232, 48, 11, 5, 232, 36, 11, 5, 232, 34, 11, + 5, 232, 35, 11, 5, 232, 17, 11, 5, 232, 16, 11, 5, 232, 20, 11, 5, 232, + 18, 11, 5, 195, 29, 11, 5, 195, 23, 11, 5, 195, 66, 11, 5, 195, 38, 11, + 5, 195, 55, 11, 5, 195, 50, 11, 5, 195, 58, 11, 5, 195, 57, 11, 5, 195, + 159, 11, 5, 195, 154, 11, 5, 195, 185, 11, 5, 195, 172, 11, 5, 195, 1, + 11, 5, 194, 253, 11, 5, 195, 21, 11, 5, 195, 3, 11, 5, 195, 70, 11, 5, + 195, 138, 11, 5, 193, 239, 11, 5, 193, 237, 11, 5, 193, 246, 11, 5, 193, + 242, 11, 5, 193, 240, 11, 5, 193, 241, 11, 5, 193, 226, 11, 5, 193, 225, + 11, 5, 193, 232, 11, 5, 193, 231, 11, 5, 193, 229, 11, 5, 193, 230, 11, + 5, 236, 167, 11, 5, 236, 152, 11, 5, 236, 255, 11, 5, 236, 195, 11, 5, + 236, 230, 11, 5, 236, 235, 11, 5, 236, 234, 11, 5, 237, 166, 11, 5, 237, + 160, 11, 5, 237, 241, 11, 5, 237, 186, 11, 5, 235, 25, 11, 5, 235, 26, + 11, 5, 236, 96, 11, 5, 235, 73, 11, 5, 236, 129, 11, 5, 236, 99, 11, 5, + 237, 29, 11, 5, 237, 101, 11, 5, 237, 51, 11, 5, 235, 16, 11, 5, 235, 14, + 11, 5, 235, 45, 11, 5, 235, 24, 11, 5, 235, 19, 11, 5, 235, 22, 11, 5, + 198, 120, 11, 5, 198, 112, 11, 5, 198, 188, 11, 5, 198, 130, 11, 5, 198, + 171, 11, 5, 198, 173, 11, 5, 198, 172, 11, 5, 199, 166, 11, 5, 199, 151, + 11, 5, 199, 247, 11, 5, 199, 178, 11, 5, 197, 65, 11, 5, 197, 64, 11, 5, + 197, 67, 11, 5, 197, 66, 11, 5, 198, 35, 11, 5, 198, 24, 11, 5, 159, 11, + 5, 198, 48, 11, 5, 199, 50, 11, 5, 199, 140, 11, 5, 199, 77, 11, 5, 197, + 48, 11, 5, 197, 43, 11, 5, 197, 90, 11, 5, 197, 63, 11, 5, 197, 49, 11, + 5, 197, 60, 11, 5, 237, 118, 11, 5, 237, 117, 11, 5, 237, 123, 11, 5, + 237, 119, 11, 5, 237, 120, 11, 5, 237, 122, 11, 5, 237, 121, 11, 5, 237, + 139, 11, 5, 237, 138, 11, 5, 237, 146, 11, 5, 237, 140, 11, 5, 237, 108, + 11, 5, 237, 110, 11, 5, 237, 109, 11, 5, 237, 113, 11, 5, 237, 112, 11, + 5, 237, 116, 11, 5, 237, 114, 11, 5, 237, 131, 11, 5, 237, 134, 11, 5, + 237, 132, 11, 5, 237, 104, 11, 5, 237, 103, 11, 5, 237, 111, 11, 5, 237, + 107, 11, 5, 237, 105, 11, 5, 237, 106, 11, 5, 214, 126, 11, 5, 214, 125, + 11, 5, 214, 133, 11, 5, 214, 128, 11, 5, 214, 129, 11, 5, 214, 130, 11, + 5, 214, 142, 11, 5, 214, 141, 11, 5, 214, 148, 11, 5, 214, 143, 11, 5, + 214, 118, 11, 5, 214, 117, 11, 5, 214, 124, 11, 5, 214, 119, 11, 5, 214, + 134, 11, 5, 214, 140, 11, 5, 214, 138, 11, 5, 214, 110, 11, 5, 214, 109, + 11, 5, 214, 115, 11, 5, 214, 113, 11, 5, 214, 111, 11, 5, 214, 112, 11, + 5, 229, 1, 11, 5, 229, 0, 11, 5, 229, 7, 11, 5, 229, 2, 11, 5, 229, 4, + 11, 5, 229, 3, 11, 5, 229, 6, 11, 5, 229, 5, 11, 5, 229, 13, 11, 5, 229, + 11, 11, 5, 229, 15, 11, 5, 229, 14, 11, 5, 228, 250, 11, 5, 228, 251, 11, + 5, 228, 254, 11, 5, 228, 253, 11, 5, 228, 255, 11, 5, 229, 8, 11, 5, 229, + 10, 11, 5, 229, 9, 11, 5, 228, 249, 11, 5, 213, 149, 11, 5, 213, 147, 11, + 5, 213, 205, 11, 5, 213, 152, 11, 5, 213, 179, 11, 5, 213, 193, 11, 5, + 213, 192, 11, 5, 214, 186, 11, 5, 180, 11, 5, 214, 204, 11, 5, 212, 109, + 11, 5, 212, 111, 11, 5, 212, 110, 11, 5, 212, 254, 11, 5, 212, 238, 11, + 5, 213, 30, 11, 5, 213, 9, 11, 5, 214, 60, 11, 5, 214, 107, 11, 5, 214, + 83, 11, 5, 212, 104, 11, 5, 212, 100, 11, 5, 212, 165, 11, 5, 212, 108, + 11, 5, 212, 106, 11, 5, 212, 107, 11, 5, 229, 66, 11, 5, 229, 65, 11, 5, + 229, 71, 11, 5, 229, 67, 11, 5, 229, 68, 11, 5, 229, 70, 11, 5, 229, 69, + 11, 5, 229, 77, 11, 5, 229, 75, 11, 5, 229, 79, 11, 5, 229, 78, 11, 5, + 229, 58, 11, 5, 229, 60, 11, 5, 229, 59, 11, 5, 229, 62, 11, 5, 229, 64, + 11, 5, 229, 63, 11, 5, 229, 72, 11, 5, 229, 74, 11, 5, 229, 73, 11, 5, + 229, 54, 11, 5, 229, 53, 11, 5, 229, 61, 11, 5, 229, 57, 11, 5, 229, 55, + 11, 5, 229, 56, 11, 5, 229, 48, 11, 5, 229, 47, 11, 5, 229, 52, 11, 5, + 229, 51, 11, 5, 229, 49, 11, 5, 229, 50, 11, 5, 219, 63, 11, 5, 219, 55, + 11, 5, 219, 122, 11, 5, 219, 74, 11, 5, 219, 113, 11, 5, 219, 112, 11, 5, + 219, 116, 11, 5, 219, 114, 11, 5, 219, 237, 11, 5, 219, 225, 11, 5, 171, + 11, 5, 219, 248, 11, 5, 218, 180, 11, 5, 218, 179, 11, 5, 218, 182, 11, + 5, 218, 181, 11, 5, 218, 227, 11, 5, 218, 212, 11, 5, 219, 19, 11, 5, + 218, 233, 11, 5, 219, 140, 11, 5, 219, 214, 11, 5, 219, 160, 11, 5, 218, + 174, 11, 5, 218, 172, 11, 5, 218, 203, 11, 5, 218, 178, 11, 5, 218, 176, + 11, 5, 218, 177, 11, 5, 218, 152, 11, 5, 218, 151, 11, 5, 218, 162, 11, + 5, 218, 155, 11, 5, 218, 153, 11, 5, 218, 154, 11, 5, 230, 242, 11, 5, + 230, 241, 11, 5, 231, 16, 11, 5, 230, 254, 11, 5, 231, 8, 11, 5, 231, 7, + 11, 5, 231, 10, 11, 5, 231, 9, 11, 5, 231, 155, 11, 5, 231, 150, 11, 5, + 231, 203, 11, 5, 231, 166, 11, 5, 230, 119, 11, 5, 230, 118, 11, 5, 230, + 121, 11, 5, 230, 120, 11, 5, 230, 198, 11, 5, 230, 196, 11, 5, 230, 223, + 11, 5, 230, 208, 11, 5, 231, 94, 11, 5, 231, 92, 11, 5, 231, 128, 11, 5, + 231, 105, 11, 5, 230, 107, 11, 5, 230, 106, 11, 5, 230, 146, 11, 5, 230, + 117, 11, 5, 230, 108, 11, 5, 230, 116, 11, 5, 221, 96, 11, 5, 221, 91, + 11, 5, 221, 142, 11, 5, 221, 110, 11, 5, 221, 123, 11, 5, 221, 127, 11, + 5, 221, 125, 11, 5, 222, 23, 11, 5, 222, 5, 11, 5, 157, 11, 5, 222, 52, + 11, 5, 220, 178, 11, 5, 220, 183, 11, 5, 220, 180, 11, 5, 221, 4, 11, 5, + 220, 255, 11, 5, 221, 43, 11, 5, 221, 12, 11, 5, 221, 216, 11, 5, 221, + 199, 11, 5, 221, 253, 11, 5, 221, 220, 11, 5, 220, 164, 11, 5, 220, 160, + 11, 5, 220, 208, 11, 5, 220, 177, 11, 5, 220, 168, 11, 5, 220, 173, 11, + 5, 231, 76, 11, 5, 231, 75, 11, 5, 231, 80, 11, 5, 231, 77, 11, 5, 231, + 79, 11, 5, 231, 78, 11, 5, 231, 87, 11, 5, 231, 86, 11, 5, 231, 90, 11, + 5, 231, 88, 11, 5, 231, 67, 11, 5, 231, 66, 11, 5, 231, 69, 11, 5, 231, + 68, 11, 5, 231, 72, 11, 5, 231, 71, 11, 5, 231, 74, 11, 5, 231, 73, 11, + 5, 231, 82, 11, 5, 231, 81, 11, 5, 231, 85, 11, 5, 231, 83, 11, 5, 231, + 62, 11, 5, 231, 61, 11, 5, 231, 70, 11, 5, 231, 65, 11, 5, 231, 63, 11, + 5, 231, 64, 11, 5, 216, 100, 11, 5, 216, 101, 11, 5, 216, 119, 11, 5, + 216, 118, 11, 5, 216, 121, 11, 5, 216, 120, 11, 5, 216, 91, 11, 5, 216, + 93, 11, 5, 216, 92, 11, 5, 216, 96, 11, 5, 216, 95, 11, 5, 216, 98, 11, + 5, 216, 97, 11, 5, 216, 102, 11, 5, 216, 104, 11, 5, 216, 103, 11, 5, + 216, 87, 11, 5, 216, 86, 11, 5, 216, 94, 11, 5, 216, 90, 11, 5, 216, 88, + 11, 5, 216, 89, 11, 5, 228, 73, 11, 5, 228, 72, 11, 5, 228, 79, 11, 5, + 228, 74, 11, 5, 228, 76, 11, 5, 228, 75, 11, 5, 228, 78, 11, 5, 228, 77, + 11, 5, 228, 84, 11, 5, 228, 83, 11, 5, 228, 86, 11, 5, 228, 85, 11, 5, + 228, 65, 11, 5, 228, 64, 11, 5, 228, 67, 11, 5, 228, 66, 11, 5, 228, 69, + 11, 5, 228, 68, 11, 5, 228, 71, 11, 5, 228, 70, 11, 5, 228, 80, 11, 5, + 228, 82, 11, 5, 228, 81, 11, 5, 213, 255, 11, 5, 214, 1, 11, 5, 214, 0, + 11, 5, 214, 44, 11, 5, 214, 42, 11, 5, 214, 54, 11, 5, 214, 47, 11, 5, + 213, 216, 11, 5, 213, 215, 11, 5, 213, 217, 11, 5, 213, 227, 11, 5, 213, + 224, 11, 5, 213, 235, 11, 5, 213, 229, 11, 5, 214, 35, 11, 5, 214, 41, + 11, 5, 214, 37, 11, 5, 229, 85, 11, 5, 229, 104, 11, 5, 229, 113, 11, 5, + 229, 232, 11, 5, 229, 221, 11, 5, 144, 11, 5, 229, 244, 11, 5, 228, 103, + 11, 5, 228, 102, 11, 5, 228, 105, 11, 5, 228, 104, 11, 5, 228, 149, 11, + 5, 228, 140, 11, 5, 228, 247, 11, 5, 228, 212, 11, 5, 229, 151, 11, 5, + 229, 213, 11, 5, 229, 163, 11, 5, 193, 144, 11, 5, 193, 129, 11, 5, 193, + 187, 11, 5, 193, 156, 11, 5, 192, 245, 11, 5, 192, 247, 11, 5, 192, 246, + 11, 5, 193, 13, 11, 5, 193, 48, 11, 5, 193, 24, 11, 5, 193, 97, 11, 5, + 193, 123, 11, 5, 193, 104, 11, 5, 191, 15, 11, 5, 191, 14, 11, 5, 191, + 30, 11, 5, 191, 18, 11, 5, 191, 23, 11, 5, 191, 25, 11, 5, 191, 24, 11, + 5, 191, 96, 11, 5, 191, 93, 11, 5, 191, 123, 11, 5, 191, 104, 11, 5, 190, + 244, 11, 5, 190, 246, 11, 5, 190, 245, 11, 5, 191, 2, 11, 5, 191, 1, 11, + 5, 191, 7, 11, 5, 191, 3, 11, 5, 191, 73, 11, 5, 191, 87, 11, 5, 191, 79, + 11, 5, 190, 240, 11, 5, 190, 239, 11, 5, 190, 251, 11, 5, 190, 243, 11, + 5, 190, 241, 11, 5, 190, 242, 11, 5, 190, 226, 11, 5, 190, 225, 11, 5, + 190, 231, 11, 5, 190, 229, 11, 5, 190, 227, 11, 5, 190, 228, 11, 5, 242, + 207, 11, 5, 242, 200, 11, 5, 242, 237, 11, 5, 242, 220, 11, 5, 242, 234, + 11, 5, 242, 228, 11, 5, 242, 236, 11, 5, 242, 235, 11, 5, 247, 30, 11, 5, + 247, 21, 11, 5, 247, 112, 11, 5, 247, 63, 11, 5, 238, 136, 11, 5, 238, + 138, 11, 5, 238, 137, 11, 5, 238, 202, 11, 5, 238, 190, 11, 5, 242, 51, + 11, 5, 238, 222, 11, 5, 246, 213, 11, 5, 246, 250, 11, 5, 246, 219, 11, + 5, 238, 107, 11, 5, 238, 105, 11, 5, 238, 148, 11, 5, 238, 134, 11, 5, + 238, 113, 11, 5, 238, 129, 11, 5, 238, 83, 11, 5, 238, 82, 11, 5, 238, + 96, 11, 5, 238, 90, 11, 5, 238, 84, 11, 5, 238, 86, 11, 5, 190, 209, 11, + 5, 190, 208, 11, 5, 190, 215, 11, 5, 190, 210, 11, 5, 190, 212, 11, 5, + 190, 211, 11, 5, 190, 214, 11, 5, 190, 213, 11, 5, 190, 221, 11, 5, 190, + 220, 11, 5, 190, 224, 11, 5, 190, 222, 11, 5, 190, 205, 11, 5, 190, 207, + 11, 5, 190, 206, 11, 5, 190, 216, 11, 5, 190, 219, 11, 5, 190, 217, 11, + 5, 190, 198, 11, 5, 190, 202, 11, 5, 190, 201, 11, 5, 190, 199, 11, 5, + 190, 200, 11, 5, 190, 192, 11, 5, 190, 191, 11, 5, 190, 197, 11, 5, 190, + 195, 11, 5, 190, 193, 11, 5, 190, 194, 11, 5, 212, 20, 11, 5, 212, 19, + 11, 5, 212, 25, 11, 5, 212, 21, 11, 5, 212, 22, 11, 5, 212, 24, 11, 5, + 212, 23, 11, 5, 212, 30, 11, 5, 212, 29, 11, 5, 212, 33, 11, 5, 212, 32, + 11, 5, 212, 13, 11, 5, 212, 14, 11, 5, 212, 17, 11, 5, 212, 18, 11, 5, + 212, 26, 11, 5, 212, 28, 11, 5, 212, 8, 11, 5, 212, 16, 11, 5, 212, 12, + 11, 5, 212, 9, 11, 5, 212, 10, 11, 5, 212, 3, 11, 5, 212, 2, 11, 5, 212, + 7, 11, 5, 212, 6, 11, 5, 212, 4, 11, 5, 212, 5, 11, 5, 202, 133, 11, 5, + 173, 11, 5, 202, 217, 11, 5, 202, 137, 11, 5, 202, 197, 11, 5, 202, 200, + 11, 5, 202, 198, 11, 5, 205, 117, 11, 5, 205, 101, 11, 5, 189, 11, 5, + 205, 125, 11, 5, 200, 183, 11, 5, 200, 185, 11, 5, 200, 184, 11, 5, 202, + 3, 11, 5, 201, 248, 11, 5, 202, 41, 11, 5, 202, 9, 11, 5, 203, 233, 11, + 5, 205, 63, 11, 5, 204, 8, 11, 5, 200, 158, 11, 5, 200, 155, 11, 5, 200, + 255, 11, 5, 200, 182, 11, 5, 200, 162, 11, 5, 200, 170, 11, 5, 200, 53, + 11, 5, 200, 52, 11, 5, 200, 123, 11, 5, 200, 61, 11, 5, 200, 55, 11, 5, + 200, 60, 11, 5, 201, 131, 11, 5, 201, 130, 11, 5, 201, 137, 11, 5, 201, + 132, 11, 5, 201, 134, 11, 5, 201, 136, 11, 5, 201, 135, 11, 5, 201, 146, + 11, 5, 201, 144, 11, 5, 201, 170, 11, 5, 201, 147, 11, 5, 201, 126, 11, + 5, 201, 125, 11, 5, 201, 129, 11, 5, 201, 127, 11, 5, 201, 140, 11, 5, + 201, 143, 11, 5, 201, 141, 11, 5, 201, 122, 11, 5, 201, 120, 11, 5, 201, + 124, 11, 5, 201, 123, 11, 5, 201, 115, 11, 5, 201, 114, 11, 5, 201, 119, + 11, 5, 201, 118, 11, 5, 201, 116, 11, 5, 201, 117, 11, 5, 191, 66, 11, 5, + 191, 65, 11, 5, 191, 71, 11, 5, 191, 68, 11, 5, 191, 45, 11, 5, 191, 47, + 11, 5, 191, 46, 11, 5, 191, 50, 11, 5, 191, 49, 11, 5, 191, 54, 11, 5, + 191, 51, 11, 5, 191, 59, 11, 5, 191, 58, 11, 5, 191, 62, 11, 5, 191, 60, + 11, 5, 191, 41, 11, 5, 191, 40, 11, 5, 191, 48, 11, 5, 191, 44, 11, 5, + 191, 42, 11, 5, 191, 43, 11, 5, 191, 33, 11, 5, 191, 32, 11, 5, 191, 37, + 11, 5, 191, 36, 11, 5, 191, 34, 11, 5, 191, 35, 11, 5, 243, 85, 11, 5, + 243, 81, 11, 5, 246, 209, 11, 5, 246, 195, 11, 5, 242, 252, 11, 5, 242, + 251, 11, 5, 242, 254, 11, 5, 242, 253, 11, 5, 243, 11, 11, 5, 243, 10, + 11, 5, 243, 20, 11, 5, 243, 15, 11, 5, 243, 54, 11, 5, 243, 51, 11, 5, + 243, 79, 11, 5, 243, 62, 11, 5, 242, 246, 11, 5, 243, 0, 11, 5, 242, 250, + 11, 5, 242, 247, 11, 5, 242, 249, 11, 5, 242, 239, 11, 5, 242, 238, 11, + 5, 242, 243, 11, 5, 242, 242, 11, 5, 242, 240, 11, 5, 242, 241, 11, 5, + 206, 100, 11, 5, 206, 104, 11, 5, 206, 82, 11, 5, 206, 83, 11, 5, 206, + 87, 11, 5, 206, 86, 11, 5, 206, 90, 11, 5, 206, 88, 11, 5, 206, 94, 11, + 5, 206, 93, 11, 5, 206, 99, 11, 5, 206, 95, 11, 5, 206, 78, 11, 5, 206, + 76, 11, 5, 206, 84, 11, 5, 206, 81, 11, 5, 206, 79, 11, 5, 206, 80, 11, + 5, 206, 71, 11, 5, 206, 70, 11, 5, 206, 75, 11, 5, 206, 74, 11, 5, 206, + 72, 11, 5, 206, 73, 11, 5, 212, 229, 11, 5, 212, 228, 11, 5, 212, 231, + 11, 5, 212, 230, 11, 5, 212, 220, 11, 5, 212, 222, 11, 5, 212, 221, 11, + 5, 212, 224, 11, 5, 212, 223, 11, 5, 212, 227, 11, 5, 212, 226, 11, 5, + 212, 214, 11, 5, 212, 213, 11, 5, 212, 219, 11, 5, 212, 217, 11, 5, 212, + 215, 11, 5, 212, 216, 11, 5, 212, 208, 11, 5, 212, 207, 11, 5, 212, 212, + 11, 5, 212, 211, 11, 5, 212, 209, 11, 5, 212, 210, 11, 5, 203, 118, 11, + 5, 203, 113, 11, 5, 203, 160, 11, 5, 203, 131, 11, 5, 202, 244, 11, 5, + 202, 246, 11, 5, 202, 245, 11, 5, 203, 19, 11, 5, 203, 14, 11, 5, 203, + 51, 11, 5, 203, 39, 11, 5, 203, 86, 11, 5, 203, 79, 11, 5, 203, 108, 11, + 5, 203, 95, 11, 5, 202, 240, 11, 5, 202, 237, 11, 5, 203, 0, 11, 5, 202, + 243, 11, 5, 202, 241, 11, 5, 202, 242, 11, 5, 202, 220, 11, 5, 202, 219, + 11, 5, 202, 226, 11, 5, 202, 223, 11, 5, 202, 221, 11, 5, 202, 222, 11, + 5, 207, 125, 11, 5, 207, 118, 11, 5, 166, 11, 5, 207, 131, 11, 5, 206, + 33, 11, 5, 206, 35, 11, 5, 206, 34, 11, 5, 206, 118, 11, 5, 206, 106, 11, + 5, 206, 157, 11, 5, 206, 122, 11, 5, 207, 6, 11, 5, 207, 108, 11, 5, 207, + 48, 11, 5, 206, 25, 11, 5, 206, 22, 11, 5, 206, 63, 11, 5, 206, 32, 11, + 5, 206, 28, 11, 5, 206, 29, 11, 5, 206, 7, 11, 5, 206, 6, 11, 5, 206, 12, + 11, 5, 206, 10, 11, 5, 206, 8, 11, 5, 206, 9, 11, 5, 222, 205, 11, 5, + 222, 204, 11, 5, 222, 217, 11, 5, 222, 206, 11, 5, 222, 213, 11, 5, 222, + 212, 11, 5, 222, 215, 11, 5, 222, 214, 11, 5, 222, 143, 11, 5, 222, 142, + 11, 5, 222, 145, 11, 5, 222, 144, 11, 5, 222, 161, 11, 5, 222, 159, 11, + 5, 222, 174, 11, 5, 222, 163, 11, 5, 222, 136, 11, 5, 222, 134, 11, 5, + 222, 155, 11, 5, 222, 141, 11, 5, 222, 138, 11, 5, 222, 139, 11, 5, 222, + 128, 11, 5, 222, 127, 11, 5, 222, 132, 11, 5, 222, 131, 11, 5, 222, 129, + 11, 5, 222, 130, 11, 5, 208, 43, 11, 5, 208, 41, 11, 5, 208, 51, 11, 5, + 208, 44, 11, 5, 208, 48, 11, 5, 208, 47, 11, 5, 208, 50, 11, 5, 208, 49, + 11, 5, 207, 248, 11, 5, 207, 245, 11, 5, 207, 250, 11, 5, 207, 249, 11, + 5, 208, 30, 11, 5, 208, 29, 11, 5, 208, 39, 11, 5, 208, 33, 11, 5, 207, + 240, 11, 5, 207, 236, 11, 5, 208, 27, 11, 5, 207, 244, 11, 5, 207, 242, + 11, 5, 207, 243, 11, 5, 207, 220, 11, 5, 207, 218, 11, 5, 207, 230, 11, + 5, 207, 223, 11, 5, 207, 221, 11, 5, 207, 222, 11, 5, 222, 194, 11, 5, + 222, 193, 11, 5, 222, 200, 11, 5, 222, 195, 11, 5, 222, 197, 11, 5, 222, + 196, 11, 5, 222, 199, 11, 5, 222, 198, 11, 5, 222, 185, 11, 5, 222, 187, + 11, 5, 222, 186, 11, 5, 222, 190, 11, 5, 222, 189, 11, 5, 222, 192, 11, + 5, 222, 191, 11, 5, 222, 181, 11, 5, 222, 180, 11, 5, 222, 188, 11, 5, + 222, 184, 11, 5, 222, 182, 11, 5, 222, 183, 11, 5, 222, 177, 11, 5, 222, + 176, 11, 5, 222, 179, 11, 5, 222, 178, 11, 5, 213, 121, 11, 5, 213, 120, + 11, 5, 213, 128, 11, 5, 213, 122, 11, 5, 213, 124, 11, 5, 213, 123, 11, + 5, 213, 127, 11, 5, 213, 125, 11, 5, 213, 110, 11, 5, 213, 111, 11, 5, + 213, 116, 11, 5, 213, 115, 11, 5, 213, 119, 11, 5, 213, 117, 11, 5, 213, + 105, 11, 5, 213, 114, 11, 5, 213, 109, 11, 5, 213, 106, 11, 5, 213, 107, + 11, 5, 213, 100, 11, 5, 213, 99, 11, 5, 213, 104, 11, 5, 213, 103, 11, 5, + 213, 101, 11, 5, 213, 102, 11, 5, 212, 55, 11, 5, 212, 54, 11, 5, 212, + 68, 11, 5, 212, 59, 11, 5, 212, 64, 11, 5, 212, 63, 11, 5, 212, 66, 11, + 5, 212, 65, 11, 5, 212, 40, 11, 5, 212, 42, 11, 5, 212, 41, 11, 5, 212, + 47, 11, 5, 212, 46, 11, 5, 212, 52, 11, 5, 212, 48, 11, 5, 212, 38, 11, + 5, 212, 36, 11, 5, 212, 45, 11, 5, 212, 39, 11, 5, 192, 198, 11, 5, 192, + 197, 11, 5, 192, 207, 11, 5, 192, 200, 11, 5, 192, 202, 11, 5, 192, 201, + 11, 5, 192, 204, 11, 5, 192, 203, 11, 5, 192, 186, 11, 5, 192, 187, 11, + 5, 192, 191, 11, 5, 192, 190, 11, 5, 192, 196, 11, 5, 192, 194, 11, 5, + 192, 163, 11, 5, 192, 161, 11, 5, 192, 176, 11, 5, 192, 166, 11, 5, 192, + 164, 11, 5, 192, 165, 11, 5, 192, 18, 11, 5, 192, 16, 11, 5, 192, 33, 11, + 5, 192, 19, 11, 5, 192, 27, 11, 5, 192, 26, 11, 5, 192, 30, 11, 5, 192, + 28, 11, 5, 191, 198, 11, 5, 191, 197, 11, 5, 191, 201, 11, 5, 191, 199, + 11, 5, 191, 240, 11, 5, 191, 235, 11, 5, 192, 12, 11, 5, 191, 245, 11, 5, + 191, 189, 11, 5, 191, 185, 11, 5, 191, 225, 11, 5, 191, 196, 11, 5, 191, + 192, 11, 5, 191, 193, 11, 5, 191, 169, 11, 5, 191, 168, 11, 5, 191, 176, + 11, 5, 191, 172, 11, 5, 191, 170, 11, 5, 191, 171, 11, 48, 208, 30, 11, + 48, 219, 122, 11, 48, 221, 96, 11, 48, 212, 59, 11, 48, 238, 90, 11, 48, + 201, 137, 11, 48, 231, 73, 11, 48, 231, 105, 11, 48, 216, 81, 11, 48, + 228, 73, 11, 48, 218, 154, 11, 48, 248, 231, 11, 48, 215, 186, 11, 48, + 192, 12, 11, 48, 208, 124, 11, 48, 228, 67, 11, 48, 199, 166, 11, 48, + 231, 203, 11, 48, 190, 243, 11, 48, 238, 83, 11, 48, 237, 106, 11, 48, + 247, 182, 11, 48, 231, 69, 11, 48, 212, 48, 11, 48, 197, 90, 11, 48, 211, + 67, 11, 48, 222, 181, 11, 48, 191, 2, 11, 48, 208, 101, 11, 48, 229, 33, + 11, 48, 192, 18, 11, 48, 193, 241, 11, 48, 202, 226, 11, 48, 195, 138, + 11, 48, 191, 123, 11, 48, 222, 174, 11, 48, 212, 12, 11, 48, 222, 179, + 11, 48, 230, 198, 11, 48, 222, 199, 11, 48, 193, 48, 11, 48, 235, 45, 11, + 48, 202, 242, 11, 48, 219, 116, 11, 48, 238, 96, 11, 48, 238, 137, 11, + 48, 242, 220, 11, 48, 228, 70, 11, 48, 203, 118, 11, 48, 190, 242, 11, + 48, 203, 39, 11, 48, 243, 79, 11, 48, 190, 212, 11, 48, 214, 175, 11, 48, + 221, 253, 219, 64, 1, 249, 103, 219, 64, 1, 168, 219, 64, 1, 209, 219, + 219, 64, 1, 237, 241, 219, 64, 1, 199, 247, 219, 64, 1, 199, 44, 219, 64, + 1, 231, 203, 219, 64, 1, 157, 219, 64, 1, 221, 190, 219, 64, 1, 223, 4, + 219, 64, 1, 247, 112, 219, 64, 1, 246, 209, 219, 64, 1, 234, 247, 219, + 64, 1, 197, 164, 219, 64, 1, 197, 153, 219, 64, 1, 172, 219, 64, 1, 180, + 219, 64, 1, 171, 219, 64, 1, 189, 219, 64, 1, 191, 71, 219, 64, 1, 191, + 123, 219, 64, 1, 214, 54, 219, 64, 1, 144, 219, 64, 1, 192, 220, 219, 64, + 1, 229, 145, 219, 64, 1, 233, 68, 219, 64, 1, 193, 187, 219, 64, 1, 203, + 160, 219, 64, 1, 169, 219, 64, 1, 231, 54, 219, 64, 1, 65, 219, 64, 1, + 251, 229, 219, 64, 1, 73, 219, 64, 1, 233, 201, 219, 64, 1, 70, 219, 64, + 1, 74, 219, 64, 1, 69, 219, 64, 1, 196, 148, 219, 64, 1, 196, 137, 219, + 64, 1, 211, 139, 219, 64, 1, 163, 215, 55, 198, 188, 219, 64, 1, 163, + 214, 249, 209, 65, 219, 64, 1, 163, 215, 55, 238, 95, 219, 64, 1, 163, + 215, 55, 248, 63, 219, 64, 1, 163, 215, 55, 180, 219, 64, 1, 163, 215, + 55, 222, 226, 219, 64, 208, 145, 242, 26, 219, 64, 208, 145, 232, 42, + 201, 58, 58, 5, 234, 145, 58, 5, 234, 141, 58, 5, 229, 183, 58, 5, 193, + 112, 58, 5, 193, 111, 58, 5, 210, 40, 58, 5, 248, 147, 58, 5, 248, 207, + 58, 5, 216, 240, 58, 5, 220, 248, 58, 5, 216, 113, 58, 5, 231, 141, 58, + 5, 233, 11, 58, 5, 195, 145, 58, 5, 199, 116, 58, 5, 199, 26, 58, 5, 237, + 13, 58, 5, 237, 10, 58, 5, 219, 204, 58, 5, 207, 79, 58, 5, 237, 86, 58, + 5, 214, 139, 58, 5, 205, 45, 58, 5, 203, 106, 58, 5, 191, 84, 58, 5, 191, + 61, 58, 5, 246, 242, 58, 5, 222, 236, 58, 5, 213, 135, 58, 5, 192, 77, + 58, 5, 221, 244, 58, 5, 214, 27, 58, 5, 231, 120, 58, 5, 216, 192, 58, 5, + 214, 96, 58, 5, 212, 76, 58, 5, 70, 58, 5, 223, 134, 58, 5, 229, 126, 58, + 5, 229, 96, 58, 5, 193, 84, 58, 5, 193, 66, 58, 5, 209, 176, 58, 5, 248, + 145, 58, 5, 248, 140, 58, 5, 216, 233, 58, 5, 220, 245, 58, 5, 216, 110, + 58, 5, 231, 137, 58, 5, 232, 238, 58, 5, 195, 66, 58, 5, 198, 188, 58, 5, + 199, 6, 58, 5, 237, 5, 58, 5, 237, 9, 58, 5, 219, 122, 58, 5, 206, 252, + 58, 5, 236, 255, 58, 5, 214, 133, 58, 5, 202, 217, 58, 5, 203, 76, 58, 5, + 191, 30, 58, 5, 191, 57, 58, 5, 242, 237, 58, 5, 222, 217, 58, 5, 213, + 128, 58, 5, 192, 33, 58, 5, 221, 142, 58, 5, 214, 19, 58, 5, 231, 16, 58, + 5, 216, 81, 58, 5, 213, 205, 58, 5, 212, 68, 58, 5, 65, 58, 5, 251, 81, + 58, 5, 214, 49, 58, 5, 144, 58, 5, 230, 23, 58, 5, 193, 187, 58, 5, 193, + 162, 58, 5, 168, 58, 5, 248, 153, 58, 5, 249, 103, 58, 5, 216, 248, 58, + 5, 220, 253, 58, 5, 220, 251, 58, 5, 216, 117, 58, 5, 231, 145, 58, 5, + 233, 68, 58, 5, 195, 185, 58, 5, 199, 247, 58, 5, 199, 44, 58, 5, 237, + 23, 58, 5, 237, 12, 58, 5, 171, 58, 5, 166, 58, 5, 237, 241, 58, 5, 214, + 148, 58, 5, 189, 58, 5, 203, 160, 58, 5, 191, 123, 58, 5, 191, 71, 58, 5, + 247, 112, 58, 5, 223, 4, 58, 5, 213, 144, 58, 5, 169, 58, 5, 157, 58, 5, + 222, 61, 58, 5, 214, 33, 58, 5, 231, 203, 58, 5, 172, 58, 5, 180, 58, 5, + 212, 88, 58, 5, 211, 76, 58, 5, 211, 71, 58, 5, 228, 220, 58, 5, 193, 29, + 58, 5, 193, 25, 58, 5, 209, 30, 58, 5, 248, 143, 58, 5, 248, 49, 58, 5, + 216, 228, 58, 5, 220, 243, 58, 5, 216, 106, 58, 5, 231, 133, 58, 5, 232, + 123, 58, 5, 195, 5, 58, 5, 198, 54, 58, 5, 198, 230, 58, 5, 237, 2, 58, + 5, 237, 7, 58, 5, 218, 240, 58, 5, 206, 129, 58, 5, 236, 102, 58, 5, 214, + 120, 58, 5, 202, 11, 58, 5, 203, 43, 58, 5, 191, 4, 58, 5, 191, 52, 58, + 5, 238, 227, 58, 5, 222, 164, 58, 5, 213, 118, 58, 5, 191, 246, 58, 5, + 221, 17, 58, 5, 214, 17, 58, 5, 230, 210, 58, 5, 215, 194, 58, 5, 213, + 13, 58, 5, 212, 49, 58, 5, 69, 58, 5, 196, 109, 58, 5, 228, 128, 58, 5, + 228, 111, 58, 5, 193, 0, 58, 5, 192, 249, 58, 5, 208, 158, 58, 5, 248, + 142, 58, 5, 247, 218, 58, 5, 216, 227, 58, 5, 220, 241, 58, 5, 216, 105, + 58, 5, 231, 132, 58, 5, 232, 48, 58, 5, 193, 246, 58, 5, 197, 90, 58, 5, + 198, 208, 58, 5, 237, 0, 58, 5, 237, 6, 58, 5, 218, 203, 58, 5, 206, 63, + 58, 5, 235, 45, 58, 5, 214, 115, 58, 5, 200, 255, 58, 5, 203, 0, 58, 5, + 190, 251, 58, 5, 191, 48, 58, 5, 238, 148, 58, 5, 222, 155, 58, 5, 213, + 114, 58, 5, 191, 225, 58, 5, 220, 208, 58, 5, 214, 16, 58, 5, 230, 146, + 58, 5, 215, 139, 58, 5, 212, 165, 58, 5, 212, 45, 58, 5, 74, 58, 5, 211, + 93, 58, 5, 213, 231, 58, 5, 228, 247, 58, 5, 228, 223, 58, 5, 193, 48, + 58, 5, 193, 30, 58, 5, 209, 65, 58, 5, 248, 144, 58, 5, 248, 63, 58, 5, + 216, 229, 58, 5, 220, 244, 58, 5, 216, 108, 58, 5, 231, 135, 58, 5, 231, + 134, 58, 5, 232, 135, 58, 5, 195, 21, 58, 5, 159, 58, 5, 198, 236, 58, 5, + 237, 3, 58, 5, 237, 8, 58, 5, 219, 19, 58, 5, 206, 157, 58, 5, 236, 129, + 58, 5, 214, 124, 58, 5, 202, 41, 58, 5, 203, 51, 58, 5, 191, 7, 58, 5, + 191, 54, 58, 5, 242, 51, 58, 5, 222, 174, 58, 5, 213, 119, 58, 5, 192, + 12, 58, 5, 221, 43, 58, 5, 214, 18, 58, 5, 230, 223, 58, 5, 215, 251, 58, + 5, 213, 30, 58, 5, 212, 52, 58, 5, 73, 58, 5, 234, 61, 58, 5, 214, 38, + 58, 5, 229, 213, 58, 5, 229, 166, 58, 5, 193, 123, 58, 5, 193, 106, 58, + 5, 210, 53, 58, 5, 248, 148, 58, 5, 248, 223, 58, 5, 216, 241, 58, 5, + 220, 249, 58, 5, 220, 247, 58, 5, 216, 114, 58, 5, 231, 142, 58, 5, 231, + 140, 58, 5, 233, 18, 58, 5, 195, 150, 58, 5, 199, 140, 58, 5, 199, 28, + 58, 5, 237, 14, 58, 5, 237, 11, 58, 5, 219, 214, 58, 5, 207, 108, 58, 5, + 237, 101, 58, 5, 214, 140, 58, 5, 205, 63, 58, 5, 203, 108, 58, 5, 191, + 87, 58, 5, 191, 62, 58, 5, 246, 250, 58, 5, 222, 238, 58, 5, 213, 137, + 58, 5, 192, 80, 58, 5, 221, 253, 58, 5, 214, 28, 58, 5, 214, 24, 58, 5, + 231, 128, 58, 5, 231, 114, 58, 5, 216, 213, 58, 5, 214, 107, 58, 5, 212, + 77, 58, 5, 214, 56, 58, 5, 219, 166, 58, 242, 26, 58, 232, 42, 201, 58, + 58, 208, 8, 77, 58, 5, 214, 123, 233, 68, 58, 5, 214, 123, 157, 58, 5, + 214, 123, 202, 11, 58, 16, 233, 7, 58, 16, 221, 242, 58, 16, 198, 135, + 58, 16, 213, 172, 58, 16, 249, 45, 58, 16, 233, 67, 58, 16, 199, 240, 58, + 16, 237, 191, 58, 16, 236, 101, 58, 16, 220, 184, 58, 16, 198, 58, 58, + 16, 236, 128, 58, 16, 222, 165, 58, 17, 191, 77, 58, 17, 108, 58, 17, + 109, 58, 17, 139, 58, 17, 137, 58, 17, 153, 58, 17, 173, 58, 17, 181, 58, + 17, 176, 58, 17, 184, 58, 5, 214, 123, 172, 58, 5, 214, 123, 236, 129, + 42, 6, 1, 191, 81, 42, 2, 1, 191, 81, 42, 6, 1, 234, 242, 42, 2, 1, 234, + 242, 42, 6, 1, 207, 13, 234, 244, 42, 2, 1, 207, 13, 234, 244, 42, 6, 1, + 223, 55, 42, 2, 1, 223, 55, 42, 6, 1, 236, 146, 42, 2, 1, 236, 146, 42, + 6, 1, 215, 202, 196, 124, 42, 2, 1, 215, 202, 196, 124, 42, 6, 1, 247, + 232, 211, 99, 42, 2, 1, 247, 232, 211, 99, 42, 6, 1, 214, 68, 192, 62, + 42, 2, 1, 214, 68, 192, 62, 42, 6, 1, 192, 59, 4, 249, 97, 192, 62, 42, + 2, 1, 192, 59, 4, 249, 97, 192, 62, 42, 6, 1, 223, 53, 192, 95, 42, 2, 1, + 223, 53, 192, 95, 42, 6, 1, 207, 13, 191, 225, 42, 2, 1, 207, 13, 191, + 225, 42, 6, 1, 223, 53, 65, 42, 2, 1, 223, 53, 65, 42, 6, 1, 242, 171, + 219, 59, 191, 190, 42, 2, 1, 242, 171, 219, 59, 191, 190, 42, 6, 1, 248, + 83, 191, 190, 42, 2, 1, 248, 83, 191, 190, 42, 6, 1, 223, 53, 242, 171, + 219, 59, 191, 190, 42, 2, 1, 223, 53, 242, 171, 219, 59, 191, 190, 42, 6, + 1, 192, 14, 42, 2, 1, 192, 14, 42, 6, 1, 207, 13, 197, 157, 42, 2, 1, + 207, 13, 197, 157, 42, 6, 1, 202, 27, 237, 101, 42, 2, 1, 202, 27, 237, + 101, 42, 6, 1, 202, 27, 234, 97, 42, 2, 1, 202, 27, 234, 97, 42, 6, 1, + 202, 27, 234, 72, 42, 2, 1, 202, 27, 234, 72, 42, 6, 1, 215, 206, 74, 42, + 2, 1, 215, 206, 74, 42, 6, 1, 248, 116, 74, 42, 2, 1, 248, 116, 74, 42, + 6, 1, 54, 215, 206, 74, 42, 2, 1, 54, 215, 206, 74, 42, 1, 215, 115, 74, + 33, 42, 193, 223, 33, 42, 199, 91, 216, 30, 57, 33, 42, 228, 110, 216, + 30, 57, 33, 42, 198, 225, 216, 30, 57, 202, 90, 250, 143, 33, 42, 1, 196, + 121, 223, 197, 33, 42, 1, 70, 33, 42, 1, 192, 33, 33, 42, 1, 69, 33, 42, + 1, 229, 240, 57, 33, 42, 1, 192, 58, 33, 42, 1, 202, 27, 57, 33, 42, 1, + 211, 99, 33, 42, 222, 9, 33, 42, 210, 60, 42, 222, 9, 42, 210, 60, 42, 6, + 1, 235, 1, 42, 2, 1, 235, 1, 42, 6, 1, 234, 233, 42, 2, 1, 234, 233, 42, + 6, 1, 191, 38, 42, 2, 1, 191, 38, 42, 6, 1, 247, 10, 42, 2, 1, 247, 10, + 42, 6, 1, 234, 229, 42, 2, 1, 234, 229, 42, 6, 1, 199, 141, 4, 82, 106, + 42, 2, 1, 199, 141, 4, 82, 106, 42, 6, 1, 197, 37, 42, 2, 1, 197, 37, 42, + 6, 1, 197, 132, 42, 2, 1, 197, 132, 42, 6, 1, 197, 137, 42, 2, 1, 197, + 137, 42, 6, 1, 199, 146, 42, 2, 1, 199, 146, 42, 6, 1, 228, 91, 42, 2, 1, + 228, 91, 42, 6, 1, 202, 232, 42, 2, 1, 202, 232, 42, 6, 1, 54, 74, 42, 2, + 1, 54, 74, 42, 6, 1, 238, 167, 74, 42, 2, 1, 238, 167, 74, 59, 1, 42, + 229, 240, 57, 59, 1, 42, 202, 27, 57, 33, 42, 1, 234, 138, 33, 42, 1, + 223, 53, 73, 26, 1, 65, 26, 1, 157, 26, 1, 69, 26, 1, 220, 208, 26, 1, + 234, 145, 26, 1, 207, 79, 26, 1, 199, 221, 26, 1, 74, 26, 1, 212, 68, 26, + 1, 70, 26, 1, 171, 26, 1, 168, 26, 1, 206, 190, 26, 1, 206, 237, 26, 1, + 219, 203, 26, 1, 216, 191, 26, 1, 199, 240, 26, 1, 214, 146, 26, 1, 213, + 142, 26, 1, 218, 147, 26, 1, 200, 156, 26, 1, 215, 139, 26, 1, 203, 71, + 26, 1, 202, 217, 26, 1, 203, 81, 26, 1, 203, 243, 26, 1, 220, 125, 26, 1, + 221, 216, 26, 1, 212, 133, 26, 1, 212, 165, 26, 1, 213, 113, 26, 1, 191, + 243, 26, 1, 203, 0, 26, 1, 191, 194, 26, 1, 169, 26, 1, 212, 202, 26, 1, + 221, 202, 26, 1, 209, 223, 26, 1, 213, 135, 26, 1, 212, 182, 26, 1, 208, + 149, 26, 1, 192, 253, 26, 1, 210, 40, 26, 1, 233, 11, 26, 1, 206, 63, 26, + 1, 218, 203, 26, 1, 216, 81, 26, 1, 213, 205, 26, 1, 207, 15, 26, 1, 207, + 158, 26, 1, 221, 226, 26, 1, 213, 238, 26, 1, 214, 33, 26, 1, 214, 54, + 26, 1, 203, 51, 26, 1, 208, 154, 26, 1, 232, 48, 26, 1, 232, 128, 26, 1, + 193, 187, 26, 1, 180, 26, 1, 219, 122, 26, 1, 209, 176, 26, 1, 218, 232, + 26, 1, 221, 43, 26, 1, 216, 238, 26, 1, 207, 50, 26, 1, 216, 167, 26, 1, + 172, 26, 1, 198, 188, 26, 1, 221, 142, 26, 1, 215, 251, 26, 1, 216, 246, + 26, 1, 199, 68, 26, 1, 220, 253, 26, 1, 199, 90, 26, 1, 212, 168, 26, 1, + 205, 145, 26, 1, 233, 64, 26, 1, 221, 0, 26, 1, 221, 33, 26, 33, 87, 221, + 10, 26, 33, 87, 197, 75, 26, 213, 141, 26, 232, 42, 201, 58, 26, 242, 35, + 26, 242, 26, 26, 204, 20, 26, 208, 8, 77, 59, 1, 243, 32, 163, 192, 22, + 209, 123, 59, 1, 243, 32, 163, 192, 107, 209, 123, 59, 1, 243, 32, 163, + 192, 22, 203, 132, 59, 1, 243, 32, 163, 192, 107, 203, 132, 59, 1, 243, + 32, 163, 192, 22, 208, 27, 59, 1, 243, 32, 163, 192, 107, 208, 27, 59, 1, + 243, 32, 163, 192, 22, 206, 63, 59, 1, 243, 32, 163, 192, 107, 206, 63, + 59, 1, 233, 159, 235, 94, 163, 164, 59, 1, 136, 235, 94, 163, 164, 59, 1, + 216, 68, 235, 94, 163, 164, 59, 1, 131, 235, 94, 163, 164, 59, 1, 233, + 158, 235, 94, 163, 164, 59, 1, 233, 159, 235, 94, 219, 192, 163, 164, 59, + 1, 136, 235, 94, 219, 192, 163, 164, 59, 1, 216, 68, 235, 94, 219, 192, + 163, 164, 59, 1, 131, 235, 94, 219, 192, 163, 164, 59, 1, 233, 158, 235, + 94, 219, 192, 163, 164, 59, 1, 233, 159, 219, 192, 163, 164, 59, 1, 136, + 219, 192, 163, 164, 59, 1, 216, 68, 219, 192, 163, 164, 59, 1, 131, 219, + 192, 163, 164, 59, 1, 233, 158, 219, 192, 163, 164, 59, 1, 75, 81, 164, + 59, 1, 75, 202, 92, 59, 1, 75, 228, 209, 164, 59, 1, 110, 50, 238, 211, + 251, 64, 59, 1, 207, 142, 132, 55, 59, 1, 207, 142, 143, 55, 59, 1, 207, + 142, 233, 175, 77, 59, 1, 207, 142, 223, 65, 233, 175, 77, 59, 1, 131, + 223, 65, 233, 175, 77, 59, 1, 201, 33, 24, 136, 198, 74, 59, 1, 201, 33, + 24, 131, 198, 74, 8, 6, 1, 234, 132, 251, 141, 8, 2, 1, 234, 132, 251, + 141, 8, 6, 1, 234, 132, 251, 178, 8, 2, 1, 234, 132, 251, 178, 8, 6, 1, + 229, 164, 8, 2, 1, 229, 164, 8, 6, 1, 196, 237, 8, 2, 1, 196, 237, 8, 6, + 1, 197, 244, 8, 2, 1, 197, 244, 8, 6, 1, 238, 145, 8, 2, 1, 238, 145, 8, + 6, 1, 238, 146, 4, 242, 26, 8, 2, 1, 238, 146, 4, 242, 26, 8, 1, 2, 6, + 233, 134, 8, 1, 2, 6, 206, 3, 8, 6, 1, 252, 154, 8, 2, 1, 252, 154, 8, 6, + 1, 251, 18, 8, 2, 1, 251, 18, 8, 6, 1, 250, 113, 8, 2, 1, 250, 113, 8, 6, + 1, 250, 96, 8, 2, 1, 250, 96, 8, 6, 1, 250, 97, 4, 228, 209, 164, 8, 2, + 1, 250, 97, 4, 228, 209, 164, 8, 6, 1, 250, 81, 8, 2, 1, 250, 81, 8, 6, + 1, 207, 13, 247, 146, 4, 236, 96, 8, 2, 1, 207, 13, 247, 146, 4, 236, 96, + 8, 6, 1, 222, 126, 4, 105, 8, 2, 1, 222, 126, 4, 105, 8, 6, 1, 222, 126, + 4, 236, 250, 105, 8, 2, 1, 222, 126, 4, 236, 250, 105, 8, 6, 1, 222, 126, + 4, 201, 23, 24, 236, 250, 105, 8, 2, 1, 222, 126, 4, 201, 23, 24, 236, + 250, 105, 8, 6, 1, 247, 230, 170, 8, 2, 1, 247, 230, 170, 8, 6, 1, 220, + 119, 4, 136, 105, 8, 2, 1, 220, 119, 4, 136, 105, 8, 6, 1, 186, 4, 177, + 201, 23, 210, 245, 8, 2, 1, 186, 4, 177, 201, 23, 210, 245, 8, 6, 1, 186, + 4, 218, 236, 8, 2, 1, 186, 4, 218, 236, 8, 6, 1, 211, 76, 8, 2, 1, 211, + 76, 8, 6, 1, 210, 227, 4, 201, 23, 198, 211, 237, 42, 8, 2, 1, 210, 227, + 4, 201, 23, 198, 211, 237, 42, 8, 6, 1, 210, 227, 4, 232, 148, 8, 2, 1, + 210, 227, 4, 232, 148, 8, 6, 1, 210, 227, 4, 201, 177, 199, 210, 8, 2, 1, + 210, 227, 4, 201, 177, 199, 210, 8, 6, 1, 208, 98, 4, 201, 23, 198, 211, + 237, 42, 8, 2, 1, 208, 98, 4, 201, 23, 198, 211, 237, 42, 8, 6, 1, 208, + 98, 4, 236, 250, 105, 8, 2, 1, 208, 98, 4, 236, 250, 105, 8, 6, 1, 207, + 217, 206, 111, 8, 2, 1, 207, 217, 206, 111, 8, 6, 1, 206, 44, 206, 111, + 8, 2, 1, 206, 44, 206, 111, 8, 6, 1, 196, 9, 4, 236, 250, 105, 8, 2, 1, + 196, 9, 4, 236, 250, 105, 8, 6, 1, 193, 232, 8, 2, 1, 193, 232, 8, 6, 1, + 195, 30, 191, 166, 8, 2, 1, 195, 30, 191, 166, 8, 6, 1, 198, 229, 4, 105, + 8, 2, 1, 198, 229, 4, 105, 8, 6, 1, 198, 229, 4, 201, 23, 198, 211, 237, + 42, 8, 2, 1, 198, 229, 4, 201, 23, 198, 211, 237, 42, 8, 6, 1, 195, 139, + 8, 2, 1, 195, 139, 8, 6, 1, 233, 213, 8, 2, 1, 233, 213, 8, 6, 1, 223, + 40, 8, 2, 1, 223, 40, 8, 6, 1, 239, 9, 8, 2, 1, 239, 9, 59, 1, 196, 41, + 8, 2, 1, 235, 33, 8, 2, 1, 218, 186, 8, 2, 1, 215, 108, 8, 2, 1, 212, + 124, 8, 2, 1, 206, 43, 8, 1, 2, 6, 206, 43, 8, 2, 1, 197, 72, 8, 2, 1, + 196, 116, 8, 6, 1, 223, 87, 238, 80, 8, 2, 1, 223, 87, 238, 80, 8, 6, 1, + 223, 87, 233, 134, 8, 2, 1, 223, 87, 233, 134, 8, 6, 1, 223, 87, 232, 14, + 8, 6, 1, 152, 223, 87, 232, 14, 8, 2, 1, 152, 223, 87, 232, 14, 8, 6, 1, + 152, 170, 8, 2, 1, 152, 170, 8, 6, 1, 223, 87, 148, 8, 2, 1, 223, 87, + 148, 8, 6, 1, 223, 87, 206, 3, 8, 2, 1, 223, 87, 206, 3, 8, 6, 1, 223, + 87, 200, 39, 8, 2, 1, 223, 87, 200, 39, 59, 1, 131, 242, 210, 252, 8, 59, + 1, 242, 35, 59, 1, 203, 35, 234, 1, 57, 8, 6, 1, 205, 151, 8, 2, 1, 205, + 151, 8, 6, 1, 152, 230, 83, 8, 2, 1, 220, 119, 4, 207, 19, 228, 219, 24, + 248, 181, 8, 1, 202, 158, 236, 96, 8, 6, 1, 215, 48, 4, 237, 42, 8, 2, 1, + 215, 48, 4, 237, 42, 8, 6, 1, 247, 146, 4, 164, 8, 2, 1, 247, 146, 4, + 164, 8, 2, 1, 247, 146, 4, 210, 182, 106, 8, 2, 1, 230, 84, 4, 210, 182, + 106, 8, 6, 1, 78, 4, 232, 148, 8, 2, 1, 78, 4, 232, 148, 8, 6, 1, 233, + 135, 4, 105, 8, 2, 1, 233, 135, 4, 105, 8, 6, 1, 195, 12, 251, 229, 8, 2, + 1, 195, 12, 251, 229, 8, 6, 1, 195, 12, 211, 139, 8, 2, 1, 195, 12, 211, + 139, 8, 6, 1, 195, 12, 196, 148, 8, 2, 1, 195, 12, 196, 148, 8, 6, 1, + 232, 15, 4, 211, 159, 105, 8, 2, 1, 232, 15, 4, 211, 159, 105, 8, 6, 1, + 222, 126, 4, 211, 159, 105, 8, 2, 1, 222, 126, 4, 211, 159, 105, 8, 6, 1, + 215, 48, 4, 211, 159, 105, 8, 2, 1, 215, 48, 4, 211, 159, 105, 8, 6, 1, + 207, 217, 4, 211, 159, 105, 8, 2, 1, 207, 217, 4, 211, 159, 105, 8, 6, 1, + 206, 4, 4, 211, 159, 105, 8, 2, 1, 206, 4, 4, 211, 159, 105, 8, 6, 1, + 230, 84, 4, 106, 8, 6, 1, 207, 13, 211, 66, 73, 8, 6, 1, 27, 232, 14, 8, + 6, 1, 220, 119, 4, 248, 181, 8, 6, 1, 2, 6, 70, 8, 1, 2, 6, 208, 97, 8, + 6, 1, 152, 222, 125, 8, 6, 1, 152, 200, 39, 8, 6, 1, 223, 8, 4, 238, 165, + 8, 6, 1, 243, 47, 8, 6, 1, 248, 162, 8, 2, 1, 248, 162, 8, 6, 1, 211, 99, + 8, 2, 1, 211, 99, 8, 6, 1, 126, 4, 105, 8, 2, 1, 126, 4, 105, 8, 6, 1, + 230, 231, 65, 8, 2, 1, 230, 231, 65, 8, 6, 1, 230, 231, 70, 8, 2, 1, 230, + 231, 70, 8, 6, 1, 230, 231, 69, 8, 2, 1, 230, 231, 69, 8, 6, 1, 38, 209, + 42, 74, 8, 2, 1, 38, 209, 42, 74, 8, 6, 1, 251, 61, 193, 221, 8, 2, 1, + 251, 61, 193, 221, 8, 6, 1, 247, 146, 4, 210, 182, 106, 8, 6, 1, 206, 4, + 4, 106, 8, 6, 1, 191, 167, 4, 210, 182, 106, 8, 6, 1, 238, 81, 4, 203, + 35, 201, 23, 210, 245, 8, 2, 1, 238, 81, 4, 203, 35, 201, 23, 210, 245, + 8, 6, 1, 206, 4, 4, 203, 35, 201, 23, 210, 245, 8, 2, 1, 206, 4, 4, 203, + 35, 201, 23, 210, 245, 8, 6, 1, 242, 171, 223, 87, 232, 14, 8, 2, 1, 242, + 171, 223, 87, 232, 14, 8, 2, 1, 54, 198, 228, 8, 2, 1, 54, 192, 238, 8, + 6, 1, 82, 205, 74, 206, 3, 8, 2, 1, 82, 205, 74, 206, 3, 8, 6, 1, 202, + 190, 206, 3, 8, 2, 1, 202, 190, 206, 3, 59, 1, 6, 247, 145, 59, 1, 6, + 233, 134, 59, 1, 6, 208, 97, 8, 6, 1, 207, 13, 134, 230, 83, 8, 2, 1, + 207, 13, 134, 230, 83, 8, 234, 8, 1, 202, 201, 70, 59, 1, 6, 230, 84, 4, + 105, 59, 1, 2, 34, 211, 139, 8, 1, 2, 6, 152, 218, 147, 8, 234, 8, 1, + 207, 13, 233, 134, 8, 234, 8, 1, 207, 13, 210, 226, 8, 234, 8, 1, 223, + 65, 218, 147, 8, 234, 8, 1, 228, 44, 218, 242, 8, 234, 8, 1, 250, 220, + 218, 147, 200, 120, 214, 224, 1, 65, 200, 120, 214, 224, 1, 70, 200, 120, + 214, 224, 3, 235, 10, 200, 120, 214, 224, 1, 69, 200, 120, 214, 224, 1, + 73, 200, 120, 214, 224, 1, 74, 200, 120, 214, 224, 3, 229, 234, 200, 120, + 214, 224, 1, 221, 43, 200, 120, 214, 224, 1, 221, 159, 200, 120, 214, + 224, 1, 230, 223, 200, 120, 214, 224, 1, 231, 26, 200, 120, 214, 224, 3, + 251, 20, 200, 120, 214, 224, 1, 242, 51, 200, 120, 214, 224, 1, 243, 20, + 200, 120, 214, 224, 1, 222, 174, 200, 120, 214, 224, 1, 222, 219, 200, + 120, 214, 224, 1, 197, 105, 200, 120, 214, 224, 1, 197, 111, 200, 120, + 214, 224, 1, 237, 116, 200, 120, 214, 224, 1, 237, 125, 200, 120, 214, + 224, 1, 159, 200, 120, 214, 224, 1, 198, 236, 200, 120, 214, 224, 1, 236, + 129, 200, 120, 214, 224, 1, 237, 3, 200, 120, 214, 224, 1, 213, 30, 200, + 120, 214, 224, 1, 209, 65, 200, 120, 214, 224, 1, 209, 190, 200, 120, + 214, 224, 1, 248, 63, 200, 120, 214, 224, 1, 248, 144, 200, 120, 214, + 224, 1, 215, 251, 200, 120, 214, 224, 1, 206, 157, 200, 120, 214, 224, 1, + 219, 19, 200, 120, 214, 224, 1, 206, 90, 200, 120, 214, 224, 1, 202, 41, + 200, 120, 214, 224, 1, 228, 247, 200, 120, 214, 224, 18, 3, 65, 200, 120, + 214, 224, 18, 3, 70, 200, 120, 214, 224, 18, 3, 69, 200, 120, 214, 224, + 18, 3, 73, 200, 120, 214, 224, 18, 3, 211, 76, 200, 120, 214, 224, 209, + 56, 217, 36, 200, 120, 214, 224, 209, 56, 217, 35, 200, 120, 214, 224, + 209, 56, 217, 34, 200, 120, 214, 224, 209, 56, 217, 33, 200, 120, 214, + 224, 3, 251, 106, 229, 234, 185, 223, 118, 232, 80, 91, 208, 17, 185, + 223, 118, 232, 80, 91, 230, 37, 185, 223, 118, 232, 80, 115, 208, 15, + 185, 223, 118, 232, 80, 91, 202, 123, 185, 223, 118, 232, 80, 91, 234, + 116, 185, 223, 118, 232, 80, 115, 202, 120, 185, 223, 118, 208, 18, 77, + 185, 223, 118, 209, 99, 77, 185, 223, 118, 206, 31, 77, 185, 223, 118, + 208, 19, 77, 209, 215, 1, 157, 209, 215, 1, 221, 190, 209, 215, 1, 231, + 203, 209, 215, 1, 214, 54, 209, 215, 1, 247, 112, 209, 215, 1, 246, 209, + 209, 215, 1, 223, 4, 209, 215, 1, 212, 88, 209, 215, 1, 199, 247, 209, + 215, 1, 199, 44, 209, 215, 1, 237, 241, 209, 215, 1, 180, 209, 215, 1, + 168, 209, 215, 1, 209, 219, 209, 215, 1, 249, 103, 209, 215, 1, 172, 209, + 215, 1, 197, 164, 209, 215, 1, 197, 153, 209, 215, 1, 234, 247, 209, 215, + 1, 193, 187, 209, 215, 1, 191, 71, 209, 215, 1, 191, 123, 209, 215, 1, 2, + 65, 209, 215, 1, 169, 209, 215, 1, 166, 209, 215, 1, 171, 209, 215, 1, + 203, 160, 209, 215, 1, 189, 209, 215, 1, 144, 209, 215, 1, 65, 209, 215, + 1, 70, 209, 215, 1, 69, 209, 215, 1, 73, 209, 215, 1, 74, 209, 215, 1, + 208, 89, 209, 215, 1, 192, 220, 209, 215, 1, 233, 68, 209, 215, 1, 231, + 90, 209, 215, 1, 234, 145, 209, 215, 200, 234, 1, 193, 187, 209, 215, + 200, 234, 1, 169, 209, 215, 1, 197, 128, 209, 215, 1, 197, 116, 209, 215, + 1, 237, 146, 209, 215, 1, 213, 66, 209, 215, 1, 251, 106, 169, 209, 215, + 1, 195, 16, 203, 160, 209, 215, 1, 195, 17, 144, 209, 215, 1, 250, 150, + 233, 68, 209, 215, 200, 234, 1, 166, 209, 215, 200, 180, 1, 166, 209, + 215, 1, 247, 71, 209, 215, 202, 165, 229, 204, 77, 209, 215, 54, 229, + 204, 77, 209, 215, 87, 203, 152, 209, 215, 87, 54, 203, 152, 205, 106, 3, + 251, 20, 205, 106, 3, 195, 32, 205, 106, 1, 65, 205, 106, 1, 252, 154, + 205, 106, 1, 70, 205, 106, 1, 223, 170, 205, 106, 1, 69, 205, 106, 1, + 196, 26, 205, 106, 1, 121, 148, 205, 106, 1, 121, 206, 105, 205, 106, 1, + 121, 170, 205, 106, 1, 121, 219, 50, 205, 106, 1, 73, 205, 106, 1, 234, + 145, 205, 106, 1, 251, 184, 205, 106, 1, 74, 205, 106, 1, 211, 76, 205, + 106, 1, 250, 113, 205, 106, 1, 157, 205, 106, 1, 221, 190, 205, 106, 1, + 231, 203, 205, 106, 1, 231, 54, 205, 106, 1, 214, 54, 205, 106, 1, 247, + 112, 205, 106, 1, 246, 209, 205, 106, 1, 223, 4, 205, 106, 1, 222, 225, + 205, 106, 1, 212, 88, 205, 106, 1, 197, 128, 205, 106, 1, 197, 116, 205, + 106, 1, 237, 146, 205, 106, 1, 237, 130, 205, 106, 1, 213, 66, 205, 106, + 1, 199, 247, 205, 106, 1, 199, 44, 205, 106, 1, 237, 241, 205, 106, 1, + 237, 23, 205, 106, 1, 180, 205, 106, 1, 168, 205, 106, 1, 209, 219, 205, + 106, 1, 249, 103, 205, 106, 1, 248, 153, 205, 106, 1, 172, 205, 106, 1, + 169, 205, 106, 1, 166, 205, 106, 1, 171, 205, 106, 1, 195, 185, 205, 106, + 1, 203, 160, 205, 106, 1, 201, 170, 205, 106, 1, 189, 205, 106, 1, 144, + 205, 106, 1, 219, 49, 205, 106, 119, 3, 230, 56, 205, 106, 18, 3, 252, + 154, 205, 106, 18, 3, 70, 205, 106, 18, 3, 223, 170, 205, 106, 18, 3, 69, + 205, 106, 18, 3, 196, 26, 205, 106, 18, 3, 121, 148, 205, 106, 18, 3, + 121, 206, 105, 205, 106, 18, 3, 121, 170, 205, 106, 18, 3, 121, 219, 50, + 205, 106, 18, 3, 73, 205, 106, 18, 3, 234, 145, 205, 106, 18, 3, 251, + 184, 205, 106, 18, 3, 74, 205, 106, 18, 3, 211, 76, 205, 106, 18, 3, 250, + 113, 205, 106, 3, 195, 37, 205, 106, 3, 247, 71, 205, 106, 237, 193, 205, + 106, 54, 237, 193, 205, 106, 17, 191, 77, 205, 106, 17, 108, 205, 106, + 17, 109, 205, 106, 17, 139, 205, 106, 17, 137, 205, 106, 17, 153, 205, + 106, 17, 173, 205, 106, 17, 181, 205, 106, 17, 176, 205, 106, 17, 184, + 33, 104, 17, 191, 77, 33, 104, 17, 108, 33, 104, 17, 109, 33, 104, 17, + 139, 33, 104, 17, 137, 33, 104, 17, 153, 33, 104, 17, 173, 33, 104, 17, + 181, 33, 104, 17, 176, 33, 104, 17, 184, 33, 104, 1, 65, 33, 104, 1, 69, + 33, 104, 1, 157, 33, 104, 1, 180, 33, 104, 1, 168, 33, 104, 1, 166, 33, + 104, 1, 195, 66, 33, 104, 3, 250, 95, 104, 3, 201, 241, 247, 71, 104, 3, + 247, 72, 195, 37, 104, 3, 54, 247, 72, 195, 37, 104, 3, 247, 72, 109, + 104, 3, 247, 72, 139, 104, 3, 247, 72, 250, 95, 104, 3, 208, 127, 104, + 231, 167, 232, 218, 104, 247, 48, 104, 229, 195, 104, 3, 202, 205, 104, + 222, 252, 211, 102, 104, 1, 250, 81, 104, 18, 3, 250, 81, 222, 3, 219, + 123, 17, 191, 77, 222, 3, 219, 123, 17, 108, 222, 3, 219, 123, 17, 109, + 222, 3, 219, 123, 17, 139, 222, 3, 219, 123, 17, 137, 222, 3, 219, 123, + 17, 153, 222, 3, 219, 123, 17, 173, 222, 3, 219, 123, 17, 181, 222, 3, + 219, 123, 17, 176, 222, 3, 219, 123, 17, 184, 222, 3, 219, 123, 1, 157, + 222, 3, 219, 123, 1, 221, 190, 222, 3, 219, 123, 1, 231, 203, 222, 3, + 219, 123, 1, 214, 54, 222, 3, 219, 123, 1, 189, 222, 3, 219, 123, 1, 203, + 160, 222, 3, 219, 123, 1, 191, 123, 222, 3, 219, 123, 1, 212, 88, 222, 3, + 219, 123, 1, 199, 247, 222, 3, 219, 123, 1, 228, 133, 222, 3, 219, 123, + 1, 180, 222, 3, 219, 123, 1, 168, 222, 3, 219, 123, 1, 209, 219, 222, 3, + 219, 123, 1, 172, 222, 3, 219, 123, 1, 237, 241, 222, 3, 219, 123, 1, + 249, 103, 222, 3, 219, 123, 1, 166, 222, 3, 219, 123, 1, 169, 222, 3, + 219, 123, 1, 171, 222, 3, 219, 123, 1, 193, 187, 222, 3, 219, 123, 1, + 199, 44, 222, 3, 219, 123, 1, 144, 222, 3, 219, 123, 1, 195, 185, 222, 3, + 219, 123, 1, 247, 112, 222, 3, 219, 123, 1, 65, 222, 3, 219, 123, 1, 211, + 139, 222, 3, 219, 123, 1, 70, 222, 3, 219, 123, 1, 211, 76, 222, 3, 219, + 123, 18, 196, 148, 222, 3, 219, 123, 18, 73, 222, 3, 219, 123, 18, 69, + 222, 3, 219, 123, 18, 234, 145, 222, 3, 219, 123, 18, 74, 222, 3, 219, + 123, 163, 209, 82, 222, 3, 219, 123, 163, 247, 87, 222, 3, 219, 123, 163, + 247, 88, 209, 82, 222, 3, 219, 123, 3, 238, 100, 222, 3, 219, 123, 3, + 202, 225, 207, 62, 1, 157, 207, 62, 1, 231, 203, 207, 62, 1, 214, 54, + 207, 62, 1, 199, 247, 207, 62, 1, 237, 241, 207, 62, 1, 180, 207, 62, 1, + 168, 207, 62, 1, 249, 103, 207, 62, 1, 172, 207, 62, 1, 247, 112, 207, + 62, 1, 223, 4, 207, 62, 1, 212, 88, 207, 62, 1, 189, 207, 62, 1, 166, + 207, 62, 1, 171, 207, 62, 1, 169, 207, 62, 1, 193, 187, 207, 62, 1, 144, + 207, 62, 1, 216, 248, 207, 62, 1, 214, 33, 207, 62, 1, 214, 148, 207, 62, + 1, 212, 53, 207, 62, 1, 65, 207, 62, 18, 3, 70, 207, 62, 18, 3, 69, 207, + 62, 18, 3, 73, 207, 62, 18, 3, 251, 184, 207, 62, 18, 3, 74, 207, 62, 18, + 3, 250, 113, 207, 62, 18, 3, 233, 201, 207, 62, 18, 3, 234, 173, 207, 62, + 119, 3, 214, 56, 207, 62, 119, 3, 215, 47, 207, 62, 119, 3, 148, 207, 62, + 119, 3, 230, 83, 207, 62, 195, 37, 207, 62, 205, 49, 77, 30, 146, 198, + 159, 30, 146, 198, 158, 30, 146, 198, 156, 30, 146, 198, 161, 30, 146, + 206, 229, 30, 146, 206, 213, 30, 146, 206, 208, 30, 146, 206, 210, 30, + 146, 206, 226, 30, 146, 206, 219, 30, 146, 206, 212, 30, 146, 206, 231, + 30, 146, 206, 214, 30, 146, 206, 233, 30, 146, 206, 230, 30, 146, 216, + 55, 30, 146, 216, 46, 30, 146, 216, 49, 30, 146, 209, 145, 30, 146, 209, + 156, 30, 146, 209, 157, 30, 146, 201, 154, 30, 146, 223, 183, 30, 146, + 223, 190, 30, 146, 201, 165, 30, 146, 201, 152, 30, 146, 209, 199, 30, + 146, 229, 105, 30, 146, 201, 149, 222, 244, 3, 210, 133, 222, 244, 3, + 246, 247, 222, 244, 3, 219, 222, 222, 244, 3, 193, 69, 222, 244, 1, 65, + 222, 244, 1, 228, 44, 222, 7, 222, 244, 1, 70, 222, 244, 1, 223, 170, + 222, 244, 1, 69, 222, 244, 1, 210, 211, 246, 217, 222, 244, 1, 214, 55, + 219, 179, 222, 244, 1, 214, 55, 219, 180, 207, 126, 222, 244, 1, 73, 222, + 244, 1, 251, 184, 222, 244, 1, 74, 222, 244, 1, 157, 222, 244, 1, 222, + 115, 205, 119, 222, 244, 1, 222, 115, 215, 93, 222, 244, 1, 231, 203, + 222, 244, 1, 231, 204, 215, 93, 222, 244, 1, 214, 54, 222, 244, 1, 247, + 112, 222, 244, 1, 247, 113, 215, 93, 222, 244, 1, 223, 4, 222, 244, 1, + 212, 89, 215, 93, 222, 244, 1, 223, 5, 217, 95, 222, 244, 1, 212, 88, + 222, 244, 1, 197, 128, 222, 244, 1, 197, 129, 217, 95, 222, 244, 1, 237, + 146, 222, 244, 1, 237, 147, 217, 95, 222, 244, 1, 214, 249, 215, 93, 222, + 244, 1, 199, 247, 222, 244, 1, 199, 248, 215, 93, 222, 244, 1, 237, 241, + 222, 244, 1, 237, 242, 217, 95, 222, 244, 1, 180, 222, 244, 1, 168, 222, + 244, 1, 210, 211, 215, 93, 222, 244, 1, 249, 103, 222, 244, 1, 249, 104, + 215, 93, 222, 244, 1, 172, 222, 244, 1, 169, 222, 244, 1, 166, 222, 244, + 1, 207, 181, 251, 194, 222, 244, 1, 171, 222, 244, 1, 193, 187, 222, 244, + 1, 205, 202, 215, 93, 222, 244, 1, 205, 202, 217, 95, 222, 244, 1, 189, + 222, 244, 1, 144, 222, 244, 3, 246, 248, 199, 95, 222, 244, 18, 3, 199, + 170, 222, 244, 18, 3, 198, 79, 222, 244, 18, 3, 192, 250, 222, 244, 18, + 3, 192, 251, 216, 179, 222, 244, 18, 3, 200, 203, 222, 244, 18, 3, 200, + 204, 216, 166, 222, 244, 18, 3, 199, 196, 222, 244, 18, 3, 236, 185, 215, + 92, 222, 244, 18, 3, 210, 7, 222, 244, 119, 3, 221, 219, 222, 244, 119, + 3, 210, 22, 222, 244, 119, 3, 247, 97, 222, 244, 210, 147, 222, 244, 45, + 207, 35, 222, 244, 50, 207, 35, 222, 244, 210, 199, 251, 73, 222, 244, + 210, 199, 217, 116, 222, 244, 210, 199, 218, 190, 222, 244, 210, 199, + 193, 62, 222, 244, 210, 199, 210, 148, 222, 244, 210, 199, 219, 80, 222, + 244, 210, 199, 218, 183, 222, 244, 210, 199, 251, 240, 222, 244, 210, + 199, 251, 241, 251, 240, 222, 244, 210, 199, 209, 111, 222, 244, 152, + 210, 199, 209, 111, 222, 244, 210, 143, 222, 244, 17, 191, 77, 222, 244, + 17, 108, 222, 244, 17, 109, 222, 244, 17, 139, 222, 244, 17, 137, 222, + 244, 17, 153, 222, 244, 17, 173, 222, 244, 17, 181, 222, 244, 17, 176, + 222, 244, 17, 184, 222, 244, 210, 199, 198, 122, 197, 69, 222, 244, 210, + 199, 223, 36, 79, 1, 203, 134, 231, 54, 79, 1, 203, 134, 246, 209, 79, 1, + 203, 134, 222, 225, 79, 1, 203, 134, 213, 66, 79, 1, 203, 134, 248, 153, + 79, 3, 203, 134, 205, 103, 79, 59, 1, 203, 134, 207, 80, 79, 1, 53, 220, + 71, 212, 88, 79, 1, 53, 220, 71, 233, 68, 79, 1, 53, 220, 71, 231, 203, + 79, 1, 53, 220, 71, 231, 54, 79, 1, 53, 220, 71, 223, 4, 79, 1, 53, 220, + 71, 222, 225, 79, 1, 53, 220, 71, 237, 146, 79, 1, 53, 220, 71, 237, 130, + 79, 1, 53, 220, 71, 213, 66, 79, 53, 220, 71, 17, 191, 77, 79, 53, 220, + 71, 17, 108, 79, 53, 220, 71, 17, 109, 79, 53, 220, 71, 17, 139, 79, 53, + 220, 71, 17, 137, 79, 53, 220, 71, 17, 153, 79, 53, 220, 71, 17, 173, 79, + 53, 220, 71, 17, 181, 79, 53, 220, 71, 17, 176, 79, 53, 220, 71, 17, 184, + 79, 1, 53, 220, 71, 219, 49, 79, 1, 53, 220, 71, 237, 241, 79, 1, 53, + 220, 71, 237, 23, 79, 1, 53, 220, 71, 249, 103, 79, 1, 53, 220, 71, 248, + 153, 246, 202, 1, 65, 246, 202, 1, 70, 246, 202, 1, 69, 246, 202, 1, 73, + 246, 202, 1, 251, 184, 246, 202, 1, 74, 246, 202, 1, 157, 246, 202, 1, + 221, 190, 246, 202, 1, 231, 203, 246, 202, 1, 231, 54, 246, 202, 1, 213, + 219, 246, 202, 1, 214, 54, 246, 202, 1, 246, 209, 246, 202, 1, 243, 50, + 246, 202, 1, 223, 4, 246, 202, 1, 222, 225, 246, 202, 1, 213, 207, 246, + 202, 1, 213, 210, 246, 202, 1, 213, 208, 246, 202, 1, 199, 247, 246, 202, + 1, 199, 44, 246, 202, 1, 237, 241, 246, 202, 1, 237, 23, 246, 202, 1, + 212, 131, 246, 202, 1, 180, 246, 202, 1, 237, 146, 246, 202, 1, 168, 246, + 202, 1, 208, 243, 246, 202, 1, 209, 219, 246, 202, 1, 249, 103, 246, 202, + 1, 248, 153, 246, 202, 1, 215, 127, 246, 202, 1, 172, 246, 202, 1, 249, + 3, 246, 202, 1, 169, 246, 202, 1, 166, 246, 202, 1, 171, 246, 202, 1, + 195, 185, 246, 202, 1, 201, 170, 246, 202, 1, 189, 246, 202, 1, 144, 246, + 202, 18, 3, 252, 154, 246, 202, 18, 3, 70, 246, 202, 18, 3, 223, 170, + 246, 202, 18, 3, 234, 123, 246, 202, 18, 3, 69, 246, 202, 18, 3, 211, + 139, 246, 202, 18, 3, 74, 246, 202, 18, 3, 251, 184, 246, 202, 18, 3, + 250, 113, 246, 202, 18, 3, 196, 148, 246, 202, 119, 3, 169, 246, 202, + 119, 3, 166, 246, 202, 119, 3, 171, 246, 202, 119, 3, 193, 187, 246, 202, + 1, 52, 222, 125, 246, 202, 1, 52, 232, 14, 246, 202, 1, 52, 214, 56, 246, + 202, 119, 3, 52, 214, 56, 246, 202, 1, 52, 246, 211, 246, 202, 1, 52, + 200, 39, 246, 202, 1, 52, 215, 47, 246, 202, 1, 52, 210, 226, 246, 202, + 1, 52, 192, 159, 246, 202, 1, 52, 148, 246, 202, 1, 52, 170, 246, 202, 1, + 52, 201, 173, 246, 202, 119, 3, 52, 218, 147, 246, 202, 119, 3, 52, 230, + 83, 246, 202, 17, 191, 77, 246, 202, 17, 108, 246, 202, 17, 109, 246, + 202, 17, 139, 246, 202, 17, 137, 246, 202, 17, 153, 246, 202, 17, 173, + 246, 202, 17, 181, 246, 202, 17, 176, 246, 202, 17, 184, 246, 202, 208, + 145, 201, 212, 246, 202, 208, 145, 237, 193, 246, 202, 208, 145, 54, 237, + 193, 246, 202, 208, 145, 197, 221, 237, 193, 79, 1, 221, 181, 231, 203, + 79, 1, 221, 181, 247, 112, 79, 1, 221, 181, 246, 209, 79, 1, 221, 181, + 223, 4, 79, 1, 221, 181, 222, 225, 79, 1, 221, 181, 212, 88, 79, 1, 221, + 181, 197, 128, 79, 1, 221, 181, 197, 116, 79, 1, 221, 181, 237, 146, 79, + 1, 221, 181, 237, 130, 79, 1, 221, 181, 237, 23, 79, 1, 221, 181, 180, + 79, 1, 221, 181, 189, 79, 1, 221, 181, 144, 79, 1, 221, 181, 229, 145, + 79, 1, 221, 181, 233, 68, 79, 59, 1, 221, 181, 207, 80, 79, 1, 221, 181, + 192, 220, 79, 1, 221, 181, 191, 123, 79, 1, 221, 181, 166, 79, 219, 4, + 221, 181, 211, 166, 79, 219, 4, 221, 181, 208, 40, 79, 219, 4, 221, 181, + 229, 46, 79, 16, 251, 170, 233, 174, 79, 16, 251, 170, 108, 79, 16, 251, + 170, 109, 79, 1, 251, 170, 166, 79, 3, 210, 129, 222, 36, 198, 74, 79, 3, + 53, 220, 71, 198, 72, 79, 3, 53, 220, 71, 198, 69, 79, 1, 202, 233, 210, + 179, 246, 209, 79, 1, 202, 233, 210, 179, 203, 160, 53, 195, 56, 1, 131, + 221, 43, 53, 195, 56, 1, 136, 221, 43, 53, 195, 56, 1, 131, 221, 159, 53, + 195, 56, 1, 136, 221, 159, 53, 195, 56, 1, 131, 221, 168, 53, 195, 56, 1, + 136, 221, 168, 53, 195, 56, 1, 131, 230, 223, 53, 195, 56, 1, 136, 230, + 223, 53, 195, 56, 1, 131, 213, 235, 53, 195, 56, 1, 136, 213, 235, 53, + 195, 56, 1, 131, 242, 51, 53, 195, 56, 1, 136, 242, 51, 53, 195, 56, 1, + 131, 243, 20, 53, 195, 56, 1, 136, 243, 20, 53, 195, 56, 1, 131, 202, 41, + 53, 195, 56, 1, 136, 202, 41, 53, 195, 56, 1, 131, 212, 52, 53, 195, 56, + 1, 136, 212, 52, 53, 195, 56, 1, 131, 236, 129, 53, 195, 56, 1, 136, 236, + 129, 53, 195, 56, 1, 131, 159, 53, 195, 56, 1, 136, 159, 53, 195, 56, 1, + 131, 198, 236, 53, 195, 56, 1, 136, 198, 236, 53, 195, 56, 1, 131, 213, + 30, 53, 195, 56, 1, 136, 213, 30, 53, 195, 56, 1, 131, 248, 63, 53, 195, + 56, 1, 136, 248, 63, 53, 195, 56, 1, 131, 209, 65, 53, 195, 56, 1, 136, + 209, 65, 53, 195, 56, 1, 131, 209, 190, 53, 195, 56, 1, 136, 209, 190, + 53, 195, 56, 1, 131, 232, 135, 53, 195, 56, 1, 136, 232, 135, 53, 195, + 56, 1, 131, 215, 251, 53, 195, 56, 1, 136, 215, 251, 53, 195, 56, 1, 131, + 192, 12, 53, 195, 56, 1, 136, 192, 12, 53, 195, 56, 1, 131, 206, 157, 53, + 195, 56, 1, 136, 206, 157, 53, 195, 56, 1, 131, 219, 19, 53, 195, 56, 1, + 136, 219, 19, 53, 195, 56, 1, 131, 195, 21, 53, 195, 56, 1, 136, 195, 21, + 53, 195, 56, 1, 131, 228, 247, 53, 195, 56, 1, 136, 228, 247, 53, 195, + 56, 1, 131, 74, 53, 195, 56, 1, 136, 74, 53, 195, 56, 217, 92, 222, 57, + 53, 195, 56, 18, 252, 154, 53, 195, 56, 18, 70, 53, 195, 56, 18, 196, + 148, 53, 195, 56, 18, 69, 53, 195, 56, 18, 73, 53, 195, 56, 18, 74, 53, + 195, 56, 217, 92, 221, 162, 53, 195, 56, 18, 228, 5, 53, 195, 56, 18, + 196, 147, 53, 195, 56, 18, 196, 164, 53, 195, 56, 18, 250, 111, 53, 195, + 56, 18, 250, 81, 53, 195, 56, 18, 251, 81, 53, 195, 56, 18, 251, 98, 53, + 195, 56, 163, 217, 92, 234, 104, 53, 195, 56, 163, 217, 92, 212, 130, 53, + 195, 56, 163, 217, 92, 198, 236, 53, 195, 56, 163, 217, 92, 202, 13, 53, + 195, 56, 16, 221, 20, 53, 195, 56, 16, 212, 130, 53, 195, 56, 16, 205, + 147, 53, 195, 56, 16, 228, 248, 228, 234, 53, 195, 56, 16, 221, 31, 221, + 30, 216, 186, 216, 255, 1, 73, 216, 186, 216, 255, 1, 74, 216, 186, 216, + 255, 1, 246, 209, 216, 186, 216, 255, 1, 212, 88, 216, 186, 216, 255, 1, + 197, 128, 216, 186, 216, 255, 1, 197, 116, 216, 186, 216, 255, 1, 237, + 146, 216, 186, 216, 255, 1, 237, 130, 216, 186, 216, 255, 1, 213, 66, + 216, 186, 216, 255, 1, 203, 160, 216, 186, 216, 255, 1, 201, 170, 216, + 186, 216, 255, 18, 3, 223, 170, 216, 186, 216, 255, 18, 3, 196, 26, 216, + 186, 216, 255, 18, 3, 252, 118, 216, 186, 216, 255, 18, 3, 250, 113, 216, + 186, 216, 255, 18, 3, 252, 110, 216, 186, 216, 255, 243, 68, 216, 186, + 216, 255, 251, 190, 221, 149, 216, 186, 216, 255, 251, 49, 216, 186, 216, + 255, 5, 207, 41, 77, 216, 186, 216, 255, 193, 23, 207, 41, 77, 216, 186, + 216, 255, 18, 3, 195, 32, 216, 186, 216, 255, 195, 37, 36, 5, 197, 109, + 36, 5, 197, 112, 36, 5, 197, 115, 36, 5, 197, 113, 36, 5, 197, 114, 36, + 5, 197, 111, 36, 5, 237, 124, 36, 5, 237, 126, 36, 5, 237, 129, 36, 5, + 237, 127, 36, 5, 237, 128, 36, 5, 237, 125, 36, 5, 234, 234, 36, 5, 234, + 238, 36, 5, 234, 246, 36, 5, 234, 243, 36, 5, 234, 244, 36, 5, 234, 235, + 36, 5, 247, 8, 36, 5, 247, 2, 36, 5, 247, 4, 36, 5, 247, 7, 36, 5, 247, + 5, 36, 5, 247, 6, 36, 5, 247, 3, 36, 5, 249, 3, 36, 5, 248, 238, 36, 5, + 248, 250, 36, 5, 249, 2, 36, 5, 248, 253, 36, 5, 248, 254, 36, 5, 248, + 242, 8, 2, 1, 249, 32, 251, 109, 8, 2, 1, 41, 207, 11, 8, 2, 1, 248, 87, + 73, 8, 2, 1, 249, 32, 73, 8, 2, 1, 234, 227, 4, 232, 148, 8, 2, 1, 219, + 165, 233, 134, 8, 2, 1, 27, 232, 15, 4, 238, 165, 8, 2, 1, 220, 119, 4, + 223, 65, 219, 221, 206, 3, 8, 2, 1, 220, 119, 4, 54, 82, 198, 147, 8, 2, + 1, 220, 119, 4, 82, 206, 183, 8, 2, 1, 218, 148, 4, 238, 165, 8, 2, 1, + 215, 48, 4, 238, 165, 8, 2, 1, 234, 47, 4, 238, 165, 8, 2, 1, 248, 87, + 74, 8, 2, 1, 248, 87, 186, 4, 105, 8, 2, 1, 211, 66, 186, 4, 105, 8, 2, + 1, 223, 65, 211, 139, 8, 2, 1, 152, 211, 140, 4, 105, 8, 2, 1, 152, 211, + 140, 4, 228, 209, 105, 8, 2, 1, 152, 186, 211, 61, 8, 2, 1, 152, 186, + 211, 62, 4, 105, 8, 2, 1, 201, 63, 148, 8, 1, 2, 6, 207, 217, 4, 50, 219, + 188, 8, 2, 1, 207, 217, 193, 51, 229, 254, 8, 2, 1, 54, 148, 8, 2, 1, + 207, 217, 4, 238, 165, 8, 2, 1, 54, 207, 217, 4, 238, 165, 8, 2, 1, 27, + 148, 8, 2, 1, 27, 207, 217, 4, 206, 183, 8, 2, 1, 249, 22, 233, 226, 8, + 2, 1, 126, 4, 203, 35, 50, 219, 188, 8, 2, 1, 126, 249, 38, 4, 203, 35, + 50, 219, 188, 8, 2, 1, 196, 135, 8, 2, 1, 152, 196, 135, 8, 2, 1, 126, 4, + 45, 106, 8, 2, 1, 243, 47, 8, 2, 1, 243, 48, 4, 131, 50, 206, 183, 8, 2, + 1, 243, 48, 4, 131, 45, 204, 0, 8, 2, 1, 192, 236, 4, 131, 50, 206, 183, + 8, 2, 1, 192, 236, 4, 177, 45, 219, 188, 8, 2, 1, 192, 236, 4, 177, 45, + 219, 189, 24, 131, 50, 206, 183, 8, 2, 1, 192, 236, 4, 177, 45, 219, 189, + 4, 204, 0, 8, 2, 1, 192, 160, 4, 203, 35, 50, 219, 188, 59, 247, 245, 4, + 223, 65, 247, 244, 59, 1, 2, 229, 164, 59, 1, 2, 220, 119, 4, 223, 65, + 219, 221, 206, 3, 59, 1, 2, 220, 119, 4, 82, 198, 147, 59, 1, 2, 126, 4, + 45, 106, 8, 2, 1, 205, 169, 192, 95, 8, 2, 1, 223, 53, 73, 8, 2, 1, 211, + 66, 211, 139, 8, 2, 1, 196, 78, 8, 2, 1, 223, 65, 251, 109, 35, 1, 2, 6, + 211, 99, 8, 2, 1, 234, 249, 236, 214, 4, 207, 19, 106, 8, 2, 1, 197, 166, + 236, 214, 4, 207, 19, 106, 8, 2, 1, 152, 207, 217, 4, 82, 198, 147, 59, + 1, 2, 152, 193, 221, 59, 1, 45, 199, 223, 59, 1, 50, 199, 223, 101, 2, 1, + 65, 101, 2, 1, 73, 101, 2, 1, 70, 101, 2, 1, 74, 101, 2, 1, 69, 101, 2, + 1, 196, 8, 101, 2, 1, 231, 203, 101, 2, 1, 157, 101, 2, 1, 231, 128, 101, + 2, 1, 231, 16, 101, 2, 1, 230, 223, 101, 2, 1, 230, 146, 101, 2, 1, 230, + 105, 101, 2, 1, 144, 101, 2, 1, 229, 213, 101, 2, 1, 229, 126, 101, 2, 1, + 228, 247, 101, 2, 1, 228, 128, 101, 2, 1, 228, 95, 101, 2, 1, 171, 101, + 2, 1, 219, 214, 101, 2, 1, 219, 122, 101, 2, 1, 219, 19, 101, 2, 1, 218, + 203, 101, 2, 1, 218, 171, 101, 2, 1, 172, 101, 2, 1, 216, 213, 101, 2, 1, + 216, 81, 101, 2, 1, 215, 251, 101, 2, 1, 215, 139, 101, 2, 1, 180, 101, + 2, 1, 229, 15, 101, 2, 1, 214, 223, 101, 2, 1, 214, 107, 101, 2, 1, 213, + 205, 101, 2, 1, 213, 30, 101, 2, 1, 212, 165, 101, 2, 1, 212, 99, 101, 2, + 1, 208, 26, 101, 2, 1, 208, 11, 101, 2, 1, 208, 4, 101, 2, 1, 207, 250, + 101, 2, 1, 207, 239, 101, 2, 1, 207, 237, 101, 2, 1, 189, 101, 2, 1, 206, + 3, 101, 2, 1, 205, 63, 101, 2, 1, 202, 217, 101, 2, 1, 202, 41, 101, 2, + 1, 200, 255, 101, 2, 1, 200, 154, 101, 2, 1, 237, 241, 101, 2, 1, 199, + 247, 101, 2, 1, 237, 101, 101, 2, 1, 199, 140, 101, 2, 1, 236, 255, 101, + 2, 1, 198, 188, 101, 2, 1, 236, 129, 101, 2, 1, 235, 45, 101, 2, 1, 235, + 13, 101, 2, 1, 236, 141, 101, 2, 1, 198, 110, 101, 2, 1, 198, 109, 101, + 2, 1, 198, 98, 101, 2, 1, 198, 97, 101, 2, 1, 198, 96, 101, 2, 1, 198, + 95, 101, 2, 1, 197, 164, 101, 2, 1, 197, 157, 101, 2, 1, 197, 142, 101, + 2, 1, 197, 140, 101, 2, 1, 197, 136, 101, 2, 1, 197, 135, 101, 2, 1, 193, + 187, 101, 2, 1, 193, 123, 101, 2, 1, 193, 84, 101, 2, 1, 193, 48, 101, 2, + 1, 193, 0, 101, 2, 1, 192, 243, 101, 2, 1, 169, 216, 186, 216, 255, 1, + 221, 27, 216, 186, 216, 255, 1, 205, 147, 216, 186, 216, 255, 1, 220, 72, + 216, 186, 216, 255, 1, 216, 6, 216, 186, 216, 255, 1, 168, 216, 186, 216, + 255, 1, 180, 216, 186, 216, 255, 1, 243, 39, 216, 186, 216, 255, 1, 198, + 149, 216, 186, 216, 255, 1, 221, 152, 216, 186, 216, 255, 1, 213, 225, + 216, 186, 216, 255, 1, 198, 227, 216, 186, 216, 255, 1, 193, 170, 216, + 186, 216, 255, 1, 192, 106, 216, 186, 216, 255, 1, 228, 116, 216, 186, + 216, 255, 1, 196, 109, 216, 186, 216, 255, 1, 70, 216, 186, 216, 255, 1, + 209, 213, 216, 186, 216, 255, 1, 250, 125, 216, 186, 216, 255, 1, 230, + 215, 216, 186, 216, 255, 1, 222, 223, 216, 186, 216, 255, 1, 207, 151, + 216, 186, 216, 255, 1, 249, 103, 216, 186, 216, 255, 1, 222, 207, 216, + 186, 216, 255, 1, 236, 212, 216, 186, 216, 255, 1, 231, 23, 216, 186, + 216, 255, 1, 237, 1, 216, 186, 216, 255, 1, 248, 150, 216, 186, 216, 255, + 1, 221, 28, 218, 241, 216, 186, 216, 255, 1, 220, 73, 218, 241, 216, 186, + 216, 255, 1, 216, 7, 218, 241, 216, 186, 216, 255, 1, 210, 211, 218, 241, + 216, 186, 216, 255, 1, 214, 249, 218, 241, 216, 186, 216, 255, 1, 198, + 150, 218, 241, 216, 186, 216, 255, 1, 213, 226, 218, 241, 216, 186, 216, + 255, 1, 228, 44, 218, 241, 216, 186, 216, 255, 18, 3, 211, 91, 216, 186, + 216, 255, 18, 3, 223, 132, 216, 186, 216, 255, 18, 3, 251, 79, 216, 186, + 216, 255, 18, 3, 192, 69, 216, 186, 216, 255, 18, 3, 202, 1, 216, 186, + 216, 255, 18, 3, 196, 106, 216, 186, 216, 255, 18, 3, 243, 66, 216, 186, + 216, 255, 18, 3, 212, 114, 216, 186, 216, 255, 243, 67, 216, 186, 216, + 255, 218, 187, 223, 14, 216, 186, 216, 255, 250, 244, 223, 14, 216, 186, + 216, 255, 17, 191, 77, 216, 186, 216, 255, 17, 108, 216, 186, 216, 255, + 17, 109, 216, 186, 216, 255, 17, 139, 216, 186, 216, 255, 17, 137, 216, + 186, 216, 255, 17, 153, 216, 186, 216, 255, 17, 173, 216, 186, 216, 255, + 17, 181, 216, 186, 216, 255, 17, 176, 216, 186, 216, 255, 17, 184, 30, + 222, 147, 211, 246, 30, 222, 147, 211, 251, 30, 222, 147, 192, 5, 30, + 222, 147, 192, 4, 30, 222, 147, 192, 3, 30, 222, 147, 196, 214, 30, 222, + 147, 196, 218, 30, 222, 147, 191, 219, 30, 222, 147, 191, 215, 30, 222, + 147, 233, 200, 30, 222, 147, 233, 198, 30, 222, 147, 233, 199, 30, 222, + 147, 233, 196, 30, 222, 147, 228, 30, 30, 222, 147, 228, 29, 30, 222, + 147, 228, 27, 30, 222, 147, 228, 28, 30, 222, 147, 228, 33, 30, 222, 147, + 228, 26, 30, 222, 147, 228, 25, 30, 222, 147, 228, 35, 30, 222, 147, 250, + 230, 30, 222, 147, 250, 229, 30, 125, 213, 183, 30, 125, 213, 189, 30, + 125, 201, 151, 30, 125, 201, 150, 30, 125, 198, 158, 30, 125, 198, 156, + 30, 125, 198, 155, 30, 125, 198, 161, 30, 125, 198, 162, 30, 125, 198, + 154, 30, 125, 206, 213, 30, 125, 206, 228, 30, 125, 201, 157, 30, 125, + 206, 225, 30, 125, 206, 215, 30, 125, 206, 217, 30, 125, 206, 204, 30, + 125, 206, 205, 30, 125, 222, 42, 30, 125, 216, 54, 30, 125, 216, 48, 30, + 125, 201, 161, 30, 125, 216, 51, 30, 125, 216, 57, 30, 125, 209, 141, 30, + 125, 209, 150, 30, 125, 209, 154, 30, 125, 201, 159, 30, 125, 209, 144, + 30, 125, 209, 158, 30, 125, 209, 159, 30, 125, 202, 147, 30, 125, 202, + 150, 30, 125, 201, 155, 30, 125, 201, 153, 30, 125, 202, 145, 30, 125, + 202, 153, 30, 125, 202, 154, 30, 125, 202, 139, 30, 125, 202, 152, 30, + 125, 210, 137, 30, 125, 210, 138, 30, 125, 192, 53, 30, 125, 192, 56, 30, + 125, 242, 230, 30, 125, 242, 229, 30, 125, 201, 166, 30, 125, 209, 197, + 30, 125, 209, 196, 12, 15, 225, 161, 12, 15, 225, 160, 12, 15, 225, 159, + 12, 15, 225, 158, 12, 15, 225, 157, 12, 15, 225, 156, 12, 15, 225, 155, + 12, 15, 225, 154, 12, 15, 225, 153, 12, 15, 225, 152, 12, 15, 225, 151, + 12, 15, 225, 150, 12, 15, 225, 149, 12, 15, 225, 148, 12, 15, 225, 147, + 12, 15, 225, 146, 12, 15, 225, 145, 12, 15, 225, 144, 12, 15, 225, 143, + 12, 15, 225, 142, 12, 15, 225, 141, 12, 15, 225, 140, 12, 15, 225, 139, + 12, 15, 225, 138, 12, 15, 225, 137, 12, 15, 225, 136, 12, 15, 225, 135, + 12, 15, 225, 134, 12, 15, 225, 133, 12, 15, 225, 132, 12, 15, 225, 131, + 12, 15, 225, 130, 12, 15, 225, 129, 12, 15, 225, 128, 12, 15, 225, 127, + 12, 15, 225, 126, 12, 15, 225, 125, 12, 15, 225, 124, 12, 15, 225, 123, + 12, 15, 225, 122, 12, 15, 225, 121, 12, 15, 225, 120, 12, 15, 225, 119, + 12, 15, 225, 118, 12, 15, 225, 117, 12, 15, 225, 116, 12, 15, 225, 115, + 12, 15, 225, 114, 12, 15, 225, 113, 12, 15, 225, 112, 12, 15, 225, 111, + 12, 15, 225, 110, 12, 15, 225, 109, 12, 15, 225, 108, 12, 15, 225, 107, + 12, 15, 225, 106, 12, 15, 225, 105, 12, 15, 225, 104, 12, 15, 225, 103, + 12, 15, 225, 102, 12, 15, 225, 101, 12, 15, 225, 100, 12, 15, 225, 99, + 12, 15, 225, 98, 12, 15, 225, 97, 12, 15, 225, 96, 12, 15, 225, 95, 12, + 15, 225, 94, 12, 15, 225, 93, 12, 15, 225, 92, 12, 15, 225, 91, 12, 15, + 225, 90, 12, 15, 225, 89, 12, 15, 225, 88, 12, 15, 225, 87, 12, 15, 225, + 86, 12, 15, 225, 85, 12, 15, 225, 84, 12, 15, 225, 83, 12, 15, 225, 82, + 12, 15, 225, 81, 12, 15, 225, 80, 12, 15, 225, 79, 12, 15, 225, 78, 12, + 15, 225, 77, 12, 15, 225, 76, 12, 15, 225, 75, 12, 15, 225, 74, 12, 15, + 225, 73, 12, 15, 225, 72, 12, 15, 225, 71, 12, 15, 225, 70, 12, 15, 225, + 69, 12, 15, 225, 68, 12, 15, 225, 67, 12, 15, 225, 66, 12, 15, 225, 65, + 12, 15, 225, 64, 12, 15, 225, 63, 12, 15, 225, 62, 12, 15, 225, 61, 12, + 15, 225, 60, 12, 15, 225, 59, 12, 15, 225, 58, 12, 15, 225, 57, 12, 15, + 225, 56, 12, 15, 225, 55, 12, 15, 225, 54, 12, 15, 225, 53, 12, 15, 225, + 52, 12, 15, 225, 51, 12, 15, 225, 50, 12, 15, 225, 49, 12, 15, 225, 48, + 12, 15, 225, 47, 12, 15, 225, 46, 12, 15, 225, 45, 12, 15, 225, 44, 12, + 15, 225, 43, 12, 15, 225, 42, 12, 15, 225, 41, 12, 15, 225, 40, 12, 15, + 225, 39, 12, 15, 225, 38, 12, 15, 225, 37, 12, 15, 225, 36, 12, 15, 225, + 35, 12, 15, 225, 34, 12, 15, 225, 33, 12, 15, 225, 32, 12, 15, 225, 31, + 12, 15, 225, 30, 12, 15, 225, 29, 12, 15, 225, 28, 12, 15, 225, 27, 12, + 15, 225, 26, 12, 15, 225, 25, 12, 15, 225, 24, 12, 15, 225, 23, 12, 15, + 225, 22, 12, 15, 225, 21, 12, 15, 225, 20, 12, 15, 225, 19, 12, 15, 225, + 18, 12, 15, 225, 17, 12, 15, 225, 16, 12, 15, 225, 15, 12, 15, 225, 14, + 12, 15, 225, 13, 12, 15, 225, 12, 12, 15, 225, 11, 12, 15, 225, 10, 12, + 15, 225, 9, 12, 15, 225, 8, 12, 15, 225, 7, 12, 15, 225, 6, 12, 15, 225, + 5, 12, 15, 225, 4, 12, 15, 225, 3, 12, 15, 225, 2, 12, 15, 225, 1, 12, + 15, 225, 0, 12, 15, 224, 255, 12, 15, 224, 254, 12, 15, 224, 253, 12, 15, + 224, 252, 12, 15, 224, 251, 12, 15, 224, 250, 12, 15, 224, 249, 12, 15, + 224, 248, 12, 15, 224, 247, 12, 15, 224, 246, 12, 15, 224, 245, 12, 15, + 224, 244, 12, 15, 224, 243, 12, 15, 224, 242, 12, 15, 224, 241, 12, 15, + 224, 240, 12, 15, 224, 239, 12, 15, 224, 238, 12, 15, 224, 237, 12, 15, + 224, 236, 12, 15, 224, 235, 12, 15, 224, 234, 12, 15, 224, 233, 12, 15, + 224, 232, 12, 15, 224, 231, 12, 15, 224, 230, 12, 15, 224, 229, 12, 15, + 224, 228, 12, 15, 224, 227, 12, 15, 224, 226, 12, 15, 224, 225, 12, 15, + 224, 224, 12, 15, 224, 223, 12, 15, 224, 222, 12, 15, 224, 221, 12, 15, + 224, 220, 12, 15, 224, 219, 12, 15, 224, 218, 12, 15, 224, 217, 12, 15, + 224, 216, 12, 15, 224, 215, 12, 15, 224, 214, 12, 15, 224, 213, 12, 15, + 224, 212, 12, 15, 224, 211, 12, 15, 224, 210, 12, 15, 224, 209, 12, 15, + 224, 208, 12, 15, 224, 207, 12, 15, 224, 206, 12, 15, 224, 205, 12, 15, + 224, 204, 12, 15, 224, 203, 12, 15, 224, 202, 12, 15, 224, 201, 12, 15, + 224, 200, 12, 15, 224, 199, 12, 15, 224, 198, 12, 15, 224, 197, 12, 15, + 224, 196, 12, 15, 224, 195, 12, 15, 224, 194, 12, 15, 224, 193, 12, 15, + 224, 192, 12, 15, 224, 191, 12, 15, 224, 190, 12, 15, 224, 189, 12, 15, + 224, 188, 12, 15, 224, 187, 12, 15, 224, 186, 12, 15, 224, 185, 12, 15, + 224, 184, 12, 15, 224, 183, 12, 15, 224, 182, 12, 15, 224, 181, 12, 15, + 224, 180, 12, 15, 224, 179, 12, 15, 224, 178, 12, 15, 224, 177, 12, 15, + 224, 176, 12, 15, 224, 175, 12, 15, 224, 174, 12, 15, 224, 173, 12, 15, + 224, 172, 12, 15, 224, 171, 12, 15, 224, 170, 12, 15, 224, 169, 12, 15, + 224, 168, 12, 15, 224, 167, 12, 15, 224, 166, 12, 15, 224, 165, 12, 15, + 224, 164, 12, 15, 224, 163, 12, 15, 224, 162, 12, 15, 224, 161, 12, 15, + 224, 160, 12, 15, 224, 159, 12, 15, 224, 158, 12, 15, 224, 157, 12, 15, + 224, 156, 12, 15, 224, 155, 12, 15, 224, 154, 12, 15, 224, 153, 12, 15, + 224, 152, 12, 15, 224, 151, 12, 15, 224, 150, 12, 15, 224, 149, 12, 15, + 224, 148, 12, 15, 224, 147, 12, 15, 224, 146, 12, 15, 224, 145, 12, 15, + 224, 144, 12, 15, 224, 143, 12, 15, 224, 142, 12, 15, 224, 141, 12, 15, + 224, 140, 12, 15, 224, 139, 12, 15, 224, 138, 12, 15, 224, 137, 12, 15, + 224, 136, 12, 15, 224, 135, 12, 15, 224, 134, 12, 15, 224, 133, 12, 15, + 224, 132, 12, 15, 224, 131, 12, 15, 224, 130, 12, 15, 224, 129, 12, 15, + 224, 128, 12, 15, 224, 127, 12, 15, 224, 126, 12, 15, 224, 125, 12, 15, + 224, 124, 12, 15, 224, 123, 12, 15, 224, 122, 12, 15, 224, 121, 12, 15, + 224, 120, 12, 15, 224, 119, 12, 15, 224, 118, 12, 15, 224, 117, 12, 15, + 224, 116, 12, 15, 224, 115, 12, 15, 224, 114, 12, 15, 224, 113, 12, 15, + 224, 112, 12, 15, 224, 111, 12, 15, 224, 110, 12, 15, 224, 109, 12, 15, + 224, 108, 12, 15, 224, 107, 12, 15, 224, 106, 12, 15, 224, 105, 12, 15, + 224, 104, 12, 15, 224, 103, 12, 15, 224, 102, 12, 15, 224, 101, 12, 15, + 224, 100, 12, 15, 224, 99, 12, 15, 224, 98, 12, 15, 224, 97, 12, 15, 224, + 96, 12, 15, 224, 95, 12, 15, 224, 94, 12, 15, 224, 93, 12, 15, 224, 92, + 12, 15, 224, 91, 12, 15, 224, 90, 12, 15, 224, 89, 12, 15, 224, 88, 12, + 15, 224, 87, 12, 15, 224, 86, 12, 15, 224, 85, 12, 15, 224, 84, 12, 15, + 224, 83, 12, 15, 224, 82, 12, 15, 224, 81, 12, 15, 224, 80, 12, 15, 224, + 79, 12, 15, 224, 78, 12, 15, 224, 77, 12, 15, 224, 76, 12, 15, 224, 75, + 12, 15, 224, 74, 12, 15, 224, 73, 12, 15, 224, 72, 12, 15, 224, 71, 12, + 15, 224, 70, 12, 15, 224, 69, 12, 15, 224, 68, 12, 15, 224, 67, 12, 15, + 224, 66, 12, 15, 224, 65, 12, 15, 224, 64, 12, 15, 224, 63, 12, 15, 224, + 62, 12, 15, 224, 61, 12, 15, 224, 60, 12, 15, 224, 59, 12, 15, 224, 58, + 12, 15, 224, 57, 12, 15, 224, 56, 12, 15, 224, 55, 12, 15, 224, 54, 12, + 15, 224, 53, 12, 15, 224, 52, 12, 15, 224, 51, 12, 15, 224, 50, 12, 15, + 224, 49, 12, 15, 224, 48, 12, 15, 224, 47, 12, 15, 224, 46, 12, 15, 224, + 45, 12, 15, 224, 44, 12, 15, 224, 43, 12, 15, 224, 42, 12, 15, 224, 41, + 12, 15, 224, 40, 12, 15, 224, 39, 12, 15, 224, 38, 12, 15, 224, 37, 12, + 15, 224, 36, 12, 15, 224, 35, 12, 15, 224, 34, 12, 15, 224, 33, 12, 15, + 224, 32, 12, 15, 224, 31, 12, 15, 224, 30, 12, 15, 224, 29, 12, 15, 224, + 28, 12, 15, 224, 27, 12, 15, 224, 26, 12, 15, 224, 25, 12, 15, 224, 24, + 12, 15, 224, 23, 12, 15, 224, 22, 12, 15, 224, 21, 12, 15, 224, 20, 12, + 15, 224, 19, 12, 15, 224, 18, 12, 15, 224, 17, 12, 15, 224, 16, 12, 15, + 224, 15, 12, 15, 224, 14, 12, 15, 224, 13, 12, 15, 224, 12, 12, 15, 224, + 11, 12, 15, 224, 10, 12, 15, 224, 9, 12, 15, 224, 8, 12, 15, 224, 7, 12, + 15, 224, 6, 12, 15, 224, 5, 12, 15, 224, 4, 12, 15, 224, 3, 12, 15, 224, + 2, 12, 15, 224, 1, 12, 15, 224, 0, 12, 15, 223, 255, 12, 15, 223, 254, + 12, 15, 223, 253, 12, 15, 223, 252, 12, 15, 223, 251, 12, 15, 223, 250, + 12, 15, 223, 249, 12, 15, 223, 248, 12, 15, 223, 247, 12, 15, 223, 246, + 12, 15, 223, 245, 12, 15, 223, 244, 12, 15, 223, 243, 12, 15, 223, 242, + 12, 15, 223, 241, 12, 15, 223, 240, 12, 15, 223, 239, 12, 15, 223, 238, + 12, 15, 223, 237, 12, 15, 223, 236, 12, 15, 223, 235, 12, 15, 223, 234, + 12, 15, 223, 233, 12, 15, 223, 232, 12, 15, 223, 231, 12, 15, 223, 230, + 12, 15, 223, 229, 12, 15, 223, 228, 12, 15, 223, 227, 12, 15, 223, 226, + 12, 15, 223, 225, 12, 15, 223, 224, 12, 15, 223, 223, 12, 15, 223, 222, + 12, 15, 223, 221, 12, 15, 223, 220, 12, 15, 223, 219, 12, 15, 223, 218, + 12, 15, 223, 217, 12, 15, 223, 216, 12, 15, 223, 215, 12, 15, 223, 214, + 12, 15, 223, 213, 12, 15, 223, 212, 12, 15, 223, 211, 12, 15, 223, 210, + 12, 15, 223, 209, 12, 15, 223, 208, 12, 15, 223, 207, 12, 15, 223, 206, + 12, 15, 223, 205, 12, 15, 223, 204, 12, 15, 223, 203, 12, 15, 223, 202, + 8, 2, 34, 232, 242, 8, 2, 34, 232, 238, 8, 2, 34, 232, 180, 8, 2, 34, + 232, 241, 8, 2, 34, 232, 240, 8, 2, 34, 177, 206, 4, 200, 39, 8, 2, 34, + 201, 113, 250, 199, 2, 34, 216, 168, 212, 240, 250, 199, 2, 34, 216, 168, + 234, 151, 250, 199, 2, 34, 216, 168, 223, 103, 250, 199, 2, 34, 195, 72, + 212, 240, 250, 199, 2, 34, 216, 168, 192, 212, 135, 1, 191, 251, 4, 229, + 87, 135, 209, 55, 222, 154, 195, 163, 135, 34, 192, 31, 191, 251, 191, + 251, 210, 78, 135, 1, 251, 101, 250, 76, 135, 1, 193, 76, 251, 141, 135, + 1, 193, 76, 237, 206, 135, 1, 193, 76, 229, 213, 135, 1, 193, 76, 222, + 79, 135, 1, 193, 76, 220, 3, 135, 1, 193, 76, 52, 216, 174, 135, 1, 193, + 76, 207, 33, 135, 1, 193, 76, 199, 157, 135, 1, 251, 101, 107, 57, 135, + 1, 203, 65, 4, 203, 65, 236, 96, 135, 1, 203, 65, 4, 202, 170, 236, 96, + 135, 1, 203, 65, 4, 237, 226, 24, 203, 65, 236, 96, 135, 1, 203, 65, 4, + 237, 226, 24, 202, 170, 236, 96, 135, 1, 130, 4, 210, 78, 135, 1, 130, 4, + 208, 77, 135, 1, 130, 4, 217, 50, 135, 1, 248, 165, 4, 237, 225, 135, 1, + 231, 2, 4, 237, 225, 135, 1, 237, 207, 4, 237, 225, 135, 1, 229, 214, 4, + 217, 50, 135, 1, 195, 156, 4, 237, 225, 135, 1, 191, 92, 4, 237, 225, + 135, 1, 199, 69, 4, 237, 225, 135, 1, 191, 251, 4, 237, 225, 135, 1, 52, + 222, 80, 4, 237, 225, 135, 1, 222, 80, 4, 237, 225, 135, 1, 220, 4, 4, + 237, 225, 135, 1, 216, 175, 4, 237, 225, 135, 1, 212, 118, 4, 237, 225, + 135, 1, 205, 144, 4, 237, 225, 135, 1, 52, 210, 54, 4, 237, 225, 135, 1, + 210, 54, 4, 237, 225, 135, 1, 197, 160, 4, 237, 225, 135, 1, 208, 37, 4, + 237, 225, 135, 1, 207, 34, 4, 237, 225, 135, 1, 203, 65, 4, 237, 225, + 135, 1, 199, 158, 4, 237, 225, 135, 1, 195, 156, 4, 228, 231, 135, 1, + 248, 165, 4, 207, 156, 135, 1, 222, 80, 4, 207, 156, 135, 1, 210, 54, 4, + 207, 156, 135, 34, 130, 220, 3, 9, 1, 130, 193, 149, 76, 20, 9, 1, 130, + 193, 149, 52, 20, 9, 1, 248, 206, 76, 20, 9, 1, 248, 206, 52, 20, 9, 1, + 248, 206, 89, 20, 9, 1, 248, 206, 216, 198, 20, 9, 1, 210, 33, 76, 20, 9, + 1, 210, 33, 52, 20, 9, 1, 210, 33, 89, 20, 9, 1, 210, 33, 216, 198, 20, + 9, 1, 248, 194, 76, 20, 9, 1, 248, 194, 52, 20, 9, 1, 248, 194, 89, 20, + 9, 1, 248, 194, 216, 198, 20, 9, 1, 197, 119, 76, 20, 9, 1, 197, 119, 52, + 20, 9, 1, 197, 119, 89, 20, 9, 1, 197, 119, 216, 198, 20, 9, 1, 199, 108, + 76, 20, 9, 1, 199, 108, 52, 20, 9, 1, 199, 108, 89, 20, 9, 1, 199, 108, + 216, 198, 20, 9, 1, 197, 121, 76, 20, 9, 1, 197, 121, 52, 20, 9, 1, 197, + 121, 89, 20, 9, 1, 197, 121, 216, 198, 20, 9, 1, 195, 144, 76, 20, 9, 1, + 195, 144, 52, 20, 9, 1, 195, 144, 89, 20, 9, 1, 195, 144, 216, 198, 20, + 9, 1, 210, 31, 76, 20, 9, 1, 210, 31, 52, 20, 9, 1, 210, 31, 89, 20, 9, + 1, 210, 31, 216, 198, 20, 9, 1, 234, 254, 76, 20, 9, 1, 234, 254, 52, 20, + 9, 1, 234, 254, 89, 20, 9, 1, 234, 254, 216, 198, 20, 9, 1, 212, 75, 76, + 20, 9, 1, 212, 75, 52, 20, 9, 1, 212, 75, 89, 20, 9, 1, 212, 75, 216, + 198, 20, 9, 1, 199, 145, 76, 20, 9, 1, 199, 145, 52, 20, 9, 1, 199, 145, + 89, 20, 9, 1, 199, 145, 216, 198, 20, 9, 1, 199, 143, 76, 20, 9, 1, 199, + 143, 52, 20, 9, 1, 199, 143, 89, 20, 9, 1, 199, 143, 216, 198, 20, 9, 1, + 237, 144, 76, 20, 9, 1, 237, 144, 52, 20, 9, 1, 237, 220, 76, 20, 9, 1, + 237, 220, 52, 20, 9, 1, 235, 35, 76, 20, 9, 1, 235, 35, 52, 20, 9, 1, + 237, 142, 76, 20, 9, 1, 237, 142, 52, 20, 9, 1, 222, 232, 76, 20, 9, 1, + 222, 232, 52, 20, 9, 1, 206, 97, 76, 20, 9, 1, 206, 97, 52, 20, 9, 1, + 221, 236, 76, 20, 9, 1, 221, 236, 52, 20, 9, 1, 221, 236, 89, 20, 9, 1, + 221, 236, 216, 198, 20, 9, 1, 231, 191, 76, 20, 9, 1, 231, 191, 52, 20, + 9, 1, 231, 191, 89, 20, 9, 1, 231, 191, 216, 198, 20, 9, 1, 230, 134, 76, + 20, 9, 1, 230, 134, 52, 20, 9, 1, 230, 134, 89, 20, 9, 1, 230, 134, 216, + 198, 20, 9, 1, 213, 234, 76, 20, 9, 1, 213, 234, 52, 20, 9, 1, 213, 234, + 89, 20, 9, 1, 213, 234, 216, 198, 20, 9, 1, 213, 12, 231, 21, 76, 20, 9, + 1, 213, 12, 231, 21, 52, 20, 9, 1, 206, 161, 76, 20, 9, 1, 206, 161, 52, + 20, 9, 1, 206, 161, 89, 20, 9, 1, 206, 161, 216, 198, 20, 9, 1, 229, 179, + 4, 99, 95, 76, 20, 9, 1, 229, 179, 4, 99, 95, 52, 20, 9, 1, 229, 179, + 230, 221, 76, 20, 9, 1, 229, 179, 230, 221, 52, 20, 9, 1, 229, 179, 230, + 221, 89, 20, 9, 1, 229, 179, 230, 221, 216, 198, 20, 9, 1, 229, 179, 236, + 126, 76, 20, 9, 1, 229, 179, 236, 126, 52, 20, 9, 1, 229, 179, 236, 126, + 89, 20, 9, 1, 229, 179, 236, 126, 216, 198, 20, 9, 1, 99, 249, 31, 76, + 20, 9, 1, 99, 249, 31, 52, 20, 9, 1, 99, 249, 31, 4, 230, 25, 95, 76, 20, + 9, 1, 99, 249, 31, 4, 230, 25, 95, 52, 20, 9, 16, 75, 56, 9, 16, 75, 60, + 9, 16, 103, 183, 56, 9, 16, 103, 183, 60, 9, 16, 115, 183, 56, 9, 16, + 115, 183, 60, 9, 16, 115, 183, 209, 51, 235, 75, 56, 9, 16, 115, 183, + 209, 51, 235, 75, 60, 9, 16, 232, 90, 183, 56, 9, 16, 232, 90, 183, 60, + 9, 16, 54, 81, 249, 38, 60, 9, 16, 103, 183, 195, 82, 56, 9, 16, 103, + 183, 195, 82, 60, 9, 16, 206, 183, 9, 16, 2, 199, 215, 56, 9, 16, 2, 199, + 215, 60, 9, 16, 193, 149, 56, 9, 1, 214, 57, 76, 20, 9, 1, 214, 57, 52, + 20, 9, 1, 214, 57, 89, 20, 9, 1, 214, 57, 216, 198, 20, 9, 1, 126, 76, + 20, 9, 1, 126, 52, 20, 9, 1, 211, 140, 76, 20, 9, 1, 211, 140, 52, 20, 9, + 1, 191, 226, 76, 20, 9, 1, 191, 226, 52, 20, 9, 1, 126, 4, 230, 25, 95, + 76, 20, 9, 1, 195, 151, 76, 20, 9, 1, 195, 151, 52, 20, 9, 1, 221, 108, + 211, 140, 76, 20, 9, 1, 221, 108, 211, 140, 52, 20, 9, 1, 221, 108, 191, + 226, 76, 20, 9, 1, 221, 108, 191, 226, 52, 20, 9, 1, 234, 227, 76, 20, 9, + 1, 234, 227, 52, 20, 9, 1, 234, 227, 89, 20, 9, 1, 234, 227, 216, 198, + 20, 9, 1, 196, 133, 222, 1, 221, 108, 130, 217, 80, 89, 20, 9, 1, 196, + 133, 222, 1, 221, 108, 130, 217, 80, 216, 198, 20, 9, 34, 99, 4, 230, 25, + 95, 4, 130, 76, 20, 9, 34, 99, 4, 230, 25, 95, 4, 130, 52, 20, 9, 34, 99, + 4, 230, 25, 95, 4, 251, 230, 76, 20, 9, 34, 99, 4, 230, 25, 95, 4, 251, + 230, 52, 20, 9, 34, 99, 4, 230, 25, 95, 4, 193, 132, 76, 20, 9, 34, 99, + 4, 230, 25, 95, 4, 193, 132, 52, 20, 9, 34, 99, 4, 230, 25, 95, 4, 126, + 76, 20, 9, 34, 99, 4, 230, 25, 95, 4, 126, 52, 20, 9, 34, 99, 4, 230, 25, + 95, 4, 211, 140, 76, 20, 9, 34, 99, 4, 230, 25, 95, 4, 211, 140, 52, 20, + 9, 34, 99, 4, 230, 25, 95, 4, 191, 226, 76, 20, 9, 34, 99, 4, 230, 25, + 95, 4, 191, 226, 52, 20, 9, 34, 99, 4, 230, 25, 95, 4, 234, 227, 76, 20, + 9, 34, 99, 4, 230, 25, 95, 4, 234, 227, 52, 20, 9, 34, 99, 4, 230, 25, + 95, 4, 234, 227, 89, 20, 9, 34, 196, 133, 221, 108, 99, 4, 230, 25, 95, + 4, 130, 217, 80, 76, 20, 9, 34, 196, 133, 221, 108, 99, 4, 230, 25, 95, + 4, 130, 217, 80, 52, 20, 9, 34, 196, 133, 221, 108, 99, 4, 230, 25, 95, + 4, 130, 217, 80, 89, 20, 9, 1, 233, 33, 99, 76, 20, 9, 1, 233, 33, 99, + 52, 20, 9, 1, 233, 33, 99, 89, 20, 9, 1, 233, 33, 99, 216, 198, 20, 9, + 34, 99, 4, 230, 25, 95, 4, 222, 235, 76, 20, 9, 34, 99, 4, 230, 25, 95, + 4, 179, 76, 20, 9, 34, 99, 4, 230, 25, 95, 4, 92, 76, 20, 9, 34, 99, 4, + 230, 25, 95, 4, 130, 217, 80, 76, 20, 9, 34, 99, 4, 230, 25, 95, 4, 99, + 76, 20, 9, 34, 248, 196, 4, 222, 235, 76, 20, 9, 34, 248, 196, 4, 179, + 76, 20, 9, 34, 248, 196, 4, 221, 186, 76, 20, 9, 34, 248, 196, 4, 92, 76, + 20, 9, 34, 248, 196, 4, 130, 217, 80, 76, 20, 9, 34, 248, 196, 4, 99, 76, + 20, 9, 34, 199, 110, 4, 222, 235, 76, 20, 9, 34, 199, 110, 4, 179, 76, + 20, 9, 34, 199, 110, 4, 221, 186, 76, 20, 9, 34, 199, 110, 4, 92, 76, 20, + 9, 34, 199, 110, 4, 130, 217, 80, 76, 20, 9, 34, 199, 110, 4, 99, 76, 20, + 9, 34, 199, 25, 4, 222, 235, 76, 20, 9, 34, 199, 25, 4, 92, 76, 20, 9, + 34, 199, 25, 4, 130, 217, 80, 76, 20, 9, 34, 199, 25, 4, 99, 76, 20, 9, + 34, 222, 235, 4, 179, 76, 20, 9, 34, 222, 235, 4, 92, 76, 20, 9, 34, 179, + 4, 222, 235, 76, 20, 9, 34, 179, 4, 92, 76, 20, 9, 34, 221, 186, 4, 222, + 235, 76, 20, 9, 34, 221, 186, 4, 179, 76, 20, 9, 34, 221, 186, 4, 92, 76, + 20, 9, 34, 205, 42, 4, 222, 235, 76, 20, 9, 34, 205, 42, 4, 179, 76, 20, + 9, 34, 205, 42, 4, 221, 186, 76, 20, 9, 34, 205, 42, 4, 92, 76, 20, 9, + 34, 205, 188, 4, 179, 76, 20, 9, 34, 205, 188, 4, 92, 76, 20, 9, 34, 237, + 236, 4, 222, 235, 76, 20, 9, 34, 237, 236, 4, 179, 76, 20, 9, 34, 237, + 236, 4, 221, 186, 76, 20, 9, 34, 237, 236, 4, 92, 76, 20, 9, 34, 199, + 215, 4, 179, 76, 20, 9, 34, 199, 215, 4, 92, 76, 20, 9, 34, 191, 117, 4, + 92, 76, 20, 9, 34, 251, 179, 4, 222, 235, 76, 20, 9, 34, 251, 179, 4, 92, + 76, 20, 9, 34, 231, 50, 4, 222, 235, 76, 20, 9, 34, 231, 50, 4, 92, 76, + 20, 9, 34, 233, 6, 4, 222, 235, 76, 20, 9, 34, 233, 6, 4, 179, 76, 20, 9, + 34, 233, 6, 4, 221, 186, 76, 20, 9, 34, 233, 6, 4, 92, 76, 20, 9, 34, + 233, 6, 4, 130, 217, 80, 76, 20, 9, 34, 233, 6, 4, 99, 76, 20, 9, 34, + 208, 83, 4, 179, 76, 20, 9, 34, 208, 83, 4, 92, 76, 20, 9, 34, 208, 83, + 4, 130, 217, 80, 76, 20, 9, 34, 208, 83, 4, 99, 76, 20, 9, 34, 222, 80, + 4, 130, 76, 20, 9, 34, 222, 80, 4, 222, 235, 76, 20, 9, 34, 222, 80, 4, + 179, 76, 20, 9, 34, 222, 80, 4, 221, 186, 76, 20, 9, 34, 222, 80, 4, 220, + 12, 76, 20, 9, 34, 222, 80, 4, 92, 76, 20, 9, 34, 222, 80, 4, 130, 217, + 80, 76, 20, 9, 34, 222, 80, 4, 99, 76, 20, 9, 34, 220, 12, 4, 222, 235, + 76, 20, 9, 34, 220, 12, 4, 179, 76, 20, 9, 34, 220, 12, 4, 221, 186, 76, + 20, 9, 34, 220, 12, 4, 92, 76, 20, 9, 34, 220, 12, 4, 130, 217, 80, 76, + 20, 9, 34, 220, 12, 4, 99, 76, 20, 9, 34, 92, 4, 222, 235, 76, 20, 9, 34, + 92, 4, 179, 76, 20, 9, 34, 92, 4, 221, 186, 76, 20, 9, 34, 92, 4, 92, 76, + 20, 9, 34, 92, 4, 130, 217, 80, 76, 20, 9, 34, 92, 4, 99, 76, 20, 9, 34, + 213, 12, 4, 222, 235, 76, 20, 9, 34, 213, 12, 4, 179, 76, 20, 9, 34, 213, + 12, 4, 221, 186, 76, 20, 9, 34, 213, 12, 4, 92, 76, 20, 9, 34, 213, 12, + 4, 130, 217, 80, 76, 20, 9, 34, 213, 12, 4, 99, 76, 20, 9, 34, 229, 179, + 4, 222, 235, 76, 20, 9, 34, 229, 179, 4, 92, 76, 20, 9, 34, 229, 179, 4, + 130, 217, 80, 76, 20, 9, 34, 229, 179, 4, 99, 76, 20, 9, 34, 99, 4, 222, + 235, 76, 20, 9, 34, 99, 4, 179, 76, 20, 9, 34, 99, 4, 221, 186, 76, 20, + 9, 34, 99, 4, 92, 76, 20, 9, 34, 99, 4, 130, 217, 80, 76, 20, 9, 34, 99, + 4, 99, 76, 20, 9, 34, 199, 37, 4, 200, 177, 130, 76, 20, 9, 34, 207, 67, + 4, 200, 177, 130, 76, 20, 9, 34, 130, 217, 80, 4, 200, 177, 130, 76, 20, + 9, 34, 203, 151, 4, 237, 199, 76, 20, 9, 34, 203, 151, 4, 222, 25, 76, + 20, 9, 34, 203, 151, 4, 233, 30, 76, 20, 9, 34, 203, 151, 4, 237, 201, + 76, 20, 9, 34, 203, 151, 4, 222, 27, 76, 20, 9, 34, 203, 151, 4, 200, + 177, 130, 76, 20, 9, 34, 99, 4, 230, 25, 95, 4, 207, 67, 52, 20, 9, 34, + 99, 4, 230, 25, 95, 4, 191, 114, 52, 20, 9, 34, 99, 4, 230, 25, 95, 4, + 92, 52, 20, 9, 34, 99, 4, 230, 25, 95, 4, 213, 12, 52, 20, 9, 34, 99, 4, + 230, 25, 95, 4, 130, 217, 80, 52, 20, 9, 34, 99, 4, 230, 25, 95, 4, 99, + 52, 20, 9, 34, 248, 196, 4, 207, 67, 52, 20, 9, 34, 248, 196, 4, 191, + 114, 52, 20, 9, 34, 248, 196, 4, 92, 52, 20, 9, 34, 248, 196, 4, 213, 12, + 52, 20, 9, 34, 248, 196, 4, 130, 217, 80, 52, 20, 9, 34, 248, 196, 4, 99, + 52, 20, 9, 34, 199, 110, 4, 207, 67, 52, 20, 9, 34, 199, 110, 4, 191, + 114, 52, 20, 9, 34, 199, 110, 4, 92, 52, 20, 9, 34, 199, 110, 4, 213, 12, + 52, 20, 9, 34, 199, 110, 4, 130, 217, 80, 52, 20, 9, 34, 199, 110, 4, 99, + 52, 20, 9, 34, 199, 25, 4, 207, 67, 52, 20, 9, 34, 199, 25, 4, 191, 114, + 52, 20, 9, 34, 199, 25, 4, 92, 52, 20, 9, 34, 199, 25, 4, 213, 12, 52, + 20, 9, 34, 199, 25, 4, 130, 217, 80, 52, 20, 9, 34, 199, 25, 4, 99, 52, + 20, 9, 34, 233, 6, 4, 130, 217, 80, 52, 20, 9, 34, 233, 6, 4, 99, 52, 20, + 9, 34, 208, 83, 4, 130, 217, 80, 52, 20, 9, 34, 208, 83, 4, 99, 52, 20, + 9, 34, 222, 80, 4, 130, 52, 20, 9, 34, 222, 80, 4, 220, 12, 52, 20, 9, + 34, 222, 80, 4, 92, 52, 20, 9, 34, 222, 80, 4, 130, 217, 80, 52, 20, 9, + 34, 222, 80, 4, 99, 52, 20, 9, 34, 220, 12, 4, 92, 52, 20, 9, 34, 220, + 12, 4, 130, 217, 80, 52, 20, 9, 34, 220, 12, 4, 99, 52, 20, 9, 34, 92, 4, + 130, 52, 20, 9, 34, 92, 4, 92, 52, 20, 9, 34, 213, 12, 4, 207, 67, 52, + 20, 9, 34, 213, 12, 4, 191, 114, 52, 20, 9, 34, 213, 12, 4, 92, 52, 20, + 9, 34, 213, 12, 4, 213, 12, 52, 20, 9, 34, 213, 12, 4, 130, 217, 80, 52, + 20, 9, 34, 213, 12, 4, 99, 52, 20, 9, 34, 130, 217, 80, 4, 200, 177, 130, + 52, 20, 9, 34, 99, 4, 207, 67, 52, 20, 9, 34, 99, 4, 191, 114, 52, 20, 9, + 34, 99, 4, 92, 52, 20, 9, 34, 99, 4, 213, 12, 52, 20, 9, 34, 99, 4, 130, + 217, 80, 52, 20, 9, 34, 99, 4, 99, 52, 20, 9, 34, 99, 4, 230, 25, 95, 4, + 222, 235, 89, 20, 9, 34, 99, 4, 230, 25, 95, 4, 179, 89, 20, 9, 34, 99, + 4, 230, 25, 95, 4, 221, 186, 89, 20, 9, 34, 99, 4, 230, 25, 95, 4, 92, + 89, 20, 9, 34, 99, 4, 230, 25, 95, 4, 229, 179, 89, 20, 9, 34, 248, 196, + 4, 222, 235, 89, 20, 9, 34, 248, 196, 4, 179, 89, 20, 9, 34, 248, 196, 4, + 221, 186, 89, 20, 9, 34, 248, 196, 4, 92, 89, 20, 9, 34, 248, 196, 4, + 229, 179, 89, 20, 9, 34, 199, 110, 4, 222, 235, 89, 20, 9, 34, 199, 110, + 4, 179, 89, 20, 9, 34, 199, 110, 4, 221, 186, 89, 20, 9, 34, 199, 110, 4, + 92, 89, 20, 9, 34, 199, 110, 4, 229, 179, 89, 20, 9, 34, 199, 25, 4, 92, + 89, 20, 9, 34, 222, 235, 4, 179, 89, 20, 9, 34, 222, 235, 4, 92, 89, 20, + 9, 34, 179, 4, 222, 235, 89, 20, 9, 34, 179, 4, 92, 89, 20, 9, 34, 221, + 186, 4, 222, 235, 89, 20, 9, 34, 221, 186, 4, 92, 89, 20, 9, 34, 205, 42, + 4, 222, 235, 89, 20, 9, 34, 205, 42, 4, 179, 89, 20, 9, 34, 205, 42, 4, + 221, 186, 89, 20, 9, 34, 205, 42, 4, 92, 89, 20, 9, 34, 205, 188, 4, 179, + 89, 20, 9, 34, 205, 188, 4, 221, 186, 89, 20, 9, 34, 205, 188, 4, 92, 89, + 20, 9, 34, 237, 236, 4, 222, 235, 89, 20, 9, 34, 237, 236, 4, 179, 89, + 20, 9, 34, 237, 236, 4, 221, 186, 89, 20, 9, 34, 237, 236, 4, 92, 89, 20, + 9, 34, 199, 215, 4, 179, 89, 20, 9, 34, 191, 117, 4, 92, 89, 20, 9, 34, + 251, 179, 4, 222, 235, 89, 20, 9, 34, 251, 179, 4, 92, 89, 20, 9, 34, + 231, 50, 4, 222, 235, 89, 20, 9, 34, 231, 50, 4, 92, 89, 20, 9, 34, 233, + 6, 4, 222, 235, 89, 20, 9, 34, 233, 6, 4, 179, 89, 20, 9, 34, 233, 6, 4, + 221, 186, 89, 20, 9, 34, 233, 6, 4, 92, 89, 20, 9, 34, 208, 83, 4, 179, + 89, 20, 9, 34, 208, 83, 4, 92, 89, 20, 9, 34, 222, 80, 4, 222, 235, 89, + 20, 9, 34, 222, 80, 4, 179, 89, 20, 9, 34, 222, 80, 4, 221, 186, 89, 20, + 9, 34, 222, 80, 4, 220, 12, 89, 20, 9, 34, 222, 80, 4, 92, 89, 20, 9, 34, + 220, 12, 4, 222, 235, 89, 20, 9, 34, 220, 12, 4, 179, 89, 20, 9, 34, 220, + 12, 4, 221, 186, 89, 20, 9, 34, 220, 12, 4, 92, 89, 20, 9, 34, 220, 12, + 4, 229, 179, 89, 20, 9, 34, 92, 4, 222, 235, 89, 20, 9, 34, 92, 4, 179, + 89, 20, 9, 34, 92, 4, 221, 186, 89, 20, 9, 34, 92, 4, 92, 89, 20, 9, 34, + 213, 12, 4, 222, 235, 89, 20, 9, 34, 213, 12, 4, 179, 89, 20, 9, 34, 213, + 12, 4, 221, 186, 89, 20, 9, 34, 213, 12, 4, 92, 89, 20, 9, 34, 213, 12, + 4, 229, 179, 89, 20, 9, 34, 229, 179, 4, 222, 235, 89, 20, 9, 34, 229, + 179, 4, 92, 89, 20, 9, 34, 229, 179, 4, 200, 177, 130, 89, 20, 9, 34, 99, + 4, 222, 235, 89, 20, 9, 34, 99, 4, 179, 89, 20, 9, 34, 99, 4, 221, 186, + 89, 20, 9, 34, 99, 4, 92, 89, 20, 9, 34, 99, 4, 229, 179, 89, 20, 9, 34, + 99, 4, 230, 25, 95, 4, 92, 216, 198, 20, 9, 34, 99, 4, 230, 25, 95, 4, + 229, 179, 216, 198, 20, 9, 34, 248, 196, 4, 92, 216, 198, 20, 9, 34, 248, + 196, 4, 229, 179, 216, 198, 20, 9, 34, 199, 110, 4, 92, 216, 198, 20, 9, + 34, 199, 110, 4, 229, 179, 216, 198, 20, 9, 34, 199, 25, 4, 92, 216, 198, + 20, 9, 34, 199, 25, 4, 229, 179, 216, 198, 20, 9, 34, 205, 42, 4, 92, + 216, 198, 20, 9, 34, 205, 42, 4, 229, 179, 216, 198, 20, 9, 34, 203, 105, + 4, 92, 216, 198, 20, 9, 34, 203, 105, 4, 229, 179, 216, 198, 20, 9, 34, + 222, 80, 4, 220, 12, 216, 198, 20, 9, 34, 222, 80, 4, 92, 216, 198, 20, + 9, 34, 220, 12, 4, 92, 216, 198, 20, 9, 34, 213, 12, 4, 92, 216, 198, 20, + 9, 34, 213, 12, 4, 229, 179, 216, 198, 20, 9, 34, 99, 4, 92, 216, 198, + 20, 9, 34, 99, 4, 229, 179, 216, 198, 20, 9, 34, 203, 151, 4, 233, 30, + 216, 198, 20, 9, 34, 203, 151, 4, 237, 201, 216, 198, 20, 9, 34, 203, + 151, 4, 222, 27, 216, 198, 20, 9, 34, 199, 215, 4, 130, 217, 80, 76, 20, + 9, 34, 199, 215, 4, 99, 76, 20, 9, 34, 251, 179, 4, 130, 217, 80, 76, 20, + 9, 34, 251, 179, 4, 99, 76, 20, 9, 34, 231, 50, 4, 130, 217, 80, 76, 20, + 9, 34, 231, 50, 4, 99, 76, 20, 9, 34, 205, 42, 4, 130, 217, 80, 76, 20, + 9, 34, 205, 42, 4, 99, 76, 20, 9, 34, 203, 105, 4, 130, 217, 80, 76, 20, + 9, 34, 203, 105, 4, 99, 76, 20, 9, 34, 179, 4, 130, 217, 80, 76, 20, 9, + 34, 179, 4, 99, 76, 20, 9, 34, 222, 235, 4, 130, 217, 80, 76, 20, 9, 34, + 222, 235, 4, 99, 76, 20, 9, 34, 221, 186, 4, 130, 217, 80, 76, 20, 9, 34, + 221, 186, 4, 99, 76, 20, 9, 34, 205, 188, 4, 130, 217, 80, 76, 20, 9, 34, + 205, 188, 4, 99, 76, 20, 9, 34, 237, 236, 4, 130, 217, 80, 76, 20, 9, 34, + 237, 236, 4, 99, 76, 20, 9, 34, 203, 105, 4, 222, 235, 76, 20, 9, 34, + 203, 105, 4, 179, 76, 20, 9, 34, 203, 105, 4, 221, 186, 76, 20, 9, 34, + 203, 105, 4, 92, 76, 20, 9, 34, 203, 105, 4, 207, 67, 76, 20, 9, 34, 205, + 42, 4, 207, 67, 76, 20, 9, 34, 205, 188, 4, 207, 67, 76, 20, 9, 34, 237, + 236, 4, 207, 67, 76, 20, 9, 34, 199, 215, 4, 130, 217, 80, 52, 20, 9, 34, + 199, 215, 4, 99, 52, 20, 9, 34, 251, 179, 4, 130, 217, 80, 52, 20, 9, 34, + 251, 179, 4, 99, 52, 20, 9, 34, 231, 50, 4, 130, 217, 80, 52, 20, 9, 34, + 231, 50, 4, 99, 52, 20, 9, 34, 205, 42, 4, 130, 217, 80, 52, 20, 9, 34, + 205, 42, 4, 99, 52, 20, 9, 34, 203, 105, 4, 130, 217, 80, 52, 20, 9, 34, + 203, 105, 4, 99, 52, 20, 9, 34, 179, 4, 130, 217, 80, 52, 20, 9, 34, 179, + 4, 99, 52, 20, 9, 34, 222, 235, 4, 130, 217, 80, 52, 20, 9, 34, 222, 235, + 4, 99, 52, 20, 9, 34, 221, 186, 4, 130, 217, 80, 52, 20, 9, 34, 221, 186, + 4, 99, 52, 20, 9, 34, 205, 188, 4, 130, 217, 80, 52, 20, 9, 34, 205, 188, + 4, 99, 52, 20, 9, 34, 237, 236, 4, 130, 217, 80, 52, 20, 9, 34, 237, 236, + 4, 99, 52, 20, 9, 34, 203, 105, 4, 222, 235, 52, 20, 9, 34, 203, 105, 4, + 179, 52, 20, 9, 34, 203, 105, 4, 221, 186, 52, 20, 9, 34, 203, 105, 4, + 92, 52, 20, 9, 34, 203, 105, 4, 207, 67, 52, 20, 9, 34, 205, 42, 4, 207, + 67, 52, 20, 9, 34, 205, 188, 4, 207, 67, 52, 20, 9, 34, 237, 236, 4, 207, + 67, 52, 20, 9, 34, 203, 105, 4, 222, 235, 89, 20, 9, 34, 203, 105, 4, + 179, 89, 20, 9, 34, 203, 105, 4, 221, 186, 89, 20, 9, 34, 203, 105, 4, + 92, 89, 20, 9, 34, 205, 42, 4, 229, 179, 89, 20, 9, 34, 203, 105, 4, 229, + 179, 89, 20, 9, 34, 199, 215, 4, 92, 89, 20, 9, 34, 205, 42, 4, 222, 235, + 216, 198, 20, 9, 34, 205, 42, 4, 179, 216, 198, 20, 9, 34, 205, 42, 4, + 221, 186, 216, 198, 20, 9, 34, 203, 105, 4, 222, 235, 216, 198, 20, 9, + 34, 203, 105, 4, 179, 216, 198, 20, 9, 34, 203, 105, 4, 221, 186, 216, + 198, 20, 9, 34, 199, 215, 4, 92, 216, 198, 20, 9, 34, 191, 117, 4, 92, + 216, 198, 20, 9, 34, 130, 4, 233, 28, 52, 20, 9, 34, 130, 4, 233, 28, 76, + 20, 211, 30, 45, 210, 103, 211, 30, 50, 210, 103, 9, 34, 207, 154, 251, + 122, 9, 34, 207, 162, 251, 121, 251, 56, 9, 34, 207, 162, 251, 121, 251, + 55, 9, 34, 207, 162, 251, 121, 251, 53, 9, 34, 207, 162, 251, 121, 251, + 52, 9, 34, 207, 162, 251, 121, 251, 51, 9, 34, 205, 157, 251, 146, 193, + 181, 9, 34, 251, 146, 250, 167, 9, 34, 251, 145, 250, 167, 9, 34, 251, + 144, 250, 167, 9, 34, 251, 146, 250, 166, 193, 152, 9, 34, 208, 12, 202, + 135, 9, 34, 205, 155, 251, 146, 193, 177, 193, 180, 9, 34, 251, 149, 250, + 167, 9, 34, 199, 230, 193, 179, 9, 34, 207, 153, 251, 122, 9, 34, 199, + 110, 4, 222, 235, 4, 92, 89, 20, 9, 34, 199, 110, 4, 179, 4, 222, 235, + 52, 20, 9, 34, 199, 110, 4, 179, 4, 222, 235, 89, 20, 9, 34, 199, 110, 4, + 179, 4, 92, 89, 20, 9, 34, 199, 110, 4, 221, 186, 4, 92, 89, 20, 9, 34, + 199, 110, 4, 92, 4, 222, 235, 89, 20, 9, 34, 199, 110, 4, 92, 4, 179, 89, + 20, 9, 34, 199, 110, 4, 92, 4, 221, 186, 89, 20, 9, 34, 222, 235, 4, 92, + 4, 179, 52, 20, 9, 34, 222, 235, 4, 92, 4, 179, 89, 20, 9, 34, 179, 4, + 92, 4, 99, 52, 20, 9, 34, 179, 4, 92, 4, 130, 217, 80, 52, 20, 9, 34, + 205, 42, 4, 179, 4, 222, 235, 89, 20, 9, 34, 205, 42, 4, 222, 235, 4, + 179, 89, 20, 9, 34, 205, 42, 4, 222, 235, 4, 130, 217, 80, 52, 20, 9, 34, + 205, 42, 4, 92, 4, 179, 52, 20, 9, 34, 205, 42, 4, 92, 4, 179, 89, 20, 9, + 34, 205, 42, 4, 92, 4, 222, 235, 89, 20, 9, 34, 205, 42, 4, 92, 4, 92, + 52, 20, 9, 34, 205, 42, 4, 92, 4, 92, 89, 20, 9, 34, 205, 188, 4, 179, 4, + 179, 52, 20, 9, 34, 205, 188, 4, 179, 4, 179, 89, 20, 9, 34, 205, 188, 4, + 92, 4, 92, 52, 20, 9, 34, 203, 105, 4, 179, 4, 92, 52, 20, 9, 34, 203, + 105, 4, 179, 4, 92, 89, 20, 9, 34, 203, 105, 4, 222, 235, 4, 99, 52, 20, + 9, 34, 203, 105, 4, 92, 4, 221, 186, 52, 20, 9, 34, 203, 105, 4, 92, 4, + 221, 186, 89, 20, 9, 34, 203, 105, 4, 92, 4, 92, 52, 20, 9, 34, 203, 105, + 4, 92, 4, 92, 89, 20, 9, 34, 237, 236, 4, 179, 4, 130, 217, 80, 52, 20, + 9, 34, 237, 236, 4, 221, 186, 4, 92, 52, 20, 9, 34, 237, 236, 4, 221, + 186, 4, 92, 89, 20, 9, 34, 199, 215, 4, 92, 4, 179, 52, 20, 9, 34, 199, + 215, 4, 92, 4, 179, 89, 20, 9, 34, 199, 215, 4, 92, 4, 92, 89, 20, 9, 34, + 199, 215, 4, 92, 4, 99, 52, 20, 9, 34, 251, 179, 4, 222, 235, 4, 92, 52, + 20, 9, 34, 251, 179, 4, 92, 4, 92, 52, 20, 9, 34, 251, 179, 4, 92, 4, 92, + 89, 20, 9, 34, 251, 179, 4, 92, 4, 130, 217, 80, 52, 20, 9, 34, 231, 50, + 4, 92, 4, 92, 52, 20, 9, 34, 231, 50, 4, 92, 4, 99, 52, 20, 9, 34, 231, + 50, 4, 92, 4, 130, 217, 80, 52, 20, 9, 34, 233, 6, 4, 221, 186, 4, 92, + 52, 20, 9, 34, 233, 6, 4, 221, 186, 4, 92, 89, 20, 9, 34, 208, 83, 4, 92, + 4, 179, 52, 20, 9, 34, 208, 83, 4, 92, 4, 92, 52, 20, 9, 34, 220, 12, 4, + 179, 4, 92, 52, 20, 9, 34, 220, 12, 4, 179, 4, 99, 52, 20, 9, 34, 220, + 12, 4, 179, 4, 130, 217, 80, 52, 20, 9, 34, 220, 12, 4, 222, 235, 4, 222, + 235, 89, 20, 9, 34, 220, 12, 4, 222, 235, 4, 222, 235, 52, 20, 9, 34, + 220, 12, 4, 221, 186, 4, 92, 52, 20, 9, 34, 220, 12, 4, 221, 186, 4, 92, + 89, 20, 9, 34, 220, 12, 4, 92, 4, 179, 52, 20, 9, 34, 220, 12, 4, 92, 4, + 179, 89, 20, 9, 34, 92, 4, 179, 4, 222, 235, 89, 20, 9, 34, 92, 4, 179, + 4, 92, 89, 20, 9, 34, 92, 4, 179, 4, 99, 52, 20, 9, 34, 92, 4, 222, 235, + 4, 179, 89, 20, 9, 34, 92, 4, 222, 235, 4, 92, 89, 20, 9, 34, 92, 4, 221, + 186, 4, 222, 235, 89, 20, 9, 34, 92, 4, 221, 186, 4, 92, 89, 20, 9, 34, + 92, 4, 222, 235, 4, 221, 186, 89, 20, 9, 34, 229, 179, 4, 92, 4, 222, + 235, 89, 20, 9, 34, 229, 179, 4, 92, 4, 92, 89, 20, 9, 34, 213, 12, 4, + 179, 4, 92, 89, 20, 9, 34, 213, 12, 4, 179, 4, 130, 217, 80, 52, 20, 9, + 34, 213, 12, 4, 222, 235, 4, 92, 52, 20, 9, 34, 213, 12, 4, 222, 235, 4, + 92, 89, 20, 9, 34, 213, 12, 4, 222, 235, 4, 130, 217, 80, 52, 20, 9, 34, + 213, 12, 4, 92, 4, 99, 52, 20, 9, 34, 213, 12, 4, 92, 4, 130, 217, 80, + 52, 20, 9, 34, 99, 4, 92, 4, 92, 52, 20, 9, 34, 99, 4, 92, 4, 92, 89, 20, + 9, 34, 248, 196, 4, 221, 186, 4, 99, 52, 20, 9, 34, 199, 110, 4, 222, + 235, 4, 99, 52, 20, 9, 34, 199, 110, 4, 222, 235, 4, 130, 217, 80, 52, + 20, 9, 34, 199, 110, 4, 221, 186, 4, 99, 52, 20, 9, 34, 199, 110, 4, 221, + 186, 4, 130, 217, 80, 52, 20, 9, 34, 199, 110, 4, 92, 4, 99, 52, 20, 9, + 34, 199, 110, 4, 92, 4, 130, 217, 80, 52, 20, 9, 34, 222, 235, 4, 92, 4, + 99, 52, 20, 9, 34, 222, 235, 4, 179, 4, 130, 217, 80, 52, 20, 9, 34, 222, + 235, 4, 92, 4, 130, 217, 80, 52, 20, 9, 34, 205, 42, 4, 221, 186, 4, 130, + 217, 80, 52, 20, 9, 34, 205, 188, 4, 179, 4, 99, 52, 20, 9, 34, 203, 105, + 4, 179, 4, 99, 52, 20, 9, 34, 237, 236, 4, 179, 4, 99, 52, 20, 9, 34, + 220, 12, 4, 222, 235, 4, 99, 52, 20, 9, 34, 220, 12, 4, 92, 4, 99, 52, + 20, 9, 34, 99, 4, 179, 4, 99, 52, 20, 9, 34, 99, 4, 222, 235, 4, 99, 52, + 20, 9, 34, 99, 4, 92, 4, 99, 52, 20, 9, 34, 92, 4, 92, 4, 99, 52, 20, 9, + 34, 208, 83, 4, 92, 4, 99, 52, 20, 9, 34, 213, 12, 4, 179, 4, 99, 52, 20, + 9, 34, 208, 83, 4, 92, 4, 179, 89, 20, 9, 34, 220, 12, 4, 179, 4, 92, 89, + 20, 9, 34, 251, 179, 4, 92, 4, 99, 52, 20, 9, 34, 222, 80, 4, 92, 4, 99, + 52, 20, 9, 34, 213, 12, 4, 222, 235, 4, 179, 89, 20, 9, 34, 92, 4, 221, + 186, 4, 99, 52, 20, 9, 34, 220, 12, 4, 222, 235, 4, 92, 89, 20, 9, 34, + 222, 80, 4, 92, 4, 92, 52, 20, 9, 34, 220, 12, 4, 222, 235, 4, 92, 52, + 20, 9, 34, 213, 12, 4, 222, 235, 4, 179, 52, 20, 9, 34, 222, 235, 4, 179, + 4, 99, 52, 20, 9, 34, 179, 4, 222, 235, 4, 99, 52, 20, 9, 34, 92, 4, 222, + 235, 4, 99, 52, 20, 9, 34, 233, 6, 4, 92, 4, 99, 52, 20, 9, 34, 248, 196, + 4, 179, 4, 99, 52, 20, 9, 34, 222, 80, 4, 92, 4, 92, 89, 20, 9, 34, 251, + 179, 4, 222, 235, 4, 92, 89, 20, 9, 34, 205, 188, 4, 92, 4, 92, 89, 20, + 9, 34, 205, 42, 4, 221, 186, 4, 99, 52, 20, 9, 34, 213, 12, 4, 222, 235, + 4, 99, 52, 20, 9, 34, 205, 161, 251, 143, 9, 34, 205, 158, 196, 36, 250, + 170, 221, 9, 201, 59, 3, 76, 20, 9, 34, 208, 79, 196, 36, 250, 170, 221, + 9, 201, 59, 3, 76, 20, 9, 34, 251, 120, 76, 20, 9, 34, 251, 162, 76, 20, + 9, 34, 215, 218, 76, 20, 9, 34, 205, 159, 76, 20, 9, 34, 207, 127, 76, + 20, 9, 34, 251, 148, 76, 20, 9, 34, 193, 151, 76, 20, 9, 34, 205, 158, + 76, 20, 9, 34, 205, 156, 251, 148, 193, 150, 9, 34, 222, 250, 206, 244, + 57, 9, 34, 248, 103, 250, 237, 250, 238, 9, 34, 200, 237, 193, 188, 199, + 239, 9, 34, 250, 71, 193, 188, 222, 251, 66, 205, 28, 66, 204, 173, 66, + 204, 105, 66, 204, 94, 66, 204, 83, 66, 204, 72, 66, 204, 61, 66, 204, + 50, 66, 204, 39, 66, 205, 27, 66, 205, 16, 66, 205, 5, 66, 204, 250, 66, + 204, 239, 66, 204, 228, 66, 204, 217, 208, 214, 232, 107, 39, 81, 242, + 26, 208, 214, 232, 107, 39, 81, 154, 242, 26, 208, 214, 232, 107, 39, 81, + 154, 232, 42, 201, 58, 208, 214, 232, 107, 39, 81, 242, 35, 208, 214, + 232, 107, 39, 81, 204, 20, 208, 214, 232, 107, 39, 81, 233, 175, 77, 208, + 214, 232, 107, 39, 81, 208, 8, 77, 208, 214, 232, 107, 39, 81, 45, 64, + 219, 163, 248, 5, 208, 214, 232, 107, 39, 81, 50, 64, 219, 163, 248, 1, + 208, 214, 232, 107, 39, 81, 228, 209, 234, 78, 33, 34, 45, 230, 37, 33, + 34, 50, 230, 37, 33, 54, 198, 148, 45, 230, 37, 33, 54, 198, 148, 50, + 230, 37, 33, 217, 126, 45, 230, 37, 33, 217, 126, 50, 230, 37, 33, 238, + 253, 217, 125, 33, 34, 45, 134, 60, 33, 34, 50, 134, 60, 33, 198, 148, + 45, 134, 60, 33, 198, 148, 50, 134, 60, 33, 217, 126, 45, 134, 60, 33, + 217, 126, 50, 134, 60, 33, 238, 253, 217, 126, 60, 33, 42, 198, 118, 45, + 230, 37, 33, 42, 198, 118, 50, 230, 37, 208, 214, 232, 107, 39, 81, 103, + 75, 219, 212, 208, 214, 232, 107, 39, 81, 234, 73, 237, 170, 208, 214, + 232, 107, 39, 81, 234, 62, 237, 170, 208, 214, 232, 107, 39, 81, 131, + 219, 88, 208, 214, 232, 107, 39, 81, 193, 133, 131, 219, 88, 208, 214, + 232, 107, 39, 81, 45, 210, 103, 208, 214, 232, 107, 39, 81, 50, 210, 103, + 208, 214, 232, 107, 39, 81, 45, 238, 124, 248, 5, 208, 214, 232, 107, 39, + 81, 50, 238, 124, 248, 5, 208, 214, 232, 107, 39, 81, 45, 198, 37, 203, + 98, 248, 5, 208, 214, 232, 107, 39, 81, 50, 198, 37, 203, 98, 248, 5, + 208, 214, 232, 107, 39, 81, 45, 62, 219, 163, 248, 5, 208, 214, 232, 107, + 39, 81, 50, 62, 219, 163, 248, 5, 208, 214, 232, 107, 39, 81, 45, 54, + 251, 65, 248, 5, 208, 214, 232, 107, 39, 81, 50, 54, 251, 65, 248, 5, + 208, 214, 232, 107, 39, 81, 45, 251, 65, 248, 5, 208, 214, 232, 107, 39, + 81, 50, 251, 65, 248, 5, 208, 214, 232, 107, 39, 81, 45, 238, 211, 248, + 5, 208, 214, 232, 107, 39, 81, 50, 238, 211, 248, 5, 208, 214, 232, 107, + 39, 81, 45, 64, 238, 211, 248, 5, 208, 214, 232, 107, 39, 81, 50, 64, + 238, 211, 248, 5, 203, 251, 236, 96, 64, 203, 251, 236, 96, 208, 214, + 232, 107, 39, 81, 45, 51, 248, 5, 208, 214, 232, 107, 39, 81, 50, 51, + 248, 5, 237, 169, 210, 244, 246, 226, 210, 244, 193, 133, 210, 244, 54, + 193, 133, 210, 244, 237, 169, 131, 219, 88, 246, 226, 131, 219, 88, 193, + 133, 131, 219, 88, 2, 242, 26, 2, 154, 242, 26, 2, 232, 42, 201, 58, 2, + 204, 20, 2, 242, 35, 2, 208, 8, 77, 2, 233, 175, 77, 2, 234, 73, 237, + 170, 2, 45, 210, 103, 2, 50, 210, 103, 2, 45, 238, 124, 248, 5, 2, 50, + 238, 124, 248, 5, 2, 45, 198, 37, 203, 98, 248, 5, 2, 50, 198, 37, 203, + 98, 248, 5, 2, 31, 57, 2, 251, 86, 2, 250, 143, 2, 107, 57, 2, 228, 57, + 2, 219, 156, 57, 2, 230, 170, 57, 2, 234, 1, 57, 2, 207, 14, 202, 18, 2, + 236, 110, 57, 2, 210, 4, 57, 2, 242, 24, 250, 132, 9, 233, 28, 76, 20, 9, + 199, 164, 4, 233, 28, 56, 9, 237, 199, 76, 20, 9, 199, 211, 232, 79, 9, + 222, 25, 76, 20, 9, 233, 30, 76, 20, 9, 233, 30, 216, 198, 20, 9, 237, + 201, 76, 20, 9, 237, 201, 216, 198, 20, 9, 222, 27, 76, 20, 9, 222, 27, + 216, 198, 20, 9, 203, 151, 76, 20, 9, 203, 151, 216, 198, 20, 9, 200, + 202, 76, 20, 9, 200, 202, 216, 198, 20, 9, 1, 230, 25, 76, 20, 9, 1, 130, + 4, 217, 121, 95, 76, 20, 9, 1, 130, 4, 217, 121, 95, 52, 20, 9, 1, 130, + 4, 230, 25, 95, 76, 20, 9, 1, 130, 4, 230, 25, 95, 52, 20, 9, 1, 193, + 132, 4, 230, 25, 95, 76, 20, 9, 1, 193, 132, 4, 230, 25, 95, 52, 20, 9, + 1, 130, 4, 230, 25, 248, 183, 76, 20, 9, 1, 130, 4, 230, 25, 248, 183, + 52, 20, 9, 1, 99, 4, 230, 25, 95, 76, 20, 9, 1, 99, 4, 230, 25, 95, 52, + 20, 9, 1, 99, 4, 230, 25, 95, 89, 20, 9, 1, 99, 4, 230, 25, 95, 216, 198, + 20, 9, 1, 130, 76, 20, 9, 1, 130, 52, 20, 9, 1, 248, 196, 76, 20, 9, 1, + 248, 196, 52, 20, 9, 1, 248, 196, 89, 20, 9, 1, 248, 196, 216, 198, 20, + 9, 1, 199, 110, 217, 44, 76, 20, 9, 1, 199, 110, 217, 44, 52, 20, 9, 1, + 199, 110, 76, 20, 9, 1, 199, 110, 52, 20, 9, 1, 199, 110, 89, 20, 9, 1, + 199, 110, 216, 198, 20, 9, 1, 199, 25, 76, 20, 9, 1, 199, 25, 52, 20, 9, + 1, 199, 25, 89, 20, 9, 1, 199, 25, 216, 198, 20, 9, 1, 222, 235, 76, 20, + 9, 1, 222, 235, 52, 20, 9, 1, 222, 235, 89, 20, 9, 1, 222, 235, 216, 198, + 20, 9, 1, 179, 76, 20, 9, 1, 179, 52, 20, 9, 1, 179, 89, 20, 9, 1, 179, + 216, 198, 20, 9, 1, 221, 186, 76, 20, 9, 1, 221, 186, 52, 20, 9, 1, 221, + 186, 89, 20, 9, 1, 221, 186, 216, 198, 20, 9, 1, 237, 213, 76, 20, 9, 1, + 237, 213, 52, 20, 9, 1, 199, 37, 76, 20, 9, 1, 199, 37, 52, 20, 9, 1, + 207, 67, 76, 20, 9, 1, 207, 67, 52, 20, 9, 1, 191, 114, 76, 20, 9, 1, + 191, 114, 52, 20, 9, 1, 205, 42, 76, 20, 9, 1, 205, 42, 52, 20, 9, 1, + 205, 42, 89, 20, 9, 1, 205, 42, 216, 198, 20, 9, 1, 203, 105, 76, 20, 9, + 1, 203, 105, 52, 20, 9, 1, 203, 105, 89, 20, 9, 1, 203, 105, 216, 198, + 20, 9, 1, 205, 188, 76, 20, 9, 1, 205, 188, 52, 20, 9, 1, 205, 188, 89, + 20, 9, 1, 205, 188, 216, 198, 20, 9, 1, 237, 236, 76, 20, 9, 1, 237, 236, + 52, 20, 9, 1, 237, 236, 89, 20, 9, 1, 237, 236, 216, 198, 20, 9, 1, 199, + 215, 76, 20, 9, 1, 199, 215, 52, 20, 9, 1, 199, 215, 89, 20, 9, 1, 199, + 215, 216, 198, 20, 9, 1, 191, 117, 76, 20, 9, 1, 191, 117, 52, 20, 9, 1, + 191, 117, 89, 20, 9, 1, 191, 117, 216, 198, 20, 9, 1, 251, 179, 76, 20, + 9, 1, 251, 179, 52, 20, 9, 1, 251, 179, 89, 20, 9, 1, 251, 179, 216, 198, + 20, 9, 1, 231, 50, 76, 20, 9, 1, 231, 50, 52, 20, 9, 1, 231, 50, 89, 20, + 9, 1, 231, 50, 216, 198, 20, 9, 1, 233, 6, 76, 20, 9, 1, 233, 6, 52, 20, + 9, 1, 233, 6, 89, 20, 9, 1, 233, 6, 216, 198, 20, 9, 1, 208, 83, 76, 20, + 9, 1, 208, 83, 52, 20, 9, 1, 208, 83, 89, 20, 9, 1, 208, 83, 216, 198, + 20, 9, 1, 222, 80, 76, 20, 9, 1, 222, 80, 52, 20, 9, 1, 222, 80, 89, 20, + 9, 1, 222, 80, 216, 198, 20, 9, 1, 220, 12, 76, 20, 9, 1, 220, 12, 52, + 20, 9, 1, 220, 12, 89, 20, 9, 1, 220, 12, 216, 198, 20, 9, 1, 92, 76, 20, + 9, 1, 92, 52, 20, 9, 1, 92, 89, 20, 9, 1, 92, 216, 198, 20, 9, 1, 213, + 12, 76, 20, 9, 1, 213, 12, 52, 20, 9, 1, 213, 12, 89, 20, 9, 1, 213, 12, + 216, 198, 20, 9, 1, 229, 179, 76, 20, 9, 1, 229, 179, 52, 20, 9, 1, 229, + 179, 89, 20, 9, 1, 229, 179, 216, 198, 20, 9, 1, 193, 132, 76, 20, 9, 1, + 193, 132, 52, 20, 9, 1, 130, 217, 80, 76, 20, 9, 1, 130, 217, 80, 52, 20, + 9, 1, 99, 76, 20, 9, 1, 99, 52, 20, 9, 1, 99, 89, 20, 9, 1, 99, 216, 198, + 20, 9, 34, 220, 12, 4, 130, 4, 217, 121, 95, 76, 20, 9, 34, 220, 12, 4, + 130, 4, 217, 121, 95, 52, 20, 9, 34, 220, 12, 4, 130, 4, 230, 25, 95, 76, + 20, 9, 34, 220, 12, 4, 130, 4, 230, 25, 95, 52, 20, 9, 34, 220, 12, 4, + 130, 4, 230, 25, 248, 183, 76, 20, 9, 34, 220, 12, 4, 130, 4, 230, 25, + 248, 183, 52, 20, 9, 34, 220, 12, 4, 130, 76, 20, 9, 34, 220, 12, 4, 130, + 52, 20, 191, 78, 193, 73, 213, 24, 201, 242, 190, 190, 233, 175, 77, 190, + 190, 207, 247, 77, 190, 190, 31, 57, 190, 190, 236, 110, 57, 190, 190, + 210, 4, 57, 190, 190, 251, 86, 190, 190, 250, 255, 190, 190, 45, 210, + 103, 190, 190, 50, 210, 103, 190, 190, 250, 143, 190, 190, 107, 57, 190, + 190, 242, 26, 190, 190, 228, 57, 190, 190, 232, 42, 201, 58, 190, 190, + 202, 18, 190, 190, 17, 191, 77, 190, 190, 17, 108, 190, 190, 17, 109, + 190, 190, 17, 139, 190, 190, 17, 137, 190, 190, 17, 153, 190, 190, 17, + 173, 190, 190, 17, 181, 190, 190, 17, 176, 190, 190, 17, 184, 190, 190, + 242, 35, 190, 190, 204, 20, 190, 190, 219, 156, 57, 190, 190, 234, 1, 57, + 190, 190, 230, 170, 57, 190, 190, 208, 8, 77, 190, 190, 242, 24, 250, + 132, 190, 190, 8, 6, 1, 65, 190, 190, 8, 6, 1, 250, 70, 190, 190, 8, 6, + 1, 247, 145, 190, 190, 8, 6, 1, 238, 80, 190, 190, 8, 6, 1, 73, 190, 190, + 8, 6, 1, 233, 134, 190, 190, 8, 6, 1, 232, 14, 190, 190, 8, 6, 1, 230, + 83, 190, 190, 8, 6, 1, 70, 190, 190, 8, 6, 1, 223, 7, 190, 190, 8, 6, 1, + 222, 125, 190, 190, 8, 6, 1, 170, 190, 190, 8, 6, 1, 218, 147, 190, 190, + 8, 6, 1, 215, 47, 190, 190, 8, 6, 1, 74, 190, 190, 8, 6, 1, 210, 226, + 190, 190, 8, 6, 1, 208, 97, 190, 190, 8, 6, 1, 148, 190, 190, 8, 6, 1, + 206, 3, 190, 190, 8, 6, 1, 200, 39, 190, 190, 8, 6, 1, 69, 190, 190, 8, + 6, 1, 196, 8, 190, 190, 8, 6, 1, 193, 221, 190, 190, 8, 6, 1, 192, 235, + 190, 190, 8, 6, 1, 192, 159, 190, 190, 8, 6, 1, 191, 166, 190, 190, 45, + 51, 248, 5, 190, 190, 207, 14, 202, 18, 190, 190, 50, 51, 248, 5, 190, + 190, 242, 210, 252, 8, 190, 190, 131, 219, 88, 190, 190, 230, 177, 252, + 8, 190, 190, 8, 2, 1, 65, 190, 190, 8, 2, 1, 250, 70, 190, 190, 8, 2, 1, + 247, 145, 190, 190, 8, 2, 1, 238, 80, 190, 190, 8, 2, 1, 73, 190, 190, 8, + 2, 1, 233, 134, 190, 190, 8, 2, 1, 232, 14, 190, 190, 8, 2, 1, 230, 83, + 190, 190, 8, 2, 1, 70, 190, 190, 8, 2, 1, 223, 7, 190, 190, 8, 2, 1, 222, + 125, 190, 190, 8, 2, 1, 170, 190, 190, 8, 2, 1, 218, 147, 190, 190, 8, 2, + 1, 215, 47, 190, 190, 8, 2, 1, 74, 190, 190, 8, 2, 1, 210, 226, 190, 190, + 8, 2, 1, 208, 97, 190, 190, 8, 2, 1, 148, 190, 190, 8, 2, 1, 206, 3, 190, + 190, 8, 2, 1, 200, 39, 190, 190, 8, 2, 1, 69, 190, 190, 8, 2, 1, 196, 8, + 190, 190, 8, 2, 1, 193, 221, 190, 190, 8, 2, 1, 192, 235, 190, 190, 8, 2, + 1, 192, 159, 190, 190, 8, 2, 1, 191, 166, 190, 190, 45, 238, 124, 248, 5, + 190, 190, 81, 219, 88, 190, 190, 50, 238, 124, 248, 5, 190, 190, 198, + 147, 190, 190, 45, 64, 210, 103, 190, 190, 50, 64, 210, 103, 149, 154, + 232, 42, 201, 58, 149, 45, 238, 211, 248, 5, 149, 50, 238, 211, 248, 5, + 149, 154, 242, 26, 149, 71, 82, 236, 96, 149, 71, 1, 193, 48, 149, 71, 1, + 2, 65, 149, 71, 1, 2, 70, 149, 71, 1, 2, 69, 149, 71, 1, 2, 73, 149, 71, + 1, 2, 74, 149, 71, 1, 2, 169, 149, 71, 1, 2, 191, 225, 149, 71, 1, 2, + 192, 12, 149, 71, 1, 2, 197, 90, 149, 222, 22, 208, 184, 202, 0, 77, 149, + 71, 1, 65, 149, 71, 1, 70, 149, 71, 1, 69, 149, 71, 1, 73, 149, 71, 1, + 74, 149, 71, 1, 157, 149, 71, 1, 221, 142, 149, 71, 1, 220, 208, 149, 71, + 1, 221, 253, 149, 71, 1, 221, 43, 149, 71, 1, 189, 149, 71, 1, 202, 217, + 149, 71, 1, 200, 255, 149, 71, 1, 205, 63, 149, 71, 1, 202, 41, 149, 71, + 1, 199, 247, 149, 71, 1, 198, 188, 149, 71, 1, 197, 90, 149, 71, 1, 199, + 140, 149, 71, 1, 159, 149, 71, 1, 180, 149, 71, 1, 213, 205, 149, 71, 1, + 212, 165, 149, 71, 1, 214, 107, 149, 71, 1, 213, 30, 149, 71, 1, 144, + 149, 71, 1, 229, 126, 149, 71, 1, 228, 128, 149, 71, 1, 229, 213, 149, + 71, 1, 228, 247, 149, 71, 1, 172, 149, 71, 1, 216, 81, 149, 71, 1, 215, + 139, 149, 71, 1, 216, 213, 149, 71, 1, 215, 251, 149, 71, 1, 169, 149, + 71, 1, 191, 225, 149, 71, 1, 192, 12, 149, 71, 1, 166, 149, 71, 1, 206, + 252, 149, 71, 1, 206, 63, 149, 71, 1, 207, 108, 149, 71, 1, 206, 157, + 149, 71, 1, 193, 187, 149, 71, 1, 215, 47, 149, 71, 195, 17, 202, 0, 77, + 149, 71, 204, 25, 202, 0, 77, 149, 30, 232, 218, 149, 30, 1, 221, 89, + 149, 30, 1, 201, 162, 149, 30, 1, 221, 82, 149, 30, 1, 213, 190, 149, 30, + 1, 213, 188, 149, 30, 1, 213, 187, 149, 30, 1, 198, 163, 149, 30, 1, 201, + 151, 149, 30, 1, 206, 234, 149, 30, 1, 206, 229, 149, 30, 1, 206, 226, + 149, 30, 1, 206, 219, 149, 30, 1, 206, 214, 149, 30, 1, 206, 209, 149, + 30, 1, 206, 220, 149, 30, 1, 206, 232, 149, 30, 1, 216, 59, 149, 30, 1, + 209, 160, 149, 30, 1, 201, 159, 149, 30, 1, 209, 149, 149, 30, 1, 202, + 155, 149, 30, 1, 201, 156, 149, 30, 1, 223, 193, 149, 30, 1, 242, 232, + 149, 30, 1, 201, 166, 149, 30, 1, 243, 43, 149, 30, 1, 221, 164, 149, 30, + 1, 199, 2, 149, 30, 1, 209, 200, 149, 30, 1, 229, 110, 149, 30, 1, 65, + 149, 30, 1, 251, 229, 149, 30, 1, 169, 149, 30, 1, 192, 129, 149, 30, 1, + 234, 23, 149, 30, 1, 73, 149, 30, 1, 192, 67, 149, 30, 1, 192, 80, 149, + 30, 1, 74, 149, 30, 1, 193, 187, 149, 30, 1, 193, 173, 149, 30, 1, 211, + 139, 149, 30, 1, 192, 12, 149, 30, 1, 69, 149, 30, 1, 193, 105, 149, 30, + 1, 193, 123, 149, 30, 1, 193, 84, 149, 30, 1, 191, 225, 149, 30, 1, 233, + 201, 149, 30, 1, 192, 33, 149, 30, 1, 70, 190, 190, 246, 232, 57, 190, + 190, 209, 1, 57, 190, 190, 212, 255, 57, 190, 190, 217, 125, 190, 190, + 247, 230, 164, 190, 190, 192, 71, 57, 190, 190, 193, 31, 57, 149, 232, + 102, 155, 195, 132, 149, 117, 55, 149, 196, 62, 55, 149, 96, 55, 149, + 235, 75, 55, 149, 62, 201, 185, 149, 64, 242, 218, 223, 78, 251, 45, 251, + 76, 223, 78, 251, 45, 204, 5, 223, 78, 251, 45, 199, 75, 211, 162, 207, + 38, 246, 191, 207, 38, 246, 191, 32, 78, 5, 250, 54, 65, 32, 78, 5, 250, + 23, 73, 32, 78, 5, 250, 32, 70, 32, 78, 5, 250, 0, 74, 32, 78, 5, 250, + 50, 69, 32, 78, 5, 250, 69, 237, 241, 32, 78, 5, 250, 16, 237, 101, 32, + 78, 5, 250, 56, 236, 255, 32, 78, 5, 250, 46, 236, 129, 32, 78, 5, 250, + 10, 235, 45, 32, 78, 5, 250, 4, 223, 4, 32, 78, 5, 250, 15, 222, 238, 32, + 78, 5, 250, 25, 222, 174, 32, 78, 5, 249, 252, 222, 155, 32, 78, 5, 249, + 240, 157, 32, 78, 5, 250, 17, 221, 253, 32, 78, 5, 249, 250, 221, 142, + 32, 78, 5, 249, 247, 221, 43, 32, 78, 5, 249, 236, 220, 208, 32, 78, 5, + 249, 237, 172, 32, 78, 5, 250, 47, 216, 213, 32, 78, 5, 249, 244, 216, + 81, 32, 78, 5, 250, 45, 215, 251, 32, 78, 5, 250, 37, 215, 139, 32, 78, + 5, 250, 58, 180, 32, 78, 5, 250, 36, 214, 107, 32, 78, 5, 250, 30, 213, + 205, 32, 78, 5, 250, 9, 213, 30, 32, 78, 5, 250, 6, 212, 165, 32, 78, 5, + 250, 65, 168, 32, 78, 5, 249, 245, 210, 53, 32, 78, 5, 250, 22, 209, 176, + 32, 78, 5, 250, 49, 209, 65, 32, 78, 5, 250, 11, 208, 158, 32, 78, 5, + 250, 44, 208, 89, 32, 78, 5, 249, 239, 208, 69, 32, 78, 5, 250, 39, 208, + 51, 32, 78, 5, 250, 28, 208, 39, 32, 78, 5, 250, 1, 166, 32, 78, 5, 250, + 33, 207, 108, 32, 78, 5, 250, 8, 206, 252, 32, 78, 5, 250, 67, 206, 157, + 32, 78, 5, 250, 34, 206, 63, 32, 78, 5, 250, 29, 189, 32, 78, 5, 250, 52, + 205, 63, 32, 78, 5, 250, 20, 202, 217, 32, 78, 5, 250, 48, 202, 41, 32, + 78, 5, 250, 3, 200, 255, 32, 78, 5, 250, 2, 199, 247, 32, 78, 5, 250, 63, + 199, 140, 32, 78, 5, 250, 24, 198, 188, 32, 78, 5, 250, 61, 159, 32, 78, + 5, 249, 248, 197, 90, 32, 78, 5, 250, 7, 193, 187, 32, 78, 5, 249, 242, + 193, 123, 32, 78, 5, 250, 21, 193, 84, 32, 78, 5, 250, 19, 193, 48, 32, + 78, 5, 250, 43, 191, 123, 32, 78, 5, 249, 243, 191, 87, 32, 78, 5, 250, + 40, 191, 7, 32, 78, 5, 250, 35, 254, 163, 32, 78, 5, 250, 18, 254, 51, + 32, 78, 5, 249, 233, 250, 113, 32, 78, 5, 249, 246, 235, 1, 32, 78, 5, + 249, 229, 235, 0, 32, 78, 5, 250, 13, 212, 97, 32, 78, 5, 250, 31, 208, + 156, 32, 78, 5, 249, 255, 208, 160, 32, 78, 5, 249, 241, 207, 175, 32, + 78, 5, 250, 27, 207, 174, 32, 78, 5, 249, 249, 206, 150, 32, 78, 5, 249, + 251, 199, 241, 32, 78, 5, 249, 231, 197, 37, 32, 78, 5, 249, 228, 109, + 32, 78, 16, 250, 42, 32, 78, 16, 250, 41, 32, 78, 16, 250, 38, 32, 78, + 16, 250, 26, 32, 78, 16, 250, 14, 32, 78, 16, 250, 12, 32, 78, 16, 250, + 5, 32, 78, 16, 249, 254, 32, 78, 16, 249, 253, 32, 78, 16, 249, 238, 32, + 78, 16, 249, 235, 32, 78, 16, 249, 234, 32, 78, 16, 249, 232, 32, 78, 16, + 249, 230, 32, 78, 156, 249, 227, 217, 70, 32, 78, 156, 249, 226, 193, 35, + 32, 78, 156, 249, 225, 237, 83, 32, 78, 156, 249, 224, 233, 254, 32, 78, + 156, 249, 223, 217, 37, 32, 78, 156, 249, 222, 201, 105, 32, 78, 156, + 249, 221, 233, 182, 32, 78, 156, 249, 220, 207, 137, 32, 78, 156, 249, + 219, 203, 107, 32, 78, 156, 249, 218, 229, 205, 32, 78, 156, 249, 217, + 201, 250, 32, 78, 156, 249, 216, 248, 61, 32, 78, 156, 249, 215, 238, + 192, 32, 78, 156, 249, 214, 247, 202, 32, 78, 156, 249, 213, 193, 93, 32, + 78, 156, 249, 212, 249, 34, 32, 78, 156, 249, 211, 211, 104, 32, 78, 156, + 249, 210, 201, 218, 32, 78, 156, 249, 209, 238, 89, 32, 78, 215, 204, + 249, 208, 222, 48, 32, 78, 215, 204, 249, 207, 222, 59, 32, 78, 156, 249, + 206, 211, 119, 32, 78, 156, 249, 205, 193, 60, 32, 78, 156, 249, 204, 32, + 78, 215, 204, 249, 203, 250, 213, 32, 78, 215, 204, 249, 202, 216, 159, + 32, 78, 156, 249, 201, 247, 229, 32, 78, 156, 249, 200, 230, 214, 32, 78, + 156, 249, 199, 32, 78, 156, 249, 198, 193, 26, 32, 78, 156, 249, 197, 32, + 78, 156, 249, 196, 32, 78, 156, 249, 195, 228, 156, 32, 78, 156, 249, + 194, 32, 78, 156, 249, 193, 32, 78, 156, 249, 192, 32, 78, 215, 204, 249, + 190, 197, 52, 32, 78, 156, 249, 189, 32, 78, 156, 249, 188, 32, 78, 156, + 249, 187, 242, 165, 32, 78, 156, 249, 186, 32, 78, 156, 249, 185, 32, 78, + 156, 249, 184, 231, 159, 32, 78, 156, 249, 183, 250, 198, 32, 78, 156, + 249, 182, 32, 78, 156, 249, 181, 32, 78, 156, 249, 180, 32, 78, 156, 249, + 179, 32, 78, 156, 249, 178, 32, 78, 156, 249, 177, 32, 78, 156, 249, 176, + 32, 78, 156, 249, 175, 32, 78, 156, 249, 174, 32, 78, 156, 249, 173, 215, + 196, 32, 78, 156, 249, 172, 32, 78, 156, 249, 171, 197, 250, 32, 78, 156, + 249, 170, 32, 78, 156, 249, 169, 32, 78, 156, 249, 168, 32, 78, 156, 249, + 167, 32, 78, 156, 249, 166, 32, 78, 156, 249, 165, 32, 78, 156, 249, 164, + 32, 78, 156, 249, 163, 32, 78, 156, 249, 162, 32, 78, 156, 249, 161, 32, + 78, 156, 249, 160, 32, 78, 156, 249, 159, 229, 168, 32, 78, 156, 249, + 138, 232, 116, 32, 78, 156, 249, 135, 249, 9, 32, 78, 156, 249, 130, 201, + 227, 32, 78, 156, 249, 129, 55, 32, 78, 156, 249, 128, 32, 78, 156, 249, + 127, 200, 127, 32, 78, 156, 249, 126, 32, 78, 156, 249, 125, 32, 78, 156, + 249, 124, 193, 88, 243, 90, 32, 78, 156, 249, 123, 243, 90, 32, 78, 156, + 249, 122, 243, 91, 232, 75, 32, 78, 156, 249, 121, 193, 91, 32, 78, 156, + 249, 120, 32, 78, 156, 249, 119, 32, 78, 215, 204, 249, 118, 236, 190, + 32, 78, 156, 249, 117, 32, 78, 156, 249, 116, 32, 78, 156, 249, 114, 32, + 78, 156, 249, 113, 32, 78, 156, 249, 112, 32, 78, 156, 249, 111, 237, + 173, 32, 78, 156, 249, 110, 32, 78, 156, 249, 109, 32, 78, 156, 249, 108, + 32, 78, 156, 249, 107, 32, 78, 156, 249, 106, 32, 78, 156, 195, 79, 249, + 191, 32, 78, 156, 195, 79, 249, 158, 32, 78, 156, 195, 79, 249, 157, 32, + 78, 156, 195, 79, 249, 156, 32, 78, 156, 195, 79, 249, 155, 32, 78, 156, + 195, 79, 249, 154, 32, 78, 156, 195, 79, 249, 153, 32, 78, 156, 195, 79, + 249, 152, 32, 78, 156, 195, 79, 249, 151, 32, 78, 156, 195, 79, 249, 150, + 32, 78, 156, 195, 79, 249, 149, 32, 78, 156, 195, 79, 249, 148, 32, 78, + 156, 195, 79, 249, 147, 32, 78, 156, 195, 79, 249, 146, 32, 78, 156, 195, + 79, 249, 145, 32, 78, 156, 195, 79, 249, 144, 32, 78, 156, 195, 79, 249, + 143, 32, 78, 156, 195, 79, 249, 142, 32, 78, 156, 195, 79, 249, 141, 32, + 78, 156, 195, 79, 249, 140, 32, 78, 156, 195, 79, 249, 139, 32, 78, 156, + 195, 79, 249, 137, 32, 78, 156, 195, 79, 249, 136, 32, 78, 156, 195, 79, + 249, 134, 32, 78, 156, 195, 79, 249, 133, 32, 78, 156, 195, 79, 249, 132, + 32, 78, 156, 195, 79, 249, 131, 32, 78, 156, 195, 79, 249, 115, 32, 78, + 156, 195, 79, 249, 105, 251, 222, 193, 23, 204, 6, 219, 88, 251, 222, + 193, 23, 204, 6, 236, 96, 251, 222, 243, 78, 77, 251, 222, 31, 108, 251, + 222, 31, 109, 251, 222, 31, 139, 251, 222, 31, 137, 251, 222, 31, 153, + 251, 222, 31, 173, 251, 222, 31, 181, 251, 222, 31, 176, 251, 222, 31, + 184, 251, 222, 31, 199, 90, 251, 222, 31, 197, 28, 251, 222, 31, 198, + 244, 251, 222, 31, 232, 97, 251, 222, 31, 232, 230, 251, 222, 31, 202, + 115, 251, 222, 31, 203, 236, 251, 222, 31, 234, 110, 251, 222, 31, 213, + 156, 251, 222, 31, 91, 228, 109, 251, 222, 31, 103, 228, 109, 251, 222, + 31, 115, 228, 109, 251, 222, 31, 232, 90, 228, 109, 251, 222, 31, 232, + 185, 228, 109, 251, 222, 31, 202, 131, 228, 109, 251, 222, 31, 203, 242, + 228, 109, 251, 222, 31, 234, 121, 228, 109, 251, 222, 31, 213, 161, 228, + 109, 251, 222, 31, 91, 188, 251, 222, 31, 103, 188, 251, 222, 31, 115, + 188, 251, 222, 31, 232, 90, 188, 251, 222, 31, 232, 185, 188, 251, 222, + 31, 202, 131, 188, 251, 222, 31, 203, 242, 188, 251, 222, 31, 234, 121, + 188, 251, 222, 31, 213, 161, 188, 251, 222, 31, 199, 91, 188, 251, 222, + 31, 197, 29, 188, 251, 222, 31, 198, 245, 188, 251, 222, 31, 232, 98, + 188, 251, 222, 31, 232, 231, 188, 251, 222, 31, 202, 116, 188, 251, 222, + 31, 203, 237, 188, 251, 222, 31, 234, 111, 188, 251, 222, 31, 213, 157, + 188, 251, 222, 193, 108, 249, 25, 196, 86, 251, 222, 193, 108, 232, 197, + 200, 219, 251, 222, 193, 108, 205, 52, 200, 219, 251, 222, 193, 108, 198, + 252, 200, 219, 251, 222, 193, 108, 232, 83, 200, 219, 251, 222, 235, 48, + 216, 209, 232, 197, 200, 219, 251, 222, 219, 69, 216, 209, 232, 197, 200, + 219, 251, 222, 216, 209, 205, 52, 200, 219, 251, 222, 216, 209, 198, 252, + 200, 219, 35, 251, 254, 250, 115, 91, 208, 17, 35, 251, 254, 250, 115, + 91, 230, 37, 35, 251, 254, 250, 115, 91, 235, 71, 35, 251, 254, 250, 115, + 153, 35, 251, 254, 250, 115, 232, 230, 35, 251, 254, 250, 115, 232, 185, + 228, 109, 35, 251, 254, 250, 115, 232, 185, 188, 35, 251, 254, 250, 115, + 232, 231, 188, 35, 251, 254, 250, 115, 232, 185, 199, 198, 35, 251, 254, + 250, 115, 199, 91, 199, 198, 35, 251, 254, 250, 115, 232, 231, 199, 198, + 35, 251, 254, 250, 115, 91, 228, 110, 199, 198, 35, 251, 254, 250, 115, + 232, 185, 228, 110, 199, 198, 35, 251, 254, 250, 115, 91, 198, 225, 199, + 198, 35, 251, 254, 250, 115, 232, 185, 198, 225, 199, 198, 35, 251, 254, + 250, 115, 232, 185, 201, 89, 35, 251, 254, 250, 115, 199, 91, 201, 89, + 35, 251, 254, 250, 115, 232, 231, 201, 89, 35, 251, 254, 250, 115, 91, + 228, 110, 201, 89, 35, 251, 254, 250, 115, 232, 185, 228, 110, 201, 89, + 35, 251, 254, 250, 115, 91, 198, 225, 201, 89, 35, 251, 254, 250, 115, + 199, 91, 198, 225, 201, 89, 35, 251, 254, 250, 115, 232, 231, 198, 225, + 201, 89, 35, 251, 254, 250, 115, 199, 91, 215, 254, 35, 251, 254, 229, + 162, 91, 209, 84, 35, 251, 254, 199, 12, 108, 35, 251, 254, 229, 158, + 108, 35, 251, 254, 234, 9, 109, 35, 251, 254, 199, 12, 109, 35, 251, 254, + 238, 85, 103, 235, 70, 35, 251, 254, 234, 9, 103, 235, 70, 35, 251, 254, + 197, 212, 153, 35, 251, 254, 197, 212, 199, 90, 35, 251, 254, 197, 212, + 199, 91, 251, 106, 20, 35, 251, 254, 229, 158, 199, 90, 35, 251, 254, + 216, 148, 199, 90, 35, 251, 254, 199, 12, 199, 90, 35, 251, 254, 199, 12, + 198, 244, 35, 251, 254, 197, 212, 232, 230, 35, 251, 254, 197, 212, 232, + 231, 251, 106, 20, 35, 251, 254, 229, 158, 232, 230, 35, 251, 254, 199, + 12, 232, 230, 35, 251, 254, 199, 12, 91, 228, 109, 35, 251, 254, 199, 12, + 115, 228, 109, 35, 251, 254, 234, 9, 232, 185, 228, 109, 35, 251, 254, + 197, 212, 232, 185, 228, 109, 35, 251, 254, 199, 12, 232, 185, 228, 109, + 35, 251, 254, 247, 34, 232, 185, 228, 109, 35, 251, 254, 214, 185, 232, + 185, 228, 109, 35, 251, 254, 199, 12, 91, 188, 35, 251, 254, 199, 12, + 232, 185, 188, 35, 251, 254, 237, 64, 232, 185, 215, 254, 35, 251, 254, + 201, 42, 232, 231, 215, 254, 35, 91, 134, 57, 35, 91, 134, 3, 251, 106, + 20, 35, 103, 198, 249, 57, 35, 115, 208, 16, 57, 35, 192, 78, 57, 35, + 199, 199, 57, 35, 235, 72, 57, 35, 211, 157, 57, 35, 103, 211, 156, 57, + 35, 115, 211, 156, 57, 35, 232, 90, 211, 156, 57, 35, 232, 185, 211, 156, + 57, 35, 216, 142, 57, 35, 220, 127, 249, 25, 57, 35, 219, 61, 57, 35, + 211, 6, 57, 35, 192, 211, 57, 35, 250, 176, 57, 35, 250, 193, 57, 35, + 230, 186, 57, 35, 197, 167, 249, 25, 57, 35, 191, 78, 57, 35, 91, 208, + 18, 57, 35, 202, 157, 57, 35, 223, 115, 57, 213, 19, 57, 206, 131, 203, + 232, 57, 206, 131, 196, 102, 57, 206, 131, 204, 12, 57, 206, 131, 203, + 170, 57, 206, 131, 236, 205, 203, 170, 57, 206, 131, 202, 181, 57, 206, + 131, 237, 59, 57, 206, 131, 208, 0, 57, 206, 131, 203, 249, 57, 206, 131, + 235, 23, 57, 206, 131, 250, 170, 57, 206, 131, 246, 225, 57, 250, 161, + 113, 35, 16, 199, 162, 206, 254, 209, 214, 236, 182, 3, 210, 42, 209, + 214, 236, 182, 3, 209, 76, 229, 203, 209, 214, 236, 182, 3, 199, 165, + 229, 203, 209, 214, 236, 182, 3, 247, 57, 209, 214, 236, 182, 3, 243, 38, + 209, 214, 236, 182, 3, 193, 35, 209, 214, 236, 182, 3, 229, 168, 209, + 214, 236, 182, 3, 231, 151, 209, 214, 236, 182, 3, 198, 179, 209, 214, + 236, 182, 3, 55, 209, 214, 236, 182, 3, 248, 21, 209, 214, 236, 182, 3, + 203, 73, 209, 214, 236, 182, 3, 242, 158, 209, 214, 236, 182, 3, 217, 69, + 209, 214, 236, 182, 3, 217, 7, 209, 214, 236, 182, 3, 205, 103, 209, 214, + 236, 182, 3, 219, 117, 209, 214, 236, 182, 3, 248, 44, 209, 214, 236, + 182, 3, 247, 41, 209, 93, 209, 214, 236, 182, 3, 236, 111, 209, 214, 236, + 182, 3, 242, 32, 209, 214, 236, 182, 3, 202, 78, 209, 214, 236, 182, 3, + 242, 33, 209, 214, 236, 182, 3, 248, 204, 209, 214, 236, 182, 3, 203, 60, + 209, 214, 236, 182, 3, 228, 156, 209, 214, 236, 182, 3, 229, 116, 209, + 214, 236, 182, 3, 247, 197, 219, 188, 209, 214, 236, 182, 3, 247, 30, + 209, 214, 236, 182, 3, 207, 137, 209, 214, 236, 182, 3, 234, 170, 209, + 214, 236, 182, 3, 235, 80, 209, 214, 236, 182, 3, 197, 68, 209, 214, 236, + 182, 3, 248, 207, 209, 214, 236, 182, 3, 209, 94, 197, 250, 209, 214, + 236, 182, 3, 195, 44, 209, 214, 236, 182, 3, 210, 122, 209, 214, 236, + 182, 3, 206, 120, 209, 214, 236, 182, 3, 219, 101, 209, 214, 236, 182, 3, + 210, 238, 249, 96, 209, 214, 236, 182, 3, 232, 142, 209, 214, 236, 182, + 3, 230, 178, 209, 214, 236, 182, 3, 201, 45, 209, 214, 236, 182, 3, 2, + 250, 82, 209, 214, 236, 182, 3, 193, 133, 249, 47, 209, 214, 236, 182, 3, + 33, 211, 159, 105, 218, 160, 1, 65, 218, 160, 1, 73, 218, 160, 1, 250, + 70, 218, 160, 1, 248, 154, 218, 160, 1, 232, 14, 218, 160, 1, 238, 80, + 218, 160, 1, 70, 218, 160, 1, 193, 221, 218, 160, 1, 191, 166, 218, 160, + 1, 199, 46, 218, 160, 1, 223, 7, 218, 160, 1, 222, 125, 218, 160, 1, 208, + 97, 218, 160, 1, 170, 218, 160, 1, 218, 147, 218, 160, 1, 215, 47, 218, + 160, 1, 216, 0, 218, 160, 1, 213, 67, 218, 160, 1, 69, 218, 160, 1, 210, + 226, 218, 160, 1, 221, 78, 218, 160, 1, 148, 218, 160, 1, 206, 3, 218, + 160, 1, 200, 39, 218, 160, 1, 197, 131, 218, 160, 1, 251, 81, 218, 160, + 1, 234, 61, 218, 160, 1, 230, 83, 218, 160, 1, 192, 235, 247, 47, 1, 65, + 247, 47, 1, 210, 212, 247, 47, 1, 238, 80, 247, 47, 1, 170, 247, 47, 1, + 196, 24, 247, 47, 1, 148, 247, 47, 1, 219, 218, 247, 47, 1, 254, 163, + 247, 47, 1, 208, 97, 247, 47, 1, 250, 70, 247, 47, 1, 218, 147, 247, 47, + 1, 74, 247, 47, 1, 237, 243, 247, 47, 1, 200, 39, 247, 47, 1, 203, 162, + 247, 47, 1, 203, 161, 247, 47, 1, 206, 3, 247, 47, 1, 247, 144, 247, 47, + 1, 69, 247, 47, 1, 213, 67, 247, 47, 1, 192, 235, 247, 47, 1, 215, 47, + 247, 47, 1, 197, 130, 247, 47, 1, 210, 226, 247, 47, 1, 201, 173, 247, + 47, 1, 70, 247, 47, 1, 73, 247, 47, 1, 196, 21, 247, 47, 1, 222, 125, + 247, 47, 1, 222, 116, 247, 47, 1, 214, 150, 247, 47, 1, 196, 26, 247, 47, + 1, 232, 14, 247, 47, 1, 231, 205, 247, 47, 1, 201, 113, 247, 47, 1, 201, + 112, 247, 47, 1, 214, 56, 247, 47, 1, 223, 170, 247, 47, 1, 247, 143, + 247, 47, 1, 197, 131, 247, 47, 1, 196, 23, 247, 47, 1, 206, 105, 247, 47, + 1, 216, 253, 247, 47, 1, 216, 252, 247, 47, 1, 216, 251, 247, 47, 1, 216, + 250, 247, 47, 1, 219, 217, 247, 47, 1, 234, 174, 247, 47, 1, 196, 22, 93, + 234, 12, 198, 224, 77, 93, 234, 12, 17, 108, 93, 234, 12, 17, 109, 93, + 234, 12, 17, 139, 93, 234, 12, 17, 137, 93, 234, 12, 17, 153, 93, 234, + 12, 17, 173, 93, 234, 12, 17, 181, 93, 234, 12, 17, 176, 93, 234, 12, 17, + 184, 93, 234, 12, 31, 199, 90, 93, 234, 12, 31, 197, 28, 93, 234, 12, 31, + 198, 244, 93, 234, 12, 31, 232, 97, 93, 234, 12, 31, 232, 230, 93, 234, + 12, 31, 202, 115, 93, 234, 12, 31, 203, 236, 93, 234, 12, 31, 234, 110, + 93, 234, 12, 31, 213, 156, 93, 234, 12, 31, 91, 228, 109, 93, 234, 12, + 31, 103, 228, 109, 93, 234, 12, 31, 115, 228, 109, 93, 234, 12, 31, 232, + 90, 228, 109, 93, 234, 12, 31, 232, 185, 228, 109, 93, 234, 12, 31, 202, + 131, 228, 109, 93, 234, 12, 31, 203, 242, 228, 109, 93, 234, 12, 31, 234, + 121, 228, 109, 93, 234, 12, 31, 213, 161, 228, 109, 38, 43, 1, 65, 38, + 43, 1, 248, 223, 38, 43, 1, 221, 253, 38, 43, 1, 237, 101, 38, 43, 1, 73, + 38, 43, 1, 195, 150, 38, 43, 1, 191, 87, 38, 43, 1, 229, 213, 38, 43, 1, + 199, 28, 38, 43, 1, 70, 38, 43, 1, 157, 38, 43, 1, 234, 97, 38, 43, 1, + 234, 72, 38, 43, 1, 234, 61, 38, 43, 1, 233, 226, 38, 43, 1, 74, 38, 43, + 1, 210, 53, 38, 43, 1, 203, 108, 38, 43, 1, 220, 208, 38, 43, 1, 233, + 248, 38, 43, 1, 233, 236, 38, 43, 1, 199, 140, 38, 43, 1, 69, 38, 43, 1, + 234, 100, 38, 43, 1, 209, 205, 38, 43, 1, 221, 173, 38, 43, 1, 234, 138, + 38, 43, 1, 233, 238, 38, 43, 1, 243, 79, 38, 43, 1, 223, 170, 38, 43, 1, + 196, 26, 38, 43, 1, 233, 219, 38, 43, 212, 121, 108, 38, 43, 212, 121, + 153, 38, 43, 212, 121, 199, 90, 38, 43, 212, 121, 232, 230, 38, 43, 1, + 192, 80, 38, 43, 1, 213, 3, 197, 157, 38, 43, 1, 201, 251, 197, 157, 230, + 197, 1, 251, 187, 230, 197, 1, 249, 67, 230, 197, 1, 231, 13, 230, 197, + 1, 237, 222, 230, 197, 1, 251, 182, 230, 197, 1, 208, 80, 230, 197, 1, + 223, 20, 230, 197, 1, 230, 50, 230, 197, 1, 198, 238, 230, 197, 1, 234, + 108, 230, 197, 1, 220, 165, 230, 197, 1, 220, 76, 230, 197, 1, 217, 60, + 230, 197, 1, 214, 187, 230, 197, 1, 222, 230, 230, 197, 1, 196, 44, 230, + 197, 1, 210, 185, 230, 197, 1, 213, 156, 230, 197, 1, 207, 150, 230, 197, + 1, 205, 107, 230, 197, 1, 199, 106, 230, 197, 1, 193, 58, 230, 197, 1, + 233, 48, 230, 197, 1, 223, 174, 230, 197, 1, 228, 92, 230, 197, 1, 211, + 19, 230, 197, 1, 213, 161, 228, 109, 38, 209, 249, 1, 251, 81, 38, 209, + 249, 1, 247, 182, 38, 209, 249, 1, 231, 187, 38, 209, 249, 1, 236, 115, + 38, 209, 249, 1, 73, 38, 209, 249, 1, 191, 53, 38, 209, 249, 1, 234, 239, + 38, 209, 249, 1, 191, 95, 38, 209, 249, 1, 234, 237, 38, 209, 249, 1, 70, + 38, 209, 249, 1, 221, 26, 38, 209, 249, 1, 219, 184, 38, 209, 249, 1, + 216, 165, 38, 209, 249, 1, 214, 86, 38, 209, 249, 1, 195, 4, 38, 209, + 249, 1, 210, 39, 38, 209, 249, 1, 207, 65, 38, 209, 249, 1, 202, 188, 38, + 209, 249, 1, 199, 212, 38, 209, 249, 1, 69, 38, 209, 249, 1, 243, 58, 38, + 209, 249, 1, 203, 42, 38, 209, 249, 1, 203, 110, 38, 209, 249, 1, 191, + 227, 38, 209, 249, 1, 192, 58, 38, 209, 249, 1, 74, 38, 209, 249, 1, 211, + 76, 38, 209, 249, 1, 234, 138, 38, 209, 249, 1, 144, 38, 209, 249, 1, + 197, 141, 38, 209, 249, 1, 195, 137, 38, 209, 249, 1, 192, 62, 38, 209, + 249, 1, 192, 60, 38, 209, 249, 1, 192, 95, 38, 209, 249, 1, 223, 197, 38, + 209, 249, 1, 191, 225, 38, 209, 249, 1, 169, 38, 209, 249, 1, 228, 5, 33, + 38, 209, 249, 1, 251, 81, 33, 38, 209, 249, 1, 236, 115, 33, 38, 209, + 249, 1, 191, 95, 33, 38, 209, 249, 1, 214, 86, 33, 38, 209, 249, 1, 202, + 188, 196, 138, 1, 251, 113, 196, 138, 1, 248, 162, 196, 138, 1, 231, 175, + 196, 138, 1, 221, 190, 196, 138, 1, 237, 61, 196, 138, 1, 228, 247, 196, + 138, 1, 193, 48, 196, 138, 1, 191, 76, 196, 138, 1, 228, 148, 196, 138, + 1, 199, 68, 196, 138, 1, 191, 250, 196, 138, 1, 222, 79, 196, 138, 1, + 203, 64, 196, 138, 1, 220, 7, 196, 138, 1, 216, 174, 196, 138, 1, 237, + 19, 196, 138, 1, 212, 117, 196, 138, 1, 190, 251, 196, 138, 1, 205, 142, + 196, 138, 1, 251, 178, 196, 138, 1, 208, 158, 196, 138, 1, 205, 186, 196, + 138, 1, 208, 32, 196, 138, 1, 207, 128, 196, 138, 1, 199, 32, 196, 138, + 1, 231, 49, 196, 138, 1, 159, 196, 138, 1, 70, 196, 138, 1, 69, 196, 138, + 1, 201, 124, 196, 138, 193, 23, 236, 160, 38, 209, 243, 3, 65, 38, 209, + 243, 3, 70, 38, 209, 243, 3, 69, 38, 209, 243, 3, 157, 38, 209, 243, 3, + 220, 208, 38, 209, 243, 3, 231, 203, 38, 209, 243, 3, 230, 146, 38, 209, + 243, 3, 192, 220, 38, 209, 243, 3, 247, 112, 38, 209, 243, 3, 223, 4, 38, + 209, 243, 3, 222, 217, 38, 209, 243, 3, 199, 247, 38, 209, 243, 3, 197, + 90, 38, 209, 243, 3, 237, 241, 38, 209, 243, 3, 236, 255, 38, 209, 243, + 3, 235, 45, 38, 209, 243, 3, 199, 44, 38, 209, 243, 3, 168, 38, 209, 243, + 3, 249, 103, 38, 209, 243, 3, 233, 68, 38, 209, 243, 3, 180, 38, 209, + 243, 3, 212, 165, 38, 209, 243, 3, 172, 38, 209, 243, 3, 216, 81, 38, + 209, 243, 3, 215, 139, 38, 209, 243, 3, 169, 38, 209, 243, 3, 195, 185, + 38, 209, 243, 3, 195, 66, 38, 209, 243, 3, 166, 38, 209, 243, 3, 206, 63, + 38, 209, 243, 3, 171, 38, 209, 243, 3, 189, 38, 209, 243, 3, 191, 123, + 38, 209, 243, 3, 203, 160, 38, 209, 243, 3, 201, 170, 38, 209, 243, 3, + 144, 38, 209, 243, 3, 250, 107, 38, 209, 243, 3, 250, 106, 38, 209, 243, + 3, 250, 105, 38, 209, 243, 3, 192, 189, 38, 209, 243, 3, 237, 218, 38, + 209, 243, 3, 237, 217, 38, 209, 243, 3, 249, 78, 38, 209, 243, 3, 247, + 164, 38, 209, 243, 193, 23, 236, 160, 38, 209, 243, 31, 108, 38, 209, + 243, 31, 109, 38, 209, 243, 31, 199, 90, 38, 209, 243, 31, 197, 28, 38, + 209, 243, 31, 228, 109, 237, 39, 6, 1, 177, 70, 237, 39, 6, 1, 177, 73, + 237, 39, 6, 1, 177, 65, 237, 39, 6, 1, 177, 251, 193, 237, 39, 6, 1, 177, + 74, 237, 39, 6, 1, 177, 211, 76, 237, 39, 6, 1, 203, 35, 70, 237, 39, 6, + 1, 203, 35, 73, 237, 39, 6, 1, 203, 35, 65, 237, 39, 6, 1, 203, 35, 251, + 193, 237, 39, 6, 1, 203, 35, 74, 237, 39, 6, 1, 203, 35, 211, 76, 237, + 39, 6, 1, 250, 81, 237, 39, 6, 1, 210, 240, 237, 39, 6, 1, 193, 0, 237, + 39, 6, 1, 192, 77, 237, 39, 6, 1, 230, 83, 237, 39, 6, 1, 210, 40, 237, + 39, 6, 1, 248, 207, 237, 39, 6, 1, 199, 116, 237, 39, 6, 1, 237, 86, 237, + 39, 6, 1, 243, 75, 237, 39, 6, 1, 222, 236, 237, 39, 6, 1, 222, 4, 237, + 39, 6, 1, 231, 149, 237, 39, 6, 1, 234, 138, 237, 39, 6, 1, 195, 145, + 237, 39, 6, 1, 233, 206, 237, 39, 6, 1, 199, 26, 237, 39, 6, 1, 233, 236, + 237, 39, 6, 1, 191, 84, 237, 39, 6, 1, 233, 226, 237, 39, 6, 1, 191, 61, + 237, 39, 6, 1, 233, 248, 237, 39, 6, 1, 234, 97, 237, 39, 6, 1, 234, 72, + 237, 39, 6, 1, 234, 61, 237, 39, 6, 1, 234, 46, 237, 39, 6, 1, 211, 121, + 237, 39, 6, 1, 233, 183, 237, 39, 2, 1, 177, 70, 237, 39, 2, 1, 177, 73, + 237, 39, 2, 1, 177, 65, 237, 39, 2, 1, 177, 251, 193, 237, 39, 2, 1, 177, + 74, 237, 39, 2, 1, 177, 211, 76, 237, 39, 2, 1, 203, 35, 70, 237, 39, 2, + 1, 203, 35, 73, 237, 39, 2, 1, 203, 35, 65, 237, 39, 2, 1, 203, 35, 251, + 193, 237, 39, 2, 1, 203, 35, 74, 237, 39, 2, 1, 203, 35, 211, 76, 237, + 39, 2, 1, 250, 81, 237, 39, 2, 1, 210, 240, 237, 39, 2, 1, 193, 0, 237, + 39, 2, 1, 192, 77, 237, 39, 2, 1, 230, 83, 237, 39, 2, 1, 210, 40, 237, + 39, 2, 1, 248, 207, 237, 39, 2, 1, 199, 116, 237, 39, 2, 1, 237, 86, 237, + 39, 2, 1, 243, 75, 237, 39, 2, 1, 222, 236, 237, 39, 2, 1, 222, 4, 237, + 39, 2, 1, 231, 149, 237, 39, 2, 1, 234, 138, 237, 39, 2, 1, 195, 145, + 237, 39, 2, 1, 233, 206, 237, 39, 2, 1, 199, 26, 237, 39, 2, 1, 233, 236, + 237, 39, 2, 1, 191, 84, 237, 39, 2, 1, 233, 226, 237, 39, 2, 1, 191, 61, + 237, 39, 2, 1, 233, 248, 237, 39, 2, 1, 234, 97, 237, 39, 2, 1, 234, 72, + 237, 39, 2, 1, 234, 61, 237, 39, 2, 1, 234, 46, 237, 39, 2, 1, 211, 121, + 237, 39, 2, 1, 233, 183, 203, 115, 1, 210, 36, 203, 115, 1, 198, 35, 203, + 115, 1, 221, 130, 203, 115, 1, 233, 11, 203, 115, 1, 199, 1, 203, 115, 1, + 202, 41, 203, 115, 1, 200, 167, 203, 115, 1, 242, 248, 203, 115, 1, 192, + 79, 203, 115, 1, 228, 106, 203, 115, 1, 248, 139, 203, 115, 1, 237, 100, + 203, 115, 1, 231, 189, 203, 115, 1, 194, 255, 203, 115, 1, 199, 7, 203, + 115, 1, 191, 4, 203, 115, 1, 216, 208, 203, 115, 1, 222, 153, 203, 115, + 1, 193, 39, 203, 115, 1, 230, 60, 203, 115, 1, 219, 1, 203, 115, 1, 216, + 27, 203, 115, 1, 223, 177, 203, 115, 1, 234, 136, 203, 115, 1, 250, 159, + 203, 115, 1, 251, 234, 203, 115, 1, 211, 93, 203, 115, 1, 193, 26, 203, + 115, 1, 211, 4, 203, 115, 1, 251, 193, 203, 115, 1, 206, 148, 203, 115, + 1, 212, 117, 203, 115, 1, 234, 156, 203, 115, 1, 251, 198, 203, 115, 1, + 227, 252, 203, 115, 1, 196, 73, 203, 115, 1, 211, 167, 203, 115, 1, 211, + 68, 203, 115, 1, 211, 119, 203, 115, 1, 250, 87, 203, 115, 1, 250, 215, + 203, 115, 1, 211, 45, 203, 115, 1, 251, 173, 203, 115, 1, 233, 240, 203, + 115, 1, 250, 190, 203, 115, 1, 234, 167, 203, 115, 1, 228, 4, 203, 115, + 1, 192, 41, 211, 23, 1, 251, 141, 211, 23, 1, 249, 103, 211, 23, 1, 199, + 247, 211, 23, 1, 223, 4, 211, 23, 1, 192, 220, 211, 23, 1, 221, 190, 211, + 23, 1, 237, 85, 211, 23, 1, 166, 211, 23, 1, 189, 211, 23, 1, 203, 70, + 211, 23, 1, 237, 23, 211, 23, 1, 247, 19, 211, 23, 1, 231, 203, 211, 23, + 1, 233, 68, 211, 23, 1, 208, 87, 211, 23, 1, 222, 96, 211, 23, 1, 220, + 97, 211, 23, 1, 216, 41, 211, 23, 1, 212, 101, 211, 23, 1, 193, 131, 211, + 23, 1, 144, 211, 23, 1, 169, 211, 23, 1, 65, 211, 23, 1, 73, 211, 23, 1, + 70, 211, 23, 1, 74, 211, 23, 1, 69, 211, 23, 1, 252, 154, 211, 23, 1, + 234, 145, 211, 23, 1, 211, 76, 211, 23, 17, 191, 77, 211, 23, 17, 108, + 211, 23, 17, 109, 211, 23, 17, 139, 211, 23, 17, 137, 211, 23, 17, 153, + 211, 23, 17, 173, 211, 23, 17, 181, 211, 23, 17, 176, 211, 23, 17, 184, + 211, 25, 6, 1, 65, 211, 25, 6, 1, 251, 184, 211, 25, 6, 1, 251, 178, 211, + 25, 6, 1, 251, 193, 211, 25, 6, 1, 248, 8, 211, 25, 6, 1, 246, 209, 211, + 25, 6, 1, 234, 129, 211, 25, 6, 1, 73, 211, 25, 6, 1, 234, 109, 211, 25, + 6, 1, 144, 211, 25, 6, 1, 228, 62, 211, 25, 6, 1, 70, 211, 25, 6, 1, 157, + 211, 25, 6, 1, 234, 128, 211, 25, 6, 1, 220, 129, 211, 25, 6, 1, 171, + 211, 25, 6, 1, 172, 211, 25, 6, 1, 180, 211, 25, 6, 1, 74, 211, 25, 6, 1, + 211, 118, 211, 25, 6, 1, 168, 211, 25, 6, 1, 234, 127, 211, 25, 6, 1, + 189, 211, 25, 6, 1, 203, 160, 211, 25, 6, 1, 199, 247, 211, 25, 6, 1, + 234, 126, 211, 25, 6, 1, 197, 164, 211, 25, 6, 1, 234, 125, 211, 25, 6, + 1, 197, 153, 211, 25, 6, 1, 237, 23, 211, 25, 6, 1, 69, 211, 25, 6, 1, + 193, 187, 211, 25, 6, 1, 221, 190, 211, 25, 6, 1, 231, 54, 211, 25, 6, 1, + 191, 123, 211, 25, 6, 1, 191, 71, 211, 25, 2, 1, 65, 211, 25, 2, 1, 251, + 184, 211, 25, 2, 1, 251, 178, 211, 25, 2, 1, 251, 193, 211, 25, 2, 1, + 248, 8, 211, 25, 2, 1, 246, 209, 211, 25, 2, 1, 234, 129, 211, 25, 2, 1, + 73, 211, 25, 2, 1, 234, 109, 211, 25, 2, 1, 144, 211, 25, 2, 1, 228, 62, + 211, 25, 2, 1, 70, 211, 25, 2, 1, 157, 211, 25, 2, 1, 234, 128, 211, 25, + 2, 1, 220, 129, 211, 25, 2, 1, 171, 211, 25, 2, 1, 172, 211, 25, 2, 1, + 180, 211, 25, 2, 1, 74, 211, 25, 2, 1, 211, 118, 211, 25, 2, 1, 168, 211, + 25, 2, 1, 234, 127, 211, 25, 2, 1, 189, 211, 25, 2, 1, 203, 160, 211, 25, + 2, 1, 199, 247, 211, 25, 2, 1, 234, 126, 211, 25, 2, 1, 197, 164, 211, + 25, 2, 1, 234, 125, 211, 25, 2, 1, 197, 153, 211, 25, 2, 1, 237, 23, 211, + 25, 2, 1, 69, 211, 25, 2, 1, 193, 187, 211, 25, 2, 1, 221, 190, 211, 25, + 2, 1, 231, 54, 211, 25, 2, 1, 191, 123, 211, 25, 2, 1, 191, 71, 234, 93, + 1, 65, 234, 93, 1, 248, 223, 234, 93, 1, 246, 250, 234, 93, 1, 243, 79, + 234, 93, 1, 237, 101, 234, 93, 1, 214, 140, 234, 93, 1, 237, 14, 234, 93, + 1, 234, 123, 234, 93, 1, 73, 234, 93, 1, 233, 18, 234, 93, 1, 231, 128, + 234, 93, 1, 230, 240, 234, 93, 1, 229, 213, 234, 93, 1, 70, 234, 93, 1, + 222, 238, 234, 93, 1, 221, 253, 234, 93, 1, 219, 214, 234, 93, 1, 219, + 44, 234, 93, 1, 216, 213, 234, 93, 1, 214, 107, 234, 93, 1, 180, 234, 93, + 1, 213, 137, 234, 93, 1, 74, 234, 93, 1, 210, 53, 234, 93, 1, 208, 69, + 234, 93, 1, 207, 108, 234, 93, 1, 206, 99, 234, 93, 1, 205, 63, 234, 93, + 1, 203, 108, 234, 93, 1, 199, 140, 234, 93, 1, 199, 28, 234, 93, 1, 69, + 234, 93, 1, 195, 150, 234, 93, 1, 192, 214, 234, 93, 1, 192, 159, 234, + 93, 1, 191, 87, 234, 93, 1, 191, 62, 234, 93, 1, 231, 40, 234, 93, 1, + 231, 46, 234, 93, 1, 221, 173, 247, 27, 251, 142, 1, 251, 108, 247, 27, + 251, 142, 1, 248, 164, 247, 27, 251, 142, 1, 231, 3, 247, 27, 251, 142, + 1, 237, 166, 247, 27, 251, 142, 1, 234, 155, 247, 27, 251, 142, 1, 191, + 98, 247, 27, 251, 142, 1, 233, 143, 247, 27, 251, 142, 1, 191, 56, 247, + 27, 251, 142, 1, 199, 169, 247, 27, 251, 142, 1, 246, 209, 247, 27, 251, + 142, 1, 191, 236, 247, 27, 251, 142, 1, 191, 71, 247, 27, 251, 142, 1, + 223, 48, 247, 27, 251, 142, 1, 203, 160, 247, 27, 251, 142, 1, 220, 0, + 247, 27, 251, 142, 1, 223, 61, 247, 27, 251, 142, 1, 192, 210, 247, 27, + 251, 142, 1, 234, 255, 247, 27, 251, 142, 1, 247, 54, 247, 27, 251, 142, + 1, 222, 218, 247, 27, 251, 142, 1, 222, 39, 247, 27, 251, 142, 1, 218, + 156, 247, 27, 251, 142, 1, 229, 147, 247, 27, 251, 142, 1, 208, 70, 247, + 27, 251, 142, 1, 251, 17, 247, 27, 251, 142, 1, 243, 9, 247, 27, 251, + 142, 1, 243, 47, 247, 27, 251, 142, 1, 238, 93, 247, 27, 251, 142, 1, + 217, 48, 247, 27, 251, 142, 1, 208, 74, 247, 27, 251, 142, 1, 212, 239, + 247, 27, 251, 142, 1, 234, 232, 247, 27, 251, 142, 1, 203, 142, 247, 27, + 251, 142, 1, 222, 239, 247, 27, 251, 142, 1, 211, 93, 247, 27, 251, 142, + 1, 196, 255, 247, 27, 251, 142, 1, 233, 41, 247, 27, 251, 142, 1, 234, + 245, 247, 27, 251, 142, 1, 243, 85, 247, 27, 251, 142, 1, 210, 25, 247, + 27, 251, 142, 1, 231, 30, 247, 27, 251, 142, 1, 207, 125, 247, 27, 251, + 142, 1, 203, 169, 247, 27, 251, 142, 1, 195, 69, 247, 27, 251, 142, 1, + 198, 113, 247, 27, 251, 142, 1, 203, 13, 247, 27, 251, 142, 1, 223, 18, + 247, 27, 251, 142, 1, 238, 94, 247, 27, 251, 142, 1, 247, 19, 247, 27, + 251, 142, 1, 192, 84, 247, 27, 251, 142, 1, 209, 106, 247, 27, 251, 142, + 1, 221, 93, 247, 27, 251, 142, 242, 206, 77, 195, 26, 6, 1, 65, 195, 26, + 6, 1, 248, 254, 195, 26, 6, 1, 248, 223, 195, 26, 6, 1, 246, 250, 195, + 26, 6, 1, 243, 79, 195, 26, 6, 1, 237, 101, 195, 26, 6, 1, 237, 14, 195, + 26, 6, 1, 234, 123, 195, 26, 6, 1, 73, 195, 26, 6, 1, 233, 18, 195, 26, + 6, 1, 231, 203, 195, 26, 6, 1, 144, 195, 26, 6, 1, 229, 145, 195, 26, 6, + 1, 70, 195, 26, 6, 1, 223, 167, 195, 26, 6, 1, 222, 238, 195, 26, 6, 1, + 157, 195, 26, 6, 1, 171, 195, 26, 6, 1, 219, 49, 195, 26, 6, 1, 216, 213, + 195, 26, 6, 1, 214, 107, 195, 26, 6, 1, 213, 137, 195, 26, 6, 1, 74, 195, + 26, 6, 1, 210, 53, 195, 26, 6, 1, 208, 89, 195, 26, 6, 1, 207, 108, 195, + 26, 6, 1, 205, 63, 195, 26, 6, 1, 203, 108, 195, 26, 6, 1, 199, 140, 195, + 26, 6, 1, 199, 28, 195, 26, 6, 1, 69, 195, 26, 6, 1, 195, 150, 195, 26, + 6, 1, 192, 214, 195, 26, 6, 1, 192, 159, 195, 26, 6, 1, 191, 87, 195, 26, + 2, 1, 65, 195, 26, 2, 1, 248, 254, 195, 26, 2, 1, 248, 223, 195, 26, 2, + 1, 246, 250, 195, 26, 2, 1, 243, 79, 195, 26, 2, 1, 237, 101, 195, 26, 2, + 1, 237, 14, 195, 26, 2, 1, 234, 123, 195, 26, 2, 1, 73, 195, 26, 2, 1, + 233, 18, 195, 26, 2, 1, 231, 203, 195, 26, 2, 1, 144, 195, 26, 2, 1, 229, + 145, 195, 26, 2, 1, 70, 195, 26, 2, 1, 223, 167, 195, 26, 2, 1, 222, 238, + 195, 26, 2, 1, 157, 195, 26, 2, 1, 171, 195, 26, 2, 1, 219, 49, 195, 26, + 2, 1, 216, 213, 195, 26, 2, 1, 214, 107, 195, 26, 2, 1, 213, 137, 195, + 26, 2, 1, 74, 195, 26, 2, 1, 210, 53, 195, 26, 2, 1, 208, 89, 195, 26, 2, + 1, 207, 108, 195, 26, 2, 1, 205, 63, 195, 26, 2, 1, 203, 108, 195, 26, 2, + 1, 199, 140, 195, 26, 2, 1, 199, 28, 195, 26, 2, 1, 69, 195, 26, 2, 1, + 195, 150, 195, 26, 2, 1, 192, 214, 195, 26, 2, 1, 192, 159, 195, 26, 2, + 1, 191, 87, 32, 41, 3, 252, 102, 32, 41, 3, 252, 101, 32, 41, 3, 252, + 100, 32, 41, 3, 252, 99, 32, 41, 3, 252, 98, 32, 41, 3, 252, 97, 32, 41, + 3, 252, 96, 32, 41, 3, 252, 95, 32, 41, 3, 252, 94, 32, 41, 3, 252, 93, + 32, 41, 3, 252, 92, 32, 41, 3, 252, 91, 32, 41, 3, 252, 90, 32, 41, 3, + 252, 89, 32, 41, 3, 252, 88, 32, 41, 3, 252, 87, 32, 41, 3, 252, 86, 32, + 41, 3, 252, 85, 32, 41, 3, 252, 84, 32, 41, 3, 252, 83, 32, 41, 3, 252, + 82, 32, 41, 3, 252, 81, 32, 41, 3, 252, 80, 32, 41, 3, 252, 79, 32, 41, + 3, 252, 78, 32, 41, 3, 252, 77, 32, 41, 3, 252, 76, 32, 41, 3, 255, 112, + 32, 41, 3, 252, 75, 32, 41, 3, 252, 74, 32, 41, 3, 252, 73, 32, 41, 3, + 252, 72, 32, 41, 3, 252, 71, 32, 41, 3, 252, 70, 32, 41, 3, 252, 69, 32, + 41, 3, 252, 68, 32, 41, 3, 252, 67, 32, 41, 3, 252, 66, 32, 41, 3, 252, + 65, 32, 41, 3, 252, 64, 32, 41, 3, 252, 63, 32, 41, 3, 252, 62, 32, 41, + 3, 252, 61, 32, 41, 3, 252, 60, 32, 41, 3, 252, 59, 32, 41, 3, 252, 58, + 32, 41, 3, 252, 57, 32, 41, 3, 252, 56, 32, 41, 3, 252, 55, 32, 41, 3, + 252, 54, 32, 41, 3, 252, 53, 32, 41, 3, 252, 52, 32, 41, 3, 252, 51, 32, + 41, 3, 252, 50, 32, 41, 3, 252, 49, 32, 41, 3, 252, 48, 32, 41, 3, 252, + 47, 32, 41, 3, 252, 46, 32, 41, 3, 252, 45, 32, 41, 3, 252, 44, 32, 41, + 3, 252, 43, 32, 41, 3, 252, 42, 32, 41, 3, 252, 41, 32, 41, 3, 252, 40, + 32, 41, 3, 252, 39, 32, 41, 3, 252, 38, 32, 41, 3, 252, 37, 32, 41, 3, + 252, 36, 32, 41, 3, 252, 35, 32, 41, 3, 252, 34, 32, 41, 3, 252, 33, 32, + 41, 3, 255, 25, 32, 41, 3, 252, 32, 32, 41, 3, 252, 31, 32, 41, 3, 254, + 246, 32, 41, 3, 252, 30, 32, 41, 3, 252, 29, 32, 41, 3, 252, 28, 32, 41, + 3, 252, 27, 32, 41, 3, 254, 233, 32, 41, 3, 252, 26, 32, 41, 3, 252, 25, + 32, 41, 3, 252, 24, 32, 41, 3, 252, 23, 32, 41, 3, 252, 22, 32, 41, 3, + 254, 49, 32, 41, 3, 254, 48, 32, 41, 3, 254, 47, 32, 41, 3, 254, 46, 32, + 41, 3, 254, 45, 32, 41, 3, 254, 44, 32, 41, 3, 254, 43, 32, 41, 3, 254, + 42, 32, 41, 3, 254, 40, 32, 41, 3, 254, 39, 32, 41, 3, 254, 38, 32, 41, + 3, 254, 37, 32, 41, 3, 254, 36, 32, 41, 3, 254, 35, 32, 41, 3, 254, 33, + 32, 41, 3, 254, 32, 32, 41, 3, 254, 31, 32, 41, 3, 254, 30, 32, 41, 3, + 254, 29, 32, 41, 3, 254, 28, 32, 41, 3, 254, 27, 32, 41, 3, 254, 26, 32, + 41, 3, 254, 25, 32, 41, 3, 254, 24, 32, 41, 3, 254, 23, 32, 41, 3, 254, + 22, 32, 41, 3, 254, 21, 32, 41, 3, 254, 20, 32, 41, 3, 254, 19, 32, 41, + 3, 254, 18, 32, 41, 3, 254, 17, 32, 41, 3, 254, 16, 32, 41, 3, 254, 15, + 32, 41, 3, 254, 13, 32, 41, 3, 254, 12, 32, 41, 3, 254, 11, 32, 41, 3, + 254, 7, 32, 41, 3, 254, 6, 32, 41, 3, 254, 5, 32, 41, 3, 254, 4, 32, 41, + 3, 254, 0, 32, 41, 3, 253, 255, 32, 41, 3, 253, 254, 32, 41, 3, 253, 253, + 32, 41, 3, 253, 252, 32, 41, 3, 253, 251, 32, 41, 3, 253, 250, 32, 41, 3, + 253, 249, 32, 41, 3, 253, 248, 32, 41, 3, 253, 247, 32, 41, 3, 253, 246, + 32, 41, 3, 253, 245, 32, 41, 3, 253, 244, 32, 41, 3, 253, 243, 32, 41, 3, + 253, 242, 32, 41, 3, 253, 241, 32, 41, 3, 253, 240, 32, 41, 3, 253, 239, + 32, 41, 3, 253, 238, 32, 41, 3, 253, 237, 32, 41, 3, 253, 236, 32, 41, 3, + 253, 235, 32, 41, 3, 253, 234, 32, 41, 3, 253, 232, 32, 41, 3, 253, 231, + 32, 41, 3, 253, 230, 32, 41, 3, 253, 229, 32, 41, 3, 253, 228, 32, 41, 3, + 253, 226, 32, 41, 3, 253, 225, 32, 41, 3, 253, 224, 32, 41, 3, 253, 223, + 32, 41, 3, 253, 221, 32, 41, 3, 253, 220, 32, 41, 3, 253, 219, 32, 41, 3, + 253, 185, 32, 41, 3, 253, 183, 32, 41, 3, 253, 181, 32, 41, 3, 253, 179, + 32, 41, 3, 253, 177, 32, 41, 3, 253, 175, 32, 41, 3, 253, 173, 32, 41, 3, + 253, 171, 32, 41, 3, 253, 169, 32, 41, 3, 253, 167, 32, 41, 3, 253, 165, + 32, 41, 3, 253, 162, 32, 41, 3, 253, 160, 32, 41, 3, 253, 158, 32, 41, 3, + 253, 156, 32, 41, 3, 253, 154, 32, 41, 3, 253, 152, 32, 41, 3, 253, 150, + 32, 41, 3, 253, 148, 32, 41, 3, 253, 66, 32, 41, 3, 253, 65, 32, 41, 3, + 253, 64, 32, 41, 3, 253, 63, 32, 41, 3, 253, 62, 32, 41, 3, 253, 61, 32, + 41, 3, 253, 59, 32, 41, 3, 253, 58, 32, 41, 3, 253, 57, 32, 41, 3, 253, + 56, 32, 41, 3, 253, 55, 32, 41, 3, 253, 54, 32, 41, 3, 253, 52, 32, 41, + 3, 253, 51, 32, 41, 3, 253, 47, 32, 41, 3, 253, 46, 32, 41, 3, 253, 44, + 32, 41, 3, 253, 43, 32, 41, 3, 253, 42, 32, 41, 3, 253, 41, 32, 41, 3, + 253, 40, 32, 41, 3, 253, 39, 32, 41, 3, 253, 38, 32, 41, 3, 253, 37, 32, + 41, 3, 253, 36, 32, 41, 3, 253, 35, 32, 41, 3, 253, 34, 32, 41, 3, 253, + 33, 32, 41, 3, 253, 32, 32, 41, 3, 253, 31, 32, 41, 3, 253, 30, 32, 41, + 3, 253, 29, 32, 41, 3, 253, 28, 32, 41, 3, 253, 27, 32, 41, 3, 253, 26, + 32, 41, 3, 253, 25, 32, 41, 3, 253, 24, 32, 41, 3, 253, 23, 32, 41, 3, + 253, 22, 32, 41, 3, 253, 21, 32, 41, 3, 253, 20, 32, 41, 3, 253, 19, 32, + 41, 3, 253, 18, 32, 41, 3, 253, 17, 32, 41, 3, 253, 16, 32, 41, 3, 253, + 15, 32, 41, 3, 253, 14, 32, 41, 3, 253, 13, 32, 41, 3, 253, 12, 32, 41, + 3, 253, 11, 32, 41, 3, 253, 10, 32, 41, 3, 253, 9, 32, 41, 3, 253, 8, 32, + 41, 3, 253, 7, 32, 41, 3, 253, 6, 32, 41, 3, 253, 5, 32, 41, 3, 253, 4, + 32, 41, 3, 253, 3, 32, 41, 3, 253, 2, 32, 41, 3, 253, 1, 32, 41, 3, 253, + 0, 32, 41, 3, 252, 255, 32, 41, 3, 252, 254, 32, 41, 3, 252, 253, 32, 41, + 3, 252, 252, 32, 41, 3, 252, 251, 32, 41, 3, 252, 250, 32, 41, 3, 252, + 249, 32, 41, 3, 252, 248, 32, 41, 3, 252, 247, 32, 41, 3, 252, 246, 32, + 41, 3, 252, 245, 32, 41, 3, 252, 244, 32, 41, 3, 252, 243, 32, 41, 3, + 252, 242, 32, 41, 3, 252, 241, 32, 41, 3, 252, 240, 32, 41, 3, 252, 239, + 32, 41, 3, 252, 238, 32, 41, 3, 252, 237, 32, 41, 3, 252, 236, 32, 41, 3, + 252, 235, 32, 41, 3, 252, 234, 32, 41, 3, 252, 233, 32, 41, 3, 252, 232, + 32, 41, 3, 252, 231, 32, 41, 3, 252, 230, 32, 41, 3, 252, 229, 32, 41, 3, + 252, 228, 32, 41, 3, 252, 227, 32, 41, 3, 252, 226, 32, 41, 3, 252, 225, + 32, 41, 3, 252, 224, 32, 41, 3, 252, 223, 32, 41, 3, 252, 222, 32, 41, 3, + 252, 221, 32, 41, 3, 252, 220, 32, 41, 3, 252, 219, 32, 41, 3, 252, 218, + 32, 41, 3, 252, 217, 32, 41, 3, 252, 216, 32, 41, 3, 252, 215, 32, 41, 3, + 252, 214, 32, 41, 3, 252, 213, 32, 41, 3, 252, 212, 32, 41, 3, 252, 211, + 32, 41, 3, 252, 210, 32, 41, 3, 252, 209, 32, 41, 3, 252, 208, 32, 41, 3, + 252, 207, 32, 41, 3, 252, 206, 32, 41, 3, 252, 205, 32, 41, 3, 252, 204, + 32, 41, 3, 252, 203, 32, 41, 3, 252, 202, 32, 41, 3, 252, 201, 32, 41, 3, + 252, 200, 32, 41, 3, 252, 199, 32, 41, 3, 252, 198, 32, 41, 3, 252, 197, + 32, 41, 3, 252, 196, 32, 41, 3, 252, 195, 32, 41, 3, 252, 194, 32, 41, 3, + 252, 193, 32, 41, 3, 252, 192, 32, 41, 3, 252, 191, 32, 41, 3, 252, 190, + 32, 41, 3, 252, 189, 32, 41, 3, 252, 188, 32, 41, 3, 252, 187, 32, 41, 3, + 252, 186, 32, 41, 3, 252, 185, 32, 41, 3, 252, 184, 65, 32, 41, 3, 252, + 183, 250, 70, 32, 41, 3, 252, 182, 238, 80, 32, 41, 3, 252, 181, 73, 32, + 41, 3, 252, 180, 233, 134, 32, 41, 3, 252, 179, 230, 83, 32, 41, 3, 252, + 178, 223, 7, 32, 41, 3, 252, 177, 222, 125, 32, 41, 3, 252, 176, 170, 32, + 41, 3, 252, 175, 220, 106, 32, 41, 3, 252, 174, 220, 105, 32, 41, 3, 252, + 173, 220, 104, 32, 41, 3, 252, 172, 220, 103, 32, 41, 3, 252, 171, 193, + 221, 32, 41, 3, 252, 170, 192, 235, 32, 41, 3, 252, 169, 192, 159, 32, + 41, 3, 252, 168, 211, 99, 32, 41, 3, 252, 167, 252, 17, 32, 41, 3, 252, + 166, 249, 4, 32, 41, 3, 252, 165, 237, 148, 32, 41, 3, 252, 164, 233, + 142, 32, 41, 3, 252, 163, 222, 238, 32, 41, 3, 252, 162, 32, 41, 3, 252, + 161, 32, 41, 3, 252, 160, 32, 41, 3, 252, 159, 32, 41, 3, 252, 158, 32, + 41, 3, 252, 157, 32, 41, 3, 252, 156, 32, 41, 3, 252, 155, 59, 1, 2, 6, + 252, 154, 59, 1, 200, 177, 197, 234, 242, 35, 59, 1, 200, 177, 134, 197, + 234, 242, 35, 59, 1, 2, 251, 229, 59, 1, 2, 6, 250, 70, 59, 1, 2, 78, 4, + 106, 59, 1, 2, 234, 249, 236, 213, 59, 1, 2, 234, 249, 236, 214, 4, 207, + 19, 106, 59, 1, 2, 234, 249, 236, 214, 4, 238, 128, 59, 1, 2, 237, 25, + 236, 213, 59, 1, 2, 238, 81, 4, 199, 210, 59, 1, 2, 238, 81, 4, 106, 59, + 1, 2, 238, 81, 4, 228, 219, 24, 199, 210, 59, 1, 2, 207, 13, 73, 59, 1, + 2, 242, 171, 207, 13, 211, 66, 73, 59, 1, 2, 232, 252, 236, 213, 59, 1, + 2, 207, 135, 228, 156, 59, 1, 2, 6, 232, 14, 59, 1, 2, 232, 15, 4, 106, + 59, 1, 2, 6, 232, 15, 4, 106, 59, 1, 2, 230, 84, 4, 105, 59, 1, 2, 6, + 230, 83, 59, 1, 2, 229, 165, 4, 106, 59, 1, 2, 236, 95, 223, 8, 4, 201, + 23, 24, 106, 59, 1, 2, 218, 205, 236, 213, 59, 1, 2, 218, 149, 236, 213, + 59, 1, 2, 220, 119, 4, 248, 181, 59, 1, 2, 6, 220, 119, 4, 248, 181, 59, + 1, 2, 220, 119, 4, 207, 19, 228, 219, 24, 248, 181, 59, 1, 2, 219, 138, + 59, 1, 2, 219, 139, 4, 207, 19, 106, 59, 1, 2, 152, 192, 159, 59, 1, 2, + 152, 192, 160, 4, 248, 181, 59, 1, 2, 186, 4, 105, 59, 1, 2, 6, 211, 139, + 59, 1, 2, 242, 171, 211, 99, 59, 1, 2, 208, 97, 59, 1, 2, 152, 207, 217, + 4, 177, 219, 188, 59, 1, 2, 152, 207, 217, 4, 177, 219, 189, 24, 207, 19, + 106, 59, 1, 2, 207, 217, 4, 199, 210, 59, 1, 2, 207, 217, 4, 232, 192, + 59, 1, 2, 6, 148, 59, 1, 2, 199, 147, 236, 214, 4, 238, 128, 59, 1, 2, + 197, 166, 236, 213, 59, 1, 2, 197, 166, 236, 214, 4, 207, 19, 106, 59, 1, + 2, 199, 74, 236, 213, 59, 1, 2, 200, 40, 4, 207, 19, 106, 59, 1, 2, 196, + 9, 4, 50, 106, 59, 1, 2, 6, 192, 159, 59, 1, 230, 231, 201, 59, 4, 105, + 59, 1, 207, 13, 230, 231, 201, 59, 4, 105, 59, 1, 248, 124, 242, 183, 59, + 1, 237, 53, 242, 183, 59, 1, 219, 235, 242, 183, 59, 1, 251, 99, 242, + 183, 59, 1, 207, 19, 242, 184, 4, 207, 19, 106, 59, 1, 2, 206, 4, 4, 238, + 128, 238, 88, 5, 65, 238, 88, 5, 73, 238, 88, 5, 70, 238, 88, 5, 74, 238, + 88, 5, 69, 238, 88, 5, 223, 4, 238, 88, 5, 222, 174, 238, 88, 5, 157, + 238, 88, 5, 221, 253, 238, 88, 5, 221, 142, 238, 88, 5, 221, 43, 238, 88, + 5, 220, 208, 238, 88, 5, 171, 238, 88, 5, 219, 214, 238, 88, 5, 219, 122, + 238, 88, 5, 219, 19, 238, 88, 5, 218, 203, 238, 88, 5, 172, 238, 88, 5, + 216, 213, 238, 88, 5, 216, 81, 238, 88, 5, 215, 251, 238, 88, 5, 215, + 139, 238, 88, 5, 180, 238, 88, 5, 214, 107, 238, 88, 5, 213, 205, 238, + 88, 5, 213, 30, 238, 88, 5, 212, 165, 238, 88, 5, 168, 238, 88, 5, 210, + 53, 238, 88, 5, 209, 176, 238, 88, 5, 209, 65, 238, 88, 5, 208, 158, 238, + 88, 5, 166, 238, 88, 5, 207, 108, 238, 88, 5, 206, 252, 238, 88, 5, 206, + 157, 238, 88, 5, 206, 63, 238, 88, 5, 189, 238, 88, 5, 205, 63, 238, 88, + 5, 202, 217, 238, 88, 5, 202, 41, 238, 88, 5, 200, 255, 238, 88, 5, 199, + 247, 238, 88, 5, 199, 140, 238, 88, 5, 198, 188, 238, 88, 5, 159, 238, + 88, 5, 197, 90, 238, 88, 5, 193, 187, 238, 88, 5, 193, 123, 238, 88, 5, + 193, 84, 238, 88, 5, 193, 48, 238, 88, 5, 192, 220, 238, 88, 5, 192, 214, + 238, 88, 5, 191, 123, 238, 88, 5, 191, 7, 223, 136, 250, 224, 1, 251, + 139, 223, 136, 250, 224, 1, 248, 161, 223, 136, 250, 224, 1, 231, 1, 223, + 136, 250, 224, 1, 237, 205, 223, 136, 250, 224, 1, 229, 213, 223, 136, + 250, 224, 1, 193, 131, 223, 136, 250, 224, 1, 191, 91, 223, 136, 250, + 224, 1, 229, 152, 223, 136, 250, 224, 1, 199, 64, 223, 136, 250, 224, 1, + 191, 249, 223, 136, 250, 224, 1, 222, 49, 223, 136, 250, 224, 1, 220, 2, + 223, 136, 250, 224, 1, 216, 174, 223, 136, 250, 224, 1, 212, 117, 223, + 136, 250, 224, 1, 205, 143, 223, 136, 250, 224, 1, 250, 76, 223, 136, + 250, 224, 1, 210, 53, 223, 136, 250, 224, 1, 205, 184, 223, 136, 250, + 224, 1, 208, 31, 223, 136, 250, 224, 1, 207, 33, 223, 136, 250, 224, 1, + 203, 64, 223, 136, 250, 224, 1, 199, 154, 223, 136, 250, 224, 205, 49, + 57, 223, 136, 250, 224, 31, 108, 223, 136, 250, 224, 31, 109, 223, 136, + 250, 224, 31, 139, 223, 136, 250, 224, 31, 199, 90, 223, 136, 250, 224, + 31, 197, 28, 223, 136, 250, 224, 31, 91, 228, 109, 223, 136, 250, 224, + 31, 91, 188, 223, 136, 250, 224, 31, 199, 91, 188, 210, 170, 1, 251, 139, + 210, 170, 1, 248, 161, 210, 170, 1, 231, 1, 210, 170, 1, 237, 205, 210, + 170, 1, 229, 213, 210, 170, 1, 193, 131, 210, 170, 1, 191, 91, 210, 170, + 1, 229, 152, 210, 170, 1, 199, 64, 210, 170, 1, 191, 249, 210, 170, 1, + 222, 49, 210, 170, 1, 220, 2, 210, 170, 1, 216, 174, 210, 170, 1, 52, + 212, 117, 210, 170, 1, 212, 117, 210, 170, 1, 205, 143, 210, 170, 1, 250, + 76, 210, 170, 1, 210, 53, 210, 170, 1, 205, 184, 210, 170, 1, 208, 31, + 210, 170, 1, 207, 33, 210, 170, 1, 203, 64, 210, 170, 1, 199, 154, 210, + 170, 219, 195, 232, 161, 210, 170, 206, 198, 232, 161, 210, 170, 31, 108, + 210, 170, 31, 109, 210, 170, 31, 139, 210, 170, 31, 137, 210, 170, 31, + 153, 210, 170, 31, 199, 90, 210, 170, 31, 197, 28, 214, 232, 1, 52, 251, + 139, 214, 232, 1, 251, 139, 214, 232, 1, 52, 248, 161, 214, 232, 1, 248, + 161, 214, 232, 1, 231, 1, 214, 232, 1, 237, 205, 214, 232, 1, 52, 229, + 213, 214, 232, 1, 229, 213, 214, 232, 1, 193, 131, 214, 232, 1, 191, 91, + 214, 232, 1, 229, 152, 214, 232, 1, 199, 64, 214, 232, 1, 52, 191, 249, + 214, 232, 1, 191, 249, 214, 232, 1, 52, 222, 49, 214, 232, 1, 222, 49, + 214, 232, 1, 52, 220, 2, 214, 232, 1, 220, 2, 214, 232, 1, 52, 216, 174, + 214, 232, 1, 216, 174, 214, 232, 1, 52, 212, 117, 214, 232, 1, 212, 117, + 214, 232, 1, 205, 143, 214, 232, 1, 250, 76, 214, 232, 1, 210, 53, 214, + 232, 1, 205, 184, 214, 232, 1, 208, 31, 214, 232, 1, 207, 33, 214, 232, + 1, 52, 203, 64, 214, 232, 1, 203, 64, 214, 232, 1, 199, 154, 214, 232, + 31, 108, 214, 232, 31, 109, 214, 232, 31, 139, 214, 232, 31, 137, 214, + 232, 238, 155, 31, 137, 214, 232, 31, 153, 214, 232, 31, 199, 90, 214, + 232, 31, 197, 28, 214, 232, 31, 91, 228, 109, 229, 227, 1, 251, 139, 229, + 227, 1, 248, 161, 229, 227, 1, 231, 1, 229, 227, 1, 237, 204, 229, 227, + 1, 229, 213, 229, 227, 1, 193, 131, 229, 227, 1, 191, 89, 229, 227, 1, + 229, 152, 229, 227, 1, 199, 64, 229, 227, 1, 191, 249, 229, 227, 1, 222, + 49, 229, 227, 1, 220, 2, 229, 227, 1, 216, 174, 229, 227, 1, 212, 117, + 229, 227, 1, 205, 143, 229, 227, 1, 250, 74, 229, 227, 1, 210, 53, 229, + 227, 1, 205, 184, 229, 227, 1, 208, 31, 229, 227, 1, 203, 64, 229, 227, + 1, 199, 154, 229, 227, 31, 108, 229, 227, 31, 153, 229, 227, 31, 199, 90, + 229, 227, 31, 197, 28, 229, 227, 31, 91, 228, 109, 209, 188, 1, 251, 136, + 209, 188, 1, 248, 164, 209, 188, 1, 231, 176, 209, 188, 1, 237, 63, 209, + 188, 1, 229, 213, 209, 188, 1, 193, 138, 209, 188, 1, 191, 115, 209, 188, + 1, 229, 154, 209, 188, 1, 199, 68, 209, 188, 1, 191, 250, 209, 188, 1, + 222, 79, 209, 188, 1, 220, 8, 209, 188, 1, 216, 174, 209, 188, 1, 212, + 117, 209, 188, 1, 204, 14, 209, 188, 1, 251, 178, 209, 188, 1, 210, 53, + 209, 188, 1, 205, 186, 209, 188, 1, 208, 36, 209, 188, 1, 206, 119, 209, + 188, 1, 203, 64, 209, 188, 1, 199, 161, 209, 188, 31, 108, 209, 188, 31, + 199, 90, 209, 188, 31, 197, 28, 209, 188, 31, 91, 228, 109, 209, 188, 31, + 109, 209, 188, 31, 139, 209, 188, 193, 23, 204, 5, 218, 159, 1, 65, 218, + 159, 1, 250, 70, 218, 159, 1, 232, 14, 218, 159, 1, 238, 80, 218, 159, 1, + 73, 218, 159, 1, 196, 8, 218, 159, 1, 70, 218, 159, 1, 192, 159, 218, + 159, 1, 222, 125, 218, 159, 1, 170, 218, 159, 1, 218, 147, 218, 159, 1, + 215, 47, 218, 159, 1, 74, 218, 159, 1, 148, 218, 159, 1, 201, 173, 218, + 159, 1, 200, 39, 218, 159, 1, 69, 218, 159, 1, 233, 134, 218, 159, 1, + 208, 97, 218, 159, 1, 206, 3, 218, 159, 1, 197, 131, 218, 159, 1, 251, + 81, 218, 159, 1, 234, 61, 218, 159, 1, 218, 162, 218, 159, 1, 213, 67, + 218, 159, 1, 247, 145, 218, 159, 197, 234, 77, 151, 229, 112, 1, 65, 151, + 229, 112, 1, 73, 151, 229, 112, 1, 70, 151, 229, 112, 1, 74, 151, 229, + 112, 1, 169, 151, 229, 112, 1, 193, 187, 151, 229, 112, 1, 249, 103, 151, + 229, 112, 1, 249, 102, 151, 229, 112, 1, 168, 151, 229, 112, 1, 172, 151, + 229, 112, 1, 180, 151, 229, 112, 1, 214, 247, 151, 229, 112, 1, 214, 107, + 151, 229, 112, 1, 214, 105, 151, 229, 112, 1, 166, 151, 229, 112, 1, 207, + 179, 151, 229, 112, 1, 171, 151, 229, 112, 1, 221, 190, 151, 229, 112, 1, + 229, 145, 151, 229, 112, 1, 189, 151, 229, 112, 1, 205, 200, 151, 229, + 112, 1, 205, 63, 151, 229, 112, 1, 157, 151, 229, 112, 1, 208, 89, 151, + 229, 112, 1, 199, 247, 151, 229, 112, 1, 199, 245, 151, 229, 112, 1, 199, + 140, 151, 229, 112, 1, 199, 138, 151, 229, 112, 1, 159, 151, 229, 112, 1, + 237, 241, 151, 229, 112, 16, 195, 60, 151, 229, 112, 16, 195, 59, 151, + 238, 119, 1, 65, 151, 238, 119, 1, 73, 151, 238, 119, 1, 70, 151, 238, + 119, 1, 74, 151, 238, 119, 1, 169, 151, 238, 119, 1, 193, 187, 151, 238, + 119, 1, 249, 103, 151, 238, 119, 1, 168, 151, 238, 119, 1, 172, 151, 238, + 119, 1, 180, 151, 238, 119, 1, 214, 107, 151, 238, 119, 1, 166, 151, 238, + 119, 1, 171, 151, 238, 119, 1, 221, 190, 151, 238, 119, 1, 229, 145, 151, + 238, 119, 1, 189, 151, 238, 119, 1, 250, 220, 189, 151, 238, 119, 1, 205, + 63, 151, 238, 119, 1, 157, 151, 238, 119, 1, 208, 89, 151, 238, 119, 1, + 199, 247, 151, 238, 119, 1, 199, 140, 151, 238, 119, 1, 159, 151, 238, + 119, 1, 237, 241, 151, 238, 119, 232, 80, 234, 85, 197, 35, 151, 238, + 119, 232, 80, 91, 230, 37, 151, 238, 119, 219, 4, 206, 163, 151, 238, + 119, 219, 4, 223, 141, 151, 238, 119, 31, 108, 151, 238, 119, 31, 109, + 151, 238, 119, 31, 139, 151, 238, 119, 31, 137, 151, 238, 119, 31, 153, + 151, 238, 119, 31, 173, 151, 238, 119, 31, 181, 151, 238, 119, 31, 176, + 151, 238, 119, 31, 184, 151, 238, 119, 31, 199, 90, 151, 238, 119, 31, + 197, 28, 151, 238, 119, 31, 198, 244, 151, 238, 119, 31, 232, 97, 151, + 238, 119, 31, 232, 230, 151, 238, 119, 31, 202, 115, 151, 238, 119, 31, + 203, 236, 151, 238, 119, 31, 91, 228, 109, 151, 238, 119, 31, 103, 228, + 109, 151, 238, 119, 31, 115, 228, 109, 151, 238, 119, 31, 232, 90, 228, + 109, 151, 238, 119, 31, 232, 185, 228, 109, 151, 238, 119, 31, 202, 131, + 228, 109, 151, 238, 119, 31, 203, 242, 228, 109, 151, 238, 119, 31, 234, + 121, 228, 109, 151, 238, 119, 31, 213, 161, 228, 109, 151, 238, 119, 31, + 91, 188, 151, 238, 119, 31, 103, 188, 151, 238, 119, 31, 115, 188, 151, + 238, 119, 31, 232, 90, 188, 151, 238, 119, 31, 232, 185, 188, 151, 238, + 119, 31, 202, 131, 188, 151, 238, 119, 31, 203, 242, 188, 151, 238, 119, + 31, 234, 121, 188, 151, 238, 119, 31, 213, 161, 188, 151, 238, 119, 31, + 199, 91, 188, 151, 238, 119, 31, 197, 29, 188, 151, 238, 119, 31, 198, + 245, 188, 151, 238, 119, 31, 232, 98, 188, 151, 238, 119, 31, 232, 231, + 188, 151, 238, 119, 31, 202, 116, 188, 151, 238, 119, 31, 203, 237, 188, + 151, 238, 119, 31, 234, 111, 188, 151, 238, 119, 31, 213, 157, 188, 151, + 238, 119, 31, 91, 228, 110, 188, 151, 238, 119, 31, 103, 228, 110, 188, + 151, 238, 119, 31, 115, 228, 110, 188, 151, 238, 119, 31, 232, 90, 228, + 110, 188, 151, 238, 119, 31, 232, 185, 228, 110, 188, 151, 238, 119, 31, + 202, 131, 228, 110, 188, 151, 238, 119, 31, 203, 242, 228, 110, 188, 151, + 238, 119, 31, 234, 121, 228, 110, 188, 151, 238, 119, 31, 213, 161, 228, + 110, 188, 151, 238, 119, 232, 80, 91, 197, 36, 151, 238, 119, 232, 80, + 103, 197, 35, 151, 238, 119, 232, 80, 115, 197, 35, 151, 238, 119, 232, + 80, 232, 90, 197, 35, 151, 238, 119, 232, 80, 232, 185, 197, 35, 151, + 238, 119, 232, 80, 202, 131, 197, 35, 151, 238, 119, 232, 80, 203, 242, + 197, 35, 151, 238, 119, 232, 80, 234, 121, 197, 35, 151, 238, 119, 232, + 80, 213, 161, 197, 35, 151, 238, 119, 232, 80, 199, 91, 197, 35, 221, + 175, 1, 65, 221, 175, 18, 3, 70, 221, 175, 18, 3, 69, 221, 175, 18, 3, + 121, 148, 221, 175, 18, 3, 73, 221, 175, 18, 3, 74, 221, 175, 18, 219, + 174, 77, 221, 175, 3, 54, 206, 184, 60, 221, 175, 3, 251, 20, 221, 175, + 3, 195, 32, 221, 175, 1, 157, 221, 175, 1, 221, 190, 221, 175, 1, 231, + 203, 221, 175, 1, 231, 54, 221, 175, 1, 247, 112, 221, 175, 1, 246, 209, + 221, 175, 1, 223, 4, 221, 175, 1, 212, 88, 221, 175, 1, 197, 128, 221, + 175, 1, 197, 116, 221, 175, 1, 237, 146, 221, 175, 1, 237, 130, 221, 175, + 1, 213, 66, 221, 175, 1, 199, 247, 221, 175, 1, 199, 44, 221, 175, 1, + 237, 241, 221, 175, 1, 237, 23, 221, 175, 1, 180, 221, 175, 1, 168, 221, + 175, 1, 209, 219, 221, 175, 1, 249, 103, 221, 175, 1, 248, 153, 221, 175, + 1, 172, 221, 175, 1, 169, 221, 175, 1, 166, 221, 175, 1, 171, 221, 175, + 1, 195, 185, 221, 175, 1, 203, 160, 221, 175, 1, 201, 170, 221, 175, 1, + 189, 221, 175, 1, 191, 123, 221, 175, 1, 144, 221, 175, 1, 221, 77, 221, + 175, 1, 197, 96, 221, 175, 1, 197, 97, 221, 175, 1, 195, 67, 221, 175, 3, + 249, 38, 56, 221, 175, 3, 247, 26, 221, 175, 3, 75, 60, 221, 175, 195, + 37, 221, 175, 17, 108, 221, 175, 17, 109, 221, 175, 17, 139, 221, 175, + 17, 137, 221, 175, 31, 199, 90, 221, 175, 31, 197, 28, 221, 175, 31, 91, + 228, 109, 221, 175, 31, 91, 188, 221, 175, 232, 80, 91, 230, 37, 221, + 175, 208, 145, 236, 96, 221, 175, 208, 145, 2, 242, 218, 221, 175, 208, + 145, 242, 218, 221, 175, 208, 145, 238, 181, 164, 221, 175, 208, 145, + 217, 63, 221, 175, 208, 145, 218, 224, 221, 175, 208, 145, 237, 193, 221, + 175, 208, 145, 54, 237, 193, 221, 175, 208, 145, 219, 82, 38, 201, 253, + 250, 235, 1, 229, 213, 38, 201, 253, 250, 235, 1, 220, 2, 38, 201, 253, + 250, 235, 1, 229, 152, 38, 201, 253, 250, 235, 1, 216, 174, 38, 201, 253, + 250, 235, 1, 208, 31, 38, 201, 253, 250, 235, 1, 193, 131, 38, 201, 253, + 250, 235, 1, 203, 64, 38, 201, 253, 250, 235, 1, 207, 33, 38, 201, 253, + 250, 235, 1, 248, 161, 38, 201, 253, 250, 235, 1, 199, 154, 38, 201, 253, + 250, 235, 1, 205, 117, 38, 201, 253, 250, 235, 1, 222, 49, 38, 201, 253, + 250, 235, 1, 212, 117, 38, 201, 253, 250, 235, 1, 221, 170, 38, 201, 253, + 250, 235, 1, 205, 184, 38, 201, 253, 250, 235, 1, 205, 143, 38, 201, 253, + 250, 235, 1, 233, 18, 38, 201, 253, 250, 235, 1, 251, 141, 38, 201, 253, + 250, 235, 1, 250, 74, 38, 201, 253, 250, 235, 1, 237, 20, 38, 201, 253, + 250, 235, 1, 231, 1, 38, 201, 253, 250, 235, 1, 237, 205, 38, 201, 253, + 250, 235, 1, 231, 42, 38, 201, 253, 250, 235, 1, 199, 64, 38, 201, 253, + 250, 235, 1, 191, 89, 38, 201, 253, 250, 235, 1, 237, 17, 38, 201, 253, + 250, 235, 1, 191, 249, 38, 201, 253, 250, 235, 1, 199, 30, 38, 201, 253, + 250, 235, 1, 199, 9, 38, 201, 253, 250, 235, 31, 108, 38, 201, 253, 250, + 235, 31, 232, 230, 38, 201, 253, 250, 235, 167, 223, 116, 38, 185, 250, + 235, 1, 229, 178, 38, 185, 250, 235, 1, 220, 11, 38, 185, 250, 235, 1, + 230, 48, 38, 185, 250, 235, 1, 216, 189, 38, 185, 250, 235, 1, 208, 82, + 38, 185, 250, 235, 1, 193, 131, 38, 185, 250, 235, 1, 233, 234, 38, 185, + 250, 235, 1, 207, 66, 38, 185, 250, 235, 1, 248, 195, 38, 185, 250, 235, + 1, 199, 109, 38, 185, 250, 235, 1, 233, 235, 38, 185, 250, 235, 1, 222, + 79, 38, 185, 250, 235, 1, 213, 11, 38, 185, 250, 235, 1, 221, 185, 38, + 185, 250, 235, 1, 205, 187, 38, 185, 250, 235, 1, 233, 233, 38, 185, 250, + 235, 1, 233, 5, 38, 185, 250, 235, 1, 251, 141, 38, 185, 250, 235, 1, + 251, 178, 38, 185, 250, 235, 1, 237, 235, 38, 185, 250, 235, 1, 231, 119, + 38, 185, 250, 235, 1, 237, 212, 38, 185, 250, 235, 1, 231, 49, 38, 185, + 250, 235, 1, 199, 214, 38, 185, 250, 235, 1, 191, 113, 38, 185, 250, 235, + 1, 199, 36, 38, 185, 250, 235, 1, 192, 75, 38, 185, 250, 235, 1, 199, 24, + 38, 185, 250, 235, 1, 191, 116, 38, 185, 250, 235, 31, 108, 38, 185, 250, + 235, 31, 199, 90, 38, 185, 250, 235, 31, 197, 28, 217, 61, 1, 251, 139, + 217, 61, 1, 248, 161, 217, 61, 1, 248, 146, 217, 61, 1, 231, 1, 217, 61, + 1, 231, 27, 217, 61, 1, 237, 205, 217, 61, 1, 229, 213, 217, 61, 1, 193, + 131, 217, 61, 3, 196, 154, 217, 61, 1, 191, 91, 217, 61, 1, 191, 64, 217, + 61, 1, 222, 240, 217, 61, 1, 222, 221, 217, 61, 1, 229, 152, 217, 61, 1, + 199, 64, 217, 61, 1, 191, 249, 217, 61, 1, 222, 49, 217, 61, 1, 192, 217, + 217, 61, 1, 221, 177, 217, 61, 1, 220, 2, 217, 61, 1, 237, 16, 217, 61, + 1, 199, 35, 217, 61, 1, 216, 174, 217, 61, 1, 212, 117, 217, 61, 1, 205, + 143, 217, 61, 1, 250, 76, 217, 61, 1, 252, 106, 217, 61, 1, 210, 53, 217, + 61, 1, 233, 18, 217, 61, 1, 205, 184, 217, 61, 1, 208, 31, 217, 61, 1, + 192, 193, 217, 61, 1, 208, 58, 217, 61, 1, 207, 33, 217, 61, 1, 203, 64, + 217, 61, 1, 201, 138, 217, 61, 1, 199, 154, 217, 61, 252, 16, 87, 56, + 217, 61, 252, 16, 87, 60, 217, 61, 31, 108, 217, 61, 31, 153, 217, 61, + 31, 199, 90, 217, 61, 31, 197, 28, 217, 61, 31, 91, 228, 109, 217, 61, + 208, 145, 201, 97, 217, 61, 208, 145, 232, 161, 217, 61, 208, 145, 54, + 75, 193, 53, 236, 96, 217, 61, 208, 145, 75, 193, 53, 236, 96, 217, 61, + 208, 145, 236, 96, 217, 61, 208, 145, 103, 236, 94, 217, 61, 208, 145, + 219, 89, 232, 218, 250, 92, 1, 65, 250, 92, 1, 252, 154, 250, 92, 1, 251, + 18, 250, 92, 1, 252, 112, 250, 92, 1, 251, 81, 250, 92, 1, 252, 114, 250, + 92, 1, 251, 229, 250, 92, 1, 251, 225, 250, 92, 1, 73, 250, 92, 1, 234, + 145, 250, 92, 1, 74, 250, 92, 1, 211, 76, 250, 92, 1, 70, 250, 92, 1, + 223, 170, 250, 92, 1, 69, 250, 92, 1, 196, 26, 250, 92, 1, 221, 253, 250, + 92, 1, 192, 214, 250, 92, 1, 192, 173, 250, 92, 1, 192, 184, 250, 92, 1, + 231, 128, 250, 92, 1, 231, 85, 250, 92, 1, 231, 40, 250, 92, 1, 246, 250, + 250, 92, 1, 222, 238, 250, 92, 1, 199, 140, 250, 92, 1, 199, 28, 250, 92, + 1, 237, 101, 250, 92, 1, 237, 14, 250, 92, 1, 197, 123, 250, 92, 1, 210, + 53, 250, 92, 1, 233, 18, 250, 92, 1, 248, 223, 250, 92, 1, 248, 148, 250, + 92, 1, 214, 41, 250, 92, 1, 213, 212, 250, 92, 1, 213, 213, 250, 92, 1, + 214, 107, 250, 92, 1, 212, 77, 250, 92, 1, 213, 61, 250, 92, 1, 216, 213, + 250, 92, 1, 229, 41, 250, 92, 1, 191, 173, 250, 92, 1, 192, 80, 250, 92, + 1, 195, 150, 250, 92, 1, 207, 108, 250, 92, 1, 219, 214, 250, 92, 1, 205, + 63, 250, 92, 1, 191, 87, 250, 92, 1, 203, 108, 250, 92, 1, 191, 62, 250, + 92, 1, 202, 224, 250, 92, 1, 201, 139, 250, 92, 1, 229, 213, 250, 92, + 252, 16, 77, 198, 133, 103, 183, 138, 91, 75, 208, 144, 2, 103, 183, 138, + 91, 75, 208, 144, 219, 245, 103, 183, 138, 91, 75, 208, 144, 219, 245, + 91, 75, 138, 103, 183, 208, 144, 219, 245, 103, 206, 180, 138, 91, 206, + 184, 208, 144, 219, 245, 91, 206, 184, 138, 103, 206, 180, 208, 144, 223, + 94, 210, 96, 1, 251, 139, 223, 94, 210, 96, 1, 248, 161, 223, 94, 210, + 96, 1, 231, 1, 223, 94, 210, 96, 1, 237, 205, 223, 94, 210, 96, 1, 229, + 213, 223, 94, 210, 96, 1, 193, 131, 223, 94, 210, 96, 1, 191, 91, 223, + 94, 210, 96, 1, 229, 152, 223, 94, 210, 96, 1, 199, 64, 223, 94, 210, 96, + 1, 191, 249, 223, 94, 210, 96, 1, 222, 49, 223, 94, 210, 96, 1, 220, 2, + 223, 94, 210, 96, 1, 216, 174, 223, 94, 210, 96, 1, 212, 117, 223, 94, + 210, 96, 1, 205, 143, 223, 94, 210, 96, 1, 250, 76, 223, 94, 210, 96, 1, + 210, 53, 223, 94, 210, 96, 1, 205, 184, 223, 94, 210, 96, 1, 208, 31, + 223, 94, 210, 96, 1, 207, 33, 223, 94, 210, 96, 1, 203, 64, 223, 94, 210, + 96, 1, 199, 154, 223, 94, 210, 96, 31, 108, 223, 94, 210, 96, 31, 109, + 223, 94, 210, 96, 31, 139, 223, 94, 210, 96, 31, 137, 223, 94, 210, 96, + 31, 199, 90, 223, 94, 210, 96, 31, 197, 28, 223, 94, 210, 96, 31, 91, + 228, 109, 223, 94, 210, 96, 31, 91, 188, 223, 94, 210, 189, 1, 251, 139, + 223, 94, 210, 189, 1, 248, 161, 223, 94, 210, 189, 1, 231, 1, 223, 94, + 210, 189, 1, 237, 205, 223, 94, 210, 189, 1, 229, 213, 223, 94, 210, 189, + 1, 193, 130, 223, 94, 210, 189, 1, 191, 91, 223, 94, 210, 189, 1, 229, + 152, 223, 94, 210, 189, 1, 199, 64, 223, 94, 210, 189, 1, 191, 249, 223, + 94, 210, 189, 1, 222, 49, 223, 94, 210, 189, 1, 220, 2, 223, 94, 210, + 189, 1, 216, 173, 223, 94, 210, 189, 1, 212, 117, 223, 94, 210, 189, 1, + 205, 143, 223, 94, 210, 189, 1, 210, 53, 223, 94, 210, 189, 1, 205, 184, + 223, 94, 210, 189, 1, 203, 64, 223, 94, 210, 189, 1, 199, 154, 223, 94, + 210, 189, 31, 108, 223, 94, 210, 189, 31, 109, 223, 94, 210, 189, 31, + 139, 223, 94, 210, 189, 31, 137, 223, 94, 210, 189, 31, 199, 90, 223, 94, + 210, 189, 31, 197, 28, 223, 94, 210, 189, 31, 91, 228, 109, 223, 94, 210, + 189, 31, 91, 188, 208, 170, 210, 189, 1, 251, 139, 208, 170, 210, 189, 1, + 248, 161, 208, 170, 210, 189, 1, 231, 1, 208, 170, 210, 189, 1, 237, 205, + 208, 170, 210, 189, 1, 229, 213, 208, 170, 210, 189, 1, 193, 130, 208, + 170, 210, 189, 1, 191, 91, 208, 170, 210, 189, 1, 229, 152, 208, 170, + 210, 189, 1, 191, 249, 208, 170, 210, 189, 1, 222, 49, 208, 170, 210, + 189, 1, 220, 2, 208, 170, 210, 189, 1, 216, 173, 208, 170, 210, 189, 1, + 212, 117, 208, 170, 210, 189, 1, 205, 143, 208, 170, 210, 189, 1, 210, + 53, 208, 170, 210, 189, 1, 205, 184, 208, 170, 210, 189, 1, 203, 64, 208, + 170, 210, 189, 1, 199, 154, 208, 170, 210, 189, 205, 49, 77, 208, 170, + 210, 189, 152, 205, 49, 77, 208, 170, 210, 189, 232, 90, 183, 4, 238, + 170, 208, 170, 210, 189, 232, 90, 183, 4, 236, 96, 208, 170, 210, 189, + 31, 108, 208, 170, 210, 189, 31, 109, 208, 170, 210, 189, 31, 139, 208, + 170, 210, 189, 31, 137, 208, 170, 210, 189, 31, 199, 90, 208, 170, 210, + 189, 31, 197, 28, 208, 170, 210, 189, 31, 91, 228, 109, 38, 197, 57, 1, + 211, 34, 65, 38, 197, 57, 1, 192, 68, 65, 38, 197, 57, 1, 192, 68, 251, + 229, 38, 197, 57, 1, 211, 34, 70, 38, 197, 57, 1, 192, 68, 70, 38, 197, + 57, 1, 192, 68, 73, 38, 197, 57, 1, 211, 34, 74, 38, 197, 57, 1, 211, 34, + 211, 139, 38, 197, 57, 1, 192, 68, 211, 139, 38, 197, 57, 1, 211, 34, + 252, 103, 38, 197, 57, 1, 192, 68, 252, 103, 38, 197, 57, 1, 211, 34, + 251, 228, 38, 197, 57, 1, 192, 68, 251, 228, 38, 197, 57, 1, 211, 34, + 251, 201, 38, 197, 57, 1, 192, 68, 251, 201, 38, 197, 57, 1, 211, 34, + 251, 223, 38, 197, 57, 1, 192, 68, 251, 223, 38, 197, 57, 1, 211, 34, + 251, 246, 38, 197, 57, 1, 192, 68, 251, 246, 38, 197, 57, 1, 211, 34, + 251, 227, 38, 197, 57, 1, 211, 34, 233, 141, 38, 197, 57, 1, 192, 68, + 233, 141, 38, 197, 57, 1, 211, 34, 250, 81, 38, 197, 57, 1, 192, 68, 250, + 81, 38, 197, 57, 1, 211, 34, 251, 210, 38, 197, 57, 1, 192, 68, 251, 210, + 38, 197, 57, 1, 211, 34, 251, 221, 38, 197, 57, 1, 192, 68, 251, 221, 38, + 197, 57, 1, 211, 34, 211, 137, 38, 197, 57, 1, 192, 68, 211, 137, 38, + 197, 57, 1, 211, 34, 251, 156, 38, 197, 57, 1, 192, 68, 251, 156, 38, + 197, 57, 1, 211, 34, 251, 220, 38, 197, 57, 1, 211, 34, 234, 76, 38, 197, + 57, 1, 211, 34, 234, 72, 38, 197, 57, 1, 211, 34, 251, 81, 38, 197, 57, + 1, 211, 34, 251, 218, 38, 197, 57, 1, 192, 68, 251, 218, 38, 197, 57, 1, + 211, 34, 234, 38, 38, 197, 57, 1, 192, 68, 234, 38, 38, 197, 57, 1, 211, + 34, 234, 58, 38, 197, 57, 1, 192, 68, 234, 58, 38, 197, 57, 1, 211, 34, + 234, 24, 38, 197, 57, 1, 192, 68, 234, 24, 38, 197, 57, 1, 192, 68, 251, + 71, 38, 197, 57, 1, 211, 34, 234, 46, 38, 197, 57, 1, 192, 68, 251, 217, + 38, 197, 57, 1, 211, 34, 234, 14, 38, 197, 57, 1, 211, 34, 211, 67, 38, + 197, 57, 1, 211, 34, 227, 254, 38, 197, 57, 1, 211, 34, 234, 153, 38, + 197, 57, 1, 192, 68, 234, 153, 38, 197, 57, 1, 211, 34, 250, 243, 38, + 197, 57, 1, 192, 68, 250, 243, 38, 197, 57, 1, 211, 34, 223, 51, 38, 197, + 57, 1, 192, 68, 223, 51, 38, 197, 57, 1, 211, 34, 211, 47, 38, 197, 57, + 1, 192, 68, 211, 47, 38, 197, 57, 1, 211, 34, 250, 239, 38, 197, 57, 1, + 192, 68, 250, 239, 38, 197, 57, 1, 211, 34, 251, 216, 38, 197, 57, 1, + 211, 34, 250, 169, 38, 197, 57, 1, 211, 34, 251, 214, 38, 197, 57, 1, + 211, 34, 250, 159, 38, 197, 57, 1, 192, 68, 250, 159, 38, 197, 57, 1, + 211, 34, 233, 226, 38, 197, 57, 1, 192, 68, 233, 226, 38, 197, 57, 1, + 211, 34, 250, 132, 38, 197, 57, 1, 192, 68, 250, 132, 38, 197, 57, 1, + 211, 34, 251, 211, 38, 197, 57, 1, 192, 68, 251, 211, 38, 197, 57, 1, + 211, 34, 211, 20, 38, 197, 57, 1, 211, 34, 249, 21, 38, 175, 6, 1, 65, + 38, 175, 6, 1, 252, 154, 38, 175, 6, 1, 234, 155, 38, 175, 6, 1, 251, 93, + 38, 175, 6, 1, 234, 153, 38, 175, 6, 1, 234, 58, 38, 175, 6, 1, 234, 150, + 38, 175, 6, 1, 234, 149, 38, 175, 6, 1, 251, 74, 38, 175, 6, 1, 73, 38, + 175, 6, 1, 242, 172, 73, 38, 175, 6, 1, 234, 145, 38, 175, 6, 1, 234, + 138, 38, 175, 6, 1, 234, 137, 38, 175, 6, 1, 234, 133, 38, 175, 6, 1, + 234, 130, 38, 175, 6, 1, 70, 38, 175, 6, 1, 223, 170, 38, 175, 6, 1, 234, + 107, 38, 175, 6, 1, 234, 104, 38, 175, 6, 1, 251, 165, 38, 175, 6, 1, + 196, 82, 38, 175, 6, 1, 234, 97, 38, 175, 6, 1, 234, 75, 38, 175, 6, 1, + 234, 72, 38, 175, 6, 1, 234, 61, 38, 175, 6, 1, 234, 24, 38, 175, 6, 1, + 74, 38, 175, 6, 1, 211, 76, 38, 175, 6, 1, 213, 168, 211, 139, 38, 175, + 6, 1, 206, 53, 211, 139, 38, 175, 6, 1, 211, 138, 38, 175, 6, 1, 234, 14, + 38, 175, 6, 1, 234, 66, 38, 175, 6, 1, 233, 248, 38, 175, 6, 1, 203, 35, + 233, 248, 38, 175, 6, 1, 233, 236, 38, 175, 6, 1, 233, 215, 38, 175, 6, + 1, 233, 213, 38, 175, 6, 1, 234, 38, 38, 175, 6, 1, 233, 202, 38, 175, 6, + 1, 234, 151, 38, 175, 6, 1, 69, 38, 175, 6, 1, 196, 26, 38, 175, 6, 1, + 213, 168, 196, 148, 38, 175, 6, 1, 206, 53, 196, 148, 38, 175, 6, 1, 233, + 189, 38, 175, 6, 1, 233, 141, 38, 175, 6, 1, 233, 136, 38, 175, 6, 1, + 234, 37, 57, 38, 175, 6, 1, 196, 41, 38, 175, 2, 1, 65, 38, 175, 2, 1, + 252, 154, 38, 175, 2, 1, 234, 155, 38, 175, 2, 1, 251, 93, 38, 175, 2, 1, + 234, 153, 38, 175, 2, 1, 234, 58, 38, 175, 2, 1, 234, 150, 38, 175, 2, 1, + 234, 149, 38, 175, 2, 1, 251, 74, 38, 175, 2, 1, 73, 38, 175, 2, 1, 242, + 172, 73, 38, 175, 2, 1, 234, 145, 38, 175, 2, 1, 234, 138, 38, 175, 2, 1, + 234, 137, 38, 175, 2, 1, 234, 133, 38, 175, 2, 1, 234, 130, 38, 175, 2, + 1, 70, 38, 175, 2, 1, 223, 170, 38, 175, 2, 1, 234, 107, 38, 175, 2, 1, + 234, 104, 38, 175, 2, 1, 251, 165, 38, 175, 2, 1, 196, 82, 38, 175, 2, 1, + 234, 97, 38, 175, 2, 1, 234, 75, 38, 175, 2, 1, 234, 72, 38, 175, 2, 1, + 234, 61, 38, 175, 2, 1, 234, 24, 38, 175, 2, 1, 74, 38, 175, 2, 1, 211, + 76, 38, 175, 2, 1, 213, 168, 211, 139, 38, 175, 2, 1, 206, 53, 211, 139, + 38, 175, 2, 1, 211, 138, 38, 175, 2, 1, 234, 14, 38, 175, 2, 1, 234, 66, + 38, 175, 2, 1, 233, 248, 38, 175, 2, 1, 203, 35, 233, 248, 38, 175, 2, 1, + 233, 236, 38, 175, 2, 1, 233, 215, 38, 175, 2, 1, 233, 213, 38, 175, 2, + 1, 234, 38, 38, 175, 2, 1, 233, 202, 38, 175, 2, 1, 234, 151, 38, 175, 2, + 1, 69, 38, 175, 2, 1, 196, 26, 38, 175, 2, 1, 213, 168, 196, 148, 38, + 175, 2, 1, 206, 53, 196, 148, 38, 175, 2, 1, 233, 189, 38, 175, 2, 1, + 233, 141, 38, 175, 2, 1, 233, 136, 38, 175, 2, 1, 234, 37, 57, 38, 175, + 2, 1, 196, 41, 38, 175, 31, 108, 38, 175, 31, 153, 38, 175, 31, 199, 90, + 38, 175, 31, 232, 230, 38, 175, 31, 91, 228, 109, 38, 175, 31, 91, 188, + 229, 247, 206, 137, 1, 65, 229, 247, 206, 137, 1, 249, 103, 229, 247, + 206, 137, 1, 168, 229, 247, 206, 137, 1, 199, 247, 229, 247, 206, 137, 1, + 197, 128, 229, 247, 206, 137, 1, 223, 4, 229, 247, 206, 137, 1, 247, 112, + 229, 247, 206, 137, 1, 144, 229, 247, 206, 137, 1, 221, 190, 229, 247, + 206, 137, 1, 233, 68, 229, 247, 206, 137, 1, 237, 241, 229, 247, 206, + 137, 1, 237, 146, 229, 247, 206, 137, 1, 166, 229, 247, 206, 137, 1, 206, + 104, 229, 247, 206, 137, 1, 191, 123, 229, 247, 206, 137, 1, 189, 229, + 247, 206, 137, 1, 203, 160, 229, 247, 206, 137, 1, 157, 229, 247, 206, + 137, 1, 231, 203, 229, 247, 206, 137, 1, 171, 229, 247, 206, 137, 1, 172, + 229, 247, 206, 137, 1, 180, 229, 247, 206, 137, 1, 193, 187, 229, 247, + 206, 137, 1, 221, 113, 193, 187, 229, 247, 206, 137, 1, 169, 229, 247, + 206, 137, 1, 221, 113, 169, 229, 247, 206, 137, 1, 214, 54, 229, 247, + 206, 137, 1, 212, 88, 229, 247, 206, 137, 1, 195, 185, 229, 247, 206, + 137, 18, 65, 229, 247, 206, 137, 18, 70, 229, 247, 206, 137, 18, 69, 229, + 247, 206, 137, 18, 73, 229, 247, 206, 137, 18, 74, 229, 247, 206, 137, + 87, 205, 168, 229, 247, 206, 137, 87, 214, 249, 221, 154, 229, 247, 206, + 137, 3, 229, 241, 229, 247, 206, 137, 3, 199, 213, 229, 247, 206, 137, 3, + 199, 187, 229, 247, 206, 137, 3, 199, 167, 229, 247, 206, 137, 17, 191, + 77, 229, 247, 206, 137, 17, 108, 229, 247, 206, 137, 17, 109, 229, 247, + 206, 137, 17, 139, 229, 247, 206, 137, 17, 137, 229, 247, 206, 137, 17, + 153, 229, 247, 206, 137, 17, 173, 229, 247, 206, 137, 17, 181, 229, 247, + 206, 137, 17, 176, 229, 247, 206, 137, 17, 184, 206, 41, 17, 108, 206, + 41, 17, 109, 206, 41, 17, 139, 206, 41, 17, 137, 206, 41, 17, 153, 206, + 41, 17, 173, 206, 41, 17, 181, 206, 41, 17, 176, 206, 41, 17, 184, 206, + 41, 31, 199, 90, 206, 41, 31, 197, 28, 206, 41, 31, 198, 244, 206, 41, + 31, 232, 97, 206, 41, 31, 232, 230, 206, 41, 31, 202, 115, 206, 41, 31, + 203, 236, 206, 41, 31, 234, 110, 206, 41, 31, 213, 156, 206, 41, 31, 91, + 228, 109, 206, 41, 31, 103, 228, 109, 206, 41, 31, 115, 228, 109, 206, + 41, 31, 232, 90, 228, 109, 206, 41, 31, 232, 185, 228, 109, 206, 41, 31, + 202, 131, 228, 109, 206, 41, 31, 203, 242, 228, 109, 206, 41, 31, 234, + 121, 228, 109, 206, 41, 31, 213, 161, 228, 109, 206, 41, 232, 80, 91, + 230, 37, 206, 41, 232, 80, 91, 208, 17, 206, 41, 232, 80, 91, 198, 251, + 206, 41, 232, 80, 103, 198, 248, 192, 39, 1, 234, 81, 192, 39, 1, 248, + 223, 192, 39, 1, 210, 53, 192, 39, 1, 209, 205, 192, 39, 1, 199, 28, 192, + 39, 1, 205, 63, 192, 39, 1, 242, 224, 192, 39, 1, 243, 35, 192, 39, 1, + 243, 49, 192, 39, 1, 229, 145, 192, 39, 1, 192, 220, 192, 39, 1, 237, + 212, 192, 39, 1, 191, 108, 192, 39, 1, 166, 192, 39, 1, 207, 1, 192, 39, + 1, 191, 123, 192, 39, 1, 223, 4, 192, 39, 1, 202, 169, 192, 39, 1, 203, + 64, 192, 39, 1, 205, 187, 192, 39, 1, 237, 235, 192, 39, 1, 199, 247, + 192, 39, 1, 191, 87, 192, 39, 1, 233, 143, 192, 39, 1, 192, 208, 192, 39, + 1, 233, 68, 192, 39, 1, 195, 185, 192, 39, 1, 195, 186, 251, 106, 20, + 192, 39, 1, 208, 82, 192, 39, 1, 222, 79, 192, 39, 1, 221, 187, 192, 39, + 1, 231, 190, 192, 39, 1, 220, 11, 192, 39, 1, 216, 28, 192, 39, 1, 212, + 117, 192, 39, 1, 196, 116, 192, 39, 1, 193, 131, 192, 39, 1, 210, 240, + 192, 39, 1, 233, 183, 192, 39, 1, 229, 220, 192, 39, 1, 191, 240, 192, + 39, 1, 233, 213, 192, 39, 33, 230, 25, 77, 192, 39, 33, 217, 121, 77, + 192, 39, 228, 56, 77, 192, 39, 1, 220, 12, 4, 75, 56, 192, 39, 1, 191, + 241, 4, 242, 210, 56, 38, 202, 23, 1, 251, 139, 38, 202, 23, 1, 52, 251, + 139, 38, 202, 23, 1, 248, 161, 38, 202, 23, 1, 52, 248, 161, 38, 202, 23, + 1, 231, 1, 38, 202, 23, 1, 229, 213, 38, 202, 23, 1, 52, 229, 213, 38, + 202, 23, 1, 193, 131, 38, 202, 23, 1, 191, 91, 38, 202, 23, 1, 229, 152, + 38, 202, 23, 1, 191, 249, 38, 202, 23, 1, 222, 49, 38, 202, 23, 1, 220, + 2, 38, 202, 23, 1, 216, 174, 38, 202, 23, 1, 212, 117, 38, 202, 23, 1, + 52, 212, 117, 38, 202, 23, 1, 52, 212, 118, 4, 81, 199, 210, 38, 202, 23, + 1, 205, 143, 38, 202, 23, 1, 250, 76, 38, 202, 23, 1, 251, 106, 250, 76, + 38, 202, 23, 1, 210, 53, 38, 202, 23, 1, 205, 184, 38, 202, 23, 1, 52, + 205, 184, 38, 202, 23, 1, 52, 205, 185, 4, 81, 199, 210, 38, 202, 23, 1, + 207, 31, 38, 202, 23, 1, 203, 64, 38, 202, 23, 1, 199, 154, 38, 202, 23, + 1, 52, 199, 154, 38, 202, 23, 1, 52, 199, 155, 4, 81, 199, 210, 38, 202, + 23, 31, 108, 38, 202, 23, 31, 109, 38, 202, 23, 31, 139, 38, 202, 23, 31, + 137, 38, 202, 23, 31, 153, 38, 202, 23, 31, 199, 90, 38, 202, 23, 31, + 197, 28, 38, 202, 23, 31, 198, 244, 38, 202, 23, 31, 91, 228, 109, 38, + 202, 23, 232, 80, 91, 230, 37, 38, 202, 23, 34, 250, 75, 202, 23, 1, 251, + 139, 202, 23, 1, 248, 161, 202, 23, 1, 231, 1, 202, 23, 1, 229, 213, 202, + 23, 1, 193, 131, 202, 23, 1, 191, 91, 202, 23, 1, 229, 152, 202, 23, 1, + 191, 249, 202, 23, 1, 222, 49, 202, 23, 1, 220, 2, 202, 23, 1, 216, 174, + 202, 23, 1, 212, 117, 202, 23, 1, 205, 143, 202, 23, 1, 250, 76, 202, 23, + 1, 210, 53, 202, 23, 1, 205, 184, 202, 23, 1, 207, 32, 202, 23, 1, 203, + 64, 202, 23, 1, 199, 154, 202, 23, 1, 232, 245, 202, 23, 1, 219, 158, + 202, 23, 223, 121, 203, 64, 202, 23, 33, 75, 60, 202, 23, 33, 103, 183, + 60, 202, 23, 33, 75, 56, 202, 23, 33, 103, 183, 56, 202, 23, 33, 238, + 118, 56, 202, 23, 33, 238, 118, 60, 202, 23, 33, 228, 219, 56, 202, 23, + 33, 228, 219, 60, 202, 23, 33, 177, 228, 219, 60, 202, 23, 33, 207, 34, + 60, 202, 23, 33, 201, 23, 60, 202, 23, 31, 108, 202, 23, 31, 199, 90, + 202, 23, 31, 197, 28, 202, 23, 31, 91, 228, 109, 202, 23, 208, 145, 103, + 81, 249, 26, 202, 23, 208, 145, 103, 81, 249, 27, 4, 236, 94, 202, 23, + 208, 145, 242, 219, 4, 236, 96, 202, 23, 208, 145, 103, 242, 216, 4, 236, + 94, 202, 23, 208, 145, 134, 242, 219, 4, 236, 96, 38, 196, 15, 1, 251, + 139, 38, 196, 15, 1, 248, 161, 38, 196, 15, 1, 231, 0, 38, 196, 15, 1, + 193, 131, 38, 196, 15, 1, 191, 91, 38, 196, 15, 1, 52, 229, 152, 38, 196, + 15, 1, 191, 249, 38, 196, 15, 1, 222, 49, 38, 196, 15, 1, 220, 2, 38, + 196, 15, 1, 216, 174, 38, 196, 15, 1, 212, 117, 38, 196, 15, 1, 205, 143, + 38, 196, 15, 1, 210, 53, 38, 196, 15, 1, 205, 184, 38, 196, 15, 1, 207, + 33, 38, 196, 15, 1, 203, 64, 38, 196, 15, 1, 199, 154, 38, 196, 15, 1, + 219, 158, 38, 196, 15, 33, 75, 56, 38, 196, 15, 33, 75, 60, 38, 196, 15, + 33, 103, 183, 56, 38, 196, 15, 33, 103, 183, 60, 38, 196, 15, 208, 145, + 164, 38, 196, 15, 208, 145, 103, 249, 26, 38, 196, 15, 208, 145, 103, + 236, 94, 38, 196, 15, 208, 145, 232, 90, 236, 94, 243, 13, 1, 251, 139, + 243, 13, 1, 2, 251, 139, 243, 13, 1, 248, 161, 243, 13, 1, 231, 1, 243, + 13, 1, 237, 205, 243, 13, 1, 229, 213, 243, 13, 1, 193, 131, 243, 13, 1, + 238, 127, 193, 131, 243, 13, 1, 191, 91, 243, 13, 1, 229, 152, 243, 13, + 1, 191, 249, 243, 13, 1, 222, 49, 243, 13, 1, 220, 2, 243, 13, 1, 216, + 174, 243, 13, 1, 212, 117, 243, 13, 1, 205, 143, 243, 13, 1, 250, 76, + 243, 13, 1, 210, 53, 243, 13, 1, 207, 33, 243, 13, 1, 203, 64, 243, 13, + 1, 199, 154, 243, 13, 31, 108, 243, 13, 31, 109, 243, 13, 31, 139, 243, + 13, 31, 137, 243, 13, 31, 199, 90, 243, 13, 31, 197, 28, 243, 13, 31, 91, + 228, 109, 234, 74, 1, 251, 139, 234, 74, 1, 248, 161, 234, 74, 1, 231, 1, + 234, 74, 1, 237, 205, 234, 74, 1, 229, 213, 234, 74, 1, 193, 131, 234, + 74, 1, 191, 91, 234, 74, 1, 229, 152, 234, 74, 1, 199, 64, 234, 74, 1, + 191, 249, 234, 74, 1, 222, 49, 234, 74, 1, 220, 2, 234, 74, 1, 216, 174, + 234, 74, 1, 212, 117, 234, 74, 1, 205, 143, 234, 74, 1, 250, 76, 234, 74, + 1, 210, 53, 234, 74, 1, 205, 184, 234, 74, 1, 208, 31, 234, 74, 1, 207, + 33, 234, 74, 1, 203, 64, 234, 74, 1, 199, 154, 234, 74, 34, 191, 90, 162, + 3, 247, 71, 162, 3, 251, 20, 162, 3, 195, 32, 162, 3, 222, 210, 162, 3, + 196, 71, 162, 1, 65, 162, 1, 252, 154, 162, 1, 70, 162, 1, 223, 170, 162, + 1, 69, 162, 1, 196, 26, 162, 1, 121, 148, 162, 1, 121, 206, 105, 162, 1, + 121, 170, 162, 1, 121, 219, 50, 162, 1, 73, 162, 1, 251, 184, 162, 1, 74, + 162, 1, 250, 113, 162, 1, 157, 162, 1, 221, 190, 162, 1, 231, 203, 162, + 1, 231, 54, 162, 1, 214, 54, 162, 1, 247, 112, 162, 1, 246, 209, 162, 1, + 223, 4, 162, 1, 222, 225, 162, 1, 212, 88, 162, 1, 197, 128, 162, 1, 197, + 116, 162, 1, 237, 146, 162, 1, 237, 130, 162, 1, 213, 66, 162, 1, 199, + 247, 162, 1, 199, 44, 162, 1, 237, 241, 162, 1, 237, 23, 162, 1, 180, + 162, 1, 168, 162, 1, 209, 219, 162, 1, 249, 103, 162, 1, 248, 153, 162, + 1, 172, 162, 1, 169, 162, 1, 166, 162, 1, 171, 162, 1, 195, 185, 162, 1, + 203, 160, 162, 1, 201, 170, 162, 1, 189, 162, 1, 144, 162, 1, 219, 49, + 162, 1, 38, 44, 219, 38, 162, 1, 38, 44, 206, 104, 162, 1, 38, 44, 213, + 48, 162, 18, 3, 252, 154, 162, 18, 3, 248, 149, 252, 154, 162, 18, 3, 70, + 162, 18, 3, 223, 170, 162, 18, 3, 69, 162, 18, 3, 196, 26, 162, 18, 3, + 121, 148, 162, 18, 3, 121, 206, 105, 162, 18, 3, 121, 170, 162, 18, 3, + 121, 219, 50, 162, 18, 3, 73, 162, 18, 3, 251, 184, 162, 18, 3, 74, 162, + 18, 3, 250, 113, 162, 195, 37, 162, 237, 193, 162, 54, 237, 193, 162, + 208, 145, 236, 96, 162, 208, 145, 54, 236, 96, 162, 208, 145, 219, 88, + 162, 208, 145, 238, 181, 164, 162, 208, 145, 218, 224, 162, 31, 108, 162, + 31, 109, 162, 31, 139, 162, 31, 137, 162, 31, 153, 162, 31, 173, 162, 31, + 181, 162, 31, 176, 162, 31, 184, 162, 31, 199, 90, 162, 31, 197, 28, 162, + 31, 198, 244, 162, 31, 232, 97, 162, 31, 232, 230, 162, 31, 202, 115, + 162, 31, 203, 236, 162, 31, 234, 110, 162, 31, 213, 156, 162, 31, 91, + 228, 109, 162, 31, 91, 188, 162, 17, 191, 77, 162, 17, 108, 162, 17, 109, + 162, 17, 139, 162, 17, 137, 162, 17, 153, 162, 17, 173, 162, 17, 181, + 162, 17, 176, 162, 17, 184, 162, 3, 38, 44, 195, 37, 162, 1, 38, 44, 203, + 35, 73, 162, 1, 38, 44, 203, 35, 74, 162, 18, 3, 38, 44, 203, 35, 73, + 162, 18, 3, 38, 44, 203, 35, 74, 162, 1, 38, 44, 219, 49, 162, 31, 222, + 169, 222, 72, 3, 247, 71, 222, 72, 3, 251, 20, 222, 72, 3, 195, 32, 222, + 72, 1, 65, 222, 72, 1, 252, 154, 222, 72, 1, 70, 222, 72, 1, 223, 170, + 222, 72, 1, 69, 222, 72, 1, 196, 26, 222, 72, 1, 73, 222, 72, 1, 251, + 184, 222, 72, 1, 74, 222, 72, 1, 250, 113, 222, 72, 1, 157, 222, 72, 1, + 221, 190, 222, 72, 1, 231, 203, 222, 72, 1, 231, 54, 222, 72, 1, 214, 54, + 222, 72, 1, 247, 112, 222, 72, 1, 246, 209, 222, 72, 1, 223, 4, 222, 72, + 1, 222, 225, 222, 72, 1, 212, 88, 222, 72, 1, 197, 128, 222, 72, 1, 197, + 116, 222, 72, 1, 237, 146, 222, 72, 1, 237, 135, 222, 72, 1, 237, 130, + 222, 72, 1, 207, 1, 222, 72, 1, 213, 66, 222, 72, 1, 199, 247, 222, 72, + 1, 199, 44, 222, 72, 1, 237, 241, 222, 72, 1, 237, 23, 222, 72, 1, 180, + 222, 72, 1, 168, 222, 72, 1, 209, 219, 222, 72, 1, 249, 103, 222, 72, 1, + 248, 153, 222, 72, 1, 172, 222, 72, 1, 169, 222, 72, 1, 166, 222, 72, 1, + 171, 222, 72, 1, 195, 185, 222, 72, 1, 203, 160, 222, 72, 1, 201, 170, + 222, 72, 1, 189, 222, 72, 1, 144, 222, 72, 18, 3, 252, 154, 222, 72, 18, + 3, 70, 222, 72, 18, 3, 223, 170, 222, 72, 18, 3, 69, 222, 72, 18, 3, 196, + 26, 222, 72, 18, 3, 73, 222, 72, 18, 3, 251, 184, 222, 72, 18, 3, 74, + 222, 72, 18, 3, 250, 113, 222, 72, 3, 195, 37, 222, 72, 3, 212, 128, 222, + 72, 252, 16, 57, 222, 72, 234, 27, 57, 222, 72, 31, 57, 222, 72, 205, 49, + 77, 222, 72, 54, 205, 49, 77, 222, 72, 237, 193, 222, 72, 54, 237, 193, + 222, 72, 18, 3, 121, 148, 222, 72, 31, 3, 56, 202, 7, 202, 15, 1, 205, + 177, 202, 7, 202, 15, 1, 199, 214, 202, 7, 202, 15, 1, 249, 73, 202, 7, + 202, 15, 1, 247, 101, 202, 7, 202, 15, 1, 237, 221, 202, 7, 202, 15, 1, + 231, 188, 202, 7, 202, 15, 1, 217, 99, 202, 7, 202, 15, 1, 214, 51, 202, + 7, 202, 15, 1, 220, 75, 202, 7, 202, 15, 1, 214, 223, 202, 7, 202, 15, 1, + 195, 181, 202, 7, 202, 15, 1, 210, 190, 202, 7, 202, 15, 1, 192, 121, + 202, 7, 202, 15, 1, 207, 155, 202, 7, 202, 15, 1, 230, 48, 202, 7, 202, + 15, 1, 222, 77, 202, 7, 202, 15, 1, 222, 254, 202, 7, 202, 15, 1, 212, + 85, 202, 7, 202, 15, 1, 251, 193, 202, 7, 202, 15, 1, 234, 143, 202, 7, + 202, 15, 1, 223, 171, 202, 7, 202, 15, 1, 196, 137, 202, 7, 202, 15, 1, + 211, 124, 202, 7, 202, 15, 1, 234, 130, 202, 7, 202, 15, 1, 217, 115, + 202, 7, 202, 15, 17, 191, 77, 202, 7, 202, 15, 17, 108, 202, 7, 202, 15, + 17, 109, 202, 7, 202, 15, 17, 139, 202, 7, 202, 15, 17, 137, 202, 7, 202, + 15, 17, 153, 202, 7, 202, 15, 17, 173, 202, 7, 202, 15, 17, 181, 202, 7, + 202, 15, 17, 176, 202, 7, 202, 15, 17, 184, 246, 203, 3, 247, 71, 246, + 203, 3, 251, 20, 246, 203, 3, 195, 32, 246, 203, 1, 252, 154, 246, 203, + 1, 70, 246, 203, 1, 69, 246, 203, 1, 73, 246, 203, 1, 222, 100, 246, 203, + 1, 221, 189, 246, 203, 1, 231, 200, 246, 203, 1, 231, 53, 246, 203, 1, + 214, 53, 246, 203, 1, 247, 111, 246, 203, 1, 246, 208, 246, 203, 1, 223, + 3, 246, 203, 1, 222, 224, 246, 203, 1, 212, 87, 246, 203, 1, 197, 127, + 246, 203, 1, 197, 115, 246, 203, 1, 237, 145, 246, 203, 1, 237, 129, 246, + 203, 1, 213, 65, 246, 203, 1, 199, 240, 246, 203, 1, 199, 43, 246, 203, + 1, 237, 240, 246, 203, 1, 237, 22, 246, 203, 1, 214, 236, 246, 203, 1, + 210, 210, 246, 203, 1, 209, 218, 246, 203, 1, 249, 101, 246, 203, 1, 248, + 152, 246, 203, 1, 217, 130, 246, 203, 1, 191, 174, 246, 203, 1, 192, 140, + 246, 203, 1, 207, 173, 246, 203, 1, 220, 101, 246, 203, 1, 193, 178, 246, + 203, 1, 205, 192, 246, 203, 1, 230, 58, 246, 203, 18, 3, 65, 246, 203, + 18, 3, 70, 246, 203, 18, 3, 223, 170, 246, 203, 18, 3, 69, 246, 203, 18, + 3, 196, 26, 246, 203, 18, 3, 73, 246, 203, 18, 3, 251, 184, 246, 203, 18, + 3, 74, 246, 203, 18, 3, 250, 113, 246, 203, 18, 3, 211, 121, 246, 203, + 186, 77, 246, 203, 250, 114, 77, 246, 203, 195, 37, 246, 203, 217, 128, + 246, 203, 17, 191, 77, 246, 203, 17, 108, 246, 203, 17, 109, 246, 203, + 17, 139, 246, 203, 17, 137, 246, 203, 17, 153, 246, 203, 17, 173, 246, + 203, 17, 181, 246, 203, 17, 176, 246, 203, 17, 184, 246, 203, 205, 49, + 77, 246, 203, 237, 193, 246, 203, 54, 237, 193, 246, 203, 208, 8, 77, + 246, 203, 1, 219, 134, 246, 203, 18, 3, 252, 154, 246, 203, 18, 3, 234, + 123, 246, 203, 1, 195, 184, 217, 97, 1, 65, 217, 97, 1, 70, 217, 97, 1, + 69, 217, 97, 1, 73, 217, 97, 1, 74, 217, 97, 1, 157, 217, 97, 1, 221, + 190, 217, 97, 1, 231, 203, 217, 97, 1, 231, 54, 217, 97, 1, 247, 112, + 217, 97, 1, 246, 209, 217, 97, 1, 223, 4, 217, 97, 1, 222, 225, 217, 97, + 1, 212, 88, 217, 97, 1, 197, 128, 217, 97, 1, 197, 116, 217, 97, 1, 237, + 146, 217, 97, 1, 237, 130, 217, 97, 1, 213, 66, 217, 97, 1, 199, 247, + 217, 97, 1, 199, 44, 217, 97, 1, 237, 241, 217, 97, 1, 237, 23, 217, 97, + 1, 180, 217, 97, 1, 168, 217, 97, 1, 209, 219, 217, 97, 1, 249, 103, 217, + 97, 1, 248, 153, 217, 97, 1, 172, 217, 97, 1, 166, 217, 97, 1, 171, 217, + 97, 1, 195, 185, 217, 97, 1, 189, 217, 97, 1, 144, 217, 97, 1, 206, 104, + 217, 97, 3, 212, 128, 217, 97, 252, 16, 57, 217, 97, 205, 49, 77, 217, + 97, 34, 203, 10, 203, 124, 3, 247, 71, 203, 124, 3, 251, 20, 203, 124, 3, + 195, 32, 203, 124, 1, 65, 203, 124, 1, 252, 154, 203, 124, 1, 70, 203, + 124, 1, 223, 170, 203, 124, 1, 69, 203, 124, 1, 196, 26, 203, 124, 1, + 121, 148, 203, 124, 1, 121, 206, 105, 203, 124, 1, 121, 170, 203, 124, 1, + 121, 219, 50, 203, 124, 1, 73, 203, 124, 1, 251, 184, 203, 124, 1, 74, + 203, 124, 1, 250, 113, 203, 124, 1, 157, 203, 124, 1, 221, 190, 203, 124, + 1, 231, 203, 203, 124, 1, 231, 54, 203, 124, 1, 214, 54, 203, 124, 1, + 247, 112, 203, 124, 1, 246, 209, 203, 124, 1, 223, 4, 203, 124, 1, 222, + 225, 203, 124, 1, 212, 88, 203, 124, 1, 197, 128, 203, 124, 1, 197, 116, + 203, 124, 1, 237, 146, 203, 124, 1, 237, 130, 203, 124, 1, 213, 66, 203, + 124, 1, 199, 247, 203, 124, 1, 199, 44, 203, 124, 1, 237, 241, 203, 124, + 1, 237, 23, 203, 124, 1, 180, 203, 124, 1, 168, 203, 124, 1, 209, 219, + 203, 124, 1, 249, 103, 203, 124, 1, 248, 153, 203, 124, 1, 172, 203, 124, + 1, 169, 203, 124, 1, 166, 203, 124, 1, 171, 203, 124, 1, 219, 49, 203, + 124, 1, 195, 185, 203, 124, 1, 203, 160, 203, 124, 1, 201, 170, 203, 124, + 1, 189, 203, 124, 1, 144, 203, 124, 18, 3, 252, 154, 203, 124, 18, 3, 70, + 203, 124, 18, 3, 223, 170, 203, 124, 18, 3, 69, 203, 124, 18, 3, 196, 26, + 203, 124, 18, 3, 121, 148, 203, 124, 18, 3, 121, 206, 105, 203, 124, 18, + 3, 121, 170, 203, 124, 18, 3, 121, 219, 50, 203, 124, 18, 3, 73, 203, + 124, 18, 3, 251, 184, 203, 124, 18, 3, 74, 203, 124, 18, 3, 250, 113, + 203, 124, 3, 195, 37, 203, 124, 3, 250, 95, 203, 124, 3, 222, 210, 203, + 124, 3, 196, 71, 203, 124, 211, 102, 203, 124, 237, 193, 203, 124, 54, + 237, 193, 203, 124, 252, 16, 57, 203, 124, 204, 5, 203, 124, 205, 133, + 77, 203, 124, 3, 212, 128, 203, 124, 18, 59, 77, 203, 124, 233, 160, 203, + 35, 18, 77, 203, 124, 200, 157, 77, 203, 124, 18, 3, 208, 200, 73, 203, + 124, 3, 223, 65, 247, 71, 203, 124, 17, 191, 77, 203, 124, 17, 108, 203, + 124, 17, 109, 203, 124, 17, 139, 203, 124, 17, 137, 203, 124, 17, 153, + 203, 124, 17, 173, 203, 124, 17, 181, 203, 124, 17, 176, 203, 124, 17, + 184, 203, 124, 234, 103, 203, 124, 3, 202, 205, 203, 124, 229, 195, 203, + 124, 238, 238, 57, 203, 124, 205, 49, 217, 36, 203, 124, 205, 49, 217, + 35, 165, 250, 220, 17, 108, 165, 250, 220, 17, 109, 165, 250, 220, 17, + 139, 165, 250, 220, 17, 137, 165, 250, 220, 17, 153, 165, 250, 220, 17, + 173, 165, 250, 220, 17, 181, 165, 250, 220, 17, 176, 165, 250, 220, 17, + 184, 165, 250, 220, 31, 199, 90, 165, 250, 220, 31, 197, 28, 165, 250, + 220, 31, 198, 244, 165, 250, 220, 31, 232, 97, 165, 250, 220, 31, 232, + 230, 165, 250, 220, 31, 202, 115, 165, 250, 220, 31, 203, 236, 165, 250, + 220, 31, 234, 110, 165, 250, 220, 31, 213, 156, 165, 250, 220, 31, 91, + 228, 109, 165, 250, 220, 31, 91, 188, 221, 158, 1, 65, 221, 158, 1, 252, + 154, 221, 158, 1, 70, 221, 158, 1, 69, 221, 158, 1, 73, 221, 158, 1, 251, + 184, 221, 158, 1, 74, 221, 158, 1, 250, 113, 221, 158, 1, 157, 221, 158, + 1, 221, 190, 221, 158, 1, 231, 203, 221, 158, 1, 231, 90, 221, 158, 1, + 231, 54, 221, 158, 1, 214, 54, 221, 158, 1, 247, 112, 221, 158, 1, 246, + 209, 221, 158, 1, 223, 4, 221, 158, 1, 222, 203, 221, 158, 1, 212, 88, + 221, 158, 1, 197, 128, 221, 158, 1, 197, 116, 221, 158, 1, 237, 146, 221, + 158, 1, 237, 130, 221, 158, 1, 213, 66, 221, 158, 1, 199, 247, 221, 158, + 1, 199, 44, 221, 158, 1, 237, 241, 221, 158, 1, 237, 136, 221, 158, 1, + 237, 23, 221, 158, 1, 180, 221, 158, 1, 168, 221, 158, 1, 209, 219, 221, + 158, 1, 249, 103, 221, 158, 1, 249, 3, 221, 158, 1, 248, 153, 221, 158, + 1, 172, 221, 158, 1, 169, 221, 158, 1, 166, 221, 158, 1, 171, 221, 158, + 1, 195, 185, 221, 158, 1, 189, 221, 158, 1, 144, 221, 158, 1, 219, 49, + 221, 158, 18, 3, 252, 154, 221, 158, 18, 3, 70, 221, 158, 18, 3, 223, + 170, 221, 158, 18, 3, 69, 221, 158, 18, 3, 73, 221, 158, 18, 3, 251, 184, + 221, 158, 18, 3, 74, 221, 158, 18, 3, 250, 113, 221, 158, 3, 251, 20, + 221, 158, 3, 195, 37, 221, 158, 3, 212, 128, 221, 158, 3, 203, 150, 221, + 158, 237, 193, 221, 158, 54, 237, 193, 221, 158, 193, 23, 204, 5, 221, + 158, 205, 49, 77, 221, 158, 54, 205, 49, 77, 221, 158, 252, 16, 57, 221, + 158, 3, 200, 201, 215, 118, 1, 65, 215, 118, 1, 70, 215, 118, 1, 69, 215, + 118, 1, 73, 215, 118, 1, 157, 215, 118, 1, 221, 190, 215, 118, 1, 231, + 203, 215, 118, 1, 231, 54, 215, 118, 1, 247, 112, 215, 118, 1, 246, 209, + 215, 118, 1, 223, 4, 215, 118, 1, 222, 203, 215, 118, 1, 212, 88, 215, + 118, 1, 197, 128, 215, 118, 1, 197, 116, 215, 118, 1, 237, 146, 215, 118, + 1, 237, 136, 215, 118, 1, 237, 130, 215, 118, 1, 213, 66, 215, 118, 1, + 199, 247, 215, 118, 1, 199, 44, 215, 118, 1, 237, 241, 215, 118, 1, 237, + 23, 215, 118, 1, 180, 215, 118, 1, 168, 215, 118, 1, 209, 219, 215, 118, + 1, 249, 103, 215, 118, 1, 248, 153, 215, 118, 1, 172, 215, 118, 1, 169, + 215, 118, 1, 166, 215, 118, 1, 171, 215, 118, 1, 195, 185, 215, 118, 1, + 189, 215, 118, 1, 144, 215, 118, 1, 206, 104, 215, 118, 1, 207, 1, 215, + 118, 205, 49, 77, 221, 148, 1, 65, 221, 148, 1, 252, 154, 221, 148, 1, + 70, 221, 148, 1, 223, 170, 221, 148, 1, 69, 221, 148, 1, 196, 26, 221, + 148, 1, 73, 221, 148, 1, 251, 184, 221, 148, 1, 74, 221, 148, 1, 250, + 113, 221, 148, 1, 157, 221, 148, 1, 221, 190, 221, 148, 1, 231, 203, 221, + 148, 1, 231, 90, 221, 148, 1, 231, 54, 221, 148, 1, 214, 54, 221, 148, 1, + 247, 112, 221, 148, 1, 246, 209, 221, 148, 1, 223, 4, 221, 148, 1, 222, + 203, 221, 148, 1, 222, 225, 221, 148, 1, 212, 88, 221, 148, 1, 197, 128, + 221, 148, 1, 197, 116, 221, 148, 1, 237, 146, 221, 148, 1, 237, 136, 221, + 148, 1, 206, 104, 221, 148, 1, 237, 130, 221, 148, 1, 213, 66, 221, 148, + 1, 199, 247, 221, 148, 1, 199, 44, 221, 148, 1, 237, 241, 221, 148, 1, + 237, 23, 221, 148, 1, 180, 221, 148, 1, 168, 221, 148, 1, 209, 219, 221, + 148, 1, 249, 103, 221, 148, 1, 249, 3, 221, 148, 1, 248, 153, 221, 148, + 1, 172, 221, 148, 1, 169, 221, 148, 1, 166, 221, 148, 1, 171, 221, 148, + 1, 195, 185, 221, 148, 1, 203, 160, 221, 148, 1, 189, 221, 148, 1, 144, + 221, 148, 3, 251, 20, 221, 148, 18, 3, 252, 154, 221, 148, 18, 3, 70, + 221, 148, 18, 3, 223, 170, 221, 148, 18, 3, 69, 221, 148, 18, 3, 196, 26, + 221, 148, 18, 3, 73, 221, 148, 18, 3, 251, 184, 221, 148, 18, 3, 74, 221, + 148, 18, 3, 250, 113, 221, 148, 3, 212, 128, 221, 148, 3, 195, 37, 221, + 148, 17, 191, 77, 221, 148, 17, 108, 221, 148, 17, 109, 221, 148, 17, + 139, 221, 148, 17, 137, 221, 148, 17, 153, 221, 148, 17, 173, 221, 148, + 17, 181, 221, 148, 17, 176, 221, 148, 17, 184, 230, 185, 3, 33, 251, 21, + 56, 230, 185, 3, 247, 71, 230, 185, 3, 251, 20, 230, 185, 3, 195, 32, + 230, 185, 1, 65, 230, 185, 1, 252, 154, 230, 185, 1, 70, 230, 185, 1, + 223, 170, 230, 185, 1, 69, 230, 185, 1, 196, 26, 230, 185, 1, 121, 148, + 230, 185, 1, 121, 170, 230, 185, 1, 234, 145, 230, 185, 1, 251, 184, 230, + 185, 1, 211, 76, 230, 185, 1, 250, 113, 230, 185, 1, 157, 230, 185, 1, + 221, 190, 230, 185, 1, 231, 203, 230, 185, 1, 231, 54, 230, 185, 1, 214, + 54, 230, 185, 1, 247, 112, 230, 185, 1, 246, 209, 230, 185, 1, 223, 4, + 230, 185, 1, 222, 225, 230, 185, 1, 212, 88, 230, 185, 1, 197, 128, 230, + 185, 1, 197, 116, 230, 185, 1, 237, 146, 230, 185, 1, 237, 130, 230, 185, + 1, 213, 66, 230, 185, 1, 199, 247, 230, 185, 1, 199, 44, 230, 185, 1, + 237, 241, 230, 185, 1, 237, 23, 230, 185, 1, 180, 230, 185, 1, 168, 230, + 185, 1, 209, 219, 230, 185, 1, 249, 103, 230, 185, 1, 248, 153, 230, 185, + 1, 172, 230, 185, 1, 169, 230, 185, 1, 166, 230, 185, 1, 171, 230, 185, + 1, 219, 49, 230, 185, 1, 195, 185, 230, 185, 1, 203, 160, 230, 185, 1, + 201, 170, 230, 185, 1, 189, 230, 185, 1, 144, 33, 248, 117, 60, 230, 185, + 3, 212, 128, 230, 185, 3, 250, 95, 230, 185, 18, 3, 252, 154, 230, 185, + 18, 3, 70, 230, 185, 18, 3, 223, 170, 230, 185, 18, 3, 69, 230, 185, 18, + 3, 196, 26, 230, 185, 18, 3, 121, 148, 230, 185, 18, 3, 121, 206, 105, + 230, 185, 18, 3, 234, 145, 230, 185, 18, 3, 251, 184, 230, 185, 18, 3, + 211, 76, 230, 185, 18, 3, 250, 113, 230, 185, 3, 195, 37, 230, 185, 211, + 102, 230, 185, 250, 114, 219, 174, 77, 230, 185, 3, 209, 71, 230, 185, 1, + 195, 147, 251, 20, 230, 185, 1, 195, 147, 54, 251, 20, 230, 185, 1, 121, + 206, 105, 230, 185, 1, 121, 219, 50, 230, 185, 18, 3, 121, 170, 230, 185, + 18, 3, 121, 219, 50, 33, 230, 185, 17, 191, 77, 33, 230, 185, 17, 108, + 33, 230, 185, 17, 109, 33, 230, 185, 17, 139, 33, 230, 185, 17, 137, 33, + 230, 185, 17, 153, 33, 230, 185, 17, 173, 33, 230, 185, 1, 65, 33, 230, + 185, 1, 157, 33, 230, 185, 1, 180, 33, 230, 185, 1, 195, 66, 33, 230, + 185, 1, 168, 214, 64, 1, 65, 214, 64, 1, 252, 154, 214, 64, 1, 70, 214, + 64, 1, 223, 170, 214, 64, 1, 69, 214, 64, 1, 196, 26, 214, 64, 1, 121, + 148, 214, 64, 1, 121, 206, 105, 214, 64, 1, 121, 170, 214, 64, 1, 121, + 219, 50, 214, 64, 1, 73, 214, 64, 1, 251, 184, 214, 64, 1, 74, 214, 64, + 1, 250, 113, 214, 64, 1, 157, 214, 64, 1, 221, 190, 214, 64, 1, 231, 203, + 214, 64, 1, 231, 54, 214, 64, 1, 214, 54, 214, 64, 1, 214, 3, 214, 64, 1, + 247, 112, 214, 64, 1, 246, 209, 214, 64, 1, 223, 4, 214, 64, 1, 222, 225, + 214, 64, 1, 212, 88, 214, 64, 1, 212, 70, 214, 64, 1, 197, 128, 214, 64, + 1, 197, 116, 214, 64, 1, 237, 146, 214, 64, 1, 237, 130, 214, 64, 1, 213, + 66, 214, 64, 1, 199, 247, 214, 64, 1, 199, 44, 214, 64, 1, 237, 241, 214, + 64, 1, 237, 23, 214, 64, 1, 180, 214, 64, 1, 213, 210, 214, 64, 1, 168, + 214, 64, 1, 209, 219, 214, 64, 1, 249, 103, 214, 64, 1, 248, 153, 214, + 64, 1, 172, 214, 64, 1, 216, 84, 214, 64, 1, 169, 214, 64, 1, 166, 214, + 64, 1, 207, 1, 214, 64, 1, 171, 214, 64, 1, 219, 135, 214, 64, 1, 193, + 187, 214, 64, 1, 203, 160, 214, 64, 1, 201, 170, 214, 64, 1, 189, 214, + 64, 1, 144, 214, 64, 18, 3, 252, 154, 214, 64, 18, 3, 70, 214, 64, 18, 3, + 223, 170, 214, 64, 18, 3, 69, 214, 64, 18, 3, 196, 26, 214, 64, 18, 3, + 121, 148, 214, 64, 18, 3, 121, 206, 105, 214, 64, 18, 3, 121, 170, 214, + 64, 18, 3, 121, 219, 50, 214, 64, 18, 3, 73, 214, 64, 18, 3, 251, 184, + 214, 64, 18, 3, 74, 214, 64, 18, 3, 250, 113, 214, 64, 3, 195, 37, 214, + 64, 3, 247, 71, 214, 64, 3, 251, 20, 214, 64, 3, 195, 32, 214, 64, 3, + 212, 128, 214, 64, 3, 250, 95, 214, 64, 3, 52, 251, 20, 214, 64, 211, + 102, 214, 64, 202, 204, 214, 64, 237, 193, 214, 64, 54, 237, 193, 214, + 64, 242, 26, 214, 64, 231, 167, 232, 218, 214, 64, 252, 16, 57, 214, 64, + 17, 191, 77, 214, 64, 17, 108, 214, 64, 17, 109, 214, 64, 17, 139, 214, + 64, 17, 137, 214, 64, 17, 153, 214, 64, 17, 173, 214, 64, 17, 181, 214, + 64, 17, 176, 214, 64, 17, 184, 214, 64, 54, 242, 26, 214, 64, 209, 99, + 77, 214, 64, 223, 91, 57, 214, 64, 205, 133, 77, 214, 64, 1, 195, 147, + 251, 20, 214, 64, 3, 222, 210, 214, 64, 3, 196, 71, 198, 124, 251, 49, + 198, 124, 1, 65, 198, 124, 1, 252, 154, 198, 124, 1, 70, 198, 124, 1, + 223, 170, 198, 124, 1, 69, 198, 124, 1, 196, 26, 198, 124, 1, 121, 148, + 198, 124, 1, 121, 206, 105, 198, 124, 1, 121, 170, 198, 124, 1, 121, 219, + 50, 198, 124, 1, 73, 198, 124, 1, 251, 184, 198, 124, 1, 74, 198, 124, 1, + 250, 113, 198, 124, 1, 157, 198, 124, 1, 221, 190, 198, 124, 1, 231, 203, + 198, 124, 1, 231, 54, 198, 124, 1, 214, 54, 198, 124, 1, 247, 112, 198, + 124, 1, 246, 209, 198, 124, 1, 223, 4, 198, 124, 1, 222, 225, 198, 124, + 1, 212, 88, 198, 124, 1, 197, 128, 198, 124, 1, 197, 116, 198, 124, 1, + 237, 146, 198, 124, 1, 237, 130, 198, 124, 1, 213, 66, 198, 124, 1, 199, + 247, 198, 124, 1, 199, 44, 198, 124, 1, 237, 241, 198, 124, 1, 237, 23, + 198, 124, 1, 180, 198, 124, 1, 168, 198, 124, 1, 209, 219, 198, 124, 1, + 249, 103, 198, 124, 1, 248, 153, 198, 124, 1, 172, 198, 124, 1, 169, 198, + 124, 1, 166, 198, 124, 1, 171, 198, 124, 1, 195, 185, 198, 124, 1, 203, + 160, 198, 124, 1, 201, 170, 198, 124, 1, 189, 198, 124, 1, 144, 198, 124, + 18, 3, 252, 154, 198, 124, 18, 3, 70, 198, 124, 18, 3, 223, 170, 198, + 124, 18, 3, 69, 198, 124, 18, 3, 196, 26, 198, 124, 18, 3, 121, 148, 198, + 124, 18, 3, 121, 206, 105, 198, 124, 18, 3, 121, 170, 198, 124, 18, 3, + 121, 219, 50, 198, 124, 18, 3, 73, 198, 124, 18, 3, 203, 35, 73, 198, + 124, 18, 3, 251, 184, 198, 124, 18, 3, 74, 198, 124, 18, 3, 203, 35, 74, + 198, 124, 18, 3, 250, 113, 198, 124, 3, 247, 71, 198, 124, 3, 251, 20, + 198, 124, 3, 195, 32, 198, 124, 3, 195, 37, 198, 124, 3, 212, 128, 198, + 124, 3, 250, 95, 198, 124, 230, 104, 198, 124, 252, 16, 57, 198, 124, + 211, 102, 198, 124, 17, 191, 77, 198, 124, 17, 108, 198, 124, 17, 109, + 198, 124, 17, 139, 198, 124, 17, 137, 198, 124, 17, 153, 198, 124, 17, + 173, 198, 124, 17, 181, 198, 124, 17, 176, 198, 124, 17, 184, 202, 206, + 1, 65, 202, 206, 1, 252, 154, 202, 206, 1, 70, 202, 206, 1, 223, 170, + 202, 206, 1, 69, 202, 206, 1, 196, 26, 202, 206, 1, 121, 148, 202, 206, + 1, 121, 206, 105, 202, 206, 1, 121, 170, 202, 206, 1, 121, 219, 50, 202, + 206, 1, 73, 202, 206, 1, 251, 184, 202, 206, 1, 74, 202, 206, 1, 250, + 113, 202, 206, 1, 157, 202, 206, 1, 221, 190, 202, 206, 1, 231, 203, 202, + 206, 1, 231, 54, 202, 206, 1, 214, 54, 202, 206, 1, 247, 112, 202, 206, + 1, 246, 209, 202, 206, 1, 223, 4, 202, 206, 1, 222, 225, 202, 206, 1, + 212, 88, 202, 206, 1, 197, 128, 202, 206, 1, 197, 116, 202, 206, 1, 237, + 146, 202, 206, 1, 237, 130, 202, 206, 1, 213, 66, 202, 206, 1, 199, 247, + 202, 206, 1, 199, 44, 202, 206, 1, 237, 241, 202, 206, 1, 237, 23, 202, + 206, 1, 180, 202, 206, 1, 168, 202, 206, 1, 209, 219, 202, 206, 1, 249, + 103, 202, 206, 1, 248, 153, 202, 206, 1, 172, 202, 206, 1, 169, 202, 206, + 1, 166, 202, 206, 1, 171, 202, 206, 1, 195, 185, 202, 206, 1, 203, 160, + 202, 206, 1, 201, 170, 202, 206, 1, 189, 202, 206, 1, 144, 202, 206, 18, + 3, 252, 154, 202, 206, 18, 3, 70, 202, 206, 18, 3, 223, 170, 202, 206, + 18, 3, 69, 202, 206, 18, 3, 196, 26, 202, 206, 18, 3, 121, 148, 202, 206, + 18, 3, 121, 206, 105, 202, 206, 18, 3, 73, 202, 206, 18, 3, 251, 184, + 202, 206, 18, 3, 74, 202, 206, 18, 3, 250, 113, 202, 206, 3, 247, 71, + 202, 206, 3, 251, 20, 202, 206, 3, 195, 32, 202, 206, 3, 195, 37, 202, + 206, 3, 212, 128, 202, 206, 3, 202, 205, 202, 206, 237, 193, 202, 206, + 54, 237, 193, 202, 206, 204, 6, 236, 96, 202, 206, 204, 6, 164, 202, 206, + 207, 41, 217, 36, 202, 206, 207, 41, 217, 35, 202, 206, 207, 41, 217, 34, + 202, 206, 234, 53, 80, 199, 49, 77, 202, 206, 205, 49, 87, 4, 197, 232, + 24, 196, 217, 211, 31, 202, 206, 205, 49, 87, 4, 197, 232, 24, 235, 94, + 238, 179, 202, 206, 205, 49, 87, 4, 207, 115, 24, 235, 94, 238, 179, 202, + 206, 205, 49, 87, 4, 207, 115, 24, 235, 94, 54, 238, 179, 202, 206, 205, + 49, 87, 4, 207, 115, 24, 235, 94, 197, 221, 238, 179, 202, 206, 205, 49, + 87, 54, 206, 183, 202, 206, 205, 49, 87, 54, 206, 184, 4, 207, 114, 202, + 206, 205, 49, 87, 4, 54, 238, 179, 202, 206, 205, 49, 87, 4, 197, 221, + 238, 179, 202, 206, 205, 49, 87, 4, 208, 20, 238, 179, 202, 206, 205, 49, + 87, 4, 204, 3, 238, 179, 202, 206, 205, 49, 87, 4, 242, 216, 24, 207, + 114, 202, 206, 205, 49, 87, 4, 242, 216, 24, 103, 234, 55, 202, 206, 205, + 49, 87, 4, 242, 216, 24, 232, 90, 234, 55, 202, 206, 1, 198, 221, 251, + 106, 70, 202, 206, 1, 197, 11, 251, 106, 70, 202, 206, 1, 197, 11, 251, + 106, 223, 170, 202, 206, 1, 251, 106, 69, 202, 206, 18, 3, 251, 106, 69, + 202, 206, 18, 3, 251, 106, 196, 26, 215, 236, 1, 65, 215, 236, 1, 252, + 154, 215, 236, 1, 70, 215, 236, 1, 223, 170, 215, 236, 1, 69, 215, 236, + 1, 196, 26, 215, 236, 1, 121, 148, 215, 236, 1, 121, 206, 105, 215, 236, + 1, 121, 170, 215, 236, 1, 121, 219, 50, 215, 236, 1, 73, 215, 236, 1, + 251, 184, 215, 236, 1, 74, 215, 236, 1, 250, 113, 215, 236, 1, 157, 215, + 236, 1, 221, 190, 215, 236, 1, 231, 203, 215, 236, 1, 231, 54, 215, 236, + 1, 214, 54, 215, 236, 1, 247, 112, 215, 236, 1, 246, 209, 215, 236, 1, + 223, 4, 215, 236, 1, 222, 225, 215, 236, 1, 212, 88, 215, 236, 1, 197, + 128, 215, 236, 1, 197, 116, 215, 236, 1, 237, 146, 215, 236, 1, 237, 130, + 215, 236, 1, 213, 66, 215, 236, 1, 199, 247, 215, 236, 1, 199, 44, 215, + 236, 1, 237, 241, 215, 236, 1, 237, 23, 215, 236, 1, 180, 215, 236, 1, + 168, 215, 236, 1, 209, 219, 215, 236, 1, 249, 103, 215, 236, 1, 248, 153, + 215, 236, 1, 172, 215, 236, 1, 169, 215, 236, 1, 166, 215, 236, 1, 171, + 215, 236, 1, 195, 185, 215, 236, 1, 203, 160, 215, 236, 1, 201, 170, 215, + 236, 1, 189, 215, 236, 1, 144, 215, 236, 1, 219, 49, 215, 236, 18, 3, + 252, 154, 215, 236, 18, 3, 70, 215, 236, 18, 3, 223, 170, 215, 236, 18, + 3, 69, 215, 236, 18, 3, 196, 26, 215, 236, 18, 3, 121, 148, 215, 236, 18, + 3, 121, 206, 105, 215, 236, 18, 3, 121, 170, 215, 236, 18, 3, 121, 219, + 50, 215, 236, 18, 3, 73, 215, 236, 18, 3, 251, 184, 215, 236, 18, 3, 74, + 215, 236, 18, 3, 250, 113, 215, 236, 3, 251, 20, 215, 236, 3, 195, 32, + 215, 236, 3, 195, 37, 215, 236, 3, 250, 217, 215, 236, 237, 193, 215, + 236, 54, 237, 193, 215, 236, 252, 16, 57, 215, 236, 3, 228, 96, 215, 236, + 17, 191, 77, 215, 236, 17, 108, 215, 236, 17, 109, 215, 236, 17, 139, + 215, 236, 17, 137, 215, 236, 17, 153, 215, 236, 17, 173, 215, 236, 17, + 181, 215, 236, 17, 176, 215, 236, 17, 184, 102, 248, 111, 4, 211, 32, + 102, 206, 117, 248, 110, 102, 54, 248, 111, 4, 211, 32, 102, 197, 221, + 248, 111, 4, 211, 32, 102, 248, 111, 4, 54, 211, 32, 102, 206, 117, 248, + 111, 4, 211, 32, 102, 206, 117, 248, 111, 4, 54, 211, 32, 102, 223, 65, + 248, 110, 102, 223, 65, 248, 111, 4, 54, 211, 32, 102, 200, 130, 248, + 110, 102, 200, 130, 248, 111, 4, 211, 32, 102, 200, 130, 248, 111, 4, 54, + 211, 32, 102, 152, 200, 130, 248, 111, 4, 54, 211, 32, 199, 200, 1, 65, + 199, 200, 1, 252, 154, 199, 200, 1, 70, 199, 200, 1, 223, 170, 199, 200, + 1, 69, 199, 200, 1, 196, 26, 199, 200, 1, 73, 199, 200, 1, 251, 184, 199, + 200, 1, 74, 199, 200, 1, 250, 113, 199, 200, 1, 157, 199, 200, 1, 221, + 190, 199, 200, 1, 231, 203, 199, 200, 1, 231, 54, 199, 200, 1, 214, 54, + 199, 200, 1, 247, 112, 199, 200, 1, 246, 209, 199, 200, 1, 223, 4, 199, + 200, 1, 222, 225, 199, 200, 1, 212, 88, 199, 200, 1, 197, 128, 199, 200, + 1, 197, 116, 199, 200, 1, 237, 146, 199, 200, 1, 237, 130, 199, 200, 1, + 213, 66, 199, 200, 1, 199, 247, 199, 200, 1, 199, 44, 199, 200, 1, 237, + 241, 199, 200, 1, 237, 23, 199, 200, 1, 180, 199, 200, 1, 168, 199, 200, + 1, 209, 219, 199, 200, 1, 249, 103, 199, 200, 1, 248, 153, 199, 200, 1, + 172, 199, 200, 1, 169, 199, 200, 1, 166, 199, 200, 1, 171, 199, 200, 1, + 195, 185, 199, 200, 1, 203, 160, 199, 200, 1, 189, 199, 200, 1, 144, 199, + 200, 1, 206, 104, 199, 200, 3, 251, 20, 199, 200, 3, 195, 32, 199, 200, + 18, 3, 252, 154, 199, 200, 18, 3, 70, 199, 200, 18, 3, 223, 170, 199, + 200, 18, 3, 69, 199, 200, 18, 3, 196, 26, 199, 200, 18, 3, 73, 199, 200, + 18, 3, 251, 184, 199, 200, 18, 3, 74, 199, 200, 18, 3, 250, 113, 199, + 200, 3, 195, 37, 199, 200, 3, 212, 128, 199, 200, 1, 250, 220, 221, 190, + 199, 200, 252, 16, 57, 199, 200, 17, 191, 77, 199, 200, 17, 108, 199, + 200, 17, 109, 199, 200, 17, 139, 199, 200, 17, 137, 199, 200, 17, 153, + 199, 200, 17, 173, 199, 200, 17, 181, 199, 200, 17, 176, 199, 200, 17, + 184, 251, 188, 1, 157, 251, 188, 1, 221, 190, 251, 188, 1, 214, 54, 251, + 188, 1, 180, 251, 188, 1, 199, 247, 251, 188, 1, 251, 106, 199, 247, 251, + 188, 1, 168, 251, 188, 1, 209, 219, 251, 188, 1, 249, 103, 251, 188, 1, + 172, 251, 188, 1, 223, 4, 251, 188, 1, 246, 209, 251, 188, 1, 199, 44, + 251, 188, 1, 166, 251, 188, 1, 171, 251, 188, 1, 189, 251, 188, 1, 212, + 88, 251, 188, 1, 144, 251, 188, 1, 65, 251, 188, 1, 237, 241, 251, 188, + 1, 237, 23, 251, 188, 1, 231, 203, 251, 188, 1, 251, 106, 231, 203, 251, + 188, 1, 231, 54, 251, 188, 1, 248, 153, 251, 188, 1, 222, 225, 251, 188, + 1, 251, 106, 249, 103, 251, 188, 119, 3, 216, 198, 171, 251, 188, 119, 3, + 216, 198, 166, 251, 188, 119, 3, 216, 198, 219, 109, 166, 251, 188, 18, + 3, 65, 251, 188, 18, 3, 252, 154, 251, 188, 18, 3, 70, 251, 188, 18, 3, + 223, 170, 251, 188, 18, 3, 69, 251, 188, 18, 3, 196, 26, 251, 188, 18, 3, + 73, 251, 188, 18, 3, 250, 90, 251, 188, 18, 3, 74, 251, 188, 18, 3, 251, + 184, 251, 188, 18, 3, 251, 98, 251, 188, 3, 221, 119, 251, 188, 17, 191, + 77, 251, 188, 17, 108, 251, 188, 17, 109, 251, 188, 17, 139, 251, 188, + 17, 137, 251, 188, 17, 153, 251, 188, 17, 173, 251, 188, 17, 181, 251, + 188, 17, 176, 251, 188, 17, 184, 251, 188, 31, 199, 90, 251, 188, 31, + 197, 28, 251, 188, 3, 2, 205, 48, 251, 188, 3, 205, 48, 251, 188, 3, 206, + 48, 251, 188, 16, 195, 66, 251, 188, 1, 247, 112, 251, 188, 1, 197, 128, + 251, 188, 1, 197, 116, 251, 188, 1, 237, 146, 251, 188, 1, 237, 130, 251, + 188, 1, 213, 66, 251, 188, 1, 219, 49, 236, 116, 1, 65, 236, 116, 1, 252, + 154, 236, 116, 1, 70, 236, 116, 1, 223, 170, 236, 116, 1, 69, 236, 116, + 1, 196, 26, 236, 116, 1, 73, 236, 116, 1, 251, 184, 236, 116, 1, 74, 236, + 116, 1, 250, 113, 236, 116, 1, 157, 236, 116, 1, 221, 190, 236, 116, 1, + 231, 203, 236, 116, 1, 231, 54, 236, 116, 1, 214, 54, 236, 116, 1, 247, + 112, 236, 116, 1, 246, 209, 236, 116, 1, 223, 4, 236, 116, 1, 222, 225, + 236, 116, 1, 212, 88, 236, 116, 1, 197, 128, 236, 116, 1, 197, 116, 236, + 116, 1, 237, 146, 236, 116, 1, 237, 130, 236, 116, 1, 213, 66, 236, 116, + 1, 199, 247, 236, 116, 1, 199, 44, 236, 116, 1, 237, 241, 236, 116, 1, + 237, 23, 236, 116, 1, 180, 236, 116, 1, 168, 236, 116, 1, 209, 219, 236, + 116, 1, 249, 103, 236, 116, 1, 248, 153, 236, 116, 1, 172, 236, 116, 1, + 169, 236, 116, 1, 166, 236, 116, 1, 171, 236, 116, 1, 195, 185, 236, 116, + 1, 203, 160, 236, 116, 1, 201, 170, 236, 116, 1, 189, 236, 116, 1, 144, + 236, 116, 1, 206, 104, 236, 116, 18, 3, 252, 154, 236, 116, 18, 3, 70, + 236, 116, 18, 3, 223, 170, 236, 116, 18, 3, 69, 236, 116, 18, 3, 196, 26, + 236, 116, 18, 3, 121, 148, 236, 116, 18, 3, 121, 206, 105, 236, 116, 18, + 3, 73, 236, 116, 18, 3, 251, 184, 236, 116, 18, 3, 74, 236, 116, 18, 3, + 250, 113, 236, 116, 3, 251, 20, 236, 116, 3, 195, 32, 236, 116, 3, 195, + 37, 236, 116, 3, 212, 128, 236, 116, 252, 16, 57, 193, 154, 242, 205, 6, + 1, 214, 53, 193, 154, 242, 205, 6, 1, 65, 193, 154, 242, 205, 6, 1, 193, + 84, 193, 154, 242, 205, 6, 1, 191, 225, 193, 154, 242, 205, 6, 1, 169, + 193, 154, 242, 205, 6, 1, 192, 12, 193, 154, 242, 205, 6, 1, 223, 170, + 193, 154, 242, 205, 6, 1, 196, 26, 193, 154, 242, 205, 6, 1, 73, 193, + 154, 242, 205, 6, 1, 74, 193, 154, 242, 205, 6, 1, 251, 71, 193, 154, + 242, 205, 6, 1, 231, 203, 193, 154, 242, 205, 6, 1, 221, 43, 193, 154, + 242, 205, 6, 1, 234, 24, 193, 154, 242, 205, 6, 1, 191, 204, 193, 154, + 242, 205, 6, 1, 196, 156, 193, 154, 242, 205, 6, 1, 234, 43, 193, 154, + 242, 205, 6, 1, 211, 142, 193, 154, 242, 205, 6, 1, 197, 123, 193, 154, + 242, 205, 6, 1, 212, 114, 193, 154, 242, 205, 6, 1, 237, 241, 193, 154, + 242, 205, 6, 1, 250, 132, 193, 154, 242, 205, 6, 1, 251, 98, 193, 154, + 242, 205, 6, 1, 247, 218, 193, 154, 242, 205, 6, 1, 208, 158, 193, 154, + 242, 205, 6, 1, 229, 83, 193, 154, 242, 205, 6, 1, 228, 227, 193, 154, + 242, 205, 6, 1, 228, 154, 193, 154, 242, 205, 6, 1, 229, 242, 193, 154, + 242, 205, 6, 1, 201, 121, 193, 154, 242, 205, 6, 1, 202, 188, 193, 154, + 242, 205, 6, 1, 195, 22, 193, 154, 242, 205, 2, 1, 214, 53, 193, 154, + 242, 205, 2, 1, 65, 193, 154, 242, 205, 2, 1, 193, 84, 193, 154, 242, + 205, 2, 1, 191, 225, 193, 154, 242, 205, 2, 1, 169, 193, 154, 242, 205, + 2, 1, 192, 12, 193, 154, 242, 205, 2, 1, 223, 170, 193, 154, 242, 205, 2, + 1, 196, 26, 193, 154, 242, 205, 2, 1, 73, 193, 154, 242, 205, 2, 1, 74, + 193, 154, 242, 205, 2, 1, 251, 71, 193, 154, 242, 205, 2, 1, 231, 203, + 193, 154, 242, 205, 2, 1, 221, 43, 193, 154, 242, 205, 2, 1, 234, 24, + 193, 154, 242, 205, 2, 1, 191, 204, 193, 154, 242, 205, 2, 1, 196, 156, + 193, 154, 242, 205, 2, 1, 234, 43, 193, 154, 242, 205, 2, 1, 211, 142, + 193, 154, 242, 205, 2, 1, 197, 123, 193, 154, 242, 205, 2, 1, 212, 114, + 193, 154, 242, 205, 2, 1, 237, 241, 193, 154, 242, 205, 2, 1, 250, 132, + 193, 154, 242, 205, 2, 1, 251, 98, 193, 154, 242, 205, 2, 1, 247, 218, + 193, 154, 242, 205, 2, 1, 208, 158, 193, 154, 242, 205, 2, 1, 229, 83, + 193, 154, 242, 205, 2, 1, 228, 227, 193, 154, 242, 205, 2, 1, 228, 154, + 193, 154, 242, 205, 2, 1, 229, 242, 193, 154, 242, 205, 2, 1, 201, 121, + 193, 154, 242, 205, 2, 1, 202, 188, 193, 154, 242, 205, 2, 1, 195, 22, + 193, 154, 242, 205, 17, 191, 77, 193, 154, 242, 205, 17, 108, 193, 154, + 242, 205, 17, 109, 193, 154, 242, 205, 17, 139, 193, 154, 242, 205, 17, + 137, 193, 154, 242, 205, 17, 153, 193, 154, 242, 205, 17, 173, 193, 154, + 242, 205, 17, 181, 193, 154, 242, 205, 17, 176, 193, 154, 242, 205, 17, + 184, 193, 154, 242, 205, 31, 199, 90, 193, 154, 242, 205, 31, 197, 28, + 193, 154, 242, 205, 31, 198, 244, 193, 154, 242, 205, 31, 232, 97, 193, + 154, 242, 205, 31, 232, 230, 193, 154, 242, 205, 31, 202, 115, 193, 154, + 242, 205, 31, 203, 236, 193, 154, 242, 205, 31, 234, 110, 193, 154, 242, + 205, 31, 213, 156, 193, 154, 242, 205, 211, 102, 236, 164, 251, 158, 1, + 65, 236, 164, 251, 158, 1, 252, 154, 236, 164, 251, 158, 1, 70, 236, 164, + 251, 158, 1, 223, 170, 236, 164, 251, 158, 1, 69, 236, 164, 251, 158, 1, + 196, 26, 236, 164, 251, 158, 1, 73, 236, 164, 251, 158, 1, 74, 236, 164, + 251, 158, 1, 157, 236, 164, 251, 158, 1, 221, 190, 236, 164, 251, 158, 1, + 231, 203, 236, 164, 251, 158, 1, 231, 54, 236, 164, 251, 158, 1, 214, 54, + 236, 164, 251, 158, 1, 247, 112, 236, 164, 251, 158, 1, 246, 209, 236, + 164, 251, 158, 1, 223, 4, 236, 164, 251, 158, 1, 212, 88, 236, 164, 251, + 158, 1, 197, 128, 236, 164, 251, 158, 1, 237, 146, 236, 164, 251, 158, 1, + 237, 130, 236, 164, 251, 158, 1, 213, 66, 236, 164, 251, 158, 1, 199, + 247, 236, 164, 251, 158, 1, 199, 44, 236, 164, 251, 158, 1, 237, 241, + 236, 164, 251, 158, 1, 237, 23, 236, 164, 251, 158, 1, 180, 236, 164, + 251, 158, 1, 168, 236, 164, 251, 158, 1, 209, 219, 236, 164, 251, 158, 1, + 249, 103, 236, 164, 251, 158, 1, 248, 153, 236, 164, 251, 158, 1, 172, + 236, 164, 251, 158, 1, 169, 236, 164, 251, 158, 1, 191, 175, 236, 164, + 251, 158, 1, 166, 236, 164, 251, 158, 1, 171, 236, 164, 251, 158, 1, 195, + 185, 236, 164, 251, 158, 1, 203, 160, 236, 164, 251, 158, 1, 201, 170, + 236, 164, 251, 158, 1, 189, 236, 164, 251, 158, 1, 144, 236, 164, 251, + 158, 1, 219, 49, 236, 164, 251, 158, 1, 191, 123, 236, 164, 251, 158, 18, + 3, 252, 154, 236, 164, 251, 158, 18, 3, 70, 236, 164, 251, 158, 18, 3, + 223, 170, 236, 164, 251, 158, 18, 3, 69, 236, 164, 251, 158, 18, 3, 196, + 26, 236, 164, 251, 158, 18, 3, 73, 236, 164, 251, 158, 18, 3, 251, 184, + 236, 164, 251, 158, 18, 3, 74, 236, 164, 251, 158, 3, 251, 20, 236, 164, + 251, 158, 3, 247, 71, 236, 164, 251, 158, 3, 230, 39, 236, 164, 251, 158, + 195, 37, 236, 164, 251, 158, 208, 220, 214, 200, 57, 236, 164, 251, 158, + 216, 198, 169, 236, 164, 251, 158, 89, 166, 236, 164, 251, 158, 216, 198, + 166, 236, 164, 251, 158, 3, 212, 128, 236, 164, 251, 158, 54, 237, 193, + 236, 164, 251, 158, 231, 167, 232, 218, 236, 164, 251, 158, 234, 53, 80, + 199, 49, 77, 236, 164, 251, 158, 17, 191, 77, 236, 164, 251, 158, 17, + 108, 236, 164, 251, 158, 17, 109, 236, 164, 251, 158, 17, 139, 236, 164, + 251, 158, 17, 137, 236, 164, 251, 158, 17, 153, 236, 164, 251, 158, 17, + 173, 236, 164, 251, 158, 17, 181, 236, 164, 251, 158, 17, 176, 236, 164, + 251, 158, 17, 184, 214, 209, 1, 65, 214, 209, 1, 252, 154, 214, 209, 1, + 70, 214, 209, 1, 223, 170, 214, 209, 1, 69, 214, 209, 1, 196, 26, 214, + 209, 1, 121, 148, 214, 209, 1, 121, 206, 105, 214, 209, 1, 73, 214, 209, + 1, 251, 184, 214, 209, 1, 74, 214, 209, 1, 250, 113, 214, 209, 1, 157, + 214, 209, 1, 221, 190, 214, 209, 1, 231, 203, 214, 209, 1, 231, 54, 214, + 209, 1, 214, 54, 214, 209, 1, 247, 112, 214, 209, 1, 246, 209, 214, 209, + 1, 223, 4, 214, 209, 1, 222, 225, 214, 209, 1, 212, 88, 214, 209, 1, 197, + 128, 214, 209, 1, 197, 116, 214, 209, 1, 237, 146, 214, 209, 1, 237, 130, + 214, 209, 1, 213, 66, 214, 209, 1, 199, 247, 214, 209, 1, 199, 44, 214, + 209, 1, 237, 241, 214, 209, 1, 237, 23, 214, 209, 1, 180, 214, 209, 1, + 168, 214, 209, 1, 209, 219, 214, 209, 1, 249, 103, 214, 209, 1, 248, 153, + 214, 209, 1, 172, 214, 209, 1, 169, 214, 209, 1, 166, 214, 209, 1, 171, + 214, 209, 1, 195, 185, 214, 209, 1, 203, 160, 214, 209, 1, 201, 170, 214, + 209, 1, 189, 214, 209, 1, 144, 214, 209, 1, 219, 49, 214, 209, 1, 206, + 104, 214, 209, 18, 3, 252, 154, 214, 209, 18, 3, 70, 214, 209, 18, 3, + 223, 170, 214, 209, 18, 3, 69, 214, 209, 18, 3, 196, 26, 214, 209, 18, 3, + 121, 148, 214, 209, 18, 3, 121, 206, 105, 214, 209, 18, 3, 73, 214, 209, + 18, 3, 251, 184, 214, 209, 18, 3, 74, 214, 209, 18, 3, 250, 113, 214, + 209, 3, 251, 20, 214, 209, 3, 195, 32, 214, 209, 3, 195, 37, 214, 209, 3, + 250, 95, 214, 209, 3, 202, 205, 214, 209, 229, 195, 214, 209, 18, 3, 208, + 200, 73, 191, 106, 51, 1, 65, 191, 106, 51, 18, 3, 70, 191, 106, 51, 18, + 3, 196, 148, 191, 106, 51, 18, 3, 69, 191, 106, 51, 18, 3, 73, 191, 106, + 51, 18, 3, 211, 139, 191, 106, 51, 18, 3, 74, 191, 106, 51, 18, 3, 251, + 184, 191, 106, 51, 18, 3, 250, 113, 191, 106, 51, 18, 3, 207, 13, 70, + 191, 106, 51, 18, 219, 174, 77, 191, 106, 51, 1, 157, 191, 106, 51, 1, + 221, 190, 191, 106, 51, 1, 231, 203, 191, 106, 51, 1, 231, 54, 191, 106, + 51, 1, 214, 54, 191, 106, 51, 1, 247, 112, 191, 106, 51, 1, 246, 209, + 191, 106, 51, 1, 223, 4, 191, 106, 51, 1, 212, 88, 191, 106, 51, 1, 197, + 128, 191, 106, 51, 1, 197, 116, 191, 106, 51, 1, 237, 146, 191, 106, 51, + 1, 237, 130, 191, 106, 51, 1, 213, 66, 191, 106, 51, 1, 199, 247, 191, + 106, 51, 1, 199, 44, 191, 106, 51, 1, 237, 241, 191, 106, 51, 1, 237, 23, + 191, 106, 51, 1, 180, 191, 106, 51, 1, 168, 191, 106, 51, 1, 209, 219, + 191, 106, 51, 1, 249, 103, 191, 106, 51, 1, 248, 153, 191, 106, 51, 1, + 172, 191, 106, 51, 1, 197, 164, 191, 106, 51, 1, 197, 153, 191, 106, 51, + 1, 234, 247, 191, 106, 51, 1, 234, 241, 191, 106, 51, 1, 191, 71, 191, + 106, 51, 1, 191, 123, 191, 106, 51, 1, 255, 162, 191, 106, 51, 1, 169, + 191, 106, 51, 1, 166, 191, 106, 51, 1, 171, 191, 106, 51, 1, 195, 185, + 191, 106, 51, 1, 203, 160, 191, 106, 51, 1, 201, 170, 191, 106, 51, 1, + 189, 191, 106, 51, 1, 144, 191, 106, 51, 1, 220, 222, 191, 106, 51, 52, + 119, 77, 191, 106, 51, 3, 195, 37, 191, 106, 51, 3, 247, 71, 191, 106, + 51, 3, 247, 72, 4, 211, 32, 191, 106, 51, 3, 247, 74, 4, 211, 32, 191, + 106, 51, 3, 251, 20, 191, 106, 51, 3, 195, 32, 191, 106, 51, 242, 153, 1, + 166, 191, 106, 51, 242, 154, 1, 169, 191, 106, 51, 242, 154, 1, 166, 191, + 106, 51, 242, 154, 1, 171, 191, 106, 51, 242, 154, 1, 195, 185, 191, 106, + 51, 89, 229, 204, 77, 191, 106, 51, 242, 167, 229, 204, 77, 191, 106, 51, + 87, 197, 148, 191, 106, 51, 87, 203, 152, 191, 106, 51, 87, 54, 203, 152, + 191, 106, 51, 87, 177, 197, 148, 191, 106, 51, 89, 235, 86, 229, 204, 77, + 191, 106, 51, 242, 167, 235, 86, 229, 204, 77, 191, 106, 51, 200, 233, + 201, 246, 1, 65, 201, 246, 18, 3, 70, 201, 246, 18, 3, 196, 148, 201, + 246, 18, 3, 69, 201, 246, 18, 3, 73, 201, 246, 18, 3, 74, 201, 246, 18, + 3, 211, 139, 201, 246, 18, 3, 251, 184, 201, 246, 18, 3, 250, 113, 201, + 246, 18, 3, 121, 148, 201, 246, 18, 3, 121, 170, 201, 246, 18, 219, 174, + 77, 201, 246, 1, 157, 201, 246, 1, 221, 190, 201, 246, 1, 231, 203, 201, + 246, 1, 231, 54, 201, 246, 1, 214, 54, 201, 246, 1, 247, 112, 201, 246, + 1, 246, 209, 201, 246, 1, 223, 4, 201, 246, 1, 222, 225, 201, 246, 1, + 212, 88, 201, 246, 1, 197, 128, 201, 246, 1, 197, 116, 201, 246, 1, 237, + 146, 201, 246, 1, 237, 130, 201, 246, 1, 213, 66, 201, 246, 1, 199, 247, + 201, 246, 1, 199, 44, 201, 246, 1, 237, 241, 201, 246, 1, 237, 23, 201, + 246, 1, 180, 201, 246, 1, 168, 201, 246, 1, 209, 219, 201, 246, 1, 249, + 103, 201, 246, 1, 248, 153, 201, 246, 1, 172, 201, 246, 1, 197, 164, 201, + 246, 1, 197, 153, 201, 246, 1, 234, 247, 201, 246, 1, 191, 71, 201, 246, + 1, 191, 123, 201, 246, 1, 255, 162, 201, 246, 1, 169, 201, 246, 1, 166, + 201, 246, 1, 171, 201, 246, 1, 195, 185, 201, 246, 1, 203, 160, 201, 246, + 1, 201, 170, 201, 246, 1, 189, 201, 246, 1, 144, 201, 246, 1, 220, 222, + 201, 246, 3, 222, 210, 201, 246, 3, 196, 71, 201, 246, 242, 153, 1, 166, + 201, 246, 242, 153, 1, 171, 201, 246, 242, 153, 1, 203, 160, 201, 246, + 242, 153, 1, 189, 201, 246, 52, 119, 3, 232, 14, 201, 246, 52, 119, 3, + 222, 125, 201, 246, 52, 119, 3, 214, 56, 201, 246, 52, 119, 3, 238, 80, + 201, 246, 52, 119, 3, 215, 47, 201, 246, 52, 119, 3, 250, 70, 201, 246, + 52, 119, 3, 218, 147, 201, 246, 52, 119, 3, 148, 201, 246, 52, 119, 3, + 170, 201, 246, 52, 119, 3, 203, 162, 201, 246, 52, 119, 3, 206, 3, 201, + 246, 52, 119, 3, 255, 162, 201, 246, 3, 251, 20, 201, 246, 3, 195, 32, + 201, 246, 231, 116, 77, 201, 246, 200, 233, 201, 246, 87, 197, 148, 201, + 246, 87, 203, 152, 201, 246, 87, 54, 203, 152, 201, 246, 87, 209, 71, + 201, 246, 229, 204, 87, 4, 215, 189, 24, 200, 194, 24, 197, 221, 232, + 170, 201, 246, 229, 204, 87, 4, 215, 189, 24, 200, 194, 24, 232, 170, + 201, 246, 229, 204, 87, 4, 215, 189, 24, 200, 193, 201, 246, 199, 76, + 217, 36, 201, 246, 199, 76, 217, 35, 21, 22, 214, 193, 229, 126, 21, 22, + 214, 193, 229, 98, 21, 22, 214, 193, 228, 247, 21, 22, 214, 193, 228, + 220, 21, 22, 214, 193, 144, 21, 22, 214, 193, 230, 58, 21, 22, 214, 193, + 203, 10, 21, 22, 214, 193, 203, 9, 21, 22, 214, 193, 203, 6, 21, 22, 214, + 193, 203, 5, 21, 22, 214, 193, 203, 12, 21, 22, 214, 193, 203, 11, 21, + 22, 201, 232, 21, 22, 201, 219, 21, 22, 201, 202, 21, 22, 201, 244, 210, + 71, 242, 223, 229, 226, 1, 168, 210, 71, 242, 223, 229, 226, 1, 157, 210, + 71, 242, 223, 229, 226, 1, 171, 210, 71, 242, 223, 229, 226, 1, 172, 210, + 71, 242, 223, 229, 226, 1, 237, 241, 210, 71, 242, 223, 229, 226, 1, 191, + 123, 210, 71, 242, 223, 229, 226, 1, 195, 185, 210, 71, 242, 223, 229, + 226, 1, 214, 54, 210, 71, 242, 223, 229, 226, 1, 144, 210, 71, 242, 223, + 229, 226, 1, 231, 203, 210, 71, 242, 223, 229, 226, 1, 221, 190, 210, 71, + 242, 223, 229, 226, 1, 189, 210, 71, 242, 223, 229, 226, 1, 249, 103, + 210, 71, 242, 223, 229, 226, 1, 247, 112, 210, 71, 242, 223, 229, 226, 1, + 199, 247, 210, 71, 242, 223, 229, 226, 1, 199, 44, 210, 71, 242, 223, + 229, 226, 1, 180, 210, 71, 242, 223, 229, 226, 1, 209, 219, 210, 71, 242, + 223, 229, 226, 1, 166, 210, 71, 242, 223, 229, 226, 1, 233, 68, 210, 71, + 242, 223, 229, 226, 1, 246, 209, 210, 71, 242, 223, 229, 226, 1, 65, 210, + 71, 242, 223, 229, 226, 1, 73, 210, 71, 242, 223, 229, 226, 1, 70, 210, + 71, 242, 223, 229, 226, 1, 74, 210, 71, 242, 223, 229, 226, 1, 69, 210, + 71, 242, 223, 229, 226, 1, 196, 164, 210, 71, 242, 223, 229, 226, 1, 228, + 5, 210, 71, 242, 223, 229, 226, 1, 52, 210, 226, 210, 71, 242, 223, 229, + 226, 1, 52, 222, 125, 210, 71, 242, 223, 229, 226, 1, 52, 200, 39, 210, + 71, 242, 223, 229, 226, 1, 52, 218, 147, 210, 71, 242, 223, 229, 226, 1, + 52, 215, 47, 210, 71, 242, 223, 229, 226, 1, 52, 170, 210, 71, 242, 223, + 229, 226, 1, 52, 193, 221, 210, 71, 242, 223, 229, 226, 1, 52, 214, 56, + 210, 71, 242, 223, 229, 226, 1, 52, 192, 159, 210, 71, 242, 223, 229, + 226, 206, 175, 163, 218, 251, 210, 71, 242, 223, 229, 226, 206, 175, 198, + 74, 210, 71, 242, 223, 229, 226, 205, 133, 230, 231, 201, 58, 210, 71, + 242, 223, 229, 226, 206, 175, 163, 177, 232, 214, 210, 71, 242, 223, 229, + 226, 206, 175, 163, 232, 214, 210, 71, 242, 223, 229, 226, 205, 133, 230, + 231, 201, 59, 232, 214, 210, 71, 242, 223, 229, 226, 205, 133, 163, 218, + 251, 210, 71, 242, 223, 229, 226, 205, 133, 198, 74, 210, 71, 242, 223, + 229, 226, 205, 133, 163, 177, 232, 214, 210, 71, 242, 223, 229, 226, 205, + 133, 163, 232, 214, 210, 71, 242, 223, 229, 226, 216, 67, 198, 74, 210, + 71, 242, 223, 229, 226, 230, 231, 201, 59, 195, 164, 210, 71, 242, 223, + 229, 226, 216, 67, 163, 177, 232, 214, 210, 71, 242, 223, 229, 226, 216, + 67, 163, 232, 214, 210, 71, 242, 223, 229, 226, 218, 217, 163, 218, 251, + 210, 71, 242, 223, 229, 226, 218, 217, 198, 74, 210, 71, 242, 223, 229, + 226, 230, 231, 201, 58, 210, 71, 242, 223, 229, 226, 218, 217, 163, 177, + 232, 214, 210, 71, 242, 223, 229, 226, 218, 217, 163, 232, 214, 210, 71, + 242, 223, 229, 226, 230, 231, 201, 59, 232, 214, 248, 151, 1, 65, 248, + 151, 1, 252, 154, 248, 151, 1, 70, 248, 151, 1, 223, 170, 248, 151, 1, + 69, 248, 151, 1, 196, 26, 248, 151, 1, 121, 148, 248, 151, 1, 121, 206, + 105, 248, 151, 1, 121, 170, 248, 151, 1, 73, 248, 151, 1, 251, 184, 248, + 151, 1, 74, 248, 151, 1, 250, 113, 248, 151, 1, 157, 248, 151, 1, 221, + 190, 248, 151, 1, 231, 203, 248, 151, 1, 231, 54, 248, 151, 1, 214, 54, + 248, 151, 1, 247, 112, 248, 151, 1, 246, 209, 248, 151, 1, 223, 4, 248, + 151, 1, 222, 225, 248, 151, 1, 212, 88, 248, 151, 1, 197, 128, 248, 151, + 1, 197, 116, 248, 151, 1, 237, 146, 248, 151, 1, 237, 130, 248, 151, 1, + 213, 66, 248, 151, 1, 199, 247, 248, 151, 1, 199, 44, 248, 151, 1, 237, + 241, 248, 151, 1, 237, 23, 248, 151, 1, 180, 248, 151, 1, 168, 248, 151, + 1, 209, 219, 248, 151, 1, 249, 103, 248, 151, 1, 248, 153, 248, 151, 1, + 172, 248, 151, 1, 169, 248, 151, 1, 166, 248, 151, 1, 171, 248, 151, 1, + 195, 185, 248, 151, 1, 203, 160, 248, 151, 1, 201, 170, 248, 151, 1, 189, + 248, 151, 1, 144, 248, 151, 18, 3, 252, 154, 248, 151, 18, 3, 70, 248, + 151, 18, 3, 223, 170, 248, 151, 18, 3, 69, 248, 151, 18, 3, 196, 26, 248, + 151, 18, 3, 121, 148, 248, 151, 18, 3, 121, 206, 105, 248, 151, 18, 3, + 121, 170, 248, 151, 18, 3, 73, 248, 151, 18, 3, 251, 184, 248, 151, 18, + 3, 74, 248, 151, 18, 3, 250, 113, 248, 151, 3, 247, 71, 248, 151, 3, 251, + 20, 248, 151, 3, 195, 32, 248, 151, 3, 195, 37, 248, 151, 3, 250, 95, + 248, 151, 237, 193, 248, 151, 54, 237, 193, 248, 151, 193, 23, 204, 5, + 248, 151, 231, 167, 232, 217, 248, 151, 231, 167, 232, 216, 248, 151, 17, + 191, 77, 248, 151, 17, 108, 248, 151, 17, 109, 248, 151, 17, 139, 248, + 151, 17, 137, 248, 151, 17, 153, 248, 151, 17, 173, 248, 151, 17, 181, + 248, 151, 17, 176, 248, 151, 17, 184, 248, 151, 31, 108, 248, 151, 31, + 109, 248, 151, 31, 139, 248, 151, 31, 137, 248, 151, 31, 153, 248, 151, + 31, 173, 248, 151, 31, 181, 248, 151, 31, 176, 248, 151, 31, 184, 248, + 151, 31, 199, 90, 248, 151, 31, 197, 28, 248, 151, 31, 198, 244, 248, + 151, 31, 232, 97, 248, 151, 31, 232, 230, 248, 151, 31, 202, 115, 248, + 151, 31, 203, 236, 248, 151, 31, 234, 110, 248, 151, 31, 213, 156, 248, + 151, 228, 108, 196, 87, 77, 217, 38, 229, 204, 77, 217, 38, 87, 203, 152, + 217, 38, 1, 157, 217, 38, 1, 221, 190, 217, 38, 1, 231, 203, 217, 38, 1, + 214, 54, 217, 38, 1, 247, 112, 217, 38, 1, 246, 209, 217, 38, 1, 223, 4, + 217, 38, 1, 212, 88, 217, 38, 1, 199, 247, 217, 38, 1, 199, 44, 217, 38, + 1, 237, 241, 217, 38, 1, 180, 217, 38, 1, 168, 217, 38, 1, 209, 219, 217, + 38, 1, 249, 103, 217, 38, 1, 172, 217, 38, 1, 197, 164, 217, 38, 1, 197, + 153, 217, 38, 1, 234, 247, 217, 38, 1, 193, 187, 217, 38, 1, 191, 71, + 217, 38, 1, 191, 123, 217, 38, 1, 255, 162, 217, 38, 1, 169, 217, 38, 1, + 166, 217, 38, 1, 171, 217, 38, 1, 203, 160, 217, 38, 1, 189, 217, 38, 1, + 144, 217, 38, 1, 65, 217, 38, 200, 234, 1, 157, 217, 38, 200, 234, 1, + 221, 190, 217, 38, 200, 234, 1, 231, 203, 217, 38, 200, 234, 1, 214, 54, + 217, 38, 200, 234, 1, 247, 112, 217, 38, 200, 234, 1, 246, 209, 217, 38, + 200, 234, 1, 223, 4, 217, 38, 200, 234, 1, 212, 88, 217, 38, 200, 234, 1, + 199, 247, 217, 38, 200, 234, 1, 199, 44, 217, 38, 200, 234, 1, 237, 241, + 217, 38, 200, 234, 1, 180, 217, 38, 200, 234, 1, 168, 217, 38, 200, 234, + 1, 209, 219, 217, 38, 200, 234, 1, 249, 103, 217, 38, 200, 234, 1, 172, + 217, 38, 200, 234, 1, 197, 164, 217, 38, 200, 234, 1, 197, 153, 217, 38, + 200, 234, 1, 234, 247, 217, 38, 200, 234, 1, 193, 187, 217, 38, 200, 234, + 1, 191, 71, 217, 38, 200, 234, 1, 191, 123, 217, 38, 200, 234, 1, 169, + 217, 38, 200, 234, 1, 166, 217, 38, 200, 234, 1, 171, 217, 38, 200, 234, + 1, 203, 160, 217, 38, 200, 234, 1, 189, 217, 38, 200, 234, 1, 144, 217, + 38, 200, 234, 1, 65, 217, 38, 18, 3, 252, 154, 217, 38, 18, 3, 70, 217, + 38, 18, 3, 69, 217, 38, 18, 3, 73, 217, 38, 18, 3, 74, 217, 38, 3, 251, + 20, 217, 38, 3, 247, 71, 217, 22, 129, 1, 65, 217, 22, 129, 1, 252, 154, + 217, 22, 129, 1, 70, 217, 22, 129, 1, 223, 170, 217, 22, 129, 1, 69, 217, + 22, 129, 1, 196, 26, 217, 22, 129, 1, 73, 217, 22, 129, 1, 251, 184, 217, + 22, 129, 1, 74, 217, 22, 129, 1, 250, 113, 217, 22, 129, 1, 157, 217, 22, + 129, 1, 221, 190, 217, 22, 129, 1, 231, 203, 217, 22, 129, 1, 231, 54, + 217, 22, 129, 1, 214, 54, 217, 22, 129, 1, 247, 112, 217, 22, 129, 1, + 246, 209, 217, 22, 129, 1, 223, 4, 217, 22, 129, 1, 222, 225, 217, 22, + 129, 1, 212, 88, 217, 22, 129, 1, 197, 128, 217, 22, 129, 1, 197, 116, + 217, 22, 129, 1, 237, 146, 217, 22, 129, 1, 237, 130, 217, 22, 129, 1, + 213, 66, 217, 22, 129, 1, 199, 247, 217, 22, 129, 1, 199, 44, 217, 22, + 129, 1, 237, 241, 217, 22, 129, 1, 237, 23, 217, 22, 129, 1, 180, 217, + 22, 129, 1, 168, 217, 22, 129, 1, 209, 219, 217, 22, 129, 1, 249, 103, + 217, 22, 129, 1, 248, 153, 217, 22, 129, 1, 172, 217, 22, 129, 1, 169, + 217, 22, 129, 1, 166, 217, 22, 129, 1, 171, 217, 22, 129, 1, 195, 185, + 217, 22, 129, 1, 203, 160, 217, 22, 129, 1, 201, 170, 217, 22, 129, 1, + 189, 217, 22, 129, 1, 144, 217, 22, 129, 1, 219, 49, 217, 22, 129, 1, + 220, 222, 217, 22, 129, 1, 222, 175, 217, 22, 129, 1, 198, 22, 217, 22, + 129, 18, 3, 252, 154, 217, 22, 129, 18, 3, 70, 217, 22, 129, 18, 3, 223, + 170, 217, 22, 129, 18, 3, 69, 217, 22, 129, 18, 3, 196, 26, 217, 22, 129, + 18, 3, 121, 148, 217, 22, 129, 18, 3, 73, 217, 22, 129, 18, 3, 251, 184, + 217, 22, 129, 18, 3, 74, 217, 22, 129, 18, 3, 250, 113, 217, 22, 129, 3, + 251, 20, 217, 22, 129, 3, 195, 32, 217, 22, 129, 3, 212, 128, 217, 22, + 129, 3, 247, 73, 217, 22, 129, 3, 230, 39, 217, 22, 129, 195, 37, 217, + 22, 129, 207, 39, 217, 22, 129, 207, 176, 217, 22, 129, 17, 191, 77, 217, + 22, 129, 17, 108, 217, 22, 129, 17, 109, 217, 22, 129, 17, 139, 217, 22, + 129, 17, 137, 217, 22, 129, 17, 153, 217, 22, 129, 17, 173, 217, 22, 129, + 17, 181, 217, 22, 129, 17, 176, 217, 22, 129, 17, 184, 230, 124, 129, 1, + 65, 230, 124, 129, 1, 252, 154, 230, 124, 129, 1, 70, 230, 124, 129, 1, + 223, 170, 230, 124, 129, 1, 69, 230, 124, 129, 1, 196, 26, 230, 124, 129, + 1, 234, 145, 230, 124, 129, 1, 251, 184, 230, 124, 129, 1, 211, 76, 230, + 124, 129, 1, 250, 113, 230, 124, 129, 1, 169, 230, 124, 129, 1, 195, 185, + 230, 124, 129, 1, 249, 103, 230, 124, 129, 1, 248, 153, 230, 124, 129, 1, + 172, 230, 124, 129, 1, 157, 230, 124, 129, 1, 221, 190, 230, 124, 129, 1, + 199, 247, 230, 124, 129, 1, 199, 44, 230, 124, 129, 1, 171, 230, 124, + 129, 1, 231, 203, 230, 124, 129, 1, 231, 54, 230, 124, 129, 1, 237, 241, + 230, 124, 129, 1, 237, 23, 230, 124, 129, 1, 180, 230, 124, 129, 1, 247, + 112, 230, 124, 129, 1, 246, 209, 230, 124, 129, 1, 197, 128, 230, 124, + 129, 1, 197, 116, 230, 124, 129, 1, 219, 49, 230, 124, 129, 1, 223, 4, + 230, 124, 129, 1, 222, 225, 230, 124, 129, 1, 237, 146, 230, 124, 129, 1, + 237, 130, 230, 124, 129, 1, 214, 54, 230, 124, 129, 1, 168, 230, 124, + 129, 1, 209, 219, 230, 124, 129, 1, 144, 230, 124, 129, 1, 166, 230, 124, + 129, 1, 189, 230, 124, 129, 18, 3, 252, 154, 230, 124, 129, 18, 3, 70, + 230, 124, 129, 18, 3, 223, 170, 230, 124, 129, 18, 3, 69, 230, 124, 129, + 18, 3, 196, 26, 230, 124, 129, 18, 3, 234, 145, 230, 124, 129, 18, 3, + 251, 184, 230, 124, 129, 18, 3, 211, 76, 230, 124, 129, 18, 3, 250, 113, + 230, 124, 129, 3, 251, 20, 230, 124, 129, 3, 195, 32, 230, 124, 129, 195, + 37, 230, 124, 129, 211, 102, 230, 124, 129, 17, 191, 77, 230, 124, 129, + 17, 108, 230, 124, 129, 17, 109, 230, 124, 129, 17, 139, 230, 124, 129, + 17, 137, 230, 124, 129, 17, 153, 230, 124, 129, 17, 173, 230, 124, 129, + 17, 181, 230, 124, 129, 17, 176, 230, 124, 129, 17, 184, 217, 81, 1, 157, + 217, 81, 1, 231, 203, 217, 81, 1, 214, 54, 217, 81, 1, 168, 217, 81, 1, + 249, 103, 217, 81, 1, 172, 217, 81, 1, 199, 247, 217, 81, 1, 237, 241, + 217, 81, 1, 180, 217, 81, 1, 247, 112, 217, 81, 1, 223, 4, 217, 81, 1, + 212, 88, 217, 81, 1, 169, 217, 81, 1, 166, 217, 81, 1, 171, 217, 81, 1, + 195, 185, 217, 81, 1, 189, 217, 81, 1, 65, 217, 81, 251, 67, 217, 81, 18, + 3, 70, 217, 81, 18, 3, 69, 217, 81, 18, 3, 73, 217, 81, 18, 3, 74, 217, + 81, 210, 84, 217, 81, 234, 53, 80, 205, 48, 219, 64, 1, 192, 35, 44, 232, + 80, 91, 198, 217, 44, 232, 80, 91, 211, 89, 44, 232, 80, 91, 234, 113, + 44, 232, 80, 91, 202, 113, 44, 232, 80, 91, 232, 100, 44, 232, 80, 91, + 198, 240, 44, 232, 80, 115, 234, 112, 44, 232, 80, 115, 202, 112, 44, + 232, 80, 91, 197, 31, 44, 232, 80, 91, 202, 122, 44, 232, 80, 91, 202, + 121, 44, 232, 80, 91, 199, 81, 44, 232, 80, 91, 234, 116, 44, 232, 80, + 115, 197, 30, 44, 232, 80, 115, 202, 120, 44, 232, 80, 91, 232, 233, 44, + 232, 80, 91, 208, 17, 44, 232, 80, 91, 230, 36, 44, 232, 80, 91, 230, 35, + 44, 232, 80, 115, 208, 15, 44, 232, 80, 235, 77, 233, 52, 221, 120, 44, + 3, 214, 90, 44, 3, 246, 214, 44, 3, 252, 105, 44, 3, 196, 11, 44, 3, 215, + 76, 44, 3, 220, 170, 44, 3, 210, 75, 44, 3, 215, 120, 44, 3, 222, 97, 44, + 3, 210, 154, 44, 3, 209, 32, 44, 3, 195, 170, 44, 3, 210, 205, 44, 3, + 220, 159, 44, 3, 195, 140, 44, 193, 99, 238, 140, 57, 44, 235, 48, 238, + 140, 57, 44, 219, 255, 57, 44, 205, 154, 210, 157, 57, 44, 198, 17, 238, + 183, 57, 44, 198, 17, 31, 57, 44, 238, 122, 57, 44, 24, 211, 143, 57, 44, + 201, 222, 57, 44, 198, 34, 57, 44, 223, 135, 209, 15, 57, 44, 201, 91, + 232, 60, 57, 44, 3, 215, 80, 44, 3, 195, 178, 44, 208, 145, 234, 53, 80, + 199, 48, 10, 3, 65, 10, 3, 41, 25, 65, 10, 3, 41, 25, 249, 85, 10, 3, 41, + 25, 231, 172, 199, 79, 10, 3, 41, 25, 144, 10, 3, 41, 25, 223, 172, 10, + 3, 41, 25, 220, 79, 230, 122, 10, 3, 41, 25, 215, 87, 10, 3, 41, 25, 205, + 180, 10, 3, 254, 163, 10, 3, 252, 103, 10, 3, 252, 104, 25, 250, 157, 10, + 3, 252, 104, 25, 235, 30, 230, 122, 10, 3, 252, 104, 25, 231, 185, 10, 3, + 252, 104, 25, 231, 172, 199, 79, 10, 3, 252, 104, 25, 144, 10, 3, 252, + 104, 25, 223, 173, 230, 122, 10, 3, 252, 104, 25, 223, 144, 10, 3, 252, + 104, 25, 220, 80, 10, 3, 252, 104, 25, 203, 92, 10, 3, 252, 104, 25, 126, + 107, 126, 107, 69, 10, 3, 252, 104, 230, 122, 10, 3, 252, 20, 10, 3, 252, + 21, 25, 249, 64, 10, 3, 252, 21, 25, 231, 172, 199, 79, 10, 3, 252, 21, + 25, 216, 214, 107, 234, 61, 10, 3, 252, 21, 25, 203, 158, 10, 3, 252, 21, + 25, 199, 204, 10, 3, 251, 246, 10, 3, 251, 165, 10, 3, 251, 166, 25, 233, + 242, 10, 3, 251, 166, 25, 203, 54, 107, 230, 243, 10, 3, 251, 156, 10, 3, + 251, 157, 25, 251, 156, 10, 3, 251, 157, 25, 236, 208, 10, 3, 251, 157, + 25, 230, 243, 10, 3, 251, 157, 25, 144, 10, 3, 251, 157, 25, 222, 84, 10, + 3, 251, 157, 25, 221, 142, 10, 3, 251, 157, 25, 203, 108, 10, 3, 251, + 157, 25, 196, 34, 10, 3, 251, 152, 10, 3, 251, 139, 10, 3, 251, 94, 10, + 3, 251, 95, 25, 203, 108, 10, 3, 251, 81, 10, 3, 251, 82, 138, 251, 81, + 10, 3, 251, 82, 115, 198, 139, 10, 3, 251, 82, 107, 214, 227, 211, 52, + 251, 82, 107, 214, 226, 10, 3, 251, 82, 107, 214, 227, 201, 184, 10, 3, + 251, 40, 10, 3, 251, 10, 10, 3, 250, 232, 10, 3, 250, 233, 25, 220, 173, + 10, 3, 250, 204, 10, 3, 250, 165, 10, 3, 250, 159, 10, 3, 250, 160, 191, + 26, 199, 79, 10, 3, 250, 160, 222, 89, 199, 79, 10, 3, 250, 160, 138, + 250, 160, 197, 79, 138, 197, 79, 197, 79, 138, 197, 79, 210, 127, 10, 3, + 250, 160, 138, 250, 160, 138, 250, 159, 10, 3, 250, 160, 138, 250, 160, + 138, 250, 160, 238, 163, 250, 160, 138, 250, 160, 138, 250, 159, 10, 3, + 250, 157, 10, 3, 250, 153, 10, 3, 249, 103, 10, 3, 249, 85, 10, 3, 249, + 79, 10, 3, 249, 71, 10, 3, 249, 65, 10, 3, 249, 66, 138, 249, 65, 10, 3, + 249, 64, 10, 3, 164, 10, 3, 249, 37, 10, 3, 248, 140, 10, 3, 248, 141, + 25, 65, 10, 3, 248, 141, 25, 231, 163, 10, 3, 248, 141, 25, 223, 173, + 230, 122, 10, 3, 247, 218, 10, 3, 247, 219, 138, 247, 219, 252, 103, 10, + 3, 247, 219, 138, 247, 219, 196, 109, 10, 3, 247, 219, 238, 163, 247, + 218, 10, 3, 247, 194, 10, 3, 247, 195, 138, 247, 194, 10, 3, 247, 182, + 10, 3, 247, 181, 10, 3, 237, 241, 10, 3, 237, 231, 10, 3, 237, 232, 221, + 101, 25, 41, 107, 217, 20, 10, 3, 237, 232, 221, 101, 25, 251, 94, 10, 3, + 237, 232, 221, 101, 25, 249, 64, 10, 3, 237, 232, 221, 101, 25, 248, 140, + 10, 3, 237, 232, 221, 101, 25, 231, 203, 10, 3, 237, 232, 221, 101, 25, + 231, 204, 107, 217, 20, 10, 3, 237, 232, 221, 101, 25, 231, 16, 10, 3, + 237, 232, 221, 101, 25, 230, 252, 10, 3, 237, 232, 221, 101, 25, 230, + 135, 10, 3, 237, 232, 221, 101, 25, 144, 10, 3, 237, 232, 221, 101, 25, + 223, 49, 10, 3, 237, 232, 221, 101, 25, 223, 50, 107, 218, 203, 10, 3, + 237, 232, 221, 101, 25, 222, 69, 10, 3, 237, 232, 221, 101, 25, 171, 10, + 3, 237, 232, 221, 101, 25, 218, 203, 10, 3, 237, 232, 221, 101, 25, 218, + 204, 107, 217, 19, 10, 3, 237, 232, 221, 101, 25, 218, 186, 10, 3, 237, + 232, 221, 101, 25, 214, 107, 10, 3, 237, 232, 221, 101, 25, 210, 128, + 107, 210, 127, 10, 3, 237, 232, 221, 101, 25, 202, 217, 10, 3, 237, 232, + 221, 101, 25, 199, 204, 10, 3, 237, 232, 221, 101, 25, 196, 166, 107, + 230, 252, 10, 3, 237, 232, 221, 101, 25, 196, 34, 10, 3, 237, 203, 10, 3, + 237, 180, 10, 3, 237, 179, 10, 3, 237, 178, 10, 3, 236, 255, 10, 3, 236, + 237, 10, 3, 236, 210, 10, 3, 236, 211, 25, 203, 108, 10, 3, 236, 208, 10, + 3, 236, 198, 10, 3, 236, 199, 222, 29, 126, 230, 123, 236, 177, 10, 3, + 236, 177, 10, 3, 235, 45, 10, 3, 235, 46, 138, 235, 45, 10, 3, 235, 46, + 230, 122, 10, 3, 235, 46, 203, 89, 10, 3, 235, 43, 10, 3, 235, 44, 25, + 233, 223, 10, 3, 235, 42, 10, 3, 235, 38, 10, 3, 235, 37, 10, 3, 235, 36, + 10, 3, 235, 31, 10, 3, 235, 29, 10, 3, 235, 30, 230, 122, 10, 3, 235, 30, + 230, 123, 230, 122, 10, 3, 235, 28, 10, 3, 235, 21, 10, 3, 73, 10, 3, + 234, 227, 25, 210, 127, 10, 3, 234, 227, 138, 234, 227, 212, 118, 138, + 212, 117, 10, 3, 234, 174, 10, 3, 234, 175, 25, 41, 107, 230, 72, 107, + 237, 241, 10, 3, 234, 175, 25, 231, 163, 10, 3, 234, 175, 25, 216, 81, + 10, 3, 234, 175, 25, 205, 164, 10, 3, 234, 175, 25, 203, 108, 10, 3, 234, + 175, 25, 69, 10, 3, 234, 147, 10, 3, 234, 134, 10, 3, 234, 97, 10, 3, + 234, 61, 10, 3, 234, 62, 25, 231, 171, 10, 3, 234, 62, 25, 231, 172, 199, + 79, 10, 3, 234, 62, 25, 216, 213, 10, 3, 234, 62, 238, 163, 234, 61, 10, + 3, 234, 62, 211, 52, 234, 61, 10, 3, 234, 62, 201, 184, 10, 3, 233, 245, + 10, 3, 233, 242, 10, 3, 233, 223, 10, 3, 233, 139, 10, 3, 233, 140, 25, + 65, 10, 3, 233, 140, 25, 41, 107, 220, 13, 10, 3, 233, 140, 25, 41, 107, + 220, 14, 25, 220, 13, 10, 3, 233, 140, 25, 251, 81, 10, 3, 233, 140, 25, + 249, 85, 10, 3, 233, 140, 25, 235, 30, 230, 122, 10, 3, 233, 140, 25, + 235, 30, 230, 123, 230, 122, 10, 3, 233, 140, 25, 144, 10, 3, 233, 140, + 25, 230, 72, 230, 122, 10, 3, 233, 140, 25, 223, 173, 230, 122, 10, 3, + 233, 140, 25, 222, 28, 10, 3, 233, 140, 25, 222, 29, 201, 184, 10, 3, + 233, 140, 25, 220, 199, 10, 3, 233, 140, 25, 171, 10, 3, 233, 140, 25, + 220, 14, 25, 220, 13, 10, 3, 233, 140, 25, 219, 122, 10, 3, 233, 140, 25, + 218, 203, 10, 3, 233, 140, 25, 196, 165, 10, 3, 233, 140, 25, 196, 154, + 10, 3, 231, 203, 10, 3, 231, 204, 230, 122, 10, 3, 231, 201, 10, 3, 231, + 202, 25, 41, 107, 237, 242, 107, 144, 10, 3, 231, 202, 25, 41, 107, 144, + 10, 3, 231, 202, 25, 41, 107, 223, 172, 10, 3, 231, 202, 25, 252, 21, + 199, 80, 107, 199, 231, 10, 3, 231, 202, 25, 251, 81, 10, 3, 231, 202, + 25, 250, 159, 10, 3, 231, 202, 25, 250, 158, 107, 231, 185, 10, 3, 231, + 202, 25, 249, 85, 10, 3, 231, 202, 25, 249, 38, 107, 166, 10, 3, 231, + 202, 25, 247, 182, 10, 3, 231, 202, 25, 247, 183, 107, 166, 10, 3, 231, + 202, 25, 237, 241, 10, 3, 231, 202, 25, 236, 255, 10, 3, 231, 202, 25, + 236, 211, 25, 203, 108, 10, 3, 231, 202, 25, 235, 43, 10, 3, 231, 202, + 25, 234, 97, 10, 3, 231, 202, 25, 234, 98, 107, 171, 10, 3, 231, 202, 25, + 234, 61, 10, 3, 231, 202, 25, 234, 62, 25, 231, 172, 199, 79, 10, 3, 231, + 202, 25, 231, 172, 199, 79, 10, 3, 231, 202, 25, 231, 163, 10, 3, 231, + 202, 25, 231, 16, 10, 3, 231, 202, 25, 231, 14, 10, 3, 231, 202, 25, 231, + 15, 107, 65, 10, 3, 231, 202, 25, 230, 253, 107, 200, 255, 10, 3, 231, + 202, 25, 230, 72, 107, 218, 204, 107, 233, 223, 10, 3, 231, 202, 25, 230, + 40, 10, 3, 231, 202, 25, 230, 41, 107, 171, 10, 3, 231, 202, 25, 229, + 127, 107, 219, 122, 10, 3, 231, 202, 25, 228, 120, 10, 3, 231, 202, 25, + 223, 173, 230, 122, 10, 3, 231, 202, 25, 223, 35, 107, 228, 129, 107, + 250, 159, 10, 3, 231, 202, 25, 222, 69, 10, 3, 231, 202, 25, 222, 28, 10, + 3, 231, 202, 25, 221, 128, 10, 3, 231, 202, 25, 221, 129, 107, 220, 13, + 10, 3, 231, 202, 25, 220, 200, 107, 251, 81, 10, 3, 231, 202, 25, 171, + 10, 3, 231, 202, 25, 216, 214, 107, 234, 61, 10, 3, 231, 202, 25, 216, + 81, 10, 3, 231, 202, 25, 212, 117, 10, 3, 231, 202, 25, 212, 118, 138, + 212, 117, 10, 3, 231, 202, 25, 168, 10, 3, 231, 202, 25, 205, 164, 10, 3, + 231, 202, 25, 205, 122, 10, 3, 231, 202, 25, 203, 108, 10, 3, 231, 202, + 25, 203, 109, 107, 197, 60, 10, 3, 231, 202, 25, 203, 74, 10, 3, 231, + 202, 25, 200, 199, 10, 3, 231, 202, 25, 199, 204, 10, 3, 231, 202, 25, + 69, 10, 3, 231, 202, 25, 196, 154, 10, 3, 231, 202, 25, 196, 155, 107, + 235, 45, 10, 3, 231, 202, 138, 231, 201, 10, 3, 231, 196, 10, 3, 231, + 197, 238, 163, 231, 196, 10, 3, 231, 194, 10, 3, 231, 195, 138, 231, 195, + 231, 164, 138, 231, 163, 10, 3, 231, 185, 10, 3, 231, 186, 231, 195, 138, + 231, 195, 231, 164, 138, 231, 163, 10, 3, 231, 184, 10, 3, 231, 182, 10, + 3, 231, 173, 10, 3, 231, 171, 10, 3, 231, 172, 199, 79, 10, 3, 231, 172, + 138, 231, 171, 10, 3, 231, 172, 238, 163, 231, 171, 10, 3, 231, 163, 10, + 3, 231, 162, 10, 3, 231, 156, 10, 3, 231, 97, 10, 3, 231, 98, 25, 220, + 173, 10, 3, 231, 16, 10, 3, 231, 17, 25, 73, 10, 3, 231, 17, 25, 69, 10, + 3, 231, 17, 238, 163, 231, 16, 10, 3, 231, 14, 10, 3, 231, 15, 138, 231, + 14, 10, 3, 231, 15, 238, 163, 231, 14, 10, 3, 231, 11, 10, 3, 230, 252, + 10, 3, 230, 253, 230, 122, 10, 3, 230, 250, 10, 3, 230, 251, 25, 41, 107, + 223, 172, 10, 3, 230, 251, 25, 231, 172, 199, 79, 10, 3, 230, 251, 25, + 223, 172, 10, 3, 230, 251, 25, 218, 204, 107, 223, 172, 10, 3, 230, 251, + 25, 168, 10, 3, 230, 245, 10, 3, 230, 243, 10, 3, 230, 244, 238, 163, + 230, 243, 10, 3, 230, 244, 25, 249, 85, 10, 3, 230, 244, 25, 199, 204, + 10, 3, 230, 244, 199, 79, 10, 3, 230, 146, 10, 3, 230, 147, 238, 163, + 230, 146, 10, 3, 230, 144, 10, 3, 230, 145, 25, 222, 69, 10, 3, 230, 145, + 25, 222, 70, 25, 223, 173, 230, 122, 10, 3, 230, 145, 25, 212, 117, 10, + 3, 230, 145, 25, 205, 165, 107, 197, 78, 10, 3, 230, 145, 230, 122, 10, + 3, 230, 135, 10, 3, 230, 136, 25, 41, 107, 220, 173, 10, 3, 230, 136, 25, + 220, 173, 10, 3, 230, 136, 138, 230, 136, 218, 194, 10, 3, 230, 127, 10, + 3, 230, 125, 10, 3, 230, 126, 25, 203, 108, 10, 3, 230, 116, 10, 3, 230, + 115, 10, 3, 230, 110, 10, 3, 230, 109, 10, 3, 144, 10, 3, 230, 72, 199, + 79, 10, 3, 230, 72, 230, 122, 10, 3, 230, 40, 10, 3, 229, 126, 10, 3, + 229, 127, 25, 250, 159, 10, 3, 229, 127, 25, 250, 157, 10, 3, 229, 127, + 25, 249, 85, 10, 3, 229, 127, 25, 236, 177, 10, 3, 229, 127, 25, 231, + 194, 10, 3, 229, 127, 25, 221, 117, 10, 3, 229, 127, 25, 212, 117, 10, 3, + 229, 127, 25, 203, 108, 10, 3, 229, 127, 25, 69, 10, 3, 228, 128, 10, 3, + 228, 120, 10, 3, 228, 121, 25, 251, 81, 10, 3, 228, 121, 25, 230, 40, 10, + 3, 228, 121, 25, 222, 28, 10, 3, 228, 121, 25, 219, 65, 10, 3, 228, 121, + 25, 196, 154, 10, 3, 228, 115, 10, 3, 70, 10, 3, 228, 44, 65, 10, 3, 228, + 0, 10, 3, 223, 200, 10, 3, 223, 201, 138, 223, 201, 247, 182, 10, 3, 223, + 201, 138, 223, 201, 201, 184, 10, 3, 223, 175, 10, 3, 223, 172, 10, 3, + 223, 173, 236, 237, 10, 3, 223, 173, 206, 252, 10, 3, 223, 173, 138, 223, + 173, 203, 58, 138, 203, 58, 196, 155, 138, 196, 154, 10, 3, 223, 173, + 230, 122, 10, 3, 223, 163, 10, 3, 223, 164, 25, 231, 172, 199, 79, 10, 3, + 223, 162, 10, 3, 223, 152, 10, 3, 223, 153, 25, 199, 204, 10, 3, 223, + 153, 238, 163, 223, 152, 10, 3, 223, 153, 211, 52, 223, 152, 10, 3, 223, + 153, 201, 184, 10, 3, 223, 144, 10, 3, 223, 134, 10, 3, 223, 49, 10, 3, + 223, 34, 10, 3, 157, 10, 3, 222, 115, 25, 65, 10, 3, 222, 115, 25, 251, + 246, 10, 3, 222, 115, 25, 251, 247, 107, 220, 199, 10, 3, 222, 115, 25, + 250, 157, 10, 3, 222, 115, 25, 249, 85, 10, 3, 222, 115, 25, 249, 64, 10, + 3, 222, 115, 25, 164, 10, 3, 222, 115, 25, 248, 140, 10, 3, 222, 115, 25, + 233, 242, 10, 3, 222, 115, 25, 233, 223, 10, 3, 222, 115, 25, 231, 203, + 10, 3, 222, 115, 25, 231, 185, 10, 3, 222, 115, 25, 231, 172, 199, 79, + 10, 3, 222, 115, 25, 231, 163, 10, 3, 222, 115, 25, 231, 164, 107, 203, + 159, 107, 65, 10, 3, 222, 115, 25, 231, 16, 10, 3, 222, 115, 25, 230, + 252, 10, 3, 222, 115, 25, 230, 244, 107, 205, 122, 10, 3, 222, 115, 25, + 230, 244, 238, 163, 230, 243, 10, 3, 222, 115, 25, 230, 146, 10, 3, 222, + 115, 25, 230, 115, 10, 3, 222, 115, 25, 223, 172, 10, 3, 222, 115, 25, + 223, 152, 10, 3, 222, 115, 25, 222, 69, 10, 3, 222, 115, 25, 221, 142, + 10, 3, 222, 115, 25, 221, 128, 10, 3, 222, 115, 25, 219, 122, 10, 3, 222, + 115, 25, 218, 203, 10, 3, 222, 115, 25, 216, 213, 10, 3, 222, 115, 25, + 216, 214, 107, 235, 45, 10, 3, 222, 115, 25, 216, 214, 107, 231, 16, 10, + 3, 222, 115, 25, 216, 214, 107, 199, 140, 10, 3, 222, 115, 25, 216, 81, + 10, 3, 222, 115, 25, 216, 82, 107, 212, 112, 10, 3, 222, 115, 25, 214, + 107, 10, 3, 222, 115, 25, 212, 117, 10, 3, 222, 115, 25, 209, 176, 10, 3, + 222, 115, 25, 206, 63, 10, 3, 222, 115, 25, 189, 10, 3, 222, 115, 25, + 205, 122, 10, 3, 222, 115, 25, 203, 160, 10, 3, 222, 115, 25, 203, 108, + 10, 3, 222, 115, 25, 203, 74, 10, 3, 222, 115, 25, 203, 0, 10, 3, 222, + 115, 25, 202, 196, 10, 3, 222, 115, 25, 200, 208, 10, 3, 222, 115, 25, + 199, 174, 10, 3, 222, 115, 25, 69, 10, 3, 222, 115, 25, 196, 165, 10, 3, + 222, 115, 25, 196, 154, 10, 3, 222, 115, 25, 196, 112, 25, 168, 10, 3, + 222, 115, 25, 196, 34, 10, 3, 222, 115, 25, 191, 30, 10, 3, 222, 101, 10, + 3, 222, 102, 238, 163, 222, 101, 10, 3, 222, 90, 10, 3, 222, 86, 10, 3, + 222, 84, 10, 3, 222, 83, 10, 3, 222, 81, 10, 3, 222, 82, 138, 222, 81, + 10, 3, 222, 69, 10, 3, 222, 70, 25, 223, 173, 230, 122, 10, 3, 222, 65, + 10, 3, 222, 66, 25, 249, 85, 10, 3, 222, 66, 238, 163, 222, 65, 10, 3, + 222, 63, 10, 3, 222, 62, 10, 3, 222, 28, 10, 3, 222, 29, 220, 81, 25, + 126, 138, 220, 81, 25, 69, 10, 3, 222, 29, 138, 222, 29, 220, 81, 25, + 126, 138, 220, 81, 25, 69, 10, 3, 221, 217, 10, 3, 221, 142, 10, 3, 221, + 143, 25, 249, 85, 10, 3, 221, 143, 25, 69, 10, 3, 221, 143, 25, 196, 154, + 10, 3, 221, 128, 10, 3, 221, 117, 10, 3, 221, 103, 10, 3, 221, 102, 10, + 3, 221, 100, 10, 3, 221, 101, 138, 221, 100, 10, 3, 220, 208, 10, 3, 220, + 209, 138, 229, 127, 25, 250, 158, 220, 209, 138, 229, 127, 25, 250, 157, + 10, 3, 220, 199, 10, 3, 220, 197, 10, 3, 220, 198, 195, 165, 20, 10, 3, + 220, 196, 10, 3, 220, 187, 10, 3, 220, 188, 230, 122, 10, 3, 220, 186, + 10, 3, 220, 173, 10, 3, 220, 174, 211, 52, 220, 173, 10, 3, 220, 166, 10, + 3, 220, 143, 10, 3, 171, 10, 3, 220, 80, 10, 3, 220, 81, 25, 65, 10, 3, + 220, 81, 25, 41, 107, 237, 242, 107, 144, 10, 3, 220, 81, 25, 41, 107, + 231, 163, 10, 3, 220, 81, 25, 41, 107, 220, 13, 10, 3, 220, 81, 25, 251, + 156, 10, 3, 220, 81, 25, 251, 81, 10, 3, 220, 81, 25, 250, 160, 191, 26, + 199, 79, 10, 3, 220, 81, 25, 249, 85, 10, 3, 220, 81, 25, 248, 140, 10, + 3, 220, 81, 25, 237, 180, 10, 3, 220, 81, 25, 234, 61, 10, 3, 220, 81, + 25, 231, 203, 10, 3, 220, 81, 25, 231, 163, 10, 3, 220, 81, 25, 230, 135, + 10, 3, 220, 81, 25, 230, 136, 107, 230, 135, 10, 3, 220, 81, 25, 144, 10, + 3, 220, 81, 25, 230, 40, 10, 3, 220, 81, 25, 229, 127, 25, 212, 117, 10, + 3, 220, 81, 25, 223, 173, 230, 122, 10, 3, 220, 81, 25, 223, 152, 10, 3, + 220, 81, 25, 223, 153, 107, 144, 10, 3, 220, 81, 25, 223, 153, 107, 218, + 203, 10, 3, 220, 81, 25, 221, 142, 10, 3, 220, 81, 25, 221, 117, 10, 3, + 220, 81, 25, 220, 199, 10, 3, 220, 81, 25, 220, 187, 10, 3, 220, 81, 25, + 220, 188, 107, 229, 127, 107, 65, 10, 3, 220, 81, 25, 220, 80, 10, 3, + 220, 81, 25, 219, 65, 10, 3, 220, 81, 25, 218, 203, 10, 3, 220, 81, 25, + 218, 188, 10, 3, 220, 81, 25, 216, 213, 10, 3, 220, 81, 25, 216, 214, + 107, 234, 61, 10, 3, 220, 81, 25, 215, 87, 10, 3, 220, 81, 25, 214, 107, + 10, 3, 220, 81, 25, 203, 109, 107, 200, 199, 10, 3, 220, 81, 25, 203, 54, + 107, 230, 244, 107, 233, 242, 10, 3, 220, 81, 25, 203, 54, 107, 230, 244, + 199, 79, 10, 3, 220, 81, 25, 202, 254, 10, 3, 220, 81, 25, 202, 255, 107, + 202, 254, 10, 3, 220, 81, 25, 200, 199, 10, 3, 220, 81, 25, 199, 218, 10, + 3, 220, 81, 25, 199, 204, 10, 3, 220, 81, 25, 199, 141, 107, 41, 107, + 201, 0, 107, 180, 10, 3, 220, 81, 25, 69, 10, 3, 220, 81, 25, 126, 107, + 65, 10, 3, 220, 81, 25, 126, 107, 126, 107, 69, 10, 3, 220, 81, 25, 196, + 166, 107, 250, 159, 10, 3, 220, 81, 25, 196, 154, 10, 3, 220, 81, 25, + 196, 34, 10, 3, 220, 81, 201, 184, 10, 3, 220, 78, 10, 3, 220, 79, 25, + 203, 108, 10, 3, 220, 79, 25, 203, 109, 107, 200, 199, 10, 3, 220, 79, + 230, 122, 10, 3, 220, 79, 230, 123, 138, 220, 79, 230, 123, 203, 108, 10, + 3, 220, 74, 10, 3, 220, 13, 10, 3, 220, 14, 25, 220, 13, 10, 3, 220, 11, + 10, 3, 220, 12, 25, 220, 173, 10, 3, 220, 12, 25, 220, 174, 107, 206, 63, + 10, 3, 219, 122, 10, 3, 219, 103, 10, 3, 219, 91, 10, 3, 219, 65, 10, 3, + 218, 203, 10, 3, 218, 204, 25, 249, 85, 10, 3, 218, 201, 10, 3, 218, 202, + 25, 251, 156, 10, 3, 218, 202, 25, 249, 85, 10, 3, 218, 202, 25, 233, + 223, 10, 3, 218, 202, 25, 233, 224, 199, 79, 10, 3, 218, 202, 25, 231, + 172, 199, 79, 10, 3, 218, 202, 25, 229, 127, 25, 249, 85, 10, 3, 218, + 202, 25, 223, 152, 10, 3, 218, 202, 25, 222, 86, 10, 3, 218, 202, 25, + 222, 84, 10, 3, 218, 202, 25, 222, 85, 107, 250, 159, 10, 3, 218, 202, + 25, 221, 142, 10, 3, 218, 202, 25, 220, 102, 107, 250, 159, 10, 3, 218, + 202, 25, 220, 80, 10, 3, 218, 202, 25, 216, 214, 107, 234, 61, 10, 3, + 218, 202, 25, 214, 107, 10, 3, 218, 202, 25, 212, 165, 10, 3, 218, 202, + 25, 202, 218, 107, 250, 159, 10, 3, 218, 202, 25, 202, 187, 107, 247, + 218, 10, 3, 218, 202, 25, 197, 78, 10, 3, 218, 202, 199, 79, 10, 3, 218, + 202, 238, 163, 218, 201, 10, 3, 218, 202, 211, 52, 218, 201, 10, 3, 218, + 202, 201, 184, 10, 3, 218, 202, 203, 89, 10, 3, 218, 200, 10, 3, 218, + 194, 10, 3, 218, 195, 138, 218, 194, 10, 3, 218, 195, 211, 52, 218, 194, + 10, 3, 218, 195, 203, 89, 10, 3, 218, 191, 10, 3, 218, 188, 10, 3, 218, + 186, 10, 3, 218, 187, 138, 218, 186, 10, 3, 218, 187, 138, 218, 187, 231, + 164, 138, 231, 163, 10, 3, 172, 10, 3, 217, 139, 25, 199, 204, 10, 3, + 217, 139, 230, 122, 10, 3, 217, 131, 10, 3, 217, 99, 10, 3, 217, 45, 10, + 3, 217, 20, 10, 3, 217, 19, 10, 3, 216, 213, 10, 3, 216, 154, 10, 3, 216, + 81, 10, 3, 216, 26, 10, 3, 215, 139, 10, 3, 215, 140, 138, 215, 139, 10, + 3, 215, 124, 10, 3, 215, 125, 230, 122, 10, 3, 215, 105, 10, 3, 215, 91, + 10, 3, 215, 87, 10, 3, 215, 88, 25, 65, 10, 3, 215, 88, 25, 220, 173, 10, + 3, 215, 88, 25, 191, 123, 10, 3, 215, 88, 138, 215, 87, 10, 3, 215, 88, + 138, 215, 88, 25, 41, 107, 180, 10, 3, 215, 88, 238, 163, 215, 87, 10, 3, + 215, 85, 10, 3, 215, 86, 25, 65, 10, 3, 215, 86, 25, 41, 107, 236, 255, + 10, 3, 215, 86, 25, 236, 255, 10, 3, 215, 86, 230, 122, 10, 3, 180, 10, + 3, 214, 239, 10, 3, 214, 226, 10, 3, 214, 227, 223, 64, 10, 3, 214, 227, + 25, 203, 1, 199, 79, 10, 3, 214, 227, 211, 52, 214, 226, 10, 3, 214, 225, + 10, 3, 214, 217, 212, 103, 10, 3, 214, 216, 10, 3, 214, 215, 10, 3, 214, + 107, 10, 3, 214, 108, 25, 65, 10, 3, 214, 108, 25, 196, 154, 10, 3, 214, + 108, 203, 89, 10, 3, 213, 205, 10, 3, 213, 206, 25, 73, 10, 3, 213, 196, + 10, 3, 213, 166, 10, 3, 213, 167, 25, 231, 172, 199, 79, 10, 3, 213, 167, + 25, 231, 164, 107, 231, 172, 199, 79, 10, 3, 213, 162, 10, 3, 213, 163, + 25, 251, 81, 10, 3, 213, 163, 25, 250, 159, 10, 3, 213, 163, 25, 250, + 160, 107, 250, 159, 10, 3, 213, 163, 25, 230, 135, 10, 3, 213, 163, 25, + 216, 214, 107, 231, 172, 199, 79, 10, 3, 213, 163, 25, 214, 107, 10, 3, + 213, 163, 25, 212, 117, 10, 3, 213, 163, 25, 203, 108, 10, 3, 213, 163, + 25, 203, 109, 107, 41, 251, 81, 10, 3, 213, 163, 25, 203, 109, 107, 250, + 159, 10, 3, 213, 163, 25, 203, 109, 107, 250, 160, 107, 250, 159, 10, 3, + 213, 163, 25, 196, 166, 107, 250, 159, 10, 3, 213, 163, 25, 196, 34, 10, + 3, 213, 150, 10, 3, 212, 165, 10, 3, 212, 134, 10, 3, 212, 117, 10, 3, + 212, 118, 220, 79, 25, 231, 163, 10, 3, 212, 118, 220, 79, 25, 217, 20, + 10, 3, 212, 118, 220, 79, 25, 205, 164, 10, 3, 212, 118, 220, 79, 25, + 205, 165, 138, 212, 118, 220, 79, 25, 205, 164, 10, 3, 212, 118, 220, 79, + 25, 196, 34, 10, 3, 212, 118, 199, 79, 10, 3, 212, 118, 138, 212, 117, + 10, 3, 212, 118, 238, 163, 212, 117, 10, 3, 212, 118, 238, 163, 212, 118, + 220, 79, 138, 220, 78, 10, 3, 212, 112, 10, 3, 212, 113, 252, 21, 25, + 250, 153, 10, 3, 212, 113, 252, 21, 25, 248, 140, 10, 3, 212, 113, 252, + 21, 25, 235, 38, 10, 3, 212, 113, 252, 21, 25, 230, 135, 10, 3, 212, 113, + 252, 21, 25, 223, 173, 230, 122, 10, 3, 212, 113, 252, 21, 25, 222, 84, + 10, 3, 212, 113, 252, 21, 25, 171, 10, 3, 212, 113, 252, 21, 25, 214, + 107, 10, 3, 212, 113, 252, 21, 25, 202, 184, 10, 3, 212, 113, 252, 21, + 25, 196, 165, 10, 3, 212, 113, 221, 101, 25, 248, 140, 10, 3, 212, 113, + 221, 101, 25, 248, 141, 69, 10, 3, 168, 10, 3, 210, 200, 10, 3, 210, 156, + 10, 3, 210, 127, 10, 3, 209, 234, 10, 3, 209, 176, 10, 3, 209, 177, 25, + 65, 10, 3, 209, 177, 25, 252, 103, 10, 3, 209, 177, 25, 248, 140, 10, 3, + 209, 177, 25, 247, 218, 10, 3, 209, 177, 25, 73, 10, 3, 209, 177, 25, 70, + 10, 3, 209, 177, 25, 228, 0, 10, 3, 209, 177, 25, 69, 10, 3, 209, 177, + 25, 196, 165, 10, 3, 209, 177, 238, 163, 209, 176, 10, 3, 209, 113, 10, + 3, 209, 114, 25, 222, 65, 10, 3, 209, 114, 25, 196, 154, 10, 3, 209, 114, + 25, 191, 123, 10, 3, 209, 114, 211, 52, 209, 113, 10, 3, 166, 10, 3, 207, + 171, 10, 3, 206, 252, 10, 3, 206, 63, 10, 3, 189, 10, 3, 205, 181, 212, + 103, 10, 3, 205, 180, 10, 3, 205, 181, 25, 65, 10, 3, 205, 181, 25, 235, + 45, 10, 3, 205, 181, 25, 235, 43, 10, 3, 205, 181, 25, 144, 10, 3, 205, + 181, 25, 222, 69, 10, 3, 205, 181, 25, 220, 173, 10, 3, 205, 181, 25, + 218, 186, 10, 3, 205, 181, 25, 216, 81, 10, 3, 205, 181, 25, 212, 117, + 10, 3, 205, 181, 25, 205, 164, 10, 3, 205, 181, 25, 203, 74, 10, 3, 205, + 181, 25, 199, 231, 10, 3, 205, 181, 25, 196, 165, 10, 3, 205, 181, 25, + 196, 160, 10, 3, 205, 181, 25, 196, 116, 10, 3, 205, 181, 25, 196, 58, + 10, 3, 205, 181, 25, 196, 34, 10, 3, 205, 181, 138, 205, 180, 10, 3, 205, + 181, 230, 122, 10, 3, 205, 164, 10, 3, 205, 165, 220, 81, 25, 250, 157, + 10, 3, 205, 131, 10, 3, 205, 122, 10, 3, 203, 160, 10, 3, 203, 158, 10, + 3, 203, 159, 25, 65, 10, 3, 203, 159, 25, 249, 85, 10, 3, 203, 159, 25, + 230, 243, 10, 3, 203, 159, 25, 214, 107, 10, 3, 203, 159, 25, 202, 254, + 10, 3, 203, 159, 25, 197, 60, 10, 3, 203, 159, 25, 69, 10, 3, 203, 159, + 25, 126, 107, 65, 10, 3, 203, 156, 10, 3, 203, 154, 10, 3, 203, 126, 10, + 3, 203, 108, 10, 3, 203, 109, 228, 128, 10, 3, 203, 109, 138, 203, 109, + 231, 195, 138, 231, 195, 231, 164, 138, 231, 163, 10, 3, 203, 109, 138, + 203, 109, 199, 232, 138, 199, 232, 231, 164, 138, 231, 163, 10, 3, 203, + 101, 10, 3, 203, 96, 10, 3, 203, 92, 10, 3, 203, 91, 10, 3, 203, 88, 10, + 3, 203, 74, 10, 3, 203, 75, 25, 65, 10, 3, 203, 75, 25, 223, 152, 10, 3, + 203, 68, 10, 3, 203, 69, 25, 65, 10, 3, 203, 69, 25, 249, 65, 10, 3, 203, + 69, 25, 247, 194, 10, 3, 203, 69, 25, 236, 198, 10, 3, 203, 69, 25, 231, + 163, 10, 3, 203, 69, 25, 223, 172, 10, 3, 203, 69, 25, 223, 173, 230, + 122, 10, 3, 203, 69, 25, 220, 166, 10, 3, 203, 69, 25, 218, 188, 10, 3, + 203, 69, 25, 215, 124, 10, 3, 203, 69, 25, 205, 164, 10, 3, 203, 62, 10, + 3, 203, 57, 10, 3, 203, 58, 199, 79, 10, 3, 203, 58, 138, 203, 58, 247, + 183, 138, 247, 182, 10, 3, 203, 53, 10, 3, 203, 0, 10, 3, 203, 1, 138, + 223, 65, 203, 0, 10, 3, 202, 254, 10, 3, 202, 252, 10, 3, 202, 217, 10, + 3, 202, 218, 230, 122, 10, 3, 202, 196, 10, 3, 202, 194, 10, 3, 202, 195, + 138, 202, 195, 202, 254, 10, 3, 202, 186, 10, 3, 202, 184, 10, 3, 200, + 255, 10, 3, 201, 0, 138, 200, 255, 10, 3, 200, 211, 10, 3, 200, 210, 10, + 3, 200, 208, 10, 3, 200, 199, 10, 3, 200, 198, 10, 3, 200, 170, 10, 3, + 200, 169, 10, 3, 199, 247, 10, 3, 199, 248, 250, 143, 10, 3, 199, 248, + 25, 229, 126, 10, 3, 199, 248, 25, 216, 81, 10, 3, 199, 248, 230, 122, + 10, 3, 199, 231, 10, 3, 199, 232, 138, 199, 232, 213, 206, 138, 213, 206, + 236, 178, 138, 236, 177, 10, 3, 199, 232, 201, 184, 10, 3, 199, 218, 10, + 3, 199, 219, 25, 248, 140, 10, 3, 199, 219, 25, 230, 135, 10, 3, 199, + 219, 25, 203, 108, 10, 3, 199, 219, 25, 203, 0, 10, 3, 199, 219, 25, 197, + 78, 10, 3, 199, 219, 25, 196, 154, 10, 3, 199, 204, 10, 3, 199, 174, 10, + 3, 199, 140, 10, 3, 199, 141, 230, 122, 10, 3, 198, 188, 10, 3, 198, 189, + 199, 79, 10, 3, 198, 149, 10, 3, 198, 126, 10, 3, 198, 127, 25, 199, 204, + 10, 3, 198, 127, 138, 198, 126, 10, 3, 198, 127, 138, 198, 127, 231, 195, + 138, 231, 195, 231, 164, 138, 231, 163, 10, 3, 197, 90, 10, 3, 197, 78, + 10, 3, 197, 76, 10, 3, 197, 72, 10, 3, 197, 60, 10, 3, 197, 61, 138, 197, + 61, 191, 124, 138, 191, 123, 10, 3, 69, 10, 3, 126, 230, 135, 10, 3, 126, + 126, 69, 10, 3, 126, 138, 126, 210, 211, 138, 210, 211, 231, 164, 138, + 231, 163, 10, 3, 126, 138, 126, 200, 171, 138, 200, 170, 10, 3, 126, 138, + 126, 126, 207, 13, 138, 126, 207, 12, 10, 3, 196, 165, 10, 3, 196, 160, + 10, 3, 196, 154, 10, 3, 196, 155, 220, 166, 10, 3, 196, 155, 25, 249, 85, + 10, 3, 196, 155, 25, 216, 81, 10, 3, 196, 155, 25, 126, 107, 126, 107, + 69, 10, 3, 196, 155, 25, 126, 107, 126, 107, 126, 230, 122, 10, 3, 196, + 155, 230, 122, 10, 3, 196, 155, 203, 89, 10, 3, 196, 155, 203, 90, 25, + 249, 85, 10, 3, 196, 149, 10, 3, 196, 116, 10, 3, 196, 117, 25, 220, 80, + 10, 3, 196, 117, 25, 216, 214, 107, 237, 241, 10, 3, 196, 117, 25, 203, + 158, 10, 3, 196, 117, 25, 69, 10, 3, 196, 115, 10, 3, 196, 111, 10, 3, + 196, 112, 25, 222, 28, 10, 3, 196, 112, 25, 168, 10, 3, 196, 109, 10, 3, + 196, 110, 230, 122, 10, 3, 196, 58, 10, 3, 196, 59, 238, 163, 196, 58, + 10, 3, 196, 59, 203, 89, 10, 3, 196, 56, 10, 3, 196, 57, 25, 41, 107, + 144, 10, 3, 196, 57, 25, 41, 107, 180, 10, 3, 196, 57, 25, 251, 156, 10, + 3, 196, 57, 25, 144, 10, 3, 196, 57, 25, 212, 117, 10, 3, 196, 57, 25, + 196, 165, 10, 3, 196, 57, 25, 196, 166, 107, 250, 159, 10, 3, 196, 57, + 25, 196, 166, 107, 248, 140, 10, 3, 196, 55, 10, 3, 196, 52, 10, 3, 196, + 51, 10, 3, 196, 47, 10, 3, 196, 48, 25, 65, 10, 3, 196, 48, 25, 250, 153, + 10, 3, 196, 48, 25, 164, 10, 3, 196, 48, 25, 235, 31, 10, 3, 196, 48, 25, + 231, 203, 10, 3, 196, 48, 25, 231, 185, 10, 3, 196, 48, 25, 231, 172, + 199, 79, 10, 3, 196, 48, 25, 231, 163, 10, 3, 196, 48, 25, 230, 146, 10, + 3, 196, 48, 25, 144, 10, 3, 196, 48, 25, 223, 172, 10, 3, 196, 48, 25, + 223, 152, 10, 3, 196, 48, 25, 223, 34, 10, 3, 196, 48, 25, 221, 142, 10, + 3, 196, 48, 25, 218, 186, 10, 3, 196, 48, 25, 216, 26, 10, 3, 196, 48, + 25, 168, 10, 3, 196, 48, 25, 203, 108, 10, 3, 196, 48, 25, 202, 194, 10, + 3, 196, 48, 25, 197, 90, 10, 3, 196, 48, 25, 126, 107, 230, 135, 10, 3, + 196, 48, 25, 196, 154, 10, 3, 196, 48, 25, 196, 45, 10, 3, 196, 45, 10, + 3, 196, 46, 25, 69, 10, 3, 196, 34, 10, 3, 196, 35, 25, 65, 10, 3, 196, + 35, 25, 220, 208, 10, 3, 196, 35, 25, 220, 173, 10, 3, 196, 35, 25, 199, + 204, 10, 3, 196, 30, 10, 3, 196, 33, 10, 3, 196, 31, 10, 3, 196, 27, 10, + 3, 196, 12, 10, 3, 196, 13, 25, 222, 28, 10, 3, 196, 10, 10, 3, 191, 123, + 10, 3, 191, 124, 199, 79, 10, 3, 191, 124, 112, 25, 220, 173, 10, 3, 191, + 118, 10, 3, 191, 107, 10, 3, 191, 86, 10, 3, 191, 30, 10, 3, 191, 31, + 138, 191, 30, 10, 3, 191, 29, 10, 3, 191, 27, 10, 3, 191, 28, 222, 89, + 199, 79, 10, 3, 191, 22, 10, 3, 191, 13, 10, 3, 190, 251, 10, 3, 190, + 249, 10, 3, 190, 250, 25, 65, 10, 3, 190, 248, 10, 3, 190, 247, 10, 3, + 222, 53, 234, 94, 10, 3, 252, 104, 25, 212, 117, 10, 3, 252, 21, 25, 65, + 10, 3, 251, 95, 25, 220, 189, 10, 3, 237, 232, 221, 101, 25, 196, 166, + 107, 217, 20, 10, 3, 237, 230, 10, 3, 236, 178, 107, 203, 0, 10, 3, 235, + 44, 25, 203, 108, 10, 3, 233, 140, 25, 230, 135, 10, 3, 233, 140, 25, + 203, 108, 10, 3, 231, 202, 25, 251, 82, 107, 222, 70, 107, 65, 10, 3, + 231, 202, 25, 250, 157, 10, 3, 231, 127, 10, 3, 231, 5, 10, 3, 228, 100, + 10, 3, 222, 115, 25, 251, 40, 10, 3, 222, 115, 25, 250, 156, 10, 3, 222, + 115, 25, 230, 243, 10, 3, 222, 115, 25, 230, 135, 10, 3, 222, 115, 25, + 229, 127, 25, 250, 157, 10, 3, 222, 115, 25, 218, 186, 10, 3, 222, 115, + 25, 168, 10, 3, 222, 115, 25, 202, 248, 10, 3, 222, 115, 25, 197, 90, 10, + 3, 222, 115, 25, 196, 56, 10, 3, 220, 81, 25, 231, 16, 10, 3, 218, 202, + 203, 90, 25, 249, 85, 10, 3, 218, 202, 25, 233, 224, 107, 220, 13, 10, 3, + 218, 202, 25, 203, 0, 10, 3, 216, 153, 10, 3, 215, 86, 25, 191, 123, 10, + 3, 214, 238, 10, 3, 213, 165, 10, 3, 213, 164, 10, 3, 213, 163, 25, 249, + 65, 10, 3, 213, 163, 25, 231, 16, 10, 3, 212, 135, 206, 117, 213, 157, + 237, 79, 10, 3, 209, 235, 250, 143, 10, 3, 209, 117, 10, 3, 205, 181, 25, + 223, 173, 230, 122, 10, 3, 198, 180, 10, 3, 196, 117, 25, 216, 213, 10, + 3, 126, 69, 10, 167, 3, 103, 250, 159, 10, 167, 3, 115, 250, 159, 10, + 167, 3, 232, 90, 250, 159, 10, 167, 3, 232, 185, 250, 159, 10, 167, 3, + 202, 131, 250, 159, 10, 167, 3, 203, 242, 250, 159, 10, 167, 3, 234, 121, + 250, 159, 10, 167, 3, 213, 161, 250, 159, 10, 167, 3, 115, 236, 177, 10, + 167, 3, 232, 90, 236, 177, 10, 167, 3, 232, 185, 236, 177, 10, 167, 3, + 202, 131, 236, 177, 10, 167, 3, 203, 242, 236, 177, 10, 167, 3, 234, 121, + 236, 177, 10, 167, 3, 213, 161, 236, 177, 10, 167, 3, 232, 90, 69, 10, + 167, 3, 232, 185, 69, 10, 167, 3, 202, 131, 69, 10, 167, 3, 203, 242, 69, + 10, 167, 3, 234, 121, 69, 10, 167, 3, 213, 161, 69, 10, 167, 3, 91, 231, + 99, 10, 167, 3, 103, 231, 99, 10, 167, 3, 115, 231, 99, 10, 167, 3, 232, + 90, 231, 99, 10, 167, 3, 232, 185, 231, 99, 10, 167, 3, 202, 131, 231, + 99, 10, 167, 3, 203, 242, 231, 99, 10, 167, 3, 234, 121, 231, 99, 10, + 167, 3, 213, 161, 231, 99, 10, 167, 3, 91, 231, 96, 10, 167, 3, 103, 231, + 96, 10, 167, 3, 115, 231, 96, 10, 167, 3, 232, 90, 231, 96, 10, 167, 3, + 232, 185, 231, 96, 10, 167, 3, 103, 203, 126, 10, 167, 3, 115, 203, 126, + 10, 167, 3, 115, 203, 127, 195, 165, 20, 10, 167, 3, 232, 90, 203, 126, + 10, 167, 3, 232, 185, 203, 126, 10, 167, 3, 202, 131, 203, 126, 10, 167, + 3, 203, 242, 203, 126, 10, 167, 3, 234, 121, 203, 126, 10, 167, 3, 213, + 161, 203, 126, 10, 167, 3, 91, 203, 119, 10, 167, 3, 103, 203, 119, 10, + 167, 3, 115, 203, 119, 10, 167, 3, 115, 203, 120, 195, 165, 20, 10, 167, + 3, 232, 90, 203, 119, 10, 167, 3, 232, 185, 203, 119, 10, 167, 3, 203, + 127, 25, 231, 186, 107, 236, 177, 10, 167, 3, 203, 127, 25, 231, 186, + 107, 216, 26, 10, 167, 3, 91, 247, 178, 10, 167, 3, 103, 247, 178, 10, + 167, 3, 115, 247, 178, 10, 167, 3, 115, 247, 179, 195, 165, 20, 10, 167, + 3, 232, 90, 247, 178, 10, 167, 3, 232, 185, 247, 178, 10, 167, 3, 115, + 195, 165, 232, 107, 233, 225, 10, 167, 3, 115, 195, 165, 232, 107, 233, + 222, 10, 167, 3, 232, 90, 195, 165, 232, 107, 219, 92, 10, 167, 3, 232, + 90, 195, 165, 232, 107, 219, 90, 10, 167, 3, 232, 90, 195, 165, 232, 107, + 219, 93, 65, 10, 167, 3, 232, 90, 195, 165, 232, 107, 219, 93, 250, 70, + 10, 167, 3, 202, 131, 195, 165, 232, 107, 250, 155, 10, 167, 3, 203, 242, + 195, 165, 232, 107, 223, 143, 10, 167, 3, 203, 242, 195, 165, 232, 107, + 223, 145, 65, 10, 167, 3, 203, 242, 195, 165, 232, 107, 223, 145, 250, + 70, 10, 167, 3, 234, 121, 195, 165, 232, 107, 196, 29, 10, 167, 3, 234, + 121, 195, 165, 232, 107, 196, 28, 10, 167, 3, 213, 161, 195, 165, 232, + 107, 223, 160, 10, 167, 3, 213, 161, 195, 165, 232, 107, 223, 159, 10, + 167, 3, 213, 161, 195, 165, 232, 107, 223, 158, 10, 167, 3, 213, 161, + 195, 165, 232, 107, 223, 161, 65, 10, 167, 3, 103, 250, 160, 199, 79, 10, + 167, 3, 115, 250, 160, 199, 79, 10, 167, 3, 232, 90, 250, 160, 199, 79, + 10, 167, 3, 232, 185, 250, 160, 199, 79, 10, 167, 3, 202, 131, 250, 160, + 199, 79, 10, 167, 3, 91, 249, 49, 10, 167, 3, 103, 249, 49, 10, 167, 3, + 115, 249, 49, 10, 167, 3, 232, 90, 249, 49, 10, 167, 3, 232, 90, 249, 50, + 195, 165, 20, 10, 167, 3, 232, 185, 249, 49, 10, 167, 3, 232, 185, 249, + 50, 195, 165, 20, 10, 167, 3, 213, 174, 10, 167, 3, 213, 175, 10, 167, 3, + 91, 233, 221, 10, 167, 3, 103, 233, 221, 10, 167, 3, 91, 198, 252, 236, + 177, 10, 167, 3, 103, 198, 249, 236, 177, 10, 167, 3, 232, 185, 202, 118, + 236, 177, 10, 167, 3, 91, 198, 252, 195, 165, 232, 107, 65, 10, 167, 3, + 103, 198, 249, 195, 165, 232, 107, 65, 10, 167, 3, 91, 234, 117, 250, + 159, 10, 167, 3, 91, 208, 18, 250, 159, 10, 167, 3, 38, 250, 146, 91, + 202, 119, 10, 167, 3, 38, 250, 146, 91, 208, 17, 10, 167, 3, 91, 208, 18, + 230, 116, 10, 167, 3, 91, 134, 230, 116, 10, 167, 3, 234, 95, 91, 198, + 251, 10, 167, 3, 234, 95, 103, 198, 248, 10, 167, 3, 234, 95, 232, 97, + 10, 167, 3, 234, 95, 232, 230, 10, 167, 3, 232, 90, 126, 195, 165, 20, + 10, 167, 3, 232, 185, 126, 195, 165, 20, 10, 167, 3, 202, 131, 126, 195, + 165, 20, 10, 167, 3, 203, 242, 126, 195, 165, 20, 10, 167, 3, 234, 121, + 126, 195, 165, 20, 10, 167, 3, 213, 161, 126, 195, 165, 20, 10, 208, 145, + 3, 38, 250, 146, 193, 23, 236, 160, 10, 208, 145, 3, 81, 242, 35, 10, + 208, 145, 3, 236, 250, 242, 35, 10, 208, 145, 3, 236, 250, 197, 233, 10, + 208, 145, 3, 236, 250, 208, 23, 10, 3, 252, 104, 25, 212, 118, 199, 79, + 10, 3, 252, 104, 25, 202, 254, 10, 3, 251, 247, 25, 233, 223, 10, 3, 249, + 86, 25, 236, 178, 199, 79, 10, 3, 249, 72, 25, 252, 20, 10, 3, 249, 72, + 25, 213, 205, 10, 3, 249, 72, 25, 191, 123, 10, 3, 247, 219, 138, 247, + 219, 25, 214, 239, 10, 3, 237, 242, 25, 199, 204, 10, 3, 237, 232, 25, + 220, 173, 10, 3, 236, 211, 25, 223, 172, 10, 3, 236, 211, 25, 126, 126, + 69, 10, 3, 236, 209, 25, 196, 154, 10, 3, 235, 39, 25, 251, 40, 10, 3, + 235, 39, 25, 250, 159, 10, 3, 235, 39, 25, 250, 160, 250, 133, 219, 200, + 10, 3, 235, 39, 25, 236, 198, 10, 3, 235, 39, 25, 235, 31, 10, 3, 235, + 39, 25, 233, 242, 10, 3, 235, 39, 25, 231, 203, 10, 3, 235, 39, 25, 231, + 16, 10, 3, 235, 39, 25, 230, 253, 230, 122, 10, 3, 235, 39, 25, 230, 243, + 10, 3, 235, 39, 25, 144, 10, 3, 235, 39, 25, 229, 126, 10, 3, 235, 39, + 25, 223, 173, 230, 122, 10, 3, 235, 39, 25, 222, 28, 10, 3, 235, 39, 25, + 220, 173, 10, 3, 235, 39, 25, 220, 166, 10, 3, 235, 39, 25, 220, 167, + 107, 222, 28, 10, 3, 235, 39, 25, 220, 68, 10, 3, 235, 39, 25, 220, 11, + 10, 3, 235, 39, 25, 220, 12, 25, 220, 173, 10, 3, 235, 39, 25, 218, 192, + 107, 230, 243, 10, 3, 235, 39, 25, 217, 20, 10, 3, 235, 39, 25, 216, 154, + 10, 3, 235, 39, 25, 216, 81, 10, 3, 235, 39, 25, 213, 205, 10, 3, 235, + 39, 25, 209, 176, 10, 3, 235, 39, 25, 203, 108, 10, 3, 235, 39, 25, 202, + 218, 230, 122, 10, 3, 234, 175, 25, 220, 173, 10, 3, 234, 175, 25, 210, + 127, 10, 3, 233, 243, 192, 235, 10, 3, 233, 224, 238, 163, 233, 223, 10, + 3, 233, 140, 203, 90, 25, 250, 159, 10, 3, 233, 140, 203, 90, 25, 229, + 126, 10, 3, 233, 140, 203, 90, 25, 223, 173, 230, 122, 10, 3, 233, 140, + 203, 90, 25, 171, 10, 3, 233, 140, 203, 90, 25, 220, 13, 10, 3, 233, 140, + 203, 90, 25, 216, 213, 10, 3, 233, 140, 203, 90, 25, 216, 154, 10, 3, + 233, 140, 203, 90, 25, 200, 255, 10, 3, 233, 140, 25, 200, 255, 10, 3, + 231, 202, 25, 249, 71, 10, 3, 231, 202, 25, 236, 211, 230, 122, 10, 3, + 231, 202, 25, 235, 39, 25, 223, 173, 230, 122, 10, 3, 231, 202, 25, 235, + 39, 25, 222, 28, 10, 3, 231, 202, 25, 233, 245, 10, 3, 231, 202, 25, 231, + 203, 10, 3, 231, 202, 25, 231, 164, 107, 236, 255, 10, 3, 231, 202, 25, + 231, 164, 107, 214, 107, 10, 3, 231, 202, 25, 230, 72, 107, 65, 10, 3, + 231, 202, 25, 220, 167, 107, 222, 28, 10, 3, 231, 202, 25, 220, 11, 10, + 3, 231, 202, 25, 220, 12, 25, 220, 173, 10, 3, 231, 202, 25, 218, 191, + 10, 3, 231, 202, 25, 215, 87, 10, 3, 231, 202, 25, 214, 107, 10, 3, 231, + 202, 25, 214, 108, 107, 234, 174, 10, 3, 231, 202, 25, 214, 108, 107, + 231, 16, 10, 3, 231, 202, 25, 203, 68, 10, 3, 231, 202, 25, 191, 13, 10, + 3, 231, 197, 206, 117, 213, 157, 237, 79, 10, 3, 231, 98, 25, 69, 10, 3, + 230, 244, 25, 230, 244, 238, 163, 230, 243, 10, 3, 230, 145, 25, 223, + 173, 230, 122, 10, 3, 230, 136, 107, 230, 244, 25, 199, 204, 10, 3, 230, + 72, 199, 80, 230, 122, 10, 3, 229, 127, 25, 250, 160, 138, 229, 127, 25, + 250, 159, 10, 3, 222, 115, 25, 247, 218, 10, 3, 222, 115, 25, 157, 10, 3, + 222, 115, 25, 126, 126, 69, 10, 3, 222, 115, 25, 196, 58, 10, 3, 220, 81, + 25, 190, 252, 138, 190, 251, 10, 3, 220, 69, 10, 3, 220, 67, 10, 3, 220, + 66, 10, 3, 220, 65, 10, 3, 220, 64, 10, 3, 220, 63, 10, 3, 220, 62, 10, + 3, 220, 61, 138, 220, 61, 230, 122, 10, 3, 220, 60, 10, 3, 220, 59, 138, 220, 58, 10, 3, 220, 57, 10, 3, 220, 56, 10, 3, 220, 55, 10, 3, 220, 54, - 10, 3, 220, 53, 10, 3, 220, 52, 10, 3, 220, 50, 10, 3, 220, 51, 25, 250, - 209, 10, 3, 220, 51, 25, 249, 135, 10, 3, 220, 51, 25, 235, 74, 230, 156, - 230, 155, 10, 3, 220, 51, 25, 220, 223, 10, 3, 220, 51, 25, 173, 10, 3, - 220, 51, 25, 199, 179, 10, 3, 220, 51, 25, 199, 145, 10, 3, 220, 51, 25, - 196, 169, 10, 3, 220, 51, 25, 196, 158, 10, 3, 220, 51, 25, 196, 49, 10, - 3, 220, 49, 10, 3, 220, 47, 10, 3, 220, 48, 25, 235, 87, 10, 3, 220, 48, - 25, 231, 240, 10, 3, 220, 48, 25, 223, 201, 10, 3, 220, 48, 25, 223, 202, - 230, 155, 10, 3, 220, 48, 25, 213, 219, 10, 3, 220, 48, 25, 210, 138, - 108, 210, 138, 108, 218, 222, 10, 3, 220, 48, 25, 203, 98, 108, 221, 166, - 10, 3, 220, 48, 25, 196, 158, 10, 3, 220, 48, 25, 196, 49, 10, 3, 220, - 45, 10, 3, 220, 44, 10, 3, 218, 224, 230, 156, 25, 250, 209, 10, 3, 218, - 224, 25, 236, 222, 10, 3, 218, 224, 25, 230, 73, 10, 3, 218, 224, 25, - 210, 137, 10, 3, 218, 224, 25, 210, 138, 108, 210, 138, 108, 218, 222, - 10, 3, 218, 224, 25, 199, 209, 10, 3, 216, 101, 108, 191, 122, 10, 3, - 215, 102, 139, 215, 102, 25, 231, 240, 10, 3, 215, 102, 139, 215, 102, - 25, 222, 96, 10, 3, 213, 177, 25, 237, 0, 230, 155, 10, 3, 213, 177, 25, - 231, 23, 10, 3, 213, 177, 25, 230, 160, 10, 3, 213, 177, 25, 229, 158, - 10, 3, 213, 177, 25, 221, 242, 10, 3, 213, 177, 25, 220, 88, 10, 3, 213, - 177, 25, 217, 39, 10, 3, 213, 177, 25, 210, 138, 108, 210, 137, 10, 3, - 213, 177, 25, 66, 10, 3, 213, 177, 25, 126, 108, 66, 10, 3, 213, 177, 25, - 196, 49, 10, 3, 205, 186, 230, 156, 25, 140, 10, 3, 205, 186, 25, 234, - 103, 10, 3, 205, 186, 25, 203, 114, 250, 183, 219, 224, 10, 3, 205, 186, - 25, 199, 209, 10, 3, 203, 162, 199, 84, 10, 3, 203, 114, 139, 203, 113, - 10, 3, 203, 114, 108, 228, 151, 10, 3, 203, 114, 108, 214, 229, 10, 3, - 203, 114, 108, 205, 127, 10, 3, 203, 4, 108, 235, 83, 25, 213, 219, 10, - 3, 203, 4, 108, 234, 219, 25, 251, 132, 10, 3, 202, 223, 25, 199, 209, - 10, 3, 199, 210, 108, 205, 185, 10, 3, 197, 77, 25, 231, 209, 199, 84, - 10, 3, 197, 77, 25, 115, 236, 222, 10, 3, 196, 61, 223, 92, 10, 3, 196, - 61, 25, 196, 158, 10, 3, 196, 52, 25, 237, 224, 10, 3, 196, 52, 25, 220, - 46, 10, 3, 196, 52, 25, 218, 222, 10, 3, 191, 122, 10, 3, 190, 252, 139, - 190, 252, 108, 205, 127, 10, 3, 190, 250, 25, 115, 236, 223, 199, 84, - 238, 134, 3, 242, 198, 238, 134, 3, 242, 197, 238, 134, 3, 242, 196, 238, - 134, 3, 242, 195, 238, 134, 3, 242, 194, 238, 134, 3, 242, 193, 238, 134, - 3, 242, 192, 238, 134, 3, 242, 191, 238, 134, 3, 242, 190, 238, 134, 3, - 242, 189, 238, 134, 3, 242, 188, 238, 134, 3, 242, 187, 238, 134, 3, 242, - 186, 238, 134, 3, 242, 185, 238, 134, 3, 242, 184, 238, 134, 3, 242, 183, - 238, 134, 3, 242, 182, 238, 134, 3, 242, 181, 238, 134, 3, 242, 180, 238, - 134, 3, 242, 179, 238, 134, 3, 242, 178, 238, 134, 3, 242, 177, 238, 134, - 3, 242, 176, 238, 134, 3, 242, 175, 238, 134, 3, 242, 174, 238, 134, 3, - 242, 173, 238, 134, 3, 242, 172, 238, 134, 3, 242, 171, 238, 134, 3, 242, - 170, 238, 134, 3, 242, 169, 238, 134, 3, 242, 168, 238, 134, 3, 242, 167, - 238, 134, 3, 242, 166, 238, 134, 3, 242, 165, 238, 134, 3, 242, 164, 238, - 134, 3, 242, 163, 238, 134, 3, 242, 162, 238, 134, 3, 242, 161, 238, 134, - 3, 242, 160, 238, 134, 3, 242, 159, 238, 134, 3, 242, 158, 238, 134, 3, - 242, 157, 238, 134, 3, 242, 156, 238, 134, 3, 242, 155, 238, 134, 3, 242, - 154, 238, 134, 3, 242, 153, 238, 134, 3, 242, 152, 238, 134, 3, 242, 151, - 238, 134, 3, 242, 150, 238, 134, 3, 242, 149, 238, 134, 3, 242, 148, 238, - 134, 3, 242, 147, 238, 134, 3, 242, 146, 238, 134, 3, 242, 145, 238, 134, - 3, 242, 144, 238, 134, 3, 242, 143, 238, 134, 3, 242, 142, 238, 134, 3, - 242, 141, 238, 134, 3, 242, 140, 238, 134, 3, 242, 139, 238, 134, 3, 242, - 138, 238, 134, 3, 242, 137, 238, 134, 3, 242, 136, 238, 134, 3, 242, 135, - 238, 134, 3, 242, 134, 238, 134, 3, 242, 133, 238, 134, 3, 242, 132, 238, - 134, 3, 242, 131, 238, 134, 3, 242, 130, 238, 134, 3, 242, 129, 238, 134, - 3, 242, 128, 238, 134, 3, 242, 127, 238, 134, 3, 242, 126, 238, 134, 3, - 242, 125, 238, 134, 3, 242, 124, 238, 134, 3, 242, 123, 238, 134, 3, 242, - 122, 238, 134, 3, 242, 121, 238, 134, 3, 242, 120, 238, 134, 3, 242, 119, - 238, 134, 3, 242, 118, 238, 134, 3, 242, 117, 238, 134, 3, 242, 116, 238, - 134, 3, 242, 115, 238, 134, 3, 242, 114, 238, 134, 3, 242, 113, 238, 134, - 3, 242, 112, 238, 134, 3, 242, 111, 238, 134, 3, 242, 110, 238, 134, 3, - 242, 109, 238, 134, 3, 242, 108, 238, 134, 3, 242, 107, 238, 134, 3, 242, - 106, 238, 134, 3, 242, 105, 238, 134, 3, 242, 104, 238, 134, 3, 242, 103, - 238, 134, 3, 242, 102, 238, 134, 3, 242, 101, 238, 134, 3, 242, 100, 14, - 7, 255, 199, 14, 7, 255, 198, 14, 7, 255, 197, 14, 7, 255, 196, 14, 7, - 255, 195, 14, 7, 255, 194, 14, 7, 255, 193, 14, 7, 255, 192, 14, 7, 255, - 191, 14, 7, 255, 190, 14, 7, 255, 189, 14, 7, 255, 188, 14, 7, 255, 187, - 14, 7, 255, 185, 14, 7, 255, 184, 14, 7, 255, 183, 14, 7, 255, 182, 14, - 7, 255, 181, 14, 7, 255, 180, 14, 7, 255, 179, 14, 7, 255, 178, 14, 7, - 255, 177, 14, 7, 255, 176, 14, 7, 255, 175, 14, 7, 255, 174, 14, 7, 255, - 173, 14, 7, 255, 172, 14, 7, 255, 171, 14, 7, 255, 170, 14, 7, 255, 169, - 14, 7, 255, 168, 14, 7, 255, 166, 14, 7, 255, 165, 14, 7, 255, 163, 14, - 7, 255, 162, 14, 7, 255, 161, 14, 7, 255, 160, 14, 7, 255, 159, 14, 7, - 255, 158, 14, 7, 255, 157, 14, 7, 255, 156, 14, 7, 255, 155, 14, 7, 255, - 154, 14, 7, 255, 153, 14, 7, 255, 152, 14, 7, 255, 150, 14, 7, 255, 149, - 14, 7, 255, 148, 14, 7, 255, 146, 14, 7, 255, 145, 14, 7, 255, 144, 14, - 7, 255, 143, 14, 7, 255, 142, 14, 7, 255, 141, 14, 7, 255, 140, 14, 7, - 255, 139, 14, 7, 255, 136, 14, 7, 255, 135, 14, 7, 255, 134, 14, 7, 255, - 133, 14, 7, 255, 132, 14, 7, 255, 131, 14, 7, 255, 130, 14, 7, 255, 129, - 14, 7, 255, 128, 14, 7, 255, 127, 14, 7, 255, 126, 14, 7, 255, 125, 14, - 7, 255, 124, 14, 7, 255, 123, 14, 7, 255, 122, 14, 7, 255, 121, 14, 7, - 255, 120, 14, 7, 255, 119, 14, 7, 255, 118, 14, 7, 255, 117, 14, 7, 255, - 113, 14, 7, 255, 112, 14, 7, 255, 111, 14, 7, 255, 110, 14, 7, 250, 118, - 14, 7, 250, 116, 14, 7, 250, 114, 14, 7, 250, 112, 14, 7, 250, 110, 14, - 7, 250, 109, 14, 7, 250, 107, 14, 7, 250, 105, 14, 7, 250, 103, 14, 7, - 250, 101, 14, 7, 247, 189, 14, 7, 247, 188, 14, 7, 247, 187, 14, 7, 247, - 186, 14, 7, 247, 185, 14, 7, 247, 184, 14, 7, 247, 183, 14, 7, 247, 182, - 14, 7, 247, 181, 14, 7, 247, 180, 14, 7, 247, 179, 14, 7, 247, 178, 14, - 7, 247, 177, 14, 7, 247, 176, 14, 7, 247, 175, 14, 7, 247, 174, 14, 7, - 247, 173, 14, 7, 247, 172, 14, 7, 247, 171, 14, 7, 247, 170, 14, 7, 247, - 169, 14, 7, 247, 168, 14, 7, 247, 167, 14, 7, 247, 166, 14, 7, 247, 165, - 14, 7, 247, 164, 14, 7, 247, 163, 14, 7, 247, 162, 14, 7, 238, 126, 14, - 7, 238, 125, 14, 7, 238, 124, 14, 7, 238, 123, 14, 7, 238, 122, 14, 7, - 238, 121, 14, 7, 238, 120, 14, 7, 238, 119, 14, 7, 238, 118, 14, 7, 238, - 117, 14, 7, 238, 116, 14, 7, 238, 115, 14, 7, 238, 114, 14, 7, 238, 113, - 14, 7, 238, 112, 14, 7, 238, 111, 14, 7, 238, 110, 14, 7, 238, 109, 14, - 7, 238, 108, 14, 7, 238, 107, 14, 7, 238, 106, 14, 7, 238, 105, 14, 7, - 238, 104, 14, 7, 238, 103, 14, 7, 238, 102, 14, 7, 238, 101, 14, 7, 238, - 100, 14, 7, 238, 99, 14, 7, 238, 98, 14, 7, 238, 97, 14, 7, 238, 96, 14, - 7, 238, 95, 14, 7, 238, 94, 14, 7, 238, 93, 14, 7, 238, 92, 14, 7, 238, - 91, 14, 7, 238, 90, 14, 7, 238, 89, 14, 7, 238, 88, 14, 7, 238, 87, 14, - 7, 238, 86, 14, 7, 238, 85, 14, 7, 238, 84, 14, 7, 238, 83, 14, 7, 238, - 82, 14, 7, 238, 81, 14, 7, 238, 80, 14, 7, 238, 79, 14, 7, 238, 78, 14, - 7, 238, 77, 14, 7, 238, 76, 14, 7, 238, 75, 14, 7, 238, 74, 14, 7, 238, - 73, 14, 7, 238, 72, 14, 7, 238, 71, 14, 7, 238, 70, 14, 7, 238, 69, 14, - 7, 238, 68, 14, 7, 238, 67, 14, 7, 238, 66, 14, 7, 238, 65, 14, 7, 238, - 64, 14, 7, 238, 63, 14, 7, 238, 62, 14, 7, 238, 61, 14, 7, 238, 60, 14, - 7, 238, 59, 14, 7, 238, 58, 14, 7, 238, 57, 14, 7, 238, 56, 14, 7, 238, - 55, 14, 7, 238, 54, 14, 7, 238, 53, 14, 7, 238, 52, 14, 7, 238, 51, 14, - 7, 238, 50, 14, 7, 238, 49, 14, 7, 238, 48, 14, 7, 238, 47, 14, 7, 238, - 46, 14, 7, 238, 45, 14, 7, 238, 44, 14, 7, 238, 43, 14, 7, 238, 42, 14, - 7, 238, 41, 14, 7, 238, 40, 14, 7, 238, 39, 14, 7, 238, 38, 14, 7, 238, - 37, 14, 7, 238, 36, 14, 7, 238, 35, 14, 7, 235, 7, 14, 7, 235, 6, 14, 7, - 235, 5, 14, 7, 235, 4, 14, 7, 235, 3, 14, 7, 235, 2, 14, 7, 235, 1, 14, - 7, 235, 0, 14, 7, 234, 255, 14, 7, 234, 254, 14, 7, 234, 253, 14, 7, 234, - 252, 14, 7, 234, 251, 14, 7, 234, 250, 14, 7, 234, 249, 14, 7, 234, 248, - 14, 7, 234, 247, 14, 7, 234, 246, 14, 7, 234, 245, 14, 7, 234, 244, 14, - 7, 234, 243, 14, 7, 234, 242, 14, 7, 234, 241, 14, 7, 234, 240, 14, 7, - 234, 239, 14, 7, 234, 238, 14, 7, 234, 237, 14, 7, 234, 236, 14, 7, 234, - 235, 14, 7, 234, 234, 14, 7, 234, 233, 14, 7, 234, 232, 14, 7, 234, 231, - 14, 7, 234, 230, 14, 7, 234, 229, 14, 7, 234, 228, 14, 7, 234, 227, 14, - 7, 234, 226, 14, 7, 234, 225, 14, 7, 234, 224, 14, 7, 234, 223, 14, 7, - 234, 222, 14, 7, 234, 221, 14, 7, 234, 220, 14, 7, 233, 174, 14, 7, 233, - 173, 14, 7, 233, 172, 14, 7, 233, 171, 14, 7, 233, 170, 14, 7, 233, 169, - 14, 7, 233, 168, 14, 7, 233, 167, 14, 7, 233, 166, 14, 7, 233, 165, 14, - 7, 233, 164, 14, 7, 233, 163, 14, 7, 233, 162, 14, 7, 233, 161, 14, 7, - 233, 160, 14, 7, 233, 159, 14, 7, 233, 158, 14, 7, 233, 157, 14, 7, 233, - 156, 14, 7, 233, 155, 14, 7, 233, 154, 14, 7, 233, 153, 14, 7, 233, 152, - 14, 7, 233, 151, 14, 7, 233, 150, 14, 7, 233, 149, 14, 7, 233, 148, 14, - 7, 233, 147, 14, 7, 233, 146, 14, 7, 233, 145, 14, 7, 233, 144, 14, 7, - 233, 143, 14, 7, 233, 142, 14, 7, 233, 141, 14, 7, 233, 140, 14, 7, 233, - 139, 14, 7, 233, 138, 14, 7, 233, 137, 14, 7, 233, 136, 14, 7, 233, 135, - 14, 7, 233, 134, 14, 7, 233, 133, 14, 7, 233, 132, 14, 7, 233, 131, 14, - 7, 233, 130, 14, 7, 233, 129, 14, 7, 233, 128, 14, 7, 233, 127, 14, 7, - 233, 126, 14, 7, 233, 125, 14, 7, 233, 124, 14, 7, 233, 123, 14, 7, 233, - 122, 14, 7, 233, 121, 14, 7, 233, 120, 14, 7, 233, 119, 14, 7, 233, 118, - 14, 7, 233, 117, 14, 7, 233, 116, 14, 7, 233, 115, 14, 7, 233, 114, 14, - 7, 233, 113, 14, 7, 233, 112, 14, 7, 233, 111, 14, 7, 233, 110, 14, 7, - 232, 50, 14, 7, 232, 49, 14, 7, 232, 48, 14, 7, 232, 47, 14, 7, 232, 46, - 14, 7, 232, 45, 14, 7, 232, 44, 14, 7, 232, 43, 14, 7, 232, 42, 14, 7, - 232, 41, 14, 7, 232, 40, 14, 7, 232, 39, 14, 7, 232, 38, 14, 7, 232, 37, - 14, 7, 232, 36, 14, 7, 232, 35, 14, 7, 232, 34, 14, 7, 232, 33, 14, 7, - 232, 32, 14, 7, 232, 31, 14, 7, 232, 30, 14, 7, 232, 29, 14, 7, 232, 28, - 14, 7, 232, 27, 14, 7, 232, 26, 14, 7, 232, 25, 14, 7, 232, 24, 14, 7, - 232, 23, 14, 7, 232, 22, 14, 7, 232, 21, 14, 7, 232, 20, 14, 7, 232, 19, - 14, 7, 232, 18, 14, 7, 232, 17, 14, 7, 232, 16, 14, 7, 232, 15, 14, 7, - 232, 14, 14, 7, 232, 13, 14, 7, 232, 12, 14, 7, 232, 11, 14, 7, 232, 10, - 14, 7, 232, 9, 14, 7, 232, 8, 14, 7, 232, 7, 14, 7, 232, 6, 14, 7, 232, - 5, 14, 7, 232, 4, 14, 7, 232, 3, 14, 7, 232, 2, 14, 7, 232, 1, 14, 7, - 232, 0, 14, 7, 231, 255, 14, 7, 231, 254, 14, 7, 231, 253, 14, 7, 231, - 252, 14, 7, 231, 251, 14, 7, 231, 250, 14, 7, 231, 249, 14, 7, 231, 248, - 14, 7, 231, 247, 14, 7, 231, 246, 14, 7, 231, 245, 14, 7, 231, 244, 14, - 7, 231, 243, 14, 7, 230, 114, 14, 7, 230, 113, 14, 7, 230, 112, 14, 7, - 230, 111, 14, 7, 230, 110, 14, 7, 230, 109, 14, 7, 230, 108, 14, 7, 230, - 107, 14, 7, 230, 106, 14, 7, 228, 54, 14, 7, 228, 53, 14, 7, 228, 52, 14, - 7, 228, 51, 14, 7, 228, 50, 14, 7, 228, 49, 14, 7, 228, 48, 14, 7, 228, - 47, 14, 7, 228, 46, 14, 7, 228, 45, 14, 7, 228, 44, 14, 7, 228, 43, 14, - 7, 228, 42, 14, 7, 228, 41, 14, 7, 228, 40, 14, 7, 228, 39, 14, 7, 228, - 38, 14, 7, 228, 37, 14, 7, 228, 36, 14, 7, 222, 151, 14, 7, 222, 150, 14, - 7, 222, 149, 14, 7, 222, 148, 14, 7, 222, 147, 14, 7, 222, 146, 14, 7, - 222, 145, 14, 7, 222, 144, 14, 7, 220, 140, 14, 7, 220, 139, 14, 7, 220, - 138, 14, 7, 220, 137, 14, 7, 220, 136, 14, 7, 220, 135, 14, 7, 220, 134, - 14, 7, 220, 133, 14, 7, 220, 132, 14, 7, 220, 131, 14, 7, 218, 166, 14, - 7, 218, 165, 14, 7, 218, 164, 14, 7, 218, 162, 14, 7, 218, 160, 14, 7, - 218, 159, 14, 7, 218, 157, 14, 7, 218, 155, 14, 7, 218, 153, 14, 7, 218, - 151, 14, 7, 218, 149, 14, 7, 218, 147, 14, 7, 218, 145, 14, 7, 218, 144, - 14, 7, 218, 142, 14, 7, 218, 140, 14, 7, 218, 139, 14, 7, 218, 138, 14, - 7, 218, 137, 14, 7, 218, 136, 14, 7, 218, 135, 14, 7, 218, 134, 14, 7, - 218, 133, 14, 7, 218, 132, 14, 7, 218, 130, 14, 7, 218, 128, 14, 7, 218, - 126, 14, 7, 218, 125, 14, 7, 218, 123, 14, 7, 218, 122, 14, 7, 218, 120, - 14, 7, 218, 119, 14, 7, 218, 117, 14, 7, 218, 115, 14, 7, 218, 113, 14, - 7, 218, 111, 14, 7, 218, 109, 14, 7, 218, 108, 14, 7, 218, 106, 14, 7, - 218, 104, 14, 7, 218, 103, 14, 7, 218, 101, 14, 7, 218, 99, 14, 7, 218, - 97, 14, 7, 218, 95, 14, 7, 218, 94, 14, 7, 218, 92, 14, 7, 218, 90, 14, - 7, 218, 88, 14, 7, 218, 87, 14, 7, 218, 85, 14, 7, 218, 83, 14, 7, 218, - 82, 14, 7, 218, 81, 14, 7, 218, 79, 14, 7, 218, 77, 14, 7, 218, 75, 14, - 7, 218, 73, 14, 7, 218, 71, 14, 7, 218, 69, 14, 7, 218, 67, 14, 7, 218, - 66, 14, 7, 218, 64, 14, 7, 218, 62, 14, 7, 218, 60, 14, 7, 218, 58, 14, - 7, 215, 56, 14, 7, 215, 55, 14, 7, 215, 54, 14, 7, 215, 53, 14, 7, 215, - 52, 14, 7, 215, 51, 14, 7, 215, 50, 14, 7, 215, 49, 14, 7, 215, 48, 14, - 7, 215, 47, 14, 7, 215, 46, 14, 7, 215, 45, 14, 7, 215, 44, 14, 7, 215, - 43, 14, 7, 215, 42, 14, 7, 215, 41, 14, 7, 215, 40, 14, 7, 215, 39, 14, - 7, 215, 38, 14, 7, 215, 37, 14, 7, 215, 36, 14, 7, 215, 35, 14, 7, 215, - 34, 14, 7, 215, 33, 14, 7, 215, 32, 14, 7, 215, 31, 14, 7, 215, 30, 14, - 7, 215, 29, 14, 7, 215, 28, 14, 7, 215, 27, 14, 7, 215, 26, 14, 7, 215, - 25, 14, 7, 215, 24, 14, 7, 215, 23, 14, 7, 215, 22, 14, 7, 215, 21, 14, - 7, 215, 20, 14, 7, 215, 19, 14, 7, 215, 18, 14, 7, 215, 17, 14, 7, 215, - 16, 14, 7, 215, 15, 14, 7, 215, 14, 14, 7, 215, 13, 14, 7, 215, 12, 14, - 7, 215, 11, 14, 7, 215, 10, 14, 7, 215, 9, 14, 7, 215, 8, 14, 7, 213, - 104, 14, 7, 213, 103, 14, 7, 213, 102, 14, 7, 213, 101, 14, 7, 213, 100, - 14, 7, 213, 99, 14, 7, 213, 98, 14, 7, 213, 97, 14, 7, 213, 96, 14, 7, - 213, 95, 14, 7, 213, 94, 14, 7, 213, 93, 14, 7, 213, 92, 14, 7, 213, 91, - 14, 7, 213, 90, 14, 7, 213, 89, 14, 7, 213, 88, 14, 7, 213, 87, 14, 7, - 213, 86, 14, 7, 213, 85, 14, 7, 213, 84, 14, 7, 213, 83, 14, 7, 212, 174, - 14, 7, 212, 173, 14, 7, 212, 172, 14, 7, 212, 171, 14, 7, 212, 170, 14, - 7, 212, 169, 14, 7, 212, 168, 14, 7, 212, 167, 14, 7, 212, 166, 14, 7, - 212, 165, 14, 7, 212, 164, 14, 7, 212, 163, 14, 7, 212, 162, 14, 7, 212, - 161, 14, 7, 212, 160, 14, 7, 212, 159, 14, 7, 212, 158, 14, 7, 212, 157, - 14, 7, 212, 156, 14, 7, 212, 155, 14, 7, 212, 154, 14, 7, 212, 153, 14, - 7, 212, 152, 14, 7, 212, 151, 14, 7, 212, 150, 14, 7, 212, 149, 14, 7, - 212, 2, 14, 7, 212, 1, 14, 7, 212, 0, 14, 7, 211, 255, 14, 7, 211, 254, - 14, 7, 211, 253, 14, 7, 211, 252, 14, 7, 211, 251, 14, 7, 211, 250, 14, - 7, 211, 249, 14, 7, 211, 248, 14, 7, 211, 247, 14, 7, 211, 246, 14, 7, - 211, 245, 14, 7, 211, 244, 14, 7, 211, 243, 14, 7, 211, 242, 14, 7, 211, - 241, 14, 7, 211, 240, 14, 7, 211, 239, 14, 7, 211, 238, 14, 7, 211, 237, - 14, 7, 211, 236, 14, 7, 211, 235, 14, 7, 211, 234, 14, 7, 211, 233, 14, - 7, 211, 232, 14, 7, 211, 231, 14, 7, 211, 230, 14, 7, 211, 229, 14, 7, - 211, 228, 14, 7, 211, 227, 14, 7, 211, 226, 14, 7, 211, 225, 14, 7, 211, - 224, 14, 7, 211, 223, 14, 7, 211, 222, 14, 7, 211, 221, 14, 7, 211, 220, - 14, 7, 211, 219, 14, 7, 211, 218, 14, 7, 211, 217, 14, 7, 211, 216, 14, - 7, 211, 215, 14, 7, 211, 214, 14, 7, 211, 213, 14, 7, 211, 212, 14, 7, - 211, 211, 14, 7, 211, 210, 14, 7, 211, 209, 14, 7, 211, 208, 14, 7, 211, - 207, 14, 7, 211, 206, 14, 7, 211, 205, 14, 7, 211, 204, 14, 7, 211, 203, - 14, 7, 211, 202, 14, 7, 211, 201, 14, 7, 211, 200, 14, 7, 211, 199, 14, - 7, 211, 198, 14, 7, 211, 197, 14, 7, 211, 196, 14, 7, 211, 195, 14, 7, - 211, 194, 14, 7, 211, 193, 14, 7, 211, 192, 14, 7, 211, 191, 14, 7, 211, - 190, 14, 7, 211, 189, 14, 7, 211, 188, 14, 7, 211, 187, 14, 7, 211, 186, - 14, 7, 211, 185, 14, 7, 211, 184, 14, 7, 210, 235, 14, 7, 210, 234, 14, - 7, 210, 233, 14, 7, 210, 232, 14, 7, 210, 231, 14, 7, 210, 230, 14, 7, - 210, 229, 14, 7, 210, 228, 14, 7, 210, 227, 14, 7, 210, 226, 14, 7, 210, - 225, 14, 7, 210, 224, 14, 7, 210, 223, 14, 7, 208, 103, 14, 7, 208, 102, - 14, 7, 208, 101, 14, 7, 208, 100, 14, 7, 208, 99, 14, 7, 208, 98, 14, 7, - 208, 97, 14, 7, 207, 220, 14, 7, 207, 219, 14, 7, 207, 218, 14, 7, 207, - 217, 14, 7, 207, 216, 14, 7, 207, 215, 14, 7, 207, 214, 14, 7, 207, 213, - 14, 7, 207, 212, 14, 7, 207, 211, 14, 7, 207, 210, 14, 7, 207, 209, 14, - 7, 207, 208, 14, 7, 207, 207, 14, 7, 207, 206, 14, 7, 207, 205, 14, 7, - 207, 204, 14, 7, 207, 203, 14, 7, 207, 202, 14, 7, 207, 201, 14, 7, 207, - 200, 14, 7, 207, 199, 14, 7, 207, 198, 14, 7, 207, 197, 14, 7, 207, 196, - 14, 7, 207, 195, 14, 7, 207, 194, 14, 7, 207, 193, 14, 7, 207, 192, 14, - 7, 207, 191, 14, 7, 207, 190, 14, 7, 207, 189, 14, 7, 207, 188, 14, 7, - 207, 187, 14, 7, 206, 5, 14, 7, 206, 4, 14, 7, 206, 3, 14, 7, 206, 2, 14, - 7, 206, 1, 14, 7, 206, 0, 14, 7, 205, 255, 14, 7, 205, 254, 14, 7, 205, - 253, 14, 7, 205, 252, 14, 7, 205, 251, 14, 7, 205, 250, 14, 7, 205, 249, - 14, 7, 205, 248, 14, 7, 205, 247, 14, 7, 205, 246, 14, 7, 205, 245, 14, - 7, 205, 244, 14, 7, 205, 243, 14, 7, 205, 242, 14, 7, 205, 241, 14, 7, - 205, 240, 14, 7, 205, 239, 14, 7, 205, 238, 14, 7, 205, 237, 14, 7, 205, - 236, 14, 7, 205, 235, 14, 7, 205, 234, 14, 7, 205, 233, 14, 7, 205, 232, - 14, 7, 205, 231, 14, 7, 205, 230, 14, 7, 205, 229, 14, 7, 205, 228, 14, - 7, 205, 227, 14, 7, 205, 226, 14, 7, 205, 225, 14, 7, 205, 224, 14, 7, - 205, 223, 14, 7, 205, 222, 14, 7, 205, 221, 14, 7, 205, 220, 14, 7, 205, - 219, 14, 7, 205, 218, 14, 7, 205, 217, 14, 7, 205, 216, 14, 7, 205, 215, - 14, 7, 205, 214, 14, 7, 205, 213, 14, 7, 205, 212, 14, 7, 205, 211, 14, - 7, 205, 210, 14, 7, 205, 209, 14, 7, 205, 208, 14, 7, 200, 40, 14, 7, - 200, 39, 14, 7, 200, 38, 14, 7, 200, 37, 14, 7, 200, 36, 14, 7, 200, 35, - 14, 7, 200, 34, 14, 7, 200, 33, 14, 7, 200, 32, 14, 7, 200, 31, 14, 7, - 200, 30, 14, 7, 200, 29, 14, 7, 200, 28, 14, 7, 200, 27, 14, 7, 200, 26, - 14, 7, 200, 25, 14, 7, 200, 24, 14, 7, 200, 23, 14, 7, 200, 22, 14, 7, - 200, 21, 14, 7, 200, 20, 14, 7, 200, 19, 14, 7, 200, 18, 14, 7, 200, 17, - 14, 7, 200, 16, 14, 7, 200, 15, 14, 7, 200, 14, 14, 7, 200, 13, 14, 7, - 200, 12, 14, 7, 200, 11, 14, 7, 200, 10, 14, 7, 200, 9, 14, 7, 200, 8, + 10, 3, 220, 53, 10, 3, 220, 52, 10, 3, 220, 51, 10, 3, 220, 50, 10, 3, + 220, 49, 10, 3, 220, 48, 10, 3, 220, 47, 10, 3, 220, 46, 10, 3, 220, 45, + 10, 3, 220, 44, 10, 3, 220, 43, 10, 3, 220, 42, 10, 3, 220, 41, 10, 3, + 220, 40, 10, 3, 220, 38, 10, 3, 220, 39, 25, 230, 146, 10, 3, 220, 39, + 25, 223, 172, 10, 3, 220, 39, 25, 210, 128, 107, 218, 200, 10, 3, 220, + 39, 25, 210, 128, 107, 210, 128, 107, 218, 200, 10, 3, 220, 39, 25, 196, + 166, 107, 249, 103, 10, 3, 220, 37, 10, 3, 220, 36, 10, 3, 220, 35, 10, + 3, 220, 34, 10, 3, 220, 33, 10, 3, 220, 32, 10, 3, 220, 31, 10, 3, 220, + 30, 10, 3, 220, 29, 10, 3, 220, 28, 10, 3, 220, 26, 10, 3, 220, 27, 25, + 250, 159, 10, 3, 220, 27, 25, 249, 85, 10, 3, 220, 27, 25, 235, 30, 230, + 123, 230, 122, 10, 3, 220, 27, 25, 220, 199, 10, 3, 220, 27, 25, 171, 10, + 3, 220, 27, 25, 199, 174, 10, 3, 220, 27, 25, 199, 140, 10, 3, 220, 27, + 25, 196, 165, 10, 3, 220, 27, 25, 196, 154, 10, 3, 220, 27, 25, 196, 45, + 10, 3, 220, 25, 10, 3, 220, 23, 10, 3, 220, 24, 25, 235, 43, 10, 3, 220, + 24, 25, 231, 203, 10, 3, 220, 24, 25, 223, 172, 10, 3, 220, 24, 25, 223, + 173, 230, 122, 10, 3, 220, 24, 25, 213, 205, 10, 3, 220, 24, 25, 210, + 128, 107, 210, 128, 107, 218, 200, 10, 3, 220, 24, 25, 203, 93, 107, 221, + 142, 10, 3, 220, 24, 25, 196, 154, 10, 3, 220, 24, 25, 196, 45, 10, 3, + 220, 21, 10, 3, 220, 20, 10, 3, 218, 202, 230, 123, 25, 250, 159, 10, 3, + 218, 202, 25, 236, 177, 10, 3, 218, 202, 25, 230, 40, 10, 3, 218, 202, + 25, 210, 127, 10, 3, 218, 202, 25, 210, 128, 107, 210, 128, 107, 218, + 200, 10, 3, 218, 202, 25, 199, 204, 10, 3, 216, 82, 107, 191, 122, 10, 3, + 215, 88, 138, 215, 88, 25, 231, 203, 10, 3, 215, 88, 138, 215, 88, 25, + 222, 69, 10, 3, 213, 163, 25, 236, 211, 230, 122, 10, 3, 213, 163, 25, + 230, 243, 10, 3, 213, 163, 25, 230, 127, 10, 3, 213, 163, 25, 229, 126, + 10, 3, 213, 163, 25, 221, 217, 10, 3, 213, 163, 25, 220, 64, 10, 3, 213, + 163, 25, 217, 20, 10, 3, 213, 163, 25, 210, 128, 107, 210, 127, 10, 3, + 213, 163, 25, 69, 10, 3, 213, 163, 25, 126, 107, 69, 10, 3, 213, 163, 25, + 196, 45, 10, 3, 205, 181, 230, 123, 25, 144, 10, 3, 205, 181, 25, 234, + 61, 10, 3, 205, 181, 25, 203, 109, 250, 133, 219, 200, 10, 3, 205, 181, + 25, 199, 204, 10, 3, 203, 157, 199, 79, 10, 3, 203, 109, 138, 203, 108, + 10, 3, 203, 109, 107, 228, 120, 10, 3, 203, 109, 107, 214, 215, 10, 3, + 203, 109, 107, 205, 122, 10, 3, 202, 255, 107, 235, 39, 25, 213, 205, 10, + 3, 202, 255, 107, 234, 175, 25, 251, 81, 10, 3, 202, 218, 25, 199, 204, + 10, 3, 199, 205, 107, 205, 180, 10, 3, 197, 73, 25, 231, 172, 199, 79, + 10, 3, 197, 73, 25, 115, 236, 177, 10, 3, 196, 57, 223, 64, 10, 3, 196, + 57, 25, 196, 154, 10, 3, 196, 48, 25, 237, 179, 10, 3, 196, 48, 25, 220, + 22, 10, 3, 196, 48, 25, 218, 200, 10, 3, 191, 122, 10, 3, 190, 252, 138, + 190, 252, 107, 205, 122, 10, 3, 190, 250, 25, 115, 236, 178, 199, 79, + 238, 87, 3, 242, 150, 238, 87, 3, 242, 149, 238, 87, 3, 242, 148, 238, + 87, 3, 242, 147, 238, 87, 3, 242, 146, 238, 87, 3, 242, 145, 238, 87, 3, + 242, 144, 238, 87, 3, 242, 143, 238, 87, 3, 242, 142, 238, 87, 3, 242, + 141, 238, 87, 3, 242, 140, 238, 87, 3, 242, 139, 238, 87, 3, 242, 138, + 238, 87, 3, 242, 137, 238, 87, 3, 242, 136, 238, 87, 3, 242, 135, 238, + 87, 3, 242, 134, 238, 87, 3, 242, 133, 238, 87, 3, 242, 132, 238, 87, 3, + 242, 131, 238, 87, 3, 242, 130, 238, 87, 3, 242, 129, 238, 87, 3, 242, + 128, 238, 87, 3, 242, 127, 238, 87, 3, 242, 126, 238, 87, 3, 242, 125, + 238, 87, 3, 242, 124, 238, 87, 3, 242, 123, 238, 87, 3, 242, 122, 238, + 87, 3, 242, 121, 238, 87, 3, 242, 120, 238, 87, 3, 242, 119, 238, 87, 3, + 242, 118, 238, 87, 3, 242, 117, 238, 87, 3, 242, 116, 238, 87, 3, 242, + 115, 238, 87, 3, 242, 114, 238, 87, 3, 242, 113, 238, 87, 3, 242, 112, + 238, 87, 3, 242, 111, 238, 87, 3, 242, 110, 238, 87, 3, 242, 109, 238, + 87, 3, 242, 108, 238, 87, 3, 242, 107, 238, 87, 3, 242, 106, 238, 87, 3, + 242, 105, 238, 87, 3, 242, 104, 238, 87, 3, 242, 103, 238, 87, 3, 242, + 102, 238, 87, 3, 242, 101, 238, 87, 3, 242, 100, 238, 87, 3, 242, 99, + 238, 87, 3, 242, 98, 238, 87, 3, 242, 97, 238, 87, 3, 242, 96, 238, 87, + 3, 242, 95, 238, 87, 3, 242, 94, 238, 87, 3, 242, 93, 238, 87, 3, 242, + 92, 238, 87, 3, 242, 91, 238, 87, 3, 242, 90, 238, 87, 3, 242, 89, 238, + 87, 3, 242, 88, 238, 87, 3, 242, 87, 238, 87, 3, 242, 86, 238, 87, 3, + 242, 85, 238, 87, 3, 242, 84, 238, 87, 3, 242, 83, 238, 87, 3, 242, 82, + 238, 87, 3, 242, 81, 238, 87, 3, 242, 80, 238, 87, 3, 242, 79, 238, 87, + 3, 242, 78, 238, 87, 3, 242, 77, 238, 87, 3, 242, 76, 238, 87, 3, 242, + 75, 238, 87, 3, 242, 74, 238, 87, 3, 242, 73, 238, 87, 3, 242, 72, 238, + 87, 3, 242, 71, 238, 87, 3, 242, 70, 238, 87, 3, 242, 69, 238, 87, 3, + 242, 68, 238, 87, 3, 242, 67, 238, 87, 3, 242, 66, 238, 87, 3, 242, 65, + 238, 87, 3, 242, 64, 238, 87, 3, 242, 63, 238, 87, 3, 242, 62, 238, 87, + 3, 242, 61, 238, 87, 3, 242, 60, 238, 87, 3, 242, 59, 238, 87, 3, 242, + 58, 238, 87, 3, 242, 57, 238, 87, 3, 242, 56, 238, 87, 3, 242, 55, 238, + 87, 3, 242, 54, 238, 87, 3, 242, 53, 238, 87, 3, 242, 52, 14, 7, 255, + 147, 14, 7, 255, 146, 14, 7, 255, 145, 14, 7, 255, 144, 14, 7, 255, 143, + 14, 7, 255, 142, 14, 7, 255, 141, 14, 7, 255, 140, 14, 7, 255, 139, 14, + 7, 255, 138, 14, 7, 255, 137, 14, 7, 255, 136, 14, 7, 255, 135, 14, 7, + 255, 133, 14, 7, 255, 132, 14, 7, 255, 131, 14, 7, 255, 130, 14, 7, 255, + 129, 14, 7, 255, 128, 14, 7, 255, 127, 14, 7, 255, 126, 14, 7, 255, 125, + 14, 7, 255, 124, 14, 7, 255, 123, 14, 7, 255, 122, 14, 7, 255, 121, 14, + 7, 255, 120, 14, 7, 255, 119, 14, 7, 255, 118, 14, 7, 255, 117, 14, 7, + 255, 116, 14, 7, 255, 114, 14, 7, 255, 113, 14, 7, 255, 111, 14, 7, 255, + 110, 14, 7, 255, 109, 14, 7, 255, 108, 14, 7, 255, 107, 14, 7, 255, 106, + 14, 7, 255, 105, 14, 7, 255, 104, 14, 7, 255, 103, 14, 7, 255, 102, 14, + 7, 255, 101, 14, 7, 255, 100, 14, 7, 255, 98, 14, 7, 255, 97, 14, 7, 255, + 96, 14, 7, 255, 94, 14, 7, 255, 93, 14, 7, 255, 92, 14, 7, 255, 91, 14, + 7, 255, 90, 14, 7, 255, 89, 14, 7, 255, 88, 14, 7, 255, 87, 14, 7, 255, + 84, 14, 7, 255, 83, 14, 7, 255, 82, 14, 7, 255, 81, 14, 7, 255, 80, 14, + 7, 255, 79, 14, 7, 255, 78, 14, 7, 255, 77, 14, 7, 255, 76, 14, 7, 255, + 75, 14, 7, 255, 74, 14, 7, 255, 73, 14, 7, 255, 72, 14, 7, 255, 71, 14, + 7, 255, 70, 14, 7, 255, 69, 14, 7, 255, 68, 14, 7, 255, 67, 14, 7, 255, + 66, 14, 7, 255, 65, 14, 7, 255, 61, 14, 7, 255, 60, 14, 7, 255, 59, 14, + 7, 255, 58, 14, 7, 250, 68, 14, 7, 250, 66, 14, 7, 250, 64, 14, 7, 250, + 62, 14, 7, 250, 60, 14, 7, 250, 59, 14, 7, 250, 57, 14, 7, 250, 55, 14, + 7, 250, 53, 14, 7, 250, 51, 14, 7, 247, 141, 14, 7, 247, 140, 14, 7, 247, + 139, 14, 7, 247, 138, 14, 7, 247, 137, 14, 7, 247, 136, 14, 7, 247, 135, + 14, 7, 247, 134, 14, 7, 247, 133, 14, 7, 247, 132, 14, 7, 247, 131, 14, + 7, 247, 130, 14, 7, 247, 129, 14, 7, 247, 128, 14, 7, 247, 127, 14, 7, + 247, 126, 14, 7, 247, 125, 14, 7, 247, 124, 14, 7, 247, 123, 14, 7, 247, + 122, 14, 7, 247, 121, 14, 7, 247, 120, 14, 7, 247, 119, 14, 7, 247, 118, + 14, 7, 247, 117, 14, 7, 247, 116, 14, 7, 247, 115, 14, 7, 247, 114, 14, + 7, 238, 79, 14, 7, 238, 78, 14, 7, 238, 77, 14, 7, 238, 76, 14, 7, 238, + 75, 14, 7, 238, 74, 14, 7, 238, 73, 14, 7, 238, 72, 14, 7, 238, 71, 14, + 7, 238, 70, 14, 7, 238, 69, 14, 7, 238, 68, 14, 7, 238, 67, 14, 7, 238, + 66, 14, 7, 238, 65, 14, 7, 238, 64, 14, 7, 238, 63, 14, 7, 238, 62, 14, + 7, 238, 61, 14, 7, 238, 60, 14, 7, 238, 59, 14, 7, 238, 58, 14, 7, 238, + 57, 14, 7, 238, 56, 14, 7, 238, 55, 14, 7, 238, 54, 14, 7, 238, 53, 14, + 7, 238, 52, 14, 7, 238, 51, 14, 7, 238, 50, 14, 7, 238, 49, 14, 7, 238, + 48, 14, 7, 238, 47, 14, 7, 238, 46, 14, 7, 238, 45, 14, 7, 238, 44, 14, + 7, 238, 43, 14, 7, 238, 42, 14, 7, 238, 41, 14, 7, 238, 40, 14, 7, 238, + 39, 14, 7, 238, 38, 14, 7, 238, 37, 14, 7, 238, 36, 14, 7, 238, 35, 14, + 7, 238, 34, 14, 7, 238, 33, 14, 7, 238, 32, 14, 7, 238, 31, 14, 7, 238, + 30, 14, 7, 238, 29, 14, 7, 238, 28, 14, 7, 238, 27, 14, 7, 238, 26, 14, + 7, 238, 25, 14, 7, 238, 24, 14, 7, 238, 23, 14, 7, 238, 22, 14, 7, 238, + 21, 14, 7, 238, 20, 14, 7, 238, 19, 14, 7, 238, 18, 14, 7, 238, 17, 14, + 7, 238, 16, 14, 7, 238, 15, 14, 7, 238, 14, 14, 7, 238, 13, 14, 7, 238, + 12, 14, 7, 238, 11, 14, 7, 238, 10, 14, 7, 238, 9, 14, 7, 238, 8, 14, 7, + 238, 7, 14, 7, 238, 6, 14, 7, 238, 5, 14, 7, 238, 4, 14, 7, 238, 3, 14, + 7, 238, 2, 14, 7, 238, 1, 14, 7, 238, 0, 14, 7, 237, 255, 14, 7, 237, + 254, 14, 7, 237, 253, 14, 7, 237, 252, 14, 7, 237, 251, 14, 7, 237, 250, + 14, 7, 237, 249, 14, 7, 237, 248, 14, 7, 237, 247, 14, 7, 237, 246, 14, + 7, 237, 245, 14, 7, 237, 244, 14, 7, 234, 219, 14, 7, 234, 218, 14, 7, + 234, 217, 14, 7, 234, 216, 14, 7, 234, 215, 14, 7, 234, 214, 14, 7, 234, + 213, 14, 7, 234, 212, 14, 7, 234, 211, 14, 7, 234, 210, 14, 7, 234, 209, + 14, 7, 234, 208, 14, 7, 234, 207, 14, 7, 234, 206, 14, 7, 234, 205, 14, + 7, 234, 204, 14, 7, 234, 203, 14, 7, 234, 202, 14, 7, 234, 201, 14, 7, + 234, 200, 14, 7, 234, 199, 14, 7, 234, 198, 14, 7, 234, 197, 14, 7, 234, + 196, 14, 7, 234, 195, 14, 7, 234, 194, 14, 7, 234, 193, 14, 7, 234, 192, + 14, 7, 234, 191, 14, 7, 234, 190, 14, 7, 234, 189, 14, 7, 234, 188, 14, + 7, 234, 187, 14, 7, 234, 186, 14, 7, 234, 185, 14, 7, 234, 184, 14, 7, + 234, 183, 14, 7, 234, 182, 14, 7, 234, 181, 14, 7, 234, 180, 14, 7, 234, + 179, 14, 7, 234, 178, 14, 7, 234, 177, 14, 7, 234, 176, 14, 7, 233, 133, + 14, 7, 233, 132, 14, 7, 233, 131, 14, 7, 233, 130, 14, 7, 233, 129, 14, + 7, 233, 128, 14, 7, 233, 127, 14, 7, 233, 126, 14, 7, 233, 125, 14, 7, + 233, 124, 14, 7, 233, 123, 14, 7, 233, 122, 14, 7, 233, 121, 14, 7, 233, + 120, 14, 7, 233, 119, 14, 7, 233, 118, 14, 7, 233, 117, 14, 7, 233, 116, + 14, 7, 233, 115, 14, 7, 233, 114, 14, 7, 233, 113, 14, 7, 233, 112, 14, + 7, 233, 111, 14, 7, 233, 110, 14, 7, 233, 109, 14, 7, 233, 108, 14, 7, + 233, 107, 14, 7, 233, 106, 14, 7, 233, 105, 14, 7, 233, 104, 14, 7, 233, + 103, 14, 7, 233, 102, 14, 7, 233, 101, 14, 7, 233, 100, 14, 7, 233, 99, + 14, 7, 233, 98, 14, 7, 233, 97, 14, 7, 233, 96, 14, 7, 233, 95, 14, 7, + 233, 94, 14, 7, 233, 93, 14, 7, 233, 92, 14, 7, 233, 91, 14, 7, 233, 90, + 14, 7, 233, 89, 14, 7, 233, 88, 14, 7, 233, 87, 14, 7, 233, 86, 14, 7, + 233, 85, 14, 7, 233, 84, 14, 7, 233, 83, 14, 7, 233, 82, 14, 7, 233, 81, + 14, 7, 233, 80, 14, 7, 233, 79, 14, 7, 233, 78, 14, 7, 233, 77, 14, 7, + 233, 76, 14, 7, 233, 75, 14, 7, 233, 74, 14, 7, 233, 73, 14, 7, 233, 72, + 14, 7, 233, 71, 14, 7, 233, 70, 14, 7, 233, 69, 14, 7, 232, 13, 14, 7, + 232, 12, 14, 7, 232, 11, 14, 7, 232, 10, 14, 7, 232, 9, 14, 7, 232, 8, + 14, 7, 232, 7, 14, 7, 232, 6, 14, 7, 232, 5, 14, 7, 232, 4, 14, 7, 232, + 3, 14, 7, 232, 2, 14, 7, 232, 1, 14, 7, 232, 0, 14, 7, 231, 255, 14, 7, + 231, 254, 14, 7, 231, 253, 14, 7, 231, 252, 14, 7, 231, 251, 14, 7, 231, + 250, 14, 7, 231, 249, 14, 7, 231, 248, 14, 7, 231, 247, 14, 7, 231, 246, + 14, 7, 231, 245, 14, 7, 231, 244, 14, 7, 231, 243, 14, 7, 231, 242, 14, + 7, 231, 241, 14, 7, 231, 240, 14, 7, 231, 239, 14, 7, 231, 238, 14, 7, + 231, 237, 14, 7, 231, 236, 14, 7, 231, 235, 14, 7, 231, 234, 14, 7, 231, + 233, 14, 7, 231, 232, 14, 7, 231, 231, 14, 7, 231, 230, 14, 7, 231, 229, + 14, 7, 231, 228, 14, 7, 231, 227, 14, 7, 231, 226, 14, 7, 231, 225, 14, + 7, 231, 224, 14, 7, 231, 223, 14, 7, 231, 222, 14, 7, 231, 221, 14, 7, + 231, 220, 14, 7, 231, 219, 14, 7, 231, 218, 14, 7, 231, 217, 14, 7, 231, + 216, 14, 7, 231, 215, 14, 7, 231, 214, 14, 7, 231, 213, 14, 7, 231, 212, + 14, 7, 231, 211, 14, 7, 231, 210, 14, 7, 231, 209, 14, 7, 231, 208, 14, + 7, 231, 207, 14, 7, 231, 206, 14, 7, 230, 81, 14, 7, 230, 80, 14, 7, 230, + 79, 14, 7, 230, 78, 14, 7, 230, 77, 14, 7, 230, 76, 14, 7, 230, 75, 14, + 7, 230, 74, 14, 7, 230, 73, 14, 7, 228, 24, 14, 7, 228, 23, 14, 7, 228, + 22, 14, 7, 228, 21, 14, 7, 228, 20, 14, 7, 228, 19, 14, 7, 228, 18, 14, + 7, 228, 17, 14, 7, 228, 16, 14, 7, 228, 15, 14, 7, 228, 14, 14, 7, 228, + 13, 14, 7, 228, 12, 14, 7, 228, 11, 14, 7, 228, 10, 14, 7, 228, 9, 14, 7, + 228, 8, 14, 7, 228, 7, 14, 7, 228, 6, 14, 7, 222, 124, 14, 7, 222, 123, + 14, 7, 222, 122, 14, 7, 222, 121, 14, 7, 222, 120, 14, 7, 222, 119, 14, + 7, 222, 118, 14, 7, 222, 117, 14, 7, 220, 116, 14, 7, 220, 115, 14, 7, + 220, 114, 14, 7, 220, 113, 14, 7, 220, 112, 14, 7, 220, 111, 14, 7, 220, + 110, 14, 7, 220, 109, 14, 7, 220, 108, 14, 7, 220, 107, 14, 7, 218, 145, + 14, 7, 218, 144, 14, 7, 218, 143, 14, 7, 218, 141, 14, 7, 218, 139, 14, + 7, 218, 138, 14, 7, 218, 136, 14, 7, 218, 134, 14, 7, 218, 132, 14, 7, + 218, 130, 14, 7, 218, 128, 14, 7, 218, 126, 14, 7, 218, 124, 14, 7, 218, + 123, 14, 7, 218, 121, 14, 7, 218, 119, 14, 7, 218, 118, 14, 7, 218, 117, + 14, 7, 218, 116, 14, 7, 218, 115, 14, 7, 218, 114, 14, 7, 218, 113, 14, + 7, 218, 112, 14, 7, 218, 111, 14, 7, 218, 109, 14, 7, 218, 107, 14, 7, + 218, 105, 14, 7, 218, 104, 14, 7, 218, 102, 14, 7, 218, 101, 14, 7, 218, + 99, 14, 7, 218, 98, 14, 7, 218, 96, 14, 7, 218, 94, 14, 7, 218, 92, 14, + 7, 218, 90, 14, 7, 218, 88, 14, 7, 218, 87, 14, 7, 218, 85, 14, 7, 218, + 83, 14, 7, 218, 82, 14, 7, 218, 80, 14, 7, 218, 78, 14, 7, 218, 76, 14, + 7, 218, 74, 14, 7, 218, 73, 14, 7, 218, 71, 14, 7, 218, 69, 14, 7, 218, + 67, 14, 7, 218, 66, 14, 7, 218, 64, 14, 7, 218, 62, 14, 7, 218, 61, 14, + 7, 218, 60, 14, 7, 218, 58, 14, 7, 218, 56, 14, 7, 218, 54, 14, 7, 218, + 52, 14, 7, 218, 50, 14, 7, 218, 48, 14, 7, 218, 46, 14, 7, 218, 45, 14, + 7, 218, 43, 14, 7, 218, 41, 14, 7, 218, 39, 14, 7, 218, 37, 14, 7, 215, + 42, 14, 7, 215, 41, 14, 7, 215, 40, 14, 7, 215, 39, 14, 7, 215, 38, 14, + 7, 215, 37, 14, 7, 215, 36, 14, 7, 215, 35, 14, 7, 215, 34, 14, 7, 215, + 33, 14, 7, 215, 32, 14, 7, 215, 31, 14, 7, 215, 30, 14, 7, 215, 29, 14, + 7, 215, 28, 14, 7, 215, 27, 14, 7, 215, 26, 14, 7, 215, 25, 14, 7, 215, + 24, 14, 7, 215, 23, 14, 7, 215, 22, 14, 7, 215, 21, 14, 7, 215, 20, 14, + 7, 215, 19, 14, 7, 215, 18, 14, 7, 215, 17, 14, 7, 215, 16, 14, 7, 215, + 15, 14, 7, 215, 14, 14, 7, 215, 13, 14, 7, 215, 12, 14, 7, 215, 11, 14, + 7, 215, 10, 14, 7, 215, 9, 14, 7, 215, 8, 14, 7, 215, 7, 14, 7, 215, 6, + 14, 7, 215, 5, 14, 7, 215, 4, 14, 7, 215, 3, 14, 7, 215, 2, 14, 7, 215, + 1, 14, 7, 215, 0, 14, 7, 214, 255, 14, 7, 214, 254, 14, 7, 214, 253, 14, + 7, 214, 252, 14, 7, 214, 251, 14, 7, 214, 250, 14, 7, 213, 91, 14, 7, + 213, 90, 14, 7, 213, 89, 14, 7, 213, 88, 14, 7, 213, 87, 14, 7, 213, 86, + 14, 7, 213, 85, 14, 7, 213, 84, 14, 7, 213, 83, 14, 7, 213, 82, 14, 7, + 213, 81, 14, 7, 213, 80, 14, 7, 213, 79, 14, 7, 213, 78, 14, 7, 213, 77, + 14, 7, 213, 76, 14, 7, 213, 75, 14, 7, 213, 74, 14, 7, 213, 73, 14, 7, + 213, 72, 14, 7, 213, 71, 14, 7, 213, 70, 14, 7, 212, 161, 14, 7, 212, + 160, 14, 7, 212, 159, 14, 7, 212, 158, 14, 7, 212, 157, 14, 7, 212, 156, + 14, 7, 212, 155, 14, 7, 212, 154, 14, 7, 212, 153, 14, 7, 212, 152, 14, + 7, 212, 151, 14, 7, 212, 150, 14, 7, 212, 149, 14, 7, 212, 148, 14, 7, + 212, 147, 14, 7, 212, 146, 14, 7, 212, 145, 14, 7, 212, 144, 14, 7, 212, + 143, 14, 7, 212, 142, 14, 7, 212, 141, 14, 7, 212, 140, 14, 7, 212, 139, + 14, 7, 212, 138, 14, 7, 212, 137, 14, 7, 212, 136, 14, 7, 211, 245, 14, + 7, 211, 244, 14, 7, 211, 243, 14, 7, 211, 242, 14, 7, 211, 241, 14, 7, + 211, 240, 14, 7, 211, 239, 14, 7, 211, 238, 14, 7, 211, 237, 14, 7, 211, + 236, 14, 7, 211, 235, 14, 7, 211, 234, 14, 7, 211, 233, 14, 7, 211, 232, + 14, 7, 211, 231, 14, 7, 211, 230, 14, 7, 211, 229, 14, 7, 211, 228, 14, + 7, 211, 227, 14, 7, 211, 226, 14, 7, 211, 225, 14, 7, 211, 224, 14, 7, + 211, 223, 14, 7, 211, 222, 14, 7, 211, 221, 14, 7, 211, 220, 14, 7, 211, + 219, 14, 7, 211, 218, 14, 7, 211, 217, 14, 7, 211, 216, 14, 7, 211, 215, + 14, 7, 211, 214, 14, 7, 211, 213, 14, 7, 211, 212, 14, 7, 211, 211, 14, + 7, 211, 210, 14, 7, 211, 209, 14, 7, 211, 208, 14, 7, 211, 207, 14, 7, + 211, 206, 14, 7, 211, 205, 14, 7, 211, 204, 14, 7, 211, 203, 14, 7, 211, + 202, 14, 7, 211, 201, 14, 7, 211, 200, 14, 7, 211, 199, 14, 7, 211, 198, + 14, 7, 211, 197, 14, 7, 211, 196, 14, 7, 211, 195, 14, 7, 211, 194, 14, + 7, 211, 193, 14, 7, 211, 192, 14, 7, 211, 191, 14, 7, 211, 190, 14, 7, + 211, 189, 14, 7, 211, 188, 14, 7, 211, 187, 14, 7, 211, 186, 14, 7, 211, + 185, 14, 7, 211, 184, 14, 7, 211, 183, 14, 7, 211, 182, 14, 7, 211, 181, + 14, 7, 211, 180, 14, 7, 211, 179, 14, 7, 211, 178, 14, 7, 211, 177, 14, + 7, 211, 176, 14, 7, 211, 175, 14, 7, 211, 174, 14, 7, 211, 173, 14, 7, + 211, 172, 14, 7, 211, 171, 14, 7, 210, 225, 14, 7, 210, 224, 14, 7, 210, + 223, 14, 7, 210, 222, 14, 7, 210, 221, 14, 7, 210, 220, 14, 7, 210, 219, + 14, 7, 210, 218, 14, 7, 210, 217, 14, 7, 210, 216, 14, 7, 210, 215, 14, + 7, 210, 214, 14, 7, 210, 213, 14, 7, 208, 96, 14, 7, 208, 95, 14, 7, 208, + 94, 14, 7, 208, 93, 14, 7, 208, 92, 14, 7, 208, 91, 14, 7, 208, 90, 14, + 7, 207, 215, 14, 7, 207, 214, 14, 7, 207, 213, 14, 7, 207, 212, 14, 7, + 207, 211, 14, 7, 207, 210, 14, 7, 207, 209, 14, 7, 207, 208, 14, 7, 207, + 207, 14, 7, 207, 206, 14, 7, 207, 205, 14, 7, 207, 204, 14, 7, 207, 203, + 14, 7, 207, 202, 14, 7, 207, 201, 14, 7, 207, 200, 14, 7, 207, 199, 14, + 7, 207, 198, 14, 7, 207, 197, 14, 7, 207, 196, 14, 7, 207, 195, 14, 7, + 207, 194, 14, 7, 207, 193, 14, 7, 207, 192, 14, 7, 207, 191, 14, 7, 207, + 190, 14, 7, 207, 189, 14, 7, 207, 188, 14, 7, 207, 187, 14, 7, 207, 186, + 14, 7, 207, 185, 14, 7, 207, 184, 14, 7, 207, 183, 14, 7, 207, 182, 14, + 7, 206, 0, 14, 7, 205, 255, 14, 7, 205, 254, 14, 7, 205, 253, 14, 7, 205, + 252, 14, 7, 205, 251, 14, 7, 205, 250, 14, 7, 205, 249, 14, 7, 205, 248, + 14, 7, 205, 247, 14, 7, 205, 246, 14, 7, 205, 245, 14, 7, 205, 244, 14, + 7, 205, 243, 14, 7, 205, 242, 14, 7, 205, 241, 14, 7, 205, 240, 14, 7, + 205, 239, 14, 7, 205, 238, 14, 7, 205, 237, 14, 7, 205, 236, 14, 7, 205, + 235, 14, 7, 205, 234, 14, 7, 205, 233, 14, 7, 205, 232, 14, 7, 205, 231, + 14, 7, 205, 230, 14, 7, 205, 229, 14, 7, 205, 228, 14, 7, 205, 227, 14, + 7, 205, 226, 14, 7, 205, 225, 14, 7, 205, 224, 14, 7, 205, 223, 14, 7, + 205, 222, 14, 7, 205, 221, 14, 7, 205, 220, 14, 7, 205, 219, 14, 7, 205, + 218, 14, 7, 205, 217, 14, 7, 205, 216, 14, 7, 205, 215, 14, 7, 205, 214, + 14, 7, 205, 213, 14, 7, 205, 212, 14, 7, 205, 211, 14, 7, 205, 210, 14, + 7, 205, 209, 14, 7, 205, 208, 14, 7, 205, 207, 14, 7, 205, 206, 14, 7, + 205, 205, 14, 7, 205, 204, 14, 7, 205, 203, 14, 7, 200, 36, 14, 7, 200, + 35, 14, 7, 200, 34, 14, 7, 200, 33, 14, 7, 200, 32, 14, 7, 200, 31, 14, + 7, 200, 30, 14, 7, 200, 29, 14, 7, 200, 28, 14, 7, 200, 27, 14, 7, 200, + 26, 14, 7, 200, 25, 14, 7, 200, 24, 14, 7, 200, 23, 14, 7, 200, 22, 14, + 7, 200, 21, 14, 7, 200, 20, 14, 7, 200, 19, 14, 7, 200, 18, 14, 7, 200, + 17, 14, 7, 200, 16, 14, 7, 200, 15, 14, 7, 200, 14, 14, 7, 200, 13, 14, + 7, 200, 12, 14, 7, 200, 11, 14, 7, 200, 10, 14, 7, 200, 9, 14, 7, 200, 8, 14, 7, 200, 7, 14, 7, 200, 6, 14, 7, 200, 5, 14, 7, 200, 4, 14, 7, 200, 3, 14, 7, 200, 2, 14, 7, 200, 1, 14, 7, 200, 0, 14, 7, 199, 255, 14, 7, - 199, 254, 14, 7, 199, 253, 14, 7, 196, 217, 14, 7, 196, 216, 14, 7, 196, - 215, 14, 7, 196, 214, 14, 7, 196, 213, 14, 7, 196, 212, 14, 7, 196, 211, + 199, 254, 14, 7, 199, 253, 14, 7, 199, 252, 14, 7, 199, 251, 14, 7, 199, + 250, 14, 7, 199, 249, 14, 7, 196, 213, 14, 7, 196, 212, 14, 7, 196, 211, 14, 7, 196, 210, 14, 7, 196, 209, 14, 7, 196, 208, 14, 7, 196, 207, 14, 7, 196, 206, 14, 7, 196, 205, 14, 7, 196, 204, 14, 7, 196, 203, 14, 7, 196, 202, 14, 7, 196, 201, 14, 7, 196, 200, 14, 7, 196, 199, 14, 7, 196, @@ -16874,101 +16815,74 @@ static const unsigned char phrasebook[] = { 196, 185, 14, 7, 196, 184, 14, 7, 196, 183, 14, 7, 196, 182, 14, 7, 196, 181, 14, 7, 196, 180, 14, 7, 196, 179, 14, 7, 196, 178, 14, 7, 196, 177, 14, 7, 196, 176, 14, 7, 196, 175, 14, 7, 196, 174, 14, 7, 196, 173, 14, - 7, 196, 172, 14, 7, 196, 171, 14, 7, 196, 11, 14, 7, 196, 10, 14, 7, 196, - 9, 14, 7, 196, 8, 14, 7, 196, 7, 14, 7, 196, 6, 14, 7, 196, 5, 14, 7, - 196, 4, 14, 7, 196, 3, 14, 7, 196, 2, 14, 7, 196, 1, 14, 7, 196, 0, 14, - 7, 195, 255, 14, 7, 195, 254, 14, 7, 195, 253, 14, 7, 195, 252, 14, 7, - 195, 251, 14, 7, 195, 250, 14, 7, 195, 249, 14, 7, 195, 248, 14, 7, 195, - 247, 14, 7, 195, 246, 14, 7, 195, 245, 14, 7, 195, 244, 14, 7, 195, 243, - 14, 7, 195, 242, 14, 7, 195, 240, 14, 7, 195, 239, 14, 7, 195, 238, 14, - 7, 195, 237, 14, 7, 195, 236, 14, 7, 195, 235, 14, 7, 195, 234, 14, 7, - 195, 233, 14, 7, 195, 232, 14, 7, 195, 231, 14, 7, 195, 230, 14, 7, 195, - 229, 14, 7, 195, 228, 14, 7, 195, 227, 14, 7, 195, 226, 14, 7, 195, 225, - 14, 7, 195, 224, 14, 7, 195, 223, 14, 7, 195, 222, 14, 7, 195, 221, 14, - 7, 195, 220, 14, 7, 195, 219, 14, 7, 195, 218, 14, 7, 195, 217, 14, 7, - 195, 216, 14, 7, 195, 215, 14, 7, 195, 214, 14, 7, 195, 213, 14, 7, 195, - 212, 14, 7, 195, 211, 14, 7, 195, 210, 14, 7, 195, 209, 14, 7, 195, 208, - 14, 7, 195, 207, 14, 7, 195, 206, 14, 7, 195, 205, 14, 7, 195, 204, 14, - 7, 195, 203, 14, 7, 195, 202, 14, 7, 195, 201, 14, 7, 195, 200, 14, 7, - 195, 199, 14, 7, 195, 198, 14, 7, 195, 197, 14, 7, 195, 196, 14, 7, 195, - 195, 14, 7, 195, 194, 14, 7, 195, 193, 14, 7, 195, 192, 14, 7, 195, 191, - 14, 7, 195, 190, 14, 7, 193, 223, 14, 7, 193, 222, 14, 7, 193, 221, 14, - 7, 193, 220, 14, 7, 193, 219, 14, 7, 193, 218, 14, 7, 193, 217, 14, 7, - 193, 216, 14, 7, 193, 215, 14, 7, 193, 214, 14, 7, 193, 213, 14, 7, 193, - 212, 14, 7, 193, 211, 14, 7, 193, 210, 14, 7, 193, 209, 14, 7, 193, 208, - 14, 7, 193, 207, 14, 7, 193, 206, 14, 7, 193, 205, 14, 7, 193, 204, 14, - 7, 193, 203, 14, 7, 193, 202, 14, 7, 193, 201, 14, 7, 193, 200, 14, 7, - 193, 199, 14, 7, 193, 198, 14, 7, 193, 197, 14, 7, 193, 196, 14, 7, 193, - 195, 14, 7, 193, 194, 14, 7, 193, 193, 14, 7, 193, 192, 14, 7, 192, 232, - 14, 7, 192, 231, 14, 7, 192, 230, 14, 7, 192, 229, 14, 7, 192, 228, 14, - 7, 192, 227, 14, 7, 192, 226, 14, 7, 192, 225, 14, 7, 192, 224, 14, 7, - 192, 223, 14, 7, 192, 222, 14, 7, 192, 221, 14, 7, 192, 157, 14, 7, 192, - 156, 14, 7, 192, 155, 14, 7, 192, 154, 14, 7, 192, 153, 14, 7, 192, 152, - 14, 7, 192, 151, 14, 7, 192, 150, 14, 7, 192, 149, 14, 7, 191, 165, 14, - 7, 191, 164, 14, 7, 191, 163, 14, 7, 191, 162, 14, 7, 191, 161, 14, 7, - 191, 160, 14, 7, 191, 159, 14, 7, 191, 158, 14, 7, 191, 157, 14, 7, 191, - 156, 14, 7, 191, 155, 14, 7, 191, 154, 14, 7, 191, 153, 14, 7, 191, 152, - 14, 7, 191, 151, 14, 7, 191, 150, 14, 7, 191, 149, 14, 7, 191, 148, 14, - 7, 191, 147, 14, 7, 191, 146, 14, 7, 191, 145, 14, 7, 191, 144, 14, 7, - 191, 143, 14, 7, 191, 142, 14, 7, 191, 141, 14, 7, 191, 140, 14, 7, 191, - 139, 14, 7, 191, 138, 14, 7, 191, 137, 14, 7, 191, 136, 14, 7, 191, 135, - 14, 7, 191, 134, 14, 7, 191, 133, 14, 7, 191, 132, 14, 7, 191, 131, 14, - 7, 191, 130, 14, 7, 191, 129, 14, 7, 191, 128, 14, 7, 191, 127, 14, 7, - 191, 126, 14, 7, 191, 125, 14, 7, 252, 205, 14, 7, 252, 204, 14, 7, 252, - 203, 14, 7, 252, 202, 14, 7, 252, 201, 14, 7, 252, 200, 14, 7, 252, 199, - 14, 7, 252, 198, 14, 7, 252, 197, 14, 7, 252, 196, 14, 7, 252, 195, 14, - 7, 252, 194, 14, 7, 252, 193, 14, 7, 252, 192, 14, 7, 252, 191, 14, 7, - 252, 190, 14, 7, 252, 189, 14, 7, 252, 188, 14, 7, 252, 187, 14, 7, 252, - 186, 14, 7, 252, 185, 14, 7, 252, 184, 14, 7, 252, 183, 14, 7, 252, 182, - 14, 7, 252, 181, 14, 7, 252, 180, 14, 7, 252, 179, 14, 7, 252, 178, 14, - 7, 252, 177, 14, 7, 252, 176, 14, 7, 252, 175, 14, 7, 252, 174, 14, 7, - 252, 173, 14, 7, 252, 172, 14, 7, 195, 241, 14, 7, 81, 222, 196, 14, 7, - 228, 241, 222, 196, 14, 7, 223, 120, 250, 183, 198, 54, 201, 97, 14, 7, - 223, 120, 250, 183, 248, 77, 201, 97, 14, 7, 223, 120, 250, 183, 198, 54, - 234, 94, 14, 7, 223, 120, 250, 183, 248, 77, 234, 94, 14, 7, 211, 0, 216, - 84, 14, 7, 248, 249, 205, 43, 14, 7, 234, 95, 205, 43, 14, 7, 223, 120, - 250, 183, 216, 84, 14, 7, 223, 120, 250, 183, 198, 53, 14, 7, 223, 120, - 250, 183, 248, 76, 14, 7, 248, 249, 234, 98, 14, 7, 234, 95, 234, 98, 14, - 7, 248, 249, 193, 166, 234, 98, 14, 7, 234, 95, 193, 166, 234, 98, 14, 7, - 216, 27, 228, 189, 14, 7, 232, 80, 248, 132, 14, 7, 132, 248, 132, 14, 7, - 218, 251, 56, 14, 7, 132, 218, 251, 56, 14, 7, 199, 200, 218, 251, 56, - 14, 7, 193, 78, 218, 251, 56, 14, 7, 52, 237, 249, 250, 183, 198, 54, - 201, 97, 14, 7, 52, 237, 249, 250, 183, 248, 77, 201, 97, 14, 7, 52, 237, - 249, 250, 183, 201, 97, 14, 7, 52, 237, 249, 250, 183, 198, 54, 234, 94, - 14, 7, 52, 237, 249, 250, 183, 198, 53, 14, 7, 52, 237, 249, 250, 183, - 248, 77, 201, 98, 23, 198, 54, 234, 94, 14, 7, 52, 237, 249, 250, 183, - 201, 98, 23, 198, 53, 14, 7, 52, 237, 249, 250, 183, 248, 77, 234, 94, - 14, 7, 52, 237, 249, 250, 183, 198, 54, 201, 98, 23, 248, 77, 234, 94, - 14, 7, 52, 237, 249, 250, 183, 248, 76, 14, 7, 52, 237, 249, 250, 183, - 201, 98, 23, 248, 76, 14, 7, 52, 237, 249, 250, 183, 234, 94, 14, 7, 52, - 237, 249, 250, 183, 198, 54, 23, 234, 94, 14, 7, 52, 237, 249, 250, 183, - 248, 77, 23, 234, 94, 14, 7, 52, 237, 248, 29, 7, 255, 199, 29, 7, 255, - 198, 29, 7, 255, 197, 29, 7, 255, 196, 29, 7, 255, 195, 29, 7, 255, 193, - 29, 7, 255, 190, 29, 7, 255, 189, 29, 7, 255, 188, 29, 7, 255, 187, 29, - 7, 255, 186, 29, 7, 255, 185, 29, 7, 255, 184, 29, 7, 255, 183, 29, 7, - 255, 182, 29, 7, 255, 180, 29, 7, 255, 179, 29, 7, 255, 178, 29, 7, 255, - 176, 29, 7, 255, 175, 29, 7, 255, 174, 29, 7, 255, 173, 29, 7, 255, 172, - 29, 7, 255, 171, 29, 7, 255, 170, 29, 7, 255, 169, 29, 7, 255, 168, 29, - 7, 255, 167, 29, 7, 255, 166, 29, 7, 255, 165, 29, 7, 255, 163, 29, 7, - 255, 162, 29, 7, 255, 161, 29, 7, 255, 160, 29, 7, 255, 158, 29, 7, 255, - 157, 29, 7, 255, 156, 29, 7, 255, 155, 29, 7, 255, 154, 29, 7, 255, 153, - 29, 7, 255, 152, 29, 7, 255, 151, 29, 7, 255, 150, 29, 7, 255, 148, 29, - 7, 255, 147, 29, 7, 255, 146, 29, 7, 255, 144, 29, 7, 255, 142, 29, 7, - 255, 141, 29, 7, 255, 140, 29, 7, 255, 139, 29, 7, 255, 138, 29, 7, 255, - 137, 29, 7, 255, 136, 29, 7, 255, 135, 29, 7, 255, 134, 29, 7, 255, 133, - 29, 7, 255, 132, 29, 7, 255, 131, 29, 7, 255, 130, 29, 7, 255, 129, 29, - 7, 255, 128, 29, 7, 255, 127, 29, 7, 255, 126, 29, 7, 255, 125, 29, 7, - 255, 124, 29, 7, 255, 123, 29, 7, 255, 122, 29, 7, 255, 121, 29, 7, 255, - 120, 29, 7, 255, 119, 29, 7, 255, 118, 29, 7, 255, 117, 29, 7, 255, 116, - 29, 7, 255, 115, 29, 7, 255, 114, 29, 7, 255, 113, 29, 7, 255, 112, 29, - 7, 255, 111, 29, 7, 255, 110, 29, 7, 255, 109, 29, 7, 255, 108, 29, 7, - 255, 107, 29, 7, 255, 106, 29, 7, 255, 105, 29, 7, 255, 104, 29, 7, 255, - 103, 29, 7, 255, 102, 29, 7, 255, 101, 29, 7, 255, 100, 29, 7, 255, 99, - 29, 7, 255, 98, 29, 7, 255, 97, 29, 7, 255, 96, 29, 7, 255, 95, 29, 7, - 255, 94, 29, 7, 255, 93, 29, 7, 255, 92, 29, 7, 255, 91, 29, 7, 255, 90, - 29, 7, 255, 89, 29, 7, 255, 88, 29, 7, 255, 87, 29, 7, 255, 86, 29, 7, - 255, 85, 29, 7, 255, 84, 29, 7, 255, 83, 29, 7, 255, 82, 29, 7, 255, 81, - 29, 7, 255, 80, 29, 7, 255, 79, 29, 7, 255, 78, 29, 7, 255, 76, 29, 7, + 7, 196, 172, 14, 7, 196, 171, 14, 7, 196, 170, 14, 7, 196, 169, 14, 7, + 196, 168, 14, 7, 196, 167, 14, 7, 196, 7, 14, 7, 196, 6, 14, 7, 196, 5, + 14, 7, 196, 4, 14, 7, 196, 3, 14, 7, 196, 2, 14, 7, 196, 1, 14, 7, 196, + 0, 14, 7, 195, 255, 14, 7, 195, 254, 14, 7, 195, 253, 14, 7, 195, 252, + 14, 7, 195, 251, 14, 7, 195, 250, 14, 7, 195, 249, 14, 7, 195, 248, 14, + 7, 195, 247, 14, 7, 195, 246, 14, 7, 195, 245, 14, 7, 195, 244, 14, 7, + 195, 243, 14, 7, 195, 242, 14, 7, 195, 241, 14, 7, 195, 240, 14, 7, 195, + 239, 14, 7, 195, 238, 14, 7, 195, 237, 14, 7, 195, 236, 14, 7, 195, 235, + 14, 7, 195, 234, 14, 7, 195, 233, 14, 7, 195, 232, 14, 7, 195, 231, 14, + 7, 195, 230, 14, 7, 195, 229, 14, 7, 195, 228, 14, 7, 195, 227, 14, 7, + 195, 226, 14, 7, 195, 225, 14, 7, 195, 224, 14, 7, 195, 223, 14, 7, 195, + 222, 14, 7, 195, 221, 14, 7, 195, 220, 14, 7, 195, 219, 14, 7, 195, 218, + 14, 7, 195, 217, 14, 7, 195, 216, 14, 7, 195, 215, 14, 7, 195, 214, 14, + 7, 195, 213, 14, 7, 195, 212, 14, 7, 195, 211, 14, 7, 195, 210, 14, 7, + 195, 209, 14, 7, 195, 208, 14, 7, 195, 207, 14, 7, 195, 206, 14, 7, 195, + 205, 14, 7, 195, 204, 14, 7, 195, 203, 14, 7, 195, 202, 14, 7, 195, 201, + 14, 7, 195, 200, 14, 7, 195, 199, 14, 7, 195, 198, 14, 7, 195, 197, 14, + 7, 195, 196, 14, 7, 195, 195, 14, 7, 195, 194, 14, 7, 195, 193, 14, 7, + 195, 192, 14, 7, 195, 191, 14, 7, 195, 190, 14, 7, 195, 189, 14, 7, 195, + 188, 14, 7, 195, 187, 14, 7, 193, 220, 14, 7, 193, 219, 14, 7, 193, 218, + 14, 7, 193, 217, 14, 7, 193, 216, 14, 7, 193, 215, 14, 7, 193, 214, 14, + 7, 193, 213, 14, 7, 193, 212, 14, 7, 193, 211, 14, 7, 193, 210, 14, 7, + 193, 209, 14, 7, 193, 208, 14, 7, 193, 207, 14, 7, 193, 206, 14, 7, 193, + 205, 14, 7, 193, 204, 14, 7, 193, 203, 14, 7, 193, 202, 14, 7, 193, 201, + 14, 7, 193, 200, 14, 7, 193, 199, 14, 7, 193, 198, 14, 7, 193, 197, 14, + 7, 193, 196, 14, 7, 193, 195, 14, 7, 193, 194, 14, 7, 193, 193, 14, 7, + 193, 192, 14, 7, 193, 191, 14, 7, 193, 190, 14, 7, 193, 189, 14, 7, 192, + 232, 14, 7, 192, 231, 14, 7, 192, 230, 14, 7, 192, 229, 14, 7, 192, 228, + 14, 7, 192, 227, 14, 7, 192, 226, 14, 7, 192, 225, 14, 7, 192, 224, 14, + 7, 192, 223, 14, 7, 192, 222, 14, 7, 192, 221, 14, 7, 192, 157, 14, 7, + 192, 156, 14, 7, 192, 155, 14, 7, 192, 154, 14, 7, 192, 153, 14, 7, 192, + 152, 14, 7, 192, 151, 14, 7, 192, 150, 14, 7, 192, 149, 14, 7, 191, 165, + 14, 7, 191, 164, 14, 7, 191, 163, 14, 7, 191, 162, 14, 7, 191, 161, 14, + 7, 191, 160, 14, 7, 191, 159, 14, 7, 191, 158, 14, 7, 191, 157, 14, 7, + 191, 156, 14, 7, 191, 155, 14, 7, 191, 154, 14, 7, 191, 153, 14, 7, 191, + 152, 14, 7, 191, 151, 14, 7, 191, 150, 14, 7, 191, 149, 14, 7, 191, 148, + 14, 7, 191, 147, 14, 7, 191, 146, 14, 7, 191, 145, 14, 7, 191, 144, 14, + 7, 191, 143, 14, 7, 191, 142, 14, 7, 191, 141, 14, 7, 191, 140, 14, 7, + 191, 139, 14, 7, 191, 138, 14, 7, 191, 137, 14, 7, 191, 136, 14, 7, 191, + 135, 14, 7, 191, 134, 14, 7, 191, 133, 14, 7, 191, 132, 14, 7, 191, 131, + 14, 7, 191, 130, 14, 7, 191, 129, 14, 7, 191, 128, 14, 7, 191, 127, 14, + 7, 191, 126, 14, 7, 191, 125, 14, 7, 252, 153, 14, 7, 252, 152, 14, 7, + 252, 151, 14, 7, 252, 150, 14, 7, 252, 149, 14, 7, 252, 148, 14, 7, 252, + 147, 14, 7, 252, 146, 14, 7, 252, 145, 14, 7, 252, 144, 14, 7, 252, 143, + 14, 7, 252, 142, 14, 7, 252, 141, 14, 7, 252, 140, 14, 7, 252, 139, 14, + 7, 252, 138, 14, 7, 252, 137, 14, 7, 252, 136, 14, 7, 252, 135, 14, 7, + 252, 134, 14, 7, 252, 133, 14, 7, 252, 132, 14, 7, 252, 131, 14, 7, 252, + 130, 14, 7, 252, 129, 14, 7, 252, 128, 14, 7, 252, 127, 14, 7, 252, 126, + 14, 7, 252, 125, 14, 7, 252, 124, 14, 7, 252, 123, 14, 7, 252, 122, 14, + 7, 252, 121, 14, 7, 252, 120, 14, 7, 81, 222, 169, 14, 7, 228, 209, 222, + 169, 14, 7, 223, 92, 250, 133, 198, 49, 201, 92, 14, 7, 223, 92, 250, + 133, 248, 29, 201, 92, 14, 7, 223, 92, 250, 133, 198, 49, 234, 52, 14, 7, + 223, 92, 250, 133, 248, 29, 234, 52, 14, 7, 210, 246, 216, 66, 14, 7, + 248, 199, 205, 38, 14, 7, 234, 53, 205, 38, 29, 7, 255, 147, 29, 7, 255, + 146, 29, 7, 255, 145, 29, 7, 255, 144, 29, 7, 255, 143, 29, 7, 255, 141, + 29, 7, 255, 138, 29, 7, 255, 137, 29, 7, 255, 136, 29, 7, 255, 135, 29, + 7, 255, 134, 29, 7, 255, 133, 29, 7, 255, 132, 29, 7, 255, 131, 29, 7, + 255, 130, 29, 7, 255, 128, 29, 7, 255, 127, 29, 7, 255, 126, 29, 7, 255, + 124, 29, 7, 255, 123, 29, 7, 255, 122, 29, 7, 255, 121, 29, 7, 255, 120, + 29, 7, 255, 119, 29, 7, 255, 118, 29, 7, 255, 117, 29, 7, 255, 116, 29, + 7, 255, 115, 29, 7, 255, 114, 29, 7, 255, 113, 29, 7, 255, 111, 29, 7, + 255, 110, 29, 7, 255, 109, 29, 7, 255, 108, 29, 7, 255, 106, 29, 7, 255, + 105, 29, 7, 255, 104, 29, 7, 255, 103, 29, 7, 255, 102, 29, 7, 255, 101, + 29, 7, 255, 100, 29, 7, 255, 99, 29, 7, 255, 98, 29, 7, 255, 96, 29, 7, + 255, 95, 29, 7, 255, 94, 29, 7, 255, 92, 29, 7, 255, 90, 29, 7, 255, 89, + 29, 7, 255, 88, 29, 7, 255, 87, 29, 7, 255, 86, 29, 7, 255, 85, 29, 7, + 255, 84, 29, 7, 255, 83, 29, 7, 255, 82, 29, 7, 255, 81, 29, 7, 255, 80, + 29, 7, 255, 79, 29, 7, 255, 78, 29, 7, 255, 77, 29, 7, 255, 76, 29, 7, 255, 75, 29, 7, 255, 74, 29, 7, 255, 73, 29, 7, 255, 72, 29, 7, 255, 71, 29, 7, 255, 70, 29, 7, 255, 69, 29, 7, 255, 68, 29, 7, 255, 67, 29, 7, 255, 66, 29, 7, 255, 65, 29, 7, 255, 64, 29, 7, 255, 63, 29, 7, 255, 62, @@ -16976,25 +16890,25 @@ static const unsigned char phrasebook[] = { 255, 57, 29, 7, 255, 56, 29, 7, 255, 55, 29, 7, 255, 54, 29, 7, 255, 53, 29, 7, 255, 52, 29, 7, 255, 51, 29, 7, 255, 50, 29, 7, 255, 49, 29, 7, 255, 48, 29, 7, 255, 47, 29, 7, 255, 46, 29, 7, 255, 45, 29, 7, 255, 44, - 29, 7, 255, 43, 29, 7, 255, 41, 29, 7, 255, 40, 29, 7, 255, 39, 29, 7, - 255, 38, 29, 7, 255, 37, 29, 7, 255, 36, 29, 7, 255, 35, 29, 7, 255, 34, - 29, 7, 255, 33, 29, 7, 255, 32, 29, 7, 255, 31, 29, 7, 255, 30, 29, 7, - 255, 28, 29, 7, 255, 27, 29, 7, 255, 26, 29, 7, 255, 25, 29, 7, 255, 24, - 29, 7, 255, 23, 29, 7, 255, 22, 29, 7, 255, 21, 29, 7, 255, 20, 29, 7, - 255, 19, 29, 7, 255, 18, 29, 7, 255, 17, 29, 7, 255, 16, 29, 7, 255, 15, - 29, 7, 255, 14, 29, 7, 255, 13, 29, 7, 255, 12, 29, 7, 255, 11, 29, 7, - 255, 10, 29, 7, 255, 9, 29, 7, 255, 8, 29, 7, 255, 7, 29, 7, 255, 6, 29, - 7, 255, 5, 29, 7, 255, 4, 29, 7, 255, 3, 29, 7, 255, 2, 29, 7, 255, 1, - 29, 7, 255, 0, 29, 7, 254, 255, 29, 7, 254, 254, 29, 7, 254, 253, 29, 7, - 254, 252, 29, 7, 254, 251, 29, 7, 254, 250, 29, 7, 254, 249, 29, 7, 254, - 248, 29, 7, 254, 247, 29, 7, 254, 246, 29, 7, 254, 245, 29, 7, 254, 244, + 29, 7, 255, 43, 29, 7, 255, 42, 29, 7, 255, 41, 29, 7, 255, 40, 29, 7, + 255, 39, 29, 7, 255, 38, 29, 7, 255, 37, 29, 7, 255, 36, 29, 7, 255, 35, + 29, 7, 255, 34, 29, 7, 255, 33, 29, 7, 255, 32, 29, 7, 255, 31, 29, 7, + 255, 30, 29, 7, 255, 29, 29, 7, 255, 28, 29, 7, 255, 27, 29, 7, 255, 26, + 29, 7, 255, 24, 29, 7, 255, 23, 29, 7, 255, 22, 29, 7, 255, 21, 29, 7, + 255, 20, 29, 7, 255, 19, 29, 7, 255, 18, 29, 7, 255, 17, 29, 7, 255, 16, + 29, 7, 255, 15, 29, 7, 255, 14, 29, 7, 255, 13, 29, 7, 255, 12, 29, 7, + 255, 11, 29, 7, 255, 10, 29, 7, 255, 9, 29, 7, 255, 8, 29, 7, 255, 7, 29, + 7, 255, 6, 29, 7, 255, 5, 29, 7, 255, 4, 29, 7, 255, 3, 29, 7, 255, 2, + 29, 7, 255, 1, 29, 7, 255, 0, 29, 7, 254, 255, 29, 7, 254, 254, 29, 7, + 254, 253, 29, 7, 254, 252, 29, 7, 254, 251, 29, 7, 254, 250, 29, 7, 254, + 249, 29, 7, 254, 248, 29, 7, 254, 247, 29, 7, 254, 245, 29, 7, 254, 244, 29, 7, 254, 243, 29, 7, 254, 242, 29, 7, 254, 241, 29, 7, 254, 240, 29, 7, 254, 239, 29, 7, 254, 238, 29, 7, 254, 237, 29, 7, 254, 236, 29, 7, - 254, 235, 29, 7, 254, 234, 29, 7, 254, 233, 29, 7, 254, 232, 29, 7, 254, - 231, 29, 7, 254, 230, 29, 7, 254, 229, 29, 7, 254, 228, 29, 7, 254, 227, - 29, 7, 254, 226, 29, 7, 254, 225, 29, 7, 254, 224, 29, 7, 254, 223, 29, - 7, 254, 222, 29, 7, 254, 221, 29, 7, 254, 220, 29, 7, 254, 219, 29, 7, - 254, 218, 29, 7, 254, 217, 29, 7, 254, 216, 29, 7, 254, 214, 29, 7, 254, + 254, 235, 29, 7, 254, 234, 29, 7, 254, 232, 29, 7, 254, 231, 29, 7, 254, + 230, 29, 7, 254, 229, 29, 7, 254, 228, 29, 7, 254, 227, 29, 7, 254, 226, + 29, 7, 254, 225, 29, 7, 254, 224, 29, 7, 254, 223, 29, 7, 254, 222, 29, + 7, 254, 221, 29, 7, 254, 220, 29, 7, 254, 219, 29, 7, 254, 218, 29, 7, + 254, 217, 29, 7, 254, 216, 29, 7, 254, 215, 29, 7, 254, 214, 29, 7, 254, 213, 29, 7, 254, 212, 29, 7, 254, 211, 29, 7, 254, 210, 29, 7, 254, 209, 29, 7, 254, 208, 29, 7, 254, 207, 29, 7, 254, 206, 29, 7, 254, 205, 29, 7, 254, 204, 29, 7, 254, 203, 29, 7, 254, 202, 29, 7, 254, 201, 29, 7, @@ -17006,469 +16920,472 @@ static const unsigned char phrasebook[] = { 179, 29, 7, 254, 178, 29, 7, 254, 177, 29, 7, 254, 176, 29, 7, 254, 175, 29, 7, 254, 174, 29, 7, 254, 173, 29, 7, 254, 172, 29, 7, 254, 171, 29, 7, 254, 170, 29, 7, 254, 169, 29, 7, 254, 168, 29, 7, 254, 167, 29, 7, - 254, 166, 29, 7, 254, 165, 29, 7, 254, 164, 29, 7, 254, 163, 29, 7, 254, - 162, 29, 7, 254, 161, 29, 7, 254, 160, 29, 7, 254, 159, 29, 7, 254, 158, - 29, 7, 254, 157, 29, 7, 254, 156, 29, 7, 254, 155, 29, 7, 254, 154, 29, - 7, 254, 153, 29, 7, 254, 152, 29, 7, 254, 151, 29, 7, 254, 150, 29, 7, - 254, 149, 29, 7, 254, 148, 29, 7, 254, 147, 29, 7, 254, 146, 29, 7, 254, - 145, 29, 7, 254, 144, 29, 7, 254, 143, 29, 7, 254, 142, 29, 7, 254, 141, - 29, 7, 254, 140, 29, 7, 254, 139, 29, 7, 254, 138, 29, 7, 254, 137, 29, - 7, 254, 136, 29, 7, 254, 135, 29, 7, 254, 134, 29, 7, 254, 133, 29, 7, - 254, 132, 29, 7, 254, 131, 29, 7, 254, 130, 29, 7, 254, 129, 29, 7, 254, - 128, 29, 7, 254, 127, 29, 7, 254, 126, 29, 7, 254, 125, 29, 7, 254, 124, - 29, 7, 254, 123, 29, 7, 254, 122, 29, 7, 254, 121, 29, 7, 254, 120, 29, - 7, 254, 119, 29, 7, 254, 118, 29, 7, 254, 117, 29, 7, 254, 116, 29, 7, - 254, 115, 29, 7, 254, 114, 29, 7, 254, 113, 29, 7, 254, 112, 29, 7, 254, - 111, 29, 7, 254, 110, 29, 7, 254, 109, 29, 7, 254, 108, 29, 7, 254, 107, - 29, 7, 254, 106, 29, 7, 254, 105, 29, 7, 254, 104, 29, 7, 254, 102, 29, + 254, 166, 29, 7, 254, 165, 29, 7, 254, 164, 29, 7, 254, 162, 29, 7, 254, + 161, 29, 7, 254, 160, 29, 7, 254, 159, 29, 7, 254, 158, 29, 7, 254, 157, + 29, 7, 254, 156, 29, 7, 254, 155, 29, 7, 254, 154, 29, 7, 254, 153, 29, + 7, 254, 152, 29, 7, 254, 151, 29, 7, 254, 150, 29, 7, 254, 149, 29, 7, + 254, 148, 29, 7, 254, 147, 29, 7, 254, 146, 29, 7, 254, 145, 29, 7, 254, + 144, 29, 7, 254, 143, 29, 7, 254, 142, 29, 7, 254, 141, 29, 7, 254, 140, + 29, 7, 254, 139, 29, 7, 254, 138, 29, 7, 254, 137, 29, 7, 254, 136, 29, + 7, 254, 135, 29, 7, 254, 134, 29, 7, 254, 133, 29, 7, 254, 132, 29, 7, + 254, 131, 29, 7, 254, 130, 29, 7, 254, 129, 29, 7, 254, 128, 29, 7, 254, + 127, 29, 7, 254, 126, 29, 7, 254, 125, 29, 7, 254, 124, 29, 7, 254, 123, + 29, 7, 254, 122, 29, 7, 254, 121, 29, 7, 254, 120, 29, 7, 254, 119, 29, + 7, 254, 118, 29, 7, 254, 117, 29, 7, 254, 116, 29, 7, 254, 115, 29, 7, + 254, 114, 29, 7, 254, 113, 29, 7, 254, 112, 29, 7, 254, 111, 29, 7, 254, + 110, 29, 7, 254, 109, 29, 7, 254, 108, 29, 7, 254, 107, 29, 7, 254, 106, + 29, 7, 254, 105, 29, 7, 254, 104, 29, 7, 254, 103, 29, 7, 254, 102, 29, 7, 254, 101, 29, 7, 254, 100, 29, 7, 254, 99, 29, 7, 254, 98, 29, 7, 254, 97, 29, 7, 254, 96, 29, 7, 254, 95, 29, 7, 254, 94, 29, 7, 254, 93, 29, - 7, 254, 92, 29, 7, 254, 89, 29, 7, 254, 88, 29, 7, 254, 87, 29, 7, 254, - 86, 29, 7, 254, 82, 29, 7, 254, 81, 29, 7, 254, 80, 29, 7, 254, 79, 29, - 7, 254, 78, 29, 7, 254, 77, 29, 7, 254, 76, 29, 7, 254, 75, 29, 7, 254, - 74, 29, 7, 254, 73, 29, 7, 254, 72, 29, 7, 254, 71, 29, 7, 254, 70, 29, - 7, 254, 69, 29, 7, 254, 68, 29, 7, 254, 67, 29, 7, 254, 66, 29, 7, 254, - 65, 29, 7, 254, 64, 29, 7, 254, 62, 29, 7, 254, 61, 29, 7, 254, 60, 29, - 7, 254, 59, 29, 7, 254, 58, 29, 7, 254, 57, 29, 7, 254, 56, 29, 7, 254, - 55, 29, 7, 254, 54, 29, 7, 254, 53, 29, 7, 254, 52, 29, 7, 254, 51, 29, - 7, 254, 50, 29, 7, 254, 49, 29, 7, 254, 48, 29, 7, 254, 47, 29, 7, 254, - 46, 29, 7, 254, 45, 29, 7, 254, 44, 29, 7, 254, 43, 29, 7, 254, 42, 29, - 7, 254, 41, 29, 7, 254, 40, 29, 7, 254, 39, 29, 7, 254, 38, 29, 7, 254, - 37, 29, 7, 254, 36, 29, 7, 254, 35, 29, 7, 254, 34, 29, 7, 254, 33, 29, - 7, 254, 32, 29, 7, 254, 31, 29, 7, 254, 30, 29, 7, 254, 29, 29, 7, 254, + 7, 254, 92, 29, 7, 254, 91, 29, 7, 254, 90, 29, 7, 254, 89, 29, 7, 254, + 88, 29, 7, 254, 87, 29, 7, 254, 86, 29, 7, 254, 85, 29, 7, 254, 84, 29, + 7, 254, 83, 29, 7, 254, 82, 29, 7, 254, 81, 29, 7, 254, 80, 29, 7, 254, + 79, 29, 7, 254, 78, 29, 7, 254, 77, 29, 7, 254, 76, 29, 7, 254, 75, 29, + 7, 254, 74, 29, 7, 254, 73, 29, 7, 254, 72, 29, 7, 254, 71, 29, 7, 254, + 70, 29, 7, 254, 69, 29, 7, 254, 68, 29, 7, 254, 67, 29, 7, 254, 66, 29, + 7, 254, 65, 29, 7, 254, 64, 29, 7, 254, 63, 29, 7, 254, 62, 29, 7, 254, + 61, 29, 7, 254, 60, 29, 7, 254, 59, 29, 7, 254, 58, 29, 7, 254, 57, 29, + 7, 254, 56, 29, 7, 254, 55, 29, 7, 254, 54, 29, 7, 254, 53, 29, 7, 254, + 52, 29, 7, 254, 50, 29, 7, 254, 49, 29, 7, 254, 48, 29, 7, 254, 47, 29, + 7, 254, 46, 29, 7, 254, 45, 29, 7, 254, 44, 29, 7, 254, 43, 29, 7, 254, + 42, 29, 7, 254, 41, 29, 7, 254, 40, 29, 7, 254, 37, 29, 7, 254, 36, 29, + 7, 254, 35, 29, 7, 254, 34, 29, 7, 254, 30, 29, 7, 254, 29, 29, 7, 254, 28, 29, 7, 254, 27, 29, 7, 254, 26, 29, 7, 254, 25, 29, 7, 254, 24, 29, 7, 254, 23, 29, 7, 254, 22, 29, 7, 254, 21, 29, 7, 254, 20, 29, 7, 254, 19, 29, 7, 254, 18, 29, 7, 254, 17, 29, 7, 254, 16, 29, 7, 254, 15, 29, - 7, 254, 14, 29, 7, 254, 13, 29, 7, 254, 12, 29, 7, 254, 11, 29, 7, 254, - 10, 29, 7, 254, 9, 29, 7, 254, 8, 29, 7, 254, 7, 29, 7, 254, 6, 29, 7, - 254, 5, 29, 7, 254, 4, 29, 7, 254, 3, 29, 7, 254, 2, 29, 7, 254, 1, 207, - 186, 211, 57, 207, 1, 29, 7, 254, 0, 29, 7, 253, 255, 29, 7, 253, 254, - 29, 7, 253, 253, 29, 7, 253, 252, 29, 7, 253, 251, 29, 7, 253, 250, 29, - 7, 253, 249, 29, 7, 253, 248, 29, 7, 253, 247, 29, 7, 253, 246, 29, 7, - 253, 245, 171, 29, 7, 253, 244, 29, 7, 253, 243, 29, 7, 253, 242, 29, 7, - 253, 241, 29, 7, 253, 240, 29, 7, 253, 239, 29, 7, 253, 238, 29, 7, 253, - 236, 29, 7, 253, 234, 29, 7, 253, 232, 29, 7, 253, 230, 29, 7, 253, 228, - 29, 7, 253, 226, 29, 7, 253, 224, 29, 7, 253, 222, 29, 7, 253, 220, 29, - 7, 253, 218, 248, 249, 219, 28, 77, 29, 7, 253, 216, 234, 95, 219, 28, - 77, 29, 7, 253, 215, 29, 7, 253, 213, 29, 7, 253, 211, 29, 7, 253, 209, - 29, 7, 253, 207, 29, 7, 253, 205, 29, 7, 253, 203, 29, 7, 253, 201, 29, - 7, 253, 199, 29, 7, 253, 198, 29, 7, 253, 197, 29, 7, 253, 196, 29, 7, - 253, 195, 29, 7, 253, 194, 29, 7, 253, 193, 29, 7, 253, 192, 29, 7, 253, - 191, 29, 7, 253, 190, 29, 7, 253, 189, 29, 7, 253, 188, 29, 7, 253, 187, - 29, 7, 253, 186, 29, 7, 253, 185, 29, 7, 253, 184, 29, 7, 253, 183, 29, - 7, 253, 182, 29, 7, 253, 181, 29, 7, 253, 180, 29, 7, 253, 179, 29, 7, - 253, 178, 29, 7, 253, 177, 29, 7, 253, 176, 29, 7, 253, 175, 29, 7, 253, - 174, 29, 7, 253, 173, 29, 7, 253, 172, 29, 7, 253, 171, 29, 7, 253, 170, - 29, 7, 253, 169, 29, 7, 253, 168, 29, 7, 253, 167, 29, 7, 253, 166, 29, - 7, 253, 165, 29, 7, 253, 164, 29, 7, 253, 163, 29, 7, 253, 162, 29, 7, - 253, 161, 29, 7, 253, 160, 29, 7, 253, 159, 29, 7, 253, 158, 29, 7, 253, - 157, 29, 7, 253, 156, 29, 7, 253, 155, 29, 7, 253, 154, 29, 7, 253, 153, - 29, 7, 253, 152, 29, 7, 253, 151, 29, 7, 253, 150, 29, 7, 253, 149, 29, - 7, 253, 148, 29, 7, 253, 147, 29, 7, 253, 146, 29, 7, 253, 145, 29, 7, - 253, 144, 29, 7, 253, 143, 29, 7, 253, 142, 29, 7, 253, 141, 29, 7, 253, - 140, 29, 7, 253, 139, 29, 7, 253, 138, 29, 7, 253, 137, 29, 7, 253, 136, - 29, 7, 253, 135, 29, 7, 253, 134, 29, 7, 253, 133, 29, 7, 253, 132, 29, - 7, 253, 131, 29, 7, 253, 130, 29, 7, 253, 129, 29, 7, 253, 128, 29, 7, - 253, 127, 29, 7, 253, 126, 29, 7, 253, 125, 29, 7, 253, 124, 29, 7, 253, - 123, 29, 7, 253, 122, 29, 7, 253, 121, 29, 7, 253, 120, 29, 7, 253, 119, - 29, 7, 253, 118, 29, 7, 253, 117, 29, 7, 253, 116, 29, 7, 253, 115, 29, - 7, 253, 114, 29, 7, 253, 113, 29, 7, 253, 112, 29, 7, 253, 111, 29, 7, - 253, 110, 29, 7, 253, 109, 29, 7, 253, 108, 29, 7, 253, 107, 29, 7, 253, - 106, 29, 7, 253, 105, 29, 7, 253, 104, 29, 7, 253, 103, 29, 7, 253, 102, - 29, 7, 253, 101, 29, 7, 253, 100, 29, 7, 253, 99, 29, 7, 253, 98, 29, 7, - 253, 97, 29, 7, 253, 96, 29, 7, 253, 95, 29, 7, 253, 94, 29, 7, 253, 93, - 29, 7, 253, 92, 29, 7, 253, 91, 29, 7, 253, 90, 29, 7, 253, 89, 26, 1, - 209, 218, 214, 1, 216, 142, 26, 1, 209, 218, 231, 173, 232, 166, 26, 1, - 209, 218, 209, 40, 216, 143, 209, 127, 26, 1, 209, 218, 209, 40, 216, - 143, 209, 128, 26, 1, 209, 218, 214, 251, 216, 142, 26, 1, 209, 218, 203, - 0, 26, 1, 209, 218, 198, 124, 216, 142, 26, 1, 209, 218, 212, 47, 216, - 142, 26, 1, 209, 218, 203, 68, 210, 221, 213, 141, 26, 1, 209, 218, 209, - 40, 210, 221, 213, 142, 209, 127, 26, 1, 209, 218, 209, 40, 210, 221, - 213, 142, 209, 128, 26, 1, 209, 218, 217, 131, 26, 1, 209, 218, 197, 95, - 217, 132, 26, 1, 209, 218, 214, 62, 26, 1, 209, 218, 217, 128, 26, 1, - 209, 218, 217, 77, 26, 1, 209, 218, 215, 86, 26, 1, 209, 218, 203, 249, - 26, 1, 209, 218, 212, 187, 26, 1, 209, 218, 221, 234, 26, 1, 209, 218, - 213, 108, 26, 1, 209, 218, 200, 160, 26, 1, 209, 218, 214, 0, 26, 1, 209, - 218, 220, 15, 26, 1, 209, 218, 219, 177, 220, 188, 26, 1, 209, 218, 212, - 197, 216, 150, 26, 1, 209, 218, 217, 135, 26, 1, 209, 218, 210, 98, 26, - 1, 209, 218, 231, 72, 26, 1, 209, 218, 210, 170, 26, 1, 209, 218, 215, - 232, 214, 35, 26, 1, 209, 218, 212, 28, 216, 153, 26, 1, 209, 218, 126, - 191, 195, 214, 244, 26, 1, 209, 218, 231, 73, 26, 1, 209, 218, 212, 197, - 212, 198, 26, 1, 209, 218, 202, 139, 26, 1, 209, 218, 216, 135, 26, 1, - 209, 218, 216, 156, 26, 1, 209, 218, 215, 207, 26, 1, 209, 218, 222, 105, - 26, 1, 209, 218, 210, 221, 219, 225, 26, 1, 209, 218, 214, 163, 219, 225, - 26, 1, 209, 218, 209, 240, 26, 1, 209, 218, 217, 129, 26, 1, 209, 218, - 213, 185, 26, 1, 209, 218, 208, 144, 26, 1, 209, 218, 197, 87, 26, 1, - 209, 218, 218, 221, 26, 1, 209, 218, 202, 17, 26, 1, 209, 218, 199, 58, - 26, 1, 209, 218, 217, 126, 26, 1, 209, 218, 221, 241, 26, 1, 209, 218, - 214, 159, 26, 1, 209, 218, 220, 203, 26, 1, 209, 218, 215, 208, 26, 1, - 209, 218, 202, 252, 26, 1, 209, 218, 219, 20, 26, 1, 209, 218, 232, 239, - 26, 1, 209, 218, 206, 137, 26, 1, 209, 218, 221, 10, 26, 1, 209, 218, - 202, 13, 26, 1, 209, 218, 217, 72, 209, 173, 26, 1, 209, 218, 203, 61, - 26, 1, 209, 218, 212, 196, 26, 1, 209, 218, 203, 42, 212, 208, 191, 203, - 26, 1, 209, 218, 212, 69, 215, 228, 26, 1, 209, 218, 210, 216, 26, 1, - 209, 218, 213, 110, 26, 1, 209, 218, 196, 85, 26, 1, 209, 218, 214, 38, - 26, 1, 209, 218, 217, 125, 26, 1, 209, 218, 213, 153, 26, 1, 209, 218, - 217, 6, 26, 1, 209, 218, 212, 84, 26, 1, 209, 218, 199, 62, 26, 1, 209, - 218, 202, 8, 26, 1, 209, 218, 210, 217, 26, 1, 209, 218, 212, 212, 26, 1, - 209, 218, 217, 133, 26, 1, 209, 218, 212, 81, 26, 1, 209, 218, 222, 66, - 26, 1, 209, 218, 212, 215, 26, 1, 209, 218, 195, 148, 26, 1, 209, 218, - 218, 225, 26, 1, 209, 218, 214, 102, 26, 1, 209, 218, 214, 217, 26, 1, - 209, 218, 217, 5, 26, 1, 209, 217, 212, 210, 26, 1, 209, 217, 197, 95, - 217, 130, 26, 1, 209, 217, 202, 204, 26, 1, 209, 217, 203, 253, 197, 94, - 26, 1, 209, 217, 219, 23, 212, 193, 26, 1, 209, 217, 217, 12, 217, 134, - 26, 1, 209, 217, 221, 150, 26, 1, 209, 217, 192, 43, 26, 1, 209, 217, - 217, 7, 26, 1, 209, 217, 222, 90, 26, 1, 209, 217, 210, 44, 26, 1, 209, - 217, 192, 126, 219, 225, 26, 1, 209, 217, 220, 36, 212, 208, 212, 95, 26, - 1, 209, 217, 212, 190, 203, 87, 26, 1, 209, 217, 214, 130, 213, 156, 26, - 1, 209, 217, 231, 70, 26, 1, 209, 217, 209, 117, 26, 1, 209, 217, 197, - 95, 212, 206, 26, 1, 209, 217, 203, 92, 213, 151, 26, 1, 209, 217, 203, - 88, 26, 1, 209, 217, 216, 143, 199, 61, 26, 1, 209, 217, 216, 250, 217, - 8, 26, 1, 209, 217, 212, 82, 212, 193, 26, 1, 209, 217, 221, 230, 26, 1, - 209, 217, 231, 71, 26, 1, 209, 217, 221, 226, 26, 1, 209, 217, 220, 120, - 26, 1, 209, 217, 210, 101, 26, 1, 209, 217, 195, 77, 26, 1, 209, 217, - 214, 2, 215, 84, 26, 1, 209, 217, 214, 37, 216, 246, 26, 1, 209, 217, - 192, 254, 26, 1, 209, 217, 205, 175, 26, 1, 209, 217, 199, 240, 26, 1, - 209, 217, 216, 155, 26, 1, 209, 217, 214, 21, 26, 1, 209, 217, 214, 22, - 220, 12, 26, 1, 209, 217, 216, 145, 26, 1, 209, 217, 200, 214, 26, 1, - 209, 217, 216, 254, 26, 1, 209, 217, 215, 212, 26, 1, 209, 217, 212, 99, - 26, 1, 209, 217, 208, 148, 26, 1, 209, 217, 216, 154, 214, 39, 26, 1, - 209, 217, 233, 28, 26, 1, 209, 217, 216, 241, 26, 1, 209, 217, 233, 52, - 26, 1, 209, 217, 221, 238, 26, 1, 209, 217, 217, 160, 213, 145, 26, 1, - 209, 217, 217, 160, 213, 121, 26, 1, 209, 217, 219, 176, 26, 1, 209, 217, - 214, 45, 26, 1, 209, 217, 212, 217, 26, 1, 209, 217, 174, 26, 1, 209, - 217, 221, 133, 26, 1, 209, 217, 213, 246, 26, 1, 209, 216, 214, 1, 217, - 132, 26, 1, 209, 216, 212, 46, 26, 1, 209, 216, 191, 203, 26, 1, 209, - 216, 193, 160, 26, 1, 209, 216, 214, 38, 26, 1, 209, 216, 214, 151, 26, - 1, 209, 216, 214, 8, 26, 1, 209, 216, 231, 80, 26, 1, 209, 216, 217, 2, - 26, 1, 209, 216, 231, 180, 26, 1, 209, 216, 212, 71, 216, 21, 216, 157, - 26, 1, 209, 216, 212, 184, 216, 249, 26, 1, 209, 216, 216, 255, 26, 1, - 209, 216, 209, 123, 26, 1, 209, 216, 214, 136, 26, 1, 209, 216, 217, 10, - 247, 156, 26, 1, 209, 216, 221, 228, 26, 1, 209, 216, 231, 81, 26, 1, - 209, 216, 221, 235, 26, 1, 209, 216, 191, 226, 215, 117, 26, 1, 209, 216, - 212, 40, 26, 1, 209, 216, 216, 243, 26, 1, 209, 216, 212, 216, 26, 1, - 209, 216, 216, 249, 26, 1, 209, 216, 192, 44, 26, 1, 209, 216, 221, 18, - 26, 1, 209, 216, 222, 127, 26, 1, 209, 216, 203, 248, 26, 1, 209, 216, - 214, 145, 26, 1, 209, 216, 199, 238, 26, 1, 209, 216, 213, 125, 26, 1, - 209, 216, 198, 124, 191, 207, 26, 1, 209, 216, 200, 247, 26, 1, 209, 216, - 214, 28, 212, 95, 26, 1, 209, 216, 195, 76, 26, 1, 209, 216, 214, 220, - 26, 1, 209, 216, 217, 160, 221, 237, 26, 1, 209, 216, 212, 198, 26, 1, - 209, 216, 214, 23, 26, 1, 209, 216, 220, 16, 26, 1, 209, 216, 216, 251, - 26, 1, 209, 216, 216, 134, 26, 1, 209, 216, 212, 192, 26, 1, 209, 216, - 199, 57, 26, 1, 209, 216, 214, 25, 26, 1, 209, 216, 232, 84, 26, 1, 209, - 216, 214, 150, 26, 1, 209, 216, 212, 218, 26, 1, 209, 216, 212, 214, 26, - 1, 209, 216, 247, 240, 26, 1, 209, 216, 195, 78, 26, 1, 209, 216, 217, 0, - 26, 1, 209, 216, 206, 68, 26, 1, 209, 216, 213, 155, 26, 1, 209, 216, - 220, 35, 26, 1, 209, 216, 198, 121, 26, 1, 209, 216, 212, 200, 213, 246, - 26, 1, 209, 216, 213, 147, 26, 1, 209, 216, 221, 241, 26, 1, 209, 216, - 214, 30, 26, 1, 209, 216, 217, 125, 26, 1, 209, 216, 216, 244, 26, 1, - 209, 216, 218, 225, 26, 1, 209, 216, 220, 188, 26, 1, 209, 216, 213, 153, - 26, 1, 209, 216, 213, 246, 26, 1, 209, 216, 192, 244, 26, 1, 209, 216, - 214, 26, 26, 1, 209, 216, 212, 203, 26, 1, 209, 216, 212, 194, 26, 1, - 209, 216, 220, 205, 213, 110, 26, 1, 209, 216, 212, 201, 26, 1, 209, 216, - 214, 158, 26, 1, 209, 216, 217, 160, 212, 206, 26, 1, 209, 216, 192, 140, - 26, 1, 209, 216, 214, 157, 26, 1, 209, 216, 202, 255, 26, 1, 209, 216, - 203, 251, 26, 1, 209, 216, 216, 252, 26, 1, 209, 216, 217, 132, 26, 1, - 209, 216, 217, 6, 26, 1, 209, 216, 221, 229, 26, 1, 209, 216, 216, 253, - 26, 1, 209, 216, 221, 233, 26, 1, 209, 216, 217, 10, 209, 179, 26, 1, - 209, 216, 191, 186, 26, 1, 209, 216, 213, 143, 26, 1, 209, 216, 216, 80, - 26, 1, 209, 216, 215, 149, 26, 1, 209, 216, 203, 64, 26, 1, 209, 216, - 221, 252, 219, 250, 26, 1, 209, 216, 221, 252, 233, 65, 26, 1, 209, 216, - 214, 60, 26, 1, 209, 216, 214, 217, 26, 1, 209, 216, 219, 94, 26, 1, 209, - 216, 209, 139, 26, 1, 209, 216, 210, 34, 26, 1, 209, 216, 199, 73, 26, 1, - 158, 216, 242, 26, 1, 158, 193, 158, 26, 1, 158, 213, 141, 26, 1, 158, - 216, 142, 26, 1, 158, 213, 139, 26, 1, 158, 219, 139, 26, 1, 158, 213, - 144, 26, 1, 158, 212, 213, 26, 1, 158, 214, 44, 26, 1, 158, 212, 95, 26, - 1, 158, 192, 255, 26, 1, 158, 213, 254, 26, 1, 158, 203, 111, 26, 1, 158, - 214, 9, 26, 1, 158, 221, 236, 26, 1, 158, 199, 59, 26, 1, 158, 203, 90, - 26, 1, 158, 213, 152, 26, 1, 158, 200, 214, 26, 1, 158, 221, 241, 26, 1, - 158, 192, 128, 26, 1, 158, 220, 206, 26, 1, 158, 205, 130, 26, 1, 158, - 216, 147, 26, 1, 158, 214, 149, 26, 1, 158, 217, 95, 26, 1, 158, 216, - 153, 26, 1, 158, 203, 250, 26, 1, 158, 192, 70, 26, 1, 158, 213, 146, 26, - 1, 158, 221, 232, 216, 245, 26, 1, 158, 214, 5, 26, 1, 158, 197, 94, 26, - 1, 158, 231, 90, 26, 1, 158, 213, 251, 26, 1, 158, 233, 29, 26, 1, 158, - 214, 153, 26, 1, 158, 216, 126, 26, 1, 158, 219, 170, 26, 1, 158, 214, - 135, 26, 1, 158, 215, 227, 26, 1, 158, 216, 130, 26, 1, 158, 208, 127, - 26, 1, 158, 216, 128, 26, 1, 158, 216, 144, 26, 1, 158, 218, 208, 26, 1, - 158, 212, 205, 26, 1, 158, 217, 9, 26, 1, 158, 220, 177, 26, 1, 158, 212, - 84, 26, 1, 158, 199, 62, 26, 1, 158, 202, 8, 26, 1, 158, 191, 186, 26, 1, - 158, 221, 233, 26, 1, 158, 207, 162, 26, 1, 158, 199, 120, 26, 1, 158, - 214, 6, 26, 1, 158, 216, 149, 26, 1, 158, 212, 204, 26, 1, 158, 221, 231, - 26, 1, 158, 209, 129, 26, 1, 158, 209, 233, 26, 1, 158, 212, 57, 26, 1, - 158, 219, 176, 26, 1, 158, 214, 45, 26, 1, 158, 216, 146, 26, 1, 158, - 214, 18, 26, 1, 158, 191, 200, 26, 1, 158, 210, 137, 26, 1, 158, 191, - 199, 26, 1, 158, 214, 158, 26, 1, 158, 212, 193, 26, 1, 158, 200, 249, - 26, 1, 158, 220, 210, 26, 1, 158, 214, 34, 26, 1, 158, 214, 3, 26, 1, - 158, 197, 69, 26, 1, 158, 216, 157, 26, 1, 158, 220, 199, 26, 1, 158, - 212, 202, 26, 1, 158, 199, 60, 26, 1, 158, 217, 127, 26, 1, 158, 214, 43, - 26, 1, 158, 219, 169, 26, 1, 158, 214, 24, 26, 1, 158, 212, 207, 26, 1, - 158, 213, 125, 26, 1, 158, 231, 74, 26, 1, 158, 220, 232, 26, 1, 158, - 207, 56, 211, 119, 26, 1, 158, 199, 226, 26, 1, 158, 198, 50, 26, 1, 158, - 212, 81, 26, 1, 158, 206, 195, 26, 1, 158, 219, 227, 26, 1, 158, 216, - 210, 26, 1, 158, 218, 168, 26, 1, 158, 200, 160, 26, 1, 158, 215, 155, - 26, 1, 158, 203, 76, 26, 1, 158, 203, 86, 26, 1, 158, 220, 149, 26, 1, - 158, 212, 178, 26, 1, 158, 203, 5, 26, 1, 158, 212, 195, 26, 1, 158, 210, - 49, 26, 1, 158, 213, 219, 26, 1, 158, 203, 41, 26, 1, 158, 208, 143, 26, - 1, 158, 215, 84, 26, 1, 158, 219, 0, 26, 1, 158, 207, 56, 215, 144, 26, - 1, 158, 198, 193, 26, 1, 158, 212, 181, 26, 1, 158, 217, 10, 175, 26, 1, - 158, 205, 128, 26, 1, 158, 233, 108, 26, 1, 114, 214, 157, 26, 1, 114, - 198, 57, 26, 1, 114, 216, 255, 26, 1, 114, 220, 16, 26, 1, 114, 195, 10, - 26, 1, 114, 219, 6, 26, 1, 114, 210, 220, 26, 1, 114, 202, 21, 26, 1, - 114, 207, 134, 26, 1, 114, 212, 209, 26, 1, 114, 214, 128, 26, 1, 114, - 208, 161, 26, 1, 114, 199, 197, 26, 1, 114, 214, 11, 26, 1, 114, 221, 14, - 26, 1, 114, 192, 247, 26, 1, 114, 205, 50, 26, 1, 114, 214, 35, 26, 1, - 114, 210, 217, 26, 1, 114, 198, 59, 26, 1, 114, 220, 204, 26, 1, 114, - 219, 22, 26, 1, 114, 212, 212, 26, 1, 114, 213, 243, 26, 1, 114, 217, - 133, 26, 1, 114, 214, 4, 26, 1, 114, 213, 242, 26, 1, 114, 212, 211, 26, - 1, 114, 206, 192, 26, 1, 114, 213, 143, 26, 1, 114, 210, 46, 26, 1, 114, - 205, 197, 26, 1, 114, 214, 19, 26, 1, 114, 216, 136, 26, 1, 114, 231, 68, - 26, 1, 114, 214, 7, 26, 1, 114, 213, 154, 26, 1, 114, 217, 71, 26, 1, - 114, 219, 2, 26, 1, 114, 214, 40, 26, 1, 114, 214, 141, 26, 1, 114, 199, - 225, 212, 193, 26, 1, 114, 203, 252, 26, 1, 114, 208, 154, 26, 1, 114, - 214, 161, 202, 30, 26, 1, 114, 214, 27, 212, 95, 26, 1, 114, 192, 29, 26, - 1, 114, 231, 69, 26, 1, 114, 197, 88, 26, 1, 114, 192, 47, 26, 1, 114, - 209, 73, 26, 1, 114, 197, 75, 26, 1, 114, 221, 239, 26, 1, 114, 200, 248, - 26, 1, 114, 199, 61, 26, 1, 114, 195, 79, 26, 1, 114, 193, 100, 26, 1, - 114, 220, 123, 26, 1, 114, 208, 165, 26, 1, 114, 199, 239, 26, 1, 114, - 231, 89, 26, 1, 114, 214, 50, 26, 1, 114, 203, 89, 26, 1, 114, 216, 131, - 26, 1, 114, 217, 3, 26, 1, 114, 212, 44, 26, 1, 114, 213, 106, 26, 1, - 114, 231, 176, 26, 1, 114, 197, 76, 26, 1, 114, 220, 215, 26, 1, 114, - 192, 104, 26, 1, 114, 212, 82, 242, 237, 26, 1, 114, 192, 18, 26, 1, 114, - 216, 148, 26, 1, 114, 214, 146, 26, 1, 114, 209, 174, 26, 1, 114, 191, - 206, 26, 1, 114, 219, 171, 26, 1, 114, 232, 84, 26, 1, 114, 231, 175, 26, - 1, 114, 213, 253, 26, 1, 114, 221, 241, 26, 1, 114, 217, 136, 26, 1, 114, - 214, 10, 26, 1, 114, 231, 75, 26, 1, 114, 233, 109, 26, 1, 114, 212, 182, - 26, 1, 114, 209, 234, 26, 1, 114, 192, 45, 26, 1, 114, 214, 36, 26, 1, - 114, 212, 82, 248, 209, 26, 1, 114, 212, 24, 26, 1, 114, 209, 35, 26, 1, - 114, 216, 80, 26, 1, 114, 232, 82, 26, 1, 114, 214, 244, 26, 1, 114, 215, - 149, 26, 1, 114, 231, 74, 26, 1, 114, 232, 87, 68, 26, 1, 114, 215, 85, - 26, 1, 114, 208, 160, 26, 1, 114, 213, 255, 26, 1, 114, 220, 188, 26, 1, - 114, 209, 171, 26, 1, 114, 212, 196, 26, 1, 114, 192, 46, 26, 1, 114, - 214, 20, 26, 1, 114, 210, 221, 210, 19, 26, 1, 114, 232, 87, 247, 138, - 26, 1, 114, 232, 167, 26, 1, 114, 213, 148, 26, 1, 114, 65, 26, 1, 114, - 198, 50, 26, 1, 114, 74, 26, 1, 114, 68, 26, 1, 114, 220, 14, 26, 1, 114, - 210, 221, 209, 82, 26, 1, 114, 199, 245, 26, 1, 114, 199, 180, 26, 1, - 114, 214, 161, 215, 71, 228, 172, 26, 1, 114, 203, 64, 26, 1, 114, 192, - 42, 26, 1, 114, 213, 236, 26, 1, 114, 191, 211, 26, 1, 114, 191, 244, - 200, 136, 26, 1, 114, 191, 244, 238, 242, 26, 1, 114, 191, 194, 26, 1, - 114, 191, 202, 26, 1, 114, 221, 227, 26, 1, 114, 209, 232, 26, 1, 114, - 213, 149, 234, 49, 26, 1, 114, 208, 156, 26, 1, 114, 192, 253, 26, 1, - 114, 233, 52, 26, 1, 114, 195, 148, 26, 1, 114, 218, 225, 26, 1, 114, - 216, 100, 26, 1, 114, 207, 20, 26, 1, 114, 207, 163, 26, 1, 114, 213, - 235, 26, 1, 114, 214, 68, 26, 1, 114, 203, 56, 26, 1, 114, 203, 41, 26, - 1, 114, 232, 87, 207, 59, 26, 1, 114, 180, 26, 1, 114, 209, 185, 26, 1, - 114, 219, 0, 26, 1, 114, 221, 67, 26, 1, 114, 216, 186, 26, 1, 114, 174, - 26, 1, 114, 217, 68, 26, 1, 114, 199, 63, 26, 1, 114, 221, 166, 26, 1, - 114, 215, 231, 26, 1, 114, 199, 95, 26, 1, 114, 233, 76, 26, 1, 114, 231, - 62, 26, 1, 209, 215, 155, 26, 1, 209, 215, 66, 26, 1, 209, 215, 220, 232, - 26, 1, 209, 215, 234, 188, 26, 1, 209, 215, 207, 84, 26, 1, 209, 215, - 199, 226, 26, 1, 209, 215, 212, 81, 26, 1, 209, 215, 173, 26, 1, 209, - 215, 206, 195, 26, 1, 209, 215, 206, 242, 26, 1, 209, 215, 216, 210, 26, - 1, 209, 215, 199, 245, 26, 1, 209, 215, 214, 160, 26, 1, 209, 215, 213, - 155, 26, 1, 209, 215, 218, 168, 26, 1, 209, 215, 200, 160, 26, 1, 209, - 215, 203, 76, 26, 1, 209, 215, 202, 222, 26, 1, 209, 215, 203, 248, 26, - 1, 209, 215, 220, 149, 26, 1, 209, 215, 221, 241, 26, 1, 209, 215, 212, - 146, 26, 1, 209, 215, 212, 178, 26, 1, 209, 215, 213, 126, 26, 1, 209, - 215, 191, 243, 26, 1, 209, 215, 203, 5, 26, 1, 209, 215, 170, 26, 1, 209, - 215, 212, 215, 26, 1, 209, 215, 209, 232, 26, 1, 209, 215, 212, 195, 26, - 1, 209, 215, 192, 253, 26, 1, 209, 215, 210, 49, 26, 1, 209, 215, 206, - 68, 26, 1, 209, 215, 213, 219, 26, 1, 209, 215, 207, 20, 26, 1, 209, 215, - 221, 251, 26, 1, 209, 215, 213, 252, 26, 1, 209, 215, 214, 47, 26, 1, - 209, 215, 203, 56, 26, 1, 209, 215, 208, 161, 26, 1, 209, 215, 232, 167, - 26, 1, 209, 215, 193, 190, 26, 1, 209, 215, 219, 146, 26, 1, 209, 215, - 219, 0, 26, 1, 209, 215, 221, 67, 26, 1, 209, 215, 217, 1, 26, 1, 209, - 215, 207, 55, 26, 1, 209, 215, 174, 26, 1, 209, 215, 216, 12, 26, 1, 209, - 215, 217, 9, 26, 1, 209, 215, 199, 73, 26, 1, 209, 215, 221, 21, 26, 1, - 209, 215, 205, 150, 26, 1, 209, 215, 193, 248, 215, 159, 1, 190, 190, - 215, 159, 1, 214, 16, 215, 159, 1, 192, 12, 215, 159, 1, 216, 46, 215, - 159, 1, 249, 153, 215, 159, 1, 238, 32, 215, 159, 1, 65, 215, 159, 1, - 209, 211, 215, 159, 1, 221, 209, 215, 159, 1, 230, 22, 215, 159, 1, 238, - 7, 215, 159, 1, 243, 48, 215, 159, 1, 222, 15, 215, 159, 1, 211, 120, - 215, 159, 1, 217, 133, 215, 159, 1, 213, 179, 215, 159, 1, 168, 215, 159, - 1, 211, 87, 215, 159, 1, 74, 215, 159, 1, 206, 162, 215, 159, 1, 203, 81, - 215, 159, 1, 199, 32, 215, 159, 1, 234, 217, 215, 159, 1, 193, 190, 215, - 159, 1, 71, 215, 159, 1, 221, 67, 215, 159, 1, 220, 24, 215, 159, 1, 173, - 215, 159, 1, 230, 80, 215, 159, 1, 207, 1, 215, 159, 1, 199, 110, 215, - 159, 17, 191, 77, 215, 159, 17, 107, 215, 159, 17, 109, 215, 159, 17, - 138, 215, 159, 17, 134, 215, 159, 17, 149, 215, 159, 17, 169, 215, 159, - 17, 175, 215, 159, 17, 171, 215, 159, 17, 178, 215, 159, 237, 238, 215, - 159, 55, 237, 238, 199, 186, 1, 210, 238, 199, 186, 1, 211, 166, 199, - 186, 1, 211, 58, 199, 186, 1, 210, 247, 199, 186, 1, 250, 123, 199, 186, - 1, 252, 63, 199, 186, 1, 251, 37, 199, 186, 1, 250, 133, 199, 186, 1, - 193, 227, 199, 186, 1, 195, 155, 199, 186, 1, 194, 255, 199, 186, 1, 193, - 236, 199, 186, 1, 233, 182, 199, 186, 1, 234, 197, 199, 186, 1, 234, 46, - 199, 186, 1, 233, 221, 199, 186, 1, 223, 41, 199, 186, 1, 228, 28, 199, - 186, 1, 223, 79, 199, 186, 1, 223, 45, 199, 186, 1, 196, 18, 199, 186, 1, - 196, 160, 199, 186, 1, 196, 64, 199, 186, 1, 196, 22, 199, 186, 1, 250, - 134, 199, 186, 1, 250, 138, 199, 186, 1, 250, 136, 199, 186, 1, 250, 135, - 199, 186, 1, 196, 129, 199, 186, 1, 196, 138, 199, 186, 1, 196, 135, 199, - 186, 1, 196, 130, 199, 186, 1, 53, 214, 70, 199, 186, 1, 179, 196, 145, - 199, 186, 1, 203, 40, 196, 143, 199, 186, 1, 203, 40, 250, 135, 199, 186, - 1, 196, 150, 199, 186, 1, 196, 143, 199, 186, 1, 196, 146, 199, 186, 1, - 196, 145, 199, 186, 1, 196, 131, 199, 186, 1, 196, 134, 199, 186, 1, 196, - 133, 199, 186, 1, 196, 132, 199, 186, 1, 215, 63, 199, 186, 1, 216, 238, - 199, 186, 1, 215, 165, 199, 186, 1, 215, 72, 199, 186, 1, 155, 199, 186, - 1, 221, 215, 199, 186, 1, 231, 240, 199, 186, 1, 214, 68, 199, 186, 1, - 188, 199, 186, 1, 170, 199, 186, 1, 193, 190, 199, 186, 1, 168, 199, 186, - 1, 212, 101, 199, 186, 1, 209, 228, 199, 186, 1, 249, 153, 199, 186, 1, - 174, 199, 186, 1, 180, 199, 186, 1, 140, 199, 186, 1, 173, 199, 186, 1, - 228, 164, 199, 186, 1, 190, 190, 199, 186, 1, 238, 32, 199, 186, 1, 165, - 199, 186, 1, 213, 224, 199, 186, 1, 203, 165, 199, 186, 1, 247, 160, 199, - 186, 1, 197, 168, 199, 186, 1, 231, 91, 199, 186, 1, 228, 161, 199, 186, - 1, 199, 49, 199, 186, 1, 192, 220, 199, 186, 1, 233, 109, 199, 186, 1, - 237, 68, 199, 186, 1, 247, 1, 199, 186, 1, 191, 123, 199, 186, 17, 191, - 77, 199, 186, 17, 107, 199, 186, 17, 109, 199, 186, 17, 138, 199, 186, - 17, 134, 199, 186, 17, 149, 199, 186, 17, 169, 199, 186, 17, 175, 199, - 186, 17, 171, 199, 186, 17, 178, 249, 67, 195, 185, 1, 234, 84, 249, 67, - 195, 185, 1, 155, 249, 67, 195, 185, 1, 205, 68, 249, 67, 195, 185, 1, - 233, 109, 249, 67, 195, 185, 1, 217, 4, 249, 67, 195, 185, 1, 192, 30, - 249, 67, 195, 185, 1, 231, 225, 249, 67, 195, 185, 1, 237, 49, 249, 67, - 195, 185, 1, 221, 20, 249, 67, 195, 185, 1, 222, 201, 249, 67, 195, 185, - 1, 228, 124, 249, 67, 195, 185, 1, 193, 190, 249, 67, 195, 185, 1, 191, - 7, 249, 67, 195, 185, 1, 231, 169, 249, 67, 195, 185, 1, 236, 174, 249, - 67, 195, 185, 1, 247, 42, 249, 67, 195, 185, 1, 196, 23, 249, 67, 195, - 185, 1, 159, 249, 67, 195, 185, 1, 249, 153, 249, 67, 195, 185, 1, 193, - 249, 249, 67, 195, 185, 1, 192, 74, 249, 67, 195, 185, 1, 168, 249, 67, - 195, 185, 1, 193, 177, 249, 67, 195, 185, 1, 65, 249, 67, 195, 185, 1, - 74, 249, 67, 195, 185, 1, 211, 87, 249, 67, 195, 185, 1, 66, 249, 67, - 195, 185, 1, 234, 188, 249, 67, 195, 185, 1, 71, 249, 67, 195, 185, 1, - 68, 249, 67, 195, 185, 33, 137, 198, 79, 249, 67, 195, 185, 33, 130, 198, - 79, 249, 67, 195, 185, 33, 216, 87, 198, 79, 249, 67, 195, 185, 33, 218, - 238, 198, 79, 249, 67, 195, 185, 33, 229, 133, 198, 79, 249, 67, 195, - 185, 232, 80, 201, 63, 145, 90, 18, 222, 12, 145, 90, 18, 222, 8, 145, - 90, 18, 221, 155, 145, 90, 18, 221, 118, 145, 90, 18, 222, 41, 145, 90, - 18, 222, 38, 145, 90, 18, 220, 216, 145, 90, 18, 220, 185, 145, 90, 18, - 222, 14, 145, 90, 18, 221, 225, 145, 90, 18, 222, 101, 145, 90, 18, 222, - 98, 145, 90, 18, 221, 40, 145, 90, 18, 221, 37, 145, 90, 18, 222, 34, - 145, 90, 18, 222, 31, 145, 90, 18, 220, 218, 145, 90, 18, 220, 217, 145, - 90, 18, 221, 60, 145, 90, 18, 221, 25, 145, 90, 18, 221, 157, 145, 90, - 18, 221, 156, 145, 90, 18, 222, 117, 145, 90, 18, 222, 37, 145, 90, 18, - 220, 175, 145, 90, 18, 220, 166, 145, 90, 18, 222, 126, 145, 90, 18, 222, - 118, 145, 90, 120, 195, 160, 145, 90, 120, 212, 185, 145, 90, 120, 220, - 0, 145, 90, 120, 230, 2, 145, 90, 120, 213, 82, 145, 90, 120, 207, 125, - 145, 90, 120, 213, 109, 145, 90, 120, 208, 69, 145, 90, 120, 192, 91, - 145, 90, 120, 229, 108, 145, 90, 120, 217, 25, 145, 90, 120, 243, 131, - 145, 90, 120, 214, 165, 145, 90, 120, 229, 44, 145, 90, 120, 209, 91, - 145, 90, 120, 212, 191, 145, 90, 120, 214, 205, 145, 90, 120, 250, 163, - 145, 90, 120, 192, 216, 145, 90, 120, 247, 76, 145, 90, 87, 243, 17, 197, - 85, 145, 90, 87, 243, 17, 202, 46, 145, 90, 87, 243, 17, 221, 243, 145, - 90, 87, 243, 17, 221, 198, 145, 90, 87, 243, 17, 200, 246, 145, 90, 87, - 243, 17, 229, 2, 145, 90, 87, 243, 17, 199, 165, 145, 90, 3, 195, 5, 198, - 238, 145, 90, 3, 195, 5, 197, 156, 247, 33, 145, 90, 3, 243, 17, 243, - 120, 145, 90, 3, 195, 5, 199, 10, 145, 90, 3, 195, 5, 233, 49, 145, 90, - 3, 192, 171, 212, 179, 145, 90, 3, 192, 171, 207, 3, 145, 90, 3, 192, - 171, 198, 32, 145, 90, 3, 192, 171, 233, 90, 145, 90, 3, 195, 5, 205, 44, - 145, 90, 3, 216, 209, 200, 250, 145, 90, 3, 195, 5, 212, 231, 145, 90, 3, - 228, 31, 192, 111, 145, 90, 3, 192, 215, 145, 90, 3, 243, 17, 197, 143, - 206, 144, 145, 90, 17, 191, 77, 145, 90, 17, 107, 145, 90, 17, 109, 145, - 90, 17, 138, 145, 90, 17, 134, 145, 90, 17, 149, 145, 90, 17, 169, 145, - 90, 17, 175, 145, 90, 17, 171, 145, 90, 17, 178, 145, 90, 31, 199, 90, - 145, 90, 31, 228, 138, 145, 90, 31, 199, 96, 198, 228, 145, 90, 31, 216, - 47, 145, 90, 31, 228, 141, 216, 47, 145, 90, 31, 199, 96, 248, 169, 145, - 90, 31, 197, 227, 145, 90, 3, 195, 5, 218, 220, 145, 90, 3, 192, 168, - 145, 90, 3, 229, 103, 145, 90, 3, 198, 255, 229, 103, 145, 90, 3, 190, - 236, 199, 43, 145, 90, 3, 229, 28, 145, 90, 3, 212, 245, 145, 90, 3, 192, - 206, 145, 90, 3, 212, 183, 145, 90, 3, 250, 146, 145, 90, 3, 197, 7, 247, - 32, 145, 90, 3, 216, 209, 197, 159, 145, 90, 3, 199, 166, 145, 90, 3, - 218, 253, 145, 90, 3, 215, 103, 145, 90, 3, 243, 17, 230, 76, 218, 196, - 212, 189, 212, 188, 145, 90, 3, 243, 17, 238, 194, 197, 150, 145, 90, 3, - 243, 17, 197, 5, 145, 90, 3, 243, 17, 197, 6, 243, 36, 145, 90, 3, 243, - 17, 208, 159, 237, 206, 145, 90, 3, 243, 17, 212, 238, 198, 41, 145, 90, - 242, 244, 3, 197, 154, 145, 90, 242, 244, 3, 192, 76, 145, 90, 242, 244, - 3, 219, 90, 145, 90, 242, 244, 3, 219, 254, 145, 90, 242, 244, 3, 192, - 167, 145, 90, 242, 244, 3, 221, 41, 145, 90, 242, 244, 3, 229, 254, 145, - 90, 242, 244, 3, 215, 147, 145, 90, 242, 244, 3, 198, 239, 145, 90, 242, - 244, 3, 197, 165, 145, 90, 242, 244, 3, 209, 225, 145, 90, 242, 244, 3, - 221, 213, 145, 90, 242, 244, 3, 230, 64, 145, 90, 242, 244, 3, 195, 182, - 145, 90, 242, 244, 3, 233, 86, 145, 90, 242, 244, 3, 192, 118, 145, 90, - 242, 244, 3, 197, 137, 145, 90, 242, 244, 3, 220, 170, 145, 90, 242, 244, - 3, 193, 237, 216, 218, 6, 1, 218, 168, 216, 218, 6, 1, 206, 8, 216, 218, - 6, 1, 196, 12, 216, 218, 6, 1, 193, 224, 216, 218, 6, 1, 250, 176, 216, - 218, 6, 1, 191, 166, 216, 218, 6, 1, 221, 22, 216, 218, 6, 1, 210, 236, - 216, 218, 6, 1, 200, 43, 216, 218, 6, 1, 232, 51, 216, 218, 6, 1, 233, - 175, 216, 218, 6, 1, 68, 216, 218, 6, 1, 222, 152, 216, 218, 6, 1, 65, - 216, 218, 6, 1, 223, 35, 216, 218, 6, 1, 71, 216, 218, 6, 1, 250, 120, - 216, 218, 6, 1, 247, 193, 216, 218, 6, 1, 66, 216, 218, 6, 1, 191, 225, - 216, 218, 6, 1, 172, 216, 218, 6, 1, 208, 104, 216, 218, 6, 1, 228, 169, - 216, 218, 6, 1, 212, 103, 216, 218, 6, 1, 192, 235, 216, 218, 6, 1, 238, - 127, 216, 218, 6, 1, 211, 151, 216, 218, 6, 1, 215, 61, 216, 218, 6, 1, - 146, 216, 218, 6, 1, 74, 216, 218, 6, 1, 251, 236, 216, 218, 6, 1, 192, - 159, 216, 218, 2, 1, 218, 168, 216, 218, 2, 1, 206, 8, 216, 218, 2, 1, - 196, 12, 216, 218, 2, 1, 193, 224, 216, 218, 2, 1, 250, 176, 216, 218, 2, - 1, 191, 166, 216, 218, 2, 1, 221, 22, 216, 218, 2, 1, 210, 236, 216, 218, - 2, 1, 200, 43, 216, 218, 2, 1, 232, 51, 216, 218, 2, 1, 233, 175, 216, - 218, 2, 1, 68, 216, 218, 2, 1, 222, 152, 216, 218, 2, 1, 65, 216, 218, 2, - 1, 223, 35, 216, 218, 2, 1, 71, 216, 218, 2, 1, 250, 120, 216, 218, 2, 1, - 247, 193, 216, 218, 2, 1, 66, 216, 218, 2, 1, 191, 225, 216, 218, 2, 1, - 172, 216, 218, 2, 1, 208, 104, 216, 218, 2, 1, 228, 169, 216, 218, 2, 1, - 212, 103, 216, 218, 2, 1, 192, 235, 216, 218, 2, 1, 238, 127, 216, 218, - 2, 1, 211, 151, 216, 218, 2, 1, 215, 61, 216, 218, 2, 1, 146, 216, 218, - 2, 1, 74, 216, 218, 2, 1, 251, 236, 216, 218, 2, 1, 192, 159, 216, 218, - 17, 191, 77, 216, 218, 17, 107, 216, 218, 17, 109, 216, 218, 17, 138, - 216, 218, 17, 134, 216, 218, 17, 149, 216, 218, 17, 169, 216, 218, 17, - 175, 216, 218, 17, 171, 216, 218, 17, 178, 216, 218, 31, 199, 95, 216, - 218, 31, 234, 127, 216, 218, 31, 197, 37, 216, 218, 31, 198, 251, 216, - 218, 31, 232, 122, 216, 218, 31, 233, 19, 216, 218, 31, 202, 130, 216, - 218, 31, 203, 244, 216, 218, 31, 234, 161, 216, 218, 31, 213, 171, 216, - 218, 17, 91, 251, 157, 20, 216, 218, 17, 105, 251, 157, 20, 216, 218, 17, - 115, 251, 157, 20, 216, 218, 242, 74, 216, 218, 232, 80, 201, 63, 216, - 218, 16, 251, 221, 216, 218, 233, 216, 211, 136, 121, 1, 168, 121, 1, - 249, 153, 121, 1, 11, 168, 121, 1, 209, 110, 121, 1, 174, 121, 1, 216, - 103, 121, 1, 251, 14, 174, 121, 1, 233, 109, 121, 1, 195, 188, 121, 1, - 195, 71, 121, 1, 190, 190, 121, 1, 238, 32, 121, 1, 11, 197, 132, 121, 1, - 11, 190, 190, 121, 1, 197, 132, 121, 1, 237, 191, 121, 1, 180, 121, 1, - 213, 224, 121, 1, 11, 213, 79, 121, 1, 251, 14, 180, 121, 1, 213, 79, - 121, 1, 213, 65, 121, 1, 173, 121, 1, 218, 182, 121, 1, 219, 159, 121, 1, - 219, 148, 121, 1, 198, 112, 121, 1, 236, 183, 121, 1, 198, 104, 121, 1, - 236, 182, 121, 1, 155, 121, 1, 231, 240, 121, 1, 11, 155, 121, 1, 208, - 96, 121, 1, 208, 72, 121, 1, 214, 68, 121, 1, 214, 17, 121, 1, 251, 14, - 214, 68, 121, 1, 140, 121, 1, 192, 220, 121, 1, 231, 91, 121, 1, 231, 66, - 121, 1, 197, 142, 121, 1, 235, 18, 121, 1, 212, 101, 121, 1, 212, 83, - 121, 1, 197, 157, 121, 1, 235, 29, 121, 1, 11, 197, 157, 121, 1, 11, 235, - 29, 121, 1, 207, 82, 197, 157, 121, 1, 203, 165, 121, 1, 201, 175, 121, - 1, 191, 71, 121, 1, 190, 253, 121, 1, 197, 168, 121, 1, 235, 35, 121, 1, - 11, 197, 168, 121, 1, 188, 121, 1, 191, 123, 121, 1, 190, 254, 121, 1, - 190, 224, 121, 1, 190, 204, 121, 1, 251, 14, 190, 224, 121, 1, 190, 196, - 121, 1, 190, 203, 121, 1, 193, 190, 121, 1, 251, 245, 121, 1, 229, 177, - 121, 1, 248, 32, 121, 1, 200, 125, 121, 1, 235, 19, 121, 1, 199, 145, - 121, 1, 197, 161, 121, 1, 206, 71, 121, 3, 120, 52, 164, 121, 1, 214, - 212, 121, 3, 250, 199, 121, 3, 207, 82, 195, 18, 121, 3, 207, 82, 250, - 199, 121, 18, 3, 65, 121, 18, 3, 252, 206, 121, 18, 3, 251, 241, 121, 18, - 3, 251, 132, 121, 18, 3, 251, 122, 121, 18, 3, 74, 121, 18, 3, 211, 87, - 121, 18, 3, 193, 48, 121, 18, 3, 193, 224, 121, 18, 3, 71, 121, 18, 3, - 234, 103, 121, 18, 3, 234, 88, 121, 18, 3, 211, 147, 121, 18, 3, 68, 121, - 18, 3, 228, 35, 121, 18, 3, 228, 34, 121, 18, 3, 228, 33, 121, 18, 3, - 223, 88, 121, 18, 3, 223, 226, 121, 18, 3, 223, 199, 121, 18, 3, 223, 49, - 121, 18, 3, 223, 136, 121, 18, 3, 66, 121, 18, 3, 196, 168, 121, 18, 3, - 196, 167, 121, 18, 3, 196, 166, 121, 18, 3, 196, 30, 121, 18, 3, 196, - 148, 121, 18, 3, 196, 97, 121, 18, 3, 192, 159, 121, 18, 3, 192, 33, 121, - 18, 3, 252, 25, 121, 18, 3, 252, 21, 121, 18, 3, 234, 26, 121, 18, 3, - 206, 113, 234, 26, 121, 18, 3, 234, 34, 121, 18, 3, 206, 113, 234, 34, - 121, 18, 3, 251, 236, 121, 18, 3, 234, 166, 121, 18, 3, 250, 163, 121, - 18, 3, 211, 19, 121, 18, 3, 215, 61, 121, 18, 3, 214, 70, 121, 18, 3, - 196, 81, 121, 18, 3, 191, 205, 121, 18, 3, 211, 141, 121, 18, 3, 211, - 148, 121, 18, 3, 193, 239, 121, 18, 3, 223, 204, 121, 18, 3, 234, 217, - 121, 18, 3, 223, 86, 121, 18, 3, 196, 139, 121, 163, 183, 121, 163, 198, - 54, 183, 121, 163, 58, 121, 163, 60, 121, 1, 198, 77, 121, 1, 198, 76, - 121, 1, 198, 75, 121, 1, 198, 74, 121, 1, 198, 73, 121, 1, 198, 72, 121, - 1, 198, 71, 121, 1, 207, 82, 198, 78, 121, 1, 207, 82, 198, 77, 121, 1, - 207, 82, 198, 75, 121, 1, 207, 82, 198, 74, 121, 1, 207, 82, 198, 73, - 121, 1, 207, 82, 198, 71, 19, 223, 51, 77, 46, 223, 51, 77, 39, 243, 80, - 228, 251, 77, 39, 243, 80, 223, 51, 77, 41, 2, 27, 233, 3, 195, 57, 251, - 157, 207, 107, 87, 247, 160, 195, 57, 251, 157, 207, 107, 87, 213, 223, - 19, 242, 63, 19, 242, 62, 19, 242, 61, 19, 242, 60, 19, 242, 59, 19, 242, - 58, 19, 242, 57, 19, 242, 56, 19, 242, 55, 19, 242, 54, 19, 242, 53, 19, - 242, 52, 19, 242, 51, 19, 242, 50, 19, 242, 49, 19, 242, 48, 19, 242, 47, - 19, 242, 46, 19, 242, 45, 19, 242, 44, 19, 242, 43, 19, 242, 42, 19, 242, - 41, 19, 242, 40, 19, 242, 39, 19, 242, 38, 19, 242, 37, 19, 242, 36, 19, - 242, 35, 19, 242, 34, 19, 242, 33, 19, 242, 32, 19, 242, 31, 19, 242, 30, - 19, 242, 29, 19, 242, 28, 19, 242, 27, 19, 242, 26, 19, 242, 25, 19, 242, - 24, 19, 242, 23, 19, 242, 22, 19, 242, 21, 19, 242, 20, 19, 242, 19, 19, - 242, 18, 19, 242, 17, 19, 242, 16, 19, 242, 15, 19, 242, 14, 19, 242, 13, - 19, 242, 12, 19, 242, 11, 19, 242, 10, 19, 242, 9, 19, 242, 8, 19, 242, - 7, 19, 242, 6, 19, 242, 5, 19, 242, 4, 19, 242, 3, 19, 242, 2, 19, 242, - 1, 19, 242, 0, 19, 241, 255, 19, 241, 254, 19, 241, 253, 19, 241, 252, - 19, 241, 251, 19, 241, 250, 19, 241, 249, 19, 241, 248, 19, 241, 247, 19, + 7, 254, 14, 29, 7, 254, 13, 29, 7, 254, 12, 29, 7, 254, 10, 29, 7, 254, + 9, 29, 7, 254, 8, 29, 7, 254, 7, 29, 7, 254, 6, 29, 7, 254, 5, 29, 7, + 254, 4, 29, 7, 254, 3, 29, 7, 254, 2, 29, 7, 254, 1, 29, 7, 254, 0, 29, + 7, 253, 255, 29, 7, 253, 254, 29, 7, 253, 253, 29, 7, 253, 252, 29, 7, + 253, 251, 29, 7, 253, 250, 29, 7, 253, 249, 29, 7, 253, 248, 29, 7, 253, + 247, 29, 7, 253, 246, 29, 7, 253, 245, 29, 7, 253, 244, 29, 7, 253, 243, + 29, 7, 253, 242, 29, 7, 253, 241, 29, 7, 253, 240, 29, 7, 253, 239, 29, + 7, 253, 238, 29, 7, 253, 237, 29, 7, 253, 236, 29, 7, 253, 235, 29, 7, + 253, 234, 29, 7, 253, 233, 29, 7, 253, 232, 29, 7, 253, 231, 29, 7, 253, + 230, 29, 7, 253, 229, 29, 7, 253, 228, 29, 7, 253, 227, 29, 7, 253, 226, + 29, 7, 253, 225, 29, 7, 253, 224, 29, 7, 253, 223, 29, 7, 253, 222, 29, + 7, 253, 221, 29, 7, 253, 220, 29, 7, 253, 219, 29, 7, 253, 218, 29, 7, + 253, 217, 29, 7, 253, 216, 29, 7, 253, 215, 29, 7, 253, 214, 29, 7, 253, + 213, 29, 7, 253, 212, 29, 7, 253, 211, 29, 7, 253, 210, 29, 7, 253, 209, + 29, 7, 253, 208, 29, 7, 253, 207, 29, 7, 253, 206, 29, 7, 253, 205, 207, + 181, 211, 46, 206, 252, 29, 7, 253, 204, 29, 7, 253, 203, 29, 7, 253, + 202, 29, 7, 253, 201, 29, 7, 253, 200, 29, 7, 253, 199, 29, 7, 253, 198, + 29, 7, 253, 197, 29, 7, 253, 196, 29, 7, 253, 195, 29, 7, 253, 194, 29, + 7, 253, 193, 176, 29, 7, 253, 192, 29, 7, 253, 191, 29, 7, 253, 190, 29, + 7, 253, 189, 29, 7, 253, 188, 29, 7, 253, 187, 29, 7, 253, 186, 29, 7, + 253, 184, 29, 7, 253, 182, 29, 7, 253, 180, 29, 7, 253, 178, 29, 7, 253, + 176, 29, 7, 253, 174, 29, 7, 253, 172, 29, 7, 253, 170, 29, 7, 253, 168, + 29, 7, 253, 166, 248, 199, 219, 4, 77, 29, 7, 253, 164, 234, 53, 219, 4, + 77, 29, 7, 253, 163, 29, 7, 253, 161, 29, 7, 253, 159, 29, 7, 253, 157, + 29, 7, 253, 155, 29, 7, 253, 153, 29, 7, 253, 151, 29, 7, 253, 149, 29, + 7, 253, 147, 29, 7, 253, 146, 29, 7, 253, 145, 29, 7, 253, 144, 29, 7, + 253, 143, 29, 7, 253, 142, 29, 7, 253, 141, 29, 7, 253, 140, 29, 7, 253, + 139, 29, 7, 253, 138, 29, 7, 253, 137, 29, 7, 253, 136, 29, 7, 253, 135, + 29, 7, 253, 134, 29, 7, 253, 133, 29, 7, 253, 132, 29, 7, 253, 131, 29, + 7, 253, 130, 29, 7, 253, 129, 29, 7, 253, 128, 29, 7, 253, 127, 29, 7, + 253, 126, 29, 7, 253, 125, 29, 7, 253, 124, 29, 7, 253, 123, 29, 7, 253, + 122, 29, 7, 253, 121, 29, 7, 253, 120, 29, 7, 253, 119, 29, 7, 253, 118, + 29, 7, 253, 117, 29, 7, 253, 116, 29, 7, 253, 115, 29, 7, 253, 114, 29, + 7, 253, 113, 29, 7, 253, 112, 29, 7, 253, 111, 29, 7, 253, 110, 29, 7, + 253, 109, 29, 7, 253, 108, 29, 7, 253, 107, 29, 7, 253, 106, 29, 7, 253, + 105, 29, 7, 253, 104, 29, 7, 253, 103, 29, 7, 253, 102, 29, 7, 253, 101, + 29, 7, 253, 100, 29, 7, 253, 99, 29, 7, 253, 98, 29, 7, 253, 97, 29, 7, + 253, 96, 29, 7, 253, 95, 29, 7, 253, 94, 29, 7, 253, 93, 29, 7, 253, 92, + 29, 7, 253, 91, 29, 7, 253, 90, 29, 7, 253, 89, 29, 7, 253, 88, 29, 7, + 253, 87, 29, 7, 253, 86, 29, 7, 253, 85, 29, 7, 253, 84, 29, 7, 253, 83, + 29, 7, 253, 82, 29, 7, 253, 81, 29, 7, 253, 80, 29, 7, 253, 79, 29, 7, + 253, 78, 29, 7, 253, 77, 29, 7, 253, 76, 29, 7, 253, 75, 29, 7, 253, 74, + 29, 7, 253, 73, 29, 7, 253, 72, 29, 7, 253, 71, 29, 7, 253, 70, 29, 7, + 253, 69, 29, 7, 253, 68, 29, 7, 253, 67, 29, 7, 253, 66, 29, 7, 253, 65, + 29, 7, 253, 64, 29, 7, 253, 63, 29, 7, 253, 62, 29, 7, 253, 61, 29, 7, + 253, 60, 29, 7, 253, 59, 29, 7, 253, 58, 29, 7, 253, 57, 29, 7, 253, 56, + 29, 7, 253, 55, 29, 7, 253, 54, 29, 7, 253, 53, 29, 7, 253, 52, 29, 7, + 253, 51, 29, 7, 253, 50, 29, 7, 253, 49, 29, 7, 253, 48, 29, 7, 253, 47, + 29, 7, 253, 46, 29, 7, 253, 45, 29, 7, 253, 44, 29, 7, 253, 43, 29, 7, + 253, 42, 29, 7, 253, 41, 29, 7, 253, 40, 29, 7, 253, 39, 29, 7, 253, 38, + 29, 7, 253, 37, 26, 1, 209, 209, 213, 243, 216, 123, 26, 1, 209, 209, + 231, 136, 232, 127, 26, 1, 209, 209, 209, 33, 216, 124, 209, 119, 26, 1, + 209, 209, 209, 33, 216, 124, 209, 120, 26, 1, 209, 209, 214, 237, 216, + 123, 26, 1, 209, 209, 202, 251, 26, 1, 209, 209, 198, 119, 216, 123, 26, + 1, 209, 209, 212, 34, 216, 123, 26, 1, 209, 209, 203, 63, 210, 211, 213, + 128, 26, 1, 209, 209, 209, 33, 210, 211, 213, 129, 209, 119, 26, 1, 209, + 209, 209, 33, 210, 211, 213, 129, 209, 120, 26, 1, 209, 209, 217, 110, + 26, 1, 209, 209, 197, 91, 217, 111, 26, 1, 209, 209, 214, 48, 26, 1, 209, + 209, 217, 107, 26, 1, 209, 209, 217, 57, 26, 1, 209, 209, 215, 72, 26, 1, + 209, 209, 203, 244, 26, 1, 209, 209, 212, 174, 26, 1, 209, 209, 221, 209, + 26, 1, 209, 209, 213, 95, 26, 1, 209, 209, 200, 156, 26, 1, 209, 209, + 213, 242, 26, 1, 209, 209, 219, 247, 26, 1, 209, 209, 219, 153, 220, 164, + 26, 1, 209, 209, 212, 184, 216, 131, 26, 1, 209, 209, 217, 114, 26, 1, + 209, 209, 210, 88, 26, 1, 209, 209, 231, 35, 26, 1, 209, 209, 210, 160, + 26, 1, 209, 209, 215, 215, 214, 21, 26, 1, 209, 209, 212, 15, 216, 134, + 26, 1, 209, 209, 126, 191, 195, 214, 230, 26, 1, 209, 209, 231, 36, 26, + 1, 209, 209, 212, 184, 212, 185, 26, 1, 209, 209, 202, 134, 26, 1, 209, + 209, 216, 116, 26, 1, 209, 209, 216, 137, 26, 1, 209, 209, 215, 190, 26, + 1, 209, 209, 222, 78, 26, 1, 209, 209, 210, 211, 219, 201, 26, 1, 209, + 209, 214, 149, 219, 201, 26, 1, 209, 209, 209, 231, 26, 1, 209, 209, 217, + 108, 26, 1, 209, 209, 213, 171, 26, 1, 209, 209, 208, 137, 26, 1, 209, + 209, 197, 83, 26, 1, 209, 209, 218, 199, 26, 1, 209, 209, 202, 12, 26, 1, + 209, 209, 199, 53, 26, 1, 209, 209, 217, 105, 26, 1, 209, 209, 221, 216, + 26, 1, 209, 209, 214, 145, 26, 1, 209, 209, 220, 179, 26, 1, 209, 209, + 215, 191, 26, 1, 209, 209, 202, 247, 26, 1, 209, 209, 218, 252, 26, 1, + 209, 209, 232, 198, 26, 1, 209, 209, 206, 132, 26, 1, 209, 209, 220, 242, + 26, 1, 209, 209, 202, 8, 26, 1, 209, 209, 217, 52, 209, 164, 26, 1, 209, + 209, 203, 56, 26, 1, 209, 209, 212, 183, 26, 1, 209, 209, 203, 37, 212, + 195, 191, 203, 26, 1, 209, 209, 212, 56, 215, 211, 26, 1, 209, 209, 210, + 206, 26, 1, 209, 209, 213, 97, 26, 1, 209, 209, 196, 81, 26, 1, 209, 209, + 214, 24, 26, 1, 209, 209, 217, 104, 26, 1, 209, 209, 213, 140, 26, 1, + 209, 209, 216, 243, 26, 1, 209, 209, 212, 71, 26, 1, 209, 209, 199, 57, + 26, 1, 209, 209, 202, 3, 26, 1, 209, 209, 210, 207, 26, 1, 209, 209, 212, + 199, 26, 1, 209, 209, 217, 112, 26, 1, 209, 209, 212, 68, 26, 1, 209, + 209, 222, 40, 26, 1, 209, 209, 212, 202, 26, 1, 209, 209, 195, 145, 26, + 1, 209, 209, 218, 203, 26, 1, 209, 209, 214, 88, 26, 1, 209, 209, 214, + 203, 26, 1, 209, 209, 216, 242, 26, 1, 209, 208, 212, 197, 26, 1, 209, + 208, 197, 91, 217, 109, 26, 1, 209, 208, 202, 199, 26, 1, 209, 208, 203, + 248, 197, 90, 26, 1, 209, 208, 218, 255, 212, 180, 26, 1, 209, 208, 216, + 249, 217, 113, 26, 1, 209, 208, 221, 126, 26, 1, 209, 208, 192, 43, 26, + 1, 209, 208, 216, 244, 26, 1, 209, 208, 222, 64, 26, 1, 209, 208, 210, + 35, 26, 1, 209, 208, 192, 126, 219, 201, 26, 1, 209, 208, 220, 12, 212, + 195, 212, 82, 26, 1, 209, 208, 212, 177, 203, 82, 26, 1, 209, 208, 214, + 116, 213, 143, 26, 1, 209, 208, 231, 33, 26, 1, 209, 208, 209, 109, 26, + 1, 209, 208, 197, 91, 212, 193, 26, 1, 209, 208, 203, 87, 213, 138, 26, + 1, 209, 208, 203, 83, 26, 1, 209, 208, 216, 124, 199, 56, 26, 1, 209, + 208, 216, 231, 216, 245, 26, 1, 209, 208, 212, 69, 212, 180, 26, 1, 209, + 208, 221, 205, 26, 1, 209, 208, 231, 34, 26, 1, 209, 208, 221, 201, 26, + 1, 209, 208, 220, 96, 26, 1, 209, 208, 210, 91, 26, 1, 209, 208, 195, 74, + 26, 1, 209, 208, 213, 244, 215, 70, 26, 1, 209, 208, 214, 23, 216, 227, + 26, 1, 209, 208, 192, 254, 26, 1, 209, 208, 205, 170, 26, 1, 209, 208, + 199, 235, 26, 1, 209, 208, 216, 136, 26, 1, 209, 208, 214, 7, 26, 1, 209, + 208, 214, 8, 219, 244, 26, 1, 209, 208, 216, 126, 26, 1, 209, 208, 200, + 209, 26, 1, 209, 208, 216, 235, 26, 1, 209, 208, 215, 195, 26, 1, 209, + 208, 212, 86, 26, 1, 209, 208, 208, 141, 26, 1, 209, 208, 216, 135, 214, + 25, 26, 1, 209, 208, 232, 243, 26, 1, 209, 208, 216, 222, 26, 1, 209, + 208, 233, 11, 26, 1, 209, 208, 221, 213, 26, 1, 209, 208, 217, 139, 213, + 132, 26, 1, 209, 208, 217, 139, 213, 108, 26, 1, 209, 208, 219, 152, 26, + 1, 209, 208, 214, 31, 26, 1, 209, 208, 212, 204, 26, 1, 209, 208, 172, + 26, 1, 209, 208, 221, 109, 26, 1, 209, 208, 213, 232, 26, 1, 209, 207, + 213, 243, 217, 111, 26, 1, 209, 207, 212, 33, 26, 1, 209, 207, 191, 203, + 26, 1, 209, 207, 193, 158, 26, 1, 209, 207, 214, 24, 26, 1, 209, 207, + 214, 137, 26, 1, 209, 207, 213, 250, 26, 1, 209, 207, 231, 43, 26, 1, + 209, 207, 216, 239, 26, 1, 209, 207, 231, 143, 26, 1, 209, 207, 212, 58, + 216, 4, 216, 138, 26, 1, 209, 207, 212, 171, 216, 230, 26, 1, 209, 207, + 216, 236, 26, 1, 209, 207, 209, 115, 26, 1, 209, 207, 214, 122, 26, 1, + 209, 207, 216, 247, 247, 108, 26, 1, 209, 207, 221, 203, 26, 1, 209, 207, + 231, 44, 26, 1, 209, 207, 221, 210, 26, 1, 209, 207, 191, 226, 215, 103, + 26, 1, 209, 207, 212, 27, 26, 1, 209, 207, 216, 224, 26, 1, 209, 207, + 212, 203, 26, 1, 209, 207, 216, 230, 26, 1, 209, 207, 192, 44, 26, 1, + 209, 207, 220, 250, 26, 1, 209, 207, 222, 100, 26, 1, 209, 207, 203, 243, + 26, 1, 209, 207, 214, 131, 26, 1, 209, 207, 199, 233, 26, 1, 209, 207, + 213, 112, 26, 1, 209, 207, 198, 119, 191, 207, 26, 1, 209, 207, 200, 242, + 26, 1, 209, 207, 214, 14, 212, 82, 26, 1, 209, 207, 195, 73, 26, 1, 209, + 207, 214, 206, 26, 1, 209, 207, 217, 139, 221, 212, 26, 1, 209, 207, 212, + 185, 26, 1, 209, 207, 214, 9, 26, 1, 209, 207, 219, 248, 26, 1, 209, 207, + 216, 232, 26, 1, 209, 207, 216, 115, 26, 1, 209, 207, 212, 179, 26, 1, + 209, 207, 199, 52, 26, 1, 209, 207, 214, 11, 26, 1, 209, 207, 232, 46, + 26, 1, 209, 207, 214, 136, 26, 1, 209, 207, 212, 205, 26, 1, 209, 207, + 212, 201, 26, 1, 209, 207, 247, 192, 26, 1, 209, 207, 195, 75, 26, 1, + 209, 207, 216, 237, 26, 1, 209, 207, 206, 63, 26, 1, 209, 207, 213, 142, + 26, 1, 209, 207, 220, 11, 26, 1, 209, 207, 198, 116, 26, 1, 209, 207, + 212, 187, 213, 232, 26, 1, 209, 207, 213, 134, 26, 1, 209, 207, 221, 216, + 26, 1, 209, 207, 214, 16, 26, 1, 209, 207, 217, 104, 26, 1, 209, 207, + 216, 225, 26, 1, 209, 207, 218, 203, 26, 1, 209, 207, 220, 164, 26, 1, + 209, 207, 213, 140, 26, 1, 209, 207, 213, 232, 26, 1, 209, 207, 192, 244, + 26, 1, 209, 207, 214, 12, 26, 1, 209, 207, 212, 190, 26, 1, 209, 207, + 212, 181, 26, 1, 209, 207, 220, 181, 213, 97, 26, 1, 209, 207, 212, 188, + 26, 1, 209, 207, 214, 144, 26, 1, 209, 207, 217, 139, 212, 193, 26, 1, + 209, 207, 192, 140, 26, 1, 209, 207, 214, 143, 26, 1, 209, 207, 202, 250, + 26, 1, 209, 207, 203, 246, 26, 1, 209, 207, 216, 233, 26, 1, 209, 207, + 217, 111, 26, 1, 209, 207, 216, 243, 26, 1, 209, 207, 221, 204, 26, 1, + 209, 207, 216, 234, 26, 1, 209, 207, 221, 208, 26, 1, 209, 207, 216, 247, + 209, 170, 26, 1, 209, 207, 191, 186, 26, 1, 209, 207, 213, 130, 26, 1, + 209, 207, 216, 62, 26, 1, 209, 207, 215, 133, 26, 1, 209, 207, 203, 59, + 26, 1, 209, 207, 221, 227, 219, 226, 26, 1, 209, 207, 221, 227, 233, 24, + 26, 1, 209, 207, 214, 46, 26, 1, 209, 207, 214, 203, 26, 1, 209, 207, + 219, 70, 26, 1, 209, 207, 209, 130, 26, 1, 209, 207, 210, 25, 26, 1, 209, + 207, 199, 68, 26, 1, 158, 216, 223, 26, 1, 158, 193, 156, 26, 1, 158, + 213, 128, 26, 1, 158, 216, 123, 26, 1, 158, 213, 126, 26, 1, 158, 219, + 115, 26, 1, 158, 213, 131, 26, 1, 158, 212, 200, 26, 1, 158, 214, 30, 26, + 1, 158, 212, 82, 26, 1, 158, 192, 255, 26, 1, 158, 213, 240, 26, 1, 158, + 203, 106, 26, 1, 158, 213, 251, 26, 1, 158, 221, 211, 26, 1, 158, 199, + 54, 26, 1, 158, 203, 85, 26, 1, 158, 213, 139, 26, 1, 158, 200, 209, 26, + 1, 158, 221, 216, 26, 1, 158, 192, 128, 26, 1, 158, 220, 182, 26, 1, 158, + 205, 125, 26, 1, 158, 216, 128, 26, 1, 158, 214, 135, 26, 1, 158, 217, + 75, 26, 1, 158, 216, 134, 26, 1, 158, 203, 245, 26, 1, 158, 192, 70, 26, + 1, 158, 213, 133, 26, 1, 158, 221, 207, 216, 226, 26, 1, 158, 213, 247, + 26, 1, 158, 197, 90, 26, 1, 158, 231, 53, 26, 1, 158, 213, 237, 26, 1, + 158, 232, 244, 26, 1, 158, 214, 139, 26, 1, 158, 216, 107, 26, 1, 158, + 219, 146, 26, 1, 158, 214, 121, 26, 1, 158, 215, 210, 26, 1, 158, 216, + 111, 26, 1, 158, 208, 120, 26, 1, 158, 216, 109, 26, 1, 158, 216, 125, + 26, 1, 158, 218, 186, 26, 1, 158, 212, 192, 26, 1, 158, 216, 246, 26, 1, + 158, 220, 153, 26, 1, 158, 212, 71, 26, 1, 158, 199, 57, 26, 1, 158, 202, + 3, 26, 1, 158, 191, 186, 26, 1, 158, 221, 208, 26, 1, 158, 207, 157, 26, + 1, 158, 199, 115, 26, 1, 158, 213, 248, 26, 1, 158, 216, 130, 26, 1, 158, + 212, 191, 26, 1, 158, 221, 206, 26, 1, 158, 209, 121, 26, 1, 158, 209, + 224, 26, 1, 158, 212, 44, 26, 1, 158, 219, 152, 26, 1, 158, 214, 31, 26, + 1, 158, 216, 127, 26, 1, 158, 214, 4, 26, 1, 158, 191, 200, 26, 1, 158, + 210, 127, 26, 1, 158, 191, 199, 26, 1, 158, 214, 144, 26, 1, 158, 212, + 180, 26, 1, 158, 200, 244, 26, 1, 158, 220, 186, 26, 1, 158, 214, 20, 26, + 1, 158, 213, 245, 26, 1, 158, 197, 65, 26, 1, 158, 216, 138, 26, 1, 158, + 220, 175, 26, 1, 158, 212, 189, 26, 1, 158, 199, 55, 26, 1, 158, 217, + 106, 26, 1, 158, 214, 29, 26, 1, 158, 219, 145, 26, 1, 158, 214, 10, 26, + 1, 158, 212, 194, 26, 1, 158, 213, 112, 26, 1, 158, 231, 37, 26, 1, 158, + 220, 208, 26, 1, 158, 207, 51, 211, 108, 26, 1, 158, 199, 221, 26, 1, + 158, 198, 45, 26, 1, 158, 212, 68, 26, 1, 158, 206, 190, 26, 1, 158, 219, + 203, 26, 1, 158, 216, 191, 26, 1, 158, 218, 147, 26, 1, 158, 200, 156, + 26, 1, 158, 215, 139, 26, 1, 158, 203, 71, 26, 1, 158, 203, 81, 26, 1, + 158, 220, 125, 26, 1, 158, 212, 165, 26, 1, 158, 203, 0, 26, 1, 158, 212, + 182, 26, 1, 158, 210, 40, 26, 1, 158, 213, 205, 26, 1, 158, 203, 36, 26, + 1, 158, 208, 136, 26, 1, 158, 215, 70, 26, 1, 158, 218, 232, 26, 1, 158, + 207, 51, 215, 128, 26, 1, 158, 198, 188, 26, 1, 158, 212, 168, 26, 1, + 158, 216, 247, 181, 26, 1, 158, 205, 123, 26, 1, 158, 233, 67, 26, 1, + 114, 214, 143, 26, 1, 114, 198, 52, 26, 1, 114, 216, 236, 26, 1, 114, + 219, 248, 26, 1, 114, 195, 7, 26, 1, 114, 218, 238, 26, 1, 114, 210, 210, + 26, 1, 114, 202, 16, 26, 1, 114, 207, 129, 26, 1, 114, 212, 196, 26, 1, + 114, 214, 114, 26, 1, 114, 208, 154, 26, 1, 114, 199, 192, 26, 1, 114, + 213, 253, 26, 1, 114, 220, 246, 26, 1, 114, 192, 247, 26, 1, 114, 205, + 45, 26, 1, 114, 214, 21, 26, 1, 114, 210, 207, 26, 1, 114, 198, 54, 26, + 1, 114, 220, 180, 26, 1, 114, 218, 254, 26, 1, 114, 212, 199, 26, 1, 114, + 213, 229, 26, 1, 114, 217, 112, 26, 1, 114, 213, 246, 26, 1, 114, 213, + 228, 26, 1, 114, 212, 198, 26, 1, 114, 206, 187, 26, 1, 114, 213, 130, + 26, 1, 114, 210, 37, 26, 1, 114, 205, 192, 26, 1, 114, 214, 5, 26, 1, + 114, 216, 117, 26, 1, 114, 231, 31, 26, 1, 114, 213, 249, 26, 1, 114, + 213, 141, 26, 1, 114, 217, 51, 26, 1, 114, 218, 234, 26, 1, 114, 214, 26, + 26, 1, 114, 214, 127, 26, 1, 114, 199, 220, 212, 180, 26, 1, 114, 203, + 247, 26, 1, 114, 208, 147, 26, 1, 114, 214, 147, 202, 25, 26, 1, 114, + 214, 13, 212, 82, 26, 1, 114, 192, 29, 26, 1, 114, 231, 32, 26, 1, 114, + 197, 84, 26, 1, 114, 192, 47, 26, 1, 114, 209, 65, 26, 1, 114, 197, 71, + 26, 1, 114, 221, 214, 26, 1, 114, 200, 243, 26, 1, 114, 199, 56, 26, 1, + 114, 195, 76, 26, 1, 114, 193, 98, 26, 1, 114, 220, 99, 26, 1, 114, 208, + 158, 26, 1, 114, 199, 234, 26, 1, 114, 231, 52, 26, 1, 114, 214, 36, 26, + 1, 114, 203, 84, 26, 1, 114, 216, 112, 26, 1, 114, 216, 240, 26, 1, 114, + 212, 31, 26, 1, 114, 213, 93, 26, 1, 114, 231, 139, 26, 1, 114, 197, 72, + 26, 1, 114, 220, 191, 26, 1, 114, 192, 104, 26, 1, 114, 212, 69, 242, + 189, 26, 1, 114, 192, 18, 26, 1, 114, 216, 129, 26, 1, 114, 214, 132, 26, + 1, 114, 209, 165, 26, 1, 114, 191, 206, 26, 1, 114, 219, 147, 26, 1, 114, + 232, 46, 26, 1, 114, 231, 138, 26, 1, 114, 213, 239, 26, 1, 114, 221, + 216, 26, 1, 114, 217, 115, 26, 1, 114, 213, 252, 26, 1, 114, 231, 38, 26, + 1, 114, 233, 68, 26, 1, 114, 212, 169, 26, 1, 114, 209, 225, 26, 1, 114, + 192, 45, 26, 1, 114, 214, 22, 26, 1, 114, 212, 69, 248, 159, 26, 1, 114, + 212, 11, 26, 1, 114, 209, 28, 26, 1, 114, 216, 62, 26, 1, 114, 232, 44, + 26, 1, 114, 214, 230, 26, 1, 114, 215, 133, 26, 1, 114, 231, 37, 26, 1, + 114, 232, 49, 70, 26, 1, 114, 215, 71, 26, 1, 114, 208, 153, 26, 1, 114, + 213, 241, 26, 1, 114, 220, 164, 26, 1, 114, 209, 162, 26, 1, 114, 212, + 183, 26, 1, 114, 192, 46, 26, 1, 114, 214, 6, 26, 1, 114, 210, 211, 210, + 10, 26, 1, 114, 232, 49, 247, 90, 26, 1, 114, 232, 128, 26, 1, 114, 213, + 135, 26, 1, 114, 65, 26, 1, 114, 198, 45, 26, 1, 114, 74, 26, 1, 114, 70, + 26, 1, 114, 219, 246, 26, 1, 114, 210, 211, 209, 74, 26, 1, 114, 199, + 240, 26, 1, 114, 199, 175, 26, 1, 114, 214, 147, 215, 57, 228, 141, 26, + 1, 114, 203, 59, 26, 1, 114, 192, 42, 26, 1, 114, 213, 222, 26, 1, 114, + 191, 211, 26, 1, 114, 191, 244, 200, 132, 26, 1, 114, 191, 244, 238, 195, + 26, 1, 114, 191, 194, 26, 1, 114, 191, 202, 26, 1, 114, 221, 202, 26, 1, + 114, 209, 223, 26, 1, 114, 213, 136, 234, 7, 26, 1, 114, 208, 149, 26, 1, + 114, 192, 253, 26, 1, 114, 233, 11, 26, 1, 114, 195, 145, 26, 1, 114, + 218, 203, 26, 1, 114, 216, 81, 26, 1, 114, 207, 15, 26, 1, 114, 207, 158, + 26, 1, 114, 213, 221, 26, 1, 114, 214, 54, 26, 1, 114, 203, 51, 26, 1, + 114, 203, 36, 26, 1, 114, 232, 49, 207, 54, 26, 1, 114, 180, 26, 1, 114, + 209, 176, 26, 1, 114, 218, 232, 26, 1, 114, 221, 43, 26, 1, 114, 216, + 167, 26, 1, 114, 172, 26, 1, 114, 217, 48, 26, 1, 114, 199, 58, 26, 1, + 114, 221, 142, 26, 1, 114, 215, 214, 26, 1, 114, 199, 90, 26, 1, 114, + 233, 35, 26, 1, 114, 231, 25, 26, 1, 209, 206, 157, 26, 1, 209, 206, 69, + 26, 1, 209, 206, 220, 208, 26, 1, 209, 206, 234, 145, 26, 1, 209, 206, + 207, 79, 26, 1, 209, 206, 199, 221, 26, 1, 209, 206, 212, 68, 26, 1, 209, + 206, 171, 26, 1, 209, 206, 206, 190, 26, 1, 209, 206, 206, 237, 26, 1, + 209, 206, 216, 191, 26, 1, 209, 206, 199, 240, 26, 1, 209, 206, 214, 146, + 26, 1, 209, 206, 213, 142, 26, 1, 209, 206, 218, 147, 26, 1, 209, 206, + 200, 156, 26, 1, 209, 206, 203, 71, 26, 1, 209, 206, 202, 217, 26, 1, + 209, 206, 203, 243, 26, 1, 209, 206, 220, 125, 26, 1, 209, 206, 221, 216, + 26, 1, 209, 206, 212, 133, 26, 1, 209, 206, 212, 165, 26, 1, 209, 206, + 213, 113, 26, 1, 209, 206, 191, 243, 26, 1, 209, 206, 203, 0, 26, 1, 209, + 206, 169, 26, 1, 209, 206, 212, 202, 26, 1, 209, 206, 209, 223, 26, 1, + 209, 206, 212, 182, 26, 1, 209, 206, 192, 253, 26, 1, 209, 206, 210, 40, + 26, 1, 209, 206, 206, 63, 26, 1, 209, 206, 213, 205, 26, 1, 209, 206, + 207, 15, 26, 1, 209, 206, 221, 226, 26, 1, 209, 206, 213, 238, 26, 1, + 209, 206, 214, 33, 26, 1, 209, 206, 203, 51, 26, 1, 209, 206, 208, 154, + 26, 1, 209, 206, 232, 128, 26, 1, 209, 206, 193, 187, 26, 1, 209, 206, + 219, 122, 26, 1, 209, 206, 218, 232, 26, 1, 209, 206, 221, 43, 26, 1, + 209, 206, 216, 238, 26, 1, 209, 206, 207, 50, 26, 1, 209, 206, 172, 26, + 1, 209, 206, 215, 251, 26, 1, 209, 206, 216, 246, 26, 1, 209, 206, 199, + 68, 26, 1, 209, 206, 220, 253, 26, 1, 209, 206, 205, 145, 26, 1, 209, + 206, 193, 245, 215, 143, 1, 199, 247, 215, 143, 1, 214, 2, 215, 143, 1, + 192, 12, 215, 143, 1, 216, 28, 215, 143, 1, 249, 103, 215, 143, 1, 237, + 241, 215, 143, 1, 65, 215, 143, 1, 209, 202, 215, 143, 1, 221, 184, 215, + 143, 1, 229, 245, 215, 143, 1, 237, 216, 215, 143, 1, 243, 0, 215, 143, + 1, 221, 246, 215, 143, 1, 211, 109, 215, 143, 1, 217, 112, 215, 143, 1, + 213, 165, 215, 143, 1, 168, 215, 143, 1, 211, 76, 215, 143, 1, 74, 215, + 143, 1, 206, 157, 215, 143, 1, 203, 76, 215, 143, 1, 199, 27, 215, 143, + 1, 234, 173, 215, 143, 1, 193, 187, 215, 143, 1, 73, 215, 143, 1, 221, + 43, 215, 143, 1, 220, 0, 215, 143, 1, 171, 215, 143, 1, 230, 47, 215, + 143, 1, 206, 252, 215, 143, 1, 199, 105, 215, 143, 17, 191, 77, 215, 143, + 17, 108, 215, 143, 17, 109, 215, 143, 17, 139, 215, 143, 17, 137, 215, + 143, 17, 153, 215, 143, 17, 173, 215, 143, 17, 181, 215, 143, 17, 176, + 215, 143, 17, 184, 215, 143, 237, 193, 215, 143, 54, 237, 193, 199, 181, + 1, 210, 228, 199, 181, 1, 211, 153, 199, 181, 1, 211, 47, 199, 181, 1, + 210, 237, 199, 181, 1, 250, 73, 199, 181, 1, 252, 11, 199, 181, 1, 250, + 243, 199, 181, 1, 250, 83, 199, 181, 1, 193, 224, 199, 181, 1, 195, 152, + 199, 181, 1, 194, 252, 199, 181, 1, 193, 233, 199, 181, 1, 233, 141, 199, + 181, 1, 234, 153, 199, 181, 1, 234, 4, 199, 181, 1, 233, 180, 199, 181, + 1, 223, 13, 199, 181, 1, 227, 254, 199, 181, 1, 223, 51, 199, 181, 1, + 223, 17, 199, 181, 1, 196, 14, 199, 181, 1, 196, 156, 199, 181, 1, 196, + 60, 199, 181, 1, 196, 18, 199, 181, 1, 250, 84, 199, 181, 1, 250, 88, + 199, 181, 1, 250, 86, 199, 181, 1, 250, 85, 199, 181, 1, 196, 125, 199, + 181, 1, 196, 134, 199, 181, 1, 196, 131, 199, 181, 1, 196, 126, 199, 181, + 1, 52, 214, 56, 199, 181, 1, 177, 196, 141, 199, 181, 1, 203, 35, 196, + 139, 199, 181, 1, 203, 35, 250, 85, 199, 181, 1, 196, 146, 199, 181, 1, + 196, 139, 199, 181, 1, 196, 142, 199, 181, 1, 196, 141, 199, 181, 1, 196, + 127, 199, 181, 1, 196, 130, 199, 181, 1, 196, 129, 199, 181, 1, 196, 128, + 199, 181, 1, 215, 49, 199, 181, 1, 216, 219, 199, 181, 1, 215, 149, 199, + 181, 1, 215, 58, 199, 181, 1, 157, 199, 181, 1, 221, 190, 199, 181, 1, + 231, 203, 199, 181, 1, 214, 54, 199, 181, 1, 189, 199, 181, 1, 169, 199, + 181, 1, 193, 187, 199, 181, 1, 168, 199, 181, 1, 212, 88, 199, 181, 1, + 209, 219, 199, 181, 1, 249, 103, 199, 181, 1, 172, 199, 181, 1, 180, 199, + 181, 1, 144, 199, 181, 1, 171, 199, 181, 1, 228, 133, 199, 181, 1, 199, + 247, 199, 181, 1, 237, 241, 199, 181, 1, 166, 199, 181, 1, 213, 210, 199, + 181, 1, 203, 160, 199, 181, 1, 247, 112, 199, 181, 1, 197, 164, 199, 181, + 1, 231, 54, 199, 181, 1, 228, 130, 199, 181, 1, 199, 44, 199, 181, 1, + 192, 220, 199, 181, 1, 233, 68, 199, 181, 1, 237, 23, 199, 181, 1, 246, + 209, 199, 181, 1, 191, 123, 199, 181, 17, 191, 77, 199, 181, 17, 108, + 199, 181, 17, 109, 199, 181, 17, 139, 199, 181, 17, 137, 199, 181, 17, + 153, 199, 181, 17, 173, 199, 181, 17, 181, 199, 181, 17, 176, 199, 181, + 17, 184, 249, 17, 195, 182, 1, 234, 42, 249, 17, 195, 182, 1, 157, 249, + 17, 195, 182, 1, 205, 63, 249, 17, 195, 182, 1, 233, 68, 249, 17, 195, + 182, 1, 216, 241, 249, 17, 195, 182, 1, 192, 30, 249, 17, 195, 182, 1, + 231, 188, 249, 17, 195, 182, 1, 237, 4, 249, 17, 195, 182, 1, 220, 252, + 249, 17, 195, 182, 1, 222, 174, 249, 17, 195, 182, 1, 228, 93, 249, 17, + 195, 182, 1, 193, 187, 249, 17, 195, 182, 1, 191, 7, 249, 17, 195, 182, + 1, 231, 132, 249, 17, 195, 182, 1, 236, 129, 249, 17, 195, 182, 1, 246, + 250, 249, 17, 195, 182, 1, 196, 19, 249, 17, 195, 182, 1, 159, 249, 17, + 195, 182, 1, 249, 103, 249, 17, 195, 182, 1, 193, 246, 249, 17, 195, 182, + 1, 192, 74, 249, 17, 195, 182, 1, 168, 249, 17, 195, 182, 1, 193, 174, + 249, 17, 195, 182, 1, 65, 249, 17, 195, 182, 1, 74, 249, 17, 195, 182, 1, + 211, 76, 249, 17, 195, 182, 1, 69, 249, 17, 195, 182, 1, 234, 145, 249, + 17, 195, 182, 1, 73, 249, 17, 195, 182, 1, 70, 249, 17, 195, 182, 33, + 136, 198, 74, 249, 17, 195, 182, 33, 131, 198, 74, 249, 17, 195, 182, 33, + 216, 68, 198, 74, 249, 17, 195, 182, 33, 218, 216, 198, 74, 249, 17, 195, + 182, 33, 229, 101, 198, 74, 249, 17, 195, 182, 232, 42, 201, 58, 145, 90, + 18, 221, 243, 145, 90, 18, 221, 239, 145, 90, 18, 221, 131, 145, 90, 18, + 221, 94, 145, 90, 18, 222, 15, 145, 90, 18, 222, 12, 145, 90, 18, 220, + 192, 145, 90, 18, 220, 161, 145, 90, 18, 221, 245, 145, 90, 18, 221, 200, + 145, 90, 18, 222, 74, 145, 90, 18, 222, 71, 145, 90, 18, 221, 16, 145, + 90, 18, 221, 13, 145, 90, 18, 222, 8, 145, 90, 18, 222, 6, 145, 90, 18, + 220, 194, 145, 90, 18, 220, 193, 145, 90, 18, 221, 36, 145, 90, 18, 221, + 1, 145, 90, 18, 221, 133, 145, 90, 18, 221, 132, 145, 90, 18, 222, 90, + 145, 90, 18, 222, 11, 145, 90, 18, 220, 151, 145, 90, 18, 220, 142, 145, + 90, 18, 222, 99, 145, 90, 18, 222, 91, 145, 90, 119, 195, 157, 145, 90, + 119, 212, 172, 145, 90, 119, 219, 232, 145, 90, 119, 229, 225, 145, 90, + 119, 213, 69, 145, 90, 119, 207, 120, 145, 90, 119, 213, 96, 145, 90, + 119, 208, 63, 145, 90, 119, 192, 91, 145, 90, 119, 229, 76, 145, 90, 119, + 217, 6, 145, 90, 119, 243, 83, 145, 90, 119, 214, 151, 145, 90, 119, 229, + 12, 145, 90, 119, 209, 83, 145, 90, 119, 212, 178, 145, 90, 119, 214, + 191, 145, 90, 119, 250, 113, 145, 90, 119, 192, 216, 145, 90, 119, 247, + 28, 145, 90, 87, 242, 225, 197, 81, 145, 90, 87, 242, 225, 202, 41, 145, + 90, 87, 242, 225, 221, 218, 145, 90, 87, 242, 225, 221, 174, 145, 90, 87, + 242, 225, 200, 241, 145, 90, 87, 242, 225, 228, 226, 145, 90, 87, 242, + 225, 199, 160, 145, 90, 3, 195, 2, 198, 233, 145, 90, 3, 195, 2, 197, + 152, 246, 241, 145, 90, 3, 242, 225, 243, 72, 145, 90, 3, 195, 2, 199, 5, + 145, 90, 3, 195, 2, 233, 8, 145, 90, 3, 192, 171, 212, 166, 145, 90, 3, + 192, 171, 206, 254, 145, 90, 3, 192, 171, 198, 27, 145, 90, 3, 192, 171, + 233, 49, 145, 90, 3, 195, 2, 205, 39, 145, 90, 3, 216, 190, 200, 245, + 145, 90, 3, 195, 2, 212, 218, 145, 90, 3, 228, 1, 192, 111, 145, 90, 3, + 192, 215, 145, 90, 3, 242, 225, 197, 139, 206, 139, 145, 90, 17, 191, 77, + 145, 90, 17, 108, 145, 90, 17, 109, 145, 90, 17, 139, 145, 90, 17, 137, + 145, 90, 17, 153, 145, 90, 17, 173, 145, 90, 17, 181, 145, 90, 17, 176, + 145, 90, 17, 184, 145, 90, 31, 199, 85, 145, 90, 31, 228, 107, 145, 90, + 31, 199, 91, 198, 223, 145, 90, 31, 216, 29, 145, 90, 31, 228, 110, 216, + 29, 145, 90, 31, 199, 91, 248, 121, 145, 90, 31, 197, 223, 145, 90, 3, + 195, 2, 218, 198, 145, 90, 3, 192, 168, 145, 90, 3, 229, 71, 145, 90, 3, + 198, 250, 229, 71, 145, 90, 3, 190, 236, 199, 38, 145, 90, 3, 228, 252, + 145, 90, 3, 212, 232, 145, 90, 3, 192, 206, 145, 90, 3, 212, 170, 145, + 90, 3, 250, 96, 145, 90, 3, 197, 3, 246, 240, 145, 90, 3, 216, 190, 197, + 155, 145, 90, 3, 199, 161, 145, 90, 3, 218, 229, 145, 90, 3, 215, 89, + 145, 90, 3, 242, 225, 230, 43, 218, 175, 212, 176, 212, 175, 145, 90, 3, + 242, 225, 238, 147, 197, 146, 145, 90, 3, 242, 225, 197, 1, 145, 90, 3, + 242, 225, 197, 2, 242, 244, 145, 90, 3, 242, 225, 208, 152, 237, 161, + 145, 90, 3, 242, 225, 212, 225, 198, 36, 145, 90, 242, 196, 3, 197, 150, + 145, 90, 242, 196, 3, 192, 76, 145, 90, 242, 196, 3, 219, 66, 145, 90, + 242, 196, 3, 219, 230, 145, 90, 242, 196, 3, 192, 167, 145, 90, 242, 196, + 3, 221, 17, 145, 90, 242, 196, 3, 229, 222, 145, 90, 242, 196, 3, 215, + 131, 145, 90, 242, 196, 3, 198, 234, 145, 90, 242, 196, 3, 197, 161, 145, + 90, 242, 196, 3, 209, 216, 145, 90, 242, 196, 3, 221, 188, 145, 90, 242, + 196, 3, 230, 31, 145, 90, 242, 196, 3, 195, 179, 145, 90, 242, 196, 3, + 233, 45, 145, 90, 242, 196, 3, 192, 118, 145, 90, 242, 196, 3, 197, 133, + 145, 90, 242, 196, 3, 220, 146, 145, 90, 242, 196, 3, 193, 234, 216, 199, + 6, 1, 218, 147, 216, 199, 6, 1, 206, 3, 216, 199, 6, 1, 196, 8, 216, 199, + 6, 1, 193, 221, 216, 199, 6, 1, 250, 126, 216, 199, 6, 1, 191, 166, 216, + 199, 6, 1, 220, 254, 216, 199, 6, 1, 210, 226, 216, 199, 6, 1, 200, 39, + 216, 199, 6, 1, 232, 14, 216, 199, 6, 1, 233, 134, 216, 199, 6, 1, 70, + 216, 199, 6, 1, 222, 125, 216, 199, 6, 1, 65, 216, 199, 6, 1, 223, 7, + 216, 199, 6, 1, 73, 216, 199, 6, 1, 250, 70, 216, 199, 6, 1, 247, 145, + 216, 199, 6, 1, 69, 216, 199, 6, 1, 191, 225, 216, 199, 6, 1, 170, 216, + 199, 6, 1, 208, 97, 216, 199, 6, 1, 228, 138, 216, 199, 6, 1, 212, 90, + 216, 199, 6, 1, 192, 235, 216, 199, 6, 1, 238, 80, 216, 199, 6, 1, 211, + 139, 216, 199, 6, 1, 215, 47, 216, 199, 6, 1, 148, 216, 199, 6, 1, 74, + 216, 199, 6, 1, 251, 184, 216, 199, 6, 1, 192, 159, 216, 199, 2, 1, 218, + 147, 216, 199, 2, 1, 206, 3, 216, 199, 2, 1, 196, 8, 216, 199, 2, 1, 193, + 221, 216, 199, 2, 1, 250, 126, 216, 199, 2, 1, 191, 166, 216, 199, 2, 1, + 220, 254, 216, 199, 2, 1, 210, 226, 216, 199, 2, 1, 200, 39, 216, 199, 2, + 1, 232, 14, 216, 199, 2, 1, 233, 134, 216, 199, 2, 1, 70, 216, 199, 2, 1, + 222, 125, 216, 199, 2, 1, 65, 216, 199, 2, 1, 223, 7, 216, 199, 2, 1, 73, + 216, 199, 2, 1, 250, 70, 216, 199, 2, 1, 247, 145, 216, 199, 2, 1, 69, + 216, 199, 2, 1, 191, 225, 216, 199, 2, 1, 170, 216, 199, 2, 1, 208, 97, + 216, 199, 2, 1, 228, 138, 216, 199, 2, 1, 212, 90, 216, 199, 2, 1, 192, + 235, 216, 199, 2, 1, 238, 80, 216, 199, 2, 1, 211, 139, 216, 199, 2, 1, + 215, 47, 216, 199, 2, 1, 148, 216, 199, 2, 1, 74, 216, 199, 2, 1, 251, + 184, 216, 199, 2, 1, 192, 159, 216, 199, 17, 191, 77, 216, 199, 17, 108, + 216, 199, 17, 109, 216, 199, 17, 139, 216, 199, 17, 137, 216, 199, 17, + 153, 216, 199, 17, 173, 216, 199, 17, 181, 216, 199, 17, 176, 216, 199, + 17, 184, 216, 199, 31, 199, 90, 216, 199, 31, 234, 84, 216, 199, 31, 197, + 33, 216, 199, 31, 198, 246, 216, 199, 31, 232, 84, 216, 199, 31, 232, + 234, 216, 199, 31, 202, 125, 216, 199, 31, 203, 239, 216, 199, 31, 234, + 118, 216, 199, 31, 213, 158, 216, 199, 17, 91, 251, 106, 20, 216, 199, + 17, 103, 251, 106, 20, 216, 199, 17, 115, 251, 106, 20, 216, 199, 242, + 26, 216, 199, 232, 42, 201, 58, 216, 199, 16, 251, 169, 216, 199, 233, + 175, 211, 124, 120, 1, 168, 120, 1, 249, 103, 120, 1, 11, 168, 120, 1, + 209, 102, 120, 1, 172, 120, 1, 216, 84, 120, 1, 250, 220, 172, 120, 1, + 233, 68, 120, 1, 195, 185, 120, 1, 195, 68, 120, 1, 199, 247, 120, 1, + 237, 241, 120, 1, 11, 197, 128, 120, 1, 11, 199, 247, 120, 1, 197, 128, + 120, 1, 237, 146, 120, 1, 180, 120, 1, 213, 210, 120, 1, 11, 213, 66, + 120, 1, 250, 220, 180, 120, 1, 213, 66, 120, 1, 213, 52, 120, 1, 171, + 120, 1, 218, 161, 120, 1, 219, 135, 120, 1, 219, 124, 120, 1, 198, 107, + 120, 1, 236, 138, 120, 1, 198, 99, 120, 1, 236, 137, 120, 1, 157, 120, 1, + 231, 203, 120, 1, 11, 157, 120, 1, 208, 89, 120, 1, 208, 66, 120, 1, 214, + 54, 120, 1, 214, 3, 120, 1, 250, 220, 214, 54, 120, 1, 144, 120, 1, 192, + 220, 120, 1, 231, 54, 120, 1, 231, 29, 120, 1, 197, 138, 120, 1, 234, + 230, 120, 1, 212, 88, 120, 1, 212, 70, 120, 1, 197, 153, 120, 1, 234, + 241, 120, 1, 11, 197, 153, 120, 1, 11, 234, 241, 120, 1, 207, 77, 197, + 153, 120, 1, 203, 160, 120, 1, 201, 170, 120, 1, 191, 71, 120, 1, 190, + 253, 120, 1, 197, 164, 120, 1, 234, 247, 120, 1, 11, 197, 164, 120, 1, + 189, 120, 1, 191, 123, 120, 1, 190, 254, 120, 1, 190, 224, 120, 1, 190, + 204, 120, 1, 250, 220, 190, 224, 120, 1, 190, 196, 120, 1, 190, 203, 120, + 1, 193, 187, 120, 1, 251, 193, 120, 1, 229, 145, 120, 1, 247, 240, 120, + 1, 200, 121, 120, 1, 234, 231, 120, 1, 199, 140, 120, 1, 197, 157, 120, + 1, 206, 66, 120, 3, 119, 59, 164, 120, 1, 214, 198, 120, 3, 250, 149, + 120, 3, 207, 77, 195, 15, 120, 3, 207, 77, 250, 149, 120, 18, 3, 65, 120, + 18, 3, 252, 154, 120, 18, 3, 251, 189, 120, 18, 3, 251, 81, 120, 18, 3, + 251, 71, 120, 18, 3, 74, 120, 18, 3, 211, 76, 120, 18, 3, 193, 48, 120, + 18, 3, 193, 221, 120, 18, 3, 73, 120, 18, 3, 234, 61, 120, 18, 3, 234, + 46, 120, 18, 3, 211, 135, 120, 18, 3, 70, 120, 18, 3, 228, 5, 120, 18, 3, + 228, 4, 120, 18, 3, 228, 3, 120, 18, 3, 223, 60, 120, 18, 3, 223, 197, + 120, 18, 3, 223, 170, 120, 18, 3, 223, 21, 120, 18, 3, 223, 108, 120, 18, + 3, 69, 120, 18, 3, 196, 164, 120, 18, 3, 196, 163, 120, 18, 3, 196, 162, + 120, 18, 3, 196, 26, 120, 18, 3, 196, 144, 120, 18, 3, 196, 93, 120, 18, + 3, 192, 159, 120, 18, 3, 192, 33, 120, 18, 3, 251, 229, 120, 18, 3, 251, + 225, 120, 18, 3, 233, 240, 120, 18, 3, 206, 108, 233, 240, 120, 18, 3, + 233, 248, 120, 18, 3, 206, 108, 233, 248, 120, 18, 3, 251, 184, 120, 18, + 3, 234, 123, 120, 18, 3, 250, 113, 120, 18, 3, 211, 9, 120, 18, 3, 215, + 47, 120, 18, 3, 214, 56, 120, 18, 3, 196, 77, 120, 18, 3, 191, 205, 120, + 18, 3, 211, 129, 120, 18, 3, 211, 136, 120, 18, 3, 193, 236, 120, 18, 3, + 223, 175, 120, 18, 3, 234, 173, 120, 18, 3, 223, 58, 120, 18, 3, 196, + 135, 120, 163, 187, 120, 163, 198, 49, 187, 120, 163, 56, 120, 163, 60, + 120, 1, 198, 72, 120, 1, 198, 71, 120, 1, 198, 70, 120, 1, 198, 69, 120, + 1, 198, 68, 120, 1, 198, 67, 120, 1, 198, 66, 120, 1, 207, 77, 198, 73, + 120, 1, 207, 77, 198, 72, 120, 1, 207, 77, 198, 70, 120, 1, 207, 77, 198, + 69, 120, 1, 207, 77, 198, 68, 120, 1, 207, 77, 198, 66, 19, 223, 23, 77, + 46, 223, 23, 77, 38, 243, 32, 228, 219, 77, 38, 243, 32, 223, 23, 77, 40, + 2, 27, 232, 218, 195, 54, 251, 106, 207, 102, 87, 247, 112, 195, 54, 251, + 106, 207, 102, 87, 213, 209, 19, 242, 15, 19, 242, 14, 19, 242, 13, 19, + 242, 12, 19, 242, 11, 19, 242, 10, 19, 242, 9, 19, 242, 8, 19, 242, 7, + 19, 242, 6, 19, 242, 5, 19, 242, 4, 19, 242, 3, 19, 242, 2, 19, 242, 1, + 19, 242, 0, 19, 241, 255, 19, 241, 254, 19, 241, 253, 19, 241, 252, 19, + 241, 251, 19, 241, 250, 19, 241, 249, 19, 241, 248, 19, 241, 247, 19, 241, 246, 19, 241, 245, 19, 241, 244, 19, 241, 243, 19, 241, 242, 19, 241, 241, 19, 241, 240, 19, 241, 239, 19, 241, 238, 19, 241, 237, 19, 241, 236, 19, 241, 235, 19, 241, 234, 19, 241, 233, 19, 241, 232, 19, @@ -17602,3084 +17519,3030 @@ static const unsigned char phrasebook[] = { 81, 19, 239, 80, 19, 239, 79, 19, 239, 78, 19, 239, 77, 19, 239, 76, 19, 239, 75, 19, 239, 74, 19, 239, 73, 19, 239, 72, 19, 239, 71, 19, 239, 70, 19, 239, 69, 19, 239, 68, 19, 239, 67, 19, 239, 66, 19, 239, 65, 19, 239, - 64, 41, 2, 27, 246, 238, 41, 2, 27, 246, 237, 41, 2, 27, 246, 236, 41, 2, - 27, 246, 235, 41, 2, 27, 246, 234, 41, 2, 27, 246, 233, 41, 2, 27, 246, - 232, 41, 2, 27, 246, 231, 41, 2, 27, 246, 230, 41, 2, 27, 246, 229, 41, - 2, 27, 246, 228, 41, 2, 27, 246, 227, 41, 2, 27, 246, 226, 41, 2, 27, - 246, 225, 41, 2, 27, 246, 224, 41, 2, 27, 246, 223, 41, 2, 27, 246, 222, - 41, 2, 27, 246, 221, 41, 2, 27, 246, 220, 41, 2, 27, 246, 219, 41, 2, 27, - 246, 218, 41, 2, 27, 246, 217, 41, 2, 27, 246, 216, 41, 2, 27, 246, 215, - 41, 2, 27, 246, 214, 41, 2, 27, 246, 213, 41, 2, 27, 246, 212, 41, 2, 27, - 246, 211, 41, 2, 27, 246, 210, 41, 2, 27, 246, 209, 41, 2, 27, 246, 208, - 41, 2, 27, 246, 207, 41, 2, 27, 246, 206, 41, 2, 27, 246, 205, 41, 2, 27, - 246, 204, 41, 2, 27, 246, 203, 41, 2, 27, 246, 202, 41, 2, 27, 246, 201, - 41, 2, 27, 246, 200, 41, 2, 27, 246, 199, 41, 2, 27, 246, 198, 41, 2, 27, - 246, 197, 41, 2, 27, 246, 196, 41, 2, 27, 246, 195, 41, 2, 27, 246, 194, - 41, 2, 27, 246, 193, 41, 2, 27, 246, 192, 41, 2, 27, 246, 191, 41, 2, 27, - 246, 190, 41, 2, 27, 246, 189, 41, 2, 27, 246, 188, 41, 2, 27, 246, 187, - 41, 2, 27, 246, 186, 41, 2, 27, 246, 185, 41, 2, 27, 246, 184, 41, 2, 27, - 246, 183, 41, 2, 27, 246, 182, 41, 2, 27, 246, 181, 41, 2, 27, 246, 180, - 41, 2, 27, 246, 179, 41, 2, 27, 246, 178, 41, 2, 27, 246, 177, 41, 2, 27, - 246, 176, 41, 2, 27, 246, 175, 41, 2, 27, 246, 174, 41, 2, 27, 246, 173, - 41, 2, 27, 246, 172, 41, 2, 27, 246, 171, 41, 2, 27, 246, 170, 41, 2, 27, - 246, 169, 41, 2, 27, 246, 168, 41, 2, 27, 246, 167, 41, 2, 27, 246, 166, - 41, 2, 27, 246, 165, 41, 2, 27, 246, 164, 41, 2, 27, 246, 163, 41, 2, 27, - 246, 162, 41, 2, 27, 246, 161, 41, 2, 27, 246, 160, 41, 2, 27, 246, 159, - 41, 2, 27, 246, 158, 41, 2, 27, 246, 157, 41, 2, 27, 246, 156, 41, 2, 27, - 246, 155, 41, 2, 27, 246, 154, 41, 2, 27, 246, 153, 41, 2, 27, 246, 152, - 41, 2, 27, 246, 151, 41, 2, 27, 246, 150, 41, 2, 27, 246, 149, 41, 2, 27, - 246, 148, 41, 2, 27, 246, 147, 41, 2, 27, 246, 146, 41, 2, 27, 246, 145, - 41, 2, 27, 246, 144, 41, 2, 27, 246, 143, 41, 2, 27, 246, 142, 41, 2, 27, - 246, 141, 41, 2, 27, 246, 140, 41, 2, 27, 246, 139, 41, 2, 27, 246, 138, - 41, 2, 27, 246, 137, 41, 2, 27, 246, 136, 41, 2, 27, 246, 135, 41, 2, 27, - 246, 134, 41, 2, 27, 246, 133, 41, 2, 27, 246, 132, 41, 2, 27, 246, 131, - 41, 2, 27, 246, 130, 41, 2, 27, 246, 129, 41, 2, 27, 246, 128, 41, 2, 27, - 246, 127, 41, 2, 27, 246, 126, 41, 2, 27, 246, 125, 41, 2, 27, 246, 124, - 41, 2, 27, 246, 123, 41, 2, 27, 246, 122, 41, 2, 27, 246, 121, 41, 2, 27, - 246, 120, 41, 2, 27, 246, 119, 41, 2, 27, 246, 118, 41, 2, 27, 246, 117, - 41, 2, 27, 246, 116, 41, 2, 27, 246, 115, 41, 2, 27, 246, 114, 41, 2, 27, - 246, 113, 41, 2, 27, 246, 112, 41, 2, 27, 246, 111, 41, 2, 27, 246, 110, - 41, 2, 27, 246, 109, 41, 2, 27, 246, 108, 41, 2, 27, 246, 107, 41, 2, 27, - 246, 106, 41, 2, 27, 246, 105, 41, 2, 27, 246, 104, 41, 2, 27, 246, 103, - 41, 2, 27, 246, 102, 41, 2, 27, 246, 101, 41, 2, 27, 246, 100, 41, 2, 27, - 246, 99, 41, 2, 27, 246, 98, 41, 2, 27, 246, 97, 41, 2, 27, 246, 96, 41, - 2, 27, 246, 95, 41, 2, 27, 246, 94, 41, 2, 27, 246, 93, 41, 2, 27, 246, - 92, 41, 2, 27, 246, 91, 41, 2, 27, 246, 90, 41, 2, 27, 246, 89, 41, 2, - 27, 246, 88, 41, 2, 27, 246, 87, 41, 2, 27, 246, 86, 41, 2, 27, 246, 85, - 41, 2, 27, 246, 84, 41, 2, 27, 246, 83, 41, 2, 27, 246, 82, 41, 2, 27, - 246, 81, 41, 2, 27, 246, 80, 41, 2, 27, 246, 79, 41, 2, 27, 246, 78, 41, - 2, 27, 246, 77, 41, 2, 27, 246, 76, 41, 2, 27, 246, 75, 41, 2, 27, 246, - 74, 41, 2, 27, 246, 73, 41, 2, 27, 246, 72, 41, 2, 27, 246, 71, 41, 2, - 27, 246, 70, 41, 2, 27, 246, 69, 41, 2, 27, 246, 68, 41, 2, 27, 246, 67, - 41, 2, 27, 246, 66, 41, 2, 27, 246, 65, 41, 2, 27, 246, 64, 41, 2, 27, - 246, 63, 41, 2, 27, 246, 62, 41, 2, 27, 246, 61, 41, 2, 27, 246, 60, 41, - 2, 27, 246, 59, 41, 2, 27, 246, 58, 41, 2, 27, 246, 57, 41, 2, 27, 246, - 56, 41, 2, 27, 246, 55, 41, 2, 27, 246, 54, 41, 2, 27, 246, 53, 41, 2, - 27, 246, 52, 41, 2, 27, 246, 51, 41, 2, 27, 246, 50, 41, 2, 27, 246, 49, - 41, 2, 27, 246, 48, 41, 2, 27, 246, 47, 41, 2, 27, 246, 46, 41, 2, 27, - 246, 45, 41, 2, 27, 246, 44, 41, 2, 27, 246, 43, 41, 2, 27, 246, 42, 41, - 2, 27, 246, 41, 41, 2, 27, 246, 40, 41, 2, 27, 246, 39, 41, 2, 27, 246, - 38, 41, 2, 27, 246, 37, 41, 2, 27, 246, 36, 41, 2, 27, 246, 35, 41, 2, - 27, 246, 34, 41, 2, 27, 246, 33, 41, 2, 27, 246, 32, 41, 2, 27, 246, 31, - 41, 2, 27, 246, 30, 41, 2, 27, 246, 29, 41, 2, 27, 246, 28, 41, 2, 27, - 246, 27, 41, 2, 27, 246, 26, 41, 2, 27, 246, 25, 41, 2, 27, 246, 24, 41, - 2, 27, 246, 23, 41, 2, 27, 246, 22, 41, 2, 27, 246, 21, 41, 2, 27, 246, - 20, 41, 2, 27, 246, 19, 41, 2, 27, 246, 18, 41, 2, 27, 246, 17, 41, 2, - 27, 246, 16, 41, 2, 27, 246, 15, 41, 2, 27, 246, 14, 41, 2, 27, 246, 13, - 41, 2, 27, 246, 12, 41, 2, 27, 246, 11, 41, 2, 27, 246, 10, 41, 2, 27, - 246, 9, 41, 2, 27, 246, 8, 41, 2, 27, 246, 7, 41, 2, 27, 246, 6, 41, 2, - 27, 246, 5, 41, 2, 27, 246, 4, 41, 2, 27, 246, 3, 41, 2, 27, 246, 2, 41, - 2, 27, 246, 1, 41, 2, 27, 246, 0, 41, 2, 27, 245, 255, 41, 2, 27, 245, - 254, 41, 2, 27, 245, 253, 41, 2, 27, 245, 252, 41, 2, 27, 245, 251, 41, - 2, 27, 245, 250, 41, 2, 27, 245, 249, 41, 2, 27, 245, 248, 41, 2, 27, - 245, 247, 41, 2, 27, 245, 246, 41, 2, 27, 245, 245, 41, 2, 27, 245, 244, - 41, 2, 27, 245, 243, 41, 2, 27, 245, 242, 41, 2, 27, 245, 241, 41, 2, 27, - 245, 240, 41, 2, 27, 245, 239, 41, 2, 27, 245, 238, 41, 2, 27, 245, 237, - 41, 2, 27, 245, 236, 41, 2, 27, 245, 235, 41, 2, 27, 245, 234, 41, 2, 27, - 245, 233, 41, 2, 27, 245, 232, 41, 2, 27, 245, 231, 41, 2, 27, 245, 230, - 41, 2, 27, 245, 229, 41, 2, 27, 245, 228, 41, 2, 27, 245, 227, 41, 2, 27, - 245, 226, 41, 2, 27, 245, 225, 41, 2, 27, 245, 224, 41, 2, 27, 245, 223, - 41, 2, 27, 245, 222, 41, 2, 27, 245, 221, 41, 2, 27, 245, 220, 41, 2, 27, - 245, 219, 41, 2, 27, 245, 218, 41, 2, 27, 245, 217, 41, 2, 27, 245, 216, - 41, 2, 27, 245, 215, 41, 2, 27, 245, 214, 41, 2, 27, 245, 213, 41, 2, 27, - 245, 212, 41, 2, 27, 245, 211, 41, 2, 27, 245, 210, 41, 2, 27, 245, 209, - 41, 2, 27, 245, 208, 41, 2, 27, 245, 207, 41, 2, 27, 245, 206, 41, 2, 27, - 245, 205, 41, 2, 27, 245, 204, 41, 2, 27, 245, 203, 41, 2, 27, 245, 202, - 41, 2, 27, 245, 201, 41, 2, 27, 245, 200, 41, 2, 27, 245, 199, 41, 2, 27, - 245, 198, 41, 2, 27, 245, 197, 41, 2, 27, 245, 196, 41, 2, 27, 245, 195, - 41, 2, 27, 245, 194, 41, 2, 27, 245, 193, 41, 2, 27, 245, 192, 41, 2, 27, - 245, 191, 41, 2, 27, 245, 190, 41, 2, 27, 245, 189, 41, 2, 27, 245, 188, - 41, 2, 27, 245, 187, 41, 2, 27, 245, 186, 41, 2, 27, 245, 185, 41, 2, 27, - 245, 184, 41, 2, 27, 245, 183, 41, 2, 27, 245, 182, 41, 2, 27, 245, 181, - 41, 2, 27, 245, 180, 41, 2, 27, 245, 179, 41, 2, 27, 245, 178, 41, 2, 27, - 245, 177, 41, 2, 27, 245, 176, 41, 2, 27, 245, 175, 41, 2, 27, 245, 174, - 41, 2, 27, 245, 173, 41, 2, 27, 245, 172, 41, 2, 27, 245, 171, 41, 2, 27, - 245, 170, 41, 2, 27, 245, 169, 41, 2, 27, 245, 168, 41, 2, 27, 245, 167, - 41, 2, 27, 245, 166, 41, 2, 27, 245, 165, 41, 2, 27, 245, 164, 41, 2, 27, - 245, 163, 41, 2, 27, 245, 162, 41, 2, 27, 245, 161, 41, 2, 27, 245, 160, - 41, 2, 27, 245, 159, 41, 2, 27, 245, 158, 41, 2, 27, 245, 157, 41, 2, 27, - 245, 156, 41, 2, 27, 245, 155, 41, 2, 27, 245, 154, 41, 2, 27, 245, 153, - 41, 2, 27, 245, 152, 41, 2, 27, 245, 151, 41, 2, 27, 245, 150, 41, 2, 27, - 245, 149, 41, 2, 27, 245, 148, 41, 2, 27, 245, 147, 41, 2, 27, 245, 146, - 41, 2, 27, 245, 145, 41, 2, 27, 245, 144, 41, 2, 27, 245, 143, 41, 2, 27, - 245, 142, 41, 2, 27, 245, 141, 41, 2, 27, 245, 140, 41, 2, 27, 245, 139, - 41, 2, 27, 245, 138, 41, 2, 27, 245, 137, 41, 2, 27, 245, 136, 41, 2, 27, - 245, 135, 41, 2, 27, 245, 134, 41, 2, 27, 245, 133, 41, 2, 27, 245, 132, - 41, 2, 27, 245, 131, 41, 2, 27, 245, 130, 41, 2, 27, 245, 129, 41, 2, 27, - 245, 128, 41, 2, 27, 245, 127, 41, 2, 27, 245, 126, 41, 2, 27, 245, 125, - 41, 2, 27, 245, 124, 41, 2, 27, 245, 123, 41, 2, 27, 245, 122, 41, 2, 27, - 245, 121, 41, 2, 27, 245, 120, 41, 2, 27, 245, 119, 41, 2, 27, 245, 118, - 41, 2, 27, 245, 117, 41, 2, 27, 245, 116, 41, 2, 27, 245, 115, 41, 2, 27, - 245, 114, 41, 2, 27, 245, 113, 41, 2, 27, 245, 112, 41, 2, 27, 245, 111, - 41, 2, 27, 245, 110, 41, 2, 27, 245, 109, 41, 2, 27, 245, 108, 41, 2, 27, - 245, 107, 41, 2, 27, 245, 106, 41, 2, 27, 245, 105, 41, 2, 27, 245, 104, - 41, 2, 27, 245, 103, 41, 2, 27, 245, 102, 41, 2, 27, 245, 101, 41, 2, 27, - 245, 100, 41, 2, 27, 245, 99, 41, 2, 27, 245, 98, 41, 2, 27, 245, 97, 41, - 2, 27, 245, 96, 41, 2, 27, 245, 95, 41, 2, 27, 245, 94, 41, 2, 27, 245, - 93, 41, 2, 27, 245, 92, 41, 2, 27, 245, 91, 41, 2, 27, 245, 90, 41, 2, - 27, 245, 89, 41, 2, 27, 245, 88, 41, 2, 27, 245, 87, 41, 2, 27, 245, 86, - 41, 2, 27, 245, 85, 41, 2, 27, 245, 84, 41, 2, 27, 245, 83, 41, 2, 27, - 245, 82, 41, 2, 27, 245, 81, 41, 2, 27, 245, 80, 41, 2, 27, 245, 79, 41, - 2, 27, 245, 78, 41, 2, 27, 245, 77, 41, 2, 27, 245, 76, 41, 2, 27, 245, - 75, 41, 2, 27, 245, 74, 41, 2, 27, 245, 73, 41, 2, 27, 245, 72, 41, 2, - 27, 245, 71, 41, 2, 27, 245, 70, 41, 2, 27, 245, 69, 41, 2, 27, 245, 68, - 41, 2, 27, 245, 67, 41, 2, 27, 245, 66, 41, 2, 27, 245, 65, 41, 2, 27, - 245, 64, 41, 2, 27, 245, 63, 41, 2, 27, 245, 62, 41, 2, 27, 245, 61, 41, - 2, 27, 245, 60, 41, 2, 27, 245, 59, 41, 2, 27, 245, 58, 41, 2, 27, 245, - 57, 41, 2, 27, 245, 56, 41, 2, 27, 245, 55, 41, 2, 27, 245, 54, 41, 2, - 27, 245, 53, 41, 2, 27, 245, 52, 41, 2, 27, 245, 51, 41, 2, 27, 245, 50, - 41, 2, 27, 245, 49, 41, 2, 27, 245, 48, 41, 2, 27, 245, 47, 41, 2, 27, - 245, 46, 41, 2, 27, 245, 45, 41, 2, 27, 245, 44, 41, 2, 27, 245, 43, 41, - 2, 27, 245, 42, 41, 2, 27, 245, 41, 41, 2, 27, 245, 40, 41, 2, 27, 245, - 39, 41, 2, 27, 245, 38, 41, 2, 27, 245, 37, 41, 2, 27, 245, 36, 41, 2, - 27, 245, 35, 41, 2, 27, 245, 34, 41, 2, 27, 245, 33, 41, 2, 27, 245, 32, - 41, 2, 27, 245, 31, 41, 2, 27, 245, 30, 41, 2, 27, 245, 29, 41, 2, 27, - 245, 28, 41, 2, 27, 245, 27, 41, 2, 27, 245, 26, 41, 2, 27, 245, 25, 72, - 1, 216, 36, 198, 77, 72, 1, 216, 36, 198, 76, 72, 1, 216, 36, 198, 75, - 72, 1, 216, 36, 198, 74, 72, 1, 216, 36, 198, 72, 72, 1, 216, 36, 198, - 71, 72, 1, 216, 36, 214, 211, 198, 78, 72, 1, 216, 36, 214, 211, 198, 77, - 72, 1, 216, 36, 214, 211, 198, 76, 72, 1, 216, 36, 214, 211, 198, 75, 72, - 1, 216, 36, 214, 211, 198, 74, 72, 1, 216, 36, 214, 211, 198, 72, 72, 1, - 216, 36, 214, 211, 198, 71, 72, 1, 251, 14, 71, 229, 120, 1, 251, 14, - 192, 80, 61, 1, 255, 206, 61, 1, 255, 205, 61, 1, 255, 204, 61, 1, 255, - 200, 61, 1, 228, 73, 61, 1, 228, 72, 61, 1, 228, 71, 61, 1, 228, 70, 61, - 1, 196, 231, 61, 1, 196, 230, 61, 1, 196, 229, 61, 1, 196, 228, 61, 1, - 196, 227, 61, 1, 235, 13, 61, 1, 235, 12, 61, 1, 235, 11, 61, 1, 235, 10, - 61, 1, 235, 9, 61, 1, 212, 14, 61, 1, 212, 13, 61, 1, 212, 12, 61, 1, - 222, 141, 61, 1, 222, 138, 61, 1, 222, 137, 61, 1, 222, 136, 61, 1, 222, - 135, 61, 1, 222, 134, 61, 1, 222, 133, 61, 1, 222, 132, 61, 1, 222, 131, - 61, 1, 222, 140, 61, 1, 222, 139, 61, 1, 222, 130, 61, 1, 221, 165, 61, - 1, 221, 164, 61, 1, 221, 163, 61, 1, 221, 162, 61, 1, 221, 161, 61, 1, - 221, 160, 61, 1, 221, 159, 61, 1, 221, 158, 61, 1, 220, 231, 61, 1, 220, - 230, 61, 1, 220, 229, 61, 1, 220, 228, 61, 1, 220, 227, 61, 1, 220, 226, - 61, 1, 220, 225, 61, 1, 222, 21, 61, 1, 222, 20, 61, 1, 222, 19, 61, 1, - 222, 18, 61, 1, 222, 17, 61, 1, 222, 16, 61, 1, 221, 66, 61, 1, 221, 65, - 61, 1, 221, 64, 61, 1, 221, 63, 61, 1, 205, 206, 61, 1, 205, 205, 61, 1, - 205, 204, 61, 1, 205, 203, 61, 1, 205, 202, 61, 1, 205, 201, 61, 1, 205, - 200, 61, 1, 205, 199, 61, 1, 202, 221, 61, 1, 202, 220, 61, 1, 202, 219, - 61, 1, 202, 218, 61, 1, 202, 217, 61, 1, 202, 216, 61, 1, 201, 3, 61, 1, - 201, 2, 61, 1, 201, 1, 61, 1, 201, 0, 61, 1, 200, 255, 61, 1, 200, 254, - 61, 1, 200, 253, 61, 1, 200, 252, 61, 1, 205, 67, 61, 1, 205, 66, 61, 1, - 205, 65, 61, 1, 205, 64, 61, 1, 205, 63, 61, 1, 202, 45, 61, 1, 202, 44, - 61, 1, 202, 43, 61, 1, 202, 42, 61, 1, 202, 41, 61, 1, 202, 40, 61, 1, - 202, 39, 61, 1, 199, 251, 61, 1, 199, 250, 61, 1, 199, 249, 61, 1, 199, - 248, 61, 1, 198, 192, 61, 1, 198, 191, 61, 1, 198, 190, 61, 1, 198, 189, - 61, 1, 198, 188, 61, 1, 198, 187, 61, 1, 198, 186, 61, 1, 197, 93, 61, 1, - 197, 92, 61, 1, 197, 91, 61, 1, 197, 90, 61, 1, 197, 89, 61, 1, 199, 144, - 61, 1, 199, 143, 61, 1, 199, 142, 61, 1, 199, 141, 61, 1, 199, 140, 61, - 1, 199, 139, 61, 1, 199, 138, 61, 1, 199, 137, 61, 1, 199, 136, 61, 1, - 198, 98, 61, 1, 198, 97, 61, 1, 198, 96, 61, 1, 198, 95, 61, 1, 198, 94, - 61, 1, 198, 93, 61, 1, 198, 92, 61, 1, 215, 6, 61, 1, 215, 5, 61, 1, 215, - 4, 61, 1, 215, 3, 61, 1, 215, 2, 61, 1, 215, 1, 61, 1, 215, 0, 61, 1, - 214, 255, 61, 1, 214, 254, 61, 1, 213, 218, 61, 1, 213, 217, 61, 1, 213, - 216, 61, 1, 213, 215, 61, 1, 213, 214, 61, 1, 213, 213, 61, 1, 213, 212, - 61, 1, 213, 211, 61, 1, 212, 177, 61, 1, 212, 176, 61, 1, 212, 175, 61, - 1, 214, 120, 61, 1, 214, 119, 61, 1, 214, 118, 61, 1, 214, 117, 61, 1, - 214, 116, 61, 1, 214, 115, 61, 1, 214, 114, 61, 1, 213, 42, 61, 1, 213, - 41, 61, 1, 213, 40, 61, 1, 213, 39, 61, 1, 213, 38, 61, 1, 230, 104, 61, - 1, 230, 101, 61, 1, 230, 100, 61, 1, 230, 99, 61, 1, 230, 98, 61, 1, 230, - 97, 61, 1, 230, 96, 61, 1, 230, 95, 61, 1, 230, 94, 61, 1, 230, 103, 61, - 1, 230, 102, 61, 1, 229, 157, 61, 1, 229, 156, 61, 1, 229, 155, 61, 1, - 229, 154, 61, 1, 229, 153, 61, 1, 229, 152, 61, 1, 229, 151, 61, 1, 228, - 158, 61, 1, 228, 157, 61, 1, 228, 156, 61, 1, 229, 244, 61, 1, 229, 243, - 61, 1, 229, 242, 61, 1, 229, 241, 61, 1, 229, 240, 61, 1, 229, 239, 61, - 1, 229, 238, 61, 1, 229, 22, 61, 1, 229, 21, 61, 1, 229, 20, 61, 1, 229, - 19, 61, 1, 229, 18, 61, 1, 229, 17, 61, 1, 229, 16, 61, 1, 229, 15, 61, - 1, 217, 159, 61, 1, 217, 158, 61, 1, 217, 157, 61, 1, 217, 156, 61, 1, - 217, 155, 61, 1, 217, 154, 61, 1, 217, 153, 61, 1, 216, 99, 61, 1, 216, - 98, 61, 1, 216, 97, 61, 1, 216, 96, 61, 1, 216, 95, 61, 1, 216, 94, 61, - 1, 216, 93, 61, 1, 215, 154, 61, 1, 215, 153, 61, 1, 215, 152, 61, 1, - 215, 151, 61, 1, 216, 231, 61, 1, 216, 230, 61, 1, 216, 229, 61, 1, 216, - 11, 61, 1, 216, 10, 61, 1, 216, 9, 61, 1, 216, 8, 61, 1, 216, 7, 61, 1, - 216, 6, 61, 1, 192, 148, 61, 1, 192, 147, 61, 1, 192, 146, 61, 1, 192, - 145, 61, 1, 192, 144, 61, 1, 192, 141, 61, 1, 191, 224, 61, 1, 191, 223, - 61, 1, 191, 222, 61, 1, 191, 221, 61, 1, 192, 11, 61, 1, 192, 10, 61, 1, - 192, 9, 61, 1, 192, 8, 61, 1, 192, 7, 61, 1, 192, 6, 61, 1, 207, 185, 61, - 1, 207, 184, 61, 1, 207, 183, 61, 1, 207, 182, 61, 1, 207, 0, 61, 1, 206, - 255, 61, 1, 206, 254, 61, 1, 206, 253, 61, 1, 206, 252, 61, 1, 206, 251, - 61, 1, 206, 250, 61, 1, 206, 67, 61, 1, 206, 66, 61, 1, 206, 65, 61, 1, - 206, 64, 61, 1, 206, 63, 61, 1, 206, 62, 61, 1, 207, 112, 61, 1, 207, - 111, 61, 1, 207, 110, 61, 1, 207, 109, 61, 1, 206, 161, 61, 1, 206, 160, - 61, 1, 206, 159, 61, 1, 206, 158, 61, 1, 206, 157, 61, 1, 206, 156, 61, - 1, 193, 189, 61, 1, 193, 188, 61, 1, 193, 187, 61, 1, 193, 186, 61, 1, - 193, 185, 61, 1, 193, 85, 61, 1, 193, 84, 61, 1, 193, 83, 61, 1, 193, 82, - 61, 1, 193, 81, 61, 1, 193, 124, 61, 1, 193, 123, 61, 1, 193, 122, 61, 1, - 193, 121, 61, 1, 193, 47, 61, 1, 193, 46, 61, 1, 193, 45, 61, 1, 193, 44, - 61, 1, 193, 43, 61, 1, 193, 42, 61, 1, 193, 41, 61, 1, 215, 58, 61, 1, - 215, 57, 229, 120, 1, 251, 14, 193, 0, 72, 1, 251, 14, 192, 33, 72, 1, - 251, 14, 192, 80, 72, 1, 251, 14, 193, 0, 229, 120, 1, 2, 221, 67, 229, - 120, 1, 2, 193, 86, 229, 120, 1, 2, 193, 125, 229, 120, 1, 2, 193, 48, - 72, 1, 2, 221, 67, 72, 1, 2, 193, 86, 72, 1, 2, 193, 125, 72, 1, 2, 193, - 48, 72, 1, 2, 215, 61, 46, 245, 24, 46, 245, 23, 46, 245, 22, 46, 245, - 21, 46, 245, 20, 46, 245, 19, 46, 245, 18, 46, 245, 17, 46, 245, 16, 46, - 245, 15, 46, 245, 14, 46, 245, 13, 46, 245, 12, 46, 245, 11, 46, 245, 10, - 46, 245, 9, 46, 245, 8, 46, 245, 7, 46, 245, 6, 46, 245, 5, 46, 245, 4, - 46, 245, 3, 46, 245, 2, 46, 245, 1, 46, 245, 0, 46, 244, 255, 46, 244, - 254, 46, 244, 253, 46, 244, 252, 46, 244, 251, 46, 244, 250, 46, 244, - 249, 46, 244, 248, 46, 244, 247, 46, 244, 246, 46, 244, 245, 46, 244, - 244, 46, 244, 243, 46, 244, 242, 46, 244, 241, 46, 244, 240, 46, 244, - 239, 46, 244, 238, 46, 244, 237, 46, 244, 236, 46, 244, 235, 46, 244, - 234, 46, 244, 233, 46, 244, 232, 46, 244, 231, 46, 244, 230, 46, 244, - 229, 46, 244, 228, 46, 244, 227, 46, 244, 226, 46, 244, 225, 46, 244, - 224, 46, 244, 223, 46, 244, 222, 46, 244, 221, 46, 244, 220, 46, 244, - 219, 46, 244, 218, 46, 244, 217, 46, 244, 216, 46, 244, 215, 46, 244, - 214, 46, 244, 213, 46, 244, 212, 46, 244, 211, 46, 244, 210, 46, 244, - 209, 46, 244, 208, 46, 244, 207, 46, 244, 206, 46, 244, 205, 46, 244, - 204, 46, 244, 203, 46, 244, 202, 46, 244, 201, 46, 244, 200, 46, 244, - 199, 46, 244, 198, 46, 244, 197, 46, 244, 196, 46, 244, 195, 46, 244, - 194, 46, 244, 193, 46, 244, 192, 46, 244, 191, 46, 244, 190, 46, 244, - 189, 46, 244, 188, 46, 244, 187, 46, 244, 186, 46, 244, 185, 46, 244, - 184, 46, 244, 183, 46, 244, 182, 46, 244, 181, 46, 244, 180, 46, 244, - 179, 46, 244, 178, 46, 244, 177, 46, 244, 176, 46, 244, 175, 46, 244, - 174, 46, 244, 173, 46, 244, 172, 46, 244, 171, 46, 244, 170, 46, 244, - 169, 46, 244, 168, 46, 244, 167, 46, 244, 166, 46, 244, 165, 46, 244, - 164, 46, 244, 163, 46, 244, 162, 46, 244, 161, 46, 244, 160, 46, 244, - 159, 46, 244, 158, 46, 244, 157, 46, 244, 156, 46, 244, 155, 46, 244, - 154, 46, 244, 153, 46, 244, 152, 46, 244, 151, 46, 244, 150, 46, 244, - 149, 46, 244, 148, 46, 244, 147, 46, 244, 146, 46, 244, 145, 46, 244, - 144, 46, 244, 143, 46, 244, 142, 46, 244, 141, 46, 244, 140, 46, 244, - 139, 46, 244, 138, 46, 244, 137, 46, 244, 136, 46, 244, 135, 46, 244, - 134, 46, 244, 133, 46, 244, 132, 46, 244, 131, 46, 244, 130, 46, 244, - 129, 46, 244, 128, 46, 244, 127, 46, 244, 126, 46, 244, 125, 46, 244, - 124, 46, 244, 123, 46, 244, 122, 46, 244, 121, 46, 244, 120, 46, 244, - 119, 46, 244, 118, 46, 244, 117, 46, 244, 116, 46, 244, 115, 46, 244, - 114, 46, 244, 113, 46, 244, 112, 46, 244, 111, 46, 244, 110, 46, 244, - 109, 46, 244, 108, 46, 244, 107, 46, 244, 106, 46, 244, 105, 46, 244, - 104, 46, 244, 103, 46, 244, 102, 46, 244, 101, 46, 244, 100, 46, 244, 99, - 46, 244, 98, 46, 244, 97, 46, 244, 96, 46, 244, 95, 46, 244, 94, 46, 244, - 93, 46, 244, 92, 46, 244, 91, 46, 244, 90, 46, 244, 89, 46, 244, 88, 46, - 244, 87, 46, 244, 86, 46, 244, 85, 46, 244, 84, 46, 244, 83, 46, 244, 82, - 46, 244, 81, 46, 244, 80, 46, 244, 79, 46, 244, 78, 46, 244, 77, 46, 244, - 76, 46, 244, 75, 46, 244, 74, 46, 244, 73, 46, 244, 72, 46, 244, 71, 46, - 244, 70, 46, 244, 69, 46, 244, 68, 46, 244, 67, 46, 244, 66, 46, 244, 65, - 46, 244, 64, 46, 244, 63, 46, 244, 62, 46, 244, 61, 46, 244, 60, 46, 244, - 59, 46, 244, 58, 46, 244, 57, 46, 244, 56, 46, 244, 55, 46, 244, 54, 46, - 244, 53, 46, 244, 52, 46, 244, 51, 46, 244, 50, 46, 244, 49, 46, 244, 48, - 46, 244, 47, 46, 244, 46, 46, 244, 45, 46, 244, 44, 46, 244, 43, 46, 244, - 42, 46, 244, 41, 46, 244, 40, 46, 244, 39, 46, 244, 38, 46, 244, 37, 46, - 244, 36, 46, 244, 35, 46, 244, 34, 46, 244, 33, 46, 244, 32, 46, 244, 31, - 46, 244, 30, 46, 244, 29, 46, 244, 28, 46, 244, 27, 46, 244, 26, 46, 244, - 25, 46, 244, 24, 46, 244, 23, 46, 244, 22, 46, 244, 21, 46, 244, 20, 46, - 244, 19, 46, 244, 18, 46, 244, 17, 46, 244, 16, 46, 244, 15, 46, 244, 14, - 46, 244, 13, 46, 244, 12, 46, 244, 11, 46, 244, 10, 46, 244, 9, 46, 244, - 8, 46, 244, 7, 46, 244, 6, 46, 244, 5, 46, 244, 4, 46, 244, 3, 46, 244, - 2, 46, 244, 1, 46, 244, 0, 46, 243, 255, 46, 243, 254, 46, 243, 253, 46, - 243, 252, 46, 243, 251, 46, 243, 250, 46, 243, 249, 46, 243, 248, 46, - 243, 247, 46, 243, 246, 46, 243, 245, 46, 243, 244, 46, 243, 243, 46, - 243, 242, 46, 243, 241, 46, 243, 240, 46, 243, 239, 46, 243, 238, 46, - 243, 237, 46, 243, 236, 46, 243, 235, 46, 243, 234, 46, 243, 233, 46, - 243, 232, 46, 243, 231, 46, 243, 230, 46, 243, 229, 46, 243, 228, 46, - 243, 227, 46, 243, 226, 46, 243, 225, 46, 243, 224, 46, 243, 223, 46, - 243, 222, 46, 243, 221, 46, 243, 220, 46, 243, 219, 46, 243, 218, 46, - 243, 217, 46, 243, 216, 46, 243, 215, 46, 243, 214, 46, 243, 213, 46, - 243, 212, 46, 243, 211, 46, 243, 210, 46, 243, 209, 46, 243, 208, 46, - 243, 207, 46, 243, 206, 46, 243, 205, 46, 243, 204, 46, 243, 203, 46, - 243, 202, 46, 243, 201, 46, 243, 200, 46, 243, 199, 46, 243, 198, 46, - 243, 197, 46, 243, 196, 46, 243, 195, 46, 243, 194, 46, 243, 193, 46, - 243, 192, 46, 243, 191, 46, 243, 190, 46, 243, 189, 46, 243, 188, 46, - 243, 187, 46, 243, 186, 46, 243, 185, 46, 243, 184, 46, 243, 183, 46, - 243, 182, 46, 243, 181, 46, 243, 180, 46, 243, 179, 46, 243, 178, 46, - 243, 177, 46, 243, 176, 46, 243, 175, 46, 243, 174, 46, 243, 173, 46, - 243, 172, 46, 243, 171, 46, 243, 170, 46, 243, 169, 46, 243, 168, 46, - 243, 167, 46, 243, 166, 46, 243, 165, 46, 243, 164, 46, 243, 163, 46, - 243, 162, 46, 243, 161, 46, 243, 160, 46, 243, 159, 46, 243, 158, 46, - 243, 157, 46, 243, 156, 46, 243, 155, 46, 243, 154, 46, 243, 153, 46, - 243, 152, 46, 243, 151, 46, 243, 150, 46, 243, 149, 46, 243, 148, 46, - 243, 147, 46, 243, 146, 46, 243, 145, 46, 243, 144, 46, 243, 143, 46, - 243, 142, 46, 243, 141, 124, 1, 230, 116, 124, 1, 192, 235, 124, 1, 210, - 236, 124, 1, 200, 43, 124, 1, 233, 175, 124, 1, 222, 152, 124, 1, 172, - 124, 1, 250, 120, 124, 1, 238, 127, 124, 1, 196, 12, 124, 1, 232, 51, - 124, 1, 146, 124, 1, 210, 237, 215, 61, 124, 1, 238, 128, 206, 8, 124, 1, - 233, 176, 215, 61, 124, 1, 222, 153, 218, 168, 124, 1, 207, 222, 206, 8, - 124, 1, 199, 51, 124, 1, 202, 82, 237, 69, 124, 1, 237, 69, 124, 1, 221, - 102, 124, 1, 202, 82, 223, 35, 124, 1, 229, 112, 124, 1, 219, 160, 124, - 1, 207, 7, 124, 1, 218, 168, 124, 1, 215, 61, 124, 1, 223, 35, 124, 1, - 206, 8, 124, 1, 218, 169, 215, 61, 124, 1, 215, 62, 218, 168, 124, 1, - 223, 36, 218, 168, 124, 1, 206, 9, 223, 35, 124, 1, 218, 169, 4, 236, - 140, 124, 1, 215, 62, 4, 236, 140, 124, 1, 223, 36, 4, 236, 140, 124, 1, - 223, 36, 4, 185, 223, 118, 23, 58, 124, 1, 206, 9, 4, 236, 140, 124, 1, - 206, 9, 4, 75, 60, 124, 1, 218, 169, 206, 8, 124, 1, 215, 62, 206, 8, - 124, 1, 223, 36, 206, 8, 124, 1, 206, 9, 206, 8, 124, 1, 218, 169, 215, - 62, 206, 8, 124, 1, 215, 62, 218, 169, 206, 8, 124, 1, 223, 36, 218, 169, - 206, 8, 124, 1, 206, 9, 223, 36, 206, 8, 124, 1, 223, 36, 206, 9, 4, 236, - 140, 124, 1, 223, 36, 215, 61, 124, 1, 223, 36, 215, 62, 206, 8, 124, 1, - 206, 9, 200, 43, 124, 1, 206, 9, 200, 44, 146, 124, 1, 206, 9, 210, 236, - 124, 1, 206, 9, 210, 237, 146, 124, 1, 200, 44, 206, 8, 124, 1, 200, 44, - 207, 222, 206, 8, 124, 1, 193, 224, 124, 1, 193, 97, 124, 1, 193, 225, - 146, 124, 1, 206, 9, 215, 61, 124, 1, 206, 9, 218, 168, 124, 1, 222, 153, - 207, 222, 206, 8, 124, 1, 232, 52, 207, 222, 206, 8, 124, 1, 206, 9, 222, - 152, 124, 1, 206, 9, 222, 153, 146, 124, 1, 65, 124, 1, 202, 82, 210, - 250, 124, 1, 211, 182, 124, 1, 74, 124, 1, 251, 66, 124, 1, 68, 124, 1, - 71, 124, 1, 223, 226, 124, 1, 203, 40, 68, 124, 1, 196, 139, 124, 1, 234, - 188, 124, 1, 202, 82, 234, 173, 124, 1, 206, 135, 68, 124, 1, 202, 82, - 234, 188, 124, 1, 179, 68, 124, 1, 192, 80, 124, 1, 66, 124, 1, 233, 242, - 124, 1, 192, 182, 124, 1, 126, 215, 61, 124, 1, 179, 66, 124, 1, 206, - 135, 66, 124, 1, 196, 141, 124, 1, 202, 82, 66, 124, 1, 211, 84, 124, 1, - 210, 250, 124, 1, 211, 19, 124, 1, 193, 190, 124, 1, 193, 48, 124, 1, - 193, 86, 124, 1, 193, 112, 124, 1, 193, 14, 124, 1, 214, 214, 66, 124, 1, - 214, 214, 74, 124, 1, 214, 214, 68, 124, 1, 214, 214, 65, 124, 1, 210, 0, - 251, 132, 124, 1, 210, 0, 251, 149, 124, 1, 202, 82, 234, 103, 124, 1, - 202, 82, 251, 132, 124, 1, 202, 82, 211, 104, 124, 1, 117, 218, 168, 124, - 252, 4, 45, 228, 241, 205, 58, 124, 252, 4, 216, 87, 228, 241, 205, 58, - 124, 252, 4, 50, 228, 241, 205, 58, 124, 252, 4, 130, 81, 205, 58, 124, - 252, 4, 216, 87, 81, 205, 58, 124, 252, 4, 137, 81, 205, 58, 124, 252, 4, - 250, 170, 205, 58, 124, 252, 4, 250, 170, 219, 215, 205, 58, 124, 252, 4, - 250, 170, 199, 188, 124, 252, 4, 250, 170, 199, 215, 124, 252, 4, 250, - 170, 235, 15, 102, 124, 252, 4, 250, 170, 228, 74, 102, 124, 252, 4, 250, - 170, 199, 189, 102, 124, 252, 4, 137, 252, 46, 124, 252, 4, 137, 198, - 172, 252, 46, 124, 252, 4, 137, 230, 210, 124, 252, 4, 137, 179, 230, - 210, 124, 252, 4, 137, 236, 140, 124, 252, 4, 137, 243, 10, 124, 252, 4, - 137, 219, 112, 124, 252, 4, 137, 193, 138, 124, 252, 4, 137, 195, 135, - 124, 252, 4, 130, 252, 46, 124, 252, 4, 130, 198, 172, 252, 46, 124, 252, - 4, 130, 230, 210, 124, 252, 4, 130, 179, 230, 210, 124, 252, 4, 130, 236, - 140, 124, 252, 4, 130, 243, 10, 124, 252, 4, 130, 219, 112, 124, 252, 4, - 130, 193, 138, 124, 252, 4, 130, 195, 135, 124, 252, 4, 130, 57, 124, 3, - 187, 4, 238, 217, 124, 199, 9, 1, 205, 34, 124, 55, 77, 124, 208, 152, - 243, 78, 232, 80, 201, 63, 203, 27, 232, 145, 1, 211, 2, 203, 27, 232, - 145, 239, 28, 211, 2, 203, 27, 232, 145, 144, 201, 78, 203, 27, 232, 145, - 133, 201, 78, 97, 33, 87, 230, 240, 213, 159, 206, 9, 220, 251, 211, 105, - 219, 224, 97, 33, 87, 213, 159, 206, 9, 220, 251, 211, 105, 219, 224, 97, - 33, 87, 197, 162, 211, 105, 219, 224, 97, 33, 87, 230, 240, 213, 159, - 211, 105, 219, 224, 97, 33, 87, 213, 159, 211, 105, 219, 224, 97, 33, 87, - 201, 179, 211, 105, 219, 224, 97, 33, 87, 217, 94, 209, 3, 211, 105, 219, - 224, 97, 33, 87, 209, 3, 211, 105, 219, 224, 97, 33, 87, 193, 231, 211, - 105, 219, 224, 97, 33, 87, 217, 94, 209, 3, 206, 9, 221, 181, 211, 105, - 219, 224, 97, 33, 87, 209, 3, 206, 9, 221, 181, 211, 105, 219, 224, 97, - 33, 87, 193, 231, 206, 9, 221, 181, 211, 105, 219, 224, 97, 33, 87, 230, - 240, 213, 159, 206, 9, 220, 251, 211, 105, 183, 97, 33, 87, 213, 159, - 206, 9, 220, 251, 211, 105, 183, 97, 33, 87, 197, 162, 211, 105, 183, 97, - 33, 87, 230, 240, 213, 159, 211, 105, 183, 97, 33, 87, 213, 159, 211, - 105, 183, 97, 33, 87, 201, 179, 211, 105, 183, 97, 33, 87, 217, 94, 209, - 3, 211, 105, 183, 97, 33, 87, 209, 3, 211, 105, 183, 97, 33, 87, 193, - 231, 211, 105, 183, 97, 33, 87, 217, 94, 209, 3, 206, 9, 221, 181, 211, - 105, 183, 97, 33, 87, 209, 3, 206, 9, 221, 181, 211, 105, 183, 97, 33, - 87, 193, 231, 206, 9, 221, 181, 211, 105, 183, 97, 33, 87, 197, 162, 206, - 9, 220, 250, 97, 33, 87, 217, 94, 209, 3, 206, 9, 220, 250, 97, 33, 87, - 201, 49, 217, 94, 209, 2, 97, 33, 87, 209, 3, 206, 9, 220, 250, 97, 33, - 87, 209, 3, 201, 48, 97, 33, 87, 193, 231, 206, 9, 220, 250, 97, 33, 87, - 217, 94, 209, 3, 201, 48, 97, 33, 87, 230, 240, 193, 230, 97, 33, 87, - 191, 83, 97, 33, 87, 211, 104, 97, 33, 87, 207, 124, 97, 33, 87, 198, - 157, 97, 33, 87, 248, 83, 97, 33, 87, 196, 156, 97, 33, 87, 209, 65, 97, - 33, 87, 219, 21, 97, 33, 87, 220, 200, 97, 33, 87, 222, 115, 97, 33, 87, - 191, 74, 97, 33, 87, 202, 105, 97, 33, 87, 207, 117, 97, 33, 87, 220, - 253, 211, 105, 219, 224, 97, 33, 198, 80, 207, 137, 87, 215, 162, 97, 33, - 198, 80, 207, 137, 87, 200, 153, 97, 33, 198, 80, 207, 137, 87, 197, 246, - 97, 33, 87, 191, 120, 97, 33, 87, 237, 105, 191, 120, 97, 33, 87, 211, - 25, 97, 33, 87, 209, 67, 97, 33, 87, 209, 68, 4, 81, 106, 97, 33, 87, - 243, 134, 97, 33, 87, 243, 135, 209, 45, 97, 33, 87, 211, 174, 97, 33, - 87, 202, 10, 212, 249, 97, 33, 87, 198, 89, 97, 33, 87, 235, 48, 97, 33, - 250, 169, 81, 211, 109, 97, 33, 87, 238, 163, 211, 109, 97, 33, 87, 220, - 252, 97, 33, 110, 198, 80, 207, 137, 223, 144, 97, 208, 203, 52, 219, - 167, 97, 208, 203, 52, 219, 166, 97, 208, 203, 52, 236, 233, 232, 195, - 97, 208, 203, 52, 220, 252, 97, 208, 203, 52, 206, 144, 97, 161, 221, 0, - 97, 161, 221, 1, 198, 156, 97, 161, 210, 122, 97, 161, 235, 56, 196, 13, - 243, 113, 97, 161, 221, 90, 97, 161, 191, 105, 97, 161, 201, 61, 97, 161, - 201, 62, 206, 9, 211, 163, 97, 161, 210, 10, 97, 161, 210, 11, 214, 96, - 97, 161, 201, 62, 4, 202, 10, 212, 249, 97, 161, 243, 112, 97, 161, 210, - 186, 97, 161, 191, 103, 97, 161, 230, 248, 248, 82, 97, 161, 230, 248, - 198, 156, 97, 161, 230, 248, 215, 160, 97, 161, 230, 248, 200, 152, 97, - 161, 230, 248, 197, 245, 97, 161, 194, 253, 208, 183, 97, 161, 194, 253, - 215, 163, 97, 161, 194, 253, 200, 154, 97, 161, 194, 253, 197, 247, 97, - 161, 194, 253, 221, 85, 208, 183, 97, 161, 194, 253, 221, 85, 215, 163, - 97, 161, 194, 253, 221, 85, 200, 154, 97, 161, 194, 253, 221, 85, 197, - 247, 97, 161, 55, 191, 103, 97, 161, 207, 18, 243, 112, 97, 161, 237, 91, - 97, 161, 221, 207, 97, 161, 243, 134, 97, 161, 209, 67, 97, 161, 202, - 113, 215, 163, 97, 161, 202, 113, 200, 154, 97, 161, 202, 113, 197, 247, - 97, 161, 202, 113, 198, 157, 97, 161, 237, 105, 221, 90, 97, 161, 202, - 113, 221, 85, 200, 154, 97, 161, 202, 113, 221, 89, 97, 161, 202, 113, - 221, 85, 198, 157, 97, 161, 202, 113, 235, 53, 208, 183, 97, 161, 202, - 113, 235, 53, 200, 154, 97, 161, 202, 113, 235, 53, 214, 96, 97, 161, - 202, 113, 235, 53, 221, 84, 97, 161, 202, 72, 97, 161, 202, 73, 206, 9, - 191, 101, 97, 161, 202, 73, 191, 110, 97, 161, 202, 73, 206, 9, 220, 250, - 97, 161, 220, 252, 97, 161, 206, 144, 97, 161, 232, 228, 97, 161, 221, - 59, 97, 161, 191, 8, 97, 161, 201, 90, 97, 161, 201, 91, 206, 9, 191, - 101, 97, 161, 201, 91, 206, 9, 220, 250, 97, 161, 201, 91, 206, 9, 191, - 102, 228, 74, 220, 250, 97, 161, 201, 91, 206, 9, 220, 251, 228, 74, 191, - 101, 97, 161, 201, 91, 191, 111, 97, 161, 201, 91, 191, 112, 206, 9, 191, - 101, 97, 161, 201, 91, 206, 9, 206, 143, 97, 161, 201, 91, 206, 9, 235, - 47, 191, 100, 97, 161, 201, 91, 206, 9, 191, 102, 228, 74, 209, 66, 97, - 161, 209, 47, 97, 161, 201, 91, 214, 96, 97, 161, 201, 40, 208, 183, 97, - 161, 201, 40, 215, 161, 97, 161, 201, 40, 220, 249, 97, 161, 201, 40, - 209, 43, 97, 161, 201, 40, 209, 5, 97, 161, 201, 40, 214, 96, 97, 161, - 201, 40, 221, 87, 97, 161, 201, 40, 221, 89, 97, 161, 201, 40, 198, 158, - 208, 130, 97, 161, 201, 40, 235, 52, 97, 161, 201, 40, 235, 51, 97, 161, - 201, 40, 235, 49, 97, 161, 201, 40, 235, 53, 221, 84, 97, 161, 201, 40, - 235, 50, 221, 84, 97, 161, 201, 40, 230, 195, 4, 202, 170, 191, 103, 97, - 161, 201, 40, 230, 191, 4, 202, 170, 191, 103, 97, 161, 201, 40, 230, - 194, 97, 161, 201, 40, 230, 190, 97, 161, 201, 40, 230, 191, 4, 55, 191, - 103, 97, 161, 201, 40, 230, 192, 97, 161, 201, 40, 230, 193, 209, 5, 97, - 161, 216, 221, 97, 161, 216, 222, 209, 4, 97, 161, 216, 222, 221, 83, 97, - 161, 216, 222, 221, 86, 97, 161, 216, 222, 221, 88, 97, 161, 201, 40, - 197, 174, 97, 161, 201, 40, 197, 173, 97, 161, 201, 40, 197, 172, 97, - 161, 211, 31, 97, 161, 211, 32, 200, 154, 97, 161, 211, 32, 197, 247, 97, - 161, 211, 32, 220, 255, 200, 154, 97, 161, 211, 32, 221, 85, 200, 154, - 97, 161, 211, 32, 221, 85, 214, 96, 97, 161, 201, 40, 220, 254, 97, 161, - 201, 40, 220, 255, 209, 5, 97, 161, 201, 40, 220, 255, 230, 195, 4, 202, - 170, 191, 103, 97, 161, 201, 40, 220, 255, 230, 191, 4, 202, 170, 191, - 103, 97, 161, 201, 40, 220, 255, 230, 194, 97, 161, 201, 40, 220, 255, - 230, 190, 97, 161, 201, 40, 220, 255, 230, 191, 4, 55, 191, 103, 97, 161, - 201, 40, 220, 255, 230, 192, 97, 161, 201, 40, 220, 255, 230, 193, 209, - 5, 97, 161, 201, 40, 220, 255, 197, 175, 97, 161, 220, 214, 97, 161, 211, - 173, 97, 161, 235, 84, 97, 161, 214, 103, 97, 161, 210, 79, 73, 37, 16, - 208, 169, 73, 37, 16, 237, 217, 73, 37, 16, 210, 4, 73, 37, 16, 210, 246, - 234, 144, 73, 37, 16, 210, 246, 236, 238, 73, 37, 16, 195, 172, 234, 144, - 73, 37, 16, 195, 172, 236, 238, 73, 37, 16, 222, 44, 73, 37, 16, 200, 60, - 73, 37, 16, 210, 120, 73, 37, 16, 191, 231, 73, 37, 16, 191, 232, 236, - 238, 73, 37, 16, 221, 3, 73, 37, 16, 251, 61, 234, 144, 73, 37, 16, 233, - 210, 234, 144, 73, 37, 16, 199, 108, 73, 37, 16, 221, 247, 73, 37, 16, - 251, 50, 73, 37, 16, 251, 51, 236, 238, 73, 37, 16, 200, 67, 73, 37, 16, - 198, 244, 73, 37, 16, 211, 116, 251, 12, 73, 37, 16, 230, 238, 251, 12, - 73, 37, 16, 208, 168, 73, 37, 16, 246, 248, 73, 37, 16, 195, 161, 73, 37, - 16, 223, 58, 251, 12, 73, 37, 16, 221, 249, 251, 12, 73, 37, 16, 221, - 248, 251, 12, 73, 37, 16, 205, 105, 73, 37, 16, 210, 110, 73, 37, 16, - 201, 88, 251, 54, 73, 37, 16, 210, 245, 251, 12, 73, 37, 16, 195, 171, - 251, 12, 73, 37, 16, 251, 55, 251, 12, 73, 37, 16, 251, 48, 73, 37, 16, - 221, 92, 73, 37, 16, 207, 14, 73, 37, 16, 209, 183, 251, 12, 73, 37, 16, - 198, 142, 73, 37, 16, 251, 128, 73, 37, 16, 205, 37, 73, 37, 16, 200, 71, - 251, 12, 73, 37, 16, 200, 71, 216, 166, 201, 86, 73, 37, 16, 210, 240, - 251, 12, 73, 37, 16, 199, 27, 73, 37, 16, 219, 202, 73, 37, 16, 235, 38, - 73, 37, 16, 197, 243, 73, 37, 16, 199, 76, 73, 37, 16, 221, 6, 73, 37, - 16, 251, 61, 233, 210, 214, 98, 73, 37, 16, 232, 88, 251, 12, 73, 37, 16, - 223, 175, 73, 37, 16, 197, 210, 251, 12, 73, 37, 16, 222, 47, 197, 209, - 73, 37, 16, 210, 36, 73, 37, 16, 208, 173, 73, 37, 16, 221, 42, 73, 37, - 16, 243, 60, 251, 12, 73, 37, 16, 207, 135, 73, 37, 16, 210, 124, 251, - 12, 73, 37, 16, 210, 121, 251, 12, 73, 37, 16, 228, 24, 73, 37, 16, 214, - 225, 73, 37, 16, 209, 238, 73, 37, 16, 221, 43, 251, 167, 73, 37, 16, - 197, 210, 251, 167, 73, 37, 16, 201, 55, 73, 37, 16, 230, 189, 73, 37, - 16, 223, 58, 214, 98, 73, 37, 16, 211, 116, 214, 98, 73, 37, 16, 210, - 246, 214, 98, 73, 37, 16, 209, 237, 73, 37, 16, 221, 26, 73, 37, 16, 209, - 236, 73, 37, 16, 221, 5, 73, 37, 16, 210, 37, 214, 98, 73, 37, 16, 221, - 248, 214, 99, 251, 93, 73, 37, 16, 221, 249, 214, 99, 251, 93, 73, 37, - 16, 191, 229, 73, 37, 16, 251, 51, 214, 98, 73, 37, 16, 251, 52, 200, 68, - 214, 98, 73, 37, 16, 191, 230, 73, 37, 16, 221, 4, 73, 37, 16, 234, 139, - 73, 37, 16, 246, 249, 73, 37, 16, 216, 57, 223, 57, 73, 37, 16, 195, 172, - 214, 98, 73, 37, 16, 209, 183, 214, 98, 73, 37, 16, 208, 174, 214, 98, - 73, 37, 16, 211, 112, 73, 37, 16, 251, 80, 73, 37, 16, 218, 179, 73, 37, - 16, 210, 121, 214, 98, 73, 37, 16, 210, 124, 214, 98, 73, 37, 16, 233, - 249, 210, 123, 73, 37, 16, 220, 147, 73, 37, 16, 251, 81, 73, 37, 16, - 197, 210, 214, 98, 73, 37, 16, 234, 142, 73, 37, 16, 200, 71, 214, 98, - 73, 37, 16, 200, 61, 73, 37, 16, 243, 60, 214, 98, 73, 37, 16, 234, 53, - 73, 37, 16, 205, 38, 214, 98, 73, 37, 16, 192, 199, 221, 92, 73, 37, 16, - 197, 207, 73, 37, 16, 208, 175, 73, 37, 16, 197, 211, 73, 37, 16, 197, - 208, 73, 37, 16, 208, 172, 73, 37, 16, 197, 206, 73, 37, 16, 208, 171, - 73, 37, 16, 230, 237, 73, 37, 16, 251, 4, 73, 37, 16, 233, 249, 251, 4, - 73, 37, 16, 210, 240, 214, 98, 73, 37, 16, 199, 26, 234, 6, 73, 37, 16, - 199, 26, 233, 209, 73, 37, 16, 199, 28, 251, 56, 73, 37, 16, 199, 20, - 222, 103, 251, 47, 73, 37, 16, 222, 46, 73, 37, 16, 234, 90, 73, 37, 16, - 192, 38, 222, 43, 73, 37, 16, 192, 38, 251, 93, 73, 37, 16, 201, 87, 73, - 37, 16, 221, 93, 251, 93, 73, 37, 16, 236, 239, 251, 12, 73, 37, 16, 221, - 7, 251, 12, 73, 37, 16, 221, 7, 251, 167, 73, 37, 16, 221, 7, 214, 98, - 73, 37, 16, 251, 55, 214, 98, 73, 37, 16, 251, 57, 73, 37, 16, 236, 238, - 73, 37, 16, 197, 223, 73, 37, 16, 199, 66, 73, 37, 16, 221, 30, 73, 37, - 16, 219, 207, 234, 83, 243, 50, 73, 37, 16, 219, 207, 235, 39, 243, 51, - 73, 37, 16, 219, 207, 197, 226, 243, 51, 73, 37, 16, 219, 207, 199, 78, - 243, 51, 73, 37, 16, 219, 207, 223, 170, 243, 50, 73, 37, 16, 230, 238, - 214, 99, 251, 93, 73, 37, 16, 230, 238, 210, 111, 251, 0, 73, 37, 16, - 230, 238, 210, 111, 237, 73, 73, 37, 16, 237, 7, 73, 37, 16, 237, 8, 210, - 111, 251, 1, 222, 43, 73, 37, 16, 237, 8, 210, 111, 251, 1, 251, 93, 73, - 37, 16, 237, 8, 210, 111, 237, 73, 73, 37, 16, 197, 232, 73, 37, 16, 251, - 5, 73, 37, 16, 223, 177, 73, 37, 16, 237, 30, 73, 37, 16, 251, 247, 209, - 51, 251, 6, 73, 37, 16, 251, 247, 251, 3, 73, 37, 16, 251, 247, 251, 6, - 73, 37, 16, 251, 247, 216, 160, 73, 37, 16, 251, 247, 216, 171, 73, 37, - 16, 251, 247, 230, 239, 73, 37, 16, 251, 247, 230, 236, 73, 37, 16, 251, - 247, 209, 51, 230, 239, 73, 37, 16, 217, 45, 208, 181, 228, 22, 73, 37, - 16, 217, 45, 251, 169, 208, 181, 228, 22, 73, 37, 16, 217, 45, 237, 72, - 228, 22, 73, 37, 16, 217, 45, 251, 169, 237, 72, 228, 22, 73, 37, 16, - 217, 45, 197, 218, 228, 22, 73, 37, 16, 217, 45, 197, 233, 73, 37, 16, - 217, 45, 199, 71, 228, 22, 73, 37, 16, 217, 45, 199, 71, 219, 211, 228, - 22, 73, 37, 16, 217, 45, 219, 211, 228, 22, 73, 37, 16, 217, 45, 209, - 105, 228, 22, 73, 37, 16, 223, 66, 199, 101, 228, 23, 73, 37, 16, 251, - 52, 199, 101, 228, 23, 73, 37, 16, 233, 79, 199, 68, 73, 37, 16, 233, 79, - 215, 222, 73, 37, 16, 233, 79, 237, 13, 73, 37, 16, 217, 45, 195, 165, - 228, 22, 73, 37, 16, 217, 45, 208, 180, 228, 22, 73, 37, 16, 217, 45, - 209, 105, 199, 71, 228, 22, 73, 37, 16, 230, 233, 215, 62, 251, 56, 73, - 37, 16, 230, 233, 215, 62, 236, 237, 73, 37, 16, 234, 101, 222, 103, 232, - 88, 195, 3, 73, 37, 16, 223, 176, 73, 37, 16, 223, 174, 73, 37, 16, 232, - 88, 251, 13, 237, 71, 228, 21, 73, 37, 16, 232, 88, 237, 28, 168, 73, 37, - 16, 232, 88, 237, 28, 214, 225, 73, 37, 16, 232, 88, 214, 219, 228, 22, - 73, 37, 16, 232, 88, 237, 28, 237, 44, 73, 37, 16, 232, 88, 202, 106, - 237, 27, 237, 44, 73, 37, 16, 232, 88, 237, 28, 222, 22, 73, 37, 16, 232, - 88, 237, 28, 191, 7, 73, 37, 16, 232, 88, 237, 28, 213, 220, 222, 43, 73, - 37, 16, 232, 88, 237, 28, 213, 220, 251, 93, 73, 37, 16, 232, 88, 217, - 98, 243, 52, 237, 13, 73, 37, 16, 232, 88, 217, 98, 243, 52, 215, 222, - 73, 37, 16, 233, 24, 202, 106, 243, 52, 195, 164, 73, 37, 16, 232, 88, - 202, 106, 243, 52, 200, 72, 73, 37, 16, 232, 88, 214, 101, 73, 37, 16, - 243, 53, 190, 230, 73, 37, 16, 243, 53, 221, 91, 73, 37, 16, 243, 53, - 201, 238, 73, 37, 16, 232, 88, 228, 74, 192, 37, 199, 72, 73, 37, 16, - 232, 88, 234, 102, 251, 82, 73, 37, 16, 192, 37, 197, 219, 73, 37, 16, - 237, 21, 197, 219, 73, 37, 16, 237, 21, 199, 72, 73, 37, 16, 237, 21, - 251, 58, 235, 39, 236, 166, 73, 37, 16, 237, 21, 215, 220, 199, 77, 236, - 166, 73, 37, 16, 237, 21, 237, 4, 233, 222, 236, 166, 73, 37, 16, 237, - 21, 197, 230, 211, 122, 236, 166, 73, 37, 16, 192, 37, 251, 58, 235, 39, - 236, 166, 73, 37, 16, 192, 37, 215, 220, 199, 77, 236, 166, 73, 37, 16, - 192, 37, 237, 4, 233, 222, 236, 166, 73, 37, 16, 192, 37, 197, 230, 211, - 122, 236, 166, 73, 37, 16, 231, 147, 237, 20, 73, 37, 16, 231, 147, 192, - 36, 73, 37, 16, 237, 29, 251, 58, 216, 58, 73, 37, 16, 237, 29, 251, 58, - 216, 202, 73, 37, 16, 237, 29, 236, 238, 73, 37, 16, 237, 29, 199, 18, - 73, 37, 16, 202, 181, 199, 18, 73, 37, 16, 202, 181, 199, 19, 236, 221, - 73, 37, 16, 202, 181, 199, 19, 197, 220, 73, 37, 16, 202, 181, 199, 19, - 199, 64, 73, 37, 16, 202, 181, 250, 228, 73, 37, 16, 202, 181, 250, 229, - 236, 221, 73, 37, 16, 202, 181, 250, 229, 197, 220, 73, 37, 16, 202, 181, - 250, 229, 199, 64, 73, 37, 16, 237, 5, 231, 128, 73, 37, 16, 237, 12, - 211, 19, 73, 37, 16, 201, 73, 73, 37, 16, 250, 253, 168, 73, 37, 16, 250, - 253, 195, 3, 73, 37, 16, 250, 253, 231, 240, 73, 37, 16, 250, 253, 237, - 44, 73, 37, 16, 250, 253, 222, 22, 73, 37, 16, 250, 253, 191, 7, 73, 37, - 16, 250, 253, 213, 219, 73, 37, 16, 221, 248, 214, 99, 216, 170, 73, 37, - 16, 221, 249, 214, 99, 216, 170, 73, 37, 16, 221, 248, 214, 99, 222, 43, - 73, 37, 16, 221, 249, 214, 99, 222, 43, 73, 37, 16, 221, 93, 222, 43, 73, - 37, 16, 230, 238, 214, 99, 222, 43, 37, 16, 202, 170, 249, 83, 37, 16, - 55, 249, 83, 37, 16, 53, 249, 83, 37, 16, 207, 19, 53, 249, 83, 37, 16, - 237, 214, 249, 83, 37, 16, 203, 40, 249, 83, 37, 16, 45, 207, 49, 56, 37, - 16, 50, 207, 49, 56, 37, 16, 207, 49, 236, 138, 37, 16, 238, 4, 205, 41, - 37, 16, 238, 33, 247, 108, 37, 16, 205, 41, 37, 16, 242, 92, 37, 16, 207, - 47, 233, 11, 37, 16, 207, 47, 233, 10, 37, 16, 207, 47, 233, 9, 37, 16, - 233, 34, 37, 16, 233, 35, 60, 37, 16, 248, 39, 77, 37, 16, 247, 150, 37, - 16, 248, 55, 37, 16, 248, 53, 37, 16, 211, 99, 201, 111, 37, 16, 197, 12, - 201, 111, 37, 16, 198, 220, 201, 111, 37, 16, 232, 127, 201, 111, 37, 16, - 232, 224, 201, 111, 37, 16, 202, 135, 201, 111, 37, 16, 202, 133, 232, - 105, 37, 16, 232, 125, 232, 105, 37, 16, 232, 52, 242, 235, 37, 16, 232, - 52, 242, 236, 211, 23, 251, 158, 37, 16, 232, 52, 242, 236, 211, 23, 249, - 66, 37, 16, 247, 194, 242, 235, 37, 16, 233, 176, 242, 235, 37, 16, 233, - 176, 242, 236, 211, 23, 251, 158, 37, 16, 233, 176, 242, 236, 211, 23, - 249, 66, 37, 16, 235, 95, 242, 234, 37, 16, 235, 95, 242, 233, 37, 16, - 215, 129, 216, 228, 207, 30, 37, 16, 55, 203, 126, 37, 16, 55, 232, 206, - 37, 16, 232, 207, 196, 77, 37, 16, 232, 207, 235, 123, 37, 16, 214, 206, - 196, 77, 37, 16, 214, 206, 235, 123, 37, 16, 203, 127, 196, 77, 37, 16, - 203, 127, 235, 123, 37, 16, 208, 23, 163, 203, 126, 37, 16, 208, 23, 163, - 232, 206, 37, 16, 242, 71, 198, 146, 37, 16, 238, 155, 198, 146, 37, 16, - 211, 23, 251, 158, 37, 16, 211, 23, 249, 66, 37, 16, 208, 3, 251, 158, - 37, 16, 208, 3, 249, 66, 37, 16, 215, 132, 207, 30, 37, 16, 193, 87, 207, - 30, 37, 16, 132, 207, 30, 37, 16, 208, 23, 207, 30, 37, 16, 234, 160, - 207, 30, 37, 16, 202, 129, 207, 30, 37, 16, 198, 246, 207, 30, 37, 16, - 202, 119, 207, 30, 37, 16, 91, 228, 141, 197, 30, 207, 30, 37, 16, 192, - 236, 213, 2, 37, 16, 108, 213, 2, 37, 16, 243, 11, 192, 236, 213, 2, 37, - 16, 51, 213, 3, 193, 89, 37, 16, 51, 213, 3, 248, 139, 37, 16, 197, 242, - 213, 3, 133, 193, 89, 37, 16, 197, 242, 213, 3, 133, 248, 139, 37, 16, - 197, 242, 213, 3, 45, 193, 89, 37, 16, 197, 242, 213, 3, 45, 248, 139, - 37, 16, 197, 242, 213, 3, 50, 193, 89, 37, 16, 197, 242, 213, 3, 50, 248, - 139, 37, 16, 197, 242, 213, 3, 144, 193, 89, 37, 16, 197, 242, 213, 3, - 144, 248, 139, 37, 16, 197, 242, 213, 3, 133, 50, 193, 89, 37, 16, 197, - 242, 213, 3, 133, 50, 248, 139, 37, 16, 215, 206, 213, 3, 193, 89, 37, - 16, 215, 206, 213, 3, 248, 139, 37, 16, 197, 239, 213, 3, 144, 193, 89, - 37, 16, 197, 239, 213, 3, 144, 248, 139, 37, 16, 210, 114, 213, 2, 37, - 16, 195, 17, 213, 2, 37, 16, 213, 3, 248, 139, 37, 16, 212, 139, 213, 2, - 37, 16, 242, 203, 213, 3, 193, 89, 37, 16, 242, 203, 213, 3, 248, 139, - 37, 16, 248, 36, 37, 16, 193, 87, 213, 6, 37, 16, 132, 213, 6, 37, 16, - 208, 23, 213, 6, 37, 16, 234, 160, 213, 6, 37, 16, 202, 129, 213, 6, 37, - 16, 198, 246, 213, 6, 37, 16, 202, 119, 213, 6, 37, 16, 91, 228, 141, - 197, 30, 213, 6, 37, 16, 33, 201, 80, 37, 16, 33, 201, 197, 201, 80, 37, - 16, 33, 197, 253, 37, 16, 33, 197, 252, 37, 16, 33, 197, 251, 37, 16, - 232, 250, 197, 253, 37, 16, 232, 250, 197, 252, 37, 16, 232, 250, 197, - 251, 37, 16, 33, 250, 160, 236, 140, 37, 16, 33, 232, 216, 37, 16, 33, - 232, 215, 37, 16, 33, 232, 214, 37, 16, 33, 232, 213, 37, 16, 33, 232, - 212, 37, 16, 248, 249, 249, 14, 37, 16, 234, 95, 249, 14, 37, 16, 248, - 249, 198, 178, 37, 16, 234, 95, 198, 178, 37, 16, 248, 249, 202, 71, 37, - 16, 234, 95, 202, 71, 37, 16, 248, 249, 209, 192, 37, 16, 234, 95, 209, - 192, 37, 16, 33, 252, 60, 37, 16, 33, 201, 115, 37, 16, 33, 199, 83, 37, - 16, 33, 201, 116, 37, 16, 33, 217, 60, 37, 16, 33, 217, 59, 37, 16, 33, - 252, 59, 37, 16, 33, 218, 243, 37, 16, 250, 241, 196, 77, 37, 16, 250, - 241, 235, 123, 37, 16, 33, 236, 158, 37, 16, 33, 206, 184, 37, 16, 33, - 232, 195, 37, 16, 33, 202, 67, 37, 16, 33, 248, 227, 37, 16, 33, 55, 198, - 61, 37, 16, 33, 197, 225, 198, 61, 37, 16, 206, 190, 37, 16, 200, 241, - 37, 16, 191, 166, 37, 16, 209, 184, 37, 16, 216, 151, 37, 16, 232, 140, - 37, 16, 238, 229, 37, 16, 237, 132, 37, 16, 230, 228, 213, 7, 202, 97, - 37, 16, 230, 228, 213, 7, 213, 44, 202, 97, 37, 16, 198, 27, 37, 16, 197, - 58, 37, 16, 223, 93, 197, 58, 37, 16, 197, 59, 202, 97, 37, 16, 197, 59, - 196, 77, 37, 16, 211, 43, 201, 27, 37, 16, 211, 43, 201, 24, 37, 16, 211, - 43, 201, 23, 37, 16, 211, 43, 201, 22, 37, 16, 211, 43, 201, 21, 37, 16, - 211, 43, 201, 20, 37, 16, 211, 43, 201, 19, 37, 16, 211, 43, 201, 18, 37, - 16, 211, 43, 201, 17, 37, 16, 211, 43, 201, 26, 37, 16, 211, 43, 201, 25, - 37, 16, 230, 0, 37, 16, 214, 113, 37, 16, 234, 95, 79, 201, 69, 37, 16, - 237, 125, 202, 97, 37, 16, 33, 144, 248, 69, 37, 16, 33, 133, 248, 69, - 37, 16, 33, 230, 14, 37, 16, 33, 202, 57, 209, 111, 37, 16, 210, 54, 77, - 37, 16, 210, 54, 133, 77, 37, 16, 132, 210, 54, 77, 37, 16, 231, 13, 196, - 77, 37, 16, 231, 13, 235, 123, 37, 16, 4, 232, 249, 37, 16, 237, 241, 37, - 16, 237, 242, 251, 174, 37, 16, 217, 23, 37, 16, 219, 10, 37, 16, 248, - 33, 37, 16, 204, 29, 193, 89, 37, 16, 204, 29, 248, 139, 37, 16, 216, 39, - 37, 16, 216, 40, 248, 139, 37, 16, 204, 23, 193, 89, 37, 16, 204, 23, - 248, 139, 37, 16, 232, 70, 193, 89, 37, 16, 232, 70, 248, 139, 37, 16, - 219, 11, 210, 9, 207, 30, 37, 16, 219, 11, 223, 167, 207, 30, 37, 16, - 248, 34, 207, 30, 37, 16, 204, 29, 207, 30, 37, 16, 216, 40, 207, 30, 37, - 16, 204, 23, 207, 30, 37, 16, 199, 97, 210, 7, 238, 186, 208, 192, 210, - 8, 37, 16, 199, 97, 210, 7, 238, 186, 208, 192, 223, 166, 37, 16, 199, - 97, 210, 7, 238, 186, 208, 192, 210, 9, 236, 248, 37, 16, 199, 97, 223, - 165, 238, 186, 208, 192, 210, 8, 37, 16, 199, 97, 223, 165, 238, 186, - 208, 192, 223, 166, 37, 16, 199, 97, 223, 165, 238, 186, 208, 192, 223, - 167, 236, 248, 37, 16, 199, 97, 223, 165, 238, 186, 208, 192, 223, 167, - 236, 247, 37, 16, 199, 97, 223, 165, 238, 186, 208, 192, 223, 167, 236, - 246, 37, 16, 238, 220, 37, 16, 230, 199, 247, 194, 242, 235, 37, 16, 230, - 199, 233, 176, 242, 235, 37, 16, 51, 250, 120, 37, 16, 195, 39, 37, 16, - 209, 69, 37, 16, 242, 224, 37, 16, 205, 95, 37, 16, 242, 229, 37, 16, - 198, 47, 37, 16, 209, 28, 37, 16, 209, 29, 232, 198, 37, 16, 205, 96, - 232, 198, 37, 16, 198, 48, 207, 27, 37, 16, 209, 246, 200, 231, 37, 16, - 221, 148, 247, 194, 242, 235, 37, 16, 221, 148, 234, 95, 79, 209, 175, - 37, 16, 221, 148, 53, 213, 6, 37, 16, 221, 148, 207, 99, 77, 37, 16, 221, - 148, 193, 87, 213, 6, 37, 16, 221, 148, 132, 213, 6, 37, 16, 221, 148, - 208, 23, 213, 7, 201, 81, 235, 123, 37, 16, 221, 148, 208, 23, 213, 7, - 201, 81, 196, 77, 37, 16, 221, 148, 234, 160, 213, 7, 201, 81, 235, 123, - 37, 16, 221, 148, 234, 160, 213, 7, 201, 81, 196, 77, 37, 16, 221, 148, - 232, 207, 56, 37, 16, 202, 11, 37, 16, 221, 31, 35, 195, 23, 213, 10, - 200, 123, 35, 195, 23, 213, 10, 200, 112, 35, 195, 23, 213, 10, 200, 102, - 35, 195, 23, 213, 10, 200, 95, 35, 195, 23, 213, 10, 200, 87, 35, 195, - 23, 213, 10, 200, 81, 35, 195, 23, 213, 10, 200, 80, 35, 195, 23, 213, - 10, 200, 79, 35, 195, 23, 213, 10, 200, 78, 35, 195, 23, 213, 10, 200, - 122, 35, 195, 23, 213, 10, 200, 121, 35, 195, 23, 213, 10, 200, 120, 35, - 195, 23, 213, 10, 200, 119, 35, 195, 23, 213, 10, 200, 118, 35, 195, 23, - 213, 10, 200, 117, 35, 195, 23, 213, 10, 200, 116, 35, 195, 23, 213, 10, - 200, 115, 35, 195, 23, 213, 10, 200, 114, 35, 195, 23, 213, 10, 200, 113, - 35, 195, 23, 213, 10, 200, 111, 35, 195, 23, 213, 10, 200, 110, 35, 195, - 23, 213, 10, 200, 109, 35, 195, 23, 213, 10, 200, 108, 35, 195, 23, 213, - 10, 200, 107, 35, 195, 23, 213, 10, 200, 86, 35, 195, 23, 213, 10, 200, - 85, 35, 195, 23, 213, 10, 200, 84, 35, 195, 23, 213, 10, 200, 83, 35, - 195, 23, 213, 10, 200, 82, 35, 223, 116, 213, 10, 200, 123, 35, 223, 116, - 213, 10, 200, 112, 35, 223, 116, 213, 10, 200, 95, 35, 223, 116, 213, 10, - 200, 87, 35, 223, 116, 213, 10, 200, 80, 35, 223, 116, 213, 10, 200, 79, - 35, 223, 116, 213, 10, 200, 121, 35, 223, 116, 213, 10, 200, 120, 35, - 223, 116, 213, 10, 200, 119, 35, 223, 116, 213, 10, 200, 118, 35, 223, - 116, 213, 10, 200, 115, 35, 223, 116, 213, 10, 200, 114, 35, 223, 116, - 213, 10, 200, 113, 35, 223, 116, 213, 10, 200, 108, 35, 223, 116, 213, - 10, 200, 107, 35, 223, 116, 213, 10, 200, 106, 35, 223, 116, 213, 10, - 200, 105, 35, 223, 116, 213, 10, 200, 104, 35, 223, 116, 213, 10, 200, - 103, 35, 223, 116, 213, 10, 200, 101, 35, 223, 116, 213, 10, 200, 100, - 35, 223, 116, 213, 10, 200, 99, 35, 223, 116, 213, 10, 200, 98, 35, 223, - 116, 213, 10, 200, 97, 35, 223, 116, 213, 10, 200, 96, 35, 223, 116, 213, - 10, 200, 94, 35, 223, 116, 213, 10, 200, 93, 35, 223, 116, 213, 10, 200, - 92, 35, 223, 116, 213, 10, 200, 91, 35, 223, 116, 213, 10, 200, 90, 35, - 223, 116, 213, 10, 200, 89, 35, 223, 116, 213, 10, 200, 88, 35, 223, 116, - 213, 10, 200, 86, 35, 223, 116, 213, 10, 200, 85, 35, 223, 116, 213, 10, - 200, 84, 35, 223, 116, 213, 10, 200, 83, 35, 223, 116, 213, 10, 200, 82, - 33, 35, 37, 197, 221, 33, 35, 37, 199, 65, 33, 35, 37, 210, 22, 35, 37, - 219, 206, 222, 93, 212, 134, 191, 77, 222, 93, 212, 134, 107, 222, 93, - 212, 134, 109, 222, 93, 212, 134, 138, 222, 93, 212, 134, 134, 222, 93, - 212, 134, 149, 222, 93, 212, 134, 169, 222, 93, 212, 134, 175, 222, 93, - 212, 134, 171, 222, 93, 212, 134, 178, 222, 93, 212, 134, 199, 95, 222, - 93, 212, 134, 234, 127, 222, 93, 212, 134, 197, 37, 222, 93, 212, 134, - 198, 251, 222, 93, 212, 134, 232, 122, 222, 93, 212, 134, 233, 19, 222, - 93, 212, 134, 202, 130, 222, 93, 212, 134, 203, 244, 222, 93, 212, 134, - 234, 161, 222, 93, 212, 134, 213, 171, 217, 20, 212, 134, 191, 77, 217, - 20, 212, 134, 107, 217, 20, 212, 134, 109, 217, 20, 212, 134, 138, 217, - 20, 212, 134, 134, 217, 20, 212, 134, 149, 217, 20, 212, 134, 169, 217, - 20, 212, 134, 175, 217, 20, 212, 134, 171, 217, 20, 212, 134, 178, 217, - 20, 212, 134, 199, 95, 217, 20, 212, 134, 234, 127, 217, 20, 212, 134, - 197, 37, 217, 20, 212, 134, 198, 251, 217, 20, 212, 134, 232, 122, 217, - 20, 212, 134, 233, 19, 217, 20, 212, 134, 202, 130, 217, 20, 212, 134, - 203, 244, 217, 20, 212, 134, 234, 161, 217, 20, 212, 134, 213, 171, 215, - 221, 40, 234, 207, 237, 6, 40, 229, 218, 234, 207, 237, 6, 40, 228, 145, - 234, 207, 237, 6, 40, 234, 206, 229, 219, 237, 6, 40, 234, 206, 228, 144, - 237, 6, 40, 234, 207, 199, 67, 40, 247, 21, 199, 67, 40, 232, 80, 243, - 10, 199, 67, 40, 216, 30, 199, 67, 40, 249, 78, 199, 67, 40, 222, 10, - 202, 70, 199, 67, 40, 239, 23, 199, 67, 40, 250, 212, 199, 67, 40, 211, - 62, 199, 67, 40, 248, 45, 211, 14, 199, 67, 40, 237, 127, 211, 57, 236, - 213, 199, 67, 40, 236, 210, 199, 67, 40, 191, 237, 199, 67, 40, 223, 153, - 199, 67, 40, 210, 32, 199, 67, 40, 207, 108, 199, 67, 40, 239, 35, 199, - 67, 40, 229, 6, 249, 146, 199, 67, 40, 193, 171, 199, 67, 40, 232, 169, - 199, 67, 40, 252, 28, 199, 67, 40, 207, 62, 199, 67, 40, 207, 34, 199, - 67, 40, 234, 205, 199, 67, 40, 222, 185, 199, 67, 40, 239, 30, 199, 67, - 40, 234, 93, 199, 67, 40, 235, 59, 199, 67, 40, 246, 244, 199, 67, 40, - 237, 137, 199, 67, 40, 28, 207, 33, 199, 67, 40, 210, 211, 199, 67, 40, - 219, 210, 199, 67, 40, 242, 217, 199, 67, 40, 221, 136, 199, 67, 40, 231, - 189, 199, 67, 40, 201, 39, 199, 67, 40, 208, 140, 199, 67, 40, 232, 79, - 199, 67, 40, 207, 35, 199, 67, 40, 219, 251, 211, 57, 216, 2, 199, 67, - 40, 207, 31, 199, 67, 40, 230, 252, 119, 216, 206, 199, 67, 40, 234, 96, - 199, 67, 40, 201, 56, 199, 67, 40, 230, 202, 199, 67, 40, 234, 86, 199, - 67, 40, 210, 83, 199, 67, 40, 206, 177, 199, 67, 40, 232, 196, 199, 67, - 40, 195, 163, 211, 57, 193, 147, 199, 67, 40, 239, 40, 199, 67, 40, 216, - 227, 199, 67, 40, 233, 250, 199, 67, 40, 196, 88, 199, 67, 40, 236, 249, - 199, 67, 40, 242, 219, 215, 179, 199, 67, 40, 230, 171, 199, 67, 40, 231, - 190, 223, 162, 199, 67, 40, 217, 32, 199, 67, 40, 252, 54, 199, 67, 40, - 234, 112, 199, 67, 40, 235, 127, 199, 67, 40, 193, 145, 199, 67, 40, 202, - 165, 199, 67, 40, 223, 126, 199, 67, 40, 237, 93, 199, 67, 40, 237, 219, - 199, 67, 40, 236, 245, 199, 67, 40, 233, 213, 199, 67, 40, 203, 240, 199, - 67, 40, 201, 60, 199, 67, 40, 230, 16, 199, 67, 40, 242, 66, 199, 67, 40, - 242, 214, 199, 67, 40, 233, 88, 199, 67, 40, 251, 248, 199, 67, 40, 242, - 65, 199, 67, 40, 211, 105, 199, 34, 195, 138, 199, 67, 40, 237, 15, 199, - 67, 40, 220, 113, 199, 67, 40, 232, 131, 238, 244, 206, 145, 196, 91, 17, - 107, 238, 244, 206, 145, 196, 91, 17, 109, 238, 244, 206, 145, 196, 91, - 17, 138, 238, 244, 206, 145, 196, 91, 17, 134, 238, 244, 206, 145, 196, - 91, 17, 149, 238, 244, 206, 145, 196, 91, 17, 169, 238, 244, 206, 145, - 196, 91, 17, 175, 238, 244, 206, 145, 196, 91, 17, 171, 238, 244, 206, - 145, 196, 91, 17, 178, 238, 244, 206, 145, 199, 91, 17, 107, 238, 244, - 206, 145, 199, 91, 17, 109, 238, 244, 206, 145, 199, 91, 17, 138, 238, - 244, 206, 145, 199, 91, 17, 134, 238, 244, 206, 145, 199, 91, 17, 149, - 238, 244, 206, 145, 199, 91, 17, 169, 238, 244, 206, 145, 199, 91, 17, - 175, 238, 244, 206, 145, 199, 91, 17, 171, 238, 244, 206, 145, 199, 91, - 17, 178, 154, 199, 198, 87, 107, 154, 199, 198, 87, 109, 154, 199, 198, - 87, 138, 154, 199, 198, 87, 134, 154, 199, 198, 87, 149, 199, 198, 87, - 107, 199, 198, 87, 149, 13, 28, 6, 65, 13, 28, 6, 250, 120, 13, 28, 6, - 247, 193, 13, 28, 6, 238, 127, 13, 28, 6, 71, 13, 28, 6, 233, 175, 13, - 28, 6, 232, 51, 13, 28, 6, 230, 116, 13, 28, 6, 68, 13, 28, 6, 223, 35, - 13, 28, 6, 222, 152, 13, 28, 6, 172, 13, 28, 6, 218, 168, 13, 28, 6, 215, - 61, 13, 28, 6, 74, 13, 28, 6, 210, 236, 13, 28, 6, 208, 104, 13, 28, 6, - 146, 13, 28, 6, 206, 8, 13, 28, 6, 200, 43, 13, 28, 6, 66, 13, 28, 6, - 196, 12, 13, 28, 6, 193, 224, 13, 28, 6, 192, 235, 13, 28, 6, 192, 159, - 13, 28, 6, 191, 166, 13, 28, 2, 65, 13, 28, 2, 250, 120, 13, 28, 2, 247, - 193, 13, 28, 2, 238, 127, 13, 28, 2, 71, 13, 28, 2, 233, 175, 13, 28, 2, - 232, 51, 13, 28, 2, 230, 116, 13, 28, 2, 68, 13, 28, 2, 223, 35, 13, 28, - 2, 222, 152, 13, 28, 2, 172, 13, 28, 2, 218, 168, 13, 28, 2, 215, 61, 13, - 28, 2, 74, 13, 28, 2, 210, 236, 13, 28, 2, 208, 104, 13, 28, 2, 146, 13, - 28, 2, 206, 8, 13, 28, 2, 200, 43, 13, 28, 2, 66, 13, 28, 2, 196, 12, 13, - 28, 2, 193, 224, 13, 28, 2, 192, 235, 13, 28, 2, 192, 159, 13, 28, 2, - 191, 166, 13, 43, 6, 65, 13, 43, 6, 250, 120, 13, 43, 6, 247, 193, 13, - 43, 6, 238, 127, 13, 43, 6, 71, 13, 43, 6, 233, 175, 13, 43, 6, 232, 51, - 13, 43, 6, 230, 116, 13, 43, 6, 68, 13, 43, 6, 223, 35, 13, 43, 6, 222, - 152, 13, 43, 6, 172, 13, 43, 6, 218, 168, 13, 43, 6, 215, 61, 13, 43, 6, - 74, 13, 43, 6, 210, 236, 13, 43, 6, 208, 104, 13, 43, 6, 146, 13, 43, 6, - 206, 8, 13, 43, 6, 200, 43, 13, 43, 6, 66, 13, 43, 6, 196, 12, 13, 43, 6, - 193, 224, 13, 43, 6, 192, 235, 13, 43, 6, 192, 159, 13, 43, 6, 191, 166, - 13, 43, 2, 65, 13, 43, 2, 250, 120, 13, 43, 2, 247, 193, 13, 43, 2, 238, - 127, 13, 43, 2, 71, 13, 43, 2, 233, 175, 13, 43, 2, 232, 51, 13, 43, 2, - 68, 13, 43, 2, 223, 35, 13, 43, 2, 222, 152, 13, 43, 2, 172, 13, 43, 2, - 218, 168, 13, 43, 2, 215, 61, 13, 43, 2, 74, 13, 43, 2, 210, 236, 13, 43, - 2, 208, 104, 13, 43, 2, 146, 13, 43, 2, 206, 8, 13, 43, 2, 200, 43, 13, - 43, 2, 66, 13, 43, 2, 196, 12, 13, 43, 2, 193, 224, 13, 43, 2, 192, 235, - 13, 43, 2, 192, 159, 13, 43, 2, 191, 166, 13, 28, 43, 6, 65, 13, 28, 43, - 6, 250, 120, 13, 28, 43, 6, 247, 193, 13, 28, 43, 6, 238, 127, 13, 28, - 43, 6, 71, 13, 28, 43, 6, 233, 175, 13, 28, 43, 6, 232, 51, 13, 28, 43, - 6, 230, 116, 13, 28, 43, 6, 68, 13, 28, 43, 6, 223, 35, 13, 28, 43, 6, - 222, 152, 13, 28, 43, 6, 172, 13, 28, 43, 6, 218, 168, 13, 28, 43, 6, - 215, 61, 13, 28, 43, 6, 74, 13, 28, 43, 6, 210, 236, 13, 28, 43, 6, 208, - 104, 13, 28, 43, 6, 146, 13, 28, 43, 6, 206, 8, 13, 28, 43, 6, 200, 43, - 13, 28, 43, 6, 66, 13, 28, 43, 6, 196, 12, 13, 28, 43, 6, 193, 224, 13, + 64, 19, 239, 63, 19, 239, 62, 19, 239, 61, 19, 239, 60, 19, 239, 59, 19, + 239, 58, 19, 239, 57, 19, 239, 56, 19, 239, 55, 19, 239, 54, 19, 239, 53, + 19, 239, 52, 19, 239, 51, 19, 239, 50, 19, 239, 49, 19, 239, 48, 19, 239, + 47, 19, 239, 46, 19, 239, 45, 19, 239, 44, 19, 239, 43, 19, 239, 42, 19, + 239, 41, 19, 239, 40, 19, 239, 39, 19, 239, 38, 19, 239, 37, 19, 239, 36, + 19, 239, 35, 19, 239, 34, 19, 239, 33, 19, 239, 32, 19, 239, 31, 19, 239, + 30, 19, 239, 29, 19, 239, 28, 19, 239, 27, 19, 239, 26, 19, 239, 25, 19, + 239, 24, 19, 239, 23, 19, 239, 22, 19, 239, 21, 19, 239, 20, 19, 239, 19, + 19, 239, 18, 19, 239, 17, 19, 239, 16, 40, 2, 27, 246, 190, 40, 2, 27, + 246, 189, 40, 2, 27, 246, 188, 40, 2, 27, 246, 187, 40, 2, 27, 246, 186, + 40, 2, 27, 246, 185, 40, 2, 27, 246, 184, 40, 2, 27, 246, 183, 40, 2, 27, + 246, 182, 40, 2, 27, 246, 181, 40, 2, 27, 246, 180, 40, 2, 27, 246, 179, + 40, 2, 27, 246, 178, 40, 2, 27, 246, 177, 40, 2, 27, 246, 176, 40, 2, 27, + 246, 175, 40, 2, 27, 246, 174, 40, 2, 27, 246, 173, 40, 2, 27, 246, 172, + 40, 2, 27, 246, 171, 40, 2, 27, 246, 170, 40, 2, 27, 246, 169, 40, 2, 27, + 246, 168, 40, 2, 27, 246, 167, 40, 2, 27, 246, 166, 40, 2, 27, 246, 165, + 40, 2, 27, 246, 164, 40, 2, 27, 246, 163, 40, 2, 27, 246, 162, 40, 2, 27, + 246, 161, 40, 2, 27, 246, 160, 40, 2, 27, 246, 159, 40, 2, 27, 246, 158, + 40, 2, 27, 246, 157, 40, 2, 27, 246, 156, 40, 2, 27, 246, 155, 40, 2, 27, + 246, 154, 40, 2, 27, 246, 153, 40, 2, 27, 246, 152, 40, 2, 27, 246, 151, + 40, 2, 27, 246, 150, 40, 2, 27, 246, 149, 40, 2, 27, 246, 148, 40, 2, 27, + 246, 147, 40, 2, 27, 246, 146, 40, 2, 27, 246, 145, 40, 2, 27, 246, 144, + 40, 2, 27, 246, 143, 40, 2, 27, 246, 142, 40, 2, 27, 246, 141, 40, 2, 27, + 246, 140, 40, 2, 27, 246, 139, 40, 2, 27, 246, 138, 40, 2, 27, 246, 137, + 40, 2, 27, 246, 136, 40, 2, 27, 246, 135, 40, 2, 27, 246, 134, 40, 2, 27, + 246, 133, 40, 2, 27, 246, 132, 40, 2, 27, 246, 131, 40, 2, 27, 246, 130, + 40, 2, 27, 246, 129, 40, 2, 27, 246, 128, 40, 2, 27, 246, 127, 40, 2, 27, + 246, 126, 40, 2, 27, 246, 125, 40, 2, 27, 246, 124, 40, 2, 27, 246, 123, + 40, 2, 27, 246, 122, 40, 2, 27, 246, 121, 40, 2, 27, 246, 120, 40, 2, 27, + 246, 119, 40, 2, 27, 246, 118, 40, 2, 27, 246, 117, 40, 2, 27, 246, 116, + 40, 2, 27, 246, 115, 40, 2, 27, 246, 114, 40, 2, 27, 246, 113, 40, 2, 27, + 246, 112, 40, 2, 27, 246, 111, 40, 2, 27, 246, 110, 40, 2, 27, 246, 109, + 40, 2, 27, 246, 108, 40, 2, 27, 246, 107, 40, 2, 27, 246, 106, 40, 2, 27, + 246, 105, 40, 2, 27, 246, 104, 40, 2, 27, 246, 103, 40, 2, 27, 246, 102, + 40, 2, 27, 246, 101, 40, 2, 27, 246, 100, 40, 2, 27, 246, 99, 40, 2, 27, + 246, 98, 40, 2, 27, 246, 97, 40, 2, 27, 246, 96, 40, 2, 27, 246, 95, 40, + 2, 27, 246, 94, 40, 2, 27, 246, 93, 40, 2, 27, 246, 92, 40, 2, 27, 246, + 91, 40, 2, 27, 246, 90, 40, 2, 27, 246, 89, 40, 2, 27, 246, 88, 40, 2, + 27, 246, 87, 40, 2, 27, 246, 86, 40, 2, 27, 246, 85, 40, 2, 27, 246, 84, + 40, 2, 27, 246, 83, 40, 2, 27, 246, 82, 40, 2, 27, 246, 81, 40, 2, 27, + 246, 80, 40, 2, 27, 246, 79, 40, 2, 27, 246, 78, 40, 2, 27, 246, 77, 40, + 2, 27, 246, 76, 40, 2, 27, 246, 75, 40, 2, 27, 246, 74, 40, 2, 27, 246, + 73, 40, 2, 27, 246, 72, 40, 2, 27, 246, 71, 40, 2, 27, 246, 70, 40, 2, + 27, 246, 69, 40, 2, 27, 246, 68, 40, 2, 27, 246, 67, 40, 2, 27, 246, 66, + 40, 2, 27, 246, 65, 40, 2, 27, 246, 64, 40, 2, 27, 246, 63, 40, 2, 27, + 246, 62, 40, 2, 27, 246, 61, 40, 2, 27, 246, 60, 40, 2, 27, 246, 59, 40, + 2, 27, 246, 58, 40, 2, 27, 246, 57, 40, 2, 27, 246, 56, 40, 2, 27, 246, + 55, 40, 2, 27, 246, 54, 40, 2, 27, 246, 53, 40, 2, 27, 246, 52, 40, 2, + 27, 246, 51, 40, 2, 27, 246, 50, 40, 2, 27, 246, 49, 40, 2, 27, 246, 48, + 40, 2, 27, 246, 47, 40, 2, 27, 246, 46, 40, 2, 27, 246, 45, 40, 2, 27, + 246, 44, 40, 2, 27, 246, 43, 40, 2, 27, 246, 42, 40, 2, 27, 246, 41, 40, + 2, 27, 246, 40, 40, 2, 27, 246, 39, 40, 2, 27, 246, 38, 40, 2, 27, 246, + 37, 40, 2, 27, 246, 36, 40, 2, 27, 246, 35, 40, 2, 27, 246, 34, 40, 2, + 27, 246, 33, 40, 2, 27, 246, 32, 40, 2, 27, 246, 31, 40, 2, 27, 246, 30, + 40, 2, 27, 246, 29, 40, 2, 27, 246, 28, 40, 2, 27, 246, 27, 40, 2, 27, + 246, 26, 40, 2, 27, 246, 25, 40, 2, 27, 246, 24, 40, 2, 27, 246, 23, 40, + 2, 27, 246, 22, 40, 2, 27, 246, 21, 40, 2, 27, 246, 20, 40, 2, 27, 246, + 19, 40, 2, 27, 246, 18, 40, 2, 27, 246, 17, 40, 2, 27, 246, 16, 40, 2, + 27, 246, 15, 40, 2, 27, 246, 14, 40, 2, 27, 246, 13, 40, 2, 27, 246, 12, + 40, 2, 27, 246, 11, 40, 2, 27, 246, 10, 40, 2, 27, 246, 9, 40, 2, 27, + 246, 8, 40, 2, 27, 246, 7, 40, 2, 27, 246, 6, 40, 2, 27, 246, 5, 40, 2, + 27, 246, 4, 40, 2, 27, 246, 3, 40, 2, 27, 246, 2, 40, 2, 27, 246, 1, 40, + 2, 27, 246, 0, 40, 2, 27, 245, 255, 40, 2, 27, 245, 254, 40, 2, 27, 245, + 253, 40, 2, 27, 245, 252, 40, 2, 27, 245, 251, 40, 2, 27, 245, 250, 40, + 2, 27, 245, 249, 40, 2, 27, 245, 248, 40, 2, 27, 245, 247, 40, 2, 27, + 245, 246, 40, 2, 27, 245, 245, 40, 2, 27, 245, 244, 40, 2, 27, 245, 243, + 40, 2, 27, 245, 242, 40, 2, 27, 245, 241, 40, 2, 27, 245, 240, 40, 2, 27, + 245, 239, 40, 2, 27, 245, 238, 40, 2, 27, 245, 237, 40, 2, 27, 245, 236, + 40, 2, 27, 245, 235, 40, 2, 27, 245, 234, 40, 2, 27, 245, 233, 40, 2, 27, + 245, 232, 40, 2, 27, 245, 231, 40, 2, 27, 245, 230, 40, 2, 27, 245, 229, + 40, 2, 27, 245, 228, 40, 2, 27, 245, 227, 40, 2, 27, 245, 226, 40, 2, 27, + 245, 225, 40, 2, 27, 245, 224, 40, 2, 27, 245, 223, 40, 2, 27, 245, 222, + 40, 2, 27, 245, 221, 40, 2, 27, 245, 220, 40, 2, 27, 245, 219, 40, 2, 27, + 245, 218, 40, 2, 27, 245, 217, 40, 2, 27, 245, 216, 40, 2, 27, 245, 215, + 40, 2, 27, 245, 214, 40, 2, 27, 245, 213, 40, 2, 27, 245, 212, 40, 2, 27, + 245, 211, 40, 2, 27, 245, 210, 40, 2, 27, 245, 209, 40, 2, 27, 245, 208, + 40, 2, 27, 245, 207, 40, 2, 27, 245, 206, 40, 2, 27, 245, 205, 40, 2, 27, + 245, 204, 40, 2, 27, 245, 203, 40, 2, 27, 245, 202, 40, 2, 27, 245, 201, + 40, 2, 27, 245, 200, 40, 2, 27, 245, 199, 40, 2, 27, 245, 198, 40, 2, 27, + 245, 197, 40, 2, 27, 245, 196, 40, 2, 27, 245, 195, 40, 2, 27, 245, 194, + 40, 2, 27, 245, 193, 40, 2, 27, 245, 192, 40, 2, 27, 245, 191, 40, 2, 27, + 245, 190, 40, 2, 27, 245, 189, 40, 2, 27, 245, 188, 40, 2, 27, 245, 187, + 40, 2, 27, 245, 186, 40, 2, 27, 245, 185, 40, 2, 27, 245, 184, 40, 2, 27, + 245, 183, 40, 2, 27, 245, 182, 40, 2, 27, 245, 181, 40, 2, 27, 245, 180, + 40, 2, 27, 245, 179, 40, 2, 27, 245, 178, 40, 2, 27, 245, 177, 40, 2, 27, + 245, 176, 40, 2, 27, 245, 175, 40, 2, 27, 245, 174, 40, 2, 27, 245, 173, + 40, 2, 27, 245, 172, 40, 2, 27, 245, 171, 40, 2, 27, 245, 170, 40, 2, 27, + 245, 169, 40, 2, 27, 245, 168, 40, 2, 27, 245, 167, 40, 2, 27, 245, 166, + 40, 2, 27, 245, 165, 40, 2, 27, 245, 164, 40, 2, 27, 245, 163, 40, 2, 27, + 245, 162, 40, 2, 27, 245, 161, 40, 2, 27, 245, 160, 40, 2, 27, 245, 159, + 40, 2, 27, 245, 158, 40, 2, 27, 245, 157, 40, 2, 27, 245, 156, 40, 2, 27, + 245, 155, 40, 2, 27, 245, 154, 40, 2, 27, 245, 153, 40, 2, 27, 245, 152, + 40, 2, 27, 245, 151, 40, 2, 27, 245, 150, 40, 2, 27, 245, 149, 40, 2, 27, + 245, 148, 40, 2, 27, 245, 147, 40, 2, 27, 245, 146, 40, 2, 27, 245, 145, + 40, 2, 27, 245, 144, 40, 2, 27, 245, 143, 40, 2, 27, 245, 142, 40, 2, 27, + 245, 141, 40, 2, 27, 245, 140, 40, 2, 27, 245, 139, 40, 2, 27, 245, 138, + 40, 2, 27, 245, 137, 40, 2, 27, 245, 136, 40, 2, 27, 245, 135, 40, 2, 27, + 245, 134, 40, 2, 27, 245, 133, 40, 2, 27, 245, 132, 40, 2, 27, 245, 131, + 40, 2, 27, 245, 130, 40, 2, 27, 245, 129, 40, 2, 27, 245, 128, 40, 2, 27, + 245, 127, 40, 2, 27, 245, 126, 40, 2, 27, 245, 125, 40, 2, 27, 245, 124, + 40, 2, 27, 245, 123, 40, 2, 27, 245, 122, 40, 2, 27, 245, 121, 40, 2, 27, + 245, 120, 40, 2, 27, 245, 119, 40, 2, 27, 245, 118, 40, 2, 27, 245, 117, + 40, 2, 27, 245, 116, 40, 2, 27, 245, 115, 40, 2, 27, 245, 114, 40, 2, 27, + 245, 113, 40, 2, 27, 245, 112, 40, 2, 27, 245, 111, 40, 2, 27, 245, 110, + 40, 2, 27, 245, 109, 40, 2, 27, 245, 108, 40, 2, 27, 245, 107, 40, 2, 27, + 245, 106, 40, 2, 27, 245, 105, 40, 2, 27, 245, 104, 40, 2, 27, 245, 103, + 40, 2, 27, 245, 102, 40, 2, 27, 245, 101, 40, 2, 27, 245, 100, 40, 2, 27, + 245, 99, 40, 2, 27, 245, 98, 40, 2, 27, 245, 97, 40, 2, 27, 245, 96, 40, + 2, 27, 245, 95, 40, 2, 27, 245, 94, 40, 2, 27, 245, 93, 40, 2, 27, 245, + 92, 40, 2, 27, 245, 91, 40, 2, 27, 245, 90, 40, 2, 27, 245, 89, 40, 2, + 27, 245, 88, 40, 2, 27, 245, 87, 40, 2, 27, 245, 86, 40, 2, 27, 245, 85, + 40, 2, 27, 245, 84, 40, 2, 27, 245, 83, 40, 2, 27, 245, 82, 40, 2, 27, + 245, 81, 40, 2, 27, 245, 80, 40, 2, 27, 245, 79, 40, 2, 27, 245, 78, 40, + 2, 27, 245, 77, 40, 2, 27, 245, 76, 40, 2, 27, 245, 75, 40, 2, 27, 245, + 74, 40, 2, 27, 245, 73, 40, 2, 27, 245, 72, 40, 2, 27, 245, 71, 40, 2, + 27, 245, 70, 40, 2, 27, 245, 69, 40, 2, 27, 245, 68, 40, 2, 27, 245, 67, + 40, 2, 27, 245, 66, 40, 2, 27, 245, 65, 40, 2, 27, 245, 64, 40, 2, 27, + 245, 63, 40, 2, 27, 245, 62, 40, 2, 27, 245, 61, 40, 2, 27, 245, 60, 40, + 2, 27, 245, 59, 40, 2, 27, 245, 58, 40, 2, 27, 245, 57, 40, 2, 27, 245, + 56, 40, 2, 27, 245, 55, 40, 2, 27, 245, 54, 40, 2, 27, 245, 53, 40, 2, + 27, 245, 52, 40, 2, 27, 245, 51, 40, 2, 27, 245, 50, 40, 2, 27, 245, 49, + 40, 2, 27, 245, 48, 40, 2, 27, 245, 47, 40, 2, 27, 245, 46, 40, 2, 27, + 245, 45, 40, 2, 27, 245, 44, 40, 2, 27, 245, 43, 40, 2, 27, 245, 42, 40, + 2, 27, 245, 41, 40, 2, 27, 245, 40, 40, 2, 27, 245, 39, 40, 2, 27, 245, + 38, 40, 2, 27, 245, 37, 40, 2, 27, 245, 36, 40, 2, 27, 245, 35, 40, 2, + 27, 245, 34, 40, 2, 27, 245, 33, 40, 2, 27, 245, 32, 40, 2, 27, 245, 31, + 40, 2, 27, 245, 30, 40, 2, 27, 245, 29, 40, 2, 27, 245, 28, 40, 2, 27, + 245, 27, 40, 2, 27, 245, 26, 40, 2, 27, 245, 25, 40, 2, 27, 245, 24, 40, + 2, 27, 245, 23, 40, 2, 27, 245, 22, 40, 2, 27, 245, 21, 40, 2, 27, 245, + 20, 40, 2, 27, 245, 19, 40, 2, 27, 245, 18, 40, 2, 27, 245, 17, 40, 2, + 27, 245, 16, 40, 2, 27, 245, 15, 40, 2, 27, 245, 14, 40, 2, 27, 245, 13, + 40, 2, 27, 245, 12, 40, 2, 27, 245, 11, 40, 2, 27, 245, 10, 40, 2, 27, + 245, 9, 40, 2, 27, 245, 8, 40, 2, 27, 245, 7, 40, 2, 27, 245, 6, 40, 2, + 27, 245, 5, 40, 2, 27, 245, 4, 40, 2, 27, 245, 3, 40, 2, 27, 245, 2, 40, + 2, 27, 245, 1, 40, 2, 27, 245, 0, 40, 2, 27, 244, 255, 40, 2, 27, 244, + 254, 40, 2, 27, 244, 253, 40, 2, 27, 244, 252, 40, 2, 27, 244, 251, 40, + 2, 27, 244, 250, 40, 2, 27, 244, 249, 40, 2, 27, 244, 248, 40, 2, 27, + 244, 247, 40, 2, 27, 244, 246, 40, 2, 27, 244, 245, 40, 2, 27, 244, 244, + 40, 2, 27, 244, 243, 40, 2, 27, 244, 242, 40, 2, 27, 244, 241, 40, 2, 27, + 244, 240, 40, 2, 27, 244, 239, 40, 2, 27, 244, 238, 40, 2, 27, 244, 237, + 40, 2, 27, 244, 236, 40, 2, 27, 244, 235, 40, 2, 27, 244, 234, 40, 2, 27, + 244, 233, 71, 1, 216, 19, 198, 72, 71, 1, 216, 19, 198, 71, 71, 1, 216, + 19, 198, 70, 71, 1, 216, 19, 198, 69, 71, 1, 216, 19, 198, 67, 71, 1, + 216, 19, 198, 66, 71, 1, 216, 19, 214, 197, 198, 73, 71, 1, 216, 19, 214, + 197, 198, 72, 71, 1, 216, 19, 214, 197, 198, 71, 71, 1, 216, 19, 214, + 197, 198, 70, 71, 1, 216, 19, 214, 197, 198, 69, 71, 1, 216, 19, 214, + 197, 198, 67, 71, 1, 216, 19, 214, 197, 198, 66, 71, 1, 250, 220, 73, + 229, 88, 1, 250, 220, 192, 80, 61, 1, 255, 154, 61, 1, 255, 153, 61, 1, + 255, 152, 61, 1, 255, 148, 61, 1, 228, 43, 61, 1, 228, 42, 61, 1, 228, + 41, 61, 1, 228, 40, 61, 1, 196, 227, 61, 1, 196, 226, 61, 1, 196, 225, + 61, 1, 196, 224, 61, 1, 196, 223, 61, 1, 234, 225, 61, 1, 234, 224, 61, + 1, 234, 223, 61, 1, 234, 222, 61, 1, 234, 221, 61, 1, 212, 1, 61, 1, 212, + 0, 61, 1, 211, 255, 61, 1, 222, 114, 61, 1, 222, 111, 61, 1, 222, 110, + 61, 1, 222, 109, 61, 1, 222, 108, 61, 1, 222, 107, 61, 1, 222, 106, 61, + 1, 222, 105, 61, 1, 222, 104, 61, 1, 222, 113, 61, 1, 222, 112, 61, 1, + 222, 103, 61, 1, 221, 141, 61, 1, 221, 140, 61, 1, 221, 139, 61, 1, 221, + 138, 61, 1, 221, 137, 61, 1, 221, 136, 61, 1, 221, 135, 61, 1, 221, 134, + 61, 1, 220, 207, 61, 1, 220, 206, 61, 1, 220, 205, 61, 1, 220, 204, 61, + 1, 220, 203, 61, 1, 220, 202, 61, 1, 220, 201, 61, 1, 221, 252, 61, 1, + 221, 251, 61, 1, 221, 250, 61, 1, 221, 249, 61, 1, 221, 248, 61, 1, 221, + 247, 61, 1, 221, 42, 61, 1, 221, 41, 61, 1, 221, 40, 61, 1, 221, 39, 61, + 1, 205, 201, 61, 1, 205, 200, 61, 1, 205, 199, 61, 1, 205, 198, 61, 1, + 205, 197, 61, 1, 205, 196, 61, 1, 205, 195, 61, 1, 205, 194, 61, 1, 202, + 216, 61, 1, 202, 215, 61, 1, 202, 214, 61, 1, 202, 213, 61, 1, 202, 212, + 61, 1, 202, 211, 61, 1, 200, 254, 61, 1, 200, 253, 61, 1, 200, 252, 61, + 1, 200, 251, 61, 1, 200, 250, 61, 1, 200, 249, 61, 1, 200, 248, 61, 1, + 200, 247, 61, 1, 205, 62, 61, 1, 205, 61, 61, 1, 205, 60, 61, 1, 205, 59, + 61, 1, 205, 58, 61, 1, 202, 40, 61, 1, 202, 39, 61, 1, 202, 38, 61, 1, + 202, 37, 61, 1, 202, 36, 61, 1, 202, 35, 61, 1, 202, 34, 61, 1, 199, 246, + 61, 1, 199, 245, 61, 1, 199, 244, 61, 1, 199, 243, 61, 1, 198, 187, 61, + 1, 198, 186, 61, 1, 198, 185, 61, 1, 198, 184, 61, 1, 198, 183, 61, 1, + 198, 182, 61, 1, 198, 181, 61, 1, 197, 89, 61, 1, 197, 88, 61, 1, 197, + 87, 61, 1, 197, 86, 61, 1, 197, 85, 61, 1, 199, 139, 61, 1, 199, 138, 61, + 1, 199, 137, 61, 1, 199, 136, 61, 1, 199, 135, 61, 1, 199, 134, 61, 1, + 199, 133, 61, 1, 199, 132, 61, 1, 199, 131, 61, 1, 198, 93, 61, 1, 198, + 92, 61, 1, 198, 91, 61, 1, 198, 90, 61, 1, 198, 89, 61, 1, 198, 88, 61, + 1, 198, 87, 61, 1, 214, 248, 61, 1, 214, 247, 61, 1, 214, 246, 61, 1, + 214, 245, 61, 1, 214, 244, 61, 1, 214, 243, 61, 1, 214, 242, 61, 1, 214, + 241, 61, 1, 214, 240, 61, 1, 213, 204, 61, 1, 213, 203, 61, 1, 213, 202, + 61, 1, 213, 201, 61, 1, 213, 200, 61, 1, 213, 199, 61, 1, 213, 198, 61, + 1, 213, 197, 61, 1, 212, 164, 61, 1, 212, 163, 61, 1, 212, 162, 61, 1, + 214, 106, 61, 1, 214, 105, 61, 1, 214, 104, 61, 1, 214, 103, 61, 1, 214, + 102, 61, 1, 214, 101, 61, 1, 214, 100, 61, 1, 213, 29, 61, 1, 213, 28, + 61, 1, 213, 27, 61, 1, 213, 26, 61, 1, 213, 25, 61, 1, 230, 71, 61, 1, + 230, 68, 61, 1, 230, 67, 61, 1, 230, 66, 61, 1, 230, 65, 61, 1, 230, 64, + 61, 1, 230, 63, 61, 1, 230, 62, 61, 1, 230, 61, 61, 1, 230, 70, 61, 1, + 230, 69, 61, 1, 229, 125, 61, 1, 229, 124, 61, 1, 229, 123, 61, 1, 229, + 122, 61, 1, 229, 121, 61, 1, 229, 120, 61, 1, 229, 119, 61, 1, 228, 127, + 61, 1, 228, 126, 61, 1, 228, 125, 61, 1, 229, 212, 61, 1, 229, 211, 61, + 1, 229, 210, 61, 1, 229, 209, 61, 1, 229, 208, 61, 1, 229, 207, 61, 1, + 229, 206, 61, 1, 228, 246, 61, 1, 228, 245, 61, 1, 228, 244, 61, 1, 228, + 243, 61, 1, 228, 242, 61, 1, 228, 241, 61, 1, 228, 240, 61, 1, 228, 239, + 61, 1, 217, 138, 61, 1, 217, 137, 61, 1, 217, 136, 61, 1, 217, 135, 61, + 1, 217, 134, 61, 1, 217, 133, 61, 1, 217, 132, 61, 1, 216, 80, 61, 1, + 216, 79, 61, 1, 216, 78, 61, 1, 216, 77, 61, 1, 216, 76, 61, 1, 216, 75, + 61, 1, 216, 74, 61, 1, 215, 138, 61, 1, 215, 137, 61, 1, 215, 136, 61, 1, + 215, 135, 61, 1, 216, 212, 61, 1, 216, 211, 61, 1, 216, 210, 61, 1, 215, + 250, 61, 1, 215, 249, 61, 1, 215, 248, 61, 1, 215, 247, 61, 1, 215, 246, + 61, 1, 215, 245, 61, 1, 192, 148, 61, 1, 192, 147, 61, 1, 192, 146, 61, + 1, 192, 145, 61, 1, 192, 144, 61, 1, 192, 141, 61, 1, 191, 224, 61, 1, + 191, 223, 61, 1, 191, 222, 61, 1, 191, 221, 61, 1, 192, 11, 61, 1, 192, + 10, 61, 1, 192, 9, 61, 1, 192, 8, 61, 1, 192, 7, 61, 1, 192, 6, 61, 1, + 207, 180, 61, 1, 207, 179, 61, 1, 207, 178, 61, 1, 207, 177, 61, 1, 206, + 251, 61, 1, 206, 250, 61, 1, 206, 249, 61, 1, 206, 248, 61, 1, 206, 247, + 61, 1, 206, 246, 61, 1, 206, 245, 61, 1, 206, 62, 61, 1, 206, 61, 61, 1, + 206, 60, 61, 1, 206, 59, 61, 1, 206, 58, 61, 1, 206, 57, 61, 1, 207, 107, + 61, 1, 207, 106, 61, 1, 207, 105, 61, 1, 207, 104, 61, 1, 206, 156, 61, + 1, 206, 155, 61, 1, 206, 154, 61, 1, 206, 153, 61, 1, 206, 152, 61, 1, + 206, 151, 61, 1, 193, 186, 61, 1, 193, 185, 61, 1, 193, 184, 61, 1, 193, + 183, 61, 1, 193, 182, 61, 1, 193, 83, 61, 1, 193, 82, 61, 1, 193, 81, 61, + 1, 193, 80, 61, 1, 193, 79, 61, 1, 193, 122, 61, 1, 193, 121, 61, 1, 193, + 120, 61, 1, 193, 119, 61, 1, 193, 47, 61, 1, 193, 46, 61, 1, 193, 45, 61, + 1, 193, 44, 61, 1, 193, 43, 61, 1, 193, 42, 61, 1, 193, 41, 61, 1, 215, + 44, 61, 1, 215, 43, 229, 88, 1, 250, 220, 193, 0, 71, 1, 250, 220, 192, + 33, 71, 1, 250, 220, 192, 80, 71, 1, 250, 220, 193, 0, 229, 88, 1, 2, + 193, 84, 229, 88, 1, 2, 193, 123, 229, 88, 1, 2, 193, 48, 71, 1, 2, 193, + 84, 71, 1, 2, 193, 123, 71, 1, 2, 193, 48, 71, 1, 2, 215, 47, 46, 244, + 232, 46, 244, 231, 46, 244, 230, 46, 244, 229, 46, 244, 228, 46, 244, + 227, 46, 244, 226, 46, 244, 225, 46, 244, 224, 46, 244, 223, 46, 244, + 222, 46, 244, 221, 46, 244, 220, 46, 244, 219, 46, 244, 218, 46, 244, + 217, 46, 244, 216, 46, 244, 215, 46, 244, 214, 46, 244, 213, 46, 244, + 212, 46, 244, 211, 46, 244, 210, 46, 244, 209, 46, 244, 208, 46, 244, + 207, 46, 244, 206, 46, 244, 205, 46, 244, 204, 46, 244, 203, 46, 244, + 202, 46, 244, 201, 46, 244, 200, 46, 244, 199, 46, 244, 198, 46, 244, + 197, 46, 244, 196, 46, 244, 195, 46, 244, 194, 46, 244, 193, 46, 244, + 192, 46, 244, 191, 46, 244, 190, 46, 244, 189, 46, 244, 188, 46, 244, + 187, 46, 244, 186, 46, 244, 185, 46, 244, 184, 46, 244, 183, 46, 244, + 182, 46, 244, 181, 46, 244, 180, 46, 244, 179, 46, 244, 178, 46, 244, + 177, 46, 244, 176, 46, 244, 175, 46, 244, 174, 46, 244, 173, 46, 244, + 172, 46, 244, 171, 46, 244, 170, 46, 244, 169, 46, 244, 168, 46, 244, + 167, 46, 244, 166, 46, 244, 165, 46, 244, 164, 46, 244, 163, 46, 244, + 162, 46, 244, 161, 46, 244, 160, 46, 244, 159, 46, 244, 158, 46, 244, + 157, 46, 244, 156, 46, 244, 155, 46, 244, 154, 46, 244, 153, 46, 244, + 152, 46, 244, 151, 46, 244, 150, 46, 244, 149, 46, 244, 148, 46, 244, + 147, 46, 244, 146, 46, 244, 145, 46, 244, 144, 46, 244, 143, 46, 244, + 142, 46, 244, 141, 46, 244, 140, 46, 244, 139, 46, 244, 138, 46, 244, + 137, 46, 244, 136, 46, 244, 135, 46, 244, 134, 46, 244, 133, 46, 244, + 132, 46, 244, 131, 46, 244, 130, 46, 244, 129, 46, 244, 128, 46, 244, + 127, 46, 244, 126, 46, 244, 125, 46, 244, 124, 46, 244, 123, 46, 244, + 122, 46, 244, 121, 46, 244, 120, 46, 244, 119, 46, 244, 118, 46, 244, + 117, 46, 244, 116, 46, 244, 115, 46, 244, 114, 46, 244, 113, 46, 244, + 112, 46, 244, 111, 46, 244, 110, 46, 244, 109, 46, 244, 108, 46, 244, + 107, 46, 244, 106, 46, 244, 105, 46, 244, 104, 46, 244, 103, 46, 244, + 102, 46, 244, 101, 46, 244, 100, 46, 244, 99, 46, 244, 98, 46, 244, 97, + 46, 244, 96, 46, 244, 95, 46, 244, 94, 46, 244, 93, 46, 244, 92, 46, 244, + 91, 46, 244, 90, 46, 244, 89, 46, 244, 88, 46, 244, 87, 46, 244, 86, 46, + 244, 85, 46, 244, 84, 46, 244, 83, 46, 244, 82, 46, 244, 81, 46, 244, 80, + 46, 244, 79, 46, 244, 78, 46, 244, 77, 46, 244, 76, 46, 244, 75, 46, 244, + 74, 46, 244, 73, 46, 244, 72, 46, 244, 71, 46, 244, 70, 46, 244, 69, 46, + 244, 68, 46, 244, 67, 46, 244, 66, 46, 244, 65, 46, 244, 64, 46, 244, 63, + 46, 244, 62, 46, 244, 61, 46, 244, 60, 46, 244, 59, 46, 244, 58, 46, 244, + 57, 46, 244, 56, 46, 244, 55, 46, 244, 54, 46, 244, 53, 46, 244, 52, 46, + 244, 51, 46, 244, 50, 46, 244, 49, 46, 244, 48, 46, 244, 47, 46, 244, 46, + 46, 244, 45, 46, 244, 44, 46, 244, 43, 46, 244, 42, 46, 244, 41, 46, 244, + 40, 46, 244, 39, 46, 244, 38, 46, 244, 37, 46, 244, 36, 46, 244, 35, 46, + 244, 34, 46, 244, 33, 46, 244, 32, 46, 244, 31, 46, 244, 30, 46, 244, 29, + 46, 244, 28, 46, 244, 27, 46, 244, 26, 46, 244, 25, 46, 244, 24, 46, 244, + 23, 46, 244, 22, 46, 244, 21, 46, 244, 20, 46, 244, 19, 46, 244, 18, 46, + 244, 17, 46, 244, 16, 46, 244, 15, 46, 244, 14, 46, 244, 13, 46, 244, 12, + 46, 244, 11, 46, 244, 10, 46, 244, 9, 46, 244, 8, 46, 244, 7, 46, 244, 6, + 46, 244, 5, 46, 244, 4, 46, 244, 3, 46, 244, 2, 46, 244, 1, 46, 244, 0, + 46, 243, 255, 46, 243, 254, 46, 243, 253, 46, 243, 252, 46, 243, 251, 46, + 243, 250, 46, 243, 249, 46, 243, 248, 46, 243, 247, 46, 243, 246, 46, + 243, 245, 46, 243, 244, 46, 243, 243, 46, 243, 242, 46, 243, 241, 46, + 243, 240, 46, 243, 239, 46, 243, 238, 46, 243, 237, 46, 243, 236, 46, + 243, 235, 46, 243, 234, 46, 243, 233, 46, 243, 232, 46, 243, 231, 46, + 243, 230, 46, 243, 229, 46, 243, 228, 46, 243, 227, 46, 243, 226, 46, + 243, 225, 46, 243, 224, 46, 243, 223, 46, 243, 222, 46, 243, 221, 46, + 243, 220, 46, 243, 219, 46, 243, 218, 46, 243, 217, 46, 243, 216, 46, + 243, 215, 46, 243, 214, 46, 243, 213, 46, 243, 212, 46, 243, 211, 46, + 243, 210, 46, 243, 209, 46, 243, 208, 46, 243, 207, 46, 243, 206, 46, + 243, 205, 46, 243, 204, 46, 243, 203, 46, 243, 202, 46, 243, 201, 46, + 243, 200, 46, 243, 199, 46, 243, 198, 46, 243, 197, 46, 243, 196, 46, + 243, 195, 46, 243, 194, 46, 243, 193, 46, 243, 192, 46, 243, 191, 46, + 243, 190, 46, 243, 189, 46, 243, 188, 46, 243, 187, 46, 243, 186, 46, + 243, 185, 46, 243, 184, 46, 243, 183, 46, 243, 182, 46, 243, 181, 46, + 243, 180, 46, 243, 179, 46, 243, 178, 46, 243, 177, 46, 243, 176, 46, + 243, 175, 46, 243, 174, 46, 243, 173, 46, 243, 172, 46, 243, 171, 46, + 243, 170, 46, 243, 169, 46, 243, 168, 46, 243, 167, 46, 243, 166, 46, + 243, 165, 46, 243, 164, 46, 243, 163, 46, 243, 162, 46, 243, 161, 46, + 243, 160, 46, 243, 159, 46, 243, 158, 46, 243, 157, 46, 243, 156, 46, + 243, 155, 46, 243, 154, 46, 243, 153, 46, 243, 152, 46, 243, 151, 46, + 243, 150, 46, 243, 149, 46, 243, 148, 46, 243, 147, 46, 243, 146, 46, + 243, 145, 46, 243, 144, 46, 243, 143, 46, 243, 142, 46, 243, 141, 46, + 243, 140, 46, 243, 139, 46, 243, 138, 46, 243, 137, 46, 243, 136, 46, + 243, 135, 46, 243, 134, 46, 243, 133, 46, 243, 132, 46, 243, 131, 46, + 243, 130, 46, 243, 129, 46, 243, 128, 46, 243, 127, 46, 243, 126, 46, + 243, 125, 46, 243, 124, 46, 243, 123, 46, 243, 122, 46, 243, 121, 46, + 243, 120, 46, 243, 119, 46, 243, 118, 46, 243, 117, 46, 243, 116, 46, + 243, 115, 46, 243, 114, 46, 243, 113, 46, 243, 112, 46, 243, 111, 46, + 243, 110, 46, 243, 109, 46, 243, 108, 46, 243, 107, 46, 243, 106, 46, + 243, 105, 46, 243, 104, 46, 243, 103, 46, 243, 102, 46, 243, 101, 46, + 243, 100, 46, 243, 99, 46, 243, 98, 46, 243, 97, 46, 243, 96, 46, 243, + 95, 46, 243, 94, 46, 243, 93, 124, 1, 230, 83, 124, 1, 192, 235, 124, 1, + 210, 226, 124, 1, 200, 39, 124, 1, 233, 134, 124, 1, 222, 125, 124, 1, + 170, 124, 1, 250, 70, 124, 1, 238, 80, 124, 1, 196, 8, 124, 1, 232, 14, + 124, 1, 148, 124, 1, 210, 227, 215, 47, 124, 1, 238, 81, 206, 3, 124, 1, + 233, 135, 215, 47, 124, 1, 222, 126, 218, 147, 124, 1, 207, 217, 206, 3, + 124, 1, 199, 46, 124, 1, 202, 77, 237, 24, 124, 1, 237, 24, 124, 1, 221, + 78, 124, 1, 202, 77, 223, 7, 124, 1, 229, 80, 124, 1, 219, 136, 124, 1, + 207, 2, 124, 1, 218, 147, 124, 1, 215, 47, 124, 1, 223, 7, 124, 1, 206, + 3, 124, 1, 218, 148, 215, 47, 124, 1, 215, 48, 218, 147, 124, 1, 223, 8, + 218, 147, 124, 1, 206, 4, 223, 7, 124, 1, 218, 148, 4, 236, 96, 124, 1, + 215, 48, 4, 236, 96, 124, 1, 223, 8, 4, 236, 96, 124, 1, 223, 8, 4, 183, + 223, 90, 24, 56, 124, 1, 206, 4, 4, 236, 96, 124, 1, 206, 4, 4, 75, 60, + 124, 1, 218, 148, 206, 3, 124, 1, 215, 48, 206, 3, 124, 1, 223, 8, 206, + 3, 124, 1, 206, 4, 206, 3, 124, 1, 218, 148, 215, 48, 206, 3, 124, 1, + 215, 48, 218, 148, 206, 3, 124, 1, 223, 8, 218, 148, 206, 3, 124, 1, 206, + 4, 223, 8, 206, 3, 124, 1, 223, 8, 206, 4, 4, 236, 96, 124, 1, 223, 8, + 215, 47, 124, 1, 223, 8, 215, 48, 206, 3, 124, 1, 206, 4, 200, 39, 124, + 1, 206, 4, 200, 40, 148, 124, 1, 206, 4, 210, 226, 124, 1, 206, 4, 210, + 227, 148, 124, 1, 200, 40, 206, 3, 124, 1, 200, 40, 207, 217, 206, 3, + 124, 1, 193, 221, 124, 1, 193, 95, 124, 1, 193, 222, 148, 124, 1, 206, 4, + 215, 47, 124, 1, 206, 4, 218, 147, 124, 1, 222, 126, 207, 217, 206, 3, + 124, 1, 232, 15, 207, 217, 206, 3, 124, 1, 206, 4, 222, 125, 124, 1, 206, + 4, 222, 126, 148, 124, 1, 65, 124, 1, 202, 77, 210, 240, 124, 1, 211, + 169, 124, 1, 74, 124, 1, 251, 16, 124, 1, 70, 124, 1, 73, 124, 1, 223, + 197, 124, 1, 203, 35, 70, 124, 1, 196, 135, 124, 1, 234, 145, 124, 1, + 202, 77, 234, 130, 124, 1, 206, 130, 70, 124, 1, 202, 77, 234, 145, 124, + 1, 177, 70, 124, 1, 192, 80, 124, 1, 69, 124, 1, 233, 201, 124, 1, 192, + 182, 124, 1, 126, 215, 47, 124, 1, 177, 69, 124, 1, 206, 130, 69, 124, 1, + 196, 137, 124, 1, 202, 77, 69, 124, 1, 211, 73, 124, 1, 210, 240, 124, 1, + 211, 9, 124, 1, 193, 187, 124, 1, 193, 48, 124, 1, 193, 84, 124, 1, 193, + 110, 124, 1, 193, 14, 124, 1, 214, 200, 69, 124, 1, 214, 200, 74, 124, 1, + 214, 200, 70, 124, 1, 214, 200, 65, 124, 1, 209, 247, 251, 81, 124, 1, + 209, 247, 251, 98, 124, 1, 202, 77, 234, 61, 124, 1, 202, 77, 251, 81, + 124, 1, 202, 77, 211, 93, 124, 1, 121, 218, 147, 124, 251, 208, 45, 228, + 209, 205, 53, 124, 251, 208, 216, 68, 228, 209, 205, 53, 124, 251, 208, + 50, 228, 209, 205, 53, 124, 251, 208, 131, 81, 205, 53, 124, 251, 208, + 216, 68, 81, 205, 53, 124, 251, 208, 136, 81, 205, 53, 124, 251, 208, + 250, 120, 205, 53, 124, 251, 208, 250, 120, 219, 191, 205, 53, 124, 251, + 208, 250, 120, 199, 183, 124, 251, 208, 250, 120, 199, 210, 124, 251, + 208, 250, 120, 234, 227, 106, 124, 251, 208, 250, 120, 228, 44, 106, 124, + 251, 208, 250, 120, 199, 184, 106, 124, 251, 208, 136, 251, 250, 124, + 251, 208, 136, 198, 167, 251, 250, 124, 251, 208, 136, 230, 176, 124, + 251, 208, 136, 177, 230, 176, 124, 251, 208, 136, 236, 96, 124, 251, 208, + 136, 242, 218, 124, 251, 208, 136, 219, 88, 124, 251, 208, 136, 193, 136, + 124, 251, 208, 136, 195, 132, 124, 251, 208, 131, 251, 250, 124, 251, + 208, 131, 198, 167, 251, 250, 124, 251, 208, 131, 230, 176, 124, 251, + 208, 131, 177, 230, 176, 124, 251, 208, 131, 236, 96, 124, 251, 208, 131, + 242, 218, 124, 251, 208, 131, 219, 88, 124, 251, 208, 131, 193, 136, 124, + 251, 208, 131, 195, 132, 124, 251, 208, 131, 55, 124, 3, 186, 4, 238, + 170, 124, 199, 4, 1, 205, 29, 124, 54, 77, 124, 208, 145, 243, 30, 232, + 42, 201, 58, 203, 22, 232, 106, 1, 210, 248, 203, 22, 232, 106, 238, 237, + 210, 248, 203, 22, 232, 106, 143, 201, 73, 203, 22, 232, 106, 132, 201, + 73, 97, 33, 87, 230, 206, 213, 146, 206, 4, 220, 227, 211, 94, 219, 200, + 97, 33, 87, 213, 146, 206, 4, 220, 227, 211, 94, 219, 200, 97, 33, 87, + 197, 158, 211, 94, 219, 200, 97, 33, 87, 230, 206, 213, 146, 211, 94, + 219, 200, 97, 33, 87, 213, 146, 211, 94, 219, 200, 97, 33, 87, 201, 174, + 211, 94, 219, 200, 97, 33, 87, 217, 74, 208, 252, 211, 94, 219, 200, 97, + 33, 87, 208, 252, 211, 94, 219, 200, 97, 33, 87, 193, 228, 211, 94, 219, + 200, 97, 33, 87, 217, 74, 208, 252, 206, 4, 221, 157, 211, 94, 219, 200, + 97, 33, 87, 208, 252, 206, 4, 221, 157, 211, 94, 219, 200, 97, 33, 87, + 193, 228, 206, 4, 221, 157, 211, 94, 219, 200, 97, 33, 87, 230, 206, 213, + 146, 206, 4, 220, 227, 211, 94, 187, 97, 33, 87, 213, 146, 206, 4, 220, + 227, 211, 94, 187, 97, 33, 87, 197, 158, 211, 94, 187, 97, 33, 87, 230, + 206, 213, 146, 211, 94, 187, 97, 33, 87, 213, 146, 211, 94, 187, 97, 33, + 87, 201, 174, 211, 94, 187, 97, 33, 87, 217, 74, 208, 252, 211, 94, 187, + 97, 33, 87, 208, 252, 211, 94, 187, 97, 33, 87, 193, 228, 211, 94, 187, + 97, 33, 87, 217, 74, 208, 252, 206, 4, 221, 157, 211, 94, 187, 97, 33, + 87, 208, 252, 206, 4, 221, 157, 211, 94, 187, 97, 33, 87, 193, 228, 206, + 4, 221, 157, 211, 94, 187, 97, 33, 87, 197, 158, 206, 4, 220, 226, 97, + 33, 87, 217, 74, 208, 252, 206, 4, 220, 226, 97, 33, 87, 201, 44, 217, + 74, 208, 251, 97, 33, 87, 208, 252, 206, 4, 220, 226, 97, 33, 87, 208, + 252, 201, 43, 97, 33, 87, 193, 228, 206, 4, 220, 226, 97, 33, 87, 217, + 74, 208, 252, 201, 43, 97, 33, 87, 230, 206, 193, 227, 97, 33, 87, 191, + 83, 97, 33, 87, 211, 93, 97, 33, 87, 207, 119, 97, 33, 87, 198, 152, 97, + 33, 87, 248, 35, 97, 33, 87, 196, 152, 97, 33, 87, 209, 58, 97, 33, 87, + 218, 253, 97, 33, 87, 220, 176, 97, 33, 87, 222, 88, 97, 33, 87, 191, 74, + 97, 33, 87, 202, 100, 97, 33, 87, 207, 112, 97, 33, 87, 220, 229, 211, + 94, 219, 200, 97, 33, 198, 75, 207, 132, 87, 215, 146, 97, 33, 198, 75, + 207, 132, 87, 200, 149, 97, 33, 198, 75, 207, 132, 87, 197, 242, 97, 33, + 87, 191, 120, 97, 33, 87, 237, 60, 191, 120, 97, 33, 87, 211, 15, 97, 33, + 87, 209, 60, 97, 33, 87, 209, 61, 4, 81, 105, 97, 33, 87, 243, 86, 97, + 33, 87, 243, 87, 209, 38, 97, 33, 87, 211, 161, 97, 33, 87, 202, 5, 212, + 236, 97, 33, 87, 198, 84, 97, 33, 87, 235, 4, 97, 33, 250, 119, 81, 211, + 98, 97, 33, 87, 238, 116, 211, 98, 97, 33, 87, 220, 228, 97, 33, 110, + 198, 75, 207, 132, 223, 116, 97, 208, 196, 59, 219, 143, 97, 208, 196, + 59, 219, 142, 97, 208, 196, 59, 236, 188, 232, 155, 97, 208, 196, 59, + 220, 228, 97, 208, 196, 59, 206, 139, 97, 161, 220, 232, 97, 161, 220, + 233, 198, 151, 97, 161, 210, 112, 97, 161, 235, 12, 196, 9, 243, 65, 97, + 161, 221, 66, 97, 161, 191, 105, 97, 161, 201, 56, 97, 161, 201, 57, 206, + 4, 211, 151, 97, 161, 210, 1, 97, 161, 210, 2, 214, 82, 97, 161, 201, 57, + 4, 202, 5, 212, 236, 97, 161, 243, 64, 97, 161, 210, 176, 97, 161, 191, + 103, 97, 161, 230, 212, 248, 34, 97, 161, 230, 212, 198, 151, 97, 161, + 230, 212, 215, 144, 97, 161, 230, 212, 200, 148, 97, 161, 230, 212, 197, + 241, 97, 161, 194, 250, 208, 176, 97, 161, 194, 250, 215, 147, 97, 161, + 194, 250, 200, 150, 97, 161, 194, 250, 197, 243, 97, 161, 194, 250, 221, + 61, 208, 176, 97, 161, 194, 250, 221, 61, 215, 147, 97, 161, 194, 250, + 221, 61, 200, 150, 97, 161, 194, 250, 221, 61, 197, 243, 97, 161, 54, + 191, 103, 97, 161, 207, 13, 243, 64, 97, 161, 237, 46, 97, 161, 221, 182, + 97, 161, 243, 86, 97, 161, 209, 60, 97, 161, 202, 108, 215, 147, 97, 161, + 202, 108, 200, 150, 97, 161, 202, 108, 197, 243, 97, 161, 202, 108, 198, + 152, 97, 161, 237, 60, 221, 66, 97, 161, 202, 108, 221, 61, 200, 150, 97, + 161, 202, 108, 221, 65, 97, 161, 202, 108, 221, 61, 198, 152, 97, 161, + 202, 108, 235, 9, 208, 176, 97, 161, 202, 108, 235, 9, 200, 150, 97, 161, + 202, 108, 235, 9, 214, 82, 97, 161, 202, 108, 235, 9, 221, 60, 97, 161, + 202, 67, 97, 161, 202, 68, 206, 4, 191, 101, 97, 161, 202, 68, 191, 110, + 97, 161, 202, 68, 206, 4, 220, 226, 97, 161, 220, 228, 97, 161, 206, 139, + 97, 161, 232, 187, 97, 161, 221, 35, 97, 161, 191, 8, 97, 161, 201, 85, + 97, 161, 201, 86, 206, 4, 191, 101, 97, 161, 201, 86, 206, 4, 220, 226, + 97, 161, 201, 86, 206, 4, 191, 102, 228, 44, 220, 226, 97, 161, 201, 86, + 206, 4, 220, 227, 228, 44, 191, 101, 97, 161, 201, 86, 191, 111, 97, 161, + 201, 86, 191, 112, 206, 4, 191, 101, 97, 161, 201, 86, 206, 4, 206, 138, + 97, 161, 201, 86, 206, 4, 235, 3, 191, 100, 97, 161, 201, 86, 206, 4, + 191, 102, 228, 44, 209, 59, 97, 161, 209, 40, 97, 161, 201, 86, 214, 82, + 97, 161, 201, 35, 208, 176, 97, 161, 201, 35, 215, 145, 97, 161, 201, 35, + 220, 225, 97, 161, 201, 35, 209, 36, 97, 161, 201, 35, 208, 254, 97, 161, + 201, 35, 214, 82, 97, 161, 201, 35, 221, 63, 97, 161, 201, 35, 221, 65, + 97, 161, 201, 35, 198, 153, 208, 123, 97, 161, 201, 35, 235, 8, 97, 161, + 201, 35, 235, 7, 97, 161, 201, 35, 235, 5, 97, 161, 201, 35, 235, 9, 221, + 60, 97, 161, 201, 35, 235, 6, 221, 60, 97, 161, 201, 35, 230, 162, 4, + 202, 165, 191, 103, 97, 161, 201, 35, 230, 158, 4, 202, 165, 191, 103, + 97, 161, 201, 35, 230, 161, 97, 161, 201, 35, 230, 157, 97, 161, 201, 35, + 230, 158, 4, 54, 191, 103, 97, 161, 201, 35, 230, 159, 97, 161, 201, 35, + 230, 160, 208, 254, 97, 161, 216, 202, 97, 161, 216, 203, 208, 253, 97, + 161, 216, 203, 221, 59, 97, 161, 216, 203, 221, 62, 97, 161, 216, 203, + 221, 64, 97, 161, 201, 35, 197, 170, 97, 161, 201, 35, 197, 169, 97, 161, + 201, 35, 197, 168, 97, 161, 211, 21, 97, 161, 211, 22, 200, 150, 97, 161, + 211, 22, 197, 243, 97, 161, 211, 22, 220, 231, 200, 150, 97, 161, 211, + 22, 221, 61, 200, 150, 97, 161, 211, 22, 221, 61, 214, 82, 97, 161, 201, + 35, 220, 230, 97, 161, 201, 35, 220, 231, 208, 254, 97, 161, 201, 35, + 220, 231, 230, 162, 4, 202, 165, 191, 103, 97, 161, 201, 35, 220, 231, + 230, 158, 4, 202, 165, 191, 103, 97, 161, 201, 35, 220, 231, 230, 161, + 97, 161, 201, 35, 220, 231, 230, 157, 97, 161, 201, 35, 220, 231, 230, + 158, 4, 54, 191, 103, 97, 161, 201, 35, 220, 231, 230, 159, 97, 161, 201, + 35, 220, 231, 230, 160, 208, 254, 97, 161, 201, 35, 220, 231, 197, 171, + 97, 161, 220, 190, 97, 161, 211, 160, 97, 161, 235, 40, 97, 161, 214, 89, + 97, 161, 210, 69, 72, 37, 16, 208, 162, 72, 37, 16, 237, 172, 72, 37, 16, + 209, 251, 72, 37, 16, 210, 236, 234, 101, 72, 37, 16, 210, 236, 236, 193, + 72, 37, 16, 195, 169, 234, 101, 72, 37, 16, 195, 169, 236, 193, 72, 37, + 16, 222, 18, 72, 37, 16, 200, 56, 72, 37, 16, 210, 110, 72, 37, 16, 191, + 231, 72, 37, 16, 191, 232, 236, 193, 72, 37, 16, 220, 235, 72, 37, 16, + 251, 11, 234, 101, 72, 37, 16, 233, 169, 234, 101, 72, 37, 16, 199, 103, + 72, 37, 16, 221, 222, 72, 37, 16, 251, 0, 72, 37, 16, 251, 1, 236, 193, + 72, 37, 16, 200, 63, 72, 37, 16, 198, 239, 72, 37, 16, 211, 105, 250, + 218, 72, 37, 16, 230, 204, 250, 218, 72, 37, 16, 208, 161, 72, 37, 16, + 246, 200, 72, 37, 16, 195, 158, 72, 37, 16, 223, 30, 250, 218, 72, 37, + 16, 221, 224, 250, 218, 72, 37, 16, 221, 223, 250, 218, 72, 37, 16, 205, + 100, 72, 37, 16, 210, 100, 72, 37, 16, 201, 83, 251, 4, 72, 37, 16, 210, + 235, 250, 218, 72, 37, 16, 195, 168, 250, 218, 72, 37, 16, 251, 5, 250, + 218, 72, 37, 16, 250, 254, 72, 37, 16, 221, 68, 72, 37, 16, 207, 9, 72, + 37, 16, 209, 174, 250, 218, 72, 37, 16, 198, 137, 72, 37, 16, 251, 77, + 72, 37, 16, 205, 32, 72, 37, 16, 200, 67, 250, 218, 72, 37, 16, 200, 67, + 216, 147, 201, 81, 72, 37, 16, 210, 230, 250, 218, 72, 37, 16, 199, 22, + 72, 37, 16, 219, 178, 72, 37, 16, 234, 250, 72, 37, 16, 197, 239, 72, 37, + 16, 199, 71, 72, 37, 16, 220, 238, 72, 37, 16, 251, 11, 233, 169, 214, + 84, 72, 37, 16, 232, 50, 250, 218, 72, 37, 16, 223, 147, 72, 37, 16, 197, + 206, 250, 218, 72, 37, 16, 222, 21, 197, 205, 72, 37, 16, 210, 27, 72, + 37, 16, 208, 166, 72, 37, 16, 221, 18, 72, 37, 16, 243, 12, 250, 218, 72, + 37, 16, 207, 130, 72, 37, 16, 210, 114, 250, 218, 72, 37, 16, 210, 111, + 250, 218, 72, 37, 16, 227, 250, 72, 37, 16, 214, 211, 72, 37, 16, 209, + 229, 72, 37, 16, 221, 19, 251, 116, 72, 37, 16, 197, 206, 251, 116, 72, + 37, 16, 201, 50, 72, 37, 16, 230, 156, 72, 37, 16, 223, 30, 214, 84, 72, + 37, 16, 211, 105, 214, 84, 72, 37, 16, 210, 236, 214, 84, 72, 37, 16, + 209, 228, 72, 37, 16, 221, 2, 72, 37, 16, 209, 227, 72, 37, 16, 220, 237, + 72, 37, 16, 210, 28, 214, 84, 72, 37, 16, 221, 223, 214, 85, 251, 42, 72, + 37, 16, 221, 224, 214, 85, 251, 42, 72, 37, 16, 191, 229, 72, 37, 16, + 251, 1, 214, 84, 72, 37, 16, 251, 2, 200, 64, 214, 84, 72, 37, 16, 191, + 230, 72, 37, 16, 220, 236, 72, 37, 16, 234, 96, 72, 37, 16, 246, 201, 72, + 37, 16, 216, 39, 223, 29, 72, 37, 16, 195, 169, 214, 84, 72, 37, 16, 209, + 174, 214, 84, 72, 37, 16, 208, 167, 214, 84, 72, 37, 16, 211, 101, 72, + 37, 16, 251, 29, 72, 37, 16, 218, 158, 72, 37, 16, 210, 111, 214, 84, 72, + 37, 16, 210, 114, 214, 84, 72, 37, 16, 233, 207, 210, 113, 72, 37, 16, + 220, 123, 72, 37, 16, 251, 30, 72, 37, 16, 197, 206, 214, 84, 72, 37, 16, + 234, 99, 72, 37, 16, 200, 67, 214, 84, 72, 37, 16, 200, 57, 72, 37, 16, + 243, 12, 214, 84, 72, 37, 16, 234, 11, 72, 37, 16, 205, 33, 214, 84, 72, + 37, 16, 192, 199, 221, 68, 72, 37, 16, 197, 203, 72, 37, 16, 208, 168, + 72, 37, 16, 197, 207, 72, 37, 16, 197, 204, 72, 37, 16, 208, 165, 72, 37, + 16, 197, 202, 72, 37, 16, 208, 164, 72, 37, 16, 230, 203, 72, 37, 16, + 250, 210, 72, 37, 16, 233, 207, 250, 210, 72, 37, 16, 210, 230, 214, 84, + 72, 37, 16, 199, 21, 233, 220, 72, 37, 16, 199, 21, 233, 168, 72, 37, 16, + 199, 23, 251, 6, 72, 37, 16, 199, 15, 222, 76, 250, 253, 72, 37, 16, 222, + 20, 72, 37, 16, 234, 48, 72, 37, 16, 192, 38, 222, 17, 72, 37, 16, 192, + 38, 251, 42, 72, 37, 16, 201, 82, 72, 37, 16, 221, 69, 251, 42, 72, 37, + 16, 236, 194, 250, 218, 72, 37, 16, 220, 239, 250, 218, 72, 37, 16, 220, + 239, 251, 116, 72, 37, 16, 220, 239, 214, 84, 72, 37, 16, 251, 5, 214, + 84, 72, 37, 16, 251, 7, 72, 37, 16, 236, 193, 72, 37, 16, 197, 219, 72, + 37, 16, 199, 61, 72, 37, 16, 221, 6, 72, 37, 16, 219, 183, 234, 41, 243, + 2, 72, 37, 16, 219, 183, 234, 251, 243, 3, 72, 37, 16, 219, 183, 197, + 222, 243, 3, 72, 37, 16, 219, 183, 199, 73, 243, 3, 72, 37, 16, 219, 183, + 223, 142, 243, 2, 72, 37, 16, 230, 204, 214, 85, 251, 42, 72, 37, 16, + 230, 204, 210, 101, 250, 206, 72, 37, 16, 230, 204, 210, 101, 237, 28, + 72, 37, 16, 236, 218, 72, 37, 16, 236, 219, 210, 101, 250, 207, 222, 17, + 72, 37, 16, 236, 219, 210, 101, 250, 207, 251, 42, 72, 37, 16, 236, 219, + 210, 101, 237, 28, 72, 37, 16, 197, 228, 72, 37, 16, 250, 211, 72, 37, + 16, 223, 149, 72, 37, 16, 236, 241, 72, 37, 16, 251, 195, 209, 44, 250, + 212, 72, 37, 16, 251, 195, 250, 209, 72, 37, 16, 251, 195, 250, 212, 72, + 37, 16, 251, 195, 216, 141, 72, 37, 16, 251, 195, 216, 152, 72, 37, 16, + 251, 195, 230, 205, 72, 37, 16, 251, 195, 230, 202, 72, 37, 16, 251, 195, + 209, 44, 230, 205, 72, 37, 16, 217, 26, 208, 174, 227, 248, 72, 37, 16, + 217, 26, 251, 118, 208, 174, 227, 248, 72, 37, 16, 217, 26, 237, 27, 227, + 248, 72, 37, 16, 217, 26, 251, 118, 237, 27, 227, 248, 72, 37, 16, 217, + 26, 197, 214, 227, 248, 72, 37, 16, 217, 26, 197, 229, 72, 37, 16, 217, + 26, 199, 66, 227, 248, 72, 37, 16, 217, 26, 199, 66, 219, 187, 227, 248, + 72, 37, 16, 217, 26, 219, 187, 227, 248, 72, 37, 16, 217, 26, 209, 97, + 227, 248, 72, 37, 16, 223, 38, 199, 96, 227, 249, 72, 37, 16, 251, 2, + 199, 96, 227, 249, 72, 37, 16, 233, 38, 199, 63, 72, 37, 16, 233, 38, + 215, 205, 72, 37, 16, 233, 38, 236, 224, 72, 37, 16, 217, 26, 195, 162, + 227, 248, 72, 37, 16, 217, 26, 208, 173, 227, 248, 72, 37, 16, 217, 26, + 209, 97, 199, 66, 227, 248, 72, 37, 16, 230, 199, 215, 48, 251, 6, 72, + 37, 16, 230, 199, 215, 48, 236, 192, 72, 37, 16, 234, 59, 222, 76, 232, + 50, 195, 0, 72, 37, 16, 223, 148, 72, 37, 16, 223, 146, 72, 37, 16, 232, + 50, 250, 219, 237, 26, 227, 247, 72, 37, 16, 232, 50, 236, 239, 168, 72, + 37, 16, 232, 50, 236, 239, 214, 211, 72, 37, 16, 232, 50, 214, 205, 227, + 248, 72, 37, 16, 232, 50, 236, 239, 236, 255, 72, 37, 16, 232, 50, 202, + 101, 236, 238, 236, 255, 72, 37, 16, 232, 50, 236, 239, 221, 253, 72, 37, + 16, 232, 50, 236, 239, 191, 7, 72, 37, 16, 232, 50, 236, 239, 213, 206, + 222, 17, 72, 37, 16, 232, 50, 236, 239, 213, 206, 251, 42, 72, 37, 16, + 232, 50, 217, 78, 243, 4, 236, 224, 72, 37, 16, 232, 50, 217, 78, 243, 4, + 215, 205, 72, 37, 16, 232, 239, 202, 101, 243, 4, 195, 161, 72, 37, 16, + 232, 50, 202, 101, 243, 4, 200, 68, 72, 37, 16, 232, 50, 214, 87, 72, 37, + 16, 243, 5, 190, 230, 72, 37, 16, 243, 5, 221, 67, 72, 37, 16, 243, 5, + 201, 233, 72, 37, 16, 232, 50, 228, 44, 192, 37, 199, 67, 72, 37, 16, + 232, 50, 234, 60, 251, 31, 72, 37, 16, 192, 37, 197, 215, 72, 37, 16, + 236, 232, 197, 215, 72, 37, 16, 236, 232, 199, 67, 72, 37, 16, 236, 232, + 251, 8, 234, 251, 236, 121, 72, 37, 16, 236, 232, 215, 203, 199, 72, 236, + 121, 72, 37, 16, 236, 232, 236, 215, 233, 181, 236, 121, 72, 37, 16, 236, + 232, 197, 226, 211, 111, 236, 121, 72, 37, 16, 192, 37, 251, 8, 234, 251, + 236, 121, 72, 37, 16, 192, 37, 215, 203, 199, 72, 236, 121, 72, 37, 16, + 192, 37, 236, 215, 233, 181, 236, 121, 72, 37, 16, 192, 37, 197, 226, + 211, 111, 236, 121, 72, 37, 16, 231, 110, 236, 231, 72, 37, 16, 231, 110, + 192, 36, 72, 37, 16, 236, 240, 251, 8, 216, 40, 72, 37, 16, 236, 240, + 251, 8, 216, 183, 72, 37, 16, 236, 240, 236, 193, 72, 37, 16, 236, 240, + 199, 13, 72, 37, 16, 202, 176, 199, 13, 72, 37, 16, 202, 176, 199, 14, + 236, 176, 72, 37, 16, 202, 176, 199, 14, 197, 216, 72, 37, 16, 202, 176, + 199, 14, 199, 59, 72, 37, 16, 202, 176, 250, 178, 72, 37, 16, 202, 176, + 250, 179, 236, 176, 72, 37, 16, 202, 176, 250, 179, 197, 216, 72, 37, 16, + 202, 176, 250, 179, 199, 59, 72, 37, 16, 236, 216, 231, 91, 72, 37, 16, + 236, 223, 211, 9, 72, 37, 16, 201, 68, 72, 37, 16, 250, 203, 168, 72, 37, + 16, 250, 203, 195, 0, 72, 37, 16, 250, 203, 231, 203, 72, 37, 16, 250, + 203, 236, 255, 72, 37, 16, 250, 203, 221, 253, 72, 37, 16, 250, 203, 191, + 7, 72, 37, 16, 250, 203, 213, 205, 72, 37, 16, 221, 223, 214, 85, 216, + 151, 72, 37, 16, 221, 224, 214, 85, 216, 151, 72, 37, 16, 221, 223, 214, + 85, 222, 17, 72, 37, 16, 221, 224, 214, 85, 222, 17, 72, 37, 16, 221, 69, + 222, 17, 72, 37, 16, 230, 204, 214, 85, 222, 17, 37, 16, 202, 165, 249, + 33, 37, 16, 54, 249, 33, 37, 16, 52, 249, 33, 37, 16, 207, 14, 52, 249, + 33, 37, 16, 237, 169, 249, 33, 37, 16, 203, 35, 249, 33, 37, 16, 45, 207, + 44, 57, 37, 16, 50, 207, 44, 57, 37, 16, 207, 44, 236, 94, 37, 16, 237, + 213, 205, 36, 37, 16, 237, 242, 247, 60, 37, 16, 205, 36, 37, 16, 242, + 44, 37, 16, 207, 42, 232, 226, 37, 16, 207, 42, 232, 225, 37, 16, 207, + 42, 232, 224, 37, 16, 232, 249, 37, 16, 232, 250, 60, 37, 16, 247, 247, + 77, 37, 16, 247, 102, 37, 16, 248, 7, 37, 16, 248, 5, 37, 16, 211, 88, + 201, 106, 37, 16, 197, 8, 201, 106, 37, 16, 198, 215, 201, 106, 37, 16, + 232, 89, 201, 106, 37, 16, 232, 184, 201, 106, 37, 16, 202, 130, 201, + 106, 37, 16, 202, 128, 232, 67, 37, 16, 232, 87, 232, 67, 37, 16, 232, + 15, 242, 187, 37, 16, 232, 15, 242, 188, 211, 13, 251, 107, 37, 16, 232, + 15, 242, 188, 211, 13, 249, 16, 37, 16, 247, 146, 242, 187, 37, 16, 233, + 135, 242, 187, 37, 16, 233, 135, 242, 188, 211, 13, 251, 107, 37, 16, + 233, 135, 242, 188, 211, 13, 249, 16, 37, 16, 235, 51, 242, 186, 37, 16, + 235, 51, 242, 185, 37, 16, 215, 114, 216, 209, 207, 25, 37, 16, 54, 203, + 121, 37, 16, 54, 232, 166, 37, 16, 232, 167, 196, 73, 37, 16, 232, 167, + 235, 79, 37, 16, 214, 192, 196, 73, 37, 16, 214, 192, 235, 79, 37, 16, + 203, 122, 196, 73, 37, 16, 203, 122, 235, 79, 37, 16, 208, 18, 163, 203, + 121, 37, 16, 208, 18, 163, 232, 166, 37, 16, 242, 23, 198, 141, 37, 16, + 238, 108, 198, 141, 37, 16, 211, 13, 251, 107, 37, 16, 211, 13, 249, 16, + 37, 16, 207, 254, 251, 107, 37, 16, 207, 254, 249, 16, 37, 16, 215, 117, + 207, 25, 37, 16, 193, 85, 207, 25, 37, 16, 134, 207, 25, 37, 16, 208, 18, + 207, 25, 37, 16, 234, 117, 207, 25, 37, 16, 202, 124, 207, 25, 37, 16, + 198, 241, 207, 25, 37, 16, 202, 114, 207, 25, 37, 16, 91, 228, 110, 197, + 26, 207, 25, 37, 16, 192, 236, 212, 245, 37, 16, 107, 212, 245, 37, 16, + 242, 219, 192, 236, 212, 245, 37, 16, 51, 212, 246, 193, 87, 37, 16, 51, + 212, 246, 248, 91, 37, 16, 197, 238, 212, 246, 132, 193, 87, 37, 16, 197, + 238, 212, 246, 132, 248, 91, 37, 16, 197, 238, 212, 246, 45, 193, 87, 37, + 16, 197, 238, 212, 246, 45, 248, 91, 37, 16, 197, 238, 212, 246, 50, 193, + 87, 37, 16, 197, 238, 212, 246, 50, 248, 91, 37, 16, 197, 238, 212, 246, + 143, 193, 87, 37, 16, 197, 238, 212, 246, 143, 248, 91, 37, 16, 197, 238, + 212, 246, 132, 50, 193, 87, 37, 16, 197, 238, 212, 246, 132, 50, 248, 91, + 37, 16, 215, 189, 212, 246, 193, 87, 37, 16, 215, 189, 212, 246, 248, 91, + 37, 16, 197, 235, 212, 246, 143, 193, 87, 37, 16, 197, 235, 212, 246, + 143, 248, 91, 37, 16, 210, 104, 212, 245, 37, 16, 195, 14, 212, 245, 37, + 16, 212, 246, 248, 91, 37, 16, 212, 126, 212, 245, 37, 16, 242, 155, 212, + 246, 193, 87, 37, 16, 242, 155, 212, 246, 248, 91, 37, 16, 247, 244, 37, + 16, 193, 85, 212, 249, 37, 16, 134, 212, 249, 37, 16, 208, 18, 212, 249, + 37, 16, 234, 117, 212, 249, 37, 16, 202, 124, 212, 249, 37, 16, 198, 241, + 212, 249, 37, 16, 202, 114, 212, 249, 37, 16, 91, 228, 110, 197, 26, 212, + 249, 37, 16, 33, 201, 75, 37, 16, 33, 201, 192, 201, 75, 37, 16, 33, 197, + 249, 37, 16, 33, 197, 248, 37, 16, 33, 197, 247, 37, 16, 232, 209, 197, + 249, 37, 16, 232, 209, 197, 248, 37, 16, 232, 209, 197, 247, 37, 16, 33, + 250, 110, 236, 96, 37, 16, 33, 232, 176, 37, 16, 33, 232, 175, 37, 16, + 33, 232, 174, 37, 16, 33, 232, 173, 37, 16, 33, 232, 172, 37, 16, 248, + 199, 248, 220, 37, 16, 234, 53, 248, 220, 37, 16, 248, 199, 198, 173, 37, + 16, 234, 53, 198, 173, 37, 16, 248, 199, 202, 66, 37, 16, 234, 53, 202, + 66, 37, 16, 248, 199, 209, 183, 37, 16, 234, 53, 209, 183, 37, 16, 33, + 252, 8, 37, 16, 33, 201, 110, 37, 16, 33, 199, 78, 37, 16, 33, 201, 111, + 37, 16, 33, 217, 41, 37, 16, 33, 217, 40, 37, 16, 33, 252, 7, 37, 16, 33, + 218, 221, 37, 16, 250, 191, 196, 73, 37, 16, 250, 191, 235, 79, 37, 16, + 33, 236, 113, 37, 16, 33, 206, 179, 37, 16, 33, 232, 155, 37, 16, 33, + 202, 62, 37, 16, 33, 248, 177, 37, 16, 33, 54, 198, 56, 37, 16, 33, 197, + 221, 198, 56, 37, 16, 206, 185, 37, 16, 200, 236, 37, 16, 191, 166, 37, + 16, 209, 175, 37, 16, 216, 132, 37, 16, 232, 101, 37, 16, 238, 182, 37, + 16, 237, 87, 37, 16, 230, 194, 212, 250, 202, 92, 37, 16, 230, 194, 212, + 250, 213, 31, 202, 92, 37, 16, 198, 23, 37, 16, 197, 54, 37, 16, 223, 65, + 197, 54, 37, 16, 197, 55, 202, 92, 37, 16, 197, 55, 196, 73, 37, 16, 211, + 33, 201, 22, 37, 16, 211, 33, 201, 19, 37, 16, 211, 33, 201, 18, 37, 16, + 211, 33, 201, 17, 37, 16, 211, 33, 201, 16, 37, 16, 211, 33, 201, 15, 37, + 16, 211, 33, 201, 14, 37, 16, 211, 33, 201, 13, 37, 16, 211, 33, 201, 12, + 37, 16, 211, 33, 201, 21, 37, 16, 211, 33, 201, 20, 37, 16, 229, 224, 37, + 16, 214, 99, 37, 16, 234, 53, 80, 201, 64, 37, 16, 237, 80, 202, 92, 37, + 16, 33, 143, 248, 21, 37, 16, 33, 132, 248, 21, 37, 16, 33, 229, 237, 37, + 16, 33, 202, 52, 209, 103, 37, 16, 210, 45, 77, 37, 16, 210, 45, 132, 77, + 37, 16, 134, 210, 45, 77, 37, 16, 230, 233, 196, 73, 37, 16, 230, 233, + 235, 79, 37, 16, 4, 232, 208, 37, 16, 237, 196, 37, 16, 237, 197, 251, + 123, 37, 16, 217, 4, 37, 16, 218, 242, 37, 16, 247, 241, 37, 16, 204, 24, + 193, 87, 37, 16, 204, 24, 248, 91, 37, 16, 216, 22, 37, 16, 216, 23, 248, + 91, 37, 16, 204, 18, 193, 87, 37, 16, 204, 18, 248, 91, 37, 16, 232, 33, + 193, 87, 37, 16, 232, 33, 248, 91, 37, 16, 218, 243, 210, 0, 207, 25, 37, + 16, 218, 243, 223, 139, 207, 25, 37, 16, 247, 242, 207, 25, 37, 16, 204, + 24, 207, 25, 37, 16, 216, 23, 207, 25, 37, 16, 204, 18, 207, 25, 37, 16, + 199, 92, 209, 254, 238, 139, 208, 185, 209, 255, 37, 16, 199, 92, 209, + 254, 238, 139, 208, 185, 223, 138, 37, 16, 199, 92, 209, 254, 238, 139, + 208, 185, 210, 0, 236, 203, 37, 16, 199, 92, 223, 137, 238, 139, 208, + 185, 209, 255, 37, 16, 199, 92, 223, 137, 238, 139, 208, 185, 223, 138, + 37, 16, 199, 92, 223, 137, 238, 139, 208, 185, 223, 139, 236, 203, 37, + 16, 199, 92, 223, 137, 238, 139, 208, 185, 223, 139, 236, 202, 37, 16, + 199, 92, 223, 137, 238, 139, 208, 185, 223, 139, 236, 201, 37, 16, 238, + 173, 37, 16, 230, 165, 247, 146, 242, 187, 37, 16, 230, 165, 233, 135, + 242, 187, 37, 16, 51, 250, 70, 37, 16, 195, 36, 37, 16, 209, 62, 37, 16, + 242, 176, 37, 16, 205, 90, 37, 16, 242, 181, 37, 16, 198, 42, 37, 16, + 209, 21, 37, 16, 209, 22, 232, 158, 37, 16, 205, 91, 232, 158, 37, 16, + 198, 43, 207, 22, 37, 16, 209, 237, 200, 226, 37, 16, 221, 124, 247, 146, + 242, 187, 37, 16, 221, 124, 234, 53, 80, 209, 166, 37, 16, 221, 124, 52, + 212, 249, 37, 16, 221, 124, 207, 94, 77, 37, 16, 221, 124, 193, 85, 212, + 249, 37, 16, 221, 124, 134, 212, 249, 37, 16, 221, 124, 208, 18, 212, + 250, 201, 76, 235, 79, 37, 16, 221, 124, 208, 18, 212, 250, 201, 76, 196, + 73, 37, 16, 221, 124, 234, 117, 212, 250, 201, 76, 235, 79, 37, 16, 221, + 124, 234, 117, 212, 250, 201, 76, 196, 73, 37, 16, 221, 124, 232, 167, + 57, 37, 16, 202, 6, 37, 16, 221, 7, 35, 195, 20, 212, 253, 200, 119, 35, + 195, 20, 212, 253, 200, 108, 35, 195, 20, 212, 253, 200, 98, 35, 195, 20, + 212, 253, 200, 91, 35, 195, 20, 212, 253, 200, 83, 35, 195, 20, 212, 253, + 200, 77, 35, 195, 20, 212, 253, 200, 76, 35, 195, 20, 212, 253, 200, 75, + 35, 195, 20, 212, 253, 200, 74, 35, 195, 20, 212, 253, 200, 118, 35, 195, + 20, 212, 253, 200, 117, 35, 195, 20, 212, 253, 200, 116, 35, 195, 20, + 212, 253, 200, 115, 35, 195, 20, 212, 253, 200, 114, 35, 195, 20, 212, + 253, 200, 113, 35, 195, 20, 212, 253, 200, 112, 35, 195, 20, 212, 253, + 200, 111, 35, 195, 20, 212, 253, 200, 110, 35, 195, 20, 212, 253, 200, + 109, 35, 195, 20, 212, 253, 200, 107, 35, 195, 20, 212, 253, 200, 106, + 35, 195, 20, 212, 253, 200, 105, 35, 195, 20, 212, 253, 200, 104, 35, + 195, 20, 212, 253, 200, 103, 35, 195, 20, 212, 253, 200, 82, 35, 195, 20, + 212, 253, 200, 81, 35, 195, 20, 212, 253, 200, 80, 35, 195, 20, 212, 253, + 200, 79, 35, 195, 20, 212, 253, 200, 78, 35, 223, 88, 212, 253, 200, 119, + 35, 223, 88, 212, 253, 200, 108, 35, 223, 88, 212, 253, 200, 91, 35, 223, + 88, 212, 253, 200, 83, 35, 223, 88, 212, 253, 200, 76, 35, 223, 88, 212, + 253, 200, 75, 35, 223, 88, 212, 253, 200, 117, 35, 223, 88, 212, 253, + 200, 116, 35, 223, 88, 212, 253, 200, 115, 35, 223, 88, 212, 253, 200, + 114, 35, 223, 88, 212, 253, 200, 111, 35, 223, 88, 212, 253, 200, 110, + 35, 223, 88, 212, 253, 200, 109, 35, 223, 88, 212, 253, 200, 104, 35, + 223, 88, 212, 253, 200, 103, 35, 223, 88, 212, 253, 200, 102, 35, 223, + 88, 212, 253, 200, 101, 35, 223, 88, 212, 253, 200, 100, 35, 223, 88, + 212, 253, 200, 99, 35, 223, 88, 212, 253, 200, 97, 35, 223, 88, 212, 253, + 200, 96, 35, 223, 88, 212, 253, 200, 95, 35, 223, 88, 212, 253, 200, 94, + 35, 223, 88, 212, 253, 200, 93, 35, 223, 88, 212, 253, 200, 92, 35, 223, + 88, 212, 253, 200, 90, 35, 223, 88, 212, 253, 200, 89, 35, 223, 88, 212, + 253, 200, 88, 35, 223, 88, 212, 253, 200, 87, 35, 223, 88, 212, 253, 200, + 86, 35, 223, 88, 212, 253, 200, 85, 35, 223, 88, 212, 253, 200, 84, 35, + 223, 88, 212, 253, 200, 82, 35, 223, 88, 212, 253, 200, 81, 35, 223, 88, + 212, 253, 200, 80, 35, 223, 88, 212, 253, 200, 79, 35, 223, 88, 212, 253, + 200, 78, 33, 35, 37, 197, 217, 33, 35, 37, 199, 60, 33, 35, 37, 210, 13, + 35, 37, 219, 182, 217, 1, 212, 121, 191, 77, 217, 1, 212, 121, 108, 217, + 1, 212, 121, 109, 217, 1, 212, 121, 139, 217, 1, 212, 121, 137, 217, 1, + 212, 121, 153, 217, 1, 212, 121, 173, 217, 1, 212, 121, 181, 217, 1, 212, + 121, 176, 217, 1, 212, 121, 184, 217, 1, 212, 121, 199, 90, 217, 1, 212, + 121, 234, 84, 217, 1, 212, 121, 197, 33, 217, 1, 212, 121, 198, 246, 217, + 1, 212, 121, 232, 84, 217, 1, 212, 121, 232, 234, 217, 1, 212, 121, 202, + 125, 217, 1, 212, 121, 203, 239, 217, 1, 212, 121, 234, 118, 217, 1, 212, + 121, 213, 158, 215, 204, 39, 234, 163, 236, 217, 39, 229, 186, 234, 163, + 236, 217, 39, 228, 114, 234, 163, 236, 217, 39, 234, 162, 229, 187, 236, + 217, 39, 234, 162, 228, 113, 236, 217, 39, 234, 163, 199, 62, 39, 246, + 229, 199, 62, 39, 232, 42, 242, 218, 199, 62, 39, 216, 13, 199, 62, 39, + 249, 28, 199, 62, 39, 221, 241, 202, 65, 199, 62, 39, 238, 232, 199, 62, + 39, 250, 162, 199, 62, 39, 211, 51, 199, 62, 39, 247, 253, 211, 4, 199, + 62, 39, 237, 82, 211, 46, 236, 168, 199, 62, 39, 236, 165, 199, 62, 39, + 191, 237, 199, 62, 39, 223, 125, 199, 62, 39, 210, 23, 199, 62, 39, 207, + 103, 199, 62, 39, 238, 244, 199, 62, 39, 228, 230, 249, 96, 199, 62, 39, + 193, 168, 199, 62, 39, 232, 130, 199, 62, 39, 251, 232, 199, 62, 39, 207, + 57, 199, 62, 39, 207, 29, 199, 62, 39, 234, 161, 199, 62, 39, 222, 158, + 199, 62, 39, 238, 239, 199, 62, 39, 234, 51, 199, 62, 39, 235, 15, 199, + 62, 39, 246, 196, 199, 62, 39, 237, 92, 199, 62, 39, 28, 207, 28, 199, + 62, 39, 210, 201, 199, 62, 39, 219, 186, 199, 62, 39, 242, 169, 199, 62, + 39, 221, 112, 199, 62, 39, 231, 152, 199, 62, 39, 201, 34, 199, 62, 39, + 208, 133, 199, 62, 39, 232, 41, 199, 62, 39, 207, 30, 199, 62, 39, 219, + 227, 211, 46, 215, 241, 199, 62, 39, 207, 26, 199, 62, 39, 230, 216, 118, + 216, 187, 199, 62, 39, 234, 54, 199, 62, 39, 201, 51, 199, 62, 39, 230, + 168, 199, 62, 39, 234, 44, 199, 62, 39, 210, 73, 199, 62, 39, 206, 172, + 199, 62, 39, 232, 156, 199, 62, 39, 195, 160, 211, 46, 193, 145, 199, 62, + 39, 238, 249, 199, 62, 39, 216, 208, 199, 62, 39, 233, 208, 199, 62, 39, + 196, 84, 199, 62, 39, 236, 204, 199, 62, 39, 242, 171, 215, 163, 199, 62, + 39, 230, 138, 199, 62, 39, 231, 153, 223, 134, 199, 62, 39, 217, 13, 199, + 62, 39, 252, 2, 199, 62, 39, 234, 70, 199, 62, 39, 235, 83, 199, 62, 39, + 193, 143, 199, 62, 39, 202, 160, 199, 62, 39, 223, 98, 199, 62, 39, 237, + 48, 199, 62, 39, 237, 174, 199, 62, 39, 236, 200, 199, 62, 39, 233, 172, + 199, 62, 39, 203, 235, 199, 62, 39, 201, 55, 199, 62, 39, 229, 239, 199, + 62, 39, 242, 18, 199, 62, 39, 242, 166, 199, 62, 39, 233, 47, 199, 62, + 39, 251, 196, 199, 62, 39, 242, 17, 199, 62, 39, 211, 94, 199, 29, 195, + 135, 199, 62, 39, 236, 226, 199, 62, 39, 220, 89, 199, 62, 39, 232, 93, + 238, 197, 206, 140, 196, 87, 17, 108, 238, 197, 206, 140, 196, 87, 17, + 109, 238, 197, 206, 140, 196, 87, 17, 139, 238, 197, 206, 140, 196, 87, + 17, 137, 238, 197, 206, 140, 196, 87, 17, 153, 238, 197, 206, 140, 196, + 87, 17, 173, 238, 197, 206, 140, 196, 87, 17, 181, 238, 197, 206, 140, + 196, 87, 17, 176, 238, 197, 206, 140, 196, 87, 17, 184, 238, 197, 206, + 140, 199, 86, 17, 108, 238, 197, 206, 140, 199, 86, 17, 109, 238, 197, + 206, 140, 199, 86, 17, 139, 238, 197, 206, 140, 199, 86, 17, 137, 238, + 197, 206, 140, 199, 86, 17, 153, 238, 197, 206, 140, 199, 86, 17, 173, + 238, 197, 206, 140, 199, 86, 17, 181, 238, 197, 206, 140, 199, 86, 17, + 176, 238, 197, 206, 140, 199, 86, 17, 184, 154, 199, 193, 87, 108, 154, + 199, 193, 87, 109, 154, 199, 193, 87, 139, 154, 199, 193, 87, 137, 154, + 199, 193, 87, 153, 199, 193, 87, 108, 199, 193, 87, 153, 13, 28, 6, 65, + 13, 28, 6, 250, 70, 13, 28, 6, 247, 145, 13, 28, 6, 238, 80, 13, 28, 6, + 73, 13, 28, 6, 233, 134, 13, 28, 6, 232, 14, 13, 28, 6, 230, 83, 13, 28, + 6, 70, 13, 28, 6, 223, 7, 13, 28, 6, 222, 125, 13, 28, 6, 170, 13, 28, 6, + 218, 147, 13, 28, 6, 215, 47, 13, 28, 6, 74, 13, 28, 6, 210, 226, 13, 28, + 6, 208, 97, 13, 28, 6, 148, 13, 28, 6, 206, 3, 13, 28, 6, 200, 39, 13, + 28, 6, 69, 13, 28, 6, 196, 8, 13, 28, 6, 193, 221, 13, 28, 6, 192, 235, + 13, 28, 6, 192, 159, 13, 28, 6, 191, 166, 13, 28, 2, 65, 13, 28, 2, 250, + 70, 13, 28, 2, 247, 145, 13, 28, 2, 238, 80, 13, 28, 2, 73, 13, 28, 2, + 233, 134, 13, 28, 2, 232, 14, 13, 28, 2, 230, 83, 13, 28, 2, 70, 13, 28, + 2, 223, 7, 13, 28, 2, 222, 125, 13, 28, 2, 170, 13, 28, 2, 218, 147, 13, + 28, 2, 215, 47, 13, 28, 2, 74, 13, 28, 2, 210, 226, 13, 28, 2, 208, 97, + 13, 28, 2, 148, 13, 28, 2, 206, 3, 13, 28, 2, 200, 39, 13, 28, 2, 69, 13, + 28, 2, 196, 8, 13, 28, 2, 193, 221, 13, 28, 2, 192, 235, 13, 28, 2, 192, + 159, 13, 28, 2, 191, 166, 13, 43, 6, 65, 13, 43, 6, 250, 70, 13, 43, 6, + 247, 145, 13, 43, 6, 238, 80, 13, 43, 6, 73, 13, 43, 6, 233, 134, 13, 43, + 6, 232, 14, 13, 43, 6, 230, 83, 13, 43, 6, 70, 13, 43, 6, 223, 7, 13, 43, + 6, 222, 125, 13, 43, 6, 170, 13, 43, 6, 218, 147, 13, 43, 6, 215, 47, 13, + 43, 6, 74, 13, 43, 6, 210, 226, 13, 43, 6, 208, 97, 13, 43, 6, 148, 13, + 43, 6, 206, 3, 13, 43, 6, 200, 39, 13, 43, 6, 69, 13, 43, 6, 196, 8, 13, + 43, 6, 193, 221, 13, 43, 6, 192, 235, 13, 43, 6, 192, 159, 13, 43, 6, + 191, 166, 13, 43, 2, 65, 13, 43, 2, 250, 70, 13, 43, 2, 247, 145, 13, 43, + 2, 238, 80, 13, 43, 2, 73, 13, 43, 2, 233, 134, 13, 43, 2, 232, 14, 13, + 43, 2, 70, 13, 43, 2, 223, 7, 13, 43, 2, 222, 125, 13, 43, 2, 170, 13, + 43, 2, 218, 147, 13, 43, 2, 215, 47, 13, 43, 2, 74, 13, 43, 2, 210, 226, + 13, 43, 2, 208, 97, 13, 43, 2, 148, 13, 43, 2, 206, 3, 13, 43, 2, 200, + 39, 13, 43, 2, 69, 13, 43, 2, 196, 8, 13, 43, 2, 193, 221, 13, 43, 2, + 192, 235, 13, 43, 2, 192, 159, 13, 43, 2, 191, 166, 13, 28, 43, 6, 65, + 13, 28, 43, 6, 250, 70, 13, 28, 43, 6, 247, 145, 13, 28, 43, 6, 238, 80, + 13, 28, 43, 6, 73, 13, 28, 43, 6, 233, 134, 13, 28, 43, 6, 232, 14, 13, + 28, 43, 6, 230, 83, 13, 28, 43, 6, 70, 13, 28, 43, 6, 223, 7, 13, 28, 43, + 6, 222, 125, 13, 28, 43, 6, 170, 13, 28, 43, 6, 218, 147, 13, 28, 43, 6, + 215, 47, 13, 28, 43, 6, 74, 13, 28, 43, 6, 210, 226, 13, 28, 43, 6, 208, + 97, 13, 28, 43, 6, 148, 13, 28, 43, 6, 206, 3, 13, 28, 43, 6, 200, 39, + 13, 28, 43, 6, 69, 13, 28, 43, 6, 196, 8, 13, 28, 43, 6, 193, 221, 13, 28, 43, 6, 192, 235, 13, 28, 43, 6, 192, 159, 13, 28, 43, 6, 191, 166, - 13, 28, 43, 2, 65, 13, 28, 43, 2, 250, 120, 13, 28, 43, 2, 247, 193, 13, - 28, 43, 2, 238, 127, 13, 28, 43, 2, 71, 13, 28, 43, 2, 233, 175, 13, 28, - 43, 2, 232, 51, 13, 28, 43, 2, 230, 116, 13, 28, 43, 2, 68, 13, 28, 43, - 2, 223, 35, 13, 28, 43, 2, 222, 152, 13, 28, 43, 2, 172, 13, 28, 43, 2, - 218, 168, 13, 28, 43, 2, 215, 61, 13, 28, 43, 2, 74, 13, 28, 43, 2, 210, - 236, 13, 28, 43, 2, 208, 104, 13, 28, 43, 2, 146, 13, 28, 43, 2, 206, 8, - 13, 28, 43, 2, 200, 43, 13, 28, 43, 2, 66, 13, 28, 43, 2, 196, 12, 13, - 28, 43, 2, 193, 224, 13, 28, 43, 2, 192, 235, 13, 28, 43, 2, 192, 159, - 13, 28, 43, 2, 191, 166, 13, 27, 6, 65, 13, 27, 6, 247, 193, 13, 27, 6, - 238, 127, 13, 27, 6, 232, 51, 13, 27, 6, 223, 35, 13, 27, 6, 222, 152, - 13, 27, 6, 215, 61, 13, 27, 6, 74, 13, 27, 6, 210, 236, 13, 27, 6, 208, - 104, 13, 27, 6, 206, 8, 13, 27, 6, 200, 43, 13, 27, 6, 66, 13, 27, 6, - 196, 12, 13, 27, 6, 193, 224, 13, 27, 6, 192, 235, 13, 27, 6, 192, 159, - 13, 27, 6, 191, 166, 13, 27, 2, 65, 13, 27, 2, 250, 120, 13, 27, 2, 247, - 193, 13, 27, 2, 238, 127, 13, 27, 2, 233, 175, 13, 27, 2, 230, 116, 13, - 27, 2, 68, 13, 27, 2, 223, 35, 13, 27, 2, 222, 152, 13, 27, 2, 172, 13, - 27, 2, 218, 168, 13, 27, 2, 215, 61, 13, 27, 2, 210, 236, 13, 27, 2, 208, - 104, 13, 27, 2, 146, 13, 27, 2, 206, 8, 13, 27, 2, 200, 43, 13, 27, 2, - 66, 13, 27, 2, 196, 12, 13, 27, 2, 193, 224, 13, 27, 2, 192, 235, 13, 27, - 2, 192, 159, 13, 27, 2, 191, 166, 13, 28, 27, 6, 65, 13, 28, 27, 6, 250, - 120, 13, 28, 27, 6, 247, 193, 13, 28, 27, 6, 238, 127, 13, 28, 27, 6, 71, - 13, 28, 27, 6, 233, 175, 13, 28, 27, 6, 232, 51, 13, 28, 27, 6, 230, 116, - 13, 28, 27, 6, 68, 13, 28, 27, 6, 223, 35, 13, 28, 27, 6, 222, 152, 13, - 28, 27, 6, 172, 13, 28, 27, 6, 218, 168, 13, 28, 27, 6, 215, 61, 13, 28, - 27, 6, 74, 13, 28, 27, 6, 210, 236, 13, 28, 27, 6, 208, 104, 13, 28, 27, - 6, 146, 13, 28, 27, 6, 206, 8, 13, 28, 27, 6, 200, 43, 13, 28, 27, 6, 66, - 13, 28, 27, 6, 196, 12, 13, 28, 27, 6, 193, 224, 13, 28, 27, 6, 192, 235, - 13, 28, 27, 6, 192, 159, 13, 28, 27, 6, 191, 166, 13, 28, 27, 2, 65, 13, - 28, 27, 2, 250, 120, 13, 28, 27, 2, 247, 193, 13, 28, 27, 2, 238, 127, - 13, 28, 27, 2, 71, 13, 28, 27, 2, 233, 175, 13, 28, 27, 2, 232, 51, 13, - 28, 27, 2, 230, 116, 13, 28, 27, 2, 68, 13, 28, 27, 2, 223, 35, 13, 28, - 27, 2, 222, 152, 13, 28, 27, 2, 172, 13, 28, 27, 2, 218, 168, 13, 28, 27, - 2, 215, 61, 13, 28, 27, 2, 74, 13, 28, 27, 2, 210, 236, 13, 28, 27, 2, - 208, 104, 13, 28, 27, 2, 146, 13, 28, 27, 2, 206, 8, 13, 28, 27, 2, 200, - 43, 13, 28, 27, 2, 66, 13, 28, 27, 2, 196, 12, 13, 28, 27, 2, 193, 224, - 13, 28, 27, 2, 192, 235, 13, 28, 27, 2, 192, 159, 13, 28, 27, 2, 191, - 166, 13, 232, 115, 6, 65, 13, 232, 115, 6, 250, 120, 13, 232, 115, 6, - 238, 127, 13, 232, 115, 6, 71, 13, 232, 115, 6, 233, 175, 13, 232, 115, - 6, 232, 51, 13, 232, 115, 6, 223, 35, 13, 232, 115, 6, 222, 152, 13, 232, - 115, 6, 172, 13, 232, 115, 6, 218, 168, 13, 232, 115, 6, 215, 61, 13, - 232, 115, 6, 74, 13, 232, 115, 6, 210, 236, 13, 232, 115, 6, 208, 104, - 13, 232, 115, 6, 206, 8, 13, 232, 115, 6, 200, 43, 13, 232, 115, 6, 66, - 13, 232, 115, 6, 196, 12, 13, 232, 115, 6, 193, 224, 13, 232, 115, 6, - 192, 235, 13, 232, 115, 6, 192, 159, 13, 232, 115, 2, 65, 13, 232, 115, - 2, 250, 120, 13, 232, 115, 2, 247, 193, 13, 232, 115, 2, 238, 127, 13, - 232, 115, 2, 71, 13, 232, 115, 2, 233, 175, 13, 232, 115, 2, 232, 51, 13, - 232, 115, 2, 230, 116, 13, 232, 115, 2, 68, 13, 232, 115, 2, 223, 35, 13, - 232, 115, 2, 222, 152, 13, 232, 115, 2, 172, 13, 232, 115, 2, 218, 168, - 13, 232, 115, 2, 215, 61, 13, 232, 115, 2, 74, 13, 232, 115, 2, 210, 236, - 13, 232, 115, 2, 208, 104, 13, 232, 115, 2, 146, 13, 232, 115, 2, 206, 8, - 13, 232, 115, 2, 200, 43, 13, 232, 115, 2, 66, 13, 232, 115, 2, 196, 12, - 13, 232, 115, 2, 193, 224, 13, 232, 115, 2, 192, 235, 13, 232, 115, 2, - 192, 159, 13, 232, 115, 2, 191, 166, 13, 235, 129, 6, 65, 13, 235, 129, - 6, 250, 120, 13, 235, 129, 6, 238, 127, 13, 235, 129, 6, 71, 13, 235, - 129, 6, 233, 175, 13, 235, 129, 6, 232, 51, 13, 235, 129, 6, 68, 13, 235, - 129, 6, 223, 35, 13, 235, 129, 6, 222, 152, 13, 235, 129, 6, 172, 13, - 235, 129, 6, 218, 168, 13, 235, 129, 6, 74, 13, 235, 129, 6, 206, 8, 13, - 235, 129, 6, 200, 43, 13, 235, 129, 6, 66, 13, 235, 129, 6, 196, 12, 13, - 235, 129, 6, 193, 224, 13, 235, 129, 6, 192, 235, 13, 235, 129, 6, 192, - 159, 13, 235, 129, 2, 65, 13, 235, 129, 2, 250, 120, 13, 235, 129, 2, - 247, 193, 13, 235, 129, 2, 238, 127, 13, 235, 129, 2, 71, 13, 235, 129, - 2, 233, 175, 13, 235, 129, 2, 232, 51, 13, 235, 129, 2, 230, 116, 13, - 235, 129, 2, 68, 13, 235, 129, 2, 223, 35, 13, 235, 129, 2, 222, 152, 13, - 235, 129, 2, 172, 13, 235, 129, 2, 218, 168, 13, 235, 129, 2, 215, 61, - 13, 235, 129, 2, 74, 13, 235, 129, 2, 210, 236, 13, 235, 129, 2, 208, - 104, 13, 235, 129, 2, 146, 13, 235, 129, 2, 206, 8, 13, 235, 129, 2, 200, - 43, 13, 235, 129, 2, 66, 13, 235, 129, 2, 196, 12, 13, 235, 129, 2, 193, - 224, 13, 235, 129, 2, 192, 235, 13, 235, 129, 2, 192, 159, 13, 235, 129, - 2, 191, 166, 13, 28, 232, 115, 6, 65, 13, 28, 232, 115, 6, 250, 120, 13, - 28, 232, 115, 6, 247, 193, 13, 28, 232, 115, 6, 238, 127, 13, 28, 232, - 115, 6, 71, 13, 28, 232, 115, 6, 233, 175, 13, 28, 232, 115, 6, 232, 51, - 13, 28, 232, 115, 6, 230, 116, 13, 28, 232, 115, 6, 68, 13, 28, 232, 115, - 6, 223, 35, 13, 28, 232, 115, 6, 222, 152, 13, 28, 232, 115, 6, 172, 13, - 28, 232, 115, 6, 218, 168, 13, 28, 232, 115, 6, 215, 61, 13, 28, 232, - 115, 6, 74, 13, 28, 232, 115, 6, 210, 236, 13, 28, 232, 115, 6, 208, 104, - 13, 28, 232, 115, 6, 146, 13, 28, 232, 115, 6, 206, 8, 13, 28, 232, 115, - 6, 200, 43, 13, 28, 232, 115, 6, 66, 13, 28, 232, 115, 6, 196, 12, 13, - 28, 232, 115, 6, 193, 224, 13, 28, 232, 115, 6, 192, 235, 13, 28, 232, - 115, 6, 192, 159, 13, 28, 232, 115, 6, 191, 166, 13, 28, 232, 115, 2, 65, - 13, 28, 232, 115, 2, 250, 120, 13, 28, 232, 115, 2, 247, 193, 13, 28, - 232, 115, 2, 238, 127, 13, 28, 232, 115, 2, 71, 13, 28, 232, 115, 2, 233, - 175, 13, 28, 232, 115, 2, 232, 51, 13, 28, 232, 115, 2, 230, 116, 13, 28, - 232, 115, 2, 68, 13, 28, 232, 115, 2, 223, 35, 13, 28, 232, 115, 2, 222, - 152, 13, 28, 232, 115, 2, 172, 13, 28, 232, 115, 2, 218, 168, 13, 28, - 232, 115, 2, 215, 61, 13, 28, 232, 115, 2, 74, 13, 28, 232, 115, 2, 210, - 236, 13, 28, 232, 115, 2, 208, 104, 13, 28, 232, 115, 2, 146, 13, 28, - 232, 115, 2, 206, 8, 13, 28, 232, 115, 2, 200, 43, 13, 28, 232, 115, 2, - 66, 13, 28, 232, 115, 2, 196, 12, 13, 28, 232, 115, 2, 193, 224, 13, 28, - 232, 115, 2, 192, 235, 13, 28, 232, 115, 2, 192, 159, 13, 28, 232, 115, - 2, 191, 166, 13, 49, 6, 65, 13, 49, 6, 250, 120, 13, 49, 6, 247, 193, 13, - 49, 6, 238, 127, 13, 49, 6, 71, 13, 49, 6, 233, 175, 13, 49, 6, 232, 51, - 13, 49, 6, 230, 116, 13, 49, 6, 68, 13, 49, 6, 223, 35, 13, 49, 6, 222, - 152, 13, 49, 6, 172, 13, 49, 6, 218, 168, 13, 49, 6, 215, 61, 13, 49, 6, - 74, 13, 49, 6, 210, 236, 13, 49, 6, 208, 104, 13, 49, 6, 146, 13, 49, 6, - 206, 8, 13, 49, 6, 200, 43, 13, 49, 6, 66, 13, 49, 6, 196, 12, 13, 49, 6, - 193, 224, 13, 49, 6, 192, 235, 13, 49, 6, 192, 159, 13, 49, 6, 191, 166, - 13, 49, 2, 65, 13, 49, 2, 250, 120, 13, 49, 2, 247, 193, 13, 49, 2, 238, - 127, 13, 49, 2, 71, 13, 49, 2, 233, 175, 13, 49, 2, 232, 51, 13, 49, 2, - 230, 116, 13, 49, 2, 68, 13, 49, 2, 223, 35, 13, 49, 2, 222, 152, 13, 49, - 2, 172, 13, 49, 2, 218, 168, 13, 49, 2, 215, 61, 13, 49, 2, 74, 13, 49, - 2, 210, 236, 13, 49, 2, 208, 104, 13, 49, 2, 146, 13, 49, 2, 206, 8, 13, - 49, 2, 200, 43, 13, 49, 2, 66, 13, 49, 2, 196, 12, 13, 49, 2, 193, 224, - 13, 49, 2, 192, 235, 13, 49, 2, 192, 159, 13, 49, 2, 191, 166, 13, 49, - 28, 6, 65, 13, 49, 28, 6, 250, 120, 13, 49, 28, 6, 247, 193, 13, 49, 28, - 6, 238, 127, 13, 49, 28, 6, 71, 13, 49, 28, 6, 233, 175, 13, 49, 28, 6, - 232, 51, 13, 49, 28, 6, 230, 116, 13, 49, 28, 6, 68, 13, 49, 28, 6, 223, - 35, 13, 49, 28, 6, 222, 152, 13, 49, 28, 6, 172, 13, 49, 28, 6, 218, 168, - 13, 49, 28, 6, 215, 61, 13, 49, 28, 6, 74, 13, 49, 28, 6, 210, 236, 13, - 49, 28, 6, 208, 104, 13, 49, 28, 6, 146, 13, 49, 28, 6, 206, 8, 13, 49, - 28, 6, 200, 43, 13, 49, 28, 6, 66, 13, 49, 28, 6, 196, 12, 13, 49, 28, 6, - 193, 224, 13, 49, 28, 6, 192, 235, 13, 49, 28, 6, 192, 159, 13, 49, 28, - 6, 191, 166, 13, 49, 28, 2, 65, 13, 49, 28, 2, 250, 120, 13, 49, 28, 2, - 247, 193, 13, 49, 28, 2, 238, 127, 13, 49, 28, 2, 71, 13, 49, 28, 2, 233, - 175, 13, 49, 28, 2, 232, 51, 13, 49, 28, 2, 230, 116, 13, 49, 28, 2, 68, - 13, 49, 28, 2, 223, 35, 13, 49, 28, 2, 222, 152, 13, 49, 28, 2, 172, 13, - 49, 28, 2, 218, 168, 13, 49, 28, 2, 215, 61, 13, 49, 28, 2, 74, 13, 49, - 28, 2, 210, 236, 13, 49, 28, 2, 208, 104, 13, 49, 28, 2, 146, 13, 49, 28, - 2, 206, 8, 13, 49, 28, 2, 200, 43, 13, 49, 28, 2, 66, 13, 49, 28, 2, 196, - 12, 13, 49, 28, 2, 193, 224, 13, 49, 28, 2, 192, 235, 13, 49, 28, 2, 192, - 159, 13, 49, 28, 2, 191, 166, 13, 49, 43, 6, 65, 13, 49, 43, 6, 250, 120, - 13, 49, 43, 6, 247, 193, 13, 49, 43, 6, 238, 127, 13, 49, 43, 6, 71, 13, - 49, 43, 6, 233, 175, 13, 49, 43, 6, 232, 51, 13, 49, 43, 6, 230, 116, 13, - 49, 43, 6, 68, 13, 49, 43, 6, 223, 35, 13, 49, 43, 6, 222, 152, 13, 49, - 43, 6, 172, 13, 49, 43, 6, 218, 168, 13, 49, 43, 6, 215, 61, 13, 49, 43, - 6, 74, 13, 49, 43, 6, 210, 236, 13, 49, 43, 6, 208, 104, 13, 49, 43, 6, - 146, 13, 49, 43, 6, 206, 8, 13, 49, 43, 6, 200, 43, 13, 49, 43, 6, 66, - 13, 49, 43, 6, 196, 12, 13, 49, 43, 6, 193, 224, 13, 49, 43, 6, 192, 235, - 13, 49, 43, 6, 192, 159, 13, 49, 43, 6, 191, 166, 13, 49, 43, 2, 65, 13, - 49, 43, 2, 250, 120, 13, 49, 43, 2, 247, 193, 13, 49, 43, 2, 238, 127, - 13, 49, 43, 2, 71, 13, 49, 43, 2, 233, 175, 13, 49, 43, 2, 232, 51, 13, - 49, 43, 2, 230, 116, 13, 49, 43, 2, 68, 13, 49, 43, 2, 223, 35, 13, 49, - 43, 2, 222, 152, 13, 49, 43, 2, 172, 13, 49, 43, 2, 218, 168, 13, 49, 43, - 2, 215, 61, 13, 49, 43, 2, 74, 13, 49, 43, 2, 210, 236, 13, 49, 43, 2, - 208, 104, 13, 49, 43, 2, 146, 13, 49, 43, 2, 206, 8, 13, 49, 43, 2, 200, - 43, 13, 49, 43, 2, 66, 13, 49, 43, 2, 196, 12, 13, 49, 43, 2, 193, 224, - 13, 49, 43, 2, 192, 235, 13, 49, 43, 2, 192, 159, 13, 49, 43, 2, 191, - 166, 13, 49, 28, 43, 6, 65, 13, 49, 28, 43, 6, 250, 120, 13, 49, 28, 43, - 6, 247, 193, 13, 49, 28, 43, 6, 238, 127, 13, 49, 28, 43, 6, 71, 13, 49, - 28, 43, 6, 233, 175, 13, 49, 28, 43, 6, 232, 51, 13, 49, 28, 43, 6, 230, - 116, 13, 49, 28, 43, 6, 68, 13, 49, 28, 43, 6, 223, 35, 13, 49, 28, 43, - 6, 222, 152, 13, 49, 28, 43, 6, 172, 13, 49, 28, 43, 6, 218, 168, 13, 49, - 28, 43, 6, 215, 61, 13, 49, 28, 43, 6, 74, 13, 49, 28, 43, 6, 210, 236, - 13, 49, 28, 43, 6, 208, 104, 13, 49, 28, 43, 6, 146, 13, 49, 28, 43, 6, - 206, 8, 13, 49, 28, 43, 6, 200, 43, 13, 49, 28, 43, 6, 66, 13, 49, 28, - 43, 6, 196, 12, 13, 49, 28, 43, 6, 193, 224, 13, 49, 28, 43, 6, 192, 235, - 13, 49, 28, 43, 6, 192, 159, 13, 49, 28, 43, 6, 191, 166, 13, 49, 28, 43, - 2, 65, 13, 49, 28, 43, 2, 250, 120, 13, 49, 28, 43, 2, 247, 193, 13, 49, - 28, 43, 2, 238, 127, 13, 49, 28, 43, 2, 71, 13, 49, 28, 43, 2, 233, 175, - 13, 49, 28, 43, 2, 232, 51, 13, 49, 28, 43, 2, 230, 116, 13, 49, 28, 43, - 2, 68, 13, 49, 28, 43, 2, 223, 35, 13, 49, 28, 43, 2, 222, 152, 13, 49, - 28, 43, 2, 172, 13, 49, 28, 43, 2, 218, 168, 13, 49, 28, 43, 2, 215, 61, - 13, 49, 28, 43, 2, 74, 13, 49, 28, 43, 2, 210, 236, 13, 49, 28, 43, 2, - 208, 104, 13, 49, 28, 43, 2, 146, 13, 49, 28, 43, 2, 206, 8, 13, 49, 28, - 43, 2, 200, 43, 13, 49, 28, 43, 2, 66, 13, 49, 28, 43, 2, 196, 12, 13, - 49, 28, 43, 2, 193, 224, 13, 49, 28, 43, 2, 192, 235, 13, 49, 28, 43, 2, - 192, 159, 13, 49, 28, 43, 2, 191, 166, 13, 215, 217, 6, 65, 13, 215, 217, - 6, 250, 120, 13, 215, 217, 6, 247, 193, 13, 215, 217, 6, 238, 127, 13, - 215, 217, 6, 71, 13, 215, 217, 6, 233, 175, 13, 215, 217, 6, 232, 51, 13, - 215, 217, 6, 230, 116, 13, 215, 217, 6, 68, 13, 215, 217, 6, 223, 35, 13, - 215, 217, 6, 222, 152, 13, 215, 217, 6, 172, 13, 215, 217, 6, 218, 168, - 13, 215, 217, 6, 215, 61, 13, 215, 217, 6, 74, 13, 215, 217, 6, 210, 236, - 13, 215, 217, 6, 208, 104, 13, 215, 217, 6, 146, 13, 215, 217, 6, 206, 8, - 13, 215, 217, 6, 200, 43, 13, 215, 217, 6, 66, 13, 215, 217, 6, 196, 12, - 13, 215, 217, 6, 193, 224, 13, 215, 217, 6, 192, 235, 13, 215, 217, 6, - 192, 159, 13, 215, 217, 6, 191, 166, 13, 215, 217, 2, 65, 13, 215, 217, - 2, 250, 120, 13, 215, 217, 2, 247, 193, 13, 215, 217, 2, 238, 127, 13, - 215, 217, 2, 71, 13, 215, 217, 2, 233, 175, 13, 215, 217, 2, 232, 51, 13, - 215, 217, 2, 230, 116, 13, 215, 217, 2, 68, 13, 215, 217, 2, 223, 35, 13, - 215, 217, 2, 222, 152, 13, 215, 217, 2, 172, 13, 215, 217, 2, 218, 168, - 13, 215, 217, 2, 215, 61, 13, 215, 217, 2, 74, 13, 215, 217, 2, 210, 236, - 13, 215, 217, 2, 208, 104, 13, 215, 217, 2, 146, 13, 215, 217, 2, 206, 8, - 13, 215, 217, 2, 200, 43, 13, 215, 217, 2, 66, 13, 215, 217, 2, 196, 12, - 13, 215, 217, 2, 193, 224, 13, 215, 217, 2, 192, 235, 13, 215, 217, 2, - 192, 159, 13, 215, 217, 2, 191, 166, 13, 43, 2, 236, 139, 68, 13, 43, 2, - 236, 139, 223, 35, 13, 28, 6, 251, 160, 13, 28, 6, 248, 212, 13, 28, 6, - 231, 211, 13, 28, 6, 237, 106, 13, 28, 6, 234, 47, 13, 28, 6, 191, 76, - 13, 28, 6, 233, 253, 13, 28, 6, 199, 15, 13, 28, 6, 223, 83, 13, 28, 6, - 222, 72, 13, 28, 6, 220, 31, 13, 28, 6, 215, 155, 13, 28, 6, 212, 178, - 13, 28, 6, 192, 207, 13, 28, 6, 211, 107, 13, 28, 6, 209, 185, 13, 28, 6, - 207, 3, 13, 28, 6, 199, 16, 113, 13, 28, 6, 202, 196, 13, 28, 6, 199, - 166, 13, 28, 6, 196, 70, 13, 28, 6, 209, 211, 13, 28, 6, 243, 95, 13, 28, - 6, 208, 176, 13, 28, 6, 211, 110, 13, 28, 214, 245, 13, 28, 2, 251, 160, - 13, 28, 2, 248, 212, 13, 28, 2, 231, 211, 13, 28, 2, 237, 106, 13, 28, 2, - 234, 47, 13, 28, 2, 191, 76, 13, 28, 2, 233, 253, 13, 28, 2, 199, 15, 13, - 28, 2, 223, 83, 13, 28, 2, 222, 72, 13, 28, 2, 220, 31, 13, 28, 2, 215, - 155, 13, 28, 2, 212, 178, 13, 28, 2, 192, 207, 13, 28, 2, 211, 107, 13, - 28, 2, 209, 185, 13, 28, 2, 207, 3, 13, 28, 2, 53, 202, 196, 13, 28, 2, - 202, 196, 13, 28, 2, 199, 166, 13, 28, 2, 196, 70, 13, 28, 2, 209, 211, - 13, 28, 2, 243, 95, 13, 28, 2, 208, 176, 13, 28, 2, 211, 110, 13, 28, - 210, 105, 237, 16, 13, 28, 234, 48, 113, 13, 28, 199, 16, 113, 13, 28, - 222, 73, 113, 13, 28, 209, 212, 113, 13, 28, 207, 4, 113, 13, 28, 209, - 186, 113, 13, 43, 6, 251, 160, 13, 43, 6, 248, 212, 13, 43, 6, 231, 211, - 13, 43, 6, 237, 106, 13, 43, 6, 234, 47, 13, 43, 6, 191, 76, 13, 43, 6, - 233, 253, 13, 43, 6, 199, 15, 13, 43, 6, 223, 83, 13, 43, 6, 222, 72, 13, - 43, 6, 220, 31, 13, 43, 6, 215, 155, 13, 43, 6, 212, 178, 13, 43, 6, 192, - 207, 13, 43, 6, 211, 107, 13, 43, 6, 209, 185, 13, 43, 6, 207, 3, 13, 43, - 6, 199, 16, 113, 13, 43, 6, 202, 196, 13, 43, 6, 199, 166, 13, 43, 6, - 196, 70, 13, 43, 6, 209, 211, 13, 43, 6, 243, 95, 13, 43, 6, 208, 176, - 13, 43, 6, 211, 110, 13, 43, 214, 245, 13, 43, 2, 251, 160, 13, 43, 2, - 248, 212, 13, 43, 2, 231, 211, 13, 43, 2, 237, 106, 13, 43, 2, 234, 47, - 13, 43, 2, 191, 76, 13, 43, 2, 233, 253, 13, 43, 2, 199, 15, 13, 43, 2, - 223, 83, 13, 43, 2, 222, 72, 13, 43, 2, 220, 31, 13, 43, 2, 215, 155, 13, - 43, 2, 212, 178, 13, 43, 2, 192, 207, 13, 43, 2, 211, 107, 13, 43, 2, - 209, 185, 13, 43, 2, 207, 3, 13, 43, 2, 53, 202, 196, 13, 43, 2, 202, - 196, 13, 43, 2, 199, 166, 13, 43, 2, 196, 70, 13, 43, 2, 209, 211, 13, - 43, 2, 243, 95, 13, 43, 2, 208, 176, 13, 43, 2, 211, 110, 13, 43, 210, - 105, 237, 16, 13, 43, 234, 48, 113, 13, 43, 199, 16, 113, 13, 43, 222, - 73, 113, 13, 43, 209, 212, 113, 13, 43, 207, 4, 113, 13, 43, 209, 186, - 113, 13, 28, 43, 6, 251, 160, 13, 28, 43, 6, 248, 212, 13, 28, 43, 6, - 231, 211, 13, 28, 43, 6, 237, 106, 13, 28, 43, 6, 234, 47, 13, 28, 43, 6, - 191, 76, 13, 28, 43, 6, 233, 253, 13, 28, 43, 6, 199, 15, 13, 28, 43, 6, - 223, 83, 13, 28, 43, 6, 222, 72, 13, 28, 43, 6, 220, 31, 13, 28, 43, 6, - 215, 155, 13, 28, 43, 6, 212, 178, 13, 28, 43, 6, 192, 207, 13, 28, 43, - 6, 211, 107, 13, 28, 43, 6, 209, 185, 13, 28, 43, 6, 207, 3, 13, 28, 43, - 6, 199, 16, 113, 13, 28, 43, 6, 202, 196, 13, 28, 43, 6, 199, 166, 13, - 28, 43, 6, 196, 70, 13, 28, 43, 6, 209, 211, 13, 28, 43, 6, 243, 95, 13, - 28, 43, 6, 208, 176, 13, 28, 43, 6, 211, 110, 13, 28, 43, 214, 245, 13, - 28, 43, 2, 251, 160, 13, 28, 43, 2, 248, 212, 13, 28, 43, 2, 231, 211, - 13, 28, 43, 2, 237, 106, 13, 28, 43, 2, 234, 47, 13, 28, 43, 2, 191, 76, - 13, 28, 43, 2, 233, 253, 13, 28, 43, 2, 199, 15, 13, 28, 43, 2, 223, 83, - 13, 28, 43, 2, 222, 72, 13, 28, 43, 2, 220, 31, 13, 28, 43, 2, 215, 155, - 13, 28, 43, 2, 212, 178, 13, 28, 43, 2, 192, 207, 13, 28, 43, 2, 211, - 107, 13, 28, 43, 2, 209, 185, 13, 28, 43, 2, 207, 3, 13, 28, 43, 2, 53, - 202, 196, 13, 28, 43, 2, 202, 196, 13, 28, 43, 2, 199, 166, 13, 28, 43, - 2, 196, 70, 13, 28, 43, 2, 209, 211, 13, 28, 43, 2, 243, 95, 13, 28, 43, - 2, 208, 176, 13, 28, 43, 2, 211, 110, 13, 28, 43, 210, 105, 237, 16, 13, - 28, 43, 234, 48, 113, 13, 28, 43, 199, 16, 113, 13, 28, 43, 222, 73, 113, - 13, 28, 43, 209, 212, 113, 13, 28, 43, 207, 4, 113, 13, 28, 43, 209, 186, - 113, 13, 49, 28, 6, 251, 160, 13, 49, 28, 6, 248, 212, 13, 49, 28, 6, - 231, 211, 13, 49, 28, 6, 237, 106, 13, 49, 28, 6, 234, 47, 13, 49, 28, 6, - 191, 76, 13, 49, 28, 6, 233, 253, 13, 49, 28, 6, 199, 15, 13, 49, 28, 6, - 223, 83, 13, 49, 28, 6, 222, 72, 13, 49, 28, 6, 220, 31, 13, 49, 28, 6, - 215, 155, 13, 49, 28, 6, 212, 178, 13, 49, 28, 6, 192, 207, 13, 49, 28, - 6, 211, 107, 13, 49, 28, 6, 209, 185, 13, 49, 28, 6, 207, 3, 13, 49, 28, - 6, 199, 16, 113, 13, 49, 28, 6, 202, 196, 13, 49, 28, 6, 199, 166, 13, - 49, 28, 6, 196, 70, 13, 49, 28, 6, 209, 211, 13, 49, 28, 6, 243, 95, 13, - 49, 28, 6, 208, 176, 13, 49, 28, 6, 211, 110, 13, 49, 28, 214, 245, 13, - 49, 28, 2, 251, 160, 13, 49, 28, 2, 248, 212, 13, 49, 28, 2, 231, 211, - 13, 49, 28, 2, 237, 106, 13, 49, 28, 2, 234, 47, 13, 49, 28, 2, 191, 76, - 13, 49, 28, 2, 233, 253, 13, 49, 28, 2, 199, 15, 13, 49, 28, 2, 223, 83, - 13, 49, 28, 2, 222, 72, 13, 49, 28, 2, 220, 31, 13, 49, 28, 2, 215, 155, - 13, 49, 28, 2, 212, 178, 13, 49, 28, 2, 192, 207, 13, 49, 28, 2, 211, - 107, 13, 49, 28, 2, 209, 185, 13, 49, 28, 2, 207, 3, 13, 49, 28, 2, 53, - 202, 196, 13, 49, 28, 2, 202, 196, 13, 49, 28, 2, 199, 166, 13, 49, 28, - 2, 196, 70, 13, 49, 28, 2, 209, 211, 13, 49, 28, 2, 243, 95, 13, 49, 28, - 2, 208, 176, 13, 49, 28, 2, 211, 110, 13, 49, 28, 210, 105, 237, 16, 13, - 49, 28, 234, 48, 113, 13, 49, 28, 199, 16, 113, 13, 49, 28, 222, 73, 113, - 13, 49, 28, 209, 212, 113, 13, 49, 28, 207, 4, 113, 13, 49, 28, 209, 186, - 113, 13, 49, 28, 43, 6, 251, 160, 13, 49, 28, 43, 6, 248, 212, 13, 49, - 28, 43, 6, 231, 211, 13, 49, 28, 43, 6, 237, 106, 13, 49, 28, 43, 6, 234, - 47, 13, 49, 28, 43, 6, 191, 76, 13, 49, 28, 43, 6, 233, 253, 13, 49, 28, - 43, 6, 199, 15, 13, 49, 28, 43, 6, 223, 83, 13, 49, 28, 43, 6, 222, 72, - 13, 49, 28, 43, 6, 220, 31, 13, 49, 28, 43, 6, 215, 155, 13, 49, 28, 43, - 6, 212, 178, 13, 49, 28, 43, 6, 192, 207, 13, 49, 28, 43, 6, 211, 107, - 13, 49, 28, 43, 6, 209, 185, 13, 49, 28, 43, 6, 207, 3, 13, 49, 28, 43, - 6, 199, 16, 113, 13, 49, 28, 43, 6, 202, 196, 13, 49, 28, 43, 6, 199, - 166, 13, 49, 28, 43, 6, 196, 70, 13, 49, 28, 43, 6, 209, 211, 13, 49, 28, - 43, 6, 243, 95, 13, 49, 28, 43, 6, 208, 176, 13, 49, 28, 43, 6, 211, 110, - 13, 49, 28, 43, 214, 245, 13, 49, 28, 43, 2, 251, 160, 13, 49, 28, 43, 2, - 248, 212, 13, 49, 28, 43, 2, 231, 211, 13, 49, 28, 43, 2, 237, 106, 13, - 49, 28, 43, 2, 234, 47, 13, 49, 28, 43, 2, 191, 76, 13, 49, 28, 43, 2, - 233, 253, 13, 49, 28, 43, 2, 199, 15, 13, 49, 28, 43, 2, 223, 83, 13, 49, - 28, 43, 2, 222, 72, 13, 49, 28, 43, 2, 220, 31, 13, 49, 28, 43, 2, 215, - 155, 13, 49, 28, 43, 2, 212, 178, 13, 49, 28, 43, 2, 192, 207, 13, 49, - 28, 43, 2, 211, 107, 13, 49, 28, 43, 2, 209, 185, 13, 49, 28, 43, 2, 207, - 3, 13, 49, 28, 43, 2, 53, 202, 196, 13, 49, 28, 43, 2, 202, 196, 13, 49, - 28, 43, 2, 199, 166, 13, 49, 28, 43, 2, 196, 70, 13, 49, 28, 43, 2, 209, - 211, 13, 49, 28, 43, 2, 243, 95, 13, 49, 28, 43, 2, 208, 176, 13, 49, 28, - 43, 2, 211, 110, 13, 49, 28, 43, 210, 105, 237, 16, 13, 49, 28, 43, 234, - 48, 113, 13, 49, 28, 43, 199, 16, 113, 13, 49, 28, 43, 222, 73, 113, 13, - 49, 28, 43, 209, 212, 113, 13, 49, 28, 43, 207, 4, 113, 13, 49, 28, 43, - 209, 186, 113, 13, 28, 6, 237, 10, 13, 28, 2, 237, 10, 13, 28, 17, 191, - 77, 13, 28, 17, 107, 13, 28, 17, 109, 13, 28, 17, 138, 13, 28, 17, 134, - 13, 28, 17, 149, 13, 28, 17, 169, 13, 28, 17, 175, 13, 28, 17, 171, 13, - 28, 17, 178, 13, 235, 129, 17, 191, 77, 13, 235, 129, 17, 107, 13, 235, - 129, 17, 109, 13, 235, 129, 17, 138, 13, 235, 129, 17, 134, 13, 235, 129, - 17, 149, 13, 235, 129, 17, 169, 13, 235, 129, 17, 175, 13, 235, 129, 17, - 171, 13, 235, 129, 17, 178, 13, 49, 17, 191, 77, 13, 49, 17, 107, 13, 49, - 17, 109, 13, 49, 17, 138, 13, 49, 17, 134, 13, 49, 17, 149, 13, 49, 17, - 169, 13, 49, 17, 175, 13, 49, 17, 171, 13, 49, 17, 178, 13, 49, 28, 17, - 191, 77, 13, 49, 28, 17, 107, 13, 49, 28, 17, 109, 13, 49, 28, 17, 138, - 13, 49, 28, 17, 134, 13, 49, 28, 17, 149, 13, 49, 28, 17, 169, 13, 49, - 28, 17, 175, 13, 49, 28, 17, 171, 13, 49, 28, 17, 178, 13, 215, 217, 17, - 191, 77, 13, 215, 217, 17, 107, 13, 215, 217, 17, 109, 13, 215, 217, 17, - 138, 13, 215, 217, 17, 134, 13, 215, 217, 17, 149, 13, 215, 217, 17, 169, - 13, 215, 217, 17, 175, 13, 215, 217, 17, 171, 13, 215, 217, 17, 178, 24, - 151, 223, 148, 24, 230, 50, 223, 148, 24, 230, 46, 223, 148, 24, 230, 35, - 223, 148, 24, 230, 39, 223, 148, 24, 230, 52, 223, 148, 24, 151, 141, - 248, 223, 24, 230, 50, 141, 248, 223, 24, 151, 176, 196, 105, 141, 248, - 223, 24, 151, 141, 207, 147, 221, 70, 24, 151, 141, 238, 177, 24, 151, - 141, 229, 124, 24, 151, 141, 229, 125, 218, 241, 24, 230, 50, 141, 229, - 126, 24, 151, 141, 216, 84, 24, 230, 50, 141, 216, 84, 24, 151, 141, 82, - 248, 223, 24, 151, 141, 82, 207, 147, 221, 69, 24, 151, 141, 82, 229, - 124, 24, 151, 141, 133, 82, 229, 124, 24, 151, 141, 229, 125, 82, 196, - 77, 24, 151, 141, 82, 239, 46, 24, 151, 141, 82, 239, 47, 141, 248, 223, - 24, 151, 141, 82, 239, 47, 82, 248, 223, 24, 151, 141, 82, 239, 47, 238, - 177, 24, 151, 141, 82, 239, 47, 229, 124, 24, 151, 141, 82, 238, 213, 24, - 230, 50, 141, 82, 238, 213, 24, 151, 82, 248, 224, 139, 223, 148, 24, - 151, 141, 248, 224, 139, 216, 84, 24, 151, 141, 82, 198, 212, 24, 230, - 50, 141, 82, 198, 212, 24, 151, 141, 82, 201, 53, 176, 248, 223, 24, 151, - 141, 82, 248, 224, 176, 201, 52, 24, 151, 141, 82, 176, 248, 223, 24, - 151, 141, 82, 229, 125, 201, 199, 176, 202, 207, 24, 151, 141, 133, 82, - 229, 125, 176, 202, 207, 24, 151, 141, 133, 82, 229, 125, 176, 239, 46, - 24, 151, 141, 229, 125, 82, 133, 176, 202, 207, 24, 151, 141, 82, 133, - 201, 199, 176, 232, 132, 24, 151, 141, 82, 176, 238, 177, 24, 151, 141, - 82, 176, 243, 9, 24, 151, 141, 82, 176, 228, 249, 24, 151, 141, 82, 176, - 229, 124, 24, 151, 176, 248, 210, 141, 82, 201, 52, 24, 151, 141, 82, - 239, 47, 176, 202, 207, 24, 151, 141, 82, 239, 47, 176, 202, 208, 239, - 46, 24, 151, 141, 82, 239, 47, 176, 202, 208, 248, 223, 24, 151, 82, 176, - 228, 250, 141, 196, 77, 24, 151, 141, 176, 228, 250, 82, 196, 77, 24, - 151, 141, 82, 239, 47, 229, 125, 176, 202, 207, 24, 151, 141, 82, 238, - 214, 176, 202, 207, 24, 151, 141, 82, 239, 47, 176, 232, 132, 24, 151, - 141, 82, 239, 47, 238, 178, 176, 232, 132, 24, 151, 82, 176, 238, 178, - 141, 196, 77, 24, 151, 141, 176, 238, 178, 82, 196, 77, 24, 151, 82, 176, - 47, 141, 196, 77, 24, 151, 82, 176, 47, 141, 229, 124, 24, 151, 141, 176, - 251, 114, 211, 15, 82, 196, 77, 24, 151, 141, 176, 251, 114, 223, 163, - 82, 196, 77, 24, 151, 141, 176, 47, 82, 196, 77, 24, 151, 141, 82, 176, - 239, 47, 229, 124, 24, 151, 141, 82, 176, 251, 114, 211, 14, 24, 151, - 141, 82, 176, 251, 113, 24, 151, 82, 176, 251, 114, 211, 15, 141, 196, - 77, 24, 151, 82, 176, 251, 114, 211, 15, 141, 238, 213, 24, 151, 82, 176, - 251, 114, 141, 196, 77, 24, 151, 141, 176, 228, 250, 82, 229, 124, 24, - 230, 41, 232, 128, 232, 247, 24, 230, 41, 232, 128, 232, 248, 248, 223, - 24, 230, 41, 232, 128, 232, 248, 229, 124, 24, 230, 41, 232, 128, 232, - 248, 239, 46, 24, 230, 41, 232, 128, 232, 248, 239, 47, 201, 209, 24, - 230, 48, 232, 128, 232, 248, 239, 46, 24, 151, 232, 128, 232, 248, 239, - 47, 248, 223, 24, 230, 39, 232, 128, 232, 248, 239, 46, 24, 230, 41, 232, - 226, 232, 248, 201, 198, 24, 230, 41, 229, 213, 232, 226, 232, 248, 201, - 198, 24, 230, 41, 232, 226, 232, 248, 201, 199, 232, 128, 248, 223, 24, - 230, 41, 229, 213, 232, 226, 232, 248, 201, 199, 232, 128, 248, 223, 24, - 230, 41, 232, 226, 232, 248, 201, 199, 248, 223, 24, 230, 41, 229, 213, - 232, 226, 232, 248, 201, 199, 248, 223, 24, 230, 41, 232, 226, 232, 248, - 201, 199, 176, 232, 132, 24, 230, 46, 232, 226, 232, 248, 201, 198, 24, - 230, 46, 232, 226, 232, 248, 201, 199, 211, 76, 24, 230, 39, 232, 226, - 232, 248, 201, 199, 211, 76, 24, 230, 35, 232, 226, 232, 248, 201, 198, - 24, 230, 41, 232, 226, 232, 248, 201, 199, 229, 124, 24, 230, 41, 232, - 226, 232, 248, 201, 199, 229, 125, 176, 202, 207, 24, 230, 41, 232, 226, - 232, 248, 201, 199, 229, 125, 213, 44, 198, 212, 24, 230, 40, 24, 230, - 41, 248, 210, 210, 183, 233, 95, 24, 230, 41, 229, 212, 24, 230, 41, 176, - 202, 207, 24, 230, 41, 229, 213, 176, 202, 207, 24, 230, 41, 176, 248, - 223, 24, 230, 41, 176, 232, 132, 24, 230, 41, 201, 210, 141, 176, 202, - 207, 24, 230, 41, 201, 210, 247, 21, 24, 230, 41, 201, 210, 247, 22, 176, - 202, 207, 24, 230, 41, 201, 210, 247, 22, 176, 202, 208, 248, 223, 24, - 230, 41, 201, 210, 219, 82, 24, 230, 47, 24, 230, 48, 176, 202, 207, 24, - 230, 48, 213, 44, 198, 212, 24, 230, 48, 176, 232, 132, 24, 230, 37, 238, - 173, 24, 230, 36, 24, 230, 46, 211, 76, 24, 230, 45, 24, 230, 46, 211, - 77, 176, 202, 207, 24, 230, 46, 176, 202, 207, 24, 230, 46, 211, 77, 213, - 44, 198, 212, 24, 230, 46, 213, 44, 198, 212, 24, 230, 46, 211, 77, 176, - 232, 132, 24, 230, 46, 176, 232, 132, 24, 230, 44, 211, 76, 24, 230, 43, - 24, 230, 49, 24, 230, 34, 24, 230, 35, 176, 202, 207, 24, 230, 35, 213, - 44, 198, 212, 24, 230, 35, 176, 232, 132, 24, 230, 39, 211, 76, 24, 230, - 39, 211, 77, 176, 232, 132, 24, 230, 38, 24, 230, 39, 202, 70, 24, 230, - 39, 211, 77, 176, 202, 207, 24, 230, 39, 176, 202, 207, 24, 230, 39, 211, - 77, 213, 44, 198, 212, 24, 230, 39, 213, 44, 198, 212, 24, 230, 39, 176, - 202, 208, 198, 35, 223, 148, 24, 230, 39, 176, 248, 210, 82, 206, 188, - 24, 230, 51, 24, 151, 141, 82, 206, 188, 24, 230, 50, 141, 82, 206, 188, - 24, 230, 39, 141, 82, 206, 188, 24, 230, 52, 141, 82, 206, 188, 24, 230, - 39, 219, 82, 24, 151, 141, 82, 206, 189, 248, 223, 24, 151, 141, 82, 206, - 189, 239, 46, 24, 230, 39, 141, 82, 206, 189, 239, 46, 24, 151, 219, 83, - 235, 123, 24, 151, 219, 83, 144, 206, 183, 201, 52, 24, 151, 219, 83, - 144, 206, 183, 238, 162, 24, 151, 219, 83, 144, 211, 26, 243, 9, 24, 151, - 219, 83, 196, 77, 24, 151, 176, 196, 105, 219, 83, 196, 77, 24, 230, 50, - 219, 83, 196, 77, 24, 230, 35, 219, 83, 196, 77, 24, 230, 52, 219, 83, - 196, 77, 24, 151, 219, 83, 207, 147, 221, 70, 24, 151, 219, 83, 248, 223, - 24, 151, 219, 83, 198, 36, 198, 212, 24, 151, 219, 83, 198, 212, 24, 230, - 39, 219, 83, 198, 212, 24, 151, 219, 83, 141, 198, 212, 24, 230, 39, 219, - 83, 141, 198, 212, 24, 230, 52, 219, 83, 141, 176, 141, 176, 211, 14, 24, - 230, 52, 219, 83, 141, 176, 141, 198, 212, 24, 151, 219, 83, 223, 148, - 24, 230, 50, 219, 83, 223, 148, 24, 230, 39, 219, 83, 223, 148, 24, 230, - 52, 219, 83, 223, 148, 24, 151, 141, 82, 219, 82, 24, 230, 50, 141, 82, - 219, 82, 24, 230, 39, 141, 82, 219, 82, 24, 230, 39, 206, 188, 24, 230, - 52, 141, 82, 219, 82, 24, 151, 141, 82, 238, 218, 219, 82, 24, 230, 50, - 141, 82, 238, 218, 219, 82, 24, 151, 206, 189, 235, 123, 24, 230, 39, - 206, 189, 144, 141, 176, 228, 251, 216, 84, 24, 230, 52, 206, 189, 144, - 82, 176, 141, 238, 217, 24, 151, 206, 189, 196, 77, 24, 151, 206, 189, - 207, 147, 221, 70, 24, 151, 206, 189, 219, 82, 24, 230, 50, 206, 189, - 219, 82, 24, 230, 35, 206, 189, 219, 82, 24, 230, 52, 206, 189, 219, 82, - 24, 151, 206, 189, 216, 84, 24, 151, 206, 189, 82, 239, 46, 24, 151, 206, - 189, 82, 207, 147, 221, 69, 24, 151, 206, 189, 223, 148, 24, 151, 206, - 189, 198, 212, 24, 230, 37, 206, 189, 198, 212, 24, 151, 141, 206, 189, - 219, 82, 24, 230, 50, 141, 206, 189, 219, 82, 24, 230, 44, 141, 206, 189, - 219, 83, 211, 104, 24, 230, 37, 141, 206, 189, 219, 83, 211, 14, 24, 230, - 37, 141, 206, 189, 219, 83, 223, 162, 24, 230, 37, 141, 206, 189, 219, - 83, 196, 104, 24, 230, 46, 141, 206, 189, 219, 82, 24, 230, 39, 141, 206, - 189, 219, 82, 24, 230, 52, 141, 206, 189, 219, 83, 211, 14, 24, 230, 52, - 141, 206, 189, 219, 82, 24, 151, 82, 235, 123, 24, 230, 39, 216, 84, 24, - 151, 82, 196, 77, 24, 230, 50, 82, 196, 77, 24, 151, 82, 207, 147, 221, - 70, 24, 151, 82, 133, 176, 202, 207, 24, 230, 37, 82, 198, 212, 24, 151, - 82, 176, 219, 82, 24, 151, 82, 219, 82, 24, 151, 82, 206, 189, 219, 82, - 24, 230, 50, 82, 206, 189, 219, 82, 24, 230, 44, 82, 206, 189, 219, 83, - 211, 104, 24, 230, 46, 82, 206, 189, 219, 82, 24, 230, 39, 82, 206, 189, - 219, 82, 24, 230, 52, 82, 206, 189, 219, 83, 211, 14, 24, 230, 52, 82, - 206, 189, 219, 83, 223, 162, 24, 230, 52, 82, 206, 189, 219, 82, 24, 230, - 50, 82, 206, 189, 219, 83, 248, 223, 24, 230, 48, 82, 206, 189, 219, 83, - 239, 46, 24, 230, 48, 82, 206, 189, 219, 83, 239, 47, 202, 207, 24, 230, - 37, 82, 206, 189, 219, 83, 239, 47, 211, 14, 24, 230, 37, 82, 206, 189, - 219, 83, 239, 47, 223, 162, 24, 230, 37, 82, 206, 189, 219, 83, 239, 46, - 24, 230, 39, 141, 229, 124, 24, 151, 141, 176, 202, 207, 24, 230, 39, - 141, 176, 202, 207, 24, 151, 141, 176, 202, 208, 176, 237, 38, 24, 151, - 141, 176, 202, 208, 176, 239, 46, 24, 151, 141, 176, 202, 208, 176, 248, - 223, 24, 151, 141, 176, 202, 208, 141, 248, 223, 24, 151, 141, 176, 202, - 208, 248, 80, 248, 223, 24, 151, 141, 176, 202, 208, 141, 229, 126, 24, - 151, 141, 176, 232, 133, 141, 201, 52, 24, 151, 141, 176, 232, 133, 141, - 248, 223, 24, 151, 141, 176, 102, 24, 151, 141, 176, 238, 173, 24, 151, - 141, 176, 238, 165, 176, 223, 117, 24, 230, 48, 141, 176, 238, 165, 176, - 223, 117, 24, 151, 141, 176, 238, 165, 176, 196, 104, 24, 151, 141, 176, - 243, 10, 24, 230, 46, 141, 198, 212, 24, 230, 46, 141, 176, 211, 76, 24, - 230, 39, 141, 176, 211, 76, 24, 230, 39, 141, 176, 220, 12, 24, 230, 39, - 141, 198, 212, 24, 230, 39, 141, 176, 202, 70, 24, 230, 52, 141, 176, - 211, 14, 24, 230, 52, 141, 176, 223, 162, 24, 230, 52, 141, 198, 212, 24, - 151, 198, 212, 24, 151, 176, 229, 212, 24, 151, 176, 202, 208, 237, 38, - 24, 151, 176, 202, 208, 239, 46, 24, 151, 176, 202, 208, 248, 223, 24, - 151, 176, 232, 132, 24, 151, 176, 248, 210, 141, 216, 84, 24, 151, 176, - 248, 210, 82, 206, 188, 24, 151, 176, 248, 210, 206, 189, 219, 82, 24, - 151, 176, 196, 105, 105, 232, 247, 24, 151, 176, 139, 105, 232, 247, 24, - 151, 176, 196, 105, 115, 232, 247, 24, 151, 176, 196, 105, 232, 128, 232, - 247, 24, 151, 176, 139, 232, 128, 207, 147, 221, 69, 24, 230, 42, 24, - 151, 229, 212, 24, 198, 37, 202, 169, 24, 198, 37, 215, 128, 24, 198, 37, - 248, 209, 24, 230, 215, 202, 169, 24, 230, 215, 215, 128, 24, 230, 215, - 248, 209, 24, 201, 33, 202, 169, 24, 201, 33, 215, 128, 24, 201, 33, 248, - 209, 24, 248, 18, 202, 169, 24, 248, 18, 215, 128, 24, 248, 18, 248, 209, - 24, 206, 60, 202, 169, 24, 206, 60, 215, 128, 24, 206, 60, 248, 209, 24, - 200, 171, 200, 76, 24, 200, 171, 248, 209, 24, 201, 186, 220, 13, 202, - 169, 24, 201, 186, 2, 202, 169, 24, 201, 186, 220, 13, 215, 128, 24, 201, - 186, 2, 215, 128, 24, 201, 186, 204, 6, 24, 232, 197, 220, 13, 202, 169, - 24, 232, 197, 2, 202, 169, 24, 232, 197, 220, 13, 215, 128, 24, 232, 197, - 2, 215, 128, 24, 232, 197, 204, 6, 24, 201, 186, 232, 197, 251, 154, 24, - 215, 172, 133, 144, 220, 12, 24, 215, 172, 133, 144, 202, 70, 24, 215, - 172, 133, 204, 6, 24, 215, 172, 144, 204, 6, 24, 215, 172, 133, 144, 251, - 155, 220, 12, 24, 215, 172, 133, 144, 251, 155, 202, 70, 24, 215, 172, - 202, 208, 119, 202, 208, 205, 84, 24, 215, 171, 232, 253, 239, 35, 24, - 215, 173, 232, 253, 239, 35, 24, 215, 171, 202, 170, 201, 53, 202, 70, - 24, 215, 171, 202, 170, 201, 53, 216, 212, 24, 215, 171, 202, 170, 201, - 53, 220, 12, 24, 215, 171, 202, 170, 201, 53, 220, 10, 24, 215, 171, 202, - 170, 193, 4, 232, 200, 24, 215, 171, 55, 201, 52, 24, 215, 171, 55, 193, - 4, 232, 200, 24, 215, 171, 55, 251, 154, 24, 215, 171, 55, 251, 155, 193, - 4, 232, 200, 24, 215, 171, 238, 217, 24, 215, 171, 197, 225, 201, 53, - 215, 175, 24, 215, 171, 197, 225, 193, 4, 232, 200, 24, 215, 171, 197, - 225, 251, 154, 24, 215, 171, 197, 225, 251, 155, 193, 4, 232, 200, 24, - 215, 171, 248, 228, 202, 70, 24, 215, 171, 248, 228, 216, 212, 24, 215, - 171, 248, 228, 220, 12, 24, 215, 171, 239, 2, 202, 70, 24, 215, 171, 239, - 2, 216, 212, 24, 215, 171, 239, 2, 220, 12, 24, 215, 171, 239, 2, 206, - 120, 24, 215, 171, 243, 126, 202, 70, 24, 215, 171, 243, 126, 216, 212, - 24, 215, 171, 243, 126, 220, 12, 24, 215, 171, 111, 202, 70, 24, 215, - 171, 111, 216, 212, 24, 215, 171, 111, 220, 12, 24, 215, 171, 191, 21, - 202, 70, 24, 215, 171, 191, 21, 216, 212, 24, 215, 171, 191, 21, 220, 12, - 24, 215, 171, 210, 57, 202, 70, 24, 215, 171, 210, 57, 216, 212, 24, 215, - 171, 210, 57, 220, 12, 24, 198, 3, 206, 118, 202, 169, 24, 198, 3, 206, - 118, 235, 133, 24, 198, 3, 206, 118, 251, 154, 24, 198, 3, 206, 119, 202, - 169, 24, 198, 3, 206, 119, 235, 133, 24, 198, 3, 206, 119, 251, 154, 24, - 198, 3, 203, 144, 24, 198, 3, 250, 251, 201, 218, 202, 169, 24, 198, 3, - 250, 251, 201, 218, 235, 133, 24, 198, 3, 250, 251, 201, 218, 197, 224, - 24, 215, 174, 250, 139, 202, 70, 24, 215, 174, 250, 139, 216, 212, 24, - 215, 174, 250, 139, 220, 12, 24, 215, 174, 250, 139, 220, 10, 24, 215, - 174, 198, 31, 202, 70, 24, 215, 174, 198, 31, 216, 212, 24, 215, 174, - 198, 31, 220, 12, 24, 215, 174, 198, 31, 220, 10, 24, 215, 174, 248, 210, - 250, 139, 202, 70, 24, 215, 174, 248, 210, 250, 139, 216, 212, 24, 215, - 174, 248, 210, 250, 139, 220, 12, 24, 215, 174, 248, 210, 250, 139, 220, - 10, 24, 215, 174, 248, 210, 198, 31, 202, 70, 24, 215, 174, 248, 210, - 198, 31, 216, 212, 24, 215, 174, 248, 210, 198, 31, 220, 12, 24, 215, - 174, 248, 210, 198, 31, 220, 10, 24, 215, 173, 202, 170, 201, 53, 202, - 70, 24, 215, 173, 202, 170, 201, 53, 216, 212, 24, 215, 173, 202, 170, - 201, 53, 220, 12, 24, 215, 173, 202, 170, 201, 53, 220, 10, 24, 215, 173, - 202, 170, 193, 4, 232, 200, 24, 215, 173, 55, 201, 52, 24, 215, 173, 55, - 193, 4, 232, 200, 24, 215, 173, 55, 251, 154, 24, 215, 173, 55, 251, 155, - 193, 4, 232, 200, 24, 215, 173, 238, 217, 24, 215, 173, 197, 225, 201, - 53, 215, 175, 24, 215, 173, 197, 225, 193, 4, 232, 200, 24, 215, 173, - 197, 225, 251, 155, 215, 175, 24, 215, 173, 197, 225, 251, 155, 193, 4, - 232, 200, 24, 215, 173, 248, 227, 24, 215, 173, 239, 2, 202, 70, 24, 215, - 173, 239, 2, 216, 212, 24, 215, 173, 239, 2, 220, 12, 24, 215, 173, 243, - 125, 24, 215, 173, 111, 202, 70, 24, 215, 173, 111, 216, 212, 24, 215, - 173, 111, 220, 12, 24, 215, 173, 191, 21, 202, 70, 24, 215, 173, 191, 21, - 216, 212, 24, 215, 173, 191, 21, 220, 12, 24, 215, 173, 210, 57, 202, 70, - 24, 215, 173, 210, 57, 216, 212, 24, 215, 173, 210, 57, 220, 12, 24, 198, - 4, 206, 119, 202, 169, 24, 198, 4, 206, 119, 235, 133, 24, 198, 4, 206, - 119, 251, 154, 24, 198, 4, 206, 118, 202, 169, 24, 198, 4, 206, 118, 235, - 133, 24, 198, 4, 206, 118, 251, 154, 24, 198, 4, 203, 144, 24, 215, 171, - 238, 165, 208, 23, 202, 70, 24, 215, 171, 238, 165, 208, 23, 216, 212, - 24, 215, 171, 238, 165, 208, 23, 220, 12, 24, 215, 171, 238, 165, 208, - 23, 220, 10, 24, 215, 171, 238, 165, 230, 67, 202, 70, 24, 215, 171, 238, - 165, 230, 67, 216, 212, 24, 215, 171, 238, 165, 230, 67, 220, 12, 24, - 215, 171, 238, 165, 230, 67, 220, 10, 24, 215, 171, 238, 165, 198, 218, - 243, 11, 202, 70, 24, 215, 171, 238, 165, 198, 218, 243, 11, 216, 212, - 24, 215, 171, 228, 143, 202, 70, 24, 215, 171, 228, 143, 216, 212, 24, - 215, 171, 228, 143, 220, 12, 24, 215, 171, 219, 5, 202, 70, 24, 215, 171, - 219, 5, 216, 212, 24, 215, 171, 219, 5, 220, 12, 24, 215, 171, 219, 5, 2, - 235, 133, 24, 215, 171, 193, 139, 238, 165, 55, 202, 70, 24, 215, 171, - 193, 139, 238, 165, 55, 216, 212, 24, 215, 171, 193, 139, 238, 165, 55, - 220, 12, 24, 215, 171, 193, 139, 238, 165, 197, 225, 202, 70, 24, 215, - 171, 193, 139, 238, 165, 197, 225, 216, 212, 24, 215, 171, 193, 139, 238, - 165, 197, 225, 220, 12, 24, 215, 171, 238, 165, 199, 25, 201, 52, 24, - 215, 171, 238, 163, 238, 218, 202, 70, 24, 215, 171, 238, 163, 238, 218, - 216, 212, 24, 206, 118, 202, 169, 24, 206, 118, 235, 133, 24, 206, 118, - 251, 156, 24, 215, 171, 203, 144, 24, 215, 171, 238, 165, 229, 116, 232, - 97, 193, 167, 24, 215, 171, 228, 143, 229, 116, 232, 97, 193, 167, 24, - 215, 171, 219, 5, 229, 116, 232, 97, 193, 167, 24, 215, 171, 193, 139, - 229, 116, 232, 97, 193, 167, 24, 206, 118, 202, 170, 229, 116, 232, 97, - 193, 167, 24, 206, 118, 55, 229, 116, 232, 97, 193, 167, 24, 206, 118, - 251, 155, 229, 116, 232, 97, 193, 167, 24, 215, 171, 238, 165, 229, 116, - 243, 104, 24, 215, 171, 228, 143, 229, 116, 243, 104, 24, 215, 171, 219, - 5, 229, 116, 243, 104, 24, 215, 171, 193, 139, 229, 116, 243, 104, 24, - 206, 118, 202, 170, 229, 116, 243, 104, 24, 206, 118, 55, 229, 116, 243, - 104, 24, 206, 118, 251, 155, 229, 116, 243, 104, 24, 215, 171, 193, 139, - 237, 39, 210, 86, 202, 70, 24, 215, 171, 193, 139, 237, 39, 210, 86, 216, - 212, 24, 215, 171, 193, 139, 237, 39, 210, 86, 220, 12, 24, 215, 173, - 238, 165, 229, 116, 247, 31, 202, 70, 24, 215, 173, 238, 165, 229, 116, - 247, 31, 220, 12, 24, 215, 173, 228, 143, 229, 116, 247, 31, 2, 235, 133, - 24, 215, 173, 228, 143, 229, 116, 247, 31, 220, 13, 235, 133, 24, 215, - 173, 228, 143, 229, 116, 247, 31, 2, 197, 224, 24, 215, 173, 228, 143, - 229, 116, 247, 31, 220, 13, 197, 224, 24, 215, 173, 219, 5, 229, 116, - 247, 31, 2, 202, 169, 24, 215, 173, 219, 5, 229, 116, 247, 31, 220, 13, - 202, 169, 24, 215, 173, 219, 5, 229, 116, 247, 31, 2, 235, 133, 24, 215, - 173, 219, 5, 229, 116, 247, 31, 220, 13, 235, 133, 24, 215, 173, 193, - 139, 229, 116, 247, 31, 202, 70, 24, 215, 173, 193, 139, 229, 116, 247, - 31, 220, 12, 24, 206, 119, 202, 170, 229, 116, 247, 30, 24, 206, 119, 55, - 229, 116, 247, 30, 24, 206, 119, 251, 155, 229, 116, 247, 30, 24, 215, - 173, 238, 165, 229, 116, 232, 194, 202, 70, 24, 215, 173, 238, 165, 229, - 116, 232, 194, 220, 12, 24, 215, 173, 228, 143, 229, 116, 232, 194, 2, - 235, 133, 24, 215, 173, 228, 143, 229, 116, 232, 194, 220, 13, 235, 133, - 24, 215, 173, 228, 143, 229, 116, 232, 194, 197, 225, 2, 197, 224, 24, - 215, 173, 228, 143, 229, 116, 232, 194, 197, 225, 220, 13, 197, 224, 24, - 215, 173, 219, 5, 229, 116, 232, 194, 2, 202, 169, 24, 215, 173, 219, 5, - 229, 116, 232, 194, 220, 13, 202, 169, 24, 215, 173, 219, 5, 229, 116, - 232, 194, 2, 235, 133, 24, 215, 173, 219, 5, 229, 116, 232, 194, 220, 13, - 235, 133, 24, 215, 173, 193, 139, 229, 116, 232, 194, 202, 70, 24, 215, - 173, 193, 139, 229, 116, 232, 194, 220, 12, 24, 206, 119, 202, 170, 229, - 116, 232, 193, 24, 206, 119, 55, 229, 116, 232, 193, 24, 206, 119, 251, - 155, 229, 116, 232, 193, 24, 215, 173, 238, 165, 202, 70, 24, 215, 173, - 238, 165, 216, 212, 24, 215, 173, 238, 165, 220, 12, 24, 215, 173, 238, - 165, 220, 10, 24, 215, 173, 238, 165, 242, 78, 24, 215, 173, 228, 143, - 202, 70, 24, 215, 173, 219, 5, 202, 70, 24, 215, 173, 193, 139, 202, 58, - 24, 215, 173, 193, 139, 202, 70, 24, 215, 173, 193, 139, 220, 12, 24, - 206, 119, 202, 169, 24, 206, 119, 235, 133, 24, 206, 119, 251, 154, 24, - 215, 173, 203, 145, 210, 118, 24, 215, 171, 250, 251, 243, 11, 2, 202, - 169, 24, 215, 171, 250, 251, 243, 11, 216, 213, 202, 169, 24, 215, 171, - 250, 251, 243, 11, 2, 235, 133, 24, 215, 171, 250, 251, 243, 11, 216, - 213, 235, 133, 24, 215, 173, 250, 251, 243, 11, 229, 116, 193, 168, 2, - 202, 169, 24, 215, 173, 250, 251, 243, 11, 229, 116, 193, 168, 216, 213, - 202, 169, 24, 215, 173, 250, 251, 243, 11, 229, 116, 193, 168, 220, 13, - 202, 169, 24, 215, 173, 250, 251, 243, 11, 229, 116, 193, 168, 2, 235, - 133, 24, 215, 173, 250, 251, 243, 11, 229, 116, 193, 168, 216, 213, 235, - 133, 24, 215, 173, 250, 251, 243, 11, 229, 116, 193, 168, 220, 13, 235, - 133, 24, 215, 171, 193, 4, 243, 11, 232, 97, 202, 169, 24, 215, 171, 193, - 4, 243, 11, 232, 97, 235, 133, 24, 215, 173, 193, 4, 243, 11, 229, 116, - 193, 168, 202, 169, 24, 215, 173, 193, 4, 243, 11, 229, 116, 193, 168, - 235, 133, 24, 215, 171, 232, 253, 243, 8, 202, 169, 24, 215, 171, 232, - 253, 243, 8, 235, 133, 24, 215, 173, 232, 253, 243, 8, 229, 116, 193, - 168, 202, 169, 24, 215, 173, 232, 253, 243, 8, 229, 116, 193, 168, 235, - 133, 24, 235, 40, 250, 236, 202, 70, 24, 235, 40, 250, 236, 220, 12, 24, - 235, 40, 233, 73, 24, 235, 40, 202, 75, 24, 235, 40, 199, 88, 24, 235, - 40, 207, 63, 24, 235, 40, 202, 176, 24, 235, 40, 202, 177, 251, 154, 24, - 235, 40, 233, 225, 211, 27, 198, 146, 24, 235, 40, 230, 226, 24, 229, - 235, 24, 229, 236, 206, 193, 24, 229, 236, 215, 171, 201, 52, 24, 229, - 236, 215, 171, 198, 149, 24, 229, 236, 215, 173, 201, 52, 24, 229, 236, - 215, 171, 238, 164, 24, 229, 236, 215, 173, 238, 164, 24, 229, 236, 215, - 176, 243, 10, 24, 233, 104, 236, 233, 209, 25, 213, 14, 232, 133, 198, - 147, 24, 233, 104, 236, 233, 209, 25, 213, 14, 133, 211, 57, 235, 123, - 24, 233, 104, 236, 233, 209, 25, 213, 14, 133, 211, 57, 144, 198, 147, - 24, 233, 191, 201, 53, 196, 77, 24, 233, 191, 201, 53, 214, 81, 24, 233, - 191, 201, 53, 235, 123, 24, 235, 107, 233, 191, 214, 82, 235, 123, 24, - 235, 107, 233, 191, 144, 214, 81, 24, 235, 107, 233, 191, 133, 214, 81, - 24, 235, 107, 233, 191, 214, 82, 196, 77, 24, 232, 151, 214, 81, 24, 232, - 151, 239, 35, 24, 232, 151, 193, 7, 24, 233, 186, 211, 76, 24, 233, 186, - 201, 185, 24, 233, 186, 242, 218, 24, 233, 194, 248, 130, 202, 169, 24, - 233, 194, 248, 130, 215, 128, 24, 233, 186, 132, 211, 76, 24, 233, 186, - 193, 78, 211, 76, 24, 233, 186, 132, 242, 218, 24, 233, 186, 193, 76, - 215, 175, 24, 233, 194, 193, 58, 24, 233, 187, 196, 77, 24, 233, 187, - 235, 123, 24, 233, 187, 232, 180, 24, 233, 189, 201, 52, 24, 233, 189, - 201, 53, 235, 133, 24, 233, 189, 201, 53, 251, 154, 24, 233, 190, 201, - 52, 24, 233, 190, 201, 53, 235, 133, 24, 233, 190, 201, 53, 251, 154, 24, - 233, 189, 238, 162, 24, 233, 190, 238, 162, 24, 233, 189, 243, 5, 24, - 243, 121, 208, 155, 24, 243, 121, 214, 81, 24, 243, 121, 200, 218, 24, - 199, 89, 243, 121, 229, 135, 24, 199, 89, 243, 121, 216, 84, 24, 199, 89, - 243, 121, 218, 241, 24, 234, 209, 24, 213, 14, 214, 81, 24, 213, 14, 239, - 35, 24, 213, 14, 193, 5, 24, 213, 14, 193, 73, 24, 251, 226, 248, 116, - 211, 14, 24, 251, 226, 200, 217, 223, 162, 24, 251, 226, 248, 118, 2, - 206, 117, 24, 251, 226, 200, 219, 2, 206, 117, 24, 248, 39, 223, 134, 24, - 248, 39, 233, 214, 24, 215, 180, 242, 219, 214, 81, 24, 215, 180, 242, - 219, 232, 132, 24, 215, 180, 242, 219, 239, 35, 24, 215, 180, 202, 65, - 24, 215, 180, 202, 66, 193, 7, 24, 215, 180, 202, 66, 211, 76, 24, 215, - 180, 232, 93, 24, 215, 180, 232, 94, 193, 7, 24, 215, 180, 232, 94, 211, - 76, 24, 215, 180, 211, 77, 243, 10, 24, 215, 180, 211, 77, 232, 132, 24, - 215, 180, 211, 77, 193, 7, 24, 215, 180, 211, 77, 211, 7, 24, 215, 180, - 211, 77, 211, 8, 193, 7, 24, 215, 180, 211, 77, 211, 8, 192, 88, 24, 215, - 180, 211, 77, 207, 92, 24, 215, 180, 211, 77, 207, 93, 193, 7, 24, 215, - 180, 211, 77, 207, 93, 192, 88, 24, 215, 180, 221, 122, 24, 215, 180, - 221, 123, 232, 132, 24, 215, 180, 221, 123, 193, 7, 24, 215, 180, 199, - 88, 24, 215, 180, 199, 89, 232, 132, 24, 215, 180, 199, 89, 200, 218, 24, - 219, 97, 208, 219, 198, 87, 24, 219, 99, 110, 139, 196, 74, 24, 219, 99, - 116, 139, 218, 236, 24, 215, 180, 239, 0, 24, 215, 180, 193, 6, 202, 169, - 24, 215, 180, 193, 6, 235, 133, 24, 198, 62, 201, 74, 211, 15, 233, 75, - 24, 198, 62, 219, 142, 219, 96, 24, 198, 62, 198, 136, 248, 210, 219, 96, - 24, 198, 62, 198, 136, 198, 35, 223, 118, 215, 179, 24, 198, 62, 223, - 118, 215, 180, 207, 63, 24, 198, 62, 215, 170, 251, 251, 243, 122, 24, - 198, 62, 247, 22, 201, 74, 211, 14, 24, 198, 62, 247, 22, 223, 118, 215, - 179, 24, 199, 117, 24, 199, 118, 215, 175, 24, 199, 118, 211, 105, 198, - 61, 24, 199, 118, 211, 105, 198, 62, 215, 175, 24, 199, 118, 211, 105, - 219, 96, 24, 199, 118, 211, 105, 219, 97, 215, 175, 24, 199, 118, 248, - 146, 219, 96, 24, 215, 171, 223, 14, 24, 215, 173, 223, 14, 24, 214, 112, - 24, 230, 78, 24, 233, 217, 24, 203, 22, 229, 123, 201, 219, 24, 203, 22, - 229, 123, 209, 23, 24, 193, 165, 203, 22, 229, 123, 215, 178, 24, 232, - 192, 203, 22, 229, 123, 215, 178, 24, 203, 22, 198, 148, 232, 98, 193, - 172, 24, 198, 43, 201, 53, 201, 37, 24, 198, 43, 238, 163, 248, 227, 24, - 198, 44, 197, 16, 24, 116, 248, 105, 198, 148, 232, 98, 229, 123, 222, - 195, 24, 219, 124, 242, 79, 24, 219, 124, 219, 197, 24, 219, 124, 219, - 196, 24, 219, 124, 219, 195, 24, 219, 124, 219, 194, 24, 219, 124, 219, - 193, 24, 219, 124, 219, 192, 24, 219, 124, 219, 191, 24, 232, 252, 24, - 219, 37, 201, 247, 24, 219, 38, 201, 247, 24, 219, 40, 229, 208, 24, 219, - 40, 193, 74, 24, 219, 40, 237, 92, 24, 219, 40, 229, 236, 214, 112, 24, - 219, 40, 198, 45, 24, 219, 40, 219, 123, 237, 9, 24, 242, 74, 24, 232, - 80, 201, 63, 24, 204, 25, 24, 242, 83, 24, 210, 113, 24, 233, 6, 215, - 244, 24, 233, 6, 215, 243, 24, 233, 6, 215, 242, 24, 233, 6, 215, 241, - 24, 233, 6, 215, 240, 24, 206, 121, 215, 244, 24, 206, 121, 215, 243, 24, - 206, 121, 215, 242, 24, 206, 121, 215, 241, 24, 206, 121, 215, 240, 24, - 206, 121, 215, 239, 24, 206, 121, 215, 238, 24, 206, 121, 215, 237, 24, - 206, 121, 215, 251, 24, 206, 121, 215, 250, 24, 206, 121, 215, 249, 24, - 206, 121, 215, 248, 24, 206, 121, 215, 247, 24, 206, 121, 215, 246, 24, - 206, 121, 215, 245, 8, 2, 1, 233, 37, 237, 3, 4, 197, 228, 8, 2, 1, 207, - 18, 27, 232, 51, 8, 1, 2, 6, 153, 232, 51, 8, 2, 1, 207, 18, 222, 152, 8, - 1, 2, 6, 220, 143, 4, 248, 231, 8, 2, 1, 219, 163, 4, 207, 24, 102, 8, 2, - 1, 153, 192, 160, 4, 248, 231, 8, 2, 1, 207, 18, 234, 88, 8, 2, 1, 153, - 207, 222, 4, 179, 219, 213, 23, 207, 24, 102, 8, 2, 1, 200, 44, 4, 228, - 251, 23, 207, 24, 102, 8, 1, 207, 24, 242, 232, 4, 207, 24, 102, 8, 2, 1, - 234, 13, 4, 55, 164, 8, 2, 1, 234, 13, 4, 55, 249, 88, 23, 238, 175, 8, - 2, 1, 153, 200, 44, 4, 238, 175, 8, 1, 223, 93, 231, 11, 201, 64, 4, 238, - 175, 8, 1, 201, 36, 247, 194, 4, 238, 175, 8, 1, 2, 6, 153, 222, 152, 8, - 2, 1, 220, 143, 4, 232, 233, 8, 2, 1, 237, 70, 237, 3, 4, 210, 192, 102, - 8, 2, 1, 220, 143, 4, 248, 232, 23, 210, 192, 102, 8, 2, 1, 234, 89, 4, - 210, 192, 102, 8, 2, 1, 153, 207, 222, 4, 210, 192, 102, 8, 2, 1, 207, - 222, 4, 232, 234, 23, 210, 192, 102, 8, 2, 1, 199, 79, 237, 3, 4, 210, - 192, 102, 8, 2, 1, 233, 179, 4, 210, 192, 102, 8, 2, 1, 237, 70, 237, 3, - 4, 207, 24, 102, 8, 2, 1, 228, 74, 4, 201, 28, 23, 207, 24, 102, 8, 2, 1, - 187, 4, 207, 24, 102, 8, 2, 1, 199, 79, 237, 3, 4, 207, 24, 102, 8, 2, 1, - 247, 194, 4, 207, 24, 102, 8, 2, 1, 206, 9, 4, 238, 175, 8, 2, 1, 238, - 128, 4, 216, 86, 45, 102, 8, 2, 1, 220, 143, 4, 216, 86, 45, 102, 8, 2, - 1, 215, 62, 4, 216, 86, 45, 102, 8, 2, 1, 207, 222, 4, 216, 86, 45, 102, - 8, 2, 1, 206, 9, 4, 216, 86, 45, 102, 8, 2, 1, 200, 44, 4, 216, 86, 45, - 102, 33, 135, 1, 250, 122, 33, 135, 1, 247, 252, 33, 135, 1, 195, 151, - 33, 135, 1, 231, 18, 33, 135, 1, 236, 169, 33, 135, 1, 192, 49, 33, 135, - 1, 191, 55, 33, 135, 1, 191, 82, 33, 135, 1, 223, 39, 33, 135, 1, 89, - 223, 39, 33, 135, 1, 68, 33, 135, 1, 236, 190, 33, 135, 1, 222, 94, 33, - 135, 1, 219, 75, 33, 135, 1, 215, 66, 33, 135, 1, 214, 210, 33, 135, 1, - 211, 89, 33, 135, 1, 209, 55, 33, 135, 1, 206, 179, 33, 135, 1, 202, 77, - 33, 135, 1, 197, 44, 33, 135, 1, 196, 124, 33, 135, 1, 232, 101, 33, 135, - 1, 229, 188, 33, 135, 1, 203, 8, 33, 135, 1, 197, 146, 33, 135, 1, 243, - 54, 33, 135, 1, 203, 165, 33, 135, 1, 192, 58, 33, 135, 1, 192, 60, 33, - 135, 1, 192, 93, 33, 135, 1, 191, 225, 33, 135, 1, 2, 191, 190, 33, 135, - 1, 192, 12, 33, 135, 1, 223, 82, 2, 191, 190, 33, 135, 1, 248, 175, 191, - 190, 33, 135, 1, 223, 82, 248, 175, 191, 190, 33, 135, 1, 232, 228, 52, - 1, 38, 2, 65, 52, 1, 38, 2, 249, 17, 52, 1, 38, 2, 195, 153, 52, 1, 38, - 2, 231, 77, 52, 1, 38, 2, 237, 146, 52, 1, 38, 2, 223, 226, 52, 1, 38, 2, - 191, 62, 52, 1, 38, 2, 191, 87, 52, 1, 38, 2, 68, 52, 1, 38, 2, 155, 52, - 1, 38, 2, 234, 140, 52, 1, 38, 2, 234, 114, 52, 1, 38, 2, 74, 52, 1, 38, - 2, 210, 63, 52, 1, 38, 2, 234, 34, 52, 1, 38, 2, 234, 22, 52, 1, 38, 2, - 199, 145, 52, 1, 38, 2, 66, 52, 1, 38, 2, 234, 181, 52, 1, 38, 2, 140, - 52, 1, 38, 2, 197, 161, 52, 1, 38, 2, 243, 127, 52, 1, 38, 2, 203, 165, - 52, 1, 38, 2, 192, 58, 52, 1, 38, 2, 71, 52, 1, 38, 2, 191, 225, 52, 1, - 38, 2, 235, 17, 52, 1, 38, 2, 205, 86, 52, 1, 38, 2, 247, 203, 68, 52, 1, - 38, 2, 223, 10, 52, 1, 38, 2, 249, 82, 74, 52, 1, 38, 2, 201, 53, 66, 52, - 1, 38, 2, 210, 179, 38, 200, 230, 2, 1, 65, 38, 200, 230, 2, 1, 249, 17, - 38, 200, 230, 2, 1, 195, 153, 38, 200, 230, 2, 1, 231, 77, 38, 200, 230, - 2, 1, 237, 146, 38, 200, 230, 2, 1, 223, 226, 38, 200, 230, 2, 1, 191, - 62, 38, 200, 230, 2, 1, 191, 87, 38, 200, 230, 2, 1, 68, 38, 200, 230, 2, - 1, 155, 38, 200, 230, 2, 1, 234, 140, 38, 200, 230, 2, 1, 74, 38, 200, - 230, 2, 1, 210, 63, 38, 200, 230, 2, 1, 234, 22, 38, 200, 230, 2, 1, 66, - 38, 200, 230, 2, 1, 234, 181, 38, 200, 230, 2, 1, 140, 38, 200, 230, 2, - 1, 197, 161, 38, 200, 230, 2, 1, 243, 127, 38, 200, 230, 2, 1, 203, 165, - 38, 200, 230, 2, 1, 230, 17, 56, 38, 200, 230, 2, 1, 192, 58, 38, 200, - 230, 2, 1, 231, 78, 4, 196, 69, 38, 200, 230, 2, 1, 247, 203, 68, 38, - 200, 230, 2, 1, 235, 32, 38, 200, 230, 2, 1, 235, 28, 52, 1, 38, 2, 234, - 23, 4, 237, 87, 52, 1, 38, 2, 192, 59, 4, 249, 147, 192, 62, 52, 1, 38, - 2, 201, 53, 126, 4, 106, 33, 38, 2, 1, 247, 203, 68, 212, 80, 208, 162, - 90, 1, 174, 212, 80, 208, 162, 90, 1, 197, 168, 212, 80, 208, 162, 90, 1, - 212, 199, 212, 80, 208, 162, 90, 1, 190, 190, 212, 80, 208, 162, 90, 1, - 140, 212, 80, 208, 162, 90, 1, 180, 212, 80, 208, 162, 90, 1, 192, 220, - 212, 80, 208, 162, 90, 1, 213, 111, 212, 80, 208, 162, 90, 1, 247, 160, - 212, 80, 208, 162, 90, 1, 173, 212, 80, 208, 162, 90, 1, 188, 212, 80, - 208, 162, 90, 1, 191, 123, 212, 80, 208, 162, 90, 1, 214, 166, 212, 80, - 208, 162, 90, 1, 212, 186, 212, 80, 208, 162, 90, 1, 155, 212, 80, 208, - 162, 90, 1, 238, 32, 212, 80, 208, 162, 90, 1, 212, 101, 212, 80, 208, - 162, 90, 1, 212, 244, 212, 80, 208, 162, 90, 1, 195, 188, 212, 80, 208, - 162, 90, 1, 212, 180, 212, 80, 208, 162, 90, 1, 197, 8, 212, 80, 208, - 162, 90, 1, 233, 109, 212, 80, 208, 162, 90, 1, 165, 212, 80, 208, 162, - 90, 1, 208, 96, 212, 80, 208, 162, 90, 1, 170, 212, 80, 208, 162, 90, 1, - 212, 246, 212, 80, 208, 162, 90, 1, 168, 212, 80, 208, 162, 90, 1, 192, - 175, 212, 80, 208, 162, 90, 1, 212, 248, 212, 80, 208, 162, 90, 1, 236, - 186, 212, 80, 208, 162, 90, 1, 212, 247, 212, 80, 208, 162, 90, 1, 230, - 81, 212, 80, 208, 162, 90, 1, 216, 19, 212, 80, 208, 162, 90, 1, 209, - 110, 212, 80, 208, 162, 90, 1, 231, 240, 212, 80, 208, 162, 90, 1, 206, - 109, 212, 80, 208, 162, 90, 1, 65, 212, 80, 208, 162, 90, 1, 252, 206, - 212, 80, 208, 162, 90, 1, 68, 212, 80, 208, 162, 90, 1, 66, 212, 80, 208, - 162, 90, 1, 74, 212, 80, 208, 162, 90, 1, 211, 87, 212, 80, 208, 162, 90, - 1, 71, 212, 80, 208, 162, 90, 1, 234, 188, 212, 80, 208, 162, 90, 1, 193, - 224, 212, 80, 208, 162, 90, 198, 70, 212, 80, 208, 162, 90, 198, 66, 212, - 80, 208, 162, 90, 198, 67, 212, 80, 208, 162, 90, 198, 64, 212, 80, 208, - 162, 90, 198, 65, 212, 80, 208, 162, 90, 198, 68, 212, 80, 208, 162, 90, - 198, 69, 212, 80, 208, 162, 90, 3, 40, 209, 250, 212, 80, 208, 162, 90, - 3, 40, 199, 3, 212, 80, 208, 162, 90, 3, 40, 219, 39, 212, 80, 208, 162, - 90, 3, 40, 251, 101, 212, 80, 208, 162, 90, 3, 40, 223, 94, 212, 80, 208, - 162, 90, 3, 192, 183, 192, 182, 212, 80, 208, 162, 90, 5, 219, 190, 212, - 80, 208, 162, 90, 17, 191, 77, 212, 80, 208, 162, 90, 17, 107, 212, 80, - 208, 162, 90, 17, 109, 212, 80, 208, 162, 90, 17, 138, 212, 80, 208, 162, - 90, 17, 134, 212, 80, 208, 162, 90, 17, 149, 212, 80, 208, 162, 90, 17, - 169, 212, 80, 208, 162, 90, 17, 175, 212, 80, 208, 162, 90, 17, 171, 212, - 80, 208, 162, 90, 17, 178, 212, 80, 208, 162, 90, 219, 28, 212, 96, 212, - 80, 208, 162, 90, 47, 247, 160, 198, 38, 1, 168, 198, 38, 1, 249, 153, - 198, 38, 1, 190, 190, 198, 38, 1, 238, 32, 198, 38, 1, 155, 198, 38, 1, - 231, 240, 198, 38, 1, 174, 198, 38, 1, 180, 198, 38, 1, 214, 68, 198, 38, - 1, 188, 198, 38, 1, 247, 1, 198, 38, 1, 170, 198, 38, 1, 193, 190, 198, - 38, 1, 223, 32, 198, 38, 1, 140, 198, 38, 1, 165, 198, 38, 1, 173, 198, - 38, 1, 68, 198, 38, 1, 248, 38, 68, 198, 38, 1, 223, 49, 198, 38, 1, 248, - 38, 223, 49, 198, 38, 1, 66, 198, 38, 1, 71, 198, 38, 1, 248, 38, 71, - 198, 38, 1, 234, 65, 198, 38, 1, 248, 38, 234, 65, 198, 38, 1, 74, 198, - 38, 1, 252, 25, 198, 38, 1, 248, 38, 252, 25, 198, 38, 1, 65, 198, 38, 3, - 206, 180, 198, 79, 193, 163, 1, 252, 206, 193, 163, 1, 65, 193, 163, 1, - 249, 153, 193, 163, 1, 247, 160, 193, 163, 1, 238, 32, 193, 163, 1, 231, - 240, 193, 163, 1, 170, 193, 163, 1, 209, 228, 193, 163, 1, 173, 193, 163, - 1, 180, 193, 163, 1, 168, 193, 163, 1, 190, 190, 193, 163, 1, 199, 49, - 193, 163, 1, 233, 109, 193, 163, 1, 188, 193, 163, 1, 203, 165, 193, 163, - 1, 223, 32, 193, 163, 1, 191, 123, 193, 163, 1, 193, 190, 193, 163, 1, - 195, 188, 193, 163, 1, 155, 193, 163, 1, 74, 193, 163, 1, 250, 163, 193, - 163, 1, 165, 193, 163, 1, 174, 193, 163, 1, 221, 215, 193, 163, 1, 140, - 193, 163, 1, 71, 193, 163, 1, 68, 193, 163, 1, 214, 68, 193, 163, 1, 66, - 193, 163, 1, 219, 66, 193, 163, 1, 197, 168, 193, 163, 1, 198, 26, 193, - 163, 1, 211, 94, 193, 163, 1, 252, 165, 193, 163, 1, 251, 122, 193, 163, - 1, 223, 136, 193, 163, 1, 211, 104, 193, 163, 1, 234, 103, 193, 163, 1, - 252, 166, 193, 163, 1, 212, 101, 193, 163, 1, 196, 147, 193, 163, 1, 192, - 24, 193, 163, 163, 197, 67, 193, 163, 163, 197, 66, 193, 163, 163, 221, - 54, 193, 163, 163, 221, 53, 193, 163, 17, 191, 77, 193, 163, 17, 107, - 193, 163, 17, 109, 193, 163, 17, 138, 193, 163, 17, 134, 193, 163, 17, - 149, 193, 163, 17, 169, 193, 163, 17, 175, 193, 163, 17, 171, 193, 163, - 17, 178, 193, 163, 213, 232, 56, 214, 243, 215, 120, 1, 74, 214, 243, - 215, 120, 1, 211, 78, 214, 243, 215, 120, 1, 211, 120, 214, 243, 215, - 120, 1, 210, 242, 214, 243, 215, 120, 1, 211, 94, 214, 243, 215, 120, 1, - 65, 214, 243, 215, 120, 1, 251, 218, 214, 243, 215, 120, 1, 252, 155, - 214, 243, 215, 120, 1, 251, 69, 214, 243, 215, 120, 1, 251, 245, 214, - 243, 215, 120, 1, 68, 214, 243, 215, 120, 1, 223, 68, 214, 243, 215, 120, - 1, 228, 18, 214, 243, 215, 120, 1, 223, 53, 214, 243, 215, 120, 1, 223, - 200, 214, 243, 215, 120, 1, 66, 214, 243, 215, 120, 1, 196, 160, 214, - 243, 215, 120, 1, 196, 158, 214, 243, 215, 120, 1, 196, 128, 214, 243, - 215, 120, 1, 196, 62, 214, 243, 215, 120, 1, 71, 214, 243, 215, 120, 1, - 234, 85, 214, 243, 215, 120, 1, 234, 180, 214, 243, 215, 120, 1, 234, - 114, 214, 243, 215, 120, 1, 234, 103, 214, 243, 215, 120, 1, 233, 245, - 214, 243, 215, 120, 1, 234, 122, 214, 243, 215, 120, 3, 211, 127, 214, - 243, 215, 120, 3, 215, 138, 214, 243, 215, 120, 3, 198, 28, 214, 243, - 215, 120, 3, 223, 193, 214, 243, 215, 120, 3, 200, 161, 214, 243, 215, - 120, 17, 191, 77, 214, 243, 215, 120, 17, 107, 214, 243, 215, 120, 17, - 109, 214, 243, 215, 120, 17, 138, 214, 243, 215, 120, 17, 134, 214, 243, - 215, 120, 17, 149, 214, 243, 215, 120, 17, 169, 214, 243, 215, 120, 17, - 175, 214, 243, 215, 120, 17, 171, 214, 243, 215, 120, 17, 178, 36, 5, - 229, 166, 36, 5, 229, 160, 36, 5, 229, 162, 36, 5, 229, 165, 36, 5, 229, - 163, 36, 5, 229, 164, 36, 5, 229, 161, 36, 5, 230, 147, 229, 170, 36, 5, - 229, 167, 36, 5, 229, 168, 36, 5, 229, 169, 36, 5, 230, 147, 215, 76, 36, - 5, 230, 147, 215, 77, 36, 5, 230, 147, 207, 236, 36, 5, 230, 147, 207, - 237, 36, 5, 230, 147, 207, 238, 36, 5, 230, 147, 247, 207, 36, 5, 230, - 147, 247, 208, 36, 5, 230, 147, 220, 172, 36, 5, 230, 147, 220, 173, 36, - 5, 230, 147, 220, 174, 36, 5, 230, 147, 230, 131, 36, 5, 230, 147, 230, - 132, 36, 5, 230, 147, 230, 133, 36, 5, 230, 147, 232, 58, 36, 5, 230, - 147, 232, 59, 36, 5, 230, 147, 208, 118, 36, 5, 230, 147, 208, 119, 85, - 84, 5, 218, 167, 221, 166, 85, 84, 5, 218, 163, 155, 85, 84, 5, 218, 161, - 220, 232, 85, 84, 5, 218, 37, 222, 13, 85, 84, 5, 218, 7, 222, 22, 85, - 84, 5, 218, 26, 221, 41, 85, 84, 5, 218, 54, 221, 67, 85, 84, 5, 217, - 179, 220, 219, 85, 84, 5, 218, 158, 193, 86, 85, 84, 5, 218, 156, 193, - 190, 85, 84, 5, 218, 154, 193, 0, 85, 84, 5, 217, 232, 193, 114, 85, 84, - 5, 217, 240, 193, 125, 85, 84, 5, 217, 244, 193, 29, 85, 84, 5, 218, 57, - 193, 48, 85, 84, 5, 217, 164, 192, 252, 85, 84, 5, 217, 215, 193, 112, - 85, 84, 5, 218, 41, 192, 240, 85, 84, 5, 218, 53, 192, 242, 85, 84, 5, - 217, 219, 192, 241, 85, 84, 5, 218, 152, 216, 44, 85, 84, 5, 218, 150, - 217, 90, 85, 84, 5, 218, 148, 215, 122, 85, 84, 5, 218, 43, 216, 186, 85, - 84, 5, 218, 8, 215, 231, 85, 84, 5, 217, 204, 215, 148, 85, 84, 5, 217, - 169, 215, 142, 85, 84, 5, 218, 146, 248, 188, 85, 84, 5, 218, 143, 249, - 153, 85, 84, 5, 218, 141, 248, 10, 85, 84, 5, 217, 208, 249, 1, 85, 84, - 5, 218, 5, 249, 17, 85, 84, 5, 217, 255, 248, 97, 85, 84, 5, 217, 220, - 248, 111, 85, 84, 5, 218, 131, 68, 85, 84, 5, 218, 129, 65, 85, 84, 5, - 218, 127, 66, 85, 84, 5, 217, 195, 234, 188, 85, 84, 5, 218, 2, 71, 85, - 84, 5, 217, 193, 211, 87, 85, 84, 5, 217, 211, 74, 85, 84, 5, 217, 221, - 234, 166, 85, 84, 5, 217, 227, 223, 162, 85, 84, 5, 217, 223, 223, 162, - 85, 84, 5, 217, 163, 251, 132, 85, 84, 5, 217, 180, 234, 103, 85, 84, 5, - 218, 116, 202, 222, 85, 84, 5, 218, 114, 188, 85, 84, 5, 218, 112, 201, - 4, 85, 84, 5, 217, 196, 205, 50, 85, 84, 5, 217, 242, 205, 68, 85, 84, 5, - 217, 222, 202, 16, 85, 84, 5, 218, 23, 202, 46, 85, 84, 5, 217, 162, 202, - 215, 85, 84, 5, 218, 102, 219, 146, 85, 84, 5, 218, 100, 173, 85, 84, 5, - 218, 98, 218, 225, 85, 84, 5, 218, 18, 219, 228, 85, 84, 5, 218, 29, 219, - 238, 85, 84, 5, 218, 48, 219, 8, 85, 84, 5, 217, 205, 219, 43, 85, 84, 5, - 217, 248, 179, 219, 238, 85, 84, 5, 218, 124, 237, 44, 85, 84, 5, 218, - 121, 238, 32, 85, 84, 5, 218, 118, 235, 89, 85, 84, 5, 218, 13, 237, 131, - 85, 84, 5, 217, 178, 236, 146, 85, 84, 5, 217, 177, 236, 174, 85, 84, 5, - 218, 110, 198, 193, 85, 84, 5, 218, 107, 190, 190, 85, 84, 5, 218, 105, - 197, 94, 85, 84, 5, 218, 11, 199, 121, 85, 84, 5, 218, 47, 199, 145, 85, - 84, 5, 217, 254, 198, 59, 85, 84, 5, 218, 33, 159, 85, 84, 5, 218, 96, - 222, 244, 85, 84, 5, 218, 93, 223, 32, 85, 84, 5, 218, 91, 222, 182, 85, - 84, 5, 217, 201, 223, 8, 85, 84, 5, 217, 245, 223, 10, 85, 84, 5, 217, - 198, 222, 191, 85, 84, 5, 218, 39, 222, 201, 85, 84, 5, 217, 183, 179, - 222, 201, 85, 84, 5, 218, 89, 192, 33, 85, 84, 5, 218, 86, 170, 85, 84, - 5, 218, 84, 191, 225, 85, 84, 5, 217, 249, 192, 77, 85, 84, 5, 218, 22, - 192, 80, 85, 84, 5, 217, 217, 191, 246, 85, 84, 5, 217, 237, 192, 12, 85, - 84, 5, 218, 80, 233, 23, 85, 84, 5, 218, 78, 233, 109, 85, 84, 5, 218, - 76, 232, 86, 85, 84, 5, 218, 24, 233, 52, 85, 84, 5, 218, 27, 233, 59, - 85, 84, 5, 217, 225, 232, 162, 85, 84, 5, 218, 14, 232, 175, 85, 84, 5, - 217, 161, 232, 85, 85, 84, 5, 218, 1, 233, 80, 85, 84, 5, 218, 74, 213, - 179, 85, 84, 5, 218, 72, 214, 226, 85, 84, 5, 218, 70, 212, 130, 85, 84, - 5, 217, 241, 214, 102, 85, 84, 5, 217, 189, 213, 31, 85, 84, 5, 217, 182, - 229, 158, 85, 84, 5, 218, 65, 140, 85, 84, 5, 217, 172, 228, 159, 85, 84, - 5, 218, 68, 229, 215, 85, 84, 5, 218, 6, 229, 245, 85, 84, 5, 218, 63, - 228, 252, 85, 84, 5, 217, 218, 229, 23, 85, 84, 5, 218, 19, 229, 214, 85, - 84, 5, 217, 230, 228, 245, 85, 84, 5, 218, 49, 229, 128, 85, 84, 5, 217, - 228, 230, 56, 85, 84, 5, 218, 15, 228, 142, 85, 84, 5, 218, 50, 229, 198, - 85, 84, 5, 217, 165, 228, 255, 85, 84, 5, 218, 56, 228, 155, 85, 84, 5, - 218, 12, 214, 33, 85, 84, 5, 218, 61, 214, 47, 85, 84, 5, 218, 20, 214, - 30, 85, 84, 5, 217, 243, 214, 41, 85, 84, 5, 217, 212, 214, 42, 85, 84, - 5, 217, 202, 214, 31, 85, 84, 5, 217, 238, 214, 32, 85, 84, 5, 217, 199, - 214, 46, 85, 84, 5, 217, 231, 214, 29, 85, 84, 5, 218, 16, 179, 214, 42, - 85, 84, 5, 217, 252, 179, 214, 31, 85, 84, 5, 217, 175, 179, 214, 32, 85, - 84, 5, 217, 203, 231, 53, 85, 84, 5, 217, 247, 231, 240, 85, 84, 5, 217, - 190, 230, 179, 85, 84, 5, 217, 168, 231, 157, 85, 84, 5, 217, 192, 230, - 165, 85, 84, 5, 217, 191, 230, 175, 85, 84, 5, 217, 174, 214, 52, 85, 84, - 5, 218, 45, 213, 245, 85, 84, 5, 217, 181, 213, 234, 85, 84, 5, 218, 34, - 209, 185, 85, 84, 5, 218, 3, 168, 85, 84, 5, 218, 52, 208, 165, 85, 84, - 5, 218, 21, 210, 49, 85, 84, 5, 218, 51, 210, 63, 85, 84, 5, 218, 0, 209, - 37, 85, 84, 5, 218, 36, 209, 73, 85, 84, 5, 217, 213, 216, 252, 85, 84, - 5, 218, 40, 217, 11, 85, 84, 5, 217, 236, 216, 246, 85, 84, 5, 218, 55, - 217, 3, 85, 84, 5, 217, 170, 217, 3, 85, 84, 5, 218, 30, 217, 4, 85, 84, - 5, 217, 186, 216, 247, 85, 84, 5, 217, 184, 216, 248, 85, 84, 5, 217, - 171, 216, 240, 85, 84, 5, 217, 197, 179, 217, 4, 85, 84, 5, 217, 253, - 179, 216, 247, 85, 84, 5, 217, 216, 179, 216, 248, 85, 84, 5, 217, 226, - 221, 13, 85, 84, 5, 218, 10, 221, 21, 85, 84, 5, 218, 28, 221, 9, 85, 84, - 5, 218, 59, 221, 16, 85, 84, 5, 217, 250, 221, 17, 85, 84, 5, 217, 246, - 221, 11, 85, 84, 5, 217, 200, 221, 12, 85, 84, 5, 217, 234, 231, 174, 85, - 84, 5, 218, 46, 231, 182, 85, 84, 5, 217, 210, 231, 169, 85, 84, 5, 218, - 9, 231, 178, 85, 84, 5, 217, 251, 231, 179, 85, 84, 5, 218, 31, 231, 170, - 85, 84, 5, 218, 32, 231, 172, 85, 84, 5, 217, 187, 165, 85, 84, 5, 217, - 235, 214, 147, 85, 84, 5, 217, 229, 214, 162, 85, 84, 5, 217, 233, 214, - 129, 85, 84, 5, 217, 167, 214, 153, 85, 84, 5, 217, 239, 214, 154, 85, - 84, 5, 218, 35, 214, 134, 85, 84, 5, 218, 38, 214, 138, 85, 84, 5, 217, - 206, 213, 157, 85, 84, 5, 217, 166, 213, 127, 85, 84, 5, 217, 209, 213, - 148, 85, 84, 5, 217, 224, 213, 131, 85, 84, 5, 217, 176, 195, 69, 85, 84, - 5, 217, 173, 195, 188, 85, 84, 5, 217, 207, 193, 249, 85, 84, 5, 217, - 185, 195, 148, 85, 84, 5, 218, 17, 195, 153, 85, 84, 5, 217, 214, 195, 8, - 85, 84, 5, 218, 25, 195, 24, 85, 84, 5, 217, 194, 212, 74, 85, 84, 5, - 218, 44, 212, 94, 85, 84, 5, 217, 188, 212, 56, 85, 84, 5, 218, 4, 212, - 86, 85, 84, 5, 218, 42, 212, 63, 85, 84, 17, 107, 85, 84, 17, 109, 85, - 84, 17, 138, 85, 84, 17, 134, 85, 84, 17, 149, 85, 84, 17, 169, 85, 84, - 17, 175, 85, 84, 17, 171, 85, 84, 17, 178, 85, 84, 33, 31, 199, 119, 85, - 84, 33, 31, 199, 90, 85, 84, 33, 31, 228, 138, 85, 84, 33, 31, 198, 228, - 85, 84, 33, 31, 199, 96, 198, 228, 85, 84, 33, 31, 228, 141, 198, 228, - 85, 84, 33, 31, 216, 47, 252, 33, 6, 1, 251, 180, 252, 33, 6, 1, 238, 29, - 252, 33, 6, 1, 220, 123, 252, 33, 6, 1, 216, 60, 252, 33, 6, 1, 249, 153, - 252, 33, 6, 1, 202, 164, 252, 33, 6, 1, 210, 63, 252, 33, 6, 1, 248, 196, - 252, 33, 6, 1, 165, 252, 33, 6, 1, 71, 252, 33, 6, 1, 233, 109, 252, 33, - 6, 1, 68, 252, 33, 6, 1, 74, 252, 33, 6, 1, 237, 68, 252, 33, 6, 1, 192, - 34, 252, 33, 6, 1, 193, 133, 252, 33, 6, 1, 212, 130, 252, 33, 6, 1, 222, - 106, 252, 33, 6, 1, 170, 252, 33, 6, 1, 66, 252, 33, 6, 1, 222, 235, 252, - 33, 6, 1, 243, 95, 252, 33, 6, 1, 140, 252, 33, 6, 1, 208, 94, 252, 33, - 6, 1, 231, 240, 252, 33, 6, 1, 212, 101, 252, 33, 6, 1, 197, 94, 252, 33, - 6, 1, 213, 224, 252, 33, 6, 1, 195, 188, 252, 33, 6, 1, 221, 215, 252, - 33, 6, 1, 231, 179, 252, 33, 6, 1, 191, 108, 252, 33, 6, 1, 221, 12, 252, - 33, 6, 1, 203, 165, 252, 33, 2, 1, 251, 180, 252, 33, 2, 1, 238, 29, 252, - 33, 2, 1, 220, 123, 252, 33, 2, 1, 216, 60, 252, 33, 2, 1, 249, 153, 252, - 33, 2, 1, 202, 164, 252, 33, 2, 1, 210, 63, 252, 33, 2, 1, 248, 196, 252, - 33, 2, 1, 165, 252, 33, 2, 1, 71, 252, 33, 2, 1, 233, 109, 252, 33, 2, 1, - 68, 252, 33, 2, 1, 74, 252, 33, 2, 1, 237, 68, 252, 33, 2, 1, 192, 34, - 252, 33, 2, 1, 193, 133, 252, 33, 2, 1, 212, 130, 252, 33, 2, 1, 222, - 106, 252, 33, 2, 1, 170, 252, 33, 2, 1, 66, 252, 33, 2, 1, 222, 235, 252, - 33, 2, 1, 243, 95, 252, 33, 2, 1, 140, 252, 33, 2, 1, 208, 94, 252, 33, - 2, 1, 231, 240, 252, 33, 2, 1, 212, 101, 252, 33, 2, 1, 197, 94, 252, 33, - 2, 1, 213, 224, 252, 33, 2, 1, 195, 188, 252, 33, 2, 1, 221, 215, 252, - 33, 2, 1, 231, 179, 252, 33, 2, 1, 191, 108, 252, 33, 2, 1, 221, 12, 252, - 33, 2, 1, 203, 165, 252, 33, 251, 181, 219, 190, 252, 33, 18, 219, 190, - 252, 33, 231, 153, 77, 252, 33, 230, 57, 252, 33, 120, 215, 252, 252, 33, - 231, 154, 120, 215, 252, 252, 33, 212, 141, 252, 33, 214, 213, 77, 252, - 33, 17, 191, 77, 252, 33, 17, 107, 252, 33, 17, 109, 252, 33, 17, 138, - 252, 33, 17, 134, 252, 33, 17, 149, 252, 33, 17, 169, 252, 33, 17, 175, - 252, 33, 17, 171, 252, 33, 17, 178, 252, 33, 89, 233, 216, 77, 252, 33, - 89, 208, 13, 77, 223, 146, 143, 31, 107, 223, 146, 143, 31, 109, 223, - 146, 143, 31, 138, 223, 146, 143, 31, 134, 223, 146, 143, 31, 149, 223, - 146, 143, 31, 169, 223, 146, 143, 31, 175, 223, 146, 143, 31, 171, 223, - 146, 143, 31, 178, 223, 146, 143, 31, 199, 95, 223, 146, 143, 31, 197, - 32, 223, 146, 143, 31, 198, 249, 223, 146, 143, 31, 232, 135, 223, 146, - 143, 31, 233, 15, 223, 146, 143, 31, 202, 120, 223, 146, 143, 31, 203, - 241, 223, 146, 143, 31, 234, 153, 223, 146, 143, 31, 213, 169, 223, 146, - 143, 31, 91, 228, 140, 223, 146, 143, 31, 105, 228, 140, 223, 146, 143, - 31, 115, 228, 140, 223, 146, 143, 31, 232, 128, 228, 140, 223, 146, 143, - 31, 232, 226, 228, 140, 223, 146, 143, 31, 202, 136, 228, 140, 223, 146, - 143, 31, 203, 247, 228, 140, 223, 146, 143, 31, 234, 164, 228, 140, 223, - 146, 143, 31, 213, 175, 228, 140, 223, 146, 143, 31, 91, 189, 223, 146, - 143, 31, 105, 189, 223, 146, 143, 31, 115, 189, 223, 146, 143, 31, 232, - 128, 189, 223, 146, 143, 31, 232, 226, 189, 223, 146, 143, 31, 202, 136, - 189, 223, 146, 143, 31, 203, 247, 189, 223, 146, 143, 31, 234, 164, 189, - 223, 146, 143, 31, 213, 175, 189, 223, 146, 143, 31, 199, 96, 189, 223, - 146, 143, 31, 197, 33, 189, 223, 146, 143, 31, 198, 250, 189, 223, 146, - 143, 31, 232, 136, 189, 223, 146, 143, 31, 233, 16, 189, 223, 146, 143, - 31, 202, 121, 189, 223, 146, 143, 31, 203, 242, 189, 223, 146, 143, 31, - 234, 154, 189, 223, 146, 143, 31, 213, 170, 189, 223, 146, 143, 31, 220, - 41, 223, 146, 143, 31, 220, 40, 223, 146, 143, 220, 42, 77, 223, 146, - 143, 31, 222, 60, 223, 146, 143, 31, 222, 59, 223, 146, 143, 31, 208, - 227, 107, 223, 146, 143, 31, 208, 227, 109, 223, 146, 143, 31, 208, 227, - 138, 223, 146, 143, 31, 208, 227, 134, 223, 146, 143, 31, 208, 227, 149, - 223, 146, 143, 31, 208, 227, 169, 223, 146, 143, 31, 208, 227, 175, 223, - 146, 143, 31, 208, 227, 171, 223, 146, 143, 31, 208, 227, 178, 223, 146, - 143, 209, 106, 223, 146, 143, 232, 118, 91, 208, 22, 223, 146, 143, 232, - 118, 91, 230, 70, 223, 146, 143, 232, 118, 115, 208, 20, 223, 146, 143, - 206, 36, 77, 223, 146, 143, 31, 251, 157, 107, 223, 146, 143, 31, 251, - 157, 109, 223, 146, 143, 31, 251, 157, 199, 96, 189, 223, 146, 143, 251, - 157, 220, 42, 77, 211, 21, 143, 31, 107, 211, 21, 143, 31, 109, 211, 21, - 143, 31, 138, 211, 21, 143, 31, 134, 211, 21, 143, 31, 149, 211, 21, 143, - 31, 169, 211, 21, 143, 31, 175, 211, 21, 143, 31, 171, 211, 21, 143, 31, - 178, 211, 21, 143, 31, 199, 95, 211, 21, 143, 31, 197, 32, 211, 21, 143, - 31, 198, 249, 211, 21, 143, 31, 232, 135, 211, 21, 143, 31, 233, 15, 211, - 21, 143, 31, 202, 120, 211, 21, 143, 31, 203, 241, 211, 21, 143, 31, 234, - 153, 211, 21, 143, 31, 213, 169, 211, 21, 143, 31, 91, 228, 140, 211, 21, - 143, 31, 105, 228, 140, 211, 21, 143, 31, 115, 228, 140, 211, 21, 143, - 31, 232, 128, 228, 140, 211, 21, 143, 31, 232, 226, 228, 140, 211, 21, - 143, 31, 202, 136, 228, 140, 211, 21, 143, 31, 203, 247, 228, 140, 211, - 21, 143, 31, 234, 164, 228, 140, 211, 21, 143, 31, 213, 175, 228, 140, - 211, 21, 143, 31, 91, 189, 211, 21, 143, 31, 105, 189, 211, 21, 143, 31, - 115, 189, 211, 21, 143, 31, 232, 128, 189, 211, 21, 143, 31, 232, 226, - 189, 211, 21, 143, 31, 202, 136, 189, 211, 21, 143, 31, 203, 247, 189, - 211, 21, 143, 31, 234, 164, 189, 211, 21, 143, 31, 213, 175, 189, 211, - 21, 143, 31, 199, 96, 189, 211, 21, 143, 31, 197, 33, 189, 211, 21, 143, - 31, 198, 250, 189, 211, 21, 143, 31, 232, 136, 189, 211, 21, 143, 31, - 233, 16, 189, 211, 21, 143, 31, 202, 121, 189, 211, 21, 143, 31, 203, - 242, 189, 211, 21, 143, 31, 234, 154, 189, 211, 21, 143, 31, 213, 170, - 189, 211, 21, 143, 217, 49, 211, 21, 143, 251, 157, 31, 109, 211, 21, - 143, 251, 157, 31, 138, 211, 21, 143, 251, 157, 31, 134, 211, 21, 143, - 251, 157, 31, 149, 211, 21, 143, 251, 157, 31, 169, 211, 21, 143, 251, - 157, 31, 175, 211, 21, 143, 251, 157, 31, 171, 211, 21, 143, 251, 157, - 31, 178, 211, 21, 143, 251, 157, 31, 199, 95, 211, 21, 143, 251, 157, 31, - 232, 128, 228, 140, 211, 21, 143, 251, 157, 31, 202, 136, 228, 140, 211, - 21, 143, 251, 157, 31, 105, 189, 211, 21, 143, 251, 157, 31, 199, 96, - 189, 211, 21, 143, 232, 118, 91, 230, 70, 211, 21, 143, 232, 118, 91, - 202, 124, 9, 13, 251, 192, 9, 13, 248, 245, 9, 13, 223, 6, 9, 13, 238, 3, - 9, 13, 193, 133, 9, 13, 191, 113, 9, 13, 230, 81, 9, 13, 199, 219, 9, 13, - 192, 75, 9, 13, 222, 106, 9, 13, 220, 35, 9, 13, 216, 208, 9, 13, 213, - 24, 9, 13, 205, 46, 9, 13, 251, 230, 9, 13, 233, 46, 9, 13, 205, 192, 9, - 13, 208, 89, 9, 13, 207, 71, 9, 13, 203, 109, 9, 13, 199, 114, 9, 13, - 199, 29, 9, 13, 221, 210, 9, 13, 199, 41, 9, 13, 238, 26, 9, 13, 191, - 116, 9, 13, 231, 86, 9, 13, 236, 139, 248, 245, 9, 13, 236, 139, 213, 24, - 9, 13, 236, 139, 233, 46, 9, 13, 236, 139, 208, 89, 9, 13, 89, 248, 245, - 9, 13, 89, 223, 6, 9, 13, 89, 229, 210, 9, 13, 89, 230, 81, 9, 13, 89, - 192, 75, 9, 13, 89, 222, 106, 9, 13, 89, 220, 35, 9, 13, 89, 216, 208, 9, - 13, 89, 213, 24, 9, 13, 89, 205, 46, 9, 13, 89, 251, 230, 9, 13, 89, 233, - 46, 9, 13, 89, 205, 192, 9, 13, 89, 208, 89, 9, 13, 89, 203, 109, 9, 13, - 89, 199, 114, 9, 13, 89, 199, 29, 9, 13, 89, 221, 210, 9, 13, 89, 238, - 26, 9, 13, 89, 231, 86, 9, 13, 199, 214, 223, 6, 9, 13, 199, 214, 230, - 81, 9, 13, 199, 214, 192, 75, 9, 13, 199, 214, 220, 35, 9, 13, 199, 214, - 213, 24, 9, 13, 199, 214, 205, 46, 9, 13, 199, 214, 251, 230, 9, 13, 199, - 214, 205, 192, 9, 13, 199, 214, 208, 89, 9, 13, 199, 214, 203, 109, 9, - 13, 199, 214, 221, 210, 9, 13, 199, 214, 238, 26, 9, 13, 199, 214, 231, - 86, 9, 13, 199, 214, 236, 139, 213, 24, 9, 13, 199, 214, 236, 139, 208, - 89, 9, 13, 201, 36, 248, 245, 9, 13, 201, 36, 223, 6, 9, 13, 201, 36, - 229, 210, 9, 13, 201, 36, 230, 81, 9, 13, 201, 36, 199, 219, 9, 13, 201, - 36, 192, 75, 9, 13, 201, 36, 222, 106, 9, 13, 201, 36, 216, 208, 9, 13, - 201, 36, 213, 24, 9, 13, 201, 36, 205, 46, 9, 13, 201, 36, 251, 230, 9, - 13, 201, 36, 233, 46, 9, 13, 201, 36, 205, 192, 9, 13, 201, 36, 208, 89, - 9, 13, 201, 36, 203, 109, 9, 13, 201, 36, 199, 114, 9, 13, 201, 36, 199, - 29, 9, 13, 201, 36, 221, 210, 9, 13, 201, 36, 238, 26, 9, 13, 201, 36, - 191, 116, 9, 13, 201, 36, 231, 86, 9, 13, 201, 36, 236, 139, 248, 245, 9, - 13, 201, 36, 236, 139, 233, 46, 9, 13, 219, 3, 251, 192, 9, 13, 219, 3, - 248, 245, 9, 13, 219, 3, 223, 6, 9, 13, 219, 3, 238, 3, 9, 13, 219, 3, - 229, 210, 9, 13, 219, 3, 193, 133, 9, 13, 219, 3, 191, 113, 9, 13, 219, - 3, 230, 81, 9, 13, 219, 3, 199, 219, 9, 13, 219, 3, 192, 75, 9, 13, 219, - 3, 220, 35, 9, 13, 219, 3, 216, 208, 9, 13, 219, 3, 213, 24, 9, 13, 219, - 3, 205, 46, 9, 13, 219, 3, 251, 230, 9, 13, 219, 3, 233, 46, 9, 13, 219, - 3, 205, 192, 9, 13, 219, 3, 208, 89, 9, 13, 219, 3, 207, 71, 9, 13, 219, - 3, 203, 109, 9, 13, 219, 3, 199, 114, 9, 13, 219, 3, 199, 29, 9, 13, 219, - 3, 221, 210, 9, 13, 219, 3, 199, 41, 9, 13, 219, 3, 238, 26, 9, 13, 219, - 3, 191, 116, 9, 13, 219, 3, 231, 86, 9, 13, 235, 129, 248, 245, 9, 13, - 235, 129, 223, 6, 9, 13, 235, 129, 238, 3, 9, 13, 235, 129, 193, 133, 9, - 13, 235, 129, 191, 113, 9, 13, 235, 129, 230, 81, 9, 13, 235, 129, 199, - 219, 9, 13, 235, 129, 192, 75, 9, 13, 235, 129, 220, 35, 9, 13, 235, 129, - 216, 208, 9, 13, 235, 129, 213, 24, 9, 13, 235, 129, 205, 46, 9, 13, 235, - 129, 251, 230, 9, 13, 235, 129, 233, 46, 9, 13, 235, 129, 205, 192, 9, - 13, 235, 129, 208, 89, 9, 13, 235, 129, 207, 71, 9, 13, 235, 129, 203, - 109, 9, 13, 235, 129, 199, 114, 9, 13, 235, 129, 199, 29, 9, 13, 235, - 129, 221, 210, 9, 13, 235, 129, 199, 41, 9, 13, 235, 129, 238, 26, 9, 13, - 235, 129, 191, 116, 9, 13, 235, 129, 231, 86, 9, 13, 211, 67, 92, 4, 182, - 4, 199, 168, 9, 13, 211, 67, 182, 4, 238, 3, 217, 114, 123, 234, 204, - 193, 66, 217, 114, 123, 202, 2, 193, 66, 217, 114, 123, 193, 105, 193, - 66, 217, 114, 123, 186, 193, 66, 217, 114, 123, 207, 87, 235, 111, 217, - 114, 123, 230, 201, 235, 111, 217, 114, 123, 63, 235, 111, 217, 114, 123, - 91, 79, 243, 140, 217, 114, 123, 105, 79, 243, 140, 217, 114, 123, 115, - 79, 243, 140, 217, 114, 123, 232, 128, 79, 243, 140, 217, 114, 123, 232, - 226, 79, 243, 140, 217, 114, 123, 202, 136, 79, 243, 140, 217, 114, 123, - 203, 247, 79, 243, 140, 217, 114, 123, 234, 164, 79, 243, 140, 217, 114, - 123, 213, 175, 79, 243, 140, 217, 114, 123, 91, 79, 249, 102, 217, 114, - 123, 105, 79, 249, 102, 217, 114, 123, 115, 79, 249, 102, 217, 114, 123, - 232, 128, 79, 249, 102, 217, 114, 123, 232, 226, 79, 249, 102, 217, 114, - 123, 202, 136, 79, 249, 102, 217, 114, 123, 203, 247, 79, 249, 102, 217, - 114, 123, 234, 164, 79, 249, 102, 217, 114, 123, 213, 175, 79, 249, 102, - 217, 114, 123, 91, 79, 243, 7, 217, 114, 123, 105, 79, 243, 7, 217, 114, - 123, 115, 79, 243, 7, 217, 114, 123, 232, 128, 79, 243, 7, 217, 114, 123, - 232, 226, 79, 243, 7, 217, 114, 123, 202, 136, 79, 243, 7, 217, 114, 123, - 203, 247, 79, 243, 7, 217, 114, 123, 234, 164, 79, 243, 7, 217, 114, 123, - 213, 175, 79, 243, 7, 217, 114, 123, 209, 85, 217, 114, 123, 211, 53, - 217, 114, 123, 249, 103, 217, 114, 123, 243, 49, 217, 114, 123, 201, 196, - 217, 114, 123, 200, 200, 217, 114, 123, 250, 149, 217, 114, 123, 193, 56, - 217, 114, 123, 222, 194, 217, 114, 123, 249, 146, 236, 151, 123, 228, - 241, 249, 146, 236, 151, 123, 228, 239, 236, 151, 123, 228, 238, 236, - 151, 123, 228, 237, 236, 151, 123, 228, 236, 236, 151, 123, 228, 235, - 236, 151, 123, 228, 234, 236, 151, 123, 228, 233, 236, 151, 123, 228, - 232, 236, 151, 123, 228, 231, 236, 151, 123, 228, 230, 236, 151, 123, - 228, 229, 236, 151, 123, 228, 228, 236, 151, 123, 228, 227, 236, 151, - 123, 228, 226, 236, 151, 123, 228, 225, 236, 151, 123, 228, 224, 236, - 151, 123, 228, 223, 236, 151, 123, 228, 222, 236, 151, 123, 228, 221, - 236, 151, 123, 228, 220, 236, 151, 123, 228, 219, 236, 151, 123, 228, - 218, 236, 151, 123, 228, 217, 236, 151, 123, 228, 216, 236, 151, 123, - 228, 215, 236, 151, 123, 228, 214, 236, 151, 123, 228, 213, 236, 151, - 123, 228, 212, 236, 151, 123, 228, 211, 236, 151, 123, 228, 210, 236, - 151, 123, 228, 209, 236, 151, 123, 228, 208, 236, 151, 123, 228, 207, - 236, 151, 123, 228, 206, 236, 151, 123, 228, 205, 236, 151, 123, 228, - 204, 236, 151, 123, 228, 203, 236, 151, 123, 228, 202, 236, 151, 123, - 228, 201, 236, 151, 123, 228, 200, 236, 151, 123, 228, 199, 236, 151, - 123, 228, 198, 236, 151, 123, 228, 197, 236, 151, 123, 228, 196, 236, - 151, 123, 228, 195, 236, 151, 123, 228, 194, 236, 151, 123, 228, 193, - 236, 151, 123, 228, 192, 236, 151, 123, 228, 191, 236, 151, 123, 81, 249, - 146, 236, 151, 123, 195, 134, 236, 151, 123, 195, 133, 236, 151, 123, - 195, 132, 236, 151, 123, 195, 131, 236, 151, 123, 195, 130, 236, 151, - 123, 195, 129, 236, 151, 123, 195, 128, 236, 151, 123, 195, 127, 236, - 151, 123, 195, 126, 236, 151, 123, 195, 125, 236, 151, 123, 195, 124, - 236, 151, 123, 195, 123, 236, 151, 123, 195, 122, 236, 151, 123, 195, - 121, 236, 151, 123, 195, 120, 236, 151, 123, 195, 119, 236, 151, 123, - 195, 118, 236, 151, 123, 195, 117, 236, 151, 123, 195, 116, 236, 151, - 123, 195, 115, 236, 151, 123, 195, 114, 236, 151, 123, 195, 113, 236, - 151, 123, 195, 112, 236, 151, 123, 195, 111, 236, 151, 123, 195, 110, - 236, 151, 123, 195, 109, 236, 151, 123, 195, 108, 236, 151, 123, 195, - 107, 236, 151, 123, 195, 106, 236, 151, 123, 195, 105, 236, 151, 123, - 195, 104, 236, 151, 123, 195, 103, 236, 151, 123, 195, 102, 236, 151, - 123, 195, 101, 236, 151, 123, 195, 100, 236, 151, 123, 195, 99, 236, 151, - 123, 195, 98, 236, 151, 123, 195, 97, 236, 151, 123, 195, 96, 236, 151, - 123, 195, 95, 236, 151, 123, 195, 94, 236, 151, 123, 195, 93, 236, 151, - 123, 195, 92, 236, 151, 123, 195, 91, 236, 151, 123, 195, 90, 236, 151, - 123, 195, 89, 236, 151, 123, 195, 88, 236, 151, 123, 195, 87, 236, 151, - 123, 195, 86, 209, 95, 247, 101, 249, 146, 209, 95, 247, 101, 252, 53, - 79, 201, 244, 209, 95, 247, 101, 105, 79, 201, 244, 209, 95, 247, 101, - 115, 79, 201, 244, 209, 95, 247, 101, 232, 128, 79, 201, 244, 209, 95, - 247, 101, 232, 226, 79, 201, 244, 209, 95, 247, 101, 202, 136, 79, 201, - 244, 209, 95, 247, 101, 203, 247, 79, 201, 244, 209, 95, 247, 101, 234, - 164, 79, 201, 244, 209, 95, 247, 101, 213, 175, 79, 201, 244, 209, 95, - 247, 101, 199, 96, 79, 201, 244, 209, 95, 247, 101, 223, 30, 79, 201, - 244, 209, 95, 247, 101, 221, 77, 79, 201, 244, 209, 95, 247, 101, 208, - 15, 79, 201, 244, 209, 95, 247, 101, 221, 139, 79, 201, 244, 209, 95, - 247, 101, 252, 53, 79, 229, 221, 209, 95, 247, 101, 105, 79, 229, 221, - 209, 95, 247, 101, 115, 79, 229, 221, 209, 95, 247, 101, 232, 128, 79, - 229, 221, 209, 95, 247, 101, 232, 226, 79, 229, 221, 209, 95, 247, 101, - 202, 136, 79, 229, 221, 209, 95, 247, 101, 203, 247, 79, 229, 221, 209, - 95, 247, 101, 234, 164, 79, 229, 221, 209, 95, 247, 101, 213, 175, 79, - 229, 221, 209, 95, 247, 101, 199, 96, 79, 229, 221, 209, 95, 247, 101, - 223, 30, 79, 229, 221, 209, 95, 247, 101, 221, 77, 79, 229, 221, 209, 95, - 247, 101, 208, 15, 79, 229, 221, 209, 95, 247, 101, 221, 139, 79, 229, - 221, 209, 95, 247, 101, 207, 87, 222, 194, 209, 95, 247, 101, 252, 53, - 79, 237, 31, 209, 95, 247, 101, 105, 79, 237, 31, 209, 95, 247, 101, 115, - 79, 237, 31, 209, 95, 247, 101, 232, 128, 79, 237, 31, 209, 95, 247, 101, - 232, 226, 79, 237, 31, 209, 95, 247, 101, 202, 136, 79, 237, 31, 209, 95, - 247, 101, 203, 247, 79, 237, 31, 209, 95, 247, 101, 234, 164, 79, 237, - 31, 209, 95, 247, 101, 213, 175, 79, 237, 31, 209, 95, 247, 101, 199, 96, - 79, 237, 31, 209, 95, 247, 101, 223, 30, 79, 237, 31, 209, 95, 247, 101, - 221, 77, 79, 237, 31, 209, 95, 247, 101, 208, 15, 79, 237, 31, 209, 95, - 247, 101, 221, 139, 79, 237, 31, 209, 95, 247, 101, 62, 222, 194, 209, - 95, 247, 101, 252, 53, 79, 242, 204, 209, 95, 247, 101, 105, 79, 242, - 204, 209, 95, 247, 101, 115, 79, 242, 204, 209, 95, 247, 101, 232, 128, - 79, 242, 204, 209, 95, 247, 101, 232, 226, 79, 242, 204, 209, 95, 247, - 101, 202, 136, 79, 242, 204, 209, 95, 247, 101, 203, 247, 79, 242, 204, - 209, 95, 247, 101, 234, 164, 79, 242, 204, 209, 95, 247, 101, 213, 175, - 79, 242, 204, 209, 95, 247, 101, 199, 96, 79, 242, 204, 209, 95, 247, - 101, 223, 30, 79, 242, 204, 209, 95, 247, 101, 221, 77, 79, 242, 204, - 209, 95, 247, 101, 208, 15, 79, 242, 204, 209, 95, 247, 101, 221, 139, - 79, 242, 204, 209, 95, 247, 101, 63, 222, 194, 209, 95, 247, 101, 232, - 160, 209, 95, 247, 101, 197, 200, 209, 95, 247, 101, 197, 189, 209, 95, - 247, 101, 197, 186, 209, 95, 247, 101, 197, 185, 209, 95, 247, 101, 197, - 184, 209, 95, 247, 101, 197, 183, 209, 95, 247, 101, 197, 182, 209, 95, - 247, 101, 197, 181, 209, 95, 247, 101, 197, 180, 209, 95, 247, 101, 197, - 199, 209, 95, 247, 101, 197, 198, 209, 95, 247, 101, 197, 197, 209, 95, - 247, 101, 197, 196, 209, 95, 247, 101, 197, 195, 209, 95, 247, 101, 197, - 194, 209, 95, 247, 101, 197, 193, 209, 95, 247, 101, 197, 192, 209, 95, - 247, 101, 197, 191, 209, 95, 247, 101, 197, 190, 209, 95, 247, 101, 197, - 188, 209, 95, 247, 101, 197, 187, 17, 191, 78, 232, 80, 201, 63, 17, 191, - 78, 242, 74, 17, 91, 242, 74, 17, 105, 242, 74, 17, 115, 242, 74, 17, - 232, 128, 242, 74, 17, 232, 226, 242, 74, 17, 202, 136, 242, 74, 17, 203, - 247, 242, 74, 17, 234, 164, 242, 74, 17, 213, 175, 242, 74, 236, 241, 47, - 49, 17, 191, 77, 236, 241, 214, 106, 47, 49, 17, 191, 77, 47, 191, 78, 4, - 202, 97, 47, 251, 85, 57, 47, 236, 155, 3, 4, 211, 4, 249, 141, 127, 8, - 6, 1, 65, 127, 8, 6, 1, 250, 120, 127, 8, 6, 1, 247, 193, 127, 8, 6, 1, - 238, 127, 127, 8, 6, 1, 71, 127, 8, 6, 1, 233, 175, 127, 8, 6, 1, 232, - 51, 127, 8, 6, 1, 230, 116, 127, 8, 6, 1, 68, 127, 8, 6, 1, 223, 35, 127, - 8, 6, 1, 222, 152, 127, 8, 6, 1, 172, 127, 8, 6, 1, 218, 168, 127, 8, 6, - 1, 215, 61, 127, 8, 6, 1, 74, 127, 8, 6, 1, 210, 236, 127, 8, 6, 1, 208, - 104, 127, 8, 6, 1, 146, 127, 8, 6, 1, 206, 8, 127, 8, 6, 1, 200, 43, 127, - 8, 6, 1, 66, 127, 8, 6, 1, 196, 12, 127, 8, 6, 1, 193, 224, 127, 8, 6, 1, - 192, 235, 127, 8, 6, 1, 192, 159, 127, 8, 6, 1, 191, 166, 198, 42, 203, - 103, 248, 52, 8, 6, 1, 206, 8, 47, 43, 8, 6, 1, 247, 193, 47, 43, 8, 6, - 1, 146, 47, 247, 43, 47, 192, 237, 239, 7, 113, 112, 8, 6, 1, 65, 112, 8, - 6, 1, 250, 120, 112, 8, 6, 1, 247, 193, 112, 8, 6, 1, 238, 127, 112, 8, - 6, 1, 71, 112, 8, 6, 1, 233, 175, 112, 8, 6, 1, 232, 51, 112, 8, 6, 1, - 230, 116, 112, 8, 6, 1, 68, 112, 8, 6, 1, 223, 35, 112, 8, 6, 1, 222, - 152, 112, 8, 6, 1, 172, 112, 8, 6, 1, 218, 168, 112, 8, 6, 1, 215, 61, - 112, 8, 6, 1, 74, 112, 8, 6, 1, 210, 236, 112, 8, 6, 1, 208, 104, 112, 8, - 6, 1, 146, 112, 8, 6, 1, 206, 8, 112, 8, 6, 1, 200, 43, 112, 8, 6, 1, 66, - 112, 8, 6, 1, 196, 12, 112, 8, 6, 1, 193, 224, 112, 8, 6, 1, 192, 235, - 112, 8, 6, 1, 192, 159, 112, 8, 6, 1, 191, 166, 112, 228, 126, 112, 215, - 87, 112, 205, 70, 112, 201, 178, 112, 208, 248, 112, 193, 126, 214, 106, - 47, 8, 6, 1, 65, 214, 106, 47, 8, 6, 1, 250, 120, 214, 106, 47, 8, 6, 1, - 247, 193, 214, 106, 47, 8, 6, 1, 238, 127, 214, 106, 47, 8, 6, 1, 71, - 214, 106, 47, 8, 6, 1, 233, 175, 214, 106, 47, 8, 6, 1, 232, 51, 214, - 106, 47, 8, 6, 1, 230, 116, 214, 106, 47, 8, 6, 1, 68, 214, 106, 47, 8, - 6, 1, 223, 35, 214, 106, 47, 8, 6, 1, 222, 152, 214, 106, 47, 8, 6, 1, - 172, 214, 106, 47, 8, 6, 1, 218, 168, 214, 106, 47, 8, 6, 1, 215, 61, - 214, 106, 47, 8, 6, 1, 74, 214, 106, 47, 8, 6, 1, 210, 236, 214, 106, 47, - 8, 6, 1, 208, 104, 214, 106, 47, 8, 6, 1, 146, 214, 106, 47, 8, 6, 1, - 206, 8, 214, 106, 47, 8, 6, 1, 200, 43, 214, 106, 47, 8, 6, 1, 66, 214, - 106, 47, 8, 6, 1, 196, 12, 214, 106, 47, 8, 6, 1, 193, 224, 214, 106, 47, - 8, 6, 1, 192, 235, 214, 106, 47, 8, 6, 1, 192, 159, 214, 106, 47, 8, 6, - 1, 191, 166, 207, 147, 216, 239, 56, 207, 147, 216, 235, 56, 207, 147, - 215, 164, 56, 47, 247, 66, 47, 247, 194, 4, 211, 4, 249, 141, 47, 228, - 145, 233, 12, 214, 106, 112, 8, 6, 1, 65, 214, 106, 112, 8, 6, 1, 250, - 120, 214, 106, 112, 8, 6, 1, 247, 193, 214, 106, 112, 8, 6, 1, 238, 127, - 214, 106, 112, 8, 6, 1, 71, 214, 106, 112, 8, 6, 1, 233, 175, 214, 106, - 112, 8, 6, 1, 232, 51, 214, 106, 112, 8, 6, 1, 230, 116, 214, 106, 112, - 8, 6, 1, 68, 214, 106, 112, 8, 6, 1, 223, 35, 214, 106, 112, 8, 6, 1, - 222, 152, 214, 106, 112, 8, 6, 1, 172, 214, 106, 112, 8, 6, 1, 218, 168, - 214, 106, 112, 8, 6, 1, 215, 61, 214, 106, 112, 8, 6, 1, 74, 214, 106, - 112, 8, 6, 1, 210, 236, 214, 106, 112, 8, 6, 1, 208, 104, 214, 106, 112, - 8, 6, 1, 146, 214, 106, 112, 8, 6, 1, 206, 8, 214, 106, 112, 8, 6, 1, - 200, 43, 214, 106, 112, 8, 6, 1, 66, 214, 106, 112, 8, 6, 1, 196, 12, - 214, 106, 112, 8, 6, 1, 193, 224, 214, 106, 112, 8, 6, 1, 192, 235, 214, - 106, 112, 8, 6, 1, 192, 159, 214, 106, 112, 8, 6, 1, 191, 166, 238, 214, - 214, 106, 112, 8, 6, 1, 210, 236, 214, 106, 112, 228, 28, 214, 106, 112, - 168, 214, 106, 112, 188, 214, 106, 112, 252, 155, 214, 106, 112, 193, - 126, 51, 236, 194, 112, 242, 247, 112, 239, 14, 112, 232, 108, 112, 228, - 19, 112, 214, 79, 112, 214, 70, 112, 211, 125, 112, 202, 9, 112, 133, 4, - 233, 216, 77, 112, 194, 252, 112, 115, 238, 127, 112, 205, 57, 205, 76, - 112, 105, 222, 152, 112, 232, 128, 222, 152, 112, 234, 164, 222, 152, - 112, 232, 226, 209, 62, 107, 112, 203, 247, 209, 62, 107, 112, 197, 21, - 209, 62, 109, 112, 202, 121, 210, 236, 112, 91, 228, 141, 197, 33, 210, - 236, 112, 8, 2, 1, 238, 127, 112, 229, 248, 112, 229, 247, 112, 229, 150, - 112, 218, 252, 112, 202, 241, 112, 196, 140, 112, 195, 21, 217, 36, 193, - 21, 113, 207, 79, 223, 145, 16, 1, 65, 207, 79, 223, 145, 16, 1, 250, - 120, 207, 79, 223, 145, 16, 1, 247, 193, 207, 79, 223, 145, 16, 1, 238, - 127, 207, 79, 223, 145, 16, 1, 71, 207, 79, 223, 145, 16, 1, 233, 175, - 207, 79, 223, 145, 16, 1, 232, 51, 207, 79, 223, 145, 16, 1, 230, 116, - 207, 79, 223, 145, 16, 1, 68, 207, 79, 223, 145, 16, 1, 223, 35, 207, 79, - 223, 145, 16, 1, 222, 152, 207, 79, 223, 145, 16, 1, 172, 207, 79, 223, - 145, 16, 1, 218, 168, 207, 79, 223, 145, 16, 1, 215, 61, 207, 79, 223, - 145, 16, 1, 74, 207, 79, 223, 145, 16, 1, 210, 236, 207, 79, 223, 145, - 16, 1, 208, 104, 207, 79, 223, 145, 16, 1, 146, 207, 79, 223, 145, 16, 1, - 206, 8, 207, 79, 223, 145, 16, 1, 200, 43, 207, 79, 223, 145, 16, 1, 66, - 207, 79, 223, 145, 16, 1, 196, 12, 207, 79, 223, 145, 16, 1, 193, 224, - 207, 79, 223, 145, 16, 1, 192, 235, 207, 79, 223, 145, 16, 1, 192, 159, - 207, 79, 223, 145, 16, 1, 191, 166, 51, 229, 120, 229, 9, 112, 72, 221, - 49, 112, 72, 188, 112, 12, 196, 95, 225, 217, 112, 12, 196, 95, 225, 221, - 112, 12, 196, 95, 225, 229, 112, 72, 237, 146, 112, 12, 196, 95, 225, - 236, 112, 12, 196, 95, 225, 223, 112, 12, 196, 95, 225, 195, 112, 12, - 196, 95, 225, 222, 112, 12, 196, 95, 225, 235, 112, 12, 196, 95, 225, - 209, 112, 12, 196, 95, 225, 202, 112, 12, 196, 95, 225, 211, 112, 12, - 196, 95, 225, 232, 112, 12, 196, 95, 225, 218, 112, 12, 196, 95, 225, - 234, 112, 12, 196, 95, 225, 210, 112, 12, 196, 95, 225, 233, 112, 12, - 196, 95, 225, 196, 112, 12, 196, 95, 225, 201, 112, 12, 196, 95, 225, - 194, 112, 12, 196, 95, 225, 224, 112, 12, 196, 95, 225, 226, 112, 12, - 196, 95, 225, 204, 112, 12, 196, 95, 225, 215, 112, 12, 196, 95, 225, - 213, 112, 12, 196, 95, 225, 239, 112, 12, 196, 95, 225, 238, 112, 12, - 196, 95, 225, 192, 112, 12, 196, 95, 225, 219, 112, 12, 196, 95, 225, - 237, 112, 12, 196, 95, 225, 228, 112, 12, 196, 95, 225, 214, 112, 12, - 196, 95, 225, 193, 112, 12, 196, 95, 225, 216, 112, 12, 196, 95, 225, - 198, 112, 12, 196, 95, 225, 197, 112, 12, 196, 95, 225, 227, 112, 12, - 196, 95, 225, 205, 112, 12, 196, 95, 225, 207, 112, 12, 196, 95, 225, - 208, 112, 12, 196, 95, 225, 200, 112, 12, 196, 95, 225, 231, 112, 12, - 196, 95, 225, 225, 112, 12, 196, 95, 225, 191, 198, 42, 203, 103, 248, - 52, 12, 196, 95, 225, 206, 198, 42, 203, 103, 248, 52, 12, 196, 95, 225, - 238, 198, 42, 203, 103, 248, 52, 12, 196, 95, 225, 236, 198, 42, 203, - 103, 248, 52, 12, 196, 95, 225, 220, 198, 42, 203, 103, 248, 52, 12, 196, - 95, 225, 203, 198, 42, 203, 103, 248, 52, 12, 196, 95, 225, 216, 198, 42, - 203, 103, 248, 52, 12, 196, 95, 225, 199, 198, 42, 203, 103, 248, 52, 12, - 196, 95, 225, 230, 198, 42, 203, 103, 248, 52, 12, 196, 95, 225, 212, 47, - 228, 14, 252, 27, 47, 228, 14, 252, 58, 206, 113, 16, 40, 232, 86, 206, - 113, 16, 40, 218, 225, 206, 113, 16, 40, 203, 23, 206, 113, 16, 40, 192, - 207, 206, 113, 16, 40, 203, 2, 206, 113, 16, 40, 247, 148, 238, 139, 232, - 173, 242, 219, 196, 117, 213, 191, 4, 201, 99, 200, 193, 139, 215, 183, - 200, 192, 242, 251, 250, 183, 235, 61, 200, 191, 139, 247, 253, 207, 148, - 248, 29, 250, 183, 213, 190, 193, 144, 193, 138, 195, 14, 216, 52, 193, - 128, 234, 208, 231, 12, 233, 232, 234, 208, 231, 12, 251, 140, 234, 208, - 231, 12, 250, 202, 231, 12, 4, 216, 177, 214, 80, 215, 206, 113, 193, - 130, 238, 228, 215, 206, 113, 232, 238, 208, 23, 215, 206, 113, 193, 130, - 231, 49, 215, 206, 113, 232, 80, 215, 206, 113, 193, 159, 231, 49, 215, - 206, 113, 220, 6, 208, 23, 215, 206, 113, 193, 159, 238, 228, 215, 206, - 113, 238, 228, 215, 205, 214, 80, 215, 206, 4, 233, 103, 232, 238, 208, - 23, 215, 206, 4, 233, 103, 220, 6, 208, 23, 215, 206, 4, 233, 103, 232, - 80, 215, 206, 4, 233, 103, 200, 199, 4, 233, 103, 231, 8, 201, 102, 203, - 45, 201, 102, 199, 21, 62, 235, 97, 63, 200, 198, 63, 200, 199, 4, 2, - 242, 210, 63, 200, 199, 248, 242, 242, 210, 63, 200, 199, 248, 242, 242, - 211, 4, 207, 149, 242, 211, 4, 207, 149, 242, 211, 4, 202, 52, 242, 211, - 4, 219, 129, 242, 211, 4, 198, 46, 232, 174, 193, 67, 248, 116, 233, 103, - 228, 181, 236, 162, 199, 227, 247, 228, 243, 103, 205, 48, 233, 226, 197, - 254, 237, 139, 197, 254, 210, 183, 197, 254, 247, 153, 228, 181, 210, 15, - 197, 78, 243, 107, 248, 119, 206, 126, 229, 149, 200, 196, 248, 119, 234, - 212, 79, 217, 103, 234, 212, 79, 206, 245, 229, 193, 232, 128, 219, 234, - 242, 209, 217, 69, 219, 233, 233, 84, 219, 233, 219, 234, 232, 181, 223, - 163, 193, 66, 215, 98, 198, 83, 250, 162, 230, 218, 216, 196, 193, 142, - 199, 187, 219, 201, 249, 98, 209, 133, 207, 87, 251, 46, 230, 201, 251, - 46, 210, 55, 210, 59, 243, 108, 201, 42, 230, 63, 202, 89, 79, 209, 112, - 216, 225, 211, 105, 248, 98, 209, 9, 219, 212, 206, 246, 238, 234, 206, - 246, 249, 111, 239, 17, 206, 245, 238, 167, 23, 206, 245, 201, 83, 248, - 66, 201, 243, 248, 43, 232, 106, 232, 102, 206, 152, 200, 142, 209, 12, - 237, 235, 211, 153, 200, 165, 232, 103, 203, 13, 232, 237, 247, 147, 4, - 200, 134, 237, 80, 202, 32, 228, 27, 238, 232, 203, 121, 228, 26, 228, - 27, 238, 232, 235, 126, 239, 16, 243, 66, 164, 247, 118, 219, 24, 238, - 158, 228, 254, 209, 14, 203, 29, 248, 222, 248, 62, 209, 15, 79, 232, - 161, 239, 15, 232, 150, 23, 221, 78, 199, 133, 193, 51, 230, 31, 205, - 176, 248, 79, 23, 238, 181, 193, 63, 231, 16, 242, 94, 231, 16, 197, 204, - 235, 104, 248, 253, 215, 140, 242, 226, 248, 253, 215, 139, 249, 149, - 248, 78, 232, 150, 23, 221, 79, 4, 209, 97, 248, 79, 4, 209, 30, 239, 3, - 209, 32, 206, 247, 193, 11, 208, 222, 248, 157, 247, 146, 223, 29, 243, - 56, 197, 254, 233, 67, 243, 55, 232, 240, 232, 241, 201, 241, 249, 109, - 210, 102, 209, 31, 239, 54, 249, 111, 199, 191, 197, 254, 238, 214, 232, - 211, 209, 134, 237, 136, 223, 19, 236, 154, 247, 90, 201, 41, 193, 67, - 243, 82, 215, 206, 195, 54, 247, 8, 205, 90, 205, 120, 230, 225, 247, - 111, 229, 224, 4, 198, 136, 211, 105, 199, 34, 219, 224, 248, 72, 79, - 232, 185, 216, 54, 216, 219, 207, 58, 206, 247, 37, 221, 221, 4, 223, 28, - 201, 11, 216, 89, 219, 168, 202, 86, 239, 22, 221, 72, 249, 13, 250, 213, - 37, 213, 1, 249, 13, 237, 86, 37, 213, 1, 233, 0, 232, 112, 252, 31, 198, - 180, 247, 91, 228, 183, 233, 33, 193, 93, 206, 139, 242, 97, 232, 232, - 209, 53, 23, 232, 236, 216, 89, 215, 169, 247, 132, 243, 14, 229, 231, - 250, 224, 210, 188, 198, 54, 230, 9, 243, 0, 199, 87, 198, 181, 242, 242, - 248, 107, 210, 6, 250, 222, 195, 65, 231, 214, 236, 234, 229, 117, 202, - 79, 217, 148, 248, 170, 231, 215, 237, 24, 248, 65, 232, 187, 209, 95, - 247, 99, 37, 213, 6, 215, 129, 37, 213, 1, 205, 104, 230, 162, 37, 221, - 220, 197, 179, 195, 42, 37, 205, 82, 206, 42, 203, 60, 4, 205, 123, 199, - 92, 207, 170, 23, 249, 111, 202, 109, 23, 202, 109, 248, 91, 249, 68, 23, - 228, 247, 243, 109, 232, 217, 202, 51, 206, 43, 200, 170, 201, 202, 216, - 219, 197, 205, 228, 184, 207, 171, 251, 141, 232, 158, 206, 56, 232, 158, - 200, 137, 193, 110, 219, 134, 230, 249, 207, 172, 215, 191, 207, 172, - 247, 102, 238, 225, 249, 65, 23, 249, 111, 195, 13, 233, 22, 229, 12, - 201, 75, 23, 249, 111, 228, 27, 229, 12, 201, 75, 23, 208, 157, 199, 234, - 199, 92, 210, 207, 23, 249, 111, 202, 53, 247, 107, 215, 184, 247, 130, - 249, 16, 4, 196, 117, 247, 255, 239, 36, 228, 173, 247, 253, 242, 250, - 237, 90, 228, 173, 247, 254, 242, 240, 247, 254, 237, 82, 237, 83, 223, - 60, 214, 208, 210, 109, 201, 113, 228, 173, 247, 254, 228, 173, 4, 231, - 198, 211, 144, 247, 254, 223, 19, 209, 20, 211, 143, 233, 231, 209, 20, - 211, 143, 228, 182, 249, 92, 250, 151, 199, 102, 217, 148, 228, 178, 218, - 242, 228, 178, 239, 20, 201, 57, 205, 89, 237, 94, 201, 57, 233, 92, 223, - 40, 220, 18, 223, 19, 247, 80, 233, 231, 247, 80, 63, 210, 28, 62, 210, - 28, 193, 136, 63, 232, 217, 193, 136, 62, 232, 217, 206, 125, 62, 206, - 125, 220, 117, 249, 132, 207, 170, 23, 202, 244, 248, 70, 23, 57, 251, - 136, 234, 109, 52, 232, 227, 196, 253, 234, 109, 52, 232, 227, 196, 250, - 234, 109, 52, 232, 227, 196, 248, 234, 109, 52, 232, 227, 196, 246, 234, - 109, 52, 232, 227, 196, 244, 207, 130, 215, 181, 210, 247, 193, 144, 248, - 3, 238, 239, 198, 173, 219, 185, 207, 174, 247, 78, 235, 111, 238, 223, - 193, 96, 202, 60, 202, 58, 228, 183, 207, 142, 230, 255, 203, 107, 215, - 225, 206, 129, 243, 93, 236, 162, 209, 147, 248, 109, 234, 131, 211, 156, - 201, 218, 203, 102, 248, 2, 251, 89, 228, 253, 220, 108, 248, 251, 232, - 236, 197, 204, 232, 236, 248, 117, 197, 55, 230, 7, 243, 94, 249, 149, - 243, 94, 232, 96, 249, 149, 243, 94, 248, 160, 210, 30, 221, 61, 209, 36, - 235, 101, 247, 134, 249, 137, 247, 134, 236, 153, 215, 182, 233, 103, - 238, 240, 233, 103, 198, 174, 233, 103, 207, 175, 233, 103, 247, 79, 233, - 103, 235, 112, 233, 103, 201, 200, 193, 96, 228, 184, 233, 103, 215, 226, - 233, 103, 236, 163, 233, 103, 209, 148, 233, 103, 232, 100, 233, 103, - 230, 59, 233, 103, 193, 38, 233, 103, 249, 10, 233, 103, 210, 162, 233, - 103, 209, 148, 213, 13, 210, 76, 208, 208, 243, 77, 233, 185, 233, 193, - 234, 211, 213, 13, 215, 179, 198, 61, 63, 133, 209, 58, 249, 144, 223, - 148, 63, 144, 209, 58, 249, 144, 223, 148, 63, 45, 209, 58, 249, 144, - 223, 148, 63, 50, 209, 58, 249, 144, 223, 148, 232, 230, 230, 54, 56, - 193, 136, 230, 54, 56, 211, 126, 230, 54, 56, 198, 211, 133, 56, 198, - 211, 144, 56, 242, 241, 230, 29, 56, 211, 77, 230, 29, 56, 238, 208, 193, - 34, 230, 9, 233, 188, 214, 111, 200, 41, 223, 9, 235, 106, 221, 142, 248, - 173, 193, 34, 242, 212, 208, 137, 230, 33, 209, 10, 217, 78, 203, 52, - 250, 178, 203, 52, 229, 134, 203, 52, 193, 34, 205, 139, 193, 34, 248, - 90, 232, 156, 247, 220, 223, 163, 202, 187, 247, 219, 223, 163, 202, 187, - 248, 60, 231, 28, 217, 90, 193, 35, 233, 81, 217, 91, 23, 193, 36, 229, - 6, 230, 28, 105, 216, 187, 229, 6, 230, 28, 105, 193, 33, 229, 6, 230, - 28, 209, 50, 211, 142, 193, 36, 4, 247, 239, 234, 209, 248, 30, 4, 195, - 144, 209, 251, 4, 248, 121, 230, 78, 217, 91, 4, 230, 176, 209, 186, 217, - 73, 217, 91, 4, 197, 63, 211, 118, 217, 90, 211, 118, 193, 35, 249, 148, - 239, 37, 193, 19, 208, 213, 223, 19, 211, 137, 223, 19, 230, 254, 231, - 61, 249, 149, 251, 120, 233, 198, 251, 182, 251, 183, 215, 215, 223, 168, - 202, 103, 223, 137, 237, 79, 209, 250, 230, 170, 237, 240, 219, 95, 214, - 235, 209, 48, 233, 104, 217, 33, 230, 77, 249, 86, 209, 52, 200, 62, 209, - 140, 221, 123, 77, 218, 242, 219, 175, 206, 188, 231, 155, 201, 65, 221, - 122, 248, 71, 238, 243, 4, 229, 223, 193, 117, 249, 6, 229, 223, 248, 22, - 229, 223, 105, 229, 221, 201, 239, 229, 223, 230, 186, 229, 223, 229, - 224, 4, 57, 248, 115, 229, 223, 230, 201, 229, 223, 192, 73, 229, 223, - 208, 138, 229, 223, 229, 224, 4, 206, 247, 207, 12, 229, 221, 229, 224, - 237, 136, 237, 33, 203, 135, 4, 42, 75, 223, 117, 234, 135, 156, 247, - 251, 251, 119, 113, 248, 99, 202, 92, 113, 242, 85, 113, 201, 212, 200, - 144, 113, 235, 97, 237, 216, 113, 209, 141, 79, 209, 37, 232, 199, 248, - 185, 236, 195, 113, 201, 230, 249, 109, 198, 231, 249, 109, 63, 232, 186, - 228, 141, 209, 56, 113, 215, 230, 249, 130, 238, 170, 233, 218, 88, 236, - 155, 56, 238, 230, 247, 100, 249, 91, 4, 192, 71, 56, 249, 91, 4, 236, - 155, 56, 249, 91, 4, 233, 234, 56, 249, 91, 4, 209, 8, 56, 215, 230, 4, - 193, 60, 243, 137, 4, 196, 66, 197, 250, 23, 192, 71, 56, 205, 60, 209, - 249, 239, 59, 248, 28, 216, 41, 232, 191, 236, 220, 211, 60, 236, 226, - 235, 55, 233, 7, 232, 171, 211, 77, 233, 7, 232, 171, 210, 205, 4, 238, - 175, 210, 205, 233, 96, 196, 77, 247, 140, 199, 130, 247, 140, 247, 101, - 223, 148, 243, 137, 4, 196, 66, 197, 249, 243, 137, 4, 235, 119, 197, - 249, 249, 88, 243, 136, 242, 225, 208, 133, 206, 115, 208, 133, 210, 134, - 201, 53, 206, 50, 197, 238, 206, 50, 248, 95, 199, 232, 219, 229, 213, 4, - 213, 5, 4, 237, 135, 238, 242, 242, 219, 248, 96, 211, 77, 248, 96, 230, - 201, 248, 96, 248, 115, 248, 96, 211, 55, 248, 96, 248, 93, 214, 228, - 249, 134, 205, 73, 216, 188, 199, 107, 207, 101, 210, 203, 233, 64, 217, - 148, 205, 119, 251, 86, 208, 158, 252, 39, 218, 244, 243, 119, 216, 201, - 211, 13, 198, 2, 223, 159, 198, 2, 210, 212, 235, 8, 113, 223, 156, 234, - 67, 234, 68, 4, 235, 119, 64, 58, 242, 219, 217, 109, 4, 218, 235, 232, - 217, 242, 219, 217, 109, 4, 207, 147, 232, 217, 211, 77, 217, 109, 4, - 207, 147, 232, 217, 211, 77, 217, 109, 4, 218, 235, 232, 217, 209, 17, - 209, 18, 228, 187, 214, 75, 216, 4, 209, 194, 216, 4, 209, 195, 4, 96, - 64, 250, 183, 219, 224, 195, 68, 216, 3, 216, 4, 209, 195, 211, 145, 213, - 44, 216, 4, 209, 193, 251, 87, 4, 249, 76, 247, 132, 247, 133, 4, 232, - 208, 195, 65, 247, 132, 199, 104, 207, 165, 195, 64, 233, 0, 208, 193, - 209, 27, 201, 77, 208, 236, 249, 15, 197, 17, 96, 250, 231, 242, 221, 96, - 23, 118, 211, 77, 243, 11, 250, 231, 242, 221, 96, 23, 118, 211, 77, 243, - 11, 250, 232, 4, 47, 91, 210, 255, 242, 221, 235, 119, 23, 196, 66, 211, - 77, 243, 11, 250, 231, 251, 85, 235, 119, 23, 196, 66, 211, 77, 243, 11, - 250, 231, 130, 248, 26, 113, 137, 248, 26, 113, 201, 235, 4, 247, 125, - 106, 201, 234, 201, 235, 4, 91, 202, 5, 193, 138, 201, 235, 4, 115, 202, - 5, 193, 137, 249, 58, 234, 135, 209, 87, 219, 219, 217, 121, 231, 16, - 206, 203, 217, 121, 231, 16, 219, 35, 4, 223, 129, 210, 34, 242, 219, - 219, 35, 4, 221, 222, 221, 222, 219, 34, 211, 77, 219, 34, 248, 235, 248, - 236, 4, 247, 125, 106, 248, 94, 219, 103, 113, 207, 166, 247, 213, 249, - 147, 4, 118, 64, 58, 234, 95, 4, 118, 64, 58, 211, 105, 4, 233, 216, 87, - 4, 45, 50, 64, 58, 202, 15, 4, 96, 64, 58, 198, 54, 4, 196, 66, 64, 58, - 213, 44, 91, 196, 105, 234, 162, 113, 221, 219, 199, 95, 223, 123, 16, - 40, 8, 6, 219, 174, 223, 123, 16, 40, 8, 2, 219, 174, 223, 123, 16, 40, - 212, 135, 223, 123, 16, 40, 200, 76, 223, 123, 16, 40, 8, 219, 174, 232, - 243, 234, 135, 198, 49, 193, 9, 230, 61, 212, 118, 23, 248, 101, 229, 13, - 209, 118, 216, 88, 199, 105, 238, 197, 249, 111, 202, 136, 209, 60, 201, - 103, 4, 82, 236, 140, 223, 19, 16, 40, 248, 248, 197, 236, 234, 111, 62, - 51, 247, 213, 63, 51, 247, 213, 220, 13, 207, 87, 243, 10, 220, 13, 248, - 115, 243, 10, 220, 13, 211, 55, 237, 32, 220, 13, 248, 115, 237, 32, 2, - 211, 55, 237, 32, 2, 248, 115, 237, 32, 196, 76, 207, 87, 197, 241, 235, - 122, 207, 87, 197, 241, 196, 76, 2, 207, 87, 197, 241, 235, 122, 2, 207, - 87, 197, 241, 110, 50, 203, 151, 63, 243, 10, 116, 50, 203, 151, 63, 243, - 10, 47, 238, 218, 209, 41, 238, 218, 209, 42, 4, 230, 67, 60, 238, 218, - 209, 41, 213, 8, 45, 204, 28, 4, 115, 236, 138, 213, 8, 50, 204, 28, 4, - 115, 236, 138, 16, 40, 217, 50, 246, 242, 63, 8, 238, 217, 88, 8, 238, - 217, 247, 26, 238, 217, 211, 114, 113, 235, 125, 79, 210, 60, 222, 125, - 215, 197, 200, 70, 216, 183, 4, 213, 175, 248, 46, 248, 67, 79, 228, 90, - 242, 223, 233, 104, 91, 211, 162, 242, 223, 233, 104, 105, 211, 162, 242, - 223, 233, 104, 115, 211, 162, 242, 223, 233, 104, 232, 128, 211, 162, - 242, 223, 233, 104, 232, 226, 211, 162, 242, 223, 233, 104, 202, 136, - 211, 162, 242, 223, 233, 104, 203, 247, 211, 162, 242, 223, 233, 104, - 234, 164, 211, 162, 242, 223, 233, 104, 213, 175, 211, 162, 242, 223, - 233, 104, 199, 96, 211, 162, 242, 223, 233, 104, 234, 128, 211, 162, 242, - 223, 233, 104, 197, 38, 211, 162, 242, 223, 233, 104, 211, 97, 242, 223, - 233, 104, 197, 11, 242, 223, 233, 104, 198, 217, 242, 223, 233, 104, 232, - 124, 242, 223, 233, 104, 232, 223, 242, 223, 233, 104, 202, 132, 242, - 223, 233, 104, 203, 246, 242, 223, 233, 104, 234, 163, 242, 223, 233, - 104, 213, 173, 242, 223, 233, 104, 199, 94, 242, 223, 233, 104, 234, 126, - 242, 223, 233, 104, 197, 36, 50, 201, 234, 50, 201, 235, 4, 91, 202, 5, - 193, 138, 50, 201, 235, 4, 115, 202, 5, 193, 137, 247, 246, 247, 247, 4, - 202, 5, 193, 137, 206, 186, 248, 235, 248, 96, 247, 123, 217, 75, 242, - 222, 62, 202, 104, 23, 238, 215, 213, 44, 209, 124, 229, 5, 217, 91, 223, - 163, 247, 222, 200, 212, 219, 165, 202, 90, 211, 57, 201, 191, 237, 221, - 200, 194, 201, 221, 201, 222, 193, 118, 222, 183, 217, 91, 237, 239, 45, - 230, 54, 199, 107, 207, 101, 199, 107, 207, 102, 4, 210, 204, 50, 230, - 54, 199, 107, 207, 101, 63, 198, 34, 199, 106, 62, 198, 34, 199, 106, - 199, 107, 211, 105, 198, 54, 79, 216, 0, 242, 245, 216, 4, 209, 194, 249, - 147, 79, 234, 67, 201, 109, 234, 67, 234, 68, 4, 219, 129, 232, 178, 234, - 67, 210, 35, 139, 201, 109, 234, 67, 219, 102, 210, 133, 62, 208, 133, - 110, 45, 210, 33, 110, 45, 249, 105, 210, 34, 110, 45, 232, 130, 210, 34, - 110, 45, 210, 197, 110, 45, 238, 233, 45, 193, 3, 230, 53, 153, 211, 126, - 230, 54, 56, 207, 147, 230, 54, 4, 232, 248, 201, 211, 207, 18, 207, 147, - 230, 54, 4, 232, 248, 201, 211, 207, 18, 198, 211, 133, 56, 207, 18, 198, - 211, 144, 56, 207, 18, 195, 67, 230, 53, 207, 18, 230, 54, 4, 82, 232, - 253, 233, 204, 207, 147, 230, 54, 4, 210, 107, 248, 210, 82, 23, 206, - 189, 232, 247, 63, 144, 209, 58, 45, 230, 54, 223, 148, 202, 206, 63, 45, - 209, 58, 223, 148, 202, 206, 63, 50, 209, 58, 223, 148, 202, 206, 62, 45, - 209, 58, 223, 148, 202, 206, 62, 50, 209, 58, 223, 148, 62, 45, 209, 58, - 249, 144, 223, 148, 62, 50, 209, 58, 249, 144, 223, 148, 202, 206, 63, - 133, 209, 58, 223, 148, 202, 206, 63, 144, 209, 58, 223, 148, 202, 206, - 62, 133, 209, 58, 223, 148, 202, 206, 62, 144, 209, 58, 223, 148, 62, - 133, 209, 58, 249, 144, 223, 148, 62, 144, 209, 58, 249, 144, 223, 148, - 62, 229, 223, 237, 78, 239, 59, 221, 221, 23, 215, 181, 115, 214, 84, - 239, 58, 208, 209, 209, 71, 247, 142, 62, 230, 17, 203, 103, 232, 191, - 236, 220, 63, 230, 17, 203, 103, 232, 191, 236, 220, 202, 32, 203, 103, - 232, 191, 236, 220, 199, 182, 247, 84, 193, 55, 221, 220, 91, 247, 214, - 215, 181, 105, 247, 214, 215, 181, 115, 247, 214, 215, 181, 198, 24, 39, - 209, 249, 239, 59, 230, 17, 236, 220, 205, 76, 208, 210, 228, 20, 233, - 64, 228, 20, 211, 60, 236, 227, 228, 20, 236, 168, 4, 199, 53, 236, 168, - 4, 199, 54, 23, 209, 177, 236, 168, 4, 209, 177, 232, 114, 4, 209, 177, - 232, 114, 4, 198, 150, 232, 114, 4, 251, 133, 192, 235, 62, 232, 171, - 232, 171, 211, 77, 232, 171, 247, 101, 141, 236, 204, 247, 101, 233, 7, - 248, 62, 233, 7, 247, 155, 234, 105, 213, 6, 234, 105, 213, 7, 210, 204, - 234, 105, 213, 7, 210, 210, 213, 6, 213, 7, 210, 204, 213, 7, 210, 210, - 234, 105, 236, 167, 234, 105, 210, 204, 234, 105, 210, 202, 236, 167, - 210, 204, 210, 202, 193, 148, 201, 218, 213, 7, 210, 210, 201, 218, 247, - 141, 210, 210, 237, 78, 193, 65, 216, 38, 217, 22, 211, 2, 242, 221, 50, - 23, 45, 204, 28, 250, 231, 247, 125, 192, 235, 223, 154, 232, 163, 202, - 116, 113, 237, 134, 232, 163, 202, 116, 113, 239, 60, 39, 221, 222, 206, - 140, 214, 75, 210, 205, 4, 47, 199, 53, 201, 67, 243, 136, 238, 15, 221, - 78, 219, 96, 201, 233, 229, 236, 223, 163, 202, 187, 115, 207, 120, 58, - 115, 207, 120, 60, 115, 207, 120, 219, 224, 115, 207, 120, 183, 45, 201, - 230, 248, 8, 50, 201, 230, 248, 8, 105, 201, 230, 248, 7, 115, 201, 230, - 248, 7, 45, 198, 231, 248, 8, 50, 198, 231, 248, 8, 45, 251, 119, 248, 8, - 50, 251, 119, 248, 8, 215, 210, 248, 8, 219, 130, 215, 210, 248, 8, 219, - 130, 215, 209, 249, 107, 111, 4, 249, 106, 249, 107, 27, 192, 235, 249, - 107, 111, 4, 27, 192, 235, 249, 107, 28, 27, 192, 235, 249, 107, 111, 4, - 28, 27, 192, 235, 156, 243, 126, 77, 249, 107, 111, 4, 28, 243, 125, 193, - 18, 217, 71, 215, 186, 232, 81, 198, 85, 198, 30, 201, 92, 79, 219, 144, - 202, 188, 79, 223, 20, 215, 167, 230, 196, 233, 103, 230, 196, 233, 104, - 4, 202, 64, 233, 185, 233, 104, 4, 199, 126, 79, 222, 185, 202, 64, 233, - 104, 4, 211, 77, 215, 179, 202, 64, 233, 104, 4, 211, 77, 215, 180, 23, - 202, 64, 233, 185, 202, 64, 233, 104, 4, 211, 77, 215, 180, 23, 242, 87, - 200, 143, 202, 64, 233, 104, 4, 211, 77, 215, 180, 23, 198, 171, 233, - 185, 202, 64, 233, 104, 4, 230, 66, 202, 64, 233, 104, 4, 228, 186, 193, - 57, 233, 103, 202, 64, 233, 104, 4, 202, 64, 233, 185, 233, 104, 205, - 109, 237, 114, 232, 161, 207, 61, 233, 103, 202, 64, 233, 104, 4, 229, - 222, 233, 185, 202, 64, 233, 104, 4, 200, 194, 202, 63, 233, 103, 214, - 82, 233, 103, 233, 206, 233, 103, 196, 111, 233, 103, 233, 104, 4, 242, - 87, 200, 143, 210, 26, 233, 103, 239, 51, 233, 103, 239, 52, 233, 103, - 221, 121, 233, 103, 233, 104, 198, 214, 42, 221, 122, 221, 121, 233, 104, - 4, 202, 64, 233, 185, 221, 121, 233, 104, 4, 242, 219, 233, 185, 233, - 104, 4, 201, 12, 198, 61, 233, 104, 4, 201, 12, 198, 62, 23, 193, 57, - 233, 193, 233, 104, 4, 201, 12, 198, 62, 23, 198, 171, 233, 185, 236, - 228, 233, 103, 193, 16, 233, 103, 251, 111, 233, 103, 209, 6, 233, 103, - 238, 199, 233, 103, 209, 253, 233, 103, 233, 104, 4, 219, 7, 79, 197, - 217, 236, 228, 247, 218, 207, 61, 233, 103, 232, 92, 233, 104, 4, 211, - 77, 215, 179, 251, 109, 233, 103, 233, 57, 233, 103, 193, 119, 233, 103, - 202, 91, 233, 103, 198, 130, 233, 103, 230, 197, 233, 103, 218, 245, 238, - 199, 233, 103, 233, 104, 4, 211, 77, 215, 179, 228, 130, 233, 103, 233, - 104, 4, 211, 77, 215, 180, 23, 242, 87, 200, 143, 233, 104, 205, 78, 223, - 163, 233, 58, 250, 190, 233, 103, 232, 183, 233, 103, 202, 92, 233, 103, - 236, 195, 233, 103, 233, 104, 193, 51, 215, 179, 233, 104, 4, 216, 216, - 217, 35, 230, 196, 247, 79, 233, 104, 4, 202, 64, 233, 185, 247, 79, 233, - 104, 4, 199, 126, 79, 222, 185, 202, 64, 247, 79, 233, 104, 4, 211, 77, - 215, 179, 202, 64, 247, 79, 233, 104, 4, 229, 222, 233, 185, 247, 79, - 233, 104, 4, 193, 1, 202, 65, 221, 121, 247, 79, 233, 104, 4, 242, 219, - 233, 185, 209, 6, 247, 79, 233, 103, 238, 199, 247, 79, 233, 103, 193, - 119, 247, 79, 233, 103, 202, 84, 232, 92, 233, 103, 202, 84, 202, 64, - 233, 103, 196, 72, 233, 103, 233, 104, 4, 206, 138, 233, 185, 233, 104, - 4, 213, 44, 230, 244, 231, 132, 233, 104, 4, 211, 126, 231, 132, 209, - 251, 248, 68, 237, 129, 205, 49, 215, 225, 229, 226, 215, 225, 201, 236, - 215, 225, 230, 20, 209, 251, 207, 145, 91, 230, 53, 209, 251, 207, 145, - 248, 80, 230, 29, 223, 163, 247, 28, 209, 251, 232, 91, 209, 251, 4, 209, - 6, 233, 103, 209, 251, 4, 232, 172, 230, 28, 186, 193, 105, 209, 58, 219, - 233, 202, 2, 193, 105, 209, 58, 219, 233, 186, 234, 204, 209, 58, 219, - 233, 202, 2, 234, 204, 209, 58, 219, 233, 153, 186, 193, 105, 209, 58, - 219, 233, 153, 202, 2, 193, 105, 209, 58, 219, 233, 153, 186, 234, 204, - 209, 58, 219, 233, 153, 202, 2, 234, 204, 209, 58, 219, 233, 186, 193, - 105, 209, 58, 195, 48, 219, 233, 202, 2, 193, 105, 209, 58, 195, 48, 219, - 233, 186, 234, 204, 209, 58, 195, 48, 219, 233, 202, 2, 234, 204, 209, - 58, 195, 48, 219, 233, 88, 186, 193, 105, 209, 58, 195, 48, 219, 233, 88, - 202, 2, 193, 105, 209, 58, 195, 48, 219, 233, 88, 186, 234, 204, 209, 58, - 195, 48, 219, 233, 88, 202, 2, 234, 204, 209, 58, 195, 48, 219, 233, 186, - 193, 105, 209, 58, 248, 4, 202, 2, 193, 105, 209, 58, 248, 4, 186, 234, - 204, 209, 58, 248, 4, 202, 2, 234, 204, 209, 58, 248, 4, 88, 186, 193, - 105, 209, 58, 248, 4, 88, 202, 2, 193, 105, 209, 58, 248, 4, 88, 186, - 234, 204, 209, 58, 248, 4, 88, 202, 2, 234, 204, 209, 58, 248, 4, 229, 4, - 208, 6, 51, 211, 42, 229, 4, 208, 6, 51, 211, 43, 223, 163, 62, 201, 190, - 202, 25, 208, 6, 51, 211, 42, 202, 25, 208, 6, 51, 211, 43, 223, 163, 62, - 201, 190, 118, 206, 146, 196, 66, 206, 146, 96, 206, 146, 235, 119, 206, - 146, 27, 34, 234, 0, 211, 42, 88, 27, 34, 234, 0, 211, 42, 34, 211, 77, - 234, 0, 211, 42, 88, 34, 211, 77, 234, 0, 211, 42, 88, 251, 138, 211, 42, - 200, 146, 251, 138, 211, 42, 49, 88, 55, 153, 242, 75, 207, 252, 87, 211, - 42, 49, 88, 55, 242, 75, 207, 252, 87, 211, 42, 49, 88, 130, 55, 242, 75, - 207, 252, 87, 211, 42, 88, 223, 103, 211, 42, 49, 223, 103, 211, 42, 88, - 49, 223, 103, 211, 42, 195, 83, 88, 202, 23, 195, 83, 88, 207, 19, 202, - 23, 243, 124, 248, 107, 207, 19, 243, 124, 248, 107, 206, 146, 229, 205, - 201, 85, 219, 32, 207, 152, 247, 102, 229, 131, 198, 16, 229, 131, 198, - 17, 4, 247, 249, 213, 13, 198, 16, 216, 158, 156, 207, 153, 201, 93, 198, - 14, 198, 15, 247, 102, 247, 223, 211, 101, 247, 223, 197, 212, 247, 224, - 201, 63, 216, 42, 251, 142, 232, 244, 234, 87, 209, 50, 247, 102, 211, - 101, 209, 50, 247, 102, 199, 155, 211, 101, 199, 155, 250, 150, 211, 101, - 250, 150, 207, 94, 195, 145, 237, 110, 197, 203, 250, 225, 218, 254, 198, - 23, 215, 218, 215, 185, 207, 151, 200, 164, 207, 151, 215, 185, 247, 154, - 252, 11, 198, 13, 203, 65, 206, 112, 201, 228, 228, 241, 198, 20, 219, - 132, 81, 198, 20, 219, 132, 239, 37, 56, 209, 50, 247, 86, 207, 12, 219, - 132, 197, 238, 232, 218, 211, 105, 209, 19, 236, 144, 213, 44, 234, 73, - 56, 202, 62, 113, 213, 44, 202, 62, 113, 208, 132, 219, 84, 223, 163, - 223, 50, 209, 108, 113, 236, 175, 213, 12, 219, 84, 113, 209, 13, 193, - 144, 113, 213, 28, 193, 144, 113, 248, 184, 213, 44, 248, 183, 248, 182, - 215, 185, 248, 182, 210, 51, 213, 44, 210, 50, 243, 85, 238, 209, 216, - 182, 113, 193, 32, 113, 207, 28, 249, 149, 113, 198, 86, 193, 144, 242, - 216, 203, 20, 249, 61, 249, 59, 210, 91, 239, 21, 238, 156, 249, 126, - 242, 246, 45, 218, 215, 197, 242, 4, 206, 113, 239, 0, 208, 196, 56, 47, - 223, 137, 202, 3, 248, 59, 113, 231, 27, 113, 238, 248, 23, 220, 25, 202, - 92, 252, 57, 203, 43, 249, 125, 248, 234, 248, 235, 249, 2, 209, 108, 79, - 193, 15, 211, 159, 56, 203, 43, 197, 213, 201, 8, 210, 201, 229, 127, - 199, 98, 228, 129, 234, 130, 193, 54, 209, 96, 202, 87, 193, 93, 206, - 189, 247, 233, 230, 62, 23, 193, 9, 203, 78, 211, 132, 235, 94, 215, 189, - 207, 152, 198, 25, 215, 192, 248, 106, 196, 76, 216, 54, 251, 223, 196, - 76, 251, 223, 196, 76, 2, 251, 223, 2, 251, 223, 213, 17, 251, 223, 251, - 224, 237, 93, 251, 224, 250, 238, 205, 118, 211, 101, 232, 244, 234, 87, - 237, 22, 219, 32, 210, 95, 203, 65, 205, 83, 215, 192, 205, 83, 247, 113, - 202, 94, 232, 178, 205, 113, 202, 111, 250, 152, 206, 243, 209, 178, 197, - 203, 206, 139, 202, 112, 160, 16, 40, 208, 2, 160, 16, 40, 251, 225, 160, - 16, 40, 232, 243, 160, 16, 40, 234, 207, 160, 16, 40, 193, 143, 160, 16, - 40, 251, 35, 160, 16, 40, 251, 36, 207, 81, 160, 16, 40, 251, 36, 207, - 80, 160, 16, 40, 251, 36, 195, 31, 160, 16, 40, 251, 36, 195, 30, 160, - 16, 40, 195, 45, 160, 16, 40, 195, 44, 160, 16, 40, 195, 43, 160, 16, 40, - 200, 205, 160, 16, 40, 209, 203, 200, 205, 160, 16, 40, 62, 200, 205, - 160, 16, 40, 216, 181, 200, 236, 160, 16, 40, 216, 181, 200, 235, 160, - 16, 40, 216, 181, 200, 234, 160, 16, 40, 243, 13, 160, 16, 40, 205, 158, - 160, 16, 40, 213, 161, 160, 16, 40, 195, 28, 160, 16, 40, 195, 27, 160, - 16, 40, 206, 148, 205, 158, 160, 16, 40, 206, 148, 205, 157, 160, 16, 40, - 230, 250, 160, 16, 40, 202, 184, 160, 16, 40, 223, 74, 211, 49, 160, 16, - 40, 223, 74, 211, 48, 160, 16, 40, 238, 222, 79, 223, 73, 160, 16, 40, - 207, 77, 79, 223, 73, 160, 16, 40, 239, 12, 211, 49, 160, 16, 40, 223, - 72, 211, 49, 160, 16, 40, 200, 237, 79, 239, 11, 160, 16, 40, 238, 222, - 79, 239, 11, 160, 16, 40, 238, 222, 79, 239, 10, 160, 16, 40, 239, 12, - 251, 79, 160, 16, 40, 205, 159, 79, 239, 12, 251, 79, 160, 16, 40, 200, - 237, 79, 205, 159, 79, 239, 11, 160, 16, 40, 195, 139, 160, 16, 40, 198, - 143, 211, 49, 160, 16, 40, 219, 237, 211, 49, 160, 16, 40, 251, 78, 211, - 49, 160, 16, 40, 200, 237, 79, 251, 77, 160, 16, 40, 205, 159, 79, 251, - 77, 160, 16, 40, 200, 237, 79, 205, 159, 79, 251, 77, 160, 16, 40, 195, - 46, 79, 251, 77, 160, 16, 40, 207, 77, 79, 251, 77, 160, 16, 40, 207, 77, - 79, 251, 76, 160, 16, 40, 207, 76, 160, 16, 40, 207, 75, 160, 16, 40, - 207, 74, 160, 16, 40, 207, 73, 160, 16, 40, 251, 177, 160, 16, 40, 251, - 176, 160, 16, 40, 217, 61, 160, 16, 40, 205, 168, 160, 16, 40, 250, 230, - 160, 16, 40, 207, 105, 160, 16, 40, 207, 104, 160, 16, 40, 250, 154, 160, - 16, 40, 248, 150, 211, 49, 160, 16, 40, 199, 177, 160, 16, 40, 199, 176, - 160, 16, 40, 208, 8, 219, 121, 160, 16, 40, 248, 87, 160, 16, 40, 248, - 86, 160, 16, 40, 248, 85, 160, 16, 40, 251, 151, 160, 16, 40, 211, 131, - 160, 16, 40, 201, 214, 160, 16, 40, 198, 141, 160, 16, 40, 230, 158, 160, - 16, 40, 193, 131, 160, 16, 40, 209, 1, 160, 16, 40, 247, 137, 160, 16, - 40, 197, 50, 160, 16, 40, 247, 104, 215, 198, 160, 16, 40, 205, 93, 79, - 222, 187, 160, 16, 40, 247, 151, 160, 16, 40, 197, 235, 160, 16, 40, 201, - 100, 197, 235, 160, 16, 40, 219, 31, 160, 16, 40, 202, 37, 160, 16, 40, - 196, 54, 160, 16, 40, 228, 184, 235, 71, 160, 16, 40, 250, 204, 160, 16, - 40, 209, 15, 250, 204, 160, 16, 40, 248, 31, 160, 16, 40, 209, 0, 248, - 31, 160, 16, 40, 251, 148, 160, 16, 40, 201, 46, 200, 186, 201, 45, 160, - 16, 40, 201, 46, 200, 186, 201, 44, 160, 16, 40, 200, 233, 160, 16, 40, - 208, 229, 160, 16, 40, 236, 215, 160, 16, 40, 236, 217, 160, 16, 40, 236, - 216, 160, 16, 40, 208, 141, 160, 16, 40, 208, 129, 160, 16, 40, 238, 207, - 160, 16, 40, 238, 206, 160, 16, 40, 238, 205, 160, 16, 40, 238, 204, 160, - 16, 40, 238, 203, 160, 16, 40, 251, 191, 160, 16, 40, 249, 62, 79, 217, - 42, 160, 16, 40, 249, 62, 79, 195, 174, 160, 16, 40, 207, 26, 160, 16, - 40, 228, 176, 160, 16, 40, 213, 190, 160, 16, 40, 237, 203, 160, 16, 40, - 215, 213, 160, 16, 40, 132, 235, 109, 160, 16, 40, 132, 211, 17, 218, - 250, 79, 232, 137, 211, 164, 218, 207, 234, 194, 230, 1, 217, 101, 230, - 246, 208, 24, 211, 52, 62, 219, 219, 223, 56, 50, 197, 241, 62, 196, 76, - 223, 56, 50, 197, 241, 62, 206, 203, 223, 56, 50, 197, 241, 62, 235, 122, - 223, 56, 50, 197, 241, 62, 202, 84, 2, 243, 10, 216, 213, 28, 63, 243, - 10, 28, 63, 243, 10, 88, 63, 243, 10, 195, 83, 88, 63, 243, 10, 233, 197, - 88, 63, 243, 10, 63, 243, 11, 239, 33, 62, 2, 243, 10, 206, 115, 199, - 178, 62, 198, 138, 201, 190, 62, 202, 84, 2, 201, 190, 156, 63, 201, 190, - 216, 213, 63, 201, 190, 28, 63, 201, 190, 88, 63, 201, 190, 195, 83, 88, - 63, 201, 190, 233, 197, 88, 63, 201, 190, 63, 51, 239, 33, 62, 195, 83, - 2, 201, 190, 63, 51, 239, 33, 62, 216, 213, 201, 190, 51, 199, 178, 62, - 198, 138, 237, 32, 62, 195, 83, 2, 237, 32, 62, 216, 213, 2, 237, 32, 63, - 237, 33, 239, 33, 62, 195, 83, 2, 237, 32, 63, 237, 33, 239, 33, 62, 216, - 213, 237, 32, 237, 33, 199, 178, 62, 198, 138, 218, 232, 62, 195, 83, 2, - 218, 232, 62, 216, 213, 2, 218, 232, 63, 218, 233, 239, 33, 62, 2, 218, - 232, 199, 4, 35, 238, 217, 156, 35, 238, 217, 216, 213, 35, 238, 217, 28, - 35, 238, 217, 195, 83, 28, 35, 238, 217, 195, 83, 88, 35, 238, 217, 233, - 197, 88, 35, 238, 217, 199, 4, 205, 154, 156, 205, 154, 216, 213, 205, - 154, 28, 205, 154, 88, 205, 154, 195, 83, 88, 205, 154, 233, 197, 88, - 205, 154, 156, 232, 226, 201, 206, 250, 193, 216, 213, 232, 226, 201, - 206, 250, 193, 28, 232, 226, 201, 206, 250, 193, 88, 232, 226, 201, 206, - 250, 193, 195, 83, 88, 232, 226, 201, 206, 250, 193, 233, 197, 88, 232, - 226, 201, 206, 250, 193, 156, 202, 136, 201, 206, 250, 193, 216, 213, - 202, 136, 201, 206, 250, 193, 28, 202, 136, 201, 206, 250, 193, 88, 202, - 136, 201, 206, 250, 193, 195, 83, 88, 202, 136, 201, 206, 250, 193, 233, - 197, 88, 202, 136, 201, 206, 250, 193, 156, 234, 164, 201, 206, 250, 193, - 216, 213, 234, 164, 201, 206, 250, 193, 28, 234, 164, 201, 206, 250, 193, - 88, 234, 164, 201, 206, 250, 193, 195, 83, 88, 234, 164, 201, 206, 250, - 193, 156, 115, 209, 60, 62, 201, 102, 216, 213, 115, 209, 60, 62, 201, - 102, 115, 209, 60, 62, 201, 102, 216, 213, 115, 209, 60, 209, 130, 201, - 102, 156, 232, 128, 209, 60, 62, 201, 102, 216, 213, 232, 128, 209, 60, - 62, 201, 102, 232, 128, 209, 60, 62, 201, 102, 216, 213, 232, 128, 209, - 60, 209, 130, 201, 102, 207, 19, 156, 232, 128, 209, 60, 209, 130, 201, - 102, 156, 232, 226, 209, 60, 62, 201, 102, 88, 232, 226, 209, 60, 62, - 201, 102, 216, 213, 202, 136, 209, 60, 62, 201, 102, 88, 202, 136, 209, - 60, 62, 201, 102, 202, 136, 209, 60, 209, 130, 201, 102, 216, 213, 234, - 164, 209, 60, 62, 201, 102, 88, 234, 164, 209, 60, 62, 201, 102, 195, 83, - 88, 234, 164, 209, 60, 62, 201, 102, 88, 234, 164, 209, 60, 209, 130, - 201, 102, 156, 197, 38, 209, 60, 62, 201, 102, 88, 197, 38, 209, 60, 62, - 201, 102, 88, 197, 38, 209, 60, 209, 130, 201, 102, 47, 197, 241, 214, - 106, 47, 197, 241, 47, 201, 190, 214, 106, 47, 201, 190, 213, 175, 209, - 60, 63, 201, 102, 220, 13, 211, 55, 243, 10, 220, 13, 192, 73, 243, 10, - 220, 13, 230, 201, 243, 10, 220, 13, 208, 138, 243, 10, 220, 13, 248, 19, - 243, 10, 220, 13, 207, 87, 201, 190, 220, 13, 248, 115, 201, 190, 220, - 13, 211, 55, 201, 190, 220, 13, 192, 73, 201, 190, 220, 13, 230, 201, - 201, 190, 220, 13, 208, 138, 201, 190, 220, 13, 248, 19, 201, 190, 88, - 234, 43, 56, 118, 64, 4, 2, 197, 242, 250, 235, 196, 66, 64, 4, 2, 197, - 242, 250, 235, 96, 64, 4, 2, 197, 242, 250, 235, 235, 119, 64, 4, 2, 197, - 242, 250, 235, 118, 64, 4, 216, 213, 197, 242, 250, 235, 196, 66, 64, 4, - 216, 213, 197, 242, 250, 235, 96, 64, 4, 216, 213, 197, 242, 250, 235, - 235, 119, 64, 4, 216, 213, 197, 242, 250, 235, 118, 64, 4, 220, 13, 197, - 242, 250, 235, 196, 66, 64, 4, 220, 13, 197, 242, 250, 235, 96, 64, 4, - 220, 13, 197, 242, 250, 235, 235, 119, 64, 4, 220, 13, 197, 242, 250, - 235, 118, 64, 4, 2, 234, 37, 250, 235, 196, 66, 64, 4, 2, 234, 37, 250, - 235, 96, 64, 4, 2, 234, 37, 250, 235, 235, 119, 64, 4, 2, 234, 37, 250, - 235, 118, 64, 4, 234, 37, 250, 235, 196, 66, 64, 4, 234, 37, 250, 235, - 96, 64, 4, 234, 37, 250, 235, 235, 119, 64, 4, 234, 37, 250, 235, 88, - 118, 64, 4, 234, 37, 250, 235, 88, 196, 66, 64, 4, 234, 37, 250, 235, 88, - 96, 64, 4, 234, 37, 250, 235, 88, 235, 119, 64, 4, 234, 37, 250, 235, 88, - 118, 64, 4, 220, 13, 234, 37, 250, 235, 88, 196, 66, 64, 4, 220, 13, 234, - 37, 250, 235, 88, 96, 64, 4, 220, 13, 234, 37, 250, 235, 88, 235, 119, - 64, 4, 220, 13, 234, 37, 250, 235, 118, 197, 240, 64, 4, 214, 215, 203, - 149, 196, 66, 197, 240, 64, 4, 214, 215, 203, 149, 96, 197, 240, 64, 4, - 214, 215, 203, 149, 235, 119, 197, 240, 64, 4, 214, 215, 203, 149, 118, - 197, 240, 64, 4, 216, 213, 203, 149, 196, 66, 197, 240, 64, 4, 216, 213, - 203, 149, 96, 197, 240, 64, 4, 216, 213, 203, 149, 235, 119, 197, 240, - 64, 4, 216, 213, 203, 149, 118, 197, 240, 64, 4, 28, 203, 149, 196, 66, - 197, 240, 64, 4, 28, 203, 149, 96, 197, 240, 64, 4, 28, 203, 149, 235, - 119, 197, 240, 64, 4, 28, 203, 149, 118, 197, 240, 64, 4, 88, 203, 149, - 196, 66, 197, 240, 64, 4, 88, 203, 149, 96, 197, 240, 64, 4, 88, 203, - 149, 235, 119, 197, 240, 64, 4, 88, 203, 149, 118, 197, 240, 64, 4, 195, - 83, 88, 203, 149, 196, 66, 197, 240, 64, 4, 195, 83, 88, 203, 149, 96, - 197, 240, 64, 4, 195, 83, 88, 203, 149, 235, 119, 197, 240, 64, 4, 195, - 83, 88, 203, 149, 118, 232, 251, 57, 196, 66, 232, 251, 57, 96, 232, 251, - 57, 235, 119, 232, 251, 57, 118, 112, 57, 196, 66, 112, 57, 96, 112, 57, - 235, 119, 112, 57, 118, 239, 61, 57, 196, 66, 239, 61, 57, 96, 239, 61, - 57, 235, 119, 239, 61, 57, 118, 88, 239, 61, 57, 196, 66, 88, 239, 61, - 57, 96, 88, 239, 61, 57, 235, 119, 88, 239, 61, 57, 118, 88, 57, 196, 66, - 88, 57, 96, 88, 57, 235, 119, 88, 57, 118, 49, 57, 196, 66, 49, 57, 96, - 49, 57, 235, 119, 49, 57, 186, 193, 105, 49, 57, 186, 234, 204, 49, 57, - 202, 2, 234, 204, 49, 57, 202, 2, 193, 105, 49, 57, 45, 50, 49, 57, 133, - 144, 49, 57, 193, 77, 118, 156, 181, 57, 193, 77, 196, 66, 156, 181, 57, - 193, 77, 96, 156, 181, 57, 193, 77, 235, 119, 156, 181, 57, 193, 77, 186, - 193, 105, 156, 181, 57, 193, 77, 186, 234, 204, 156, 181, 57, 193, 77, - 202, 2, 234, 204, 156, 181, 57, 193, 77, 202, 2, 193, 105, 156, 181, 57, - 193, 77, 118, 181, 57, 193, 77, 196, 66, 181, 57, 193, 77, 96, 181, 57, - 193, 77, 235, 119, 181, 57, 193, 77, 186, 193, 105, 181, 57, 193, 77, - 186, 234, 204, 181, 57, 193, 77, 202, 2, 234, 204, 181, 57, 193, 77, 202, - 2, 193, 105, 181, 57, 193, 77, 118, 216, 213, 181, 57, 193, 77, 196, 66, - 216, 213, 181, 57, 193, 77, 96, 216, 213, 181, 57, 193, 77, 235, 119, - 216, 213, 181, 57, 193, 77, 186, 193, 105, 216, 213, 181, 57, 193, 77, - 186, 234, 204, 216, 213, 181, 57, 193, 77, 202, 2, 234, 204, 216, 213, - 181, 57, 193, 77, 202, 2, 193, 105, 216, 213, 181, 57, 193, 77, 118, 88, - 181, 57, 193, 77, 196, 66, 88, 181, 57, 193, 77, 96, 88, 181, 57, 193, - 77, 235, 119, 88, 181, 57, 193, 77, 186, 193, 105, 88, 181, 57, 193, 77, - 186, 234, 204, 88, 181, 57, 193, 77, 202, 2, 234, 204, 88, 181, 57, 193, - 77, 202, 2, 193, 105, 88, 181, 57, 193, 77, 118, 195, 83, 88, 181, 57, - 193, 77, 196, 66, 195, 83, 88, 181, 57, 193, 77, 96, 195, 83, 88, 181, - 57, 193, 77, 235, 119, 195, 83, 88, 181, 57, 193, 77, 186, 193, 105, 195, - 83, 88, 181, 57, 193, 77, 186, 234, 204, 195, 83, 88, 181, 57, 193, 77, - 202, 2, 234, 204, 195, 83, 88, 181, 57, 193, 77, 202, 2, 193, 105, 195, - 83, 88, 181, 57, 118, 197, 242, 250, 235, 196, 66, 197, 242, 250, 235, - 96, 197, 242, 250, 235, 235, 119, 197, 242, 250, 235, 118, 63, 64, 193, - 53, 197, 242, 250, 235, 196, 66, 63, 64, 193, 53, 197, 242, 250, 235, 96, - 63, 64, 193, 53, 197, 242, 250, 235, 235, 119, 63, 64, 193, 53, 197, 242, - 250, 235, 118, 64, 4, 213, 8, 199, 215, 196, 66, 64, 4, 213, 8, 199, 215, - 96, 64, 4, 213, 8, 199, 215, 235, 119, 64, 4, 213, 8, 199, 215, 88, 64, - 203, 150, 193, 75, 107, 88, 64, 203, 150, 193, 75, 105, 198, 253, 88, 64, - 203, 150, 193, 75, 91, 230, 70, 88, 64, 203, 150, 193, 75, 91, 199, 0, - 118, 248, 74, 63, 57, 96, 248, 77, 203, 152, 63, 57, 118, 198, 54, 203, - 152, 63, 57, 96, 198, 54, 203, 152, 63, 57, 118, 219, 218, 63, 57, 96, - 206, 202, 63, 57, 118, 206, 202, 63, 57, 96, 219, 218, 63, 57, 118, 249, - 145, 203, 151, 63, 57, 96, 249, 145, 203, 151, 63, 57, 118, 232, 95, 203, - 151, 63, 57, 96, 232, 95, 203, 151, 63, 57, 63, 64, 203, 150, 193, 75, - 107, 63, 64, 203, 150, 193, 75, 105, 198, 253, 64, 209, 58, 196, 66, 199, - 25, 186, 193, 104, 64, 209, 58, 96, 199, 25, 238, 161, 202, 2, 193, 104, - 47, 238, 218, 232, 143, 4, 232, 128, 236, 138, 47, 238, 218, 232, 143, 4, - 105, 236, 138, 47, 238, 218, 232, 142, 45, 132, 243, 11, 4, 232, 128, - 236, 138, 45, 132, 243, 11, 4, 115, 236, 138, 45, 132, 243, 11, 4, 105, - 236, 138, 45, 132, 243, 11, 4, 236, 140, 45, 132, 243, 10, 235, 120, 233, - 96, 102, 235, 120, 233, 96, 213, 8, 102, 235, 120, 233, 96, 228, 251, 4, - 236, 140, 235, 120, 233, 96, 213, 8, 228, 251, 4, 236, 140, 209, 136, - 232, 247, 63, 229, 223, 248, 19, 229, 223, 209, 135, 230, 53, 191, 17, - 233, 103, 215, 229, 233, 103, 233, 104, 4, 199, 21, 214, 92, 233, 103, - 199, 2, 233, 103, 233, 104, 4, 229, 234, 206, 150, 233, 103, 228, 150, - 233, 103, 3, 79, 199, 34, 228, 186, 247, 139, 216, 233, 230, 53, 207, - 147, 249, 147, 79, 230, 53, 219, 223, 232, 231, 206, 207, 232, 231, 230, - 27, 230, 54, 4, 141, 23, 82, 232, 248, 238, 213, 228, 74, 218, 242, 191, - 239, 230, 54, 56, 233, 104, 4, 238, 238, 230, 9, 242, 208, 233, 103, 214, - 202, 233, 103, 206, 138, 211, 105, 199, 34, 232, 194, 219, 255, 235, 100, - 233, 103, 218, 178, 233, 103, 233, 104, 210, 182, 202, 56, 233, 103, 233, - 104, 4, 91, 233, 192, 207, 146, 230, 196, 233, 104, 4, 201, 103, 233, - 185, 230, 196, 233, 104, 4, 91, 220, 13, 23, 91, 2, 233, 193, 233, 104, - 4, 232, 253, 238, 241, 242, 219, 219, 96, 204, 2, 233, 104, 4, 200, 77, - 238, 241, 215, 179, 202, 64, 233, 104, 4, 202, 64, 233, 186, 23, 230, 54, - 238, 241, 215, 179, 233, 104, 4, 211, 77, 215, 180, 195, 9, 203, 54, 233, - 104, 4, 233, 208, 229, 235, 208, 226, 193, 35, 248, 40, 210, 181, 133, - 198, 87, 204, 31, 208, 214, 217, 91, 223, 163, 197, 46, 215, 194, 243, - 55, 203, 9, 209, 251, 236, 159, 247, 83, 222, 177, 233, 38, 215, 255, - 210, 21, 193, 8, 193, 144, 209, 44, 230, 32, 236, 201, 217, 35, 193, 69, - 232, 186, 235, 95, 4, 235, 93, 242, 226, 231, 15, 197, 74, 231, 16, 201, - 203, 231, 1, 214, 85, 206, 208, 232, 238, 209, 108, 216, 219, 205, 57, - 209, 108, 216, 219, 199, 1, 209, 108, 216, 219, 248, 61, 231, 10, 217, - 46, 250, 223, 196, 94, 238, 172, 201, 65, 220, 110, 201, 75, 23, 249, - 111, 202, 31, 232, 178, 236, 226, 238, 221, 250, 141, 238, 188, 249, 138, - 209, 12, 247, 87, 249, 124, 248, 43, 230, 201, 205, 165, 203, 142, 210, - 167, 79, 232, 161, 201, 9, 232, 205, 234, 179, 231, 17, 79, 216, 53, 210, - 56, 221, 116, 210, 163, 235, 76, 232, 138, 239, 16, 199, 207, 248, 62, - 243, 62, 248, 67, 4, 201, 203, 238, 182, 4, 201, 43, 242, 93, 248, 23, - 209, 176, 208, 218, 238, 155, 79, 216, 224, 205, 137, 247, 115, 232, 161, - 219, 232, 230, 200, 217, 82, 215, 206, 247, 146, 249, 127, 202, 64, 233, - 104, 4, 202, 64, 233, 186, 23, 115, 229, 221, 192, 87, 233, 103, 202, 64, - 233, 104, 4, 199, 131, 233, 104, 4, 210, 102, 228, 188, 23, 210, 102, - 230, 9, 233, 104, 4, 196, 98, 233, 186, 23, 193, 135, 215, 179, 211, 5, - 233, 103, 232, 107, 233, 103, 213, 168, 236, 224, 233, 103, 233, 104, - 229, 6, 249, 147, 199, 125, 233, 104, 4, 209, 93, 233, 185, 205, 125, - 220, 119, 242, 96, 230, 253, 229, 129, 248, 91, 232, 207, 203, 52, 238, - 235, 219, 100, 233, 103, 205, 81, 197, 62, 196, 96, 233, 103, 234, 214, - 235, 85, 249, 64, 203, 128, 210, 249, 232, 120, 233, 103, 247, 215, 237, - 128, 230, 235, 219, 78, 207, 5, 203, 13, 201, 184, 231, 29, 233, 103, - 191, 85, 233, 103, 229, 216, 205, 110, 200, 42, 238, 224, 222, 82, 219, - 70, 210, 58, 229, 121, 210, 108, 207, 173, 219, 41, 215, 196, 216, 90, - 249, 133, 200, 148, 217, 92, 236, 165, 202, 78, 211, 22, 211, 54, 202, - 102, 232, 209, 210, 239, 249, 4, 248, 149, 205, 61, 230, 163, 236, 162, - 208, 202, 247, 117, 234, 109, 242, 64, 207, 87, 230, 78, 234, 109, 242, - 64, 238, 171, 230, 78, 234, 109, 242, 64, 249, 113, 234, 109, 242, 64, - 63, 230, 78, 248, 98, 219, 212, 232, 159, 198, 56, 200, 184, 200, 179, - 205, 188, 195, 81, 234, 212, 4, 229, 225, 251, 235, 215, 190, 193, 91, - 217, 74, 193, 91, 216, 223, 250, 250, 216, 223, 219, 212, 243, 118, 193, - 116, 238, 180, 205, 159, 203, 146, 248, 208, 248, 62, 231, 197, 211, 93, - 233, 85, 193, 174, 247, 216, 217, 29, 235, 104, 228, 27, 238, 190, 248, - 9, 199, 134, 197, 214, 201, 105, 209, 250, 221, 80, 209, 250, 237, 144, - 209, 250, 233, 104, 4, 215, 224, 252, 29, 243, 86, 211, 118, 252, 29, - 249, 8, 209, 250, 209, 251, 4, 229, 230, 209, 251, 223, 163, 201, 82, - 206, 130, 209, 251, 242, 228, 209, 251, 223, 163, 218, 247, 209, 24, 217, - 124, 233, 87, 195, 177, 216, 174, 234, 125, 231, 148, 191, 5, 248, 50, - 211, 55, 229, 223, 248, 171, 247, 111, 205, 94, 231, 9, 242, 96, 202, 34, - 207, 87, 231, 43, 234, 67, 232, 242, 222, 238, 208, 125, 209, 175, 199, - 75, 197, 84, 209, 235, 236, 222, 236, 176, 55, 229, 204, 242, 69, 252, - 71, 232, 244, 233, 202, 198, 58, 248, 31, 217, 122, 218, 215, 218, 248, - 248, 78, 201, 204, 79, 198, 227, 249, 112, 79, 192, 100, 205, 188, 209, - 139, 199, 124, 249, 9, 248, 20, 249, 69, 206, 141, 79, 210, 135, 249, 88, - 79, 202, 37, 201, 205, 207, 103, 214, 196, 251, 134, 214, 82, 243, 105, - 221, 138, 214, 82, 243, 105, 208, 14, 214, 82, 243, 105, 206, 131, 214, - 82, 243, 105, 248, 152, 214, 82, 243, 105, 221, 76, 214, 82, 243, 105, - 210, 74, 63, 243, 105, 221, 77, 206, 122, 232, 134, 237, 124, 62, 243, - 105, 221, 77, 206, 122, 232, 134, 237, 124, 214, 82, 243, 105, 221, 77, - 206, 122, 232, 134, 237, 124, 63, 243, 105, 221, 139, 206, 122, 213, 170, - 237, 124, 63, 243, 105, 208, 15, 206, 122, 213, 170, 237, 124, 63, 243, - 105, 206, 132, 206, 122, 213, 170, 237, 124, 63, 243, 105, 248, 153, 206, - 122, 213, 170, 237, 124, 63, 243, 105, 221, 77, 206, 122, 213, 170, 237, - 124, 63, 243, 105, 210, 75, 206, 122, 213, 170, 237, 124, 62, 243, 105, - 221, 139, 206, 122, 213, 170, 237, 124, 62, 243, 105, 208, 15, 206, 122, - 213, 170, 237, 124, 62, 243, 105, 206, 132, 206, 122, 213, 170, 237, 124, - 62, 243, 105, 248, 153, 206, 122, 213, 170, 237, 124, 62, 243, 105, 221, - 77, 206, 122, 213, 170, 237, 124, 62, 243, 105, 210, 75, 206, 122, 213, - 170, 237, 124, 214, 82, 243, 105, 221, 139, 206, 122, 213, 170, 237, 124, - 214, 82, 243, 105, 208, 15, 206, 122, 213, 170, 237, 124, 214, 82, 243, - 105, 206, 132, 206, 122, 213, 170, 237, 124, 214, 82, 243, 105, 248, 153, - 206, 122, 213, 170, 237, 124, 214, 82, 243, 105, 221, 77, 206, 122, 213, - 170, 237, 124, 214, 82, 243, 105, 210, 75, 206, 122, 213, 170, 237, 124, - 63, 243, 105, 221, 77, 206, 122, 91, 228, 141, 198, 248, 237, 124, 62, - 243, 105, 221, 77, 206, 122, 91, 228, 141, 198, 248, 237, 124, 214, 82, - 243, 105, 221, 77, 206, 122, 91, 228, 141, 198, 248, 237, 124, 63, 243, - 105, 153, 221, 138, 63, 243, 105, 153, 208, 14, 63, 243, 105, 153, 206, - 131, 63, 243, 105, 153, 248, 152, 63, 243, 105, 153, 221, 76, 63, 243, - 105, 153, 210, 74, 62, 243, 105, 153, 221, 138, 62, 243, 105, 153, 208, - 14, 62, 243, 105, 153, 206, 131, 62, 243, 105, 153, 248, 152, 62, 243, - 105, 153, 221, 76, 62, 243, 105, 153, 210, 74, 214, 82, 243, 105, 153, - 221, 138, 214, 82, 243, 105, 153, 208, 14, 214, 82, 243, 105, 153, 206, - 131, 214, 82, 243, 105, 153, 248, 152, 214, 82, 243, 105, 153, 221, 76, - 214, 82, 243, 105, 153, 210, 74, 63, 243, 105, 221, 77, 206, 122, 105, - 228, 141, 197, 29, 237, 124, 62, 243, 105, 221, 77, 206, 122, 105, 228, - 141, 197, 29, 237, 124, 214, 82, 243, 105, 221, 77, 206, 122, 105, 228, - 141, 197, 29, 237, 124, 63, 243, 105, 221, 139, 206, 122, 105, 228, 141, - 203, 242, 237, 124, 63, 243, 105, 208, 15, 206, 122, 105, 228, 141, 203, - 242, 237, 124, 63, 243, 105, 206, 132, 206, 122, 105, 228, 141, 203, 242, - 237, 124, 63, 243, 105, 248, 153, 206, 122, 105, 228, 141, 203, 242, 237, - 124, 63, 243, 105, 221, 77, 206, 122, 105, 228, 141, 203, 242, 237, 124, - 63, 243, 105, 210, 75, 206, 122, 105, 228, 141, 203, 242, 237, 124, 62, - 243, 105, 221, 139, 206, 122, 105, 228, 141, 203, 242, 237, 124, 62, 243, - 105, 208, 15, 206, 122, 105, 228, 141, 203, 242, 237, 124, 62, 243, 105, - 206, 132, 206, 122, 105, 228, 141, 203, 242, 237, 124, 62, 243, 105, 248, - 153, 206, 122, 105, 228, 141, 203, 242, 237, 124, 62, 243, 105, 221, 77, - 206, 122, 105, 228, 141, 203, 242, 237, 124, 62, 243, 105, 210, 75, 206, - 122, 105, 228, 141, 203, 242, 237, 124, 214, 82, 243, 105, 221, 139, 206, - 122, 105, 228, 141, 203, 242, 237, 124, 214, 82, 243, 105, 208, 15, 206, - 122, 105, 228, 141, 203, 242, 237, 124, 214, 82, 243, 105, 206, 132, 206, - 122, 105, 228, 141, 203, 242, 237, 124, 214, 82, 243, 105, 248, 153, 206, - 122, 105, 228, 141, 203, 242, 237, 124, 214, 82, 243, 105, 221, 77, 206, - 122, 105, 228, 141, 203, 242, 237, 124, 214, 82, 243, 105, 210, 75, 206, - 122, 105, 228, 141, 203, 242, 237, 124, 63, 243, 105, 221, 77, 206, 122, - 115, 228, 141, 233, 20, 237, 124, 62, 243, 105, 221, 77, 206, 122, 115, - 228, 141, 233, 20, 237, 124, 214, 82, 243, 105, 221, 77, 206, 122, 115, - 228, 141, 233, 20, 237, 124, 63, 243, 105, 234, 38, 62, 243, 105, 234, - 38, 214, 82, 243, 105, 234, 38, 63, 243, 105, 234, 39, 206, 122, 213, - 170, 237, 124, 62, 243, 105, 234, 39, 206, 122, 213, 170, 237, 124, 214, - 82, 243, 105, 234, 39, 206, 122, 213, 170, 237, 124, 63, 243, 105, 221, - 74, 63, 243, 105, 221, 73, 63, 243, 105, 221, 75, 62, 243, 105, 221, 74, - 62, 243, 105, 221, 73, 62, 243, 105, 221, 75, 192, 205, 207, 87, 231, - 150, 192, 205, 207, 87, 217, 84, 192, 205, 207, 87, 234, 131, 192, 205, - 207, 87, 228, 183, 192, 205, 207, 87, 243, 138, 192, 205, 207, 87, 247, - 114, 192, 205, 207, 87, 202, 26, 192, 205, 62, 231, 150, 192, 205, 62, - 217, 84, 192, 205, 62, 234, 131, 192, 205, 62, 228, 183, 192, 205, 62, - 243, 138, 192, 205, 62, 247, 114, 192, 205, 62, 202, 26, 249, 110, 203, - 51, 211, 98, 200, 135, 248, 27, 203, 25, 198, 237, 205, 139, 156, 248, - 115, 229, 223, 230, 198, 229, 223, 209, 131, 229, 223, 235, 99, 79, 248, - 120, 252, 35, 249, 96, 201, 76, 192, 234, 238, 201, 191, 253, 221, 119, - 210, 129, 248, 92, 217, 123, 193, 162, 209, 137, 214, 87, 236, 154, 217, - 64, 232, 182, 206, 187, 209, 100, 246, 252, 207, 118, 250, 132, 236, 196, - 220, 25, 249, 94, 216, 54, 229, 200, 252, 56, 179, 235, 94, 242, 88, 247, - 89, 205, 108, 205, 75, 220, 109, 102, 216, 26, 193, 65, 209, 83, 203, - 239, 214, 109, 221, 71, 248, 6, 215, 182, 198, 6, 198, 55, 229, 228, 209, - 109, 206, 147, 216, 27, 249, 111, 228, 16, 247, 100, 130, 249, 58, 230, - 60, 232, 170, 230, 54, 233, 80, 230, 79, 209, 180, 221, 203, 232, 179, - 193, 17, 248, 251, 242, 95, 209, 11, 209, 99, 193, 28, 233, 54, 218, 246, - 239, 4, 234, 105, 214, 89, 214, 90, 4, 234, 178, 228, 92, 223, 2, 193, - 61, 230, 243, 251, 129, 229, 223, 218, 205, 210, 20, 228, 149, 208, 226, - 217, 90, 208, 226, 209, 250, 209, 251, 4, 238, 208, 215, 204, 236, 147, - 248, 113, 248, 236, 210, 15, 211, 115, 232, 205, 199, 196, 232, 165, 199, - 132, 209, 7, 219, 92, 249, 11, 223, 18, 231, 36, 206, 128, 210, 62, 209, - 70, 216, 195, 233, 103, 205, 153, 233, 103, 233, 104, 4, 211, 77, 233, - 186, 23, 230, 54, 139, 215, 179, 233, 104, 4, 210, 47, 233, 193, 233, - 104, 4, 237, 39, 215, 179, 235, 138, 219, 113, 233, 103, 248, 145, 219, - 98, 248, 7, 203, 145, 233, 103, 230, 54, 4, 141, 232, 253, 23, 176, 238, - 213, 96, 230, 53, 118, 230, 53, 210, 183, 144, 230, 53, 210, 183, 133, - 230, 53, 141, 209, 58, 250, 183, 199, 34, 195, 55, 229, 224, 230, 28, - 118, 208, 135, 230, 53, 96, 208, 135, 230, 53, 184, 203, 236, 184, 203, - 206, 184, 203, 235, 184, 203, 191, 184, 203, 220, 184, 203, 205, 184, - 203, 234, 184, 203, 183, 184, 203, 213, 184, 203, 197, 184, 203, 227, - 184, 203, 190, 184, 203, 219, 184, 203, 204, 184, 203, 233, 184, 203, - 179, 184, 203, 209, 184, 203, 194, 184, 203, 223, 184, 203, 186, 184, - 203, 200, 184, 203, 230, 184, 203, 182, 184, 203, 212, 184, 203, 196, - 184, 203, 226, 184, 203, 189, 184, 203, 218, 184, 203, 203, 184, 203, - 232, 184, 203, 177, 184, 203, 207, 184, 203, 192, 184, 203, 221, 184, - 203, 184, 184, 203, 214, 184, 203, 198, 184, 203, 228, 184, 203, 180, - 184, 203, 210, 184, 203, 224, 184, 203, 187, 184, 203, 216, 184, 203, - 201, 184, 203, 231, 184, 203, 178, 184, 203, 208, 184, 203, 193, 184, - 203, 222, 184, 203, 185, 184, 203, 215, 184, 203, 199, 184, 203, 229, - 184, 203, 181, 184, 203, 211, 184, 203, 195, 184, 203, 225, 184, 203, - 188, 184, 203, 217, 184, 203, 202, 110, 45, 184, 237, 39, 110, 82, 45, - 119, 110, 247, 21, 110, 45, 184, 237, 39, 110, 82, 45, 119, 110, 183, - 110, 45, 184, 237, 39, 116, 82, 45, 119, 110, 247, 21, 110, 45, 184, 237, - 39, 116, 82, 45, 119, 110, 183, 110, 45, 184, 237, 39, 116, 45, 119, 110, - 247, 21, 110, 50, 184, 237, 39, 116, 82, 45, 119, 116, 247, 21, 110, 50, - 184, 237, 39, 116, 82, 45, 119, 116, 183, 110, 50, 184, 237, 39, 110, 82, - 45, 119, 116, 247, 21, 110, 50, 184, 237, 39, 110, 82, 45, 119, 116, 183, - 110, 50, 184, 237, 39, 110, 45, 119, 116, 247, 21, 110, 50, 184, 237, 39, - 110, 82, 45, 119, 116, 82, 183, 110, 50, 184, 237, 39, 110, 247, 22, 119, - 110, 82, 183, 110, 50, 184, 237, 39, 110, 45, 119, 110, 82, 183, 110, 50, - 184, 237, 39, 110, 247, 22, 119, 116, 82, 183, 110, 50, 184, 237, 39, - 110, 45, 119, 116, 82, 183, 110, 50, 184, 237, 39, 110, 247, 22, 119, - 116, 183, 110, 45, 184, 237, 39, 116, 247, 22, 119, 116, 82, 183, 110, - 45, 184, 237, 39, 116, 45, 119, 116, 82, 183, 110, 45, 184, 237, 39, 116, - 247, 22, 119, 110, 82, 183, 110, 45, 184, 237, 39, 116, 45, 119, 110, 82, - 183, 110, 45, 184, 237, 39, 116, 247, 22, 119, 110, 183, 110, 45, 184, - 237, 39, 116, 82, 45, 119, 110, 82, 183, 116, 50, 184, 237, 39, 110, 82, - 45, 119, 110, 247, 21, 116, 50, 184, 237, 39, 110, 82, 45, 119, 110, 183, - 116, 50, 184, 237, 39, 116, 82, 45, 119, 110, 247, 21, 116, 50, 184, 237, - 39, 116, 82, 45, 119, 110, 183, 116, 50, 184, 237, 39, 116, 45, 119, 110, - 247, 21, 116, 45, 184, 237, 39, 116, 82, 45, 119, 116, 247, 21, 116, 45, - 184, 237, 39, 116, 82, 45, 119, 116, 183, 116, 45, 184, 237, 39, 110, 82, - 45, 119, 116, 247, 21, 116, 45, 184, 237, 39, 110, 82, 45, 119, 116, 183, - 116, 45, 184, 237, 39, 110, 45, 119, 116, 247, 21, 116, 45, 184, 237, 39, - 110, 82, 45, 119, 116, 82, 183, 116, 45, 184, 237, 39, 110, 247, 22, 119, - 110, 82, 183, 116, 45, 184, 237, 39, 110, 45, 119, 110, 82, 183, 116, 45, - 184, 237, 39, 110, 247, 22, 119, 116, 82, 183, 116, 45, 184, 237, 39, - 110, 45, 119, 116, 82, 183, 116, 45, 184, 237, 39, 110, 247, 22, 119, - 116, 183, 116, 50, 184, 237, 39, 116, 247, 22, 119, 116, 82, 183, 116, - 50, 184, 237, 39, 116, 45, 119, 116, 82, 183, 116, 50, 184, 237, 39, 116, - 247, 22, 119, 110, 82, 183, 116, 50, 184, 237, 39, 116, 45, 119, 110, 82, - 183, 116, 50, 184, 237, 39, 116, 247, 22, 119, 110, 183, 116, 50, 184, - 237, 39, 116, 82, 45, 119, 110, 82, 183, 116, 23, 50, 23, 110, 197, 238, - 115, 208, 21, 248, 129, 45, 23, 110, 23, 50, 197, 238, 115, 208, 21, 248, - 129, 116, 23, 45, 23, 110, 197, 238, 115, 208, 21, 248, 129, 45, 23, 116, - 23, 50, 197, 238, 115, 208, 21, 248, 129, 45, 197, 238, 91, 208, 23, 248, - 129, 116, 197, 238, 91, 208, 23, 248, 129, 50, 197, 238, 91, 208, 23, - 248, 129, 110, 197, 238, 91, 208, 23, 248, 129, 81, 91, 234, 160, 248, - 127, 81, 91, 234, 160, 248, 126, 81, 91, 234, 160, 248, 125, 81, 91, 234, - 160, 248, 124, 81, 91, 234, 160, 248, 123, 81, 91, 234, 160, 248, 122, - 228, 241, 91, 234, 160, 248, 127, 228, 241, 91, 234, 160, 248, 126, 228, - 241, 91, 234, 160, 248, 125, 228, 241, 91, 234, 160, 248, 124, 228, 241, - 91, 234, 160, 248, 123, 228, 241, 91, 234, 160, 248, 122, 45, 23, 110, - 91, 234, 160, 248, 129, 45, 23, 116, 91, 234, 160, 248, 129, 50, 23, 116, - 91, 234, 160, 248, 129, 50, 23, 110, 91, 234, 160, 248, 129, 116, 23, - 110, 91, 234, 160, 248, 129, 228, 241, 91, 234, 160, 248, 128, 116, 91, - 208, 23, 248, 129, 116, 115, 234, 158, 248, 129, 116, 232, 226, 234, 158, - 248, 129, 116, 115, 208, 21, 248, 129, 116, 203, 247, 234, 158, 248, 129, - 50, 91, 208, 23, 248, 129, 50, 115, 234, 158, 248, 129, 50, 232, 226, - 234, 158, 248, 129, 50, 115, 208, 21, 248, 129, 50, 203, 247, 234, 158, - 248, 129, 45, 132, 216, 213, 203, 153, 50, 132, 216, 213, 203, 153, 116, - 132, 216, 213, 203, 153, 110, 132, 216, 213, 203, 153, 223, 95, 216, 213, - 203, 153, 116, 132, 184, 23, 110, 132, 223, 95, 216, 213, 203, 153, 116, - 132, 223, 95, 216, 213, 203, 154, 23, 110, 132, 248, 129, 45, 132, 223, - 95, 216, 213, 203, 154, 23, 50, 132, 248, 129, 243, 124, 248, 108, 233, - 5, 223, 95, 243, 124, 248, 108, 233, 5, 88, 228, 241, 233, 5, 116, 45, - 119, 110, 50, 233, 5, 116, 50, 119, 110, 45, 233, 5, 116, 23, 110, 197, - 238, 132, 248, 129, 45, 23, 50, 197, 238, 132, 248, 129, 116, 45, 197, - 238, 216, 213, 203, 153, 116, 50, 197, 238, 216, 213, 203, 153, 110, 50, - 197, 238, 216, 213, 203, 153, 110, 45, 197, 238, 216, 213, 203, 153, 111, - 122, 156, 237, 39, 116, 247, 22, 119, 82, 219, 224, 111, 122, 156, 237, - 39, 116, 247, 22, 119, 82, 183, 111, 122, 156, 237, 39, 82, 45, 119, 110, - 247, 21, 111, 122, 156, 237, 39, 82, 50, 119, 110, 247, 21, 111, 122, - 156, 237, 39, 116, 247, 22, 119, 82, 45, 119, 110, 247, 21, 111, 122, - 156, 237, 39, 116, 247, 22, 119, 82, 50, 119, 110, 247, 21, 111, 122, - 156, 237, 39, 82, 45, 119, 110, 247, 22, 119, 82, 183, 111, 122, 156, - 237, 39, 82, 45, 119, 116, 247, 22, 119, 82, 183, 111, 122, 156, 237, 39, - 116, 247, 22, 119, 82, 45, 23, 82, 50, 119, 110, 247, 21, 111, 122, 156, - 237, 39, 116, 247, 22, 119, 82, 50, 23, 82, 45, 119, 110, 247, 21, 111, - 122, 156, 237, 39, 116, 247, 22, 119, 82, 50, 119, 110, 247, 22, 119, 82, - 219, 224, 111, 122, 156, 237, 39, 116, 247, 22, 119, 82, 45, 119, 110, - 247, 22, 119, 82, 183, 111, 122, 156, 237, 39, 82, 45, 119, 116, 247, 22, - 119, 82, 50, 119, 110, 247, 21, 111, 122, 156, 237, 39, 82, 50, 119, 116, - 247, 22, 119, 82, 45, 119, 110, 247, 21, 111, 122, 156, 237, 39, 237, 32, - 111, 122, 156, 228, 241, 4, 81, 106, 250, 234, 209, 59, 223, 95, 243, - 126, 77, 45, 132, 206, 42, 217, 90, 50, 132, 206, 42, 217, 90, 223, 95, - 235, 119, 64, 4, 198, 136, 219, 214, 118, 64, 23, 116, 23, 110, 91, 234, - 160, 248, 129, 96, 64, 23, 116, 23, 110, 91, 234, 160, 248, 129, 235, - 119, 64, 23, 50, 91, 234, 160, 248, 129, 196, 66, 64, 23, 50, 91, 234, - 160, 248, 129, 45, 132, 232, 171, 50, 132, 232, 171, 195, 16, 35, 238, - 217, 50, 211, 77, 112, 236, 140, 214, 106, 237, 39, 238, 217, 214, 106, - 237, 39, 82, 50, 119, 110, 247, 21, 214, 106, 237, 39, 237, 32, 63, 88, - 205, 155, 4, 206, 113, 239, 0, 45, 199, 1, 63, 50, 209, 58, 223, 148, 82, - 199, 1, 63, 50, 209, 58, 223, 148, 50, 199, 1, 63, 50, 209, 58, 223, 148, - 214, 106, 112, 208, 13, 77, 201, 75, 233, 12, 201, 75, 233, 13, 4, 250, - 247, 207, 146, 201, 75, 233, 13, 219, 231, 219, 224, 201, 75, 233, 13, - 219, 231, 183, 201, 75, 233, 13, 4, 235, 106, 63, 196, 76, 243, 100, 205, - 42, 17, 191, 77, 205, 42, 17, 107, 205, 42, 17, 109, 205, 42, 17, 138, - 205, 42, 17, 134, 205, 42, 17, 149, 205, 42, 17, 169, 205, 42, 17, 175, - 205, 42, 17, 171, 205, 42, 17, 178, 12, 15, 228, 13, 12, 15, 228, 12, 12, - 15, 228, 11, 12, 15, 228, 10, 12, 15, 228, 9, 12, 15, 228, 8, 12, 15, - 228, 7, 12, 15, 228, 6, 12, 15, 228, 5, 12, 15, 228, 4, 12, 15, 228, 3, - 12, 15, 228, 2, 12, 15, 228, 1, 12, 15, 228, 0, 12, 15, 227, 255, 12, 15, - 227, 254, 12, 15, 227, 253, 12, 15, 227, 252, 12, 15, 227, 251, 12, 15, - 227, 250, 12, 15, 227, 249, 12, 15, 227, 248, 12, 15, 227, 247, 12, 15, - 227, 246, 12, 15, 227, 245, 12, 15, 227, 244, 12, 15, 227, 243, 12, 15, - 227, 242, 12, 15, 227, 241, 12, 15, 227, 240, 12, 15, 227, 239, 12, 15, - 227, 238, 12, 15, 227, 237, 12, 15, 227, 236, 12, 15, 227, 235, 12, 15, - 227, 234, 12, 15, 227, 233, 12, 15, 227, 232, 12, 15, 227, 231, 12, 15, - 227, 230, 12, 15, 227, 229, 12, 15, 227, 228, 12, 15, 227, 227, 12, 15, - 227, 226, 12, 15, 227, 225, 12, 15, 227, 224, 12, 15, 227, 223, 12, 15, - 227, 222, 12, 15, 227, 221, 12, 15, 227, 220, 12, 15, 227, 219, 12, 15, - 227, 218, 12, 15, 227, 217, 12, 15, 227, 216, 12, 15, 227, 215, 12, 15, - 227, 214, 12, 15, 227, 213, 12, 15, 227, 212, 12, 15, 227, 211, 12, 15, - 227, 210, 12, 15, 227, 209, 12, 15, 227, 208, 12, 15, 227, 207, 12, 15, - 227, 206, 12, 15, 227, 205, 12, 15, 227, 204, 12, 15, 227, 203, 12, 15, - 227, 202, 12, 15, 227, 201, 12, 15, 227, 200, 12, 15, 227, 199, 12, 15, - 227, 198, 12, 15, 227, 197, 12, 15, 227, 196, 12, 15, 227, 195, 12, 15, - 227, 194, 12, 15, 227, 193, 12, 15, 227, 192, 12, 15, 227, 191, 12, 15, - 227, 190, 12, 15, 227, 189, 12, 15, 227, 188, 12, 15, 227, 187, 12, 15, - 227, 186, 12, 15, 227, 185, 12, 15, 227, 184, 12, 15, 227, 183, 12, 15, - 227, 182, 12, 15, 227, 181, 12, 15, 227, 180, 12, 15, 227, 179, 12, 15, - 227, 178, 12, 15, 227, 177, 12, 15, 227, 176, 12, 15, 227, 175, 12, 15, - 227, 174, 12, 15, 227, 173, 12, 15, 227, 172, 12, 15, 227, 171, 12, 15, - 227, 170, 12, 15, 227, 169, 12, 15, 227, 168, 12, 15, 227, 167, 12, 15, - 227, 166, 12, 15, 227, 165, 12, 15, 227, 164, 12, 15, 227, 163, 12, 15, - 227, 162, 12, 15, 227, 161, 12, 15, 227, 160, 12, 15, 227, 159, 12, 15, - 227, 158, 12, 15, 227, 157, 12, 15, 227, 156, 12, 15, 227, 155, 12, 15, - 227, 154, 12, 15, 227, 153, 12, 15, 227, 152, 12, 15, 227, 151, 12, 15, - 227, 150, 12, 15, 227, 149, 12, 15, 227, 148, 12, 15, 227, 147, 12, 15, - 227, 146, 12, 15, 227, 145, 12, 15, 227, 144, 12, 15, 227, 143, 12, 15, - 227, 142, 12, 15, 227, 141, 12, 15, 227, 140, 12, 15, 227, 139, 12, 15, - 227, 138, 12, 15, 227, 137, 12, 15, 227, 136, 12, 15, 227, 135, 12, 15, - 227, 134, 12, 15, 227, 133, 12, 15, 227, 132, 12, 15, 227, 131, 12, 15, - 227, 130, 12, 15, 227, 129, 12, 15, 227, 128, 12, 15, 227, 127, 12, 15, - 227, 126, 12, 15, 227, 125, 12, 15, 227, 124, 12, 15, 227, 123, 12, 15, - 227, 122, 12, 15, 227, 121, 12, 15, 227, 120, 12, 15, 227, 119, 12, 15, - 227, 118, 12, 15, 227, 117, 12, 15, 227, 116, 12, 15, 227, 115, 12, 15, - 227, 114, 12, 15, 227, 113, 12, 15, 227, 112, 12, 15, 227, 111, 12, 15, - 227, 110, 12, 15, 227, 109, 12, 15, 227, 108, 12, 15, 227, 107, 12, 15, - 227, 106, 12, 15, 227, 105, 12, 15, 227, 104, 12, 15, 227, 103, 12, 15, - 227, 102, 12, 15, 227, 101, 12, 15, 227, 100, 12, 15, 227, 99, 12, 15, - 227, 98, 12, 15, 227, 97, 12, 15, 227, 96, 12, 15, 227, 95, 12, 15, 227, - 94, 12, 15, 227, 93, 12, 15, 227, 92, 12, 15, 227, 91, 12, 15, 227, 90, - 12, 15, 227, 89, 12, 15, 227, 88, 12, 15, 227, 87, 12, 15, 227, 86, 12, - 15, 227, 85, 12, 15, 227, 84, 12, 15, 227, 83, 12, 15, 227, 82, 12, 15, - 227, 81, 12, 15, 227, 80, 12, 15, 227, 79, 12, 15, 227, 78, 12, 15, 227, - 77, 12, 15, 227, 76, 12, 15, 227, 75, 12, 15, 227, 74, 12, 15, 227, 73, - 12, 15, 227, 72, 12, 15, 227, 71, 12, 15, 227, 70, 12, 15, 227, 69, 12, - 15, 227, 68, 12, 15, 227, 67, 12, 15, 227, 66, 12, 15, 227, 65, 12, 15, - 227, 64, 12, 15, 227, 63, 12, 15, 227, 62, 12, 15, 227, 61, 12, 15, 227, - 60, 12, 15, 227, 59, 12, 15, 227, 58, 12, 15, 227, 57, 12, 15, 227, 56, - 12, 15, 227, 55, 12, 15, 227, 54, 12, 15, 227, 53, 12, 15, 227, 52, 12, - 15, 227, 51, 12, 15, 227, 50, 12, 15, 227, 49, 12, 15, 227, 48, 12, 15, - 227, 47, 12, 15, 227, 46, 12, 15, 227, 45, 12, 15, 227, 44, 12, 15, 227, - 43, 12, 15, 227, 42, 12, 15, 227, 41, 12, 15, 227, 40, 12, 15, 227, 39, - 12, 15, 227, 38, 12, 15, 227, 37, 12, 15, 227, 36, 12, 15, 227, 35, 12, - 15, 227, 34, 12, 15, 227, 33, 12, 15, 227, 32, 12, 15, 227, 31, 12, 15, - 227, 30, 12, 15, 227, 29, 12, 15, 227, 28, 12, 15, 227, 27, 12, 15, 227, - 26, 12, 15, 227, 25, 12, 15, 227, 24, 12, 15, 227, 23, 12, 15, 227, 22, - 12, 15, 227, 21, 12, 15, 227, 20, 12, 15, 227, 19, 12, 15, 227, 18, 12, - 15, 227, 17, 12, 15, 227, 16, 12, 15, 227, 15, 12, 15, 227, 14, 12, 15, - 227, 13, 12, 15, 227, 12, 12, 15, 227, 11, 12, 15, 227, 10, 12, 15, 227, - 9, 12, 15, 227, 8, 12, 15, 227, 7, 12, 15, 227, 6, 12, 15, 227, 5, 12, - 15, 227, 4, 12, 15, 227, 3, 12, 15, 227, 2, 12, 15, 227, 1, 12, 15, 227, - 0, 12, 15, 226, 255, 12, 15, 226, 254, 12, 15, 226, 253, 12, 15, 226, - 252, 12, 15, 226, 251, 12, 15, 226, 250, 12, 15, 226, 249, 12, 15, 226, - 248, 12, 15, 226, 247, 12, 15, 226, 246, 12, 15, 226, 245, 12, 15, 226, - 244, 12, 15, 226, 243, 12, 15, 226, 242, 12, 15, 226, 241, 12, 15, 226, - 240, 12, 15, 226, 239, 12, 15, 226, 238, 12, 15, 226, 237, 12, 15, 226, - 236, 12, 15, 226, 235, 12, 15, 226, 234, 12, 15, 226, 233, 12, 15, 226, - 232, 12, 15, 226, 231, 12, 15, 226, 230, 12, 15, 226, 229, 12, 15, 226, - 228, 12, 15, 226, 227, 12, 15, 226, 226, 12, 15, 226, 225, 12, 15, 226, - 224, 12, 15, 226, 223, 12, 15, 226, 222, 12, 15, 226, 221, 12, 15, 226, - 220, 12, 15, 226, 219, 12, 15, 226, 218, 12, 15, 226, 217, 12, 15, 226, - 216, 12, 15, 226, 215, 12, 15, 226, 214, 12, 15, 226, 213, 12, 15, 226, - 212, 12, 15, 226, 211, 12, 15, 226, 210, 12, 15, 226, 209, 12, 15, 226, - 208, 12, 15, 226, 207, 12, 15, 226, 206, 12, 15, 226, 205, 12, 15, 226, - 204, 12, 15, 226, 203, 12, 15, 226, 202, 12, 15, 226, 201, 12, 15, 226, - 200, 12, 15, 226, 199, 12, 15, 226, 198, 12, 15, 226, 197, 12, 15, 226, - 196, 12, 15, 226, 195, 12, 15, 226, 194, 12, 15, 226, 193, 12, 15, 226, - 192, 12, 15, 226, 191, 12, 15, 226, 190, 12, 15, 226, 189, 12, 15, 226, - 188, 12, 15, 226, 187, 12, 15, 226, 186, 12, 15, 226, 185, 12, 15, 226, - 184, 12, 15, 226, 183, 12, 15, 226, 182, 12, 15, 226, 181, 12, 15, 226, - 180, 12, 15, 226, 179, 12, 15, 226, 178, 12, 15, 226, 177, 12, 15, 226, - 176, 12, 15, 226, 175, 12, 15, 226, 174, 12, 15, 226, 173, 12, 15, 226, - 172, 12, 15, 226, 171, 12, 15, 226, 170, 12, 15, 226, 169, 12, 15, 226, - 168, 12, 15, 226, 167, 12, 15, 226, 166, 12, 15, 226, 165, 12, 15, 226, - 164, 12, 15, 226, 163, 12, 15, 226, 162, 12, 15, 226, 161, 12, 15, 226, - 160, 12, 15, 226, 159, 12, 15, 226, 158, 12, 15, 226, 157, 12, 15, 226, - 156, 12, 15, 226, 155, 12, 15, 226, 154, 12, 15, 226, 153, 12, 15, 226, - 152, 12, 15, 226, 151, 12, 15, 226, 150, 12, 15, 226, 149, 12, 15, 226, - 148, 12, 15, 226, 147, 12, 15, 226, 146, 12, 15, 226, 145, 12, 15, 226, - 144, 12, 15, 226, 143, 12, 15, 226, 142, 12, 15, 226, 141, 12, 15, 226, - 140, 12, 15, 226, 139, 12, 15, 226, 138, 12, 15, 226, 137, 12, 15, 226, - 136, 12, 15, 226, 135, 12, 15, 226, 134, 12, 15, 226, 133, 12, 15, 226, - 132, 12, 15, 226, 131, 12, 15, 226, 130, 12, 15, 226, 129, 12, 15, 226, - 128, 12, 15, 226, 127, 12, 15, 226, 126, 12, 15, 226, 125, 12, 15, 226, - 124, 12, 15, 226, 123, 12, 15, 226, 122, 12, 15, 226, 121, 12, 15, 226, - 120, 12, 15, 226, 119, 12, 15, 226, 118, 12, 15, 226, 117, 12, 15, 226, - 116, 12, 15, 226, 115, 12, 15, 226, 114, 12, 15, 226, 113, 12, 15, 226, - 112, 12, 15, 226, 111, 12, 15, 226, 110, 12, 15, 226, 109, 12, 15, 226, - 108, 12, 15, 226, 107, 12, 15, 226, 106, 12, 15, 226, 105, 12, 15, 226, - 104, 12, 15, 226, 103, 12, 15, 226, 102, 12, 15, 226, 101, 12, 15, 226, - 100, 12, 15, 226, 99, 12, 15, 226, 98, 12, 15, 226, 97, 12, 15, 226, 96, - 12, 15, 226, 95, 12, 15, 226, 94, 12, 15, 226, 93, 12, 15, 226, 92, 12, - 15, 226, 91, 12, 15, 226, 90, 12, 15, 226, 89, 12, 15, 226, 88, 12, 15, - 226, 87, 12, 15, 226, 86, 12, 15, 226, 85, 12, 15, 226, 84, 12, 15, 226, - 83, 12, 15, 226, 82, 12, 15, 226, 81, 12, 15, 226, 80, 12, 15, 226, 79, - 12, 15, 226, 78, 12, 15, 226, 77, 12, 15, 226, 76, 12, 15, 226, 75, 12, - 15, 226, 74, 12, 15, 226, 73, 12, 15, 226, 72, 12, 15, 226, 71, 12, 15, - 226, 70, 12, 15, 226, 69, 12, 15, 226, 68, 12, 15, 226, 67, 12, 15, 226, - 66, 12, 15, 226, 65, 12, 15, 226, 64, 12, 15, 226, 63, 12, 15, 226, 62, - 12, 15, 226, 61, 12, 15, 226, 60, 12, 15, 226, 59, 12, 15, 226, 58, 12, - 15, 226, 57, 12, 15, 226, 56, 12, 15, 226, 55, 12, 15, 226, 54, 12, 15, - 226, 53, 12, 15, 226, 52, 12, 15, 226, 51, 12, 15, 226, 50, 12, 15, 226, - 49, 12, 15, 226, 48, 12, 15, 226, 47, 12, 15, 226, 46, 12, 15, 226, 45, - 12, 15, 226, 44, 12, 15, 226, 43, 12, 15, 226, 42, 12, 15, 226, 41, 12, - 15, 226, 40, 12, 15, 226, 39, 12, 15, 226, 38, 12, 15, 226, 37, 12, 15, - 226, 36, 12, 15, 226, 35, 12, 15, 226, 34, 12, 15, 226, 33, 12, 15, 226, - 32, 12, 15, 226, 31, 12, 15, 226, 30, 12, 15, 226, 29, 12, 15, 226, 28, - 12, 15, 226, 27, 12, 15, 226, 26, 12, 15, 226, 25, 12, 15, 226, 24, 12, - 15, 226, 23, 12, 15, 226, 22, 12, 15, 226, 21, 12, 15, 226, 20, 12, 15, - 226, 19, 12, 15, 226, 18, 12, 15, 226, 17, 12, 15, 226, 16, 12, 15, 226, - 15, 12, 15, 226, 14, 12, 15, 226, 13, 12, 15, 226, 12, 12, 15, 226, 11, - 12, 15, 226, 10, 12, 15, 226, 9, 12, 15, 226, 8, 12, 15, 226, 7, 12, 15, - 226, 6, 12, 15, 226, 5, 12, 15, 226, 4, 12, 15, 226, 3, 12, 15, 226, 2, - 12, 15, 226, 1, 12, 15, 226, 0, 12, 15, 225, 255, 12, 15, 225, 254, 12, - 15, 225, 253, 12, 15, 225, 252, 12, 15, 225, 251, 12, 15, 225, 250, 12, - 15, 225, 249, 12, 15, 225, 248, 12, 15, 225, 247, 12, 15, 225, 246, 12, - 15, 225, 245, 12, 15, 225, 244, 12, 15, 225, 243, 12, 15, 225, 242, 12, - 15, 225, 241, 12, 15, 225, 240, 220, 20, 199, 223, 199, 224, 201, 247, - 199, 224, 233, 216, 77, 199, 224, 207, 252, 77, 199, 224, 31, 56, 199, - 224, 236, 155, 56, 199, 224, 210, 13, 56, 199, 224, 251, 137, 199, 224, - 251, 49, 199, 224, 45, 210, 113, 199, 224, 50, 210, 113, 199, 224, 250, - 193, 199, 224, 108, 56, 199, 224, 242, 74, 199, 224, 228, 87, 199, 224, - 232, 80, 201, 63, 199, 224, 202, 23, 199, 224, 17, 191, 77, 199, 224, 17, - 107, 199, 224, 17, 109, 199, 224, 17, 138, 199, 224, 17, 134, 199, 224, - 17, 149, 199, 224, 17, 169, 199, 224, 17, 175, 199, 224, 17, 171, 199, - 224, 17, 178, 199, 224, 242, 83, 199, 224, 204, 25, 199, 224, 219, 180, - 56, 199, 224, 234, 43, 56, 199, 224, 230, 204, 56, 199, 224, 208, 13, 77, - 199, 224, 242, 72, 250, 182, 199, 224, 8, 6, 1, 65, 199, 224, 8, 6, 1, - 250, 120, 199, 224, 8, 6, 1, 247, 193, 199, 224, 8, 6, 1, 238, 127, 199, - 224, 8, 6, 1, 71, 199, 224, 8, 6, 1, 233, 175, 199, 224, 8, 6, 1, 232, - 51, 199, 224, 8, 6, 1, 230, 116, 199, 224, 8, 6, 1, 68, 199, 224, 8, 6, - 1, 223, 35, 199, 224, 8, 6, 1, 222, 152, 199, 224, 8, 6, 1, 172, 199, - 224, 8, 6, 1, 218, 168, 199, 224, 8, 6, 1, 215, 61, 199, 224, 8, 6, 1, - 74, 199, 224, 8, 6, 1, 210, 236, 199, 224, 8, 6, 1, 208, 104, 199, 224, - 8, 6, 1, 146, 199, 224, 8, 6, 1, 206, 8, 199, 224, 8, 6, 1, 200, 43, 199, - 224, 8, 6, 1, 66, 199, 224, 8, 6, 1, 196, 12, 199, 224, 8, 6, 1, 193, - 224, 199, 224, 8, 6, 1, 192, 235, 199, 224, 8, 6, 1, 192, 159, 199, 224, - 8, 6, 1, 191, 166, 199, 224, 45, 51, 248, 53, 199, 224, 207, 19, 202, 23, - 199, 224, 50, 51, 248, 53, 199, 224, 243, 2, 252, 60, 199, 224, 130, 219, - 112, 199, 224, 230, 211, 252, 60, 199, 224, 8, 2, 1, 65, 199, 224, 8, 2, - 1, 250, 120, 199, 224, 8, 2, 1, 247, 193, 199, 224, 8, 2, 1, 238, 127, - 199, 224, 8, 2, 1, 71, 199, 224, 8, 2, 1, 233, 175, 199, 224, 8, 2, 1, - 232, 51, 199, 224, 8, 2, 1, 230, 116, 199, 224, 8, 2, 1, 68, 199, 224, 8, - 2, 1, 223, 35, 199, 224, 8, 2, 1, 222, 152, 199, 224, 8, 2, 1, 172, 199, - 224, 8, 2, 1, 218, 168, 199, 224, 8, 2, 1, 215, 61, 199, 224, 8, 2, 1, - 74, 199, 224, 8, 2, 1, 210, 236, 199, 224, 8, 2, 1, 208, 104, 199, 224, - 8, 2, 1, 146, 199, 224, 8, 2, 1, 206, 8, 199, 224, 8, 2, 1, 200, 43, 199, - 224, 8, 2, 1, 66, 199, 224, 8, 2, 1, 196, 12, 199, 224, 8, 2, 1, 193, - 224, 199, 224, 8, 2, 1, 192, 235, 199, 224, 8, 2, 1, 192, 159, 199, 224, - 8, 2, 1, 191, 166, 199, 224, 45, 238, 171, 248, 53, 199, 224, 81, 219, - 112, 199, 224, 50, 238, 171, 248, 53, 199, 224, 198, 152, 247, 127, 199, - 223, 67, 204, 211, 67, 204, 200, 67, 204, 189, 67, 204, 177, 67, 204, - 166, 67, 204, 155, 67, 204, 144, 67, 204, 133, 67, 204, 122, 67, 204, - 114, 67, 204, 113, 67, 204, 112, 67, 204, 111, 67, 204, 109, 67, 204, - 108, 67, 204, 107, 67, 204, 106, 67, 204, 105, 67, 204, 104, 67, 204, - 103, 67, 204, 102, 67, 204, 101, 67, 204, 100, 67, 204, 98, 67, 204, 97, - 67, 204, 96, 67, 204, 95, 67, 204, 94, 67, 204, 93, 67, 204, 92, 67, 204, - 91, 67, 204, 90, 67, 204, 89, 67, 204, 87, 67, 204, 86, 67, 204, 85, 67, - 204, 84, 67, 204, 83, 67, 204, 82, 67, 204, 81, 67, 204, 80, 67, 204, 79, - 67, 204, 78, 67, 204, 76, 67, 204, 75, 67, 204, 74, 67, 204, 73, 67, 204, - 72, 67, 204, 71, 67, 204, 70, 67, 204, 69, 67, 204, 68, 67, 204, 67, 67, - 204, 65, 67, 204, 64, 67, 204, 63, 67, 204, 62, 67, 204, 61, 67, 204, 60, - 67, 204, 59, 67, 204, 58, 67, 204, 57, 67, 204, 56, 67, 204, 54, 67, 204, - 53, 67, 204, 52, 67, 204, 51, 67, 204, 50, 67, 204, 49, 67, 204, 48, 67, - 204, 47, 67, 204, 46, 67, 204, 45, 67, 204, 43, 67, 204, 42, 67, 204, 41, - 67, 204, 40, 67, 204, 39, 67, 204, 38, 67, 204, 37, 67, 204, 36, 67, 204, - 35, 67, 204, 34, 67, 205, 31, 67, 205, 30, 67, 205, 29, 67, 205, 28, 67, - 205, 27, 67, 205, 26, 67, 205, 25, 67, 205, 24, 67, 205, 23, 67, 205, 22, - 67, 205, 20, 67, 205, 19, 67, 205, 18, 67, 205, 17, 67, 205, 16, 67, 205, - 15, 67, 205, 14, 67, 205, 13, 67, 205, 12, 67, 205, 11, 67, 205, 9, 67, - 205, 8, 67, 205, 7, 67, 205, 6, 67, 205, 5, 67, 205, 4, 67, 205, 3, 67, - 205, 2, 67, 205, 1, 67, 205, 0, 67, 204, 254, 67, 204, 253, 67, 204, 252, - 67, 204, 251, 67, 204, 250, 67, 204, 249, 67, 204, 248, 67, 204, 247, 67, - 204, 246, 67, 204, 245, 67, 204, 243, 67, 204, 242, 67, 204, 241, 67, - 204, 240, 67, 204, 239, 67, 204, 238, 67, 204, 237, 67, 204, 236, 67, - 204, 235, 67, 204, 234, 67, 204, 232, 67, 204, 231, 67, 204, 230, 67, - 204, 229, 67, 204, 228, 67, 204, 227, 67, 204, 226, 67, 204, 225, 67, - 204, 224, 67, 204, 223, 67, 204, 221, 67, 204, 220, 67, 204, 219, 67, - 204, 218, 67, 204, 217, 67, 204, 216, 67, 204, 215, 67, 204, 214, 67, - 204, 213, 67, 204, 212, 67, 204, 210, 67, 204, 209, 67, 204, 208, 67, - 204, 207, 67, 204, 206, 67, 204, 205, 67, 204, 204, 67, 204, 203, 67, - 204, 202, 67, 204, 201, 67, 204, 199, 67, 204, 198, 67, 204, 197, 67, - 204, 196, 67, 204, 195, 67, 204, 194, 67, 204, 193, 67, 204, 192, 67, - 204, 191, 67, 204, 190, 67, 204, 188, 67, 204, 187, 67, 204, 186, 67, - 204, 185, 67, 204, 184, 67, 204, 183, 67, 204, 182, 67, 204, 181, 67, - 204, 180, 67, 204, 179, 67, 204, 176, 67, 204, 175, 67, 204, 174, 67, - 204, 173, 67, 204, 172, 67, 204, 171, 67, 204, 170, 67, 204, 169, 67, - 204, 168, 67, 204, 167, 67, 204, 165, 67, 204, 164, 67, 204, 163, 67, - 204, 162, 67, 204, 161, 67, 204, 160, 67, 204, 159, 67, 204, 158, 67, - 204, 157, 67, 204, 156, 67, 204, 154, 67, 204, 153, 67, 204, 152, 67, - 204, 151, 67, 204, 150, 67, 204, 149, 67, 204, 148, 67, 204, 147, 67, - 204, 146, 67, 204, 145, 67, 204, 143, 67, 204, 142, 67, 204, 141, 67, - 204, 140, 67, 204, 139, 67, 204, 138, 67, 204, 137, 67, 204, 136, 67, - 204, 135, 67, 204, 134, 67, 204, 132, 67, 204, 131, 67, 204, 130, 67, - 204, 129, 67, 204, 128, 67, 204, 127, 67, 204, 126, 67, 204, 125, 67, - 204, 124, 67, 204, 123, 67, 204, 121, 67, 204, 120, 67, 204, 119, 67, - 204, 118, 67, 204, 117, 67, 204, 116, 67, 204, 115, 212, 138, 212, 140, - 201, 98, 79, 229, 232, 202, 27, 201, 98, 79, 199, 53, 201, 6, 234, 95, - 79, 199, 53, 233, 244, 234, 95, 79, 198, 11, 234, 57, 234, 81, 234, 82, - 252, 51, 252, 52, 251, 189, 248, 238, 249, 140, 248, 16, 246, 240, 199, - 230, 228, 241, 199, 230, 228, 165, 199, 236, 219, 113, 233, 50, 214, 80, - 219, 112, 234, 95, 79, 219, 112, 219, 161, 213, 105, 234, 60, 219, 113, - 199, 230, 81, 199, 230, 193, 251, 232, 146, 233, 50, 233, 27, 247, 88, - 207, 22, 238, 236, 203, 77, 211, 14, 219, 33, 107, 202, 46, 203, 77, 223, - 162, 219, 33, 191, 77, 202, 222, 237, 210, 219, 103, 234, 14, 236, 185, - 237, 75, 239, 22, 107, 237, 199, 237, 75, 239, 22, 109, 237, 198, 237, - 75, 239, 22, 138, 237, 197, 237, 75, 239, 22, 134, 237, 196, 214, 106, - 252, 51, 214, 233, 200, 69, 223, 228, 200, 73, 234, 95, 79, 198, 12, 248, - 129, 233, 252, 247, 126, 247, 128, 234, 95, 79, 216, 212, 234, 58, 234, - 114, 200, 226, 200, 245, 234, 14, 234, 15, 223, 137, 204, 11, 134, 233, - 7, 204, 10, 232, 90, 223, 137, 204, 11, 138, 230, 187, 204, 10, 230, 184, - 223, 137, 204, 11, 109, 207, 98, 204, 10, 206, 74, 223, 137, 204, 11, - 107, 196, 91, 204, 10, 196, 45, 201, 250, 237, 116, 237, 118, 210, 208, - 246, 239, 210, 210, 137, 211, 158, 208, 220, 228, 244, 248, 42, 210, 1, - 229, 192, 248, 58, 213, 44, 248, 42, 229, 192, 214, 191, 223, 148, 223, - 150, 214, 73, 219, 112, 214, 104, 201, 98, 79, 205, 36, 251, 8, 201, 175, - 234, 95, 79, 205, 36, 251, 8, 234, 17, 246, 240, 199, 231, 203, 252, 228, - 241, 199, 231, 203, 252, 228, 162, 246, 240, 199, 231, 4, 222, 164, 228, - 241, 199, 231, 4, 222, 164, 228, 163, 219, 113, 199, 231, 203, 252, 81, - 199, 231, 203, 252, 193, 250, 210, 105, 219, 113, 232, 132, 210, 105, - 219, 113, 235, 123, 209, 94, 210, 105, 219, 113, 249, 139, 210, 105, 219, - 113, 196, 77, 209, 88, 207, 19, 219, 113, 233, 50, 207, 19, 223, 148, - 207, 1, 202, 170, 203, 77, 109, 202, 167, 201, 177, 202, 170, 203, 77, - 138, 202, 166, 201, 176, 237, 75, 239, 22, 201, 30, 237, 194, 208, 205, - 196, 44, 107, 208, 205, 196, 42, 208, 164, 208, 205, 196, 44, 109, 208, - 205, 196, 41, 208, 163, 203, 253, 198, 10, 201, 95, 201, 13, 247, 127, - 246, 239, 247, 61, 216, 169, 193, 171, 215, 81, 201, 98, 79, 230, 172, - 251, 8, 201, 98, 79, 208, 182, 251, 8, 201, 249, 234, 95, 79, 230, 172, - 251, 8, 234, 95, 79, 208, 182, 251, 8, 234, 55, 201, 98, 79, 201, 30, - 202, 9, 202, 170, 230, 216, 246, 240, 223, 96, 203, 170, 202, 170, 246, - 240, 223, 96, 205, 85, 239, 22, 204, 7, 223, 96, 238, 196, 201, 31, 199, - 80, 201, 118, 211, 68, 200, 58, 242, 73, 211, 34, 208, 206, 216, 168, - 209, 76, 251, 45, 208, 198, 242, 73, 251, 62, 214, 179, 202, 231, 8, 6, - 1, 231, 91, 8, 2, 1, 231, 91, 247, 4, 9, 2, 137, 34, 131, 4, 99, 249, 80, - 251, 166, 200, 63, 200, 232, 242, 84, 202, 110, 219, 224, 222, 81, 1, - 219, 62, 220, 17, 1, 232, 176, 232, 166, 220, 17, 1, 232, 176, 233, 62, - 220, 17, 1, 206, 162, 220, 17, 1, 219, 43, 86, 87, 248, 141, 203, 50, - 231, 54, 216, 118, 207, 9, 30, 125, 192, 54, 30, 125, 192, 50, 30, 125, - 201, 153, 30, 125, 192, 55, 232, 66, 232, 65, 232, 64, 215, 83, 232, 63, - 200, 197, 1, 251, 14, 68, 190, 232, 190, 233, 190, 235, 218, 229, 206, - 170, 218, 231, 206, 172, 210, 66, 218, 228, 206, 169, 213, 75, 216, 16, - 193, 50, 218, 230, 206, 171, 232, 89, 210, 65, 193, 111, 234, 119, 232, - 76, 216, 92, 211, 105, 196, 46, 113, 216, 92, 237, 216, 113, 118, 197, - 240, 64, 4, 55, 81, 106, 96, 197, 240, 64, 4, 55, 81, 106, 11, 5, 223, - 51, 77, 80, 1, 221, 206, 219, 73, 194, 251, 194, 140, 194, 72, 194, 61, - 194, 50, 194, 39, 194, 28, 194, 17, 194, 6, 194, 250, 194, 239, 194, 228, - 194, 217, 194, 206, 194, 195, 194, 184, 208, 221, 232, 146, 40, 81, 50, - 63, 219, 187, 248, 53, 247, 198, 211, 51, 77, 248, 100, 190, 234, 10, 3, - 212, 148, 199, 84, 10, 3, 212, 148, 139, 212, 148, 247, 231, 139, 247, - 230, 216, 218, 6, 1, 230, 116, 216, 218, 6, 1, 214, 70, 216, 218, 2, 1, - 230, 116, 216, 218, 2, 1, 214, 70, 61, 1, 235, 14, 73, 37, 16, 232, 88, - 202, 106, 243, 52, 195, 164, 194, 173, 194, 162, 194, 151, 194, 139, 194, - 128, 194, 117, 194, 106, 194, 95, 194, 84, 194, 76, 194, 75, 194, 74, - 194, 73, 194, 71, 194, 70, 194, 69, 194, 68, 194, 67, 194, 66, 194, 65, - 194, 64, 194, 63, 194, 62, 194, 60, 194, 59, 194, 58, 194, 57, 194, 56, - 194, 55, 194, 54, 194, 53, 194, 52, 194, 51, 194, 49, 194, 48, 194, 47, - 194, 46, 194, 45, 194, 44, 194, 43, 194, 42, 194, 41, 194, 40, 194, 38, - 194, 37, 194, 36, 194, 35, 194, 34, 194, 33, 194, 32, 194, 31, 194, 30, - 194, 29, 194, 27, 194, 26, 194, 25, 194, 24, 194, 23, 194, 22, 194, 21, - 194, 20, 194, 19, 194, 18, 194, 16, 194, 15, 194, 14, 194, 13, 194, 12, - 194, 11, 194, 10, 194, 9, 194, 8, 194, 7, 194, 5, 194, 4, 194, 3, 194, 2, - 194, 1, 194, 0, 193, 255, 193, 254, 193, 253, 193, 252, 194, 249, 194, - 248, 194, 247, 194, 246, 194, 245, 194, 244, 194, 243, 194, 242, 194, - 241, 194, 240, 194, 238, 194, 237, 194, 236, 194, 235, 194, 234, 194, - 233, 194, 232, 194, 231, 194, 230, 194, 229, 194, 227, 194, 226, 194, - 225, 194, 224, 194, 223, 194, 222, 194, 221, 194, 220, 194, 219, 194, - 218, 194, 216, 194, 215, 194, 214, 194, 213, 194, 212, 194, 211, 194, - 210, 194, 209, 194, 208, 194, 207, 194, 205, 194, 204, 194, 203, 194, - 202, 194, 201, 194, 200, 194, 199, 194, 198, 194, 197, 194, 196, 194, - 194, 194, 193, 194, 192, 194, 191, 194, 190, 194, 189, 194, 188, 194, - 187, 194, 186, 194, 185, 194, 183, 194, 182, 194, 181, 194, 180, 194, - 179, 194, 178, 194, 177, 194, 176, 194, 175, 194, 174, 194, 172, 194, - 171, 194, 170, 194, 169, 194, 168, 194, 167, 194, 166, 194, 165, 194, - 164, 194, 163, 194, 161, 194, 160, 194, 159, 194, 158, 194, 157, 194, - 156, 194, 155, 194, 154, 194, 153, 194, 152, 194, 150, 194, 149, 194, - 148, 194, 147, 194, 146, 194, 145, 194, 144, 194, 143, 194, 142, 194, - 141, 194, 138, 194, 137, 194, 136, 194, 135, 194, 134, 194, 133, 194, - 132, 194, 131, 194, 130, 194, 129, 194, 127, 194, 126, 194, 125, 194, - 124, 194, 123, 194, 122, 194, 121, 194, 120, 194, 119, 194, 118, 194, - 116, 194, 115, 194, 114, 194, 113, 194, 112, 194, 111, 194, 110, 194, - 109, 194, 108, 194, 107, 194, 105, 194, 104, 194, 103, 194, 102, 194, - 101, 194, 100, 194, 99, 194, 98, 194, 97, 194, 96, 194, 94, 194, 93, 194, - 92, 194, 91, 194, 90, 194, 89, 194, 88, 194, 87, 194, 86, 194, 85, 194, - 83, 194, 82, 194, 81, 194, 80, 194, 79, 194, 78, 194, 77, 221, 219, 31, - 56, 221, 219, 250, 193, 221, 219, 17, 191, 77, 221, 219, 17, 107, 221, - 219, 17, 109, 221, 219, 17, 138, 221, 219, 17, 134, 221, 219, 17, 149, - 221, 219, 17, 169, 221, 219, 17, 175, 221, 219, 17, 171, 221, 219, 17, - 178, 8, 6, 1, 42, 4, 217, 147, 23, 230, 210, 8, 2, 1, 42, 4, 217, 147, - 23, 230, 210, 8, 6, 1, 228, 74, 4, 217, 147, 23, 230, 210, 8, 2, 1, 228, - 74, 4, 217, 147, 23, 230, 210, 8, 6, 1, 126, 4, 217, 147, 23, 230, 210, - 8, 2, 1, 126, 4, 217, 147, 23, 230, 210, 8, 6, 1, 235, 15, 4, 81, 219, - 113, 60, 8, 2, 1, 235, 15, 4, 81, 219, 113, 60, 8, 6, 1, 235, 15, 4, 81, - 219, 113, 248, 233, 23, 230, 210, 8, 2, 1, 235, 15, 4, 81, 219, 113, 248, - 233, 23, 230, 210, 8, 6, 1, 235, 15, 4, 81, 219, 113, 248, 233, 23, 252, - 46, 8, 2, 1, 235, 15, 4, 81, 219, 113, 248, 233, 23, 252, 46, 8, 6, 1, - 187, 4, 81, 219, 113, 60, 8, 2, 1, 187, 4, 81, 219, 113, 60, 8, 6, 1, - 187, 4, 81, 219, 113, 248, 233, 23, 230, 210, 8, 2, 1, 187, 4, 81, 219, - 113, 248, 233, 23, 230, 210, 8, 6, 1, 187, 4, 81, 219, 113, 248, 233, 23, - 252, 46, 8, 2, 1, 187, 4, 81, 219, 113, 248, 233, 23, 252, 46, 8, 6, 1, - 206, 9, 4, 81, 219, 113, 60, 8, 2, 1, 206, 9, 4, 81, 219, 113, 60, 8, 6, - 1, 235, 15, 4, 243, 2, 23, 217, 146, 8, 2, 1, 235, 15, 4, 243, 2, 23, - 217, 146, 8, 6, 1, 235, 15, 4, 243, 2, 23, 247, 92, 8, 2, 1, 235, 15, 4, - 243, 2, 23, 247, 92, 8, 2, 1, 228, 74, 4, 75, 93, 23, 252, 46, 8, 2, 1, - 214, 71, 4, 198, 153, 58, 8, 6, 1, 42, 4, 211, 139, 23, 252, 46, 8, 2, 1, - 42, 4, 211, 139, 23, 252, 46, 8, 6, 1, 42, 4, 211, 139, 23, 198, 152, 8, - 2, 1, 42, 4, 211, 139, 23, 198, 152, 8, 6, 1, 235, 15, 4, 211, 139, 23, - 252, 46, 8, 2, 1, 235, 15, 4, 211, 139, 23, 252, 46, 8, 6, 1, 235, 15, 4, - 211, 139, 23, 198, 152, 8, 2, 1, 235, 15, 4, 211, 139, 23, 198, 152, 8, - 6, 1, 235, 15, 4, 75, 93, 23, 252, 46, 8, 2, 1, 235, 15, 4, 75, 93, 23, - 252, 46, 8, 6, 1, 235, 15, 4, 75, 93, 23, 198, 152, 8, 2, 1, 235, 15, 4, - 75, 93, 23, 198, 152, 8, 2, 1, 228, 74, 4, 75, 93, 23, 230, 210, 8, 2, 1, - 228, 74, 4, 75, 93, 23, 198, 152, 8, 6, 1, 228, 74, 4, 211, 139, 23, 252, - 46, 8, 2, 1, 228, 74, 4, 211, 139, 23, 75, 93, 23, 252, 46, 8, 6, 1, 228, - 74, 4, 211, 139, 23, 198, 152, 8, 2, 1, 228, 74, 4, 211, 139, 23, 75, 93, - 23, 198, 152, 8, 6, 1, 223, 36, 4, 198, 152, 8, 2, 1, 223, 36, 4, 75, 93, - 23, 198, 152, 8, 6, 1, 220, 143, 4, 198, 152, 8, 2, 1, 220, 143, 4, 198, - 152, 8, 6, 1, 218, 169, 4, 198, 152, 8, 2, 1, 218, 169, 4, 198, 152, 8, - 6, 1, 207, 222, 4, 198, 152, 8, 2, 1, 207, 222, 4, 198, 152, 8, 6, 1, - 126, 4, 211, 139, 23, 252, 46, 8, 2, 1, 126, 4, 211, 139, 23, 252, 46, 8, - 6, 1, 126, 4, 211, 139, 23, 198, 152, 8, 2, 1, 126, 4, 211, 139, 23, 198, - 152, 8, 6, 1, 126, 4, 217, 147, 23, 252, 46, 8, 2, 1, 126, 4, 217, 147, - 23, 252, 46, 8, 6, 1, 126, 4, 217, 147, 23, 198, 152, 8, 2, 1, 126, 4, - 217, 147, 23, 198, 152, 8, 2, 1, 252, 26, 4, 230, 210, 8, 2, 1, 211, 77, - 187, 4, 230, 210, 8, 2, 1, 211, 77, 187, 4, 252, 46, 8, 2, 1, 153, 196, - 13, 4, 230, 210, 8, 2, 1, 153, 196, 13, 4, 252, 46, 8, 2, 1, 205, 87, 4, - 230, 210, 8, 2, 1, 205, 87, 4, 252, 46, 8, 2, 1, 228, 250, 205, 87, 4, - 230, 210, 8, 2, 1, 228, 250, 205, 87, 4, 252, 46, 9, 204, 7, 99, 4, 230, - 58, 93, 4, 251, 192, 9, 204, 7, 99, 4, 230, 58, 93, 4, 193, 133, 9, 204, - 7, 99, 4, 230, 58, 93, 4, 131, 217, 99, 9, 204, 7, 99, 4, 230, 58, 93, 4, - 211, 151, 9, 204, 7, 99, 4, 230, 58, 93, 4, 66, 9, 204, 7, 99, 4, 230, - 58, 93, 4, 191, 225, 9, 204, 7, 99, 4, 230, 58, 93, 4, 71, 9, 204, 7, 99, - 4, 230, 58, 93, 4, 252, 25, 9, 204, 7, 213, 25, 4, 222, 4, 100, 204, 7, - 40, 1, 208, 96, 100, 204, 7, 40, 1, 221, 193, 100, 204, 7, 40, 1, 231, - 66, 100, 204, 7, 40, 1, 191, 123, 100, 204, 7, 40, 1, 237, 180, 100, 204, - 7, 40, 1, 207, 6, 100, 204, 7, 40, 1, 233, 109, 100, 204, 7, 40, 1, 191, - 175, 248, 225, 204, 7, 40, 1, 206, 109, 248, 225, 204, 7, 40, 1, 207, 6, - 248, 225, 204, 7, 40, 1, 191, 175, 230, 144, 204, 7, 40, 1, 219, 73, 230, - 144, 204, 7, 40, 1, 203, 165, 230, 144, 204, 7, 40, 1, 221, 193, 230, - 144, 204, 7, 40, 1, 231, 66, 230, 144, 204, 7, 40, 1, 191, 123, 230, 144, - 204, 7, 40, 1, 233, 109, 211, 45, 204, 7, 40, 1, 206, 109, 211, 45, 204, - 7, 40, 1, 207, 6, 248, 225, 1, 221, 187, 44, 120, 222, 152, 44, 120, 214, - 70, 44, 120, 247, 193, 44, 120, 212, 103, 44, 120, 197, 135, 44, 120, - 213, 80, 44, 120, 200, 43, 44, 120, 215, 61, 44, 120, 210, 236, 44, 120, - 218, 168, 44, 120, 192, 159, 44, 120, 146, 44, 120, 172, 44, 120, 196, - 12, 44, 120, 219, 63, 44, 120, 219, 74, 44, 120, 206, 110, 44, 120, 213, - 62, 44, 120, 223, 35, 44, 120, 203, 167, 44, 120, 201, 178, 44, 120, 206, - 8, 44, 120, 230, 116, 44, 120, 220, 247, 44, 5, 222, 127, 44, 5, 221, - 166, 44, 5, 221, 145, 44, 5, 220, 232, 44, 5, 220, 187, 44, 5, 222, 22, - 44, 5, 222, 13, 44, 5, 222, 102, 44, 5, 221, 67, 44, 5, 221, 41, 44, 5, - 222, 42, 44, 5, 214, 67, 44, 5, 214, 16, 44, 5, 214, 12, 44, 5, 213, 237, - 44, 5, 213, 228, 44, 5, 214, 55, 44, 5, 214, 53, 44, 5, 214, 64, 44, 5, - 213, 249, 44, 5, 213, 244, 44, 5, 214, 57, 44, 5, 247, 159, 44, 5, 243, - 29, 44, 5, 243, 19, 44, 5, 238, 195, 44, 5, 238, 153, 44, 5, 247, 42, 44, - 5, 247, 34, 44, 5, 247, 148, 44, 5, 242, 99, 44, 5, 239, 18, 44, 5, 247, - 76, 44, 5, 212, 100, 44, 5, 212, 81, 44, 5, 212, 75, 44, 5, 212, 58, 44, - 5, 212, 50, 44, 5, 212, 90, 44, 5, 212, 89, 44, 5, 212, 97, 44, 5, 212, - 65, 44, 5, 212, 62, 44, 5, 212, 93, 44, 5, 197, 131, 44, 5, 197, 111, 44, - 5, 197, 110, 44, 5, 197, 99, 44, 5, 197, 96, 44, 5, 197, 127, 44, 5, 197, - 126, 44, 5, 197, 130, 44, 5, 197, 109, 44, 5, 197, 108, 44, 5, 197, 129, - 44, 5, 213, 78, 44, 5, 213, 64, 44, 5, 213, 63, 44, 5, 213, 47, 44, 5, - 213, 46, 44, 5, 213, 74, 44, 5, 213, 73, 44, 5, 213, 77, 44, 5, 213, 49, - 44, 5, 213, 48, 44, 5, 213, 76, 44, 5, 199, 245, 44, 5, 198, 193, 44, 5, - 198, 170, 44, 5, 197, 94, 44, 5, 197, 49, 44, 5, 199, 145, 44, 5, 199, - 121, 44, 5, 199, 217, 44, 5, 159, 44, 5, 198, 59, 44, 5, 199, 166, 44, 5, - 214, 250, 44, 5, 213, 219, 44, 5, 213, 186, 44, 5, 212, 178, 44, 5, 212, - 115, 44, 5, 214, 121, 44, 5, 214, 110, 44, 5, 214, 236, 44, 5, 213, 43, - 44, 5, 213, 26, 44, 5, 214, 205, 44, 5, 210, 220, 44, 5, 209, 185, 44, 5, - 209, 145, 44, 5, 208, 165, 44, 5, 208, 128, 44, 5, 210, 63, 44, 5, 210, - 49, 44, 5, 210, 198, 44, 5, 209, 73, 44, 5, 209, 37, 44, 5, 210, 80, 44, - 5, 217, 151, 44, 5, 216, 100, 44, 5, 216, 61, 44, 5, 215, 155, 44, 5, - 215, 93, 44, 5, 216, 232, 44, 5, 216, 211, 44, 5, 217, 112, 44, 5, 216, - 12, 44, 5, 215, 211, 44, 5, 217, 25, 44, 5, 192, 140, 44, 5, 192, 33, 44, - 5, 192, 23, 44, 5, 191, 225, 44, 5, 191, 188, 44, 5, 192, 80, 44, 5, 192, - 77, 44, 5, 192, 119, 44, 5, 192, 12, 44, 5, 191, 246, 44, 5, 192, 91, 44, - 5, 207, 178, 44, 5, 207, 1, 44, 5, 206, 195, 44, 5, 206, 68, 44, 5, 206, - 29, 44, 5, 207, 113, 44, 5, 207, 84, 44, 5, 207, 156, 44, 5, 206, 162, - 44, 5, 206, 134, 44, 5, 207, 125, 44, 5, 220, 125, 44, 5, 219, 146, 44, - 5, 219, 128, 44, 5, 218, 225, 44, 5, 218, 194, 44, 5, 219, 238, 44, 5, - 219, 228, 44, 5, 220, 96, 44, 5, 219, 43, 44, 5, 219, 8, 44, 5, 220, 0, - 44, 5, 195, 187, 44, 5, 195, 69, 44, 5, 195, 51, 44, 5, 193, 249, 44, 5, - 193, 241, 44, 5, 195, 153, 44, 5, 195, 148, 44, 5, 195, 183, 44, 5, 195, - 24, 44, 5, 195, 8, 44, 5, 195, 160, 44, 5, 219, 61, 44, 5, 219, 56, 44, - 5, 219, 55, 44, 5, 219, 52, 44, 5, 219, 51, 44, 5, 219, 58, 44, 5, 219, - 57, 44, 5, 219, 60, 44, 5, 219, 54, 44, 5, 219, 53, 44, 5, 219, 59, 44, - 5, 219, 72, 44, 5, 219, 65, 44, 5, 219, 64, 44, 5, 219, 48, 44, 5, 219, - 47, 44, 5, 219, 68, 44, 5, 219, 67, 44, 5, 219, 71, 44, 5, 219, 50, 44, - 5, 219, 49, 44, 5, 219, 69, 44, 5, 206, 108, 44, 5, 206, 97, 44, 5, 206, - 96, 44, 5, 206, 89, 44, 5, 206, 82, 44, 5, 206, 104, 44, 5, 206, 103, 44, - 5, 206, 107, 44, 5, 206, 95, 44, 5, 206, 94, 44, 5, 206, 106, 44, 5, 213, - 60, 44, 5, 213, 55, 44, 5, 213, 54, 44, 5, 213, 51, 44, 5, 213, 50, 44, - 5, 213, 57, 44, 5, 213, 56, 44, 5, 213, 59, 44, 5, 213, 53, 44, 5, 213, - 52, 44, 5, 213, 58, 44, 5, 223, 31, 44, 5, 222, 244, 44, 5, 222, 236, 44, - 5, 222, 182, 44, 5, 222, 162, 44, 5, 223, 10, 44, 5, 223, 8, 44, 5, 223, - 25, 44, 5, 222, 201, 44, 5, 222, 191, 44, 5, 223, 17, 44, 5, 203, 160, - 44, 5, 203, 81, 44, 5, 203, 76, 44, 5, 203, 5, 44, 5, 202, 243, 44, 5, - 203, 113, 44, 5, 203, 111, 44, 5, 203, 148, 44, 5, 203, 56, 44, 5, 203, - 48, 44, 5, 203, 122, 44, 5, 201, 174, 44, 5, 201, 142, 44, 5, 201, 138, - 44, 5, 201, 129, 44, 5, 201, 126, 44, 5, 201, 148, 44, 5, 201, 147, 44, - 5, 201, 173, 44, 5, 201, 134, 44, 5, 201, 133, 44, 5, 201, 150, 44, 5, - 205, 197, 44, 5, 202, 222, 44, 5, 202, 193, 44, 5, 201, 4, 44, 5, 200, - 160, 44, 5, 205, 68, 44, 5, 205, 50, 44, 5, 205, 181, 44, 5, 202, 46, 44, - 5, 202, 16, 44, 5, 205, 114, 44, 5, 230, 91, 44, 5, 229, 158, 44, 5, 229, - 130, 44, 5, 228, 159, 44, 5, 228, 128, 44, 5, 229, 245, 44, 5, 229, 215, - 44, 5, 230, 80, 44, 5, 229, 23, 44, 5, 228, 252, 44, 5, 230, 2, 44, 5, - 220, 246, 44, 5, 220, 245, 44, 5, 220, 240, 44, 5, 220, 239, 44, 5, 220, - 236, 44, 5, 220, 235, 44, 5, 220, 242, 44, 5, 220, 241, 44, 5, 220, 244, - 44, 5, 220, 238, 44, 5, 220, 237, 44, 5, 220, 243, 44, 5, 203, 14, 166, - 120, 3, 192, 105, 166, 120, 3, 207, 144, 166, 120, 3, 207, 50, 101, 1, - 196, 224, 95, 120, 3, 242, 91, 155, 95, 120, 3, 242, 91, 221, 215, 95, - 120, 3, 242, 91, 221, 67, 95, 120, 3, 242, 91, 221, 183, 95, 120, 3, 242, - 91, 213, 249, 95, 120, 3, 242, 91, 247, 160, 95, 120, 3, 242, 91, 247, 1, - 95, 120, 3, 242, 91, 242, 99, 95, 120, 3, 242, 91, 243, 68, 95, 120, 3, - 242, 91, 212, 65, 95, 120, 3, 242, 91, 238, 32, 95, 120, 3, 242, 91, 197, - 120, 95, 120, 3, 242, 91, 236, 174, 95, 120, 3, 242, 91, 197, 115, 95, - 120, 3, 242, 91, 180, 95, 120, 3, 242, 91, 190, 190, 95, 120, 3, 242, 91, - 199, 49, 95, 120, 3, 242, 91, 159, 95, 120, 3, 242, 91, 198, 241, 95, - 120, 3, 242, 91, 213, 43, 95, 120, 3, 242, 91, 249, 153, 95, 120, 3, 242, - 91, 209, 228, 95, 120, 3, 242, 91, 209, 73, 95, 120, 3, 242, 91, 209, - 199, 95, 120, 3, 242, 91, 216, 12, 95, 120, 3, 242, 91, 192, 12, 95, 120, - 3, 242, 91, 206, 162, 95, 120, 3, 242, 91, 219, 43, 95, 120, 3, 242, 91, - 195, 24, 95, 120, 3, 242, 91, 203, 165, 95, 120, 3, 242, 91, 201, 175, - 95, 120, 3, 242, 91, 188, 95, 120, 3, 242, 91, 140, 95, 120, 3, 242, 91, - 173, 95, 18, 3, 242, 91, 208, 96, 95, 223, 149, 18, 3, 242, 91, 208, 33, - 95, 223, 149, 18, 3, 242, 91, 206, 17, 95, 223, 149, 18, 3, 242, 91, 206, - 10, 95, 223, 149, 18, 3, 242, 91, 208, 75, 95, 18, 3, 211, 113, 95, 18, - 3, 252, 167, 229, 120, 1, 248, 181, 214, 68, 229, 120, 1, 248, 181, 214, - 16, 229, 120, 1, 248, 181, 213, 237, 229, 120, 1, 248, 181, 214, 55, 229, - 120, 1, 248, 181, 213, 249, 72, 1, 248, 181, 214, 68, 72, 1, 248, 181, - 214, 16, 72, 1, 248, 181, 213, 237, 72, 1, 248, 181, 214, 55, 72, 1, 248, - 181, 213, 249, 72, 1, 251, 228, 247, 42, 72, 1, 251, 228, 197, 94, 72, 1, - 251, 228, 159, 72, 1, 251, 228, 210, 236, 52, 1, 233, 200, 233, 199, 239, - 26, 163, 164, 52, 1, 233, 199, 233, 200, 239, 26, 163, 164, + 13, 28, 43, 2, 65, 13, 28, 43, 2, 250, 70, 13, 28, 43, 2, 247, 145, 13, + 28, 43, 2, 238, 80, 13, 28, 43, 2, 73, 13, 28, 43, 2, 233, 134, 13, 28, + 43, 2, 232, 14, 13, 28, 43, 2, 230, 83, 13, 28, 43, 2, 70, 13, 28, 43, 2, + 223, 7, 13, 28, 43, 2, 222, 125, 13, 28, 43, 2, 170, 13, 28, 43, 2, 218, + 147, 13, 28, 43, 2, 215, 47, 13, 28, 43, 2, 74, 13, 28, 43, 2, 210, 226, + 13, 28, 43, 2, 208, 97, 13, 28, 43, 2, 148, 13, 28, 43, 2, 206, 3, 13, + 28, 43, 2, 200, 39, 13, 28, 43, 2, 69, 13, 28, 43, 2, 196, 8, 13, 28, 43, + 2, 193, 221, 13, 28, 43, 2, 192, 235, 13, 28, 43, 2, 192, 159, 13, 28, + 43, 2, 191, 166, 13, 27, 6, 65, 13, 27, 6, 247, 145, 13, 27, 6, 238, 80, + 13, 27, 6, 232, 14, 13, 27, 6, 223, 7, 13, 27, 6, 222, 125, 13, 27, 6, + 215, 47, 13, 27, 6, 74, 13, 27, 6, 210, 226, 13, 27, 6, 208, 97, 13, 27, + 6, 206, 3, 13, 27, 6, 200, 39, 13, 27, 6, 69, 13, 27, 6, 196, 8, 13, 27, + 6, 193, 221, 13, 27, 6, 192, 235, 13, 27, 6, 192, 159, 13, 27, 6, 191, + 166, 13, 27, 2, 65, 13, 27, 2, 250, 70, 13, 27, 2, 247, 145, 13, 27, 2, + 238, 80, 13, 27, 2, 233, 134, 13, 27, 2, 230, 83, 13, 27, 2, 70, 13, 27, + 2, 223, 7, 13, 27, 2, 222, 125, 13, 27, 2, 170, 13, 27, 2, 218, 147, 13, + 27, 2, 215, 47, 13, 27, 2, 210, 226, 13, 27, 2, 208, 97, 13, 27, 2, 148, + 13, 27, 2, 206, 3, 13, 27, 2, 200, 39, 13, 27, 2, 69, 13, 27, 2, 196, 8, + 13, 27, 2, 193, 221, 13, 27, 2, 192, 235, 13, 27, 2, 192, 159, 13, 27, 2, + 191, 166, 13, 28, 27, 6, 65, 13, 28, 27, 6, 250, 70, 13, 28, 27, 6, 247, + 145, 13, 28, 27, 6, 238, 80, 13, 28, 27, 6, 73, 13, 28, 27, 6, 233, 134, + 13, 28, 27, 6, 232, 14, 13, 28, 27, 6, 230, 83, 13, 28, 27, 6, 70, 13, + 28, 27, 6, 223, 7, 13, 28, 27, 6, 222, 125, 13, 28, 27, 6, 170, 13, 28, + 27, 6, 218, 147, 13, 28, 27, 6, 215, 47, 13, 28, 27, 6, 74, 13, 28, 27, + 6, 210, 226, 13, 28, 27, 6, 208, 97, 13, 28, 27, 6, 148, 13, 28, 27, 6, + 206, 3, 13, 28, 27, 6, 200, 39, 13, 28, 27, 6, 69, 13, 28, 27, 6, 196, 8, + 13, 28, 27, 6, 193, 221, 13, 28, 27, 6, 192, 235, 13, 28, 27, 6, 192, + 159, 13, 28, 27, 6, 191, 166, 13, 28, 27, 2, 65, 13, 28, 27, 2, 250, 70, + 13, 28, 27, 2, 247, 145, 13, 28, 27, 2, 238, 80, 13, 28, 27, 2, 73, 13, + 28, 27, 2, 233, 134, 13, 28, 27, 2, 232, 14, 13, 28, 27, 2, 230, 83, 13, + 28, 27, 2, 70, 13, 28, 27, 2, 223, 7, 13, 28, 27, 2, 222, 125, 13, 28, + 27, 2, 170, 13, 28, 27, 2, 218, 147, 13, 28, 27, 2, 215, 47, 13, 28, 27, + 2, 74, 13, 28, 27, 2, 210, 226, 13, 28, 27, 2, 208, 97, 13, 28, 27, 2, + 148, 13, 28, 27, 2, 206, 3, 13, 28, 27, 2, 200, 39, 13, 28, 27, 2, 69, + 13, 28, 27, 2, 196, 8, 13, 28, 27, 2, 193, 221, 13, 28, 27, 2, 192, 235, + 13, 28, 27, 2, 192, 159, 13, 28, 27, 2, 191, 166, 13, 232, 77, 6, 65, 13, + 232, 77, 6, 250, 70, 13, 232, 77, 6, 238, 80, 13, 232, 77, 6, 73, 13, + 232, 77, 6, 233, 134, 13, 232, 77, 6, 232, 14, 13, 232, 77, 6, 223, 7, + 13, 232, 77, 6, 222, 125, 13, 232, 77, 6, 170, 13, 232, 77, 6, 218, 147, + 13, 232, 77, 6, 215, 47, 13, 232, 77, 6, 74, 13, 232, 77, 6, 210, 226, + 13, 232, 77, 6, 208, 97, 13, 232, 77, 6, 206, 3, 13, 232, 77, 6, 200, 39, + 13, 232, 77, 6, 69, 13, 232, 77, 6, 196, 8, 13, 232, 77, 6, 193, 221, 13, + 232, 77, 6, 192, 235, 13, 232, 77, 6, 192, 159, 13, 232, 77, 2, 65, 13, + 232, 77, 2, 250, 70, 13, 232, 77, 2, 247, 145, 13, 232, 77, 2, 238, 80, + 13, 232, 77, 2, 73, 13, 232, 77, 2, 233, 134, 13, 232, 77, 2, 232, 14, + 13, 232, 77, 2, 230, 83, 13, 232, 77, 2, 70, 13, 232, 77, 2, 223, 7, 13, + 232, 77, 2, 222, 125, 13, 232, 77, 2, 170, 13, 232, 77, 2, 218, 147, 13, + 232, 77, 2, 215, 47, 13, 232, 77, 2, 74, 13, 232, 77, 2, 210, 226, 13, + 232, 77, 2, 208, 97, 13, 232, 77, 2, 148, 13, 232, 77, 2, 206, 3, 13, + 232, 77, 2, 200, 39, 13, 232, 77, 2, 69, 13, 232, 77, 2, 196, 8, 13, 232, + 77, 2, 193, 221, 13, 232, 77, 2, 192, 235, 13, 232, 77, 2, 192, 159, 13, + 232, 77, 2, 191, 166, 13, 235, 85, 6, 65, 13, 235, 85, 6, 250, 70, 13, + 235, 85, 6, 238, 80, 13, 235, 85, 6, 73, 13, 235, 85, 6, 233, 134, 13, + 235, 85, 6, 232, 14, 13, 235, 85, 6, 70, 13, 235, 85, 6, 223, 7, 13, 235, + 85, 6, 222, 125, 13, 235, 85, 6, 170, 13, 235, 85, 6, 218, 147, 13, 235, + 85, 6, 74, 13, 235, 85, 6, 206, 3, 13, 235, 85, 6, 200, 39, 13, 235, 85, + 6, 69, 13, 235, 85, 6, 196, 8, 13, 235, 85, 6, 193, 221, 13, 235, 85, 6, + 192, 235, 13, 235, 85, 6, 192, 159, 13, 235, 85, 2, 65, 13, 235, 85, 2, + 250, 70, 13, 235, 85, 2, 247, 145, 13, 235, 85, 2, 238, 80, 13, 235, 85, + 2, 73, 13, 235, 85, 2, 233, 134, 13, 235, 85, 2, 232, 14, 13, 235, 85, 2, + 230, 83, 13, 235, 85, 2, 70, 13, 235, 85, 2, 223, 7, 13, 235, 85, 2, 222, + 125, 13, 235, 85, 2, 170, 13, 235, 85, 2, 218, 147, 13, 235, 85, 2, 215, + 47, 13, 235, 85, 2, 74, 13, 235, 85, 2, 210, 226, 13, 235, 85, 2, 208, + 97, 13, 235, 85, 2, 148, 13, 235, 85, 2, 206, 3, 13, 235, 85, 2, 200, 39, + 13, 235, 85, 2, 69, 13, 235, 85, 2, 196, 8, 13, 235, 85, 2, 193, 221, 13, + 235, 85, 2, 192, 235, 13, 235, 85, 2, 192, 159, 13, 235, 85, 2, 191, 166, + 13, 28, 232, 77, 6, 65, 13, 28, 232, 77, 6, 250, 70, 13, 28, 232, 77, 6, + 247, 145, 13, 28, 232, 77, 6, 238, 80, 13, 28, 232, 77, 6, 73, 13, 28, + 232, 77, 6, 233, 134, 13, 28, 232, 77, 6, 232, 14, 13, 28, 232, 77, 6, + 230, 83, 13, 28, 232, 77, 6, 70, 13, 28, 232, 77, 6, 223, 7, 13, 28, 232, + 77, 6, 222, 125, 13, 28, 232, 77, 6, 170, 13, 28, 232, 77, 6, 218, 147, + 13, 28, 232, 77, 6, 215, 47, 13, 28, 232, 77, 6, 74, 13, 28, 232, 77, 6, + 210, 226, 13, 28, 232, 77, 6, 208, 97, 13, 28, 232, 77, 6, 148, 13, 28, + 232, 77, 6, 206, 3, 13, 28, 232, 77, 6, 200, 39, 13, 28, 232, 77, 6, 69, + 13, 28, 232, 77, 6, 196, 8, 13, 28, 232, 77, 6, 193, 221, 13, 28, 232, + 77, 6, 192, 235, 13, 28, 232, 77, 6, 192, 159, 13, 28, 232, 77, 6, 191, + 166, 13, 28, 232, 77, 2, 65, 13, 28, 232, 77, 2, 250, 70, 13, 28, 232, + 77, 2, 247, 145, 13, 28, 232, 77, 2, 238, 80, 13, 28, 232, 77, 2, 73, 13, + 28, 232, 77, 2, 233, 134, 13, 28, 232, 77, 2, 232, 14, 13, 28, 232, 77, + 2, 230, 83, 13, 28, 232, 77, 2, 70, 13, 28, 232, 77, 2, 223, 7, 13, 28, + 232, 77, 2, 222, 125, 13, 28, 232, 77, 2, 170, 13, 28, 232, 77, 2, 218, + 147, 13, 28, 232, 77, 2, 215, 47, 13, 28, 232, 77, 2, 74, 13, 28, 232, + 77, 2, 210, 226, 13, 28, 232, 77, 2, 208, 97, 13, 28, 232, 77, 2, 148, + 13, 28, 232, 77, 2, 206, 3, 13, 28, 232, 77, 2, 200, 39, 13, 28, 232, 77, + 2, 69, 13, 28, 232, 77, 2, 196, 8, 13, 28, 232, 77, 2, 193, 221, 13, 28, + 232, 77, 2, 192, 235, 13, 28, 232, 77, 2, 192, 159, 13, 28, 232, 77, 2, + 191, 166, 13, 49, 6, 65, 13, 49, 6, 250, 70, 13, 49, 6, 247, 145, 13, 49, + 6, 238, 80, 13, 49, 6, 73, 13, 49, 6, 233, 134, 13, 49, 6, 232, 14, 13, + 49, 6, 230, 83, 13, 49, 6, 70, 13, 49, 6, 223, 7, 13, 49, 6, 222, 125, + 13, 49, 6, 170, 13, 49, 6, 218, 147, 13, 49, 6, 215, 47, 13, 49, 6, 74, + 13, 49, 6, 210, 226, 13, 49, 6, 208, 97, 13, 49, 6, 148, 13, 49, 6, 206, + 3, 13, 49, 6, 200, 39, 13, 49, 6, 69, 13, 49, 6, 196, 8, 13, 49, 6, 193, + 221, 13, 49, 6, 192, 235, 13, 49, 6, 192, 159, 13, 49, 6, 191, 166, 13, + 49, 2, 65, 13, 49, 2, 250, 70, 13, 49, 2, 247, 145, 13, 49, 2, 238, 80, + 13, 49, 2, 73, 13, 49, 2, 233, 134, 13, 49, 2, 232, 14, 13, 49, 2, 230, + 83, 13, 49, 2, 70, 13, 49, 2, 223, 7, 13, 49, 2, 222, 125, 13, 49, 2, + 170, 13, 49, 2, 218, 147, 13, 49, 2, 215, 47, 13, 49, 2, 74, 13, 49, 2, + 210, 226, 13, 49, 2, 208, 97, 13, 49, 2, 148, 13, 49, 2, 206, 3, 13, 49, + 2, 200, 39, 13, 49, 2, 69, 13, 49, 2, 196, 8, 13, 49, 2, 193, 221, 13, + 49, 2, 192, 235, 13, 49, 2, 192, 159, 13, 49, 2, 191, 166, 13, 49, 28, 6, + 65, 13, 49, 28, 6, 250, 70, 13, 49, 28, 6, 247, 145, 13, 49, 28, 6, 238, + 80, 13, 49, 28, 6, 73, 13, 49, 28, 6, 233, 134, 13, 49, 28, 6, 232, 14, + 13, 49, 28, 6, 230, 83, 13, 49, 28, 6, 70, 13, 49, 28, 6, 223, 7, 13, 49, + 28, 6, 222, 125, 13, 49, 28, 6, 170, 13, 49, 28, 6, 218, 147, 13, 49, 28, + 6, 215, 47, 13, 49, 28, 6, 74, 13, 49, 28, 6, 210, 226, 13, 49, 28, 6, + 208, 97, 13, 49, 28, 6, 148, 13, 49, 28, 6, 206, 3, 13, 49, 28, 6, 200, + 39, 13, 49, 28, 6, 69, 13, 49, 28, 6, 196, 8, 13, 49, 28, 6, 193, 221, + 13, 49, 28, 6, 192, 235, 13, 49, 28, 6, 192, 159, 13, 49, 28, 6, 191, + 166, 13, 49, 28, 2, 65, 13, 49, 28, 2, 250, 70, 13, 49, 28, 2, 247, 145, + 13, 49, 28, 2, 238, 80, 13, 49, 28, 2, 73, 13, 49, 28, 2, 233, 134, 13, + 49, 28, 2, 232, 14, 13, 49, 28, 2, 230, 83, 13, 49, 28, 2, 70, 13, 49, + 28, 2, 223, 7, 13, 49, 28, 2, 222, 125, 13, 49, 28, 2, 170, 13, 49, 28, + 2, 218, 147, 13, 49, 28, 2, 215, 47, 13, 49, 28, 2, 74, 13, 49, 28, 2, + 210, 226, 13, 49, 28, 2, 208, 97, 13, 49, 28, 2, 148, 13, 49, 28, 2, 206, + 3, 13, 49, 28, 2, 200, 39, 13, 49, 28, 2, 69, 13, 49, 28, 2, 196, 8, 13, + 49, 28, 2, 193, 221, 13, 49, 28, 2, 192, 235, 13, 49, 28, 2, 192, 159, + 13, 49, 28, 2, 191, 166, 13, 49, 43, 6, 65, 13, 49, 43, 6, 250, 70, 13, + 49, 43, 6, 247, 145, 13, 49, 43, 6, 238, 80, 13, 49, 43, 6, 73, 13, 49, + 43, 6, 233, 134, 13, 49, 43, 6, 232, 14, 13, 49, 43, 6, 230, 83, 13, 49, + 43, 6, 70, 13, 49, 43, 6, 223, 7, 13, 49, 43, 6, 222, 125, 13, 49, 43, 6, + 170, 13, 49, 43, 6, 218, 147, 13, 49, 43, 6, 215, 47, 13, 49, 43, 6, 74, + 13, 49, 43, 6, 210, 226, 13, 49, 43, 6, 208, 97, 13, 49, 43, 6, 148, 13, + 49, 43, 6, 206, 3, 13, 49, 43, 6, 200, 39, 13, 49, 43, 6, 69, 13, 49, 43, + 6, 196, 8, 13, 49, 43, 6, 193, 221, 13, 49, 43, 6, 192, 235, 13, 49, 43, + 6, 192, 159, 13, 49, 43, 6, 191, 166, 13, 49, 43, 2, 65, 13, 49, 43, 2, + 250, 70, 13, 49, 43, 2, 247, 145, 13, 49, 43, 2, 238, 80, 13, 49, 43, 2, + 73, 13, 49, 43, 2, 233, 134, 13, 49, 43, 2, 232, 14, 13, 49, 43, 2, 230, + 83, 13, 49, 43, 2, 70, 13, 49, 43, 2, 223, 7, 13, 49, 43, 2, 222, 125, + 13, 49, 43, 2, 170, 13, 49, 43, 2, 218, 147, 13, 49, 43, 2, 215, 47, 13, + 49, 43, 2, 74, 13, 49, 43, 2, 210, 226, 13, 49, 43, 2, 208, 97, 13, 49, + 43, 2, 148, 13, 49, 43, 2, 206, 3, 13, 49, 43, 2, 200, 39, 13, 49, 43, 2, + 69, 13, 49, 43, 2, 196, 8, 13, 49, 43, 2, 193, 221, 13, 49, 43, 2, 192, + 235, 13, 49, 43, 2, 192, 159, 13, 49, 43, 2, 191, 166, 13, 49, 28, 43, 6, + 65, 13, 49, 28, 43, 6, 250, 70, 13, 49, 28, 43, 6, 247, 145, 13, 49, 28, + 43, 6, 238, 80, 13, 49, 28, 43, 6, 73, 13, 49, 28, 43, 6, 233, 134, 13, + 49, 28, 43, 6, 232, 14, 13, 49, 28, 43, 6, 230, 83, 13, 49, 28, 43, 6, + 70, 13, 49, 28, 43, 6, 223, 7, 13, 49, 28, 43, 6, 222, 125, 13, 49, 28, + 43, 6, 170, 13, 49, 28, 43, 6, 218, 147, 13, 49, 28, 43, 6, 215, 47, 13, + 49, 28, 43, 6, 74, 13, 49, 28, 43, 6, 210, 226, 13, 49, 28, 43, 6, 208, + 97, 13, 49, 28, 43, 6, 148, 13, 49, 28, 43, 6, 206, 3, 13, 49, 28, 43, 6, + 200, 39, 13, 49, 28, 43, 6, 69, 13, 49, 28, 43, 6, 196, 8, 13, 49, 28, + 43, 6, 193, 221, 13, 49, 28, 43, 6, 192, 235, 13, 49, 28, 43, 6, 192, + 159, 13, 49, 28, 43, 6, 191, 166, 13, 49, 28, 43, 2, 65, 13, 49, 28, 43, + 2, 250, 70, 13, 49, 28, 43, 2, 247, 145, 13, 49, 28, 43, 2, 238, 80, 13, + 49, 28, 43, 2, 73, 13, 49, 28, 43, 2, 233, 134, 13, 49, 28, 43, 2, 232, + 14, 13, 49, 28, 43, 2, 230, 83, 13, 49, 28, 43, 2, 70, 13, 49, 28, 43, 2, + 223, 7, 13, 49, 28, 43, 2, 222, 125, 13, 49, 28, 43, 2, 170, 13, 49, 28, + 43, 2, 218, 147, 13, 49, 28, 43, 2, 215, 47, 13, 49, 28, 43, 2, 74, 13, + 49, 28, 43, 2, 210, 226, 13, 49, 28, 43, 2, 208, 97, 13, 49, 28, 43, 2, + 148, 13, 49, 28, 43, 2, 206, 3, 13, 49, 28, 43, 2, 200, 39, 13, 49, 28, + 43, 2, 69, 13, 49, 28, 43, 2, 196, 8, 13, 49, 28, 43, 2, 193, 221, 13, + 49, 28, 43, 2, 192, 235, 13, 49, 28, 43, 2, 192, 159, 13, 49, 28, 43, 2, + 191, 166, 13, 215, 200, 6, 65, 13, 215, 200, 6, 250, 70, 13, 215, 200, 6, + 247, 145, 13, 215, 200, 6, 238, 80, 13, 215, 200, 6, 73, 13, 215, 200, 6, + 233, 134, 13, 215, 200, 6, 232, 14, 13, 215, 200, 6, 230, 83, 13, 215, + 200, 6, 70, 13, 215, 200, 6, 223, 7, 13, 215, 200, 6, 222, 125, 13, 215, + 200, 6, 170, 13, 215, 200, 6, 218, 147, 13, 215, 200, 6, 215, 47, 13, + 215, 200, 6, 74, 13, 215, 200, 6, 210, 226, 13, 215, 200, 6, 208, 97, 13, + 215, 200, 6, 148, 13, 215, 200, 6, 206, 3, 13, 215, 200, 6, 200, 39, 13, + 215, 200, 6, 69, 13, 215, 200, 6, 196, 8, 13, 215, 200, 6, 193, 221, 13, + 215, 200, 6, 192, 235, 13, 215, 200, 6, 192, 159, 13, 215, 200, 6, 191, + 166, 13, 215, 200, 2, 65, 13, 215, 200, 2, 250, 70, 13, 215, 200, 2, 247, + 145, 13, 215, 200, 2, 238, 80, 13, 215, 200, 2, 73, 13, 215, 200, 2, 233, + 134, 13, 215, 200, 2, 232, 14, 13, 215, 200, 2, 230, 83, 13, 215, 200, 2, + 70, 13, 215, 200, 2, 223, 7, 13, 215, 200, 2, 222, 125, 13, 215, 200, 2, + 170, 13, 215, 200, 2, 218, 147, 13, 215, 200, 2, 215, 47, 13, 215, 200, + 2, 74, 13, 215, 200, 2, 210, 226, 13, 215, 200, 2, 208, 97, 13, 215, 200, + 2, 148, 13, 215, 200, 2, 206, 3, 13, 215, 200, 2, 200, 39, 13, 215, 200, + 2, 69, 13, 215, 200, 2, 196, 8, 13, 215, 200, 2, 193, 221, 13, 215, 200, + 2, 192, 235, 13, 215, 200, 2, 192, 159, 13, 215, 200, 2, 191, 166, 13, + 43, 2, 236, 95, 70, 13, 43, 2, 236, 95, 223, 7, 13, 28, 6, 251, 109, 13, + 28, 6, 248, 162, 13, 28, 6, 231, 174, 13, 28, 6, 237, 61, 13, 28, 6, 234, + 5, 13, 28, 6, 191, 76, 13, 28, 6, 233, 211, 13, 28, 6, 199, 10, 13, 28, + 6, 223, 55, 13, 28, 6, 222, 46, 13, 28, 6, 220, 7, 13, 28, 6, 215, 139, + 13, 28, 6, 212, 165, 13, 28, 6, 192, 207, 13, 28, 6, 211, 96, 13, 28, 6, + 209, 176, 13, 28, 6, 206, 254, 13, 28, 6, 199, 11, 113, 13, 28, 6, 202, + 191, 13, 28, 6, 199, 161, 13, 28, 6, 196, 66, 13, 28, 6, 209, 202, 13, + 28, 6, 243, 47, 13, 28, 6, 208, 169, 13, 28, 6, 211, 99, 13, 28, 214, + 231, 13, 28, 2, 251, 109, 13, 28, 2, 248, 162, 13, 28, 2, 231, 174, 13, + 28, 2, 237, 61, 13, 28, 2, 234, 5, 13, 28, 2, 191, 76, 13, 28, 2, 233, + 211, 13, 28, 2, 199, 10, 13, 28, 2, 223, 55, 13, 28, 2, 222, 46, 13, 28, + 2, 220, 7, 13, 28, 2, 215, 139, 13, 28, 2, 212, 165, 13, 28, 2, 192, 207, + 13, 28, 2, 211, 96, 13, 28, 2, 209, 176, 13, 28, 2, 206, 254, 13, 28, 2, + 52, 202, 191, 13, 28, 2, 202, 191, 13, 28, 2, 199, 161, 13, 28, 2, 196, + 66, 13, 28, 2, 209, 202, 13, 28, 2, 243, 47, 13, 28, 2, 208, 169, 13, 28, + 2, 211, 99, 13, 28, 210, 95, 236, 227, 13, 28, 234, 6, 113, 13, 28, 199, + 11, 113, 13, 28, 222, 47, 113, 13, 28, 209, 203, 113, 13, 28, 206, 255, + 113, 13, 28, 209, 177, 113, 13, 43, 6, 251, 109, 13, 43, 6, 248, 162, 13, + 43, 6, 231, 174, 13, 43, 6, 237, 61, 13, 43, 6, 234, 5, 13, 43, 6, 191, + 76, 13, 43, 6, 233, 211, 13, 43, 6, 199, 10, 13, 43, 6, 223, 55, 13, 43, + 6, 222, 46, 13, 43, 6, 220, 7, 13, 43, 6, 215, 139, 13, 43, 6, 212, 165, + 13, 43, 6, 192, 207, 13, 43, 6, 211, 96, 13, 43, 6, 209, 176, 13, 43, 6, + 206, 254, 13, 43, 6, 199, 11, 113, 13, 43, 6, 202, 191, 13, 43, 6, 199, + 161, 13, 43, 6, 196, 66, 13, 43, 6, 209, 202, 13, 43, 6, 243, 47, 13, 43, + 6, 208, 169, 13, 43, 6, 211, 99, 13, 43, 214, 231, 13, 43, 2, 251, 109, + 13, 43, 2, 248, 162, 13, 43, 2, 231, 174, 13, 43, 2, 237, 61, 13, 43, 2, + 234, 5, 13, 43, 2, 191, 76, 13, 43, 2, 233, 211, 13, 43, 2, 199, 10, 13, + 43, 2, 223, 55, 13, 43, 2, 222, 46, 13, 43, 2, 220, 7, 13, 43, 2, 215, + 139, 13, 43, 2, 212, 165, 13, 43, 2, 192, 207, 13, 43, 2, 211, 96, 13, + 43, 2, 209, 176, 13, 43, 2, 206, 254, 13, 43, 2, 52, 202, 191, 13, 43, 2, + 202, 191, 13, 43, 2, 199, 161, 13, 43, 2, 196, 66, 13, 43, 2, 209, 202, + 13, 43, 2, 243, 47, 13, 43, 2, 208, 169, 13, 43, 2, 211, 99, 13, 43, 210, + 95, 236, 227, 13, 43, 234, 6, 113, 13, 43, 199, 11, 113, 13, 43, 222, 47, + 113, 13, 43, 209, 203, 113, 13, 43, 206, 255, 113, 13, 43, 209, 177, 113, + 13, 28, 43, 6, 251, 109, 13, 28, 43, 6, 248, 162, 13, 28, 43, 6, 231, + 174, 13, 28, 43, 6, 237, 61, 13, 28, 43, 6, 234, 5, 13, 28, 43, 6, 191, + 76, 13, 28, 43, 6, 233, 211, 13, 28, 43, 6, 199, 10, 13, 28, 43, 6, 223, + 55, 13, 28, 43, 6, 222, 46, 13, 28, 43, 6, 220, 7, 13, 28, 43, 6, 215, + 139, 13, 28, 43, 6, 212, 165, 13, 28, 43, 6, 192, 207, 13, 28, 43, 6, + 211, 96, 13, 28, 43, 6, 209, 176, 13, 28, 43, 6, 206, 254, 13, 28, 43, 6, + 199, 11, 113, 13, 28, 43, 6, 202, 191, 13, 28, 43, 6, 199, 161, 13, 28, + 43, 6, 196, 66, 13, 28, 43, 6, 209, 202, 13, 28, 43, 6, 243, 47, 13, 28, + 43, 6, 208, 169, 13, 28, 43, 6, 211, 99, 13, 28, 43, 214, 231, 13, 28, + 43, 2, 251, 109, 13, 28, 43, 2, 248, 162, 13, 28, 43, 2, 231, 174, 13, + 28, 43, 2, 237, 61, 13, 28, 43, 2, 234, 5, 13, 28, 43, 2, 191, 76, 13, + 28, 43, 2, 233, 211, 13, 28, 43, 2, 199, 10, 13, 28, 43, 2, 223, 55, 13, + 28, 43, 2, 222, 46, 13, 28, 43, 2, 220, 7, 13, 28, 43, 2, 215, 139, 13, + 28, 43, 2, 212, 165, 13, 28, 43, 2, 192, 207, 13, 28, 43, 2, 211, 96, 13, + 28, 43, 2, 209, 176, 13, 28, 43, 2, 206, 254, 13, 28, 43, 2, 52, 202, + 191, 13, 28, 43, 2, 202, 191, 13, 28, 43, 2, 199, 161, 13, 28, 43, 2, + 196, 66, 13, 28, 43, 2, 209, 202, 13, 28, 43, 2, 243, 47, 13, 28, 43, 2, + 208, 169, 13, 28, 43, 2, 211, 99, 13, 28, 43, 210, 95, 236, 227, 13, 28, + 43, 234, 6, 113, 13, 28, 43, 199, 11, 113, 13, 28, 43, 222, 47, 113, 13, + 28, 43, 209, 203, 113, 13, 28, 43, 206, 255, 113, 13, 28, 43, 209, 177, + 113, 13, 49, 28, 6, 251, 109, 13, 49, 28, 6, 248, 162, 13, 49, 28, 6, + 231, 174, 13, 49, 28, 6, 237, 61, 13, 49, 28, 6, 234, 5, 13, 49, 28, 6, + 191, 76, 13, 49, 28, 6, 233, 211, 13, 49, 28, 6, 199, 10, 13, 49, 28, 6, + 223, 55, 13, 49, 28, 6, 222, 46, 13, 49, 28, 6, 220, 7, 13, 49, 28, 6, + 215, 139, 13, 49, 28, 6, 212, 165, 13, 49, 28, 6, 192, 207, 13, 49, 28, + 6, 211, 96, 13, 49, 28, 6, 209, 176, 13, 49, 28, 6, 206, 254, 13, 49, 28, + 6, 199, 11, 113, 13, 49, 28, 6, 202, 191, 13, 49, 28, 6, 199, 161, 13, + 49, 28, 6, 196, 66, 13, 49, 28, 6, 209, 202, 13, 49, 28, 6, 243, 47, 13, + 49, 28, 6, 208, 169, 13, 49, 28, 6, 211, 99, 13, 49, 28, 214, 231, 13, + 49, 28, 2, 251, 109, 13, 49, 28, 2, 248, 162, 13, 49, 28, 2, 231, 174, + 13, 49, 28, 2, 237, 61, 13, 49, 28, 2, 234, 5, 13, 49, 28, 2, 191, 76, + 13, 49, 28, 2, 233, 211, 13, 49, 28, 2, 199, 10, 13, 49, 28, 2, 223, 55, + 13, 49, 28, 2, 222, 46, 13, 49, 28, 2, 220, 7, 13, 49, 28, 2, 215, 139, + 13, 49, 28, 2, 212, 165, 13, 49, 28, 2, 192, 207, 13, 49, 28, 2, 211, 96, + 13, 49, 28, 2, 209, 176, 13, 49, 28, 2, 206, 254, 13, 49, 28, 2, 52, 202, + 191, 13, 49, 28, 2, 202, 191, 13, 49, 28, 2, 199, 161, 13, 49, 28, 2, + 196, 66, 13, 49, 28, 2, 209, 202, 13, 49, 28, 2, 243, 47, 13, 49, 28, 2, + 208, 169, 13, 49, 28, 2, 211, 99, 13, 49, 28, 210, 95, 236, 227, 13, 49, + 28, 234, 6, 113, 13, 49, 28, 199, 11, 113, 13, 49, 28, 222, 47, 113, 13, + 49, 28, 209, 203, 113, 13, 49, 28, 206, 255, 113, 13, 49, 28, 209, 177, + 113, 13, 49, 28, 43, 6, 251, 109, 13, 49, 28, 43, 6, 248, 162, 13, 49, + 28, 43, 6, 231, 174, 13, 49, 28, 43, 6, 237, 61, 13, 49, 28, 43, 6, 234, + 5, 13, 49, 28, 43, 6, 191, 76, 13, 49, 28, 43, 6, 233, 211, 13, 49, 28, + 43, 6, 199, 10, 13, 49, 28, 43, 6, 223, 55, 13, 49, 28, 43, 6, 222, 46, + 13, 49, 28, 43, 6, 220, 7, 13, 49, 28, 43, 6, 215, 139, 13, 49, 28, 43, + 6, 212, 165, 13, 49, 28, 43, 6, 192, 207, 13, 49, 28, 43, 6, 211, 96, 13, + 49, 28, 43, 6, 209, 176, 13, 49, 28, 43, 6, 206, 254, 13, 49, 28, 43, 6, + 199, 11, 113, 13, 49, 28, 43, 6, 202, 191, 13, 49, 28, 43, 6, 199, 161, + 13, 49, 28, 43, 6, 196, 66, 13, 49, 28, 43, 6, 209, 202, 13, 49, 28, 43, + 6, 243, 47, 13, 49, 28, 43, 6, 208, 169, 13, 49, 28, 43, 6, 211, 99, 13, + 49, 28, 43, 214, 231, 13, 49, 28, 43, 2, 251, 109, 13, 49, 28, 43, 2, + 248, 162, 13, 49, 28, 43, 2, 231, 174, 13, 49, 28, 43, 2, 237, 61, 13, + 49, 28, 43, 2, 234, 5, 13, 49, 28, 43, 2, 191, 76, 13, 49, 28, 43, 2, + 233, 211, 13, 49, 28, 43, 2, 199, 10, 13, 49, 28, 43, 2, 223, 55, 13, 49, + 28, 43, 2, 222, 46, 13, 49, 28, 43, 2, 220, 7, 13, 49, 28, 43, 2, 215, + 139, 13, 49, 28, 43, 2, 212, 165, 13, 49, 28, 43, 2, 192, 207, 13, 49, + 28, 43, 2, 211, 96, 13, 49, 28, 43, 2, 209, 176, 13, 49, 28, 43, 2, 206, + 254, 13, 49, 28, 43, 2, 52, 202, 191, 13, 49, 28, 43, 2, 202, 191, 13, + 49, 28, 43, 2, 199, 161, 13, 49, 28, 43, 2, 196, 66, 13, 49, 28, 43, 2, + 209, 202, 13, 49, 28, 43, 2, 243, 47, 13, 49, 28, 43, 2, 208, 169, 13, + 49, 28, 43, 2, 211, 99, 13, 49, 28, 43, 210, 95, 236, 227, 13, 49, 28, + 43, 234, 6, 113, 13, 49, 28, 43, 199, 11, 113, 13, 49, 28, 43, 222, 47, + 113, 13, 49, 28, 43, 209, 203, 113, 13, 49, 28, 43, 206, 255, 113, 13, + 49, 28, 43, 209, 177, 113, 13, 28, 6, 236, 221, 13, 28, 2, 236, 221, 13, + 28, 17, 191, 77, 13, 28, 17, 108, 13, 28, 17, 109, 13, 28, 17, 139, 13, + 28, 17, 137, 13, 28, 17, 153, 13, 28, 17, 173, 13, 28, 17, 181, 13, 28, + 17, 176, 13, 28, 17, 184, 13, 235, 85, 17, 191, 77, 13, 235, 85, 17, 108, + 13, 235, 85, 17, 109, 13, 235, 85, 17, 139, 13, 235, 85, 17, 137, 13, + 235, 85, 17, 153, 13, 235, 85, 17, 173, 13, 235, 85, 17, 181, 13, 235, + 85, 17, 176, 13, 235, 85, 17, 184, 13, 49, 17, 191, 77, 13, 49, 17, 108, + 13, 49, 17, 109, 13, 49, 17, 139, 13, 49, 17, 137, 13, 49, 17, 153, 13, + 49, 17, 173, 13, 49, 17, 181, 13, 49, 17, 176, 13, 49, 17, 184, 13, 49, + 28, 17, 191, 77, 13, 49, 28, 17, 108, 13, 49, 28, 17, 109, 13, 49, 28, + 17, 139, 13, 49, 28, 17, 137, 13, 49, 28, 17, 153, 13, 49, 28, 17, 173, + 13, 49, 28, 17, 181, 13, 49, 28, 17, 176, 13, 49, 28, 17, 184, 13, 215, + 200, 17, 191, 77, 13, 215, 200, 17, 108, 13, 215, 200, 17, 109, 13, 215, + 200, 17, 139, 13, 215, 200, 17, 137, 13, 215, 200, 17, 153, 13, 215, 200, + 17, 173, 13, 215, 200, 17, 181, 13, 215, 200, 17, 176, 13, 215, 200, 17, + 184, 23, 150, 223, 120, 23, 230, 17, 223, 120, 23, 230, 13, 223, 120, 23, + 230, 2, 223, 120, 23, 230, 6, 223, 120, 23, 230, 19, 223, 120, 23, 150, + 140, 248, 173, 23, 230, 17, 140, 248, 173, 23, 150, 174, 196, 101, 140, + 248, 173, 23, 150, 140, 207, 142, 221, 46, 23, 150, 140, 238, 130, 23, + 150, 140, 229, 92, 23, 150, 140, 229, 93, 218, 219, 23, 230, 17, 140, + 229, 94, 23, 150, 140, 216, 66, 23, 230, 17, 140, 216, 66, 23, 150, 140, + 82, 248, 173, 23, 150, 140, 82, 207, 142, 221, 45, 23, 150, 140, 82, 229, + 92, 23, 150, 140, 132, 82, 229, 92, 23, 150, 140, 229, 93, 82, 196, 73, + 23, 150, 140, 82, 238, 254, 23, 150, 140, 82, 238, 255, 140, 248, 173, + 23, 150, 140, 82, 238, 255, 82, 248, 173, 23, 150, 140, 82, 238, 255, + 238, 130, 23, 150, 140, 82, 238, 255, 229, 92, 23, 150, 140, 82, 238, + 166, 23, 230, 17, 140, 82, 238, 166, 23, 150, 82, 248, 174, 138, 223, + 120, 23, 150, 140, 248, 174, 138, 216, 66, 23, 150, 140, 82, 198, 207, + 23, 230, 17, 140, 82, 198, 207, 23, 150, 140, 82, 201, 48, 174, 248, 173, + 23, 150, 140, 82, 248, 174, 174, 201, 47, 23, 150, 140, 82, 174, 248, + 173, 23, 150, 140, 82, 229, 93, 201, 194, 174, 202, 202, 23, 150, 140, + 132, 82, 229, 93, 174, 202, 202, 23, 150, 140, 132, 82, 229, 93, 174, + 238, 254, 23, 150, 140, 229, 93, 82, 132, 174, 202, 202, 23, 150, 140, + 82, 132, 201, 194, 174, 232, 94, 23, 150, 140, 82, 174, 238, 130, 23, + 150, 140, 82, 174, 242, 217, 23, 150, 140, 82, 174, 228, 217, 23, 150, + 140, 82, 174, 229, 92, 23, 150, 174, 248, 160, 140, 82, 201, 47, 23, 150, + 140, 82, 238, 255, 174, 202, 202, 23, 150, 140, 82, 238, 255, 174, 202, + 203, 238, 254, 23, 150, 140, 82, 238, 255, 174, 202, 203, 248, 173, 23, + 150, 82, 174, 228, 218, 140, 196, 73, 23, 150, 140, 174, 228, 218, 82, + 196, 73, 23, 150, 140, 82, 238, 255, 229, 93, 174, 202, 202, 23, 150, + 140, 82, 238, 167, 174, 202, 202, 23, 150, 140, 82, 238, 255, 174, 232, + 94, 23, 150, 140, 82, 238, 255, 238, 131, 174, 232, 94, 23, 150, 82, 174, + 238, 131, 140, 196, 73, 23, 150, 140, 174, 238, 131, 82, 196, 73, 23, + 150, 82, 174, 47, 140, 196, 73, 23, 150, 82, 174, 47, 140, 229, 92, 23, + 150, 140, 174, 251, 63, 211, 5, 82, 196, 73, 23, 150, 140, 174, 251, 63, + 223, 135, 82, 196, 73, 23, 150, 140, 174, 47, 82, 196, 73, 23, 150, 140, + 82, 174, 238, 255, 229, 92, 23, 150, 140, 82, 174, 251, 63, 211, 4, 23, + 150, 140, 82, 174, 251, 62, 23, 150, 82, 174, 251, 63, 211, 5, 140, 196, + 73, 23, 150, 82, 174, 251, 63, 211, 5, 140, 238, 166, 23, 150, 82, 174, + 251, 63, 140, 196, 73, 23, 150, 140, 174, 228, 218, 82, 229, 92, 23, 230, + 8, 232, 90, 232, 206, 23, 230, 8, 232, 90, 232, 207, 248, 173, 23, 230, + 8, 232, 90, 232, 207, 229, 92, 23, 230, 8, 232, 90, 232, 207, 238, 254, + 23, 230, 8, 232, 90, 232, 207, 238, 255, 201, 204, 23, 230, 15, 232, 90, + 232, 207, 238, 254, 23, 150, 232, 90, 232, 207, 238, 255, 248, 173, 23, + 230, 6, 232, 90, 232, 207, 238, 254, 23, 230, 8, 232, 185, 232, 207, 201, + 193, 23, 230, 8, 229, 181, 232, 185, 232, 207, 201, 193, 23, 230, 8, 232, + 185, 232, 207, 201, 194, 232, 90, 248, 173, 23, 230, 8, 229, 181, 232, + 185, 232, 207, 201, 194, 232, 90, 248, 173, 23, 230, 8, 232, 185, 232, + 207, 201, 194, 248, 173, 23, 230, 8, 229, 181, 232, 185, 232, 207, 201, + 194, 248, 173, 23, 230, 8, 232, 185, 232, 207, 201, 194, 174, 232, 94, + 23, 230, 13, 232, 185, 232, 207, 201, 193, 23, 230, 13, 232, 185, 232, + 207, 201, 194, 211, 65, 23, 230, 6, 232, 185, 232, 207, 201, 194, 211, + 65, 23, 230, 2, 232, 185, 232, 207, 201, 193, 23, 230, 8, 232, 185, 232, + 207, 201, 194, 229, 92, 23, 230, 8, 232, 185, 232, 207, 201, 194, 229, + 93, 174, 202, 202, 23, 230, 8, 232, 185, 232, 207, 201, 194, 229, 93, + 213, 31, 198, 207, 23, 230, 7, 23, 230, 8, 248, 160, 210, 173, 233, 54, + 23, 230, 8, 229, 180, 23, 230, 8, 174, 202, 202, 23, 230, 8, 229, 181, + 174, 202, 202, 23, 230, 8, 174, 248, 173, 23, 230, 8, 174, 232, 94, 23, + 230, 8, 201, 205, 140, 174, 202, 202, 23, 230, 8, 201, 205, 246, 229, 23, + 230, 8, 201, 205, 246, 230, 174, 202, 202, 23, 230, 8, 201, 205, 246, + 230, 174, 202, 203, 248, 173, 23, 230, 8, 201, 205, 219, 58, 23, 230, 14, + 23, 230, 15, 174, 202, 202, 23, 230, 15, 213, 31, 198, 207, 23, 230, 15, + 174, 232, 94, 23, 230, 4, 238, 126, 23, 230, 3, 23, 230, 13, 211, 65, 23, + 230, 12, 23, 230, 13, 211, 66, 174, 202, 202, 23, 230, 13, 174, 202, 202, + 23, 230, 13, 211, 66, 213, 31, 198, 207, 23, 230, 13, 213, 31, 198, 207, + 23, 230, 13, 211, 66, 174, 232, 94, 23, 230, 13, 174, 232, 94, 23, 230, + 11, 211, 65, 23, 230, 10, 23, 230, 16, 23, 230, 1, 23, 230, 2, 174, 202, + 202, 23, 230, 2, 213, 31, 198, 207, 23, 230, 2, 174, 232, 94, 23, 230, 6, + 211, 65, 23, 230, 6, 211, 66, 174, 232, 94, 23, 230, 5, 23, 230, 6, 202, + 65, 23, 230, 6, 211, 66, 174, 202, 202, 23, 230, 6, 174, 202, 202, 23, + 230, 6, 211, 66, 213, 31, 198, 207, 23, 230, 6, 213, 31, 198, 207, 23, + 230, 6, 174, 202, 203, 198, 30, 223, 120, 23, 230, 6, 174, 248, 160, 82, + 206, 183, 23, 230, 18, 23, 150, 140, 82, 206, 183, 23, 230, 17, 140, 82, + 206, 183, 23, 230, 6, 140, 82, 206, 183, 23, 230, 19, 140, 82, 206, 183, + 23, 230, 6, 219, 58, 23, 150, 140, 82, 206, 184, 248, 173, 23, 150, 140, + 82, 206, 184, 238, 254, 23, 230, 6, 140, 82, 206, 184, 238, 254, 23, 150, + 219, 59, 235, 79, 23, 150, 219, 59, 143, 206, 178, 201, 47, 23, 150, 219, + 59, 143, 206, 178, 238, 115, 23, 150, 219, 59, 143, 211, 16, 242, 217, + 23, 150, 219, 59, 196, 73, 23, 150, 174, 196, 101, 219, 59, 196, 73, 23, + 230, 17, 219, 59, 196, 73, 23, 230, 2, 219, 59, 196, 73, 23, 230, 19, + 219, 59, 196, 73, 23, 150, 219, 59, 207, 142, 221, 46, 23, 150, 219, 59, + 248, 173, 23, 150, 219, 59, 198, 31, 198, 207, 23, 150, 219, 59, 198, + 207, 23, 230, 6, 219, 59, 198, 207, 23, 150, 219, 59, 140, 198, 207, 23, + 230, 6, 219, 59, 140, 198, 207, 23, 230, 19, 219, 59, 140, 174, 140, 174, + 211, 4, 23, 230, 19, 219, 59, 140, 174, 140, 198, 207, 23, 150, 219, 59, + 223, 120, 23, 230, 17, 219, 59, 223, 120, 23, 230, 6, 219, 59, 223, 120, + 23, 230, 19, 219, 59, 223, 120, 23, 150, 140, 82, 219, 58, 23, 230, 17, + 140, 82, 219, 58, 23, 230, 6, 140, 82, 219, 58, 23, 230, 6, 206, 183, 23, + 230, 19, 140, 82, 219, 58, 23, 150, 140, 82, 238, 171, 219, 58, 23, 230, + 17, 140, 82, 238, 171, 219, 58, 23, 150, 206, 184, 235, 79, 23, 230, 6, + 206, 184, 143, 140, 174, 228, 219, 216, 66, 23, 230, 19, 206, 184, 143, + 82, 174, 140, 238, 170, 23, 150, 206, 184, 196, 73, 23, 150, 206, 184, + 207, 142, 221, 46, 23, 150, 206, 184, 219, 58, 23, 230, 17, 206, 184, + 219, 58, 23, 230, 2, 206, 184, 219, 58, 23, 230, 19, 206, 184, 219, 58, + 23, 150, 206, 184, 216, 66, 23, 150, 206, 184, 82, 238, 254, 23, 150, + 206, 184, 82, 207, 142, 221, 45, 23, 150, 206, 184, 223, 120, 23, 150, + 206, 184, 198, 207, 23, 230, 4, 206, 184, 198, 207, 23, 150, 140, 206, + 184, 219, 58, 23, 230, 17, 140, 206, 184, 219, 58, 23, 230, 11, 140, 206, + 184, 219, 59, 211, 93, 23, 230, 4, 140, 206, 184, 219, 59, 211, 4, 23, + 230, 4, 140, 206, 184, 219, 59, 223, 134, 23, 230, 4, 140, 206, 184, 219, + 59, 196, 100, 23, 230, 13, 140, 206, 184, 219, 58, 23, 230, 6, 140, 206, + 184, 219, 58, 23, 230, 19, 140, 206, 184, 219, 59, 211, 4, 23, 230, 19, + 140, 206, 184, 219, 58, 23, 150, 82, 235, 79, 23, 230, 6, 216, 66, 23, + 150, 82, 196, 73, 23, 230, 17, 82, 196, 73, 23, 150, 82, 207, 142, 221, + 46, 23, 150, 82, 132, 174, 202, 202, 23, 230, 4, 82, 198, 207, 23, 150, + 82, 174, 219, 58, 23, 150, 82, 219, 58, 23, 150, 82, 206, 184, 219, 58, + 23, 230, 17, 82, 206, 184, 219, 58, 23, 230, 11, 82, 206, 184, 219, 59, + 211, 93, 23, 230, 13, 82, 206, 184, 219, 58, 23, 230, 6, 82, 206, 184, + 219, 58, 23, 230, 19, 82, 206, 184, 219, 59, 211, 4, 23, 230, 19, 82, + 206, 184, 219, 59, 223, 134, 23, 230, 19, 82, 206, 184, 219, 58, 23, 230, + 17, 82, 206, 184, 219, 59, 248, 173, 23, 230, 15, 82, 206, 184, 219, 59, + 238, 254, 23, 230, 15, 82, 206, 184, 219, 59, 238, 255, 202, 202, 23, + 230, 4, 82, 206, 184, 219, 59, 238, 255, 211, 4, 23, 230, 4, 82, 206, + 184, 219, 59, 238, 255, 223, 134, 23, 230, 4, 82, 206, 184, 219, 59, 238, + 254, 23, 230, 6, 140, 229, 92, 23, 150, 140, 174, 202, 202, 23, 230, 6, + 140, 174, 202, 202, 23, 150, 140, 174, 202, 203, 174, 236, 249, 23, 150, + 140, 174, 202, 203, 174, 238, 254, 23, 150, 140, 174, 202, 203, 174, 248, + 173, 23, 150, 140, 174, 202, 203, 140, 248, 173, 23, 150, 140, 174, 202, + 203, 248, 32, 248, 173, 23, 150, 140, 174, 202, 203, 140, 229, 94, 23, + 150, 140, 174, 232, 95, 140, 201, 47, 23, 150, 140, 174, 232, 95, 140, + 248, 173, 23, 150, 140, 174, 106, 23, 150, 140, 174, 238, 126, 23, 150, + 140, 174, 238, 118, 174, 223, 89, 23, 230, 15, 140, 174, 238, 118, 174, + 223, 89, 23, 150, 140, 174, 238, 118, 174, 196, 100, 23, 150, 140, 174, + 242, 218, 23, 230, 13, 140, 198, 207, 23, 230, 13, 140, 174, 211, 65, 23, + 230, 6, 140, 174, 211, 65, 23, 230, 6, 140, 174, 219, 244, 23, 230, 6, + 140, 198, 207, 23, 230, 6, 140, 174, 202, 65, 23, 230, 19, 140, 174, 211, + 4, 23, 230, 19, 140, 174, 223, 134, 23, 230, 19, 140, 198, 207, 23, 150, + 198, 207, 23, 150, 174, 229, 180, 23, 150, 174, 202, 203, 236, 249, 23, + 150, 174, 202, 203, 238, 254, 23, 150, 174, 202, 203, 248, 173, 23, 150, + 174, 232, 94, 23, 150, 174, 248, 160, 140, 216, 66, 23, 150, 174, 248, + 160, 82, 206, 183, 23, 150, 174, 248, 160, 206, 184, 219, 58, 23, 150, + 174, 196, 101, 103, 232, 206, 23, 150, 174, 138, 103, 232, 206, 23, 150, + 174, 196, 101, 115, 232, 206, 23, 150, 174, 196, 101, 232, 90, 232, 206, + 23, 150, 174, 138, 232, 90, 207, 142, 221, 45, 23, 230, 9, 23, 150, 229, + 180, 23, 198, 32, 202, 164, 23, 198, 32, 215, 113, 23, 198, 32, 248, 159, + 23, 230, 181, 202, 164, 23, 230, 181, 215, 113, 23, 230, 181, 248, 159, + 23, 201, 28, 202, 164, 23, 201, 28, 215, 113, 23, 201, 28, 248, 159, 23, + 247, 226, 202, 164, 23, 247, 226, 215, 113, 23, 247, 226, 248, 159, 23, + 206, 55, 202, 164, 23, 206, 55, 215, 113, 23, 206, 55, 248, 159, 23, 200, + 166, 200, 72, 23, 200, 166, 248, 159, 23, 201, 181, 219, 245, 202, 164, + 23, 201, 181, 2, 202, 164, 23, 201, 181, 219, 245, 215, 113, 23, 201, + 181, 2, 215, 113, 23, 201, 181, 204, 1, 23, 232, 157, 219, 245, 202, 164, + 23, 232, 157, 2, 202, 164, 23, 232, 157, 219, 245, 215, 113, 23, 232, + 157, 2, 215, 113, 23, 232, 157, 204, 1, 23, 201, 181, 232, 157, 251, 103, + 23, 215, 156, 132, 143, 219, 244, 23, 215, 156, 132, 143, 202, 65, 23, + 215, 156, 132, 204, 1, 23, 215, 156, 143, 204, 1, 23, 215, 156, 132, 143, + 251, 104, 219, 244, 23, 215, 156, 132, 143, 251, 104, 202, 65, 23, 215, + 156, 202, 203, 118, 202, 203, 205, 79, 23, 215, 155, 232, 212, 238, 244, + 23, 215, 157, 232, 212, 238, 244, 23, 215, 155, 202, 165, 201, 48, 202, + 65, 23, 215, 155, 202, 165, 201, 48, 216, 193, 23, 215, 155, 202, 165, + 201, 48, 219, 244, 23, 215, 155, 202, 165, 201, 48, 219, 242, 23, 215, + 155, 202, 165, 193, 4, 232, 160, 23, 215, 155, 54, 201, 47, 23, 215, 155, + 54, 193, 4, 232, 160, 23, 215, 155, 54, 251, 103, 23, 215, 155, 54, 251, + 104, 193, 4, 232, 160, 23, 215, 155, 238, 170, 23, 215, 155, 197, 221, + 201, 48, 215, 159, 23, 215, 155, 197, 221, 193, 4, 232, 160, 23, 215, + 155, 197, 221, 251, 103, 23, 215, 155, 197, 221, 251, 104, 193, 4, 232, + 160, 23, 215, 155, 248, 178, 202, 65, 23, 215, 155, 248, 178, 216, 193, + 23, 215, 155, 248, 178, 219, 244, 23, 215, 155, 238, 211, 202, 65, 23, + 215, 155, 238, 211, 216, 193, 23, 215, 155, 238, 211, 219, 244, 23, 215, + 155, 238, 211, 206, 115, 23, 215, 155, 243, 78, 202, 65, 23, 215, 155, + 243, 78, 216, 193, 23, 215, 155, 243, 78, 219, 244, 23, 215, 155, 111, + 202, 65, 23, 215, 155, 111, 216, 193, 23, 215, 155, 111, 219, 244, 23, + 215, 155, 191, 21, 202, 65, 23, 215, 155, 191, 21, 216, 193, 23, 215, + 155, 191, 21, 219, 244, 23, 215, 155, 210, 48, 202, 65, 23, 215, 155, + 210, 48, 216, 193, 23, 215, 155, 210, 48, 219, 244, 23, 197, 255, 206, + 113, 202, 164, 23, 197, 255, 206, 113, 235, 89, 23, 197, 255, 206, 113, + 251, 103, 23, 197, 255, 206, 114, 202, 164, 23, 197, 255, 206, 114, 235, + 89, 23, 197, 255, 206, 114, 251, 103, 23, 197, 255, 203, 139, 23, 197, + 255, 250, 201, 201, 213, 202, 164, 23, 197, 255, 250, 201, 201, 213, 235, + 89, 23, 197, 255, 250, 201, 201, 213, 197, 220, 23, 215, 158, 250, 89, + 202, 65, 23, 215, 158, 250, 89, 216, 193, 23, 215, 158, 250, 89, 219, + 244, 23, 215, 158, 250, 89, 219, 242, 23, 215, 158, 198, 26, 202, 65, 23, + 215, 158, 198, 26, 216, 193, 23, 215, 158, 198, 26, 219, 244, 23, 215, + 158, 198, 26, 219, 242, 23, 215, 158, 248, 160, 250, 89, 202, 65, 23, + 215, 158, 248, 160, 250, 89, 216, 193, 23, 215, 158, 248, 160, 250, 89, + 219, 244, 23, 215, 158, 248, 160, 250, 89, 219, 242, 23, 215, 158, 248, + 160, 198, 26, 202, 65, 23, 215, 158, 248, 160, 198, 26, 216, 193, 23, + 215, 158, 248, 160, 198, 26, 219, 244, 23, 215, 158, 248, 160, 198, 26, + 219, 242, 23, 215, 157, 202, 165, 201, 48, 202, 65, 23, 215, 157, 202, + 165, 201, 48, 216, 193, 23, 215, 157, 202, 165, 201, 48, 219, 244, 23, + 215, 157, 202, 165, 201, 48, 219, 242, 23, 215, 157, 202, 165, 193, 4, + 232, 160, 23, 215, 157, 54, 201, 47, 23, 215, 157, 54, 193, 4, 232, 160, + 23, 215, 157, 54, 251, 103, 23, 215, 157, 54, 251, 104, 193, 4, 232, 160, + 23, 215, 157, 238, 170, 23, 215, 157, 197, 221, 201, 48, 215, 159, 23, + 215, 157, 197, 221, 193, 4, 232, 160, 23, 215, 157, 197, 221, 251, 104, + 215, 159, 23, 215, 157, 197, 221, 251, 104, 193, 4, 232, 160, 23, 215, + 157, 248, 177, 23, 215, 157, 238, 211, 202, 65, 23, 215, 157, 238, 211, + 216, 193, 23, 215, 157, 238, 211, 219, 244, 23, 215, 157, 243, 77, 23, + 215, 157, 111, 202, 65, 23, 215, 157, 111, 216, 193, 23, 215, 157, 111, + 219, 244, 23, 215, 157, 191, 21, 202, 65, 23, 215, 157, 191, 21, 216, + 193, 23, 215, 157, 191, 21, 219, 244, 23, 215, 157, 210, 48, 202, 65, 23, + 215, 157, 210, 48, 216, 193, 23, 215, 157, 210, 48, 219, 244, 23, 198, 0, + 206, 114, 202, 164, 23, 198, 0, 206, 114, 235, 89, 23, 198, 0, 206, 114, + 251, 103, 23, 198, 0, 206, 113, 202, 164, 23, 198, 0, 206, 113, 235, 89, + 23, 198, 0, 206, 113, 251, 103, 23, 198, 0, 203, 139, 23, 215, 155, 238, + 118, 208, 18, 202, 65, 23, 215, 155, 238, 118, 208, 18, 216, 193, 23, + 215, 155, 238, 118, 208, 18, 219, 244, 23, 215, 155, 238, 118, 208, 18, + 219, 242, 23, 215, 155, 238, 118, 230, 34, 202, 65, 23, 215, 155, 238, + 118, 230, 34, 216, 193, 23, 215, 155, 238, 118, 230, 34, 219, 244, 23, + 215, 155, 238, 118, 230, 34, 219, 242, 23, 215, 155, 238, 118, 198, 213, + 242, 219, 202, 65, 23, 215, 155, 238, 118, 198, 213, 242, 219, 216, 193, + 23, 215, 155, 228, 112, 202, 65, 23, 215, 155, 228, 112, 216, 193, 23, + 215, 155, 228, 112, 219, 244, 23, 215, 155, 218, 237, 202, 65, 23, 215, + 155, 218, 237, 216, 193, 23, 215, 155, 218, 237, 219, 244, 23, 215, 155, + 218, 237, 2, 235, 89, 23, 215, 155, 193, 137, 238, 118, 54, 202, 65, 23, + 215, 155, 193, 137, 238, 118, 54, 216, 193, 23, 215, 155, 193, 137, 238, + 118, 54, 219, 244, 23, 215, 155, 193, 137, 238, 118, 197, 221, 202, 65, + 23, 215, 155, 193, 137, 238, 118, 197, 221, 216, 193, 23, 215, 155, 193, + 137, 238, 118, 197, 221, 219, 244, 23, 215, 155, 238, 118, 199, 20, 201, + 47, 23, 215, 155, 238, 116, 238, 171, 202, 65, 23, 215, 155, 238, 116, + 238, 171, 216, 193, 23, 206, 113, 202, 164, 23, 206, 113, 235, 89, 23, + 206, 113, 251, 105, 23, 215, 155, 203, 139, 23, 215, 155, 238, 118, 229, + 84, 232, 59, 193, 164, 23, 215, 155, 228, 112, 229, 84, 232, 59, 193, + 164, 23, 215, 155, 218, 237, 229, 84, 232, 59, 193, 164, 23, 215, 155, + 193, 137, 229, 84, 232, 59, 193, 164, 23, 206, 113, 202, 165, 229, 84, + 232, 59, 193, 164, 23, 206, 113, 54, 229, 84, 232, 59, 193, 164, 23, 206, + 113, 251, 104, 229, 84, 232, 59, 193, 164, 23, 215, 155, 238, 118, 229, + 84, 243, 56, 23, 215, 155, 228, 112, 229, 84, 243, 56, 23, 215, 155, 218, + 237, 229, 84, 243, 56, 23, 215, 155, 193, 137, 229, 84, 243, 56, 23, 206, + 113, 202, 165, 229, 84, 243, 56, 23, 206, 113, 54, 229, 84, 243, 56, 23, + 206, 113, 251, 104, 229, 84, 243, 56, 23, 215, 155, 193, 137, 236, 250, + 210, 76, 202, 65, 23, 215, 155, 193, 137, 236, 250, 210, 76, 216, 193, + 23, 215, 155, 193, 137, 236, 250, 210, 76, 219, 244, 23, 215, 157, 238, + 118, 229, 84, 246, 239, 202, 65, 23, 215, 157, 238, 118, 229, 84, 246, + 239, 219, 244, 23, 215, 157, 228, 112, 229, 84, 246, 239, 2, 235, 89, 23, + 215, 157, 228, 112, 229, 84, 246, 239, 219, 245, 235, 89, 23, 215, 157, + 228, 112, 229, 84, 246, 239, 2, 197, 220, 23, 215, 157, 228, 112, 229, + 84, 246, 239, 219, 245, 197, 220, 23, 215, 157, 218, 237, 229, 84, 246, + 239, 2, 202, 164, 23, 215, 157, 218, 237, 229, 84, 246, 239, 219, 245, + 202, 164, 23, 215, 157, 218, 237, 229, 84, 246, 239, 2, 235, 89, 23, 215, + 157, 218, 237, 229, 84, 246, 239, 219, 245, 235, 89, 23, 215, 157, 193, + 137, 229, 84, 246, 239, 202, 65, 23, 215, 157, 193, 137, 229, 84, 246, + 239, 219, 244, 23, 206, 114, 202, 165, 229, 84, 246, 238, 23, 206, 114, + 54, 229, 84, 246, 238, 23, 206, 114, 251, 104, 229, 84, 246, 238, 23, + 215, 157, 238, 118, 229, 84, 232, 154, 202, 65, 23, 215, 157, 238, 118, + 229, 84, 232, 154, 219, 244, 23, 215, 157, 228, 112, 229, 84, 232, 154, + 2, 235, 89, 23, 215, 157, 228, 112, 229, 84, 232, 154, 219, 245, 235, 89, + 23, 215, 157, 228, 112, 229, 84, 232, 154, 197, 221, 2, 197, 220, 23, + 215, 157, 228, 112, 229, 84, 232, 154, 197, 221, 219, 245, 197, 220, 23, + 215, 157, 218, 237, 229, 84, 232, 154, 2, 202, 164, 23, 215, 157, 218, + 237, 229, 84, 232, 154, 219, 245, 202, 164, 23, 215, 157, 218, 237, 229, + 84, 232, 154, 2, 235, 89, 23, 215, 157, 218, 237, 229, 84, 232, 154, 219, + 245, 235, 89, 23, 215, 157, 193, 137, 229, 84, 232, 154, 202, 65, 23, + 215, 157, 193, 137, 229, 84, 232, 154, 219, 244, 23, 206, 114, 202, 165, + 229, 84, 232, 153, 23, 206, 114, 54, 229, 84, 232, 153, 23, 206, 114, + 251, 104, 229, 84, 232, 153, 23, 215, 157, 238, 118, 202, 65, 23, 215, + 157, 238, 118, 216, 193, 23, 215, 157, 238, 118, 219, 244, 23, 215, 157, + 238, 118, 219, 242, 23, 215, 157, 238, 118, 242, 30, 23, 215, 157, 228, + 112, 202, 65, 23, 215, 157, 218, 237, 202, 65, 23, 215, 157, 193, 137, + 202, 53, 23, 215, 157, 193, 137, 202, 65, 23, 215, 157, 193, 137, 219, + 244, 23, 206, 114, 202, 164, 23, 206, 114, 235, 89, 23, 206, 114, 251, + 103, 23, 215, 157, 203, 140, 210, 108, 23, 215, 155, 250, 201, 242, 219, + 2, 202, 164, 23, 215, 155, 250, 201, 242, 219, 216, 194, 202, 164, 23, + 215, 155, 250, 201, 242, 219, 2, 235, 89, 23, 215, 155, 250, 201, 242, + 219, 216, 194, 235, 89, 23, 215, 157, 250, 201, 242, 219, 229, 84, 193, + 165, 2, 202, 164, 23, 215, 157, 250, 201, 242, 219, 229, 84, 193, 165, + 216, 194, 202, 164, 23, 215, 157, 250, 201, 242, 219, 229, 84, 193, 165, + 219, 245, 202, 164, 23, 215, 157, 250, 201, 242, 219, 229, 84, 193, 165, + 2, 235, 89, 23, 215, 157, 250, 201, 242, 219, 229, 84, 193, 165, 216, + 194, 235, 89, 23, 215, 157, 250, 201, 242, 219, 229, 84, 193, 165, 219, + 245, 235, 89, 23, 215, 155, 193, 4, 242, 219, 232, 59, 202, 164, 23, 215, + 155, 193, 4, 242, 219, 232, 59, 235, 89, 23, 215, 157, 193, 4, 242, 219, + 229, 84, 193, 165, 202, 164, 23, 215, 157, 193, 4, 242, 219, 229, 84, + 193, 165, 235, 89, 23, 215, 155, 232, 212, 242, 216, 202, 164, 23, 215, + 155, 232, 212, 242, 216, 235, 89, 23, 215, 157, 232, 212, 242, 216, 229, + 84, 193, 165, 202, 164, 23, 215, 157, 232, 212, 242, 216, 229, 84, 193, + 165, 235, 89, 23, 234, 252, 250, 186, 202, 65, 23, 234, 252, 250, 186, + 219, 244, 23, 234, 252, 233, 32, 23, 234, 252, 202, 70, 23, 234, 252, + 199, 83, 23, 234, 252, 207, 58, 23, 234, 252, 202, 171, 23, 234, 252, + 202, 172, 251, 103, 23, 234, 252, 233, 184, 211, 17, 198, 141, 23, 234, + 252, 230, 192, 23, 229, 203, 23, 229, 204, 206, 188, 23, 229, 204, 215, + 155, 201, 47, 23, 229, 204, 215, 155, 198, 144, 23, 229, 204, 215, 157, + 201, 47, 23, 229, 204, 215, 155, 238, 117, 23, 229, 204, 215, 157, 238, + 117, 23, 229, 204, 215, 160, 242, 218, 23, 233, 63, 236, 188, 209, 18, + 213, 1, 232, 95, 198, 142, 23, 233, 63, 236, 188, 209, 18, 213, 1, 132, + 211, 46, 235, 79, 23, 233, 63, 236, 188, 209, 18, 213, 1, 132, 211, 46, + 143, 198, 142, 23, 233, 150, 201, 48, 196, 73, 23, 233, 150, 201, 48, + 214, 67, 23, 233, 150, 201, 48, 235, 79, 23, 235, 63, 233, 150, 214, 68, + 235, 79, 23, 235, 63, 233, 150, 143, 214, 67, 23, 235, 63, 233, 150, 132, + 214, 67, 23, 235, 63, 233, 150, 214, 68, 196, 73, 23, 232, 112, 214, 67, + 23, 232, 112, 238, 244, 23, 232, 112, 193, 7, 23, 233, 145, 211, 65, 23, + 233, 145, 201, 180, 23, 233, 145, 242, 170, 23, 233, 153, 248, 82, 202, + 164, 23, 233, 153, 248, 82, 215, 113, 23, 233, 145, 134, 211, 65, 23, + 233, 145, 193, 76, 211, 65, 23, 233, 145, 134, 242, 170, 23, 233, 145, + 193, 74, 215, 159, 23, 233, 153, 193, 57, 23, 233, 146, 196, 73, 23, 233, + 146, 235, 79, 23, 233, 146, 232, 140, 23, 233, 148, 201, 47, 23, 233, + 148, 201, 48, 235, 89, 23, 233, 148, 201, 48, 251, 103, 23, 233, 149, + 201, 47, 23, 233, 149, 201, 48, 235, 89, 23, 233, 149, 201, 48, 251, 103, + 23, 233, 148, 238, 115, 23, 233, 149, 238, 115, 23, 233, 148, 242, 213, + 23, 243, 73, 208, 148, 23, 243, 73, 214, 67, 23, 243, 73, 200, 213, 23, + 199, 84, 243, 73, 229, 103, 23, 199, 84, 243, 73, 216, 66, 23, 199, 84, + 243, 73, 218, 219, 23, 234, 165, 23, 213, 1, 214, 67, 23, 213, 1, 238, + 244, 23, 213, 1, 193, 5, 23, 213, 1, 193, 71, 23, 251, 174, 248, 68, 211, + 4, 23, 251, 174, 200, 212, 223, 134, 23, 251, 174, 248, 70, 2, 206, 112, + 23, 251, 174, 200, 214, 2, 206, 112, 23, 247, 247, 223, 106, 23, 247, + 247, 233, 173, 23, 215, 164, 242, 171, 214, 67, 23, 215, 164, 242, 171, + 232, 94, 23, 215, 164, 242, 171, 238, 244, 23, 215, 164, 202, 60, 23, + 215, 164, 202, 61, 193, 7, 23, 215, 164, 202, 61, 211, 65, 23, 215, 164, + 232, 55, 23, 215, 164, 232, 56, 193, 7, 23, 215, 164, 232, 56, 211, 65, + 23, 215, 164, 211, 66, 242, 218, 23, 215, 164, 211, 66, 232, 94, 23, 215, + 164, 211, 66, 193, 7, 23, 215, 164, 211, 66, 210, 253, 23, 215, 164, 211, + 66, 210, 254, 193, 7, 23, 215, 164, 211, 66, 210, 254, 192, 88, 23, 215, + 164, 211, 66, 207, 87, 23, 215, 164, 211, 66, 207, 88, 193, 7, 23, 215, + 164, 211, 66, 207, 88, 192, 88, 23, 215, 164, 221, 98, 23, 215, 164, 221, + 99, 232, 94, 23, 215, 164, 221, 99, 193, 7, 23, 215, 164, 199, 83, 23, + 215, 164, 199, 84, 232, 94, 23, 215, 164, 199, 84, 200, 213, 23, 219, 73, + 208, 212, 198, 82, 23, 219, 75, 110, 138, 196, 70, 23, 219, 75, 116, 138, + 218, 214, 23, 215, 164, 238, 209, 23, 215, 164, 193, 6, 202, 164, 23, + 215, 164, 193, 6, 235, 89, 23, 198, 57, 201, 69, 211, 5, 233, 34, 23, + 198, 57, 219, 118, 219, 72, 23, 198, 57, 198, 131, 248, 160, 219, 72, 23, + 198, 57, 198, 131, 198, 30, 223, 90, 215, 163, 23, 198, 57, 223, 90, 215, + 164, 207, 58, 23, 198, 57, 215, 154, 251, 199, 243, 74, 23, 198, 57, 246, + 230, 201, 69, 211, 4, 23, 198, 57, 246, 230, 223, 90, 215, 163, 23, 199, + 112, 23, 199, 113, 215, 159, 23, 199, 113, 211, 94, 198, 56, 23, 199, + 113, 211, 94, 198, 57, 215, 159, 23, 199, 113, 211, 94, 219, 72, 23, 199, + 113, 211, 94, 219, 73, 215, 159, 23, 199, 113, 248, 98, 219, 72, 23, 215, + 155, 222, 242, 23, 215, 157, 222, 242, 23, 214, 98, 23, 230, 45, 23, 233, + 176, 23, 203, 17, 229, 91, 201, 214, 23, 203, 17, 229, 91, 209, 16, 23, + 193, 163, 203, 17, 229, 91, 215, 162, 23, 232, 152, 203, 17, 229, 91, + 215, 162, 23, 203, 17, 198, 143, 232, 60, 193, 169, 23, 198, 38, 201, 48, + 201, 32, 23, 198, 38, 238, 116, 248, 177, 23, 198, 39, 197, 12, 23, 116, + 248, 57, 198, 143, 232, 60, 229, 91, 222, 168, 23, 219, 100, 242, 31, 23, + 219, 100, 219, 173, 23, 219, 100, 219, 172, 23, 219, 100, 219, 171, 23, + 219, 100, 219, 170, 23, 219, 100, 219, 169, 23, 219, 100, 219, 168, 23, + 219, 100, 219, 167, 23, 232, 211, 23, 219, 13, 201, 242, 23, 219, 14, + 201, 242, 23, 219, 16, 229, 176, 23, 219, 16, 193, 72, 23, 219, 16, 237, + 47, 23, 219, 16, 229, 204, 214, 98, 23, 219, 16, 198, 40, 23, 219, 16, + 219, 99, 236, 220, 23, 242, 26, 23, 232, 42, 201, 58, 23, 204, 20, 23, + 242, 35, 23, 210, 103, 23, 232, 221, 215, 227, 23, 232, 221, 215, 226, + 23, 232, 221, 215, 225, 23, 232, 221, 215, 224, 23, 232, 221, 215, 223, + 23, 206, 116, 215, 227, 23, 206, 116, 215, 226, 23, 206, 116, 215, 225, + 23, 206, 116, 215, 224, 23, 206, 116, 215, 223, 23, 206, 116, 215, 222, + 23, 206, 116, 215, 221, 23, 206, 116, 215, 220, 23, 206, 116, 215, 234, + 23, 206, 116, 215, 233, 23, 206, 116, 215, 232, 23, 206, 116, 215, 231, + 23, 206, 116, 215, 230, 23, 206, 116, 215, 229, 23, 206, 116, 215, 228, + 8, 2, 1, 232, 252, 236, 214, 4, 197, 224, 8, 2, 1, 207, 13, 27, 232, 14, + 8, 1, 2, 6, 152, 232, 14, 8, 2, 1, 207, 13, 222, 125, 8, 1, 2, 6, 220, + 119, 4, 248, 181, 8, 2, 1, 219, 139, 4, 207, 19, 106, 8, 2, 1, 152, 192, + 160, 4, 248, 181, 8, 2, 1, 207, 13, 234, 46, 8, 2, 1, 152, 207, 217, 4, + 177, 219, 189, 24, 207, 19, 106, 8, 2, 1, 200, 40, 4, 228, 219, 24, 207, + 19, 106, 8, 1, 207, 19, 242, 184, 4, 207, 19, 106, 8, 2, 1, 233, 227, 4, + 54, 164, 8, 2, 1, 233, 227, 4, 54, 249, 38, 24, 238, 128, 8, 2, 1, 152, + 200, 40, 4, 238, 128, 8, 1, 223, 65, 230, 231, 201, 59, 4, 238, 128, 8, + 1, 201, 31, 247, 146, 4, 238, 128, 8, 1, 2, 6, 152, 222, 125, 8, 2, 1, + 220, 119, 4, 232, 192, 8, 2, 1, 237, 25, 236, 214, 4, 210, 182, 106, 8, + 2, 1, 220, 119, 4, 248, 182, 24, 210, 182, 106, 8, 2, 1, 234, 47, 4, 210, + 182, 106, 8, 2, 1, 152, 207, 217, 4, 210, 182, 106, 8, 2, 1, 207, 217, 4, + 232, 193, 24, 210, 182, 106, 8, 2, 1, 199, 74, 236, 214, 4, 210, 182, + 106, 8, 2, 1, 233, 138, 4, 210, 182, 106, 8, 2, 1, 237, 25, 236, 214, 4, + 207, 19, 106, 8, 2, 1, 228, 44, 4, 201, 23, 24, 207, 19, 106, 8, 2, 1, + 186, 4, 207, 19, 106, 8, 2, 1, 199, 74, 236, 214, 4, 207, 19, 106, 8, 2, + 1, 247, 146, 4, 207, 19, 106, 8, 2, 1, 206, 4, 4, 238, 128, 33, 133, 1, + 250, 72, 33, 133, 1, 247, 204, 33, 133, 1, 195, 148, 33, 133, 1, 230, + 238, 33, 133, 1, 236, 124, 33, 133, 1, 192, 49, 33, 133, 1, 191, 55, 33, + 133, 1, 191, 82, 33, 133, 1, 223, 11, 33, 133, 1, 89, 223, 11, 33, 133, + 1, 70, 33, 133, 1, 236, 145, 33, 133, 1, 222, 67, 33, 133, 1, 219, 51, + 33, 133, 1, 215, 52, 33, 133, 1, 214, 196, 33, 133, 1, 211, 78, 33, 133, + 1, 209, 48, 33, 133, 1, 206, 174, 33, 133, 1, 202, 72, 33, 133, 1, 197, + 40, 33, 133, 1, 196, 120, 33, 133, 1, 232, 63, 33, 133, 1, 229, 156, 33, + 133, 1, 203, 3, 33, 133, 1, 197, 142, 33, 133, 1, 243, 6, 33, 133, 1, + 203, 160, 33, 133, 1, 192, 58, 33, 133, 1, 192, 60, 33, 133, 1, 192, 93, + 33, 133, 1, 191, 225, 33, 133, 1, 2, 191, 190, 33, 133, 1, 192, 12, 33, + 133, 1, 223, 54, 2, 191, 190, 33, 133, 1, 248, 127, 191, 190, 33, 133, 1, + 223, 54, 248, 127, 191, 190, 33, 133, 1, 232, 187, 212, 67, 208, 155, 90, + 1, 172, 212, 67, 208, 155, 90, 1, 197, 164, 212, 67, 208, 155, 90, 1, + 212, 186, 212, 67, 208, 155, 90, 1, 199, 247, 212, 67, 208, 155, 90, 1, + 144, 212, 67, 208, 155, 90, 1, 180, 212, 67, 208, 155, 90, 1, 192, 220, + 212, 67, 208, 155, 90, 1, 213, 98, 212, 67, 208, 155, 90, 1, 247, 112, + 212, 67, 208, 155, 90, 1, 171, 212, 67, 208, 155, 90, 1, 189, 212, 67, + 208, 155, 90, 1, 191, 123, 212, 67, 208, 155, 90, 1, 214, 152, 212, 67, + 208, 155, 90, 1, 212, 173, 212, 67, 208, 155, 90, 1, 157, 212, 67, 208, + 155, 90, 1, 237, 241, 212, 67, 208, 155, 90, 1, 212, 88, 212, 67, 208, + 155, 90, 1, 212, 231, 212, 67, 208, 155, 90, 1, 195, 185, 212, 67, 208, + 155, 90, 1, 212, 167, 212, 67, 208, 155, 90, 1, 197, 4, 212, 67, 208, + 155, 90, 1, 233, 68, 212, 67, 208, 155, 90, 1, 166, 212, 67, 208, 155, + 90, 1, 208, 89, 212, 67, 208, 155, 90, 1, 169, 212, 67, 208, 155, 90, 1, + 212, 233, 212, 67, 208, 155, 90, 1, 168, 212, 67, 208, 155, 90, 1, 192, + 175, 212, 67, 208, 155, 90, 1, 212, 235, 212, 67, 208, 155, 90, 1, 236, + 141, 212, 67, 208, 155, 90, 1, 212, 234, 212, 67, 208, 155, 90, 1, 230, + 48, 212, 67, 208, 155, 90, 1, 216, 2, 212, 67, 208, 155, 90, 1, 209, 102, + 212, 67, 208, 155, 90, 1, 231, 203, 212, 67, 208, 155, 90, 1, 206, 104, + 212, 67, 208, 155, 90, 1, 65, 212, 67, 208, 155, 90, 1, 252, 154, 212, + 67, 208, 155, 90, 1, 70, 212, 67, 208, 155, 90, 1, 69, 212, 67, 208, 155, + 90, 1, 74, 212, 67, 208, 155, 90, 1, 211, 76, 212, 67, 208, 155, 90, 1, + 73, 212, 67, 208, 155, 90, 1, 234, 145, 212, 67, 208, 155, 90, 1, 193, + 221, 212, 67, 208, 155, 90, 198, 65, 212, 67, 208, 155, 90, 198, 61, 212, + 67, 208, 155, 90, 198, 62, 212, 67, 208, 155, 90, 198, 59, 212, 67, 208, + 155, 90, 198, 60, 212, 67, 208, 155, 90, 198, 63, 212, 67, 208, 155, 90, + 198, 64, 212, 67, 208, 155, 90, 3, 39, 209, 241, 212, 67, 208, 155, 90, + 3, 39, 198, 254, 212, 67, 208, 155, 90, 3, 39, 219, 15, 212, 67, 208, + 155, 90, 3, 39, 251, 50, 212, 67, 208, 155, 90, 3, 39, 223, 66, 212, 67, + 208, 155, 90, 3, 192, 183, 192, 182, 212, 67, 208, 155, 90, 5, 219, 166, + 212, 67, 208, 155, 90, 17, 191, 77, 212, 67, 208, 155, 90, 17, 108, 212, + 67, 208, 155, 90, 17, 109, 212, 67, 208, 155, 90, 17, 139, 212, 67, 208, + 155, 90, 17, 137, 212, 67, 208, 155, 90, 17, 153, 212, 67, 208, 155, 90, + 17, 173, 212, 67, 208, 155, 90, 17, 181, 212, 67, 208, 155, 90, 17, 176, + 212, 67, 208, 155, 90, 17, 184, 212, 67, 208, 155, 90, 219, 4, 212, 83, + 212, 67, 208, 155, 90, 47, 247, 112, 198, 33, 1, 168, 198, 33, 1, 249, + 103, 198, 33, 1, 199, 247, 198, 33, 1, 237, 241, 198, 33, 1, 157, 198, + 33, 1, 231, 203, 198, 33, 1, 172, 198, 33, 1, 180, 198, 33, 1, 214, 54, + 198, 33, 1, 189, 198, 33, 1, 246, 209, 198, 33, 1, 169, 198, 33, 1, 193, + 187, 198, 33, 1, 223, 4, 198, 33, 1, 144, 198, 33, 1, 166, 198, 33, 1, + 171, 198, 33, 1, 70, 198, 33, 1, 247, 246, 70, 198, 33, 1, 223, 21, 198, + 33, 1, 247, 246, 223, 21, 198, 33, 1, 69, 198, 33, 1, 73, 198, 33, 1, + 247, 246, 73, 198, 33, 1, 234, 23, 198, 33, 1, 247, 246, 234, 23, 198, + 33, 1, 74, 198, 33, 1, 251, 229, 198, 33, 1, 247, 246, 251, 229, 198, 33, + 1, 65, 198, 33, 3, 206, 175, 198, 74, 193, 161, 1, 252, 154, 193, 161, 1, + 65, 193, 161, 1, 249, 103, 193, 161, 1, 247, 112, 193, 161, 1, 237, 241, + 193, 161, 1, 231, 203, 193, 161, 1, 169, 193, 161, 1, 209, 219, 193, 161, + 1, 171, 193, 161, 1, 180, 193, 161, 1, 168, 193, 161, 1, 199, 247, 193, + 161, 1, 199, 44, 193, 161, 1, 233, 68, 193, 161, 1, 189, 193, 161, 1, + 203, 160, 193, 161, 1, 223, 4, 193, 161, 1, 191, 123, 193, 161, 1, 193, + 187, 193, 161, 1, 195, 185, 193, 161, 1, 157, 193, 161, 1, 74, 193, 161, + 1, 250, 113, 193, 161, 1, 166, 193, 161, 1, 172, 193, 161, 1, 221, 190, + 193, 161, 1, 144, 193, 161, 1, 73, 193, 161, 1, 70, 193, 161, 1, 214, 54, + 193, 161, 1, 69, 193, 161, 1, 219, 42, 193, 161, 1, 197, 164, 193, 161, + 1, 198, 22, 193, 161, 1, 211, 83, 193, 161, 1, 252, 113, 193, 161, 1, + 251, 71, 193, 161, 1, 223, 108, 193, 161, 1, 211, 93, 193, 161, 1, 234, + 61, 193, 161, 1, 252, 114, 193, 161, 1, 212, 88, 193, 161, 1, 196, 143, + 193, 161, 1, 192, 24, 193, 161, 163, 197, 63, 193, 161, 163, 197, 62, + 193, 161, 163, 221, 30, 193, 161, 163, 221, 29, 193, 161, 17, 191, 77, + 193, 161, 17, 108, 193, 161, 17, 109, 193, 161, 17, 139, 193, 161, 17, + 137, 193, 161, 17, 153, 193, 161, 17, 173, 193, 161, 17, 181, 193, 161, + 17, 176, 193, 161, 17, 184, 193, 161, 213, 218, 57, 36, 5, 229, 134, 36, + 5, 229, 128, 36, 5, 229, 130, 36, 5, 229, 133, 36, 5, 229, 131, 36, 5, + 229, 132, 36, 5, 229, 129, 36, 5, 230, 114, 229, 138, 36, 5, 229, 135, + 36, 5, 229, 136, 36, 5, 229, 137, 36, 5, 230, 114, 215, 62, 36, 5, 230, + 114, 215, 63, 36, 5, 230, 114, 207, 231, 36, 5, 230, 114, 207, 232, 36, + 5, 230, 114, 207, 233, 36, 5, 230, 114, 247, 159, 36, 5, 230, 114, 247, + 160, 36, 5, 230, 114, 220, 148, 36, 5, 230, 114, 220, 149, 36, 5, 230, + 114, 220, 150, 36, 5, 230, 114, 230, 98, 36, 5, 230, 114, 230, 99, 36, 5, + 230, 114, 230, 100, 36, 5, 230, 114, 232, 21, 36, 5, 230, 114, 232, 22, + 36, 5, 230, 114, 208, 111, 36, 5, 230, 114, 208, 112, 85, 84, 5, 218, + 146, 221, 142, 85, 84, 5, 218, 142, 157, 85, 84, 5, 218, 140, 220, 208, + 85, 84, 5, 218, 16, 221, 244, 85, 84, 5, 217, 242, 221, 253, 85, 84, 5, + 218, 5, 221, 17, 85, 84, 5, 218, 33, 221, 43, 85, 84, 5, 217, 158, 220, + 195, 85, 84, 5, 218, 137, 193, 84, 85, 84, 5, 218, 135, 193, 187, 85, 84, + 5, 218, 133, 193, 0, 85, 84, 5, 217, 211, 193, 112, 85, 84, 5, 217, 219, + 193, 123, 85, 84, 5, 217, 223, 193, 29, 85, 84, 5, 218, 36, 193, 48, 85, + 84, 5, 217, 143, 192, 252, 85, 84, 5, 217, 194, 193, 110, 85, 84, 5, 218, + 20, 192, 240, 85, 84, 5, 218, 32, 192, 242, 85, 84, 5, 217, 198, 192, + 241, 85, 84, 5, 218, 131, 216, 26, 85, 84, 5, 218, 129, 217, 70, 85, 84, + 5, 218, 127, 215, 107, 85, 84, 5, 218, 22, 216, 167, 85, 84, 5, 217, 243, + 215, 214, 85, 84, 5, 217, 183, 215, 132, 85, 84, 5, 217, 148, 215, 126, + 85, 84, 5, 218, 125, 248, 140, 85, 84, 5, 218, 122, 249, 103, 85, 84, 5, + 218, 120, 247, 218, 85, 84, 5, 217, 187, 248, 207, 85, 84, 5, 217, 240, + 248, 223, 85, 84, 5, 217, 234, 248, 49, 85, 84, 5, 217, 199, 248, 63, 85, + 84, 5, 218, 110, 70, 85, 84, 5, 218, 108, 65, 85, 84, 5, 218, 106, 69, + 85, 84, 5, 217, 174, 234, 145, 85, 84, 5, 217, 237, 73, 85, 84, 5, 217, + 172, 211, 76, 85, 84, 5, 217, 190, 74, 85, 84, 5, 217, 200, 234, 123, 85, + 84, 5, 217, 206, 223, 134, 85, 84, 5, 217, 202, 223, 134, 85, 84, 5, 217, + 142, 251, 81, 85, 84, 5, 217, 159, 234, 61, 85, 84, 5, 218, 95, 202, 217, + 85, 84, 5, 218, 93, 189, 85, 84, 5, 218, 91, 200, 255, 85, 84, 5, 217, + 175, 205, 45, 85, 84, 5, 217, 221, 205, 63, 85, 84, 5, 217, 201, 202, 11, + 85, 84, 5, 218, 2, 202, 41, 85, 84, 5, 217, 141, 202, 210, 85, 84, 5, + 218, 81, 219, 122, 85, 84, 5, 218, 79, 171, 85, 84, 5, 218, 77, 218, 203, + 85, 84, 5, 217, 253, 219, 204, 85, 84, 5, 218, 8, 219, 214, 85, 84, 5, + 218, 27, 218, 240, 85, 84, 5, 217, 184, 219, 19, 85, 84, 5, 217, 227, + 177, 219, 214, 85, 84, 5, 218, 103, 236, 255, 85, 84, 5, 218, 100, 237, + 241, 85, 84, 5, 218, 97, 235, 45, 85, 84, 5, 217, 248, 237, 86, 85, 84, + 5, 217, 157, 236, 102, 85, 84, 5, 217, 156, 236, 129, 85, 84, 5, 218, 89, + 198, 188, 85, 84, 5, 218, 86, 199, 247, 85, 84, 5, 218, 84, 197, 90, 85, + 84, 5, 217, 246, 199, 116, 85, 84, 5, 218, 26, 199, 140, 85, 84, 5, 217, + 233, 198, 54, 85, 84, 5, 218, 12, 159, 85, 84, 5, 218, 75, 222, 217, 85, + 84, 5, 218, 72, 223, 4, 85, 84, 5, 218, 70, 222, 155, 85, 84, 5, 217, + 180, 222, 236, 85, 84, 5, 217, 224, 222, 238, 85, 84, 5, 217, 177, 222, + 164, 85, 84, 5, 218, 18, 222, 174, 85, 84, 5, 217, 162, 177, 222, 174, + 85, 84, 5, 218, 68, 192, 33, 85, 84, 5, 218, 65, 169, 85, 84, 5, 218, 63, + 191, 225, 85, 84, 5, 217, 228, 192, 77, 85, 84, 5, 218, 1, 192, 80, 85, + 84, 5, 217, 196, 191, 246, 85, 84, 5, 217, 216, 192, 12, 85, 84, 5, 218, + 59, 232, 238, 85, 84, 5, 218, 57, 233, 68, 85, 84, 5, 218, 55, 232, 48, + 85, 84, 5, 218, 3, 233, 11, 85, 84, 5, 218, 6, 233, 18, 85, 84, 5, 217, + 204, 232, 123, 85, 84, 5, 217, 249, 232, 135, 85, 84, 5, 217, 140, 232, + 47, 85, 84, 5, 217, 236, 233, 39, 85, 84, 5, 218, 53, 213, 165, 85, 84, + 5, 218, 51, 214, 212, 85, 84, 5, 218, 49, 212, 117, 85, 84, 5, 217, 220, + 214, 88, 85, 84, 5, 217, 168, 213, 18, 85, 84, 5, 217, 161, 229, 126, 85, + 84, 5, 218, 44, 144, 85, 84, 5, 217, 151, 228, 128, 85, 84, 5, 218, 47, + 229, 183, 85, 84, 5, 217, 241, 229, 213, 85, 84, 5, 218, 42, 228, 220, + 85, 84, 5, 217, 197, 228, 247, 85, 84, 5, 217, 254, 229, 182, 85, 84, 5, + 217, 209, 228, 213, 85, 84, 5, 218, 28, 229, 96, 85, 84, 5, 217, 207, + 230, 23, 85, 84, 5, 217, 250, 228, 111, 85, 84, 5, 218, 29, 229, 166, 85, + 84, 5, 217, 144, 228, 223, 85, 84, 5, 218, 35, 228, 124, 85, 84, 5, 217, + 247, 214, 19, 85, 84, 5, 218, 40, 214, 33, 85, 84, 5, 217, 255, 214, 16, + 85, 84, 5, 217, 222, 214, 27, 85, 84, 5, 217, 191, 214, 28, 85, 84, 5, + 217, 181, 214, 17, 85, 84, 5, 217, 217, 214, 18, 85, 84, 5, 217, 178, + 214, 32, 85, 84, 5, 217, 210, 214, 15, 85, 84, 5, 217, 251, 177, 214, 28, + 85, 84, 5, 217, 231, 177, 214, 17, 85, 84, 5, 217, 154, 177, 214, 18, 85, + 84, 5, 217, 182, 231, 16, 85, 84, 5, 217, 226, 231, 203, 85, 84, 5, 217, + 169, 230, 146, 85, 84, 5, 217, 147, 231, 120, 85, 84, 5, 217, 171, 230, + 132, 85, 84, 5, 217, 170, 230, 142, 85, 84, 5, 217, 153, 214, 38, 85, 84, + 5, 218, 24, 213, 231, 85, 84, 5, 217, 160, 213, 220, 85, 84, 5, 218, 13, + 209, 176, 85, 84, 5, 217, 238, 168, 85, 84, 5, 218, 31, 208, 158, 85, 84, + 5, 218, 0, 210, 40, 85, 84, 5, 218, 30, 210, 53, 85, 84, 5, 217, 235, + 209, 30, 85, 84, 5, 218, 15, 209, 65, 85, 84, 5, 217, 192, 216, 233, 85, + 84, 5, 218, 19, 216, 248, 85, 84, 5, 217, 215, 216, 227, 85, 84, 5, 218, + 34, 216, 240, 85, 84, 5, 217, 149, 216, 240, 85, 84, 5, 218, 9, 216, 241, + 85, 84, 5, 217, 165, 216, 228, 85, 84, 5, 217, 163, 216, 229, 85, 84, 5, + 217, 150, 216, 221, 85, 84, 5, 217, 176, 177, 216, 241, 85, 84, 5, 217, + 232, 177, 216, 228, 85, 84, 5, 217, 195, 177, 216, 229, 85, 84, 5, 217, + 205, 220, 245, 85, 84, 5, 217, 245, 220, 253, 85, 84, 5, 218, 7, 220, + 241, 85, 84, 5, 218, 38, 220, 248, 85, 84, 5, 217, 229, 220, 249, 85, 84, + 5, 217, 225, 220, 243, 85, 84, 5, 217, 179, 220, 244, 85, 84, 5, 217, + 213, 231, 137, 85, 84, 5, 218, 25, 231, 145, 85, 84, 5, 217, 189, 231, + 132, 85, 84, 5, 217, 244, 231, 141, 85, 84, 5, 217, 230, 231, 142, 85, + 84, 5, 218, 10, 231, 133, 85, 84, 5, 218, 11, 231, 135, 85, 84, 5, 217, + 166, 166, 85, 84, 5, 217, 214, 214, 133, 85, 84, 5, 217, 208, 214, 148, + 85, 84, 5, 217, 212, 214, 115, 85, 84, 5, 217, 146, 214, 139, 85, 84, 5, + 217, 218, 214, 140, 85, 84, 5, 218, 14, 214, 120, 85, 84, 5, 218, 17, + 214, 124, 85, 84, 5, 217, 185, 213, 144, 85, 84, 5, 217, 145, 213, 114, + 85, 84, 5, 217, 188, 213, 135, 85, 84, 5, 217, 203, 213, 118, 85, 84, 5, + 217, 155, 195, 66, 85, 84, 5, 217, 152, 195, 185, 85, 84, 5, 217, 186, + 193, 246, 85, 84, 5, 217, 164, 195, 145, 85, 84, 5, 217, 252, 195, 150, + 85, 84, 5, 217, 193, 195, 5, 85, 84, 5, 218, 4, 195, 21, 85, 84, 5, 217, + 173, 212, 61, 85, 84, 5, 218, 23, 212, 81, 85, 84, 5, 217, 167, 212, 43, + 85, 84, 5, 217, 239, 212, 73, 85, 84, 5, 218, 21, 212, 50, 85, 84, 17, + 108, 85, 84, 17, 109, 85, 84, 17, 139, 85, 84, 17, 137, 85, 84, 17, 153, + 85, 84, 17, 173, 85, 84, 17, 181, 85, 84, 17, 176, 85, 84, 17, 184, 85, + 84, 33, 31, 199, 114, 85, 84, 33, 31, 199, 85, 85, 84, 33, 31, 228, 107, + 85, 84, 33, 31, 198, 223, 85, 84, 33, 31, 199, 91, 198, 223, 85, 84, 33, + 31, 228, 110, 198, 223, 85, 84, 33, 31, 216, 29, 251, 237, 6, 1, 251, + 129, 251, 237, 6, 1, 237, 238, 251, 237, 6, 1, 220, 99, 251, 237, 6, 1, + 216, 42, 251, 237, 6, 1, 249, 103, 251, 237, 6, 1, 202, 159, 251, 237, 6, + 1, 210, 53, 251, 237, 6, 1, 248, 148, 251, 237, 6, 1, 166, 251, 237, 6, + 1, 73, 251, 237, 6, 1, 233, 68, 251, 237, 6, 1, 70, 251, 237, 6, 1, 74, + 251, 237, 6, 1, 237, 23, 251, 237, 6, 1, 192, 34, 251, 237, 6, 1, 193, + 131, 251, 237, 6, 1, 212, 117, 251, 237, 6, 1, 222, 79, 251, 237, 6, 1, + 169, 251, 237, 6, 1, 69, 251, 237, 6, 1, 222, 208, 251, 237, 6, 1, 243, + 47, 251, 237, 6, 1, 144, 251, 237, 6, 1, 208, 87, 251, 237, 6, 1, 231, + 203, 251, 237, 6, 1, 212, 88, 251, 237, 6, 1, 197, 90, 251, 237, 6, 1, + 213, 210, 251, 237, 6, 1, 195, 185, 251, 237, 6, 1, 221, 190, 251, 237, + 6, 1, 231, 142, 251, 237, 6, 1, 191, 108, 251, 237, 6, 1, 220, 244, 251, + 237, 6, 1, 203, 160, 251, 237, 2, 1, 251, 129, 251, 237, 2, 1, 237, 238, + 251, 237, 2, 1, 220, 99, 251, 237, 2, 1, 216, 42, 251, 237, 2, 1, 249, + 103, 251, 237, 2, 1, 202, 159, 251, 237, 2, 1, 210, 53, 251, 237, 2, 1, + 248, 148, 251, 237, 2, 1, 166, 251, 237, 2, 1, 73, 251, 237, 2, 1, 233, + 68, 251, 237, 2, 1, 70, 251, 237, 2, 1, 74, 251, 237, 2, 1, 237, 23, 251, + 237, 2, 1, 192, 34, 251, 237, 2, 1, 193, 131, 251, 237, 2, 1, 212, 117, + 251, 237, 2, 1, 222, 79, 251, 237, 2, 1, 169, 251, 237, 2, 1, 69, 251, + 237, 2, 1, 222, 208, 251, 237, 2, 1, 243, 47, 251, 237, 2, 1, 144, 251, + 237, 2, 1, 208, 87, 251, 237, 2, 1, 231, 203, 251, 237, 2, 1, 212, 88, + 251, 237, 2, 1, 197, 90, 251, 237, 2, 1, 213, 210, 251, 237, 2, 1, 195, + 185, 251, 237, 2, 1, 221, 190, 251, 237, 2, 1, 231, 142, 251, 237, 2, 1, + 191, 108, 251, 237, 2, 1, 220, 244, 251, 237, 2, 1, 203, 160, 251, 237, + 251, 130, 219, 166, 251, 237, 18, 219, 166, 251, 237, 231, 116, 77, 251, + 237, 230, 24, 251, 237, 119, 215, 235, 251, 237, 231, 117, 119, 215, 235, + 251, 237, 212, 128, 251, 237, 214, 199, 77, 251, 237, 17, 191, 77, 251, + 237, 17, 108, 251, 237, 17, 109, 251, 237, 17, 139, 251, 237, 17, 137, + 251, 237, 17, 153, 251, 237, 17, 173, 251, 237, 17, 181, 251, 237, 17, + 176, 251, 237, 17, 184, 251, 237, 89, 233, 175, 77, 251, 237, 89, 208, 8, + 77, 223, 118, 142, 31, 108, 223, 118, 142, 31, 109, 223, 118, 142, 31, + 139, 223, 118, 142, 31, 137, 223, 118, 142, 31, 153, 223, 118, 142, 31, + 173, 223, 118, 142, 31, 181, 223, 118, 142, 31, 176, 223, 118, 142, 31, + 184, 223, 118, 142, 31, 199, 90, 223, 118, 142, 31, 197, 28, 223, 118, + 142, 31, 198, 244, 223, 118, 142, 31, 232, 97, 223, 118, 142, 31, 232, + 230, 223, 118, 142, 31, 202, 115, 223, 118, 142, 31, 203, 236, 223, 118, + 142, 31, 234, 110, 223, 118, 142, 31, 213, 156, 223, 118, 142, 31, 91, + 228, 109, 223, 118, 142, 31, 103, 228, 109, 223, 118, 142, 31, 115, 228, + 109, 223, 118, 142, 31, 232, 90, 228, 109, 223, 118, 142, 31, 232, 185, + 228, 109, 223, 118, 142, 31, 202, 131, 228, 109, 223, 118, 142, 31, 203, + 242, 228, 109, 223, 118, 142, 31, 234, 121, 228, 109, 223, 118, 142, 31, + 213, 161, 228, 109, 223, 118, 142, 31, 91, 188, 223, 118, 142, 31, 103, + 188, 223, 118, 142, 31, 115, 188, 223, 118, 142, 31, 232, 90, 188, 223, + 118, 142, 31, 232, 185, 188, 223, 118, 142, 31, 202, 131, 188, 223, 118, + 142, 31, 203, 242, 188, 223, 118, 142, 31, 234, 121, 188, 223, 118, 142, + 31, 213, 161, 188, 223, 118, 142, 31, 199, 91, 188, 223, 118, 142, 31, + 197, 29, 188, 223, 118, 142, 31, 198, 245, 188, 223, 118, 142, 31, 232, + 98, 188, 223, 118, 142, 31, 232, 231, 188, 223, 118, 142, 31, 202, 116, + 188, 223, 118, 142, 31, 203, 237, 188, 223, 118, 142, 31, 234, 111, 188, + 223, 118, 142, 31, 213, 157, 188, 223, 118, 142, 31, 220, 17, 223, 118, + 142, 31, 220, 16, 223, 118, 142, 220, 18, 77, 223, 118, 142, 31, 222, 34, + 223, 118, 142, 31, 222, 33, 223, 118, 142, 31, 208, 220, 108, 223, 118, + 142, 31, 208, 220, 109, 223, 118, 142, 31, 208, 220, 139, 223, 118, 142, + 31, 208, 220, 137, 223, 118, 142, 31, 208, 220, 153, 223, 118, 142, 31, + 208, 220, 173, 223, 118, 142, 31, 208, 220, 181, 223, 118, 142, 31, 208, + 220, 176, 223, 118, 142, 31, 208, 220, 184, 223, 118, 142, 209, 98, 223, + 118, 142, 232, 80, 91, 208, 17, 223, 118, 142, 232, 80, 91, 230, 37, 223, + 118, 142, 232, 80, 115, 208, 15, 223, 118, 142, 206, 31, 77, 223, 118, + 142, 31, 251, 106, 108, 223, 118, 142, 31, 251, 106, 109, 223, 118, 142, + 31, 251, 106, 199, 91, 188, 223, 118, 142, 251, 106, 220, 18, 77, 211, + 11, 142, 31, 108, 211, 11, 142, 31, 109, 211, 11, 142, 31, 139, 211, 11, + 142, 31, 137, 211, 11, 142, 31, 153, 211, 11, 142, 31, 173, 211, 11, 142, + 31, 181, 211, 11, 142, 31, 176, 211, 11, 142, 31, 184, 211, 11, 142, 31, + 199, 90, 211, 11, 142, 31, 197, 28, 211, 11, 142, 31, 198, 244, 211, 11, + 142, 31, 232, 97, 211, 11, 142, 31, 232, 230, 211, 11, 142, 31, 202, 115, + 211, 11, 142, 31, 203, 236, 211, 11, 142, 31, 234, 110, 211, 11, 142, 31, + 213, 156, 211, 11, 142, 31, 91, 228, 109, 211, 11, 142, 31, 103, 228, + 109, 211, 11, 142, 31, 115, 228, 109, 211, 11, 142, 31, 232, 90, 228, + 109, 211, 11, 142, 31, 232, 185, 228, 109, 211, 11, 142, 31, 202, 131, + 228, 109, 211, 11, 142, 31, 203, 242, 228, 109, 211, 11, 142, 31, 234, + 121, 228, 109, 211, 11, 142, 31, 213, 161, 228, 109, 211, 11, 142, 31, + 91, 188, 211, 11, 142, 31, 103, 188, 211, 11, 142, 31, 115, 188, 211, 11, + 142, 31, 232, 90, 188, 211, 11, 142, 31, 232, 185, 188, 211, 11, 142, 31, + 202, 131, 188, 211, 11, 142, 31, 203, 242, 188, 211, 11, 142, 31, 234, + 121, 188, 211, 11, 142, 31, 213, 161, 188, 211, 11, 142, 31, 199, 91, + 188, 211, 11, 142, 31, 197, 29, 188, 211, 11, 142, 31, 198, 245, 188, + 211, 11, 142, 31, 232, 98, 188, 211, 11, 142, 31, 232, 231, 188, 211, 11, + 142, 31, 202, 116, 188, 211, 11, 142, 31, 203, 237, 188, 211, 11, 142, + 31, 234, 111, 188, 211, 11, 142, 31, 213, 157, 188, 211, 11, 142, 217, + 30, 211, 11, 142, 251, 106, 31, 109, 211, 11, 142, 251, 106, 31, 139, + 211, 11, 142, 251, 106, 31, 137, 211, 11, 142, 251, 106, 31, 153, 211, + 11, 142, 251, 106, 31, 173, 211, 11, 142, 251, 106, 31, 181, 211, 11, + 142, 251, 106, 31, 176, 211, 11, 142, 251, 106, 31, 184, 211, 11, 142, + 251, 106, 31, 199, 90, 211, 11, 142, 251, 106, 31, 232, 90, 228, 109, + 211, 11, 142, 251, 106, 31, 202, 131, 228, 109, 211, 11, 142, 251, 106, + 31, 103, 188, 211, 11, 142, 251, 106, 31, 199, 91, 188, 211, 11, 142, + 232, 80, 91, 230, 37, 211, 11, 142, 232, 80, 91, 202, 119, 9, 13, 251, + 141, 9, 13, 248, 195, 9, 13, 222, 234, 9, 13, 237, 212, 9, 13, 193, 131, + 9, 13, 191, 113, 9, 13, 230, 48, 9, 13, 199, 214, 9, 13, 192, 75, 9, 13, + 222, 79, 9, 13, 220, 11, 9, 13, 216, 189, 9, 13, 213, 11, 9, 13, 205, 41, + 9, 13, 251, 178, 9, 13, 233, 5, 9, 13, 205, 187, 9, 13, 208, 82, 9, 13, + 207, 66, 9, 13, 203, 104, 9, 13, 199, 109, 9, 13, 199, 24, 9, 13, 221, + 185, 9, 13, 199, 36, 9, 13, 237, 235, 9, 13, 191, 116, 9, 13, 231, 49, 9, + 13, 236, 95, 248, 195, 9, 13, 236, 95, 213, 11, 9, 13, 236, 95, 233, 5, + 9, 13, 236, 95, 208, 82, 9, 13, 89, 248, 195, 9, 13, 89, 222, 234, 9, 13, + 89, 229, 178, 9, 13, 89, 230, 48, 9, 13, 89, 192, 75, 9, 13, 89, 222, 79, + 9, 13, 89, 220, 11, 9, 13, 89, 216, 189, 9, 13, 89, 213, 11, 9, 13, 89, + 205, 41, 9, 13, 89, 251, 178, 9, 13, 89, 233, 5, 9, 13, 89, 205, 187, 9, + 13, 89, 208, 82, 9, 13, 89, 203, 104, 9, 13, 89, 199, 109, 9, 13, 89, + 199, 24, 9, 13, 89, 221, 185, 9, 13, 89, 237, 235, 9, 13, 89, 231, 49, 9, + 13, 199, 209, 222, 234, 9, 13, 199, 209, 230, 48, 9, 13, 199, 209, 192, + 75, 9, 13, 199, 209, 220, 11, 9, 13, 199, 209, 213, 11, 9, 13, 199, 209, + 205, 41, 9, 13, 199, 209, 251, 178, 9, 13, 199, 209, 205, 187, 9, 13, + 199, 209, 208, 82, 9, 13, 199, 209, 203, 104, 9, 13, 199, 209, 221, 185, + 9, 13, 199, 209, 237, 235, 9, 13, 199, 209, 231, 49, 9, 13, 199, 209, + 236, 95, 213, 11, 9, 13, 199, 209, 236, 95, 208, 82, 9, 13, 201, 31, 248, + 195, 9, 13, 201, 31, 222, 234, 9, 13, 201, 31, 229, 178, 9, 13, 201, 31, + 230, 48, 9, 13, 201, 31, 199, 214, 9, 13, 201, 31, 192, 75, 9, 13, 201, + 31, 222, 79, 9, 13, 201, 31, 216, 189, 9, 13, 201, 31, 213, 11, 9, 13, + 201, 31, 205, 41, 9, 13, 201, 31, 251, 178, 9, 13, 201, 31, 233, 5, 9, + 13, 201, 31, 205, 187, 9, 13, 201, 31, 208, 82, 9, 13, 201, 31, 203, 104, + 9, 13, 201, 31, 199, 109, 9, 13, 201, 31, 199, 24, 9, 13, 201, 31, 221, + 185, 9, 13, 201, 31, 237, 235, 9, 13, 201, 31, 191, 116, 9, 13, 201, 31, + 231, 49, 9, 13, 201, 31, 236, 95, 248, 195, 9, 13, 201, 31, 236, 95, 233, + 5, 9, 13, 218, 235, 251, 141, 9, 13, 218, 235, 248, 195, 9, 13, 218, 235, + 222, 234, 9, 13, 218, 235, 237, 212, 9, 13, 218, 235, 229, 178, 9, 13, + 218, 235, 193, 131, 9, 13, 218, 235, 191, 113, 9, 13, 218, 235, 230, 48, + 9, 13, 218, 235, 199, 214, 9, 13, 218, 235, 192, 75, 9, 13, 218, 235, + 220, 11, 9, 13, 218, 235, 216, 189, 9, 13, 218, 235, 213, 11, 9, 13, 218, + 235, 205, 41, 9, 13, 218, 235, 251, 178, 9, 13, 218, 235, 233, 5, 9, 13, + 218, 235, 205, 187, 9, 13, 218, 235, 208, 82, 9, 13, 218, 235, 207, 66, + 9, 13, 218, 235, 203, 104, 9, 13, 218, 235, 199, 109, 9, 13, 218, 235, + 199, 24, 9, 13, 218, 235, 221, 185, 9, 13, 218, 235, 199, 36, 9, 13, 218, + 235, 237, 235, 9, 13, 218, 235, 191, 116, 9, 13, 218, 235, 231, 49, 9, + 13, 235, 85, 248, 195, 9, 13, 235, 85, 222, 234, 9, 13, 235, 85, 237, + 212, 9, 13, 235, 85, 193, 131, 9, 13, 235, 85, 191, 113, 9, 13, 235, 85, + 230, 48, 9, 13, 235, 85, 199, 214, 9, 13, 235, 85, 192, 75, 9, 13, 235, + 85, 220, 11, 9, 13, 235, 85, 216, 189, 9, 13, 235, 85, 213, 11, 9, 13, + 235, 85, 205, 41, 9, 13, 235, 85, 251, 178, 9, 13, 235, 85, 233, 5, 9, + 13, 235, 85, 205, 187, 9, 13, 235, 85, 208, 82, 9, 13, 235, 85, 207, 66, + 9, 13, 235, 85, 203, 104, 9, 13, 235, 85, 199, 109, 9, 13, 235, 85, 199, + 24, 9, 13, 235, 85, 221, 185, 9, 13, 235, 85, 199, 36, 9, 13, 235, 85, + 237, 235, 9, 13, 235, 85, 191, 116, 9, 13, 235, 85, 231, 49, 9, 13, 211, + 56, 92, 4, 179, 4, 199, 163, 9, 13, 211, 56, 179, 4, 237, 212, 217, 93, + 123, 234, 160, 193, 64, 217, 93, 123, 201, 253, 193, 64, 217, 93, 123, + 193, 103, 193, 64, 217, 93, 123, 185, 193, 64, 217, 93, 123, 207, 82, + 235, 67, 217, 93, 123, 230, 167, 235, 67, 217, 93, 123, 64, 235, 67, 217, + 93, 123, 91, 80, 243, 92, 217, 93, 123, 103, 80, 243, 92, 217, 93, 123, + 115, 80, 243, 92, 217, 93, 123, 232, 90, 80, 243, 92, 217, 93, 123, 232, + 185, 80, 243, 92, 217, 93, 123, 202, 131, 80, 243, 92, 217, 93, 123, 203, + 242, 80, 243, 92, 217, 93, 123, 234, 121, 80, 243, 92, 217, 93, 123, 213, + 161, 80, 243, 92, 217, 93, 123, 91, 80, 249, 52, 217, 93, 123, 103, 80, + 249, 52, 217, 93, 123, 115, 80, 249, 52, 217, 93, 123, 232, 90, 80, 249, + 52, 217, 93, 123, 232, 185, 80, 249, 52, 217, 93, 123, 202, 131, 80, 249, + 52, 217, 93, 123, 203, 242, 80, 249, 52, 217, 93, 123, 234, 121, 80, 249, + 52, 217, 93, 123, 213, 161, 80, 249, 52, 217, 93, 123, 91, 80, 242, 215, + 217, 93, 123, 103, 80, 242, 215, 217, 93, 123, 115, 80, 242, 215, 217, + 93, 123, 232, 90, 80, 242, 215, 217, 93, 123, 232, 185, 80, 242, 215, + 217, 93, 123, 202, 131, 80, 242, 215, 217, 93, 123, 203, 242, 80, 242, + 215, 217, 93, 123, 234, 121, 80, 242, 215, 217, 93, 123, 213, 161, 80, + 242, 215, 217, 93, 123, 209, 77, 217, 93, 123, 211, 42, 217, 93, 123, + 249, 53, 217, 93, 123, 243, 1, 217, 93, 123, 201, 191, 217, 93, 123, 200, + 195, 217, 93, 123, 250, 99, 217, 93, 123, 193, 55, 217, 93, 123, 222, + 167, 217, 93, 123, 249, 96, 236, 106, 123, 228, 209, 249, 96, 236, 106, + 123, 228, 207, 236, 106, 123, 228, 206, 236, 106, 123, 228, 205, 236, + 106, 123, 228, 204, 236, 106, 123, 228, 203, 236, 106, 123, 228, 202, + 236, 106, 123, 228, 201, 236, 106, 123, 228, 200, 236, 106, 123, 228, + 199, 236, 106, 123, 228, 198, 236, 106, 123, 228, 197, 236, 106, 123, + 228, 196, 236, 106, 123, 228, 195, 236, 106, 123, 228, 194, 236, 106, + 123, 228, 193, 236, 106, 123, 228, 192, 236, 106, 123, 228, 191, 236, + 106, 123, 228, 190, 236, 106, 123, 228, 189, 236, 106, 123, 228, 188, + 236, 106, 123, 228, 187, 236, 106, 123, 228, 186, 236, 106, 123, 228, + 185, 236, 106, 123, 228, 184, 236, 106, 123, 228, 183, 236, 106, 123, + 228, 182, 236, 106, 123, 228, 181, 236, 106, 123, 228, 180, 236, 106, + 123, 228, 179, 236, 106, 123, 228, 178, 236, 106, 123, 228, 177, 236, + 106, 123, 228, 176, 236, 106, 123, 228, 175, 236, 106, 123, 228, 174, + 236, 106, 123, 228, 173, 236, 106, 123, 228, 172, 236, 106, 123, 228, + 171, 236, 106, 123, 228, 170, 236, 106, 123, 228, 169, 236, 106, 123, + 228, 168, 236, 106, 123, 228, 167, 236, 106, 123, 228, 166, 236, 106, + 123, 228, 165, 236, 106, 123, 228, 164, 236, 106, 123, 228, 163, 236, + 106, 123, 228, 162, 236, 106, 123, 228, 161, 236, 106, 123, 228, 160, + 236, 106, 123, 228, 159, 236, 106, 123, 81, 249, 96, 236, 106, 123, 195, + 131, 236, 106, 123, 195, 130, 236, 106, 123, 195, 129, 236, 106, 123, + 195, 128, 236, 106, 123, 195, 127, 236, 106, 123, 195, 126, 236, 106, + 123, 195, 125, 236, 106, 123, 195, 124, 236, 106, 123, 195, 123, 236, + 106, 123, 195, 122, 236, 106, 123, 195, 121, 236, 106, 123, 195, 120, + 236, 106, 123, 195, 119, 236, 106, 123, 195, 118, 236, 106, 123, 195, + 117, 236, 106, 123, 195, 116, 236, 106, 123, 195, 115, 236, 106, 123, + 195, 114, 236, 106, 123, 195, 113, 236, 106, 123, 195, 112, 236, 106, + 123, 195, 111, 236, 106, 123, 195, 110, 236, 106, 123, 195, 109, 236, + 106, 123, 195, 108, 236, 106, 123, 195, 107, 236, 106, 123, 195, 106, + 236, 106, 123, 195, 105, 236, 106, 123, 195, 104, 236, 106, 123, 195, + 103, 236, 106, 123, 195, 102, 236, 106, 123, 195, 101, 236, 106, 123, + 195, 100, 236, 106, 123, 195, 99, 236, 106, 123, 195, 98, 236, 106, 123, + 195, 97, 236, 106, 123, 195, 96, 236, 106, 123, 195, 95, 236, 106, 123, + 195, 94, 236, 106, 123, 195, 93, 236, 106, 123, 195, 92, 236, 106, 123, + 195, 91, 236, 106, 123, 195, 90, 236, 106, 123, 195, 89, 236, 106, 123, + 195, 88, 236, 106, 123, 195, 87, 236, 106, 123, 195, 86, 236, 106, 123, + 195, 85, 236, 106, 123, 195, 84, 236, 106, 123, 195, 83, 209, 87, 247, + 53, 249, 96, 209, 87, 247, 53, 252, 1, 80, 201, 239, 209, 87, 247, 53, + 103, 80, 201, 239, 209, 87, 247, 53, 115, 80, 201, 239, 209, 87, 247, 53, + 232, 90, 80, 201, 239, 209, 87, 247, 53, 232, 185, 80, 201, 239, 209, 87, + 247, 53, 202, 131, 80, 201, 239, 209, 87, 247, 53, 203, 242, 80, 201, + 239, 209, 87, 247, 53, 234, 121, 80, 201, 239, 209, 87, 247, 53, 213, + 161, 80, 201, 239, 209, 87, 247, 53, 199, 91, 80, 201, 239, 209, 87, 247, + 53, 223, 2, 80, 201, 239, 209, 87, 247, 53, 221, 53, 80, 201, 239, 209, + 87, 247, 53, 208, 10, 80, 201, 239, 209, 87, 247, 53, 221, 115, 80, 201, + 239, 209, 87, 247, 53, 252, 1, 80, 229, 189, 209, 87, 247, 53, 103, 80, + 229, 189, 209, 87, 247, 53, 115, 80, 229, 189, 209, 87, 247, 53, 232, 90, + 80, 229, 189, 209, 87, 247, 53, 232, 185, 80, 229, 189, 209, 87, 247, 53, + 202, 131, 80, 229, 189, 209, 87, 247, 53, 203, 242, 80, 229, 189, 209, + 87, 247, 53, 234, 121, 80, 229, 189, 209, 87, 247, 53, 213, 161, 80, 229, + 189, 209, 87, 247, 53, 199, 91, 80, 229, 189, 209, 87, 247, 53, 223, 2, + 80, 229, 189, 209, 87, 247, 53, 221, 53, 80, 229, 189, 209, 87, 247, 53, + 208, 10, 80, 229, 189, 209, 87, 247, 53, 221, 115, 80, 229, 189, 209, 87, + 247, 53, 207, 82, 222, 167, 209, 87, 247, 53, 252, 1, 80, 236, 242, 209, + 87, 247, 53, 103, 80, 236, 242, 209, 87, 247, 53, 115, 80, 236, 242, 209, + 87, 247, 53, 232, 90, 80, 236, 242, 209, 87, 247, 53, 232, 185, 80, 236, + 242, 209, 87, 247, 53, 202, 131, 80, 236, 242, 209, 87, 247, 53, 203, + 242, 80, 236, 242, 209, 87, 247, 53, 234, 121, 80, 236, 242, 209, 87, + 247, 53, 213, 161, 80, 236, 242, 209, 87, 247, 53, 199, 91, 80, 236, 242, + 209, 87, 247, 53, 223, 2, 80, 236, 242, 209, 87, 247, 53, 221, 53, 80, + 236, 242, 209, 87, 247, 53, 208, 10, 80, 236, 242, 209, 87, 247, 53, 221, + 115, 80, 236, 242, 209, 87, 247, 53, 62, 222, 167, 209, 87, 247, 53, 252, + 1, 80, 242, 156, 209, 87, 247, 53, 103, 80, 242, 156, 209, 87, 247, 53, + 115, 80, 242, 156, 209, 87, 247, 53, 232, 90, 80, 242, 156, 209, 87, 247, + 53, 232, 185, 80, 242, 156, 209, 87, 247, 53, 202, 131, 80, 242, 156, + 209, 87, 247, 53, 203, 242, 80, 242, 156, 209, 87, 247, 53, 234, 121, 80, + 242, 156, 209, 87, 247, 53, 213, 161, 80, 242, 156, 209, 87, 247, 53, + 199, 91, 80, 242, 156, 209, 87, 247, 53, 223, 2, 80, 242, 156, 209, 87, + 247, 53, 221, 53, 80, 242, 156, 209, 87, 247, 53, 208, 10, 80, 242, 156, + 209, 87, 247, 53, 221, 115, 80, 242, 156, 209, 87, 247, 53, 64, 222, 167, + 209, 87, 247, 53, 232, 121, 209, 87, 247, 53, 197, 196, 209, 87, 247, 53, + 197, 185, 209, 87, 247, 53, 197, 182, 209, 87, 247, 53, 197, 181, 209, + 87, 247, 53, 197, 180, 209, 87, 247, 53, 197, 179, 209, 87, 247, 53, 197, + 178, 209, 87, 247, 53, 197, 177, 209, 87, 247, 53, 197, 176, 209, 87, + 247, 53, 197, 195, 209, 87, 247, 53, 197, 194, 209, 87, 247, 53, 197, + 193, 209, 87, 247, 53, 197, 192, 209, 87, 247, 53, 197, 191, 209, 87, + 247, 53, 197, 190, 209, 87, 247, 53, 197, 189, 209, 87, 247, 53, 197, + 188, 209, 87, 247, 53, 197, 187, 209, 87, 247, 53, 197, 186, 209, 87, + 247, 53, 197, 184, 209, 87, 247, 53, 197, 183, 17, 191, 78, 232, 42, 201, + 58, 17, 191, 78, 242, 26, 17, 91, 242, 26, 17, 103, 242, 26, 17, 115, + 242, 26, 17, 232, 90, 242, 26, 17, 232, 185, 242, 26, 17, 202, 131, 242, + 26, 17, 203, 242, 242, 26, 17, 234, 121, 242, 26, 17, 213, 161, 242, 26, + 236, 196, 47, 49, 17, 191, 77, 236, 196, 214, 92, 47, 49, 17, 191, 77, + 47, 191, 78, 4, 202, 92, 47, 251, 34, 55, 47, 236, 110, 3, 4, 210, 250, + 249, 91, 127, 8, 6, 1, 65, 127, 8, 6, 1, 250, 70, 127, 8, 6, 1, 247, 145, + 127, 8, 6, 1, 238, 80, 127, 8, 6, 1, 73, 127, 8, 6, 1, 233, 134, 127, 8, + 6, 1, 232, 14, 127, 8, 6, 1, 230, 83, 127, 8, 6, 1, 70, 127, 8, 6, 1, + 223, 7, 127, 8, 6, 1, 222, 125, 127, 8, 6, 1, 170, 127, 8, 6, 1, 218, + 147, 127, 8, 6, 1, 215, 47, 127, 8, 6, 1, 74, 127, 8, 6, 1, 210, 226, + 127, 8, 6, 1, 208, 97, 127, 8, 6, 1, 148, 127, 8, 6, 1, 206, 3, 127, 8, + 6, 1, 200, 39, 127, 8, 6, 1, 69, 127, 8, 6, 1, 196, 8, 127, 8, 6, 1, 193, + 221, 127, 8, 6, 1, 192, 235, 127, 8, 6, 1, 192, 159, 127, 8, 6, 1, 191, + 166, 198, 37, 203, 98, 248, 4, 8, 6, 1, 206, 3, 47, 43, 8, 6, 1, 247, + 145, 47, 43, 8, 6, 1, 148, 47, 246, 251, 47, 192, 237, 238, 216, 113, + 112, 8, 6, 1, 65, 112, 8, 6, 1, 250, 70, 112, 8, 6, 1, 247, 145, 112, 8, + 6, 1, 238, 80, 112, 8, 6, 1, 73, 112, 8, 6, 1, 233, 134, 112, 8, 6, 1, + 232, 14, 112, 8, 6, 1, 230, 83, 112, 8, 6, 1, 70, 112, 8, 6, 1, 223, 7, + 112, 8, 6, 1, 222, 125, 112, 8, 6, 1, 170, 112, 8, 6, 1, 218, 147, 112, + 8, 6, 1, 215, 47, 112, 8, 6, 1, 74, 112, 8, 6, 1, 210, 226, 112, 8, 6, 1, + 208, 97, 112, 8, 6, 1, 148, 112, 8, 6, 1, 206, 3, 112, 8, 6, 1, 200, 39, + 112, 8, 6, 1, 69, 112, 8, 6, 1, 196, 8, 112, 8, 6, 1, 193, 221, 112, 8, + 6, 1, 192, 235, 112, 8, 6, 1, 192, 159, 112, 8, 6, 1, 191, 166, 112, 228, + 95, 112, 215, 73, 112, 205, 65, 112, 201, 173, 112, 208, 241, 112, 193, + 124, 214, 92, 47, 8, 6, 1, 65, 214, 92, 47, 8, 6, 1, 250, 70, 214, 92, + 47, 8, 6, 1, 247, 145, 214, 92, 47, 8, 6, 1, 238, 80, 214, 92, 47, 8, 6, + 1, 73, 214, 92, 47, 8, 6, 1, 233, 134, 214, 92, 47, 8, 6, 1, 232, 14, + 214, 92, 47, 8, 6, 1, 230, 83, 214, 92, 47, 8, 6, 1, 70, 214, 92, 47, 8, + 6, 1, 223, 7, 214, 92, 47, 8, 6, 1, 222, 125, 214, 92, 47, 8, 6, 1, 170, + 214, 92, 47, 8, 6, 1, 218, 147, 214, 92, 47, 8, 6, 1, 215, 47, 214, 92, + 47, 8, 6, 1, 74, 214, 92, 47, 8, 6, 1, 210, 226, 214, 92, 47, 8, 6, 1, + 208, 97, 214, 92, 47, 8, 6, 1, 148, 214, 92, 47, 8, 6, 1, 206, 3, 214, + 92, 47, 8, 6, 1, 200, 39, 214, 92, 47, 8, 6, 1, 69, 214, 92, 47, 8, 6, 1, + 196, 8, 214, 92, 47, 8, 6, 1, 193, 221, 214, 92, 47, 8, 6, 1, 192, 235, + 214, 92, 47, 8, 6, 1, 192, 159, 214, 92, 47, 8, 6, 1, 191, 166, 207, 142, + 216, 220, 57, 207, 142, 216, 216, 57, 207, 142, 215, 148, 57, 47, 247, + 18, 47, 247, 146, 4, 210, 250, 249, 91, 47, 228, 114, 232, 227, 214, 92, + 112, 8, 6, 1, 65, 214, 92, 112, 8, 6, 1, 250, 70, 214, 92, 112, 8, 6, 1, + 247, 145, 214, 92, 112, 8, 6, 1, 238, 80, 214, 92, 112, 8, 6, 1, 73, 214, + 92, 112, 8, 6, 1, 233, 134, 214, 92, 112, 8, 6, 1, 232, 14, 214, 92, 112, + 8, 6, 1, 230, 83, 214, 92, 112, 8, 6, 1, 70, 214, 92, 112, 8, 6, 1, 223, + 7, 214, 92, 112, 8, 6, 1, 222, 125, 214, 92, 112, 8, 6, 1, 170, 214, 92, + 112, 8, 6, 1, 218, 147, 214, 92, 112, 8, 6, 1, 215, 47, 214, 92, 112, 8, + 6, 1, 74, 214, 92, 112, 8, 6, 1, 210, 226, 214, 92, 112, 8, 6, 1, 208, + 97, 214, 92, 112, 8, 6, 1, 148, 214, 92, 112, 8, 6, 1, 206, 3, 214, 92, + 112, 8, 6, 1, 200, 39, 214, 92, 112, 8, 6, 1, 69, 214, 92, 112, 8, 6, 1, + 196, 8, 214, 92, 112, 8, 6, 1, 193, 221, 214, 92, 112, 8, 6, 1, 192, 235, + 214, 92, 112, 8, 6, 1, 192, 159, 214, 92, 112, 8, 6, 1, 191, 166, 238, + 167, 214, 92, 112, 8, 6, 1, 210, 226, 214, 92, 112, 227, 254, 214, 92, + 112, 168, 214, 92, 112, 189, 214, 92, 112, 252, 103, 214, 92, 112, 193, + 124, 51, 236, 149, 112, 242, 199, 112, 238, 223, 112, 232, 70, 112, 227, + 245, 112, 214, 65, 112, 214, 56, 112, 211, 114, 112, 202, 4, 112, 132, 4, + 233, 175, 77, 112, 194, 249, 112, 115, 238, 80, 112, 205, 52, 205, 71, + 112, 103, 222, 125, 112, 232, 90, 222, 125, 112, 234, 121, 222, 125, 112, + 232, 185, 209, 55, 108, 112, 203, 242, 209, 55, 108, 112, 197, 17, 209, + 55, 109, 112, 202, 116, 210, 226, 112, 91, 228, 110, 197, 29, 210, 226, + 112, 8, 2, 1, 238, 80, 112, 229, 216, 112, 229, 215, 112, 229, 118, 112, + 218, 228, 112, 202, 236, 112, 196, 136, 112, 195, 18, 217, 17, 193, 21, + 113, 207, 74, 223, 117, 16, 1, 65, 207, 74, 223, 117, 16, 1, 250, 70, + 207, 74, 223, 117, 16, 1, 247, 145, 207, 74, 223, 117, 16, 1, 238, 80, + 207, 74, 223, 117, 16, 1, 73, 207, 74, 223, 117, 16, 1, 233, 134, 207, + 74, 223, 117, 16, 1, 232, 14, 207, 74, 223, 117, 16, 1, 230, 83, 207, 74, + 223, 117, 16, 1, 70, 207, 74, 223, 117, 16, 1, 223, 7, 207, 74, 223, 117, + 16, 1, 222, 125, 207, 74, 223, 117, 16, 1, 170, 207, 74, 223, 117, 16, 1, + 218, 147, 207, 74, 223, 117, 16, 1, 215, 47, 207, 74, 223, 117, 16, 1, + 74, 207, 74, 223, 117, 16, 1, 210, 226, 207, 74, 223, 117, 16, 1, 208, + 97, 207, 74, 223, 117, 16, 1, 148, 207, 74, 223, 117, 16, 1, 206, 3, 207, + 74, 223, 117, 16, 1, 200, 39, 207, 74, 223, 117, 16, 1, 69, 207, 74, 223, + 117, 16, 1, 196, 8, 207, 74, 223, 117, 16, 1, 193, 221, 207, 74, 223, + 117, 16, 1, 192, 235, 207, 74, 223, 117, 16, 1, 192, 159, 207, 74, 223, + 117, 16, 1, 191, 166, 51, 229, 88, 228, 233, 112, 71, 221, 25, 112, 71, + 189, 112, 12, 196, 91, 225, 188, 112, 12, 196, 91, 225, 192, 112, 12, + 196, 91, 225, 200, 112, 71, 237, 101, 112, 12, 196, 91, 225, 207, 112, + 12, 196, 91, 225, 194, 112, 12, 196, 91, 225, 166, 112, 12, 196, 91, 225, + 193, 112, 12, 196, 91, 225, 206, 112, 12, 196, 91, 225, 180, 112, 12, + 196, 91, 225, 173, 112, 12, 196, 91, 225, 182, 112, 12, 196, 91, 225, + 203, 112, 12, 196, 91, 225, 189, 112, 12, 196, 91, 225, 205, 112, 12, + 196, 91, 225, 181, 112, 12, 196, 91, 225, 204, 112, 12, 196, 91, 225, + 167, 112, 12, 196, 91, 225, 172, 112, 12, 196, 91, 225, 165, 112, 12, + 196, 91, 225, 195, 112, 12, 196, 91, 225, 197, 112, 12, 196, 91, 225, + 175, 112, 12, 196, 91, 225, 186, 112, 12, 196, 91, 225, 184, 112, 12, + 196, 91, 225, 210, 112, 12, 196, 91, 225, 209, 112, 12, 196, 91, 225, + 163, 112, 12, 196, 91, 225, 190, 112, 12, 196, 91, 225, 208, 112, 12, + 196, 91, 225, 199, 112, 12, 196, 91, 225, 185, 112, 12, 196, 91, 225, + 164, 112, 12, 196, 91, 225, 187, 112, 12, 196, 91, 225, 169, 112, 12, + 196, 91, 225, 168, 112, 12, 196, 91, 225, 198, 112, 12, 196, 91, 225, + 176, 112, 12, 196, 91, 225, 178, 112, 12, 196, 91, 225, 179, 112, 12, + 196, 91, 225, 171, 112, 12, 196, 91, 225, 202, 112, 12, 196, 91, 225, + 196, 112, 12, 196, 91, 225, 162, 198, 37, 203, 98, 248, 4, 12, 196, 91, + 225, 177, 198, 37, 203, 98, 248, 4, 12, 196, 91, 225, 209, 198, 37, 203, + 98, 248, 4, 12, 196, 91, 225, 207, 198, 37, 203, 98, 248, 4, 12, 196, 91, + 225, 191, 198, 37, 203, 98, 248, 4, 12, 196, 91, 225, 174, 198, 37, 203, + 98, 248, 4, 12, 196, 91, 225, 187, 198, 37, 203, 98, 248, 4, 12, 196, 91, + 225, 170, 198, 37, 203, 98, 248, 4, 12, 196, 91, 225, 201, 198, 37, 203, + 98, 248, 4, 12, 196, 91, 225, 183, 47, 227, 241, 251, 231, 47, 227, 241, + 252, 6, 206, 108, 16, 39, 232, 48, 206, 108, 16, 39, 218, 203, 206, 108, + 16, 39, 203, 18, 206, 108, 16, 39, 192, 207, 206, 108, 16, 39, 202, 253, + 206, 108, 16, 39, 247, 100, 238, 92, 232, 133, 242, 171, 196, 113, 213, + 177, 4, 201, 94, 200, 188, 138, 215, 167, 200, 187, 242, 203, 250, 133, + 235, 17, 200, 186, 138, 247, 205, 207, 143, 247, 237, 250, 133, 213, 176, + 193, 142, 193, 136, 195, 11, 216, 34, 193, 126, 234, 164, 230, 232, 233, + 191, 234, 164, 230, 232, 251, 89, 234, 164, 230, 232, 250, 152, 230, 232, + 4, 216, 158, 214, 66, 215, 189, 113, 193, 128, 238, 181, 215, 189, 113, + 232, 197, 208, 18, 215, 189, 113, 193, 128, 231, 12, 215, 189, 113, 232, + 42, 215, 189, 113, 193, 157, 231, 12, 215, 189, 113, 219, 238, 208, 18, + 215, 189, 113, 193, 157, 238, 181, 215, 189, 113, 238, 181, 215, 188, + 214, 66, 215, 189, 4, 233, 62, 232, 197, 208, 18, 215, 189, 4, 233, 62, + 219, 238, 208, 18, 215, 189, 4, 233, 62, 232, 42, 215, 189, 4, 233, 62, + 200, 194, 4, 233, 62, 230, 228, 201, 97, 203, 40, 201, 97, 199, 16, 62, + 235, 53, 64, 200, 193, 64, 200, 194, 4, 2, 242, 162, 64, 200, 194, 248, + 192, 242, 162, 64, 200, 194, 248, 192, 242, 163, 4, 207, 144, 242, 163, + 4, 207, 144, 242, 163, 4, 202, 47, 242, 163, 4, 219, 105, 242, 163, 4, + 198, 41, 232, 134, 193, 65, 248, 68, 233, 62, 228, 150, 236, 117, 199, + 222, 247, 180, 243, 55, 205, 43, 233, 185, 197, 250, 237, 94, 197, 250, + 210, 173, 197, 250, 247, 105, 228, 150, 210, 6, 197, 74, 243, 59, 248, + 71, 206, 121, 229, 117, 200, 191, 248, 71, 234, 168, 80, 217, 82, 234, + 168, 80, 206, 240, 229, 161, 232, 90, 219, 210, 242, 161, 217, 49, 219, + 209, 233, 43, 219, 209, 219, 210, 232, 141, 223, 135, 193, 64, 215, 84, + 198, 78, 250, 112, 230, 184, 216, 177, 193, 140, 199, 182, 219, 177, 249, + 48, 209, 124, 207, 82, 250, 252, 230, 167, 250, 252, 210, 46, 210, 50, + 243, 60, 201, 37, 230, 30, 202, 84, 80, 209, 104, 216, 206, 211, 94, 248, + 50, 209, 2, 219, 188, 206, 241, 238, 187, 206, 241, 249, 61, 238, 226, + 206, 240, 238, 120, 24, 206, 240, 201, 78, 248, 18, 201, 238, 247, 251, + 232, 68, 232, 64, 206, 147, 200, 138, 209, 5, 237, 190, 211, 141, 200, + 160, 232, 65, 203, 8, 232, 196, 247, 99, 4, 200, 130, 237, 35, 202, 27, + 227, 253, 238, 185, 203, 116, 227, 252, 227, 253, 238, 185, 235, 82, 238, + 225, 243, 18, 164, 247, 70, 219, 0, 238, 111, 228, 222, 209, 7, 203, 24, + 248, 172, 248, 14, 209, 8, 80, 232, 122, 238, 224, 232, 111, 24, 221, 54, + 199, 128, 193, 51, 229, 254, 205, 171, 248, 31, 24, 238, 134, 193, 61, + 230, 236, 242, 46, 230, 236, 197, 200, 235, 60, 248, 203, 215, 124, 242, + 178, 248, 203, 215, 123, 249, 99, 248, 30, 232, 111, 24, 221, 55, 4, 209, + 89, 248, 31, 4, 209, 23, 238, 212, 209, 25, 206, 242, 193, 11, 208, 215, + 248, 109, 247, 98, 223, 1, 243, 8, 197, 250, 233, 26, 243, 7, 232, 199, + 232, 200, 201, 236, 249, 59, 210, 92, 209, 24, 239, 6, 249, 61, 199, 186, + 197, 250, 238, 167, 232, 171, 209, 125, 237, 91, 222, 247, 236, 109, 247, + 42, 201, 36, 193, 65, 243, 34, 215, 189, 195, 51, 246, 216, 205, 85, 205, + 115, 230, 191, 247, 63, 229, 192, 4, 198, 131, 211, 94, 199, 29, 219, + 200, 248, 24, 80, 232, 145, 216, 36, 216, 200, 207, 53, 206, 242, 37, + 221, 196, 4, 223, 0, 201, 6, 216, 70, 219, 144, 202, 81, 238, 231, 221, + 48, 248, 219, 250, 163, 37, 212, 244, 248, 219, 237, 41, 37, 212, 244, + 232, 215, 232, 74, 251, 235, 198, 175, 247, 43, 228, 152, 232, 248, 193, + 91, 206, 134, 242, 49, 232, 191, 209, 46, 24, 232, 195, 216, 70, 215, + 153, 247, 84, 242, 222, 229, 199, 250, 174, 210, 178, 198, 49, 229, 232, + 242, 208, 199, 82, 198, 176, 242, 194, 248, 59, 209, 253, 250, 172, 195, + 62, 231, 177, 236, 189, 229, 85, 202, 74, 217, 127, 248, 122, 231, 178, + 236, 235, 248, 17, 232, 147, 209, 87, 247, 51, 37, 212, 249, 215, 114, + 37, 212, 244, 205, 99, 230, 129, 37, 221, 195, 197, 175, 195, 39, 37, + 205, 77, 206, 37, 203, 55, 4, 205, 118, 199, 87, 207, 165, 24, 249, 61, + 202, 104, 24, 202, 104, 248, 43, 249, 18, 24, 228, 215, 243, 61, 232, + 177, 202, 46, 206, 38, 200, 165, 201, 197, 216, 200, 197, 201, 228, 153, + 207, 166, 251, 90, 232, 119, 206, 51, 232, 119, 200, 133, 193, 108, 219, + 110, 230, 213, 207, 167, 215, 175, 207, 167, 247, 54, 238, 178, 249, 15, + 24, 249, 61, 195, 10, 232, 237, 228, 236, 201, 70, 24, 249, 61, 227, 253, + 228, 236, 201, 70, 24, 208, 150, 199, 229, 199, 87, 210, 197, 24, 249, + 61, 202, 48, 247, 59, 215, 168, 247, 82, 248, 222, 4, 196, 113, 247, 207, + 238, 245, 228, 142, 247, 205, 242, 202, 237, 45, 228, 142, 247, 206, 242, + 192, 247, 206, 237, 37, 237, 38, 223, 32, 214, 194, 210, 99, 201, 108, + 228, 142, 247, 206, 228, 142, 4, 231, 161, 211, 132, 247, 206, 222, 247, + 209, 13, 211, 131, 233, 190, 209, 13, 211, 131, 228, 151, 249, 42, 250, + 101, 199, 97, 217, 127, 228, 147, 218, 220, 228, 147, 238, 229, 201, 52, + 205, 84, 237, 49, 201, 52, 233, 51, 223, 12, 219, 250, 222, 247, 247, 32, + 233, 190, 247, 32, 64, 210, 19, 62, 210, 19, 193, 134, 64, 232, 177, 193, + 134, 62, 232, 177, 206, 120, 62, 206, 120, 220, 93, 249, 82, 207, 165, + 24, 202, 239, 248, 22, 24, 55, 251, 85, 234, 67, 59, 232, 186, 196, 249, + 234, 67, 59, 232, 186, 196, 246, 234, 67, 59, 232, 186, 196, 244, 234, + 67, 59, 232, 186, 196, 242, 234, 67, 59, 232, 186, 196, 240, 207, 125, + 215, 165, 210, 237, 193, 142, 247, 211, 238, 192, 198, 168, 219, 161, + 207, 169, 247, 30, 235, 67, 238, 176, 193, 94, 202, 55, 202, 53, 228, + 152, 207, 137, 230, 219, 203, 102, 215, 208, 206, 124, 243, 45, 236, 117, + 209, 138, 248, 61, 234, 88, 211, 144, 201, 213, 203, 97, 247, 210, 251, + 38, 228, 221, 220, 84, 248, 201, 232, 195, 197, 200, 232, 195, 248, 69, + 197, 51, 229, 230, 243, 46, 249, 99, 243, 46, 232, 58, 249, 99, 243, 46, + 248, 112, 210, 21, 221, 37, 209, 29, 235, 57, 247, 86, 249, 87, 247, 86, + 236, 108, 215, 166, 233, 62, 238, 193, 233, 62, 198, 169, 233, 62, 207, + 170, 233, 62, 247, 31, 233, 62, 235, 68, 233, 62, 201, 195, 193, 94, 228, + 153, 233, 62, 215, 209, 233, 62, 236, 118, 233, 62, 209, 139, 233, 62, + 232, 62, 233, 62, 230, 26, 233, 62, 193, 38, 233, 62, 248, 216, 233, 62, + 210, 152, 233, 62, 209, 139, 213, 0, 210, 66, 208, 201, 243, 29, 233, + 144, 233, 152, 234, 167, 213, 0, 215, 163, 198, 56, 64, 132, 209, 51, + 249, 94, 223, 120, 64, 143, 209, 51, 249, 94, 223, 120, 64, 45, 209, 51, + 249, 94, 223, 120, 64, 50, 209, 51, 249, 94, 223, 120, 232, 189, 230, 21, + 57, 193, 134, 230, 21, 57, 211, 115, 230, 21, 57, 198, 206, 132, 57, 198, + 206, 143, 57, 242, 193, 229, 252, 57, 211, 66, 229, 252, 57, 238, 161, + 193, 34, 229, 232, 233, 147, 214, 97, 200, 37, 222, 237, 235, 62, 221, + 118, 248, 125, 193, 34, 242, 164, 208, 130, 230, 0, 209, 3, 217, 58, 203, + 47, 250, 128, 203, 47, 229, 102, 203, 47, 193, 34, 205, 134, 193, 34, + 248, 42, 232, 117, 247, 172, 223, 135, 202, 182, 247, 171, 223, 135, 202, + 182, 248, 12, 230, 248, 217, 70, 193, 35, 233, 40, 217, 71, 24, 193, 36, + 228, 230, 229, 251, 103, 216, 168, 228, 230, 229, 251, 103, 193, 33, 228, + 230, 229, 251, 209, 43, 211, 130, 193, 36, 4, 247, 191, 234, 165, 247, + 238, 4, 195, 141, 209, 242, 4, 248, 73, 230, 45, 217, 71, 4, 230, 143, + 209, 177, 217, 53, 217, 71, 4, 197, 59, 211, 107, 217, 70, 211, 107, 193, + 35, 249, 98, 238, 246, 193, 19, 208, 206, 222, 247, 211, 125, 222, 247, + 230, 218, 231, 24, 249, 99, 251, 69, 233, 157, 251, 131, 251, 132, 215, + 198, 223, 140, 202, 98, 223, 109, 237, 34, 209, 241, 230, 137, 237, 195, + 219, 71, 214, 221, 209, 41, 233, 63, 217, 14, 230, 44, 249, 36, 209, 45, + 200, 58, 209, 131, 221, 99, 77, 218, 220, 219, 151, 206, 183, 231, 118, + 201, 60, 221, 98, 248, 23, 238, 196, 4, 229, 191, 193, 115, 248, 212, + 229, 191, 247, 230, 229, 191, 103, 229, 189, 201, 234, 229, 191, 230, + 153, 229, 191, 229, 192, 4, 55, 248, 67, 229, 191, 230, 167, 229, 191, + 192, 73, 229, 191, 208, 131, 229, 191, 229, 192, 4, 206, 242, 207, 7, + 229, 189, 229, 192, 237, 91, 236, 244, 203, 130, 4, 41, 75, 223, 89, 234, + 92, 155, 247, 203, 251, 68, 113, 248, 51, 202, 87, 113, 242, 37, 113, + 201, 207, 200, 140, 113, 235, 53, 237, 171, 113, 209, 132, 80, 209, 30, + 232, 159, 248, 137, 236, 150, 113, 201, 225, 249, 59, 198, 226, 249, 59, + 64, 232, 146, 228, 110, 209, 49, 113, 215, 213, 249, 80, 238, 123, 233, + 177, 88, 236, 110, 57, 238, 183, 247, 52, 249, 41, 4, 192, 71, 57, 249, + 41, 4, 236, 110, 57, 249, 41, 4, 233, 193, 57, 249, 41, 4, 209, 1, 57, + 215, 213, 4, 193, 59, 243, 89, 4, 196, 62, 197, 246, 24, 192, 71, 57, + 205, 55, 209, 240, 239, 11, 247, 236, 216, 24, 232, 151, 236, 175, 211, + 49, 236, 181, 235, 11, 232, 222, 232, 131, 211, 66, 232, 222, 232, 131, + 210, 195, 4, 238, 128, 210, 195, 233, 55, 196, 73, 247, 92, 199, 125, + 247, 92, 247, 53, 223, 120, 243, 89, 4, 196, 62, 197, 245, 243, 89, 4, + 235, 75, 197, 245, 249, 38, 243, 88, 242, 177, 208, 126, 206, 110, 208, + 126, 210, 124, 201, 48, 206, 45, 197, 234, 206, 45, 248, 47, 199, 227, + 219, 205, 212, 247, 212, 248, 4, 237, 90, 238, 195, 242, 171, 248, 48, + 211, 66, 248, 48, 230, 167, 248, 48, 248, 67, 248, 48, 211, 44, 248, 48, + 248, 45, 214, 214, 249, 84, 205, 68, 216, 169, 199, 102, 207, 96, 210, + 193, 233, 23, 217, 127, 205, 114, 251, 35, 208, 151, 251, 243, 218, 222, + 243, 71, 216, 182, 211, 3, 197, 254, 223, 131, 197, 254, 210, 202, 234, + 220, 113, 223, 128, 234, 25, 234, 26, 4, 235, 75, 63, 56, 242, 171, 217, + 88, 4, 218, 213, 232, 177, 242, 171, 217, 88, 4, 207, 142, 232, 177, 211, + 66, 217, 88, 4, 207, 142, 232, 177, 211, 66, 217, 88, 4, 218, 213, 232, + 177, 209, 10, 209, 11, 228, 156, 214, 61, 215, 243, 209, 185, 215, 243, + 209, 186, 4, 96, 63, 250, 133, 219, 200, 195, 65, 215, 242, 215, 243, + 209, 186, 211, 133, 213, 31, 215, 243, 209, 184, 251, 36, 4, 249, 26, + 247, 84, 247, 85, 4, 232, 168, 195, 62, 247, 84, 199, 99, 207, 160, 195, + 61, 232, 215, 208, 186, 209, 20, 201, 72, 208, 229, 248, 221, 197, 13, + 96, 250, 181, 242, 173, 96, 24, 117, 211, 66, 242, 219, 250, 181, 242, + 173, 96, 24, 117, 211, 66, 242, 219, 250, 182, 4, 47, 91, 210, 245, 242, + 173, 235, 75, 24, 196, 62, 211, 66, 242, 219, 250, 181, 251, 34, 235, 75, + 24, 196, 62, 211, 66, 242, 219, 250, 181, 131, 247, 234, 113, 136, 247, + 234, 113, 201, 230, 4, 247, 77, 105, 201, 229, 201, 230, 4, 91, 202, 0, + 193, 136, 201, 230, 4, 115, 202, 0, 193, 135, 249, 8, 234, 92, 209, 79, + 219, 195, 217, 100, 230, 236, 206, 198, 217, 100, 230, 236, 219, 11, 4, + 223, 101, 210, 25, 242, 171, 219, 11, 4, 221, 197, 221, 197, 219, 10, + 211, 66, 219, 10, 248, 185, 248, 186, 4, 247, 77, 105, 248, 46, 219, 79, + 113, 207, 161, 247, 165, 249, 97, 4, 117, 63, 56, 234, 53, 4, 117, 63, + 56, 211, 94, 4, 233, 175, 87, 4, 45, 50, 63, 56, 202, 10, 4, 96, 63, 56, + 198, 49, 4, 196, 62, 63, 56, 213, 31, 91, 196, 101, 234, 119, 113, 221, + 194, 199, 90, 223, 95, 16, 39, 8, 6, 219, 150, 223, 95, 16, 39, 8, 2, + 219, 150, 223, 95, 16, 39, 212, 122, 223, 95, 16, 39, 200, 72, 223, 95, + 16, 39, 8, 219, 150, 232, 202, 234, 92, 198, 44, 193, 9, 230, 28, 212, + 105, 24, 248, 53, 228, 237, 209, 110, 216, 69, 199, 100, 238, 150, 249, + 61, 202, 131, 209, 53, 201, 98, 4, 82, 236, 96, 222, 247, 16, 39, 248, + 198, 197, 232, 234, 69, 62, 51, 247, 165, 64, 51, 247, 165, 219, 245, + 207, 82, 242, 218, 219, 245, 248, 67, 242, 218, 219, 245, 211, 44, 236, + 243, 219, 245, 248, 67, 236, 243, 2, 211, 44, 236, 243, 2, 248, 67, 236, + 243, 196, 72, 207, 82, 197, 237, 235, 78, 207, 82, 197, 237, 196, 72, 2, + 207, 82, 197, 237, 235, 78, 2, 207, 82, 197, 237, 110, 50, 203, 146, 64, + 242, 218, 116, 50, 203, 146, 64, 242, 218, 47, 238, 171, 209, 34, 238, + 171, 209, 35, 4, 230, 34, 60, 238, 171, 209, 34, 212, 251, 45, 204, 23, + 4, 115, 236, 94, 212, 251, 50, 204, 23, 4, 115, 236, 94, 16, 39, 217, 31, + 246, 194, 64, 8, 238, 170, 88, 8, 238, 170, 246, 234, 238, 170, 211, 103, + 113, 235, 81, 80, 210, 51, 222, 98, 215, 181, 200, 66, 216, 164, 4, 213, + 161, 247, 254, 248, 19, 80, 228, 60, 242, 175, 233, 63, 91, 211, 150, + 242, 175, 233, 63, 103, 211, 150, 242, 175, 233, 63, 115, 211, 150, 242, + 175, 233, 63, 232, 90, 211, 150, 242, 175, 233, 63, 232, 185, 211, 150, + 242, 175, 233, 63, 202, 131, 211, 150, 242, 175, 233, 63, 203, 242, 211, + 150, 242, 175, 233, 63, 234, 121, 211, 150, 242, 175, 233, 63, 213, 161, + 211, 150, 242, 175, 233, 63, 199, 91, 211, 150, 242, 175, 233, 63, 234, + 85, 211, 150, 242, 175, 233, 63, 197, 34, 211, 150, 242, 175, 233, 63, + 211, 86, 242, 175, 233, 63, 197, 7, 242, 175, 233, 63, 198, 212, 242, + 175, 233, 63, 232, 86, 242, 175, 233, 63, 232, 183, 242, 175, 233, 63, + 202, 127, 242, 175, 233, 63, 203, 241, 242, 175, 233, 63, 234, 120, 242, + 175, 233, 63, 213, 160, 242, 175, 233, 63, 199, 89, 242, 175, 233, 63, + 234, 83, 242, 175, 233, 63, 197, 32, 50, 201, 229, 50, 201, 230, 4, 91, + 202, 0, 193, 136, 50, 201, 230, 4, 115, 202, 0, 193, 135, 247, 198, 247, + 199, 4, 202, 0, 193, 135, 206, 181, 248, 185, 248, 48, 247, 75, 217, 55, + 242, 174, 62, 202, 99, 24, 238, 168, 213, 31, 209, 116, 228, 229, 217, + 71, 223, 135, 247, 174, 200, 207, 219, 141, 202, 85, 211, 46, 201, 186, + 237, 176, 200, 189, 201, 216, 201, 217, 193, 116, 222, 156, 217, 71, 237, + 194, 45, 230, 21, 199, 102, 207, 96, 199, 102, 207, 97, 4, 210, 194, 50, + 230, 21, 199, 102, 207, 96, 64, 198, 29, 199, 101, 62, 198, 29, 199, 101, + 199, 102, 211, 94, 198, 49, 80, 215, 239, 242, 197, 215, 243, 209, 185, + 249, 97, 80, 234, 25, 201, 104, 234, 25, 234, 26, 4, 219, 105, 232, 138, + 234, 25, 210, 26, 138, 201, 104, 234, 25, 219, 78, 210, 123, 62, 208, + 126, 110, 45, 210, 24, 110, 45, 249, 55, 210, 25, 110, 45, 232, 92, 210, + 25, 110, 45, 210, 187, 110, 45, 238, 186, 45, 193, 3, 230, 20, 152, 211, + 115, 230, 21, 57, 207, 142, 230, 21, 4, 232, 207, 201, 206, 207, 13, 207, + 142, 230, 21, 4, 232, 207, 201, 206, 207, 13, 198, 206, 132, 57, 207, 13, + 198, 206, 143, 57, 207, 13, 195, 64, 230, 20, 207, 13, 230, 21, 4, 82, + 232, 212, 233, 163, 207, 142, 230, 21, 4, 210, 97, 248, 160, 82, 24, 206, + 184, 232, 206, 64, 143, 209, 51, 45, 230, 21, 223, 120, 202, 201, 64, 45, + 209, 51, 223, 120, 202, 201, 64, 50, 209, 51, 223, 120, 202, 201, 62, 45, + 209, 51, 223, 120, 202, 201, 62, 50, 209, 51, 223, 120, 62, 45, 209, 51, + 249, 94, 223, 120, 62, 50, 209, 51, 249, 94, 223, 120, 202, 201, 64, 132, + 209, 51, 223, 120, 202, 201, 64, 143, 209, 51, 223, 120, 202, 201, 62, + 132, 209, 51, 223, 120, 202, 201, 62, 143, 209, 51, 223, 120, 62, 132, + 209, 51, 249, 94, 223, 120, 62, 143, 209, 51, 249, 94, 223, 120, 62, 229, + 191, 237, 33, 239, 11, 221, 196, 24, 215, 165, 115, 214, 70, 239, 10, + 208, 202, 209, 63, 247, 94, 62, 229, 240, 203, 98, 232, 151, 236, 175, + 64, 229, 240, 203, 98, 232, 151, 236, 175, 202, 27, 203, 98, 232, 151, + 236, 175, 199, 177, 247, 36, 193, 54, 221, 195, 91, 247, 166, 215, 165, + 103, 247, 166, 215, 165, 115, 247, 166, 215, 165, 198, 20, 38, 209, 240, + 239, 11, 229, 240, 236, 175, 205, 71, 208, 203, 227, 246, 233, 23, 227, + 246, 211, 49, 236, 182, 227, 246, 236, 123, 4, 199, 48, 236, 123, 4, 199, + 49, 24, 209, 168, 236, 123, 4, 209, 168, 232, 76, 4, 209, 168, 232, 76, + 4, 198, 145, 232, 76, 4, 251, 82, 192, 235, 62, 232, 131, 232, 131, 211, + 66, 232, 131, 247, 53, 140, 236, 159, 247, 53, 232, 222, 248, 14, 232, + 222, 247, 107, 234, 63, 212, 249, 234, 63, 212, 250, 210, 194, 234, 63, + 212, 250, 210, 200, 212, 249, 212, 250, 210, 194, 212, 250, 210, 200, + 234, 63, 236, 122, 234, 63, 210, 194, 234, 63, 210, 192, 236, 122, 210, + 194, 210, 192, 193, 146, 201, 213, 212, 250, 210, 200, 201, 213, 247, 93, + 210, 200, 237, 33, 193, 63, 216, 21, 217, 3, 210, 248, 242, 173, 50, 24, + 45, 204, 23, 250, 181, 247, 77, 192, 235, 223, 126, 232, 124, 202, 111, + 113, 237, 89, 232, 124, 202, 111, 113, 239, 12, 38, 221, 197, 206, 135, + 214, 61, 210, 195, 4, 47, 199, 48, 201, 62, 243, 88, 237, 224, 221, 54, + 219, 72, 201, 228, 229, 204, 223, 135, 202, 182, 115, 207, 115, 56, 115, + 207, 115, 60, 115, 207, 115, 219, 200, 115, 207, 115, 187, 45, 201, 225, + 247, 216, 50, 201, 225, 247, 216, 103, 201, 225, 247, 215, 115, 201, 225, + 247, 215, 45, 198, 226, 247, 216, 50, 198, 226, 247, 216, 45, 251, 68, + 247, 216, 50, 251, 68, 247, 216, 215, 193, 247, 216, 219, 106, 215, 193, + 247, 216, 219, 106, 215, 192, 249, 57, 111, 4, 249, 56, 249, 57, 27, 192, + 235, 249, 57, 111, 4, 27, 192, 235, 249, 57, 28, 27, 192, 235, 249, 57, + 111, 4, 28, 27, 192, 235, 155, 243, 78, 77, 249, 57, 111, 4, 28, 243, 77, + 193, 18, 217, 51, 215, 170, 232, 43, 198, 80, 198, 25, 201, 87, 80, 219, + 120, 202, 183, 80, 222, 248, 215, 151, 230, 163, 233, 62, 230, 163, 233, + 63, 4, 202, 59, 233, 144, 233, 63, 4, 199, 121, 80, 222, 158, 202, 59, + 233, 63, 4, 211, 66, 215, 163, 202, 59, 233, 63, 4, 211, 66, 215, 164, + 24, 202, 59, 233, 144, 202, 59, 233, 63, 4, 211, 66, 215, 164, 24, 242, + 39, 200, 139, 202, 59, 233, 63, 4, 211, 66, 215, 164, 24, 198, 166, 233, + 144, 202, 59, 233, 63, 4, 230, 33, 202, 59, 233, 63, 4, 228, 155, 193, + 56, 233, 62, 202, 59, 233, 63, 4, 202, 59, 233, 144, 233, 63, 205, 104, + 237, 69, 232, 122, 207, 56, 233, 62, 202, 59, 233, 63, 4, 229, 190, 233, + 144, 202, 59, 233, 63, 4, 200, 189, 202, 58, 233, 62, 214, 68, 233, 62, + 233, 165, 233, 62, 196, 107, 233, 62, 233, 63, 4, 242, 39, 200, 139, 210, + 17, 233, 62, 239, 3, 233, 62, 239, 4, 233, 62, 221, 97, 233, 62, 233, 63, + 198, 209, 41, 221, 98, 221, 97, 233, 63, 4, 202, 59, 233, 144, 221, 97, + 233, 63, 4, 242, 171, 233, 144, 233, 63, 4, 201, 7, 198, 56, 233, 63, 4, + 201, 7, 198, 57, 24, 193, 56, 233, 152, 233, 63, 4, 201, 7, 198, 57, 24, + 198, 166, 233, 144, 236, 183, 233, 62, 193, 16, 233, 62, 251, 60, 233, + 62, 208, 255, 233, 62, 238, 152, 233, 62, 209, 244, 233, 62, 233, 63, 4, + 218, 239, 80, 197, 213, 236, 183, 247, 170, 207, 56, 233, 62, 232, 54, + 233, 63, 4, 211, 66, 215, 163, 251, 58, 233, 62, 233, 16, 233, 62, 193, + 117, 233, 62, 202, 86, 233, 62, 198, 125, 233, 62, 230, 164, 233, 62, + 218, 223, 238, 152, 233, 62, 233, 63, 4, 211, 66, 215, 163, 228, 99, 233, + 62, 233, 63, 4, 211, 66, 215, 164, 24, 242, 39, 200, 139, 233, 63, 205, + 73, 223, 135, 233, 17, 250, 140, 233, 62, 232, 143, 233, 62, 202, 87, + 233, 62, 236, 150, 233, 62, 233, 63, 193, 51, 215, 163, 233, 63, 4, 216, + 197, 217, 16, 230, 163, 247, 31, 233, 63, 4, 202, 59, 233, 144, 247, 31, + 233, 63, 4, 199, 121, 80, 222, 158, 202, 59, 247, 31, 233, 63, 4, 211, + 66, 215, 163, 202, 59, 247, 31, 233, 63, 4, 229, 190, 233, 144, 247, 31, + 233, 63, 4, 193, 1, 202, 60, 221, 97, 247, 31, 233, 63, 4, 242, 171, 233, + 144, 208, 255, 247, 31, 233, 62, 238, 152, 247, 31, 233, 62, 193, 117, + 247, 31, 233, 62, 202, 79, 232, 54, 233, 62, 202, 79, 202, 59, 233, 62, + 196, 68, 233, 62, 233, 63, 4, 206, 133, 233, 144, 233, 63, 4, 213, 31, + 230, 209, 231, 95, 233, 63, 4, 211, 115, 231, 95, 209, 242, 248, 20, 237, + 84, 205, 44, 215, 208, 229, 194, 215, 208, 201, 231, 215, 208, 229, 243, + 209, 242, 207, 140, 91, 230, 20, 209, 242, 207, 140, 248, 32, 229, 252, + 223, 135, 246, 236, 209, 242, 232, 53, 209, 242, 4, 208, 255, 233, 62, + 209, 242, 4, 232, 132, 229, 251, 185, 193, 103, 209, 51, 219, 209, 201, + 253, 193, 103, 209, 51, 219, 209, 185, 234, 160, 209, 51, 219, 209, 201, + 253, 234, 160, 209, 51, 219, 209, 152, 185, 193, 103, 209, 51, 219, 209, + 152, 201, 253, 193, 103, 209, 51, 219, 209, 152, 185, 234, 160, 209, 51, + 219, 209, 152, 201, 253, 234, 160, 209, 51, 219, 209, 185, 193, 103, 209, + 51, 195, 45, 219, 209, 201, 253, 193, 103, 209, 51, 195, 45, 219, 209, + 185, 234, 160, 209, 51, 195, 45, 219, 209, 201, 253, 234, 160, 209, 51, + 195, 45, 219, 209, 88, 185, 193, 103, 209, 51, 195, 45, 219, 209, 88, + 201, 253, 193, 103, 209, 51, 195, 45, 219, 209, 88, 185, 234, 160, 209, + 51, 195, 45, 219, 209, 88, 201, 253, 234, 160, 209, 51, 195, 45, 219, + 209, 185, 193, 103, 209, 51, 247, 212, 201, 253, 193, 103, 209, 51, 247, + 212, 185, 234, 160, 209, 51, 247, 212, 201, 253, 234, 160, 209, 51, 247, + 212, 88, 185, 193, 103, 209, 51, 247, 212, 88, 201, 253, 193, 103, 209, + 51, 247, 212, 88, 185, 234, 160, 209, 51, 247, 212, 88, 201, 253, 234, + 160, 209, 51, 247, 212, 228, 228, 208, 1, 51, 211, 32, 228, 228, 208, 1, + 51, 211, 33, 223, 135, 62, 201, 185, 202, 20, 208, 1, 51, 211, 32, 202, + 20, 208, 1, 51, 211, 33, 223, 135, 62, 201, 185, 117, 206, 141, 196, 62, + 206, 141, 96, 206, 141, 235, 75, 206, 141, 27, 34, 233, 214, 211, 32, 88, + 27, 34, 233, 214, 211, 32, 34, 211, 66, 233, 214, 211, 32, 88, 34, 211, + 66, 233, 214, 211, 32, 88, 251, 87, 211, 32, 200, 142, 251, 87, 211, 32, + 49, 88, 54, 152, 242, 27, 207, 247, 87, 211, 32, 49, 88, 54, 242, 27, + 207, 247, 87, 211, 32, 49, 88, 131, 54, 242, 27, 207, 247, 87, 211, 32, + 88, 223, 75, 211, 32, 49, 223, 75, 211, 32, 88, 49, 223, 75, 211, 32, + 195, 80, 88, 202, 18, 195, 80, 88, 207, 14, 202, 18, 243, 76, 248, 59, + 207, 14, 243, 76, 248, 59, 206, 141, 229, 173, 201, 80, 219, 8, 207, 147, + 247, 54, 229, 99, 198, 12, 229, 99, 198, 13, 4, 247, 201, 213, 0, 198, + 12, 216, 139, 155, 207, 148, 201, 88, 198, 10, 198, 11, 247, 54, 247, + 175, 211, 90, 247, 175, 197, 208, 247, 176, 201, 58, 216, 25, 251, 91, + 232, 203, 234, 45, 209, 43, 247, 54, 211, 90, 209, 43, 247, 54, 199, 150, + 211, 90, 199, 150, 250, 100, 211, 90, 250, 100, 207, 89, 195, 142, 237, + 65, 197, 199, 250, 175, 218, 230, 198, 19, 215, 201, 215, 169, 207, 146, + 200, 159, 207, 146, 215, 169, 247, 106, 251, 215, 198, 9, 203, 60, 206, + 107, 201, 223, 228, 209, 198, 16, 219, 108, 81, 198, 16, 219, 108, 238, + 246, 57, 209, 43, 247, 38, 207, 7, 219, 108, 197, 234, 232, 178, 211, 94, + 209, 12, 236, 100, 213, 31, 234, 31, 57, 202, 57, 113, 213, 31, 202, 57, + 113, 208, 125, 219, 60, 223, 135, 223, 22, 209, 100, 113, 236, 130, 212, + 255, 219, 60, 113, 209, 6, 193, 142, 113, 213, 15, 193, 142, 113, 248, + 136, 213, 31, 248, 135, 248, 134, 215, 169, 248, 134, 210, 42, 213, 31, + 210, 41, 243, 37, 238, 162, 216, 163, 113, 193, 32, 113, 207, 23, 249, + 99, 113, 198, 81, 193, 142, 242, 168, 203, 15, 249, 11, 249, 9, 210, 81, + 238, 230, 238, 109, 249, 76, 242, 198, 45, 218, 193, 197, 238, 4, 206, + 108, 238, 209, 208, 189, 57, 47, 223, 109, 201, 254, 248, 11, 113, 230, + 247, 113, 238, 201, 24, 220, 1, 202, 87, 252, 5, 203, 38, 249, 75, 248, + 184, 248, 185, 248, 208, 209, 100, 80, 193, 15, 211, 147, 57, 203, 38, + 197, 209, 201, 3, 210, 191, 229, 95, 199, 93, 228, 98, 234, 87, 209, 88, + 202, 82, 193, 91, 206, 184, 247, 185, 230, 29, 24, 193, 9, 203, 73, 211, + 120, 235, 50, 215, 173, 207, 147, 198, 21, 215, 176, 248, 58, 196, 72, + 216, 36, 251, 171, 196, 72, 251, 171, 196, 72, 2, 251, 171, 2, 251, 171, + 213, 4, 251, 171, 251, 172, 237, 48, 251, 172, 250, 188, 205, 113, 211, + 90, 232, 203, 234, 45, 236, 233, 219, 8, 210, 85, 203, 60, 205, 78, 215, + 176, 205, 78, 247, 65, 202, 89, 232, 138, 205, 108, 202, 106, 250, 102, + 206, 238, 209, 169, 197, 199, 206, 134, 202, 107, 160, 16, 39, 207, 253, + 160, 16, 39, 251, 173, 160, 16, 39, 232, 202, 160, 16, 39, 234, 163, 160, + 16, 39, 193, 141, 160, 16, 39, 250, 241, 160, 16, 39, 250, 242, 207, 76, + 160, 16, 39, 250, 242, 207, 75, 160, 16, 39, 250, 242, 195, 28, 160, 16, + 39, 250, 242, 195, 27, 160, 16, 39, 195, 42, 160, 16, 39, 195, 41, 160, + 16, 39, 195, 40, 160, 16, 39, 200, 200, 160, 16, 39, 209, 194, 200, 200, + 160, 16, 39, 62, 200, 200, 160, 16, 39, 216, 162, 200, 231, 160, 16, 39, + 216, 162, 200, 230, 160, 16, 39, 216, 162, 200, 229, 160, 16, 39, 242, + 221, 160, 16, 39, 205, 153, 160, 16, 39, 213, 148, 160, 16, 39, 195, 25, + 160, 16, 39, 195, 24, 160, 16, 39, 206, 143, 205, 153, 160, 16, 39, 206, + 143, 205, 152, 160, 16, 39, 230, 214, 160, 16, 39, 202, 179, 160, 16, 39, + 223, 46, 211, 39, 160, 16, 39, 223, 46, 211, 38, 160, 16, 39, 238, 175, + 80, 223, 45, 160, 16, 39, 207, 72, 80, 223, 45, 160, 16, 39, 238, 221, + 211, 39, 160, 16, 39, 223, 44, 211, 39, 160, 16, 39, 200, 232, 80, 238, + 220, 160, 16, 39, 238, 175, 80, 238, 220, 160, 16, 39, 238, 175, 80, 238, + 219, 160, 16, 39, 238, 221, 251, 28, 160, 16, 39, 205, 154, 80, 238, 221, + 251, 28, 160, 16, 39, 200, 232, 80, 205, 154, 80, 238, 220, 160, 16, 39, + 195, 136, 160, 16, 39, 198, 138, 211, 39, 160, 16, 39, 219, 213, 211, 39, + 160, 16, 39, 251, 27, 211, 39, 160, 16, 39, 200, 232, 80, 251, 26, 160, + 16, 39, 205, 154, 80, 251, 26, 160, 16, 39, 200, 232, 80, 205, 154, 80, + 251, 26, 160, 16, 39, 195, 43, 80, 251, 26, 160, 16, 39, 207, 72, 80, + 251, 26, 160, 16, 39, 207, 72, 80, 251, 25, 160, 16, 39, 207, 71, 160, + 16, 39, 207, 70, 160, 16, 39, 207, 69, 160, 16, 39, 207, 68, 160, 16, 39, + 251, 126, 160, 16, 39, 251, 125, 160, 16, 39, 217, 42, 160, 16, 39, 205, + 163, 160, 16, 39, 250, 180, 160, 16, 39, 207, 100, 160, 16, 39, 207, 99, + 160, 16, 39, 250, 104, 160, 16, 39, 248, 102, 211, 39, 160, 16, 39, 199, + 172, 160, 16, 39, 199, 171, 160, 16, 39, 208, 3, 219, 97, 160, 16, 39, + 248, 39, 160, 16, 39, 248, 38, 160, 16, 39, 248, 37, 160, 16, 39, 251, + 100, 160, 16, 39, 211, 119, 160, 16, 39, 201, 209, 160, 16, 39, 198, 136, + 160, 16, 39, 230, 125, 160, 16, 39, 193, 129, 160, 16, 39, 208, 250, 160, + 16, 39, 247, 89, 160, 16, 39, 197, 46, 160, 16, 39, 247, 56, 215, 182, + 160, 16, 39, 205, 88, 80, 222, 160, 160, 16, 39, 247, 103, 160, 16, 39, + 197, 231, 160, 16, 39, 201, 95, 197, 231, 160, 16, 39, 219, 7, 160, 16, + 39, 202, 32, 160, 16, 39, 196, 50, 160, 16, 39, 228, 153, 235, 27, 160, + 16, 39, 250, 154, 160, 16, 39, 209, 8, 250, 154, 160, 16, 39, 247, 239, + 160, 16, 39, 208, 249, 247, 239, 160, 16, 39, 251, 97, 160, 16, 39, 201, + 41, 200, 181, 201, 40, 160, 16, 39, 201, 41, 200, 181, 201, 39, 160, 16, + 39, 200, 228, 160, 16, 39, 208, 222, 160, 16, 39, 236, 170, 160, 16, 39, + 236, 172, 160, 16, 39, 236, 171, 160, 16, 39, 208, 134, 160, 16, 39, 208, + 122, 160, 16, 39, 238, 160, 160, 16, 39, 238, 159, 160, 16, 39, 238, 158, + 160, 16, 39, 238, 157, 160, 16, 39, 238, 156, 160, 16, 39, 251, 140, 160, + 16, 39, 249, 12, 80, 217, 23, 160, 16, 39, 249, 12, 80, 195, 171, 160, + 16, 39, 207, 21, 160, 16, 39, 228, 145, 160, 16, 39, 213, 176, 160, 16, + 39, 237, 158, 160, 16, 39, 215, 196, 160, 16, 39, 134, 235, 65, 160, 16, + 39, 134, 211, 7, 62, 219, 195, 223, 28, 50, 197, 237, 62, 196, 72, 223, + 28, 50, 197, 237, 62, 206, 198, 223, 28, 50, 197, 237, 62, 235, 78, 223, + 28, 50, 197, 237, 62, 202, 79, 2, 242, 218, 216, 194, 28, 64, 242, 218, + 28, 64, 242, 218, 88, 64, 242, 218, 195, 80, 88, 64, 242, 218, 233, 156, + 88, 64, 242, 218, 64, 242, 219, 238, 242, 62, 2, 242, 218, 206, 110, 199, + 173, 62, 198, 133, 201, 185, 62, 202, 79, 2, 201, 185, 155, 64, 201, 185, + 216, 194, 64, 201, 185, 28, 64, 201, 185, 88, 64, 201, 185, 195, 80, 88, + 64, 201, 185, 233, 156, 88, 64, 201, 185, 64, 51, 238, 242, 62, 195, 80, + 2, 201, 185, 64, 51, 238, 242, 62, 216, 194, 201, 185, 51, 199, 173, 62, + 198, 133, 236, 243, 62, 195, 80, 2, 236, 243, 62, 216, 194, 2, 236, 243, + 64, 236, 244, 238, 242, 62, 195, 80, 2, 236, 243, 64, 236, 244, 238, 242, + 62, 216, 194, 236, 243, 236, 244, 199, 173, 62, 198, 133, 218, 210, 62, + 195, 80, 2, 218, 210, 62, 216, 194, 2, 218, 210, 64, 218, 211, 238, 242, + 62, 2, 218, 210, 198, 255, 35, 238, 170, 155, 35, 238, 170, 216, 194, 35, + 238, 170, 28, 35, 238, 170, 195, 80, 28, 35, 238, 170, 195, 80, 88, 35, + 238, 170, 233, 156, 88, 35, 238, 170, 198, 255, 205, 149, 155, 205, 149, + 216, 194, 205, 149, 28, 205, 149, 88, 205, 149, 195, 80, 88, 205, 149, + 233, 156, 88, 205, 149, 155, 232, 185, 201, 201, 250, 143, 216, 194, 232, + 185, 201, 201, 250, 143, 28, 232, 185, 201, 201, 250, 143, 88, 232, 185, + 201, 201, 250, 143, 195, 80, 88, 232, 185, 201, 201, 250, 143, 233, 156, + 88, 232, 185, 201, 201, 250, 143, 155, 202, 131, 201, 201, 250, 143, 216, + 194, 202, 131, 201, 201, 250, 143, 28, 202, 131, 201, 201, 250, 143, 88, + 202, 131, 201, 201, 250, 143, 195, 80, 88, 202, 131, 201, 201, 250, 143, + 233, 156, 88, 202, 131, 201, 201, 250, 143, 155, 234, 121, 201, 201, 250, + 143, 216, 194, 234, 121, 201, 201, 250, 143, 28, 234, 121, 201, 201, 250, + 143, 88, 234, 121, 201, 201, 250, 143, 195, 80, 88, 234, 121, 201, 201, + 250, 143, 155, 115, 209, 53, 62, 201, 97, 216, 194, 115, 209, 53, 62, + 201, 97, 115, 209, 53, 62, 201, 97, 216, 194, 115, 209, 53, 209, 122, + 201, 97, 155, 232, 90, 209, 53, 62, 201, 97, 216, 194, 232, 90, 209, 53, + 62, 201, 97, 232, 90, 209, 53, 62, 201, 97, 216, 194, 232, 90, 209, 53, + 209, 122, 201, 97, 207, 14, 155, 232, 90, 209, 53, 209, 122, 201, 97, + 155, 232, 185, 209, 53, 62, 201, 97, 88, 232, 185, 209, 53, 62, 201, 97, + 216, 194, 202, 131, 209, 53, 62, 201, 97, 88, 202, 131, 209, 53, 62, 201, + 97, 202, 131, 209, 53, 209, 122, 201, 97, 216, 194, 234, 121, 209, 53, + 62, 201, 97, 88, 234, 121, 209, 53, 62, 201, 97, 195, 80, 88, 234, 121, + 209, 53, 62, 201, 97, 88, 234, 121, 209, 53, 209, 122, 201, 97, 155, 197, + 34, 209, 53, 62, 201, 97, 88, 197, 34, 209, 53, 62, 201, 97, 88, 197, 34, + 209, 53, 209, 122, 201, 97, 47, 197, 237, 214, 92, 47, 197, 237, 47, 201, + 185, 214, 92, 47, 201, 185, 219, 245, 211, 44, 242, 218, 219, 245, 192, + 73, 242, 218, 219, 245, 230, 167, 242, 218, 219, 245, 208, 131, 242, 218, + 219, 245, 247, 227, 242, 218, 219, 245, 207, 82, 201, 185, 219, 245, 248, + 67, 201, 185, 219, 245, 211, 44, 201, 185, 219, 245, 192, 73, 201, 185, + 219, 245, 230, 167, 201, 185, 219, 245, 208, 131, 201, 185, 219, 245, + 247, 227, 201, 185, 88, 234, 1, 57, 117, 63, 4, 2, 197, 238, 250, 185, + 196, 62, 63, 4, 2, 197, 238, 250, 185, 96, 63, 4, 2, 197, 238, 250, 185, + 235, 75, 63, 4, 2, 197, 238, 250, 185, 117, 63, 4, 216, 194, 197, 238, + 250, 185, 196, 62, 63, 4, 216, 194, 197, 238, 250, 185, 96, 63, 4, 216, + 194, 197, 238, 250, 185, 235, 75, 63, 4, 216, 194, 197, 238, 250, 185, + 117, 63, 4, 219, 245, 197, 238, 250, 185, 196, 62, 63, 4, 219, 245, 197, + 238, 250, 185, 96, 63, 4, 219, 245, 197, 238, 250, 185, 235, 75, 63, 4, + 219, 245, 197, 238, 250, 185, 117, 63, 4, 2, 233, 251, 250, 185, 196, 62, + 63, 4, 2, 233, 251, 250, 185, 96, 63, 4, 2, 233, 251, 250, 185, 235, 75, + 63, 4, 2, 233, 251, 250, 185, 117, 63, 4, 233, 251, 250, 185, 196, 62, + 63, 4, 233, 251, 250, 185, 96, 63, 4, 233, 251, 250, 185, 235, 75, 63, 4, + 233, 251, 250, 185, 88, 117, 63, 4, 233, 251, 250, 185, 88, 196, 62, 63, + 4, 233, 251, 250, 185, 88, 96, 63, 4, 233, 251, 250, 185, 88, 235, 75, + 63, 4, 233, 251, 250, 185, 88, 117, 63, 4, 219, 245, 233, 251, 250, 185, + 88, 196, 62, 63, 4, 219, 245, 233, 251, 250, 185, 88, 96, 63, 4, 219, + 245, 233, 251, 250, 185, 88, 235, 75, 63, 4, 219, 245, 233, 251, 250, + 185, 117, 197, 236, 63, 4, 214, 201, 203, 144, 196, 62, 197, 236, 63, 4, + 214, 201, 203, 144, 96, 197, 236, 63, 4, 214, 201, 203, 144, 235, 75, + 197, 236, 63, 4, 214, 201, 203, 144, 117, 197, 236, 63, 4, 216, 194, 203, + 144, 196, 62, 197, 236, 63, 4, 216, 194, 203, 144, 96, 197, 236, 63, 4, + 216, 194, 203, 144, 235, 75, 197, 236, 63, 4, 216, 194, 203, 144, 117, + 197, 236, 63, 4, 28, 203, 144, 196, 62, 197, 236, 63, 4, 28, 203, 144, + 96, 197, 236, 63, 4, 28, 203, 144, 235, 75, 197, 236, 63, 4, 28, 203, + 144, 117, 197, 236, 63, 4, 88, 203, 144, 196, 62, 197, 236, 63, 4, 88, + 203, 144, 96, 197, 236, 63, 4, 88, 203, 144, 235, 75, 197, 236, 63, 4, + 88, 203, 144, 117, 197, 236, 63, 4, 195, 80, 88, 203, 144, 196, 62, 197, + 236, 63, 4, 195, 80, 88, 203, 144, 96, 197, 236, 63, 4, 195, 80, 88, 203, + 144, 235, 75, 197, 236, 63, 4, 195, 80, 88, 203, 144, 117, 232, 210, 55, + 196, 62, 232, 210, 55, 96, 232, 210, 55, 235, 75, 232, 210, 55, 117, 112, + 55, 196, 62, 112, 55, 96, 112, 55, 235, 75, 112, 55, 117, 239, 13, 55, + 196, 62, 239, 13, 55, 96, 239, 13, 55, 235, 75, 239, 13, 55, 117, 88, + 239, 13, 55, 196, 62, 88, 239, 13, 55, 96, 88, 239, 13, 55, 235, 75, 88, + 239, 13, 55, 117, 88, 55, 196, 62, 88, 55, 96, 88, 55, 235, 75, 88, 55, + 117, 49, 55, 196, 62, 49, 55, 96, 49, 55, 235, 75, 49, 55, 185, 193, 103, + 49, 55, 185, 234, 160, 49, 55, 201, 253, 234, 160, 49, 55, 201, 253, 193, + 103, 49, 55, 45, 50, 49, 55, 132, 143, 49, 55, 193, 75, 117, 155, 178, + 55, 193, 75, 196, 62, 155, 178, 55, 193, 75, 96, 155, 178, 55, 193, 75, + 235, 75, 155, 178, 55, 193, 75, 185, 193, 103, 155, 178, 55, 193, 75, + 185, 234, 160, 155, 178, 55, 193, 75, 201, 253, 234, 160, 155, 178, 55, + 193, 75, 201, 253, 193, 103, 155, 178, 55, 193, 75, 117, 178, 55, 193, + 75, 196, 62, 178, 55, 193, 75, 96, 178, 55, 193, 75, 235, 75, 178, 55, + 193, 75, 185, 193, 103, 178, 55, 193, 75, 185, 234, 160, 178, 55, 193, + 75, 201, 253, 234, 160, 178, 55, 193, 75, 201, 253, 193, 103, 178, 55, + 193, 75, 117, 216, 194, 178, 55, 193, 75, 196, 62, 216, 194, 178, 55, + 193, 75, 96, 216, 194, 178, 55, 193, 75, 235, 75, 216, 194, 178, 55, 193, + 75, 185, 193, 103, 216, 194, 178, 55, 193, 75, 185, 234, 160, 216, 194, + 178, 55, 193, 75, 201, 253, 234, 160, 216, 194, 178, 55, 193, 75, 201, + 253, 193, 103, 216, 194, 178, 55, 193, 75, 117, 88, 178, 55, 193, 75, + 196, 62, 88, 178, 55, 193, 75, 96, 88, 178, 55, 193, 75, 235, 75, 88, + 178, 55, 193, 75, 185, 193, 103, 88, 178, 55, 193, 75, 185, 234, 160, 88, + 178, 55, 193, 75, 201, 253, 234, 160, 88, 178, 55, 193, 75, 201, 253, + 193, 103, 88, 178, 55, 193, 75, 117, 195, 80, 88, 178, 55, 193, 75, 196, + 62, 195, 80, 88, 178, 55, 193, 75, 96, 195, 80, 88, 178, 55, 193, 75, + 235, 75, 195, 80, 88, 178, 55, 193, 75, 185, 193, 103, 195, 80, 88, 178, + 55, 193, 75, 185, 234, 160, 195, 80, 88, 178, 55, 193, 75, 201, 253, 234, + 160, 195, 80, 88, 178, 55, 193, 75, 201, 253, 193, 103, 195, 80, 88, 178, + 55, 117, 197, 238, 250, 185, 196, 62, 197, 238, 250, 185, 96, 197, 238, + 250, 185, 235, 75, 197, 238, 250, 185, 117, 64, 63, 193, 53, 197, 238, + 250, 185, 196, 62, 64, 63, 193, 53, 197, 238, 250, 185, 96, 64, 63, 193, + 53, 197, 238, 250, 185, 235, 75, 64, 63, 193, 53, 197, 238, 250, 185, + 117, 63, 4, 212, 251, 199, 210, 196, 62, 63, 4, 212, 251, 199, 210, 96, + 63, 4, 212, 251, 199, 210, 235, 75, 63, 4, 212, 251, 199, 210, 88, 63, + 203, 145, 193, 73, 108, 88, 63, 203, 145, 193, 73, 103, 198, 248, 88, 63, + 203, 145, 193, 73, 91, 230, 37, 88, 63, 203, 145, 193, 73, 91, 198, 251, + 117, 248, 26, 64, 55, 96, 248, 29, 203, 147, 64, 55, 117, 198, 49, 203, + 147, 64, 55, 96, 198, 49, 203, 147, 64, 55, 117, 219, 194, 64, 55, 96, + 206, 197, 64, 55, 117, 206, 197, 64, 55, 96, 219, 194, 64, 55, 117, 249, + 95, 203, 146, 64, 55, 96, 249, 95, 203, 146, 64, 55, 117, 232, 57, 203, + 146, 64, 55, 96, 232, 57, 203, 146, 64, 55, 64, 63, 203, 145, 193, 73, + 108, 64, 63, 203, 145, 193, 73, 103, 198, 248, 63, 209, 51, 196, 62, 199, + 20, 185, 193, 102, 63, 209, 51, 96, 199, 20, 238, 114, 201, 253, 193, + 102, 47, 238, 171, 232, 104, 4, 232, 90, 236, 94, 47, 238, 171, 232, 104, + 4, 103, 236, 94, 47, 238, 171, 232, 103, 45, 134, 242, 219, 4, 232, 90, + 236, 94, 45, 134, 242, 219, 4, 115, 236, 94, 45, 134, 242, 219, 4, 103, + 236, 94, 45, 134, 242, 219, 4, 236, 96, 45, 134, 242, 218, 235, 76, 233, + 55, 106, 235, 76, 233, 55, 212, 251, 106, 235, 76, 233, 55, 228, 219, 4, + 236, 96, 235, 76, 233, 55, 212, 251, 228, 219, 4, 236, 96, 209, 127, 232, + 206, 64, 229, 191, 247, 227, 229, 191, 209, 126, 230, 20, 191, 17, 233, + 62, 215, 212, 233, 62, 233, 63, 4, 199, 16, 214, 78, 233, 62, 198, 253, + 233, 62, 233, 63, 4, 229, 202, 206, 145, 233, 62, 228, 119, 233, 62, 3, + 80, 199, 29, 228, 155, 247, 91, 216, 214, 230, 20, 207, 142, 249, 97, 80, + 230, 20, 219, 199, 232, 190, 206, 202, 232, 190, 229, 250, 230, 21, 4, + 140, 24, 82, 232, 207, 238, 166, 228, 44, 218, 220, 191, 239, 230, 21, + 57, 233, 63, 4, 238, 191, 229, 232, 242, 160, 233, 62, 214, 188, 233, 62, + 206, 133, 211, 94, 199, 29, 232, 154, 219, 231, 235, 56, 233, 62, 218, + 157, 233, 62, 233, 63, 210, 172, 202, 51, 233, 62, 233, 63, 4, 91, 233, + 151, 207, 141, 230, 163, 233, 63, 4, 201, 98, 233, 144, 230, 163, 233, + 63, 4, 91, 219, 245, 24, 91, 2, 233, 152, 233, 63, 4, 232, 212, 238, 194, + 242, 171, 219, 72, 203, 253, 233, 63, 4, 200, 73, 238, 194, 215, 163, + 202, 59, 233, 63, 4, 202, 59, 233, 145, 24, 230, 21, 238, 194, 215, 163, + 233, 63, 4, 211, 66, 215, 164, 195, 6, 203, 49, 233, 63, 4, 233, 167, + 229, 203, 208, 219, 193, 35, 247, 248, 210, 171, 132, 198, 82, 204, 26, + 208, 207, 217, 71, 223, 135, 197, 42, 215, 178, 243, 7, 203, 4, 209, 242, + 236, 114, 247, 35, 222, 150, 232, 253, 215, 238, 210, 12, 193, 8, 193, + 142, 209, 37, 229, 255, 236, 156, 217, 16, 193, 67, 232, 146, 235, 51, 4, + 235, 49, 242, 178, 230, 235, 197, 70, 230, 236, 201, 198, 230, 221, 214, + 71, 206, 203, 232, 197, 209, 100, 216, 200, 205, 52, 209, 100, 216, 200, + 198, 252, 209, 100, 216, 200, 248, 13, 230, 230, 217, 27, 250, 173, 196, + 90, 238, 125, 201, 60, 220, 86, 201, 70, 24, 249, 61, 202, 26, 232, 138, + 236, 181, 238, 174, 250, 91, 238, 141, 249, 88, 209, 5, 247, 39, 249, 74, + 247, 251, 230, 167, 205, 160, 203, 137, 210, 157, 80, 232, 122, 201, 4, + 232, 165, 234, 136, 230, 237, 80, 216, 35, 210, 47, 221, 92, 210, 153, + 235, 32, 232, 99, 238, 225, 199, 202, 248, 14, 243, 14, 248, 19, 4, 201, + 198, 238, 135, 4, 201, 38, 242, 45, 247, 231, 209, 167, 208, 211, 238, + 108, 80, 216, 205, 205, 132, 247, 67, 232, 122, 219, 208, 230, 166, 217, + 62, 215, 189, 247, 98, 249, 77, 202, 59, 233, 63, 4, 202, 59, 233, 145, + 24, 115, 229, 189, 192, 87, 233, 62, 202, 59, 233, 63, 4, 199, 126, 233, + 63, 4, 210, 92, 228, 157, 24, 210, 92, 229, 232, 233, 63, 4, 196, 94, + 233, 145, 24, 193, 133, 215, 163, 210, 251, 233, 62, 232, 69, 233, 62, + 213, 155, 236, 179, 233, 62, 233, 63, 228, 230, 249, 97, 199, 120, 233, + 63, 4, 209, 85, 233, 144, 205, 120, 220, 95, 242, 48, 230, 217, 229, 97, + 248, 43, 232, 167, 203, 47, 238, 188, 219, 76, 233, 62, 205, 76, 197, 58, + 196, 92, 233, 62, 234, 170, 235, 41, 249, 14, 203, 123, 210, 239, 232, + 82, 233, 62, 247, 167, 237, 83, 230, 201, 219, 54, 207, 0, 203, 8, 201, + 179, 230, 249, 233, 62, 191, 85, 233, 62, 229, 184, 205, 105, 200, 38, + 238, 177, 222, 56, 219, 46, 210, 49, 229, 89, 210, 98, 207, 168, 219, 17, + 215, 180, 216, 71, 249, 83, 200, 144, 217, 72, 236, 120, 202, 73, 211, + 12, 211, 43, 202, 97, 232, 169, 210, 229, 248, 210, 248, 101, 205, 56, + 230, 130, 236, 117, 208, 195, 247, 69, 234, 67, 242, 16, 207, 82, 230, + 45, 234, 67, 242, 16, 238, 124, 230, 45, 234, 67, 242, 16, 249, 63, 234, + 67, 242, 16, 64, 230, 45, 248, 50, 219, 188, 232, 120, 198, 51, 200, 179, + 200, 174, 205, 183, 195, 78, 234, 168, 4, 229, 193, 251, 183, 215, 174, + 193, 89, 217, 54, 193, 89, 216, 204, 250, 200, 216, 204, 219, 188, 243, + 70, 193, 114, 238, 133, 205, 154, 203, 141, 248, 158, 248, 14, 231, 160, + 211, 82, 233, 44, 193, 171, 247, 168, 217, 10, 235, 60, 227, 253, 238, + 143, 247, 217, 199, 129, 197, 210, 201, 100, 209, 241, 221, 56, 209, 241, + 237, 99, 209, 241, 233, 63, 4, 215, 207, 251, 233, 243, 38, 211, 107, + 251, 233, 248, 214, 209, 241, 209, 242, 4, 229, 198, 209, 242, 223, 135, + 201, 77, 206, 125, 209, 242, 242, 180, 209, 242, 223, 135, 218, 225, 209, + 17, 217, 103, 233, 46, 195, 174, 216, 155, 234, 82, 231, 111, 191, 5, + 248, 2, 211, 44, 229, 191, 248, 123, 247, 63, 205, 89, 230, 229, 242, 48, + 202, 29, 207, 82, 231, 6, 234, 25, 232, 201, 222, 211, 208, 118, 209, + 166, 199, 70, 197, 80, 209, 226, 236, 177, 236, 131, 54, 229, 172, 242, + 21, 252, 19, 232, 203, 233, 161, 198, 53, 247, 239, 217, 101, 218, 193, + 218, 226, 248, 30, 201, 199, 80, 198, 222, 249, 62, 80, 192, 100, 205, + 183, 209, 130, 199, 119, 248, 215, 247, 228, 249, 19, 206, 136, 80, 210, + 125, 249, 38, 80, 202, 32, 201, 200, 207, 98, 214, 182, 251, 83, 214, 68, + 243, 57, 221, 114, 214, 68, 243, 57, 208, 9, 214, 68, 243, 57, 206, 126, + 214, 68, 243, 57, 248, 104, 214, 68, 243, 57, 221, 52, 214, 68, 243, 57, + 210, 64, 64, 243, 57, 221, 53, 206, 117, 232, 96, 237, 79, 62, 243, 57, + 221, 53, 206, 117, 232, 96, 237, 79, 214, 68, 243, 57, 221, 53, 206, 117, + 232, 96, 237, 79, 64, 243, 57, 221, 115, 206, 117, 213, 157, 237, 79, 64, + 243, 57, 208, 10, 206, 117, 213, 157, 237, 79, 64, 243, 57, 206, 127, + 206, 117, 213, 157, 237, 79, 64, 243, 57, 248, 105, 206, 117, 213, 157, + 237, 79, 64, 243, 57, 221, 53, 206, 117, 213, 157, 237, 79, 64, 243, 57, + 210, 65, 206, 117, 213, 157, 237, 79, 62, 243, 57, 221, 115, 206, 117, + 213, 157, 237, 79, 62, 243, 57, 208, 10, 206, 117, 213, 157, 237, 79, 62, + 243, 57, 206, 127, 206, 117, 213, 157, 237, 79, 62, 243, 57, 248, 105, + 206, 117, 213, 157, 237, 79, 62, 243, 57, 221, 53, 206, 117, 213, 157, + 237, 79, 62, 243, 57, 210, 65, 206, 117, 213, 157, 237, 79, 214, 68, 243, + 57, 221, 115, 206, 117, 213, 157, 237, 79, 214, 68, 243, 57, 208, 10, + 206, 117, 213, 157, 237, 79, 214, 68, 243, 57, 206, 127, 206, 117, 213, + 157, 237, 79, 214, 68, 243, 57, 248, 105, 206, 117, 213, 157, 237, 79, + 214, 68, 243, 57, 221, 53, 206, 117, 213, 157, 237, 79, 214, 68, 243, 57, + 210, 65, 206, 117, 213, 157, 237, 79, 64, 243, 57, 221, 53, 206, 117, 91, + 228, 110, 198, 243, 237, 79, 62, 243, 57, 221, 53, 206, 117, 91, 228, + 110, 198, 243, 237, 79, 214, 68, 243, 57, 221, 53, 206, 117, 91, 228, + 110, 198, 243, 237, 79, 64, 243, 57, 152, 221, 114, 64, 243, 57, 152, + 208, 9, 64, 243, 57, 152, 206, 126, 64, 243, 57, 152, 248, 104, 64, 243, + 57, 152, 221, 52, 64, 243, 57, 152, 210, 64, 62, 243, 57, 152, 221, 114, + 62, 243, 57, 152, 208, 9, 62, 243, 57, 152, 206, 126, 62, 243, 57, 152, + 248, 104, 62, 243, 57, 152, 221, 52, 62, 243, 57, 152, 210, 64, 214, 68, + 243, 57, 152, 221, 114, 214, 68, 243, 57, 152, 208, 9, 214, 68, 243, 57, + 152, 206, 126, 214, 68, 243, 57, 152, 248, 104, 214, 68, 243, 57, 152, + 221, 52, 214, 68, 243, 57, 152, 210, 64, 64, 243, 57, 221, 53, 206, 117, + 103, 228, 110, 197, 25, 237, 79, 62, 243, 57, 221, 53, 206, 117, 103, + 228, 110, 197, 25, 237, 79, 214, 68, 243, 57, 221, 53, 206, 117, 103, + 228, 110, 197, 25, 237, 79, 64, 243, 57, 221, 115, 206, 117, 103, 228, + 110, 203, 237, 237, 79, 64, 243, 57, 208, 10, 206, 117, 103, 228, 110, + 203, 237, 237, 79, 64, 243, 57, 206, 127, 206, 117, 103, 228, 110, 203, + 237, 237, 79, 64, 243, 57, 248, 105, 206, 117, 103, 228, 110, 203, 237, + 237, 79, 64, 243, 57, 221, 53, 206, 117, 103, 228, 110, 203, 237, 237, + 79, 64, 243, 57, 210, 65, 206, 117, 103, 228, 110, 203, 237, 237, 79, 62, + 243, 57, 221, 115, 206, 117, 103, 228, 110, 203, 237, 237, 79, 62, 243, + 57, 208, 10, 206, 117, 103, 228, 110, 203, 237, 237, 79, 62, 243, 57, + 206, 127, 206, 117, 103, 228, 110, 203, 237, 237, 79, 62, 243, 57, 248, + 105, 206, 117, 103, 228, 110, 203, 237, 237, 79, 62, 243, 57, 221, 53, + 206, 117, 103, 228, 110, 203, 237, 237, 79, 62, 243, 57, 210, 65, 206, + 117, 103, 228, 110, 203, 237, 237, 79, 214, 68, 243, 57, 221, 115, 206, + 117, 103, 228, 110, 203, 237, 237, 79, 214, 68, 243, 57, 208, 10, 206, + 117, 103, 228, 110, 203, 237, 237, 79, 214, 68, 243, 57, 206, 127, 206, + 117, 103, 228, 110, 203, 237, 237, 79, 214, 68, 243, 57, 248, 105, 206, + 117, 103, 228, 110, 203, 237, 237, 79, 214, 68, 243, 57, 221, 53, 206, + 117, 103, 228, 110, 203, 237, 237, 79, 214, 68, 243, 57, 210, 65, 206, + 117, 103, 228, 110, 203, 237, 237, 79, 64, 243, 57, 221, 53, 206, 117, + 115, 228, 110, 232, 235, 237, 79, 62, 243, 57, 221, 53, 206, 117, 115, + 228, 110, 232, 235, 237, 79, 214, 68, 243, 57, 221, 53, 206, 117, 115, + 228, 110, 232, 235, 237, 79, 64, 243, 57, 233, 252, 62, 243, 57, 233, + 252, 214, 68, 243, 57, 233, 252, 64, 243, 57, 233, 253, 206, 117, 213, + 157, 237, 79, 62, 243, 57, 233, 253, 206, 117, 213, 157, 237, 79, 214, + 68, 243, 57, 233, 253, 206, 117, 213, 157, 237, 79, 64, 243, 57, 221, 50, + 64, 243, 57, 221, 49, 64, 243, 57, 221, 51, 62, 243, 57, 221, 50, 62, + 243, 57, 221, 49, 62, 243, 57, 221, 51, 192, 205, 207, 82, 231, 113, 192, + 205, 207, 82, 217, 64, 192, 205, 207, 82, 234, 88, 192, 205, 207, 82, + 228, 152, 192, 205, 207, 82, 243, 90, 192, 205, 207, 82, 247, 66, 192, + 205, 207, 82, 202, 21, 192, 205, 62, 231, 113, 192, 205, 62, 217, 64, + 192, 205, 62, 234, 88, 192, 205, 62, 228, 152, 192, 205, 62, 243, 90, + 192, 205, 62, 247, 66, 192, 205, 62, 202, 21, 249, 60, 203, 46, 211, 87, + 200, 131, 247, 235, 203, 20, 198, 232, 205, 134, 235, 55, 80, 248, 72, + 251, 239, 249, 46, 201, 71, 192, 234, 238, 154, 191, 253, 221, 95, 210, + 119, 248, 44, 217, 102, 193, 160, 209, 128, 214, 73, 236, 109, 206, 182, + 209, 92, 246, 204, 207, 113, 250, 82, 236, 151, 220, 1, 249, 44, 216, 36, + 229, 168, 252, 4, 177, 235, 50, 242, 40, 247, 41, 205, 103, 205, 70, 220, + 85, 106, 216, 9, 193, 63, 209, 75, 203, 234, 214, 95, 221, 47, 247, 214, + 215, 166, 198, 2, 198, 50, 229, 196, 209, 101, 206, 142, 216, 10, 249, + 61, 227, 243, 247, 52, 131, 249, 8, 230, 27, 232, 139, 193, 17, 248, 201, + 242, 47, 209, 4, 209, 91, 193, 28, 233, 13, 218, 224, 238, 213, 234, 63, + 214, 75, 214, 76, 4, 234, 135, 251, 78, 229, 191, 218, 184, 210, 11, 228, + 118, 208, 219, 217, 70, 208, 219, 209, 241, 209, 242, 4, 238, 161, 248, + 65, 248, 186, 210, 6, 211, 104, 232, 165, 199, 191, 232, 126, 199, 127, + 209, 0, 219, 68, 248, 217, 222, 246, 216, 176, 233, 62, 205, 148, 233, + 62, 233, 63, 4, 211, 66, 233, 145, 24, 230, 21, 138, 215, 163, 233, 63, + 4, 210, 38, 233, 152, 233, 63, 4, 236, 250, 215, 163, 235, 94, 219, 89, + 233, 62, 248, 97, 219, 74, 247, 215, 230, 21, 4, 140, 232, 212, 24, 174, + 238, 166, 96, 230, 20, 117, 230, 20, 210, 173, 143, 230, 20, 210, 173, + 132, 230, 20, 140, 209, 51, 250, 133, 199, 29, 195, 52, 229, 192, 229, + 251, 182, 203, 231, 182, 203, 201, 182, 203, 230, 182, 203, 186, 182, + 203, 215, 182, 203, 200, 182, 203, 229, 182, 203, 178, 182, 203, 208, + 182, 203, 192, 182, 203, 222, 182, 203, 185, 182, 203, 214, 182, 203, + 199, 182, 203, 228, 182, 203, 174, 182, 203, 204, 182, 203, 189, 182, + 203, 218, 182, 203, 181, 182, 203, 195, 182, 203, 225, 182, 203, 177, + 182, 203, 207, 182, 203, 191, 182, 203, 221, 182, 203, 184, 182, 203, + 213, 182, 203, 198, 182, 203, 227, 182, 203, 172, 182, 203, 202, 182, + 203, 187, 182, 203, 216, 182, 203, 179, 182, 203, 209, 182, 203, 193, + 182, 203, 223, 182, 203, 175, 182, 203, 205, 182, 203, 219, 182, 203, + 182, 182, 203, 211, 182, 203, 196, 182, 203, 226, 182, 203, 173, 182, + 203, 203, 182, 203, 188, 182, 203, 217, 182, 203, 180, 182, 203, 210, + 182, 203, 194, 182, 203, 224, 182, 203, 176, 182, 203, 206, 182, 203, + 190, 182, 203, 220, 182, 203, 183, 182, 203, 212, 182, 203, 197, 110, 45, + 182, 236, 250, 110, 82, 45, 118, 110, 246, 229, 110, 45, 182, 236, 250, + 110, 82, 45, 118, 110, 187, 110, 45, 182, 236, 250, 116, 82, 45, 118, + 110, 246, 229, 110, 45, 182, 236, 250, 116, 82, 45, 118, 110, 187, 110, + 45, 182, 236, 250, 116, 45, 118, 110, 246, 229, 110, 50, 182, 236, 250, + 116, 82, 45, 118, 116, 246, 229, 110, 50, 182, 236, 250, 116, 82, 45, + 118, 116, 187, 110, 50, 182, 236, 250, 110, 82, 45, 118, 116, 246, 229, + 110, 50, 182, 236, 250, 110, 82, 45, 118, 116, 187, 110, 50, 182, 236, + 250, 110, 45, 118, 116, 246, 229, 110, 50, 182, 236, 250, 110, 82, 45, + 118, 116, 82, 187, 110, 50, 182, 236, 250, 110, 246, 230, 118, 110, 82, + 187, 110, 50, 182, 236, 250, 110, 45, 118, 110, 82, 187, 110, 50, 182, + 236, 250, 110, 246, 230, 118, 116, 82, 187, 110, 50, 182, 236, 250, 110, + 45, 118, 116, 82, 187, 110, 50, 182, 236, 250, 110, 246, 230, 118, 116, + 187, 110, 45, 182, 236, 250, 116, 246, 230, 118, 116, 82, 187, 110, 45, + 182, 236, 250, 116, 45, 118, 116, 82, 187, 110, 45, 182, 236, 250, 116, + 246, 230, 118, 110, 82, 187, 110, 45, 182, 236, 250, 116, 45, 118, 110, + 82, 187, 110, 45, 182, 236, 250, 116, 246, 230, 118, 110, 187, 110, 45, + 182, 236, 250, 116, 82, 45, 118, 110, 82, 187, 116, 50, 182, 236, 250, + 110, 82, 45, 118, 110, 246, 229, 116, 50, 182, 236, 250, 110, 82, 45, + 118, 110, 187, 116, 50, 182, 236, 250, 116, 82, 45, 118, 110, 246, 229, + 116, 50, 182, 236, 250, 116, 82, 45, 118, 110, 187, 116, 50, 182, 236, + 250, 116, 45, 118, 110, 246, 229, 116, 45, 182, 236, 250, 116, 82, 45, + 118, 116, 246, 229, 116, 45, 182, 236, 250, 116, 82, 45, 118, 116, 187, + 116, 45, 182, 236, 250, 110, 82, 45, 118, 116, 246, 229, 116, 45, 182, + 236, 250, 110, 82, 45, 118, 116, 187, 116, 45, 182, 236, 250, 110, 45, + 118, 116, 246, 229, 116, 45, 182, 236, 250, 110, 82, 45, 118, 116, 82, + 187, 116, 45, 182, 236, 250, 110, 246, 230, 118, 110, 82, 187, 116, 45, + 182, 236, 250, 110, 45, 118, 110, 82, 187, 116, 45, 182, 236, 250, 110, + 246, 230, 118, 116, 82, 187, 116, 45, 182, 236, 250, 110, 45, 118, 116, + 82, 187, 116, 45, 182, 236, 250, 110, 246, 230, 118, 116, 187, 116, 50, + 182, 236, 250, 116, 246, 230, 118, 116, 82, 187, 116, 50, 182, 236, 250, + 116, 45, 118, 116, 82, 187, 116, 50, 182, 236, 250, 116, 246, 230, 118, + 110, 82, 187, 116, 50, 182, 236, 250, 116, 45, 118, 110, 82, 187, 116, + 50, 182, 236, 250, 116, 246, 230, 118, 110, 187, 116, 50, 182, 236, 250, + 116, 82, 45, 118, 110, 82, 187, 116, 24, 50, 24, 110, 197, 234, 115, 208, + 16, 248, 81, 45, 24, 110, 24, 50, 197, 234, 115, 208, 16, 248, 81, 116, + 24, 45, 24, 110, 197, 234, 115, 208, 16, 248, 81, 45, 24, 116, 24, 50, + 197, 234, 115, 208, 16, 248, 81, 45, 197, 234, 91, 208, 18, 248, 81, 116, + 197, 234, 91, 208, 18, 248, 81, 50, 197, 234, 91, 208, 18, 248, 81, 110, + 197, 234, 91, 208, 18, 248, 81, 81, 91, 234, 117, 248, 79, 81, 91, 234, + 117, 248, 78, 81, 91, 234, 117, 248, 77, 81, 91, 234, 117, 248, 76, 81, + 91, 234, 117, 248, 75, 81, 91, 234, 117, 248, 74, 228, 209, 91, 234, 117, + 248, 79, 228, 209, 91, 234, 117, 248, 78, 228, 209, 91, 234, 117, 248, + 77, 228, 209, 91, 234, 117, 248, 76, 228, 209, 91, 234, 117, 248, 75, + 228, 209, 91, 234, 117, 248, 74, 45, 24, 110, 91, 234, 117, 248, 81, 45, + 24, 116, 91, 234, 117, 248, 81, 50, 24, 116, 91, 234, 117, 248, 81, 50, + 24, 110, 91, 234, 117, 248, 81, 116, 24, 110, 91, 234, 117, 248, 81, 228, + 209, 91, 234, 117, 248, 80, 116, 91, 208, 18, 248, 81, 116, 115, 234, + 115, 248, 81, 116, 232, 185, 234, 115, 248, 81, 116, 115, 208, 16, 248, + 81, 116, 203, 242, 234, 115, 248, 81, 50, 91, 208, 18, 248, 81, 50, 115, + 234, 115, 248, 81, 50, 232, 185, 234, 115, 248, 81, 50, 115, 208, 16, + 248, 81, 50, 203, 242, 234, 115, 248, 81, 45, 134, 216, 194, 203, 148, + 50, 134, 216, 194, 203, 148, 116, 134, 216, 194, 203, 148, 110, 134, 216, + 194, 203, 148, 223, 67, 216, 194, 203, 148, 116, 134, 182, 24, 110, 134, + 223, 67, 216, 194, 203, 148, 116, 134, 223, 67, 216, 194, 203, 149, 24, + 110, 134, 248, 81, 45, 134, 223, 67, 216, 194, 203, 149, 24, 50, 134, + 248, 81, 243, 76, 248, 60, 232, 220, 223, 67, 243, 76, 248, 60, 232, 220, + 88, 228, 209, 232, 220, 116, 45, 118, 110, 50, 232, 220, 116, 50, 118, + 110, 45, 232, 220, 116, 24, 110, 197, 234, 134, 248, 81, 45, 24, 50, 197, + 234, 134, 248, 81, 116, 45, 197, 234, 216, 194, 203, 148, 116, 50, 197, + 234, 216, 194, 203, 148, 110, 50, 197, 234, 216, 194, 203, 148, 110, 45, + 197, 234, 216, 194, 203, 148, 111, 122, 155, 236, 250, 116, 246, 230, + 118, 82, 219, 200, 111, 122, 155, 236, 250, 116, 246, 230, 118, 82, 187, + 111, 122, 155, 236, 250, 82, 45, 118, 110, 246, 229, 111, 122, 155, 236, + 250, 82, 50, 118, 110, 246, 229, 111, 122, 155, 236, 250, 116, 246, 230, + 118, 82, 45, 118, 110, 246, 229, 111, 122, 155, 236, 250, 116, 246, 230, + 118, 82, 50, 118, 110, 246, 229, 111, 122, 155, 236, 250, 82, 45, 118, + 110, 246, 230, 118, 82, 187, 111, 122, 155, 236, 250, 82, 45, 118, 116, + 246, 230, 118, 82, 187, 111, 122, 155, 236, 250, 116, 246, 230, 118, 82, + 45, 24, 82, 50, 118, 110, 246, 229, 111, 122, 155, 236, 250, 116, 246, + 230, 118, 82, 50, 24, 82, 45, 118, 110, 246, 229, 111, 122, 155, 236, + 250, 116, 246, 230, 118, 82, 50, 118, 110, 246, 230, 118, 82, 219, 200, + 111, 122, 155, 236, 250, 116, 246, 230, 118, 82, 45, 118, 110, 246, 230, + 118, 82, 187, 111, 122, 155, 236, 250, 82, 45, 118, 116, 246, 230, 118, + 82, 50, 118, 110, 246, 229, 111, 122, 155, 236, 250, 82, 50, 118, 116, + 246, 230, 118, 82, 45, 118, 110, 246, 229, 111, 122, 155, 236, 250, 236, + 243, 111, 122, 155, 228, 209, 4, 81, 105, 250, 184, 209, 52, 223, 67, + 243, 78, 77, 45, 134, 206, 37, 217, 70, 50, 134, 206, 37, 217, 70, 223, + 67, 235, 75, 63, 4, 198, 131, 219, 190, 117, 63, 24, 116, 24, 110, 91, + 234, 117, 248, 81, 96, 63, 24, 116, 24, 110, 91, 234, 117, 248, 81, 235, + 75, 63, 24, 50, 91, 234, 117, 248, 81, 196, 62, 63, 24, 50, 91, 234, 117, + 248, 81, 45, 134, 232, 131, 50, 134, 232, 131, 195, 13, 35, 238, 170, 50, + 211, 66, 112, 236, 96, 214, 92, 236, 250, 238, 170, 214, 92, 236, 250, + 82, 50, 118, 110, 246, 229, 214, 92, 236, 250, 236, 243, 64, 88, 205, + 150, 4, 206, 108, 238, 209, 45, 198, 252, 64, 50, 209, 51, 223, 120, 82, + 198, 252, 64, 50, 209, 51, 223, 120, 50, 198, 252, 64, 50, 209, 51, 223, + 120, 214, 92, 112, 208, 8, 77, 201, 70, 232, 227, 201, 70, 232, 228, 4, + 250, 197, 207, 141, 201, 70, 232, 228, 219, 207, 219, 200, 201, 70, 232, + 228, 219, 207, 187, 201, 70, 232, 228, 4, 235, 62, 64, 196, 72, 243, 52, + 205, 37, 17, 191, 77, 205, 37, 17, 108, 205, 37, 17, 109, 205, 37, 17, + 139, 205, 37, 17, 137, 205, 37, 17, 153, 205, 37, 17, 173, 205, 37, 17, + 181, 205, 37, 17, 176, 205, 37, 17, 184, 12, 15, 227, 240, 12, 15, 227, + 239, 12, 15, 227, 238, 12, 15, 227, 237, 12, 15, 227, 236, 12, 15, 227, + 235, 12, 15, 227, 234, 12, 15, 227, 233, 12, 15, 227, 232, 12, 15, 227, + 231, 12, 15, 227, 230, 12, 15, 227, 229, 12, 15, 227, 228, 12, 15, 227, + 227, 12, 15, 227, 226, 12, 15, 227, 225, 12, 15, 227, 224, 12, 15, 227, + 223, 12, 15, 227, 222, 12, 15, 227, 221, 12, 15, 227, 220, 12, 15, 227, + 219, 12, 15, 227, 218, 12, 15, 227, 217, 12, 15, 227, 216, 12, 15, 227, + 215, 12, 15, 227, 214, 12, 15, 227, 213, 12, 15, 227, 212, 12, 15, 227, + 211, 12, 15, 227, 210, 12, 15, 227, 209, 12, 15, 227, 208, 12, 15, 227, + 207, 12, 15, 227, 206, 12, 15, 227, 205, 12, 15, 227, 204, 12, 15, 227, + 203, 12, 15, 227, 202, 12, 15, 227, 201, 12, 15, 227, 200, 12, 15, 227, + 199, 12, 15, 227, 198, 12, 15, 227, 197, 12, 15, 227, 196, 12, 15, 227, + 195, 12, 15, 227, 194, 12, 15, 227, 193, 12, 15, 227, 192, 12, 15, 227, + 191, 12, 15, 227, 190, 12, 15, 227, 189, 12, 15, 227, 188, 12, 15, 227, + 187, 12, 15, 227, 186, 12, 15, 227, 185, 12, 15, 227, 184, 12, 15, 227, + 183, 12, 15, 227, 182, 12, 15, 227, 181, 12, 15, 227, 180, 12, 15, 227, + 179, 12, 15, 227, 178, 12, 15, 227, 177, 12, 15, 227, 176, 12, 15, 227, + 175, 12, 15, 227, 174, 12, 15, 227, 173, 12, 15, 227, 172, 12, 15, 227, + 171, 12, 15, 227, 170, 12, 15, 227, 169, 12, 15, 227, 168, 12, 15, 227, + 167, 12, 15, 227, 166, 12, 15, 227, 165, 12, 15, 227, 164, 12, 15, 227, + 163, 12, 15, 227, 162, 12, 15, 227, 161, 12, 15, 227, 160, 12, 15, 227, + 159, 12, 15, 227, 158, 12, 15, 227, 157, 12, 15, 227, 156, 12, 15, 227, + 155, 12, 15, 227, 154, 12, 15, 227, 153, 12, 15, 227, 152, 12, 15, 227, + 151, 12, 15, 227, 150, 12, 15, 227, 149, 12, 15, 227, 148, 12, 15, 227, + 147, 12, 15, 227, 146, 12, 15, 227, 145, 12, 15, 227, 144, 12, 15, 227, + 143, 12, 15, 227, 142, 12, 15, 227, 141, 12, 15, 227, 140, 12, 15, 227, + 139, 12, 15, 227, 138, 12, 15, 227, 137, 12, 15, 227, 136, 12, 15, 227, + 135, 12, 15, 227, 134, 12, 15, 227, 133, 12, 15, 227, 132, 12, 15, 227, + 131, 12, 15, 227, 130, 12, 15, 227, 129, 12, 15, 227, 128, 12, 15, 227, + 127, 12, 15, 227, 126, 12, 15, 227, 125, 12, 15, 227, 124, 12, 15, 227, + 123, 12, 15, 227, 122, 12, 15, 227, 121, 12, 15, 227, 120, 12, 15, 227, + 119, 12, 15, 227, 118, 12, 15, 227, 117, 12, 15, 227, 116, 12, 15, 227, + 115, 12, 15, 227, 114, 12, 15, 227, 113, 12, 15, 227, 112, 12, 15, 227, + 111, 12, 15, 227, 110, 12, 15, 227, 109, 12, 15, 227, 108, 12, 15, 227, + 107, 12, 15, 227, 106, 12, 15, 227, 105, 12, 15, 227, 104, 12, 15, 227, + 103, 12, 15, 227, 102, 12, 15, 227, 101, 12, 15, 227, 100, 12, 15, 227, + 99, 12, 15, 227, 98, 12, 15, 227, 97, 12, 15, 227, 96, 12, 15, 227, 95, + 12, 15, 227, 94, 12, 15, 227, 93, 12, 15, 227, 92, 12, 15, 227, 91, 12, + 15, 227, 90, 12, 15, 227, 89, 12, 15, 227, 88, 12, 15, 227, 87, 12, 15, + 227, 86, 12, 15, 227, 85, 12, 15, 227, 84, 12, 15, 227, 83, 12, 15, 227, + 82, 12, 15, 227, 81, 12, 15, 227, 80, 12, 15, 227, 79, 12, 15, 227, 78, + 12, 15, 227, 77, 12, 15, 227, 76, 12, 15, 227, 75, 12, 15, 227, 74, 12, + 15, 227, 73, 12, 15, 227, 72, 12, 15, 227, 71, 12, 15, 227, 70, 12, 15, + 227, 69, 12, 15, 227, 68, 12, 15, 227, 67, 12, 15, 227, 66, 12, 15, 227, + 65, 12, 15, 227, 64, 12, 15, 227, 63, 12, 15, 227, 62, 12, 15, 227, 61, + 12, 15, 227, 60, 12, 15, 227, 59, 12, 15, 227, 58, 12, 15, 227, 57, 12, + 15, 227, 56, 12, 15, 227, 55, 12, 15, 227, 54, 12, 15, 227, 53, 12, 15, + 227, 52, 12, 15, 227, 51, 12, 15, 227, 50, 12, 15, 227, 49, 12, 15, 227, + 48, 12, 15, 227, 47, 12, 15, 227, 46, 12, 15, 227, 45, 12, 15, 227, 44, + 12, 15, 227, 43, 12, 15, 227, 42, 12, 15, 227, 41, 12, 15, 227, 40, 12, + 15, 227, 39, 12, 15, 227, 38, 12, 15, 227, 37, 12, 15, 227, 36, 12, 15, + 227, 35, 12, 15, 227, 34, 12, 15, 227, 33, 12, 15, 227, 32, 12, 15, 227, + 31, 12, 15, 227, 30, 12, 15, 227, 29, 12, 15, 227, 28, 12, 15, 227, 27, + 12, 15, 227, 26, 12, 15, 227, 25, 12, 15, 227, 24, 12, 15, 227, 23, 12, + 15, 227, 22, 12, 15, 227, 21, 12, 15, 227, 20, 12, 15, 227, 19, 12, 15, + 227, 18, 12, 15, 227, 17, 12, 15, 227, 16, 12, 15, 227, 15, 12, 15, 227, + 14, 12, 15, 227, 13, 12, 15, 227, 12, 12, 15, 227, 11, 12, 15, 227, 10, + 12, 15, 227, 9, 12, 15, 227, 8, 12, 15, 227, 7, 12, 15, 227, 6, 12, 15, + 227, 5, 12, 15, 227, 4, 12, 15, 227, 3, 12, 15, 227, 2, 12, 15, 227, 1, + 12, 15, 227, 0, 12, 15, 226, 255, 12, 15, 226, 254, 12, 15, 226, 253, 12, + 15, 226, 252, 12, 15, 226, 251, 12, 15, 226, 250, 12, 15, 226, 249, 12, + 15, 226, 248, 12, 15, 226, 247, 12, 15, 226, 246, 12, 15, 226, 245, 12, + 15, 226, 244, 12, 15, 226, 243, 12, 15, 226, 242, 12, 15, 226, 241, 12, + 15, 226, 240, 12, 15, 226, 239, 12, 15, 226, 238, 12, 15, 226, 237, 12, + 15, 226, 236, 12, 15, 226, 235, 12, 15, 226, 234, 12, 15, 226, 233, 12, + 15, 226, 232, 12, 15, 226, 231, 12, 15, 226, 230, 12, 15, 226, 229, 12, + 15, 226, 228, 12, 15, 226, 227, 12, 15, 226, 226, 12, 15, 226, 225, 12, + 15, 226, 224, 12, 15, 226, 223, 12, 15, 226, 222, 12, 15, 226, 221, 12, + 15, 226, 220, 12, 15, 226, 219, 12, 15, 226, 218, 12, 15, 226, 217, 12, + 15, 226, 216, 12, 15, 226, 215, 12, 15, 226, 214, 12, 15, 226, 213, 12, + 15, 226, 212, 12, 15, 226, 211, 12, 15, 226, 210, 12, 15, 226, 209, 12, + 15, 226, 208, 12, 15, 226, 207, 12, 15, 226, 206, 12, 15, 226, 205, 12, + 15, 226, 204, 12, 15, 226, 203, 12, 15, 226, 202, 12, 15, 226, 201, 12, + 15, 226, 200, 12, 15, 226, 199, 12, 15, 226, 198, 12, 15, 226, 197, 12, + 15, 226, 196, 12, 15, 226, 195, 12, 15, 226, 194, 12, 15, 226, 193, 12, + 15, 226, 192, 12, 15, 226, 191, 12, 15, 226, 190, 12, 15, 226, 189, 12, + 15, 226, 188, 12, 15, 226, 187, 12, 15, 226, 186, 12, 15, 226, 185, 12, + 15, 226, 184, 12, 15, 226, 183, 12, 15, 226, 182, 12, 15, 226, 181, 12, + 15, 226, 180, 12, 15, 226, 179, 12, 15, 226, 178, 12, 15, 226, 177, 12, + 15, 226, 176, 12, 15, 226, 175, 12, 15, 226, 174, 12, 15, 226, 173, 12, + 15, 226, 172, 12, 15, 226, 171, 12, 15, 226, 170, 12, 15, 226, 169, 12, + 15, 226, 168, 12, 15, 226, 167, 12, 15, 226, 166, 12, 15, 226, 165, 12, + 15, 226, 164, 12, 15, 226, 163, 12, 15, 226, 162, 12, 15, 226, 161, 12, + 15, 226, 160, 12, 15, 226, 159, 12, 15, 226, 158, 12, 15, 226, 157, 12, + 15, 226, 156, 12, 15, 226, 155, 12, 15, 226, 154, 12, 15, 226, 153, 12, + 15, 226, 152, 12, 15, 226, 151, 12, 15, 226, 150, 12, 15, 226, 149, 12, + 15, 226, 148, 12, 15, 226, 147, 12, 15, 226, 146, 12, 15, 226, 145, 12, + 15, 226, 144, 12, 15, 226, 143, 12, 15, 226, 142, 12, 15, 226, 141, 12, + 15, 226, 140, 12, 15, 226, 139, 12, 15, 226, 138, 12, 15, 226, 137, 12, + 15, 226, 136, 12, 15, 226, 135, 12, 15, 226, 134, 12, 15, 226, 133, 12, + 15, 226, 132, 12, 15, 226, 131, 12, 15, 226, 130, 12, 15, 226, 129, 12, + 15, 226, 128, 12, 15, 226, 127, 12, 15, 226, 126, 12, 15, 226, 125, 12, + 15, 226, 124, 12, 15, 226, 123, 12, 15, 226, 122, 12, 15, 226, 121, 12, + 15, 226, 120, 12, 15, 226, 119, 12, 15, 226, 118, 12, 15, 226, 117, 12, + 15, 226, 116, 12, 15, 226, 115, 12, 15, 226, 114, 12, 15, 226, 113, 12, + 15, 226, 112, 12, 15, 226, 111, 12, 15, 226, 110, 12, 15, 226, 109, 12, + 15, 226, 108, 12, 15, 226, 107, 12, 15, 226, 106, 12, 15, 226, 105, 12, + 15, 226, 104, 12, 15, 226, 103, 12, 15, 226, 102, 12, 15, 226, 101, 12, + 15, 226, 100, 12, 15, 226, 99, 12, 15, 226, 98, 12, 15, 226, 97, 12, 15, + 226, 96, 12, 15, 226, 95, 12, 15, 226, 94, 12, 15, 226, 93, 12, 15, 226, + 92, 12, 15, 226, 91, 12, 15, 226, 90, 12, 15, 226, 89, 12, 15, 226, 88, + 12, 15, 226, 87, 12, 15, 226, 86, 12, 15, 226, 85, 12, 15, 226, 84, 12, + 15, 226, 83, 12, 15, 226, 82, 12, 15, 226, 81, 12, 15, 226, 80, 12, 15, + 226, 79, 12, 15, 226, 78, 12, 15, 226, 77, 12, 15, 226, 76, 12, 15, 226, + 75, 12, 15, 226, 74, 12, 15, 226, 73, 12, 15, 226, 72, 12, 15, 226, 71, + 12, 15, 226, 70, 12, 15, 226, 69, 12, 15, 226, 68, 12, 15, 226, 67, 12, + 15, 226, 66, 12, 15, 226, 65, 12, 15, 226, 64, 12, 15, 226, 63, 12, 15, + 226, 62, 12, 15, 226, 61, 12, 15, 226, 60, 12, 15, 226, 59, 12, 15, 226, + 58, 12, 15, 226, 57, 12, 15, 226, 56, 12, 15, 226, 55, 12, 15, 226, 54, + 12, 15, 226, 53, 12, 15, 226, 52, 12, 15, 226, 51, 12, 15, 226, 50, 12, + 15, 226, 49, 12, 15, 226, 48, 12, 15, 226, 47, 12, 15, 226, 46, 12, 15, + 226, 45, 12, 15, 226, 44, 12, 15, 226, 43, 12, 15, 226, 42, 12, 15, 226, + 41, 12, 15, 226, 40, 12, 15, 226, 39, 12, 15, 226, 38, 12, 15, 226, 37, + 12, 15, 226, 36, 12, 15, 226, 35, 12, 15, 226, 34, 12, 15, 226, 33, 12, + 15, 226, 32, 12, 15, 226, 31, 12, 15, 226, 30, 12, 15, 226, 29, 12, 15, + 226, 28, 12, 15, 226, 27, 12, 15, 226, 26, 12, 15, 226, 25, 12, 15, 226, + 24, 12, 15, 226, 23, 12, 15, 226, 22, 12, 15, 226, 21, 12, 15, 226, 20, + 12, 15, 226, 19, 12, 15, 226, 18, 12, 15, 226, 17, 12, 15, 226, 16, 12, + 15, 226, 15, 12, 15, 226, 14, 12, 15, 226, 13, 12, 15, 226, 12, 12, 15, + 226, 11, 12, 15, 226, 10, 12, 15, 226, 9, 12, 15, 226, 8, 12, 15, 226, 7, + 12, 15, 226, 6, 12, 15, 226, 5, 12, 15, 226, 4, 12, 15, 226, 3, 12, 15, + 226, 2, 12, 15, 226, 1, 12, 15, 226, 0, 12, 15, 225, 255, 12, 15, 225, + 254, 12, 15, 225, 253, 12, 15, 225, 252, 12, 15, 225, 251, 12, 15, 225, + 250, 12, 15, 225, 249, 12, 15, 225, 248, 12, 15, 225, 247, 12, 15, 225, + 246, 12, 15, 225, 245, 12, 15, 225, 244, 12, 15, 225, 243, 12, 15, 225, + 242, 12, 15, 225, 241, 12, 15, 225, 240, 12, 15, 225, 239, 12, 15, 225, + 238, 12, 15, 225, 237, 12, 15, 225, 236, 12, 15, 225, 235, 12, 15, 225, + 234, 12, 15, 225, 233, 12, 15, 225, 232, 12, 15, 225, 231, 12, 15, 225, + 230, 12, 15, 225, 229, 12, 15, 225, 228, 12, 15, 225, 227, 12, 15, 225, + 226, 12, 15, 225, 225, 12, 15, 225, 224, 12, 15, 225, 223, 12, 15, 225, + 222, 12, 15, 225, 221, 12, 15, 225, 220, 12, 15, 225, 219, 12, 15, 225, + 218, 12, 15, 225, 217, 12, 15, 225, 216, 12, 15, 225, 215, 12, 15, 225, + 214, 12, 15, 225, 213, 12, 15, 225, 212, 12, 15, 225, 211, 219, 252, 199, + 218, 199, 219, 201, 242, 199, 219, 233, 175, 77, 199, 219, 207, 247, 77, + 199, 219, 31, 57, 199, 219, 236, 110, 57, 199, 219, 210, 4, 57, 199, 219, + 251, 86, 199, 219, 250, 255, 199, 219, 45, 210, 103, 199, 219, 50, 210, + 103, 199, 219, 250, 143, 199, 219, 107, 57, 199, 219, 242, 26, 199, 219, + 228, 57, 199, 219, 232, 42, 201, 58, 199, 219, 202, 18, 199, 219, 17, + 191, 77, 199, 219, 17, 108, 199, 219, 17, 109, 199, 219, 17, 139, 199, + 219, 17, 137, 199, 219, 17, 153, 199, 219, 17, 173, 199, 219, 17, 181, + 199, 219, 17, 176, 199, 219, 17, 184, 199, 219, 242, 35, 199, 219, 204, + 20, 199, 219, 219, 156, 57, 199, 219, 234, 1, 57, 199, 219, 230, 170, 57, + 199, 219, 208, 8, 77, 199, 219, 242, 24, 250, 132, 199, 219, 8, 6, 1, 65, + 199, 219, 8, 6, 1, 250, 70, 199, 219, 8, 6, 1, 247, 145, 199, 219, 8, 6, + 1, 238, 80, 199, 219, 8, 6, 1, 73, 199, 219, 8, 6, 1, 233, 134, 199, 219, + 8, 6, 1, 232, 14, 199, 219, 8, 6, 1, 230, 83, 199, 219, 8, 6, 1, 70, 199, + 219, 8, 6, 1, 223, 7, 199, 219, 8, 6, 1, 222, 125, 199, 219, 8, 6, 1, + 170, 199, 219, 8, 6, 1, 218, 147, 199, 219, 8, 6, 1, 215, 47, 199, 219, + 8, 6, 1, 74, 199, 219, 8, 6, 1, 210, 226, 199, 219, 8, 6, 1, 208, 97, + 199, 219, 8, 6, 1, 148, 199, 219, 8, 6, 1, 206, 3, 199, 219, 8, 6, 1, + 200, 39, 199, 219, 8, 6, 1, 69, 199, 219, 8, 6, 1, 196, 8, 199, 219, 8, + 6, 1, 193, 221, 199, 219, 8, 6, 1, 192, 235, 199, 219, 8, 6, 1, 192, 159, + 199, 219, 8, 6, 1, 191, 166, 199, 219, 45, 51, 248, 5, 199, 219, 207, 14, + 202, 18, 199, 219, 50, 51, 248, 5, 199, 219, 242, 210, 252, 8, 199, 219, + 131, 219, 88, 199, 219, 230, 177, 252, 8, 199, 219, 8, 2, 1, 65, 199, + 219, 8, 2, 1, 250, 70, 199, 219, 8, 2, 1, 247, 145, 199, 219, 8, 2, 1, + 238, 80, 199, 219, 8, 2, 1, 73, 199, 219, 8, 2, 1, 233, 134, 199, 219, 8, + 2, 1, 232, 14, 199, 219, 8, 2, 1, 230, 83, 199, 219, 8, 2, 1, 70, 199, + 219, 8, 2, 1, 223, 7, 199, 219, 8, 2, 1, 222, 125, 199, 219, 8, 2, 1, + 170, 199, 219, 8, 2, 1, 218, 147, 199, 219, 8, 2, 1, 215, 47, 199, 219, + 8, 2, 1, 74, 199, 219, 8, 2, 1, 210, 226, 199, 219, 8, 2, 1, 208, 97, + 199, 219, 8, 2, 1, 148, 199, 219, 8, 2, 1, 206, 3, 199, 219, 8, 2, 1, + 200, 39, 199, 219, 8, 2, 1, 69, 199, 219, 8, 2, 1, 196, 8, 199, 219, 8, + 2, 1, 193, 221, 199, 219, 8, 2, 1, 192, 235, 199, 219, 8, 2, 1, 192, 159, + 199, 219, 8, 2, 1, 191, 166, 199, 219, 45, 238, 124, 248, 5, 199, 219, + 81, 219, 88, 199, 219, 50, 238, 124, 248, 5, 199, 219, 198, 147, 247, 79, + 199, 218, 66, 204, 206, 66, 204, 195, 66, 204, 184, 66, 204, 172, 66, + 204, 161, 66, 204, 150, 66, 204, 139, 66, 204, 128, 66, 204, 117, 66, + 204, 109, 66, 204, 108, 66, 204, 107, 66, 204, 106, 66, 204, 104, 66, + 204, 103, 66, 204, 102, 66, 204, 101, 66, 204, 100, 66, 204, 99, 66, 204, + 98, 66, 204, 97, 66, 204, 96, 66, 204, 95, 66, 204, 93, 66, 204, 92, 66, + 204, 91, 66, 204, 90, 66, 204, 89, 66, 204, 88, 66, 204, 87, 66, 204, 86, + 66, 204, 85, 66, 204, 84, 66, 204, 82, 66, 204, 81, 66, 204, 80, 66, 204, + 79, 66, 204, 78, 66, 204, 77, 66, 204, 76, 66, 204, 75, 66, 204, 74, 66, + 204, 73, 66, 204, 71, 66, 204, 70, 66, 204, 69, 66, 204, 68, 66, 204, 67, + 66, 204, 66, 66, 204, 65, 66, 204, 64, 66, 204, 63, 66, 204, 62, 66, 204, + 60, 66, 204, 59, 66, 204, 58, 66, 204, 57, 66, 204, 56, 66, 204, 55, 66, + 204, 54, 66, 204, 53, 66, 204, 52, 66, 204, 51, 66, 204, 49, 66, 204, 48, + 66, 204, 47, 66, 204, 46, 66, 204, 45, 66, 204, 44, 66, 204, 43, 66, 204, + 42, 66, 204, 41, 66, 204, 40, 66, 204, 38, 66, 204, 37, 66, 204, 36, 66, + 204, 35, 66, 204, 34, 66, 204, 33, 66, 204, 32, 66, 204, 31, 66, 204, 30, + 66, 204, 29, 66, 205, 26, 66, 205, 25, 66, 205, 24, 66, 205, 23, 66, 205, + 22, 66, 205, 21, 66, 205, 20, 66, 205, 19, 66, 205, 18, 66, 205, 17, 66, + 205, 15, 66, 205, 14, 66, 205, 13, 66, 205, 12, 66, 205, 11, 66, 205, 10, + 66, 205, 9, 66, 205, 8, 66, 205, 7, 66, 205, 6, 66, 205, 4, 66, 205, 3, + 66, 205, 2, 66, 205, 1, 66, 205, 0, 66, 204, 255, 66, 204, 254, 66, 204, + 253, 66, 204, 252, 66, 204, 251, 66, 204, 249, 66, 204, 248, 66, 204, + 247, 66, 204, 246, 66, 204, 245, 66, 204, 244, 66, 204, 243, 66, 204, + 242, 66, 204, 241, 66, 204, 240, 66, 204, 238, 66, 204, 237, 66, 204, + 236, 66, 204, 235, 66, 204, 234, 66, 204, 233, 66, 204, 232, 66, 204, + 231, 66, 204, 230, 66, 204, 229, 66, 204, 227, 66, 204, 226, 66, 204, + 225, 66, 204, 224, 66, 204, 223, 66, 204, 222, 66, 204, 221, 66, 204, + 220, 66, 204, 219, 66, 204, 218, 66, 204, 216, 66, 204, 215, 66, 204, + 214, 66, 204, 213, 66, 204, 212, 66, 204, 211, 66, 204, 210, 66, 204, + 209, 66, 204, 208, 66, 204, 207, 66, 204, 205, 66, 204, 204, 66, 204, + 203, 66, 204, 202, 66, 204, 201, 66, 204, 200, 66, 204, 199, 66, 204, + 198, 66, 204, 197, 66, 204, 196, 66, 204, 194, 66, 204, 193, 66, 204, + 192, 66, 204, 191, 66, 204, 190, 66, 204, 189, 66, 204, 188, 66, 204, + 187, 66, 204, 186, 66, 204, 185, 66, 204, 183, 66, 204, 182, 66, 204, + 181, 66, 204, 180, 66, 204, 179, 66, 204, 178, 66, 204, 177, 66, 204, + 176, 66, 204, 175, 66, 204, 174, 66, 204, 171, 66, 204, 170, 66, 204, + 169, 66, 204, 168, 66, 204, 167, 66, 204, 166, 66, 204, 165, 66, 204, + 164, 66, 204, 163, 66, 204, 162, 66, 204, 160, 66, 204, 159, 66, 204, + 158, 66, 204, 157, 66, 204, 156, 66, 204, 155, 66, 204, 154, 66, 204, + 153, 66, 204, 152, 66, 204, 151, 66, 204, 149, 66, 204, 148, 66, 204, + 147, 66, 204, 146, 66, 204, 145, 66, 204, 144, 66, 204, 143, 66, 204, + 142, 66, 204, 141, 66, 204, 140, 66, 204, 138, 66, 204, 137, 66, 204, + 136, 66, 204, 135, 66, 204, 134, 66, 204, 133, 66, 204, 132, 66, 204, + 131, 66, 204, 130, 66, 204, 129, 66, 204, 127, 66, 204, 126, 66, 204, + 125, 66, 204, 124, 66, 204, 123, 66, 204, 122, 66, 204, 121, 66, 204, + 120, 66, 204, 119, 66, 204, 118, 66, 204, 116, 66, 204, 115, 66, 204, + 114, 66, 204, 113, 66, 204, 112, 66, 204, 111, 66, 204, 110, 212, 125, + 212, 127, 201, 93, 80, 229, 200, 202, 22, 201, 93, 80, 199, 48, 201, 1, + 234, 53, 80, 199, 48, 233, 203, 234, 53, 80, 198, 7, 234, 15, 234, 39, + 234, 40, 251, 255, 252, 0, 251, 138, 248, 188, 249, 90, 247, 224, 246, + 192, 199, 225, 228, 209, 199, 225, 228, 134, 199, 231, 219, 89, 233, 9, + 214, 66, 219, 88, 234, 53, 80, 219, 88, 219, 137, 213, 92, 234, 18, 219, + 89, 199, 225, 81, 199, 225, 193, 248, 232, 107, 233, 9, 232, 242, 247, + 40, 207, 17, 238, 189, 203, 72, 211, 4, 219, 9, 108, 202, 41, 203, 72, + 223, 134, 219, 9, 191, 77, 202, 217, 237, 165, 219, 79, 233, 228, 236, + 140, 237, 30, 238, 231, 108, 237, 154, 237, 30, 238, 231, 109, 237, 153, + 237, 30, 238, 231, 139, 237, 152, 237, 30, 238, 231, 137, 237, 151, 214, + 92, 251, 255, 214, 219, 200, 65, 223, 199, 200, 69, 234, 53, 80, 198, 8, + 248, 81, 233, 210, 247, 78, 247, 80, 234, 53, 80, 216, 193, 234, 16, 200, + 221, 200, 240, 233, 228, 233, 229, 223, 109, 204, 6, 137, 232, 222, 204, + 5, 232, 52, 223, 109, 204, 6, 139, 230, 154, 204, 5, 230, 151, 223, 109, + 204, 6, 109, 207, 93, 204, 5, 206, 69, 223, 109, 204, 6, 108, 196, 87, + 204, 5, 196, 41, 201, 245, 237, 71, 237, 73, 210, 198, 246, 191, 210, + 200, 136, 211, 146, 208, 213, 228, 212, 247, 250, 209, 248, 229, 160, + 248, 10, 213, 31, 247, 250, 229, 160, 214, 177, 223, 120, 223, 122, 214, + 59, 219, 88, 214, 90, 201, 93, 80, 205, 31, 250, 214, 201, 170, 234, 53, + 80, 205, 31, 250, 214, 233, 231, 246, 192, 199, 226, 203, 247, 228, 209, + 199, 226, 203, 247, 228, 131, 246, 192, 199, 226, 4, 222, 137, 228, 209, + 199, 226, 4, 222, 137, 228, 132, 219, 89, 199, 226, 203, 247, 81, 199, + 226, 203, 247, 193, 247, 210, 95, 219, 89, 232, 94, 210, 95, 219, 89, + 235, 79, 209, 86, 210, 95, 219, 89, 249, 89, 210, 95, 219, 89, 196, 73, + 209, 80, 207, 14, 219, 89, 233, 9, 207, 14, 223, 120, 206, 252, 202, 165, + 203, 72, 109, 202, 162, 201, 172, 202, 165, 203, 72, 139, 202, 161, 201, + 171, 237, 30, 238, 231, 201, 25, 237, 149, 208, 198, 196, 40, 108, 208, + 198, 196, 38, 208, 157, 208, 198, 196, 40, 109, 208, 198, 196, 37, 208, + 156, 203, 248, 198, 6, 201, 90, 201, 8, 247, 79, 246, 191, 247, 13, 216, + 150, 193, 168, 215, 67, 201, 93, 80, 230, 139, 250, 214, 201, 93, 80, + 208, 175, 250, 214, 201, 244, 234, 53, 80, 230, 139, 250, 214, 234, 53, + 80, 208, 175, 250, 214, 234, 13, 201, 93, 80, 201, 25, 202, 4, 202, 165, + 230, 182, 246, 192, 223, 68, 203, 165, 202, 165, 246, 192, 223, 68, 205, + 80, 238, 231, 204, 2, 223, 68, 238, 149, 201, 26, 199, 75, 201, 113, 211, + 57, 200, 54, 242, 25, 211, 24, 208, 199, 216, 149, 209, 68, 250, 251, + 208, 191, 242, 25, 251, 12, 214, 165, 202, 226, 8, 6, 1, 231, 54, 8, 2, + 1, 231, 54, 246, 212, 251, 115, 200, 59, 200, 227, 242, 36, 202, 105, + 219, 200, 222, 55, 1, 219, 38, 219, 249, 1, 232, 136, 232, 127, 219, 249, + 1, 232, 136, 233, 21, 219, 249, 1, 206, 157, 219, 249, 1, 219, 19, 86, + 87, 248, 93, 203, 45, 231, 17, 216, 99, 207, 4, 30, 125, 192, 54, 30, + 125, 192, 50, 30, 125, 201, 148, 30, 125, 192, 55, 232, 29, 232, 28, 232, + 27, 215, 69, 232, 26, 190, 232, 190, 233, 190, 235, 218, 207, 206, 165, + 218, 209, 206, 167, 210, 56, 218, 206, 206, 164, 213, 62, 215, 255, 193, + 50, 218, 208, 206, 166, 232, 51, 210, 55, 193, 109, 234, 77, 232, 39, + 216, 73, 211, 94, 196, 42, 113, 216, 73, 237, 171, 113, 117, 197, 236, + 63, 4, 54, 81, 105, 96, 197, 236, 63, 4, 54, 81, 105, 11, 5, 223, 23, 77, + 79, 1, 221, 181, 219, 49, 194, 248, 194, 137, 194, 69, 194, 58, 194, 47, + 194, 36, 194, 25, 194, 14, 194, 3, 194, 247, 194, 236, 194, 225, 194, + 214, 194, 203, 194, 192, 194, 181, 208, 214, 232, 107, 39, 81, 50, 64, + 219, 163, 248, 5, 247, 150, 211, 41, 77, 248, 52, 190, 234, 10, 3, 212, + 135, 199, 79, 10, 3, 212, 135, 138, 212, 135, 247, 183, 138, 247, 182, + 216, 199, 6, 1, 230, 83, 216, 199, 6, 1, 214, 56, 216, 199, 2, 1, 230, + 83, 216, 199, 2, 1, 214, 56, 61, 1, 234, 226, 72, 37, 16, 232, 50, 202, + 101, 243, 4, 195, 161, 194, 170, 194, 159, 194, 148, 194, 136, 194, 125, + 194, 114, 194, 103, 194, 92, 194, 81, 194, 73, 194, 72, 194, 71, 194, 70, + 194, 68, 194, 67, 194, 66, 194, 65, 194, 64, 194, 63, 194, 62, 194, 61, + 194, 60, 194, 59, 194, 57, 194, 56, 194, 55, 194, 54, 194, 53, 194, 52, + 194, 51, 194, 50, 194, 49, 194, 48, 194, 46, 194, 45, 194, 44, 194, 43, + 194, 42, 194, 41, 194, 40, 194, 39, 194, 38, 194, 37, 194, 35, 194, 34, + 194, 33, 194, 32, 194, 31, 194, 30, 194, 29, 194, 28, 194, 27, 194, 26, + 194, 24, 194, 23, 194, 22, 194, 21, 194, 20, 194, 19, 194, 18, 194, 17, + 194, 16, 194, 15, 194, 13, 194, 12, 194, 11, 194, 10, 194, 9, 194, 8, + 194, 7, 194, 6, 194, 5, 194, 4, 194, 2, 194, 1, 194, 0, 193, 255, 193, + 254, 193, 253, 193, 252, 193, 251, 193, 250, 193, 249, 194, 246, 194, + 245, 194, 244, 194, 243, 194, 242, 194, 241, 194, 240, 194, 239, 194, + 238, 194, 237, 194, 235, 194, 234, 194, 233, 194, 232, 194, 231, 194, + 230, 194, 229, 194, 228, 194, 227, 194, 226, 194, 224, 194, 223, 194, + 222, 194, 221, 194, 220, 194, 219, 194, 218, 194, 217, 194, 216, 194, + 215, 194, 213, 194, 212, 194, 211, 194, 210, 194, 209, 194, 208, 194, + 207, 194, 206, 194, 205, 194, 204, 194, 202, 194, 201, 194, 200, 194, + 199, 194, 198, 194, 197, 194, 196, 194, 195, 194, 194, 194, 193, 194, + 191, 194, 190, 194, 189, 194, 188, 194, 187, 194, 186, 194, 185, 194, + 184, 194, 183, 194, 182, 194, 180, 194, 179, 194, 178, 194, 177, 194, + 176, 194, 175, 194, 174, 194, 173, 194, 172, 194, 171, 194, 169, 194, + 168, 194, 167, 194, 166, 194, 165, 194, 164, 194, 163, 194, 162, 194, + 161, 194, 160, 194, 158, 194, 157, 194, 156, 194, 155, 194, 154, 194, + 153, 194, 152, 194, 151, 194, 150, 194, 149, 194, 147, 194, 146, 194, + 145, 194, 144, 194, 143, 194, 142, 194, 141, 194, 140, 194, 139, 194, + 138, 194, 135, 194, 134, 194, 133, 194, 132, 194, 131, 194, 130, 194, + 129, 194, 128, 194, 127, 194, 126, 194, 124, 194, 123, 194, 122, 194, + 121, 194, 120, 194, 119, 194, 118, 194, 117, 194, 116, 194, 115, 194, + 113, 194, 112, 194, 111, 194, 110, 194, 109, 194, 108, 194, 107, 194, + 106, 194, 105, 194, 104, 194, 102, 194, 101, 194, 100, 194, 99, 194, 98, + 194, 97, 194, 96, 194, 95, 194, 94, 194, 93, 194, 91, 194, 90, 194, 89, + 194, 88, 194, 87, 194, 86, 194, 85, 194, 84, 194, 83, 194, 82, 194, 80, + 194, 79, 194, 78, 194, 77, 194, 76, 194, 75, 194, 74, 221, 194, 31, 57, + 221, 194, 250, 143, 221, 194, 17, 191, 77, 221, 194, 17, 108, 221, 194, + 17, 109, 221, 194, 17, 139, 221, 194, 17, 137, 221, 194, 17, 153, 221, + 194, 17, 173, 221, 194, 17, 181, 221, 194, 17, 176, 221, 194, 17, 184, 8, + 6, 1, 41, 4, 217, 126, 24, 230, 176, 8, 2, 1, 41, 4, 217, 126, 24, 230, + 176, 8, 6, 1, 228, 44, 4, 217, 126, 24, 230, 176, 8, 2, 1, 228, 44, 4, + 217, 126, 24, 230, 176, 8, 6, 1, 126, 4, 217, 126, 24, 230, 176, 8, 2, 1, + 126, 4, 217, 126, 24, 230, 176, 8, 6, 1, 234, 227, 4, 81, 219, 89, 60, 8, + 2, 1, 234, 227, 4, 81, 219, 89, 60, 8, 6, 1, 234, 227, 4, 81, 219, 89, + 248, 183, 24, 230, 176, 8, 2, 1, 234, 227, 4, 81, 219, 89, 248, 183, 24, + 230, 176, 8, 6, 1, 234, 227, 4, 81, 219, 89, 248, 183, 24, 251, 250, 8, + 2, 1, 234, 227, 4, 81, 219, 89, 248, 183, 24, 251, 250, 8, 6, 1, 186, 4, + 81, 219, 89, 60, 8, 2, 1, 186, 4, 81, 219, 89, 60, 8, 6, 1, 186, 4, 81, + 219, 89, 248, 183, 24, 230, 176, 8, 2, 1, 186, 4, 81, 219, 89, 248, 183, + 24, 230, 176, 8, 6, 1, 186, 4, 81, 219, 89, 248, 183, 24, 251, 250, 8, 2, + 1, 186, 4, 81, 219, 89, 248, 183, 24, 251, 250, 8, 6, 1, 206, 4, 4, 81, + 219, 89, 60, 8, 2, 1, 206, 4, 4, 81, 219, 89, 60, 8, 6, 1, 234, 227, 4, + 242, 210, 24, 217, 125, 8, 2, 1, 234, 227, 4, 242, 210, 24, 217, 125, 8, + 6, 1, 234, 227, 4, 242, 210, 24, 247, 44, 8, 2, 1, 234, 227, 4, 242, 210, + 24, 247, 44, 8, 2, 1, 228, 44, 4, 75, 95, 24, 251, 250, 8, 2, 1, 214, 57, + 4, 198, 148, 56, 8, 6, 1, 41, 4, 211, 127, 24, 251, 250, 8, 2, 1, 41, 4, + 211, 127, 24, 251, 250, 8, 6, 1, 41, 4, 211, 127, 24, 198, 147, 8, 2, 1, + 41, 4, 211, 127, 24, 198, 147, 8, 6, 1, 234, 227, 4, 211, 127, 24, 251, + 250, 8, 2, 1, 234, 227, 4, 211, 127, 24, 251, 250, 8, 6, 1, 234, 227, 4, + 211, 127, 24, 198, 147, 8, 2, 1, 234, 227, 4, 211, 127, 24, 198, 147, 8, + 6, 1, 234, 227, 4, 75, 95, 24, 251, 250, 8, 2, 1, 234, 227, 4, 75, 95, + 24, 251, 250, 8, 6, 1, 234, 227, 4, 75, 95, 24, 198, 147, 8, 2, 1, 234, + 227, 4, 75, 95, 24, 198, 147, 8, 2, 1, 228, 44, 4, 75, 95, 24, 230, 176, + 8, 2, 1, 228, 44, 4, 75, 95, 24, 198, 147, 8, 6, 1, 228, 44, 4, 211, 127, + 24, 251, 250, 8, 2, 1, 228, 44, 4, 211, 127, 24, 75, 95, 24, 251, 250, 8, + 6, 1, 228, 44, 4, 211, 127, 24, 198, 147, 8, 2, 1, 228, 44, 4, 211, 127, + 24, 75, 95, 24, 198, 147, 8, 6, 1, 223, 8, 4, 198, 147, 8, 2, 1, 223, 8, + 4, 75, 95, 24, 198, 147, 8, 6, 1, 220, 119, 4, 198, 147, 8, 2, 1, 220, + 119, 4, 198, 147, 8, 6, 1, 218, 148, 4, 198, 147, 8, 2, 1, 218, 148, 4, + 198, 147, 8, 6, 1, 207, 217, 4, 198, 147, 8, 2, 1, 207, 217, 4, 198, 147, + 8, 6, 1, 126, 4, 211, 127, 24, 251, 250, 8, 2, 1, 126, 4, 211, 127, 24, + 251, 250, 8, 6, 1, 126, 4, 211, 127, 24, 198, 147, 8, 2, 1, 126, 4, 211, + 127, 24, 198, 147, 8, 6, 1, 126, 4, 217, 126, 24, 251, 250, 8, 2, 1, 126, + 4, 217, 126, 24, 251, 250, 8, 6, 1, 126, 4, 217, 126, 24, 198, 147, 8, 2, + 1, 126, 4, 217, 126, 24, 198, 147, 8, 2, 1, 251, 230, 4, 230, 176, 8, 2, + 1, 211, 66, 186, 4, 230, 176, 8, 2, 1, 211, 66, 186, 4, 251, 250, 8, 2, + 1, 152, 196, 9, 4, 230, 176, 8, 2, 1, 152, 196, 9, 4, 251, 250, 8, 2, 1, + 205, 82, 4, 230, 176, 8, 2, 1, 205, 82, 4, 251, 250, 8, 2, 1, 228, 218, + 205, 82, 4, 230, 176, 8, 2, 1, 228, 218, 205, 82, 4, 251, 250, 9, 204, 2, + 99, 4, 230, 25, 95, 4, 251, 141, 9, 204, 2, 99, 4, 230, 25, 95, 4, 193, + 131, 9, 204, 2, 99, 4, 230, 25, 95, 4, 130, 217, 79, 9, 204, 2, 99, 4, + 230, 25, 95, 4, 211, 139, 9, 204, 2, 99, 4, 230, 25, 95, 4, 69, 9, 204, + 2, 99, 4, 230, 25, 95, 4, 191, 225, 9, 204, 2, 99, 4, 230, 25, 95, 4, 73, + 9, 204, 2, 99, 4, 230, 25, 95, 4, 251, 229, 9, 204, 2, 213, 12, 4, 221, + 235, 104, 204, 2, 39, 1, 208, 89, 104, 204, 2, 39, 1, 221, 169, 104, 204, + 2, 39, 1, 231, 29, 104, 204, 2, 39, 1, 191, 123, 104, 204, 2, 39, 1, 237, + 135, 104, 204, 2, 39, 1, 207, 1, 104, 204, 2, 39, 1, 233, 68, 104, 204, + 2, 39, 1, 191, 175, 248, 175, 204, 2, 39, 1, 206, 104, 248, 175, 204, 2, + 39, 1, 207, 1, 248, 175, 204, 2, 39, 1, 191, 175, 230, 111, 204, 2, 39, + 1, 219, 49, 230, 111, 204, 2, 39, 1, 203, 160, 230, 111, 204, 2, 39, 1, + 221, 169, 230, 111, 204, 2, 39, 1, 231, 29, 230, 111, 204, 2, 39, 1, 191, + 123, 230, 111, 204, 2, 39, 1, 233, 68, 211, 35, 204, 2, 39, 1, 206, 104, + 211, 35, 204, 2, 39, 1, 207, 1, 248, 175, 1, 221, 163, 44, 119, 222, 125, + 44, 119, 214, 56, 44, 119, 247, 145, 44, 119, 212, 90, 44, 119, 197, 131, + 44, 119, 213, 67, 44, 119, 200, 39, 44, 119, 215, 47, 44, 119, 210, 226, + 44, 119, 218, 147, 44, 119, 192, 159, 44, 119, 148, 44, 119, 170, 44, + 119, 196, 8, 44, 119, 219, 39, 44, 119, 219, 50, 44, 119, 206, 105, 44, + 119, 213, 49, 44, 119, 223, 7, 44, 119, 203, 162, 44, 119, 201, 173, 44, + 119, 206, 3, 44, 119, 230, 83, 44, 119, 220, 223, 44, 5, 222, 100, 44, 5, + 221, 142, 44, 5, 221, 121, 44, 5, 220, 208, 44, 5, 220, 163, 44, 5, 221, + 253, 44, 5, 221, 244, 44, 5, 222, 75, 44, 5, 221, 43, 44, 5, 221, 17, 44, + 5, 222, 16, 44, 5, 214, 53, 44, 5, 214, 2, 44, 5, 213, 254, 44, 5, 213, + 223, 44, 5, 213, 214, 44, 5, 214, 41, 44, 5, 214, 39, 44, 5, 214, 50, 44, + 5, 213, 235, 44, 5, 213, 230, 44, 5, 214, 43, 44, 5, 247, 111, 44, 5, + 242, 237, 44, 5, 242, 227, 44, 5, 238, 148, 44, 5, 238, 106, 44, 5, 246, + 250, 44, 5, 246, 242, 44, 5, 247, 100, 44, 5, 242, 51, 44, 5, 238, 227, + 44, 5, 247, 28, 44, 5, 212, 87, 44, 5, 212, 68, 44, 5, 212, 62, 44, 5, + 212, 45, 44, 5, 212, 37, 44, 5, 212, 77, 44, 5, 212, 76, 44, 5, 212, 84, + 44, 5, 212, 52, 44, 5, 212, 49, 44, 5, 212, 80, 44, 5, 197, 127, 44, 5, + 197, 107, 44, 5, 197, 106, 44, 5, 197, 95, 44, 5, 197, 92, 44, 5, 197, + 123, 44, 5, 197, 122, 44, 5, 197, 126, 44, 5, 197, 105, 44, 5, 197, 104, + 44, 5, 197, 125, 44, 5, 213, 65, 44, 5, 213, 51, 44, 5, 213, 50, 44, 5, + 213, 34, 44, 5, 213, 33, 44, 5, 213, 61, 44, 5, 213, 60, 44, 5, 213, 64, + 44, 5, 213, 36, 44, 5, 213, 35, 44, 5, 213, 63, 44, 5, 199, 240, 44, 5, + 198, 188, 44, 5, 198, 165, 44, 5, 197, 90, 44, 5, 197, 45, 44, 5, 199, + 140, 44, 5, 199, 116, 44, 5, 199, 212, 44, 5, 159, 44, 5, 198, 54, 44, 5, + 199, 161, 44, 5, 214, 236, 44, 5, 213, 205, 44, 5, 213, 172, 44, 5, 212, + 165, 44, 5, 212, 102, 44, 5, 214, 107, 44, 5, 214, 96, 44, 5, 214, 222, + 44, 5, 213, 30, 44, 5, 213, 13, 44, 5, 214, 191, 44, 5, 210, 210, 44, 5, + 209, 176, 44, 5, 209, 136, 44, 5, 208, 158, 44, 5, 208, 121, 44, 5, 210, + 53, 44, 5, 210, 40, 44, 5, 210, 188, 44, 5, 209, 65, 44, 5, 209, 30, 44, + 5, 210, 70, 44, 5, 217, 130, 44, 5, 216, 81, 44, 5, 216, 43, 44, 5, 215, + 139, 44, 5, 215, 79, 44, 5, 216, 213, 44, 5, 216, 192, 44, 5, 217, 91, + 44, 5, 215, 251, 44, 5, 215, 194, 44, 5, 217, 6, 44, 5, 192, 140, 44, 5, + 192, 33, 44, 5, 192, 23, 44, 5, 191, 225, 44, 5, 191, 188, 44, 5, 192, + 80, 44, 5, 192, 77, 44, 5, 192, 119, 44, 5, 192, 12, 44, 5, 191, 246, 44, + 5, 192, 91, 44, 5, 207, 173, 44, 5, 206, 252, 44, 5, 206, 190, 44, 5, + 206, 63, 44, 5, 206, 24, 44, 5, 207, 108, 44, 5, 207, 79, 44, 5, 207, + 151, 44, 5, 206, 157, 44, 5, 206, 129, 44, 5, 207, 120, 44, 5, 220, 101, + 44, 5, 219, 122, 44, 5, 219, 104, 44, 5, 218, 203, 44, 5, 218, 173, 44, + 5, 219, 214, 44, 5, 219, 204, 44, 5, 220, 72, 44, 5, 219, 19, 44, 5, 218, + 240, 44, 5, 219, 232, 44, 5, 195, 184, 44, 5, 195, 66, 44, 5, 195, 48, + 44, 5, 193, 246, 44, 5, 193, 238, 44, 5, 195, 150, 44, 5, 195, 145, 44, + 5, 195, 180, 44, 5, 195, 21, 44, 5, 195, 5, 44, 5, 195, 157, 44, 5, 219, + 37, 44, 5, 219, 32, 44, 5, 219, 31, 44, 5, 219, 28, 44, 5, 219, 27, 44, + 5, 219, 34, 44, 5, 219, 33, 44, 5, 219, 36, 44, 5, 219, 30, 44, 5, 219, + 29, 44, 5, 219, 35, 44, 5, 219, 48, 44, 5, 219, 41, 44, 5, 219, 40, 44, + 5, 219, 24, 44, 5, 219, 23, 44, 5, 219, 44, 44, 5, 219, 43, 44, 5, 219, + 47, 44, 5, 219, 26, 44, 5, 219, 25, 44, 5, 219, 45, 44, 5, 206, 103, 44, + 5, 206, 92, 44, 5, 206, 91, 44, 5, 206, 84, 44, 5, 206, 77, 44, 5, 206, + 99, 44, 5, 206, 98, 44, 5, 206, 102, 44, 5, 206, 90, 44, 5, 206, 89, 44, + 5, 206, 101, 44, 5, 213, 47, 44, 5, 213, 42, 44, 5, 213, 41, 44, 5, 213, + 38, 44, 5, 213, 37, 44, 5, 213, 44, 44, 5, 213, 43, 44, 5, 213, 46, 44, + 5, 213, 40, 44, 5, 213, 39, 44, 5, 213, 45, 44, 5, 223, 3, 44, 5, 222, + 217, 44, 5, 222, 209, 44, 5, 222, 155, 44, 5, 222, 135, 44, 5, 222, 238, + 44, 5, 222, 236, 44, 5, 222, 253, 44, 5, 222, 174, 44, 5, 222, 164, 44, + 5, 222, 245, 44, 5, 203, 155, 44, 5, 203, 76, 44, 5, 203, 71, 44, 5, 203, + 0, 44, 5, 202, 238, 44, 5, 203, 108, 44, 5, 203, 106, 44, 5, 203, 143, + 44, 5, 203, 51, 44, 5, 203, 43, 44, 5, 203, 117, 44, 5, 201, 169, 44, 5, + 201, 137, 44, 5, 201, 133, 44, 5, 201, 124, 44, 5, 201, 121, 44, 5, 201, + 143, 44, 5, 201, 142, 44, 5, 201, 168, 44, 5, 201, 129, 44, 5, 201, 128, + 44, 5, 201, 145, 44, 5, 205, 192, 44, 5, 202, 217, 44, 5, 202, 188, 44, + 5, 200, 255, 44, 5, 200, 156, 44, 5, 205, 63, 44, 5, 205, 45, 44, 5, 205, + 176, 44, 5, 202, 41, 44, 5, 202, 11, 44, 5, 205, 109, 44, 5, 230, 58, 44, + 5, 229, 126, 44, 5, 229, 98, 44, 5, 228, 128, 44, 5, 228, 97, 44, 5, 229, + 213, 44, 5, 229, 183, 44, 5, 230, 47, 44, 5, 228, 247, 44, 5, 228, 220, + 44, 5, 229, 225, 44, 5, 220, 222, 44, 5, 220, 221, 44, 5, 220, 216, 44, + 5, 220, 215, 44, 5, 220, 212, 44, 5, 220, 211, 44, 5, 220, 218, 44, 5, + 220, 217, 44, 5, 220, 220, 44, 5, 220, 214, 44, 5, 220, 213, 44, 5, 220, + 219, 44, 5, 203, 9, 165, 119, 3, 192, 105, 165, 119, 3, 207, 139, 165, + 119, 3, 207, 45, 100, 1, 196, 220, 94, 119, 3, 242, 43, 157, 94, 119, 3, + 242, 43, 221, 190, 94, 119, 3, 242, 43, 221, 43, 94, 119, 3, 242, 43, + 221, 159, 94, 119, 3, 242, 43, 213, 235, 94, 119, 3, 242, 43, 247, 112, + 94, 119, 3, 242, 43, 246, 209, 94, 119, 3, 242, 43, 242, 51, 94, 119, 3, + 242, 43, 243, 20, 94, 119, 3, 242, 43, 212, 52, 94, 119, 3, 242, 43, 237, + 241, 94, 119, 3, 242, 43, 197, 116, 94, 119, 3, 242, 43, 236, 129, 94, + 119, 3, 242, 43, 197, 111, 94, 119, 3, 242, 43, 180, 94, 119, 3, 242, 43, + 199, 247, 94, 119, 3, 242, 43, 199, 44, 94, 119, 3, 242, 43, 159, 94, + 119, 3, 242, 43, 198, 236, 94, 119, 3, 242, 43, 213, 30, 94, 119, 3, 242, + 43, 249, 103, 94, 119, 3, 242, 43, 209, 219, 94, 119, 3, 242, 43, 209, + 65, 94, 119, 3, 242, 43, 209, 190, 94, 119, 3, 242, 43, 215, 251, 94, + 119, 3, 242, 43, 192, 12, 94, 119, 3, 242, 43, 206, 157, 94, 119, 3, 242, + 43, 219, 19, 94, 119, 3, 242, 43, 195, 21, 94, 119, 3, 242, 43, 203, 160, + 94, 119, 3, 242, 43, 201, 170, 94, 119, 3, 242, 43, 189, 94, 119, 3, 242, + 43, 144, 94, 119, 3, 242, 43, 171, 94, 18, 3, 242, 43, 208, 89, 94, 223, + 121, 18, 3, 242, 43, 208, 27, 94, 223, 121, 18, 3, 242, 43, 206, 12, 94, + 223, 121, 18, 3, 242, 43, 206, 5, 94, 223, 121, 18, 3, 242, 43, 208, 69, + 94, 18, 3, 211, 102, 94, 18, 3, 252, 115, 229, 88, 1, 248, 133, 214, 54, + 229, 88, 1, 248, 133, 214, 2, 229, 88, 1, 248, 133, 213, 223, 229, 88, 1, + 248, 133, 214, 41, 229, 88, 1, 248, 133, 213, 235, 71, 1, 248, 133, 214, + 54, 71, 1, 248, 133, 214, 2, 71, 1, 248, 133, 213, 223, 71, 1, 248, 133, + 214, 41, 71, 1, 248, 133, 213, 235, 71, 1, 251, 176, 246, 250, 71, 1, + 251, 176, 197, 90, 71, 1, 251, 176, 159, 71, 1, 251, 176, 210, 226, 59, + 1, 233, 159, 233, 158, 238, 235, 163, 164, 59, 1, 233, 158, 233, 159, + 238, 235, 163, 164, }; static const unsigned short phrasebook_offset1[] = { @@ -20721,39 +20584,39 @@ static const unsigned short phrasebook_offset1[] = { 148, 104, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 104, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 104, 182, 183, 104, 184, 185, - 186, 187, 104, 188, 189, 190, 191, 192, 193, 194, 104, 195, 196, 197, - 198, 104, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, - 104, 104, 104, 104, 104, 104, 104, 104, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, + 186, 187, 104, 188, 189, 190, 191, 192, 193, 104, 104, 194, 195, 196, + 197, 104, 198, 104, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 104, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, - 104, 104, 104, 104, 104, 104, 104, 223, 224, 225, 226, 227, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 221, 222, 223, 224, 225, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, - 104, 104, 104, 104, 104, 104, 104, 104, 104, 228, 229, 230, 231, 232, - 233, 234, 235, 104, 104, 104, 104, 236, 237, 238, 239, 104, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 226, 227, 228, 229, 230, + 231, 232, 233, 104, 104, 104, 104, 234, 235, 236, 237, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, - 104, 104, 104, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 104, + 104, 104, 104, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, - 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 250, 251, - 252, 253, 254, 255, 256, 104, 104, 104, 104, 104, 104, 104, 104, 104, - 104, 104, 104, 104, 104, 104, 104, 104, 104, 257, 258, 104, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 248, 249, + 250, 251, 252, 253, 254, 104, 104, 104, 104, 104, 104, 104, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 255, 256, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, - 104, 104, 104, 104, 104, 259, 260, 261, 262, 263, 264, 265, 266, 267, - 104, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 104, 104, 104, 104, 104, 104, 104, 104, 282, 104, 283, 284, 285, - 104, 104, 286, 104, 104, 104, 287, 104, 104, 104, 104, 104, 288, 289, - 290, 291, 104, 104, 104, 104, 104, 292, 293, 294, 104, 295, 296, 104, - 104, 297, 298, 299, 300, 301, 104, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 104, 104, 104, + 104, 104, 104, 104, 104, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 104, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 104, 104, 104, 104, 104, 104, 104, 104, 280, 104, 281, 104, 282, + 104, 104, 283, 104, 104, 104, 104, 104, 104, 104, 104, 104, 284, 285, + 286, 287, 104, 104, 104, 104, 104, 288, 289, 290, 104, 291, 292, 104, + 104, 293, 294, 295, 296, 297, 104, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, @@ -20789,8 +20652,8 @@ static const unsigned short phrasebook_offset1[] = { 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, - 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 320, 321, 322, - 323, 324, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 316, 317, 318, + 319, 320, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, @@ -21193,7 +21056,7 @@ static const unsigned short phrasebook_offset1[] = { 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, - 104, 104, 104, 325, 104, 326, 327, 104, 104, 104, 104, 104, 104, 104, + 104, 104, 104, 321, 104, 322, 323, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, @@ -21229,8 +21092,8 @@ static const unsigned short phrasebook_offset1[] = { 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, - 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 328, 329, 330, - 331, 332, 333, 334, 335, 104, 104, 104, 104, 104, 104, 104, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 324, 325, 326, + 327, 328, 329, 330, 331, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, @@ -21583,2052 +21446,2045 @@ static const unsigned int phrasebook_offset2[] = { 17007, 17013, 0, 17019, 17024, 17030, 17036, 0, 0, 0, 0, 0, 0, 0, 17041, 17046, 0, 0, 0, 0, 0, 0, 17053, 17060, 0, 17065, 17071, 17077, 17083, 0, 0, 17090, 17095, 17099, 17103, 17107, 17111, 17115, 17119, 17123, 17127, - 0, 17131, 17136, 17141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17149, 17155, - 17159, 17163, 17167, 17173, 17176, 17180, 17183, 17187, 17190, 17194, - 17198, 0, 17202, 17205, 17209, 0, 17213, 17216, 17220, 17224, 17227, - 17231, 17235, 17239, 17243, 17247, 17251, 17255, 17259, 17263, 17267, - 17271, 17275, 17279, 17283, 17287, 17291, 17295, 17299, 17302, 17306, - 17309, 17313, 17317, 17321, 17324, 17327, 17330, 17334, 17337, 17341, - 17345, 17349, 17353, 17357, 17360, 17363, 17367, 17374, 17380, 17384, - 17389, 17393, 17398, 17402, 17407, 17412, 0, 17418, 17422, 17427, 0, - 17432, 17436, 17441, 17446, 17450, 17455, 0, 0, 0, 0, 17459, 17465, - 17471, 17477, 17483, 17489, 17495, 17501, 17507, 17513, 17519, 17525, - 17531, 17536, 17541, 17546, 0, 0, 17552, 17556, 17559, 17562, 17565, - 17568, 17571, 17574, 17577, 17580, 17583, 17587, 17592, 17596, 17602, - 17608, 17614, 17620, 17626, 17632, 17636, 17642, 17648, 17654, 17659, - 17665, 0, 17671, 17675, 17679, 0, 17683, 17687, 17691, 17695, 17699, - 17703, 17707, 17711, 17715, 17719, 17723, 17727, 17731, 17735, 17739, - 17743, 17747, 17751, 0, 0, 0, 17755, 17761, 17767, 17773, 17779, 17785, - 17791, 17797, 17803, 17809, 17815, 17821, 17829, 17835, 17841, 17847, - 17853, 17859, 17865, 17871, 17877, 17883, 17889, 17895, 0, 17901, 17907, - 17913, 17919, 17925, 17931, 17935, 17941, 17945, 0, 17949, 0, 0, 17955, - 17959, 17965, 17971, 17977, 17981, 17987, 0, 0, 0, 17991, 0, 0, 0, 0, - 17995, 18000, 18007, 18014, 18021, 18028, 0, 18035, 0, 18042, 18047, - 18052, 18059, 18066, 18075, 18086, 18095, 0, 0, 0, 0, 0, 0, 18100, 18106, - 18111, 18116, 18121, 18126, 18131, 18136, 18141, 18146, 0, 0, 18151, - 18158, 18165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18170, 18178, 18186, - 18194, 18202, 18210, 18218, 18226, 18234, 18242, 18250, 18258, 18266, - 18274, 18282, 18289, 18297, 18305, 18313, 18321, 18329, 18336, 18344, - 18352, 18360, 18368, 18376, 18384, 18392, 18400, 18408, 18416, 18424, - 18431, 18439, 18447, 18453, 18461, 18467, 18475, 18483, 18491, 18499, - 18507, 18515, 18522, 18530, 18536, 18543, 18551, 18559, 18567, 18574, - 18582, 18590, 18598, 18605, 18613, 0, 0, 0, 0, 18619, 18626, 18633, - 18641, 18648, 18658, 18668, 18674, 18680, 18686, 18694, 18702, 18710, - 18718, 18724, 18730, 18736, 18742, 18747, 18751, 18755, 18759, 18763, - 18767, 18771, 18775, 18779, 18783, 18789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 18795, 18800, 0, 18807, 0, 18814, 18821, 18826, 18831, 18838, 0, - 18845, 18852, 18857, 18864, 18871, 18878, 18885, 18892, 18899, 18904, - 18908, 18915, 18922, 18929, 18934, 18939, 18944, 18951, 18958, 18965, - 18972, 18979, 18984, 18989, 0, 18996, 0, 19003, 19008, 19015, 19022, - 19029, 19036, 19043, 19047, 19054, 19058, 19063, 19071, 19077, 19083, - 19088, 19094, 19100, 19106, 19111, 19117, 19124, 19132, 19139, 0, 0, - 19146, 19151, 19157, 19162, 19168, 0, 19174, 0, 19179, 19186, 19193, - 19200, 19207, 19212, 19216, 0, 19220, 19225, 19229, 19233, 19237, 19241, - 19245, 19249, 19253, 19257, 0, 0, 19261, 19267, 19273, 19280, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 19287, 19291, 19302, 19317, 19332, 19342, 19353, 19366, - 19377, 19383, 19391, 19401, 19407, 19415, 19419, 19425, 19431, 19439, - 19449, 19457, 19470, 19476, 19484, 19492, 19504, 19511, 19519, 19527, - 19535, 19543, 19551, 19559, 19569, 19573, 19576, 19579, 19582, 19585, - 19588, 19591, 19594, 19597, 19600, 19604, 19608, 19612, 19616, 19620, - 19624, 19628, 19632, 19636, 19641, 19647, 19657, 19671, 19681, 19687, - 19693, 19701, 19709, 19717, 19725, 19731, 19737, 19740, 19744, 19748, - 19752, 19756, 19760, 19764, 0, 19768, 19772, 19776, 19780, 19784, 19788, - 19792, 19796, 19800, 19804, 19808, 19811, 19814, 19818, 19822, 19826, - 19829, 19833, 19837, 19841, 19845, 19849, 19853, 19857, 19861, 19864, - 19867, 19870, 19874, 19878, 19881, 19884, 19887, 19891, 19896, 19900, 0, - 0, 0, 0, 19904, 19909, 19913, 19918, 19922, 19927, 19932, 19938, 19943, - 19949, 19953, 19958, 19962, 19967, 19977, 19983, 19989, 19996, 20006, - 20012, 20016, 20020, 20026, 20032, 20040, 20046, 20054, 20062, 20070, - 20080, 20088, 20098, 20103, 20109, 20115, 20121, 20127, 20133, 20139, 0, - 20145, 20151, 20157, 20163, 20169, 20175, 20181, 20187, 20193, 20199, - 20205, 20210, 20215, 20221, 20227, 20233, 20238, 20244, 20250, 20256, - 20262, 20268, 20274, 20280, 20286, 20291, 20296, 20301, 20307, 20313, - 20318, 20323, 20328, 20334, 20342, 20349, 0, 20356, 20363, 20376, 20383, - 20390, 20398, 20406, 20412, 20418, 20424, 20434, 20439, 20445, 20455, - 20465, 0, 20475, 20485, 20493, 20505, 20517, 20523, 20537, 20552, 20557, - 20562, 20570, 20578, 20586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20594, - 20597, 20601, 20605, 20609, 20613, 20617, 20621, 20625, 20629, 20633, - 20637, 20641, 20645, 20649, 20653, 20657, 20661, 20665, 20669, 20673, - 20676, 20679, 20683, 20687, 20691, 20694, 20697, 20700, 20703, 20707, - 20710, 20713, 20717, 20720, 20725, 20728, 20732, 20735, 20739, 20742, - 20747, 20750, 20754, 20761, 20766, 20770, 20775, 20779, 20784, 20788, - 20793, 20800, 20806, 20812, 20816, 20820, 20824, 20828, 20832, 20838, - 20844, 20851, 20857, 20862, 20866, 20869, 20872, 20875, 20878, 20881, - 20884, 20887, 20890, 20893, 20899, 20903, 20907, 20911, 20915, 20919, - 20923, 20927, 20931, 20936, 20940, 20945, 20950, 20956, 20961, 20967, - 20973, 20979, 20985, 20991, 20999, 21007, 21015, 21023, 21032, 21041, - 21052, 21062, 21072, 21083, 21094, 21104, 21114, 21124, 21134, 21144, - 21154, 21164, 21174, 21182, 21189, 21195, 21202, 21207, 21213, 21219, - 21225, 21231, 21237, 21243, 21248, 21254, 21260, 21266, 21272, 21277, - 21286, 21293, 21299, 21307, 21315, 21321, 21327, 21333, 21339, 21347, - 21355, 21365, 21373, 21381, 21387, 21392, 21397, 21402, 21407, 21412, - 21417, 21422, 21427, 21432, 21438, 21444, 21450, 21457, 21462, 21468, - 21473, 21478, 21483, 21488, 21493, 21498, 21503, 21508, 21513, 21518, - 21523, 21528, 21533, 21538, 21543, 21548, 21553, 21558, 21563, 21568, - 21573, 21578, 21583, 21588, 21593, 21598, 21603, 21608, 21613, 21618, - 21623, 21628, 21633, 21638, 21643, 21648, 21653, 0, 21658, 0, 0, 0, 0, 0, - 21663, 0, 0, 21668, 21672, 21676, 21680, 21684, 21688, 21692, 21696, - 21700, 21704, 21708, 21712, 21716, 21720, 21724, 21728, 21732, 21736, - 21740, 21744, 21748, 21752, 21756, 21760, 21764, 21768, 21772, 21776, - 21780, 21784, 21788, 21792, 21796, 21800, 21804, 21808, 21812, 21816, - 21820, 21824, 21828, 21832, 21837, 21841, 21846, 21851, 21855, 21860, - 21865, 21869, 21873, 21877, 21881, 21885, 21889, 21893, 21897, 21901, - 21905, 21909, 21913, 21917, 21921, 21925, 21929, 21933, 21937, 21941, - 21945, 21949, 21953, 21957, 21961, 21965, 21969, 21973, 21977, 21981, - 21985, 21989, 21993, 21997, 22001, 22005, 22009, 22013, 22017, 22021, - 22025, 22029, 22033, 22037, 22041, 22045, 22049, 22053, 22057, 22061, - 22065, 22069, 22073, 22077, 22081, 22085, 22089, 22093, 22097, 22101, - 22105, 22109, 22113, 22117, 22121, 22125, 22129, 22133, 22137, 22141, - 22145, 22149, 22153, 22157, 22161, 22165, 22169, 22173, 22177, 22181, - 22185, 22189, 22193, 22197, 22201, 22205, 22209, 22213, 22217, 22221, - 22225, 22229, 22233, 22237, 22241, 22245, 22249, 22254, 22258, 22263, - 22267, 22272, 22277, 22281, 22286, 22291, 22295, 22300, 22305, 22310, - 22315, 22319, 22324, 22329, 22334, 22339, 22344, 22349, 22353, 22358, - 22363, 22368, 22373, 22378, 22383, 22388, 22393, 22398, 22403, 22408, - 22413, 22418, 22423, 22428, 22433, 22438, 22443, 22448, 22453, 22458, - 22463, 22468, 22473, 22478, 22483, 22488, 22493, 22498, 22503, 22508, - 22513, 22518, 22523, 22528, 22533, 22538, 22543, 22548, 22553, 22558, - 22563, 22568, 22573, 22578, 22583, 22588, 22593, 22598, 22603, 22607, - 22611, 22615, 22619, 22623, 22627, 22631, 22635, 22639, 22643, 22647, - 22651, 22655, 22659, 22663, 22667, 22671, 22675, 22679, 22683, 22687, - 22691, 22695, 22699, 22703, 22707, 22711, 22715, 22719, 22723, 22727, - 22731, 22735, 22739, 22743, 22747, 22751, 22755, 22759, 22763, 22767, - 22771, 22775, 22779, 22783, 22787, 22791, 22795, 22799, 22803, 22807, - 22811, 22815, 22819, 22823, 22827, 22831, 22835, 22839, 22843, 22847, - 22851, 22855, 22859, 22863, 22867, 22871, 22875, 22879, 22883, 22887, - 22891, 22895, 22899, 22903, 22907, 22911, 22915, 22919, 22923, 22927, - 22931, 22935, 22939, 22943, 22947, 22951, 22955, 22958, 22962, 22966, - 22970, 22974, 22978, 22982, 22986, 22989, 22993, 22997, 23001, 23005, - 23009, 23013, 23017, 23021, 23025, 23029, 23033, 23037, 23041, 23045, - 23049, 23052, 23056, 23060, 23064, 23068, 23072, 23076, 23080, 23084, - 23088, 23092, 23096, 23100, 23104, 23108, 23112, 23115, 23119, 23123, - 23127, 23131, 23135, 23139, 23143, 23146, 23150, 23154, 23158, 23162, - 23166, 23170, 23174, 23178, 23182, 23186, 23190, 23194, 23198, 23202, - 23206, 23210, 23214, 23218, 23222, 23226, 23230, 23234, 23238, 0, 23242, - 23246, 23250, 23254, 0, 0, 23258, 23262, 23266, 23270, 23274, 23278, - 23282, 0, 23286, 0, 23290, 23294, 23298, 23302, 0, 0, 23306, 23310, - 23314, 23318, 23322, 23326, 23330, 23334, 23338, 23342, 23346, 23350, - 23354, 23358, 23362, 23366, 23370, 23374, 23378, 23382, 23386, 23390, - 23394, 23397, 23401, 23405, 23409, 23413, 23417, 23421, 23425, 23429, - 23433, 23437, 23441, 23445, 23449, 23453, 23457, 23461, 23465, 0, 23469, - 23473, 23477, 23481, 0, 0, 23485, 23488, 23492, 23496, 23500, 23504, - 23508, 23512, 23516, 23520, 23524, 23528, 23532, 23536, 23540, 23544, - 23548, 23553, 23558, 23563, 23569, 23575, 23580, 23585, 23591, 23594, - 23598, 23602, 23606, 23610, 23614, 23618, 23622, 0, 23626, 23630, 23634, - 23638, 0, 0, 23642, 23646, 23650, 23654, 23658, 23662, 23666, 0, 23670, - 0, 23674, 23678, 23682, 23686, 0, 0, 23690, 23694, 23698, 23702, 23706, - 23710, 23714, 23718, 23722, 23727, 23732, 23737, 23743, 23749, 23754, 0, - 23759, 23763, 23767, 23771, 23775, 23779, 23783, 23787, 23791, 23795, - 23799, 23803, 23807, 23811, 23815, 23819, 23823, 23826, 23830, 23834, - 23838, 23842, 23846, 23850, 23854, 23858, 23862, 23866, 23870, 23874, - 23878, 23882, 23886, 23890, 23894, 23898, 23902, 23906, 23910, 23914, - 23918, 23922, 23926, 23930, 23934, 23938, 23942, 23946, 23950, 23954, - 23958, 23962, 23966, 23970, 23974, 23978, 23982, 0, 23986, 23990, 23994, - 23998, 0, 0, 24002, 24006, 24010, 24014, 24018, 24022, 24026, 24030, - 24034, 24038, 24042, 24046, 24050, 24054, 24058, 24062, 24066, 24070, - 24074, 24078, 24082, 24086, 24090, 24094, 24098, 24102, 24106, 24110, - 24114, 24118, 24122, 24126, 24130, 24134, 24138, 24142, 24146, 24150, - 24154, 24158, 24162, 24166, 24170, 24174, 24178, 24182, 24186, 24190, - 24194, 24198, 24202, 24206, 24210, 24214, 24218, 24222, 24226, 24229, - 24233, 24237, 24241, 24245, 24249, 24253, 24257, 24261, 24265, 0, 0, - 24269, 24278, 24284, 24289, 24293, 24296, 24301, 24304, 24307, 24310, - 24315, 24319, 24324, 24327, 24330, 24333, 24336, 24339, 24342, 24345, - 24348, 24351, 24355, 24359, 24363, 24367, 24371, 24375, 24379, 24383, - 24387, 24391, 0, 0, 0, 24396, 24402, 24406, 24410, 24414, 24420, 24424, - 24428, 24432, 24438, 24442, 24446, 24450, 24456, 24460, 24464, 24468, - 24474, 24480, 24486, 24494, 24500, 24506, 24512, 24518, 24524, 0, 0, 0, - 0, 0, 0, 24530, 24533, 24536, 24539, 24542, 24545, 24549, 24553, 24556, - 24560, 24564, 24568, 24572, 24576, 24579, 24583, 24587, 24591, 24595, - 24599, 24602, 24606, 24610, 24614, 24618, 24622, 24625, 24629, 24633, - 24637, 24641, 24644, 24648, 24652, 24656, 24660, 24664, 24668, 24672, - 24676, 24680, 24684, 24688, 24692, 24696, 24699, 24703, 24707, 24711, - 24715, 24719, 24723, 24727, 24731, 24735, 24739, 24743, 24747, 24751, - 24755, 24759, 24763, 24767, 24771, 24775, 24779, 24783, 24787, 24791, - 24795, 24799, 24803, 24807, 24811, 24815, 24819, 24823, 24827, 24831, - 24835, 24838, 24842, 24846, 24850, 24854, 24858, 0, 0, 24862, 24867, - 24872, 24877, 24882, 24887, 0, 0, 24892, 24896, 24899, 24903, 24906, - 24910, 24913, 24917, 24923, 24928, 24932, 24935, 24939, 24943, 24949, - 24953, 24959, 24963, 24969, 24973, 24979, 24983, 24989, 24995, 24999, - 25005, 25009, 25015, 25021, 25025, 25031, 25037, 25042, 25047, 25055, - 25063, 25070, 25075, 25081, 25090, 25096, 25104, 25109, 25115, 25119, - 25123, 25127, 25131, 25135, 25139, 25143, 25147, 25151, 25155, 25161, - 25166, 25171, 25174, 25178, 25182, 25188, 25192, 25198, 25202, 25208, - 25212, 25218, 25222, 25228, 25232, 25238, 25242, 25248, 25254, 25258, - 25264, 25269, 25273, 25277, 25281, 25285, 25288, 25292, 25298, 25303, - 25308, 25312, 25316, 25320, 25326, 25330, 25336, 25340, 25346, 25349, - 25354, 25358, 25364, 25368, 25374, 25378, 25384, 25390, 25394, 25398, - 25402, 25406, 25410, 25414, 25418, 25422, 25426, 25430, 25434, 25440, - 25443, 25447, 25451, 25457, 25461, 25467, 25471, 25477, 25481, 25487, - 25491, 25497, 25501, 25507, 25511, 25517, 25523, 25527, 25531, 25537, - 25543, 25549, 25555, 25559, 25563, 25567, 25571, 25575, 25579, 25585, - 25589, 25593, 25597, 25603, 25607, 25613, 25617, 25623, 25627, 25633, - 25637, 25643, 25647, 25653, 25657, 25663, 25669, 25673, 25679, 25683, - 25687, 25691, 25695, 25699, 25703, 25709, 25712, 25716, 25720, 25726, - 25730, 25736, 25740, 25746, 25750, 25756, 25760, 25766, 25770, 25776, - 25780, 25786, 25792, 25796, 25802, 25806, 25812, 25818, 25822, 25826, - 25830, 25834, 25838, 25842, 25848, 25851, 25855, 25859, 25865, 25869, - 25875, 25879, 25885, 25891, 25895, 25900, 25904, 25908, 25912, 25916, - 25920, 25924, 25928, 25934, 25937, 25941, 25945, 25951, 25955, 25961, - 25965, 25971, 25975, 25981, 25985, 25991, 25995, 26001, 26005, 26011, - 26014, 26019, 26024, 26028, 26032, 26036, 26040, 26044, 26048, 26054, - 26057, 26061, 26065, 26071, 26075, 26081, 26085, 26091, 26095, 26101, - 26105, 26111, 26115, 26121, 26125, 26131, 26137, 26141, 26147, 26151, - 26157, 26163, 26169, 26175, 26181, 26187, 26193, 26199, 26203, 26207, - 26211, 26215, 26219, 26223, 26227, 26231, 26237, 26241, 26247, 26251, - 26257, 26261, 26267, 26271, 26277, 26281, 26287, 26291, 26297, 26301, - 26305, 26309, 26313, 26317, 26321, 26325, 26331, 26334, 26338, 26342, - 26348, 26352, 26358, 26362, 26368, 26372, 26378, 26382, 26388, 26392, - 26398, 26402, 26408, 26414, 26418, 26424, 26430, 26436, 26440, 26446, - 26452, 26456, 26460, 26464, 26468, 26472, 26478, 26481, 26485, 26490, - 26494, 26500, 26503, 26508, 26513, 26517, 26521, 26525, 26529, 26533, - 26537, 26541, 26545, 26549, 26555, 26559, 26563, 26569, 26573, 26579, - 26583, 26589, 26593, 26597, 26601, 26605, 26609, 26615, 26619, 26623, - 26627, 26631, 26635, 26639, 26643, 26647, 26651, 26655, 26661, 26667, - 26673, 26679, 26685, 26690, 26696, 26702, 26708, 26712, 26716, 26720, - 26724, 26728, 26732, 26736, 26740, 26744, 26748, 26752, 26756, 26760, - 26766, 26772, 26778, 26783, 26787, 26791, 26795, 26799, 26803, 26807, - 26811, 26815, 26819, 26825, 26831, 26837, 26843, 26849, 26855, 26861, - 26867, 26873, 26877, 26881, 26885, 26889, 26893, 26897, 26901, 26907, - 26913, 26919, 26925, 26931, 26937, 26943, 26949, 26955, 26960, 26965, - 26970, 26975, 26981, 26987, 26993, 26999, 27005, 27011, 27017, 27022, - 27028, 27034, 27040, 27045, 27051, 27057, 27063, 27068, 27073, 27078, - 27083, 27088, 27093, 27098, 27103, 27108, 27113, 27118, 27123, 27127, - 27132, 27137, 27142, 27147, 27152, 27157, 27162, 27167, 27172, 27177, - 27182, 27187, 27192, 27197, 27202, 27207, 27212, 27217, 27222, 27227, - 27232, 27237, 27242, 27247, 27252, 27257, 27262, 27267, 27272, 27276, - 27281, 27286, 27291, 27296, 27301, 27306, 27311, 27316, 27321, 27326, - 27331, 27336, 27341, 27346, 27351, 27356, 27361, 27366, 27371, 27376, - 27381, 27386, 27391, 27396, 27401, 27405, 27410, 27415, 27420, 27425, - 27430, 27434, 27439, 27444, 27449, 27454, 27459, 27463, 27468, 27474, - 27479, 27484, 27489, 27494, 27500, 27505, 27510, 27515, 27520, 27525, - 27530, 27535, 27540, 27545, 27550, 27555, 27560, 27564, 27569, 27574, - 27579, 27584, 27589, 27594, 27599, 27604, 27609, 27614, 27619, 27624, - 27629, 27634, 27639, 27644, 27649, 27654, 27659, 27664, 27669, 27674, - 27679, 27684, 27689, 27694, 27699, 27704, 27709, 27714, 27719, 27725, - 27730, 27735, 27740, 27745, 27750, 27755, 27760, 27765, 27770, 27775, - 27780, 27784, 27789, 27794, 27799, 27804, 27809, 27814, 27819, 27824, - 27829, 27834, 27839, 27844, 27849, 27854, 27859, 27864, 27869, 27874, - 27879, 27884, 27889, 27894, 27899, 27904, 27909, 27914, 27920, 27924, - 27928, 27932, 27936, 27940, 27944, 27948, 27952, 27958, 27964, 27970, - 27976, 27982, 27988, 27994, 28001, 28007, 28012, 28017, 28022, 28027, - 28032, 28037, 28042, 28047, 28052, 28057, 28062, 28067, 28072, 28077, - 28082, 28087, 28092, 28097, 28102, 28107, 28112, 28117, 28122, 28127, - 28132, 28137, 28142, 28147, 0, 0, 0, 28154, 28165, 28170, 28178, 28183, - 28188, 28193, 28202, 28207, 28213, 28219, 28225, 28230, 28236, 28242, - 28246, 28251, 28256, 28266, 28271, 28276, 28283, 28288, 28293, 28302, - 28307, 28316, 28323, 28330, 28337, 28344, 28355, 28362, 28367, 28377, - 28381, 28388, 28393, 28400, 28406, 28413, 28422, 28429, 28436, 28445, - 28452, 28457, 28462, 28473, 28480, 28485, 28496, 28503, 28508, 28513, - 28521, 28530, 28537, 28544, 28554, 28559, 28564, 28569, 28578, 28586, - 28591, 28596, 28601, 28606, 28611, 28616, 28621, 28626, 28631, 28636, - 28641, 28647, 28653, 28659, 28664, 28669, 28674, 28679, 28684, 28689, - 28698, 28707, 28716, 28725, 0, 0, 0, 0, 0, 0, 0, 28734, 28738, 28742, - 28746, 28750, 28755, 28760, 28765, 28770, 28774, 28778, 28783, 28787, - 28791, 28795, 28799, 28804, 28808, 28812, 28817, 28822, 28827, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 28832, 28838, 28842, 28846, 28850, 28854, 28859, 28864, - 28869, 28874, 28878, 28882, 28887, 28891, 28895, 28899, 28903, 28908, - 28912, 28916, 28921, 28926, 28931, 28937, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 28942, 28946, 28950, 28954, 28958, 28963, 28968, 28973, 28978, 28982, - 28986, 28991, 28995, 28999, 29003, 29007, 29012, 29016, 29020, 29025, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29030, 29034, 29038, 29042, 29046, - 29051, 29056, 29061, 29066, 29070, 29074, 29079, 29083, 0, 29087, 29091, - 29096, 0, 29100, 29105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29110, 29113, - 29117, 29121, 29125, 29129, 29133, 29137, 29141, 29145, 29149, 29153, - 29157, 29161, 29165, 29169, 29173, 29177, 29180, 29184, 29188, 29192, - 29196, 29200, 29204, 29208, 29212, 29216, 29220, 29224, 29228, 29232, - 29235, 29238, 29241, 29245, 29251, 29257, 29263, 29269, 29275, 29281, - 29287, 29293, 29299, 29305, 29311, 29317, 29323, 29329, 29338, 29347, - 29353, 29359, 29365, 29370, 29374, 29379, 29384, 29389, 29393, 29398, - 29403, 29408, 29412, 29417, 29421, 29426, 29431, 29436, 29441, 29445, - 29449, 29453, 29457, 29461, 29465, 29469, 29473, 29477, 29481, 29487, - 29491, 29495, 29499, 29503, 29507, 29515, 29521, 29525, 29531, 29535, - 29541, 29545, 0, 0, 29549, 29553, 29556, 29559, 29562, 29565, 29568, - 29571, 29574, 29577, 0, 0, 0, 0, 0, 0, 29580, 29588, 29596, 29604, 29612, - 29620, 29628, 29636, 29644, 29652, 0, 0, 0, 0, 0, 0, 29660, 29663, 29666, - 29669, 29674, 29677, 29682, 29689, 29697, 29702, 29709, 29712, 29719, - 29726, 29733, 29737, 29744, 29748, 29751, 29754, 29757, 29760, 29763, - 29766, 29769, 29772, 0, 0, 0, 0, 0, 0, 29775, 29778, 29781, 29784, 29787, - 29790, 29794, 29798, 29802, 29805, 29809, 29813, 29816, 29820, 29824, - 29827, 29830, 29833, 29837, 29841, 29845, 29849, 29853, 29856, 29859, - 29863, 29867, 29870, 29874, 29878, 29882, 29886, 29890, 29894, 29898, - 29902, 29909, 29914, 29919, 29924, 29929, 29935, 29941, 29947, 29953, - 29958, 29964, 29970, 29975, 29981, 29987, 29993, 29999, 30005, 30010, - 30016, 30021, 30027, 30033, 30039, 30045, 30051, 30056, 30061, 30067, - 30073, 30078, 30084, 30089, 30095, 30100, 30105, 30111, 30117, 30123, - 30129, 30135, 30141, 30147, 30153, 30159, 30165, 30171, 30177, 30182, - 30187, 30192, 30198, 30204, 0, 0, 0, 0, 0, 0, 0, 30212, 30221, 30230, - 30238, 30246, 30256, 30264, 30273, 30280, 30287, 30294, 30302, 30310, - 30318, 30326, 30334, 30342, 30350, 30358, 30365, 30373, 30381, 30389, - 30397, 30405, 30415, 30425, 30435, 30445, 30455, 30465, 30475, 30485, - 30495, 30505, 30515, 30525, 30535, 30545, 30553, 30561, 30571, 30579, 0, - 0, 0, 0, 0, 30589, 30593, 30597, 30601, 30605, 30609, 30613, 30617, - 30621, 30625, 30629, 30633, 30637, 30641, 30645, 30649, 30653, 30657, - 30661, 30665, 30669, 30673, 30677, 30681, 30687, 30691, 30697, 30701, - 30707, 30711, 30717, 30721, 30725, 30729, 30733, 30737, 30741, 30747, - 30753, 30759, 30765, 30771, 30777, 30783, 30789, 30795, 30801, 30807, - 30814, 30820, 30826, 30832, 30836, 30840, 30844, 30848, 30852, 30856, - 30860, 30866, 30872, 30878, 30883, 30890, 30895, 30900, 30906, 30911, - 30918, 30925, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30932, 30938, 30942, 30947, - 30952, 30957, 30962, 30967, 30972, 30977, 30982, 30987, 30992, 30997, - 31002, 31007, 31011, 31015, 31020, 31025, 31030, 31034, 31038, 31042, - 31046, 31051, 31056, 31061, 31065, 31069, 31074, 0, 31079, 31084, 31089, - 31094, 31100, 31106, 31112, 31118, 31123, 31128, 31134, 31140, 0, 0, 0, - 0, 31147, 31152, 31158, 31164, 31170, 31175, 31180, 31185, 31190, 31195, - 31200, 31205, 0, 0, 0, 0, 31210, 0, 0, 0, 31215, 31220, 31225, 31230, - 31234, 31238, 31242, 31246, 31250, 31254, 31258, 31262, 31266, 31271, - 31277, 31283, 31289, 31294, 31299, 31305, 31311, 31316, 31321, 31327, - 31332, 31338, 31344, 31349, 31355, 31361, 31367, 31372, 31377, 31382, - 31388, 31394, 31399, 31405, 31410, 31416, 31421, 31427, 0, 0, 31433, - 31439, 31445, 31451, 31457, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31463, - 31472, 31481, 31489, 31498, 31507, 31515, 31524, 31533, 31542, 31550, - 31558, 31567, 31575, 31583, 31592, 31601, 31609, 31618, 31627, 31635, - 31643, 31652, 31660, 31668, 31677, 31685, 31694, 31703, 31711, 31720, - 31729, 31737, 31745, 31754, 31763, 31771, 31780, 31789, 31798, 31807, - 31816, 31825, 31834, 0, 0, 0, 0, 31843, 31853, 31862, 31871, 31879, - 31888, 31896, 31905, 31913, 31922, 31931, 31940, 31949, 31958, 31967, - 31976, 31985, 31994, 32003, 32012, 32021, 32030, 32039, 32048, 32057, - 32065, 0, 0, 0, 0, 0, 0, 32073, 32081, 32088, 32095, 32102, 32109, 32116, - 32123, 32130, 32137, 32144, 0, 0, 0, 32152, 32160, 32168, 32172, 32178, - 32184, 32190, 32196, 32202, 32208, 32214, 32220, 32226, 32232, 32238, - 32244, 32250, 32256, 32262, 32266, 32272, 32278, 32284, 32290, 32296, - 32302, 32308, 32314, 32320, 32326, 32332, 32338, 32344, 32350, 32356, - 32360, 32365, 32370, 32375, 32379, 32384, 32388, 32393, 32398, 32403, - 32407, 32412, 32417, 32422, 32427, 32432, 32436, 32440, 32444, 32449, - 32453, 32457, 32461, 32466, 32471, 32476, 32481, 0, 0, 32487, 32491, - 32498, 32503, 32509, 32515, 32520, 32526, 32532, 32537, 32543, 32549, - 32555, 32560, 32566, 32571, 32576, 32582, 32587, 32593, 32598, 32604, - 32610, 32616, 32622, 32626, 32631, 32636, 32642, 32648, 32653, 32659, - 32665, 32669, 32674, 32679, 32683, 32688, 32692, 32697, 32702, 32708, - 32714, 32719, 32724, 32729, 32733, 32738, 32742, 32747, 32751, 32756, - 32761, 32766, 32771, 32777, 32784, 32791, 32801, 32810, 32817, 32823, - 32834, 32839, 32845, 0, 32850, 32855, 32860, 32868, 32874, 32882, 32887, - 32893, 32899, 32905, 32910, 32916, 32921, 32928, 32934, 32939, 32945, - 32951, 32957, 32964, 32971, 32978, 32983, 32988, 32995, 33002, 33009, - 33016, 33023, 0, 0, 33030, 33037, 33044, 33050, 33056, 33062, 33068, - 33074, 33080, 33086, 33092, 0, 0, 0, 0, 0, 0, 33098, 33104, 33109, 33114, - 33119, 33124, 33129, 33134, 33139, 33144, 0, 0, 0, 0, 0, 0, 33149, 33154, - 33159, 33164, 33169, 33174, 33179, 33188, 33195, 33200, 33205, 33210, - 33215, 33220, 0, 0, 33225, 33232, 33235, 33238, 33242, 33247, 33251, - 33257, 33262, 33268, 33275, 33283, 33287, 33292, 33296, 33301, 33308, - 33316, 33323, 33329, 33337, 33344, 33349, 33353, 33360, 33364, 33369, - 33374, 33381, 33389, 33396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 17131, 17136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17141, 17147, + 17151, 17155, 17159, 17165, 17168, 17172, 17175, 17179, 17182, 17186, + 17190, 0, 17194, 17197, 17201, 0, 17205, 17208, 17212, 17216, 17219, + 17223, 17227, 17231, 17235, 17239, 17243, 17247, 17251, 17255, 17259, + 17263, 17267, 17271, 17275, 17279, 17283, 17287, 17291, 17294, 17298, + 17301, 17305, 17309, 17313, 17316, 17319, 17322, 17326, 17329, 17333, + 17337, 17341, 17345, 17349, 17352, 17355, 17359, 17366, 17372, 17376, + 17381, 17385, 17390, 17394, 17399, 17404, 0, 17410, 17414, 17419, 0, + 17424, 17428, 17433, 17438, 17442, 17447, 0, 0, 0, 0, 17451, 17457, + 17463, 17469, 17475, 17481, 17487, 17493, 17499, 17505, 17511, 17517, + 17523, 17528, 17533, 17538, 0, 0, 17544, 17548, 17551, 17554, 17557, + 17560, 17563, 17566, 17569, 17572, 17575, 17579, 17584, 17588, 17594, + 17600, 17606, 17612, 17618, 17624, 17628, 17634, 17640, 17646, 17651, + 17657, 0, 17663, 17667, 17671, 0, 17675, 17679, 17683, 17687, 17691, + 17695, 17699, 17703, 17707, 17711, 17715, 17719, 17723, 17727, 17731, + 17735, 17739, 17743, 0, 0, 0, 17747, 17753, 17759, 17765, 17771, 17777, + 17783, 17789, 17795, 17801, 17807, 17813, 17821, 17827, 17833, 17839, + 17845, 17851, 17857, 17863, 17869, 17875, 17881, 17887, 0, 17893, 17899, + 17905, 17911, 17917, 17923, 17927, 17933, 17937, 0, 17941, 0, 0, 17947, + 17951, 17957, 17963, 17969, 17973, 17979, 0, 0, 0, 17983, 0, 0, 0, 0, + 17987, 17992, 17999, 18006, 18013, 18020, 0, 18027, 0, 18034, 18039, + 18044, 18051, 18058, 18067, 18078, 18087, 0, 0, 0, 0, 0, 0, 18092, 18098, + 18103, 18108, 18113, 18118, 18123, 18128, 18133, 18138, 0, 0, 18143, + 18150, 18157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18162, 18170, 18178, + 18186, 18194, 18202, 18210, 18218, 18226, 18234, 18242, 18250, 18258, + 18266, 18274, 18281, 18289, 18297, 18305, 18313, 18321, 18328, 18336, + 18344, 18352, 18360, 18368, 18376, 18384, 18392, 18400, 18408, 18416, + 18423, 18431, 18439, 18445, 18453, 18459, 18467, 18475, 18483, 18491, + 18499, 18507, 18514, 18522, 18528, 18535, 18543, 18551, 18559, 18566, + 18574, 18582, 18590, 18597, 18605, 0, 0, 0, 0, 18611, 18618, 18625, + 18633, 18640, 18650, 18660, 18666, 18672, 18678, 18686, 18694, 18702, + 18710, 18716, 18722, 18728, 18734, 18739, 18743, 18747, 18751, 18755, + 18759, 18763, 18767, 18771, 18775, 18781, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33404, 33410, 33416, 33420, 33424, 33428, - 33432, 33438, 33442, 33448, 33452, 33458, 33464, 33472, 33478, 33486, - 33490, 33494, 33498, 33504, 33507, 33513, 33517, 33523, 33527, 33531, - 33537, 33541, 33547, 33551, 33557, 33565, 33573, 33581, 33587, 33591, - 33597, 33601, 33607, 33610, 33613, 33619, 33623, 33629, 33632, 33635, - 33638, 33641, 33645, 33651, 33657, 33660, 33663, 33667, 33672, 33677, - 33684, 33689, 33696, 33703, 33712, 33719, 33728, 33733, 33740, 33747, - 33756, 33761, 33768, 33773, 33779, 33785, 33791, 33797, 33803, 33809, - 33815, 0, 0, 0, 33821, 33825, 33828, 33831, 33834, 33837, 33840, 33843, - 33846, 33849, 33852, 33855, 33858, 33861, 33866, 33871, 33876, 33879, - 33884, 33889, 33894, 33899, 33906, 33911, 33916, 33921, 33926, 33933, - 33939, 33945, 33951, 33957, 33963, 33972, 33981, 33987, 33993, 34002, - 34011, 34020, 34029, 34038, 34047, 34056, 34065, 34074, 34079, 0, 34084, - 34089, 34094, 34099, 34103, 34107, 34111, 34116, 34120, 34124, 34129, - 34133, 34138, 34143, 34148, 34153, 34158, 34163, 34168, 34173, 34178, - 34182, 34186, 34191, 34196, 34201, 34205, 34209, 34213, 34217, 34222, - 34226, 34231, 34235, 34241, 34247, 34253, 34259, 34265, 34271, 34277, - 34283, 34289, 34294, 34299, 34306, 34314, 34319, 34324, 34329, 34333, - 34337, 34341, 34345, 34349, 34353, 34357, 34361, 34365, 34369, 34374, - 34379, 34384, 34390, 34396, 34400, 34406, 34410, 34416, 34422, 34427, - 34434, 34438, 34444, 34448, 34454, 34459, 34466, 34473, 34478, 34485, - 34490, 34495, 34499, 34505, 34509, 34515, 34522, 34529, 34533, 34539, - 34545, 34549, 34555, 34560, 34564, 34570, 34575, 34580, 34585, 34590, - 34594, 34598, 34603, 34608, 34615, 34621, 34626, 34633, 34638, 34645, - 34650, 34659, 34665, 34671, 34675, 0, 0, 0, 0, 0, 0, 0, 0, 34679, 34688, - 34695, 34702, 34709, 34713, 34718, 34723, 34728, 34733, 34738, 34743, - 34748, 34753, 34758, 34763, 34768, 34773, 34777, 34781, 34786, 34791, - 34796, 34801, 34806, 34811, 34815, 34820, 34825, 34830, 34835, 34839, - 34843, 34847, 34851, 34856, 34861, 34865, 34870, 34875, 34879, 34885, - 34891, 34897, 34902, 34907, 34913, 34918, 34924, 34929, 34935, 34941, - 34946, 34952, 34958, 34963, 34969, 34975, 34981, 34986, 0, 0, 0, 34991, - 34997, 35007, 35013, 35021, 35027, 35032, 35036, 35040, 35044, 35048, - 35052, 35056, 35060, 35064, 0, 0, 0, 35068, 35073, 35078, 35083, 35090, - 35096, 35102, 35108, 35114, 35120, 35126, 35132, 35138, 35144, 35150, - 35157, 35164, 35171, 35178, 35185, 35192, 35199, 35206, 35213, 35220, - 35227, 35234, 35241, 35248, 35255, 35262, 35269, 35276, 35283, 35290, - 35297, 35304, 35311, 35318, 35325, 35332, 35339, 35346, 35353, 35361, - 35369, 35377, 35383, 35389, 35395, 35403, 35412, 35419, 35426, 35432, - 35439, 35446, 35453, 35461, 35468, 0, 0, 0, 0, 0, 0, 0, 35475, 35482, - 35489, 35496, 35503, 35510, 35517, 35524, 35531, 35538, 35545, 35552, - 35559, 35566, 35573, 35580, 35587, 35594, 35601, 35608, 35615, 35622, - 35629, 35636, 35643, 35650, 35657, 35664, 35671, 35678, 35685, 35692, - 35699, 35706, 35713, 35720, 35727, 35734, 35741, 35748, 35755, 35762, - 35770, 0, 0, 35777, 35784, 35792, 35800, 35808, 35816, 35824, 35832, - 35842, 35852, 35862, 0, 0, 0, 0, 0, 0, 0, 0, 35872, 35877, 35882, 35887, - 35892, 35901, 35912, 35921, 35932, 35938, 35951, 35957, 35964, 35971, - 35976, 35982, 35988, 35999, 36008, 36015, 36022, 36031, 36038, 36047, - 36057, 36067, 36074, 36081, 36088, 36098, 36103, 36111, 36117, 36125, - 36134, 36139, 36146, 36152, 36157, 36162, 36167, 36173, 36180, 0, 0, 0, - 0, 0, 36188, 36193, 36199, 36205, 36213, 36219, 36225, 36231, 36236, - 36243, 36248, 36254, 36260, 36268, 36274, 36282, 36287, 36294, 36300, - 36308, 36316, 36322, 36328, 36335, 36342, 36348, 36355, 36361, 36367, - 36372, 36378, 36386, 36394, 36400, 36406, 36412, 36418, 36426, 36430, - 36436, 36442, 36448, 36454, 36460, 36466, 36470, 36475, 36480, 36487, - 36492, 36496, 36502, 36507, 36512, 36516, 36521, 36526, 36530, 36535, - 36540, 36547, 36551, 36556, 36561, 36565, 36570, 36574, 36579, 36583, - 36588, 36593, 36599, 36604, 36609, 36613, 36618, 36624, 36631, 36636, - 36641, 36646, 36651, 36656, 36660, 36666, 36673, 36680, 36685, 36690, - 36694, 36700, 36706, 36711, 36716, 36721, 36727, 36732, 36738, 36743, - 36749, 36755, 36761, 36768, 36775, 36782, 36789, 36796, 36803, 36808, - 36816, 36825, 36834, 36843, 36852, 36861, 36870, 36882, 36891, 36900, - 36909, 36915, 36920, 36927, 36935, 36943, 36950, 36957, 36964, 36971, - 36979, 36988, 36997, 37006, 37015, 37024, 37033, 37042, 37051, 37060, - 37069, 37078, 37087, 37096, 37105, 37113, 37122, 37133, 37142, 37153, - 37166, 37175, 37184, 37194, 37203, 37211, 37220, 37226, 37231, 37239, - 37244, 37252, 37257, 37266, 37272, 37278, 37285, 37290, 37295, 37303, - 37311, 37320, 37329, 37334, 37341, 37351, 37359, 37368, 37374, 37380, - 37385, 37392, 37397, 37406, 37411, 37416, 37421, 37428, 37434, 37439, - 37448, 37456, 37461, 37466, 37473, 37480, 37484, 37488, 37491, 37494, - 37497, 37500, 37503, 37506, 37513, 37516, 37519, 37524, 37528, 37532, - 37536, 37540, 37544, 37554, 37560, 37566, 37572, 37580, 37588, 37594, - 37600, 37607, 37613, 37618, 37624, 37631, 37637, 37644, 37650, 37658, - 37664, 37671, 37677, 37683, 37689, 37695, 37701, 37707, 37718, 37728, - 37734, 37740, 37750, 37756, 37764, 37772, 37780, 37785, 37790, 37796, - 37801, 37809, 37815, 37819, 37826, 37833, 37838, 37847, 37855, 37863, - 37870, 37877, 37884, 37891, 37899, 37907, 37918, 37929, 37937, 37945, - 37953, 37961, 37970, 37979, 37987, 37995, 38004, 38013, 38024, 38035, - 38046, 38057, 38066, 38075, 38084, 38093, 38104, 38115, 38123, 38131, - 38139, 38147, 38155, 38163, 38171, 38179, 38187, 38195, 38203, 38211, - 38220, 38229, 38238, 38247, 38258, 38269, 38277, 38285, 38293, 38301, - 38310, 38319, 38327, 38335, 38347, 38359, 38368, 38377, 38386, 38395, - 38403, 38411, 38419, 38427, 38435, 38443, 38451, 38459, 38467, 38475, - 38484, 38493, 38502, 38511, 38521, 38531, 38541, 38551, 38561, 38571, - 38581, 38591, 38599, 38607, 38615, 38623, 38631, 38639, 38647, 38655, - 38667, 38679, 38688, 38697, 38705, 38713, 38721, 38729, 38740, 38751, - 38762, 38773, 38785, 38797, 38805, 38813, 38821, 38829, 38838, 38847, - 38856, 38865, 38873, 38881, 38889, 38897, 38905, 38913, 38923, 38933, - 38943, 38953, 38961, 38969, 38977, 38985, 38993, 39001, 39009, 39017, - 39025, 39033, 39041, 39049, 39057, 39065, 39073, 39081, 39089, 39097, - 39105, 39113, 39121, 39129, 39137, 39145, 39154, 39163, 39172, 39180, - 39189, 39198, 39207, 39216, 39226, 39235, 39242, 39247, 39254, 39261, - 39269, 39277, 39287, 39297, 39307, 39317, 39328, 39339, 39349, 39359, - 39369, 39379, 39389, 39399, 39409, 39419, 39430, 39441, 39451, 39461, - 39471, 39481, 39489, 39497, 39506, 39515, 39523, 39531, 39542, 39553, - 39564, 39575, 39587, 39599, 39610, 39621, 39632, 39643, 39652, 39661, - 39669, 39677, 39684, 39691, 39699, 39707, 39717, 39727, 39737, 39747, - 39758, 39769, 39779, 39789, 39799, 39809, 39819, 39829, 39839, 39849, - 39860, 39871, 39881, 39891, 39901, 39911, 39918, 39925, 39933, 39941, - 39951, 39961, 39971, 39981, 39992, 40003, 40013, 40023, 40033, 40043, - 40051, 40059, 40067, 40075, 40084, 40093, 40101, 40109, 40116, 40123, - 40130, 40137, 40145, 40153, 40161, 40169, 40180, 40191, 40202, 40213, - 40224, 40235, 40243, 40251, 40262, 40273, 40284, 40295, 40306, 40317, - 40325, 40333, 40344, 40355, 40366, 0, 0, 40377, 40385, 40393, 40404, - 40415, 40426, 0, 0, 40437, 40445, 40453, 40464, 40475, 40486, 40497, - 40508, 40519, 40527, 40535, 40546, 40557, 40568, 40579, 40590, 40601, - 40609, 40617, 40628, 40639, 40650, 40661, 40672, 40683, 40691, 40699, - 40710, 40721, 40732, 40743, 40754, 40765, 40773, 40781, 40792, 40803, - 40814, 0, 0, 40825, 40833, 40841, 40852, 40863, 40874, 0, 0, 40885, - 40893, 40901, 40912, 40923, 40934, 40945, 40956, 0, 40967, 0, 40975, 0, - 40986, 0, 40997, 41008, 41016, 41024, 41035, 41046, 41057, 41068, 41079, - 41090, 41098, 41106, 41117, 41128, 41139, 41150, 41161, 41172, 41180, - 41188, 41196, 41204, 41212, 41220, 41228, 41236, 41244, 41252, 41260, - 41268, 41276, 0, 0, 41284, 41295, 41306, 41320, 41334, 41348, 41362, - 41376, 41390, 41401, 41412, 41426, 41440, 41454, 41468, 41482, 41496, - 41507, 41518, 41532, 41546, 41560, 41574, 41588, 41602, 41613, 41624, - 41638, 41652, 41666, 41680, 41694, 41708, 41719, 41730, 41744, 41758, - 41772, 41786, 41800, 41814, 41825, 41836, 41850, 41864, 41878, 41892, - 41906, 41920, 41928, 41936, 41947, 41955, 0, 41966, 41974, 41985, 41993, - 42001, 42009, 42017, 42025, 42028, 42031, 42034, 42037, 42043, 42054, - 42062, 0, 42073, 42081, 42092, 42100, 42108, 42116, 42124, 42132, 42138, - 42144, 42150, 42158, 42166, 42177, 0, 0, 42188, 42196, 42207, 42215, - 42223, 42231, 0, 42239, 42245, 42251, 42257, 42265, 42273, 42284, 42295, - 42303, 42311, 42319, 42330, 42338, 42346, 42354, 42362, 42370, 42376, - 42382, 0, 0, 42385, 42396, 42404, 0, 42415, 42423, 42434, 42442, 42450, - 42458, 42466, 42474, 42477, 0, 42480, 42484, 42488, 42492, 42496, 42500, - 42504, 42508, 42512, 42516, 42520, 42524, 42530, 42536, 42542, 42545, - 42548, 42550, 42554, 42558, 42562, 42566, 42569, 42573, 42577, 42583, - 42589, 42596, 42603, 42608, 42613, 42619, 42625, 42627, 42630, 42632, - 42636, 42640, 42644, 42648, 42652, 42656, 42660, 42664, 42668, 42674, - 42678, 42682, 42688, 42693, 42700, 42702, 42705, 42709, 42713, 42718, - 42724, 42726, 42735, 42744, 42747, 42751, 42753, 42755, 42757, 42761, - 42767, 42769, 42773, 42777, 42784, 42791, 42795, 42800, 42805, 42810, - 42815, 42819, 42823, 42826, 42830, 42834, 42841, 42846, 42850, 42854, - 42859, 42863, 42867, 42872, 42877, 42881, 42885, 42889, 42891, 42896, - 42901, 42905, 42909, 42913, 42917, 0, 42921, 42925, 42929, 42935, 42941, - 42947, 42953, 42960, 42967, 42972, 42977, 42981, 0, 0, 42987, 42990, - 42993, 42996, 42999, 43002, 43005, 43009, 43013, 43018, 43023, 43028, - 43035, 43039, 43042, 43045, 43048, 43051, 43054, 43057, 43060, 43063, - 43066, 43070, 43074, 43079, 43084, 0, 43089, 43095, 43101, 43107, 43114, - 43121, 43128, 43135, 43141, 43148, 43155, 43162, 43169, 0, 0, 0, 43176, - 43179, 43182, 43185, 43190, 43193, 43196, 43199, 43202, 43205, 43208, - 43213, 43216, 43219, 43222, 43225, 43228, 43233, 43236, 43239, 43242, - 43245, 43248, 43253, 43256, 43259, 43264, 43269, 43273, 43276, 43279, - 43282, 43285, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43288, 43293, - 43298, 43305, 43313, 43318, 43323, 43327, 43331, 43336, 43343, 43350, - 43354, 43359, 43364, 43369, 43374, 43381, 43386, 43391, 43396, 43405, - 43412, 43419, 43423, 43428, 43434, 43439, 43446, 43454, 43462, 43466, - 43470, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43474, 43478, 43485, - 43490, 43494, 43499, 43503, 43507, 43511, 43513, 43517, 43521, 43525, - 43530, 43535, 43539, 43547, 43550, 43554, 43557, 43560, 43566, 43571, - 43574, 43580, 43584, 43589, 43594, 43597, 43601, 43605, 43609, 43611, - 43614, 43617, 43621, 43623, 43628, 43631, 43634, 43639, 43644, 43650, - 43653, 43656, 43660, 43665, 43668, 43671, 43674, 43678, 43682, 43686, - 43689, 43691, 43694, 43697, 43700, 43704, 43709, 43712, 43717, 43722, - 43727, 43732, 43738, 43743, 43747, 43752, 43757, 43763, 43769, 43774, - 43779, 43785, 43789, 43792, 43795, 43797, 43801, 43807, 43814, 43821, - 43828, 43835, 43842, 43849, 43856, 43863, 43871, 43878, 43886, 43893, - 43900, 43908, 43916, 43921, 43926, 43931, 43936, 43941, 43946, 43951, - 43956, 43961, 43966, 43972, 43978, 43984, 43990, 43997, 44005, 44011, - 44017, 44023, 44029, 44035, 44041, 44047, 44053, 44059, 44065, 44072, - 44079, 44086, 44093, 44101, 44110, 44117, 44128, 44135, 44142, 44151, - 44158, 44167, 44176, 44183, 44191, 44199, 44202, 0, 0, 0, 0, 44205, - 44207, 44210, 44212, 44215, 44218, 44221, 44225, 44229, 44234, 44239, - 44243, 44247, 44251, 44255, 44260, 44266, 44271, 44277, 44282, 44287, - 44292, 44298, 44303, 44309, 44315, 44319, 44323, 44328, 44333, 44338, - 44343, 44348, 44356, 44364, 44372, 44380, 44387, 44395, 44402, 44409, - 44416, 44426, 44433, 44440, 44447, 44454, 44462, 44470, 44477, 44484, - 44492, 44500, 44505, 44513, 44518, 44523, 44529, 44534, 44540, 44547, - 44554, 44559, 44565, 44570, 44573, 44577, 44580, 44584, 44588, 44592, - 44597, 44602, 44608, 44614, 44618, 44622, 44626, 44630, 44636, 44642, - 44646, 44651, 44655, 44660, 44664, 44668, 44671, 44675, 44678, 44682, - 44689, 44697, 44709, 44720, 44725, 44734, 44741, 44748, 44756, 44760, - 44766, 44774, 44778, 44783, 44788, 44794, 44800, 44806, 44813, 44817, - 44821, 44826, 44829, 44831, 44835, 44839, 44847, 44851, 44853, 44855, - 44859, 44867, 44872, 44878, 44888, 44895, 44900, 44904, 44908, 44912, - 44915, 44918, 44921, 44925, 44929, 44933, 44937, 44941, 44944, 44948, - 44952, 44955, 44957, 44960, 44962, 44966, 44970, 44972, 44978, 44981, - 44986, 44990, 44994, 44996, 44998, 45000, 45003, 45007, 45011, 45015, - 45019, 45023, 45029, 45035, 45037, 45039, 45041, 45043, 45046, 45048, - 45052, 45054, 45058, 45062, 45068, 45072, 45076, 45080, 45084, 45089, - 45096, 45101, 45112, 45123, 45128, 45135, 45144, 45148, 45153, 45156, - 45161, 45165, 45171, 45176, 45189, 45199, 45203, 45207, 45214, 45219, - 45222, 45224, 45227, 45231, 45236, 45243, 45247, 45252, 45257, 45260, - 45265, 45270, 45277, 45284, 45290, 45296, 45305, 45314, 45318, 45322, - 45324, 45329, 45333, 45337, 45346, 45355, 45362, 45369, 45378, 45387, - 45393, 45399, 45407, 45415, 45417, 45419, 45426, 45433, 45440, 45447, - 45453, 45459, 45463, 45467, 45474, 45481, 45489, 45497, 45508, 45519, - 45528, 45537, 45539, 45543, 45547, 45552, 45557, 45566, 45575, 45578, - 45581, 45584, 45587, 45590, 45595, 45599, 45604, 45609, 45612, 45615, - 45618, 45621, 45624, 45628, 45631, 45634, 45637, 45640, 45642, 45644, - 45646, 45648, 45656, 45664, 45670, 45674, 45680, 45690, 45696, 45702, - 45708, 45716, 45726, 45739, 45743, 45747, 45749, 45755, 45757, 45759, - 45761, 45763, 45769, 45772, 45778, 45784, 45788, 45792, 45796, 45799, - 45803, 45807, 45809, 45818, 45827, 45832, 45837, 45843, 45849, 45855, - 45858, 45861, 45864, 45867, 45869, 45875, 45880, 45885, 45891, 45897, - 45906, 45915, 45922, 45929, 45936, 45943, 45953, 45963, 45974, 45985, - 45996, 46007, 46016, 46025, 46034, 46043, 46051, 46063, 46075, 46091, - 46094, 46100, 46106, 46112, 46120, 46135, 46151, 46157, 46163, 46170, - 46176, 46185, 46192, 46206, 46221, 46226, 46232, 46240, 46243, 46246, - 46248, 46251, 46254, 46256, 46258, 46262, 46265, 46268, 46271, 46274, - 46279, 46284, 46289, 46294, 46299, 46302, 46304, 46306, 46308, 46312, - 46316, 46320, 46326, 46330, 46332, 46334, 46339, 46344, 46349, 46354, - 46359, 46364, 46366, 46368, 46378, 46382, 46388, 46397, 46399, 46405, - 46411, 46418, 46422, 46424, 46428, 46430, 46434, 46438, 46442, 46444, - 46446, 46448, 46455, 46464, 46473, 46482, 46491, 46500, 46509, 46518, - 46527, 46535, 46543, 46552, 46561, 46570, 46579, 46587, 46595, 46604, - 46613, 46622, 46632, 46641, 46651, 46660, 46670, 46679, 46689, 46699, - 46708, 46718, 46727, 46737, 46746, 46756, 46765, 46774, 46783, 46792, - 46801, 46811, 46820, 46829, 46838, 46848, 46857, 46866, 46875, 46884, - 46894, 46904, 46913, 46922, 46930, 46939, 46946, 46955, 46964, 46975, - 46984, 46994, 47004, 47011, 47018, 47025, 47034, 47043, 47052, 47061, - 47068, 47073, 47082, 47088, 47091, 47098, 47101, 47106, 47111, 47114, - 47117, 47125, 47128, 47133, 47136, 47144, 47149, 47157, 47160, 47163, - 47166, 47171, 47176, 47179, 47182, 47190, 47193, 47200, 47207, 47211, - 47215, 47220, 47225, 47230, 47235, 47240, 47245, 47250, 47255, 47262, - 47268, 47275, 47282, 47288, 47295, 47302, 47310, 47317, 47323, 47330, - 47338, 47345, 47349, 47355, 47367, 47379, 47383, 47387, 47392, 47397, - 47408, 47412, 47417, 47422, 47428, 47434, 47440, 47446, 47455, 47464, - 47472, 47483, 47494, 47502, 47513, 47524, 47532, 47543, 47554, 47562, - 47570, 47580, 47590, 47593, 47596, 47599, 47604, 47608, 47614, 47621, - 47628, 47636, 47643, 47647, 47651, 47655, 47659, 47661, 47665, 47669, - 47675, 47681, 47689, 47697, 47700, 47707, 47709, 47711, 47715, 47719, - 47724, 47730, 47736, 47742, 47748, 47757, 47766, 47775, 47779, 47781, - 47785, 47792, 47799, 47806, 47813, 47820, 47823, 47828, 47834, 47837, - 47842, 47847, 47852, 47857, 47861, 47868, 47875, 47882, 47889, 47893, - 47897, 47901, 47905, 47911, 47917, 47922, 47928, 47934, 47940, 47946, - 47954, 47961, 47968, 47975, 47982, 47988, 47994, 48003, 48007, 48014, - 48018, 48022, 48028, 48034, 48040, 48046, 48050, 48054, 48057, 48061, - 48065, 48072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 48079, 48082, 48086, 48090, 48096, 48102, 48108, 48116, - 48123, 48127, 48135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48140, 48143, 48146, 48149, 48152, 48155, 48158, 48161, - 48164, 48167, 48171, 48175, 48179, 48183, 48187, 48191, 48195, 48199, - 48203, 48207, 48211, 48214, 48217, 48220, 48223, 48226, 48229, 48232, - 48235, 48238, 48242, 48246, 48250, 48254, 48258, 48262, 48266, 48270, - 48274, 48278, 48282, 48288, 48294, 48300, 48307, 48314, 48321, 48328, - 48335, 48342, 48349, 48356, 48363, 48370, 48377, 48384, 48391, 48398, - 48405, 48412, 48419, 48424, 48430, 48436, 48442, 48447, 48453, 48459, - 48465, 48470, 48476, 48482, 48487, 48493, 48499, 48504, 48510, 48516, - 48521, 48527, 48533, 48538, 48544, 48550, 48556, 48562, 48568, 48573, - 48579, 48585, 48591, 48596, 48602, 48608, 48614, 48619, 48625, 48631, - 48636, 48642, 48648, 48653, 48659, 48665, 48670, 48676, 48682, 48687, - 48693, 48699, 48705, 48711, 48717, 48722, 48728, 48734, 48740, 48745, - 48751, 48757, 48763, 48768, 48774, 48780, 48785, 48791, 48797, 48802, - 48808, 48814, 48819, 48825, 48831, 48836, 48842, 48848, 48854, 48860, - 48866, 48870, 48876, 48882, 48888, 48894, 48900, 48906, 48912, 48918, - 48924, 48930, 48934, 48938, 48942, 48946, 48950, 48954, 48958, 48962, - 48966, 48971, 48977, 48982, 48987, 48992, 48997, 49006, 49015, 49024, - 49033, 49042, 49051, 49060, 49069, 49075, 49083, 49091, 49097, 49104, - 49112, 49120, 49127, 49133, 49141, 49149, 49155, 49162, 49170, 49178, - 49185, 49191, 49199, 49208, 49217, 49225, 49234, 49243, 49249, 49256, - 49264, 49273, 49282, 49290, 49299, 49308, 49315, 49322, 49331, 49340, - 49349, 49358, 49367, 49376, 49383, 49390, 49399, 49408, 49417, 49426, - 49435, 49444, 49451, 49458, 49467, 49476, 49485, 49495, 49505, 49514, - 49524, 49534, 49544, 49554, 49564, 49574, 49583, 49592, 49599, 49607, - 49615, 49623, 49631, 49636, 49641, 49650, 49658, 49664, 49673, 49681, - 49688, 49697, 49705, 49711, 49720, 49728, 49735, 49744, 49752, 49758, - 49767, 49775, 49782, 49792, 49801, 49808, 49818, 49827, 49834, 49844, - 49853, 49860, 49868, 49877, 49886, 49894, 49905, 49915, 49922, 49927, - 49932, 49936, 49941, 49946, 49951, 49955, 49960, 49967, 49975, 49982, - 49990, 49994, 50000, 50006, 50012, 50016, 50023, 50029, 50036, 50040, - 50047, 50053, 50060, 50064, 50070, 50076, 50082, 50086, 50089, 50093, - 50097, 50103, 50109, 50114, 50118, 50123, 50133, 50140, 50151, 50161, - 50165, 50173, 50183, 50186, 50189, 50196, 50204, 50210, 50215, 50223, - 50232, 50241, 50249, 50253, 50257, 50260, 50263, 50267, 50271, 50274, - 50277, 50282, 50287, 50293, 50299, 50304, 50309, 50315, 50321, 50326, - 50331, 50336, 50341, 50347, 50353, 50358, 50363, 50369, 50375, 50380, - 50385, 50388, 50391, 50400, 50402, 50404, 50407, 50411, 50417, 50419, - 50422, 50429, 50436, 50443, 50450, 50459, 50472, 50477, 50482, 50486, - 50491, 50498, 50505, 50513, 50521, 50529, 50537, 50541, 50545, 50550, - 50555, 50560, 50565, 50568, 50574, 50580, 50589, 50598, 50606, 50614, - 50623, 50632, 50636, 50643, 50650, 50657, 50664, 50672, 50680, 50688, - 50696, 50700, 50704, 50708, 50713, 50718, 50724, 50730, 50734, 50740, - 50742, 50744, 50746, 50748, 50751, 50754, 50756, 50758, 50760, 50764, - 50768, 50770, 50772, 50775, 50778, 50782, 50788, 50794, 50796, 50803, - 50807, 50812, 50817, 50819, 50829, 50835, 50841, 50847, 50853, 50859, - 50865, 50870, 50873, 50876, 50879, 50881, 50883, 50887, 50891, 50896, - 50901, 50906, 50909, 50913, 50918, 50921, 50925, 50930, 50935, 50940, - 50945, 50950, 50955, 50960, 50965, 50970, 50975, 50980, 50985, 50991, - 50997, 51003, 51005, 51008, 51010, 51013, 51015, 51017, 51019, 51021, - 51023, 51025, 51027, 51029, 51031, 51033, 51035, 51037, 51039, 51041, - 51043, 51045, 51047, 51052, 51057, 51062, 51067, 51072, 51077, 51082, - 51087, 51092, 51097, 51102, 51107, 51112, 51117, 51122, 51127, 51132, - 51137, 51142, 51147, 51151, 51155, 51159, 51165, 51171, 51176, 51181, - 51186, 51192, 51198, 51203, 51211, 51219, 51227, 51235, 51243, 51251, - 51259, 51267, 51273, 51278, 51283, 51288, 51291, 51295, 51299, 51303, - 51307, 51311, 51315, 51321, 51328, 51335, 51343, 51348, 51353, 51360, - 51367, 51374, 51381, 51384, 51387, 51392, 51394, 51398, 51403, 51405, - 51407, 51409, 51411, 51416, 51419, 51421, 51426, 51432, 51439, 51442, - 51446, 51451, 51456, 51464, 51470, 51476, 51488, 51495, 51503, 51508, - 51513, 51519, 51522, 51525, 51530, 51532, 51536, 51538, 51540, 51542, - 51544, 51546, 51548, 51553, 51555, 51557, 51559, 51561, 51565, 51567, - 51570, 51575, 51580, 51585, 51590, 51596, 51602, 51604, 51607, 51614, - 51620, 51626, 51633, 51637, 51641, 51643, 51645, 51649, 51655, 51660, - 51662, 51666, 51675, 51683, 51691, 51697, 51703, 51708, 51714, 51719, - 51722, 51736, 51739, 51744, 51749, 51755, 51765, 51767, 51773, 51779, - 51783, 51790, 51794, 51796, 51798, 51802, 51808, 51813, 51819, 51821, - 51827, 51829, 51835, 51837, 51839, 51844, 51846, 51850, 51855, 51857, - 51862, 51867, 51871, 51878, 51888, 51893, 51898, 51901, 51906, 51909, - 51914, 51919, 51923, 51925, 51927, 51931, 51935, 51939, 51943, 51947, - 51949, 51953, 51956, 51959, 51962, 51966, 51970, 51975, 51979, 51984, - 51989, 51993, 51999, 52006, 52009, 52015, 52020, 52024, 52029, 52035, - 52041, 52048, 52054, 52061, 52068, 52070, 52077, 52081, 52088, 52094, - 52099, 52105, 52109, 52114, 52117, 52123, 52129, 52136, 52144, 52151, - 52160, 52170, 52177, 52183, 52187, 52195, 52200, 52209, 52212, 52215, - 52224, 52235, 52242, 52244, 52250, 52255, 52257, 52260, 52264, 52272, - 52281, 52284, 52289, 52295, 52302, 52309, 52316, 52323, 52329, 52335, - 52341, 52349, 52354, 52357, 52361, 52364, 52375, 52385, 52395, 52404, - 52415, 52425, 52434, 52440, 52448, 52452, 52460, 52464, 52472, 52479, - 52486, 52495, 52504, 52514, 52524, 52534, 52544, 52553, 52562, 52572, - 52582, 52591, 52600, 52607, 52614, 52621, 52628, 52635, 52642, 52649, - 52656, 52663, 52671, 52677, 52683, 52689, 52695, 52701, 52707, 52713, - 52719, 52725, 52732, 52740, 52748, 52756, 52764, 52772, 52780, 52788, - 52796, 52804, 52813, 52818, 52821, 52825, 52829, 52835, 52838, 52843, - 52849, 52854, 52858, 52863, 52869, 52876, 52879, 52886, 52893, 52897, - 52906, 52915, 52920, 52926, 52931, 52936, 52943, 52950, 52957, 52964, - 52972, 52976, 52984, 52989, 52993, 53000, 53004, 53010, 53018, 53023, - 53030, 53034, 53039, 53043, 53048, 53052, 53057, 53062, 53071, 53073, - 53077, 53081, 53088, 53095, 53101, 53109, 53115, 53122, 53127, 53130, - 53135, 53140, 53145, 53153, 53157, 53164, 53171, 53178, 53183, 53188, - 53194, 53199, 53204, 53210, 53215, 53218, 53222, 53226, 53233, 53243, - 53248, 53257, 53266, 53272, 53278, 53284, 53290, 53296, 53302, 53309, - 53316, 53325, 53334, 53340, 53346, 53351, 53356, 53363, 53370, 53376, - 53379, 53382, 53386, 53390, 53394, 53399, 53405, 53411, 53418, 53425, - 53430, 53434, 53438, 53442, 53446, 53450, 53454, 53458, 53462, 53466, - 53470, 53474, 53478, 53482, 53486, 53490, 53494, 53498, 53502, 53506, - 53510, 53514, 53518, 53522, 53526, 53530, 53534, 53538, 53542, 53546, - 53550, 53554, 53558, 53562, 53566, 53570, 53574, 53578, 53582, 53586, - 53590, 53594, 53598, 53602, 53606, 53610, 53614, 53618, 53622, 53626, - 53630, 53634, 53638, 53642, 53646, 53650, 53654, 53658, 53662, 53666, - 53670, 53674, 53678, 53682, 53686, 53690, 53694, 53698, 53702, 53706, - 53710, 53714, 53718, 53722, 53726, 53730, 53734, 53738, 53742, 53746, - 53750, 53754, 53758, 53762, 53766, 53770, 53774, 53778, 53782, 53786, - 53790, 53794, 53798, 53802, 53806, 53810, 53814, 53818, 53822, 53826, - 53830, 53834, 53838, 53842, 53846, 53850, 53854, 53858, 53862, 53866, - 53870, 53874, 53878, 53882, 53886, 53890, 53894, 53898, 53902, 53906, - 53910, 53914, 53918, 53922, 53926, 53930, 53934, 53938, 53942, 53946, - 53950, 53954, 53958, 53962, 53966, 53970, 53974, 53978, 53982, 53986, - 53990, 53994, 53998, 54002, 54006, 54010, 54014, 54018, 54022, 54026, - 54030, 54034, 54038, 54042, 54046, 54050, 54054, 54058, 54062, 54066, - 54070, 54074, 54078, 54082, 54086, 54090, 54094, 54098, 54102, 54106, - 54110, 54114, 54118, 54122, 54126, 54130, 54134, 54138, 54142, 54146, - 54150, 54154, 54158, 54162, 54166, 54170, 54174, 54178, 54182, 54186, - 54190, 54194, 54198, 54202, 54206, 54210, 54214, 54218, 54222, 54226, - 54230, 54234, 54238, 54242, 54246, 54250, 54254, 54258, 54262, 54266, - 54270, 54274, 54278, 54282, 54286, 54290, 54294, 54298, 54302, 54306, - 54310, 54314, 54318, 54322, 54326, 54330, 54334, 54338, 54342, 54346, - 54350, 54354, 54358, 54362, 54366, 54370, 54374, 54378, 54382, 54386, - 54390, 54394, 54398, 54402, 54406, 54410, 54414, 54418, 54422, 54426, - 54430, 54434, 54438, 54442, 54446, 54450, 54454, 54461, 54469, 54475, - 54481, 54488, 54495, 54501, 54507, 54514, 54521, 54526, 54531, 54536, - 54541, 54547, 54553, 54561, 54568, 54573, 54578, 54586, 54595, 54602, - 54612, 54623, 54626, 54629, 54633, 54637, 54643, 54649, 54659, 54669, - 54678, 54687, 54693, 54699, 54706, 54713, 54722, 54732, 54743, 54753, - 54763, 54773, 54784, 54795, 54805, 54816, 54826, 54836, 54844, 54854, - 54864, 54875, 54886, 54893, 54900, 54907, 54914, 54924, 54934, 54941, - 54948, 54955, 54962, 54969, 54976, 54983, 54988, 54993, 54999, 55007, - 55017, 55025, 55033, 55041, 55049, 55057, 55065, 55073, 55081, 55089, - 55097, 55106, 55115, 55123, 55131, 55140, 55149, 55158, 55167, 55177, - 55187, 55196, 55205, 55215, 55225, 55239, 55255, 55269, 55285, 55299, - 55313, 55327, 55341, 55351, 55362, 55372, 55383, 55399, 55415, 55423, - 55429, 55436, 55443, 55450, 55458, 55463, 55469, 55474, 55479, 55485, - 55490, 55495, 55500, 55505, 55510, 55517, 55523, 55531, 55537, 55543, - 55547, 55551, 55560, 55569, 55578, 55587, 55594, 55601, 55614, 55627, - 55640, 55653, 55661, 55669, 55676, 55683, 55691, 55699, 55707, 55715, - 55719, 55724, 55732, 55740, 55748, 55755, 55759, 55767, 55775, 55778, - 55782, 55787, 55794, 55802, 55810, 55829, 55849, 55868, 55888, 55908, - 55928, 55948, 55968, 55974, 55981, 55990, 55998, 56006, 56012, 56015, - 56018, 56023, 56026, 56046, 56053, 56059, 56065, 56069, 56072, 56075, - 56078, 56088, 56100, 56107, 56114, 56117, 56121, 56124, 56129, 56134, - 56139, 56145, 56154, 56161, 56168, 56176, 56183, 56190, 56193, 56199, - 56205, 56208, 56211, 56216, 56221, 56227, 56233, 56237, 56242, 56249, - 56253, 56259, 56263, 56267, 56275, 56287, 56295, 56299, 56301, 56310, - 56319, 56325, 56328, 56334, 56340, 56345, 56350, 56355, 56360, 56365, - 56370, 56372, 56378, 56383, 56391, 56395, 56401, 56404, 56408, 56416, - 56424, 56426, 56428, 56434, 56440, 56446, 56455, 56464, 56471, 56478, - 56484, 56491, 56496, 56501, 56506, 56512, 56518, 56523, 56530, 56534, - 56538, 56551, 56564, 56576, 56585, 56591, 56598, 56603, 56608, 56613, - 56618, 56623, 56625, 56632, 56640, 56648, 56656, 56663, 56671, 56677, - 56682, 56688, 56694, 56700, 56707, 56713, 56721, 56729, 56737, 56745, - 56753, 56759, 56765, 56774, 56778, 56787, 56796, 56805, 56813, 56817, - 56823, 56830, 56837, 56841, 56847, 56855, 56861, 56866, 56872, 56877, - 56882, 56889, 56896, 56901, 56906, 56914, 56922, 56932, 56942, 56949, - 56956, 56960, 56964, 56976, 56982, 56989, 56994, 56999, 57006, 57013, - 57019, 57025, 57035, 57042, 57050, 57058, 57067, 57074, 57080, 57087, - 57093, 57101, 57109, 57117, 57125, 57131, 57136, 57146, 57157, 57164, - 57173, 57179, 57184, 57189, 57199, 57208, 57214, 57220, 57228, 57233, - 57240, 57247, 57258, 57265, 57272, 57279, 57286, 57293, 57302, 57311, - 57324, 57337, 57349, 57361, 57374, 57388, 57394, 57400, 57410, 57420, - 57427, 57434, 57444, 57454, 57463, 57472, 57480, 57488, 57498, 57508, - 57523, 57538, 57547, 57556, 57569, 57582, 57591, 57600, 57611, 57622, - 57628, 57634, 57643, 57652, 57657, 57662, 57670, 57676, 57682, 57690, - 57698, 57711, 57724, 57728, 57732, 57741, 57750, 57757, 57765, 57773, - 57783, 57793, 57799, 57805, 57813, 57821, 57829, 57837, 57847, 57857, - 57860, 57863, 57868, 57873, 57879, 57885, 57892, 57899, 57910, 57921, - 57928, 57935, 57943, 57951, 57960, 57969, 57978, 57987, 57994, 58001, - 58005, 58009, 58018, 58027, 58032, 58037, 58042, 58047, 58053, 58067, - 58074, 58081, 58085, 58087, 58089, 58094, 58099, 58104, 58109, 58117, - 58124, 58131, 58139, 58151, 58159, 58167, 58178, 58182, 58186, 58192, - 58200, 58213, 58220, 58227, 58234, 58240, 58247, 58256, 58265, 58271, - 58277, 58283, 58294, 58305, 58313, 58322, 58327, 58330, 58335, 58340, - 58345, 58351, 58357, 58361, 58364, 58368, 58372, 58377, 58382, 58388, - 58394, 58398, 58402, 58409, 58416, 58423, 58430, 58437, 58444, 58453, - 58462, 58469, 58476, 58484, 58492, 58496, 58501, 58506, 58512, 58518, - 58521, 58524, 58527, 58530, 58535, 58540, 58545, 58550, 58555, 58560, - 58564, 58568, 58572, 58577, 58582, 58586, 58590, 58596, 58600, 58606, - 58611, 58618, 58626, 58633, 58641, 58648, 58656, 58665, 58672, 58682, - 58693, 58699, 58708, 58714, 58723, 58733, 58739, 58745, 58749, 58753, - 58762, 58772, 58779, 58787, 58796, 58805, 58812, 58818, 58825, 58830, - 58834, 58838, 58843, 58848, 58853, 58861, 58869, 58872, 58876, 58885, - 58895, 58904, 58914, 58926, 58940, 58944, 58949, 58953, 58958, 58963, - 58968, 58974, 58980, 58987, 58994, 59000, 59007, 59013, 59020, 59029, - 59038, 59044, 59051, 59057, 0, 0, 59064, 59072, 59080, 59089, 59098, - 59107, 59117, 59126, 59136, 59142, 59147, 59156, 59168, 59177, 59189, - 59196, 59204, 59211, 59219, 59224, 59230, 59235, 59241, 59249, 59258, - 59266, 59275, 59279, 59282, 59286, 59289, 59299, 0, 59302, 59309, 59318, - 59328, 59337, 59347, 59353, 59360, 59366, 59373, 59384, 59395, 59406, - 59417, 59427, 59437, 59447, 59457, 59465, 59473, 59481, 59489, 59497, - 59505, 59513, 59521, 59527, 59532, 59538, 59543, 59549, 59555, 59561, - 59567, 59579, 59589, 59594, 59601, 59606, 59613, 59616, 59620, 59624, - 59629, 59633, 59638, 59641, 59650, 59659, 59668, 59677, 59682, 59688, - 59694, 59702, 59712, 59719, 59728, 59733, 59736, 59739, 59744, 59749, - 59754, 59759, 59761, 59763, 59765, 59767, 59769, 59771, 59776, 59783, - 59790, 59792, 59794, 59796, 59798, 59800, 59802, 59804, 59806, 59811, - 59816, 59823, 59830, 59839, 59849, 59858, 59868, 59873, 59878, 59880, - 59887, 59894, 59901, 59908, 59915, 59922, 59929, 59932, 59935, 59938, - 59941, 59946, 59951, 59956, 59961, 59966, 59971, 59976, 59981, 59986, - 59991, 59996, 60001, 60007, 60011, 60016, 60021, 60026, 60031, 60036, - 60041, 60046, 60051, 60056, 60061, 60066, 60071, 60076, 60081, 60086, - 60091, 60096, 60101, 60106, 60111, 60116, 60121, 60127, 60132, 60138, - 60147, 60152, 60160, 60167, 60176, 60181, 60186, 60191, 60197, 60204, - 60211, 60216, 60221, 60226, 60231, 60236, 60241, 60246, 60251, 60256, - 60261, 60267, 60271, 60276, 60281, 60286, 60291, 60296, 60301, 60306, - 60311, 60316, 60321, 60326, 60331, 60336, 60341, 60346, 60351, 60356, - 60361, 60366, 60371, 60376, 60381, 60387, 60392, 60398, 60407, 60412, - 60420, 60427, 60436, 60441, 60446, 60451, 60457, 60464, 60471, 60479, - 60487, 60496, 60503, 60511, 60517, 60526, 60534, 60542, 60550, 60558, - 60566, 60574, 60579, 60586, 60591, 60597, 60605, 60612, 60619, 60627, - 60633, 60639, 60646, 60654, 60663, 60673, 60679, 60686, 60691, 60701, - 60711, 60716, 60721, 60726, 60731, 60736, 60741, 60746, 60751, 60756, - 60761, 60766, 60771, 60776, 60781, 60786, 60791, 60796, 60801, 60806, - 60811, 60816, 60821, 60826, 60831, 60836, 60841, 60846, 60851, 60856, - 60861, 60865, 60869, 60874, 60879, 60884, 60889, 60894, 60899, 60904, - 60909, 60914, 60919, 60924, 60929, 60934, 60939, 60944, 60949, 60954, - 60959, 60966, 60973, 60980, 60987, 60994, 61001, 61008, 61015, 61022, - 61029, 61036, 61043, 61050, 61057, 61062, 61067, 61074, 61081, 61088, - 61095, 61102, 61109, 61116, 61123, 61130, 61137, 61144, 61151, 61157, - 61163, 61169, 61175, 61182, 61189, 61196, 61203, 61210, 61217, 61224, - 61231, 61238, 61245, 61253, 61261, 61269, 61277, 61285, 61293, 61301, - 61309, 61313, 61319, 61325, 61329, 61335, 61341, 61347, 61354, 61361, - 61368, 61375, 61380, 61386, 61392, 61399, 0, 0, 0, 0, 0, 61406, 61414, - 61423, 61432, 61440, 61446, 61451, 61456, 61461, 61466, 61471, 61476, - 61481, 61486, 61491, 61496, 61501, 61506, 61511, 61516, 61521, 61526, - 61531, 61536, 61541, 61546, 61551, 61556, 61561, 61566, 61571, 61576, - 61581, 61586, 61591, 61596, 61601, 61606, 61611, 61616, 61621, 61626, - 61631, 61636, 61641, 0, 61646, 0, 0, 0, 0, 0, 61651, 0, 0, 61656, 61660, - 61665, 61670, 61675, 61680, 61689, 61694, 61699, 61704, 61709, 61714, - 61719, 61724, 61729, 61736, 61741, 61746, 61755, 61762, 61767, 61772, - 61777, 61784, 61789, 61796, 61801, 61806, 61813, 61820, 61825, 61830, - 61835, 61842, 61849, 61854, 61859, 61864, 61869, 61874, 61881, 61888, - 61893, 61898, 61903, 61908, 61913, 61918, 61923, 61928, 61933, 61938, - 61943, 61950, 61955, 61960, 0, 0, 0, 0, 0, 0, 0, 61965, 61972, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61977, 61982, 61986, 61990, 61994, - 61998, 62002, 62006, 62010, 62014, 62018, 62022, 62028, 62032, 62036, - 62040, 62044, 62048, 62052, 62056, 62060, 62064, 62068, 62072, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 62076, 62080, 62084, 62088, 62092, 62096, 62100, 0, - 62104, 62108, 62112, 62116, 62120, 62124, 62128, 0, 62132, 62136, 62140, - 62144, 62148, 62152, 62156, 0, 62160, 62164, 62168, 62172, 62176, 62180, - 62184, 0, 62188, 62192, 62196, 62200, 62204, 62208, 62212, 0, 62216, - 62220, 62224, 62228, 62232, 62236, 62240, 0, 62244, 62248, 62252, 62256, - 62260, 62264, 62268, 0, 62272, 62276, 62280, 62284, 62288, 62292, 62296, - 0, 62300, 62305, 62310, 62315, 62320, 62325, 62330, 62334, 62339, 62344, - 62349, 62353, 62358, 62363, 62368, 62373, 62377, 62382, 62387, 62392, - 62397, 62402, 62407, 62411, 62416, 62421, 62428, 62433, 62438, 62444, - 62451, 62458, 62467, 62474, 62483, 62488, 62493, 62500, 62507, 62513, - 62521, 62527, 62532, 62537, 62541, 62548, 62555, 62559, 62561, 62565, - 62571, 62573, 62577, 62581, 62585, 62591, 62596, 62600, 62604, 62609, - 62615, 62621, 62627, 62632, 62637, 62644, 62651, 62657, 62663, 62669, - 62675, 62681, 62687, 62691, 62695, 62702, 62709, 62715, 62719, 62724, - 62727, 62731, 62738, 62741, 62745, 62749, 62752, 62758, 62764, 62767, - 62773, 62777, 62781, 62787, 62792, 62797, 62799, 62802, 62806, 62812, - 62818, 62822, 62827, 62836, 62839, 62845, 62850, 62854, 62858, 62862, - 62865, 62870, 62876, 62884, 62892, 62898, 62903, 62908, 62914, 62920, - 62927, 62934, 62940, 62946, 62952, 62958, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 18787, 18792, 0, 18799, 0, 18806, 18813, 18818, 18823, 18830, 0, + 18837, 18844, 18849, 18856, 18863, 18870, 18877, 18884, 18891, 18896, + 18900, 18907, 18914, 18921, 18926, 18931, 18936, 18943, 18950, 18957, + 18964, 18971, 18976, 18981, 0, 18988, 0, 18995, 19000, 19007, 19014, + 19021, 19028, 19035, 19039, 19046, 19050, 19055, 19063, 19069, 19075, + 19080, 19086, 19092, 19098, 19103, 19109, 19116, 19124, 19131, 0, 0, + 19138, 19143, 19149, 19154, 19160, 0, 19166, 0, 19171, 19178, 19185, + 19192, 19199, 19204, 0, 0, 19208, 19213, 19217, 19221, 19225, 19229, + 19233, 19237, 19241, 19245, 0, 0, 19249, 19255, 19261, 19268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 62962, 62966, 62970, 62975, 62980, 62985, 62989, 62993, 62997, 63002, - 63007, 63011, 63015, 63019, 63023, 63028, 63033, 63038, 63043, 63047, - 63051, 63056, 63061, 63066, 63071, 63075, 0, 63079, 63083, 63087, 63091, - 63095, 63099, 63103, 63108, 63113, 63117, 63122, 63127, 63136, 63140, - 63144, 63148, 63155, 63159, 63164, 63169, 63173, 63177, 63183, 63188, - 63193, 63198, 63203, 63207, 63211, 63215, 63219, 63223, 63228, 63233, - 63237, 63241, 63246, 63251, 63256, 63260, 63264, 63269, 63274, 63280, - 63286, 63290, 63296, 63302, 63306, 63312, 63318, 63323, 63328, 63332, - 63338, 63342, 63346, 63352, 63358, 63363, 63368, 63372, 63376, 63384, - 63390, 63396, 63402, 63407, 63412, 63417, 63423, 63427, 63433, 63437, - 63441, 63447, 63453, 63459, 63465, 63471, 63477, 63483, 63489, 63495, - 63501, 63507, 63513, 63517, 63523, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63529, 63532, 63536, 63540, 63544, 63548, 63551, 63554, 63558, 63562, - 63566, 63570, 63573, 63578, 63582, 63586, 63590, 63596, 63600, 63604, - 63608, 63612, 63619, 63625, 63629, 63633, 63637, 63641, 63645, 63649, - 63653, 63657, 63661, 63665, 63669, 63675, 63679, 63683, 63687, 63691, - 63695, 63699, 63703, 63707, 63711, 63715, 63719, 63723, 63727, 63731, - 63735, 63739, 63745, 63751, 63756, 63761, 63765, 63769, 63773, 63777, - 63781, 63785, 63789, 63793, 63797, 63801, 63805, 63809, 63813, 63817, - 63821, 63825, 63829, 63833, 63837, 63841, 63845, 63849, 63853, 63857, - 63863, 63867, 63871, 63875, 63879, 63883, 63887, 63891, 63895, 63900, - 63907, 63911, 63915, 63919, 63923, 63927, 63931, 63935, 63939, 63943, - 63947, 63951, 63955, 63962, 63966, 63972, 63976, 63980, 63984, 63988, - 63992, 63995, 63999, 64003, 64007, 64011, 64015, 64019, 64023, 64027, - 64031, 64035, 64039, 64043, 64047, 64051, 64055, 64059, 64063, 64067, - 64071, 64075, 64079, 64083, 64087, 64091, 64095, 64099, 64103, 64107, - 64111, 64115, 64119, 64123, 64129, 64133, 64137, 64141, 64145, 64149, - 64153, 64157, 64161, 64165, 64169, 64173, 64177, 64181, 64185, 64189, - 64193, 64197, 64201, 64205, 64209, 64213, 64217, 64221, 64225, 64229, - 64233, 64237, 64245, 64249, 64253, 64257, 64261, 64265, 64271, 64275, - 64279, 64283, 64287, 64291, 64295, 64299, 64303, 64307, 64311, 64315, - 64319, 64323, 64329, 64333, 64337, 64341, 64345, 64349, 64353, 64357, - 64361, 64365, 64369, 64373, 64377, 64381, 64385, 64389, 64393, 64397, - 64401, 64405, 64409, 64413, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64417, 64425, 64433, 64443, 64453, - 64462, 64472, 64482, 64493, 64505, 64516, 64528, 0, 0, 0, 0, 64535, - 64538, 64541, 64546, 64549, 64556, 64560, 64564, 64568, 64573, 64578, - 64584, 64590, 64595, 64600, 64606, 64612, 64618, 64624, 64627, 64630, - 64637, 64644, 64650, 64656, 64664, 64672, 64677, 64682, 64686, 64694, - 64700, 64707, 64712, 64717, 64722, 64727, 64732, 64737, 64742, 64747, - 64752, 64757, 64762, 64767, 64772, 64777, 64783, 64788, 64792, 64798, - 64809, 64818, 64832, 64841, 64845, 64855, 64861, 64867, 64873, 64878, - 64881, 64886, 64890, 0, 64896, 64901, 64905, 64910, 64914, 64919, 64923, - 64928, 64932, 64937, 64941, 64945, 64950, 64955, 64960, 64965, 64970, - 64975, 64980, 64985, 64990, 64994, 64999, 65004, 65009, 65014, 65019, - 65024, 65029, 65034, 65039, 65044, 65049, 65054, 65059, 65065, 65070, - 65075, 65080, 65085, 65089, 65094, 65098, 65103, 65108, 65113, 65118, - 65122, 65127, 65131, 65136, 65141, 65146, 65151, 65156, 65161, 65166, - 65171, 65176, 65181, 65186, 65191, 65195, 65200, 65205, 65210, 65215, - 65220, 65224, 65230, 65235, 65241, 65246, 65250, 65255, 65260, 65265, - 65270, 65276, 65281, 65286, 65291, 65296, 65301, 65306, 65311, 0, 0, - 65317, 65325, 65333, 65340, 65347, 65352, 65359, 65365, 65370, 65374, - 65377, 65381, 65384, 65388, 65391, 65395, 65398, 65402, 65405, 65408, - 65412, 65416, 65420, 65424, 65428, 65432, 65436, 65440, 65444, 65447, - 65451, 65455, 65459, 65463, 65467, 65471, 65475, 65479, 65483, 65487, - 65491, 65495, 65499, 65504, 65508, 65512, 65516, 65520, 65523, 65527, - 65530, 65534, 65538, 65542, 65546, 65549, 65553, 65556, 65560, 65564, - 65568, 65572, 65576, 65580, 65584, 65588, 65592, 65596, 65600, 65604, - 65607, 65611, 65615, 65619, 65623, 65627, 65630, 65635, 65639, 65644, - 65648, 65651, 65655, 65659, 65663, 65667, 65672, 65676, 65680, 65684, - 65688, 65692, 65696, 65700, 65705, 65709, 65713, 65717, 65721, 65725, - 65732, 65736, 65742, 0, 0, 0, 0, 0, 65747, 65752, 65757, 65762, 65767, - 65772, 65777, 65782, 65786, 65791, 65796, 65801, 65806, 65811, 65816, - 65821, 65826, 65831, 65835, 65840, 65845, 65850, 65854, 65858, 65862, - 65867, 65872, 65877, 65882, 65887, 65892, 65897, 65902, 65907, 65912, - 65916, 65920, 65925, 65930, 65935, 65940, 65945, 65952, 0, 65957, 65961, - 65965, 65969, 65973, 65977, 65981, 65985, 65989, 65993, 65997, 66001, - 66005, 66009, 66013, 66017, 66021, 66025, 66029, 66033, 66037, 66041, - 66045, 66049, 66053, 66057, 66061, 66065, 66069, 66073, 66077, 66080, - 66084, 66087, 66091, 66095, 66098, 66102, 66106, 66109, 66113, 66117, - 66121, 66125, 66128, 66132, 66136, 66140, 66144, 66148, 66152, 66155, - 66158, 66162, 66166, 66170, 66174, 66178, 66182, 66186, 66190, 66194, - 66198, 66202, 66206, 66210, 66214, 66218, 66222, 66226, 66230, 66234, - 66238, 66242, 66246, 66250, 66254, 66258, 66262, 66266, 66270, 66274, - 66278, 66282, 66286, 66290, 66294, 66298, 66302, 66306, 66310, 66314, - 66318, 66322, 0, 66326, 66332, 66338, 66343, 66348, 66353, 66359, 66365, - 66370, 66376, 66382, 66388, 66394, 66400, 66406, 66412, 66418, 66423, - 66428, 66433, 66438, 66443, 66448, 66453, 66458, 66463, 66468, 66473, - 66478, 66483, 66488, 66493, 66498, 66503, 66508, 66513, 66518, 66524, - 66530, 66536, 66542, 66547, 66552, 66557, 66563, 66568, 66573, 66578, - 66583, 66588, 66593, 66598, 66603, 66608, 66613, 66618, 66623, 66628, - 66633, 66638, 66643, 66648, 66653, 66658, 66663, 66668, 66673, 66678, - 66683, 66688, 66693, 66698, 66703, 66708, 66713, 66718, 66723, 66728, - 66733, 66738, 66743, 66748, 66753, 66758, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 66763, 66768, 66773, 66778, 66782, 66787, 66791, 66796, 66801, - 66806, 66811, 66816, 66820, 66825, 66830, 66835, 66840, 66844, 66848, - 66852, 66856, 66860, 66864, 66868, 66872, 66876, 66880, 66884, 66888, - 66892, 66896, 66901, 66906, 66911, 66916, 66921, 66926, 66931, 66936, - 66941, 66946, 66951, 66956, 66961, 66966, 66971, 66978, 0, 66986, 66990, - 66994, 66998, 67002, 67006, 67010, 67014, 67018, 67022, 67027, 67032, - 67037, 67042, 67047, 67052, 67057, 67062, 67067, 67072, 67077, 67082, - 67087, 67092, 67097, 67102, 67107, 67112, 67117, 67122, 67127, 67132, - 67137, 67142, 67147, 67152, 67157, 67162, 67167, 67172, 67177, 67186, - 67195, 67204, 67213, 67222, 67231, 67240, 67249, 67252, 67257, 67262, - 67267, 67272, 67277, 67282, 67287, 67292, 67297, 67301, 67306, 67311, - 67316, 67321, 67326, 67330, 67334, 67338, 67342, 67346, 67350, 67354, - 67358, 67362, 67366, 67370, 67374, 67378, 67382, 67387, 67392, 67397, - 67402, 67407, 67412, 67417, 67422, 67427, 67432, 67437, 67442, 67447, - 67452, 67459, 67466, 67471, 67476, 67480, 67484, 67488, 67492, 67496, - 67500, 67504, 67508, 67512, 67517, 67522, 67527, 67532, 67537, 67542, - 67547, 67552, 67557, 67562, 67567, 67572, 67577, 67582, 67587, 67592, - 67597, 67602, 67607, 67612, 67617, 67622, 67627, 67632, 67637, 67642, - 67647, 67652, 67657, 67662, 67667, 67671, 67676, 67681, 67686, 67691, - 67696, 67701, 67706, 67711, 67716, 67721, 67726, 67731, 67735, 67740, - 67745, 67750, 67755, 67760, 67765, 67770, 67775, 67780, 67784, 67791, - 67798, 67805, 67812, 67819, 67826, 67833, 67840, 67847, 67854, 67861, - 67868, 67871, 67874, 67877, 67882, 67885, 67888, 67891, 67894, 67897, - 67900, 67904, 67908, 67912, 67916, 67919, 67923, 67927, 67931, 67935, - 67939, 67943, 67947, 67951, 67954, 67957, 67961, 67965, 67969, 67973, - 67976, 67980, 67984, 67988, 67992, 67995, 67999, 68003, 68007, 68011, - 68014, 68018, 68022, 68025, 68029, 68033, 68037, 68041, 68045, 68049, - 68053, 68057, 68064, 68067, 68070, 68073, 68076, 68079, 68082, 68085, - 68088, 68091, 68094, 68097, 68100, 68103, 68106, 68109, 68112, 68115, - 68118, 68121, 68124, 68127, 68130, 68133, 68136, 68139, 68142, 68145, - 68148, 68151, 68154, 68157, 68160, 68163, 68166, 68169, 68172, 68175, - 68178, 68181, 68184, 68187, 68190, 68193, 68196, 68199, 68202, 68205, - 68208, 68211, 68214, 68217, 68220, 68223, 68226, 68229, 68232, 68235, - 68238, 68241, 68244, 68247, 68250, 68253, 68256, 68259, 68262, 68265, - 68268, 68271, 68274, 68277, 68280, 68283, 68286, 68289, 68292, 68295, - 68298, 68301, 68304, 68307, 68310, 68313, 68316, 68319, 68322, 68325, - 68328, 68337, 68345, 68353, 68361, 68369, 68377, 68385, 68393, 68401, - 68409, 68418, 68427, 68436, 68445, 68454, 68463, 68472, 68481, 68490, - 68499, 68508, 68517, 68526, 68535, 68544, 68547, 68550, 68553, 68555, - 68558, 68561, 68564, 68569, 68574, 68577, 68584, 68591, 68598, 68605, - 68608, 68613, 68615, 68619, 68621, 68623, 68626, 68629, 68632, 68635, - 68638, 68641, 68644, 68649, 68654, 68657, 68660, 68663, 68666, 68669, - 68672, 68675, 68679, 68682, 68685, 68688, 68691, 68694, 68699, 68702, - 68705, 68708, 68713, 68718, 68723, 68728, 68733, 68738, 68743, 68748, - 68754, 68762, 68764, 68767, 68770, 68773, 68776, 68782, 68790, 68793, - 68796, 68801, 68804, 68807, 68810, 68815, 68818, 68821, 68826, 68829, - 68832, 68837, 68840, 68843, 68848, 68853, 68858, 68861, 68864, 68867, - 68870, 68876, 68879, 68882, 68885, 68887, 68890, 68893, 68896, 68901, - 68904, 68907, 68910, 68913, 68916, 68921, 68924, 68927, 68930, 68933, - 68936, 68939, 68942, 68945, 68948, 68954, 68959, 68967, 68975, 68983, - 68991, 68999, 69007, 69015, 69023, 69031, 69040, 69049, 69058, 69067, - 69076, 69085, 69094, 69103, 69112, 69121, 69130, 69139, 69148, 69157, - 69166, 69175, 69184, 69193, 69202, 69211, 69220, 69229, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 19275, 19279, 19290, 19305, 19320, 19330, 19341, 19354, + 19365, 19371, 19379, 19389, 19395, 19403, 19407, 19413, 19419, 19427, + 19437, 19445, 19458, 19464, 19472, 19480, 19492, 19499, 19507, 19515, + 19523, 19531, 19539, 19547, 19557, 19561, 19564, 19567, 19570, 19573, + 19576, 19579, 19582, 19585, 19588, 19592, 19596, 19600, 19604, 19608, + 19612, 19616, 19620, 19624, 19629, 19635, 19645, 19659, 19669, 19675, + 19681, 19689, 19697, 19705, 19713, 19719, 19725, 19728, 19732, 19736, + 19740, 19744, 19748, 19752, 0, 19756, 19760, 19764, 19768, 19772, 19776, + 19780, 19784, 19788, 19792, 19796, 19799, 19802, 19806, 19810, 19814, + 19817, 19821, 19825, 19829, 19833, 19837, 19841, 19845, 19849, 19852, + 19855, 19858, 19862, 19866, 19869, 19872, 19875, 19879, 19884, 19888, 0, + 0, 0, 0, 19892, 19897, 19901, 19906, 19910, 19915, 19920, 19926, 19931, + 19937, 19941, 19946, 19950, 19955, 19965, 19971, 19977, 19984, 19994, + 20000, 20004, 20008, 20014, 20020, 20028, 20034, 20042, 20050, 20058, + 20068, 20076, 20086, 20091, 20097, 20103, 20109, 20115, 20121, 20127, 0, + 20133, 20139, 20145, 20151, 20157, 20163, 20169, 20175, 20181, 20187, + 20193, 20198, 20203, 20209, 20215, 20221, 20226, 20232, 20238, 20244, + 20250, 20256, 20262, 20268, 20274, 20279, 20284, 20289, 20295, 20301, + 20306, 20311, 20316, 20322, 20330, 20337, 0, 20344, 20351, 20364, 20371, + 20378, 20386, 20394, 20400, 20406, 20412, 20422, 20427, 20433, 20443, + 20453, 0, 20463, 20473, 20481, 20493, 20505, 20511, 20525, 20540, 20545, + 20550, 20558, 20566, 20574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20582, + 20585, 20589, 20593, 20597, 20601, 20605, 20609, 20613, 20617, 20621, + 20625, 20629, 20633, 20637, 20641, 20645, 20649, 20653, 20657, 20661, + 20664, 20667, 20671, 20675, 20679, 20682, 20685, 20688, 20691, 20695, + 20698, 20701, 20705, 20708, 20713, 20716, 20720, 20723, 20727, 20730, + 20735, 20738, 20742, 20749, 20754, 20758, 20763, 20767, 20772, 20776, + 20781, 20788, 20794, 20800, 20804, 20808, 20812, 20816, 20820, 20826, + 20832, 20839, 20845, 20850, 20854, 20857, 20860, 20863, 20866, 20869, + 20872, 20875, 20878, 20881, 20887, 20891, 20895, 20899, 20903, 20907, + 20911, 20915, 20919, 20924, 20928, 20933, 20938, 20944, 20949, 20955, + 20961, 20967, 20973, 20979, 20987, 20995, 21003, 21011, 21020, 21029, + 21040, 21050, 21060, 21071, 21082, 21092, 21102, 21112, 21122, 21132, + 21142, 21152, 21162, 21170, 21177, 21183, 21190, 21195, 21201, 21207, + 21213, 21219, 21225, 21231, 21236, 21242, 21248, 21254, 21260, 21265, + 21274, 21281, 21287, 21295, 21303, 21309, 21315, 21321, 21327, 21335, + 21343, 21353, 21361, 21369, 21375, 21380, 21385, 21390, 21395, 21400, + 21405, 21410, 21415, 21420, 21426, 21432, 21438, 21445, 21450, 21456, + 21461, 21466, 21471, 21476, 21481, 21486, 21491, 21496, 21501, 21506, + 21511, 21516, 21521, 21526, 21531, 21536, 21541, 21546, 21551, 21556, + 21561, 21566, 21571, 21576, 21581, 21586, 21591, 21596, 21601, 21606, + 21611, 21616, 21621, 21626, 21631, 21636, 21641, 0, 21646, 0, 0, 0, 0, 0, + 21651, 0, 0, 21656, 21660, 21664, 21668, 21672, 21676, 21680, 21684, + 21688, 21692, 21696, 21700, 21704, 21708, 21712, 21716, 21720, 21724, + 21728, 21732, 21736, 21740, 21744, 21748, 21752, 21756, 21760, 21764, + 21768, 21772, 21776, 21780, 21784, 21788, 21792, 21796, 21800, 21804, + 21808, 21812, 21816, 21820, 21825, 21829, 21834, 21839, 21843, 21848, + 21853, 21857, 21861, 21865, 21869, 21873, 21877, 21881, 21885, 21889, + 21893, 21897, 21901, 21905, 21909, 21913, 21917, 21921, 21925, 21929, + 21933, 21937, 21941, 21945, 21949, 21953, 21957, 21961, 21965, 21969, + 21973, 21977, 21981, 21985, 21989, 21993, 21997, 22001, 22005, 22009, + 22013, 22017, 22021, 22025, 22029, 22033, 22037, 22041, 22045, 22049, + 22053, 22057, 22061, 22065, 22069, 22073, 22077, 22081, 22085, 22089, + 22093, 22097, 22101, 22105, 22109, 22113, 22117, 22121, 22125, 22129, + 22133, 22137, 22141, 22145, 22149, 22153, 22157, 22161, 22165, 22169, + 22173, 22177, 22181, 22185, 22189, 22193, 22197, 22201, 22205, 22209, + 22213, 22217, 22221, 22225, 22229, 22233, 22237, 22242, 22246, 22251, + 22255, 22260, 22265, 22269, 22274, 22279, 22283, 22288, 22293, 22298, + 22303, 22307, 22312, 22317, 22322, 22327, 22332, 22337, 22341, 22346, + 22351, 22356, 22361, 22366, 22371, 22376, 22381, 22386, 22391, 22396, + 22401, 22406, 22411, 22416, 22421, 22426, 22431, 22436, 22441, 22446, + 22451, 22456, 22461, 22466, 22471, 22476, 22481, 22486, 22491, 22496, + 22501, 22506, 22511, 22516, 22521, 22526, 22531, 22536, 22541, 22546, + 22551, 22556, 22561, 22566, 22571, 22576, 22581, 22586, 22591, 22595, + 22599, 22603, 22607, 22611, 22615, 22619, 22623, 22627, 22631, 22635, + 22639, 22643, 22647, 22651, 22655, 22659, 22663, 22667, 22671, 22675, + 22679, 22683, 22687, 22691, 22695, 22699, 22703, 22707, 22711, 22715, + 22719, 22723, 22727, 22731, 22735, 22739, 22743, 22747, 22751, 22755, + 22759, 22763, 22767, 22771, 22775, 22779, 22783, 22787, 22791, 22795, + 22799, 22803, 22807, 22811, 22815, 22819, 22823, 22827, 22831, 22835, + 22839, 22843, 22847, 22851, 22855, 22859, 22863, 22867, 22871, 22875, + 22879, 22883, 22887, 22891, 22895, 22899, 22903, 22907, 22911, 22915, + 22919, 22923, 22927, 22931, 22935, 22939, 22943, 22946, 22950, 22954, + 22958, 22962, 22966, 22970, 22974, 22977, 22981, 22985, 22989, 22993, + 22997, 23001, 23005, 23009, 23013, 23017, 23021, 23025, 23029, 23033, + 23037, 23040, 23044, 23048, 23052, 23056, 23060, 23064, 23068, 23072, + 23076, 23080, 23084, 23088, 23092, 23096, 23100, 23103, 23107, 23111, + 23115, 23119, 23123, 23127, 23131, 23134, 23138, 23142, 23146, 23150, + 23154, 23158, 23162, 23166, 23170, 23174, 23178, 23182, 23186, 23190, + 23194, 23198, 23202, 23206, 23210, 23214, 23218, 23222, 23226, 0, 23230, + 23234, 23238, 23242, 0, 0, 23246, 23250, 23254, 23258, 23262, 23266, + 23270, 0, 23274, 0, 23278, 23282, 23286, 23290, 0, 0, 23294, 23298, + 23302, 23306, 23310, 23314, 23318, 23322, 23326, 23330, 23334, 23338, + 23342, 23346, 23350, 23354, 23358, 23362, 23366, 23370, 23374, 23378, + 23382, 23385, 23389, 23393, 23397, 23401, 23405, 23409, 23413, 23417, + 23421, 23425, 23429, 23433, 23437, 23441, 23445, 23449, 23453, 0, 23457, + 23461, 23465, 23469, 0, 0, 23473, 23476, 23480, 23484, 23488, 23492, + 23496, 23500, 23504, 23508, 23512, 23516, 23520, 23524, 23528, 23532, + 23536, 23541, 23546, 23551, 23557, 23563, 23568, 23573, 23579, 23582, + 23586, 23590, 23594, 23598, 23602, 23606, 23610, 0, 23614, 23618, 23622, + 23626, 0, 0, 23630, 23634, 23638, 23642, 23646, 23650, 23654, 0, 23658, + 0, 23662, 23666, 23670, 23674, 0, 0, 23678, 23682, 23686, 23690, 23694, + 23698, 23702, 23706, 23710, 23715, 23720, 23725, 23731, 23737, 23742, 0, + 23747, 23751, 23755, 23759, 23763, 23767, 23771, 23775, 23779, 23783, + 23787, 23791, 23795, 23799, 23803, 23807, 23811, 23814, 23818, 23822, + 23826, 23830, 23834, 23838, 23842, 23846, 23850, 23854, 23858, 23862, + 23866, 23870, 23874, 23878, 23882, 23886, 23890, 23894, 23898, 23902, + 23906, 23910, 23914, 23918, 23922, 23926, 23930, 23934, 23938, 23942, + 23946, 23950, 23954, 23958, 23962, 23966, 23970, 0, 23974, 23978, 23982, + 23986, 0, 0, 23990, 23994, 23998, 24002, 24006, 24010, 24014, 24018, + 24022, 24026, 24030, 24034, 24038, 24042, 24046, 24050, 24054, 24058, + 24062, 24066, 24070, 24074, 24078, 24082, 24086, 24090, 24094, 24098, + 24102, 24106, 24110, 24114, 24118, 24122, 24126, 24130, 24134, 24138, + 24142, 24146, 24150, 24154, 24158, 24162, 24166, 24170, 24174, 24178, + 24182, 24186, 24190, 24194, 24198, 24202, 24206, 24210, 24214, 24217, + 24221, 24225, 24229, 24233, 24237, 24241, 24245, 24249, 24253, 0, 0, + 24257, 24266, 24272, 24277, 24281, 24284, 24289, 24292, 24295, 24298, + 24303, 24307, 24312, 24315, 24318, 24321, 24324, 24327, 24330, 24333, + 24336, 24339, 24343, 24347, 24351, 24355, 24359, 24363, 24367, 24371, + 24375, 24379, 0, 0, 0, 24384, 24390, 24394, 24398, 24402, 24408, 24412, + 24416, 24420, 24426, 24430, 24434, 24438, 24444, 24448, 24452, 24456, + 24462, 24468, 24474, 24482, 24488, 24494, 24500, 24506, 24512, 0, 0, 0, + 0, 0, 0, 24518, 24521, 24524, 24527, 24530, 24533, 24537, 24541, 24544, + 24548, 24552, 24556, 24560, 24564, 24567, 24571, 24575, 24579, 24583, + 24587, 24590, 24594, 24598, 24602, 24606, 24610, 24613, 24617, 24621, + 24625, 24629, 24632, 24636, 24640, 24644, 24648, 24652, 24656, 24660, + 24664, 24668, 24672, 24676, 24680, 24684, 24687, 24691, 24695, 24699, + 24703, 24707, 24711, 24715, 24719, 24723, 24727, 24731, 24735, 24739, + 24743, 24747, 24751, 24755, 24759, 24763, 24767, 24771, 24775, 24779, + 24783, 24787, 24791, 24795, 24799, 24803, 24807, 24811, 24815, 24819, + 24823, 24826, 24830, 24834, 24838, 24842, 24846, 0, 0, 24850, 24855, + 24860, 24865, 24870, 24875, 0, 0, 24880, 24884, 24887, 24891, 24894, + 24898, 24901, 24905, 24911, 24916, 24920, 24923, 24927, 24931, 24937, + 24941, 24947, 24951, 24957, 24961, 24967, 24971, 24977, 24983, 24987, + 24993, 24997, 25003, 25009, 25013, 25019, 25025, 25030, 25035, 25043, + 25051, 25058, 25063, 25069, 25078, 25084, 25092, 25097, 25103, 25107, + 25111, 25115, 25119, 25123, 25127, 25131, 25135, 25139, 25143, 25149, + 25154, 25159, 25162, 25166, 25170, 25176, 25180, 25186, 25190, 25196, + 25200, 25206, 25210, 25216, 25220, 25226, 25230, 25236, 25242, 25246, + 25252, 25257, 25261, 25265, 25269, 25273, 25276, 25280, 25286, 25291, + 25296, 25300, 25304, 25308, 25314, 25318, 25324, 25328, 25334, 25337, + 25342, 25346, 25352, 25356, 25362, 25366, 25372, 25378, 25382, 25386, + 25390, 25394, 25398, 25402, 25406, 25410, 25414, 25418, 25422, 25428, + 25431, 25435, 25439, 25445, 25449, 25455, 25459, 25465, 25469, 25475, + 25479, 25485, 25489, 25495, 25499, 25505, 25511, 25515, 25519, 25525, + 25531, 25537, 25543, 25547, 25551, 25555, 25559, 25563, 25567, 25573, + 25577, 25581, 25585, 25591, 25595, 25601, 25605, 25611, 25615, 25621, + 25625, 25631, 25635, 25641, 25645, 25651, 25657, 25661, 25667, 25671, + 25675, 25679, 25683, 25687, 25691, 25697, 25700, 25704, 25708, 25714, + 25718, 25724, 25728, 25734, 25738, 25744, 25748, 25754, 25758, 25764, + 25768, 25774, 25780, 25784, 25790, 25794, 25800, 25806, 25810, 25814, + 25818, 25822, 25826, 25830, 25836, 25839, 25843, 25847, 25853, 25857, + 25863, 25867, 25873, 25879, 25883, 25888, 25892, 25896, 25900, 25904, + 25908, 25912, 25916, 25922, 25925, 25929, 25933, 25939, 25943, 25949, + 25953, 25959, 25963, 25969, 25973, 25979, 25983, 25989, 25993, 25999, + 26002, 26007, 26012, 26016, 26020, 26024, 26028, 26032, 26036, 26042, + 26045, 26049, 26053, 26059, 26063, 26069, 26073, 26079, 26083, 26089, + 26093, 26099, 26103, 26109, 26113, 26119, 26125, 26129, 26135, 26139, + 26145, 26151, 26157, 26163, 26169, 26175, 26181, 26187, 26191, 26195, + 26199, 26203, 26207, 26211, 26215, 26219, 26225, 26229, 26235, 26239, + 26245, 26249, 26255, 26259, 26265, 26269, 26275, 26279, 26285, 26289, + 26293, 26297, 26301, 26305, 26309, 26313, 26319, 26322, 26326, 26330, + 26336, 26340, 26346, 26350, 26356, 26360, 26366, 26370, 26376, 26380, + 26386, 26390, 26396, 26402, 26406, 26412, 26418, 26424, 26428, 26434, + 26440, 26444, 26448, 26452, 26456, 26460, 26466, 26469, 26473, 26478, + 26482, 26488, 26491, 26496, 26501, 26505, 26509, 26513, 26517, 26521, + 26525, 26529, 26533, 26537, 26543, 26547, 26551, 26557, 26561, 26567, + 26571, 26577, 26581, 26585, 26589, 26593, 26597, 26603, 26607, 26611, + 26615, 26619, 26623, 26627, 26631, 26635, 26639, 26643, 26649, 26655, + 26661, 26667, 26673, 26678, 26684, 26690, 26696, 26700, 26704, 26708, + 26712, 26716, 26720, 26724, 26728, 26732, 26736, 26740, 26744, 26748, + 26754, 26760, 26766, 26771, 26775, 26779, 26783, 26787, 26791, 26795, + 26799, 26803, 26807, 26813, 26819, 26825, 26831, 26837, 26843, 26849, + 26855, 26861, 26865, 26869, 26873, 26877, 26881, 26885, 26889, 26895, + 26901, 26907, 26913, 26919, 26925, 26931, 26937, 26943, 26948, 26953, + 26958, 26963, 26969, 26975, 26981, 26987, 26993, 26999, 27005, 27010, + 27016, 27022, 27028, 27033, 27039, 27045, 27051, 27056, 27061, 27066, + 27071, 27076, 27081, 27086, 27091, 27096, 27101, 27106, 27111, 27115, + 27120, 27125, 27130, 27135, 27140, 27145, 27150, 27155, 27160, 27165, + 27170, 27175, 27180, 27185, 27190, 27195, 27200, 27205, 27210, 27215, + 27220, 27225, 27230, 27235, 27240, 27245, 27250, 27255, 27260, 27264, + 27269, 27274, 27279, 27284, 27289, 27294, 27299, 27304, 27309, 27314, + 27319, 27324, 27329, 27334, 27339, 27344, 27349, 27354, 27359, 27364, + 27369, 27374, 27379, 27384, 27389, 27393, 27398, 27403, 27408, 27413, + 27418, 27422, 27427, 27432, 27437, 27442, 27447, 27451, 27456, 27462, + 27467, 27472, 27477, 27482, 27488, 27493, 27498, 27503, 27508, 27513, + 27518, 27523, 27528, 27533, 27538, 27543, 27548, 27552, 27557, 27562, + 27567, 27572, 27577, 27582, 27587, 27592, 27597, 27602, 27607, 27612, + 27617, 27622, 27627, 27632, 27637, 27642, 27647, 27652, 27657, 27662, + 27667, 27672, 27677, 27682, 27687, 27692, 27697, 27702, 27707, 27713, + 27718, 27723, 27728, 27733, 27738, 27743, 27748, 27753, 27758, 27763, + 27768, 27772, 27777, 27782, 27787, 27792, 27797, 27802, 27807, 27812, + 27817, 27822, 27827, 27832, 27837, 27842, 27847, 27852, 27857, 27862, + 27867, 27872, 27877, 27882, 27887, 27892, 27897, 27902, 27908, 27912, + 27916, 27920, 27924, 27928, 27932, 27936, 27940, 27946, 27952, 27958, + 27964, 27970, 27976, 27982, 27989, 27995, 28000, 28005, 28010, 28015, + 28020, 28025, 28030, 28035, 28040, 28045, 28050, 28055, 28060, 28065, + 28070, 28075, 28080, 28085, 28090, 28095, 28100, 28105, 28110, 28115, + 28120, 28125, 28130, 28135, 0, 0, 0, 28142, 28153, 28158, 28166, 28171, + 28176, 28181, 28190, 28195, 28201, 28207, 28213, 28218, 28224, 28230, + 28234, 28239, 28244, 28254, 28259, 28264, 28271, 28276, 28281, 28290, + 28295, 28304, 28311, 28318, 28325, 28332, 28343, 28350, 28355, 28365, + 28369, 28376, 28381, 28388, 28394, 28401, 28410, 28417, 28424, 28433, + 28440, 28445, 28450, 28461, 28468, 28473, 28484, 28491, 28496, 28501, + 28509, 28518, 28525, 28532, 28542, 28547, 28552, 28557, 28566, 28574, + 28579, 28584, 28589, 28594, 28599, 28604, 28609, 28614, 28619, 28624, + 28629, 28635, 28641, 28647, 28652, 28657, 28662, 28667, 28672, 28677, + 28686, 28695, 28704, 28713, 0, 0, 0, 0, 0, 0, 0, 28722, 28726, 28730, + 28734, 28738, 28743, 28748, 28753, 28758, 28762, 28766, 28771, 28775, + 28779, 28783, 28787, 28792, 28796, 28800, 28805, 28810, 28815, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 28820, 28826, 28830, 28834, 28838, 28842, 28847, 28852, + 28857, 28862, 28866, 28870, 28875, 28879, 28883, 28887, 28891, 28896, + 28900, 28904, 28909, 28914, 28919, 28925, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 28930, 28934, 28938, 28942, 28946, 28951, 28956, 28961, 28966, 28970, + 28974, 28979, 28983, 28987, 28991, 28995, 29000, 29004, 29008, 29013, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29018, 29022, 29026, 29030, 29034, + 29039, 29044, 29049, 29054, 29058, 29062, 29067, 29071, 0, 29075, 29079, + 29084, 0, 29088, 29093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29098, 29101, + 29105, 29109, 29113, 29117, 29121, 29125, 29129, 29133, 29137, 29141, + 29145, 29149, 29153, 29157, 29161, 29165, 29168, 29172, 29176, 29180, + 29184, 29188, 29192, 29196, 29200, 29204, 29208, 29212, 29216, 29220, + 29223, 29226, 29229, 29233, 29239, 29245, 29251, 29257, 29263, 29269, + 29275, 29281, 29287, 29293, 29299, 29305, 29311, 29317, 29326, 29335, + 29341, 29347, 29353, 29358, 29362, 29367, 29372, 29377, 29381, 29386, + 29391, 29396, 29400, 29405, 29409, 29414, 29419, 29424, 29429, 29433, + 29437, 29441, 29445, 29449, 29453, 29457, 29461, 29465, 29469, 29475, + 29479, 29483, 29487, 29491, 29495, 29503, 29509, 29513, 29519, 29523, + 29529, 29533, 0, 0, 29537, 29541, 29544, 29547, 29550, 29553, 29556, + 29559, 29562, 29565, 0, 0, 0, 0, 0, 0, 29568, 29576, 29584, 29592, 29600, + 29608, 29616, 29624, 29632, 29640, 0, 0, 0, 0, 0, 0, 29648, 29651, 29654, + 29657, 29662, 29665, 29670, 29677, 29685, 29690, 29697, 29700, 29707, + 29714, 29721, 29725, 29732, 29736, 29739, 29742, 29745, 29748, 29751, + 29754, 29757, 29760, 0, 0, 0, 0, 0, 0, 29763, 29766, 29769, 29772, 29775, + 29778, 29782, 29786, 29790, 29793, 29797, 29801, 29804, 29808, 29812, + 29815, 29818, 29821, 29825, 29829, 29833, 29837, 29841, 29844, 29847, + 29851, 29855, 29858, 29862, 29866, 29870, 29874, 29878, 29882, 29886, + 29890, 29897, 29902, 29907, 29912, 29917, 29923, 29929, 29935, 29941, + 29946, 29952, 29958, 29963, 29969, 29975, 29981, 29987, 29993, 29998, + 30004, 30009, 30015, 30021, 30027, 30033, 30039, 30044, 30049, 30055, + 30061, 30066, 30072, 30077, 30083, 30088, 30093, 30099, 30105, 30111, + 30117, 30123, 30129, 30135, 30141, 30147, 30153, 30159, 30165, 30170, + 30175, 30180, 30186, 30192, 0, 0, 0, 0, 0, 0, 0, 30200, 30209, 30218, + 30226, 30234, 30244, 30252, 30261, 30268, 30275, 30282, 30290, 30298, + 30306, 30314, 30322, 30330, 30338, 30346, 30353, 30361, 30369, 30377, + 30385, 30393, 30403, 30413, 30423, 30433, 30443, 30453, 30463, 30473, + 30483, 30493, 30503, 30513, 30523, 30533, 30541, 30549, 30559, 30567, 0, + 0, 0, 0, 0, 30577, 30581, 30585, 30589, 30593, 30597, 30601, 30605, + 30609, 30613, 30617, 30621, 30625, 30629, 30633, 30637, 30641, 30645, + 30649, 30653, 30657, 30661, 30665, 30669, 30675, 30679, 30685, 30689, + 30695, 30699, 30705, 30709, 30713, 30717, 30721, 30725, 30729, 30735, + 30741, 30747, 30753, 30759, 30765, 30771, 30777, 30783, 30789, 30795, + 30802, 30808, 30814, 30820, 30824, 30828, 30832, 30836, 30840, 30844, + 30848, 30854, 30860, 30866, 30871, 30878, 30883, 30888, 30894, 30899, + 30906, 30913, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30920, 30926, 30930, 30935, + 30940, 30945, 30950, 30955, 30960, 30965, 30970, 30975, 30980, 30985, + 30990, 30995, 30999, 31003, 31008, 31013, 31018, 31022, 31026, 31030, + 31034, 31039, 31044, 31049, 31053, 31057, 31062, 0, 31067, 31072, 31077, + 31082, 31088, 31094, 31100, 31106, 31111, 31116, 31122, 31128, 0, 0, 0, + 0, 31135, 31140, 31146, 31152, 31158, 31163, 31168, 31173, 31178, 31183, + 31188, 31193, 0, 0, 0, 0, 31198, 0, 0, 0, 31203, 31208, 31213, 31218, + 31222, 31226, 31230, 31234, 31238, 31242, 31246, 31250, 31254, 31259, + 31265, 31271, 31277, 31282, 31287, 31293, 31299, 31304, 31309, 31315, + 31320, 31326, 31332, 31337, 31343, 31349, 31355, 31360, 31365, 31370, + 31376, 31382, 31387, 31393, 31398, 31404, 31409, 31415, 0, 0, 31421, + 31427, 31433, 31439, 31445, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31451, + 31460, 31469, 31477, 31486, 31495, 31503, 31512, 31521, 31530, 31538, + 31546, 31555, 31563, 31571, 31580, 31589, 31597, 31606, 31615, 31623, + 31631, 31640, 31648, 31656, 31665, 31673, 31682, 31691, 31699, 31708, + 31717, 31725, 31733, 31742, 31751, 31759, 31768, 31777, 31786, 31795, + 31804, 31813, 31822, 0, 0, 0, 0, 31831, 31841, 31850, 31859, 31867, + 31876, 31884, 31893, 31901, 31910, 31919, 31928, 31937, 31946, 31955, + 31964, 31973, 31982, 31991, 32000, 32009, 32018, 32027, 32036, 32045, + 32053, 0, 0, 0, 0, 0, 0, 32061, 32069, 32076, 32083, 32090, 32097, 32104, + 32111, 32118, 32125, 32132, 0, 0, 0, 32140, 32148, 32156, 32160, 32166, + 32172, 32178, 32184, 32190, 32196, 32202, 32208, 32214, 32220, 32226, + 32232, 32238, 32244, 32250, 32254, 32260, 32266, 32272, 32278, 32284, + 32290, 32296, 32302, 32308, 32314, 32320, 32326, 32332, 32338, 32344, + 32348, 32353, 32358, 32363, 32367, 32372, 32376, 32381, 32386, 32391, + 32395, 32400, 32405, 32410, 32415, 32420, 32424, 32428, 32432, 32437, + 32441, 32445, 32449, 32454, 32459, 32464, 32469, 0, 0, 32475, 32479, + 32486, 32491, 32497, 32503, 32508, 32514, 32520, 32525, 32531, 32537, + 32543, 32548, 32554, 32559, 32564, 32570, 32575, 32581, 32586, 32592, + 32598, 32604, 32610, 32614, 32619, 32624, 32630, 32636, 32641, 32647, + 32653, 32657, 32662, 32667, 32671, 32676, 32680, 32685, 32690, 32696, + 32702, 32707, 32712, 32717, 32721, 32726, 32730, 32735, 32739, 32744, + 32749, 32754, 32759, 32765, 32772, 32779, 32789, 32798, 32805, 32811, + 32822, 32827, 32833, 0, 32838, 32843, 32848, 32856, 32862, 32870, 32875, + 32881, 32887, 32893, 32898, 32904, 32909, 32916, 32922, 32927, 32933, + 32939, 32945, 32952, 32959, 32966, 32971, 32976, 32983, 32990, 32997, + 33004, 33011, 0, 0, 33018, 33025, 33032, 33038, 33044, 33050, 33056, + 33062, 33068, 33074, 33080, 0, 0, 0, 0, 0, 0, 33086, 33092, 33097, 33102, + 33107, 33112, 33117, 33122, 33127, 33132, 0, 0, 0, 0, 0, 0, 33137, 33142, + 33147, 33152, 33157, 33162, 33167, 33176, 33183, 33188, 33193, 33198, + 33203, 33208, 0, 0, 33213, 33220, 33223, 33226, 33230, 33235, 33239, + 33245, 33250, 33256, 33263, 33271, 33275, 33280, 33284, 33289, 33296, + 33304, 33311, 33317, 33325, 33332, 33337, 33341, 33348, 33352, 33357, + 33362, 33369, 33377, 33384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33392, 33398, 33404, 33408, 33412, 33416, + 33420, 33426, 33430, 33436, 33440, 33446, 33452, 33460, 33466, 33474, + 33478, 33482, 33486, 33492, 33495, 33501, 33505, 33511, 33515, 33519, + 33525, 33529, 33535, 33539, 33545, 33553, 33561, 33569, 33575, 33579, + 33585, 33589, 33595, 33598, 33601, 33607, 33611, 33617, 33620, 33623, + 33626, 33629, 33633, 33639, 33645, 33648, 33651, 33655, 33660, 33665, + 33672, 33677, 33684, 33691, 33700, 33707, 33716, 33721, 33728, 33735, + 33744, 33749, 33756, 33761, 33767, 33773, 33779, 33785, 33791, 33797, + 33803, 0, 0, 0, 33809, 33813, 33816, 33819, 33822, 33825, 33828, 33831, + 33834, 33837, 33840, 33843, 33846, 33849, 33854, 33859, 33864, 33867, + 33872, 33877, 33882, 33887, 33894, 33899, 33904, 33909, 33914, 33921, + 33927, 33933, 33939, 33945, 33951, 33960, 33969, 33975, 33981, 33990, + 33999, 34008, 34017, 34026, 34035, 34044, 34053, 34062, 34067, 0, 34072, + 34077, 34082, 34087, 34091, 34095, 34099, 34104, 34108, 34112, 34117, + 34121, 34126, 34131, 34136, 34141, 34146, 34151, 34156, 34161, 34166, + 34170, 34174, 34179, 34184, 34189, 34193, 34197, 34201, 34205, 34210, + 34214, 34219, 34223, 34229, 34235, 34241, 34247, 34253, 34259, 34265, + 34271, 34277, 34282, 34287, 34294, 34302, 34307, 34312, 34317, 34321, + 34325, 34329, 34333, 34337, 34341, 34345, 34349, 34353, 34357, 34362, + 34367, 34372, 34378, 34384, 34388, 34394, 34398, 34404, 34410, 34415, + 34422, 34426, 34432, 34436, 34442, 34447, 34454, 34461, 34466, 34473, + 34478, 34483, 34487, 34493, 34497, 34503, 34510, 34517, 34521, 34527, + 34533, 34537, 34543, 34548, 34552, 34558, 34563, 34568, 34573, 34578, + 34582, 34586, 34591, 34596, 34603, 34609, 34614, 34621, 34626, 34633, + 34638, 34647, 34653, 34659, 34663, 0, 0, 0, 0, 0, 0, 0, 0, 34667, 34676, + 34683, 34690, 34697, 34701, 34706, 34711, 34716, 34721, 34726, 34731, + 34736, 34741, 34746, 34751, 34756, 34761, 34765, 34769, 34774, 34779, + 34784, 34789, 34794, 34799, 34803, 34808, 34813, 34818, 34823, 34827, + 34831, 34835, 34839, 34844, 34849, 34853, 34858, 34863, 34867, 34873, + 34879, 34885, 34890, 34895, 34901, 34906, 34912, 34917, 34923, 34929, + 34934, 34940, 34946, 34951, 34957, 34963, 34969, 34974, 0, 0, 0, 34979, + 34985, 34995, 35001, 35009, 35015, 35020, 35024, 35028, 35032, 35036, + 35040, 35044, 35048, 35052, 0, 0, 0, 35056, 35061, 35066, 35071, 35078, + 35084, 35090, 35096, 35102, 35108, 35114, 35120, 35126, 35132, 35138, + 35145, 35152, 35159, 35166, 35173, 35180, 35187, 35194, 35201, 35208, + 35215, 35222, 35229, 35236, 35243, 35250, 35257, 35264, 35271, 35278, + 35285, 35292, 35299, 35306, 35313, 35320, 35327, 35334, 35341, 35349, + 35357, 35365, 35371, 35377, 35383, 35391, 35400, 35407, 35414, 35420, + 35427, 35434, 35441, 35449, 35456, 0, 0, 0, 0, 0, 0, 0, 35463, 35470, + 35477, 35484, 35491, 35498, 35505, 35512, 35519, 35526, 35533, 35540, + 35547, 35554, 35561, 35568, 35575, 35582, 35589, 35596, 35603, 35610, + 35617, 35624, 35631, 35638, 35645, 35652, 35659, 35666, 35673, 35680, + 35687, 35694, 35701, 35708, 35715, 35722, 35729, 35736, 35743, 35750, + 35758, 0, 0, 35765, 35772, 35780, 35788, 35796, 35804, 35812, 35820, + 35830, 35840, 35850, 0, 0, 0, 0, 0, 0, 0, 0, 35860, 35865, 35870, 35875, + 35880, 35889, 35900, 35909, 35920, 35926, 35939, 35945, 35952, 35959, + 35964, 35970, 35976, 35987, 35996, 36003, 36010, 36019, 36026, 36035, + 36045, 36055, 36062, 36069, 36076, 36086, 36091, 36099, 36105, 36113, + 36122, 36127, 36134, 36140, 36145, 36150, 36155, 36161, 36168, 0, 0, 0, + 0, 0, 36176, 36181, 36187, 36193, 36201, 36207, 36213, 36219, 36224, + 36231, 36236, 36242, 36248, 36256, 36262, 36270, 36275, 36282, 36288, + 36296, 36304, 36310, 36316, 36323, 36330, 36336, 36343, 36349, 36355, + 36360, 36366, 36374, 36382, 36388, 36394, 36400, 36406, 36414, 36418, + 36424, 36430, 36436, 36442, 36448, 36454, 36458, 36463, 36468, 36475, + 36480, 36484, 36490, 36495, 36500, 36504, 36509, 36514, 36518, 36523, + 36528, 36535, 36539, 36544, 36549, 36553, 36558, 36562, 36567, 36571, + 36576, 36581, 36587, 36592, 36597, 36601, 36606, 36612, 36619, 36624, + 36629, 36634, 36639, 36644, 36648, 36654, 36661, 36668, 36673, 36678, + 36682, 36688, 36694, 36699, 36704, 36709, 36715, 36720, 36726, 36731, + 36737, 36743, 36749, 36756, 36763, 36770, 36777, 36784, 36791, 36796, + 36804, 36813, 36822, 36831, 36840, 36849, 36858, 36870, 36879, 36888, + 36897, 36903, 36908, 36915, 36923, 36931, 36938, 36945, 36952, 36959, + 36967, 36976, 36985, 36994, 37003, 37012, 37021, 37030, 37039, 37048, + 37057, 37066, 37075, 37084, 37093, 37101, 37110, 37121, 37130, 37141, + 37154, 37163, 37172, 37182, 37191, 37199, 37208, 37214, 37219, 37227, + 37232, 37240, 37245, 37254, 37260, 37266, 37273, 37278, 37283, 37291, + 37299, 37308, 37317, 37322, 37329, 37339, 37347, 37356, 37362, 37368, + 37373, 37380, 37385, 37394, 37399, 37404, 37409, 37416, 37422, 37427, + 37436, 37444, 37449, 37454, 37461, 37468, 37472, 37476, 37479, 37482, + 37485, 37488, 37491, 37494, 37501, 37504, 37507, 37512, 37516, 37520, + 37524, 37528, 37532, 37542, 37548, 37554, 37560, 37568, 37576, 37582, + 37588, 37595, 37601, 37606, 37612, 37619, 37625, 37632, 37638, 37646, + 37652, 37659, 37665, 37671, 37677, 37683, 37689, 37695, 37706, 37716, + 37722, 37728, 37738, 37744, 37752, 37760, 37768, 37773, 37778, 37784, + 37789, 37797, 37803, 37807, 37814, 37821, 37826, 37835, 37843, 37851, + 37858, 37865, 37872, 37879, 37887, 37895, 37906, 37917, 37925, 37933, + 37941, 37949, 37958, 37967, 37975, 37983, 37992, 38001, 38012, 38023, + 38034, 38045, 38054, 38063, 38072, 38081, 38092, 38103, 38111, 38119, + 38127, 38135, 38143, 38151, 38159, 38167, 38175, 38183, 38191, 38199, + 38208, 38217, 38226, 38235, 38246, 38257, 38265, 38273, 38281, 38289, + 38298, 38307, 38315, 38323, 38335, 38347, 38356, 38365, 38374, 38383, + 38391, 38399, 38407, 38415, 38423, 38431, 38439, 38447, 38455, 38463, + 38472, 38481, 38490, 38499, 38509, 38519, 38529, 38539, 38549, 38559, + 38569, 38579, 38587, 38595, 38603, 38611, 38619, 38627, 38635, 38643, + 38655, 38667, 38676, 38685, 38693, 38701, 38709, 38717, 38728, 38739, + 38750, 38761, 38773, 38785, 38793, 38801, 38809, 38817, 38826, 38835, + 38844, 38853, 38861, 38869, 38877, 38885, 38893, 38901, 38911, 38921, + 38931, 38941, 38949, 38957, 38965, 38973, 38981, 38989, 38997, 39005, + 39013, 39021, 39029, 39037, 39045, 39053, 39061, 39069, 39077, 39085, + 39093, 39101, 39109, 39117, 39125, 39133, 39142, 39151, 39160, 39168, + 39177, 39186, 39195, 39204, 39214, 39223, 39230, 39235, 39242, 39249, + 39257, 39265, 39275, 39285, 39295, 39305, 39316, 39327, 39337, 39347, + 39357, 39367, 39377, 39387, 39397, 39407, 39418, 39429, 39439, 39449, + 39459, 39469, 39477, 39485, 39494, 39503, 39511, 39519, 39530, 39541, + 39552, 39563, 39575, 39587, 39598, 39609, 39620, 39631, 39640, 39649, + 39657, 39665, 39672, 39679, 39687, 39695, 39705, 39715, 39725, 39735, + 39746, 39757, 39767, 39777, 39787, 39797, 39807, 39817, 39827, 39837, + 39848, 39859, 39869, 39879, 39889, 39899, 39906, 39913, 39921, 39929, + 39939, 39949, 39959, 39969, 39980, 39991, 40001, 40011, 40021, 40031, + 40039, 40047, 40055, 40063, 40072, 40081, 40089, 40097, 40104, 40111, + 40118, 40125, 40133, 40141, 40149, 40157, 40168, 40179, 40190, 40201, + 40212, 40223, 40231, 40239, 40250, 40261, 40272, 40283, 40294, 40305, + 40313, 40321, 40332, 40343, 40354, 0, 0, 40365, 40373, 40381, 40392, + 40403, 40414, 0, 0, 40425, 40433, 40441, 40452, 40463, 40474, 40485, + 40496, 40507, 40515, 40523, 40534, 40545, 40556, 40567, 40578, 40589, + 40597, 40605, 40616, 40627, 40638, 40649, 40660, 40671, 40679, 40687, + 40698, 40709, 40720, 40731, 40742, 40753, 40761, 40769, 40780, 40791, + 40802, 0, 0, 40813, 40821, 40829, 40840, 40851, 40862, 0, 0, 40873, + 40881, 40889, 40900, 40911, 40922, 40933, 40944, 0, 40955, 0, 40963, 0, + 40974, 0, 40985, 40996, 41004, 41012, 41023, 41034, 41045, 41056, 41067, + 41078, 41086, 41094, 41105, 41116, 41127, 41138, 41149, 41160, 41168, + 41176, 41184, 41192, 41200, 41208, 41216, 41224, 41232, 41240, 41248, + 41256, 41264, 0, 0, 41272, 41283, 41294, 41308, 41322, 41336, 41350, + 41364, 41378, 41389, 41400, 41414, 41428, 41442, 41456, 41470, 41484, + 41495, 41506, 41520, 41534, 41548, 41562, 41576, 41590, 41601, 41612, + 41626, 41640, 41654, 41668, 41682, 41696, 41707, 41718, 41732, 41746, + 41760, 41774, 41788, 41802, 41813, 41824, 41838, 41852, 41866, 41880, + 41894, 41908, 41916, 41924, 41935, 41943, 0, 41954, 41962, 41973, 41981, + 41989, 41997, 42005, 42013, 42016, 42019, 42022, 42025, 42031, 42042, + 42050, 0, 42061, 42069, 42080, 42088, 42096, 42104, 42112, 42120, 42126, + 42132, 42138, 42146, 42154, 42165, 0, 0, 42176, 42184, 42195, 42203, + 42211, 42219, 0, 42227, 42233, 42239, 42245, 42253, 42261, 42272, 42283, + 42291, 42299, 42307, 42318, 42326, 42334, 42342, 42350, 42358, 42364, + 42370, 0, 0, 42373, 42384, 42392, 0, 42403, 42411, 42422, 42430, 42438, + 42446, 42454, 42462, 42465, 0, 42468, 42472, 42476, 42480, 42484, 42488, + 42492, 42496, 42500, 42504, 42508, 42512, 42518, 42524, 42530, 42533, + 42536, 42538, 42542, 42546, 42550, 42554, 42557, 42561, 42565, 42571, + 42577, 42584, 42591, 42596, 42601, 42607, 42613, 42615, 42618, 42620, + 42624, 42628, 42632, 42636, 42640, 42644, 42648, 42652, 42656, 42662, + 42666, 42670, 42676, 42681, 42688, 42690, 42693, 42697, 42701, 42706, + 42712, 42714, 42723, 42732, 42735, 42739, 42741, 42743, 42745, 42749, + 42755, 42757, 42761, 42765, 42772, 42779, 42783, 42788, 42793, 42798, + 42803, 42807, 42811, 42814, 42818, 42822, 42829, 42834, 42838, 42842, + 42847, 42851, 42855, 42860, 42865, 42869, 42873, 42877, 42879, 42884, + 42889, 42893, 42897, 42901, 42905, 0, 42909, 42913, 42917, 42923, 42929, + 42935, 42941, 42948, 42955, 42960, 42965, 42969, 0, 0, 42975, 42978, + 42981, 42984, 42987, 42990, 42993, 42997, 43001, 43006, 43011, 43016, + 43023, 43027, 43030, 43033, 43036, 43039, 43042, 43045, 43048, 43051, + 43054, 43058, 43062, 43067, 43072, 0, 43077, 43083, 43089, 43095, 43102, + 43109, 43116, 43123, 43129, 43136, 43143, 43150, 43157, 0, 0, 0, 43164, + 43167, 43170, 43173, 43178, 43181, 43184, 43187, 43190, 43193, 43196, + 43201, 43204, 43207, 43210, 43213, 43216, 43221, 43224, 43227, 43230, + 43233, 43236, 43241, 43244, 43247, 43252, 43257, 43261, 43264, 43267, + 43270, 43273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43276, 43281, + 43286, 43293, 43301, 43306, 43311, 43315, 43319, 43324, 43331, 43338, + 43342, 43347, 43352, 43357, 43362, 43369, 43374, 43379, 43384, 43393, + 43400, 43407, 43411, 43416, 43422, 43427, 43434, 43442, 43450, 43454, + 43458, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43462, 43466, 43473, + 43478, 43482, 43487, 43491, 43495, 43499, 43501, 43505, 43509, 43513, + 43518, 43523, 43527, 43535, 43538, 43542, 43545, 43548, 43554, 43559, + 43562, 43568, 43572, 43577, 43582, 43585, 43589, 43593, 43597, 43599, + 43602, 43605, 43609, 43611, 43616, 43619, 43622, 43627, 43632, 43638, + 43641, 43644, 43648, 43653, 43656, 43659, 43662, 43666, 43670, 43674, + 43677, 43679, 43682, 43685, 43688, 43692, 43697, 43700, 43705, 43710, + 43715, 43720, 43726, 43731, 43735, 43740, 43745, 43751, 43757, 43762, + 43767, 43773, 43777, 43780, 43783, 43785, 43789, 43795, 43802, 43809, + 43816, 43823, 43830, 43837, 43844, 43851, 43859, 43866, 43874, 43881, + 43888, 43896, 43904, 43909, 43914, 43919, 43924, 43929, 43934, 43939, + 43944, 43949, 43954, 43960, 43966, 43972, 43978, 43985, 43993, 43999, + 44005, 44011, 44017, 44023, 44029, 44035, 44041, 44047, 44053, 44060, + 44067, 44074, 44081, 44089, 44098, 44105, 44116, 44123, 44130, 44139, + 44146, 44155, 44164, 44171, 44179, 44187, 44190, 0, 0, 0, 0, 44193, + 44195, 44198, 44200, 44203, 44206, 44209, 44213, 44217, 44222, 44227, + 44231, 44235, 44239, 44243, 44248, 44254, 44259, 44265, 44270, 44275, + 44280, 44286, 44291, 44297, 44303, 44307, 44311, 44316, 44321, 44326, + 44331, 44336, 44344, 44352, 44360, 44368, 44375, 44383, 44390, 44397, + 44404, 44414, 44421, 44428, 44435, 44442, 44450, 44458, 44465, 44472, + 44480, 44488, 44493, 44501, 44506, 44511, 44517, 44522, 44528, 44535, + 44542, 44547, 44553, 44558, 44561, 44565, 44568, 44572, 44576, 44580, + 44585, 44590, 44596, 44602, 44606, 44610, 44614, 44618, 44624, 44630, + 44634, 44639, 44643, 44648, 44652, 44656, 44659, 44663, 44666, 44670, + 44677, 44685, 44697, 44708, 44713, 44722, 44729, 44736, 44744, 44748, + 44754, 44762, 44766, 44771, 44776, 44782, 44788, 44794, 44801, 44805, + 44809, 44814, 44817, 44819, 44823, 44827, 44835, 44839, 44841, 44843, + 44847, 44855, 44860, 44866, 44876, 44883, 44888, 44892, 44896, 44900, + 44903, 44906, 44909, 44913, 44917, 44921, 44925, 44929, 44932, 44936, + 44940, 44943, 44945, 44948, 44950, 44954, 44958, 44960, 44966, 44969, + 44974, 44978, 44982, 44984, 44986, 44988, 44991, 44995, 44999, 45003, + 45007, 45011, 45017, 45023, 45025, 45027, 45029, 45031, 45034, 45036, + 45040, 45042, 45046, 45050, 45056, 45060, 45064, 45068, 45072, 45077, + 45084, 45089, 45100, 45111, 45116, 45123, 45132, 45136, 45141, 45144, + 45149, 45153, 45159, 45164, 45177, 45187, 45191, 45195, 45202, 45207, + 45210, 45212, 45215, 45219, 45224, 45231, 45235, 45240, 45245, 45248, + 45253, 45258, 45265, 45272, 45278, 45284, 45293, 45302, 45306, 45310, + 45312, 45317, 45321, 45325, 45334, 45343, 45350, 45357, 45366, 45375, + 45381, 45387, 45395, 45403, 45405, 45407, 45414, 45421, 45428, 45435, + 45441, 45447, 45451, 45455, 45462, 45469, 45477, 45485, 45496, 45507, + 45516, 45525, 45527, 45531, 45535, 45540, 45545, 45554, 45563, 45566, + 45569, 45572, 45575, 45578, 45583, 45587, 45592, 45597, 45600, 45603, + 45606, 45609, 45612, 45616, 45619, 45622, 45625, 45628, 45630, 45632, + 45634, 45636, 45644, 45652, 45658, 45662, 45668, 45678, 45684, 45690, + 45696, 45704, 45714, 45727, 45731, 45735, 45737, 45743, 45745, 45747, + 45749, 45751, 45757, 45760, 45766, 45772, 45776, 45780, 45784, 45787, + 45791, 45795, 45797, 45806, 45815, 45820, 45825, 45831, 45837, 45843, + 45846, 45849, 45852, 45855, 45857, 45863, 45868, 45873, 45879, 45885, + 45894, 45903, 45910, 45917, 45924, 45931, 45941, 45951, 45962, 45973, + 45984, 45995, 46004, 46013, 46022, 46031, 46039, 46051, 46063, 46079, + 46082, 46088, 46094, 46100, 46108, 46123, 46139, 46145, 46151, 46158, + 46164, 46173, 46180, 46194, 46209, 46214, 46220, 46228, 46231, 46234, + 46236, 46239, 46242, 46244, 46246, 46250, 46253, 46256, 46259, 46262, + 46267, 46272, 46277, 46282, 46287, 46290, 46292, 46294, 46296, 46300, + 46304, 46308, 46314, 46318, 46320, 46322, 46327, 46332, 46337, 46342, + 46347, 46352, 46354, 46356, 46366, 46370, 46376, 46385, 46387, 46393, + 46399, 46406, 46410, 46412, 46416, 46418, 46422, 46426, 46430, 46432, + 46434, 46436, 46443, 46452, 46461, 46470, 46479, 46488, 46497, 46506, + 46515, 46523, 46531, 46540, 46549, 46558, 46567, 46575, 46583, 46592, + 46601, 46610, 46620, 46629, 46639, 46648, 46658, 46667, 46677, 46687, + 46696, 46706, 46715, 46725, 46734, 46744, 46753, 46762, 46771, 46780, + 46789, 46799, 46808, 46817, 46826, 46836, 46845, 46854, 46863, 46872, + 46882, 46892, 46901, 46910, 46918, 46927, 46934, 46943, 46952, 46963, + 46972, 46982, 46992, 46999, 47006, 47013, 47022, 47031, 47040, 47049, + 47056, 47061, 47070, 47076, 47079, 47086, 47089, 47094, 47099, 47102, + 47105, 47113, 47116, 47121, 47124, 47132, 47137, 47145, 47148, 47151, + 47154, 47159, 47164, 47167, 47170, 47178, 47181, 47188, 47195, 47199, + 47203, 47208, 47213, 47218, 47223, 47228, 47233, 47238, 47243, 47250, + 47256, 47263, 47270, 47276, 47283, 47290, 47298, 47305, 47311, 47318, + 47326, 47333, 47337, 47343, 47355, 47367, 47371, 47375, 47380, 47385, + 47396, 47400, 47405, 47410, 47416, 47422, 47428, 47434, 47443, 47452, + 47460, 47471, 47482, 47490, 47501, 47512, 47520, 47531, 47542, 47550, + 47558, 47568, 47578, 47581, 47584, 47587, 47592, 47596, 47602, 47609, + 47616, 47624, 47631, 47635, 47639, 47643, 47647, 47649, 47653, 47657, + 47663, 47669, 47677, 47685, 47688, 47695, 47697, 47699, 47703, 47707, + 47712, 47718, 47724, 47730, 47736, 47745, 47754, 47763, 47767, 47769, + 47773, 47780, 47787, 47794, 47801, 47808, 47811, 47816, 47822, 47825, + 47830, 47835, 47840, 47845, 47849, 47856, 47863, 47870, 47877, 47881, + 47885, 47889, 47893, 47899, 47905, 47910, 47916, 47922, 47928, 47934, + 47942, 47949, 47956, 47963, 47970, 47976, 47982, 47991, 47995, 48002, + 48006, 48010, 48016, 48022, 48028, 48034, 48038, 48042, 48045, 48049, + 48053, 48060, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 48067, 48070, 48074, 48078, 48084, 48090, 48096, 48104, + 48111, 48115, 48123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48128, 48131, 48134, 48137, 48140, 48143, 48146, 48149, + 48152, 48155, 48159, 48163, 48167, 48171, 48175, 48179, 48183, 48187, + 48191, 48195, 48199, 48202, 48205, 48208, 48211, 48214, 48217, 48220, + 48223, 48226, 48230, 48234, 48238, 48242, 48246, 48250, 48254, 48258, + 48262, 48266, 48270, 48276, 48282, 48288, 48295, 48302, 48309, 48316, + 48323, 48330, 48337, 48344, 48351, 48358, 48365, 48372, 48379, 48386, + 48393, 48400, 48407, 48412, 48418, 48424, 48430, 48435, 48441, 48447, + 48453, 48458, 48464, 48470, 48475, 48481, 48487, 48492, 48498, 48504, + 48509, 48515, 48521, 48526, 48532, 48538, 48544, 48550, 48556, 48561, + 48567, 48573, 48579, 48584, 48590, 48596, 48602, 48607, 48613, 48619, + 48624, 48630, 48636, 48641, 48647, 48653, 48658, 48664, 48670, 48675, + 48681, 48687, 48693, 48699, 48705, 48710, 48716, 48722, 48728, 48733, + 48739, 48745, 48751, 48756, 48762, 48768, 48773, 48779, 48785, 48790, + 48796, 48802, 48807, 48813, 48819, 48824, 48830, 48836, 48842, 48848, + 48854, 48858, 48864, 48870, 48876, 48882, 48888, 48894, 48900, 48906, + 48912, 48918, 48922, 48926, 48930, 48934, 48938, 48942, 48946, 48950, + 48954, 48959, 48965, 48970, 48975, 48980, 48985, 48994, 49003, 49012, + 49021, 49030, 49039, 49048, 49057, 49063, 49071, 49079, 49085, 49092, + 49100, 49108, 49115, 49121, 49129, 49137, 49143, 49150, 49158, 49166, + 49173, 49179, 49187, 49196, 49205, 49213, 49222, 49231, 49237, 49244, + 49252, 49261, 49270, 49278, 49287, 49296, 49303, 49310, 49319, 49328, + 49337, 49346, 49355, 49364, 49371, 49378, 49387, 49396, 49405, 49414, + 49423, 49432, 49439, 49446, 49455, 49464, 49473, 49483, 49493, 49502, + 49512, 49522, 49532, 49542, 49552, 49562, 49571, 49580, 49587, 49595, + 49603, 49611, 49619, 49624, 49629, 49638, 49646, 49652, 49661, 49669, + 49676, 49685, 49693, 49699, 49708, 49716, 49723, 49732, 49740, 49746, + 49755, 49763, 49770, 49780, 49789, 49796, 49806, 49815, 49822, 49832, + 49841, 49848, 49856, 49865, 49874, 49882, 49893, 49903, 49910, 49915, + 49920, 49924, 49929, 49934, 49939, 49943, 49948, 49955, 49963, 49970, + 49978, 49982, 49988, 49994, 50000, 50004, 50011, 50017, 50024, 50028, + 50035, 50041, 50048, 50052, 50058, 50064, 50070, 50074, 50077, 50081, + 50085, 50091, 50097, 50102, 50106, 50111, 50121, 50128, 50139, 50149, + 50153, 50161, 50171, 50174, 50177, 50184, 50192, 50198, 50203, 50211, + 50220, 50229, 50237, 50241, 50245, 50248, 50251, 50255, 50259, 50262, + 50265, 50270, 50275, 50281, 50287, 50292, 50297, 50303, 50309, 50314, + 50319, 50324, 50329, 50335, 50341, 50346, 50351, 50357, 50363, 50368, + 50373, 50376, 50379, 50388, 50390, 50392, 50395, 50399, 50405, 50407, + 50410, 50417, 50424, 50431, 50438, 50447, 50460, 50465, 50470, 50474, + 50479, 50486, 50493, 50501, 50509, 50517, 50525, 50529, 50533, 50538, + 50543, 50548, 50553, 50556, 50562, 50568, 50577, 50586, 50594, 50602, + 50611, 50620, 50624, 50631, 50638, 50645, 50652, 50660, 50668, 50676, + 50684, 50688, 50692, 50696, 50701, 50706, 50712, 50718, 50722, 50728, + 50730, 50732, 50734, 50736, 50739, 50742, 50744, 50746, 50748, 50752, + 50756, 50758, 50760, 50763, 50766, 50770, 50776, 50782, 50784, 50791, + 50795, 50800, 50805, 50807, 50817, 50823, 50829, 50835, 50841, 50847, + 50853, 50858, 50861, 50864, 50867, 50869, 50871, 50875, 50879, 50884, + 50889, 50894, 50897, 50901, 50906, 50909, 50913, 50918, 50923, 50928, + 50933, 50938, 50943, 50948, 50953, 50958, 50963, 50968, 50973, 50979, + 50985, 50991, 50993, 50996, 50998, 51001, 51003, 51005, 51007, 51009, + 51011, 51013, 51015, 51017, 51019, 51021, 51023, 51025, 51027, 51029, + 51031, 51033, 51035, 51040, 51045, 51050, 51055, 51060, 51065, 51070, + 51075, 51080, 51085, 51090, 51095, 51100, 51105, 51110, 51115, 51120, + 51125, 51130, 51135, 51139, 51143, 51147, 51153, 51159, 51164, 51169, + 51174, 51180, 51186, 51191, 51199, 51207, 51215, 51223, 51231, 51239, + 51247, 51255, 51261, 51266, 51271, 51276, 51279, 51283, 51287, 51291, + 51295, 51299, 51303, 51309, 51316, 51323, 51331, 51336, 51341, 51348, + 51355, 51362, 51369, 51372, 51375, 51380, 51382, 51386, 51391, 51393, + 51395, 51397, 51399, 51404, 51407, 51409, 51414, 51420, 51427, 51430, + 51434, 51439, 51444, 51452, 51458, 51464, 51476, 51483, 51491, 51496, + 51501, 51507, 51510, 51513, 51518, 51520, 51524, 51526, 51528, 51530, + 51532, 51534, 51536, 51541, 51543, 51545, 51547, 51549, 51553, 51555, + 51558, 51563, 51568, 51573, 51578, 51584, 51590, 51592, 51595, 51602, + 51608, 51614, 51621, 51625, 51629, 51631, 51633, 51637, 51643, 51648, + 51650, 51654, 51663, 51671, 51679, 51685, 51691, 51696, 51702, 51707, + 51710, 51724, 51727, 51732, 51737, 51743, 51753, 51755, 51761, 51767, + 51771, 51778, 51782, 51784, 51786, 51790, 51796, 51801, 51807, 51809, + 51815, 51817, 51823, 51825, 51827, 51832, 51834, 51838, 51843, 51845, + 51850, 51855, 51859, 51866, 51876, 51881, 51886, 51889, 51894, 51897, + 51902, 51907, 51911, 51913, 51915, 51919, 51923, 51927, 51931, 51935, + 51937, 51941, 51944, 51947, 51950, 51954, 51958, 51963, 51967, 51972, + 51977, 51981, 51987, 51994, 51997, 52003, 52008, 52012, 52017, 52023, + 52029, 52036, 52042, 52049, 52056, 52058, 52065, 52069, 52076, 52082, + 52087, 52093, 52097, 52102, 52105, 52111, 52117, 52124, 52132, 52139, + 52148, 52158, 52165, 52171, 52175, 52183, 52188, 52197, 52200, 52203, + 52212, 52223, 52230, 52232, 52238, 52243, 52245, 52248, 52252, 52260, + 52269, 52272, 52277, 52283, 52290, 52297, 52304, 52311, 52317, 52323, + 52329, 52337, 52342, 52345, 52349, 52352, 52363, 52373, 52383, 52392, + 52403, 52413, 52422, 52428, 52436, 52440, 52448, 52452, 52460, 52467, + 52474, 52483, 52492, 52502, 52512, 52522, 52532, 52541, 52550, 52560, + 52570, 52579, 52588, 52595, 52602, 52609, 52616, 52623, 52630, 52637, + 52644, 52651, 52659, 52665, 52671, 52677, 52683, 52689, 52695, 52701, + 52707, 52713, 52720, 52728, 52736, 52744, 52752, 52760, 52768, 52776, + 52784, 52792, 52801, 52806, 52809, 52813, 52817, 52823, 52826, 52831, + 52837, 52842, 52846, 52851, 52857, 52864, 52867, 52874, 52881, 52885, + 52894, 52903, 52908, 52914, 52919, 52924, 52931, 52938, 52945, 52952, + 52960, 52964, 52972, 52977, 52981, 52988, 52992, 52998, 53006, 53011, + 53018, 53022, 53027, 53031, 53036, 53040, 53045, 53050, 53059, 53061, + 53065, 53069, 53076, 53083, 53089, 53097, 53103, 53110, 53115, 53118, + 53123, 53128, 53133, 53141, 53145, 53152, 53159, 53166, 53171, 53176, + 53182, 53187, 53192, 53198, 53203, 53206, 53210, 53214, 53221, 53231, + 53236, 53245, 53254, 53260, 53266, 53272, 53278, 53284, 53290, 53297, + 53304, 53313, 53322, 53328, 53334, 53339, 53344, 53351, 53358, 53364, + 53367, 53370, 53374, 53378, 53382, 53387, 53393, 53399, 53406, 53413, + 53418, 53422, 53426, 53430, 53434, 53438, 53442, 53446, 53450, 53454, + 53458, 53462, 53466, 53470, 53474, 53478, 53482, 53486, 53490, 53494, + 53498, 53502, 53506, 53510, 53514, 53518, 53522, 53526, 53530, 53534, + 53538, 53542, 53546, 53550, 53554, 53558, 53562, 53566, 53570, 53574, + 53578, 53582, 53586, 53590, 53594, 53598, 53602, 53606, 53610, 53614, + 53618, 53622, 53626, 53630, 53634, 53638, 53642, 53646, 53650, 53654, + 53658, 53662, 53666, 53670, 53674, 53678, 53682, 53686, 53690, 53694, + 53698, 53702, 53706, 53710, 53714, 53718, 53722, 53726, 53730, 53734, + 53738, 53742, 53746, 53750, 53754, 53758, 53762, 53766, 53770, 53774, + 53778, 53782, 53786, 53790, 53794, 53798, 53802, 53806, 53810, 53814, + 53818, 53822, 53826, 53830, 53834, 53838, 53842, 53846, 53850, 53854, + 53858, 53862, 53866, 53870, 53874, 53878, 53882, 53886, 53890, 53894, + 53898, 53902, 53906, 53910, 53914, 53918, 53922, 53926, 53930, 53934, + 53938, 53942, 53946, 53950, 53954, 53958, 53962, 53966, 53970, 53974, + 53978, 53982, 53986, 53990, 53994, 53998, 54002, 54006, 54010, 54014, + 54018, 54022, 54026, 54030, 54034, 54038, 54042, 54046, 54050, 54054, + 54058, 54062, 54066, 54070, 54074, 54078, 54082, 54086, 54090, 54094, + 54098, 54102, 54106, 54110, 54114, 54118, 54122, 54126, 54130, 54134, + 54138, 54142, 54146, 54150, 54154, 54158, 54162, 54166, 54170, 54174, + 54178, 54182, 54186, 54190, 54194, 54198, 54202, 54206, 54210, 54214, + 54218, 54222, 54226, 54230, 54234, 54238, 54242, 54246, 54250, 54254, + 54258, 54262, 54266, 54270, 54274, 54278, 54282, 54286, 54290, 54294, + 54298, 54302, 54306, 54310, 54314, 54318, 54322, 54326, 54330, 54334, + 54338, 54342, 54346, 54350, 54354, 54358, 54362, 54366, 54370, 54374, + 54378, 54382, 54386, 54390, 54394, 54398, 54402, 54406, 54410, 54414, + 54418, 54422, 54426, 54430, 54434, 54438, 54442, 54449, 54457, 54463, + 54469, 54476, 54483, 54489, 54495, 54502, 54509, 54514, 54519, 54524, + 54529, 54535, 54541, 54549, 54556, 54561, 54566, 54574, 54583, 54590, + 54600, 54611, 54614, 54617, 54621, 54625, 54631, 54637, 54647, 54657, + 54666, 54675, 54681, 54687, 54694, 54701, 54710, 54720, 54731, 54741, + 54751, 54761, 54772, 54783, 54793, 54804, 54814, 54824, 54832, 54842, + 54852, 54863, 54874, 54881, 54888, 54895, 54902, 54912, 54922, 54929, + 54936, 54943, 54950, 54957, 54964, 54971, 54976, 54981, 54987, 54995, + 55005, 55013, 55021, 55029, 55037, 55045, 55053, 55061, 55069, 55077, + 55085, 55094, 55103, 55111, 55119, 55128, 55137, 55146, 55155, 55165, + 55175, 55184, 55193, 55203, 55213, 55227, 55243, 55257, 55273, 55287, + 55301, 55315, 55329, 55339, 55350, 55360, 55371, 55387, 55403, 55411, + 55417, 55424, 55431, 55438, 55446, 55451, 55457, 55462, 55467, 55473, + 55478, 55483, 55488, 55493, 55498, 55505, 55511, 55519, 55525, 55531, + 55535, 55539, 55548, 55557, 55566, 55575, 55582, 55589, 55602, 55615, + 55628, 55641, 55649, 55657, 55664, 55671, 55679, 55687, 55695, 55703, + 55707, 55712, 55720, 55728, 55736, 55743, 55747, 55755, 55763, 55766, + 55770, 55775, 55782, 55790, 55798, 55817, 55837, 55856, 55876, 55896, + 55916, 55936, 55956, 55962, 55969, 55978, 55986, 55994, 56000, 56003, + 56006, 56011, 56014, 56034, 56041, 56047, 56053, 56057, 56060, 56063, + 56066, 56076, 56088, 56095, 56102, 56105, 56109, 56112, 56117, 56122, + 56127, 56133, 56142, 56149, 56156, 56164, 56171, 56178, 56181, 56187, + 56193, 56196, 56199, 56204, 56209, 56215, 56221, 56225, 56230, 56237, + 56241, 56247, 56251, 56255, 56263, 56275, 56283, 56287, 56289, 56298, + 56307, 56313, 56316, 56322, 56328, 56333, 56338, 56343, 56348, 56353, + 56358, 56360, 56366, 56371, 56379, 56383, 56389, 56392, 56396, 56404, + 56412, 56414, 56416, 56422, 56428, 56434, 56443, 56452, 56459, 56466, + 56472, 56479, 56484, 56489, 56494, 56500, 56506, 56511, 56518, 56522, + 56526, 56539, 56552, 56564, 56573, 56579, 56586, 56591, 56596, 56601, + 56606, 56611, 56613, 56620, 56628, 56636, 56644, 56651, 56659, 56665, + 56670, 56676, 56682, 56688, 56695, 56701, 56709, 56717, 56725, 56733, + 56741, 56747, 56753, 56762, 56766, 56775, 56784, 56793, 56801, 56805, + 56811, 56818, 56825, 56829, 56835, 56843, 56849, 56854, 56860, 56865, + 56870, 56877, 56884, 56889, 56894, 56902, 56910, 56920, 56930, 56937, + 56944, 56948, 56952, 56964, 56970, 56977, 56982, 56987, 56994, 57001, + 57007, 57013, 57023, 57030, 57038, 57046, 57055, 57062, 57068, 57075, + 57081, 57089, 57097, 57105, 57113, 57119, 57124, 57134, 57145, 57152, + 57161, 57167, 57172, 57177, 57187, 57196, 57202, 57208, 57216, 57221, + 57228, 57235, 57246, 57253, 57260, 57267, 57274, 57281, 57290, 57299, + 57312, 57325, 57337, 57349, 57362, 57376, 57382, 57388, 57398, 57408, + 57415, 57422, 57432, 57442, 57451, 57460, 57468, 57476, 57486, 57496, + 57511, 57526, 57535, 57544, 57557, 57570, 57579, 57588, 57599, 57610, + 57616, 57622, 57631, 57640, 57645, 57650, 57658, 57664, 57670, 57678, + 57686, 57699, 57712, 57716, 57720, 57729, 57738, 57745, 57753, 57761, + 57771, 57781, 57787, 57793, 57801, 57809, 57817, 57825, 57835, 57845, + 57848, 57851, 57856, 57861, 57867, 57873, 57880, 57887, 57898, 57909, + 57916, 57923, 57931, 57939, 57948, 57957, 57966, 57975, 57982, 57989, + 57993, 57997, 58006, 58015, 58020, 58025, 58030, 58035, 58041, 58055, + 58062, 58069, 58073, 58075, 58077, 58082, 58087, 58092, 58097, 58105, + 58112, 58119, 58127, 58139, 58147, 58155, 58166, 58170, 58174, 58180, + 58188, 58201, 58208, 58215, 58222, 58228, 58235, 58244, 58253, 58259, + 58265, 58271, 58282, 58293, 58301, 58310, 58315, 58318, 58323, 58328, + 58333, 58339, 58345, 58349, 58352, 58356, 58360, 58365, 58370, 58376, + 58382, 58386, 58390, 58397, 58404, 58411, 58418, 58425, 58432, 58441, + 58450, 58457, 58464, 58472, 58480, 58484, 58489, 58494, 58500, 58506, + 58509, 58512, 58515, 58518, 58523, 58528, 58533, 58538, 58543, 58548, + 58552, 58556, 58560, 58565, 58570, 58574, 58578, 58584, 58588, 58594, + 58599, 58606, 58614, 58621, 58629, 58636, 58644, 58653, 58660, 58670, + 58681, 58687, 58696, 58702, 58711, 58721, 58727, 58733, 58737, 58741, + 58750, 58760, 58767, 58775, 58784, 58793, 58800, 58806, 58813, 58818, + 58822, 58826, 58831, 58836, 58841, 58849, 58857, 58860, 58864, 58873, + 58883, 58892, 58902, 58914, 58928, 58932, 58937, 58941, 58946, 58951, + 58956, 58962, 58968, 58975, 58982, 58988, 58995, 59001, 59008, 59017, + 59026, 59032, 59039, 59045, 0, 0, 59052, 59060, 59068, 59077, 59086, + 59095, 59105, 59114, 59124, 59130, 59135, 59144, 59156, 59165, 59177, + 59184, 59192, 59199, 59207, 59212, 59218, 59223, 59229, 59237, 59246, + 59254, 59263, 59267, 59270, 59274, 59277, 59287, 0, 59290, 59297, 59306, + 59316, 59325, 59335, 59341, 59348, 59354, 59361, 59372, 59383, 59394, + 59405, 59415, 59425, 59435, 59445, 59453, 59461, 59469, 59477, 59485, + 59493, 59501, 59509, 59515, 59520, 59526, 59531, 59537, 59543, 59549, + 59555, 59567, 59577, 59582, 59589, 59594, 59601, 59604, 59608, 59612, + 59617, 59621, 59626, 59629, 59638, 59647, 59656, 59665, 59670, 59676, + 59682, 59690, 59700, 59707, 59716, 59721, 59724, 59727, 59732, 59737, + 59742, 59747, 59749, 59751, 59753, 59755, 59757, 59759, 59764, 59771, + 59778, 59780, 59782, 59784, 59786, 59788, 59790, 59792, 59794, 59799, + 59804, 59811, 59818, 59827, 59837, 59846, 59856, 59861, 59866, 59868, + 59875, 59882, 59889, 59896, 59903, 59910, 59917, 59920, 59923, 59926, + 59929, 59934, 59939, 59944, 59949, 59954, 59959, 59964, 59969, 59974, + 59979, 59984, 59989, 59995, 59999, 60004, 60009, 60014, 60019, 60024, + 60029, 60034, 60039, 60044, 60049, 60054, 60059, 60064, 60069, 60074, + 60079, 60084, 60089, 60094, 60099, 60104, 60109, 60115, 60120, 60126, + 60135, 60140, 60148, 60155, 60164, 60169, 60174, 60179, 60185, 60192, + 60199, 60204, 60209, 60214, 60219, 60224, 60229, 60234, 60239, 60244, + 60249, 60255, 60259, 60264, 60269, 60274, 60279, 60284, 60289, 60294, + 60299, 60304, 60309, 60314, 60319, 60324, 60329, 60334, 60339, 60344, + 60349, 60354, 60359, 60364, 60369, 60375, 60380, 60386, 60395, 60400, + 60408, 60415, 60424, 60429, 60434, 60439, 60445, 60452, 60459, 60467, + 60475, 60484, 60491, 60499, 60505, 60514, 60522, 60530, 60538, 60546, + 60554, 60562, 60567, 60574, 60579, 60585, 60593, 60600, 60607, 60615, + 60621, 60627, 60634, 60642, 60651, 60661, 60667, 60674, 60679, 60689, + 60699, 60704, 60709, 60714, 60719, 60724, 60729, 60734, 60739, 60744, + 60749, 60754, 60759, 60764, 60769, 60774, 60779, 60784, 60789, 60794, + 60799, 60804, 60809, 60814, 60819, 60824, 60829, 60834, 60839, 60844, + 60849, 60853, 60857, 60862, 60867, 60872, 60877, 60882, 60887, 60892, + 60897, 60902, 60907, 60912, 60917, 60922, 60927, 60932, 60937, 60942, + 60947, 60954, 60961, 60968, 60975, 60982, 60989, 60996, 61003, 61010, + 61017, 61024, 61031, 61038, 61045, 61050, 61055, 61062, 61069, 61076, + 61083, 61090, 61097, 61104, 61111, 61118, 61125, 61132, 61139, 61145, + 61151, 61157, 61163, 61170, 61177, 61184, 61191, 61198, 61205, 61212, + 61219, 61226, 61233, 61241, 61249, 61257, 61265, 61273, 61281, 61289, + 61297, 61301, 61307, 61313, 61317, 61323, 61329, 61335, 61342, 61349, + 61356, 61363, 61368, 61374, 61380, 61387, 0, 0, 0, 0, 0, 61394, 61402, + 61411, 61420, 61428, 61434, 61439, 61444, 61449, 61454, 61459, 61464, + 61469, 61474, 61479, 61484, 61489, 61494, 61499, 61504, 61509, 61514, + 61519, 61524, 61529, 61534, 61539, 61544, 61549, 61554, 61559, 61564, + 61569, 61574, 61579, 61584, 61589, 61594, 61599, 61604, 61609, 61614, + 61619, 61624, 61629, 0, 61634, 0, 0, 0, 0, 0, 61639, 0, 0, 61644, 61648, + 61653, 61658, 61663, 61668, 61677, 61682, 61687, 61692, 61697, 61702, + 61707, 61712, 61717, 61724, 61729, 61734, 61743, 61750, 61755, 61760, + 61765, 61772, 61777, 61784, 61789, 61794, 61801, 61808, 61813, 61818, + 61823, 61830, 61837, 61842, 61847, 61852, 61857, 61862, 61869, 61876, + 61881, 61886, 61891, 61896, 61901, 61906, 61911, 61916, 61921, 61926, + 61931, 61938, 61943, 61948, 0, 0, 0, 0, 0, 0, 0, 61953, 61960, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61965, 61970, 61974, 61978, 61982, + 61986, 61990, 61994, 61998, 62002, 62006, 62010, 62016, 62020, 62024, + 62028, 62032, 62036, 62040, 62044, 62048, 62052, 62056, 62060, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 62064, 62068, 62072, 62076, 62080, 62084, 62088, 0, + 62092, 62096, 62100, 62104, 62108, 62112, 62116, 0, 62120, 62124, 62128, + 62132, 62136, 62140, 62144, 0, 62148, 62152, 62156, 62160, 62164, 62168, + 62172, 0, 62176, 62180, 62184, 62188, 62192, 62196, 62200, 0, 62204, + 62208, 62212, 62216, 62220, 62224, 62228, 0, 62232, 62236, 62240, 62244, + 62248, 62252, 62256, 0, 62260, 62264, 62268, 62272, 62276, 62280, 62284, + 0, 62288, 62293, 62298, 62303, 62308, 62313, 62318, 62322, 62327, 62332, + 62337, 62341, 62346, 62351, 62356, 62361, 62365, 62370, 62375, 62380, + 62385, 62390, 62395, 62399, 62404, 62409, 62416, 62421, 62426, 62432, + 62439, 62446, 62455, 62462, 62471, 62476, 62481, 62488, 62495, 62501, + 62509, 62515, 62520, 62525, 62529, 62536, 62543, 62547, 62549, 62553, + 62559, 62561, 62565, 62569, 62573, 62579, 62584, 62588, 62592, 62597, + 62603, 62609, 62615, 62620, 62625, 62632, 62639, 62645, 62651, 62657, + 62663, 62669, 62675, 62679, 62683, 62690, 62697, 62703, 62707, 62712, + 62715, 62719, 62726, 62729, 62733, 62737, 62740, 62746, 62752, 62755, + 62761, 62765, 62769, 62775, 62780, 62785, 62787, 62790, 62794, 62800, + 62806, 62810, 62815, 62824, 62827, 62833, 62838, 62842, 62846, 62850, + 62853, 62858, 62864, 62872, 62880, 62886, 62891, 62896, 62902, 62908, + 62915, 62922, 62928, 62934, 62940, 62946, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 62950, 62954, 62958, 62963, 62968, 62973, 62977, 62981, 62985, 62990, + 62995, 62999, 63003, 63007, 63011, 63016, 63021, 63026, 63031, 63035, + 63039, 63044, 63049, 63054, 63059, 63063, 0, 63067, 63071, 63075, 63079, + 63083, 63087, 63091, 63096, 63101, 63105, 63110, 63115, 63124, 63128, + 63132, 63136, 63143, 63147, 63152, 63157, 63161, 63165, 63171, 63176, + 63181, 63186, 63191, 63195, 63199, 63203, 63207, 63211, 63216, 63221, + 63225, 63229, 63234, 63239, 63244, 63248, 63252, 63257, 63262, 63268, + 63274, 63278, 63284, 63290, 63294, 63300, 63306, 63311, 63316, 63320, + 63326, 63330, 63334, 63340, 63346, 63351, 63356, 63360, 63364, 63372, + 63378, 63384, 63390, 63395, 63400, 63405, 63411, 63415, 63421, 63425, + 63429, 63435, 63441, 63447, 63453, 63459, 63465, 63471, 63477, 63483, + 63489, 63495, 63501, 63505, 63511, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63517, 63520, 63524, 63528, 63532, 63536, 63539, 63542, 63546, 63550, + 63554, 63558, 63561, 63566, 63570, 63574, 63578, 63584, 63588, 63592, + 63596, 63600, 63607, 63613, 63617, 63621, 63625, 63629, 63633, 63637, + 63641, 63645, 63649, 63653, 63657, 63663, 63667, 63671, 63675, 63679, + 63683, 63687, 63691, 63695, 63699, 63703, 63707, 63711, 63715, 63719, + 63723, 63727, 63733, 63739, 63744, 63749, 63753, 63757, 63761, 63765, + 63769, 63773, 63777, 63781, 63785, 63789, 63793, 63797, 63801, 63805, + 63809, 63813, 63817, 63821, 63825, 63829, 63833, 63837, 63841, 63845, + 63851, 63855, 63859, 63863, 63867, 63871, 63875, 63879, 63883, 63888, + 63895, 63899, 63903, 63907, 63911, 63915, 63919, 63923, 63927, 63931, + 63935, 63939, 63943, 63950, 63954, 63960, 63964, 63968, 63972, 63976, + 63980, 63983, 63987, 63991, 63995, 63999, 64003, 64007, 64011, 64015, + 64019, 64023, 64027, 64031, 64035, 64039, 64043, 64047, 64051, 64055, + 64059, 64063, 64067, 64071, 64075, 64079, 64083, 64087, 64091, 64095, + 64099, 64103, 64107, 64111, 64117, 64121, 64125, 64129, 64133, 64137, + 64141, 64145, 64149, 64153, 64157, 64161, 64165, 64169, 64173, 64177, + 64181, 64185, 64189, 64193, 64197, 64201, 64205, 64209, 64213, 64217, + 64221, 64225, 64233, 64237, 64241, 64245, 64249, 64253, 64259, 64263, + 64267, 64271, 64275, 64279, 64283, 64287, 64291, 64295, 64299, 64303, + 64307, 64311, 64317, 64321, 64325, 64329, 64333, 64337, 64341, 64345, + 64349, 64353, 64357, 64361, 64365, 64369, 64373, 64377, 64381, 64385, + 64389, 64393, 64397, 64401, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64405, 64413, 64421, 64431, 64441, + 64450, 64460, 64470, 64481, 64493, 64504, 64516, 0, 0, 0, 0, 64523, + 64526, 64529, 64534, 64537, 64544, 64548, 64552, 64556, 64561, 64566, + 64572, 64578, 64583, 64588, 64594, 64600, 64606, 64612, 64615, 64618, + 64625, 64632, 64638, 64644, 64652, 64660, 64665, 64670, 64674, 64682, + 64688, 64695, 64700, 64705, 64710, 64715, 64720, 64725, 64730, 64735, + 64740, 64745, 64750, 64755, 64760, 64765, 64771, 64776, 64780, 64786, + 64797, 64806, 64820, 64829, 64833, 64843, 64849, 64855, 64861, 64866, + 64869, 64874, 64878, 0, 64884, 64889, 64893, 64898, 64902, 64907, 64911, + 64916, 64920, 64925, 64929, 64933, 64938, 64943, 64948, 64953, 64958, + 64963, 64968, 64973, 64978, 64982, 64987, 64992, 64997, 65002, 65007, + 65012, 65017, 65022, 65027, 65032, 65037, 65042, 65047, 65053, 65058, + 65063, 65068, 65073, 65077, 65082, 65086, 65091, 65096, 65101, 65106, + 65110, 65115, 65119, 65124, 65129, 65134, 65139, 65144, 65149, 65154, + 65159, 65164, 65169, 65174, 65179, 65183, 65188, 65193, 65198, 65203, + 65208, 65212, 65218, 65223, 65229, 65234, 65238, 65243, 65248, 65253, + 65258, 65264, 65269, 65274, 65279, 65284, 65289, 65294, 65299, 0, 0, + 65305, 65313, 65321, 65328, 65335, 65340, 65347, 65353, 65358, 65362, + 65365, 65369, 65372, 65376, 65379, 65383, 65386, 65390, 65393, 65396, + 65400, 65404, 65408, 65412, 65416, 65420, 65424, 65428, 65432, 65435, + 65439, 65443, 65447, 65451, 65455, 65459, 65463, 65467, 65471, 65475, + 65479, 65483, 65487, 65492, 65496, 65500, 65504, 65508, 65511, 65515, + 65518, 65522, 65526, 65530, 65534, 65537, 65541, 65544, 65548, 65552, + 65556, 65560, 65564, 65568, 65572, 65576, 65580, 65584, 65588, 65592, + 65595, 65599, 65603, 65607, 65611, 65615, 65618, 65623, 65627, 65632, + 65636, 65639, 65643, 65647, 65651, 65655, 65660, 65664, 65668, 65672, + 65676, 65680, 65684, 65688, 65693, 65697, 65701, 65705, 65709, 65713, + 65720, 65724, 65730, 0, 0, 0, 0, 0, 65735, 65740, 65745, 65750, 65755, + 65760, 65765, 65770, 65774, 65779, 65784, 65789, 65794, 65799, 65804, + 65809, 65814, 65819, 65823, 65828, 65833, 65838, 65842, 65846, 65850, + 65855, 65860, 65865, 65870, 65875, 65880, 65885, 65890, 65895, 65900, + 65904, 65908, 65913, 65918, 65923, 65928, 65933, 65940, 0, 65945, 65949, + 65953, 65957, 65961, 65965, 65969, 65973, 65977, 65981, 65985, 65989, + 65993, 65997, 66001, 66005, 66009, 66013, 66017, 66021, 66025, 66029, + 66033, 66037, 66041, 66045, 66049, 66053, 66057, 66061, 66065, 66068, + 66072, 66075, 66079, 66083, 66086, 66090, 66094, 66097, 66101, 66105, + 66109, 66113, 66116, 66120, 66124, 66128, 66132, 66136, 66140, 66143, + 66146, 66150, 66154, 66158, 66162, 66166, 66170, 66174, 66178, 66182, + 66186, 66190, 66194, 66198, 66202, 66206, 66210, 66214, 66218, 66222, + 66226, 66230, 66234, 66238, 66242, 66246, 66250, 66254, 66258, 66262, + 66266, 66270, 66274, 66278, 66282, 66286, 66290, 66294, 66298, 66302, + 66306, 66310, 0, 66314, 66320, 66326, 66331, 66336, 66341, 66347, 66353, + 66358, 66364, 66370, 66376, 66382, 66388, 66394, 66400, 66406, 66411, + 66416, 66421, 66426, 66431, 66436, 66441, 66446, 66451, 66456, 66461, + 66466, 66471, 66476, 66481, 66486, 66491, 66496, 66501, 66506, 66512, + 66518, 66524, 66530, 66535, 66540, 66545, 66551, 66556, 66561, 66566, + 66571, 66576, 66581, 66586, 66591, 66596, 66601, 66606, 66611, 66616, + 66621, 66626, 66631, 66636, 66641, 66646, 66651, 66656, 66661, 66666, + 66671, 66676, 66681, 66686, 66691, 66696, 66701, 66706, 66711, 66716, + 66721, 66726, 66731, 66736, 66741, 66746, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 66751, 66756, 66761, 66766, 66770, 66775, 66779, 66784, 66789, + 66794, 66799, 66804, 66808, 66813, 66818, 66823, 66828, 66832, 66836, + 66840, 66844, 66848, 66852, 66856, 66860, 66864, 66868, 66872, 66876, + 66880, 66884, 66889, 66894, 66899, 66904, 66909, 66914, 66919, 66924, + 66929, 66934, 66939, 66944, 66949, 66954, 66959, 66966, 0, 66974, 66978, + 66982, 66986, 66990, 66994, 66998, 67002, 67006, 67010, 67015, 67020, + 67025, 67030, 67035, 67040, 67045, 67050, 67055, 67060, 67065, 67070, + 67075, 67080, 67085, 67090, 67095, 67100, 67105, 67110, 67115, 67120, + 67125, 67130, 67135, 67140, 67145, 67150, 67155, 67160, 67165, 67174, + 67183, 67192, 67201, 67210, 67219, 67228, 67237, 67240, 67245, 67250, + 67255, 67260, 67265, 67270, 67275, 67280, 67285, 67289, 67294, 67299, + 67304, 67309, 67314, 67318, 67322, 67326, 67330, 67334, 67338, 67342, + 67346, 67350, 67354, 67358, 67362, 67366, 67370, 67375, 67380, 67385, + 67390, 67395, 67400, 67405, 67410, 67415, 67420, 67425, 67430, 67435, + 67440, 67447, 67454, 67459, 67464, 67468, 67472, 67476, 67480, 67484, + 67488, 67492, 67496, 67500, 67505, 67510, 67515, 67520, 67525, 67530, + 67535, 67540, 67545, 67550, 67555, 67560, 67565, 67570, 67575, 67580, + 67585, 67590, 67595, 67600, 67605, 67610, 67615, 67620, 67625, 67630, + 67635, 67640, 67645, 67650, 67655, 67659, 67664, 67669, 67674, 67679, + 67684, 67689, 67694, 67699, 67704, 67709, 67714, 67719, 67723, 67728, + 67733, 67738, 67743, 67748, 67753, 67758, 67763, 67768, 67772, 67779, + 67786, 67793, 67800, 67807, 67814, 67821, 67828, 67835, 67842, 67849, + 67856, 67859, 67862, 67865, 67870, 67873, 67876, 67879, 67882, 67885, + 67888, 67892, 67896, 67900, 67904, 67907, 67911, 67915, 67919, 67923, + 67927, 67931, 67935, 67939, 67942, 67945, 67949, 67953, 67957, 67961, + 67964, 67968, 67972, 67976, 67980, 67983, 67987, 67991, 67995, 67999, + 68002, 68006, 68010, 68013, 68017, 68021, 68025, 68029, 68033, 68037, + 68041, 68045, 68052, 68055, 68058, 68061, 68064, 68067, 68070, 68073, + 68076, 68079, 68082, 68085, 68088, 68091, 68094, 68097, 68100, 68103, + 68106, 68109, 68112, 68115, 68118, 68121, 68124, 68127, 68130, 68133, + 68136, 68139, 68142, 68145, 68148, 68151, 68154, 68157, 68160, 68163, + 68166, 68169, 68172, 68175, 68178, 68181, 68184, 68187, 68190, 68193, + 68196, 68199, 68202, 68205, 68208, 68211, 68214, 68217, 68220, 68223, + 68226, 68229, 68232, 68235, 68238, 68241, 68244, 68247, 68250, 68253, + 68256, 68259, 68262, 68265, 68268, 68271, 68274, 68277, 68280, 68283, + 68286, 68289, 68292, 68295, 68298, 68301, 68304, 68307, 68310, 68313, + 68316, 68325, 68333, 68341, 68349, 68357, 68365, 68373, 68381, 68389, + 68397, 68406, 68415, 68424, 68433, 68442, 68451, 68460, 68469, 68478, + 68487, 68496, 68505, 68514, 68523, 68532, 68535, 68538, 68541, 68543, + 68546, 68549, 68552, 68557, 68562, 68565, 68572, 68579, 68586, 68593, + 68596, 68601, 68603, 68607, 68609, 68611, 68614, 68617, 68620, 68623, + 68626, 68629, 68632, 68637, 68642, 68645, 68648, 68651, 68654, 68657, + 68660, 68663, 68667, 68670, 68673, 68676, 68679, 68682, 68687, 68690, + 68693, 68696, 68701, 68706, 68711, 68716, 68721, 68726, 68731, 68736, + 68742, 68750, 68752, 68755, 68758, 68761, 68764, 68770, 68778, 68781, + 68784, 68789, 68792, 68795, 68798, 68803, 68806, 68809, 68814, 68817, + 68820, 68825, 68828, 68831, 68836, 68841, 68846, 68849, 68852, 68855, + 68858, 68864, 68867, 68870, 68873, 68875, 68878, 68881, 68884, 68889, + 68892, 68895, 68898, 68901, 68904, 68909, 68912, 68915, 68918, 68921, + 68924, 68927, 68930, 68933, 68936, 68942, 68947, 68955, 68963, 68971, + 68979, 68987, 68995, 69003, 69011, 69019, 69028, 69037, 69046, 69055, + 69064, 69073, 69082, 69091, 69100, 69109, 69118, 69127, 69136, 69145, + 69154, 69163, 69172, 69181, 69190, 69199, 69208, 69217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69232, 69241, - 69250, 69261, 69268, 69273, 69278, 69285, 69292, 69298, 69303, 69308, - 69313, 69318, 69325, 69330, 69335, 69340, 69351, 69356, 69361, 69368, - 69373, 69380, 69385, 69390, 69397, 69404, 69411, 69420, 69429, 69434, - 69439, 69444, 69451, 69456, 69466, 69473, 69478, 69483, 69488, 69493, - 69498, 69503, 69511, 69518, 69525, 69530, 69537, 69542, 69549, 69558, - 69569, 69574, 69583, 69588, 69595, 69604, 69613, 69618, 69623, 69630, - 69636, 69643, 69650, 69654, 69658, 69661, 69665, 69669, 69673, 69677, - 69681, 69685, 69689, 69692, 69696, 69700, 69704, 69708, 69712, 69716, - 69719, 69723, 69727, 69730, 69734, 69738, 69742, 69746, 69750, 69754, - 69758, 69762, 69766, 69770, 69774, 69778, 69782, 69786, 69790, 69794, - 69798, 69802, 69806, 69810, 69814, 69818, 69822, 69826, 69830, 69834, - 69838, 69842, 69846, 69850, 69854, 69858, 69862, 69866, 69870, 69874, - 69878, 69882, 69886, 69890, 69894, 69898, 69902, 69906, 69909, 69913, - 69917, 69921, 69925, 69929, 69933, 69937, 69941, 69945, 69949, 69953, - 69957, 69961, 69965, 69969, 69973, 69977, 69981, 69985, 69989, 69993, - 69997, 70001, 70005, 70009, 70013, 70017, 70021, 70025, 70029, 70033, - 70037, 70041, 70045, 70049, 70053, 70057, 70061, 70065, 70069, 70073, - 70077, 70081, 70085, 70089, 70093, 70097, 70101, 70105, 70109, 70113, - 70117, 70121, 70125, 70129, 70133, 70137, 70141, 70145, 70149, 70153, - 70157, 70161, 70165, 70169, 70173, 70177, 70181, 70185, 70189, 70193, - 70197, 70201, 70205, 70209, 70213, 70217, 70221, 70225, 70229, 70233, - 70237, 70241, 70245, 70249, 70253, 70257, 70261, 70265, 70269, 70273, - 70277, 70281, 70285, 70289, 70293, 70297, 70301, 70305, 70309, 70313, - 70317, 70321, 70325, 70329, 70333, 70337, 70341, 70345, 70349, 70353, - 70357, 70361, 70365, 70369, 70373, 70377, 70380, 70384, 70388, 70392, - 70396, 70400, 70404, 70408, 70412, 70416, 70420, 70424, 70428, 70432, - 70436, 70440, 70444, 70448, 70452, 70456, 70460, 70464, 70468, 70472, - 70476, 70480, 70484, 70488, 70492, 70496, 70500, 70504, 70508, 70512, - 70516, 70520, 70524, 70528, 70532, 70536, 70540, 70544, 70548, 70552, - 70556, 70560, 70564, 70568, 70572, 70576, 70580, 70584, 70588, 70592, - 70596, 70600, 70604, 70608, 70612, 70616, 70620, 70624, 70628, 70632, - 70636, 70640, 70644, 70648, 70652, 70656, 70660, 70664, 70668, 70672, - 70676, 70680, 70684, 70688, 70692, 70696, 70700, 70704, 70708, 70712, - 70716, 70720, 70724, 70728, 70732, 70736, 70740, 70744, 70748, 70752, - 70756, 70760, 70764, 70768, 70772, 70776, 70780, 70784, 70788, 70792, - 70796, 70800, 70804, 70808, 70812, 70816, 70820, 70824, 70828, 70832, - 70836, 70840, 70843, 70847, 70851, 70855, 70859, 70863, 70867, 70871, - 70875, 70879, 70883, 70887, 70891, 70895, 70899, 70903, 70907, 70911, - 70915, 70919, 70923, 70927, 70931, 70935, 70939, 70943, 70947, 70951, - 70955, 70959, 70963, 70967, 70971, 70975, 70979, 70983, 70987, 70991, - 70995, 70999, 71003, 71007, 71011, 71015, 71019, 71023, 71027, 71031, - 71035, 71039, 71043, 71047, 71051, 71055, 71059, 71063, 71067, 71071, - 71075, 71079, 71083, 71087, 71091, 71095, 71099, 71103, 71107, 71111, - 71115, 71119, 71123, 71127, 71131, 71135, 71139, 71143, 71147, 71151, - 71155, 71159, 71163, 71167, 71171, 71175, 71179, 71183, 71187, 71191, - 71195, 71199, 71202, 71206, 71210, 71214, 71218, 71222, 71226, 71230, - 71234, 71238, 71242, 71246, 71250, 71254, 71258, 71262, 71266, 71270, - 71274, 71278, 71282, 71286, 71290, 71294, 71298, 71302, 71306, 71310, - 71314, 71318, 71322, 71326, 71330, 71334, 71338, 71342, 71346, 71350, - 71354, 71358, 71362, 71366, 71370, 71374, 71378, 71382, 71386, 71390, - 71394, 71398, 71402, 71406, 71410, 71414, 71418, 71422, 71426, 71430, - 71434, 71438, 71441, 71445, 71449, 71453, 71457, 71461, 71465, 71469, - 71473, 71477, 71481, 71485, 71489, 71493, 71497, 71501, 71505, 71509, - 71513, 71517, 71521, 71525, 71529, 71533, 71537, 71541, 71545, 71549, - 71553, 71557, 71561, 71565, 71569, 71573, 71577, 71581, 71585, 71589, - 71593, 71597, 71601, 71605, 71609, 71613, 71617, 71621, 71625, 71629, - 71633, 71637, 71641, 71645, 71649, 71653, 71657, 71661, 71665, 71669, - 71673, 71677, 71681, 71685, 71689, 71693, 71696, 71700, 71704, 71708, - 71712, 71716, 71720, 71724, 71728, 71732, 71736, 71740, 71744, 71748, - 71752, 71756, 71760, 71764, 71768, 71772, 71776, 71780, 71784, 71788, - 71792, 71796, 71800, 71804, 71808, 71812, 71816, 71820, 71824, 71828, - 71832, 71836, 71840, 71844, 71848, 71852, 71856, 71860, 71864, 71868, - 71872, 71876, 71880, 71884, 71888, 71892, 71896, 71900, 71904, 71908, - 71912, 71916, 71920, 71924, 71928, 71932, 71936, 71940, 71944, 71948, - 71952, 71956, 71960, 71964, 71968, 71972, 71976, 71980, 71984, 71988, - 71992, 71996, 72000, 72004, 72008, 72012, 72016, 72020, 72024, 72028, - 72032, 72036, 72040, 72044, 72048, 72052, 72056, 72060, 72064, 72068, - 72072, 72076, 72080, 72084, 72088, 72092, 72096, 72100, 72104, 72108, - 72112, 72116, 72120, 72124, 72128, 72132, 72136, 72140, 72144, 72148, - 72151, 72155, 72159, 72163, 72167, 72171, 72175, 72179, 72183, 72187, - 72191, 72195, 72199, 72203, 72207, 72211, 72215, 72219, 72223, 72227, - 72231, 72235, 72239, 72243, 72247, 72251, 72255, 72259, 72263, 72267, - 72271, 72275, 72279, 72283, 72287, 72291, 72295, 72299, 72303, 72307, - 72311, 72315, 72319, 72323, 72327, 72331, 72335, 72339, 72343, 72347, - 72351, 72355, 72359, 72363, 72367, 72371, 72375, 72379, 72383, 72387, - 72391, 72395, 72399, 72403, 72407, 72411, 72415, 72419, 72423, 72427, - 72431, 72435, 72439, 72443, 72447, 72451, 72455, 72459, 72463, 72467, - 72471, 72475, 72479, 72483, 72487, 72491, 72495, 72499, 72503, 72507, - 72511, 72515, 72519, 72523, 72527, 72531, 72535, 72539, 72543, 72547, - 72551, 72555, 72559, 72563, 72567, 72571, 72575, 72579, 72583, 72587, - 72591, 72595, 72599, 72603, 72607, 72611, 72615, 72619, 72623, 72627, - 72631, 72635, 72639, 72643, 72647, 72651, 72655, 72659, 72663, 72667, - 72671, 72675, 72679, 72683, 72687, 72691, 72695, 72699, 72703, 72707, - 72711, 72715, 72719, 72723, 72727, 72731, 72735, 72739, 72743, 72747, - 72751, 72754, 72758, 72762, 72766, 72770, 72774, 72778, 72782, 72785, - 72789, 72793, 72797, 72801, 72805, 72809, 72813, 72817, 72821, 72825, - 72829, 72833, 72837, 72841, 72845, 72849, 72853, 72857, 72861, 72865, - 72869, 72873, 72877, 72881, 72885, 72889, 72893, 72897, 72901, 72905, - 72909, 72913, 72917, 72921, 72925, 72929, 72933, 72937, 72941, 72945, - 72949, 72953, 72957, 72961, 72965, 72969, 72973, 72977, 72981, 72985, - 72989, 72993, 72997, 73001, 73005, 73009, 73013, 73017, 73021, 73025, - 73029, 73033, 73037, 73041, 73045, 73049, 73053, 73057, 73061, 73065, - 73069, 73073, 73077, 73081, 73085, 73089, 73093, 73097, 73101, 73105, - 73109, 73113, 73117, 73121, 73125, 73129, 73133, 73137, 73141, 73145, - 73149, 73153, 73157, 73161, 73165, 73169, 73173, 73177, 73181, 73185, - 73189, 73193, 73197, 73201, 73205, 73209, 73213, 73217, 73221, 73225, - 73229, 73233, 73237, 73241, 73245, 73249, 73253, 73257, 73261, 73265, - 73269, 73273, 73277, 73281, 73285, 73289, 73293, 73297, 73301, 73305, - 73309, 73313, 73317, 73321, 73325, 73329, 73333, 73337, 73341, 73345, - 73349, 73353, 73357, 73361, 73365, 73369, 73373, 73377, 73381, 73385, - 73389, 73393, 73397, 73401, 73405, 73409, 73413, 73417, 73421, 73425, - 73429, 73433, 73437, 73441, 73445, 73449, 73453, 73457, 73461, 73465, - 73469, 73473, 73477, 73481, 73485, 73489, 73493, 73497, 73501, 73505, - 73509, 73512, 73516, 73520, 73524, 73528, 73532, 73536, 73540, 73544, - 73548, 73552, 73556, 73560, 73564, 73568, 73572, 73576, 73580, 73584, - 73588, 73592, 73596, 73600, 73604, 73608, 73612, 73616, 73620, 73624, - 73628, 73632, 73636, 73640, 73644, 73648, 73652, 73656, 73660, 73664, - 73668, 73672, 73676, 73680, 73684, 73688, 73692, 73696, 73700, 73704, - 73708, 73712, 73716, 73720, 73724, 73728, 73732, 73736, 73740, 73744, - 73748, 73752, 73756, 73760, 73764, 73768, 73772, 73776, 73780, 73784, - 73788, 73792, 73796, 73800, 73804, 73808, 73812, 73816, 73820, 73824, - 73828, 73832, 73836, 73840, 73844, 73848, 73852, 73856, 73860, 73864, - 73868, 73872, 73876, 73880, 73884, 73888, 73892, 73896, 73900, 73904, - 73908, 73912, 73916, 73920, 73924, 73928, 73932, 73936, 73940, 73944, - 73948, 73952, 73956, 73960, 73964, 73968, 73972, 73976, 73980, 73984, - 73988, 73992, 73996, 74000, 74004, 74008, 74012, 74016, 74020, 74024, - 74028, 74032, 74036, 74040, 74044, 74048, 74052, 74056, 74060, 74064, - 74068, 74072, 74076, 74080, 74084, 74088, 74092, 74096, 74100, 74104, - 74108, 74112, 74116, 74120, 74124, 74128, 74132, 74136, 74140, 74144, - 74148, 74152, 74156, 74160, 74164, 74168, 74172, 74176, 74180, 74184, - 74188, 74192, 74196, 74200, 74204, 74208, 74212, 74216, 74220, 74224, - 74228, 74232, 74236, 74240, 74244, 74248, 74252, 74256, 74260, 74264, - 74268, 74272, 74276, 74280, 74284, 74288, 74292, 0, 0, 0, 74296, 74300, - 74304, 74308, 74312, 74316, 74320, 74324, 74328, 74332, 74336, 74340, - 74344, 74348, 74352, 74356, 74360, 74364, 74368, 74372, 74376, 74380, - 74384, 74388, 74392, 74396, 74400, 74404, 74408, 74412, 74416, 74420, - 74424, 74428, 74432, 74436, 74440, 74444, 74448, 74452, 74456, 74460, - 74464, 74468, 74472, 74476, 74480, 74484, 74488, 74492, 74496, 74500, - 74504, 74508, 74512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74516, 74521, 74525, - 74530, 74535, 74540, 74545, 74550, 74554, 74559, 74564, 74569, 74574, - 74579, 74584, 74589, 74593, 74597, 74601, 74605, 74610, 74615, 74620, - 74624, 74629, 74634, 74639, 74644, 74649, 74653, 74658, 74662, 74667, - 74671, 74676, 74680, 74684, 74688, 74693, 74698, 74703, 74711, 74719, - 74727, 74735, 74742, 74750, 74756, 74764, 74768, 74772, 74776, 74780, - 74784, 74788, 74792, 74796, 74800, 74804, 74808, 74812, 74816, 74820, - 74824, 74828, 74832, 74836, 74840, 74844, 74848, 74852, 74856, 74860, - 74864, 74868, 74872, 74876, 74880, 74884, 74888, 74892, 74896, 74900, - 74904, 74908, 74911, 74915, 74919, 74923, 74927, 74931, 74935, 74939, - 74943, 74947, 74951, 74955, 74959, 74963, 74967, 74971, 74975, 74979, - 74983, 74987, 74991, 74995, 74999, 75003, 75007, 75011, 75015, 75019, - 75023, 75027, 75031, 75035, 75039, 75043, 75047, 75051, 75055, 75058, - 75062, 75066, 75069, 75073, 75077, 75081, 75084, 75088, 75092, 75096, - 75100, 75104, 75108, 75112, 75116, 75120, 75124, 75128, 75132, 75136, - 75139, 75142, 75146, 75150, 75153, 75157, 75161, 75165, 75169, 75173, - 75177, 75180, 75183, 75187, 75191, 75195, 75198, 75201, 75205, 75209, - 75213, 75217, 75221, 75225, 75229, 75233, 75237, 75241, 75245, 75249, - 75253, 75257, 75261, 75265, 75269, 75273, 75277, 75281, 75285, 75289, - 75293, 75297, 75301, 75305, 75309, 75313, 75317, 75321, 75325, 75329, - 75333, 75337, 75341, 75345, 75349, 75352, 75356, 75360, 75364, 75368, - 75372, 75376, 75380, 75384, 75388, 75392, 75396, 75400, 75404, 75408, - 75412, 75416, 75420, 75424, 75428, 75432, 75436, 75440, 75444, 75448, - 75452, 75456, 75460, 75464, 75468, 75472, 75476, 75480, 75484, 75488, - 75492, 75496, 75499, 75503, 75507, 75511, 75515, 75519, 75523, 75527, - 75531, 75535, 75539, 75543, 75547, 75551, 75555, 75559, 75563, 75566, - 75570, 75574, 75578, 75582, 75586, 75590, 75594, 75598, 75602, 75606, - 75610, 75614, 75618, 75622, 75626, 75630, 75634, 75638, 75642, 75646, - 75650, 75653, 75657, 75661, 75665, 75669, 75673, 75677, 75681, 75685, - 75689, 75693, 75697, 75701, 75705, 75709, 75713, 75717, 75721, 75725, - 75729, 75733, 75737, 75741, 75745, 75749, 75753, 75757, 75761, 75765, - 75769, 75773, 75777, 75781, 75785, 75789, 75793, 75797, 75801, 75805, - 75809, 75813, 75817, 75821, 75825, 75828, 75833, 75837, 75843, 75848, - 75854, 75858, 75862, 75866, 75870, 75874, 75878, 75882, 75886, 75890, - 75894, 75898, 75902, 75906, 75910, 75913, 75916, 75919, 75922, 75925, - 75928, 75931, 75934, 75937, 75942, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 75948, 75953, 75958, 75963, 75968, 75975, 75982, - 75987, 75992, 75997, 76002, 76009, 76016, 76023, 76030, 76037, 76044, - 76054, 76064, 76071, 76078, 76085, 76092, 76098, 76104, 76113, 76122, - 76129, 76136, 76147, 76158, 76163, 76168, 76175, 76182, 76189, 76196, - 76203, 76210, 76217, 76224, 76230, 76236, 76242, 76248, 76255, 76262, - 76267, 76271, 76278, 76285, 76292, 76296, 76303, 76307, 76312, 76316, - 76322, 76327, 76333, 76338, 76342, 76346, 76349, 76352, 76357, 76362, - 76367, 76372, 76377, 76382, 76387, 76392, 76397, 76402, 76410, 76418, - 76423, 76428, 76433, 76438, 76443, 76448, 76453, 76458, 76463, 76468, - 76473, 76478, 76483, 76488, 76494, 76500, 76506, 76512, 76517, 76523, - 76526, 76529, 76532, 76536, 76540, 76544, 76548, 76551, 76555, 76558, - 76561, 76564, 76568, 76572, 76576, 76580, 76584, 76588, 76592, 76596, - 76600, 76604, 76608, 76612, 76616, 76620, 76624, 76628, 76632, 76636, - 76640, 76644, 76648, 76652, 76655, 76659, 76663, 76667, 76671, 76675, - 76679, 76683, 76687, 76691, 76695, 76699, 76703, 76707, 76711, 76715, - 76719, 76723, 76727, 76731, 76735, 76739, 76743, 76747, 76751, 76754, - 76758, 76762, 76766, 76770, 76774, 76778, 76782, 76785, 76789, 76793, - 76797, 76801, 76805, 76809, 76813, 76817, 76821, 76825, 76829, 76833, - 76838, 76843, 76846, 76851, 76854, 76857, 76860, 0, 0, 0, 0, 0, 0, 0, 0, - 76864, 76873, 76882, 76891, 76900, 76909, 76918, 76927, 76936, 76944, - 76951, 76959, 76966, 76974, 76984, 76993, 77003, 77012, 77022, 77030, - 77037, 77045, 77052, 77060, 77065, 77070, 77076, 77084, 77090, 77096, - 77103, 77112, 77120, 77128, 77136, 77143, 77150, 77157, 77164, 77169, - 77174, 77179, 77184, 77189, 77194, 77199, 77204, 77212, 77220, 77226, - 77232, 77237, 77242, 77247, 77252, 77257, 77262, 77267, 77272, 77281, - 77290, 77295, 77300, 77310, 77320, 77327, 77334, 77343, 77352, 77364, - 77376, 77382, 77388, 77396, 77404, 77414, 77424, 77431, 77438, 77443, - 77448, 77460, 77472, 77480, 77488, 77498, 77508, 77520, 77532, 77541, - 77550, 77557, 77564, 77571, 77578, 77587, 77596, 77601, 77606, 77613, - 77620, 77627, 77634, 77646, 77658, 77663, 77668, 77673, 77678, 77683, - 77688, 77693, 77698, 77702, 77707, 77712, 77717, 77722, 77727, 77733, - 77738, 77743, 77750, 77757, 77764, 77771, 77778, 77786, 77794, 77799, - 77804, 77810, 77816, 77823, 77830, 77837, 77844, 77851, 77855, 77862, - 77867, 77872, 77878, 77891, 77897, 77905, 77913, 77920, 77927, 77936, - 77945, 77952, 77959, 77966, 77973, 77980, 77987, 77994, 78001, 78008, - 78015, 78024, 78033, 78042, 78051, 78060, 78069, 78078, 78087, 78096, - 78105, 78112, 78120, 78126, 78134, 78140, 78146, 78152, 78158, 78166, - 78171, 78176, 78181, 78186, 78191, 78197, 78203, 78209, 78215, 78221, - 78227, 78233, 78239, 78246, 78253, 78260, 78267, 78276, 78283, 78292, - 78304, 78316, 78328, 0, 0, 0, 0, 0, 78340, 78349, 0, 78358, 0, 78364, - 78370, 78378, 78386, 78393, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 78400, 78405, 78410, 78415, 78423, 78431, - 78438, 78445, 78451, 78458, 78466, 78474, 78482, 78490, 78498, 78504, - 78510, 78517, 78523, 78529, 78535, 78542, 78549, 78556, 78563, 78570, - 78577, 78584, 78591, 78598, 78605, 78612, 78619, 78626, 78633, 78639, - 78646, 78653, 78660, 78667, 78674, 78681, 78688, 78695, 78702, 78709, - 78716, 78723, 78730, 78737, 78744, 78751, 78758, 78765, 78773, 78781, - 78789, 78797, 78805, 0, 0, 0, 78814, 78822, 78830, 78838, 78846, 78854, - 78862, 78868, 78874, 78880, 0, 0, 0, 0, 0, 0, 78886, 78890, 78895, 78900, - 78905, 78910, 78915, 78920, 78925, 78930, 78935, 78940, 78944, 78948, - 78953, 78958, 78962, 78967, 78972, 78977, 78982, 78987, 78992, 78997, - 79001, 79005, 79009, 79014, 79018, 79022, 79026, 79030, 79034, 79038, - 79042, 79047, 79052, 79057, 79062, 79067, 79074, 79080, 79085, 79090, - 79095, 79100, 79106, 79113, 79119, 79126, 79132, 79138, 79143, 79150, - 79156, 79161, 0, 0, 0, 0, 0, 0, 0, 0, 79167, 79172, 79177, 79181, 79186, - 79190, 79195, 79199, 79204, 79209, 79215, 79220, 79226, 79230, 79235, - 79240, 79244, 79249, 79254, 79258, 79263, 79268, 79273, 79278, 79283, - 79288, 79293, 79298, 79303, 79308, 79313, 79318, 79323, 79328, 79333, - 79338, 79343, 79348, 79352, 79356, 79361, 79366, 79371, 79375, 79379, - 79383, 79387, 79392, 79397, 79402, 79406, 79410, 79415, 79421, 79427, - 79432, 79438, 79443, 79449, 79455, 79462, 79468, 79475, 79480, 79486, - 79492, 79497, 79503, 79509, 79514, 0, 0, 0, 0, 0, 0, 0, 0, 79519, 79523, - 79528, 79533, 79537, 79541, 79545, 79549, 79553, 79557, 79561, 79565, 0, - 0, 0, 0, 0, 0, 79569, 79574, 79578, 79582, 79586, 79590, 79594, 79598, - 79602, 79606, 79610, 79614, 79618, 79622, 79626, 79630, 79634, 79639, - 79644, 79650, 79656, 79663, 79668, 79673, 79679, 79683, 79688, 79691, - 79694, 79698, 79703, 79707, 79712, 79719, 79725, 79731, 79737, 79743, - 79749, 79755, 79761, 79767, 79773, 79779, 79786, 79793, 79800, 79806, - 79813, 79820, 79827, 79834, 79841, 79847, 79853, 79860, 79866, 79873, - 79880, 79886, 79892, 79898, 79905, 79912, 79918, 79925, 79932, 79938, - 79945, 79951, 79958, 79965, 79971, 79977, 79984, 79990, 79997, 80004, - 80013, 80020, 80027, 80031, 80036, 80041, 80046, 80051, 80055, 80059, - 80064, 80068, 80073, 80078, 80083, 80087, 80091, 80095, 80099, 80104, - 80108, 80113, 80118, 80123, 80128, 80132, 80137, 80142, 80147, 80153, - 80158, 80164, 80170, 80176, 80182, 80188, 80193, 80199, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 80203, 80208, 80212, 80216, 80220, 80224, 80228, 80232, - 80236, 80240, 80244, 80248, 80252, 80256, 80260, 80264, 80268, 80272, - 80276, 80280, 80284, 80288, 80292, 80296, 80300, 80304, 80308, 80312, - 80316, 80320, 0, 0, 0, 80324, 80329, 80334, 80339, 80344, 80348, 80355, - 80359, 80364, 80368, 80375, 80382, 80391, 80395, 80400, 80404, 80408, - 80415, 80422, 80427, 80434, 80439, 80444, 80451, 80456, 80463, 80470, - 80475, 80480, 80487, 80492, 80499, 80506, 80511, 80518, 80523, 80530, - 80534, 80538, 80545, 80550, 80557, 80561, 80565, 80569, 80576, 80580, - 80585, 80592, 80599, 80603, 80607, 80614, 80620, 80626, 80632, 80640, - 80646, 80654, 80660, 80668, 80674, 80680, 80686, 80692, 80696, 80701, - 80706, 80712, 80718, 80724, 80730, 80736, 80742, 80748, 80754, 80762, - 80768, 0, 80775, 80779, 80784, 80788, 80792, 80796, 80800, 80804, 80808, - 80812, 80816, 0, 0, 0, 0, 80820, 80828, 80834, 80840, 80846, 80852, - 80858, 80864, 80870, 80877, 80884, 80891, 80898, 80905, 80912, 80919, - 80926, 80933, 80940, 80947, 80953, 80959, 80965, 80971, 80977, 80983, - 80989, 80995, 81001, 81008, 81015, 81022, 81029, 0, 81036, 81040, 81044, - 81048, 81052, 81057, 81061, 81065, 81070, 81075, 81080, 81085, 81090, - 81095, 81100, 81105, 81110, 81115, 81120, 81125, 81130, 81135, 81140, - 81145, 81150, 81154, 81159, 81163, 81168, 81173, 81178, 81183, 81188, - 81192, 81197, 81201, 81205, 81209, 81214, 81219, 81223, 81227, 81233, - 81238, 81244, 81250, 81255, 81261, 81266, 81272, 81278, 81284, 81289, - 81294, 81299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81305, 81311, 81317, 81323, - 81330, 81336, 81342, 81348, 81354, 81360, 81365, 81370, 81376, 81383, 0, - 0, 81390, 81395, 81399, 81403, 81407, 81411, 81415, 81419, 81423, 81427, - 0, 0, 81431, 81437, 81443, 81450, 81458, 81464, 81470, 81476, 81482, - 81488, 81494, 81500, 81506, 81512, 81518, 81524, 81529, 81534, 81539, - 81545, 81551, 81558, 81564, 81570, 81575, 81582, 81589, 81596, 81602, - 81607, 81612, 81617, 81625, 81632, 81639, 81647, 81655, 81662, 81669, - 81676, 81683, 81690, 81697, 81704, 81711, 81718, 81725, 81732, 81739, - 81746, 81753, 81760, 81767, 81774, 81781, 81788, 81795, 81801, 81807, - 81814, 81821, 81828, 81835, 81842, 81849, 81856, 81863, 81870, 81877, - 81884, 81891, 81898, 81905, 81912, 81919, 81926, 81933, 81940, 81947, - 81954, 81961, 81968, 81975, 81981, 81987, 81994, 82000, 82005, 82011, - 82016, 82021, 82026, 82033, 82039, 82045, 82051, 82057, 82063, 82069, - 82075, 82083, 82091, 82099, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 82107, 82113, 82119, 82125, 82133, 82141, - 82147, 82153, 82160, 82167, 82174, 82181, 82188, 82195, 82202, 82209, - 82216, 82224, 82232, 82240, 82248, 82256, 82262, 82270, 82276, 82284, - 82293, 82301, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82307, 82311, 82315, 82319, - 82323, 82327, 0, 0, 82331, 82335, 82339, 82343, 82347, 82351, 0, 0, - 82355, 82359, 82363, 82367, 82371, 82375, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 82379, 82383, 82387, 82391, 82395, 82399, 82403, 0, 82407, 82411, 82415, - 82419, 82423, 82427, 82431, 0, 82435, 82442, 82448, 82454, 82460, 82468, - 82475, 82484, 82496, 82506, 82515, 82523, 82531, 82539, 82545, 82553, - 82561, 82568, 82576, 82586, 82593, 82602, 82608, 82618, 82627, 82632, - 82640, 82649, 82654, 82663, 82670, 82680, 82692, 82697, 82703, 82710, - 82715, 82725, 82735, 82745, 82755, 82770, 82783, 82794, 82802, 82807, - 82819, 82828, 82835, 82842, 82848, 82855, 82860, 82867, 82873, 82884, - 82895, 82905, 82911, 82916, 0, 0, 0, 0, 82921, 82925, 82929, 82933, - 82937, 82941, 82946, 82951, 82955, 82960, 82965, 82970, 82975, 82980, - 82984, 82989, 82994, 82999, 83004, 83009, 83013, 83018, 83023, 83028, - 83033, 83038, 83042, 83047, 83052, 83057, 83062, 83066, 83071, 83076, - 83081, 83086, 83091, 83096, 83101, 83106, 83111, 83116, 83121, 83126, - 83131, 83135, 83140, 83145, 83150, 83155, 83160, 83165, 83170, 83175, - 83180, 83185, 83190, 83195, 83200, 83205, 83210, 83215, 83220, 83225, - 83230, 83235, 83240, 83245, 83250, 83255, 83260, 83265, 83270, 83275, - 83280, 83285, 83290, 83295, 83300, 83305, 83309, 83316, 83323, 83330, - 83337, 83343, 83349, 83356, 83363, 83370, 83377, 83384, 83391, 83398, - 83405, 83412, 83418, 83425, 83432, 83439, 83446, 83453, 83460, 83467, - 83474, 83481, 83488, 83495, 83504, 83513, 83522, 83531, 83540, 83549, - 83558, 83567, 83575, 83583, 83591, 83599, 83607, 83615, 83623, 83631, - 83637, 83645, 0, 0, 83653, 83660, 83666, 83672, 83678, 83684, 83690, - 83696, 83702, 83708, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83714, 83719, 83724, 83729, 83734, - 83739, 83744, 83749, 83754, 83759, 83764, 83769, 83774, 83779, 83784, - 83789, 83794, 83799, 83804, 83809, 83814, 83819, 83824, 0, 0, 0, 0, - 83829, 83833, 83837, 83841, 83845, 83849, 83853, 83857, 83861, 83865, - 83869, 83873, 83877, 83881, 83885, 83889, 83893, 83897, 83901, 83905, - 83909, 83913, 83917, 83921, 83925, 83929, 83933, 83937, 83941, 83945, - 83949, 83953, 83957, 83961, 83965, 83969, 83973, 83977, 83981, 83985, - 83989, 83993, 83997, 84001, 84005, 84009, 84013, 84017, 84021, 0, 0, 0, - 0, 84025, 84029, 84033, 84037, 84041, 84045, 84049, 84053, 84057, 84061, - 84065, 84069, 84073, 84077, 84081, 84085, 84089, 84093, 84097, 84101, - 84105, 84109, 84113, 84117, 84121, 84125, 84129, 84133, 84137, 84141, - 84145, 84149, 84153, 84157, 84161, 84165, 84169, 84173, 84177, 84181, - 84185, 84189, 84193, 84197, 84201, 84205, 84209, 84213, 84217, 84221, - 84225, 84229, 84233, 84237, 84241, 84245, 84249, 84253, 84257, 84261, - 84265, 84269, 84273, 84277, 84281, 84285, 84289, 84293, 84297, 84301, - 84305, 84309, 84313, 84317, 84321, 84325, 84329, 84333, 84337, 84341, - 84345, 84349, 84353, 84357, 84361, 84365, 84369, 84373, 84377, 84381, - 84385, 84389, 84393, 84397, 84401, 84405, 84409, 84413, 84417, 84421, - 84425, 84429, 84433, 84437, 84441, 84445, 84449, 84453, 84457, 84461, - 84465, 84469, 84473, 84477, 84481, 84485, 84489, 84493, 84497, 84501, - 84505, 84509, 84513, 84517, 84521, 84525, 84529, 84533, 84537, 84541, - 84545, 84549, 84553, 84557, 84561, 84565, 84569, 84573, 84577, 84581, - 84585, 84589, 84593, 84597, 84601, 84605, 84609, 84613, 84617, 84621, - 84625, 84629, 84633, 84637, 84641, 84645, 84649, 84653, 84657, 84661, - 84665, 84669, 84673, 84677, 84681, 84685, 84689, 84693, 84697, 84701, - 84705, 84709, 84713, 84717, 84721, 84725, 84729, 84733, 84737, 84741, - 84745, 84749, 84753, 84757, 84761, 84765, 84769, 84773, 84777, 84781, - 84785, 84789, 84793, 84797, 84801, 84805, 84809, 84813, 84817, 84821, - 84825, 84829, 84833, 84837, 84841, 84845, 84849, 84853, 84857, 84861, - 84865, 84869, 84873, 84877, 84881, 84885, 84889, 84893, 84897, 84901, - 84905, 84909, 84913, 84917, 84921, 84925, 84929, 84933, 84937, 84941, - 84945, 84949, 84953, 84957, 84961, 84965, 84969, 84973, 84977, 84981, - 84985, 84989, 84993, 84997, 85001, 85005, 85009, 85013, 85017, 85021, - 85025, 85029, 85033, 85037, 85041, 85045, 85049, 85053, 85057, 85061, - 85065, 85069, 85073, 85077, 85081, 85085, 85089, 85093, 85097, 85101, - 85105, 85109, 85113, 85117, 85121, 85125, 85129, 85133, 85137, 85141, - 85145, 85149, 85153, 85157, 85161, 85165, 85169, 85173, 85177, 85181, - 85185, 85189, 85193, 85197, 85201, 85205, 85209, 85213, 85217, 85221, - 85225, 85229, 85233, 85237, 85241, 85245, 85249, 85253, 85257, 85261, - 85265, 85269, 85273, 85277, 85281, 85285, 85289, 85293, 85297, 85301, - 85305, 85309, 85313, 85317, 85321, 85325, 85329, 85333, 85337, 85341, - 85345, 85349, 85353, 85357, 85361, 85365, 85369, 85373, 85377, 85381, - 85385, 85389, 85393, 85397, 85401, 85405, 85409, 85413, 85417, 85421, - 85425, 85429, 85433, 85437, 85441, 85445, 85449, 85453, 85457, 85461, - 85465, 85469, 85473, 85477, 85481, 85485, 0, 0, 85489, 85493, 85497, - 85501, 85505, 85509, 85513, 85517, 85521, 85525, 85529, 85533, 85537, - 85541, 85545, 85549, 85553, 85557, 85561, 85565, 85569, 85573, 85577, - 85581, 85585, 85589, 85593, 85597, 85601, 85605, 85609, 85613, 85617, - 85621, 85625, 85629, 85633, 85637, 85641, 85645, 85649, 85653, 85657, - 85661, 85665, 85669, 85673, 85677, 85681, 85685, 85689, 85693, 85697, - 85701, 85705, 85709, 85713, 85717, 85721, 85725, 85729, 85733, 85737, - 85741, 85745, 85749, 85753, 85757, 85761, 85765, 85769, 85773, 85777, - 85781, 85785, 85789, 85793, 85797, 85801, 85805, 85809, 85813, 85817, - 85821, 85825, 85829, 85833, 85837, 85841, 85845, 85849, 85853, 85857, - 85861, 85865, 85869, 85873, 85877, 85881, 85885, 85889, 85893, 85897, - 85901, 85905, 85909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85913, - 85918, 85923, 85928, 85933, 85938, 85946, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 85951, 85959, 85967, 85975, 85983, 0, 0, 0, 0, 0, 85991, 85998, - 86005, 86015, 86021, 86027, 86033, 86039, 86045, 86051, 86058, 86064, - 86070, 86076, 86085, 86094, 86106, 86118, 86124, 86130, 86136, 86143, - 86150, 86157, 86164, 86171, 0, 86178, 86185, 86192, 86200, 86207, 0, - 86214, 0, 86221, 86228, 0, 86235, 86243, 0, 86250, 86257, 86264, 86271, - 86278, 86285, 86292, 86299, 86306, 86313, 86318, 86325, 86332, 86338, - 86344, 86350, 86357, 86363, 86369, 86375, 86382, 86388, 86394, 86400, - 86407, 86413, 86419, 86425, 86432, 86438, 86444, 86450, 86457, 86463, - 86469, 86475, 86482, 86488, 86494, 86500, 86507, 86513, 86519, 86525, - 86532, 86538, 86544, 86550, 86557, 86563, 86569, 86575, 86582, 86588, - 86594, 86600, 86607, 86613, 86619, 86625, 86632, 86638, 86644, 86650, - 86656, 86662, 86668, 86674, 86680, 86686, 86692, 86698, 86704, 86710, - 86716, 86722, 86729, 86735, 86741, 86747, 86754, 86760, 86766, 86772, - 86779, 86785, 86791, 86797, 86804, 86812, 86820, 86826, 86832, 86838, - 86845, 86854, 86863, 86871, 86879, 86887, 86896, 86904, 86912, 86920, - 86929, 86936, 86943, 86954, 86965, 86969, 86973, 86978, 86983, 86988, - 86993, 87002, 87011, 87017, 87023, 87030, 87037, 87044, 87048, 87054, - 87060, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87065, 87071, - 87077, 87083, 87090, 87095, 87100, 87106, 87112, 87118, 87124, 87133, - 87139, 87145, 87153, 87161, 87169, 87177, 87183, 87189, 87195, 87202, - 87215, 87229, 87240, 87251, 87263, 87275, 87287, 87299, 87310, 87321, - 87333, 87345, 87357, 87369, 87381, 87393, 87405, 87422, 87439, 87456, - 87463, 87470, 87477, 87485, 87497, 87508, 87519, 87532, 87543, 87552, - 87560, 87569, 87577, 87587, 87595, 87604, 87612, 87621, 87629, 87639, - 87647, 87656, 87664, 87674, 87682, 87690, 87698, 87706, 87713, 87722, - 87730, 87738, 87747, 87755, 87764, 87772, 87780, 87788, 87797, 87805, - 87814, 87822, 87830, 87838, 87846, 87855, 87863, 87872, 87880, 87889, - 87897, 87906, 87914, 87924, 87932, 87940, 87948, 87958, 87966, 87974, - 87983, 87991, 88000, 88009, 88017, 88027, 88035, 88044, 88052, 88061, - 88069, 88079, 88087, 88095, 88102, 88110, 88117, 88126, 88133, 88142, - 88150, 88159, 88167, 88177, 88185, 88194, 88202, 88212, 88220, 88228, - 88235, 88243, 88250, 88259, 88266, 88276, 88286, 88297, 88306, 88315, - 88324, 88333, 88342, 88352, 88364, 88376, 88387, 88399, 88412, 88423, - 88432, 88441, 88449, 88458, 88468, 88476, 88485, 88494, 88502, 88511, - 88521, 88529, 88538, 88547, 88555, 88564, 88574, 88582, 88592, 88600, - 88610, 88618, 88626, 88635, 88643, 88653, 88661, 88669, 88679, 88687, - 88694, 88701, 88710, 88719, 88727, 88736, 88746, 88754, 88765, 88773, - 88781, 88788, 88796, 88805, 88812, 88824, 88835, 88847, 88858, 88870, - 88879, 88887, 88896, 88904, 88913, 88922, 88930, 88939, 88947, 88956, - 88964, 88972, 88980, 88988, 88995, 89004, 89012, 89021, 89029, 89038, - 89046, 89054, 89063, 89071, 89080, 89088, 89097, 89105, 89113, 89121, - 89130, 89138, 89147, 89155, 89164, 89172, 89181, 89189, 89197, 89205, - 89214, 89222, 89231, 89240, 89248, 89257, 89265, 89274, 89282, 89291, - 89299, 89306, 89314, 89321, 89330, 89338, 89347, 89355, 89364, 89373, - 89381, 89391, 89399, 89406, 89414, 89421, 89429, 89441, 89454, 89463, - 89473, 89482, 89492, 89501, 89511, 89520, 89530, 89539, 89549, 89559, - 89568, 89577, 89586, 89596, 89604, 89613, 89623, 89633, 89643, 89653, - 89661, 89671, 89679, 89689, 89697, 89707, 89715, 89725, 89733, 89742, - 89749, 89759, 89767, 89777, 89785, 89795, 89803, 89813, 89821, 89830, - 89838, 89847, 89855, 89864, 89873, 89882, 89891, 89901, 89909, 89919, - 89927, 89937, 89945, 89955, 89963, 89973, 89981, 89990, 89997, 90007, - 90015, 90025, 90033, 90043, 90051, 90061, 90069, 90078, 90086, 90095, - 90103, 90112, 90121, 90130, 90139, 90148, 90156, 90165, 90173, 90182, - 90191, 90199, 90209, 90218, 90228, 90238, 90247, 90257, 90266, 90275, - 90283, 90291, 90296, 90301, 90307, 90315, 90323, 90331, 90339, 90347, - 90355, 90361, 90367, 90373, 90381, 90387, 90397, 90403, 90409, 90415, - 90426, 90437, 90448, 90458, 90469, 90480, 90490, 90501, 90511, 90521, - 90530, 90541, 90552, 90563, 90576, 90586, 90596, 90607, 90617, 90627, - 90637, 90647, 90657, 90667, 90677, 90688, 90699, 90710, 90720, 90730, - 90742, 90753, 90764, 90774, 90784, 90794, 90804, 90815, 90825, 90835, - 90847, 90857, 90867, 90879, 90890, 90901, 90911, 90921, 90931, 90941, - 90953, 90965, 90977, 90988, 90999, 91009, 91019, 91029, 91038, 91047, - 91057, 91067, 91078, 0, 0, 91088, 91099, 91110, 91120, 91130, 91142, - 91153, 91164, 91177, 91187, 91199, 91208, 91217, 91228, 91239, 91252, - 91263, 91276, 91286, 91298, 91308, 91320, 91332, 91345, 91355, 91365, - 91375, 91386, 91396, 91405, 91415, 91424, 91433, 91443, 91453, 91463, - 91473, 91483, 91493, 91504, 91514, 91525, 91535, 91546, 91557, 91567, - 91577, 91587, 91597, 91607, 91617, 91628, 91638, 91649, 0, 0, 0, 0, 0, 0, - 0, 91660, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91666, 91681, 91696, 91702, 91708, - 91714, 91720, 91726, 91732, 91738, 91744, 91752, 91756, 91759, 91767, - 91775, 91783, 91786, 91789, 91792, 91795, 91798, 91801, 91804, 91807, - 91810, 91813, 91816, 91819, 91822, 91825, 91828, 91831, 91839, 91848, - 91859, 91867, 91875, 91884, 91893, 91905, 91917, 0, 0, 0, 0, 0, 0, 91927, - 91932, 91937, 91944, 91951, 91957, 91963, 91968, 91973, 91978, 91984, - 91990, 91996, 92002, 92008, 92015, 92022, 92032, 92042, 92052, 92061, - 92072, 92081, 92090, 92101, 92112, 92125, 92138, 92150, 92162, 92174, - 92186, 92197, 92208, 92219, 92230, 92242, 92254, 92258, 92263, 92273, - 92283, 92287, 92291, 92295, 92300, 92305, 92310, 92315, 92318, 92322, 0, - 92327, 92330, 92333, 92337, 92341, 92346, 92350, 92354, 92360, 92366, - 92374, 92382, 92385, 92388, 92391, 92394, 92397, 92401, 92405, 0, 92409, - 92414, 92418, 92422, 0, 0, 0, 0, 92427, 92432, 92439, 92444, 92449, 0, - 92454, 92459, 92465, 92470, 92476, 92481, 92487, 92492, 92498, 92503, - 92509, 92515, 92524, 92533, 92542, 92551, 92561, 92571, 92581, 92591, - 92600, 92609, 92618, 92628, 92633, 92638, 92644, 92650, 92656, 92663, - 92671, 92679, 92685, 92691, 92697, 92704, 92710, 92716, 92722, 92729, - 92735, 92741, 92747, 92754, 92759, 92764, 92769, 92775, 92781, 92787, - 92793, 92800, 92806, 92812, 92818, 92824, 92830, 92836, 92842, 92848, - 92854, 92860, 92866, 92873, 92879, 92885, 92891, 92898, 92904, 92910, - 92916, 92923, 92929, 92935, 92941, 92948, 92954, 92960, 92966, 92973, - 92979, 92985, 92991, 92998, 93004, 93010, 93016, 93023, 93029, 93035, - 93041, 93048, 93054, 93060, 93066, 93073, 93079, 93085, 93091, 93098, - 93104, 93110, 93116, 93123, 93129, 93135, 93141, 93148, 93153, 93158, - 93163, 93169, 93175, 93181, 93187, 93194, 93200, 93206, 93212, 93219, - 93225, 93231, 93238, 93245, 93250, 93255, 93260, 93266, 93278, 93290, - 93302, 93314, 93327, 93340, 93348, 0, 0, 93356, 0, 93364, 93369, 93374, - 93378, 93383, 93388, 93392, 93396, 93401, 93406, 93410, 93414, 93418, - 93422, 93428, 93432, 93437, 93441, 93445, 93449, 93453, 93457, 93461, - 93465, 93469, 93473, 93477, 93481, 93486, 93491, 93496, 93501, 93507, - 93513, 93520, 93527, 93534, 93540, 93547, 93554, 93561, 93567, 93574, - 93581, 93587, 93594, 93601, 93607, 93614, 93621, 93627, 93634, 93641, - 93647, 93654, 93661, 93668, 93675, 93682, 93688, 93694, 93700, 93706, - 93711, 93717, 93723, 93730, 93737, 93744, 93750, 93757, 93764, 93771, - 93777, 93784, 93791, 93797, 93804, 93811, 93817, 93824, 93831, 93837, - 93844, 93851, 93857, 93864, 93871, 93878, 93885, 93892, 93899, 93904, - 93911, 93915, 93921, 93927, 93933, 93939, 93945, 93949, 93954, 93959, - 93964, 93969, 93974, 93979, 93984, 93989, 93995, 94001, 94007, 94015, - 94019, 94023, 94027, 94031, 94035, 94039, 94044, 94049, 94054, 94059, - 94063, 94068, 94073, 94078, 94083, 94088, 94093, 94098, 94103, 94107, - 94111, 94116, 94121, 94126, 94131, 94135, 94140, 94145, 94150, 94155, - 94159, 94164, 94169, 94174, 94179, 94183, 94188, 94193, 94197, 94202, - 94207, 94212, 94217, 94222, 94227, 94234, 94241, 94245, 94250, 94255, - 94260, 94265, 94270, 94275, 94280, 94285, 94290, 94295, 94300, 94305, - 94310, 94315, 94320, 94325, 94330, 94335, 94340, 94345, 94350, 94355, - 94360, 94365, 94370, 94375, 94380, 94385, 94390, 0, 0, 0, 94395, 94399, - 94404, 94408, 94413, 94418, 0, 0, 94422, 94427, 94432, 94436, 94441, - 94446, 0, 0, 94451, 94456, 94460, 94465, 94470, 94475, 0, 0, 94480, - 94485, 94490, 0, 0, 0, 94494, 94499, 94504, 94509, 94513, 94518, 94523, - 0, 94528, 94534, 94537, 94541, 94544, 94548, 94552, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 94556, 94562, 94568, 94574, 94580, 0, 0, 94584, 94590, 94596, - 94602, 94608, 94614, 94621, 94628, 94635, 94642, 94649, 94656, 0, 94663, - 94670, 94677, 94683, 94690, 94697, 94704, 94711, 94717, 94724, 94731, - 94738, 94745, 94751, 94758, 94765, 94772, 94779, 94785, 94792, 94799, - 94806, 94813, 94820, 94827, 94834, 0, 94841, 94847, 94854, 94861, 94868, - 94875, 94881, 94888, 94895, 94902, 94909, 94916, 94923, 94930, 94936, - 94943, 94950, 94957, 94964, 0, 94971, 94978, 0, 94985, 94992, 94999, - 95006, 95013, 95020, 95027, 95034, 95041, 95048, 95055, 95062, 95069, - 95076, 95083, 0, 0, 95089, 95094, 95099, 95104, 95109, 95114, 95119, - 95124, 95129, 95134, 95139, 95144, 95149, 95154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 95159, 95166, 95173, 95180, 95187, 95194, 95201, 95208, 95215, - 95222, 95229, 95236, 95243, 95250, 95257, 95264, 95271, 95278, 95285, - 95292, 95300, 95308, 95315, 95322, 95327, 95335, 95343, 95350, 95357, - 95362, 95369, 95374, 95379, 95386, 95391, 95396, 95401, 95409, 95414, - 95419, 95426, 95431, 95436, 95443, 95450, 95455, 95460, 95465, 95470, - 95475, 95480, 95485, 95490, 95495, 95502, 95507, 95514, 95519, 95524, - 95529, 95534, 95539, 95544, 95549, 95554, 95559, 95564, 95569, 95576, - 95583, 95590, 95597, 95603, 95608, 95615, 95620, 95625, 95634, 95641, - 95650, 95657, 95662, 95667, 95675, 95680, 95685, 95690, 95695, 95700, - 95707, 95712, 95717, 95722, 95727, 95732, 95739, 95746, 95753, 95760, - 95767, 95774, 95781, 95788, 95795, 95802, 95809, 95816, 95823, 95830, - 95837, 95844, 95851, 95858, 95865, 95872, 95879, 95886, 95893, 95900, - 95907, 95914, 95921, 95928, 0, 0, 0, 0, 0, 95935, 95943, 95951, 0, 0, 0, - 0, 95956, 95960, 95964, 95968, 95972, 95976, 95980, 95984, 95988, 95992, - 95997, 96002, 96007, 96012, 96017, 96022, 96027, 96032, 96037, 96043, - 96049, 96055, 96062, 96069, 96076, 96083, 96090, 96097, 96102, 96107, - 96112, 96118, 96124, 96130, 96136, 96142, 96148, 96154, 96160, 96166, - 96172, 96178, 96184, 96190, 96196, 0, 0, 0, 96202, 96210, 96218, 96226, - 96234, 96242, 96252, 96262, 96270, 96278, 96286, 96294, 96302, 96308, - 96315, 96324, 96332, 96340, 96349, 96358, 96367, 96377, 96388, 96398, - 96409, 96418, 96427, 96436, 96446, 96457, 96467, 96478, 96489, 96498, - 96506, 96512, 96518, 96524, 96530, 96538, 96546, 96552, 96559, 96569, - 96576, 96583, 96590, 96597, 96604, 96614, 96621, 96628, 96636, 96644, - 96653, 96662, 96671, 96680, 96689, 96696, 96704, 96713, 96722, 96726, - 96733, 96738, 96743, 96747, 96751, 96755, 96759, 96764, 96769, 96775, - 96781, 96785, 96791, 96795, 96799, 96803, 96807, 96811, 96815, 96821, - 96825, 96830, 96834, 96838, 0, 96841, 96846, 96851, 96856, 96861, 96868, - 96873, 96878, 96883, 96888, 96893, 96898, 96903, 0, 0, 0, 96906, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69220, 69229, + 69238, 69249, 69256, 69261, 69266, 69273, 69280, 69286, 69291, 69296, + 69301, 69306, 69313, 69318, 69323, 69328, 69339, 69344, 69349, 69356, + 69361, 69368, 69373, 69378, 69385, 69392, 69399, 69408, 69417, 69422, + 69427, 69432, 69439, 69444, 69454, 69461, 69466, 69471, 69476, 69481, + 69486, 69491, 69499, 69506, 69513, 69518, 69525, 69530, 69537, 69546, + 69557, 69562, 69571, 69576, 69583, 69592, 69601, 69606, 69611, 69618, + 69624, 69631, 69638, 69642, 69646, 69649, 69653, 69657, 69661, 69665, + 69669, 69673, 69677, 69680, 69684, 69688, 69692, 69696, 69700, 69704, + 69707, 69711, 69715, 69718, 69722, 69726, 69730, 69734, 69738, 69742, + 69746, 69750, 69754, 69758, 69762, 69766, 69770, 69774, 69778, 69782, + 69786, 69790, 69794, 69798, 69802, 69806, 69810, 69814, 69818, 69822, + 69826, 69830, 69834, 69838, 69842, 69846, 69850, 69854, 69858, 69862, + 69866, 69870, 69874, 69878, 69882, 69886, 69890, 69894, 69897, 69901, + 69905, 69909, 69913, 69917, 69921, 69925, 69929, 69933, 69937, 69941, + 69945, 69949, 69953, 69957, 69961, 69965, 69969, 69973, 69977, 69981, + 69985, 69989, 69993, 69997, 70001, 70005, 70009, 70013, 70017, 70021, + 70025, 70029, 70033, 70037, 70041, 70045, 70049, 70053, 70057, 70061, + 70065, 70069, 70073, 70077, 70081, 70085, 70089, 70093, 70097, 70101, + 70105, 70109, 70113, 70117, 70121, 70125, 70129, 70133, 70137, 70141, + 70145, 70149, 70153, 70157, 70161, 70165, 70169, 70173, 70177, 70181, + 70185, 70189, 70193, 70197, 70201, 70205, 70209, 70213, 70217, 70221, + 70225, 70229, 70233, 70237, 70241, 70245, 70249, 70253, 70257, 70261, + 70265, 70269, 70273, 70277, 70281, 70285, 70289, 70293, 70297, 70301, + 70305, 70309, 70313, 70317, 70321, 70325, 70329, 70333, 70337, 70341, + 70345, 70349, 70353, 70357, 70361, 70365, 70368, 70372, 70376, 70380, + 70384, 70388, 70392, 70396, 70400, 70404, 70408, 70412, 70416, 70420, + 70424, 70428, 70432, 70436, 70440, 70444, 70448, 70452, 70456, 70460, + 70464, 70468, 70472, 70476, 70480, 70484, 70488, 70492, 70496, 70500, + 70504, 70508, 70512, 70516, 70520, 70524, 70528, 70532, 70536, 70540, + 70544, 70548, 70552, 70556, 70560, 70564, 70568, 70572, 70576, 70580, + 70584, 70588, 70592, 70596, 70600, 70604, 70608, 70612, 70616, 70620, + 70624, 70628, 70632, 70636, 70640, 70644, 70648, 70652, 70656, 70660, + 70664, 70668, 70672, 70676, 70680, 70684, 70688, 70692, 70696, 70700, + 70704, 70708, 70712, 70716, 70720, 70724, 70728, 70732, 70736, 70740, + 70744, 70748, 70752, 70756, 70760, 70764, 70768, 70772, 70776, 70780, + 70784, 70788, 70792, 70796, 70800, 70804, 70808, 70812, 70816, 70820, + 70824, 70828, 70831, 70835, 70839, 70843, 70847, 70851, 70855, 70859, + 70863, 70867, 70871, 70875, 70879, 70883, 70887, 70891, 70895, 70899, + 70903, 70907, 70911, 70915, 70919, 70923, 70927, 70931, 70935, 70939, + 70943, 70947, 70951, 70955, 70959, 70963, 70967, 70971, 70975, 70979, + 70983, 70987, 70991, 70995, 70999, 71003, 71007, 71011, 71015, 71019, + 71023, 71027, 71031, 71035, 71039, 71043, 71047, 71051, 71055, 71059, + 71063, 71067, 71071, 71075, 71079, 71083, 71087, 71091, 71095, 71099, + 71103, 71107, 71111, 71115, 71119, 71123, 71127, 71131, 71135, 71139, + 71143, 71147, 71151, 71155, 71159, 71163, 71167, 71171, 71175, 71179, + 71183, 71187, 71190, 71194, 71198, 71202, 71206, 71210, 71214, 71218, + 71222, 71226, 71230, 71234, 71238, 71242, 71246, 71250, 71254, 71258, + 71262, 71266, 71270, 71274, 71278, 71282, 71286, 71290, 71294, 71298, + 71302, 71306, 71310, 71314, 71318, 71322, 71326, 71330, 71334, 71338, + 71342, 71346, 71350, 71354, 71358, 71362, 71366, 71370, 71374, 71378, + 71382, 71386, 71390, 71394, 71398, 71402, 71406, 71410, 71414, 71418, + 71422, 71426, 71429, 71433, 71437, 71441, 71445, 71449, 71453, 71457, + 71461, 71465, 71469, 71473, 71477, 71481, 71485, 71489, 71493, 71497, + 71501, 71505, 71509, 71513, 71517, 71521, 71525, 71529, 71533, 71537, + 71541, 71545, 71549, 71553, 71557, 71561, 71565, 71569, 71573, 71577, + 71581, 71585, 71589, 71593, 71597, 71601, 71605, 71609, 71613, 71617, + 71621, 71625, 71629, 71633, 71637, 71641, 71645, 71649, 71653, 71657, + 71661, 71665, 71669, 71673, 71677, 71681, 71684, 71688, 71692, 71696, + 71700, 71704, 71708, 71712, 71716, 71720, 71724, 71728, 71732, 71736, + 71740, 71744, 71748, 71752, 71756, 71760, 71764, 71768, 71772, 71776, + 71780, 71784, 71788, 71792, 71796, 71800, 71804, 71808, 71812, 71816, + 71820, 71824, 71828, 71832, 71836, 71840, 71844, 71848, 71852, 71856, + 71860, 71864, 71868, 71872, 71876, 71880, 71884, 71888, 71892, 71896, + 71900, 71904, 71908, 71912, 71916, 71920, 71924, 71928, 71932, 71936, + 71940, 71944, 71948, 71952, 71956, 71960, 71964, 71968, 71972, 71976, + 71980, 71984, 71988, 71992, 71996, 72000, 72004, 72008, 72012, 72016, + 72020, 72024, 72028, 72032, 72036, 72040, 72044, 72048, 72052, 72056, + 72060, 72064, 72068, 72072, 72076, 72080, 72084, 72088, 72092, 72096, + 72100, 72104, 72108, 72112, 72116, 72120, 72124, 72128, 72132, 72136, + 72139, 72143, 72147, 72151, 72155, 72159, 72163, 72167, 72171, 72175, + 72179, 72183, 72187, 72191, 72195, 72199, 72203, 72207, 72211, 72215, + 72219, 72223, 72227, 72231, 72235, 72239, 72243, 72247, 72251, 72255, + 72259, 72263, 72267, 72271, 72275, 72279, 72283, 72287, 72291, 72295, + 72299, 72303, 72307, 72311, 72315, 72319, 72323, 72327, 72331, 72335, + 72339, 72343, 72347, 72351, 72355, 72359, 72363, 72367, 72371, 72375, + 72379, 72383, 72387, 72391, 72395, 72399, 72403, 72407, 72411, 72415, + 72419, 72423, 72427, 72431, 72435, 72439, 72443, 72447, 72451, 72455, + 72459, 72463, 72467, 72471, 72475, 72479, 72483, 72487, 72491, 72495, + 72499, 72503, 72507, 72511, 72515, 72519, 72523, 72527, 72531, 72535, + 72539, 72543, 72547, 72551, 72555, 72559, 72563, 72567, 72571, 72575, + 72579, 72583, 72587, 72591, 72595, 72599, 72603, 72607, 72611, 72615, + 72619, 72623, 72627, 72631, 72635, 72639, 72643, 72647, 72651, 72655, + 72659, 72663, 72667, 72671, 72675, 72679, 72683, 72687, 72691, 72695, + 72699, 72703, 72707, 72711, 72715, 72719, 72723, 72727, 72731, 72735, + 72739, 72742, 72746, 72750, 72754, 72758, 72762, 72766, 72770, 72773, + 72777, 72781, 72785, 72789, 72793, 72797, 72801, 72805, 72809, 72813, + 72817, 72821, 72825, 72829, 72833, 72837, 72841, 72845, 72849, 72853, + 72857, 72861, 72865, 72869, 72873, 72877, 72881, 72885, 72889, 72893, + 72897, 72901, 72905, 72909, 72913, 72917, 72921, 72925, 72929, 72933, + 72937, 72941, 72945, 72949, 72953, 72957, 72961, 72965, 72969, 72973, + 72977, 72981, 72985, 72989, 72993, 72997, 73001, 73005, 73009, 73013, + 73017, 73021, 73025, 73029, 73033, 73037, 73041, 73045, 73049, 73053, + 73057, 73061, 73065, 73069, 73073, 73077, 73081, 73085, 73089, 73093, + 73097, 73101, 73105, 73109, 73113, 73117, 73121, 73125, 73129, 73133, + 73137, 73141, 73145, 73149, 73153, 73157, 73161, 73165, 73169, 73173, + 73177, 73181, 73185, 73189, 73193, 73197, 73201, 73205, 73209, 73213, + 73217, 73221, 73225, 73229, 73233, 73237, 73241, 73245, 73249, 73253, + 73257, 73261, 73265, 73269, 73273, 73277, 73281, 73285, 73289, 73293, + 73297, 73301, 73305, 73309, 73313, 73317, 73321, 73325, 73329, 73333, + 73337, 73341, 73345, 73349, 73353, 73357, 73361, 73365, 73369, 73373, + 73377, 73381, 73385, 73389, 73393, 73397, 73401, 73405, 73409, 73413, + 73417, 73421, 73425, 73429, 73433, 73437, 73441, 73445, 73449, 73453, + 73457, 73461, 73465, 73469, 73473, 73477, 73481, 73485, 73489, 73493, + 73497, 73500, 73504, 73508, 73512, 73516, 73520, 73524, 73528, 73532, + 73536, 73540, 73544, 73548, 73552, 73556, 73560, 73564, 73568, 73572, + 73576, 73580, 73584, 73588, 73592, 73596, 73600, 73604, 73608, 73612, + 73616, 73620, 73624, 73628, 73632, 73636, 73640, 73644, 73648, 73652, + 73656, 73660, 73664, 73668, 73672, 73676, 73680, 73684, 73688, 73692, + 73696, 73700, 73704, 73708, 73712, 73716, 73720, 73724, 73728, 73732, + 73736, 73740, 73744, 73748, 73752, 73756, 73760, 73764, 73768, 73772, + 73776, 73780, 73784, 73788, 73792, 73796, 73800, 73804, 73808, 73812, + 73816, 73820, 73824, 73828, 73832, 73836, 73840, 73844, 73848, 73852, + 73856, 73860, 73864, 73868, 73872, 73876, 73880, 73884, 73888, 73892, + 73896, 73900, 73904, 73908, 73912, 73916, 73920, 73924, 73928, 73932, + 73936, 73940, 73944, 73948, 73952, 73956, 73960, 73964, 73968, 73972, + 73976, 73980, 73984, 73988, 73992, 73996, 74000, 74004, 74008, 74012, + 74016, 74020, 74024, 74028, 74032, 74036, 74040, 74044, 74048, 74052, + 74056, 74060, 74064, 74068, 74072, 74076, 74080, 74084, 74088, 74092, + 74096, 74100, 74104, 74108, 74112, 74116, 74120, 74124, 74128, 74132, + 74136, 74140, 74144, 74148, 74152, 74156, 74160, 74164, 74168, 74172, + 74176, 74180, 74184, 74188, 74192, 74196, 74200, 74204, 74208, 74212, + 74216, 74220, 74224, 74228, 74232, 74236, 74240, 74244, 74248, 74252, + 74256, 74260, 74264, 74268, 74272, 74276, 74280, 0, 0, 0, 74284, 74288, + 74292, 74296, 74300, 74304, 74308, 74312, 74316, 74320, 74324, 74328, + 74332, 74336, 74340, 74344, 74348, 74352, 74356, 74360, 74364, 74368, + 74372, 74376, 74380, 74384, 74388, 74392, 74396, 74400, 74404, 74408, + 74412, 74416, 74420, 74424, 74428, 74432, 74436, 74440, 74444, 74448, + 74452, 74456, 74460, 74464, 74468, 74472, 74476, 74480, 74484, 74488, + 74492, 74496, 74500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74504, 74509, 74513, + 74518, 74523, 74528, 74533, 74538, 74542, 74547, 74552, 74557, 74562, + 74567, 74572, 74577, 74581, 74585, 74589, 74593, 74598, 74603, 74608, + 74612, 74617, 74622, 74627, 74632, 74637, 74641, 74646, 74650, 74655, + 74659, 74664, 74668, 74672, 74676, 74681, 74686, 74691, 74699, 74707, + 74715, 74723, 74730, 74738, 74744, 74752, 74756, 74760, 74764, 74768, + 74772, 74776, 74780, 74784, 74788, 74792, 74796, 74800, 74804, 74808, + 74812, 74816, 74820, 74824, 74828, 74832, 74836, 74840, 74844, 74848, + 74852, 74856, 74860, 74864, 74868, 74872, 74876, 74880, 74884, 74888, + 74892, 74896, 74899, 74903, 74907, 74911, 74915, 74919, 74923, 74927, + 74931, 74935, 74939, 74943, 74947, 74951, 74955, 74959, 74963, 74967, + 74971, 74975, 74979, 74983, 74987, 74991, 74995, 74999, 75003, 75007, + 75011, 75015, 75019, 75023, 75027, 75031, 75035, 75039, 75043, 75046, + 75050, 75054, 75057, 75061, 75065, 75069, 75072, 75076, 75080, 75084, + 75088, 75092, 75096, 75100, 75104, 75108, 75112, 75116, 75120, 75124, + 75127, 75130, 75134, 75138, 75141, 75145, 75149, 75153, 75157, 75161, + 75165, 75168, 75171, 75175, 75179, 75183, 75186, 75189, 75193, 75197, + 75201, 75205, 75209, 75213, 75217, 75221, 75225, 75229, 75233, 75237, + 75241, 75245, 75249, 75253, 75257, 75261, 75265, 75269, 75273, 75277, + 75281, 75285, 75289, 75293, 75297, 75301, 75305, 75309, 75313, 75317, + 75321, 75325, 75329, 75333, 75337, 75340, 75344, 75348, 75352, 75356, + 75360, 75364, 75368, 75372, 75376, 75380, 75384, 75388, 75392, 75396, + 75400, 75404, 75408, 75412, 75416, 75420, 75424, 75428, 75432, 75436, + 75440, 75444, 75448, 75452, 75456, 75460, 75464, 75468, 75472, 75476, + 75480, 75484, 75487, 75491, 75495, 75499, 75503, 75507, 75511, 75515, + 75519, 75523, 75527, 75531, 75535, 75539, 75543, 75547, 75551, 75554, + 75558, 75562, 75566, 75570, 75574, 75578, 75582, 75586, 75590, 75594, + 75598, 75602, 75606, 75610, 75614, 75618, 75622, 75626, 75630, 75634, + 75638, 75641, 75645, 75649, 75653, 75657, 75661, 75665, 75669, 75673, + 75677, 75681, 75685, 75689, 75693, 75697, 75701, 75705, 75709, 75713, + 75717, 75721, 75725, 75729, 75733, 75737, 75741, 75745, 75749, 75753, + 75757, 75761, 75765, 75769, 75773, 75777, 75781, 75785, 75789, 75793, + 75797, 75801, 75805, 75809, 75813, 75816, 75821, 75825, 75831, 75836, + 75842, 75846, 75850, 75854, 75858, 75862, 75866, 75870, 75874, 75878, + 75882, 75886, 75890, 75894, 75898, 75901, 75904, 75907, 75910, 75913, + 75916, 75919, 75922, 75925, 75930, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 75936, 75941, 75946, 75951, 75956, 75963, 75970, + 75975, 75980, 75985, 75990, 75997, 76004, 76011, 76018, 76025, 76032, + 76042, 76052, 76059, 76066, 76073, 76080, 76086, 76092, 76101, 76110, + 76117, 76124, 76135, 76146, 76151, 76156, 76163, 76170, 76177, 76184, + 76191, 76198, 76205, 76212, 76218, 76224, 76230, 76236, 76243, 76250, + 76255, 76259, 76266, 76273, 76280, 76284, 76291, 76295, 76300, 76304, + 76310, 76315, 76321, 76326, 76330, 76334, 76337, 76340, 76345, 76350, + 76355, 76360, 76365, 76370, 76375, 76380, 76385, 76390, 76398, 76406, + 76411, 76416, 76421, 76426, 76431, 76436, 76441, 76446, 76451, 76456, + 76461, 76466, 76471, 76476, 76482, 76488, 76494, 76500, 76505, 76511, + 76514, 76517, 76520, 76524, 76528, 76532, 76536, 76539, 76543, 76546, + 76549, 76552, 76556, 76560, 76564, 76568, 76572, 76576, 76580, 76584, + 76588, 76592, 76596, 76600, 76604, 76608, 76612, 76616, 76620, 76624, + 76628, 76632, 76636, 76640, 76643, 76647, 76651, 76655, 76659, 76663, + 76667, 76671, 76675, 76679, 76683, 76687, 76691, 76695, 76699, 76703, + 76707, 76711, 76715, 76719, 76723, 76727, 76731, 76735, 76739, 76742, + 76746, 76750, 76754, 76758, 76762, 76766, 76770, 76773, 76777, 76781, + 76785, 76789, 76793, 76797, 76801, 76805, 76809, 76813, 76817, 76821, + 76826, 76831, 76834, 76839, 76842, 76845, 76848, 0, 0, 0, 0, 0, 0, 0, 0, + 76852, 76861, 76870, 76879, 76888, 76897, 76906, 76915, 76924, 76932, + 76939, 76947, 76954, 76962, 76972, 76981, 76991, 77000, 77010, 77018, + 77025, 77033, 77040, 77048, 77053, 77058, 77064, 77072, 77078, 77084, + 77091, 77100, 77108, 77116, 77124, 77131, 77138, 77145, 77152, 77157, + 77162, 77167, 77172, 77177, 77182, 77187, 77192, 77200, 77208, 77214, + 77220, 77225, 77230, 77235, 77240, 77245, 77250, 77255, 77260, 77269, + 77278, 77283, 77288, 77298, 77308, 77315, 77322, 77331, 77340, 77352, + 77364, 77370, 77376, 77384, 77392, 77402, 77412, 77419, 77426, 77431, + 77436, 77448, 77460, 77468, 77476, 77486, 77496, 77508, 77520, 77529, + 77538, 77545, 77552, 77559, 77566, 77575, 77584, 77589, 77594, 77601, + 77608, 77615, 77622, 77634, 77646, 77651, 77656, 77661, 77666, 77671, + 77676, 77681, 77686, 77690, 77695, 77700, 77705, 77710, 77715, 77721, + 77726, 77731, 77738, 77745, 77752, 77759, 77766, 77774, 77782, 77787, + 77792, 77798, 77804, 77811, 77818, 77825, 77832, 77839, 77843, 77850, + 77855, 77860, 77866, 77879, 77885, 77893, 77901, 77908, 77915, 77924, + 77933, 77940, 77947, 77954, 77961, 77968, 77975, 77982, 77989, 77996, + 78003, 78012, 78021, 78030, 78039, 78048, 78057, 78066, 78075, 78084, + 78093, 78100, 78108, 78114, 78122, 78128, 78134, 78140, 78146, 78154, + 78159, 78164, 78169, 78174, 78179, 78185, 78191, 78197, 78203, 78209, + 78215, 78221, 78227, 78234, 78241, 78248, 78255, 78264, 78271, 78280, + 78292, 78304, 78316, 0, 0, 0, 0, 0, 78328, 78337, 0, 78346, 0, 78352, + 78358, 78366, 78374, 78381, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 78388, 78393, 78398, 78403, 78411, 78419, + 78426, 78433, 78439, 78446, 78454, 78462, 78470, 78478, 78486, 78492, + 78498, 78505, 78511, 78517, 78523, 78530, 78537, 78544, 78551, 78558, + 78565, 78572, 78579, 78586, 78593, 78600, 78607, 78614, 78621, 78627, + 78634, 78641, 78648, 78655, 78662, 78669, 78676, 78683, 78690, 78697, + 78704, 78711, 78718, 78725, 78732, 78739, 78746, 78753, 78761, 78769, + 78777, 78785, 78793, 0, 0, 0, 78802, 78810, 78818, 78826, 78834, 78842, + 78850, 78856, 78862, 78868, 0, 0, 0, 0, 0, 0, 78874, 78878, 78883, 78888, + 78893, 78898, 78903, 78908, 78913, 78918, 78923, 78928, 78932, 78936, + 78941, 78946, 78950, 78955, 78960, 78965, 78970, 78975, 78980, 78985, + 78989, 78993, 78997, 79002, 79006, 79010, 79014, 79018, 79022, 79026, + 79030, 79035, 79040, 79045, 79050, 79055, 79062, 79068, 79073, 79078, + 79083, 79088, 79094, 79101, 79107, 79114, 79120, 79126, 79131, 79138, + 79144, 79149, 0, 0, 0, 0, 0, 0, 0, 0, 79155, 79160, 79165, 79169, 79174, + 79178, 79183, 79187, 79192, 79197, 79203, 79208, 79214, 79218, 79223, + 79228, 79232, 79237, 79242, 79246, 79251, 79256, 79261, 79266, 79271, + 79276, 79281, 79286, 79291, 79296, 79301, 79306, 79311, 79316, 79321, + 79326, 79331, 79336, 79340, 79344, 79349, 79354, 79359, 79363, 79367, + 79371, 79375, 79380, 79385, 79390, 79394, 79398, 79403, 79409, 79415, + 79420, 79426, 79431, 79437, 79443, 79450, 79456, 79463, 79468, 79474, + 79480, 79485, 79491, 79497, 79502, 0, 0, 0, 0, 0, 0, 0, 0, 79507, 79511, + 79516, 79521, 79525, 79529, 79533, 79537, 79541, 79545, 79549, 79553, 0, + 0, 0, 0, 0, 0, 79557, 79562, 79566, 79570, 79574, 79578, 79582, 79586, + 79590, 79594, 79598, 79602, 79606, 79610, 79614, 79618, 79622, 79627, + 79632, 79638, 79644, 79651, 79656, 79661, 79667, 79671, 79676, 79679, + 79682, 79686, 79691, 79695, 79700, 79707, 79713, 79719, 79725, 79731, + 79737, 79743, 79749, 79755, 79761, 79767, 79774, 79781, 79788, 79794, + 79801, 79808, 79815, 79822, 79829, 79835, 79841, 79848, 79854, 79861, + 79868, 79874, 79880, 79886, 79893, 79900, 79906, 79913, 79920, 79926, + 79933, 79939, 79946, 79953, 79959, 79965, 79972, 79978, 79985, 79992, + 80001, 80008, 80015, 80019, 80024, 80029, 80034, 80039, 80043, 80047, + 80052, 80056, 80061, 80066, 80071, 80075, 80079, 80083, 80087, 80092, + 80096, 80101, 80106, 80111, 80116, 80120, 80125, 80130, 80135, 80141, + 80146, 80152, 80158, 80164, 80170, 80176, 80181, 80187, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 80191, 80196, 80200, 80204, 80208, 80212, 80216, 80220, + 80224, 80228, 80232, 80236, 80240, 80244, 80248, 80252, 80256, 80260, + 80264, 80268, 80272, 80276, 80280, 80284, 80288, 80292, 80296, 80300, + 80304, 80308, 0, 0, 0, 80312, 80317, 80322, 80327, 80332, 80336, 80343, + 80347, 80352, 80356, 80363, 80370, 80379, 80383, 80388, 80392, 80396, + 80403, 80410, 80415, 80422, 80427, 80432, 80439, 80444, 80451, 80458, + 80463, 80468, 80475, 80480, 80487, 80494, 80499, 80506, 80511, 80518, + 80522, 80526, 80533, 80538, 80545, 80549, 80553, 80557, 80564, 80568, + 80573, 80580, 80587, 80591, 80595, 80602, 80608, 80614, 80620, 80628, + 80634, 80642, 80648, 80656, 80662, 80668, 80674, 80680, 80684, 80689, + 80694, 80700, 80706, 80712, 80718, 80724, 80730, 80736, 80742, 80750, + 80756, 0, 80763, 80767, 80772, 80776, 80780, 80784, 80788, 80792, 80796, + 80800, 80804, 0, 0, 0, 0, 80808, 80816, 80822, 80828, 80834, 80840, + 80846, 80852, 80858, 80865, 80872, 80879, 80886, 80893, 80900, 80907, + 80914, 80921, 80928, 80935, 80941, 80947, 80953, 80959, 80965, 80971, + 80977, 80983, 80989, 80996, 81003, 81010, 81017, 0, 81024, 81028, 81032, + 81036, 81040, 81045, 81049, 81053, 81058, 81063, 81068, 81073, 81078, + 81083, 81088, 81093, 81098, 81103, 81108, 81113, 81118, 81123, 81128, + 81133, 81138, 81142, 81147, 81151, 81156, 81161, 81166, 81171, 81176, + 81180, 81185, 81189, 81193, 81197, 81202, 81207, 81211, 81215, 81221, + 81226, 81232, 81238, 81243, 81249, 81254, 81260, 81266, 81272, 81277, + 81282, 81287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81293, 81299, 81305, 81311, + 81318, 81324, 81330, 81336, 81342, 81348, 81353, 81358, 81364, 81371, 0, + 0, 81378, 81383, 81387, 81391, 81395, 81399, 81403, 81407, 81411, 81415, + 0, 0, 81419, 81425, 81431, 81438, 81446, 81452, 81458, 81464, 81470, + 81476, 81482, 81488, 81494, 81500, 81506, 81512, 81517, 81522, 81527, + 81533, 81539, 81546, 81552, 81558, 81563, 81570, 81577, 81584, 81590, + 81595, 81600, 81605, 81613, 81620, 81627, 81635, 81643, 81650, 81657, + 81664, 81671, 81678, 81685, 81692, 81699, 81706, 81713, 81720, 81727, + 81734, 81741, 81748, 81755, 81762, 81769, 81776, 81783, 81789, 81795, + 81802, 81809, 81816, 81823, 81830, 81837, 81844, 81851, 81858, 81865, + 81872, 81879, 81886, 81893, 81900, 81907, 81914, 81921, 81928, 81935, + 81942, 81949, 81956, 81963, 81969, 81975, 81982, 81988, 81993, 81999, + 82004, 82009, 82014, 82021, 82027, 82033, 82039, 82045, 82051, 82057, + 82063, 82071, 82079, 82087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 82095, 82101, 82107, 82113, 82121, 82129, + 82135, 82141, 82148, 82155, 82162, 82169, 82176, 82183, 82190, 82197, + 82204, 82212, 82220, 82228, 82236, 82244, 82250, 82258, 82264, 82272, + 82281, 82289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82295, 82299, 82303, 82307, + 82311, 82315, 0, 0, 82319, 82323, 82327, 82331, 82335, 82339, 0, 0, + 82343, 82347, 82351, 82355, 82359, 82363, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82367, 82371, 82375, 82379, 82383, 82387, 82391, 0, 82395, 82399, 82403, + 82407, 82411, 82415, 82419, 0, 82423, 82430, 82436, 82442, 82448, 82456, + 82463, 82472, 82484, 82494, 82503, 82511, 82519, 82527, 82533, 82541, + 82549, 82556, 82564, 82574, 82581, 82590, 82596, 82606, 82615, 82620, + 82628, 82637, 82642, 82651, 82658, 82668, 82680, 82685, 82691, 82698, + 82703, 82713, 82723, 82733, 82743, 82758, 82771, 82782, 82790, 82795, + 82807, 82816, 82823, 82830, 82836, 82843, 82848, 82855, 82861, 82872, + 82883, 82893, 82899, 82904, 0, 0, 0, 0, 82909, 82913, 82917, 82921, + 82925, 82929, 82934, 82939, 82943, 82948, 82953, 82958, 82963, 82968, + 82972, 82977, 82982, 82987, 82992, 82997, 83001, 83006, 83011, 83016, + 83021, 83026, 83030, 83035, 83040, 83045, 83050, 83054, 83059, 83064, + 83069, 83074, 83079, 83084, 83089, 83094, 83099, 83104, 83109, 83114, + 83119, 83123, 83128, 83133, 83138, 83143, 83148, 83153, 83158, 83163, + 83168, 83173, 83178, 83183, 83188, 83193, 83198, 83203, 83208, 83213, + 83218, 83223, 83228, 83233, 83238, 83243, 83248, 83253, 83258, 83263, + 83268, 83273, 83278, 83283, 83288, 83293, 83297, 83304, 83311, 83318, + 83325, 83331, 83337, 83344, 83351, 83358, 83365, 83372, 83379, 83386, + 83393, 83400, 83406, 83413, 83420, 83427, 83434, 83441, 83448, 83455, + 83462, 83469, 83476, 83483, 83492, 83501, 83510, 83519, 83528, 83537, + 83546, 83555, 83563, 83571, 83579, 83587, 83595, 83603, 83611, 83619, + 83625, 83633, 0, 0, 83641, 83648, 83654, 83660, 83666, 83672, 83678, + 83684, 83690, 83696, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96912, 96919, - 96928, 96937, 96944, 96951, 96958, 96965, 96972, 96979, 96985, 96992, - 96999, 97006, 97013, 97020, 97027, 97034, 97041, 97050, 97057, 97064, - 97071, 97078, 97085, 97092, 97099, 97106, 97115, 97122, 97129, 97136, - 97143, 97150, 97157, 97166, 97173, 97180, 97187, 97194, 97203, 97210, - 97217, 97224, 97232, 97241, 0, 0, 97250, 97254, 97258, 97263, 97268, - 97273, 97278, 97282, 97287, 97292, 97297, 97302, 97307, 97312, 97316, - 97321, 97326, 97331, 97336, 97340, 97345, 97350, 97354, 97359, 97364, - 97369, 97374, 97379, 97384, 0, 0, 0, 97389, 97393, 97398, 97403, 97407, - 97412, 97416, 97421, 97426, 97431, 97436, 97441, 97445, 97450, 97455, - 97460, 97465, 97470, 97475, 97479, 97484, 97489, 97494, 97499, 97504, - 97509, 97513, 97517, 97522, 97527, 97532, 97537, 97542, 97547, 97552, - 97557, 97562, 97567, 97572, 97577, 97582, 97587, 97592, 97597, 97602, - 97607, 97612, 97617, 97622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 97627, 97633, 97638, 97643, 97648, 97653, 97658, 97663, 97668, 97673, - 97678, 97684, 97690, 97696, 97702, 97708, 97714, 97720, 97726, 97732, - 97739, 97746, 97753, 97761, 97769, 97777, 97785, 97793, 0, 0, 0, 0, - 97801, 97805, 97810, 97815, 97820, 97824, 97829, 97834, 97839, 97844, - 97848, 97852, 97857, 97862, 97867, 97872, 97876, 97881, 97886, 97891, - 97896, 97901, 97906, 97910, 97915, 97920, 97925, 97930, 97935, 97940, - 97945, 97950, 97955, 97960, 97965, 97971, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 97977, 97982, 97989, 97996, 98001, 98006, 98011, 98016, 98021, 98026, - 98031, 98036, 98041, 98046, 98051, 98056, 98061, 98066, 98071, 98076, - 98081, 98086, 98091, 98096, 98101, 98106, 98111, 98116, 98121, 98126, 0, - 0, 0, 0, 0, 98133, 98139, 98145, 98151, 98157, 98162, 98168, 98174, - 98180, 98186, 98191, 98197, 98203, 98209, 98215, 98221, 98227, 98233, - 98239, 98245, 98250, 98256, 98262, 98268, 98274, 98280, 98285, 98291, - 98297, 98302, 98308, 98314, 98320, 98326, 98332, 98338, 98344, 98349, - 98355, 98362, 98369, 98376, 98383, 0, 0, 0, 0, 0, 98390, 98395, 98400, - 98405, 98410, 98415, 98420, 98425, 98430, 98435, 98440, 98445, 98450, - 98455, 98460, 98465, 98470, 98475, 98480, 98485, 98490, 98495, 98500, - 98505, 98510, 98515, 98520, 98524, 98528, 98532, 0, 98537, 98543, 98548, - 98553, 98558, 98563, 98569, 98575, 98581, 98587, 98593, 98599, 98605, - 98611, 98617, 98623, 98629, 98635, 98641, 98646, 98652, 98658, 98663, - 98669, 98674, 98680, 98686, 98691, 98697, 98703, 98708, 98714, 98719, - 98724, 98730, 98736, 98742, 0, 0, 0, 0, 98747, 98753, 98759, 98765, - 98771, 98777, 98783, 98789, 98795, 98802, 98807, 98812, 98818, 98824, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83702, 83707, 83712, 83717, 83722, + 83727, 83732, 83737, 83742, 83747, 83752, 83757, 83762, 83767, 83772, + 83777, 83782, 83787, 83792, 83797, 83802, 83807, 83812, 0, 0, 0, 0, + 83817, 83821, 83825, 83829, 83833, 83837, 83841, 83845, 83849, 83853, + 83857, 83861, 83865, 83869, 83873, 83877, 83881, 83885, 83889, 83893, + 83897, 83901, 83905, 83909, 83913, 83917, 83921, 83925, 83929, 83933, + 83937, 83941, 83945, 83949, 83953, 83957, 83961, 83965, 83969, 83973, + 83977, 83981, 83985, 83989, 83993, 83997, 84001, 84005, 84009, 0, 0, 0, + 0, 84013, 84017, 84021, 84025, 84029, 84033, 84037, 84041, 84045, 84049, + 84053, 84057, 84061, 84065, 84069, 84073, 84077, 84081, 84085, 84089, + 84093, 84097, 84101, 84105, 84109, 84113, 84117, 84121, 84125, 84129, + 84133, 84137, 84141, 84145, 84149, 84153, 84157, 84161, 84165, 84169, + 84173, 84177, 84181, 84185, 84189, 84193, 84197, 84201, 84205, 84209, + 84213, 84217, 84221, 84225, 84229, 84233, 84237, 84241, 84245, 84249, + 84253, 84257, 84261, 84265, 84269, 84273, 84277, 84281, 84285, 84289, + 84293, 84297, 84301, 84305, 84309, 84313, 84317, 84321, 84325, 84329, + 84333, 84337, 84341, 84345, 84349, 84353, 84357, 84361, 84365, 84369, + 84373, 84377, 84381, 84385, 84389, 84393, 84397, 84401, 84405, 84409, + 84413, 84417, 84421, 84425, 84429, 84433, 84437, 84441, 84445, 84449, + 84453, 84457, 84461, 84465, 84469, 84473, 84477, 84481, 84485, 84489, + 84493, 84497, 84501, 84505, 84509, 84513, 84517, 84521, 84525, 84529, + 84533, 84537, 84541, 84545, 84549, 84553, 84557, 84561, 84565, 84569, + 84573, 84577, 84581, 84585, 84589, 84593, 84597, 84601, 84605, 84609, + 84613, 84617, 84621, 84625, 84629, 84633, 84637, 84641, 84645, 84649, + 84653, 84657, 84661, 84665, 84669, 84673, 84677, 84681, 84685, 84689, + 84693, 84697, 84701, 84705, 84709, 84713, 84717, 84721, 84725, 84729, + 84733, 84737, 84741, 84745, 84749, 84753, 84757, 84761, 84765, 84769, + 84773, 84777, 84781, 84785, 84789, 84793, 84797, 84801, 84805, 84809, + 84813, 84817, 84821, 84825, 84829, 84833, 84837, 84841, 84845, 84849, + 84853, 84857, 84861, 84865, 84869, 84873, 84877, 84881, 84885, 84889, + 84893, 84897, 84901, 84905, 84909, 84913, 84917, 84921, 84925, 84929, + 84933, 84937, 84941, 84945, 84949, 84953, 84957, 84961, 84965, 84969, + 84973, 84977, 84981, 84985, 84989, 84993, 84997, 85001, 85005, 85009, + 85013, 85017, 85021, 85025, 85029, 85033, 85037, 85041, 85045, 85049, + 85053, 85057, 85061, 85065, 85069, 85073, 85077, 85081, 85085, 85089, + 85093, 85097, 85101, 85105, 85109, 85113, 85117, 85121, 85125, 85129, + 85133, 85137, 85141, 85145, 85149, 85153, 85157, 85161, 85165, 85169, + 85173, 85177, 85181, 85185, 85189, 85193, 85197, 85201, 85205, 85209, + 85213, 85217, 85221, 85225, 85229, 85233, 85237, 85241, 85245, 85249, + 85253, 85257, 85261, 85265, 85269, 85273, 85277, 85281, 85285, 85289, + 85293, 85297, 85301, 85305, 85309, 85313, 85317, 85321, 85325, 85329, + 85333, 85337, 85341, 85345, 85349, 85353, 85357, 85361, 85365, 85369, + 85373, 85377, 85381, 85385, 85389, 85393, 85397, 85401, 85405, 85409, + 85413, 85417, 85421, 85425, 85429, 85433, 85437, 85441, 85445, 85449, + 85453, 85457, 85461, 85465, 85469, 85473, 0, 0, 85477, 85481, 85485, + 85489, 85493, 85497, 85501, 85505, 85509, 85513, 85517, 85521, 85525, + 85529, 85533, 85537, 85541, 85545, 85549, 85553, 85557, 85561, 85565, + 85569, 85573, 85577, 85581, 85585, 85589, 85593, 85597, 85601, 85605, + 85609, 85613, 85617, 85621, 85625, 85629, 85633, 85637, 85641, 85645, + 85649, 85653, 85657, 85661, 85665, 85669, 85673, 85677, 85681, 85685, + 85689, 85693, 85697, 85701, 85705, 85709, 85713, 85717, 85721, 85725, + 85729, 85733, 85737, 85741, 85745, 85749, 85753, 85757, 85761, 85765, + 85769, 85773, 85777, 85781, 85785, 85789, 85793, 85797, 85801, 85805, + 85809, 85813, 85817, 85821, 85825, 85829, 85833, 85837, 85841, 85845, + 85849, 85853, 85857, 85861, 85865, 85869, 85873, 85877, 85881, 85885, + 85889, 85893, 85897, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85901, + 85906, 85911, 85916, 85921, 85926, 85934, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 85939, 85947, 85955, 85963, 85971, 0, 0, 0, 0, 0, 85979, 85986, + 85993, 86003, 86009, 86015, 86021, 86027, 86033, 86039, 86046, 86052, + 86058, 86064, 86073, 86082, 86094, 86106, 86112, 86118, 86124, 86131, + 86138, 86145, 86152, 86159, 0, 86166, 86173, 86180, 86188, 86195, 0, + 86202, 0, 86209, 86216, 0, 86223, 86231, 0, 86238, 86245, 86252, 86259, + 86266, 86273, 86280, 86287, 86294, 86301, 86306, 86313, 86320, 86326, + 86332, 86338, 86345, 86351, 86357, 86363, 86370, 86376, 86382, 86388, + 86395, 86401, 86407, 86413, 86420, 86426, 86432, 86438, 86445, 86451, + 86457, 86463, 86470, 86476, 86482, 86488, 86495, 86501, 86507, 86513, + 86520, 86526, 86532, 86538, 86545, 86551, 86557, 86563, 86570, 86576, + 86582, 86588, 86595, 86601, 86607, 86613, 86620, 86626, 86632, 86638, + 86644, 86650, 86656, 86662, 86668, 86674, 86680, 86686, 86692, 86698, + 86704, 86710, 86717, 86723, 86729, 86735, 86742, 86748, 86754, 86760, + 86767, 86773, 86779, 86785, 86792, 86800, 86808, 86814, 86820, 86826, + 86833, 86842, 86851, 86859, 86867, 86875, 86884, 86892, 86900, 86908, + 86917, 86924, 86931, 86942, 86953, 86957, 86961, 86966, 86971, 86976, + 86981, 86990, 86999, 87005, 87011, 87018, 87025, 87032, 87036, 87042, + 87048, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87053, 87059, + 87065, 87071, 87078, 87083, 87088, 87094, 87100, 87106, 87112, 87121, + 87127, 87133, 87141, 87149, 87157, 87165, 87171, 87177, 87183, 87190, + 87203, 87217, 87228, 87239, 87251, 87263, 87275, 87287, 87298, 87309, + 87321, 87333, 87345, 87357, 87369, 87381, 87393, 87410, 87427, 87444, + 87451, 87458, 87465, 87473, 87485, 87496, 87507, 87520, 87531, 87540, + 87548, 87557, 87565, 87575, 87583, 87592, 87600, 87609, 87617, 87627, + 87635, 87644, 87652, 87662, 87670, 87678, 87686, 87694, 87701, 87710, + 87718, 87726, 87735, 87743, 87752, 87760, 87768, 87776, 87785, 87793, + 87802, 87810, 87818, 87826, 87834, 87843, 87851, 87860, 87868, 87877, + 87885, 87894, 87902, 87912, 87920, 87928, 87936, 87946, 87954, 87962, + 87971, 87979, 87988, 87997, 88005, 88015, 88023, 88032, 88040, 88049, + 88057, 88067, 88075, 88083, 88090, 88098, 88105, 88114, 88121, 88130, + 88138, 88147, 88155, 88165, 88173, 88182, 88190, 88200, 88208, 88216, + 88223, 88231, 88238, 88247, 88254, 88264, 88274, 88285, 88294, 88303, + 88312, 88321, 88330, 88340, 88352, 88364, 88375, 88387, 88400, 88411, + 88420, 88429, 88437, 88446, 88456, 88464, 88473, 88482, 88490, 88499, + 88509, 88517, 88526, 88535, 88543, 88552, 88562, 88570, 88580, 88588, + 88598, 88606, 88614, 88623, 88631, 88641, 88649, 88657, 88667, 88675, + 88682, 88689, 88698, 88707, 88715, 88724, 88734, 88742, 88753, 88761, + 88769, 88776, 88784, 88793, 88800, 88812, 88823, 88835, 88846, 88858, + 88867, 88875, 88884, 88892, 88901, 88910, 88918, 88927, 88935, 88944, + 88952, 88960, 88968, 88976, 88983, 88992, 89000, 89009, 89017, 89026, + 89034, 89042, 89051, 89059, 89068, 89076, 89085, 89093, 89101, 89109, + 89118, 89126, 89135, 89143, 89152, 89160, 89169, 89177, 89185, 89193, + 89202, 89210, 89219, 89228, 89236, 89245, 89253, 89262, 89270, 89279, + 89287, 89294, 89302, 89309, 89318, 89326, 89335, 89343, 89352, 89361, + 89369, 89379, 89387, 89394, 89402, 89409, 89417, 89429, 89442, 89451, + 89461, 89470, 89480, 89489, 89499, 89508, 89518, 89527, 89537, 89547, + 89556, 89565, 89574, 89584, 89592, 89601, 89611, 89621, 89631, 89641, + 89649, 89659, 89667, 89677, 89685, 89695, 89703, 89713, 89721, 89730, + 89737, 89747, 89755, 89765, 89773, 89783, 89791, 89801, 89809, 89818, + 89826, 89835, 89843, 89852, 89861, 89870, 89879, 89889, 89897, 89907, + 89915, 89925, 89933, 89943, 89951, 89961, 89969, 89978, 89985, 89995, + 90003, 90013, 90021, 90031, 90039, 90049, 90057, 90066, 90074, 90083, + 90091, 90100, 90109, 90118, 90127, 90136, 90144, 90153, 90161, 90170, + 90179, 90187, 90197, 90206, 90216, 90226, 90235, 90245, 90254, 90263, + 90271, 90279, 90284, 90289, 90295, 90303, 90311, 90319, 90327, 90335, + 90343, 90349, 90355, 90361, 90369, 90375, 90385, 90391, 90397, 90403, + 90414, 90425, 90436, 90446, 90457, 90468, 90478, 90489, 90499, 90509, + 90518, 90529, 90540, 90551, 90564, 90574, 90584, 90595, 90605, 90615, + 90625, 90635, 90645, 90655, 90665, 90676, 90687, 90698, 90708, 90718, + 90730, 90741, 90752, 90762, 90772, 90782, 90792, 90803, 90813, 90823, + 90835, 90845, 90855, 90867, 90878, 90889, 90899, 90909, 90919, 90929, + 90941, 90953, 90965, 90976, 90987, 90997, 91007, 91017, 91026, 91035, + 91045, 91055, 91066, 0, 0, 91076, 91087, 91098, 91108, 91118, 91130, + 91141, 91152, 91165, 91175, 91187, 91196, 91205, 91216, 91227, 91240, + 91251, 91264, 91274, 91286, 91296, 91308, 91320, 91333, 91343, 91353, + 91363, 91374, 91384, 91393, 91403, 91412, 91421, 91431, 91441, 91451, + 91461, 91471, 91481, 91492, 91502, 91513, 91523, 91534, 91545, 91555, + 91565, 91575, 91585, 91595, 91605, 91616, 91626, 91637, 0, 0, 0, 0, 0, 0, + 0, 91648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91654, 91669, 91684, 91690, 91696, + 91702, 91708, 91714, 91720, 91726, 91732, 91740, 91744, 91747, 91755, + 91763, 91771, 91774, 91777, 91780, 91783, 91786, 91789, 91792, 91795, + 91798, 91801, 91804, 91807, 91810, 91813, 91816, 91819, 91827, 91836, + 91847, 91855, 91863, 91872, 91881, 91893, 91905, 0, 0, 0, 0, 0, 0, 91915, + 91920, 91925, 91932, 91939, 91945, 91951, 91956, 91961, 91966, 91972, + 91978, 91984, 91990, 91996, 92003, 92010, 92020, 92030, 92040, 92049, + 92060, 92069, 92078, 92089, 92100, 92113, 92126, 92138, 92150, 92162, + 92174, 92185, 92196, 92207, 92218, 92230, 92242, 92246, 92251, 92261, + 92271, 92275, 92279, 92283, 92288, 92293, 92298, 92303, 92306, 92310, 0, + 92315, 92318, 92321, 92325, 92329, 92334, 92338, 92342, 92348, 92354, + 92362, 92370, 92373, 92376, 92379, 92382, 92385, 92389, 92393, 0, 92397, + 92402, 92406, 92410, 0, 0, 0, 0, 92415, 92420, 92427, 92432, 92437, 0, + 92442, 92447, 92453, 92458, 92464, 92469, 92475, 92480, 92486, 92491, + 92497, 92503, 92512, 92521, 92530, 92539, 92549, 92559, 92569, 92579, + 92588, 92597, 92606, 92616, 92621, 92626, 92632, 92638, 92644, 92651, + 92659, 92667, 92673, 92679, 92685, 92692, 92698, 92704, 92710, 92717, + 92723, 92729, 92735, 92742, 92747, 92752, 92757, 92763, 92769, 92775, + 92781, 92788, 92794, 92800, 92806, 92812, 92818, 92824, 92830, 92836, + 92842, 92848, 92854, 92861, 92867, 92873, 92879, 92886, 92892, 92898, + 92904, 92911, 92917, 92923, 92929, 92936, 92942, 92948, 92954, 92961, + 92967, 92973, 92979, 92986, 92992, 92998, 93004, 93011, 93017, 93023, + 93029, 93036, 93042, 93048, 93054, 93061, 93067, 93073, 93079, 93086, + 93092, 93098, 93104, 93111, 93117, 93123, 93129, 93136, 93141, 93146, + 93151, 93157, 93163, 93169, 93175, 93182, 93188, 93194, 93200, 93207, + 93213, 93219, 93226, 93233, 93238, 93243, 93248, 93254, 93266, 93278, + 93290, 93302, 93315, 93328, 93336, 0, 0, 93344, 0, 93352, 93357, 93362, + 93366, 93371, 93376, 93380, 93384, 93389, 93394, 93398, 93402, 93406, + 93410, 93416, 93420, 93425, 93429, 93433, 93437, 93441, 93445, 93449, + 93453, 93457, 93461, 93465, 93469, 93474, 93479, 93484, 93489, 93495, + 93501, 93508, 93515, 93522, 93528, 93535, 93542, 93549, 93555, 93562, + 93569, 93575, 93582, 93589, 93595, 93602, 93609, 93615, 93622, 93629, + 93635, 93642, 93649, 93656, 93663, 93670, 93676, 93682, 93688, 93694, + 93699, 93705, 93711, 93718, 93725, 93732, 93738, 93745, 93752, 93759, + 93765, 93772, 93779, 93785, 93792, 93799, 93805, 93812, 93819, 93825, + 93832, 93839, 93845, 93852, 93859, 93866, 93873, 93880, 93887, 93892, + 93899, 93903, 93909, 93915, 93921, 93927, 93933, 93937, 93942, 93947, + 93952, 93957, 93962, 93967, 93972, 93977, 93983, 93989, 93995, 94003, + 94007, 94011, 94015, 94019, 94023, 94027, 94032, 94037, 94042, 94047, + 94051, 94056, 94061, 94066, 94071, 94076, 94081, 94086, 94091, 94095, + 94099, 94104, 94109, 94114, 94119, 94123, 94128, 94133, 94138, 94143, + 94147, 94152, 94157, 94162, 94167, 94171, 94176, 94181, 94185, 94190, + 94195, 94200, 94205, 94210, 94215, 94222, 94229, 94233, 94238, 94243, + 94248, 94253, 94258, 94263, 94268, 94273, 94278, 94283, 94288, 94293, + 94298, 94303, 94308, 94313, 94318, 94323, 94328, 94333, 94338, 94343, + 94348, 94353, 94358, 94363, 94368, 94373, 94378, 0, 0, 0, 94383, 94387, + 94392, 94396, 94401, 94406, 0, 0, 94410, 94415, 94420, 94424, 94429, + 94434, 0, 0, 94439, 94444, 94448, 94453, 94458, 94463, 0, 0, 94468, + 94473, 94478, 0, 0, 0, 94482, 94487, 94492, 94497, 94501, 94506, 94511, + 0, 94516, 94522, 94525, 94529, 94532, 94536, 94540, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94544, 94550, 94556, 94562, 94568, 0, 0, 94572, 94578, 94584, + 94590, 94596, 94602, 94609, 94616, 94623, 94630, 94637, 94644, 0, 94651, + 94658, 94665, 94671, 94678, 94685, 94692, 94699, 94705, 94712, 94719, + 94726, 94733, 94739, 94746, 94753, 94760, 94767, 94773, 94780, 94787, + 94794, 94801, 94808, 94815, 94822, 0, 94829, 94835, 94842, 94849, 94856, + 94863, 94869, 94876, 94883, 94890, 94897, 94904, 94911, 94918, 94924, + 94931, 94938, 94945, 94952, 0, 94959, 94966, 0, 94973, 94980, 94987, + 94994, 95001, 95008, 95015, 95022, 95029, 95036, 95043, 95050, 95057, + 95064, 95071, 0, 0, 95077, 95082, 95087, 95092, 95097, 95102, 95107, + 95112, 95117, 95122, 95127, 95132, 95137, 95142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98830, 98836, 98842, - 98848, 98855, 98861, 98868, 98875, 98882, 98889, 98897, 98904, 98912, - 98918, 98924, 98930, 98936, 98942, 98948, 98954, 98960, 98966, 98972, - 98978, 98984, 98990, 98996, 99002, 99008, 99014, 99020, 99026, 99032, - 99038, 99044, 99050, 99056, 99062, 99068, 99074, 99080, 99086, 99092, - 99098, 99105, 99111, 99118, 99125, 99132, 99139, 99147, 99154, 99162, - 99168, 99174, 99180, 99186, 99192, 99198, 99204, 99210, 99216, 99222, - 99228, 99234, 99240, 99246, 99252, 99258, 99264, 99270, 99276, 99282, - 99288, 99294, 99300, 99306, 99312, 99318, 99324, 99330, 99335, 99340, - 99345, 99350, 99355, 99360, 99365, 99370, 99375, 99380, 99385, 99390, - 99395, 99400, 99405, 99410, 99415, 99420, 99425, 99430, 99435, 99440, - 99445, 99450, 99455, 99460, 99465, 99470, 99475, 99480, 99485, 99490, - 99495, 99500, 99505, 99510, 99515, 99520, 99525, 99530, 99535, 99540, - 99545, 99550, 99555, 99560, 99565, 99570, 99575, 99580, 99585, 99590, - 99595, 99600, 99605, 99609, 99613, 99618, 99623, 99628, 99633, 99638, - 99643, 99648, 99653, 99658, 99663, 99668, 99672, 99676, 99680, 99684, - 99688, 99692, 99696, 99701, 99706, 0, 0, 99711, 99716, 99720, 99724, - 99728, 99732, 99736, 99740, 99744, 99748, 0, 0, 0, 0, 0, 0, 99752, 99757, - 99763, 99769, 99775, 99781, 99787, 99793, 99798, 99804, 99809, 99815, - 99820, 99825, 99831, 99837, 99842, 99847, 99852, 99857, 99863, 99868, - 99874, 99879, 99885, 99891, 99897, 99903, 99909, 99915, 99921, 99926, - 99932, 99938, 99944, 99950, 0, 0, 0, 0, 99956, 99961, 99967, 99973, - 99979, 99985, 99991, 99997, 100002, 100008, 100013, 100019, 100024, - 100029, 100035, 100041, 100046, 100051, 100056, 100061, 100067, 100072, - 100078, 100083, 100089, 100095, 100101, 100107, 100113, 100119, 100125, - 100130, 100136, 100142, 100148, 100154, 0, 0, 0, 0, 100160, 100164, - 100169, 100174, 100179, 100184, 100189, 100194, 100199, 100203, 100208, - 100213, 100218, 100223, 100227, 100232, 100237, 100242, 100247, 100252, - 100257, 100261, 100266, 100270, 100275, 100280, 100285, 100290, 100295, - 100300, 100305, 100310, 100314, 100319, 100324, 100329, 100334, 100339, - 100344, 100349, 0, 0, 0, 0, 0, 0, 0, 0, 100354, 100361, 100368, 100375, - 100382, 100389, 100396, 100403, 100410, 100417, 100424, 100431, 100438, - 100445, 100452, 100459, 100466, 100473, 100480, 100487, 100494, 100501, - 100508, 100515, 100522, 100529, 100536, 100543, 100550, 100557, 100564, - 100571, 100578, 100585, 100592, 100599, 100606, 100613, 100620, 100627, - 100634, 100641, 100648, 100655, 100662, 100669, 100676, 100683, 100690, - 100697, 100704, 100711, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100718, 100725, - 100730, 100736, 100742, 100748, 100754, 100760, 100766, 100772, 100777, - 100783, 0, 100789, 100794, 100800, 100805, 100811, 100817, 100822, - 100827, 100833, 100839, 100845, 100851, 100856, 100862, 100868, 0, - 100874, 100880, 100886, 100892, 100898, 100903, 100909, 0, 100915, - 100921, 0, 100927, 100932, 100938, 100944, 100950, 100956, 100962, - 100968, 100974, 100979, 100985, 0, 100991, 100996, 101002, 101007, - 101013, 101019, 101024, 101029, 101035, 101041, 101047, 101053, 101058, - 101064, 101070, 0, 101076, 101082, 101088, 101094, 101100, 101105, - 101111, 0, 101117, 101123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 95147, 95154, 95161, 95168, 95175, 95182, 95189, 95196, 95203, + 95210, 95217, 95224, 95231, 95238, 95245, 95252, 95259, 95266, 95273, + 95280, 95288, 95296, 95303, 95310, 95315, 95323, 95331, 95338, 95345, + 95350, 95357, 95362, 95367, 95374, 95379, 95384, 95389, 95397, 95402, + 95407, 95414, 95419, 95424, 95431, 95438, 95443, 95448, 95453, 95458, + 95463, 95468, 95473, 95478, 95483, 95490, 95495, 95502, 95507, 95512, + 95517, 95522, 95527, 95532, 95537, 95542, 95547, 95552, 95557, 95564, + 95571, 95578, 95585, 95591, 95596, 95603, 95608, 95613, 95622, 95629, + 95638, 95645, 95650, 95655, 95663, 95668, 95673, 95678, 95683, 95688, + 95695, 95700, 95705, 95710, 95715, 95720, 95727, 95734, 95741, 95748, + 95755, 95762, 95769, 95776, 95783, 95790, 95797, 95804, 95811, 95818, + 95825, 95832, 95839, 95846, 95853, 95860, 95867, 95874, 95881, 95888, + 95895, 95902, 95909, 95916, 0, 0, 0, 0, 0, 95923, 95931, 95939, 0, 0, 0, + 0, 95944, 95948, 95952, 95956, 95960, 95964, 95968, 95972, 95976, 95980, + 95985, 95990, 95995, 96000, 96005, 96010, 96015, 96020, 96025, 96031, + 96037, 96043, 96050, 96057, 96064, 96071, 96078, 96085, 96090, 96095, + 96100, 96106, 96112, 96118, 96124, 96130, 96136, 96142, 96148, 96154, + 96160, 96166, 96172, 96178, 96184, 0, 0, 0, 96190, 96198, 96206, 96214, + 96222, 96230, 96240, 96250, 96258, 96266, 96274, 96282, 96290, 96296, + 96303, 96312, 96320, 96328, 96337, 96346, 96355, 96365, 96376, 96386, + 96397, 96406, 96415, 96424, 96434, 96445, 96455, 96466, 96477, 96486, + 96494, 96500, 96506, 96512, 96518, 96526, 96534, 96540, 96547, 96557, + 96564, 96571, 96578, 96585, 96592, 96602, 96609, 96616, 96624, 96632, + 96641, 96650, 96659, 96668, 96677, 96684, 96692, 96701, 96710, 96714, + 96721, 96726, 96731, 96735, 96739, 96743, 96747, 96752, 96757, 96763, + 96769, 96773, 96779, 96783, 96787, 96791, 96795, 96799, 96803, 96809, + 96813, 96818, 96822, 96826, 0, 96829, 96834, 96839, 96844, 96849, 96856, + 96861, 96866, 96871, 96876, 96881, 96886, 96891, 0, 0, 0, 96894, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96900, 96907, + 96916, 96925, 96932, 96939, 96946, 96953, 96960, 96967, 96973, 96980, + 96987, 96994, 97001, 97008, 97015, 97022, 97029, 97038, 97045, 97052, + 97059, 97066, 97073, 97080, 97087, 97094, 97103, 97110, 97117, 97124, + 97131, 97138, 97145, 97154, 97161, 97168, 97175, 97182, 97191, 97198, + 97205, 97212, 97220, 97229, 0, 0, 97238, 97242, 97246, 97251, 97256, + 97261, 97266, 97270, 97275, 97280, 97285, 97290, 97295, 97300, 97304, + 97309, 97314, 97319, 97324, 97328, 97333, 97338, 97342, 97347, 97352, + 97357, 97362, 97367, 97372, 0, 0, 0, 97377, 97381, 97386, 97391, 97395, + 97400, 97404, 97409, 97414, 97419, 97424, 97429, 97433, 97438, 97443, + 97448, 97453, 97458, 97463, 97467, 97472, 97477, 97482, 97487, 97492, + 97497, 97501, 97505, 97510, 97515, 97520, 97525, 97530, 97535, 97540, + 97545, 97550, 97555, 97560, 97565, 97570, 97575, 97580, 97585, 97590, + 97595, 97600, 97605, 97610, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 97615, 97621, 97626, 97631, 97636, 97641, 97646, 97651, 97656, 97661, + 97666, 97672, 97678, 97684, 97690, 97696, 97702, 97708, 97714, 97720, + 97727, 97734, 97741, 97749, 97757, 97765, 97773, 97781, 0, 0, 0, 0, + 97789, 97793, 97798, 97803, 97808, 97812, 97817, 97822, 97827, 97832, + 97836, 97840, 97845, 97850, 97855, 97860, 97864, 97869, 97874, 97879, + 97884, 97889, 97894, 97898, 97903, 97908, 97913, 97918, 97923, 97928, + 97933, 97938, 97943, 97948, 97953, 97959, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 97965, 97970, 97977, 97984, 97989, 97994, 97999, 98004, 98009, 98014, + 98019, 98024, 98029, 98034, 98039, 98044, 98049, 98054, 98059, 98064, + 98069, 98074, 98079, 98084, 98089, 98094, 98099, 98104, 98109, 98114, 0, + 0, 0, 0, 0, 98121, 98127, 98133, 98139, 98145, 98150, 98156, 98162, + 98168, 98174, 98179, 98185, 98191, 98197, 98203, 98209, 98215, 98221, + 98227, 98233, 98238, 98244, 98250, 98256, 98262, 98268, 98273, 98279, + 98285, 98290, 98296, 98302, 98308, 98314, 98320, 98326, 98332, 98337, + 98343, 98350, 98357, 98364, 98371, 0, 0, 0, 0, 0, 98378, 98383, 98388, + 98393, 98398, 98403, 98408, 98413, 98418, 98423, 98428, 98433, 98438, + 98443, 98448, 98453, 98458, 98463, 98468, 98473, 98478, 98483, 98488, + 98493, 98498, 98503, 98508, 98512, 98516, 98520, 0, 98525, 98531, 98536, + 98541, 98546, 98551, 98557, 98563, 98569, 98575, 98581, 98587, 98593, + 98599, 98605, 98611, 98617, 98623, 98629, 98634, 98640, 98646, 98651, + 98657, 98662, 98668, 98674, 98679, 98685, 98691, 98696, 98702, 98707, + 98712, 98718, 98724, 98730, 0, 0, 0, 0, 98735, 98741, 98747, 98753, + 98759, 98765, 98771, 98777, 98783, 98790, 98795, 98800, 98806, 98812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 101129, 101134, 101139, 101144, 101149, 101154, 101159, - 101164, 101169, 101174, 101179, 101184, 101189, 101194, 101199, 101204, - 101209, 101214, 101219, 101224, 101229, 101234, 101239, 101244, 101249, - 101254, 101259, 101264, 101269, 101274, 101279, 101284, 101289, 101294, - 101299, 101304, 101309, 101314, 101319, 101324, 101329, 101334, 101339, - 101344, 101349, 101354, 101359, 101364, 101369, 101374, 101379, 101384, - 101389, 101394, 101399, 101404, 101409, 101414, 101419, 101424, 101429, - 101434, 101439, 101444, 101449, 101454, 101459, 101464, 101469, 101474, - 101479, 101484, 101489, 101494, 101499, 101504, 101509, 101514, 101519, - 101524, 101529, 101534, 101539, 101544, 101549, 101554, 101559, 101564, - 101569, 101574, 101579, 101584, 101589, 101594, 101599, 101604, 101609, - 101614, 101619, 101624, 101629, 101634, 101639, 101644, 101649, 101654, - 101659, 101664, 101669, 101674, 101679, 101684, 101689, 101694, 101699, - 101704, 101709, 101714, 101719, 101724, 101729, 101734, 101739, 101744, - 101749, 101754, 101759, 101764, 101769, 101774, 101779, 101784, 101789, - 101794, 101799, 101804, 101809, 101814, 101819, 101824, 101829, 101834, - 101839, 101844, 101849, 101854, 101859, 101864, 101869, 101874, 101879, - 101884, 101889, 101894, 101899, 101904, 101909, 101914, 101919, 101924, - 101929, 101934, 101939, 101944, 101949, 101954, 101959, 101964, 101969, - 101974, 101979, 101984, 101989, 101994, 101999, 102004, 102009, 102014, - 102019, 102024, 102029, 102034, 102039, 102044, 102049, 102054, 102059, - 102064, 102069, 102074, 102079, 102084, 102089, 102094, 102099, 102104, - 102109, 102114, 102119, 102124, 102129, 102134, 102139, 102144, 102149, - 102154, 102159, 102164, 102169, 102174, 102179, 102184, 102189, 102194, - 102199, 102204, 102209, 102214, 102219, 102224, 102229, 102234, 102239, - 102244, 102249, 102254, 102259, 102264, 102269, 102274, 102279, 102284, - 102289, 102294, 102299, 102304, 102309, 102314, 102319, 102324, 102329, - 102334, 102339, 102344, 102349, 102354, 102359, 102364, 102369, 102374, - 102379, 102384, 102389, 102394, 102399, 102404, 102409, 102414, 102419, - 102424, 102429, 102434, 102439, 102444, 102449, 102454, 102459, 102464, - 102469, 102474, 102479, 102484, 102489, 102494, 102499, 102504, 102509, - 102514, 102519, 102524, 102529, 102534, 102539, 102544, 102549, 102554, - 102559, 102564, 102569, 102574, 102579, 102584, 102589, 102594, 102599, - 102604, 102609, 102614, 102619, 102624, 102629, 102634, 102639, 102644, - 102649, 102654, 102659, 102664, 102669, 102674, 102679, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 102684, 102690, 102697, 102704, 102710, 102717, 102724, 102731, - 102738, 102744, 102751, 102758, 102765, 102772, 102779, 102786, 102793, - 102800, 102807, 102814, 102821, 102828, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 102835, 102840, 102845, 102850, 102855, 102860, 102865, 102870, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102875, - 102881, 102889, 102898, 102903, 102909, 0, 102915, 102922, 102933, - 102943, 102950, 102958, 102965, 102976, 102982, 102992, 102999, 103006, - 103012, 103019, 103027, 103034, 103040, 103047, 103059, 103066, 103073, - 103081, 103090, 103103, 103108, 103117, 103123, 103132, 103138, 103144, - 103151, 103156, 103166, 103180, 103188, 103196, 103201, 103211, 103218, - 103229, 103236, 103245, 0, 103253, 103259, 103267, 103277, 103283, - 103289, 103295, 103301, 103311, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98818, 98824, 98830, + 98836, 98843, 98849, 98856, 98863, 98870, 98877, 98885, 98892, 98900, + 98906, 98912, 98918, 98924, 98930, 98936, 98942, 98948, 98954, 98960, + 98966, 98972, 98978, 98984, 98990, 98996, 99002, 99008, 99014, 99020, + 99026, 99032, 99038, 99044, 99050, 99056, 99062, 99068, 99074, 99080, + 99086, 99093, 99099, 99106, 99113, 99120, 99127, 99135, 99142, 99150, + 99156, 99162, 99168, 99174, 99180, 99186, 99192, 99198, 99204, 99210, + 99216, 99222, 99228, 99234, 99240, 99246, 99252, 99258, 99264, 99270, + 99276, 99282, 99288, 99294, 99300, 99306, 99312, 99318, 99323, 99328, + 99333, 99338, 99343, 99348, 99353, 99358, 99363, 99368, 99373, 99378, + 99383, 99388, 99393, 99398, 99403, 99408, 99413, 99418, 99423, 99428, + 99433, 99438, 99443, 99448, 99453, 99458, 99463, 99468, 99473, 99478, + 99483, 99488, 99493, 99498, 99503, 99508, 99513, 99518, 99523, 99528, + 99533, 99538, 99543, 99548, 99553, 99558, 99563, 99568, 99573, 99578, + 99583, 99588, 99593, 99597, 99601, 99606, 99611, 99616, 99621, 99626, + 99631, 99636, 99641, 99646, 99651, 99656, 99660, 99664, 99668, 99672, + 99676, 99680, 99684, 99689, 99694, 0, 0, 99699, 99704, 99708, 99712, + 99716, 99720, 99724, 99728, 99732, 99736, 0, 0, 0, 0, 0, 0, 99740, 99745, + 99751, 99757, 99763, 99769, 99775, 99781, 99786, 99792, 99797, 99803, + 99808, 99813, 99819, 99825, 99830, 99835, 99840, 99845, 99851, 99856, + 99862, 99867, 99873, 99879, 99885, 99891, 99897, 99903, 99909, 99914, + 99920, 99926, 99932, 99938, 0, 0, 0, 0, 99944, 99949, 99955, 99961, + 99967, 99973, 99979, 99985, 99990, 99996, 100001, 100007, 100012, 100017, + 100023, 100029, 100034, 100039, 100044, 100049, 100055, 100060, 100066, + 100071, 100077, 100083, 100089, 100095, 100101, 100107, 100113, 100118, + 100124, 100130, 100136, 100142, 0, 0, 0, 0, 100148, 100152, 100157, + 100162, 100167, 100172, 100177, 100182, 100187, 100191, 100196, 100201, + 100206, 100211, 100215, 100220, 100225, 100230, 100235, 100240, 100245, + 100249, 100254, 100258, 100263, 100268, 100273, 100278, 100283, 100288, + 100293, 100298, 100302, 100307, 100312, 100317, 100322, 100327, 100332, + 100337, 0, 0, 0, 0, 0, 0, 0, 0, 100342, 100349, 100356, 100363, 100370, + 100377, 100384, 100391, 100398, 100405, 100412, 100419, 100426, 100433, + 100440, 100447, 100454, 100461, 100468, 100475, 100482, 100489, 100496, + 100503, 100510, 100517, 100524, 100531, 100538, 100545, 100552, 100559, + 100566, 100573, 100580, 100587, 100594, 100601, 100608, 100615, 100622, + 100629, 100636, 100643, 100650, 100657, 100664, 100671, 100678, 100685, + 100692, 100699, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100706, 100713, 100718, + 100724, 100730, 100736, 100742, 100748, 100754, 100760, 100765, 100771, + 0, 100777, 100782, 100788, 100793, 100799, 100805, 100810, 100815, + 100821, 100827, 100833, 100839, 100844, 100850, 100856, 0, 100862, + 100868, 100874, 100880, 100886, 100891, 100897, 0, 100903, 100909, 0, + 100915, 100920, 100926, 100932, 100938, 100944, 100950, 100956, 100962, + 100967, 100973, 0, 100979, 100984, 100990, 100995, 101001, 101007, + 101012, 101017, 101023, 101029, 101035, 101041, 101046, 101052, 101058, + 0, 101064, 101070, 101076, 101082, 101088, 101093, 101099, 0, 101105, + 101111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101117, + 101122, 101127, 101132, 101137, 101142, 101147, 101152, 101157, 101162, + 101167, 101172, 101177, 101182, 101187, 101192, 101197, 101202, 101207, + 101212, 101217, 101222, 101227, 101232, 101237, 101242, 101247, 101252, + 101257, 101262, 101267, 101272, 101277, 101282, 101287, 101292, 101297, + 101302, 101307, 101312, 101317, 101322, 101327, 101332, 101337, 101342, + 101347, 101352, 101357, 101362, 101367, 101372, 101377, 101382, 101387, + 101392, 101397, 101402, 101407, 101412, 101417, 101422, 101427, 101432, + 101437, 101442, 101447, 101452, 101457, 101462, 101467, 101472, 101477, + 101482, 101487, 101492, 101497, 101502, 101507, 101512, 101517, 101522, + 101527, 101532, 101537, 101542, 101547, 101552, 101557, 101562, 101567, + 101572, 101577, 101582, 101587, 101592, 101597, 101602, 101607, 101612, + 101617, 101622, 101627, 101632, 101637, 101642, 101647, 101652, 101657, + 101662, 101667, 101672, 101677, 101682, 101687, 101692, 101697, 101702, + 101707, 101712, 101717, 101722, 101727, 101732, 101737, 101742, 101747, + 101752, 101757, 101762, 101767, 101772, 101777, 101782, 101787, 101792, + 101797, 101802, 101807, 101812, 101817, 101822, 101827, 101832, 101837, + 101842, 101847, 101852, 101857, 101862, 101867, 101872, 101877, 101882, + 101887, 101892, 101897, 101902, 101907, 101912, 101917, 101922, 101927, + 101932, 101937, 101942, 101947, 101952, 101957, 101962, 101967, 101972, + 101977, 101982, 101987, 101992, 101997, 102002, 102007, 102012, 102017, + 102022, 102027, 102032, 102037, 102042, 102047, 102052, 102057, 102062, + 102067, 102072, 102077, 102082, 102087, 102092, 102097, 102102, 102107, + 102112, 102117, 102122, 102127, 102132, 102137, 102142, 102147, 102152, + 102157, 102162, 102167, 102172, 102177, 102182, 102187, 102192, 102197, + 102202, 102207, 102212, 102217, 102222, 102227, 102232, 102237, 102242, + 102247, 102252, 102257, 102262, 102267, 102272, 102277, 102282, 102287, + 102292, 102297, 102302, 102307, 102312, 102317, 102322, 102327, 102332, + 102337, 102342, 102347, 102352, 102357, 102362, 102367, 102372, 102377, + 102382, 102387, 102392, 102397, 102402, 102407, 102412, 102417, 102422, + 102427, 102432, 102437, 102442, 102447, 102452, 102457, 102462, 102467, + 102472, 102477, 102482, 102487, 102492, 102497, 102502, 102507, 102512, + 102517, 102522, 102527, 102532, 102537, 102542, 102547, 102552, 102557, + 102562, 102567, 102572, 102577, 102582, 102587, 102592, 102597, 102602, + 102607, 102612, 102617, 102622, 102627, 102632, 102637, 102642, 102647, + 102652, 102657, 102662, 102667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102672, + 102678, 102685, 102692, 102698, 102705, 102712, 102719, 102726, 102732, + 102739, 102746, 102753, 102760, 102767, 102774, 102781, 102788, 102795, + 102802, 102809, 102816, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102823, 102828, + 102833, 102838, 102843, 102848, 102853, 102858, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102863, 102869, 102877, + 102886, 102891, 102897, 0, 102903, 102910, 102921, 102931, 102938, + 102946, 102953, 102964, 102970, 102980, 102987, 102994, 103000, 103007, + 103015, 103022, 103028, 103035, 103047, 103054, 103061, 103069, 103078, + 103091, 103096, 103105, 103111, 103120, 103126, 103132, 103139, 103144, + 103154, 103168, 103176, 103184, 103189, 103199, 103206, 103217, 103224, + 103233, 0, 103241, 103247, 103255, 103265, 103271, 103277, 103283, + 103289, 103299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 103319, 103323, 103327, 103331, 103335, 103339, 0, - 0, 103344, 0, 103349, 103353, 103358, 103363, 103368, 103373, 103377, - 103382, 103387, 103392, 103397, 103401, 103406, 103411, 103416, 103421, - 103425, 103430, 103435, 103440, 103445, 103449, 103454, 103459, 103464, - 103469, 103473, 103478, 103483, 103488, 103493, 103497, 103502, 103507, - 103512, 103517, 103522, 103527, 103532, 103536, 103541, 103546, 103551, - 103556, 0, 103561, 103566, 0, 0, 0, 103571, 0, 0, 103576, 103581, 103588, - 103595, 103602, 103609, 103616, 103623, 103630, 103637, 103644, 103651, - 103658, 103665, 103672, 103679, 103686, 103693, 103700, 103707, 103714, - 103721, 103728, 0, 103735, 103742, 103748, 103754, 103760, 103767, - 103774, 103782, 103789, 103797, 103802, 103807, 103812, 103817, 103822, - 103827, 103832, 103837, 103842, 103847, 103852, 103857, 103862, 103868, - 103873, 103878, 103883, 103888, 103893, 103898, 103903, 103908, 103913, - 103919, 103925, 103929, 103933, 103937, 103941, 103945, 103950, 103955, - 103961, 103966, 103972, 103977, 103982, 103987, 103993, 103998, 104003, - 104008, 104013, 104018, 104024, 104029, 104035, 104040, 104046, 104051, - 104057, 104062, 104068, 104073, 104078, 104083, 104088, 104093, 104098, - 104103, 104109, 104114, 0, 0, 0, 0, 0, 0, 0, 0, 104119, 104123, 104127, - 104131, 104135, 104141, 104145, 104150, 104155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104161, 104166, 104171, - 104176, 104181, 104186, 104191, 104196, 104201, 104206, 104211, 104216, - 104221, 104226, 104231, 104236, 104241, 104246, 104251, 0, 104256, - 104261, 0, 0, 0, 0, 0, 104266, 104270, 104274, 104279, 104284, 104290, - 104295, 104300, 104305, 104310, 104315, 104320, 104325, 104330, 104335, - 104340, 104345, 104350, 104355, 104360, 104365, 104370, 104375, 104380, - 104385, 104390, 104395, 104400, 104404, 104409, 104414, 104420, 104424, - 0, 0, 0, 104428, 104434, 104438, 104443, 104448, 104453, 104457, 104462, - 104466, 104471, 104476, 104480, 104485, 104490, 104494, 104498, 104503, - 104508, 104512, 104517, 104522, 104527, 104532, 104537, 104542, 104547, - 104552, 0, 0, 0, 0, 0, 104557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 103307, 103311, 103315, 103319, 103323, 103327, 0, 0, 103332, 0, + 103337, 103341, 103346, 103351, 103356, 103361, 103365, 103370, 103375, + 103380, 103385, 103389, 103394, 103399, 103404, 103409, 103413, 103418, + 103423, 103428, 103433, 103437, 103442, 103447, 103452, 103457, 103461, + 103466, 103471, 103476, 103481, 103485, 103490, 103495, 103500, 103505, + 103510, 103515, 103520, 103524, 103529, 103534, 103539, 103544, 0, + 103549, 103554, 0, 0, 0, 103559, 0, 0, 103564, 103569, 103576, 103583, + 103590, 103597, 103604, 103611, 103618, 103625, 103632, 103639, 103646, + 103653, 103660, 103667, 103674, 103681, 103688, 103695, 103702, 103709, + 103716, 0, 103723, 103730, 103736, 103742, 103748, 103755, 103762, + 103770, 103777, 103785, 103790, 103795, 103800, 103805, 103810, 103815, + 103820, 103825, 103830, 103835, 103840, 103845, 103850, 103856, 103861, + 103866, 103871, 103876, 103881, 103886, 103891, 103896, 103901, 103907, + 103913, 103917, 103921, 103925, 103929, 103933, 103938, 103943, 103949, + 103954, 103960, 103965, 103970, 103975, 103981, 103986, 103991, 103996, + 104001, 104006, 104012, 104017, 104023, 104028, 104034, 104039, 104045, + 104050, 104056, 104061, 104066, 104071, 104076, 104081, 104086, 104091, + 104097, 104102, 0, 0, 0, 0, 0, 0, 0, 0, 104107, 104111, 104115, 104119, + 104123, 104129, 104133, 104138, 104143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104149, 104154, 104159, 104164, + 104169, 104174, 104179, 104184, 104189, 104194, 104199, 104204, 104209, + 104214, 104219, 104224, 104229, 104234, 104239, 0, 104244, 104249, 0, 0, + 0, 0, 0, 104254, 104258, 104262, 104267, 104272, 104278, 104283, 104288, + 104293, 104298, 104303, 104308, 104313, 104318, 104323, 104328, 104333, + 104338, 104343, 104348, 104353, 104358, 104363, 104368, 104373, 104378, + 104383, 104388, 104392, 104397, 104402, 104408, 104412, 0, 0, 0, 104416, + 104422, 104426, 104431, 104436, 104441, 104445, 104450, 104454, 104459, + 104464, 104468, 104473, 104478, 104482, 104486, 104491, 104496, 104500, + 104505, 104510, 104515, 104520, 104525, 104530, 104535, 104540, 0, 0, 0, + 0, 0, 104545, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 104562, 104567, 104572, 104577, 104582, 104587, 104593, 104599, - 104605, 104610, 104615, 104620, 104626, 104632, 104638, 104643, 104649, - 104654, 104660, 104666, 104671, 104677, 104683, 104688, 104694, 104700, - 104706, 104712, 104718, 104723, 104729, 104735, 104741, 104746, 104751, - 104756, 104761, 104766, 104772, 104778, 104783, 104788, 104793, 104799, - 104804, 104809, 104815, 104821, 104826, 104833, 104839, 104844, 104850, - 104856, 104862, 104867, 0, 0, 0, 0, 104873, 104882, 104890, 104897, - 104904, 104909, 104914, 104919, 104924, 104929, 104934, 104939, 104944, - 104949, 104955, 104961, 104967, 104973, 104979, 104985, 0, 0, 104991, - 104998, 105005, 105012, 105020, 105028, 105036, 105044, 105052, 105060, - 105066, 105072, 105078, 105085, 105092, 105099, 105106, 105113, 105120, - 105127, 105134, 105141, 105148, 105155, 105162, 105169, 105176, 105183, - 105191, 105199, 105207, 105216, 105225, 105234, 105243, 105252, 105261, - 105269, 105277, 105285, 105294, 105303, 105312, 105321, 105330, 105339, - 105348, 105352, 105357, 105362, 0, 105368, 105373, 0, 0, 0, 0, 0, 105378, - 105384, 105391, 105396, 105401, 105405, 105410, 105415, 0, 105420, - 105425, 105430, 0, 105435, 105440, 105445, 105450, 105455, 105460, - 105465, 105470, 105475, 105480, 105485, 105489, 105493, 105498, 105503, - 105508, 105512, 105516, 105520, 105524, 105529, 105534, 105539, 105543, - 105548, 105552, 105557, 105562, 105567, 0, 0, 105572, 105578, 105583, 0, - 0, 0, 0, 105588, 105592, 105596, 105600, 105604, 105608, 105613, 105618, - 105624, 105629, 0, 0, 0, 0, 0, 0, 0, 105636, 105642, 105649, 105655, - 105662, 105668, 105674, 105680, 105687, 0, 0, 0, 0, 0, 0, 0, 105693, - 105701, 105709, 105717, 105725, 105733, 105741, 105749, 105757, 105765, - 105773, 105781, 105789, 105797, 105805, 105813, 105821, 105829, 105837, - 105845, 105853, 105861, 105869, 105877, 105885, 105893, 105901, 105909, - 105917, 105925, 105932, 105940, 105948, 105955, 105962, 105969, 105976, - 105983, 105990, 105997, 106004, 106011, 106018, 106025, 106032, 106039, - 106046, 106053, 106060, 106067, 106074, 106081, 106088, 106095, 106102, - 106109, 106116, 106123, 106130, 106137, 106144, 106151, 106157, 106164, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104550, + 104555, 104560, 104565, 104570, 104575, 104581, 104587, 104593, 104598, + 104603, 104608, 104614, 104620, 104626, 104631, 104637, 104642, 104648, + 104654, 104659, 104665, 104671, 104676, 104682, 104688, 104694, 104700, + 104706, 104711, 104717, 104723, 104729, 104734, 104739, 104744, 104749, + 104754, 104760, 104766, 104771, 104776, 104781, 104787, 104792, 104797, + 104803, 104809, 104814, 104821, 104827, 104832, 104838, 104844, 104850, + 104855, 0, 0, 0, 0, 104861, 104870, 104878, 104885, 104892, 104897, + 104902, 104907, 104912, 104917, 104922, 104927, 104932, 104937, 104943, + 104949, 104955, 104961, 104967, 104973, 0, 0, 104979, 104986, 104993, + 105000, 105008, 105016, 105024, 105032, 105040, 105048, 105054, 105060, + 105066, 105073, 105080, 105087, 105094, 105101, 105108, 105115, 105122, + 105129, 105136, 105143, 105150, 105157, 105164, 105171, 105179, 105187, + 105195, 105204, 105213, 105222, 105231, 105240, 105249, 105257, 105265, + 105273, 105282, 105291, 105300, 105309, 105318, 105327, 105336, 105340, + 105345, 105350, 0, 105356, 105361, 0, 0, 0, 0, 0, 105366, 105372, 105379, + 105384, 105389, 105393, 105398, 105403, 0, 105408, 105413, 105418, 0, + 105423, 105428, 105433, 105438, 105443, 105448, 105453, 105458, 105463, + 105468, 105473, 105477, 105481, 105486, 105491, 105496, 105500, 105504, + 105508, 105512, 105517, 105522, 105527, 105531, 105536, 105540, 105545, + 105550, 105555, 0, 0, 105560, 105566, 105571, 0, 0, 0, 0, 105576, 105580, + 105584, 105588, 105592, 105596, 105601, 105606, 105612, 105617, 0, 0, 0, + 0, 0, 0, 0, 105624, 105630, 105637, 105643, 105650, 105656, 105662, + 105668, 105675, 0, 0, 0, 0, 0, 0, 0, 105681, 105689, 105697, 105705, + 105713, 105721, 105729, 105737, 105745, 105753, 105761, 105769, 105777, + 105785, 105793, 105801, 105809, 105817, 105825, 105833, 105841, 105849, + 105857, 105865, 105873, 105881, 105889, 105897, 105905, 105913, 105920, + 105928, 105936, 105943, 105950, 105957, 105964, 105971, 105978, 105985, + 105992, 105999, 106006, 106013, 106020, 106027, 106034, 106041, 106048, + 106055, 106062, 106069, 106076, 106083, 106090, 106097, 106104, 106111, + 106118, 106125, 106132, 106139, 106145, 106152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 106171, 106176, 106181, 106186, 106191, 106196, - 106201, 106206, 106211, 106216, 106221, 106226, 106231, 106236, 106241, - 106246, 106251, 106256, 106261, 106266, 106271, 106276, 106281, 106286, - 106291, 106296, 106301, 106306, 106311, 106316, 106321, 106326, 106331, - 106336, 106341, 106346, 106351, 106356, 106362, 0, 0, 0, 0, 106368, - 106372, 106376, 106381, 106386, 106392, 106398, 106404, 106414, 106423, - 106429, 106436, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106444, 106448, 106453, - 106458, 106463, 106468, 106473, 106478, 106483, 106487, 106492, 106496, - 106501, 106505, 106510, 106514, 106519, 106524, 106529, 106534, 106539, - 106544, 106549, 106554, 106559, 106564, 106569, 106574, 106579, 106584, - 106589, 106594, 106599, 106604, 106609, 106614, 106619, 106624, 106629, - 106634, 106639, 106644, 106649, 106654, 106659, 106664, 106669, 106674, - 106679, 106684, 106689, 106694, 106699, 106704, 0, 0, 0, 106709, 106714, - 106723, 106731, 106740, 106749, 106760, 106771, 106778, 106785, 106792, - 106799, 106806, 106813, 106820, 106827, 106834, 106841, 106848, 106855, - 106862, 106869, 106876, 106883, 106890, 106897, 106904, 106911, 106918, - 0, 0, 106925, 106931, 106937, 106943, 106949, 106956, 106963, 106971, - 106978, 106985, 106992, 106999, 107006, 107013, 107020, 107027, 107034, - 107041, 107048, 107055, 107062, 107069, 107076, 107083, 107090, 107097, - 107104, 0, 0, 0, 0, 0, 107111, 107117, 107123, 107129, 107135, 107142, - 107149, 107157, 107164, 107171, 107178, 107185, 107192, 107199, 107206, - 107213, 107220, 107227, 107234, 107241, 107248, 107255, 107262, 107269, - 107276, 107283, 0, 0, 0, 0, 0, 0, 0, 107290, 107297, 107305, 107315, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107325, 107331, 107337, 107343, 107349, - 107356, 107363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 106159, 106164, 106169, 106174, 106179, 106184, 106189, 106194, 106199, + 106204, 106209, 106214, 106219, 106224, 106229, 106234, 106239, 106244, + 106249, 106254, 106259, 106264, 106269, 106274, 106279, 106284, 106289, + 106294, 106299, 106304, 106309, 106314, 106319, 106324, 106329, 106334, + 106339, 106344, 106350, 0, 0, 0, 0, 106356, 106360, 106364, 106369, + 106374, 106380, 106386, 106392, 106402, 106411, 106417, 106424, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 106432, 106436, 106441, 106446, 106451, 106456, 106461, + 106466, 106471, 106475, 106480, 106484, 106489, 106493, 106498, 106502, + 106507, 106512, 106517, 106522, 106527, 106532, 106537, 106542, 106547, + 106552, 106557, 106562, 106567, 106572, 106577, 106582, 106587, 106592, + 106597, 106602, 106607, 106612, 106617, 106622, 106627, 106632, 106637, + 106642, 106647, 106652, 106657, 106662, 106667, 106672, 106677, 106682, + 106687, 106692, 0, 0, 0, 106697, 106702, 106711, 106719, 106728, 106737, + 106748, 106759, 106766, 106773, 106780, 106787, 106794, 106801, 106808, + 106815, 106822, 106829, 106836, 106843, 106850, 106857, 106864, 106871, + 106878, 106885, 106892, 106899, 106906, 0, 0, 106913, 106919, 106925, + 106931, 106937, 106944, 106951, 106959, 106966, 106973, 106980, 106987, + 106994, 107001, 107008, 107015, 107022, 107029, 107036, 107043, 107050, + 107057, 107064, 107071, 107078, 107085, 107092, 0, 0, 0, 0, 0, 107099, + 107105, 107111, 107117, 107123, 107130, 107137, 107145, 107152, 107159, + 107166, 107173, 107180, 107187, 107194, 107201, 107208, 107215, 107222, + 107229, 107236, 107243, 107250, 107257, 107264, 107271, 0, 0, 0, 0, 0, 0, + 0, 107278, 107285, 107293, 107303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 107313, 107319, 107325, 107331, 107337, 107344, 107351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107371, 107378, 107385, 107393, - 107400, 107407, 107414, 107421, 107429, 107437, 107445, 107453, 107461, - 107469, 107477, 107485, 107493, 107501, 107509, 107517, 107525, 107533, - 107541, 107549, 107557, 107565, 107573, 107581, 107589, 107597, 107605, - 107613, 107621, 107629, 107637, 107645, 107653, 107661, 107669, 107677, - 107685, 107693, 107701, 107709, 107717, 107725, 107733, 107741, 107749, - 107757, 107765, 107773, 107781, 107789, 107797, 107805, 107813, 107821, - 107829, 107837, 107845, 107853, 107861, 107869, 107877, 107885, 107893, - 107901, 107909, 107917, 107925, 107933, 107941, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 107949, 107954, 107960, 107966, 107972, 107978, 107984, 107990, 107996, - 108002, 108007, 108014, 108020, 108026, 108032, 108038, 108044, 108049, - 108055, 108061, 108067, 108073, 108079, 108085, 108091, 108097, 108103, - 108109, 108114, 108120, 108128, 108136, 108142, 108148, 108154, 108160, - 108168, 108174, 108180, 108186, 108192, 108198, 108204, 108209, 108215, - 108223, 108231, 108237, 108243, 108249, 108256, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 108262, 108267, 108273, 108279, 108285, 108291, 108297, - 108303, 108309, 108315, 108320, 108327, 108333, 108339, 108345, 108351, - 108357, 108362, 108368, 108374, 108380, 108386, 108392, 108398, 108404, - 108410, 108416, 108422, 108427, 108433, 108441, 108449, 108455, 108461, - 108467, 108473, 108481, 108487, 108493, 108499, 108505, 108511, 108517, - 108522, 108528, 108536, 108544, 108550, 108556, 108562, 108569, 0, 0, 0, - 0, 0, 0, 0, 108575, 108579, 108583, 108588, 108593, 108599, 108604, - 108610, 108617, 108623, 108630, 108637, 108644, 108651, 108657, 108664, - 108671, 108678, 108685, 108691, 108698, 108705, 108711, 108718, 108724, - 108731, 108737, 108743, 108749, 108756, 108765, 108771, 108779, 108786, - 108793, 108800, 108806, 108812, 108818, 108824, 108830, 108837, 108846, - 108853, 108860, 108867, 0, 0, 0, 0, 0, 0, 0, 0, 108874, 108881, 108887, - 108893, 108899, 108905, 108911, 108917, 108923, 108929, 0, 0, 0, 0, 0, 0, + 0, 0, 107359, 107366, 107373, 107381, 107388, 107395, 107402, 107409, + 107417, 107425, 107433, 107441, 107449, 107457, 107465, 107473, 107481, + 107489, 107497, 107505, 107513, 107521, 107529, 107537, 107545, 107553, + 107561, 107569, 107577, 107585, 107593, 107601, 107609, 107617, 107625, + 107633, 107641, 107649, 107657, 107665, 107673, 107681, 107689, 107697, + 107705, 107713, 107721, 107729, 107737, 107745, 107753, 107761, 107769, + 107777, 107785, 107793, 107801, 107809, 107817, 107825, 107833, 107841, + 107849, 107857, 107865, 107873, 107881, 107889, 107897, 107905, 107913, + 107921, 107929, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107937, 107942, 107948, 107954, + 107960, 107966, 107972, 107978, 107984, 107990, 107995, 108002, 108008, + 108014, 108020, 108026, 108032, 108037, 108043, 108049, 108055, 108061, + 108067, 108073, 108079, 108085, 108091, 108097, 108102, 108108, 108116, + 108124, 108130, 108136, 108142, 108148, 108156, 108162, 108168, 108174, + 108180, 108186, 108192, 108197, 108203, 108211, 108219, 108225, 108231, + 108237, 108244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108250, 108255, + 108261, 108267, 108273, 108279, 108285, 108291, 108297, 108303, 108308, + 108315, 108321, 108327, 108333, 108339, 108345, 108350, 108356, 108362, + 108368, 108374, 108380, 108386, 108392, 108398, 108404, 108410, 108415, + 108421, 108429, 108437, 108443, 108449, 108455, 108461, 108469, 108475, + 108481, 108487, 108493, 108499, 108505, 108510, 108516, 108524, 108532, + 108538, 108544, 108550, 108557, 0, 0, 0, 0, 0, 0, 0, 108563, 108567, + 108571, 108576, 108581, 108587, 108592, 108598, 108605, 108611, 108618, + 108625, 108632, 108639, 108645, 108652, 108659, 108666, 108673, 108679, + 108686, 108693, 108699, 108706, 108712, 108719, 108725, 108731, 108737, + 108744, 108753, 108759, 108767, 108774, 108781, 108788, 108794, 108800, + 108806, 108812, 108818, 108825, 108834, 108841, 108848, 108855, 0, 0, 0, + 0, 0, 0, 0, 0, 108862, 108869, 108875, 108881, 108887, 108893, 108899, + 108905, 108911, 108917, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108935, 108939, 108943, - 108947, 108951, 108955, 108959, 108963, 108967, 108971, 108976, 108981, - 108986, 108991, 108996, 109001, 109006, 109011, 109016, 109022, 109028, - 109034, 109041, 109048, 109055, 109062, 109069, 109076, 109083, 109090, - 109097, 0, 109104, 109109, 109114, 109119, 109124, 109129, 109134, - 109139, 109144, 109149, 109154, 109159, 109164, 109169, 109173, 109178, - 109183, 109188, 109193, 109198, 109203, 109208, 109213, 109218, 109223, - 109228, 109233, 109238, 109246, 109251, 109256, 109261, 109266, 109271, - 109276, 109281, 109286, 109291, 109296, 109301, 109306, 109311, 0, - 109316, 109322, 109328, 0, 0, 109333, 109341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 108923, 108927, 108931, 108935, 108939, 108943, 108947, + 108951, 108955, 108959, 108964, 108969, 108974, 108979, 108984, 108989, + 108994, 108999, 109004, 109010, 109016, 109022, 109029, 109036, 109043, + 109050, 109057, 109064, 109071, 109078, 109085, 0, 109092, 109097, + 109102, 109107, 109112, 109117, 109122, 109127, 109132, 109137, 109142, + 109147, 109152, 109157, 109161, 109166, 109171, 109176, 109181, 109186, + 109191, 109196, 109201, 109206, 109211, 109216, 109221, 109226, 109234, + 109239, 109244, 109249, 109254, 109259, 109264, 109269, 109274, 109279, + 109284, 109289, 109294, 109299, 0, 109304, 109310, 109316, 0, 0, 109321, + 109329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109350, 109357, - 109364, 109371, 109377, 109384, 109390, 109397, 109403, 109409, 109416, - 109422, 109428, 109434, 109440, 109446, 109452, 109458, 109464, 109471, - 109482, 109488, 109494, 109502, 109508, 109514, 109521, 109532, 109538, - 109544, 109550, 109557, 109568, 109573, 109578, 109583, 109588, 109593, - 109599, 109605, 109611, 109618, 109626, 0, 0, 0, 0, 0, 0, 0, 0, 109632, - 109637, 109642, 109647, 109652, 109657, 109662, 109667, 109672, 109677, - 109682, 109687, 109692, 109697, 109702, 109707, 109712, 109717, 109722, - 109727, 109732, 109737, 109743, 109748, 109754, 109759, 109765, 109771, - 109777, 109783, 109789, 109796, 109802, 109808, 109812, 109817, 109822, - 109828, 109836, 109847, 109856, 109866, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109876, 109882, 109888, 109894, 109900, - 109906, 109913, 109919, 109925, 109931, 109937, 109943, 109949, 109955, - 109961, 109967, 109973, 109979, 109985, 109991, 109997, 110004, 110011, - 110017, 110025, 110033, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110042, - 110047, 110053, 110058, 110063, 110068, 110073, 110078, 110085, 110090, - 110095, 110100, 110105, 110110, 110115, 110120, 110125, 110130, 110135, - 110140, 110145, 110150, 110154, 110158, 110162, 110166, 110171, 110176, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110182, - 110187, 110192, 110197, 110202, 110207, 110212, 110217, 110222, 110227, - 110232, 110237, 110242, 110247, 110252, 110257, 110262, 110267, 110272, - 110277, 110282, 110287, 110292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110297, - 110301, 110305, 110309, 110313, 110317, 110320, 110324, 110327, 110331, - 110334, 110338, 110342, 110347, 110351, 110356, 110359, 110363, 110366, - 110370, 110373, 110377, 110381, 110385, 110389, 110393, 110397, 110401, - 110405, 110409, 110413, 110417, 110421, 110425, 110429, 110433, 110437, - 110441, 110445, 110448, 110451, 110455, 110459, 110463, 110466, 110469, - 110472, 110475, 110479, 110483, 110487, 110490, 110493, 110497, 110503, - 110509, 110515, 110520, 110527, 110531, 110536, 110540, 110545, 110550, - 110556, 110561, 110567, 110571, 110576, 110580, 110585, 110588, 110591, - 110595, 110600, 110606, 110611, 110617, 0, 0, 0, 0, 110622, 110625, - 110628, 110631, 110634, 110637, 110640, 110643, 110646, 110649, 110653, - 110657, 110661, 110665, 110669, 110673, 110677, 110681, 110685, 110690, - 110694, 110698, 110701, 110704, 110707, 110710, 110713, 110716, 110719, - 110722, 110725, 110731, 110738, 110745, 110753, 110761, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 110767, 110771, 110776, 110781, 110786, 110790, 110795, 110799, - 110804, 110808, 110813, 110817, 110822, 110826, 110831, 110835, 110840, - 110845, 110850, 110855, 110860, 110865, 110870, 110875, 110880, 110885, - 110890, 110895, 110900, 110905, 110910, 110915, 110920, 110925, 110930, - 110935, 110939, 110943, 110948, 110953, 110958, 110962, 110966, 110970, - 110974, 110979, 110984, 110989, 110993, 110997, 111003, 111008, 111014, - 111019, 111025, 111030, 111036, 111041, 111047, 111052, 111057, 111062, - 111067, 111071, 111076, 111082, 111086, 111091, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 111097, 0, 0, 111102, 111109, 111116, 111123, 111130, 111137, - 111144, 111151, 111158, 111165, 111172, 111179, 111186, 111193, 111200, - 111207, 111214, 111221, 111228, 111235, 111242, 111249, 111256, 111263, - 111270, 0, 0, 0, 0, 0, 0, 0, 111277, 111284, 111290, 111296, 111302, - 111308, 111314, 111320, 111326, 111332, 0, 0, 0, 0, 0, 0, 111338, 111343, - 111348, 111353, 111358, 111362, 111366, 111370, 111375, 111380, 111385, - 111390, 111395, 111400, 111405, 111410, 111415, 111420, 111425, 111430, - 111435, 111440, 111445, 111450, 111455, 111460, 111465, 111470, 111475, - 111480, 111485, 111490, 111495, 111500, 111505, 111510, 111515, 111520, - 111525, 111530, 111535, 111540, 111546, 111551, 111557, 111562, 111568, - 111573, 111579, 111585, 111589, 111594, 111598, 0, 111602, 111607, - 111611, 111615, 111619, 111623, 111627, 111631, 111635, 111639, 111643, - 111648, 111652, 111657, 111662, 111667, 111673, 111679, 0, 0, 0, 0, 0, 0, - 0, 0, 111684, 111688, 111692, 111696, 111700, 111704, 111708, 111713, - 111718, 111723, 111728, 111733, 111738, 111743, 111748, 111753, 111758, - 111763, 111768, 111773, 111778, 111783, 111788, 111793, 111797, 111801, - 111806, 111811, 111816, 111820, 111824, 111828, 111833, 111837, 111841, - 111846, 111851, 111856, 111861, 0, 0, 0, 0, 0, 0, 0, 0, 0, 111866, - 111871, 111876, 111881, 111885, 111890, 111894, 111899, 111903, 111908, - 111913, 111919, 111924, 111930, 111934, 111939, 111943, 111948, 111952, - 111957, 111962, 111967, 111972, 111977, 111982, 111987, 111992, 111997, - 112002, 112007, 112012, 112017, 112022, 112027, 112032, 112037, 112042, - 112046, 112050, 112055, 112060, 112065, 112069, 112073, 112077, 112081, - 112086, 112091, 112096, 112101, 112105, 112109, 112115, 112120, 112126, - 112131, 112137, 112143, 112150, 112156, 112163, 112168, 112174, 112179, - 112185, 112190, 112195, 112200, 112205, 112209, 112213, 112218, 112223, - 112227, 112232, 112237, 112242, 112250, 112255, 112262, 112269, 112274, - 112278, 112282, 112286, 112290, 112294, 112298, 112302, 112306, 112310, - 112314, 112319, 112323, 112328, 112334, 0, 112340, 112345, 112350, - 112355, 112360, 112365, 112370, 112375, 112380, 112385, 112391, 112397, - 112403, 112409, 112415, 112421, 112427, 112433, 112439, 112446, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 112452, 112456, 112461, 112465, 112469, 112473, - 112478, 112482, 112487, 112491, 112496, 112501, 112506, 112511, 112516, - 112521, 112526, 112531, 0, 112536, 112541, 112546, 112551, 112556, - 112561, 112566, 112571, 112576, 112581, 112586, 112591, 112595, 112599, - 112604, 112609, 112614, 112619, 112623, 112627, 112631, 112635, 112640, - 112644, 112648, 112653, 112659, 112664, 112670, 112675, 112680, 112686, - 112691, 112697, 112702, 112707, 112712, 112717, 112721, 112726, 112732, - 112737, 112743, 112748, 112753, 112758, 112764, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 109338, 109344, 109351, 109357, 109364, 109370, + 109376, 109383, 109389, 109395, 109401, 109407, 109413, 109419, 109425, + 109431, 109438, 109449, 109455, 109461, 109469, 109475, 109481, 109488, + 109499, 109505, 109511, 109517, 109524, 109535, 109540, 109545, 109550, + 109555, 109560, 109566, 109572, 109578, 109585, 109593, 0, 0, 0, 0, 0, 0, + 0, 0, 109599, 109604, 109609, 109614, 109619, 109624, 109629, 109634, + 109639, 109644, 109649, 109654, 109659, 109664, 109669, 109674, 109679, + 109684, 109689, 109694, 109699, 109704, 109710, 109715, 109721, 109726, + 109732, 109738, 109744, 109750, 109756, 109763, 109769, 109775, 109779, + 109784, 109789, 109795, 109803, 109814, 109823, 109833, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109843, 109849, 109855, + 109861, 109867, 109873, 109880, 109886, 109892, 109898, 109904, 109910, + 109916, 109922, 109928, 109934, 109940, 109946, 109952, 109958, 109964, + 109971, 109978, 109984, 109992, 110000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 112770, 112774, 112778, 112782, 112786, 112790, 112795, - 0, 112800, 0, 112805, 112810, 112815, 112820, 0, 112825, 112830, 112835, - 112840, 112845, 112850, 112855, 112860, 112865, 112870, 112875, 112880, - 112884, 112888, 112893, 0, 112898, 112903, 112907, 112911, 112915, - 112919, 112924, 112928, 112932, 112937, 112942, 0, 0, 0, 0, 0, 0, 112947, - 112951, 112956, 112960, 112965, 112969, 112974, 112978, 112983, 112987, - 112992, 112996, 113001, 113006, 113011, 113016, 113021, 113026, 113031, - 113036, 113041, 113046, 113051, 113056, 113061, 113066, 113071, 113076, - 113081, 113086, 113091, 113096, 113101, 113106, 113110, 113114, 113119, - 113124, 113129, 113134, 113138, 113142, 113146, 113150, 113155, 113160, - 113164, 113168, 113173, 113179, 113184, 113190, 113195, 113201, 113206, - 113212, 113217, 113223, 113228, 0, 0, 0, 0, 0, 113233, 113238, 113242, - 113246, 113250, 113254, 113258, 113262, 113266, 113270, 0, 0, 0, 0, 0, 0, - 113274, 113281, 113286, 113291, 0, 113296, 113300, 113305, 113309, - 113314, 113318, 113323, 113328, 0, 0, 113333, 113338, 0, 0, 113343, - 113348, 113353, 113357, 113362, 113367, 113372, 113377, 113382, 113387, - 113392, 113397, 113402, 113407, 113412, 113417, 113422, 113427, 113432, - 113437, 113442, 113447, 0, 113451, 113455, 113460, 113465, 113470, - 113474, 113478, 0, 113482, 113486, 0, 113491, 113496, 113501, 113506, - 113510, 0, 113514, 113518, 113523, 113528, 113534, 113539, 113545, - 113550, 113556, 113562, 0, 0, 113569, 113575, 0, 0, 113581, 113587, - 113593, 0, 0, 113598, 0, 0, 0, 0, 0, 0, 113602, 0, 0, 0, 0, 0, 113609, - 113614, 113621, 113629, 113635, 113641, 113647, 0, 0, 113654, 113660, - 113665, 113670, 113675, 113680, 113685, 0, 0, 0, 113690, 113695, 113700, - 113705, 113711, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 113716, 113720, 113725, - 113729, 113734, 113738, 113743, 113748, 113754, 113759, 113765, 113769, - 113774, 113778, 113783, 113787, 113792, 113797, 113802, 113807, 113812, - 113817, 113822, 113827, 113832, 113837, 113842, 113847, 113852, 113857, - 113862, 113867, 113872, 113877, 113882, 113887, 113891, 113896, 113900, - 113905, 113910, 113915, 113919, 113924, 113928, 113932, 113937, 113941, - 113946, 113951, 113956, 113961, 113965, 113969, 113975, 113980, 113986, - 113991, 113997, 114003, 114010, 114016, 114023, 114028, 114034, 114039, - 114045, 114050, 114055, 114060, 114065, 114070, 114075, 114081, 114085, - 114089, 114093, 114098, 114102, 114108, 114113, 114118, 114122, 114126, - 114130, 114134, 114138, 114142, 114146, 114150, 114154, 114159, 0, - 114164, 114169, 114174, 114181, 114186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114191, 114195, - 114199, 114204, 114208, 114213, 114217, 114222, 114227, 114233, 114238, - 114244, 114248, 114253, 114257, 114262, 114266, 114271, 114276, 114281, - 114286, 114291, 114296, 114301, 114306, 114311, 114316, 114321, 114326, - 114331, 114336, 114341, 114346, 114351, 114356, 114360, 114364, 114369, - 114374, 114379, 114383, 114387, 114391, 114395, 114400, 114405, 114410, - 114414, 114418, 114424, 114429, 114435, 114440, 114446, 114452, 114459, - 114465, 114472, 114477, 114484, 114490, 114495, 114502, 114508, 114513, - 114518, 114523, 114528, 114533, 114538, 114542, 114547, 0, 0, 0, 0, 0, 0, - 0, 0, 114551, 114556, 114560, 114564, 114568, 114572, 114576, 114580, - 114584, 114588, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114592, 114596, - 114601, 114605, 114610, 114614, 114619, 114624, 114630, 114635, 114641, - 114645, 114650, 114654, 114659, 114663, 114668, 114673, 114678, 114683, - 114688, 114693, 114698, 114703, 114708, 114713, 114718, 114723, 114728, - 114733, 114738, 114743, 114748, 114753, 114757, 114761, 114766, 114771, - 114776, 114780, 114784, 114788, 114792, 114797, 114802, 114807, 114811, - 114815, 114821, 114826, 114832, 114837, 114843, 114849, 0, 0, 114856, - 114861, 114867, 114872, 114878, 114883, 114888, 114893, 114898, 114903, - 114908, 114912, 114917, 114923, 114928, 114934, 114940, 114946, 114954, - 114967, 114980, 114993, 115007, 115022, 115030, 115041, 115050, 115060, - 115070, 115080, 115091, 115103, 115116, 115124, 115132, 115141, 115147, - 115154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115162, 115166, 115171, 115175, - 115180, 115184, 115189, 115194, 115200, 115205, 115211, 115215, 115220, - 115224, 115229, 115233, 115238, 115243, 115248, 115253, 115258, 115263, - 115268, 115273, 115278, 115283, 115288, 115293, 115298, 115303, 115308, - 115313, 115318, 115323, 115327, 115331, 115336, 115341, 115346, 115350, - 115354, 115358, 115362, 115367, 115372, 115377, 115381, 115385, 115390, - 115396, 115401, 115407, 115412, 115418, 115424, 115431, 115437, 115444, - 115449, 115455, 115460, 115466, 115471, 115476, 115481, 115486, 115490, - 115495, 115500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115505, 115510, 115514, - 115518, 115522, 115526, 115530, 115534, 115538, 115542, 0, 0, 0, 0, 0, 0, - 115546, 115552, 115557, 115564, 115572, 115579, 115587, 115596, 115601, - 115610, 115615, 115623, 115632, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 115642, 115646, 115651, 115655, 115660, 115664, 115669, - 115673, 115678, 115682, 115687, 115691, 115696, 115701, 115706, 115711, - 115716, 115721, 115726, 115731, 115736, 115741, 115746, 115751, 115756, - 115761, 115766, 115771, 115776, 115781, 115785, 115789, 115794, 115799, - 115804, 115808, 115812, 115816, 115820, 115825, 115830, 115834, 115838, - 115843, 115848, 115853, 115859, 115864, 115870, 115875, 115881, 115886, - 115892, 115897, 115903, 115908, 115913, 115920, 0, 0, 0, 0, 0, 0, 115925, - 115930, 115934, 115938, 115942, 115946, 115950, 115954, 115958, 115962, + 0, 0, 0, 110009, 110014, 110020, 110025, 110030, 110035, 110040, 110045, + 110052, 110057, 110062, 110067, 110072, 110077, 110082, 110087, 110092, + 110097, 110102, 110107, 110112, 110117, 110121, 110125, 110129, 110133, + 110138, 110143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 110149, 110154, 110159, 110164, 110169, 110174, 110179, 110184, + 110189, 110194, 110199, 110204, 110209, 110214, 110219, 110224, 110229, + 110234, 110239, 110244, 110249, 110254, 110259, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 110264, 110268, 110272, 110276, 110280, 110284, 110287, 110291, + 110294, 110298, 110301, 110305, 110309, 110314, 110318, 110323, 110326, + 110330, 110333, 110337, 110340, 110344, 110348, 110352, 110356, 110360, + 110364, 110368, 110372, 110376, 110380, 110384, 110388, 110392, 110396, + 110400, 110404, 110408, 110412, 110415, 110418, 110422, 110426, 110430, + 110433, 110436, 110439, 110442, 110446, 110450, 110454, 110457, 110460, + 110464, 110470, 110476, 110482, 110487, 110494, 110498, 110503, 110507, + 110512, 110517, 110523, 110528, 110534, 110538, 110543, 110547, 110552, + 110555, 110558, 110562, 110567, 110573, 110578, 110584, 0, 0, 0, 0, + 110589, 110592, 110595, 110598, 110601, 110604, 110607, 110610, 110613, + 110616, 110620, 110624, 110628, 110632, 110636, 110640, 110644, 110648, + 110652, 110657, 110661, 110665, 110668, 110671, 110674, 110677, 110680, + 110683, 110686, 110689, 110692, 110698, 110705, 110712, 110720, 110728, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 110734, 110738, 110743, 110748, 110753, + 110757, 110762, 110766, 110771, 110775, 110780, 110784, 110789, 110793, + 110798, 110802, 110807, 110812, 110817, 110822, 110827, 110832, 110837, + 110842, 110847, 110852, 110857, 110862, 110867, 110872, 110877, 110882, + 110887, 110892, 110897, 110902, 110906, 110910, 110915, 110920, 110925, + 110929, 110933, 110937, 110941, 110946, 110951, 110956, 110960, 110964, + 110970, 110975, 110981, 110986, 110992, 110997, 111003, 111008, 111014, + 111019, 111024, 111029, 111034, 111038, 111043, 111049, 111053, 111058, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 111064, 0, 0, 111069, 111076, 111083, + 111090, 111097, 111104, 111111, 111118, 111125, 111132, 111139, 111146, + 111153, 111160, 111167, 111174, 111181, 111188, 111195, 111202, 111209, + 111216, 111223, 111230, 111237, 0, 0, 0, 0, 0, 0, 0, 111244, 111251, + 111257, 111263, 111269, 111275, 111281, 111287, 111293, 111299, 0, 0, 0, + 0, 0, 0, 111305, 111310, 111315, 111320, 111325, 111329, 111333, 111337, + 111342, 111347, 111352, 111357, 111362, 111367, 111372, 111377, 111382, + 111387, 111392, 111397, 111402, 111407, 111412, 111417, 111422, 111427, + 111432, 111437, 111442, 111447, 111452, 111457, 111462, 111467, 111472, + 111477, 111482, 111487, 111492, 111497, 111502, 111507, 111513, 111518, + 111524, 111529, 111535, 111540, 111546, 111552, 111556, 111561, 111565, + 0, 111569, 111574, 111578, 111582, 111586, 111590, 111594, 111598, + 111602, 111606, 111610, 111615, 111619, 111624, 111629, 111634, 111640, + 111646, 0, 0, 0, 0, 0, 0, 0, 0, 111651, 111655, 111659, 111663, 111667, + 111671, 111675, 111680, 111685, 111690, 111695, 111700, 111705, 111710, + 111715, 111720, 111725, 111730, 111735, 111740, 111745, 111750, 111755, + 111760, 111764, 111768, 111773, 111778, 111783, 111787, 111791, 111795, + 111800, 111804, 111808, 111813, 111818, 111823, 111828, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 111833, 111838, 111843, 111848, 111852, 111857, 111861, 111866, + 111870, 111875, 111880, 111886, 111891, 111897, 111901, 111906, 111910, + 111915, 111919, 111924, 111929, 111934, 111939, 111944, 111949, 111954, + 111959, 111964, 111969, 111974, 111979, 111984, 111989, 111994, 111999, + 112004, 112009, 112013, 112017, 112022, 112027, 112032, 112036, 112040, + 112044, 112048, 112053, 112058, 112063, 112068, 112072, 112076, 112082, + 112087, 112093, 112098, 112104, 112110, 112117, 112123, 112130, 112135, + 112141, 112146, 112152, 112157, 112162, 112167, 112172, 112176, 112180, + 112185, 112190, 112194, 112199, 112204, 112209, 112217, 112222, 112229, + 112236, 112241, 112245, 112249, 112253, 112257, 112261, 112265, 112269, + 112273, 112277, 112281, 112286, 112290, 112295, 112301, 0, 112307, + 112312, 112317, 112322, 112327, 112332, 112337, 112342, 112347, 112352, + 112358, 112364, 112370, 112376, 112382, 112388, 112394, 112400, 112406, + 112413, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112419, 112423, 112428, 112432, + 112436, 112440, 112445, 112449, 112454, 112458, 112463, 112468, 112473, + 112478, 112483, 112488, 112493, 112498, 0, 112503, 112508, 112513, + 112518, 112523, 112528, 112533, 112538, 112543, 112548, 112553, 112558, + 112562, 112566, 112571, 112576, 112581, 112586, 112590, 112594, 112598, + 112602, 112607, 112611, 112615, 112620, 112626, 112631, 112637, 112642, + 112647, 112653, 112658, 112664, 112669, 112674, 112679, 112684, 112688, + 112693, 112699, 112704, 112710, 112715, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 115966, 115970, 115975, 115980, 115984, 115989, 115996, - 116000, 116005, 116010, 116014, 116019, 116024, 116029, 116033, 116037, - 116041, 116046, 116050, 116054, 116059, 116064, 116069, 116076, 116081, - 116086, 116091, 0, 0, 116098, 116105, 116112, 116121, 116126, 116132, - 116137, 116143, 116148, 116154, 116159, 116165, 116170, 116176, 116182, - 0, 0, 0, 0, 116187, 116192, 116196, 116200, 116204, 116208, 116212, - 116216, 116220, 116224, 116228, 116233, 116238, 116244, 116249, 116254, - 116259, 116264, 116269, 116274, 116279, 116284, 116289, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 112720, 112724, 112728, 112732, 112736, 112740, 112745, + 0, 112750, 0, 112755, 112760, 112765, 112770, 0, 112775, 112780, 112785, + 112790, 112795, 112800, 112805, 112810, 112815, 112820, 112825, 112830, + 112834, 112838, 112843, 0, 112848, 112853, 112857, 112861, 112865, + 112869, 112874, 112878, 112882, 112887, 112892, 0, 0, 0, 0, 0, 0, 112897, + 112901, 112906, 112910, 112915, 112919, 112924, 112928, 112933, 112937, + 112942, 112946, 112951, 112956, 112961, 112966, 112971, 112976, 112981, + 112986, 112991, 112996, 113001, 113006, 113011, 113016, 113021, 113026, + 113031, 113036, 113041, 113046, 113051, 113056, 113060, 113064, 113069, + 113074, 113079, 113084, 113088, 113092, 113096, 113100, 113105, 113110, + 113114, 113118, 113123, 113129, 113134, 113140, 113145, 113151, 113156, + 113162, 113167, 113173, 113178, 0, 0, 0, 0, 0, 113183, 113188, 113192, + 113196, 113200, 113204, 113208, 113212, 113216, 113220, 0, 0, 0, 0, 0, 0, + 113224, 113231, 113236, 113241, 0, 113246, 113250, 113255, 113259, + 113264, 113268, 113273, 113278, 0, 0, 113283, 113288, 0, 0, 113293, + 113298, 113303, 113307, 113312, 113317, 113322, 113327, 113332, 113337, + 113342, 113347, 113352, 113357, 113362, 113367, 113372, 113377, 113382, + 113387, 113392, 113397, 0, 113401, 113405, 113410, 113415, 113420, + 113424, 113428, 0, 113432, 113436, 0, 113441, 113446, 113451, 113456, + 113460, 0, 113464, 113468, 113473, 113478, 113484, 113489, 113495, + 113500, 113506, 113512, 0, 0, 113519, 113525, 0, 0, 113531, 113537, + 113543, 0, 0, 113548, 0, 0, 0, 0, 0, 0, 113552, 0, 0, 0, 0, 0, 113559, + 113564, 113571, 113579, 113585, 113591, 113597, 0, 0, 113604, 113610, + 113615, 113620, 113625, 113630, 113635, 0, 0, 0, 113640, 113645, 113650, + 113655, 113661, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 113666, 113670, 113675, + 113679, 113684, 113688, 113693, 113698, 113704, 113709, 113715, 113719, + 113724, 113728, 113733, 113737, 113742, 113747, 113752, 113757, 113762, + 113767, 113772, 113777, 113782, 113787, 113792, 113797, 113802, 113807, + 113812, 113817, 113822, 113827, 113832, 113837, 113841, 113846, 113850, + 113855, 113860, 113865, 113869, 113874, 113878, 113882, 113887, 113891, + 113896, 113901, 113906, 113911, 113915, 113919, 113925, 113930, 113936, + 113941, 113947, 113953, 113960, 113966, 113973, 113978, 113984, 113989, + 113995, 114000, 114005, 114010, 114015, 114020, 114025, 114031, 114035, + 114039, 114043, 114048, 114052, 114058, 114063, 114068, 114072, 114076, + 114080, 114084, 114088, 114092, 114096, 114100, 114104, 114109, 0, + 114114, 114119, 114124, 114131, 114136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114141, 114145, + 114149, 114154, 114158, 114163, 114167, 114172, 114177, 114183, 114188, + 114194, 114198, 114203, 114207, 114212, 114216, 114221, 114226, 114231, + 114236, 114241, 114246, 114251, 114256, 114261, 114266, 114271, 114276, + 114281, 114286, 114291, 114296, 114301, 114306, 114310, 114314, 114319, + 114324, 114329, 114333, 114337, 114341, 114345, 114350, 114355, 114360, + 114364, 114368, 114374, 114379, 114385, 114390, 114396, 114402, 114409, + 114415, 114422, 114427, 114434, 114440, 114445, 114452, 114458, 114463, + 114468, 114473, 114478, 114483, 114488, 114492, 114497, 0, 0, 0, 0, 0, 0, + 0, 0, 114501, 114506, 114510, 114514, 114518, 114522, 114526, 114530, + 114534, 114538, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114542, 114546, + 114551, 114555, 114560, 114564, 114569, 114574, 114580, 114585, 114591, + 114595, 114600, 114604, 114609, 114613, 114618, 114623, 114628, 114633, + 114638, 114643, 114648, 114653, 114658, 114663, 114668, 114673, 114678, + 114683, 114688, 114693, 114698, 114703, 114707, 114711, 114716, 114721, + 114726, 114730, 114734, 114738, 114742, 114747, 114752, 114757, 114761, + 114765, 114771, 114776, 114782, 114787, 114793, 114799, 0, 0, 114806, + 114811, 114817, 114822, 114828, 114833, 114838, 114843, 114848, 114853, + 114858, 114862, 114867, 114873, 114878, 114884, 114890, 114896, 114904, + 114917, 114930, 114943, 114957, 114972, 114980, 114991, 115000, 115010, + 115020, 115030, 115041, 115053, 115066, 115074, 115082, 115091, 115097, + 115104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115112, 115116, 115121, 115125, + 115130, 115134, 115139, 115144, 115150, 115155, 115161, 115165, 115170, + 115174, 115179, 115183, 115188, 115193, 115198, 115203, 115208, 115213, + 115218, 115223, 115228, 115233, 115238, 115243, 115248, 115253, 115258, + 115263, 115268, 115273, 115277, 115281, 115286, 115291, 115296, 115300, + 115304, 115308, 115312, 115317, 115322, 115327, 115331, 115335, 115340, + 115346, 115351, 115357, 115362, 115368, 115374, 115381, 115387, 115394, + 115399, 115405, 115410, 115416, 115421, 115426, 115431, 115436, 115440, + 115445, 115450, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115455, 115460, 115464, + 115468, 115472, 115476, 115480, 115484, 115488, 115492, 0, 0, 0, 0, 0, 0, + 115496, 115502, 115507, 115514, 115522, 115529, 115537, 115546, 115551, + 115560, 115565, 115573, 115582, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 115592, 115596, 115601, 115605, 115610, 115614, 115619, + 115623, 115628, 115632, 115637, 115641, 115646, 115651, 115656, 115661, + 115666, 115671, 115676, 115681, 115686, 115691, 115696, 115701, 115706, + 115711, 115716, 115721, 115726, 115731, 115735, 115739, 115744, 115749, + 115754, 115758, 115762, 115766, 115770, 115775, 115780, 115784, 115788, + 115793, 115798, 115803, 115809, 115814, 115820, 115825, 115831, 115836, + 115842, 115847, 115853, 115858, 115863, 115870, 0, 0, 0, 0, 0, 0, 115875, + 115880, 115884, 115888, 115892, 115896, 115900, 115904, 115908, 115912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 116294, 116298, 116303, 116307, 116312, 116316, 116321, 116325, - 116330, 116334, 116339, 116343, 116348, 116353, 116358, 116363, 116368, - 116373, 116378, 116383, 116388, 116393, 116398, 116403, 116408, 116413, - 116418, 116423, 116428, 116433, 116437, 116441, 116446, 116451, 116456, - 116460, 116464, 116468, 116472, 116477, 116482, 116487, 116491, 116495, - 116500, 116506, 116511, 116517, 116522, 116528, 116534, 116541, 116546, - 116552, 116557, 116563, 116568, 116573, 116578, 116583, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 115916, 115920, 115925, 115930, 115934, 115939, 115946, + 115950, 115955, 115960, 115964, 115969, 115974, 115979, 115983, 115987, + 115991, 115996, 116000, 116004, 116009, 116014, 116019, 116026, 116031, + 116036, 116041, 0, 0, 116048, 116055, 116062, 116071, 116076, 116082, + 116087, 116093, 116098, 116104, 116109, 116115, 116120, 116126, 116132, + 0, 0, 0, 0, 116137, 116142, 116146, 116150, 116154, 116158, 116162, + 116166, 116170, 116174, 116178, 116183, 116188, 116194, 116199, 116204, + 116209, 116214, 116219, 116224, 116229, 116234, 116239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 116244, 116248, 116253, 116257, 116262, 116266, 116271, 116275, + 116280, 116284, 116289, 116293, 116298, 116303, 116308, 116313, 116318, + 116323, 116328, 116333, 116338, 116343, 116348, 116353, 116358, 116363, + 116368, 116373, 116378, 116383, 116387, 116391, 116396, 116401, 116406, + 116410, 116414, 116418, 116422, 116427, 116432, 116437, 116441, 116445, + 116450, 116456, 116461, 116467, 116472, 116478, 116484, 116491, 116496, + 116502, 116507, 116513, 116518, 116523, 116528, 116533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116588, - 116596, 116603, 116611, 116619, 116626, 116634, 116642, 116650, 116657, - 116664, 116672, 116680, 116688, 116696, 116704, 116712, 116720, 116728, - 116736, 116744, 116752, 116760, 116768, 116776, 116784, 116792, 116800, - 116808, 116816, 116824, 116832, 116840, 116848, 116855, 116863, 116871, - 116878, 116886, 116894, 116902, 116909, 116916, 116924, 116932, 116940, - 116948, 116956, 116964, 116972, 116980, 116988, 116996, 117004, 117012, - 117020, 117028, 117036, 117044, 117052, 117060, 117068, 117076, 117084, - 117092, 117099, 117105, 117111, 117117, 117123, 117129, 117135, 117141, - 117147, 117153, 117160, 117167, 117174, 117181, 117188, 117195, 117202, - 117209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117216, 117222, 117228, - 117235, 117241, 117248, 117254, 117261, 0, 0, 117267, 0, 0, 117273, - 117279, 117286, 117293, 117300, 117307, 117314, 117321, 0, 117328, - 117335, 0, 117342, 117349, 117356, 117363, 117370, 117377, 117384, - 117391, 117397, 117403, 117410, 117417, 117424, 117430, 117436, 117443, - 117449, 117455, 117462, 117469, 117476, 117482, 117488, 117495, 117502, - 117510, 117517, 117525, 117532, 117540, 0, 117547, 117555, 0, 0, 117562, - 117569, 117576, 117583, 117589, 117598, 117605, 117611, 117618, 117625, - 117632, 117640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117650, 117657, 117663, - 117669, 117675, 117681, 117687, 117693, 117699, 117705, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117711, 117715, 117720, - 117724, 117729, 117733, 117738, 117743, 0, 0, 117749, 117753, 117758, - 117762, 117767, 117771, 117776, 117781, 117786, 117791, 117796, 117801, - 117806, 117811, 117816, 117821, 117826, 117831, 117836, 117841, 117846, - 117851, 117856, 117861, 117865, 117869, 117874, 117879, 117884, 117888, - 117892, 117896, 117900, 117905, 117910, 117915, 117919, 117923, 117928, - 117933, 117939, 117944, 117950, 117955, 117961, 117967, 0, 0, 117974, - 117979, 117985, 117990, 117996, 118001, 118006, 118011, 118016, 118021, - 118025, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 118032, 118037, 118043, 118050, 118056, 118062, 118069, - 118075, 118082, 118089, 118097, 118104, 118109, 118115, 118121, 118127, - 118133, 118139, 118145, 118151, 118157, 118163, 118169, 118175, 118181, - 118187, 118193, 118199, 118205, 118211, 118216, 118221, 118227, 118233, - 118239, 118244, 118250, 118256, 118262, 118268, 118274, 118280, 118286, - 118291, 118296, 118301, 118307, 118313, 118319, 118324, 118329, 118335, - 118341, 118347, 118353, 118362, 118371, 118377, 118383, 118390, 118397, - 118404, 118411, 118419, 118426, 118434, 118440, 118446, 118453, 118460, - 118469, 118479, 0, 0, 0, 0, 0, 0, 0, 0, 118484, 118488, 118493, 118499, - 118504, 118509, 118514, 118520, 118526, 118532, 118538, 118544, 118550, - 118554, 118559, 118564, 118569, 118574, 118579, 118584, 118589, 118594, - 118599, 118604, 118609, 118614, 118619, 118624, 118629, 118634, 118639, - 118644, 118648, 118652, 118657, 118662, 118667, 118671, 118676, 118681, - 118686, 118691, 118696, 118701, 118705, 118709, 118713, 118718, 118723, - 118728, 118732, 118736, 118741, 118746, 118751, 118757, 118763, 118770, - 118776, 118783, 118790, 118797, 118804, 118811, 118818, 118825, 118831, - 118837, 118844, 118851, 118858, 118863, 118868, 118873, 118877, 118882, - 118887, 118893, 118898, 118914, 118928, 118939, 118945, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 118951, 118957, 118963, 118969, 118975, 118980, - 118986, 118992, 118998, 119004, 119010, 119016, 119022, 119026, 119030, - 119034, 119038, 119046, 119054, 119062, 119070, 119079, 119088, 119097, - 119106, 119114, 119123, 119132, 119140, 119149, 119158, 119167, 119176, - 119184, 119193, 119201, 119210, 119219, 119227, 119235, 119243, 119251, - 119259, 119268, 119277, 119287, 119297, 119307, 119317, 119327, 119336, - 119346, 119356, 119366, 119377, 119387, 119399, 119411, 119422, 119436, - 119447, 119457, 119469, 119480, 119490, 119502, 119514, 119525, 119536, - 119546, 119556, 119568, 119579, 0, 0, 0, 0, 0, 0, 0, 119591, 119595, - 119602, 119606, 119612, 119618, 119626, 119634, 119642, 119650, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116538, + 116546, 116553, 116561, 116569, 116576, 116584, 116592, 116600, 116607, + 116614, 116622, 116630, 116638, 116646, 116654, 116662, 116670, 116678, + 116686, 116694, 116702, 116710, 116718, 116726, 116734, 116742, 116750, + 116758, 116766, 116774, 116782, 116790, 116798, 116805, 116813, 116821, + 116828, 116836, 116844, 116852, 116859, 116866, 116874, 116882, 116890, + 116898, 116906, 116914, 116922, 116930, 116938, 116946, 116954, 116962, + 116970, 116978, 116986, 116994, 117002, 117010, 117018, 117026, 117034, + 117042, 117049, 117055, 117061, 117067, 117073, 117079, 117085, 117091, + 117097, 117103, 117110, 117117, 117124, 117131, 117138, 117145, 117152, + 117159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117166, 117172, 117178, + 117185, 117191, 117198, 117204, 117211, 0, 0, 117217, 0, 0, 117223, + 117229, 117236, 117243, 117250, 117257, 117264, 117271, 0, 117278, + 117285, 0, 117292, 117299, 117306, 117313, 117320, 117327, 117334, + 117341, 117347, 117353, 117360, 117367, 117374, 117380, 117386, 117393, + 117399, 117405, 117412, 117419, 117426, 117432, 117438, 117445, 117452, + 117460, 117467, 117475, 117482, 117490, 0, 117497, 117505, 0, 0, 117512, + 117519, 117526, 117533, 117539, 117548, 117555, 117561, 117568, 117575, + 117582, 117590, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117600, 117607, 117613, + 117619, 117625, 117631, 117637, 117643, 117649, 117655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117661, 117665, 117670, + 117674, 117679, 117683, 117688, 117693, 0, 0, 117699, 117703, 117708, + 117712, 117717, 117721, 117726, 117731, 117736, 117741, 117746, 117751, + 117756, 117761, 117766, 117771, 117776, 117781, 117786, 117791, 117796, + 117801, 117806, 117811, 117815, 117819, 117824, 117829, 117834, 117838, + 117842, 117846, 117850, 117855, 117860, 117865, 117869, 117873, 117878, + 117883, 117889, 117894, 117900, 117905, 117911, 117917, 0, 0, 117924, + 117929, 117935, 117940, 117946, 117951, 117956, 117961, 117966, 117971, + 117975, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 117982, 117987, 117993, 118000, 118006, 118012, 118019, + 118025, 118032, 118039, 118047, 118054, 118059, 118065, 118071, 118077, + 118083, 118089, 118095, 118101, 118107, 118113, 118119, 118125, 118131, + 118137, 118143, 118149, 118155, 118161, 118166, 118171, 118177, 118183, + 118189, 118194, 118200, 118206, 118212, 118218, 118224, 118230, 118236, + 118241, 118246, 118251, 118257, 118263, 118269, 118274, 118279, 118285, + 118291, 118297, 118303, 118312, 118321, 118327, 118333, 118340, 118347, + 118354, 118361, 118369, 118376, 118384, 118390, 118396, 118403, 118410, + 118419, 118429, 0, 0, 0, 0, 0, 0, 0, 0, 118434, 118438, 118443, 118449, + 118454, 118459, 118464, 118470, 118476, 118482, 118488, 118494, 118500, + 118504, 118509, 118514, 118519, 118524, 118529, 118534, 118539, 118544, + 118549, 118554, 118559, 118564, 118569, 118574, 118579, 118584, 118589, + 118594, 118598, 118602, 118607, 118612, 118617, 118621, 118626, 118631, + 118636, 118641, 118646, 118651, 118655, 118659, 118663, 118668, 118673, + 118678, 118682, 118686, 118691, 118696, 118701, 118707, 118713, 118720, + 118726, 118733, 118740, 118747, 118754, 118761, 118768, 118775, 118781, + 118787, 118794, 118801, 118808, 118813, 118818, 118823, 118827, 118832, + 118837, 118843, 118848, 118864, 118878, 118889, 118895, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 118901, 118907, 118913, 118919, 118925, 118930, + 118936, 118942, 118948, 118954, 118960, 118966, 118972, 118976, 118980, + 118984, 118988, 118996, 119004, 119012, 119020, 119029, 119038, 119047, + 119056, 119064, 119073, 119082, 119090, 119099, 119108, 119117, 119126, + 119134, 119143, 119151, 119160, 119169, 119177, 119185, 119193, 119201, + 119209, 119218, 119227, 119237, 119247, 119257, 119267, 119277, 119286, + 119296, 119306, 119316, 119327, 119337, 119349, 119361, 119372, 119386, + 119397, 119407, 119419, 119430, 119440, 119452, 119464, 119475, 119486, + 119496, 119506, 119518, 119529, 0, 0, 0, 0, 0, 0, 0, 119541, 119545, + 119550, 119554, 119559, 119563, 119568, 119573, 119579, 0, 119584, + 119588, 119593, 119597, 119602, 119606, 119611, 119616, 119621, 119626, + 119631, 119636, 119641, 119646, 119651, 119656, 119661, 119666, 119671, + 119676, 119681, 119686, 119691, 119696, 119700, 119704, 119709, 119714, + 119719, 119723, 119727, 119731, 119735, 119740, 119745, 119750, 119754, + 119758, 119764, 119769, 119775, 119780, 119786, 119792, 119799, 0, + 119805, 119810, 119816, 119821, 119827, 119832, 119837, 119842, 119847, + 119852, 119856, 119861, 119867, 119873, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 119879, 119884, 119888, 119892, 119896, 119900, 119904, 119908, 119912, + 119916, 119920, 119924, 119928, 119932, 119936, 119940, 119944, 119948, + 119952, 119956, 119961, 119966, 119971, 119976, 119981, 119986, 119991, + 119996, 120001, 0, 0, 0, 120008, 120013, 120018, 120022, 120027, 120032, + 120037, 120042, 120047, 120052, 120057, 120062, 120067, 120072, 120076, + 120080, 120085, 120090, 120094, 120099, 120104, 120109, 120114, 120119, + 120124, 120129, 120133, 120137, 120141, 120146, 120150, 120154, 0, 0, + 120158, 120164, 120171, 120178, 120185, 120192, 120199, 120206, 120213, + 120220, 120227, 120234, 120240, 120246, 120253, 120260, 120266, 120273, + 120280, 120287, 120294, 120301, 0, 120308, 120314, 120320, 120326, + 120333, 120339, 120345, 120351, 120357, 120362, 120367, 120372, 120377, + 120382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119654, 119658, - 119663, 119667, 119672, 119676, 119681, 119686, 119692, 0, 119697, - 119701, 119706, 119710, 119715, 119719, 119724, 119729, 119734, 119739, - 119744, 119749, 119754, 119759, 119764, 119769, 119774, 119779, 119784, - 119789, 119794, 119799, 119804, 119809, 119813, 119817, 119822, 119827, - 119832, 119836, 119840, 119844, 119848, 119853, 119858, 119863, 119867, - 119871, 119877, 119882, 119888, 119893, 119899, 119905, 119912, 0, - 119918, 119923, 119929, 119934, 119940, 119945, 119950, 119955, 119960, - 119965, 119969, 119974, 119980, 119986, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 119992, 119997, 120001, 120005, 120009, 120013, 120017, 120021, 120025, - 120029, 120033, 120037, 120041, 120045, 120049, 120053, 120057, 120061, - 120065, 120069, 120074, 120079, 120084, 120089, 120094, 120099, 120104, - 120109, 120114, 0, 0, 0, 120121, 120126, 120131, 120135, 120140, 120145, - 120150, 120155, 120160, 120165, 120170, 120175, 120180, 120185, 120189, - 120193, 120198, 120203, 120207, 120212, 120217, 120222, 120227, 120232, - 120237, 120242, 120246, 120250, 120254, 120259, 120263, 120267, 0, 0, - 120271, 120277, 120284, 120291, 120298, 120305, 120312, 120319, 120326, - 120333, 120340, 120347, 120353, 120359, 120366, 120373, 120379, 120386, - 120393, 120400, 120407, 120414, 0, 120421, 120427, 120433, 120439, - 120446, 120452, 120458, 120464, 120470, 120475, 120480, 120485, 120490, - 120495, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 120500, 120505, 120511, 120516, 120522, 120527, 120533, 0, - 120538, 120544, 0, 120549, 120555, 120560, 120566, 120572, 120578, - 120584, 120590, 120596, 120602, 120608, 120614, 120620, 120626, 120632, - 120638, 120644, 120650, 120656, 120662, 120668, 120673, 120678, 120684, - 120690, 120696, 120701, 120706, 120711, 120716, 120722, 120728, 120734, - 120739, 120744, 120750, 120756, 120762, 120768, 120775, 120781, 120788, - 120794, 120801, 0, 0, 0, 120808, 0, 120814, 120821, 0, 120827, 120834, - 120840, 120846, 120852, 120858, 120864, 120869, 120874, 0, 0, 0, 0, 0, 0, - 0, 0, 120879, 120885, 120890, 120895, 120900, 120905, 120910, 120915, - 120920, 120925, 0, 0, 0, 0, 0, 0, 120930, 120935, 120941, 120946, 120952, - 120957, 0, 120963, 120969, 0, 120975, 120981, 120987, 120992, 120998, - 121004, 121010, 121015, 121020, 121026, 121032, 121038, 121043, 121049, - 121055, 121061, 121067, 121072, 121078, 121084, 121090, 121096, 121102, - 121108, 121114, 121120, 121126, 121132, 121137, 121143, 121148, 121153, - 121158, 121165, 121171, 121178, 121184, 0, 121191, 121198, 0, 121205, - 121212, 121219, 121225, 121231, 121236, 0, 0, 0, 0, 0, 0, 0, 121241, - 121247, 121252, 121257, 121262, 121267, 121272, 121277, 121282, 121287, + 0, 0, 0, 120387, 120392, 120398, 120403, 120409, 120414, 120420, 0, + 120425, 120431, 0, 120436, 120442, 120447, 120453, 120459, 120465, + 120471, 120477, 120483, 120489, 120495, 120501, 120507, 120513, 120519, + 120525, 120531, 120537, 120543, 120549, 120555, 120560, 120565, 120571, + 120577, 120583, 120588, 120593, 120598, 120603, 120609, 120615, 120621, + 120626, 120631, 120637, 120643, 120649, 120655, 120662, 120668, 120675, + 120681, 120688, 0, 0, 0, 120695, 0, 120701, 120708, 0, 120714, 120721, + 120727, 120733, 120739, 120745, 120751, 120756, 120761, 0, 0, 0, 0, 0, 0, + 0, 0, 120766, 120772, 120777, 120782, 120787, 120792, 120797, 120802, + 120807, 120812, 0, 0, 0, 0, 0, 0, 120817, 120822, 120828, 120833, 120839, + 120844, 0, 120850, 120856, 0, 120862, 120868, 120874, 120879, 120885, + 120891, 120897, 120902, 120907, 120913, 120919, 120925, 120930, 120936, + 120942, 120948, 120954, 120959, 120965, 120971, 120977, 120983, 120989, + 120995, 121001, 121007, 121013, 121019, 121024, 121030, 121035, 121040, + 121045, 121052, 121058, 121065, 121071, 0, 121078, 121085, 0, 121092, + 121099, 121106, 121112, 121118, 121123, 0, 0, 0, 0, 0, 0, 0, 121128, + 121134, 121139, 121144, 121149, 121154, 121159, 121164, 121169, 121174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -23636,1727 +23492,1692 @@ static const unsigned int phrasebook_offset2[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121292, 121296, 121301, 121306, - 121310, 121315, 121319, 121324, 121329, 121333, 121338, 121343, 121348, - 121352, 121356, 121360, 121365, 121369, 121373, 121377, 121382, 121387, - 121392, 121397, 121401, 0, 0, 0, 0, 0, 0, 0, 121408, 121413, 121418, - 121423, 121428, 121432, 121437, 121441, 121446, 121450, 121455, 121460, - 121466, 121471, 121477, 121481, 121486, 0, 121490, 121494, 121499, - 121504, 121509, 121514, 121519, 121524, 121529, 121534, 121539, 121544, - 121549, 121554, 121559, 121564, 121569, 121574, 121579, 121584, 121588, - 121592, 121597, 121602, 121607, 121611, 121615, 121619, 121623, 121628, - 121633, 121638, 121642, 121646, 121651, 121657, 121665, 121670, 121676, - 121681, 121687, 0, 0, 0, 121693, 121698, 121704, 121710, 121715, 121719, - 121723, 121728, 121736, 121746, 121752, 121760, 121766, 121773, 121781, - 121787, 121795, 121801, 121809, 121814, 121818, 121822, 121826, 121830, - 121834, 121838, 121842, 121846, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121179, 121183, 121188, 121193, + 121197, 121202, 121206, 121211, 121216, 121220, 121225, 121230, 121235, + 121239, 121243, 121247, 121252, 121256, 121260, 121264, 121269, 121274, + 121279, 121284, 121288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121295, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 121300, 121306, 121312, 121318, 121324, 121330, + 121336, 121342, 121348, 121354, 121360, 121366, 121372, 121378, 121384, + 121390, 121396, 121402, 121408, 121414, 121420, 121429, 121433, 121437, + 121441, 121445, 121449, 121453, 121457, 121461, 121465, 121469, 121473, + 121477, 121481, 121485, 121489, 121495, 121501, 121505, 121511, 121517, + 121522, 121526, 121531, 121535, 121539, 121545, 121551, 121555, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121559, 121567, 121570, 121575, 121581, + 121589, 121594, 121600, 121608, 121614, 121620, 121624, 121628, 121635, + 121644, 121651, 121660, 121666, 121675, 121682, 121689, 121696, 121706, + 121712, 121716, 121723, 121732, 121742, 121749, 121756, 121760, 121764, + 121771, 121781, 121785, 121792, 121799, 121806, 121812, 121819, 121826, + 121833, 121840, 121844, 121848, 121852, 121859, 121863, 121870, 121877, + 121891, 121900, 121904, 121908, 121912, 121919, 121923, 121927, 121931, + 121939, 121947, 121966, 121976, 121996, 122000, 122004, 122008, 122012, + 122016, 122020, 122024, 122031, 122035, 122038, 122042, 122046, 122052, + 122059, 122068, 122072, 122081, 122090, 122098, 122102, 122109, 122113, + 122117, 122121, 122125, 122136, 122145, 122154, 122163, 122172, 122184, + 122193, 122202, 122211, 122219, 122228, 122240, 122249, 122257, 122266, + 122278, 122287, 122296, 122308, 122317, 122326, 122338, 122347, 122351, + 122355, 122359, 122363, 122367, 122371, 122375, 122382, 122386, 122390, + 122401, 122405, 122409, 122416, 122422, 122428, 122432, 122439, 122443, + 122447, 122451, 122455, 122459, 122463, 122469, 122477, 122481, 122485, + 122488, 122495, 122507, 122511, 122523, 122530, 122537, 122544, 122551, + 122557, 122561, 122565, 122569, 122573, 122580, 122589, 122596, 122604, + 122612, 122618, 122622, 122626, 122630, 122634, 122640, 122649, 122661, + 122668, 122675, 122684, 122695, 122701, 122710, 122719, 122726, 122735, + 122742, 122748, 122758, 122765, 122772, 122779, 122786, 122790, 122796, + 122800, 122811, 122819, 122828, 122840, 122847, 122854, 122864, 122871, + 122880, 122887, 122896, 122903, 122910, 122920, 122927, 122934, 122943, + 122950, 122962, 122971, 122978, 122985, 122992, 123001, 123011, 123024, + 123031, 123040, 123050, 123057, 123066, 123079, 123086, 123093, 123100, + 123110, 123120, 123126, 123136, 123143, 123150, 123160, 123166, 123173, + 123180, 123187, 123197, 123204, 123211, 123218, 123224, 123231, 123241, + 123248, 123252, 123260, 123264, 123276, 123280, 123294, 123298, 123302, + 123306, 123310, 123316, 123323, 123331, 123335, 123339, 123343, 123347, + 123354, 123358, 123364, 123370, 123378, 123382, 123389, 123397, 123401, + 123405, 123411, 123415, 123424, 123433, 123440, 123450, 123456, 123460, + 123464, 123472, 123479, 123486, 123492, 123496, 123504, 123508, 123515, + 123527, 123534, 123544, 123550, 123554, 123563, 123570, 123579, 123583, + 123587, 123594, 123598, 123602, 123606, 123610, 123613, 123619, 123625, + 123629, 123633, 123640, 123647, 123654, 123661, 123668, 123675, 123682, + 123689, 123695, 123699, 123703, 123710, 123717, 123724, 123731, 123738, + 123742, 123745, 123750, 123754, 123758, 123767, 123776, 123780, 123784, + 123790, 123796, 123813, 123819, 123823, 123832, 123836, 123840, 123847, + 123855, 123863, 123869, 123873, 123877, 123881, 123885, 123888, 123894, + 123901, 123911, 123918, 123925, 123932, 123938, 123945, 123952, 123959, + 123966, 123973, 123982, 123989, 124001, 124008, 124015, 124025, 124036, + 124043, 124050, 124057, 124064, 124071, 124078, 124085, 124092, 124099, + 124106, 124116, 124126, 124136, 124143, 124153, 124160, 124167, 124174, + 124181, 124187, 124194, 124201, 124208, 124215, 124222, 124229, 124236, + 124243, 124249, 124256, 124263, 124272, 124279, 124286, 124290, 124298, + 124302, 124306, 124310, 124314, 124318, 124325, 124329, 124338, 124342, + 124349, 124357, 124361, 124365, 124369, 124382, 124398, 124402, 124406, + 124413, 124419, 124426, 124430, 124434, 124438, 124442, 124446, 124453, + 124457, 124475, 124479, 124483, 124490, 124494, 124498, 124504, 124508, + 124512, 124520, 124524, 124528, 124531, 124535, 124541, 124552, 124561, + 124570, 124577, 124584, 124595, 124602, 124609, 124616, 124623, 124630, + 124637, 124644, 124654, 124660, 124667, 124677, 124686, 124693, 124702, + 124712, 124719, 124726, 124733, 124740, 124752, 124759, 124766, 124773, + 124780, 124787, 124797, 124804, 124811, 124821, 124834, 124846, 124853, + 124863, 124870, 124877, 124884, 124898, 124904, 124912, 124922, 124932, + 124939, 124946, 124952, 124956, 124963, 124973, 124979, 124992, 124996, + 125000, 125007, 125011, 125018, 125028, 125032, 125036, 125040, 125044, + 125048, 125055, 125059, 125066, 125073, 125080, 125089, 125098, 125108, + 125115, 125122, 125129, 125139, 125146, 125156, 125163, 125173, 125180, + 125187, 125197, 125207, 125214, 125220, 125228, 125236, 125242, 125248, + 125252, 125256, 125263, 125271, 125277, 125281, 125285, 125289, 125296, + 125308, 125311, 125318, 125324, 125328, 125332, 125336, 125340, 125344, + 125348, 125352, 125356, 125360, 125364, 125371, 125375, 125381, 125385, + 125389, 125393, 125399, 125406, 125413, 125420, 125431, 125439, 125443, + 125449, 125458, 125465, 125471, 125474, 125478, 125482, 125488, 125497, + 125505, 125509, 125515, 125519, 125523, 125527, 125533, 125540, 125546, + 125550, 125556, 125560, 125564, 125573, 125585, 125589, 125596, 125603, + 125613, 125620, 125632, 125639, 125646, 125653, 125664, 125674, 125687, + 125697, 125704, 125708, 125712, 125716, 125720, 125729, 125738, 125747, + 125764, 125773, 125779, 125786, 125794, 125807, 125811, 125820, 125829, + 125838, 125847, 125858, 125867, 125875, 125884, 125893, 125902, 125911, + 125921, 125924, 125928, 125932, 125936, 125940, 125944, 125950, 125957, + 125964, 125971, 125977, 125983, 125990, 125996, 126003, 126011, 126015, + 126022, 126029, 126036, 126044, 126047, 126051, 126055, 126059, 126062, + 126068, 126072, 126078, 126085, 126092, 126098, 126105, 126112, 126119, + 126126, 126133, 126140, 126147, 126154, 126161, 126168, 126175, 126182, + 126189, 126196, 126202, 126206, 126215, 126219, 126223, 126227, 126231, + 126237, 126244, 126251, 126258, 126265, 126272, 126278, 126286, 126290, + 126294, 126298, 126302, 126308, 126325, 126342, 126346, 126350, 126354, + 126358, 126362, 126366, 126372, 126379, 126383, 126389, 126396, 126403, + 126410, 126417, 126424, 126433, 126440, 126447, 126454, 126461, 126465, + 126469, 126475, 126487, 126491, 126495, 126504, 126508, 126512, 126516, + 126522, 126526, 126530, 126539, 126543, 126547, 126551, 126558, 126562, + 126566, 126570, 126574, 126578, 126582, 126586, 126590, 126596, 126603, + 126610, 126616, 126620, 126637, 126643, 126647, 126654, 126661, 126668, + 126675, 126682, 126689, 126693, 126697, 126701, 126707, 126711, 126717, + 126721, 126725, 126732, 126739, 126756, 126760, 126764, 126768, 126772, + 126776, 126788, 126791, 126796, 126801, 126816, 126826, 126838, 126842, + 126846, 126850, 126856, 126863, 126870, 126880, 126892, 126898, 126904, + 126913, 126917, 126921, 126928, 126938, 126945, 126951, 126955, 126959, + 126966, 126972, 126976, 126982, 126986, 126994, 127000, 127004, 127012, + 127020, 127027, 127033, 127040, 127047, 127057, 127067, 127071, 127075, + 127079, 127083, 127089, 127096, 127102, 127109, 127116, 127123, 127132, + 127139, 127146, 127152, 127159, 127166, 127173, 127180, 127187, 127194, + 127200, 127207, 127214, 127221, 127230, 127237, 127244, 127248, 127254, + 127258, 127264, 127271, 127278, 127285, 127289, 127293, 127297, 127301, + 127305, 127312, 127316, 127320, 127326, 127334, 127338, 127342, 127346, + 127350, 127357, 127361, 127365, 127373, 127377, 127381, 127385, 127389, + 127395, 127399, 127403, 127409, 127416, 127422, 127429, 127441, 127445, + 127452, 127459, 127466, 127473, 127485, 127492, 127496, 127500, 127504, + 127511, 127518, 127525, 127532, 127542, 127549, 127555, 127562, 127569, + 127576, 127583, 127592, 127602, 127609, 127613, 127620, 127624, 127628, + 127632, 127639, 127646, 127656, 127662, 127666, 127675, 127679, 127686, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 121850, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121855, 121861, - 121867, 121873, 121879, 121885, 121891, 121897, 121903, 121909, 121915, - 121921, 121927, 121933, 121939, 121945, 121951, 121957, 121963, 121969, - 121975, 121984, 121988, 121992, 121996, 122000, 122004, 122008, 122012, - 122016, 122020, 122024, 122028, 122032, 122036, 122040, 122044, 122050, - 122056, 122060, 122066, 122072, 122077, 122081, 122086, 122090, 122094, - 122100, 122106, 122110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122114, - 122122, 122125, 122130, 122136, 122144, 122149, 122155, 122163, 122169, - 122175, 122179, 122183, 122190, 122199, 122206, 122215, 122221, 122230, - 122237, 122244, 122251, 122261, 122267, 122271, 122278, 122287, 122297, - 122304, 122311, 122315, 122319, 122326, 122336, 122340, 122347, 122354, - 122361, 122367, 122374, 122381, 122388, 122395, 122399, 122403, 122407, - 122414, 122418, 122425, 122432, 122446, 122455, 122459, 122463, 122467, - 122474, 122478, 122482, 122486, 122494, 122502, 122521, 122531, 122551, - 122555, 122559, 122563, 122567, 122571, 122575, 122579, 122586, 122590, - 122593, 122597, 122601, 122607, 122614, 122623, 122627, 122636, 122645, - 122653, 122657, 122664, 122668, 122672, 122676, 122680, 122691, 122700, - 122709, 122718, 122727, 122739, 122748, 122757, 122766, 122774, 122783, - 122795, 122804, 122812, 122821, 122833, 122842, 122851, 122863, 122872, - 122881, 122893, 122902, 122906, 122910, 122914, 122918, 122922, 122926, - 122930, 122937, 122941, 122945, 122956, 122960, 122964, 122971, 122977, - 122983, 122987, 122994, 122998, 123002, 123006, 123010, 123014, 123018, - 123024, 123032, 123036, 123040, 123043, 123050, 123062, 123066, 123078, - 123085, 123092, 123099, 123106, 123112, 123116, 123120, 123124, 123128, - 123135, 123144, 123151, 123159, 123167, 123173, 123177, 123181, 123185, - 123189, 123195, 123204, 123216, 123223, 123230, 123239, 123250, 123256, - 123265, 123274, 123281, 123290, 123297, 123303, 123313, 123320, 123327, - 123334, 123341, 123345, 123351, 123355, 123366, 123374, 123383, 123395, - 123402, 123409, 123419, 123426, 123435, 123442, 123451, 123458, 123465, - 123475, 123482, 123489, 123498, 123505, 123517, 123526, 123533, 123540, - 123547, 123556, 123566, 123579, 123586, 123595, 123605, 123612, 123621, - 123634, 123641, 123648, 123655, 123665, 123675, 123681, 123691, 123698, - 123705, 123715, 123721, 123728, 123735, 123742, 123752, 123759, 123766, - 123773, 123779, 123786, 123796, 123803, 123807, 123815, 123819, 123831, - 123835, 123849, 123853, 123857, 123861, 123865, 123871, 123878, 123886, - 123890, 123894, 123898, 123902, 123909, 123913, 123919, 123925, 123933, - 123937, 123944, 123952, 123956, 123960, 123966, 123970, 123979, 123988, - 123995, 124005, 124011, 124015, 124019, 124027, 124034, 124041, 124047, - 124051, 124059, 124063, 124070, 124082, 124089, 124099, 124105, 124109, - 124118, 124125, 124134, 124138, 124142, 124149, 124153, 124157, 124161, - 124165, 124168, 124174, 124180, 124184, 124188, 124195, 124202, 124209, - 124216, 124223, 124230, 124237, 124244, 124250, 124254, 124258, 124265, - 124272, 124279, 124286, 124293, 124297, 124300, 124305, 124309, 124313, - 124322, 124331, 124335, 124339, 124345, 124351, 124368, 124374, 124378, - 124387, 124391, 124395, 124402, 124410, 124418, 124424, 124428, 124432, - 124436, 124440, 124443, 124449, 124456, 124466, 124473, 124480, 124487, - 124493, 124500, 124507, 124514, 124521, 124528, 124537, 124544, 124556, - 124563, 124570, 124580, 124591, 124598, 124605, 124612, 124619, 124626, - 124633, 124640, 124647, 124654, 124661, 124671, 124681, 124691, 124698, - 124708, 124715, 124722, 124729, 124736, 124742, 124749, 124756, 124763, - 124770, 124777, 124784, 124791, 124798, 124804, 124811, 124818, 124827, - 124834, 124841, 124845, 124853, 124857, 124861, 124865, 124869, 124873, - 124880, 124884, 124893, 124897, 124904, 124912, 124916, 124920, 124924, - 124937, 124953, 124957, 124961, 124968, 124974, 124981, 124985, 124989, - 124993, 124997, 125001, 125008, 125012, 125030, 125034, 125038, 125045, - 125049, 125053, 125059, 125063, 125067, 125075, 125079, 125083, 125086, - 125090, 125096, 125107, 125116, 125125, 125132, 125139, 125150, 125157, - 125164, 125171, 125178, 125185, 125192, 125199, 125209, 125215, 125222, - 125232, 125241, 125248, 125257, 125267, 125274, 125281, 125288, 125295, - 125307, 125314, 125321, 125328, 125335, 125342, 125352, 125359, 125366, - 125376, 125389, 125401, 125408, 125418, 125425, 125432, 125439, 125453, - 125459, 125467, 125477, 125487, 125494, 125501, 125507, 125511, 125518, - 125528, 125534, 125547, 125551, 125555, 125562, 125566, 125573, 125583, - 125587, 125591, 125595, 125599, 125603, 125610, 125614, 125621, 125628, - 125635, 125644, 125653, 125663, 125670, 125677, 125684, 125694, 125701, - 125711, 125718, 125728, 125735, 125742, 125752, 125762, 125769, 125775, - 125783, 125791, 125797, 125803, 125807, 125811, 125818, 125826, 125832, - 125836, 125840, 125844, 125851, 125863, 125866, 125873, 125879, 125883, - 125887, 125891, 125895, 125899, 125903, 125907, 125911, 125915, 125919, - 125926, 125930, 125936, 125940, 125944, 125948, 125954, 125961, 125968, - 125975, 125986, 125994, 125998, 126004, 126013, 126020, 126026, 126029, - 126033, 126037, 126043, 126052, 126060, 126064, 126070, 126074, 126078, - 126082, 126088, 126095, 126101, 126105, 126111, 126115, 126119, 126128, - 126140, 126144, 126151, 126158, 126168, 126175, 126187, 126194, 126201, - 126208, 126219, 126229, 126242, 126252, 126259, 126263, 126267, 126271, - 126275, 126284, 126293, 126302, 126319, 126328, 126334, 126341, 126349, - 126362, 126366, 126375, 126384, 126393, 126402, 126413, 126422, 126430, - 126439, 126448, 126457, 126466, 126476, 126479, 126483, 126487, 126491, - 126495, 126499, 126505, 126512, 126519, 126526, 126532, 126538, 126545, - 126551, 126558, 126566, 126570, 126577, 126584, 126591, 126599, 126602, - 126606, 126610, 126614, 126617, 126623, 126627, 126633, 126640, 126647, - 126653, 126660, 126667, 126674, 126681, 126688, 126695, 126702, 126709, - 126716, 126723, 126730, 126737, 126744, 126751, 126757, 126761, 126770, - 126774, 126778, 126782, 126786, 126792, 126799, 126806, 126813, 126820, - 126827, 126833, 126841, 126845, 126849, 126853, 126857, 126863, 126880, - 126897, 126901, 126905, 126909, 126913, 126917, 126921, 126927, 126934, - 126938, 126944, 126951, 126958, 126965, 126972, 126979, 126988, 126995, - 127002, 127009, 127016, 127020, 127024, 127030, 127042, 127046, 127050, - 127059, 127063, 127067, 127071, 127077, 127081, 127085, 127094, 127098, - 127102, 127106, 127113, 127117, 127121, 127125, 127129, 127133, 127137, - 127141, 127145, 127151, 127158, 127165, 127171, 127175, 127192, 127198, - 127202, 127209, 127216, 127223, 127230, 127237, 127244, 127248, 127252, - 127256, 127262, 127266, 127272, 127276, 127280, 127287, 127294, 127311, - 127315, 127319, 127323, 127327, 127331, 127343, 127346, 127351, 127356, - 127371, 127381, 127393, 127397, 127401, 127405, 127411, 127418, 127425, - 127435, 127447, 127453, 127459, 127468, 127472, 127476, 127483, 127493, - 127500, 127506, 127510, 127514, 127521, 127527, 127531, 127537, 127541, - 127549, 127555, 127559, 127567, 127575, 127582, 127588, 127595, 127602, - 127612, 127622, 127626, 127630, 127634, 127638, 127644, 127651, 127657, - 127664, 127671, 127678, 127687, 127694, 127701, 127707, 127714, 127721, - 127728, 127735, 127742, 127749, 127755, 127762, 127769, 127776, 127785, - 127792, 127799, 127803, 127809, 127813, 127819, 127826, 127833, 127840, - 127844, 127848, 127852, 127856, 127860, 127867, 127871, 127875, 127881, - 127889, 127893, 127897, 127901, 127905, 127912, 127916, 127920, 127928, - 127932, 127936, 127940, 127944, 127950, 127954, 127958, 127964, 127971, - 127977, 127984, 127996, 128000, 128007, 128014, 128021, 128028, 128040, - 128047, 128051, 128055, 128059, 128066, 128073, 128080, 128087, 128097, - 128104, 128110, 128117, 128124, 128131, 128138, 128147, 128157, 128164, - 128168, 128175, 128179, 128183, 128187, 128194, 128201, 128211, 128217, - 128221, 128230, 128234, 128241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 127690, 127696, 127702, 127709, 127716, 127723, 127730, + 127737, 127744, 127750, 127757, 127764, 127771, 127778, 127785, 127792, + 127798, 127804, 127810, 127816, 127822, 127828, 127834, 127840, 127846, + 127853, 127860, 127867, 127874, 127881, 127888, 127894, 127900, 127906, + 127913, 127920, 127926, 127932, 127941, 127948, 127955, 127962, 127969, + 127976, 127983, 127989, 127995, 128001, 128010, 128017, 128024, 128035, + 128046, 128052, 128058, 128064, 128073, 128080, 128087, 128097, 128107, + 128118, 128129, 128141, 128154, 128165, 128176, 128188, 128201, 128212, + 128223, 128234, 128245, 128256, 128268, 128276, 128284, 128293, 128302, + 128311, 128317, 128323, 128329, 128336, 128346, 128353, 128363, 128368, + 128373, 128379, 128385, 128393, 128401, 128410, 128421, 128432, 128440, + 128448, 128457, 128466, 128474, 128481, 128489, 128497, 128504, 128511, + 128520, 128529, 128538, 128547, 128556, 0, 128565, 128576, 128583, + 128591, 128599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128607, 128616, 128623, + 128630, 128639, 128646, 128653, 128660, 128670, 128677, 128684, 128691, + 128699, 128706, 128713, 128720, 128731, 128738, 128745, 128752, 128759, + 128766, 128775, 128782, 128788, 128795, 128804, 128811, 128818, 128825, + 128835, 128842, 128849, 128859, 128869, 128876, 128883, 128890, 128897, + 128904, 128911, 128920, 128927, 128934, 128940, 128948, 128957, 128966, + 128977, 128985, 128994, 129003, 129012, 129021, 129028, 129035, 129044, + 129056, 129066, 129073, 129080, 129090, 129100, 129109, 129119, 129126, + 129136, 129143, 129150, 129157, 129167, 129177, 129184, 129191, 129201, + 129207, 129218, 129227, 129237, 129245, 129258, 129265, 129271, 129279, + 129286, 129296, 129300, 129304, 129308, 129312, 129316, 129320, 129324, + 129333, 129337, 129344, 129348, 129352, 129356, 129360, 129364, 129368, + 129372, 129376, 129380, 129384, 129388, 129392, 129396, 129400, 129404, + 129408, 129412, 129416, 129420, 129427, 129434, 129444, 129457, 129467, + 129471, 129475, 129479, 129483, 129487, 129491, 129495, 129499, 129503, + 129507, 129511, 129518, 129525, 129536, 129543, 129549, 129556, 129563, + 129570, 129577, 129584, 129588, 129592, 129599, 129606, 129613, 129622, + 129629, 129642, 129652, 129659, 129666, 129670, 129674, 129683, 129690, + 129697, 129704, 129717, 129724, 129731, 129741, 129751, 129760, 129767, + 129774, 129781, 129788, 129795, 129802, 129812, 129818, 129826, 129833, + 129841, 129848, 129859, 129866, 129872, 129879, 129886, 129893, 129900, + 129910, 129920, 129927, 129934, 129943, 129951, 129957, 129964, 129971, + 129978, 129985, 129989, 129999, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128245, 128251, 128257, - 128264, 128271, 128278, 128285, 128292, 128299, 128305, 128312, 128319, - 128326, 128333, 128340, 128347, 128353, 128359, 128365, 128371, 128377, - 128383, 128389, 128395, 128401, 128408, 128415, 128422, 128429, 128436, - 128443, 128449, 128455, 128461, 128468, 128475, 128481, 128487, 128496, - 128503, 128510, 128517, 128524, 128531, 128538, 128544, 128550, 128556, - 128565, 128572, 128579, 128590, 128601, 128607, 128613, 128619, 128628, - 128635, 128642, 128652, 128662, 128673, 128684, 128696, 128709, 128720, - 128731, 128743, 128756, 128767, 128778, 128789, 128800, 128811, 128823, - 128831, 128839, 128848, 128857, 128866, 128872, 128878, 128884, 128891, - 128901, 128908, 128918, 128923, 128928, 128934, 128940, 128948, 128956, - 128965, 128976, 128987, 128995, 129003, 129012, 129021, 129029, 129036, - 129044, 129052, 129059, 129066, 129075, 129084, 129093, 129102, 129111, - 0, 129120, 129131, 129138, 129146, 129154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 129162, 129171, 129178, 129185, 129194, 129201, 129208, 129215, - 129225, 129232, 129239, 129246, 129254, 129261, 129268, 129275, 129286, - 129293, 129300, 129307, 129314, 129321, 129330, 129337, 129343, 129350, - 129359, 129366, 129373, 129380, 129390, 129397, 129404, 129414, 129424, - 129431, 129438, 129445, 129452, 129459, 129466, 129475, 129482, 129489, - 129495, 129503, 129512, 129521, 129532, 129540, 129549, 129558, 129567, - 129576, 129583, 129590, 129599, 129611, 129621, 129628, 129635, 129645, - 129655, 129664, 129674, 129681, 129691, 129698, 129705, 129712, 129722, - 129732, 129739, 129746, 129756, 129762, 129773, 129782, 129792, 129800, - 129813, 129820, 129826, 129834, 129841, 129851, 129855, 129859, 129863, - 129867, 129871, 129875, 129879, 129888, 129892, 129899, 129903, 129907, - 129911, 129915, 129919, 129923, 129927, 129931, 129935, 129939, 129943, - 129947, 129951, 129955, 129959, 129963, 129967, 129971, 129975, 129982, - 129989, 129999, 130012, 130022, 130026, 130030, 130034, 130038, 130042, - 130046, 130050, 130054, 130058, 130062, 130066, 130073, 130080, 130091, - 130098, 130104, 130111, 130118, 130125, 130132, 130139, 130143, 130147, - 130154, 130161, 130168, 130177, 130184, 130197, 130207, 130214, 130221, - 130225, 130229, 130238, 130245, 130252, 130259, 130272, 130279, 130286, - 130296, 130306, 130315, 130322, 130329, 130336, 130343, 130350, 130357, - 130367, 130373, 130381, 130388, 130396, 130403, 130414, 130421, 130427, - 130434, 130441, 130448, 130455, 130465, 130475, 130482, 130489, 130498, - 130506, 130512, 130519, 130526, 130533, 130540, 130544, 130554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130009, 130014, 130019, 130024, + 130029, 130034, 130039, 130044, 130049, 130054, 130059, 130064, 130069, + 130074, 130079, 130084, 130089, 130094, 130099, 130104, 130109, 130114, + 130119, 130124, 130129, 130134, 130139, 130144, 130149, 130154, 130159, + 130164, 130169, 130174, 130179, 130184, 130189, 130194, 130199, 130204, + 130209, 130214, 130219, 130224, 130229, 130234, 130239, 130244, 130249, + 130254, 130259, 130264, 130269, 130274, 130279, 130284, 130289, 130294, + 130299, 130304, 130309, 130314, 130319, 130324, 130329, 130334, 130339, + 130344, 130349, 130354, 130359, 130364, 130369, 130374, 130379, 130384, + 130389, 130394, 130399, 130404, 130409, 130414, 130419, 130424, 130429, + 130434, 130439, 130444, 130449, 130454, 130459, 130464, 130469, 130474, + 130479, 130484, 130489, 130494, 130499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 130504, 130508, 130512, 130516, 130520, 130524, 130528, 130532, + 130536, 130540, 130544, 130548, 130552, 130556, 130560, 130564, 130568, + 130572, 130576, 130580, 130584, 130588, 130592, 130596, 130600, 130604, + 130608, 130612, 130616, 130620, 130624, 130628, 130632, 130636, 130640, + 130644, 130648, 130652, 130656, 130660, 130664, 130668, 130672, 130676, + 130680, 130684, 130688, 130692, 130696, 130700, 130704, 130708, 130712, + 130716, 130720, 130724, 130728, 130732, 130736, 130740, 130744, 130748, + 130752, 130756, 130760, 130764, 130768, 130772, 130776, 130780, 130784, + 130788, 130792, 130796, 130800, 130804, 130808, 130812, 130816, 130820, + 130824, 130828, 130832, 130836, 130840, 130844, 130848, 130852, 130856, + 130860, 130864, 130868, 130872, 130876, 130880, 130884, 130888, 130892, + 130896, 130900, 130904, 130908, 130912, 130916, 130920, 130924, 130928, + 130932, 130936, 130940, 130944, 130948, 130952, 130956, 130960, 130964, + 130968, 130972, 130976, 130980, 130984, 130988, 130992, 130996, 131000, + 131004, 131008, 131012, 131016, 131020, 131024, 131028, 131032, 131036, + 131040, 131044, 131048, 131052, 131056, 131060, 131064, 131068, 131072, + 131076, 131080, 131084, 131088, 131092, 131096, 131100, 131104, 131108, + 131112, 131116, 131120, 131124, 131128, 131132, 131136, 131140, 131144, + 131148, 131152, 131156, 131160, 131164, 131168, 131172, 131176, 131180, + 131184, 131188, 131192, 131196, 131200, 131204, 131208, 131212, 131216, + 131220, 131224, 131228, 131232, 131236, 131240, 131244, 131248, 131252, + 131256, 131260, 131264, 131268, 131272, 131276, 131280, 131284, 131288, + 131292, 131296, 131300, 131304, 131308, 131312, 131316, 131320, 131324, + 131328, 131332, 131336, 131340, 131344, 131348, 131352, 131356, 131360, + 131364, 131368, 131372, 131376, 131380, 131384, 131388, 131392, 131396, + 131400, 131404, 131408, 131412, 131416, 131420, 131424, 131428, 131432, + 131436, 131440, 131444, 131448, 131452, 131456, 131460, 131464, 131468, + 131472, 131476, 131480, 131484, 131488, 131492, 131496, 131500, 131504, + 131508, 131512, 131516, 131520, 131524, 131528, 131532, 131536, 131540, + 131544, 131548, 131552, 131556, 131560, 131564, 131568, 131572, 131576, + 131580, 131584, 131588, 131592, 131596, 131600, 131604, 131608, 131612, + 131616, 131620, 131624, 131628, 131632, 131636, 131640, 131644, 131648, + 131652, 131656, 131660, 131664, 131668, 131672, 131676, 131680, 131684, + 131688, 131692, 131696, 131700, 131704, 131708, 131712, 131716, 131720, + 131724, 131728, 131732, 131736, 131740, 131744, 131748, 131752, 131756, + 131760, 131764, 131768, 131772, 131776, 131780, 131784, 131788, 131792, + 131796, 131800, 131804, 131808, 131812, 131816, 131820, 131824, 131828, + 131832, 131836, 131840, 131844, 131848, 131852, 131856, 131860, 131864, + 131868, 131872, 131876, 131880, 131884, 131888, 131892, 131896, 131900, + 131904, 131908, 131912, 131916, 131920, 131924, 131928, 131932, 131936, + 131940, 131944, 131948, 131952, 131956, 131960, 131964, 131968, 131972, + 131976, 131980, 131984, 131988, 131992, 131996, 132000, 132004, 132008, + 132012, 132016, 132020, 132024, 132028, 132032, 132036, 132040, 132044, + 132048, 132052, 132056, 132060, 132064, 132068, 132072, 132076, 132080, + 132084, 132088, 132092, 132096, 132100, 132104, 132108, 132112, 132116, + 132120, 132124, 132128, 132132, 132136, 132140, 132144, 132148, 132152, + 132156, 132160, 132164, 132168, 132172, 132176, 132180, 132184, 132188, + 132192, 132196, 132200, 132204, 132208, 132212, 132216, 132220, 132224, + 132228, 132232, 132236, 132240, 132244, 132248, 132252, 132256, 132260, + 132264, 132268, 132272, 132276, 132280, 132284, 132288, 132292, 132296, + 132300, 132304, 132308, 132312, 132316, 132320, 132324, 132328, 132332, + 132336, 132340, 132344, 132348, 132352, 132356, 132360, 132364, 132368, + 132372, 132376, 132380, 132384, 132388, 132392, 132396, 132400, 132404, + 132408, 132412, 132416, 132420, 132424, 132428, 132432, 132436, 132440, + 132444, 132448, 132452, 132456, 132460, 132464, 132468, 132472, 132476, + 132480, 132484, 132488, 132492, 132496, 132500, 132504, 132508, 132512, + 132516, 132520, 132524, 132528, 132532, 132536, 132540, 132544, 132548, + 132552, 132556, 132560, 132564, 132568, 132572, 132576, 132580, 132584, + 132588, 132592, 132596, 132600, 132604, 132608, 132612, 132616, 132620, + 132624, 132628, 132632, 132636, 132640, 132644, 132648, 132652, 132656, + 132660, 132664, 132668, 132672, 132676, 132680, 132684, 132688, 132692, + 132696, 132700, 132704, 132708, 132712, 132716, 132720, 132724, 132728, + 132732, 132736, 132740, 132744, 132748, 132752, 132756, 132760, 132764, + 132768, 132772, 132776, 132780, 132784, 132788, 132792, 132796, 132800, + 132804, 132808, 132812, 132816, 132820, 132824, 132828, 132832, 132836, + 132840, 132844, 132848, 132852, 132856, 132860, 132864, 132868, 132872, + 132876, 132880, 132884, 132888, 132892, 132896, 132900, 132904, 132908, + 132912, 132916, 132920, 132924, 132928, 132932, 132936, 132940, 132944, + 132948, 132952, 132956, 132960, 132964, 132968, 132972, 132976, 132980, + 132984, 132988, 132992, 132996, 133000, 133004, 133008, 133012, 133016, + 133020, 133024, 133028, 133032, 133036, 133040, 133044, 133048, 133052, + 133056, 133060, 133064, 133068, 133072, 133076, 133080, 133084, 133088, + 133092, 133096, 133100, 133104, 133108, 133112, 133116, 133120, 133124, + 133128, 133132, 133136, 133140, 133144, 133148, 133152, 133156, 133160, + 133164, 133168, 133172, 133176, 133180, 133184, 133188, 133192, 133196, + 133200, 133204, 133208, 133212, 133216, 133220, 133224, 133228, 133232, + 133236, 133240, 133244, 133248, 133252, 133256, 133260, 133264, 133268, + 133272, 133276, 133280, 133284, 133288, 133292, 133296, 133300, 133304, + 133308, 133312, 133316, 133320, 133324, 133328, 133332, 133336, 133340, + 133344, 133348, 133352, 133356, 133360, 133364, 133368, 133372, 133376, + 133380, 133384, 133388, 133392, 133396, 133400, 133404, 133408, 133412, + 133416, 133420, 133424, 133428, 133432, 133436, 133440, 133444, 133448, + 133452, 133456, 133460, 133464, 133468, 133472, 133476, 133480, 133484, + 133488, 133492, 133496, 133500, 133504, 133508, 133512, 133516, 133520, + 133524, 133528, 133532, 133536, 133540, 133544, 133548, 133552, 133556, + 133560, 133564, 133568, 133572, 133576, 133580, 133584, 133588, 133592, + 133596, 133600, 133604, 133608, 133612, 133616, 133620, 133624, 133628, + 133632, 133636, 133640, 133644, 133648, 133652, 133656, 133660, 133664, + 133668, 133672, 133676, 133680, 133684, 133688, 133692, 133696, 133700, + 133704, 133708, 133712, 133716, 133720, 133724, 133728, 133732, 133736, + 133740, 133744, 133748, 133752, 133756, 133760, 133764, 133768, 133772, + 133776, 133780, 133784, 133788, 133792, 133796, 133800, 133804, 133808, + 133812, 133816, 133820, 133824, 133828, 133832, 133836, 133840, 133844, + 133848, 133852, 133856, 133860, 133864, 133868, 133872, 133876, 133880, + 133884, 133888, 133892, 133896, 133900, 133904, 133908, 133912, 133916, + 133920, 133924, 133928, 133932, 133936, 133940, 133944, 133948, 133952, + 133956, 133960, 133964, 133968, 133972, 133976, 133980, 133984, 133988, + 133992, 133996, 134000, 134004, 134008, 134012, 134016, 134020, 134024, + 134028, 134032, 134036, 134040, 134044, 134048, 134052, 134056, 134060, + 134064, 134068, 134072, 134076, 134080, 134084, 134088, 134092, 134096, + 134100, 134104, 134108, 134112, 134116, 134120, 134124, 134128, 134132, + 134136, 134140, 134144, 134148, 134152, 134156, 134160, 134164, 134168, + 134172, 134176, 134180, 134184, 134188, 134192, 134196, 134200, 134204, + 134208, 134212, 134216, 134220, 134224, 134228, 134232, 134236, 134240, + 134244, 134248, 134252, 134256, 134260, 134264, 134268, 134272, 134276, + 134280, 134284, 134288, 134292, 134296, 134300, 134304, 134308, 134312, + 134316, 134320, 134324, 134328, 134332, 134336, 134340, 134344, 134348, + 134352, 134356, 134360, 134364, 134368, 134372, 134376, 134380, 134384, + 134388, 134392, 134396, 134400, 134404, 134408, 134412, 134416, 134420, + 134424, 134428, 134432, 134436, 134440, 134444, 134448, 134452, 134456, + 134460, 134464, 134468, 134472, 134476, 134480, 134484, 134488, 134492, + 134496, 134500, 134504, 134508, 134512, 134516, 134520, 134524, 134528, + 134532, 134536, 134540, 134544, 134548, 134552, 134556, 134560, 134564, + 134568, 134572, 134576, 134580, 134584, 134588, 134592, 134596, 134600, + 134604, 134608, 134612, 134616, 134620, 134624, 134628, 134632, 134636, + 134640, 134644, 134648, 134652, 134656, 134660, 134664, 134668, 134672, + 134676, 134680, 134684, 134688, 134692, 134696, 134700, 134704, 134708, + 134712, 134716, 134720, 134724, 134728, 134732, 134736, 134740, 134744, + 134748, 134752, 134756, 134760, 134764, 134768, 134772, 134776, 134780, + 134784, 0, 134788, 134793, 134799, 134809, 134819, 134829, 134839, + 134845, 134851, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 130564, 130569, 130574, 130579, 130584, 130589, 130594, 130599, - 130604, 130609, 130614, 130619, 130624, 130629, 130634, 130639, 130644, - 130649, 130654, 130659, 130664, 130669, 130674, 130679, 130684, 130689, - 130694, 130699, 130704, 130709, 130714, 130719, 130724, 130729, 130734, - 130739, 130744, 130749, 130754, 130759, 130764, 130769, 130774, 130779, - 130784, 130789, 130794, 130799, 130804, 130809, 130814, 130819, 130824, - 130829, 130834, 130839, 130844, 130849, 130854, 130859, 130864, 130869, - 130874, 130879, 130884, 130889, 130894, 130899, 130904, 130909, 130914, - 130919, 130924, 130929, 130934, 130939, 130944, 130949, 130954, 130959, - 130964, 130969, 130974, 130979, 130984, 130989, 130994, 130999, 131004, - 131009, 131014, 131019, 131024, 131029, 131034, 131039, 131044, 131049, - 131054, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131059, 131063, 131067, - 131071, 131075, 131079, 131083, 131087, 131091, 131095, 131099, 131103, - 131107, 131111, 131115, 131119, 131123, 131127, 131131, 131135, 131139, - 131143, 131147, 131151, 131155, 131159, 131163, 131167, 131171, 131175, - 131179, 131183, 131187, 131191, 131195, 131199, 131203, 131207, 131211, - 131215, 131219, 131223, 131227, 131231, 131235, 131239, 131243, 131247, - 131251, 131255, 131259, 131263, 131267, 131271, 131275, 131279, 131283, - 131287, 131291, 131295, 131299, 131303, 131307, 131311, 131315, 131319, - 131323, 131327, 131331, 131335, 131339, 131343, 131347, 131351, 131355, - 131359, 131363, 131367, 131371, 131375, 131379, 131383, 131387, 131391, - 131395, 131399, 131403, 131407, 131411, 131415, 131419, 131423, 131427, - 131431, 131435, 131439, 131443, 131447, 131451, 131455, 131459, 131463, - 131467, 131471, 131475, 131479, 131483, 131487, 131491, 131495, 131499, - 131503, 131507, 131511, 131515, 131519, 131523, 131527, 131531, 131535, - 131539, 131543, 131547, 131551, 131555, 131559, 131563, 131567, 131571, - 131575, 131579, 131583, 131587, 131591, 131595, 131599, 131603, 131607, - 131611, 131615, 131619, 131623, 131627, 131631, 131635, 131639, 131643, - 131647, 131651, 131655, 131659, 131663, 131667, 131671, 131675, 131679, - 131683, 131687, 131691, 131695, 131699, 131703, 131707, 131711, 131715, - 131719, 131723, 131727, 131731, 131735, 131739, 131743, 131747, 131751, - 131755, 131759, 131763, 131767, 131771, 131775, 131779, 131783, 131787, - 131791, 131795, 131799, 131803, 131807, 131811, 131815, 131819, 131823, - 131827, 131831, 131835, 131839, 131843, 131847, 131851, 131855, 131859, - 131863, 131867, 131871, 131875, 131879, 131883, 131887, 131891, 131895, - 131899, 131903, 131907, 131911, 131915, 131919, 131923, 131927, 131931, - 131935, 131939, 131943, 131947, 131951, 131955, 131959, 131963, 131967, - 131971, 131975, 131979, 131983, 131987, 131991, 131995, 131999, 132003, - 132007, 132011, 132015, 132019, 132023, 132027, 132031, 132035, 132039, - 132043, 132047, 132051, 132055, 132059, 132063, 132067, 132071, 132075, - 132079, 132083, 132087, 132091, 132095, 132099, 132103, 132107, 132111, - 132115, 132119, 132123, 132127, 132131, 132135, 132139, 132143, 132147, - 132151, 132155, 132159, 132163, 132167, 132171, 132175, 132179, 132183, - 132187, 132191, 132195, 132199, 132203, 132207, 132211, 132215, 132219, - 132223, 132227, 132231, 132235, 132239, 132243, 132247, 132251, 132255, - 132259, 132263, 132267, 132271, 132275, 132279, 132283, 132287, 132291, - 132295, 132299, 132303, 132307, 132311, 132315, 132319, 132323, 132327, - 132331, 132335, 132339, 132343, 132347, 132351, 132355, 132359, 132363, - 132367, 132371, 132375, 132379, 132383, 132387, 132391, 132395, 132399, - 132403, 132407, 132411, 132415, 132419, 132423, 132427, 132431, 132435, - 132439, 132443, 132447, 132451, 132455, 132459, 132463, 132467, 132471, - 132475, 132479, 132483, 132487, 132491, 132495, 132499, 132503, 132507, - 132511, 132515, 132519, 132523, 132527, 132531, 132535, 132539, 132543, - 132547, 132551, 132555, 132559, 132563, 132567, 132571, 132575, 132579, - 132583, 132587, 132591, 132595, 132599, 132603, 132607, 132611, 132615, - 132619, 132623, 132627, 132631, 132635, 132639, 132643, 132647, 132651, - 132655, 132659, 132663, 132667, 132671, 132675, 132679, 132683, 132687, - 132691, 132695, 132699, 132703, 132707, 132711, 132715, 132719, 132723, - 132727, 132731, 132735, 132739, 132743, 132747, 132751, 132755, 132759, - 132763, 132767, 132771, 132775, 132779, 132783, 132787, 132791, 132795, - 132799, 132803, 132807, 132811, 132815, 132819, 132823, 132827, 132831, - 132835, 132839, 132843, 132847, 132851, 132855, 132859, 132863, 132867, - 132871, 132875, 132879, 132883, 132887, 132891, 132895, 132899, 132903, - 132907, 132911, 132915, 132919, 132923, 132927, 132931, 132935, 132939, - 132943, 132947, 132951, 132955, 132959, 132963, 132967, 132971, 132975, - 132979, 132983, 132987, 132991, 132995, 132999, 133003, 133007, 133011, - 133015, 133019, 133023, 133027, 133031, 133035, 133039, 133043, 133047, - 133051, 133055, 133059, 133063, 133067, 133071, 133075, 133079, 133083, - 133087, 133091, 133095, 133099, 133103, 133107, 133111, 133115, 133119, - 133123, 133127, 133131, 133135, 133139, 133143, 133147, 133151, 133155, - 133159, 133163, 133167, 133171, 133175, 133179, 133183, 133187, 133191, - 133195, 133199, 133203, 133207, 133211, 133215, 133219, 133223, 133227, - 133231, 133235, 133239, 133243, 133247, 133251, 133255, 133259, 133263, - 133267, 133271, 133275, 133279, 133283, 133287, 133291, 133295, 133299, - 133303, 133307, 133311, 133315, 133319, 133323, 133327, 133331, 133335, - 133339, 133343, 133347, 133351, 133355, 133359, 133363, 133367, 133371, - 133375, 133379, 133383, 133387, 133391, 133395, 133399, 133403, 133407, - 133411, 133415, 133419, 133423, 133427, 133431, 133435, 133439, 133443, - 133447, 133451, 133455, 133459, 133463, 133467, 133471, 133475, 133479, - 133483, 133487, 133491, 133495, 133499, 133503, 133507, 133511, 133515, - 133519, 133523, 133527, 133531, 133535, 133539, 133543, 133547, 133551, - 133555, 133559, 133563, 133567, 133571, 133575, 133579, 133583, 133587, - 133591, 133595, 133599, 133603, 133607, 133611, 133615, 133619, 133623, - 133627, 133631, 133635, 133639, 133643, 133647, 133651, 133655, 133659, - 133663, 133667, 133671, 133675, 133679, 133683, 133687, 133691, 133695, - 133699, 133703, 133707, 133711, 133715, 133719, 133723, 133727, 133731, - 133735, 133739, 133743, 133747, 133751, 133755, 133759, 133763, 133767, - 133771, 133775, 133779, 133783, 133787, 133791, 133795, 133799, 133803, - 133807, 133811, 133815, 133819, 133823, 133827, 133831, 133835, 133839, - 133843, 133847, 133851, 133855, 133859, 133863, 133867, 133871, 133875, - 133879, 133883, 133887, 133891, 133895, 133899, 133903, 133907, 133911, - 133915, 133919, 133923, 133927, 133931, 133935, 133939, 133943, 133947, - 133951, 133955, 133959, 133963, 133967, 133971, 133975, 133979, 133983, - 133987, 133991, 133995, 133999, 134003, 134007, 134011, 134015, 134019, - 134023, 134027, 134031, 134035, 134039, 134043, 134047, 134051, 134055, - 134059, 134063, 134067, 134071, 134075, 134079, 134083, 134087, 134091, - 134095, 134099, 134103, 134107, 134111, 134115, 134119, 134123, 134127, - 134131, 134135, 134139, 134143, 134147, 134151, 134155, 134159, 134163, - 134167, 134171, 134175, 134179, 134183, 134187, 134191, 134195, 134199, - 134203, 134207, 134211, 134215, 134219, 134223, 134227, 134231, 134235, - 134239, 134243, 134247, 134251, 134255, 134259, 134263, 134267, 134271, - 134275, 134279, 134283, 134287, 134291, 134295, 134299, 134303, 134307, - 134311, 134315, 134319, 134323, 134327, 134331, 134335, 134339, 134343, - 134347, 134351, 134355, 134359, 134363, 134367, 134371, 134375, 134379, - 134383, 134387, 134391, 134395, 134399, 134403, 134407, 134411, 134415, - 134419, 134423, 134427, 134431, 134435, 134439, 134443, 134447, 134451, - 134455, 134459, 134463, 134467, 134471, 134475, 134479, 134483, 134487, - 134491, 134495, 134499, 134503, 134507, 134511, 134515, 134519, 134523, - 134527, 134531, 134535, 134539, 134543, 134547, 134551, 134555, 134559, - 134563, 134567, 134571, 134575, 134579, 134583, 134587, 134591, 134595, - 134599, 134603, 134607, 134611, 134615, 134619, 134623, 134627, 134631, - 134635, 134639, 134643, 134647, 134651, 134655, 134659, 134663, 134667, - 134671, 134675, 134679, 134683, 134687, 134691, 134695, 134699, 134703, - 134707, 134711, 134715, 134719, 134723, 134727, 134731, 134735, 134739, - 134743, 134747, 134751, 134755, 134759, 134763, 134767, 134771, 134775, - 134779, 134783, 134787, 134791, 134795, 134799, 134803, 134807, 134811, - 134815, 134819, 134823, 134827, 134831, 134835, 134839, 134843, 134847, - 134851, 134855, 134859, 134863, 134867, 134871, 134875, 134879, 134883, - 134887, 134891, 134895, 134899, 134903, 134907, 134911, 134915, 134919, - 134923, 134927, 134931, 134935, 134939, 134943, 134947, 134951, 134955, - 134959, 134963, 134967, 134971, 134975, 134979, 134983, 134987, 134991, - 134995, 134999, 135003, 135007, 135011, 135015, 135019, 135023, 135027, - 135031, 135035, 135039, 135043, 135047, 135051, 135055, 135059, 135063, - 135067, 135071, 135075, 135079, 135083, 135087, 135091, 135095, 135099, - 135103, 135107, 135111, 135115, 135119, 135123, 135127, 135131, 135135, - 135139, 135143, 135147, 135151, 135155, 135159, 135163, 135167, 135171, - 135175, 135179, 135183, 135187, 135191, 135195, 135199, 135203, 135207, - 135211, 135215, 135219, 135223, 135227, 135231, 135235, 135239, 135243, - 135247, 135251, 135255, 135259, 135263, 135267, 135271, 135275, 135279, - 135283, 135287, 135291, 135295, 135299, 135303, 135307, 135311, 135315, - 135319, 135323, 135327, 135331, 135335, 135339, 135343, 135347, 135352, - 135358, 135368, 135378, 135388, 135398, 135404, 135410, 135416, 135424, - 135432, 135440, 135446, 135452, 135460, 135468, 135474, 135480, 135485, - 135490, 135496, 135503, 135510, 135521, 135532, 135541, 135552, 135561, - 135577, 135589, 135600, 135616, 135625, 135637, 135646, 135658, 135670, + 0, 0, 0, 0, 134857, 134861, 134865, 134869, 134873, 134877, 134881, + 134885, 134889, 134893, 134897, 134901, 134905, 134909, 134913, 134917, + 134921, 134925, 134929, 134933, 134937, 134941, 134945, 134949, 134953, + 134957, 134961, 134965, 134969, 134973, 134977, 134981, 134985, 134989, + 134993, 134997, 135001, 135005, 135009, 135013, 135017, 135021, 135025, + 135029, 135033, 135037, 135041, 135045, 135049, 135053, 135057, 135061, + 135065, 135069, 135073, 135077, 135081, 135085, 135089, 135093, 135097, + 135101, 135105, 135109, 135113, 135117, 135121, 135125, 135129, 135133, + 135137, 135141, 135145, 135149, 135153, 135157, 135161, 135165, 135169, + 135173, 135177, 135181, 135185, 135189, 135193, 135197, 135201, 135205, + 135209, 135213, 135217, 135221, 135225, 135229, 135233, 135237, 135241, + 135245, 135249, 135253, 135257, 135261, 135265, 135269, 135273, 135277, + 135281, 135285, 135289, 135293, 135297, 135301, 135305, 135309, 135313, + 135317, 135321, 135325, 135329, 135333, 135337, 135341, 135345, 135349, + 135353, 135357, 135361, 135365, 135369, 135373, 135377, 135381, 135385, + 135389, 135393, 135397, 135401, 135405, 135409, 135413, 135417, 135421, + 135425, 135429, 135433, 135437, 135441, 135445, 135449, 135453, 135457, + 135461, 135465, 135469, 135473, 135477, 135481, 135485, 135489, 135493, + 135497, 135501, 135505, 135509, 135513, 135517, 135521, 135525, 135529, + 135533, 135537, 135541, 135545, 135549, 135553, 135557, 135561, 135565, + 135569, 135573, 135577, 135581, 135585, 135589, 135593, 135597, 135601, + 135605, 135609, 135613, 135617, 135621, 135625, 135629, 135633, 135637, + 135641, 135645, 135649, 135653, 135657, 135661, 135665, 135669, 135673, + 135677, 135681, 135685, 135689, 135693, 135697, 135701, 135705, 135709, + 135713, 135717, 135721, 135725, 135729, 135733, 135737, 135741, 135745, + 135749, 135753, 135757, 135761, 135765, 135769, 135773, 135777, 135781, + 135785, 135789, 135793, 135797, 135801, 135805, 135809, 135813, 135817, + 135821, 135825, 135829, 135833, 135837, 135841, 135845, 135849, 135853, + 135857, 135861, 135865, 135869, 135873, 135877, 135881, 135885, 135889, + 135893, 135897, 135901, 135905, 135909, 135913, 135917, 135921, 135925, + 135929, 135933, 135937, 135941, 135945, 135949, 135953, 135957, 135961, + 135965, 135969, 135973, 135977, 135981, 135985, 135989, 135993, 135997, + 136001, 136005, 136009, 136013, 136017, 136021, 136025, 136029, 136033, + 136037, 136041, 136045, 136049, 136053, 136057, 136061, 136065, 136069, + 136073, 136077, 136081, 136085, 136089, 136093, 136097, 136101, 136105, + 136109, 136113, 136117, 136121, 136125, 136129, 136133, 136137, 136141, + 136145, 136149, 136153, 136157, 136161, 136165, 136169, 136173, 136177, + 136181, 136185, 136189, 136193, 136197, 136201, 136205, 136209, 136213, + 136217, 136221, 136225, 136229, 136233, 136237, 136241, 136245, 136249, + 136253, 136257, 136261, 136265, 136269, 136273, 136277, 136281, 136285, + 136289, 136293, 136297, 136301, 136305, 136309, 136313, 136317, 136321, + 136325, 136329, 136333, 136337, 136341, 136345, 136349, 136353, 136357, + 136361, 136365, 136369, 136373, 136377, 136381, 136385, 136389, 136393, + 136397, 136401, 136405, 136409, 136413, 136417, 136421, 136425, 136429, + 136433, 136437, 136441, 136445, 136449, 136453, 136457, 136461, 136465, + 136469, 136473, 136477, 136481, 136485, 136489, 136493, 136497, 136501, + 136505, 136509, 136513, 136517, 136521, 136525, 136529, 136533, 136537, + 136541, 136545, 136549, 136553, 136557, 136561, 136565, 136569, 136573, + 136577, 136581, 136585, 136589, 136599, 136603, 136607, 136611, 136615, + 136619, 136623, 136627, 136631, 136635, 136639, 136643, 136648, 136652, + 136656, 136660, 136664, 136668, 136672, 136676, 136680, 136684, 136688, + 136692, 136696, 136700, 136704, 136708, 136712, 136721, 136730, 136734, + 136738, 136742, 136746, 136750, 136754, 136758, 136762, 136766, 136770, + 136774, 136778, 136782, 136786, 136790, 136794, 136798, 136802, 136806, + 136810, 136814, 136818, 136822, 136826, 136830, 136834, 136838, 136842, + 136846, 136850, 136854, 136858, 136862, 136866, 136870, 136874, 136878, + 136882, 136886, 136890, 136894, 136898, 136902, 136906, 136910, 136914, + 136918, 136922, 136926, 136930, 136934, 136938, 136942, 136946, 136950, + 136954, 136958, 136962, 136966, 136970, 136974, 136978, 136982, 136986, + 136990, 136994, 136998, 137002, 137006, 137010, 137014, 137018, 137022, + 137026, 137030, 137034, 137038, 137042, 137046, 137050, 137054, 137058, + 137062, 137066, 137070, 137074, 137078, 137082, 137086, 137090, 137094, + 137098, 137102, 137106, 137110, 137114, 137118, 137122, 137126, 137130, + 137134, 137138, 137142, 137146, 137150, 137154, 137158, 137162, 137166, + 137170, 137174, 137178, 137182, 137186, 137190, 137194, 137198, 137202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135675, 135679, - 135683, 135687, 135691, 135695, 135699, 135703, 135707, 135711, 135715, - 135719, 135723, 135727, 135731, 135735, 135739, 135743, 135747, 135751, - 135755, 135759, 135763, 135767, 135771, 135775, 135779, 135783, 135787, - 135791, 135795, 135799, 135803, 135807, 135811, 135815, 135819, 135823, - 135827, 135831, 135835, 135839, 135843, 135847, 135851, 135855, 135859, - 135863, 135867, 135871, 135875, 135879, 135883, 135887, 135891, 135895, - 135899, 135903, 135907, 135911, 135915, 135919, 135923, 135927, 135931, - 135935, 135939, 135943, 135947, 135951, 135955, 135959, 135963, 135967, - 135971, 135975, 135979, 135983, 135987, 135991, 135995, 135999, 136003, - 136007, 136011, 136015, 136019, 136023, 136027, 136031, 136035, 136039, - 136043, 136047, 136051, 136055, 136059, 136063, 136067, 136071, 136075, - 136079, 136083, 136087, 136091, 136095, 136099, 136103, 136107, 136111, - 136115, 136119, 136123, 136127, 136131, 136135, 136139, 136143, 136147, - 136151, 136155, 136159, 136163, 136167, 136171, 136175, 136179, 136183, - 136187, 136191, 136195, 136199, 136203, 136207, 136211, 136215, 136219, - 136223, 136227, 136231, 136235, 136239, 136243, 136247, 136251, 136255, - 136259, 136263, 136267, 136271, 136275, 136279, 136283, 136287, 136291, - 136295, 136299, 136303, 136307, 136311, 136315, 136319, 136323, 136327, - 136331, 136335, 136339, 136343, 136347, 136351, 136355, 136359, 136363, - 136367, 136371, 136375, 136379, 136383, 136387, 136391, 136395, 136399, - 136403, 136407, 136411, 136415, 136419, 136423, 136427, 136431, 136435, - 136439, 136443, 136447, 136451, 136455, 136459, 136463, 136467, 136471, - 136475, 136479, 136483, 136487, 136491, 136495, 136499, 136503, 136507, - 136511, 136515, 136519, 136523, 136527, 136531, 136535, 136539, 136543, - 136547, 136551, 136555, 136559, 136563, 136567, 136571, 136575, 136579, - 136583, 136587, 136591, 136595, 136599, 136603, 136607, 136611, 136615, - 136619, 136623, 136627, 136631, 136635, 136639, 136643, 136647, 136651, - 136655, 136659, 136663, 136667, 136671, 136675, 136679, 136683, 136687, - 136691, 136695, 136699, 136703, 136707, 136711, 136715, 136719, 136723, - 136727, 136731, 136735, 136739, 136743, 136747, 136751, 136755, 136759, - 136763, 136767, 136771, 136775, 136779, 136783, 136787, 136791, 136795, - 136799, 136803, 136807, 136811, 136815, 136819, 136823, 136827, 136831, - 136835, 136839, 136843, 136847, 136851, 136855, 136859, 136863, 136867, - 136871, 136875, 136879, 136883, 136887, 136891, 136895, 136899, 136903, - 136907, 136911, 136915, 136919, 136923, 136927, 136931, 136935, 136939, - 136943, 136947, 136951, 136955, 136959, 136963, 136967, 136971, 136975, - 136979, 136983, 136987, 136991, 136995, 136999, 137003, 137007, 137011, - 137015, 137019, 137023, 137027, 137031, 137035, 137039, 137043, 137047, - 137051, 137055, 137059, 137063, 137067, 137071, 137075, 137079, 137083, - 137087, 137091, 137095, 137099, 137103, 137107, 137111, 137115, 137119, - 137123, 137127, 137131, 137135, 137139, 137143, 137147, 137151, 137155, - 137159, 137163, 137167, 137171, 137175, 137179, 137183, 137187, 137191, - 137195, 137199, 137203, 137207, 137211, 137215, 137219, 137223, 137227, - 137231, 137235, 137239, 137243, 137247, 137251, 137255, 137259, 137263, - 137267, 137271, 137275, 137279, 137283, 137287, 137291, 137295, 137299, - 137303, 137307, 137311, 137315, 137319, 137323, 137327, 137331, 137335, - 137339, 137343, 137347, 137351, 137355, 137359, 137363, 137367, 137371, - 137375, 137379, 137383, 137387, 137391, 137395, 137399, 137403, 137407, - 137417, 137421, 137425, 137429, 137433, 137437, 137441, 137445, 137449, - 137453, 137457, 137461, 137466, 137470, 137474, 137478, 137482, 137486, - 137490, 137494, 137498, 137502, 137506, 137510, 137514, 137518, 137522, - 137526, 137530, 137539, 137548, 137552, 137556, 137560, 137564, 137568, - 137572, 137576, 137580, 137584, 137588, 137592, 137596, 137600, 137604, - 137608, 137612, 137616, 137620, 137624, 137628, 137632, 137636, 137640, - 137644, 137648, 137652, 137656, 137660, 137664, 137668, 137672, 137676, - 137680, 137684, 137688, 137692, 137696, 137700, 137704, 137708, 137712, - 137716, 137720, 137724, 137728, 137732, 137736, 137740, 137744, 137748, - 137752, 137756, 137760, 137764, 137768, 137772, 137776, 137780, 137784, - 137788, 137792, 137796, 137800, 137804, 137808, 137812, 137816, 137820, - 137824, 137828, 137832, 137836, 137840, 137844, 137848, 137852, 137856, - 137860, 137864, 137868, 137872, 137876, 137880, 137884, 137888, 137892, - 137896, 137900, 137904, 137908, 137912, 137916, 137920, 137924, 137928, - 137932, 137936, 137940, 137944, 137948, 137952, 137956, 137960, 137964, - 137968, 137972, 137976, 137980, 137984, 137988, 137992, 137996, 138000, - 138004, 138008, 138012, 138016, 138020, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138024, - 138032, 138040, 138050, 138060, 138068, 138074, 138082, 138090, 138100, - 138112, 138124, 138130, 138138, 138144, 138150, 138156, 138162, 138168, - 138174, 138180, 138186, 138192, 138198, 138204, 138212, 138220, 138226, - 138232, 138238, 138244, 138252, 138260, 138269, 138275, 138283, 138289, - 138295, 138301, 138307, 138313, 138321, 138329, 138335, 138341, 138347, - 138353, 138359, 138365, 138371, 138377, 138383, 138389, 138395, 138401, - 138407, 138413, 138419, 138425, 138431, 138437, 138443, 138451, 138457, - 138463, 138473, 138481, 138487, 138493, 138499, 138505, 138511, 138517, - 138523, 138529, 138535, 138541, 138547, 138553, 138559, 138565, 138571, - 138577, 138583, 138589, 138595, 138601, 138607, 138613, 138621, 138627, - 138635, 138643, 138651, 138657, 138663, 138669, 138675, 138681, 138689, - 138699, 138707, 138715, 138721, 138727, 138735, 138743, 138749, 138757, - 138765, 138773, 138779, 138785, 138791, 138797, 138803, 138809, 138817, - 138825, 138831, 138837, 138843, 138849, 138855, 138863, 138869, 138875, - 138881, 138887, 138893, 138899, 138907, 138913, 138919, 138925, 138931, - 138939, 138947, 138953, 138959, 138965, 138970, 138976, 138982, 138990, - 138996, 139002, 139008, 139014, 139020, 139026, 139032, 139038, 139044, - 139054, 139062, 139068, 139074, 139080, 139088, 139094, 139100, 139106, - 139114, 139120, 139126, 139132, 139138, 139144, 139150, 139156, 139162, - 139168, 139174, 139180, 139188, 139194, 139202, 139208, 139214, 139222, - 139228, 139234, 139240, 139246, 139252, 139258, 139264, 139270, 139276, - 139282, 139288, 139294, 139300, 139306, 139312, 139318, 139324, 139330, - 139336, 139344, 139350, 139356, 139362, 139368, 139374, 139380, 139386, - 139392, 139398, 139404, 139410, 139416, 139422, 139430, 139436, 139442, - 139450, 139456, 139462, 139468, 139474, 139480, 139486, 139492, 139498, - 139504, 139510, 139518, 139524, 139530, 139536, 139542, 139548, 139556, - 139564, 139570, 139576, 139582, 139588, 139594, 139600, 139605, 139610, - 139615, 139620, 139625, 139630, 139635, 139640, 139645, 139650, 139655, - 139660, 139665, 139670, 139675, 139680, 139685, 139690, 139695, 139700, - 139705, 139710, 139715, 139720, 139725, 139730, 139735, 139740, 139745, - 139750, 139757, 139762, 139767, 139772, 139777, 139782, 139787, 139792, - 139797, 139802, 139807, 139812, 139817, 139822, 139827, 139832, 139837, - 139842, 139847, 139852, 139857, 139862, 139867, 139872, 139877, 139882, - 139887, 139892, 139897, 139902, 139907, 139912, 139917, 139922, 139927, - 139932, 139937, 139942, 139947, 139952, 139957, 139962, 139967, 139972, - 139977, 139982, 139987, 139992, 139997, 140002, 140007, 140012, 140017, - 140022, 140027, 140032, 140037, 140042, 140047, 140054, 140059, 140064, - 140069, 140074, 140079, 140084, 140089, 140094, 140099, 140104, 140109, - 140114, 140119, 140124, 140129, 140134, 140139, 140144, 140149, 140154, - 140159, 140166, 140171, 140176, 140182, 140187, 140192, 140197, 140202, - 140207, 140212, 140217, 140222, 140227, 140232, 140237, 140242, 140247, - 140252, 140257, 140262, 140267, 140272, 140277, 140282, 140287, 140292, - 140297, 140302, 140307, 140312, 140317, 140322, 140327, 140332, 140337, - 140342, 140347, 140352, 140357, 140362, 140367, 140372, 140377, 140382, - 140387, 140392, 140397, 140404, 140409, 140414, 140421, 140428, 140433, - 140438, 140443, 140448, 140453, 140458, 140463, 140468, 140473, 140478, - 140483, 140488, 140493, 140498, 140503, 140508, 140513, 140518, 140523, - 140528, 140533, 140538, 140543, 140548, 140553, 140560, 140565, 140570, - 140575, 140580, 140585, 140590, 140595, 140600, 140605, 140610, 140615, - 140620, 140625, 140630, 140635, 140640, 140645, 140650, 140657, 140662, - 140667, 140672, 140677, 140682, 140687, 140692, 140698, 140703, 140708, - 140713, 140718, 140723, 140728, 140733, 140738, 140745, 140752, 140757, - 140762, 140766, 140771, 140775, 140779, 140784, 140791, 140796, 140801, - 140810, 140815, 140820, 140825, 140830, 140837, 140844, 140849, 140854, - 140859, 140864, 140871, 140876, 140881, 140886, 140891, 140896, 140901, - 140906, 140911, 140916, 140921, 140926, 140931, 140938, 140942, 140947, - 140952, 140957, 140962, 140966, 140971, 140976, 140981, 140986, 140991, - 140996, 141001, 141006, 141011, 141017, 141023, 141029, 141035, 141041, - 141046, 141052, 141058, 141064, 141070, 141076, 141082, 141088, 141094, - 141100, 141106, 141112, 141118, 141124, 141130, 141136, 141142, 141148, - 141154, 141159, 141165, 141171, 141177, 141183, 141189, 141195, 141201, - 141207, 141213, 141219, 141225, 141231, 141237, 141243, 141249, 141255, - 141261, 141267, 141273, 141279, 141284, 141290, 141296, 141302, 141308, - 141314, 0, 0, 0, 0, 0, 0, 0, 141320, 141325, 141330, 141335, 141340, - 141345, 141350, 141354, 141359, 141364, 141369, 141374, 141379, 141384, - 141389, 141394, 141399, 141403, 141408, 141412, 141417, 141422, 141427, - 141432, 141437, 141441, 141446, 141451, 141455, 141460, 141465, 0, - 141470, 141475, 141479, 141483, 141487, 141491, 141495, 141499, 141503, - 141507, 0, 0, 0, 0, 141511, 141515, 141520, 141525, 141530, 141535, - 141540, 141545, 141550, 141555, 141560, 141565, 141570, 141575, 141580, - 141585, 141590, 141595, 141600, 141605, 141610, 141615, 141620, 141625, - 141630, 141635, 141640, 141645, 141650, 141655, 141660, 141665, 141670, - 141675, 141680, 141686, 141692, 141699, 141706, 141711, 141716, 141721, - 141726, 141731, 141736, 141741, 141746, 141751, 141756, 141761, 141766, - 141770, 141775, 141780, 141785, 141789, 141793, 141798, 141802, 141807, - 141812, 141817, 141821, 141825, 141829, 141833, 141838, 141843, 141848, - 141852, 141857, 141862, 141867, 141872, 141877, 141882, 141887, 141892, - 141897, 141902, 141907, 0, 141912, 141917, 141921, 141925, 141929, - 141933, 141937, 141941, 141945, 141949, 0, 0, 0, 0, 0, 0, 141953, 141960, - 141966, 141973, 141980, 141987, 141994, 142001, 142008, 142015, 142022, - 142029, 142036, 142043, 142050, 142057, 142064, 142071, 142077, 142084, - 142091, 142098, 142104, 142111, 142117, 142123, 142130, 142136, 142143, - 142149, 0, 0, 142155, 142163, 142171, 142180, 142189, 142198, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 142206, 142211, 142216, 142221, 142226, 142231, 142236, - 142241, 142246, 142251, 142256, 142261, 142266, 142271, 142276, 142281, - 142286, 142291, 142296, 142301, 142306, 142311, 142316, 142321, 142326, - 142331, 142336, 142341, 142346, 142351, 142356, 142361, 142366, 142371, - 142376, 142381, 142386, 142391, 142396, 142401, 142406, 142411, 142416, - 142421, 142426, 142431, 142436, 142441, 142446, 142453, 142460, 142467, - 142474, 142481, 142488, 142495, 142502, 142511, 142518, 142525, 142532, - 142539, 142546, 142553, 142560, 142567, 142574, 142581, 142588, 142593, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 142602, 142607, 142611, 142615, 142619, - 142623, 142627, 142631, 142635, 142639, 0, 142643, 142648, 142653, - 142660, 142665, 142672, 142679, 0, 142684, 142691, 142696, 142701, - 142708, 142715, 142720, 142725, 142730, 142735, 142740, 142747, 142754, - 142759, 142764, 142769, 142782, 142791, 142798, 142807, 142816, 0, 0, 0, - 0, 0, 142825, 142832, 142839, 142846, 142853, 142860, 142867, 142874, - 142881, 142888, 142895, 142902, 142909, 142916, 142923, 142930, 142937, - 142944, 142951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 137206, 137214, 137222, 137232, 137242, + 137250, 137256, 137264, 137272, 137282, 137294, 137306, 137312, 137320, + 137326, 137332, 137338, 137344, 137350, 137356, 137362, 137368, 137374, + 137380, 137386, 137394, 137402, 137408, 137414, 137420, 137426, 137434, + 137442, 137451, 137457, 137465, 137471, 137477, 137483, 137489, 137495, + 137503, 137511, 137517, 137523, 137529, 137535, 137541, 137547, 137553, + 137559, 137565, 137571, 137577, 137583, 137589, 137595, 137601, 137607, + 137613, 137619, 137625, 137633, 137639, 137645, 137655, 137663, 137669, + 137675, 137681, 137687, 137693, 137699, 137705, 137711, 137717, 137723, + 137729, 137735, 137741, 137747, 137753, 137759, 137765, 137771, 137777, + 137783, 137789, 137795, 137803, 137809, 137817, 137825, 137833, 137839, + 137845, 137851, 137857, 137863, 137871, 137881, 137889, 137897, 137903, + 137909, 137917, 137925, 137931, 137939, 137947, 137955, 137961, 137967, + 137973, 137979, 137985, 137991, 137999, 138007, 138013, 138019, 138025, + 138031, 138037, 138045, 138051, 138057, 138063, 138069, 138075, 138081, + 138089, 138095, 138101, 138107, 138113, 138121, 138129, 138135, 138141, + 138147, 138152, 138158, 138164, 138172, 138178, 138184, 138190, 138196, + 138202, 138208, 138214, 138220, 138226, 138236, 138244, 138250, 138256, + 138262, 138270, 138276, 138282, 138288, 138296, 138302, 138308, 138314, + 138320, 138326, 138332, 138338, 138344, 138350, 138356, 138362, 138370, + 138376, 138384, 138390, 138396, 138404, 138410, 138416, 138422, 138428, + 138434, 138440, 138446, 138452, 138458, 138464, 138470, 138476, 138482, + 138488, 138494, 138500, 138506, 138512, 138518, 138526, 138532, 138538, + 138544, 138550, 138556, 138562, 138568, 138574, 138580, 138586, 138592, + 138598, 138604, 138612, 138618, 138624, 138632, 138638, 138644, 138650, + 138656, 138662, 138668, 138674, 138680, 138686, 138692, 138700, 138706, + 138712, 138718, 138724, 138730, 138738, 138746, 138752, 138758, 138764, + 138770, 138776, 138782, 138787, 138792, 138797, 138802, 138807, 138812, + 138817, 138822, 138827, 138832, 138837, 138842, 138847, 138852, 138857, + 138862, 138867, 138872, 138877, 138882, 138887, 138892, 138897, 138902, + 138907, 138912, 138917, 138922, 138927, 138932, 138939, 138944, 138949, + 138954, 138959, 138964, 138969, 138974, 138979, 138984, 138989, 138994, + 138999, 139004, 139009, 139014, 139019, 139024, 139029, 139034, 139039, + 139044, 139049, 139054, 139059, 139064, 139069, 139074, 139079, 139084, + 139089, 139094, 139099, 139104, 139109, 139114, 139119, 139124, 139129, + 139134, 139139, 139144, 139149, 139154, 139159, 139164, 139169, 139174, + 139179, 139184, 139189, 139194, 139199, 139204, 139209, 139214, 139219, + 139224, 139229, 139236, 139241, 139246, 139251, 139256, 139261, 139266, + 139271, 139276, 139281, 139286, 139291, 139296, 139301, 139306, 139311, + 139316, 139321, 139326, 139331, 139336, 139341, 139348, 139353, 139358, + 139364, 139369, 139374, 139379, 139384, 139389, 139394, 139399, 139404, + 139409, 139414, 139419, 139424, 139429, 139434, 139439, 139444, 139449, + 139454, 139459, 139464, 139469, 139474, 139479, 139484, 139489, 139494, + 139499, 139504, 139509, 139514, 139519, 139524, 139529, 139534, 139539, + 139544, 139549, 139554, 139559, 139564, 139569, 139574, 139579, 139586, + 139591, 139596, 139603, 139610, 139615, 139620, 139625, 139630, 139635, + 139640, 139645, 139650, 139655, 139660, 139665, 139670, 139675, 139680, + 139685, 139690, 139695, 139700, 139705, 139710, 139715, 139720, 139725, + 139730, 139735, 139742, 139747, 139752, 139757, 139762, 139767, 139772, + 139777, 139782, 139787, 139792, 139797, 139802, 139807, 139812, 139817, + 139822, 139827, 139832, 139839, 139844, 139849, 139854, 139859, 139864, + 139869, 139874, 139880, 139885, 139890, 139895, 139900, 139905, 139910, + 139915, 139920, 139927, 139934, 139939, 139944, 139948, 139953, 139957, + 139961, 139966, 139973, 139978, 139983, 139992, 139997, 140002, 140007, + 140012, 140019, 140026, 140031, 140036, 140041, 140046, 140053, 140058, + 140063, 140068, 140073, 140078, 140083, 140088, 140093, 140098, 140103, + 140108, 140113, 140120, 140124, 140129, 140134, 140139, 140144, 140148, + 140153, 140158, 140163, 140168, 140173, 140178, 140183, 140188, 140193, + 140199, 140205, 140211, 140217, 140223, 140228, 140234, 140240, 140246, + 140252, 140258, 140264, 140270, 140276, 140282, 140288, 140294, 140300, + 140306, 140312, 140318, 140324, 140330, 140336, 140341, 140347, 140353, + 140359, 140365, 140371, 140377, 140383, 140389, 140395, 140401, 140407, + 140413, 140419, 140425, 140431, 140437, 140443, 140449, 140455, 140461, + 140466, 140472, 140478, 140484, 140490, 140496, 0, 0, 0, 0, 0, 0, 0, + 140502, 140507, 140512, 140517, 140522, 140527, 140532, 140536, 140541, + 140546, 140551, 140556, 140561, 140566, 140571, 140576, 140581, 140585, + 140590, 140594, 140599, 140604, 140609, 140614, 140619, 140623, 140628, + 140633, 140637, 140642, 140647, 0, 140652, 140657, 140661, 140665, + 140669, 140673, 140677, 140681, 140685, 140689, 0, 0, 0, 0, 140693, + 140697, 140702, 140707, 140712, 140717, 140722, 140727, 140732, 140737, + 140742, 140747, 140752, 140757, 140762, 140767, 140772, 140777, 140782, + 140787, 140792, 140797, 140802, 140807, 140812, 140817, 140822, 140827, + 140832, 140837, 140842, 140847, 140852, 140857, 140862, 140868, 140874, + 140881, 140888, 140893, 140898, 140903, 140908, 140913, 140918, 140923, + 140928, 140933, 140938, 140943, 140948, 140952, 140957, 140962, 140967, + 140971, 140975, 140980, 140984, 140989, 140994, 140999, 141003, 141007, + 141011, 141015, 141020, 141025, 141030, 141034, 141039, 141044, 141049, + 141054, 141059, 141064, 141069, 141074, 141079, 141084, 141089, 0, + 141094, 141099, 141103, 141107, 141111, 141115, 141119, 141123, 141127, + 141131, 0, 0, 0, 0, 0, 0, 141135, 141142, 141148, 141155, 141162, 141169, + 141176, 141183, 141190, 141197, 141204, 141211, 141218, 141225, 141232, + 141239, 141246, 141253, 141259, 141266, 141273, 141280, 141286, 141293, + 141299, 141305, 141312, 141318, 141325, 141331, 0, 0, 141337, 141345, + 141353, 141362, 141371, 141380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 141388, + 141393, 141398, 141403, 141408, 141413, 141418, 141423, 141428, 141433, + 141438, 141443, 141448, 141453, 141458, 141463, 141468, 141473, 141478, + 141483, 141488, 141493, 141498, 141503, 141508, 141513, 141518, 141523, + 141528, 141533, 141538, 141543, 141548, 141553, 141558, 141563, 141568, + 141573, 141578, 141583, 141588, 141593, 141598, 141603, 141608, 141613, + 141618, 141623, 141628, 141635, 141642, 141649, 141656, 141663, 141670, + 141677, 141684, 141693, 141700, 141707, 141714, 141721, 141728, 141735, + 141742, 141749, 141756, 141763, 141770, 141775, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 141784, 141789, 141793, 141797, 141801, 141805, 141809, 141813, + 141817, 141821, 0, 141825, 141830, 141835, 141842, 141847, 141854, + 141861, 0, 141866, 141873, 141878, 141883, 141890, 141897, 141902, + 141907, 141912, 141917, 141922, 141929, 141936, 141941, 141946, 141951, + 141964, 141973, 141980, 141989, 141998, 0, 0, 0, 0, 0, 142007, 142014, + 142021, 142028, 142035, 142042, 142049, 142056, 142063, 142070, 142077, + 142084, 142091, 142098, 142105, 142112, 142119, 142126, 142133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 142958, 142964, 142970, 142976, - 142982, 142988, 142994, 143000, 143006, 143012, 143018, 143024, 143029, - 143035, 143040, 143046, 143051, 143057, 143063, 143068, 143074, 143079, - 143085, 143091, 143097, 143103, 143109, 143115, 143121, 143126, 143131, - 143137, 143143, 143149, 143155, 143161, 143167, 143173, 143179, 143185, - 143191, 143197, 143203, 143209, 143214, 143220, 143225, 143231, 143236, - 143242, 143248, 143253, 143259, 143264, 143270, 143276, 143282, 143288, - 143294, 143300, 143306, 143311, 143316, 143322, 143328, 143333, 143337, - 143341, 143345, 143349, 143353, 143357, 143361, 143365, 143369, 143374, - 143379, 143384, 143389, 143394, 143399, 143404, 143409, 143414, 143419, - 143426, 143433, 143440, 143444, 143450, 143455, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 142140, 142146, 142152, 142158, 142164, 142170, 142176, + 142182, 142188, 142194, 142200, 142206, 142211, 142217, 142222, 142228, + 142233, 142239, 142245, 142250, 142256, 142261, 142267, 142273, 142279, + 142285, 142291, 142297, 142303, 142308, 142313, 142319, 142325, 142331, + 142337, 142343, 142349, 142355, 142361, 142367, 142373, 142379, 142385, + 142391, 142396, 142402, 142407, 142413, 142418, 142424, 142430, 142435, + 142441, 142446, 142452, 142458, 142464, 142470, 142476, 142482, 142488, + 142493, 142498, 142504, 142510, 142515, 142519, 142523, 142527, 142531, + 142535, 142539, 142543, 142547, 142551, 142556, 142561, 142566, 142571, + 142576, 142581, 142586, 142591, 142596, 142601, 142608, 142615, 142622, + 142626, 142632, 142637, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143461, - 143464, 143468, 143472, 143476, 143479, 143483, 143488, 143492, 143496, - 143500, 143504, 143508, 143513, 143518, 143522, 143526, 143529, 143533, - 143538, 143543, 143547, 143551, 143554, 143558, 143562, 143566, 143570, - 143574, 143578, 143582, 143585, 143589, 143593, 143597, 143601, 143605, - 143609, 143615, 143618, 143622, 143626, 143630, 143634, 143638, 143642, - 143646, 143650, 143654, 143659, 143664, 143670, 143674, 143678, 143682, - 143686, 143690, 143694, 143699, 143702, 143706, 143710, 143714, 143718, - 143724, 143728, 143732, 143736, 143740, 143744, 143748, 143752, 143756, - 143760, 143764, 0, 0, 0, 0, 143768, 143773, 143777, 143781, 143787, - 143793, 143797, 143802, 143807, 143812, 143817, 143821, 143826, 143831, - 143836, 143840, 143845, 143850, 143855, 143859, 143864, 143869, 143874, - 143879, 143884, 143889, 143894, 143899, 143903, 143908, 143913, 143918, - 143923, 143928, 143933, 143938, 143943, 143948, 143953, 143958, 143965, - 143970, 143977, 143982, 143987, 143992, 143997, 144002, 144007, 144012, - 144017, 144022, 144027, 144032, 144037, 144042, 144047, 0, 0, 0, 0, 0, 0, - 0, 144052, 144055, 144060, 144063, 144066, 144070, 144074, 144078, - 144082, 144086, 144090, 144094, 144100, 144106, 144112, 144118, 144124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 142643, 142646, 142650, 142654, + 142658, 142661, 142665, 142670, 142674, 142678, 142682, 142686, 142690, + 142695, 142700, 142704, 142708, 142711, 142715, 142720, 142725, 142729, + 142733, 142736, 142740, 142744, 142748, 142752, 142756, 142760, 142764, + 142767, 142771, 142775, 142779, 142783, 142787, 142791, 142797, 142800, + 142804, 142808, 142812, 142816, 142820, 142824, 142828, 142832, 142836, + 142841, 142846, 142852, 142856, 142860, 142864, 142868, 142872, 142876, + 142881, 142884, 142888, 142892, 142896, 142900, 142906, 142910, 142914, + 142918, 142922, 142926, 142930, 142934, 142938, 142942, 142946, 0, 0, 0, + 0, 142950, 142955, 142959, 142963, 142969, 142975, 142979, 142984, + 142989, 142994, 142999, 143003, 143008, 143013, 143018, 143022, 143027, + 143032, 143037, 143041, 143046, 143051, 143056, 143061, 143066, 143071, + 143076, 143081, 143085, 143090, 143095, 143100, 143105, 143110, 143115, + 143120, 143125, 143130, 143135, 143140, 143147, 143152, 143159, 143164, + 143169, 143174, 143179, 143184, 143189, 143194, 143199, 143204, 143209, + 143214, 143219, 143224, 143229, 0, 0, 0, 0, 0, 0, 0, 143234, 143237, + 143242, 143245, 143248, 143252, 143256, 143260, 143264, 143268, 143272, + 143276, 143282, 143288, 143294, 143300, 143306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144130, 144134, 144138, - 144144, 144150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144155, 144164, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144173, 144176, 144179, 144182, 144185, - 144188, 144191, 144194, 144197, 144200, 144203, 144206, 144209, 144212, - 144215, 144218, 144221, 144224, 144227, 144230, 144233, 144236, 144239, - 144242, 144245, 144248, 144251, 144254, 144257, 144260, 144263, 144266, - 144269, 144272, 144275, 144278, 144281, 144284, 144287, 144290, 144293, - 144296, 144299, 144302, 144305, 144308, 144311, 144314, 144317, 144320, - 144323, 144326, 144329, 144332, 144335, 144338, 144341, 144344, 144347, - 144350, 144353, 144356, 144359, 144362, 144365, 144368, 144371, 144374, - 144377, 144380, 144383, 144386, 144389, 144392, 144395, 144398, 144401, - 144404, 144407, 144410, 144413, 144416, 144419, 144422, 144425, 144428, - 144431, 144434, 144437, 144440, 144443, 144446, 144449, 144452, 144455, - 144458, 144461, 144464, 144467, 144470, 144473, 144476, 144479, 144482, - 144485, 144488, 144491, 144494, 144497, 144500, 144503, 144506, 144509, - 144512, 144515, 144518, 144521, 144524, 144527, 144530, 144533, 144536, - 144539, 144542, 144545, 144548, 144551, 144554, 144557, 144560, 144563, - 144566, 144569, 144572, 144575, 144578, 144581, 144584, 144587, 144590, - 144593, 144596, 144599, 144602, 144605, 144608, 144611, 144614, 144617, - 144620, 144623, 144626, 144629, 144632, 144635, 144638, 144641, 144644, - 144647, 144650, 144653, 144656, 144659, 144662, 144665, 144668, 144671, - 144674, 144677, 144680, 144683, 144686, 144689, 144692, 144695, 144698, - 144701, 144704, 144707, 144710, 144713, 144716, 144719, 144722, 144725, - 144728, 144731, 144734, 144737, 144740, 144743, 144746, 144749, 144752, - 144755, 144758, 144761, 144764, 144767, 144770, 144773, 144776, 144779, - 144782, 144785, 144788, 144791, 144794, 144797, 144800, 144803, 144806, - 144809, 144812, 144815, 144818, 144821, 144824, 144827, 144830, 144833, - 144836, 144839, 144842, 144845, 144848, 144851, 144854, 144857, 144860, - 144863, 144866, 144869, 144872, 144875, 144878, 144881, 144884, 144887, - 144890, 144893, 144896, 144899, 144902, 144905, 144908, 144911, 144914, - 144917, 144920, 144923, 144926, 144929, 144932, 144935, 144938, 144941, - 144944, 144947, 144950, 144953, 144956, 144959, 144962, 144965, 144968, - 144971, 144974, 144977, 144980, 144983, 144986, 144989, 144992, 144995, - 144998, 145001, 145004, 145007, 145010, 145013, 145016, 145019, 145022, - 145025, 145028, 145031, 145034, 145037, 145040, 145043, 145046, 145049, - 145052, 145055, 145058, 145061, 145064, 145067, 145070, 145073, 145076, - 145079, 145082, 145085, 145088, 145091, 145094, 145097, 145100, 145103, - 145106, 145109, 145112, 145115, 145118, 145121, 145124, 145127, 145130, - 145133, 145136, 145139, 145142, 145145, 145148, 145151, 145154, 145157, - 145160, 145163, 145166, 145169, 145172, 145175, 145178, 145181, 145184, - 145187, 145190, 145193, 145196, 145199, 145202, 145205, 145208, 145211, - 145214, 145217, 145220, 145223, 145226, 145229, 145232, 145235, 145238, - 145241, 145244, 145247, 145250, 145253, 145256, 145259, 145262, 145265, - 145268, 145271, 145274, 145277, 145280, 145283, 145286, 145289, 145292, - 145295, 145298, 145301, 145304, 145307, 145310, 145313, 145316, 145319, - 145322, 145325, 145328, 145331, 145334, 145337, 145340, 145343, 145346, - 145349, 145352, 145355, 145358, 145361, 145364, 145367, 145370, 145373, - 145376, 145379, 145382, 145385, 145388, 145391, 145394, 145397, 145400, - 145403, 145406, 145409, 145412, 145415, 145418, 145421, 145424, 145427, - 145430, 145433, 145436, 145439, 145442, 145445, 145448, 145451, 145454, - 145457, 145460, 145463, 145466, 145469, 145472, 145475, 145478, 145481, - 145484, 145487, 145490, 145493, 145496, 145499, 145502, 145505, 145508, - 145511, 145514, 145517, 145520, 145523, 145526, 145529, 145532, 145535, - 145538, 145541, 145544, 145547, 145550, 145553, 145556, 145559, 145562, - 145565, 145568, 145571, 145574, 145577, 145580, 145583, 145586, 145589, - 145592, 145595, 145598, 145601, 145604, 145607, 145610, 145613, 145616, - 145619, 145622, 145625, 145628, 145631, 145634, 145637, 145640, 145643, - 145646, 145649, 145652, 145655, 145658, 145661, 145664, 145667, 145670, - 145673, 145676, 145679, 145682, 145685, 145688, 145691, 145694, 145697, - 145700, 145703, 145706, 145709, 145712, 145715, 145718, 145721, 145724, - 145727, 145730, 145733, 145736, 145739, 145742, 145745, 145748, 145751, - 145754, 145757, 145760, 145763, 145766, 145769, 145772, 145775, 145778, - 145781, 145784, 145787, 145790, 145793, 145796, 145799, 145802, 145805, - 145808, 145811, 145814, 145817, 145820, 145823, 145826, 145829, 145832, - 145835, 145838, 145841, 145844, 145847, 145850, 145853, 145856, 145859, - 145862, 145865, 145868, 145871, 145874, 145877, 145880, 145883, 145886, - 145889, 145892, 145895, 145898, 145901, 145904, 145907, 145910, 145913, - 145916, 145919, 145922, 145925, 145928, 145931, 145934, 145937, 145940, - 145943, 145946, 145949, 145952, 145955, 145958, 145961, 145964, 145967, - 145970, 145973, 145976, 145979, 145982, 145985, 145988, 145991, 145994, - 145997, 146000, 146003, 146006, 146009, 146012, 146015, 146018, 146021, - 146024, 146027, 146030, 146033, 146036, 146039, 146042, 146045, 146048, - 146051, 146054, 146057, 146060, 146063, 146066, 146069, 146072, 146075, - 146078, 146081, 146084, 146087, 146090, 146093, 146096, 146099, 146102, - 146105, 146108, 146111, 146114, 146117, 146120, 146123, 146126, 146129, - 146132, 146135, 146138, 146141, 146144, 146147, 146150, 146153, 146156, - 146159, 146162, 146165, 146168, 146171, 146174, 146177, 146180, 146183, - 146186, 146189, 146192, 146195, 146198, 146201, 146204, 146207, 146210, - 146213, 146216, 146219, 146222, 146225, 146228, 146231, 146234, 146237, - 146240, 146243, 146246, 146249, 146252, 146255, 146258, 146261, 146264, - 146267, 146270, 146273, 146276, 146279, 146282, 146285, 146288, 146291, - 146294, 146297, 146300, 146303, 146306, 146309, 146312, 146315, 146318, - 146321, 146324, 146327, 146330, 146333, 146336, 146339, 146342, 146345, - 146348, 146351, 146354, 146357, 146360, 146363, 146366, 146369, 146372, - 146375, 146378, 146381, 146384, 146387, 146390, 146393, 146396, 146399, - 146402, 146405, 146408, 146411, 146414, 146417, 146420, 146423, 146426, - 146429, 146432, 146435, 146438, 146441, 146444, 146447, 146450, 146453, - 146456, 146459, 146462, 146465, 146468, 146471, 146474, 146477, 146482, - 146487, 146492, 146497, 146502, 146507, 146512, 146517, 146522, 146527, - 146532, 146537, 146542, 146547, 146552, 146557, 146562, 146567, 146572, - 146577, 146582, 146587, 146592, 146597, 146602, 146607, 146612, 146617, - 146622, 146627, 146632, 146637, 146642, 146647, 146652, 146657, 146662, - 146667, 146672, 146677, 146682, 146687, 146692, 146697, 146702, 146707, - 146712, 146717, 146722, 146727, 146732, 146737, 146742, 146747, 146752, - 146757, 146762, 146767, 146772, 146777, 146782, 146787, 146792, 146797, - 146802, 146807, 146812, 146817, 146822, 146827, 146832, 146837, 146842, - 146847, 146852, 146857, 146862, 146867, 146872, 146877, 146882, 146887, - 146892, 146897, 146902, 146907, 146912, 146917, 146922, 146927, 146932, - 146937, 146942, 146947, 146952, 146957, 146962, 146967, 146972, 146977, - 146982, 146987, 146992, 146997, 147002, 147007, 147012, 147017, 147022, - 147027, 147032, 147037, 147042, 147047, 147052, 147057, 147062, 147067, - 147072, 147077, 147082, 147087, 147092, 147097, 147102, 147107, 147112, - 147117, 147122, 147127, 147132, 147137, 147142, 147147, 147152, 147157, - 147162, 147167, 147172, 147177, 147182, 147187, 147192, 147197, 147202, - 147207, 147212, 147217, 147222, 147227, 147232, 147237, 147242, 147247, - 147252, 147257, 147262, 147267, 147272, 147277, 147282, 147287, 147292, - 147297, 147302, 147307, 147312, 147317, 147322, 147327, 147332, 147337, - 147342, 147347, 147352, 147357, 147362, 147367, 147372, 147377, 147382, - 147387, 147392, 147397, 147402, 147407, 147412, 147417, 147422, 147427, - 147432, 147437, 147442, 147447, 147452, 147457, 147462, 147467, 147472, - 147477, 147482, 147487, 147492, 147497, 147502, 147507, 147512, 147517, - 147522, 147527, 147532, 147537, 147542, 147547, 147552, 147557, 147562, - 147567, 147572, 147577, 147582, 147587, 147592, 147597, 147602, 147607, - 147612, 147617, 147622, 147627, 147632, 147637, 147642, 147647, 147652, - 147657, 147662, 147667, 147672, 147677, 147682, 147687, 147692, 147697, - 147702, 147707, 147712, 147717, 147722, 147727, 147732, 147737, 147742, - 147747, 147752, 147757, 147762, 147767, 147772, 147777, 147782, 147787, - 147792, 147797, 147802, 147807, 147812, 147817, 147822, 147827, 147832, - 147837, 147842, 147847, 147852, 147857, 147862, 147867, 147872, 147877, - 147882, 147887, 147892, 147897, 147902, 147907, 147912, 147917, 147922, - 147927, 147932, 147937, 147942, 147947, 147952, 147957, 147962, 147967, - 147972, 147977, 147982, 147987, 147992, 147997, 148002, 148007, 148012, - 148017, 148022, 148027, 148032, 148037, 148042, 148047, 148052, 148057, - 148062, 148067, 148072, 148077, 148082, 148087, 148092, 148097, 148102, - 148107, 148112, 148117, 148122, 148127, 148132, 148137, 148142, 148147, - 148152, 148157, 148162, 148167, 148172, 148177, 148182, 148187, 148192, - 148197, 148202, 148207, 148212, 148217, 148222, 148227, 148232, 148237, - 148242, 148247, 148252, 148257, 148262, 148267, 148272, 148277, 148282, - 148287, 148292, 148297, 148302, 148307, 148312, 148317, 148322, 148327, - 148332, 148337, 148342, 148347, 148352, 148357, 148362, 148367, 148372, - 148377, 148382, 148387, 148392, 148397, 148402, 148407, 148412, 148417, - 148422, 148427, 148432, 148437, 148442, 148447, 148452, 148457, 148462, - 148467, 148472, 148477, 148482, 148487, 148492, 148497, 148502, 148507, - 148512, 148517, 148522, 148527, 148532, 148537, 148542, 148547, 148552, - 148557, 148562, 148567, 148572, 148577, 148582, 148587, 148592, 148597, - 148602, 148607, 148612, 148617, 148622, 148627, 148632, 148637, 148642, - 148647, 148652, 148657, 148662, 148667, 148672, 148677, 148682, 148687, - 148692, 148697, 148702, 148707, 148712, 148717, 148722, 148727, 148732, - 148737, 148742, 148747, 148752, 148757, 148762, 148767, 148772, 148777, - 148782, 148787, 148792, 148797, 148802, 148807, 148812, 148817, 148822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 143312, 143316, 143320, 143326, 143332, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 143337, 143346, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 143355, 143358, 143361, 143364, 143367, 143370, 143373, 143376, + 143379, 143382, 143385, 143388, 143391, 143394, 143397, 143400, 143403, + 143406, 143409, 143412, 143415, 143418, 143421, 143424, 143427, 143430, + 143433, 143436, 143439, 143442, 143445, 143448, 143451, 143454, 143457, + 143460, 143463, 143466, 143469, 143472, 143475, 143478, 143481, 143484, + 143487, 143490, 143493, 143496, 143499, 143502, 143505, 143508, 143511, + 143514, 143517, 143520, 143523, 143526, 143529, 143532, 143535, 143538, + 143541, 143544, 143547, 143550, 143553, 143556, 143559, 143562, 143565, + 143568, 143571, 143574, 143577, 143580, 143583, 143586, 143589, 143592, + 143595, 143598, 143601, 143604, 143607, 143610, 143613, 143616, 143619, + 143622, 143625, 143628, 143631, 143634, 143637, 143640, 143643, 143646, + 143649, 143652, 143655, 143658, 143661, 143664, 143667, 143670, 143673, + 143676, 143679, 143682, 143685, 143688, 143691, 143694, 143697, 143700, + 143703, 143706, 143709, 143712, 143715, 143718, 143721, 143724, 143727, + 143730, 143733, 143736, 143739, 143742, 143745, 143748, 143751, 143754, + 143757, 143760, 143763, 143766, 143769, 143772, 143775, 143778, 143781, + 143784, 143787, 143790, 143793, 143796, 143799, 143802, 143805, 143808, + 143811, 143814, 143817, 143820, 143823, 143826, 143829, 143832, 143835, + 143838, 143841, 143844, 143847, 143850, 143853, 143856, 143859, 143862, + 143865, 143868, 143871, 143874, 143877, 143880, 143883, 143886, 143889, + 143892, 143895, 143898, 143901, 143904, 143907, 143910, 143913, 143916, + 143919, 143922, 143925, 143928, 143931, 143934, 143937, 143940, 143943, + 143946, 143949, 143952, 143955, 143958, 143961, 143964, 143967, 143970, + 143973, 143976, 143979, 143982, 143985, 143988, 143991, 143994, 143997, + 144000, 144003, 144006, 144009, 144012, 144015, 144018, 144021, 144024, + 144027, 144030, 144033, 144036, 144039, 144042, 144045, 144048, 144051, + 144054, 144057, 144060, 144063, 144066, 144069, 144072, 144075, 144078, + 144081, 144084, 144087, 144090, 144093, 144096, 144099, 144102, 144105, + 144108, 144111, 144114, 144117, 144120, 144123, 144126, 144129, 144132, + 144135, 144138, 144141, 144144, 144147, 144150, 144153, 144156, 144159, + 144162, 144165, 144168, 144171, 144174, 144177, 144180, 144183, 144186, + 144189, 144192, 144195, 144198, 144201, 144204, 144207, 144210, 144213, + 144216, 144219, 144222, 144225, 144228, 144231, 144234, 144237, 144240, + 144243, 144246, 144249, 144252, 144255, 144258, 144261, 144264, 144267, + 144270, 144273, 144276, 144279, 144282, 144285, 144288, 144291, 144294, + 144297, 144300, 144303, 144306, 144309, 144312, 144315, 144318, 144321, + 144324, 144327, 144330, 144333, 144336, 144339, 144342, 144345, 144348, + 144351, 144354, 144357, 144360, 144363, 144366, 144369, 144372, 144375, + 144378, 144381, 144384, 144387, 144390, 144393, 144396, 144399, 144402, + 144405, 144408, 144411, 144414, 144417, 144420, 144423, 144426, 144429, + 144432, 144435, 144438, 144441, 144444, 144447, 144450, 144453, 144456, + 144459, 144462, 144465, 144468, 144471, 144474, 144477, 144480, 144483, + 144486, 144489, 144492, 144495, 144498, 144501, 144504, 144507, 144510, + 144513, 144516, 144519, 144522, 144525, 144528, 144531, 144534, 144537, + 144540, 144543, 144546, 144549, 144552, 144555, 144558, 144561, 144564, + 144567, 144570, 144573, 144576, 144579, 144582, 144585, 144588, 144591, + 144594, 144597, 144600, 144603, 144606, 144609, 144612, 144615, 144618, + 144621, 144624, 144627, 144630, 144633, 144636, 144639, 144642, 144645, + 144648, 144651, 144654, 144657, 144660, 144663, 144666, 144669, 144672, + 144675, 144678, 144681, 144684, 144687, 144690, 144693, 144696, 144699, + 144702, 144705, 144708, 144711, 144714, 144717, 144720, 144723, 144726, + 144729, 144732, 144735, 144738, 144741, 144744, 144747, 144750, 144753, + 144756, 144759, 144762, 144765, 144768, 144771, 144774, 144777, 144780, + 144783, 144786, 144789, 144792, 144795, 144798, 144801, 144804, 144807, + 144810, 144813, 144816, 144819, 144822, 144825, 144828, 144831, 144834, + 144837, 144840, 144843, 144846, 144849, 144852, 144855, 144858, 144861, + 144864, 144867, 144870, 144873, 144876, 144879, 144882, 144885, 144888, + 144891, 144894, 144897, 144900, 144903, 144906, 144909, 144912, 144915, + 144918, 144921, 144924, 144927, 144930, 144933, 144936, 144939, 144942, + 144945, 144948, 144951, 144954, 144957, 144960, 144963, 144966, 144969, + 144972, 144975, 144978, 144981, 144984, 144987, 144990, 144993, 144996, + 144999, 145002, 145005, 145008, 145011, 145014, 145017, 145020, 145023, + 145026, 145029, 145032, 145035, 145038, 145041, 145044, 145047, 145050, + 145053, 145056, 145059, 145062, 145065, 145068, 145071, 145074, 145077, + 145080, 145083, 145086, 145089, 145092, 145095, 145098, 145101, 145104, + 145107, 145110, 145113, 145116, 145119, 145122, 145125, 145128, 145131, + 145134, 145137, 145140, 145143, 145146, 145149, 145152, 145155, 145158, + 145161, 145164, 145167, 145170, 145173, 145176, 145179, 145182, 145185, + 145188, 145191, 145194, 145197, 145200, 145203, 145206, 145209, 145212, + 145215, 145218, 145221, 145224, 145227, 145230, 145233, 145236, 145239, + 145242, 145245, 145248, 145251, 145254, 145257, 145260, 145263, 145266, + 145269, 145272, 145275, 145278, 145281, 145284, 145287, 145290, 145293, + 145296, 145299, 145302, 145305, 145308, 145311, 145314, 145317, 145320, + 145323, 145326, 145329, 145332, 145335, 145338, 145341, 145344, 145347, + 145350, 145353, 145356, 145359, 145362, 145365, 145368, 145371, 145374, + 145377, 145380, 145383, 145386, 145389, 145392, 145395, 145398, 145401, + 145404, 145407, 145410, 145413, 145416, 145419, 145422, 145425, 145428, + 145431, 145434, 145437, 145440, 145443, 145446, 145449, 145452, 145455, + 145458, 145461, 145464, 145467, 145470, 145473, 145476, 145479, 145482, + 145485, 145488, 145491, 145494, 145497, 145500, 145503, 145506, 145509, + 145512, 145515, 145518, 145521, 145524, 145527, 145530, 145533, 145536, + 145539, 145542, 145545, 145548, 145551, 145554, 145557, 145560, 145563, + 145566, 145569, 145572, 145575, 145578, 145581, 145584, 145587, 145590, + 145593, 145596, 145599, 145602, 145605, 145608, 145611, 145614, 145617, + 145620, 145623, 145626, 145629, 145632, 145635, 145638, 145641, 145644, + 145647, 145650, 145653, 145656, 145659, 145664, 145669, 145674, 145679, + 145684, 145689, 145694, 145699, 145704, 145709, 145714, 145719, 145724, + 145729, 145734, 145739, 145744, 145749, 145754, 145759, 145764, 145769, + 145774, 145779, 145784, 145789, 145794, 145799, 145804, 145809, 145814, + 145819, 145824, 145829, 145834, 145839, 145844, 145849, 145854, 145859, + 145864, 145869, 145874, 145879, 145884, 145889, 145894, 145899, 145904, + 145909, 145914, 145919, 145924, 145929, 145934, 145939, 145944, 145949, + 145954, 145959, 145964, 145969, 145974, 145979, 145984, 145989, 145994, + 145999, 146004, 146009, 146014, 146019, 146024, 146029, 146034, 146039, + 146044, 146049, 146054, 146059, 146064, 146069, 146074, 146079, 146084, + 146089, 146094, 146099, 146104, 146109, 146114, 146119, 146124, 146129, + 146134, 146139, 146144, 146149, 146154, 146159, 146164, 146169, 146174, + 146179, 146184, 146189, 146194, 146199, 146204, 146209, 146214, 146219, + 146224, 146229, 146234, 146239, 146244, 146249, 146254, 146259, 146264, + 146269, 146274, 146279, 146284, 146289, 146294, 146299, 146304, 146309, + 146314, 146319, 146324, 146329, 146334, 146339, 146344, 146349, 146354, + 146359, 146364, 146369, 146374, 146379, 146384, 146389, 146394, 146399, + 146404, 146409, 146414, 146419, 146424, 146429, 146434, 146439, 146444, + 146449, 146454, 146459, 146464, 146469, 146474, 146479, 146484, 146489, + 146494, 146499, 146504, 146509, 146514, 146519, 146524, 146529, 146534, + 146539, 146544, 146549, 146554, 146559, 146564, 146569, 146574, 146579, + 146584, 146589, 146594, 146599, 146604, 146609, 146614, 146619, 146624, + 146629, 146634, 146639, 146644, 146649, 146654, 146659, 146664, 146669, + 146674, 146679, 146684, 146689, 146694, 146699, 146704, 146709, 146714, + 146719, 146724, 146729, 146734, 146739, 146744, 146749, 146754, 146759, + 146764, 146769, 146774, 146779, 146784, 146789, 146794, 146799, 146804, + 146809, 146814, 146819, 146824, 146829, 146834, 146839, 146844, 146849, + 146854, 146859, 146864, 146869, 146874, 146879, 146884, 146889, 146894, + 146899, 146904, 146909, 146914, 146919, 146924, 146929, 146934, 146939, + 146944, 146949, 146954, 146959, 146964, 146969, 146974, 146979, 146984, + 146989, 146994, 146999, 147004, 147009, 147014, 147019, 147024, 147029, + 147034, 147039, 147044, 147049, 147054, 147059, 147064, 147069, 147074, + 147079, 147084, 147089, 147094, 147099, 147104, 147109, 147114, 147119, + 147124, 147129, 147134, 147139, 147144, 147149, 147154, 147159, 147164, + 147169, 147174, 147179, 147184, 147189, 147194, 147199, 147204, 147209, + 147214, 147219, 147224, 147229, 147234, 147239, 147244, 147249, 147254, + 147259, 147264, 147269, 147274, 147279, 147284, 147289, 147294, 147299, + 147304, 147309, 147314, 147319, 147324, 147329, 147334, 147339, 147344, + 147349, 147354, 147359, 147364, 147369, 147374, 147379, 147384, 147389, + 147394, 147399, 147404, 147409, 147414, 147419, 147424, 147429, 147434, + 147439, 147444, 147449, 147454, 147459, 147464, 147469, 147474, 147479, + 147484, 147489, 147494, 147499, 147504, 147509, 147514, 147519, 147524, + 147529, 147534, 147539, 147544, 147549, 147554, 147559, 147564, 147569, + 147574, 147579, 147584, 147589, 147594, 147599, 147604, 147609, 147614, + 147619, 147624, 147629, 147634, 147639, 147644, 147649, 147654, 147659, + 147664, 147669, 147674, 147679, 147684, 147689, 147694, 147699, 147704, + 147709, 147714, 147719, 147724, 147729, 147734, 147739, 147744, 147749, + 147754, 147759, 147764, 147769, 147774, 147779, 147784, 147789, 147794, + 147799, 147804, 147809, 147814, 147819, 147824, 147829, 147834, 147839, + 147844, 147849, 147854, 147859, 147864, 147869, 147874, 147879, 147884, + 147889, 147894, 147899, 147904, 147909, 147914, 147919, 147924, 147929, + 147934, 147939, 147944, 147949, 147954, 147959, 147964, 147969, 147974, + 147979, 147984, 147989, 147994, 147999, 148004, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 148827, 148833, 148839, 148845, 0, 148851, - 148857, 148863, 148871, 148879, 148887, 148895, 0, 148903, 148911, 0, - 148919, 148924, 148931, 148935, 148939, 148943, 148947, 148951, 148955, - 148959, 148963, 148967, 148971, 148975, 148979, 148983, 148987, 148991, - 148995, 148999, 149003, 149007, 149011, 149015, 149019, 149023, 149027, - 149031, 149035, 149039, 149043, 149047, 149051, 149055, 149059, 149063, - 149067, 149071, 149075, 149079, 149083, 149087, 149091, 149095, 149099, - 149103, 149107, 149111, 149115, 149119, 149123, 149127, 149131, 149135, - 149139, 149143, 149147, 149151, 149155, 149159, 149163, 149167, 149171, - 149175, 149179, 149183, 149187, 149191, 149195, 149199, 149203, 149207, - 149211, 149215, 149219, 149223, 149227, 149231, 149235, 149239, 149243, - 149247, 149251, 149255, 149259, 149263, 149267, 149271, 149275, 149279, - 149283, 149287, 149291, 149295, 149299, 149303, 149307, 149311, 149315, - 149319, 149323, 149327, 149331, 149335, 149339, 149343, 149347, 149351, - 149355, 149359, 149363, 149367, 149371, 149375, 149379, 149383, 149387, - 149391, 149395, 149399, 149403, 149407, 149411, 149415, 149419, 149423, - 149427, 149431, 149435, 149439, 149443, 149447, 149451, 149455, 149459, - 149463, 149467, 149471, 149475, 149479, 149483, 149487, 149491, 149495, - 149499, 149503, 149507, 149511, 149515, 149519, 149523, 149527, 149531, - 149535, 149539, 149543, 149547, 149551, 149555, 149559, 149563, 149567, - 149571, 149575, 149579, 149583, 149587, 149591, 149595, 149599, 149603, - 149607, 149611, 149615, 149619, 149623, 149627, 149631, 149635, 149639, - 149643, 149647, 149651, 149655, 149659, 149663, 149667, 149671, 149675, - 149679, 149683, 149687, 149691, 149695, 149699, 149703, 149707, 149711, - 149715, 149719, 149723, 149727, 149731, 149735, 149739, 149743, 149747, - 149751, 149755, 149759, 149763, 149767, 149771, 149775, 149779, 149783, - 149787, 149791, 149795, 149799, 149803, 149807, 149811, 149815, 149819, - 149823, 149827, 149831, 149835, 149839, 149843, 149847, 149851, 149855, - 149859, 149863, 149867, 149871, 149875, 149879, 149883, 149887, 149891, - 149895, 149899, 149903, 149907, 149911, 149915, 149919, 149923, 149927, - 149931, 149935, 149939, 149943, 149947, 149951, 149955, 149959, 149963, - 149967, 149971, 149975, 149979, 149983, 149987, 149991, 149995, 149999, - 150003, 150007, 150011, 150015, 150019, 150023, 150027, 150031, 150035, - 150039, 150043, 150047, 150051, 150055, 150059, 150063, 150067, 150071, - 150078, 150084, 150090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 150096, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 150102, 150108, 150114, 0, 0, 150120, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 150125, 150130, 150135, 150140, 0, 0, 0, 0, 0, - 0, 0, 0, 150145, 150148, 150151, 150154, 150157, 150160, 150163, 150166, - 150169, 150172, 150175, 150178, 150181, 150184, 150187, 150190, 150193, - 150196, 150199, 150202, 150205, 150208, 150211, 150214, 150217, 150220, - 150223, 150226, 150229, 150232, 150235, 150238, 150241, 150244, 150247, - 150250, 150253, 150256, 150259, 150262, 150265, 150268, 150271, 150274, - 150277, 150280, 150283, 150286, 150289, 150292, 150295, 150298, 150301, - 150304, 150307, 150310, 150313, 150316, 150319, 150322, 150325, 150328, - 150331, 150334, 150337, 150340, 150343, 150346, 150349, 150352, 150355, - 150358, 150361, 150364, 150367, 150370, 150373, 150376, 150379, 150382, - 150385, 150388, 150391, 150394, 150397, 150400, 150403, 150406, 150409, - 150412, 150415, 150418, 150421, 150424, 150427, 150430, 150433, 150436, - 150439, 150442, 150445, 150448, 150451, 150454, 150457, 150460, 150463, - 150466, 150469, 150472, 150475, 150478, 150481, 150484, 150487, 150490, - 150493, 150496, 150499, 150502, 150505, 150508, 150511, 150514, 150517, - 150520, 150523, 150526, 150529, 150532, 150535, 150538, 150541, 150544, - 150547, 150550, 150553, 150556, 150559, 150562, 150565, 150568, 150571, - 150574, 150577, 150580, 150583, 150586, 150589, 150592, 150595, 150598, - 150601, 150604, 150607, 150610, 150613, 150616, 150619, 150622, 150625, - 150628, 150631, 150634, 150637, 150640, 150643, 150646, 150649, 150652, - 150655, 150658, 150661, 150664, 150667, 150670, 150673, 150676, 150679, - 150682, 150685, 150688, 150691, 150694, 150697, 150700, 150703, 150706, - 150709, 150712, 150715, 150718, 150721, 150724, 150727, 150730, 150733, - 150736, 150739, 150742, 150745, 150748, 150751, 150754, 150757, 150760, - 150763, 150766, 150769, 150772, 150775, 150778, 150781, 150784, 150787, - 150790, 150793, 150796, 150799, 150802, 150805, 150808, 150811, 150814, - 150817, 150820, 150823, 150826, 150829, 150832, 150835, 150838, 150841, - 150844, 150847, 150850, 150853, 150856, 150859, 150862, 150865, 150868, - 150871, 150874, 150877, 150880, 150883, 150886, 150889, 150892, 150895, - 150898, 150901, 150904, 150907, 150910, 150913, 150916, 150919, 150922, - 150925, 150928, 150931, 150934, 150937, 150940, 150943, 150946, 150949, - 150952, 150955, 150958, 150961, 150964, 150967, 150970, 150973, 150976, - 150979, 150982, 150985, 150988, 150991, 150994, 150997, 151000, 151003, - 151006, 151009, 151012, 151015, 151018, 151021, 151024, 151027, 151030, - 151033, 151036, 151039, 151042, 151045, 151048, 151051, 151054, 151057, - 151060, 151063, 151066, 151069, 151072, 151075, 151078, 151081, 151084, - 151087, 151090, 151093, 151096, 151099, 151102, 151105, 151108, 151111, - 151114, 151117, 151120, 151123, 151126, 151129, 151132, 151135, 151138, - 151141, 151144, 151147, 151150, 151153, 151156, 151159, 151162, 151165, - 151168, 151171, 151174, 151177, 151180, 151183, 151186, 151189, 151192, - 151195, 151198, 151201, 151204, 151207, 151210, 151213, 151216, 151219, - 151222, 151225, 151228, 151231, 151234, 151237, 151240, 151243, 151246, - 151249, 151252, 151255, 151258, 151261, 151264, 151267, 151270, 151273, - 151276, 151279, 151282, 151285, 151288, 151291, 151294, 151297, 151300, - 151303, 151306, 151309, 151312, 151315, 151318, 151321, 151324, 151327, - 151330, 0, 0, 0, 0, 151333, 151337, 151341, 151345, 151349, 151353, - 151357, 151360, 151364, 151368, 151372, 151376, 151379, 151385, 151391, - 151397, 151403, 151409, 151413, 151419, 151423, 151427, 151433, 151437, - 151441, 151445, 151449, 151453, 151457, 151461, 151467, 151473, 151479, - 151485, 151492, 151499, 151506, 151516, 151523, 151530, 151536, 151542, - 151548, 151554, 151562, 151570, 151578, 151586, 151595, 151601, 151609, - 151615, 151622, 151628, 151635, 151641, 151649, 151653, 151657, 151662, - 151668, 151674, 151682, 151690, 151696, 151703, 151706, 151712, 151716, - 151719, 151723, 151726, 151729, 151733, 151738, 151742, 151746, 151752, - 151757, 151763, 151767, 151771, 151774, 151778, 151782, 151787, 151791, - 151796, 151800, 151805, 151809, 151813, 151817, 151821, 151825, 151829, - 151833, 151837, 151842, 151847, 151852, 151857, 151863, 151869, 151875, - 151881, 151887, 0, 0, 0, 0, 0, 151892, 151900, 151909, 151917, 151924, - 151932, 151939, 151946, 151955, 151962, 151969, 151977, 151985, 0, 0, 0, - 151993, 151999, 152007, 152013, 152020, 152026, 152032, 152038, 152044, - 0, 0, 0, 0, 0, 0, 0, 152050, 152056, 152064, 152070, 152077, 152083, - 152089, 152095, 152101, 152107, 0, 0, 152112, 152118, 152124, 152127, - 152136, 152143, 152151, 152158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 148009, 148015, 148021, 148027, 0, 148033, 148039, 148045, 148053, + 148061, 148069, 148077, 0, 148085, 148093, 0, 148101, 148106, 148113, + 148117, 148121, 148125, 148129, 148133, 148137, 148141, 148145, 148149, + 148153, 148157, 148161, 148165, 148169, 148173, 148177, 148181, 148185, + 148189, 148193, 148197, 148201, 148205, 148209, 148213, 148217, 148221, + 148225, 148229, 148233, 148237, 148241, 148245, 148249, 148253, 148257, + 148261, 148265, 148269, 148273, 148277, 148281, 148285, 148289, 148293, + 148297, 148301, 148305, 148309, 148313, 148317, 148321, 148325, 148329, + 148333, 148337, 148341, 148345, 148349, 148353, 148357, 148361, 148365, + 148369, 148373, 148377, 148381, 148385, 148389, 148393, 148397, 148401, + 148405, 148409, 148413, 148417, 148421, 148425, 148429, 148433, 148437, + 148441, 148445, 148449, 148453, 148457, 148461, 148465, 148469, 148473, + 148477, 148481, 148485, 148489, 148493, 148497, 148501, 148505, 148509, + 148513, 148517, 148521, 148525, 148529, 148533, 148537, 148541, 148545, + 148549, 148553, 148557, 148561, 148565, 148569, 148573, 148577, 148581, + 148585, 148589, 148593, 148597, 148601, 148605, 148609, 148613, 148617, + 148621, 148625, 148629, 148633, 148637, 148641, 148645, 148649, 148653, + 148657, 148661, 148665, 148669, 148673, 148677, 148681, 148685, 148689, + 148693, 148697, 148701, 148705, 148709, 148713, 148717, 148721, 148725, + 148729, 148733, 148737, 148741, 148745, 148749, 148753, 148757, 148761, + 148765, 148769, 148773, 148777, 148781, 148785, 148789, 148793, 148797, + 148801, 148805, 148809, 148813, 148817, 148821, 148825, 148829, 148833, + 148837, 148841, 148845, 148849, 148853, 148857, 148861, 148865, 148869, + 148873, 148877, 148881, 148885, 148889, 148893, 148897, 148901, 148905, + 148909, 148913, 148917, 148921, 148925, 148929, 148933, 148937, 148941, + 148945, 148949, 148953, 148957, 148961, 148965, 148969, 148973, 148977, + 148981, 148985, 148989, 148993, 148997, 149001, 149005, 149009, 149013, + 149017, 149021, 149025, 149029, 149033, 149037, 149041, 149045, 149049, + 149053, 149057, 149061, 149065, 149069, 149073, 149077, 149081, 149085, + 149089, 149093, 149097, 149101, 149105, 149109, 149113, 149117, 149121, + 149125, 149129, 149133, 149137, 149141, 149145, 149149, 149153, 149157, + 149161, 149165, 149169, 149173, 149177, 149181, 149185, 149189, 149193, + 149197, 149201, 149205, 149209, 149213, 149217, 149221, 149225, 149229, + 149233, 149237, 149241, 149245, 149249, 149253, 149260, 149266, 149272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149278, + 149284, 149290, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 149296, 149301, 149306, 149311, 0, 0, 0, 0, 0, 0, 0, 0, 149316, 149319, + 149322, 149325, 149328, 149331, 149334, 149337, 149340, 149343, 149346, + 149349, 149352, 149355, 149358, 149361, 149364, 149367, 149370, 149373, + 149376, 149379, 149382, 149385, 149388, 149391, 149394, 149397, 149400, + 149403, 149406, 149409, 149412, 149415, 149418, 149421, 149424, 149427, + 149430, 149433, 149436, 149439, 149442, 149445, 149448, 149451, 149454, + 149457, 149460, 149463, 149466, 149469, 149472, 149475, 149478, 149481, + 149484, 149487, 149490, 149493, 149496, 149499, 149502, 149505, 149508, + 149511, 149514, 149517, 149520, 149523, 149526, 149529, 149532, 149535, + 149538, 149541, 149544, 149547, 149550, 149553, 149556, 149559, 149562, + 149565, 149568, 149571, 149574, 149577, 149580, 149583, 149586, 149589, + 149592, 149595, 149598, 149601, 149604, 149607, 149610, 149613, 149616, + 149619, 149622, 149625, 149628, 149631, 149634, 149637, 149640, 149643, + 149646, 149649, 149652, 149655, 149658, 149661, 149664, 149667, 149670, + 149673, 149676, 149679, 149682, 149685, 149688, 149691, 149694, 149697, + 149700, 149703, 149706, 149709, 149712, 149715, 149718, 149721, 149724, + 149727, 149730, 149733, 149736, 149739, 149742, 149745, 149748, 149751, + 149754, 149757, 149760, 149763, 149766, 149769, 149772, 149775, 149778, + 149781, 149784, 149787, 149790, 149793, 149796, 149799, 149802, 149805, + 149808, 149811, 149814, 149817, 149820, 149823, 149826, 149829, 149832, + 149835, 149838, 149841, 149844, 149847, 149850, 149853, 149856, 149859, + 149862, 149865, 149868, 149871, 149874, 149877, 149880, 149883, 149886, + 149889, 149892, 149895, 149898, 149901, 149904, 149907, 149910, 149913, + 149916, 149919, 149922, 149925, 149928, 149931, 149934, 149937, 149940, + 149943, 149946, 149949, 149952, 149955, 149958, 149961, 149964, 149967, + 149970, 149973, 149976, 149979, 149982, 149985, 149988, 149991, 149994, + 149997, 150000, 150003, 150006, 150009, 150012, 150015, 150018, 150021, + 150024, 150027, 150030, 150033, 150036, 150039, 150042, 150045, 150048, + 150051, 150054, 150057, 150060, 150063, 150066, 150069, 150072, 150075, + 150078, 150081, 150084, 150087, 150090, 150093, 150096, 150099, 150102, + 150105, 150108, 150111, 150114, 150117, 150120, 150123, 150126, 150129, + 150132, 150135, 150138, 150141, 150144, 150147, 150150, 150153, 150156, + 150159, 150162, 150165, 150168, 150171, 150174, 150177, 150180, 150183, + 150186, 150189, 150192, 150195, 150198, 150201, 150204, 150207, 150210, + 150213, 150216, 150219, 150222, 150225, 150228, 150231, 150234, 150237, + 150240, 150243, 150246, 150249, 150252, 150255, 150258, 150261, 150264, + 150267, 150270, 150273, 150276, 150279, 150282, 150285, 150288, 150291, + 150294, 150297, 150300, 150303, 150306, 150309, 150312, 150315, 150318, + 150321, 150324, 150327, 150330, 150333, 150336, 150339, 150342, 150345, + 150348, 150351, 150354, 150357, 150360, 150363, 150366, 150369, 150372, + 150375, 150378, 150381, 150384, 150387, 150390, 150393, 150396, 150399, + 150402, 150405, 150408, 150411, 150414, 150417, 150420, 150423, 150426, + 150429, 150432, 150435, 150438, 150441, 150444, 150447, 150450, 150453, + 150456, 150459, 150462, 150465, 150468, 150471, 150474, 150477, 150480, + 150483, 150486, 150489, 150492, 150495, 150498, 150501, 0, 0, 0, 0, + 150504, 150508, 150512, 150516, 150520, 150524, 150528, 150531, 150535, + 150539, 150543, 150547, 150550, 150556, 150562, 150568, 150574, 150580, + 150584, 150590, 150594, 150598, 150604, 150608, 150612, 150616, 150620, + 150624, 150628, 150632, 150638, 150644, 150650, 150656, 150663, 150670, + 150677, 150687, 150694, 150701, 150707, 150713, 150719, 150725, 150733, + 150741, 150749, 150757, 150766, 150772, 150780, 150786, 150793, 150799, + 150806, 150812, 150820, 150824, 150828, 150833, 150839, 150845, 150853, + 150861, 150867, 150874, 150877, 150883, 150887, 150890, 150894, 150897, + 150900, 150904, 150909, 150913, 150917, 150923, 150928, 150934, 150938, + 150942, 150945, 150949, 150953, 150958, 150962, 150967, 150971, 150976, + 150980, 150984, 150988, 150992, 150996, 151000, 151004, 151008, 151013, + 151018, 151023, 151028, 151034, 151040, 151046, 151052, 151058, 0, 0, 0, + 0, 0, 151063, 151071, 151080, 151088, 151095, 151103, 151110, 151117, + 151126, 151133, 151140, 151148, 151156, 0, 0, 0, 151164, 151170, 151178, + 151184, 151191, 151197, 151203, 151209, 151215, 0, 0, 0, 0, 0, 0, 0, + 151221, 151227, 151235, 151241, 151248, 151254, 151260, 151266, 151272, + 151278, 0, 0, 151283, 151289, 151295, 151298, 151307, 151314, 151322, + 151329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 152165, 152180, 152193, 152202, 152213, 152222, 152231, - 152242, 152251, 152260, 152275, 152288, 152301, 152315, 152327, 152335, - 152345, 152353, 152361, 152371, 152379, 152387, 152401, 152413, 152425, - 152434, 152445, 152454, 152463, 152470, 152479, 152488, 152495, 152500, - 152505, 152510, 152515, 152520, 152525, 152530, 152535, 152540, 152545, - 152550, 152555, 152560, 0, 0, 152569, 152578, 152587, 152596, 152601, - 152608, 152613, 152618, 152626, 152631, 152638, 152643, 152650, 152655, - 152660, 152667, 152674, 152679, 152688, 152694, 152700, 152708, 152714, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 152720, 152724, 152730, 152734, 152742, - 152746, 152750, 152754, 152762, 152766, 152772, 152781, 152785, 152789, - 152793, 152799, 152805, 152811, 152817, 152823, 152829, 152835, 152841, - 152847, 152855, 152863, 152871, 152879, 152884, 152890, 152894, 152898, - 152902, 152906, 152912, 152918, 152924, 152930, 152936, 152944, 152950, - 152958, 152966, 152974, 152982, 152990, 152994, 153002, 153008, 153016, - 153020, 153024, 153028, 153032, 153036, 153040, 153048, 153056, 153068, - 153080, 153086, 153096, 153104, 153114, 153126, 153130, 153136, 153142, - 153148, 153154, 153160, 153166, 153172, 153178, 153184, 153192, 153198, - 153204, 153210, 153218, 153226, 153237, 153248, 153254, 153260, 153270, - 153276, 153284, 153288, 153294, 153300, 153306, 153312, 153318, 153324, - 153330, 153334, 153340, 153346, 153354, 153362, 153370, 153376, 153384, - 153397, 153410, 153418, 153426, 153438, 153446, 153456, 153464, 153468, - 153472, 153476, 153480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 153484, - 153489, 153494, 153499, 153506, 153513, 153520, 153527, 153532, 153537, - 153542, 153547, 153554, 153559, 153566, 153573, 153578, 153583, 153588, - 153595, 153600, 153605, 153612, 153619, 153624, 153629, 153634, 153641, - 153648, 153655, 153660, 153665, 153672, 153679, 153686, 153693, 153698, - 153703, 153708, 153715, 153720, 153725, 153730, 153737, 153746, 153753, - 153758, 153763, 153768, 153773, 153778, 153783, 153792, 153799, 153804, - 153811, 153818, 153823, 153828, 153833, 153840, 153845, 153852, 153859, - 153864, 153869, 153874, 153881, 153888, 153893, 153898, 153905, 153912, - 153919, 153924, 153929, 153934, 153939, 153946, 153955, 153964, 153969, - 153976, 153985, 153990, 153995, 154000, 154005, 154012, 154019, 154026, - 154033, 154038, 154043, 154048, 154055, 154062, 154069, 154074, 154079, - 154086, 154091, 154098, 154103, 154110, 154115, 154122, 154129, 154134, - 154139, 154144, 154149, 154154, 154159, 154164, 154169, 154174, 154181, - 154188, 154195, 154202, 154209, 154218, 154223, 154228, 154235, 154242, - 154247, 154254, 154261, 154268, 154275, 154282, 154289, 154294, 154299, - 154304, 154309, 154314, 154323, 154332, 154341, 154350, 154359, 154368, - 154377, 154386, 154391, 154402, 154413, 154422, 154427, 154432, 154437, - 154442, 154451, 154458, 154465, 154472, 154479, 154486, 154493, 154502, - 154511, 154522, 154531, 154542, 154551, 154558, 154567, 154578, 154587, - 154596, 154605, 154614, 154621, 154628, 154635, 154644, 154653, 154664, - 154673, 154682, 154693, 154698, 154703, 154714, 154722, 154731, 154740, - 154749, 154760, 154769, 154778, 154789, 154800, 154811, 154822, 154833, - 154844, 154851, 154858, 154865, 154872, 154883, 154892, 154899, 154906, - 154913, 154924, 154935, 154946, 154957, 154968, 154979, 154990, 155001, - 155008, 155015, 155024, 155033, 155040, 155047, 155054, 155063, 155072, - 155081, 155088, 155097, 155106, 155115, 155122, 155129, 155134, 155140, - 155147, 155154, 155161, 155168, 155175, 155182, 155191, 155200, 155209, - 155218, 155225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 155234, 155240, 155245, - 155250, 155257, 155263, 155269, 155275, 155281, 155287, 155293, 155299, - 155303, 155307, 155313, 155319, 155325, 155329, 155334, 155339, 155343, - 155347, 155351, 155357, 155363, 155369, 155375, 155381, 155387, 155393, - 155399, 155405, 155415, 155425, 155431, 155437, 155447, 155457, 155463, - 0, 0, 155469, 155477, 155482, 155487, 155493, 155499, 155505, 155511, - 155517, 155523, 155530, 155537, 155543, 155549, 155555, 155561, 155567, - 155573, 155579, 155585, 155590, 155596, 155602, 155608, 155614, 155620, - 155629, 155635, 155640, 155648, 155655, 155662, 155671, 155680, 155689, - 155698, 155707, 155716, 155725, 155734, 155744, 155754, 155762, 155770, - 155779, 155788, 155794, 155800, 155806, 155812, 155820, 155828, 155832, - 155838, 155843, 155849, 155855, 155861, 155867, 155873, 155882, 155887, - 155894, 155899, 155904, 155909, 155915, 155921, 155927, 155934, 155939, - 155944, 155949, 155954, 155959, 155965, 155971, 155977, 155983, 155989, - 155995, 156001, 156007, 156012, 156017, 156022, 156027, 156032, 156037, - 156042, 156047, 156053, 156059, 156064, 156069, 156074, 156079, 156084, - 156090, 156097, 156101, 156105, 156109, 156113, 156117, 156121, 156125, - 156129, 156137, 156147, 156151, 156155, 156161, 156167, 156173, 156179, - 156185, 156191, 156197, 156203, 156209, 156215, 156221, 156227, 156233, - 156239, 156243, 156247, 156254, 156260, 156266, 156272, 156277, 156284, - 156289, 156295, 156301, 156307, 156313, 156318, 156322, 156328, 156332, - 156336, 156340, 156346, 156352, 156356, 156362, 156368, 156374, 156380, - 156386, 156394, 156402, 156408, 156414, 156420, 156426, 156438, 156450, - 156464, 156476, 156488, 156502, 156516, 156530, 156534, 156542, 156550, - 156555, 156559, 156563, 156567, 156571, 156575, 156579, 156583, 156589, - 156595, 156601, 156607, 156615, 156624, 156631, 156638, 156646, 156653, - 156665, 156677, 156689, 156701, 156708, 156712, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 156716, 156723, 156730, 156737, - 156744, 156751, 156758, 156765, 156772, 156779, 156786, 156793, 156800, - 156807, 156814, 156821, 156828, 156835, 156842, 156849, 156856, 156863, - 156870, 156877, 156884, 156891, 156898, 156905, 156912, 156919, 156926, - 156933, 156940, 156947, 156954, 156961, 156968, 156975, 156982, 156989, - 156996, 157003, 157010, 157017, 157024, 157031, 157038, 157045, 157052, - 157059, 157066, 157073, 157080, 157087, 157094, 157101, 157108, 157115, - 157122, 157129, 157136, 157143, 157150, 157157, 157164, 157171, 157178, - 157183, 157188, 157193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 151336, + 151351, 151364, 151373, 151384, 151393, 151402, 151413, 151422, 151431, + 151446, 151459, 151472, 151486, 151498, 151506, 151516, 151524, 151532, + 151542, 151550, 151558, 151572, 151584, 151596, 151605, 151616, 151625, + 151634, 151641, 151650, 151659, 151666, 151671, 151676, 151681, 151686, + 151691, 151696, 151701, 151706, 151711, 151716, 151721, 151726, 151731, + 0, 0, 151740, 151749, 151758, 151767, 151772, 151779, 151784, 151789, + 151797, 151802, 151809, 151814, 151821, 151826, 151831, 151838, 151845, + 151850, 151859, 151865, 151871, 151879, 151885, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 151891, 151895, 151901, 151905, 151913, 151917, 151921, 151925, + 151933, 151937, 151943, 151952, 151956, 151960, 151964, 151970, 151976, + 151982, 151988, 151994, 152000, 152006, 152012, 152018, 152026, 152034, + 152042, 152050, 152055, 152061, 152065, 152069, 152073, 152077, 152083, + 152089, 152095, 152101, 152107, 152115, 152121, 152129, 152137, 152145, + 152153, 152161, 152165, 152173, 152179, 152187, 152191, 152195, 152199, + 152203, 152207, 152211, 152219, 152227, 152239, 152251, 152257, 152267, + 152275, 152285, 152297, 152301, 152307, 152313, 152319, 152325, 152331, + 152337, 152343, 152349, 152355, 152363, 152369, 152375, 152381, 152389, + 152397, 152408, 152419, 152425, 152431, 152441, 152447, 152455, 152459, + 152465, 152471, 152477, 152483, 152489, 152495, 152501, 152505, 152511, + 152517, 152525, 152533, 152541, 152547, 152555, 152568, 152581, 152589, + 152597, 152609, 152617, 152627, 152635, 152639, 152643, 152647, 152651, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 152655, 152660, 152665, 152670, + 152677, 152684, 152691, 152698, 152703, 152708, 152713, 152718, 152725, + 152730, 152737, 152744, 152749, 152754, 152759, 152766, 152771, 152776, + 152783, 152790, 152795, 152800, 152805, 152812, 152819, 152826, 152831, + 152836, 152843, 152850, 152857, 152864, 152869, 152874, 152879, 152886, + 152891, 152896, 152901, 152908, 152917, 152924, 152929, 152934, 152939, + 152944, 152949, 152954, 152963, 152970, 152975, 152982, 152989, 152994, + 152999, 153004, 153011, 153016, 153023, 153030, 153035, 153040, 153045, + 153052, 153059, 153064, 153069, 153076, 153083, 153090, 153095, 153100, + 153105, 153110, 153117, 153126, 153135, 153140, 153147, 153156, 153161, + 153166, 153171, 153176, 153183, 153190, 153197, 153204, 153209, 153214, + 153219, 153226, 153233, 153240, 153245, 153250, 153257, 153262, 153269, + 153274, 153281, 153286, 153293, 153300, 153305, 153310, 153315, 153320, + 153325, 153330, 153335, 153340, 153345, 153352, 153359, 153366, 153373, + 153380, 153389, 153394, 153399, 153406, 153413, 153418, 153425, 153432, + 153439, 153446, 153453, 153460, 153465, 153470, 153475, 153480, 153485, + 153494, 153503, 153512, 153521, 153530, 153539, 153548, 153557, 153562, + 153573, 153584, 153593, 153598, 153603, 153608, 153613, 153622, 153629, + 153636, 153643, 153650, 153657, 153664, 153673, 153682, 153693, 153702, + 153713, 153722, 153729, 153738, 153749, 153758, 153767, 153776, 153785, + 153792, 153799, 153806, 153815, 153824, 153835, 153844, 153853, 153864, + 153869, 153874, 153885, 153893, 153902, 153911, 153920, 153931, 153940, + 153949, 153960, 153971, 153982, 153993, 154004, 154015, 154022, 154029, + 154036, 154043, 154054, 154063, 154070, 154077, 154084, 154095, 154106, + 154117, 154128, 154139, 154150, 154161, 154172, 154179, 154186, 154195, + 154204, 154211, 154218, 154225, 154234, 154243, 154252, 154259, 154268, + 154277, 154286, 154293, 154300, 154305, 154311, 154318, 154325, 154332, + 154339, 154346, 154353, 154362, 154371, 154380, 154389, 154396, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 154405, 154411, 154416, 154421, 154428, 154434, + 154440, 154446, 154452, 154458, 154464, 154470, 154474, 154478, 154484, + 154490, 154496, 154500, 154505, 154510, 154514, 154518, 154522, 154528, + 154534, 154540, 154546, 154552, 154558, 154564, 154570, 154576, 154586, + 154596, 154602, 154608, 154618, 154628, 154634, 0, 0, 154640, 154648, + 154653, 154658, 154664, 154670, 154676, 154682, 154688, 154694, 154701, + 154708, 154714, 154720, 154726, 154732, 154738, 154744, 154750, 154756, + 154761, 154767, 154773, 154779, 154785, 154791, 154800, 154806, 154811, + 154819, 154826, 154833, 154842, 154851, 154860, 154869, 154878, 154887, + 154896, 154905, 154915, 154925, 154933, 154941, 154950, 154959, 154965, + 154971, 154977, 154983, 154991, 154999, 155003, 155009, 155014, 155020, + 155026, 155032, 155038, 155044, 155053, 155058, 155065, 155070, 155075, + 155080, 155086, 155092, 155098, 155105, 155110, 155115, 155120, 155125, + 155130, 155136, 155142, 155148, 155154, 155160, 155166, 155172, 155178, + 155183, 155188, 155193, 155198, 155203, 155208, 155213, 155218, 155224, + 155230, 155235, 155240, 155245, 155250, 155255, 155261, 155268, 155272, + 155276, 155280, 155284, 155288, 155292, 155296, 155300, 155308, 155318, + 155322, 155326, 155332, 155338, 155344, 155350, 155356, 155362, 155368, + 155374, 155380, 155386, 155392, 155398, 155404, 155410, 155414, 155418, + 155425, 155431, 155437, 155443, 155448, 155455, 155460, 155466, 155472, + 155478, 155484, 155489, 155493, 155499, 155503, 155507, 155511, 155517, + 155523, 155527, 155533, 155539, 155545, 155551, 155557, 155565, 155573, + 155579, 155585, 155591, 155597, 155609, 155621, 155635, 155647, 155659, + 155673, 155687, 155701, 155705, 155713, 155721, 155726, 155730, 155734, + 155738, 155742, 155746, 155750, 155754, 155760, 155766, 155772, 155778, + 155786, 155795, 155802, 155809, 155817, 155824, 155836, 155848, 155860, + 155872, 155879, 155883, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 155887, 155894, 155901, 155908, 155915, 155922, 155929, + 155936, 155943, 155950, 155957, 155964, 155971, 155978, 155985, 155992, + 155999, 156006, 156013, 156020, 156027, 156034, 156041, 156048, 156055, + 156062, 156069, 156076, 156083, 156090, 156097, 156104, 156111, 156118, + 156125, 156132, 156139, 156146, 156153, 156160, 156167, 156174, 156181, + 156188, 156195, 156202, 156209, 156216, 156223, 156230, 156237, 156244, + 156251, 156258, 156265, 156272, 156279, 156286, 156293, 156300, 156307, + 156314, 156321, 156328, 156335, 156342, 156349, 156354, 156359, 156364, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 157197, 157203, 157208, 157213, 157218, - 157223, 157228, 157233, 157238, 157243, 157248, 157254, 157260, 157266, - 157272, 157278, 157284, 157290, 157296, 157302, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 157308, 157314, 157319, 157324, 157329, 157334, 157339, - 157344, 157349, 157354, 157359, 157365, 157371, 157377, 157383, 157389, - 157395, 157401, 157407, 157413, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 157419, 157424, 157431, 157438, 157445, 157452, 157457, 157462, 157469, - 157474, 157479, 157486, 157491, 157496, 157501, 157508, 157517, 157522, - 157527, 157532, 157537, 157542, 157547, 157554, 157559, 157564, 157569, - 157574, 157579, 157584, 157589, 157594, 157599, 157604, 157609, 157614, - 157620, 157625, 157630, 157635, 157640, 157645, 157650, 157655, 157660, - 157665, 157674, 157679, 157687, 157692, 157697, 157702, 157707, 157712, - 157717, 157722, 157731, 157736, 157741, 157746, 157751, 157756, 157763, - 157768, 157775, 157780, 157785, 157790, 157795, 157800, 157805, 157810, - 157815, 157820, 157825, 157830, 157835, 157840, 157845, 157850, 157855, - 157860, 157865, 157870, 157879, 157884, 157889, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 157894, 157902, 157910, 157918, 157926, 157934, 157942, 157950, - 157958, 157966, 157974, 157982, 157990, 157998, 158006, 158014, 158022, - 158030, 158038, 158043, 158048, 158053, 158058, 158063, 158067, 0, 0, 0, - 0, 0, 0, 0, 158071, 158075, 158080, 158085, 158090, 158094, 158099, - 158104, 158109, 158113, 158118, 158123, 158127, 158132, 158137, 158141, - 158146, 158151, 158155, 158160, 158165, 158169, 158174, 158179, 158184, - 158189, 158194, 158198, 158203, 158208, 158213, 158217, 158222, 158227, - 158232, 158236, 158241, 158246, 158250, 158255, 158260, 158264, 158269, - 158274, 158278, 158283, 158288, 158292, 158297, 158302, 158307, 158312, - 158317, 158321, 158326, 158331, 158336, 158340, 158345, 158350, 158355, - 158359, 158364, 158369, 158373, 158378, 158383, 158387, 158392, 158397, - 158401, 158406, 158411, 158415, 158420, 158425, 158430, 158435, 158440, - 158444, 158449, 158454, 158459, 158463, 158468, 0, 158473, 158477, - 158482, 158487, 158491, 158496, 158501, 158505, 158510, 158515, 158519, - 158524, 158529, 158533, 158538, 158543, 158548, 158553, 158558, 158563, - 158569, 158575, 158581, 158586, 158592, 158598, 158604, 158609, 158615, - 158621, 158626, 158632, 158638, 158643, 158649, 158655, 158660, 158666, - 158672, 158677, 158683, 158689, 158695, 158701, 158707, 158712, 158718, - 158724, 158730, 158735, 158741, 158747, 158753, 158758, 158764, 158770, - 158775, 158781, 158787, 158792, 158798, 158804, 158809, 158815, 158821, - 158826, 158832, 158838, 158844, 158850, 158856, 0, 158860, 158865, 0, 0, - 158870, 0, 0, 158875, 158880, 0, 0, 158885, 158890, 158894, 158899, 0, - 158904, 158909, 158914, 158918, 158923, 158928, 158933, 158938, 158943, - 158947, 158952, 158957, 0, 158962, 0, 158967, 158972, 158976, 158981, - 158986, 158990, 158995, 0, 159000, 159005, 159010, 159014, 159019, - 159024, 159028, 159033, 159038, 159043, 159048, 159053, 159058, 159064, - 159070, 159076, 159081, 159087, 159093, 159099, 159104, 159110, 159116, - 159121, 159127, 159133, 159138, 159144, 159150, 159155, 159161, 159167, - 159172, 159178, 159184, 159190, 159196, 159202, 159207, 159213, 159219, - 159225, 159230, 159236, 159242, 159248, 159253, 159259, 159265, 159270, - 159276, 159282, 159287, 159293, 159299, 159304, 159310, 159316, 159321, - 159327, 159333, 159339, 159345, 159351, 159356, 0, 159362, 159368, - 159373, 159379, 0, 0, 159385, 159391, 159397, 159402, 159408, 159414, - 159419, 159425, 0, 159431, 159437, 159443, 159448, 159454, 159460, - 159466, 0, 159472, 159477, 159483, 159489, 159495, 159500, 159506, - 159512, 159518, 159523, 159529, 159535, 159540, 159546, 159552, 159557, - 159563, 159569, 159574, 159580, 159586, 159591, 159597, 159603, 159609, - 159615, 159621, 159626, 0, 159632, 159638, 159643, 159649, 0, 159655, - 159660, 159666, 159672, 159677, 0, 159683, 0, 0, 0, 159688, 159694, - 159700, 159705, 159711, 159717, 159723, 0, 159729, 159734, 159740, - 159746, 159752, 159757, 159763, 159769, 159775, 159780, 159786, 159792, - 159797, 159803, 159809, 159814, 159820, 159826, 159831, 159837, 159843, - 159848, 159854, 159860, 159866, 159872, 159878, 159884, 159891, 159898, - 159905, 159911, 159918, 159925, 159932, 159938, 159945, 159952, 159958, - 159965, 159972, 159978, 159985, 159992, 159998, 160005, 160012, 160018, - 160025, 160032, 160039, 160046, 160053, 160059, 160066, 160073, 160080, - 160086, 160093, 160100, 160107, 160113, 160120, 160127, 160133, 160140, - 160147, 160153, 160160, 160167, 160173, 160180, 160187, 160193, 160200, - 160207, 160214, 160221, 160228, 160232, 160237, 160242, 160247, 160251, - 160256, 160261, 160266, 160270, 160275, 160280, 160284, 160289, 160294, - 160298, 160303, 160308, 160312, 160317, 160322, 160326, 160331, 160336, - 160341, 160346, 160351, 160355, 160360, 160365, 160370, 160374, 160379, - 160384, 160389, 160393, 160398, 160403, 160407, 160412, 160417, 160421, - 160426, 160431, 160435, 160440, 160445, 160449, 160454, 160459, 160464, - 160469, 160474, 160479, 160485, 160491, 160497, 160502, 160508, 160514, - 160520, 160525, 160531, 160537, 160542, 160548, 160554, 160559, 160565, - 160571, 160576, 160582, 160588, 160593, 160599, 160605, 160611, 160617, - 160623, 160628, 160634, 160640, 160646, 160651, 160657, 160663, 160669, - 160674, 160680, 160686, 160691, 160697, 160703, 160708, 160714, 160720, - 160725, 160731, 160737, 160742, 160748, 160754, 160760, 160766, 160772, - 160777, 160783, 160789, 160795, 160800, 160806, 160812, 160818, 160823, - 160829, 160835, 160840, 160846, 160852, 160857, 160863, 160869, 160874, - 160880, 160886, 160891, 160897, 160903, 160909, 160915, 160921, 160926, - 160932, 160938, 160944, 160949, 160955, 160961, 160967, 160972, 160978, - 160984, 160989, 160995, 161001, 161006, 161012, 161018, 161023, 161029, - 161035, 161040, 161046, 161052, 161058, 161064, 161070, 161076, 161083, - 161090, 161097, 161103, 161110, 161117, 161124, 161130, 161137, 161144, - 161150, 161157, 161164, 161170, 161177, 161184, 161190, 161197, 161204, - 161210, 161217, 161224, 161231, 161238, 161245, 161251, 161258, 161265, - 161272, 161278, 161285, 161292, 161299, 161305, 161312, 161319, 161325, - 161332, 161339, 161345, 161352, 161359, 161365, 161372, 161379, 161385, - 161392, 161399, 161406, 161413, 161420, 161425, 161431, 161437, 161443, - 161448, 161454, 161460, 161466, 161471, 161477, 161483, 161488, 161494, - 161500, 161505, 161511, 161517, 161522, 161528, 161534, 161539, 161545, - 161551, 161557, 161563, 161569, 161574, 161580, 161586, 161592, 161597, - 161603, 161609, 161615, 161620, 161626, 161632, 161637, 161643, 161649, - 161654, 161660, 161666, 161671, 161677, 161683, 161688, 161694, 161700, - 161706, 161712, 161718, 161724, 0, 0, 161731, 161736, 161741, 161746, - 161751, 161756, 161761, 161766, 161771, 161776, 161781, 161786, 161791, - 161796, 161801, 161806, 161811, 161816, 161822, 161827, 161832, 161837, - 161842, 161847, 161852, 161857, 161861, 161866, 161871, 161876, 161881, - 161886, 161891, 161896, 161901, 161906, 161911, 161916, 161921, 161926, - 161931, 161936, 161941, 161946, 161952, 161957, 161962, 161967, 161972, - 161977, 161982, 161987, 161993, 161998, 162003, 162008, 162013, 162018, - 162023, 162028, 162033, 162038, 162043, 162048, 162053, 162058, 162063, - 162068, 162073, 162078, 162083, 162088, 162093, 162098, 162103, 162108, - 162114, 162119, 162124, 162129, 162134, 162139, 162144, 162149, 162153, - 162158, 162163, 162168, 162173, 162178, 162183, 162188, 162193, 162198, - 162203, 162208, 162213, 162218, 162223, 162228, 162233, 162238, 162244, - 162249, 162254, 162259, 162264, 162269, 162274, 162279, 162285, 162290, - 162295, 162300, 162305, 162310, 162315, 162321, 162327, 162333, 162339, - 162345, 162351, 162357, 162363, 162369, 162375, 162381, 162387, 162393, - 162399, 162405, 162411, 162417, 162424, 162430, 162436, 162442, 162448, - 162454, 162460, 162466, 162471, 162477, 162483, 162489, 162495, 162501, - 162507, 162513, 162519, 162525, 162531, 162537, 162543, 162549, 162555, - 162561, 162567, 162573, 162580, 162586, 162592, 162598, 162604, 162610, - 162616, 162622, 162629, 162635, 162641, 162647, 162653, 162659, 162665, - 162671, 162677, 162683, 162689, 162695, 162701, 162707, 162713, 162719, - 162725, 162731, 162737, 162743, 162749, 162755, 162761, 162767, 162774, - 162780, 162786, 162792, 162798, 162804, 162810, 162816, 162821, 162827, - 162833, 162839, 162845, 162851, 162857, 162863, 162869, 162875, 162881, - 162887, 162893, 162899, 162905, 162911, 162917, 162923, 162930, 162936, - 162942, 162948, 162954, 162960, 162966, 162972, 162979, 162985, 162991, - 162997, 163003, 163009, 163015, 163022, 163029, 163036, 163043, 163050, - 163057, 163064, 163071, 163078, 163085, 163092, 163099, 163106, 163113, - 163120, 163127, 163134, 163142, 163149, 163156, 163163, 163170, 163177, - 163184, 163191, 163197, 163204, 163211, 163218, 163225, 163232, 163239, - 163246, 163253, 163260, 163267, 163274, 163281, 163288, 163295, 163302, - 163309, 163316, 163324, 163331, 163338, 163345, 163352, 163359, 163366, - 163373, 163381, 163388, 163395, 163402, 163409, 163416, 163423, 163428, - 0, 0, 163433, 163438, 163442, 163446, 163450, 163454, 163458, 163462, - 163466, 163470, 163474, 163480, 163485, 163490, 163495, 163500, 163505, - 163510, 163515, 163520, 163525, 163530, 163534, 163538, 163542, 163546, - 163550, 163554, 163558, 163562, 163566, 163572, 163577, 163582, 163587, - 163592, 163597, 163602, 163607, 163612, 163617, 163623, 163628, 163633, - 163638, 163643, 163648, 163653, 163658, 163663, 163668, 163672, 163677, - 163682, 163687, 163692, 163697, 163702, 163708, 163716, 163723, 163728, - 163733, 163740, 163746, 163751, 163757, 163763, 163771, 163777, 163784, - 163792, 163798, 163807, 163816, 163824, 163832, 163838, 163845, 163853, - 163861, 163867, 163874, 163883, 163892, 163899, 163910, 163920, 163930, - 163940, 163950, 163957, 163964, 163971, 163978, 163987, 163996, 164007, - 164018, 164027, 164036, 164047, 164056, 164065, 164076, 164085, 164094, - 164102, 164110, 164121, 164132, 164140, 164149, 164158, 164165, 164176, - 164187, 164196, 164205, 164212, 164221, 164230, 164239, 164250, 164259, - 164269, 164278, 164287, 164298, 164311, 164326, 164337, 164350, 164362, - 164371, 164382, 164393, 164402, 164413, 164427, 164442, 164445, 164454, - 164459, 164465, 164473, 164479, 164485, 164494, 164501, 164511, 164523, - 164530, 164533, 164539, 164546, 164552, 164557, 164560, 164565, 164568, - 164576, 164582, 164591, 164598, 164606, 164612, 164617, 164620, 164623, - 164626, 164632, 164639, 164645, 164650, 164658, 164661, 164666, 164674, - 164680, 164689, 164696, 164706, 164715, 164718, 164724, 164731, 164738, - 164745, 164750, 164758, 164766, 164775, 164781, 164790, 164799, 164808, - 164814, 164823, 164830, 164837, 164844, 164852, 164858, 164866, 164872, - 164879, 164886, 164894, 164905, 164915, 164921, 164928, 164935, 164942, - 164948, 164955, 164962, 164967, 164974, 164982, 164991, 164997, 165009, - 165020, 165026, 165034, 165040, 165047, 165054, 165061, 165067, 165074, - 165083, 165089, 165095, 165102, 165109, 165117, 165127, 165137, 165147, - 165157, 165165, 165173, 165183, 165191, 165196, 165201, 165206, 165212, - 165219, 165226, 165232, 165238, 165243, 165250, 165258, 165268, 165276, - 165284, 165294, 165304, 165312, 165322, 165332, 165344, 165356, 165368, - 165378, 165384, 165390, 165397, 165406, 165415, 165424, 165433, 165443, - 165452, 165461, 165470, 165475, 165481, 165490, 165500, 165509, 165515, - 165521, 165528, 165535, 165542, 165548, 165555, 165562, 165569, 165575, - 165579, 165584, 165591, 165598, 165605, 165610, 165618, 165626, 165635, - 165643, 165650, 165658, 165667, 165677, 165680, 165684, 165689, 165694, - 165699, 165704, 165709, 165714, 165719, 165724, 165729, 165734, 165739, - 165744, 165749, 165754, 165759, 165764, 165769, 165776, 165782, 165789, - 165795, 165800, 165807, 165813, 165820, 165826, 165831, 165838, 165845, - 165852, 165858, 165864, 165873, 165882, 165892, 165899, 165906, 165915, - 165924, 165933, 165942, 165951, 165957, 165965, 165971, 165981, 165986, - 165995, 166004, 166011, 166022, 166029, 166036, 166043, 166050, 166057, - 166064, 166071, 166078, 166085, 166092, 166098, 166104, 166110, 166117, - 166124, 166131, 166138, 166145, 166152, 166159, 166166, 166173, 166180, - 166187, 166194, 166199, 166208, 166217, 166226, 166233, 166240, 166247, - 166254, 166261, 166268, 166275, 166282, 166291, 166300, 166309, 166318, - 166327, 166336, 166345, 166354, 166363, 166372, 166381, 166390, 166399, - 166405, 166413, 166419, 166429, 166434, 166443, 166452, 166461, 166472, - 166477, 166484, 166491, 166498, 166503, 166509, 166515, 166521, 166528, - 166535, 166542, 166549, 166556, 166563, 166570, 166577, 166584, 166591, - 166598, 166605, 166610, 166619, 166628, 166637, 166646, 166655, 166664, - 166673, 166682, 166693, 166704, 166711, 166718, 166725, 166732, 166739, - 166746, 166754, 166764, 166774, 166784, 166795, 166806, 166817, 166826, - 166835, 166844, 166849, 166854, 166859, 166864, 166875, 166886, 166897, - 166908, 166919, 166929, 166940, 166949, 166958, 166967, 166976, 166985, - 166993, 167002, 167013, 167024, 167035, 167046, 167057, 167069, 167082, - 167094, 167107, 167119, 167132, 167144, 167157, 167168, 167179, 167188, - 167196, 167205, 167216, 167227, 167239, 167252, 167266, 167281, 167293, - 167306, 167318, 167331, 167342, 167353, 167362, 167370, 167379, 167386, - 167393, 167400, 167407, 167414, 167421, 167428, 167435, 167442, 167449, - 167454, 167459, 167464, 167471, 167481, 167492, 167502, 167513, 167527, - 167542, 167557, 167571, 167586, 167601, 167612, 167623, 167636, 167649, - 167658, 167667, 167680, 167693, 167700, 167707, 167712, 167717, 167722, - 167727, 167732, 167739, 167748, 167753, 167756, 167761, 167768, 167775, - 167782, 167789, 167796, 167803, 167816, 167830, 167845, 167852, 167859, - 167866, 167875, 167883, 167891, 167900, 167905, 167910, 167915, 167920, - 167925, 167930, 167937, 167944, 167950, 167957, 167963, 167970, 167975, - 167980, 167985, 167990, 167995, 168002, 168009, 168014, 168021, 168028, - 168033, 168038, 168043, 168048, 168053, 168058, 168065, 168072, 168079, - 168082, 168087, 168092, 168097, 168102, 168109, 168116, 168124, 168132, - 168137, 168142, 168149, 168156, 168163, 168168, 168175, 168182, 168187, - 168194, 168201, 168208, 168215, 168222, 168229, 168238, 168247, 168254, - 168263, 168272, 168277, 168284, 168291, 168296, 168303, 168310, 168317, - 168324, 168331, 168336, 168343, 168350, 168359, 168366, 168375, 168386, - 168395, 168404, 168413, 168422, 168425, 168430, 168437, 168446, 168453, - 168462, 168469, 168474, 168479, 168482, 168485, 168488, 168495, 168502, - 168511, 168520, 168529, 168536, 168543, 168548, 168560, 168565, 168570, - 168575, 168580, 168585, 168590, 168595, 168600, 168603, 168608, 168613, - 168618, 168623, 168628, 168635, 168640, 168647, 168650, 168655, 168658, - 168661, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 168664, 168669, - 168674, 168679, 168684, 0, 168689, 168694, 168699, 168704, 168709, - 168714, 168719, 168724, 168729, 168734, 168739, 168744, 168749, 168754, - 168759, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 168764, 168774, 168782, 168789, 168796, - 168805, 168814, 168823, 168830, 168844, 168856, 168866, 168874, 168886, - 168895, 168906, 168915, 168922, 168930, 168941, 168953, 168962, 168972, - 168984, 168995, 169004, 169015, 169027, 169035, 169046, 169055, 0, 0, 0, - 0, 0, 0, 169063, 169073, 169083, 169093, 169103, 169113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 156368, 156374, 156379, 156384, 156389, + 156394, 156399, 156404, 156409, 156414, 156419, 156425, 156431, 156437, + 156443, 156449, 156455, 156461, 156467, 156473, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 156479, 156484, 156491, 156498, 156505, 156512, 156517, + 156522, 156529, 156534, 156539, 156546, 156551, 156556, 156561, 156568, + 156577, 156582, 156587, 156592, 156597, 156602, 156607, 156614, 156619, + 156624, 156629, 156634, 156639, 156644, 156649, 156654, 156659, 156664, + 156669, 156674, 156680, 156685, 156690, 156695, 156700, 156705, 156710, + 156715, 156720, 156725, 156734, 156739, 156747, 156752, 156757, 156762, + 156767, 156772, 156777, 156782, 156791, 156796, 156801, 156806, 156811, + 156816, 156823, 156828, 156835, 156840, 156845, 156850, 156855, 156860, + 156865, 156870, 156875, 156880, 156885, 156890, 156895, 156900, 156905, + 156910, 156915, 156920, 156925, 156930, 156939, 156944, 156949, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 156954, 156962, 156970, 156978, 156986, 156994, 157002, + 157010, 157018, 157026, 157034, 157042, 157050, 157058, 157066, 157074, + 157082, 157090, 157098, 157103, 157108, 157113, 157118, 157123, 157127, + 0, 0, 0, 0, 0, 0, 0, 157131, 157135, 157140, 157145, 157150, 157154, + 157159, 157164, 157169, 157173, 157178, 157183, 157187, 157192, 157197, + 157201, 157206, 157211, 157215, 157220, 157225, 157229, 157234, 157239, + 157244, 157249, 157254, 157258, 157263, 157268, 157273, 157277, 157282, + 157287, 157292, 157296, 157301, 157306, 157310, 157315, 157320, 157324, + 157329, 157334, 157338, 157343, 157348, 157352, 157357, 157362, 157367, + 157372, 157377, 157381, 157386, 157391, 157396, 157400, 157405, 157410, + 157415, 157419, 157424, 157429, 157433, 157438, 157443, 157447, 157452, + 157457, 157461, 157466, 157471, 157475, 157480, 157485, 157490, 157495, + 157500, 157504, 157509, 157514, 157519, 157523, 157528, 0, 157533, + 157537, 157542, 157547, 157551, 157556, 157561, 157565, 157570, 157575, + 157579, 157584, 157589, 157593, 157598, 157603, 157608, 157613, 157618, + 157623, 157629, 157635, 157641, 157646, 157652, 157658, 157664, 157669, + 157675, 157681, 157686, 157692, 157698, 157703, 157709, 157715, 157720, + 157726, 157732, 157737, 157743, 157749, 157755, 157761, 157767, 157772, + 157778, 157784, 157790, 157795, 157801, 157807, 157813, 157818, 157824, + 157830, 157835, 157841, 157847, 157852, 157858, 157864, 157869, 157875, + 157881, 157886, 157892, 157898, 157904, 157910, 157916, 0, 157920, + 157925, 0, 0, 157930, 0, 0, 157935, 157940, 0, 0, 157945, 157950, 157954, + 157959, 0, 157964, 157969, 157974, 157978, 157983, 157988, 157993, + 157998, 158003, 158007, 158012, 158017, 0, 158022, 0, 158027, 158032, + 158036, 158041, 158046, 158050, 158055, 0, 158060, 158065, 158070, + 158074, 158079, 158084, 158088, 158093, 158098, 158103, 158108, 158113, + 158118, 158124, 158130, 158136, 158141, 158147, 158153, 158159, 158164, + 158170, 158176, 158181, 158187, 158193, 158198, 158204, 158210, 158215, + 158221, 158227, 158232, 158238, 158244, 158250, 158256, 158262, 158267, + 158273, 158279, 158285, 158290, 158296, 158302, 158308, 158313, 158319, + 158325, 158330, 158336, 158342, 158347, 158353, 158359, 158364, 158370, + 158376, 158381, 158387, 158393, 158399, 158405, 158411, 158416, 0, + 158422, 158428, 158433, 158439, 0, 0, 158445, 158451, 158457, 158462, + 158468, 158474, 158479, 158485, 0, 158491, 158497, 158503, 158508, + 158514, 158520, 158526, 0, 158532, 158537, 158543, 158549, 158555, + 158560, 158566, 158572, 158578, 158583, 158589, 158595, 158600, 158606, + 158612, 158617, 158623, 158629, 158634, 158640, 158646, 158651, 158657, + 158663, 158669, 158675, 158681, 158686, 0, 158692, 158698, 158703, + 158709, 0, 158715, 158720, 158726, 158732, 158737, 0, 158743, 0, 0, 0, + 158748, 158754, 158760, 158765, 158771, 158777, 158783, 0, 158789, + 158794, 158800, 158806, 158812, 158817, 158823, 158829, 158835, 158840, + 158846, 158852, 158857, 158863, 158869, 158874, 158880, 158886, 158891, + 158897, 158903, 158908, 158914, 158920, 158926, 158932, 158938, 158944, + 158951, 158958, 158965, 158971, 158978, 158985, 158992, 158998, 159005, + 159012, 159018, 159025, 159032, 159038, 159045, 159052, 159058, 159065, + 159072, 159078, 159085, 159092, 159099, 159106, 159113, 159119, 159126, + 159133, 159140, 159146, 159153, 159160, 159167, 159173, 159180, 159187, + 159193, 159200, 159207, 159213, 159220, 159227, 159233, 159240, 159247, + 159253, 159260, 159267, 159274, 159281, 159288, 159292, 159297, 159302, + 159307, 159311, 159316, 159321, 159326, 159330, 159335, 159340, 159344, + 159349, 159354, 159358, 159363, 159368, 159372, 159377, 159382, 159386, + 159391, 159396, 159401, 159406, 159411, 159415, 159420, 159425, 159430, + 159434, 159439, 159444, 159449, 159453, 159458, 159463, 159467, 159472, + 159477, 159481, 159486, 159491, 159495, 159500, 159505, 159509, 159514, + 159519, 159524, 159529, 159534, 159539, 159545, 159551, 159557, 159562, + 159568, 159574, 159580, 159585, 159591, 159597, 159602, 159608, 159614, + 159619, 159625, 159631, 159636, 159642, 159648, 159653, 159659, 159665, + 159671, 159677, 159683, 159688, 159694, 159700, 159706, 159711, 159717, + 159723, 159729, 159734, 159740, 159746, 159751, 159757, 159763, 159768, + 159774, 159780, 159785, 159791, 159797, 159802, 159808, 159814, 159820, + 159826, 159832, 159837, 159843, 159849, 159855, 159860, 159866, 159872, + 159878, 159883, 159889, 159895, 159900, 159906, 159912, 159917, 159923, + 159929, 159934, 159940, 159946, 159951, 159957, 159963, 159969, 159975, + 159981, 159986, 159992, 159998, 160004, 160009, 160015, 160021, 160027, + 160032, 160038, 160044, 160049, 160055, 160061, 160066, 160072, 160078, + 160083, 160089, 160095, 160100, 160106, 160112, 160118, 160124, 160130, + 160136, 160143, 160150, 160157, 160163, 160170, 160177, 160184, 160190, + 160197, 160204, 160210, 160217, 160224, 160230, 160237, 160244, 160250, + 160257, 160264, 160270, 160277, 160284, 160291, 160298, 160305, 160311, + 160318, 160325, 160332, 160338, 160345, 160352, 160359, 160365, 160372, + 160379, 160385, 160392, 160399, 160405, 160412, 160419, 160425, 160432, + 160439, 160445, 160452, 160459, 160466, 160473, 160480, 160485, 160491, + 160497, 160503, 160508, 160514, 160520, 160526, 160531, 160537, 160543, + 160548, 160554, 160560, 160565, 160571, 160577, 160582, 160588, 160594, + 160599, 160605, 160611, 160617, 160623, 160629, 160634, 160640, 160646, + 160652, 160657, 160663, 160669, 160675, 160680, 160686, 160692, 160697, + 160703, 160709, 160714, 160720, 160726, 160731, 160737, 160743, 160748, + 160754, 160760, 160766, 160772, 160778, 160784, 0, 0, 160791, 160796, + 160801, 160806, 160811, 160816, 160821, 160826, 160831, 160836, 160841, + 160846, 160851, 160856, 160861, 160866, 160871, 160876, 160882, 160887, + 160892, 160897, 160902, 160907, 160912, 160917, 160921, 160926, 160931, + 160936, 160941, 160946, 160951, 160956, 160961, 160966, 160971, 160976, + 160981, 160986, 160991, 160996, 161001, 161006, 161012, 161017, 161022, + 161027, 161032, 161037, 161042, 161047, 161053, 161058, 161063, 161068, + 161073, 161078, 161083, 161088, 161093, 161098, 161103, 161108, 161113, + 161118, 161123, 161128, 161133, 161138, 161143, 161148, 161153, 161158, + 161163, 161168, 161174, 161179, 161184, 161189, 161194, 161199, 161204, + 161209, 161213, 161218, 161223, 161228, 161233, 161238, 161243, 161248, + 161253, 161258, 161263, 161268, 161273, 161278, 161283, 161288, 161293, + 161298, 161304, 161309, 161314, 161319, 161324, 161329, 161334, 161339, + 161345, 161350, 161355, 161360, 161365, 161370, 161375, 161381, 161387, + 161393, 161399, 161405, 161411, 161417, 161423, 161429, 161435, 161441, + 161447, 161453, 161459, 161465, 161471, 161477, 161484, 161490, 161496, + 161502, 161508, 161514, 161520, 161526, 161531, 161537, 161543, 161549, + 161555, 161561, 161567, 161573, 161579, 161585, 161591, 161597, 161603, + 161609, 161615, 161621, 161627, 161633, 161640, 161646, 161652, 161658, + 161664, 161670, 161676, 161682, 161689, 161695, 161701, 161707, 161713, + 161719, 161725, 161731, 161737, 161743, 161749, 161755, 161761, 161767, + 161773, 161779, 161785, 161791, 161797, 161803, 161809, 161815, 161821, + 161827, 161834, 161840, 161846, 161852, 161858, 161864, 161870, 161876, + 161881, 161887, 161893, 161899, 161905, 161911, 161917, 161923, 161929, + 161935, 161941, 161947, 161953, 161959, 161965, 161971, 161977, 161983, + 161990, 161996, 162002, 162008, 162014, 162020, 162026, 162032, 162039, + 162045, 162051, 162057, 162063, 162069, 162075, 162082, 162089, 162096, + 162103, 162110, 162117, 162124, 162131, 162138, 162145, 162152, 162159, + 162166, 162173, 162180, 162187, 162194, 162202, 162209, 162216, 162223, + 162230, 162237, 162244, 162251, 162257, 162264, 162271, 162278, 162285, + 162292, 162299, 162306, 162313, 162320, 162327, 162334, 162341, 162348, + 162355, 162362, 162369, 162376, 162384, 162391, 162398, 162405, 162412, + 162419, 162426, 162433, 162441, 162448, 162455, 162462, 162469, 162476, + 162483, 162488, 0, 0, 162493, 162498, 162502, 162506, 162510, 162514, + 162518, 162522, 162526, 162530, 162534, 162540, 162545, 162550, 162555, + 162560, 162565, 162570, 162575, 162580, 162585, 162590, 162594, 162598, + 162602, 162606, 162610, 162614, 162618, 162622, 162626, 162632, 162637, + 162642, 162647, 162652, 162657, 162662, 162667, 162672, 162677, 162683, + 162688, 162693, 162698, 162703, 162708, 162713, 162718, 162723, 162728, + 162732, 162737, 162742, 162747, 162752, 162757, 162762, 162768, 162776, + 162783, 162788, 162793, 162800, 162806, 162811, 162817, 162823, 162831, + 162837, 162844, 162852, 162858, 162867, 162876, 162884, 162892, 162898, + 162905, 162913, 162921, 162927, 162934, 162943, 162952, 162959, 162970, + 162980, 162990, 163000, 163010, 163017, 163024, 163031, 163038, 163047, + 163056, 163067, 163078, 163087, 163096, 163107, 163116, 163125, 163136, + 163145, 163154, 163162, 163170, 163181, 163192, 163200, 163209, 163218, + 163225, 163236, 163247, 163256, 163265, 163272, 163281, 163290, 163299, + 163310, 163319, 163329, 163338, 163347, 163358, 163371, 163386, 163397, + 163410, 163422, 163431, 163442, 163453, 163462, 163473, 163487, 163502, + 163505, 163514, 163519, 163525, 163533, 163539, 163545, 163554, 163561, + 163571, 163583, 163590, 163593, 163599, 163606, 163612, 163617, 163620, + 163625, 163628, 163636, 163642, 163651, 163658, 163666, 163672, 163677, + 163680, 163683, 163686, 163692, 163699, 163705, 163710, 163718, 163721, + 163726, 163734, 163740, 163749, 163756, 163766, 163775, 163778, 163784, + 163791, 163798, 163805, 163810, 163818, 163826, 163835, 163841, 163850, + 163859, 163868, 163874, 163883, 163890, 163897, 163904, 163912, 163918, + 163926, 163932, 163939, 163946, 163954, 163965, 163975, 163981, 163988, + 163995, 164002, 164008, 164015, 164022, 164027, 164034, 164042, 164051, + 164057, 164069, 164080, 164086, 164094, 164100, 164107, 164114, 164121, + 164127, 164134, 164143, 164149, 164155, 164162, 164169, 164177, 164187, + 164197, 164207, 164217, 164225, 164233, 164243, 164251, 164256, 164261, + 164266, 164272, 164279, 164286, 164292, 164298, 164303, 164310, 164318, + 164328, 164336, 164344, 164354, 164364, 164372, 164382, 164392, 164404, + 164416, 164428, 164438, 164444, 164450, 164457, 164466, 164475, 164484, + 164493, 164503, 164512, 164521, 164530, 164535, 164541, 164550, 164560, + 164569, 164575, 164581, 164588, 164595, 164602, 164608, 164615, 164622, + 164629, 164635, 164639, 164644, 164651, 164658, 164665, 164670, 164678, + 164686, 164695, 164703, 164710, 164718, 164727, 164737, 164740, 164744, + 164749, 164754, 164759, 164764, 164769, 164774, 164779, 164784, 164789, + 164794, 164799, 164804, 164809, 164814, 164819, 164824, 164829, 164836, + 164842, 164849, 164855, 164860, 164867, 164873, 164880, 164886, 164891, + 164898, 164905, 164912, 164918, 164924, 164933, 164942, 164952, 164959, + 164966, 164975, 164984, 164993, 165002, 165011, 165017, 165025, 165031, + 165041, 165046, 165055, 165064, 165071, 165082, 165089, 165096, 165103, + 165110, 165117, 165124, 165131, 165138, 165145, 165152, 165158, 165164, + 165170, 165177, 165184, 165191, 165198, 165205, 165212, 165219, 165226, + 165233, 165240, 165247, 165254, 165259, 165268, 165277, 165286, 165293, + 165300, 165307, 165314, 165321, 165328, 165335, 165342, 165351, 165360, + 165369, 165378, 165387, 165396, 165405, 165414, 165423, 165432, 165441, + 165450, 165459, 165465, 165473, 165479, 165489, 165494, 165503, 165512, + 165521, 165532, 165537, 165544, 165551, 165558, 165563, 165569, 165575, + 165581, 165588, 165595, 165602, 165609, 165616, 165623, 165630, 165637, + 165644, 165651, 165658, 165665, 165670, 165679, 165688, 165697, 165706, + 165715, 165724, 165733, 165742, 165753, 165764, 165771, 165778, 165785, + 165792, 165799, 165806, 165814, 165824, 165834, 165844, 165855, 165866, + 165877, 165886, 165895, 165904, 165909, 165914, 165919, 165924, 165935, + 165946, 165957, 165968, 165979, 165989, 166000, 166009, 166018, 166027, + 166036, 166045, 166053, 166062, 166073, 166084, 166095, 166106, 166117, + 166129, 166142, 166154, 166167, 166179, 166192, 166204, 166217, 166228, + 166239, 166248, 166256, 166265, 166276, 166287, 166299, 166312, 166326, + 166341, 166353, 166366, 166378, 166391, 166402, 166413, 166422, 166430, + 166439, 166446, 166453, 166460, 166467, 166474, 166481, 166488, 166495, + 166502, 166509, 166514, 166519, 166524, 166531, 166541, 166552, 166562, + 166573, 166587, 166602, 166617, 166631, 166646, 166661, 166672, 166683, + 166696, 166709, 166718, 166727, 166740, 166753, 166760, 166767, 166772, + 166777, 166782, 166787, 166792, 166799, 166808, 166813, 166816, 166821, + 166828, 166835, 166842, 166849, 166856, 166863, 166876, 166890, 166905, + 166912, 166919, 166926, 166935, 166943, 166951, 166960, 166965, 166970, + 166975, 166980, 166985, 166990, 166997, 167004, 167010, 167017, 167023, + 167030, 167035, 167040, 167045, 167050, 167055, 167062, 167069, 167074, + 167081, 167088, 167093, 167098, 167103, 167108, 167113, 167118, 167125, + 167132, 167139, 167142, 167147, 167152, 167157, 167162, 167169, 167176, + 167184, 167192, 167197, 167202, 167209, 167216, 167223, 167228, 167235, + 167242, 167247, 167254, 167261, 167268, 167275, 167282, 167289, 167298, + 167307, 167314, 167323, 167332, 167337, 167344, 167351, 167356, 167363, + 167370, 167377, 167384, 167391, 167396, 167403, 167410, 167419, 167426, + 167435, 167446, 167455, 167464, 167473, 167482, 167485, 167490, 167497, + 167506, 167513, 167522, 167529, 167534, 167539, 167542, 167545, 167548, + 167555, 167562, 167571, 167580, 167589, 167596, 167603, 167608, 167620, + 167625, 167630, 167635, 167640, 167645, 167650, 167655, 167660, 167663, + 167668, 167673, 167678, 167683, 167688, 167695, 167700, 167707, 167710, + 167715, 167718, 167721, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 167724, 167729, 167734, 167739, 167744, 0, 167749, 167754, 167759, + 167764, 167769, 167774, 167779, 167784, 167789, 167794, 167799, 167804, + 167809, 167814, 167819, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 169123, 169128, 169133, 169138, 169143, 169148, - 169153, 0, 169158, 169163, 169168, 169174, 169178, 169183, 169188, - 169193, 169198, 169203, 169208, 169213, 169218, 169223, 169228, 169233, - 169238, 0, 0, 169243, 169248, 169253, 169258, 169263, 169268, 169273, 0, - 169278, 169283, 0, 169289, 169294, 169302, 169309, 169318, 0, 0, 0, 0, 0, - 169323, 169328, 169334, 169340, 169346, 169352, 169358, 169364, 169370, - 169375, 169380, 169386, 169392, 169397, 169403, 169409, 169415, 169421, - 169426, 169432, 169437, 169443, 169449, 169455, 169461, 169466, 169472, - 169478, 169484, 169491, 169497, 169504, 169511, 169517, 169523, 169530, - 169537, 169544, 169551, 169558, 169565, 169572, 169578, 169584, 169591, - 169597, 169604, 169611, 169617, 169624, 169630, 169637, 169644, 169651, - 169659, 169666, 169676, 169684, 169691, 169698, 169707, 169718, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 169727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167824, 167834, 167842, + 167849, 167856, 167865, 167874, 167883, 167890, 167904, 167916, 167926, + 167934, 167946, 167955, 167966, 167975, 167982, 167990, 168001, 168013, + 168022, 168032, 168044, 168055, 168064, 168075, 168087, 168095, 168106, + 168115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 168123, 168128, 168133, 168138, 168143, 168148, 168153, 0, + 168158, 168163, 168168, 168174, 168178, 168183, 168188, 168193, 168198, + 168203, 168208, 168213, 168218, 168223, 168228, 168233, 168238, 0, 0, + 168243, 168248, 168253, 168258, 168263, 168268, 168273, 0, 168278, + 168283, 0, 168289, 168294, 168302, 168309, 168318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 169734, 169741, 169749, 169757, 169765, 169772, 169779, 169787, 169795, - 169803, 169810, 169817, 169825, 169833, 169841, 169848, 169856, 169864, - 169872, 169880, 169888, 169896, 169904, 169911, 169919, 169926, 169934, - 169941, 169949, 169957, 169965, 169973, 169981, 169989, 169997, 170005, - 170013, 170020, 170028, 170035, 170042, 170049, 170057, 170064, 170072, - 0, 0, 0, 170080, 170087, 170094, 170101, 170108, 170115, 170122, 170129, - 170138, 170147, 170156, 170165, 170174, 170184, 0, 0, 170192, 170200, - 170207, 170214, 170221, 170228, 170235, 170242, 170249, 170256, 0, 0, 0, - 0, 170263, 170272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170280, - 170284, 170289, 170294, 170299, 170303, 170308, 170312, 170316, 170321, - 170325, 170330, 170334, 170339, 170344, 170348, 170352, 170356, 170360, - 170366, 170371, 170378, 170382, 170386, 170392, 170397, 170404, 170408, - 170413, 170420, 170424, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 170431, 170436, 170440, 170445, 170450, 170455, 170460, 170464, - 170469, 170473, 170477, 170481, 170486, 170491, 170496, 170500, 170505, - 170510, 170515, 170520, 170525, 170529, 170533, 170538, 170542, 170546, - 170551, 170555, 170559, 170563, 170568, 170572, 170577, 170582, 170587, - 170592, 170597, 170602, 170607, 170612, 170617, 170622, 170627, 170632, - 170637, 170642, 170647, 170652, 170657, 170662, 170666, 170670, 170674, - 170678, 170682, 170686, 170690, 170694, 0, 0, 0, 0, 0, 170698, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 168323, 168330, 168338, 168346, 168354, 168361, 168368, + 168376, 168384, 168392, 168399, 168406, 168414, 168422, 168430, 168437, + 168445, 168453, 168461, 168469, 168477, 168485, 168493, 168500, 168508, + 168515, 168523, 168530, 168538, 168546, 168554, 168562, 168570, 168578, + 168586, 168594, 168602, 168609, 168617, 168624, 168631, 168638, 168646, + 168653, 168661, 0, 0, 0, 168669, 168676, 168683, 168690, 168697, 168704, + 168711, 168718, 168727, 168736, 168745, 168754, 168763, 168773, 0, 0, + 168781, 168789, 168796, 168803, 168810, 168817, 168824, 168831, 168838, + 168845, 0, 0, 0, 0, 168852, 168861, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 170703, 170709, 170716, 170723, 170730, 170737, 170743, - 170750, 170757, 170764, 170771, 170777, 170784, 170791, 170798, 170805, - 170811, 170818, 170825, 170832, 170839, 170845, 170852, 170859, 170866, - 170873, 170880, 170887, 170894, 170901, 170908, 170915, 170922, 170929, - 170935, 170941, 170947, 170953, 170959, 170965, 170971, 170977, 0, 0, 0, + 0, 0, 0, 0, 168869, 168873, 168878, 168883, 168888, 168892, 168897, + 168901, 168905, 168910, 168914, 168919, 168923, 168928, 168933, 168937, + 168941, 168945, 168949, 168955, 168960, 168967, 168971, 168975, 168981, + 168986, 168993, 168997, 169002, 169009, 169013, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 169020, 169025, 169029, 169034, 169039, + 169044, 169049, 169053, 169058, 169062, 169066, 169070, 169075, 169080, + 169085, 169089, 169094, 169099, 169104, 169109, 169114, 169118, 169122, + 169127, 169131, 169135, 169140, 169144, 169148, 169152, 169157, 169161, + 169166, 169171, 169176, 169181, 169186, 169191, 169196, 169201, 169206, + 169211, 169216, 169221, 169226, 169231, 169236, 169241, 169246, 169251, + 169255, 169259, 169263, 169267, 169271, 169275, 169279, 169283, 0, 0, 0, + 0, 0, 169287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 169292, 169296, 169300, 169304, 169308, 169312, 169316, 0, + 169320, 169326, 169330, 169334, 0, 169338, 169344, 0, 169350, 169356, + 169362, 169368, 169374, 169380, 169386, 169392, 169398, 169404, 169410, + 169416, 169422, 169428, 169434, 0, 169440, 169447, 169453, 169460, + 169467, 169474, 169481, 169488, 169495, 169502, 169509, 169516, 169523, + 169530, 169537, 169544, 169551, 169558, 169565, 169572, 169579, 169586, + 169593, 169600, 169607, 169614, 169621, 169628, 169635, 169642, 169649, + 169656, 169663, 169670, 169677, 169683, 169689, 169695, 169702, 169708, + 169715, 169721, 169728, 169735, 169742, 169749, 169756, 169763, 169769, + 169776, 169783, 169790, 169797, 169804, 169811, 169818, 169824, 169831, + 169838, 169845, 169852, 169859, 169867, 169874, 169881, 169888, 169895, + 169902, 169909, 169916, 169923, 169930, 169937, 169944, 169951, 169957, + 169964, 169971, 169978, 169985, 169992, 169999, 170006, 170014, 170021, + 170027, 170034, 170041, 170048, 170055, 170062, 170069, 170076, 170083, + 170090, 170097, 170104, 170111, 170118, 170125, 170132, 170139, 170146, + 170153, 170160, 170167, 170173, 170180, 170187, 170194, 170201, 170208, + 170215, 170222, 170229, 170236, 170243, 170250, 170257, 170264, 170271, + 170278, 170285, 170292, 170299, 170306, 170313, 170320, 170327, 170335, + 170343, 170351, 170358, 170365, 170372, 170379, 170386, 170393, 170400, + 170407, 170414, 170421, 170427, 170434, 170441, 170448, 170455, 170462, + 170469, 170476, 170483, 170490, 170497, 170504, 170511, 170518, 170525, + 170533, 170541, 170549, 170556, 170563, 170570, 170577, 170584, 170591, + 170598, 170605, 170612, 170619, 170626, 170633, 170640, 170647, 170653, + 170660, 170667, 170674, 170681, 170688, 170695, 170702, 170709, 170716, + 170723, 170730, 170737, 170744, 170751, 170758, 170765, 170772, 170779, + 170786, 170793, 170800, 170807, 0, 0, 170814, 170818, 170822, 170826, + 170830, 170834, 170838, 170842, 170846, 170850, 170856, 170862, 170868, + 170874, 170882, 170890, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 170983, 170987, 170991, 170995, 170999, 171003, 171007, 0, - 171011, 171017, 171021, 171025, 0, 171029, 171035, 0, 171041, 171047, - 171053, 171059, 171065, 171071, 171077, 171083, 171089, 171095, 171101, - 171107, 171113, 171119, 171125, 0, 171131, 171138, 171144, 171151, - 171158, 171165, 171172, 171179, 171186, 171193, 171200, 171207, 171214, - 171221, 171228, 171235, 171242, 171249, 171256, 171263, 171270, 171277, - 171284, 171291, 171298, 171305, 171312, 171319, 171326, 171333, 171340, - 171347, 171354, 171361, 171368, 171374, 171380, 171386, 171393, 171399, - 171406, 171412, 171419, 171426, 171433, 171440, 171447, 171454, 171460, - 171467, 171474, 171481, 171488, 171495, 171502, 171509, 171515, 171522, - 171529, 171536, 171543, 171550, 171558, 171565, 171572, 171579, 171586, - 171593, 171600, 171607, 171614, 171621, 171628, 171635, 171642, 171648, - 171655, 171662, 171669, 171676, 171683, 171690, 171697, 171705, 171712, - 171718, 171725, 171732, 171739, 171746, 171753, 171760, 171767, 171774, - 171781, 171788, 171795, 171802, 171809, 171816, 171823, 171830, 171837, - 171844, 171851, 171858, 171864, 171871, 171878, 171885, 171892, 171899, - 171906, 171913, 171920, 171927, 171934, 171941, 171948, 171955, 171962, - 171969, 171976, 171983, 171990, 171997, 172004, 172011, 172018, 172026, - 172034, 172042, 172049, 172056, 172063, 172070, 172077, 172084, 172091, - 172098, 172105, 172112, 172118, 172125, 172132, 172139, 172146, 172153, - 172160, 172167, 172174, 172181, 172188, 172195, 172202, 172209, 172216, - 172224, 172232, 172240, 172247, 172254, 172261, 172268, 172275, 172282, - 172289, 172296, 172303, 172310, 172317, 172324, 172331, 172338, 172344, - 172351, 172358, 172365, 172372, 172379, 172386, 172393, 172400, 172407, - 172414, 172421, 172428, 172435, 172442, 172449, 172456, 172463, 172470, - 172477, 172484, 172491, 172498, 0, 0, 172505, 172509, 172513, 172517, - 172521, 172525, 172529, 172533, 172537, 172541, 172547, 172553, 172559, - 172565, 172573, 172581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 170896, 170902, 170908, 170914, 170920, 170926, 170932, 170938, + 170944, 170949, 170954, 170960, 170965, 170970, 170976, 170982, 170988, + 170994, 171000, 171005, 171010, 171016, 171022, 171027, 171033, 171039, + 171045, 171051, 171057, 171063, 171069, 171075, 171081, 171087, 171093, + 171099, 171105, 171111, 171117, 171123, 171129, 171135, 171141, 171146, + 171151, 171157, 171162, 171167, 171173, 171179, 171185, 171191, 171197, + 171202, 171207, 171213, 171219, 171224, 171230, 171236, 171242, 171248, + 171254, 171260, 171266, 171272, 171278, 171284, 171290, 171296, 171301, + 171306, 171310, 171315, 171322, 171326, 0, 0, 0, 0, 171331, 171336, + 171340, 171344, 171348, 171352, 171356, 171360, 171364, 171368, 0, 0, 0, + 0, 171372, 171378, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 172587, 172593, 172599, 172605, 172611, 172617, 172623, 172629, - 172635, 172640, 172645, 172651, 172656, 172661, 172667, 172673, 172679, - 172685, 172691, 172696, 172701, 172707, 172713, 172718, 172724, 172730, - 172736, 172742, 172748, 172754, 172760, 172766, 172772, 172778, 172784, - 172790, 172796, 172802, 172808, 172814, 172820, 172826, 172832, 172837, - 172842, 172848, 172853, 172858, 172864, 172870, 172876, 172882, 172888, - 172893, 172898, 172904, 172910, 172915, 172921, 172927, 172933, 172939, - 172945, 172951, 172957, 172963, 172969, 172975, 172981, 172987, 172992, - 172997, 173001, 173006, 173013, 173017, 0, 0, 0, 0, 173022, 173027, - 173031, 173035, 173039, 173043, 173047, 173051, 173055, 173059, 0, 0, 0, - 0, 173063, 173069, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 171384, 171389, 171394, 171399, 171404, 171409, + 171414, 171419, 171424, 171429, 171435, 171441, 171447, 171453, 171459, + 171465, 171471, 171477, 171483, 171490, 171497, 171504, 171512, 171520, + 171528, 171536, 171544, 171552, 171558, 171564, 171570, 171577, 171584, + 171591, 171598, 171605, 171612, 171619, 171626, 171633, 171640, 171647, + 171654, 171661, 171668, 171675, 171681, 171687, 171693, 171699, 171705, + 171712, 171719, 171726, 171733, 171740, 171747, 171754, 171761, 171768, + 171773, 171781, 171789, 171797, 171803, 171810, 171817, 171826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 173075, 173080, 173085, 173090, 173095, 173100, - 173105, 173110, 173115, 173120, 173126, 173132, 173138, 173144, 173150, - 173156, 173162, 173168, 173174, 173181, 173188, 173195, 173203, 173211, - 173219, 173227, 173235, 173243, 173249, 173255, 173261, 173268, 173275, - 173282, 173289, 173296, 173303, 173310, 173317, 173324, 173331, 173338, - 173345, 173352, 173359, 173366, 173372, 173378, 173384, 173390, 173396, - 173403, 173410, 173417, 173424, 173431, 173438, 173445, 173452, 173459, - 173464, 173472, 173480, 173488, 173494, 173501, 173508, 173517, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 171834, 171839, 171844, 171849, 171854, 171859, 171864, 171869, + 171874, 171879, 171885, 171891, 171897, 171903, 171909, 171915, 171921, + 171927, 171933, 171940, 171947, 171954, 171962, 171970, 171978, 171986, + 171994, 172002, 172008, 172014, 172020, 172027, 172034, 172041, 172048, + 172055, 172062, 172069, 172076, 172083, 172090, 172097, 172104, 172111, + 172118, 172125, 172130, 172137, 172144, 172151, 172158, 172165, 172172, + 172179, 172186, 172194, 172204, 172214, 172222, 172231, 172239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 173525, 173530, 173535, 173540, 173545, 173550, 173555, 173560, - 173565, 173570, 173576, 173582, 173588, 173594, 173600, 173606, 173612, - 173618, 173624, 173631, 173638, 173645, 173653, 173661, 173669, 173677, - 173685, 173693, 173699, 173705, 173711, 173718, 173725, 173732, 173739, - 173746, 173753, 173760, 173767, 173774, 173781, 173788, 173795, 173802, - 173809, 173816, 173821, 173828, 173835, 173842, 173849, 173856, 173863, - 173870, 173877, 173885, 173895, 173905, 173913, 173922, 173930, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172247, 172251, 172255, + 172259, 0, 172263, 172267, 172271, 172275, 172279, 172283, 172287, + 172291, 172295, 172299, 172303, 172307, 172311, 172315, 172319, 172323, + 172327, 172331, 172335, 172339, 172343, 172347, 172351, 172355, 172361, + 172367, 172373, 0, 172379, 172384, 0, 172389, 0, 0, 172394, 0, 172399, + 172404, 172409, 172414, 172419, 172424, 172429, 172434, 172439, 172444, + 0, 172449, 172454, 172459, 172464, 0, 172469, 0, 172474, 0, 0, 0, 0, 0, + 0, 172479, 0, 0, 0, 0, 172485, 0, 172491, 0, 172497, 0, 172503, 172509, + 172515, 0, 172521, 172527, 0, 172533, 0, 0, 172539, 0, 172545, 0, 172551, + 0, 172557, 0, 172565, 0, 172573, 172579, 0, 172585, 0, 0, 172591, 172597, + 172603, 172609, 0, 172615, 172621, 172627, 172633, 172639, 172645, + 172651, 0, 172657, 172663, 172669, 172675, 0, 172681, 172687, 172693, + 172699, 0, 172707, 0, 172715, 172721, 172727, 172733, 172739, 172745, + 172751, 172757, 172763, 172769, 0, 172775, 172781, 172787, 172793, + 172799, 172805, 172811, 172817, 172823, 172829, 172835, 172841, 172847, + 172853, 172859, 172865, 172871, 0, 0, 0, 0, 0, 172877, 172883, 172889, 0, + 172895, 172901, 172907, 172913, 172919, 0, 172925, 172931, 172937, + 172943, 172949, 172955, 172961, 172967, 172973, 172979, 172985, 172991, + 172997, 173003, 173009, 173015, 173021, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173938, 173942, 173946, - 173950, 0, 173954, 173958, 173962, 173966, 173970, 173974, 173978, - 173982, 173986, 173990, 173994, 173998, 174002, 174006, 174010, 174014, - 174018, 174022, 174026, 174030, 174034, 174038, 174042, 174046, 174052, - 174058, 174064, 0, 174070, 174075, 0, 174080, 0, 0, 174085, 0, 174090, - 174095, 174100, 174105, 174110, 174115, 174120, 174125, 174130, 174135, - 0, 174140, 174145, 174150, 174155, 0, 174160, 0, 174165, 0, 0, 0, 0, 0, - 0, 174170, 0, 0, 0, 0, 174176, 0, 174182, 0, 174188, 0, 174194, 174200, - 174206, 0, 174212, 174218, 0, 174224, 0, 0, 174230, 0, 174236, 0, 174242, - 0, 174248, 0, 174256, 0, 174264, 174270, 0, 174276, 0, 0, 174282, 174288, - 174294, 174300, 0, 174306, 174312, 174318, 174324, 174330, 174336, - 174342, 0, 174348, 174354, 174360, 174366, 0, 174372, 174378, 174384, - 174390, 0, 174398, 0, 174406, 174412, 174418, 174424, 174430, 174436, - 174442, 174448, 174454, 174460, 0, 174466, 174472, 174478, 174484, - 174490, 174496, 174502, 174508, 174514, 174520, 174526, 174532, 174538, - 174544, 174550, 174556, 174562, 0, 0, 0, 0, 0, 174568, 174574, 174580, 0, - 174586, 174592, 174598, 174604, 174610, 0, 174616, 174622, 174628, - 174634, 174640, 174646, 174652, 174658, 174664, 174670, 174676, 174682, - 174688, 174694, 174700, 174706, 174712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173027, 173037, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173045, 173052, 173059, 173066, + 173072, 173079, 173086, 173092, 173099, 173106, 173113, 173121, 173129, + 173137, 173145, 173153, 173161, 173168, 173175, 173182, 173190, 173198, + 173206, 173214, 173222, 173230, 173237, 173244, 173251, 173259, 173267, + 173275, 173283, 173291, 173299, 173304, 173309, 173314, 173319, 173324, + 173329, 173334, 173339, 173344, 0, 0, 0, 0, 173349, 173356, 173361, + 173366, 173371, 173376, 173381, 173386, 173391, 173396, 173401, 173406, + 173411, 173416, 173421, 173426, 173431, 173436, 173441, 173446, 173451, + 173456, 173461, 173466, 173471, 173476, 173481, 173486, 173491, 173496, + 173501, 173506, 173511, 173516, 173521, 173526, 173531, 173536, 173541, + 173546, 173551, 173556, 173561, 173566, 173571, 173576, 173581, 173586, + 173591, 173596, 173601, 173607, 173612, 173617, 173622, 173627, 173632, + 173637, 173642, 173647, 173652, 173657, 173662, 173667, 173672, 173677, + 173682, 173687, 173692, 173697, 173702, 173707, 173712, 173717, 173722, + 173727, 173732, 173737, 173742, 173747, 173752, 173757, 173762, 173767, + 173772, 173777, 173782, 173787, 173792, 173797, 173802, 173807, 173812, + 173817, 173822, 173827, 173832, 173837, 173842, 173847, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 173852, 173858, 173867, 173875, 173883, 173892, 173901, + 173910, 173919, 173928, 173937, 173946, 173955, 173964, 173973, 0, 0, + 173982, 173991, 173999, 174007, 174016, 174025, 174034, 174043, 174052, + 174061, 174070, 174079, 174088, 174097, 174106, 0, 174114, 174123, + 174131, 174139, 174148, 174157, 174166, 174175, 174184, 174193, 174202, + 174211, 174220, 174229, 174238, 0, 174245, 174254, 174262, 174270, + 174279, 174288, 174297, 174306, 174315, 174324, 174333, 174342, 174351, + 174360, 174369, 174376, 174382, 174388, 174394, 174400, 174406, 174412, + 174418, 174424, 174430, 174436, 174442, 174448, 174454, 174460, 174466, + 174472, 174478, 174484, 174490, 174496, 174502, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 174508, 174515, 174520, 174524, 174528, 174532, 174537, 174542, + 174547, 174552, 174557, 174562, 174569, 174578, 174584, 174588, 174597, + 174602, 174608, 174614, 174620, 174625, 174631, 174637, 174643, 174648, + 174654, 174660, 174665, 174671, 174677, 174682, 174688, 174694, 174699, + 174705, 174711, 174716, 174722, 174728, 174734, 174740, 174746, 174757, + 174764, 174770, 174773, 174776, 174779, 174784, 174790, 174796, 174802, + 174807, 174813, 174819, 174825, 174830, 174836, 174842, 174847, 174853, + 174859, 174864, 174870, 174876, 174881, 174887, 174893, 174898, 174904, + 174910, 174916, 174922, 174928, 174931, 174934, 174937, 174940, 174943, + 174946, 174953, 174961, 174969, 174977, 174984, 174992, 175000, 175008, + 175015, 175023, 175031, 175038, 175046, 175054, 175061, 175069, 175077, + 175084, 175092, 175100, 175107, 175115, 175123, 175131, 175139, 175147, + 175152, 175157, 175162, 175165, 175173, 175178, 175185, 175193, 175201, + 175209, 175216, 175224, 175232, 175240, 175247, 175255, 175263, 175270, + 175278, 175286, 175293, 175301, 175309, 175316, 175324, 175332, 175339, + 175347, 175355, 175363, 175371, 175379, 175389, 175394, 175398, 175402, + 175407, 175412, 175415, 175418, 175421, 175424, 175427, 175430, 175433, + 175436, 175439, 175445, 175448, 175452, 175457, 175461, 175466, 175471, + 175477, 175483, 175489, 175494, 175502, 175508, 175511, 175514, 175517, + 175520, 175523, 175526, 175529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174718, 174728, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174736, 174743, 174750, 174757, - 174763, 174770, 174777, 174783, 174790, 174797, 174804, 174812, 174820, - 174828, 174836, 174844, 174852, 174859, 174866, 174873, 174881, 174889, - 174897, 174905, 174913, 174921, 174928, 174935, 174942, 174950, 174958, - 174966, 174974, 174982, 174990, 174995, 175000, 175005, 175010, 175015, - 175020, 175025, 175030, 175035, 0, 0, 0, 0, 175040, 175047, 175052, - 175057, 175062, 175067, 175072, 175077, 175082, 175087, 175092, 175097, - 175102, 175107, 175112, 175117, 175122, 175127, 175132, 175137, 175142, - 175147, 175152, 175157, 175162, 175167, 175172, 175177, 175182, 175187, - 175192, 175197, 175202, 175207, 175212, 175217, 175222, 175227, 175232, - 175237, 175242, 175247, 175252, 175257, 175262, 175267, 175272, 175277, - 175282, 175287, 175292, 175298, 175303, 175308, 175313, 175318, 175323, - 175328, 175333, 175338, 175343, 175348, 175353, 175358, 175363, 175368, - 175373, 175378, 175383, 175388, 175393, 175398, 175403, 175408, 175413, - 175418, 175423, 175428, 175433, 175438, 175443, 175448, 175453, 175458, - 175463, 175468, 175473, 175478, 175483, 175488, 175493, 175498, 175503, - 175508, 175513, 175518, 175523, 175528, 175533, 175538, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 175543, 175549, 175558, 175566, 175574, 175583, 175592, - 175601, 175610, 175619, 175628, 175637, 175646, 175655, 175664, 0, 0, - 175673, 175682, 175690, 175698, 175707, 175716, 175725, 175734, 175743, - 175752, 175761, 175770, 175779, 175788, 175797, 0, 175805, 175814, - 175822, 175830, 175839, 175848, 175857, 175866, 175875, 175884, 175893, - 175902, 175911, 175920, 175929, 0, 175936, 175945, 175953, 175961, - 175970, 175979, 175988, 175997, 176006, 176015, 176024, 176033, 176042, - 176051, 176060, 176067, 176073, 176079, 176085, 176091, 176097, 176103, - 176109, 176115, 176121, 176127, 176133, 176139, 176145, 176151, 176157, - 176163, 176169, 176175, 176181, 176187, 176193, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 176199, 176206, 176211, 176215, 176219, 176223, 176228, 176233, - 176238, 176243, 176248, 176253, 176260, 176269, 176275, 176279, 176288, - 176293, 176299, 176305, 176311, 176316, 176322, 176328, 176334, 176339, - 176345, 176351, 176356, 176362, 176368, 176373, 176379, 176385, 176390, - 176396, 176402, 176407, 176413, 176419, 176425, 176431, 176437, 176448, - 176455, 176461, 176464, 176467, 176470, 176475, 176481, 176487, 176493, - 176498, 176504, 176510, 176516, 176521, 176527, 176533, 176538, 176544, - 176550, 176555, 176561, 176567, 176572, 176578, 176584, 176589, 176595, - 176601, 176607, 176613, 176619, 176622, 176625, 176628, 176631, 176634, - 176637, 176644, 176652, 176660, 176668, 176675, 176683, 176691, 176699, - 176706, 176714, 176722, 176729, 176737, 176745, 176752, 176760, 176768, - 176775, 176783, 176791, 176798, 176806, 176814, 176822, 176830, 176838, - 176843, 176848, 176853, 176856, 176864, 176869, 176876, 176884, 176892, - 176900, 176907, 176915, 176923, 176931, 176938, 176946, 176954, 176961, - 176969, 176977, 176984, 176992, 177000, 177007, 177015, 177023, 177030, - 177038, 177046, 177054, 177062, 177070, 177080, 177085, 177089, 177093, - 177098, 177103, 177106, 177109, 177112, 177115, 177118, 177121, 177124, - 177127, 177130, 177136, 177139, 177143, 177148, 177152, 177157, 177162, - 177168, 177174, 177180, 177185, 177193, 177199, 177202, 177205, 177208, - 177211, 177214, 177217, 177220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 175534, 175541, + 175549, 175557, 175565, 175572, 175580, 175588, 175596, 175603, 175611, + 175619, 175626, 175634, 175642, 175649, 175657, 175665, 175672, 175680, + 175688, 175695, 175703, 175711, 175719, 175727, 175735, 175740, 175744, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 175747, 175753, 175759, 175765, + 175769, 175775, 175781, 175787, 175793, 175799, 175805, 175811, 175817, + 175823, 175829, 175835, 175841, 175847, 175853, 175859, 175865, 175871, + 175877, 175883, 175889, 175895, 175901, 175907, 175913, 175919, 175925, + 175931, 175937, 175943, 175949, 175955, 175961, 175967, 175973, 175979, + 175985, 175991, 175997, 176003, 0, 0, 0, 0, 176009, 176020, 176031, + 176042, 176053, 176064, 176075, 176086, 176097, 0, 0, 0, 0, 0, 0, 0, + 176108, 176113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176118, 176124, + 176130, 176136, 176142, 176148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176154, 176156, 176158, 176162, + 176167, 176172, 176174, 176180, 176185, 176187, 176193, 176197, 176199, + 176203, 176209, 176215, 176221, 176226, 176231, 176238, 176245, 176252, + 176257, 176264, 176271, 176278, 176282, 176289, 176298, 176307, 176314, + 176319, 176323, 176327, 176329, 176332, 176335, 176342, 176349, 176359, + 176364, 176369, 176374, 176379, 176381, 176387, 176391, 176393, 176395, + 176397, 176399, 176403, 176407, 176411, 176413, 176417, 176419, 176423, + 176425, 176427, 176429, 176431, 176436, 176441, 176443, 176449, 176453, + 176457, 176465, 176467, 176469, 176471, 176473, 176475, 176477, 176479, + 176481, 176483, 176485, 176489, 176493, 176495, 176497, 176499, 176501, + 176503, 176508, 176514, 176518, 176522, 176526, 176530, 176535, 176539, + 176541, 176543, 176547, 176553, 176555, 176557, 176559, 176563, 176572, + 176578, 176582, 176586, 176588, 176590, 176593, 176595, 176597, 176599, + 176603, 176605, 176609, 176614, 176616, 176621, 176627, 176634, 176638, + 176642, 176646, 176650, 176656, 176660, 176668, 176675, 176677, 176679, + 176683, 176687, 176689, 176693, 176697, 176699, 176703, 176705, 176709, + 176713, 176717, 176721, 176725, 176729, 176733, 176737, 176743, 176747, + 176751, 176762, 176767, 176771, 176775, 176781, 176785, 176789, 176793, + 176800, 176807, 176811, 176815, 176819, 176823, 176827, 176834, 176836, + 176840, 176842, 176844, 176848, 176852, 176856, 176858, 176862, 176866, + 176870, 176874, 176878, 176880, 176884, 176886, 176892, 176895, 176900, + 176902, 176904, 176907, 176909, 176911, 176914, 176921, 176928, 176935, + 176940, 176944, 176946, 176948, 176950, 176954, 176956, 176960, 176964, + 176968, 176970, 176974, 176976, 176980, 176984, 176991, 176993, 177002, + 177011, 177020, 177026, 177028, 177033, 177037, 177041, 177043, 177049, + 177053, 177055, 177059, 177063, 177065, 177069, 177074, 177078, 177084, + 177090, 177092, 177094, 177100, 177102, 177106, 177110, 177112, 177116, + 177118, 177122, 177126, 177130, 177133, 177136, 177141, 177146, 177148, + 177151, 177153, 177160, 177164, 177166, 177173, 177180, 177187, 177194, + 177201, 177203, 177205, 177207, 177211, 177213, 177215, 177217, 177219, + 177221, 177223, 177225, 177227, 177229, 177231, 177233, 177235, 177237, + 177239, 177241, 177243, 177245, 177247, 177249, 177251, 177253, 177255, + 177259, 177261, 177263, 177265, 177269, 177271, 177275, 177277, 177279, + 177283, 177287, 177293, 177295, 177297, 177299, 177301, 177305, 177309, + 177311, 177315, 177319, 177323, 177327, 177331, 177335, 177339, 177343, + 177347, 177351, 177355, 177359, 177363, 177367, 177371, 177375, 177379, + 177383, 177385, 177387, 177389, 177391, 177393, 177395, 177397, 177405, + 177413, 177421, 177429, 177434, 177439, 177444, 177448, 177452, 177457, + 177462, 177464, 177468, 177470, 177472, 177474, 177476, 177478, 177480, + 177482, 177486, 177488, 177490, 177492, 177496, 177500, 177504, 177508, + 177512, 177514, 177520, 177526, 177528, 177530, 177532, 177534, 177536, + 177545, 177552, 177559, 177563, 177570, 177575, 177582, 177591, 177596, + 177600, 177604, 177606, 177610, 177612, 177616, 177620, 177622, 177626, + 177630, 177634, 177636, 177638, 177644, 177646, 177648, 177650, 177654, + 177658, 177660, 177664, 177666, 177668, 177671, 177675, 177677, 177681, + 177683, 177685, 177690, 177692, 177696, 177700, 177703, 177707, 177711, + 177715, 177719, 177723, 177727, 177731, 177736, 177740, 177744, 177753, + 177758, 177761, 177763, 177766, 177769, 177774, 177776, 177779, 177784, + 177788, 177791, 177795, 177799, 177802, 177807, 177811, 177815, 177819, + 177823, 177829, 177835, 177841, 177847, 177852, 177863, 177865, 177869, + 177871, 177873, 177877, 177881, 177883, 177887, 177893, 177898, 177904, + 177906, 177910, 177914, 177921, 177928, 177932, 177934, 177936, 177940, + 177942, 177946, 177950, 177954, 177956, 177958, 177965, 177969, 177973, + 177977, 177981, 177985, 177987, 177991, 177993, 177995, 177999, 178001, + 178005, 178009, 178015, 178019, 178023, 178027, 178029, 178032, 178036, + 178043, 178052, 178061, 178070, 178079, 178081, 178085, 178087, 178091, + 178102, 178106, 178112, 178118, 178123, 178125, 178130, 178134, 178136, + 178138, 178140, 178144, 178148, 178152, 178157, 178168, 178184, 178197, + 178210, 178214, 178218, 178224, 178226, 178234, 178242, 178244, 178248, + 178254, 178260, 178267, 178274, 178276, 178278, 178282, 178284, 178290, + 178292, 178295, 178299, 178305, 178311, 178322, 178328, 178335, 178343, + 178347, 178355, 178363, 178369, 178375, 178382, 178384, 178388, 178390, + 178392, 178397, 178399, 178401, 178403, 178405, 178409, 178419, 178425, + 178429, 178433, 178437, 178443, 178449, 178455, 178461, 178466, 178471, + 178477, 178483, 178490, 178497, 178504, 178511, 178516, 178524, 178528, + 178537, 178546, 178552, 178556, 178560, 178564, 178567, 178572, 178574, + 178576, 178578, 178585, 178590, 178597, 178604, 178611, 178619, 178627, + 178635, 178643, 178651, 178659, 178667, 178675, 178683, 178689, 178695, + 178701, 178707, 178713, 178719, 178725, 178731, 178737, 178743, 178749, + 178755, 178758, 178767, 178776, 178778, 178785, 178789, 178791, 178793, + 178797, 178803, 178807, 178809, 178819, 178825, 178829, 178831, 178835, + 178837, 178841, 178848, 178855, 178862, 178867, 178872, 178881, 178887, + 178892, 178896, 178901, 178905, 178912, 178916, 178919, 178923, 178929, + 178935, 178939, 178943, 178948, 178954, 178963, 178974, 178980, 178986, + 178992, 179002, 179017, 179026, 179034, 179042, 179050, 179058, 179066, + 179074, 179082, 179090, 179098, 179106, 179114, 179122, 179125, 179129, + 179134, 179139, 179141, 179145, 179154, 179163, 179171, 179175, 179179, + 179184, 179189, 179194, 179196, 179201, 179205, 179207, 179211, 179215, + 179221, 179226, 179234, 179239, 179244, 179249, 179256, 179259, 179261, + 179265, 179270, 179276, 179280, 179284, 179290, 179296, 179298, 179302, + 179306, 179310, 179314, 179318, 179320, 179322, 179324, 179326, 179332, + 179338, 179342, 179344, 179346, 179348, 179357, 179361, 179368, 179375, + 179377, 179380, 179384, 179390, 179394, 179398, 179400, 179408, 179412, + 179416, 179421, 179425, 179430, 179435, 179440, 179445, 179450, 179455, + 179460, 179465, 179469, 179475, 179479, 179485, 179490, 179497, 179503, + 179511, 179515, 179522, 179526, 179530, 179534, 179539, 179544, 179546, + 179550, 179559, 179567, 179576, 179590, 179604, 179618, 179625, 179632, + 179636, 179645, 179653, 179657, 179666, 179673, 179677, 179681, 179685, + 179689, 179696, 179700, 179704, 179708, 179712, 179719, 179728, 179737, + 179744, 179756, 179768, 179772, 179776, 179780, 179784, 179788, 179792, + 179800, 179808, 179817, 179821, 179825, 179829, 179833, 179837, 179841, + 179847, 179854, 179858, 179870, 179878, 179882, 179886, 179890, 179894, + 179900, 179907, 179918, 179928, 179939, 179950, 179959, 179970, 179976, + 179982, 179988, 179994, 180000, 180004, 180011, 180020, 180027, 180033, + 180037, 180041, 180045, 180054, 180066, 180070, 180077, 180084, 180091, + 180099, 180106, 180114, 180122, 180131, 180139, 180148, 180157, 180167, + 180176, 180186, 180196, 180207, 180217, 180228, 180235, 180243, 180250, + 180258, 180266, 180275, 180283, 180292, 180299, 180311, 180318, 180330, + 180333, 180337, 180340, 180344, 180350, 180357, 180364, 180372, 180377, + 180383, 180394, 180404, 180415, 180420, 180425, 180431, 180436, 180443, + 180447, 180453, 180455, 180457, 180461, 180465, 180469, 180478, 180480, + 180482, 180485, 180487, 180489, 180493, 180495, 180499, 180501, 180505, + 180507, 180509, 180513, 180517, 180523, 180525, 180529, 180531, 180535, + 180539, 180543, 180547, 180549, 180551, 180555, 180559, 180563, 180567, + 180569, 180571, 180573, 180579, 180584, 180587, 180595, 180603, 180605, + 180610, 180613, 180618, 180629, 180636, 180641, 180646, 180648, 180652, + 180654, 180658, 180660, 180664, 180668, 180671, 180674, 180676, 180679, + 180681, 180685, 180687, 180689, 180691, 180695, 180697, 180701, 180704, + 180711, 180714, 180719, 180722, 180725, 180730, 180734, 180738, 180742, + 180744, 180749, 180752, 180756, 180758, 180760, 180764, 180766, 0, 0, 0, + 0, 0, 180768, 180772, 180774, 180778, 180783, 180785, 180789, 180791, + 180795, 180799, 180805, 180809, 180814, 180817, 180821, 180825, 0, 0, 0, + 180829, 180831, 180837, 180841, 180845, 180847, 180851, 180853, 180855, + 180859, 180861, 180865, 180869, 0, 0, 0, 180873, 180878, 180883, 180888, + 180893, 180898, 180903, 180910, 180917, 180924, 180931, 180936, 180941, + 180946, 180951, 180958, 180964, 180971, 180978, 180985, 180990, 180995, + 181000, 181005, 181010, 181017, 181024, 181029, 181034, 181041, 181048, + 181056, 181064, 181071, 181078, 181086, 181094, 181102, 181109, 181119, + 181130, 181135, 181142, 181149, 181156, 181164, 181172, 181183, 181191, + 181199, 181207, 181212, 181217, 181222, 181227, 181232, 181237, 181242, + 181247, 181252, 181257, 181262, 181267, 181274, 181279, 181284, 181291, + 181296, 181301, 181306, 181311, 181316, 181321, 181326, 181331, 181336, + 181341, 181346, 181351, 181358, 181366, 181371, 181376, 181383, 181388, + 181393, 181398, 181405, 181410, 181417, 181422, 181429, 181434, 181443, + 181452, 181457, 181462, 181467, 181472, 181477, 181482, 181487, 181492, + 181497, 181502, 181507, 181512, 181517, 181525, 181533, 181538, 181543, + 181548, 181553, 181558, 181564, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 181570, 181578, 181586, 181594, 181602, 181608, 181614, 181618, 181622, + 181628, 181634, 181643, 181647, 181652, 181658, 181662, 181667, 181671, + 181675, 181681, 181687, 181697, 181706, 181709, 181714, 181720, 181726, + 181737, 181747, 181751, 181756, 181762, 181768, 181777, 181782, 181786, + 181791, 181795, 181801, 181807, 181813, 181817, 181820, 181824, 181827, + 181830, 181835, 181840, 181847, 181855, 181862, 181869, 181878, 181887, + 181894, 181902, 181909, 181916, 181925, 181934, 181941, 181949, 181956, + 181963, 181972, 181979, 181987, 181993, 182002, 182010, 182019, 182026, + 182036, 182047, 182055, 182063, 182072, 182080, 182088, 182097, 182105, + 182115, 182124, 182132, 182140, 182149, 182152, 182157, 182160, 0, 0, 0, + 0, 0, 0, 0, 182165, 182171, 182177, 182183, 182189, 182195, 182201, + 182207, 182213, 182219, 182225, 182231, 0, 0, 0, 0, 182237, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182241, 182249, 182258, 182266, 182275, + 182284, 182294, 182303, 182313, 182322, 182332, 182341, 0, 0, 0, 0, + 182351, 182359, 182368, 182376, 182385, 182392, 182400, 182407, 182415, + 182423, 182432, 182440, 182449, 182459, 182470, 182480, 182491, 182500, + 182510, 182519, 182529, 182538, 182548, 182557, 182567, 182575, 182584, + 182592, 182601, 182609, 182618, 182626, 182635, 182645, 182656, 182666, + 182677, 182681, 182686, 182690, 182695, 182698, 182702, 182705, 182709, + 182713, 182718, 182722, 182727, 182732, 182738, 182743, 182749, 182752, + 182756, 182759, 0, 0, 0, 0, 0, 0, 0, 0, 182763, 182766, 182770, 182773, + 182777, 182782, 182787, 182793, 182799, 182803, 0, 0, 0, 0, 0, 0, 182807, + 182813, 182820, 182826, 182833, 182841, 182849, 182858, 182867, 182872, + 182878, 182883, 182889, 182896, 182903, 182911, 182919, 182926, 182934, + 182941, 182949, 182958, 182967, 182977, 182987, 182993, 183000, 183006, + 183013, 183021, 183029, 183038, 183047, 183055, 183064, 183072, 183081, + 183091, 183101, 183112, 0, 0, 0, 0, 0, 0, 0, 0, 183123, 183128, 183134, + 183139, 183145, 183154, 183164, 183173, 183183, 183190, 183198, 183205, + 183213, 183220, 183229, 183238, 183247, 183252, 183259, 183266, 183273, + 183278, 183283, 183288, 183293, 183300, 183307, 183314, 183321, 183328, + 0, 0, 183337, 183347, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177225, 177232, - 177240, 177248, 177256, 177263, 177271, 177279, 177287, 177294, 177302, - 177310, 177317, 177325, 177333, 177340, 177348, 177356, 177363, 177371, - 177379, 177386, 177394, 177402, 177410, 177418, 177426, 177431, 177435, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177438, 177444, 177450, 177456, - 177460, 177466, 177472, 177478, 177484, 177490, 177496, 177502, 177508, - 177514, 177520, 177526, 177532, 177538, 177544, 177550, 177556, 177562, - 177568, 177574, 177580, 177586, 177592, 177598, 177604, 177610, 177616, - 177622, 177628, 177634, 177640, 177646, 177652, 177658, 177664, 177670, - 177676, 177682, 177688, 177694, 0, 0, 0, 0, 177700, 177711, 177722, - 177733, 177744, 177755, 177766, 177777, 177788, 0, 0, 0, 0, 0, 0, 0, - 177799, 177804, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177809, 177815, - 177821, 177827, 177833, 177839, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177845, 177847, 177849, 177853, - 177858, 177863, 177865, 177871, 177876, 177878, 177884, 177888, 177890, - 177894, 177900, 177906, 177912, 177917, 177922, 177929, 177936, 177943, - 177948, 177955, 177962, 177969, 177973, 177980, 177989, 177998, 178005, - 178010, 178014, 178018, 178020, 178023, 178026, 178033, 178040, 178050, - 178055, 178060, 178065, 178070, 178072, 178078, 178082, 178084, 178086, - 178088, 178090, 178094, 178098, 178102, 178104, 178108, 178110, 178114, - 178116, 178118, 178120, 178122, 178127, 178132, 178134, 178140, 178144, - 178148, 178156, 178158, 178160, 178162, 178164, 178166, 178168, 178170, - 178172, 178174, 178176, 178180, 178184, 178186, 178188, 178190, 178192, - 178194, 178199, 178205, 178209, 178213, 178217, 178221, 178226, 178230, - 178232, 178234, 178238, 178244, 178246, 178248, 178250, 178254, 178263, - 178269, 178273, 178277, 178279, 178281, 178284, 178286, 178288, 178290, - 178294, 178296, 178300, 178305, 178307, 178312, 178318, 178325, 178329, - 178333, 178337, 178341, 178347, 178351, 178359, 178366, 178368, 178370, - 178374, 178378, 178380, 178384, 178388, 178390, 178394, 178396, 178400, - 178404, 178408, 178412, 178416, 178420, 178424, 178428, 178434, 178438, - 178442, 178453, 178458, 178462, 178466, 178472, 178476, 178480, 178484, - 178491, 178498, 178502, 178506, 178510, 178514, 178518, 178525, 178527, - 178531, 178533, 178535, 178539, 178543, 178547, 178549, 178553, 178557, - 178561, 178565, 178569, 178571, 178575, 178577, 178583, 178586, 178591, - 178593, 178595, 178598, 178600, 178602, 178605, 178612, 178619, 178626, - 178631, 178635, 178637, 178639, 178641, 178645, 178647, 178651, 178655, - 178659, 178661, 178665, 178667, 178671, 178675, 178682, 178684, 178693, - 178702, 178711, 178717, 178719, 178724, 178728, 178732, 178734, 178740, - 178744, 178746, 178750, 178754, 178756, 178760, 178765, 178769, 178775, - 178781, 178783, 178785, 178791, 178793, 178797, 178801, 178803, 178807, - 178809, 178813, 178817, 178821, 178824, 178827, 178832, 178837, 178839, - 178842, 178844, 178851, 178855, 178857, 178864, 178871, 178878, 178885, - 178892, 178894, 178896, 178898, 178902, 178904, 178906, 178908, 178910, - 178912, 178914, 178916, 178918, 178920, 178922, 178924, 178926, 178928, - 178930, 178932, 178934, 178936, 178938, 178940, 178942, 178944, 178946, - 178950, 178952, 178954, 178956, 178960, 178962, 178966, 178968, 178970, - 178974, 178978, 178984, 178986, 178988, 178990, 178992, 178996, 179000, - 179002, 179006, 179010, 179014, 179018, 179022, 179026, 179030, 179034, - 179038, 179042, 179046, 179050, 179054, 179058, 179062, 179066, 179070, - 179074, 179076, 179078, 179080, 179082, 179084, 179086, 179088, 179096, - 179104, 179112, 179120, 179125, 179130, 179135, 179139, 179143, 179148, - 179153, 179155, 179159, 179161, 179163, 179165, 179167, 179169, 179171, - 179173, 179177, 179179, 179181, 179183, 179187, 179191, 179195, 179199, - 179203, 179205, 179211, 179217, 179219, 179221, 179223, 179225, 179227, - 179236, 179243, 179250, 179254, 179261, 179266, 179273, 179282, 179287, - 179291, 179295, 179297, 179301, 179303, 179307, 179311, 179313, 179317, - 179321, 179325, 179327, 179329, 179335, 179337, 179339, 179341, 179345, - 179349, 179351, 179355, 179357, 179359, 179362, 179366, 179368, 179372, - 179374, 179376, 179381, 179383, 179387, 179391, 179394, 179398, 179402, - 179406, 179410, 179414, 179418, 179422, 179427, 179431, 179435, 179444, - 179449, 179452, 179454, 179457, 179460, 179465, 179467, 179470, 179475, - 179479, 179482, 179486, 179490, 179493, 179498, 179502, 179506, 179510, - 179514, 179520, 179526, 179532, 179538, 179543, 179554, 179556, 179560, - 179562, 179564, 179568, 179572, 179574, 179578, 179584, 179589, 179595, - 179597, 179601, 179605, 179612, 179619, 179623, 179625, 179627, 179631, - 179633, 179637, 179641, 179645, 179647, 179649, 179656, 179660, 179664, - 179668, 179672, 179676, 179678, 179682, 179684, 179686, 179690, 179692, - 179696, 179700, 179706, 179710, 179714, 179718, 179720, 179723, 179727, - 179734, 179743, 179752, 179761, 179770, 179772, 179776, 179778, 179782, - 179793, 179797, 179803, 179809, 179814, 179816, 179821, 179825, 179827, - 179829, 179831, 179835, 179839, 179843, 179848, 179859, 179875, 179888, - 179901, 179905, 179909, 179915, 179917, 179925, 179933, 179935, 179939, - 179945, 179951, 179958, 179965, 179967, 179969, 179973, 179975, 179981, - 179983, 179986, 179990, 179996, 180002, 180013, 180019, 180026, 180034, - 180038, 180046, 180054, 180060, 180066, 180073, 180075, 180079, 180081, - 180083, 180088, 180090, 180092, 180094, 180096, 180100, 180110, 180116, - 180120, 180124, 180128, 180134, 180140, 180146, 180152, 180157, 180162, - 180168, 180174, 180181, 180188, 180195, 180202, 180207, 180215, 180219, - 180228, 180237, 180243, 180247, 180251, 180255, 180258, 180263, 180265, - 180267, 180269, 180276, 180281, 180288, 180295, 180302, 180310, 180318, - 180326, 180334, 180342, 180350, 180358, 180366, 180374, 180380, 180386, - 180392, 180398, 180404, 180410, 180416, 180422, 180428, 180434, 180440, - 180446, 180449, 180458, 180467, 180469, 180476, 180480, 180482, 180484, - 180488, 180494, 180498, 180500, 180510, 180516, 180520, 180522, 180526, - 180528, 180532, 180539, 180546, 180553, 180558, 180563, 180572, 180578, - 180583, 180587, 180592, 180596, 180603, 180607, 180610, 180614, 180620, - 180626, 180630, 180634, 180639, 180645, 180654, 180665, 180671, 180677, - 180683, 180693, 180708, 180717, 180725, 180733, 180741, 180749, 180757, - 180765, 180773, 180781, 180789, 180797, 180805, 180813, 180816, 180820, - 180825, 180830, 180832, 180836, 180845, 180854, 180862, 180866, 180870, - 180875, 180880, 180885, 180887, 180892, 180896, 180898, 180902, 180906, - 180912, 180917, 180925, 180930, 180935, 180940, 180947, 180950, 180952, - 180956, 180961, 180967, 180971, 180975, 180981, 180987, 180989, 180993, - 180997, 181001, 181005, 181009, 181011, 181013, 181015, 181017, 181023, - 181029, 181033, 181035, 181037, 181039, 181048, 181052, 181059, 181066, - 181068, 181071, 181075, 181081, 181085, 181089, 181091, 181099, 181103, - 181107, 181112, 181116, 181121, 181126, 181131, 181136, 181141, 181146, - 181151, 181156, 181160, 181166, 181170, 181176, 181181, 181188, 181194, - 181202, 181206, 181213, 181217, 181221, 181225, 181230, 181235, 181237, - 181241, 181250, 181258, 181267, 181281, 181295, 181309, 181316, 181323, - 181327, 181336, 181344, 181348, 181357, 181364, 181368, 181372, 181376, - 181380, 181387, 181391, 181395, 181399, 181403, 181410, 181419, 181428, - 181435, 181447, 181459, 181463, 181467, 181471, 181475, 181479, 181483, - 181491, 181499, 181508, 181512, 181516, 181520, 181524, 181528, 181532, - 181538, 181545, 181549, 181561, 181569, 181573, 181577, 181581, 181585, - 181591, 181598, 181609, 181619, 181630, 181641, 181650, 181661, 181667, - 181673, 181679, 181685, 181691, 181695, 181702, 181711, 181718, 181724, - 181728, 181732, 181736, 181745, 181757, 181761, 181768, 181775, 181782, - 181790, 181797, 181805, 181813, 181822, 181830, 181839, 181848, 181858, - 181867, 181877, 181887, 181898, 181908, 181919, 181926, 181934, 181941, - 181949, 181957, 181966, 181974, 181983, 181990, 182002, 182009, 182021, - 182024, 182028, 182031, 182035, 182041, 182048, 182055, 182063, 182068, - 182074, 182085, 182095, 182106, 182111, 182116, 182122, 182127, 182134, - 182138, 182144, 182146, 182148, 182152, 182156, 182160, 182169, 182171, - 182173, 182176, 182178, 182180, 182184, 182186, 182190, 182192, 182196, - 182198, 182200, 182204, 182208, 182214, 182216, 182220, 182222, 182226, - 182230, 182234, 182238, 182240, 182242, 182246, 182250, 182254, 182258, - 182260, 182262, 182264, 182270, 182275, 182278, 182286, 182294, 182296, - 182301, 182304, 182309, 182320, 182327, 182332, 182337, 182339, 182343, - 182345, 182349, 182351, 182355, 182359, 182362, 182365, 182367, 182370, - 182372, 182376, 182378, 182380, 182382, 182386, 182388, 182392, 182395, - 182402, 182405, 182410, 182413, 182416, 182421, 182425, 182429, 182433, - 182435, 182440, 182443, 182447, 182449, 182451, 182455, 182457, 0, 0, 0, - 0, 182459, 182461, 182465, 182467, 182471, 182476, 182478, 182482, - 182484, 182488, 182492, 182498, 182502, 182507, 182510, 182514, 182518, - 0, 0, 0, 182522, 182524, 182530, 182534, 182538, 182540, 182544, 182546, - 182548, 182552, 182554, 182558, 182562, 0, 0, 0, 182566, 182571, 182576, - 182581, 182586, 182591, 182596, 182603, 182610, 182617, 182624, 182629, - 182634, 182639, 182644, 182651, 182657, 182664, 182671, 182678, 182683, - 182688, 182693, 182698, 182703, 182710, 182717, 182722, 182727, 182734, - 182741, 182749, 182757, 182764, 182771, 182779, 182787, 182795, 182802, - 182812, 182823, 182828, 182835, 182842, 182849, 182857, 182865, 182876, - 182884, 182892, 182900, 182905, 182910, 182915, 182920, 182925, 182930, - 182935, 182940, 182945, 182950, 182955, 182960, 182967, 182972, 182977, - 182984, 182989, 182994, 182999, 183004, 183009, 183014, 183019, 183024, - 183029, 183034, 183039, 183044, 183051, 183059, 183064, 183069, 183076, - 183081, 183086, 183091, 183098, 183103, 183110, 183115, 183122, 183127, - 183136, 183145, 183150, 183155, 183160, 183165, 183170, 183175, 183180, - 183185, 183190, 183195, 183200, 183205, 183210, 183218, 183226, 183231, - 183236, 183241, 183246, 183251, 183257, 183263, 183268, 183270, 0, 0, 0, - 0, 183274, 183276, 183278, 183280, 183282, 183284, 183292, 183300, - 183308, 183316, 183322, 183328, 183332, 183336, 183342, 183348, 183357, - 183361, 183366, 183372, 183376, 183381, 183385, 183389, 183395, 183401, - 183411, 183420, 183423, 183428, 183434, 183440, 183451, 183461, 183465, - 183470, 183476, 183482, 183491, 183496, 183500, 183505, 183509, 183515, - 183521, 183527, 183531, 183534, 183538, 183541, 183544, 183549, 183554, - 183561, 183569, 183576, 183583, 183592, 183601, 183608, 183616, 183623, - 183630, 183639, 183648, 183655, 183663, 183670, 183677, 183686, 183693, - 183701, 183707, 183716, 183724, 183733, 183740, 183750, 183761, 183769, - 183777, 183786, 183794, 183802, 183811, 183819, 183829, 183838, 183846, - 183854, 183863, 183866, 183871, 183874, 183879, 0, 0, 0, 0, 0, 0, 183886, - 183892, 183898, 183904, 183910, 183916, 183922, 183928, 183934, 183940, - 183946, 183952, 0, 0, 0, 0, 183958, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 183962, 183970, 183979, 183987, 183996, 184005, 184015, 184024, - 184034, 184043, 184053, 184062, 0, 0, 0, 0, 184072, 184080, 184089, - 184097, 184106, 184113, 184121, 184128, 184136, 184144, 184153, 184161, - 184170, 184180, 184191, 184201, 184212, 184221, 184231, 184240, 184250, - 184259, 184269, 184278, 184288, 184296, 184305, 184313, 184322, 184330, - 184339, 184347, 184356, 184366, 184377, 184387, 184398, 184402, 184407, - 184411, 184416, 184419, 184423, 184426, 184430, 184434, 184439, 184443, - 184448, 184453, 184459, 184464, 184470, 184473, 184477, 184480, 0, 0, 0, - 0, 0, 0, 0, 0, 184484, 184487, 184491, 184494, 184498, 184503, 184508, - 184514, 184520, 184524, 0, 0, 0, 0, 0, 0, 184528, 184534, 184541, 184547, - 184554, 184562, 184570, 184579, 184588, 184593, 184599, 184604, 184610, - 184617, 184624, 184632, 184640, 184647, 184655, 184662, 184670, 184679, - 184688, 184698, 184708, 184714, 184721, 184727, 184734, 184742, 184750, - 184759, 184768, 184776, 184785, 184793, 184802, 184812, 184822, 184833, - 0, 0, 0, 0, 0, 0, 0, 0, 184844, 184849, 184855, 184860, 184866, 184875, - 184885, 184894, 184904, 184911, 184919, 184926, 184934, 184941, 184950, - 184959, 184968, 184973, 184980, 184987, 184994, 184999, 185004, 185009, - 185014, 185021, 185028, 185035, 185042, 185049, 0, 0, 185058, 185068, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183359, 183369, 183378, 183383, + 183392, 183400, 183408, 183415, 183419, 183424, 183431, 183440, 183451, + 183455, 183458, 183462, 183466, 183470, 183474, 183479, 183483, 183487, + 183492, 183496, 183500, 183506, 183512, 183519, 183523, 183527, 183529, + 183539, 183548, 183555, 183559, 183563, 183573, 183577, 183581, 183585, + 183589, 183597, 183606, 183619, 183630, 183641, 183657, 183666, 183675, + 183679, 183681, 183686, 183688, 183690, 183696, 183700, 183702, 183708, + 183710, 183712, 183716, 183718, 183722, 183724, 183728, 183732, 183737, + 183741, 183745, 183747, 183751, 183753, 183759, 183765, 183771, 183775, + 183781, 183785, 183792, 183794, 183798, 183800, 183802, 183804, 183806, + 183808, 183810, 183814, 183818, 183825, 183829, 183831, 183836, 183838, + 183840, 183842, 183844, 183848, 183852, 183854, 183859, 183864, 183866, + 183868, 183870, 183872, 183877, 183879, 183883, 183887, 183889, 183893, + 183895, 183908, 183912, 183919, 183931, 183943, 183947, 183951, 183953, + 183957, 183965, 183972, 183974, 183978, 183980, 183984, 183988, 183990, + 183994, 183996, 183998, 184002, 184004, 184006, 184008, 184010, 184012, + 184016, 184018, 184020, 184022, 184024, 184026, 184028, 184030, 184034, + 184038, 184040, 184042, 184044, 184046, 184048, 184050, 184052, 184054, + 184056, 184058, 184060, 184062, 184064, 184066, 184068, 184070, 184072, + 184074, 184076, 184078, 184080, 184082, 184084, 184086, 184088, 184090, + 184094, 184098, 184106, 184114, 184120, 184127, 184129, 184131, 184133, + 184135, 184137, 184139, 184143, 184150, 184154, 184158, 184162, 184166, + 184170, 184172, 184176, 184180, 184182, 184184, 184186, 184188, 184190, + 184194, 184198, 184202, 184204, 184208, 184212, 184216, 184221, 184223, + 184225, 184229, 184233, 184238, 184246, 184250, 184258, 184260, 184262, + 184264, 184266, 184268, 184270, 184272, 184274, 184278, 184282, 184284, + 184286, 184288, 184290, 184296, 184298, 184304, 184308, 184312, 184317, + 184319, 184321, 184325, 184327, 184329, 184331, 184333, 184337, 184342, + 184347, 184351, 184355, 184357, 184359, 184364, 184369, 184371, 184373, + 184377, 184383, 184389, 184395, 184401, 184407, 184413, 184424, 184435, + 184447, 184458, 184469, 184480, 184491, 184502, 184513, 184524, 184535, + 184546, 184557, 184568, 184579, 184591, 184603, 184615, 184627, 184639, + 184651, 184665, 184679, 184694, 184700, 184706, 184712, 184718, 184724, + 184730, 184736, 184742, 184748, 184754, 184760, 184766, 184773, 184780, + 184787, 184794, 184801, 184808, 184822, 184836, 184851, 184865, 184879, + 184893, 184907, 184921, 184935, 184949, 184963, 184977, 184991, 185005, + 185019, 185034, 185049, 185064, 185079, 185094, 185109, 185123, 185137, + 185152, 185157, 185162, 185168, 185179, 185190, 185202, 185207, 185212, + 185217, 185222, 185227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185232, + 185238, 185244, 185250, 185256, 185262, 185268, 185274, 185279, 185284, + 185289, 185294, 185299, 185304, 0, 0, 185309, 185313, 185317, 185319, + 185321, 0, 0, 0, 185325, 185330, 185334, 185336, 185338, 0, 0, 0, 185340, + 185342, 185344, 185346, 185348, 185352, 185354, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 185358, 185362, 185364, 185366, 185368, 185372, 185374, 185378, + 185380, 185383, 185385, 185389, 185391, 185393, 185394, 185396, 185398, + 185400, 185404, 185406, 185408, 185412, 185414, 185416, 185418, 185420, + 185424, 185428, 185431, 0, 0, 0, 185433, 185435, 185437, 185439, 185441, + 185445, 185447, 185449, 185451, 185453, 185457, 0, 0, 0, 0, 0, 185462, + 185466, 185468, 185472, 185476, 185480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 185485, 185487, 185491, 185493, 185495, 185497, 185499, 185501, 185505, + 185507, 0, 0, 0, 0, 0, 0, 185509, 185513, 185517, 185530, 185537, 185544, + 185550, 185554, 0, 0, 0, 0, 0, 0, 0, 0, 185556, 185566, 185569, 185572, + 185577, 185582, 185591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185595, 185598, + 185601, 185604, 185607, 185610, 185613, 185616, 185619, 185622, 185625, + 185628, 185631, 185634, 185637, 185640, 185643, 185646, 185649, 185652, + 185655, 185658, 185661, 185664, 185667, 185670, 185673, 185676, 185679, + 185682, 185685, 185688, 185691, 185694, 185697, 185700, 185703, 185706, + 185709, 185712, 185715, 185718, 185721, 185724, 185727, 185730, 185733, + 185736, 185739, 185742, 185745, 185748, 185751, 185754, 185757, 185760, + 185763, 185766, 185769, 185772, 185775, 185787, 185798, 185810, 185821, + 185832, 185844, 185855, 185867, 185878, 185889, 185901, 185913, 185924, + 185936, 185947, 185958, 185970, 185981, 185993, 186004, 186015, 186027, + 186039, 186050, 186062, 186073, 186084, 186096, 186107, 186119, 186130, + 186141, 186153, 186165, 186176, 186188, 186199, 186210, 186222, 186233, + 186245, 186256, 186267, 186279, 186291, 186303, 186315, 186327, 186335, + 186343, 186351, 186359, 186365, 186371, 186377, 186383, 186389, 186395, + 186402, 186409, 186416, 186423, 186430, 186437, 186445, 186453, 186461, + 186469, 186477, 186484, 186490, 186496, 186503, 186509, 186516, 186522, + 186528, 186535, 186541, 186548, 186554, 186560, 186566, 186572, 186578, + 186590, 0, 186603, 186616, 186622, 186630, 186635, 186642, 186649, + 186657, 186665, 186673, 186681, 186689, 186697, 186709, 186720, 186731, + 186742, 186757, 186772, 186786, 186800, 186818, 186836, 186855, 186873, + 186891, 186909, 186916, 186924, 186928, 186933, 186939, 186945, 186955, + 186966, 186977, 186987, 186997, 187001, 187005, 187010, 187016, 187022, + 187032, 187038, 187047, 187056, 187065, 187074, 187080, 187084, 187093, + 187101, 187108, 187115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 187120, + 187125, 187129, 187133, 187137, 187141, 187145, 187149, 187153, 187157, + 0, 0, 0, 0, 0, 0, 187161, 187165, 187169, 187173, 187177, 187181, 187185, + 187189, 187193, 187197, 187201, 187205, 187209, 187213, 187217, 187221, + 187225, 187229, 187233, 187237, 187241, 187245, 187249, 187253, 187257, + 187261, 187265, 187269, 187273, 187277, 187281, 187285, 187289, 187293, + 187297, 187301, 187305, 187309, 187313, 187317, 187321, 187325, 187329, + 187333, 187337, 187341, 187345, 187349, 187353, 187357, 187361, 187365, + 187369, 187373, 187377, 187381, 187385, 187389, 187393, 187397, 187401, + 187405, 187409, 187413, 187417, 187421, 187425, 187429, 187433, 187437, + 187441, 187445, 187449, 187453, 187457, 187461, 187465, 187469, 187473, + 187477, 187481, 187485, 187489, 187493, 187497, 187501, 187505, 187509, + 187513, 187517, 187521, 187525, 187529, 187533, 187537, 187541, 187545, + 187549, 187553, 187557, 187561, 187565, 187569, 187573, 187577, 187581, + 187585, 187589, 187593, 187597, 187601, 187605, 187609, 187613, 187617, + 187621, 187625, 187629, 187633, 187637, 187641, 187645, 187649, 187653, + 187657, 187661, 187665, 187669, 187673, 187677, 187681, 187685, 187689, + 187693, 187697, 187701, 187705, 187709, 187713, 187717, 187721, 187725, + 187729, 187733, 187737, 187741, 187745, 187749, 187753, 187757, 187761, + 187765, 187769, 187773, 187777, 187781, 187785, 187789, 187793, 187797, + 187801, 187805, 187809, 187813, 187817, 187821, 187825, 187829, 187833, + 187837, 187841, 187845, 187849, 187853, 187857, 187861, 187865, 187869, + 187873, 187877, 187881, 187885, 187889, 187893, 187897, 187901, 187905, + 187909, 187913, 187917, 187921, 187925, 187929, 187933, 187937, 187941, + 187945, 187949, 187953, 187957, 187961, 187965, 187969, 187973, 187977, + 187981, 187985, 187989, 187993, 187997, 188001, 188005, 188009, 188013, + 188017, 188021, 188025, 188029, 188033, 188037, 188041, 188045, 188049, + 188053, 188057, 188061, 188065, 188069, 188073, 188077, 188081, 188085, + 188089, 188093, 188097, 188101, 188105, 188109, 188113, 188117, 188121, + 188125, 188129, 188133, 188137, 188141, 188145, 188149, 188153, 188157, + 188161, 188165, 188169, 188173, 188177, 188181, 188185, 188189, 188193, + 188197, 188201, 188205, 188209, 188213, 188217, 188221, 188225, 188229, + 188233, 188237, 188241, 188245, 188249, 188253, 188257, 188261, 188265, + 188269, 188273, 188277, 188281, 188285, 188289, 188293, 188297, 188301, + 188305, 188309, 188313, 188317, 188321, 188325, 188329, 188333, 188337, + 188341, 188345, 188349, 188353, 188357, 188361, 188365, 188369, 188373, + 188377, 188381, 188385, 188389, 188393, 188397, 188401, 188405, 188409, + 188413, 188417, 188421, 188425, 188429, 188433, 188437, 188441, 188445, + 188449, 188453, 188457, 188461, 188465, 188469, 188473, 188477, 188481, + 188485, 188489, 188493, 188497, 188501, 188505, 188509, 188513, 188517, + 188521, 188525, 188529, 188533, 188537, 188541, 188545, 188549, 188553, + 188557, 188561, 188565, 188569, 188573, 188577, 188581, 188585, 188589, + 188593, 188597, 188601, 188605, 188609, 188613, 188617, 188621, 188625, + 188629, 188633, 188637, 188641, 188645, 188649, 188653, 188657, 188661, + 188665, 188669, 188673, 188677, 188681, 188685, 188689, 188693, 188697, + 188701, 188705, 188709, 188713, 188717, 188721, 188725, 188729, 188733, + 188737, 188741, 188745, 188749, 188753, 188757, 188761, 188765, 188769, + 188773, 188777, 188781, 188785, 188789, 188793, 188797, 188801, 188805, + 188809, 188813, 188817, 188821, 188825, 188829, 188833, 188837, 188841, + 188845, 188849, 188853, 188857, 188861, 188865, 188869, 188873, 188877, + 188881, 188885, 188889, 188893, 188897, 188901, 188905, 188909, 188913, + 188917, 188921, 188925, 188929, 188933, 188937, 188941, 188945, 188949, + 188953, 188957, 188961, 188965, 188969, 188973, 188977, 188981, 188985, + 188989, 188993, 188997, 189001, 189005, 189009, 189013, 189017, 189021, + 189025, 189029, 189033, 189037, 189041, 189045, 189049, 189053, 189057, + 189061, 189065, 189069, 189073, 189077, 189081, 189085, 189089, 189093, + 189097, 189101, 189105, 189109, 189113, 189117, 189121, 189125, 189129, + 189133, 189137, 189141, 189145, 189149, 189153, 189157, 189161, 189165, + 189169, 189173, 189177, 189181, 189185, 189189, 189193, 189197, 189201, + 189205, 189209, 189213, 189217, 189221, 189225, 189229, 189233, 189237, + 189241, 189245, 189249, 189253, 189257, 189261, 189265, 189269, 189273, + 189277, 189281, 189285, 189289, 189293, 189297, 189301, 189305, 189309, + 189313, 189317, 189321, 189325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 185080, 185090, 185099, 185104, 185113, 185121, 185129, - 185136, 185140, 185145, 185152, 185161, 185172, 185176, 185179, 185183, - 185187, 185191, 185195, 185200, 185204, 185208, 185213, 185217, 185221, - 185227, 185233, 185240, 185244, 185248, 185250, 185260, 185269, 185276, - 185280, 185284, 185294, 185298, 185302, 185306, 185310, 185318, 185327, - 185340, 185351, 185362, 185378, 185387, 185396, 185400, 185402, 185407, - 185409, 185411, 185417, 185421, 185423, 185429, 185431, 185433, 185437, - 185439, 185443, 185445, 185449, 185453, 185458, 185462, 185466, 185468, - 185472, 185474, 185480, 185486, 185492, 185496, 185502, 185506, 185513, - 185515, 185519, 185521, 185523, 185525, 185527, 185529, 185531, 185535, - 185539, 185546, 185550, 185552, 185557, 185559, 185561, 185563, 185565, - 185569, 185573, 185575, 185580, 185585, 185587, 185589, 185591, 185593, - 185598, 185600, 185604, 185608, 185610, 185614, 185616, 185629, 185633, - 185640, 185652, 185664, 185668, 185672, 185674, 185678, 185686, 185693, - 185695, 185699, 185701, 185705, 185709, 185711, 185715, 185717, 185719, - 185723, 185725, 185727, 185729, 185731, 185733, 185737, 185739, 185741, - 185743, 185745, 185747, 185749, 185751, 185755, 185759, 185761, 185763, - 185765, 185767, 185769, 185771, 185773, 185775, 185777, 185779, 185781, - 185783, 185785, 185787, 185789, 185791, 185793, 185795, 185797, 185799, - 185801, 185803, 185805, 185807, 185809, 185811, 185815, 185819, 185827, - 185835, 185841, 185848, 185850, 185852, 185854, 185856, 185858, 185860, - 185864, 185871, 185875, 185879, 185883, 185887, 185891, 185893, 185897, - 185901, 185903, 185905, 185907, 185909, 185911, 185915, 185919, 185923, - 185925, 185929, 185933, 185937, 185942, 185944, 185946, 185950, 185954, - 185959, 185967, 185971, 185979, 185981, 185983, 185985, 185987, 185989, - 185991, 185993, 185995, 185999, 186003, 186005, 186007, 186009, 186011, - 186017, 186019, 186025, 186029, 186033, 186038, 186040, 186042, 186046, - 186048, 186050, 186052, 186054, 186058, 186063, 186068, 186072, 186076, - 186078, 186080, 186085, 186090, 186092, 186094, 186098, 186104, 186110, - 186116, 186122, 186128, 186134, 186145, 186156, 186168, 186179, 186190, - 186201, 186212, 186223, 186234, 186245, 186256, 186267, 186278, 186289, - 186300, 186312, 186324, 186336, 186348, 186360, 186372, 186386, 186400, - 186415, 186421, 186427, 186433, 186439, 186445, 186451, 186457, 186463, - 186469, 186475, 186481, 186487, 186494, 186501, 186508, 186515, 186522, - 186529, 186543, 186557, 186572, 186586, 186600, 186614, 186628, 186642, - 186656, 186670, 186684, 186698, 186712, 186726, 186740, 186755, 186770, - 186785, 186800, 186815, 186830, 186844, 186858, 186873, 186878, 186883, - 186889, 186900, 186911, 186923, 186928, 186933, 186938, 186943, 186948, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 186953, 186959, 186965, 186971, - 186977, 186983, 186989, 186995, 187000, 187005, 187010, 187015, 187020, - 187025, 0, 0, 187030, 187034, 187038, 187040, 187042, 187046, 187051, - 187055, 187059, 187064, 187068, 187070, 187072, 0, 0, 0, 187074, 187076, - 187078, 187080, 187082, 187086, 187088, 187092, 187094, 0, 0, 0, 0, 0, 0, - 0, 187096, 187100, 187102, 187104, 187106, 187110, 187112, 187116, - 187118, 187121, 187123, 187127, 187129, 187131, 187132, 187134, 187136, - 187138, 187142, 187144, 187146, 187150, 187152, 187154, 187156, 187158, - 187162, 187166, 187169, 187171, 187177, 187181, 187183, 187185, 187187, - 187189, 187191, 187195, 187197, 187199, 187201, 187203, 187207, 187212, - 187214, 187216, 0, 187218, 187220, 187224, 187226, 187230, 187234, - 187238, 0, 0, 0, 0, 0, 0, 0, 0, 187243, 187245, 187247, 187249, 187253, - 187255, 187257, 187259, 187261, 187263, 187267, 187269, 187271, 187275, - 0, 0, 0, 0, 187279, 187283, 187287, 187300, 187307, 187314, 187320, - 187324, 187326, 0, 0, 0, 0, 0, 0, 0, 187330, 187340, 187343, 187346, - 187351, 187356, 187365, 187369, 187374, 0, 0, 0, 0, 0, 0, 0, 187379, - 187382, 187385, 187388, 187391, 187394, 187397, 187400, 187403, 187406, - 187409, 187412, 187415, 187418, 187421, 187424, 187427, 187430, 187433, - 187436, 187439, 187442, 187445, 187448, 187451, 187454, 187457, 187460, - 187463, 187466, 187469, 187472, 187475, 187478, 187481, 187484, 187487, - 187490, 187493, 187496, 187499, 187502, 187505, 187508, 187511, 187514, - 187517, 187520, 187523, 187526, 187529, 187532, 187535, 187538, 187541, - 187544, 187547, 187550, 187553, 187556, 187559, 187571, 187582, 187594, - 187605, 187616, 187628, 187639, 187651, 187662, 187673, 187685, 187697, - 187708, 187720, 187731, 187742, 187754, 187765, 187777, 187788, 187799, - 187811, 187823, 187834, 187846, 187857, 187868, 187880, 187891, 187903, - 187914, 187925, 187937, 187949, 187960, 187972, 187983, 187994, 188006, - 188017, 188029, 188040, 188051, 188063, 188075, 188087, 188099, 188111, - 188119, 188127, 188135, 188143, 188149, 188155, 188161, 188167, 188173, - 188179, 188186, 188193, 188200, 188207, 188214, 188221, 188229, 188237, - 188245, 188253, 188261, 188268, 188274, 188280, 188287, 188293, 188300, - 188306, 188312, 188319, 188325, 188332, 188338, 188344, 188350, 188356, - 188362, 188374, 0, 188387, 188400, 188406, 188414, 188419, 188426, - 188433, 188441, 188449, 188457, 188465, 188473, 188481, 188493, 188504, - 188515, 188526, 188541, 188556, 188570, 188584, 188602, 188620, 188639, - 188657, 188675, 188693, 188700, 188708, 188712, 188717, 188723, 188729, - 188739, 188750, 188761, 188771, 188781, 188785, 188789, 188794, 188800, - 188806, 188816, 188822, 188831, 188840, 188849, 188858, 188864, 188868, - 188877, 188885, 188892, 188899, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 188904, 188909, 188913, 188917, 188921, 188925, 188929, 188933, 188937, - 188941, 0, 0, 0, 0, 0, 0, 188945, 188949, 188953, 188957, 188961, 188965, - 188969, 188973, 188977, 188981, 188985, 188989, 188993, 188997, 189001, - 189005, 189009, 189013, 189017, 189021, 189025, 189029, 189033, 189037, - 189041, 189045, 189049, 189053, 189057, 189061, 189065, 189069, 189073, - 189077, 189081, 189085, 189089, 189093, 189097, 189101, 189105, 189109, - 189113, 189117, 189121, 189125, 189129, 189133, 189137, 189141, 189145, - 189149, 189153, 189157, 189161, 189165, 189169, 189173, 189177, 189181, - 189185, 189189, 189193, 189197, 189201, 189205, 189209, 189213, 189217, - 189221, 189225, 189229, 189233, 189237, 189241, 189245, 189249, 189253, - 189257, 189261, 189265, 189269, 189273, 189277, 189281, 189285, 189289, - 189293, 189297, 189301, 189305, 189309, 189313, 189317, 189321, 189325, - 189329, 189333, 189337, 189341, 189345, 189349, 189353, 189357, 189361, - 189365, 189369, 189373, 189377, 189381, 189385, 189389, 189393, 189397, - 189401, 189405, 189409, 189413, 189417, 189421, 189425, 189429, 189433, - 189437, 189441, 189445, 189449, 189453, 189457, 189461, 189465, 189469, - 189473, 189477, 189481, 189485, 189489, 189493, 189497, 189501, 189505, - 189509, 189513, 189517, 189521, 189525, 189529, 189533, 189537, 189541, - 189545, 189549, 189553, 189557, 189561, 189565, 189569, 189573, 189577, - 189581, 189585, 189589, 189593, 189597, 189601, 189605, 189609, 189613, - 189617, 189621, 189625, 189629, 189633, 189637, 189641, 189645, 189649, - 189653, 189657, 189661, 189665, 189669, 189673, 189677, 189681, 189685, - 189689, 189693, 189697, 189701, 189705, 189709, 189713, 189717, 189721, - 189725, 189729, 189733, 189737, 189741, 189745, 189749, 189753, 189757, - 189761, 189765, 189769, 189773, 189777, 189781, 189785, 189789, 189793, - 189797, 189801, 189805, 189809, 189813, 189817, 189821, 189825, 189829, - 189833, 189837, 189841, 189845, 189849, 189853, 189857, 189861, 189865, - 189869, 189873, 189877, 189881, 189885, 189889, 189893, 189897, 189901, - 189905, 189909, 189913, 189917, 189921, 189925, 189929, 189933, 189937, - 189941, 189945, 189949, 189953, 189957, 189961, 189965, 189969, 189973, - 189977, 189981, 189985, 189989, 189993, 189997, 190001, 190005, 190009, - 190013, 190017, 190021, 190025, 190029, 190033, 190037, 190041, 190045, - 190049, 190053, 190057, 190061, 190065, 190069, 190073, 190077, 190081, - 190085, 190089, 190093, 190097, 190101, 190105, 190109, 190113, 190117, - 190121, 190125, 190129, 190133, 190137, 190141, 190145, 190149, 190153, - 190157, 190161, 190165, 190169, 190173, 190177, 190181, 190185, 190189, - 190193, 190197, 190201, 190205, 190209, 190213, 190217, 190221, 190225, - 190229, 190233, 190237, 190241, 190245, 190249, 190253, 190257, 190261, - 190265, 190269, 190273, 190277, 190281, 190285, 190289, 190293, 190297, - 190301, 190305, 190309, 190313, 190317, 190321, 190325, 190329, 190333, - 190337, 190341, 190345, 190349, 190353, 190357, 190361, 190365, 190369, - 190373, 190377, 190381, 190385, 190389, 190393, 190397, 190401, 190405, - 190409, 190413, 190417, 190421, 190425, 190429, 190433, 190437, 190441, - 190445, 190449, 190453, 190457, 190461, 190465, 190469, 190473, 190477, - 190481, 190485, 190489, 190493, 190497, 190501, 190505, 190509, 190513, - 190517, 190521, 190525, 190529, 190533, 190537, 190541, 190545, 190549, - 190553, 190557, 190561, 190565, 190569, 190573, 190577, 190581, 190585, - 190589, 190593, 190597, 190601, 190605, 190609, 190613, 190617, 190621, - 190625, 190629, 190633, 190637, 190641, 190645, 190649, 190653, 190657, - 190661, 190665, 190669, 190673, 190677, 190681, 190685, 190689, 190693, - 190697, 190701, 190705, 190709, 190713, 190717, 190721, 190725, 190729, - 190733, 190737, 190741, 190745, 190749, 190753, 190757, 190761, 190765, - 190769, 190773, 190777, 190781, 190785, 190789, 190793, 190797, 190801, - 190805, 190809, 190813, 190817, 190821, 190825, 190829, 190833, 190837, - 190841, 190845, 190849, 190853, 190857, 190861, 190865, 190869, 190873, - 190877, 190881, 190885, 190889, 190893, 190897, 190901, 190905, 190909, - 190913, 190917, 190921, 190925, 190929, 190933, 190937, 190941, 190945, - 190949, 190953, 190957, 190961, 190965, 190969, 190973, 190977, 190981, - 190985, 190989, 190993, 190997, 191001, 191005, 191009, 191013, 191017, - 191021, 191025, 191029, 191033, 191037, 191041, 191045, 191049, 191053, - 191057, 191061, 191065, 191069, 191073, 191077, 191081, 191085, 191089, - 191093, 191097, 191101, 191105, 191109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 189329, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 189333, + 189337, 189342, 189347, 189351, 189356, 189361, 189365, 189369, 189374, + 189379, 189383, 189387, 189391, 189395, 189401, 189405, 189410, 189414, + 189418, 189422, 189426, 189430, 189434, 189438, 189442, 189446, 189450, + 189454, 189459, 189464, 189469, 189474, 189480, 189486, 189493, 189500, + 189507, 189513, 189520, 189527, 189534, 189540, 189547, 189554, 189560, + 189567, 189574, 189580, 189587, 189594, 189600, 189607, 189614, 189620, + 189627, 189634, 189641, 189648, 189655, 189661, 189667, 189673, 189679, + 189684, 189690, 189696, 189703, 189710, 189717, 189723, 189730, 189737, + 189744, 189750, 189757, 189764, 189770, 189777, 189784, 189790, 189797, + 189804, 189810, 189817, 189824, 189830, 189837, 189844, 189851, 189858, + 189865, 189872, 189877, 189884, 189888, 189892, 189895, 189898, 189901, + 189904, 189907, 189910, 189913, 189916, 189919, 189922, 189925, 189928, + 189931, 189934, 189937, 189940, 189943, 189946, 189949, 189952, 189955, + 189958, 189961, 189964, 189967, 189970, 189973, 189976, 189979, 189982, + 189985, 189988, 189991, 189994, 189997, 190000, 190003, 190006, 190009, + 190012, 190015, 190018, 190021, 190024, 190027, 190030, 190033, 190036, + 190039, 190042, 190045, 190048, 190051, 190054, 190057, 190060, 190063, + 190066, 190069, 190072, 190075, 190078, 190081, 190084, 190087, 190090, + 190093, 190096, 190099, 190102, 190105, 190108, 190111, 190114, 190117, + 190120, 190123, 190126, 190129, 190132, 190135, 190138, 190141, 190144, + 190147, 190150, 190153, 190156, 190159, 190162, 190165, 190168, 190171, + 190174, 190177, 190180, 190183, 190186, 190189, 190192, 190195, 190198, + 190201, 190204, 190207, 190210, 190213, 190216, 190219, 190222, 190225, + 190228, 190231, 190234, 190237, 190240, 190243, 190246, 190249, 190252, + 190255, 190258, 190261, 190264, 190267, 190270, 190273, 190276, 190279, + 190282, 190285, 190288, 190291, 190294, 190297, 190300, 190303, 190306, + 190309, 190312, 190315, 190318, 190321, 190324, 190327, 190330, 190333, + 190336, 190339, 190342, 190345, 190348, 190351, 190354, 190357, 190360, + 190363, 190366, 190369, 190372, 190375, 190378, 190381, 190384, 190387, + 190390, 190393, 190396, 190399, 190402, 190405, 190408, 190411, 190414, + 190417, 190420, 190423, 190426, 190429, 190432, 190435, 190438, 190441, + 190444, 190447, 190450, 190453, 190456, 190459, 190462, 190465, 190468, + 190471, 190474, 190477, 190480, 190483, 190486, 190489, 190492, 190495, + 190498, 190501, 190504, 190507, 190510, 190513, 190516, 190519, 190522, + 190525, 190528, 190531, 190534, 190537, 190540, 190543, 190546, 190549, + 190552, 190555, 190558, 190561, 190564, 190567, 190570, 190573, 190576, + 190579, 190582, 190585, 190588, 190591, 190594, 190597, 190600, 190603, + 190606, 190609, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190612, + 190614, 190616, 190621, 190623, 190628, 190630, 190635, 190637, 190642, + 190644, 190646, 190648, 190650, 190652, 190654, 190656, 190658, 190660, + 190664, 190668, 190670, 190672, 190676, 190680, 190685, 190687, 190689, + 190691, 190695, 190698, 190700, 190704, 190706, 190710, 190712, 190716, + 190719, 190721, 190725, 190729, 190731, 190737, 190739, 190744, 190746, + 190751, 190753, 190758, 190760, 190765, 190767, 190771, 190773, 190777, + 190779, 190786, 190788, 190790, 190792, 190797, 190799, 190801, 190803, + 190805, 190807, 190812, 190816, 190818, 190823, 190827, 190829, 190834, + 190838, 190840, 190845, 190849, 190851, 190853, 190855, 190857, 190861, + 190863, 190868, 190870, 190876, 190878, 190884, 190886, 190888, 190890, + 190894, 190896, 190903, 190905, 190912, 190914, 190920, 190926, 190928, + 190935, 190942, 190944, 190950, 190955, 190957, 190963, 190969, 190971, + 190977, 190983, 190985, 190991, 190995, 190997, 191002, 191004, 191006, + 191011, 191013, 191015, 191021, 191023, 191028, 191032, 191034, 191039, + 191043, 191045, 191051, 191053, 191057, 191059, 191063, 191065, 191072, + 191079, 191081, 191088, 191095, 191097, 191102, 191104, 191112, 191114, + 191120, 191122, 191128, 191130, 191134, 191136, 191142, 191144, 191148, + 191150, 191156, 191158, 191160, 191162, 191167, 191172, 191174, 191176, + 191186, 191191, 191198, 191205, 191210, 191215, 191227, 191231, 191235, + 191239, 191243, 191245, 191247, 191249, 191251, 191253, 191255, 191257, + 191259, 191261, 191263, 191265, 191267, 191269, 191271, 191273, 191275, + 191277, 191279, 191281, 191283, 191285, 191287, 191293, 191300, 191305, + 191313, 191321, 191326, 191332, 191334, 191336, 191338, 191340, 191342, + 191344, 191346, 191348, 191350, 191352, 191354, 191356, 191358, 191360, + 191362, 191364, 191376, 191381, 191383, 191385, 191391, 191403, 191409, + 191415, 191421, 191427, 191431, 191442, 191444, 191446, 191448, 191450, + 191452, 191454, 191456, 191458, 191460, 191462, 191464, 191466, 191468, + 191470, 191472, 191474, 191476, 191478, 191480, 191482, 191484, 191486, + 191488, 191490, 191492, 191494, 191496, 191498, 191500, 191502, 191504, + 191506, 191508, 191510, 191512, 191514, 191516, 191518, 191520, 191522, + 191524, 191526, 191528, 191530, 191532, 191534, 191536, 191538, 191540, + 191542, 191544, 191546, 191548, 191550, 191552, 191554, 191556, 191558, + 191560, 191562, 191564, 191566, 191568, 191570, 191572, 191574, 191576, + 191578, 191580, 191582, 191584, 191586, 191588, 191590, 191592, 191594, + 191596, 191598, 191600, 191602, 191604, 191606, 191608, 191610, 191612, + 191614, 191616, 191618, 191620, 191622, 191624, 191626, 191628, 191630, + 191632, 191634, 191636, 191638, 191640, 191642, 191644, 191646, 191648, + 191650, 191652, 191654, 191656, 191658, 191660, 191662, 191664, 191666, + 191668, 191670, 191672, 191674, 191676, 191678, 191680, 191682, 191684, + 191686, 191688, 191690, 191692, 191694, 191696, 191698, 191700, 191702, + 191704, 191706, 191708, 191710, 191712, 191714, 191716, 191718, 191720, + 191722, 191724, 191726, 191728, 191730, 191732, 191734, 191736, 191738, + 191740, 191742, 191744, 191746, 191748, 191750, 191752, 191754, 191756, + 191758, 191760, 191762, 191764, 191766, 191768, 191770, 191772, 191774, + 191776, 191778, 191780, 191782, 191784, 191786, 191788, 191790, 191792, + 191794, 191796, 191798, 191800, 191802, 191804, 191806, 191808, 191810, + 191812, 191814, 191816, 191818, 191820, 191822, 191824, 191826, 191828, + 191830, 191832, 191834, 191836, 191838, 191840, 191842, 191844, 191846, + 191848, 191850, 191852, 191854, 191856, 191858, 191860, 191862, 191864, + 191866, 191868, 191870, 191872, 191874, 191876, 191878, 191880, 191882, + 191884, 191886, 191888, 191890, 191892, 191894, 191896, 191898, 191900, + 191902, 191904, 191906, 191908, 191910, 191912, 191914, 191916, 191918, + 191920, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191922, + 191926, 191930, 191935, 191939, 191943, 191947, 191951, 191955, 191959, + 191963, 191967, 191971, 191981, 191991, 192002, 192013, 192023, 192033, + 192043, 192053, 192067, 192081, 192095, 192109, 192118, 192127, 192140, + 192153, 192166, 192179, 192189, 192199, 192210, 192221, 192232, 192243, + 192254, 192263, 192273, 192283, 192293, 192303, 192314, 192325, 192336, + 192347, 192358, 192369, 192380, 192391, 192402, 192413, 192424, 192438, + 192449, 192463, 192471, 192482, 192490, 192498, 192506, 192514, 192522, + 192530, 192540, 192550, 192560, 192570, 192580, 192590, 192600, 192610, + 192618, 192627, 192636, 192645, 192654, 192662, 192670, 192680, 192690, + 192701, 192712, 192724, 192735, 192745, 192756, 192766, 192777, 192785, + 192792, 192799, 192806, 192813, 192820, 192827, 192834, 192841, 192849, + 192857, 192865, 192873, 192881, 192889, 192897, 192905, 192913, 192921, + 192929, 192934, 192938, 192942, 192946, 192950, 192954, 192958, 192962, + 192966, 192970, 192974, 192978, 192981, 192984, 192988, 192992, 192996, + 193000, 193004, 193008, 193012, 193016, 193020, 193024, 193028, 193032, + 193036, 193040, 193044, 193048, 193052, 193056, 193060, 193064, 193068, + 193072, 193076, 193080, 193084, 193088, 193092, 193096, 193100, 193104, + 193108, 193112, 193116, 193120, 193124, 193128, 193132, 193136, 193140, + 193144, 193148, 193152, 193156, 193160, 193164, 193168, 193172, 193176, + 193180, 193184, 193188, 193192, 193196, 193200, 193204, 193208, 193212, + 193216, 193220, 193224, 193228, 193232, 193236, 193240, 193244, 193248, + 193252, 193256, 193260, 193264, 193268, 193272, 193276, 193280, 193284, + 193288, 193292, 193296, 193300, 193304, 193308, 193312, 193316, 193320, + 193324, 193327, 193331, 193335, 193339, 193343, 193347, 193351, 193355, + 193359, 193363, 193367, 193371, 193375, 193379, 193383, 193387, 193391, + 193395, 193399, 193403, 193407, 193411, 193415, 193419, 193423, 193427, + 193431, 193435, 193439, 193443, 193447, 193451, 193455, 193459, 193463, + 193467, 193471, 193475, 193479, 193483, 193487, 193491, 193495, 193499, + 193503, 193507, 193511, 193515, 193519, 193523, 193527, 193531, 193535, + 193539, 193543, 193547, 193551, 193555, 193559, 193563, 193567, 193571, + 193575, 193579, 193583, 193587, 193591, 193595, 193599, 193603, 193607, + 193611, 193615, 193619, 193623, 193627, 193631, 193635, 193639, 193643, + 193647, 193651, 193655, 193659, 193663, 193667, 193671, 193675, 193679, + 193683, 193687, 193691, 193695, 193699, 193703, 193707, 193711, 193715, + 193719, 193723, 193727, 193731, 193735, 193739, 193743, 193747, 193751, + 193755, 193759, 193763, 193767, 193771, 193775, 193779, 193783, 193787, + 193791, 193795, 193799, 193803, 193807, 193811, 193815, 193819, 193823, + 193827, 193831, 193835, 193839, 193843, 193847, 193851, 193855, 193859, + 193863, 193867, 193871, 193875, 193879, 193883, 193887, 193891, 193895, + 193899, 193903, 193907, 193911, 193915, 193919, 193923, 193927, 193931, + 193935, 193939, 193943, 193947, 193951, 193955, 193959, 193963, 193967, + 193971, 193975, 193979, 193983, 193987, 193991, 193995, 193999, 194003, + 194007, 194011, 194015, 194019, 194023, 194027, 194031, 194035, 194039, + 194043, 194047, 194051, 194055, 194059, 194063, 194067, 194071, 194075, + 194079, 194083, 194087, 194091, 194096, 194101, 194106, 194110, 194116, + 194123, 194130, 194137, 194144, 194151, 194158, 194165, 194172, 194179, + 194186, 194193, 194200, 194207, 194213, 194220, 194227, 194233, 194240, + 194247, 194254, 194261, 194268, 194275, 194282, 194289, 194296, 194303, + 194310, 194317, 194324, 194330, 194336, 194342, 194349, 194358, 194367, + 194376, 194385, 194390, 194395, 194402, 194409, 194416, 194423, 194430, + 194436, 194442, 194448, 194454, 194460, 194466, 194472, 194477, 194483, + 194493, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191113, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 191117, 191121, 191126, 191131, 191135, 191140, 191145, 191149, 191153, - 191158, 191163, 191167, 191171, 191175, 191179, 191185, 191189, 191194, - 191198, 191202, 191206, 191210, 191214, 191218, 191222, 191226, 191230, - 191234, 191238, 191243, 191248, 191253, 191258, 191264, 191270, 191277, - 191284, 191291, 191297, 191304, 191311, 191318, 191324, 191331, 191338, - 191344, 191351, 191358, 191364, 191371, 191378, 191384, 191391, 191398, - 191404, 191411, 191418, 191425, 191432, 191439, 191445, 191451, 191457, - 191463, 191468, 191474, 191480, 191487, 191494, 191501, 191507, 191514, - 191521, 191528, 191534, 191541, 191548, 191554, 191561, 191568, 191574, - 191581, 191588, 191594, 191601, 191608, 191614, 191621, 191628, 191635, - 191642, 191649, 191656, 191661, 191668, 191672, 191676, 191679, 191682, - 191685, 191688, 191691, 191694, 191697, 191700, 191703, 191706, 191709, - 191712, 191715, 191718, 191721, 191724, 191727, 191730, 191733, 191736, - 191739, 191742, 191745, 191748, 191751, 191754, 191757, 191760, 191763, - 191766, 191769, 191772, 191775, 191778, 191781, 191784, 191787, 191790, - 191793, 191796, 191799, 191802, 191805, 191808, 191811, 191814, 191817, - 191820, 191823, 191826, 191829, 191832, 191835, 191838, 191841, 191844, - 191847, 191850, 191853, 191856, 191859, 191862, 191865, 191868, 191871, - 191874, 191877, 191880, 191883, 191886, 191889, 191892, 191895, 191898, - 191901, 191904, 191907, 191910, 191913, 191916, 191919, 191922, 191925, - 191928, 191931, 191934, 191937, 191940, 191943, 191946, 191949, 191952, - 191955, 191958, 191961, 191964, 191967, 191970, 191973, 191976, 191979, - 191982, 191985, 191988, 191991, 191994, 191997, 192000, 192003, 192006, - 192009, 192012, 192015, 192018, 192021, 192024, 192027, 192030, 192033, - 192036, 192039, 192042, 192045, 192048, 192051, 192054, 192057, 192060, - 192063, 192066, 192069, 192072, 192075, 192078, 192081, 192084, 192087, - 192090, 192093, 192096, 192099, 192102, 192105, 192108, 192111, 192114, - 192117, 192120, 192123, 192126, 192129, 192132, 192135, 192138, 192141, - 192144, 192147, 192150, 192153, 192156, 192159, 192162, 192165, 192168, - 192171, 192174, 192177, 192180, 192183, 192186, 192189, 192192, 192195, - 192198, 192201, 192204, 192207, 192210, 192213, 192216, 192219, 192222, - 192225, 192228, 192231, 192234, 192237, 192240, 192243, 192246, 192249, - 192252, 192255, 192258, 192261, 192264, 192267, 192270, 192273, 192276, - 192279, 192282, 192285, 192288, 192291, 192294, 192297, 192300, 192303, - 192306, 192309, 192312, 192315, 192318, 192321, 192324, 192327, 192330, - 192333, 192336, 192339, 192342, 192345, 192348, 192351, 192354, 192357, - 192360, 192363, 192366, 192369, 192372, 192375, 192378, 192381, 192384, - 192387, 192390, 192393, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 192396, 192398, 192400, 192405, 192407, 192412, 192414, 192419, 192421, - 192426, 192428, 192430, 192432, 192434, 192436, 192438, 192440, 192442, - 192444, 192448, 192452, 192454, 192456, 192460, 192464, 192469, 192471, - 192473, 192475, 192479, 192482, 192484, 192488, 192490, 192494, 192496, - 192500, 192503, 192505, 192509, 192513, 192515, 192521, 192523, 192528, - 192530, 192535, 192537, 192542, 192544, 192549, 192551, 192555, 192557, - 192561, 192563, 192570, 192572, 192574, 192576, 192581, 192583, 192585, - 192587, 192589, 192591, 192593, 192598, 192602, 192604, 192609, 192613, - 192615, 192620, 192624, 192626, 192631, 192635, 192637, 192639, 192641, - 192643, 192647, 192649, 192654, 192656, 192662, 192664, 192670, 192672, - 192674, 192676, 192680, 192682, 192689, 192691, 192698, 192700, 192706, - 192712, 192714, 192721, 192728, 192730, 192736, 192741, 192743, 192749, - 192755, 192757, 192763, 192769, 192771, 192777, 192781, 192783, 192788, - 192790, 192792, 192797, 192799, 192801, 192807, 192809, 192814, 192818, - 192820, 192825, 192829, 192831, 192837, 192839, 192843, 192845, 192849, - 192851, 192858, 192865, 192867, 192874, 192881, 192883, 192888, 192890, - 192898, 192900, 192906, 192908, 192914, 192916, 192920, 192922, 192928, - 192930, 192934, 192936, 192942, 192944, 192946, 192948, 192953, 192958, - 192960, 192969, 192971, 192981, 192986, 192993, 193000, 193005, 193010, - 193022, 193026, 193030, 193034, 193038, 193040, 193042, 193044, 193046, - 193048, 193054, 193056, 193058, 193060, 193062, 193064, 193066, 193068, - 193070, 193072, 193074, 193076, 193078, 193080, 193082, 193084, 193086, - 193088, 193094, 193101, 193106, 193114, 193122, 193127, 193133, 193135, - 193137, 193139, 193141, 193143, 193145, 193147, 193149, 193151, 193153, - 193155, 193157, 193159, 193161, 193163, 193165, 193177, 193182, 193184, - 193186, 193192, 193204, 193210, 193216, 193222, 193228, 193232, 193243, - 193245, 193247, 193249, 193251, 193253, 193255, 193257, 193259, 193261, - 193263, 193265, 193267, 193269, 193271, 193273, 193275, 193277, 193279, - 193281, 193283, 193285, 193287, 193289, 193291, 193293, 193295, 193297, - 193299, 193301, 193303, 193305, 193307, 193309, 193311, 193313, 193315, - 193317, 193319, 193321, 193323, 193325, 193327, 193329, 193331, 193333, - 193335, 193337, 193339, 193341, 193343, 193345, 193347, 193349, 193351, - 193353, 193355, 193357, 193359, 193361, 193363, 193365, 193367, 193369, - 193371, 193373, 193375, 193377, 193379, 193381, 193383, 193385, 193387, - 193389, 193391, 193393, 193395, 193397, 193399, 193401, 193403, 193405, - 193407, 193409, 193411, 193413, 193415, 193417, 193419, 193421, 193423, - 193425, 193427, 193429, 193431, 193433, 193435, 193437, 193439, 193441, - 193443, 193445, 193447, 193449, 193451, 193453, 193455, 193457, 193459, - 193461, 193463, 193465, 193467, 193469, 193471, 193473, 193475, 193477, - 193479, 193481, 193483, 193485, 193487, 193489, 193491, 193493, 193495, - 193497, 193499, 193501, 193503, 193505, 193507, 193509, 193511, 193513, - 193515, 193517, 193519, 193521, 193523, 193525, 193527, 193529, 193531, - 193533, 193535, 193537, 193539, 193541, 193543, 193545, 193547, 193549, - 193551, 193553, 193555, 193557, 193559, 193561, 193563, 193565, 193567, - 193569, 193571, 193573, 193575, 193577, 193579, 193581, 193583, 193585, - 193587, 193589, 193591, 193593, 193595, 193597, 193599, 193601, 193603, - 193605, 193607, 193609, 193611, 193613, 193615, 193617, 193619, 193621, - 193623, 193625, 193627, 193629, 193631, 193633, 193635, 193637, 193639, - 193641, 193643, 193645, 193647, 193649, 193651, 193653, 193655, 193657, - 193659, 193661, 193663, 193665, 193667, 193669, 193671, 193673, 193675, - 193677, 193679, 193681, 193683, 193685, 193687, 193689, 193691, 193693, - 193695, 193697, 193699, 193701, 193703, 193705, 193707, 193709, 193711, - 193713, 193715, 193717, 193719, 193721, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 193723, 193727, 193731, 193736, 193740, 193744, 193748, - 193752, 193756, 193760, 193764, 193768, 193772, 193782, 193792, 193803, - 193814, 193824, 193834, 193844, 193854, 193868, 193882, 193896, 193910, - 193919, 193928, 193941, 193954, 193967, 193980, 193990, 194000, 194011, - 194022, 194033, 194044, 194055, 194064, 194074, 194084, 194094, 194104, - 194115, 194126, 194137, 194148, 194159, 194170, 194181, 194192, 194203, - 194214, 194225, 194239, 194250, 194264, 194272, 194283, 194291, 194299, - 194307, 194315, 194323, 194331, 194341, 194351, 194361, 194371, 194381, - 194391, 194401, 194411, 194419, 194428, 194437, 194446, 194455, 194463, - 194471, 194481, 194491, 194502, 194513, 194525, 194536, 194546, 194557, - 194567, 194578, 194586, 194593, 194600, 194607, 194614, 194621, 194628, - 194635, 194642, 194650, 194658, 194666, 194674, 194682, 194690, 194698, - 194706, 194714, 194722, 194730, 194735, 194739, 194743, 194747, 194751, - 194755, 194759, 194763, 194767, 194771, 194775, 194779, 194782, 194785, - 194789, 194793, 194797, 194801, 194805, 194809, 194813, 194817, 194821, - 194825, 194829, 194833, 194837, 194841, 194845, 194849, 194853, 194857, - 194861, 194865, 194869, 194873, 194877, 194881, 194885, 194889, 194893, - 194897, 194901, 194905, 194909, 194913, 194917, 194921, 194925, 194929, - 194933, 194937, 194941, 194945, 194949, 194953, 194957, 194961, 194965, - 194969, 194973, 194977, 194981, 194985, 194989, 194993, 194997, 195001, - 195005, 195009, 195013, 195017, 195021, 195025, 195029, 195033, 195037, - 195041, 195045, 195049, 195053, 195057, 195061, 195065, 195069, 195073, - 195077, 195081, 195085, 195089, 195093, 195097, 195101, 195105, 195109, - 195113, 195117, 195121, 195125, 195128, 195132, 195136, 195140, 195144, - 195148, 195152, 195156, 195160, 195164, 195168, 195172, 195176, 195180, - 195184, 195188, 195192, 195196, 195200, 195204, 195208, 195212, 195216, - 195220, 195224, 195228, 195232, 195236, 195240, 195244, 195248, 195252, - 195256, 195260, 195264, 195268, 195272, 195276, 195280, 195284, 195288, - 195292, 195296, 195300, 195304, 195308, 195312, 195316, 195320, 195324, - 195328, 195332, 195336, 195340, 195344, 195348, 195352, 195356, 195360, - 195364, 195368, 195372, 195376, 195380, 195384, 195388, 195392, 195396, - 195400, 195404, 195408, 195412, 195416, 195420, 195424, 195428, 195432, - 195436, 195440, 195444, 195448, 195452, 195456, 195460, 195464, 195468, - 195472, 195476, 195480, 195484, 195488, 195492, 195496, 195500, 195504, - 195508, 195512, 195516, 195520, 195524, 195528, 195532, 195536, 195540, - 195544, 195548, 195552, 195556, 195560, 195564, 195568, 195572, 195576, - 195580, 195584, 195588, 195592, 195596, 195600, 195604, 195608, 195612, - 195616, 195620, 195624, 195628, 195632, 195636, 195640, 195644, 195648, - 195652, 195656, 195660, 195664, 195668, 195672, 195676, 195680, 195684, - 195688, 195692, 195696, 195700, 195704, 195708, 195712, 195716, 195720, - 195724, 195728, 195732, 195736, 195740, 195744, 195748, 195752, 195756, - 195760, 195764, 195768, 195772, 195776, 195780, 195784, 195788, 195792, - 195796, 195800, 195804, 195808, 195812, 195816, 195820, 195824, 195828, - 195832, 195836, 195840, 195844, 195848, 195852, 195856, 195860, 195864, - 195868, 195872, 195876, 195880, 195884, 195888, 195892, 195897, 195902, - 195907, 195911, 195917, 195924, 195931, 195938, 195945, 195952, 195959, - 195966, 195973, 195980, 195987, 195994, 196001, 196008, 196014, 196021, - 196028, 196034, 196041, 196048, 196055, 196062, 196069, 196076, 196083, - 196090, 196097, 196104, 196111, 196118, 196125, 196131, 196137, 196143, - 196150, 196159, 196168, 196177, 196186, 196191, 196196, 196203, 196210, - 196217, 196224, 196231, 196237, 196243, 196249, 196255, 196261, 196267, - 196273, 196278, 196284, 196294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, }; /* name->code dictionary */ @@ -25364,7 +25185,7 @@ static const unsigned int code_hash[] = { 74224, 4851, 0, 0, 0, 0, 7929, 0, 0, 0, 0, 127931, 0, 42833, 983091, 12064, 110752, 129548, 194597, 69850, 65842, 0, 0, 0, 78159, 68476, 72392, 1373, 0, 0, 5816, 0, 0, 4231, 0, 0, 4233, 4234, 4232, 68885, - 70351, 0, 7404, 72393, 0, 0, 0, 0, 0, 41601, 8874, 0, 0, 0, 128498, 0, 0, + 70351, 0, 7404, 72393, 0, 0, 0, 0, 0, 41601, 8874, 0, 0, 0, 0, 0, 0, 41603, 9784, 0, 9188, 41600, 0, 0, 0, 0, 3535, 0, 0, 0, 66797, 0, 74491, 0, 3404, 100419, 0, 72411, 1759, 100417, 0, 100418, 69972, 11240, 121038, 100416, 127764, 0, 0, 0, 0, 0, 69970, 0, 0, 9834, 43249, 2234, 983891, 0, @@ -25376,103 +25197,102 @@ static const unsigned int code_hash[] = { 5194, 11657, 128353, 0, 0, 0, 0, 0, 120766, 100525, 0, 0, 74350, 0, 10682, 110820, 10602, 800, 70044, 118883, 0, 0, 64930, 118940, 67853, 72001, 0, 762, 120485, 0, 0, 0, 10906, 1353, 6960, 0, 0, 5828, 8724, 0, - 0, 118548, 0, 0, 7080, 0, 128806, 122979, 0, 72388, 0, 11859, 0, 0, - 68878, 0, 0, 0, 7240, 0, 556, 0, 118544, 0, 0, 0, 72397, 0, 0, 0, 0, 0, - 0, 0, 0, 72986, 0, 0, 43931, 0, 11093, 0, 0, 122960, 7341, 66801, 68527, - 0, 1874, 0, 0, 129314, 0, 0, 0, 0, 0, 0, 7688, 0, 0, 9036, 0, 0, 66389, - 0, 121347, 0, 0, 10100, 0, 2725, 0, 0, 43981, 42128, 0, 0, 68146, 0, 0, - 0, 0, 71349, 7859, 1945, 0, 0, 0, 65918, 7188, 9992, 0, 7389, 127008, - 71341, 0, 0, 0, 528, 129681, 44017, 11429, 71347, 0, 0, 120864, 0, 0, 0, - 11530, 73102, 6188, 0, 0, 68208, 1823, 0, 0, 92928, 0, 64843, 7233, - 92929, 0, 0, 6639, 0, 0, 123149, 0, 1176, 0, 0, 8276, 128667, 0, 0, - 68892, 42931, 0, 0, 0, 0, 0, 0, 0, 5388, 0, 0, 0, 11310, 0, 123607, 0, - 68888, 4199, 119264, 0, 119020, 0, 0, 9560, 0, 0, 43869, 0, 0, 0, 83172, - 0, 0, 0, 83173, 101559, 128875, 0, 0, 74327, 0, 0, 0, 0, 0, 123623, - 68886, 0, 0, 0, 8408, 64704, 0, 0, 0, 0, 118711, 67999, 0, 0, 0, 0, - 43049, 0, 43050, 73028, 0, 0, 0, 0, 0, 127396, 0, 69847, 9322, 0, 0, - 129321, 68192, 120507, 983634, 0, 0, 0, 6199, 67249, 0, 0, 0, 0, 11329, - 66285, 0, 983086, 0, 0, 0, 0, 41335, 118866, 43401, 0, 41334, 0, 0, 0, - 983484, 71997, 983483, 128114, 0, 42627, 0, 32, 6187, 0, 123619, 983480, - 3665, 121083, 42871, 983119, 41336, 0, 0, 983476, 0, 0, 0, 4412, 0, 0, 0, - 0, 119533, 0, 4181, 0, 0, 127589, 0, 0, 71453, 6181, 74755, 917895, 0, 0, - 0, 73557, 121107, 0, 0, 10073, 0, 100738, 127186, 0, 42844, 7498, 1098, - 92565, 119530, 0, 0, 10207, 0, 983233, 0, 983555, 0, 9234, 0, 6182, 0, - 92552, 0, 0, 0, 0, 5471, 9461, 6697, 0, 5473, 0, 0, 0, 0, 0, 0, 70073, 0, - 0, 7767, 8304, 41339, 0, 983494, 69450, 0, 0, 983492, 43855, 41337, 0, 0, - 0, 129706, 0, 0, 0, 72396, 0, 0, 0, 42633, 0, 0, 0, 0, 0, 0, 0, 70005, - 129506, 0, 0, 0, 129580, 69817, 128299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1437, - 41617, 0, 0, 0, 128853, 0, 0, 0, 0, 0, 128529, 12113, 0, 42772, 0, 0, - 7693, 10749, 67485, 65210, 5773, 978, 128134, 0, 41619, 10239, 0, 0, 0, - 74328, 0, 9748, 0, 0, 0, 0, 0, 0, 0, 70681, 0, 72811, 0, 67464, 0, 92776, - 0, 0, 2379, 11325, 0, 0, 67854, 0, 78547, 42209, 0, 120392, 2369, 0, - 984003, 984004, 0, 0, 73936, 7008, 69415, 122919, 0, 43841, 2367, 127827, - 983888, 0, 2375, 8060, 6194, 0, 0, 119084, 0, 0, 0, 0, 6961, 0, 0, 0, - 68426, 0, 42862, 0, 0, 6192, 127900, 42771, 0, 0, 11435, 128445, 118797, - 120800, 0, 12892, 0, 128621, 67149, 0, 0, 0, 0, 120707, 0, 0, 19954, 0, - 121164, 8983, 0, 0, 0, 0, 0, 6198, 121344, 0, 196, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 983512, 41323, 0, 0, 92289, 0, 0, 0, 983508, 41321, - 12907, 3048, 7752, 41320, 0, 0, 12819, 111247, 72127, 0, 0, 0, 0, 0, - 72971, 0, 0, 0, 0, 78650, 78649, 0, 41326, 0, 11806, 43167, 0, 1245, 0, - 66463, 0, 0, 0, 0, 0, 194619, 0, 194618, 0, 0, 194620, 0, 70403, 325, - 12874, 128454, 74178, 0, 0, 119110, 0, 0, 0, 0, 0, 0, 983563, 92175, 0, - 125016, 0, 121049, 0, 0, 0, 0, 0, 0, 110844, 11776, 0, 19908, 0, 0, 0, - 8753, 69278, 0, 0, 9511, 43493, 0, 93032, 6205, 0, 0, 0, 0, 0, 78928, 0, - 0, 120269, 0, 41607, 0, 0, 120617, 0, 0, 0, 7005, 41609, 9580, 0, 401, 0, - 43779, 0, 127962, 0, 65486, 0, 12857, 0, 11983, 0, 0, 0, 121371, 0, - 194971, 74258, 983647, 0, 0, 0, 0, 0, 8295, 6200, 0, 127864, 0, 0, 71435, - 0, 92523, 0, 128631, 0, 0, 125197, 0, 100426, 0, 127556, 0, 0, 0, 64775, - 0, 68862, 120590, 0, 0, 129959, 8074, 8199, 126641, 1907, 127269, 4432, - 127271, 10808, 120668, 127272, 127259, 3888, 127261, 72724, 127263, - 127262, 127265, 123169, 121195, 127250, 66879, 127252, 100422, 66023, - 67363, 7663, 0, 0, 0, 0, 66321, 0, 12814, 127248, 127169, 0, 0, 194603, - 7641, 92694, 0, 0, 0, 0, 74320, 120818, 120268, 0, 128475, 0, 110627, 0, - 9622, 128972, 120264, 0, 0, 0, 0, 68319, 0, 0, 71484, 118613, 0, 0, - 69906, 0, 0, 947, 0, 194586, 129059, 10969, 119935, 7613, 119937, 119936, - 4795, 119930, 119933, 7376, 0, 0, 0, 72343, 69373, 0, 0, 0, 119919, 7216, - 119921, 7217, 119915, 7218, 119917, 7219, 119927, 119926, 119929, 119928, - 7213, 119922, 7214, 7215, 128622, 0, 8880, 7685, 128849, 0, 0, 119618, - 119853, 8187, 119913, 12815, 7236, 7915, 71906, 0, 121284, 0, 0, 0, 0, 0, - 0, 0, 122969, 0, 0, 0, 0, 0, 10468, 0, 0, 0, 0, 0, 0, 0, 0, 917909, 0, - 110633, 1616, 3795, 67732, 11529, 0, 126225, 0, 0, 1138, 194577, 12677, - 0, 0, 3239, 0, 0, 194809, 194583, 0, 42164, 0, 11778, 67473, 43259, - 118543, 119073, 122975, 0, 0, 67094, 129638, 0, 78421, 128123, 78418, 0, - 0, 0, 0, 43959, 43960, 0, 72257, 0, 9359, 78416, 0, 0, 0, 6662, 0, 0, - 3863, 0, 41329, 55266, 0, 127822, 41328, 75026, 194569, 129516, 0, 0, - 2178, 119595, 569, 0, 0, 0, 119085, 110669, 0, 0, 11610, 11368, 0, - 194570, 41331, 1006, 127747, 120883, 1550, 8201, 0, 194811, 5499, 43956, - 77908, 77910, 77906, 43957, 77904, 77905, 128410, 0, 0, 129581, 100447, - 43955, 77913, 122989, 0, 5511, 0, 983721, 0, 69241, 8255, 5512, 128560, - 119560, 127858, 64313, 127928, 5906, 1119, 128180, 67088, 983367, 0, - 113798, 0, 66423, 0, 0, 0, 67089, 0, 0, 0, 0, 128177, 983728, 0, 0, 0, - 5821, 6186, 129960, 128034, 19961, 0, 983719, 0, 65138, 302, 41113, - 41115, 0, 6637, 5907, 128789, 0, 43642, 0, 128625, 0, 70345, 5513, 6666, - 100567, 78442, 5510, 0, 0, 0, 983725, 78437, 0, 0, 0, 110838, 0, 0, 0, - 92710, 0, 0, 0, 0, 0, 74497, 92395, 120511, 6929, 69412, 0, 110835, - 64442, 0, 0, 74496, 0, 6674, 43397, 0, 1476, 0, 0, 72276, 3233, 0, 0, - 10164, 118555, 0, 3530, 67243, 0, 111219, 6656, 0, 0, 74647, 8512, 72275, - 74261, 8967, 0, 0, 0, 72277, 7986, 73782, 120556, 9006, 983562, 72273, 0, - 7853, 0, 983360, 0, 0, 0, 0, 983971, 0, 0, 0, 0, 0, 0, 0, 0, 127971, - 67983, 13296, 517, 0, 0, 0, 41528, 19923, 65454, 73518, 0, 0, 10531, - 7784, 41526, 71727, 0, 8057, 1126, 73895, 0, 0, 130040, 119186, 4251, - 8235, 43142, 0, 489, 71733, 4250, 71731, 110721, 43151, 94177, 71725, 0, - 121238, 0, 0, 0, 110726, 0, 8711, 6183, 110722, 110723, 0, 0, 7623, 0, 0, - 9235, 12760, 74176, 0, 0, 0, 0, 3743, 11514, 11078, 74582, 0, 0, 126597, - 0, 0, 0, 0, 983907, 267, 3393, 127504, 2364, 0, 69233, 6958, 0, 6201, 0, - 42360, 0, 10652, 41612, 917802, 3402, 917801, 3398, 0, 0, 0, 3391, 70683, - 0, 92541, 128017, 126087, 126590, 0, 12767, 0, 983380, 64261, 0, 127537, - 70852, 70347, 0, 6673, 0, 0, 129346, 12438, 0, 0, 0, 71128, 0, 9053, - 43954, 74523, 0, 0, 0, 6195, 0, 6660, 0, 917760, 917793, 0, 12629, 0, 0, - 0, 0, 0, 127940, 0, 0, 0, 65448, 0, 0, 121084, 129688, 43949, 0, 78099, - 0, 983385, 0, 0, 0, 5741, 1131, 0, 0, 74862, 0, 43952, 42533, 119598, - 78107, 0, 0, 43950, 121297, 118990, 7691, 43951, 578, 0, 0, 0, 42514, - 74547, 74196, 120608, 74561, 0, 983976, 0, 0, 0, 0, 0, 0, 0, 0, 7241, 0, - 93846, 119167, 0, 12811, 78082, 3946, 0, 10998, 66807, 673, 0, 0, 0, 0, - 119301, 0, 68890, 0, 0, 78085, 10267, 0, 74560, 78083, 0, 8729, 0, 0, 0, - 0, 0, 0, 0, 119296, 0, 0, 0, 2181, 983463, 731, 0, 71904, 128316, 0, - 73539, 0, 1175, 0, 68167, 0, 0, 10793, 0, 67644, 7723, 983458, 0, 0, 0, - 0, 5273, 0, 5269, 0, 69607, 2404, 5267, 124967, 124913, 0, 5277, 0, 0, - 6189, 65469, 1314, 0, 0, 118873, 8785, 0, 0, 127527, 68414, 43535, 9204, - 0, 3879, 0, 71696, 6197, 9497, 0, 7567, 64484, 78128, 41390, 41379, + 0, 118548, 0, 0, 7080, 0, 128806, 0, 0, 72388, 0, 11859, 0, 0, 68878, 0, + 0, 0, 7240, 0, 556, 0, 118544, 0, 0, 0, 72397, 0, 0, 0, 0, 0, 0, 0, 0, + 72986, 0, 0, 43931, 0, 11093, 0, 0, 125016, 7341, 66801, 68527, 0, 1874, + 0, 0, 129314, 0, 0, 0, 0, 0, 0, 7688, 0, 0, 9036, 0, 0, 66389, 0, 121347, + 0, 0, 10100, 0, 2725, 0, 0, 43981, 42128, 0, 0, 68146, 0, 0, 0, 0, 71349, + 7859, 1945, 0, 0, 0, 65918, 7188, 9992, 0, 7389, 127008, 71341, 0, 0, 0, + 528, 129681, 44017, 11429, 71347, 0, 0, 120864, 0, 0, 0, 11530, 73102, + 6188, 0, 0, 68208, 1823, 0, 0, 92928, 0, 64843, 7233, 92929, 0, 0, 6639, + 0, 0, 123149, 0, 1176, 0, 0, 8276, 128667, 0, 0, 68892, 42931, 0, 0, 0, + 0, 0, 0, 0, 5388, 0, 0, 0, 11310, 0, 123607, 0, 68888, 4199, 119264, 0, + 119020, 0, 0, 9560, 0, 0, 43869, 0, 0, 0, 83172, 0, 0, 0, 83173, 101559, + 128875, 0, 0, 74327, 0, 0, 0, 0, 0, 123623, 68886, 0, 0, 0, 8408, 64704, + 0, 0, 0, 0, 118711, 67999, 0, 0, 0, 0, 43049, 0, 43050, 73028, 0, 0, 0, + 0, 0, 127396, 0, 69847, 9322, 0, 0, 129321, 68192, 120507, 983634, 0, 0, + 0, 6199, 67249, 0, 0, 0, 0, 11329, 66285, 0, 983086, 0, 0, 0, 0, 41335, + 118866, 43401, 0, 41334, 0, 0, 0, 983481, 71997, 983480, 128114, 0, + 42627, 0, 32, 6187, 0, 123619, 983477, 3665, 121083, 42871, 983118, + 41336, 0, 0, 983473, 0, 0, 0, 4412, 0, 0, 0, 0, 119533, 0, 4181, 0, 0, + 127589, 0, 0, 71453, 6181, 74755, 917895, 0, 0, 0, 0, 121107, 0, 0, + 10073, 0, 100738, 127186, 0, 42844, 7498, 1098, 92565, 119530, 0, 0, + 10207, 0, 983230, 0, 983555, 0, 9234, 0, 6182, 0, 92552, 0, 0, 0, 0, + 5471, 9461, 6697, 0, 5473, 0, 0, 0, 0, 0, 0, 70073, 0, 0, 7767, 8304, + 41339, 0, 983491, 69450, 0, 0, 983489, 43855, 41337, 0, 0, 0, 129706, 0, + 0, 0, 72396, 0, 0, 0, 42633, 0, 0, 0, 0, 0, 0, 0, 70005, 129506, 0, 0, 0, + 129580, 69817, 128299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1437, 41617, 0, 0, 0, + 128853, 0, 0, 0, 0, 0, 128529, 12113, 0, 42772, 0, 0, 7693, 10749, 67485, + 65210, 5773, 978, 128134, 0, 41619, 10239, 0, 0, 0, 74328, 0, 9748, 0, 0, + 0, 0, 0, 0, 0, 70681, 0, 72811, 0, 67464, 0, 92776, 0, 0, 2379, 11325, 0, + 0, 67854, 0, 78547, 42209, 0, 120392, 2369, 0, 984003, 984004, 0, 0, + 73936, 7008, 69415, 122919, 0, 43841, 2367, 127827, 983888, 0, 2375, + 8060, 6194, 0, 0, 119084, 0, 0, 0, 0, 6961, 0, 0, 0, 68426, 0, 42862, 0, + 0, 6192, 127900, 42771, 0, 0, 11435, 128445, 118797, 120800, 0, 12892, 0, + 128621, 67149, 0, 0, 0, 0, 120707, 0, 0, 19954, 0, 121164, 8983, 0, 0, 0, + 0, 0, 6198, 121344, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 983509, 41323, 0, 0, 92289, 0, 0, 0, 983505, 41321, 12907, 3048, 7752, + 41320, 0, 0, 12819, 111247, 72127, 0, 0, 0, 0, 0, 72971, 0, 0, 0, 0, + 78650, 78649, 0, 41326, 0, 11806, 43167, 0, 1245, 0, 66463, 0, 0, 0, 0, + 0, 194619, 0, 194618, 0, 0, 194620, 0, 70403, 325, 12874, 128454, 74178, + 0, 0, 119110, 0, 0, 0, 0, 0, 0, 983563, 92175, 0, 0, 0, 121049, 0, 0, 0, + 0, 0, 0, 110844, 11776, 0, 19908, 0, 0, 0, 8753, 69278, 0, 0, 9511, + 43493, 0, 93032, 6205, 0, 0, 0, 0, 0, 0, 0, 0, 120269, 0, 41607, 0, 0, + 120617, 0, 0, 0, 7005, 41609, 9580, 0, 401, 0, 43779, 0, 127962, 0, + 65486, 0, 12857, 0, 11983, 0, 0, 0, 121371, 0, 194971, 74258, 983647, 0, + 0, 0, 0, 0, 8295, 6200, 0, 127864, 0, 0, 71435, 0, 92523, 0, 128631, 0, + 0, 125197, 0, 0, 0, 127556, 0, 0, 0, 64775, 0, 68862, 120590, 0, 0, + 129959, 8074, 8199, 126641, 1907, 127269, 4432, 127271, 10808, 120668, + 127272, 127259, 3888, 127261, 72724, 127263, 127262, 127265, 123169, + 121195, 127250, 66879, 127252, 100422, 66023, 67363, 7663, 0, 0, 0, 0, + 66321, 0, 12814, 127248, 127169, 0, 0, 194603, 7641, 92694, 0, 0, 0, 0, + 74320, 120818, 120268, 0, 128475, 0, 110627, 0, 9622, 128972, 120264, 0, + 0, 0, 0, 68319, 0, 0, 71484, 118613, 0, 0, 69906, 0, 0, 947, 0, 194586, + 129059, 10969, 119935, 7613, 119937, 119936, 4795, 119930, 119933, 7376, + 0, 0, 0, 72343, 0, 0, 0, 0, 119919, 7216, 119921, 7217, 119915, 7218, + 119917, 7219, 119927, 119926, 119929, 119928, 7213, 119922, 7214, 7215, + 128622, 0, 8880, 7685, 128849, 0, 0, 119618, 119853, 8187, 119913, 12815, + 7236, 7915, 71906, 0, 121284, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10468, 0, 0, 0, 0, 0, 0, 0, 0, 917909, 0, 110633, 1616, 3795, 67732, + 11529, 0, 126225, 0, 0, 1138, 194577, 12677, 0, 0, 3239, 0, 0, 194809, + 194583, 0, 42164, 0, 11778, 67473, 43259, 118543, 119073, 0, 0, 0, 67094, + 129638, 0, 78421, 128123, 78418, 0, 0, 0, 0, 43959, 43960, 0, 72257, 0, + 9359, 78416, 0, 0, 0, 6662, 0, 0, 3863, 0, 41329, 55266, 0, 127822, + 41328, 75026, 194569, 129516, 0, 0, 2178, 119595, 569, 0, 0, 0, 119085, + 110669, 0, 0, 11610, 11368, 0, 194570, 41331, 1006, 127747, 120883, 1550, + 8201, 0, 194811, 5499, 43956, 77908, 77910, 77906, 43957, 77904, 77905, + 128410, 0, 0, 129581, 100447, 43955, 77913, 0, 0, 5511, 0, 983721, 0, + 69241, 8255, 5512, 128560, 119560, 127858, 64313, 127928, 5906, 1119, + 128180, 67088, 983364, 0, 113798, 0, 66423, 0, 0, 0, 67089, 0, 0, 0, 0, + 128177, 983728, 0, 0, 0, 5821, 6186, 129960, 128034, 19961, 0, 983719, 0, + 65138, 302, 41113, 41115, 0, 6637, 5907, 128789, 0, 43642, 0, 128625, 0, + 70345, 5513, 6666, 100567, 78442, 5510, 0, 0, 0, 983725, 78437, 0, 0, 0, + 110838, 0, 0, 0, 92710, 0, 0, 0, 0, 0, 74497, 92395, 120511, 6929, 69412, + 0, 110835, 64442, 0, 0, 74496, 0, 6674, 43397, 0, 1476, 0, 0, 72276, + 3233, 0, 0, 10164, 118555, 0, 3530, 67243, 0, 111219, 6656, 0, 0, 74647, + 8512, 72275, 74261, 8967, 0, 0, 0, 72277, 7986, 73782, 120556, 9006, + 983562, 72273, 0, 7853, 0, 983357, 0, 0, 0, 0, 983971, 0, 0, 0, 0, 0, 0, + 0, 0, 127971, 67983, 13296, 517, 0, 0, 0, 41528, 19923, 65454, 0, 0, 0, + 10531, 7784, 41526, 71727, 0, 8057, 1126, 73895, 0, 0, 130040, 119186, + 4251, 8235, 43142, 0, 489, 71733, 4250, 71731, 110721, 43151, 94177, + 71725, 0, 121238, 0, 0, 0, 110726, 0, 8711, 6183, 110722, 110723, 0, 0, + 7623, 0, 0, 9235, 12760, 74176, 0, 0, 0, 0, 3743, 11514, 11078, 74582, 0, + 0, 126597, 0, 0, 0, 0, 983907, 267, 3393, 127504, 2364, 0, 69233, 6958, + 0, 6201, 0, 42360, 0, 10652, 41612, 917802, 3402, 917801, 3398, 0, 0, 0, + 3391, 70683, 0, 92541, 128017, 126087, 126590, 0, 12767, 0, 983377, + 64261, 0, 127537, 70852, 70347, 0, 6673, 0, 0, 129346, 12438, 0, 0, 0, + 71128, 0, 9053, 43954, 74523, 0, 0, 0, 6195, 0, 6660, 0, 917760, 917793, + 0, 12629, 0, 0, 0, 0, 0, 127940, 0, 0, 0, 65448, 0, 0, 121084, 129688, + 43949, 0, 78099, 0, 983382, 0, 0, 0, 5741, 1131, 0, 0, 74862, 0, 43952, + 42533, 119598, 78107, 0, 0, 43950, 121297, 118990, 7691, 43951, 578, 0, + 0, 0, 42514, 74547, 74196, 120608, 74561, 0, 983976, 0, 0, 0, 0, 0, 0, 0, + 0, 7241, 0, 93846, 119167, 0, 12811, 78082, 3946, 0, 10998, 66807, 673, + 0, 0, 0, 0, 119301, 0, 68890, 0, 0, 78085, 10267, 0, 74560, 78083, 0, + 8729, 0, 0, 0, 0, 0, 0, 0, 119296, 0, 0, 0, 2181, 983460, 731, 0, 71904, + 128316, 0, 0, 0, 1175, 0, 68167, 0, 0, 10793, 0, 67644, 7723, 983455, 0, + 0, 0, 0, 5273, 0, 5269, 0, 69607, 2404, 5267, 124967, 124913, 0, 5277, 0, + 0, 6189, 65469, 1314, 0, 0, 118873, 8785, 0, 0, 127527, 68414, 43535, + 9204, 0, 3879, 0, 71696, 6197, 9497, 0, 7567, 64484, 78128, 41390, 41379, 41882, 67647, 67279, 70085, 0, 121413, 41388, 64446, 41392, 64288, 41387, 0, 8706, 10675, 0, 700, 0, 5775, 0, 7088, 74756, 7499, 0, 78120, 78111, 67251, 126557, 0, 0, 128945, 10311, 78115, 6665, 11115, 0, 7618, 10821, @@ -25484,17 +25304,17 @@ static const unsigned int code_hash[] = { 42087, 3063, 0, 0, 7838, 0, 129282, 0, 0, 67968, 0, 128582, 9078, 92446, 0, 0, 0, 0, 0, 0, 119586, 0, 7750, 128422, 68237, 6190, 0, 0, 0, 72340, 9857, 7014, 9856, 0, 92620, 120547, 0, 8481, 0, 6202, 0, 10920, 67970, 0, - 0, 983297, 0, 7843, 65818, 66824, 0, 73481, 0, 0, 0, 0, 0, 6657, 207, 0, + 0, 983294, 0, 7843, 65818, 66824, 0, 0, 0, 0, 0, 0, 0, 6657, 207, 0, 69728, 74819, 0, 0, 0, 0, 0, 0, 0, 0, 41368, 43974, 488, 0, 0, 71339, 10157, 118700, 43034, 11982, 0, 0, 0, 0, 0, 41372, 6669, 8504, 72103, 0, 41367, 129328, 119272, 0, 11726, 8261, 129793, 304, 129799, 129795, - 129822, 129807, 113683, 983239, 238, 74522, 0, 0, 19905, 120577, 122968, - 129200, 41044, 67640, 67302, 64814, 9912, 65939, 983470, 0, 0, 0, 917925, + 129822, 129807, 113683, 983236, 238, 74522, 0, 0, 19905, 120577, 983471, + 129200, 41044, 67640, 67302, 64814, 9912, 65939, 983467, 0, 0, 0, 917925, 0, 0, 309, 6622, 0, 10858, 0, 67636, 0, 72749, 0, 0, 0, 67637, 123138, 9712, 68680, 43970, 0, 65165, 93047, 983831, 0, 0, 0, 0, 0, 6191, 12944, 0, 0, 67634, 43763, 0, 0, 67635, 9370, 41381, 0, 0, 123148, 118817, 0, - 3222, 121439, 0, 0, 66663, 0, 0, 0, 0, 0, 65732, 121144, 0, 983219, 0, 0, - 67309, 72192, 41383, 64568, 0, 0, 0, 0, 984009, 66725, 0, 0, 0, 0, 73766, + 3222, 121439, 0, 0, 66663, 0, 0, 0, 0, 0, 65732, 121144, 0, 983217, 0, 0, + 67309, 72192, 41383, 64568, 0, 0, 0, 0, 984009, 66725, 0, 0, 0, 0, 0, 67306, 3632, 128246, 0, 8376, 3648, 0, 74844, 67639, 3636, 0, 3650, 8837, 0, 0, 0, 43250, 41562, 0, 0, 68839, 3640, 127190, 0, 11781, 0, 0, 0, 0, 129659, 0, 126649, 0, 42080, 2529, 0, 78004, 0, 42083, 0, 0, 120531, @@ -25507,97 +25327,97 @@ static const unsigned int code_hash[] = { 12753, 0, 983753, 67626, 67722, 0, 0, 0, 0, 12751, 74906, 8542, 0, 0, 3626, 66706, 0, 0, 3883, 64388, 0, 0, 0, 0, 0, 0, 126268, 67624, 0, 10932, 0, 65585, 64338, 806, 0, 41884, 110845, 1318, 128828, 0, 0, 0, - 983808, 3465, 2405, 983395, 0, 12756, 65259, 69381, 983812, 12752, 5833, + 983808, 3465, 2405, 983392, 0, 12756, 65259, 69381, 983812, 12752, 5833, 1432, 110843, 41883, 110841, 9799, 0, 41886, 0, 0, 2062, 0, 0, 0, 0, - 129376, 0, 124969, 983392, 0, 120971, 0, 118832, 0, 983286, 0, 68005, + 129376, 0, 124969, 983389, 0, 120971, 0, 118832, 0, 983283, 0, 68005, 10622, 0, 0, 0, 6566, 71195, 0, 73780, 0, 68865, 0, 0, 0, 8284, 0, 0, 0, - 0, 0, 43023, 0, 983290, 6642, 3977, 72743, 64729, 836, 983386, 92947, 0, + 0, 0, 43023, 0, 983287, 6642, 3977, 72743, 64729, 836, 983383, 92947, 0, 0, 0, 0, 0, 0, 125239, 917923, 0, 0, 0, 0, 0, 0, 1374, 65149, 119014, 67720, 0, 2273, 0, 0, 0, 11234, 0, 0, 9630, 12597, 0, 0, 0, 6661, 0, 113751, 120551, 125015, 0, 0, 72151, 0, 73674, 7718, 113755, 0, 69570, 0, - 0, 983777, 0, 0, 0, 127841, 6365, 1887, 983414, 0, 8080, 113681, 0, 0, 0, - 129855, 1544, 0, 0, 64677, 0, 0, 0, 0, 73561, 0, 0, 12812, 7342, 0, + 0, 983777, 0, 0, 0, 127841, 6365, 1887, 983411, 0, 8080, 113681, 0, 0, 0, + 129855, 1544, 0, 0, 64677, 0, 0, 0, 0, 119019, 0, 0, 12812, 7342, 0, 73784, 66947, 7904, 0, 0, 120910, 0, 0, 0, 0, 9724, 0, 983804, 9524, 0, - 0, 0, 0, 0, 129344, 0, 471, 0, 0, 128302, 72450, 0, 0, 983769, 0, 0, - 6918, 118685, 0, 5156, 0, 128683, 10232, 10615, 10213, 0, 0, 42528, 0, 0, - 0, 0, 65311, 74935, 0, 13306, 10533, 7870, 0, 7625, 0, 120544, 0, 0, - 128816, 126098, 118870, 0, 92819, 0, 0, 92341, 0, 12978, 128533, 0, 0, - 43836, 42675, 0, 12845, 0, 19942, 0, 0, 0, 0, 0, 120000, 120008, 120001, - 0, 194894, 983746, 0, 0, 0, 7186, 73107, 0, 70093, 445, 119028, 0, 0, 0, - 73047, 0, 0, 128442, 0, 0, 0, 3902, 68913, 129916, 0, 0, 1560, 43958, 0, - 4584, 0, 67862, 0, 10866, 92905, 1118, 92209, 74888, 0, 1081, 7436, - 11147, 7252, 0, 121188, 0, 0, 0, 41386, 5162, 129823, 1330, 0, 121270, 0, - 12047, 7675, 0, 0, 1848, 74528, 983148, 64708, 0, 0, 194880, 0, 0, 0, - 983772, 12715, 128349, 0, 101402, 0, 66672, 73710, 66685, 0, 0, 92464, 0, - 68884, 0, 72835, 123546, 70800, 70101, 120725, 0, 194893, 9214, 43494, 0, - 0, 120841, 0, 0, 6313, 65513, 119355, 0, 0, 0, 2345, 72975, 0, 0, 129937, - 0, 3117, 0, 71882, 0, 73100, 0, 0, 0, 0, 78415, 983236, 100907, 0, 13248, - 0, 120241, 129416, 128415, 0, 94193, 12382, 71120, 0, 0, 0, 0, 1471, 0, + 0, 0, 0, 0, 129344, 0, 471, 0, 0, 128302, 0, 0, 0, 983769, 0, 0, 6918, + 118685, 0, 5156, 0, 128683, 10232, 10615, 10213, 0, 0, 42528, 0, 0, 0, 0, + 65311, 74935, 0, 13306, 10533, 7870, 0, 7625, 0, 120544, 0, 0, 128816, + 126098, 118870, 0, 92819, 0, 0, 92341, 0, 12978, 128533, 0, 0, 43836, + 42675, 0, 12845, 0, 19942, 0, 0, 0, 0, 0, 120000, 120008, 120001, 0, + 194894, 0, 0, 0, 0, 7186, 73107, 0, 70093, 445, 119028, 0, 0, 0, 73047, + 0, 0, 128442, 0, 0, 0, 3902, 68913, 129916, 0, 0, 1560, 43958, 0, 4584, + 0, 67862, 0, 10866, 92905, 1118, 92209, 74888, 0, 1081, 7436, 11147, + 7252, 0, 121188, 0, 0, 0, 41386, 5162, 129823, 1330, 0, 121270, 0, 12047, + 7675, 0, 0, 1848, 74528, 983147, 64708, 0, 0, 194880, 0, 0, 0, 983772, + 12715, 128349, 0, 0, 0, 66672, 73710, 66685, 0, 0, 92464, 0, 68884, 0, + 72835, 123546, 70800, 70101, 120725, 0, 194893, 9214, 43494, 0, 0, + 120841, 0, 0, 6313, 65513, 119355, 0, 0, 0, 2345, 72975, 0, 0, 129937, 0, + 3117, 0, 71882, 0, 73100, 0, 0, 0, 0, 78415, 983233, 100907, 0, 13248, 0, + 120241, 129416, 128415, 0, 94193, 12382, 71120, 0, 0, 0, 0, 1471, 0, 113747, 0, 12378, 0, 69664, 0, 12374, 121357, 0, 0, 0, 0, 0, 0, 12376, 0, 0, 0, 12380, 10557, 0, 12520, 11122, 2024, 127180, 0, 0, 74588, 0, 0, 70120, 3853, 0, 0, 0, 983763, 0, 0, 12090, 0, 12474, 92579, 9503, 0, 0, - 73505, 68318, 0, 110834, 0, 0, 0, 12470, 0, 74189, 2742, 12476, 66370, - 10946, 0, 12472, 0, 0, 0, 0, 8213, 43824, 7771, 6161, 983280, 68010, 0, + 983273, 68318, 0, 110834, 0, 0, 0, 12470, 0, 74189, 2742, 12476, 66370, + 10946, 0, 12472, 0, 0, 0, 0, 8213, 43824, 7771, 6161, 983277, 68010, 0, 0, 0, 68235, 0, 0, 0, 120985, 0, 0, 0, 129814, 73791, 129830, 68871, 0, 0, 0, 0, 0, 73704, 12015, 128561, 8275, 0, 43459, 120927, 127555, 0, 0, 0, 68881, 71215, 983642, 118841, 0, 12516, 4444, 0, 119017, 120506, 10892, 118828, 0, 6473, 0, 0, 71735, 3591, 0, 0, 0, 0, 72345, 0, 0, 0, - 127547, 0, 0, 0, 0, 128253, 0, 0, 0, 0, 94060, 687, 0, 0, 983404, 0, 0, + 127547, 0, 0, 0, 0, 128253, 0, 0, 0, 0, 94060, 687, 0, 0, 983401, 0, 0, 43882, 0, 128526, 285, 0, 0, 0, 4459, 0, 0, 74917, 0, 0, 126255, 0, 119248, 0, 9743, 0, 0, 126535, 0, 0, 73104, 0, 69659, 0, 0, 3081, 74577, 42921, 0, 0, 0, 0, 0, 0, 0, 9125, 119023, 0, 120820, 0, 65221, 0, 0, 64852, 0, 0, 0, 0, 66578, 5001, 41879, 0, 0, 5003, 884, 0, 0, 4943, 5150, - 73889, 74182, 0, 41876, 0, 78915, 42448, 42299, 72804, 0, 0, 0, 0, 8491, - 0, 0, 983635, 4530, 42409, 7126, 119526, 66200, 0, 118559, 19929, 0, 0, - 0, 4242, 0, 0, 0, 0, 66034, 65941, 124929, 64522, 10740, 8958, 128257, - 9754, 119102, 983251, 74222, 983249, 983248, 119064, 983246, 983245, 0, - 0, 0, 74518, 66026, 4306, 41468, 68432, 0, 0, 66667, 0, 0, 983499, 42200, - 0, 0, 0, 120236, 6948, 0, 8524, 0, 0, 12385, 0, 74926, 0, 1386, 73996, 0, - 0, 0, 121184, 12392, 0, 8064, 0, 0, 78216, 119004, 2080, 710, 128491, - 12390, 1666, 42091, 0, 12383, 92968, 42092, 68418, 0, 128106, 0, 0, - 42096, 0, 3362, 12377, 127878, 0, 0, 0, 0, 1244, 4401, 73786, 12683, - 10662, 0, 8112, 129837, 119021, 121017, 12379, 73108, 120534, 0, 42208, - 0, 12381, 0, 0, 0, 4327, 0, 0, 128350, 0, 78232, 0, 584, 12933, 0, 12373, - 73105, 13000, 0, 2935, 129113, 12665, 0, 43081, 73098, 120505, 12427, 0, - 983625, 78227, 0, 0, 0, 0, 128760, 74551, 0, 0, 12426, 0, 73497, 0, - 12428, 0, 0, 0, 0, 0, 12429, 6727, 0, 0, 0, 3387, 0, 0, 0, 0, 0, 0, - 73517, 0, 3536, 120589, 9752, 92397, 6162, 0, 0, 10113, 0, 0, 0, 12422, - 0, 439, 3072, 0, 42207, 74549, 120830, 0, 0, 0, 0, 8308, 0, 70807, 0, 0, - 0, 13218, 0, 0, 8082, 12424, 0, 6819, 3539, 93838, 0, 0, 74539, 0, 68181, - 0, 72964, 0, 72969, 12420, 11371, 0, 4600, 0, 127810, 0, 0, 0, 72962, - 128552, 6704, 4591, 72966, 0, 0, 0, 72960, 120623, 561, 12159, 78223, 0, - 78224, 0, 71068, 11932, 7172, 42687, 8368, 0, 0, 93068, 0, 0, 75010, 0, - 0, 0, 0, 42463, 0, 2924, 67183, 0, 129947, 0, 128958, 0, 0, 42330, 73079, - 3969, 0, 129973, 7169, 1992, 9652, 0, 0, 42086, 0, 100865, 0, 0, 0, 0, 0, - 327, 0, 0, 0, 0, 73509, 12433, 0, 0, 118570, 12431, 0, 12434, 983439, 0, - 73544, 0, 7712, 12432, 0, 69377, 129147, 100867, 0, 8212, 0, 128014, 0, - 119066, 7333, 0, 0, 0, 67407, 70006, 128461, 0, 12436, 0, 43160, 0, - 74896, 92757, 71360, 42350, 0, 0, 0, 100566, 0, 11348, 0, 0, 9194, - 983185, 0, 55250, 0, 100569, 0, 0, 0, 0, 0, 64746, 66012, 100565, 3444, - 75029, 64651, 0, 41503, 0, 0, 0, 0, 0, 0, 0, 120876, 0, 0, 129408, 65309, - 12416, 0, 0, 0, 0, 93024, 12418, 74111, 121046, 0, 0, 0, 119361, 0, 4596, - 66339, 12417, 66001, 0, 126491, 12414, 8287, 0, 69499, 0, 1143, 0, 0, - 12415, 0, 0, 983247, 0, 9021, 120783, 0, 11724, 0, 0, 0, 194794, 0, 0, - 8027, 194796, 74257, 127375, 11400, 74197, 194799, 66833, 194798, 0, 0, - 983252, 0, 0, 1324, 0, 0, 0, 194878, 7715, 0, 0, 194777, 194780, 0, 0, 0, - 194787, 0, 0, 0, 0, 0, 66289, 127109, 3889, 129561, 194800, 0, 0, 0, 0, - 121226, 12999, 0, 120902, 0, 0, 0, 0, 0, 64802, 42210, 4597, 983134, 0, - 0, 12371, 67164, 0, 67163, 10805, 0, 0, 0, 0, 118662, 12367, 0, 0, 92557, - 12363, 0, 0, 128611, 983645, 0, 0, 8005, 12365, 0, 0, 3756, 12369, 10649, - 0, 70095, 0, 0, 0, 42923, 0, 0, 0, 0, 0, 0, 66659, 0, 0, 0, 0, 5268, - 4954, 0, 0, 5266, 126980, 5272, 92294, 0, 42230, 983980, 0, 9128, 0, 0, - 0, 0, 6928, 9803, 42282, 9110, 1505, 0, 0, 5276, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 8722, 120805, 0, 0, 66695, 0, 0, 4383, 8900, 0, 0, 74930, 64297, 0, 0, - 0, 0, 3419, 42229, 0, 0, 8911, 0, 42353, 0, 0, 0, 0, 0, 0, 0, 100629, - 41576, 42215, 122888, 0, 0, 8578, 68178, 7573, 41575, 74789, 92310, 0, - 73863, 0, 2670, 0, 0, 11723, 0, 0, 0, 0, 0, 43414, 0, 0, 65675, 0, 67179, - 67168, 12413, 129746, 67177, 0, 0, 0, 0, 12302, 0, 5250, 12407, 12245, - 4404, 9189, 12401, 42007, 0, 42005, 65806, 43997, 122922, 42002, 12404, - 0, 74928, 4940, 12410, 0, 128761, 0, 64567, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 11956, 0, 0, 122882, 0, 6631, 128923, 120704, 74583, 42218, 0, 0, 70094, - 0, 0, 0, 71058, 0, 0, 0, 127341, 0, 0, 0, 0, 0, 43370, 0, 5016, 121052, - 0, 0, 9491, 0, 0, 0, 0, 64922, 0, 0, 0, 0, 92198, 0, 118622, 0, 74619, 0, - 0, 70422, 983688, 10565, 0, 12177, 0, 0, 0, 0, 0, 12395, 127874, 12878, + 73889, 74182, 0, 41876, 0, 0, 42448, 42299, 72804, 0, 0, 0, 0, 8491, 0, + 0, 983635, 4530, 42409, 7126, 119526, 66200, 0, 118559, 19929, 0, 0, 0, + 4242, 0, 0, 0, 0, 66034, 65941, 124929, 64522, 10740, 8958, 128257, 9754, + 119102, 983248, 74222, 983246, 983245, 119064, 983243, 983242, 0, 0, 0, + 74518, 66026, 4306, 41468, 68432, 0, 0, 66667, 0, 0, 983496, 42200, 0, 0, + 0, 120236, 6948, 0, 8524, 0, 0, 12385, 0, 74926, 0, 1386, 73996, 0, 0, 0, + 121184, 12392, 0, 8064, 0, 0, 78216, 119004, 2080, 710, 128491, 12390, + 1666, 42091, 0, 12383, 92968, 42092, 68418, 0, 128106, 0, 0, 42096, 0, + 3362, 12377, 127878, 0, 0, 0, 0, 1244, 4401, 73786, 12683, 10662, 0, + 8112, 129837, 119021, 121017, 12379, 73108, 120534, 0, 42208, 0, 12381, + 0, 0, 0, 4327, 0, 0, 128350, 0, 78232, 0, 584, 12933, 0, 12373, 73105, + 13000, 0, 2935, 129113, 12665, 0, 43081, 73098, 120505, 12427, 0, 983625, + 78227, 0, 0, 0, 0, 128760, 74551, 0, 0, 12426, 0, 0, 0, 12428, 0, 0, 0, + 0, 0, 12429, 6727, 0, 0, 0, 3387, 0, 0, 0, 0, 0, 0, 74427, 0, 3536, + 120589, 9752, 92397, 6162, 0, 0, 10113, 0, 0, 0, 12422, 0, 439, 3072, 0, + 42207, 74549, 120830, 0, 0, 0, 0, 8308, 0, 70807, 0, 0, 0, 13218, 0, 0, + 8082, 12424, 0, 6819, 3539, 93838, 0, 0, 74539, 0, 68181, 0, 72964, 0, + 72969, 12420, 11371, 0, 4600, 0, 127810, 0, 0, 0, 72962, 128552, 6704, + 4591, 72966, 0, 0, 0, 72960, 120623, 561, 12159, 78223, 0, 78224, 0, + 71068, 11932, 7172, 42687, 8368, 0, 0, 93068, 0, 0, 75010, 0, 0, 0, 0, + 42463, 0, 2924, 67183, 0, 129947, 0, 128958, 0, 0, 42330, 73079, 3969, 0, + 129973, 7169, 1992, 9652, 0, 0, 42086, 0, 100865, 0, 0, 0, 0, 0, 327, 0, + 0, 0, 0, 0, 12433, 0, 0, 118570, 12431, 0, 12434, 983436, 0, 0, 0, 7712, + 12432, 0, 69377, 129147, 100867, 0, 8212, 0, 128014, 0, 119066, 7333, 0, + 0, 0, 67407, 70006, 128461, 0, 12436, 0, 43160, 0, 74896, 92757, 71360, + 42350, 0, 0, 0, 100566, 0, 11348, 0, 0, 9194, 983184, 0, 55250, 0, + 100569, 0, 0, 0, 0, 0, 64746, 66012, 100565, 3444, 75029, 64651, 0, + 41503, 0, 0, 0, 0, 0, 0, 0, 120876, 0, 0, 129408, 65309, 12416, 0, 0, 0, + 0, 93024, 12418, 74111, 121046, 0, 0, 0, 119361, 0, 4596, 66339, 12417, + 66001, 0, 126491, 12414, 8287, 0, 69499, 0, 1143, 0, 0, 12415, 0, 0, + 983244, 0, 9021, 120783, 0, 11724, 0, 0, 0, 194794, 0, 0, 8027, 194796, + 74257, 127375, 11400, 74197, 194799, 66833, 194798, 0, 0, 983249, 0, 0, + 1324, 0, 0, 0, 194878, 7715, 0, 0, 194777, 194780, 0, 0, 0, 194787, 0, 0, + 0, 0, 0, 66289, 127109, 3889, 129561, 194800, 0, 0, 0, 0, 121226, 12999, + 0, 120902, 0, 0, 0, 0, 0, 64802, 42210, 4597, 983133, 0, 0, 12371, 67164, + 0, 67163, 10805, 0, 0, 0, 0, 118662, 12367, 0, 0, 92557, 12363, 0, 0, + 128611, 983645, 0, 0, 8005, 12365, 0, 0, 3756, 12369, 10649, 0, 70095, 0, + 0, 0, 42923, 0, 0, 0, 0, 0, 0, 66659, 0, 0, 0, 0, 5268, 4954, 0, 0, 5266, + 126980, 5272, 92294, 0, 42230, 983980, 0, 9128, 0, 0, 0, 0, 6928, 9803, + 42282, 9110, 1505, 0, 0, 5276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8722, 120805, + 0, 0, 66695, 0, 0, 4383, 8900, 0, 0, 74930, 64297, 0, 0, 0, 0, 3419, + 42229, 0, 0, 8911, 0, 42353, 0, 0, 0, 0, 0, 0, 0, 100629, 41576, 42215, + 122888, 0, 0, 8578, 68178, 7573, 41575, 74789, 92310, 0, 73863, 0, 2670, + 0, 0, 11723, 0, 0, 0, 0, 0, 43414, 0, 0, 65675, 0, 67179, 67168, 12413, + 129746, 67177, 0, 0, 0, 0, 12302, 0, 5250, 12407, 12245, 4404, 9189, + 12401, 42007, 0, 42005, 65806, 43997, 122922, 42002, 12404, 0, 74928, + 4940, 12410, 0, 128761, 0, 64567, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11956, 0, + 0, 122882, 0, 6631, 128923, 120704, 74583, 42218, 0, 0, 70094, 0, 0, 0, + 71058, 0, 0, 0, 127341, 0, 0, 0, 0, 0, 43370, 0, 5016, 121052, 0, 0, + 9491, 0, 0, 0, 0, 64922, 0, 0, 0, 0, 92198, 0, 118622, 0, 74619, 0, 0, + 70422, 983688, 10565, 0, 12177, 0, 0, 0, 0, 0, 12395, 127874, 12878, 92630, 12396, 0, 0, 92537, 0, 43113, 0, 0, 0, 9781, 0, 4927, 0, 0, 0, 0, 12397, 129089, 128910, 0, 12394, 0, 0, 0, 0, 0, 72789, 10781, 1546, 0, 5010, 0, 10507, 127891, 128291, 0, 0, 0, 0, 7267, 0, 0, 0, 0, 2819, 0, 0, @@ -25644,10 +25464,10 @@ static const unsigned int code_hash[] = { 67600, 67477, 0, 127293, 8575, 127295, 127296, 127289, 127290, 127291, 127292, 127285, 127286, 127287, 118877, 127281, 127282, 9460, 823, 11587, 0, 0, 0, 127305, 12387, 0, 0, 127301, 126979, 42783, 69998, 64208, - 127298, 127299, 66031, 0, 11606, 64784, 0, 69973, 0, 124149, 0, 5152, - 11048, 0, 120121, 67605, 0, 69604, 0, 70276, 194847, 0, 127052, 42587, - 42214, 41394, 0, 4763, 0, 118935, 0, 5260, 0, 94038, 326, 120131, 74119, - 0, 10771, 42198, 194920, 194835, 194925, 41398, 127079, 41393, 127077, + 127298, 127299, 66031, 0, 11606, 64784, 0, 69973, 0, 0, 0, 5152, 11048, + 0, 120121, 67605, 0, 69604, 0, 70276, 194847, 0, 127052, 42587, 42214, + 41394, 0, 4763, 0, 118935, 0, 5260, 0, 94038, 326, 120131, 74119, 0, + 10771, 42198, 194920, 194835, 194925, 41398, 127079, 41393, 127077, 127076, 453, 41396, 0, 13159, 11227, 9572, 0, 0, 194576, 128835, 127081, 0, 126617, 43144, 0, 72972, 194887, 0, 0, 0, 0, 0, 64061, 0, 0, 64056, 70310, 0, 0, 0, 66971, 0, 111084, 64301, 72998, 10464, 0, 128393, 72847, @@ -25661,7 +25481,7 @@ static const unsigned int code_hash[] = { 194829, 1833, 11576, 74334, 0, 0, 42854, 69438, 0, 70307, 0, 194856, 8085, 0, 194850, 0, 72996, 128778, 1949, 11614, 7847, 120489, 120997, 64483, 0, 0, 0, 122639, 0, 0, 0, 126651, 42864, 0, 64667, 74624, 0, 0, - 43261, 11484, 127535, 67840, 0, 0, 128965, 0, 72974, 0, 72456, 8995, + 43261, 11484, 127535, 67840, 0, 0, 128965, 0, 72974, 0, 110928, 8995, 3455, 0, 0, 9879, 0, 0, 4158, 128050, 0, 0, 110929, 0, 0, 0, 332, 118808, 0, 0, 2407, 0, 42199, 92386, 110865, 0, 77921, 55217, 123161, 125199, 70043, 0, 0, 0, 121093, 1834, 0, 0, 71315, 0, 65249, 0, 8662, 0, 0, @@ -25670,12 +25490,12 @@ static const unsigned int code_hash[] = { 1620, 0, 3601, 0, 0, 67246, 609, 11555, 0, 12496, 0, 74181, 120492, 12505, 0, 194902, 0, 43567, 239, 0, 127085, 0, 0, 42671, 0, 0, 83095, 43565, 127082, 983955, 12696, 127753, 0, 94062, 12929, 0, 712, 0, 4197, - 0, 42818, 0, 70306, 0, 0, 983824, 0, 43562, 0, 119506, 68076, 0, 111074, + 0, 42818, 0, 70306, 0, 0, 983824, 0, 43562, 0, 129034, 68076, 0, 111074, 64628, 0, 0, 0, 0, 7494, 0, 4924, 0, 0, 0, 0, 72368, 0, 127087, 69987, - 64796, 0, 0, 12033, 119492, 0, 72370, 0, 0, 0, 0, 70299, 0, 0, 68324, - 72420, 0, 0, 0, 0, 70309, 127000, 0, 0, 0, 72418, 72963, 0, 5699, 0, - 983898, 9488, 74410, 119112, 70477, 11170, 0, 0, 72312, 0, 5265, 0, 0, 0, - 0, 12464, 0, 43264, 72977, 0, 43345, 120853, 0, 120592, 6807, 0, 9829, + 64796, 0, 0, 12033, 0, 0, 72370, 0, 0, 0, 0, 70299, 0, 0, 68324, 72420, + 0, 0, 0, 0, 70309, 127000, 0, 0, 0, 72418, 72963, 0, 5699, 0, 983898, + 9488, 74410, 119112, 70477, 11170, 0, 0, 72312, 0, 5265, 0, 0, 0, 0, + 12464, 0, 43264, 72977, 0, 43345, 120853, 0, 120592, 6807, 0, 9829, 69997, 0, 0, 43346, 11393, 795, 0, 72412, 12462, 72416, 72415, 0, 0, 64362, 0, 0, 120811, 0, 12468, 8607, 1008, 0, 120670, 0, 0, 67855, 125018, 72372, 6758, 0, 0, 1820, 41112, 0, 11202, 129451, 0, 13223, 0, @@ -25699,13 +25519,13 @@ static const unsigned int code_hash[] = { 0, 9282, 0, 224, 0, 68670, 9332, 65581, 68677, 0, 68644, 0, 11764, 68634, 0, 10732, 68640, 850, 0, 0, 71123, 0, 68619, 44008, 68627, 0, 0, 0, 0, 66969, 0, 0, 0, 12507, 0, 0, 128311, 0, 120529, 4375, 0, 0, 0, 12198, 0, - 67339, 0, 0, 72994, 74293, 128434, 0, 0, 64546, 0, 71208, 0, 0, 78916, + 67339, 0, 0, 72994, 74293, 128434, 0, 0, 64546, 0, 71208, 0, 0, 125241, 42334, 42502, 0, 120887, 72961, 0, 917838, 5767, 0, 0, 71710, 8353, 0, 0, 0, 121233, 0, 0, 0, 0, 119920, 0, 0, 121186, 0, 0, 0, 72719, 64604, 0, 6096, 122632, 10063, 0, 0, 119630, 3485, 12987, 0, 127522, 0, 0, 0, 0, 0, 0, 0, 0, 127173, 0, 0, 68249, 0, 0, 118923, 0, 64574, 128794, 0, 1640, 12495, 66691, 0, 3138, 12504, 11171, 1922, 0, 12498, 128733, 0, 69939, 0, - 65543, 0, 0, 0, 66643, 0, 120734, 0, 4228, 0, 10303, 128884, 0, 0, 10335, + 65543, 0, 0, 0, 66643, 0, 120734, 0, 4228, 0, 10303, 0, 0, 0, 10335, 3520, 0, 12490, 0, 0, 0, 12493, 121452, 64636, 1002, 12491, 0, 0, 92615, 2096, 0, 0, 0, 0, 11611, 66228, 0, 11241, 66224, 66221, 66226, 66229, 66219, 66231, 66216, 0, 66236, 66211, 66218, 0, 66240, 78041, 66233, @@ -25731,7 +25551,7 @@ static const unsigned int code_hash[] = { 77995, 0, 3608, 0, 0, 1107, 0, 129658, 0, 0, 0, 0, 983956, 43217, 66571, 13222, 118963, 0, 126514, 10463, 11553, 0, 63995, 9043, 128634, 71722, 0, 0, 127751, 92974, 12529, 8042, 0, 2344, 12528, 0, 0, 0, 69719, 120956, 0, - 0, 66512, 0, 12530, 0, 0, 68917, 12658, 0, 71683, 0, 983241, 0, 127526, + 0, 66512, 0, 12530, 0, 0, 68917, 12658, 0, 71683, 0, 983238, 0, 127526, 469, 0, 4363, 3313, 0, 0, 2023, 0, 72251, 78225, 65706, 10051, 78219, 78220, 0, 9920, 12215, 0, 4931, 1951, 12497, 119363, 0, 0, 119336, 0, 0, 0, 0, 0, 1491, 128578, 129169, 0, 0, 0, 0, 78898, 94086, 41993, 0, 67379, @@ -25754,7 +25574,7 @@ static const unsigned int code_hash[] = { 4156, 0, 0, 0, 78591, 1611, 73058, 13018, 78586, 78588, 78584, 3337, 4537, 78593, 11736, 0, 0, 0, 4214, 73790, 0, 0, 13046, 194844, 425, 74763, 42066, 78595, 0, 2392, 13047, 0, 0, 12425, 13049, 0, 92243, 0, - 72715, 73944, 13050, 0, 0, 0, 0, 983506, 0, 0, 8929, 6849, 0, 0, 0, + 72715, 73944, 13050, 0, 0, 0, 0, 983503, 0, 0, 8929, 6849, 0, 0, 0, 983990, 0, 13045, 0, 0, 7751, 0, 9726, 0, 3997, 0, 8768, 13044, 0, 0, 4024, 0, 0, 2419, 9757, 69736, 0, 0, 0, 129500, 0, 0, 0, 72735, 0, 0, 0, 0, 0, 11911, 124990, 0, 2346, 194691, 69931, 0, 9646, 3773, 43557, 68154, @@ -25789,7 +25609,7 @@ static const unsigned int code_hash[] = { 0, 111011, 92960, 74356, 0, 74562, 0, 72745, 0, 0, 120568, 0, 0, 0, 0, 0, 8703, 5462, 83195, 0, 10101, 0, 70049, 0, 0, 128793, 0, 0, 66254, 120821, 0, 1565, 123621, 0, 119194, 0, 42651, 0, 0, 917847, 83227, 83218, 0, - 75011, 0, 129724, 0, 64399, 0, 12899, 74564, 0, 42206, 0, 72718, 71715, + 75011, 0, 917846, 0, 64399, 0, 12899, 74564, 0, 42206, 0, 72718, 71715, 83149, 983794, 83146, 12192, 917826, 0, 0, 0, 0, 68056, 0, 67426, 128687, 0, 0, 0, 0, 0, 0, 67431, 71718, 74357, 0, 121176, 43596, 6090, 0, 7812, 10534, 0, 0, 0, 0, 129763, 0, 0, 0, 0, 0, 0, 43306, 0, 0, 0, 7930, 0, @@ -25800,76 +25620,76 @@ static const unsigned int code_hash[] = { 310, 0, 0, 68403, 100480, 72738, 125279, 0, 0, 6497, 127320, 0, 0, 19958, 0, 128691, 74953, 0, 118998, 67332, 374, 0, 41933, 120975, 0, 0, 41934, 7465, 0, 128168, 70666, 11151, 6101, 0, 41936, 100476, 4879, 0, 65446, 0, - 0, 983695, 0, 5374, 0, 128059, 127390, 0, 126618, 983575, 129146, 0, 0, - 1929, 0, 12142, 0, 0, 0, 121472, 0, 12982, 0, 5378, 0, 128679, 0, 0, - 127869, 0, 127343, 0, 0, 0, 78832, 74481, 0, 43262, 100511, 2421, 0, - 2324, 828, 3611, 121055, 0, 64314, 0, 0, 0, 0, 0, 0, 7999, 0, 11217, - 983266, 10634, 10942, 0, 2348, 0, 0, 0, 0, 118587, 9982, 64324, 41240, 0, - 100470, 78462, 1810, 0, 92566, 71299, 0, 0, 917848, 0, 0, 100515, 0, 0, - 0, 43912, 128385, 0, 0, 0, 917850, 0, 7485, 0, 129382, 74576, 44019, - 128171, 917851, 3967, 129335, 0, 0, 0, 0, 119096, 0, 0, 8699, 723, 83084, - 966, 0, 0, 0, 128428, 78778, 2320, 0, 65740, 4968, 0, 0, 8075, 55276, - 123589, 8047, 983787, 78827, 12634, 0, 78781, 71322, 0, 12174, 42610, 0, - 0, 0, 1584, 0, 6045, 0, 0, 65218, 11559, 0, 0, 0, 124991, 0, 2257, 64418, - 0, 0, 0, 0, 0, 0, 67821, 0, 13092, 0, 128365, 0, 0, 0, 0, 0, 11414, 0, - 2531, 13034, 0, 0, 0, 13036, 0, 70866, 70198, 10394, 129979, 13037, 0, - 129956, 0, 0, 100496, 120640, 41129, 0, 42850, 13035, 0, 0, 5466, 0, 0, - 0, 129439, 4535, 0, 4271, 0, 0, 6769, 0, 0, 67350, 6767, 0, 66273, 0, - 6755, 73827, 9046, 67355, 0, 0, 0, 0, 0, 0, 0, 0, 92221, 83235, 2563, - 13033, 247, 83229, 0, 12338, 0, 83231, 11270, 0, 0, 0, 0, 70107, 0, 0, 0, - 0, 3752, 83243, 68895, 66973, 68897, 0, 0, 0, 0, 5009, 0, 0, 0, 0, - 119521, 78823, 78824, 70353, 68399, 3877, 0, 78825, 10145, 43566, 0, 0, - 10236, 0, 43782, 0, 127329, 0, 69652, 2247, 120612, 128058, 0, 43200, - 43777, 71253, 983644, 69558, 0, 71866, 43203, 0, 68894, 0, 127326, 0, - 43778, 119538, 0, 0, 43781, 11303, 65547, 0, 7031, 0, 0, 67343, 83237, - 83267, 0, 67341, 120522, 8535, 0, 0, 0, 66032, 0, 0, 120786, 42233, 0, - 9946, 7667, 0, 11822, 0, 43189, 120673, 100507, 2979, 1579, 0, 0, 0, 0, - 0, 12635, 71337, 0, 94055, 0, 1285, 64882, 0, 0, 83113, 12640, 83112, - 7401, 92869, 12625, 0, 71296, 72744, 0, 74286, 55260, 3396, 12642, 0, - 110719, 0, 12630, 0, 0, 10153, 0, 6166, 120516, 0, 110680, 0, 0, 119499, - 9285, 913, 42259, 83017, 0, 2142, 127889, 0, 94012, 7878, 0, 72733, 0, 0, - 0, 0, 92868, 0, 0, 0, 0, 128918, 5263, 74782, 0, 41939, 43702, 0, 917856, - 0, 10139, 980, 43698, 0, 2208, 0, 43701, 0, 125132, 0, 100528, 0, 10085, - 0, 0, 119989, 100529, 0, 71699, 0, 8072, 0, 43700, 0, 7304, 7783, 66894, - 12398, 0, 0, 0, 0, 0, 0, 120565, 0, 2217, 0, 94015, 6367, 0, 66688, 0, 0, - 0, 0, 0, 92199, 7808, 1829, 0, 41937, 0, 43272, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 92467, 6627, 0, 6258, 10683, 0, 0, 0, 5649, 0, 0, 0, 1643, 127898, - 0, 127846, 67244, 0, 42452, 0, 0, 0, 0, 64291, 0, 0, 0, 6576, 74773, 0, - 0, 66309, 0, 9886, 55225, 11292, 0, 72867, 55227, 0, 12632, 0, 194817, 0, - 7680, 0, 92745, 120714, 12639, 3380, 8123, 0, 12638, 42262, 4501, 0, 0, - 0, 0, 125131, 1494, 983147, 0, 0, 0, 0, 10494, 0, 65872, 0, 0, 0, 0, 0, - 0, 983587, 0, 0, 0, 0, 0, 0, 0, 71077, 0, 127335, 121128, 0, 5570, 1881, - 7210, 0, 1012, 66630, 0, 128982, 7208, 66442, 5569, 113723, 42339, 92655, - 0, 0, 0, 0, 92378, 65602, 0, 92375, 64727, 9160, 0, 0, 0, 124928, 10503, - 0, 3423, 3870, 8483, 10162, 0, 4319, 0, 0, 0, 0, 0, 983117, 0, 69562, 0, - 0, 0, 0, 0, 0, 5571, 7630, 9740, 9121, 5568, 0, 0, 42085, 0, 0, 65056, 0, - 589, 0, 0, 0, 10233, 66252, 66251, 78734, 66253, 0, 0, 42645, 0, 128424, - 8583, 0, 0, 0, 129932, 0, 0, 0, 0, 0, 12204, 92436, 120453, 0, 0, 0, - 983262, 0, 0, 70311, 0, 0, 128012, 41063, 0, 10664, 0, 983660, 0, 4551, - 129090, 74759, 0, 983270, 0, 0, 72806, 0, 0, 12517, 7806, 0, 12034, 0, - 6355, 12519, 41004, 0, 0, 93849, 0, 71707, 0, 121231, 7332, 129075, - 12111, 3927, 0, 12515, 1474, 68768, 0, 6923, 69509, 0, 127802, 0, 43990, - 74639, 126229, 121007, 0, 92706, 0, 0, 0, 0, 0, 9645, 0, 121026, 5853, 0, - 10363, 120729, 12956, 0, 0, 0, 0, 127888, 0, 0, 0, 0, 0, 10514, 65517, 0, - 0, 71101, 0, 0, 0, 43570, 2969, 43420, 129944, 0, 0, 92366, 70809, 0, 0, - 0, 0, 0, 118714, 12125, 41124, 0, 1164, 128817, 0, 120466, 0, 0, 65014, - 66009, 74451, 125075, 983129, 7469, 0, 0, 0, 69988, 120671, 83171, 41123, - 11176, 0, 0, 41126, 9991, 41128, 0, 0, 110949, 0, 0, 42877, 7994, 0, - 6104, 983612, 0, 129869, 0, 0, 0, 0, 74438, 128272, 121409, 41981, 0, - 69296, 42904, 0, 0, 74435, 126640, 0, 0, 0, 127968, 92442, 12703, 9661, - 67360, 67359, 7455, 70732, 11473, 119217, 128512, 0, 92323, 0, 0, 129632, - 67358, 0, 0, 0, 0, 174, 121131, 883, 4161, 128033, 42603, 0, 0, 72256, 0, - 0, 128356, 0, 0, 0, 0, 3846, 8070, 6150, 128109, 4370, 118617, 0, 0, - 74587, 0, 0, 0, 0, 4986, 12189, 917553, 67648, 120499, 0, 4257, 71695, - 123620, 6220, 0, 65561, 0, 0, 0, 0, 122652, 0, 0, 0, 69684, 0, 0, 128452, - 120873, 0, 0, 74922, 0, 71897, 0, 0, 67368, 67367, 8871, 67366, 0, 0, 0, - 0, 0, 67361, 0, 0, 67365, 67364, 3427, 4240, 67376, 67375, 67374, 67373, - 0, 0, 0, 67377, 0, 71689, 0, 0, 67372, 67371, 67370, 67369, 0, 0, 0, - 124962, 0, 0, 0, 0, 65898, 0, 65312, 0, 0, 0, 0, 4010, 121208, 41106, 0, - 0, 0, 41105, 0, 64803, 83456, 0, 0, 0, 0, 0, 0, 0, 11008, 0, 0, 71351, - 41110, 71681, 64892, 9113, 1954, 41108, 0, 42878, 0, 67405, 0, 0, 0, 0, - 0, 119539, 69435, 73463, 0, 4586, 129342, 0, 0, 0, 0, 0, 125233, 92307, - 0, 0, 0, 67382, 0, 9500, 0, 4957, 0, 2422, 2212, 0, 67381, 67380, 11045, + 0, 0, 0, 5374, 0, 128059, 127390, 0, 126618, 983575, 129146, 0, 0, 1929, + 0, 12142, 0, 0, 0, 121472, 0, 12982, 0, 5378, 0, 128679, 0, 0, 127869, 0, + 127343, 0, 0, 0, 78832, 74481, 0, 43262, 100511, 2421, 0, 2324, 828, + 3611, 121055, 0, 64314, 0, 0, 0, 0, 0, 0, 7999, 0, 11217, 983263, 10634, + 10942, 0, 2348, 0, 0, 0, 0, 118587, 9982, 64324, 41240, 0, 100470, 78462, + 1810, 0, 92566, 71299, 0, 0, 917848, 0, 0, 100515, 0, 0, 0, 43912, + 128385, 0, 0, 0, 917850, 0, 7485, 0, 129382, 74576, 44019, 128171, + 917851, 3967, 129335, 0, 0, 0, 0, 119096, 0, 0, 8699, 723, 83084, 966, 0, + 0, 0, 128428, 78778, 2320, 0, 65740, 4968, 0, 0, 8075, 55276, 123589, + 8047, 983787, 78827, 12634, 0, 78781, 71322, 0, 12174, 42610, 0, 0, 0, + 1584, 0, 6045, 0, 0, 65218, 11559, 0, 0, 0, 124991, 0, 2257, 64418, 0, 0, + 0, 0, 0, 0, 67821, 0, 13092, 0, 128365, 0, 0, 0, 0, 0, 11414, 0, 2531, + 13034, 0, 0, 0, 13036, 0, 70866, 70198, 10394, 129979, 13037, 0, 129956, + 0, 0, 100496, 120640, 41129, 0, 42850, 13035, 0, 0, 5466, 0, 0, 0, + 129439, 4535, 0, 4271, 0, 0, 6769, 0, 0, 67350, 6767, 0, 66273, 0, 6755, + 73827, 9046, 67355, 0, 0, 0, 0, 0, 0, 0, 0, 92221, 83235, 2563, 13033, + 247, 83229, 0, 12338, 0, 83231, 11270, 0, 0, 0, 0, 70107, 0, 0, 0, 0, + 3752, 83243, 68895, 66973, 68897, 0, 0, 0, 0, 5009, 0, 0, 0, 0, 119521, + 78823, 78824, 70353, 68399, 3877, 0, 78825, 10145, 43566, 0, 0, 10236, 0, + 43782, 0, 127329, 0, 69652, 2247, 120612, 128058, 0, 43200, 43777, 71253, + 983644, 69558, 0, 71866, 43203, 0, 68894, 0, 127326, 0, 43778, 119538, 0, + 0, 43781, 11303, 65547, 0, 7031, 0, 0, 67343, 83237, 83267, 0, 67341, + 120522, 8535, 0, 0, 0, 66032, 0, 0, 120786, 42233, 0, 9946, 7667, 0, + 11822, 0, 43189, 120673, 100507, 2979, 1579, 0, 0, 0, 0, 0, 12635, 71337, + 0, 94055, 0, 1285, 64882, 0, 0, 83113, 12640, 83112, 7401, 92869, 12625, + 0, 71296, 72744, 0, 74286, 55260, 3396, 12642, 0, 110719, 0, 12630, 0, 0, + 10153, 0, 6166, 120516, 0, 110680, 0, 0, 0, 9285, 913, 42259, 83017, 0, + 2142, 127889, 0, 94012, 7878, 0, 72733, 0, 0, 0, 0, 92868, 0, 0, 0, 0, + 128918, 5263, 74782, 0, 41939, 43702, 0, 917856, 0, 10139, 980, 43698, 0, + 2208, 0, 43701, 0, 125132, 0, 100528, 0, 10085, 0, 0, 119989, 100529, 0, + 71699, 0, 8072, 0, 43700, 0, 7304, 7783, 66894, 12398, 0, 0, 0, 0, 0, 0, + 120565, 0, 2217, 0, 94015, 6367, 0, 66688, 0, 0, 0, 0, 0, 92199, 7808, + 1829, 0, 41937, 0, 43272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92467, 6627, 0, + 6258, 10683, 0, 0, 0, 5649, 0, 0, 0, 1643, 127898, 0, 127846, 67244, 0, + 42452, 0, 0, 0, 0, 64291, 0, 0, 0, 6576, 74773, 0, 0, 66309, 0, 9886, + 55225, 11292, 0, 72867, 55227, 0, 12632, 0, 194817, 0, 7680, 0, 92745, + 120714, 12639, 3380, 8123, 0, 12638, 42262, 4501, 0, 0, 0, 0, 125131, + 1494, 983146, 0, 0, 0, 0, 10494, 0, 65872, 0, 0, 0, 0, 0, 0, 983587, 0, + 0, 0, 0, 0, 0, 0, 71077, 0, 127335, 121128, 0, 5570, 1881, 7210, 0, 1012, + 66630, 0, 128982, 7208, 66442, 5569, 113723, 42339, 92655, 0, 0, 0, 0, + 92378, 65602, 0, 92375, 64727, 9160, 0, 0, 0, 124928, 10503, 0, 3423, + 3870, 8483, 10162, 0, 4319, 0, 0, 0, 0, 0, 983116, 0, 69562, 0, 0, 0, 0, + 0, 0, 5571, 7630, 9740, 9121, 5568, 0, 0, 42085, 0, 0, 65056, 0, 589, 0, + 0, 0, 10233, 66252, 66251, 78734, 66253, 0, 0, 42645, 0, 128424, 8583, 0, + 0, 0, 129932, 0, 0, 0, 0, 0, 12204, 92436, 120453, 0, 0, 0, 983259, 0, 0, + 70311, 0, 0, 128012, 41063, 0, 10664, 0, 983660, 0, 4551, 129090, 74759, + 0, 983267, 0, 0, 72806, 0, 0, 12517, 7806, 0, 12034, 0, 6355, 12519, + 41004, 0, 0, 93849, 0, 71707, 0, 121231, 7332, 129075, 12111, 3927, 0, + 12515, 1474, 68768, 0, 6923, 69509, 0, 127802, 0, 43990, 74639, 126229, + 121007, 0, 92706, 0, 0, 0, 0, 0, 9645, 0, 121026, 5853, 0, 10363, 120729, + 12956, 0, 0, 0, 0, 127888, 0, 0, 0, 0, 0, 10514, 65517, 0, 0, 71101, 0, + 0, 0, 43570, 2969, 43420, 129944, 0, 0, 92366, 70809, 0, 0, 0, 0, 0, + 118714, 12125, 41124, 0, 1164, 128817, 0, 120466, 0, 0, 65014, 66009, + 74451, 125075, 983128, 7469, 0, 0, 0, 69988, 120671, 83171, 41123, 11176, + 0, 0, 41126, 9991, 41128, 0, 0, 110949, 0, 0, 42877, 7994, 0, 6104, + 983612, 0, 129869, 0, 0, 0, 0, 74438, 128272, 121409, 41981, 0, 69296, + 42904, 0, 0, 74435, 126640, 0, 0, 0, 127968, 92442, 12703, 9661, 67360, + 67359, 7455, 70732, 11473, 119217, 128512, 0, 92323, 0, 0, 129632, 67358, + 0, 0, 0, 0, 174, 121131, 883, 4161, 128033, 42603, 0, 0, 72256, 0, 0, + 128356, 0, 0, 0, 0, 3846, 8070, 6150, 128109, 4370, 118617, 0, 0, 74587, + 0, 0, 0, 0, 4986, 12189, 917553, 67648, 120499, 0, 4257, 71695, 123620, + 6220, 0, 65561, 0, 0, 0, 0, 122652, 0, 0, 0, 69684, 0, 0, 128452, 120873, + 0, 0, 74922, 0, 71897, 0, 0, 67368, 67367, 8871, 67366, 0, 0, 0, 0, 0, + 67361, 0, 0, 67365, 67364, 3427, 4240, 67376, 67375, 67374, 67373, 0, 0, + 0, 67377, 0, 71689, 0, 0, 67372, 67371, 67370, 67369, 0, 0, 0, 124962, 0, + 0, 0, 0, 65898, 0, 65312, 0, 0, 0, 0, 4010, 121208, 41106, 0, 0, 0, + 41105, 0, 64803, 83456, 0, 0, 0, 0, 0, 0, 0, 11008, 0, 0, 71351, 41110, + 71681, 64892, 9113, 1954, 41108, 0, 42878, 0, 67405, 0, 0, 0, 0, 0, + 119539, 69435, 73463, 0, 4586, 129342, 0, 0, 0, 0, 0, 125233, 92307, 0, + 0, 0, 67382, 0, 9500, 0, 4957, 0, 2422, 2212, 0, 67381, 67380, 11045, 67378, 0, 0, 3890, 12168, 121328, 0, 0, 0, 41947, 0, 120828, 74946, 917901, 0, 1571, 66461, 41949, 42805, 8270, 943, 41946, 0, 2073, 0, 41980, 0, 0, 0, 0, 4429, 6272, 0, 1460, 6954, 128572, 41120, 0, 65733, 0, @@ -25877,287 +25697,286 @@ static const unsigned int code_hash[] = { 0, 0, 0, 0, 0, 41122, 0, 2457, 0, 0, 0, 0, 0, 0, 8840, 8035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8681, 0, 121505, 128747, 0, 0, 70102, 0, 124976, 9605, 0, 13220, 0, 67354, 11312, 0, 9246, 67349, 0, 0, 0, 0, 10012, 12123, 0, - 0, 0, 0, 983846, 0, 0, 0, 67817, 0, 1272, 0, 0, 0, 983578, 0, 1467, - 119501, 917806, 0, 0, 0, 70312, 73537, 124955, 0, 70400, 0, 0, 72817, 0, - 19935, 0, 92162, 0, 0, 0, 128406, 5275, 0, 0, 44006, 129082, 0, 3789, - 128205, 0, 0, 0, 11474, 0, 0, 0, 129050, 0, 92194, 129503, 9537, 4496, 0, - 120443, 2605, 4500, 0, 55224, 8600, 0, 0, 41646, 11667, 69569, 0, 0, - 917905, 4499, 41649, 0, 0, 0, 69254, 0, 0, 0, 65804, 0, 70034, 41866, 0, - 0, 0, 11174, 0, 0, 0, 9559, 128773, 41940, 8299, 41945, 0, 41941, 5455, - 7190, 0, 0, 917810, 65266, 0, 41943, 10762, 0, 41931, 0, 0, 8106, 4128, - 0, 0, 4494, 0, 0, 72405, 0, 119567, 42068, 917808, 0, 11004, 12794, - 65072, 5271, 7317, 0, 0, 0, 0, 0, 0, 92281, 0, 0, 0, 0, 71880, 3868, - 71881, 983573, 128431, 7703, 0, 64390, 0, 7406, 120358, 93850, 0, 3985, - 66425, 0, 66615, 10177, 0, 41853, 71873, 12809, 0, 12193, 0, 10879, - 122945, 0, 9055, 0, 3851, 8132, 0, 0, 119263, 917908, 0, 0, 0, 0, 122940, - 42657, 122952, 7643, 0, 0, 122936, 43568, 0, 11949, 7650, 43569, 64951, - 7647, 7649, 0, 7646, 0, 0, 9651, 125005, 3891, 0, 0, 2337, 77831, 77832, - 67860, 129288, 0, 0, 43561, 67706, 119669, 0, 1860, 0, 68835, 5812, - 12784, 0, 0, 0, 0, 69260, 7727, 0, 69292, 69818, 66444, 128665, 42719, 0, - 1569, 0, 12534, 12124, 7690, 194871, 12533, 0, 68383, 67997, 0, 6969, 0, - 0, 0, 67974, 63895, 128650, 0, 0, 0, 42144, 0, 0, 0, 0, 92211, 119043, 0, - 0, 917545, 0, 0, 12791, 0, 0, 0, 4447, 71065, 12793, 0, 0, 43385, 0, 0, - 12790, 120256, 0, 983840, 12792, 120254, 0, 0, 12789, 128489, 12317, - 74934, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127840, 41652, 2974, 78689, 11476, - 0, 0, 0, 0, 43871, 0, 10894, 119176, 74557, 65686, 0, 0, 3724, 67335, - 67334, 67333, 67338, 67337, 0, 67336, 0, 65306, 0, 128421, 0, 8646, - 129593, 77829, 0, 0, 74852, 0, 0, 0, 0, 0, 220, 120252, 43551, 0, 10044, - 0, 0, 983847, 68659, 110825, 5707, 71362, 0, 0, 0, 0, 0, 0, 10297, 0, - 41308, 67331, 0, 0, 0, 0, 2467, 0, 6003, 0, 0, 8040, 0, 0, 4182, 0, - 11135, 120501, 0, 0, 2510, 0, 10208, 0, 78302, 70829, 0, 0, 6837, 0, 0, - 67348, 0, 0, 0, 0, 1559, 67342, 11104, 67340, 67347, 67346, 67345, 67344, - 0, 0, 67357, 67356, 0, 0, 0, 0, 67352, 67351, 5516, 2845, 7717, 8036, - 65161, 67353, 5514, 12045, 6278, 0, 5515, 0, 0, 0, 0, 0, 65194, 100387, - 5517, 70116, 92774, 0, 67884, 0, 67890, 42094, 67880, 67881, 67882, - 67883, 0, 0, 67879, 120411, 1902, 67887, 67888, 12976, 126546, 12483, - 12368, 41769, 42726, 41765, 69557, 12787, 67874, 7556, 67878, 74351, - 67897, 989, 42677, 67889, 0, 6060, 0, 4326, 11000, 64601, 68478, 0, 0, - 6917, 0, 120837, 0, 0, 0, 6148, 8605, 74205, 0, 0, 0, 42715, 0, 101047, - 0, 68663, 0, 41796, 1269, 42703, 64754, 101049, 101042, 5144, 12221, - 42716, 71048, 5133, 4331, 0, 128675, 0, 5279, 121362, 71046, 0, 0, 42701, - 0, 0, 0, 121470, 0, 0, 0, 983311, 0, 72455, 121259, 42666, 12207, 1067, - 255, 12131, 0, 0, 0, 0, 0, 0, 0, 70728, 43460, 0, 42723, 125216, 0, - 70427, 0, 12797, 0, 0, 983722, 0, 67977, 12799, 0, 92504, 9746, 5135, 0, - 12796, 0, 0, 0, 5139, 346, 74303, 121134, 12795, 125109, 5168, 0, 43845, - 983727, 0, 8253, 8817, 1136, 983735, 43563, 127774, 129542, 0, 0, 0, 0, - 0, 0, 983619, 0, 0, 4041, 0, 2357, 43240, 12786, 0, 0, 0, 44004, 7142, 0, - 67984, 0, 0, 0, 0, 12785, 0, 0, 7770, 10712, 64853, 42679, 118916, 42375, - 0, 983124, 94074, 12119, 0, 11059, 10791, 111092, 450, 0, 0, 0, 0, 5450, - 64691, 0, 0, 44009, 0, 0, 111097, 94085, 1839, 94004, 0, 10927, 1701, 0, - 129610, 41749, 41761, 5453, 8361, 66045, 41758, 5444, 41763, 0, 0, 0, - 66349, 983138, 121274, 0, 0, 8801, 0, 4340, 0, 0, 0, 0, 70001, 41824, 0, - 0, 0, 0, 42700, 0, 127980, 0, 0, 0, 0, 0, 0, 4493, 4336, 129171, 2314, - 983061, 41808, 0, 0, 0, 64638, 0, 65937, 4489, 71331, 0, 0, 5358, 42717, - 0, 71236, 0, 0, 0, 127042, 41813, 2712, 0, 127044, 1410, 0, 0, 0, 0, 0, - 0, 0, 0, 128587, 0, 0, 0, 4892, 0, 0, 0, 0, 122966, 5777, 0, 759, 0, - 2079, 65248, 12788, 0, 64552, 0, 41803, 68043, 0, 0, 0, 0, 128785, 0, - 68492, 67991, 75071, 2340, 0, 120638, 0, 983902, 0, 0, 917865, 64749, 0, - 2321, 3587, 0, 67236, 9953, 9952, 0, 0, 42714, 9951, 0, 0, 127902, 74150, - 0, 0, 74757, 127554, 0, 983826, 2395, 0, 9976, 0, 125128, 0, 0, 0, 42809, - 42807, 0, 66290, 70854, 4150, 64424, 8318, 41790, 67976, 65559, 2360, - 41794, 0, 0, 120987, 0, 0, 2418, 0, 2411, 0, 41783, 0, 41786, 65108, 0, - 0, 41772, 42813, 2317, 0, 118980, 0, 0, 0, 0, 0, 0, 78682, 7753, 2351, - 6655, 64489, 0, 0, 0, 4443, 41697, 230, 65793, 0, 65943, 42803, 0, 0, - 5441, 0, 0, 127053, 0, 855, 0, 6109, 101021, 0, 119116, 69989, 0, 0, - 72146, 0, 101023, 0, 72148, 124918, 19915, 41892, 0, 0, 128901, 41887, 0, - 67980, 9735, 0, 0, 120591, 13082, 101026, 0, 0, 0, 0, 0, 0, 0, 289, 0, 0, - 64504, 0, 69489, 120514, 0, 92962, 0, 42724, 69977, 0, 0, 0, 0, 67994, 0, - 0, 983823, 3565, 0, 0, 127553, 43035, 69898, 0, 0, 0, 0, 4891, 0, 0, - 4602, 0, 121065, 0, 0, 121157, 0, 43978, 8988, 0, 0, 0, 0, 0, 119184, - 121436, 73902, 69740, 0, 0, 72976, 0, 0, 8771, 0, 0, 0, 119209, 74974, - 71737, 0, 0, 67987, 0, 0, 0, 67989, 0, 10065, 8207, 0, 983588, 0, 0, 662, - 0, 41927, 0, 0, 0, 0, 0, 0, 0, 41929, 0, 0, 0, 41926, 69994, 0, 0, 0, - 126230, 68013, 1433, 64648, 6475, 0, 120983, 0, 73876, 0, 0, 0, 67992, - 78052, 0, 3978, 0, 0, 0, 0, 120761, 12281, 0, 0, 13241, 0, 0, 0, 0, - 11765, 42577, 0, 0, 2641, 7192, 0, 0, 118809, 101015, 0, 101016, 128948, - 101013, 6479, 64294, 118683, 0, 0, 0, 64334, 0, 0, 0, 92266, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 9478, 127339, 124964, 0, 202, 0, 0, 1242, 0, 121170, 0, - 63940, 0, 0, 0, 63939, 11990, 92430, 67982, 0, 65440, 70068, 0, 0, 64829, - 0, 0, 0, 0, 0, 2858, 0, 63989, 0, 69239, 0, 121152, 0, 77841, 0, 70078, - 92574, 129519, 0, 0, 0, 128974, 0, 12922, 92498, 0, 66424, 71124, 0, 0, - 0, 2856, 0, 47, 0, 126986, 65858, 0, 0, 0, 0, 119161, 8417, 65903, 0, 0, - 0, 4033, 128164, 0, 0, 0, 129961, 64600, 1903, 12320, 0, 120894, 0, 0, - 8915, 0, 945, 0, 0, 0, 0, 111068, 0, 74828, 0, 69560, 9531, 0, 8505, 0, - 119238, 0, 0, 65538, 0, 0, 0, 0, 0, 0, 63935, 0, 0, 0, 0, 0, 64787, - 111060, 0, 0, 110828, 0, 2230, 0, 0, 71886, 9843, 0, 92419, 111062, - 67488, 92715, 0, 1320, 0, 1673, 0, 92383, 129902, 9338, 128355, 0, 0, 0, - 0, 11997, 0, 0, 0, 0, 0, 0, 43308, 0, 0, 0, 0, 0, 0, 0, 63920, 0, 0, 0, - 0, 0, 0, 3514, 78723, 0, 7492, 0, 0, 0, 7514, 0, 63924, 0, 7502, 7587, 0, - 0, 0, 118689, 43881, 7610, 0, 0, 118710, 692, 43588, 0, 0, 75056, 9688, - 0, 9535, 0, 0, 0, 64530, 0, 125251, 194861, 0, 72209, 7453, 0, 8013, - 66396, 0, 0, 8895, 5356, 0, 5458, 0, 2866, 0, 127860, 71732, 71724, 6700, - 0, 111081, 120583, 0, 110614, 0, 9641, 63830, 65294, 0, 0, 67969, 0, - 7441, 0, 63826, 0, 0, 0, 0, 2844, 983972, 0, 63824, 12139, 67971, 0, 0, - 3358, 65295, 0, 3104, 0, 0, 0, 0, 65772, 0, 0, 0, 0, 2862, 11326, 0, 0, - 94001, 3268, 66591, 0, 6552, 42367, 7035, 120558, 0, 0, 1814, 195092, - 10240, 195093, 0, 0, 0, 0, 0, 66960, 0, 0, 2837, 4341, 0, 0, 129982, - 125064, 195094, 0, 0, 66964, 0, 72721, 863, 66936, 0, 0, 43323, 66928, 0, - 0, 68054, 0, 3654, 66951, 0, 66942, 0, 0, 7653, 0, 0, 66587, 0, 0, 92401, - 0, 0, 12927, 0, 0, 129697, 13056, 0, 0, 3056, 0, 0, 195101, 0, 0, 74506, - 73770, 0, 0, 0, 0, 0, 0, 0, 0, 72233, 0, 5811, 0, 0, 0, 66817, 983855, 0, - 0, 128636, 129311, 0, 128041, 0, 67739, 120965, 0, 0, 67507, 0, 68375, 0, - 0, 70300, 0, 0, 0, 983698, 111078, 0, 11991, 128079, 0, 92943, 1502, - 74117, 127988, 0, 129478, 121253, 0, 67661, 0, 0, 125084, 68667, 0, - 74057, 68639, 0, 42898, 120742, 0, 74388, 74838, 120822, 0, 0, 0, 0, - 69452, 43214, 5893, 0, 0, 92496, 0, 0, 119907, 119900, 0, 0, 0, 0, 41950, - 0, 0, 68610, 0, 68626, 894, 0, 0, 12306, 73846, 0, 0, 0, 8636, 0, 121028, - 42503, 0, 92942, 0, 121468, 119241, 0, 126569, 5096, 5095, 2863, 127505, - 0, 10454, 42530, 5094, 0, 0, 13156, 0, 111035, 5093, 111024, 983419, 0, - 5092, 10708, 11327, 0, 5091, 0, 0, 9153, 4104, 78599, 78601, 2929, 42712, - 75067, 12272, 9832, 0, 0, 111105, 0, 0, 0, 0, 0, 0, 13106, 0, 0, 129111, - 0, 0, 0, 0, 9074, 111111, 0, 111110, 0, 8113, 11168, 92563, 1786, 111109, - 0, 111108, 0, 74423, 0, 586, 74414, 64359, 1267, 0, 127531, 0, 65731, 0, - 0, 0, 92932, 0, 0, 0, 0, 0, 0, 1228, 0, 42846, 0, 0, 70343, 1714, 74406, - 0, 0, 0, 127389, 66225, 0, 0, 42660, 0, 0, 3804, 0, 0, 129859, 0, 2826, - 0, 0, 0, 128396, 0, 0, 0, 0, 0, 0, 12206, 5839, 0, 68524, 74065, 73521, - 0, 0, 126240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67241, 917821, 7030, 0, - 10479, 64959, 2852, 0, 121225, 0, 0, 128586, 0, 6963, 0, 0, 0, 74786, 0, - 0, 0, 0, 121281, 0, 0, 0, 0, 113815, 121360, 0, 9994, 118680, 2864, - 64719, 1148, 0, 41677, 0, 0, 2765, 0, 128181, 0, 0, 0, 92516, 74777, 0, - 0, 65206, 0, 0, 0, 0, 69391, 0, 0, 983770, 0, 41839, 129616, 983773, 0, - 0, 6931, 0, 0, 7177, 125137, 0, 0, 0, 93020, 0, 10722, 0, 0, 128186, - 121050, 0, 0, 127207, 0, 750, 0, 129453, 63912, 0, 0, 7032, 0, 0, 4314, - 128600, 0, 128409, 730, 0, 127866, 0, 0, 41380, 0, 0, 0, 69697, 8240, - 92939, 0, 41378, 0, 6938, 70026, 0, 0, 66246, 0, 0, 0, 0, 0, 0, 983094, - 0, 92754, 41470, 64805, 0, 0, 0, 0, 0, 0, 0, 0, 92938, 68370, 0, 0, - 73831, 0, 0, 0, 2872, 0, 0, 0, 0, 604, 41097, 0, 0, 0, 0, 0, 127488, 0, - 2836, 0, 0, 9707, 0, 43202, 0, 0, 69374, 0, 0, 120916, 2832, 92702, 9670, - 12937, 0, 0, 0, 0, 2822, 0, 0, 92519, 0, 73752, 0, 0, 0, 1331, 92603, 0, - 11856, 73510, 129432, 5090, 5089, 0, 3200, 0, 0, 0, 5088, 0, 0, 9477, 0, - 0, 5087, 92325, 0, 96, 5086, 0, 0, 0, 5085, 64286, 0, 0, 43820, 0, - 129710, 0, 0, 119042, 0, 129660, 0, 0, 0, 0, 0, 127241, 120891, 7601, 0, - 591, 0, 118953, 0, 0, 0, 0, 0, 10939, 7246, 6933, 67142, 67141, 0, 74600, - 120695, 0, 67138, 65574, 0, 78058, 67140, 73851, 74598, 67139, 128094, 0, - 6372, 0, 73514, 7963, 6371, 0, 0, 125040, 0, 0, 0, 0, 0, 0, 0, 8258, - 123591, 0, 0, 65148, 118919, 42, 0, 0, 0, 0, 0, 0, 0, 0, 67135, 67134, - 67133, 0, 0, 0, 0, 67136, 67130, 74597, 11550, 0, 67132, 65868, 0, 12826, - 127872, 124116, 126235, 9737, 92448, 0, 0, 0, 8878, 0, 0, 0, 0, 0, 72220, - 9086, 0, 100952, 0, 7437, 7454, 0, 0, 0, 0, 9042, 0, 0, 0, 0, 3805, 0, - 67128, 44001, 67126, 0, 44022, 19949, 12200, 43522, 983045, 43525, 0, 0, - 0, 64422, 67125, 67124, 7602, 0, 0, 43521, 0, 0, 43711, 43523, 41447, - 8424, 68483, 8704, 2397, 0, 0, 0, 0, 0, 10916, 0, 129290, 93998, 0, 0, 0, - 127800, 67686, 9961, 123203, 0, 68842, 10792, 8889, 121402, 6951, 0, - 68827, 917835, 74342, 0, 0, 0, 68816, 129152, 0, 42909, 66597, 70092, 0, - 0, 10481, 4559, 0, 1956, 43138, 0, 0, 43490, 43148, 0, 0, 0, 43140, 0, 0, - 0, 0, 69268, 8533, 0, 0, 0, 0, 0, 4357, 0, 70289, 983157, 0, 42911, 0, 0, - 0, 10941, 0, 6962, 0, 0, 113808, 0, 11014, 0, 8942, 12000, 0, 0, 73515, - 0, 0, 0, 42650, 0, 75016, 63975, 0, 66210, 0, 0, 129150, 0, 11193, 0, 0, - 0, 0, 0, 0, 0, 43476, 0, 11024, 74811, 72787, 10563, 92954, 0, 0, 2462, - 92955, 0, 0, 66213, 6957, 0, 120559, 0, 0, 0, 74594, 983424, 92347, 0, - 110702, 110708, 110707, 127119, 3109, 127117, 119909, 0, 121434, 0, 0, - 4042, 0, 0, 0, 127123, 127122, 127121, 0, 127999, 0, 3503, 74444, 68300, - 6694, 127997, 0, 0, 74306, 0, 983757, 7736, 0, 0, 0, 10521, 0, 42173, - 9705, 0, 129719, 6955, 71467, 0, 6149, 3887, 19956, 1411, 2824, 0, 0, 0, - 1403, 0, 1347, 66282, 127996, 0, 0, 0, 0, 8640, 0, 1178, 1654, 0, 0, - 129529, 43314, 0, 0, 0, 0, 2873, 67461, 0, 0, 67085, 10861, 0, 0, 70377, - 0, 67082, 11159, 41391, 67084, 0, 376, 6987, 983182, 119904, 0, 8823, 0, - 12943, 65185, 100988, 42099, 0, 0, 100990, 0, 8301, 0, 0, 1684, 0, 0, 0, - 120620, 0, 0, 0, 42121, 0, 66781, 78067, 42115, 0, 127998, 0, 67080, - 1493, 42111, 67077, 4097, 0, 983767, 0, 65808, 41642, 0, 118568, 67076, - 41636, 67074, 65095, 110660, 72254, 121240, 41629, 12154, 75073, 0, - 128179, 74084, 64380, 0, 0, 0, 0, 0, 71193, 65371, 7078, 121218, 0, 0, - 74592, 0, 0, 43275, 0, 41434, 6062, 0, 0, 19916, 0, 6950, 9606, 9842, 0, - 65744, 0, 0, 128659, 0, 41615, 10105, 0, 0, 41632, 7493, 0, 0, 41622, 0, - 0, 0, 0, 7632, 983217, 983216, 9805, 5990, 900, 0, 122955, 0, 120869, - 3612, 0, 64376, 0, 5389, 129469, 73495, 0, 2839, 9621, 582, 0, 0, 3749, - 0, 7569, 0, 0, 92865, 6956, 4403, 0, 0, 3299, 0, 0, 119127, 65676, 0, - 74372, 0, 983497, 7598, 69819, 42469, 42242, 1918, 9542, 480, 7716, 0, 0, - 0, 0, 0, 69918, 0, 8328, 0, 118894, 0, 0, 0, 0, 11132, 983502, 66743, - 74185, 100531, 2854, 66747, 0, 65755, 0, 67120, 67119, 65835, 67117, - 66736, 67123, 67122, 67121, 9881, 100481, 65757, 100538, 100459, 67116, - 8648, 128377, 6741, 43047, 0, 13180, 0, 100487, 66754, 73507, 73487, 0, - 0, 41752, 0, 8641, 100490, 125185, 73477, 100462, 100541, 6942, 69501, - 1024, 42849, 41751, 0, 8941, 101034, 11121, 0, 9023, 40973, 121476, 9928, - 67109, 66865, 0, 67114, 67113, 67112, 67111, 0, 41206, 120724, 9049, - 67108, 43166, 0, 41200, 128201, 125142, 126537, 0, 0, 41188, 119553, 0, - 101007, 917548, 74585, 78626, 0, 0, 11466, 0, 120797, 0, 125067, 2261, 0, - 2860, 0, 0, 70828, 127925, 92357, 67106, 12065, 42872, 0, 43875, 67103, - 43856, 0, 67102, 67105, 7531, 40981, 2413, 100522, 67404, 100521, 0, - 67101, 41196, 100523, 0, 129723, 73512, 43117, 100495, 0, 0, 0, 0, 69876, - 0, 7173, 496, 0, 4313, 64607, 0, 0, 983202, 2065, 42793, 2842, 0, 83152, - 13132, 798, 0, 12801, 67098, 10686, 118528, 128143, 0, 8054, 9174, 67087, - 67086, 67097, 67096, 41611, 67095, 74504, 78854, 42512, 0, 78857, 42089, - 74613, 78856, 0, 101029, 100468, 42079, 100467, 0, 66961, 100474, 0, 0, - 0, 68338, 69958, 0, 0, 0, 0, 0, 78859, 42093, 128951, 100504, 0, 0, 0, - 4580, 0, 0, 0, 92167, 0, 3021, 42004, 0, 0, 42317, 41998, 0, 6946, 77920, - 0, 123610, 0, 0, 0, 121442, 42690, 9880, 0, 0, 64589, 0, 0, 127880, - 68035, 0, 11360, 0, 0, 72242, 0, 0, 0, 0, 0, 64941, 0, 0, 0, 6856, 65671, - 11244, 73706, 6959, 41994, 42907, 0, 0, 122902, 8617, 41982, 8860, 0, 0, - 121256, 0, 0, 9597, 0, 43172, 0, 10117, 0, 92297, 65865, 73549, 0, - 128077, 0, 126065, 0, 187, 0, 65669, 0, 4963, 0, 0, 0, 8964, 0, 7775, 0, - 41948, 0, 0, 101010, 41942, 65449, 3160, 65922, 13226, 42665, 0, 42663, - 128210, 41766, 983503, 78848, 78849, 41760, 1189, 905, 110620, 42658, - 78851, 67859, 9629, 6742, 0, 43625, 12952, 7888, 0, 3980, 0, 42656, 0, - 42055, 0, 0, 0, 64540, 0, 7867, 69218, 6236, 0, 73490, 10505, 0, 12851, - 118948, 0, 5474, 128843, 3103, 0, 41753, 41733, 78051, 983477, 78844, - 78845, 41739, 78843, 70744, 10931, 41756, 43347, 68098, 122909, 41746, - 119147, 92591, 41259, 66954, 69930, 2691, 121338, 11231, 41244, 0, 69800, - 66364, 41262, 67503, 0, 0, 41251, 0, 0, 11805, 0, 0, 68331, 94045, 0, 0, - 0, 74633, 41266, 126642, 0, 0, 0, 65741, 41737, 2275, 2666, 121232, - 41738, 4967, 419, 13126, 0, 0, 42822, 0, 6434, 74913, 0, 0, 6432, 0, - 69932, 128862, 769, 41742, 69927, 74805, 6433, 0, 547, 1943, 6439, 0, - 4994, 487, 0, 0, 3754, 0, 0, 0, 0, 74780, 0, 0, 1595, 92777, 74431, 0, 0, - 74860, 43267, 0, 0, 129083, 12185, 69406, 0, 73479, 100984, 0, 42856, 0, - 0, 983765, 128319, 75057, 0, 0, 0, 65612, 0, 669, 0, 0, 0, 0, 0, 70445, - 100404, 69929, 0, 0, 460, 121513, 0, 0, 0, 120747, 0, 121519, 121518, 0, - 0, 121515, 71491, 65187, 9044, 78497, 11760, 78494, 7577, 78491, 41912, - 100412, 0, 100411, 0, 0, 100394, 78501, 0, 2933, 78500, 0, 66441, 100392, - 100397, 100391, 1549, 0, 100415, 0, 41755, 6206, 8670, 120587, 0, 69935, - 0, 0, 69768, 73492, 0, 66958, 0, 0, 10552, 64342, 41922, 0, 917858, 0, - 917857, 2717, 0, 0, 0, 73664, 41908, 100722, 41916, 0, 0, 0, 92506, - 100723, 66664, 69803, 0, 100725, 0, 0, 43373, 0, 0, 8468, 100729, 121173, - 128297, 119210, 118952, 0, 0, 0, 100686, 0, 0, 0, 128703, 100670, 457, - 78502, 78503, 123180, 43006, 0, 8802, 113777, 0, 0, 0, 0, 126632, 0, - 41757, 0, 100657, 44000, 0, 0, 43534, 0, 0, 11961, 121316, 0, 0, 0, - 128736, 0, 0, 9499, 73522, 128330, 0, 0, 92260, 68184, 0, 0, 7256, 66993, - 983180, 0, 42161, 0, 119126, 128022, 65880, 0, 10802, 64861, 0, 0, 0, 0, - 0, 0, 73109, 0, 955, 0, 0, 5350, 64339, 0, 100705, 10875, 0, 5477, 73121, - 0, 0, 0, 67693, 69790, 0, 0, 3874, 0, 983741, 0, 0, 83272, 100674, - 127397, 0, 100989, 0, 41038, 67502, 9207, 42239, 0, 0, 0, 0, 74432, 0, 0, - 1455, 129680, 0, 11753, 119233, 0, 118594, 127854, 100716, 69801, 0, 0, - 43520, 0, 119556, 0, 0, 0, 0, 100733, 10788, 6088, 0, 129587, 190, - 983346, 12593, 100737, 129308, 64408, 0, 4417, 128615, 74359, 41744, 0, - 0, 100435, 6965, 0, 0, 13201, 100430, 69896, 78868, 74382, 11841, 7918, - 92721, 0, 0, 0, 1728, 0, 0, 0, 983350, 92679, 0, 0, 92711, 0, 0, 119536, - 73491, 66679, 8382, 0, 0, 100381, 0, 917889, 42254, 68371, 100383, 0, 0, - 0, 9923, 0, 0, 11763, 100386, 120688, 0, 78187, 0, 0, 0, 0, 8333, 0, 0, - 0, 917805, 74464, 0, 92320, 74080, 0, 69911, 11910, 0, 74141, 8963, 0, 0, - 0, 121396, 0, 41747, 0, 0, 8968, 0, 0, 129110, 110590, 0, 8836, 12315, 0, - 8300, 0, 0, 0, 8856, 0, 0, 69891, 0, 66965, 120405, 120402, 120403, - 120400, 120401, 12853, 43269, 7263, 120244, 6536, 120238, 120239, 65516, - 12321, 120391, 120388, 55287, 2237, 120246, 9588, 120248, 120382, 120383, - 120380, 120381, 0, 0, 3561, 0, 0, 10613, 0, 110583, 0, 0, 0, 128689, - 5006, 64328, 68219, 917894, 0, 8825, 122972, 0, 0, 0, 128616, 0, 119177, - 0, 0, 128641, 120225, 71366, 120227, 120228, 438, 4510, 41707, 8721, - 120233, 120234, 120235, 12840, 120229, 10845, 120231, 8096, 0, 120935, 0, - 0, 65589, 8733, 0, 0, 0, 0, 0, 0, 93984, 11262, 73747, 128522, 917902, - 64591, 42405, 0, 0, 1632, 127982, 128326, 0, 0, 121327, 121477, 42444, 0, - 0, 215, 41258, 128494, 64494, 1953, 10185, 0, 1256, 3910, 41260, 917903, - 0, 0, 41257, 0, 8675, 10700, 0, 124951, 0, 9333, 0, 121471, 0, 0, 0, 0, - 0, 499, 0, 70729, 42915, 0, 101000, 0, 100999, 0, 0, 73111, 128893, - 122897, 0, 125006, 0, 11118, 0, 128009, 0, 0, 118633, 9180, 0, 0, 0, - 100986, 43438, 118588, 0, 0, 0, 0, 120669, 64782, 0, 0, 73969, 565, - 42484, 118913, 201, 0, 42292, 69610, 0, 0, 119625, 43518, 0, 0, 1022, - 113788, 3880, 74247, 0, 0, 0, 0, 0, 0, 0, 0, 72272, 100997, 0, 0, 66937, - 74255, 0, 0, 92598, 0, 9903, 118993, 0, 68226, 0, 0, 0, 127788, 100955, - 83280, 7892, 0, 10777, 0, 0, 65562, 0, 101002, 0, 8039, 3363, 101009, 0, - 0, 66940, 12596, 70812, 0, 0, 0, 0, 42944, 92425, 74992, 64541, 0, 0, - 10520, 12802, 0, 12998, 0, 83270, 42861, 83273, 11415, 0, 7541, 125068, - 65878, 822, 0, 0, 5774, 194746, 43252, 0, 92619, 7672, 129281, 0, 0, - 7463, 0, 0, 0, 0, 0, 0, 121411, 0, 0, 0, 66938, 0, 475, 0, 120586, 7329, - 0, 0, 195088, 66291, 10645, 0, 6543, 100966, 0, 0, 119065, 0, 0, 0, - 983237, 195095, 0, 8923, 1645, 0, 0, 0, 3196, 72404, 0, 0, 43595, 0, 0, - 0, 0, 0, 195076, 0, 0, 5258, 4328, 0, 0, 0, 405, 11454, 0, 0, 0, 0, - 75052, 41245, 0, 195078, 4523, 11369, 0, 0, 0, 195079, 0, 0, 983510, 0, - 100961, 10480, 74610, 0, 0, 0, 12610, 0, 41247, 0, 7609, 118837, 0, 0, - 92253, 0, 984, 0, 92621, 0, 0, 129885, 73982, 0, 0, 0, 43369, 0, 0, 0, - 983507, 6634, 0, 71952, 0, 66930, 74214, 0, 67709, 0, 0, 0, 71114, 9552, - 0, 0, 0, 12997, 0, 0, 0, 0, 129109, 12883, 10994, 10529, 55283, 0, 74618, - 0, 67736, 10661, 19951, 9614, 2428, 0, 121023, 92837, 126224, 66933, - 71127, 0, 124996, 119162, 1952, 92181, 8455, 100958, 118654, 93033, - 119566, 100960, 0, 12183, 100951, 0, 64929, 0, 0, 0, 128290, 42509, - 73087, 3922, 9187, 983626, 0, 0, 119057, 0, 3353, 9358, 0, 0, 66680, 0, - 73975, 12879, 0, 9795, 68380, 0, 0, 119488, 0, 0, 41027, 0, 66931, 0, - 983631, 0, 70378, 0, 11751, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129356, 0, 0, - 0, 0, 41029, 0, 126513, 0, 0, 0, 11294, 0, 66665, 0, 0, 127750, 0, 0, - 70105, 0, 983643, 0, 67843, 0, 0, 121167, 983895, 0, 8088, 129412, 0, 0, - 0, 983992, 6926, 72423, 0, 129569, 42369, 4350, 0, 65145, 9041, 43559, 0, - 0, 0, 41263, 0, 0, 0, 65825, 9577, 68199, 0, 0, 983122, 0, 6793, 0, - 70409, 0, 0, 0, 0, 64669, 0, 0, 0, 11200, 72725, 2995, 0, 0, 0, 7868, - 72720, 72020, 11386, 1009, 70405, 66871, 2333, 0, 0, 0, 0, 0, 70407, - 128121, 0, 0, 0, 0, 983657, 66949, 0, 74968, 0, 0, 110601, 0, 0, 41261, - 0, 0, 0, 0, 118989, 6736, 917883, 124132, 43010, 66952, 0, 69635, 73011, - 983716, 0, 0, 7293, 0, 0, 0, 0, 111332, 0, 128245, 69928, 127071, 0, + 0, 0, 0, 983846, 0, 0, 0, 67817, 0, 1272, 0, 0, 0, 983578, 0, 1467, 0, + 917806, 0, 0, 0, 70312, 0, 124955, 0, 70400, 0, 0, 72817, 0, 19935, 0, + 92162, 0, 0, 0, 128406, 5275, 0, 0, 44006, 129082, 0, 3789, 128205, 0, 0, + 0, 11474, 0, 0, 0, 129050, 0, 92194, 129503, 9537, 4496, 0, 120443, 2605, + 4500, 0, 55224, 8600, 0, 0, 41646, 11667, 69569, 0, 0, 917905, 4499, + 41649, 0, 0, 0, 69254, 0, 0, 0, 65804, 0, 70034, 41866, 0, 0, 0, 11174, + 0, 0, 0, 9559, 128773, 41940, 8299, 41945, 0, 41941, 5455, 7190, 0, 0, + 917810, 65266, 0, 41943, 10762, 0, 41931, 0, 0, 8106, 4128, 0, 0, 4494, + 0, 0, 72405, 0, 119567, 42068, 917808, 0, 11004, 12794, 65072, 5271, + 7317, 0, 0, 0, 0, 0, 0, 92281, 0, 0, 0, 0, 71880, 3868, 71881, 983573, + 128431, 7703, 0, 64390, 0, 7406, 120358, 93850, 0, 3985, 66425, 0, 66615, + 10177, 0, 41853, 71873, 12809, 0, 12193, 0, 10879, 0, 0, 9055, 0, 3851, + 8132, 0, 0, 119263, 917908, 0, 0, 0, 0, 0, 42657, 0, 7643, 0, 0, 0, + 43568, 0, 11949, 7650, 43569, 64951, 7647, 7649, 0, 7646, 0, 0, 9651, + 125005, 3891, 0, 0, 2337, 77831, 77832, 67860, 129288, 0, 0, 43561, + 67706, 119669, 0, 1860, 0, 68835, 5812, 12784, 0, 0, 0, 0, 69260, 7727, + 0, 69292, 69818, 66444, 128665, 42719, 0, 1569, 0, 12534, 12124, 7690, + 194871, 12533, 0, 68383, 67997, 0, 6969, 0, 0, 0, 67974, 63895, 128650, + 0, 0, 0, 42144, 0, 0, 0, 0, 92211, 119043, 0, 0, 917545, 0, 0, 12791, 0, + 0, 0, 4447, 71065, 12793, 0, 0, 43385, 0, 0, 12790, 120256, 0, 983840, + 12792, 120254, 0, 0, 12789, 128489, 12317, 74934, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 127840, 41652, 2974, 78689, 11476, 0, 0, 0, 0, 43871, 0, 10894, + 119176, 74557, 65686, 0, 0, 3724, 67335, 67334, 67333, 67338, 67337, 0, + 67336, 0, 65306, 0, 128421, 0, 8646, 129593, 77829, 0, 0, 74852, 0, 0, 0, + 0, 0, 220, 120252, 43551, 0, 10044, 0, 0, 983847, 68659, 110825, 5707, + 71362, 0, 0, 0, 0, 0, 0, 10297, 0, 41308, 67331, 0, 0, 0, 0, 2467, 0, + 6003, 0, 0, 8040, 0, 0, 4182, 0, 11135, 120501, 0, 0, 2510, 0, 10208, 0, + 78302, 70829, 0, 0, 6837, 0, 0, 67348, 0, 0, 0, 0, 1559, 67342, 11104, + 67340, 67347, 67346, 67345, 67344, 0, 0, 67357, 67356, 0, 0, 0, 0, 67352, + 67351, 5516, 2845, 7717, 8036, 65161, 67353, 5514, 12045, 6278, 0, 5515, + 0, 0, 0, 0, 0, 65194, 100387, 5517, 70116, 92774, 0, 67884, 0, 67890, + 42094, 67880, 67881, 67882, 67883, 0, 0, 67879, 120411, 1902, 67887, + 67888, 12976, 126546, 12483, 12368, 41769, 42726, 41765, 69557, 12787, + 67874, 7556, 67878, 74351, 67897, 989, 42677, 67889, 0, 6060, 0, 4326, + 11000, 64601, 68478, 0, 0, 6917, 0, 120837, 0, 0, 0, 6148, 8605, 74205, + 0, 0, 0, 42715, 0, 101047, 0, 68663, 0, 41796, 1269, 42703, 64754, + 101049, 101042, 5144, 12221, 42716, 71048, 5133, 4331, 0, 128675, 0, + 5279, 121362, 71046, 0, 0, 42701, 0, 0, 0, 121470, 0, 0, 0, 983308, 0, + 983608, 121259, 42666, 12207, 1067, 255, 12131, 0, 0, 0, 0, 0, 0, 0, + 70728, 43460, 0, 42723, 125216, 0, 70427, 0, 12797, 0, 0, 983722, 0, + 67977, 12799, 0, 92504, 9746, 5135, 0, 12796, 0, 0, 0, 5139, 346, 74303, + 121134, 12795, 125109, 5168, 0, 43845, 983727, 0, 8253, 8817, 1136, + 983735, 43563, 127774, 129542, 0, 0, 0, 0, 0, 0, 983619, 0, 0, 4041, 0, + 2357, 43240, 12786, 0, 0, 0, 44004, 7142, 0, 67984, 0, 0, 0, 0, 12785, 0, + 0, 7770, 10712, 64853, 42679, 118916, 42375, 0, 983123, 94074, 12119, 0, + 11059, 10791, 111092, 450, 0, 0, 0, 0, 5450, 64691, 0, 0, 44009, 0, 0, + 111097, 94085, 1839, 94004, 0, 10927, 1701, 0, 129610, 41749, 41761, + 5453, 8361, 66045, 41758, 5444, 41763, 0, 0, 0, 66349, 983137, 121274, 0, + 0, 8801, 0, 4340, 0, 0, 0, 0, 70001, 41824, 0, 0, 0, 0, 42700, 0, 127980, + 0, 0, 0, 0, 0, 0, 4493, 4336, 129171, 2314, 983061, 41808, 0, 0, 0, + 64638, 0, 65937, 4489, 71331, 0, 0, 5358, 42717, 0, 71236, 0, 0, 0, + 127042, 41813, 2712, 0, 127044, 1410, 0, 0, 0, 0, 0, 0, 0, 0, 128587, 0, + 0, 0, 4892, 0, 0, 0, 0, 0, 5777, 0, 759, 0, 2079, 65248, 12788, 0, 64552, + 0, 41803, 68043, 0, 0, 0, 0, 128785, 0, 68492, 67991, 75071, 2340, 0, + 120638, 0, 983902, 0, 0, 917865, 64749, 0, 2321, 3587, 0, 67236, 9953, + 9952, 0, 0, 42714, 9951, 0, 0, 127902, 74150, 0, 0, 74757, 127554, 0, + 983826, 2395, 0, 9976, 0, 125128, 0, 0, 0, 42809, 42807, 0, 66290, 70854, + 4150, 64424, 8318, 41790, 67976, 65559, 2360, 41794, 0, 0, 120987, 0, 0, + 2418, 0, 2411, 0, 41783, 0, 41786, 65108, 0, 0, 41772, 42813, 2317, 0, + 118980, 0, 0, 0, 0, 0, 0, 78682, 7753, 2351, 6655, 64489, 0, 0, 0, 4443, + 41697, 230, 65793, 0, 65943, 42803, 0, 0, 5441, 0, 0, 127053, 0, 855, 0, + 6109, 101021, 0, 119116, 69989, 0, 0, 72146, 0, 101023, 0, 72148, 124918, + 19915, 41892, 0, 0, 128901, 41887, 0, 67980, 9735, 0, 0, 120591, 13082, + 101026, 0, 0, 0, 0, 0, 0, 0, 289, 0, 0, 64504, 0, 69489, 120514, 0, + 92962, 0, 42724, 69977, 0, 0, 0, 0, 67994, 0, 0, 0, 3565, 0, 0, 127553, + 43035, 69898, 0, 0, 0, 0, 4891, 0, 0, 4602, 0, 121065, 0, 0, 121157, 0, + 43978, 8988, 0, 0, 0, 0, 0, 119184, 121436, 73902, 69740, 0, 0, 72976, 0, + 0, 8771, 0, 0, 0, 119209, 74974, 71737, 0, 0, 67987, 0, 0, 0, 67989, 0, + 10065, 8207, 0, 983588, 0, 0, 662, 0, 41927, 0, 0, 0, 0, 0, 0, 0, 41929, + 0, 0, 0, 41926, 69994, 0, 0, 0, 126230, 68013, 1433, 64648, 6475, 0, + 120983, 0, 73876, 0, 0, 0, 67992, 78052, 0, 3978, 0, 0, 0, 0, 120761, + 12281, 0, 0, 13241, 0, 0, 0, 0, 11765, 42577, 0, 0, 2641, 7192, 0, 0, + 118809, 101015, 0, 101016, 128948, 101013, 6479, 64294, 118683, 0, 0, 0, + 64334, 0, 0, 0, 92266, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9478, 127339, + 124964, 0, 202, 0, 0, 1242, 0, 121170, 0, 63940, 0, 0, 0, 63939, 11990, + 92430, 67982, 0, 65440, 70068, 0, 0, 64829, 0, 0, 0, 0, 0, 2858, 0, + 63989, 0, 69239, 0, 121152, 0, 77841, 0, 70078, 92574, 129519, 0, 0, 0, + 128974, 0, 12922, 92498, 0, 66424, 71124, 0, 0, 0, 2856, 0, 47, 0, + 126986, 65858, 0, 0, 0, 0, 119161, 8417, 65903, 0, 0, 0, 4033, 128164, 0, + 0, 0, 129961, 64600, 1903, 12320, 0, 120894, 0, 0, 8915, 0, 945, 0, 0, 0, + 0, 111068, 0, 74828, 0, 69560, 9531, 0, 8505, 0, 119238, 0, 0, 65538, 0, + 0, 0, 0, 0, 0, 63935, 0, 0, 0, 0, 0, 64787, 111060, 0, 0, 110828, 0, + 2230, 0, 0, 71886, 9843, 0, 92419, 111062, 67488, 92715, 0, 1320, 0, + 1673, 0, 92383, 129902, 9338, 128355, 0, 0, 0, 0, 11997, 0, 0, 0, 0, 0, + 0, 43308, 0, 0, 0, 0, 0, 0, 0, 63920, 0, 0, 0, 0, 0, 0, 3514, 78723, 0, + 7492, 0, 0, 0, 7514, 0, 63924, 0, 7502, 7587, 0, 0, 0, 118689, 43881, + 7610, 0, 0, 118710, 692, 43588, 0, 0, 75056, 9688, 0, 9535, 0, 0, 0, + 64530, 0, 125251, 194861, 0, 72209, 7453, 0, 8013, 66396, 0, 0, 8895, + 5356, 0, 5458, 0, 2866, 0, 127860, 71732, 71724, 6700, 0, 111081, 120583, + 0, 110614, 0, 9641, 63830, 65294, 0, 0, 67969, 0, 7441, 0, 63826, 0, 0, + 0, 0, 2844, 983972, 0, 63824, 12139, 67971, 0, 0, 3358, 65295, 0, 3104, + 0, 0, 0, 0, 65772, 0, 0, 0, 0, 2862, 11326, 0, 0, 94001, 3268, 66591, 0, + 6552, 42367, 7035, 120558, 0, 0, 1814, 195092, 10240, 195093, 0, 0, 0, 0, + 0, 66960, 0, 0, 2837, 4341, 0, 0, 129982, 125064, 195094, 0, 0, 66964, 0, + 72721, 863, 66936, 0, 0, 43323, 66928, 0, 0, 68054, 0, 3654, 66951, 0, + 66942, 0, 0, 7653, 0, 0, 66587, 0, 0, 92401, 0, 0, 12927, 0, 0, 129697, + 13056, 0, 0, 3056, 0, 0, 195101, 0, 0, 74506, 73770, 0, 0, 0, 0, 0, 0, 0, + 0, 72233, 0, 5811, 0, 0, 0, 66817, 983855, 0, 0, 128636, 129311, 0, + 128041, 0, 67739, 120965, 0, 0, 67507, 0, 68375, 0, 0, 70300, 0, 0, 0, + 983698, 111078, 0, 11991, 128079, 0, 92943, 1502, 74117, 127988, 0, + 129478, 121253, 0, 67661, 0, 0, 125084, 68667, 0, 74057, 68639, 0, 42898, + 120742, 0, 74388, 74838, 120822, 0, 0, 0, 0, 69452, 43214, 5893, 0, 0, + 92496, 0, 0, 119907, 119900, 0, 0, 0, 0, 41950, 0, 0, 68610, 0, 68626, + 894, 0, 0, 12306, 73846, 0, 0, 0, 8636, 0, 121028, 42503, 0, 92942, 0, + 121468, 119241, 0, 126569, 5096, 5095, 2863, 127505, 0, 10454, 42530, + 5094, 0, 0, 13156, 0, 111035, 5093, 127178, 983416, 0, 5092, 10708, + 11327, 0, 5091, 0, 0, 9153, 4104, 78599, 78601, 2929, 42712, 75067, + 12272, 9832, 0, 0, 111105, 0, 0, 0, 0, 0, 0, 13106, 0, 0, 129111, 0, 0, + 0, 0, 9074, 111111, 0, 111110, 0, 8113, 11168, 92563, 1786, 111109, 0, + 111108, 0, 74423, 0, 586, 74414, 64359, 1267, 0, 127531, 0, 65731, 0, 0, + 0, 92932, 0, 0, 0, 0, 0, 0, 1228, 0, 42846, 0, 0, 70343, 1714, 74406, 0, + 0, 0, 127389, 66225, 0, 0, 42660, 0, 0, 3804, 0, 0, 129859, 0, 2826, 0, + 0, 0, 128396, 0, 0, 0, 0, 0, 0, 12206, 5839, 0, 68524, 74065, 0, 0, 0, + 126240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67241, 917821, 7030, 0, 10479, + 64959, 2852, 0, 121225, 0, 0, 128586, 0, 6963, 0, 0, 0, 74786, 0, 0, 0, + 0, 121281, 0, 0, 0, 0, 113815, 121360, 0, 9994, 118680, 2864, 64719, + 1148, 0, 41677, 0, 0, 2765, 0, 128181, 0, 0, 0, 92516, 74777, 0, 0, + 65206, 0, 0, 0, 0, 69391, 0, 0, 983770, 0, 41839, 129616, 983773, 0, 0, + 6931, 0, 0, 7177, 125137, 0, 0, 0, 93020, 0, 10722, 0, 0, 128186, 121050, + 0, 0, 127207, 0, 750, 0, 129453, 63912, 0, 0, 7032, 0, 0, 4314, 128600, + 0, 128409, 730, 0, 127866, 0, 0, 41380, 0, 0, 0, 69697, 8240, 92939, 0, + 41378, 0, 6938, 70026, 0, 0, 66246, 0, 0, 0, 0, 0, 0, 983094, 0, 92754, + 41470, 64805, 0, 0, 0, 0, 0, 0, 0, 0, 92938, 68370, 0, 0, 73831, 0, 0, 0, + 2872, 0, 0, 0, 0, 604, 41097, 0, 0, 0, 0, 0, 127488, 0, 2836, 0, 0, 9707, + 0, 43202, 0, 0, 0, 0, 0, 120916, 2832, 92702, 9670, 12937, 0, 0, 0, 0, + 2822, 0, 0, 92519, 0, 73752, 0, 0, 0, 1331, 92603, 0, 11856, 0, 129432, + 5090, 5089, 0, 3200, 0, 0, 0, 5088, 0, 0, 9477, 0, 0, 5087, 92325, 0, 96, + 5086, 0, 0, 0, 5085, 64286, 0, 0, 43820, 0, 983741, 0, 0, 119042, 0, + 129660, 0, 0, 0, 0, 0, 127241, 120891, 7601, 0, 591, 0, 118953, 0, 0, 0, + 0, 0, 10939, 7246, 6933, 67142, 67141, 0, 74600, 120695, 0, 67138, 65574, + 0, 78058, 67140, 73851, 74598, 67139, 128094, 0, 6372, 0, 0, 7963, 6371, + 0, 0, 125040, 0, 0, 0, 0, 0, 0, 0, 8258, 123591, 0, 0, 65148, 118919, 42, + 0, 0, 0, 0, 0, 0, 0, 0, 67135, 67134, 67133, 0, 0, 0, 0, 67136, 67130, + 74597, 11550, 0, 67132, 65868, 0, 12826, 127872, 0, 126235, 9737, 92448, + 0, 0, 0, 8878, 0, 0, 0, 0, 0, 72220, 9086, 0, 0, 0, 7437, 7454, 0, 0, 0, + 0, 9042, 0, 0, 0, 0, 3805, 0, 67128, 44001, 67126, 0, 44022, 19949, + 12200, 43522, 983045, 43525, 0, 0, 0, 64422, 67125, 67124, 7602, 0, 0, + 43521, 0, 0, 43711, 43523, 41447, 8424, 68483, 8704, 2397, 0, 0, 0, 0, 0, + 10916, 0, 129290, 93998, 0, 0, 0, 127800, 67686, 9961, 123203, 0, 68842, + 10792, 8889, 121402, 6951, 0, 68827, 917835, 74342, 0, 0, 0, 68816, + 129152, 0, 42909, 66597, 70092, 0, 0, 10481, 4559, 0, 1956, 43138, 0, 0, + 43490, 43148, 0, 0, 0, 43140, 0, 0, 0, 0, 69268, 8533, 0, 0, 0, 0, 0, + 4357, 0, 70289, 983156, 0, 42911, 0, 0, 0, 10941, 0, 6962, 0, 0, 113808, + 0, 11014, 0, 8942, 12000, 0, 0, 0, 0, 0, 0, 42650, 0, 75016, 63975, 0, + 66210, 0, 0, 129150, 0, 11193, 0, 0, 0, 0, 0, 0, 0, 43476, 0, 11024, + 74811, 72787, 10563, 92954, 0, 0, 2462, 92955, 0, 0, 66213, 6957, 0, + 120559, 0, 0, 0, 74594, 983421, 92347, 0, 110702, 110708, 110707, 127119, + 3109, 127117, 119909, 0, 121434, 0, 0, 4042, 0, 0, 0, 127123, 127122, + 127121, 0, 127999, 0, 3503, 74444, 68300, 6694, 127997, 0, 0, 74306, 0, + 983757, 7736, 0, 0, 0, 10521, 0, 42173, 9705, 0, 129719, 6955, 71467, 0, + 6149, 3887, 19956, 1411, 2824, 0, 0, 0, 1403, 0, 1347, 66282, 127996, 0, + 0, 0, 0, 8640, 0, 1178, 1654, 0, 0, 129529, 43314, 0, 0, 0, 0, 2873, + 67461, 0, 0, 67085, 10861, 0, 0, 70377, 0, 67082, 11159, 41391, 67084, 0, + 376, 6987, 983181, 119904, 0, 8823, 0, 12943, 65185, 100988, 42099, 0, 0, + 100990, 0, 8301, 0, 0, 1684, 0, 0, 0, 120620, 0, 0, 0, 42121, 0, 66781, + 78067, 42115, 0, 127998, 0, 67080, 1493, 42111, 67077, 4097, 0, 983767, + 0, 65808, 41642, 0, 118568, 67076, 41636, 67074, 65095, 110660, 72254, + 121240, 41629, 12154, 75073, 0, 128179, 74084, 64380, 0, 0, 0, 0, 0, + 71193, 65371, 7078, 121218, 0, 0, 74592, 0, 0, 43275, 0, 41434, 6062, 0, + 0, 19916, 0, 6950, 9606, 9842, 0, 65744, 0, 0, 128659, 0, 41615, 10105, + 0, 0, 41632, 7493, 0, 0, 41622, 0, 0, 0, 0, 7632, 983215, 983214, 9805, + 5990, 900, 0, 983388, 0, 120869, 3612, 0, 64376, 0, 5389, 129469, 0, 0, + 2839, 9621, 582, 0, 0, 3749, 0, 7569, 0, 0, 92865, 6956, 4403, 0, 0, + 3299, 0, 0, 119127, 65676, 0, 74372, 0, 983494, 7598, 69819, 42469, + 42242, 1918, 9542, 480, 7716, 0, 0, 0, 0, 0, 69918, 0, 8328, 0, 118894, + 0, 0, 0, 0, 11132, 0, 66743, 74185, 100531, 2854, 66747, 0, 65755, 0, + 67120, 67119, 65835, 67117, 66736, 67123, 67122, 67121, 9881, 100481, + 65757, 100538, 100459, 67116, 8648, 128377, 6741, 43047, 0, 13180, 0, + 100487, 66754, 0, 128946, 0, 0, 41752, 0, 8641, 100490, 125185, 100489, + 100462, 100541, 6942, 69501, 1024, 42849, 41751, 0, 8941, 101034, 11121, + 0, 9023, 40973, 121476, 9928, 67109, 66865, 0, 67114, 67113, 67112, + 67111, 0, 41206, 120724, 9049, 67108, 43166, 0, 41200, 128201, 125142, + 126537, 0, 0, 41188, 119553, 0, 101007, 917548, 74585, 78626, 0, 0, + 11466, 0, 120797, 0, 125067, 2261, 0, 2860, 0, 0, 70828, 127925, 92357, + 67106, 12065, 42872, 0, 43875, 67103, 43856, 0, 67102, 67105, 7531, + 40981, 2413, 100522, 67404, 100521, 0, 67101, 41196, 100523, 0, 0, + 983746, 43117, 100495, 0, 0, 0, 0, 69876, 0, 7173, 496, 0, 4313, 64607, + 0, 0, 0, 2065, 42793, 2842, 0, 83152, 13132, 798, 0, 12801, 67098, 10686, + 118528, 128143, 0, 8054, 9174, 67087, 67086, 67097, 67096, 41611, 67095, + 74504, 78854, 42512, 0, 78857, 42089, 74613, 78856, 0, 101029, 100468, + 42079, 100467, 0, 66961, 100474, 0, 0, 0, 68338, 69958, 0, 0, 0, 0, 0, + 78859, 42093, 128951, 100504, 0, 0, 0, 4580, 0, 0, 0, 92167, 0, 3021, + 42004, 0, 0, 42317, 41998, 0, 6946, 77920, 0, 123610, 0, 0, 0, 121442, + 42690, 9880, 0, 0, 64589, 0, 0, 127880, 68035, 0, 11360, 0, 0, 72242, 0, + 0, 0, 0, 0, 64941, 0, 0, 0, 6856, 65671, 11244, 73706, 6959, 41994, + 42907, 0, 0, 122902, 8617, 41982, 8860, 0, 0, 121256, 0, 0, 9597, 0, + 43172, 0, 10117, 0, 92297, 65865, 0, 0, 128077, 0, 126065, 0, 187, 0, + 65669, 0, 4963, 0, 0, 0, 8964, 0, 7775, 0, 41948, 0, 0, 101010, 41942, + 65449, 3160, 65922, 13226, 42665, 0, 42663, 128210, 41766, 983500, 78848, + 78849, 41760, 1189, 905, 110620, 42658, 78851, 67859, 9629, 6742, 0, + 43625, 12952, 7888, 0, 3980, 0, 42656, 0, 42055, 0, 0, 0, 64540, 0, 7867, + 69218, 6236, 0, 0, 10505, 0, 12851, 118948, 0, 5474, 128843, 3103, 0, + 41753, 41733, 78051, 983474, 78844, 78845, 41739, 78843, 70744, 10931, + 41756, 43347, 68098, 122909, 41746, 119147, 92591, 41259, 66954, 69930, + 2691, 121338, 11231, 41244, 0, 69800, 66364, 41262, 67503, 0, 0, 41251, + 0, 0, 11805, 0, 0, 68331, 94045, 0, 0, 0, 74633, 41266, 126642, 0, 0, 0, + 65741, 41737, 2275, 2666, 121232, 41738, 4967, 419, 13126, 0, 0, 42822, + 0, 6434, 74913, 0, 0, 6432, 0, 69932, 128862, 769, 41742, 69927, 74805, + 6433, 0, 547, 1943, 6439, 0, 4994, 487, 0, 0, 3754, 0, 0, 0, 0, 74780, 0, + 0, 1595, 92777, 74431, 0, 0, 74860, 43267, 0, 0, 129083, 12185, 69406, 0, + 0, 100984, 0, 42856, 0, 0, 983765, 128319, 75057, 0, 0, 0, 65612, 0, 669, + 0, 0, 0, 0, 0, 70445, 100404, 69929, 0, 0, 460, 121513, 0, 0, 0, 120747, + 0, 121519, 121518, 0, 0, 121515, 71491, 65187, 9044, 78497, 11760, 78494, + 7577, 78491, 41912, 100412, 0, 100411, 0, 0, 100394, 78501, 0, 2933, + 78500, 0, 66441, 100392, 100397, 100391, 1549, 0, 100415, 0, 41755, 6206, + 8670, 120587, 0, 69935, 0, 0, 69768, 100952, 0, 66958, 0, 0, 10552, + 64342, 41922, 0, 917858, 0, 917857, 2717, 0, 0, 0, 73664, 41908, 100722, + 41916, 0, 0, 0, 92506, 100723, 66664, 69803, 0, 100725, 0, 0, 43373, 0, + 0, 8468, 100729, 121173, 128297, 119210, 118952, 0, 0, 0, 100686, 0, 0, + 0, 128703, 100670, 457, 78502, 78503, 123180, 43006, 0, 8802, 113777, 0, + 0, 0, 0, 126632, 0, 41757, 0, 100657, 44000, 0, 0, 43534, 0, 0, 11961, + 121316, 0, 0, 0, 128736, 0, 0, 9499, 92977, 128330, 0, 0, 92260, 68184, + 0, 0, 7256, 66993, 983179, 0, 42161, 0, 119126, 128022, 65880, 0, 10802, + 64861, 0, 0, 0, 0, 0, 0, 73109, 0, 955, 0, 0, 5350, 64339, 0, 100705, + 10875, 0, 5477, 73121, 0, 0, 0, 67693, 69790, 0, 0, 3874, 0, 0, 0, 0, + 83272, 100674, 127397, 0, 100989, 0, 41038, 67502, 9207, 42239, 0, 0, 0, + 0, 74432, 0, 0, 1455, 129680, 0, 11753, 119233, 0, 118594, 127854, + 100716, 69801, 0, 0, 43520, 0, 119556, 0, 0, 0, 0, 100733, 10788, 6088, + 0, 129587, 190, 983343, 12593, 100737, 129308, 64408, 0, 4417, 128615, + 74359, 41744, 0, 0, 100435, 6965, 0, 0, 13201, 100430, 69896, 78868, + 74382, 11841, 7918, 92721, 0, 0, 0, 1728, 0, 0, 0, 983347, 92679, 0, 0, + 92711, 0, 0, 119536, 0, 66679, 8382, 0, 0, 100381, 0, 917889, 42254, + 68371, 100383, 0, 0, 0, 9923, 0, 0, 11763, 100386, 120688, 0, 78187, 0, + 0, 0, 0, 8333, 0, 0, 0, 917805, 74464, 0, 92320, 74080, 0, 69911, 11910, + 0, 74141, 8963, 0, 0, 0, 121396, 0, 41747, 0, 0, 8968, 0, 0, 129110, + 110590, 0, 8836, 12315, 0, 8300, 0, 0, 0, 8856, 0, 0, 69891, 0, 66965, + 120405, 120402, 120403, 120400, 120401, 12853, 43269, 7263, 120244, 6536, + 120238, 120239, 65516, 12321, 120391, 120388, 55287, 2237, 120246, 9588, + 120248, 120382, 120383, 120380, 120381, 0, 0, 3561, 0, 0, 10613, 0, + 110583, 0, 0, 0, 128689, 5006, 64328, 68219, 917894, 0, 8825, 129880, 0, + 0, 0, 128616, 0, 119177, 0, 0, 128641, 120225, 71366, 120227, 120228, + 438, 4510, 41707, 8721, 120233, 120234, 120235, 12840, 120229, 10845, + 120231, 8096, 0, 120935, 0, 0, 65589, 8733, 0, 0, 0, 0, 0, 0, 93984, + 11262, 73747, 128522, 917902, 64591, 42405, 0, 0, 1632, 127982, 128326, + 0, 0, 121327, 121477, 42444, 0, 0, 215, 41258, 128494, 64494, 1953, + 10185, 0, 1256, 3910, 41260, 917903, 0, 0, 41257, 0, 8675, 10700, 0, + 124951, 0, 9333, 0, 121471, 0, 0, 0, 0, 0, 499, 0, 70729, 42915, 0, + 101000, 0, 100999, 0, 0, 73111, 0, 122897, 0, 125006, 0, 11118, 0, + 128009, 0, 0, 118633, 9180, 0, 0, 0, 100986, 43438, 118588, 0, 0, 0, 0, + 120669, 64782, 0, 0, 73969, 565, 42484, 118913, 201, 0, 42292, 69610, 0, + 0, 119625, 43518, 0, 0, 1022, 113788, 3880, 74247, 0, 0, 0, 0, 0, 0, 0, + 0, 72272, 100997, 0, 0, 66937, 74255, 0, 0, 92598, 0, 9903, 118993, 0, + 68226, 0, 0, 0, 127788, 100955, 83280, 7892, 0, 10777, 0, 0, 65562, 0, + 101002, 0, 8039, 3363, 101009, 0, 0, 66940, 12596, 70812, 0, 0, 0, 0, + 42944, 92425, 74992, 64541, 0, 0, 10520, 12802, 0, 12998, 0, 83270, + 42861, 83273, 11415, 0, 7541, 125068, 65878, 822, 0, 0, 5774, 194746, + 43252, 0, 92619, 7672, 129281, 0, 0, 7463, 0, 0, 0, 0, 0, 0, 121411, 0, + 0, 0, 66938, 0, 475, 0, 120586, 7329, 0, 0, 195088, 66291, 10645, 0, + 6543, 100966, 0, 0, 119065, 0, 0, 0, 983234, 195095, 0, 8923, 1645, 0, 0, + 0, 3196, 72404, 0, 0, 43595, 0, 0, 0, 0, 0, 195076, 0, 0, 5258, 4328, 0, + 0, 0, 405, 11454, 0, 0, 0, 0, 75052, 41245, 0, 195078, 4523, 11369, 0, 0, + 0, 195079, 0, 0, 983507, 0, 100961, 10480, 74610, 0, 0, 0, 12610, 0, + 41247, 0, 7609, 118837, 0, 0, 92253, 0, 984, 0, 92621, 0, 0, 129885, + 73982, 0, 0, 0, 43369, 0, 0, 0, 983504, 6634, 0, 71952, 0, 66930, 74214, + 0, 67709, 0, 0, 0, 71114, 9552, 0, 0, 0, 12997, 0, 0, 0, 0, 129109, + 12883, 10994, 10529, 55283, 0, 74618, 0, 67736, 10661, 19951, 9614, 2428, + 0, 121023, 92837, 126224, 66933, 71127, 0, 124996, 119162, 1952, 92181, + 8455, 100958, 0, 93033, 119566, 100960, 0, 12183, 100951, 0, 64929, 0, 0, + 0, 128290, 42509, 73087, 3922, 9187, 983626, 0, 0, 119057, 0, 3353, 9358, + 0, 0, 66680, 0, 73975, 12879, 0, 9795, 68380, 0, 0, 0, 0, 0, 41027, 0, + 66931, 0, 983631, 0, 70378, 0, 11751, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 129356, 0, 0, 0, 0, 41029, 0, 126513, 0, 0, 0, 11294, 0, 66665, 0, 0, + 127750, 0, 0, 70105, 0, 983643, 0, 67843, 0, 0, 121167, 983895, 0, 8088, + 129412, 0, 0, 0, 983992, 6926, 72423, 0, 129569, 42369, 4350, 0, 65145, + 9041, 43559, 0, 0, 0, 41263, 0, 0, 0, 65825, 9577, 68199, 0, 0, 983121, + 0, 6793, 0, 70409, 0, 0, 0, 0, 64669, 0, 0, 0, 11200, 72725, 2995, 0, 0, + 0, 7868, 72720, 72020, 11386, 1009, 70405, 66871, 2333, 0, 0, 0, 0, 0, + 70407, 128121, 0, 0, 0, 0, 983657, 66949, 0, 74968, 0, 0, 110601, 0, 0, + 41261, 0, 0, 0, 0, 118989, 6736, 917883, 0, 43010, 66952, 0, 69635, + 73011, 983716, 0, 0, 7293, 0, 0, 0, 0, 111332, 0, 128245, 69928, 0, 0, 127072, 64445, 111336, 6635, 0, 0, 72707, 74936, 0, 0, 917876, 0, 93025, 66948, 0, 111329, 0, 129887, 128045, 65219, 11925, 0, 92434, 0, 0, 9845, 101317, 7546, 0, 0, 11230, 4985, 13288, 672, 8098, 0, 0, 0, 128126, 42655, 0, 0, 1577, 11772, 78327, 0, 66673, 0, 65911, 118705, 0, 0, 101303, 92180, 0, 0, 120566, 125140, 127177, 0, 0, 119593, 1539, 0, 74969, 42731, 0, 74970, 71066, 0, 3051, 0, 73783, 0, 0, 0, 0, 78777, 0, - 983161, 0, 0, 101310, 0, 0, 0, 0, 0, 0, 3505, 8707, 0, 6725, 128013, 0, - 92314, 0, 66391, 5479, 0, 6686, 0, 0, 983318, 42754, 0, 0, 0, 0, 0, 0, + 983160, 0, 0, 101310, 0, 0, 0, 0, 0, 0, 3505, 8707, 0, 6725, 128013, 0, + 92314, 0, 66391, 5479, 0, 6686, 0, 0, 983315, 42754, 0, 0, 0, 0, 0, 0, 128523, 0, 0, 4433, 41156, 0, 74971, 1443, 9339, 0, 92871, 10926, 0, - 43511, 0, 0, 983324, 0, 126086, 72236, 10021, 0, 101329, 0, 65914, 0, + 43511, 0, 0, 983321, 0, 126086, 72236, 10021, 0, 101329, 0, 65914, 0, 66749, 0, 6721, 217, 12466, 0, 0, 10443, 0, 68654, 0, 0, 0, 78334, 0, 41250, 0, 129532, 128375, 0, 0, 69232, 0, 41252, 66682, 0, 119637, 41249, 1366, 0, 0, 101326, 0, 0, 4397, 101324, 0, 66946, 9545, 101323, 0, 0, 0, @@ -26170,17 +25989,17 @@ static const unsigned int code_hash[] = { 128436, 68845, 0, 69724, 67412, 92952, 0, 43811, 0, 128924, 0, 11062, 128748, 0, 0, 0, 69276, 2901, 7865, 66945, 78354, 0, 78347, 0, 126123, 0, 66363, 0, 0, 0, 74967, 7414, 0, 0, 92691, 0, 128507, 885, 64772, 65180, - 0, 71267, 852, 0, 0, 0, 78614, 121174, 129092, 67809, 9609, 12156, 0, - 122930, 43586, 11035, 10411, 0, 13268, 6710, 0, 0, 0, 43853, 77949, 4315, - 0, 111104, 0, 43639, 43343, 0, 0, 0, 73074, 0, 65812, 43431, 0, 0, 0, 0, - 0, 129890, 0, 0, 0, 0, 994, 125222, 127104, 127103, 73966, 66890, 0, - 65291, 70753, 0, 0, 0, 0, 66873, 4186, 92531, 127106, 127105, 6718, 7330, - 4406, 122946, 8480, 7319, 64373, 128699, 4413, 0, 0, 3198, 0, 0, 92469, - 111126, 0, 128591, 128681, 0, 0, 0, 101321, 73023, 742, 0, 2893, 78738, - 0, 0, 0, 2553, 42294, 6756, 0, 73020, 8363, 0, 2993, 128381, 3916, 4301, - 0, 1141, 42407, 0, 0, 7572, 973, 0, 125077, 0, 2415, 0, 0, 9640, 42333, - 0, 0, 129546, 42486, 43381, 65390, 0, 69434, 1202, 0, 0, 0, 0, 68484, 0, - 0, 64542, 3260, 0, 65388, 43502, 69904, 0, 6738, 0, 0, 74193, 0, 0, 0, + 0, 71267, 852, 0, 0, 0, 78614, 121174, 129092, 67809, 9609, 12156, 0, 0, + 43586, 11035, 10411, 0, 13268, 6710, 0, 0, 0, 43853, 77949, 4315, 0, + 111104, 0, 43639, 43343, 0, 0, 0, 73074, 0, 65812, 43431, 0, 0, 0, 0, 0, + 129890, 0, 0, 0, 0, 994, 125222, 127104, 127103, 73966, 66890, 0, 65291, + 70753, 0, 0, 0, 0, 66873, 4186, 92531, 127106, 127105, 6718, 7330, 4406, + 0, 8480, 7319, 64373, 128699, 4413, 0, 0, 3198, 0, 0, 92469, 111126, 0, + 128591, 128681, 0, 0, 0, 101321, 73023, 742, 0, 2893, 78738, 0, 0, 0, + 2553, 42294, 6756, 0, 73020, 8363, 0, 2993, 128381, 3916, 4301, 0, 1141, + 42407, 0, 0, 7572, 973, 0, 125077, 0, 2415, 0, 0, 9640, 42333, 0, 0, + 129546, 42486, 43381, 65390, 0, 69434, 1202, 0, 0, 0, 0, 68484, 0, 0, + 64542, 3260, 0, 65388, 43502, 69904, 0, 6738, 0, 0, 74193, 0, 0, 0, 74641, 6312, 0, 74556, 12446, 0, 0, 128076, 8229, 1235, 0, 11472, 83064, 0, 0, 101366, 0, 0, 1740, 12872, 0, 985, 0, 0, 0, 12068, 983658, 0, 101363, 0, 0, 0, 13133, 65071, 110780, 12655, 12134, 0, 92934, 0, 66915, @@ -26191,21 +26010,21 @@ static const unsigned int code_hash[] = { 7525, 3346, 8339, 125004, 72705, 69462, 268, 0, 0, 5754, 94019, 0, 110684, 8336, 0, 0, 0, 8337, 8341, 0, 11388, 7522, 0, 0, 0, 11090, 6953, 125240, 0, 74973, 120708, 0, 0, 0, 0, 0, 110782, 0, 9038, 7887, 0, 0, - 42534, 64347, 0, 0, 67660, 120341, 0, 122933, 0, 120878, 0, 0, 73999, 0, + 42534, 64347, 0, 0, 67660, 120341, 0, 0, 0, 120878, 0, 0, 73999, 0, 64580, 0, 0, 64643, 0, 0, 74975, 0, 92227, 129052, 0, 83071, 83072, 83073, 119154, 0, 119153, 0, 0, 5349, 72440, 2160, 917554, 7411, 0, - 983224, 0, 0, 0, 42736, 70747, 5756, 983229, 92946, 0, 42764, 0, 0, + 983221, 0, 0, 0, 42736, 70747, 5756, 983226, 92946, 0, 42764, 0, 0, 119529, 5752, 120600, 0, 0, 0, 0, 0, 78893, 0, 0, 0, 125242, 0, 0, - 120331, 122957, 0, 0, 67501, 0, 10080, 83056, 12647, 0, 0, 69252, 66882, - 0, 0, 0, 0, 0, 72005, 72845, 0, 0, 0, 0, 0, 74213, 0, 0, 0, 0, 0, 6302, - 0, 0, 0, 0, 1417, 983226, 0, 9452, 0, 74393, 0, 0, 110850, 0, 65391, - 63789, 69251, 78659, 78660, 41264, 78658, 6426, 42398, 9179, 78654, - 64906, 41255, 42036, 0, 41269, 0, 41267, 42436, 67759, 42323, 42034, 0, - 0, 42475, 42033, 0, 0, 68916, 43948, 0, 78673, 78674, 1659, 919, 42784, + 120331, 0, 0, 0, 67501, 0, 10080, 83056, 12647, 0, 0, 69252, 66882, 0, 0, + 0, 0, 0, 72005, 72845, 0, 0, 0, 0, 0, 74213, 0, 0, 0, 0, 0, 6302, 0, 0, + 0, 0, 1417, 983223, 0, 9452, 0, 74393, 0, 0, 110850, 0, 65391, 63789, + 69251, 78659, 78660, 41264, 78658, 6426, 42398, 9179, 78654, 64906, + 41255, 42036, 0, 41269, 0, 41267, 42436, 67759, 42323, 42034, 0, 0, + 42475, 42033, 0, 0, 68916, 43948, 0, 78673, 78674, 1659, 919, 42784, 1671, 0, 6069, 9219, 0, 1661, 71489, 0, 92690, 10140, 9713, 78400, 119143, 125236, 0, 2306, 0, 0, 6068, 10612, 0, 0, 121314, 92561, 41462, - 0, 0, 0, 0, 0, 0, 0, 128204, 10635, 0, 983225, 0, 0, 0, 983235, 92251, 0, - 121029, 983227, 0, 8100, 0, 78669, 78670, 13301, 78667, 9667, 78665, 0, + 0, 0, 0, 0, 0, 0, 0, 128204, 10635, 0, 983222, 0, 0, 0, 983232, 92251, 0, + 121029, 983224, 0, 8100, 0, 78669, 78670, 13301, 78667, 9667, 78665, 0, 0, 11003, 9904, 0, 0, 0, 0, 0, 0, 78680, 78681, 78677, 78678, 0, 10313, 0, 0, 64320, 10265, 78686, 129404, 78684, 78685, 8945, 78683, 70750, 41, 0, 0, 0, 0, 8655, 0, 0, 71333, 0, 0, 0, 0, 2585, 0, 65254, 3126, 0, @@ -26215,7 +26034,7 @@ static const unsigned int code_hash[] = { 78688, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119925, 0, 983637, 0, 0, 0, 71494, 83399, 127541, 83398, 8022, 78808, 0, 73794, 0, 0, 83414, 119916, 0, 0, 0, 0, 0, 0, 63799, 78427, 12063, 78425, 78424, 0, 0, 0, 75025, 0, - 297, 0, 0, 68326, 0, 78429, 78428, 7077, 2497, 128651, 0, 983112, 0, 0, + 297, 0, 0, 68326, 0, 78429, 78428, 7077, 2497, 128651, 0, 983111, 0, 0, 0, 4292, 0, 74815, 10512, 0, 74814, 119931, 0, 72841, 2503, 65070, 1762, 69794, 2495, 0, 71230, 94069, 77984, 0, 12654, 0, 1899, 0, 2507, 0, 8726, 0, 65594, 0, 71272, 8892, 0, 0, 0, 0, 0, 420, 0, 0, 125130, 10797, 74637, @@ -26250,12 +26069,12 @@ static const unsigned int code_hash[] = { 66604, 72025, 0, 0, 0, 66600, 523, 92642, 71100, 74436, 0, 0, 0, 8608, 83435, 72828, 128704, 0, 127402, 11307, 66707, 67301, 67300, 67299, 0, 67304, 67303, 0, 0, 0, 0, 122654, 5908, 0, 0, 6744, 67310, 1699, 67308, - 67307, 67314, 67313, 6306, 67311, 983209, 72150, 69862, 3766, 2389, + 67307, 67314, 67313, 6306, 67311, 983207, 72150, 69862, 3766, 2389, 67305, 74569, 6611, 65700, 0, 0, 0, 42386, 0, 0, 2599, 917972, 119131, - 119049, 65717, 0, 0, 119654, 0, 0, 73538, 74203, 3760, 1718, 68160, 0, - 3776, 7335, 0, 0, 67324, 69861, 0, 69792, 0, 0, 3778, 0, 9462, 7824, 0, - 78896, 3768, 68142, 765, 72822, 3764, 0, 0, 113822, 129667, 12947, 0, 0, - 0, 118806, 73753, 0, 0, 0, 6829, 5225, 66901, 0, 0, 0, 0, 67319, 67318, + 119049, 65717, 0, 0, 119654, 0, 0, 0, 74203, 3760, 1718, 68160, 0, 3776, + 7335, 0, 0, 67324, 69861, 0, 69792, 0, 0, 3778, 0, 9462, 7824, 0, 78896, + 3768, 68142, 765, 72822, 3764, 0, 0, 113822, 129667, 12947, 0, 0, 0, + 118806, 73753, 0, 0, 0, 6829, 5225, 66901, 0, 0, 0, 0, 67319, 67318, 3162, 67316, 67323, 67322, 67321, 67320, 0, 5353, 128190, 74179, 67315, 0, 1010, 6851, 0, 67326, 67325, 127870, 6952, 67329, 67328, 67327, 2590, 120036, 65552, 120034, 120039, 7183, 120037, 120038, 120027, 120028, @@ -26284,13 +26103,13 @@ static const unsigned int code_hash[] = { 3140, 0, 0, 68007, 0, 67258, 10909, 0, 1428, 0, 67254, 67253, 7699, 12393, 67257, 0, 67256, 67255, 0, 0, 69389, 0, 0, 0, 0, 0, 67153, 0, 0, 127383, 69376, 64554, 0, 3878, 0, 42352, 1752, 0, 129702, 42506, 0, - 10199, 0, 983468, 125231, 0, 0, 0, 720, 0, 0, 0, 68831, 0, 1464, 128339, + 10199, 0, 983465, 125231, 0, 0, 0, 720, 0, 0, 0, 68831, 0, 1464, 128339, 0, 7974, 0, 125017, 68082, 0, 0, 0, 0, 74787, 0, 78864, 92258, 0, 0, 78863, 0, 1302, 66288, 0, 0, 0, 67152, 0, 983611, 983618, 0, 0, 3995, 0, 65608, 3714, 0, 0, 67262, 67261, 67260, 67259, 43251, 67264, 67263, 0, 120557, 92346, 8672, 68006, 11964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 92610, 0, 468, 0, 0, 0, 983475, 0, 0, 128544, 129397, 65907, 983164, 0, - 0, 0, 0, 0, 983473, 41743, 0, 0, 0, 74880, 0, 121001, 820, 41741, 0, + 92610, 0, 468, 0, 0, 0, 983472, 0, 0, 128544, 129397, 65907, 983163, 0, + 0, 0, 0, 0, 983470, 41743, 0, 0, 0, 74880, 0, 121001, 820, 41741, 0, 120667, 0, 64684, 126992, 128604, 126082, 69934, 65177, 6226, 353, 43645, 0, 119612, 120738, 67700, 0, 0, 0, 0, 42457, 120276, 0, 120277, 1884, 129637, 42418, 113678, 41157, 0, 42305, 120279, 0, 0, 41151, 0, 71430, 0, @@ -26305,7 +26124,7 @@ static const unsigned int code_hash[] = { 119083, 0, 71437, 119854, 69936, 0, 0, 3525, 6824, 0, 0, 119858, 128451, 0, 72239, 113738, 0, 71424, 0, 0, 0, 0, 0, 10727, 7212, 129071, 71957, 0, 0, 0, 67156, 808, 7207, 42387, 0, 0, 0, 0, 0, 0, 0, 0, 9225, 121149, 0, - 9145, 128060, 41018, 67841, 983159, 42300, 0, 3084, 983156, 125014, + 9145, 128060, 41018, 67841, 983158, 42300, 0, 3084, 983155, 125014, 41025, 6037, 0, 194885, 0, 10290, 0, 3083, 10322, 111017, 129030, 0, 41036, 0, 0, 43321, 65606, 0, 41032, 42388, 0, 64700, 0, 1445, 40961, 0, 0, 0, 40960, 0, 67727, 0, 2223, 64952, 10402, 0, 0, 0, 10603, 0, 118577, @@ -26322,15 +26141,15 @@ static const unsigned int code_hash[] = { 0, 13099, 71445, 70371, 0, 6435, 72154, 11362, 0, 0, 0, 0, 41420, 0, 3625, 74915, 41409, 71441, 0, 0, 0, 9672, 0, 0, 43317, 0, 0, 0, 41424, 917598, 0, 0, 0, 0, 41417, 1261, 0, 0, 12102, 119662, 41401, 0, 127538, - 129518, 0, 124943, 72765, 3275, 92472, 0, 0, 0, 118686, 0, 128946, 0, 0, - 125129, 983141, 10598, 0, 128633, 6711, 0, 2920, 0, 0, 0, 0, 19928, 0, 0, + 129518, 0, 124943, 72765, 3275, 92472, 0, 0, 0, 118686, 0, 0, 0, 0, + 125129, 983140, 10598, 0, 128633, 6711, 0, 2920, 0, 0, 0, 0, 19928, 0, 0, 3917, 0, 113756, 0, 0, 66588, 128078, 0, 0, 113721, 113758, 983081, 0, 0, 41184, 0, 232, 0, 0, 74170, 0, 0, 0, 0, 9094, 0, 0, 92585, 0, 1064, 0, 0, 10115, 0, 0, 0, 7862, 0, 13224, 0, 0, 66650, 0, 0, 72877, 1878, 0, 71434, 2911, 0, 41178, 5427, 0, 0, 0, 12617, 41174, 0, 67148, 67147, 0, 42413, 41167, 2406, 0, 0, 0, 0, 0, 9618, 128668, 0, 0, 0, 0, 41436, 9337, 126067, 0, 41456, 0, 119086, 11333, 0, 6703, 0, 125071, 1613, 0, 0, 0, - 983192, 0, 0, 74500, 41460, 78197, 0, 0, 194899, 67144, 65841, 0, 121109, + 983191, 0, 0, 74500, 41460, 78197, 0, 0, 194899, 67144, 65841, 0, 121109, 74064, 111146, 111144, 120375, 0, 111122, 0, 111121, 64687, 111120, 42592, 3871, 0, 128305, 9111, 111163, 0, 111156, 120366, 121462, 11150, 111154, 71488, 111179, 0, 111168, 0, 120362, 41587, 70391, 0, 74322, @@ -26338,8 +26157,8 @@ static const unsigned int code_hash[] = { 111127, 111140, 41595, 0, 0, 65801, 110587, 110586, 110585, 110584, 73712, 0, 41598, 3993, 121269, 1545, 40971, 121286, 72874, 0, 0, 0, 120767, 65286, 0, 0, 0, 0, 2201, 0, 0, 5402, 0, 0, 74462, 73457, 0, 0, - 78194, 64326, 40969, 0, 128110, 983703, 40968, 0, 121139, 0, 128891, 0, - 0, 128513, 8020, 0, 41012, 0, 0, 65805, 41006, 0, 0, 74605, 0, 118942, + 78194, 64326, 40969, 0, 128110, 983703, 40968, 0, 121139, 0, 0, 0, 0, + 128513, 8020, 0, 41012, 0, 0, 65805, 41006, 0, 0, 74605, 0, 118942, 43432, 0, 0, 92900, 0, 0, 68671, 120687, 0, 92958, 0, 0, 68332, 0, 40992, 0, 0, 0, 0, 0, 42235, 0, 1741, 42370, 0, 0, 0, 11413, 126583, 0, 0, 128769, 6470, 0, 74517, 0, 0, 120651, 40984, 0, 42742, 0, 12916, 6284, 0, @@ -26348,7 +26167,7 @@ static const unsigned int code_hash[] = { 2796, 0, 0, 9902, 0, 67988, 64785, 82995, 128822, 42631, 983040, 71890, 0, 74164, 41238, 10049, 11405, 0, 64368, 0, 120925, 0, 397, 12299, 42139, 0, 9590, 0, 0, 43661, 43819, 0, 6651, 3544, 0, 0, 9620, 0, 0, 0, 92229, - 1333, 7104, 0, 6425, 0, 0, 123561, 0, 0, 129725, 11976, 8554, 13055, 0, + 1333, 7104, 0, 6425, 0, 0, 123561, 0, 0, 0, 11976, 8554, 13055, 0, 110733, 0, 110731, 41218, 0, 0, 128673, 1883, 0, 0, 70443, 41225, 70788, 42419, 983707, 129450, 0, 127896, 0, 65809, 11837, 0, 129104, 7141, 0, 0, 0, 0, 0, 42363, 0, 0, 0, 0, 69949, 119157, 64732, 0, 0, 126983, 0, 0, @@ -26359,9 +26178,9 @@ static const unsigned int code_hash[] = { 11273, 120986, 43004, 0, 82988, 0, 961, 64307, 0, 0, 129752, 67711, 110615, 0, 1696, 0, 9762, 12105, 0, 110622, 110623, 3264, 110621, 110618, 43003, 110616, 110617, 0, 120359, 0, 128660, 0, 2322, 0, 70831, 11449, - 128187, 42868, 0, 0, 0, 0, 113746, 983238, 0, 129583, 66398, 0, 0, 0, 0, + 128187, 42868, 0, 0, 0, 0, 113746, 983235, 0, 129583, 66398, 0, 0, 0, 0, 0, 69494, 119224, 0, 0, 64421, 0, 113739, 0, 65823, 0, 11182, 0, 0, 0, - 7766, 55268, 0, 4598, 0, 65839, 0, 0, 3315, 10851, 0, 6179, 92602, 6180, + 7766, 55268, 0, 4598, 0, 65839, 0, 0, 0, 10851, 0, 6179, 92602, 6180, 129524, 11952, 0, 78648, 78651, 78646, 78647, 78644, 78645, 3801, 78643, 6176, 120580, 0, 0, 6177, 0, 78652, 78653, 6178, 0, 0, 0, 0, 2214, 8754, 0, 0, 2137, 0, 0, 0, 0, 66889, 0, 0, 0, 8974, 2308, 0, 74579, 0, 2318, @@ -26405,152 +26224,151 @@ static const unsigned int code_hash[] = { 0, 127321, 0, 127322, 0, 0, 0, 1050, 7549, 127319, 0, 9314, 0, 0, 0, 0, 0, 70434, 127314, 12527, 66504, 0, 0, 0, 0, 64333, 127312, 128547, 92594, 0, 0, 0, 129316, 0, 124960, 10360, 6746, 0, 0, 0, 0, 13085, 9233, 0, 0, - 0, 0, 983474, 0, 92766, 0, 121114, 983944, 74212, 42819, 10910, 118627, - 68044, 9896, 0, 0, 120915, 0, 0, 7970, 0, 0, 0, 0, 113699, 9849, 0, - 122910, 0, 0, 10487, 69714, 0, 10103, 0, 4769, 0, 129967, 0, 2283, 0, 0, - 74785, 0, 0, 0, 110595, 110596, 0, 110594, 64565, 4773, 0, 0, 0, 4770, 0, - 0, 0, 65457, 69441, 0, 0, 127338, 983593, 4774, 0, 68497, 2259, 0, 0, - 10215, 0, 0, 0, 0, 0, 74776, 92160, 4768, 0, 0, 4099, 0, 110699, 110700, - 110697, 2225, 0, 0, 0, 41183, 125217, 11255, 42814, 880, 0, 0, 0, 0, 0, - 67756, 65246, 0, 0, 129463, 7095, 0, 0, 0, 0, 0, 0, 2427, 0, 7093, 0, - 11585, 0, 9962, 0, 12223, 0, 78211, 1434, 42939, 0, 11573, 0, 0, 0, - 121257, 0, 0, 0, 0, 74437, 0, 113711, 917596, 0, 8740, 0, 3782, 64331, 0, - 65167, 1014, 0, 0, 0, 10835, 129987, 0, 0, 0, 0, 0, 118824, 7302, 0, - 67707, 0, 1150, 10547, 0, 0, 68427, 0, 0, 0, 0, 118788, 0, 0, 0, 42257, - 8010, 0, 0, 0, 9643, 0, 0, 12864, 0, 0, 0, 0, 0, 0, 0, 0, 1426, 68217, 0, - 68447, 129971, 0, 0, 0, 73701, 0, 0, 0, 65383, 0, 0, 0, 0, 0, 0, 43196, - 43194, 92549, 10744, 0, 990, 93772, 0, 0, 0, 0, 0, 66470, 0, 0, 0, 3945, - 0, 0, 0, 130039, 0, 127546, 127746, 1020, 73763, 92257, 118669, 0, 64748, - 0, 0, 10205, 0, 0, 10016, 0, 74051, 0, 43242, 125096, 2667, 0, 125037, 0, - 9911, 0, 0, 10097, 0, 0, 0, 118836, 0, 0, 0, 0, 68889, 10159, 113759, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 983343, 92291, 0, 127973, 72882, 0, 1041, 127182, - 6354, 0, 65364, 0, 0, 0, 72884, 0, 128477, 0, 65906, 127819, 72883, 0, - 128470, 5375, 72881, 0, 8215, 0, 10074, 0, 0, 0, 69899, 0, 0, 121426, - 41382, 0, 0, 5173, 65348, 527, 0, 0, 0, 128250, 0, 0, 0, 0, 0, 0, 42695, - 0, 42250, 0, 11187, 113695, 0, 1568, 66806, 0, 0, 113705, 0, 0, 129487, - 0, 0, 128839, 9069, 6144, 0, 0, 0, 0, 66783, 0, 74027, 118934, 66787, - 74580, 0, 110790, 6364, 0, 66794, 43508, 0, 92612, 0, 0, 0, 0, 128405, - 66449, 0, 0, 0, 0, 70714, 0, 70716, 0, 1044, 42411, 0, 0, 0, 0, 43239, 0, - 0, 0, 118572, 42450, 0, 0, 68479, 119237, 0, 0, 0, 0, 0, 69956, 11537, 0, - 121206, 0, 0, 0, 0, 1057, 566, 0, 0, 10907, 42274, 43464, 0, 118698, 0, - 78472, 71207, 42636, 0, 123603, 0, 0, 121171, 64659, 0, 127749, 0, 6357, - 6362, 0, 0, 2216, 9090, 0, 0, 0, 0, 68227, 0, 0, 0, 0, 1053, 12830, 0, 0, - 0, 1052, 1051, 459, 1060, 0, 66479, 0, 0, 0, 128061, 42490, 689, 6508, - 4163, 42298, 8639, 983338, 4246, 0, 43514, 42362, 0, 42337, 64596, 0, 0, - 0, 0, 0, 6359, 0, 43471, 0, 0, 0, 127274, 0, 6358, 6361, 1926, 6356, 0, - 7898, 0, 10935, 0, 127972, 121285, 0, 43685, 0, 0, 42910, 0, 8693, 0, 0, - 44010, 0, 120991, 121454, 0, 0, 0, 0, 129514, 0, 0, 0, 0, 73947, 0, - 129361, 92412, 0, 66477, 0, 0, 0, 43854, 71913, 0, 0, 0, 0, 72227, 65899, - 92275, 0, 0, 0, 68887, 0, 71057, 0, 0, 0, 0, 119183, 2923, 10853, 0, 0, - 0, 0, 72864, 0, 72773, 72772, 0, 120801, 65251, 122624, 68228, 0, 128548, - 0, 0, 5370, 70465, 2931, 73848, 0, 10188, 0, 118848, 0, 983942, 0, 0, - 120584, 72212, 0, 10844, 121016, 128195, 92424, 0, 0, 0, 286, 0, 1062, 0, - 0, 124127, 7395, 0, 1070, 128993, 0, 6095, 0, 0, 0, 127796, 126465, - 64497, 0, 0, 0, 0, 70054, 8189, 78272, 0, 0, 0, 0, 0, 113783, 42102, - 78276, 0, 0, 42101, 0, 78402, 67427, 33, 67425, 67424, 10824, 67430, - 67429, 67428, 427, 64723, 0, 0, 0, 0, 1031, 0, 0, 42104, 0, 0, 2328, 0, - 1071, 42899, 128486, 0, 7673, 0, 0, 1047, 194837, 0, 42908, 0, 0, 10651, - 0, 0, 0, 72433, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13216, 0, 69716, 0, - 0, 0, 0, 0, 92411, 69654, 0, 0, 129904, 2761, 129909, 0, 0, 0, 0, 8643, - 0, 0, 94021, 2757, 11067, 0, 74498, 8910, 10689, 0, 0, 0, 71173, 0, 9196, - 71214, 0, 0, 0, 0, 118911, 0, 0, 0, 0, 0, 0, 0, 0, 68130, 119616, 0, 0, - 42477, 67482, 0, 4495, 0, 0, 0, 0, 70080, 10992, 0, 0, 0, 0, 9318, 0, - 6002, 0, 73808, 0, 92601, 42249, 7639, 43995, 0, 0, 5454, 0, 0, 0, 0, 0, - 0, 0, 121189, 0, 119173, 0, 9704, 120686, 0, 78436, 78435, 11204, 0, 0, - 1731, 0, 92937, 0, 67990, 0, 0, 0, 126576, 127018, 71951, 55265, 0, 0, 0, - 0, 127257, 73826, 0, 3840, 0, 41432, 0, 0, 68430, 0, 43253, 128284, 0, - 3371, 92936, 0, 0, 1479, 69282, 0, 1109, 77997, 0, 129154, 0, 92782, 0, - 0, 8868, 399, 67978, 74842, 0, 0, 194839, 73498, 551, 0, 10156, 0, 92572, - 0, 2544, 65074, 0, 0, 0, 0, 0, 0, 0, 128713, 0, 0, 74268, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 68045, 0, 0, 0, 3447, 0, 0, 121414, 2549, 110818, 0, 0, - 43564, 8946, 0, 74411, 66864, 0, 70480, 7980, 0, 113698, 0, 119653, - 66489, 0, 64695, 128063, 0, 0, 0, 0, 0, 0, 43452, 0, 92993, 0, 10919, 0, - 67810, 0, 0, 0, 0, 6450, 10055, 0, 0, 0, 0, 42720, 0, 9626, 0, 128055, - 74447, 0, 125127, 92573, 0, 0, 0, 119075, 0, 0, 66486, 0, 0, 0, 0, 0, 0, - 75028, 983883, 74839, 0, 0, 0, 0, 0, 55286, 0, 1055, 917628, 0, 0, 0, - 70516, 12146, 118623, 73956, 66488, 0, 0, 0, 0, 0, 0, 42518, 0, 0, 0, - 7407, 74978, 0, 0, 0, 0, 0, 0, 0, 10231, 0, 66626, 0, 0, 92951, 0, 65927, - 0, 0, 69696, 0, 92389, 0, 0, 0, 68095, 92950, 0, 10555, 0, 0, 9091, - 10798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43222, 0, 74982, 0, 0, 120952, 0, 0, - 2992, 7826, 74321, 110879, 125103, 74981, 92628, 0, 129903, 128289, - 128203, 4361, 129597, 1306, 78770, 1497, 983628, 0, 0, 0, 8248, 0, - 127253, 7973, 128706, 0, 0, 73122, 983949, 0, 0, 2963, 120653, 0, 128554, - 0, 0, 64258, 0, 0, 69677, 74983, 65103, 0, 125008, 42625, 0, 72022, 0, 0, - 64905, 0, 9512, 0, 119076, 6443, 983267, 0, 9135, 0, 0, 123202, 0, 0, - 983882, 93788, 0, 0, 0, 93767, 64256, 0, 11669, 0, 0, 4524, 0, 129182, - 128390, 0, 74266, 0, 0, 0, 70119, 78410, 69809, 121031, 55219, 69815, - 93765, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2986, 0, 93763, 3437, 0, 6203, - 4247, 0, 11920, 8274, 68240, 129694, 1657, 0, 121276, 122951, 0, 2954, - 43506, 42837, 0, 0, 71179, 0, 0, 0, 66476, 68450, 0, 0, 0, 43362, 983135, - 129596, 11705, 0, 0, 0, 127354, 0, 11710, 0, 0, 0, 119507, 74429, 0, 0, - 1058, 129555, 0, 0, 5484, 1144, 0, 0, 0, 0, 0, 118972, 0, 65322, 0, 6441, - 0, 0, 2547, 66484, 43634, 0, 5871, 0, 0, 0, 0, 0, 0, 71204, 0, 0, 1865, - 0, 0, 69950, 0, 93021, 73713, 0, 71199, 65826, 2069, 0, 119092, 43999, - 2997, 0, 126588, 0, 65319, 0, 12316, 0, 0, 123630, 8776, 0, 0, 66294, - 13130, 0, 71191, 126625, 0, 10030, 11709, 12364, 983853, 0, 11704, 0, - 118641, 68672, 0, 0, 0, 0, 11706, 9710, 0, 82985, 0, 413, 65623, 0, 0, - 93980, 74446, 0, 1042, 0, 128378, 12171, 119240, 0, 69384, 4984, 0, 708, - 11391, 0, 0, 0, 983930, 1308, 0, 3673, 810, 0, 120933, 118567, 0, 0, - 1917, 3000, 0, 0, 0, 65628, 66387, 74470, 0, 0, 0, 10027, 0, 0, 0, 0, - 128831, 983168, 2980, 755, 0, 0, 65622, 0, 121012, 7277, 121022, 0, 0, 0, - 0, 8730, 0, 0, 0, 7274, 119250, 0, 7275, 0, 935, 0, 0, 377, 42325, - 121103, 0, 101133, 101132, 101135, 101134, 0, 74911, 2417, 101130, 0, - 19912, 0, 0, 101128, 101127, 0, 101129, 101124, 7248, 101126, 101125, - 1781, 5496, 3627, 62, 1649, 0, 964, 0, 0, 0, 0, 92897, 0, 0, 127364, 0, - 43689, 127911, 66287, 78812, 64389, 66575, 0, 73041, 0, 129687, 0, 7677, - 2991, 3293, 0, 0, 0, 72201, 0, 11341, 127049, 0, 65625, 9714, 11692, 0, - 0, 120850, 6478, 10195, 43673, 65237, 6241, 0, 0, 0, 6238, 0, 129889, 0, - 4409, 0, 0, 67170, 0, 0, 0, 94047, 6237, 5461, 66851, 9176, 92882, - 121341, 65231, 0, 0, 121182, 110581, 0, 44018, 0, 64765, 0, 0, 0, 5685, - 0, 2461, 0, 7091, 0, 0, 0, 68163, 0, 73030, 0, 0, 73928, 0, 0, 0, 0, 0, - 0, 110582, 0, 0, 68506, 0, 0, 0, 0, 0, 2542, 0, 0, 0, 128176, 5776, 0, 0, - 0, 0, 0, 11987, 0, 0, 75036, 68744, 0, 0, 10039, 42828, 0, 0, 0, 0, 0, - 10721, 67664, 43433, 0, 0, 41875, 0, 41870, 266, 129066, 0, 41873, 71271, - 0, 0, 0, 0, 0, 0, 41871, 66186, 3734, 7734, 43683, 8750, 110600, 66011, - 92899, 0, 127937, 0, 0, 10572, 0, 42906, 0, 64349, 7287, 0, 0, 0, 0, - 11167, 69220, 0, 43429, 0, 1697, 0, 0, 68633, 7286, 0, 128738, 10031, - 78754, 0, 68645, 8620, 0, 42162, 0, 0, 7285, 0, 119577, 0, 66842, 43677, - 41583, 0, 65799, 129332, 0, 0, 0, 0, 110806, 0, 3609, 0, 129448, 119074, - 125116, 126254, 128108, 73948, 0, 0, 0, 0, 129189, 42732, 92699, 74984, - 68620, 11691, 74985, 0, 0, 0, 0, 0, 6348, 243, 74075, 0, 0, 92309, - 123585, 0, 0, 10648, 8538, 43687, 0, 118723, 0, 70515, 0, 118954, 92886, - 13307, 129573, 92891, 0, 120770, 983850, 0, 0, 0, 0, 214, 0, 0, 0, 65893, - 0, 120488, 128386, 0, 92893, 0, 2603, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 43, 0, 0, 1016, 0, 0, 0, 3885, 92, 65456, 64608, 0, 0, 0, 70656, 113742, - 0, 0, 0, 128128, 983857, 0, 0, 6791, 983861, 127960, 0, 0, 0, 118976, 0, - 7328, 92358, 0, 7995, 8759, 43421, 0, 68029, 92860, 0, 125272, 0, 3197, - 0, 0, 0, 983151, 0, 11595, 0, 0, 43435, 0, 0, 0, 0, 0, 70660, 0, 741, - 83291, 5494, 0, 70668, 1990, 11107, 4498, 0, 0, 70658, 0, 0, 2960, 73779, - 0, 8969, 101256, 43424, 0, 101257, 2950, 101251, 101254, 101253, 370, 0, - 101250, 101249, 0, 0, 0, 122967, 0, 0, 0, 122900, 0, 0, 983256, 0, 2964, - 43663, 0, 6344, 0, 0, 10144, 0, 8252, 729, 66016, 78446, 0, 0, 0, 78740, - 43669, 9032, 0, 0, 0, 0, 0, 0, 0, 0, 74612, 3761, 101261, 101260, 101263, - 101262, 0, 0, 3850, 101258, 0, 128389, 0, 0, 0, 0, 8611, 0, 0, 0, 43691, - 125032, 0, 41802, 120540, 0, 0, 0, 0, 0, 3848, 101230, 113800, 127536, - 101227, 101226, 101229, 101228, 663, 0, 0, 0, 0, 0, 0, 0, 0, 13221, 0, 0, - 101244, 101243, 101246, 101245, 0, 65579, 12980, 68046, 12143, 101069, - 128067, 0, 43441, 41804, 101241, 101240, 101235, 101234, 101237, 101236, - 66329, 0, 72324, 101232, 0, 125038, 0, 129383, 101214, 101213, 0, 101215, - 101210, 0, 101212, 101211, 0, 1097, 129033, 0, 101209, 101208, 93828, 0, - 101205, 101204, 101207, 101206, 101201, 101200, 101203, 101202, 0, 13110, - 0, 983886, 68229, 1000, 0, 0, 101222, 1209, 101224, 101223, 92354, 1073, - 6321, 77878, 92818, 0, 68213, 0, 12167, 0, 0, 0, 0, 73673, 121500, 0, - 121501, 0, 6587, 0, 0, 0, 9231, 0, 2959, 101191, 0, 101193, 101188, - 101187, 101190, 101189, 101184, 0, 101186, 42941, 0, 0, 68434, 0, 70742, - 0, 0, 12290, 0, 0, 110801, 0, 77873, 8205, 110803, 5131, 118542, 0, 0, 0, - 0, 0, 1944, 78453, 0, 0, 119990, 119991, 12701, 78492, 11308, 119995, 0, - 113702, 66836, 119999, 74263, 92382, 120002, 120003, 7075, 101196, - 101199, 101198, 41817, 73934, 42275, 101194, 120012, 120013, 120014, - 42943, 6041, 0, 41899, 0, 8002, 0, 41902, 0, 0, 64332, 0, 7813, 119117, - 0, 41900, 120633, 101167, 7281, 78455, 7279, 12041, 93027, 101165, 12673, - 0, 129123, 9660, 0, 72984, 101161, 0, 0, 0, 92901, 2970, 0, 101180, - 101179, 77870, 101181, 0, 0, 101178, 0, 0, 0, 0, 0, 3486, 101174, 69498, - 101176, 101171, 101170, 101173, 101172, 0, 69920, 101169, 66834, 0, - 984006, 0, 68312, 101150, 65673, 1019, 78495, 4148, 0, 12289, 101147, - 4316, 0, 13119, 983932, 101145, 101144, 0, 0, 101141, 101140, 43434, - 41865, 101137, 9163, 8659, 9072, 5867, 13302, 7622, 7120, 0, 0, 0, 0, - 7400, 5416, 101160, 101159, 10817, 101153, 101156, 101155, 0, 68162, - 41855, 41867, 0, 983228, 0, 11536, 71988, 0, 7115, 0, 0, 5498, 7337, + 0, 0, 0, 0, 92766, 0, 121114, 983944, 74212, 42819, 10910, 118627, 68044, + 9896, 0, 0, 120915, 0, 0, 7970, 0, 0, 0, 0, 113699, 9849, 0, 122910, 0, + 0, 10487, 69714, 0, 10103, 0, 4769, 0, 129967, 0, 2283, 0, 0, 74785, 0, + 0, 0, 110595, 110596, 0, 110594, 64565, 4773, 0, 0, 0, 4770, 0, 0, 0, + 65457, 69441, 0, 0, 127338, 983593, 4774, 0, 68497, 2259, 0, 0, 10215, 0, + 0, 0, 0, 0, 74776, 92160, 4768, 0, 0, 4099, 0, 110699, 110700, 110697, + 2225, 0, 0, 0, 0, 125217, 11255, 42814, 880, 0, 0, 0, 0, 0, 67756, 65246, + 0, 0, 129463, 7095, 0, 0, 0, 0, 0, 0, 2427, 0, 7093, 0, 11585, 0, 9962, + 0, 12223, 0, 78211, 1434, 42939, 0, 11573, 0, 0, 0, 121257, 0, 0, 0, 0, + 74437, 0, 113711, 917596, 0, 8740, 0, 3782, 64331, 0, 65167, 1014, 0, 0, + 0, 10835, 129987, 0, 0, 0, 0, 0, 118824, 7302, 0, 67707, 0, 1150, 10547, + 0, 0, 68427, 0, 0, 0, 0, 118788, 0, 0, 0, 42257, 8010, 0, 0, 0, 9643, 0, + 0, 12864, 0, 0, 0, 0, 0, 0, 0, 0, 1426, 68217, 0, 68447, 129971, 0, 0, 0, + 73701, 0, 0, 0, 65383, 0, 0, 0, 0, 0, 0, 43196, 43194, 92549, 10744, 0, + 990, 93772, 0, 0, 0, 0, 0, 66470, 0, 0, 0, 3945, 0, 0, 0, 130039, 0, + 127546, 127746, 1020, 73763, 92257, 118669, 0, 64748, 0, 0, 10205, 0, 0, + 10016, 0, 74051, 0, 43242, 125096, 2667, 0, 125037, 0, 9911, 0, 0, 10097, + 0, 0, 0, 118836, 0, 0, 0, 0, 68889, 10159, 113759, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 983340, 92291, 0, 127973, 72882, 0, 1041, 127182, 6354, 0, 65364, + 0, 0, 0, 72884, 0, 128477, 0, 65906, 127819, 72883, 0, 128470, 5375, + 72881, 0, 8215, 0, 10074, 0, 0, 0, 69899, 0, 0, 121426, 41382, 0, 0, + 5173, 65348, 527, 0, 0, 0, 128250, 0, 0, 0, 0, 0, 0, 42695, 0, 42250, 0, + 11187, 113695, 0, 1568, 66806, 0, 0, 113705, 0, 0, 129487, 0, 0, 128839, + 9069, 6144, 0, 0, 0, 0, 66783, 0, 74027, 118934, 66787, 74580, 0, 110790, + 6364, 0, 66794, 43508, 0, 92612, 0, 0, 0, 0, 128405, 66449, 0, 0, 0, 0, + 70714, 0, 70716, 0, 1044, 42411, 0, 0, 0, 0, 43239, 0, 0, 0, 118572, + 42450, 0, 0, 68479, 119237, 0, 0, 0, 0, 0, 69956, 11537, 0, 121206, 0, 0, + 0, 0, 1057, 566, 0, 0, 10907, 42274, 43464, 0, 118698, 0, 78472, 71207, + 42636, 0, 123603, 0, 0, 121171, 64659, 0, 127749, 0, 6357, 6362, 0, 0, + 2216, 9090, 0, 0, 0, 0, 68227, 0, 0, 0, 0, 1053, 12830, 0, 0, 0, 1052, + 1051, 459, 1060, 0, 66479, 0, 0, 0, 128061, 42490, 689, 6508, 4163, + 42298, 8639, 983335, 4246, 0, 43514, 42362, 0, 42337, 64596, 0, 0, 0, 0, + 0, 6359, 0, 43471, 0, 0, 0, 127274, 0, 6358, 6361, 1926, 6356, 0, 7898, + 0, 10935, 0, 127972, 121285, 0, 43685, 0, 0, 42910, 0, 8693, 0, 0, 44010, + 0, 120991, 121454, 0, 0, 0, 0, 129514, 0, 0, 0, 0, 73947, 0, 129361, + 92412, 0, 66477, 0, 0, 0, 43854, 71913, 0, 0, 0, 0, 72227, 65899, 92275, + 0, 0, 0, 68887, 0, 71057, 0, 0, 0, 0, 119183, 2923, 10853, 0, 0, 0, 0, + 72864, 0, 72773, 72772, 0, 120801, 65251, 122624, 68228, 0, 128548, 0, 0, + 5370, 70465, 2931, 73848, 0, 10188, 0, 118848, 0, 983942, 0, 0, 120584, + 72212, 0, 10844, 121016, 128195, 92424, 0, 0, 0, 286, 0, 1062, 0, 0, 0, + 7395, 0, 1070, 128993, 0, 6095, 0, 0, 0, 127796, 126465, 64497, 0, 0, 0, + 0, 70054, 8189, 78272, 0, 0, 0, 0, 0, 113783, 42102, 78276, 0, 0, 42101, + 0, 78402, 67427, 33, 67425, 67424, 10824, 67430, 67429, 67428, 427, + 64723, 0, 0, 0, 0, 1031, 0, 0, 42104, 0, 0, 2328, 0, 1071, 42899, 128486, + 0, 7673, 0, 0, 1047, 194837, 0, 42908, 0, 0, 10651, 0, 0, 0, 72433, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13216, 0, 69716, 0, 0, 0, 0, 0, 92411, + 69654, 0, 0, 129904, 2761, 129909, 0, 0, 0, 0, 8643, 0, 0, 94021, 2757, + 11067, 0, 74498, 8910, 10689, 0, 0, 0, 71173, 0, 9196, 71214, 0, 0, 0, 0, + 118911, 0, 0, 0, 0, 0, 0, 0, 0, 68130, 119616, 0, 0, 42477, 67482, 0, + 4495, 0, 0, 0, 0, 70080, 10992, 0, 0, 0, 0, 9318, 0, 6002, 0, 73808, 0, + 92601, 42249, 7639, 43995, 0, 0, 5454, 0, 0, 0, 0, 0, 0, 0, 121189, 0, + 119173, 0, 9704, 120686, 0, 78436, 78435, 11204, 0, 0, 1731, 0, 92937, 0, + 67990, 0, 0, 0, 126576, 127018, 71951, 55265, 0, 0, 0, 0, 127257, 73826, + 0, 3840, 0, 41432, 0, 0, 68430, 0, 43253, 128284, 0, 3371, 92936, 0, 0, + 1479, 69282, 0, 1109, 77997, 0, 129154, 0, 92782, 0, 0, 8868, 399, 67978, + 74842, 0, 0, 194839, 0, 551, 0, 10156, 0, 92572, 0, 2544, 65074, 0, 0, 0, + 0, 0, 0, 0, 128713, 0, 0, 74268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68045, 0, + 0, 0, 3447, 0, 0, 121414, 2549, 110818, 0, 0, 43564, 8946, 0, 74411, + 66864, 0, 70480, 7980, 0, 113698, 0, 119653, 66489, 0, 64695, 128063, 0, + 0, 0, 0, 0, 0, 43452, 0, 92993, 0, 10919, 0, 67810, 0, 0, 0, 0, 6450, + 10055, 0, 0, 0, 0, 42720, 0, 9626, 0, 128055, 74447, 0, 125127, 92573, 0, + 0, 0, 119075, 0, 0, 66486, 0, 0, 0, 0, 0, 0, 75028, 983883, 74839, 0, 0, + 0, 0, 0, 55286, 0, 1055, 917628, 0, 0, 0, 70516, 12146, 118623, 73956, + 66488, 0, 0, 0, 0, 0, 0, 42518, 0, 0, 0, 7407, 74978, 0, 0, 0, 0, 0, 0, + 0, 10231, 0, 66626, 0, 0, 92951, 0, 65927, 0, 0, 69696, 0, 92389, 0, 0, + 0, 68095, 92950, 0, 10555, 0, 0, 9091, 10798, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 43222, 0, 74982, 0, 0, 120952, 0, 0, 2992, 7826, 74321, 110879, 125103, + 74981, 92628, 0, 129903, 128289, 128203, 4361, 129597, 1306, 78770, 1497, + 983628, 0, 0, 0, 8248, 0, 127253, 7973, 128706, 0, 0, 73122, 983949, 0, + 0, 2963, 120653, 0, 128554, 0, 0, 64258, 0, 0, 69677, 74983, 65103, 0, + 125008, 42625, 0, 72022, 0, 0, 64905, 0, 9512, 0, 119076, 6443, 983264, + 0, 9135, 0, 0, 123202, 0, 0, 983882, 93788, 0, 0, 0, 93767, 64256, 0, + 11669, 0, 0, 4524, 0, 129182, 128390, 0, 74266, 0, 0, 0, 70119, 78410, + 69809, 121031, 55219, 69815, 93765, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2986, 0, 93763, 3437, 0, 6203, 4247, 0, 11920, 8274, 68240, 129694, 1657, + 0, 121276, 0, 0, 2954, 43506, 42837, 0, 0, 71179, 0, 0, 0, 66476, 68450, + 0, 0, 0, 43362, 983134, 129596, 11705, 0, 0, 0, 127354, 0, 11710, 0, 0, + 0, 0, 74429, 0, 0, 1058, 129555, 0, 0, 5484, 1144, 0, 0, 0, 0, 0, 118972, + 0, 65322, 0, 6441, 0, 0, 2547, 66484, 43634, 0, 5871, 0, 0, 0, 0, 0, 0, + 71204, 0, 0, 1865, 0, 0, 69950, 0, 93021, 73713, 0, 71199, 65826, 2069, + 0, 119092, 43999, 2997, 0, 126588, 0, 65319, 0, 12316, 0, 0, 123630, + 8776, 0, 0, 66294, 13130, 0, 71191, 126625, 0, 10030, 11709, 12364, + 983853, 0, 11704, 0, 118641, 68672, 0, 0, 0, 0, 11706, 9710, 0, 82985, 0, + 413, 65623, 0, 0, 0, 74446, 0, 1042, 0, 128378, 12171, 119240, 0, 69384, + 4984, 0, 708, 11391, 0, 0, 0, 983930, 1308, 0, 3673, 810, 0, 120933, + 118567, 0, 0, 1917, 3000, 0, 0, 0, 65628, 66387, 74470, 0, 0, 0, 10027, + 0, 0, 0, 0, 128831, 983167, 2980, 755, 0, 0, 65622, 0, 121012, 7277, + 121022, 0, 0, 0, 0, 8730, 0, 0, 0, 7274, 119250, 0, 7275, 0, 935, 0, 0, + 377, 42325, 121103, 0, 101133, 101132, 101135, 101134, 0, 74911, 2417, + 101130, 0, 19912, 0, 0, 101128, 101127, 0, 101129, 101124, 7248, 101126, + 101125, 1781, 5496, 3627, 62, 1649, 0, 964, 0, 0, 0, 0, 92897, 0, 0, + 127364, 0, 43689, 127911, 66287, 78812, 64389, 66575, 0, 73041, 0, + 129687, 0, 7677, 2991, 3293, 0, 0, 0, 72201, 0, 11341, 127049, 0, 65625, + 9714, 11692, 0, 0, 120850, 6478, 10195, 43673, 65237, 6241, 0, 0, 0, + 6238, 0, 129889, 0, 4409, 0, 0, 67170, 0, 0, 0, 94047, 6237, 5461, 66851, + 9176, 92882, 121341, 65231, 0, 0, 121182, 110581, 0, 44018, 0, 64765, 0, + 0, 0, 5685, 0, 2461, 0, 7091, 0, 0, 0, 68163, 0, 73030, 0, 0, 73928, 0, + 0, 0, 0, 0, 0, 110582, 0, 0, 68506, 0, 0, 0, 0, 0, 2542, 0, 0, 0, 128176, + 5776, 0, 0, 0, 0, 0, 11987, 0, 0, 75036, 68744, 0, 0, 10039, 42828, 0, 0, + 0, 0, 0, 10721, 67664, 43433, 0, 0, 41875, 0, 41870, 266, 129066, 0, + 41873, 71271, 0, 0, 0, 0, 0, 0, 41871, 66186, 3734, 7734, 43683, 8750, + 110600, 66011, 92899, 0, 127937, 0, 0, 10572, 0, 42906, 0, 64349, 7287, + 0, 0, 0, 0, 11167, 69220, 0, 43429, 0, 1697, 0, 0, 68633, 7286, 0, + 128738, 10031, 78754, 0, 68645, 8620, 0, 42162, 0, 0, 7285, 0, 119577, 0, + 66842, 43677, 41583, 0, 65799, 129332, 0, 0, 0, 0, 110806, 0, 3609, 0, + 129448, 119074, 125116, 126254, 128108, 73948, 0, 0, 0, 0, 129189, 42732, + 92699, 74984, 68620, 11691, 74985, 0, 0, 0, 0, 0, 6348, 243, 74075, 0, 0, + 92309, 123585, 0, 0, 10648, 8538, 43687, 0, 118723, 0, 70515, 0, 118954, + 92886, 13307, 129573, 92891, 0, 120770, 983850, 0, 0, 0, 0, 214, 0, 0, 0, + 65893, 0, 120488, 128386, 0, 92893, 0, 2603, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 43, 0, 0, 1016, 0, 0, 0, 3885, 92, 65456, 64608, 0, 0, 0, 70656, + 113742, 0, 0, 0, 128128, 983857, 0, 0, 6791, 983861, 127960, 0, 0, 0, + 118976, 0, 7328, 92358, 0, 7995, 8759, 43421, 0, 68029, 92860, 0, 125272, + 0, 3197, 0, 0, 0, 983150, 0, 11595, 0, 0, 43435, 0, 0, 0, 0, 0, 70660, 0, + 741, 83291, 5494, 0, 70668, 1990, 11107, 4498, 0, 0, 70658, 0, 0, 2960, + 73779, 0, 8969, 101256, 43424, 0, 101257, 2950, 101251, 101254, 101253, + 370, 0, 101250, 101249, 0, 0, 0, 0, 0, 0, 0, 122900, 0, 0, 983253, 0, + 2964, 43663, 0, 6344, 0, 0, 10144, 0, 8252, 729, 66016, 78446, 0, 0, 0, + 78740, 43669, 9032, 0, 0, 0, 0, 0, 0, 0, 0, 74612, 3761, 101261, 101260, + 101263, 101262, 0, 0, 3850, 101258, 0, 128389, 0, 0, 0, 0, 8611, 0, 0, 0, + 43691, 125032, 0, 41802, 120540, 0, 0, 0, 0, 0, 3848, 101230, 113800, + 127536, 101227, 101226, 101229, 101228, 663, 0, 0, 0, 0, 0, 0, 0, 0, + 13221, 0, 0, 101244, 101243, 101246, 101245, 0, 65579, 12980, 68046, + 12143, 101069, 128067, 0, 43441, 41804, 101241, 101240, 101235, 101234, + 101237, 101236, 66329, 0, 72324, 101232, 0, 125038, 0, 129383, 101214, + 101213, 0, 101215, 101210, 0, 101212, 101211, 0, 1097, 129033, 0, 101209, + 101208, 93828, 0, 101205, 101204, 101207, 101206, 101201, 101200, 101203, + 101202, 0, 13110, 0, 983886, 68229, 1000, 0, 0, 101222, 1209, 101224, + 101223, 92354, 1073, 6321, 77878, 92818, 0, 68213, 0, 12167, 0, 0, 0, 0, + 73673, 121500, 0, 121501, 0, 6587, 0, 0, 0, 9231, 0, 2959, 101191, 0, + 101193, 101188, 101187, 101190, 101189, 101184, 0, 101186, 42941, 0, 0, + 68434, 0, 70742, 0, 0, 12290, 0, 0, 110801, 0, 77873, 8205, 110803, 5131, + 118542, 0, 0, 0, 0, 0, 1944, 78453, 0, 0, 119990, 119991, 12701, 78492, + 11308, 119995, 0, 113702, 66836, 119999, 74263, 92382, 120002, 120003, + 7075, 101196, 101199, 101198, 41817, 73934, 42275, 101194, 120012, + 120013, 120014, 42943, 6041, 0, 41899, 0, 8002, 0, 41902, 0, 0, 64332, 0, + 7813, 119117, 0, 41900, 120633, 101167, 7281, 78455, 7279, 12041, 93027, + 101165, 12673, 0, 129123, 9660, 0, 72984, 101161, 0, 0, 0, 92901, 2970, + 0, 101180, 101179, 77870, 101181, 0, 0, 101178, 0, 0, 0, 0, 0, 3486, + 101174, 69498, 101176, 101171, 101170, 101173, 101172, 0, 69920, 101169, + 66834, 0, 984006, 0, 68312, 101150, 65673, 1019, 78495, 4148, 0, 12289, + 101147, 4316, 0, 13119, 983932, 101145, 101144, 0, 0, 101141, 101140, + 43434, 41865, 101137, 9163, 8659, 9072, 5867, 13302, 7622, 7120, 0, 0, 0, + 0, 7400, 5416, 101160, 101159, 10817, 101153, 101156, 101155, 0, 68162, + 41855, 41867, 0, 983225, 0, 11536, 71988, 0, 7115, 0, 0, 5498, 7337, 41536, 0, 0, 92587, 7221, 8997, 0, 0, 0, 71949, 0, 0, 127814, 0, 0, 0, 0, 0, 295, 0, 0, 0, 0, 121292, 0, 43454, 63903, 63902, 63901, 122644, 3971, 0, 0, 2952, 0, 11038, 10901, 63900, 63899, 63898, 5198, 667, 43273, @@ -26575,7 +26393,7 @@ static const unsigned int code_hash[] = { 63932, 75050, 63929, 63928, 63927, 77934, 9806, 65566, 77933, 63922, 63921, 2086, 0, 63926, 2984, 5968, 63923, 0, 0, 129458, 11137, 13169, 5290, 2089, 0, 63827, 1088, 63825, 7268, 1084, 1085, 63829, 1083, 10131, - 7283, 0, 0, 0, 1092, 0, 7273, 983277, 44016, 43627, 0, 0, 0, 11809, 0, 0, + 7283, 0, 0, 0, 1092, 0, 7273, 983274, 44016, 43627, 0, 0, 0, 11809, 0, 0, 0, 2965, 7258, 8808, 0, 1089, 7278, 63937, 63936, 43405, 11106, 940, 5787, 10099, 63938, 101269, 63897, 101271, 2994, 101265, 101264, 101267, 101266, 77939, 77940, 77937, 77938, 74343, 93043, 72704, 660, 10127, 666, @@ -26601,36 +26419,36 @@ static const unsigned int code_hash[] = { 128100, 0, 42612, 43655, 0, 0, 0, 66468, 0, 0, 68623, 101423, 0, 0, 101420, 101419, 101422, 101421, 0, 1151, 101418, 73709, 127544, 0, 71106, 118722, 0, 0, 0, 0, 101437, 101436, 11527, 101438, 0, 0, 11538, 101434, - 0, 11020, 0, 66467, 101432, 8087, 71700, 101433, 9894, 101427, 73485, + 0, 11020, 0, 66467, 101432, 8087, 71700, 101433, 9894, 101427, 101430, 70824, 101424, 0, 78513, 8053, 0, 0, 0, 0, 101407, 101406, 0, 63845, - 101403, 78912, 78602, 101404, 13084, 42966, 8741, 0, 0, 101401, 0, 64605, - 83051, 101397, 473, 43415, 101394, 101393, 101396, 1087, 124966, 71275, - 101392, 0, 66439, 43218, 0, 0, 7237, 101414, 101417, 101416, 71996, - 101410, 92261, 101412, 121036, 4384, 74220, 101408, 2058, 917561, 0, - 129462, 0, 0, 0, 3857, 0, 0, 0, 64630, 0, 0, 74168, 127113, 125088, 4421, - 0, 0, 101381, 66400, 101383, 68431, 101377, 101376, 101379, 83053, 0, 0, - 69640, 127861, 0, 437, 73483, 0, 0, 0, 65236, 13290, 119180, 4997, 64306, - 0, 0, 4999, 0, 0, 0, 4711, 120769, 0, 2739, 0, 92915, 74834, 0, 127175, - 0, 0, 0, 0, 0, 1779, 6600, 6601, 0, 5325, 101390, 101389, 13058, 101391, - 101386, 0, 92186, 101387, 71845, 10575, 43399, 0, 101385, 101384, 1104, - 0, 0, 10655, 0, 0, 69497, 0, 1082, 110878, 0, 67401, 0, 0, 0, 0, 6783, 0, - 0, 42867, 69655, 44021, 6458, 0, 0, 0, 0, 0, 0, 1273, 43407, 0, 0, 0, 0, - 1313, 6322, 41720, 128627, 66433, 0, 0, 0, 11216, 0, 0, 0, 43437, 93833, - 0, 0, 0, 5122, 0, 72728, 129520, 70161, 0, 0, 0, 0, 0, 8303, 0, 128926, - 0, 10003, 0, 0, 0, 1686, 0, 0, 42834, 3664, 0, 126088, 121346, 0, 0, - 4324, 126, 0, 0, 0, 0, 0, 65166, 0, 0, 0, 0, 43817, 0, 43822, 0, 0, - 65600, 13002, 0, 0, 0, 1103, 0, 119575, 129452, 0, 13078, 0, 8116, 0, - 2050, 0, 0, 1102, 0, 6555, 0, 0, 74003, 74794, 0, 0, 42591, 127278, 0, - 1111, 0, 75047, 4707, 0, 0, 0, 0, 43468, 4522, 8645, 0, 74857, 0, 11352, - 0, 92787, 0, 2293, 0, 0, 0, 128265, 71709, 0, 121194, 0, 93827, 0, 0, 0, - 128488, 0, 160, 2677, 0, 0, 120141, 0, 983646, 70790, 0, 42770, 0, 71986, - 0, 43821, 113769, 0, 0, 43816, 0, 0, 1079, 3867, 64817, 0, 118549, 0, 0, - 64768, 0, 0, 4005, 983213, 0, 10991, 0, 92957, 917578, 92850, 917580, - 917575, 128314, 917577, 917576, 917571, 78534, 917573, 917572, 0, 0, - 128359, 73458, 0, 3339, 11448, 1106, 917591, 917590, 129192, 3340, - 917587, 917586, 917589, 917588, 917583, 10605, 1309, 74996, 120743, - 92650, 0, 0, 9485, 0, 129781, 0, 0, 0, 125002, 92533, 128487, 0, 129285, - 4338, 11238, 0, 66825, 0, 0, 0, 0, 122939, 0, 74128, 0, 0, 73680, 0, + 101403, 101402, 78602, 101404, 13084, 42966, 8741, 0, 0, 101401, 0, + 64605, 83051, 101397, 473, 43415, 101394, 101393, 101396, 1087, 124966, + 71275, 101392, 0, 66439, 43218, 0, 0, 7237, 101414, 101417, 101416, + 71996, 101410, 92261, 101412, 121036, 4384, 74220, 101408, 2058, 917561, + 0, 129462, 0, 0, 0, 3857, 0, 0, 0, 64630, 0, 0, 74168, 127113, 125088, + 4421, 0, 0, 101381, 66400, 101383, 68431, 101377, 101376, 101379, 83053, + 0, 0, 69640, 127861, 0, 437, 0, 0, 0, 0, 65236, 13290, 119180, 4997, + 64306, 0, 0, 4999, 0, 0, 0, 4711, 120769, 0, 2739, 0, 92915, 74834, 0, + 127175, 0, 0, 0, 0, 0, 1779, 6600, 6601, 0, 5325, 101390, 101389, 13058, + 101391, 101386, 0, 92186, 101387, 71845, 10575, 43399, 0, 101385, 101384, + 1104, 0, 0, 10655, 0, 0, 69497, 0, 1082, 110878, 0, 67401, 0, 0, 0, 0, + 6783, 0, 0, 42867, 69655, 44021, 6458, 0, 0, 0, 0, 0, 0, 1273, 43407, 0, + 0, 0, 0, 1313, 6322, 41720, 128627, 66433, 0, 0, 0, 11216, 0, 0, 0, + 43437, 93833, 0, 0, 0, 5122, 0, 72728, 129520, 70161, 0, 0, 0, 0, 0, + 8303, 0, 128926, 0, 10003, 0, 0, 0, 1686, 0, 0, 42834, 3664, 0, 126088, + 121346, 0, 0, 4324, 126, 0, 0, 0, 0, 0, 65166, 0, 0, 0, 0, 43817, 0, + 43822, 0, 0, 65600, 13002, 0, 0, 0, 1103, 0, 119575, 129452, 0, 13078, 0, + 8116, 0, 2050, 0, 0, 1102, 0, 6555, 0, 0, 74003, 74794, 0, 0, 42591, + 127278, 0, 1111, 0, 75047, 4707, 0, 0, 0, 0, 43468, 4522, 8645, 0, 74857, + 0, 11352, 0, 92787, 0, 2293, 0, 0, 0, 128265, 71709, 0, 121194, 0, 93827, + 0, 0, 0, 128488, 0, 160, 2677, 0, 0, 120141, 0, 983646, 70790, 0, 42770, + 0, 71986, 0, 43821, 113769, 0, 0, 43816, 0, 0, 1079, 3867, 64817, 0, + 118549, 0, 0, 64768, 0, 0, 4005, 983211, 0, 10991, 0, 92957, 917578, + 92850, 917580, 917575, 128314, 917577, 917576, 917571, 78534, 917573, + 917572, 0, 0, 128359, 73458, 0, 3339, 11448, 1106, 917591, 917590, + 917593, 3340, 917587, 917586, 917589, 917588, 917583, 10605, 1309, 74996, + 120743, 92650, 0, 0, 9485, 0, 129781, 0, 0, 0, 125002, 92533, 128487, 0, + 129285, 4338, 11238, 0, 66825, 0, 0, 0, 0, 0, 0, 74128, 0, 0, 73680, 0, 129438, 9553, 1590, 63777, 63776, 128677, 63782, 63781, 63780, 63779, 1583, 101525, 101528, 101527, 101522, 101521, 101524, 101523, 41522, 0, 92168, 983803, 66759, 0, 983580, 0, 0, 0, 0, 11394, 0, 983071, 0, 66823, @@ -26645,14 +26463,14 @@ static const unsigned int code_hash[] = { 121136, 0, 7950, 63772, 63771, 63770, 0, 63767, 63766, 2793, 63764, 0, 128501, 63769, 9530, 0, 92398, 0, 128642, 63763, 63762, 4595, 63760, 792, 92808, 0, 0, 8742, 0, 0, 0, 63744, 0, 0, 120815, 63748, 63747, 63746, - 63745, 5055, 0, 0, 1090, 0, 125268, 11665, 92830, 4558, 78919, 72211, 0, - 0, 0, 11513, 983978, 6157, 63775, 63774, 63773, 0, 12170, 9067, 92843, 0, + 63745, 5055, 0, 0, 1090, 0, 125268, 11665, 92830, 4558, 0, 72211, 0, 0, + 0, 11513, 983978, 6157, 63775, 63774, 63773, 0, 12170, 9067, 92843, 0, 10872, 129643, 43891, 43893, 43892, 129747, 43933, 0, 128231, 0, 0, 0, 0, - 0, 11063, 0, 43888, 0, 0, 128368, 43889, 0, 73807, 983105, 7386, 0, 0, + 0, 11063, 0, 43888, 0, 0, 128368, 43889, 0, 73807, 983104, 7386, 0, 0, 70295, 0, 0, 0, 71201, 128460, 0, 0, 0, 0, 69915, 2918, 66820, 65300, 0, 124898, 64726, 2790, 0, 3793, 42065, 127829, 0, 124901, 0, 0, 0, 0, 0, 92712, 0, 12923, 5270, 2166, 0, 0, 65813, 0, 128499, 0, 75012, 0, 10888, - 0, 93997, 94180, 3330, 129417, 0, 0, 0, 0, 0, 8220, 0, 0, 101581, 72457, + 0, 93997, 94180, 3330, 129417, 0, 0, 0, 0, 0, 8220, 0, 0, 101581, 101580, 1627, 101582, 0, 0, 5371, 101578, 0, 1826, 118794, 0, 0, 70023, 0, 0, 0, 71108, 0, 0, 124907, 0, 92207, 68125, 74898, 71353, 0, 72006, 71098, 70029, 0, 43116, 10190, 70019, 64346, 0, 101585, 66818, 101587, 70031, 0, @@ -26667,37 +26485,37 @@ static const unsigned int code_hash[] = { 5788, 127852, 0, 65491, 1831, 66020, 0, 984012, 92588, 0, 1343, 120784, 0, 0, 12018, 0, 0, 0, 0, 0, 4422, 4708, 3799, 101550, 119357, 0, 101547, 101546, 101549, 101548, 983095, 0, 1364, 0, 8038, 101545, 0, 12868, - 129560, 70425, 55223, 0, 64414, 110689, 122978, 0, 0, 0, 0, 0, 118802, - 118644, 42855, 118856, 42866, 73525, 0, 0, 0, 66438, 0, 983996, 119356, - 92853, 119354, 0, 123556, 0, 73013, 67685, 128062, 119350, 0, 11864, - 10404, 10340, 119352, 1556, 5274, 0, 127821, 10017, 9733, 0, 69488, 0, - 41373, 0, 0, 0, 0, 0, 349, 4863, 41371, 0, 0, 0, 0, 72295, 4398, 8543, - 65618, 128018, 129784, 0, 0, 0, 12441, 0, 119348, 119347, 4318, 10452, 0, - 8032, 0, 119349, 119344, 0, 127844, 121156, 0, 110729, 119345, 8597, 0, - 110727, 9864, 0, 92796, 0, 92799, 0, 0, 0, 7722, 0, 0, 92797, 0, 0, - 66590, 0, 0, 129850, 0, 0, 0, 4965, 0, 917536, 0, 123196, 0, 0, 0, 10436, - 119342, 43147, 119340, 10356, 10420, 982, 2756, 0, 983997, 0, 0, 11162, - 119338, 0, 92914, 0, 65110, 0, 0, 983800, 78543, 0, 118793, 0, 128112, - 119179, 64476, 1694, 8216, 0, 0, 78539, 0, 65620, 0, 78537, 0, 0, 42158, - 65621, 69955, 120324, 120327, 120326, 120321, 120320, 120323, 120322, - 12314, 65616, 55221, 43825, 983553, 119337, 68060, 119335, 0, 71874, - 123628, 128537, 119332, 73089, 0, 41347, 0, 0, 8842, 0, 0, 4379, 127393, - 12692, 0, 0, 66353, 71875, 0, 0, 92907, 0, 0, 71877, 120303, 65619, 9872, - 0, 0, 1846, 120309, 120308, 119256, 71192, 120305, 120304, 120307, 6442, + 129560, 70425, 55223, 0, 64414, 110689, 0, 0, 0, 0, 0, 0, 118802, 118644, + 42855, 118856, 42866, 0, 0, 0, 0, 66438, 0, 983996, 119356, 92853, + 119354, 0, 123556, 0, 73013, 67685, 128062, 119350, 0, 11864, 10404, + 10340, 119352, 1556, 5274, 0, 127821, 10017, 9733, 0, 69488, 0, 41373, 0, + 0, 0, 0, 0, 349, 4863, 41371, 0, 0, 0, 0, 72295, 4398, 8543, 65618, + 128018, 0, 0, 0, 0, 12441, 0, 119348, 119347, 4318, 10452, 0, 8032, 0, + 119349, 119344, 0, 127844, 121156, 0, 110729, 119345, 8597, 0, 110727, + 9864, 0, 92796, 0, 92799, 0, 0, 0, 7722, 0, 0, 92797, 0, 0, 66590, 0, 0, + 129850, 0, 0, 0, 4965, 0, 917536, 0, 123196, 0, 0, 0, 10436, 119342, + 43147, 119340, 10356, 10420, 982, 2756, 0, 983997, 0, 0, 11162, 119338, + 0, 92914, 0, 65110, 0, 0, 983800, 78543, 0, 118793, 0, 128112, 119179, + 64476, 1694, 8216, 0, 0, 78539, 0, 65620, 0, 78537, 0, 0, 42158, 65621, + 69955, 120324, 120327, 120326, 120321, 120320, 120323, 120322, 12314, + 65616, 55221, 43825, 983553, 119337, 68060, 119335, 0, 71874, 123628, + 128537, 119332, 73089, 0, 41347, 0, 0, 8842, 0, 0, 4379, 127393, 12692, + 0, 0, 66353, 71875, 0, 0, 92907, 0, 0, 71877, 120303, 65619, 9872, 0, 0, + 1846, 120309, 120308, 119256, 71192, 120305, 120304, 120307, 6442, 120317, 120316, 5379, 120318, 110717, 120312, 120315, 71876, 0, 65934, 66497, 0, 66986, 0, 0, 0, 0, 0, 0, 0, 0, 72002, 0, 6151, 12110, 0, - 129761, 0, 66959, 0, 0, 0, 0, 68335, 129655, 0, 0, 0, 0, 0, 66041, 9676, - 10202, 0, 0, 0, 64575, 78929, 11965, 0, 124936, 0, 0, 0, 0, 0, 9698, + 129761, 0, 66959, 0, 0, 0, 0, 68335, 0, 0, 0, 0, 0, 0, 66041, 9676, + 10202, 0, 0, 0, 64575, 126637, 11965, 0, 124936, 0, 0, 0, 0, 0, 9698, 66293, 0, 119651, 0, 0, 41921, 0, 0, 0, 119258, 0, 0, 0, 0, 0, 8012, 12355, 12353, 0, 0, 74107, 0, 0, 41925, 0, 41920, 65444, 0, 0, 41923, 12694, 0, 10112, 1294, 0, 120091, 0, 120092, 0, 0, 128474, 121400, 0, 0, 0, 8718, 0, 10284, 10268, 10380, 10316, 92593, 0, 71850, 0, 0, 92889, 0, 0, 0, 0, 9342, 12829, 0, 0, 101239, 127978, 0, 0, 69428, 0, 73767, 72347, 0, 7956, 598, 0, 72329, 93837, 0, 0, 128860, 0, 120041, 0, 0, 101242, 0, - 0, 847, 0, 9529, 0, 0, 0, 101247, 120035, 0, 0, 0, 67411, 0, 0, 119497, + 0, 847, 0, 9529, 0, 0, 0, 101247, 120035, 0, 0, 0, 67411, 0, 0, 0, 120040, 0, 128580, 0, 9624, 0, 0, 0, 65463, 1554, 0, 0, 0, 0, 71879, 0, 0, 0, 121161, 19963, 123566, 0, 72326, 92933, 71887, 10324, 10292, 65546, - 0, 68141, 8372, 0, 0, 83018, 120022, 10175, 10388, 42799, 0, 983181, + 0, 68141, 8372, 0, 0, 83018, 120022, 10175, 10388, 42799, 0, 983180, 10568, 0, 127400, 0, 0, 0, 983762, 0, 4366, 0, 983805, 0, 0, 42608, 0, 9884, 0, 0, 0, 0, 129180, 0, 128964, 0, 0, 1609, 0, 92773, 73448, 0, 11661, 0, 5818, 0, 0, 0, 9540, 0, 2554, 5158, 0, 2213, 0, 0, 78522, @@ -26706,7 +26524,7 @@ static const unsigned int code_hash[] = { 0, 0, 127061, 11005, 0, 66656, 127063, 0, 129936, 0, 127065, 43393, 0, 120643, 0, 0, 0, 0, 120798, 0, 0, 0, 0, 0, 0, 70435, 64356, 0, 0, 0, 383, 7154, 127815, 43495, 128809, 121448, 0, 0, 0, 11286, 0, 0, 0, 0, 0, 0, 0, - 42644, 73555, 129797, 129801, 8292, 0, 4980, 113726, 92674, 70130, 0, 0, + 42644, 129824, 129797, 129801, 8292, 0, 4980, 113726, 92674, 70130, 0, 0, 0, 0, 74912, 0, 10631, 83330, 100488, 68042, 0, 0, 7900, 101252, 0, 78779, 4198, 128555, 0, 0, 0, 123159, 0, 0, 12931, 0, 0, 0, 2088, 0, 72164, 129284, 0, 0, 69265, 0, 0, 0, 69694, 92838, 129794, 8593, 0, 0, 0, @@ -26721,71 +26539,70 @@ static const unsigned int code_hash[] = { 127558, 0, 7539, 0, 0, 0, 0, 0, 0, 0, 92898, 42567, 0, 0, 73886, 0, 129988, 12326, 0, 92848, 0, 0, 11355, 0, 0, 0, 0, 69437, 128222, 129803, 129811, 119537, 72327, 43005, 65342, 118902, 0, 0, 8644, 0, 0, 11186, - 74296, 41909, 0, 128682, 2791, 127472, 1891, 0, 0, 41907, 66647, 0, 0, - 41906, 0, 129672, 10773, 70206, 0, 0, 0, 6412, 2061, 8520, 13146, 0, - 92836, 83275, 65902, 2882, 0, 126232, 65852, 0, 92795, 0, 123627, 0, 0, - 92794, 0, 0, 128098, 0, 0, 0, 70871, 0, 92792, 0, 120087, 0, 0, 92793, - 93971, 0, 3844, 6842, 0, 0, 6612, 0, 0, 0, 0, 0, 783, 0, 0, 0, 983064, - 68032, 119225, 0, 0, 68378, 4556, 67839, 68480, 78663, 120069, 120074, - 67657, 10510, 4382, 74218, 42194, 0, 92806, 9177, 8902, 93958, 9839, - 92804, 120700, 92807, 0, 63999, 41904, 41917, 9788, 120973, 92805, 1862, - 0, 0, 0, 41915, 0, 41919, 63994, 41914, 7981, 0, 0, 0, 0, 0, 0, 0, - 120834, 0, 0, 0, 6784, 78788, 0, 0, 0, 0, 127534, 127484, 127476, 983874, - 0, 983960, 64289, 65289, 0, 129539, 129575, 64509, 0, 0, 126505, 11051, - 0, 66635, 55259, 65885, 0, 128310, 0, 0, 0, 0, 7500, 4506, 0, 0, 0, 0, 0, - 126609, 4040, 128680, 6167, 0, 42945, 0, 0, 0, 0, 7830, 43036, 0, 0, - 63990, 19947, 63988, 63987, 0, 63993, 10440, 9611, 2244, 71883, 0, 65260, - 63986, 11446, 63984, 92641, 3435, 119652, 0, 119108, 0, 128632, 0, 0, - 12748, 0, 0, 92705, 0, 78790, 0, 0, 63956, 42458, 63954, 63953, 63960, - 63959, 63958, 11596, 0, 11469, 69267, 42306, 2723, 0, 0, 70027, 0, 0, 0, - 128093, 2880, 0, 0, 0, 0, 128506, 3498, 4378, 0, 129825, 0, 65551, - 118928, 0, 43387, 0, 64415, 128898, 0, 0, 0, 0, 8161, 393, 12013, 0, - 92216, 126479, 63965, 63964, 63963, 42345, 0, 2174, 63967, 42498, 0, - 2927, 0, 63961, 0, 0, 983946, 0, 69699, 0, 42340, 0, 0, 0, 10730, 0, - 69688, 0, 64187, 118535, 0, 12437, 9813, 0, 42453, 1604, 9565, 0, 69701, - 69235, 42414, 110724, 129196, 0, 42301, 11372, 0, 917973, 0, 0, 63980, - 63979, 63978, 0, 128207, 12017, 63982, 63981, 73687, 0, 63977, 63976, - 72794, 0, 0, 0, 63971, 4347, 4416, 63968, 11009, 63974, 63973, 402, - 69390, 13147, 0, 0, 64646, 13228, 0, 0, 3515, 74252, 65261, 0, 0, 6259, - 0, 0, 0, 0, 0, 0, 74813, 74425, 0, 126998, 126114, 0, 0, 0, 129933, - 983717, 0, 0, 74301, 0, 122633, 0, 0, 74060, 69508, 0, 66235, 5145, 0, 0, - 128394, 0, 73120, 0, 7402, 0, 0, 0, 7952, 7832, 43382, 66616, 0, 983950, - 120852, 0, 127875, 64866, 0, 0, 0, 78784, 74248, 0, 0, 983197, 0, 0, 0, - 78656, 42390, 0, 0, 983940, 0, 0, 0, 92839, 9508, 0, 9544, 11520, 0, - 110898, 3377, 0, 129562, 0, 0, 0, 0, 66989, 66280, 0, 127198, 0, 0, 0, - 1955, 119565, 0, 0, 3076, 0, 42168, 73049, 66304, 0, 0, 8917, 42403, 301, - 0, 111175, 0, 0, 0, 0, 0, 0, 67819, 92987, 0, 0, 0, 983206, 0, 69403, - 3182, 0, 0, 0, 0, 0, 42169, 123162, 74244, 0, 42329, 0, 66326, 6841, 0, - 128913, 0, 1219, 3934, 71276, 11483, 74510, 101122, 121110, 42442, 65470, - 69565, 0, 64622, 7759, 42482, 485, 0, 0, 42290, 0, 0, 42280, 0, 0, 11655, - 64379, 127913, 42431, 10126, 42318, 0, 119631, 74397, 42470, 0, 68315, 0, - 110829, 74041, 0, 0, 0, 5411, 0, 0, 0, 64205, 0, 64206, 42393, 64478, - 1310, 125007, 0, 12052, 10643, 55271, 72727, 0, 121045, 0, 0, 118852, 0, - 0, 0, 0, 113826, 0, 0, 64385, 0, 0, 0, 0, 0, 0, 93848, 92560, 2713, 0, - 9650, 0, 0, 120602, 1406, 983650, 78174, 92659, 0, 68223, 0, 0, 0, 0, - 43475, 0, 65287, 1508, 127938, 8779, 10569, 75034, 0, 0, 0, 0, 0, 0, 0, - 70786, 0, 0, 128344, 9185, 0, 42932, 43403, 0, 0, 0, 0, 0, 0, 0, 0, - 12955, 0, 2888, 0, 0, 0, 0, 0, 0, 0, 2878, 0, 0, 0, 0, 0, 0, 129028, - 13203, 129722, 10429, 10365, 0, 0, 127165, 7503, 0, 113676, 68381, - 119658, 0, 8986, 0, 10632, 11934, 11452, 1332, 0, 0, 0, 0, 73741, 1791, - 8850, 9288, 0, 2892, 0, 43394, 555, 0, 0, 0, 0, 64172, 118899, 0, 0, 0, - 0, 8854, 0, 5858, 73101, 10582, 0, 0, 1361, 0, 0, 7905, 0, 65256, 0, - 41210, 0, 0, 71884, 0, 0, 0, 6828, 0, 92302, 0, 1342, 68440, 0, 64161, - 10903, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64381, 0, 0, 0, 42245, 126467, - 41972, 0, 0, 0, 9127, 0, 66619, 126489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11620, - 0, 1149, 68316, 0, 0, 0, 0, 0, 92492, 0, 118784, 0, 0, 0, 12838, 0, - 118819, 0, 0, 0, 0, 41087, 0, 0, 0, 0, 12036, 0, 124143, 0, 0, 0, 64428, - 12227, 0, 0, 0, 0, 125248, 120964, 0, 0, 0, 0, 0, 69566, 0, 0, 0, 0, 0, - 1743, 0, 0, 0, 65186, 122626, 0, 0, 0, 0, 64439, 0, 68062, 0, 111259, - 111258, 43866, 0, 111263, 3395, 9362, 111260, 0, 111257, 111256, 111255, - 0, 0, 41091, 3426, 1344, 111249, 111248, 126215, 4735, 11111, 6119, - 111251, 42699, 0, 0, 74818, 1423, 0, 0, 0, 0, 12039, 10559, 0, 0, 0, - 9472, 67734, 11929, 0, 0, 0, 0, 128826, 0, 11579, 0, 0, 128364, 0, 92185, - 0, 0, 1004, 92584, 0, 0, 0, 129755, 0, 2556, 0, 0, 72790, 0, 0, 9686, 0, - 0, 0, 70109, 111102, 0, 10718, 13154, 111100, 9139, 0, 0, 0, 0, 0, 0, 0, - 0, 92831, 92810, 41708, 12860, 41703, 0, 42090, 5403, 10352, 73917, + 74296, 41909, 0, 128682, 2791, 0, 1891, 0, 0, 41907, 66647, 0, 0, 41906, + 0, 0, 10773, 70206, 0, 0, 0, 6412, 2061, 8520, 13146, 0, 92836, 83275, + 65902, 2882, 0, 126232, 65852, 0, 92795, 0, 123627, 0, 0, 92794, 0, 0, + 128098, 0, 0, 0, 70871, 0, 92792, 0, 120087, 0, 0, 92793, 93971, 0, 3844, + 6842, 0, 0, 6612, 0, 0, 0, 0, 0, 783, 0, 0, 0, 983064, 68032, 119225, 0, + 0, 68378, 4556, 67839, 68480, 78663, 120069, 120074, 67657, 10510, 4382, + 74218, 42194, 0, 92806, 9177, 8902, 93958, 9839, 92804, 120700, 92807, 0, + 63999, 41904, 41917, 9788, 120973, 92805, 1862, 0, 0, 0, 41915, 0, 41919, + 63994, 41914, 7981, 0, 0, 0, 0, 0, 0, 0, 120834, 0, 0, 0, 6784, 78788, 0, + 0, 0, 0, 127534, 127484, 127476, 983874, 0, 983960, 64289, 65289, 0, + 129539, 129575, 64509, 0, 0, 126505, 11051, 0, 66635, 55259, 65885, 0, + 128310, 0, 0, 0, 0, 7500, 4506, 0, 0, 0, 0, 0, 126609, 4040, 128680, + 6167, 0, 42945, 0, 0, 0, 0, 7830, 43036, 0, 0, 63990, 19947, 63988, + 63987, 0, 63993, 10440, 9611, 2244, 71883, 0, 65260, 63986, 11446, 63984, + 92641, 3435, 119652, 0, 119108, 0, 128632, 0, 0, 12748, 0, 0, 92705, 0, + 78790, 0, 0, 63956, 42458, 63954, 63953, 63960, 63959, 63958, 11596, 0, + 11469, 69267, 42306, 2723, 0, 0, 70027, 0, 0, 0, 128093, 2880, 0, 0, 0, + 0, 128506, 3498, 4378, 0, 129825, 0, 65551, 118928, 0, 43387, 0, 64415, + 128898, 0, 0, 0, 0, 8161, 393, 12013, 0, 92216, 126479, 63965, 63964, + 63963, 42345, 0, 2174, 63967, 42498, 0, 2927, 0, 63961, 0, 0, 983946, 0, + 69699, 0, 42340, 0, 0, 0, 10730, 0, 69688, 0, 64187, 118535, 0, 12437, + 9813, 0, 42453, 1604, 9565, 0, 69701, 69235, 42414, 110724, 129196, 0, + 42301, 11372, 0, 917973, 0, 0, 63980, 63979, 63978, 0, 128207, 12017, + 63982, 63981, 73687, 0, 63977, 63976, 72794, 0, 0, 0, 63971, 4347, 4416, + 63968, 11009, 63974, 63973, 402, 69390, 13147, 0, 0, 64646, 13228, 0, 0, + 3515, 74252, 65261, 0, 0, 6259, 0, 0, 0, 0, 0, 0, 74813, 74425, 0, + 126998, 126114, 0, 0, 0, 129933, 983717, 0, 0, 74301, 0, 122633, 0, 0, + 74060, 69508, 0, 66235, 5145, 0, 0, 128394, 0, 73120, 0, 7402, 0, 0, 0, + 7952, 7832, 43382, 66616, 0, 983950, 120852, 0, 127875, 64866, 0, 0, 0, + 78784, 74248, 0, 0, 983196, 0, 0, 0, 78656, 42390, 0, 0, 983940, 0, 0, 0, + 92839, 9508, 0, 9544, 11520, 0, 0, 3377, 0, 129562, 0, 0, 0, 0, 66989, + 66280, 0, 127198, 0, 0, 0, 1955, 119565, 0, 0, 3076, 0, 42168, 73049, + 66304, 0, 0, 8917, 42403, 301, 0, 111175, 0, 0, 0, 0, 0, 0, 67819, 92987, + 0, 0, 0, 983204, 0, 69403, 3182, 0, 0, 0, 0, 0, 42169, 123162, 74244, 0, + 42329, 0, 66326, 6841, 0, 128913, 0, 1219, 3934, 71276, 11483, 74510, + 101122, 121110, 42442, 65470, 69565, 0, 64622, 7759, 42482, 485, 0, 0, + 42290, 0, 0, 42280, 0, 0, 11655, 64379, 127913, 42431, 10126, 42318, 0, + 119631, 74397, 42470, 0, 68315, 0, 110829, 74041, 0, 0, 0, 5411, 0, 0, 0, + 64205, 0, 64206, 42393, 64478, 1310, 125007, 0, 12052, 10643, 55271, + 72727, 0, 121045, 0, 0, 118852, 0, 0, 0, 0, 113826, 0, 0, 64385, 0, 0, 0, + 0, 0, 0, 93848, 92560, 2713, 0, 9650, 0, 0, 120602, 1406, 983650, 78174, + 92659, 0, 68223, 0, 0, 0, 0, 43475, 0, 65287, 1508, 127938, 8779, 10569, + 75034, 0, 0, 0, 0, 0, 0, 0, 70786, 0, 0, 128344, 9185, 0, 42932, 43403, + 0, 0, 0, 0, 0, 0, 0, 0, 12955, 0, 2888, 0, 0, 0, 0, 0, 0, 0, 2878, 0, 0, + 0, 0, 0, 0, 129028, 13203, 129722, 10429, 10365, 0, 0, 127165, 7503, 0, + 113676, 68381, 119658, 0, 8986, 0, 10632, 11934, 11452, 1332, 0, 0, 0, 0, + 73741, 1791, 8850, 9288, 0, 2892, 0, 43394, 555, 0, 0, 0, 0, 64172, + 118899, 0, 0, 0, 0, 8854, 0, 5858, 73101, 10582, 0, 0, 1361, 0, 0, 7905, + 0, 65256, 0, 41210, 0, 0, 71884, 0, 0, 0, 6828, 0, 92302, 0, 1342, 68440, + 0, 64161, 10903, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64381, 0, 0, 0, 42245, + 126467, 41972, 0, 0, 0, 9127, 0, 66619, 126489, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 11620, 0, 1149, 68316, 0, 0, 0, 0, 0, 92492, 0, 118784, 0, 0, 0, + 12838, 0, 118819, 0, 0, 0, 0, 41087, 0, 0, 0, 0, 12036, 0, 0, 0, 0, 0, + 64428, 12227, 0, 0, 0, 0, 125248, 120964, 0, 0, 0, 0, 0, 69566, 0, 0, 0, + 0, 0, 1743, 0, 0, 0, 65186, 122626, 0, 0, 0, 0, 64439, 0, 68062, 0, + 111259, 111258, 43866, 0, 111263, 3395, 9362, 111260, 0, 111257, 111256, + 111255, 0, 0, 41091, 3426, 1344, 111249, 111248, 126215, 4735, 11111, + 6119, 111251, 42699, 0, 0, 74818, 1423, 0, 0, 0, 0, 12039, 10559, 0, 0, + 0, 9472, 67734, 11929, 0, 0, 0, 0, 128826, 0, 11579, 0, 0, 128364, 0, + 92185, 0, 0, 1004, 92584, 0, 0, 0, 0, 0, 2556, 0, 0, 72790, 0, 0, 9686, + 0, 0, 0, 70109, 111102, 0, 10718, 13154, 111100, 9139, 0, 0, 0, 0, 0, 0, + 0, 0, 92831, 92810, 41708, 12860, 41703, 0, 42090, 5403, 10352, 73917, 129144, 111096, 111088, 5140, 3753, 118785, 41704, 0, 43078, 127789, - 2207, 129360, 0, 983207, 92362, 0, 0, 2410, 92525, 0, 0, 0, 0, 0, 0, 0, + 2207, 129360, 0, 983205, 92362, 0, 0, 2410, 92525, 0, 0, 0, 0, 0, 0, 0, 0, 119253, 0, 126601, 0, 2066, 74199, 0, 43463, 10659, 119623, 68863, 0, 1336, 0, 0, 69463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126639, 0, 272, 0, 0, 0, 0, 983965, 128133, 0, 0, 124940, 0, 1190, 42146, 1335, 42177, 43867, 0, 0, @@ -26795,9 +26612,9 @@ static const unsigned int code_hash[] = { 111193, 111192, 43097, 11688, 0, 78797, 194, 111186, 111185, 111184, 0, 0, 0, 11226, 4519, 70337, 10898, 43072, 70205, 0, 0, 0, 73094, 10695, 0, 7540, 0, 110984, 41859, 6067, 92790, 110982, 0, 110981, 13311, 92788, - 41857, 92791, 8359, 121224, 12689, 0, 983132, 64577, 92789, 111203, + 41857, 92791, 8359, 121224, 12689, 0, 983131, 64577, 92789, 111203, 68183, 111209, 111208, 6064, 110988, 0, 110979, 74142, 0, 111201, 111200, - 6051, 123613, 0, 0, 983374, 0, 983651, 0, 0, 0, 110864, 10537, 110862, + 6051, 123613, 0, 0, 983371, 0, 983651, 0, 0, 0, 110864, 10537, 110862, 1276, 0, 6549, 6052, 0, 0, 0, 0, 118687, 0, 0, 0, 0, 1960, 0, 71232, 66297, 0, 129313, 0, 0, 1345, 111213, 111212, 111211, 8956, 43083, 0, 111215, 64682, 0, 6430, 69563, 111210, 119814, 0, 0, 0, 119817, 0, 492, @@ -26819,7 +26636,7 @@ static const unsigned int code_hash[] = { 121097, 2847, 111028, 10330, 0, 1251, 7777, 41852, 125059, 111327, 111032, 111325, 12646, 0, 10259, 0, 65821, 75046, 6018, 0, 111324, 111323, 111322, 68372, 111319, 111318, 71893, 2558, 0, 64584, 111321, - 111320, 0, 0, 0, 0, 78911, 111308, 111307, 69500, 73987, 74599, 71895, + 111320, 0, 0, 0, 0, 111309, 111308, 111307, 69500, 73987, 74599, 71895, 93012, 0, 128715, 0, 12867, 111296, 0, 0, 11044, 111300, 111299, 8904, 11824, 65857, 0, 128674, 129027, 4387, 0, 0, 124920, 0, 0, 0, 0, 11842, 0, 0, 0, 5136, 1968, 983041, 126627, 1337, 0, 0, 0, 0, 66506, 0, 0, 0, 0, @@ -26827,7 +26644,7 @@ static const unsigned int code_hash[] = { 71894, 4276, 111314, 3619, 41638, 69691, 0, 42322, 8853, 111043, 0, 490, 0, 13231, 68384, 72310, 65350, 0, 0, 0, 68245, 42435, 6154, 0, 65354, 0, 0, 42397, 334, 72732, 42416, 65359, 65273, 74634, 128227, 4442, 10364, 0, - 778, 41626, 42455, 7989, 0, 3227, 69907, 111053, 0, 2915, 11502, 983214, + 778, 41626, 42455, 7989, 0, 3227, 69907, 111053, 0, 2915, 11502, 983212, 41702, 10309, 0, 0, 0, 0, 0, 0, 0, 127268, 127258, 127267, 65215, 64410, 127260, 71175, 0, 0, 0, 0, 0, 0, 41700, 110651, 69266, 126488, 0, 0, 42495, 0, 0, 0, 10460, 43364, 0, 1356, 3728, 42713, 0, 0, 42342, 10914, @@ -26837,76 +26654,75 @@ static const unsigned int code_hash[] = { 69888, 65508, 0, 0, 121451, 0, 0, 0, 129780, 69272, 4732, 128283, 0, 0, 0, 121113, 2236, 126551, 0, 6048, 0, 0, 73965, 0, 0, 0, 0, 10151, 9681, 4475, 0, 41142, 2100, 0, 0, 6035, 0, 123599, 10296, 0, 0, 0, 0, 0, 0, 0, - 983312, 68488, 10392, 10328, 0, 43462, 0, 0, 0, 8979, 0, 0, 983309, 0, 0, + 983309, 68488, 10392, 10328, 0, 43462, 0, 0, 0, 8979, 0, 0, 983306, 0, 0, 0, 10977, 0, 10344, 0, 65299, 10408, 0, 0, 121187, 66505, 0, 0, 0, 0, 0, - 122648, 43074, 73799, 0, 0, 122944, 0, 3446, 0, 129891, 128692, 0, 0, - 119582, 4474, 0, 43093, 6282, 0, 0, 127372, 0, 0, 0, 129881, 0, 0, 0, 0, - 66910, 67811, 92277, 0, 64948, 0, 74347, 0, 0, 0, 983981, 8194, 0, - 121165, 11010, 0, 8893, 0, 983988, 0, 0, 0, 983322, 7925, 0, 0, 113825, - 0, 1352, 11069, 7707, 0, 126486, 0, 0, 0, 0, 65605, 6040, 0, 10071, 0, - 128156, 43750, 0, 8899, 69873, 0, 0, 983316, 128208, 7820, 69615, 0, 0, - 7746, 1492, 0, 0, 0, 66866, 0, 11788, 65913, 0, 0, 43095, 0, 0, 92265, - 2999, 0, 120720, 0, 371, 120759, 6023, 0, 0, 11708, 0, 0, 6323, 0, 0, 0, - 8938, 6043, 65866, 0, 78910, 0, 72419, 0, 129480, 2589, 74332, 1689, - 7802, 0, 0, 0, 0, 66704, 0, 129992, 0, 0, 128127, 6049, 0, 4027, 0, 0, - 111334, 111333, 1503, 111331, 0, 111337, 11951, 111335, 2387, 0, 0, 8289, - 111330, 7326, 66514, 65514, 0, 64865, 0, 9668, 0, 0, 0, 0, 93060, 6036, - 92768, 4026, 74089, 127091, 0, 0, 75044, 110821, 0, 110819, 0, 0, 0, 0, - 6021, 0, 128288, 0, 43155, 0, 110822, 124152, 111343, 42691, 111341, - 111340, 2246, 166, 0, 0, 0, 10623, 408, 0, 111339, 13298, 0, 7426, 43694, - 0, 0, 8811, 0, 0, 129753, 0, 0, 74134, 983054, 0, 127811, 0, 0, 0, 6645, - 646, 128813, 0, 42129, 0, 120880, 0, 8697, 0, 120936, 122953, 0, 0, 0, - 5809, 1950, 0, 92432, 68339, 0, 42136, 0, 0, 0, 0, 0, 0, 111354, 983984, - 0, 0, 111349, 111348, 43330, 111346, 111353, 111352, 41567, 111350, 0, 0, - 0, 0, 111345, 111344, 8285, 0, 4509, 0, 128361, 0, 77774, 129851, 0, 0, - 41727, 0, 0, 0, 0, 0, 71188, 0, 74512, 7027, 3886, 0, 74023, 92888, 0, 0, - 126092, 94058, 119855, 0, 121455, 11707, 119852, 0, 7939, 10342, 92460, - 72747, 121408, 917569, 0, 71198, 94077, 119847, 0, 0, 7201, 0, 123554, - 120866, 983987, 1540, 0, 0, 124923, 0, 119856, 41718, 71177, 0, 0, - 128001, 118699, 0, 119040, 0, 9619, 120840, 0, 0, 0, 0, 3560, 0, 6070, - 129000, 0, 2922, 6082, 70147, 65009, 983973, 0, 0, 0, 0, 0, 0, 3607, - 65863, 0, 92487, 42153, 121042, 0, 983862, 2032, 0, 0, 0, 0, 129985, 0, - 43085, 6057, 0, 0, 0, 0, 0, 0, 0, 0, 638, 6083, 126976, 0, 0, 2305, 0, 0, - 118658, 6056, 10878, 0, 0, 6085, 119351, 0, 3915, 0, 0, 0, 0, 0, 0, 4028, - 1787, 0, 43096, 0, 0, 1768, 0, 0, 0, 128125, 0, 0, 583, 129137, 0, 0, - 66004, 0, 0, 0, 92859, 0, 55267, 120810, 128995, 43075, 65049, 0, 74531, - 0, 93009, 70694, 0, 0, 129375, 9869, 128815, 1771, 0, 0, 0, 0, 0, 0, - 119115, 113708, 0, 0, 74101, 0, 0, 0, 0, 83367, 0, 0, 0, 12539, 123631, - 0, 0, 129846, 73862, 69842, 9897, 0, 100561, 0, 124142, 0, 0, 0, 8931, 0, - 1415, 8866, 74552, 0, 128312, 0, 983566, 43106, 127275, 71089, 1580, - 92278, 68424, 0, 0, 7658, 3440, 78215, 1562, 0, 0, 129031, 0, 0, 0, 0, 0, - 0, 6028, 68900, 42892, 0, 111016, 0, 0, 0, 0, 0, 128269, 0, 66776, 42946, - 127276, 92849, 0, 72448, 120510, 11599, 0, 11602, 11591, 11574, 11581, - 11597, 11598, 6253, 11571, 11584, 70273, 11569, 122937, 8906, 0, 5755, - 2636, 0, 10815, 11619, 129094, 0, 7815, 11616, 11617, 70064, 11618, - 11604, 7869, 11612, 0, 42152, 0, 122941, 0, 92586, 126247, 0, 92173, 0, - 0, 6616, 0, 0, 120875, 391, 0, 0, 0, 42296, 11588, 0, 0, 0, 68397, 0, 0, - 42335, 983189, 0, 0, 7538, 94040, 0, 42491, 0, 0, 128088, 4576, 0, 0, - 43809, 4277, 0, 3563, 0, 42338, 368, 0, 0, 42412, 0, 78209, 119144, 0, - 43814, 983616, 1849, 0, 9921, 42451, 4253, 0, 0, 118688, 42404, 64657, - 73919, 3618, 78338, 0, 0, 0, 0, 0, 929, 6827, 42035, 0, 0, 0, 67847, 0, - 0, 0, 0, 0, 0, 0, 0, 4578, 64513, 0, 0, 0, 71049, 68090, 127086, 43305, - 0, 73462, 118530, 0, 42048, 10166, 0, 127095, 113810, 983128, 0, 983991, - 0, 0, 42483, 0, 0, 0, 42291, 0, 71047, 0, 6641, 525, 66404, 0, 8763, - 125091, 0, 0, 0, 0, 0, 42504, 42581, 74280, 6915, 42310, 0, 8559, 0, - 983994, 125100, 0, 0, 11666, 8679, 0, 1576, 42423, 0, 0, 73840, 983092, - 11374, 0, 10889, 129076, 0, 42462, 0, 77982, 0, 2718, 42424, 0, 0, - 127166, 0, 1179, 0, 0, 0, 363, 11015, 72229, 0, 43857, 0, 66692, 0, 0, 0, - 11041, 72018, 0, 0, 0, 0, 125184, 0, 92520, 0, 9492, 66709, 9212, 12833, - 0, 0, 1297, 122932, 0, 0, 0, 0, 0, 12924, 0, 0, 10090, 125249, 0, 42505, - 0, 42507, 0, 42311, 92940, 120919, 68401, 10759, 0, 0, 120924, 42351, - 42919, 9398, 66292, 0, 9422, 122942, 122943, 0, 0, 0, 129440, 92575, - 1603, 0, 0, 0, 0, 0, 69703, 11250, 0, 0, 10546, 0, 0, 11600, 0, 2797, - 73821, 42427, 306, 714, 3058, 120154, 0, 0, 0, 42395, 0, 11607, 0, 11198, - 127512, 0, 72232, 129067, 0, 42433, 0, 7603, 74063, 0, 42141, 0, 0, 0, - 129085, 8244, 362, 125069, 0, 8037, 0, 0, 0, 69510, 41606, 66696, 77912, - 0, 2093, 0, 120676, 122929, 41604, 0, 0, 0, 0, 10523, 1446, 42320, 0, - 120247, 64773, 42472, 0, 0, 1722, 5581, 0, 64496, 0, 0, 64914, 0, 42620, - 128603, 124988, 0, 0, 10549, 130035, 71190, 0, 0, 0, 0, 0, 71712, 0, 0, - 0, 0, 0, 0, 0, 7684, 66338, 0, 1174, 0, 0, 983621, 0, 0, 0, 42277, 0, - 42456, 65667, 0, 0, 0, 0, 42417, 0, 0, 120812, 42304, 0, 0, 0, 74443, - 127894, 0, 8313, 0, 0, 1316, 66690, 0, 0, 0, 0, 0, 0, 66844, 983715, 0, - 0, 0, 65200, 3383, 0, 0, 70063, 122947, 0, 0, 42420, 119185, 0, 0, + 122648, 43074, 73799, 0, 0, 0, 0, 3446, 0, 129891, 128692, 0, 0, 119582, + 4474, 0, 43093, 6282, 0, 0, 127372, 0, 0, 0, 129881, 0, 0, 0, 0, 66910, + 67811, 92277, 0, 64948, 0, 74347, 0, 0, 0, 983981, 8194, 0, 121165, + 11010, 0, 8893, 0, 983988, 0, 0, 0, 983319, 7925, 0, 0, 113825, 0, 1352, + 11069, 7707, 0, 126486, 0, 0, 0, 0, 65605, 6040, 0, 10071, 0, 128156, + 43750, 0, 8899, 69873, 0, 0, 983313, 128208, 7820, 69615, 0, 0, 7746, + 1492, 0, 0, 0, 66866, 0, 11788, 65913, 0, 0, 43095, 0, 0, 92265, 2999, 0, + 120720, 0, 371, 120759, 6023, 0, 0, 11708, 0, 0, 6323, 0, 0, 0, 8938, + 6043, 65866, 0, 0, 0, 72419, 0, 129480, 2589, 74332, 1689, 7802, 0, 0, 0, + 0, 66704, 0, 129992, 0, 0, 128127, 6049, 0, 4027, 0, 0, 111334, 111333, + 1503, 111331, 0, 111337, 11951, 111335, 2387, 0, 0, 8289, 111330, 7326, + 66514, 65514, 0, 64865, 0, 9668, 0, 0, 0, 0, 93060, 6036, 92768, 4026, + 74089, 127091, 0, 0, 75044, 110821, 0, 110819, 0, 0, 0, 0, 6021, 0, + 128288, 0, 43155, 0, 110822, 0, 111343, 42691, 111341, 111340, 2246, 166, + 0, 0, 0, 10623, 408, 0, 111339, 13298, 0, 7426, 43694, 0, 0, 8811, 0, 0, + 129753, 0, 0, 74134, 983054, 0, 127811, 0, 0, 0, 6645, 646, 128813, 0, + 42129, 0, 120880, 0, 8697, 0, 120936, 0, 0, 0, 0, 5809, 1950, 0, 92432, + 68339, 0, 42136, 0, 0, 0, 0, 0, 0, 111354, 983984, 0, 0, 111349, 111348, + 43330, 111346, 111353, 111352, 41567, 111350, 0, 0, 0, 0, 111345, 111344, + 8285, 0, 4509, 0, 128361, 0, 77774, 129851, 0, 0, 41727, 0, 0, 0, 0, 0, + 71188, 0, 74512, 7027, 3886, 0, 74023, 92888, 0, 0, 126092, 94058, + 119855, 0, 121455, 11707, 119852, 0, 7939, 10342, 92460, 72747, 121408, + 917569, 0, 71198, 94077, 119847, 0, 0, 7201, 0, 123554, 120866, 983987, + 1540, 0, 0, 124923, 0, 119856, 41718, 71177, 0, 0, 128001, 118699, 0, + 119040, 0, 9619, 120840, 0, 0, 0, 0, 3560, 0, 6070, 129000, 0, 2922, + 6082, 70147, 65009, 983973, 0, 0, 0, 0, 0, 0, 3607, 65863, 0, 92487, + 42153, 121042, 0, 983862, 2032, 0, 0, 0, 0, 129985, 0, 43085, 6057, 0, 0, + 0, 0, 0, 0, 0, 0, 638, 6083, 126976, 0, 0, 2305, 0, 0, 118658, 6056, + 10878, 0, 0, 6085, 119351, 0, 3915, 0, 0, 0, 0, 0, 0, 4028, 1787, 0, + 43096, 0, 0, 1768, 0, 0, 0, 128125, 0, 0, 583, 129137, 0, 0, 66004, 0, 0, + 0, 92859, 0, 55267, 120810, 128995, 43075, 65049, 0, 74531, 0, 93009, + 70694, 0, 0, 129375, 9869, 128815, 1771, 0, 0, 0, 0, 0, 0, 119115, + 113708, 0, 0, 74101, 0, 0, 0, 0, 83367, 0, 0, 0, 12539, 123631, 0, 0, + 129846, 73862, 69842, 9897, 0, 100561, 0, 0, 0, 0, 0, 8931, 0, 1415, + 8866, 74552, 0, 128312, 0, 983566, 43106, 127275, 71089, 1580, 92278, + 68424, 0, 0, 7658, 3440, 78215, 1562, 0, 0, 129031, 0, 0, 0, 0, 0, 0, + 6028, 68900, 42892, 0, 111016, 0, 0, 0, 0, 0, 128269, 0, 66776, 42946, + 127276, 92849, 0, 0, 120510, 11599, 0, 11602, 11591, 11574, 11581, 11597, + 11598, 6253, 11571, 11584, 70273, 11569, 0, 8906, 0, 5755, 2636, 0, + 10815, 11619, 129094, 0, 7815, 11616, 11617, 70064, 11618, 11604, 7869, + 11612, 0, 42152, 0, 0, 0, 92586, 126247, 0, 92173, 0, 0, 6616, 0, 0, + 120875, 391, 0, 0, 0, 42296, 11588, 0, 0, 0, 68397, 0, 0, 42335, 983188, + 0, 0, 7538, 94040, 0, 42491, 0, 0, 128088, 4576, 0, 0, 43809, 4277, 0, + 3563, 0, 42338, 368, 0, 0, 42412, 0, 78209, 119144, 0, 43814, 983616, + 1849, 0, 9921, 42451, 4253, 0, 0, 118688, 42404, 64657, 73919, 3618, + 78338, 0, 0, 0, 0, 0, 929, 6827, 42035, 0, 0, 0, 67847, 0, 0, 0, 0, 0, 0, + 0, 0, 4578, 64513, 0, 0, 0, 71049, 68090, 127086, 43305, 0, 73462, + 118530, 0, 42048, 10166, 0, 127095, 113810, 983127, 0, 983991, 0, 0, + 42483, 0, 0, 0, 42291, 0, 71047, 0, 6641, 525, 66404, 0, 8763, 125091, 0, + 0, 0, 0, 0, 42504, 42581, 74280, 6915, 42310, 0, 8559, 0, 983994, 125100, + 0, 0, 11666, 8679, 0, 1576, 42423, 0, 0, 73840, 983092, 11374, 0, 10889, + 129076, 0, 42462, 0, 77982, 0, 2718, 42424, 0, 0, 127166, 0, 1179, 0, 0, + 0, 363, 11015, 72229, 0, 43857, 0, 66692, 0, 0, 0, 11041, 72018, 0, 0, 0, + 0, 125184, 0, 92520, 0, 9492, 66709, 9212, 12833, 0, 0, 1297, 0, 0, 0, 0, + 0, 0, 12924, 0, 0, 10090, 125249, 0, 42505, 0, 42507, 0, 42311, 92940, + 120919, 68401, 10759, 0, 0, 120924, 42351, 42919, 9398, 66292, 0, 9422, + 0, 0, 0, 0, 0, 129440, 92575, 1603, 0, 0, 0, 0, 0, 69703, 11250, 0, 0, + 10546, 0, 0, 11600, 0, 2797, 73821, 42427, 306, 714, 3058, 120154, 0, 0, + 0, 42395, 0, 11607, 0, 11198, 127512, 0, 72232, 129067, 0, 42433, 0, + 7603, 74063, 0, 42141, 0, 0, 0, 129085, 8244, 362, 125069, 0, 8037, 0, 0, + 0, 69510, 41606, 66696, 77912, 0, 2093, 0, 120676, 0, 41604, 0, 0, 0, 0, + 10523, 1446, 42320, 0, 0, 64773, 42472, 0, 0, 1722, 5581, 0, 64496, 0, 0, + 64914, 0, 42620, 128603, 124988, 0, 0, 10549, 130035, 71190, 0, 0, 0, 0, + 0, 71712, 0, 0, 0, 0, 0, 0, 0, 7684, 66338, 0, 1174, 0, 0, 983621, 0, 0, + 0, 42277, 0, 42456, 65667, 0, 0, 0, 0, 42417, 0, 0, 120812, 42304, 0, 0, + 0, 74443, 127894, 0, 8313, 0, 0, 1316, 66690, 0, 0, 0, 0, 0, 0, 66844, + 983715, 0, 0, 0, 65200, 3383, 0, 0, 70063, 0, 0, 0, 42420, 119185, 0, 0, 983917, 0, 121079, 72369, 0, 42343, 124980, 42706, 1751, 42496, 65742, 13166, 0, 0, 0, 0, 0, 42683, 12697, 0, 0, 0, 125047, 0, 42346, 0, 0, 3757, 0, 0, 121075, 65869, 0, 9247, 74976, 3193, 0, 0, 42459, 7596, 7921, @@ -26931,17 +26747,17 @@ static const unsigned int code_hash[] = { 10502, 74457, 0, 11221, 41554, 0, 0, 0, 41557, 11209, 0, 11070, 119221, 0, 0, 73858, 41555, 9514, 0, 66771, 64641, 92447, 0, 7520, 73888, 77955, 0, 0, 0, 0, 0, 64527, 0, 118707, 12723, 0, 68776, 0, 0, 0, 78835, 4055, - 78826, 77960, 65212, 0, 127353, 12319, 0, 0, 983218, 7964, 65427, 0, + 78826, 77960, 65212, 0, 127353, 12319, 0, 0, 983216, 7964, 65427, 0, 65424, 72217, 120966, 0, 65425, 74890, 128251, 0, 0, 0, 3448, 10827, 0, 9866, 74527, 0, 0, 8625, 69783, 92304, 10477, 0, 0, 0, 65423, 0, 0, 0, 0, 6152, 0, 0, 6629, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11046, 11490, 0, 4485, 71126, 0, 0, 0, 0, 0, 5869, 118533, 119633, 0, 7040, 3588, 0, 12825, 0, - 0, 128569, 0, 0, 0, 0, 0, 126637, 0, 0, 128449, 64499, 65245, 127367, - 1171, 127368, 69717, 127365, 1805, 8772, 0, 127363, 9930, 65247, 0, 0, - 2338, 127362, 92695, 0, 0, 0, 69219, 0, 120104, 0, 120103, 72221, 120102, + 0, 128569, 0, 0, 0, 0, 0, 0, 0, 0, 128449, 64499, 65245, 127367, 1171, + 127368, 69717, 127365, 1805, 8772, 0, 127363, 9930, 65247, 0, 0, 2338, + 127362, 92695, 0, 0, 0, 69219, 0, 120104, 0, 120103, 72221, 120102, 129924, 118814, 8734, 4212, 0, 0, 66701, 0, 65862, 0, 120095, 42903, 0, 0, 0, 126117, 426, 0, 120098, 8251, 0, 65436, 0, 2120, 43302, 1224, 0, - 65576, 0, 66876, 1764, 6074, 0, 12858, 0, 0, 65439, 6378, 74566, 128885, + 65576, 0, 66876, 1764, 6074, 0, 12858, 0, 0, 65439, 6378, 74566, 0, 41960, 0, 41644, 0, 2129, 0, 9222, 0, 0, 4259, 9092, 0, 41961, 0, 0, 66357, 42331, 64935, 0, 0, 1293, 0, 2132, 0, 983569, 0, 2454, 0, 3613, 128837, 71117, 0, 0, 69681, 10978, 10840, 0, 10668, 72826, 127197, 9118, @@ -26955,129 +26771,128 @@ static const unsigned int code_hash[] = { 2430, 41678, 71492, 0, 43785, 113716, 0, 121263, 0, 0, 1921, 0, 19927, 70390, 65406, 0, 43786, 4284, 128346, 72210, 43789, 12841, 9229, 0, 42285, 0, 0, 0, 0, 3521, 0, 118690, 8325, 0, 65403, 0, 1854, 0, 0, 0, 0, - 0, 0, 0, 0, 4344, 0, 65433, 6076, 0, 0, 74764, 12074, 0, 0, 129148, 0, - 12934, 119555, 65432, 128877, 0, 6071, 65434, 0, 65435, 4053, 128623, 0, - 0, 0, 917934, 69823, 127463, 0, 121403, 127473, 8421, 73836, 0, 43705, - 502, 0, 65431, 0, 0, 0, 1303, 316, 7364, 0, 2136, 0, 120796, 64365, - 43480, 92639, 4860, 0, 127877, 0, 129728, 9583, 0, 5546, 0, 118565, 0, 0, - 0, 5544, 127475, 0, 70352, 5543, 128917, 72821, 12137, 5548, 0, 0, 10007, - 0, 127523, 6077, 0, 65452, 0, 119341, 11214, 65952, 0, 72226, 0, 0, 1319, + 0, 0, 0, 0, 4344, 0, 65433, 6076, 0, 0, 74764, 12074, 0, 0, 0, 0, 12934, + 119555, 65432, 128877, 0, 6071, 65434, 0, 65435, 4053, 128623, 0, 0, 0, + 917934, 69823, 127463, 0, 121403, 127473, 8421, 127472, 0, 43705, 502, 0, + 65431, 0, 0, 0, 1303, 316, 7364, 0, 2136, 0, 120796, 64365, 43480, 92639, + 4860, 0, 127877, 0, 129728, 9583, 0, 5546, 0, 118565, 0, 0, 0, 5544, + 127475, 0, 70352, 5543, 128917, 72821, 12137, 5548, 0, 0, 10007, 0, + 127523, 6077, 0, 65452, 0, 119341, 11214, 65952, 0, 72226, 0, 0, 1319, 74210, 65410, 67399, 92606, 0, 0, 118660, 0, 66716, 83513, 4691, 128619, 9345, 621, 92872, 0, 122889, 65411, 0, 74575, 121246, 65408, 73899, 0, 9474, 2812, 119118, 65412, 3786, 65409, 8894, 83246, 119611, 7923, 3716, - 92798, 0, 0, 0, 7012, 124122, 128439, 9566, 0, 94176, 0, 65012, 126242, - 545, 9575, 0, 10050, 12718, 0, 8859, 6820, 124915, 129941, 120740, 0, 0, - 9119, 2787, 0, 984000, 8507, 2012, 7985, 0, 0, 0, 0, 194634, 0, 410, 0, - 0, 120789, 120609, 0, 120378, 120379, 0, 0, 120374, 72742, 120376, - 120377, 120370, 120371, 120372, 120373, 3860, 120367, 72205, 74031, - 111131, 73685, 11748, 120365, 7941, 111134, 8749, 111132, 12698, 111129, - 361, 110793, 845, 67509, 0, 0, 4562, 72241, 2926, 0, 4569, 0, 110797, - 43487, 0, 0, 0, 74287, 122885, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6291, 0, 0, 0, - 9734, 0, 0, 0, 0, 127754, 7359, 83523, 43863, 0, 111150, 8769, 111148, - 111147, 111145, 4859, 111143, 111142, 0, 0, 0, 0, 12172, 111136, 0, - 127899, 111141, 64764, 4210, 111138, 0, 804, 0, 83520, 0, 70344, 0, 0, - 67202, 10091, 67200, 119257, 67206, 67205, 67204, 67203, 72302, 0, 0, 0, - 128959, 0, 1425, 92259, 119229, 11049, 0, 71480, 42649, 8482, 0, 0, - 66715, 67209, 11940, 67207, 664, 0, 0, 0, 70200, 127525, 0, 70194, 93061, - 111155, 68474, 111153, 6032, 67218, 67217, 7430, 194670, 70191, 0, 0, 0, - 0, 0, 41161, 0, 9765, 10993, 41162, 0, 70189, 1169, 111181, 0, 1905, - 6034, 41164, 64744, 43236, 0, 128800, 73110, 0, 0, 788, 0, 0, 111167, - 111128, 1663, 128976, 42901, 127237, 67211, 67210, 0, 0, 67215, 67214, - 67213, 67212, 111160, 111159, 111158, 111157, 0, 69492, 0, 111161, 43612, - 0, 0, 0, 10855, 67223, 9355, 67221, 65198, 120355, 0, 221, 0, 0, 0, - 121141, 7191, 118930, 72208, 125212, 0, 0, 0, 0, 67228, 67227, 43333, - 67225, 0, 0, 0, 67229, 0, 7245, 0, 74405, 69922, 72219, 111178, 3873, - 8367, 111174, 111173, 111172, 43649, 0, 111177, 111176, 0, 11164, 0, - 74403, 111171, 111170, 111169, 7682, 74404, 1462, 10235, 0, 0, 0, 0, 0, - 111130, 0, 0, 74402, 0, 92299, 0, 0, 74052, 0, 126127, 120549, 0, 64295, - 0, 0, 0, 0, 0, 120662, 0, 0, 67231, 67230, 10755, 55257, 11155, 128568, - 983137, 9470, 0, 127540, 0, 69680, 64384, 0, 128607, 0, 0, 0, 122987, - 73764, 8204, 0, 0, 0, 0, 0, 8728, 0, 10904, 73446, 19936, 7833, 0, 0, 0, - 0, 92546, 0, 0, 0, 8537, 0, 0, 0, 121244, 0, 0, 2254, 128193, 0, 0, 0, 0, - 3062, 0, 0, 0, 0, 0, 41160, 41147, 41158, 0, 120777, 0, 41155, 111116, - 111115, 111114, 0, 121332, 111119, 111118, 111117, 129878, 0, 129091, 0, - 0, 0, 64594, 2456, 66867, 0, 0, 0, 0, 3721, 0, 0, 1230, 2678, 0, 3597, - 917795, 0, 0, 92215, 0, 67737, 8352, 0, 0, 0, 64515, 121378, 0, 129128, - 67846, 0, 129767, 92466, 0, 0, 71338, 0, 8660, 0, 0, 0, 0, 0, 4483, 0, 0, - 0, 6080, 0, 0, 1746, 1315, 0, 70201, 0, 13140, 74508, 0, 0, 4480, 0, - 111113, 111112, 0, 67979, 0, 6360, 10897, 111106, 605, 68302, 110737, - 69875, 110735, 110736, 66681, 0, 0, 0, 0, 0, 0, 0, 10877, 118868, 64885, - 0, 0, 0, 0, 0, 0, 345, 0, 0, 64606, 9917, 0, 0, 92196, 0, 1776, 8422, - 43992, 0, 0, 0, 126543, 43328, 0, 0, 1295, 0, 42869, 0, 0, 0, 0, 128772, - 65123, 125210, 11293, 11288, 0, 0, 65666, 0, 92369, 65420, 0, 0, 4252, 0, - 0, 0, 706, 72800, 0, 0, 129931, 65419, 92177, 0, 8419, 65421, 0, 66702, - 0, 12670, 118608, 0, 0, 0, 72825, 65422, 83008, 0, 0, 0, 0, 0, 124153, - 9736, 4184, 65418, 0, 0, 74035, 0, 129955, 0, 0, 0, 0, 129447, 0, 7962, - 12211, 9837, 83505, 0, 0, 5719, 0, 129720, 119068, 73777, 1857, 0, 9927, - 0, 983959, 0, 10037, 0, 73695, 78322, 78319, 7818, 0, 0, 127769, 0, 0, 0, - 65077, 0, 78325, 78326, 78323, 43327, 43989, 0, 65828, 0, 0, 83499, 0, - 68390, 0, 110687, 78336, 78339, 9543, 78335, 78332, 78333, 0, 127964, 0, - 129552, 983914, 0, 69448, 0, 71429, 0, 0, 0, 11914, 69431, 0, 0, 0, 9949, - 0, 0, 119215, 0, 12073, 73519, 0, 0, 0, 101218, 2260, 0, 0, 0, 0, 0, 0, - 1939, 0, 0, 0, 69903, 0, 0, 0, 0, 6643, 92477, 128485, 0, 78330, 78331, - 78328, 78329, 0, 92551, 0, 0, 0, 0, 124124, 72417, 0, 0, 0, 0, 78341, - 78342, 120944, 78340, 129513, 127529, 92350, 3784, 78350, 0, 78348, - 78349, 78345, 43324, 78343, 78344, 2231, 0, 0, 0, 42467, 0, 0, 42894, - 78363, 13281, 78360, 78361, 78356, 78358, 78353, 64899, 0, 41149, 0, - 43162, 68096, 41150, 0, 10571, 67162, 67161, 67160, 67159, 6947, 41152, - 887, 9249, 6565, 64806, 74366, 0, 67158, 67157, 0, 10831, 67175, 67174, - 120232, 65827, 43325, 67178, 10168, 67176, 0, 0, 9190, 128497, 9666, - 41997, 0, 0, 0, 0, 0, 0, 129411, 0, 78508, 0, 78351, 78352, 0, 75063, - 72839, 983749, 0, 126604, 0, 0, 0, 983422, 0, 2270, 0, 129957, 0, 78365, - 0, 67189, 72818, 0, 0, 0, 0, 0, 0, 0, 72833, 101119, 78366, 78367, 0, 0, - 0, 0, 10137, 6121, 10995, 0, 71050, 8119, 0, 71052, 0, 0, 0, 0, 0, 0, 0, - 1394, 0, 0, 128960, 0, 67184, 2998, 67182, 67181, 67188, 67187, 67186, - 67185, 0, 101185, 0, 0, 67180, 42003, 0, 0, 67193, 67192, 67191, 67190, - 67197, 67196, 67195, 67194, 0, 72770, 43315, 71051, 0, 1593, 0, 125120, - 619, 4635, 0, 72875, 0, 128859, 118657, 0, 0, 0, 67199, 67198, 0, 42790, - 42006, 0, 0, 0, 128998, 10757, 9347, 127767, 0, 0, 74227, 78904, 0, - 74116, 128423, 121073, 120860, 0, 92427, 0, 0, 0, 0, 64590, 0, 4371, 0, - 0, 92478, 0, 0, 73977, 0, 0, 127847, 0, 120862, 0, 64550, 73745, 70451, - 0, 121013, 0, 0, 0, 129286, 0, 0, 0, 0, 9131, 118648, 125214, 983223, 0, - 0, 64260, 0, 12606, 0, 0, 0, 0, 562, 983614, 0, 129648, 66455, 127533, - 3219, 0, 0, 0, 1037, 0, 64491, 0, 78579, 78572, 78580, 4568, 549, 0, 0, - 0, 0, 0, 128095, 70851, 2205, 0, 0, 0, 0, 129716, 0, 10825, 8079, 118962, - 0, 0, 0, 128855, 0, 13071, 0, 0, 41049, 42840, 43614, 129341, 74881, - 74596, 127191, 5212, 0, 66402, 119191, 0, 9747, 0, 0, 129778, 984008, - 41047, 1668, 0, 0, 0, 1187, 0, 74416, 0, 0, 0, 0, 3240, 128518, 9213, 0, - 0, 0, 127174, 69822, 0, 0, 0, 0, 1623, 0, 0, 0, 0, 0, 0, 11272, 0, 73914, - 65048, 1909, 42172, 0, 0, 10736, 11580, 72228, 7615, 0, 0, 4237, 66576, - 0, 65815, 68083, 0, 0, 0, 3489, 0, 0, 0, 0, 0, 0, 127146, 3796, 6800, 0, - 65582, 0, 129521, 0, 0, 68036, 0, 0, 64857, 121213, 126493, 0, 66308, 0, - 0, 64634, 127817, 0, 0, 0, 0, 3246, 0, 43972, 128643, 0, 0, 0, 0, 120751, - 0, 0, 0, 0, 1496, 42827, 0, 942, 2378, 119213, 0, 0, 0, 0, 9510, 1232, - 8139, 0, 0, 0, 11409, 0, 6382, 0, 66319, 121237, 0, 0, 0, 127887, 2374, - 0, 8475, 120844, 66313, 0, 0, 64879, 119298, 0, 0, 70869, 0, 0, 129025, - 0, 7705, 11942, 0, 0, 3309, 0, 119302, 0, 83345, 983866, 0, 0, 1280, - 6998, 128104, 0, 0, 0, 129945, 0, 0, 0, 0, 0, 0, 0, 74239, 983073, 0, 0, - 0, 6078, 121354, 0, 1475, 0, 9938, 6084, 0, 983995, 0, 118571, 0, 3256, - 0, 43973, 0, 0, 0, 8727, 0, 0, 0, 110831, 110832, 10562, 110830, 0, 0, 0, - 3248, 0, 0, 9015, 0, 0, 3635, 64337, 0, 0, 43852, 7195, 0, 2007, 64431, - 0, 0, 0, 0, 0, 0, 0, 65613, 77909, 0, 0, 0, 0, 119218, 7984, 11670, - 74434, 127770, 4176, 69248, 2034, 69442, 11154, 65891, 0, 0, 318, 2038, - 0, 0, 0, 3649, 13149, 42145, 42798, 3634, 0, 0, 128483, 122928, 124113, - 0, 11402, 120954, 94032, 74238, 0, 43313, 0, 0, 7938, 0, 1761, 0, 65379, - 68386, 128185, 1159, 71183, 0, 0, 0, 66687, 120851, 0, 41680, 0, 0, 0, - 1514, 11668, 67891, 9313, 0, 128490, 67877, 0, 41681, 0, 0, 12848, 69982, - 67873, 0, 74278, 0, 0, 12649, 0, 0, 1194, 3242, 9761, 9555, 8598, 0, - 120524, 0, 1551, 65447, 129414, 126211, 0, 0, 0, 67875, 0, 3495, 66648, - 125079, 0, 73024, 983232, 0, 126130, 10641, 0, 0, 0, 77845, 0, 0, 0, 0, - 0, 11131, 0, 0, 0, 0, 0, 42685, 72017, 193, 0, 0, 0, 42667, 0, 0, 92318, - 71958, 0, 1362, 9558, 0, 0, 0, 7351, 73789, 0, 0, 4426, 0, 0, 0, 0, 7276, - 42163, 5220, 0, 0, 67822, 0, 0, 0, 0, 41692, 0, 72283, 0, 0, 3223, 65492, - 0, 0, 4549, 983706, 0, 0, 101162, 10807, 0, 0, 0, 42182, 8688, 12866, 0, - 3294, 0, 0, 128101, 0, 64514, 0, 43329, 129989, 0, 0, 0, 119061, 0, - 43422, 0, 0, 128618, 0, 42729, 0, 3215, 120982, 68880, 917564, 0, 0, 0, - 65682, 0, 0, 65924, 0, 73506, 0, 1501, 0, 118807, 0, 0, 9607, 0, 65794, - 72243, 983046, 10989, 0, 74399, 0, 0, 7152, 0, 0, 129530, 7483, 125083, - 0, 8104, 70128, 7474, 0, 5189, 0, 0, 0, 8141, 0, 42537, 69612, 0, 0, 0, - 0, 0, 127307, 42934, 0, 0, 0, 0, 0, 0, 64517, 0, 0, 1650, 0, 0, 128502, - 7901, 3238, 0, 65556, 0, 0, 65158, 43416, 74959, 0, 7527, 0, 43319, 0, 0, - 45, 0, 0, 0, 0, 0, 7347, 0, 0, 0, 13129, 0, 9084, 0, 8737, 0, 0, 0, - 66808, 9639, 7912, 2620, 129653, 3564, 0, 0, 0, 0, 75049, 0, 2853, 0, 0, - 0, 0, 0, 2850, 8084, 0, 0, 71446, 92284, 43122, 0, 0, 0, 126503, 72214, - 0, 74767, 0, 7331, 110646, 0, 8245, 0, 3158, 92396, 3983, 0, 923, 0, - 69397, 292, 0, 126548, 0, 3221, 1763, 0, 0, 0, 0, 7253, 194636, 68391, + 92798, 0, 0, 0, 7012, 0, 128439, 9566, 0, 94176, 0, 65012, 126242, 545, + 9575, 0, 10050, 12718, 0, 8859, 6820, 124915, 129941, 120740, 0, 0, 9119, + 2787, 0, 984000, 8507, 2012, 7985, 0, 0, 0, 0, 194634, 0, 410, 0, 0, + 120789, 120609, 0, 120378, 120379, 0, 0, 120374, 72742, 120376, 120377, + 120370, 120371, 120372, 120373, 3860, 120367, 72205, 74031, 111131, + 73685, 11748, 120365, 7941, 111134, 8749, 111132, 12698, 111129, 361, + 110793, 845, 67509, 0, 0, 4562, 72241, 2926, 0, 4569, 0, 110797, 43487, + 0, 0, 0, 74287, 122885, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6291, 0, 0, 0, 9734, + 0, 0, 0, 0, 127754, 7359, 83523, 43863, 0, 111150, 8769, 111148, 111147, + 111145, 4859, 111143, 111142, 0, 0, 0, 0, 12172, 111136, 0, 127899, + 111141, 64764, 4210, 111138, 0, 804, 0, 83520, 0, 70344, 0, 0, 67202, + 10091, 67200, 119257, 67206, 67205, 67204, 67203, 72302, 0, 0, 0, 128959, + 0, 1425, 92259, 119229, 11049, 0, 71480, 42649, 8482, 0, 0, 66715, 67209, + 11940, 67207, 664, 0, 0, 0, 70200, 127525, 0, 70194, 93061, 111155, + 68474, 111153, 6032, 67218, 67217, 7430, 194670, 70191, 0, 0, 0, 0, 0, + 41161, 0, 9765, 10993, 41162, 0, 70189, 1169, 111181, 0, 1905, 6034, + 41164, 64744, 43236, 0, 128800, 73110, 0, 0, 788, 0, 0, 111167, 111128, + 1663, 128976, 42901, 127237, 67211, 67210, 0, 0, 67215, 67214, 67213, + 67212, 111160, 111159, 111158, 111157, 0, 69492, 0, 111161, 43612, 0, 0, + 0, 10855, 67223, 9355, 67221, 65198, 120355, 0, 221, 0, 0, 0, 121141, + 7191, 118930, 72208, 125212, 0, 0, 0, 0, 67228, 67227, 43333, 67225, 0, + 0, 0, 67229, 0, 7245, 0, 74405, 69922, 72219, 111178, 3873, 8367, 111174, + 111173, 111172, 43649, 0, 111177, 111176, 0, 11164, 0, 74403, 111171, + 111170, 111169, 7682, 74404, 1462, 10235, 0, 0, 0, 0, 0, 111130, 0, 0, + 74402, 0, 92299, 0, 0, 74052, 0, 126127, 120549, 0, 64295, 0, 0, 0, 0, 0, + 120662, 0, 0, 67231, 67230, 10755, 55257, 11155, 128568, 983136, 9470, 0, + 127540, 0, 69680, 64384, 0, 128607, 0, 0, 0, 0, 73764, 8204, 0, 0, 0, 0, + 0, 8728, 0, 10904, 73446, 19936, 7833, 0, 0, 0, 0, 92546, 0, 0, 0, 8537, + 0, 0, 0, 121244, 0, 0, 2254, 128193, 0, 0, 0, 0, 3062, 0, 0, 0, 0, 0, + 41160, 41147, 41158, 0, 120777, 0, 41155, 111116, 111115, 111114, 0, + 121332, 111119, 111118, 111117, 129878, 0, 129091, 0, 0, 0, 64594, 2456, + 66867, 0, 0, 0, 0, 3721, 0, 0, 1230, 2678, 0, 3597, 917795, 0, 0, 92215, + 0, 67737, 8352, 0, 0, 0, 64515, 121378, 0, 129128, 67846, 0, 129767, + 92466, 0, 0, 71338, 0, 8660, 0, 0, 0, 0, 0, 4483, 0, 0, 0, 6080, 0, 0, + 1746, 1315, 0, 70201, 0, 13140, 74508, 0, 0, 4480, 0, 111113, 111112, 0, + 67979, 0, 6360, 10897, 111106, 605, 68302, 110737, 69875, 110735, 110736, + 66681, 0, 0, 0, 0, 0, 0, 0, 10877, 118868, 64885, 0, 0, 0, 0, 0, 0, 345, + 0, 0, 64606, 9917, 0, 0, 92196, 0, 1776, 8422, 43992, 0, 0, 0, 126543, + 43328, 0, 0, 1295, 0, 42869, 0, 0, 0, 0, 128772, 65123, 125210, 11293, + 11288, 0, 0, 65666, 0, 92369, 65420, 0, 0, 4252, 0, 0, 0, 706, 72800, 0, + 0, 129931, 65419, 92177, 0, 8419, 65421, 0, 66702, 0, 12670, 118608, 0, + 0, 0, 72825, 65422, 83008, 0, 0, 0, 0, 0, 0, 9736, 4184, 65418, 0, 0, + 74035, 0, 129955, 0, 0, 0, 0, 129447, 0, 7962, 12211, 9837, 83505, 0, 0, + 5719, 0, 129720, 119068, 73777, 1857, 0, 9927, 0, 983959, 0, 10037, 0, + 73695, 78322, 78319, 7818, 0, 0, 127769, 0, 0, 0, 65077, 0, 78325, 78326, + 78323, 43327, 43989, 0, 65828, 0, 0, 83499, 0, 68390, 0, 110687, 78336, + 78339, 9543, 78335, 78332, 78333, 0, 127964, 0, 129552, 983914, 0, 69448, + 0, 71429, 0, 0, 0, 11914, 69431, 0, 0, 0, 9949, 0, 0, 119215, 0, 12073, + 0, 0, 0, 0, 101218, 2260, 0, 0, 0, 0, 0, 0, 1939, 0, 0, 0, 69903, 0, 0, + 0, 0, 6643, 92477, 0, 0, 78330, 78331, 78328, 78329, 0, 92551, 0, 0, 0, + 0, 0, 72417, 0, 0, 0, 0, 78341, 78342, 120944, 78340, 129513, 127529, + 92350, 3784, 78350, 0, 78348, 78349, 78345, 43324, 78343, 78344, 2231, 0, + 0, 0, 42467, 0, 0, 42894, 78363, 13281, 78360, 78361, 78356, 78358, + 78353, 64899, 0, 41149, 0, 43162, 68096, 41150, 0, 10571, 67162, 67161, + 67160, 67159, 6947, 41152, 887, 9249, 6565, 64806, 74366, 0, 67158, + 67157, 0, 10831, 67175, 67174, 120232, 65827, 43325, 67178, 10168, 67176, + 0, 0, 9190, 128497, 9666, 41997, 0, 0, 0, 0, 0, 0, 129411, 0, 78508, 0, + 78351, 78352, 0, 75063, 72839, 983749, 0, 126604, 0, 0, 0, 983419, 0, + 2270, 0, 129957, 0, 78365, 0, 67189, 72818, 0, 0, 0, 0, 0, 0, 0, 72833, + 101119, 78366, 78367, 0, 0, 0, 0, 10137, 6121, 10995, 0, 71050, 8119, 0, + 71052, 0, 0, 0, 0, 0, 0, 0, 1394, 0, 0, 128960, 0, 67184, 2998, 67182, + 67181, 67188, 67187, 67186, 67185, 0, 101185, 0, 0, 67180, 42003, 0, 0, + 67193, 67192, 67191, 67190, 67197, 67196, 67195, 67194, 0, 72770, 43315, + 71051, 0, 1593, 0, 125120, 619, 4635, 0, 72875, 0, 128859, 118657, 0, 0, + 0, 67199, 67198, 0, 42790, 42006, 0, 0, 0, 128998, 10757, 9347, 127767, + 0, 0, 74227, 78904, 0, 74116, 128423, 121073, 120860, 0, 92427, 0, 0, 0, + 0, 64590, 0, 4371, 0, 0, 92478, 0, 0, 73977, 0, 0, 127847, 0, 120862, 0, + 64550, 73745, 70451, 0, 121013, 0, 0, 0, 129286, 0, 0, 0, 0, 9131, + 118648, 125214, 983220, 0, 0, 64260, 0, 12606, 0, 0, 0, 0, 562, 983614, + 0, 129648, 66455, 127533, 3219, 0, 0, 0, 1037, 0, 64491, 0, 983695, + 78572, 78580, 4568, 549, 0, 0, 0, 0, 0, 128095, 70851, 2205, 0, 0, 0, 0, + 129716, 0, 10825, 8079, 118962, 0, 0, 0, 128855, 0, 13071, 0, 0, 41049, + 42840, 43614, 129341, 74881, 74596, 127191, 5212, 0, 66402, 119191, 0, + 9747, 0, 0, 129778, 984008, 41047, 1668, 0, 0, 0, 1187, 0, 74416, 0, 0, + 0, 0, 3240, 128518, 9213, 0, 0, 0, 127174, 69822, 0, 0, 0, 0, 1623, 0, 0, + 0, 0, 0, 0, 11272, 0, 73914, 65048, 1909, 42172, 0, 0, 10736, 11580, + 72228, 7615, 0, 0, 4237, 66576, 0, 65815, 68083, 0, 0, 0, 3489, 0, 0, 0, + 0, 0, 0, 127146, 3796, 6800, 0, 65582, 0, 129521, 0, 0, 68036, 0, 0, + 64857, 121213, 126493, 0, 66308, 0, 0, 64634, 127817, 0, 0, 0, 0, 3246, + 0, 43972, 128643, 0, 0, 0, 0, 120751, 0, 0, 0, 0, 1496, 42827, 0, 942, + 2378, 119213, 0, 0, 0, 0, 9510, 1232, 8139, 0, 0, 0, 11409, 0, 6382, 0, + 66319, 121237, 0, 0, 0, 127887, 2374, 0, 8475, 120844, 66313, 0, 0, + 64879, 119298, 0, 0, 70869, 0, 0, 129025, 0, 7705, 11942, 0, 0, 3309, 0, + 0, 0, 83345, 983866, 0, 0, 1280, 6998, 128104, 0, 0, 0, 129945, 0, 0, 0, + 0, 0, 0, 0, 74239, 983073, 0, 0, 0, 6078, 121354, 0, 1475, 0, 9938, 6084, + 0, 983995, 0, 118571, 0, 3256, 0, 43973, 0, 0, 0, 8727, 0, 0, 0, 110831, + 110832, 10562, 110830, 0, 0, 0, 3248, 0, 0, 9015, 0, 0, 3635, 64337, 0, + 0, 43852, 7195, 0, 2007, 64431, 0, 0, 0, 0, 0, 0, 0, 65613, 77909, 0, 0, + 0, 0, 119218, 7984, 11670, 74434, 127770, 4176, 69248, 2034, 69442, + 11154, 65891, 0, 0, 318, 2038, 0, 0, 0, 3649, 13149, 42145, 42798, 3634, + 0, 0, 128483, 0, 0, 0, 11402, 120954, 94032, 74238, 0, 43313, 0, 0, 7938, + 0, 1761, 0, 65379, 68386, 128185, 1159, 71183, 0, 0, 0, 66687, 120851, 0, + 41680, 0, 0, 0, 1514, 11668, 67891, 9313, 0, 128490, 67877, 0, 41681, 0, + 0, 12848, 69982, 67873, 0, 74278, 0, 0, 12649, 0, 0, 1194, 3242, 9761, + 9555, 8598, 0, 120524, 0, 1551, 65447, 129414, 126211, 0, 0, 0, 67875, 0, + 3495, 66648, 125079, 0, 73024, 983229, 0, 126130, 10641, 0, 0, 0, 77845, + 0, 0, 0, 0, 0, 11131, 0, 0, 0, 0, 0, 42685, 72017, 193, 0, 0, 0, 42667, + 0, 0, 92318, 71958, 0, 1362, 9558, 0, 0, 0, 7351, 73789, 0, 0, 4426, 0, + 0, 0, 0, 7276, 42163, 5220, 0, 0, 67822, 0, 0, 0, 0, 41692, 0, 72283, 0, + 0, 3223, 65492, 0, 0, 4549, 983706, 0, 0, 101162, 10807, 0, 0, 0, 42182, + 8688, 12866, 0, 3294, 0, 0, 128101, 0, 64514, 0, 43329, 129989, 0, 0, 0, + 119061, 0, 43422, 0, 0, 128618, 0, 42729, 0, 3215, 120982, 68880, 917564, + 0, 0, 0, 65682, 0, 0, 65924, 0, 983823, 0, 1501, 0, 118807, 0, 0, 9607, + 0, 65794, 72243, 983046, 10989, 0, 74399, 0, 0, 7152, 0, 0, 129530, 7483, + 125083, 0, 8104, 70128, 7474, 0, 5189, 0, 0, 0, 8141, 0, 42537, 69612, 0, + 0, 0, 0, 0, 127307, 42934, 0, 0, 0, 0, 0, 0, 64517, 0, 0, 1650, 0, 0, + 128502, 7901, 3238, 0, 65556, 0, 0, 65158, 43416, 74959, 0, 7527, 0, + 43319, 0, 0, 45, 0, 0, 0, 0, 0, 7347, 0, 0, 0, 13129, 0, 9084, 0, 8737, + 0, 0, 0, 66808, 9639, 7912, 2620, 0, 3564, 0, 0, 0, 0, 75049, 0, 2853, 0, + 0, 0, 0, 0, 2850, 8084, 0, 0, 71446, 92284, 43122, 0, 0, 0, 126503, + 72214, 0, 74767, 0, 7331, 110646, 0, 8245, 0, 3158, 92396, 3983, 0, 923, + 0, 69397, 292, 0, 126548, 0, 3221, 1763, 0, 0, 0, 0, 7253, 194636, 68391, 75002, 0, 3637, 12996, 0, 70461, 0, 0, 3228, 0, 0, 0, 0, 0, 0, 120833, 118939, 0, 7696, 78589, 0, 0, 0, 43316, 4177, 0, 9089, 0, 128805, 72116, 64500, 68133, 0, 0, 1856, 100572, 0, 6379, 0, 118999, 0, 3208, 0, 0, 0, @@ -27086,20 +26901,20 @@ static const unsigned int code_hash[] = { 4573, 0, 0, 0, 0, 0, 92961, 0, 118620, 41688, 0, 0, 0, 8314, 0, 0, 0, 0, 0, 66721, 0, 0, 121033, 0, 128226, 0, 0, 0, 13164, 0, 66237, 983982, 0, 0, 0, 3257, 0, 0, 1845, 0, 0, 0, 0, 128783, 0, 0, 0, 0, 3499, 8609, 0, - 7145, 0, 0, 0, 0, 74829, 984007, 983296, 0, 0, 0, 7591, 0, 0, 0, 73778, + 7145, 0, 0, 0, 0, 74829, 984007, 983293, 0, 0, 0, 7591, 0, 0, 0, 73778, 70132, 128167, 0, 0, 0, 0, 119261, 0, 0, 118561, 13083, 0, 0, 0, 0, - 66177, 983274, 5429, 0, 0, 68168, 66181, 0, 0, 983258, 0, 0, 5433, 67659, + 66177, 983271, 5429, 0, 0, 68168, 66181, 0, 0, 983255, 0, 0, 5433, 67659, 0, 42776, 1547, 66176, 92428, 0, 5425, 4977, 9999, 0, 5423, 64560, 125094, 0, 0, 0, 74122, 0, 0, 0, 128003, 4418, 66199, 0, 92300, 0, 0, 0, - 11863, 124995, 0, 11908, 0, 9360, 125101, 983204, 0, 66187, 12837, - 983293, 0, 11112, 0, 92321, 43318, 0, 0, 0, 0, 126518, 120604, 0, 983291, + 11863, 124995, 0, 11908, 0, 9360, 125101, 983202, 0, 66187, 12837, + 983290, 0, 11112, 0, 92321, 43318, 0, 0, 0, 0, 126518, 120604, 0, 983288, 0, 129595, 0, 983801, 0, 9958, 0, 125108, 0, 0, 0, 2433, 128602, 0, 3352, 0, 0, 0, 0, 0, 0, 305, 567, 67662, 0, 69979, 65242, 0, 41695, 0, 0, 0, 7837, 92873, 129002, 5337, 917622, 7325, 43312, 917619, 68742, 917617, 74086, 68777, 917614, 917613, 10973, 917611, 1372, 128768, 917608, 917607, 1254, 917605, 917604, 93967, 917602, 65228, 113753, 129367, 67723, 8068, 0, 0, 983970, 0, 3245, 64393, 119069, 118681, 0, 0, 0, 0, 0, - 0, 983284, 0, 119563, 129935, 78865, 0, 126638, 0, 0, 43322, 0, 0, 0, 0, + 0, 983281, 0, 119563, 129935, 78865, 0, 126638, 0, 0, 43322, 0, 0, 0, 0, 92698, 3226, 67695, 0, 0, 983958, 10200, 0, 128779, 101143, 0, 65610, 0, 0, 0, 3585, 250, 101142, 43320, 0, 0, 0, 0, 1152, 129849, 1688, 0, 0, 0, 0, 0, 121040, 128340, 0, 0, 0, 2107, 0, 129048, 0, 0, 0, 43868, 129832, @@ -27114,98 +26929,97 @@ static const unsigned int code_hash[] = { 0, 0, 2625, 92724, 0, 74309, 0, 0, 0, 7850, 120296, 69639, 127032, 0, 0, 43384, 12660, 110663, 0, 0, 110706, 110661, 0, 92380, 0, 0, 69649, 0, 713, 41073, 0, 3990, 0, 0, 0, 5017, 128313, 120352, 0, 0, 1030, 0, - 983121, 9513, 0, 0, 0, 4668, 0, 120350, 0, 6339, 0, 0, 0, 64650, 0, 0, + 983120, 9513, 0, 0, 0, 4668, 0, 120350, 0, 6339, 0, 0, 0, 64650, 0, 0, 74766, 983869, 8908, 0, 0, 0, 0, 10752, 13003, 68769, 0, 41307, 8732, - 120336, 0, 41310, 0, 4696, 0, 983953, 0, 120334, 3641, 5419, 124119, 0, - 0, 0, 120344, 128129, 0, 7320, 65230, 11808, 0, 93970, 936, 13289, 0, - 69892, 65774, 0, 65243, 0, 19953, 0, 126469, 121375, 127256, 12913, - 70722, 68759, 0, 0, 70203, 0, 4113, 0, 2372, 1819, 0, 128053, 12152, 0, - 682, 7655, 120330, 129921, 0, 10593, 1703, 0, 0, 8033, 69953, 0, 9810, 0, - 0, 127949, 0, 119159, 10109, 0, 73898, 0, 71730, 126704, 0, 0, 917620, - 1965, 917621, 0, 0, 73887, 0, 0, 0, 6314, 0, 8501, 0, 0, 0, 41317, 0, - 5417, 983582, 0, 0, 9353, 68148, 41315, 0, 11161, 0, 41314, 194892, 0, - 126562, 119236, 634, 0, 0, 0, 69779, 4355, 12016, 0, 9654, 12856, 6924, - 7660, 0, 0, 0, 0, 0, 42692, 0, 74604, 0, 0, 0, 680, 6274, 0, 1181, 0, - 3174, 67248, 0, 0, 0, 0, 113776, 10650, 917603, 92295, 70672, 118965, 0, - 64644, 126981, 0, 0, 0, 0, 983961, 0, 65302, 40989, 68239, 68230, 68234, - 0, 0, 124989, 0, 40987, 4667, 0, 983963, 8828, 0, 0, 0, 4746, 0, 129840, - 2269, 4749, 0, 100598, 65192, 4744, 7345, 0, 242, 100595, 0, 8217, 0, - 68919, 0, 2245, 0, 0, 66790, 10850, 0, 0, 0, 983391, 0, 129853, 64680, 0, - 0, 120562, 0, 127324, 0, 100551, 128721, 0, 7316, 0, 983610, 100552, - 74157, 1646, 0, 0, 73995, 120857, 73500, 0, 7350, 0, 0, 0, 9099, 4107, - 3441, 0, 2975, 194701, 0, 983966, 55220, 10084, 73943, 120845, 118649, 0, - 0, 3399, 0, 0, 11909, 0, 0, 7687, 0, 6789, 0, 0, 72739, 71367, 0, 0, - 92589, 9151, 1137, 0, 749, 7505, 125076, 5385, 0, 69387, 0, 0, 41298, 0, - 69461, 0, 0, 0, 0, 0, 0, 128455, 0, 519, 0, 64547, 5766, 0, 0, 0, 8848, - 0, 41297, 0, 0, 0, 41300, 74468, 65160, 0, 129839, 127511, 0, 0, 6558, 0, - 0, 128686, 92775, 0, 71450, 41302, 127927, 0, 0, 128646, 68762, 11729, - 8719, 9060, 0, 128796, 0, 0, 118573, 129682, 0, 11734, 93011, 11730, - 73450, 9593, 5757, 2403, 0, 55275, 0, 11728, 65894, 0, 0, 0, 68741, 0, 0, - 0, 43489, 4282, 983864, 0, 83497, 70328, 128103, 70324, 0, 69490, 127509, - 0, 8456, 0, 0, 74783, 0, 78250, 0, 70320, 120722, 9792, 0, 70326, 0, 0, - 83500, 70322, 10019, 71701, 123617, 6568, 4365, 129399, 0, 3647, 0, - 41134, 128341, 0, 125043, 41135, 0, 0, 0, 129938, 0, 123616, 0, 41137, - 41139, 0, 6545, 0, 125139, 7597, 10528, 75054, 0, 3732, 73910, 0, 0, 0, - 7312, 983639, 9062, 93840, 11853, 0, 0, 128324, 41538, 0, 0, 118702, 0, - 194706, 41531, 1263, 3720, 0, 68028, 0, 41524, 64692, 119635, 0, 41534, - 0, 92193, 0, 41168, 0, 67398, 127347, 3524, 0, 8831, 127349, 127357, 0, - 127360, 127352, 129816, 0, 0, 0, 0, 0, 5845, 0, 0, 0, 71909, 8200, 0, - 68460, 0, 43283, 5551, 0, 0, 0, 6340, 983552, 100602, 0, 0, 0, 0, 0, - 5422, 0, 0, 0, 2471, 0, 0, 2749, 0, 73774, 10913, 72122, 0, 8666, 675, - 74093, 0, 194986, 0, 69262, 0, 0, 0, 10928, 0, 41153, 0, 0, 0, 3738, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42347, 12092, 9615, 7234, 74047, - 129782, 0, 0, 123639, 0, 0, 2934, 0, 0, 0, 0, 74507, 0, 74461, 0, 0, - 74290, 0, 64562, 129975, 64473, 0, 0, 73728, 0, 11212, 0, 12128, 6534, 0, - 0, 1901, 0, 0, 0, 0, 0, 127520, 0, 0, 0, 0, 69940, 65459, 68293, 92290, - 128808, 3770, 0, 0, 0, 64579, 128511, 0, 0, 983337, 983345, 0, 0, 0, - 5941, 0, 0, 65079, 0, 0, 0, 73961, 983339, 0, 0, 0, 0, 0, 0, 10638, 0, 0, - 0, 71486, 0, 0, 983354, 0, 43840, 129495, 0, 5233, 983351, 64792, 71233, - 0, 983329, 0, 73553, 9847, 0, 1685, 595, 0, 73971, 1292, 8940, 0, 11088, - 0, 10004, 0, 0, 6541, 0, 0, 0, 5603, 9014, 5606, 0, 538, 128705, 5602, - 8467, 74391, 6547, 0, 0, 0, 0, 8458, 129534, 8495, 0, 0, 917552, 10981, - 78314, 125057, 2465, 0, 0, 0, 9730, 9280, 0, 0, 74155, 72766, 113690, 0, - 504, 0, 120715, 0, 983606, 0, 0, 0, 123141, 125024, 0, 0, 732, 3737, 0, - 1548, 0, 0, 1832, 5604, 0, 41141, 0, 5607, 72854, 2176, 3745, 0, 0, - 128137, 0, 0, 3869, 11937, 5725, 0, 66566, 7416, 5728, 0, 0, 0, 11918, - 66567, 5724, 118829, 5727, 0, 0, 0, 5723, 118585, 128116, 71999, 0, 0, 0, - 42532, 0, 12303, 0, 11423, 0, 983116, 68303, 74074, 0, 128267, 6559, - 64557, 71348, 0, 66763, 43019, 0, 10238, 0, 0, 43377, 0, 71346, 124937, - 9783, 42704, 0, 71719, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41144, 129465, 0, - 0, 0, 72793, 92176, 0, 70682, 0, 8820, 0, 0, 0, 11515, 526, 0, 0, 0, 0, - 0, 0, 8635, 0, 0, 8288, 11815, 0, 0, 0, 1543, 3713, 0, 0, 0, 68041, - 127816, 0, 0, 64357, 0, 42082, 0, 0, 8987, 42081, 0, 0, 0, 0, 0, 0, 6553, - 0, 0, 11253, 0, 0, 5475, 0, 0, 0, 119334, 12990, 1160, 42084, 0, 123152, - 0, 0, 360, 0, 0, 128274, 5863, 3137, 0, 983320, 0, 0, 10959, 3146, 0, - 127374, 0, 68341, 13076, 3135, 983303, 0, 0, 3142, 0, 94068, 10819, - 128479, 0, 74635, 12877, 119867, 73967, 0, 70808, 0, 0, 0, 0, 6163, - 129745, 113728, 0, 0, 0, 8603, 0, 0, 3306, 0, 43392, 0, 917565, 5751, 0, - 0, 0, 0, 0, 7403, 0, 118933, 0, 122628, 64783, 92658, 0, 0, 129592, 0, 0, - 65569, 7021, 0, 0, 119864, 0, 0, 6540, 6974, 0, 0, 0, 0, 0, 0, 0, 983655, - 0, 43585, 0, 6551, 983993, 0, 0, 0, 0, 0, 72216, 8977, 602, 120814, 0, 0, - 0, 72119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 983624, 74812, 0, 0, 0, 9475, 0, - 65105, 0, 118556, 0, 43592, 7831, 66751, 0, 0, 73915, 0, 43593, 0, 43591, - 43061, 0, 0, 43589, 43584, 0, 13113, 0, 0, 43590, 8766, 9087, 0, 0, - 41574, 78337, 0, 42900, 6376, 0, 0, 0, 0, 9854, 0, 0, 0, 0, 0, 0, 0, - 2909, 110928, 0, 0, 6529, 110930, 75004, 3751, 0, 0, 0, 1798, 0, 0, 1354, - 0, 13152, 6557, 12430, 0, 94098, 0, 0, 0, 68123, 128097, 0, 0, 0, 71264, - 123559, 11082, 0, 65677, 8682, 42054, 92595, 42045, 9804, 0, 0, 3595, 0, - 0, 119498, 0, 42399, 0, 0, 0, 65541, 0, 7324, 0, 0, 0, 8797, 77895, 0, - 64888, 7167, 2356, 95, 110810, 0, 0, 42286, 0, 0, 69999, 0, 120877, 0, 0, - 42324, 129359, 0, 0, 43492, 0, 43406, 0, 0, 0, 0, 0, 43400, 0, 0, 71720, - 0, 66435, 0, 0, 3201, 514, 74502, 0, 43396, 0, 64493, 0, 43404, 11218, 0, - 0, 43398, 0, 0, 41341, 129485, 6564, 1463, 41342, 0, 5293, 0, 0, 3733, 0, - 0, 41344, 0, 0, 0, 0, 41346, 0, 69747, 0, 0, 0, 0, 0, 0, 0, 983764, 0, 0, - 0, 65272, 0, 0, 1270, 1132, 0, 0, 0, 66655, 0, 0, 74314, 64761, 0, - 110853, 8510, 0, 129600, 0, 0, 0, 0, 0, 0, 69692, 0, 0, 42383, 69690, 0, - 69700, 13141, 0, 92465, 0, 0, 0, 41566, 0, 0, 129334, 127171, 0, 0, 0, 0, - 0, 0, 0, 6308, 0, 0, 2611, 0, 66881, 0, 65063, 0, 0, 0, 0, 4484, 8747, - 110597, 128369, 0, 0, 0, 0, 0, 0, 12902, 0, 0, 7299, 0, 0, 12107, 7100, - 10905, 65010, 0, 125135, 66018, 9284, 0, 0, 0, 0, 0, 0, 0, 12010, 0, - 126093, 120949, 121032, 0, 0, 0, 0, 0, 0, 0, 0, 6618, 3562, 66365, 0, - 42234, 12648, 128039, 0, 0, 0, 41309, 9764, 41316, 0, 0, 13230, 41299, 0, - 0, 68365, 0, 0, 0, 0, 0, 0, 4153, 0, 0, 128047, 0, 0, 42889, 0, 129322, - 41578, 0, 41577, 0, 68092, 0, 6533, 0, 41570, 0, 72414, 0, 41580, 74628, - 0, 12901, 0, 0, 0, 0, 71461, 41360, 0, 0, 4743, 0, 0, 0, 0, 68398, + 120336, 0, 41310, 0, 4696, 0, 983953, 0, 120334, 3641, 5419, 0, 0, 0, 0, + 120344, 128129, 0, 7320, 65230, 11808, 0, 93970, 936, 13289, 0, 69892, + 65774, 0, 65243, 0, 19953, 0, 126469, 121375, 127256, 12913, 70722, + 68759, 0, 0, 70203, 0, 4113, 0, 2372, 1819, 0, 128053, 12152, 0, 682, + 7655, 120330, 129921, 0, 10593, 1703, 0, 0, 8033, 69953, 0, 9810, 0, 0, + 127949, 0, 119159, 10109, 0, 73898, 0, 71730, 126704, 0, 0, 917620, 1965, + 917621, 0, 0, 73887, 0, 0, 0, 6314, 0, 8501, 0, 0, 0, 41317, 0, 5417, + 983582, 0, 0, 9353, 68148, 41315, 0, 11161, 0, 41314, 194892, 0, 126562, + 119236, 634, 0, 0, 0, 69779, 4355, 12016, 0, 9654, 12856, 6924, 7660, 0, + 0, 0, 0, 0, 42692, 0, 74604, 0, 0, 0, 680, 6274, 0, 1181, 0, 3174, 67248, + 0, 0, 0, 0, 113776, 10650, 917603, 92295, 70672, 118965, 0, 64644, + 126981, 0, 0, 0, 0, 983961, 0, 65302, 40989, 68239, 68230, 68234, 0, 0, + 124989, 0, 40987, 4667, 0, 983963, 8828, 0, 0, 0, 4746, 0, 129840, 2269, + 4749, 0, 100598, 65192, 4744, 7345, 0, 242, 100595, 0, 8217, 0, 68919, 0, + 2245, 0, 0, 66790, 10850, 0, 0, 0, 0, 0, 129853, 64680, 0, 0, 120562, 0, + 127324, 0, 100551, 128721, 0, 7316, 0, 983610, 100552, 74157, 1646, 0, 0, + 73995, 120857, 129047, 0, 7350, 0, 0, 0, 9099, 4107, 3441, 0, 2975, + 194701, 0, 983966, 55220, 10084, 73943, 120845, 118649, 0, 0, 3399, 0, 0, + 11909, 0, 0, 7687, 0, 6789, 0, 0, 72739, 71367, 0, 0, 92589, 9151, 1137, + 0, 749, 7505, 125076, 5385, 0, 69387, 0, 0, 41298, 0, 69461, 0, 0, 0, 0, + 0, 0, 128455, 0, 519, 0, 64547, 5766, 0, 0, 0, 8848, 0, 41297, 0, 0, 0, + 41300, 74468, 65160, 0, 129839, 127511, 0, 0, 6558, 0, 0, 128686, 92775, + 0, 71450, 41302, 127927, 0, 0, 128646, 68762, 11729, 8719, 9060, 0, + 128796, 0, 0, 118573, 129682, 0, 11734, 93011, 11730, 73450, 9593, 5757, + 2403, 0, 55275, 0, 11728, 65894, 0, 0, 0, 68741, 0, 0, 0, 43489, 4282, + 983864, 0, 83497, 70328, 128103, 70324, 0, 69490, 127509, 0, 8456, 0, 0, + 74783, 0, 78250, 0, 70320, 120722, 9792, 0, 70326, 0, 0, 83500, 70322, + 10019, 71701, 123617, 6568, 4365, 0, 0, 3647, 0, 41134, 128341, 0, + 125043, 41135, 0, 0, 0, 129938, 0, 123616, 0, 41137, 41139, 0, 6545, 0, + 125139, 7597, 10528, 75054, 0, 3732, 73910, 0, 0, 0, 7312, 983639, 9062, + 93840, 11853, 0, 0, 128324, 41538, 0, 0, 118702, 0, 194706, 41531, 1263, + 3720, 0, 68028, 0, 41524, 64692, 119635, 0, 41534, 0, 92193, 0, 41168, 0, + 67398, 127347, 3524, 0, 8831, 127349, 127357, 0, 127360, 127352, 129816, + 0, 0, 0, 0, 0, 5845, 0, 0, 0, 71909, 8200, 0, 68460, 0, 43283, 5551, 0, + 0, 0, 6340, 983552, 100602, 0, 0, 0, 0, 0, 5422, 0, 0, 0, 2471, 0, 0, + 2749, 0, 73774, 10913, 72122, 0, 8666, 675, 74093, 0, 194986, 0, 69262, + 0, 0, 0, 10928, 0, 41153, 0, 0, 0, 3738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 42347, 12092, 9615, 7234, 74047, 129782, 0, 0, 123639, 0, 0, 2934, + 0, 0, 0, 0, 74507, 0, 74461, 0, 0, 74290, 0, 64562, 129975, 64473, 0, 0, + 73728, 0, 11212, 0, 12128, 6534, 0, 0, 1901, 0, 0, 0, 0, 0, 127520, 0, 0, + 0, 0, 69940, 65459, 68293, 92290, 128808, 3770, 0, 0, 0, 64579, 128511, + 0, 0, 983334, 983342, 0, 0, 0, 5941, 0, 0, 65079, 0, 0, 0, 73961, 983336, + 0, 0, 0, 0, 0, 0, 10638, 0, 0, 0, 71486, 0, 0, 983351, 0, 43840, 129495, + 0, 5233, 983348, 64792, 71233, 0, 983326, 0, 0, 9847, 0, 1685, 595, 0, + 73971, 1292, 8940, 0, 11088, 0, 10004, 0, 0, 6541, 0, 0, 0, 5603, 9014, + 5606, 0, 538, 128705, 5602, 8467, 74391, 6547, 0, 0, 0, 0, 8458, 129534, + 8495, 0, 0, 917552, 10981, 78314, 125057, 2465, 0, 0, 0, 9730, 9280, 0, + 0, 74155, 72766, 113690, 0, 504, 0, 120715, 0, 983606, 0, 0, 0, 123141, + 125024, 0, 0, 732, 3737, 0, 1548, 0, 0, 1832, 5604, 0, 41141, 0, 5607, + 72854, 2176, 3745, 0, 0, 128137, 0, 0, 3869, 11937, 5725, 0, 66566, 7416, + 5728, 0, 0, 0, 11918, 66567, 5724, 118829, 5727, 0, 0, 0, 5723, 118585, + 128116, 71999, 0, 0, 0, 42532, 0, 12303, 0, 11423, 0, 983115, 68303, + 74074, 0, 128267, 6559, 64557, 71348, 0, 66763, 43019, 0, 10238, 0, 0, + 43377, 0, 71346, 124937, 9783, 42704, 0, 71719, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 41144, 129465, 0, 0, 0, 72793, 92176, 0, 70682, 0, 8820, 0, 0, + 0, 11515, 526, 0, 0, 0, 0, 0, 0, 8635, 0, 0, 8288, 11815, 0, 0, 0, 1543, + 3713, 0, 0, 0, 68041, 127816, 0, 0, 64357, 0, 42082, 0, 0, 8987, 42081, + 0, 0, 0, 0, 0, 0, 6553, 0, 0, 11253, 0, 0, 5475, 0, 0, 0, 119334, 12990, + 1160, 42084, 0, 123152, 0, 0, 360, 0, 0, 128274, 5863, 3137, 0, 983317, + 0, 0, 10959, 3146, 0, 127374, 0, 68341, 13076, 3135, 983300, 0, 0, 3142, + 0, 94068, 10819, 128479, 0, 74635, 12877, 119867, 73967, 0, 70808, 0, 0, + 0, 0, 6163, 129745, 113728, 0, 0, 0, 8603, 0, 0, 3306, 0, 43392, 0, + 917565, 5751, 0, 0, 0, 0, 0, 7403, 0, 118933, 0, 122628, 64783, 92658, 0, + 0, 129592, 0, 0, 65569, 7021, 0, 0, 0, 0, 0, 6540, 6974, 0, 0, 0, 0, 0, + 0, 0, 983655, 0, 43585, 0, 6551, 983993, 0, 0, 0, 0, 0, 72216, 8977, 602, + 120814, 0, 0, 0, 72119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 983624, 74812, 0, + 0, 0, 9475, 0, 65105, 0, 118556, 0, 43592, 7831, 66751, 0, 0, 73915, 0, + 43593, 0, 43591, 43061, 0, 0, 43589, 43584, 0, 13113, 0, 0, 43590, 8766, + 9087, 0, 0, 41574, 78337, 0, 42900, 6376, 0, 0, 0, 0, 9854, 0, 0, 0, 0, + 0, 0, 0, 2909, 0, 0, 0, 6529, 110930, 75004, 3751, 0, 0, 0, 1798, 0, 0, + 1354, 0, 13152, 6557, 12430, 0, 94098, 0, 0, 0, 68123, 128097, 0, 0, 0, + 71264, 123559, 11082, 0, 65677, 8682, 42054, 92595, 42045, 9804, 0, 0, + 3595, 0, 0, 0, 0, 42399, 0, 0, 0, 65541, 0, 7324, 0, 0, 0, 8797, 77895, + 0, 64888, 7167, 2356, 95, 110810, 0, 0, 42286, 0, 0, 69999, 0, 120877, 0, + 0, 42324, 129359, 0, 0, 43492, 0, 43406, 0, 0, 0, 0, 0, 43400, 0, 0, + 71720, 0, 66435, 0, 0, 3201, 514, 74502, 0, 43396, 0, 64493, 0, 43404, + 11218, 0, 0, 43398, 0, 0, 41341, 129485, 6564, 1463, 41342, 0, 5293, 0, + 0, 3733, 0, 0, 41344, 0, 0, 0, 0, 41346, 0, 69747, 0, 0, 0, 0, 0, 0, 0, + 983764, 0, 0, 0, 65272, 0, 0, 1270, 1132, 0, 0, 0, 66655, 0, 0, 74314, + 64761, 0, 110853, 8510, 0, 129600, 0, 0, 0, 0, 0, 0, 69692, 0, 0, 42383, + 69690, 0, 69700, 13141, 0, 92465, 0, 0, 0, 41566, 0, 0, 129334, 127171, + 0, 0, 0, 0, 0, 0, 0, 6308, 0, 0, 2611, 0, 66881, 0, 65063, 0, 0, 0, 0, + 4484, 8747, 110597, 128369, 0, 0, 0, 0, 0, 0, 12902, 0, 0, 7299, 0, 0, + 12107, 7100, 10905, 65010, 0, 125135, 66018, 9284, 0, 0, 0, 0, 0, 0, 0, + 12010, 0, 126093, 120949, 121032, 0, 0, 0, 0, 0, 0, 0, 0, 6618, 3562, + 66365, 0, 42234, 12648, 128039, 0, 0, 0, 41309, 9764, 41316, 0, 0, 13230, + 41299, 0, 0, 68365, 0, 0, 0, 0, 0, 0, 4153, 0, 0, 128047, 0, 0, 42889, 0, + 129322, 41578, 0, 41577, 0, 68092, 0, 6533, 0, 41570, 0, 72414, 0, 41580, + 74628, 0, 12901, 0, 0, 0, 0, 71461, 41360, 0, 0, 4743, 0, 0, 0, 0, 68398, 110781, 5890, 110779, 111103, 3739, 8695, 92514, 0, 3964, 8984, 111095, 68288, 0, 0, 70000, 111090, 111089, 67504, 3956, 82952, 111093, 6563, 111091, 41305, 0, 0, 12067, 41312, 0, 0, 0, 129708, 0, 8175, 0, 3600, 0, @@ -27222,30 +27036,30 @@ static const unsigned int code_hash[] = { 7396, 0, 0, 69788, 0, 43512, 7965, 111039, 111038, 111037, 111036, 41350, 0, 0, 0, 2294, 64501, 68034, 0, 68405, 111034, 0, 0, 111030, 111029, 71105, 111027, 0, 111033, 92200, 111031, 0, 6764, 0, 0, 111026, 111025, - 72454, 65203, 128010, 0, 0, 0, 3210, 0, 129978, 0, 0, 82958, 127970, + 111024, 65203, 128010, 0, 0, 0, 3210, 0, 129978, 0, 0, 82958, 127970, 82957, 0, 68875, 10043, 71979, 1186, 41571, 0, 5209, 9464, 82960, 66657, 5207, 65062, 5213, 0, 0, 41348, 41568, 128803, 3253, 111045, 111044, 74067, 111042, 111049, 5596, 111047, 111046, 0, 64887, 0, 5217, 111041, 72252, 0, 0, 0, 0, 2635, 92760, 0, 0, 0, 92742, 0, 113672, 0, 0, 0, 2258, 67081, 0, 67083, 0, 0, 0, 5784, 0, 0, 0, 0, 4011, 0, 0, 0, 0, 4254, 0, 111054, 5600, 111052, 111051, 10447, 5598, 1207, 111055, 0, 3501, 42582, - 0, 111050, 0, 1124, 5597, 983501, 78908, 9321, 129464, 75040, 983498, 0, - 1719, 68356, 68354, 9671, 1125, 2721, 0, 129876, 983504, 7631, 5488, + 0, 111050, 0, 1124, 5597, 983498, 983499, 9321, 129464, 75040, 983495, 0, + 1719, 68356, 68354, 9671, 1125, 2721, 0, 129876, 983501, 7631, 5488, 111082, 0, 0, 5491, 111086, 8937, 0, 3236, 74187, 5490, 0, 5489, 8522, 68358, 111069, 6300, 111067, 111066, 0, 0, 111071, 111070, 0, 9875, 7593, 111065, 0, 0, 43182, 0, 68379, 3311, 111058, 111057, 3746, 11016, 65752, 111061, 0, 43423, 68775, 0, 111056, 72225, 0, 0, 127120, 0, 2232, 0, 0, - 0, 0, 0, 126555, 0, 0, 8656, 0, 128358, 0, 0, 983490, 983491, 917563, - 983489, 983486, 983487, 0, 0, 0, 129669, 0, 111183, 128043, 983495, 1036, - 983493, 111075, 1723, 111073, 111072, 111079, 41579, 111077, 111076, - 10705, 0, 983485, 74486, 71693, 740, 983481, 983482, 129645, 0, 0, 74846, + 0, 0, 0, 126555, 0, 0, 8656, 0, 128358, 0, 0, 983487, 983488, 917563, + 983486, 983483, 983484, 0, 0, 0, 129669, 0, 111183, 128043, 983492, 1036, + 983490, 111075, 1723, 111073, 111072, 111079, 41579, 111077, 111076, + 10705, 0, 983482, 74486, 71693, 740, 983478, 983479, 129645, 0, 0, 74846, 92255, 0, 0, 0, 0, 0, 10438, 74487, 73798, 13285, 0, 0, 0, 5690, 0, 93992, 0, 0, 13095, 0, 127857, 121419, 7321, 121203, 13254, 70176, 75070, 0, 0, 0, 0, 127845, 3247, 317, 0, 0, 0, 0, 917543, 0, 10173, 0, 0, 0, 0, 0, 5223, 0, 0, 119564, 5226, 0, 94044, 5880, 94065, 7758, 0, 0, 5224, - 5487, 94041, 5692, 41725, 983467, 0, 5695, 41711, 0, 43171, 0, 94049, - 5691, 983472, 866, 1488, 983471, 983457, 65665, 94036, 983456, 74797, 0, - 0, 11039, 983465, 11145, 71211, 983464, 983461, 983462, 983459, 983460, + 5487, 94041, 5692, 41725, 983464, 0, 5695, 41711, 0, 43171, 0, 94049, + 5691, 983469, 866, 1488, 983468, 983454, 65665, 94036, 983453, 74797, 0, + 0, 11039, 983462, 11145, 71211, 983461, 983458, 983459, 983456, 983457, 42492, 43402, 125208, 3302, 0, 72842, 43153, 0, 0, 120885, 121300, 0, 7856, 8690, 0, 73076, 110880, 0, 0, 73091, 0, 69925, 120635, 65153, 0, 0, 0, 0, 0, 0, 4540, 0, 0, 0, 0, 11844, 121209, 8863, 0, 75061, 71978, 6389, @@ -27253,7 +27067,7 @@ static const unsigned int code_hash[] = { 9648, 111123, 71170, 10270, 10286, 10318, 10382, 43529, 0, 0, 0, 0, 0, 70110, 43835, 119520, 70111, 119360, 118815, 127084, 127083, 8767, 0, 128437, 41281, 0, 5201, 0, 6215, 67072, 6214, 13101, 0, 0, 65268, 67073, - 0, 0, 127976, 72995, 127073, 10511, 42075, 0, 73475, 129509, 0, 67115, + 0, 0, 127976, 72995, 127073, 10511, 42075, 0, 127071, 129509, 0, 67115, 127069, 111293, 127068, 0, 127067, 0, 74845, 0, 42071, 43156, 0, 0, 0, 0, 7954, 0, 0, 0, 8485, 4671, 0, 69513, 4740, 0, 0, 42618, 78294, 3064, 6212, 0, 0, 0, 9554, 0, 83044, 0, 126598, 0, 78291, 6159, 6213, 12885, 0, @@ -27271,14 +27085,14 @@ static const unsigned int code_hash[] = { 125136, 128583, 0, 7022, 0, 4739, 0, 5802, 9816, 8615, 0, 0, 491, 65837, 0, 0, 128644, 0, 8426, 11092, 9891, 0, 0, 0, 41881, 118823, 3736, 7394, 42648, 0, 68448, 9095, 7741, 12684, 41885, 0, 0, 0, 0, 5815, 0, 0, 0, - 127392, 0, 0, 41878, 0, 0, 0, 0, 0, 0, 0, 0, 119503, 0, 120804, 0, 0, - 2267, 0, 78289, 78359, 78288, 0, 0, 78318, 65920, 0, 194819, 7057, 9408, - 9409, 9410, 9411, 9412, 9413, 9414, 9415, 9416, 9417, 9418, 9419, 9420, - 9421, 5897, 9423, 917933, 127107, 0, 127108, 917937, 127963, 8955, 9399, - 9400, 9401, 9402, 9403, 9404, 9405, 9406, 9407, 0, 128626, 42669, 73832, - 78261, 67683, 2631, 119308, 78259, 0, 78260, 3996, 0, 119307, 0, 0, 0, 0, - 0, 0, 64825, 917916, 917913, 917914, 917919, 5899, 917917, 129990, 12085, - 0, 574, 69734, 77825, 73828, 9473, 77824, 118918, 73900, 41735, 42211, 0, + 127392, 0, 0, 41878, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120804, 0, 0, 2267, 0, + 78289, 78359, 78288, 0, 0, 78318, 65920, 0, 194819, 7057, 9408, 9409, + 9410, 9411, 9412, 9413, 9414, 9415, 9416, 9417, 9418, 9419, 9420, 9421, + 5897, 9423, 917933, 127107, 0, 127108, 917937, 127963, 8955, 9399, 9400, + 9401, 9402, 9403, 9404, 9405, 9406, 9407, 0, 128626, 42669, 73832, 78261, + 67683, 2631, 119308, 78259, 0, 78260, 3996, 0, 119307, 0, 0, 0, 0, 0, 0, + 64825, 917916, 917913, 917914, 917919, 5899, 917917, 129990, 12085, 0, + 574, 69734, 77825, 73828, 9473, 77824, 118918, 73900, 41735, 42211, 0, 4190, 77834, 77835, 77830, 77833, 3616, 77828, 77837, 77838, 7708, 77836, 2228, 113765, 0, 0, 4191, 42968, 77844, 73800, 77842, 77843, 77839, 77840, 0, 78311, 83375, 0, 0, 10415, 74102, 0, 5896, 0, 10351, 67151, 0, @@ -27301,45 +27115,45 @@ static const unsigned int code_hash[] = { 0, 101166, 82976, 0, 0, 67812, 0, 101163, 0, 42572, 0, 128300, 119146, 1963, 11622, 0, 43237, 82981, 7550, 67100, 5903, 82984, 78009, 129750, 9662, 0, 128391, 0, 0, 0, 0, 11013, 0, 0, 0, 128433, 67090, 0, 0, 0, 0, - 0, 11568, 983704, 43367, 0, 0, 7852, 119496, 0, 0, 0, 0, 194676, 0, - 194675, 0, 0, 416, 129668, 0, 73834, 0, 68921, 10984, 0, 0, 101175, - 129838, 101182, 0, 127013, 92423, 0, 983261, 121199, 0, 0, 12540, 0, - 983220, 0, 0, 11445, 101168, 2112, 0, 0, 0, 1021, 0, 9507, 10210, 78005, - 8023, 93963, 78006, 78001, 43181, 78003, 9532, 119094, 0, 0, 0, 0, 0, - 1885, 43268, 129802, 129798, 120542, 121153, 392, 7894, 4391, 129810, - 8221, 119597, 77999, 77998, 0, 0, 0, 92967, 0, 3558, 0, 3913, 70429, - 121376, 0, 0, 1265, 0, 6309, 0, 12969, 0, 101151, 0, 101146, 0, 101139, - 0, 41864, 0, 0, 74294, 0, 167, 0, 917584, 0, 93983, 72354, 68477, 0, 0, - 917594, 0, 2493, 129827, 0, 129804, 0, 917570, 917593, 0, 0, 406, 917592, - 0, 0, 0, 0, 0, 0, 0, 127161, 0, 128597, 0, 0, 0, 3421, 10561, 0, 8365, - 917581, 0, 127569, 120787, 128669, 0, 0, 0, 0, 7834, 0, 0, 101154, 10298, - 6624, 4908, 0, 1639, 120842, 0, 0, 6327, 6724, 0, 0, 0, 69910, 4817, 0, - 0, 0, 68059, 0, 11022, 0, 0, 0, 118888, 0, 0, 7548, 64794, 0, 12291, - 983166, 0, 0, 0, 0, 0, 0, 1134, 1838, 0, 2057, 0, 0, 0, 0, 0, 0, 5206, 0, - 0, 42523, 0, 0, 0, 0, 65550, 8570, 4816, 0, 127926, 0, 4821, 0, 0, 0, - 4818, 125257, 119974, 119977, 0, 0, 119970, 119973, 0, 119983, 119982, - 67470, 119984, 119979, 119978, 0, 119980, 119670, 129297, 0, 11284, - 119987, 70097, 65155, 119988, 0, 9363, 0, 0, 0, 5900, 93990, 7889, 2722, - 128770, 0, 0, 0, 0, 2282, 0, 0, 0, 68093, 0, 0, 0, 0, 0, 70150, 118628, - 0, 0, 0, 129651, 70146, 983079, 119967, 71330, 70148, 0, 0, 94006, 70144, - 119964, 110677, 110678, 110675, 110676, 0, 110674, 4226, 0, 123165, 5732, - 71327, 0, 0, 65119, 0, 0, 92971, 64770, 0, 0, 6093, 0, 0, 1395, 0, 0, 0, - 121179, 786, 0, 43174, 64340, 0, 125269, 0, 983662, 125138, 10132, 0, 0, - 0, 0, 0, 93956, 0, 68444, 0, 92437, 123143, 0, 0, 92656, 0, 0, 0, 1399, - 121463, 0, 121465, 121464, 120808, 241, 121469, 4907, 0, 0, 0, 0, 0, 0, - 0, 0, 127904, 0, 0, 42780, 0, 0, 0, 4217, 0, 0, 0, 0, 72158, 0, 0, 43099, - 3965, 0, 0, 0, 13300, 0, 0, 43057, 0, 0, 0, 0, 0, 65372, 0, 6410, 126073, + 0, 11568, 983704, 43367, 0, 0, 7852, 0, 0, 0, 0, 0, 194676, 0, 194675, 0, + 0, 416, 129668, 0, 73834, 0, 68921, 10984, 0, 0, 101175, 129838, 101182, + 0, 127013, 92423, 0, 983258, 121199, 0, 0, 12540, 0, 0, 0, 0, 11445, + 101168, 2112, 0, 0, 0, 1021, 0, 9507, 10210, 78005, 8023, 93963, 78006, + 78001, 43181, 78003, 9532, 119094, 0, 0, 0, 0, 0, 1885, 43268, 129802, + 129798, 120542, 121153, 392, 7894, 4391, 129810, 8221, 119597, 77999, + 77998, 0, 0, 0, 92967, 0, 3558, 0, 3913, 70429, 121376, 0, 0, 1265, 0, + 6309, 0, 12969, 0, 101151, 0, 101146, 0, 101139, 0, 41864, 0, 0, 74294, + 0, 167, 0, 917584, 0, 93983, 72354, 68477, 0, 0, 917594, 0, 2493, 129827, + 0, 129804, 0, 917570, 0, 0, 0, 406, 917592, 0, 0, 0, 0, 0, 0, 0, 127161, + 0, 128597, 0, 0, 0, 3421, 10561, 0, 8365, 917581, 0, 127569, 120787, + 128669, 0, 0, 0, 0, 7834, 0, 0, 101154, 10298, 6624, 4908, 0, 1639, + 120842, 0, 0, 6327, 6724, 0, 0, 0, 69910, 4817, 0, 0, 0, 68059, 0, 11022, + 0, 0, 0, 118888, 0, 0, 7548, 64794, 0, 12291, 983165, 0, 0, 0, 0, 0, 0, + 1134, 1838, 0, 2057, 0, 0, 0, 0, 0, 0, 5206, 0, 0, 42523, 0, 0, 0, 0, + 65550, 8570, 4816, 0, 127926, 0, 4821, 0, 0, 0, 4818, 125257, 119974, + 119977, 0, 0, 119970, 119973, 0, 119983, 119982, 67470, 119984, 119979, + 119978, 0, 119980, 119670, 129297, 0, 11284, 119987, 70097, 65155, + 119988, 0, 9363, 0, 0, 0, 5900, 93990, 7889, 2722, 128770, 0, 0, 0, 0, + 2282, 0, 0, 0, 68093, 0, 0, 0, 0, 0, 70150, 118628, 0, 0, 0, 129651, + 70146, 983079, 119967, 71330, 70148, 0, 0, 94006, 70144, 119964, 110677, + 110678, 110675, 110676, 0, 110674, 4226, 0, 123165, 5732, 71327, 0, 0, + 65119, 0, 0, 92971, 64770, 0, 0, 6093, 0, 0, 1395, 0, 0, 0, 121179, 786, + 0, 43174, 64340, 0, 125269, 0, 983662, 125138, 10132, 0, 0, 0, 0, 0, + 93956, 0, 68444, 0, 92437, 123143, 0, 0, 92656, 0, 0, 0, 1399, 121463, 0, + 121465, 121464, 120808, 241, 121469, 4907, 0, 0, 0, 0, 0, 0, 0, 0, + 127904, 0, 0, 42780, 0, 0, 0, 4217, 0, 0, 0, 0, 72158, 0, 0, 43099, 3965, + 0, 0, 0, 13300, 0, 0, 43057, 0, 0, 0, 0, 0, 65372, 0, 6410, 126073, 125252, 70468, 0, 0, 0, 119558, 0, 0, 0, 0, 0, 0, 43188, 2626, 7762, 0, 0, 0, 127183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67726, 0, 126993, 1542, 0, 0, 92550, 0, 0, 74311, 0, 0, 10181, 2150, 0, 0, 0, 0, 124921, 68053, 6029, 72852, 0, 0, 0, 0, 8993, 0, 0, 0, 93968, 606, 118664, 0, 0, 0, 4311, 0, 6027, 126615, 4322, 0, 65207, 0, 2184, 983920, 0, 0, 2735, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 70806, 0, 73547, 0, 92783, 92844, 0, 65817, 55288, - 127934, 66564, 8530, 0, 7709, 0, 121202, 66560, 128528, 917595, 12876, - 66561, 0, 121430, 983957, 7789, 5855, 809, 0, 0, 72853, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 64386, 0, 74909, 64845, 120607, 66416, 83360, 6532, 0, 0, - 0, 0, 128224, 0, 0, 0, 0, 43091, 92287, 0, 0, 129312, 0, 0, 0, 11361, 0, - 0, 8153, 128105, 0, 10741, 0, 0, 0, 0, 0, 64706, 917922, 0, 69505, 78870, + 0, 0, 0, 0, 0, 0, 70806, 0, 0, 0, 92783, 92844, 0, 65817, 55288, 127934, + 66564, 8530, 0, 7709, 0, 121202, 66560, 128528, 917595, 12876, 66561, 0, + 121430, 983957, 7789, 5855, 809, 0, 0, 72853, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 64386, 0, 74909, 64845, 120607, 66416, 83360, 6532, 0, 0, 0, 0, + 128224, 0, 0, 0, 0, 43091, 92287, 0, 0, 129312, 0, 0, 0, 11361, 0, 0, + 8153, 128105, 0, 10741, 0, 0, 0, 0, 0, 64706, 917922, 0, 69505, 78870, 9466, 78866, 9824, 0, 0, 0, 120977, 915, 0, 0, 43865, 0, 0, 0, 67131, 70096, 67137, 0, 129614, 73648, 6730, 78862, 68161, 0, 78861, 126542, 0, 0, 94010, 118655, 0, 0, 66043, 0, 0, 43107, 0, 0, 92343, 0, 73879, 0, 0, @@ -27349,7 +27163,7 @@ static const unsigned int code_hash[] = { 0, 128273, 0, 0, 7379, 64581, 5386, 0, 0, 10633, 72316, 64488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 124956, 71307, 0, 0, 0, 0, 0, 92370, 0, 0, 0, 0, 0, 71314, 1801, 0, 0, 120867, 0, 0, 77888, 2085, 702, 77887, 77884, 77885, - 13074, 77883, 66299, 0, 0, 12106, 78905, 0, 1755, 0, 77897, 77898, 1163, + 13074, 77883, 66299, 0, 0, 12106, 0, 0, 1755, 0, 77897, 77898, 1163, 3102, 77893, 77894, 0, 0, 0, 0, 69227, 0, 77901, 77902, 77899, 77900, 65171, 0, 0, 0, 70157, 0, 0, 0, 64846, 2908, 0, 11177, 64902, 64950, 0, 128740, 66906, 124959, 70499, 0, 0, 0, 64352, 0, 125031, 1007, 0, 9199, @@ -27369,71 +27183,70 @@ static const unsigned int code_hash[] = { 127233, 0, 0, 0, 92345, 68254, 983661, 77991, 0, 2724, 0, 0, 12313, 110619, 515, 119947, 119944, 119945, 119942, 119943, 119940, 119941, 119938, 8606, 4046, 4589, 4521, 0, 9141, 0, 0, 2741, 0, 0, 1370, 0, 0, 0, - 0, 0, 0, 66880, 0, 66003, 0, 64440, 0, 129943, 69458, 0, 11593, 68669, - 68666, 68660, 0, 0, 2744, 72285, 68638, 0, 814, 0, 119962, 119963, - 119960, 119961, 101106, 43029, 119956, 11623, 119954, 11955, 119952, - 119953, 41986, 119951, 0, 120497, 4847, 110975, 0, 0, 0, 0, 1581, 64920, - 93830, 12954, 963, 110973, 110972, 110971, 110969, 5278, 110967, 68621, - 92222, 983454, 68625, 983452, 68617, 110960, 0, 101459, 101487, 110964, - 110963, 110962, 0, 0, 101464, 101483, 101463, 983443, 983440, 92648, - 127379, 0, 65137, 6483, 65392, 0, 4213, 129649, 41303, 0, 0, 0, 41306, - 129751, 2698, 0, 0, 0, 68396, 0, 41304, 824, 0, 78011, 72315, 78894, - 74827, 78892, 64804, 9820, 119820, 110985, 110976, 0, 6739, 0, 5481, - 3490, 110978, 110977, 71706, 69947, 67702, 9124, 12688, 119833, 101496, - 0, 101495, 119821, 119824, 67480, 42575, 101474, 101478, 119827, 101481, - 101476, 71087, 68658, 119946, 8025, 68630, 101490, 68675, 92445, 71097, - 69613, 0, 0, 0, 0, 983435, 2745, 11797, 110990, 983431, 9202, 983429, - 983430, 0, 0, 0, 10525, 5436, 74584, 110987, 110986, 121506, 43080, - 121508, 121507, 983420, 6246, 119958, 10921, 9723, 6777, 6776, 6775, 0, - 0, 70287, 92384, 0, 8669, 0, 0, 65093, 0, 78881, 2716, 0, 0, 11252, - 101475, 68369, 0, 11060, 12985, 2711, 78872, 78027, 78026, 7992, 0, 0, - 42938, 78033, 78032, 78877, 70724, 78029, 78028, 78031, 78030, 64535, - 110998, 10130, 110996, 0, 0, 111001, 111000, 127914, 983417, 78014, 5713, - 110995, 7570, 110993, 110992, 0, 11190, 129700, 9026, 0, 74864, 7547, - 78891, 0, 10008, 10222, 0, 129543, 9744, 0, 68809, 983413, 119656, - 983411, 94070, 983409, 983410, 983407, 9045, 78888, 4225, 78886, 78887, - 68757, 78885, 78882, 78883, 983402, 983403, 8405, 983401, 10423, 10359, - 983396, 983397, 0, 129149, 4215, 9789, 0, 4321, 12309, 983405, 41313, 0, - 5368, 66886, 0, 0, 5366, 0, 5372, 101482, 67512, 0, 7720, 7390, 2696, 0, - 0, 8268, 0, 1790, 0, 0, 118977, 0, 0, 0, 5376, 1835, 72313, 78704, - 128089, 0, 0, 68655, 1180, 0, 0, 0, 0, 119274, 0, 0, 9122, 118584, 11928, - 0, 65283, 0, 101449, 5971, 101448, 43500, 1268, 65097, 983222, 0, 101445, - 0, 1427, 128440, 0, 5970, 3431, 72299, 101439, 101435, 983389, 983390, - 983387, 2738, 125066, 10455, 0, 74026, 0, 4222, 6240, 0, 119013, 983394, - 68377, 6248, 983378, 67815, 983376, 917907, 92582, 0, 101453, 125215, 0, - 2728, 65549, 64563, 101428, 101425, 101429, 128145, 0, 10713, 7166, - 119559, 2622, 101450, 0, 0, 0, 8954, 0, 94008, 2632, 42617, 10108, 1011, - 42852, 12080, 2709, 0, 5716, 0, 0, 0, 0, 127100, 69378, 0, 9515, 127098, - 66465, 6451, 0, 127097, 8918, 983556, 0, 0, 19950, 0, 0, 0, 44003, 0, - 64735, 0, 0, 0, 0, 983500, 74022, 0, 128795, 68643, 67410, 0, 5721, 0, 0, - 0, 121074, 11267, 983369, 66464, 5720, 983368, 0, 4219, 5718, 8696, 5717, - 122651, 983375, 983897, 983373, 541, 983371, 983372, 119948, 119089, - 68389, 983357, 119949, 56, 4216, 10577, 0, 0, 77849, 69620, 983362, - 983363, 66899, 983361, 0, 0, 67628, 0, 0, 7086, 0, 67998, 67621, 0, 2734, - 69616, 0, 67627, 118937, 0, 67625, 0, 0, 0, 42593, 0, 128217, 0, 0, - 119939, 0, 68180, 0, 0, 71104, 7442, 43665, 359, 41253, 68392, 6239, - 120599, 41256, 0, 67740, 111023, 111022, 111021, 9346, 69660, 41254, 0, - 43291, 78002, 0, 67491, 124993, 93841, 0, 0, 0, 4368, 983505, 0, 68137, - 0, 0, 41024, 0, 0, 121359, 121420, 0, 0, 0, 4223, 0, 8574, 83502, 0, 0, - 0, 118576, 0, 92718, 983636, 70432, 128323, 68382, 0, 0, 0, 0, 0, 4144, - 0, 83193, 6245, 0, 2732, 92644, 0, 0, 64558, 83501, 0, 0, 0, 128005, 0, - 0, 129652, 983149, 3097, 0, 0, 77996, 0, 0, 10863, 111020, 111019, - 111018, 0, 111015, 111014, 111013, 111012, 118964, 0, 10216, 64293, 0, 0, - 69393, 128331, 12325, 111010, 8717, 111008, 101413, 0, 101380, 0, 8700, - 0, 101382, 68363, 10426, 0, 71091, 10362, 0, 1715, 101378, 0, 64918, - 101409, 43278, 42635, 0, 0, 65275, 0, 0, 101319, 0, 69746, 1607, 466, - 118949, 0, 0, 127918, 6243, 983901, 1350, 74195, 64420, 1993, 5362, - 10666, 2708, 92471, 0, 13143, 234, 3199, 0, 41268, 6334, 2173, 0, 0, - 73750, 0, 73762, 10458, 0, 8576, 127136, 0, 2704, 64953, 0, 64832, 8322, - 0, 3132, 0, 2694, 0, 0, 2439, 65104, 69804, 0, 303, 74625, 92622, 0, - 2437, 0, 9817, 4844, 0, 0, 0, 0, 0, 121120, 43292, 0, 2441, 0, 0, 0, 0, - 0, 2451, 2714, 0, 0, 43379, 127984, 74541, 753, 5849, 0, 43089, 0, 0, - 119534, 72380, 0, 0, 0, 2726, 3107, 0, 0, 64937, 0, 78841, 1408, 0, 4607, - 101299, 181, 0, 67728, 9539, 0, 0, 65201, 121121, 92973, 64185, 4142, - 64183, 0, 0, 0, 9706, 64178, 64177, 64176, 0, 64182, 64181, 64180, 64179, - 11401, 125124, 0, 1822, 0, 128581, 68055, 3865, 122918, 0, 10500, 129602, - 119024, 0, 110732, 9830, 0, 0, 0, 65131, 0, 0, 0, 0, 74608, 7038, 0, - 9599, 8748, 0, 0, 9557, 0, 0, 0, 11494, 0, 0, 10865, 0, 43279, 64186, + 0, 0, 0, 66880, 0, 66003, 0, 64440, 0, 0, 69458, 0, 11593, 68669, 68666, + 68660, 0, 0, 2744, 72285, 68638, 0, 814, 0, 119962, 119963, 119960, + 119961, 101106, 43029, 119956, 11623, 119954, 11955, 119952, 119953, + 41986, 119951, 0, 120497, 4847, 110975, 0, 0, 0, 0, 1581, 64920, 93830, + 12954, 963, 110973, 110972, 110971, 110969, 5278, 110967, 68621, 92222, + 983451, 68625, 983449, 68617, 110960, 0, 101459, 101487, 110964, 110963, + 110962, 0, 0, 101464, 101483, 101463, 983440, 983437, 92648, 127379, 0, + 65137, 6483, 65392, 0, 4213, 129649, 41303, 0, 0, 0, 41306, 129751, 2698, + 0, 0, 0, 68396, 0, 41304, 824, 0, 78011, 72315, 78894, 74827, 78892, + 64804, 9820, 119820, 110985, 110976, 0, 6739, 0, 5481, 3490, 110978, + 110977, 71706, 69947, 67702, 9124, 12688, 119833, 101496, 0, 101495, + 119821, 119824, 67480, 42575, 101474, 101478, 119827, 101481, 101476, + 71087, 68658, 119946, 8025, 68630, 101490, 68675, 92445, 71097, 69613, 0, + 0, 0, 0, 983432, 2745, 11797, 110990, 983428, 9202, 983426, 983427, 0, 0, + 0, 10525, 5436, 74584, 110987, 110986, 121506, 43080, 121508, 121507, + 983417, 6246, 119958, 10921, 9723, 6777, 6776, 6775, 0, 0, 70287, 92384, + 0, 8669, 0, 0, 65093, 0, 78881, 2716, 0, 0, 11252, 101475, 68369, 0, + 11060, 12985, 2711, 78872, 78027, 78026, 7992, 0, 0, 42938, 78033, 78032, + 78877, 70724, 78029, 78028, 78031, 78030, 64535, 110998, 10130, 110996, + 0, 0, 111001, 111000, 127914, 983414, 78014, 5713, 110995, 7570, 110993, + 110992, 0, 11190, 129700, 9026, 0, 74864, 7547, 78891, 0, 10008, 10222, + 0, 129543, 9744, 0, 68809, 983410, 119656, 983408, 94070, 983406, 983407, + 983404, 9045, 78888, 4225, 78886, 78887, 68757, 78885, 78882, 78883, + 983399, 983400, 8405, 983398, 10423, 10359, 983393, 983394, 0, 129149, + 4215, 9789, 0, 4321, 12309, 983402, 41313, 0, 5368, 66886, 0, 0, 5366, 0, + 5372, 101482, 67512, 0, 7720, 7390, 2696, 0, 0, 8268, 0, 1790, 0, 0, + 118977, 0, 0, 0, 5376, 1835, 72313, 78704, 128089, 0, 0, 68655, 1180, 0, + 0, 0, 0, 119274, 0, 0, 9122, 118584, 11928, 0, 65283, 0, 101449, 5971, + 101448, 43500, 1268, 65097, 983219, 0, 101445, 0, 1427, 128440, 0, 5970, + 3431, 72299, 101439, 101435, 983386, 983387, 983384, 2738, 125066, 10455, + 0, 74026, 0, 4222, 6240, 0, 119013, 983391, 68377, 6248, 983375, 67815, + 983373, 917907, 92582, 0, 101453, 125215, 0, 2728, 65549, 64563, 101428, + 101425, 101429, 128145, 0, 10713, 7166, 119559, 2622, 101450, 0, 0, 0, + 8954, 0, 94008, 2632, 42617, 10108, 1011, 42852, 12080, 2709, 0, 5716, 0, + 0, 0, 0, 127100, 69378, 0, 9515, 127098, 66465, 6451, 0, 127097, 8918, + 983556, 0, 0, 19950, 0, 0, 0, 44003, 0, 64735, 0, 0, 0, 0, 983497, 74022, + 0, 128795, 68643, 67410, 0, 5721, 0, 0, 0, 121074, 11267, 983366, 66464, + 5720, 983365, 0, 4219, 5718, 8696, 5717, 122651, 983372, 983897, 983370, + 541, 983368, 983369, 119948, 119089, 68389, 983354, 119949, 56, 4216, + 10577, 0, 0, 77849, 69620, 983359, 983360, 66899, 983358, 0, 0, 67628, 0, + 0, 7086, 0, 67998, 67621, 0, 2734, 69616, 0, 67627, 118937, 0, 67625, 0, + 0, 0, 42593, 0, 128217, 0, 0, 119939, 0, 68180, 0, 0, 71104, 7442, 43665, + 359, 41253, 68392, 6239, 120599, 41256, 0, 67740, 111023, 111022, 111021, + 9346, 69660, 41254, 0, 43291, 78002, 0, 67491, 124993, 93841, 0, 0, 0, + 4368, 983502, 0, 68137, 0, 0, 41024, 0, 0, 121359, 121420, 0, 0, 0, 4223, + 0, 8574, 83502, 0, 0, 0, 118576, 0, 92718, 983636, 70432, 128323, 68382, + 0, 0, 0, 0, 0, 4144, 0, 83193, 6245, 0, 2732, 92644, 0, 0, 64558, 83501, + 0, 0, 0, 128005, 0, 0, 129652, 983148, 3097, 0, 0, 77996, 0, 0, 10863, + 111020, 111019, 111018, 0, 111015, 111014, 111013, 111012, 118964, 0, + 10216, 64293, 0, 0, 69393, 128331, 12325, 111010, 8717, 111008, 101413, + 0, 101380, 0, 8700, 0, 101382, 68363, 10426, 0, 71091, 10362, 0, 1715, + 101378, 0, 64918, 101409, 43278, 42635, 0, 0, 65275, 0, 0, 101319, 0, + 69746, 1607, 466, 118949, 0, 0, 127918, 6243, 983901, 1350, 74195, 64420, + 1993, 5362, 10666, 2708, 92471, 0, 13143, 234, 3199, 0, 41268, 6334, + 2173, 0, 0, 73750, 0, 73762, 10458, 0, 8576, 127136, 0, 2704, 64953, 0, + 64832, 8322, 0, 3132, 0, 2694, 0, 0, 2439, 65104, 69804, 0, 303, 74625, + 92622, 0, 2437, 0, 9817, 4844, 0, 0, 0, 0, 0, 121120, 43292, 0, 2441, 0, + 0, 0, 0, 0, 2451, 2714, 0, 0, 43379, 127984, 74541, 753, 5849, 0, 43089, + 0, 0, 119534, 72380, 0, 0, 0, 2726, 3107, 0, 0, 64937, 0, 78841, 1408, 0, + 4607, 101299, 181, 0, 67728, 9539, 0, 0, 65201, 121121, 92973, 64185, + 4142, 64183, 0, 0, 0, 9706, 64178, 64177, 64176, 0, 64182, 64181, 64180, + 64179, 11401, 125124, 0, 1822, 0, 128581, 68055, 3865, 122918, 0, 10500, + 129602, 119024, 0, 110732, 9830, 0, 0, 0, 65131, 0, 0, 0, 0, 74608, 7038, + 0, 9599, 8748, 0, 0, 9557, 0, 0, 0, 11494, 0, 0, 10865, 0, 43279, 64186, 68521, 0, 64191, 64190, 8898, 64188, 129153, 41030, 78836, 0, 0, 78820, 126100, 0, 78805, 78806, 78801, 78802, 6745, 78800, 0, 0, 0, 110866, 0, 0, 73679, 67838, 41039, 78809, 128162, 0, 129893, 0, 110869, 127045, @@ -27452,79 +27265,78 @@ static const unsigned int code_hash[] = { 0, 0, 0, 83484, 83485, 83486, 83487, 83480, 8355, 7854, 83483, 954, 64927, 0, 41045, 0, 41438, 0, 0, 10711, 0, 0, 0, 0, 64774, 13309, 10947, 66727, 101426, 0, 0, 66795, 0, 0, 0, 0, 0, 0, 0, 120634, 69228, 0, 0, 0, - 0, 101430, 0, 3060, 83478, 9986, 0, 83473, 83474, 11698, 77880, 83469, - 9916, 11701, 83472, 42586, 0, 8320, 0, 119095, 0, 0, 1477, 43289, 0, - 74358, 10884, 69446, 9908, 0, 0, 0, 3414, 74304, 0, 0, 0, 0, 2110, 0, - 68306, 0, 74532, 0, 129865, 0, 0, 7164, 0, 0, 0, 11950, 5392, 42248, - 65129, 68656, 5397, 129579, 0, 68136, 0, 0, 5395, 72870, 5393, 354, - 68615, 0, 0, 0, 0, 0, 126236, 0, 0, 626, 0, 5895, 0, 0, 5780, 0, 66407, - 10220, 0, 71121, 43297, 0, 0, 11468, 64436, 0, 0, 0, 73818, 3918, 0, - 3797, 72786, 122961, 0, 4140, 0, 71254, 0, 9030, 813, 0, 68131, 4146, - 119957, 5360, 0, 129498, 0, 0, 6249, 0, 0, 0, 0, 0, 73092, 0, 4911, 988, - 0, 73125, 0, 42948, 0, 0, 0, 0, 74972, 0, 0, 0, 9825, 0, 0, 12803, - 126977, 11032, 67654, 6244, 0, 0, 68662, 0, 129351, 0, 72131, 4169, 0, 0, - 0, 129986, 121410, 120657, 0, 0, 68657, 128943, 78496, 0, 0, 5898, 74540, - 0, 41856, 93056, 194926, 118538, 127373, 83424, 83425, 83426, 73736, - 83420, 68870, 6448, 6835, 0, 4831, 83418, 83419, 67731, 0, 0, 0, 0, 0, 0, - 0, 78499, 0, 0, 0, 43288, 122931, 0, 0, 0, 0, 43418, 0, 0, 0, 7876, - 68132, 917872, 0, 917870, 43378, 0, 0, 120890, 5892, 43605, 0, 0, 0, - 129058, 0, 0, 6251, 83409, 83410, 83411, 83412, 126512, 0, 71092, 83408, - 10114, 0, 0, 5387, 0, 0, 0, 0, 65553, 78346, 1747, 917849, 65109, 69240, - 917852, 126509, 0, 0, 0, 0, 125065, 0, 9850, 0, 367, 1472, 917859, 6687, - 0, 0, 5905, 12339, 8919, 73953, 65680, 0, 2204, 78664, 0, 9134, 118589, - 78666, 43011, 0, 126626, 0, 0, 0, 43013, 10614, 0, 0, 83413, 66646, - 83415, 83416, 0, 73881, 43012, 121127, 83293, 54, 43009, 73885, 0, 6211, - 0, 0, 83295, 68119, 43008, 10758, 0, 0, 0, 0, 0, 70018, 0, 0, 0, 0, - 12765, 0, 0, 0, 0, 126580, 0, 0, 43657, 0, 0, 0, 983737, 0, 83405, - 917843, 0, 0, 83401, 83402, 83403, 83404, 83397, 11363, 12057, 83400, - 1567, 0, 0, 83396, 0, 8957, 4139, 0, 0, 129336, 0, 0, 12740, 0, 92195, - 12761, 127793, 12759, 0, 72304, 67169, 83467, 44002, 0, 83462, 83463, - 83464, 12755, 12762, 41022, 67690, 64217, 476, 0, 983734, 0, 64212, - 41020, 1382, 64209, 64216, 64215, 64214, 64213, 0, 0, 0, 67584, 8720, - 3908, 0, 0, 0, 0, 101529, 129576, 0, 0, 3849, 92324, 94026, 9778, 917906, - 5891, 917912, 55, 917910, 917911, 0, 0, 7935, 67586, 0, 1114, 92599, - 67585, 78675, 0, 83447, 83449, 0, 0, 0, 64717, 0, 0, 0, 66884, 6292, - 65303, 0, 6452, 917886, 917887, 66249, 917885, 917890, 917891, 917888, - 719, 101446, 0, 917892, 0, 0, 0, 94083, 10868, 121333, 2349, 5902, - 917896, 6335, 101350, 917899, 917900, 0, 64369, 0, 0, 0, 69245, 0, + 0, 0, 0, 3060, 83478, 9986, 0, 83473, 83474, 11698, 77880, 83469, 9916, + 11701, 83472, 42586, 0, 8320, 0, 119095, 0, 0, 1477, 43289, 0, 74358, + 10884, 69446, 9908, 0, 0, 0, 3414, 74304, 0, 0, 0, 0, 2110, 0, 68306, 0, + 74532, 0, 129865, 0, 0, 7164, 0, 0, 0, 11950, 5392, 42248, 65129, 68656, + 5397, 129579, 0, 68136, 0, 0, 5395, 72870, 5393, 354, 68615, 0, 0, 0, 0, + 0, 126236, 0, 0, 626, 0, 5895, 0, 0, 5780, 0, 66407, 10220, 0, 71121, + 43297, 0, 0, 11468, 64436, 0, 0, 0, 73818, 3918, 0, 3797, 72786, 0, 0, + 4140, 0, 71254, 0, 9030, 813, 0, 68131, 4146, 119957, 5360, 0, 129498, 0, + 0, 6249, 0, 0, 0, 0, 0, 73092, 0, 4911, 988, 0, 73125, 0, 42948, 0, 0, 0, + 0, 74972, 0, 0, 0, 9825, 0, 0, 12803, 126977, 11032, 67654, 6244, 0, 0, + 68662, 0, 129351, 0, 72131, 4169, 0, 0, 0, 129986, 121410, 120657, 0, 0, + 68657, 128943, 78496, 0, 0, 5898, 74540, 0, 41856, 93056, 194926, 118538, + 127373, 83424, 83425, 83426, 73736, 83420, 68870, 6448, 6835, 0, 4831, + 83418, 83419, 67731, 0, 0, 0, 0, 0, 0, 0, 78499, 0, 0, 0, 43288, 0, 0, 0, + 0, 0, 43418, 0, 0, 0, 7876, 68132, 917872, 0, 917870, 43378, 0, 0, + 120890, 5892, 43605, 0, 0, 0, 129058, 0, 0, 6251, 83409, 83410, 83411, + 83412, 126512, 0, 71092, 83408, 10114, 0, 0, 5387, 0, 0, 0, 0, 65553, + 78346, 1747, 917849, 65109, 69240, 917852, 126509, 0, 0, 0, 0, 125065, 0, + 9850, 0, 367, 1472, 917859, 6687, 0, 0, 5905, 12339, 8919, 73953, 65680, + 0, 2204, 78664, 0, 9134, 118589, 78666, 43011, 0, 126626, 0, 0, 0, 43013, + 10614, 0, 0, 83413, 66646, 83415, 83416, 0, 73881, 43012, 121127, 83293, + 54, 43009, 73885, 0, 6211, 0, 0, 83295, 68119, 43008, 10758, 0, 0, 0, 0, + 0, 70018, 0, 0, 0, 0, 12765, 0, 0, 0, 0, 126580, 0, 0, 43657, 0, 0, 0, + 983737, 0, 83405, 917843, 0, 0, 83401, 83402, 83403, 83404, 83397, 11363, + 12057, 83400, 1567, 0, 0, 83396, 0, 8957, 4139, 0, 0, 129336, 0, 0, + 12740, 0, 92195, 12761, 127793, 12759, 0, 72304, 67169, 83467, 44002, 0, + 83462, 83463, 83464, 12755, 12762, 41022, 67690, 64217, 476, 0, 983734, + 0, 64212, 41020, 1382, 64209, 64216, 64215, 64214, 64213, 0, 0, 0, 67584, + 8720, 3908, 0, 0, 0, 0, 101529, 129576, 0, 0, 3849, 92324, 94026, 9778, + 917906, 5891, 917912, 55, 917910, 917911, 0, 0, 7935, 67586, 0, 1114, + 92599, 67585, 78675, 0, 83447, 83449, 0, 0, 0, 64717, 0, 0, 0, 66884, + 6292, 65303, 0, 6452, 917886, 917887, 66249, 917885, 917890, 917891, + 917888, 719, 101446, 0, 917892, 0, 0, 0, 94083, 10868, 121333, 2349, + 5902, 917896, 6335, 101350, 917899, 917900, 0, 64369, 0, 0, 0, 69245, 0, 126564, 0, 0, 128565, 0, 0, 0, 0, 0, 6454, 1229, 83457, 83458, 83450, 83451, 83452, 65100, 120508, 8224, 917873, 917874, 917879, 917880, 917877, 917878, 128929, 0, 917881, 917882, 5365, 67836, 8901, 0, 0, 129951, 0, 69257, 5925, 83436, 64330, 128400, 83431, 83432, 83433, 83434, 83427, 83428, 83429, 83430, 64928, 10543, 0, 0, 83446, 414, 0, 0, 83442, 6456, 71490, 83445, 11905, 83439, 66284, 83441, 0, 68337, 0, 83437, - 43832, 983140, 9751, 0, 128085, 11770, 0, 0, 69600, 65061, 0, 0, 0, 0, 0, + 43832, 983139, 9751, 0, 128085, 11770, 0, 0, 69600, 65061, 0, 0, 0, 0, 0, 0, 121087, 0, 0, 69924, 0, 0, 0, 69913, 0, 121387, 101513, 101504, 101512, 42038, 387, 0, 12737, 0, 0, 43368, 0, 0, 0, 0, 129713, 129449, 121295, 0, 69400, 127309, 0, 375, 0, 0, 0, 983905, 0, 0, 119202, 119203, - 124117, 43120, 0, 0, 119196, 119197, 0, 4529, 119200, 119201, 119198, - 119199, 0, 0, 69698, 13150, 64492, 0, 0, 0, 0, 0, 42891, 66327, 74298, 0, - 0, 0, 2587, 42193, 0, 6455, 0, 4241, 0, 0, 0, 0, 0, 0, 0, 118821, 0, 0, - 0, 125030, 0, 128684, 129390, 6988, 5373, 0, 0, 119232, 10015, 0, 0, 0, + 0, 43120, 0, 0, 119196, 119197, 0, 4529, 119200, 119201, 119198, 119199, + 0, 0, 69698, 13150, 64492, 0, 0, 0, 0, 0, 42891, 66327, 74298, 0, 0, 0, + 2587, 42193, 0, 6455, 0, 4241, 0, 0, 0, 0, 0, 0, 0, 118821, 0, 0, 0, + 125030, 0, 128684, 129390, 6988, 5373, 0, 0, 119232, 10015, 0, 0, 0, 68642, 0, 120855, 42040, 128827, 5779, 129841, 42037, 83282, 0, 0, 93040, 83283, 101116, 0, 101117, 6983, 0, 0, 101115, 0, 0, 0, 127323, 101111, 0, 119588, 0, 92495, 74558, 0, 68138, 70163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 11144, 73484, 2551, 73482, 6453, 0, 6235, 0, 0, 129081, 72886, 44020, - 11826, 0, 7780, 5369, 118958, 0, 0, 5367, 66870, 0, 0, 5377, 0, 68143, - 128624, 78245, 5218, 0, 127333, 0, 0, 129717, 0, 0, 1300, 0, 127334, - 64505, 0, 0, 119624, 1465, 0, 127316, 0, 0, 0, 101109, 0, 113694, 10729, - 0, 0, 8839, 119243, 0, 7785, 126530, 0, 0, 0, 0, 118638, 0, 0, 0, 3897, - 0, 92331, 74417, 113704, 0, 68127, 71425, 70688, 0, 0, 0, 0, 69287, 3542, - 0, 120685, 7951, 68152, 118857, 0, 92972, 0, 0, 127311, 73683, 0, 65150, + 11144, 0, 2551, 0, 6453, 0, 6235, 0, 0, 129081, 72886, 44020, 11826, 0, + 7780, 5369, 118958, 0, 0, 5367, 66870, 0, 0, 5377, 0, 68143, 128624, + 78245, 5218, 0, 127333, 0, 0, 129717, 0, 0, 1300, 0, 127334, 64505, 0, 0, + 119624, 1465, 0, 127316, 0, 0, 0, 101109, 0, 113694, 10729, 0, 0, 8839, + 119243, 0, 7785, 126530, 0, 0, 0, 0, 118638, 0, 0, 0, 3897, 0, 92331, + 74417, 113704, 0, 68127, 71425, 70688, 0, 0, 0, 0, 69287, 3542, 0, + 120685, 7951, 68152, 118857, 0, 92972, 0, 0, 127311, 73683, 0, 65150, 68031, 0, 0, 0, 0, 9985, 0, 127328, 0, 0, 0, 0, 10830, 0, 615, 64490, 7574, 0, 0, 0, 12909, 73698, 64559, 127332, 73951, 0, 67996, 2020, 0, 0, 0, 120701, 0, 983640, 0, 0, 0, 92991, 0, 0, 9070, 0, 68411, 11281, 42829, - 0, 1033, 0, 78918, 0, 118610, 0, 65226, 0, 0, 0, 0, 0, 3450, 0, 7397, 0, - 0, 42778, 10000, 41088, 449, 0, 0, 68458, 113725, 0, 0, 10738, 69634, 0, - 0, 41085, 0, 0, 0, 12764, 0, 93058, 3596, 7322, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1033, 0, 0, 0, 118610, 0, 65226, 0, 0, 0, 0, 0, 3450, 0, 7397, 0, 0, + 42778, 10000, 41088, 449, 0, 0, 68458, 113725, 0, 0, 10738, 69634, 0, 0, + 41085, 0, 0, 0, 12764, 0, 93058, 3596, 7322, 0, 0, 0, 0, 0, 0, 0, 0, 2092, 0, 0, 0, 121350, 10820, 0, 0, 126567, 1853, 0, 0, 93014, 0, 12770, 0, 0, 124997, 0, 0, 0, 0, 0, 129053, 4828, 1258, 0, 2006, 0, 0, 74285, 127987, 0, 120683, 122880, 983900, 983903, 8846, 128255, 0, 128091, 2650, 9182, 1961, 121399, 11525, 0, 1959, 0, 55228, 11774, 41016, 0, 0, 128054, 41017, 13109, 0, 10519, 66331, 3454, 19930, 0, 41019, 92894, 0, 0, 78362, 41021, 101566, 0, 0, 0, 0, 65531, 0, 0, 0, 0, 0, 0, 8865, 6402, 113827, - 77923, 0, 101536, 0, 7733, 0, 4998, 68493, 0, 78930, 0, 4268, 101368, 0, - 0, 101555, 101579, 10881, 0, 0, 0, 0, 2014, 0, 71901, 0, 0, 195057, 0, 0, + 77923, 0, 101536, 0, 7733, 0, 4998, 68493, 0, 0, 0, 4268, 101368, 0, 0, + 101555, 101579, 10881, 0, 0, 0, 0, 2014, 0, 71901, 0, 0, 195057, 0, 0, 78357, 65281, 0, 0, 0, 0, 0, 2015, 0, 0, 71840, 66318, 74824, 101575, 0, 101574, 101569, 0, 70061, 8094, 10135, 101551, 0, 794, 0, 0, 66335, 0, 121303, 4343, 0, 4833, 0, 0, 0, 0, 189, 12611, 0, 72215, 0, 4838, 126214, @@ -27544,144 +27356,143 @@ static const unsigned int code_hash[] = { 0, 0, 121068, 92418, 0, 0, 0, 43280, 0, 70718, 1812, 0, 73046, 0, 0, 0, 0, 0, 6054, 10697, 3169, 0, 0, 70720, 11487, 70712, 0, 0, 0, 194716, 0, 0, 41863, 0, 0, 2304, 0, 92326, 0, 42951, 0, 0, 64760, 11766, 0, 0, 0, 0, - 69236, 119171, 0, 8773, 10733, 36, 0, 0, 0, 0, 0, 11074, 0, 64910, - 983131, 2009, 0, 0, 128036, 68114, 128906, 0, 0, 0, 983998, 12852, 3031, - 0, 0, 129088, 0, 66414, 0, 0, 119950, 42613, 65933, 366, 0, 9892, 0, - 11754, 101107, 83329, 65301, 44013, 83058, 67245, 10102, 0, 7739, 41026, - 0, 0, 0, 0, 0, 0, 0, 0, 78386, 129475, 71868, 113811, 13081, 10923, - 129330, 0, 68145, 0, 65861, 74083, 0, 0, 128392, 83063, 83065, 0, 70706, - 0, 0, 0, 70168, 66586, 4183, 64967, 66250, 0, 92547, 0, 0, 113685, 0, - 3792, 2011, 0, 0, 77748, 83332, 77749, 120595, 0, 68489, 41023, 77747, 0, - 11659, 7922, 12614, 2005, 8523, 129880, 0, 7513, 1863, 129436, 83337, - 128969, 0, 120274, 120033, 0, 8144, 0, 73031, 77767, 127524, 120270, - 42241, 8783, 77764, 77765, 77766, 77760, 77761, 77762, 77763, 0, 10680, - 0, 43293, 68771, 0, 119164, 83320, 72003, 10187, 77742, 77743, 0, 77737, - 77738, 77739, 0, 10968, 43296, 119044, 0, 0, 101400, 0, 1005, 43826, - 120030, 0, 2870, 0, 101399, 0, 0, 983798, 0, 235, 1384, 77758, 74887, - 70494, 77754, 77755, 9796, 69895, 77750, 77751, 77752, 13186, 120407, - 120250, 0, 0, 0, 42527, 12911, 43427, 1383, 983581, 0, 0, 0, 6156, 68117, - 0, 7993, 4288, 0, 0, 13238, 13244, 0, 0, 120426, 13234, 120427, 0, - 118904, 0, 11364, 0, 1380, 65617, 120253, 120261, 13196, 13197, 120311, - 120419, 9495, 0, 0, 120418, 0, 73976, 128160, 0, 6941, 0, 13205, 13211, - 5801, 0, 74271, 120319, 0, 120302, 7670, 0, 68075, 983583, 0, 19957, - 72314, 2021, 93811, 43877, 0, 0, 0, 0, 3875, 120431, 64341, 0, 9814, - 43457, 13066, 3314, 7787, 0, 0, 0, 0, 0, 0, 64531, 129860, 0, 0, 0, 0, 0, - 127138, 0, 0, 9742, 0, 0, 10800, 77718, 8404, 0, 92592, 77714, 7089, - 77716, 78545, 0, 77712, 77713, 0, 0, 4772, 5771, 101405, 0, 9841, 8843, - 0, 0, 0, 129862, 120816, 0, 123137, 0, 77735, 0, 0, 0, 77731, 8849, - 77733, 77734, 65112, 1796, 77729, 77730, 69665, 8164, 41301, 3502, 0, - 122884, 128387, 0, 983835, 5825, 0, 0, 0, 0, 121322, 10983, 10354, 10418, - 0, 2022, 0, 1409, 100789, 0, 0, 0, 0, 1390, 0, 0, 10471, 65904, 5846, - 126472, 0, 0, 0, 0, 0, 0, 66035, 77725, 0, 77726, 77720, 77721, 67458, - 3168, 67733, 0, 0, 2370, 0, 126243, 0, 195049, 0, 0, 1836, 0, 121207, - 119137, 118959, 125232, 0, 0, 0, 2390, 3944, 0, 0, 0, 0, 69908, 125011, - 0, 0, 123200, 0, 0, 8975, 64739, 0, 0, 0, 0, 64409, 0, 0, 0, 0, 128564, - 0, 0, 0, 0, 6204, 0, 0, 0, 10911, 64954, 119003, 74809, 118903, 4267, 0, - 0, 0, 0, 0, 0, 72023, 0, 0, 119504, 92887, 0, 0, 0, 0, 121125, 0, 128337, - 5842, 0, 41439, 0, 0, 0, 9328, 0, 120980, 120917, 0, 0, 2285, 0, 0, 0, 0, - 118634, 64555, 0, 0, 72162, 9541, 0, 0, 0, 41441, 0, 0, 0, 41040, 2459, - 0, 0, 41041, 0, 0, 0, 0, 0, 10450, 0, 41043, 0, 0, 43125, 0, 0, 0, 0, 0, - 121008, 68436, 128040, 0, 120649, 0, 0, 4312, 43927, 0, 0, 11923, 42227, - 0, 5763, 0, 4827, 74559, 42228, 64406, 0, 0, 129703, 433, 119620, 0, - 2499, 67167, 67166, 0, 11973, 0, 4293, 42271, 42224, 0, 0, 66322, 42226, - 0, 0, 0, 74180, 0, 55277, 0, 0, 0, 119317, 0, 74632, 0, 0, 71103, 0, 0, - 0, 585, 2383, 0, 43263, 0, 4290, 64842, 0, 68920, 0, 8511, 0, 0, 0, - 119048, 2380, 126119, 0, 71704, 2376, 0, 0, 0, 5197, 127046, 127047, - 127048, 2366, 127050, 127051, 73442, 0, 0, 0, 93835, 0, 93818, 0, 0, - 74188, 113813, 0, 0, 0, 983838, 0, 0, 0, 0, 1847, 0, 72771, 0, 42384, 0, - 4227, 74158, 0, 92501, 0, 0, 42365, 0, 128902, 0, 92821, 0, 0, 0, 0, 0, - 0, 0, 0, 122934, 128563, 0, 983509, 127560, 2754, 0, 0, 128900, 0, - 127867, 119638, 0, 1711, 12984, 92365, 77776, 6255, 77770, 77771, 77772, - 77773, 0, 42063, 74184, 0, 0, 0, 0, 0, 77785, 77786, 41035, 43274, 77781, - 11256, 77783, 77784, 520, 77778, 41037, 77780, 0, 0, 41034, 0, 983829, - 64815, 0, 0, 321, 41028, 0, 0, 0, 0, 0, 0, 0, 74191, 0, 0, 72767, 1861, - 118938, 129666, 0, 0, 100770, 0, 0, 128530, 3859, 0, 41660, 0, 70793, 0, - 983756, 75014, 0, 127514, 41658, 0, 0, 0, 0, 0, 4414, 77769, 0, 42632, 0, - 0, 0, 0, 0, 1405, 0, 43220, 43341, 0, 0, 0, 0, 0, 983733, 11199, 0, 3513, - 0, 70341, 43342, 0, 65529, 0, 0, 0, 6485, 1397, 0, 0, 92678, 118566, - 124137, 0, 82961, 0, 82962, 0, 74270, 43287, 983731, 0, 0, 983738, 0, - 71914, 4317, 10490, 0, 0, 194867, 74463, 128952, 464, 41624, 0, 0, 0, - 1346, 128240, 69271, 64724, 128566, 423, 0, 0, 113748, 0, 128161, 0, 0, - 120563, 64960, 0, 0, 0, 0, 9584, 77795, 77796, 78927, 0, 9718, 77792, - 42642, 77794, 64750, 77789, 77790, 0, 0, 128333, 0, 3204, 64666, 0, - 43530, 2752, 0, 0, 119594, 0, 0, 0, 0, 92371, 0, 41983, 0, 7010, 0, 0, - 41495, 92379, 5877, 42252, 93070, 8009, 3305, 0, 0, 0, 0, 92293, 0, 0, 0, - 100836, 0, 65915, 1400, 75018, 10685, 75017, 2103, 122908, 0, 43276, 0, - 11169, 0, 6481, 0, 0, 0, 100837, 72249, 100838, 74198, 0, 9116, 0, 0, 0, - 0, 0, 0, 8129, 92994, 0, 124992, 0, 11658, 0, 0, 3452, 41031, 0, 1385, 0, - 100754, 0, 43340, 11123, 41033, 6493, 12758, 0, 0, 11426, 0, 1681, - 100755, 1204, 11960, 69902, 0, 69457, 0, 119322, 129483, 7415, 43338, 0, - 0, 67717, 64915, 0, 100759, 72021, 41497, 65044, 0, 19960, 65358, 983601, - 0, 0, 0, 73670, 0, 1789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64728, 0, 0, 0, - 6506, 64312, 0, 2368, 0, 0, 0, 0, 3439, 1825, 1192, 0, 73739, 10639, 0, - 7790, 5430, 0, 0, 2848, 92981, 0, 0, 7607, 0, 0, 0, 120658, 0, 0, 8883, - 0, 728, 0, 0, 0, 0, 92931, 0, 121372, 128348, 0, 68078, 8091, 11447, 0, - 0, 126261, 983729, 0, 70003, 0, 0, 74419, 12335, 0, 0, 3443, 0, 0, 0, - 127145, 0, 0, 0, 0, 11843, 0, 9205, 8624, 128543, 92930, 43295, 0, 65445, - 0, 6277, 41672, 0, 10010, 70186, 983052, 0, 835, 71340, 0, 0, 0, 0, 0, - 5426, 4258, 0, 64891, 5424, 0, 8283, 0, 5434, 0, 0, 0, 0, 0, 11947, 0, - 1404, 0, 11432, 0, 3464, 6486, 4819, 0, 0, 570, 8095, 0, 0, 1498, 0, 0, - 0, 431, 67820, 0, 120574, 128096, 0, 0, 13096, 0, 0, 43408, 0, 128538, - 8835, 77875, 0, 0, 122973, 0, 0, 0, 0, 0, 3477, 227, 10488, 0, 382, - 11418, 0, 5878, 0, 0, 0, 0, 6484, 92355, 66039, 0, 0, 0, 78717, 0, 92662, - 119665, 0, 0, 43290, 0, 0, 0, 0, 8782, 0, 0, 4323, 128649, 0, 120903, - 12094, 67499, 0, 0, 0, 92953, 3856, 120970, 124138, 5872, 6495, 72306, 0, - 0, 0, 67173, 67172, 67171, 3953, 0, 0, 93063, 11994, 4339, 0, 92654, 0, - 0, 0, 0, 128804, 0, 5228, 0, 9766, 0, 92741, 0, 0, 0, 0, 68860, 0, 1162, - 0, 2671, 0, 73666, 92632, 92631, 72117, 0, 73811, 0, 194895, 0, 68085, 0, - 74331, 11424, 0, 10466, 121239, 0, 194890, 0, 4820, 0, 0, 0, 194891, 0, - 119212, 4896, 0, 4897, 42821, 64611, 0, 4438, 0, 0, 1753, 11331, 6147, 0, - 43282, 8833, 0, 0, 6504, 0, 0, 0, 118670, 0, 1413, 0, 0, 64353, 12141, - 121138, 0, 0, 43163, 0, 72880, 64789, 127094, 838, 127092, 120697, - 127090, 5014, 0, 256, 0, 0, 42443, 42739, 0, 7542, 0, 70389, 0, 6489, - 10048, 74326, 0, 66573, 0, 125271, 78712, 11761, 126078, 129603, 41094, - 0, 0, 0, 0, 92689, 8453, 0, 0, 120942, 128184, 0, 11816, 0, 0, 2930, - 93845, 0, 41098, 92771, 41093, 0, 0, 6498, 41096, 0, 0, 1238, 200, 0, - 1660, 74476, 0, 0, 74362, 0, 0, 72301, 9224, 0, 0, 0, 0, 0, 0, 0, 0, + 69236, 0, 0, 8773, 10733, 36, 0, 0, 0, 0, 0, 11074, 0, 64910, 983130, + 2009, 0, 0, 128036, 68114, 128906, 0, 0, 0, 983998, 12852, 3031, 0, 0, + 129088, 0, 66414, 0, 0, 119950, 42613, 65933, 366, 0, 9892, 0, 11754, + 101107, 83329, 65301, 44013, 83058, 67245, 10102, 0, 7739, 41026, 0, 0, + 0, 0, 0, 0, 0, 0, 78386, 129475, 71868, 113811, 13081, 10923, 129330, 0, + 68145, 0, 65861, 74083, 0, 0, 128392, 83063, 83065, 0, 70706, 0, 0, 0, + 70168, 66586, 4183, 64967, 66250, 0, 92547, 0, 0, 113685, 0, 3792, 2011, + 0, 0, 77748, 83332, 77749, 120595, 0, 68489, 41023, 77747, 0, 11659, + 7922, 12614, 2005, 8523, 0, 0, 7513, 1863, 129436, 83337, 128969, 0, + 120274, 120033, 0, 8144, 0, 73031, 77767, 127524, 120270, 42241, 8783, + 77764, 77765, 77766, 77760, 77761, 77762, 77763, 0, 10680, 0, 43293, + 68771, 0, 119164, 83320, 72003, 10187, 77742, 77743, 0, 77737, 77738, + 77739, 0, 10968, 43296, 119044, 0, 0, 101400, 0, 1005, 43826, 120030, 0, + 2870, 0, 101399, 0, 0, 983798, 0, 235, 1384, 77758, 74887, 70494, 77754, + 77755, 9796, 69895, 77750, 77751, 77752, 13186, 120407, 120250, 0, 0, 0, + 42527, 12911, 43427, 1383, 983581, 0, 0, 0, 6156, 68117, 0, 7993, 4288, + 0, 0, 13238, 13244, 0, 0, 120426, 13234, 120427, 0, 118904, 0, 11364, 0, + 1380, 65617, 120253, 120261, 13196, 13197, 120311, 120419, 9495, 0, 0, + 120418, 0, 73976, 128160, 0, 6941, 0, 13205, 13211, 5801, 0, 74271, + 120319, 0, 120302, 7670, 0, 68075, 983583, 0, 19957, 72314, 2021, 93811, + 43877, 0, 0, 0, 0, 3875, 120431, 64341, 0, 9814, 43457, 13066, 3314, + 7787, 0, 0, 0, 0, 0, 0, 64531, 129860, 0, 0, 0, 0, 0, 127138, 0, 0, 9742, + 0, 0, 10800, 77718, 8404, 0, 92592, 77714, 7089, 77716, 78545, 0, 77712, + 77713, 0, 0, 4772, 5771, 101405, 0, 9841, 8843, 0, 0, 0, 129862, 120816, + 0, 123137, 0, 77735, 0, 0, 0, 77731, 8849, 77733, 77734, 65112, 1796, + 77729, 77730, 69665, 8164, 41301, 3502, 0, 122884, 128387, 0, 983835, + 5825, 0, 0, 0, 0, 121322, 10983, 10354, 10418, 0, 2022, 0, 1409, 100789, + 0, 0, 0, 0, 1390, 0, 0, 10471, 65904, 5846, 126472, 0, 0, 0, 0, 0, 0, + 66035, 77725, 0, 77726, 77720, 77721, 67458, 3168, 67733, 0, 0, 2370, 0, + 126243, 0, 195049, 0, 0, 1836, 0, 121207, 119137, 118959, 125232, 0, 0, + 0, 2390, 3944, 0, 0, 0, 0, 69908, 125011, 0, 0, 123200, 0, 0, 8975, + 64739, 0, 0, 0, 0, 64409, 0, 0, 0, 0, 128564, 0, 0, 0, 0, 6204, 0, 0, 0, + 10911, 64954, 119003, 74809, 118903, 4267, 0, 0, 0, 0, 0, 0, 72023, 0, 0, + 0, 92887, 0, 0, 0, 0, 121125, 0, 128337, 5842, 0, 41439, 0, 0, 0, 9328, + 0, 120980, 120917, 0, 0, 2285, 0, 0, 0, 0, 118634, 64555, 0, 0, 72162, + 9541, 0, 0, 0, 41441, 0, 0, 0, 41040, 2459, 0, 0, 41041, 0, 0, 0, 0, 0, + 10450, 0, 41043, 0, 0, 43125, 0, 0, 0, 0, 0, 121008, 68436, 128040, 0, + 120649, 0, 0, 4312, 43927, 0, 0, 11923, 42227, 0, 5763, 0, 4827, 74559, + 42228, 64406, 0, 0, 129703, 433, 119620, 0, 2499, 67167, 67166, 0, 11973, + 0, 4293, 42271, 42224, 0, 0, 66322, 42226, 0, 0, 0, 74180, 0, 55277, 0, + 0, 0, 119317, 0, 74632, 0, 0, 71103, 0, 0, 0, 585, 2383, 0, 43263, 0, + 4290, 64842, 0, 68920, 0, 8511, 0, 0, 0, 119048, 2380, 126119, 0, 71704, + 2376, 0, 0, 0, 5197, 127046, 127047, 127048, 2366, 127050, 127051, 73442, + 0, 0, 0, 93835, 0, 93818, 0, 0, 74188, 113813, 0, 0, 0, 983838, 0, 0, 0, + 0, 1847, 0, 72771, 0, 42384, 0, 4227, 74158, 0, 92501, 0, 0, 42365, 0, + 128902, 0, 92821, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128563, 0, 983506, 127560, + 2754, 0, 0, 128900, 0, 127867, 119638, 0, 1711, 12984, 92365, 77776, + 6255, 77770, 77771, 77772, 77773, 0, 42063, 74184, 0, 0, 0, 0, 0, 77785, + 77786, 41035, 43274, 77781, 11256, 77783, 77784, 520, 77778, 41037, + 77780, 0, 0, 41034, 0, 983829, 64815, 0, 0, 321, 41028, 0, 0, 0, 0, 0, 0, + 0, 74191, 0, 0, 72767, 1861, 118938, 129666, 0, 0, 100770, 0, 0, 128530, + 3859, 0, 41660, 0, 70793, 0, 983756, 75014, 0, 127514, 41658, 0, 0, 0, 0, + 0, 4414, 77769, 0, 42632, 0, 0, 0, 0, 0, 1405, 0, 43220, 43341, 0, 0, 0, + 0, 0, 983733, 11199, 0, 3513, 0, 70341, 43342, 0, 65529, 0, 0, 0, 6485, + 1397, 0, 0, 92678, 118566, 0, 0, 82961, 0, 82962, 0, 74270, 43287, + 983731, 0, 0, 983738, 0, 71914, 4317, 10490, 0, 0, 194867, 74463, 128952, + 464, 41624, 0, 0, 0, 1346, 128240, 69271, 64724, 128566, 423, 0, 0, + 113748, 0, 128161, 0, 0, 120563, 64960, 0, 0, 0, 0, 9584, 77795, 77796, + 125026, 0, 9718, 77792, 42642, 77794, 64750, 77789, 77790, 0, 0, 128333, + 0, 3204, 64666, 0, 43530, 2752, 0, 0, 119594, 0, 0, 0, 0, 92371, 0, + 41983, 0, 7010, 0, 0, 41495, 92379, 5877, 42252, 93070, 8009, 3305, 0, 0, + 0, 0, 92293, 0, 0, 0, 100836, 0, 65915, 1400, 75018, 10685, 75017, 2103, + 122908, 0, 43276, 0, 11169, 0, 6481, 0, 0, 0, 100837, 72249, 100838, + 74198, 0, 9116, 0, 0, 0, 0, 0, 0, 8129, 92994, 0, 124992, 0, 11658, 0, 0, + 3452, 41031, 0, 1385, 0, 0, 0, 43340, 11123, 41033, 6493, 12758, 0, 0, + 11426, 0, 1681, 100755, 1204, 11960, 69902, 0, 69457, 0, 119322, 129483, + 7415, 43338, 0, 0, 67717, 64915, 0, 100759, 72021, 41497, 65044, 0, + 19960, 65358, 983601, 0, 0, 0, 73670, 0, 1789, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 64728, 0, 0, 0, 6506, 64312, 0, 2368, 0, 0, 0, 0, 3439, 1825, 1192, 0, + 73739, 10639, 0, 7790, 5430, 0, 0, 2848, 92981, 0, 0, 7607, 0, 0, 0, + 120658, 0, 0, 8883, 0, 728, 0, 0, 0, 0, 92931, 0, 121372, 128348, 0, + 68078, 8091, 11447, 0, 0, 126261, 983729, 0, 70003, 0, 0, 74419, 12335, + 0, 0, 3443, 0, 0, 0, 127145, 0, 0, 0, 0, 11843, 0, 9205, 8624, 128543, + 92930, 43295, 0, 65445, 0, 6277, 41672, 0, 10010, 70186, 983052, 0, 835, + 71340, 0, 0, 0, 0, 0, 5426, 4258, 0, 64891, 5424, 0, 8283, 0, 5434, 0, 0, + 0, 0, 0, 11947, 0, 1404, 0, 11432, 0, 3464, 6486, 4819, 0, 0, 570, 8095, + 0, 0, 1498, 0, 0, 0, 431, 67820, 0, 120574, 128096, 0, 0, 13096, 0, 0, + 43408, 0, 128538, 8835, 77875, 0, 0, 0, 0, 0, 0, 0, 0, 3477, 227, 10488, + 0, 382, 11418, 0, 5878, 0, 0, 0, 0, 6484, 92355, 66039, 0, 0, 0, 78717, + 0, 92662, 119665, 0, 0, 43290, 0, 0, 0, 0, 8782, 0, 0, 4323, 128649, 0, + 120903, 12094, 67499, 0, 0, 0, 92953, 3856, 120970, 0, 5872, 6495, 72306, + 0, 0, 0, 67173, 67172, 67171, 3953, 0, 0, 93063, 11994, 4339, 0, 92654, + 0, 0, 0, 0, 128804, 0, 5228, 0, 9766, 0, 92741, 0, 0, 0, 0, 68860, 0, + 1162, 0, 2671, 0, 73666, 92632, 92631, 72117, 0, 73811, 0, 194895, 0, + 68085, 0, 74331, 11424, 0, 10466, 121239, 0, 194890, 0, 4820, 0, 0, 0, + 194891, 0, 119212, 4896, 0, 4897, 42821, 64611, 0, 4438, 0, 0, 1753, + 11331, 6147, 0, 43282, 8833, 0, 0, 6504, 0, 0, 0, 118670, 0, 1413, 0, 0, + 64353, 12141, 121138, 0, 0, 43163, 0, 72880, 64789, 127094, 838, 127092, + 120697, 127090, 5014, 0, 256, 0, 0, 42443, 42739, 0, 7542, 0, 70389, 0, + 6489, 10048, 74326, 0, 66573, 0, 125271, 78712, 11761, 126078, 129603, + 41094, 0, 0, 0, 0, 92689, 8453, 0, 0, 120942, 128184, 0, 11816, 0, 0, + 2930, 93845, 0, 41098, 92771, 41093, 0, 0, 6498, 41096, 0, 0, 1238, 200, + 0, 1660, 74476, 0, 0, 74362, 0, 0, 72301, 9224, 0, 0, 0, 0, 0, 0, 0, 0, 72729, 43284, 0, 72110, 67459, 13183, 0, 0, 0, 1669, 10776, 0, 0, 0, 0, 0, 1732, 4030, 0, 3963, 0, 0, 0, 6491, 0, 0, 914, 121394, 0, 0, 0, 78713, 0, 92441, 74367, 42960, 0, 0, 0, 0, 0, 0, 0, 65537, 0, 0, 43430, 5301, 0, 92618, 0, 43285, 0, 0, 125186, 0, 0, 5876, 0, 69555, 0, 0, 110713, 0, 0, - 0, 0, 0, 0, 11114, 74536, 0, 0, 0, 0, 983130, 0, 0, 0, 0, 10915, 983069, + 0, 0, 0, 0, 11114, 74536, 0, 0, 0, 0, 983129, 0, 0, 0, 0, 10915, 983069, 12007, 0, 0, 0, 0, 67655, 92604, 0, 8629, 0, 43168, 41872, 0, 0, 0, 42488, 0, 0, 0, 0, 0, 64730, 70041, 0, 122895, 0, 0, 0, 92306, 11416, 4280, 128516, 8765, 73451, 0, 1393, 0, 11157, 74386, 0, 0, 0, 0, 6683, 0, - 93832, 12144, 0, 74513, 13019, 74994, 0, 0, 0, 983272, 0, 6488, 357, 0, + 93832, 12144, 0, 74513, 13019, 74994, 0, 0, 0, 983269, 0, 6488, 357, 0, 41100, 0, 41104, 0, 41099, 0, 71320, 0, 0, 0, 4434, 0, 0, 0, 74231, 83107, 0, 194914, 0, 0, 72286, 68305, 0, 41759, 12757, 0, 0, 72769, 9790, - 7674, 0, 121095, 68209, 0, 41764, 0, 0, 72322, 2268, 0, 129845, 983608, - 12743, 0, 6480, 0, 41779, 0, 66601, 0, 74490, 10986, 66602, 0, 64807, 0, - 0, 41767, 119629, 0, 0, 0, 3955, 64571, 194918, 127089, 0, 70187, 69975, - 9770, 12305, 12230, 0, 73551, 0, 0, 74752, 0, 0, 123168, 128263, 74449, + 7674, 0, 121095, 68209, 0, 41764, 0, 0, 72322, 2268, 0, 129845, 0, 12743, + 0, 6480, 0, 41779, 0, 66601, 0, 74490, 10986, 66602, 0, 64807, 0, 0, + 41767, 119629, 0, 0, 0, 3955, 64571, 194918, 127089, 0, 70187, 69975, + 9770, 12305, 12230, 0, 78579, 0, 0, 74752, 0, 0, 123168, 128263, 74449, 0, 65948, 69611, 0, 0, 71131, 129505, 78573, 0, 0, 11116, 0, 5747, 0, 110667, 9802, 41092, 120731, 0, 0, 0, 0, 0, 120733, 41090, 0, 0, 0, - 11271, 57, 0, 0, 983244, 0, 71268, 121290, 43137, 0, 0, 110672, 126221, + 11271, 57, 0, 0, 983241, 0, 71268, 121290, 43137, 0, 0, 110672, 126221, 0, 0, 0, 0, 0, 277, 74385, 0, 0, 0, 72155, 0, 13025, 8757, 0, 0, 1574, 0, 126124, 100800, 0, 5749, 129923, 0, 42824, 0, 1039, 9801, 0, 5745, 0, - 41858, 0, 0, 120655, 0, 41862, 0, 0, 78822, 436, 4771, 118635, 42501, 0, - 10573, 0, 77931, 118560, 917986, 9644, 0, 0, 0, 0, 69837, 0, 0, 0, 0, - 67409, 0, 0, 0, 125204, 11939, 0, 0, 0, 0, 0, 0, 0, 3504, 0, 0, 92854, - 126209, 0, 10226, 65558, 0, 3594, 0, 0, 40, 0, 0, 0, 0, 0, 74312, 72138, - 74337, 0, 69577, 0, 0, 0, 70476, 0, 121143, 72317, 0, 0, 4304, 0, 0, - 78707, 0, 0, 0, 78597, 1348, 78596, 0, 0, 0, 70406, 92392, 0, 7599, 0, 0, - 13269, 0, 129729, 0, 100804, 0, 74494, 6097, 7568, 43980, 4982, 78592, 0, - 0, 0, 0, 13270, 0, 128090, 13138, 0, 9484, 0, 0, 71364, 0, 0, 0, 9487, 0, - 92913, 0, 71911, 78668, 73963, 6193, 0, 0, 0, 194848, 7228, 10011, - 194849, 194852, 194851, 11654, 194853, 126218, 194855, 0, 194857, 3604, - 0, 0, 0, 0, 0, 94110, 43740, 94109, 194860, 194863, 66750, 121021, 0, - 94111, 6995, 74173, 5437, 74174, 0, 8702, 7339, 129981, 0, 199, 194843, - 194846, 194845, 0, 126069, 0, 67818, 0, 7560, 0, 0, 0, 0, 6472, 65814, 0, - 128983, 70845, 0, 0, 9191, 0, 0, 0, 0, 124904, 10196, 0, 72452, 6585, 0, - 120750, 0, 0, 71872, 129129, 0, 0, 78590, 72308, 11382, 129499, 0, - 983670, 0, 194833, 194832, 2165, 129540, 94020, 194836, 42727, 194838, - 128252, 78585, 43874, 119610, 0, 0, 43248, 0, 194816, 0, 194818, 128845, - 194820, 127879, 5297, 194821, 13284, 6112, 93964, 93010, 73927, 42947, 0, - 65746, 0, 0, 194827, 194826, 4342, 42839, 194831, 1677, 0, 72135, 0, 0, - 0, 11011, 66399, 0, 0, 0, 10160, 0, 0, 0, 0, 2052, 4308, 92174, 43000, - 118659, 543, 64916, 122964, 0, 0, 119170, 0, 118922, 2064, 0, 43158, 0, - 0, 69984, 0, 0, 129187, 0, 0, 0, 0, 41631, 92728, 0, 0, 6228, 0, 0, 0, 0, - 0, 0, 506, 0, 0, 65735, 2055, 43255, 121407, 0, 0, 0, 0, 0, 0, 194666, - 2063, 0, 0, 0, 0, 72136, 0, 74333, 194912, 11827, 74308, 194913, 194916, + 41858, 0, 0, 120655, 0, 41862, 0, 0, 0, 436, 4771, 118635, 42501, 0, + 10573, 0, 0, 118560, 917986, 9644, 0, 0, 0, 0, 69837, 0, 0, 0, 0, 67409, + 0, 0, 0, 125204, 11939, 0, 0, 0, 0, 0, 0, 0, 3504, 0, 0, 92854, 126209, + 0, 10226, 65558, 0, 3594, 0, 0, 40, 0, 0, 0, 0, 0, 74312, 72138, 74337, + 0, 69577, 0, 0, 0, 70476, 0, 121143, 72317, 0, 0, 4304, 0, 0, 78707, 0, + 0, 0, 78597, 1348, 78596, 0, 0, 0, 70406, 92392, 0, 7599, 0, 0, 13269, 0, + 129729, 0, 100804, 0, 74494, 6097, 7568, 43980, 4982, 78592, 0, 0, 0, 0, + 13270, 0, 128090, 13138, 0, 9484, 0, 0, 71364, 0, 0, 0, 9487, 0, 92913, + 0, 71911, 78668, 73963, 6193, 0, 0, 0, 194848, 7228, 10011, 194849, + 194852, 194851, 11654, 194853, 126218, 194855, 0, 194857, 3604, 0, 0, 0, + 0, 0, 94110, 43740, 94109, 194860, 194863, 66750, 121021, 0, 94111, 6995, + 74173, 5437, 74174, 0, 8702, 7339, 129981, 0, 199, 194843, 194846, + 194845, 0, 126069, 0, 67818, 0, 7560, 0, 0, 0, 0, 6472, 65814, 0, 128983, + 70845, 0, 0, 9191, 0, 0, 0, 0, 124904, 10196, 0, 0, 6585, 0, 120750, 0, + 0, 71872, 129129, 0, 0, 78590, 72308, 11382, 129499, 0, 983670, 0, + 194833, 194832, 2165, 129540, 94020, 194836, 42727, 194838, 128252, + 78585, 43874, 119610, 0, 0, 43248, 0, 194816, 0, 194818, 128845, 194820, + 127879, 5297, 194821, 13284, 6112, 93964, 93010, 73927, 42947, 0, 65746, + 0, 0, 194827, 194826, 4342, 42839, 194831, 1677, 0, 72135, 0, 0, 0, + 11011, 66399, 0, 0, 0, 10160, 0, 0, 0, 0, 2052, 4308, 92174, 43000, + 118659, 543, 64916, 0, 0, 0, 119170, 0, 118922, 2064, 0, 43158, 0, 0, + 69984, 0, 0, 129187, 0, 0, 0, 0, 41631, 92728, 0, 0, 6228, 0, 0, 0, 0, 0, + 0, 506, 0, 0, 65735, 2055, 43255, 121407, 0, 0, 0, 0, 0, 0, 194666, 2063, + 0, 0, 0, 0, 72136, 0, 74333, 194912, 11827, 74308, 194913, 194916, 194915, 64564, 194917, 67986, 194919, 0, 11037, 0, 121102, 0, 0, 10560, 0, 120756, 194922, 113737, 194924, 194927, 120495, 1931, 0, 0, 0, 128228, 0, 12643, 8751, 123629, 0, 12294, 0, 78834, 9138, 78831, 78833, 12631, @@ -27700,7 +27511,7 @@ static const unsigned int code_hash[] = { 94042, 0, 8373, 41989, 69507, 73460, 3418, 3263, 0, 0, 0, 3270, 64539, 11489, 0, 118945, 126220, 0, 127795, 0, 94031, 0, 0, 0, 0, 0, 70512, 983983, 186, 0, 119156, 5770, 13179, 0, 12612, 12949, 64856, 12800, 0, 0, - 983152, 11507, 0, 0, 118929, 0, 0, 72141, 0, 73459, 0, 0, 0, 73461, 9254, + 983151, 11507, 0, 0, 118929, 0, 0, 72141, 0, 73459, 0, 0, 0, 73461, 9254, 66877, 194907, 0, 92338, 5624, 126253, 0, 0, 0, 120472, 120464, 0, 0, 122915, 120462, 0, 1872, 66508, 120467, 41079, 0, 5502, 119330, 41078, 194906, 0, 0, 4511, 68449, 0, 0, 0, 0, 43245, 41083, 68861, 0, 0, 9003, @@ -27727,7 +27538,7 @@ static const unsigned int code_hash[] = { 120188, 0, 9137, 0, 0, 0, 0, 3466, 0, 0, 1996, 0, 3453, 3412, 0, 2002, 2000, 120176, 0, 0, 0, 0, 1998, 0, 1842, 7037, 0, 9628, 68446, 0, 9826, 64502, 1767, 3413, 0, 0, 0, 0, 0, 0, 13108, 44024, 120204, 0, 92693, 0, - 0, 0, 70291, 12650, 983210, 0, 68061, 0, 3592, 0, 0, 0, 0, 983975, 0, + 0, 0, 70291, 12650, 983208, 0, 68061, 0, 3592, 0, 0, 0, 0, 983975, 0, 66417, 128792, 10742, 0, 0, 1994, 9281, 3296, 64475, 1997, 1895, 128936, 43024, 0, 0, 123184, 72391, 0, 8999, 0, 983633, 0, 66480, 0, 0, 0, 983083, 0, 596, 0, 0, 120216, 8651, 120217, 0, 0, 12995, 0, 0, 70740, 0, @@ -27760,9 +27571,9 @@ static const unsigned int code_hash[] = { 69816, 0, 118796, 0, 8708, 0, 64077, 64076, 8996, 4992, 4471, 83343, 64079, 64078, 92179, 0, 0, 123540, 64615, 0, 0, 12075, 42041, 0, 0, 0, 0, 127557, 3123, 0, 983754, 0, 0, 0, 83328, 0, 9223, 0, 83321, 83322, 73797, - 83327, 1116, 0, 83319, 7136, 73550, 0, 0, 0, 75031, 0, 0, 0, 64092, - 43675, 10104, 83338, 83331, 64095, 64094, 8111, 66247, 0, 64089, 64088, - 0, 70106, 42236, 11434, 64083, 64082, 43216, 7737, 64087, 64086, 64085, + 83327, 1116, 0, 83319, 7136, 0, 0, 0, 0, 75031, 0, 0, 0, 64092, 43675, + 10104, 83338, 83331, 64095, 64094, 8111, 66247, 0, 64089, 64088, 0, + 70106, 42236, 11434, 64083, 64082, 43216, 7737, 64087, 64086, 64085, 64084, 0, 0, 0, 4118, 1797, 83312, 0, 0, 46, 83308, 83309, 298, 83303, 72402, 83305, 83306, 0, 0, 0, 128905, 11495, 0, 67490, 0, 127377, 194828, 127370, 0, 0, 0, 66239, 74945, 64403, 0, 0, 83314, 0, 0, 65758, 43536, 0, @@ -27775,7 +27586,7 @@ static const unsigned int code_hash[] = { 0, 0, 0, 66802, 5058, 0, 0, 0, 5057, 125256, 0, 74538, 5054, 0, 0, 0, 0, 0, 0, 658, 3497, 128509, 0, 5061, 5060, 4235, 0, 0, 0, 127757, 4236, 4727, 0, 0, 0, 128791, 0, 7488, 128693, 7476, 0, 125259, 120646, 0, 0, 0, - 66209, 0, 0, 0, 78931, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128903, 0, 9341, + 66209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128903, 0, 9341, 119596, 0, 0, 0, 64668, 0, 8125, 0, 6743, 119175, 0, 129441, 83406, 0, 127966, 119235, 74092, 0, 0, 43660, 71125, 0, 127901, 0, 0, 0, 264, 0, 74954, 0, 0, 0, 0, 0, 6019, 0, 0, 129121, 0, 0, 0, 8800, 0, 66376, 0, @@ -27784,7 +27595,7 @@ static const unsigned int code_hash[] = { 70723, 5072, 128576, 13098, 72403, 0, 11040, 0, 0, 0, 4929, 0, 0, 0, 0, 0, 0, 0, 0, 67754, 4934, 0, 0, 9758, 0, 0, 70181, 42584, 0, 4329, 0, 4979, 8663, 74521, 0, 983042, 74418, 983653, 0, 5071, 0, 3642, 0, 5070, - 10042, 0, 3987, 5068, 120209, 8909, 0, 0, 69917, 0, 73981, 983142, 70749, + 10042, 0, 3987, 5068, 120209, 8909, 0, 0, 69917, 0, 73981, 983141, 70749, 4531, 120212, 9105, 0, 4921, 121059, 4926, 65544, 113786, 69621, 0, 0, 0, 83269, 0, 120790, 4922, 0, 992, 119568, 4925, 0, 0, 9526, 4920, 128617, 948, 0, 0, 4930, 0, 0, 0, 4933, 0, 0, 0, 4928, 0, 0, 0, 0, 128379, 722, @@ -27803,12 +27614,12 @@ static const unsigned int code_hash[] = { 0, 0, 0, 129172, 118715, 67703, 0, 0, 0, 0, 0, 72290, 0, 0, 0, 0, 7018, 66241, 0, 0, 0, 0, 0, 74056, 0, 11833, 0, 67975, 65232, 40964, 251, 12686, 7895, 4395, 43538, 0, 0, 0, 78042, 0, 0, 40967, 5879, 0, 0, 0, 0, - 0, 65540, 128590, 625, 0, 120194, 1113, 120195, 13103, 3630, 67224, 8179, + 0, 65540, 128590, 625, 0, 120194, 1113, 0, 13103, 3630, 67224, 8179, 74264, 67886, 9316, 10980, 2489, 120958, 8150, 1359, 121353, 70464, 127330, 127327, 5042, 5041, 42769, 12084, 11196, 42961, 92279, 72398, - 120535, 127317, 127318, 127315, 12283, 127313, 11453, 70207, 8795, 66245, - 0, 5919, 0, 5037, 118864, 0, 0, 67724, 0, 66893, 74006, 129535, 8431, 0, - 0, 0, 0, 12620, 6826, 73773, 70169, 5040, 0, 0, 0, 0, 0, 5039, 0, 0, 0, + 120535, 127317, 127318, 127315, 12283, 127313, 11453, 0, 8795, 66245, 0, + 5919, 0, 5037, 118864, 0, 0, 67724, 0, 66893, 74006, 129535, 8431, 0, 0, + 0, 0, 12620, 6826, 73773, 70169, 5040, 0, 0, 0, 0, 0, 5039, 0, 0, 0, 5038, 0, 0, 0, 0, 0, 65908, 0, 0, 0, 0, 0, 65157, 0, 0, 70182, 0, 73909, 4835, 0, 0, 0, 4309, 7127, 0, 0, 0, 1301, 0, 0, 12222, 0, 73813, 711, 92439, 7133, 0, 0, 0, 0, 0, 0, 0, 7661, 72263, 129541, 0, 0, 70453, 7627, @@ -27821,12 +27632,12 @@ static const unsigned int code_hash[] = { 0, 120854, 0, 0, 0, 2470, 0, 0, 1925, 71251, 0, 10971, 113770, 5048, 5047, 0, 0, 194946, 92313, 129972, 0, 0, 8089, 128468, 639, 0, 68179, 0, 70180, 0, 4599, 0, 0, 0, 0, 983817, 648, 194948, 65819, 0, 0, 0, 129968, - 94017, 0, 11777, 9750, 983123, 0, 0, 92367, 70175, 5046, 66255, 0, 0, + 94017, 0, 11777, 9750, 983122, 0, 0, 92367, 70175, 5046, 66255, 0, 0, 65253, 0, 5045, 0, 1916, 74069, 5044, 92348, 0, 0, 5043, 0, 0, 0, 74004, 9669, 12341, 0, 8402, 0, 0, 70174, 0, 3586, 64508, 92456, 0, 0, 119606, 0, 42628, 10069, 0, 0, 0, 0, 123, 120703, 0, 121326, 0, 10719, 129409, 120444, 10829, 120593, 0, 12130, 0, 0, 0, 0, 3925, 0, 0, 75065, 71112, - 92372, 71110, 71111, 0, 120441, 120452, 983179, 0, 0, 0, 0, 0, 0, 0, 0, + 92372, 71110, 71111, 0, 120441, 120452, 983178, 0, 0, 0, 0, 0, 0, 0, 0, 69879, 8509, 120449, 0, 0, 0, 120448, 0, 118889, 194858, 0, 0, 0, 66445, 0, 71109, 0, 0, 72425, 0, 12136, 0, 983629, 0, 0, 0, 0, 19922, 41768, 74002, 0, 0, 0, 0, 2458, 0, 0, 0, 41074, 4266, 64834, 0, 41077, 0, 9050, @@ -27841,7 +27652,7 @@ static const unsigned int code_hash[] = { 65925, 194997, 195000, 194999, 0, 66996, 0, 64397, 0, 0, 0, 71310, 194977, 194976, 2448, 194978, 194981, 194980, 2452, 194982, 194985, 194984, 78694, 72292, 7845, 0, 78692, 4408, 4122, 6772, 194988, 8723, - 72147, 194989, 73472, 11857, 119304, 119303, 2438, 119297, 119300, + 72147, 194989, 119302, 11857, 119304, 119303, 2438, 119297, 119300, 119299, 41953, 0, 42135, 373, 119172, 2119, 11457, 129618, 41955, 0, 0, 0, 41952, 0, 0, 2127, 0, 128496, 5202, 0, 78765, 42823, 11291, 0, 0, 12963, 0, 0, 4125, 41958, 12133, 0, 125099, 1271, 129427, 0, 66024, 0, @@ -27854,7 +27665,7 @@ static const unsigned int code_hash[] = { 983669, 0, 950, 0, 983673, 983683, 983668, 0, 983675, 0, 119121, 0, 5098, 0, 0, 119099, 5097, 0, 9848, 0, 10293, 983664, 72798, 0, 0, 70303, 983684, 5102, 5101, 128370, 0, 8138, 4517, 1932, 5100, 195060, 65022, - 1247, 10034, 195064, 5099, 0, 1441, 0, 4724, 650, 0, 73954, 983271, + 1247, 10034, 195064, 5099, 0, 1441, 0, 4724, 650, 0, 73954, 983268, 129348, 195040, 195043, 9031, 195045, 195044, 195047, 8545, 66356, 195048, 0, 9154, 127243, 0, 0, 2676, 2277, 0, 73812, 195051, 8599, 195053, 917918, 195055, 65462, 0, 92524, 195033, 71903, 0, 0, 41199, 0, @@ -27866,186 +27677,185 @@ static const unsigned int code_hash[] = { 127342, 70149, 932, 0, 6567, 195009, 195008, 195011, 195010, 70145, 43850, 195015, 195014, 195017, 195016, 0, 0, 0, 69511, 10670, 0, 13273, 0, 195020, 121370, 8803, 195021, 72431, 8151, 67145, 72436, 0, 12553, 0, - 0, 0, 0, 13065, 12570, 0, 0, 0, 983199, 124985, 0, 0, 66466, 0, 0, + 0, 0, 0, 13065, 12570, 0, 0, 0, 983198, 124985, 0, 0, 66466, 0, 0, 194595, 0, 194596, 11351, 43256, 0, 0, 0, 0, 41754, 0, 0, 2720, 194975, - 68462, 8232, 120758, 0, 0, 0, 0, 122959, 0, 0, 93067, 10834, 0, 0, - 119266, 0, 0, 125025, 67679, 0, 75064, 7781, 0, 0, 126076, 0, 12077, 0, - 64586, 127164, 42396, 0, 3475, 0, 2479, 0, 0, 0, 120728, 0, 42434, - 129709, 194963, 194962, 110611, 67894, 42473, 194966, 110609, 1843, - 42283, 0, 0, 0, 0, 0, 194970, 0, 42321, 7284, 194974, 194973, 194950, - 194949, 194952, 194951, 0, 194953, 123614, 128645, 0, 0, 0, 0, 74952, - 194954, 194957, 194956, 66367, 194958, 41069, 67689, 9988, 0, 41068, 0, - 4295, 0, 0, 41951, 67835, 0, 785, 8236, 128647, 9027, 0, 194943, 0, - 122986, 0, 0, 0, 0, 41071, 41059, 0, 92458, 129442, 0, 0, 0, 123612, - 2067, 4310, 0, 123611, 5180, 123605, 0, 73872, 0, 69880, 5184, 42385, - 194947, 983774, 128531, 0, 0, 119149, 73503, 121334, 0, 983781, 0, 0, - 5178, 194929, 120548, 194931, 5188, 194933, 194932, 72245, 194934, 1166, - 64429, 42639, 0, 0, 0, 0, 128071, 2442, 10703, 194940, 194939, 194635, - 42439, 0, 0, 0, 73933, 983242, 42401, 0, 0, 0, 42288, 0, 0, 0, 13145, 0, - 2468, 0, 42327, 0, 0, 0, 42479, 128698, 0, 0, 92580, 0, 74939, 120678, 0, - 73733, 0, 0, 2715, 0, 71257, 0, 74114, 0, 0, 0, 0, 0, 66325, 69603, 0, - 9240, 0, 0, 129142, 0, 0, 0, 9815, 0, 11246, 0, 73912, 42733, 0, 0, 2480, - 0, 0, 0, 6494, 5537, 0, 0, 0, 0, 1211, 0, 121379, 0, 0, 12318, 0, 113796, - 0, 0, 0, 0, 0, 64642, 0, 0, 0, 0, 64864, 0, 0, 0, 121212, 0, 0, 3589, - 92719, 4035, 6492, 92236, 4265, 6843, 0, 74186, 41778, 113764, 119216, - 2488, 0, 4582, 0, 71426, 41777, 12926, 72708, 7528, 10550, 113761, 0, 0, - 11439, 0, 0, 64878, 0, 0, 0, 0, 2286, 0, 0, 126646, 127909, 5909, 400, - 126500, 0, 0, 0, 0, 0, 64827, 0, 74948, 390, 0, 71301, 0, 3473, 0, 0, - 66742, 0, 55285, 0, 0, 0, 92206, 194964, 0, 8004, 0, 6763, 0, 0, 7006, 0, - 0, 6757, 73707, 126648, 0, 6766, 0, 0, 0, 6146, 0, 771, 0, 0, 41318, 0, - 42272, 0, 120211, 69559, 0, 953, 12917, 72287, 12300, 64837, 11491, - 68612, 0, 0, 71321, 7490, 11389, 7489, 3379, 0, 7487, 42996, 7486, 7484, - 7482, 6753, 7480, 7479, 7478, 7477, 6501, 7475, 42995, 7473, 7472, 2474, - 7470, 7468, 124977, 0, 0, 0, 0, 71871, 11834, 128376, 0, 6017, 0, 128763, - 0, 0, 0, 119365, 73949, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2472, 69945, - 120699, 121133, 2139, 4256, 120776, 74380, 0, 73847, 73844, 0, 0, 101375, - 0, 101374, 0, 0, 101347, 7083, 0, 8066, 7678, 0, 121124, 101341, 101373, - 101336, 0, 101331, 0, 101304, 0, 101301, 0, 0, 0, 8330, 0, 101298, - 101322, 101297, 0, 0, 19934, 0, 1770, 67091, 0, 128671, 129617, 110605, - 101355, 73843, 110604, 0, 101362, 67092, 0, 71334, 0, 0, 0, 0, 0, 8162, - 0, 5996, 129644, 4903, 0, 0, 43063, 0, 5172, 0, 7139, 0, 127385, 0, - 118667, 0, 0, 4334, 6324, 41975, 12186, 10674, 12308, 0, 0, 0, 72807, - 41977, 68002, 0, 126630, 2018, 121388, 41979, 68003, 0, 68000, 0, 0, - 126984, 68001, 9334, 118609, 71440, 0, 7975, 0, 0, 0, 66621, 4884, 70367, - 983759, 0, 121010, 0, 0, 0, 0, 127799, 0, 0, 0, 463, 0, 194584, 69617, - 6509, 5460, 0, 0, 0, 0, 42279, 0, 0, 0, 0, 0, 0, 0, 125027, 0, 121119, 0, - 0, 0, 5663, 0, 0, 0, 0, 2482, 66202, 0, 0, 42247, 65174, 73925, 0, - 100940, 0, 0, 126573, 0, 0, 2460, 0, 11944, 0, 0, 64679, 120835, 127310, - 0, 0, 0, 5870, 0, 0, 0, 100931, 539, 100933, 100932, 100935, 9064, - 100937, 100936, 100939, 100938, 0, 0, 0, 0, 0, 0, 41295, 100941, 2478, - 100943, 4162, 100945, 4260, 12953, 100950, 100949, 129800, 0, 0, 0, 0, 0, - 0, 0, 5000, 0, 0, 0, 69672, 71439, 0, 74017, 0, 0, 6709, 0, 0, 983739, 0, - 0, 100922, 100921, 10301, 10333, 10397, 100925, 100928, 100927, 0, 0, 0, - 127830, 0, 4014, 12842, 0, 67413, 0, 0, 3893, 0, 0, 12210, 0, 42147, 0, - 983622, 74465, 0, 0, 0, 0, 0, 0, 0, 0, 110805, 8231, 0, 69946, 41968, - 100929, 41973, 12935, 41969, 0, 2453, 0, 0, 78807, 122893, 0, 10349, - 10413, 122956, 41962, 3202, 119097, 0, 8316, 129174, 0, 7314, 0, 0, 0, 0, - 1840, 0, 0, 0, 4883, 100908, 4723, 70099, 100909, 0, 0, 0, 0, 11089, 240, - 19906, 0, 0, 0, 43600, 121004, 13134, 93065, 0, 65931, 110649, 110650, - 42634, 110648, 0, 121005, 11463, 0, 0, 129861, 10445, 0, 92969, 0, 2614, - 0, 129954, 1729, 0, 0, 100911, 0, 43334, 100912, 100915, 100914, 66201, - 100916, 69662, 100896, 100899, 100898, 4121, 100900, 70272, 82954, 63879, - 0, 70872, 0, 0, 4039, 643, 7726, 120082, 0, 120068, 58, 0, 0, 0, 63872, - 0, 0, 100891, 0, 10625, 100892, 100895, 100894, 1416, 120073, 917761, - 67393, 0, 0, 0, 6996, 4264, 0, 100902, 66179, 66768, 100903, 13114, - 72311, 67510, 3094, 0, 0, 127074, 4437, 0, 0, 0, 55280, 42174, 0, 42430, - 129796, 72246, 42355, 0, 0, 0, 0, 121251, 127401, 0, 0, 0, 0, 0, 0, - 100882, 100881, 74037, 100883, 0, 127099, 0, 0, 0, 0, 0, 69646, 65035, - 65034, 11480, 6116, 65039, 65038, 41180, 65036, 194565, 0, 12101, 5822, - 0, 0, 0, 0, 11663, 127873, 63854, 119657, 63853, 0, 63852, 65810, 4289, - 100885, 63896, 100887, 100890, 43621, 0, 0, 0, 129613, 194560, 7461, - 73901, 0, 331, 0, 0, 0, 128029, 0, 0, 0, 74629, 0, 0, 0, 41964, 0, 63843, - 2084, 41965, 0, 100864, 100863, 100866, 63841, 78549, 41220, 13032, - 100869, 8383, 0, 78548, 126102, 0, 0, 1351, 983865, 8698, 100874, 100877, - 1930, 100879, 78554, 74360, 100880, 69859, 78551, 0, 0, 129433, 3657, 0, - 65202, 6000, 119206, 41901, 0, 0, 41740, 0, 41283, 73543, 119267, 0, 0, - 100871, 9695, 100873, 7562, 100853, 5170, 100855, 100854, 676, 100856, - 100859, 100858, 9978, 100860, 0, 0, 64934, 0, 0, 0, 113714, 113706, - 41829, 65886, 5159, 0, 41832, 704, 43077, 0, 120532, 0, 68496, 65065, - 41830, 0, 917799, 917798, 917797, 917796, 0, 67864, 113696, 917800, - 12336, 4135, 69805, 341, 2727, 4129, 100862, 100861, 0, 64503, 7913, 0, - 0, 4131, 63868, 0, 63871, 4133, 63864, 210, 0, 0, 0, 4137, 78505, 78506, - 0, 78504, 78830, 0, 0, 43873, 0, 0, 0, 0, 11988, 78510, 195, 68321, - 41501, 0, 42031, 0, 13135, 0, 0, 0, 41499, 0, 0, 9680, 41498, 917794, - 42025, 78567, 78556, 0, 0, 0, 0, 0, 0, 101074, 120502, 92597, 0, 0, - 917784, 7864, 129001, 129704, 917788, 121106, 917786, 917785, 5753, - 67816, 72371, 2219, 0, 0, 0, 0, 0, 0, 121277, 0, 917777, 917776, 917775, - 69644, 917781, 917780, 917779, 917778, 8668, 0, 121383, 917782, 5999, 0, - 0, 129195, 128243, 43653, 1726, 1015, 0, 127247, 0, 0, 64919, 0, 0, 0, - 128478, 0, 69791, 927, 0, 0, 42010, 0, 42021, 0, 0, 1299, 12240, 64537, - 0, 0, 0, 0, 0, 0, 69454, 0, 0, 0, 122903, 19914, 12179, 0, 2296, 0, 0, - 63832, 917773, 0, 63816, 2594, 63823, 63817, 11178, 0, 0, 0, 11265, - 68295, 0, 0, 0, 10554, 3972, 0, 121198, 0, 917766, 10816, 917764, 119608, - 74374, 917769, 11210, 93069, 8586, 3882, 8532, 120183, 1573, 128648, 0, - 69916, 0, 101051, 67719, 0, 0, 0, 0, 0, 0, 0, 128821, 119169, 0, 0, 6626, - 42763, 130034, 118884, 128613, 0, 83128, 0, 0, 0, 0, 0, 983561, 0, 0, 0, - 9171, 0, 0, 71305, 983919, 121146, 0, 101095, 128881, 119604, 126596, 0, - 0, 0, 128214, 42368, 0, 983106, 2271, 41487, 12118, 74124, 68651, 110836, - 110833, 3009, 41476, 41489, 69825, 3007, 1448, 3018, 0, 41491, 8521, - 5083, 5082, 0, 0, 8519, 0, 3014, 5081, 73926, 0, 128549, 0, 69951, 5079, - 129963, 2557, 128086, 65532, 11828, 0, 71297, 11105, 0, 0, 0, 8518, - 10779, 0, 71303, 0, 0, 42170, 110769, 0, 629, 1924, 0, 12037, 0, 5987, - 8462, 127744, 0, 63933, 69735, 110770, 128295, 63941, 67981, 5077, 0, - 10880, 64849, 5075, 0, 128152, 65075, 0, 11007, 983736, 0, 0, 0, 66684, - 72331, 3434, 72338, 1904, 0, 0, 72730, 0, 10499, 4507, 9578, 63925, 0, - 7979, 0, 9831, 66689, 0, 461, 194834, 0, 4504, 0, 0, 6325, 0, 43021, 0, - 0, 55236, 0, 0, 5177, 41324, 12055, 63831, 0, 41327, 12591, 0, 4114, 409, - 0, 0, 8948, 41325, 0, 721, 10182, 0, 71311, 0, 0, 94052, 74963, 83503, - 5998, 0, 0, 74825, 0, 12587, 0, 78571, 74889, 71328, 128955, 0, 74121, - 78570, 73499, 0, 0, 5995, 0, 42568, 0, 0, 63944, 73860, 126586, 0, 4167, - 0, 43175, 0, 74120, 0, 65076, 938, 73857, 73854, 11737, 9721, 0, 0, 0, - 11742, 0, 0, 11493, 12334, 128762, 0, 66623, 0, 9173, 0, 11978, 0, 12734, - 113750, 113741, 0, 6759, 0, 0, 0, 126222, 0, 70388, 129093, 13027, 42777, - 7683, 1167, 0, 4983, 0, 861, 0, 0, 68297, 0, 43757, 92978, 129298, - 122630, 127804, 0, 73546, 70815, 9616, 0, 0, 12816, 43759, 0, 12710, - 68674, 12721, 4101, 66185, 0, 5992, 7616, 0, 0, 12577, 0, 0, 853, 42693, - 0, 121088, 0, 0, 917915, 0, 42835, 0, 0, 0, 0, 0, 12712, 7105, 127807, - 65060, 66875, 9900, 0, 0, 0, 121482, 119265, 0, 64778, 12585, 0, 0, 0, 0, - 0, 0, 77826, 0, 4900, 125245, 0, 0, 0, 4119, 74768, 8971, 0, 0, 0, 78594, - 41132, 9245, 73060, 0, 4138, 194841, 0, 0, 0, 77827, 0, 13054, 0, 0, - 128416, 110760, 0, 0, 3948, 128878, 0, 0, 0, 1680, 0, 11861, 0, 0, - 120032, 0, 0, 0, 0, 74833, 74190, 5993, 42709, 0, 12706, 77846, 1893, 0, - 63915, 0, 0, 110744, 129826, 0, 63997, 120018, 63996, 3077, 0, 0, 1512, - 0, 12589, 41479, 0, 0, 0, 0, 11831, 120727, 122949, 41481, 0, 118912, 0, - 3090, 0, 3086, 1664, 1850, 0, 3079, 0, 0, 94080, 127140, 0, 0, 74401, 0, - 917555, 0, 0, 0, 0, 0, 11526, 63985, 5864, 0, 63992, 0, 63991, 0, 5480, - 7858, 0, 4116, 78149, 0, 0, 0, 63907, 0, 0, 126131, 63905, 119601, 0, - 983191, 0, 119666, 0, 0, 7534, 507, 91, 2042, 120775, 118596, 0, 66028, - 118811, 41844, 70680, 774, 0, 0, 0, 5994, 0, 12733, 0, 0, 0, 72297, 0, 0, - 0, 0, 6026, 0, 0, 0, 162, 0, 125247, 78151, 78152, 983590, 92709, 0, - 68304, 0, 0, 0, 66658, 0, 0, 0, 0, 121511, 2226, 121512, 129349, 10492, - 0, 121510, 0, 43119, 0, 0, 0, 66192, 0, 0, 4899, 12729, 0, 0, 0, 0, 4103, - 0, 129842, 77851, 69429, 129046, 0, 12859, 70087, 0, 101580, 0, 0, 0, 0, - 0, 0, 65264, 5146, 0, 194694, 71684, 0, 0, 983652, 983863, 78924, 71688, - 78463, 5147, 125019, 0, 74524, 71682, 128435, 0, 194692, 5991, 3445, 0, - 4976, 66193, 0, 0, 0, 0, 128309, 128594, 129819, 69579, 0, 63855, 0, - 10138, 0, 0, 8897, 0, 75027, 0, 120931, 77862, 65836, 0, 0, 77860, 0, 0, - 1123, 4124, 41553, 77903, 0, 71680, 121386, 398, 0, 129035, 41551, 0, 0, - 0, 41550, 9970, 0, 93062, 42392, 1305, 78901, 0, 129292, 0, 7346, 41464, - 0, 0, 0, 41465, 983567, 8528, 9149, 0, 63955, 165, 3024, 11852, 119163, - 0, 9093, 0, 9147, 0, 0, 110989, 9148, 0, 4096, 53, 8296, 0, 71352, 0, - 9594, 0, 0, 63952, 0, 10997, 0, 0, 5805, 0, 0, 129777, 42176, 71455, - 74601, 129604, 10591, 0, 92852, 0, 0, 0, 0, 0, 0, 92475, 0, 0, 42379, 0, - 0, 9220, 0, 121425, 0, 0, 4132, 0, 0, 11239, 0, 0, 74837, 0, 66408, 0, - 8055, 0, 0, 0, 63962, 74042, 8924, 43123, 5988, 0, 63969, 0, 42718, 8788, - 1357, 77872, 65743, 0, 8774, 0, 0, 0, 0, 92748, 120598, 128234, 9564, 0, - 0, 119124, 0, 121241, 110983, 92975, 3121, 0, 0, 0, 70081, 0, 0, 0, 0, 0, - 64851, 0, 0, 73085, 119532, 0, 0, 0, 0, 1198, 69293, 66708, 64619, 0, - 64663, 93991, 0, 0, 2101, 1398, 0, 92554, 0, 0, 92684, 11406, 101588, - 12127, 66998, 840, 0, 0, 7101, 120938, 0, 0, 12880, 0, 43104, 0, 0, 0, - 2117, 0, 0, 0, 0, 123023, 0, 0, 7769, 129867, 92413, 0, 0, 100695, 0, - 40986, 83117, 0, 0, 4127, 0, 0, 129034, 0, 0, 0, 70738, 0, 129466, 0, 0, - 0, 0, 119081, 0, 10581, 0, 4533, 0, 128941, 6490, 0, 12038, 0, 0, 68225, - 0, 0, 69704, 0, 1948, 119007, 129607, 101586, 0, 0, 0, 120802, 0, 9494, - 0, 0, 0, 4843, 0, 74772, 4098, 0, 0, 0, 3436, 0, 127279, 12817, 0, - 126607, 118678, 0, 0, 0, 74433, 0, 0, 71962, 0, 121296, 65916, 0, 0, - 121458, 0, 129107, 93815, 0, 73743, 0, 0, 983133, 67676, 0, 0, 74627, - 128928, 0, 127892, 0, 71326, 67222, 0, 75013, 92435, 0, 128500, 0, 0, - 9613, 43425, 4526, 121415, 0, 64520, 71336, 0, 0, 55278, 10228, 64957, 0, - 0, 3807, 2081, 66640, 0, 0, 0, 0, 119269, 0, 128688, 0, 128142, 1451, 0, - 0, 4134, 0, 74847, 0, 74793, 0, 78913, 74295, 9960, 1201, 0, 12846, - 121271, 0, 11919, 64962, 0, 43739, 0, 66358, 0, 0, 0, 43679, 72284, - 72289, 0, 129523, 1253, 983870, 65766, 500, 65764, 65765, 65762, 65763, - 65760, 65761, 70334, 983867, 9821, 11702, 110630, 110631, 110628, 110629, - 128481, 0, 7533, 66717, 92500, 92305, 0, 0, 69277, 127758, 71332, 0, 0, - 0, 0, 11188, 0, 4112, 0, 0, 12890, 0, 0, 9915, 0, 68423, 0, 0, 2876, 0, - 0, 0, 0, 7382, 92415, 0, 128132, 0, 0, 0, 0, 69561, 127915, 0, 7003, 0, - 0, 7704, 0, 0, 0, 4123, 0, 0, 9977, 0, 0, 65759, 0, 0, 128266, 9808, 0, - 92611, 4126, 0, 9521, 9589, 64755, 0, 0, 0, 69948, 0, 92368, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 93814, 0, 0, 92234, 0, 10693, 0, 0, 65897, 4058, 0, 0, - 64660, 0, 0, 0, 983730, 1139, 43298, 0, 65929, 8970, 0, 9934, 0, 11023, - 128020, 42522, 0, 0, 0, 78899, 3057, 128113, 7349, 69959, 128722, 68065, - 110813, 0, 92826, 67201, 0, 0, 0, 9528, 0, 0, 0, 9102, 627, 92827, 6273, - 129496, 0, 0, 983212, 92966, 43300, 0, 983740, 11696, 92825, 1018, 65554, - 0, 74338, 0, 7645, 0, 128321, 0, 0, 0, 0, 73814, 11544, 12563, 10728, 0, - 0, 127340, 43311, 64966, 92841, 0, 0, 118946, 0, 0, 74779, 0, 185, 65085, - 74533, 0, 0, 7535, 0, 42525, 0, 9749, 41701, 6131, 0, 4117, 129062, - 126988, 0, 92429, 65693, 0, 73445, 0, 69695, 0, 0, 0, 0, 0, 0, 0, 1184, - 0, 815, 0, 0, 0, 0, 0, 71325, 0, 0, 64683, 983816, 0, 127959, 0, 0, 0, 0, - 0, 0, 0, 68166, 0, 0, 0, 0, 66799, 0, 128912, 0, 5142, 0, 69643, 0, 0, - 68367, 93975, 0, 0, 0, 123209, 124133, 0, 0, 74855, 121330, 0, 0, 0, 0, - 10940, 66030, 0, 70385, 73494, 0, 2652, 120527, 0, 129946, 0, 126508, 0, - 0, 0, 0, 0, 0, 1828, 0, 128357, 0, 8531, 0, 74799, 12324, 72434, 65238, + 68462, 8232, 120758, 0, 0, 0, 0, 0, 0, 0, 93067, 10834, 0, 0, 119266, 0, + 0, 125025, 67679, 0, 75064, 7781, 0, 0, 126076, 0, 12077, 0, 64586, + 127164, 42396, 0, 3475, 0, 2479, 0, 0, 0, 120728, 0, 42434, 194960, + 194963, 194962, 110611, 67894, 42473, 194966, 110609, 1843, 42283, 0, 0, + 0, 0, 0, 194970, 0, 42321, 7284, 194974, 194973, 194950, 194949, 194952, + 194951, 0, 194953, 123614, 128645, 0, 0, 0, 0, 74952, 194954, 194957, + 194956, 66367, 194958, 41069, 67689, 9988, 0, 41068, 0, 4295, 0, 0, + 41951, 67835, 0, 785, 8236, 128647, 9027, 0, 194943, 0, 0, 0, 0, 0, 0, + 41071, 41059, 0, 92458, 129442, 0, 0, 0, 123612, 2067, 4310, 0, 123611, + 5180, 123605, 0, 73872, 0, 69880, 5184, 42385, 194947, 983774, 128531, 0, + 0, 119149, 0, 121334, 0, 983781, 0, 0, 5178, 194929, 120548, 194931, + 5188, 194933, 194932, 72245, 194934, 1166, 64429, 42639, 0, 0, 0, 0, + 128071, 2442, 10703, 194940, 194939, 194635, 42439, 0, 0, 0, 73933, + 983239, 42401, 0, 0, 0, 42288, 0, 0, 0, 13145, 0, 2468, 0, 42327, 0, 0, + 0, 42479, 128698, 0, 0, 92580, 0, 74939, 120678, 0, 73733, 0, 0, 2715, 0, + 71257, 0, 74114, 0, 0, 0, 0, 0, 66325, 69603, 0, 9240, 0, 0, 129142, 0, + 0, 0, 9815, 0, 11246, 0, 73912, 42733, 0, 0, 2480, 0, 0, 0, 6494, 5537, + 0, 0, 0, 0, 1211, 0, 121379, 0, 0, 12318, 0, 113796, 0, 0, 0, 0, 0, + 64642, 0, 0, 0, 0, 64864, 0, 0, 0, 121212, 0, 0, 3589, 92719, 4035, 6492, + 92236, 4265, 6843, 0, 74186, 41778, 113764, 119216, 2488, 0, 4582, 0, + 71426, 41777, 12926, 72708, 7528, 10550, 113761, 0, 0, 11439, 0, 0, + 64878, 0, 0, 0, 0, 2286, 0, 0, 126646, 127909, 5909, 400, 126500, 0, 0, + 0, 0, 0, 64827, 0, 74948, 390, 0, 71301, 0, 3473, 0, 0, 66742, 0, 55285, + 0, 0, 0, 92206, 194964, 0, 8004, 0, 6763, 0, 0, 7006, 0, 0, 6757, 73707, + 126648, 0, 6766, 0, 0, 0, 6146, 0, 771, 0, 0, 41318, 0, 42272, 0, 120211, + 69559, 0, 953, 12917, 72287, 12300, 64837, 11491, 68612, 0, 0, 71321, + 7490, 11389, 7489, 3379, 0, 7487, 42996, 7486, 7484, 7482, 6753, 7480, + 7479, 7478, 7477, 6501, 7475, 42995, 7473, 7472, 2474, 7470, 7468, + 124977, 0, 0, 0, 0, 71871, 11834, 128376, 0, 6017, 0, 128763, 0, 0, 0, + 119365, 73949, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2472, 69945, 120699, 121133, + 2139, 4256, 120776, 74380, 0, 73847, 73844, 0, 0, 101375, 0, 101374, 0, + 0, 101347, 7083, 0, 8066, 7678, 0, 121124, 101341, 101373, 101336, 0, + 101331, 0, 101304, 0, 101301, 0, 0, 0, 8330, 0, 101298, 101322, 101297, + 0, 0, 19934, 0, 1770, 67091, 0, 128671, 129617, 110605, 101355, 73843, + 110604, 0, 101362, 67092, 0, 71334, 0, 0, 0, 0, 0, 8162, 0, 5996, 129644, + 4903, 0, 0, 43063, 0, 5172, 0, 7139, 0, 127385, 0, 118667, 0, 0, 4334, + 6324, 41975, 12186, 10674, 12308, 0, 0, 0, 72807, 41977, 68002, 0, + 126630, 2018, 121388, 41979, 68003, 0, 68000, 0, 0, 126984, 68001, 9334, + 118609, 71440, 0, 7975, 0, 0, 0, 66621, 4884, 70367, 983759, 0, 121010, + 0, 0, 0, 0, 127799, 0, 0, 0, 463, 0, 194584, 69617, 6509, 5460, 0, 0, 0, + 0, 42279, 0, 0, 0, 0, 0, 0, 0, 125027, 0, 121119, 0, 0, 0, 5663, 0, 0, 0, + 0, 2482, 66202, 0, 0, 42247, 65174, 73925, 0, 100940, 0, 0, 126573, 0, 0, + 2460, 0, 11944, 0, 0, 64679, 120835, 127310, 0, 0, 0, 5870, 0, 0, 0, + 100931, 539, 100933, 100932, 100935, 9064, 100937, 100936, 100939, + 100938, 0, 0, 0, 0, 0, 0, 41295, 100941, 2478, 100943, 4162, 100945, + 4260, 12953, 100950, 100949, 129800, 0, 0, 0, 0, 0, 0, 0, 5000, 0, 0, 0, + 69672, 71439, 0, 74017, 0, 0, 6709, 0, 0, 983739, 0, 0, 100922, 100921, + 10301, 10333, 10397, 100925, 100928, 100927, 0, 0, 0, 127830, 0, 4014, + 12842, 0, 67413, 0, 0, 3893, 0, 0, 12210, 0, 42147, 0, 983622, 74465, 0, + 0, 0, 0, 0, 0, 0, 0, 110805, 8231, 0, 69946, 41968, 100929, 41973, 12935, + 41969, 0, 2453, 0, 0, 78807, 122893, 0, 10349, 10413, 0, 41962, 3202, + 119097, 0, 8316, 129174, 0, 7314, 0, 0, 0, 0, 1840, 0, 0, 0, 4883, + 100908, 4723, 70099, 100909, 0, 0, 0, 0, 11089, 240, 19906, 0, 0, 0, + 43600, 121004, 13134, 93065, 0, 65931, 110649, 110650, 42634, 110648, 0, + 121005, 11463, 0, 0, 129861, 10445, 0, 92969, 0, 2614, 0, 129954, 1729, + 0, 0, 100911, 0, 43334, 100912, 100915, 100914, 66201, 100916, 69662, + 100896, 100899, 100898, 4121, 100900, 70272, 82954, 63879, 0, 70872, 0, + 0, 4039, 643, 7726, 120082, 0, 120068, 58, 0, 0, 0, 63872, 0, 0, 100891, + 0, 10625, 100892, 100895, 100894, 1416, 120073, 917761, 67393, 0, 0, 0, + 6996, 4264, 0, 100902, 66179, 66768, 100903, 13114, 72311, 67510, 3094, + 0, 0, 127074, 4437, 0, 0, 0, 55280, 42174, 0, 42430, 129796, 72246, + 42355, 0, 0, 0, 0, 121251, 127401, 0, 0, 0, 0, 0, 0, 100882, 100881, + 74037, 100883, 0, 127099, 0, 0, 0, 0, 0, 69646, 65035, 65034, 11480, + 6116, 65039, 65038, 41180, 65036, 194565, 0, 12101, 5822, 0, 0, 0, 0, + 11663, 127873, 63854, 119657, 63853, 0, 63852, 65810, 4289, 100885, + 63896, 100887, 100890, 43621, 0, 0, 0, 129613, 194560, 7461, 73901, 0, + 331, 0, 0, 0, 128029, 0, 0, 0, 74629, 0, 0, 0, 41964, 0, 63843, 2084, + 41965, 0, 100864, 100863, 100866, 63841, 78549, 41220, 13032, 100869, + 8383, 0, 78548, 126102, 0, 0, 1351, 983865, 8698, 100874, 100877, 1930, + 100879, 78554, 74360, 100880, 69859, 78551, 0, 0, 129433, 3657, 0, 65202, + 6000, 119206, 41901, 0, 0, 41740, 0, 41283, 0, 119267, 0, 0, 100871, + 9695, 100873, 7562, 100853, 5170, 100855, 100854, 676, 100856, 100859, + 100858, 9978, 100860, 0, 0, 64934, 0, 0, 0, 113714, 113706, 41829, 65886, + 5159, 0, 41832, 704, 43077, 0, 120532, 0, 68496, 65065, 41830, 0, 917799, + 917798, 917797, 917796, 0, 67864, 113696, 917800, 12336, 4135, 69805, + 341, 2727, 4129, 100862, 100861, 0, 64503, 7913, 0, 0, 4131, 63868, 0, + 63871, 4133, 63864, 210, 0, 0, 0, 4137, 78505, 78506, 0, 78504, 78830, 0, + 0, 43873, 0, 0, 0, 0, 11988, 78510, 195, 68321, 41501, 0, 42031, 0, + 13135, 0, 0, 0, 41499, 0, 0, 9680, 41498, 917794, 42025, 78567, 78556, 0, + 0, 0, 0, 0, 0, 101074, 120502, 92597, 0, 0, 917784, 7864, 129001, 129704, + 917788, 121106, 917786, 917785, 5753, 67816, 72371, 2219, 0, 0, 0, 0, 0, + 0, 121277, 0, 917777, 917776, 917775, 69644, 917781, 917780, 917779, + 917778, 8668, 0, 121383, 917782, 5999, 0, 0, 129195, 128243, 43653, 1726, + 1015, 0, 127247, 0, 0, 64919, 0, 0, 0, 128478, 0, 69791, 927, 0, 0, + 42010, 0, 42021, 0, 0, 1299, 12240, 64537, 0, 0, 0, 0, 0, 0, 69454, 0, 0, + 0, 122903, 19914, 12179, 0, 2296, 0, 0, 63832, 917773, 0, 63816, 2594, + 63823, 63817, 11178, 0, 0, 0, 11265, 68295, 0, 0, 0, 10554, 3972, 0, + 121198, 0, 917766, 10816, 917764, 119608, 74374, 917769, 11210, 93069, + 8586, 3882, 8532, 120183, 1573, 128648, 0, 69916, 0, 101051, 67719, 0, 0, + 0, 0, 0, 0, 0, 128821, 119169, 0, 0, 6626, 42763, 130034, 118884, 128613, + 0, 83128, 0, 0, 0, 0, 0, 983561, 0, 0, 0, 9171, 0, 0, 71305, 983919, + 121146, 0, 101095, 128881, 119604, 126596, 0, 0, 0, 128214, 42368, 0, + 983105, 2271, 41487, 12118, 74124, 68651, 110836, 110833, 3009, 41476, + 41489, 69825, 3007, 1448, 3018, 0, 41491, 8521, 5083, 5082, 0, 0, 8519, + 0, 3014, 5081, 73926, 0, 128549, 0, 69951, 5079, 129963, 2557, 128086, + 65532, 11828, 0, 71297, 11105, 0, 0, 0, 8518, 10779, 0, 71303, 0, 0, + 42170, 110769, 0, 629, 1924, 0, 12037, 0, 5987, 8462, 127744, 0, 63933, + 69735, 110770, 128295, 63941, 67981, 5077, 0, 10880, 64849, 5075, 0, + 128152, 65075, 0, 11007, 983736, 0, 0, 0, 66684, 72331, 3434, 72338, + 1904, 0, 0, 72730, 0, 10499, 4507, 9578, 63925, 0, 7979, 0, 9831, 66689, + 0, 461, 194834, 0, 4504, 0, 0, 6325, 0, 43021, 0, 0, 55236, 0, 0, 5177, + 41324, 12055, 63831, 0, 41327, 12591, 0, 4114, 409, 0, 0, 8948, 41325, 0, + 721, 10182, 0, 71311, 0, 0, 94052, 74963, 83503, 5998, 0, 0, 74825, 0, + 12587, 0, 78571, 74889, 71328, 128955, 0, 74121, 78570, 78822, 0, 0, + 5995, 0, 42568, 0, 0, 63944, 73860, 126586, 0, 4167, 0, 43175, 0, 74120, + 0, 65076, 938, 73857, 73854, 11737, 9721, 0, 0, 0, 11742, 0, 0, 11493, + 12334, 128762, 0, 66623, 0, 9173, 0, 11978, 0, 12734, 113750, 113741, 0, + 6759, 0, 0, 0, 126222, 0, 70388, 129093, 13027, 42777, 7683, 1167, 0, + 4983, 0, 861, 0, 0, 68297, 0, 43757, 92978, 129298, 122630, 127804, 0, + 118654, 70815, 9616, 0, 0, 12816, 43759, 0, 12710, 68674, 12721, 4101, + 66185, 0, 5992, 7616, 0, 0, 12577, 0, 0, 853, 42693, 0, 121088, 0, 0, + 917915, 0, 42835, 0, 0, 0, 0, 0, 12712, 7105, 127807, 65060, 66875, 9900, + 0, 0, 0, 121482, 119265, 0, 64778, 12585, 0, 0, 0, 0, 0, 0, 77826, 0, + 4900, 125245, 0, 0, 0, 4119, 74768, 8971, 0, 0, 0, 78594, 41132, 9245, + 73060, 0, 4138, 194841, 0, 0, 0, 77827, 0, 13054, 0, 0, 128416, 110760, + 0, 0, 3948, 128878, 0, 0, 0, 1680, 0, 11861, 0, 0, 120032, 0, 0, 0, 0, + 74833, 74190, 5993, 42709, 0, 12706, 77846, 1893, 0, 63915, 0, 0, 110744, + 129826, 0, 63997, 120018, 63996, 3077, 0, 0, 1512, 0, 12589, 41479, 0, 0, + 0, 0, 11831, 120727, 0, 41481, 0, 118912, 0, 3090, 0, 3086, 1664, 1850, + 0, 3079, 0, 0, 94080, 127140, 0, 0, 74401, 0, 917555, 0, 0, 0, 0, 0, + 11526, 63985, 5864, 0, 63992, 0, 63991, 0, 5480, 7858, 0, 4116, 78149, 0, + 0, 0, 63907, 0, 0, 126131, 63905, 119601, 0, 983190, 0, 119666, 0, 0, + 7534, 507, 91, 2042, 120775, 118596, 0, 66028, 118811, 41844, 70680, 774, + 0, 0, 0, 5994, 0, 12733, 0, 0, 0, 72297, 0, 0, 0, 0, 6026, 0, 0, 0, 162, + 0, 125247, 78151, 78152, 983590, 92709, 0, 68304, 0, 0, 0, 66658, 0, 0, + 0, 0, 121511, 2226, 121512, 129349, 10492, 0, 121510, 0, 43119, 0, 0, 0, + 66192, 0, 0, 4899, 12729, 0, 0, 0, 0, 4103, 0, 129842, 77851, 69429, + 129046, 0, 12859, 70087, 0, 0, 0, 0, 0, 0, 0, 0, 65264, 5146, 0, 194694, + 71684, 0, 0, 983652, 983863, 0, 71688, 78463, 5147, 125019, 0, 74524, + 71682, 128435, 0, 194692, 5991, 3445, 0, 4976, 66193, 0, 0, 0, 0, 128309, + 128594, 129819, 69579, 0, 63855, 0, 10138, 0, 0, 8897, 0, 75027, 0, + 120931, 77862, 65836, 0, 0, 77860, 0, 0, 1123, 4124, 41553, 77903, 0, + 71680, 121386, 398, 0, 129035, 41551, 0, 0, 0, 41550, 9970, 0, 93062, + 42392, 1305, 78901, 0, 129292, 0, 7346, 41464, 0, 0, 0, 41465, 983567, + 8528, 9149, 0, 63955, 165, 3024, 11852, 119163, 0, 9093, 0, 9147, 0, 0, + 110989, 9148, 0, 4096, 53, 8296, 0, 71352, 0, 9594, 0, 0, 63952, 0, + 10997, 0, 0, 5805, 0, 0, 129777, 42176, 71455, 74601, 129604, 10591, 0, + 92852, 0, 0, 0, 0, 0, 0, 92475, 0, 0, 42379, 0, 0, 9220, 0, 121425, 0, 0, + 4132, 0, 0, 11239, 0, 0, 74837, 0, 66408, 0, 8055, 0, 0, 0, 63962, 74042, + 8924, 43123, 5988, 0, 63969, 0, 42718, 8788, 1357, 77872, 65743, 0, 8774, + 0, 0, 0, 0, 92748, 120598, 128234, 9564, 0, 0, 119124, 0, 121241, 110983, + 92975, 3121, 0, 0, 0, 70081, 0, 0, 0, 0, 0, 64851, 0, 0, 73085, 119532, + 0, 0, 0, 0, 1198, 69293, 66708, 64619, 0, 64663, 93991, 0, 0, 2101, 1398, + 0, 92554, 0, 0, 92684, 11406, 101588, 12127, 66998, 840, 0, 0, 7101, + 120938, 0, 0, 12880, 0, 43104, 0, 0, 0, 2117, 0, 0, 0, 0, 0, 0, 0, 7769, + 129867, 92413, 0, 0, 100695, 0, 40986, 83117, 0, 0, 4127, 0, 0, 0, 0, 0, + 0, 70738, 0, 129466, 0, 0, 0, 0, 119081, 0, 10581, 0, 4533, 0, 128941, + 6490, 0, 12038, 0, 0, 68225, 0, 0, 69704, 0, 1948, 119007, 129607, + 101586, 0, 0, 0, 120802, 0, 9494, 0, 0, 0, 4843, 0, 74772, 4098, 0, 0, 0, + 3436, 0, 127279, 12817, 0, 126607, 118678, 0, 0, 0, 74433, 0, 0, 71962, + 0, 121296, 65916, 0, 0, 121458, 0, 129107, 93815, 0, 73743, 0, 0, 983132, + 67676, 0, 0, 74627, 128928, 0, 127892, 0, 71326, 67222, 0, 75013, 92435, + 0, 128500, 0, 0, 9613, 43425, 4526, 121415, 0, 64520, 71336, 0, 0, 55278, + 10228, 64957, 0, 0, 3807, 2081, 66640, 0, 0, 0, 0, 119269, 0, 128688, 0, + 128142, 1451, 0, 0, 4134, 0, 74847, 0, 74793, 0, 0, 74295, 9960, 1201, 0, + 12846, 121271, 0, 11919, 64962, 0, 43739, 0, 66358, 0, 0, 0, 43679, + 72284, 72289, 0, 129523, 1253, 983870, 65766, 500, 65764, 65765, 65762, + 65763, 65760, 65761, 70334, 983867, 9821, 11702, 110630, 110631, 110628, + 110629, 128481, 0, 7533, 66717, 92500, 92305, 0, 0, 69277, 127758, 71332, + 0, 0, 0, 0, 11188, 0, 4112, 0, 0, 12890, 0, 0, 9915, 0, 68423, 0, 0, + 2876, 0, 0, 0, 0, 7382, 92415, 0, 128132, 0, 0, 0, 0, 69561, 127915, 0, + 7003, 0, 0, 7704, 0, 0, 0, 4123, 0, 0, 9977, 0, 0, 65759, 0, 0, 128266, + 9808, 0, 92611, 4126, 0, 9521, 9589, 64755, 0, 0, 0, 69948, 0, 92368, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 93814, 0, 0, 92234, 0, 10693, 0, 0, 65897, 4058, + 0, 0, 64660, 0, 0, 0, 983730, 1139, 43298, 0, 65929, 8970, 0, 9934, 0, + 11023, 128020, 42522, 0, 0, 0, 78899, 3057, 128113, 7349, 69959, 128722, + 68065, 110813, 0, 92826, 67201, 0, 0, 0, 9528, 0, 0, 0, 9102, 627, 92827, + 6273, 129496, 0, 0, 983210, 92966, 43300, 0, 983740, 11696, 92825, 1018, + 65554, 0, 74338, 0, 7645, 0, 128321, 0, 0, 0, 0, 73814, 11544, 12563, + 10728, 0, 0, 127340, 43311, 64966, 92841, 0, 0, 118946, 0, 0, 74779, 0, + 185, 65085, 74533, 0, 0, 7535, 0, 42525, 0, 9749, 41701, 6131, 0, 4117, + 129062, 126988, 0, 92429, 65693, 0, 73445, 0, 69695, 0, 0, 0, 0, 0, 0, 0, + 1184, 0, 815, 0, 0, 0, 0, 0, 71325, 0, 0, 64683, 983816, 0, 127959, 0, 0, + 0, 0, 0, 0, 0, 68166, 0, 0, 0, 0, 66799, 0, 128912, 0, 5142, 0, 69643, 0, + 0, 68367, 93975, 0, 0, 0, 123209, 0, 0, 0, 74855, 121330, 0, 0, 0, 0, + 10940, 66030, 0, 70385, 0, 0, 2652, 120527, 0, 129946, 0, 126508, 0, 0, + 0, 0, 0, 0, 1828, 0, 128357, 0, 8531, 0, 74799, 12324, 72434, 65238, 68374, 0, 65573, 0, 68308, 68679, 12904, 43445, 0, 0, 0, 11247, 0, 0, 41426, 0, 0, 0, 0, 0, 67250, 69451, 83354, 11869, 0, 0, 0, 0, 0, 0, 637, 0, 0, 0, 121178, 0, 0, 74474, 71306, 0, 7298, 128256, 0, 0, 0, 0, 8210, @@ -28056,32 +27866,32 @@ static const unsigned int code_hash[] = { 129875, 0, 71485, 0, 917837, 0, 0, 78157, 0, 0, 0, 0, 0, 71313, 0, 70710, 128212, 0, 72238, 67858, 0, 0, 0, 0, 0, 0, 0, 10770, 118994, 0, 465, 0, 983656, 74348, 0, 0, 0, 0, 0, 0, 0, 10930, 0, 0, 0, 119091, 69388, - 122637, 129918, 0, 0, 0, 0, 0, 10092, 0, 0, 0, 0, 119019, 1766, 11282, - 11996, 66644, 4547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120906, 4345, 0, 0, - 128947, 0, 0, 0, 0, 0, 5382, 0, 0, 118552, 0, 0, 5406, 43127, 120007, 0, - 3590, 129874, 0, 0, 0, 42016, 0, 0, 121002, 0, 7742, 0, 66562, 71323, 0, - 0, 5310, 0, 123625, 0, 43594, 0, 128260, 66723, 0, 73816, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1326, 128723, 0, 0, 74519, 0, 0, 0, 0, 71308, 0, 5410, 5783, - 0, 8403, 5400, 120526, 0, 128863, 0, 0, 0, 64412, 0, 0, 5587, 42865, - 71858, 0, 0, 129854, 0, 113785, 0, 120755, 0, 69738, 0, 74867, 10461, - 12103, 0, 0, 70701, 0, 0, 0, 0, 0, 94009, 0, 2760, 0, 8816, 41515, 0, - 11802, 0, 7585, 910, 0, 0, 0, 3658, 83386, 120525, 0, 7617, 0, 12888, 0, - 0, 64631, 0, 41514, 11097, 5703, 0, 41517, 41504, 41519, 0, 70104, 0, - 65864, 0, 120533, 0, 121037, 0, 0, 43553, 120774, 0, 0, 0, 0, 0, 1578, 0, - 43449, 0, 0, 8225, 121191, 94024, 72799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 110655, 0, 110656, 121247, 72213, 0, 110658, 0, 74997, 0, 3195, 10999, - 983570, 7897, 0, 1203, 74396, 0, 64544, 0, 0, 0, 2877, 0, 0, 0, 121112, - 0, 0, 128977, 119607, 0, 0, 0, 0, 983623, 0, 0, 0, 0, 0, 0, 0, 0, 983078, - 0, 0, 0, 9939, 0, 0, 0, 0, 0, 0, 0, 10714, 0, 0, 0, 0, 0, 67738, 0, - 74038, 0, 42897, 0, 0, 0, 0, 0, 0, 7730, 0, 0, 0, 11163, 0, 0, 0, 113701, - 4966, 128802, 70674, 129468, 123207, 3841, 0, 0, 983231, 77886, 0, 4972, - 0, 64699, 0, 0, 0, 0, 0, 12705, 10203, 9608, 0, 0, 11962, 121397, 0, - 1196, 67684, 0, 777, 0, 0, 65271, 0, 0, 0, 0, 64824, 983195, 0, 9454, - 63778, 8658, 0, 0, 2705, 0, 64894, 0, 0, 11986, 92636, 0, 8280, 0, 2701, - 0, 0, 0, 0, 0, 9809, 0, 0, 0, 0, 0, 63761, 1748, 0, 65719, 121078, 0, 0, - 0, 55244, 3061, 0, 63765, 63787, 0, 41520, 0, 7694, 0, 8896, 63768, - 55282, 0, 127781, 0, 0, 63807, 1591, 0, 6386, 118554, 0, 0, 0, 983200, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68289, 0, 0, 7624, 67487, 10996, 92247, 10609, 0, + 122637, 129918, 0, 0, 0, 0, 0, 10092, 0, 0, 0, 0, 0, 1766, 11282, 11996, + 66644, 4547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120906, 4345, 0, 0, 128947, 0, 0, + 0, 0, 0, 5382, 0, 0, 118552, 0, 0, 5406, 43127, 120007, 0, 3590, 129874, + 0, 0, 0, 42016, 0, 0, 121002, 0, 7742, 0, 66562, 71323, 0, 0, 5310, 0, + 123625, 0, 43594, 0, 128260, 66723, 0, 73816, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1326, 128723, 0, 0, 74519, 0, 0, 0, 0, 71308, 0, 5410, 5783, 0, 8403, + 5400, 120526, 0, 128863, 0, 0, 0, 64412, 0, 0, 5587, 42865, 71858, 0, 0, + 129854, 0, 113785, 0, 120755, 0, 69738, 0, 74867, 10461, 12103, 0, 0, + 70701, 0, 0, 0, 0, 0, 94009, 0, 2760, 0, 8816, 41515, 0, 11802, 0, 7585, + 910, 0, 0, 0, 3658, 83386, 120525, 0, 7617, 0, 12888, 0, 0, 64631, 0, + 41514, 11097, 5703, 0, 41517, 41504, 41519, 0, 70104, 0, 65864, 0, + 120533, 0, 121037, 0, 0, 43553, 120774, 0, 0, 0, 0, 0, 1578, 0, 43449, 0, + 0, 8225, 121191, 94024, 72799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110655, + 0, 110656, 121247, 72213, 0, 110658, 0, 74997, 0, 3195, 10999, 983570, + 7897, 0, 1203, 74396, 0, 64544, 0, 0, 0, 2877, 0, 0, 0, 121112, 0, 0, + 128977, 119607, 0, 0, 0, 0, 983623, 0, 0, 0, 0, 0, 0, 0, 0, 983078, 0, 0, + 0, 9939, 0, 0, 0, 0, 0, 0, 0, 10714, 0, 0, 0, 0, 0, 67738, 0, 74038, 0, + 42897, 0, 0, 0, 0, 0, 0, 7730, 0, 0, 0, 11163, 0, 0, 0, 113701, 4966, + 128802, 70674, 129468, 123207, 3841, 0, 0, 983228, 77886, 0, 4972, 0, + 64699, 0, 0, 0, 0, 0, 12705, 10203, 9608, 0, 0, 11962, 121397, 0, 1196, + 67684, 0, 777, 0, 0, 65271, 0, 0, 0, 0, 64824, 983194, 0, 9454, 63778, + 8658, 0, 0, 2705, 0, 64894, 0, 0, 11986, 92636, 0, 8280, 0, 2701, 0, 0, + 0, 0, 0, 9809, 0, 0, 0, 0, 0, 63761, 1748, 0, 65719, 121078, 0, 0, 0, + 55244, 3061, 0, 63765, 63787, 0, 41520, 0, 7694, 0, 8896, 63768, 55282, + 0, 127781, 0, 0, 63807, 1591, 0, 6386, 118554, 0, 0, 0, 983199, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 68289, 0, 0, 7624, 67487, 10996, 92247, 10609, 0, 127181, 10987, 0, 70370, 3894, 0, 0, 0, 0, 493, 0, 0, 1717, 12228, 479, 917941, 129347, 129473, 917935, 917939, 917924, 917932, 92303, 64315, 92170, 0, 83522, 6233, 42681, 83525, 83518, 83519, 64911, 83521, 0, 0, @@ -28119,9 +27929,9 @@ static const unsigned int code_hash[] = { 128832, 100930, 0, 0, 0, 0, 0, 129776, 128546, 0, 0, 120914, 0, 0, 0, 0, 917822, 128810, 983676, 65599, 0, 9966, 12607, 4948, 128070, 0, 128149, 0, 0, 6207, 0, 6117, 73916, 0, 0, 0, 0, 68244, 41511, 0, 129489, 127304, - 0, 121289, 0, 118618, 83031, 83032, 0, 41556, 0, 0, 0, 128571, 73504, 0, + 0, 121289, 0, 118618, 83031, 83032, 0, 41556, 0, 0, 0, 128571, 73766, 0, 0, 118645, 41510, 7953, 0, 0, 41513, 0, 0, 0, 83038, 83039, 83040, 83041, - 83034, 83035, 848, 9868, 983150, 6424, 118625, 83033, 0, 0, 0, 0, 118539, + 83034, 83035, 848, 9868, 983149, 6424, 118625, 83033, 0, 0, 0, 0, 118539, 0, 893, 64576, 13299, 0, 0, 71998, 71447, 0, 0, 0, 0, 8903, 0, 0, 0, 8099, 0, 0, 0, 0, 0, 0, 0, 0, 113713, 0, 0, 0, 0, 0, 83027, 41483, 83029, 83030, 83023, 83024, 69436, 64836, 194756, 41485, 194758, 194757, 194760, @@ -28133,7 +27943,7 @@ static const unsigned int code_hash[] = { 0, 2108, 0, 73929, 0, 0, 10617, 194737, 128031, 194739, 194738, 68614, 194740, 68611, 9924, 129952, 194744, 0, 0, 0, 3277, 0, 4947, 41055, 0, 194722, 129930, 194724, 194723, 64626, 194725, 42266, 194727, 8371, - 194729, 127028, 12806, 41492, 0, 0, 73930, 194731, 124140, 41054, 1078, + 194729, 127028, 12806, 41492, 0, 0, 73930, 194731, 194730, 41054, 1078, 194735, 194734, 41057, 0, 0, 0, 0, 0, 92210, 73009, 0, 41496, 0, 9165, 1572, 0, 129712, 0, 128635, 9215, 9330, 129809, 10032, 41745, 43183, 6401, 5831, 0, 0, 0, 8056, 0, 65681, 92377, 0, 0, 0, 121048, 0, 118887, @@ -28162,13 +27972,13 @@ static const unsigned int code_hash[] = { 74317, 0, 8319, 194714, 194717, 10960, 72196, 8305, 12573, 983620, 72193, 0, 13202, 0, 12582, 0, 72198, 69856, 0, 0, 78598, 0, 72195, 0, 65802, 74822, 7698, 12708, 74045, 0, 0, 70460, 4913, 127990, 0, 123539, 0, 0, - 12728, 129980, 128895, 0, 101281, 0, 130038, 0, 101283, 0, 12588, 8821, - 6153, 194705, 78900, 194707, 194710, 194709, 194712, 194711, 118854, - 194713, 651, 0, 0, 0, 0, 0, 78468, 78469, 69433, 78467, 69614, 74905, - 194695, 78461, 194697, 194696, 0, 4716, 43277, 0, 2185, 78475, 128592, - 120928, 194700, 55264, 194702, 12732, 0, 12707, 0, 0, 0, 0, 121417, 8479, - 4151, 0, 0, 0, 0, 0, 0, 0, 0, 113799, 0, 74050, 0, 0, 0, 0, 0, 129467, - 12278, 0, 129507, 0, 2700, 12576, 7842, 0, 67471, 0, 2699, 0, 0, 2985, 0, + 12728, 129980, 0, 0, 101281, 0, 130038, 0, 101283, 0, 12588, 8821, 6153, + 194705, 78900, 194707, 194710, 194709, 194712, 194711, 118854, 194713, + 651, 0, 0, 0, 0, 0, 78468, 78469, 69433, 78467, 69614, 74905, 194695, + 78461, 194697, 194696, 0, 4716, 43277, 0, 2185, 78475, 128592, 120928, + 194700, 55264, 194702, 12732, 0, 12707, 0, 0, 0, 0, 121417, 8479, 4151, + 0, 0, 0, 0, 0, 0, 0, 0, 113799, 0, 74050, 0, 0, 0, 0, 0, 129467, 12278, + 0, 129507, 0, 2700, 12576, 7842, 0, 67471, 0, 2699, 0, 0, 2985, 0, 126475, 0, 129873, 119314, 0, 119312, 9827, 101292, 119311, 101291, 119309, 119306, 11481, 118718, 119305, 0, 35, 78481, 78482, 66694, 78480, 78477, 78478, 0, 0, 64257, 0, 0, 0, 78485, 78486, 78483, 4272, 0, 0, @@ -28178,7 +27988,7 @@ static const unsigned int code_hash[] = { 128628, 101088, 0, 12346, 128596, 101089, 0, 0, 7251, 0, 0, 118850, 73025, 0, 0, 0, 0, 0, 12564, 66457, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101131, 0, 41564, 10976, 0, 121223, 0, 0, 10054, 9197, 120618, 0, 9012, 65737, - 74420, 0, 13215, 12730, 0, 0, 0, 0, 816, 0, 101123, 122664, 83191, 0, 0, + 74420, 0, 13215, 12730, 0, 0, 0, 0, 816, 0, 101123, 0, 83191, 0, 0, 92752, 101120, 4715, 94107, 94106, 71075, 0, 0, 0, 67729, 0, 307, 0, 9585, 0, 0, 0, 101255, 0, 125267, 0, 70727, 65567, 101238, 75006, 101231, 983909, 0, 12236, 41419, 101259, 194621, 101248, 75003, 194622, 73675, @@ -28200,90 +28010,89 @@ static const unsigned int code_hash[] = { 100813, 100816, 100815, 100818, 100817, 100798, 100797, 41410, 100799, 64262, 0, 41407, 75000, 0, 0, 93812, 0, 0, 72803, 74999, 78897, 0, 0, 67675, 0, 0, 0, 0, 43647, 0, 0, 100792, 100791, 100794, 100793, 100796, - 100795, 983276, 74630, 11933, 0, 0, 41903, 67892, 11001, 100801, 42255, + 100795, 0, 74630, 11933, 0, 0, 41903, 67892, 11001, 100801, 42255, 100803, 100802, 100805, 41905, 100807, 100806, 10775, 9793, 0, 0, 74452, 0, 983063, 42535, 0, 64529, 41408, 42853, 0, 0, 42674, 118915, 0, 0, 983807, 0, 70838, 0, 0, 0, 64506, 0, 66738, 4747, 100783, 69844, 100785, - 5832, 0, 0, 5141, 42600, 124147, 0, 0, 0, 0, 0, 93790, 0, 7657, 0, 71132, + 5832, 0, 0, 5141, 42600, 0, 0, 0, 0, 0, 0, 93790, 0, 7657, 0, 71132, 74137, 0, 128362, 73682, 73681, 859, 0, 0, 0, 6059, 126985, 55235, 0, 0, - 0, 0, 0, 100787, 11488, 72838, 100788, 0, 100790, 10558, 0, 124144, - 118646, 126090, 71069, 0, 0, 1788, 0, 0, 0, 0, 119571, 92822, 9028, 0, - 69234, 73665, 0, 9905, 73556, 41242, 70086, 0, 74109, 100765, 100764, - 100767, 100766, 70830, 83184, 70082, 3940, 0, 43754, 0, 128188, 8665, 0, - 0, 0, 1653, 100775, 42406, 100777, 100780, 70825, 120523, 0, 8815, 0, - 65046, 0, 42445, 0, 11180, 119318, 119315, 68454, 42485, 0, 0, 8211, - 42293, 983602, 0, 0, 0, 0, 65385, 100771, 42332, 100773, 78431, 78432, - 78423, 78430, 78420, 10022, 65387, 78419, 65384, 0, 0, 0, 65386, 0, - 11248, 0, 43198, 64751, 0, 0, 0, 0, 0, 0, 101102, 7363, 0, 0, 119323, - 119324, 100752, 100751, 0, 119320, 0, 983632, 0, 8237, 0, 0, 0, 0, 0, 0, - 9914, 0, 100763, 100762, 120009, 6351, 119993, 92740, 68766, 0, 120010, - 41243, 0, 74108, 11467, 120165, 119998, 4358, 0, 6353, 0, 0, 0, 93045, - 1710, 0, 0, 92237, 0, 49, 73871, 120005, 78671, 0, 78672, 9741, 78443, - 78444, 78441, 43443, 78439, 78440, 69244, 78438, 3470, 0, 0, 92814, 0, 0, - 78445, 0, 1072, 78457, 78452, 78454, 74230, 78451, 78447, 78449, 1080, 0, - 74100, 0, 1101, 68404, 78458, 78459, 71082, 0, 1086, 1869, 0, 0, 0, - 65458, 0, 0, 41988, 0, 1091, 0, 7977, 0, 66992, 0, 0, 0, 92758, 0, 0, 0, - 0, 0, 71255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64582, 0, 0, 70794, 0, 120989, - 128495, 74106, 0, 66883, 0, 0, 0, 0, 0, 0, 0, 92553, 43752, 110592, 0, - 71249, 120886, 0, 0, 0, 0, 6063, 100857, 101221, 917995, 6053, 74096, 0, - 0, 74169, 13100, 0, 917999, 0, 71081, 0, 70387, 6055, 7800, 4279, 8490, - 120114, 120111, 64786, 8602, 120110, 83389, 92204, 0, 0, 74961, 0, - 120117, 120118, 120099, 120100, 65087, 64402, 3674, 120096, 0, 120094, - 120107, 118624, 120105, 10107, 42159, 42870, 120101, 69632, 0, 0, 43281, - 127078, 0, 74098, 0, 0, 126497, 74099, 129056, 0, 0, 0, 121123, 5847, - 125258, 0, 0, 0, 0, 0, 66592, 64469, 71698, 19966, 0, 42561, 0, 129170, - 66854, 8120, 75042, 0, 0, 0, 0, 0, 0, 126068, 8369, 0, 0, 122912, 3369, - 0, 121094, 0, 0, 69238, 10495, 121365, 0, 557, 9457, 0, 0, 121054, 73880, - 127220, 0, 74937, 74094, 0, 0, 119001, 92171, 127219, 128175, 127939, - 120424, 0, 127214, 2109, 67893, 127211, 69656, 127217, 10604, 127215, 0, - 0, 0, 129727, 126561, 0, 0, 0, 0, 1618, 0, 0, 83175, 10430, 0, 0, 13063, - 917585, 0, 92982, 113666, 0, 78390, 83489, 12060, 0, 113669, 0, 6329, 0, - 0, 0, 74395, 2707, 8309, 0, 127054, 78398, 0, 2697, 0, 78396, 127057, - 2695, 0, 0, 68334, 0, 0, 0, 72325, 2693, 74091, 0, 0, 2703, 113729, - 70283, 41918, 983169, 127542, 8687, 127543, 12178, 43361, 92540, 64075, - 110705, 5248, 110703, 120538, 6427, 0, 0, 0, 0, 110710, 0, 74990, 74989, - 70703, 127031, 0, 9873, 0, 0, 0, 64762, 2053, 0, 6591, 9340, 0, 1589, 0, - 296, 67712, 128315, 12766, 118931, 74370, 120417, 2414, 128068, 43829, - 111202, 74836, 0, 12579, 0, 12575, 6416, 5656, 0, 13262, 65590, 5299, - 983702, 0, 5449, 1252, 0, 78404, 69748, 74369, 65373, 5295, 0, 121066, - 1223, 1642, 78408, 0, 12158, 5303, 0, 120546, 41413, 3212, 127025, 3211, - 74810, 41425, 127029, 0, 74450, 9728, 0, 10924, 74778, 6636, 73552, - 129884, 0, 0, 129882, 9519, 0, 0, 129106, 101110, 68780, 0, 0, 0, 119182, - 0, 12104, 77942, 77951, 9004, 0, 74249, 10230, 0, 0, 0, 77947, 0, 69679, - 121475, 9890, 125049, 12971, 0, 92556, 0, 67903, 70051, 983924, 0, 0, - 9635, 12600, 0, 0, 0, 118900, 6469, 0, 101113, 65304, 4679, 101114, - 64300, 64867, 6531, 101118, 101099, 101098, 92813, 101100, 42916, 0, 0, - 0, 0, 0, 0, 4445, 72296, 0, 11533, 0, 3416, 124112, 0, 0, 0, 78566, 0, 0, - 101091, 92815, 101093, 5447, 72140, 70752, 101097, 101096, 0, 0, 0, - 64448, 0, 43920, 70677, 0, 6232, 101101, 101104, 101103, 43608, 101105, - 101108, 6538, 4335, 0, 3941, 74986, 11061, 0, 74988, 74987, 0, 12155, - 128278, 0, 0, 0, 0, 74578, 0, 65832, 0, 129459, 70789, 0, 125050, 0, 0, - 350, 10951, 101081, 509, 101083, 101086, 101085, 0, 0, 0, 917540, 0, - 100905, 110970, 12162, 64741, 0, 9354, 0, 70802, 100901, 2496, 11516, - 944, 128238, 0, 0, 1438, 0, 0, 120185, 70785, 1220, 917952, 93844, 0, 0, - 5008, 42630, 70787, 101087, 2229, 68206, 564, 0, 312, 0, 0, 0, 70797, - 8877, 269, 0, 128065, 9617, 0, 0, 100910, 0, 0, 10862, 0, 0, 41416, 0, - 4173, 0, 0, 0, 1906, 983854, 41418, 74073, 101068, 101067, 41415, 69622, - 9582, 0, 64287, 0, 0, 11428, 1730, 0, 0, 19918, 10469, 101076, 101079, - 68088, 0, 101080, 72342, 0, 129692, 0, 6129, 0, 0, 0, 0, 7874, 0, 0, - 11206, 13136, 118529, 129305, 0, 64374, 74925, 0, 73892, 0, 101073, - 101072, 101075, 74960, 9228, 101054, 101057, 101056, 5240, 9811, 0, - 101060, 129718, 0, 0, 74079, 65873, 0, 0, 0, 9501, 0, 68081, 72808, - 65465, 64654, 7467, 0, 0, 83460, 10040, 0, 3096, 0, 101053, 101052, - 68820, 83461, 0, 0, 0, 0, 0, 0, 83377, 0, 68801, 0, 101062, 101061, - 101064, 101063, 0, 8637, 70741, 0, 77983, 77969, 11471, 43554, 0, 77968, - 0, 0, 0, 2426, 12042, 0, 0, 0, 3961, 12115, 129633, 0, 77972, 64561, 0, - 4981, 74644, 129558, 0, 0, 42686, 77976, 128776, 64686, 0, 77958, 7589, - 0, 0, 3237, 0, 68215, 0, 8541, 127157, 71067, 120174, 0, 0, 0, 0, 0, - 43555, 0, 0, 10060, 111261, 100917, 0, 0, 0, 64877, 0, 0, 8614, 65220, - 41493, 0, 0, 0, 43780, 0, 0, 70689, 0, 0, 0, 0, 0, 0, 4012, 10395, 0, 0, - 111253, 126511, 111254, 125051, 695, 739, 696, 7611, 0, 42755, 68421, - 9227, 7506, 7510, 67493, 691, 738, 7511, 7512, 7515, 7501, 688, 41847, - 690, 2548, 737, 974, 43386, 0, 0, 0, 0, 0, 0, 65860, 0, 7051, 69777, - 4682, 0, 983096, 6406, 4685, 0, 0, 10347, 4680, 6341, 0, 0, 92607, 74325, - 0, 123555, 0, 0, 0, 0, 0, 0, 43505, 92468, 11718, 42373, 11714, 0, 0, - 129567, 11717, 0, 10594, 129732, 11712, 122962, 0, 10967, 0, 0, 0, 66632, - 118647, 0, 0, 0, 1735, 0, 11134, 2363, 983136, 0, 0, 70695, 128032, 0, + 0, 0, 0, 100787, 11488, 72838, 100788, 0, 100790, 10558, 0, 0, 118646, + 126090, 71069, 0, 0, 1788, 0, 0, 0, 0, 119571, 92822, 9028, 0, 69234, + 73665, 0, 9905, 128485, 41242, 70086, 0, 74109, 100765, 100764, 100767, + 100766, 70830, 83184, 70082, 3940, 0, 43754, 0, 128188, 8665, 0, 0, 0, + 1653, 100775, 42406, 100777, 100780, 70825, 120523, 0, 8815, 0, 65046, 0, + 42445, 0, 11180, 119318, 119315, 68454, 42485, 0, 0, 8211, 42293, 983602, + 0, 0, 0, 0, 65385, 100771, 42332, 100773, 78431, 78432, 78423, 78430, + 78420, 10022, 65387, 78419, 65384, 0, 0, 0, 65386, 0, 11248, 0, 43198, + 64751, 0, 0, 0, 0, 0, 0, 101102, 7363, 0, 0, 119323, 119324, 100752, + 100751, 0, 119320, 0, 983632, 0, 8237, 0, 0, 0, 0, 0, 0, 9914, 0, 100763, + 100762, 120009, 6351, 119993, 92740, 68766, 0, 120010, 41243, 0, 74108, + 11467, 120165, 119998, 4358, 0, 6353, 0, 0, 0, 93045, 1710, 0, 0, 92237, + 0, 49, 73871, 120005, 78671, 0, 78672, 9741, 78443, 78444, 78441, 43443, + 78439, 78440, 69244, 78438, 3470, 0, 0, 92814, 0, 0, 78445, 0, 1072, + 78457, 78452, 78454, 74230, 78451, 78447, 78449, 1080, 0, 74100, 0, 1101, + 68404, 78458, 78459, 71082, 0, 1086, 1869, 0, 0, 0, 65458, 0, 0, 41988, + 0, 1091, 0, 7977, 0, 66992, 0, 0, 0, 92758, 0, 0, 0, 0, 0, 71255, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 64582, 0, 0, 70794, 0, 120989, 128495, 74106, 0, + 66883, 0, 0, 0, 0, 0, 0, 0, 92553, 43752, 110592, 0, 71249, 120886, 0, 0, + 0, 0, 6063, 100857, 101221, 917995, 6053, 74096, 0, 0, 74169, 13100, 0, + 917999, 0, 71081, 0, 70387, 6055, 7800, 4279, 8490, 120114, 120111, + 64786, 8602, 120110, 83389, 92204, 0, 0, 74961, 0, 120117, 120118, + 120099, 120100, 65087, 64402, 3674, 120096, 0, 120094, 120107, 118624, + 120105, 10107, 42159, 42870, 120101, 69632, 0, 0, 43281, 127078, 0, + 74098, 0, 0, 126497, 74099, 129056, 0, 0, 0, 121123, 5847, 125258, 0, 0, + 0, 0, 0, 66592, 64469, 71698, 19966, 0, 42561, 0, 129170, 66854, 8120, + 75042, 0, 0, 0, 0, 0, 0, 126068, 8369, 0, 0, 122912, 3369, 0, 121094, 0, + 0, 69238, 10495, 121365, 0, 557, 9457, 0, 0, 121054, 73880, 127220, 0, + 74937, 74094, 0, 0, 0, 92171, 127219, 128175, 127939, 120424, 0, 127214, + 2109, 67893, 127211, 69656, 127217, 10604, 127215, 0, 0, 0, 0, 126561, 0, + 0, 0, 0, 1618, 0, 0, 83175, 10430, 0, 0, 13063, 917585, 0, 92982, 113666, + 0, 78390, 83489, 12060, 0, 113669, 0, 6329, 0, 0, 0, 74395, 2707, 8309, + 0, 127054, 78398, 0, 2697, 0, 78396, 127057, 2695, 0, 0, 68334, 0, 0, 0, + 72325, 2693, 74091, 0, 0, 2703, 113729, 70283, 41918, 983168, 127542, + 8687, 127543, 12178, 43361, 92540, 64075, 110705, 5248, 110703, 120538, + 6427, 0, 0, 0, 0, 110710, 0, 74990, 74989, 70703, 127031, 0, 9873, 0, 0, + 0, 64762, 2053, 0, 6591, 9340, 0, 1589, 0, 296, 67712, 128315, 12766, + 118931, 74370, 120417, 2414, 128068, 43829, 111202, 74836, 0, 12579, 0, + 12575, 6416, 5656, 0, 13262, 65590, 5299, 983702, 0, 5449, 1252, 0, + 78404, 69748, 74369, 65373, 5295, 0, 121066, 1223, 1642, 78408, 0, 12158, + 5303, 0, 120546, 41413, 3212, 127025, 3211, 74810, 41425, 127029, 0, + 74450, 9728, 0, 10924, 74778, 6636, 0, 129884, 0, 0, 129882, 9519, 0, 0, + 129106, 101110, 68780, 0, 0, 0, 119182, 0, 12104, 77942, 77951, 9004, 0, + 74249, 10230, 0, 0, 0, 77947, 0, 69679, 121475, 9890, 125049, 12971, 0, + 92556, 0, 67903, 70051, 983924, 0, 0, 9635, 12600, 0, 0, 0, 118900, 6469, + 0, 101113, 65304, 4679, 101114, 64300, 64867, 6531, 101118, 101099, + 101098, 92813, 101100, 42916, 0, 0, 0, 0, 0, 0, 4445, 72296, 0, 11533, 0, + 3416, 129148, 0, 0, 0, 78566, 0, 0, 101091, 92815, 101093, 5447, 72140, + 70752, 101097, 101096, 0, 0, 0, 64448, 0, 43920, 70677, 0, 6232, 101101, + 101104, 101103, 43608, 101105, 101108, 6538, 4335, 0, 3941, 74986, 11061, + 0, 74988, 74987, 0, 12155, 128278, 0, 0, 0, 0, 74578, 0, 65832, 0, + 129459, 70789, 0, 125050, 0, 0, 350, 10951, 101081, 509, 101083, 101086, + 101085, 0, 0, 0, 917540, 0, 100905, 110970, 12162, 64741, 0, 9354, 0, + 70802, 100901, 2496, 11516, 944, 128238, 0, 0, 1438, 0, 0, 120185, 70785, + 1220, 917952, 93844, 0, 0, 5008, 42630, 70787, 101087, 2229, 68206, 564, + 0, 312, 0, 0, 0, 70797, 8877, 269, 0, 128065, 9617, 0, 0, 100910, 0, 0, + 10862, 0, 0, 41416, 0, 4173, 0, 0, 0, 1906, 983854, 41418, 74073, 101068, + 101067, 41415, 69622, 9582, 0, 64287, 0, 0, 11428, 1730, 0, 0, 19918, + 10469, 101076, 101079, 68088, 0, 101080, 72342, 0, 129692, 0, 6129, 0, 0, + 0, 0, 7874, 0, 0, 11206, 13136, 118529, 129305, 0, 64374, 74925, 0, + 73892, 0, 101073, 101072, 101075, 74960, 9228, 101054, 101057, 101056, + 5240, 9811, 0, 101060, 129718, 0, 0, 74079, 65873, 0, 0, 0, 9501, 0, + 68081, 72808, 65465, 64654, 7467, 0, 0, 83460, 10040, 0, 3096, 0, 101053, + 101052, 68820, 83461, 0, 0, 0, 0, 0, 0, 83377, 0, 68801, 0, 101062, + 101061, 101064, 101063, 0, 8637, 70741, 0, 77983, 77969, 11471, 43554, 0, + 77968, 0, 0, 0, 2426, 12042, 0, 0, 0, 3961, 12115, 129633, 0, 77972, + 64561, 0, 4981, 74644, 129558, 0, 0, 42686, 77976, 128776, 64686, 0, + 77958, 7589, 0, 0, 3237, 0, 68215, 0, 8541, 127157, 71067, 120174, 0, 0, + 0, 0, 0, 43555, 0, 0, 10060, 111261, 100917, 0, 0, 0, 64877, 0, 0, 8614, + 65220, 41493, 0, 0, 0, 43780, 0, 0, 70689, 0, 0, 0, 0, 0, 0, 4012, 10395, + 0, 0, 111253, 126511, 111254, 125051, 695, 739, 696, 7611, 0, 42755, + 68421, 9227, 7506, 7510, 67493, 691, 738, 7511, 7512, 7515, 7501, 688, + 41847, 690, 2548, 737, 974, 43386, 0, 0, 0, 0, 0, 0, 65860, 0, 7051, + 69777, 4682, 0, 983096, 6406, 4685, 0, 0, 10347, 4680, 6341, 0, 0, 92607, + 74325, 0, 123555, 0, 0, 0, 0, 0, 0, 43505, 92468, 11718, 42373, 11714, 0, + 0, 129567, 11717, 0, 10594, 129732, 11712, 0, 0, 10967, 0, 0, 0, 66632, + 118647, 0, 0, 0, 1735, 0, 11134, 2363, 983135, 0, 0, 70695, 128032, 0, 7491, 7495, 7580, 7496, 7497, 7584, 121478, 127853, 0, 0, 70025, 0, 8498, 0, 8949, 3065, 0, 0, 0, 0, 0, 0, 11713, 0, 64939, 0, 6418, 4543, 0, 0, 0, 74800, 0, 0, 0, 0, 0, 0, 0, 12282, 3165, 0, 0, 64556, 0, 9238, 0, 68063, @@ -28291,167 +28100,166 @@ static const unsigned int code_hash[] = { 41400, 126636, 119664, 0, 42232, 0, 1744, 0, 41402, 0, 0, 0, 41399, 0, 125028, 0, 0, 12690, 0, 0, 43672, 0, 0, 0, 100870, 11315, 0, 278, 121204, 41405, 129345, 0, 10077, 129650, 70667, 0, 0, 0, 68210, 0, 0, 11189, - 70657, 0, 0, 0, 7934, 0, 93829, 120940, 0, 0, 122971, 0, 0, 0, 6413, - 6550, 0, 1940, 2809, 43637, 70045, 0, 0, 10678, 0, 0, 0, 129701, 78804, - 6403, 6556, 78803, 0, 0, 123557, 0, 0, 0, 123553, 0, 3742, 74408, 3959, - 0, 0, 917969, 123565, 0, 128024, 0, 123558, 127956, 0, 0, 0, 6855, 4676, + 70657, 0, 0, 0, 7934, 0, 93829, 120940, 0, 0, 0, 0, 0, 0, 6413, 6550, 0, + 1940, 2809, 43637, 70045, 0, 0, 10678, 0, 0, 0, 129701, 78804, 6403, + 6556, 78803, 0, 0, 123557, 0, 0, 0, 123553, 0, 3742, 74408, 3959, 0, 0, + 917969, 123565, 0, 128024, 0, 123558, 127956, 0, 0, 0, 6855, 4676, 983049, 9210, 0, 78143, 983922, 0, 78168, 983100, 11540, 43546, 6692, 0, 0, 0, 0, 9083, 0, 0, 78144, 128515, 0, 9677, 0, 70867, 74175, 0, 74070, 0, 0, 365, 0, 43027, 0, 0, 128236, 0, 119574, 70284, 13151, 0, 0, 127935, 127950, 544, 13249, 119018, 0, 120846, 0, 0, 73671, 65339, 73000, 2211, - 0, 0, 0, 0, 0, 0, 0, 0, 128037, 0, 0, 0, 0, 0, 0, 0, 127188, 92977, - 69708, 9638, 0, 100878, 0, 0, 0, 74545, 128820, 128819, 75062, 128963, 0, - 0, 0, 11264, 43994, 0, 0, 0, 1311, 0, 0, 0, 0, 13068, 0, 0, 78164, 78155, - 0, 949, 0, 0, 0, 78176, 69709, 78177, 63828, 0, 0, 118629, 70282, 0, 0, - 0, 64822, 0, 6530, 983275, 0, 70493, 0, 129325, 0, 0, 4431, 118839, - 127490, 983760, 73667, 127986, 0, 10336, 10400, 0, 0, 92959, 0, 0, 0, - 42270, 128880, 6428, 0, 0, 0, 0, 43455, 0, 43526, 100888, 12835, 129501, - 9493, 0, 0, 11793, 0, 127897, 74394, 0, 10653, 0, 0, 0, 0, 6560, 7016, - 74274, 983627, 43556, 3929, 123615, 6614, 2768, 0, 65609, 0, 11811, - 129696, 0, 118615, 127513, 0, 6554, 0, 6305, 66283, 4675, 118826, 78552, - 0, 0, 74361, 0, 0, 68108, 0, 0, 92232, 0, 93022, 7392, 8230, 9365, - 983742, 0, 0, 0, 0, 42925, 0, 0, 122965, 0, 229, 43834, 119884, 0, 43552, - 119881, 119880, 119883, 119882, 119877, 119876, 119879, 119878, 119873, - 119872, 119875, 119874, 0, 0, 0, 0, 0, 66352, 0, 0, 0, 128663, 0, 12239, - 0, 0, 10432, 12097, 0, 194815, 1233, 78179, 0, 127200, 0, 66395, 0, 0, - 129504, 0, 0, 92342, 0, 2388, 92555, 119868, 119871, 119870, 119865, 895, - 92668, 119866, 64889, 7143, 119863, 119862, 0, 0, 69983, 0, 74376, 3053, - 2168, 0, 2047, 0, 0, 0, 121279, 67985, 194801, 92600, 194803, 194802, - 194805, 194804, 194807, 194806, 129134, 194808, 0, 0, 0, 10473, 129331, - 0, 194810, 129806, 194812, 129813, 194814, 194813, 123195, 43528, 69673, - 194791, 0, 194793, 1912, 120779, 10306, 10370, 0, 0, 8867, 10250, 10258, - 10274, 1635, 120152, 0, 0, 0, 129379, 0, 0, 9919, 120148, 559, 128157, - 41825, 127975, 92989, 0, 74016, 194781, 6542, 41957, 7318, 124126, 0, - 41956, 65749, 65750, 65751, 121323, 64487, 0, 0, 10223, 42062, 100640, - 101195, 125044, 3668, 65754, 43560, 12226, 0, 93973, 194784, 41959, - 194786, 194785, 194788, 43618, 65747, 10937, 2962, 0, 2953, 10062, 65745, - 71457, 8921, 66013, 129370, 0, 194769, 194768, 43409, 194770, 2949, - 194772, 194775, 194774, 2958, 194776, 74868, 2300, 2951, 120061, 0, - 120043, 194778, 0, 120051, 194779, 120056, 120065, 70798, 120048, 0, - 120062, 120055, 71989, 100668, 0, 0, 71985, 0, 71992, 70796, 127818, 0, - 0, 64890, 0, 43630, 11336, 799, 0, 10276, 10308, 10372, 917541, 0, 0, - 10252, 10260, 68220, 55284, 125225, 0, 10384, 0, 0, 0, 64523, 129744, 0, - 65736, 0, 0, 0, 0, 0, 0, 0, 124912, 43549, 65738, 42150, 65739, 0, 78195, - 10288, 10320, 0, 10596, 129829, 67673, 65045, 121283, 78198, 2049, 10098, - 0, 122904, 127943, 10264, 10280, 10312, 10376, 7013, 0, 69504, 0, 0, - 66375, 0, 4862, 0, 6537, 0, 128335, 3914, 92178, 93976, 9065, 64816, 0, - 72218, 73026, 0, 0, 72139, 4694, 11420, 4690, 0, 0, 983211, 4693, 0, 0, - 0, 4688, 0, 0, 128892, 0, 8238, 3110, 0, 983939, 0, 6528, 0, 0, 0, 218, - 0, 1520, 129577, 70039, 0, 983594, 0, 120167, 78167, 10088, 6548, 100786, - 0, 0, 0, 8888, 0, 124954, 0, 0, 126593, 68876, 0, 0, 0, 0, 0, 0, 0, 4689, - 43541, 77954, 120157, 0, 120156, 78810, 120163, 0, 0, 0, 0, 78121, 0, 0, - 11450, 0, 71900, 92613, 0, 121317, 74622, 128720, 9244, 0, 0, 127763, 0, - 0, 0, 0, 0, 0, 71084, 0, 0, 0, 0, 10513, 0, 0, 0, 52, 119178, 0, 0, - 93961, 0, 0, 4812, 0, 0, 0, 0, 0, 0, 128425, 0, 6850, 0, 77959, 10170, - 120450, 6544, 0, 0, 69782, 121517, 0, 0, 65258, 10369, 0, 1585, 74014, - 10249, 422, 1500, 2036, 986, 0, 64394, 69502, 5599, 917981, 2494, 0, 0, - 74021, 983896, 78203, 127808, 0, 72871, 65102, 8961, 74305, 10243, 10245, - 128170, 0, 0, 0, 0, 0, 2508, 129591, 120440, 0, 120439, 0, 0, 0, 0, 0, 0, - 64533, 983187, 0, 0, 74008, 0, 0, 43375, 0, 2504, 0, 121313, 0, 983941, - 6943, 0, 5859, 100677, 0, 0, 72873, 983945, 0, 0, 983923, 92390, 2753, - 1936, 2153, 67701, 2751, 12662, 2763, 8953, 0, 10731, 0, 7052, 0, 0, 0, - 0, 119899, 0, 66675, 0, 119897, 0, 71053, 0, 119903, 0, 67829, 7899, - 119901, 71119, 43798, 7072, 119902, 122898, 11260, 0, 71059, 0, 0, 212, - 0, 12350, 0, 0, 0, 0, 0, 128402, 2759, 0, 0, 93064, 0, 0, 0, 1291, 0, - 195065, 121318, 119911, 0, 119910, 0, 12062, 0, 121216, 0, 129124, - 121044, 120611, 8246, 128874, 0, 0, 0, 0, 0, 73962, 0, 0, 43524, 0, - 64426, 0, 0, 0, 0, 65664, 6693, 0, 0, 8674, 0, 128812, 0, 11846, 70690, - 121461, 69395, 4811, 0, 5986, 0, 3046, 74480, 5985, 0, 0, 0, 0, 12187, - 83148, 71041, 5984, 0, 93817, 4393, 126264, 120206, 917599, 0, 0, 0, - 93806, 93805, 0, 3491, 0, 67146, 0, 93819, 0, 72428, 0, 0, 0, 124968, - 41284, 126228, 0, 0, 41287, 0, 100689, 0, 0, 92189, 0, 0, 219, 120874, 0, - 0, 0, 68485, 119672, 43241, 0, 7147, 73554, 0, 0, 0, 0, 0, 64610, 11804, - 0, 7149, 64808, 0, 0, 0, 92301, 73690, 0, 5253, 0, 0, 0, 0, 129045, - 983596, 11098, 68433, 0, 120484, 111009, 0, 0, 0, 0, 0, 70801, 100779, 0, - 128198, 9604, 0, 130036, 0, 0, 118941, 64392, 0, 118684, 0, 0, 41974, - 126262, 0, 0, 0, 129818, 0, 129833, 0, 0, 0, 0, 0, 983243, 5308, 0, 290, - 0, 125278, 128382, 2792, 0, 0, 120521, 0, 126237, 0, 126099, 0, 0, 0, 0, - 128503, 0, 0, 72816, 0, 0, 0, 92671, 0, 195061, 42646, 7606, 2591, 73896, - 0, 43513, 64482, 0, 0, 65270, 0, 0, 983701, 9112, 0, 113763, 9490, 0, 0, - 0, 0, 0, 9071, 0, 0, 0, 0, 74607, 0, 2535, 65504, 43602, 0, 0, 71256, - 2248, 0, 123147, 11845, 11006, 92315, 7807, 8073, 0, 10629, 0, 74088, 0, - 10823, 0, 113762, 8762, 0, 69689, 123536, 43969, 65047, 10737, 3463, - 67467, 129585, 66645, 0, 4815, 0, 0, 12345, 983761, 0, 5195, 129808, 0, - 66639, 0, 0, 66941, 0, 92759, 92385, 1262, 0, 6561, 19939, 0, 0, 100772, - 123160, 69269, 0, 100774, 0, 0, 0, 0, 0, 0, 67511, 0, 0, 0, 0, 0, 0, - 5702, 3655, 0, 8430, 0, 68807, 0, 0, 121137, 0, 0, 5254, 0, 0, 124917, 0, - 119107, 5129, 0, 70816, 0, 92280, 5614, 0, 0, 11720, 0, 11721, 70804, - 4798, 0, 120541, 66038, 4793, 67851, 7352, 0, 0, 0, 0, 917600, 0, 300, 0, - 0, 128575, 92660, 0, 0, 2562, 70156, 120856, 0, 0, 92738, 0, 0, 127820, - 71093, 0, 127969, 128221, 0, 3424, 93843, 0, 0, 7074, 70873, 128519, 0, - 0, 10832, 0, 0, 69852, 72430, 0, 0, 0, 0, 0, 176, 0, 0, 0, 0, 0, 1215, 0, - 5744, 0, 66440, 0, 0, 0, 42881, 0, 8980, 118988, 67861, 8844, 7433, 0, 0, - 4278, 124925, 0, 0, 70821, 9312, 4348, 0, 128401, 65946, 0, 7087, 5255, - 0, 661, 0, 0, 0, 0, 0, 0, 0, 121009, 73694, 0, 123154, 0, 73688, 0, - 127179, 3621, 83325, 66666, 72968, 0, 6562, 12928, 0, 73991, 0, 0, 11383, - 0, 0, 65588, 120739, 0, 0, 0, 0, 0, 0, 0, 0, 11436, 2070, 64, 110824, 0, - 10291, 10323, 10387, 0, 0, 0, 42008, 9708, 42710, 0, 42011, 0, 92164, 0, - 0, 1702, 1240, 128383, 6286, 9689, 111080, 0, 0, 0, 1765, 0, 0, 92373, 0, - 0, 0, 8401, 72991, 42014, 0, 67237, 0, 0, 0, 0, 0, 0, 0, 70819, 0, 0, 0, - 0, 12667, 0, 0, 10147, 0, 127568, 126483, 72812, 0, 0, 0, 0, 123139, - 128968, 0, 64947, 0, 0, 0, 0, 10435, 11462, 0, 7084, 0, 0, 0, 0, 0, - 126084, 0, 66662, 0, 0, 0, 0, 125134, 0, 0, 77990, 263, 983747, 41288, - 127953, 0, 78387, 74340, 70313, 129140, 0, 0, 0, 42022, 71265, 0, 0, 0, - 0, 0, 0, 42020, 123146, 0, 6992, 42019, 0, 41290, 0, 12295, 126233, - 71304, 0, 120984, 71300, 120631, 5954, 64931, 69385, 100699, 198, 68453, - 78129, 0, 121351, 0, 70818, 13165, 7107, 0, 42804, 678, 72850, 118960, 0, - 72985, 42806, 42808, 0, 0, 2097, 0, 120560, 70823, 0, 0, 3892, 68632, 0, - 6712, 917959, 0, 0, 0, 0, 123158, 69954, 0, 497, 12100, 5953, 92667, - 7796, 0, 43254, 0, 0, 11072, 5952, 1281, 43747, 0, 69380, 10677, 0, 0, 0, - 1859, 0, 72856, 3425, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65199, 1738, 0, - 122911, 0, 0, 0, 11101, 0, 0, 0, 0, 127002, 69651, 4436, 194683, 73984, - 6860, 70305, 64872, 128296, 0, 0, 0, 121377, 0, 6862, 0, 6861, 983109, 0, - 119109, 0, 70826, 319, 0, 43479, 73001, 0, 0, 12849, 0, 7640, 71083, - 9673, 0, 0, 0, 92670, 0, 92665, 113717, 41422, 0, 100708, 74941, 3772, 0, - 120660, 5011, 0, 0, 126587, 111315, 0, 0, 6677, 111312, 0, 41427, 64419, - 129445, 92262, 0, 70799, 0, 0, 0, 6106, 0, 41271, 6760, 983758, 4534, - 41270, 128876, 0, 0, 119561, 0, 0, 3671, 8976, 123177, 0, 41275, 0, - 128084, 55261, 0, 42013, 0, 568, 0, 41273, 0, 0, 6728, 0, 9715, 0, 0, - 121058, 74820, 0, 92268, 0, 194564, 11191, 43688, 128023, 0, 0, 0, - 126266, 0, 0, 0, 11958, 11165, 0, 125087, 0, 0, 66336, 127944, 0, 0, 0, - 0, 42858, 11789, 72878, 5557, 0, 69444, 7300, 0, 9467, 5558, 64486, - 43844, 0, 0, 6706, 10146, 0, 127185, 64566, 0, 0, 0, 0, 0, 0, 0, 4546, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 64528, 123136, 6307, 128966, 0, 7544, 0, 43469, - 111317, 0, 10152, 0, 65091, 0, 129047, 0, 0, 66652, 0, 0, 0, 0, 64823, - 5559, 0, 70711, 6702, 5556, 0, 0, 0, 0, 0, 11166, 0, 0, 5506, 0, 1911, - 73021, 0, 12598, 8845, 66698, 0, 73012, 123145, 73496, 2098, 0, 0, 0, - 66622, 194678, 0, 0, 0, 9898, 0, 0, 7552, 0, 0, 0, 7223, 65723, 0, 0, 0, - 7024, 65728, 127155, 1210, 0, 65175, 10184, 65726, 43654, 0, 0, 0, 38, - 65729, 66669, 0, 917948, 0, 0, 0, 0, 119837, 0, 74233, 73018, 119843, - 42860, 111301, 92576, 65721, 65722, 0, 0, 0, 0, 68843, 0, 68850, 0, - 92388, 92267, 128536, 65577, 42967, 0, 127518, 11650, 5013, 92663, 68810, - 92568, 118914, 6613, 74371, 0, 0, 122985, 0, 64714, 71479, 0, 983797, - 12120, 0, 0, 43124, 0, 0, 78037, 69263, 0, 126219, 0, 0, 1837, 125086, 0, - 0, 0, 127210, 4952, 65718, 64405, 5504, 65720, 65714, 65715, 65716, - 10403, 127005, 0, 41449, 0, 74028, 72019, 0, 119234, 1127, 455, 0, 0, - 72860, 3483, 0, 1989, 0, 69678, 9104, 0, 65375, 0, 0, 0, 1864, 0, 72810, - 8107, 2540, 0, 0, 11257, 128807, 119576, 0, 120999, 0, 73501, 8604, 0, 0, - 0, 0, 128270, 0, 0, 3115, 0, 10106, 120498, 118842, 101136, 0, 9631, 0, - 0, 0, 0, 0, 0, 0, 258, 129079, 0, 0, 0, 92292, 0, 70699, 0, 11478, 0, - 129640, 11522, 0, 8549, 0, 128430, 0, 0, 0, 0, 0, 0, 123140, 0, 0, 0, - 9221, 12590, 73048, 0, 0, 0, 67741, 111294, 12619, 0, 10154, 111266, - 74439, 2039, 0, 7446, 0, 111276, 10974, 458, 72831, 0, 0, 0, 11916, 0, 0, - 69671, 0, 121057, 12288, 0, 111288, 0, 111289, 983177, 0, 128199, 13080, - 0, 67828, 6610, 6030, 8059, 7508, 123170, 0, 0, 0, 0, 41278, 129393, - 118691, 128192, 41277, 64658, 984002, 101278, 6625, 983160, 19904, 0, 0, - 0, 0, 0, 0, 833, 0, 6369, 0, 0, 42664, 0, 0, 0, 0, 129765, 0, 6913, 933, - 1341, 68828, 6720, 0, 0, 983604, 0, 0, 7405, 128025, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 128037, 0, 0, 0, 0, 0, 0, 0, 127188, 0, 69708, + 9638, 0, 100878, 0, 0, 0, 74545, 128820, 128819, 75062, 128963, 0, 0, 0, + 11264, 43994, 0, 0, 0, 1311, 0, 0, 0, 0, 13068, 0, 0, 78164, 78155, 0, + 949, 0, 0, 0, 78176, 69709, 78177, 63828, 0, 0, 118629, 70282, 0, 0, 0, + 64822, 0, 6530, 983272, 0, 70493, 0, 129325, 0, 0, 4431, 118839, 127490, + 983760, 73667, 127986, 0, 10336, 10400, 0, 0, 92959, 0, 0, 0, 42270, + 128880, 6428, 0, 0, 0, 0, 43455, 0, 43526, 100888, 12835, 129501, 9493, + 0, 0, 11793, 0, 127897, 74394, 0, 10653, 0, 0, 0, 0, 6560, 7016, 74274, + 983627, 43556, 3929, 123615, 6614, 2768, 0, 65609, 0, 11811, 129696, 0, + 118615, 127513, 0, 6554, 0, 6305, 66283, 4675, 118826, 78552, 0, 0, + 74361, 0, 0, 68108, 0, 0, 92232, 0, 93022, 7392, 8230, 9365, 983742, 0, + 0, 0, 0, 42925, 0, 0, 0, 0, 229, 43834, 119884, 0, 43552, 119881, 119880, + 119883, 119882, 119877, 119876, 119879, 119878, 119873, 119872, 119875, + 119874, 0, 0, 0, 0, 0, 66352, 0, 0, 0, 128663, 0, 12239, 0, 0, 10432, + 12097, 0, 194815, 1233, 0, 0, 127200, 0, 66395, 0, 0, 129504, 0, 0, 0, 0, + 2388, 92555, 119868, 119871, 119870, 119865, 895, 92668, 119866, 64889, + 7143, 119863, 119862, 0, 0, 69983, 0, 74376, 3053, 2168, 0, 2047, 0, 0, + 0, 121279, 67985, 194801, 92600, 194803, 194802, 194805, 194804, 194807, + 194806, 129134, 194808, 0, 0, 0, 10473, 129331, 0, 194810, 129806, + 194812, 129813, 194814, 194813, 123195, 43528, 69673, 194791, 0, 194793, + 1912, 120779, 10306, 10370, 0, 0, 8867, 10250, 10258, 10274, 1635, + 120152, 0, 0, 0, 129379, 0, 0, 9919, 120148, 559, 128157, 41825, 127975, + 92989, 0, 74016, 194781, 6542, 41957, 7318, 0, 0, 41956, 65749, 65750, + 65751, 121323, 64487, 0, 0, 10223, 42062, 100640, 101195, 125044, 3668, + 65754, 43560, 12226, 0, 93973, 194784, 41959, 194786, 194785, 194788, + 43618, 65747, 10937, 2962, 0, 2953, 10062, 65745, 71457, 8921, 66013, + 129370, 0, 194769, 194768, 43409, 194770, 2949, 194772, 194775, 194774, + 2958, 194776, 74868, 2300, 2951, 120061, 0, 120043, 194778, 0, 120051, + 194779, 120056, 120065, 70798, 120048, 0, 120062, 120055, 71989, 100668, + 0, 0, 71985, 0, 71992, 70796, 127818, 0, 0, 64890, 0, 43630, 11336, 799, + 0, 10276, 10308, 10372, 917541, 0, 0, 10252, 10260, 68220, 55284, 125225, + 0, 10384, 0, 0, 0, 64523, 129744, 0, 65736, 0, 0, 0, 0, 0, 0, 0, 124912, + 43549, 65738, 42150, 65739, 0, 78195, 10288, 10320, 0, 10596, 129829, + 67673, 65045, 121283, 78198, 2049, 10098, 0, 122904, 127943, 10264, + 10280, 10312, 10376, 7013, 0, 69504, 0, 0, 66375, 0, 4862, 0, 6537, 0, + 128335, 3914, 92178, 93976, 9065, 64816, 0, 72218, 73026, 0, 0, 72139, + 4694, 11420, 4690, 0, 0, 983209, 4693, 0, 0, 0, 4688, 0, 0, 0, 0, 8238, + 3110, 0, 983939, 0, 6528, 0, 0, 0, 218, 0, 1520, 129577, 70039, 0, + 983594, 0, 120167, 78167, 10088, 6548, 100786, 0, 0, 0, 8888, 0, 124954, + 0, 0, 126593, 68876, 0, 0, 0, 0, 0, 0, 0, 4689, 43541, 77954, 120157, 0, + 120156, 78810, 120163, 0, 0, 0, 0, 78121, 0, 0, 11450, 0, 71900, 92613, + 0, 121317, 74622, 128720, 9244, 0, 0, 127763, 0, 0, 0, 0, 0, 0, 71084, 0, + 0, 0, 0, 10513, 0, 0, 0, 52, 119178, 0, 0, 93961, 0, 0, 4812, 0, 0, 0, 0, + 0, 0, 128425, 0, 6850, 0, 77959, 10170, 120450, 6544, 0, 0, 69782, + 121517, 0, 0, 65258, 10369, 0, 1585, 74014, 10249, 422, 1500, 2036, 986, + 0, 64394, 69502, 5599, 917981, 2494, 0, 0, 74021, 983896, 78203, 127808, + 0, 72871, 65102, 8961, 74305, 10243, 10245, 128170, 0, 0, 0, 0, 0, 2508, + 129591, 120440, 0, 120439, 0, 0, 0, 0, 0, 0, 64533, 983186, 0, 0, 74008, + 0, 0, 43375, 0, 2504, 0, 121313, 0, 983941, 6943, 0, 5859, 100677, 0, 0, + 72873, 983945, 0, 0, 983923, 92390, 2753, 1936, 2153, 67701, 2751, 12662, + 2763, 8953, 0, 10731, 0, 7052, 0, 0, 0, 0, 119899, 0, 66675, 0, 119897, + 0, 71053, 0, 119903, 0, 67829, 7899, 119901, 71119, 43798, 7072, 119902, + 122898, 11260, 0, 71059, 0, 0, 212, 0, 12350, 0, 0, 0, 0, 0, 128402, + 2759, 0, 0, 93064, 0, 0, 0, 1291, 0, 195065, 121318, 119911, 0, 119910, + 0, 12062, 0, 121216, 0, 129124, 121044, 120611, 8246, 128874, 0, 0, 0, 0, + 0, 73962, 0, 0, 43524, 0, 64426, 0, 0, 0, 0, 65664, 6693, 0, 0, 8674, 0, + 128812, 0, 11846, 70690, 121461, 69395, 4811, 0, 5986, 0, 3046, 74480, + 5985, 0, 0, 0, 0, 12187, 83148, 71041, 5984, 0, 93817, 4393, 126264, + 120206, 917599, 0, 0, 0, 93806, 93805, 0, 3491, 0, 67146, 0, 93819, 0, + 72428, 0, 0, 0, 124968, 41284, 126228, 0, 0, 41287, 0, 100689, 0, 0, + 92189, 0, 0, 219, 120874, 0, 0, 0, 68485, 119672, 43241, 0, 7147, 0, 0, + 0, 0, 0, 0, 64610, 11804, 0, 7149, 64808, 0, 0, 0, 92301, 73690, 0, 5253, + 0, 0, 0, 0, 129045, 983596, 11098, 68433, 0, 120484, 111009, 0, 0, 0, 0, + 0, 70801, 100779, 0, 128198, 9604, 0, 130036, 0, 0, 118941, 64392, 0, + 118684, 0, 0, 41974, 126262, 0, 0, 0, 129818, 0, 129833, 0, 0, 0, 0, 0, + 983240, 5308, 0, 290, 0, 125278, 128382, 2792, 0, 0, 120521, 0, 126237, + 0, 126099, 0, 0, 0, 0, 128503, 0, 0, 72816, 0, 0, 0, 92671, 0, 195061, + 42646, 7606, 2591, 73896, 0, 43513, 64482, 0, 0, 65270, 0, 0, 983701, + 9112, 0, 113763, 9490, 0, 0, 0, 0, 0, 9071, 0, 0, 0, 0, 74607, 0, 2535, + 65504, 43602, 0, 0, 71256, 2248, 0, 123147, 11845, 11006, 92315, 7807, + 8073, 0, 10629, 0, 74088, 0, 10823, 0, 113762, 8762, 0, 69689, 123536, + 43969, 65047, 10737, 3463, 67467, 129585, 66645, 0, 4815, 0, 0, 12345, + 983761, 0, 5195, 129808, 0, 66639, 0, 0, 66941, 0, 92759, 92385, 1262, 0, + 6561, 19939, 0, 0, 100772, 123160, 69269, 0, 100774, 0, 0, 0, 0, 0, 0, + 67511, 0, 0, 0, 0, 0, 0, 5702, 3655, 0, 8430, 0, 68807, 0, 0, 121137, 0, + 0, 5254, 0, 0, 124917, 0, 119107, 5129, 0, 70816, 0, 92280, 5614, 0, 0, + 11720, 0, 11721, 70804, 4798, 0, 120541, 66038, 4793, 67851, 7352, 0, 0, + 0, 0, 917600, 0, 300, 0, 0, 128575, 92660, 0, 0, 2562, 70156, 120856, 0, + 0, 92738, 0, 0, 127820, 71093, 0, 127969, 128221, 0, 3424, 93843, 0, 0, + 7074, 70873, 128519, 0, 0, 10832, 0, 0, 69852, 72430, 0, 0, 0, 0, 0, 176, + 0, 0, 0, 0, 0, 1215, 0, 5744, 0, 66440, 0, 0, 0, 42881, 0, 8980, 118988, + 67861, 8844, 7433, 0, 0, 4278, 124925, 0, 0, 70821, 9312, 4348, 0, + 128401, 65946, 0, 7087, 5255, 0, 661, 0, 0, 0, 0, 0, 0, 0, 121009, 73694, + 0, 123154, 0, 73688, 0, 127179, 3621, 83325, 66666, 72968, 0, 6562, + 12928, 0, 73991, 0, 0, 11383, 0, 0, 65588, 120739, 0, 0, 0, 0, 0, 0, 0, + 0, 11436, 2070, 64, 110824, 0, 10291, 10323, 10387, 0, 0, 0, 42008, 9708, + 42710, 0, 42011, 0, 92164, 0, 0, 1702, 1240, 128383, 6286, 9689, 111080, + 0, 0, 0, 1765, 0, 0, 92373, 0, 0, 0, 8401, 72991, 42014, 0, 67237, 0, 0, + 0, 0, 0, 0, 0, 70819, 0, 0, 0, 0, 12667, 0, 0, 10147, 0, 127568, 126483, + 72812, 0, 0, 0, 0, 123139, 128968, 0, 64947, 0, 0, 0, 0, 10435, 11462, 0, + 7084, 0, 0, 0, 0, 0, 126084, 0, 66662, 0, 0, 0, 0, 125134, 0, 0, 77990, + 263, 983747, 41288, 127953, 0, 78387, 74340, 70313, 129140, 0, 0, 0, + 42022, 71265, 0, 0, 0, 0, 0, 0, 42020, 123146, 0, 6992, 42019, 0, 41290, + 0, 12295, 126233, 71304, 0, 120984, 71300, 120631, 5954, 64931, 69385, + 100699, 198, 68453, 78129, 0, 121351, 0, 70818, 13165, 7107, 0, 42804, + 678, 72850, 118960, 0, 72985, 42806, 42808, 0, 0, 2097, 0, 120560, 70823, + 0, 0, 3892, 68632, 0, 6712, 917959, 0, 0, 0, 0, 123158, 69954, 0, 497, + 12100, 5953, 92667, 7796, 0, 43254, 0, 0, 11072, 5952, 1281, 43747, 0, + 69380, 10677, 0, 0, 0, 1859, 0, 72856, 3425, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 65199, 1738, 0, 122911, 0, 0, 0, 11101, 0, 0, 0, 0, 127002, 69651, + 4436, 194683, 73984, 6860, 70305, 64872, 128296, 0, 0, 0, 121377, 0, + 6862, 0, 6861, 983108, 0, 119109, 0, 70826, 319, 0, 43479, 73001, 0, 0, + 12849, 0, 7640, 71083, 9673, 0, 0, 0, 92670, 0, 92665, 113717, 41422, 0, + 100708, 74941, 3772, 0, 120660, 5011, 0, 0, 126587, 111315, 0, 0, 6677, + 111312, 0, 41427, 64419, 129445, 92262, 0, 70799, 0, 0, 0, 6106, 0, + 41271, 6760, 983758, 4534, 41270, 128876, 0, 0, 119561, 0, 0, 3671, 8976, + 123177, 0, 41275, 0, 128084, 55261, 0, 42013, 0, 568, 0, 41273, 0, 0, + 6728, 0, 9715, 0, 0, 121058, 74820, 0, 92268, 0, 194564, 11191, 43688, + 128023, 0, 0, 0, 126266, 0, 0, 0, 11958, 11165, 0, 125087, 0, 0, 66336, + 127944, 0, 0, 0, 0, 42858, 11789, 72878, 5557, 0, 69444, 7300, 0, 9467, + 5558, 64486, 43844, 0, 0, 6706, 10146, 0, 127185, 64566, 0, 0, 0, 0, 0, + 0, 0, 4546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64528, 123136, 6307, 128966, 0, + 7544, 0, 43469, 111317, 0, 10152, 0, 65091, 0, 0, 0, 0, 66652, 0, 0, 0, + 0, 64823, 5559, 0, 70711, 6702, 5556, 0, 0, 0, 0, 0, 11166, 0, 0, 5506, + 0, 1911, 73021, 0, 12598, 8845, 66698, 0, 73012, 123145, 0, 2098, 0, 0, + 0, 66622, 194678, 0, 0, 0, 9898, 0, 0, 7552, 0, 0, 0, 7223, 65723, 0, 0, + 0, 7024, 65728, 127155, 1210, 0, 65175, 10184, 65726, 43654, 0, 0, 0, 38, + 65729, 66669, 0, 917948, 0, 0, 0, 0, 0, 0, 74233, 73018, 119843, 42860, + 111301, 92576, 65721, 65722, 0, 0, 0, 0, 68843, 0, 68850, 0, 92388, + 92267, 128536, 65577, 42967, 0, 127518, 11650, 5013, 92663, 68810, 92568, + 118914, 6613, 74371, 0, 0, 0, 0, 64714, 71479, 0, 983797, 12120, 0, 0, + 43124, 0, 0, 78037, 69263, 0, 126219, 0, 0, 1837, 125086, 0, 0, 0, + 127210, 4952, 65718, 64405, 5504, 65720, 65714, 65715, 65716, 10403, + 127005, 0, 41449, 0, 74028, 72019, 0, 119234, 1127, 455, 0, 0, 72860, + 3483, 0, 1989, 0, 69678, 9104, 0, 65375, 0, 0, 0, 1864, 0, 72810, 8107, + 2540, 0, 0, 11257, 128807, 119576, 0, 120999, 0, 0, 8604, 0, 0, 0, 0, + 128270, 0, 0, 3115, 0, 10106, 120498, 118842, 101136, 0, 9631, 0, 0, 0, + 0, 0, 0, 0, 258, 129079, 0, 0, 0, 92292, 0, 70699, 0, 11478, 0, 129640, + 11522, 0, 8549, 0, 128430, 0, 0, 0, 0, 0, 0, 123140, 0, 0, 0, 9221, + 12590, 73048, 0, 0, 0, 67741, 111294, 12619, 0, 10154, 111266, 74439, + 2039, 0, 7446, 0, 111276, 10974, 458, 72831, 0, 0, 0, 11916, 0, 0, 69671, + 0, 121057, 12288, 0, 111288, 0, 111289, 983176, 0, 128199, 13080, 0, + 67828, 6610, 6030, 8059, 7508, 123170, 0, 0, 0, 0, 41278, 129393, 118691, + 128192, 41277, 64658, 984002, 101278, 6625, 983159, 19904, 0, 0, 0, 0, 0, + 0, 833, 0, 6369, 0, 0, 42664, 0, 0, 0, 0, 129765, 0, 6913, 933, 1341, + 68828, 6720, 0, 0, 983604, 0, 0, 7405, 128025, 0, 0, 0, 0, 0, 0, 0, 70704, 0, 0, 0, 0, 9716, 0, 0, 0, 70719, 0, 0, 0, 0, 72862, 70687, 0, 93987, 0, 0, 0, 70721, 9573, 0, 0, 111245, 83225, 83226, 6949, 126482, 74061, 83222, 83223, 83224, 0, 19962, 83219, 83220, 0, 111233, 0, 42830, 0, 111234, 74236, 66276, 0, 546, 72861, 0, 70661, 0, 472, 11083, 10319, 10383, 917971, 0, 83202, 83203, 3602, 83206, 41182, 83199, 83200, 69796, - 3790, 0, 10271, 10287, 684, 0, 0, 0, 83214, 4592, 83216, 83217, 83210, + 41183, 0, 10271, 10287, 684, 0, 0, 0, 83214, 4592, 83216, 83217, 83210, 11963, 43620, 83213, 0, 0, 83208, 83209, 0, 92623, 128559, 3415, 0, 121267, 0, 0, 123151, 43447, 0, 92212, 0, 418, 0, 0, 10295, 10327, 10391, 0, 83189, 83190, 83192, 83194, 83185, 83186, 83187, 83188, 120879, 0, - 41446, 70700, 118652, 0, 120809, 10599, 66892, 0, 0, 0, 0, 0, 129184, - 11437, 0, 0, 0, 0, 0, 0, 12624, 0, 41185, 72865, 69439, 8159, 0, 11686, - 71478, 65224, 0, 4655, 0, 0, 92183, 0, 10343, 10407, 0, 0, 0, 111221, 0, - 0, 0, 94057, 68201, 129574, 0, 983572, 72156, 42792, 5743, 10424, 0, 0, - 0, 0, 0, 8875, 111225, 0, 917991, 13117, 12847, 4651, 118917, 0, 962, 0, - 0, 2242, 42564, 0, 1582, 0, 5508, 0, 0, 0, 10801, 123602, 118798, 73705, - 0, 66911, 10439, 66891, 0, 0, 7860, 0, 906, 917985, 0, 6405, 64722, 0, + 41446, 70700, 118652, 0, 120809, 10599, 66892, 0, 0, 0, 0, 0, 0, 11437, + 0, 0, 0, 0, 0, 0, 12624, 0, 41185, 72865, 69439, 8159, 0, 11686, 71478, + 65224, 0, 4655, 0, 0, 92183, 0, 10343, 10407, 0, 0, 0, 111221, 0, 0, 0, + 94057, 68201, 129574, 0, 983572, 72156, 42792, 5743, 10424, 0, 0, 0, 0, + 0, 8875, 111225, 0, 917991, 13117, 12847, 4651, 118917, 0, 962, 0, 0, + 2242, 42564, 0, 1582, 0, 5508, 0, 0, 0, 10801, 123602, 118798, 73705, 0, + 66911, 10439, 66891, 0, 0, 7860, 0, 906, 917985, 0, 6405, 64722, 0, 83266, 64694, 83268, 917990, 1153, 83263, 64788, 83265, 0, 12626, 83260, 83261, 9964, 0, 0, 4642, 66574, 127886, 0, 0, 0, 0, 0, 9008, 100847, 0, 0, 0, 83248, 917976, 917993, 123173, 42842, 83244, 83245, 83247, 83239, @@ -28459,345 +28267,344 @@ static const unsigned int code_hash[] = { 41967, 83258, 83251, 83252, 83253, 8920, 0, 0, 83249, 83250, 0, 0, 43919, 0, 0, 0, 0, 128021, 0, 68113, 65196, 0, 0, 128472, 0, 10111, 64875, 0, 83491, 43998, 83232, 83233, 83234, 70691, 83228, 42149, 83230, 68508, 0, - 0, 0, 0, 0, 0, 0, 4110, 66005, 74034, 0, 0, 0, 66703, 0, 0, 983158, 6025, - 69242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70733, 0, 983043, 0, 73513, 0, 68817, - 0, 0, 0, 0, 0, 0, 43286, 0, 68765, 0, 0, 0, 0, 129871, 65144, 0, 0, - 83236, 65840, 0, 0, 10081, 0, 0, 983912, 0, 0, 0, 127394, 65882, 0, - 128758, 0, 0, 3605, 10985, 0, 0, 128872, 93972, 1745, 0, 73835, 0, 0, 0, - 0, 0, 0, 8806, 7023, 0, 0, 0, 70702, 70304, 0, 0, 0, 0, 0, 0, 0, 0, 348, - 10089, 0, 9017, 0, 0, 0, 0, 0, 0, 0, 67465, 0, 42515, 0, 0, 0, 0, 5391, - 983240, 110576, 0, 0, 5561, 0, 9429, 0, 67150, 7933, 5562, 0, 0, 0, 0, - 78039, 0, 0, 0, 0, 3979, 71248, 0, 0, 0, 68847, 0, 0, 118847, 65847, - 68836, 68838, 0, 10585, 0, 92676, 7334, 0, 0, 0, 831, 0, 0, 10716, 0, - 121325, 0, 12218, 0, 6939, 70697, 65042, 0, 0, 916, 0, 0, 11968, 0, - 122641, 5563, 0, 0, 128830, 5560, 41212, 41774, 0, 4497, 0, 0, 0, 9039, - 70678, 41776, 0, 8716, 3567, 119252, 0, 0, 74260, 0, 93954, 0, 0, 100827, - 0, 128879, 70072, 68355, 68357, 0, 0, 8634, 0, 0, 4209, 120702, 68832, - 65879, 68825, 68819, 68822, 0, 5679, 68813, 68815, 68811, 68812, 64697, - 5678, 11821, 68802, 93969, 0, 0, 0, 0, 70114, 0, 0, 0, 0, 0, 0, 0, 0, - 7782, 0, 0, 0, 0, 129977, 65711, 65712, 1216, 0, 69409, 5792, 0, 0, 0, 0, - 0, 12244, 0, 5683, 0, 120895, 121336, 43448, 70670, 0, 0, 5682, 10242, - 75043, 74520, 5680, 917568, 10001, 0, 0, 1449, 10241, 0, 70708, 0, 0, - 83180, 83182, 83183, 8584, 83176, 5567, 83178, 83179, 0, 5564, 42886, - 42884, 42882, 5565, 119022, 120881, 0, 65708, 65709, 5566, 0, 65704, - 65705, 11904, 42875, 0, 42873, 5942, 0, 0, 10361, 10425, 65697, 65698, - 65699, 0, 66598, 0, 64664, 10647, 78702, 78703, 78690, 78700, 0, 65701, - 1934, 0, 0, 0, 78710, 0, 78706, 78709, 6087, 78705, 78716, 78719, 78711, - 8043, 8950, 65694, 64485, 0, 10457, 0, 78724, 78725, 78722, 72332, 78720, - 78721, 0, 65515, 0, 10035, 13069, 0, 0, 127773, 0, 0, 0, 125207, 0, 0, - 1667, 0, 0, 42428, 110950, 0, 0, 41750, 0, 0, 93999, 0, 8101, 3610, - 113670, 41748, 110948, 0, 78394, 119208, 0, 0, 113691, 64549, 68359, 0, - 0, 65692, 92701, 0, 917960, 12896, 10456, 68298, 0, 0, 0, 0, 917962, 0, - 0, 113665, 70502, 0, 65687, 0, 0, 74009, 0, 113673, 8536, 70671, 0, - 78726, 0, 724, 0, 113675, 78749, 9975, 78746, 78747, 78744, 4175, 78741, - 78743, 78751, 939, 0, 128799, 983120, 0, 0, 0, 78763, 78764, 78760, - 78761, 78758, 78759, 78755, 8425, 0, 0, 0, 8188, 0, 0, 0, 0, 0, 6370, 0, - 7827, 68441, 75008, 0, 917943, 0, 118863, 0, 0, 0, 0, 121243, 73988, 0, - 113668, 0, 11012, 0, 43764, 178, 12972, 74620, 113671, 0, 113735, 0, - 66764, 0, 0, 65690, 72339, 0, 0, 917950, 9252, 0, 4652, 74259, 0, 917947, - 0, 0, 0, 10806, 0, 0, 70016, 0, 6723, 0, 0, 6993, 0, 0, 12855, 0, 0, - 11390, 0, 0, 0, 92503, 0, 0, 983162, 125270, 92627, 8278, 0, 4034, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 12750, 9350, 66037, 0, 0, 73700, 12747, 0, 0, - 128064, 8922, 74640, 0, 0, 43150, 0, 983090, 983088, 66779, 66777, 10813, - 2592, 43139, 0, 0, 118612, 0, 0, 71891, 0, 0, 0, 0, 0, 0, 71697, 0, - 128825, 1596, 0, 0, 0, 0, 6838, 66572, 0, 126574, 120627, 8092, 12805, - 41928, 0, 78406, 78409, 0, 0, 0, 9931, 0, 0, 0, 0, 0, 983778, 6107, 0, 0, - 0, 0, 128745, 0, 335, 127003, 64689, 0, 0, 5765, 0, 0, 119227, 6092, - 118851, 0, 8876, 83465, 74947, 83455, 129186, 83454, 70713, 0, 0, 126606, - 70121, 41602, 0, 92308, 74831, 0, 11783, 68482, 0, 0, 0, 0, 0, 0, 843, 0, - 71099, 0, 0, 41935, 0, 0, 0, 0, 1371, 0, 43818, 43159, 8069, 9579, 41938, - 41608, 0, 92444, 6242, 0, 0, 128595, 128244, 0, 92499, 8805, 1742, - 113722, 0, 8202, 72399, 0, 983198, 0, 0, 73882, 100809, 0, 43467, 123636, - 55290, 0, 1712, 5932, 0, 41762, 71982, 0, 11967, 1775, 0, 75009, 0, - 11868, 120387, 9458, 0, 126614, 0, 0, 43176, 101032, 101031, 42782, - 101033, 101036, 101035, 101038, 101037, 101040, 101039, 0, 0, 0, 0, - 101041, 5794, 92274, 2662, 101045, 101044, 8254, 101046, 10975, 101048, - 120625, 101050, 917977, 4108, 8478, 917982, 194790, 0, 92263, 917980, - 7507, 0, 43149, 0, 65031, 7961, 1636, 0, 65029, 0, 129665, 70188, 9674, - 0, 99, 98, 97, 101022, 92203, 4049, 101027, 43880, 7090, 101028, 0, - 101030, 66589, 0, 65310, 66593, 66599, 129805, 0, 0, 7447, 66594, 0, 0, - 0, 73920, 66595, 66596, 42570, 5593, 0, 0, 0, 0, 6061, 64854, 119, 118, - 117, 116, 0, 122, 121, 120, 111, 110, 109, 108, 115, 114, 113, 112, 103, - 102, 101, 100, 107, 106, 105, 104, 128504, 73974, 534, 0, 67713, 1536, - 73973, 73970, 0, 129671, 0, 6020, 12716, 0, 12744, 65143, 0, 13266, - 127813, 0, 0, 0, 127116, 0, 1212, 65560, 0, 8134, 42935, 12129, 73870, 0, - 1866, 0, 122948, 0, 0, 65073, 12059, 66585, 121391, 0, 0, 0, 5935, 1250, - 0, 8174, 9787, 6733, 9859, 9858, 9861, 9860, 101012, 1882, 1892, 6731, - 10882, 10795, 101018, 73911, 101020, 101019, 41169, 8939, 0, 120713, - 41170, 1454, 0, 65130, 69732, 0, 0, 129611, 41172, 7855, 0, 71472, 0, 0, - 0, 71691, 65901, 0, 0, 645, 100992, 100991, 100994, 100993, 100996, - 100995, 100998, 65587, 0, 10688, 0, 0, 7729, 0, 101001, 120518, 101003, - 66722, 101005, 101004, 68415, 101006, 4538, 101008, 43141, 0, 0, 73699, - 0, 0, 0, 71918, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71454, 0, 2381, 983752, 0, 0, - 69857, 100981, 0, 100983, 100982, 100985, 10856, 100987, 55255, 41478, - 8582, 10064, 0, 0, 0, 0, 64896, 0, 74609, 0, 128048, 10082, 11575, 0, 0, - 0, 917505, 0, 6145, 75020, 0, 92433, 71916, 83279, 43186, 0, 0, 83274, - 83276, 83277, 83278, 10191, 83271, 69633, 72353, 0, 0, 0, 0, 120090, - 120089, 7931, 8558, 917946, 0, 0, 0, 119145, 120081, 120084, 120083, - 120086, 71449, 120088, 7366, 7019, 75021, 0, 917951, 120078, 120077, - 120080, 8657, 100967, 8594, 100969, 100968, 0, 100970, 120072, 120071, 0, - 0, 43154, 0, 0, 11332, 0, 7728, 100978, 100977, 100980, 100979, 7851, 0, - 8375, 128662, 0, 0, 126095, 9085, 0, 0, 9327, 6160, 0, 0, 0, 0, 70698, - 74012, 0, 0, 4439, 121151, 100972, 100971, 100974, 100973, 100976, - 100975, 100956, 42524, 71220, 100957, 10826, 100959, 11296, 0, 0, 0, - 7504, 43161, 127868, 0, 64670, 0, 78056, 0, 11295, 0, 78053, 0, 0, 0, - 10902, 0, 0, 122650, 78068, 10472, 100954, 100953, 120215, 78062, 2371, - 78069, 118893, 259, 0, 0, 2402, 12157, 6440, 0, 100963, 100962, 100965, - 100964, 65380, 9103, 2278, 0, 0, 7301, 0, 10219, 0, 0, 0, 67718, 43178, - 0, 120214, 119362, 917974, 8613, 0, 126121, 917978, 917979, 121449, - 12005, 7353, 0, 1890, 129130, 0, 0, 0, 42815, 7991, 0, 10578, 0, 0, 0, 0, - 0, 0, 0, 111190, 120601, 42668, 9348, 0, 6164, 0, 0, 0, 7676, 0, 0, 0, 0, - 128732, 129422, 83443, 71096, 83444, 9175, 0, 78047, 9088, 73689, 0, - 1396, 0, 0, 11461, 71088, 127835, 92252, 0, 71090, 121185, 69872, 0, 0, - 0, 0, 74043, 119632, 0, 0, 0, 5928, 4525, 10658, 0, 1266, 10180, 64472, - 0, 12622, 0, 0, 0, 0, 127139, 13310, 773, 19933, 0, 0, 0, 0, 92205, 0, 0, - 0, 0, 5862, 7823, 0, 0, 0, 3250, 43991, 69687, 66649, 0, 0, 0, 0, 0, - 64673, 917963, 917964, 0, 0, 917967, 917968, 917965, 917966, 127791, - 75041, 3471, 917970, 64573, 882, 0, 119584, 0, 120772, 0, 0, 0, 92696, 0, - 0, 72988, 0, 3225, 0, 73729, 0, 0, 43173, 11752, 4381, 0, 0, 917945, - 11756, 11757, 917944, 917949, 42654, 127848, 118663, 0, 0, 5160, 1387, 0, - 917953, 0, 128933, 917956, 917957, 917954, 917955, 118595, 121082, - 917958, 10789, 68314, 0, 126521, 11143, 0, 0, 70669, 128904, 42179, 0, - 5931, 11744, 11215, 70676, 119245, 0, 0, 0, 77915, 10217, 64635, 128661, - 83292, 0, 0, 0, 0, 0, 41296, 11747, 41291, 0, 0, 0, 41294, 41282, 5923, - 120610, 0, 0, 0, 0, 66800, 5786, 68252, 42539, 119869, 119860, 0, 41474, - 0, 0, 0, 5934, 74572, 66583, 119231, 0, 94072, 64481, 0, 0, 0, 0, 67240, - 0, 0, 123201, 0, 5819, 0, 0, 0, 0, 0, 129387, 0, 0, 0, 67993, 1237, - 194749, 0, 0, 983557, 0, 0, 0, 0, 0, 0, 0, 69789, 11266, 69845, 0, 10506, - 194747, 0, 0, 0, 0, 43185, 194748, 100533, 100532, 100535, 10769, 100537, - 100536, 100539, 9753, 121035, 100540, 0, 0, 121433, 0, 100542, 6072, - 100544, 100543, 100546, 100545, 100548, 100547, 100550, 100549, 0, - 113744, 0, 0, 7222, 10283, 10315, 10379, 4996, 0, 129294, 66517, 0, - 10087, 127833, 74938, 0, 0, 83492, 7565, 42890, 0, 73520, 43180, 77928, - 74891, 77929, 43982, 100526, 622, 77926, 100527, 100530, 1602, 0, 0, 0, - 129559, 12160, 0, 10212, 77936, 194605, 12071, 43143, 77935, 917983, - 917984, 917989, 77932, 917987, 917988, 10255, 10263, 10279, 4194, 10375, - 93035, 0, 0, 12644, 127516, 917994, 75007, 110791, 67408, 110789, 11501, - 41177, 0, 0, 71912, 0, 0, 8715, 0, 41179, 0, 0, 0, 41176, 0, 41181, 0, - 8452, 121006, 13161, 0, 70503, 5921, 0, 2597, 0, 5922, 72128, 0, 74242, - 128374, 0, 0, 0, 0, 0, 0, 0, 127906, 0, 64944, 0, 0, 0, 0, 5924, 5920, - 129508, 6921, 78081, 74007, 78078, 8418, 11681, 43169, 10176, 0, 0, 0, - 78087, 10772, 65276, 5937, 1914, 78084, 11682, 0, 0, 0, 11685, 0, 100513, - 7772, 11680, 100514, 100517, 100516, 100519, 7417, 718, 100520, 70083, - 100500, 120718, 3235, 0, 43164, 0, 8018, 0, 0, 128708, 6937, 67672, - 128508, 0, 10067, 120849, 0, 0, 0, 118693, 0, 100491, 0, 100493, 100492, - 13116, 100494, 100497, 9945, 100499, 100498, 0, 0, 0, 0, 2059, 0, 100502, - 100501, 1431, 100503, 66565, 100505, 100508, 12804, 100510, 100509, - 78090, 3307, 78088, 78089, 0, 4544, 71228, 0, 0, 0, 78097, 11110, 66810, - 12882, 64511, 78094, 78100, 78102, 71226, 10141, 0, 78280, 65298, 4476, - 78109, 94005, 71216, 8907, 78105, 78106, 78103, 78104, 120898, 0, 10665, - 64616, 128944, 0, 127545, 69605, 83159, 83160, 4554, 0, 83155, 83156, - 83157, 83158, 0, 125123, 0, 72258, 129831, 0, 129815, 0, 43179, 0, 0, 0, - 717, 10754, 83168, 83169, 83162, 83163, 83164, 83165, 78282, 0, 0, 83161, - 68848, 10611, 72859, 126978, 71474, 129426, 127871, 0, 0, 0, 12820, - 110882, 0, 7009, 70103, 0, 0, 67848, 41173, 4574, 0, 0, 128338, 575, - 78110, 43456, 8563, 100469, 0, 0, 65565, 123598, 5936, 7290, 78117, - 78118, 74919, 308, 78113, 78114, 83151, 78123, 83153, 83154, 0, 0, 0, 0, - 67496, 5926, 68250, 78130, 78126, 78127, 78124, 78125, 42513, 0, 129026, - 0, 11651, 13093, 78135, 0, 100471, 0, 100473, 100472, 100475, 74048, - 100477, 71995, 100457, 100456, 43703, 13097, 0, 100460, 13283, 0, 0, - 125073, 3488, 5933, 10033, 983947, 0, 65570, 0, 12297, 0, 0, 0, 128517, - 42538, 0, 129293, 0, 100451, 0, 100453, 100452, 100455, 100454, 121221, - 0, 0, 7638, 0, 129193, 0, 43109, 7637, 0, 11213, 100461, 83355, 100463, - 100466, 100465, 0, 0, 7636, 0, 0, 0, 128848, 983087, 291, 0, 0, 2027, - 78141, 78142, 78136, 78137, 83481, 4640, 64713, 10224, 120429, 11183, - 83482, 120430, 0, 0, 0, 127148, 83479, 0, 0, 83488, 0, 0, 0, 0, 68837, - 5778, 0, 0, 0, 12680, 119130, 0, 67242, 93041, 0, 0, 0, 11552, 0, 127855, - 0, 70091, 0, 10172, 65453, 120408, 66014, 120410, 0, 4641, 11556, 64819, - 78269, 120416, 72341, 41469, 41467, 120412, 120415, 4646, 120425, 865, - 78275, 78274, 78273, 4645, 78271, 78270, 0, 983173, 7338, 0, 68840, 0, - 12565, 0, 0, 0, 195089, 119655, 195091, 195090, 2913, 13120, 128956, - 69493, 195097, 195096, 128019, 0, 71462, 0, 7916, 10485, 195098, 0, - 195100, 195099, 0, 67705, 128351, 195077, 195080, 129636, 129549, 195081, - 0, 0, 0, 10229, 10687, 826, 128081, 195082, 195085, 195084, 195087, - 195086, 0, 1808, 7848, 0, 0, 0, 0, 0, 0, 128897, 69255, 42942, 67704, 0, - 0, 0, 0, 42940, 0, 9144, 0, 0, 92992, 9840, 0, 0, 0, 0, 0, 0, 74448, - 83475, 0, 10962, 66904, 113718, 983188, 0, 0, 74537, 195072, 1792, - 195074, 195073, 78266, 195075, 0, 0, 12066, 0, 385, 4152, 0, 0, 0, 67397, - 0, 0, 0, 0, 43258, 0, 0, 13157, 0, 0, 3570, 0, 0, 0, 67252, 0, 71218, - 126631, 7879, 68247, 128579, 78914, 0, 70196, 0, 0, 8463, 7810, 917862, - 7839, 983878, 127768, 917860, 9691, 0, 129323, 0, 120385, 0, 917844, 0, - 10066, 0, 2175, 0, 0, 0, 8016, 0, 983072, 64831, 0, 126103, 0, 73493, - 1634, 68115, 94192, 11056, 0, 0, 0, 41165, 11328, 12450, 0, 41166, 0, - 12456, 0, 171, 67508, 12452, 917544, 12458, 12531, 0, 917853, 0, 74162, - 0, 0, 9969, 0, 12454, 74160, 42132, 110755, 78878, 110753, 3230, 73711, - 0, 0, 8932, 4399, 5810, 64534, 8415, 0, 110756, 110757, 74159, 0, 0, 960, - 74156, 6981, 92374, 12938, 9201, 0, 118713, 74904, 0, 72866, 92270, 0, 0, - 0, 129792, 5851, 73833, 5824, 0, 5844, 110848, 110849, 110846, 110847, - 4663, 0, 0, 0, 0, 0, 74085, 0, 0, 0, 0, 0, 92339, 0, 0, 5782, 67495, 0, - 0, 43796, 129639, 0, 195083, 125223, 128004, 0, 43861, 0, 0, 0, 92976, 0, - 0, 0, 4659, 0, 128894, 0, 0, 129386, 0, 11129, 2238, 329, 0, 92707, - 121416, 0, 0, 0, 69943, 67692, 42167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 69618, 43671, 0, 64701, 0, 0, 0, 93055, 1172, 125089, 6786, 43601, 0, - 74126, 0, 0, 0, 0, 0, 118695, 0, 0, 118804, 0, 66741, 5347, 125026, - 983663, 0, 0, 10588, 0, 0, 0, 0, 5343, 0, 0, 0, 5341, 0, 0, 74916, 5351, - 0, 0, 917884, 0, 92692, 0, 121148, 128916, 0, 0, 66785, 126256, 6638, 0, - 0, 271, 0, 917904, 0, 0, 12653, 67588, 0, 0, 0, 0, 128838, 11912, 128301, - 983665, 0, 11800, 0, 0, 11103, 0, 7340, 0, 110695, 0, 0, 70170, 0, 2423, - 0, 0, 0, 128136, 42705, 0, 0, 0, 11854, 0, 0, 0, 0, 4916, 0, 380, 10958, - 66563, 127790, 78284, 67587, 0, 12918, 0, 917897, 0, 917898, 917893, - 10684, 0, 125063, 92906, 0, 0, 8182, 0, 0, 129434, 0, 0, 0, 6859, 0, - 6630, 100405, 0, 123191, 0, 0, 0, 65876, 5535, 129892, 0, 0, 92609, 0, - 983348, 6477, 43795, 92217, 129571, 72163, 69496, 43848, 0, 0, 74256, - 2665, 11304, 43751, 0, 4970, 74353, 0, 8934, 0, 93996, 4492, 92908, - 65011, 0, 0, 92909, 1188, 7254, 1100, 0, 0, 0, 2912, 11749, 92643, 0, 0, - 65057, 0, 12343, 0, 78879, 0, 78880, 0, 0, 0, 70355, 0, 0, 11803, 0, 0, - 41450, 0, 100897, 0, 41451, 0, 0, 8273, 0, 3451, 0, 972, 41453, 68164, - 78876, 0, 92408, 73945, 43504, 2288, 78873, 9538, 78874, 128685, 0, - 129095, 0, 0, 0, 0, 11019, 0, 0, 121205, 0, 73007, 71365, 92716, 5927, 0, - 0, 0, 0, 128484, 0, 6073, 0, 0, 0, 6075, 93995, 282, 126510, 0, 74078, - 121459, 2206, 0, 0, 66791, 0, 3474, 0, 0, 0, 6081, 0, 127843, 74076, 0, - 0, 0, 128908, 0, 0, 0, 12623, 120273, 9120, 120275, 4665, 12628, 4670, - 120271, 120272, 0, 0, 121480, 958, 0, 0, 0, 4666, 0, 4915, 0, 4669, 0, 0, - 0, 4664, 0, 120550, 0, 0, 0, 0, 94023, 0, 917875, 8664, 11664, 0, 129327, - 11224, 0, 0, 1063, 119088, 120251, 9772, 7255, 8886, 0, 127932, 120257, - 120258, 120259, 120260, 42661, 71345, 120255, 119125, 120265, 120266, - 120267, 42721, 92407, 120262, 120263, 66788, 1017, 0, 118580, 505, 1447, - 0, 0, 70340, 66793, 65115, 42789, 128443, 0, 0, 123634, 0, 119195, 0, 0, - 11745, 7919, 0, 1641, 0, 0, 8966, 0, 0, 8743, 71870, 0, 67813, 0, 0, 0, - 123206, 0, 0, 128505, 10169, 71324, 0, 10068, 0, 120457, 120456, 120455, - 120454, 257, 43170, 13153, 0, 0, 0, 0, 0, 0, 6496, 19917, 5930, 128354, - 11033, 0, 0, 5622, 120436, 8477, 8474, 120433, 120432, 0, 0, 0, 41435, - 4352, 0, 2435, 0, 5621, 0, 4201, 8450, 4203, 4202, 4205, 4204, 120447, - 120446, 120445, 66792, 41440, 120442, 8473, 6373, 8469, 120438, 0, 4564, - 125206, 0, 0, 0, 8374, 73669, 0, 0, 66796, 0, 0, 0, 0, 0, 69297, 129762, - 5626, 43507, 11771, 0, 0, 0, 42614, 0, 5625, 0, 0, 0, 5623, 0, 0, 42623, - 64277, 69942, 0, 0, 120752, 0, 5817, 5629, 0, 7551, 10325, 5632, 69674, - 0, 0, 124946, 125194, 5628, 129766, 5631, 0, 0, 2400, 5627, 0, 0, 118786, - 74792, 0, 0, 0, 203, 129084, 74365, 0, 0, 0, 0, 83382, 83422, 0, 0, 554, - 0, 0, 0, 12182, 0, 64569, 110840, 73891, 0, 0, 0, 7689, 69798, 9323, - 10269, 10285, 10317, 175, 0, 0, 0, 0, 0, 1243, 42154, 0, 92387, 0, 0, - 43651, 0, 125021, 0, 9075, 118597, 0, 64777, 128570, 0, 0, 0, 0, 65255, - 0, 121142, 4490, 0, 6649, 120698, 12181, 0, 11977, 7249, 8366, 0, 7756, - 12342, 0, 51, 41516, 69432, 0, 9568, 71318, 456, 0, 10437, 1168, 9251, - 9082, 0, 0, 42781, 3866, 0, 41512, 0, 0, 68121, 41494, 0, 4660, 0, 10405, - 0, 0, 0, 0, 0, 73918, 119627, 110686, 41454, 12605, 0, 126611, 41455, - 917996, 983605, 0, 8214, 0, 100413, 129320, 41457, 983077, 0, 1969, - 127771, 0, 69554, 7413, 0, 69426, 10341, 43864, 78079, 5854, 0, 0, 0, - 129684, 72819, 0, 0, 73548, 0, 0, 8429, 0, 72328, 0, 6429, 0, 0, 0, 0, - 110688, 83417, 0, 917864, 120813, 83423, 1662, 125000, 0, 0, 917871, - 917868, 0, 0, 66, 65, 68, 67, 70, 69, 72, 71, 74, 73, 76, 75, 78, 77, 80, - 79, 82, 81, 84, 83, 86, 85, 88, 87, 90, 89, 0, 0, 7385, 70508, 1704, - 12993, 0, 0, 0, 0, 0, 0, 0, 0, 11353, 72207, 0, 0, 0, 0, 118831, 0, 0, 0, - 0, 0, 118719, 83364, 0, 0, 1289, 0, 0, 119583, 0, 65507, 0, 0, 0, 128042, - 0, 74409, 0, 0, 0, 0, 64793, 0, 0, 100843, 5675, 119239, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 6972, 70735, 0, 121108, 126217, 0, 0, 0, 0, 0, 110640, - 67687, 0, 0, 119634, 0, 43977, 111252, 129105, 0, 7412, 64671, 0, 1412, - 4594, 1391, 0, 8067, 12478, 110639, 78375, 110637, 10281, 110635, 0, 0, - 7960, 43271, 0, 12518, 69846, 0, 3566, 0, 0, 69864, 0, 0, 68021, 0, 0, 0, - 8223, 0, 4261, 121460, 68918, 0, 0, 121294, 113712, 0, 128046, 43419, - 72748, 92866, 10574, 0, 67691, 0, 0, 73785, 0, 78875, 128541, 0, 127366, - 0, 0, 0, 0, 6695, 65113, 324, 0, 128373, 40985, 0, 0, 0, 0, 0, 72307, - 43474, 0, 121190, 0, 0, 3420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110871, 9574, - 120684, 110870, 110814, 5204, 74774, 0, 11835, 0, 0, 983186, 0, 0, 0, 0, - 0, 0, 11750, 68898, 127004, 0, 0, 0, 0, 8130, 0, 0, 0, 121268, 0, 129443, - 0, 68455, 42863, 73839, 0, 0, 0, 92288, 0, 0, 0, 612, 110875, 110876, - 72231, 10538, 0, 1674, 0, 0, 0, 12280, 0, 540, 74550, 0, 66422, 8432, 0, - 11073, 0, 64316, 129894, 0, 7388, 0, 0, 0, 0, 126107, 0, 3359, 0, 0, - 67284, 0, 0, 65482, 129589, 0, 64742, 129304, 0, 124141, 74273, 0, 19941, - 0, 0, 0, 0, 9481, 65555, 0, 66628, 129126, 1195, 64898, 0, 0, 0, 2010, 0, - 0, 0, 0, 0, 0, 4360, 127009, 9739, 0, 72885, 0, 0, 0, 126265, 72200, 0, - 0, 120025, 72199, 0, 0, 65734, 0, 0, 129690, 13075, 0, 94063, 0, 43532, - 10837, 2492, 74516, 983075, 120882, 0, 0, 11813, 9649, 0, 119617, 5128, - 7377, 0, 65604, 0, 0, 6771, 1648, 7819, 0, 0, 0, 125192, 128131, 12709, - 6986, 0, 0, 0, 0, 0, 12581, 0, 5175, 0, 73806, 0, 128420, 0, 0, 77950, 0, - 0, 607, 0, 0, 128846, 119605, 67475, 129528, 65477, 0, 121130, 0, 8265, - 0, 0, 0, 5840, 42838, 0, 0, 68366, 0, 119255, 0, 0, 0, 127929, 0, 2550, - 121011, 6779, 70059, 0, 0, 0, 0, 0, 0, 5619, 65822, 0, 0, 0, 129392, - 5616, 11486, 0, 0, 0, 0, 5615, 0, 121319, 42380, 127958, 0, 66451, 74407, - 0, 11347, 0, 1026, 5620, 0, 0, 11350, 5617, 0, 0, 64639, 0, 0, 0, 1338, - 0, 0, 0, 4603, 0, 70715, 92484, 0, 9002, 0, 3974, 78213, 0, 0, 0, 0, 0, - 0, 75038, 66040, 70455, 0, 0, 0, 72982, 0, 0, 0, 0, 0, 118661, 0, 0, - 119105, 0, 0, 0, 0, 0, 128883, 0, 66897, 0, 0, 0, 42594, 0, 0, 0, 0, - 6714, 10083, 0, 121019, 0, 69976, 0, 0, 9073, 0, 64302, 0, 128286, 9725, - 0, 0, 121288, 73769, 121306, 0, 9570, 0, 11500, 2689, 917626, 0, 983813, - 66740, 0, 0, 0, 917623, 13286, 5500, 42598, 42596, 503, 0, 0, 917618, 0, - 0, 0, 0, 917615, 1652, 772, 6688, 8310, 0, 0, 72124, 0, 10194, 43542, 0, - 125054, 0, 6468, 68110, 0, 917606, 11767, 0, 0, 5836, 12358, 0, 0, 65624, - 12180, 0, 127994, 0, 43699, 0, 0, 72114, 43706, 0, 12362, 12435, 12360, - 0, 9020, 0, 12356, 8616, 0, 42924, 2227, 0, 0, 7315, 12354, 83097, 83098, - 83099, 2358, 83092, 83093, 83094, 0, 0, 83089, 83090, 0, 11759, 71723, 0, - 72834, 83109, 41423, 0, 83103, 83104, 83105, 42237, 110653, 70717, 72260, - 83102, 0, 67856, 0, 128534, 110657, 129354, 129194, 0, 64395, 0, 73008, - 120897, 74816, 0, 0, 0, 83088, 0, 0, 94064, 83083, 83085, 83086, 83087, - 83079, 83080, 2041, 9178, 0, 64870, 0, 83076, 74924, 0, 0, 0, 0, 0, - 78739, 0, 0, 0, 0, 0, 0, 3726, 0, 0, 0, 0, 0, 121432, 129457, 0, 0, 0, 0, - 0, 74901, 0, 0, 0, 0, 0, 124944, 113781, 0, 7410, 2669, 903, 0, 0, 0, - 127232, 74603, 0, 128264, 0, 128411, 0, 0, 11732, 0, 72797, 41448, 41461, - 124934, 0, 917558, 0, 8819, 0, 0, 74606, 92847, 121412, 74835, 0, 9168, - 65786, 0, 73691, 0, 67665, 0, 11758, 68425, 0, 0, 0, 128044, 0, 19924, - 67312, 0, 128755, 64551, 0, 8516, 0, 0, 7561, 983999, 74018, 0, 0, 0, 0, - 83074, 83075, 0, 11233, 83062, 83066, 3787, 83070, 83055, 41458, 83059, - 41463, 65308, 41459, 8683, 775, 0, 65584, 69923, 0, 110798, 110799, - 110796, 43440, 0, 0, 0, 3656, 0, 0, 0, 67694, 1599, 83138, 83139, 8514, - 8513, 83036, 83135, 83136, 110794, 110795, 83131, 83132, 0, 0, 0, 11684, - 10542, 9937, 83150, 0, 75037, 83145, 65730, 83147, 0, 8427, 83142, 55246, - 0, 0, 11497, 0, 0, 0, 119222, 0, 983598, 0, 10621, 0, 0, 129295, 119111, - 120745, 0, 0, 0, 11648, 83126, 83127, 42118, 83129, 83122, 65512, 83124, - 83125, 0, 0, 0, 83121, 74530, 128456, 0, 0, 0, 65724, 0, 0, 0, 65727, 0, - 0, 64963, 73830, 66042, 0, 0, 7875, 0, 0, 0, 129476, 0, 0, 536, 0, 0, 0, - 0, 65173, 129122, 0, 70331, 0, 0, 118598, 0, 129419, 0, 0, 0, 1687, 0, 0, - 0, 0, 0, 0, 10526, 0, 8323, 0, 83301, 11731, 73530, 0, 65460, 12242, 0, - 0, 10843, 11554, 0, 0, 8266, 0, 121101, 0, 0, 0, 0, 67667, 118694, - 119155, 0, 0, 119636, 67857, 0, 0, 0, 11755, 66305, 0, 0, 10917, 93979, - 113688, 0, 2040, 92596, 0, 0, 0, 0, 1227, 83119, 83120, 0, 0, 83115, - 74427, 11149, 4978, 83111, 1984, 11830, 83114, 128934, 74548, 118545, - 9373, 0, 0, 0, 0, 0, 0, 0, 0, 9237, 9390, 0, 0, 0, 0, 0, 1830, 0, 0, 0, - 0, 0, 128577, 983839, 68086, 0, 0, 0, 983059, 0, 983145, 0, 0, 0, 72197, - 55291, 11683, 0, 983659, 0, 11451, 0, 72714, 3731, 2359, 0, 67844, 0, - 121503, 548, 121502, 983250, 121405, 983253, 0, 66272, 0, 64678, 0, 9547, - 0, 0, 1614, 0, 0, 66307, 128092, 1358, 120871, 428, 0, 1466, 0, 10982, 0, - 0, 0, 407, 0, 0, 0, 0, 0, 0, 5804, 73464, 0, 0, 0, 70167, 9057, 42446, 0, - 125097, 0, 0, 8250, 10952, 8048, 0, 129155, 0, 118955, 0, 0, 118593, - 4407, 74648, 0, 0, 0, 8448, 92491, 0, 0, 12675, 12659, 0, 0, 983285, - 68077, 55273, 10766, 12012, 2386, 0, 9170, 0, 9123, 128194, 0, 0, 0, 0, - 129942, 0, 0, 0, 0, 0, 0, 8709, 0, 72383, 0, 0, 0, 0, 0, 0, 0, 128342, 0, - 577, 128610, 0, 0, 124999, 68087, 74840, 126474, 127036, 0, 0, 0, 1414, - 124963, 9683, 43486, 92231, 0, 2536, 0, 66330, 0, 0, 0, 0, 0, 0, 0, - 66317, 0, 66315, 66316, 0, 0, 0, 0, 0, 0, 0, 0, 66323, 66324, 0, 0, 3106, - 65917, 0, 2182, 0, 891, 0, 0, 42624, 0, 0, 8824, 65089, 128734, 10936, 0, - 0, 0, 0, 92688, 0, 0, 0, 0, 12745, 0, 0, 41285, 3547, 0, 0, 129877, 0, - 118701, 6089, 0, 68490, 120578, 4170, 1029, 127761, 0, 0, 42374, 917625, - 744, 917624, 0, 0, 0, 93046, 0, 3551, 0, 0, 4623, 0, 0, 12340, 0, 65136, - 0, 0, 0, 0, 0, 0, 0, 72291, 0, 0, 120778, 0, 11972, 0, 78757, 0, 122886, - 177, 122894, 0, 0, 0, 0, 55243, 0, 0, 0, 70172, 120249, 120242, 128027, - 120243, 0, 0, 0, 120237, 120245, 94079, 0, 0, 9136, 120240, 120614, - 41280, 0, 0, 0, 0, 74149, 128327, 0, 0, 66361, 12601, 72194, 64360, - 65163, 125241, 0, 0, 0, 0, 0, 5404, 43332, 3667, 7936, 12925, 0, 0, 0, 0, - 0, 10874, 65505, 0, 0, 0, 0, 128920, 983681, 0, 0, 0, 0, 0, 0, 0, 0, - 66677, 0, 0, 0, 70088, 74148, 0, 0, 72868, 120230, 120224, 74172, 0, 0, - 94096, 0, 128414, 120636, 0, 127519, 917609, 917616, 0, 128652, 0, 0, - 11441, 0, 3512, 0, 0, 43597, 0, 0, 72734, 68153, 41563, 0, 0, 129352, - 41544, 0, 0, 74927, 0, 129177, 0, 0, 0, 118908, 0, 78108, 67396, 73804, - 64711, 0, 0, 917610, 0, 0, 0, 11557, 127776, 0, 12079, 0, 0, 0, 0, - 128861, 0, 0, 0, 0, 0, 983201, 8103, 72303, 128174, 92486, 110698, 0, - 64587, 0, 0, 124961, 0, 0, 0, 126481, 0, 0, 0, 0, 0, 70348, 1450, 0, - 1340, 0, 0, 128970, 0, 0, 125117, 0, 0, 0, 0, 6539, 92948, 0, 128213, - 125060, 0, 0, 0, 3973, 0, 70504, 121193, 7982, 0, 0, 127194, 0, 0, 0, - 128408, 118968, 6417, 120619, 129748, 0, 0, 0, 129455, 4919, 65121, - 110872, 7755, 0, 0, 64548, 0, 1621, 0, 0, 0, 0, 0, 12188, 0, 0, 0, 0, - 5015, 0, 0, 42590, 70354, 1756, 0, 0, 0, 120694, 0, 0, 7555, 73874, 5408, - 2817, 1214, 69919, 0, 983126, 0, 0, 125055, 127195, 7957, 0, 0, 1056, - 74944, 0, 0, 0, 0, 7073, 74979, 0, 70853, 0, 110874, 0, 0, 2341, 126644, - 8484, 0, 0, 68322, 0, 8461, 67721, 42269, 0, 0, 43709, 43708, 9451, 7571, - 13073, 43847, 126647, 0, 983263, 0, 0, 0, 8781, 12894, 78134, 0, 78132, - 0, 0, 78184, 0, 11338, 120768, 0, 0, 0, 0, 0, 121367, 65021, 64795, - 74574, 0, 10047, 0, 0, 0, 0, 0, 0, 119181, 163, 576, 9895, 0, 0, 74591, - 0, 0, 66888, 0, 0, 0, 0, 0, 0, 7017, 128111, 0, 0, 129922, 0, 41591, - 11036, 65252, 120795, 129488, 0, 0, 0, 0, 0, 0, 8887, 0, 7295, 71203, 0, - 127221, 0, 0, 0, 0, 8755, 0, 0, 8147, 73127, 0, 0, 121348, 0, 129377, 0, - 74499, 0, 0, 0, 4619, 0, 6654, 123192, 0, 0, 0, 65689, 10128, 0, 129612, - 0, 0, 92651, 0, 2401, 0, 8792, 118546, 0, 74980, 0, 92246, 0, 0, 0, - 12886, 0, 66624, 0, 0, 74133, 65170, 0, 74135, 0, 0, 9984, 73867, 3010, - 0, 70349, 10698, 41475, 0, 119151, 0, 119152, 0, 0, 9100, 0, 0, 0, 78116, - 64780, 2001, 0, 55230, 0, 4052, 92856, 7626, 78080, 0, 0, 0, 41477, 0, 0, - 0, 43707, 74127, 0, 0, 0, 78086, 73758, 2335, 10663, 0, 0, 129872, - 119602, 0, 0, 70325, 0, 41443, 0, 0, 0, 9711, 1523, 0, 0, 41445, 0, 0, - 8567, 41442, 12821, 0, 0, 118978, 0, 65274, 0, 94082, 0, 127515, 0, 0, - 43446, 0, 0, 0, 0, 127985, 0, 10206, 127167, 6375, 2673, 0, 0, 0, 43219, - 129355, 0, 0, 0, 0, 129400, 11799, 101225, 68466, 0, 0, 0, 0, 0, 120736, - 0, 7203, 0, 0, 70361, 127213, 120615, 127216, 0, 0, 0, 0, 43121, 0, - 128366, 72161, 0, 129868, 0, 121260, 73781, 70365, 0, 68039, 70446, + 0, 0, 0, 0, 0, 0, 4110, 66005, 74034, 0, 0, 0, 66703, 0, 0, 983157, 6025, + 69242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70733, 0, 983043, 0, 0, 0, 68817, 0, 0, + 0, 0, 0, 0, 43286, 0, 68765, 0, 0, 0, 0, 129871, 65144, 0, 0, 83236, + 65840, 0, 0, 10081, 0, 0, 983912, 0, 0, 0, 127394, 65882, 0, 128758, 0, + 0, 3605, 10985, 0, 0, 128872, 93972, 1745, 0, 73835, 0, 0, 0, 0, 0, 0, + 8806, 7023, 0, 0, 0, 70702, 70304, 0, 0, 0, 0, 0, 0, 0, 0, 348, 10089, 0, + 9017, 0, 0, 0, 0, 0, 0, 0, 67465, 0, 42515, 0, 0, 0, 0, 5391, 983237, + 110576, 0, 0, 5561, 0, 9429, 0, 67150, 7933, 5562, 0, 0, 0, 0, 78039, 0, + 0, 0, 0, 3979, 71248, 0, 0, 0, 68847, 0, 0, 118847, 65847, 68836, 68838, + 0, 10585, 0, 92676, 7334, 0, 0, 0, 831, 0, 0, 10716, 0, 121325, 0, 12218, + 0, 6939, 70697, 65042, 0, 0, 916, 0, 0, 11968, 0, 122641, 5563, 0, 0, + 128830, 5560, 41212, 41774, 0, 4497, 0, 0, 0, 9039, 70678, 41776, 0, + 8716, 3567, 119252, 0, 0, 74260, 0, 93954, 0, 0, 100827, 0, 128879, + 70072, 68355, 68357, 0, 0, 8634, 0, 0, 4209, 120702, 68832, 65879, 68825, + 68819, 68822, 0, 5679, 68813, 68815, 68811, 68812, 64697, 5678, 11821, + 68802, 93969, 0, 0, 0, 0, 70114, 0, 0, 0, 0, 0, 0, 0, 0, 7782, 0, 0, 0, + 0, 129977, 65711, 65712, 1216, 0, 69409, 5792, 0, 0, 0, 0, 0, 12244, 0, + 5683, 0, 120895, 121336, 43448, 70670, 0, 0, 5682, 10242, 75043, 74520, + 5680, 917568, 10001, 0, 0, 1449, 10241, 0, 70708, 0, 0, 83180, 83182, + 83183, 8584, 83176, 5567, 83178, 83179, 0, 5564, 42886, 42884, 42882, + 5565, 119022, 120881, 0, 65708, 65709, 5566, 0, 65704, 65705, 11904, + 42875, 0, 42873, 5942, 0, 0, 10361, 10425, 65697, 65698, 65699, 0, 66598, + 0, 64664, 10647, 78702, 78703, 78690, 78700, 0, 65701, 1934, 0, 0, 0, + 78710, 0, 78706, 78709, 6087, 78705, 78716, 78719, 78711, 8043, 8950, + 65694, 64485, 0, 10457, 0, 78724, 78725, 78722, 72332, 78720, 78721, 0, + 65515, 0, 10035, 13069, 0, 0, 127773, 0, 0, 0, 125207, 0, 0, 1667, 0, 0, + 42428, 110950, 0, 0, 41750, 0, 0, 93999, 0, 8101, 3610, 113670, 41748, + 110948, 0, 78394, 119208, 0, 0, 113691, 64549, 68359, 0, 0, 65692, 92701, + 0, 917960, 12896, 10456, 68298, 0, 0, 0, 0, 917962, 0, 0, 113665, 70502, + 0, 65687, 0, 0, 74009, 0, 113673, 8536, 70671, 0, 78726, 0, 724, 0, + 113675, 78749, 9975, 78746, 78747, 78744, 4175, 78741, 78743, 78751, 939, + 0, 128799, 983119, 0, 0, 0, 78763, 78764, 78760, 78761, 78758, 78759, + 78755, 8425, 0, 0, 0, 8188, 0, 0, 0, 0, 0, 6370, 0, 7827, 68441, 75008, + 0, 917943, 0, 118863, 0, 0, 0, 0, 121243, 73988, 0, 113668, 0, 11012, 0, + 43764, 178, 12972, 74620, 113671, 0, 113735, 0, 66764, 0, 0, 65690, + 72339, 0, 0, 917950, 9252, 0, 4652, 74259, 0, 917947, 0, 0, 0, 10806, 0, + 0, 70016, 0, 6723, 0, 0, 6993, 0, 0, 12855, 0, 0, 11390, 0, 0, 0, 92503, + 0, 0, 983161, 125270, 92627, 8278, 0, 4034, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 12750, 9350, 66037, 0, 0, 73700, 12747, 0, 0, 128064, 8922, 74640, 0, 0, + 43150, 0, 983090, 983088, 66779, 66777, 10813, 2592, 43139, 0, 0, 118612, + 0, 0, 71891, 0, 0, 0, 0, 0, 0, 71697, 0, 128825, 1596, 0, 0, 0, 0, 6838, + 66572, 0, 126574, 120627, 8092, 12805, 41928, 0, 78406, 78409, 0, 0, 0, + 9931, 0, 0, 0, 0, 0, 983778, 6107, 0, 0, 0, 0, 128745, 0, 335, 127003, + 64689, 0, 0, 5765, 0, 0, 119227, 6092, 118851, 0, 8876, 83465, 74947, + 83455, 129186, 83454, 70713, 0, 0, 126606, 70121, 41602, 0, 92308, 74831, + 0, 11783, 68482, 0, 0, 0, 0, 0, 0, 843, 0, 71099, 0, 0, 41935, 0, 0, 0, + 0, 1371, 0, 43818, 43159, 8069, 9579, 41938, 41608, 0, 92444, 6242, 0, 0, + 128595, 128244, 0, 92499, 8805, 1742, 113722, 0, 8202, 72399, 0, 983197, + 0, 0, 73882, 100809, 0, 43467, 123636, 55290, 0, 1712, 5932, 0, 41762, + 71982, 0, 11967, 1775, 0, 75009, 0, 11868, 120387, 9458, 0, 126614, 0, 0, + 43176, 101032, 101031, 42782, 101033, 101036, 101035, 101038, 101037, + 101040, 101039, 0, 0, 0, 0, 101041, 5794, 92274, 2662, 101045, 101044, + 8254, 101046, 10975, 101048, 120625, 101050, 917977, 4108, 8478, 917982, + 194790, 0, 92263, 917980, 7507, 0, 43149, 0, 65031, 7961, 1636, 0, 65029, + 0, 129665, 70188, 9674, 0, 99, 98, 97, 101022, 92203, 4049, 101027, + 43880, 7090, 101028, 0, 101030, 66589, 0, 65310, 66593, 66599, 129805, 0, + 0, 7447, 66594, 0, 0, 0, 73920, 66595, 66596, 42570, 5593, 0, 0, 0, 0, + 6061, 64854, 119, 118, 117, 116, 0, 122, 121, 120, 111, 110, 109, 108, + 115, 114, 113, 112, 103, 102, 101, 100, 107, 106, 105, 104, 128504, + 73974, 534, 0, 67713, 1536, 73973, 73970, 0, 0, 0, 6020, 12716, 0, 12744, + 65143, 0, 13266, 127813, 0, 0, 0, 127116, 0, 1212, 65560, 0, 8134, 42935, + 12129, 73870, 0, 1866, 0, 0, 0, 0, 65073, 12059, 66585, 121391, 0, 0, 0, + 5935, 1250, 0, 8174, 9787, 6733, 9859, 9858, 9861, 9860, 101012, 1882, + 1892, 6731, 10882, 10795, 101018, 73911, 101020, 101019, 41169, 8939, 0, + 120713, 41170, 1454, 0, 65130, 69732, 0, 0, 129611, 41172, 7855, 0, + 71472, 0, 0, 0, 71691, 65901, 0, 0, 645, 100992, 100991, 100994, 100993, + 100996, 100995, 100998, 65587, 0, 10688, 0, 0, 7729, 0, 101001, 120518, + 101003, 66722, 101005, 101004, 68415, 101006, 4538, 101008, 43141, 0, 0, + 73699, 0, 0, 0, 71918, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71454, 0, 2381, 983752, + 0, 0, 69857, 100981, 0, 100983, 100982, 100985, 10856, 100987, 55255, + 41478, 8582, 10064, 0, 0, 0, 0, 64896, 0, 74609, 0, 128048, 10082, 11575, + 0, 0, 0, 917505, 0, 6145, 75020, 0, 92433, 71916, 83279, 43186, 0, 0, + 83274, 83276, 83277, 83278, 10191, 83271, 69633, 72353, 0, 0, 0, 0, + 120090, 120089, 7931, 8558, 917946, 0, 0, 0, 119145, 120081, 120084, + 120083, 120086, 71449, 120088, 7366, 7019, 75021, 0, 917951, 120078, + 120077, 120080, 8657, 100967, 8594, 100969, 100968, 0, 100970, 120072, + 120071, 0, 0, 43154, 0, 0, 11332, 0, 7728, 100978, 100977, 100980, + 100979, 7851, 0, 8375, 128662, 0, 0, 126095, 9085, 0, 0, 9327, 6160, 0, + 0, 0, 0, 70698, 74012, 0, 0, 4439, 121151, 100972, 100971, 100974, + 100973, 100976, 100975, 100956, 42524, 71220, 100957, 10826, 100959, + 11296, 0, 0, 0, 7504, 43161, 127868, 0, 64670, 0, 78056, 0, 11295, 0, + 78053, 0, 0, 0, 10902, 0, 0, 122650, 78068, 10472, 100954, 100953, + 120215, 78062, 2371, 78069, 118893, 259, 0, 0, 2402, 12157, 6440, 0, + 100963, 100962, 100965, 100964, 65380, 9103, 2278, 0, 0, 7301, 0, 10219, + 0, 0, 0, 67718, 43178, 0, 120214, 119362, 917974, 8613, 0, 126121, + 917978, 917979, 121449, 12005, 7353, 0, 1890, 129130, 0, 0, 0, 42815, + 7991, 0, 10578, 0, 0, 0, 0, 0, 0, 0, 111190, 120601, 42668, 9348, 0, + 6164, 0, 0, 0, 7676, 0, 0, 0, 0, 0, 129422, 83443, 71096, 83444, 9175, 0, + 78047, 9088, 73689, 0, 1396, 0, 0, 11461, 71088, 127835, 92252, 0, 71090, + 121185, 69872, 0, 0, 0, 0, 74043, 119632, 0, 0, 0, 5928, 4525, 10658, 0, + 1266, 10180, 64472, 0, 12622, 0, 0, 0, 0, 127139, 13310, 773, 19933, 0, + 0, 0, 0, 92205, 0, 0, 0, 0, 5862, 7823, 0, 0, 0, 3250, 43991, 69687, + 66649, 0, 0, 0, 0, 0, 64673, 917963, 917964, 0, 0, 917967, 917968, + 917965, 917966, 127791, 75041, 3471, 917970, 64573, 882, 0, 119584, 0, + 120772, 0, 0, 0, 92696, 0, 0, 72988, 0, 3225, 0, 73729, 0, 0, 43173, + 11752, 4381, 0, 0, 917945, 11756, 11757, 917944, 917949, 42654, 127848, + 118663, 0, 0, 5160, 1387, 0, 917953, 0, 128933, 917956, 917957, 917954, + 917955, 118595, 121082, 917958, 10789, 68314, 0, 126521, 11143, 0, 0, + 70669, 128904, 42179, 0, 5931, 11744, 11215, 70676, 119245, 0, 0, 0, + 77915, 10217, 64635, 128661, 83292, 0, 0, 0, 0, 0, 41296, 11747, 41291, + 0, 0, 0, 41294, 41282, 5923, 120610, 0, 0, 0, 0, 66800, 5786, 68252, + 42539, 119869, 119860, 0, 41474, 0, 0, 0, 5934, 74572, 66583, 119231, 0, + 94072, 64481, 0, 0, 0, 0, 67240, 0, 0, 123201, 0, 5819, 0, 0, 0, 0, 0, + 129387, 0, 0, 0, 67993, 1237, 194749, 0, 0, 983557, 0, 0, 0, 0, 0, 0, 0, + 69789, 11266, 69845, 0, 10506, 194747, 0, 0, 0, 0, 43185, 194748, 100533, + 100532, 100535, 10769, 100537, 100536, 100539, 9753, 121035, 100540, 0, + 0, 121433, 0, 100542, 6072, 100544, 100543, 100546, 100545, 100548, + 100547, 100550, 100549, 0, 113744, 0, 0, 7222, 10283, 10315, 10379, 4996, + 0, 129294, 66517, 0, 10087, 127833, 74938, 0, 0, 83492, 7565, 42890, 0, + 77931, 43180, 77928, 74891, 77929, 43982, 100526, 622, 77926, 100527, + 100530, 1602, 0, 0, 0, 129559, 12160, 0, 10212, 77936, 194605, 12071, + 43143, 77935, 917983, 917984, 917989, 77932, 917987, 917988, 10255, + 10263, 10279, 4194, 10375, 93035, 0, 0, 12644, 127516, 917994, 75007, + 110791, 67408, 110789, 11501, 41177, 0, 0, 71912, 0, 0, 8715, 0, 41179, + 0, 0, 0, 41176, 0, 41181, 0, 8452, 121006, 13161, 0, 70503, 5921, 0, + 2597, 0, 5922, 72128, 0, 74242, 128374, 0, 0, 0, 0, 0, 0, 0, 127906, 0, + 64944, 0, 0, 0, 0, 5924, 5920, 129508, 6921, 78081, 74007, 78078, 8418, + 11681, 43169, 10176, 0, 0, 0, 78087, 10772, 65276, 5937, 1914, 78084, + 11682, 0, 0, 0, 11685, 0, 100513, 7772, 11680, 100514, 100517, 100516, + 100519, 7417, 718, 100520, 70083, 100500, 120718, 3235, 0, 43164, 0, + 8018, 0, 0, 128708, 6937, 67672, 128508, 0, 10067, 120849, 0, 0, 0, + 118693, 0, 100491, 0, 100493, 100492, 13116, 100494, 100497, 9945, + 100499, 100498, 0, 0, 0, 0, 2059, 0, 100502, 100501, 1431, 100503, 66565, + 100505, 100508, 12804, 100510, 100509, 78090, 3307, 78088, 78089, 0, + 4544, 71228, 0, 0, 0, 78097, 11110, 66810, 12882, 64511, 78094, 78100, + 78102, 71226, 10141, 0, 78280, 65298, 4476, 78109, 94005, 71216, 8907, + 78105, 78106, 78103, 78104, 120898, 0, 10665, 64616, 128944, 0, 127545, + 69605, 83159, 83160, 4554, 0, 83155, 83156, 83157, 83158, 0, 125123, 0, + 72258, 129831, 0, 129815, 0, 43179, 0, 0, 0, 717, 10754, 83168, 83169, + 83162, 83163, 83164, 83165, 78282, 0, 0, 83161, 68848, 10611, 72859, + 126978, 71474, 129426, 127871, 0, 0, 0, 12820, 110882, 0, 7009, 70103, 0, + 0, 67848, 41173, 4574, 0, 0, 128338, 575, 78110, 43456, 8563, 100469, 0, + 0, 65565, 0, 5936, 7290, 78117, 78118, 74919, 308, 78113, 78114, 83151, + 78123, 83153, 83154, 0, 0, 0, 0, 67496, 5926, 68250, 78130, 78126, 78127, + 78124, 78125, 42513, 0, 129026, 0, 11651, 13093, 78135, 0, 100471, 0, + 100473, 100472, 100475, 74048, 100477, 71995, 100457, 100456, 43703, + 13097, 0, 100460, 13283, 0, 0, 125073, 3488, 5933, 10033, 983947, 0, + 65570, 0, 12297, 0, 0, 0, 128517, 42538, 0, 129293, 0, 100451, 0, 100453, + 100452, 100455, 100454, 121221, 0, 0, 7638, 0, 129193, 0, 43109, 7637, 0, + 11213, 100461, 83355, 100463, 100466, 100465, 0, 0, 7636, 0, 0, 0, + 128848, 983087, 291, 0, 0, 2027, 78141, 78142, 78136, 78137, 83481, 4640, + 64713, 10224, 120429, 11183, 83482, 120430, 0, 0, 0, 127148, 83479, 0, 0, + 83488, 0, 0, 0, 0, 68837, 5778, 0, 0, 0, 12680, 119130, 0, 67242, 93041, + 0, 0, 0, 11552, 0, 127855, 0, 70091, 0, 10172, 65453, 120408, 66014, + 120410, 0, 4641, 11556, 64819, 78269, 120416, 72341, 41469, 41467, + 120412, 120415, 4646, 120425, 865, 78275, 78274, 78273, 4645, 78271, + 78270, 0, 983172, 7338, 0, 68840, 0, 12565, 0, 0, 0, 195089, 119655, + 195091, 195090, 2913, 13120, 128956, 69493, 195097, 195096, 128019, 0, + 71462, 0, 7916, 10485, 195098, 0, 195100, 195099, 0, 67705, 128351, + 195077, 195080, 129636, 129549, 195081, 0, 0, 0, 10229, 10687, 826, + 128081, 195082, 195085, 195084, 195087, 195086, 0, 1808, 7848, 0, 0, 0, + 0, 0, 0, 128897, 69255, 42942, 67704, 0, 0, 0, 0, 42940, 0, 9144, 0, 0, + 92992, 9840, 0, 0, 0, 0, 0, 0, 74448, 83475, 0, 10962, 66904, 113718, + 983187, 0, 0, 74537, 195072, 1792, 195074, 195073, 78266, 195075, 0, 0, + 12066, 0, 385, 4152, 0, 0, 0, 67397, 0, 0, 0, 0, 43258, 0, 0, 13157, 0, + 0, 3570, 0, 0, 0, 67252, 0, 71218, 126631, 7879, 68247, 128579, 0, 0, + 70196, 0, 0, 8463, 7810, 917862, 7839, 983878, 127768, 917860, 9691, 0, + 129323, 0, 120385, 0, 917844, 0, 10066, 0, 2175, 0, 0, 0, 8016, 0, + 983072, 64831, 0, 126103, 0, 119171, 1634, 68115, 94192, 11056, 0, 0, 0, + 41165, 11328, 12450, 0, 41166, 0, 12456, 0, 171, 67508, 12452, 917544, + 12458, 12531, 0, 917853, 0, 74162, 0, 0, 9969, 0, 12454, 74160, 42132, + 110755, 78878, 110753, 3230, 73711, 0, 0, 8932, 4399, 5810, 64534, 8415, + 0, 110756, 110757, 74159, 0, 0, 960, 74156, 6981, 92374, 12938, 9201, 0, + 118713, 74904, 0, 72866, 92270, 0, 0, 0, 129792, 5851, 73833, 5824, 0, + 5844, 110848, 110849, 110846, 110847, 4663, 0, 0, 0, 0, 0, 74085, 0, 0, + 0, 0, 0, 92339, 0, 0, 5782, 67495, 0, 0, 43796, 129639, 0, 195083, + 125223, 128004, 0, 43861, 0, 0, 0, 92976, 0, 0, 0, 4659, 0, 129764, 0, 0, + 129386, 0, 11129, 2238, 329, 0, 92707, 121416, 0, 0, 0, 69943, 67692, + 42167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69618, 43671, 0, 64701, 0, 0, 0, + 93055, 1172, 125089, 6786, 43601, 0, 74126, 0, 0, 0, 0, 0, 118695, 0, 0, + 118804, 0, 66741, 5347, 0, 983663, 0, 0, 10588, 0, 0, 0, 0, 5343, 0, 0, + 0, 5341, 0, 0, 74916, 5351, 0, 0, 917884, 0, 92692, 0, 121148, 128916, 0, + 0, 66785, 126256, 6638, 0, 0, 271, 0, 917904, 0, 0, 12653, 67588, 0, 0, + 0, 0, 128838, 11912, 128301, 983665, 0, 11800, 0, 0, 11103, 0, 7340, 0, + 110695, 0, 0, 70170, 0, 2423, 0, 0, 0, 128136, 42705, 0, 0, 0, 11854, 0, + 0, 0, 0, 4916, 0, 380, 10958, 66563, 127790, 78284, 67587, 0, 12918, 0, + 917897, 0, 917898, 917893, 10684, 0, 125063, 92906, 0, 0, 8182, 0, 0, + 129434, 0, 0, 0, 6859, 0, 6630, 100405, 0, 123191, 0, 0, 0, 65876, 5535, + 129892, 0, 0, 92609, 0, 983345, 6477, 43795, 92217, 129571, 72163, 69496, + 43848, 0, 0, 74256, 2665, 11304, 43751, 0, 4970, 74353, 0, 8934, 0, + 93996, 4492, 92908, 65011, 0, 0, 92909, 1188, 7254, 1100, 0, 0, 0, 2912, + 11749, 92643, 0, 0, 65057, 0, 12343, 0, 78879, 0, 78880, 0, 0, 0, 70355, + 0, 0, 11803, 0, 0, 41450, 0, 100897, 0, 41451, 0, 0, 8273, 0, 3451, 0, + 972, 41453, 68164, 78876, 0, 92408, 73945, 43504, 2288, 78873, 9538, + 78874, 128685, 0, 129095, 0, 0, 0, 0, 11019, 0, 0, 121205, 0, 73007, + 71365, 92716, 5927, 0, 0, 0, 0, 128484, 0, 6073, 0, 0, 0, 6075, 93995, + 282, 126510, 0, 74078, 121459, 2206, 0, 0, 66791, 0, 3474, 0, 0, 0, 6081, + 0, 127843, 74076, 0, 0, 0, 128908, 0, 0, 0, 12623, 120273, 9120, 120275, + 4665, 12628, 4670, 120271, 120272, 0, 0, 121480, 958, 0, 0, 0, 4666, 0, + 4915, 0, 4669, 0, 0, 0, 4664, 0, 120550, 0, 0, 0, 0, 94023, 0, 917875, + 8664, 11664, 0, 129327, 11224, 0, 0, 1063, 119088, 120251, 9772, 7255, + 8886, 0, 127932, 120257, 120258, 120259, 120260, 42661, 71345, 120255, + 119125, 120265, 120266, 120267, 42721, 92407, 120262, 120263, 66788, + 1017, 0, 118580, 505, 1447, 0, 0, 70340, 66793, 65115, 42789, 128443, 0, + 0, 123634, 0, 119195, 0, 0, 11745, 7919, 0, 1641, 0, 0, 8966, 0, 0, 8743, + 71870, 0, 67813, 0, 0, 0, 123206, 0, 0, 128505, 10169, 71324, 0, 10068, + 0, 120457, 120456, 120455, 120454, 257, 43170, 13153, 0, 0, 0, 0, 0, 0, + 6496, 19917, 5930, 128354, 11033, 0, 0, 5622, 120436, 8477, 8474, 120433, + 120432, 0, 0, 0, 41435, 4352, 0, 2435, 0, 5621, 0, 4201, 8450, 4203, + 4202, 4205, 4204, 120447, 120446, 120445, 66792, 41440, 120442, 8473, + 6373, 8469, 120438, 0, 4564, 125206, 0, 0, 0, 8374, 73669, 0, 0, 66796, + 0, 0, 0, 0, 0, 69297, 129762, 5626, 43507, 11771, 0, 0, 0, 42614, 0, + 5625, 0, 0, 0, 5623, 0, 0, 42623, 64277, 69942, 0, 0, 120752, 0, 5817, + 5629, 0, 7551, 10325, 5632, 69674, 0, 0, 124946, 125194, 5628, 129766, + 5631, 0, 0, 2400, 5627, 0, 0, 118786, 74792, 0, 0, 0, 203, 129084, 74365, + 0, 0, 0, 0, 83382, 83422, 0, 0, 554, 0, 0, 0, 12182, 0, 64569, 110840, + 73891, 0, 0, 0, 7689, 69798, 9323, 10269, 10285, 10317, 175, 0, 0, 0, 0, + 0, 1243, 42154, 0, 92387, 0, 0, 43651, 0, 125021, 0, 9075, 118597, 0, + 64777, 128570, 0, 0, 0, 0, 65255, 0, 121142, 4490, 0, 6649, 120698, + 12181, 0, 11977, 7249, 8366, 0, 7756, 12342, 0, 51, 41516, 69432, 0, + 9568, 71318, 456, 0, 10437, 1168, 9251, 9082, 0, 0, 42781, 3866, 0, + 41512, 0, 0, 68121, 41494, 0, 4660, 0, 10405, 0, 0, 0, 0, 0, 73918, + 119627, 110686, 41454, 12605, 0, 126611, 41455, 917996, 983605, 0, 8214, + 0, 100413, 129320, 41457, 0, 0, 1969, 127771, 0, 69554, 7413, 0, 69426, + 10341, 43864, 78079, 5854, 0, 0, 0, 129684, 72819, 0, 0, 0, 0, 0, 8429, + 0, 72328, 0, 6429, 0, 0, 0, 0, 110688, 83417, 0, 917864, 120813, 83423, + 1662, 125000, 0, 0, 917871, 917868, 0, 0, 66, 65, 68, 67, 70, 69, 72, 71, + 74, 73, 76, 75, 78, 77, 80, 79, 82, 81, 84, 83, 86, 85, 88, 87, 90, 89, + 0, 0, 7385, 70508, 1704, 12993, 0, 0, 0, 0, 0, 0, 0, 0, 11353, 72207, 0, + 0, 0, 0, 118831, 0, 0, 0, 0, 0, 118719, 83364, 0, 0, 1289, 0, 0, 119583, + 0, 65507, 0, 0, 0, 128042, 0, 74409, 0, 0, 0, 0, 64793, 0, 0, 100843, + 5675, 119239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6972, 70735, 0, 121108, + 126217, 0, 0, 0, 0, 0, 110640, 67687, 0, 0, 119634, 0, 43977, 111252, + 129105, 0, 7412, 64671, 0, 1412, 4594, 1391, 0, 8067, 12478, 110639, + 78375, 110637, 10281, 110635, 0, 0, 7960, 43271, 0, 12518, 69846, 0, + 3566, 0, 0, 69864, 0, 0, 68021, 0, 0, 0, 8223, 0, 4261, 121460, 68918, 0, + 0, 121294, 113712, 0, 128046, 43419, 72748, 92866, 10574, 0, 67691, 0, 0, + 73785, 0, 78875, 128541, 0, 127366, 0, 0, 0, 0, 6695, 65113, 324, 0, + 128373, 40985, 0, 0, 0, 0, 0, 72307, 43474, 0, 121190, 0, 0, 3420, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 110871, 9574, 120684, 110870, 110814, 5204, 74774, + 0, 11835, 0, 0, 983185, 0, 0, 0, 0, 0, 0, 11750, 68898, 127004, 0, 0, 0, + 0, 8130, 0, 0, 0, 121268, 0, 129443, 0, 68455, 42863, 73839, 0, 0, 0, + 92288, 0, 0, 0, 612, 110875, 110876, 72231, 10538, 0, 1674, 0, 0, 0, + 12280, 0, 540, 74550, 0, 66422, 8432, 0, 11073, 0, 64316, 129894, 0, + 7388, 0, 0, 0, 0, 126107, 0, 3359, 0, 0, 67284, 0, 0, 65482, 129589, 0, + 64742, 129304, 0, 0, 74273, 0, 19941, 0, 0, 0, 0, 9481, 65555, 0, 66628, + 129126, 1195, 64898, 0, 0, 0, 2010, 0, 0, 0, 0, 0, 0, 4360, 127009, 9739, + 0, 72885, 0, 0, 0, 126265, 72200, 0, 0, 120025, 72199, 0, 0, 65734, 0, 0, + 129690, 13075, 0, 94063, 0, 43532, 10837, 2492, 74516, 983075, 120882, 0, + 0, 11813, 9649, 0, 119617, 5128, 7377, 0, 65604, 0, 0, 6771, 1648, 7819, + 0, 0, 0, 125192, 128131, 12709, 6986, 0, 0, 0, 0, 0, 12581, 0, 5175, 0, + 73806, 0, 128420, 0, 0, 77950, 0, 0, 607, 0, 0, 128846, 119605, 67475, + 129528, 65477, 0, 121130, 0, 8265, 0, 0, 0, 5840, 42838, 0, 0, 68366, 0, + 119255, 0, 0, 0, 127929, 0, 2550, 121011, 6779, 70059, 0, 0, 0, 0, 0, 0, + 5619, 65822, 0, 0, 0, 129392, 5616, 11486, 0, 0, 0, 0, 5615, 0, 121319, + 42380, 127958, 0, 66451, 74407, 0, 11347, 0, 1026, 5620, 0, 0, 11350, + 5617, 0, 0, 64639, 0, 0, 0, 1338, 0, 0, 0, 4603, 0, 70715, 92484, 0, + 9002, 0, 3974, 78213, 0, 0, 0, 0, 0, 0, 75038, 66040, 70455, 0, 0, 0, + 72982, 0, 0, 0, 0, 0, 118661, 0, 0, 119105, 0, 0, 0, 0, 0, 128883, 0, + 66897, 0, 0, 0, 42594, 0, 0, 0, 0, 6714, 10083, 0, 121019, 0, 69976, 0, + 0, 9073, 0, 64302, 0, 128286, 9725, 0, 0, 121288, 73769, 121306, 0, 9570, + 0, 11500, 2689, 917626, 0, 983813, 66740, 0, 0, 0, 917623, 13286, 5500, + 42598, 42596, 503, 0, 0, 917618, 0, 0, 0, 0, 917615, 1652, 772, 6688, + 8310, 0, 0, 72124, 0, 10194, 43542, 0, 125054, 0, 6468, 68110, 0, 917606, + 11767, 0, 0, 5836, 12358, 0, 0, 65624, 12180, 0, 127994, 0, 43699, 0, 0, + 72114, 43706, 0, 12362, 12435, 12360, 0, 9020, 0, 12356, 8616, 0, 42924, + 2227, 0, 0, 7315, 12354, 83097, 83098, 83099, 2358, 83092, 83093, 83094, + 0, 0, 83089, 83090, 0, 11759, 71723, 0, 72834, 83109, 41423, 0, 83103, + 83104, 83105, 42237, 110653, 70717, 72260, 83102, 0, 67856, 0, 128534, + 110657, 129354, 129194, 0, 64395, 0, 73008, 120897, 74816, 0, 0, 0, + 83088, 0, 0, 94064, 83083, 83085, 83086, 83087, 83079, 83080, 2041, 9178, + 0, 64870, 0, 83076, 74924, 0, 0, 0, 0, 0, 78739, 0, 0, 0, 0, 0, 0, 3726, + 0, 0, 0, 0, 0, 121432, 129457, 0, 0, 0, 0, 0, 74901, 0, 0, 0, 0, 0, + 124944, 113781, 0, 7410, 2669, 903, 0, 0, 0, 127232, 74603, 0, 128264, 0, + 128411, 0, 0, 11732, 0, 72797, 41448, 41461, 124934, 0, 917558, 0, 8819, + 0, 0, 74606, 92847, 121412, 74835, 0, 9168, 65786, 0, 73691, 0, 67665, 0, + 11758, 68425, 0, 0, 0, 128044, 0, 19924, 67312, 0, 128755, 64551, 0, + 8516, 0, 0, 7561, 983999, 74018, 0, 0, 0, 0, 83074, 83075, 0, 11233, + 83062, 83066, 3787, 83070, 83055, 41458, 83059, 41463, 65308, 41459, + 8683, 775, 0, 65584, 69923, 0, 110798, 110799, 110796, 43440, 0, 0, 0, + 3656, 0, 0, 0, 67694, 1599, 83138, 83139, 8514, 8513, 83036, 83135, + 83136, 110794, 110795, 83131, 83132, 0, 0, 0, 11684, 10542, 9937, 83150, + 0, 75037, 83145, 65730, 83147, 0, 8427, 83142, 55246, 0, 0, 11497, 0, 0, + 0, 119222, 0, 983598, 0, 10621, 0, 0, 129295, 119111, 120745, 0, 0, 0, + 11648, 83126, 83127, 42118, 83129, 83122, 65512, 83124, 83125, 0, 0, 0, + 83121, 74530, 128456, 0, 0, 0, 65724, 0, 0, 0, 65727, 0, 0, 64963, 73830, + 66042, 0, 0, 7875, 0, 0, 0, 129476, 0, 0, 536, 0, 0, 0, 0, 65173, 129122, + 0, 70331, 0, 0, 118598, 0, 129419, 0, 0, 0, 1687, 0, 0, 0, 0, 0, 0, + 10526, 0, 8323, 0, 83301, 11731, 0, 0, 65460, 12242, 0, 0, 10843, 11554, + 0, 0, 8266, 0, 121101, 0, 0, 0, 0, 67667, 118694, 119155, 0, 0, 119636, + 67857, 0, 0, 0, 11755, 66305, 0, 0, 10917, 93979, 113688, 0, 2040, 92596, + 0, 0, 0, 0, 1227, 83119, 83120, 0, 0, 83115, 83116, 11149, 4978, 83111, + 1984, 11830, 83114, 128934, 74548, 118545, 9373, 0, 0, 0, 0, 0, 0, 0, 0, + 9237, 9390, 0, 0, 0, 0, 0, 1830, 0, 0, 0, 0, 0, 128577, 983839, 68086, 0, + 0, 0, 983059, 0, 983144, 0, 0, 0, 72197, 55291, 11683, 0, 983659, 0, + 11451, 0, 72714, 3731, 2359, 0, 67844, 0, 121503, 548, 121502, 983247, + 121405, 983250, 0, 66272, 0, 64678, 0, 9547, 0, 0, 1614, 0, 0, 66307, + 128092, 1358, 120871, 428, 0, 1466, 0, 10982, 0, 0, 0, 407, 0, 0, 0, 0, + 0, 0, 5804, 73464, 0, 0, 0, 70167, 9057, 42446, 0, 125097, 0, 0, 8250, + 10952, 8048, 0, 129155, 0, 118955, 0, 0, 118593, 4407, 74648, 0, 0, 0, + 8448, 92491, 0, 0, 12675, 12659, 0, 0, 983282, 68077, 55273, 10766, + 12012, 2386, 0, 9170, 0, 9123, 128194, 0, 0, 0, 0, 129942, 0, 0, 0, 0, 0, + 0, 8709, 0, 72383, 0, 0, 0, 0, 0, 0, 0, 128342, 0, 577, 128610, 0, 0, + 124999, 68087, 74840, 126474, 127036, 0, 0, 0, 1414, 124963, 9683, 43486, + 92231, 0, 2536, 0, 66330, 0, 0, 0, 0, 0, 0, 0, 66317, 0, 66315, 66316, 0, + 0, 0, 0, 0, 0, 0, 0, 66323, 66324, 0, 0, 3106, 65917, 0, 2182, 0, 891, 0, + 0, 42624, 0, 0, 8824, 65089, 128734, 10936, 0, 0, 0, 0, 92688, 0, 0, 0, + 0, 12745, 0, 0, 41285, 3547, 0, 0, 129877, 0, 118701, 6089, 0, 68490, + 120578, 4170, 1029, 127761, 0, 0, 42374, 917625, 744, 917624, 0, 0, 0, + 93046, 0, 3551, 0, 0, 4623, 0, 0, 12340, 0, 65136, 0, 0, 0, 0, 0, 0, 0, + 72291, 0, 0, 120778, 0, 11972, 0, 78757, 0, 122886, 177, 122894, 0, 0, 0, + 0, 55243, 0, 0, 0, 70172, 120249, 120242, 128027, 120243, 0, 0, 0, + 120237, 120245, 94079, 0, 0, 9136, 120240, 120614, 41280, 0, 0, 0, 0, + 74149, 128327, 0, 0, 66361, 12601, 72194, 64360, 65163, 0, 0, 0, 0, 0, 0, + 5404, 43332, 3667, 7936, 12925, 0, 0, 0, 0, 0, 10874, 65505, 0, 0, 0, 0, + 128920, 983681, 0, 0, 0, 0, 0, 0, 0, 0, 66677, 0, 0, 0, 70088, 74148, 0, + 0, 72868, 120230, 120224, 74172, 0, 0, 94096, 0, 128414, 120636, 0, + 127519, 917609, 917616, 0, 128652, 0, 0, 11441, 0, 3512, 0, 0, 43597, 0, + 0, 72734, 68153, 41563, 0, 0, 129352, 41544, 0, 0, 74927, 0, 129177, 0, + 0, 0, 118908, 0, 78108, 67396, 73804, 64711, 0, 0, 917610, 0, 0, 0, + 11557, 127776, 0, 12079, 0, 0, 0, 0, 128861, 0, 0, 0, 0, 0, 983200, 8103, + 72303, 128174, 92486, 110698, 0, 64587, 0, 0, 124961, 0, 0, 0, 126481, 0, + 0, 0, 0, 0, 70348, 1450, 0, 1340, 0, 0, 128970, 0, 0, 125117, 0, 0, 0, 0, + 6539, 92948, 0, 128213, 125060, 0, 0, 0, 3973, 0, 70504, 121193, 7982, 0, + 0, 127194, 0, 0, 0, 128408, 118968, 6417, 120619, 129748, 0, 0, 0, + 129455, 4919, 65121, 110872, 7755, 0, 0, 64548, 0, 1621, 0, 0, 0, 0, 0, + 12188, 0, 0, 0, 0, 5015, 0, 0, 42590, 70354, 1756, 0, 0, 0, 120694, 0, 0, + 7555, 73874, 5408, 2817, 1214, 69919, 0, 983125, 0, 0, 125055, 127195, + 7957, 0, 0, 1056, 74944, 0, 0, 0, 0, 7073, 74979, 0, 70853, 0, 110874, 0, + 0, 2341, 126644, 8484, 0, 0, 68322, 0, 8461, 67721, 42269, 0, 0, 43709, + 43708, 9451, 7571, 13073, 43847, 126647, 0, 983260, 0, 0, 0, 8781, 12894, + 78134, 0, 78132, 0, 0, 78184, 0, 11338, 120768, 0, 0, 0, 0, 0, 121367, + 65021, 64795, 74574, 0, 10047, 0, 0, 0, 0, 0, 0, 119181, 163, 576, 9895, + 0, 0, 74591, 0, 0, 66888, 0, 0, 0, 0, 0, 0, 7017, 128111, 0, 0, 129922, + 0, 41591, 11036, 65252, 120795, 129488, 0, 0, 0, 0, 0, 0, 8887, 0, 7295, + 71203, 0, 127221, 0, 0, 0, 0, 8755, 0, 0, 8147, 73127, 0, 0, 121348, 0, + 129377, 0, 74499, 0, 0, 0, 4619, 0, 6654, 123192, 0, 0, 0, 65689, 10128, + 0, 129612, 0, 0, 92651, 0, 2401, 0, 8792, 118546, 0, 74980, 0, 92246, 0, + 0, 0, 12886, 0, 66624, 0, 0, 74133, 65170, 0, 74135, 0, 0, 9984, 73867, + 3010, 0, 70349, 10698, 41475, 0, 119151, 0, 119152, 0, 0, 9100, 0, 0, 0, + 78116, 64780, 2001, 0, 55230, 0, 4052, 92856, 7626, 78080, 0, 0, 0, + 41477, 0, 0, 0, 43707, 74127, 0, 0, 0, 78086, 73758, 2335, 10663, 0, 0, + 129872, 119602, 0, 0, 70325, 0, 41443, 0, 0, 0, 9711, 1523, 0, 0, 41445, + 0, 0, 8567, 41442, 12821, 0, 0, 118978, 0, 65274, 0, 94082, 0, 127515, 0, + 0, 43446, 0, 0, 0, 0, 127985, 0, 10206, 127167, 6375, 2673, 0, 0, 0, + 43219, 129355, 0, 0, 0, 0, 129400, 11799, 101225, 68466, 0, 0, 0, 0, 0, + 120736, 0, 7203, 0, 0, 70361, 127213, 120615, 127216, 0, 0, 0, 0, 43121, + 0, 128366, 72161, 0, 129868, 0, 121260, 73781, 70365, 0, 68039, 70446, 10057, 0, 0, 0, 101219, 120963, 101220, 2307, 0, 0, 0, 0, 73873, 0, 94035, 0, 0, 67469, 0, 129983, 7327, 0, 0, 440, 0, 0, 68613, 75059, 0, 0, 9957, 0, 0, 8046, 0, 119158, 0, 0, 68609, 0, 129405, 1521, 129460, 92256, @@ -28818,9 +28625,9 @@ static const unsigned int code_hash[] = { 120458, 5647, 120473, 7387, 0, 92675, 11477, 5646, 0, 11018, 0, 0, 0, 0, 0, 0, 69280, 128459, 126128, 5651, 0, 0, 0, 5648, 0, 120920, 0, 127517, 3545, 0, 6984, 0, 0, 0, 69414, 126613, 0, 10123, 0, 69274, 0, 0, 65020, - 74885, 119166, 0, 0, 0, 0, 0, 1140, 78426, 0, 0, 0, 122665, 8128, 9889, - 0, 0, 1815, 0, 890, 0, 3267, 0, 0, 0, 983686, 4410, 125081, 10576, 8102, - 0, 580, 74232, 0, 0, 0, 0, 0, 19938, 0, 0, 0, 0, 3298, 6546, 0, 0, 0, 0, + 74885, 119166, 0, 0, 0, 0, 0, 1140, 78426, 0, 0, 0, 0, 8128, 9889, 0, 0, + 1815, 0, 890, 0, 3267, 0, 0, 0, 983686, 4410, 125081, 10576, 8102, 0, + 580, 74232, 0, 0, 0, 0, 0, 19938, 0, 0, 0, 0, 3298, 6546, 0, 0, 0, 0, 6134, 41246, 0, 0, 0, 917770, 0, 6264, 0, 0, 0, 0, 0, 0, 69445, 0, 0, 0, 92697, 11915, 10377, 0, 10072, 0, 0, 2329, 0, 0, 0, 0, 0, 0, 0, 67498, 0, 101164, 0, 11201, 92708, 74769, 0, 13263, 0, 0, 92404, 126066, 69491, 0, @@ -28830,12 +28637,12 @@ static const unsigned int code_hash[] = { 11829, 68197, 0, 0, 11475, 70329, 3020, 42264, 0, 0, 0, 7098, 0, 0, 127967, 957, 42696, 0, 3016, 0, 0, 0, 0, 0, 121248, 92510, 3006, 4620, 0, 0, 0, 0, 129369, 129425, 0, 0, 0, 126246, 8626, 0, 128824, 0, 65377, 0, - 983103, 42920, 1698, 0, 64477, 0, 0, 43813, 100432, 100431, 100434, + 983102, 42920, 1698, 0, 64477, 0, 0, 43813, 100432, 100431, 100434, 100433, 100436, 70321, 100438, 100437, 100440, 100439, 0, 121024, 101177, 70327, 100441, 55252, 100443, 100442, 100445, 100444, 66641, 100446, 100449, 100448, 0, 100450, 113820, 74866, 64375, 0, 127850, 129477, 0, 0, 0, 0, 983799, 0, 0, 120827, 0, 0, 123637, 0, 0, 0, 101183, 8110, 100421, - 0, 100423, 5830, 100425, 100424, 100427, 73540, 100429, 100428, 42389, + 0, 100423, 5830, 100425, 100424, 100427, 100426, 100429, 100428, 42389, 78611, 121398, 0, 0, 0, 0, 0, 0, 0, 83342, 983954, 0, 127147, 119187, 2135, 11836, 0, 0, 78869, 42313, 5579, 0, 70384, 983082, 94002, 0, 5578, 11840, 73006, 42023, 69849, 5669, 92559, 0, 0, 68833, 917845, 128275, @@ -28871,76 +28678,75 @@ static const unsigned int code_hash[] = { 118626, 0, 0, 113710, 0, 73449, 68069, 0, 70332, 0, 5659, 0, 0, 66729, 5655, 0, 0, 0, 68806, 0, 128225, 66310, 73444, 0, 0, 70362, 0, 11609, 0, 126990, 92949, 10272, 10304, 10368, 74511, 594, 10244, 10248, 10256, - 983918, 122974, 0, 3467, 41010, 0, 3331, 946, 0, 1495, 13184, 74330, - 128242, 9562, 0, 123175, 0, 70036, 122976, 0, 0, 123176, 0, 0, 0, 5666, - 65227, 123174, 68419, 0, 11796, 123178, 0, 0, 10186, 123172, 7732, - 983755, 0, 0, 0, 5668, 83334, 0, 74645, 5670, 0, 0, 12741, 126619, - 123638, 5667, 19952, 120807, 113766, 12749, 0, 67757, 2263, 0, 0, 119260, - 129131, 9286, 83335, 128457, 83336, 70359, 0, 3571, 13247, 5874, 78279, - 73447, 68435, 78278, 78267, 78268, 0, 78265, 553, 113768, 0, 93053, 5829, - 0, 4587, 78285, 78299, 129699, 12746, 0, 70338, 0, 5633, 0, 94101, 94102, - 94099, 94100, 94105, 74856, 94103, 12742, 0, 983837, 0, 0, 0, 70330, 0, - 983830, 0, 0, 0, 12148, 0, 0, 0, 0, 0, 64938, 67234, 5634, 0, 0, 2146, 0, - 118880, 2425, 65182, 983832, 43636, 0, 83326, 328, 0, 68736, 0, 5636, - 123163, 5329, 0, 5638, 0, 7940, 0, 43223, 43760, 5635, 3373, 72424, - 78292, 74223, 73441, 68763, 78287, 9833, 0, 74208, 41635, 0, 77775, - 43040, 78297, 68778, 78295, 5639, 65603, 5660, 5640, 78303, 0, 78300, 0, - 68301, 0, 0, 78312, 0, 78310, 41625, 78308, 78309, 100731, 41780, 5642, - 100732, 100735, 100734, 4356, 100736, 100739, 12051, 70166, 100740, 5641, - 8259, 0, 0, 0, 119570, 0, 0, 121264, 983558, 0, 0, 0, 73890, 0, 0, 2800, - 11220, 5645, 64964, 8652, 83323, 0, 0, 121356, 5608, 128281, 119932, - 118562, 0, 0, 9000, 0, 83324, 92673, 129176, 0, 5613, 74267, 100721, - 100724, 5610, 100726, 92965, 100728, 5612, 100730, 10787, 0, 3615, - 123647, 5609, 78316, 78317, 78313, 78315, 5875, 5808, 0, 8186, 0, 74269, - 122977, 70004, 65874, 72422, 5807, 0, 66320, 5306, 12936, 0, 92970, - 127961, 0, 92583, 10211, 0, 0, 78871, 121063, 0, 129512, 0, 0, 0, 0, 0, - 74237, 0, 9133, 74262, 0, 92840, 0, 64779, 4672, 73529, 6185, 64776, 0, - 121266, 6499, 0, 0, 0, 92720, 0, 67494, 93791, 2534, 0, 93768, 93778, - 93762, 71849, 71869, 93781, 64583, 93761, 93780, 78922, 93787, 92443, - 128714, 71848, 93774, 66411, 93785, 71841, 93770, 93769, 0, 0, 0, 121168, - 68443, 69774, 931, 0, 125052, 6363, 2748, 0, 0, 0, 983603, 44011, 0, 0, - 100711, 119009, 100713, 100712, 100715, 65896, 100717, 78298, 100719, - 100718, 128836, 100720, 11649, 0, 0, 0, 0, 0, 42341, 65284, 0, 0, 12884, - 0, 7907, 127255, 0, 0, 0, 0, 68779, 0, 68786, 0, 100691, 0, 100693, - 100692, 42851, 100694, 100697, 100696, 92276, 78226, 66393, 100700, 0, - 93773, 93776, 93777, 100702, 78301, 100704, 100703, 42415, 78307, 4542, - 69909, 94022, 100709, 0, 0, 0, 0, 42454, 11565, 7949, 124939, 0, 0, - 42494, 3073, 0, 0, 42302, 0, 126553, 70810, 0, 72401, 0, 0, 0, 129319, - 4877, 100681, 100684, 100683, 10548, 100685, 100688, 100687, 100690, - 64798, 70805, 5346, 0, 126570, 124135, 4874, 124136, 0, 0, 0, 0, 65884, - 0, 0, 0, 11378, 0, 42785, 0, 3251, 11203, 0, 0, 0, 69568, 11052, 0, 5342, - 8317, 0, 0, 5340, 0, 122970, 128599, 0, 129538, 0, 128395, 0, 128510, 0, - 0, 9142, 0, 0, 0, 10938, 0, 0, 1182, 127381, 4829, 0, 0, 72438, 529, 0, - 0, 0, 10586, 10790, 10839, 121427, 41593, 100669, 0, 118532, 41594, 225, - 66418, 0, 0, 983969, 11376, 0, 41596, 0, 64975, 0, 0, 11084, 3194, 0, - 78306, 78305, 0, 0, 0, 11324, 0, 0, 8420, 127756, 128844, 0, 41338, - 129683, 11485, 0, 41322, 66605, 100671, 0, 100673, 100672, 100675, 5161, - 41330, 100676, 100679, 100678, 100659, 100658, 0, 100660, 0, 100485, - 12361, 0, 12359, 983559, 41369, 66412, 12191, 0, 0, 0, 0, 78221, 41376, - 0, 9870, 0, 41385, 65824, 100651, 11938, 100653, 100652, 100655, 100654, - 42678, 100656, 0, 64649, 0, 0, 0, 0, 0, 983967, 100662, 100661, 100664, - 66334, 100666, 70280, 832, 100667, 2240, 78473, 66007, 78471, 65703, 0, - 0, 0, 12357, 0, 41395, 0, 0, 0, 0, 0, 0, 983466, 0, 41114, 65466, 0, - 983844, 6024, 0, 9979, 0, 0, 0, 0, 0, 0, 0, 4285, 0, 0, 4230, 0, 7367, 0, - 92353, 7563, 42376, 0, 128532, 0, 0, 0, 0, 67500, 0, 78466, 0, 12208, - 128138, 0, 66311, 71309, 0, 41130, 78286, 0, 0, 70047, 0, 6022, 0, 0, 0, - 0, 0, 41125, 0, 66453, 0, 41107, 0, 41121, 5300, 129588, 0, 0, 128759, - 74801, 70855, 2074, 73456, 0, 0, 12453, 0, 0, 0, 0, 68159, 12457, 0, 0, - 66278, 0, 0, 0, 0, 0, 66637, 12455, 0, 128473, 0, 12449, 0, 71224, 0, 0, - 66908, 0, 10165, 0, 119249, 113715, 0, 128223, 0, 0, 0, 0, 4993, 0, 6168, - 74033, 4995, 0, 69459, 77756, 4639, 0, 72223, 0, 73478, 0, 0, 0, 73486, - 66991, 0, 0, 0, 0, 0, 0, 83310, 0, 0, 0, 0, 0, 0, 0, 0, 129594, 4953, 0, - 0, 0, 0, 83311, 0, 73453, 65688, 0, 10125, 3517, 0, 0, 0, 65094, 74791, - 78262, 10627, 66333, 78256, 78257, 83304, 78253, 0, 71317, 64923, 0, - 65208, 10608, 78263, 78264, 0, 0, 0, 65883, 0, 0, 74914, 0, 0, 6853, 0, - 0, 12912, 119012, 0, 128191, 0, 0, 129586, 0, 1290, 0, 0, 0, 0, 113719, - 71442, 0, 0, 8978, 0, 119135, 120979, 10527, 71079, 0, 0, 0, 0, 0, 0, - 5336, 0, 0, 6934, 0, 10780, 0, 0, 78767, 0, 0, 0, 347, 0, 0, 78775, - 64675, 41582, 78774, 78771, 68094, 74903, 78769, 69221, 69657, 0, 0, - 11153, 120981, 78526, 0, 0, 0, 0, 41584, 0, 69464, 0, 0, 0, 0, 43510, + 983918, 0, 0, 3467, 41010, 0, 3331, 946, 0, 1495, 13184, 74330, 128242, + 9562, 0, 123175, 0, 70036, 0, 0, 0, 123176, 0, 0, 0, 5666, 65227, 123174, + 68419, 0, 11796, 123178, 0, 0, 10186, 123172, 7732, 983755, 0, 0, 0, + 5668, 83334, 0, 74645, 5670, 0, 0, 12741, 126619, 123638, 5667, 19952, + 120807, 113766, 12749, 0, 67757, 2263, 0, 0, 119260, 129131, 9286, 83335, + 128457, 83336, 70359, 0, 3571, 13247, 5874, 78279, 73447, 68435, 78278, + 78267, 78268, 0, 78265, 553, 113768, 0, 93053, 5829, 0, 4587, 78285, + 78299, 129699, 12746, 0, 70338, 0, 5633, 0, 94101, 94102, 94099, 94100, + 94105, 74856, 94103, 12742, 0, 983837, 0, 0, 0, 70330, 0, 983830, 0, 0, + 0, 12148, 0, 0, 0, 0, 0, 64938, 67234, 5634, 0, 0, 2146, 0, 118880, 2425, + 65182, 983832, 43636, 0, 83326, 328, 0, 68736, 0, 5636, 123163, 5329, 0, + 5638, 0, 7940, 0, 43223, 43760, 5635, 3373, 72424, 78292, 74223, 73441, + 68763, 78287, 9833, 0, 74208, 41635, 0, 77775, 43040, 78297, 68778, + 78295, 5639, 65603, 5660, 5640, 78303, 0, 78300, 0, 68301, 0, 0, 78312, + 0, 78310, 41625, 78308, 78309, 100731, 41780, 5642, 100732, 100735, + 100734, 4356, 100736, 100739, 12051, 70166, 100740, 5641, 8259, 0, 0, 0, + 119570, 0, 0, 121264, 983558, 0, 0, 0, 73890, 0, 0, 2800, 11220, 5645, + 64964, 8652, 83323, 0, 0, 121356, 5608, 128281, 119932, 118562, 0, 0, + 9000, 0, 83324, 92673, 129176, 0, 5613, 74267, 100721, 100724, 5610, + 100726, 92965, 100728, 5612, 100730, 10787, 0, 3615, 123647, 5609, 78316, + 78317, 78313, 78315, 5875, 5808, 0, 8186, 0, 74269, 0, 70004, 65874, + 72422, 5807, 0, 66320, 5306, 12936, 0, 92970, 127961, 0, 92583, 10211, 0, + 0, 78871, 121063, 0, 129512, 0, 0, 0, 0, 0, 74237, 0, 9133, 74262, 0, + 92840, 0, 64779, 4672, 0, 6185, 64776, 0, 121266, 6499, 0, 0, 0, 92720, + 0, 67494, 93791, 2534, 0, 93768, 93778, 93762, 71849, 71869, 93781, + 64583, 93761, 93780, 93760, 93787, 92443, 128714, 71848, 93774, 66411, + 93785, 71841, 93770, 93769, 0, 0, 0, 121168, 68443, 69774, 931, 0, + 125052, 6363, 2748, 0, 0, 0, 983603, 44011, 0, 0, 100711, 119009, 100713, + 100712, 100715, 65896, 100717, 78298, 100719, 100718, 128836, 100720, + 11649, 0, 0, 0, 0, 0, 42341, 65284, 0, 0, 12884, 0, 7907, 127255, 0, 0, + 0, 0, 68779, 0, 68786, 0, 100691, 0, 100693, 100692, 42851, 100694, + 100697, 100696, 92276, 78226, 66393, 100700, 0, 93773, 93776, 93777, + 100702, 78301, 100704, 100703, 42415, 78307, 4542, 69909, 94022, 100709, + 0, 0, 0, 0, 42454, 11565, 7949, 124939, 0, 0, 42494, 3073, 0, 0, 42302, + 0, 126553, 70810, 0, 72401, 0, 0, 0, 129319, 4877, 100681, 100684, + 100683, 10548, 100685, 100688, 100687, 100690, 64798, 70805, 5346, 0, + 126570, 0, 4874, 0, 0, 0, 0, 0, 65884, 0, 0, 0, 11378, 0, 42785, 0, 3251, + 11203, 0, 0, 0, 69568, 11052, 0, 5342, 8317, 0, 0, 5340, 0, 0, 128599, 0, + 129538, 0, 128395, 0, 128510, 0, 0, 9142, 0, 0, 0, 10938, 0, 0, 1182, + 127381, 4829, 0, 0, 72438, 529, 0, 0, 0, 10586, 10790, 10839, 121427, + 41593, 100669, 0, 0, 41594, 225, 66418, 0, 0, 983969, 11376, 0, 41596, 0, + 64975, 0, 0, 11084, 3194, 0, 78306, 78305, 0, 0, 0, 11324, 0, 0, 8420, + 127756, 128844, 0, 41338, 129683, 11485, 0, 41322, 66605, 100671, 0, + 100673, 100672, 100675, 5161, 41330, 100676, 100679, 100678, 100659, + 100658, 0, 100660, 0, 100485, 12361, 0, 12359, 983559, 41369, 66412, + 12191, 0, 0, 0, 0, 78221, 41376, 0, 9870, 0, 41385, 65824, 100651, 11938, + 100653, 100652, 100655, 100654, 42678, 100656, 0, 64649, 0, 0, 0, 0, 0, + 983967, 100662, 100661, 100664, 66334, 100666, 70280, 832, 100667, 2240, + 78473, 66007, 78471, 65703, 0, 0, 0, 12357, 0, 41395, 0, 0, 0, 0, 0, 0, + 983463, 0, 41114, 65466, 0, 983844, 6024, 0, 9979, 0, 0, 0, 0, 0, 0, 0, + 4285, 0, 0, 4230, 0, 7367, 0, 92353, 7563, 42376, 0, 128532, 0, 0, 0, 0, + 67500, 0, 78466, 0, 12208, 128138, 0, 66311, 71309, 0, 41130, 78286, 0, + 0, 70047, 0, 6022, 0, 0, 0, 0, 0, 41125, 0, 66453, 0, 41107, 0, 41121, + 5300, 129588, 0, 0, 0, 74801, 70855, 2074, 73456, 0, 0, 12453, 0, 0, 0, + 0, 68159, 12457, 0, 0, 66278, 0, 0, 0, 0, 0, 66637, 12455, 0, 128473, 0, + 12449, 0, 71224, 0, 0, 66908, 0, 10165, 0, 119249, 113715, 0, 128223, 0, + 0, 0, 0, 4993, 0, 6168, 74033, 4995, 0, 69459, 77756, 4639, 0, 72223, 0, + 0, 0, 0, 0, 0, 66991, 0, 0, 0, 0, 0, 0, 83310, 0, 0, 0, 0, 0, 0, 0, 0, + 129594, 4953, 0, 0, 0, 0, 83311, 0, 73453, 65688, 0, 10125, 3517, 0, 0, + 0, 65094, 74791, 78262, 10627, 66333, 78256, 78257, 83304, 78253, 0, + 71317, 64923, 0, 65208, 10608, 78263, 78264, 0, 0, 0, 65883, 0, 0, 74914, + 0, 0, 6853, 0, 0, 12912, 119012, 0, 128191, 0, 0, 129586, 0, 1290, 0, 0, + 0, 0, 113719, 71442, 0, 0, 8978, 0, 119135, 120979, 10527, 71079, 0, 0, + 0, 0, 0, 0, 5336, 0, 0, 6934, 0, 10780, 0, 0, 78767, 0, 0, 0, 347, 0, 0, + 78775, 64675, 41582, 78774, 78771, 68094, 74903, 78769, 69221, 69657, 0, + 0, 11153, 120981, 78526, 0, 0, 0, 0, 41584, 0, 69464, 0, 0, 0, 0, 43510, 66661, 0, 66306, 78791, 66384, 0, 6609, 0, 0, 11319, 0, 66984, 0, 41730, 0, 0, 127920, 0, 65172, 41728, 41721, 0, 0, 0, 41203, 0, 0, 41726, 0, 0, - 5758, 0, 0, 41140, 2028, 78092, 0, 0, 0, 92739, 983196, 41138, 0, 0, 0, + 5758, 0, 0, 41140, 2028, 78092, 0, 0, 0, 92739, 983195, 41138, 0, 0, 0, 125082, 1115, 127060, 9794, 127062, 67671, 92238, 12237, 78787, 66314, 78785, 9290, 73668, 78783, 78780, 66985, 127144, 7926, 0, 0, 0, 64398, 100924, 71274, 12311, 101268, 78796, 78798, 78794, 78795, 78792, 78793, @@ -28954,114 +28760,113 @@ static const unsigned int code_hash[] = { 66511, 68066, 2637, 110685, 8460, 110683, 8476, 110681, 0, 110679, 0, 127919, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5412, 66243, 9935, 122892, 0, 73864, 41734, 8206, 74081, 0, 3286, 120730, 0, 0, 41732, 0, 41736, - 983203, 41731, 0, 0, 70842, 0, 0, 0, 0, 129329, 0, 66853, 0, 0, 78742, + 983201, 41731, 0, 0, 70842, 0, 0, 0, 0, 129329, 0, 66853, 0, 0, 78742, 72755, 11277, 65892, 0, 10620, 92272, 68165, 0, 0, 0, 73942, 67001, 100479, 0, 119093, 3459, 0, 129398, 0, 0, 72130, 92512, 0, 66377, 69781, 128718, 0, 111304, 3161, 69981, 0, 0, 0, 0, 0, 9016, 78153, 0, 0, 43641, 0, 121018, 0, 101279, 0, 0, 0, 0, 0, 68342, 120950, 94043, 0, 12332, 121310, 6086, 41722, 0, 120709, 0, 0, 111305, 118677, 0, 128307, 74288, - 0, 74546, 124123, 129178, 124125, 92224, 42460, 0, 0, 0, 0, 120941, - 42421, 0, 41723, 110606, 64358, 11460, 983511, 0, 64718, 120838, 66869, - 0, 42348, 0, 6752, 452, 42500, 0, 128258, 0, 42308, 0, 0, 0, 12932, 0, - 69968, 42950, 66827, 917582, 0, 0, 8302, 0, 66929, 0, 0, 7250, 13214, - 10041, 8105, 65568, 127780, 69969, 127759, 0, 0, 121467, 0, 121466, - 41384, 0, 69878, 0, 5538, 9987, 111298, 118932, 129307, 0, 552, 0, 7357, - 10785, 66995, 0, 4557, 0, 0, 10171, 68320, 0, 5540, 0, 0, 281, 0, 0, - 42622, 0, 5536, 0, 0, 1388, 0, 0, 10504, 0, 0, 11531, 74324, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3663, 0, 121081, 70335, 74859, 0, 5334, 0, 110738, - 72319, 0, 11305, 66997, 68456, 0, 66611, 0, 19907, 64363, 3478, 7583, - 7679, 74154, 0, 0, 1158, 0, 983890, 73748, 0, 0, 1915, 4846, 0, 120132, - 118984, 120134, 120129, 120128, 805, 120130, 64438, 120124, 8760, 120126, - 72137, 120120, 120123, 94003, 0, 0, 0, 0, 0, 12225, 0, 0, 0, 70173, - 75045, 0, 129515, 8083, 0, 0, 0, 111094, 92626, 0, 0, 0, 0, 0, 0, 110837, - 0, 67699, 560, 5643, 0, 0, 0, 0, 0, 0, 0, 120144, 0, 120661, 78304, 1597, - 120143, 120142, 206, 70126, 120139, 120138, 8168, 0, 73086, 0, 0, 0, - 118650, 125036, 0, 0, 3546, 42573, 66811, 67000, 0, 128397, 8400, 0, 0, - 0, 0, 0, 7903, 9287, 72791, 0, 0, 0, 0, 72134, 66603, 1695, 917861, - 124150, 0, 111101, 0, 0, 0, 0, 0, 0, 0, 111099, 0, 111098, 4754, 0, - 69222, 128229, 0, 0, 7354, 7408, 0, 0, 121181, 0, 0, 0, 12739, 0, 1278, - 4187, 0, 42119, 42120, 0, 121158, 0, 12467, 0, 68902, 0, 12463, 0, 0, - 118827, 0, 9664, 70834, 74475, 0, 0, 0, 0, 0, 3661, 0, 0, 9022, 127955, - 0, 101460, 126257, 0, 6118, 222, 126250, 3884, 0, 74151, 0, 6502, 0, - 11085, 121261, 0, 0, 0, 0, 0, 0, 0, 0, 12461, 0, 0, 0, 94059, 11254, - 10860, 64880, 0, 64685, 0, 0, 94087, 7776, 11219, 0, 0, 121339, 69730, - 801, 43165, 0, 78212, 0, 0, 13277, 0, 12951, 0, 9906, 5486, 2334, 128672, - 67680, 5483, 73732, 120884, 119128, 2256, 0, 127876, 2539, 0, 78507, - 5485, 69826, 42697, 0, 0, 113689, 4502, 68057, 253, 73672, 0, 0, 9203, 0, - 0, 0, 0, 0, 121242, 11127, 0, 0, 0, 13257, 0, 0, 0, 69645, 0, 0, 0, - 70431, 0, 5693, 64470, 0, 66610, 67678, 0, 983678, 0, 0, 0, 0, 0, 0, 0, - 94078, 0, 0, 66608, 3111, 0, 8804, 66607, 0, 0, 0, 66606, 0, 0, 0, 1436, - 0, 55226, 0, 111287, 7393, 41592, 0, 0, 1598, 78101, 0, 0, 65193, 4423, - 0, 113692, 10515, 41589, 0, 0, 0, 101485, 1430, 101486, 0, 120606, 0, - 66223, 7619, 3255, 128280, 74032, 11549, 10735, 93038, 100741, 6801, - 100743, 100746, 2148, 100748, 100747, 100750, 100749, 0, 121229, 101479, - 69243, 41724, 67716, 69669, 41690, 111269, 983666, 8380, 100355, 983849, - 0, 101480, 0, 0, 0, 0, 6333, 111264, 42315, 0, 129502, 111265, 0, 0, - 5339, 74323, 0, 13004, 0, 0, 0, 0, 0, 0, 5684, 0, 0, 0, 5689, 0, 0, - 68464, 12633, 12870, 0, 65183, 5688, 0, 0, 6310, 5686, 0, 0, 0, 120647, - 70046, 50, 94095, 9871, 0, 0, 121446, 0, 0, 0, 66905, 0, 4448, 0, 121406, - 113734, 72125, 1321, 0, 10640, 0, 0, 101497, 0, 0, 73542, 0, 0, 0, 0, 0, - 12501, 0, 0, 0, 0, 8812, 0, 69986, 8673, 0, 129024, 0, 0, 2105, 72101, - 72712, 0, 129929, 0, 0, 0, 4636, 55262, 77745, 4515, 2382, 0, 0, 7313, - 101477, 0, 0, 194626, 0, 0, 0, 0, 0, 0, 0, 10197, 194719, 0, 0, 0, - 194718, 0, 0, 0, 64189, 0, 1873, 0, 0, 0, 0, 0, 983682, 0, 0, 101499, - 72282, 126991, 71113, 0, 0, 129340, 9489, 0, 70843, 0, 0, 0, 0, 128030, - 13295, 43191, 0, 0, 1154, 0, 1205, 0, 0, 0, 12958, 0, 0, 0, 66968, 0, - 10592, 0, 495, 0, 41712, 7983, 0, 0, 0, 6347, 69465, 7654, 41710, 4196, - 0, 0, 41709, 73772, 70832, 0, 9465, 983783, 0, 0, 917612, 0, 72374, - 41714, 0, 0, 0, 6343, 72376, 0, 43996, 0, 8044, 66979, 0, 41789, 0, - 10809, 71953, 0, 0, 0, 8146, 11025, 0, 120513, 642, 0, 0, 0, 12875, 0, 0, - 13229, 71950, 41788, 0, 92835, 0, 41791, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8428, 6569, 92851, 0, 0, 0, 10167, 0, 68248, 8049, 0, 0, 0, 0, 128882, - 4761, 0, 4766, 64623, 0, 121180, 194653, 118876, 0, 6912, 9232, 7033, 0, - 0, 41545, 0, 71970, 72160, 72107, 0, 0, 0, 3484, 0, 0, 0, 8503, 41539, - 41527, 0, 0, 983842, 0, 0, 66983, 41537, 0, 41541, 8282, 11817, 129965, - 128219, 0, 0, 126132, 0, 0, 70115, 66609, 111235, 65921, 0, 0, 194664, 0, - 129326, 77970, 42246, 75030, 120605, 0, 65926, 7744, 68859, 94056, 74277, - 126108, 0, 6966, 194633, 8136, 0, 0, 0, 0, 0, 4762, 0, 0, 0, 4765, 69443, - 983585, 66970, 4760, 0, 0, 10871, 43199, 194645, 0, 93955, 0, 0, 11546, - 0, 337, 0, 0, 0, 12279, 7768, 0, 128352, 0, 69812, 10143, 7883, 121444, - 7880, 64618, 13012, 5704, 13010, 0, 0, 119531, 0, 0, 0, 0, 66654, 0, 0, - 0, 13008, 0, 4385, 0, 13011, 0, 92569, 66972, 13009, 74771, 70159, 0, 0, - 41793, 64450, 74221, 120996, 41792, 111242, 94054, 126094, 0, 111244, - 5709, 120689, 71076, 0, 0, 0, 0, 0, 5708, 0, 0, 0, 5706, 66362, 5705, - 8791, 41797, 0, 10237, 66436, 0, 66974, 0, 0, 128083, 13170, 0, 127075, - 0, 0, 41377, 0, 0, 10058, 120735, 101431, 0, 0, 0, 0, 0, 0, 129641, - 119525, 0, 0, 72350, 0, 983584, 2144, 0, 120765, 0, 0, 1754, 92226, - 13246, 864, 0, 118926, 8972, 0, 7849, 0, 0, 13240, 0, 5192, 0, 0, 10948, - 0, 13199, 0, 1236, 13208, 13261, 13189, 13188, 93993, 0, 7440, 66976, 0, - 0, 1844, 125229, 0, 13178, 0, 0, 0, 125230, 0, 0, 13260, 4550, 121249, - 125227, 0, 71071, 0, 0, 68523, 0, 0, 11354, 94071, 0, 42795, 129317, 0, - 0, 0, 125237, 0, 13194, 13274, 0, 0, 129533, 65586, 68311, 0, 119193, - 4601, 194661, 101454, 194658, 0, 194659, 0, 121422, 128790, 194657, - 41717, 67402, 101444, 121129, 41716, 127376, 7910, 0, 0, 754, 41944, 0, - 8183, 120741, 2037, 101440, 0, 101441, 125, 0, 0, 0, 983125, 101442, - 41719, 0, 7990, 12637, 13258, 9536, 71056, 0, 4427, 0, 71200, 0, 12217, - 0, 41532, 129315, 0, 0, 0, 0, 111063, 83349, 0, 0, 120622, 0, 0, 0, 0, - 43632, 0, 0, 8140, 0, 6260, 0, 0, 66765, 129657, 0, 3898, 0, 0, 13200, 0, - 0, 66582, 0, 0, 0, 0, 1068, 71178, 13259, 12945, 0, 42203, 0, 3124, - 69411, 0, 4386, 12224, 6973, 129563, 0, 0, 119535, 0, 121312, 0, 12232, - 0, 0, 5681, 64578, 75023, 72016, 13209, 0, 0, 0, 0, 0, 11053, 0, 74902, - 128107, 128942, 7588, 0, 1693, 74942, 43204, 65831, 124120, 0, 0, 68803, - 111216, 111223, 0, 0, 65685, 9523, 2243, 0, 0, 0, 0, 0, 0, 0, 0, 13191, - 0, 3500, 3139, 100643, 3170, 100645, 100644, 66934, 100646, 13006, 64433, - 0, 100650, 941, 0, 0, 120967, 3727, 0, 0, 0, 72378, 0, 0, 118611, 94039, - 129299, 92455, 0, 0, 64444, 0, 0, 43603, 94075, 65397, 288, 0, 0, 0, - 10025, 73692, 0, 0, 68182, 0, 0, 0, 92438, 65395, 0, 0, 0, 65393, 83078, - 121111, 0, 122666, 0, 0, 0, 65394, 11548, 72305, 0, 65396, 0, 0, 13256, - 1282, 0, 0, 0, 111085, 0, 0, 0, 111087, 72115, 0, 0, 0, 0, 0, 3304, 0, 0, - 0, 126595, 72437, 68353, 0, 0, 42113, 0, 0, 0, 0, 0, 43094, 0, 0, 94037, - 68317, 9035, 0, 0, 0, 0, 0, 70822, 128467, 164, 68309, 94067, 94000, - 100631, 100634, 100633, 100636, 100635, 100638, 100637, 68808, 100639, - 110665, 73893, 11099, 110664, 13175, 13207, 0, 127552, 0, 74643, 5929, 0, - 0, 119502, 983654, 11306, 0, 119059, 3180, 125102, 0, 0, 0, 13062, 0, - 129551, 128707, 0, 0, 74428, 0, 128000, 0, 11251, 70204, 0, 10045, 0, - 13275, 0, 11057, 0, 13276, 125133, 41525, 983084, 128015, 11444, 0, - 129158, 0, 122642, 41523, 127765, 0, 0, 0, 0, 0, 0, 0, 3858, 0, 119573, - 0, 0, 0, 0, 0, 0, 101014, 369, 74908, 41784, 0, 120994, 0, 71180, 0, 0, - 13210, 41782, 0, 73536, 101388, 41781, 10486, 74058, 43002, 0, 0, 0, 0, + 0, 74546, 0, 129178, 129399, 92224, 42460, 0, 0, 0, 0, 120941, 42421, 0, + 41723, 110606, 64358, 11460, 983508, 0, 64718, 120838, 66869, 0, 42348, + 0, 6752, 452, 42500, 0, 128258, 0, 42308, 0, 0, 0, 12932, 0, 69968, + 42950, 66827, 917582, 0, 0, 8302, 0, 66929, 0, 0, 7250, 13214, 10041, + 8105, 65568, 127780, 69969, 127759, 0, 0, 121467, 0, 121466, 41384, 0, + 69878, 0, 5538, 9987, 111298, 118932, 129307, 0, 552, 0, 7357, 10785, + 66995, 0, 4557, 0, 0, 10171, 68320, 0, 5540, 0, 0, 281, 0, 0, 42622, 0, + 5536, 0, 0, 1388, 0, 0, 10504, 0, 0, 11531, 74324, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3663, 0, 121081, 70335, 74859, 0, 5334, 0, 110738, 72319, 0, + 11305, 66997, 68456, 0, 66611, 0, 19907, 64363, 3478, 7583, 7679, 74154, + 0, 0, 1158, 0, 983890, 73748, 0, 0, 1915, 4846, 0, 120132, 118984, + 120134, 120129, 120128, 805, 120130, 64438, 120124, 8760, 120126, 72137, + 120120, 120123, 94003, 0, 0, 0, 0, 0, 12225, 0, 0, 0, 70173, 75045, 0, + 129515, 8083, 0, 0, 0, 111094, 92626, 0, 0, 0, 0, 0, 0, 110837, 0, 67699, + 560, 5643, 0, 0, 0, 0, 0, 0, 0, 120144, 0, 120661, 78304, 1597, 120143, + 120142, 206, 70126, 120139, 120138, 8168, 0, 73086, 0, 0, 0, 118650, + 125036, 0, 0, 3546, 42573, 66811, 67000, 0, 128397, 8400, 0, 0, 0, 0, 0, + 7903, 9287, 72791, 0, 0, 0, 0, 72134, 66603, 1695, 917861, 0, 0, 111101, + 0, 0, 0, 0, 0, 0, 0, 111099, 0, 111098, 4754, 0, 69222, 128229, 0, 0, + 7354, 7408, 0, 0, 121181, 0, 0, 0, 12739, 0, 1278, 4187, 0, 42119, 42120, + 0, 121158, 0, 12467, 0, 68902, 0, 12463, 0, 0, 118827, 0, 9664, 70834, + 74475, 0, 0, 0, 0, 0, 3661, 0, 0, 9022, 127955, 0, 101460, 126257, 0, + 6118, 222, 126250, 3884, 0, 74151, 0, 6502, 0, 11085, 121261, 0, 0, 0, 0, + 0, 0, 0, 0, 12461, 0, 0, 0, 94059, 11254, 10860, 64880, 0, 64685, 0, 0, + 94087, 7776, 11219, 0, 0, 121339, 69730, 801, 43165, 0, 78212, 0, 0, + 13277, 0, 12951, 0, 9906, 5486, 2334, 128672, 67680, 5483, 73732, 120884, + 119128, 2256, 0, 127876, 2539, 0, 78507, 5485, 69826, 42697, 0, 0, + 113689, 4502, 68057, 253, 73672, 0, 0, 9203, 0, 0, 0, 0, 0, 121242, + 11127, 0, 0, 0, 13257, 0, 0, 0, 69645, 0, 0, 0, 70431, 0, 5693, 64470, 0, + 66610, 67678, 0, 983678, 0, 0, 0, 0, 0, 0, 0, 94078, 0, 0, 66608, 3111, + 0, 8804, 66607, 0, 0, 0, 66606, 0, 0, 0, 1436, 0, 55226, 0, 111287, 7393, + 41592, 0, 0, 1598, 78101, 0, 0, 65193, 4423, 0, 113692, 10515, 41589, 0, + 0, 0, 101485, 1430, 101486, 0, 120606, 0, 66223, 7619, 3255, 128280, + 74032, 11549, 10735, 93038, 100741, 6801, 100743, 100746, 2148, 100748, + 100747, 100750, 100749, 0, 121229, 101479, 69243, 41724, 67716, 69669, + 41690, 111269, 983666, 8380, 100355, 983849, 0, 101480, 0, 0, 0, 0, 6333, + 111264, 42315, 0, 129502, 111265, 0, 0, 5339, 74323, 0, 13004, 0, 0, 0, + 0, 0, 0, 5684, 0, 0, 0, 5689, 0, 0, 68464, 12633, 12870, 0, 65183, 5688, + 0, 0, 6310, 5686, 0, 0, 0, 120647, 70046, 50, 94095, 9871, 0, 0, 121446, + 0, 0, 0, 66905, 0, 4448, 0, 121406, 113734, 72125, 1321, 0, 10640, 0, 0, + 101497, 0, 0, 118532, 0, 0, 0, 0, 0, 12501, 0, 0, 0, 0, 8812, 0, 69986, + 8673, 0, 129024, 0, 0, 2105, 72101, 72712, 0, 129929, 0, 0, 0, 4636, + 55262, 77745, 4515, 2382, 0, 0, 7313, 101477, 0, 0, 194626, 0, 0, 0, 0, + 0, 0, 0, 10197, 194719, 0, 0, 0, 194718, 0, 0, 0, 64189, 0, 1873, 0, 0, + 0, 0, 0, 983682, 0, 0, 101499, 72282, 126991, 71113, 0, 0, 129340, 9489, + 0, 70843, 0, 0, 0, 0, 128030, 13295, 43191, 0, 0, 1154, 0, 1205, 0, 0, 0, + 12958, 0, 0, 0, 66968, 0, 10592, 0, 495, 0, 41712, 7983, 0, 0, 0, 6347, + 69465, 7654, 41710, 4196, 0, 0, 41709, 73772, 70832, 0, 9465, 983783, 0, + 0, 917612, 0, 72374, 41714, 0, 0, 0, 6343, 72376, 0, 43996, 0, 8044, + 66979, 0, 41789, 0, 10809, 71953, 0, 0, 0, 8146, 11025, 0, 120513, 642, + 0, 0, 0, 12875, 0, 0, 13229, 71950, 41788, 0, 92835, 0, 41791, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 8428, 6569, 92851, 0, 0, 0, 10167, 0, 68248, 8049, + 0, 0, 0, 0, 128882, 4761, 0, 4766, 64623, 0, 121180, 194653, 118876, 0, + 6912, 9232, 7033, 0, 0, 41545, 0, 71970, 72160, 72107, 0, 0, 0, 3484, 0, + 0, 0, 8503, 41539, 41527, 0, 0, 983842, 0, 0, 66983, 41537, 0, 41541, + 8282, 11817, 129965, 128219, 0, 0, 126132, 0, 0, 70115, 66609, 111235, + 65921, 0, 0, 194664, 0, 129326, 77970, 42246, 75030, 120605, 0, 65926, + 7744, 68859, 94056, 74277, 126108, 0, 6966, 194633, 8136, 0, 0, 0, 0, 0, + 4762, 0, 0, 0, 4765, 69443, 983585, 66970, 4760, 0, 0, 10871, 43199, + 194645, 0, 93955, 0, 0, 11546, 0, 337, 0, 0, 0, 12279, 7768, 0, 128352, + 0, 69812, 10143, 7883, 121444, 7880, 64618, 13012, 5704, 13010, 0, 0, + 119531, 0, 0, 0, 0, 66654, 0, 0, 0, 13008, 0, 4385, 0, 13011, 0, 92569, + 66972, 13009, 74771, 70159, 0, 0, 41793, 64450, 74221, 120996, 41792, + 111242, 94054, 126094, 0, 111244, 5709, 120689, 71076, 0, 0, 0, 0, 0, + 5708, 0, 0, 0, 5706, 66362, 5705, 8791, 41797, 0, 10237, 66436, 0, 66974, + 0, 0, 128083, 13170, 0, 127075, 0, 0, 41377, 0, 0, 10058, 120735, 101431, + 0, 0, 0, 0, 0, 0, 129641, 119525, 0, 0, 72350, 0, 983584, 2144, 0, + 120765, 0, 0, 1754, 92226, 13246, 864, 0, 118926, 8972, 0, 7849, 0, 0, + 13240, 0, 5192, 0, 0, 10948, 0, 13199, 0, 1236, 13208, 13261, 13189, + 13188, 93993, 0, 7440, 66976, 0, 0, 1844, 125229, 0, 13178, 0, 0, 0, + 125230, 0, 0, 13260, 4550, 121249, 125227, 0, 71071, 0, 0, 68523, 0, 0, + 11354, 94071, 0, 42795, 129317, 0, 0, 0, 125237, 0, 13194, 13274, 0, 0, + 129533, 65586, 68311, 0, 119193, 4601, 194661, 101454, 194658, 0, 194659, + 0, 121422, 128790, 194657, 41717, 67402, 101444, 121129, 41716, 127376, + 7910, 0, 0, 754, 41944, 0, 8183, 120741, 2037, 101440, 0, 101441, 125, 0, + 0, 0, 983124, 101442, 41719, 0, 7990, 12637, 13258, 9536, 71056, 0, 4427, + 0, 71200, 0, 12217, 0, 41532, 129315, 0, 0, 0, 0, 111063, 83349, 0, 0, + 120622, 0, 0, 0, 0, 43632, 0, 0, 8140, 0, 6260, 0, 0, 66765, 129657, 0, + 3898, 0, 0, 13200, 0, 0, 66582, 0, 0, 0, 0, 1068, 71178, 13259, 12945, 0, + 42203, 0, 3124, 69411, 0, 4386, 12224, 6973, 129563, 0, 0, 119535, 0, + 121312, 0, 12232, 0, 0, 5681, 64578, 75023, 72016, 13209, 0, 0, 0, 0, 0, + 11053, 0, 74902, 128107, 128942, 7588, 0, 1693, 74942, 43204, 65831, 0, + 0, 0, 68803, 111216, 111223, 0, 0, 65685, 9523, 2243, 0, 0, 0, 0, 0, 0, + 0, 0, 13191, 0, 3500, 3139, 100643, 3170, 100645, 100644, 66934, 100646, + 13006, 64433, 0, 100650, 941, 0, 0, 120967, 3727, 0, 0, 0, 72378, 0, 0, + 118611, 94039, 129299, 92455, 0, 0, 64444, 0, 0, 43603, 94075, 65397, + 288, 0, 0, 0, 10025, 73692, 0, 0, 68182, 0, 0, 0, 92438, 65395, 0, 0, 0, + 65393, 83078, 121111, 0, 0, 0, 0, 0, 65394, 11548, 72305, 0, 65396, 0, 0, + 13256, 1282, 0, 0, 0, 111085, 0, 0, 0, 111087, 72115, 0, 0, 0, 0, 0, + 3304, 0, 0, 0, 126595, 72437, 68353, 0, 0, 42113, 0, 0, 0, 0, 0, 43094, + 0, 0, 94037, 68317, 9035, 0, 0, 0, 0, 0, 70822, 128467, 164, 68309, + 94067, 94000, 100631, 100634, 100633, 100636, 100635, 100638, 100637, + 68808, 100639, 110665, 73893, 11099, 110664, 13175, 13207, 0, 127552, 0, + 74643, 5929, 0, 0, 129192, 983654, 11306, 0, 119059, 3180, 125102, 0, 0, + 0, 13062, 0, 129551, 128707, 0, 0, 74428, 0, 128000, 0, 11251, 70204, 0, + 10045, 0, 13275, 0, 11057, 0, 13276, 125133, 41525, 983084, 128015, + 11444, 0, 129158, 0, 122642, 41523, 127765, 0, 0, 0, 0, 0, 0, 0, 3858, 0, + 119573, 0, 0, 0, 0, 0, 0, 101014, 369, 74908, 41784, 0, 120994, 0, 71180, + 0, 0, 13210, 41782, 0, 0, 101388, 41781, 10486, 74058, 43002, 0, 0, 0, 0, 0, 3741, 0, 0, 0, 118540, 41222, 0, 128317, 3982, 0, 4388, 126105, 746, - 0, 0, 0, 13131, 0, 0, 0, 0, 0, 10434, 8794, 122963, 0, 0, 0, 0, 0, 11700, + 0, 0, 0, 13131, 0, 0, 0, 0, 0, 10434, 8794, 0, 0, 0, 0, 0, 0, 11700, 4374, 129413, 0, 0, 0, 0, 0, 917597, 0, 69814, 0, 6735, 73979, 13174, 73968, 13225, 0, 69808, 0, 0, 2365, 7841, 71476, 0, 120934, 66510, 128099, 0, 0, 0, 41785, 41171, 0, 13173, 4372, 6854, 0, 0, 0, 128939, 0, @@ -29073,79 +28878,78 @@ static const unsigned int code_hash[] = { 124949, 0, 0, 0, 41533, 66337, 0, 92184, 0, 126091, 0, 0, 73849, 0, 43638, 0, 101398, 6261, 0, 129568, 0, 1957, 0, 0, 0, 13292, 13206, 0, 0, 2925, 73809, 42576, 101395, 13212, 43238, 0, 13190, 13187, 0, 13198, 0, - 0, 5242, 0, 0, 128146, 0, 73535, 6770, 43331, 127539, 0, 0, 71074, - 126466, 73524, 41444, 0, 0, 64799, 5246, 119106, 13185, 9709, 0, 0, - 92751, 0, 5238, 0, 71085, 0, 5236, 40979, 0, 74201, 8286, 0, 3936, 92833, - 11699, 0, 127249, 13235, 69578, 41248, 127264, 13245, 13239, 0, 7969, - 127266, 74832, 127251, 0, 120509, 0, 983893, 734, 127270, 0, 127254, - 70297, 127273, 64921, 120969, 66631, 41771, 120490, 0, 983172, 41770, - 1670, 42560, 0, 121349, 129634, 0, 41163, 0, 11136, 0, 11506, 0, 42841, - 13267, 126109, 0, 41775, 0, 7130, 41773, 0, 0, 0, 0, 0, 0, 0, 42673, - 65572, 0, 65250, 13265, 13264, 64518, 66798, 6100, 0, 0, 6740, 71080, - 67814, 12967, 70028, 68101, 4583, 0, 0, 68097, 0, 0, 0, 0, 119211, 0, 0, - 42653, 83181, 68102, 0, 7814, 71045, 0, 73702, 0, 0, 0, 9756, 6985, 0, 0, - 74219, 0, 0, 129069, 124987, 5674, 0, 66421, 0, 5677, 5588, 0, 0, 0, 0, - 5673, 73488, 5676, 0, 94048, 0, 5672, 6476, 0, 128798, 110951, 42511, - 1727, 0, 0, 0, 0, 0, 0, 0, 3550, 736, 0, 4505, 5873, 74090, 5826, 55232, - 5813, 0, 120712, 5841, 5837, 55234, 0, 3105, 64370, 5838, 5796, 0, - 119592, 5793, 0, 5866, 5797, 41011, 5865, 0, 0, 71899, 0, 71235, 5806, - 73528, 0, 9037, 5671, 0, 0, 0, 0, 71266, 126616, 7296, 0, 0, 0, 0, 6980, - 0, 72108, 0, 0, 0, 0, 0, 64613, 983910, 0, 129969, 0, 78277, 7114, 0, - 72100, 43190, 93842, 128666, 72096, 42611, 42563, 0, 125080, 0, 6792, - 43201, 72098, 0, 128719, 0, 72106, 73534, 0, 5644, 0, 66627, 69727, 0, 0, - 0, 65116, 0, 0, 73526, 0, 66410, 94104, 41013, 0, 0, 0, 2869, 0, 41015, - 0, 2785, 120616, 0, 73907, 194689, 0, 0, 0, 194688, 4759, 0, 0, 43192, - 129913, 1170, 43365, 69810, 73908, 0, 902, 0, 0, 0, 0, 8122, 66420, - 129642, 0, 3861, 0, 11028, 0, 73820, 5714, 0, 0, 0, 807, 127001, 78474, - 0, 976, 113782, 0, 0, 0, 0, 0, 128657, 118801, 71043, 0, 127017, 0, 0, - 5582, 0, 0, 5798, 0, 0, 0, 128521, 0, 0, 68058, 120553, 983184, 0, 0, - 74933, 74283, 0, 0, 194698, 66044, 0, 0, 0, 0, 0, 10094, 0, 0, 10857, - 69225, 0, 0, 93, 0, 10954, 0, 0, 0, 8171, 0, 0, 82996, 0, 0, 0, 73527, - 92634, 0, 0, 5187, 120711, 71086, 118704, 0, 0, 0, 5232, 0, 41009, 0, - 41005, 0, 43205, 0, 0, 0, 194708, 0, 71054, 10028, 66478, 7076, 13182, - 100385, 0, 0, 0, 78782, 7972, 78786, 0, 0, 0, 78789, 11309, 3806, 71252, - 0, 0, 0, 78819, 0, 125218, 0, 127532, 0, 0, 0, 78817, 0, 64366, 65156, - 8814, 0, 0, 0, 0, 12836, 42725, 120079, 0, 0, 0, 0, 69258, 13255, 0, 0, - 7464, 0, 93831, 0, 0, 0, 0, 13213, 118557, 0, 64516, 0, 0, 0, 41007, - 983929, 0, 40995, 12209, 983933, 119136, 123635, 0, 0, 0, 0, 0, 69283, - 43558, 5522, 0, 71061, 0, 74105, 3633, 983931, 119364, 41234, 41231, 0, - 9771, 983936, 13251, 0, 0, 6262, 2784, 0, 71078, 8126, 66483, 0, 0, 441, - 0, 0, 0, 41002, 40999, 0, 129394, 7108, 0, 10890, 0, 74445, 8324, 0, 0, - 74817, 2813, 119056, 74853, 983690, 0, 0, 0, 1193, 10462, 65197, 13253, - 13252, 7829, 120992, 130032, 0, 0, 0, 77911, 0, 77907, 0, 10386, 0, - 41042, 0, 65944, 65683, 10338, 66469, 0, 0, 0, 0, 0, 41966, 0, 0, 0, - 68915, 0, 0, 911, 983889, 128932, 40963, 0, 65159, 0, 122950, 0, 5520, 0, - 0, 0, 0, 0, 0, 0, 42965, 0, 0, 0, 0, 0, 983892, 0, 0, 66839, 0, 0, 0, - 68647, 0, 5857, 68135, 92727, 119120, 983694, 13171, 0, 0, 0, 120338, 0, - 0, 0, 13250, 69663, 0, 92201, 66397, 0, 0, 0, 8761, 12942, 5748, 92713, - 92414, 0, 83174, 8796, 0, 0, 0, 43633, 0, 72805, 71073, 0, 0, 0, 0, 0, - 12843, 4520, 0, 0, 73004, 983691, 0, 0, 194935, 110754, 64345, 0, 983677, - 3457, 0, 0, 0, 110750, 110758, 110751, 0, 0, 10427, 0, 73859, 0, 9755, - 1110, 65239, 0, 0, 0, 0, 0, 0, 0, 194936, 0, 983821, 0, 70437, 3620, 0, - 0, 72855, 0, 0, 0, 74250, 0, 0, 11980, 0, 66482, 67823, 0, 128345, - 110768, 0, 0, 0, 0, 12891, 983786, 983667, 0, 2016, 0, 65668, 92311, - 67696, 10366, 70117, 9155, 120652, 9786, 65082, 0, 8579, 0, 0, 0, 0, - 4508, 64883, 0, 92522, 129847, 0, 64592, 74276, 67688, 0, 69270, 0, + 0, 5242, 0, 0, 128146, 0, 0, 6770, 43331, 127539, 0, 0, 71074, 126466, 0, + 41444, 0, 0, 64799, 5246, 119106, 13185, 9709, 0, 0, 92751, 0, 5238, 0, + 71085, 0, 5236, 40979, 0, 74201, 8286, 0, 3936, 92833, 11699, 0, 127249, + 13235, 69578, 41248, 127264, 13245, 13239, 0, 7969, 127266, 74832, + 127251, 0, 120509, 0, 983893, 734, 127270, 0, 127254, 70297, 127273, + 64921, 120969, 66631, 41771, 120490, 0, 983171, 41770, 1670, 42560, 0, + 121349, 129634, 0, 41163, 0, 11136, 0, 11506, 0, 42841, 13267, 126109, 0, + 41775, 0, 7130, 41773, 0, 0, 0, 0, 0, 0, 0, 42673, 65572, 0, 65250, + 13265, 13264, 64518, 66798, 6100, 0, 0, 6740, 71080, 67814, 12967, 70028, + 68101, 4583, 0, 0, 68097, 0, 0, 0, 0, 119211, 0, 0, 42653, 83181, 68102, + 0, 7814, 71045, 0, 73702, 0, 0, 0, 9756, 6985, 0, 0, 74219, 0, 0, 129069, + 124987, 5674, 0, 66421, 0, 5677, 5588, 0, 0, 0, 0, 5673, 0, 5676, 0, + 94048, 0, 5672, 6476, 0, 0, 110951, 42511, 1727, 0, 0, 0, 0, 0, 0, 0, + 3550, 736, 0, 4505, 5873, 74090, 5826, 55232, 5813, 0, 120712, 5841, + 5837, 55234, 0, 3105, 64370, 5838, 5796, 0, 119592, 5793, 0, 5866, 5797, + 41011, 5865, 0, 0, 71899, 0, 71235, 5806, 0, 0, 9037, 5671, 0, 0, 0, 0, + 71266, 126616, 7296, 0, 0, 0, 0, 6980, 0, 72108, 0, 0, 0, 0, 0, 64613, + 983910, 0, 129969, 0, 78277, 7114, 0, 72100, 43190, 93842, 128666, 72096, + 42611, 42563, 0, 125080, 0, 6792, 43201, 72098, 0, 128719, 0, 72106, 0, + 0, 5644, 0, 66627, 69727, 0, 0, 0, 65116, 0, 0, 0, 0, 66410, 94104, + 41013, 0, 0, 0, 2869, 0, 41015, 0, 2785, 120616, 0, 73907, 194689, 0, 0, + 0, 194688, 4759, 0, 0, 43192, 129913, 1170, 43365, 69810, 73908, 0, 902, + 0, 0, 0, 0, 8122, 66420, 129642, 0, 3861, 0, 11028, 0, 73820, 5714, 0, 0, + 0, 807, 127001, 78474, 0, 976, 113782, 0, 0, 0, 0, 0, 128657, 118801, + 71043, 0, 127017, 0, 0, 5582, 0, 0, 5798, 0, 0, 0, 128521, 0, 0, 68058, + 120553, 983183, 0, 0, 74933, 74283, 0, 0, 194698, 66044, 0, 0, 0, 0, 0, + 10094, 0, 0, 10857, 69225, 0, 0, 93, 0, 10954, 0, 0, 0, 8171, 0, 0, + 82996, 0, 0, 0, 119001, 92634, 0, 0, 5187, 120711, 71086, 118704, 0, 0, + 0, 5232, 0, 41009, 0, 41005, 0, 43205, 0, 0, 0, 194708, 0, 71054, 10028, + 66478, 7076, 13182, 100385, 0, 0, 0, 78782, 7972, 78786, 0, 0, 0, 78789, + 11309, 3806, 71252, 0, 0, 0, 78819, 0, 125218, 0, 127532, 0, 0, 0, 78817, + 0, 64366, 65156, 8814, 0, 0, 0, 0, 12836, 42725, 120079, 0, 0, 0, 0, + 69258, 13255, 0, 0, 7464, 0, 93831, 0, 0, 0, 0, 13213, 118557, 0, 64516, + 0, 0, 0, 41007, 983929, 0, 40995, 12209, 983933, 119136, 123635, 0, 0, 0, + 0, 0, 69283, 43558, 5522, 0, 71061, 0, 74105, 3633, 983931, 119364, + 41234, 41231, 0, 9771, 983936, 13251, 0, 0, 6262, 2784, 0, 71078, 8126, + 66483, 0, 0, 441, 0, 0, 0, 41002, 40999, 0, 129394, 7108, 0, 10890, 0, + 74445, 8324, 0, 0, 74817, 2813, 119056, 74853, 983690, 0, 0, 0, 1193, + 10462, 65197, 13253, 13252, 7829, 120992, 130032, 0, 0, 0, 77911, 0, + 77907, 0, 10386, 0, 41042, 0, 65944, 65683, 10338, 66469, 0, 0, 0, 0, 0, + 41966, 0, 0, 0, 68915, 0, 0, 911, 983889, 128932, 40963, 0, 65159, 0, 0, + 0, 5520, 0, 0, 0, 0, 0, 0, 0, 42965, 0, 0, 0, 0, 0, 983892, 0, 0, 66839, + 0, 0, 0, 68647, 0, 5857, 68135, 92727, 119120, 983694, 13171, 0, 0, 0, + 120338, 0, 0, 0, 13250, 69663, 0, 92201, 66397, 0, 0, 0, 8761, 12942, + 5748, 92713, 92414, 0, 83174, 8796, 0, 0, 0, 43633, 0, 72805, 71073, 0, + 0, 0, 0, 0, 12843, 4520, 0, 0, 73004, 983691, 0, 0, 194935, 110754, + 64345, 0, 983677, 3457, 0, 0, 0, 110750, 110758, 110751, 0, 0, 10427, 0, + 73859, 0, 9755, 1110, 65239, 0, 0, 0, 0, 0, 0, 0, 194936, 0, 983821, 0, + 70437, 3620, 0, 0, 72855, 0, 0, 0, 74250, 0, 0, 11980, 0, 66482, 67823, + 0, 128345, 110768, 0, 0, 0, 0, 12891, 983786, 983667, 0, 2016, 0, 65668, + 92311, 67696, 10366, 70117, 9155, 120652, 9786, 65082, 0, 8579, 0, 0, 0, + 0, 4508, 64883, 0, 92522, 129847, 0, 64592, 74276, 67688, 0, 69270, 0, 69456, 0, 113821, 0, 12147, 9024, 66378, 66472, 0, 0, 0, 0, 0, 71935, 0, 0, 113697, 0, 0, 69285, 0, 74275, 0, 122896, 127941, 41214, 0, 67476, 0, 0, 0, 7773, 0, 0, 9963, 68649, 0, 73734, 0, 0, 0, 0, 6594, 983771, 0, 0, 3624, 70342, 0, 64655, 121481, 0, 0, 0, 0, 0, 65932, 0, 983809, 6803, 120968, 7738, 0, 0, 120628, 129721, 66614, 122921, 0, 43810, 7029, 0, 41292, 118898, 0, 43115, 9517, 11518, 0, 0, 0, 0, 64423, 0, 0, 0, 12503, - 9591, 4516, 0, 118845, 0, 0, 129479, 43650, 983193, 69250, 0, 0, 68079, + 9591, 4516, 0, 118845, 0, 0, 129479, 43650, 983192, 69250, 0, 0, 68079, 0, 11397, 2884, 0, 0, 12678, 0, 0, 41014, 73730, 917539, 4270, 92254, - 127836, 68205, 6633, 118947, 0, 5230, 101055, 0, 0, 983234, 121392, 0, + 127836, 68205, 6633, 118947, 0, 5230, 101055, 0, 0, 983231, 121392, 0, 92985, 0, 0, 0, 0, 415, 0, 0, 0, 0, 5183, 1877, 0, 0, 0, 0, 0, 4472, 0, 0, 0, 128285, 110682, 78230, 4756, 0, 7081, 0, 0, 0, 78606, 0, 42922, 42103, 8628, 74861, 0, 0, 0, 43059, 10539, 0, 0, 0, 0, 0, 0, 0, 0, 64873, - 11992, 129444, 0, 0, 11801, 3622, 0, 0, 983215, 0, 0, 11521, 0, 1966, + 11992, 129444, 0, 0, 11801, 3622, 0, 0, 983213, 0, 0, 11521, 0, 1966, 43628, 111048, 0, 0, 0, 0, 0, 0, 42098, 66671, 10694, 128520, 0, 0, 0, 0, 42100, 0, 111040, 0, 42097, 0, 0, 0, 0, 11302, 118640, 129145, 43395, 83259, 0, 0, 92351, 0, 0, 11299, 1561, 0, 92359, 92725, 69253, 0, 194733, - 0, 194730, 0, 127893, 11280, 0, 0, 983802, 0, 0, 72760, 0, 12486, 65018, + 0, 0, 0, 127893, 11280, 0, 0, 983802, 0, 0, 72760, 0, 12486, 65018, 66516, 5409, 0, 0, 194720, 5399, 9685, 0, 983713, 5401, 0, 0, 66832, 0, 0, 5405, 0, 0, 0, 0, 0, 2235, 0, 11330, 983711, 64690, 3254, 0, 129974, - 0, 0, 43678, 0, 0, 983146, 0, 6388, 3355, 0, 9867, 0, 55258, 5611, 0, + 0, 0, 43678, 0, 0, 983145, 0, 6388, 3355, 0, 9867, 0, 55258, 5611, 0, 128527, 0, 0, 129181, 0, 78228, 0, 0, 119119, 0, 0, 194959, 0, 0, 1379, 246, 0, 0, 64736, 0, 0, 0, 121227, 0, 0, 0, 0, 0, 0, 11855, 0, 0, 0, 71961, 10656, 0, 65214, 119242, 0, 0, 13163, 0, 120831, 0, 0, 101484, 0, @@ -29161,11 +28965,11 @@ static const unsigned int code_hash[] = { 119207, 0, 0, 9550, 100621, 0, 100623, 100622, 78050, 100624, 65753, 100626, 65756, 72731, 0, 100630, 0, 0, 0, 0, 9657, 9019, 121154, 0, 0, 5390, 0, 0, 194965, 72144, 69937, 69286, 6328, 0, 0, 0, 0, 0, 983047, 0, - 5235, 803, 69289, 0, 0, 127979, 43838, 0, 119562, 43544, 0, 0, 0, 0, - 194960, 70426, 9107, 5191, 119113, 0, 0, 0, 121099, 0, 0, 0, 0, 0, - 128150, 983067, 0, 7289, 74055, 0, 0, 0, 0, 0, 0, 0, 1784, 124947, 0, 0, - 0, 0, 64868, 0, 13158, 0, 7211, 0, 9371, 129378, 0, 0, 1625, 7664, 0, 0, - 0, 0, 0, 0, 69273, 0, 0, 0, 0, 4482, 118886, 0, 0, 0, 0, 0, 0, 0, 100612, + 5235, 803, 69289, 0, 0, 127979, 43838, 0, 119562, 43544, 0, 0, 0, 0, 0, + 70426, 9107, 5191, 119113, 0, 0, 0, 121099, 0, 0, 0, 0, 0, 128150, + 983067, 0, 7289, 74055, 0, 0, 0, 0, 0, 0, 0, 1784, 124947, 0, 0, 0, 0, + 64868, 0, 13158, 0, 7211, 0, 9371, 129378, 0, 0, 1625, 7664, 0, 0, 0, 0, + 0, 0, 69273, 0, 0, 0, 0, 4482, 118886, 0, 0, 0, 0, 0, 0, 0, 100612, 66849, 100614, 100613, 100616, 444, 100618, 100617, 100620, 100619, 0, 129401, 0, 11349, 40991, 0, 0, 129324, 0, 0, 1197, 0, 40993, 0, 0, 0, 40990, 43765, 0, 3492, 0, 127942, 0, 0, 100592, 100591, 100594, 19948, @@ -29175,13 +28979,13 @@ static const unsigned int code_hash[] = { 0, 130037, 0, 118820, 0, 0, 0, 0, 0, 100581, 0, 100583, 100582, 100585, 100584, 100587, 100586, 100589, 7576, 11995, 100590, 43260, 0, 0, 64830, 0, 125046, 101526, 0, 43979, 8870, 0, 0, 42357, 0, 0, 12822, 0, 0, 0, - 118944, 0, 0, 42637, 0, 0, 70725, 0, 129934, 0, 71344, 0, 0, 72449, - 194745, 7170, 9596, 8277, 194743, 43629, 110610, 0, 0, 983571, 123545, 0, - 66699, 42952, 0, 0, 0, 43234, 66008, 12627, 0, 0, 0, 43619, 43303, 11300, - 0, 0, 8745, 0, 7558, 71342, 100570, 0, 0, 127881, 3461, 121258, 129471, - 69264, 0, 0, 0, 73877, 74335, 124982, 0, 0, 0, 64620, 74762, 12069, - 10838, 92548, 43616, 0, 10061, 0, 64840, 10508, 209, 0, 43193, 120581, 0, - 0, 128049, 0, 10899, 69855, 100571, 100574, 100573, 100576, 993, 100578, + 118944, 0, 0, 42637, 0, 0, 70725, 0, 129934, 0, 71344, 0, 0, 0, 194745, + 7170, 9596, 8277, 194743, 43629, 110610, 0, 0, 983571, 123545, 0, 66699, + 42952, 0, 0, 0, 43234, 66008, 12627, 0, 0, 0, 43619, 43303, 11300, 0, 0, + 8745, 0, 7558, 71342, 100570, 0, 0, 127881, 3461, 121258, 129471, 69264, + 0, 0, 0, 73877, 74335, 124982, 0, 0, 0, 64620, 74762, 12069, 10838, + 92548, 43616, 0, 10061, 0, 64840, 10508, 209, 0, 43193, 120581, 0, 0, + 128049, 0, 10899, 69855, 100571, 100574, 100573, 100576, 993, 100578, 100577, 100580, 100579, 100560, 100559, 7232, 0, 0, 0, 0, 0, 0, 10489, 42166, 0, 128588, 0, 0, 4224, 7671, 41518, 121311, 0, 0, 0, 0, 64820, 92538, 12966, 100554, 100553, 100556, 100555, 100558, 100557, 4263, 8793, @@ -29190,25 +28994,25 @@ static const unsigned int code_hash[] = { 0, 2147, 0, 0, 66629, 0, 0, 1255, 4149, 0, 0, 66633, 0, 129391, 92352, 0, 65101, 0, 0, 0, 0, 5835, 128797, 66625, 10842, 0, 42123, 0, 0, 66634, 1094, 66636, 0, 0, 0, 0, 0, 9972, 73865, 129289, 6114, 0, 0, 0, 0, 93960, - 0, 0, 0, 0, 12070, 0, 881, 7857, 0, 65164, 0, 0, 118703, 124151, 0, - 64404, 64321, 0, 125187, 0, 0, 11245, 129395, 69506, 71859, 128886, 0, 0, - 1287, 121509, 0, 0, 0, 125264, 74152, 120504, 64545, 0, 69668, 8985, 0, - 0, 0, 0, 0, 0, 3652, 0, 0, 0, 0, 0, 279, 0, 0, 0, 0, 1489, 125189, 0, 0, - 3899, 0, 42124, 43828, 42122, 0, 0, 0, 11985, 73755, 78600, 0, 0, 10988, - 0, 0, 42138, 78610, 0, 65768, 78608, 78604, 78605, 6285, 78603, 78612, - 78613, 74339, 65767, 8685, 0, 0, 0, 78622, 78623, 68475, 11470, 64538, - 78618, 78615, 78616, 0, 0, 0, 101534, 2527, 0, 128209, 2799, 0, 0, 0, - 9933, 0, 0, 767, 5524, 7028, 0, 101520, 0, 0, 0, 78633, 67481, 0, 94011, - 0, 6971, 0, 70731, 0, 0, 118979, 126075, 2434, 94018, 0, 120579, 0, 4631, - 0, 0, 6407, 0, 19931, 0, 0, 124905, 0, 3192, 0, 8414, 0, 0, 0, 124902, 0, - 9164, 66612, 93959, 8228, 124897, 0, 0, 0, 78624, 0, 0, 9993, 0, 0, - 129350, 78631, 78632, 78629, 78630, 78627, 78628, 78625, 2399, 0, 92399, - 71202, 41208, 0, 0, 8178, 2149, 3367, 0, 78640, 78641, 78636, 78638, - 78634, 6337, 0, 78909, 0, 0, 11068, 0, 9331, 0, 74798, 9181, 0, 0, 8017, - 0, 0, 0, 0, 0, 0, 0, 12126, 119494, 129306, 0, 0, 69650, 0, 0, 0, 43436, + 0, 0, 0, 0, 12070, 0, 881, 7857, 0, 65164, 0, 0, 118703, 0, 0, 64404, + 64321, 0, 125187, 0, 0, 11245, 129395, 69506, 71859, 0, 0, 0, 1287, + 121509, 0, 0, 0, 125264, 74152, 120504, 64545, 0, 69668, 8985, 0, 0, 0, + 0, 0, 0, 3652, 0, 0, 0, 0, 0, 279, 0, 0, 0, 0, 1489, 125189, 0, 0, 3899, + 0, 42124, 43828, 42122, 0, 0, 0, 11985, 73755, 78600, 0, 0, 10988, 0, 0, + 42138, 78610, 0, 65768, 78608, 78604, 78605, 6285, 78603, 78612, 78613, + 74339, 65767, 8685, 0, 0, 0, 78622, 78623, 68475, 11470, 64538, 78618, + 78615, 78616, 0, 0, 0, 101534, 2527, 0, 128209, 2799, 0, 0, 0, 9933, 0, + 0, 767, 5524, 7028, 0, 101520, 0, 0, 0, 78633, 67481, 0, 94011, 0, 6971, + 0, 70731, 0, 0, 118979, 126075, 2434, 94018, 0, 120579, 0, 4631, 0, 0, + 6407, 0, 19931, 0, 0, 124905, 0, 3192, 0, 8414, 0, 0, 0, 124902, 0, 9164, + 66612, 93959, 8228, 124897, 0, 0, 0, 78624, 0, 0, 9993, 0, 0, 129350, + 78631, 78632, 78629, 78630, 78627, 78628, 78625, 2399, 0, 92399, 71202, + 41208, 0, 0, 8178, 2149, 3367, 0, 78640, 78641, 78636, 78638, 78634, + 6337, 0, 92342, 0, 0, 11068, 0, 9331, 0, 74798, 9181, 0, 0, 8017, 0, 0, + 0, 0, 0, 0, 0, 12126, 129184, 129306, 0, 0, 69650, 0, 0, 0, 43436, 983744, 0, 0, 0, 0, 66845, 69249, 0, 0, 5398, 0, 127386, 93953, 0, 0, 0, 0, 0, 9476, 68899, 0, 12763, 126603, 74788, 0, 42114, 11181, 92502, 0, 0, - 0, 3469, 42107, 42116, 0, 0, 119493, 0, 9853, 69648, 9040, 101518, 64665, + 0, 3469, 42107, 42116, 0, 0, 0, 0, 9853, 69648, 9040, 101518, 64665, 119557, 0, 0, 0, 69638, 12602, 983068, 3852, 0, 67872, 12231, 11317, 0, 119812, 0, 11410, 10964, 12274, 122890, 100524, 0, 119810, 9865, 195019, 0, 0, 0, 0, 12276, 0, 124919, 0, 0, 119613, 0, 111214, 10467, 0, 2443, @@ -29218,16 +29022,16 @@ static const unsigned int code_hash[] = { 120613, 67247, 1629, 124926, 796, 0, 0, 74123, 72334, 127587, 72336, 43388, 0, 43944, 72335, 478, 65151, 0, 128147, 0, 0, 0, 0, 0, 42933, 1206, 71209, 43837, 0, 3843, 12011, 0, 3361, 0, 8121, 10715, 7578, 0, 0, - 0, 10530, 12348, 8653, 0, 73545, 0, 9551, 0, 0, 784, 0, 0, 0, 0, 0, 0, - 43937, 0, 0, 43938, 43935, 73765, 66230, 0, 0, 0, 43936, 0, 43932, 11102, - 0, 0, 42753, 67165, 0, 78324, 0, 0, 6975, 917928, 5415, 12176, 0, 0, - 3462, 43940, 42629, 78691, 128016, 43942, 0, 9759, 0, 0, 78320, 8114, - 78321, 78697, 78696, 78695, 8710, 118812, 118956, 0, 4051, 92657, 0, - 71206, 0, 0, 0, 128857, 0, 1619, 9703, 77986, 0, 42112, 0, 1875, 0, - 42109, 0, 0, 71189, 121160, 64907, 5396, 13144, 0, 0, 5575, 9675, 0, - 5940, 226, 0, 6336, 0, 0, 0, 5116, 64521, 0, 0, 0, 121390, 125048, 74138, - 0, 74139, 128447, 92249, 0, 0, 0, 0, 8935, 0, 0, 0, 0, 616, 78131, 65178, - 4684, 78701, 983899, 74631, 0, 0, 0, 74460, 42110, 0, 10870, 8557, 11054, + 0, 10530, 12348, 8653, 0, 0, 0, 9551, 0, 0, 784, 0, 0, 0, 0, 0, 0, 43937, + 0, 0, 43938, 43935, 73765, 66230, 0, 0, 0, 43936, 0, 43932, 11102, 0, 0, + 42753, 67165, 0, 78324, 0, 0, 6975, 917928, 5415, 12176, 0, 0, 3462, + 43940, 42629, 78691, 128016, 43942, 0, 9759, 0, 0, 78320, 8114, 78321, + 78697, 78696, 78695, 8710, 118812, 118956, 0, 4051, 92657, 0, 71206, 0, + 0, 0, 128857, 0, 1619, 9703, 77986, 0, 42112, 0, 1875, 0, 42109, 0, 0, + 71189, 121160, 64907, 5396, 13144, 0, 0, 5575, 9675, 0, 5940, 226, 0, + 6336, 0, 0, 0, 5116, 64521, 0, 0, 0, 121390, 125048, 74138, 0, 74139, + 128447, 92249, 0, 0, 0, 0, 8935, 0, 0, 0, 0, 616, 78131, 65178, 4684, + 78701, 983899, 74631, 0, 0, 0, 74460, 42110, 0, 10870, 8557, 11054, 68664, 0, 0, 0, 122629, 0, 0, 0, 0, 65597, 0, 7651, 6846, 0, 0, 68868, 0, 0, 118966, 129302, 40997, 127218, 0, 0, 40998, 0, 74488, 71182, 9800, 0, 0, 0, 41000, 0, 5114, 55263, 3386, 70730, 42574, 0, 5115, 5394, 0, @@ -29237,55 +29041,55 @@ static const unsigned int code_hash[] = { 4514, 72149, 0, 0, 0, 65041, 10965, 120905, 0, 0, 12542, 0, 65341, 0, 65829, 0, 0, 10475, 0, 0, 0, 0, 11795, 0, 0, 2164, 127102, 127101, 74956, 7099, 11275, 67681, 127096, 0, 9336, 0, 42626, 43966, 7798, 64474, 64259, - 0, 5730, 119809, 43018, 983175, 93796, 0, 0, 0, 69401, 0, 0, 5127, 11285, + 0, 5730, 119809, 43018, 983174, 93796, 0, 0, 0, 69401, 0, 0, 5127, 11285, 0, 5495, 4273, 0, 74765, 10849, 6346, 5493, 6342, 68636, 74319, 5492, 0, 0, 169, 5497, 125053, 0, 0, 68198, 0, 0, 128417, 0, 0, 12738, 0, 983076, 5321, 0, 0, 0, 5323, 120732, 9773, 125209, 4683, 74318, 0, 68823, 0, 0, 0, 0, 129553, 0, 123562, 0, 0, 834, 0, 1803, 0, 5733, 0, 0, 71312, 5731, - 1381, 2891, 128639, 0, 127212, 64525, 0, 2881, 92996, 93847, 9601, 2879, - 0, 0, 73129, 5729, 0, 0, 0, 64881, 127905, 9361, 0, 2887, 0, 3526, 6298, - 0, 121219, 0, 0, 0, 8572, 127863, 77896, 0, 71174, 0, 0, 71197, 0, 12096, - 0, 0, 0, 110745, 71176, 110746, 65279, 0, 121236, 5734, 0, 0, 0, 0, 0, + 1381, 2891, 0, 0, 127212, 64525, 0, 2881, 92996, 93847, 9601, 2879, 0, 0, + 73129, 5729, 0, 0, 0, 64881, 127905, 9361, 0, 2887, 0, 3526, 6298, 0, + 121219, 0, 0, 0, 8572, 127863, 77896, 0, 71174, 0, 0, 71197, 0, 12096, 0, + 0, 0, 110745, 71176, 110746, 65279, 0, 121236, 5734, 0, 0, 0, 0, 0, 41641, 12717, 0, 12552, 983615, 66713, 0, 0, 41643, 110747, 0, 8713, 41640, 78657, 41645, 66712, 125196, 0, 66726, 66711, 0, 93994, 0, 3472, 64863, 0, 121424, 0, 0, 0, 125203, 67837, 0, 0, 0, 0, 0, 0, 121440, 0, 0, 129461, 119008, 92402, 65017, 0, 0, 66668, 0, 0, 0, 0, 0, 119822, 0, 0, - 124148, 0, 0, 0, 0, 0, 0, 0, 0, 121043, 66471, 12216, 0, 40988, 0, 0, 0, - 0, 0, 2396, 129078, 0, 0, 0, 64940, 0, 8321, 119823, 128165, 100409, - 83299, 996, 0, 0, 4249, 0, 83294, 92535, 8222, 0, 118875, 71213, 0, 0, 0, - 0, 8534, 72844, 40983, 0, 125195, 0, 12551, 73960, 125193, 74469, 12558, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 121043, 66471, 12216, 0, 40988, 0, 0, 0, 0, 0, + 2396, 129078, 0, 0, 0, 64940, 0, 8321, 119823, 128165, 100409, 83299, + 996, 0, 0, 4249, 0, 83294, 92535, 8222, 0, 118875, 71213, 0, 0, 0, 0, + 8534, 72844, 40983, 0, 125195, 0, 12551, 73960, 125193, 74469, 12558, 121039, 0, 10052, 40982, 129371, 0, 0, 0, 127403, 0, 917559, 0, 78364, 1563, 0, 0, 19911, 0, 0, 0, 71363, 0, 7797, 78708, 10006, 0, 3308, 119134, 74940, 0, 0, 78488, 0, 0, 0, 0, 0, 128462, 9200, 10046, 9612, 0, 8218, 66496, 0, 43742, 78489, 0, 0, 0, 0, 67826, 0, 70056, 508, 128585, 0, 126539, 0, 0, 0, 0, 0, 0, 0, 124950, 0, 194601, 0, 0, 0, 0, 6659, 0, 0, 0, 0, 0, 0, 41634, 0, 41639, 71169, 11941, 0, 0, 0, 42180, 68505, - 43753, 3249, 41637, 93982, 12328, 501, 93985, 10601, 129783, 6503, 0, - 92192, 0, 71181, 0, 6505, 74010, 0, 13064, 126112, 121105, 6500, 5526, 0, + 43753, 3249, 41637, 93982, 12328, 501, 93985, 10601, 0, 6503, 0, 92192, + 0, 71181, 0, 6505, 74010, 0, 13064, 126112, 121105, 6500, 5526, 0, 128949, 0, 0, 92376, 0, 9678, 120832, 0, 41706, 0, 0, 0, 8936, 92964, - 119123, 4208, 0, 0, 0, 67742, 0, 74379, 128605, 0, 0, 92422, 983110, 0, + 119123, 4208, 0, 0, 0, 67742, 0, 74379, 128605, 0, 0, 92422, 983109, 0, 66475, 0, 5027, 0, 0, 0, 5069, 0, 5028, 0, 0, 0, 5026, 0, 0, 6331, 0, 0, 0, 0, 41076, 0, 74790, 0, 0, 0, 0, 5029, 0, 5317, 3598, 0, 41070, 92166, 11185, 6663, 0, 6507, 0, 126079, 0, 1716, 983710, 0, 917824, 620, 41001, - 0, 917823, 43758, 0, 71116, 5024, 0, 41003, 0, 5025, 7297, 122988, 75039, + 0, 917823, 43758, 0, 71116, 5024, 0, 41003, 0, 5025, 7297, 0, 75039, 69745, 119328, 65557, 0, 0, 983599, 0, 0, 0, 0, 43947, 43946, 0, 0, - 128363, 6105, 0, 119325, 983230, 0, 68203, 43945, 66491, 43939, 0, 68144, + 128363, 6105, 0, 119325, 983227, 0, 68203, 43945, 66491, 43939, 0, 68144, 78718, 2301, 0, 0, 66490, 6979, 101561, 7721, 0, 0, 1592, 0, 0, 121096, - 41048, 129358, 829, 0, 92406, 0, 73541, 0, 41056, 0, 118665, 10953, + 41048, 129358, 829, 0, 92406, 0, 120247, 0, 41056, 0, 118665, 10953, 41066, 0, 917813, 482, 101554, 0, 0, 43606, 71185, 0, 917926, 0, 72262, 110863, 72421, 12050, 0, 5315, 917817, 0, 0, 42061, 917816, 0, 0, 68417, 917815, 0, 0, 42059, 0, 0, 120723, 42058, 3960, 11043, 11337, 121358, 0, 92824, 3958, 101568, 0, 917818, 0, 917819, 0, 0, 42064, 11959, 983714, 0, - 0, 0, 0, 73511, 64336, 10478, 92629, 70350, 118692, 0, 0, 42437, 1555, 0, - 8691, 129656, 2215, 41662, 119046, 0, 0, 0, 93952, 0, 66481, 41664, 0, + 0, 0, 0, 128498, 64336, 10478, 92629, 70350, 118692, 0, 0, 42437, 1555, + 0, 8691, 129656, 2215, 41662, 119046, 0, 0, 0, 93952, 0, 66481, 41664, 0, 42578, 0, 41661, 78715, 78714, 9356, 0, 129544, 0, 1286, 110701, 0, 0, - 983208, 128925, 42476, 0, 11156, 78895, 0, 0, 101583, 72123, 0, 10020, - 43359, 72827, 0, 120946, 41627, 0, 11979, 0, 41628, 533, 11931, 65225, 0, + 983206, 128925, 42476, 0, 11156, 0, 0, 0, 101583, 72123, 0, 10020, 43359, + 72827, 0, 120946, 41627, 0, 11979, 0, 41628, 533, 11931, 65225, 0, 125122, 129994, 0, 68118, 0, 4377, 0, 0, 8587, 72097, 13193, 64350, 68233, 0, 41924, 0, 7735, 0, 127585, 120843, 0, 65820, 0, 0, 43461, 7757, 0, 0, 43787, 66493, 77943, 4168, 43904, 73952, 0, 0, 121072, 4440, 43902, 77948, 66837, 77946, 43903, 77944, 77945, 0, 120909, 120826, 120226, - 66492, 43901, 64625, 0, 0, 0, 0, 10013, 64434, 0, 983113, 0, 11782, + 66492, 43901, 64625, 0, 0, 0, 0, 10013, 64434, 0, 983112, 0, 11782, 64382, 0, 0, 0, 0, 41630, 630, 120960, 0, 0, 70165, 1043, 93017, 0, 0, 0, 124945, 313, 129590, 0, 0, 65593, 7445, 43906, 5750, 42258, 0, 55222, 68222, 11268, 11225, 0, 8526, 0, 0, 43894, 66495, 69990, 0, 92990, 0, @@ -29312,8 +29116,8 @@ static const unsigned int code_hash[] = { 19940, 43668, 41667, 0, 0, 1923, 0, 0, 0, 0, 0, 0, 0, 0, 6464, 92750, 2996, 125221, 0, 68481, 41835, 4047, 41842, 0, 0, 129601, 0, 0, 0, 0, 293, 0, 0, 64791, 41827, 0, 0, 10579, 8560, 0, 0, 118835, 4803, 73805, - 1739, 0, 3900, 128967, 73737, 0, 72451, 73957, 0, 66474, 41971, 0, 0, 0, - 0, 0, 11716, 66473, 0, 92647, 0, 78920, 0, 0, 0, 0, 0, 0, 0, 6632, 73861, + 1739, 0, 3900, 128967, 73737, 0, 0, 73957, 0, 66474, 41971, 0, 0, 0, 0, + 0, 11716, 66473, 0, 92647, 0, 128080, 0, 0, 0, 0, 0, 0, 0, 6632, 73861, 0, 74770, 0, 0, 8914, 0, 0, 3183, 1435, 0, 0, 0, 0, 0, 0, 5746, 67392, 0, 0, 0, 83506, 0, 7082, 71481, 12618, 5059, 983597, 83524, 43604, 0, 0, 0, 0, 0, 0, 8227, 0, 1218, 0, 64416, 65848, 92884, 0, 0, 0, 126987, 0, 0, 0, @@ -29321,40 +29125,40 @@ static const unsigned int code_hash[] = { 65905, 0, 42662, 0, 121159, 0, 129536, 0, 7794, 0, 42953, 6377, 0, 126080, 3669, 3968, 0, 71319, 69658, 129550, 0, 66296, 118616, 0, 0, 0, 124998, 6699, 126120, 0, 0, 66678, 0, 0, 0, 8409, 119527, 19967, 0, 0, - 9502, 0, 0, 6115, 0, 41654, 0, 0, 0, 41655, 113779, 43975, 72427, 128080, - 0, 0, 0, 41657, 10778, 0, 9533, 184, 1553, 128868, 69574, 0, 0, 0, - 129420, 0, 101589, 983576, 73697, 0, 92480, 0, 128938, 74292, 0, 5157, - 4020, 0, 128154, 43788, 64818, 0, 0, 0, 92979, 0, 0, 74377, 11029, 66651, - 0, 0, 125202, 0, 0, 7877, 121070, 101411, 0, 119828, 2810, 9955, 0, - 69375, 42817, 0, 65122, 11715, 0, 0, 0, 71270, 0, 0, 0, 0, 0, 70199, 0, - 0, 0, 0, 0, 0, 127862, 0, 0, 0, 78222, 127981, 0, 0, 0, 0, 0, 11290, 0, - 0, 0, 0, 8315, 0, 0, 0, 74595, 0, 0, 0, 42531, 0, 0, 0, 74589, 43993, 0, - 0, 0, 0, 43690, 0, 119139, 42730, 0, 0, 0, 64926, 0, 0, 43830, 65257, 0, - 42728, 0, 128697, 123150, 0, 43540, 0, 0, 12725, 72993, 78635, 127826, - 223, 0, 69675, 0, 0, 0, 0, 0, 0, 42605, 0, 0, 0, 0, 0, 0, 0, 0, 78621, 0, - 78619, 119062, 0, 0, 0, 42676, 129353, 64800, 78617, 83504, 68126, 1213, - 0, 0, 797, 0, 0, 83021, 83005, 64387, 4115, 0, 0, 0, 129857, 10679, - 83001, 121091, 0, 64276, 83498, 13168, 83011, 0, 10136, 0, 0, 65088, 0, - 4262, 129866, 0, 0, 10701, 0, 3101, 0, 123204, 0, 0, 11373, 0, 0, 12731, - 9117, 0, 0, 4539, 0, 0, 12727, 0, 0, 0, 43684, 74567, 68877, 983726, - 12724, 73940, 0, 0, 0, 0, 0, 7947, 12003, 0, 74593, 121140, 69653, 74807, - 42018, 0, 0, 0, 65888, 0, 0, 69683, 0, 120306, 0, 0, 12595, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 69848, 68307, 0, 4405, 0, 128336, 129032, 69216, 0, - 128011, 118656, 0, 6817, 67400, 120314, 0, 0, 998, 0, 13105, 120313, - 64327, 1558, 0, 1991, 7882, 0, 0, 0, 530, 0, 0, 0, 12002, 0, 68422, 0, - 10979, 0, 41823, 70696, 0, 0, 7896, 0, 66676, 0, 120325, 0, 0, 129407, - 94033, 0, 6311, 110725, 41698, 0, 12049, 78133, 0, 125020, 41705, 0, 0, - 121298, 0, 66822, 0, 65389, 0, 66027, 0, 0, 41699, 8340, 0, 69776, 0, - 78921, 0, 1988, 5407, 69978, 0, 65912, 93059, 0, 2336, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 126238, 0, 19913, 0, 113733, 0, 0, 74279, 0, 10956, 0, 41674, - 19964, 41679, 65084, 41675, 195031, 0, 0, 0, 0, 983089, 0, 10794, 128961, - 13217, 0, 0, 0, 5280, 0, 0, 12905, 41610, 11532, 0, 0, 768, 120545, 442, - 0, 0, 0, 64081, 41682, 0, 41693, 0, 77993, 77994, 0, 4804, 6994, 983115, - 0, 0, 41696, 467, 983934, 0, 0, 0, 0, 8678, 0, 69682, 64801, 0, 0, 0, - 2193, 64093, 12043, 0, 69666, 0, 2029, 65191, 119246, 42847, 0, 0, 0, 0, - 0, 0, 0, 70339, 126116, 0, 0, 8019, 73856, 0, 0, 0, 118709, 2355, 12150, - 65725, 77988, 77989, 68033, 77987, 0, 77985, 0, 0, 68388, 0, 74171, 0, 0, - 0, 11301, 78013, 78008, 78010, 9874, 78007, 983331, 71064, 3050, 0, 0, 0, + 9502, 0, 0, 6115, 0, 41654, 0, 0, 0, 41655, 113779, 43975, 72427, 0, 0, + 0, 0, 41657, 10778, 0, 9533, 184, 1553, 128868, 69574, 0, 0, 0, 129420, + 0, 101589, 983576, 73697, 0, 92480, 0, 128938, 74292, 0, 5157, 4020, 0, + 128154, 43788, 64818, 0, 0, 0, 92979, 0, 0, 74377, 11029, 66651, 0, 0, + 125202, 0, 0, 7877, 121070, 101411, 0, 119828, 2810, 9955, 0, 0, 42817, + 0, 65122, 11715, 0, 0, 0, 71270, 0, 0, 0, 0, 0, 70199, 0, 0, 0, 0, 0, 0, + 127862, 0, 0, 0, 78222, 127981, 0, 0, 0, 0, 0, 11290, 0, 0, 0, 0, 8315, + 0, 0, 0, 74595, 0, 0, 0, 42531, 0, 0, 0, 74589, 43993, 0, 0, 0, 0, 43690, + 0, 119139, 42730, 0, 0, 0, 64926, 0, 0, 43830, 65257, 0, 42728, 0, + 128697, 123150, 0, 43540, 0, 0, 12725, 72993, 78635, 127826, 223, 0, + 69675, 0, 0, 0, 0, 0, 0, 42605, 0, 0, 0, 0, 0, 0, 0, 0, 78621, 0, 78619, + 119062, 0, 0, 0, 42676, 129353, 64800, 78617, 83504, 68126, 1213, 0, 0, + 797, 0, 0, 83021, 83005, 64387, 4115, 0, 0, 0, 129857, 10679, 83001, + 121091, 0, 64276, 83498, 13168, 83011, 0, 10136, 0, 0, 65088, 0, 4262, + 129866, 0, 0, 10701, 0, 3101, 0, 123204, 0, 0, 11373, 0, 0, 12731, 9117, + 0, 0, 4539, 0, 0, 12727, 0, 0, 0, 43684, 74567, 68877, 983726, 12724, + 73940, 0, 0, 0, 0, 0, 7947, 12003, 0, 74593, 121140, 69653, 74807, 42018, + 0, 0, 0, 65888, 0, 0, 69683, 0, 120306, 0, 0, 12595, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 69848, 68307, 0, 4405, 0, 128336, 129032, 69216, 0, 128011, + 118656, 0, 6817, 67400, 120314, 0, 0, 998, 0, 13105, 120313, 64327, 1558, + 0, 1991, 7882, 0, 0, 0, 530, 0, 0, 0, 12002, 0, 68422, 0, 10979, 0, + 41823, 70696, 0, 0, 7896, 0, 66676, 0, 120325, 0, 0, 129407, 94033, 0, + 6311, 110725, 41698, 0, 12049, 78133, 0, 125020, 41705, 0, 0, 121298, 0, + 66822, 0, 65389, 0, 66027, 0, 0, 41699, 8340, 0, 69776, 0, 128639, 0, + 1988, 5407, 69978, 0, 65912, 93059, 0, 2336, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 126238, 0, 19913, 0, 113733, 0, 0, 74279, 0, 10956, 0, 41674, 19964, + 41679, 65084, 41675, 195031, 0, 0, 0, 0, 983089, 0, 10794, 128961, 13217, + 0, 0, 0, 5280, 0, 0, 12905, 41610, 11532, 0, 0, 768, 120545, 442, 0, 0, + 0, 64081, 41682, 0, 41693, 0, 77993, 77994, 0, 4804, 6994, 983114, 0, 0, + 41696, 467, 983934, 0, 0, 0, 0, 8678, 0, 69682, 64801, 0, 0, 0, 2193, + 64093, 12043, 0, 69666, 0, 2029, 65191, 119246, 42847, 0, 0, 0, 0, 0, 0, + 0, 70339, 126116, 0, 0, 8019, 73856, 0, 0, 0, 118709, 2355, 12150, 65725, + 77988, 77989, 68033, 77987, 0, 77985, 0, 0, 68388, 0, 74171, 0, 0, 0, + 11301, 78013, 78008, 78010, 9874, 78007, 983328, 71064, 3050, 0, 0, 0, 78016, 78017, 71852, 78015, 0, 0, 0, 92242, 0, 69642, 0, 0, 43883, 0, 0, 0, 78025, 0, 78023, 78024, 11847, 10545, 0, 10887, 0, 123179, 0, 0, 0, 83352, 64942, 92363, 9996, 8508, 0, 0, 8195, 0, 42171, 0, 3722, 0, 63751, @@ -29366,60 +29170,59 @@ static const unsigned int code_hash[] = { 68495, 74131, 74130, 0, 0, 0, 611, 74129, 64871, 129958, 0, 0, 0, 74854, 0, 70466, 0, 0, 0, 121147, 0, 68487, 41669, 7094, 917921, 0, 123144, 74054, 0, 0, 0, 839, 0, 7695, 0, 0, 0, 92202, 0, 121053, 123157, 67885, - 0, 7206, 0, 6647, 43986, 129743, 0, 0, 122646, 0, 0, 127936, 43748, - 66746, 0, 12298, 110802, 984011, 110800, 64924, 0, 73931, 9468, 74245, 0, - 0, 74246, 0, 0, 118830, 0, 71851, 1279, 0, 6224, 0, 92405, 128601, - 129886, 128997, 0, 0, 0, 5032, 0, 0, 0, 0, 0, 5034, 0, 0, 72846, 42702, - 0, 0, 13294, 0, 64869, 0, 67808, 9129, 123632, 0, 0, 120819, 68387, - 120168, 120169, 120170, 120171, 5518, 4174, 120166, 66932, 120160, - 120161, 120162, 434, 41437, 66212, 120158, 120159, 0, 0, 118867, 0, 524, - 0, 74029, 0, 126559, 0, 0, 0, 10355, 10419, 74025, 77847, 0, 69725, 0, - 120656, 0, 67876, 0, 0, 0, 74145, 74039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 5445, 0, 93779, 71855, 7391, 8989, 0, 74068, 0, 0, 0, 0, 4962, 120409, - 8855, 0, 70820, 0, 0, 0, 0, 71847, 0, 120406, 0, 10451, 0, 67653, 120153, - 12443, 120155, 9947, 120149, 120150, 120151, 13128, 0, 120146, 120147, 0, - 0, 0, 0, 0, 129715, 74059, 74062, 6217, 74053, 43846, 0, 74049, 0, 0, 0, - 0, 0, 0, 0, 0, 42595, 0, 68112, 118860, 0, 0, 92497, 74949, 128953, - 126245, 0, 0, 0, 42997, 122984, 119251, 0, 0, 0, 0, 0, 6216, 0, 0, 9455, - 127027, 8124, 128851, 0, 6944, 0, 0, 0, 2828, 128550, 531, 42638, 0, 0, - 129888, 43428, 0, 3614, 2827, 9696, 0, 129711, 0, 4354, 0, 78562, 78561, - 0, 118553, 0, 42599, 42597, 0, 68829, 125012, 0, 127277, 0, 120421, 0, - 983165, 0, 0, 10121, 120422, 74950, 123142, 69715, 0, 0, 120423, 120630, - 12608, 125244, 0, 74144, 9700, 12580, 0, 128911, 0, 71864, 0, 74071, 0, - 0, 12713, 0, 70402, 0, 0, 0, 1734, 0, 0, 0, 119491, 118951, 231, 0, - 74167, 542, 0, 0, 0, 0, 128074, 0, 121343, 0, 4446, 10584, 74235, 0, - 4037, 0, 0, 0, 5687, 0, 0, 0, 0, 0, 0, 78434, 92816, 0, 113709, 74284, 0, - 0, 0, 126495, 0, 0, 0, 74482, 93978, 1709, 69721, 9909, 92286, 0, 0, 0, - 55229, 8667, 0, 0, 0, 0, 0, 0, 0, 0, 127586, 1226, 6930, 124146, 71736, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 41500, 0, 311, 74282, 6221, 92988, 0, 67682, - 0, 120528, 122901, 74272, 0, 0, 0, 0, 69667, 0, 124933, 74456, 74302, - 42589, 0, 0, 0, 0, 64847, 0, 66987, 0, 41508, 0, 323, 125211, 0, 42698, - 8131, 0, 4625, 0, 4630, 0, 0, 0, 74316, 78417, 2668, 92483, 0, 42640, 0, - 2519, 0, 92474, 92479, 0, 983085, 5049, 42659, 119011, 64705, 7754, - 10854, 8738, 74623, 0, 0, 0, 649, 0, 0, 73480, 0, 0, 1013, 70707, 68212, - 705, 0, 0, 127803, 1183, 126519, 9320, 0, 0, 8157, 0, 0, 0, 0, 0, 0, 0, - 11913, 0, 42848, 0, 64925, 0, 0, 70693, 0, 0, 2051, 0, 0, 0, 66988, 0, 0, - 0, 8466, 0, 4626, 8464, 8472, 68844, 4629, 8499, 0, 0, 4624, 194623, 0, - 94025, 0, 7805, 0, 94007, 6935, 0, 0, 0, 0, 0, 0, 0, 8492, 0, 8459, 0, - 8497, 8496, 0, 129864, 0, 0, 129834, 69553, 73476, 0, 65849, 0, 0, 0, - 12451, 3328, 8684, 0, 6102, 0, 5298, 110881, 5294, 0, 129615, 0, 0, 0, 0, - 43617, 0, 0, 0, 0, 0, 77863, 128695, 0, 0, 0, 0, 0, 5292, 0, 0, 42688, - 5302, 3970, 73516, 0, 1793, 0, 0, 0, 0, 0, 65263, 0, 0, 0, 0, 0, 0, - 13219, 9569, 69567, 74383, 0, 0, 72157, 0, 42949, 0, 0, 0, 5322, 0, 0, - 43631, 5324, 0, 128694, 41614, 65269, 6230, 0, 0, 0, 3360, 0, 11523, - 72726, 92488, 9926, 7197, 0, 68429, 126575, 41821, 1249, 0, 127951, 0, - 123641, 0, 0, 0, 74459, 41807, 0, 41815, 0, 0, 0, 119918, 0, 128248, 0, - 66835, 0, 0, 72145, 41800, 0, 0, 0, 41811, 74466, 93966, 6670, 77882, 0, - 0, 43092, 0, 0, 0, 0, 0, 128655, 0, 0, 0, 0, 74501, 74005, 0, 74387, - 69860, 315, 12813, 128556, 72409, 0, 72408, 0, 0, 73061, 0, 0, 1378, 0, - 0, 0, 72407, 3066, 0, 0, 72406, 0, 0, 0, 8787, 194615, 0, 41618, 0, 0, 0, - 194614, 64652, 194611, 42088, 125226, 0, 0, 0, 0, 7176, 43756, 0, 122649, - 74492, 0, 74534, 0, 0, 0, 127199, 0, 128630, 74525, 0, 194594, 12930, - 7168, 74514, 0, 74515, 0, 128919, 43962, 9527, 120659, 70123, 12977, - 69723, 0, 93783, 194598, 41236, 92235, 65168, 118838, 41237, 5848, 0, - 194600, 3670, 129905, 129906, 129907, 129908, 7890, 0, 11298, 0, 0, 6229, - 0, 0, 0, 194593, 128907, 0, 0, 194592, 4120, 65337, 65336, 0, 0, 0, 0, - 9366, 0, 0, 0, 65327, 65326, 65325, 65324, 65323, 42216, 65321, 65320, + 0, 7206, 0, 6647, 43986, 0, 0, 0, 122646, 0, 0, 127936, 43748, 66746, 0, + 12298, 110802, 984011, 110800, 64924, 0, 73931, 9468, 74245, 0, 0, 74246, + 0, 0, 118830, 0, 71851, 1279, 0, 6224, 0, 92405, 128601, 129886, 128997, + 0, 0, 0, 5032, 0, 0, 0, 0, 0, 5034, 0, 0, 72846, 42702, 0, 0, 13294, 0, + 64869, 0, 67808, 9129, 123632, 0, 0, 120819, 68387, 120168, 120169, + 120170, 120171, 5518, 4174, 120166, 66932, 120160, 120161, 120162, 434, + 41437, 66212, 120158, 120159, 0, 0, 118867, 0, 524, 0, 74029, 0, 126559, + 0, 0, 0, 10355, 10419, 74025, 77847, 0, 69725, 0, 120656, 0, 67876, 0, 0, + 0, 74145, 74039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5445, 0, 93779, 71855, + 7391, 8989, 0, 74068, 0, 0, 0, 0, 4962, 120409, 8855, 0, 70820, 0, 0, 0, + 0, 71847, 0, 120406, 0, 10451, 0, 67653, 120153, 12443, 120155, 9947, + 120149, 120150, 120151, 13128, 0, 120146, 120147, 0, 0, 0, 0, 0, 129715, + 74059, 74062, 6217, 74053, 43846, 0, 74049, 0, 0, 0, 0, 0, 0, 0, 0, + 42595, 0, 68112, 118860, 0, 0, 92497, 74949, 128953, 126245, 0, 0, 0, + 42997, 0, 119251, 0, 0, 0, 0, 0, 6216, 0, 0, 9455, 127027, 8124, 128851, + 0, 6944, 0, 0, 0, 2828, 128550, 531, 42638, 0, 0, 129888, 43428, 0, 3614, + 2827, 9696, 0, 0, 0, 4354, 0, 78562, 78561, 0, 118553, 0, 42599, 42597, + 0, 68829, 125012, 0, 127277, 0, 120421, 0, 983164, 0, 0, 10121, 120422, + 74950, 123142, 69715, 0, 0, 120423, 120630, 12608, 125244, 0, 74144, + 9700, 12580, 0, 128911, 0, 71864, 0, 74071, 0, 0, 12713, 0, 70402, 0, 0, + 0, 1734, 0, 0, 0, 0, 118951, 231, 0, 74167, 542, 0, 0, 0, 0, 128074, 0, + 121343, 0, 4446, 10584, 74235, 0, 4037, 0, 0, 0, 5687, 0, 0, 0, 0, 0, 0, + 78434, 92816, 0, 113709, 74284, 0, 0, 0, 126495, 0, 0, 0, 74482, 93978, + 1709, 69721, 9909, 92286, 0, 0, 0, 55229, 8667, 0, 0, 0, 0, 0, 0, 0, 0, + 127586, 1226, 6930, 0, 71736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41500, 0, 311, + 74282, 6221, 92988, 0, 67682, 0, 120528, 122901, 74272, 0, 0, 0, 0, + 69667, 0, 124933, 74456, 74302, 42589, 0, 0, 0, 0, 64847, 0, 66987, 0, + 41508, 0, 323, 125211, 0, 42698, 8131, 0, 4625, 0, 4630, 0, 0, 0, 74316, + 78417, 2668, 92483, 0, 42640, 0, 2519, 0, 92474, 92479, 0, 983085, 5049, + 42659, 119011, 64705, 7754, 10854, 8738, 74623, 0, 0, 0, 649, 0, 0, 0, 0, + 0, 1013, 70707, 68212, 705, 0, 0, 127803, 1183, 126519, 9320, 0, 0, 8157, + 0, 0, 0, 0, 0, 0, 0, 11913, 0, 42848, 0, 64925, 0, 0, 70693, 0, 0, 2051, + 0, 0, 0, 66988, 0, 0, 0, 8466, 0, 4626, 8464, 8472, 68844, 4629, 8499, 0, + 0, 4624, 194623, 0, 94025, 0, 7805, 0, 94007, 6935, 0, 0, 0, 0, 0, 0, 0, + 8492, 0, 8459, 0, 8497, 8496, 0, 129864, 0, 0, 129834, 69553, 0, 0, + 65849, 0, 0, 0, 12451, 3328, 8684, 0, 6102, 0, 5298, 110881, 5294, 0, + 129615, 0, 0, 0, 0, 43617, 0, 0, 0, 0, 0, 77863, 128695, 0, 0, 0, 0, 0, + 5292, 0, 0, 42688, 5302, 3970, 0, 0, 1793, 0, 0, 0, 0, 0, 65263, 0, 0, 0, + 0, 0, 0, 13219, 9569, 69567, 74383, 0, 0, 72157, 0, 42949, 0, 0, 0, 5322, + 0, 0, 43631, 5324, 0, 128694, 41614, 65269, 6230, 0, 0, 0, 3360, 0, + 11523, 72726, 92488, 9926, 7197, 0, 68429, 126575, 41821, 1249, 0, + 127951, 0, 123641, 0, 0, 0, 74459, 41807, 0, 41815, 0, 0, 0, 119918, 0, + 128248, 0, 66835, 0, 0, 72145, 41800, 0, 0, 0, 41811, 74466, 93966, 6670, + 77882, 0, 0, 43092, 0, 0, 0, 0, 0, 128655, 0, 0, 0, 0, 74501, 74005, 0, + 74387, 69860, 315, 12813, 128556, 72409, 0, 72408, 0, 0, 73061, 0, 0, + 1378, 0, 0, 0, 72407, 3066, 0, 0, 72406, 0, 0, 0, 8787, 194615, 0, 41618, + 0, 0, 0, 194614, 64652, 194611, 42088, 125226, 0, 0, 0, 0, 7176, 43756, + 0, 122649, 74492, 0, 74534, 0, 0, 0, 127199, 0, 128630, 74525, 0, 194594, + 12930, 7168, 74514, 0, 74515, 0, 128919, 43962, 9527, 120659, 70123, + 12977, 69723, 0, 93783, 194598, 41236, 92235, 65168, 118838, 41237, 5848, + 0, 194600, 3670, 129905, 129906, 129907, 129908, 7890, 0, 11298, 0, 0, + 6229, 0, 0, 0, 194593, 128907, 0, 0, 194592, 4120, 65337, 65336, 0, 0, 0, + 0, 9366, 0, 0, 0, 65327, 65326, 65325, 65324, 65323, 42216, 65321, 65320, 65335, 65334, 65333, 65332, 65331, 65330, 65329, 42689, 0, 43943, 118885, 42073, 6785, 68491, 0, 42076, 7196, 65318, 2035, 65316, 4106, 65314, 65313, 42074, 0, 41228, 0, 0, 41241, 93786, 41239, 43533, 0, 7189, @@ -29430,161 +29233,161 @@ static const unsigned int code_hash[] = { 83043, 0, 68296, 0, 2823, 0, 0, 0, 2831, 0, 0, 11465, 0, 0, 0, 0, 0, 7181, 92855, 41332, 0, 12333, 0, 0, 0, 124914, 0, 9883, 127294, 73906, 70751, 0, 71863, 0, 0, 0, 0, 0, 0, 43741, 0, 8166, 70739, 0, 0, 74535, 0, - 65297, 68294, 571, 0, 8752, 0, 5288, 118822, 1541, 0, 127284, 8864, 0, - 73559, 0, 0, 0, 113778, 12151, 0, 66874, 0, 1035, 0, 0, 7881, 701, 65936, - 128493, 0, 70462, 0, 11403, 0, 0, 82991, 0, 983143, 70472, 3994, 11421, + 65297, 68294, 571, 0, 8752, 0, 5288, 118822, 1541, 0, 127284, 8864, 0, 0, + 0, 0, 0, 113778, 12151, 0, 66874, 0, 1035, 0, 0, 7881, 701, 65936, + 128493, 0, 70462, 0, 11403, 0, 0, 82991, 0, 983142, 70472, 3994, 11421, 121217, 127297, 127242, 127300, 70659, 127303, 0, 125205, 2855, 127828, 0, 41621, 68214, 0, 0, 10654, 82945, 119226, 12164, 41623, 7906, 0, 74297, 7182, 0, 83069, 0, 0, 0, 0, 121115, 0, 0, 747, 0, 92463, 12019, 43136, 0, 110861, 0, 0, 8001, 0, 0, 69394, 0, 0, 0, 68373, 0, 0, 0, - 128279, 0, 71915, 0, 129742, 7282, 94066, 0, 0, 0, 0, 0, 5286, 83061, 0, - 3718, 0, 83057, 78933, 124906, 71905, 0, 128480, 0, 0, 0, 0, 9206, 82980, - 113824, 6802, 0, 41653, 0, 1241, 0, 0, 0, 0, 68124, 41651, 42937, 0, - 83042, 41650, 0, 83037, 0, 12914, 2814, 0, 119552, 120691, 0, 0, 71968, - 0, 0, 0, 917546, 71862, 0, 0, 0, 3494, 10189, 69784, 0, 0, 71861, 0, 0, - 65875, 0, 0, 127762, 0, 74215, 43065, 0, 0, 7200, 0, 3261, 0, 0, 0, - 65889, 71888, 71975, 0, 0, 0, 0, 0, 77793, 0, 0, 129424, 77791, 635, 0, - 0, 74753, 0, 92420, 73997, 0, 0, 43905, 0, 118834, 126125, 0, 6667, 0, - 983268, 0, 0, 125200, 0, 0, 0, 0, 83137, 0, 0, 0, 0, 0, 121104, 127856, - 125112, 71885, 0, 120125, 7866, 194573, 92770, 194574, 0, 120140, 126074, - 2849, 0, 0, 42157, 12960, 0, 11812, 0, 74509, 0, 69881, 0, 0, 0, 123156, - 7178, 0, 0, 0, 0, 129041, 11534, 1967, 0, 0, 71361, 7015, 120298, 72757, - 0, 12989, 0, 9368, 983638, 1624, 43270, 0, 0, 10818, 0, 83091, 0, 120908, - 0, 0, 0, 0, 0, 0, 6169, 12871, 0, 2798, 65176, 4958, 42752, 119025, 0, 0, - 0, 70346, 66448, 0, 113780, 68364, 0, 0, 0, 68360, 0, 73746, 120945, - 68352, 0, 73787, 83110, 2154, 7199, 64955, 0, 0, 0, 0, 71980, 66507, 0, - 69853, 0, 0, 0, 0, 0, 0, 0, 92517, 118882, 120301, 13297, 0, 129446, - 71963, 0, 0, 0, 6658, 8045, 0, 0, 983873, 92319, 83101, 0, 72126, 0, 0, - 0, 2416, 3310, 0, 0, 379, 0, 43755, 0, 0, 0, 68362, 1284, 0, 73756, 0, 0, - 83141, 70784, 71977, 0, 0, 0, 8515, 83144, 83143, 0, 0, 0, 8529, 93782, - 0, 7564, 0, 0, 0, 0, 73757, 73760, 42359, 0, 2031, 0, 7202, 129984, - 12676, 0, 0, 128418, 0, 7710, 1610, 73801, 0, 0, 118706, 983607, 43917, - 0, 9974, 228, 0, 10398, 0, 0, 0, 92241, 70062, 118927, 42999, 1725, - 65533, 8196, 9352, 0, 0, 66868, 0, 8502, 5762, 0, 0, 43898, 0, 0, 0, 0, - 43914, 0, 126507, 64598, 13001, 9326, 83082, 43916, 1557, 0, 983879, - 6330, 6805, 8631, 2545, 70052, 0, 0, 0, 42998, 70410, 0, 42762, 71941, - 42914, 126516, 262, 1637, 0, 83025, 129491, 83026, 128757, 0, 0, 0, - 128922, 0, 43658, 0, 0, 129183, 6419, 0, 0, 0, 0, 93989, 0, 128173, 7194, - 5291, 67395, 43666, 0, 0, 0, 0, 128293, 0, 12881, 123596, 0, 73842, 0, - 9011, 0, 0, 0, 70436, 179, 43644, 0, 0, 64747, 0, 118813, 0, 0, 121389, - 92649, 126629, 0, 73850, 2801, 119495, 42069, 119839, 119838, 119841, - 42072, 92736, 119842, 0, 0, 0, 8377, 0, 42070, 119313, 119834, 119310, - 4389, 43656, 1633, 119857, 118632, 119859, 11119, 119845, 119844, 9967, - 119846, 119849, 4612, 92867, 119850, 42913, 70456, 0, 71983, 10782, - 66898, 0, 119141, 0, 0, 0, 11541, 69636, 0, 0, 119614, 2731, 0, 0, 0, - 4102, 0, 73878, 0, 0, 0, 0, 0, 11283, 0, 0, 0, 0, 0, 43674, 0, 0, 126705, - 0, 0, 0, 0, 11142, 128304, 0, 12975, 0, 123208, 0, 0, 74072, 0, 55269, 0, - 0, 0, 78577, 78576, 0, 0, 82966, 82974, 70448, 0, 0, 82968, 0, 0, 0, 0, - 0, 113809, 0, 69399, 64909, 0, 11790, 74019, 0, 128066, 0, 8561, 94076, - 129481, 125045, 69259, 65674, 7230, 0, 0, 8778, 0, 0, 67725, 2071, 0, - 6459, 68325, 7628, 65092, 73903, 0, 11342, 129388, 0, 0, 93965, 94081, 0, - 11810, 70057, 10723, 967, 0, 71973, 73905, 0, 6387, 0, 12307, 43913, - 121089, 0, 127584, 0, 1886, 0, 43895, 870, 7648, 0, 7662, 7652, 876, 871, - 877, 7665, 878, 42015, 879, 43692, 4563, 0, 0, 0, 73072, 867, 9520, 872, - 7656, 868, 873, 7642, 7659, 869, 874, 7644, 0, 875, 790, 0, 0, 0, 0, 0, - 124899, 0, 0, 0, 0, 0, 68452, 0, 0, 42067, 0, 0, 0, 12292, 0, 0, 0, - 42012, 0, 0, 83388, 0, 0, 8494, 4611, 0, 72344, 0, 9679, 0, 0, 0, 0, - 93015, 0, 74364, 4628, 4245, 0, 0, 0, 1851, 0, 127189, 0, 0, 0, 118897, - 0, 64674, 124971, 983887, 8829, 983693, 128864, 0, 0, 0, 0, 8809, 983696, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 7427, 0, 4588, 43680, 72300, 74484, 0, 0, 0, - 0, 113787, 74363, 129043, 0, 793, 0, 11197, 0, 0, 0, 842, 0, 8208, 70833, - 0, 1647, 0, 70841, 0, 73508, 818, 0, 0, 0, 0, 0, 0, 120594, 0, 0, 70179, - 0, 13167, 66359, 0, 127172, 0, 4969, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2840, 0, - 0, 0, 66887, 65877, 9068, 0, 68194, 0, 0, 12991, 0, 2651, 68016, 983915, - 0, 983264, 70835, 0, 70844, 43648, 0, 0, 0, 0, 0, 0, 64372, 121064, 7458, - 655, 752, 7457, 7456, 7452, 3285, 74894, 11152, 73099, 0, 2391, 93766, - 92271, 671, 7435, 7434, 618, 668, 610, 42800, 7431, 7451, 42801, 640, - 42927, 7448, 7439, 628, 3905, 100742, 0, 0, 0, 67850, 0, 0, 0, 4605, 0, - 100745, 43372, 65945, 72710, 0, 119590, 0, 0, 70495, 987, 71229, 11572, - 0, 0, 10002, 9971, 70673, 0, 0, 0, 0, 0, 0, 11334, 0, 129493, 42364, - 11503, 0, 0, 0, 4627, 70090, 127784, 73473, 0, 74046, 68872, 92562, 0, 0, - 129900, 0, 129812, 0, 0, 42569, 64965, 0, 0, 10516, 129828, 12190, 0, - 42140, 0, 0, 0, 0, 9887, 0, 4000, 7429, 7428, 665, 7424, 0, 0, 7884, 0, - 0, 0, 0, 0, 2509, 0, 120573, 0, 0, 92449, 0, 10690, 0, 119114, 126226, 0, - 0, 73080, 4590, 0, 74440, 0, 0, 0, 1708, 0, 0, 983609, 0, 0, 69226, - 69974, 8813, 0, 1066, 0, 0, 71965, 127921, 70447, 0, 0, 0, 2202, 0, 7516, - 0, 0, 0, 8034, 0, 0, 3631, 110696, 0, 0, 8416, 110694, 71937, 0, 0, - 110692, 74621, 0, 70185, 0, 74850, 0, 0, 12099, 70475, 0, 6252, 0, 0, 0, - 0, 0, 0, 66368, 0, 64956, 7071, 129070, 70457, 128159, 118800, 0, 77757, - 0, 9357, 0, 1773, 0, 125092, 0, 68451, 7745, 9844, 0, 0, 94, 1880, - 120929, 0, 0, 0, 0, 0, 0, 0, 0, 11237, 0, 129173, 0, 0, 0, 1757, 6964, - 42480, 72823, 0, 120806, 0, 0, 7731, 0, 0, 127883, 0, 77777, 43988, - 70423, 74758, 0, 7592, 856, 74299, 0, 0, 0, 78138, 1459, 0, 0, 0, 0, 0, - 1504, 0, 0, 0, 0, 7529, 0, 0, 0, 0, 12594, 0, 0, 336, 0, 7509, 0, 0, 0, - 0, 127882, 0, 0, 0, 65859, 0, 983986, 43062, 124948, 0, 0, 0, 0, 12970, - 0, 0, 0, 0, 0, 0, 0, 119247, 0, 65068, 74291, 122938, 7069, 0, 0, 66977, - 11130, 2087, 0, 0, 0, 0, 126249, 0, 92747, 0, 92614, 2091, 0, 2090, 0, 0, - 7117, 2077, 72281, 0, 77889, 2083, 0, 71196, 0, 0, 71981, 0, 0, 0, 0, - 4165, 8746, 0, 0, 0, 0, 129572, 7066, 77779, 70415, 128135, 0, 0, 7786, - 127766, 2233, 0, 124965, 121122, 2302, 0, 0, 7056, 0, 0, 0, 0, 118639, 0, - 126506, 6920, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 983099, 70438, 2613, 0, 0, - 110734, 0, 74571, 42760, 0, 0, 0, 0, 0, 0, 71843, 0, 0, 70506, 1246, - 74243, 0, 0, 41008, 0, 0, 0, 921, 70048, 0, 12702, 119500, 0, 1566, 8407, - 0, 64653, 0, 74617, 0, 0, 72711, 5313, 951, 0, 0, 0, 0, 77807, 4009, - 70277, 71844, 0, 83123, 0, 72250, 0, 119898, 113760, 0, 0, 0, 0, 70024, - 0, 0, 119892, 0, 0, 0, 119890, 2579, 119906, 3177, 11357, 69224, 0, 0, - 83130, 64734, 0, 9822, 110670, 70471, 110668, 66990, 110666, 66967, 0, 0, - 0, 9851, 983748, 110673, 9059, 110671, 77736, 0, 41687, 129054, 0, 71842, - 70178, 0, 66975, 1777, 67003, 10158, 69767, 122982, 42366, 70444, 0, 0, - 0, 70127, 71955, 5989, 110716, 74636, 126999, 0, 41685, 0, 0, 9769, - 41684, 0, 6225, 111328, 11740, 0, 118840, 0, 2600, 0, 70416, 0, 118720, - 3666, 70420, 127193, 71976, 0, 0, 74542, 69771, 0, 0, 0, 0, 0, 69765, - 77804, 252, 0, 69769, 0, 194616, 0, 69763, 0, 0, 0, 0, 0, 0, 0, 120947, - 0, 129410, 0, 118792, 0, 68323, 125219, 0, 119188, 0, 2177, 121335, 0, 0, - 0, 0, 0, 7764, 983745, 11094, 120825, 119490, 0, 92505, 8298, 0, 0, 0, 0, - 0, 64449, 0, 126650, 0, 0, 0, 70442, 0, 0, 0, 0, 7774, 10607, 0, 0, 0, 0, - 0, 120764, 0, 0, 77746, 0, 3458, 0, 70053, 0, 120995, 0, 2602, 0, 0, 0, - 74907, 0, 0, 0, 0, 172, 0, 4971, 70419, 1889, 7238, 0, 0, 0, 8257, 0, 0, - 78917, 129570, 0, 111342, 71948, 0, 43366, 43363, 9807, 0, 0, 0, 72247, - 64479, 0, 0, 0, 113707, 0, 10900, 121355, 0, 0, 12048, 0, 64292, 0, 0, 0, - 6099, 94084, 129486, 0, 0, 299, 0, 8525, 92356, 0, 0, 111338, 0, 92564, - 3075, 0, 94053, 0, 94050, 0, 0, 70440, 0, 123590, 0, 0, 0, 2581, 11395, - 0, 0, 0, 0, 128584, 0, 0, 129423, 101092, 118855, 0, 0, 0, 7204, 70065, - 2588, 2914, 7011, 55281, 0, 7466, 0, 2883, 42253, 83118, 0, 0, 0, 83116, - 0, 41230, 68299, 0, 43571, 0, 6219, 0, 9980, 41232, 92245, 0, 66036, - 41229, 118967, 0, 120666, 94016, 0, 12711, 0, 0, 74289, 68472, 42857, - 66950, 0, 0, 0, 127306, 119006, 0, 11380, 72348, 0, 0, 0, 0, 0, 0, 0, - 983579, 12722, 0, 922, 0, 0, 983127, 74958, 3218, 120471, 120470, 120469, - 120476, 120475, 8569, 11404, 70450, 120463, 3214, 120461, 120468, 74910, - 3207, 120465, 78729, 78728, 78727, 0, 120460, 7425, 3205, 0, 78737, - 78736, 71729, 43383, 78733, 78732, 2606, 78730, 73897, 0, 11496, 1173, 0, - 0, 129135, 0, 0, 0, 120737, 120953, 120872, 120629, 378, 2610, 0, 0, 0, - 0, 0, 37, 7068, 0, 120480, 70421, 3209, 120477, 0, 120483, 9768, 120481, - 0, 0, 0, 0, 0, 0, 65510, 0, 100625, 0, 0, 0, 100627, 0, 126633, 0, 7060, - 100628, 0, 127752, 0, 69284, 70428, 71463, 0, 7380, 0, 0, 100593, 126997, - 0, 124900, 0, 71465, 121030, 3243, 0, 0, 0, 7050, 0, 70050, 0, 0, 122983, - 71466, 8203, 71102, 68241, 0, 65211, 194599, 983406, 118636, 0, 779, - 125061, 64367, 100906, 69901, 8193, 55279, 0, 0, 0, 7065, 0, 4346, 0, 0, - 908, 0, 0, 8982, 0, 0, 0, 782, 0, 10883, 0, 0, 129396, 65542, 121302, 0, - 68650, 100575, 92244, 0, 0, 111351, 0, 4376, 0, 11787, 12961, 0, 0, - 42888, 0, 100610, 6231, 0, 65713, 100608, 1783, 0, 68238, 0, 0, 0, - 194945, 0, 0, 0, 68653, 0, 983051, 0, 764, 0, 0, 43531, 0, 9033, 0, 0, - 6223, 11042, 0, 0, 0, 0, 0, 917792, 0, 0, 0, 0, 0, 0, 120648, 0, 0, 0, 0, - 0, 0, 71971, 0, 1478, 78923, 11825, 2607, 0, 0, 0, 74543, 0, 0, 100588, - 6132, 0, 0, 0, 70058, 0, 0, 0, 43537, 6761, 10093, 4369, 0, 0, 73735, - 100564, 3947, 110778, 0, 0, 0, 0, 100942, 0, 0, 0, 0, 0, 0, 7686, 0, 0, - 0, 100934, 0, 100944, 66577, 41221, 0, 42281, 0, 74024, 12293, 0, 94014, - 11794, 0, 120893, 1737, 0, 0, 0, 7205, 0, 9335, 12850, 77810, 2272, 7055, - 0, 0, 0, 67751, 0, 124910, 6780, 65067, 0, 1327, 68393, 983574, 0, 41217, - 0, 10018, 0, 0, 0, 100611, 68176, 41219, 0, 4147, 983171, 41216, 983712, - 2616, 70197, 68461, 65234, 0, 0, 0, 0, 119660, 0, 0, 0, 0, 127930, - 119580, 70675, 64943, 2608, 1470, 0, 0, 6227, 0, 0, 74775, 0, 0, 72320, - 101024, 0, 73822, 67456, 0, 0, 0, 0, 10876, 92482, 0, 0, 5834, 0, 6222, - 0, 0, 12086, 0, 1600, 64309, 0, 0, 68883, 127957, 93836, 0, 8882, 0, - 129415, 2570, 0, 0, 194606, 0, 0, 1234, 0, 13115, 110743, 110740, 100923, - 5002, 110739, 41286, 100926, 127019, 0, 0, 0, 0, 0, 0, 0, 41289, 0, 0, - 75051, 41272, 0, 0, 0, 0, 0, 124978, 0, 41279, 0, 0, 0, 11081, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 9637, 7112, 77975, 128984, 0, 10886, 0, 8548, 983860, - 0, 0, 0, 8076, 43048, 8290, 8291, 43051, 92570, 0, 2596, 0, 0, 41293, 0, - 0, 2393, 7058, 66432, 0, 68673, 0, 0, 0, 0, 0, 128558, 0, 0, 0, 0, 0, - 64696, 0, 0, 121086, 74165, 0, 0, 0, 0, 0, 0, 7063, 983183, 64893, 73096, - 0, 68038, 113757, 709, 0, 0, 1876, 0, 0, 120868, 8137, 110662, 67752, - 70850, 100832, 245, 100831, 11456, 41233, 7070, 0, 94046, 6136, 100835, - 0, 100781, 41235, 73474, 0, 100782, 100642, 432, 0, 100784, 65437, 0, - 100647, 128909, 0, 100641, 100649, 0, 100648, 0, 43215, 0, 0, 0, 0, 9052, - 0, 0, 110826, 110827, 74784, 10580, 0, 100845, 0, 64640, 983176, 74455, - 0, 129670, 70035, 0, 12652, 12199, 127030, 0, 2566, 11971, 0, 0, 1065, 0, - 0, 0, 2576, 0, 66819, 0, 984005, 129852, 0, 0, 983050, 983845, 0, 2921, + 128279, 0, 71915, 0, 0, 7282, 94066, 0, 0, 0, 0, 0, 5286, 83061, 0, 3718, + 0, 83057, 0, 124906, 71905, 0, 128480, 0, 0, 0, 0, 9206, 82980, 113824, + 6802, 0, 41653, 0, 1241, 0, 0, 0, 0, 68124, 41651, 42937, 0, 83042, + 41650, 0, 83037, 0, 12914, 2814, 0, 119552, 120691, 0, 0, 71968, 0, 0, 0, + 917546, 71862, 0, 0, 0, 3494, 10189, 69784, 0, 0, 71861, 0, 0, 65875, 0, + 0, 127762, 0, 74215, 43065, 0, 0, 7200, 0, 3261, 0, 0, 0, 65889, 71888, + 71975, 0, 0, 0, 0, 0, 77793, 0, 0, 129424, 77791, 635, 0, 0, 74753, 0, + 92420, 73997, 0, 0, 43905, 0, 118834, 126125, 0, 6667, 0, 983265, 0, 0, + 125200, 0, 0, 0, 0, 83137, 0, 0, 0, 0, 0, 121104, 127856, 125112, 71885, + 0, 120125, 7866, 194573, 92770, 194574, 0, 120140, 126074, 2849, 0, 0, + 42157, 12960, 0, 11812, 0, 74509, 0, 69881, 0, 0, 0, 123156, 7178, 0, 0, + 0, 0, 129041, 11534, 1967, 0, 0, 71361, 7015, 120298, 72757, 0, 12989, 0, + 9368, 983638, 1624, 43270, 0, 0, 10818, 0, 83091, 0, 120908, 0, 0, 0, 0, + 0, 0, 6169, 12871, 0, 2798, 65176, 4958, 42752, 119025, 0, 0, 0, 70346, + 66448, 0, 113780, 68364, 0, 0, 0, 68360, 0, 73746, 120945, 68352, 0, + 73787, 83110, 2154, 7199, 64955, 0, 0, 0, 0, 71980, 66507, 0, 69853, 0, + 0, 0, 0, 0, 0, 0, 92517, 118882, 120301, 13297, 0, 129446, 71963, 0, 0, + 0, 6658, 8045, 0, 0, 983873, 92319, 83101, 0, 72126, 0, 0, 0, 2416, 3310, + 0, 0, 379, 0, 43755, 0, 0, 0, 68362, 1284, 0, 73756, 0, 0, 83141, 70784, + 71977, 0, 0, 0, 8515, 83144, 83143, 0, 0, 0, 8529, 93782, 0, 7564, 0, 0, + 0, 0, 73757, 73760, 42359, 0, 2031, 0, 7202, 129984, 12676, 0, 0, 128418, + 0, 7710, 1610, 73801, 0, 0, 118706, 983607, 43917, 0, 9974, 228, 0, + 10398, 0, 0, 0, 92241, 70062, 118927, 42999, 1725, 65533, 8196, 9352, 0, + 0, 66868, 0, 8502, 5762, 0, 0, 43898, 0, 0, 0, 0, 43914, 0, 126507, + 64598, 13001, 9326, 83082, 43916, 1557, 0, 983879, 6330, 6805, 8631, + 2545, 70052, 0, 0, 0, 42998, 70410, 0, 42762, 71941, 42914, 126516, 262, + 1637, 0, 83025, 129491, 83026, 128757, 0, 0, 0, 128922, 0, 43658, 0, 0, + 129183, 6419, 0, 0, 0, 0, 93989, 0, 128173, 7194, 5291, 67395, 43666, 0, + 0, 0, 0, 128293, 0, 12881, 123596, 0, 73842, 0, 9011, 0, 0, 0, 70436, + 179, 43644, 0, 0, 64747, 0, 118813, 0, 0, 121389, 92649, 126629, 0, + 73850, 2801, 119837, 42069, 119839, 119838, 119841, 42072, 92736, 119842, + 0, 0, 0, 8377, 0, 42070, 119313, 119834, 119310, 4389, 43656, 1633, + 119857, 118632, 119859, 11119, 119845, 119844, 9967, 119846, 119849, + 4612, 92867, 119850, 42913, 70456, 0, 71983, 10782, 66898, 0, 119141, 0, + 0, 0, 11541, 69636, 0, 0, 119614, 2731, 0, 0, 0, 4102, 0, 73878, 0, 0, 0, + 0, 0, 11283, 0, 0, 0, 0, 0, 43674, 0, 0, 126705, 0, 0, 0, 0, 11142, + 128304, 0, 12975, 0, 123208, 0, 0, 74072, 0, 55269, 0, 0, 0, 78577, + 78576, 0, 0, 82966, 82974, 70448, 0, 0, 82968, 0, 0, 0, 0, 0, 113809, 0, + 69399, 64909, 0, 11790, 74019, 0, 128066, 0, 8561, 94076, 129481, 125045, + 69259, 65674, 7230, 0, 0, 8778, 0, 0, 67725, 2071, 0, 6459, 68325, 7628, + 65092, 73903, 0, 11342, 129388, 0, 0, 93965, 94081, 0, 11810, 70057, + 10723, 967, 0, 71973, 73905, 0, 6387, 0, 12307, 43913, 121089, 0, 127584, + 0, 1886, 0, 43895, 870, 7648, 0, 7662, 7652, 876, 871, 877, 7665, 878, + 42015, 879, 43692, 4563, 0, 0, 0, 73072, 867, 9520, 872, 7656, 868, 873, + 7642, 7659, 869, 874, 7644, 0, 875, 790, 0, 0, 0, 0, 0, 124899, 0, 0, 0, + 0, 0, 68452, 0, 0, 42067, 0, 0, 0, 12292, 0, 0, 0, 42012, 0, 0, 83388, 0, + 0, 8494, 4611, 0, 72344, 0, 9679, 0, 0, 0, 0, 93015, 0, 74364, 4628, + 4245, 0, 0, 0, 1851, 0, 127189, 0, 0, 0, 118897, 0, 64674, 124971, + 983887, 8829, 983693, 128864, 0, 0, 0, 0, 8809, 983696, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7427, 0, 4588, 43680, 72300, 74484, 0, 0, 0, 0, 113787, 74363, + 129043, 0, 793, 0, 11197, 0, 0, 0, 842, 0, 8208, 70833, 0, 1647, 0, + 70841, 0, 0, 818, 0, 0, 0, 0, 0, 0, 120594, 0, 0, 70179, 0, 13167, 66359, + 0, 127172, 0, 4969, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2840, 0, 0, 0, 66887, + 65877, 9068, 0, 68194, 0, 0, 12991, 0, 2651, 68016, 983915, 0, 983261, + 70835, 0, 70844, 43648, 0, 0, 0, 0, 0, 0, 64372, 121064, 7458, 655, 752, + 7457, 7456, 7452, 3285, 74894, 11152, 73099, 0, 2391, 93766, 92271, 671, + 7435, 7434, 618, 668, 610, 42800, 7431, 7451, 42801, 640, 42927, 7448, + 7439, 628, 3905, 100742, 0, 0, 0, 67850, 0, 0, 0, 4605, 0, 100745, 43372, + 65945, 72710, 0, 119590, 0, 0, 70495, 987, 71229, 11572, 0, 0, 10002, + 9971, 70673, 0, 0, 0, 0, 0, 0, 11334, 0, 129493, 42364, 11503, 0, 0, 0, + 4627, 70090, 127784, 0, 0, 74046, 68872, 92562, 0, 0, 129900, 0, 129812, + 0, 0, 42569, 64965, 0, 0, 10516, 129828, 12190, 0, 42140, 0, 0, 0, 0, + 9887, 0, 4000, 7429, 7428, 665, 7424, 0, 0, 7884, 0, 0, 0, 0, 0, 2509, 0, + 120573, 0, 0, 92449, 0, 10690, 0, 119114, 126226, 0, 0, 73080, 4590, 0, + 74440, 0, 0, 0, 1708, 0, 0, 983609, 0, 0, 69226, 69974, 8813, 0, 1066, 0, + 0, 71965, 127921, 70447, 0, 0, 0, 2202, 0, 7516, 0, 0, 0, 8034, 0, 0, + 3631, 110696, 0, 0, 8416, 110694, 71937, 0, 0, 110692, 74621, 0, 70185, + 0, 74850, 0, 0, 12099, 70475, 0, 6252, 0, 0, 0, 0, 0, 0, 66368, 0, 64956, + 7071, 129070, 70457, 128159, 118800, 0, 77757, 0, 9357, 0, 1773, 0, + 125092, 0, 68451, 7745, 9844, 0, 0, 94, 1880, 120929, 0, 0, 0, 0, 0, 0, + 0, 0, 11237, 0, 129173, 0, 0, 0, 1757, 6964, 42480, 72823, 0, 120806, 0, + 0, 7731, 0, 0, 127883, 0, 77777, 43988, 70423, 74758, 0, 7592, 856, + 74299, 0, 0, 0, 78138, 1459, 0, 0, 0, 0, 0, 1504, 0, 0, 0, 0, 7529, 0, 0, + 0, 0, 12594, 0, 0, 336, 0, 7509, 0, 0, 0, 0, 127882, 0, 0, 0, 65859, 0, + 983986, 43062, 124948, 0, 0, 0, 0, 12970, 0, 0, 0, 0, 0, 0, 0, 119247, 0, + 65068, 74291, 129943, 7069, 0, 0, 66977, 11130, 2087, 0, 0, 0, 0, 126249, + 0, 92747, 0, 92614, 2091, 0, 2090, 0, 0, 7117, 2077, 72281, 0, 77889, + 2083, 0, 71196, 0, 0, 71981, 0, 0, 0, 0, 4165, 8746, 0, 0, 0, 0, 129572, + 7066, 77779, 70415, 128135, 0, 0, 7786, 127766, 2233, 0, 124965, 121122, + 2302, 0, 0, 7056, 0, 0, 0, 0, 118639, 0, 126506, 6920, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 983099, 70438, 2613, 0, 0, 110734, 0, 74571, 42760, 0, 0, 0, + 0, 0, 0, 71843, 0, 0, 70506, 1246, 74243, 0, 0, 41008, 0, 0, 0, 921, + 70048, 0, 12702, 0, 0, 1566, 8407, 0, 64653, 0, 74617, 0, 0, 72711, 5313, + 951, 0, 0, 0, 0, 77807, 4009, 70277, 71844, 0, 83123, 0, 72250, 0, + 119898, 113760, 0, 0, 0, 0, 70024, 0, 0, 119892, 0, 0, 0, 119890, 2579, + 119906, 3177, 11357, 69224, 0, 0, 83130, 64734, 0, 9822, 110670, 70471, + 110668, 66990, 110666, 66967, 0, 0, 0, 9851, 983748, 110673, 9059, + 110671, 77736, 0, 41687, 129054, 0, 71842, 70178, 0, 66975, 1777, 67003, + 10158, 69767, 0, 42366, 70444, 0, 0, 0, 70127, 71955, 5989, 110716, + 74636, 126999, 0, 41685, 0, 0, 9769, 41684, 0, 6225, 111328, 11740, 0, + 118840, 0, 2600, 0, 70416, 0, 118720, 3666, 70420, 127193, 71976, 0, 0, + 74542, 69771, 0, 0, 0, 0, 0, 69765, 77804, 252, 0, 69769, 0, 194616, 0, + 69763, 0, 0, 0, 0, 0, 0, 0, 120947, 0, 129410, 0, 118792, 0, 68323, + 125219, 0, 119188, 0, 2177, 121335, 0, 0, 0, 0, 0, 7764, 983745, 11094, + 120825, 0, 0, 92505, 8298, 0, 0, 0, 0, 0, 64449, 0, 126650, 0, 0, 0, + 70442, 0, 0, 0, 0, 7774, 10607, 0, 0, 0, 0, 0, 120764, 0, 0, 77746, 0, + 3458, 0, 70053, 0, 120995, 0, 2602, 0, 0, 0, 74907, 0, 0, 0, 0, 172, 0, + 4971, 70419, 1889, 7238, 0, 0, 0, 8257, 0, 0, 0, 129570, 0, 111342, + 71948, 0, 43366, 43363, 9807, 0, 0, 0, 72247, 64479, 0, 0, 0, 113707, 0, + 10900, 121355, 0, 0, 12048, 0, 64292, 0, 0, 0, 6099, 94084, 129486, 0, 0, + 299, 0, 8525, 92356, 0, 0, 111338, 0, 92564, 3075, 0, 94053, 0, 94050, 0, + 0, 70440, 0, 123590, 0, 0, 0, 2581, 11395, 0, 0, 0, 0, 128584, 0, 0, + 129423, 101092, 118855, 0, 0, 0, 7204, 70065, 2588, 2914, 7011, 55281, 0, + 7466, 0, 2883, 42253, 83118, 0, 0, 0, 123598, 0, 41230, 68299, 0, 43571, + 0, 6219, 0, 9980, 41232, 92245, 0, 66036, 41229, 118967, 0, 120666, + 94016, 0, 12711, 0, 0, 74289, 68472, 42857, 66950, 0, 0, 0, 127306, + 119006, 0, 11380, 72348, 0, 0, 0, 0, 0, 0, 0, 983579, 12722, 0, 922, 0, + 0, 983126, 74958, 3218, 120471, 120470, 120469, 120476, 120475, 8569, + 11404, 70450, 120463, 3214, 120461, 120468, 74910, 3207, 120465, 78729, + 78728, 78727, 0, 120460, 7425, 3205, 0, 78737, 78736, 71729, 43383, + 78733, 78732, 2606, 78730, 73897, 0, 11496, 1173, 0, 0, 129135, 0, 0, 0, + 120737, 120953, 120872, 120629, 378, 2610, 0, 0, 0, 0, 0, 37, 7068, 0, + 120480, 70421, 3209, 120477, 0, 120483, 9768, 120481, 0, 0, 0, 0, 0, 0, + 65510, 0, 100625, 0, 0, 0, 100627, 0, 126633, 0, 7060, 100628, 0, 127752, + 0, 69284, 70428, 71463, 0, 7380, 0, 0, 100593, 126997, 0, 124900, 0, + 71465, 121030, 3243, 0, 0, 0, 7050, 0, 70050, 0, 0, 0, 71466, 8203, + 71102, 68241, 0, 65211, 194599, 983403, 118636, 0, 779, 125061, 64367, + 100906, 69901, 8193, 55279, 0, 0, 0, 7065, 0, 4346, 0, 0, 908, 0, 0, + 8982, 0, 0, 0, 782, 0, 10883, 0, 0, 129396, 65542, 121302, 0, 68650, + 100575, 92244, 0, 0, 111351, 0, 4376, 0, 11787, 12961, 0, 0, 42888, 0, + 100610, 6231, 0, 65713, 100608, 1783, 0, 68238, 0, 0, 0, 194945, 0, 0, 0, + 68653, 0, 983051, 0, 764, 0, 0, 43531, 0, 9033, 0, 0, 6223, 11042, 0, 0, + 0, 0, 0, 917792, 0, 0, 0, 0, 0, 0, 120648, 0, 0, 0, 0, 0, 0, 71971, 0, + 1478, 0, 11825, 2607, 0, 0, 0, 74543, 0, 0, 100588, 6132, 0, 0, 0, 70058, + 0, 0, 0, 43537, 6761, 10093, 4369, 0, 0, 73735, 100564, 3947, 110778, 0, + 0, 0, 0, 100942, 0, 0, 0, 0, 0, 0, 7686, 0, 0, 0, 100934, 0, 100944, + 66577, 41221, 0, 42281, 0, 74024, 12293, 0, 94014, 11794, 0, 120893, + 1737, 0, 0, 0, 7205, 0, 9335, 12850, 77810, 2272, 7055, 0, 0, 0, 67751, + 0, 124910, 6780, 65067, 0, 1327, 68393, 983574, 0, 41217, 0, 10018, 0, 0, + 0, 100611, 68176, 41219, 0, 4147, 983170, 41216, 983712, 2616, 70197, + 68461, 65234, 0, 0, 0, 0, 119660, 0, 0, 0, 0, 127930, 119580, 70675, + 64943, 2608, 1470, 0, 0, 6227, 0, 0, 74775, 0, 0, 72320, 101024, 0, + 73822, 67456, 0, 0, 0, 0, 10876, 92482, 0, 0, 5834, 0, 6222, 0, 0, 12086, + 0, 1600, 64309, 0, 0, 68883, 127957, 93836, 0, 8882, 0, 129415, 2570, 0, + 0, 194606, 0, 0, 1234, 0, 13115, 110743, 110740, 100923, 5002, 110739, + 41286, 100926, 127019, 0, 0, 0, 0, 0, 0, 0, 41289, 0, 0, 75051, 41272, 0, + 0, 0, 0, 0, 124978, 0, 41279, 0, 0, 0, 11081, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9637, 7112, 77975, 128984, 0, 10886, 0, 8548, 983860, 0, 0, 0, 8076, + 43048, 8290, 8291, 43051, 92570, 0, 2596, 0, 0, 41293, 0, 0, 2393, 7058, + 66432, 0, 68673, 0, 0, 0, 0, 0, 128558, 0, 0, 0, 0, 0, 64696, 0, 0, + 121086, 74165, 0, 0, 0, 0, 0, 0, 7063, 983182, 64893, 73096, 0, 68038, + 113757, 709, 0, 0, 1876, 0, 0, 120868, 8137, 110662, 67752, 70850, + 100832, 245, 100831, 11456, 41233, 7070, 0, 94046, 6136, 100835, 0, + 100781, 41235, 0, 0, 100782, 100642, 432, 0, 100784, 65437, 0, 100647, + 128909, 0, 100641, 100649, 0, 100648, 0, 43215, 0, 0, 0, 0, 9052, 0, 0, + 110826, 110827, 74784, 10580, 0, 100845, 0, 64640, 983175, 74455, 0, + 129670, 70035, 0, 12652, 12199, 127030, 0, 2566, 11971, 0, 0, 1065, 0, 0, + 0, 2576, 0, 66819, 0, 984005, 129852, 0, 0, 983050, 983845, 0, 2921, 119104, 0, 5772, 12968, 70055, 0, 0, 0, 2580, 983841, 0, 0, 70032, 0, 0, 0, 128148, 0, 0, 121308, 11346, 0, 12054, 100824, 92426, 101112, 0, 13091, 0, 0, 100821, 100828, 0, 127026, 128334, 74821, 0, 66295, 68037, @@ -29592,13 +29395,13 @@ static const unsigned int code_hash[] = { 100776, 119319, 42356, 42432, 100778, 92823, 0, 0, 0, 78752, 70030, 66914, 0, 0, 7061, 0, 3854, 0, 70020, 68413, 0, 42319, 0, 0, 7067, 0, 0, 0, 0, 0, 0, 127797, 9029, 43543, 92820, 2353, 119316, 0, 100769, 0, - 100768, 983178, 0, 0, 43664, 0, 0, 0, 12277, 0, 78122, 11066, 65233, 0, + 100768, 983177, 0, 0, 43664, 0, 0, 0, 12277, 0, 78122, 11066, 65233, 0, 41224, 0, 0, 3747, 10522, 0, 77722, 1691, 41226, 0, 77724, 0, 41223, 121135, 121299, 697, 0, 121051, 4244, 0, 0, 0, 13121, 128573, 0, 0, 0, 0, 0, 0, 129879, 0, 65816, 68111, 0, 127933, 0, 0, 0, 0, 0, 0, 66895, 74602, 0, 7123, 70038, 5785, 9198, 0, 100810, 0, 7383, 64656, 0, 0, 0, 0, 0, 0, 0, 0, 13122, 0, 191, 70060, 8585, 126610, 64411, 0, 0, 64850, 41072, - 118996, 0, 0, 0, 0, 78907, 127010, 100753, 0, 100756, 683, 396, 0, + 118996, 0, 0, 0, 0, 100754, 127010, 100753, 0, 100756, 683, 396, 0, 100758, 0, 100757, 43058, 100760, 343, 7129, 42680, 0, 0, 0, 0, 0, 100761, 0, 74040, 0, 1724, 0, 119321, 0, 0, 2203, 0, 0, 0, 6592, 0, 983044, 0, 0, 0, 0, 3730, 1778, 0, 0, 128854, 121254, 0, 9018, 0, 0, 0, @@ -29607,272 +29410,269 @@ static const unsigned int code_hash[] = { 101084, 0, 92812, 68800, 42471, 0, 0, 67232, 64304, 42243, 101094, 2583, 0, 77728, 0, 0, 0, 71702, 3855, 0, 0, 0, 0, 0, 0, 0, 92416, 7132, 0, 92743, 0, 64756, 3798, 6578, 0, 0, 92481, 9774, 1275, 0, 119273, 983056, - 0, 120515, 7873, 77719, 129754, 0, 0, 77717, 0, 73994, 73992, 0, 0, 0, - 41851, 0, 41846, 126485, 92337, 7633, 41849, 68385, 70726, 3224, 0, - 69806, 0, 0, 0, 1510, 68129, 0, 0, 0, 0, 12109, 0, 0, 0, 0, 0, 78377, - 1910, 8671, 78374, 127118, 70290, 0, 0, 0, 2654, 7893, 0, 0, 0, 72394, 0, - 67394, 0, 118970, 70066, 78372, 78371, 78370, 78369, 78368, 0, 0, 0, - 1733, 0, 2568, 0, 0, 0, 0, 41486, 0, 127839, 7116, 0, 0, 0, 7185, 0, 0, - 0, 0, 0, 120575, 120829, 0, 0, 0, 0, 92489, 0, 0, 0, 70022, 7171, 0, 340, - 0, 0, 72980, 0, 128535, 0, 124979, 94073, 0, 0, 0, 11392, 92509, 0, 0, 0, - 0, 0, 0, 0, 100632, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11948, 0, 6999, 617, - 983825, 0, 3675, 10600, 0, 0, 74616, 2617, 0, 0, 0, 128446, 0, 0, 8630, - 194771, 7288, 983828, 5545, 983818, 2586, 0, 0, 73123, 983851, 0, 0, 0, - 70847, 0, 0, 0, 0, 11195, 71708, 0, 7835, 70040, 0, 0, 92285, 0, 0, - 72973, 0, 0, 100852, 71118, 10029, 983167, 0, 0, 70033, 11359, 0, 0, - 194782, 0, 0, 118975, 0, 0, 3903, 100893, 983858, 0, 120555, 0, 93036, - 110645, 0, 983565, 0, 0, 194773, 0, 0, 0, 127238, 983822, 100919, 0, - 100918, 64752, 0, 983139, 100920, 118642, 43045, 100904, 0, 0, 0, 66394, - 7128, 0, 0, 0, 0, 0, 43044, 2604, 0, 100851, 43046, 121421, 69985, 11768, - 43043, 10470, 0, 7122, 194789, 4390, 454, 41397, 194792, 0, 78762, 0, 0, - 120576, 64572, 0, 68091, 2394, 2575, 113749, 0, 0, 74802, 100913, 129280, - 0, 0, 11989, 0, 0, 128856, 0, 0, 8249, 128172, 0, 0, 6640, 74806, 2598, - 513, 0, 6586, 127521, 129301, 120710, 65008, 0, 0, 92515, 0, 194795, - 66755, 0, 126585, 0, 43152, 78637, 0, 194797, 0, 69893, 6582, 0, 0, - 12839, 0, 78906, 983221, 0, 2444, 119489, 66620, 0, 0, 0, 0, 69894, 0, 0, - 0, 0, 4238, 11071, 9459, 68437, 78140, 78139, 0, 10079, 128985, 0, 0, 0, - 0, 11907, 43928, 0, 0, 0, 0, 92490, 43929, 0, 43926, 64498, 0, 9506, - 6978, 126234, 0, 0, 0, 0, 43934, 0, 1122, 65564, 0, 71055, 0, 0, 1920, 0, - 43930, 827, 0, 0, 0, 0, 6577, 1304, 64733, 0, 10606, 0, 0, 69503, 9329, - 92997, 9239, 74422, 0, 129373, 1222, 11076, 0, 69229, 43615, 8262, 72280, - 64627, 19909, 983554, 72279, 0, 287, 0, 233, 0, 0, 42816, 0, 0, 65140, - 128158, 8830, 0, 0, 10524, 41175, 125033, 72294, 0, 5296, 0, 127559, 0, - 0, 0, 127154, 74858, 6516, 6515, 6514, 6513, 6512, 0, 70870, 0, 0, 0, - 12122, 92462, 100868, 43976, 1785, 92507, 0, 0, 917771, 5138, 0, 0, 0, - 100884, 0, 0, 0, 123564, 0, 5134, 69980, 322, 4643, 5132, 0, 194942, 0, - 5143, 0, 72309, 119628, 0, 0, 72112, 0, 129964, 0, 0, 0, 0, 0, 0, 73097, - 0, 0, 0, 127923, 0, 0, 0, 0, 0, 3234, 0, 100886, 0, 100889, 118924, 0, 0, - 100875, 68231, 74489, 100872, 120746, 0, 100876, 0, 12714, 0, 64585, - 93775, 0, 0, 0, 129428, 0, 11027, 0, 10059, 0, 64524, 9767, 789, 1749, 0, - 66766, 984010, 320, 0, 0, 0, 3049, 0, 6471, 0, 74479, 9925, 127356, - 127355, 127358, 4960, 5549, 127359, 127346, 127345, 127348, 5418, 127350, - 3351, 120892, 127351, 10610, 5414, 93789, 0, 4286, 5421, 127344, 67867, - 0, 127794, 0, 6653, 122958, 0, 64510, 0, 41868, 0, 128823, 0, 0, 11613, - 70737, 12603, 7131, 11108, 4566, 0, 0, 0, 0, 0, 124938, 127369, 0, 0, - 5200, 0, 129484, 0, 9183, 127361, 74458, 73075, 395, 5482, 1376, 4349, 0, - 0, 5196, 0, 6113, 42009, 5205, 0, 120530, 0, 118973, 70467, 0, 0, 129691, - 0, 9126, 70498, 0, 0, 0, 0, 0, 3203, 192, 0, 3385, 120785, 128620, 5383, - 0, 0, 0, 5738, 69449, 3336, 0, 5361, 9633, 0, 0, 0, 0, 8581, 0, 1260, - 3149, 5359, 12962, 74955, 10441, 5357, 0, 0, 0, 5364, 0, 11431, 0, 9101, - 0, 0, 0, 0, 78378, 121155, 42917, 0, 129179, 0, 0, 0, 43360, 78385, - 78384, 78383, 78382, 78381, 78380, 78379, 9319, 7097, 0, 127748, 0, 0, 0, - 120632, 0, 71205, 0, 0, 0, 1720, 0, 0, 0, 8622, 0, 70430, 68772, 0, 0, 0, - 73084, 0, 0, 11921, 0, 11769, 68782, 0, 0, 0, 0, 194571, 41586, 0, 0, 0, - 3356, 194572, 64709, 194575, 0, 7134, 0, 78389, 0, 677, 0, 0, 0, 129474, - 68747, 0, 68751, 3349, 74125, 0, 8927, 0, 0, 0, 0, 0, 0, 0, 6806, 0, - 8384, 68755, 0, 0, 0, 0, 0, 124924, 0, 7113, 7586, 0, 10852, 0, 0, 4606, - 0, 0, 70084, 0, 0, 1046, 7124, 121192, 68753, 0, 5171, 65539, 0, 0, 0, - 42394, 0, 74849, 127823, 0, 5169, 11935, 0, 0, 3175, 0, 1537, 0, 5176, - 8905, 4136, 4871, 78388, 0, 0, 122661, 0, 1128, 0, 0, 0, 74066, 0, 73069, - 0, 0, 3662, 113767, 3378, 0, 71298, 0, 127995, 6320, 71302, 983163, - 10163, 0, 5165, 5126, 0, 66902, 41389, 0, 71368, 3374, 113740, 0, 7119, - 0, 0, 3507, 0, 7629, 6848, 19925, 0, 68463, 183, 127208, 127209, 70811, - 10636, 0, 128465, 2250, 0, 78772, 0, 0, 0, 78768, 6580, 4332, 123584, 0, - 10726, 66686, 127203, 127204, 127205, 127206, 0, 70813, 127201, 127202, - 0, 0, 5448, 41058, 5446, 0, 0, 71369, 5442, 7135, 0, 0, 5451, 0, 78470, - 0, 0, 0, 0, 11243, 10859, 65867, 10345, 10409, 123606, 0, 0, 129077, - 42181, 0, 0, 2060, 0, 7111, 0, 0, 0, 0, 72741, 0, 205, 93784, 72346, - 93771, 0, 9862, 6588, 43257, 0, 0, 0, 5505, 93760, 5503, 65376, 0, 7125, - 9819, 0, 0, 0, 5507, 12044, 194567, 0, 0, 0, 7109, 0, 0, 7911, 10329, - 10393, 8991, 125104, 69778, 11133, 129619, 8550, 0, 5592, 2919, 0, 0, - 5595, 0, 0, 4367, 0, 0, 5591, 41060, 5594, 0, 0, 13142, 5590, 0, 72274, - 118909, 75069, 123586, 9731, 71225, 64633, 0, 0, 71217, 121361, 71227, 0, - 0, 0, 0, 7137, 0, 0, 0, 10551, 10710, 0, 0, 0, 120570, 0, 92364, 9936, - 3348, 0, 0, 1444, 119058, 0, 74206, 983107, 0, 1442, 129080, 0, 120959, - 0, 0, 0, 0, 0, 0, 0, 3334, 73068, 118803, 0, 0, 71219, 69770, 1651, 0, - 8861, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43626, 0, 0, 3344, 0, 0, 12920, 0, - 0, 0, 71853, 3438, 128711, 0, 0, 0, 0, 129068, 0, 0, 65117, 0, 0, 0, 0, - 66366, 128915, 0, 69772, 0, 0, 0, 0, 4973, 8784, 0, 0, 0, 0, 0, 0, 0, - 125198, 983288, 0, 0, 66413, 0, 0, 0, 0, 122663, 9243, 2464, 0, 0, 3372, - 0, 0, 0, 70364, 7121, 0, 0, 0, 92163, 0, 0, 0, 0, 0, 0, 0, 3354, 0, 0, - 983104, 101233, 0, 3876, 0, 127983, 6858, 43696, 43380, 0, 74240, 0, 0, - 0, 983985, 75074, 6589, 0, 0, 120993, 0, 0, 69609, 0, 66962, 0, 10630, - 71960, 0, 121293, 0, 0, 121287, 917942, 121337, 121215, 0, 0, 0, 0, 0, - 917940, 3366, 0, 917938, 0, 0, 0, 71062, 0, 121197, 0, 6925, 71856, 0, - 917929, 66780, 66274, 0, 72768, 0, 917930, 129482, 11138, 0, 6754, 7118, - 0, 64672, 65296, 0, 118957, 0, 0, 12296, 68457, 121320, 0, 5282, 0, - 72278, 0, 0, 0, 0, 0, 0, 66355, 0, 0, 68073, 64343, 0, 92744, 195058, - 195029, 0, 0, 195056, 195027, 0, 0, 128814, 195025, 6584, 195026, 10657, - 0, 74544, 0, 1200, 12243, 92269, 195062, 0, 129300, 11545, 0, 120493, - 3343, 4424, 11047, 0, 69863, 3896, 0, 0, 2947, 0, 0, 42221, 0, 68139, - 13059, 7942, 0, 3381, 0, 0, 0, 0, 0, 0, 78235, 0, 0, 0, 7044, 65800, - 78236, 0, 7045, 7175, 7047, 127884, 11791, 0, 0, 3881, 0, 0, 127395, 0, - 0, 67075, 7106, 72000, 0, 0, 74211, 41897, 92513, 0, 73040, 66745, 0, 0, - 0, 0, 121245, 0, 64354, 73083, 8777, 0, 129108, 8884, 2385, 73067, 92450, - 0, 0, 0, 42027, 12114, 0, 0, 64936, 0, 0, 0, 0, 0, 126605, 0, 0, 0, 0, - 73064, 0, 0, 0, 0, 0, 0, 0, 73057, 0, 123587, 0, 0, 0, 0, 0, 70803, 0, 0, - 124953, 0, 0, 0, 7048, 11087, 123600, 92536, 7043, 9600, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 42050, 0, 55289, 0, 0, 657, 0, 195054, 4461, 92903, 0, 92904, - 126490, 0, 4468, 0, 0, 0, 4456, 73070, 10720, 123588, 0, 123544, 0, 0, 0, - 195046, 260, 7714, 74163, 2045, 0, 65064, 4466, 0, 0, 128087, 129768, - 41403, 0, 0, 0, 41406, 120692, 0, 0, 73939, 0, 0, 0, 41404, 1165, 0, - 4451, 13087, 0, 11258, 0, 73855, 0, 43014, 5439, 12061, 74586, 3375, - 128869, 0, 0, 0, 0, 0, 0, 0, 113823, 67078, 0, 67079, 0, 0, 0, 0, 68459, - 0, 0, 0, 0, 0, 0, 7280, 0, 0, 0, 4868, 8297, 0, 0, 42791, 0, 66737, - 66739, 0, 0, 5182, 0, 0, 72764, 0, 4465, 0, 12135, 0, 4464, 0, 0, 977, - 4458, 43827, 0, 0, 120888, 0, 344, 67463, 0, 0, 0, 0, 92240, 0, 64443, - 126995, 73078, 129525, 0, 0, 0, 43026, 7612, 119591, 64413, 0, 0, 0, 0, - 0, 0, 0, 0, 123622, 0, 119160, 10204, 127947, 73063, 0, 0, 127236, 0, - 68746, 0, 8852, 0, 0, 0, 0, 128427, 123597, 7932, 92858, 128463, 0, 0, - 72453, 0, 0, 0, 0, 74893, 9567, 0, 73095, 0, 8650, 0, 0, 0, 69900, - 118872, 0, 70868, 0, 6719, 0, 0, 0, 72836, 0, 0, 118991, 0, 123594, - 73815, 4420, 0, 10583, 7760, 0, 0, 128752, 71711, 0, 128407, 0, 0, 77809, - 9066, 0, 74795, 0, 0, 0, 0, 0, 0, 0, 42825, 41854, 5304, 0, 124942, 6919, - 8619, 0, 10038, 66454, 9592, 129049, 0, 0, 110771, 110777, 110772, 0, 0, - 0, 0, 0, 78498, 110773, 43624, 0, 7779, 0, 0, 9479, 78493, 0, 66956, - 2224, 0, 0, 0, 0, 0, 42378, 3368, 0, 66804, 7697, 69237, 0, 2030, 0, - 68236, 8370, 0, 66953, 0, 0, 983355, 127903, 983353, 983352, 5174, 42831, - 983349, 70439, 983347, 8881, 119047, 0, 70433, 0, 0, 0, 0, 0, 0, 9576, 0, - 3347, 4160, 5154, 0, 3794, 0, 0, 0, 0, 0, 127916, 73073, 8381, 4572, - 69564, 126101, 0, 0, 0, 0, 0, 0, 0, 92283, 0, 0, 5799, 983344, 70100, - 983342, 983341, 983340, 43031, 64425, 65128, 983336, 0, 73059, 0, 68616, - 0, 0, 0, 0, 119826, 0, 0, 123604, 0, 0, 283, 68665, 0, 532, 0, 0, 983827, - 0, 0, 3370, 73077, 119132, 5443, 71431, 0, 118630, 0, 0, 0, 2298, 0, 0, - 0, 983335, 983334, 983333, 983332, 7144, 983330, 119600, 983328, 983327, - 983326, 0, 78816, 128833, 0, 0, 0, 0, 0, 0, 0, 0, 73088, 0, 123592, - 983952, 0, 0, 0, 0, 5186, 7360, 127837, 0, 12108, 0, 65124, 0, 0, 0, - 6326, 43344, 0, 0, 42562, 0, 0, 0, 983325, 65495, 983323, 101066, 983321, - 101065, 983319, 65490, 983317, 125034, 0, 101070, 127178, 55245, 128927, - 1630, 128232, 65483, 0, 0, 0, 65476, 0, 0, 119214, 9283, 10183, 0, 0, - 65499, 0, 64593, 66758, 3376, 0, 0, 0, 101077, 43872, 12940, 0, 0, 78587, - 101078, 5957, 0, 8926, 983315, 983314, 983313, 10745, 10174, 983310, - 113793, 983308, 983307, 983306, 0, 123593, 5056, 0, 0, 0, 120773, 0, - 9812, 0, 4460, 127792, 73066, 0, 128038, 0, 123608, 0, 64278, 0, 0, 0, - 66760, 0, 0, 70122, 0, 0, 917627, 0, 73823, 101071, 127922, 2276, 0, - 42579, 0, 983305, 983304, 127831, 983302, 983301, 983300, 983299, 983298, - 74207, 121255, 10482, 12863, 73002, 2412, 0, 9522, 0, 983906, 120674, - 101059, 3384, 101058, 10702, 830, 0, 128166, 0, 8451, 0, 0, 121380, - 69739, 128957, 0, 0, 0, 0, 0, 0, 0, 4243, 92454, 73093, 0, 129705, 4441, - 0, 983295, 983294, 66618, 983292, 125141, 411, 983289, 68068, 983287, - 4056, 983913, 0, 92666, 0, 983916, 983968, 0, 0, 3364, 42265, 64437, - 129635, 118816, 0, 9684, 216, 0, 1401, 0, 0, 0, 122643, 0, 0, 0, 11126, - 5768, 3191, 0, 0, 0, 0, 0, 0, 65895, 0, 0, 3338, 73935, 983283, 983282, - 983281, 129605, 983279, 983278, 2794, 8807, 0, 0, 110720, 0, 8312, 0, - 110718, 11953, 11662, 0, 0, 0, 0, 9534, 66767, 129040, 0, 11113, 0, 0, - 73082, 0, 981, 0, 4330, 119244, 120536, 1824, 0, 0, 7034, 41683, 123166, - 0, 73754, 0, 0, 74478, 128259, 983273, 983260, 983259, 43831, 983257, - 66752, 983255, 983254, 0, 70288, 65343, 0, 0, 43225, 0, 0, 0, 0, 126129, - 0, 128608, 0, 0, 0, 120726, 0, 983852, 11746, 0, 5216, 0, 0, 0, 0, 3468, - 127149, 9230, 65942, 0, 0, 5803, 120677, 0, 0, 13124, 0, 0, 0, 42843, 0, - 0, 0, 66753, 11739, 128318, 0, 128444, 0, 0, 0, 12448, 0, 121441, 13057, - 73852, 124994, 0, 0, 0, 0, 0, 0, 126612, 0, 68903, 0, 129470, 0, 917992, - 0, 0, 0, 0, 0, 0, 0, 92457, 0, 0, 0, 0, 0, 0, 0, 0, 125078, 0, 0, 0, - 10970, 92208, 0, 0, 0, 19944, 0, 9009, 8551, 0, 0, 0, 7575, 67484, 0, - 128899, 0, 129609, 78847, 0, 78846, 73502, 0, 69256, 0, 0, 0, 0, 9775, - 100682, 129191, 119052, 68629, 194703, 0, 0, 78850, 92880, 0, 0, 0, 0, 0, - 0, 0, 71273, 6184, 41540, 3303, 66182, 11786, 66180, 66203, 3422, 0, - 68290, 43007, 4478, 66178, 0, 0, 126216, 0, 4477, 0, 69608, 66184, 66183, - 66204, 66194, 0, 66198, 41880, 66188, 66197, 78148, 66195, 66190, 66191, - 41111, 66189, 73788, 7788, 0, 0, 0, 0, 0, 2221, 78163, 6535, 78161, - 78162, 430, 78160, 78156, 78158, 0, 0, 4945, 0, 4950, 0, 78165, 0, 67118, - 0, 5964, 12908, 0, 0, 0, 74477, 83390, 0, 4949, 0, 443, 0, 4944, 5467, - 119603, 983265, 0, 9364, 0, 119148, 4946, 0, 3788, 126106, 983718, 0, - 120847, 129858, 74441, 0, 0, 12072, 92248, 0, 983708, 0, 128676, 12091, - 0, 0, 0, 4673, 0, 4678, 0, 0, 65059, 43860, 0, 0, 0, 128151, 1199, 0, - 8356, 0, 0, 4677, 0, 0, 0, 2192, 78173, 78175, 78171, 78172, 72255, - 78170, 78166, 4674, 128450, 194944, 0, 124970, 0, 119579, 0, 129919, - 1855, 0, 0, 127806, 0, 0, 68912, 72323, 0, 12988, 121000, 0, 0, 0, 4654, - 6840, 983432, 0, 73993, 0, 4649, 65209, 983908, 93839, 4648, 122635, - 121169, 983436, 126231, 983427, 66846, 7828, 4650, 983426, 72879, 0, - 4653, 7822, 0, 0, 43187, 0, 983586, 6821, 0, 0, 0, 0, 0, 0, 66756, - 983433, 0, 0, 0, 8547, 0, 42165, 0, 119228, 6836, 0, 0, 4662, 0, 0, 0, - 9146, 599, 4657, 0, 120754, 0, 4656, 0, 0, 7811, 40994, 0, 6414, 5967, - 4658, 3725, 0, 5814, 4661, 127760, 194961, 0, 0, 64904, 0, 10833, 0, 0, - 4867, 128717, 0, 11459, 3054, 0, 40996, 0, 7605, 4622, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 19926, 0, 0, 65307, 4617, 0, 0, 0, 4616, 10518, 0, 127160, 0, - 5958, 0, 983449, 4618, 0, 983442, 120675, 4621, 0, 983444, 522, 125213, - 11139, 65803, 194972, 0, 12201, 6135, 121060, 983425, 0, 983093, 0, - 983423, 983416, 983437, 4638, 983421, 0, 78242, 5965, 78240, 66569, - 68646, 0, 983455, 74392, 5335, 0, 0, 4633, 0, 119045, 983451, 4632, 0, - 5542, 5333, 0, 983428, 68648, 5331, 4634, 0, 92870, 5338, 4637, 0, 0, - 43477, 0, 42493, 0, 42361, 0, 0, 73853, 0, 0, 0, 74204, 11343, 0, 10358, - 10422, 4758, 0, 1608, 5252, 0, 0, 4753, 78239, 11344, 78237, 0, 5231, - 74384, 0, 0, 118676, 0, 0, 0, 0, 71991, 5229, 4757, 0, 0, 5227, 4752, 0, - 65235, 5234, 73044, 0, 0, 0, 0, 0, 0, 7460, 0, 917936, 0, 0, 74760, - 65189, 0, 92230, 0, 0, 5574, 128980, 0, 65139, 5577, 0, 0, 118871, 68641, - 8965, 7635, 0, 5316, 70021, 5314, 74555, 5572, 0, 5312, 0, 5525, 5330, - 5319, 68292, 0, 65066, 0, 0, 983496, 0, 0, 127851, 0, 74851, 0, 0, 64609, - 0, 0, 128593, 0, 129339, 0, 8632, 0, 0, 0, 195012, 5735, 195013, 1692, - 70151, 4610, 122653, 4305, 0, 4609, 43478, 4614, 77753, 118534, 5287, - 5309, 5285, 0, 5961, 4647, 5283, 10743, 0, 71889, 601, 4613, 77759, 0, - 9208, 4608, 74044, 71107, 5190, 0, 0, 92410, 43965, 2265, 0, 0, 0, 0, 0, - 0, 0, 129953, 0, 0, 5960, 0, 8992, 65293, 0, 1782, 0, 0, 0, 0, 0, 5501, - 0, 42508, 69759, 120749, 129120, 0, 195023, 77740, 43900, 77741, 0, + 0, 120515, 7873, 77719, 0, 0, 0, 77717, 0, 73994, 73992, 0, 0, 0, 41851, + 0, 41846, 126485, 92337, 7633, 41849, 68385, 70726, 3224, 0, 69806, 0, 0, + 0, 1510, 68129, 0, 0, 0, 0, 12109, 0, 0, 0, 0, 0, 78377, 1910, 8671, + 78374, 127118, 70290, 0, 0, 0, 2654, 7893, 0, 0, 0, 72394, 0, 67394, 0, + 118970, 70066, 78372, 78371, 78370, 78369, 78368, 0, 0, 0, 1733, 0, 2568, + 0, 0, 0, 0, 41486, 0, 127839, 7116, 0, 0, 0, 7185, 0, 0, 0, 0, 0, 120575, + 120829, 0, 0, 0, 0, 92489, 0, 0, 0, 70022, 7171, 0, 340, 0, 0, 72980, 0, + 128535, 0, 124979, 94073, 0, 0, 0, 11392, 92509, 0, 0, 0, 0, 0, 0, 0, + 100632, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11948, 0, 6999, 617, 983825, 0, 3675, + 10600, 0, 0, 74616, 2617, 0, 0, 0, 128446, 0, 0, 8630, 194771, 7288, + 983828, 5545, 983818, 2586, 0, 0, 73123, 983851, 0, 0, 0, 70847, 0, 0, 0, + 0, 11195, 71708, 0, 7835, 70040, 0, 0, 92285, 0, 0, 72973, 0, 0, 100852, + 71118, 10029, 983166, 0, 0, 70033, 11359, 0, 0, 194782, 0, 0, 118975, 0, + 0, 3903, 100893, 983858, 0, 120555, 0, 93036, 110645, 0, 983565, 0, 0, + 194773, 0, 0, 0, 127238, 983822, 100919, 0, 100918, 64752, 0, 983138, + 100920, 118642, 43045, 100904, 0, 0, 0, 66394, 7128, 0, 0, 0, 0, 0, + 43044, 2604, 0, 100851, 43046, 121421, 69985, 11768, 43043, 10470, 0, + 7122, 194789, 4390, 454, 41397, 194792, 0, 78762, 0, 0, 120576, 64572, 0, + 68091, 2394, 2575, 113749, 0, 0, 74802, 100913, 129280, 0, 0, 11989, 0, + 0, 128856, 0, 0, 8249, 128172, 0, 0, 6640, 74806, 2598, 513, 0, 6586, + 127521, 129301, 120710, 65008, 0, 0, 92515, 0, 194795, 66755, 0, 126585, + 0, 43152, 78637, 0, 194797, 0, 69893, 6582, 0, 0, 12839, 0, 0, 983218, 0, + 2444, 128759, 66620, 0, 0, 0, 0, 69894, 0, 0, 0, 0, 4238, 11071, 9459, + 68437, 78140, 78139, 0, 10079, 0, 0, 0, 0, 0, 11907, 43928, 0, 0, 0, 0, + 92490, 43929, 0, 43926, 64498, 0, 9506, 6978, 126234, 0, 0, 0, 0, 43934, + 0, 1122, 65564, 0, 71055, 0, 0, 1920, 0, 43930, 827, 0, 0, 0, 0, 6577, + 1304, 64733, 0, 10606, 0, 0, 69503, 9329, 92997, 9239, 74422, 0, 129373, + 1222, 11076, 0, 69229, 43615, 8262, 72280, 64627, 19909, 983554, 72279, + 0, 287, 0, 233, 0, 0, 42816, 0, 0, 65140, 128158, 8830, 0, 0, 10524, + 41175, 125033, 72294, 0, 5296, 0, 127559, 0, 0, 0, 127154, 74858, 6516, + 6515, 6514, 6513, 6512, 0, 70870, 0, 0, 0, 12122, 92462, 100868, 43976, + 1785, 92507, 0, 0, 917771, 5138, 0, 0, 0, 100884, 0, 0, 0, 123564, 0, + 5134, 69980, 322, 4643, 5132, 0, 194942, 0, 5143, 0, 72309, 119628, 0, 0, + 72112, 0, 129964, 0, 0, 0, 0, 0, 0, 73097, 0, 0, 0, 127923, 0, 0, 0, 0, + 0, 3234, 0, 100886, 0, 100889, 118924, 0, 0, 100875, 68231, 74489, + 100872, 120746, 0, 100876, 0, 12714, 0, 64585, 93775, 0, 0, 0, 129428, 0, + 11027, 0, 10059, 0, 64524, 9767, 789, 1749, 0, 66766, 984010, 320, 0, 0, + 0, 3049, 0, 6471, 0, 74479, 9925, 127356, 127355, 127358, 4960, 5549, + 127359, 127346, 127345, 127348, 5418, 127350, 3351, 120892, 127351, + 10610, 5414, 0, 0, 4286, 5421, 127344, 67867, 0, 127794, 0, 6653, 0, 0, + 64510, 0, 41868, 0, 128823, 0, 0, 11613, 70737, 12603, 7131, 11108, 4566, + 0, 0, 0, 0, 0, 124938, 127369, 0, 0, 5200, 0, 129484, 0, 9183, 127361, + 74458, 73075, 395, 5482, 1376, 4349, 0, 0, 5196, 0, 6113, 42009, 5205, 0, + 120530, 0, 118973, 70467, 0, 0, 129691, 0, 9126, 70498, 0, 0, 0, 0, 0, + 3203, 192, 0, 3385, 120785, 128620, 5383, 0, 0, 0, 5738, 69449, 3336, 0, + 5361, 9633, 0, 0, 0, 0, 8581, 0, 1260, 3149, 5359, 12962, 74955, 10441, + 5357, 0, 0, 0, 5364, 0, 11431, 0, 9101, 0, 0, 0, 0, 78378, 121155, 42917, + 0, 129179, 0, 0, 0, 43360, 78385, 78384, 78383, 78382, 78381, 78380, + 78379, 9319, 7097, 0, 127748, 0, 0, 0, 120632, 0, 71205, 0, 0, 0, 1720, + 0, 0, 0, 8622, 0, 70430, 68772, 0, 0, 0, 73084, 0, 0, 11921, 0, 11769, + 68782, 0, 0, 0, 0, 194571, 41586, 0, 0, 0, 3356, 194572, 64709, 194575, + 0, 7134, 0, 78389, 0, 677, 0, 0, 0, 129474, 68747, 0, 68751, 3349, 74125, + 0, 8927, 0, 0, 0, 0, 0, 0, 0, 6806, 0, 8384, 68755, 0, 0, 0, 0, 0, + 124924, 0, 7113, 7586, 0, 10852, 0, 0, 4606, 0, 0, 70084, 0, 0, 1046, + 7124, 121192, 68753, 0, 5171, 65539, 0, 0, 0, 42394, 0, 74849, 127823, 0, + 5169, 11935, 0, 0, 3175, 0, 1537, 0, 5176, 8905, 4136, 4871, 78388, 0, 0, + 0, 0, 1128, 0, 0, 0, 74066, 0, 73069, 0, 0, 3662, 113767, 3378, 0, 71298, + 0, 127995, 6320, 71302, 983162, 10163, 0, 5165, 5126, 0, 66902, 41389, 0, + 71368, 3374, 113740, 0, 7119, 0, 0, 3507, 0, 7629, 6848, 19925, 0, 68463, + 183, 127208, 127209, 70811, 10636, 0, 128465, 2250, 0, 78772, 0, 0, 0, + 78768, 6580, 4332, 123584, 0, 10726, 66686, 127203, 127204, 127205, + 127206, 0, 70813, 127201, 127202, 0, 0, 5448, 41058, 5446, 0, 0, 71369, + 5442, 7135, 0, 0, 5451, 0, 78470, 0, 0, 0, 0, 11243, 10859, 65867, 10345, + 10409, 123606, 0, 0, 129077, 42181, 0, 0, 2060, 0, 7111, 0, 0, 0, 0, + 72741, 0, 205, 93784, 72346, 93771, 0, 9862, 6588, 43257, 0, 0, 0, 5505, + 93789, 5503, 65376, 0, 7125, 9819, 0, 0, 0, 5507, 12044, 194567, 0, 0, 0, + 7109, 0, 0, 7911, 10329, 10393, 8991, 125104, 69778, 11133, 129619, 8550, + 0, 5592, 2919, 0, 0, 5595, 0, 0, 4367, 0, 0, 5591, 41060, 5594, 0, 0, + 13142, 5590, 0, 72274, 118909, 75069, 123586, 9731, 71225, 64633, 0, 0, + 71217, 121361, 71227, 0, 0, 0, 0, 7137, 0, 0, 0, 10551, 10710, 0, 0, 0, + 120570, 0, 92364, 9936, 3348, 0, 0, 1444, 119058, 0, 74206, 983106, 0, + 1442, 129080, 0, 120959, 0, 0, 0, 0, 0, 0, 0, 3334, 73068, 118803, 0, 0, + 71219, 69770, 1651, 0, 8861, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43626, 0, + 0, 3344, 0, 0, 12920, 0, 0, 0, 71853, 3438, 128711, 0, 0, 0, 0, 129068, + 0, 0, 65117, 0, 0, 0, 0, 66366, 128915, 0, 69772, 0, 0, 0, 0, 4973, 8784, + 0, 0, 0, 0, 0, 0, 0, 125198, 983285, 0, 0, 66413, 0, 0, 0, 0, 0, 9243, + 2464, 0, 0, 3372, 0, 0, 0, 70364, 7121, 0, 0, 0, 92163, 0, 0, 0, 0, 0, 0, + 0, 3354, 0, 0, 983103, 101233, 0, 3876, 0, 127983, 6858, 43696, 43380, 0, + 74240, 0, 0, 0, 983985, 75074, 6589, 0, 0, 120993, 0, 0, 69609, 0, 66962, + 0, 10630, 71960, 0, 121293, 0, 0, 121287, 917942, 121337, 121215, 0, 0, + 0, 0, 0, 917940, 3366, 0, 917938, 0, 0, 0, 71062, 0, 121197, 0, 6925, + 71856, 0, 917929, 66780, 66274, 0, 72768, 0, 917930, 129482, 11138, 0, + 6754, 7118, 0, 64672, 65296, 0, 118957, 0, 0, 12296, 68457, 121320, 0, + 5282, 0, 72278, 0, 0, 0, 0, 0, 0, 66355, 0, 0, 68073, 64343, 0, 92744, + 195058, 195029, 0, 0, 195056, 195027, 0, 0, 128814, 195025, 6584, 195026, + 10657, 0, 74544, 0, 1200, 12243, 92269, 195062, 0, 129300, 11545, 0, + 120493, 3343, 4424, 11047, 0, 69863, 3896, 0, 0, 2947, 0, 0, 42221, 0, + 68139, 13059, 7942, 0, 3381, 0, 0, 0, 0, 0, 0, 78235, 0, 0, 0, 7044, + 65800, 78236, 0, 7045, 7175, 7047, 127884, 11791, 0, 0, 3881, 0, 0, + 127395, 0, 0, 67075, 7106, 72000, 0, 0, 74211, 41897, 92513, 0, 73040, + 66745, 0, 0, 0, 0, 121245, 0, 64354, 73083, 8777, 0, 129108, 8884, 2385, + 73067, 92450, 0, 0, 0, 42027, 12114, 0, 0, 64936, 0, 0, 0, 0, 0, 126605, + 0, 0, 0, 0, 73064, 0, 0, 0, 0, 0, 0, 0, 73057, 0, 123587, 0, 0, 0, 0, 0, + 70803, 0, 0, 124953, 0, 0, 0, 7048, 11087, 123600, 92536, 7043, 9600, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 42050, 0, 55289, 0, 0, 657, 0, 195054, 4461, + 92903, 0, 92904, 126490, 0, 4468, 0, 0, 0, 4456, 73070, 10720, 123588, 0, + 123544, 0, 0, 0, 195046, 260, 7714, 74163, 2045, 0, 65064, 4466, 0, 0, + 128087, 0, 41403, 0, 0, 0, 41406, 120692, 0, 0, 73939, 0, 0, 0, 41404, + 1165, 0, 4451, 13087, 0, 11258, 0, 73855, 0, 43014, 5439, 12061, 74586, + 3375, 128869, 0, 0, 0, 0, 0, 0, 0, 113823, 67078, 0, 67079, 0, 0, 0, 0, + 68459, 0, 0, 0, 0, 0, 0, 7280, 0, 0, 0, 4868, 8297, 0, 0, 42791, 0, + 66737, 66739, 0, 0, 5182, 0, 0, 72764, 0, 4465, 0, 12135, 0, 4464, 0, 0, + 977, 4458, 43827, 0, 0, 120888, 0, 344, 67463, 0, 0, 0, 0, 92240, 0, + 64443, 126995, 73078, 129525, 0, 0, 0, 43026, 7612, 119591, 64413, 0, 0, + 0, 0, 0, 0, 0, 0, 123622, 0, 119160, 10204, 127947, 73063, 0, 0, 127236, + 0, 68746, 0, 8852, 0, 0, 0, 0, 128427, 123597, 7932, 92858, 128463, 0, 0, + 0, 0, 0, 0, 0, 74893, 9567, 0, 73095, 0, 8650, 0, 0, 0, 69900, 118872, 0, + 70868, 0, 6719, 0, 0, 0, 72836, 0, 0, 118991, 0, 123594, 73815, 4420, 0, + 10583, 7760, 0, 0, 128752, 71711, 0, 128407, 0, 0, 77809, 9066, 0, 74795, + 0, 0, 0, 0, 0, 0, 0, 42825, 41854, 5304, 0, 124942, 6919, 8619, 0, 10038, + 66454, 9592, 129049, 0, 0, 110771, 110777, 110772, 0, 0, 0, 0, 0, 78498, + 110773, 43624, 0, 7779, 0, 0, 9479, 78493, 0, 66956, 2224, 0, 0, 0, 0, 0, + 42378, 3368, 0, 66804, 7697, 69237, 0, 2030, 0, 68236, 8370, 0, 66953, 0, + 0, 983352, 127903, 983350, 983349, 5174, 42831, 983346, 70439, 983344, + 8881, 119047, 0, 70433, 0, 0, 0, 0, 0, 0, 9576, 0, 3347, 4160, 5154, 0, + 3794, 0, 0, 0, 0, 0, 127916, 73073, 8381, 4572, 69564, 126101, 0, 0, 0, + 0, 0, 0, 0, 92283, 0, 0, 5799, 983341, 70100, 983339, 983338, 983337, + 43031, 64425, 65128, 983333, 0, 73059, 0, 68616, 0, 0, 0, 0, 119826, 0, + 0, 123604, 0, 0, 283, 68665, 0, 532, 0, 0, 983827, 0, 0, 3370, 73077, + 119132, 5443, 71431, 0, 118630, 0, 0, 0, 2298, 0, 0, 0, 983332, 983331, + 983330, 983329, 7144, 983327, 119600, 983325, 983324, 983323, 0, 78816, + 128833, 0, 0, 0, 0, 0, 0, 0, 0, 73088, 0, 123592, 983952, 0, 0, 0, 0, + 5186, 7360, 127837, 0, 12108, 0, 65124, 0, 0, 0, 6326, 43344, 0, 0, + 42562, 0, 0, 0, 983322, 65495, 983320, 101066, 983318, 101065, 983316, + 65490, 983314, 125034, 0, 101070, 0, 55245, 128927, 1630, 128232, 65483, + 0, 0, 0, 65476, 0, 0, 119214, 9283, 10183, 0, 0, 65499, 0, 64593, 66758, + 3376, 0, 0, 0, 101077, 43872, 12940, 0, 0, 78587, 101078, 5957, 0, 8926, + 983312, 983311, 983310, 10745, 10174, 983307, 113793, 983305, 983304, + 983303, 0, 123593, 5056, 0, 0, 0, 120773, 0, 9812, 0, 4460, 127792, + 73066, 0, 128038, 0, 123608, 0, 64278, 0, 0, 0, 66760, 0, 0, 70122, 0, 0, + 917627, 0, 73823, 101071, 127922, 2276, 0, 42579, 0, 983302, 983301, + 127831, 983299, 983298, 983297, 983296, 983295, 74207, 121255, 10482, + 12863, 73002, 2412, 0, 9522, 0, 983906, 120674, 101059, 3384, 101058, + 10702, 830, 0, 128166, 0, 8451, 0, 0, 121380, 69739, 128957, 0, 0, 0, 0, + 0, 0, 0, 4243, 92454, 73093, 0, 129705, 4441, 0, 983292, 983291, 66618, + 983289, 125141, 411, 983286, 68068, 983284, 4056, 983913, 0, 92666, 0, + 983916, 983968, 0, 0, 3364, 42265, 64437, 129635, 118816, 0, 9684, 216, + 0, 1401, 0, 0, 0, 122643, 0, 0, 0, 11126, 5768, 3191, 0, 0, 0, 0, 0, 0, + 65895, 0, 0, 3338, 73935, 983280, 983279, 983278, 129605, 983276, 983275, + 2794, 8807, 0, 0, 110720, 0, 8312, 0, 110718, 11953, 11662, 0, 0, 0, 0, + 9534, 66767, 129040, 0, 11113, 0, 0, 73082, 0, 981, 0, 4330, 119244, + 120536, 1824, 0, 0, 7034, 41683, 123166, 0, 73754, 0, 0, 74478, 128259, + 983270, 983257, 983256, 43831, 983254, 66752, 983252, 983251, 0, 70288, + 65343, 0, 0, 43225, 0, 0, 0, 0, 126129, 0, 128608, 0, 0, 0, 120726, 0, + 983852, 11746, 0, 5216, 0, 0, 0, 0, 3468, 127149, 9230, 65942, 0, 0, + 5803, 120677, 0, 0, 13124, 0, 0, 0, 42843, 0, 0, 0, 66753, 11739, 128318, + 0, 128444, 0, 0, 0, 12448, 0, 121441, 13057, 73852, 124994, 0, 0, 0, 0, + 0, 0, 126612, 0, 68903, 0, 129470, 0, 917992, 0, 0, 0, 0, 0, 0, 0, 92457, + 0, 0, 0, 0, 0, 0, 0, 0, 125078, 0, 0, 0, 10970, 92208, 0, 0, 0, 19944, 0, + 9009, 8551, 0, 0, 0, 7575, 67484, 0, 128899, 0, 129609, 78847, 0, 78846, + 0, 0, 69256, 0, 0, 0, 0, 9775, 100682, 129191, 119052, 68629, 194703, 0, + 0, 78850, 92880, 0, 0, 0, 0, 0, 0, 0, 71273, 6184, 41540, 3303, 66182, + 11786, 66180, 66203, 3422, 0, 68290, 43007, 4478, 66178, 0, 0, 126216, 0, + 4477, 0, 69608, 66184, 66183, 66204, 66194, 0, 66198, 41880, 66188, + 66197, 78148, 66195, 66190, 66191, 41111, 66189, 73788, 7788, 0, 0, 0, 0, + 0, 2221, 78163, 6535, 78161, 78162, 430, 78160, 78156, 78158, 0, 0, 4945, + 0, 4950, 0, 78165, 0, 67118, 0, 5964, 12908, 0, 0, 0, 74477, 83390, 0, + 4949, 0, 443, 0, 4944, 5467, 119603, 983262, 0, 9364, 0, 119148, 4946, 0, + 3788, 126106, 983718, 0, 120847, 129858, 74441, 0, 0, 12072, 92248, 0, + 983708, 0, 128676, 12091, 0, 0, 0, 4673, 0, 4678, 0, 0, 65059, 43860, 0, + 0, 0, 128151, 1199, 0, 8356, 0, 0, 4677, 0, 0, 0, 2192, 78173, 78175, + 78171, 78172, 72255, 78170, 78166, 4674, 128450, 194944, 0, 124970, 0, + 119579, 0, 129919, 1855, 0, 0, 127806, 0, 0, 68912, 72323, 0, 12988, + 121000, 0, 0, 0, 4654, 6840, 983429, 0, 73993, 0, 4649, 65209, 983908, + 93839, 4648, 122635, 121169, 983433, 126231, 983424, 66846, 7828, 4650, + 983423, 72879, 0, 4653, 7822, 0, 0, 43187, 0, 983586, 6821, 0, 0, 0, 0, + 0, 0, 66756, 983430, 0, 0, 0, 8547, 0, 42165, 0, 119228, 6836, 0, 0, + 4662, 0, 0, 0, 9146, 599, 4657, 0, 120754, 0, 4656, 0, 0, 7811, 40994, 0, + 6414, 5967, 4658, 3725, 0, 5814, 4661, 127760, 194961, 0, 0, 64904, 0, + 10833, 0, 0, 4867, 128717, 0, 11459, 3054, 0, 40996, 0, 7605, 4622, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 19926, 0, 0, 65307, 4617, 0, 0, 0, 4616, 10518, 0, + 127160, 0, 5958, 0, 983446, 4618, 0, 983439, 120675, 4621, 0, 983441, + 522, 125213, 11139, 65803, 194972, 0, 12201, 6135, 121060, 983422, 0, + 983093, 0, 983420, 983413, 983434, 4638, 983418, 0, 78242, 5965, 78240, + 66569, 68646, 0, 983452, 74392, 5335, 0, 0, 4633, 0, 119045, 983448, + 4632, 0, 5542, 5333, 0, 983425, 68648, 5331, 4634, 0, 92870, 5338, 4637, + 0, 0, 43477, 0, 42493, 0, 42361, 0, 0, 73853, 0, 0, 0, 74204, 11343, 0, + 10358, 10422, 4758, 0, 1608, 5252, 0, 0, 4753, 78239, 11344, 78237, 0, + 5231, 74384, 0, 0, 118676, 0, 0, 0, 0, 71991, 5229, 4757, 0, 0, 5227, + 4752, 0, 65235, 5234, 73044, 0, 0, 0, 0, 0, 0, 7460, 0, 917936, 0, 0, + 74760, 65189, 0, 92230, 0, 0, 5574, 128980, 0, 65139, 5577, 0, 0, 118871, + 68641, 8965, 7635, 0, 5316, 70021, 5314, 74555, 5572, 0, 5312, 0, 5525, + 5330, 5319, 68292, 0, 65066, 0, 0, 983493, 0, 0, 127851, 0, 74851, 0, 0, + 64609, 0, 0, 128593, 0, 129339, 0, 8632, 0, 0, 0, 195012, 5735, 195013, + 1692, 70151, 4610, 122653, 4305, 0, 4609, 43478, 4614, 77753, 118534, + 5287, 5309, 5285, 0, 5961, 4647, 5283, 10743, 0, 71889, 601, 4613, 77759, + 0, 9208, 4608, 74044, 71107, 5190, 0, 0, 92410, 43965, 2265, 0, 0, 0, 0, + 0, 0, 0, 129953, 0, 0, 5960, 0, 8992, 65293, 0, 1782, 0, 0, 0, 0, 0, + 5501, 0, 42508, 69759, 120749, 129120, 0, 195023, 77740, 43900, 77741, 0, 68134, 111180, 74209, 0, 64740, 0, 0, 0, 983935, 3767, 5737, 0, 4865, 0, 5740, 0, 5736, 7724, 0, 7193, 0, 0, 5739, 77744, 4866, 0, 0, 0, 4869, - 67093, 0, 0, 128514, 6650, 983488, 0, 983479, 78376, 4870, 0, 68661, - 6716, 983478, 2190, 69786, 68676, 0, 10122, 4864, 66568, 0, 0, 0, 9603, - 68652, 126213, 42734, 745, 0, 124131, 124130, 4777, 0, 77788, 68631, - 42775, 68196, 0, 124128, 124129, 0, 5966, 0, 4778, 127890, 0, 0, 4781, - 127196, 64407, 0, 74132, 8577, 71221, 0, 71223, 0, 4782, 0, 0, 120757, - 68618, 43472, 43056, 68622, 0, 92986, 4776, 0, 11492, 0, 0, 13176, 0, 0, - 0, 73558, 0, 0, 0, 4849, 8242, 9561, 73922, 0, 0, 0, 0, 5963, 0, 125201, - 0, 4850, 72121, 0, 590, 4853, 0, 4854, 0, 5164, 0, 1605, 5124, 0, 111165, - 0, 8471, 0, 111164, 12445, 3785, 0, 111162, 0, 0, 4848, 2530, 0, 2068, - 1964, 0, 0, 10796, 0, 0, 0, 0, 0, 4794, 0, 0, 0, 4797, 68040, 111152, - 43465, 4792, 0, 0, 0, 0, 0, 110842, 983102, 92963, 0, 0, 0, 4221, 92360, - 118869, 0, 0, 0, 70042, 0, 0, 0, 0, 10739, 65090, 0, 119327, 126541, 0, - 0, 119326, 0, 0, 4937, 43376, 0, 0, 10597, 983445, 11722, 9248, 129566, - 42879, 11725, 0, 0, 7579, 11141, 73958, 4941, 0, 917538, 9140, 4936, - 5261, 0, 0, 72298, 0, 4942, 0, 4938, 0, 0, 5259, 9369, 983434, 111182, - 5257, 78932, 6844, 4964, 5264, 0, 0, 0, 41411, 0, 121473, 73684, 128233, - 9482, 4873, 41991, 64707, 42526, 127989, 64480, 64725, 983447, 0, 0, 0, - 0, 0, 0, 73043, 0, 389, 10893, 7521, 0, 4872, 5463, 0, 3125, 111124, 0, - 4878, 5459, 4604, 0, 0, 5465, 0, 0, 0, 0, 9563, 0, 0, 128419, 125273, - 82963, 0, 0, 0, 67735, 0, 0, 0, 0, 0, 73560, 0, 129707, 0, 917833, 0, - 917836, 0, 0, 3082, 0, 0, 0, 0, 118621, 7079, 5856, 917842, 5163, 0, 0, - 1817, 66724, 0, 0, 10564, 7763, 13077, 124115, 0, 68140, 111137, 0, - 77782, 0, 111139, 123548, 77787, 121457, 0, 0, 0, 983190, 73081, 0, 0, - 983118, 124114, 0, 42156, 0, 0, 0, 983080, 0, 0, 0, 119254, 120693, 0, - 69386, 0, 118881, 0, 78189, 0, 78186, 78188, 129654, 0, 0, 0, 110877, 0, - 3108, 9745, 0, 0, 0, 118825, 92785, 0, 122954, 0, 0, 10972, 92786, 0, - 42768, 715, 983114, 121117, 9453, 5348, 10943, 0, 983170, 92784, 0, 0, - 983154, 0, 0, 11551, 128464, 0, 0, 9051, 0, 71728, 0, 120791, 119523, 0, - 6404, 66458, 68376, 11984, 9156, 65222, 74454, 78180, 0, 3128, 4789, - 5067, 5066, 0, 4784, 0, 8827, 1146, 5065, 78196, 78192, 78193, 78190, - 78191, 5064, 5326, 0, 9450, 5063, 120361, 78200, 78201, 5062, 69733, - 74146, 0, 0, 0, 0, 77992, 0, 3933, 77768, 0, 12337, 0, 125023, 0, 0, 0, - 194759, 0, 0, 82993, 42130, 0, 5151, 917832, 120357, 0, 73523, 0, 7620, - 3800, 0, 0, 0, 127952, 0, 0, 4786, 127991, 4185, 0, 128742, 0, 983194, - 73978, 0, 4593, 77715, 77727, 124909, 0, 110715, 10532, 77732, 110714, - 110711, 110712, 64759, 1325, 5166, 9888, 0, 5148, 0, 0, 78205, 78206, - 64140, 78204, 64131, 3119, 917814, 0, 983438, 917820, 12095, 0, 0, 636, - 128002, 0, 983469, 0, 78531, 7836, 42741, 64137, 0, 118969, 0, 92431, 0, - 0, 0, 0, 0, 8618, 0, 11865, 0, 0, 0, 3937, 12312, 128261, 0, 0, 0, 912, - 6349, 4536, 71964, 0, 126594, 0, 0, 0, 3935, 120665, 0, 0, 0, 0, 118859, - 0, 121116, 0, 0, 12046, 12599, 0, 0, 0, 0, 7227, 0, 0, 0, 983066, 0, 0, - 0, 113817, 2179, 78246, 0, 0, 0, 0, 0, 127405, 101531, 0, 101530, 43907, - 0, 0, 0, 0, 4644, 8818, 0, 0, 0, 0, 93066, 66452, 126081, 1644, 101043, - 9658, 43744, 11385, 65947, 983174, 43983, 0, 0, 0, 8962, 0, 0, 2466, - 42039, 67669, 0, 0, 42117, 100698, 0, 0, 0, 0, 43745, 5318, 0, 77723, 0, - 0, 0, 7054, 64147, 0, 917804, 68195, 6698, 0, 0, 0, 70849, 11981, 12202, - 0, 121364, 0, 7059, 11608, 975, 0, 65843, 170, 0, 67239, 42708, 0, 0, - 6058, 0, 0, 0, 70507, 0, 0, 9818, 0, 0, 42106, 0, 983065, 4738, 42105, - 7062, 0, 4737, 11779, 4742, 120564, 92391, 0, 41374, 41375, 983381, 6715, - 12700, 7049, 983379, 0, 0, 0, 4741, 42108, 983370, 64159, 4736, 64148, 0, - 849, 0, 128247, 983366, 0, 120913, 917997, 0, 983384, 9496, 66371, - 983408, 983382, 11322, 0, 93008, 3928, 983153, 0, 10706, 7198, 0, 4842, - 12053, 0, 0, 4841, 0, 4171, 12008, 68416, 3923, 1490, 0, 0, 983398, - 40972, 5245, 72288, 983400, 126578, 0, 4845, 8332, 40974, 0, 4840, 9077, - 2252, 2408, 72851, 4825, 0, 917574, 0, 0, 126251, 0, 0, 983358, 0, - 983359, 0, 4826, 42440, 0, 0, 1274, 0, 74315, 0, 120384, 118614, 121200, - 0, 0, 0, 4830, 983393, 129044, 0, 0, 119082, 0, 64105, 0, 0, 4824, - 120397, 0, 0, 1888, 64127, 7861, 125111, 78524, 41836, 110613, 10873, - 72439, 0, 64098, 12214, 124134, 41834, 0, 358, 128120, 41833, 11442, 0, - 0, 0, 0, 64115, 0, 0, 0, 120721, 119053, 0, 119055, 119054, 0, 0, 0, 0, - 4017, 12827, 5241, 0, 73042, 41118, 3924, 0, 11366, 0, 0, 0, 0, 41116, - 69455, 0, 0, 0, 0, 11917, 0, 74000, 4721, 123551, 983937, 0, 0, 0, 0, 0, - 0, 122907, 0, 128702, 4722, 6816, 124974, 0, 4725, 67099, 4726, 0, - 129856, 123171, 0, 123194, 0, 0, 0, 4015, 0, 8052, 78766, 123538, 0, - 128294, 0, 0, 4720, 73090, 125003, 0, 0, 1656, 41831, 0, 0, 41843, 92846, - 0, 1452, 13111, 0, 0, 0, 8552, 64113, 41845, 64073, 120354, 0, 0, 120066, - 120067, 7064, 64070, 9948, 0, 0, 0, 92828, 2420, 92811, 0, 0, 0, 120052, - 120053, 120050, 74920, 3938, 120057, 120054, 92829, 120060, 71920, - 120058, 120059, 120064, 72203, 7955, 64074, 4713, 128196, 983108, 0, 0, - 0, 65152, 10198, 120044, 120045, 120042, 6713, 4532, 120049, 120046, - 120047, 4717, 7046, 0, 66450, 4712, 75055, 0, 121085, 0, 8155, 4718, - 3942, 4714, 9625, 0, 6383, 0, 12006, 0, 0, 0, 0, 0, 65414, 0, 0, 129061, - 66437, 66025, 74115, 0, 0, 11228, 4809, 0, 68211, 72352, 0, 0, 983101, + 67093, 0, 0, 128514, 6650, 983485, 0, 983476, 78376, 4870, 0, 68661, + 6716, 983475, 2190, 69786, 68676, 0, 10122, 4864, 66568, 0, 0, 0, 9603, + 68652, 126213, 42734, 745, 0, 0, 0, 4777, 0, 77788, 68631, 42775, 68196, + 0, 0, 0, 0, 5966, 0, 4778, 127890, 0, 0, 4781, 127196, 64407, 0, 74132, + 8577, 71221, 0, 71223, 0, 4782, 0, 0, 120757, 68618, 43472, 43056, 68622, + 0, 92986, 4776, 0, 11492, 0, 0, 13176, 0, 0, 0, 0, 0, 0, 0, 4849, 8242, + 9561, 73922, 0, 0, 0, 0, 5963, 0, 125201, 0, 4850, 72121, 0, 590, 4853, + 0, 4854, 0, 5164, 0, 1605, 5124, 0, 111165, 0, 8471, 0, 111164, 12445, + 3785, 0, 111162, 0, 0, 4848, 2530, 0, 2068, 1964, 0, 0, 10796, 0, 0, 0, + 0, 0, 4794, 0, 0, 0, 4797, 68040, 111152, 43465, 4792, 0, 0, 0, 0, 0, + 110842, 983101, 92963, 0, 0, 0, 4221, 92360, 118869, 0, 0, 0, 70042, 0, + 0, 0, 0, 10739, 65090, 0, 119327, 126541, 0, 0, 119326, 0, 0, 4937, + 43376, 0, 0, 10597, 983442, 11722, 9248, 129566, 42879, 11725, 0, 0, + 7579, 11141, 73958, 4941, 0, 917538, 9140, 4936, 5261, 0, 0, 72298, 0, + 4942, 0, 4938, 0, 0, 5259, 9369, 983431, 111182, 5257, 0, 6844, 4964, + 5264, 0, 0, 0, 41411, 0, 121473, 73684, 128233, 9482, 4873, 41991, 64707, + 42526, 127989, 64480, 64725, 983444, 0, 0, 0, 0, 0, 0, 73043, 0, 389, + 10893, 7521, 0, 4872, 5463, 0, 3125, 111124, 0, 4878, 5459, 4604, 0, 0, + 5465, 0, 0, 0, 0, 9563, 0, 0, 128419, 125273, 82963, 0, 0, 0, 67735, 0, + 0, 0, 0, 0, 78179, 0, 129707, 0, 917833, 0, 917836, 0, 0, 3082, 0, 0, 0, + 0, 118621, 7079, 5856, 917842, 5163, 0, 0, 1817, 66724, 0, 0, 10564, + 7763, 13077, 0, 0, 68140, 111137, 0, 77782, 0, 111139, 123548, 77787, + 121457, 0, 0, 0, 983189, 73081, 0, 0, 983117, 983077, 0, 42156, 0, 0, 0, + 983080, 0, 0, 0, 119254, 120693, 0, 69386, 0, 118881, 0, 78189, 0, 78186, + 78188, 0, 0, 0, 0, 110877, 0, 3108, 9745, 0, 0, 0, 118825, 92785, 0, 0, + 0, 0, 10972, 92786, 0, 42768, 715, 983113, 121117, 9453, 5348, 10943, 0, + 983169, 92784, 0, 0, 983153, 0, 0, 11551, 128464, 0, 0, 9051, 0, 71728, + 0, 120791, 119523, 0, 6404, 66458, 68376, 11984, 9156, 65222, 74454, + 78180, 0, 3128, 4789, 5067, 5066, 0, 4784, 0, 8827, 1146, 5065, 78196, + 78192, 78193, 78190, 78191, 5064, 5326, 0, 9450, 5063, 120361, 78200, + 78201, 5062, 69733, 74146, 0, 0, 0, 0, 77992, 0, 3933, 77768, 0, 12337, + 0, 125023, 0, 0, 0, 194759, 0, 0, 82993, 42130, 0, 5151, 917832, 120357, + 0, 93980, 0, 7620, 3800, 0, 0, 0, 127952, 0, 0, 4786, 127991, 4185, 0, + 128742, 0, 983193, 73978, 0, 4593, 77715, 77727, 124909, 0, 110715, + 10532, 77732, 110714, 110711, 110712, 64759, 1325, 5166, 9888, 0, 5148, + 0, 0, 78205, 78206, 64140, 78204, 64131, 3119, 917814, 0, 983435, 917820, + 12095, 0, 0, 636, 128002, 0, 983466, 0, 78531, 7836, 42741, 64137, 0, + 118969, 0, 92431, 0, 0, 0, 0, 0, 8618, 0, 11865, 0, 0, 0, 3937, 12312, + 128261, 0, 0, 0, 912, 6349, 4536, 71964, 0, 126594, 0, 0, 0, 3935, + 120665, 0, 0, 0, 0, 118859, 0, 121116, 0, 0, 12046, 12599, 0, 0, 0, 0, + 7227, 0, 0, 0, 983066, 0, 0, 0, 113817, 2179, 78246, 0, 0, 0, 0, 0, + 127405, 101531, 0, 101530, 43907, 0, 0, 0, 0, 4644, 8818, 0, 0, 0, 0, + 93066, 66452, 126081, 1644, 101043, 9658, 43744, 11385, 65947, 983173, + 43983, 0, 0, 0, 8962, 0, 0, 2466, 42039, 67669, 0, 0, 42117, 100698, 0, + 0, 0, 0, 43745, 5318, 0, 77723, 0, 0, 0, 7054, 64147, 0, 917804, 68195, + 6698, 0, 0, 0, 70849, 11981, 12202, 0, 121364, 0, 7059, 11608, 975, 0, + 65843, 170, 0, 67239, 42708, 0, 0, 6058, 0, 0, 0, 70507, 0, 0, 9818, 0, + 0, 42106, 0, 983065, 4738, 42105, 7062, 0, 4737, 11779, 4742, 120564, + 92391, 0, 41374, 41375, 983378, 6715, 12700, 7049, 983376, 0, 0, 0, 4741, + 42108, 983367, 64159, 4736, 64148, 0, 849, 0, 128247, 983363, 0, 120913, + 917997, 0, 983381, 9496, 66371, 983405, 983379, 11322, 0, 93008, 3928, + 983152, 0, 10706, 7198, 0, 4842, 12053, 0, 0, 4841, 0, 4171, 12008, + 68416, 3923, 1490, 0, 0, 983395, 40972, 5245, 72288, 983397, 126578, 0, + 4845, 8332, 40974, 0, 4840, 9077, 2252, 2408, 72851, 4825, 0, 917574, 0, + 0, 126251, 0, 0, 983355, 0, 983356, 0, 4826, 42440, 0, 0, 1274, 0, 74315, + 0, 120384, 118614, 121200, 0, 0, 0, 4830, 983390, 129044, 0, 0, 119082, + 0, 64105, 0, 0, 4824, 120397, 0, 0, 1888, 64127, 7861, 125111, 78524, + 41836, 110613, 10873, 72439, 0, 64098, 12214, 0, 41834, 0, 358, 128120, + 41833, 11442, 0, 0, 0, 0, 64115, 0, 0, 0, 120721, 119053, 0, 119055, + 119054, 0, 0, 0, 0, 4017, 12827, 5241, 0, 73042, 41118, 3924, 0, 11366, + 0, 0, 0, 0, 41116, 69455, 0, 0, 0, 0, 11917, 0, 74000, 4721, 123551, + 983937, 0, 0, 0, 0, 0, 0, 122907, 0, 128702, 4722, 6816, 124974, 0, 4725, + 67099, 4726, 0, 129856, 123171, 0, 123194, 0, 0, 0, 4015, 0, 8052, 78766, + 123538, 0, 128294, 0, 0, 4720, 73090, 125003, 0, 0, 1656, 41831, 0, 0, + 41843, 92846, 0, 1452, 13111, 0, 0, 0, 8552, 64113, 41845, 64073, 120354, + 0, 0, 120066, 120067, 7064, 64070, 9948, 0, 0, 0, 92828, 2420, 92811, 0, + 0, 0, 120052, 120053, 120050, 74920, 3938, 120057, 120054, 92829, 120060, + 71920, 120058, 120059, 120064, 72203, 7955, 64074, 4713, 128196, 983107, + 0, 0, 0, 65152, 10198, 120044, 120045, 120042, 6713, 4532, 120049, + 120046, 120047, 4717, 7046, 0, 66450, 4712, 75055, 0, 121085, 0, 8155, + 4718, 3942, 4714, 9625, 0, 6383, 0, 12006, 0, 0, 0, 0, 0, 65414, 0, 0, + 129061, 66437, 66025, 74115, 0, 0, 11228, 4809, 0, 68211, 72352, 0, 0, 0, 65405, 129912, 0, 0, 2163, 4545, 0, 917566, 0, 4813, 78699, 0, 0, 4808, 0, 0, 65475, 0, 0, 4814, 72240, 4810, 0, 0, 68784, 10761, 67514, 3522, 0, 78693, 65404, 0, 0, 0, 0, 0, 6691, 70125, 0, 126223, 0, 0, 0, 43858, @@ -29883,35 +29683,35 @@ static const unsigned int code_hash[] = { 2315, 0, 1938, 0, 0, 0, 0, 0, 0, 0, 111135, 93794, 0, 0, 0, 93810, 0, 2291, 0, 0, 0, 0, 129429, 0, 10799, 0, 0, 66372, 0, 4193, 0, 0, 983057, 7998, 0, 0, 0, 0, 2316, 0, 0, 0, 0, 120106, 0, 0, 74140, 0, 0, 0, 0, - 3762, 93813, 120672, 93820, 0, 0, 0, 70098, 3780, 12808, 8163, 983155, 0, + 3762, 93813, 120672, 93820, 0, 0, 0, 70098, 3780, 12808, 8163, 983154, 0, 0, 3906, 12349, 0, 8326, 0, 65498, 3763, 0, 5618, 0, 3779, 0, 43613, 0, - 128007, 0, 0, 0, 0, 280, 0, 126252, 983453, 13072, 1894, 0, 0, 65478, - 43310, 7231, 0, 11773, 0, 0, 0, 101517, 122662, 0, 7559, 11652, 10009, - 110765, 110766, 110763, 110764, 4470, 110762, 0, 0, 983446, 0, 5249, 0, - 0, 8756, 0, 0, 41694, 120585, 92349, 0, 0, 0, 69685, 123549, 983450, - 113794, 0, 6808, 41319, 13125, 66332, 127977, 0, 2290, 0, 983418, 0, 0, - 3943, 0, 41205, 0, 0, 0, 0, 5352, 0, 0, 41207, 0, 7384, 69647, 41204, - 123552, 41209, 69637, 0, 43607, 0, 0, 5420, 0, 10134, 0, 0, 4018, 7150, - 0, 0, 0, 0, 0, 129606, 2561, 65023, 0, 7148, 12076, 0, 0, 129201, 0, - 6276, 1706, 0, 0, 7146, 0, 128277, 41819, 74991, 0, 10847, 41822, 72248, - 860, 0, 0, 0, 69641, 10753, 41820, 126118, 0, 71898, 0, 92617, 128567, 0, - 121514, 43016, 0, 0, 92225, 0, 0, 0, 0, 4022, 0, 0, 110807, 0, 41691, 0, - 75060, 11866, 0, 65292, 0, 110812, 0, 3911, 110811, 110808, 110809, 0, - 125191, 7000, 3904, 118997, 72261, 0, 0, 0, 13123, 10846, 0, 0, 0, 0, 0, - 74082, 0, 123542, 0, 0, 3777, 128329, 0, 9636, 71726, 0, 0, 9367, 593, 0, - 3999, 0, 41713, 0, 0, 67677, 0, 0, 0, 9763, 120280, 120283, 12347, 124, - 12981, 41127, 92527, 0, 0, 0, 0, 0, 43987, 0, 0, 1769, 41715, 2463, 2151, - 0, 0, 71222, 1538, 93044, 0, 0, 123543, 7795, 120300, 0, 92493, 10955, 0, - 0, 72375, 78208, 9498, 78207, 127033, 78210, 120288, 3939, 120290, - 120285, 8943, 120287, 120286, 120297, 4491, 120299, 42602, 120293, - 120292, 120295, 120294, 0, 0, 0, 0, 0, 0, 1511, 9324, 0, 0, 0, 0, 0, - 64536, 0, 0, 0, 124935, 6822, 12862, 0, 0, 42143, 41828, 0, 917629, - 70864, 118879, 0, 0, 0, 41826, 128413, 0, 0, 13279, 7917, 0, 0, 0, 0, 0, - 92800, 92332, 0, 0, 43515, 0, 0, 0, 4013, 0, 66980, 0, 72224, 125266, 0, - 68243, 2432, 92834, 0, 0, 0, 0, 69952, 0, 0, 0, 10949, 0, 0, 0, 0, 0, 0, - 0, 128574, 43233, 0, 42517, 0, 0, 0, 0, 0, 64468, 119359, 6474, 119358, - 43497, 12656, 128122, 119353, 0, 1665, 0, 0, 0, 64512, 0, 0, 5256, 0, 0, - 0, 2859, 123563, 0, 0, 0, 0, 92801, 128220, 0, 770, 0, 811, 0, 0, 917551, + 128007, 0, 0, 0, 0, 280, 0, 126252, 983450, 13072, 1894, 0, 0, 65478, + 43310, 7231, 0, 11773, 0, 0, 0, 101517, 0, 0, 7559, 11652, 10009, 110765, + 110766, 110763, 110764, 4470, 110762, 0, 0, 983443, 0, 5249, 0, 0, 8756, + 0, 0, 41694, 120585, 92349, 0, 0, 0, 69685, 123549, 983447, 113794, 0, + 6808, 41319, 13125, 66332, 127977, 0, 2290, 0, 983415, 0, 0, 3943, 0, + 41205, 0, 0, 0, 0, 5352, 0, 0, 41207, 0, 7384, 69647, 41204, 123552, + 41209, 69637, 0, 43607, 0, 0, 5420, 0, 10134, 0, 0, 4018, 7150, 0, 0, 0, + 0, 0, 129606, 2561, 65023, 0, 7148, 12076, 0, 0, 129201, 0, 6276, 1706, + 0, 0, 7146, 0, 128277, 41819, 74991, 0, 10847, 41822, 72248, 860, 0, 0, + 0, 69641, 10753, 41820, 126118, 0, 71898, 0, 92617, 128567, 0, 121514, + 43016, 0, 0, 92225, 0, 0, 0, 0, 4022, 0, 0, 110807, 0, 41691, 0, 75060, + 11866, 0, 65292, 0, 110812, 0, 3911, 110811, 110808, 110809, 0, 125191, + 7000, 3904, 118997, 72261, 0, 0, 0, 13123, 10846, 0, 0, 0, 0, 0, 74082, + 0, 123542, 0, 0, 3777, 128329, 0, 9636, 71726, 0, 0, 9367, 593, 0, 3999, + 0, 41713, 0, 0, 67677, 0, 0, 0, 9763, 120280, 120283, 12347, 124, 12981, + 41127, 92527, 0, 0, 0, 0, 0, 43987, 0, 0, 1769, 41715, 2463, 2151, 0, 0, + 71222, 1538, 93044, 0, 0, 123543, 7795, 120300, 0, 92493, 10955, 0, 0, + 72375, 78208, 9498, 78207, 127033, 78210, 120288, 3939, 120290, 120285, + 8943, 120287, 120286, 120297, 4491, 120299, 42602, 120293, 120292, + 120295, 120294, 0, 0, 0, 0, 0, 0, 1511, 9324, 0, 0, 0, 0, 0, 64536, 0, 0, + 0, 124935, 6822, 12862, 0, 0, 42143, 41828, 0, 917629, 70864, 118879, 0, + 0, 0, 41826, 128413, 0, 0, 13279, 7917, 0, 0, 0, 0, 0, 92800, 92332, 0, + 0, 43515, 0, 0, 0, 4013, 0, 66980, 0, 72224, 125266, 0, 68243, 2432, + 92834, 0, 0, 0, 0, 69952, 0, 0, 0, 10949, 0, 0, 0, 0, 0, 0, 0, 128574, + 43233, 0, 42517, 0, 0, 0, 0, 0, 64468, 119359, 6474, 119358, 43497, + 12656, 128122, 119353, 0, 1665, 0, 0, 0, 64512, 0, 0, 5256, 0, 0, 0, + 2859, 123563, 0, 0, 0, 0, 92801, 128220, 0, 770, 0, 811, 0, 0, 917551, 42244, 64427, 0, 72222, 0, 3895, 0, 74341, 12087, 0, 42859, 10193, 3116, 7747, 0, 0, 43496, 0, 0, 0, 0, 41877, 0, 65382, 64614, 0, 64296, 0, 6345, 0, 2663, 0, 121234, 0, 0, 10150, 0, 64308, 1522, 597, 0, 0, 41201, 64731, @@ -29946,19 +29746,19 @@ static const unsigned int code_hash[] = { 0, 67708, 0, 119346, 0, 5959, 0, 0, 66275, 43371, 0, 0, 0, 0, 0, 12769, 69793, 0, 1283, 0, 4779, 0, 3719, 4006, 0, 0, 71186, 68204, 124957, 0, 119331, 43028, 65493, 0, 125058, 5962, 65485, 92616, 0, 43501, 5827, 0, - 120951, 0, 65494, 0, 129365, 0, 0, 43879, 0, 0, 0, 0, 983205, 65467, 0, + 120951, 0, 65494, 0, 129365, 0, 0, 43879, 0, 0, 0, 0, 983203, 65467, 0, 0, 0, 0, 521, 0, 0, 983928, 0, 0, 483, 7096, 0, 0, 928, 0, 0, 0, 0, - 92983, 3989, 73972, 122980, 0, 0, 0, 12145, 0, 73932, 0, 0, 3769, 67460, - 0, 0, 0, 0, 0, 65290, 92223, 0, 65855, 0, 0, 0, 0, 128811, 0, 0, 0, 0, 0, - 0, 73838, 0, 0, 13007, 67506, 0, 0, 12661, 7608, 75032, 12213, 0, 0, 0, - 0, 12195, 4001, 3112, 67474, 0, 7590, 0, 0, 421, 0, 0, 0, 4130, 127775, + 92983, 3989, 73972, 0, 0, 0, 0, 12145, 0, 73932, 0, 0, 3769, 67460, 0, 0, + 0, 0, 0, 65290, 92223, 0, 65855, 0, 0, 0, 0, 128811, 0, 0, 0, 0, 0, 0, + 73838, 0, 0, 13007, 67506, 0, 0, 12661, 7608, 75032, 12213, 0, 0, 0, 0, + 12195, 4001, 3112, 67474, 0, 7590, 0, 0, 421, 0, 0, 0, 4130, 127775, 7595, 42588, 7600, 0, 0, 0, 0, 65851, 42607, 0, 92403, 8680, 0, 42134, 0, 0, 2846, 92605, 0, 0, 0, 0, 12979, 0, 0, 92558, 3740, 69843, 120437, 0, 120451, 65923, 120435, 0, 120434, 0, 93800, 3118, 74265, 93795, 93816, 93823, 93797, 8127, 92912, 93792, 7943, 93821, 93799, 10618, 2584, 93793, 0, 0, 9998, 0, 0, 0, 66350, 0, 0, 0, 121374, 8279, 128169, 0, 4975, 70075, 0, 118675, 1631, 0, 0, 0, 6290, 128994, 66386, 0, 64645, 0, 0, 0, - 0, 0, 9242, 93807, 93802, 93801, 983269, 93803, 3122, 93804, 7793, 0, 0, + 0, 0, 9242, 93807, 93802, 93801, 983266, 93803, 3122, 93804, 7793, 0, 0, 0, 0, 12604, 92885, 6615, 67650, 0, 3986, 44025, 0, 8912, 0, 7409, 0, 0, 0, 0, 0, 0, 8540, 11498, 0, 0, 0, 0, 0, 13060, 120682, 0, 0, 0, 0, 0, 121345, 0, 0, 7020, 120353, 3765, 92881, 0, 1606, 120348, 120351, 3093, @@ -29968,151 +29768,150 @@ static const unsigned int code_hash[] = { 42758, 12196, 128429, 0, 0, 0, 0, 128867, 94179, 0, 3120, 9797, 0, 0, 11086, 10389, 0, 101025, 4895, 128153, 124941, 4359, 0, 0, 3509, 70037, 486, 0, 0, 0, 0, 0, 7004, 0, 0, 0, 0, 4855, 128200, 0, 0, 0, 0, 0, 0, - 10381, 70839, 0, 0, 0, 0, 125121, 70837, 125070, 129431, 983377, 983365, - 0, 983364, 0, 120063, 0, 0, 0, 75048, 0, 74900, 0, 0, 120978, 12161, - 983356, 0, 10339, 0, 77808, 0, 0, 917846, 77806, 0, 43032, 125010, 0, - 983383, 12671, 11384, 0, 0, 120901, 64797, 0, 5820, 0, 0, 0, 0, 0, - 120650, 42137, 9893, 8851, 12664, 0, 0, 13192, 0, 41799, 65530, 0, 0, - 43039, 3114, 0, 0, 0, 0, 0, 926, 77803, 72004, 77805, 77799, 77800, - 77801, 77802, 43037, 41798, 77797, 77798, 123214, 41801, 0, 0, 0, 4200, - 12699, 8331, 70118, 3091, 92980, 66298, 70293, 8360, 0, 78044, 0, 4229, - 64543, 126227, 65563, 0, 129310, 2861, 43793, 10095, 121428, 9195, - 121381, 121132, 0, 129578, 0, 0, 43041, 0, 43794, 0, 83167, 0, 43797, - 8209, 0, 129132, 12973, 0, 0, 0, 0, 0, 121235, 5760, 0, 743, 0, 0, 0, - 118712, 0, 0, 83170, 128589, 129537, 0, 119063, 0, 0, 0, 19919, 0, 64532, - 0, 43710, 0, 0, 9483, 71115, 0, 43697, 0, 0, 83211, 0, 0, 0, 7247, 0, 0, - 0, 0, 0, 113674, 0, 7471, 120823, 128743, 12682, 0, 0, 65679, 983144, 0, - 0, 83201, 1099, 74241, 0, 10501, 0, 0, 113743, 0, 64743, 128476, 67663, - 0, 0, 92219, 0, 83197, 64897, 9973, 1818, 0, 0, 8272, 127812, 0, 4218, - 3087, 0, 127234, 122935, 101300, 65181, 9954, 10465, 0, 0, 0, 9106, 0, - 67406, 0, 0, 0, 0, 43038, 0, 0, 265, 70208, 0, 0, 0, 0, 0, 69405, 0, 59, - 0, 0, 0, 0, 126239, 41810, 0, 126492, 0, 41809, 41888, 0, 41795, 0, - 42213, 0, 0, 43033, 511, 42963, 0, 13127, 0, 0, 0, 0, 111107, 100489, - 4467, 41812, 41215, 0, 41211, 917783, 4453, 69575, 0, 129883, 0, 983412, - 41213, 92864, 118716, 0, 0, 129730, 41841, 6617, 130041, 0, 92995, 462, - 0, 10493, 0, 55248, 0, 0, 74471, 6644, 0, 0, 0, 983388, 100484, 9581, - 67104, 3098, 0, 0, 983415, 125250, 0, 120621, 0, 0, 0, 129584, 101011, 0, - 118789, 74473, 3755, 64661, 7748, 7235, 3966, 0, 0, 127510, 0, 0, 0, - 5726, 66456, 42175, 100486, 0, 42212, 92681, 121443, 2851, 43017, 120108, - 121056, 4373, 0, 0, 9587, 0, 6671, 128840, 3100, 0, 917790, 0, 0, 0, - 917789, 70209, 8190, 12083, 917791, 0, 6689, 64629, 0, 0, 0, 4419, - 917787, 101017, 0, 69851, 0, 0, 8891, 3080, 0, 2347, 0, 0, 8990, 0, - 121201, 0, 92528, 249, 129008, 0, 69424, 0, 0, 0, 55253, 0, 0, 11173, - 995, 0, 121047, 119861, 0, 73708, 0, 0, 19945, 0, 558, 983399, 12273, 0, - 983881, 0, 69912, 120861, 129492, 67274, 94178, 0, 68019, 43030, 3129, 0, - 2102, 0, 0, 121450, 0, 7725, 0, 11120, 0, 126111, 69246, 0, 0, 0, 41894, - 0, 41898, 0, 41893, 74921, 128678, 3540, 11848, 0, 73005, 120848, 0, 0, - 126113, 73959, 0, 0, 128735, 120858, 0, 0, 9699, 128656, 41896, 0, 83196, - 69230, 74951, 0, 72736, 0, 0, 3095, 983689, 11946, 983885, 0, 0, 0, 0, 0, - 113677, 3672, 111309, 0, 0, 0, 128539, 8890, 93826, 0, 128182, 0, 0, 0, - 126568, 0, 0, 983617, 9516, 983441, 72109, 0, 42220, 0, 4450, 0, 11547, - 43417, 128542, 356, 0, 0, 0, 0, 64901, 0, 0, 0, 0, 0, 0, 111302, 65940, - 2541, 71231, 0, 123215, 126470, 3549, 0, 0, 0, 2743, 0, 0, 0, 9097, - 128896, 43015, 0, 0, 776, 2524, 0, 8573, 100665, 126494, 0, 0, 42694, - 71122, 8952, 10814, 118818, 0, 43646, 128598, 66944, 0, 0, 128380, - 100663, 0, 65853, 42707, 1897, 93071, 0, 0, 71907, 69410, 0, 125106, 0, - 0, 0, 68473, 66778, 43573, 92638, 0, 0, 0, 120955, 73986, 0, 0, 43022, 0, - 74841, 0, 67714, 0, 0, 0, 0, 0, 4553, 0, 0, 0, 0, 0, 19921, 0, 0, 983687, - 4567, 41891, 0, 983819, 55249, 194663, 0, 194662, 0, 194665, 43042, - 121291, 1377, 12869, 0, 0, 9250, 0, 0, 0, 129779, 125039, 194642, 0, - 74995, 0, 194644, 0, 0, 101328, 194668, 121166, 0, 70275, 1898, 69556, 0, - 0, 802, 0, 0, 0, 6648, 0, 2528, 0, 0, 194646, 194625, 101330, 68804, 844, - 0, 68824, 0, 68818, 194650, 0, 0, 0, 983743, 65464, 0, 0, 0, 0, 83221, 0, - 0, 100680, 42954, 0, 64371, 70665, 0, 194654, 0, 0, 0, 0, 0, 6196, 6945, - 0, 0, 0, 120491, 0, 68846, 6210, 0, 70274, 0, 0, 0, 68067, 68834, 194715, - 588, 9760, 129112, 0, 983723, 119505, 0, 127992, 0, 0, 118905, 0, 0, - 92485, 110839, 69396, 0, 3394, 70734, 194639, 0, 0, 0, 0, 0, 0, 194656, - 7817, 1841, 11055, 195001, 194979, 194983, 127011, 67403, 194987, 7701, - 194998, 0, 194995, 1946, 121404, 0, 0, 917631, 0, 0, 10934, 0, 70376, 0, - 0, 8071, 3538, 0, 2287, 65328, 0, 0, 7614, 0, 0, 0, 12009, 43968, 0, - 67852, 0, 0, 10841, 123640, 0, 0, 0, 0, 8960, 0, 0, 65317, 128829, 0, 0, - 70374, 0, 0, 0, 65315, 0, 0, 0, 0, 0, 119621, 0, 11849, 12447, 0, 0, - 110741, 0, 0, 0, 129976, 42767, 0, 0, 0, 43695, 120520, 11975, 194941, - 983448, 0, 2555, 0, 128640, 70070, 42936, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 66714, 0, 0, 70076, 65596, 121034, 66710, 67658, 0, 126994, 65338, - 7792, 0, 0, 67871, 119027, 0, 8233, 43572, 0, 0, 0, 3442, 110933, 2841, - 12543, 0, 1473, 42820, 64329, 127832, 917772, 126126, 7937, 0, 1048, 0, - 0, 983943, 0, 3406, 1054, 100701, 1040, 65450, 0, 92329, 1069, 917763, - 128367, 128940, 0, 917765, 0, 983724, 9693, 110873, 0, 0, 0, 983948, - 4353, 118653, 1059, 127530, 0, 0, 0, 127093, 118862, 120500, 10646, - 118708, 100710, 917762, 70424, 74830, 0, 0, 983720, 10221, 100706, 68255, - 0, 0, 74346, 119619, 100707, 64945, 12921, 0, 0, 0, 0, 0, 983795, 43020, - 0, 0, 74254, 0, 983785, 0, 0, 983792, 0, 71954, 0, 0, 0, 0, 122625, 0, - 120503, 70663, 0, 2755, 0, 0, 0, 4857, 0, 4428, 0, 0, 983791, 0, 0, 0, - 43842, 0, 122899, 0, 7978, 0, 70392, 127080, 11924, 43812, 0, 65015, - 67472, 563, 68340, 0, 12798, 0, 100727, 0, 0, 0, 74110, 0, 94051, 0, 694, - 0, 9876, 0, 119168, 0, 0, 0, 92361, 0, 0, 7229, 0, 0, 0, 0, 64811, 0, - 119087, 126478, 0, 7381, 0, 2525, 4852, 11586, 68465, 41605, 126089, 0, - 11582, 7151, 10155, 92578, 188, 0, 11592, 0, 74015, 0, 0, 4858, 122645, - 0, 0, 4861, 0, 2786, 121431, 4856, 8051, 0, 119609, 0, 113797, 71133, 0, - 78448, 0, 0, 67842, 68084, 0, 0, 0, 0, 0, 10234, 5843, 0, 71865, 66728, - 0, 3157, 0, 0, 75035, 72788, 983750, 0, 10822, 5149, 129517, 0, 65142, - 129454, 4565, 0, 0, 0, 12657, 0, 0, 386, 0, 8834, 120974, 0, 43574, 0, 0, - 0, 70113, 7220, 11839, 124984, 74883, 194752, 0, 65241, 74503, 8160, 0, - 194753, 0, 0, 0, 0, 0, 121265, 6847, 13303, 0, 0, 194755, 0, 118865, 0, - 194761, 0, 0, 74505, 0, 0, 0, 100518, 194721, 8780, 100512, 0, 68745, - 110626, 66697, 0, 2672, 3735, 983641, 0, 68752, 11205, 10724, 41202, 0, - 100714, 0, 0, 0, 0, 194765, 3842, 0, 78183, 12442, 78182, 9791, 78181, 0, - 42516, 67730, 64821, 195059, 78178, 0, 78464, 119219, 78465, 127466, - 194690, 195063, 0, 0, 0, 0, 78540, 78541, 78538, 1962, 78490, 78476, - 65930, 11660, 0, 2072, 0, 0, 78544, 194704, 78542, 10669, 110859, 110860, - 110857, 110858, 129749, 110856, 4105, 0, 194699, 0, 0, 0, 13148, 195068, - 78479, 9226, 0, 0, 10765, 127486, 71919, 6263, 195050, 0, 195041, 0, 0, - 0, 0, 0, 0, 92312, 7886, 0, 6682, 0, 6680, 195042, 126473, 195052, 6679, - 74412, 0, 72206, 74421, 66281, 0, 0, 127478, 0, 0, 92861, 6681, 0, 12693, - 0, 0, 0, 0, 0, 65442, 129055, 0, 9989, 74415, 194673, 0, 0, 983788, 0, 0, - 0, 0, 7042, 127240, 119026, 7968, 0, 983768, 194741, 194736, 983793, 0, - 69889, 74389, 128696, 0, 0, 128979, 5781, 0, 78199, 0, 124145, 11091, 0, - 2719, 0, 0, 0, 64495, 0, 0, 0, 65169, 42845, 0, 128551, 983766, 2200, - 72435, 0, 0, 0, 917855, 66670, 0, 983709, 0, 0, 0, 7902, 0, 65265, 0, 0, - 0, 0, 0, 0, 0, 12994, 0, 10828, 983974, 0, 4307, 3482, 0, 0, 72389, 0, - 64299, 74573, 41194, 7343, 0, 0, 41195, 0, 8169, 0, 8841, 66770, 516, - 72981, 41197, 119051, 34, 128850, 120186, 11504, 1612, 120187, 120182, - 120181, 120184, 12001, 120178, 120177, 120180, 120179, 71966, 120173, - 7749, 120175, 0, 1758, 0, 10667, 0, 120197, 0, 1935, 11517, 120193, - 120196, 78925, 120190, 120189, 120192, 120191, 1217, 64702, 128075, 825, - 0, 129824, 0, 0, 66748, 0, 11050, 0, 123187, 0, 0, 74554, 110577, 0, - 8677, 123188, 11313, 123185, 3403, 0, 123186, 64364, 92683, 0, 0, 0, 0, - 123189, 0, 0, 983880, 0, 69408, 41850, 0, 3433, 127965, 0, 1594, 65607, - 0, 66392, 0, 129291, 74565, 41353, 125119, 78926, 0, 0, 0, 918, 127280, - 41351, 0, 0, 12140, 0, 12668, 72395, 0, 128753, 0, 127302, 0, 127288, - 129497, 127235, 573, 0, 0, 11417, 0, 127283, 0, 0, 0, 72410, 0, 11482, 0, - 3981, 74345, 0, 0, 0, 0, 0, 0, 125238, 0, 0, 42195, 0, 123190, 129764, - 64602, 0, 0, 121366, 0, 121061, 128690, 0, 8423, 0, 448, 66907, 9717, 0, - 0, 0, 0, 0, 0, 0, 71910, 129898, 0, 0, 120679, 65013, 78169, 0, 72390, 0, - 0, 127917, 0, 74892, 0, 0, 127798, 0, 0, 66982, 0, 0, 0, 12197, 125074, - 0, 121447, 0, 0, 0, 0, 0, 0, 0, 74563, 64828, 11419, 0, 8592, 0, 0, 0, - 11381, 0, 0, 74529, 0, 0, 83254, 0, 72796, 0, 83257, 0, 0, 0, 129437, - 65672, 0, 0, 0, 0, 0, 0, 0, 0, 9505, 0, 0, 756, 0, 125243, 100358, - 110852, 7261, 0, 0, 0, 0, 0, 64401, 65830, 41365, 0, 0, 0, 127834, 0, 0, - 0, 0, 0, 74626, 123155, 11578, 0, 2170, 0, 0, 0, 0, 74568, 0, 113684, - 1794, 68310, 120218, 120219, 120220, 120221, 120222, 120223, 3617, - 120011, 64886, 94061, 78202, 120213, 66999, 10225, 983060, 0, 65223, - 983058, 0, 0, 4452, 127779, 0, 0, 66981, 0, 0, 0, 11425, 0, 0, 1231, 0, - 0, 0, 124121, 8192, 124118, 0, 0, 10616, 8694, 0, 68867, 128332, 123595, - 120200, 120201, 120202, 120203, 9878, 120205, 119626, 120207, 0, 8799, - 42131, 0, 127163, 0, 120198, 120199, 837, 120015, 72384, 0, 983836, 2180, - 11427, 0, 78154, 0, 70171, 0, 78150, 42606, 0, 119615, 78147, 64637, - 78146, 43060, 78145, 125009, 3392, 0, 194783, 119067, 119650, 65468, - 43498, 126083, 0, 0, 0, 194928, 194937, 194938, 64681, 194930, 83264, - 92451, 0, 194955, 83262, 983751, 8973, 0, 194967, 70177, 194968, 0, 4800, - 195018, 0, 0, 11820, 6852, 122981, 0, 4802, 4111, 111268, 0, 4805, - 127308, 68193, 7885, 121220, 0, 0, 0, 4767, 0, 0, 0, 0, 0, 125234, - 100366, 43453, 0, 41340, 0, 0, 10005, 65856, 41333, 0, 9518, 0, 0, 0, - 42520, 100850, 0, 0, 917562, 100506, 0, 0, 0, 0, 0, 0, 9167, 42151, - 124958, 0, 2026, 100848, 124139, 0, 100534, 12768, 0, 7582, 0, 0, 0, 0, - 129557, 0, 120539, 68879, 0, 43547, 119992, 8546, 126071, 78520, 7604, - 78518, 78519, 78514, 78517, 78511, 78512, 73802, 128140, 0, 6708, 10535, - 0, 68218, 55274, 68221, 92296, 0, 0, 0, 0, 0, 72385, 0, 0, 0, 73727, 0, - 120706, 74442, 66943, 0, 0, 4351, 0, 119887, 119888, 0, 119886, 119891, - 68866, 119889, 11433, 119895, 119896, 0, 119894, 65578, 194693, 0, 0, - 983070, 10681, 0, 0, 128737, 0, 983111, 0, 6722, 129364, 0, 119997, - 41546, 64860, 68394, 0, 41549, 118619, 72386, 0, 0, 0, 0, 64710, 41547, - 0, 0, 0, 78530, 78532, 78528, 78529, 71343, 78527, 78523, 78525, 3537, - 119908, 119905, 7155, 2264, 0, 78533, 67755, 0, 0, 0, 0, 0, 0, 0, 64715, - 0, 0, 537, 0, 4179, 0, 0, 0, 0, 0, 0, 0, 0, 12081, 0, 0, 4048, 7053, 0, - 0, 70459, 0, 124975, 0, 3059, 0, 0, 43491, 983833, 0, 0, 127993, 4100, - 920, 1811, 1355, 0, 0, 64383, 10078, 69398, 0, 118651, 0, 65870, 0, + 10381, 70839, 0, 0, 0, 0, 125121, 70837, 125070, 129431, 983374, 983362, + 0, 983361, 0, 120063, 0, 0, 0, 75048, 0, 74900, 0, 0, 120978, 12161, + 983353, 0, 10339, 0, 77808, 0, 0, 0, 77806, 0, 43032, 125010, 0, 983380, + 12671, 11384, 0, 0, 120901, 64797, 0, 5820, 0, 0, 0, 0, 0, 120650, 42137, + 9893, 8851, 12664, 0, 0, 13192, 0, 41799, 65530, 0, 0, 43039, 3114, 0, 0, + 0, 0, 0, 926, 77803, 72004, 77805, 77799, 77800, 77801, 77802, 43037, + 41798, 77797, 77798, 123214, 41801, 0, 0, 0, 4200, 12699, 8331, 70118, + 3091, 92980, 66298, 70293, 8360, 0, 78044, 0, 4229, 64543, 126227, 65563, + 0, 129310, 2861, 43793, 10095, 121428, 9195, 121381, 121132, 0, 129578, + 0, 0, 43041, 0, 43794, 0, 83167, 0, 43797, 8209, 0, 129132, 12973, 0, 0, + 0, 0, 0, 121235, 5760, 0, 743, 0, 0, 0, 118712, 0, 0, 83170, 128589, + 129537, 0, 119063, 0, 0, 0, 19919, 0, 64532, 0, 43710, 0, 0, 9483, 71115, + 0, 43697, 0, 0, 83211, 0, 0, 0, 7247, 0, 0, 0, 0, 0, 113674, 0, 7471, + 120823, 128743, 12682, 0, 0, 65679, 983143, 0, 0, 83201, 1099, 74241, 0, + 10501, 0, 0, 113743, 0, 64743, 128476, 67663, 0, 0, 92219, 0, 83197, + 64897, 9973, 1818, 0, 0, 8272, 127812, 0, 4218, 3087, 0, 127234, 0, + 101300, 65181, 9954, 10465, 0, 0, 0, 9106, 0, 67406, 0, 0, 0, 0, 43038, + 0, 0, 265, 0, 0, 0, 0, 0, 0, 69405, 0, 59, 0, 0, 0, 0, 126239, 41810, 0, + 126492, 0, 41809, 41888, 0, 41795, 0, 42213, 0, 0, 43033, 511, 42963, 0, + 13127, 0, 0, 0, 0, 111107, 0, 4467, 41812, 41215, 0, 41211, 917783, 4453, + 69575, 0, 129883, 0, 983409, 41213, 92864, 118716, 0, 0, 129730, 41841, + 6617, 130041, 0, 92995, 462, 0, 10493, 0, 55248, 0, 0, 74471, 6644, 0, 0, + 0, 983385, 100484, 9581, 67104, 3098, 0, 0, 983412, 125250, 0, 120621, 0, + 0, 0, 129584, 101011, 0, 118789, 74473, 3755, 64661, 7748, 7235, 3966, 0, + 0, 127510, 0, 0, 0, 5726, 66456, 42175, 100486, 0, 42212, 92681, 121443, + 2851, 43017, 120108, 121056, 4373, 0, 0, 9587, 0, 6671, 128840, 3100, 0, + 917790, 0, 0, 0, 917789, 73836, 8190, 12083, 917791, 0, 6689, 64629, 0, + 0, 0, 4419, 917787, 101017, 0, 69851, 0, 0, 8891, 3080, 0, 2347, 0, 0, + 8990, 0, 121201, 0, 92528, 249, 129008, 0, 69424, 0, 0, 0, 55253, 0, 0, + 11173, 995, 0, 121047, 119861, 0, 73708, 0, 0, 19945, 0, 558, 983396, + 12273, 0, 983881, 0, 69912, 120861, 129492, 67274, 94178, 0, 68019, + 43030, 3129, 0, 2102, 0, 0, 121450, 0, 7725, 0, 11120, 0, 126111, 69246, + 0, 0, 0, 41894, 0, 41898, 0, 41893, 74921, 128678, 3540, 11848, 0, 73005, + 120848, 0, 0, 126113, 73959, 0, 0, 128735, 120858, 0, 0, 9699, 128656, + 41896, 0, 83196, 69230, 74951, 0, 72736, 0, 0, 3095, 983689, 11946, + 983885, 0, 0, 0, 0, 0, 113677, 3672, 119864, 0, 0, 0, 128539, 8890, + 93826, 0, 128182, 0, 0, 0, 126568, 0, 0, 983617, 9516, 983438, 72109, 0, + 42220, 0, 4450, 0, 11547, 43417, 128542, 356, 0, 0, 0, 0, 64901, 0, 0, 0, + 0, 0, 0, 111302, 65940, 2541, 71231, 0, 123215, 126470, 3549, 0, 0, 0, + 2743, 0, 0, 0, 9097, 128896, 43015, 0, 0, 776, 2524, 0, 8573, 100665, + 126494, 0, 0, 42694, 71122, 8952, 10814, 118818, 0, 43646, 128598, 66944, + 0, 0, 128380, 100663, 0, 65853, 42707, 1897, 93071, 0, 0, 71907, 69410, + 0, 125106, 0, 0, 0, 68473, 66778, 43573, 92638, 0, 0, 0, 120955, 73986, + 0, 0, 43022, 0, 74841, 0, 67714, 0, 0, 0, 0, 0, 4553, 0, 0, 0, 0, 0, + 19921, 0, 0, 983687, 4567, 41891, 0, 983819, 55249, 194663, 0, 194662, 0, + 194665, 43042, 121291, 1377, 12869, 0, 0, 9250, 0, 0, 0, 129779, 125039, + 194642, 0, 74995, 0, 194644, 0, 0, 101328, 194668, 121166, 0, 70275, + 1898, 69556, 0, 0, 802, 0, 0, 0, 6648, 0, 2528, 0, 0, 194646, 194625, + 101330, 68804, 844, 0, 68824, 0, 68818, 194650, 0, 0, 0, 983743, 65464, + 0, 0, 0, 0, 83221, 0, 0, 100680, 42954, 0, 64371, 70665, 0, 194654, 0, 0, + 0, 0, 0, 6196, 6945, 0, 0, 0, 120491, 0, 68846, 6210, 0, 70274, 0, 0, 0, + 68067, 68834, 194715, 588, 9760, 129112, 0, 983723, 128798, 0, 127992, 0, + 0, 118905, 0, 0, 92485, 110839, 69396, 0, 3394, 70734, 194639, 0, 0, 0, + 0, 0, 0, 194656, 7817, 1841, 11055, 195001, 194979, 194983, 127011, + 67403, 194987, 7701, 194998, 0, 194995, 1946, 121404, 0, 0, 917631, 0, 0, + 10934, 0, 70376, 0, 0, 8071, 3538, 0, 2287, 65328, 0, 0, 7614, 0, 0, 0, + 12009, 43968, 0, 67852, 0, 0, 10841, 123640, 0, 0, 0, 0, 8960, 0, 0, + 65317, 128829, 0, 0, 70374, 0, 0, 0, 65315, 0, 0, 0, 0, 0, 119621, 0, + 11849, 12447, 0, 0, 110741, 0, 0, 0, 129976, 42767, 0, 0, 0, 43695, + 120520, 11975, 194941, 983445, 0, 2555, 0, 128640, 70070, 42936, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 66714, 0, 0, 70076, 65596, 121034, 66710, 67658, + 0, 126994, 65338, 7792, 0, 0, 67871, 119027, 0, 8233, 43572, 0, 0, 0, + 3442, 0, 2841, 12543, 0, 1473, 42820, 64329, 127832, 917772, 126126, + 7937, 0, 1048, 0, 0, 983943, 0, 3406, 1054, 100701, 1040, 65450, 0, + 92329, 1069, 917763, 128367, 128940, 0, 917765, 0, 983724, 9693, 110873, + 0, 0, 0, 983948, 4353, 118653, 1059, 127530, 0, 0, 0, 127093, 118862, + 120500, 10646, 118708, 100710, 917762, 70424, 74830, 0, 0, 983720, 10221, + 100706, 68255, 0, 0, 74346, 119619, 100707, 64945, 12921, 0, 0, 0, 0, 0, + 983795, 43020, 0, 0, 74254, 0, 983785, 0, 0, 983792, 0, 71954, 0, 0, 0, + 0, 122625, 0, 120503, 70663, 0, 2755, 0, 0, 0, 4857, 0, 4428, 0, 0, + 983791, 0, 0, 0, 43842, 0, 122899, 0, 7978, 0, 70392, 127080, 11924, + 43812, 0, 65015, 67472, 563, 68340, 0, 12798, 0, 100727, 0, 0, 0, 74110, + 0, 94051, 0, 694, 0, 9876, 0, 119168, 0, 0, 0, 92361, 0, 0, 7229, 0, 0, + 0, 0, 64811, 0, 119087, 126478, 0, 7381, 0, 2525, 4852, 11586, 68465, + 41605, 126089, 0, 11582, 7151, 10155, 92578, 188, 0, 11592, 0, 74015, 0, + 0, 4858, 122645, 0, 0, 4861, 0, 2786, 121431, 4856, 8051, 0, 119609, 0, + 113797, 71133, 0, 78448, 0, 0, 67842, 68084, 0, 0, 0, 0, 0, 10234, 5843, + 0, 71865, 66728, 0, 3157, 0, 0, 75035, 72788, 983750, 0, 10822, 5149, + 129517, 0, 65142, 129454, 4565, 0, 0, 0, 12657, 0, 0, 386, 0, 8834, + 120974, 0, 43574, 0, 0, 0, 70113, 7220, 11839, 124984, 74883, 194752, 0, + 65241, 74503, 8160, 0, 194753, 0, 0, 0, 0, 0, 121265, 6847, 13303, 0, 0, + 194755, 0, 118865, 0, 194761, 0, 0, 74505, 0, 0, 0, 100518, 194721, 8780, + 100512, 0, 68745, 110626, 66697, 0, 2672, 3735, 983641, 0, 68752, 11205, + 10724, 41202, 0, 100714, 0, 0, 0, 0, 194765, 3842, 0, 78183, 12442, + 78182, 9791, 78181, 0, 42516, 67730, 64821, 195059, 78178, 0, 78464, + 119219, 78465, 127466, 194690, 195063, 0, 0, 0, 0, 78540, 78541, 78538, + 1962, 78490, 78476, 65930, 11660, 0, 2072, 0, 0, 78544, 194704, 78542, + 10669, 110859, 110860, 110857, 110858, 129749, 110856, 4105, 0, 194699, + 0, 0, 0, 13148, 195068, 78479, 9226, 0, 0, 10765, 127486, 71919, 6263, + 195050, 0, 195041, 0, 0, 0, 0, 0, 0, 92312, 7886, 0, 6682, 0, 6680, + 195042, 126473, 195052, 6679, 74412, 0, 72206, 74421, 66281, 0, 0, + 127478, 0, 0, 92861, 6681, 0, 12693, 0, 0, 0, 0, 0, 65442, 129055, 0, + 9989, 74415, 194673, 0, 0, 983788, 0, 0, 0, 0, 7042, 127240, 119026, + 7968, 0, 983768, 194741, 194736, 983793, 0, 69889, 74389, 128696, 0, 0, + 128979, 5781, 0, 78199, 0, 0, 11091, 0, 2719, 0, 0, 0, 64495, 0, 0, 0, + 65169, 42845, 0, 128551, 983766, 2200, 72435, 0, 0, 0, 917855, 66670, 0, + 983709, 0, 0, 0, 7902, 0, 65265, 0, 0, 0, 0, 0, 0, 0, 12994, 0, 10828, + 983974, 0, 4307, 3482, 0, 0, 72389, 0, 64299, 74573, 41194, 7343, 0, 0, + 41195, 0, 8169, 0, 8841, 66770, 516, 72981, 41197, 119051, 34, 128850, + 120186, 11504, 1612, 120187, 120182, 120181, 120184, 12001, 120178, + 120177, 120180, 120179, 71966, 120173, 7749, 120175, 0, 1758, 0, 10667, + 0, 120197, 0, 1935, 11517, 120193, 120196, 120195, 120190, 120189, + 120192, 120191, 1217, 64702, 128075, 825, 0, 0, 0, 0, 66748, 0, 11050, 0, + 123187, 0, 0, 74554, 110577, 0, 8677, 123188, 11313, 123185, 3403, 0, + 123186, 64364, 92683, 0, 0, 0, 0, 123189, 0, 0, 983880, 0, 69408, 41850, + 0, 3433, 127965, 0, 1594, 65607, 0, 66392, 0, 129291, 74565, 41353, + 125119, 0, 0, 0, 0, 918, 127280, 41351, 0, 0, 12140, 0, 12668, 72395, 0, + 128753, 0, 127302, 0, 127288, 129497, 127235, 573, 0, 0, 11417, 0, + 127283, 0, 0, 0, 72410, 0, 11482, 0, 3981, 74345, 0, 0, 0, 0, 0, 0, + 125238, 0, 0, 42195, 0, 123190, 0, 64602, 0, 0, 121366, 0, 121061, + 128690, 0, 8423, 0, 448, 66907, 9717, 0, 0, 0, 0, 0, 0, 0, 71910, 129898, + 0, 0, 120679, 65013, 78169, 0, 72390, 0, 0, 127917, 0, 74892, 0, 0, + 127798, 0, 0, 66982, 0, 0, 0, 12197, 125074, 0, 121447, 0, 0, 0, 0, 0, 0, + 0, 74563, 64828, 11419, 0, 8592, 0, 0, 0, 11381, 0, 0, 74529, 0, 0, + 83254, 0, 72796, 0, 83257, 0, 0, 0, 129437, 65672, 0, 0, 0, 0, 0, 0, 0, + 0, 9505, 0, 0, 756, 0, 125243, 100358, 110852, 7261, 0, 0, 0, 0, 0, + 64401, 65830, 41365, 0, 0, 0, 127834, 0, 0, 0, 0, 0, 74626, 123155, + 11578, 0, 2170, 0, 0, 0, 0, 74568, 0, 113684, 1794, 68310, 120218, + 120219, 120220, 120221, 120222, 120223, 3617, 120011, 64886, 94061, + 78202, 120213, 66999, 10225, 983060, 0, 65223, 983058, 0, 0, 4452, + 127779, 0, 0, 66981, 0, 0, 0, 11425, 0, 0, 1231, 0, 0, 0, 0, 8192, 0, 0, + 0, 10616, 8694, 0, 68867, 128332, 123595, 120200, 120201, 120202, 120203, + 9878, 120205, 119626, 120207, 0, 8799, 42131, 0, 127163, 0, 120198, + 120199, 837, 120015, 72384, 0, 983836, 2180, 11427, 0, 78154, 0, 70171, + 0, 78150, 42606, 0, 119615, 78147, 64637, 78146, 43060, 78145, 125009, + 3392, 0, 194783, 119067, 119650, 65468, 43498, 126083, 0, 0, 0, 194928, + 194937, 194938, 64681, 194930, 83264, 92451, 0, 194955, 83262, 983751, + 8973, 0, 194967, 70177, 194968, 0, 4800, 195018, 0, 0, 11820, 6852, 0, 0, + 4802, 4111, 111268, 0, 4805, 127308, 68193, 7885, 121220, 0, 0, 0, 4767, + 0, 0, 0, 0, 0, 125234, 100366, 43453, 0, 41340, 0, 0, 10005, 65856, + 41333, 0, 9518, 0, 0, 0, 42520, 100850, 0, 0, 917562, 100506, 0, 0, 0, 0, + 0, 0, 9167, 42151, 124958, 0, 2026, 100848, 0, 0, 100534, 12768, 0, 7582, + 0, 0, 0, 0, 129557, 0, 120539, 68879, 0, 43547, 119992, 8546, 126071, + 78520, 7604, 78518, 78519, 78514, 78517, 78511, 78512, 73802, 128140, 0, + 6708, 10535, 0, 68218, 55274, 68221, 92296, 0, 0, 0, 0, 0, 72385, 0, 0, + 0, 73727, 0, 120706, 74442, 66943, 0, 0, 4351, 0, 119887, 119888, 0, + 119886, 119891, 68866, 119889, 11433, 119895, 119896, 0, 119894, 65578, + 194693, 0, 0, 983070, 10681, 0, 0, 128737, 0, 983110, 0, 6722, 129364, 0, + 119997, 41546, 64860, 68394, 0, 41549, 118619, 72386, 0, 0, 0, 0, 64710, + 41547, 0, 0, 0, 78530, 78532, 78528, 78529, 71343, 78527, 78523, 78525, + 3537, 119908, 119905, 7155, 2264, 0, 78533, 67755, 0, 0, 0, 0, 0, 0, 0, + 64715, 0, 0, 537, 0, 4179, 0, 0, 0, 0, 0, 0, 0, 0, 12081, 0, 0, 4048, + 7053, 0, 0, 70459, 0, 124975, 0, 3059, 0, 0, 43491, 983833, 0, 0, 127993, + 4100, 920, 1811, 1355, 0, 0, 64383, 10078, 69398, 0, 118651, 0, 65870, 0, 129565, 0, 72400, 42918, 0, 66789, 0, 12865, 0, 73938, }; @@ -30121,7 +29920,7 @@ static const unsigned int code_hash[] = { #define code_poly 65581 static const unsigned int aliases_start = 0xf0000; -static const unsigned int aliases_end = 0xf01d9; +static const unsigned int aliases_end = 0xf01d6; static const unsigned int name_aliases[] = { 0x0000, 0x0000, @@ -30184,7 +29983,6 @@ static const unsigned int name_aliases[] = { 0x0018, 0x0019, 0x0019, - 0x0019, 0x001A, 0x001A, 0x001B, @@ -30285,7 +30083,6 @@ static const unsigned int name_aliases[] = { 0x01A2, 0x01A3, 0x034F, - 0x0616, 0x061C, 0x0709, 0x0CDE, @@ -30303,7 +30100,6 @@ static const unsigned int name_aliases[] = { 0x180D, 0x180E, 0x180F, - 0x1BBD, 0x200B, 0x200C, 0x200D, diff --git a/Modules/xxlimited.c b/Modules/xxlimited.c index e234504e331945..5177ecd6b515d7 100644 --- a/Modules/xxlimited.c +++ b/Modules/xxlimited.c @@ -138,7 +138,6 @@ Xxo_finalize(PyObject *self_obj) static void Xxo_dealloc(PyObject *self) { - PyObject_GC_UnTrack(self); Xxo_finalize(self); PyTypeObject *tp = Py_TYPE(self); freefunc free = PyType_GetSlot(tp, Py_tp_free); diff --git a/Modules/xxlimited_35.c b/Modules/xxlimited_35.c index 8d29c71951768a..647abf6721276c 100644 --- a/Modules/xxlimited_35.c +++ b/Modules/xxlimited_35.c @@ -124,7 +124,7 @@ static PyType_Slot Xxo_Type_slots[] = { }; static PyType_Spec Xxo_Type_spec = { - "xxlimited_35.Xxo", + "xxlimited.Xxo", sizeof(XxoObject), 0, Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, @@ -189,7 +189,7 @@ static PyType_Slot Str_Type_slots[] = { }; static PyType_Spec Str_Type_spec = { - "xxlimited_35.Str", + "xxlimited.Str", 0, 0, Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, @@ -212,7 +212,7 @@ static PyType_Slot Null_Type_slots[] = { }; static PyType_Spec Null_Type_spec = { - "xxlimited_35.Null", + "xxlimited.Null", 0, /* basicsize */ 0, /* itemsize */ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, @@ -248,50 +248,40 @@ xx_modexec(PyObject *m) Null_Type_slots[1].pfunc = PyType_GenericNew; Str_Type_slots[0].pfunc = &PyUnicode_Type; + Xxo_Type = PyType_FromSpec(&Xxo_Type_spec); + if (Xxo_Type == NULL) + goto fail; + /* Add some symbolic constants to the module */ if (ErrorObject == NULL) { - ErrorObject = PyErr_NewException("xxlimited_35.error", NULL, NULL); - if (ErrorObject == NULL) { - return -1; - } + ErrorObject = PyErr_NewException("xxlimited.error", NULL, NULL); + if (ErrorObject == NULL) + goto fail; } Py_INCREF(ErrorObject); - if (PyModule_AddObject(m, "error", ErrorObject) < 0) { - Py_DECREF(ErrorObject); - return -1; - } + PyModule_AddObject(m, "error", ErrorObject); /* Add Xxo */ - Xxo_Type = PyType_FromSpec(&Xxo_Type_spec); - if (Xxo_Type == NULL) { - return -1; - } - if (PyModule_AddObject(m, "Xxo", Xxo_Type) < 0) { - Py_DECREF(Xxo_Type); - return -1; - } + o = PyType_FromSpec(&Xxo_Type_spec); + if (o == NULL) + goto fail; + PyModule_AddObject(m, "Xxo", o); /* Add Str */ o = PyType_FromSpec(&Str_Type_spec); - if (o == NULL) { - return -1; - } - if (PyModule_AddObject(m, "Str", o) < 0) { - Py_DECREF(o); - return -1; - } + if (o == NULL) + goto fail; + PyModule_AddObject(m, "Str", o); /* Add Null */ o = PyType_FromSpec(&Null_Type_spec); - if (o == NULL) { - return -1; - } - if (PyModule_AddObject(m, "Null", o) < 0) { - Py_DECREF(o); - return -1; - } - + if (o == NULL) + goto fail; + PyModule_AddObject(m, "Null", o); return 0; + fail: + Py_XDECREF(m); + return -1; } diff --git a/Modules/xxmodule.c b/Modules/xxmodule.c index a6e5071d1d6303..edcd62157c02f3 100644 --- a/Modules/xxmodule.c +++ b/Modules/xxmodule.c @@ -358,32 +358,31 @@ xx_exec(PyObject *m) /* Finalize the type object including setting type of the new type * object; doing it here is required for portability, too. */ - if (PyType_Ready(&Xxo_Type) < 0) { - return -1; - } + if (PyType_Ready(&Xxo_Type) < 0) + goto fail; /* Add some symbolic constants to the module */ if (ErrorObject == NULL) { ErrorObject = PyErr_NewException("xx.error", NULL, NULL); - if (ErrorObject == NULL) { - return -1; - } - } - int rc = PyModule_AddType(m, (PyTypeObject *)ErrorObject); - Py_DECREF(ErrorObject); - if (rc < 0) { - return -1; + if (ErrorObject == NULL) + goto fail; } - - /* Add Str and Null types */ - if (PyModule_AddType(m, &Str_Type) < 0) { - return -1; - } - if (PyModule_AddType(m, &Null_Type) < 0) { - return -1; - } - + Py_INCREF(ErrorObject); + PyModule_AddObject(m, "error", ErrorObject); + + /* Add Str */ + if (PyType_Ready(&Str_Type) < 0) + goto fail; + PyModule_AddObject(m, "Str", (PyObject *)&Str_Type); + + /* Add Null */ + if (PyType_Ready(&Null_Type) < 0) + goto fail; + PyModule_AddObject(m, "Null", (PyObject *)&Null_Type); return 0; + fail: + Py_XDECREF(m); + return -1; } static struct PyModuleDef_Slot xx_slots[] = { diff --git a/Objects/abstract.c b/Objects/abstract.c index 5d50491b2dd347..93987c201b5e25 100644 --- a/Objects/abstract.c +++ b/Objects/abstract.c @@ -526,12 +526,18 @@ _Py_add_one_to_index_C(int nd, Py_ssize_t *index, const Py_ssize_t *shape) Py_ssize_t PyBuffer_SizeFromFormat(const char *format) { + PyObject *structmodule = NULL; PyObject *calcsize = NULL; PyObject *res = NULL; PyObject *fmt = NULL; Py_ssize_t itemsize = -1; - calcsize = _PyImport_GetModuleAttrString("struct", "calcsize"); + structmodule = PyImport_ImportModule("struct"); + if (structmodule == NULL) { + return itemsize; + } + + calcsize = PyObject_GetAttrString(structmodule, "calcsize"); if (calcsize == NULL) { goto done; } @@ -552,6 +558,7 @@ PyBuffer_SizeFromFormat(const char *format) } done: + Py_DECREF(structmodule); Py_XDECREF(calcsize); Py_XDECREF(fmt); Py_XDECREF(res); diff --git a/Objects/accu.c b/Objects/accu.c new file mode 100644 index 00000000000000..c8b5d382e388b7 --- /dev/null +++ b/Objects/accu.c @@ -0,0 +1,115 @@ +/* Accumulator struct implementation */ + +#include "Python.h" +#include "pycore_accu.h" + +static PyObject * +join_list_unicode(PyObject *lst) +{ + /* return ''.join(lst) */ + PyObject *sep, *ret; + sep = PyUnicode_FromStringAndSize("", 0); + ret = PyUnicode_Join(sep, lst); + Py_DECREF(sep); + return ret; +} + +int +_PyAccu_Init(_PyAccu *acc) +{ + /* Lazily allocated */ + acc->large = NULL; + acc->small = PyList_New(0); + if (acc->small == NULL) + return -1; + return 0; +} + +static int +flush_accumulator(_PyAccu *acc) +{ + Py_ssize_t nsmall = PyList_GET_SIZE(acc->small); + if (nsmall) { + int ret; + PyObject *joined; + if (acc->large == NULL) { + acc->large = PyList_New(0); + if (acc->large == NULL) + return -1; + } + joined = join_list_unicode(acc->small); + if (joined == NULL) + return -1; + if (PyList_SetSlice(acc->small, 0, nsmall, NULL)) { + Py_DECREF(joined); + return -1; + } + ret = PyList_Append(acc->large, joined); + Py_DECREF(joined); + return ret; + } + return 0; +} + +int +_PyAccu_Accumulate(_PyAccu *acc, PyObject *unicode) +{ + Py_ssize_t nsmall; + assert(PyUnicode_Check(unicode)); + + if (PyList_Append(acc->small, unicode)) + return -1; + nsmall = PyList_GET_SIZE(acc->small); + /* Each item in a list of unicode objects has an overhead (in 64-bit + * builds) of: + * - 8 bytes for the list slot + * - 56 bytes for the header of the unicode object + * that is, 64 bytes. 100000 such objects waste more than 6 MiB + * compared to a single concatenated string. + */ + if (nsmall < 100000) + return 0; + return flush_accumulator(acc); +} + +PyObject * +_PyAccu_FinishAsList(_PyAccu *acc) +{ + int ret; + PyObject *res; + + ret = flush_accumulator(acc); + Py_CLEAR(acc->small); + if (ret) { + Py_CLEAR(acc->large); + return NULL; + } + res = acc->large; + acc->large = NULL; + return res; +} + +PyObject * +_PyAccu_Finish(_PyAccu *acc) +{ + PyObject *list, *res; + if (acc->large == NULL) { + list = acc->small; + acc->small = NULL; + } + else { + list = _PyAccu_FinishAsList(acc); + if (!list) + return NULL; + } + res = join_list_unicode(list); + Py_DECREF(list); + return res; +} + +void +_PyAccu_Destroy(_PyAccu *acc) +{ + Py_CLEAR(acc->small); + Py_CLEAR(acc->large); +} diff --git a/Objects/asm_trampoline.S b/Objects/asm_trampoline.S deleted file mode 100644 index 460707717df003..00000000000000 --- a/Objects/asm_trampoline.S +++ /dev/null @@ -1,28 +0,0 @@ - .text - .globl _Py_trampoline_func_start -# The following assembly is equivalent to: -# PyObject * -# trampoline(PyThreadState *ts, _PyInterpreterFrame *f, -# int throwflag, py_evaluator evaluator) -# { -# return evaluator(ts, f, throwflag); -# } -_Py_trampoline_func_start: -#ifdef __x86_64__ - sub $8, %rsp - call *%rcx - add $8, %rsp - ret -#endif // __x86_64__ -#if defined(__aarch64__) && defined(__AARCH64EL__) && !defined(__ILP32__) - // ARM64 little endian, 64bit ABI - // generate with aarch64-linux-gnu-gcc 12.1 - stp x29, x30, [sp, -16]! - mov x29, sp - blr x3 - ldp x29, x30, [sp], 16 - ret -#endif - .globl _Py_trampoline_func_end -_Py_trampoline_func_end: - .section .note.GNU-stack,"",@progbits diff --git a/Objects/boolobject.c b/Objects/boolobject.c index 8a20e368d4a42b..ff7218760ab361 100644 --- a/Objects/boolobject.c +++ b/Objects/boolobject.c @@ -9,8 +9,7 @@ static PyObject * bool_repr(PyObject *self) { - PyObject *res = self == Py_True ? &_Py_ID(True) : &_Py_ID(False); - return Py_NewRef(res); + return self == Py_True ? &_Py_ID(True) : &_Py_ID(False); } /* Function to return a bool from a C long */ diff --git a/Objects/bytearrayobject.c b/Objects/bytearrayobject.c index b2962fd137d93e..d0179626414874 100644 --- a/Objects/bytearrayobject.c +++ b/Objects/bytearrayobject.c @@ -563,28 +563,22 @@ bytearray_setslice(PyByteArrayObject *self, Py_ssize_t lo, Py_ssize_t hi, static int bytearray_setitem(PyByteArrayObject *self, Py_ssize_t i, PyObject *value) { - int ival = -1; + int ival; - // GH-91153: We need to do this *before* the size check, in case value has a - // nasty __index__ method that changes the size of the bytearray: - if (value && !_getbytevalue(value, &ival)) { - return -1; - } - - if (i < 0) { + if (i < 0) i += Py_SIZE(self); - } if (i < 0 || i >= Py_SIZE(self)) { PyErr_SetString(PyExc_IndexError, "bytearray index out of range"); return -1; } - if (value == NULL) { + if (value == NULL) return bytearray_setslice(self, i, i+1, NULL); - } - assert(0 <= ival && ival < 256); + if (!_getbytevalue(value, &ival)) + return -1; + PyByteArray_AS_STRING(self)[i] = ival; return 0; } @@ -599,21 +593,11 @@ bytearray_ass_subscript(PyByteArrayObject *self, PyObject *index, PyObject *valu if (_PyIndex_Check(index)) { Py_ssize_t i = PyNumber_AsSsize_t(index, PyExc_IndexError); - if (i == -1 && PyErr_Occurred()) { - return -1; - } - - int ival = -1; - - // GH-91153: We need to do this *before* the size check, in case values - // has a nasty __index__ method that changes the size of the bytearray: - if (values && !_getbytevalue(values, &ival)) { + if (i == -1 && PyErr_Occurred()) return -1; - } - if (i < 0) { + if (i < 0) i += PyByteArray_GET_SIZE(self); - } if (i < 0 || i >= Py_SIZE(self)) { PyErr_SetString(PyExc_IndexError, "bytearray index out of range"); @@ -628,7 +612,9 @@ bytearray_ass_subscript(PyByteArrayObject *self, PyObject *index, PyObject *valu slicelen = 1; } else { - assert(0 <= ival && ival < 256); + int ival; + if (!_getbytevalue(values, &ival)) + return -1; buf[i] = (char)ival; return 0; } diff --git a/Objects/call.c b/Objects/call.c index c2509db2a9a263..3b5259b3383f43 100644 --- a/Objects/call.c +++ b/Objects/call.c @@ -1,10 +1,11 @@ #include "Python.h" #include "pycore_call.h" // _PyObject_CallNoArgsTstate() -#include "pycore_ceval.h" // _Py_EnterRecursiveCallTstate() -#include "pycore_object.h" // _PyCFunctionWithKeywords_TrampolineCall() +#include "pycore_ceval.h" // _PyEval_EvalFrame() +#include "pycore_object.h" // _PyObject_GC_TRACK() #include "pycore_pyerrors.h" // _PyErr_Occurred() #include "pycore_pystate.h" // _PyThreadState_GET() #include "pycore_tuple.h" // _PyTuple_ITEMS() +#include "frameobject.h" // _PyFrame_New_NoTrack() static PyObject *const * @@ -1047,11 +1048,3 @@ _PyStack_UnpackDict_Free(PyObject *const *stack, Py_ssize_t nargs, PyMem_Free((PyObject **)stack - 1); Py_DECREF(kwnames); } - -// Export for the stable ABI -#undef PyVectorcall_NARGS -Py_ssize_t -PyVectorcall_NARGS(size_t n) -{ - return _PyVectorcall_NARGS(n); -} diff --git a/Objects/clinic/bytearrayobject.c.h b/Objects/clinic/bytearrayobject.c.h index 142f2998160725..0b5c01a83dbe10 100644 --- a/Objects/clinic/bytearrayobject.c.h +++ b/Objects/clinic/bytearrayobject.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - static int bytearray___init___impl(PyByteArrayObject *self, PyObject *arg, const char *encoding, const char *errors); @@ -16,31 +10,8 @@ static int bytearray___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(source), &_Py_ID(encoding), &_Py_ID(errors), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"source", "encoding", "errors", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "bytearray", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "bytearray", 0}; PyObject *argsbuf[3]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -239,31 +210,8 @@ static PyObject * bytearray_translate(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(delete), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "delete", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "translate", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "translate", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *table; @@ -442,31 +390,8 @@ static PyObject * bytearray_split(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(sep), &_Py_ID(maxsplit), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"sep", "maxsplit", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "split", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "split", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *sep = Py_None; @@ -564,31 +489,8 @@ static PyObject * bytearray_rsplit(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(sep), &_Py_ID(maxsplit), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"sep", "maxsplit", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "rsplit", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "rsplit", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *sep = Py_None; @@ -941,31 +843,8 @@ static PyObject * bytearray_decode(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(encoding), &_Py_ID(errors), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"encoding", "errors", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "decode", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "decode", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; const char *encoding = NULL; @@ -1048,31 +927,8 @@ static PyObject * bytearray_splitlines(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(keepends), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"keepends", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "splitlines", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "splitlines", 0}; PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int keepends = 0; @@ -1163,31 +1019,8 @@ static PyObject * bytearray_hex(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(sep), &_Py_ID(bytes_per_sep), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"sep", "bytes_per_sep", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "hex", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "hex", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *sep = NULL; @@ -1287,4 +1120,4 @@ bytearray_sizeof(PyByteArrayObject *self, PyObject *Py_UNUSED(ignored)) { return bytearray_sizeof_impl(self); } -/*[clinic end generated code: output=72bfa6cac2fd6832 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=033e9eb5f2bb0139 input=a9049054013a1b77]*/ diff --git a/Objects/clinic/bytesobject.c.h b/Objects/clinic/bytesobject.c.h index 904124ec479abb..7e857203417514 100644 --- a/Objects/clinic/bytesobject.c.h +++ b/Objects/clinic/bytesobject.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(bytes___bytes____doc__, "__bytes__($self, /)\n" "--\n" @@ -50,31 +44,8 @@ static PyObject * bytes_split(PyBytesObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(sep), &_Py_ID(maxsplit), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"sep", "maxsplit", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "split", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "split", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *sep = Py_None; @@ -224,31 +195,8 @@ static PyObject * bytes_rsplit(PyBytesObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(sep), &_Py_ID(maxsplit), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"sep", "maxsplit", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "rsplit", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "rsplit", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *sep = Py_None; @@ -426,31 +374,8 @@ static PyObject * bytes_translate(PyBytesObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(delete), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "delete", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "translate", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "translate", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *table; @@ -709,31 +634,8 @@ static PyObject * bytes_decode(PyBytesObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(encoding), &_Py_ID(errors), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"encoding", "errors", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "decode", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "decode", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; const char *encoding = NULL; @@ -803,31 +705,8 @@ static PyObject * bytes_splitlines(PyBytesObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(keepends), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"keepends", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "splitlines", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "splitlines", 0}; PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int keepends = 0; @@ -918,31 +797,8 @@ static PyObject * bytes_hex(PyBytesObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(sep), &_Py_ID(bytes_per_sep), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"sep", "bytes_per_sep", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "hex", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "hex", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *sep = NULL; @@ -980,31 +836,8 @@ static PyObject * bytes_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(source), &_Py_ID(encoding), &_Py_ID(errors), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"source", "encoding", "errors", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "bytes", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "bytes", 0}; PyObject *argsbuf[3]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -1063,4 +896,4 @@ bytes_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=5e0a25b7ba749a04 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=5727702e63a0a8b7 input=a9049054013a1b77]*/ diff --git a/Objects/clinic/classobject.c.h b/Objects/clinic/classobject.c.h index 6c449829662af3..a4f190015a0d8c 100644 --- a/Objects/clinic/classobject.c.h +++ b/Objects/clinic/classobject.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(method___reduce____doc__, "__reduce__($self, /)\n" "--\n" @@ -86,4 +80,4 @@ instancemethod_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=e3294c26a71d456d input=a9049054013a1b77]*/ +/*[clinic end generated code: output=a230fe125f664416 input=a9049054013a1b77]*/ diff --git a/Objects/clinic/codeobject.c.h b/Objects/clinic/codeobject.c.h index da33f4a6a20c1b..df82524a86afe5 100644 --- a/Objects/clinic/codeobject.c.h +++ b/Objects/clinic/codeobject.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(code_new__doc__, "code(argcount, posonlyargcount, kwonlyargcount, nlocals, stacksize,\n" " flags, codestring, constants, names, varnames, filename, name,\n" @@ -192,31 +186,8 @@ static PyObject * code_replace(PyCodeObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 18 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(co_argcount), &_Py_ID(co_posonlyargcount), &_Py_ID(co_kwonlyargcount), &_Py_ID(co_nlocals), &_Py_ID(co_stacksize), &_Py_ID(co_flags), &_Py_ID(co_firstlineno), &_Py_ID(co_code), &_Py_ID(co_consts), &_Py_ID(co_names), &_Py_ID(co_varnames), &_Py_ID(co_freevars), &_Py_ID(co_cellvars), &_Py_ID(co_filename), &_Py_ID(co_name), &_Py_ID(co_qualname), &_Py_ID(co_linetable), &_Py_ID(co_exceptiontable), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"co_argcount", "co_posonlyargcount", "co_kwonlyargcount", "co_nlocals", "co_stacksize", "co_flags", "co_firstlineno", "co_code", "co_consts", "co_names", "co_varnames", "co_freevars", "co_cellvars", "co_filename", "co_name", "co_qualname", "co_linetable", "co_exceptiontable", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "replace", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "replace", 0}; PyObject *argsbuf[18]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int co_argcount = self->co_argcount; @@ -447,31 +418,8 @@ static PyObject * code__varname_from_oparg(PyCodeObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(oparg), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"oparg", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "_varname_from_oparg", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "_varname_from_oparg", 0}; PyObject *argsbuf[1]; int oparg; @@ -488,4 +436,4 @@ code__varname_from_oparg(PyCodeObject *self, PyObject *const *args, Py_ssize_t n exit: return return_value; } -/*[clinic end generated code: output=b6c98f17c60ace53 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=9c521b6c79f90ff7 input=a9049054013a1b77]*/ diff --git a/Objects/clinic/complexobject.c.h b/Objects/clinic/complexobject.c.h index e92c6e985852de..e7d8065e874ef3 100644 --- a/Objects/clinic/complexobject.c.h +++ b/Objects/clinic/complexobject.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(complex_conjugate__doc__, "conjugate($self, /)\n" "--\n" @@ -108,31 +102,8 @@ static PyObject * complex_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(real), &_Py_ID(imag), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"real", "imag", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "complex", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "complex", 0}; PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -160,4 +131,4 @@ complex_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=52e85a1e258425d6 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=6d85094ace15677e input=a9049054013a1b77]*/ diff --git a/Objects/clinic/descrobject.c.h b/Objects/clinic/descrobject.c.h index 75706437df83f9..d248b91bf48da2 100644 --- a/Objects/clinic/descrobject.c.h +++ b/Objects/clinic/descrobject.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - static PyObject * mappingproxy_new_impl(PyTypeObject *type, PyObject *mapping); @@ -15,31 +9,8 @@ static PyObject * mappingproxy_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(mapping), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"mapping", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "mappingproxy", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "mappingproxy", 0}; PyObject *argsbuf[1]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -101,31 +72,8 @@ static int property_init(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 4 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(fget), &_Py_ID(fset), &_Py_ID(fdel), &_Py_ID(doc), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"fget", "fset", "fdel", "doc", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "property", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "property", 0}; PyObject *argsbuf[4]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -167,4 +115,4 @@ property_init(PyObject *self, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=8dc1ddfcf764ac8e input=a9049054013a1b77]*/ +/*[clinic end generated code: output=916624e717862abc input=a9049054013a1b77]*/ diff --git a/Objects/clinic/dictobject.c.h b/Objects/clinic/dictobject.c.h index bc2452330e4e2f..eda86c31fcc578 100644 --- a/Objects/clinic/dictobject.c.h +++ b/Objects/clinic/dictobject.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(dict_fromkeys__doc__, "fromkeys($type, iterable, value=None, /)\n" "--\n" @@ -197,4 +191,4 @@ dict___reversed__(PyDictObject *self, PyObject *Py_UNUSED(ignored)) { return dict___reversed___impl(self); } -/*[clinic end generated code: output=c0064abbea6091c5 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=582766ac0154c8bf input=a9049054013a1b77]*/ diff --git a/Objects/clinic/enumobject.c.h b/Objects/clinic/enumobject.c.h index 208a9e8be1a1a2..7513c9526ac50f 100644 --- a/Objects/clinic/enumobject.c.h +++ b/Objects/clinic/enumobject.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(enum_new__doc__, "enumerate(iterable, start=0)\n" "--\n" @@ -30,31 +24,8 @@ static PyObject * enum_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(iterable), &_Py_ID(start), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"iterable", "start", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "enumerate", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "enumerate", 0}; PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -107,4 +78,4 @@ reversed_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=683261097bfd794a input=a9049054013a1b77]*/ +/*[clinic end generated code: output=a3937b6b33499560 input=a9049054013a1b77]*/ diff --git a/Objects/clinic/floatobject.c.h b/Objects/clinic/floatobject.c.h index 1a81e173231bfa..bf0748f3b3d121 100644 --- a/Objects/clinic/floatobject.c.h +++ b/Objects/clinic/floatobject.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(float_is_integer__doc__, "is_integer($self, /)\n" "--\n" @@ -327,4 +321,4 @@ float___format__(PyObject *self, PyObject *arg) exit: return return_value; } -/*[clinic end generated code: output=ac6374ac606a505e input=a9049054013a1b77]*/ +/*[clinic end generated code: output=a6e6467624a92a43 input=a9049054013a1b77]*/ diff --git a/Objects/clinic/funcobject.c.h b/Objects/clinic/funcobject.c.h index c3a3a8edc39278..17fb13fe085af3 100644 --- a/Objects/clinic/funcobject.c.h +++ b/Objects/clinic/funcobject.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(func_new__doc__, "function(code, globals, name=None, argdefs=None, closure=None)\n" "--\n" @@ -33,31 +27,8 @@ static PyObject * func_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 5 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(code), &_Py_ID(globals), &_Py_ID(name), &_Py_ID(argdefs), &_Py_ID(closure), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"code", "globals", "name", "argdefs", "closure", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "function", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "function", 0}; PyObject *argsbuf[5]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -104,4 +75,4 @@ func_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=777cead7b1f6fad3 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=3d96afa3396e5c82 input=a9049054013a1b77]*/ diff --git a/Objects/clinic/listobject.c.h b/Objects/clinic/listobject.c.h index 926eaa5d36983b..2499383cc26c52 100644 --- a/Objects/clinic/listobject.c.h +++ b/Objects/clinic/listobject.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(list_insert__doc__, "insert($self, index, object, /)\n" "--\n" @@ -172,31 +166,8 @@ static PyObject * list_sort(PyListObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(key), &_Py_ID(reverse), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"key", "reverse", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "sort", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "sort", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *keyfunc = Py_None; @@ -382,4 +353,4 @@ list___reversed__(PyListObject *self, PyObject *Py_UNUSED(ignored)) { return list___reversed___impl(self); } -/*[clinic end generated code: output=782ed6c68b1c9f83 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=eab97a76b1568a03 input=a9049054013a1b77]*/ diff --git a/Objects/clinic/longobject.c.h b/Objects/clinic/longobject.c.h index 1cf5b43188596b..59b79636bee102 100644 --- a/Objects/clinic/longobject.c.h +++ b/Objects/clinic/longobject.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - static PyObject * long_new_impl(PyTypeObject *type, PyObject *x, PyObject *obase); @@ -15,31 +9,8 @@ static PyObject * long_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(base), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "base", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "int", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "int", 0}; PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -286,31 +257,8 @@ static PyObject * int_to_bytes(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(length), &_Py_ID(byteorder), &_Py_ID(signed), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"length", "byteorder", "signed", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "to_bytes", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "to_bytes", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; Py_ssize_t length = 1; @@ -400,31 +348,8 @@ static PyObject * int_from_bytes(PyTypeObject *type, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(bytes), &_Py_ID(byteorder), &_Py_ID(signed), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"bytes", "byteorder", "signed", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "from_bytes", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "from_bytes", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *bytes_obj; @@ -466,4 +391,4 @@ int_from_bytes(PyTypeObject *type, PyObject *const *args, Py_ssize_t nargs, PyOb exit: return return_value; } -/*[clinic end generated code: output=b29b4afc65e3290e input=a9049054013a1b77]*/ +/*[clinic end generated code: output=899e57c41861a8e9 input=a9049054013a1b77]*/ diff --git a/Objects/clinic/memoryobject.c.h b/Objects/clinic/memoryobject.c.h index ff7b50bb114b05..73ef8d143b50b1 100644 --- a/Objects/clinic/memoryobject.c.h +++ b/Objects/clinic/memoryobject.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(memoryview__doc__, "memoryview(object)\n" "--\n" @@ -21,31 +15,8 @@ static PyObject * memoryview(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(object), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"object", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "memoryview", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "memoryview", 0}; PyObject *argsbuf[1]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -97,31 +68,8 @@ static PyObject * memoryview_cast(PyMemoryViewObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(format), &_Py_ID(shape), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"format", "shape", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "cast", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "cast", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *format; @@ -208,31 +156,8 @@ static PyObject * memoryview_tobytes(PyMemoryViewObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(order), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"order", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "tobytes", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "tobytes", 0}; PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; const char *order = NULL; @@ -303,31 +228,8 @@ static PyObject * memoryview_hex(PyMemoryViewObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(sep), &_Py_ID(bytes_per_sep), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"sep", "bytes_per_sep", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "hex", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "hex", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *sep = NULL; @@ -356,4 +258,4 @@ memoryview_hex(PyMemoryViewObject *self, PyObject *const *args, Py_ssize_t nargs exit: return return_value; } -/*[clinic end generated code: output=a832f2fc44e4794c input=a9049054013a1b77]*/ +/*[clinic end generated code: output=48be570b5e6038e3 input=a9049054013a1b77]*/ diff --git a/Objects/clinic/moduleobject.c.h b/Objects/clinic/moduleobject.c.h index 861bcea6215950..c1534eaee25886 100644 --- a/Objects/clinic/moduleobject.c.h +++ b/Objects/clinic/moduleobject.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(module___init____doc__, "module(name, doc=None)\n" "--\n" @@ -23,31 +17,8 @@ static int module___init__(PyObject *self, PyObject *args, PyObject *kwargs) { int return_value = -1; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(name), &_Py_ID(doc), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"name", "doc", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "module", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "module", 0}; PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -77,4 +48,4 @@ module___init__(PyObject *self, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=2f897c9e4721f03f input=a9049054013a1b77]*/ +/*[clinic end generated code: output=680276bc3a496d7a input=a9049054013a1b77]*/ diff --git a/Objects/clinic/odictobject.c.h b/Objects/clinic/odictobject.c.h index 115a134e3f7f54..5bb9952caa2733 100644 --- a/Objects/clinic/odictobject.c.h +++ b/Objects/clinic/odictobject.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(OrderedDict_fromkeys__doc__, "fromkeys($type, /, iterable, value=None)\n" "--\n" @@ -24,31 +18,8 @@ static PyObject * OrderedDict_fromkeys(PyTypeObject *type, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(iterable), &_Py_ID(value), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"iterable", "value", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "fromkeys", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "fromkeys", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *seq; @@ -89,31 +60,8 @@ static PyObject * OrderedDict_setdefault(PyODictObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(key), &_Py_ID(default), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"key", "default", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "setdefault", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "setdefault", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *key; @@ -155,31 +103,8 @@ static PyObject * OrderedDict_pop(PyODictObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(key), &_Py_ID(default), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"key", "default", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "pop", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "pop", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *key; @@ -219,31 +144,8 @@ static PyObject * OrderedDict_popitem(PyODictObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(last), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"last", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "popitem", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "popitem", 0}; PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int last = 1; @@ -284,31 +186,8 @@ static PyObject * OrderedDict_move_to_end(PyODictObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(key), &_Py_ID(last), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"key", "last", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "move_to_end", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "move_to_end", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *key; @@ -332,4 +211,4 @@ OrderedDict_move_to_end(PyODictObject *self, PyObject *const *args, Py_ssize_t n exit: return return_value; } -/*[clinic end generated code: output=76d85a9162d62ca8 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=4182a5dab66963d0 input=a9049054013a1b77]*/ diff --git a/Objects/clinic/structseq.c.h b/Objects/clinic/structseq.c.h index 40ba18a544f4b3..b3b4836543d05f 100644 --- a/Objects/clinic/structseq.c.h +++ b/Objects/clinic/structseq.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - static PyObject * structseq_new_impl(PyTypeObject *type, PyObject *arg, PyObject *dict); @@ -15,31 +9,8 @@ static PyObject * structseq_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(sequence), &_Py_ID(dict), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"sequence", "dict", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "structseq", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "structseq", 0}; PyObject *argsbuf[2]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -62,4 +33,4 @@ structseq_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=802d5663c7d01024 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=ed3019acf49b656c input=a9049054013a1b77]*/ diff --git a/Objects/clinic/tupleobject.c.h b/Objects/clinic/tupleobject.c.h index a4776e14fa0a9b..224fc0c374f018 100644 --- a/Objects/clinic/tupleobject.c.h +++ b/Objects/clinic/tupleobject.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(tuple_index__doc__, "index($self, value, start=0, stop=sys.maxsize, /)\n" "--\n" @@ -118,4 +112,4 @@ tuple___getnewargs__(PyTupleObject *self, PyObject *Py_UNUSED(ignored)) { return tuple___getnewargs___impl(self); } -/*[clinic end generated code: output=441d2b880e865f87 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=044496dc917f8a97 input=a9049054013a1b77]*/ diff --git a/Objects/clinic/typeobject.c.h b/Objects/clinic/typeobject.c.h index f2864297b0f4e7..dee3139bd3d82c 100644 --- a/Objects/clinic/typeobject.c.h +++ b/Objects/clinic/typeobject.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(type___instancecheck____doc__, "__instancecheck__($self, instance, /)\n" "--\n" @@ -267,4 +261,4 @@ object___dir__(PyObject *self, PyObject *Py_UNUSED(ignored)) { return object___dir___impl(self); } -/*[clinic end generated code: output=3312f873c970bfd1 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=a30090032b8e6195 input=a9049054013a1b77]*/ diff --git a/Objects/clinic/unicodeobject.c.h b/Objects/clinic/unicodeobject.c.h index d803a2733bd636..07877693c26e32 100644 --- a/Objects/clinic/unicodeobject.c.h +++ b/Objects/clinic/unicodeobject.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(EncodingMap_size__doc__, "size($self, /)\n" "--\n" @@ -160,31 +154,8 @@ static PyObject * unicode_encode(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(encoding), &_Py_ID(errors), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"encoding", "errors", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "encode", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "encode", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; const char *encoding = NULL; @@ -253,31 +224,8 @@ static PyObject * unicode_expandtabs(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(tabsize), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"tabsize", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "expandtabs", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "expandtabs", 0}; PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int tabsize = 8; @@ -954,31 +902,8 @@ static PyObject * unicode_split(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(sep), &_Py_ID(maxsplit), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"sep", "maxsplit", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "split", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "split", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *sep = Py_None; @@ -1076,31 +1001,8 @@ static PyObject * unicode_rsplit(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(sep), &_Py_ID(maxsplit), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"sep", "maxsplit", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "rsplit", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "rsplit", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *sep = Py_None; @@ -1157,31 +1059,8 @@ static PyObject * unicode_splitlines(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(keepends), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"keepends", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "splitlines", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "splitlines", 0}; PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int keepends = 0; @@ -1414,31 +1293,8 @@ static PyObject * unicode_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(object), &_Py_ID(encoding), &_Py_ID(errors), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"object", "encoding", "errors", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "str", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "str", 0}; PyObject *argsbuf[3]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -1497,4 +1353,4 @@ unicode_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=e775ff4154f1c935 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=b5dd7cefead9a8e7 input=a9049054013a1b77]*/ diff --git a/Objects/codeobject.c b/Objects/codeobject.c index 72712f40e42c7c..68b0b1efb2e14c 100644 --- a/Objects/codeobject.c +++ b/Objects/codeobject.c @@ -4,7 +4,6 @@ #include "opcode.h" #include "structmember.h" // PyMemberDef #include "pycore_code.h" // _PyCodeConstructor -#include "pycore_frame.h" // FRAME_SPECIALS_SIZE #include "pycore_interp.h" // PyInterpreterState.co_extra_freefuncs #include "pycore_opcode.h" // _PyOpcode_Deopt #include "pycore_pystate.h" // _PyInterpreterState_GET() @@ -328,7 +327,6 @@ init_code(PyCodeObject *co, struct _PyCodeConstructor *con) /* derived values */ co->co_nlocalsplus = nlocalsplus; co->co_nlocals = nlocals; - co->co_framesize = nlocalsplus + con->stacksize + FRAME_SPECIALS_SIZE; co->co_nplaincellvars = nplaincellvars; co->co_ncellvars = ncellvars; co->co_nfreevars = nfreevars; @@ -336,27 +334,18 @@ init_code(PyCodeObject *co, struct _PyCodeConstructor *con) /* not set */ co->co_weakreflist = NULL; co->co_extra = NULL; - co->_co_code = NULL; co->co_warmup = QUICKENING_INITIAL_WARMUP_VALUE; - co->_co_linearray_entry_size = 0; - co->_co_linearray = NULL; memcpy(_PyCode_CODE(co), PyBytes_AS_STRING(con->code), PyBytes_GET_SIZE(con->code)); - int entry_point = 0; - while (entry_point < Py_SIZE(co) && - _Py_OPCODE(_PyCode_CODE(co)[entry_point]) != RESUME) { - entry_point++; - } - co->_co_firsttraceable = entry_point; } static int scan_varint(const uint8_t *ptr) { - unsigned int read = *ptr++; - unsigned int val = read & 63; - unsigned int shift = 0; + int read = *ptr++; + int val = read & 63; + int shift = 0; while (read & 64) { read = *ptr++; shift += 6; @@ -368,7 +357,7 @@ scan_varint(const uint8_t *ptr) static int scan_signed_varint(const uint8_t *ptr) { - unsigned int uval = scan_varint(ptr); + int uval = scan_varint(ptr); if (uval & 1) { return -(int)(uval >> 1); } @@ -638,10 +627,11 @@ PyCode_New(int argcount, int kwonlyargcount, exceptiontable); } -static const char assert0[6] = { - RESUME, 0, - LOAD_ASSERTION_ERROR, 0, - RAISE_VARARGS, 1 +static const char assert0[4] = { + LOAD_ASSERTION_ERROR, + 0, + RAISE_VARARGS, + 1 }; PyCodeObject * @@ -665,7 +655,7 @@ PyCode_NewEmpty(const char *filename, const char *funcname, int firstlineno) if (filename_ob == NULL) { goto failed; } - code_ob = PyBytes_FromStringAndSize(assert0, 6); + code_ob = PyBytes_FromStringAndSize(assert0, 4); if (code_ob == NULL) { goto failed; } @@ -704,50 +694,6 @@ PyCode_NewEmpty(const char *filename, const char *funcname, int firstlineno) lnotab_notes.txt for the details of the lnotab representation. */ -int -_PyCode_CreateLineArray(PyCodeObject *co) -{ - assert(co->_co_linearray == NULL); - PyCodeAddressRange bounds; - int size; - int max_line = 0; - _PyCode_InitAddressRange(co, &bounds); - while(_PyLineTable_NextAddressRange(&bounds)) { - if (bounds.ar_line > max_line) { - max_line = bounds.ar_line; - } - } - if (max_line < (1 << 15)) { - size = 2; - } - else { - size = 4; - } - co->_co_linearray = PyMem_Malloc(Py_SIZE(co)*size); - if (co->_co_linearray == NULL) { - PyErr_NoMemory(); - return -1; - } - co->_co_linearray_entry_size = size; - _PyCode_InitAddressRange(co, &bounds); - while(_PyLineTable_NextAddressRange(&bounds)) { - int start = bounds.ar_start / sizeof(_Py_CODEUNIT); - int end = bounds.ar_end / sizeof(_Py_CODEUNIT); - for (int index = start; index < end; index++) { - assert(index < (int)Py_SIZE(co)); - if (size == 2) { - assert(((int16_t)bounds.ar_line) == bounds.ar_line); - ((int16_t *)co->_co_linearray)[index] = bounds.ar_line; - } - else { - assert(size == 4); - ((int32_t *)co->_co_linearray)[index] = bounds.ar_line; - } - } - } - return 0; -} - int PyCode_Addr2Line(PyCodeObject *co, int addrq) { @@ -755,9 +701,6 @@ PyCode_Addr2Line(PyCodeObject *co, int addrq) return co->co_firstlineno; } assert(addrq >= 0 && addrq < _PyCode_NBYTES(co)); - if (co->_co_linearray) { - return _PyCode_LineNumberFromArray(co, addrq / sizeof(_Py_CODEUNIT)); - } PyCodeAddressRange bounds; _PyCode_InitAddressRange(co, &bounds); return _PyCode_CheckLineNumber(addrq, &bounds); @@ -825,11 +768,6 @@ next_code_delta(PyCodeAddressRange *bounds) static int previous_code_delta(PyCodeAddressRange *bounds) { - if (bounds->ar_start == 0) { - // If we looking at the first entry, the - // "previous" entry has an implicit length of 1. - return 1; - } const uint8_t *ptr = bounds->opaque.lo_next-1; while (((*ptr) & 128) == 0) { ptr--; @@ -846,9 +784,9 @@ read_byte(PyCodeAddressRange *bounds) static int read_varint(PyCodeAddressRange *bounds) { - unsigned int read = read_byte(bounds); - unsigned int val = read & 63; - unsigned int shift = 0; + int read = read_byte(bounds); + int val = read & 63; + int shift = 0; while (read & 64) { read = read_byte(bounds); shift += 6; @@ -860,7 +798,7 @@ read_varint(PyCodeAddressRange *bounds) static int read_signed_varint(PyCodeAddressRange *bounds) { - unsigned int uval = read_varint(bounds); + int uval = read_varint(bounds); if (uval & 1) { return -(int)(uval >> 1); } @@ -873,7 +811,7 @@ static void retreat(PyCodeAddressRange *bounds) { ASSERT_VALID_BOUNDS(bounds); - assert(bounds->ar_start >= 0); + assert(bounds->ar_start > 0); do { bounds->opaque.lo_next--; } while (((*bounds->opaque.lo_next) & 128) == 0); @@ -971,7 +909,6 @@ PyCode_Addr2Location(PyCodeObject *co, int addrq, if (addrq < 0) { *start_line = *end_line = co->co_firstlineno; *start_column = *end_column = 0; - return 1; } assert(addrq >= 0 && addrq < _PyCode_NBYTES(co)); PyCodeAddressRange bounds; @@ -1339,7 +1276,7 @@ _PyCode_GetExtra(PyObject *code, Py_ssize_t index, void **extra) PyCodeObject *o = (PyCodeObject*) code; _PyCodeObjectExtra *co_extra = (_PyCodeObjectExtra*) o->co_extra; - if (co_extra == NULL || index < 0 || co_extra->ce_size <= index) { + if (co_extra == NULL || co_extra->ce_size <= index) { *extra = NULL; return 0; } @@ -1401,42 +1338,24 @@ _PyCode_GetVarnames(PyCodeObject *co) return get_localsplus_names(co, CO_FAST_LOCAL, co->co_nlocals); } -PyObject * -PyCode_GetVarnames(PyCodeObject *code) -{ - return _PyCode_GetVarnames(code); -} - PyObject * _PyCode_GetCellvars(PyCodeObject *co) { return get_localsplus_names(co, CO_FAST_CELL, co->co_ncellvars); } -PyObject * -PyCode_GetCellvars(PyCodeObject *code) -{ - return _PyCode_GetCellvars(code); -} - PyObject * _PyCode_GetFreevars(PyCodeObject *co) { return get_localsplus_names(co, CO_FAST_FREE, co->co_nfreevars); } -PyObject * -PyCode_GetFreevars(PyCodeObject *code) -{ - return _PyCode_GetFreevars(code); -} - static void deopt_code(_Py_CODEUNIT *instructions, Py_ssize_t len) { for (int i = 0; i < len; i++) { _Py_CODEUNIT instruction = instructions[i]; - int opcode = _PyOpcode_Deopt[_Py_OPCODE(instruction)]; + int opcode = _PyOpcode_Original[_Py_OPCODE(instruction)]; int caches = _PyOpcode_Caches[opcode]; instructions[i] = _Py_MAKECODEUNIT(opcode, _Py_OPARG(instruction)); while (caches--) { @@ -1448,17 +1367,12 @@ deopt_code(_Py_CODEUNIT *instructions, Py_ssize_t len) PyObject * _PyCode_GetCode(PyCodeObject *co) { - if (co->_co_code != NULL) { - return Py_NewRef(co->_co_code); - } PyObject *code = PyBytes_FromStringAndSize((const char *)_PyCode_CODE(co), _PyCode_NBYTES(co)); if (code == NULL) { return NULL; } deopt_code((_Py_CODEUNIT *)PyBytes_AS_STRING(code), Py_SIZE(co)); - assert(co->_co_code == NULL); - co->_co_code = Py_NewRef(code); return code; } @@ -1617,13 +1531,9 @@ code_dealloc(PyCodeObject *co) Py_XDECREF(co->co_qualname); Py_XDECREF(co->co_linetable); Py_XDECREF(co->co_exceptiontable); - Py_XDECREF(co->_co_code); if (co->co_weakreflist != NULL) { PyObject_ClearWeakRefs((PyObject*)co); } - if (co->_co_linearray) { - PyMem_Free(co->_co_linearray); - } if (co->co_warmup == 0) { _Py_QuickenedCount--; } @@ -1713,15 +1623,6 @@ code_richcompare(PyObject *self, PyObject *other, int op) eq = PyObject_RichCompareBool(co->co_localsplusnames, cp->co_localsplusnames, Py_EQ); if (eq <= 0) goto unequal; - eq = PyObject_RichCompareBool(co->co_linetable, cp->co_linetable, Py_EQ); - if (eq <= 0) { - goto unequal; - } - eq = PyObject_RichCompareBool(co->co_exceptiontable, - cp->co_exceptiontable, Py_EQ); - if (eq <= 0) { - goto unequal; - } if (op == Py_EQ) res = Py_True; @@ -1754,15 +1655,7 @@ code_hash(PyCodeObject *co) if (h2 == -1) return -1; h3 = PyObject_Hash(co->co_localsplusnames); if (h3 == -1) return -1; - Py_hash_t h4 = PyObject_Hash(co->co_linetable); - if (h4 == -1) { - return -1; - } - Py_hash_t h5 = PyObject_Hash(co->co_exceptiontable); - if (h5 == -1) { - return -1; - } - h = h0 ^ h1 ^ h2 ^ h3 ^ h4 ^ h5 ^ + h = h0 ^ h1 ^ h2 ^ h3 ^ co->co_argcount ^ co->co_posonlyargcount ^ co->co_kwonlyargcount ^ co->co_flags; if (h == -1) h = -2; @@ -2192,16 +2085,11 @@ _PyStaticCode_Dealloc(PyCodeObject *co) deopt_code(_PyCode_CODE(co), Py_SIZE(co)); co->co_warmup = QUICKENING_INITIAL_WARMUP_VALUE; PyMem_Free(co->co_extra); - Py_CLEAR(co->_co_code); co->co_extra = NULL; if (co->co_weakreflist != NULL) { PyObject_ClearWeakRefs((PyObject *)co); co->co_weakreflist = NULL; } - if (co->_co_linearray) { - PyMem_Free(co->_co_linearray); - co->_co_linearray = NULL; - } } int diff --git a/Objects/descrobject.c b/Objects/descrobject.c index 82570e085143ed..8e8a46ceca6b3a 100644 --- a/Objects/descrobject.c +++ b/Objects/descrobject.c @@ -6,7 +6,6 @@ #include "pycore_pystate.h" // _PyThreadState_GET() #include "pycore_tuple.h" // _PyTuple_ITEMS() #include "structmember.h" // PyMemberDef -#include "pycore_descrobject.h" /*[clinic input] class mappingproxy "mappingproxyobject *" "&PyDictProxy_Type" @@ -1178,12 +1177,6 @@ mappingproxy_getiter(mappingproxyobject *pp) return PyObject_GetIter(pp->mapping); } -static Py_hash_t -mappingproxy_hash(mappingproxyobject *pp) -{ - return PyObject_Hash(pp->mapping); -} - static PyObject * mappingproxy_str(mappingproxyobject *pp) { @@ -1508,6 +1501,16 @@ class property(object): */ +typedef struct { + PyObject_HEAD + PyObject *prop_get; + PyObject *prop_set; + PyObject *prop_del; + PyObject *prop_doc; + PyObject *prop_name; + int getter_doc; +} propertyobject; + static PyObject * property_copy(PyObject *, PyObject *, PyObject *, PyObject *); @@ -1779,55 +1782,38 @@ property_init_impl(propertyobject *self, PyObject *fget, PyObject *fset, Py_XINCREF(fget); Py_XINCREF(fset); Py_XINCREF(fdel); + Py_XINCREF(doc); Py_XSETREF(self->prop_get, fget); Py_XSETREF(self->prop_set, fset); Py_XSETREF(self->prop_del, fdel); - Py_XSETREF(self->prop_doc, NULL); + Py_XSETREF(self->prop_doc, doc); Py_XSETREF(self->prop_name, NULL); self->getter_doc = 0; - PyObject *prop_doc = NULL; - if (doc != NULL && doc != Py_None) { - prop_doc = doc; - Py_XINCREF(prop_doc); - } /* if no docstring given and the getter has one, use that one */ - else if (fget != NULL) { - int rc = _PyObject_LookupAttr(fget, &_Py_ID(__doc__), &prop_doc); + if ((doc == NULL || doc == Py_None) && fget != NULL) { + PyObject *get_doc; + int rc = _PyObject_LookupAttr(fget, &_Py_ID(__doc__), &get_doc); if (rc <= 0) { return rc; } - if (prop_doc == Py_None) { - prop_doc = NULL; - Py_DECREF(Py_None); + if (Py_IS_TYPE(self, &PyProperty_Type)) { + Py_XSETREF(self->prop_doc, get_doc); } - if (prop_doc != NULL){ - self->getter_doc = 1; - } - } - - /* At this point `prop_doc` is either NULL or - a non-None object with incremented ref counter */ - - if (Py_IS_TYPE(self, &PyProperty_Type)) { - Py_XSETREF(self->prop_doc, prop_doc); - } else { - /* If this is a property subclass, put __doc__ - in dict of the subclass instance instead, - otherwise it gets shadowed by __doc__ in the - class's dict. */ - - if (prop_doc == NULL) { - prop_doc = Py_None; - Py_INCREF(prop_doc); + else { + /* If this is a property subclass, put __doc__ + in dict of the subclass instance instead, + otherwise it gets shadowed by __doc__ in the + class's dict. */ + int err = PyObject_SetAttr( + (PyObject *)self, &_Py_ID(__doc__), get_doc); + Py_DECREF(get_doc); + if (err < 0) + return -1; } - int err = PyObject_SetAttr( - (PyObject *)self, &_Py_ID(__doc__), prop_doc); - Py_XDECREF(prop_doc); - if (err < 0) - return -1; + self->getter_doc = 1; } return 0; @@ -1907,7 +1893,7 @@ PyTypeObject PyDictProxy_Type = { &mappingproxy_as_number, /* tp_as_number */ &mappingproxy_as_sequence, /* tp_as_sequence */ &mappingproxy_as_mapping, /* tp_as_mapping */ - (hashfunc)mappingproxy_hash, /* tp_hash */ + 0, /* tp_hash */ 0, /* tp_call */ (reprfunc)mappingproxy_str, /* tp_str */ PyObject_GenericGetAttr, /* tp_getattro */ diff --git a/Objects/dictobject.c b/Objects/dictobject.c index c603e6f1f87449..ebbd22ee7c145e 100644 --- a/Objects/dictobject.c +++ b/Objects/dictobject.c @@ -1686,12 +1686,50 @@ PyDict_GetItem(PyObject *op, PyObject *key) } Py_ssize_t -_PyDict_LookupIndex(PyDictObject *mp, PyObject *key) +_PyDict_GetItemHint(PyDictObject *mp, PyObject *key, + Py_ssize_t hint, PyObject **value) { - PyObject *value; + assert(*value == NULL); assert(PyDict_CheckExact((PyObject*)mp)); assert(PyUnicode_CheckExact(key)); + if (hint >= 0 && hint < mp->ma_keys->dk_nentries) { + PyObject *res = NULL; + + if (DK_IS_UNICODE(mp->ma_keys)) { + PyDictUnicodeEntry *ep = DK_UNICODE_ENTRIES(mp->ma_keys) + (size_t)hint; + if (ep->me_key == key) { + if (mp->ma_keys->dk_kind == DICT_KEYS_SPLIT) { + assert(mp->ma_values != NULL); + res = mp->ma_values->values[(size_t)hint]; + } + else { + res = ep->me_value; + } + if (res != NULL) { + *value = res; + return hint; + } + } + } + else { + PyDictKeyEntry *ep = DK_ENTRIES(mp->ma_keys) + (size_t)hint; + if (ep->me_key == key) { + if (mp->ma_keys->dk_kind == DICT_KEYS_SPLIT) { + assert(mp->ma_values != NULL); + res = mp->ma_values->values[(size_t)hint]; + } + else { + res = ep->me_value; + } + if (res != NULL) { + *value = res; + return hint; + } + } + } + } + Py_hash_t hash = unicode_get_hash(key); if (hash == -1) { hash = PyObject_Hash(key); @@ -1700,7 +1738,7 @@ _PyDict_LookupIndex(PyDictObject *mp, PyObject *key) } } - return _Py_dict_lookup(mp, key, hash, &value); + return _Py_dict_lookup(mp, key, hash, value); } /* Same as PyDict_GetItemWithError() but with hash supplied by caller. @@ -3591,8 +3629,7 @@ dict_ior(PyObject *self, PyObject *other) return self; } -PyDoc_STRVAR(getitem__doc__, -"__getitem__($self, key, /)\n--\n\nReturn self[key]."); +PyDoc_STRVAR(getitem__doc__, "x.__getitem__(y) <==> x[y]"); PyDoc_STRVAR(sizeof__doc__, "D.__sizeof__() -> size of D in memory, in bytes"); @@ -5331,7 +5368,7 @@ init_inline_values(PyObject *obj, PyTypeObject *tp) for (int i = 0; i < size; i++) { values->values[i] = NULL; } - _PyDictOrValues_SetValues(_PyObject_DictOrValuesPointer(obj), values); + *_PyObject_ValuesPointer(obj) = values; return 0; } @@ -5357,7 +5394,7 @@ _PyObject_InitializeDict(PyObject *obj) if (dict == NULL) { return -1; } - PyObject **dictptr = _PyObject_ComputedDictPointer(obj); + PyObject **dictptr = _PyObject_DictPointer(obj); *dictptr = dict; return 0; } @@ -5385,6 +5422,7 @@ make_dict_from_instance_attributes(PyDictKeysObject *keys, PyDictValues *values) PyObject * _PyObject_MakeDictFromInstanceAttributes(PyObject *obj, PyDictValues *values) { + assert(Py_TYPE(obj)->tp_flags & Py_TPFLAGS_MANAGED_DICT); PyDictKeysObject *keys = CACHED_KEYS(Py_TYPE(obj)); OBJECT_STAT_INC(dict_materialized_on_request); return make_dict_from_instance_attributes(keys, values); @@ -5420,7 +5458,8 @@ _PyObject_StoreInstanceAttribute(PyObject *obj, PyDictValues *values, if (dict == NULL) { return -1; } - _PyObject_DictOrValuesPointer(obj)->dict = dict; + *_PyObject_ValuesPointer(obj) = NULL; + *_PyObject_ManagedDictPointer(obj) = dict; if (value == NULL) { return PyDict_DelItem(dict, name); } @@ -5449,37 +5488,6 @@ _PyObject_StoreInstanceAttribute(PyObject *obj, PyDictValues *values, return 0; } -/* Sanity check for managed dicts */ -#if 0 -#define CHECK(val) assert(val); if (!(val)) { return 0; } - -int -_PyObject_ManagedDictValidityCheck(PyObject *obj) -{ - PyTypeObject *tp = Py_TYPE(obj); - CHECK(tp->tp_flags & Py_TPFLAGS_MANAGED_DICT); - PyDictOrValues *dorv_ptr = _PyObject_DictOrValuesPointer(obj); - if (_PyDictOrValues_IsValues(*dorv_ptr)) { - PyDictValues *values = _PyDictOrValues_GetValues(*dorv_ptr); - int size = ((uint8_t *)values)[-2]; - int count = 0; - PyDictKeysObject *keys = CACHED_KEYS(tp); - for (Py_ssize_t i = 0; i < keys->dk_nentries; i++) { - if (values->values[i] != NULL) { - count++; - } - } - CHECK(size == count); - } - else { - if (dorv_ptr->dict != NULL) { - CHECK(PyDict_Check(dorv_ptr->dict)); - } - } - return 1; -} -#endif - PyObject * _PyObject_GetInstanceAttribute(PyObject *obj, PyDictValues *values, PyObject *name) @@ -5503,94 +5511,76 @@ _PyObject_IsInstanceDictEmpty(PyObject *obj) if (tp->tp_dictoffset == 0) { return 1; } - PyObject *dict; + PyObject **dictptr; if (tp->tp_flags & Py_TPFLAGS_MANAGED_DICT) { - PyDictOrValues dorv = *_PyObject_DictOrValuesPointer(obj); - if (_PyDictOrValues_IsValues(dorv)) { + PyDictValues *values = *_PyObject_ValuesPointer(obj); + if (values) { PyDictKeysObject *keys = CACHED_KEYS(tp); for (Py_ssize_t i = 0; i < keys->dk_nentries; i++) { - if (_PyDictOrValues_GetValues(dorv)->values[i] != NULL) { + if (values->values[i] != NULL) { return 0; } } return 1; } - dict = _PyDictOrValues_GetDict(dorv); + dictptr = _PyObject_ManagedDictPointer(obj); } else { - PyObject **dictptr = _PyObject_ComputedDictPointer(obj); - dict = *dictptr; + dictptr = _PyObject_DictPointer(obj); } + PyObject *dict = *dictptr; if (dict == NULL) { return 1; } return ((PyDictObject *)dict)->ma_used == 0; } -void -_PyObject_FreeInstanceAttributes(PyObject *self) + +int +_PyObject_VisitInstanceAttributes(PyObject *self, visitproc visit, void *arg) { PyTypeObject *tp = Py_TYPE(self); assert(Py_TYPE(self)->tp_flags & Py_TPFLAGS_MANAGED_DICT); - PyDictOrValues dorv = *_PyObject_DictOrValuesPointer(self); - if (!_PyDictOrValues_IsValues(dorv)) { - return; + PyDictValues **values_ptr = _PyObject_ValuesPointer(self); + if (*values_ptr == NULL) { + return 0; } - PyDictValues *values = _PyDictOrValues_GetValues(dorv); PyDictKeysObject *keys = CACHED_KEYS(tp); for (Py_ssize_t i = 0; i < keys->dk_nentries; i++) { - Py_XDECREF(values->values[i]); + Py_VISIT((*values_ptr)->values[i]); } - free_values(values); + return 0; } -int -_PyObject_VisitManagedDict(PyObject *obj, visitproc visit, void *arg) +void +_PyObject_ClearInstanceAttributes(PyObject *self) { - PyTypeObject *tp = Py_TYPE(obj); - if((tp->tp_flags & Py_TPFLAGS_MANAGED_DICT) == 0) { - return 0; - } - assert(tp->tp_dictoffset); - PyDictOrValues dorv = *_PyObject_DictOrValuesPointer(obj); - if (_PyDictOrValues_IsValues(dorv)) { - PyDictValues *values = _PyDictOrValues_GetValues(dorv); - PyDictKeysObject *keys = CACHED_KEYS(tp); - for (Py_ssize_t i = 0; i < keys->dk_nentries; i++) { - Py_VISIT(values->values[i]); - } + PyTypeObject *tp = Py_TYPE(self); + assert(Py_TYPE(self)->tp_flags & Py_TPFLAGS_MANAGED_DICT); + PyDictValues **values_ptr = _PyObject_ValuesPointer(self); + if (*values_ptr == NULL) { + return; } - else { - PyObject *dict = _PyDictOrValues_GetDict(dorv); - Py_VISIT(dict); + PyDictKeysObject *keys = CACHED_KEYS(tp); + for (Py_ssize_t i = 0; i < keys->dk_nentries; i++) { + Py_CLEAR((*values_ptr)->values[i]); } - return 0; } void -_PyObject_ClearManagedDict(PyObject *obj) +_PyObject_FreeInstanceAttributes(PyObject *self) { - PyTypeObject *tp = Py_TYPE(obj); - if((tp->tp_flags & Py_TPFLAGS_MANAGED_DICT) == 0) { + PyTypeObject *tp = Py_TYPE(self); + assert(Py_TYPE(self)->tp_flags & Py_TPFLAGS_MANAGED_DICT); + PyDictValues **values_ptr = _PyObject_ValuesPointer(self); + if (*values_ptr == NULL) { return; } - PyDictOrValues *dorv_ptr = _PyObject_DictOrValuesPointer(obj); - if (_PyDictOrValues_IsValues(*dorv_ptr)) { - PyDictValues *values = _PyDictOrValues_GetValues(*dorv_ptr); - PyDictKeysObject *keys = CACHED_KEYS(tp); - for (Py_ssize_t i = 0; i < keys->dk_nentries; i++) { - Py_CLEAR(values->values[i]); - } - dorv_ptr->dict = NULL; - free_values(values); - } - else { - PyObject *dict = dorv_ptr->dict; - if (dict) { - dorv_ptr->dict = NULL; - Py_DECREF(dict); - } + PyDictKeysObject *keys = CACHED_KEYS(tp); + for (Py_ssize_t i = 0; i < keys->dk_nentries; i++) { + Py_XDECREF((*values_ptr)->values[i]); } + free_values(*values_ptr); } PyObject * @@ -5599,26 +5589,25 @@ PyObject_GenericGetDict(PyObject *obj, void *context) PyObject *dict; PyTypeObject *tp = Py_TYPE(obj); if (_PyType_HasFeature(tp, Py_TPFLAGS_MANAGED_DICT)) { - PyDictOrValues *dorv_ptr = _PyObject_DictOrValuesPointer(obj); - if (_PyDictOrValues_IsValues(*dorv_ptr)) { - PyDictValues *values = _PyDictOrValues_GetValues(*dorv_ptr); + PyDictValues **values_ptr = _PyObject_ValuesPointer(obj); + PyObject **dictptr = _PyObject_ManagedDictPointer(obj); + if (*values_ptr) { + assert(*dictptr == NULL); OBJECT_STAT_INC(dict_materialized_on_request); - dict = make_dict_from_instance_attributes(CACHED_KEYS(tp), values); + *dictptr = dict = make_dict_from_instance_attributes(CACHED_KEYS(tp), *values_ptr); if (dict != NULL) { - dorv_ptr->dict = dict; + *values_ptr = NULL; } } + else if (*dictptr == NULL) { + *dictptr = dict = PyDict_New(); + } else { - dict = _PyDictOrValues_GetDict(*dorv_ptr); - if (dict == NULL) { - dictkeys_incref(CACHED_KEYS(tp)); - dict = new_dict_with_shared_keys(CACHED_KEYS(tp)); - dorv_ptr->dict = dict; - } + dict = *dictptr; } } else { - PyObject **dictptr = _PyObject_ComputedDictPointer(obj); + PyObject **dictptr = _PyObject_DictPointer(obj); if (dictptr == NULL) { PyErr_SetString(PyExc_AttributeError, "This object has no __dict__"); diff --git a/Objects/exception_handling_notes.txt b/Objects/exception_handling_notes.txt index 7de01fdbf5ff48..a136358f90c888 100644 --- a/Objects/exception_handling_notes.txt +++ b/Objects/exception_handling_notes.txt @@ -43,36 +43,33 @@ SETUP_FINALLY and POP_BLOCK. In 3.11, the SETUP_FINALLY and POP_BLOCK are eliminated, replaced with a table to determine where to jump to when an exception is raised. - 1 0 RESUME 0 - - 2 2 NOP - - 3 4 LOAD_GLOBAL 1 (NULL + g) - 16 LOAD_CONST 1 (0) - 18 PRECALL 1 - 22 CALL 1 - 32 POP_TOP - 34 LOAD_CONST 0 (None) - 36 RETURN_VALUE - >> 38 PUSH_EXC_INFO - - 4 40 POP_TOP - - 5 42 POP_EXCEPT - 44 LOAD_CONST 2 ('fail') - 46 RETURN_VALUE - >> 48 COPY 3 - 50 POP_EXCEPT - 52 RERAISE 1 + 2 0 NOP + + 3 2 LOAD_GLOBAL 0 (g) + 4 LOAD_CONST 1 (0) + 6 CALL_NO_KW 1 + 8 POP_TOP + 10 LOAD_CONST 0 (None) + 12 RETURN_VALUE + >> 14 PUSH_EXC_INFO + + 4 16 POP_TOP + 18 POP_TOP + 20 POP_TOP + + 5 22 POP_EXCEPT + 24 LOAD_CONST 2 ('fail') + 26 RETURN_VALUE + >> 28 POP_EXCEPT_AND_RERAISE ExceptionTable: - 4 to 32 -> 38 [0] - 38 to 40 -> 48 [1] lasti + 2 to 8 -> 14 [0] + 14 to 20 -> 28 [3] lasti -(Note this code is from 3.11, later versions may have slightly different bytecode.) +(Note this code is from an early 3.11 alpha, the NOP may well have be removed before release). If an instruction raises an exception then its offset is used to find the target to jump to. -For example, the CALL at offset 22, falls into the range 4 to 32. -So, if g() raises an exception, then control jumps to offset 38. +For example, the CALL_NO_KW at offset 6, falls into the range 2 to 8. +So, if g() raises an exception, then control jumps to offset 14. Unwinding @@ -87,9 +84,9 @@ This information is stored in the exception table, described below. If there is no relevant entry, the exception bubbles up to the caller. If there is an entry, then: - 1. pop values from the stack until it matches the stack depth for the handler. + 1. pop values from the stack until it matches the stack depth for the handler, 2. if 'lasti' is true, then push the offset that the exception was raised at. - 3. push the exception to the stack. + 3. push the exception to the stack as three values: traceback, value, type, 4. jump to the target offset and resume execution. diff --git a/Objects/exceptions.c b/Objects/exceptions.c index 3703fdcda4dbe9..e212e02352efb3 100644 --- a/Objects/exceptions.c +++ b/Objects/exceptions.c @@ -600,9 +600,17 @@ StopIteration_traverse(PyStopIterationObject *self, visitproc visit, void *arg) return BaseException_traverse((PyBaseExceptionObject *)self, visit, arg); } -ComplexExtendsException(PyExc_Exception, StopIteration, StopIteration, - 0, 0, StopIteration_members, 0, 0, - "Signal the end from iterator.__next__()."); +ComplexExtendsException( + PyExc_Exception, /* base */ + StopIteration, /* name */ + StopIteration, /* prefix for *_init, etc */ + 0, /* new */ + 0, /* methods */ + StopIteration_members, /* members */ + 0, /* getset */ + 0, /* str */ + "Signal the end from iterator.__next__()." +); /* @@ -1106,7 +1114,6 @@ exceptiongroup_split_recursive(PyObject *exc, assert(PyList_CheckExact(match_list)); if (PyList_Append(match_list, rec_result.match) < 0) { Py_DECREF(rec_result.match); - Py_XDECREF(rec_result.rest); goto done; } Py_DECREF(rec_result.match); @@ -3215,7 +3222,6 @@ MemoryError_new(PyTypeObject *type, PyObject *args, PyObject *kwds) self = state->memerrors_freelist; self->args = PyTuple_New(0); /* This shouldn't happen since the empty tuple is persistent */ - if (self->args == NULL) { return NULL; } @@ -3231,8 +3237,6 @@ MemoryError_new(PyTypeObject *type, PyObject *args, PyObject *kwds) static void MemoryError_dealloc(PyBaseExceptionObject *self) { - _PyObject_GC_UNTRACK(self); - BaseException_clear(self); /* If this is a subclass of MemoryError, we don't need to @@ -3242,6 +3246,8 @@ MemoryError_dealloc(PyBaseExceptionObject *self) return; } + _PyObject_GC_UNTRACK(self); + struct _Py_exc_state *state = get_exc_state(); if (state->memerrors_numfree >= MEMERRORS_SAVE) { Py_TYPE(self)->tp_free((PyObject *)self); @@ -3558,7 +3564,8 @@ _PyExc_InitTypes(PyInterpreterState *interp) for (size_t i=0; i < Py_ARRAY_LENGTH(static_exceptions); i++) { PyTypeObject *exc = static_exceptions[i].exc; - if (_PyStaticType_InitBuiltin(exc) < 0) { + + if (PyType_Ready(exc) < 0) { return -1; } } @@ -3635,11 +3642,6 @@ _PyExc_InitState(PyInterpreterState *interp) ADD_ERRNO(InterruptedError, EINTR); ADD_ERRNO(PermissionError, EACCES); ADD_ERRNO(PermissionError, EPERM); -#ifdef ENOTCAPABLE - // Extension for WASI capability-based security. Process lacks - // capability to access a resource. - ADD_ERRNO(PermissionError, ENOTCAPABLE); -#endif ADD_ERRNO(ProcessLookupError, ESRCH); ADD_ERRNO(TimeoutError, ETIMEDOUT); diff --git a/Objects/fileobject.c b/Objects/fileobject.c index cbc57412134d3e..8dba5b9aea6db1 100644 --- a/Objects/fileobject.c +++ b/Objects/fileobject.c @@ -32,16 +32,16 @@ PyObject * PyFile_FromFd(int fd, const char *name, const char *mode, int buffering, const char *encoding, const char *errors, const char *newline, int closefd) { - PyObject *open, *stream; + PyObject *io, *stream; /* import _io in case we are being used to open io.py */ - open = _PyImport_GetModuleAttrString("_io", "open"); - if (open == NULL) + io = PyImport_ImportModule("_io"); + if (io == NULL) return NULL; - stream = PyObject_CallFunction(open, "isisssO", fd, mode, + stream = _PyObject_CallMethod(io, &_Py_ID(open), "isisssO", fd, mode, buffering, encoding, errors, newline, closefd ? Py_True : Py_False); - Py_DECREF(open); + Py_DECREF(io); if (stream == NULL) return NULL; /* ignore name attribute because the name attribute of _BufferedIOMixin @@ -490,7 +490,7 @@ PyFile_SetOpenCodeHook(Py_OpenCodeHookFunction hook, void *userData) { PyObject * PyFile_OpenCodeObject(PyObject *path) { - PyObject *f = NULL; + PyObject *iomod, *f = NULL; if (!PyUnicode_Check(path)) { PyErr_Format(PyExc_TypeError, "'path' must be 'str', not '%.200s'", @@ -502,10 +502,10 @@ PyFile_OpenCodeObject(PyObject *path) if (hook) { f = hook(path, _PyRuntime.open_code_userdata); } else { - PyObject *open = _PyImport_GetModuleAttrString("_io", "open"); - if (open) { - f = PyObject_CallFunction(open, "Os", path, "rb"); - Py_DECREF(open); + iomod = PyImport_ImportModule("_io"); + if (iomod) { + f = _PyObject_CallMethod(iomod, &_Py_ID(open), "Os", path, "rb"); + Py_DECREF(iomod); } } diff --git a/Objects/floatobject.c b/Objects/floatobject.c index c4353572d32d8e..86861b7e28dceb 100644 --- a/Objects/floatobject.c +++ b/Objects/floatobject.c @@ -71,7 +71,7 @@ static PyStructSequence_Field floatinfo_fields[] = { {"min_exp", "DBL_MIN_EXP -- minimum int e such that radix**(e-1) " "is a normalized float"}, {"min_10_exp", "DBL_MIN_10_EXP -- minimum int e such that 10**e is " - "a normalized float"}, + "a normalized"}, {"dig", "DBL_DIG -- maximum number of decimal digits that " "can be faithfully represented in a float"}, {"mant_dig", "DBL_MANT_DIG -- mantissa digits"}, @@ -162,18 +162,11 @@ float_from_string_inner(const char *s, Py_ssize_t len, void *obj) double x; const char *end; const char *last = s + len; - /* strip leading whitespace */ + /* strip space */ while (s < last && Py_ISSPACE(*s)) { s++; } - if (s == last) { - PyErr_Format(PyExc_ValueError, - "could not convert string to float: " - "%R", obj); - return NULL; - } - /* strip trailing whitespace */ while (s < last - 1 && Py_ISSPACE(last[-1])) { last--; } @@ -1999,8 +1992,7 @@ _PyFloat_InitTypes(PyInterpreterState *interp) /* Init float info */ if (FloatInfoType.tp_name == NULL) { - if (_PyStructSequence_InitBuiltin(&FloatInfoType, - &floatinfo_desc) < 0) { + if (PyStructSequence_InitType2(&FloatInfoType, &floatinfo_desc) < 0) { return _PyStatus_ERR("can't init float info type"); } } diff --git a/Objects/frameobject.c b/Objects/frameobject.c index 2e377794312612..60f0f2f4edd388 100644 --- a/Objects/frameobject.c +++ b/Objects/frameobject.c @@ -137,25 +137,9 @@ typedef enum kind { Iterator = 1, Except = 2, Object = 3, - Null = 4, - Lasti = 5, } Kind; -static int -compatible_kind(Kind from, Kind to) { - if (to == 0) { - return 0; - } - if (to == Object) { - return from != Null; - } - if (to == Null) { - return 1; - } - return from == to; -} - -#define BITS_PER_BLOCK 3 +#define BITS_PER_BLOCK 2 #define UNINITIALIZED -2 #define OVERFLOWED -1 @@ -163,8 +147,6 @@ compatible_kind(Kind from, Kind to) { #define MAX_STACK_ENTRIES (63/BITS_PER_BLOCK) #define WILL_OVERFLOW (1ULL<<((MAX_STACK_ENTRIES-1)*BITS_PER_BLOCK)) -#define EMPTY_STACK 0 - static inline int64_t push_value(int64_t stack, Kind kind) { @@ -182,97 +164,12 @@ pop_value(int64_t stack) return Py_ARITHMETIC_RIGHT_SHIFT(int64_t, stack, BITS_PER_BLOCK); } -#define MASK ((1<<BITS_PER_BLOCK)-1) - static inline Kind top_of_stack(int64_t stack) { - return stack & MASK; -} - -static inline Kind -peek(int64_t stack, int n) -{ - assert(n >= 1); - return (stack>>(BITS_PER_BLOCK*(n-1))) & MASK; -} - -static Kind -stack_swap(int64_t stack, int n) -{ - assert(n >= 1); - Kind to_swap = peek(stack, n); - Kind top = top_of_stack(stack); - int shift = BITS_PER_BLOCK*(n-1); - int64_t replaced_low = (stack & ~(MASK << shift)) | (top << shift); - int64_t replaced_top = (replaced_low & ~MASK) | to_swap; - return replaced_top; -} - -static int64_t -pop_to_level(int64_t stack, int level) { - if (level == 0) { - return EMPTY_STACK; - } - int64_t max_item = (1<<BITS_PER_BLOCK) - 1; - int64_t level_max_stack = max_item << ((level-1) * BITS_PER_BLOCK); - while (stack > level_max_stack) { - stack = pop_value(stack); - } - return stack; -} - -#if 0 -/* These functions are useful for debugging the stack marking code */ - -static char -tos_char(int64_t stack) { - switch(top_of_stack(stack)) { - case Iterator: - return 'I'; - case Except: - return 'E'; - case Object: - return 'O'; - case Lasti: - return 'L'; - case Null: - return 'N'; - } - return '?'; + return stack & ((1<<BITS_PER_BLOCK)-1); } -static void -print_stack(int64_t stack) { - if (stack < 0) { - if (stack == UNINITIALIZED) { - printf("---"); - } - else if (stack == OVERFLOWED) { - printf("OVERFLOWED"); - } - else { - printf("??"); - } - return; - } - while (stack) { - printf("%c", tos_char(stack)); - stack = pop_value(stack); - } -} - -static void -print_stacks(int64_t *stacks, int n) { - for (int i = 0; i < n; i++) { - printf("%d: ", i); - print_stack(stacks[i]); - printf("\n"); - } -} - -#endif - static int64_t * mark_stacks(PyCodeObject *code_obj, int len) { @@ -292,7 +189,7 @@ mark_stacks(PyCodeObject *code_obj, int len) for (int i = 1; i <= len; i++) { stacks[i] = UNINITIALIZED; } - stacks[0] = EMPTY_STACK; + stacks[0] = 0; if (code_obj->co_flags & (CO_GENERATOR | CO_COROUTINE | CO_ASYNC_GENERATOR)) { // Generators get sent None while starting: @@ -301,7 +198,6 @@ mark_stacks(PyCodeObject *code_obj, int len) int todo = 1; while (todo) { todo = 0; - /* Scan instructions */ for (i = 0; i < len; i++) { int64_t next_stack = stacks[i]; if (next_stack == UNINITIALIZED) { @@ -311,12 +207,21 @@ mark_stacks(PyCodeObject *code_obj, int len) switch (opcode) { case JUMP_IF_FALSE_OR_POP: case JUMP_IF_TRUE_OR_POP: - case POP_JUMP_IF_FALSE: - case POP_JUMP_IF_TRUE: + case POP_JUMP_FORWARD_IF_FALSE: + case POP_JUMP_BACKWARD_IF_FALSE: + case POP_JUMP_FORWARD_IF_TRUE: + case POP_JUMP_BACKWARD_IF_TRUE: { int64_t target_stack; int j = get_arg(code, i); - j += i + 1; + if (opcode == POP_JUMP_FORWARD_IF_FALSE || + opcode == POP_JUMP_FORWARD_IF_TRUE) { + j += i + 1; + } + else if (opcode == POP_JUMP_BACKWARD_IF_FALSE || + opcode == POP_JUMP_BACKWARD_IF_TRUE) { + j = i + 1 - j; + } assert(j < len); if (stacks[j] == UNINITIALIZED && j < i) { todo = 1; @@ -336,6 +241,10 @@ mark_stacks(PyCodeObject *code_obj, int len) stacks[i+1] = next_stack; break; } + case POP_EXCEPT: + next_stack = pop_value(pop_value(pop_value(next_stack))); + stacks[i+1] = next_stack; + break; case SEND: j = get_arg(code, i) + i + 1; assert(j < len); @@ -369,89 +278,29 @@ mark_stacks(PyCodeObject *code_obj, int len) { int64_t target_stack = pop_value(next_stack); stacks[i+1] = push_value(next_stack, Object); - j = get_arg(code, i) + 1 + INLINE_CACHE_ENTRIES_FOR_ITER + i; + j = get_arg(code, i) + i + 1; assert(j < len); assert(stacks[j] == UNINITIALIZED || stacks[j] == target_stack); stacks[j] = target_stack; break; } case END_ASYNC_FOR: - next_stack = pop_value(pop_value(next_stack)); + next_stack = pop_value(pop_value(pop_value(next_stack))); stacks[i+1] = next_stack; break; case PUSH_EXC_INFO: + next_stack = push_value(next_stack, Except); + next_stack = push_value(next_stack, Except); next_stack = push_value(next_stack, Except); stacks[i+1] = next_stack; - break; - case POP_EXCEPT: - assert(top_of_stack(next_stack) == Except); - next_stack = pop_value(next_stack); - stacks[i+1] = next_stack; - break; case RETURN_VALUE: - assert(pop_value(next_stack) == EMPTY_STACK); - assert(top_of_stack(next_stack) == Object); - break; case RAISE_VARARGS: - break; case RERAISE: - assert(top_of_stack(next_stack) == Except); /* End of block */ break; - case PUSH_NULL: - next_stack = push_value(next_stack, Null); - stacks[i+1] = next_stack; - break; - case LOAD_GLOBAL: - { - int j = get_arg(code, i); - if (j & 1) { - next_stack = push_value(next_stack, Null); - } - next_stack = push_value(next_stack, Object); - stacks[i+1] = next_stack; - break; - } - case LOAD_ATTR: - { - assert(top_of_stack(next_stack) == Object); - int j = get_arg(code, i); - if (j & 1) { - next_stack = pop_value(next_stack); - next_stack = push_value(next_stack, Null); - next_stack = push_value(next_stack, Object); - } - stacks[i+1] = next_stack; - break; - } - case CALL: - { - int args = get_arg(code, i); - for (int j = 0; j < args+2; j++) { - next_stack = pop_value(next_stack); - } - next_stack = push_value(next_stack, Object); - stacks[i+1] = next_stack; - break; - } - case SWAP: - { - int n = get_arg(code, i); - next_stack = stack_swap(next_stack, n); - stacks[i+1] = next_stack; - break; - } - case COPY: - { - int n = get_arg(code, i); - next_stack = push_value(next_stack, peek(next_stack, n)); - stacks[i+1] = next_stack; - break; - } default: { - int delta = PyCompile_OpcodeStackEffect(opcode, get_arg(code, i)); - assert(delta != PY_INVALID_STACK_EFFECT); + int delta = PyCompile_OpcodeStackEffect(opcode, _Py_OPARG(code[i])); while (delta < 0) { next_stack = pop_value(next_stack); delta++; @@ -464,39 +313,22 @@ mark_stacks(PyCodeObject *code_obj, int len) } } } - /* Scan exception table */ - unsigned char *start = (unsigned char *)PyBytes_AS_STRING(code_obj->co_exceptiontable); - unsigned char *end = start + PyBytes_GET_SIZE(code_obj->co_exceptiontable); - unsigned char *scan = start; - while (scan < end) { - int start_offset, size, handler; - scan = parse_varint(scan, &start_offset); - assert(start_offset >= 0 && start_offset < len); - scan = parse_varint(scan, &size); - assert(size >= 0 && start_offset+size <= len); - scan = parse_varint(scan, &handler); - assert(handler >= 0 && handler < len); - int depth_and_lasti; - scan = parse_varint(scan, &depth_and_lasti); - int level = depth_and_lasti >> 1; - int lasti = depth_and_lasti & 1; - if (stacks[start_offset] != UNINITIALIZED) { - if (stacks[handler] == UNINITIALIZED) { - todo = 1; - uint64_t target_stack = pop_to_level(stacks[start_offset], level); - if (lasti) { - target_stack = push_value(target_stack, Lasti); - } - target_stack = push_value(target_stack, Except); - stacks[handler] = target_stack; - } - } - } } Py_DECREF(co_code); return stacks; } +static int +compatible_kind(Kind from, Kind to) { + if (to == 0) { + return 0; + } + if (to == Object) { + return 1; + } + return from == to; +} + static int compatible_stack(int64_t from_stack, int64_t to_stack) { @@ -532,11 +364,8 @@ explain_incompatible_stack(int64_t to_stack) switch(target_kind) { case Except: return "can't jump into an 'except' block as there's no exception"; - case Lasti: - return "can't jump into a re-raising block as there's no location"; case Object: - case Null: - return "incompatible stacks"; + return "differing stack depth"; case Iterator: return "can't jump into the body of a for loop"; default: @@ -585,6 +414,13 @@ first_line_not_before(int *lines, int len, int line) return result; } +static void +frame_stack_pop(PyFrameObject *f) +{ + PyObject *v = _PyFrame_StackPop(f->f_frame); + Py_DECREF(v); +} + static PyFrameState _PyFrame_GetState(PyFrameObject *frame) { @@ -619,36 +455,6 @@ _PyFrame_GetState(PyFrameObject *frame) Py_UNREACHABLE(); } -static void -add_load_fast_null_checks(PyCodeObject *co) -{ - int changed = 0; - _Py_CODEUNIT *instructions = _PyCode_CODE(co); - for (Py_ssize_t i = 0; i < Py_SIZE(co); i++) { - int opcode = _Py_OPCODE(instructions[i]); - switch (opcode) { - case LOAD_FAST: - case LOAD_FAST__LOAD_FAST: - case LOAD_FAST__LOAD_CONST: - changed = 1; - _Py_SET_OPCODE(instructions[i], LOAD_FAST_CHECK); - break; - case LOAD_CONST__LOAD_FAST: - changed = 1; - _Py_SET_OPCODE(instructions[i], LOAD_CONST); - break; - case STORE_FAST__LOAD_FAST: - changed = 1; - _Py_SET_OPCODE(instructions[i], STORE_FAST); - break; - } - i += _PyOpcode_Caches[_PyOpcode_Deopt[opcode]]; - } - if (changed) { - // invalidate cached co_code object - Py_CLEAR(co->_co_code); - } -} /* Setter for f_lineno - you can set f_lineno from within a trace function in * order to jump to a given line of code, subject to some restrictions. Most @@ -739,8 +545,6 @@ frame_setlineno(PyFrameObject *f, PyObject* p_new_lineno, void *Py_UNUSED(ignore return -1; } - add_load_fast_null_checks(f->f_frame->f_code); - /* PyCode_NewWithPosOnlyArgs limits co_code to be under INT_MAX so this * should never overflow. */ int len = (int)Py_SIZE(f->f_frame->f_code); @@ -784,7 +588,7 @@ frame_setlineno(PyFrameObject *f, PyObject* p_new_lineno, void *Py_UNUSED(ignore msg = "stack to deep to analyze"; } else if (start_stack == UNINITIALIZED) { - msg = "can't jump from unreachable code"; + msg = "can't jump from within an exception handler"; } else { msg = explain_incompatible_stack(target_stack); @@ -804,20 +608,7 @@ frame_setlineno(PyFrameObject *f, PyObject* p_new_lineno, void *Py_UNUSED(ignore start_stack = pop_value(start_stack); } while (start_stack > best_stack) { - if (top_of_stack(start_stack) == Except) { - /* Pop exception stack as well as the evaluation stack */ - PyThreadState *tstate = _PyThreadState_GET(); - _PyErr_StackItem *exc_info = tstate->exc_info; - PyObject *value = exc_info->exc_value; - PyObject *exc = _PyFrame_StackPop(f->f_frame); - assert(PyExceptionInstance_Check(exc) || exc == Py_None); - exc_info->exc_value = exc; - Py_XDECREF(value); - } - else { - PyObject *v = _PyFrame_StackPop(f->f_frame); - Py_XDECREF(v); - } + frame_stack_pop(f); start_stack = pop_value(start_stack); } /* Finally set the new lasti and return OK. */ @@ -897,7 +688,7 @@ frame_dealloc(PyFrameObject *f) /* Don't clear code object until the end */ co = frame->f_code; frame->f_code = NULL; - Py_CLEAR(frame->f_funcobj); + Py_CLEAR(frame->f_func); Py_CLEAR(frame->f_locals); PyObject **locals = _PyFrame_GetLocalsArray(frame); for (int i = 0; i < frame->stacktop; i++) { @@ -1037,9 +828,8 @@ init_frame(_PyInterpreterFrame *frame, PyFunctionObject *func, PyObject *locals) { /* _PyFrame_InitializeSpecials consumes reference to func */ Py_INCREF(func); - Py_XINCREF(locals); PyCodeObject *code = (PyCodeObject *)func->func_code; - _PyFrame_InitializeSpecials(frame, func, locals, code); + _PyFrame_InitializeSpecials(frame, func, locals, code->co_nlocalsplus); for (Py_ssize_t i = 0; i < code->co_nlocalsplus; i++) { frame->localsplus[i] = NULL; } @@ -1141,12 +931,10 @@ _PyFrame_FastToLocalsWithError(_PyInterpreterFrame *frame) { // COPY_FREE_VARS has no quickened forms, so no need to use _PyOpcode_Deopt // here: int lasti = _PyInterpreterFrame_LASTI(frame); - if (lasti < 0 && _Py_OPCODE(_PyCode_CODE(co)[0]) == COPY_FREE_VARS - && PyFunction_Check(frame->f_funcobj)) - { + if (lasti < 0 && _Py_OPCODE(_PyCode_CODE(co)[0]) == COPY_FREE_VARS) { /* Free vars have not been initialized -- Do that */ PyCodeObject *co = frame->f_code; - PyObject *closure = ((PyFunctionObject *)frame->f_funcobj)->func_closure; + PyObject *closure = frame->f_func->func_closure; int offset = co->co_nlocals + co->co_nplaincellvars; for (int i = 0; i < co->co_nfreevars; ++i) { PyObject *o = PyTuple_GET_ITEM(closure, i); @@ -1259,7 +1047,6 @@ _PyFrame_LocalsToFast(_PyInterpreterFrame *frame, int clear) } fast = _PyFrame_GetLocalsArray(frame); co = frame->f_code; - bool added_null_checks = false; PyErr_Fetch(&error_type, &error_value, &error_traceback); for (int i = 0; i < co->co_nlocalsplus; i++) { @@ -1279,10 +1066,6 @@ _PyFrame_LocalsToFast(_PyInterpreterFrame *frame, int clear) } } PyObject *oldvalue = fast[i]; - if (!added_null_checks && oldvalue != NULL && value == NULL) { - add_load_fast_null_checks(co); - added_null_checks = true; - } PyObject *cell = NULL; if (kind == CO_FAST_FREE) { // The cell was set when the frame was created from @@ -1350,14 +1133,8 @@ PyFrame_GetBack(PyFrameObject *frame) { assert(frame != NULL); PyFrameObject *back = frame->f_back; - if (back == NULL) { - _PyInterpreterFrame *prev = frame->f_frame->previous; - while (prev && _PyFrame_IsIncomplete(prev)) { - prev = prev->previous; - } - if (prev) { - back = _PyFrame_GetFrameObject(prev); - } + if (back == NULL && frame->f_frame->previous != NULL) { + back = _PyFrame_GetFrameObject(frame->f_frame->previous); } Py_XINCREF(back); return back; diff --git a/Objects/funcobject.c b/Objects/funcobject.c index 7f257a9986987b..32b4155c03e6ae 100644 --- a/Objects/funcobject.c +++ b/Objects/funcobject.c @@ -134,9 +134,6 @@ uint32_t _PyFunction_GetVersionForCurrentState(PyFunctionObject *func) if (func->func_version != 0) { return func->func_version; } - if (func->vectorcall != _PyFunction_Vectorcall) { - return 0; - } if (next_func_version == 0) { return 0; } @@ -212,14 +209,6 @@ PyFunction_SetDefaults(PyObject *op, PyObject *defaults) return 0; } -void -PyFunction_SetVectorcall(PyFunctionObject *func, vectorcallfunc vectorcall) -{ - assert(func != NULL); - func->func_version = 0; - func->vectorcall = vectorcall; -} - PyObject * PyFunction_GetKwDefaults(PyObject *op) { diff --git a/Objects/genericaliasobject.c b/Objects/genericaliasobject.c index 19f011fd3a7437..39fd70999ecbe5 100644 --- a/Objects/genericaliasobject.c +++ b/Objects/genericaliasobject.c @@ -219,10 +219,6 @@ _Py_make_parameters(PyObject *args) for (Py_ssize_t iarg = 0; iarg < nargs; iarg++) { PyObject *t = PyTuple_GET_ITEM(args, iarg); PyObject *subst; - // We don't want __parameters__ descriptor of a bare Python class. - if (PyType_Check(t)) { - continue; - } if (_PyObject_LookupAttr(t, &_Py_ID(__typing_subst__), &subst) < 0) { Py_DECREF(parameters); return NULL; @@ -273,7 +269,7 @@ _Py_make_parameters(PyObject *args) a non-empty tuple, return a new reference to obj. */ static PyObject * subs_tvars(PyObject *obj, PyObject *params, - PyObject **argitems, Py_ssize_t nargs) + PyObject **argitems, Py_ssize_t nargs, Py_ssize_t varparam) { PyObject *subparams; if (_PyObject_LookupAttr(obj, &_Py_ID(__parameters__), &subparams) < 0) { @@ -287,28 +283,28 @@ subs_tvars(PyObject *obj, PyObject *params, Py_DECREF(subparams); return NULL; } - Py_ssize_t j = 0; - for (Py_ssize_t i = 0; i < nsubargs; ++i) { + for (Py_ssize_t i = 0, j = 0; i < nsubargs; ++i) { PyObject *arg = PyTuple_GET_ITEM(subparams, i); Py_ssize_t iparam = tuple_index(params, nparams, arg); - if (iparam >= 0) { - PyObject *param = PyTuple_GET_ITEM(params, iparam); - arg = argitems[iparam]; - if (Py_TYPE(param)->tp_iter && PyTuple_Check(arg)) { // TypeVarTuple - j = tuple_extend(&subargs, j, - &PyTuple_GET_ITEM(arg, 0), - PyTuple_GET_SIZE(arg)); - if (j < 0) { - return NULL; + if (iparam == varparam) { + j = tuple_extend(&subargs, j, + argitems + iparam, nargs - nparams + 1); + if (j < 0) { + return NULL; + } + } + else { + if (iparam >= 0) { + if (iparam > varparam) { + iparam += nargs - nsubargs; } - continue; + arg = argitems[iparam]; } + Py_INCREF(arg); + PyTuple_SET_ITEM(subargs, j, arg); + j++; } - Py_INCREF(arg); - PyTuple_SET_ITEM(subargs, j, arg); - j++; } - assert(j == PyTuple_GET_SIZE(subargs)); obj = PyObject_GetItem(obj, subargs); @@ -413,36 +409,38 @@ _Py_subs_parameters(PyObject *self, PyObject *args, PyObject *parameters, PyObje self); } item = _unpack_args(item); + int is_tuple = PyTuple_Check(item); + Py_ssize_t nitems = is_tuple ? PyTuple_GET_SIZE(item) : 1; + PyObject **argitems = is_tuple ? &PyTuple_GET_ITEM(item, 0) : &item; + Py_ssize_t varparam = nparams; for (Py_ssize_t i = 0; i < nparams; i++) { PyObject *param = PyTuple_GET_ITEM(parameters, i); - PyObject *prepare, *tmp; - if (_PyObject_LookupAttr(param, &_Py_ID(__typing_prepare_subst__), &prepare) < 0) { - Py_DECREF(item); - return NULL; - } - if (prepare && prepare != Py_None) { - if (PyTuple_Check(item)) { - tmp = PyObject_CallFunction(prepare, "OO", self, item); - } - else { - tmp = PyObject_CallFunction(prepare, "O(O)", self, item); - } - Py_DECREF(prepare); - Py_SETREF(item, tmp); - if (item == NULL) { - return NULL; + if (Py_TYPE(param)->tp_iter) { // TypeVarTuple + if (varparam < nparams) { + Py_DECREF(item); + return PyErr_Format(PyExc_TypeError, + "More than one TypeVarTuple parameter in %S", + self); } + varparam = i; } } - int is_tuple = PyTuple_Check(item); - Py_ssize_t nitems = is_tuple ? PyTuple_GET_SIZE(item) : 1; - PyObject **argitems = is_tuple ? &PyTuple_GET_ITEM(item, 0) : &item; - if (nitems != nparams) { - Py_DECREF(item); - return PyErr_Format(PyExc_TypeError, - "Too %s arguments for %R; actual %zd, expected %zd", - nitems > nparams ? "many" : "few", - self, nitems, nparams); + if (varparam < nparams) { + if (nitems < nparams - 1) { + Py_DECREF(item); + return PyErr_Format(PyExc_TypeError, + "Too few arguments for %R", + self); + } + } + else { + if (nitems != nparams) { + Py_DECREF(item); + return PyErr_Format(PyExc_TypeError, + "Too %s arguments for %R; actual %zd, expected %zd", + nitems > nparams ? "many" : "few", + self, nitems, nparams); + } } /* Replace all type variables (specified by parameters) with corresponding values specified by argitems. @@ -473,11 +471,22 @@ _Py_subs_parameters(PyObject *self, PyObject *args, PyObject *parameters, PyObje if (subst) { Py_ssize_t iparam = tuple_index(parameters, nparams, arg); assert(iparam >= 0); + if (iparam == varparam) { + Py_DECREF(subst); + Py_DECREF(newargs); + Py_DECREF(item); + PyErr_SetString(PyExc_TypeError, + "Substitution of bare TypeVarTuple is not supported"); + return NULL; + } + if (iparam > varparam) { + iparam += nitems - nparams; + } arg = PyObject_CallOneArg(subst, argitems[iparam]); Py_DECREF(subst); } else { - arg = subs_tvars(arg, parameters, argitems, nitems); + arg = subs_tvars(arg, parameters, argitems, nitems, varparam); } if (arg == NULL) { Py_DECREF(newargs); @@ -587,7 +596,6 @@ ga_vectorcall(PyObject *self, PyObject *const *args, } static const char* const attr_exceptions[] = { - "__class__", "__origin__", "__args__", "__unpacked__", diff --git a/Objects/genobject.c b/Objects/genobject.c index da4afecc69c8c1..2b45e28cbf16df 100644 --- a/Objects/genobject.c +++ b/Objects/genobject.c @@ -485,7 +485,26 @@ _gen_throw(PyGenObject *gen, int close_on_genexit, } Py_DECREF(yf); if (!ret) { - ret = gen_send_ex(gen, Py_None, 1, 0); + PyObject *val; + /* Pop subiterator from stack */ + assert(gen->gi_frame_state < FRAME_CLEARED); + ret = _PyFrame_StackPop((_PyInterpreterFrame *)gen->gi_iframe); + assert(ret == yf); + Py_DECREF(ret); + // XXX: Performing this jump ourselves is awkward and problematic. + // See https://github.com/python/cpython/pull/31968. + /* Termination repetition of SEND loop */ + assert(_PyInterpreterFrame_LASTI(frame) >= 0); + /* Backup to SEND */ + assert(_Py_OPCODE(frame->prev_instr[-1]) == SEND); + int jump = _Py_OPARG(frame->prev_instr[-1]); + frame->prev_instr += jump - 1; + if (_PyGen_FetchStopIterationValue(&val) == 0) { + ret = gen_send(gen, val); + Py_DECREF(val); + } else { + ret = gen_send_ex(gen, Py_None, 1, 0); + } } return ret; } diff --git a/Objects/listobject.c b/Objects/listobject.c index 6005466f95fdb1..0a99ec919b8c87 100644 --- a/Objects/listobject.c +++ b/Objects/listobject.c @@ -3,7 +3,7 @@ #include "Python.h" #include "pycore_abstract.h" // _PyIndex_Check() #include "pycore_interp.h" // PyInterpreterState.list -#include "pycore_list.h" // struct _Py_list_state, _PyListIterObject +#include "pycore_list.h" // struct _Py_list_state #include "pycore_object.h" // _PyObject_GC_TRACK() #include "pycore_tuple.h" // _PyTuple_FromArray() #include <stddef.h> @@ -551,41 +551,47 @@ list_concat(PyListObject *a, PyObject *bb) static PyObject * list_repeat(PyListObject *a, Py_ssize_t n) { - const Py_ssize_t input_size = Py_SIZE(a); - if (input_size == 0 || n <= 0) - return PyList_New(0); - assert(n > 0); - - if (input_size > PY_SSIZE_T_MAX / n) + Py_ssize_t size; + PyListObject *np; + if (n < 0) + n = 0; + if (n > 0 && Py_SIZE(a) > PY_SSIZE_T_MAX / n) return PyErr_NoMemory(); - Py_ssize_t output_size = input_size * n; - - PyListObject *np = (PyListObject *) list_new_prealloc(output_size); + size = Py_SIZE(a) * n; + if (size == 0) + return PyList_New(0); + np = (PyListObject *) list_new_prealloc(size); if (np == NULL) return NULL; - PyObject **dest = np->ob_item; - if (input_size == 1) { + PyObject **dest_end = dest + size; + if (Py_SIZE(a) == 1) { PyObject *elem = a->ob_item[0]; - _Py_RefcntAdd(elem, n); - PyObject **dest_end = dest + output_size; + Py_SET_REFCNT(elem, Py_REFCNT(elem) + n); +#ifdef Py_REF_DEBUG + _Py_RefTotal += n; +#endif while (dest < dest_end) { *dest++ = elem; } } else { PyObject **src = a->ob_item; - PyObject **src_end = src + input_size; + PyObject **src_end = src + Py_SIZE(a); while (src < src_end) { - _Py_RefcntAdd(*src, n); + Py_SET_REFCNT(*src, Py_REFCNT(*src) + n); +#ifdef Py_REF_DEBUG + _Py_RefTotal += n; +#endif + *dest++ = *src++; + } + // Now src chases after dest in the same buffer + src = np->ob_item; + while (dest < dest_end) { *dest++ = *src++; } - - _Py_memory_repeat((char *)np->ob_item, sizeof(PyObject *)*output_size, - sizeof(PyObject *)*input_size); } - - Py_SET_SIZE(np, output_size); + Py_SET_SIZE(np, size); return (PyObject *) np; } @@ -737,8 +743,12 @@ PyList_SetSlice(PyObject *a, Py_ssize_t ilow, Py_ssize_t ihigh, PyObject *v) static PyObject * list_inplace_repeat(PyListObject *self, Py_ssize_t n) { - Py_ssize_t input_size = PyList_GET_SIZE(self); - if (input_size == 0 || n == 1) { + PyObject **items; + Py_ssize_t size, i, j, p; + + + size = PyList_GET_SIZE(self); + if (size == 0 || n == 1) { Py_INCREF(self); return (PyObject *)self; } @@ -749,21 +759,22 @@ list_inplace_repeat(PyListObject *self, Py_ssize_t n) return (PyObject *)self; } - if (input_size > PY_SSIZE_T_MAX / n) { + if (size > PY_SSIZE_T_MAX / n) { return PyErr_NoMemory(); } - Py_ssize_t output_size = input_size * n; - if (list_resize(self, output_size) < 0) + if (list_resize(self, size*n) < 0) return NULL; - PyObject **items = self->ob_item; - for (Py_ssize_t j = 0; j < input_size; j++) { - _Py_RefcntAdd(items[j], n-1); + p = size; + items = self->ob_item; + for (i = 1; i < n; i++) { /* Start counting at 1, not 0 */ + for (j = 0; j < size; j++) { + PyObject *o = items[j]; + Py_INCREF(o); + items[p++] = o; + } } - _Py_memory_repeat((char *)items, sizeof(PyObject *)*output_size, - sizeof(PyObject *)*input_size); - Py_INCREF(self); return (PyObject *)self; } @@ -1215,6 +1226,13 @@ struct s_MergeState { * of tuples. It may be set to safe_object_compare, but the idea is that hopefully * we can assume more, and use one of the special-case compares. */ int (*tuple_elem_compare)(PyObject *, PyObject *, MergeState *); + + /* Used by unsafe_tuple_compare to record whether the very first tuple + * elements resolved the last comparison attempt. If so, next time a + * method that may avoid PyObject_RichCompareBool() entirely is tried. + * 0 for false, 1 for true. + */ + int first_tuple_items_resolved_it; }; /* binarysort is the best method for sorting small arrays: it does @@ -2187,7 +2205,24 @@ unsafe_float_compare(PyObject *v, PyObject *w, MergeState *ms) * using the same pre-sort check as we use for ms->key_compare, * but run on the list [x[0] for x in L]. This allows us to optimize compares * on two levels (as long as [x[0] for x in L] is type-homogeneous.) The idea is - * that most tuple compares don't involve x[1:]. */ + * that most tuple compares don't involve x[1:]. + * However, that may not be right. When it is right, we can win by calling the + * relatively cheap ms->tuple_elem_compare on the first pair of elements, to + * see whether v[0] < w[0] or w[0] < v[0]. If either are so, we're done. + * Else we proceed as in the tuple compare, comparing the remaining pairs via + * the probably more expensive PyObject_RichCompareBool(..., Py_EQ) until (if + * ever) that says "no, not equal!". Then, if we're still on the first pair, + * ms->tuple_elem_compare can resolve it, else PyObject_RichCompareBool(..., + * Py_LT) finishes the job. + * In any case, ms->first_tuple_items_resolved_it keeps track of whether the + * most recent tuple comparison was resolved by the first pair. If so, the + * next attempt starts by trying the cheap tests on the first pair again, else + * PyObject_RichCompareBool(..., Py_EQ) is used from the start. + * There are cases where PyObject_RichCompareBool(..., Py_EQ) is much cheaper! + * For example, that can return "almost immediately" if passed the same + * object twice (it special-cases object identity for Py_EQ), which can, + * potentially, be unboundedly faster than ms->tuple_elem_compare. + */ static int unsafe_tuple_compare(PyObject *v, PyObject *w, MergeState *ms) { @@ -2203,26 +2238,52 @@ unsafe_tuple_compare(PyObject *v, PyObject *w, MergeState *ms) vt = (PyTupleObject *)v; wt = (PyTupleObject *)w; + i = 0; + if (ms->first_tuple_items_resolved_it) { + /* See whether fast compares of the first elements settle it. */ + k = ms->tuple_elem_compare(vt->ob_item[0], wt->ob_item[0], ms); + if (k) /* error, or v < w */ + return k; + k = ms->tuple_elem_compare(wt->ob_item[0], vt->ob_item[0], ms); + if (k > 0) /* w < v */ + return 0; + if (k < 0) /* error */ + return -1; + /* We have + * not (v[0] < w[0]) and not (w[0] < v[0]) + * which implies, for a total order, that the first elements are + * equal. So skip them in the loop. + */ + i = 1; + ms->first_tuple_items_resolved_it = 0; + } + /* Now first_tuple_items_resolved_it was 0 on entry, or was forced to 0 + * at the end of the `if` block just above. + */ + assert(! ms->first_tuple_items_resolved_it); vlen = Py_SIZE(vt); wlen = Py_SIZE(wt); - - for (i = 0; i < vlen && i < wlen; i++) { + for (; i < vlen && i < wlen; i++) { k = PyObject_RichCompareBool(vt->ob_item[i], wt->ob_item[i], Py_EQ); + if (!k) { /* not equal */ + if (i) { + return PyObject_RichCompareBool(vt->ob_item[i], wt->ob_item[i], + Py_LT); + } + else { + ms->first_tuple_items_resolved_it = 1; + return ms->tuple_elem_compare(vt->ob_item[0], wt->ob_item[0], + ms); + } + } if (k < 0) return -1; - if (!k) - break; } + /* all equal until we fell off the end */ + return vlen < wlen; - if (i >= vlen || i >= wlen) - return vlen < wlen; - - if (i == 0) - return ms->tuple_elem_compare(vt->ob_item[i], wt->ob_item[i], ms); - else - return PyObject_RichCompareBool(vt->ob_item[i], wt->ob_item[i], Py_LT); -} + } /* An adaptive, stable, natural mergesort. See listsort.txt. * Returns Py_None on success, NULL on error. Even in case of error, the @@ -2405,6 +2466,7 @@ list_sort_impl(PyListObject *self, PyObject *keyfunc, int reverse) } ms.key_compare = unsafe_tuple_compare; + ms.first_tuple_items_resolved_it = 1; /* be optimistic */ } } /* End of pre-sort check: ms is now set properly! */ @@ -2824,8 +2886,7 @@ static PyObject *list_iter(PyObject *seq); static PyObject *list_subscript(PyListObject*, PyObject*); static PyMethodDef list_methods[] = { - {"__getitem__", (PyCFunction)list_subscript, METH_O|METH_COEXIST, - PyDoc_STR("__getitem__($self, index, /)\n--\n\nReturn self[index].")}, + {"__getitem__", (PyCFunction)list_subscript, METH_O|METH_COEXIST, "x.__getitem__(y) <==> x[y]"}, LIST___REVERSED___METHODDEF LIST___SIZEOF___METHODDEF LIST_CLEAR_METHODDEF @@ -3127,13 +3188,19 @@ PyTypeObject PyList_Type = { /*********************** List Iterator **************************/ -static void listiter_dealloc(_PyListIterObject *); -static int listiter_traverse(_PyListIterObject *, visitproc, void *); -static PyObject *listiter_next(_PyListIterObject *); -static PyObject *listiter_len(_PyListIterObject *, PyObject *); +typedef struct { + PyObject_HEAD + Py_ssize_t it_index; + PyListObject *it_seq; /* Set to NULL when iterator is exhausted */ +} listiterobject; + +static void listiter_dealloc(listiterobject *); +static int listiter_traverse(listiterobject *, visitproc, void *); +static PyObject *listiter_next(listiterobject *); +static PyObject *listiter_len(listiterobject *, PyObject *); static PyObject *listiter_reduce_general(void *_it, int forward); -static PyObject *listiter_reduce(_PyListIterObject *, PyObject *); -static PyObject *listiter_setstate(_PyListIterObject *, PyObject *state); +static PyObject *listiter_reduce(listiterobject *, PyObject *); +static PyObject *listiter_setstate(listiterobject *, PyObject *state); PyDoc_STRVAR(length_hint_doc, "Private method returning an estimate of len(list(it))."); PyDoc_STRVAR(reduce_doc, "Return state information for pickling."); @@ -3149,7 +3216,7 @@ static PyMethodDef listiter_methods[] = { PyTypeObject PyListIter_Type = { PyVarObject_HEAD_INIT(&PyType_Type, 0) "list_iterator", /* tp_name */ - sizeof(_PyListIterObject), /* tp_basicsize */ + sizeof(listiterobject), /* tp_basicsize */ 0, /* tp_itemsize */ /* methods */ (destructor)listiter_dealloc, /* tp_dealloc */ @@ -3183,13 +3250,13 @@ PyTypeObject PyListIter_Type = { static PyObject * list_iter(PyObject *seq) { - _PyListIterObject *it; + listiterobject *it; if (!PyList_Check(seq)) { PyErr_BadInternalCall(); return NULL; } - it = PyObject_GC_New(_PyListIterObject, &PyListIter_Type); + it = PyObject_GC_New(listiterobject, &PyListIter_Type); if (it == NULL) return NULL; it->it_index = 0; @@ -3200,7 +3267,7 @@ list_iter(PyObject *seq) } static void -listiter_dealloc(_PyListIterObject *it) +listiter_dealloc(listiterobject *it) { _PyObject_GC_UNTRACK(it); Py_XDECREF(it->it_seq); @@ -3208,14 +3275,14 @@ listiter_dealloc(_PyListIterObject *it) } static int -listiter_traverse(_PyListIterObject *it, visitproc visit, void *arg) +listiter_traverse(listiterobject *it, visitproc visit, void *arg) { Py_VISIT(it->it_seq); return 0; } static PyObject * -listiter_next(_PyListIterObject *it) +listiter_next(listiterobject *it) { PyListObject *seq; PyObject *item; @@ -3239,7 +3306,7 @@ listiter_next(_PyListIterObject *it) } static PyObject * -listiter_len(_PyListIterObject *it, PyObject *Py_UNUSED(ignored)) +listiter_len(listiterobject *it, PyObject *Py_UNUSED(ignored)) { Py_ssize_t len; if (it->it_seq) { @@ -3251,13 +3318,13 @@ listiter_len(_PyListIterObject *it, PyObject *Py_UNUSED(ignored)) } static PyObject * -listiter_reduce(_PyListIterObject *it, PyObject *Py_UNUSED(ignored)) +listiter_reduce(listiterobject *it, PyObject *Py_UNUSED(ignored)) { return listiter_reduce_general(it, 1); } static PyObject * -listiter_setstate(_PyListIterObject *it, PyObject *state) +listiter_setstate(listiterobject *it, PyObject *state) { Py_ssize_t index = PyLong_AsSsize_t(state); if (index == -1 && PyErr_Occurred()) @@ -3432,7 +3499,7 @@ listiter_reduce_general(void *_it, int forward) /* the objects are not the same, index is of different types! */ if (forward) { - _PyListIterObject *it = (_PyListIterObject *)_it; + listiterobject *it = (listiterobject *)_it; if (it->it_seq) { return Py_BuildValue("N(O)n", _PyEval_GetBuiltin(&_Py_ID(iter)), it->it_seq, it->it_index); diff --git a/Objects/longobject.c b/Objects/longobject.c index c0bade18221843..14d5954f84849e 100644 --- a/Objects/longobject.c +++ b/Objects/longobject.c @@ -36,9 +36,6 @@ medium_value(PyLongObject *x) #define IS_SMALL_INT(ival) (-_PY_NSMALLNEGINTS <= (ival) && (ival) < _PY_NSMALLPOSINTS) #define IS_SMALL_UINT(ival) ((ival) < _PY_NSMALLPOSINTS) -#define _MAX_STR_DIGITS_ERROR_FMT_TO_INT "Exceeds the limit (%d) for integer string conversion: value has %zd digits; use sys.set_int_max_str_digits() to increase the limit" -#define _MAX_STR_DIGITS_ERROR_FMT_TO_STR "Exceeds the limit (%d) for integer string conversion; use sys.set_int_max_str_digits() to increase the limit" - static inline void _Py_DECREF_INT(PyLongObject *op) { @@ -265,38 +262,6 @@ _PyLong_FromSTwoDigits(stwodigits x) return _PyLong_FromLarge(x); } -int -_PyLong_AssignValue(PyObject **target, Py_ssize_t value) -{ - PyObject *old = *target; - if (IS_SMALL_INT(value)) { - *target = get_small_int(Py_SAFE_DOWNCAST(value, Py_ssize_t, sdigit)); - Py_XDECREF(old); - return 0; - } - else if (old != NULL && PyLong_CheckExact(old) && - Py_REFCNT(old) == 1 && Py_SIZE(old) == 1 && - (size_t)value <= PyLong_MASK) - { - // Mutate in place if there are no other references the old - // object. This avoids an allocation in a common case. - // Since the primary use-case is iterating over ranges, which - // are typically positive, only do this optimization - // for positive integers (for now). - ((PyLongObject *)old)->ob_digit[0] = - Py_SAFE_DOWNCAST(value, Py_ssize_t, digit); - return 0; - } - else { - *target = PyLong_FromSsize_t(value); - Py_XDECREF(old); - if (*target == NULL) { - return -1; - } - return 0; - } -} - /* If a freshly-allocated int is already shared, it must be a small integer, so negating it must go to PyLong_FromLong */ Py_LOCAL_INLINE(void) @@ -1759,23 +1724,6 @@ long_to_decimal_string_internal(PyObject *aa, size_a = Py_ABS(Py_SIZE(a)); negative = Py_SIZE(a) < 0; - /* quick and dirty pre-check for overflowing the decimal digit limit, - based on the inequality 10/3 >= log2(10) - - explanation in https://github.com/python/cpython/pull/96537 - */ - if (size_a >= 10 * _PY_LONG_MAX_STR_DIGITS_THRESHOLD - / (3 * PyLong_SHIFT) + 2) { - PyInterpreterState *interp = _PyInterpreterState_GET(); - int max_str_digits = interp->int_max_str_digits; - if ((max_str_digits > 0) && - (max_str_digits / (3 * PyLong_SHIFT) <= (size_a - 11) / 10)) { - PyErr_Format(PyExc_ValueError, _MAX_STR_DIGITS_ERROR_FMT_TO_STR, - max_str_digits); - return -1; - } - } - /* quick and dirty upper bound for the number of digits required to express a in base _PyLong_DECIMAL_BASE: @@ -1835,17 +1783,6 @@ long_to_decimal_string_internal(PyObject *aa, tenpow *= 10; strlen++; } - if (strlen > _PY_LONG_MAX_STR_DIGITS_THRESHOLD) { - PyInterpreterState *interp = _PyInterpreterState_GET(); - int max_str_digits = interp->int_max_str_digits; - Py_ssize_t strlen_nosign = strlen - negative; - if ((max_str_digits > 0) && (strlen_nosign > max_str_digits)) { - Py_DECREF(scratch); - PyErr_Format(PyExc_ValueError, _MAX_STR_DIGITS_ERROR_FMT_TO_STR, - max_str_digits); - return -1; - } - } if (writer) { if (_PyUnicodeWriter_Prepare(writer, strlen, '9') == -1) { Py_DECREF(scratch); @@ -2359,7 +2296,6 @@ PyLong_FromString(const char *str, char **pend, int base) start = str; if ((base & (base - 1)) == 0) { - /* binary bases are not limited by int_max_str_digits */ int res = long_from_binary_base(&str, base, &z); if (res < 0) { /* Syntax error. */ @@ -2511,17 +2447,6 @@ digit beyond the first. goto onError; } - /* Limit the size to avoid excessive computation attacks. */ - if (digits > _PY_LONG_MAX_STR_DIGITS_THRESHOLD) { - PyInterpreterState *interp = _PyInterpreterState_GET(); - int max_str_digits = interp->int_max_str_digits; - if ((max_str_digits > 0) && (digits > max_str_digits)) { - PyErr_Format(PyExc_ValueError, _MAX_STR_DIGITS_ERROR_FMT_TO_INT, - max_str_digits, digits); - return NULL; - } - } - /* Create an int object that can contain the largest possible * integer with this base and length. Note that there's no * need to initialize z->ob_digit -- no slot is read up before @@ -5398,7 +5323,6 @@ long_new_impl(PyTypeObject *type, PyObject *x, PyObject *obase) } return PyLong_FromLong(0L); } - /* default base and limit, forward to standard implementation */ if (obase == NULL) return PyNumber_Long(x); @@ -6134,8 +6058,6 @@ internal representation of integers. The attributes are read only."); static PyStructSequence_Field int_info_fields[] = { {"bits_per_digit", "size of a digit in bits"}, {"sizeof_digit", "size in bytes of the C type used to represent a digit"}, - {"default_max_str_digits", "maximum string conversion digits limitation"}, - {"str_digits_check_threshold", "minimum positive value for int_max_str_digits"}, {NULL, NULL} }; @@ -6143,7 +6065,7 @@ static PyStructSequence_Desc int_info_desc = { "sys.int_info", /* name */ int_info__doc__, /* doc */ int_info_fields, /* fields */ - 4 /* number of fields */ + 2 /* number of fields */ }; PyObject * @@ -6158,17 +6080,6 @@ PyLong_GetInfo(void) PyLong_FromLong(PyLong_SHIFT)); PyStructSequence_SET_ITEM(int_info, field++, PyLong_FromLong(sizeof(digit))); - /* - * The following two fields were added after investigating uses of - * sys.int_info in the wild: Exceedingly rarely used. The ONLY use found was - * numba using sys.int_info.bits_per_digit as attribute access rather than - * sequence unpacking. Cython and sympy also refer to sys.int_info but only - * as info for debugging. No concern about adding these in a backport. - */ - PyStructSequence_SET_ITEM(int_info, field++, - PyLong_FromLong(_PY_LONG_DEFAULT_MAX_STR_DIGITS)); - PyStructSequence_SET_ITEM(int_info, field++, - PyLong_FromLong(_PY_LONG_MAX_STR_DIGITS_THRESHOLD)); if (PyErr_Occurred()) { Py_CLEAR(int_info); return NULL; @@ -6192,14 +6103,10 @@ _PyLong_InitTypes(PyInterpreterState *interp) /* initialize int_info */ if (Int_InfoType.tp_name == NULL) { - if (_PyStructSequence_InitBuiltin(&Int_InfoType, &int_info_desc) < 0) { + if (PyStructSequence_InitType2(&Int_InfoType, &int_info_desc) < 0) { return _PyStatus_ERR("can't init int info type"); } } - interp->int_max_str_digits = _Py_global_config_int_max_str_digits; - if (interp->int_max_str_digits == -1) { - interp->int_max_str_digits = _PY_LONG_DEFAULT_MAX_STR_DIGITS; - } return _PyStatus_OK(); } diff --git a/Objects/memoryobject.c b/Objects/memoryobject.c index c5ab0bf2dedbe4..8c269168824471 100644 --- a/Objects/memoryobject.c +++ b/Objects/memoryobject.c @@ -193,11 +193,6 @@ PyTypeObject _PyManagedBuffer_Type = { return -1; \ } -/* See gh-92888. These macros signal that we need to check the memoryview - again due to possible read after frees. */ -#define CHECK_RELEASED_AGAIN(mv) CHECK_RELEASED(mv) -#define CHECK_RELEASED_INT_AGAIN(mv) CHECK_RELEASED_INT(mv) - #define CHECK_LIST_OR_TUPLE(v) \ if (!PyList_Check(v) && !PyTuple_Check(v)) { \ PyErr_SetString(PyExc_TypeError, \ @@ -386,9 +381,8 @@ copy_rec(const Py_ssize_t *shape, Py_ssize_t ndim, Py_ssize_t itemsize, /* Faster copying of one-dimensional arrays. */ static int -copy_single(PyMemoryViewObject *self, const Py_buffer *dest, const Py_buffer *src) +copy_single(const Py_buffer *dest, const Py_buffer *src) { - CHECK_RELEASED_INT_AGAIN(self); char *mem = NULL; assert(dest->ndim == 1); @@ -1135,7 +1129,6 @@ get_native_fmtchar(char *result, const char *fmt) case 'n': case 'N': size = sizeof(Py_ssize_t); break; case 'f': size = sizeof(float); break; case 'd': size = sizeof(double); break; - case 'e': size = sizeof(float) / 2; break; case '?': size = sizeof(_Bool); break; case 'P': size = sizeof(void *); break; } @@ -1179,7 +1172,6 @@ get_native_fmtstr(const char *fmt) case 'N': RETURN("N"); case 'f': RETURN("f"); case 'd': RETURN("d"); - case 'e': RETURN("e"); case '?': RETURN("?"); case 'P': RETURN("P"); } @@ -1685,7 +1677,7 @@ pylong_as_zu(PyObject *item) module syntax. This function is very sensitive to small changes. With this layout gcc automatically generates a fast jump table. */ static inline PyObject * -unpack_single(PyMemoryViewObject *self, const char *ptr, const char *fmt) +unpack_single(const char *ptr, const char *fmt) { unsigned long long llu; unsigned long lu; @@ -1697,14 +1689,6 @@ unpack_single(PyMemoryViewObject *self, const char *ptr, const char *fmt) unsigned char uc; void *p; - CHECK_RELEASED_AGAIN(self); - -#if PY_LITTLE_ENDIAN - int endian = 1; -#else - int endian = 0; -#endif - switch (fmt[0]) { /* signed integers and fast path for 'B' */ @@ -1733,7 +1717,6 @@ unpack_single(PyMemoryViewObject *self, const char *ptr, const char *fmt) /* floats */ case 'f': UNPACK_SINGLE(d, ptr, float); goto convert_double; case 'd': UNPACK_SINGLE(d, ptr, double); goto convert_double; - case 'e': d = PyFloat_Unpack2(ptr, endian); goto convert_double; /* bytes object */ case 'c': goto convert_bytes; @@ -1784,7 +1767,7 @@ unpack_single(PyMemoryViewObject *self, const char *ptr, const char *fmt) /* Pack a single item. 'fmt' can be any native format character in struct module syntax. */ static int -pack_single(PyMemoryViewObject *self, char *ptr, PyObject *item, const char *fmt) +pack_single(char *ptr, PyObject *item, const char *fmt) { unsigned long long llu; unsigned long lu; @@ -1795,18 +1778,12 @@ pack_single(PyMemoryViewObject *self, char *ptr, PyObject *item, const char *fmt double d; void *p; -#if PY_LITTLE_ENDIAN - int endian = 1; -#else - int endian = 0; -#endif switch (fmt[0]) { /* signed integers */ case 'b': case 'h': case 'i': case 'l': ld = pylong_as_ld(item); if (ld == -1 && PyErr_Occurred()) goto err_occurred; - CHECK_RELEASED_INT_AGAIN(self); switch (fmt[0]) { case 'b': if (ld < SCHAR_MIN || ld > SCHAR_MAX) goto err_range; @@ -1827,7 +1804,6 @@ pack_single(PyMemoryViewObject *self, char *ptr, PyObject *item, const char *fmt lu = pylong_as_lu(item); if (lu == (unsigned long)-1 && PyErr_Occurred()) goto err_occurred; - CHECK_RELEASED_INT_AGAIN(self); switch (fmt[0]) { case 'B': if (lu > UCHAR_MAX) goto err_range; @@ -1848,14 +1824,12 @@ pack_single(PyMemoryViewObject *self, char *ptr, PyObject *item, const char *fmt lld = pylong_as_lld(item); if (lld == -1 && PyErr_Occurred()) goto err_occurred; - CHECK_RELEASED_INT_AGAIN(self); PACK_SINGLE(ptr, lld, long long); break; case 'Q': llu = pylong_as_llu(item); if (llu == (unsigned long long)-1 && PyErr_Occurred()) goto err_occurred; - CHECK_RELEASED_INT_AGAIN(self); PACK_SINGLE(ptr, llu, unsigned long long); break; @@ -1864,33 +1838,25 @@ pack_single(PyMemoryViewObject *self, char *ptr, PyObject *item, const char *fmt zd = pylong_as_zd(item); if (zd == -1 && PyErr_Occurred()) goto err_occurred; - CHECK_RELEASED_INT_AGAIN(self); PACK_SINGLE(ptr, zd, Py_ssize_t); break; case 'N': zu = pylong_as_zu(item); if (zu == (size_t)-1 && PyErr_Occurred()) goto err_occurred; - CHECK_RELEASED_INT_AGAIN(self); PACK_SINGLE(ptr, zu, size_t); break; /* floats */ - case 'f': case 'd': case 'e': + case 'f': case 'd': d = PyFloat_AsDouble(item); if (d == -1.0 && PyErr_Occurred()) goto err_occurred; - CHECK_RELEASED_INT_AGAIN(self); if (fmt[0] == 'f') { PACK_SINGLE(ptr, d, float); } - else if (fmt[0] == 'd') { - PACK_SINGLE(ptr, d, double); - } else { - if (PyFloat_Pack2(d, ptr, endian) < 0) { - goto err_occurred; - } + PACK_SINGLE(ptr, d, double); } break; @@ -1899,9 +1865,8 @@ pack_single(PyMemoryViewObject *self, char *ptr, PyObject *item, const char *fmt ld = PyObject_IsTrue(item); if (ld < 0) return -1; /* preserve original error */ - CHECK_RELEASED_INT_AGAIN(self); PACK_SINGLE(ptr, ld, _Bool); - break; + break; /* bytes object */ case 'c': @@ -1917,7 +1882,6 @@ pack_single(PyMemoryViewObject *self, char *ptr, PyObject *item, const char *fmt p = PyLong_AsVoidPtr(item); if (p == NULL && PyErr_Occurred()) goto err_occurred; - CHECK_RELEASED_INT_AGAIN(self); PACK_SINGLE(ptr, p, void *); break; @@ -1986,12 +1950,18 @@ unpacker_free(struct unpacker *x) static struct unpacker * struct_get_unpacker(const char *fmt, Py_ssize_t itemsize) { - PyObject *Struct = NULL; /* XXX cache it in globals? */ + PyObject *structmodule; /* XXX cache these two */ + PyObject *Struct = NULL; /* XXX in globals? */ PyObject *structobj = NULL; PyObject *format = NULL; struct unpacker *x = NULL; - Struct = _PyImport_GetModuleAttrString("struct", "Struct"); + structmodule = PyImport_ImportModule("struct"); + if (structmodule == NULL) + return NULL; + + Struct = PyObject_GetAttrString(structmodule, "Struct"); + Py_DECREF(structmodule); if (Struct == NULL) return NULL; @@ -2078,7 +2048,7 @@ adjust_fmt(const Py_buffer *view) /* Base case for multi-dimensional unpacking. Assumption: ndim == 1. */ static PyObject * -tolist_base(PyMemoryViewObject *self, const char *ptr, const Py_ssize_t *shape, +tolist_base(const char *ptr, const Py_ssize_t *shape, const Py_ssize_t *strides, const Py_ssize_t *suboffsets, const char *fmt) { @@ -2091,7 +2061,7 @@ tolist_base(PyMemoryViewObject *self, const char *ptr, const Py_ssize_t *shape, for (i = 0; i < shape[0]; ptr+=strides[0], i++) { const char *xptr = ADJUST_PTR(ptr, suboffsets, 0); - item = unpack_single(self, xptr, fmt); + item = unpack_single(xptr, fmt); if (item == NULL) { Py_DECREF(lst); return NULL; @@ -2105,7 +2075,7 @@ tolist_base(PyMemoryViewObject *self, const char *ptr, const Py_ssize_t *shape, /* Unpack a multi-dimensional array into a nested list. Assumption: ndim >= 1. */ static PyObject * -tolist_rec(PyMemoryViewObject *self, const char *ptr, Py_ssize_t ndim, const Py_ssize_t *shape, +tolist_rec(const char *ptr, Py_ssize_t ndim, const Py_ssize_t *shape, const Py_ssize_t *strides, const Py_ssize_t *suboffsets, const char *fmt) { @@ -2117,7 +2087,7 @@ tolist_rec(PyMemoryViewObject *self, const char *ptr, Py_ssize_t ndim, const Py_ assert(strides != NULL); if (ndim == 1) - return tolist_base(self, ptr, shape, strides, suboffsets, fmt); + return tolist_base(ptr, shape, strides, suboffsets, fmt); lst = PyList_New(shape[0]); if (lst == NULL) @@ -2125,7 +2095,7 @@ tolist_rec(PyMemoryViewObject *self, const char *ptr, Py_ssize_t ndim, const Py_ for (i = 0; i < shape[0]; ptr+=strides[0], i++) { const char *xptr = ADJUST_PTR(ptr, suboffsets, 0); - item = tolist_rec(self, xptr, ndim-1, shape+1, + item = tolist_rec(xptr, ndim-1, shape+1, strides+1, suboffsets ? suboffsets+1 : NULL, fmt); if (item == NULL) { @@ -2159,15 +2129,15 @@ memoryview_tolist_impl(PyMemoryViewObject *self) if (fmt == NULL) return NULL; if (view->ndim == 0) { - return unpack_single(self, view->buf, fmt); + return unpack_single(view->buf, fmt); } else if (view->ndim == 1) { - return tolist_base(self, view->buf, view->shape, + return tolist_base(view->buf, view->shape, view->strides, view->suboffsets, fmt); } else { - return tolist_rec(self, view->buf, view->ndim, view->shape, + return tolist_rec(view->buf, view->ndim, view->shape, view->strides, view->suboffsets, fmt); } @@ -2375,7 +2345,7 @@ memory_item(PyMemoryViewObject *self, Py_ssize_t index) char *ptr = ptr_from_index(view, index); if (ptr == NULL) return NULL; - return unpack_single(self, ptr, fmt); + return unpack_single(ptr, fmt); } PyErr_SetString(PyExc_NotImplementedError, @@ -2406,7 +2376,7 @@ memory_item_multi(PyMemoryViewObject *self, PyObject *tup) ptr = ptr_from_tuple(view, tup); if (ptr == NULL) return NULL; - return unpack_single(self, ptr, fmt); + return unpack_single(ptr, fmt); } static inline int @@ -2493,7 +2463,7 @@ memory_subscript(PyMemoryViewObject *self, PyObject *key) const char *fmt = adjust_fmt(view); if (fmt == NULL) return NULL; - return unpack_single(self, view->buf, fmt); + return unpack_single(view->buf, fmt); } else if (key == Py_Ellipsis) { Py_INCREF(self); @@ -2568,7 +2538,7 @@ memory_ass_sub(PyMemoryViewObject *self, PyObject *key, PyObject *value) if (key == Py_Ellipsis || (PyTuple_Check(key) && PyTuple_GET_SIZE(key)==0)) { ptr = (char *)view->buf; - return pack_single(self, ptr, value, fmt); + return pack_single(ptr, value, fmt); } else { PyErr_SetString(PyExc_TypeError, @@ -2590,7 +2560,7 @@ memory_ass_sub(PyMemoryViewObject *self, PyObject *key, PyObject *value) ptr = ptr_from_index(view, index); if (ptr == NULL) return -1; - return pack_single(self, ptr, value, fmt); + return pack_single(ptr, value, fmt); } /* one-dimensional: fast path */ if (PySlice_Check(key) && view->ndim == 1) { @@ -2613,7 +2583,7 @@ memory_ass_sub(PyMemoryViewObject *self, PyObject *key, PyObject *value) goto end_block; dest.len = dest.shape[0] * dest.itemsize; - ret = copy_single(self, &dest, &src); + ret = copy_single(&dest, &src); end_block: PyBuffer_Release(&src); @@ -2629,7 +2599,7 @@ memory_ass_sub(PyMemoryViewObject *self, PyObject *key, PyObject *value) ptr = ptr_from_tuple(view, key); if (ptr == NULL) return -1; - return pack_single(self, ptr, value, fmt); + return pack_single(ptr, value, fmt); } if (PySlice_Check(key) || is_multislice(key)) { /* Call memory_subscript() to produce a sliced lvalue, then copy @@ -2767,17 +2737,6 @@ unpack_cmp(const char *p, const char *q, char fmt, /* XXX DBL_EPSILON? */ case 'f': CMP_SINGLE(p, q, float); return equal; case 'd': CMP_SINGLE(p, q, double); return equal; - case 'e': { -#if PY_LITTLE_ENDIAN - int endian = 1; -#else - int endian = 0; -#endif - /* Note: PyFloat_Unpack2 should never fail */ - double u = PyFloat_Unpack2(p, endian); - double v = PyFloat_Unpack2(q, endian); - return (u == v); - } /* bytes object */ case 'c': return *p == *q; @@ -3241,7 +3200,7 @@ memoryiter_next(memoryiterobject *it) if (ptr == NULL) { return NULL; } - return unpack_single(seq, ptr, it->it_fmt); + return unpack_single(ptr, it->it_fmt); } it->it_seq = NULL; diff --git a/Objects/object.c b/Objects/object.c index 26cdcef59dddbd..49b1cba89b1d6f 100644 --- a/Objects/object.c +++ b/Objects/object.c @@ -14,7 +14,9 @@ #include "pycore_pymem.h" // _PyMem_IsPtrFreed() #include "pycore_pystate.h" // _PyThreadState_GET() #include "pycore_symtable.h" // PySTEntry_Type +#include "pycore_typeobject.h" // _PyTypes_InitSlotDefs() #include "pycore_unionobject.h" // _PyUnion_Type +#include "frameobject.h" // PyFrame_Type #include "pycore_interpreteridobject.h" // _PyInterpreterID_Type #ifdef Py_LIMITED_API @@ -1053,17 +1055,18 @@ PyObject_SetAttr(PyObject *v, PyObject *name, PyObject *value) } PyObject ** -_PyObject_ComputedDictPointer(PyObject *obj) +_PyObject_DictPointer(PyObject *obj) { Py_ssize_t dictoffset; PyTypeObject *tp = Py_TYPE(obj); - assert((tp->tp_flags & Py_TPFLAGS_MANAGED_DICT) == 0); + if (tp->tp_flags & Py_TPFLAGS_MANAGED_DICT) { + return _PyObject_ManagedDictPointer(obj); + } dictoffset = tp->tp_dictoffset; if (dictoffset == 0) return NULL; if (dictoffset < 0) { - assert(dictoffset != -1); Py_ssize_t tsize = Py_SIZE(obj); if (tsize < 0) { tsize = -tsize; @@ -1079,27 +1082,27 @@ _PyObject_ComputedDictPointer(PyObject *obj) /* Helper to get a pointer to an object's __dict__ slot, if any. * Creates the dict from inline attributes if necessary. - * Does not set an exception. - * - * Note that the tp_dictoffset docs used to recommend this function, - * so it should be treated as part of the public API. - */ + * Does not set an exception. */ PyObject ** _PyObject_GetDictPtr(PyObject *obj) { if ((Py_TYPE(obj)->tp_flags & Py_TPFLAGS_MANAGED_DICT) == 0) { - return _PyObject_ComputedDictPointer(obj); + return _PyObject_DictPointer(obj); } - PyDictOrValues *dorv_ptr = _PyObject_DictOrValuesPointer(obj); - if (_PyDictOrValues_IsValues(*dorv_ptr)) { - PyObject *dict = _PyObject_MakeDictFromInstanceAttributes(obj, _PyDictOrValues_GetValues(*dorv_ptr)); - if (dict == NULL) { - PyErr_Clear(); - return NULL; - } - dorv_ptr->dict = dict; + PyObject **dict_ptr = _PyObject_ManagedDictPointer(obj); + PyDictValues **values_ptr = _PyObject_ValuesPointer(obj); + if (*values_ptr == NULL) { + return dict_ptr; + } + assert(*dict_ptr == NULL); + PyObject *dict = _PyObject_MakeDictFromInstanceAttributes(obj, *values_ptr); + if (dict == NULL) { + PyErr_Clear(); + return NULL; } - return &dorv_ptr->dict; + *values_ptr = NULL; + *dict_ptr = dict; + return dict_ptr; } PyObject * @@ -1168,46 +1171,36 @@ _PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method) } } } - PyObject *dict; - if ((tp->tp_flags & Py_TPFLAGS_MANAGED_DICT)) { - PyDictOrValues* dorv_ptr = _PyObject_DictOrValuesPointer(obj); - if (_PyDictOrValues_IsValues(*dorv_ptr)) { - PyDictValues *values = _PyDictOrValues_GetValues(*dorv_ptr); - PyObject *attr = _PyObject_GetInstanceAttribute(obj, values, name); + PyDictValues *values; + if ((tp->tp_flags & Py_TPFLAGS_MANAGED_DICT) && + (values = *_PyObject_ValuesPointer(obj))) + { + assert(*_PyObject_DictPointer(obj) == NULL); + PyObject *attr = _PyObject_GetInstanceAttribute(obj, values, name); + if (attr != NULL) { + *method = attr; + Py_XDECREF(descr); + return 0; + } + } + else { + PyObject **dictptr = _PyObject_DictPointer(obj); + PyObject *dict; + if (dictptr != NULL && (dict = *dictptr) != NULL) { + Py_INCREF(dict); + PyObject *attr = PyDict_GetItemWithError(dict, name); if (attr != NULL) { - *method = attr; + *method = Py_NewRef(attr); + Py_DECREF(dict); Py_XDECREF(descr); return 0; } - dict = NULL; - } - else { - dict = dorv_ptr->dict; - } - } - else { - PyObject **dictptr = _PyObject_ComputedDictPointer(obj); - if (dictptr != NULL) { - dict = *dictptr; - } - else { - dict = NULL; - } - } - if (dict != NULL) { - Py_INCREF(dict); - PyObject *attr = PyDict_GetItemWithError(dict, name); - if (attr != NULL) { - *method = Py_NewRef(attr); Py_DECREF(dict); - Py_XDECREF(descr); - return 0; - } - Py_DECREF(dict); - if (PyErr_Occurred()) { - Py_XDECREF(descr); - return 0; + if (PyErr_Occurred()) { + Py_XDECREF(descr); + return 0; + } } } @@ -1251,6 +1244,7 @@ _PyObject_GenericGetAttrWithDict(PyObject *obj, PyObject *name, PyObject *descr = NULL; PyObject *res = NULL; descrgetfunc f; + PyObject **dictptr; if (!PyUnicode_Check(name)){ PyErr_Format(PyExc_TypeError, @@ -1281,31 +1275,30 @@ _PyObject_GenericGetAttrWithDict(PyObject *obj, PyObject *name, } } if (dict == NULL) { - if ((tp->tp_flags & Py_TPFLAGS_MANAGED_DICT)) { - PyDictOrValues* dorv_ptr = _PyObject_DictOrValuesPointer(obj); - if (_PyDictOrValues_IsValues(*dorv_ptr)) { - PyDictValues *values = _PyDictOrValues_GetValues(*dorv_ptr); - if (PyUnicode_CheckExact(name)) { - res = _PyObject_GetInstanceAttribute(obj, values, name); - if (res != NULL) { - goto done; - } - } - else { - dict = _PyObject_MakeDictFromInstanceAttributes(obj, values); - if (dict == NULL) { - res = NULL; - goto done; - } - dorv_ptr->dict = dict; + if ((tp->tp_flags & Py_TPFLAGS_MANAGED_DICT) && + *_PyObject_ValuesPointer(obj)) + { + PyDictValues **values_ptr = _PyObject_ValuesPointer(obj); + if (PyUnicode_CheckExact(name)) { + assert(*_PyObject_DictPointer(obj) == NULL); + res = _PyObject_GetInstanceAttribute(obj, *values_ptr, name); + if (res != NULL) { + goto done; } } else { - dict = _PyDictOrValues_GetDict(*dorv_ptr); + dictptr = _PyObject_DictPointer(obj); + assert(dictptr != NULL && *dictptr == NULL); + *dictptr = dict = _PyObject_MakeDictFromInstanceAttributes(obj, *values_ptr); + if (dict == NULL) { + res = NULL; + goto done; + } + *values_ptr = NULL; } } else { - PyObject **dictptr = _PyObject_ComputedDictPointer(obj); + dictptr = _PyObject_DictPointer(obj); if (dictptr) { dict = *dictptr; } @@ -1351,8 +1344,6 @@ _PyObject_GenericGetAttrWithDict(PyObject *obj, PyObject *name, PyErr_Format(PyExc_AttributeError, "'%.50s' object has no attribute '%U'", tp->tp_name, name); - - set_attribute_error_context(obj, name); } done: Py_XDECREF(descr); @@ -1399,34 +1390,27 @@ _PyObject_GenericSetAttrWithDict(PyObject *obj, PyObject *name, } if (dict == NULL) { - PyObject **dictptr; - if ((tp->tp_flags & Py_TPFLAGS_MANAGED_DICT)) { - PyDictOrValues *dorv_ptr = _PyObject_DictOrValuesPointer(obj); - if (_PyDictOrValues_IsValues(*dorv_ptr)) { - res = _PyObject_StoreInstanceAttribute( - obj, _PyDictOrValues_GetValues(*dorv_ptr), name, value); - goto error_check; - } - dictptr = &dorv_ptr->dict; + if ((tp->tp_flags & Py_TPFLAGS_MANAGED_DICT) && *_PyObject_ValuesPointer(obj)) { + res = _PyObject_StoreInstanceAttribute(obj, *_PyObject_ValuesPointer(obj), name, value); } else { - dictptr = _PyObject_ComputedDictPointer(obj); - } - if (dictptr == NULL) { - if (descr == NULL) { - PyErr_Format(PyExc_AttributeError, - "'%.100s' object has no attribute '%U'", - tp->tp_name, name); + PyObject **dictptr = _PyObject_DictPointer(obj); + if (dictptr == NULL) { + if (descr == NULL) { + PyErr_Format(PyExc_AttributeError, + "'%.100s' object has no attribute '%U'", + tp->tp_name, name); + } + else { + PyErr_Format(PyExc_AttributeError, + "'%.50s' object attribute '%U' is read-only", + tp->tp_name, name); + } + goto done; } else { - PyErr_Format(PyExc_AttributeError, - "'%.50s' object attribute '%U' is read-only", - tp->tp_name, name); + res = _PyObjectDict_SetItem(tp, dictptr, name, value); } - goto done; - } - else { - res = _PyObjectDict_SetItem(tp, dictptr, name, value); } } else { @@ -1437,7 +1421,6 @@ _PyObject_GenericSetAttrWithDict(PyObject *obj, PyObject *name, res = PyDict_SetItem(dict, name, value); Py_DECREF(dict); } - error_check: if (res < 0 && PyErr_ExceptionMatches(PyExc_KeyError)) { if (PyType_IsSubtype(tp, &PyType_Type)) { PyErr_Format(PyExc_AttributeError, @@ -1469,7 +1452,7 @@ PyObject_GenericSetDict(PyObject *obj, PyObject *value, void *context) PyObject **dictptr = _PyObject_GetDictPtr(obj); if (dictptr == NULL) { if (_PyType_HasFeature(Py_TYPE(obj), Py_TPFLAGS_MANAGED_DICT) && - _PyDictOrValues_IsValues(*_PyObject_DictOrValuesPointer(obj))) + *_PyObject_ValuesPointer(obj) != NULL) { /* Was unable to convert to dict */ PyErr_NoMemory(); @@ -1836,6 +1819,23 @@ PyObject _Py_NotImplementedStruct = { 1, &_PyNotImplemented_Type }; +PyStatus +_PyTypes_InitState(PyInterpreterState *interp) +{ + if (!_Py_IsMainInterpreter(interp)) { + return _PyStatus_OK(); + } + + PyStatus status = _PyTypes_InitSlotDefs(); + if (_PyStatus_EXCEPTION(status)) { + return status; + } + + return _PyStatus_OK(); +} + + + #ifdef MS_WINDOWS extern PyTypeObject PyHKEY_Type; #endif @@ -1976,8 +1976,8 @@ _PyTypes_InitTypes(PyInterpreterState *interp) // All other static types (unless initialized elsewhere) for (size_t i=0; i < Py_ARRAY_LENGTH(static_types); i++) { PyTypeObject *type = static_types[i]; - if (_PyStaticType_InitBuiltin(type) < 0) { - return _PyStatus_ERR("Can't initialize builtin type"); + if (PyType_Ready(type) < 0) { + return _PyStatus_ERR("Can't initialize types"); } if (type == &PyType_Type) { // Sanitify checks of the two most important types diff --git a/Objects/object_layout.md b/Objects/object_layout.md deleted file mode 100644 index 9380b57938c8e3..00000000000000 --- a/Objects/object_layout.md +++ /dev/null @@ -1,82 +0,0 @@ -# Object layout - -## Common header - -Each Python object starts with two fields: - -* ob_refcnt -* ob_type - -which the form the header common to all Python objects, for all versions, -and hold the reference count and class of the object, respectively. - -## Pre-header - -Since the introduction of the cycle GC, there has also been a pre-header. -Before 3.11, this pre-header was two words in size. -It should be considered opaque to all code except the cycle GC. - -## 3.11 pre-header - -In 3.11 the pre-header was extended to include pointers to the VM managed ``__dict__``. -The reason for moving the ``__dict__`` to the pre-header is that it allows -faster access, as it is at a fixed offset, and it also allows object's -dictionaries to be lazily created when the ``__dict__`` attribute is -specifically asked for. - -In the 3.11 the non-GC part of the pre-header consists of two pointers: - -* dict -* values - -The values pointer refers to the ``PyDictValues`` array which holds the -values of the objects's attributes. -Should the dictionary be needed, then ``values`` is set to ``NULL`` -and the ``dict`` field points to the dictionary. - -## 3.12 pre-header - -In 3.12 the the pointer to the list of weak references is added to the -pre-header. In order to make space for it, the ``dict`` and ``values`` -pointers are combined into a single tagged pointer: - -* weakreflist -* dict_or_values - -If the object has no physical dictionary, then the ``dict_or_values`` -has its low bit set to one, and points to the values array. -If the object has a physical dictioanry, then the ``dict_or_values`` -has its low bit set to zero, and points to the dictionary. - -The untagged form is chosen for the dictionary pointer, rather than -the values pointer, to enable the (legacy) C-API function -`_PyObject_GetDictPtr(PyObject *obj)` to work. - - -## Layout of a "normal" Python object in 3.12: - -* weakreflist -* dict_or_values -* GC 1 -* GC 2 -* ob_refcnt -* ob_type - -For a "normal" Python object, that is one that doesn't inherit from a builtin -class or have slots, the header and pre-header form the entire object. - -![Layout of "normal" object in 3.12](./object_layout_312.png) - -There are several advantages to this layout: - -* It allows lazy `__dict__`s, as described above. -* The regular layout allows us to create tailored traversal and deallocation - functions based on layout, rather than inheritance. -* Multiple inheritance works properly, - as the weakrefs and dict are always at the same offset. - -The full layout object, with an opaque part defined by a C extension, -and `__slots__` looks like this: - -![Layout of "full" object in 3.12](./object_layout_full_312.png) - diff --git a/Objects/object_layout_312.gv b/Objects/object_layout_312.gv deleted file mode 100644 index c0068d78568524..00000000000000 --- a/Objects/object_layout_312.gv +++ /dev/null @@ -1,50 +0,0 @@ -digraph ideal { - - rankdir = "LR" - - - object [ - shape = none - label = <<table border="0" cellspacing="0"> - <tr><td><b>object</b></td></tr> - <tr><td port="w" border="1">weakrefs</td></tr> - <tr><td port="dv" border="1">dict or values</td></tr> - <tr><td border="1" >GC info 0</td></tr> - <tr><td border="1" >GC info 1</td></tr> - <tr><td port="r" border="1" >refcount</td></tr> - <tr><td port="h" border="1" >__class__</td></tr> - </table>> - ] - - values [ - shape = none - label = <<table border="0" cellspacing="0"> - <tr><td><b>values</b></td></tr> - <tr><td port="0" border="1">values[0]</td></tr> - <tr><td border="1">values[1]</td></tr> - <tr><td border="1">...</td></tr> - </table>> - - ] - - class [ - shape = none - label = <<table border="0" cellspacing="0"> - <tr><td><b>class</b></td></tr> - <tr><td port="head" bgcolor="lightgreen" border="1">...</td></tr> - <tr><td border="1" bgcolor="lightgreen">dict_offset</td></tr> - <tr><td border="1" bgcolor="lightgreen">...</td></tr> - <tr><td port="k" border="1" bgcolor="lightgreen">cached_keys</td></tr> - </table>> - ] - - keys [label = "dictionary keys"; fillcolor="lightgreen"; style="filled"] - NULL [ label = " NULL"; shape="plain"] - object:w -> NULL - object:h -> class:head - object:dv -> values:0 - class:k -> keys - - oop [ label = "pointer"; shape="plain"] - oop -> object:r -} diff --git a/Objects/object_layout_312.png b/Objects/object_layout_312.png deleted file mode 100644 index 396dab183b3e9b2f39edb49b033a612e66d3a09a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30688 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%0D4>uj@4HG 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 Hp8fM5b4R8? diff --git a/Objects/object_layout_full_312.gv b/Objects/object_layout_full_312.gv deleted file mode 100644 index 522fa32b066504..00000000000000 --- a/Objects/object_layout_full_312.gv +++ /dev/null @@ -1,25 +0,0 @@ -digraph ideal { - - rankdir = "LR" - - - object [ - shape = none - label = <<table border="0" cellspacing="0"> - <tr><td><b>object</b></td></tr> - <tr><td port="w" border="1">weakrefs</td></tr> - <tr><td port="dv" border="1">dict or values</td></tr> - <tr><td border="1" >GC info 0</td></tr> - <tr><td border="1" >GC info 1</td></tr> - <tr><td port="r" border="1" >refcount</td></tr> - <tr><td port="h" border="1" >__class__</td></tr> - <tr><td border="1">opaque (extension) data </td></tr> - <tr><td border="1">...</td></tr> - <tr><td border="1">__slot__ 0</td></tr> - <tr><td border="1">...</td></tr> - </table>> - ] - - oop [ label = "pointer"; shape="plain"] - oop -> object:r -} diff --git a/Objects/object_layout_full_312.png b/Objects/object_layout_full_312.png deleted file mode 100644 index 4f46ca86091d452c52f53dcb102b72e7c0954e41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17092 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%0D-RvO?#w2 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 F{{lUT7J2{x diff --git a/Objects/obmalloc.c b/Objects/obmalloc.c index 1d487d8e807a22..78a6f01a0964ed 100644 --- a/Objects/obmalloc.c +++ b/Objects/obmalloc.c @@ -1446,7 +1446,7 @@ static arena_map_bot_t arena_map_root; /* Return a pointer to a bottom tree node, return NULL if it doesn't exist or * it cannot be created */ -static Py_ALWAYS_INLINE arena_map_bot_t * +static arena_map_bot_t * arena_map_get(block *p, int create) { #ifdef USE_INTERIOR_NODES diff --git a/Objects/perf_trampoline.c b/Objects/perf_trampoline.c deleted file mode 100644 index 161e0ef74cf1da..00000000000000 --- a/Objects/perf_trampoline.c +++ /dev/null @@ -1,531 +0,0 @@ -/* - -Perf trampoline instrumentation -=============================== - -This file contains instrumentation to allow to associate -calls to the CPython eval loop back to the names of the Python -functions and filename being executed. - -Many native performance profilers like the Linux perf tools are -only available to 'see' the C stack when sampling from the profiled -process. This means that if we have the following python code: - - import time - def foo(n): - # Some CPU intensive code - - def bar(n): - foo(n) - - def baz(n): - bar(n) - - baz(10000000) - -A performance profiler that is only able to see native frames will -produce the following backtrace when sampling from foo(): - - _PyEval_EvalFrameDefault -----> Evaluation frame of foo() - _PyEval_Vector - _PyFunction_Vectorcall - PyObject_Vectorcall - call_function - - _PyEval_EvalFrameDefault ------> Evaluation frame of bar() - _PyEval_EvalFrame - _PyEval_Vector - _PyFunction_Vectorcall - PyObject_Vectorcall - call_function - - _PyEval_EvalFrameDefault -------> Evaluation frame of baz() - _PyEval_EvalFrame - _PyEval_Vector - _PyFunction_Vectorcall - PyObject_Vectorcall - call_function - - ... - - Py_RunMain - -Because the profiler is only able to see the native frames and the native -function that runs the evaluation loop is the same (_PyEval_EvalFrameDefault) -then the profiler and any reporter generated by it will not be able to -associate the names of the Python functions and the filenames associated with -those calls, rendering the results useless in the Python world. - -To fix this problem, we introduce the concept of a trampoline frame. A -trampoline frame is a piece of code that is unique per Python code object that -is executed before entering the CPython eval loop. This piece of code just -calls the original Python evaluation function (_PyEval_EvalFrameDefault) and -forwards all the arguments received. In this way, when a profiler samples -frames from the previous example it will see; - - _PyEval_EvalFrameDefault -----> Evaluation frame of foo() - [Jit compiled code 3] - _PyEval_Vector - _PyFunction_Vectorcall - PyObject_Vectorcall - call_function - - _PyEval_EvalFrameDefault ------> Evaluation frame of bar() - [Jit compiled code 2] - _PyEval_EvalFrame - _PyEval_Vector - _PyFunction_Vectorcall - PyObject_Vectorcall - call_function - - _PyEval_EvalFrameDefault -------> Evaluation frame of baz() - [Jit compiled code 1] - _PyEval_EvalFrame - _PyEval_Vector - _PyFunction_Vectorcall - PyObject_Vectorcall - call_function - - ... - - Py_RunMain - -When we generate every unique copy of the trampoline (what here we called "[Jit -compiled code N]") we write the relationship between the compiled code and the -Python function that is associated with it. Every profiler requires this -information in a different format. For example, the Linux "perf" profiler -requires a file in "/tmp/perf-PID.map" (name and location not configurable) -with the following format: - - <compiled code address> <compiled code size> <name of the compiled code> - -If this file is available when "perf" generates reports, it will automatically -associate every trampoline with the Python function that it is associated with -allowing it to generate reports that include Python information. These reports -then can also be filtered in a way that *only* Python information appears. - -Notice that for this to work, there must be a unique copied of the trampoline -per Python code object even if the code in the trampoline is the same. To -achieve this we have a assembly template in Objects/asm_trampiline.S that is -compiled into the Python executable/shared library. This template generates a -symbol that maps the start of the assembly code and another that marks the end -of the assembly code for the trampoline. Then, every time we need a unique -trampoline for a Python code object, we copy the assembly code into a mmaped -area that has executable permissions and we return the start of that area as -our trampoline function. - -Asking for a mmap-ed memory area for trampoline is very wasteful so we -allocate big arenas of memory in a single mmap call, we populate the entire -arena with copies of the trampoline (this allows us to now have to invalidate -the icache for the instructions in the page) and then we return the next -available chunk every time someone asks for a new trampoline. We keep a linked -list of arenas in case the current memory arena is exhausted and another one is -needed. - -For the best results, Python should be compiled with -CFLAGS="-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer" as this allows -profilers to unwind using only the frame pointer and not on DWARF debug -information (note that as trampilines are dynamically generated there won't be -any DWARF information available for them). -*/ - -#include "Python.h" -#include "pycore_ceval.h" -#include "pycore_frame.h" -#include "pycore_interp.h" - -typedef enum { - PERF_STATUS_FAILED = -1, // Perf trampoline is in an invalid state - PERF_STATUS_NO_INIT = 0, // Perf trampoline is not initialized - PERF_STATUS_OK = 1, // Perf trampoline is ready to be executed -} perf_status_t; - -#ifdef PY_HAVE_PERF_TRAMPOLINE - -#include <fcntl.h> -#include <stdio.h> -#include <stdlib.h> -#include <sys/mman.h> -#include <sys/types.h> -#include <unistd.h> - -#if defined(__arm__) || defined(__arm64__) || defined(__aarch64__) -#define PY_HAVE_INVALIDATE_ICACHE - -#if defined(__clang__) || defined(__GNUC__) -extern void __clear_cache(void *, void*); -#endif - -static void invalidate_icache(char* begin, char*end) { -#if defined(__clang__) || defined(__GNUC__) - return __clear_cache(begin, end); -#else - return; -#endif -} -#endif - -/* The function pointer is passed as last argument. The other three arguments - * are passed in the same order as the function requires. This results in - * shorter, more efficient ASM code for trampoline. - */ -typedef PyObject *(*py_evaluator)(PyThreadState *, _PyInterpreterFrame *, - int throwflag); -typedef PyObject *(*py_trampoline)(PyThreadState *, _PyInterpreterFrame *, int, - py_evaluator); - -extern void *_Py_trampoline_func_start; // Start of the template of the - // assembly trampoline -extern void * - _Py_trampoline_func_end; // End of the template of the assembly trampoline - -struct code_arena_st { - char *start_addr; // Start of the memory arena - char *current_addr; // Address of the current trampoline within the arena - size_t size; // Size of the memory arena - size_t size_left; // Remaining size of the memory arena - size_t code_size; // Size of the code of every trampoline in the arena - struct code_arena_st - *prev; // Pointer to the arena or NULL if this is the first arena. -}; - -typedef struct code_arena_st code_arena_t; - -struct trampoline_api_st { - void* (*init_state)(void); - void (*write_state)(void* state, const void *code_addr, - unsigned int code_size, PyCodeObject* code); - int (*free_state)(void* state); - void *state; -}; - -typedef struct trampoline_api_st trampoline_api_t; - - -static perf_status_t perf_status = PERF_STATUS_NO_INIT; -static Py_ssize_t extra_code_index = -1; -static code_arena_t *code_arena; -static trampoline_api_t trampoline_api; - -static FILE *perf_map_file; - -static void * -perf_map_get_file(void) -{ - if (perf_map_file) { - return perf_map_file; - } - char filename[100]; - pid_t pid = getpid(); - // Location and file name of perf map is hard-coded in perf tool. - // Use exclusive create flag wit nofollow to prevent symlink attacks. - int flags = O_WRONLY | O_CREAT | O_EXCL | O_NOFOLLOW | O_CLOEXEC; - snprintf(filename, sizeof(filename) - 1, "/tmp/perf-%jd.map", - (intmax_t)pid); - int fd = open(filename, flags, 0600); - if (fd == -1) { - perf_status = PERF_STATUS_FAILED; - PyErr_SetFromErrnoWithFilename(PyExc_OSError, filename); - return NULL; - } - perf_map_file = fdopen(fd, "w"); - if (!perf_map_file) { - perf_status = PERF_STATUS_FAILED; - PyErr_SetFromErrnoWithFilename(PyExc_OSError, filename); - close(fd); - return NULL; - } - return perf_map_file; -} - -static int -perf_map_close(void *state) -{ - FILE *fp = (FILE *)state; - int ret = 0; - if (fp) { - ret = fclose(fp); - } - perf_map_file = NULL; - perf_status = PERF_STATUS_NO_INIT; - return ret; -} - -static void -perf_map_write_entry(void *state, const void *code_addr, - unsigned int code_size, PyCodeObject *co) -{ - assert(state != NULL); - FILE *method_file = (FILE *)state; - const char *entry = PyUnicode_AsUTF8(co->co_qualname); - if (entry == NULL) { - _PyErr_WriteUnraisableMsg("Failed to get qualname from code object", - NULL); - return; - } - const char *filename = PyUnicode_AsUTF8(co->co_filename); - if (filename == NULL) { - _PyErr_WriteUnraisableMsg("Failed to get filename from code object", - NULL); - return; - } - fprintf(method_file, "%p %x py::%s:%s\n", code_addr, code_size, entry, - filename); - fflush(method_file); -} - -_PyPerf_Callbacks _Py_perfmap_callbacks = { - &perf_map_get_file, - &perf_map_write_entry, - &perf_map_close -}; - -static int -new_code_arena(void) -{ - // non-trivial programs typically need 64 to 256 kiB. - size_t mem_size = 4096 * 16; - assert(mem_size % sysconf(_SC_PAGESIZE) == 0); - char *memory = - mmap(NULL, // address - mem_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, - -1, // fd (not used here) - 0); // offset (not used here) - if (!memory) { - PyErr_SetFromErrno(PyExc_OSError); - _PyErr_WriteUnraisableMsg( - "Failed to create new mmap for perf trampoline", NULL); - perf_status = PERF_STATUS_FAILED; - return -1; - } - void *start = &_Py_trampoline_func_start; - void *end = &_Py_trampoline_func_end; - size_t code_size = end - start; - // TODO: Check the effect of alignment of the code chunks. Initial investigation - // showed that this has no effect on performance in x86-64 or aarch64 and the current - // version has the advantage that the unwinder in GDB can unwind across JIT-ed code. - // - // We should check the values in the future and see if there is a - // measurable performance improvement by rounding trampolines up to 32-bit - // or 64-bit alignment. - - size_t n_copies = mem_size / code_size; - for (size_t i = 0; i < n_copies; i++) { - memcpy(memory + i * code_size, start, code_size * sizeof(char)); - } - // Some systems may prevent us from creating executable code on the fly. - int res = mprotect(memory, mem_size, PROT_READ | PROT_EXEC); - if (res == -1) { - PyErr_SetFromErrno(PyExc_OSError); - munmap(memory, mem_size); - _PyErr_WriteUnraisableMsg( - "Failed to set mmap for perf trampoline to PROT_READ | PROT_EXEC", - NULL); - return -1; - } - -#ifdef PY_HAVE_INVALIDATE_ICACHE - // Before the JIT can run a block of code that has been emitted it must invalidate - // the instruction cache on some platforms like arm and aarch64. - invalidate_icache(memory, memory + mem_size); -#endif - - code_arena_t *new_arena = PyMem_RawCalloc(1, sizeof(code_arena_t)); - if (new_arena == NULL) { - PyErr_NoMemory(); - munmap(memory, mem_size); - _PyErr_WriteUnraisableMsg("Failed to allocate new code arena struct", - NULL); - return -1; - } - - new_arena->start_addr = memory; - new_arena->current_addr = memory; - new_arena->size = mem_size; - new_arena->size_left = mem_size; - new_arena->code_size = code_size; - new_arena->prev = code_arena; - code_arena = new_arena; - return 0; -} - -static void -free_code_arenas(void) -{ - code_arena_t *cur = code_arena; - code_arena_t *prev; - code_arena = NULL; // invalid static pointer - while (cur) { - munmap(cur->start_addr, cur->size); - prev = cur->prev; - PyMem_RawFree(cur); - cur = prev; - } -} - -static inline py_trampoline -code_arena_new_code(code_arena_t *code_arena) -{ - py_trampoline trampoline = (py_trampoline)code_arena->current_addr; - code_arena->size_left -= code_arena->code_size; - code_arena->current_addr += code_arena->code_size; - return trampoline; -} - -static inline py_trampoline -compile_trampoline(void) -{ - if ((code_arena == NULL) || - (code_arena->size_left <= code_arena->code_size)) { - if (new_code_arena() < 0) { - return NULL; - } - } - assert(code_arena->size_left <= code_arena->size); - return code_arena_new_code(code_arena); -} - -static PyObject * -py_trampoline_evaluator(PyThreadState *ts, _PyInterpreterFrame *frame, - int throw) -{ - if (perf_status == PERF_STATUS_FAILED || - perf_status == PERF_STATUS_NO_INIT) { - goto default_eval; - } - PyCodeObject *co = frame->f_code; - py_trampoline f = NULL; - assert(extra_code_index != -1); - int ret = _PyCode_GetExtra((PyObject *)co, extra_code_index, (void **)&f); - if (ret != 0 || f == NULL) { - // This is the first time we see this code object so we need - // to compile a trampoline for it. - py_trampoline new_trampoline = compile_trampoline(); - if (new_trampoline == NULL) { - goto default_eval; - } - trampoline_api.write_state(trampoline_api.state, new_trampoline, - code_arena->code_size, co); - _PyCode_SetExtra((PyObject *)co, extra_code_index, - (void *)new_trampoline); - f = new_trampoline; - } - assert(f != NULL); - return f(ts, frame, throw, _PyEval_EvalFrameDefault); -default_eval: - // Something failed, fall back to the default evaluator. - return _PyEval_EvalFrameDefault(ts, frame, throw); -} -#endif // PY_HAVE_PERF_TRAMPOLINE - -int -_PyIsPerfTrampolineActive(void) -{ -#ifdef PY_HAVE_PERF_TRAMPOLINE - PyThreadState *tstate = _PyThreadState_GET(); - return tstate->interp->eval_frame == py_trampoline_evaluator; -#endif - return 0; -} - -void -_PyPerfTrampoline_GetCallbacks(_PyPerf_Callbacks *callbacks) -{ - if (callbacks == NULL) { - return; - } -#ifdef PY_HAVE_PERF_TRAMPOLINE - callbacks->init_state = trampoline_api.init_state; - callbacks->write_state = trampoline_api.write_state; - callbacks->free_state = trampoline_api.free_state; -#endif - return; -} - -int -_PyPerfTrampoline_SetCallbacks(_PyPerf_Callbacks *callbacks) -{ - if (callbacks == NULL) { - return -1; - } -#ifdef PY_HAVE_PERF_TRAMPOLINE - if (trampoline_api.state) { - _PyPerfTrampoline_Fini(); - } - trampoline_api.init_state = callbacks->init_state; - trampoline_api.write_state = callbacks->write_state; - trampoline_api.free_state = callbacks->free_state; - trampoline_api.state = NULL; - perf_status = PERF_STATUS_OK; -#endif - return 0; -} - -int -_PyPerfTrampoline_Init(int activate) -{ -#ifdef PY_HAVE_PERF_TRAMPOLINE - PyThreadState *tstate = _PyThreadState_GET(); - if (tstate->interp->eval_frame && - tstate->interp->eval_frame != py_trampoline_evaluator) { - PyErr_SetString(PyExc_RuntimeError, - "Trampoline cannot be initialized as a custom eval " - "frame is already present"); - return -1; - } - if (!activate) { - tstate->interp->eval_frame = NULL; - } - else { - tstate->interp->eval_frame = py_trampoline_evaluator; - if (new_code_arena() < 0) { - return -1; - } - if (trampoline_api.state == NULL) { - void *state = trampoline_api.init_state(); - if (state == NULL) { - return -1; - } - trampoline_api.state = state; - } - extra_code_index = _PyEval_RequestCodeExtraIndex(NULL); - if (extra_code_index == -1) { - return -1; - } - perf_status = PERF_STATUS_OK; - } -#endif - return 0; -} - -int -_PyPerfTrampoline_Fini(void) -{ -#ifdef PY_HAVE_PERF_TRAMPOLINE - PyThreadState *tstate = _PyThreadState_GET(); - if (tstate->interp->eval_frame == py_trampoline_evaluator) { - tstate->interp->eval_frame = NULL; - } - free_code_arenas(); - if (trampoline_api.state != NULL) { - trampoline_api.free_state(trampoline_api.state); - trampoline_api.state = NULL; - } - extra_code_index = -1; -#endif - return 0; -} - -PyStatus -_PyPerfTrampoline_AfterFork_Child(void) -{ -#ifdef PY_HAVE_PERF_TRAMPOLINE - // Restart trampoline in file in child. - int was_active = _PyIsPerfTrampolineActive(); - _PyPerfTrampoline_Fini(); - if (was_active) { - _PyPerfTrampoline_Init(1); - } -#endif - return PyStatus_Ok(); -} diff --git a/Objects/rangeobject.c b/Objects/rangeobject.c index f0b06de1c7d2a0..5d583b2edf0e94 100644 --- a/Objects/rangeobject.c +++ b/Objects/rangeobject.c @@ -2,7 +2,6 @@ #include "Python.h" #include "pycore_abstract.h" // _PyIndex_Check() -#include "pycore_range.h" #include "pycore_long.h" // _PyLong_GetZero() #include "pycore_tuple.h" // _PyTuple_ITEMS() #include "structmember.h" // PyMemberDef @@ -763,8 +762,16 @@ PyTypeObject PyRange_Type = { in the normal case, but possible for any numeric value. */ +typedef struct { + PyObject_HEAD + long index; + long start; + long step; + long len; +} rangeiterobject; + static PyObject * -rangeiter_next(_PyRangeIterObject *r) +rangeiter_next(rangeiterobject *r) { if (r->index < r->len) /* cast to unsigned to avoid possible signed overflow @@ -775,7 +782,7 @@ rangeiter_next(_PyRangeIterObject *r) } static PyObject * -rangeiter_len(_PyRangeIterObject *r, PyObject *Py_UNUSED(ignored)) +rangeiter_len(rangeiterobject *r, PyObject *Py_UNUSED(ignored)) { return PyLong_FromLong(r->len - r->index); } @@ -784,7 +791,7 @@ PyDoc_STRVAR(length_hint_doc, "Private method returning an estimate of len(list(it))."); static PyObject * -rangeiter_reduce(_PyRangeIterObject *r, PyObject *Py_UNUSED(ignored)) +rangeiter_reduce(rangeiterobject *r, PyObject *Py_UNUSED(ignored)) { PyObject *start=NULL, *stop=NULL, *step=NULL; PyObject *range; @@ -814,7 +821,7 @@ rangeiter_reduce(_PyRangeIterObject *r, PyObject *Py_UNUSED(ignored)) } static PyObject * -rangeiter_setstate(_PyRangeIterObject *r, PyObject *state) +rangeiter_setstate(rangeiterobject *r, PyObject *state) { long index = PyLong_AsLong(state); if (index == -1 && PyErr_Occurred()) @@ -843,8 +850,8 @@ static PyMethodDef rangeiter_methods[] = { PyTypeObject PyRangeIter_Type = { PyVarObject_HEAD_INIT(&PyType_Type, 0) - "range_iterator", /* tp_name */ - sizeof(_PyRangeIterObject), /* tp_basicsize */ + "range_iterator", /* tp_name */ + sizeof(rangeiterobject), /* tp_basicsize */ 0, /* tp_itemsize */ /* methods */ (destructor)PyObject_Del, /* tp_dealloc */ @@ -908,7 +915,7 @@ get_len_of_range(long lo, long hi, long step) static PyObject * fast_range_iter(long start, long stop, long step, long len) { - _PyRangeIterObject *it = PyObject_New(_PyRangeIterObject, &PyRangeIter_Type); + rangeiterobject *it = PyObject_New(rangeiterobject, &PyRangeIter_Type); if (it == NULL) return NULL; it->start = start; diff --git a/Objects/sliceobject.c b/Objects/sliceobject.c index e37623f38ba1f3..713829da574d50 100644 --- a/Objects/sliceobject.c +++ b/Objects/sliceobject.c @@ -110,10 +110,18 @@ void _PySlice_Fini(PyInterpreterState *interp) index is present. */ -static PySliceObject * -_PyBuildSlice_Consume2(PyObject *start, PyObject *stop, PyObject *step) +PyObject * +PySlice_New(PyObject *start, PyObject *stop, PyObject *step) { - assert(start != NULL && stop != NULL && step != NULL); + if (step == NULL) { + step = Py_None; + } + if (start == NULL) { + start = Py_None; + } + if (stop == NULL) { + stop = Py_None; + } PyInterpreterState *interp = _PyInterpreterState_GET(); PySliceObject *obj; @@ -125,44 +133,19 @@ _PyBuildSlice_Consume2(PyObject *start, PyObject *stop, PyObject *step) else { obj = PyObject_GC_New(PySliceObject, &PySlice_Type); if (obj == NULL) { - goto error; + return NULL; } } + Py_INCREF(step); + obj->step = step; + Py_INCREF(start); obj->start = start; + Py_INCREF(stop); obj->stop = stop; - obj->step = Py_NewRef(step); _PyObject_GC_TRACK(obj); - return obj; -error: - Py_DECREF(start); - Py_DECREF(stop); - return NULL; -} - -PyObject * -PySlice_New(PyObject *start, PyObject *stop, PyObject *step) -{ - if (step == NULL) { - step = Py_None; - } - if (start == NULL) { - start = Py_None; - } - if (stop == NULL) { - stop = Py_None; - } - Py_INCREF(start); - Py_INCREF(stop); - return (PyObject *) _PyBuildSlice_Consume2(start, stop, step); -} - -PyObject * -_PyBuildSlice_ConsumeRefs(PyObject *start, PyObject *stop) -{ - assert(start != NULL && stop != NULL); - return (PyObject *)_PyBuildSlice_Consume2(start, stop, Py_None); + return (PyObject *) obj; } PyObject * diff --git a/Objects/stringlib/clinic/transmogrify.h.h b/Objects/stringlib/clinic/transmogrify.h.h index 49388cf043ced2..b88517bd3649a0 100644 --- a/Objects/stringlib/clinic/transmogrify.h.h +++ b/Objects/stringlib/clinic/transmogrify.h.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(stringlib_expandtabs__doc__, "expandtabs($self, /, tabsize=8)\n" "--\n" @@ -26,31 +20,8 @@ static PyObject * stringlib_expandtabs(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(tabsize), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"tabsize", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "expandtabs", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "expandtabs", 0}; PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int tabsize = 8; @@ -278,4 +249,4 @@ stringlib_zfill(PyObject *self, PyObject *arg) exit: return return_value; } -/*[clinic end generated code: output=d44a269805f6739e input=a9049054013a1b77]*/ +/*[clinic end generated code: output=46d058103bffedf7 input=a9049054013a1b77]*/ diff --git a/Objects/stringlib/fastsearch.h b/Objects/stringlib/fastsearch.h index 257b7bd6788ad2..a838c66cccf74c 100644 --- a/Objects/stringlib/fastsearch.h +++ b/Objects/stringlib/fastsearch.h @@ -18,8 +18,7 @@ algorithm, which has worst-case O(n) runtime and best-case O(n/k). Also compute a table of shifts to achieve O(n/k) in more cases, and often (data dependent) deduce larger shifts than pure C&P can - deduce. See stringlib_find_two_way_notes.txt in this folder for a - detailed explanation. */ + deduce. */ #define FAST_COUNT 0 #define FAST_SEARCH 1 @@ -356,7 +355,7 @@ STRINGLIB(_preprocess)(const STRINGLIB_CHAR *needle, Py_ssize_t len_needle, } // Fill up a compressed Boyer-Moore "Bad Character" table Py_ssize_t not_found_shift = Py_MIN(len_needle, MAX_SHIFT); - for (Py_ssize_t i = 0; i < (Py_ssize_t)TABLE_SIZE; i++) { + for (Py_ssize_t i = 0; i < TABLE_SIZE; i++) { p->table[i] = Py_SAFE_DOWNCAST(not_found_shift, Py_ssize_t, SHIFT_TYPE); } @@ -399,7 +398,7 @@ STRINGLIB(_two_way)(const STRINGLIB_CHAR *haystack, Py_ssize_t len_haystack, if (window_last >= haystack_end) { return -1; } - LOG("Horspool skip\n"); + LOG("Horspool skip"); } no_shift: window = window_last - len_needle + 1; @@ -458,7 +457,7 @@ STRINGLIB(_two_way)(const STRINGLIB_CHAR *haystack, Py_ssize_t len_haystack, if (window_last >= haystack_end) { return -1; } - LOG("Horspool skip\n"); + LOG("Horspool skip"); } window = window_last - len_needle + 1; assert((window[len_needle - 1] & TABLE_MASK) == diff --git a/Objects/stringlib/stringlib_find_two_way_notes.txt b/Objects/stringlib/stringlib_find_two_way_notes.txt index f97615b42fff4b..afe45431a75ac4 100644 --- a/Objects/stringlib/stringlib_find_two_way_notes.txt +++ b/Objects/stringlib/stringlib_find_two_way_notes.txt @@ -239,7 +239,7 @@ We cut as AA + bAAbAAbA, and then the algorithm runs as follows: ~~ AA != bA at the cut bbbAbbAAbAAbAAbbbAAbAAbAAbAA AAbAAbAAbA - ^^^^X 7-3=4 match, and the 5th misses. + ^^^^X 7-3=4 match, and the 5th misses. bbbAbbAAbAAbAAbbbAAbAAbAAbAA AAbAAbAAbA ~ A != b at the cut @@ -395,7 +395,7 @@ of their proof goes something like this (this is far from complete): needle == (a + w) + (w + b), meaning there's a bad equality w == w, it's impossible for w + b to be bigger than both b and w + w + b, so this can't happen. We thus have all of - the inequalities with no question marks. + the ineuqalities with no question marks. * By maximality, the right part is not a substring of the left part. Thus, we have all of the inequalities involving no left-side question marks. diff --git a/Objects/structseq.c b/Objects/structseq.c index 9a7013372e688c..229e3d893ff6aa 100644 --- a/Objects/structseq.c +++ b/Objects/structseq.c @@ -432,21 +432,11 @@ initialize_structseq_dict(PyStructSequence_Desc *desc, PyObject* dict, return -1; } -static PyMemberDef * -initialize_members(PyStructSequence_Desc *desc, - Py_ssize_t *pn_members, Py_ssize_t *pn_unnamed_members) -{ - PyMemberDef *members; - Py_ssize_t n_members, n_unnamed_members; - - n_members = count_members(desc, &n_unnamed_members); - members = PyMem_NEW(PyMemberDef, n_members - n_unnamed_members + 1); - if (members == NULL) { - PyErr_NoMemory(); - return NULL; - } - +static void +initialize_members(PyStructSequence_Desc *desc, PyMemberDef* members, + Py_ssize_t n_members) { Py_ssize_t i, k; + for (i = k = 0; i < n_members; ++i) { if (desc->fields[i].name == PyStructSequence_UnnamedField) { continue; @@ -463,17 +453,30 @@ initialize_members(PyStructSequence_Desc *desc, k++; } members[k].name = NULL; - - *pn_members = n_members; - *pn_unnamed_members = n_unnamed_members; - return members; } -static void -initialize_static_fields(PyTypeObject *type, PyStructSequence_Desc *desc, - PyMemberDef *tp_members, unsigned long tp_flags) +int +_PyStructSequence_InitType(PyTypeObject *type, PyStructSequence_Desc *desc, + unsigned long tp_flags) { + PyMemberDef *members; + Py_ssize_t n_members, n_unnamed_members; + +#ifdef Py_TRACE_REFS + /* if the type object was chained, unchain it first + before overwriting its storage */ + if (type->ob_base.ob_base._ob_next) { + _Py_ForgetReference((PyObject *)type); + } +#endif + + /* PyTypeObject has already been initialized */ + if (Py_REFCNT(type) != 0) { + PyErr_BadInternalCall(); + return -1; + } + type->tp_name = desc->name; type->tp_basicsize = sizeof(PyStructSequence) - sizeof(PyObject *); type->tp_itemsize = sizeof(PyObject *); @@ -485,20 +488,25 @@ initialize_static_fields(PyTypeObject *type, PyStructSequence_Desc *desc, type->tp_new = structseq_new; type->tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | tp_flags; type->tp_traverse = (traverseproc) structseq_traverse; - type->tp_members = tp_members; -} -static int -initialize_static_type(PyTypeObject *type, PyStructSequence_Desc *desc, - Py_ssize_t n_members, Py_ssize_t n_unnamed_members) { - /* initialize_static_fields() should have been called already. */ + n_members = count_members(desc, &n_unnamed_members); + members = PyMem_NEW(PyMemberDef, n_members - n_unnamed_members + 1); + if (members == NULL) { + PyErr_NoMemory(); + return -1; + } + initialize_members(desc, members, n_members); + type->tp_members = members; + if (PyType_Ready(type) < 0) { + PyMem_Free(members); return -1; } Py_INCREF(type); if (initialize_structseq_dict( desc, type->tp_dict, n_members, n_unnamed_members) < 0) { + PyMem_Free(members); Py_DECREF(type); return -1; } @@ -506,63 +514,10 @@ initialize_static_type(PyTypeObject *type, PyStructSequence_Desc *desc, return 0; } -int -_PyStructSequence_InitBuiltinWithFlags(PyTypeObject *type, - PyStructSequence_Desc *desc, - unsigned long tp_flags) -{ - PyMemberDef *members; - Py_ssize_t n_members, n_unnamed_members; - - members = initialize_members(desc, &n_members, &n_unnamed_members); - if (members == NULL) { - return -1; - } - initialize_static_fields(type, desc, members, tp_flags); - if (_PyStaticType_InitBuiltin(type) < 0) { - PyMem_Free(members); - PyErr_Format(PyExc_RuntimeError, - "Can't initialize builtin type %s", - desc->name); - return -1; - } - if (initialize_static_type(type, desc, n_members, n_unnamed_members) < 0) { - PyMem_Free(members); - return -1; - } - return 0; -} - int PyStructSequence_InitType2(PyTypeObject *type, PyStructSequence_Desc *desc) { - PyMemberDef *members; - Py_ssize_t n_members, n_unnamed_members; - -#ifdef Py_TRACE_REFS - /* if the type object was chained, unchain it first - before overwriting its storage */ - if (type->ob_base.ob_base._ob_next) { - _Py_ForgetReference((PyObject *)type); - } -#endif - - /* PyTypeObject has already been initialized */ - if (Py_REFCNT(type) != 0) { - PyErr_BadInternalCall(); - return -1; - } - - members = initialize_members(desc, &n_members, &n_unnamed_members); - if (members == NULL) { - return -1; - } - initialize_static_fields(type, desc, members, 0); - if (initialize_static_type(type, desc, n_members, n_unnamed_members) < 0) { - PyMem_Free(members); - return -1; - } - return 0; + return _PyStructSequence_InitType(type, desc, 0); } void @@ -580,7 +535,7 @@ _PyStructSequence_FiniType(PyTypeObject *type) assert(type->tp_base == &PyTuple_Type); // Cannot delete a type if it still has subclasses - if (_PyType_HasSubclasses(type)) { + if (type->tp_subclasses != NULL) { return; } @@ -614,10 +569,13 @@ _PyStructSequence_NewType(PyStructSequence_Desc *desc, unsigned long tp_flags) Py_ssize_t n_members, n_unnamed_members; /* Initialize MemberDefs */ - members = initialize_members(desc, &n_members, &n_unnamed_members); + n_members = count_members(desc, &n_unnamed_members); + members = PyMem_NEW(PyMemberDef, n_members - n_unnamed_members + 1); if (members == NULL) { + PyErr_NoMemory(); return NULL; } + initialize_members(desc, members, n_members); /* Initialize Slots */ slots[0] = (PyType_Slot){Py_tp_dealloc, (destructor)structseq_dealloc}; diff --git a/Objects/tupleobject.c b/Objects/tupleobject.c index 240af0a9075271..dfb8597b876e5c 100644 --- a/Objects/tupleobject.c +++ b/Objects/tupleobject.c @@ -495,8 +495,9 @@ tupleconcat(PyTupleObject *a, PyObject *bb) static PyObject * tuplerepeat(PyTupleObject *a, Py_ssize_t n) { - const Py_ssize_t input_size = Py_SIZE(a); - if (input_size == 0 || n == 1) { + Py_ssize_t size; + PyTupleObject *np; + if (Py_SIZE(a) == 0 || n == 1) { if (PyTuple_CheckExact(a)) { /* Since tuples are immutable, we can return a shared copy in this case */ @@ -504,38 +505,42 @@ tuplerepeat(PyTupleObject *a, Py_ssize_t n) return (PyObject *)a; } } - if (input_size == 0 || n <= 0) { + if (Py_SIZE(a) == 0 || n <= 0) { return tuple_get_empty(); } - assert(n>0); - - if (input_size > PY_SSIZE_T_MAX / n) + if (n > PY_SSIZE_T_MAX / Py_SIZE(a)) return PyErr_NoMemory(); - Py_ssize_t output_size = input_size * n; - - PyTupleObject *np = tuple_alloc(output_size); + size = Py_SIZE(a) * n; + np = tuple_alloc(size); if (np == NULL) return NULL; - PyObject **dest = np->ob_item; - if (input_size == 1) { + PyObject **dest_end = dest + size; + if (Py_SIZE(a) == 1) { PyObject *elem = a->ob_item[0]; - _Py_RefcntAdd(elem, n); - PyObject **dest_end = dest + output_size; + Py_SET_REFCNT(elem, Py_REFCNT(elem) + n); +#ifdef Py_REF_DEBUG + _Py_RefTotal += n; +#endif while (dest < dest_end) { *dest++ = elem; } } else { PyObject **src = a->ob_item; - PyObject **src_end = src + input_size; + PyObject **src_end = src + Py_SIZE(a); while (src < src_end) { - _Py_RefcntAdd(*src, n); + Py_SET_REFCNT(*src, Py_REFCNT(*src) + n); +#ifdef Py_REF_DEBUG + _Py_RefTotal += n; +#endif + *dest++ = *src++; + } + // Now src chases after dest in the same buffer + src = np->ob_item; + while (dest < dest_end) { *dest++ = *src++; } - - _Py_memory_repeat((char *)np->ob_item, sizeof(PyObject *)*output_size, - sizeof(PyObject *)*input_size); } _PyObject_GC_TRACK(np); return (PyObject *) np; diff --git a/Objects/typeobject.c b/Objects/typeobject.c index 5aa5cbbd54022e..37ac886f00446c 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -11,6 +11,7 @@ #include "pycore_pystate.h" // _PyThreadState_GET() #include "pycore_typeobject.h" // struct type_cache #include "pycore_unionobject.h" // _Py_union_type_or +#include "frameobject.h" // PyFrameObject #include "pycore_frame.h" // _PyInterpreterFrame #include "opcode.h" // MAKE_CELL #include "structmember.h" // PyMemberDef @@ -53,105 +54,23 @@ typedef struct PySlot_Offset { } PySlot_Offset; +/* bpo-40521: Interned strings are shared by all subinterpreters */ +#ifndef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS +# define INTERN_NAME_STRINGS +#endif + static PyObject * slot_tp_new(PyTypeObject *type, PyObject *args, PyObject *kwds); +static void +clear_slotdefs(void); + static PyObject * lookup_maybe_method(PyObject *self, PyObject *attr, int *unbound); static int slot_tp_setattro(PyObject *self, PyObject *name, PyObject *value); -static inline PyTypeObject * subclass_from_ref(PyObject *ref); - - -/* helpers for for static builtin types */ - -#ifndef NDEBUG -static inline int -static_builtin_index_is_set(PyTypeObject *self) -{ - return self->tp_subclasses != NULL; -} -#endif - -static inline size_t -static_builtin_index_get(PyTypeObject *self) -{ - assert(static_builtin_index_is_set(self)); - /* We store a 1-based index so 0 can mean "not initialized". */ - return (size_t)self->tp_subclasses - 1; -} - -static inline void -static_builtin_index_set(PyTypeObject *self, size_t index) -{ - assert(index < _Py_MAX_STATIC_BUILTIN_TYPES); - /* We store a 1-based index so 0 can mean "not initialized". */ - self->tp_subclasses = (PyObject *)(index + 1); -} - -static inline void -static_builtin_index_clear(PyTypeObject *self) -{ - self->tp_subclasses = NULL; -} - -static inline static_builtin_state * -static_builtin_state_get(PyInterpreterState *interp, PyTypeObject *self) -{ - return &(interp->types.builtins[static_builtin_index_get(self)]); -} - -/* For static types we store some state in an array on each interpreter. */ -static_builtin_state * -_PyStaticType_GetState(PyTypeObject *self) -{ - assert(self->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN); - PyInterpreterState *interp = _PyInterpreterState_GET(); - return static_builtin_state_get(interp, self); -} - -static void -static_builtin_state_init(PyTypeObject *self) -{ - /* Set the type's per-interpreter state. */ - PyInterpreterState *interp = _PyInterpreterState_GET(); - - /* It should only be called once for each builtin type. */ - assert(!static_builtin_index_is_set(self)); - - static_builtin_index_set(self, interp->types.num_builtins_initialized); - interp->types.num_builtins_initialized++; - - static_builtin_state *state = static_builtin_state_get(interp, self); - state->type = self; - /* state->tp_subclasses is left NULL until init_subclasses() sets it. */ - /* state->tp_weaklist is left NULL until insert_head() or insert_after() - (in weakrefobject.c) sets it. */ -} - -static void -static_builtin_state_clear(PyTypeObject *self) -{ - /* Reset the type's per-interpreter state. - This basically undoes what static_builtin_state_init() did. */ - PyInterpreterState *interp = _PyInterpreterState_GET(); - - static_builtin_state *state = static_builtin_state_get(interp, self); - state->type = NULL; - assert(state->tp_weaklist == NULL); // It was already cleared out. - static_builtin_index_clear(self); - - assert(interp->types.num_builtins_initialized > 0); - interp->types.num_builtins_initialized--; -} - -// Also see _PyStaticType_InitBuiltin() and _PyStaticType_Dealloc(). - -/* end static builtin helpers */ - - /* * finds the beginning of the docstring's introspection signature. * if present, returns a pointer pointing to the first '('. @@ -291,7 +210,7 @@ static struct type_cache* get_type_cache(void) { PyInterpreterState *interp = _PyInterpreterState_GET(); - return &interp->types.type_cache; + return &interp->type_cache; } @@ -310,7 +229,7 @@ type_cache_clear(struct type_cache *cache, PyObject *value) void _PyType_InitCache(PyInterpreterState *interp) { - struct type_cache *cache = &interp->types.type_cache; + struct type_cache *cache = &interp->type_cache; for (Py_ssize_t i = 0; i < (1 << MCACHE_SIZE_EXP); i++) { struct type_cache_entry *entry = &cache->hashtable[i]; assert(entry->name == NULL); @@ -327,7 +246,7 @@ _PyType_InitCache(PyInterpreterState *interp) static unsigned int _PyType_ClearCache(PyInterpreterState *interp) { - struct type_cache *cache = &interp->types.type_cache; + struct type_cache *cache = &interp->type_cache; #if MCACHE_STATS size_t total = cache->hits + cache->collisions + cache->misses; fprintf(stderr, "-- Method cache hits = %zd (%d%%)\n", @@ -359,19 +278,14 @@ PyType_ClearCache(void) void _PyTypes_Fini(PyInterpreterState *interp) { - struct type_cache *cache = &interp->types.type_cache; + struct type_cache *cache = &interp->type_cache; type_cache_clear(cache, NULL); - - assert(interp->types.num_builtins_initialized == 0); - // All the static builtin types should have been finalized already. - for (size_t i = 0; i < _Py_MAX_STATIC_BUILTIN_TYPES; i++) { - assert(interp->types.builtins[i].type == NULL); + if (_Py_IsMainInterpreter(interp)) { + clear_slotdefs(); } } -static PyObject * lookup_subclasses(PyTypeObject *); - void PyType_Modified(PyTypeObject *type) { @@ -394,18 +308,19 @@ PyType_Modified(PyTypeObject *type) return; } - PyObject *subclasses = lookup_subclasses(type); + PyObject *subclasses = type->tp_subclasses; if (subclasses != NULL) { assert(PyDict_CheckExact(subclasses)); Py_ssize_t i = 0; PyObject *ref; while (PyDict_Next(subclasses, &i, NULL, &ref)) { - PyTypeObject *subclass = subclass_from_ref(ref); // borrowed - if (subclass == NULL) { + assert(PyWeakref_CheckRef(ref)); + PyObject *obj = PyWeakref_GET_OBJECT(ref); + if (obj == Py_None) { continue; } - PyType_Modified(subclass); + PyType_Modified(_PyType_CAST(obj)); } } @@ -504,8 +419,6 @@ static PyMemberDef type_members[] = { {"__basicsize__", T_PYSSIZET, offsetof(PyTypeObject,tp_basicsize),READONLY}, {"__itemsize__", T_PYSSIZET, offsetof(PyTypeObject, tp_itemsize), READONLY}, {"__flags__", T_ULONG, offsetof(PyTypeObject, tp_flags), READONLY}, - /* Note that this value is misleading for static builtin types, - since the memory at this offset will always be NULL. */ {"__weakrefoffset__", T_PYSSIZET, offsetof(PyTypeObject, tp_weaklistoffset), READONLY}, {"__base__", T_OBJECT, offsetof(PyTypeObject, tp_base), READONLY}, @@ -782,7 +695,7 @@ mro_hierarchy(PyTypeObject *type, PyObject *temp) Py_XDECREF(old_mro); // Avoid creating an empty list if there is no subclass - if (_PyType_HasSubclasses(type)) { + if (type->tp_subclasses != NULL) { /* Obtain a copy of subclasses list to iterate over. Otherwise type->tp_subclasses might be altered @@ -1308,23 +1221,20 @@ subtype_traverse(PyObject *self, visitproc visit, void *arg) assert(base); } - if (type->tp_dictoffset != base->tp_dictoffset) { - assert(base->tp_dictoffset == 0); - if (type->tp_flags & Py_TPFLAGS_MANAGED_DICT) { - assert(type->tp_dictoffset == -1); - int err = _PyObject_VisitManagedDict(self, visit, arg); - if (err) { - return err; - } - } - else { - PyObject **dictptr = _PyObject_ComputedDictPointer(self); - if (dictptr && *dictptr) { - Py_VISIT(*dictptr); - } + if (type->tp_flags & Py_TPFLAGS_MANAGED_DICT) { + assert(type->tp_dictoffset); + int err = _PyObject_VisitInstanceAttributes(self, visit, arg); + if (err) { + return err; } } + if (type->tp_dictoffset != base->tp_dictoffset) { + PyObject **dictptr = _PyObject_DictPointer(self); + if (dictptr && *dictptr) + Py_VISIT(*dictptr); + } + if (type->tp_flags & Py_TPFLAGS_HEAPTYPE && (!basetraverse || !(base->tp_flags & Py_TPFLAGS_HEAPTYPE))) { /* For a heaptype, the instances count as references @@ -1381,12 +1291,10 @@ subtype_clear(PyObject *self) /* Clear the instance dict (if any), to break cycles involving only __dict__ slots (as in the case 'self.__dict__ is self'). */ if (type->tp_flags & Py_TPFLAGS_MANAGED_DICT) { - if ((base->tp_flags & Py_TPFLAGS_MANAGED_DICT) == 0) { - _PyObject_ClearManagedDict(self); - } + _PyObject_ClearInstanceAttributes(self); } - else if (type->tp_dictoffset != base->tp_dictoffset) { - PyObject **dictptr = _PyObject_ComputedDictPointer(self); + if (type->tp_dictoffset != base->tp_dictoffset) { + PyObject **dictptr = _PyObject_DictPointer(self); if (dictptr && *dictptr) Py_CLEAR(*dictptr); } @@ -1511,15 +1419,11 @@ subtype_dealloc(PyObject *self) finalizers since they might rely on part of the object being finalized that has already been destroyed. */ if (type->tp_weaklistoffset && !base->tp_weaklistoffset) { - /* Modeled after GET_WEAKREFS_LISTPTR(). - - This is never triggered for static types so we can avoid the - (slightly) more costly _PyObject_GET_WEAKREFS_LISTPTR(). */ - PyWeakReference **list = \ - _PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET(self); - while (*list) { + /* Modeled after GET_WEAKREFS_LISTPTR() */ + PyWeakReference **list = (PyWeakReference **) \ + _PyObject_GET_WEAKREFS_LISTPTR(self); + while (*list) _PyWeakref_ClearRef(*list); - } } } @@ -1534,17 +1438,18 @@ subtype_dealloc(PyObject *self) /* If we added a dict, DECREF it, or free inline values. */ if (type->tp_flags & Py_TPFLAGS_MANAGED_DICT) { - PyDictOrValues *dorv_ptr = _PyObject_DictOrValuesPointer(self); - if (_PyDictOrValues_IsValues(*dorv_ptr)) { - _PyObject_FreeInstanceAttributes(self); + PyObject **dictptr = _PyObject_ManagedDictPointer(self); + if (*dictptr != NULL) { + assert(*_PyObject_ValuesPointer(self) == NULL); + Py_DECREF(*dictptr); + *dictptr = NULL; } else { - Py_XDECREF(_PyDictOrValues_GetDict(*dorv_ptr)); + _PyObject_FreeInstanceAttributes(self); } - dorv_ptr->values = NULL; } else if (type->tp_dictoffset && !base->tp_dictoffset) { - PyObject **dictptr = _PyObject_ComputedDictPointer(self); + PyObject **dictptr = _PyObject_DictPointer(self); if (dictptr != NULL) { PyObject *dict = *dictptr; if (dict != NULL) { @@ -2327,12 +2232,22 @@ best_base(PyObject *bases) } static int -shape_differs(PyTypeObject *t1, PyTypeObject *t2) +extra_ivars(PyTypeObject *type, PyTypeObject *base) { - return ( - t1->tp_basicsize != t2->tp_basicsize || - t1->tp_itemsize != t2->tp_itemsize - ); + size_t t_size = type->tp_basicsize; + size_t b_size = base->tp_basicsize; + + assert(t_size >= b_size); /* Else type smaller than base! */ + if (type->tp_itemsize || base->tp_itemsize) { + /* If itemsize is involved, stricter rules */ + return t_size != b_size || + type->tp_itemsize != base->tp_itemsize; + } + if (type->tp_weaklistoffset && base->tp_weaklistoffset == 0 && + type->tp_weaklistoffset + sizeof(PyObject *) == t_size && + type->tp_flags & Py_TPFLAGS_HEAPTYPE) + t_size -= sizeof(PyObject *); + return t_size != b_size; } static PyTypeObject * @@ -2340,18 +2255,14 @@ solid_base(PyTypeObject *type) { PyTypeObject *base; - if (type->tp_base) { + if (type->tp_base) base = solid_base(type->tp_base); - } - else { + else base = &PyBaseObject_Type; - } - if (shape_differs(type, base)) { + if (extra_ivars(type, base)) return type; - } - else { + else return base; - } } static void object_dealloc(PyObject *); @@ -2474,11 +2385,10 @@ subtype_getweakref(PyObject *obj, void *context) return NULL; } _PyObject_ASSERT((PyObject *)type, - type->tp_weaklistoffset > 0 || - type->tp_weaklistoffset == MANAGED_WEAKREF_OFFSET); + type->tp_weaklistoffset > 0); _PyObject_ASSERT((PyObject *)type, - ((type->tp_weaklistoffset + (Py_ssize_t)sizeof(PyObject *)) - <= type->tp_basicsize)); + ((type->tp_weaklistoffset + sizeof(PyObject *)) + <= (size_t)(type->tp_basicsize))); weaklistptr = (PyObject **)((char *)obj + type->tp_weaklistoffset); if (*weaklistptr == NULL) result = Py_None; @@ -3070,15 +2980,20 @@ type_new_descriptors(const type_new_ctx *ctx, PyTypeObject *type) } } + if (ctx->add_dict && ctx->base->tp_itemsize) { + type->tp_dictoffset = -(long)sizeof(PyObject *); + slotoffset += sizeof(PyObject *); + } + if (ctx->add_weak) { - assert((type->tp_flags & Py_TPFLAGS_MANAGED_WEAKREF) == 0); - type->tp_flags |= Py_TPFLAGS_MANAGED_WEAKREF; - type->tp_weaklistoffset = MANAGED_WEAKREF_OFFSET; + assert(!ctx->base->tp_itemsize); + type->tp_weaklistoffset = slotoffset; + slotoffset += sizeof(PyObject *); } - if (ctx->add_dict) { + if (ctx->add_dict && ctx->base->tp_itemsize == 0) { assert((type->tp_flags & Py_TPFLAGS_MANAGED_DICT) == 0); type->tp_flags |= Py_TPFLAGS_MANAGED_DICT; - type->tp_dictoffset = -1; + type->tp_dictoffset = -slotoffset - sizeof(PyObject *)*3; } type->tp_basicsize = slotoffset; @@ -3281,6 +3196,11 @@ type_new_impl(type_new_ctx *ctx) // Put the proper slots in place fixup_slot_dispatchers(type); + if (type->tp_flags & Py_TPFLAGS_MANAGED_DICT) { + PyHeapTypeObject *et = (PyHeapTypeObject*)type; + et->ht_cached_keys = _PyDict_NewKeysForClass(); + } + if (type_new_set_names(type) < 0) { goto error; } @@ -3446,125 +3366,34 @@ static const PySlot_Offset pyslot_offsets[] = { #include "typeslots.inc" }; -/* Given a PyType_FromMetaclass `bases` argument (NULL, type, or tuple of - * types), return a tuple of types. - */ -inline static PyObject * -get_bases_tuple(PyObject *bases_in, PyType_Spec *spec) -{ - if (!bases_in) { - /* Default: look in the spec, fall back to (type,). */ - PyTypeObject *base = &PyBaseObject_Type; // borrowed ref - PyObject *bases = NULL; // borrowed ref - const PyType_Slot *slot; - for (slot = spec->slots; slot->slot; slot++) { - switch (slot->slot) { - case Py_tp_base: - base = slot->pfunc; - break; - case Py_tp_bases: - bases = slot->pfunc; - break; - } - } - if (!bases) { - return PyTuple_Pack(1, base); - } - if (PyTuple_Check(bases)) { - return Py_NewRef(bases); - } - PyErr_SetString(PyExc_SystemError, "Py_tp_bases is not a tuple"); - return NULL; - } - if (PyTuple_Check(bases_in)) { - return Py_NewRef(bases_in); - } - // Not a tuple, should be a single type - return PyTuple_Pack(1, bases_in); -} - -static inline int -check_basicsize_includes_size_and_offsets(PyTypeObject* type) -{ - if (type->tp_alloc != PyType_GenericAlloc) { - // Custom allocators can ignore tp_basicsize - return 1; - } - Py_ssize_t max = (Py_ssize_t)type->tp_basicsize; - - if (type->tp_base && type->tp_base->tp_basicsize > type->tp_basicsize) { - PyErr_Format(PyExc_TypeError, - "tp_basicsize for type '%s' (%d) is too small for base '%s' (%d)", - type->tp_name, type->tp_basicsize, - type->tp_base->tp_name, type->tp_base->tp_basicsize); - return 0; - } - if (type->tp_weaklistoffset + (Py_ssize_t)sizeof(PyObject*) > max) { - PyErr_Format(PyExc_TypeError, - "weaklist offset %d is out of bounds for type '%s' (tp_basicsize = %d)", - type->tp_weaklistoffset, - type->tp_name, type->tp_basicsize); - return 0; - } - if (type->tp_dictoffset + (Py_ssize_t)sizeof(PyObject*) > max) { - PyErr_Format(PyExc_TypeError, - "dict offset %d is out of bounds for type '%s' (tp_basicsize = %d)", - type->tp_dictoffset, - type->tp_name, type->tp_basicsize); - return 0; - } - if (type->tp_vectorcall_offset + (Py_ssize_t)sizeof(vectorcallfunc*) > max) { - PyErr_Format(PyExc_TypeError, - "vectorcall offset %d is out of bounds for type '%s' (tp_basicsize = %d)", - type->tp_vectorcall_offset, - type->tp_name, type->tp_basicsize); - return 0; - } - return 1; -} - PyObject * PyType_FromMetaclass(PyTypeObject *metaclass, PyObject *module, - PyType_Spec *spec, PyObject *bases_in) + PyType_Spec *spec, PyObject *bases) { - /* Invariant: A non-NULL value in one of these means this function holds - * a strong reference or owns allocated memory. - * These get decrefed/freed/returned at the end, on both success and error. - */ - PyHeapTypeObject *res = NULL; - PyTypeObject *type; - PyObject *bases = NULL; - char *tp_doc = NULL; - PyObject *ht_name = NULL; - char *_ht_tpname = NULL; - + PyHeapTypeObject *res; + PyObject *modname; + PyTypeObject *type, *base; int r; - /* Prepare slots that need special handling. - * Keep in mind that a slot can be given multiple times: - * if that would cause trouble (leaks, UB, ...), raise an exception. - */ - const PyType_Slot *slot; - Py_ssize_t nmembers = 0; - Py_ssize_t weaklistoffset, dictoffset, vectorcalloffset; + Py_ssize_t nmembers, weaklistoffset, dictoffset, vectorcalloffset; char *res_start; + short slot_offset, subslot_offset; + + if (!metaclass) { + metaclass = &PyType_Type; + } + + if (metaclass->tp_new != PyType_Type.tp_new) { + PyErr_SetString(PyExc_TypeError, + "Metaclasses with custom tp_new are not supported."); + return NULL; + } nmembers = weaklistoffset = dictoffset = vectorcalloffset = 0; for (slot = spec->slots; slot->slot; slot++) { - if (slot->slot < 0 - || (size_t)slot->slot >= Py_ARRAY_LENGTH(pyslot_offsets)) { - PyErr_SetString(PyExc_RuntimeError, "invalid slot offset"); - goto finally; - } - switch (slot->slot) { - case Py_tp_members: - if (nmembers != 0) { - PyErr_SetString( - PyExc_SystemError, - "Multiple Py_tp_members slots are not supported."); - goto finally; - } + if (slot->slot == Py_tp_members) { + nmembers = 0; for (const PyMemberDef *memb = slot->pfunc; memb->name != NULL; memb++) { nmembers++; if (strcmp(memb->name, "__weaklistoffset__") == 0) { @@ -3586,41 +3415,25 @@ PyType_FromMetaclass(PyTypeObject *metaclass, PyObject *module, vectorcalloffset = memb->offset; } } - break; - case Py_tp_doc: - /* For the docstring slot, which usually points to a static string - literal, we need to make a copy */ - if (tp_doc != NULL) { - PyErr_SetString( - PyExc_SystemError, - "Multiple Py_tp_doc slots are not supported."); - goto finally; - } - if (slot->pfunc == NULL) { - PyObject_Free(tp_doc); - tp_doc = NULL; - } - else { - size_t len = strlen(slot->pfunc)+1; - tp_doc = PyObject_Malloc(len); - if (tp_doc == NULL) { - PyErr_NoMemory(); - goto finally; - } - memcpy(tp_doc, slot->pfunc, len); - } - break; } } - /* Prepare the type name and qualname */ + res = (PyHeapTypeObject*)metaclass->tp_alloc(metaclass, nmembers); + if (res == NULL) + return NULL; + res_start = (char*)res; if (spec->name == NULL) { PyErr_SetString(PyExc_SystemError, "Type spec does not define the name field."); - goto finally; + goto fail; } + type = &res->ht_type; + /* The flags must be initialized early, before the GC traverses us */ + type->tp_flags = spec->flags | Py_TPFLAGS_HEAPTYPE; + + /* Set the type name and qualname */ const char *s = strrchr(spec->name, '.'); if (s == NULL) { s = spec->name; @@ -3629,10 +3442,11 @@ PyType_FromMetaclass(PyTypeObject *metaclass, PyObject *module, s++; } - ht_name = PyUnicode_FromString(s); - if (!ht_name) { - goto finally; + res->ht_name = PyUnicode_FromString(s); + if (!res->ht_name) { + goto fail; } + res->ht_qualname = Py_NewRef(res->ht_name); /* Copy spec->name to a buffer we own. * @@ -3644,158 +3458,119 @@ PyType_FromMetaclass(PyTypeObject *metaclass, PyObject *module, * deallocated with the type (if it's non-NULL). */ Py_ssize_t name_buf_len = strlen(spec->name) + 1; - _ht_tpname = PyMem_Malloc(name_buf_len); - if (_ht_tpname == NULL) { - goto finally; + res->_ht_tpname = PyMem_Malloc(name_buf_len); + if (res->_ht_tpname == NULL) { + goto fail; } - memcpy(_ht_tpname, spec->name, name_buf_len); + type->tp_name = memcpy(res->_ht_tpname, spec->name, name_buf_len); - /* Get a tuple of bases. - * bases is a strong reference (unlike bases_in). - */ - bases = get_bases_tuple(bases_in, spec); - if (!bases) { - goto finally; - } + res->ht_module = Py_XNewRef(module); - /* If this is an immutable type, check if all bases are also immutable, - * and (for now) fire a deprecation warning if not. - * (This isn't necessary for static types: those can't have heap bases, - * and only heap types can be mutable.) - */ - if (spec->flags & Py_TPFLAGS_IMMUTABLETYPE) { - for (int i=0; i<PyTuple_GET_SIZE(bases); i++) { - PyTypeObject *b = (PyTypeObject*)PyTuple_GET_ITEM(bases, i); - if (!b) { - goto finally; - } - if (!_PyType_HasFeature(b, Py_TPFLAGS_IMMUTABLETYPE)) { - if (PyErr_WarnFormat( - PyExc_DeprecationWarning, - 0, - "Creating immutable type %s from mutable base %s is " - "deprecated, and slated to be disallowed in Python 3.14.", - spec->name, - b->tp_name)) - { - goto finally; - } + /* Adjust for empty tuple bases */ + if (!bases) { + base = &PyBaseObject_Type; + /* See whether Py_tp_base(s) was specified */ + for (slot = spec->slots; slot->slot; slot++) { + if (slot->slot == Py_tp_base) + base = slot->pfunc; + else if (slot->slot == Py_tp_bases) { + bases = slot->pfunc; } } + if (!bases) { + bases = PyTuple_Pack(1, base); + if (!bases) + goto fail; + } + else if (!PyTuple_Check(bases)) { + PyErr_SetString(PyExc_SystemError, "Py_tp_bases is not a tuple"); + goto fail; + } + else { + Py_INCREF(bases); + } } - - /* Calculate the metaclass */ - - if (!metaclass) { - metaclass = &PyType_Type; - } - metaclass = _PyType_CalculateMetaclass(metaclass, bases); - if (metaclass == NULL) { - goto finally; - } - if (!PyType_Check(metaclass)) { - PyErr_Format(PyExc_TypeError, - "Metaclass '%R' is not a subclass of 'type'.", - metaclass); - goto finally; + else if (!PyTuple_Check(bases)) { + bases = PyTuple_Pack(1, bases); + if (!bases) + goto fail; } - if (metaclass->tp_new != PyType_Type.tp_new) { - PyErr_SetString(PyExc_TypeError, - "Metaclasses with custom tp_new are not supported."); - goto finally; + else { + Py_INCREF(bases); } /* Calculate best base, and check that all bases are type objects */ - PyTypeObject *base = best_base(bases); // borrowed ref + base = best_base(bases); if (base == NULL) { - goto finally; - } - // best_base should check Py_TPFLAGS_BASETYPE & raise a proper exception, - // here we just check its work - assert(_PyType_HasFeature(base, Py_TPFLAGS_BASETYPE)); - - /* Allocate the new type - * - * Between here and PyType_Ready, we should limit: - * - calls to Python code - * - raising exceptions - * - memory allocations - */ - - res = (PyHeapTypeObject*)metaclass->tp_alloc(metaclass, nmembers); - if (res == NULL) { - goto finally; + Py_DECREF(bases); + goto fail; + } + if (!_PyType_HasFeature(base, Py_TPFLAGS_BASETYPE)) { + PyErr_Format(PyExc_TypeError, + "type '%.100s' is not an acceptable base type", + base->tp_name); + Py_DECREF(bases); + goto fail; } - res_start = (char*)res; - - type = &res->ht_type; - /* The flags must be initialized early, before the GC traverses us */ - type->tp_flags = spec->flags | Py_TPFLAGS_HEAPTYPE; - - res->ht_module = Py_XNewRef(module); /* Initialize essential fields */ - type->tp_as_async = &res->as_async; type->tp_as_number = &res->as_number; type->tp_as_sequence = &res->as_sequence; type->tp_as_mapping = &res->as_mapping; type->tp_as_buffer = &res->as_buffer; - - /* Set slots we have prepared */ - - type->tp_base = (PyTypeObject *)Py_NewRef(base); + /* Set tp_base and tp_bases */ type->tp_bases = bases; - bases = NULL; // We give our reference to bases to the type - - type->tp_doc = tp_doc; - tp_doc = NULL; // Give ownership of the allocated memory to the type - - res->ht_qualname = Py_NewRef(ht_name); - res->ht_name = ht_name; - ht_name = NULL; // Give our reference to to the type - - type->tp_name = _ht_tpname; - res->_ht_tpname = _ht_tpname; - _ht_tpname = NULL; // Give ownership to to the type - - /* Copy the sizes */ + Py_INCREF(base); + type->tp_base = base; type->tp_basicsize = spec->basicsize; type->tp_itemsize = spec->itemsize; - /* Copy all the ordinary slots */ - for (slot = spec->slots; slot->slot; slot++) { - switch (slot->slot) { - case Py_tp_base: - case Py_tp_bases: - case Py_tp_doc: + if (slot->slot < 0 + || (size_t)slot->slot >= Py_ARRAY_LENGTH(pyslot_offsets)) { + PyErr_SetString(PyExc_RuntimeError, "invalid slot offset"); + goto fail; + } + else if (slot->slot == Py_tp_base || slot->slot == Py_tp_bases) { /* Processed above */ - break; - case Py_tp_members: - { - /* Move the slots to the heap type itself */ - size_t len = Py_TYPE(type)->tp_itemsize * nmembers; - memcpy(_PyHeapType_GET_MEMBERS(res), slot->pfunc, len); - type->tp_members = _PyHeapType_GET_MEMBERS(res); + continue; + } + else if (slot->slot == Py_tp_doc) { + /* For the docstring slot, which usually points to a static string + literal, we need to make a copy */ + if (slot->pfunc == NULL) { + type->tp_doc = NULL; + continue; } - break; - default: - { - /* Copy other slots directly */ - PySlot_Offset slotoffsets = pyslot_offsets[slot->slot]; - short slot_offset = slotoffsets.slot_offset; - if (slotoffsets.subslot_offset == -1) { - *(void**)((char*)res_start + slot_offset) = slot->pfunc; - } - else { - void *procs = *(void**)((char*)res_start + slot_offset); - short subslot_offset = slotoffsets.subslot_offset; - *(void**)((char*)procs + subslot_offset) = slot->pfunc; - } + size_t len = strlen(slot->pfunc)+1; + char *tp_doc = PyObject_Malloc(len); + if (tp_doc == NULL) { + type->tp_doc = NULL; + PyErr_NoMemory(); + goto fail; + } + memcpy(tp_doc, slot->pfunc, len); + type->tp_doc = tp_doc; + } + else if (slot->slot == Py_tp_members) { + /* Move the slots to the heap type itself */ + size_t len = Py_TYPE(type)->tp_itemsize * nmembers; + memcpy(_PyHeapType_GET_MEMBERS(res), slot->pfunc, len); + type->tp_members = _PyHeapType_GET_MEMBERS(res); + } + else { + /* Copy other slots directly */ + PySlot_Offset slotoffsets = pyslot_offsets[slot->slot]; + slot_offset = slotoffsets.slot_offset; + if (slotoffsets.subslot_offset == -1) { + *(void**)((char*)res_start + slot_offset) = slot->pfunc; + } else { + void *parent_slot = *(void**)((char*)res_start + slot_offset); + subslot_offset = slotoffsets.subslot_offset; + *(void**)((char*)parent_slot + subslot_offset) = slot->pfunc; } - break; } } if (type->tp_dealloc == NULL) { @@ -3805,87 +3580,69 @@ PyType_FromMetaclass(PyTypeObject *metaclass, PyObject *module, type->tp_dealloc = subtype_dealloc; } - /* Set up offsets */ - - type->tp_vectorcall_offset = vectorcalloffset; - type->tp_weaklistoffset = weaklistoffset; - type->tp_dictoffset = dictoffset; - - /* Ready the type (which includes inheritance). - * - * After this call we should generally only touch up what's - * accessible to Python code, like __dict__. - */ - - if (PyType_Ready(type) < 0) { - goto finally; + if (vectorcalloffset) { + type->tp_vectorcall_offset = vectorcalloffset; } - if (!check_basicsize_includes_size_and_offsets(type)) { - goto finally; + if (PyType_Ready(type) < 0) + goto fail; + + if (type->tp_flags & Py_TPFLAGS_MANAGED_DICT) { + res->ht_cached_keys = _PyDict_NewKeysForClass(); } if (type->tp_doc) { PyObject *__doc__ = PyUnicode_FromString(_PyType_DocWithoutSignature(type->tp_name, type->tp_doc)); - if (!__doc__) { - goto finally; - } + if (!__doc__) + goto fail; r = PyDict_SetItem(type->tp_dict, &_Py_ID(__doc__), __doc__); Py_DECREF(__doc__); - if (r < 0) { - goto finally; - } + if (r < 0) + goto fail; } if (weaklistoffset) { - if (PyDict_DelItem((PyObject *)type->tp_dict, &_Py_ID(__weaklistoffset__)) < 0) { - goto finally; - } + type->tp_weaklistoffset = weaklistoffset; + if (PyDict_DelItemString((PyObject *)type->tp_dict, "__weaklistoffset__") < 0) + goto fail; } if (dictoffset) { - if (PyDict_DelItem((PyObject *)type->tp_dict, &_Py_ID(__dictoffset__)) < 0) { - goto finally; - } + type->tp_dictoffset = dictoffset; + if (PyDict_DelItemString((PyObject *)type->tp_dict, "__dictoffset__") < 0) + goto fail; } /* Set type.__module__ */ r = PyDict_Contains(type->tp_dict, &_Py_ID(__module__)); if (r < 0) { - goto finally; + goto fail; } if (r == 0) { s = strrchr(spec->name, '.'); if (s != NULL) { - PyObject *modname = PyUnicode_FromStringAndSize( + modname = PyUnicode_FromStringAndSize( spec->name, (Py_ssize_t)(s - spec->name)); if (modname == NULL) { - goto finally; + goto fail; } r = PyDict_SetItem(type->tp_dict, &_Py_ID(__module__), modname); Py_DECREF(modname); - if (r != 0) { - goto finally; - } - } - else { + if (r != 0) + goto fail; + } else { if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1, "builtin type %.200s has no __module__ attribute", spec->name)) - goto finally; + goto fail; } } assert(_PyType_CheckConsistency(type)); - - finally: - if (PyErr_Occurred()) { - Py_CLEAR(res); - } - Py_XDECREF(bases); - PyObject_Free(tp_doc); - Py_XDECREF(ht_name); - PyMem_Free(_ht_tpname); return (PyObject*)res; + + fail: + Py_DECREF(res); + return NULL; } PyObject * @@ -4270,7 +4027,7 @@ type_setattro(PyTypeObject *type, PyObject *name, PyObject *value) if (name == NULL) return -1; } - /* bpo-40521: Interned strings are shared by all subinterpreters */ +#ifdef INTERN_NAME_STRINGS if (!PyUnicode_CHECK_INTERNED(name)) { PyUnicode_InternInPlace(&name); if (!PyUnicode_CHECK_INTERNED(name)) { @@ -4280,6 +4037,7 @@ type_setattro(PyTypeObject *type, PyObject *name, PyObject *value) return -1; } } +#endif } else { /* Will fail in _PyObject_GenericSetAttrWithDict. */ @@ -4319,55 +4077,15 @@ type_dealloc_common(PyTypeObject *type) } -static void clear_subclasses(PyTypeObject *self); - -static void -clear_static_tp_subclasses(PyTypeObject *type) -{ - PyObject *subclasses = lookup_subclasses(type); - if (subclasses == NULL) { - return; - } - - /* Normally it would be a problem to finalize the type if its - tp_subclasses wasn't cleared first. However, this is only - ever called at the end of runtime finalization, so we can be - more liberal in cleaning up. If the given type still has - subtypes at this point then some extension module did not - correctly finalize its objects. - - We can safely obliterate such subtypes since the extension - module and its objects won't be used again, except maybe if - the runtime were re-initialized. In that case the sticky - situation would only happen if the module were re-imported - then and only if the subtype were stored in a global and only - if that global were not overwritten during import. We'd be - fine since the extension is otherwise unsafe and unsupported - in that situation, and likely problematic already. - - In any case, this situation means at least some memory is - going to leak. This mostly only affects embedding scenarios. - */ - - // For now we just do a sanity check and then clear tp_subclasses. - Py_ssize_t i = 0; - PyObject *key, *ref; // borrowed ref - while (PyDict_Next(subclasses, &i, &key, &ref)) { - PyTypeObject *subclass = subclass_from_ref(ref); // borrowed - if (subclass == NULL) { - continue; - } - // All static builtin subtypes should have been finalized already. - assert(!(subclass->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN)); - } - - clear_subclasses(type); -} - void _PyStaticType_Dealloc(PyTypeObject *type) { - assert(!(type->tp_flags & Py_TPFLAGS_HEAPTYPE)); + // If a type still has subtypes, it cannot be deallocated. + // A subtype can inherit attributes and methods of its parent type, + // and a type must no longer be used once it's deallocated. + if (type->tp_subclasses != NULL) { + return; + } type_dealloc_common(type); @@ -4375,7 +4093,7 @@ _PyStaticType_Dealloc(PyTypeObject *type) Py_CLEAR(type->tp_bases); Py_CLEAR(type->tp_mro); Py_CLEAR(type->tp_cache); - clear_static_tp_subclasses(type); + // type->tp_subclasses is NULL // PyObject_ClearWeakRefs() raises an exception if Py_REFCNT() != 0 if (Py_REFCNT(type) == 0) { @@ -4383,12 +4101,6 @@ _PyStaticType_Dealloc(PyTypeObject *type) } type->tp_flags &= ~Py_TPFLAGS_READY; - - if (type->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN) { - _PyStaticType_ClearWeakRefs(type); - static_builtin_state_clear(type); - /* We leave _Py_TPFLAGS_STATIC_BUILTIN set on tp_flags. */ - } } @@ -4411,7 +4123,7 @@ type_dealloc(PyTypeObject *type) Py_XDECREF(type->tp_bases); Py_XDECREF(type->tp_mro); Py_XDECREF(type->tp_cache); - clear_subclasses(type); + Py_XDECREF(type->tp_subclasses); /* A type's tp_doc is heap allocated, unlike the tp_doc slots * of most other objects. It's okay to cast it to char *. @@ -4431,30 +4143,6 @@ type_dealloc(PyTypeObject *type) } -static PyObject * -lookup_subclasses(PyTypeObject *self) -{ - if (self->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN) { - static_builtin_state *state = _PyStaticType_GetState(self); - assert(state != NULL); - return state->tp_subclasses; - } - return (PyObject *)self->tp_subclasses; -} - -int -_PyType_HasSubclasses(PyTypeObject *self) -{ - if (self->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN && - _PyStaticType_GetState(self) == NULL) { - return 0; - } - if (lookup_subclasses(self) == NULL) { - return 0; - } - return 1; -} - PyObject* _PyType_GetSubclasses(PyTypeObject *self) { @@ -4463,7 +4151,7 @@ _PyType_GetSubclasses(PyTypeObject *self) return NULL; } - PyObject *subclasses = lookup_subclasses(self); // borrowed ref + PyObject *subclasses = self->tp_subclasses; // borrowed ref if (subclasses == NULL) { return list; } @@ -4474,12 +4162,14 @@ _PyType_GetSubclasses(PyTypeObject *self) Py_ssize_t i = 0; PyObject *ref; // borrowed ref while (PyDict_Next(subclasses, &i, NULL, &ref)) { - PyTypeObject *subclass = subclass_from_ref(ref); // borrowed - if (subclass == NULL) { + assert(PyWeakref_CheckRef(ref)); + PyObject *obj = PyWeakref_GET_OBJECT(ref); // borrowed ref + if (obj == Py_None) { continue; } + assert(PyType_Check(obj)); - if (PyList_Append(list, _PyObject_CAST(subclass)) < 0) { + if (PyList_Append(list, obj) < 0) { Py_DECREF(list); return NULL; } @@ -5085,9 +4775,9 @@ compatible_for_assignment(PyTypeObject* oldto, PyTypeObject* newto, const char* !same_slots_added(newbase, oldbase))) { goto differs; } - /* The above does not check for the preheader */ - if ((oldto->tp_flags & Py_TPFLAGS_PREHEADER) == - ((newto->tp_flags & Py_TPFLAGS_PREHEADER))) + /* The above does not check for managed __dicts__ */ + if ((oldto->tp_flags & Py_TPFLAGS_MANAGED_DICT) == + ((newto->tp_flags & Py_TPFLAGS_MANAGED_DICT))) { return 1; } @@ -5186,11 +4876,9 @@ object_set_class(PyObject *self, PyObject *value, void *closure) if (compatible_for_assignment(oldto, newto, "__class__")) { /* Changing the class will change the implicit dict keys, * so we must materialize the dictionary first. */ - assert((oldto->tp_flags & Py_TPFLAGS_PREHEADER) == (newto->tp_flags & Py_TPFLAGS_PREHEADER)); + assert((oldto->tp_flags & Py_TPFLAGS_MANAGED_DICT) == (newto->tp_flags & Py_TPFLAGS_MANAGED_DICT)); _PyObject_GetDictPtr(self); - if (oldto->tp_flags & Py_TPFLAGS_MANAGED_DICT && - _PyDictOrValues_IsValues(*_PyObject_DictOrValuesPointer(self))) - { + if (oldto->tp_flags & Py_TPFLAGS_MANAGED_DICT && *_PyObject_ValuesPointer(self)) { /* Was unable to convert to dict */ PyErr_NoMemory(); return -1; @@ -5329,7 +5017,7 @@ object_getstate_default(PyObject *obj, int required) { basicsize += sizeof(PyObject *); } - if (Py_TYPE(obj)->tp_weaklistoffset > 0) { + if (Py_TYPE(obj)->tp_weaklistoffset) { basicsize += sizeof(PyObject *); } if (slotnames != Py_None) { @@ -5431,7 +5119,7 @@ object_getstate(PyObject *obj, int required) PyCFunction_GET_SELF(getstate) == obj && PyCFunction_GET_FUNCTION(getstate) == object___getstate__) { - /* If __getstate__ is not overridden pass the required argument. */ + /* If __getstate__ is not overriden pass the required argument. */ state = object_getstate_default(obj, required); } else { @@ -6119,7 +5807,7 @@ inherit_special(PyTypeObject *type, PyTypeObject *base) if (type->tp_clear == NULL) type->tp_clear = base->tp_clear; } - type->tp_flags |= (base->tp_flags & Py_TPFLAGS_PREHEADER); + type->tp_flags |= (base->tp_flags & Py_TPFLAGS_MANAGED_DICT); if (type->tp_basicsize == 0) type->tp_basicsize = base->tp_basicsize; @@ -6132,7 +5820,6 @@ inherit_special(PyTypeObject *type, PyTypeObject *base) COPYVAL(tp_itemsize); COPYVAL(tp_weaklistoffset); COPYVAL(tp_dictoffset); - #undef COPYVAL /* Setup fast subclass flags */ @@ -6306,9 +5993,11 @@ inherit_slots(PyTypeObject *type, PyTypeObject *base) * won't be used automatically. */ COPYSLOT(tp_vectorcall_offset); - /* Inherit Py_TPFLAGS_HAVE_VECTORCALL if tp_call is not overridden */ + /* Inherit Py_TPFLAGS_HAVE_VECTORCALL for non-heap types + * if tp_call is not overridden */ if (!type->tp_call && - _PyType_HasFeature(base, Py_TPFLAGS_HAVE_VECTORCALL)) + _PyType_HasFeature(base, Py_TPFLAGS_HAVE_VECTORCALL) && + _PyType_HasFeature(type, Py_TPFLAGS_IMMUTABLETYPE)) { type->tp_flags |= Py_TPFLAGS_HAVE_VECTORCALL; } @@ -6539,33 +6228,6 @@ type_ready_fill_dict(PyTypeObject *type) return 0; } -static int -type_ready_preheader(PyTypeObject *type) -{ - if (type->tp_flags & Py_TPFLAGS_MANAGED_DICT) { - if (type->tp_dictoffset > 0 || type->tp_dictoffset < -1) { - PyErr_Format(PyExc_TypeError, - "type %s has the Py_TPFLAGS_MANAGED_DICT flag " - "but tp_dictoffset is set", - type->tp_name); - return -1; - } - type->tp_dictoffset = -1; - } - if (type->tp_flags & Py_TPFLAGS_MANAGED_WEAKREF) { - if (type->tp_weaklistoffset != 0 && - type->tp_weaklistoffset != MANAGED_WEAKREF_OFFSET) - { - PyErr_Format(PyExc_TypeError, - "type %s has the Py_TPFLAGS_MANAGED_WEAKREF flag " - "but tp_weaklistoffset is set", - type->tp_name); - return -1; - } - type->tp_weaklistoffset = MANAGED_WEAKREF_OFFSET; - } - return 0; -} static int type_ready_mro(PyTypeObject *type) @@ -6759,29 +6421,6 @@ type_ready_set_new(PyTypeObject *type) return 0; } -static int -type_ready_managed_dict(PyTypeObject *type) -{ - if (!(type->tp_flags & Py_TPFLAGS_MANAGED_DICT)) { - return 0; - } - if (!(type->tp_flags & Py_TPFLAGS_HEAPTYPE)) { - PyErr_Format(PyExc_SystemError, - "type %s has the Py_TPFLAGS_MANAGED_DICT flag " - "but not Py_TPFLAGS_HEAPTYPE flag", - type->tp_name); - return -1; - } - PyHeapTypeObject* et = (PyHeapTypeObject*)type; - if (et->ht_cached_keys == NULL) { - et->ht_cached_keys = _PyDict_NewKeysForClass(); - if (et->ht_cached_keys == NULL) { - PyErr_NoMemory(); - return -1; - } - } - return 0; -} static int type_ready_post_checks(PyTypeObject *type) @@ -6797,21 +6436,6 @@ type_ready_post_checks(PyTypeObject *type) type->tp_name); return -1; } - if (type->tp_flags & Py_TPFLAGS_MANAGED_DICT) { - if (type->tp_dictoffset != -1) { - PyErr_Format(PyExc_SystemError, - "type %s has the Py_TPFLAGS_MANAGED_DICT flag " - "but tp_dictoffset is set to incompatible value", - type->tp_name); - return -1; - } - } - else if (type->tp_dictoffset < (Py_ssize_t)sizeof(PyObject)) { - if (type->tp_dictoffset + type->tp_basicsize <= 0) { - PyErr_Format(PyExc_SystemError, - "type %s has a tp_dictoffset that is too small"); - } - } return 0; } @@ -6851,18 +6475,12 @@ type_ready(PyTypeObject *type) if (type_ready_inherit(type) < 0) { return -1; } - if (type_ready_preheader(type) < 0) { - return -1; - } if (type_ready_set_hash(type) < 0) { return -1; } if (type_ready_add_subclasses(type) < 0) { return -1; } - if (type_ready_managed_dict(type) < 0) { - return -1; - } if (type_ready_post_checks(type) < 0) { return -1; } @@ -6898,50 +6516,6 @@ PyType_Ready(PyTypeObject *type) return 0; } -int -_PyStaticType_InitBuiltin(PyTypeObject *self) -{ - self->tp_flags = self->tp_flags | _Py_TPFLAGS_STATIC_BUILTIN; - - static_builtin_state_init(self); - - int res = PyType_Ready(self); - if (res < 0) { - static_builtin_state_clear(self); - } - return res; -} - - -static PyObject * -init_subclasses(PyTypeObject *self) -{ - PyObject *subclasses = PyDict_New(); - if (subclasses == NULL) { - return NULL; - } - if (self->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN) { - static_builtin_state *state = _PyStaticType_GetState(self); - state->tp_subclasses = subclasses; - return subclasses; - } - self->tp_subclasses = (void *)subclasses; - return subclasses; -} - -static void -clear_subclasses(PyTypeObject *self) -{ - /* Delete the dictionary to save memory. _PyStaticType_Dealloc() - callers also test if tp_subclasses is NULL to check if a static type - has no subclass. */ - if (self->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN) { - static_builtin_state *state = _PyStaticType_GetState(self); - Py_CLEAR(state->tp_subclasses); - return; - } - Py_CLEAR(self->tp_subclasses); -} static int add_subclass(PyTypeObject *base, PyTypeObject *type) @@ -6959,14 +6533,11 @@ add_subclass(PyTypeObject *base, PyTypeObject *type) // Only get tp_subclasses after creating the key and value. // PyWeakref_NewRef() can trigger a garbage collection which can execute // arbitrary Python code and so modify base->tp_subclasses. - PyObject *subclasses = lookup_subclasses(base); + PyObject *subclasses = base->tp_subclasses; if (subclasses == NULL) { - subclasses = init_subclasses(base); - if (subclasses == NULL) { - Py_DECREF(key); - Py_DECREF(ref); + base->tp_subclasses = subclasses = PyDict_New(); + if (subclasses == NULL) return -1; - } } assert(PyDict_CheckExact(subclasses)); @@ -6992,56 +6563,17 @@ add_all_subclasses(PyTypeObject *type, PyObject *bases) return res; } -static inline PyTypeObject * -subclass_from_ref(PyObject *ref) -{ - assert(PyWeakref_CheckRef(ref)); - PyObject *obj = PyWeakref_GET_OBJECT(ref); // borrowed ref - assert(obj != NULL); - if (obj == Py_None) { - return NULL; - } - assert(PyType_Check(obj)); - return _PyType_CAST(obj); -} - -static PyObject * -get_subclasses_key(PyTypeObject *type, PyTypeObject *base) -{ - PyObject *key = PyLong_FromVoidPtr((void *) type); - if (key != NULL) { - return key; - } - PyErr_Clear(); - - /* This basically means we're out of memory. - We fall back to manually traversing the values. */ - Py_ssize_t i = 0; - PyObject *ref; // borrowed ref - PyObject *subclasses = lookup_subclasses(base); - if (subclasses != NULL) { - while (PyDict_Next(subclasses, &i, &key, &ref)) { - PyTypeObject *subclass = subclass_from_ref(ref); // borrowed - if (subclass == type) { - return Py_NewRef(key); - } - } - } - /* It wasn't found. */ - return NULL; -} - static void remove_subclass(PyTypeObject *base, PyTypeObject *type) { - PyObject *subclasses = lookup_subclasses(base); // borrowed ref + PyObject *subclasses = base->tp_subclasses; // borrowed ref if (subclasses == NULL) { return; } assert(PyDict_CheckExact(subclasses)); - PyObject *key = get_subclasses_key(type, base); - if (key != NULL && PyDict_DelItem(subclasses, key)) { + PyObject *key = PyLong_FromVoidPtr((void *) type); + if (key == NULL || PyDict_DelItem(subclasses, key)) { /* This can happen if the type initialization errored out before the base subclasses were updated (e.g. a non-str __qualname__ was passed in the type dict). */ @@ -7050,7 +6582,10 @@ remove_subclass(PyTypeObject *base, PyTypeObject *type) Py_XDECREF(key); if (PyDict_Size(subclasses) == 0) { - clear_subclasses(base); + // Delete the dictionary to save memory. _PyStaticType_Dealloc() + // callers also test if tp_subclasses is NULL to check if a static type + // has no subclass. + Py_CLEAR(base->tp_subclasses); } } @@ -7512,7 +7047,7 @@ wrap_descr_get(PyObject *self, PyObject *args, void *wrapped) obj = NULL; if (type == Py_None) type = NULL; - if (type == NULL && obj == NULL) { + if (type == NULL &&obj == NULL) { PyErr_SetString(PyExc_TypeError, "__get__(None, None) is invalid"); return NULL; @@ -8096,33 +7631,26 @@ slot_tp_call(PyObject *self, PyObject *args, PyObject *kwds) /* There are two slot dispatch functions for tp_getattro. - - _Py_slot_tp_getattro() is used when __getattribute__ is overridden + - slot_tp_getattro() is used when __getattribute__ is overridden but no __getattr__ hook is present; - - _Py_slot_tp_getattr_hook() is used when a __getattr__ hook is present. + - slot_tp_getattr_hook() is used when a __getattr__ hook is present. - The code in update_one_slot() always installs _Py_slot_tp_getattr_hook(); - this detects the absence of __getattr__ and then installs the simpler - slot if necessary. */ + The code in update_one_slot() always installs slot_tp_getattr_hook(); this + detects the absence of __getattr__ and then installs the simpler slot if + necessary. */ -PyObject * -_Py_slot_tp_getattro(PyObject *self, PyObject *name) +static PyObject * +slot_tp_getattro(PyObject *self, PyObject *name) { PyObject *stack[2] = {self, name}; return vectorcall_method(&_Py_ID(__getattribute__), stack, 2); } -static inline PyObject * +static PyObject * call_attribute(PyObject *self, PyObject *attr, PyObject *name) { PyObject *res, *descr = NULL; - - if (_PyType_HasFeature(Py_TYPE(attr), Py_TPFLAGS_METHOD_DESCRIPTOR)) { - PyObject *args[] = { self, name }; - res = PyObject_Vectorcall(attr, args, 2, NULL); - return res; - } - descrgetfunc f = Py_TYPE(attr)->tp_descr_get; if (f != NULL) { @@ -8137,8 +7665,8 @@ call_attribute(PyObject *self, PyObject *attr, PyObject *name) return res; } -PyObject * -_Py_slot_tp_getattr_hook(PyObject *self, PyObject *name) +static PyObject * +slot_tp_getattr_hook(PyObject *self, PyObject *name) { PyTypeObject *tp = Py_TYPE(self); PyObject *getattr, *getattribute, *res; @@ -8151,8 +7679,8 @@ _Py_slot_tp_getattr_hook(PyObject *self, PyObject *name) getattr = _PyType_Lookup(tp, &_Py_ID(__getattr__)); if (getattr == NULL) { /* No __getattr__ hook: use a simpler dispatcher */ - tp->tp_getattro = _Py_slot_tp_getattro; - return _Py_slot_tp_getattro(self, name); + tp->tp_getattro = slot_tp_getattro; + return slot_tp_getattro(self, name); } Py_INCREF(getattr); /* speed hack: we could use lookup_maybe, but that would resolve the @@ -8285,8 +7813,7 @@ slot_tp_descr_get(PyObject *self, PyObject *obj, PyObject *type) obj = Py_None; if (type == NULL) type = Py_None; - PyObject *stack[3] = {self, obj, type}; - return PyObject_Vectorcall(get, stack, 3, NULL); + return PyObject_CallFunctionObjArgs(get, self, obj, type, NULL); } static int @@ -8445,7 +7972,8 @@ which incorporates the additional structures used for numbers, sequences and mappings. Note that multiple names may map to the same slot (e.g. __eq__, __ne__ etc. all map to tp_richcompare) and one name may map to multiple slots (e.g. __str__ affects tp_str as well as tp_repr). The table is terminated with -an all-zero entry. +an all-zero entry. (This table is further initialized in +_PyTypes_InitSlotDefs().) */ typedef struct wrapperbase slotdef; @@ -8463,14 +7991,14 @@ typedef struct wrapperbase slotdef; #undef RBINSLOT #define TPSLOT(NAME, SLOT, FUNCTION, WRAPPER, DOC) \ - {#NAME, offsetof(PyTypeObject, SLOT), (void *)(FUNCTION), WRAPPER, \ - PyDoc_STR(DOC), .name_strobj = &_Py_ID(NAME)} + {NAME, offsetof(PyTypeObject, SLOT), (void *)(FUNCTION), WRAPPER, \ + PyDoc_STR(DOC)} #define FLSLOT(NAME, SLOT, FUNCTION, WRAPPER, DOC, FLAGS) \ - {#NAME, offsetof(PyTypeObject, SLOT), (void *)(FUNCTION), WRAPPER, \ - PyDoc_STR(DOC), FLAGS, .name_strobj = &_Py_ID(NAME) } + {NAME, offsetof(PyTypeObject, SLOT), (void *)(FUNCTION), WRAPPER, \ + PyDoc_STR(DOC), FLAGS} #define ETSLOT(NAME, SLOT, FUNCTION, WRAPPER, DOC) \ - {#NAME, offsetof(PyHeapTypeObject, SLOT), (void *)(FUNCTION), WRAPPER, \ - PyDoc_STR(DOC), .name_strobj = &_Py_ID(NAME) } + {NAME, offsetof(PyHeapTypeObject, SLOT), (void *)(FUNCTION), WRAPPER, \ + PyDoc_STR(DOC)} #define AMSLOT(NAME, SLOT, FUNCTION, WRAPPER, DOC) \ ETSLOT(NAME, as_async.SLOT, FUNCTION, WRAPPER, DOC) #define SQSLOT(NAME, SLOT, FUNCTION, WRAPPER, DOC) \ @@ -8481,204 +8009,204 @@ typedef struct wrapperbase slotdef; ETSLOT(NAME, as_number.SLOT, FUNCTION, WRAPPER, DOC) #define UNSLOT(NAME, SLOT, FUNCTION, WRAPPER, DOC) \ ETSLOT(NAME, as_number.SLOT, FUNCTION, WRAPPER, \ - #NAME "($self, /)\n--\n\n" DOC) + NAME "($self, /)\n--\n\n" DOC) #define IBSLOT(NAME, SLOT, FUNCTION, WRAPPER, DOC) \ ETSLOT(NAME, as_number.SLOT, FUNCTION, WRAPPER, \ - #NAME "($self, value, /)\n--\n\nReturn self" DOC "value.") + NAME "($self, value, /)\n--\n\nReturn self" DOC "value.") #define BINSLOT(NAME, SLOT, FUNCTION, DOC) \ ETSLOT(NAME, as_number.SLOT, FUNCTION, wrap_binaryfunc_l, \ - #NAME "($self, value, /)\n--\n\nReturn self" DOC "value.") + NAME "($self, value, /)\n--\n\nReturn self" DOC "value.") #define RBINSLOT(NAME, SLOT, FUNCTION, DOC) \ ETSLOT(NAME, as_number.SLOT, FUNCTION, wrap_binaryfunc_r, \ - #NAME "($self, value, /)\n--\n\nReturn value" DOC "self.") + NAME "($self, value, /)\n--\n\nReturn value" DOC "self.") #define BINSLOTNOTINFIX(NAME, SLOT, FUNCTION, DOC) \ ETSLOT(NAME, as_number.SLOT, FUNCTION, wrap_binaryfunc_l, \ - #NAME "($self, value, /)\n--\n\n" DOC) + NAME "($self, value, /)\n--\n\n" DOC) #define RBINSLOTNOTINFIX(NAME, SLOT, FUNCTION, DOC) \ ETSLOT(NAME, as_number.SLOT, FUNCTION, wrap_binaryfunc_r, \ - #NAME "($self, value, /)\n--\n\n" DOC) + NAME "($self, value, /)\n--\n\n" DOC) static slotdef slotdefs[] = { - TPSLOT(__getattribute__, tp_getattr, NULL, NULL, ""), - TPSLOT(__getattr__, tp_getattr, NULL, NULL, ""), - TPSLOT(__setattr__, tp_setattr, NULL, NULL, ""), - TPSLOT(__delattr__, tp_setattr, NULL, NULL, ""), - TPSLOT(__repr__, tp_repr, slot_tp_repr, wrap_unaryfunc, + TPSLOT("__getattribute__", tp_getattr, NULL, NULL, ""), + TPSLOT("__getattr__", tp_getattr, NULL, NULL, ""), + TPSLOT("__setattr__", tp_setattr, NULL, NULL, ""), + TPSLOT("__delattr__", tp_setattr, NULL, NULL, ""), + TPSLOT("__repr__", tp_repr, slot_tp_repr, wrap_unaryfunc, "__repr__($self, /)\n--\n\nReturn repr(self)."), - TPSLOT(__hash__, tp_hash, slot_tp_hash, wrap_hashfunc, + TPSLOT("__hash__", tp_hash, slot_tp_hash, wrap_hashfunc, "__hash__($self, /)\n--\n\nReturn hash(self)."), - FLSLOT(__call__, tp_call, slot_tp_call, (wrapperfunc)(void(*)(void))wrap_call, + FLSLOT("__call__", tp_call, slot_tp_call, (wrapperfunc)(void(*)(void))wrap_call, "__call__($self, /, *args, **kwargs)\n--\n\nCall self as a function.", PyWrapperFlag_KEYWORDS), - TPSLOT(__str__, tp_str, slot_tp_str, wrap_unaryfunc, + TPSLOT("__str__", tp_str, slot_tp_str, wrap_unaryfunc, "__str__($self, /)\n--\n\nReturn str(self)."), - TPSLOT(__getattribute__, tp_getattro, _Py_slot_tp_getattr_hook, + TPSLOT("__getattribute__", tp_getattro, slot_tp_getattr_hook, wrap_binaryfunc, "__getattribute__($self, name, /)\n--\n\nReturn getattr(self, name)."), - TPSLOT(__getattr__, tp_getattro, _Py_slot_tp_getattr_hook, NULL, ""), - TPSLOT(__setattr__, tp_setattro, slot_tp_setattro, wrap_setattr, + TPSLOT("__getattr__", tp_getattro, slot_tp_getattr_hook, NULL, ""), + TPSLOT("__setattr__", tp_setattro, slot_tp_setattro, wrap_setattr, "__setattr__($self, name, value, /)\n--\n\nImplement setattr(self, name, value)."), - TPSLOT(__delattr__, tp_setattro, slot_tp_setattro, wrap_delattr, + TPSLOT("__delattr__", tp_setattro, slot_tp_setattro, wrap_delattr, "__delattr__($self, name, /)\n--\n\nImplement delattr(self, name)."), - TPSLOT(__lt__, tp_richcompare, slot_tp_richcompare, richcmp_lt, + TPSLOT("__lt__", tp_richcompare, slot_tp_richcompare, richcmp_lt, "__lt__($self, value, /)\n--\n\nReturn self<value."), - TPSLOT(__le__, tp_richcompare, slot_tp_richcompare, richcmp_le, + TPSLOT("__le__", tp_richcompare, slot_tp_richcompare, richcmp_le, "__le__($self, value, /)\n--\n\nReturn self<=value."), - TPSLOT(__eq__, tp_richcompare, slot_tp_richcompare, richcmp_eq, + TPSLOT("__eq__", tp_richcompare, slot_tp_richcompare, richcmp_eq, "__eq__($self, value, /)\n--\n\nReturn self==value."), - TPSLOT(__ne__, tp_richcompare, slot_tp_richcompare, richcmp_ne, + TPSLOT("__ne__", tp_richcompare, slot_tp_richcompare, richcmp_ne, "__ne__($self, value, /)\n--\n\nReturn self!=value."), - TPSLOT(__gt__, tp_richcompare, slot_tp_richcompare, richcmp_gt, + TPSLOT("__gt__", tp_richcompare, slot_tp_richcompare, richcmp_gt, "__gt__($self, value, /)\n--\n\nReturn self>value."), - TPSLOT(__ge__, tp_richcompare, slot_tp_richcompare, richcmp_ge, + TPSLOT("__ge__", tp_richcompare, slot_tp_richcompare, richcmp_ge, "__ge__($self, value, /)\n--\n\nReturn self>=value."), - TPSLOT(__iter__, tp_iter, slot_tp_iter, wrap_unaryfunc, + TPSLOT("__iter__", tp_iter, slot_tp_iter, wrap_unaryfunc, "__iter__($self, /)\n--\n\nImplement iter(self)."), - TPSLOT(__next__, tp_iternext, slot_tp_iternext, wrap_next, + TPSLOT("__next__", tp_iternext, slot_tp_iternext, wrap_next, "__next__($self, /)\n--\n\nImplement next(self)."), - TPSLOT(__get__, tp_descr_get, slot_tp_descr_get, wrap_descr_get, - "__get__($self, instance, owner=None, /)\n--\n\nReturn an attribute of instance, which is of type owner."), - TPSLOT(__set__, tp_descr_set, slot_tp_descr_set, wrap_descr_set, + TPSLOT("__get__", tp_descr_get, slot_tp_descr_get, wrap_descr_get, + "__get__($self, instance, owner, /)\n--\n\nReturn an attribute of instance, which is of type owner."), + TPSLOT("__set__", tp_descr_set, slot_tp_descr_set, wrap_descr_set, "__set__($self, instance, value, /)\n--\n\nSet an attribute of instance to value."), - TPSLOT(__delete__, tp_descr_set, slot_tp_descr_set, + TPSLOT("__delete__", tp_descr_set, slot_tp_descr_set, wrap_descr_delete, "__delete__($self, instance, /)\n--\n\nDelete an attribute of instance."), - FLSLOT(__init__, tp_init, slot_tp_init, (wrapperfunc)(void(*)(void))wrap_init, + FLSLOT("__init__", tp_init, slot_tp_init, (wrapperfunc)(void(*)(void))wrap_init, "__init__($self, /, *args, **kwargs)\n--\n\n" "Initialize self. See help(type(self)) for accurate signature.", PyWrapperFlag_KEYWORDS), - TPSLOT(__new__, tp_new, slot_tp_new, NULL, + TPSLOT("__new__", tp_new, slot_tp_new, NULL, "__new__(type, /, *args, **kwargs)\n--\n\n" "Create and return new object. See help(type) for accurate signature."), - TPSLOT(__del__, tp_finalize, slot_tp_finalize, (wrapperfunc)wrap_del, ""), + TPSLOT("__del__", tp_finalize, slot_tp_finalize, (wrapperfunc)wrap_del, ""), - AMSLOT(__await__, am_await, slot_am_await, wrap_unaryfunc, + AMSLOT("__await__", am_await, slot_am_await, wrap_unaryfunc, "__await__($self, /)\n--\n\nReturn an iterator to be used in await expression."), - AMSLOT(__aiter__, am_aiter, slot_am_aiter, wrap_unaryfunc, + AMSLOT("__aiter__", am_aiter, slot_am_aiter, wrap_unaryfunc, "__aiter__($self, /)\n--\n\nReturn an awaitable, that resolves in asynchronous iterator."), - AMSLOT(__anext__, am_anext, slot_am_anext, wrap_unaryfunc, + AMSLOT("__anext__", am_anext, slot_am_anext, wrap_unaryfunc, "__anext__($self, /)\n--\n\nReturn a value or raise StopAsyncIteration."), - BINSLOT(__add__, nb_add, slot_nb_add, + BINSLOT("__add__", nb_add, slot_nb_add, "+"), - RBINSLOT(__radd__, nb_add, slot_nb_add, + RBINSLOT("__radd__", nb_add, slot_nb_add, "+"), - BINSLOT(__sub__, nb_subtract, slot_nb_subtract, + BINSLOT("__sub__", nb_subtract, slot_nb_subtract, "-"), - RBINSLOT(__rsub__, nb_subtract, slot_nb_subtract, + RBINSLOT("__rsub__", nb_subtract, slot_nb_subtract, "-"), - BINSLOT(__mul__, nb_multiply, slot_nb_multiply, + BINSLOT("__mul__", nb_multiply, slot_nb_multiply, "*"), - RBINSLOT(__rmul__, nb_multiply, slot_nb_multiply, + RBINSLOT("__rmul__", nb_multiply, slot_nb_multiply, "*"), - BINSLOT(__mod__, nb_remainder, slot_nb_remainder, + BINSLOT("__mod__", nb_remainder, slot_nb_remainder, "%"), - RBINSLOT(__rmod__, nb_remainder, slot_nb_remainder, + RBINSLOT("__rmod__", nb_remainder, slot_nb_remainder, "%"), - BINSLOTNOTINFIX(__divmod__, nb_divmod, slot_nb_divmod, + BINSLOTNOTINFIX("__divmod__", nb_divmod, slot_nb_divmod, "Return divmod(self, value)."), - RBINSLOTNOTINFIX(__rdivmod__, nb_divmod, slot_nb_divmod, + RBINSLOTNOTINFIX("__rdivmod__", nb_divmod, slot_nb_divmod, "Return divmod(value, self)."), - NBSLOT(__pow__, nb_power, slot_nb_power, wrap_ternaryfunc, + NBSLOT("__pow__", nb_power, slot_nb_power, wrap_ternaryfunc, "__pow__($self, value, mod=None, /)\n--\n\nReturn pow(self, value, mod)."), - NBSLOT(__rpow__, nb_power, slot_nb_power, wrap_ternaryfunc_r, + NBSLOT("__rpow__", nb_power, slot_nb_power, wrap_ternaryfunc_r, "__rpow__($self, value, mod=None, /)\n--\n\nReturn pow(value, self, mod)."), - UNSLOT(__neg__, nb_negative, slot_nb_negative, wrap_unaryfunc, "-self"), - UNSLOT(__pos__, nb_positive, slot_nb_positive, wrap_unaryfunc, "+self"), - UNSLOT(__abs__, nb_absolute, slot_nb_absolute, wrap_unaryfunc, + UNSLOT("__neg__", nb_negative, slot_nb_negative, wrap_unaryfunc, "-self"), + UNSLOT("__pos__", nb_positive, slot_nb_positive, wrap_unaryfunc, "+self"), + UNSLOT("__abs__", nb_absolute, slot_nb_absolute, wrap_unaryfunc, "abs(self)"), - UNSLOT(__bool__, nb_bool, slot_nb_bool, wrap_inquirypred, + UNSLOT("__bool__", nb_bool, slot_nb_bool, wrap_inquirypred, "True if self else False"), - UNSLOT(__invert__, nb_invert, slot_nb_invert, wrap_unaryfunc, "~self"), - BINSLOT(__lshift__, nb_lshift, slot_nb_lshift, "<<"), - RBINSLOT(__rlshift__, nb_lshift, slot_nb_lshift, "<<"), - BINSLOT(__rshift__, nb_rshift, slot_nb_rshift, ">>"), - RBINSLOT(__rrshift__, nb_rshift, slot_nb_rshift, ">>"), - BINSLOT(__and__, nb_and, slot_nb_and, "&"), - RBINSLOT(__rand__, nb_and, slot_nb_and, "&"), - BINSLOT(__xor__, nb_xor, slot_nb_xor, "^"), - RBINSLOT(__rxor__, nb_xor, slot_nb_xor, "^"), - BINSLOT(__or__, nb_or, slot_nb_or, "|"), - RBINSLOT(__ror__, nb_or, slot_nb_or, "|"), - UNSLOT(__int__, nb_int, slot_nb_int, wrap_unaryfunc, + UNSLOT("__invert__", nb_invert, slot_nb_invert, wrap_unaryfunc, "~self"), + BINSLOT("__lshift__", nb_lshift, slot_nb_lshift, "<<"), + RBINSLOT("__rlshift__", nb_lshift, slot_nb_lshift, "<<"), + BINSLOT("__rshift__", nb_rshift, slot_nb_rshift, ">>"), + RBINSLOT("__rrshift__", nb_rshift, slot_nb_rshift, ">>"), + BINSLOT("__and__", nb_and, slot_nb_and, "&"), + RBINSLOT("__rand__", nb_and, slot_nb_and, "&"), + BINSLOT("__xor__", nb_xor, slot_nb_xor, "^"), + RBINSLOT("__rxor__", nb_xor, slot_nb_xor, "^"), + BINSLOT("__or__", nb_or, slot_nb_or, "|"), + RBINSLOT("__ror__", nb_or, slot_nb_or, "|"), + UNSLOT("__int__", nb_int, slot_nb_int, wrap_unaryfunc, "int(self)"), - UNSLOT(__float__, nb_float, slot_nb_float, wrap_unaryfunc, + UNSLOT("__float__", nb_float, slot_nb_float, wrap_unaryfunc, "float(self)"), - IBSLOT(__iadd__, nb_inplace_add, slot_nb_inplace_add, + IBSLOT("__iadd__", nb_inplace_add, slot_nb_inplace_add, wrap_binaryfunc, "+="), - IBSLOT(__isub__, nb_inplace_subtract, slot_nb_inplace_subtract, + IBSLOT("__isub__", nb_inplace_subtract, slot_nb_inplace_subtract, wrap_binaryfunc, "-="), - IBSLOT(__imul__, nb_inplace_multiply, slot_nb_inplace_multiply, + IBSLOT("__imul__", nb_inplace_multiply, slot_nb_inplace_multiply, wrap_binaryfunc, "*="), - IBSLOT(__imod__, nb_inplace_remainder, slot_nb_inplace_remainder, + IBSLOT("__imod__", nb_inplace_remainder, slot_nb_inplace_remainder, wrap_binaryfunc, "%="), - IBSLOT(__ipow__, nb_inplace_power, slot_nb_inplace_power, + IBSLOT("__ipow__", nb_inplace_power, slot_nb_inplace_power, wrap_ternaryfunc, "**="), - IBSLOT(__ilshift__, nb_inplace_lshift, slot_nb_inplace_lshift, + IBSLOT("__ilshift__", nb_inplace_lshift, slot_nb_inplace_lshift, wrap_binaryfunc, "<<="), - IBSLOT(__irshift__, nb_inplace_rshift, slot_nb_inplace_rshift, + IBSLOT("__irshift__", nb_inplace_rshift, slot_nb_inplace_rshift, wrap_binaryfunc, ">>="), - IBSLOT(__iand__, nb_inplace_and, slot_nb_inplace_and, + IBSLOT("__iand__", nb_inplace_and, slot_nb_inplace_and, wrap_binaryfunc, "&="), - IBSLOT(__ixor__, nb_inplace_xor, slot_nb_inplace_xor, + IBSLOT("__ixor__", nb_inplace_xor, slot_nb_inplace_xor, wrap_binaryfunc, "^="), - IBSLOT(__ior__, nb_inplace_or, slot_nb_inplace_or, + IBSLOT("__ior__", nb_inplace_or, slot_nb_inplace_or, wrap_binaryfunc, "|="), - BINSLOT(__floordiv__, nb_floor_divide, slot_nb_floor_divide, "//"), - RBINSLOT(__rfloordiv__, nb_floor_divide, slot_nb_floor_divide, "//"), - BINSLOT(__truediv__, nb_true_divide, slot_nb_true_divide, "/"), - RBINSLOT(__rtruediv__, nb_true_divide, slot_nb_true_divide, "/"), - IBSLOT(__ifloordiv__, nb_inplace_floor_divide, + BINSLOT("__floordiv__", nb_floor_divide, slot_nb_floor_divide, "//"), + RBINSLOT("__rfloordiv__", nb_floor_divide, slot_nb_floor_divide, "//"), + BINSLOT("__truediv__", nb_true_divide, slot_nb_true_divide, "/"), + RBINSLOT("__rtruediv__", nb_true_divide, slot_nb_true_divide, "/"), + IBSLOT("__ifloordiv__", nb_inplace_floor_divide, slot_nb_inplace_floor_divide, wrap_binaryfunc, "//="), - IBSLOT(__itruediv__, nb_inplace_true_divide, + IBSLOT("__itruediv__", nb_inplace_true_divide, slot_nb_inplace_true_divide, wrap_binaryfunc, "/="), - NBSLOT(__index__, nb_index, slot_nb_index, wrap_unaryfunc, + NBSLOT("__index__", nb_index, slot_nb_index, wrap_unaryfunc, "__index__($self, /)\n--\n\n" "Return self converted to an integer, if self is suitable " "for use as an index into a list."), - BINSLOT(__matmul__, nb_matrix_multiply, slot_nb_matrix_multiply, + BINSLOT("__matmul__", nb_matrix_multiply, slot_nb_matrix_multiply, "@"), - RBINSLOT(__rmatmul__, nb_matrix_multiply, slot_nb_matrix_multiply, + RBINSLOT("__rmatmul__", nb_matrix_multiply, slot_nb_matrix_multiply, "@"), - IBSLOT(__imatmul__, nb_inplace_matrix_multiply, slot_nb_inplace_matrix_multiply, + IBSLOT("__imatmul__", nb_inplace_matrix_multiply, slot_nb_inplace_matrix_multiply, wrap_binaryfunc, "@="), - MPSLOT(__len__, mp_length, slot_mp_length, wrap_lenfunc, + MPSLOT("__len__", mp_length, slot_mp_length, wrap_lenfunc, "__len__($self, /)\n--\n\nReturn len(self)."), - MPSLOT(__getitem__, mp_subscript, slot_mp_subscript, + MPSLOT("__getitem__", mp_subscript, slot_mp_subscript, wrap_binaryfunc, "__getitem__($self, key, /)\n--\n\nReturn self[key]."), - MPSLOT(__setitem__, mp_ass_subscript, slot_mp_ass_subscript, + MPSLOT("__setitem__", mp_ass_subscript, slot_mp_ass_subscript, wrap_objobjargproc, "__setitem__($self, key, value, /)\n--\n\nSet self[key] to value."), - MPSLOT(__delitem__, mp_ass_subscript, slot_mp_ass_subscript, + MPSLOT("__delitem__", mp_ass_subscript, slot_mp_ass_subscript, wrap_delitem, "__delitem__($self, key, /)\n--\n\nDelete self[key]."), - SQSLOT(__len__, sq_length, slot_sq_length, wrap_lenfunc, + SQSLOT("__len__", sq_length, slot_sq_length, wrap_lenfunc, "__len__($self, /)\n--\n\nReturn len(self)."), /* Heap types defining __add__/__mul__ have sq_concat/sq_repeat == NULL. The logic in abstract.c always falls back to nb_add/nb_multiply in this case. Defining both the nb_* and the sq_* slots to call the user-defined methods has unexpected side-effects, as shown by test_descr.notimplemented() */ - SQSLOT(__add__, sq_concat, NULL, wrap_binaryfunc, + SQSLOT("__add__", sq_concat, NULL, wrap_binaryfunc, "__add__($self, value, /)\n--\n\nReturn self+value."), - SQSLOT(__mul__, sq_repeat, NULL, wrap_indexargfunc, + SQSLOT("__mul__", sq_repeat, NULL, wrap_indexargfunc, "__mul__($self, value, /)\n--\n\nReturn self*value."), - SQSLOT(__rmul__, sq_repeat, NULL, wrap_indexargfunc, + SQSLOT("__rmul__", sq_repeat, NULL, wrap_indexargfunc, "__rmul__($self, value, /)\n--\n\nReturn value*self."), - SQSLOT(__getitem__, sq_item, slot_sq_item, wrap_sq_item, + SQSLOT("__getitem__", sq_item, slot_sq_item, wrap_sq_item, "__getitem__($self, key, /)\n--\n\nReturn self[key]."), - SQSLOT(__setitem__, sq_ass_item, slot_sq_ass_item, wrap_sq_setitem, + SQSLOT("__setitem__", sq_ass_item, slot_sq_ass_item, wrap_sq_setitem, "__setitem__($self, key, value, /)\n--\n\nSet self[key] to value."), - SQSLOT(__delitem__, sq_ass_item, slot_sq_ass_item, wrap_sq_delitem, + SQSLOT("__delitem__", sq_ass_item, slot_sq_ass_item, wrap_sq_delitem, "__delitem__($self, key, /)\n--\n\nDelete self[key]."), - SQSLOT(__contains__, sq_contains, slot_sq_contains, wrap_objobjproc, + SQSLOT("__contains__", sq_contains, slot_sq_contains, wrap_objobjproc, "__contains__($self, key, /)\n--\n\nReturn key in self."), - SQSLOT(__iadd__, sq_inplace_concat, NULL, + SQSLOT("__iadd__", sq_inplace_concat, NULL, wrap_binaryfunc, "__iadd__($self, value, /)\n--\n\nImplement self+=value."), - SQSLOT(__imul__, sq_inplace_repeat, NULL, + SQSLOT("__imul__", sq_inplace_repeat, NULL, wrap_indexargfunc, "__imul__($self, value, /)\n--\n\nImplement self*=value."), @@ -8828,17 +8356,8 @@ update_one_slot(PyTypeObject *type, slotdef *p) { PyObject *descr; PyWrapperDescrObject *d; - - // The correct specialized C function, like "tp_repr of str" in the - // example above - void *specific = NULL; - - // A generic wrapper that uses method lookup (safe but slow) - void *generic = NULL; - - // Set to 1 if the generic wrapper is necessary + void *generic = NULL, *specific = NULL; int use_generic = 0; - int offset = p->offset; int error; void **ptr = slotptr(type, offset); @@ -8921,10 +8440,6 @@ update_one_slot(PyTypeObject *type, slotdef *p) else { use_generic = 1; generic = p->function; - if (p->function == slot_tp_call) { - /* A generic __call__ is incompatible with vectorcall */ - type->tp_flags &= ~Py_TPFLAGS_HAVE_VECTORCALL; - } } } while ((++p)->offset == offset); if (specific && !use_generic) @@ -8946,6 +8461,44 @@ update_slots_callback(PyTypeObject *type, void *data) return 0; } +static int slotdefs_initialized = 0; +/* Initialize the slotdefs table by adding interned string objects for the + names. */ +PyStatus +_PyTypes_InitSlotDefs(void) +{ + if (slotdefs_initialized) { + return _PyStatus_OK(); + } + + for (slotdef *p = slotdefs; p->name; p++) { + /* Slots must be ordered by their offset in the PyHeapTypeObject. */ + assert(!p[1].name || p->offset <= p[1].offset); +#ifdef INTERN_NAME_STRINGS + p->name_strobj = PyUnicode_InternFromString(p->name); + if (!p->name_strobj || !PyUnicode_CHECK_INTERNED(p->name_strobj)) { + return _PyStatus_NO_MEMORY(); + } +#else + p->name_strobj = PyUnicode_FromString(p->name); + if (!p->name_strobj) { + return _PyStatus_NO_MEMORY(); + } +#endif + } + slotdefs_initialized = 1; + return _PyStatus_OK(); +} + +/* Undo _PyTypes_InitSlotDefs(), releasing the interned strings. */ +static void clear_slotdefs(void) +{ + for (slotdef *p = slotdefs; p->name; p++) { + Py_CLEAR(p->name_strobj); + } + slotdefs_initialized = 0; +} + /* Update the slots after assignment to a class (type) attribute. */ static int update_slot(PyTypeObject *type, PyObject *name) @@ -8956,17 +8509,24 @@ update_slot(PyTypeObject *type, PyObject *name) int offset; assert(PyUnicode_CheckExact(name)); +#ifdef INTERN_NAME_STRINGS assert(PyUnicode_CHECK_INTERNED(name)); +#endif + assert(slotdefs_initialized); pp = ptrs; for (p = slotdefs; p->name; p++) { assert(PyUnicode_CheckExact(p->name_strobj)); - assert(PyUnicode_CHECK_INTERNED(p->name_strobj)); assert(PyUnicode_CheckExact(name)); - /* bpo-40521: Using interned strings. */ +#ifdef INTERN_NAME_STRINGS if (p->name_strobj == name) { *pp++ = p; } +#else + if (p->name_strobj == name || _PyUnicode_EQ(p->name_strobj, name)) { + *pp++ = p; + } +#endif } *pp = NULL; for (pp = ptrs; *pp; pp++) { @@ -8989,6 +8549,7 @@ static void fixup_slot_dispatchers(PyTypeObject *type) { assert(!PyErr_Occurred()); + assert(slotdefs_initialized); for (slotdef *p = slotdefs; p->name; ) { p = update_one_slot(type, p); } @@ -9002,6 +8563,7 @@ update_all_slots(PyTypeObject* type) /* Clear the VALID_VERSION flag of 'type' and all its subclasses. */ PyType_Modified(type); + assert(slotdefs_initialized); for (p = slotdefs; p->name; p++) { /* update_slot returns int but can't actually fail */ update_slot(type, p->name_strobj); @@ -9101,7 +8663,7 @@ recurse_down_subclasses(PyTypeObject *type, PyObject *attr_name, // It is safe to use a borrowed reference because update_subclasses() is // only used with update_slots_callback() which doesn't modify // tp_subclasses. - PyObject *subclasses = lookup_subclasses(type); // borrowed ref + PyObject *subclasses = type->tp_subclasses; // borrowed ref if (subclasses == NULL) { return 0; } @@ -9110,10 +8672,13 @@ recurse_down_subclasses(PyTypeObject *type, PyObject *attr_name, Py_ssize_t i = 0; PyObject *ref; while (PyDict_Next(subclasses, &i, NULL, &ref)) { - PyTypeObject *subclass = subclass_from_ref(ref); // borrowed - if (subclass == NULL) { + assert(PyWeakref_CheckRef(ref)); + PyObject *obj = PyWeakref_GET_OBJECT(ref); + assert(obj != NULL); + if (obj == Py_None) { continue; } + PyTypeObject *subclass = _PyType_CAST(obj); /* Avoid recursing down into unaffected classes */ PyObject *dict = subclass->tp_dict; @@ -9172,6 +8737,7 @@ add_operators(PyTypeObject *type) PyObject *descr; void **ptr; + assert(slotdefs_initialized); for (p = slotdefs; p->name; p++) { if (p->wrapper == NULL) continue; diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index bd169ed714212d..f712fbfa71d368 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -52,7 +52,6 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "pycore_pathconfig.h" // _Py_DumpPathConfig() #include "pycore_pylifecycle.h" // _Py_SetFileSystemEncoding() #include "pycore_pystate.h" // _PyInterpreterState_GET() -#include "pycore_runtime_init.h" // _PyUnicode_InitStaticStrings() #include "pycore_ucnhash.h" // _PyUnicode_Name_CAPI #include "pycore_unicodeobject.h" // struct _Py_unicode_state #include "stringlib/eq.h" // unicode_eq() @@ -191,6 +190,23 @@ extern "C" { # define OVERALLOCATE_FACTOR 4 #endif +/* bpo-40521: Interned strings are shared by all interpreters. */ +#ifndef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS +# define INTERNED_STRINGS +#endif + +/* This dictionary holds all interned unicode strings. Note that references + to strings in this dictionary are *not* counted in the string's ob_refcnt. + When the interned string reaches a refcnt of 0 the string deallocation + function will delete the reference from this dictionary. + + Another way to look at this is that to say that the actual reference + count of a string is: s->ob_refcnt + (s->state ? 2 : 0) +*/ +#ifdef INTERNED_STRINGS +static PyObject *interned = NULL; +#endif + /* Forward declaration */ static inline int _PyUnicodeWriter_WriteCharInline(_PyUnicodeWriter *writer, Py_UCS4 ch); @@ -225,23 +241,6 @@ static inline PyObject* unicode_new_empty(void) return empty; } -/* This dictionary holds all interned unicode strings. Note that references - to strings in this dictionary are *not* counted in the string's ob_refcnt. - When the interned string reaches a refcnt of 0 the string deallocation - function will delete the reference from this dictionary. - Another way to look at this is that to say that the actual reference - count of a string is: s->ob_refcnt + (s->state ? 2 : 0) -*/ -static inline PyObject *get_interned_dict(void) -{ - return _PyRuntime.global_objects.interned; -} - -static inline void set_interned_dict(PyObject *dict) -{ - _PyRuntime.global_objects.interned = dict; -} - #define _Py_RETURN_UNICODE_EMPTY() \ do { \ return unicode_new_empty(); \ @@ -1530,7 +1529,8 @@ unicode_dealloc(PyObject *unicode) _Py_FatalRefcountError("deallocating an Unicode singleton"); } #endif - PyObject *interned = get_interned_dict(); + +#ifdef INTERNED_STRINGS if (PyUnicode_CHECK_INTERNED(unicode)) { /* Revive the dead object temporarily. PyDict_DelItem() removes two references (key and value) which were ignored by @@ -1546,6 +1546,7 @@ unicode_dealloc(PyObject *unicode) assert(Py_REFCNT(unicode) == 1); Py_SET_REFCNT(unicode, 0); } +#endif if (_PyUnicode_HAS_UTF8_MEMORY(unicode)) { PyObject_Free(_PyUnicode_UTF8(unicode)); @@ -2362,13 +2363,6 @@ unicode_fromformat_arg(_PyUnicodeWriter *writer, p = f; f++; - if (*f == '%') { - if (_PyUnicodeWriter_WriteCharInline(writer, '%') < 0) - return NULL; - f++; - return f; - } - zeropad = 0; if (*f == '0') { zeropad = 1; @@ -2406,6 +2400,14 @@ unicode_fromformat_arg(_PyUnicodeWriter *writer, f++; } } + if (*f == '%') { + /* "%.3%s" => f points to "3" */ + f--; + } + } + if (*f == '\0') { + /* bogus format "%.123" => go backward, f points to "3" */ + f--; } /* Handle %ld, %lu, %lld and %llu. */ @@ -2429,7 +2431,7 @@ unicode_fromformat_arg(_PyUnicodeWriter *writer, ++f; } - if (f[0] != '\0' && f[1] == '\0') + if (f[1] == '\0') writer->overallocate = 0; switch (*f) { @@ -2488,34 +2490,21 @@ unicode_fromformat_arg(_PyUnicodeWriter *writer, } assert(len >= 0); - int negative = (buffer[0] == '-'); - len -= negative; - - precision = Py_MAX(precision, len); - width = Py_MAX(width, precision + negative); + if (precision < len) + precision = len; arglen = Py_MAX(precision, width); if (_PyUnicodeWriter_Prepare(writer, arglen, 127) == -1) return NULL; if (width > precision) { - if (negative && zeropad) { - if (_PyUnicodeWriter_WriteChar(writer, '-') == -1) - return NULL; - } - - Py_UCS4 fillchar = zeropad?'0':' '; - fill = width - precision - negative; + Py_UCS4 fillchar; + fill = width - precision; + fillchar = zeropad?'0':' '; if (PyUnicode_Fill(writer->buffer, writer->pos, fill, fillchar) == -1) return NULL; writer->pos += fill; - - if (negative && !zeropad) { - if (_PyUnicodeWriter_WriteChar(writer, '-') == -1) - return NULL; - } } - if (precision > len) { fill = precision - len; if (PyUnicode_Fill(writer->buffer, writer->pos, fill, '0') == -1) @@ -2523,7 +2512,7 @@ unicode_fromformat_arg(_PyUnicodeWriter *writer, writer->pos += fill; } - if (_PyUnicodeWriter_WriteASCIIString(writer, &buffer[negative], len) < 0) + if (_PyUnicodeWriter_WriteASCIIString(writer, buffer, len) < 0) return NULL; break; } @@ -2635,9 +2624,21 @@ unicode_fromformat_arg(_PyUnicodeWriter *writer, break; } + case '%': + if (_PyUnicodeWriter_WriteCharInline(writer, '%') < 0) + return NULL; + break; + default: - PyErr_Format(PyExc_SystemError, "invalid format string: %s", p); - return NULL; + /* if we stumble upon an unknown formatting code, copy the rest + of the format string to the output string. (we cannot just + skip the code, since there's no way to know what's in the + argument list) */ + len = strlen(p); + if (_PyUnicodeWriter_WriteLatin1String(writer, p, len) == -1) + return NULL; + f = p+len; + return f; } f++; @@ -2850,7 +2851,7 @@ PyUnicode_AsWideCharString(PyObject *unicode, } buflen = unicode_get_widechar_size(unicode); - buffer = (wchar_t *) PyMem_New(wchar_t, (buflen + 1)); + buffer = (wchar_t *) PyMem_NEW(wchar_t, (buflen + 1)); if (buffer == NULL) { PyErr_NoMemory(); return NULL; @@ -9703,48 +9704,41 @@ split(PyObject *self, const void *buf1, *buf2; Py_ssize_t len1, len2; PyObject* out; - len1 = PyUnicode_GET_LENGTH(self); - kind1 = PyUnicode_KIND(self); - if (substring == NULL) { - if (maxcount < 0) { - maxcount = (len1 - 1) / 2 + 1; - } - switch (kind1) { + if (maxcount < 0) + maxcount = PY_SSIZE_T_MAX; + + if (substring == NULL) + switch (PyUnicode_KIND(self)) { case PyUnicode_1BYTE_KIND: if (PyUnicode_IS_ASCII(self)) return asciilib_split_whitespace( self, PyUnicode_1BYTE_DATA(self), - len1, maxcount + PyUnicode_GET_LENGTH(self), maxcount ); else return ucs1lib_split_whitespace( self, PyUnicode_1BYTE_DATA(self), - len1, maxcount + PyUnicode_GET_LENGTH(self), maxcount ); case PyUnicode_2BYTE_KIND: return ucs2lib_split_whitespace( self, PyUnicode_2BYTE_DATA(self), - len1, maxcount + PyUnicode_GET_LENGTH(self), maxcount ); case PyUnicode_4BYTE_KIND: return ucs4lib_split_whitespace( self, PyUnicode_4BYTE_DATA(self), - len1, maxcount + PyUnicode_GET_LENGTH(self), maxcount ); default: Py_UNREACHABLE(); } - } + kind1 = PyUnicode_KIND(self); kind2 = PyUnicode_KIND(substring); + len1 = PyUnicode_GET_LENGTH(self); len2 = PyUnicode_GET_LENGTH(substring); - if (maxcount < 0) { - // if len2 == 0, it will raise ValueError. - maxcount = len2 == 0 ? 0 : (len1 / len2) + 1; - // handle expected overflow case: (Py_SSIZE_T_MAX / 1) + 1 - maxcount = maxcount < 0 ? len1 : maxcount; - } if (kind1 < kind2 || len1 < len2) { out = PyList_New(1); if (out == NULL) @@ -9797,47 +9791,40 @@ rsplit(PyObject *self, Py_ssize_t len1, len2; PyObject* out; - len1 = PyUnicode_GET_LENGTH(self); - kind1 = PyUnicode_KIND(self); + if (maxcount < 0) + maxcount = PY_SSIZE_T_MAX; - if (substring == NULL) { - if (maxcount < 0) { - maxcount = (len1 - 1) / 2 + 1; - } - switch (kind1) { + if (substring == NULL) + switch (PyUnicode_KIND(self)) { case PyUnicode_1BYTE_KIND: if (PyUnicode_IS_ASCII(self)) return asciilib_rsplit_whitespace( self, PyUnicode_1BYTE_DATA(self), - len1, maxcount + PyUnicode_GET_LENGTH(self), maxcount ); else return ucs1lib_rsplit_whitespace( self, PyUnicode_1BYTE_DATA(self), - len1, maxcount + PyUnicode_GET_LENGTH(self), maxcount ); case PyUnicode_2BYTE_KIND: return ucs2lib_rsplit_whitespace( self, PyUnicode_2BYTE_DATA(self), - len1, maxcount + PyUnicode_GET_LENGTH(self), maxcount ); case PyUnicode_4BYTE_KIND: return ucs4lib_rsplit_whitespace( self, PyUnicode_4BYTE_DATA(self), - len1, maxcount + PyUnicode_GET_LENGTH(self), maxcount ); default: Py_UNREACHABLE(); } - } + + kind1 = PyUnicode_KIND(self); kind2 = PyUnicode_KIND(substring); + len1 = PyUnicode_GET_LENGTH(self); len2 = PyUnicode_GET_LENGTH(substring); - if (maxcount < 0) { - // if len2 == 0, it will raise ValueError. - maxcount = len2 == 0 ? 0 : (len1 / len2) + 1; - // handle expected overflow case: (Py_SSIZE_T_MAX / 1) + 1 - maxcount = maxcount < 0 ? len1 : maxcount; - } if (kind1 < kind2 || len1 < len2) { out = PyList_New(1); if (out == NULL) @@ -10581,11 +10568,13 @@ _PyUnicode_EqualToASCIIId(PyObject *left, _Py_Identifier *right) if (PyUnicode_CHECK_INTERNED(left)) return 0; +#ifdef INTERNED_STRINGS assert(_PyUnicode_HASH(right_uni) != -1); Py_hash_t hash = _PyUnicode_HASH(left); if (hash != -1 && hash != _PyUnicode_HASH(right_uni)) { return 0; } +#endif return unicode_compare_eq(left, right_uni); } @@ -14598,14 +14587,6 @@ _PyUnicode_InitGlobalObjects(PyInterpreterState *interp) return _PyStatus_OK(); } - /* Intern statically allocated string identifiers and deepfreeze strings. - * This must be done before any module initialization so that statically - * allocated string identifiers are used instead of heap allocated strings. - * Deepfreeze uses the interned identifiers if present to save space - * else generates them and they are interned to speed up dict lookups. - */ - _PyUnicode_InitStaticStrings(); - #ifdef Py_DEBUG assert(_PyUnicode_CheckConsistency(&_Py_STR(empty), 1)); @@ -14625,13 +14606,13 @@ _PyUnicode_InitTypes(PyInterpreterState *interp) return _PyStatus_OK(); } - if (_PyStaticType_InitBuiltin(&EncodingMapType) < 0) { + if (PyType_Ready(&EncodingMapType) < 0) { goto error; } - if (_PyStaticType_InitBuiltin(&PyFieldNameIter_Type) < 0) { + if (PyType_Ready(&PyFieldNameIter_Type) < 0) { goto error; } - if (_PyStaticType_InitBuiltin(&PyFormatterIter_Type) < 0) { + if (PyType_Ready(&PyFormatterIter_Type) < 0) { goto error; } return _PyStatus_OK(); @@ -14664,14 +14645,13 @@ PyUnicode_InternInPlace(PyObject **p) return; } - PyObject *interned = get_interned_dict(); +#ifdef INTERNED_STRINGS if (interned == NULL) { interned = PyDict_New(); if (interned == NULL) { PyErr_Clear(); /* Don't leave an exception */ return; } - set_interned_dict(interned); } PyObject *t = PyDict_SetDefault(interned, s, s); @@ -14691,6 +14671,11 @@ PyUnicode_InternInPlace(PyObject **p) this. */ Py_SET_REFCNT(s, Py_REFCNT(s) - 2); _PyUnicode_STATE(s).interned = 1; +#else + // PyDict expects that interned strings have their hash + // (PyASCIIObject.hash) already computed. + (void)unicode_hash(s); +#endif } // Function kept for the stable ABI. @@ -14722,7 +14707,6 @@ _PyUnicode_ClearInterned(PyInterpreterState *interp) return; } - PyObject *interned = get_interned_dict(); if (interned == NULL) { return; } @@ -14758,8 +14742,7 @@ _PyUnicode_ClearInterned(PyInterpreterState *interp) #endif PyDict_Clear(interned); - Py_DECREF(interned); - set_interned_dict(NULL); + Py_CLEAR(interned); } @@ -15166,7 +15149,7 @@ _PyUnicode_EnableLegacyWindowsFSEncoding(void) static inline int unicode_is_finalizing(void) { - return (get_interned_dict() == NULL); + return (interned == NULL); } #endif @@ -15184,6 +15167,23 @@ _PyUnicode_FiniTypes(PyInterpreterState *interp) } +static void unicode_static_dealloc(PyObject *op) +{ + PyASCIIObject *ascii = _PyASCIIObject_CAST(op); + + assert(ascii->state.compact); + + if (!ascii->state.ascii) { + PyCompactUnicodeObject* compact = (PyCompactUnicodeObject*)op; + if (compact->utf8) { + PyObject_Free(compact->utf8); + compact->utf8 = NULL; + compact->utf8_length = 0; + } + } +} + + void _PyUnicode_Fini(PyInterpreterState *interp) { @@ -15191,7 +15191,7 @@ _PyUnicode_Fini(PyInterpreterState *interp) if (_Py_IsMainInterpreter(interp)) { // _PyUnicode_ClearInterned() must be called before _PyUnicode_Fini() - assert(get_interned_dict() == NULL); + assert(interned == NULL); // bpo-47182: force a unicodedata CAPI capsule re-import on // subsequent initialization of main interpreter. ucnhash_capi = NULL; @@ -15200,8 +15200,24 @@ _PyUnicode_Fini(PyInterpreterState *interp) _PyUnicode_FiniEncodings(&state->fs_codec); unicode_clear_identifiers(state); + + // Clear the single character singletons + for (int i = 0; i < 128; i++) { + unicode_static_dealloc((PyObject*)&_Py_SINGLETON(strings).ascii[i]); + } + for (int i = 0; i < 128; i++) { + unicode_static_dealloc((PyObject*)&_Py_SINGLETON(strings).latin1[i]); + } } + +void +_PyStaticUnicode_Dealloc(PyObject *op) +{ + unicode_static_dealloc(op); +} + + /* A _string module, to export formatter_parser and formatter_field_name_split to the string.Formatter class implemented in Python. */ diff --git a/Objects/unicodetype_db.h b/Objects/unicodetype_db.h index 61116e4eafb303..fb8bb9fc7ed98f 100644 --- a/Objects/unicodetype_db.h +++ b/Objects/unicodetype_db.h @@ -1786,71 +1786,70 @@ static const unsigned short index1[] = { 143, 144, 145, 146, 147, 148, 149, 150, 34, 34, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 143, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 143, 175, 176, 143, 177, 178, 179, 180, - 143, 181, 182, 183, 184, 185, 186, 187, 143, 188, 189, 190, 191, 143, - 192, 193, 194, 34, 34, 34, 34, 34, 34, 34, 195, 196, 34, 197, 143, 143, + 143, 181, 182, 183, 184, 185, 186, 143, 143, 187, 188, 189, 190, 143, + 191, 143, 192, 34, 34, 34, 34, 34, 34, 34, 193, 194, 34, 195, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, - 143, 143, 143, 143, 198, 34, 34, 34, 34, 34, 34, 34, 34, 199, 143, 143, + 143, 143, 143, 143, 196, 34, 34, 34, 34, 34, 34, 34, 34, 197, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, - 143, 34, 34, 34, 34, 200, 143, 143, 143, 143, 143, 143, 143, 143, 143, + 143, 34, 34, 34, 34, 198, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, - 143, 143, 34, 34, 34, 34, 201, 202, 203, 204, 143, 143, 143, 143, 205, - 206, 207, 208, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 143, 143, 34, 34, 34, 34, 199, 200, 201, 202, 143, 143, 143, 143, 203, + 204, 205, 206, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 209, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 210, 211, 143, 143, 143, 143, 143, 143, 143, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 207, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 208, 209, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, - 143, 143, 143, 143, 143, 212, 34, 34, 213, 34, 34, 214, 143, 143, 143, + 143, 143, 143, 143, 143, 210, 34, 34, 211, 34, 34, 212, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, - 143, 215, 216, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, + 143, 213, 214, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, - 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 217, 218, 64, 219, - 220, 221, 222, 223, 224, 143, 225, 226, 227, 228, 229, 230, 231, 232, 64, - 64, 64, 64, 233, 234, 143, 143, 143, 143, 143, 143, 143, 143, 235, 143, - 236, 237, 238, 143, 143, 239, 143, 143, 143, 240, 143, 143, 143, 143, - 143, 241, 34, 242, 243, 143, 143, 143, 143, 143, 244, 245, 246, 143, 247, - 248, 143, 143, 249, 250, 251, 252, 253, 143, 64, 254, 64, 64, 64, 64, 64, - 255, 256, 257, 258, 259, 64, 64, 260, 261, 64, 262, 143, 143, 143, 143, - 143, 143, 143, 143, 263, 264, 265, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 86, 266, 34, 267, 268, 34, 34, 34, 34, 34, 34, + 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 215, 216, 64, 217, + 218, 219, 220, 221, 222, 143, 223, 224, 225, 226, 227, 228, 229, 230, 64, + 64, 64, 64, 231, 232, 143, 143, 143, 143, 143, 143, 143, 143, 233, 143, + 234, 143, 235, 143, 143, 236, 143, 143, 143, 143, 143, 143, 143, 143, + 143, 237, 34, 238, 239, 143, 143, 143, 143, 143, 240, 241, 242, 143, 243, + 244, 143, 143, 245, 246, 247, 248, 249, 143, 64, 250, 64, 64, 64, 64, 64, + 251, 252, 253, 254, 255, 64, 64, 256, 257, 64, 258, 143, 143, 143, 143, + 143, 143, 143, 143, 259, 260, 261, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 86, 262, 34, 263, 264, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 269, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 270, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 271, + 34, 34, 34, 34, 34, 34, 265, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 266, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 267, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 272, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 268, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 273, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 269, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 274, 34, 275, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 270, 34, 271, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 276, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 272, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 277, 143, 143, 143, 143, 143, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 273, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, - 143, 143, 143, 143, 143, 34, 269, 34, 34, 278, 143, 143, 143, 143, 143, + 143, 143, 143, 143, 143, 34, 265, 34, 34, 274, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 279, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 280, 143, 143, 143, 143, 143, 143, 143, 143, 143, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 275, 143, 143, 143, 143, 143, 143, + 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, @@ -2247,9 +2246,9 @@ static const unsigned short index1[] = { 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, - 143, 143, 143, 143, 143, 143, 143, 281, 143, 282, 283, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, + 143, 276, 143, 277, 278, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, @@ -2284,7 +2283,8 @@ static const unsigned short index1[] = { 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, - 143, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, + 143, 143, 143, 143, 143, 143, 143, 143, 143, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, @@ -2320,8 +2320,8 @@ static const unsigned short index1[] = { 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, - 125, 125, 125, 125, 125, 125, 125, 125, 284, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 279, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, @@ -2357,7 +2357,7 @@ static const unsigned short index1[] = { 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, - 125, 125, 284, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 279, }; static const unsigned short index2[] = { @@ -2538,31 +2538,31 @@ static const unsigned short index2[] = { 55, 55, 0, 55, 55, 55, 55, 55, 0, 0, 25, 55, 18, 25, 18, 18, 18, 18, 18, 0, 25, 18, 18, 0, 18, 18, 25, 25, 0, 0, 0, 0, 0, 0, 0, 18, 18, 0, 0, 0, 0, 0, 0, 55, 55, 0, 55, 55, 25, 25, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 0, 55, 55, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 18, - 18, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 0, 55, 55, 55, 55, + 15, 16, 0, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 18, 18, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 25, 25, 55, 18, 18, 18, 25, 25, 25, 25, 0, 18, 18, 18, 0, 18, 18, 18, - 25, 55, 5, 0, 0, 0, 0, 55, 55, 55, 18, 27, 27, 27, 27, 27, 27, 27, 55, - 55, 55, 25, 25, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 5, 55, 55, 55, 55, 55, 55, 0, 25, 18, 18, 0, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, - 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, - 0, 0, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 25, 0, 0, 0, 0, 18, 18, 18, - 25, 25, 25, 0, 25, 0, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, 0, 0, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 18, 18, 5, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 25, 25, 55, 18, 18, 18, 25, 25, 25, 25, 0, 18, 18, 18, 0, 18, 18, 18, 25, + 55, 5, 0, 0, 0, 0, 55, 55, 55, 18, 27, 27, 27, 27, 27, 27, 27, 55, 55, + 55, 25, 25, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 5, 55, 55, 55, 55, 55, 55, 0, 25, 18, 18, 0, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 55, - 139, 25, 25, 25, 25, 25, 25, 25, 0, 0, 0, 0, 5, 55, 55, 55, 55, 55, 55, - 103, 25, 25, 25, 25, 25, 25, 25, 25, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 0, 55, 0, 55, 55, + 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 0, + 0, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 25, 0, 0, 0, 0, 18, 18, 18, 25, + 25, 25, 0, 25, 0, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, 0, 0, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 18, 18, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 55, 139, + 25, 25, 25, 25, 25, 25, 25, 0, 0, 0, 0, 5, 55, 55, 55, 55, 55, 55, 103, + 25, 25, 25, 25, 25, 25, 25, 25, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 0, 55, 0, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 55, 139, 25, 25, 25, 25, 25, 25, 25, 25, 25, 55, 0, - 0, 55, 55, 55, 55, 55, 0, 103, 0, 25, 25, 25, 25, 25, 25, 25, 0, 7, 8, 9, + 0, 55, 55, 55, 55, 55, 0, 103, 0, 25, 25, 25, 25, 25, 25, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, @@ -2592,7 +2592,7 @@ static const unsigned short index2[] = { 140, 0, 140, 0, 0, 0, 0, 0, 140, 0, 0, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 5, 102, 141, 141, 141, 55, 55, + 141, 141, 141, 141, 141, 141, 141, 141, 5, 103, 141, 141, 141, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, @@ -3152,7 +3152,7 @@ static const unsigned short index2[] = { 395, 392, 20, 396, 397, 398, 399, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 400, 401, 402, 30, 31, 30, 31, 0, 0, 0, 0, 0, 30, 31, 0, 20, 0, 20, 30, 31, 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 102, 102, 30, 31, 55, 102, 102, 20, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 103, 103, 30, 31, 55, 102, 102, 20, 55, 55, 55, 55, 55, 55, 55, 25, 55, 55, 55, 25, 55, 55, 55, 55, 25, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, 25, 25, 18, 5, 5, 5, 5, 25, 0, 0, 0, 27, 27, 27, @@ -3199,7 +3199,7 @@ static const unsigned short index2[] = { 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 403, 20, 20, 20, 20, 20, 20, 20, 6, 102, 102, 102, 102, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 102, 6, 6, 0, 0, 0, 0, 404, 405, 406, 407, 408, 409, + 20, 20, 20, 20, 20, 103, 6, 6, 0, 0, 0, 0, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, @@ -3487,129 +3487,129 @@ static const unsigned short index2[] = { 55, 55, 55, 55, 55, 55, 0, 25, 25, 5, 0, 0, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 55, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 27, 27, 27, 27, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, 5, 5, - 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 55, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 27, 27, 27, 27, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 27, 27, 27, - 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 25, 18, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, 5, 5, 5, + 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 27, 27, 27, 27, + 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 25, 18, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 5, 0, - 0, 0, 0, 26, 22, 23, 360, 361, 362, 363, 364, 365, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 25, 55, 55, - 25, 25, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25, 18, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, + 0, 26, 22, 23, 360, 361, 362, 363, 364, 365, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 25, 55, 55, 25, 25, + 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25, 18, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 18, 18, 18, 25, 25, 25, 25, 18, 18, 25, 25, 5, 5, 21, - 5, 5, 5, 5, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, - 0, 0, 0, 0, 0, 25, 25, 25, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 18, 18, 18, 25, 25, 25, 25, 18, 18, 25, 25, 5, 5, 21, 5, 5, + 5, 5, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, 25, 18, 25, 25, 25, 25, 25, - 25, 25, 25, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 5, 5, 5, 5, 55, 18, - 18, 55, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, + 0, 0, 25, 25, 25, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 25, 5, 5, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, - 25, 18, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 25, 25, 25, 25, 25, 18, 25, 25, 25, 25, 25, 25, 25, 25, + 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 5, 5, 5, 5, 55, 18, 18, 55, 0, 0, + 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 25, 5, 5, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 18, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, 18, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 18, 18, 55, 55, 55, 55, 5, 5, 5, 5, 25, - 25, 25, 25, 5, 18, 25, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 55, 5, 55, 5, - 5, 5, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 18, 18, 18, 25, 25, 25, 18, 18, 25, 18, 25, 25, 5, 5, 5, 5, 5, 5, - 25, 55, 55, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, 18, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 18, 18, 55, 55, 55, 55, 5, 5, 5, 5, 25, 25, 25, 25, 5, + 18, 25, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 55, 5, 55, 5, 5, 5, 0, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, + 18, 18, 25, 25, 25, 18, 18, 25, 18, 25, 25, 5, 5, 5, 5, 5, 5, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, - 55, 55, 55, 0, 55, 0, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 5, - 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, + 0, 55, 0, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 5, 0, 0, 0, 0, + 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 18, 18, - 18, 25, 25, 25, 25, 25, 25, 25, 25, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 25, 25, 18, 18, 0, 55, 55, 55, 55, 55, - 55, 55, 55, 0, 0, 55, 55, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, - 55, 55, 0, 55, 55, 0, 55, 55, 55, 55, 55, 0, 25, 25, 55, 18, 18, 25, 18, - 18, 18, 18, 0, 0, 18, 18, 0, 0, 18, 18, 18, 0, 0, 55, 0, 0, 0, 0, 0, 0, - 18, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 18, 18, 0, 0, 25, 25, 25, 25, 25, - 25, 25, 0, 0, 0, 25, 25, 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 18, 18, 18, 25, 25, + 25, 25, 25, 25, 25, 25, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 0, 0, 0, 0, 0, 0, 25, 25, 18, 18, 0, 55, 55, 55, 55, 55, 55, 55, 55, + 0, 0, 55, 55, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 0, 55, + 55, 0, 55, 55, 55, 55, 55, 0, 25, 25, 55, 18, 18, 25, 18, 18, 18, 18, 0, + 0, 18, 18, 0, 0, 18, 18, 18, 0, 0, 55, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, + 0, 55, 55, 55, 55, 55, 18, 18, 0, 0, 25, 25, 25, 25, 25, 25, 25, 0, 0, 0, + 25, 25, 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, - 18, 25, 25, 25, 25, 25, 25, 25, 25, 18, 18, 25, 25, 25, 18, 25, 55, 55, - 55, 55, 5, 5, 5, 5, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 5, 5, 0, 5, - 25, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, 18, 25, 25, 25, + 25, 25, 25, 25, 25, 18, 18, 25, 25, 25, 18, 25, 55, 55, 55, 55, 5, 5, 5, + 5, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 5, 5, 0, 5, 25, 55, 55, 55, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, + 18, 25, 25, 25, 25, 25, 25, 18, 25, 18, 18, 18, 18, 25, 25, 18, 25, 25, + 55, 55, 5, 55, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 18, 18, 18, 25, 25, 25, 25, 25, 25, 18, 25, 18, 18, 18, 18, 25, - 25, 18, 25, 25, 55, 55, 5, 55, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 18, 18, 18, 25, 25, 25, 25, 0, 0, 18, 18, 18, 18, 25, 25, + 18, 25, 25, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 55, 55, 55, 55, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, 18, 25, 25, 25, 25, 0, 0, 18, 18, - 18, 18, 25, 25, 18, 25, 25, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 55, 55, 55, 55, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, 18, 25, 25, - 25, 25, 25, 25, 25, 25, 18, 18, 25, 18, 25, 25, 5, 5, 5, 55, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, - 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, 18, 25, 25, 25, 25, 25, + 25, 25, 25, 18, 18, 25, 18, 25, 25, 5, 5, 5, 55, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 18, 25, 18, - 18, 25, 25, 25, 25, 25, 25, 18, 25, 55, 5, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 18, 25, 18, 18, 25, 25, + 25, 25, 25, 25, 18, 25, 55, 5, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 0, 0, 25, 25, 25, 18, 18, 25, 25, 25, 25, 18, 25, 25, 25, 25, 25, 0, - 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 27, 27, 5, 5, 5, 5, 55, 55, - 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 25, + 25, 25, 18, 18, 25, 25, 25, 25, 18, 25, 25, 25, 25, 25, 0, 0, 0, 0, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 27, 27, 5, 5, 5, 5, 55, 55, 55, 55, 55, + 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 18, 18, 18, 25, 25, 25, 25, 25, 25, 25, 25, 25, 18, 25, 25, 5, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, + 18, 25, 25, 25, 25, 25, 25, 25, 25, 25, 18, 25, 25, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 19, 19, 19, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 17, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 55, 0, 0, 55, 55, 55, 55, 55, - 55, 55, 55, 0, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, 18, 18, 18, 18, - 0, 18, 18, 0, 0, 25, 25, 18, 25, 55, 18, 55, 18, 25, 5, 5, 5, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, + 19, 19, 19, 19, 19, 19, 19, 19, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, + 55, 55, 55, 55, 55, 55, 55, 0, 0, 55, 0, 0, 55, 55, 55, 55, 55, 55, 55, + 55, 0, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, 18, 18, 18, 18, 0, 18, + 18, 0, 0, 25, 25, 18, 25, 55, 18, 55, 18, 25, 5, 5, 5, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, - 55, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 0, + 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 18, 18, 18, 25, 25, 25, 25, 0, 0, 25, 25, 18, 18, 18, - 18, 25, 55, 5, 55, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 55, 55, 55, 55, 18, 18, 18, 25, 25, 25, 25, 0, 0, 25, 25, 18, 18, 18, 18, + 25, 55, 5, 55, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, 25, 25, 18, 55, 25, 25, 25, 25, 5, 5, 5, @@ -3622,34 +3622,29 @@ static const unsigned short index2[] = { 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 25, - 25, 25, 25, 25, 25, 25, 0, 25, 25, 25, 25, 25, 25, 18, 25, 55, 5, 5, 5, - 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 0, 0, 0, 5, 5, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 0, 18, 25, 25, 25, 25, 25, 25, 25, 18, 25, 25, 18, 25, - 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 25, 25, 25, 25, 25, 25, 25, + 0, 25, 25, 25, 25, 25, 25, 18, 25, 55, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, 0, 5, 5, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 0, 18, + 25, 25, 25, 25, 25, 25, 25, 18, 25, 25, 18, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 0, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, - 25, 25, 0, 0, 0, 25, 0, 25, 25, 0, 25, 25, 25, 25, 25, 25, 25, 55, 25, 0, - 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, - 0, 55, 55, 55, 55, 55, 55, 0, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, + 55, 55, 0, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 18, 18, 18, 18, 18, 0, 25, 25, 0, 18, 18, 25, 18, - 25, 55, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, + 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, 25, 25, 0, 0, 0, 25, 0, 25, + 25, 0, 25, 25, 25, 25, 25, 25, 25, 55, 25, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, + 0, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, + 18, 18, 18, 18, 0, 25, 25, 0, 18, 18, 25, 18, 25, 55, 0, 0, 0, 0, 0, 0, + 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3657,26 +3652,19 @@ static const unsigned short index2[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 18, 18, 5, 5, 0, 0, 0, 0, - 0, 0, 0, 25, 25, 55, 18, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 18, 18, 25, 25, 25, 25, 25, 0, 0, 0, 18, 18, 25, 18, 25, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 25, 25, 18, 18, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 5, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, @@ -3684,62 +3672,62 @@ static const unsigned short index2[] = { 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 0, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 0, 5, 5, + 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 5, 5, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 25, 55, 55, 55, 55, - 55, 55, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 0, 0, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 0, 21, 21, 21, 21, 21, 21, 21, 21, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 5, 5, 55, 55, + 55, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 5, 5, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, - 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 25, 25, 25, 25, - 25, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 25, 25, 25, 25, 25, + 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 25, 25, 25, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 5, 5, 5, 103, - 103, 103, 103, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 0, 27, 27, 27, 27, 27, 27, 27, 0, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, - 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 25, 25, 25, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 5, 5, 5, 103, 103, + 103, 103, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 0, 27, 27, 27, 27, 27, 27, 27, 0, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 27, @@ -3788,10 +3776,10 @@ static const unsigned short index2[] = { 0, 0, 0, 0, 0, 103, 103, 103, 103, 0, 103, 103, 103, 103, 103, 103, 103, 0, 103, 103, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, + 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 55, 55, 55, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, - 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 0, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, + 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, @@ -3799,110 +3787,106 @@ static const unsigned short index2[] = { 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, - 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 5, 25, - 25, 5, 21, 21, 21, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, + 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 5, 25, 25, 5, + 21, 21, 21, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 0, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 0, 0, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 0, 0, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 18, 18, 25, 25, 25, 5, 5, 5, 18, 18, 18, 18, 18, 18, - 21, 21, 21, 21, 21, 21, 21, 21, 25, 25, 25, 25, 25, 25, 25, 25, 5, 5, 25, - 25, 25, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 18, 18, 25, 25, 25, 5, 5, 5, 18, 18, 18, 18, 18, 18, 21, 21, + 21, 21, 21, 21, 21, 21, 25, 25, 25, 25, 25, 25, 25, 25, 5, 5, 25, 25, 25, + 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 25, - 25, 25, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 25, 25, 25, + 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, - 0, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, - 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, 20, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 121, 121, 121, 121, + 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, + 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, + 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, 20, + 20, 20, 20, 20, 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, - 121, 121, 20, 20, 20, 20, 20, 20, 20, 0, 20, 20, 20, 20, 20, 20, 20, 20, + 121, 121, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 121, 0, 121, 121, 0, 0, 121, 0, + 0, 121, 121, 0, 0, 121, 121, 121, 121, 0, 121, 121, 121, 121, 121, 121, + 121, 121, 20, 20, 20, 20, 0, 20, 0, 20, 20, 20, 20, 20, 20, 20, 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 121, 0, 121, - 121, 0, 0, 121, 0, 0, 121, 121, 0, 0, 121, 121, 121, 121, 0, 121, 121, - 121, 121, 121, 121, 121, 121, 20, 20, 20, 20, 0, 20, 0, 20, 20, 20, 20, - 20, 20, 20, 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 121, 121, 121, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 121, 121, 0, + 121, 121, 121, 121, 0, 0, 121, 121, 121, 121, 121, 121, 121, 121, 0, 121, + 121, 121, 121, 121, 121, 121, 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 121, 121, + 0, 121, 121, 121, 121, 0, 121, 121, 121, 121, 121, 0, 121, 0, 0, 0, 121, + 121, 121, 121, 121, 121, 121, 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, - 121, 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 121, 121, 0, 121, 121, 121, 121, 0, 0, 121, 121, 121, 121, 121, 121, - 121, 121, 0, 121, 121, 121, 121, 121, 121, 121, 0, 20, 20, 20, 20, 20, + 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 121, 121, 0, 121, 121, 121, 121, 0, 121, 121, 121, 121, 121, - 0, 121, 0, 0, 0, 121, 121, 121, 121, 121, 121, 121, 0, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, - 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, - 121, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 121, 121, 121, 121, 121, 121, 121, - 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, - 121, 121, 121, 121, 121, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 121, 121, 121, - 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, - 121, 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, - 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, 20, + 20, 20, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, + 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, + 20, 20, 20, 20, 20, 20, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 0, 0, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, - 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 5, 20, 20, 20, 20, + 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 5, 20, 20, 20, 20, 20, 20, 121, 121, 121, 121, 121, 121, 121, + 20, 20, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, + 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 0, 0, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 5, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 5, 20, 20, 20, 20, @@ -3916,210 +3900,201 @@ static const unsigned short index2[] = { 20, 20, 20, 20, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 5, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 5, 20, 20, 20, 20, 20, 20, 121, 20, 0, 0, 7, - 8, 9, 10, 11, 12, 13, 14, 15, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 7, - 8, 9, 10, 11, 12, 13, 14, 15, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 7, - 8, 9, 10, 11, 12, 13, 14, 15, 16, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 20, 20, 20, 20, 20, 20, 20, 5, 20, 20, 20, 20, 20, 20, 121, 121, 121, + 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, + 121, 121, 121, 121, 121, 121, 121, 121, 5, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 5, 20, 20, 20, 20, 20, 20, 121, 20, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 5, 5, 5, 5, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 5, 5, 5, 5, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 5, 5, 25, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 25, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25, 25, 25, 0, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 25, 25, 5, 5, 5, 5, 5, 5, 5, 5, 25, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 25, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 25, 25, 25, 25, 25, 0, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 55, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 0, 0, 0, 0, 0, 0, 20, 20, 20, 20, - 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 55, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25, 25, 25, 25, 25, - 0, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 0, - 0, 25, 25, 25, 25, 25, 25, 25, 0, 25, 25, 0, 25, 25, 25, 25, 25, 0, 0, 0, - 0, 0, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102, 102, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 25, 25, 25, 25, 25, 25, 25, 0, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 0, 0, 25, 25, 25, 25, 25, 25, + 25, 0, 25, 25, 0, 25, 25, 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 0, 0, 0, 25, 25, 25, 25, 25, 25, 25, 103, 103, 103, 103, 103, 103, - 103, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 55, 5, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 25, 25, 25, 25, 25, 25, + 25, 103, 103, 103, 103, 103, 103, 103, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 0, 0, 0, 0, 55, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, + 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 103, 25, 25, 25, 25, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, + 25, 25, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 0, 55, - 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, + 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 0, 55, 55, 0, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 25, 25, 25, 25, 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 25, 25, 25, 25, 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 502, 502, 502, 502, 502, 502, 502, 502, + 0, 0, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, - 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 503, 503, - 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, + 502, 502, 502, 502, 502, 502, 502, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, - 503, 503, 503, 503, 25, 25, 25, 25, 25, 25, 25, 103, 0, 0, 0, 0, 7, 8, 9, - 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 25, 25, + 25, 25, 25, 25, 25, 103, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 0, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, + 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 5, - 27, 27, 27, 5, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 5, 27, 27, 27, 5, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 5, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 5, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 0, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 0, 55, 0, 0, 55, 0, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 0, 55, 0, 55, 0, 0, 0, - 0, 0, 0, 55, 0, 0, 0, 0, 55, 0, 55, 0, 55, 0, 55, 55, 55, 0, 55, 55, 0, - 55, 0, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 55, 0, 55, 0, 0, 55, 55, - 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 0, 55, 55, 55, - 55, 0, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 55, - 55, 55, 0, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 0, 55, 55, 0, 55, 0, 0, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 0, 55, 55, 55, 55, 0, 55, 0, 55, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, + 55, 0, 55, 0, 55, 0, 55, 55, 55, 0, 55, 55, 0, 55, 0, 0, 55, 0, 55, 0, + 55, 0, 55, 0, 55, 0, 55, 55, 0, 55, 0, 0, 55, 55, 55, 55, 0, 55, 55, 55, + 55, 55, 55, 55, 0, 55, 55, 55, 55, 0, 55, 55, 55, 55, 0, 55, 0, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 55, 55, 55, 0, 55, 55, 55, + 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 0, 0, 0, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 359, 359, - 26, 22, 23, 360, 361, 362, 363, 364, 365, 27, 27, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, - 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 5, 5, 5, - 5, 5, 5, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, - 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 5, 5, 5, - 5, 5, 5, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, - 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 5, 5, 5, + 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 359, 359, 26, 22, 23, 360, 361, + 362, 363, 364, 365, 27, 27, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 504, 504, + 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, + 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 5, 5, 5, 5, 5, 5, 504, + 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, + 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 5, 5, 5, 5, 5, 5, + 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, + 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, - 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, - 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, + 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, + 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, - 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 5, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, - 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, + 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, + 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 5, 5, 0, 0, 0, + 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, - 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 0, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, - 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 5, 5, 5, 5, 5, 0, + 0, 0, 5, 5, 5, 5, 5, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, + 0, 0, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, - 0, 0, 0, 0, 0, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, + 0, 0, 0, 0, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, - 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, + 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, @@ -4130,16 +4105,16 @@ static const unsigned short index2[] = { 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, @@ -4147,14 +4122,14 @@ static const unsigned short index2[] = { 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, @@ -4166,31 +4141,31 @@ static const unsigned short index2[] = { 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, @@ -4200,34 +4175,27 @@ static const unsigned short index2[] = { 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 21, 21, 21, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, - 21, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 21, 21, 21, 21, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, @@ -4240,13 +4208,13 @@ static const unsigned short index2[] = { 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, }; /* Returns the numeric value as double for Unicode characters @@ -4323,12 +4291,10 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x11C50: case 0x11D50: case 0x11DA0: - case 0x11F50: case 0x16A60: case 0x16AC0: case 0x16B50: case 0x16E80: - case 0x1D2C0: case 0x1D2E0: case 0x1D7CE: case 0x1D7D8: @@ -4337,7 +4303,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x1D7F6: case 0x1E140: case 0x1E2F0: - case 0x1E4F0: case 0x1E950: case 0x1F100: case 0x1F101: @@ -4455,7 +4420,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x11C5A: case 0x11D51: case 0x11DA1: - case 0x11F51: case 0x12415: case 0x1241E: case 0x1242C: @@ -4467,7 +4431,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x16B51: case 0x16E81: case 0x16E94: - case 0x1D2C1: case 0x1D2E1: case 0x1D360: case 0x1D372: @@ -4479,7 +4442,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x1D7F7: case 0x1E141: case 0x1E2F1: - case 0x1E4F1: case 0x1E8C7: case 0x1E951: case 0x1EC71: @@ -4637,7 +4599,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x11C63: case 0x16B5B: case 0x16E8A: - case 0x1D2CA: case 0x1D2EA: case 0x1D369: case 0x1EC7A: @@ -4745,7 +4706,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x2492: case 0x24EB: case 0x16E8B: - case 0x1D2CB: case 0x1D2EB: return (double) 11.0; case 0x109BC: @@ -4759,7 +4719,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x2493: case 0x24EC: case 0x16E8C: - case 0x1D2CC: case 0x1D2EC: return (double) 12.0; case 0x246C: @@ -4767,7 +4726,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x2494: case 0x24ED: case 0x16E8D: - case 0x1D2CD: case 0x1D2ED: return (double) 13.0; case 0x0F30: @@ -4777,7 +4735,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x2495: case 0x24EE: case 0x16E8E: - case 0x1D2CE: case 0x1D2EE: return (double) 14.0; case 0x246E: @@ -4785,7 +4742,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x2496: case 0x24EF: case 0x16E8F: - case 0x1D2CF: case 0x1D2EF: return (double) 15.0; case 0x0F31: @@ -4796,7 +4752,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x2497: case 0x24F0: case 0x16E90: - case 0x1D2D0: case 0x1D2F0: return (double) 16.0; case 0x16EE: @@ -4805,7 +4760,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x2498: case 0x24F1: case 0x16E91: - case 0x1D2D1: case 0x1D2F1: return (double) 17.0; case 0x0F32: @@ -4816,7 +4770,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x2499: case 0x24F2: case 0x16E92: - case 0x1D2D2: case 0x1D2F2: return (double) 18.0; case 0x16F0: @@ -4825,7 +4778,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x249A: case 0x24F3: case 0x16E93: - case 0x1D2D3: case 0x1D2F3: return (double) 19.0; case 0x0032: @@ -4933,7 +4885,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x11C5B: case 0x11D52: case 0x11DA2: - case 0x11F52: case 0x12400: case 0x12416: case 0x1241F: @@ -4949,7 +4900,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x16B52: case 0x16E82: case 0x16E95: - case 0x1D2C2: case 0x1D2E2: case 0x1D361: case 0x1D373: @@ -4960,7 +4910,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x1D7F8: case 0x1E142: case 0x1E2F2: - case 0x1E4F2: case 0x1E8C8: case 0x1E952: case 0x1EC72: @@ -5162,7 +5111,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x11C5C: case 0x11D53: case 0x11DA3: - case 0x11F53: case 0x12401: case 0x12408: case 0x12417: @@ -5183,7 +5131,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x16B53: case 0x16E83: case 0x16E96: - case 0x1D2C3: case 0x1D2E3: case 0x1D362: case 0x1D374: @@ -5194,7 +5141,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x1D7F9: case 0x1E143: case 0x1E2F3: - case 0x1E4F3: case 0x1E8C9: case 0x1E953: case 0x1EC73: @@ -5388,7 +5334,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x11C5D: case 0x11D54: case 0x11DA4: - case 0x11F54: case 0x12402: case 0x12409: case 0x1240F: @@ -5409,7 +5354,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x16AC4: case 0x16B54: case 0x16E84: - case 0x1D2C4: case 0x1D2E4: case 0x1D363: case 0x1D375: @@ -5420,7 +5364,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x1D7FA: case 0x1E144: case 0x1E2F4: - case 0x1E4F4: case 0x1E8CA: case 0x1E954: case 0x1EC74: @@ -5590,7 +5533,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x11C5E: case 0x11D55: case 0x11DA5: - case 0x11F55: case 0x12403: case 0x1240A: case 0x12410: @@ -5607,7 +5549,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x16AC5: case 0x16B55: case 0x16E85: - case 0x1D2C5: case 0x1D2E5: case 0x1D364: case 0x1D376: @@ -5619,7 +5560,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x1D7FB: case 0x1E145: case 0x1E2F5: - case 0x1E4F5: case 0x1E8CB: case 0x1E955: case 0x1EC75: @@ -5789,7 +5729,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x11C5F: case 0x11D56: case 0x11DA6: - case 0x11F56: case 0x12404: case 0x1240B: case 0x12411: @@ -5802,7 +5741,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x16AC6: case 0x16B56: case 0x16E86: - case 0x1D2C6: case 0x1D2E6: case 0x1D365: case 0x1D7D4: @@ -5812,7 +5750,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x1D7FC: case 0x1E146: case 0x1E2F6: - case 0x1E4F6: case 0x1E8CC: case 0x1E956: case 0x1EC76: @@ -5941,7 +5878,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x11C60: case 0x11D57: case 0x11DA7: - case 0x11F57: case 0x12405: case 0x1240C: case 0x12412: @@ -5955,7 +5891,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x16AC7: case 0x16B57: case 0x16E87: - case 0x1D2C7: case 0x1D2E7: case 0x1D366: case 0x1D7D5: @@ -5965,7 +5900,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x1D7FD: case 0x1E147: case 0x1E2F7: - case 0x1E4F7: case 0x1E8CD: case 0x1E957: case 0x1EC77: @@ -6095,7 +6029,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x11C61: case 0x11D58: case 0x11DA8: - case 0x11F58: case 0x12406: case 0x1240D: case 0x12413: @@ -6108,7 +6041,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x16AC8: case 0x16B58: case 0x16E88: - case 0x1D2C8: case 0x1D2E8: case 0x1D367: case 0x1D7D6: @@ -6118,7 +6050,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x1D7FE: case 0x1E148: case 0x1E2F8: - case 0x1E4F8: case 0x1E8CE: case 0x1E958: case 0x1EC78: @@ -6243,7 +6174,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x11C62: case 0x11D59: case 0x11DA9: - case 0x11F59: case 0x12407: case 0x1240E: case 0x12414: @@ -6258,7 +6188,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x16AC9: case 0x16B59: case 0x16E89: - case 0x1D2C9: case 0x1D2E9: case 0x1D368: case 0x1D7D7: @@ -6268,7 +6197,6 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch) case 0x1D7FF: case 0x1E149: case 0x1E2F9: - case 0x1E4F9: case 0x1E8CF: case 0x1E959: case 0x1EC79: diff --git a/Objects/weakrefobject.c b/Objects/weakrefobject.c index cf89a9231d204d..1712533a39d802 100644 --- a/Objects/weakrefobject.c +++ b/Objects/weakrefobject.c @@ -371,7 +371,7 @@ static PyMethodDef weakref_methods[] = { PyTypeObject _PyWeakref_RefType = { PyVarObject_HEAD_INIT(&PyType_Type, 0) - .tp_name = "weakref.ReferenceType", + .tp_name = "weakref", .tp_basicsize = sizeof(PyWeakReference), .tp_dealloc = weakref_dealloc, .tp_vectorcall_offset = offsetof(PyWeakReference, vectorcall), @@ -558,7 +558,6 @@ proxy_bool(PyWeakReference *proxy) static void proxy_dealloc(PyWeakReference *self) { - PyObject_GC_UnTrack(self); if (self->wr_callback != NULL) PyObject_GC_UnTrack((PyObject *)self); clear_weakref(self); @@ -720,7 +719,7 @@ static PyMappingMethods proxy_as_mapping = { PyTypeObject _PyWeakref_ProxyType = { PyVarObject_HEAD_INIT(&PyType_Type, 0) - "weakref.ProxyType", + "weakproxy", sizeof(PyWeakReference), 0, /* methods */ @@ -755,7 +754,7 @@ _PyWeakref_ProxyType = { PyTypeObject _PyWeakref_CallableProxyType = { PyVarObject_HEAD_INIT(&PyType_Type, 0) - "weakref.CallableProxyType", + "weakcallableproxy", sizeof(PyWeakReference), 0, /* methods */ @@ -1019,22 +1018,3 @@ PyObject_ClearWeakRefs(PyObject *object) PyErr_Restore(err_type, err_value, err_tb); } } - -/* This function is called by _PyStaticType_Dealloc() to clear weak references. - * - * This is called at the end of runtime finalization, so we can just - * wipe out the type's weaklist. We don't bother with callbacks - * or anything else. - */ -void -_PyStaticType_ClearWeakRefs(PyTypeObject *type) -{ - static_builtin_state *state = _PyStaticType_GetState(type); - PyObject **list = _PyStaticType_GET_WEAKREFS_LISTPTR(state); - while (*list != NULL) { - /* Note that clear_weakref() pops the first ref off the type's - weaklist before clearing its wr_object and wr_callback. - That is how we're able to loop over the list. */ - clear_weakref((PyWeakReference *)*list); - } -} diff --git a/PC/_msi.c b/PC/_msi.c index 3686b9bb6f2a6d..3f50f9b8845947 100644 --- a/PC/_msi.c +++ b/PC/_msi.c @@ -360,7 +360,7 @@ msierror(int status) int code; char buf[2000]; char *res = buf; - DWORD size = Py_ARRAY_LENGTH(buf); + DWORD size = sizeof(buf); MSIHANDLE err = MsiGetLastErrorRecord(); if (err == 0) { @@ -484,7 +484,7 @@ _msi_Record_GetString_impl(msiobj *self, unsigned int field) unsigned int status; WCHAR buf[2000]; WCHAR *res = buf; - DWORD size = Py_ARRAY_LENGTH(buf); + DWORD size = sizeof(buf); PyObject* string; status = MsiRecordGetStringW(self->h, field, res, &size); diff --git a/PC/_wmimodule.cpp b/PC/_wmimodule.cpp deleted file mode 100644 index de22049dd33f34..00000000000000 --- a/PC/_wmimodule.cpp +++ /dev/null @@ -1,323 +0,0 @@ -// -// Helper library for querying WMI using its COM-based query API. -// -// Copyright (c) Microsoft Corporation -// Licensed to PSF under a contributor agreement -// - -// Version history -// 2022-08: Initial contribution (Steve Dower) - -#define _WIN32_DCOM -#include <Windows.h> -#include <comdef.h> -#include <Wbemidl.h> -#include <propvarutil.h> - -#include <Python.h> - - -#if _MSC_VER >= 1929 -// We can use clinic directly when the C++ compiler supports C++20 -#include "clinic/_wmimodule.cpp.h" -#else -// Cannot use clinic because of missing C++20 support, so create a simpler -// API instead. This won't impact releases, so fine to omit the docstring. -static PyObject *_wmi_exec_query_impl(PyObject *module, PyObject *query); -#define _WMI_EXEC_QUERY_METHODDEF {"exec_query", _wmi_exec_query_impl, METH_O, NULL}, -#endif - - -/*[clinic input] -module _wmi -[clinic start generated code]*/ -/*[clinic end generated code: output=da39a3ee5e6b4b0d input=7ca95dad1453d10d]*/ - - - -struct _query_data { - LPCWSTR query; - HANDLE writePipe; - HANDLE readPipe; -}; - - -static DWORD WINAPI -_query_thread(LPVOID param) -{ - IWbemLocator *locator = NULL; - IWbemServices *services = NULL; - IEnumWbemClassObject* enumerator = NULL; - BSTR bstrQuery = NULL; - struct _query_data *data = (struct _query_data*)param; - - HRESULT hr = CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED); - if (FAILED(hr)) { - CloseHandle(data->writePipe); - return (DWORD)hr; - } - - hr = CoInitializeSecurity( - NULL, -1, NULL, NULL, - RPC_C_AUTHN_LEVEL_DEFAULT, - RPC_C_IMP_LEVEL_IMPERSONATE, - NULL, EOAC_NONE, NULL - ); - // gh-96684: CoInitializeSecurity will fail if another part of the app has - // already called it. Hopefully they passed lenient enough settings that we - // can complete the WMI query, so keep going. - if (hr == RPC_E_TOO_LATE) { - hr = 0; - } - if (SUCCEEDED(hr)) { - hr = CoCreateInstance( - CLSID_WbemLocator, 0, CLSCTX_INPROC_SERVER, - IID_IWbemLocator, (LPVOID *)&locator - ); - } - if (SUCCEEDED(hr)) { - hr = locator->ConnectServer( - bstr_t(L"ROOT\\CIMV2"), - NULL, NULL, 0, NULL, 0, 0, &services - ); - } - if (SUCCEEDED(hr)) { - hr = CoSetProxyBlanket( - services, RPC_C_AUTHN_WINNT, RPC_C_AUTHZ_NONE, NULL, - RPC_C_AUTHN_LEVEL_CALL, RPC_C_IMP_LEVEL_IMPERSONATE, - NULL, EOAC_NONE - ); - } - if (SUCCEEDED(hr)) { - bstrQuery = SysAllocString(data->query); - if (!bstrQuery) { - hr = HRESULT_FROM_WIN32(ERROR_NOT_ENOUGH_MEMORY); - } - } - if (SUCCEEDED(hr)) { - hr = services->ExecQuery( - bstr_t("WQL"), - bstrQuery, - WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY, - NULL, - &enumerator - ); - } - - // Okay, after all that, at this stage we should have an enumerator - // to the query results and can start writing them to the pipe! - IWbemClassObject *value = NULL; - int startOfEnum = TRUE; - int endOfEnum = FALSE; - while (SUCCEEDED(hr) && !endOfEnum) { - ULONG got = 0; - DWORD written; - hr = enumerator->Next(WBEM_INFINITE, 1, &value, &got); - if (hr == WBEM_S_FALSE) { - // Could be at the end, but still got a result this time - endOfEnum = TRUE; - hr = 0; - break; - } - if (FAILED(hr) || got != 1 || !value) { - continue; - } - if (!startOfEnum && !WriteFile(data->writePipe, (LPVOID)L"\0", 2, &written, NULL)) { - hr = HRESULT_FROM_WIN32(GetLastError()); - break; - } - startOfEnum = FALSE; - // Okay, now we have each resulting object it's time to - // enumerate its members - hr = value->BeginEnumeration(0); - if (FAILED(hr)) { - value->Release(); - break; - } - while (SUCCEEDED(hr)) { - BSTR propName; - VARIANT propValue; - long flavor; - hr = value->Next(0, &propName, &propValue, NULL, &flavor); - if (hr == WBEM_S_NO_MORE_DATA) { - hr = 0; - break; - } - if (SUCCEEDED(hr) && (flavor & WBEM_FLAVOR_MASK_ORIGIN) != WBEM_FLAVOR_ORIGIN_SYSTEM) { - WCHAR propStr[8192]; - hr = VariantToString(propValue, propStr, sizeof(propStr) / sizeof(propStr[0])); - if (SUCCEEDED(hr)) { - DWORD cbStr1, cbStr2; - cbStr1 = (DWORD)(wcslen(propName) * sizeof(propName[0])); - cbStr2 = (DWORD)(wcslen(propStr) * sizeof(propStr[0])); - if (!WriteFile(data->writePipe, propName, cbStr1, &written, NULL) || - !WriteFile(data->writePipe, (LPVOID)L"=", 2, &written, NULL) || - !WriteFile(data->writePipe, propStr, cbStr2, &written, NULL) || - !WriteFile(data->writePipe, (LPVOID)L"\0", 2, &written, NULL) - ) { - hr = HRESULT_FROM_WIN32(GetLastError()); - } - } - VariantClear(&propValue); - SysFreeString(propName); - } - } - value->EndEnumeration(); - value->Release(); - } - - if (bstrQuery) { - SysFreeString(bstrQuery); - } - if (enumerator) { - enumerator->Release(); - } - if (services) { - services->Release(); - } - if (locator) { - locator->Release(); - } - CoUninitialize(); - CloseHandle(data->writePipe); - return (DWORD)hr; -} - - -/*[clinic input] -_wmi.exec_query - - query: unicode - -Runs a WMI query against the local machine. - -This returns a single string with 'name=value' pairs in a flat array separated -by null characters. -[clinic start generated code]*/ - -static PyObject * -_wmi_exec_query_impl(PyObject *module, PyObject *query) -/*[clinic end generated code: output=a62303d5bb5e003f input=48d2d0a1e1a7e3c2]*/ - -/*[clinic end generated code]*/ -{ - PyObject *result = NULL; - HANDLE hThread = NULL; - int err = 0; - WCHAR buffer[8192]; - DWORD offset = 0; - DWORD bytesRead; - struct _query_data data = {0}; - - if (PySys_Audit("_wmi.exec_query", "O", query) < 0) { - return NULL; - } - - data.query = PyUnicode_AsWideCharString(query, NULL); - if (!data.query) { - return NULL; - } - - if (0 != _wcsnicmp(data.query, L"select ", 7)) { - PyMem_Free((void *)data.query); - PyErr_SetString(PyExc_ValueError, "only SELECT queries are supported"); - return NULL; - } - - Py_BEGIN_ALLOW_THREADS - - if (!CreatePipe(&data.readPipe, &data.writePipe, NULL, 0)) { - err = GetLastError(); - } else { - hThread = CreateThread(NULL, 0, _query_thread, (LPVOID*)&data, 0, NULL); - if (!hThread) { - err = GetLastError(); - // Normally the thread proc closes this handle, but since we never started - // we need to close it here. - CloseHandle(data.writePipe); - } - } - - while (!err) { - if (ReadFile( - data.readPipe, - (LPVOID)&buffer[offset / sizeof(buffer[0])], - sizeof(buffer) - offset, - &bytesRead, - NULL - )) { - offset += bytesRead; - if (offset >= sizeof(buffer)) { - err = ERROR_MORE_DATA; - } - } else { - err = GetLastError(); - } - } - - if (data.readPipe) { - CloseHandle(data.readPipe); - } - - // Allow the thread some time to clean up - switch (WaitForSingleObject(hThread, 1000)) { - case WAIT_OBJECT_0: - // Thread ended cleanly - if (!GetExitCodeThread(hThread, (LPDWORD)&err)) { - err = GetLastError(); - } - break; - case WAIT_TIMEOUT: - // Probably stuck - there's not much we can do, unfortunately - if (err == 0 || err == ERROR_BROKEN_PIPE) { - err = WAIT_TIMEOUT; - } - break; - default: - if (err == 0 || err == ERROR_BROKEN_PIPE) { - err = GetLastError(); - } - break; - } - - CloseHandle(hThread); - hThread = NULL; - - Py_END_ALLOW_THREADS - - PyMem_Free((void *)data.query); - - if (err == ERROR_MORE_DATA) { - PyErr_Format(PyExc_OSError, "Query returns more than %zd characters", Py_ARRAY_LENGTH(buffer)); - return NULL; - } else if (err) { - PyErr_SetFromWindowsErr(err); - return NULL; - } - - if (!offset) { - return PyUnicode_FromStringAndSize(NULL, 0); - } - return PyUnicode_FromWideChar(buffer, offset / sizeof(buffer[0]) - 1); -} - - -static PyMethodDef wmi_functions[] = { - _WMI_EXEC_QUERY_METHODDEF - { NULL, NULL, 0, NULL } -}; - -static PyModuleDef wmi_def = { - PyModuleDef_HEAD_INIT, - "_wmi", - NULL, // doc - 0, // m_size - wmi_functions -}; - -extern "C" { - PyMODINIT_FUNC PyInit__wmi(void) - { - return PyModuleDef_Init(&wmi_def); - } -} diff --git a/PC/clinic/_msi.c.h b/PC/clinic/_msi.c.h index 1b7234aa03bedf..ca1f8ad76a3126 100644 --- a/PC/clinic/_msi.c.h +++ b/PC/clinic/_msi.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_msi_UuidCreate__doc__, "UuidCreate($module, /)\n" "--\n" @@ -695,4 +689,4 @@ _msi_CreateRecord(PyObject *module, PyObject *arg) exit: return return_value; } -/*[clinic end generated code: output=583505220fadb52b input=a9049054013a1b77]*/ +/*[clinic end generated code: output=a592695c4315db22 input=a9049054013a1b77]*/ diff --git a/PC/clinic/_testconsole.c.h b/PC/clinic/_testconsole.c.h index b2f3b4ce8b08a2..b2fd515e77a121 100644 --- a/PC/clinic/_testconsole.c.h +++ b/PC/clinic/_testconsole.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - #if defined(MS_WINDOWS) PyDoc_STRVAR(_testconsole_write_input__doc__, @@ -27,31 +21,8 @@ static PyObject * _testconsole_write_input(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(file), &_Py_ID(s), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"file", "s", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "write_input", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "write_input", 0}; PyObject *argsbuf[2]; PyObject *file; PyBytesObject *s; @@ -92,31 +63,8 @@ static PyObject * _testconsole_read_output(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(file), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"file", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "read_output", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "read_output", 0}; PyObject *argsbuf[1]; PyObject *file; @@ -140,4 +88,4 @@ _testconsole_read_output(PyObject *module, PyObject *const *args, Py_ssize_t nar #ifndef _TESTCONSOLE_READ_OUTPUT_METHODDEF #define _TESTCONSOLE_READ_OUTPUT_METHODDEF #endif /* !defined(_TESTCONSOLE_READ_OUTPUT_METHODDEF) */ -/*[clinic end generated code: output=208c72e2c873555b input=a9049054013a1b77]*/ +/*[clinic end generated code: output=6e9f8b0766eb5a0e input=a9049054013a1b77]*/ diff --git a/PC/clinic/_wmimodule.cpp.h b/PC/clinic/_wmimodule.cpp.h deleted file mode 100644 index e2b947f339da60..00000000000000 --- a/PC/clinic/_wmimodule.cpp.h +++ /dev/null @@ -1,75 +0,0 @@ -/*[clinic input] -preserve -[clinic start generated code]*/ - -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - -PyDoc_STRVAR(_wmi_exec_query__doc__, -"exec_query($module, /, query)\n" -"--\n" -"\n" -"Runs a WMI query against the local machine.\n" -"\n" -"This returns a single string with \'name=value\' pairs in a flat array separated\n" -"by null characters."); - -#define _WMI_EXEC_QUERY_METHODDEF \ - {"exec_query", _PyCFunction_CAST(_wmi_exec_query), METH_FASTCALL|METH_KEYWORDS, _wmi_exec_query__doc__}, - -static PyObject * -_wmi_exec_query_impl(PyObject *module, PyObject *query); - -static PyObject * -_wmi_exec_query(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) -{ - PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(query), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - - static const char * const _keywords[] = {"query", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "exec_query", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE - PyObject *argsbuf[1]; - PyObject *query; - - args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf); - if (!args) { - goto exit; - } - if (!PyUnicode_Check(args[0])) { - _PyArg_BadArgument("exec_query", "argument 'query'", "str", args[0]); - goto exit; - } - if (PyUnicode_READY(args[0]) == -1) { - goto exit; - } - query = args[0]; - return_value = _wmi_exec_query_impl(module, query); - -exit: - return return_value; -} -/*[clinic end generated code: output=7fdf0c0579ddb566 input=a9049054013a1b77]*/ diff --git a/PC/clinic/msvcrtmodule.c.h b/PC/clinic/msvcrtmodule.c.h index d808ef0bbd0ffe..ea95897590fe47 100644 --- a/PC/clinic/msvcrtmodule.c.h +++ b/PC/clinic/msvcrtmodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(msvcrt_heapmin__doc__, "heapmin($module, /)\n" "--\n" @@ -147,15 +141,8 @@ msvcrt_open_osfhandle(PyObject *module, PyObject *const *args, Py_ssize_t nargs) int flags; long _return_value; - if (!_PyArg_CheckPositional("open_osfhandle", nargs, 2, 2)) { - goto exit; - } - handle = PyLong_AsVoidPtr(args[0]); - if (!handle && PyErr_Occurred()) { - goto exit; - } - flags = _PyLong_AsInt(args[1]); - if (flags == -1 && PyErr_Occurred()) { + if (!_PyArg_ParseStack(args, nargs, ""_Py_PARSE_UINTPTR"i:open_osfhandle", + &handle, &flags)) { goto exit; } _return_value = msvcrt_open_osfhandle_impl(module, handle, flags); @@ -501,15 +488,8 @@ msvcrt_CrtSetReportFile(PyObject *module, PyObject *const *args, Py_ssize_t narg void *file; void *_return_value; - if (!_PyArg_CheckPositional("CrtSetReportFile", nargs, 2, 2)) { - goto exit; - } - type = _PyLong_AsInt(args[0]); - if (type == -1 && PyErr_Occurred()) { - goto exit; - } - file = PyLong_AsVoidPtr(args[1]); - if (!file && PyErr_Occurred()) { + if (!_PyArg_ParseStack(args, nargs, "i"_Py_PARSE_UINTPTR":CrtSetReportFile", + &type, &file)) { goto exit; } _return_value = msvcrt_CrtSetReportFile_impl(module, type, file); @@ -667,4 +647,4 @@ msvcrt_SetErrorMode(PyObject *module, PyObject *arg) #ifndef MSVCRT_SET_ERROR_MODE_METHODDEF #define MSVCRT_SET_ERROR_MODE_METHODDEF #endif /* !defined(MSVCRT_SET_ERROR_MODE_METHODDEF) */ -/*[clinic end generated code: output=204bae9fee7f6124 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=b543933cad520f2b input=a9049054013a1b77]*/ diff --git a/PC/clinic/winreg.c.h b/PC/clinic/winreg.c.h index dc78274e062b29..6af24af539b0b9 100644 --- a/PC/clinic/winreg.c.h +++ b/PC/clinic/winreg.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(winreg_HKEYType_Close__doc__, "Close($self, /)\n" "--\n" @@ -93,31 +87,8 @@ static PyObject * winreg_HKEYType___exit__(PyHKEYObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(exc_type), &_Py_ID(exc_value), &_Py_ID(traceback), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"exc_type", "exc_value", "traceback", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "__exit__", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "__exit__", 0}; PyObject *argsbuf[3]; PyObject *exc_type; PyObject *exc_value; @@ -315,76 +286,18 @@ static PyObject * winreg_CreateKeyEx(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 4 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(key), &_Py_ID(sub_key), &_Py_ID(reserved), &_Py_ID(access), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"key", "sub_key", "reserved", "access", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "CreateKeyEx", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE - PyObject *argsbuf[4]; - Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; + static _PyArg_Parser _parser = {"O&O&|ii:CreateKeyEx", _keywords, 0}; HKEY key; const Py_UNICODE *sub_key; int reserved = 0; REGSAM access = KEY_WRITE; HKEY _return_value; - args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 4, 0, argsbuf); - if (!args) { + if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser, + clinic_HKEY_converter, &key, _PyUnicode_WideCharString_Opt_Converter, &sub_key, &reserved, &access)) { goto exit; } - if (!clinic_HKEY_converter(args[0], &key)) { - goto exit; - } - if (args[1] == Py_None) { - sub_key = NULL; - } - else if (PyUnicode_Check(args[1])) { - sub_key = PyUnicode_AsWideCharString(args[1], NULL); - if (sub_key == NULL) { - goto exit; - } - } - else { - _PyArg_BadArgument("CreateKeyEx", "argument 'sub_key'", "str or None", args[1]); - goto exit; - } - if (!noptargs) { - goto skip_optional_pos; - } - if (args[2]) { - reserved = _PyLong_AsInt(args[2]); - if (reserved == -1 && PyErr_Occurred()) { - goto exit; - } - if (!--noptargs) { - goto skip_optional_pos; - } - } - access = _PyLong_AsInt(args[3]); - if (access == -1 && PyErr_Occurred()) { - goto exit; - } -skip_optional_pos: _return_value = winreg_CreateKeyEx_impl(module, key, sub_key, reserved, access); if (_return_value == NULL) { goto exit; @@ -457,7 +370,7 @@ PyDoc_STRVAR(winreg_DeleteKeyEx__doc__, " reserved=0)\n" "--\n" "\n" -"Deletes the specified key (intended for 64-bit OS).\n" +"Deletes the specified key (64-bit OS only).\n" "\n" " key\n" " An already open key, or any one of the predefined HKEY_* constants.\n" @@ -471,9 +384,6 @@ PyDoc_STRVAR(winreg_DeleteKeyEx__doc__, " reserved\n" " A reserved integer, and must be zero. Default is zero.\n" "\n" -"While this function is intended to be used for 64-bit OS, it is also\n" -" available on 32-bit systems.\n" -"\n" "This method can not delete keys with subkeys.\n" "\n" "If the function succeeds, the entire key, including all of its values,\n" @@ -492,70 +402,17 @@ static PyObject * winreg_DeleteKeyEx(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 4 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(key), &_Py_ID(sub_key), &_Py_ID(access), &_Py_ID(reserved), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"key", "sub_key", "access", "reserved", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "DeleteKeyEx", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE - PyObject *argsbuf[4]; - Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; + static _PyArg_Parser _parser = {"O&O&|ii:DeleteKeyEx", _keywords, 0}; HKEY key; const Py_UNICODE *sub_key; REGSAM access = KEY_WOW64_64KEY; int reserved = 0; - args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 4, 0, argsbuf); - if (!args) { - goto exit; - } - if (!clinic_HKEY_converter(args[0], &key)) { + if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser, + clinic_HKEY_converter, &key, _PyUnicode_WideCharString_Converter, &sub_key, &access, &reserved)) { goto exit; } - if (!PyUnicode_Check(args[1])) { - _PyArg_BadArgument("DeleteKeyEx", "argument 'sub_key'", "str", args[1]); - goto exit; - } - sub_key = PyUnicode_AsWideCharString(args[1], NULL); - if (sub_key == NULL) { - goto exit; - } - if (!noptargs) { - goto skip_optional_pos; - } - if (args[2]) { - access = _PyLong_AsInt(args[2]); - if (access == -1 && PyErr_Occurred()) { - goto exit; - } - if (!--noptargs) { - goto skip_optional_pos; - } - } - reserved = _PyLong_AsInt(args[3]); - if (reserved == -1 && PyErr_Occurred()) { - goto exit; - } -skip_optional_pos: return_value = winreg_DeleteKeyEx_impl(module, key, sub_key, access, reserved); exit: @@ -896,76 +753,18 @@ static PyObject * winreg_OpenKey(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 4 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(key), &_Py_ID(sub_key), &_Py_ID(reserved), &_Py_ID(access), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"key", "sub_key", "reserved", "access", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "OpenKey", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE - PyObject *argsbuf[4]; - Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; + static _PyArg_Parser _parser = {"O&O&|ii:OpenKey", _keywords, 0}; HKEY key; const Py_UNICODE *sub_key; int reserved = 0; REGSAM access = KEY_READ; HKEY _return_value; - args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 4, 0, argsbuf); - if (!args) { - goto exit; - } - if (!clinic_HKEY_converter(args[0], &key)) { - goto exit; - } - if (args[1] == Py_None) { - sub_key = NULL; - } - else if (PyUnicode_Check(args[1])) { - sub_key = PyUnicode_AsWideCharString(args[1], NULL); - if (sub_key == NULL) { - goto exit; - } - } - else { - _PyArg_BadArgument("OpenKey", "argument 'sub_key'", "str or None", args[1]); - goto exit; - } - if (!noptargs) { - goto skip_optional_pos; - } - if (args[2]) { - reserved = _PyLong_AsInt(args[2]); - if (reserved == -1 && PyErr_Occurred()) { - goto exit; - } - if (!--noptargs) { - goto skip_optional_pos; - } - } - access = _PyLong_AsInt(args[3]); - if (access == -1 && PyErr_Occurred()) { + if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser, + clinic_HKEY_converter, &key, _PyUnicode_WideCharString_Opt_Converter, &sub_key, &reserved, &access)) { goto exit; } -skip_optional_pos: _return_value = winreg_OpenKey_impl(module, key, sub_key, reserved, access); if (_return_value == NULL) { goto exit; @@ -1009,76 +808,18 @@ static PyObject * winreg_OpenKeyEx(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 4 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(key), &_Py_ID(sub_key), &_Py_ID(reserved), &_Py_ID(access), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"key", "sub_key", "reserved", "access", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "OpenKeyEx", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE - PyObject *argsbuf[4]; - Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; + static _PyArg_Parser _parser = {"O&O&|ii:OpenKeyEx", _keywords, 0}; HKEY key; const Py_UNICODE *sub_key; int reserved = 0; REGSAM access = KEY_READ; HKEY _return_value; - args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 4, 0, argsbuf); - if (!args) { + if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser, + clinic_HKEY_converter, &key, _PyUnicode_WideCharString_Opt_Converter, &sub_key, &reserved, &access)) { goto exit; } - if (!clinic_HKEY_converter(args[0], &key)) { - goto exit; - } - if (args[1] == Py_None) { - sub_key = NULL; - } - else if (PyUnicode_Check(args[1])) { - sub_key = PyUnicode_AsWideCharString(args[1], NULL); - if (sub_key == NULL) { - goto exit; - } - } - else { - _PyArg_BadArgument("OpenKeyEx", "argument 'sub_key'", "str or None", args[1]); - goto exit; - } - if (!noptargs) { - goto skip_optional_pos; - } - if (args[2]) { - reserved = _PyLong_AsInt(args[2]); - if (reserved == -1 && PyErr_Occurred()) { - goto exit; - } - if (!--noptargs) { - goto skip_optional_pos; - } - } - access = _PyLong_AsInt(args[3]); - if (access == -1 && PyErr_Occurred()) { - goto exit; - } -skip_optional_pos: _return_value = winreg_OpenKeyEx_impl(module, key, sub_key, reserved, access); if (_return_value == NULL) { goto exit; @@ -1345,36 +1086,10 @@ winreg_SetValue(PyObject *module, PyObject *const *args, Py_ssize_t nargs) DWORD type; PyObject *value_obj; - if (!_PyArg_CheckPositional("SetValue", nargs, 4, 4)) { - goto exit; - } - if (!clinic_HKEY_converter(args[0], &key)) { + if (!_PyArg_ParseStack(args, nargs, "O&O&kU:SetValue", + clinic_HKEY_converter, &key, _PyUnicode_WideCharString_Opt_Converter, &sub_key, &type, &value_obj)) { goto exit; } - if (args[1] == Py_None) { - sub_key = NULL; - } - else if (PyUnicode_Check(args[1])) { - sub_key = PyUnicode_AsWideCharString(args[1], NULL); - if (sub_key == NULL) { - goto exit; - } - } - else { - _PyArg_BadArgument("SetValue", "argument 2", "str or None", args[1]); - goto exit; - } - if (!_PyLong_UnsignedLong_Converter(args[2], &type)) { - goto exit; - } - if (!PyUnicode_Check(args[3])) { - _PyArg_BadArgument("SetValue", "argument 4", "str", args[3]); - goto exit; - } - if (PyUnicode_READY(args[3]) == -1) { - goto exit; - } - value_obj = args[3]; return_value = winreg_SetValue_impl(module, key, sub_key, type, value_obj); exit: @@ -1445,30 +1160,10 @@ winreg_SetValueEx(PyObject *module, PyObject *const *args, Py_ssize_t nargs) DWORD type; PyObject *value; - if (!_PyArg_CheckPositional("SetValueEx", nargs, 5, 5)) { - goto exit; - } - if (!clinic_HKEY_converter(args[0], &key)) { - goto exit; - } - if (args[1] == Py_None) { - value_name = NULL; - } - else if (PyUnicode_Check(args[1])) { - value_name = PyUnicode_AsWideCharString(args[1], NULL); - if (value_name == NULL) { - goto exit; - } - } - else { - _PyArg_BadArgument("SetValueEx", "argument 2", "str or None", args[1]); - goto exit; - } - reserved = args[2]; - if (!_PyLong_UnsignedLong_Converter(args[3], &type)) { + if (!_PyArg_ParseStack(args, nargs, "O&O&OkO:SetValueEx", + clinic_HKEY_converter, &key, _PyUnicode_WideCharString_Opt_Converter, &value_name, &reserved, &type, &value)) { goto exit; } - value = args[4]; return_value = winreg_SetValueEx_impl(module, key, value_name, reserved, type, value); exit: @@ -1579,4 +1274,4 @@ winreg_QueryReflectionKey(PyObject *module, PyObject *arg) exit: return return_value; } -/*[clinic end generated code: output=5dfd7dbce8ccb392 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=9782b1630b59e201 input=a9049054013a1b77]*/ diff --git a/PC/clinic/winsound.c.h b/PC/clinic/winsound.c.h index 241d547c267a4c..9f99b8e400261d 100644 --- a/PC/clinic/winsound.c.h +++ b/PC/clinic/winsound.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(winsound_PlaySound__doc__, "PlaySound($module, /, sound, flags)\n" "--\n" @@ -29,31 +23,8 @@ static PyObject * winsound_PlaySound(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(sound), &_Py_ID(flags), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"sound", "flags", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "PlaySound", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "PlaySound", 0}; PyObject *argsbuf[2]; PyObject *sound; int flags; @@ -95,31 +66,8 @@ static PyObject * winsound_Beep(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(frequency), &_Py_ID(duration), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"frequency", "duration", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "Beep", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "Beep", 0}; PyObject *argsbuf[2]; int frequency; int duration; @@ -160,31 +108,8 @@ static PyObject * winsound_MessageBeep(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(type), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"type", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "MessageBeep", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "MessageBeep", 0}; PyObject *argsbuf[1]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; int type = MB_OK; @@ -206,4 +131,4 @@ winsound_MessageBeep(PyObject *module, PyObject *const *args, Py_ssize_t nargs, exit: return return_value; } -/*[clinic end generated code: output=f70b7730127208d8 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=b7e53fab4f26aeaf input=a9049054013a1b77]*/ diff --git a/PC/empty.c b/PC/empty.c new file mode 100644 index 00000000000000..846b4d0d646217 --- /dev/null +++ b/PC/empty.c @@ -0,0 +1,6 @@ +#include <windows.h> +int __stdcall +WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) +{ + return 0; +} \ No newline at end of file diff --git a/PC/launcher.c b/PC/launcher.c index da566a180168c5..de7abeb4e86abd 100644 --- a/PC/launcher.c +++ b/PC/launcher.c @@ -1926,35 +1926,27 @@ process(int argc, wchar_t ** argv) if (!cch) { error(0, L"Cannot determine memory for home path"); } - cch += (DWORD)wcslen(PYTHON_EXECUTABLE) + 4; /* include sep, null and quotes */ + cch += (DWORD)wcslen(PYTHON_EXECUTABLE) + 1 + 1; /* include sep and null */ executable = (wchar_t *)malloc(cch * sizeof(wchar_t)); if (executable == NULL) { error(RC_NO_MEMORY, L"A memory allocation failed"); } - /* start with a quote - we'll skip this ahead, but want it for the final string */ - executable[0] = L'"'; - cch_actual = MultiByteToWideChar(CP_UTF8, 0, start, len, &executable[1], cch - 1); + cch_actual = MultiByteToWideChar(CP_UTF8, 0, start, len, executable, cch); if (!cch_actual) { error(RC_BAD_VENV_CFG, L"Cannot decode home path in '%ls'", venv_cfg_path); } - cch_actual += 1; /* account for the first quote */ - executable[cch_actual] = L'\0'; if (executable[cch_actual - 1] != L'\\') { executable[cch_actual++] = L'\\'; executable[cch_actual] = L'\0'; } - if (wcscat_s(&executable[1], cch - 1, PYTHON_EXECUTABLE)) { + if (wcscat_s(executable, cch, PYTHON_EXECUTABLE)) { error(RC_BAD_VENV_CFG, L"Cannot create executable path from '%ls'", venv_cfg_path); } - /* there's no trailing quote, so we only have to skip one character for the test */ - if (GetFileAttributesW(&executable[1]) == INVALID_FILE_ATTRIBUTES) { + if (GetFileAttributesW(executable) == INVALID_FILE_ATTRIBUTES) { error(RC_NO_PYTHON, L"No Python at '%ls'", executable); } - /* now append the final quote */ - wcscat_s(executable, cch, L"\""); - /* smuggle our original path through */ if (!SetEnvironmentVariableW(L"__PYVENV_LAUNCHER__", argv0)) { error(0, L"Failed to set launcher environment"); } diff --git a/PC/launcher2.c b/PC/launcher2.c index 23eaa19dde38e8..ae11f4f024a904 100644 --- a/PC/launcher2.c +++ b/PC/launcher2.c @@ -36,7 +36,6 @@ #define RC_DUPLICATE_ITEM 110 #define RC_INSTALLING 111 #define RC_NO_PYTHON_AT_ALL 112 -#define RC_NO_SHEBANG 113 static FILE * log_fp = NULL; @@ -393,6 +392,12 @@ typedef struct { // only currently possible high priority environment is an active virtual // environment bool lowPriorityTag; + // if true, we had an old-style tag with '-64' suffix, and so do not + // want to match tags like '3.x-32' + bool exclude32Bit; + // if true, we had an old-style tag with '-32' suffix, and so *only* + // want to match tags like '3.x-32' + bool only32Bit; // if true, allow PEP 514 lookup to override 'executable' bool allowExecutableOverride; // if true, allow a nearby pyvenv.cfg to locate the executable @@ -477,6 +482,8 @@ dumpSearchInfo(SearchInfo *search) DEBUG_2(tag, tagLength); DEBUG_BOOL(oldStyleTag); DEBUG_BOOL(lowPriorityTag); + DEBUG_BOOL(exclude32Bit); + DEBUG_BOOL(only32Bit); DEBUG_BOOL(allowDefaults); DEBUG_BOOL(allowExecutableOverride); DEBUG_BOOL(windowed); @@ -573,9 +580,6 @@ parseCommandLine(SearchInfo *search) break; } } - if (tail == search->originalCmdLine && tail[0] == L'"') { - ++tail; - } // Without special cases, we can now fill in the search struct int tailLen = (int)(end ? (end - tail) : wcsnlen_s(tail, MAXLEN)); search->executableLength = -1; @@ -641,6 +645,17 @@ parseCommandLine(SearchInfo *search) search->tagLength = argLen; search->oldStyleTag = true; search->restOfCmdLine = tail; + // If the tag ends with -64, we want to exclude 32-bit runtimes + // (If the tag ends with -32, it will be filtered later) + if (argLen > 3) { + if (0 == _compareArgument(&arg[argLen - 3], 3, L"-64", 3)) { + search->tagLength -= 3; + search->exclude32Bit = true; + } else if (0 == _compareArgument(&arg[argLen - 3], 3, L"-32", 3)) { + search->tagLength -= 3; + search->only32Bit = true; + } + } } else if (STARTSWITH(L"V:") || STARTSWITH(L"-version:")) { // Arguments starting with 'V:' specify company and/or tag const wchar_t *argStart = wcschr(arg, L':') + 1; @@ -732,88 +747,6 @@ _shebangStartsWith(const wchar_t *buffer, int bufferLength, const wchar_t *prefi } -int -searchPath(SearchInfo *search, const wchar_t *shebang, int shebangLength) -{ - if (isEnvVarSet(L"PYLAUNCHER_NO_SEARCH_PATH")) { - return RC_NO_SHEBANG; - } - - wchar_t *command; - if (!_shebangStartsWith(shebang, shebangLength, L"/usr/bin/env ", &command)) { - return RC_NO_SHEBANG; - } - - wchar_t filename[MAXLEN]; - int lastDot = 0; - int commandLength = 0; - while (commandLength < MAXLEN && command[commandLength] && !isspace(command[commandLength])) { - if (command[commandLength] == L'.') { - lastDot = commandLength; - } - filename[commandLength] = command[commandLength]; - commandLength += 1; - } - - if (!commandLength || commandLength == MAXLEN) { - return RC_BAD_VIRTUAL_PATH; - } - - filename[commandLength] = L'\0'; - - const wchar_t *ext = L".exe"; - // If the command already has an extension, we do not want to add it again - if (!lastDot || _comparePath(&filename[lastDot], -1, ext, -1)) { - if (wcscat_s(filename, MAXLEN, L".exe")) { - return RC_BAD_VIRTUAL_PATH; - } - } - - wchar_t pathVariable[MAXLEN]; - int n = GetEnvironmentVariableW(L"PATH", pathVariable, MAXLEN); - if (!n) { - if (GetLastError() == ERROR_ENVVAR_NOT_FOUND) { - return RC_NO_SHEBANG; - } - winerror(0, L"Failed to read PATH\n", filename); - return RC_INTERNAL_ERROR; - } - - wchar_t buffer[MAXLEN]; - n = SearchPathW(pathVariable, filename, NULL, MAXLEN, buffer, NULL); - if (!n) { - if (GetLastError() == ERROR_FILE_NOT_FOUND) { - debug(L"# Did not find %s on PATH\n", filename); - // If we didn't find it on PATH, let normal handling take over - return RC_NO_SHEBANG; - } - // Other errors should cause us to break - winerror(0, L"Failed to find %s on PATH\n", filename); - return RC_BAD_VIRTUAL_PATH; - } - - // Check that we aren't going to call ourselves again - // If we are, pretend there was no shebang and let normal handling take over - if (GetModuleFileNameW(NULL, filename, MAXLEN) && - 0 == _comparePath(filename, -1, buffer, -1)) { - debug(L"# ignoring recursive shebang command\n"); - return RC_NO_SHEBANG; - } - - wchar_t *buf = allocSearchInfoBuffer(search, n + 1); - if (!buf || wcscpy_s(buf, n + 1, buffer)) { - return RC_NO_MEMORY; - } - - search->executablePath = buf; - search->executableArgs = &command[commandLength]; - search->executableArgsLength = shebangLength - commandLength; - debug(L"# Found %s on PATH\n", buf); - - return 0; -} - - int _readIni(const wchar_t *section, const wchar_t *settingName, wchar_t *buffer, int bufferLength) { @@ -825,7 +758,7 @@ _readIni(const wchar_t *section, const wchar_t *settingName, wchar_t *buffer, in n = GetPrivateProfileStringW(section, settingName, NULL, buffer, bufferLength, iniPath); if (n) { debug(L"# Found %s in %s\n", settingName, iniPath); - return n; + return true; } else if (GetLastError() == ERROR_FILE_NOT_FOUND) { debug(L"# Did not find file %s\n", iniPath); } else { @@ -941,20 +874,12 @@ checkShebang(SearchInfo *search) while (--bytesRead > 0 && *++b != '\r' && *b != '\n') { } wchar_t *shebang; int shebangLength; - // We add 1 when bytesRead==0, as in that case we hit EOF and b points - // to the last character in the file, not the newline - int exitCode = _decodeShebang(search, start, (int)(b - start + (bytesRead == 0)), onlyUtf8, &shebang, &shebangLength); + int exitCode = _decodeShebang(search, start, (int)(b - start + 1), onlyUtf8, &shebang, &shebangLength); if (exitCode) { return exitCode; } debug(L"Shebang: %s\n", shebang); - // Handle shebangs that we should search PATH for - exitCode = searchPath(search, shebang, shebangLength); - if (exitCode != RC_NO_SHEBANG) { - return exitCode; - } - // Handle some known, case-sensitive shebang templates const wchar_t *command; int commandLength; @@ -965,7 +890,6 @@ checkShebang(SearchInfo *search) L"", NULL }; - for (const wchar_t **tmpl = shebangTemplates; *tmpl; ++tmpl) { if (_shebangStartsWith(shebang, shebangLength, *tmpl, &command)) { commandLength = 0; @@ -981,22 +905,6 @@ checkShebang(SearchInfo *search) } else if (_shebangStartsWith(command, commandLength, L"python", NULL)) { search->tag = &command[6]; search->tagLength = commandLength - 6; - // If we had 'python3.12.exe' then we want to strip the suffix - // off of the tag - if (search->tagLength > 4) { - const wchar_t *suffix = &search->tag[search->tagLength - 4]; - if (0 == _comparePath(suffix, 4, L".exe", -1)) { - search->tagLength -= 4; - } - } - // If we had 'python3_d' then we want to strip the '_d' (any - // '.exe' is already gone) - if (search->tagLength > 2) { - const wchar_t *suffix = &search->tag[search->tagLength - 2]; - if (0 == _comparePath(suffix, 2, L"_d", -1)) { - search->tagLength -= 2; - } - } search->oldStyleTag = true; search->executableArgs = &command[commandLength]; search->executableArgsLength = shebangLength - commandLength; @@ -1033,17 +941,13 @@ checkDefaults(SearchInfo *search) // If tag is only a major version number, expand it from the environment // or an ini file - const wchar_t *iniSettingName = NULL; - const wchar_t *envSettingName = NULL; + const wchar_t *settingName = NULL; if (!search->tag || !search->tagLength) { - iniSettingName = L"python"; - envSettingName = L"py_python"; + settingName = L"py_python"; } else if (0 == wcsncmp(search->tag, L"3", search->tagLength)) { - iniSettingName = L"python3"; - envSettingName = L"py_python3"; + settingName = L"py_python3"; } else if (0 == wcsncmp(search->tag, L"2", search->tagLength)) { - iniSettingName = L"python2"; - envSettingName = L"py_python2"; + settingName = L"py_python2"; } else { debug(L"# Cannot select defaults for tag '%.*s'\n", search->tagLength, search->tag); return 0; @@ -1051,11 +955,11 @@ checkDefaults(SearchInfo *search) // First, try to read an environment variable wchar_t buffer[MAXLEN]; - int n = GetEnvironmentVariableW(envSettingName, buffer, MAXLEN); + int n = GetEnvironmentVariableW(settingName, buffer, MAXLEN); // If none found, check in our two .ini files instead if (!n) { - n = _readIni(L"defaults", iniSettingName, buffer, MAXLEN); + n = _readIni(L"defaults", settingName, buffer, MAXLEN); } if (n) { @@ -1068,7 +972,6 @@ checkDefaults(SearchInfo *search) if (!slash) { search->tag = tag; search->tagLength = n; - search->oldStyleTag = true; } else { search->company = tag; search->companyLength = (int)(slash - tag); @@ -1948,25 +1851,10 @@ _selectEnvironment(const SearchInfo *search, EnvironmentInfo *env, EnvironmentIn } } else if (0 == _compare(env->company, -1, L"PythonCore", -1)) { // Old-style tags can only match PythonCore entries - - // If the tag ends with -64, we want to exclude 32-bit runtimes - // (If the tag ends with -32, it will be filtered later) - int tagLength = search->tagLength; - bool exclude32Bit = false, only32Bit = false; - if (tagLength > 3) { - if (0 == _compareArgument(&search->tag[tagLength - 3], 3, L"-64", 3)) { - tagLength -= 3; - exclude32Bit = true; - } else if (0 == _compareArgument(&search->tag[tagLength - 3], 3, L"-32", 3)) { - tagLength -= 3; - only32Bit = true; - } - } - - if (_startsWith(env->tag, -1, search->tag, tagLength)) { - if (exclude32Bit && _is32Bit(env)) { + if (_startsWith(env->tag, -1, search->tag, search->tagLength)) { + if (search->exclude32Bit && _is32Bit(env)) { debug(L"# Excluding %s/%s because it looks like 32bit\n", env->company, env->tag); - } else if (only32Bit && !_is32Bit(env)) { + } else if (search->only32Bit && !_is32Bit(env)) { debug(L"# Excluding %s/%s because it doesn't look 32bit\n", env->company, env->tag); } else { *best = env; diff --git a/PC/layout/main.py b/PC/layout/main.py index 923483ad4a3f71..8e69ecc2591214 100644 --- a/PC/layout/main.py +++ b/PC/layout/main.py @@ -8,8 +8,11 @@ __version__ = "3.8" import argparse +import functools import os +import re import shutil +import subprocess import sys import tempfile import zipfile diff --git a/PC/layout/support/appxmanifest.py b/PC/layout/support/appxmanifest.py index 1fb03380278f43..427a36f31c8f9e 100644 --- a/PC/layout/support/appxmanifest.py +++ b/PC/layout/support/appxmanifest.py @@ -6,11 +6,13 @@ __version__ = "3.8" +import collections import ctypes import io import os +import sys -from pathlib import PureWindowsPath +from pathlib import Path, PureWindowsPath from xml.etree import ElementTree as ET from .constants import * @@ -86,8 +88,7 @@ } APPXMANIFEST_TEMPLATE = """<?xml version="1.0" encoding="utf-8"?> -<Package IgnorableNamespaces="desktop4 desktop6" - xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" +<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities" xmlns:rescap4="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities/4" diff --git a/PC/layout/support/catalog.py b/PC/layout/support/catalog.py index c9d87cb89484c2..43121187ed180c 100644 --- a/PC/layout/support/catalog.py +++ b/PC/layout/support/catalog.py @@ -6,6 +6,8 @@ __version__ = "3.8" +import sys + __all__ = ["PYTHON_CAT_NAME", "PYTHON_CDF_NAME"] diff --git a/PC/layout/support/constants.py b/PC/layout/support/constants.py index 8195c3dc30cdc7..6efd8bcd5cbb5e 100644 --- a/PC/layout/support/constants.py +++ b/PC/layout/support/constants.py @@ -6,6 +6,7 @@ __version__ = "3.8" import os +import re import struct import sys diff --git a/PC/msvcrtmodule.c b/PC/msvcrtmodule.c index 988d9c95aaa22e..1f78d99c790ff9 100644 --- a/PC/msvcrtmodule.c +++ b/PC/msvcrtmodule.c @@ -38,14 +38,6 @@ class HANDLE_converter(CConverter): type = 'void *' format_unit = '"_Py_PARSE_UINTPTR"' - def parse_arg(self, argname, displayname): - return """ - {paramname} = PyLong_AsVoidPtr({argname}); - if (!{paramname} && PyErr_Occurred()) {{{{ - goto exit; - }}}} - """.format(argname=argname, paramname=self.parser_name) - class HANDLE_return_converter(CReturnConverter): type = 'void *' @@ -74,7 +66,7 @@ class wchar_t_return_converter(CReturnConverter): data.return_conversion.append( 'return_value = PyUnicode_FromOrdinal(_return_value);\n') [python start generated code]*/ -/*[python end generated code: output=da39a3ee5e6b4b0d input=1e8e9fa3538ec08f]*/ +/*[python end generated code: output=da39a3ee5e6b4b0d input=d102511df3cda2eb]*/ /*[clinic input] module msvcrt diff --git a/PC/pyconfig.h b/PC/pyconfig.h index 1a33d4c5a1e4fc..2ddd5847f9c8a7 100644 --- a/PC/pyconfig.h +++ b/PC/pyconfig.h @@ -113,30 +113,20 @@ WIN32 is still required for the locale module. #define MS_WIN64 #endif -/* set the COMPILER and support tier - * - * win_amd64 MSVC (x86_64-pc-windows-msvc): 1 - * win32 MSVC (i686-pc-windows-msvc): 1 - * win_arm64 MSVC (aarch64-pc-windows-msvc): 3 - * other archs and ICC: 0 - */ +/* set the COMPILER */ #ifdef MS_WIN64 #if defined(_M_X64) || defined(_M_AMD64) #if defined(__INTEL_COMPILER) #define COMPILER ("[ICC v." _Py_STRINGIZE(__INTEL_COMPILER) " 64 bit (amd64) with MSC v." _Py_STRINGIZE(_MSC_VER) " CRT]") -#define PY_SUPPORT_TIER 0 #else #define COMPILER _Py_PASTE_VERSION("64 bit (AMD64)") -#define PY_SUPPORT_TIER 1 #endif /* __INTEL_COMPILER */ #define PYD_PLATFORM_TAG "win_amd64" #elif defined(_M_ARM64) #define COMPILER _Py_PASTE_VERSION("64 bit (ARM64)") -#define PY_SUPPORT_TIER 3 #define PYD_PLATFORM_TAG "win_arm64" #else #define COMPILER _Py_PASTE_VERSION("64 bit (Unknown)") -#define PY_SUPPORT_TIER 0 #endif #endif /* MS_WIN64 */ @@ -183,19 +173,15 @@ typedef _W64 int Py_ssize_t; #if defined(_M_IX86) #if defined(__INTEL_COMPILER) #define COMPILER ("[ICC v." _Py_STRINGIZE(__INTEL_COMPILER) " 32 bit (Intel) with MSC v." _Py_STRINGIZE(_MSC_VER) " CRT]") -#define PY_SUPPORT_TIER 0 #else #define COMPILER _Py_PASTE_VERSION("32 bit (Intel)") -#define PY_SUPPORT_TIER 1 #endif /* __INTEL_COMPILER */ #define PYD_PLATFORM_TAG "win32" #elif defined(_M_ARM) #define COMPILER _Py_PASTE_VERSION("32 bit (ARM)") #define PYD_PLATFORM_TAG "win_arm32" -#define PY_SUPPORT_TIER 0 #else #define COMPILER _Py_PASTE_VERSION("32 bit (Unknown)") -#define PY_SUPPORT_TIER 0 #endif #endif /* MS_WIN32 && !MS_WIN64 */ @@ -675,28 +661,8 @@ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */ /* Define to 1 if you have the `erfc' function. */ #define HAVE_ERFC 1 -// netdb.h functions (provided by winsock.h) -#define HAVE_GETHOSTNAME 1 -#define HAVE_GETHOSTBYADDR 1 -#define HAVE_GETHOSTBYNAME 1 -#define HAVE_GETPROTOBYNAME 1 -#define HAVE_GETSERVBYNAME 1 -#define HAVE_GETSERVBYPORT 1 -// sys/socket.h functions (provided by winsock.h) +/* Define if you have the 'inet_pton' function. */ #define HAVE_INET_PTON 1 -#define HAVE_INET_NTOA 1 -#define HAVE_ACCEPT 1 -#define HAVE_BIND 1 -#define HAVE_CONNECT 1 -#define HAVE_GETSOCKNAME 1 -#define HAVE_LISTEN 1 -#define HAVE_RECVFROM 1 -#define HAVE_SENDTO 1 -#define HAVE_SETSOCKOPT 1 -#define HAVE_SOCKET 1 - -/* Define to 1 if you have the `dup' function. */ -#define HAVE_DUP 1 /* framework name */ #define _PYTHONFRAMEWORK "" diff --git a/PC/python3dll.c b/PC/python3dll.c index 89bbd05932b853..024ec49d68d797 100755 --- a/PC/python3dll.c +++ b/PC/python3dll.c @@ -723,8 +723,6 @@ EXPORT_FUNC(PyUnicodeTranslateError_GetStart) EXPORT_FUNC(PyUnicodeTranslateError_SetEnd) EXPORT_FUNC(PyUnicodeTranslateError_SetReason) EXPORT_FUNC(PyUnicodeTranslateError_SetStart) -EXPORT_FUNC(PyVectorcall_Call) -EXPORT_FUNC(PyVectorcall_NARGS) EXPORT_FUNC(PyWeakref_GetObject) EXPORT_FUNC(PyWeakref_NewProxy) EXPORT_FUNC(PyWeakref_NewRef) diff --git a/PC/readme.txt b/PC/readme.txt index bef5111c591825..4e6dcf98c937f4 100644 --- a/PC/readme.txt +++ b/PC/readme.txt @@ -51,6 +51,12 @@ config.c The list of C modules to include in the Python PC version. Manually edit this file to add or remove Python modules. +testpy.py A Python test program. Run this to test your + Python port. It should produce copious output, + ending in a report on how many tests were OK, how many + failed, and how many were skipped. Don't worry about + skipped tests (these test unavailable optional features). + Additional files and subdirectories for 32-bit Windows ====================================================== diff --git a/PC/testpy.py b/PC/testpy.py new file mode 100644 index 00000000000000..709f35c4525877 --- /dev/null +++ b/PC/testpy.py @@ -0,0 +1,30 @@ +import sys + +# This is a test module for Python. It looks in the standard +# places for various *.py files. If these are moved, you must +# change this module too. + +try: + import os +except: + print("""Could not import the standard "os" module. + Please check your PYTHONPATH environment variable.""") + sys.exit(1) + +try: + import symbol +except: + print("""Could not import the standard "symbol" module. If this is + a PC, you should add the dos_8x3 directory to your PYTHONPATH.""") + sys.exit(1) + +for dir in sys.path: + file = os.path.join(dir, "os.py") + if os.path.isfile(file): + test = os.path.join(dir, "test") + if os.path.isdir(test): + # Add the "test" directory to PYTHONPATH. + sys.path = sys.path + [test] + +import libregrtest # Standard Python tester. +libregrtest.main() diff --git a/PC/winreg.c b/PC/winreg.c index 6ae0d8169cc56b..92d05f5144a3ca 100644 --- a/PC/winreg.c +++ b/PC/winreg.c @@ -217,11 +217,13 @@ class winreg.HKEYType "PyHKEYObject *" "&PyHKEY_Type" /*[clinic end generated code: output=da39a3ee5e6b4b0d input=4c964eba3bf914d6]*/ /*[python input] -class REGSAM_converter(int_converter): +class REGSAM_converter(CConverter): type = 'REGSAM' + format_unit = 'i' -class DWORD_converter(unsigned_long_converter): +class DWORD_converter(CConverter): type = 'DWORD' + format_unit = 'k' class HKEY_converter(CConverter): type = 'HKEY' @@ -247,7 +249,7 @@ class self_return_converter(CReturnConverter): data.return_conversion.append( 'return_value = (PyObject *)_return_value;\n') [python start generated code]*/ -/*[python end generated code: output=da39a3ee5e6b4b0d input=2ebb7a4922d408d6]*/ +/*[python end generated code: output=da39a3ee5e6b4b0d input=22f7aedc6d68e80e]*/ #include "clinic/winreg.c.h" @@ -979,9 +981,7 @@ winreg_DeleteKey_impl(PyObject *module, HKEY key, const Py_UNICODE *sub_key) (Py_ssize_t)0) < 0) { return NULL; } - Py_BEGIN_ALLOW_THREADS - rc = RegDeleteKeyW(key, sub_key); - Py_END_ALLOW_THREADS + rc = RegDeleteKeyW(key, sub_key ); if (rc != ERROR_SUCCESS) return PyErr_SetFromWindowsErrWithFunction(rc, "RegDeleteKey"); Py_RETURN_NONE; @@ -1002,10 +1002,7 @@ winreg.DeleteKeyEx reserved: int = 0 A reserved integer, and must be zero. Default is zero. -Deletes the specified key (intended for 64-bit OS). - -While this function is intended to be used for 64-bit OS, it is also - available on 32-bit systems. +Deletes the specified key (64-bit OS only). This method can not delete keys with subkeys. @@ -1018,17 +1015,34 @@ static PyObject * winreg_DeleteKeyEx_impl(PyObject *module, HKEY key, const Py_UNICODE *sub_key, REGSAM access, int reserved) -/*[clinic end generated code: output=52a1c8b374ebc003 input=a3186db079b3bf85]*/ +/*[clinic end generated code: output=52a1c8b374ebc003 input=711d9d89e7ecbed7]*/ { + HMODULE hMod; + typedef LONG (WINAPI *RDKEFunc)(HKEY, const wchar_t*, REGSAM, int); + RDKEFunc pfn = NULL; long rc; + if (PySys_Audit("winreg.DeleteKey", "nun", (Py_ssize_t)key, sub_key, (Py_ssize_t)access) < 0) { return NULL; } + /* Only available on 64bit platforms, so we must load it + dynamically. */ Py_BEGIN_ALLOW_THREADS - rc = RegDeleteKeyExW(key, sub_key, access, reserved); + hMod = GetModuleHandleW(L"advapi32.dll"); + if (hMod) + pfn = (RDKEFunc)GetProcAddress(hMod, "RegDeleteKeyExW"); Py_END_ALLOW_THREADS + if (!pfn) { + PyErr_SetString(PyExc_NotImplementedError, + "not implemented on this platform"); + return NULL; + } + Py_BEGIN_ALLOW_THREADS + rc = (*pfn)(key, sub_key, access, reserved); + Py_END_ALLOW_THREADS + if (rc != ERROR_SUCCESS) return PyErr_SetFromWindowsErrWithFunction(rc, "RegDeleteKeyEx"); Py_RETURN_NONE; diff --git a/PCbuild/_freeze_module.vcxproj b/PCbuild/_freeze_module.vcxproj index 39939a7ba98345..0a74f5850a1e8e 100644 --- a/PCbuild/_freeze_module.vcxproj +++ b/PCbuild/_freeze_module.vcxproj @@ -120,6 +120,7 @@ <ClCompile Include="..\Modules\_io\textio.c" /> <ClCompile Include="..\Modules\_io\winconsoleio.c" /> <ClCompile Include="..\Objects\abstract.c" /> + <ClCompile Include="..\Objects\accu.c" /> <ClCompile Include="..\Objects\boolobject.c" /> <ClCompile Include="..\Objects\bytearrayobject.c" /> <ClCompile Include="..\Objects\bytes_methods.c" /> @@ -129,7 +130,6 @@ <ClCompile Include="..\Objects\cellobject.c" /> <ClCompile Include="..\Objects\classobject.c" /> <ClCompile Include="..\Objects\codeobject.c" /> - <ClCompile Include="..\Objects\perf_trampoline.c" /> <ClCompile Include="..\Objects\complexobject.c" /> <ClCompile Include="..\Objects\descrobject.c" /> <ClCompile Include="..\Objects\dictobject.c" /> @@ -200,7 +200,6 @@ <ClCompile Include="..\Python\getopt.c" /> <ClCompile Include="..\Python\getplatform.c" /> <ClCompile Include="..\Python\getversion.c" /> - <ClCompile Include="..\Python\ceval_gil.c" /> <ClCompile Include="..\Python\hamt.c" /> <ClCompile Include="..\Python\hashtable.c" /> <ClCompile Include="..\Python\import.c" /> @@ -425,10 +424,6 @@ <Target Name="_CleanFrozen" BeforeTargets="CoreClean" Condition="$(Configuration) != 'PGUpdate'"> <ItemGroup> <Clean Include="%(None.IntFile)" /> - <Clean Include="%(None.OutFile)" /> - <Clean Include="%(GetPath.IntFile)" /> - <Clean Include="%(GetPath.OutFile)" /> - <Clean Include="$(PySourcePath)Python\deepfreeze\deepfreeze.c" /> </ItemGroup> </Target> </Project> diff --git a/PCbuild/_freeze_module.vcxproj.filters b/PCbuild/_freeze_module.vcxproj.filters index 96ab2f2a4aac7d..d107849c856213 100644 --- a/PCbuild/_freeze_module.vcxproj.filters +++ b/PCbuild/_freeze_module.vcxproj.filters @@ -25,6 +25,9 @@ <ClCompile Include="..\Objects\abstract.c"> <Filter>Source Files</Filter> </ClCompile> + <ClCompile Include="..\Objects\accu.c"> + <Filter>Source Files</Filter> + </ClCompile> <ClCompile Include="..\Python\asdl.c"> <Filter>Source Files</Filter> </ClCompile> @@ -85,9 +88,6 @@ <ClCompile Include="..\Objects\codeobject.c"> <Filter>Source Files</Filter> </ClCompile> - <ClCompile Include="..\Objects\perf_trampoline.c"> - <Filter>Source Files</Filter> - </ClCompile> <ClCompile Include="..\Python\compile.c"> <Filter>Source Files</Filter> </ClCompile> @@ -187,9 +187,6 @@ <ClCompile Include="..\Python\getversion.c"> <Filter>Source Files</Filter> </ClCompile> - <ClCompile Include="..\Python\ceval_gil.c"> - <Filter>Source Files</Filter> - </ClCompile> <ClCompile Include="..\Python\hamt.c"> <Filter>Source Files</Filter> </ClCompile> @@ -479,4 +476,4 @@ </None> <!-- END frozen modules --> </ItemGroup> -</Project> +</Project> \ No newline at end of file diff --git a/PCbuild/_sqlite3.vcxproj b/PCbuild/_sqlite3.vcxproj index 57c7413671e54e..804aa07367a024 100644 --- a/PCbuild/_sqlite3.vcxproj +++ b/PCbuild/_sqlite3.vcxproj @@ -94,7 +94,7 @@ <ItemDefinitionGroup> <ClCompile> <AdditionalIncludeDirectories>$(sqlite3Dir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>PY_SQLITE_HAVE_SERIALIZE;PY_SQLITE_ENABLE_LOAD_EXTENSION;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>PY_SQLITE_HAVE_SERIALIZE;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> </ItemDefinitionGroup> <ItemGroup> diff --git a/PCbuild/_testcapi.vcxproj b/PCbuild/_testcapi.vcxproj index b7d40c8cdc30eb..c1a19437253b7e 100644 --- a/PCbuild/_testcapi.vcxproj +++ b/PCbuild/_testcapi.vcxproj @@ -94,10 +94,6 @@ </PropertyGroup> <ItemGroup> <ClCompile Include="..\Modules\_testcapimodule.c" /> - <ClCompile Include="..\Modules\_testcapi\vectorcall.c" /> - <ClCompile Include="..\Modules\_testcapi\vectorcall_limited.c" /> - <ClCompile Include="..\Modules\_testcapi\heaptype.c" /> - <ClCompile Include="..\Modules\_testcapi\unicode.c" /> </ItemGroup> <ItemGroup> <ResourceCompile Include="..\PC\python_nt.rc" /> @@ -107,10 +103,6 @@ <Project>{cf7ac3d1-e2df-41d2-bea6-1e2556cdea26}</Project> <ReferenceOutputAssembly>false</ReferenceOutputAssembly> </ProjectReference> - <ProjectReference Include="python3dll.vcxproj"> - <Project>{885d4898-d08d-4091-9c40-c700cfe3fc5a}</Project> - <ReferenceOutputAssembly>false</ReferenceOutputAssembly> - </ProjectReference> </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> diff --git a/PCbuild/_testcapi.vcxproj.filters b/PCbuild/_testcapi.vcxproj.filters index fc2c4345fe142e..53f64b7aa1e1a2 100644 --- a/PCbuild/_testcapi.vcxproj.filters +++ b/PCbuild/_testcapi.vcxproj.filters @@ -12,18 +12,6 @@ <ClCompile Include="..\Modules\_testcapimodule.c"> <Filter>Source Files</Filter> </ClCompile> - <ClCompile Include="..\Modules\_testcapi\vectorcall.c"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="..\Modules\_testcapi\vectorcall_limited.c"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="..\Modules\_testcapi\heaptype.c"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="..\Modules\_testcapi\unicode.c"> - <Filter>Source Files</Filter> - </ClCompile> </ItemGroup> <ItemGroup> <ResourceCompile Include="..\PC\python_nt.rc"> diff --git a/PCbuild/_wmi.vcxproj b/PCbuild/_wmi.vcxproj deleted file mode 100644 index c1914a3fa5a1bf..00000000000000 --- a/PCbuild/_wmi.vcxproj +++ /dev/null @@ -1,119 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <ItemGroup Label="ProjectConfigurations"> - <ProjectConfiguration Include="Debug|ARM"> - <Configuration>Debug</Configuration> - <Platform>ARM</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="Debug|ARM64"> - <Configuration>Debug</Configuration> - <Platform>ARM64</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="Debug|Win32"> - <Configuration>Debug</Configuration> - <Platform>Win32</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="Debug|x64"> - <Configuration>Debug</Configuration> - <Platform>x64</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="PGInstrument|ARM"> - <Configuration>PGInstrument</Configuration> - <Platform>ARM</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="PGInstrument|ARM64"> - <Configuration>PGInstrument</Configuration> - <Platform>ARM64</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="PGInstrument|Win32"> - <Configuration>PGInstrument</Configuration> - <Platform>Win32</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="PGInstrument|x64"> - <Configuration>PGInstrument</Configuration> - <Platform>x64</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="PGUpdate|ARM"> - <Configuration>PGUpdate</Configuration> - <Platform>ARM</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="PGUpdate|ARM64"> - <Configuration>PGUpdate</Configuration> - <Platform>ARM64</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="PGUpdate|Win32"> - <Configuration>PGUpdate</Configuration> - <Platform>Win32</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="PGUpdate|x64"> - <Configuration>PGUpdate</Configuration> - <Platform>x64</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="Release|ARM"> - <Configuration>Release</Configuration> - <Platform>ARM</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="Release|ARM64"> - <Configuration>Release</Configuration> - <Platform>ARM64</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="Release|Win32"> - <Configuration>Release</Configuration> - <Platform>Win32</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="Release|x64"> - <Configuration>Release</Configuration> - <Platform>x64</Platform> - </ProjectConfiguration> - </ItemGroup> - <PropertyGroup Label="Globals"> - <ProjectGuid>{54B1431F-B86B-4ACB-B28C-88BCF93191D8}</ProjectGuid> - <RootNamespace>_wmi</RootNamespace> - <Keyword>Win32Proj</Keyword> - <SupportPGO>false</SupportPGO> - </PropertyGroup> - <Import Project="python.props" /> - <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> - <PropertyGroup Label="Configuration"> - <ConfigurationType>DynamicLibrary</ConfigurationType> - <CharacterSet>NotSet</CharacterSet> - </PropertyGroup> - <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> - <PropertyGroup> - <TargetExt>.pyd</TargetExt> - </PropertyGroup> - <ImportGroup Label="ExtensionSettings"> - </ImportGroup> - <ImportGroup Label="PropertySheets"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - <Import Project="pyproject.props" /> - </ImportGroup> - <PropertyGroup Label="UserMacros" /> - <PropertyGroup> - <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion> - </PropertyGroup> - <ItemDefinitionGroup> - <ClCompile> - <AdditionalOptions>/std:c++20 %(AdditionalOptions)</AdditionalOptions> - </ClCompile> - <Link> - <AdditionalDependencies>wbemuuid.lib;propsys.lib;%(AdditionalDependencies)</AdditionalDependencies> - <DelayLoadDLLs>ole32.dll</DelayLoadDLLs> - </Link> - </ItemDefinitionGroup> - <ItemGroup> - <ClCompile Include="..\PC\_wmimodule.cpp" /> - </ItemGroup> - <ItemGroup> - <ResourceCompile Include="..\PC\python_nt.rc" /> - </ItemGroup> - <ItemGroup> - <ProjectReference Include="pythoncore.vcxproj"> - <Project>{cf7ac3d1-e2df-41d2-bea6-1e2556cdea26}</Project> - <ReferenceOutputAssembly>false</ReferenceOutputAssembly> - </ProjectReference> - </ItemGroup> - <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> - <ImportGroup Label="ExtensionTargets"> - </ImportGroup> -</Project> \ No newline at end of file diff --git a/PCbuild/_wmi.vcxproj.filters b/PCbuild/_wmi.vcxproj.filters deleted file mode 100644 index fa8046237a0b71..00000000000000 --- a/PCbuild/_wmi.vcxproj.filters +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <ItemGroup> - <Filter Include="Source Files"> - <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> - <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> - </Filter> - <Filter Include="Resource Files"> - <UniqueIdentifier>{4fa4dbfa-e069-4ab4-86a6-ad389b2ec407}</UniqueIdentifier> - </Filter> - </ItemGroup> - <ItemGroup> - <ClCompile Include="..\PC\_wmimodule.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - </ItemGroup> - <ItemGroup> - <ResourceCompile Include="..\PC\python_nt.rc"> - <Filter>Resource Files</Filter> - </ResourceCompile> - </ItemGroup> -</Project> \ No newline at end of file diff --git a/PCbuild/find_python.bat b/PCbuild/find_python.bat index 11d6cba7a172c9..fc1049c5508187 100644 --- a/PCbuild/find_python.bat +++ b/PCbuild/find_python.bat @@ -39,10 +39,10 @@ @if exist "%_Py_EXTERNALS_DIR%\pythonx86\tools\python.exe" ("%_Py_EXTERNALS_DIR%\pythonx86\tools\python.exe" -Ec "import sys; assert sys.version_info[:2] >= (3, 8)" >nul 2>nul) && (set PYTHON="%_Py_EXTERNALS_DIR%\pythonx86\tools\python.exe") && (set _Py_Python_Source=found in externals directory) && goto :found || rmdir /Q /S "%_Py_EXTERNALS_DIR%\pythonx86" @rem If HOST_PYTHON is recent enough, use that -@if NOT "%HOST_PYTHON%"=="" @%HOST_PYTHON% -Ec "import sys; assert sys.version_info[:2] >= (3, 9)" >nul 2>nul && (set PYTHON="%HOST_PYTHON%") && (set _Py_Python_Source=found as HOST_PYTHON) && goto :found +@if NOT "%HOST_PYTHON%"=="" @%HOST_PYTHON% -Ec "import sys; assert sys.version_info[:2] >= (3, 8)" >nul 2>nul && (set PYTHON="%HOST_PYTHON%") && (set _Py_Python_Source=found as HOST_PYTHON) && goto :found @rem If py.exe finds a recent enough version, use that one -@for %%p in (3.10 3.9) do @py -%%p -EV >nul 2>&1 && (set PYTHON=py -%%p) && (set _Py_Python_Source=found %%p with py.exe) && goto :found +@for %%p in (3.10 3.9 3.8) do @py -%%p -EV >nul 2>&1 && (set PYTHON=py -%%p) && (set _Py_Python_Source=found %%p with py.exe) && goto :found @if NOT exist "%_Py_EXTERNALS_DIR%" mkdir "%_Py_EXTERNALS_DIR%" @set _Py_NUGET=%NUGET% diff --git a/PCbuild/get_externals.bat b/PCbuild/get_externals.bat index cd211f13e355e5..d2934451798858 100644 --- a/PCbuild/get_externals.bat +++ b/PCbuild/get_externals.bat @@ -53,7 +53,7 @@ echo.Fetching external libraries... set libraries= set libraries=%libraries% bzip2-1.0.8 if NOT "%IncludeLibffiSrc%"=="false" set libraries=%libraries% libffi-3.4.2 -if NOT "%IncludeSSLSrc%"=="false" set libraries=%libraries% openssl-1.1.1q +if NOT "%IncludeSSLSrc%"=="false" set libraries=%libraries% openssl-1.1.1n set libraries=%libraries% sqlite-3.38.4.0 if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tcl-core-8.6.12.1 if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tk-8.6.12.1 @@ -77,7 +77,7 @@ echo.Fetching external binaries... set binaries= if NOT "%IncludeLibffi%"=="false" set binaries=%binaries% libffi-3.4.2 -if NOT "%IncludeSSL%"=="false" set binaries=%binaries% openssl-bin-1.1.1q +if NOT "%IncludeSSL%"=="false" set binaries=%binaries% openssl-bin-1.1.1n if NOT "%IncludeTkinter%"=="false" set binaries=%binaries% tcltk-8.6.12.1 if NOT "%IncludeSSLSrc%"=="false" set binaries=%binaries% nasm-2.11.06 diff --git a/PCbuild/lib.pyproj b/PCbuild/lib.pyproj index e8c99f6b246c82..43c570f1dab37a 100644 --- a/PCbuild/lib.pyproj +++ b/PCbuild/lib.pyproj @@ -83,6 +83,59 @@ <Compile Include="ctypes\macholib\dylib.py" /> <Compile Include="ctypes\macholib\framework.py" /> <Compile Include="ctypes\macholib\__init__.py" /> + <Compile Include="ctypes\test\test_anon.py" /> + <Compile Include="ctypes\test\test_arrays.py" /> + <Compile Include="ctypes\test\test_array_in_pointer.py" /> + <Compile Include="ctypes\test\test_as_parameter.py" /> + <Compile Include="ctypes\test\test_bitfields.py" /> + <Compile Include="ctypes\test\test_buffers.py" /> + <Compile Include="ctypes\test\test_bytes.py" /> + <Compile Include="ctypes\test\test_byteswap.py" /> + <Compile Include="ctypes\test\test_callbacks.py" /> + <Compile Include="ctypes\test\test_cast.py" /> + <Compile Include="ctypes\test\test_cfuncs.py" /> + <Compile Include="ctypes\test\test_checkretval.py" /> + <Compile Include="ctypes\test\test_delattr.py" /> + <Compile Include="ctypes\test\test_errno.py" /> + <Compile Include="ctypes\test\test_find.py" /> + <Compile Include="ctypes\test\test_frombuffer.py" /> + <Compile Include="ctypes\test\test_funcptr.py" /> + <Compile Include="ctypes\test\test_functions.py" /> + <Compile Include="ctypes\test\test_incomplete.py" /> + <Compile Include="ctypes\test\test_init.py" /> + <Compile Include="ctypes\test\test_internals.py" /> + <Compile Include="ctypes\test\test_keeprefs.py" /> + <Compile Include="ctypes\test\test_libc.py" /> + <Compile Include="ctypes\test\test_loading.py" /> + <Compile Include="ctypes\test\test_macholib.py" /> + <Compile Include="ctypes\test\test_memfunctions.py" /> + <Compile Include="ctypes\test\test_numbers.py" /> + <Compile Include="ctypes\test\test_objects.py" /> + <Compile Include="ctypes\test\test_parameters.py" /> + <Compile Include="ctypes\test\test_pep3118.py" /> + <Compile Include="ctypes\test\test_pickling.py" /> + <Compile Include="ctypes\test\test_pointers.py" /> + <Compile Include="ctypes\test\test_prototypes.py" /> + <Compile Include="ctypes\test\test_python_api.py" /> + <Compile Include="ctypes\test\test_random_things.py" /> + <Compile Include="ctypes\test\test_refcounts.py" /> + <Compile Include="ctypes\test\test_repr.py" /> + <Compile Include="ctypes\test\test_returnfuncptrs.py" /> + <Compile Include="ctypes\test\test_simplesubclasses.py" /> + <Compile Include="ctypes\test\test_sizes.py" /> + <Compile Include="ctypes\test\test_slicing.py" /> + <Compile Include="ctypes\test\test_stringptr.py" /> + <Compile Include="ctypes\test\test_strings.py" /> + <Compile Include="ctypes\test\test_structures.py" /> + <Compile Include="ctypes\test\test_struct_fields.py" /> + <Compile Include="ctypes\test\test_unaligned_structures.py" /> + <Compile Include="ctypes\test\test_unicode.py" /> + <Compile Include="ctypes\test\test_values.py" /> + <Compile Include="ctypes\test\test_varsize_struct.py" /> + <Compile Include="ctypes\test\test_win32.py" /> + <Compile Include="ctypes\test\test_wintypes.py" /> + <Compile Include="ctypes\test\__init__.py" /> + <Compile Include="ctypes\test\__main__.py" /> <Compile Include="ctypes\util.py" /> <Compile Include="ctypes\wintypes.py" /> <Compile Include="ctypes\_endian.py" /> @@ -561,6 +614,33 @@ <Compile Include="lib2to3\pygram.py" /> <Compile Include="lib2to3\pytree.py" /> <Compile Include="lib2to3\refactor.py" /> + <Compile Include="lib2to3\tests\data\bom.py" /> + <Compile Include="lib2to3\tests\data\crlf.py" /> + <Compile Include="lib2to3\tests\data\different_encoding.py" /> + <Compile Include="lib2to3\tests\data\false_encoding.py" /> + <Compile Include="lib2to3\tests\data\fixers\bad_order.py" /> + <Compile Include="lib2to3\tests\data\fixers\myfixes\fix_explicit.py" /> + <Compile Include="lib2to3\tests\data\fixers\myfixes\fix_first.py" /> + <Compile Include="lib2to3\tests\data\fixers\myfixes\fix_last.py" /> + <Compile Include="lib2to3\tests\data\fixers\myfixes\fix_parrot.py" /> + <Compile Include="lib2to3\tests\data\fixers\myfixes\fix_preorder.py" /> + <Compile Include="lib2to3\tests\data\fixers\myfixes\__init__.py" /> + <Compile Include="lib2to3\tests\data\fixers\no_fixer_cls.py" /> + <Compile Include="lib2to3\tests\data\fixers\parrot_example.py" /> + <Compile Include="lib2to3\tests\data\infinite_recursion.py" /> + <Compile Include="lib2to3\tests\data\py2_test_grammar.py" /> + <Compile Include="lib2to3\tests\data\py3_test_grammar.py" /> + <Compile Include="lib2to3\tests\pytree_idempotency.py" /> + <Compile Include="lib2to3\tests\support.py" /> + <Compile Include="lib2to3\tests\test_all_fixers.py" /> + <Compile Include="lib2to3\tests\test_fixers.py" /> + <Compile Include="lib2to3\tests\test_main.py" /> + <Compile Include="lib2to3\tests\test_parser.py" /> + <Compile Include="lib2to3\tests\test_pytree.py" /> + <Compile Include="lib2to3\tests\test_refactor.py" /> + <Compile Include="lib2to3\tests\test_util.py" /> + <Compile Include="lib2to3\tests\__init__.py" /> + <Compile Include="lib2to3\tests\__main__.py" /> <Compile Include="lib2to3\__init__.py" /> <Compile Include="lib2to3\__main__.py" /> <Compile Include="linecache.py" /> @@ -642,6 +722,7 @@ <Compile Include="shutil.py" /> <Compile Include="signal.py" /> <Compile Include="site.py" /> + <Compile Include="smtpd.py" /> <Compile Include="smtplib.py" /> <Compile Include="sndhdr.py" /> <Compile Include="socket.py" /> @@ -759,7 +840,6 @@ <Compile Include="test\sample_doctest_no_doctests.py" /> <Compile Include="test\seq_tests.py" /> <Compile Include="test\signalinterproctester.py" /> - <Compile Include="test\smtpd.py" /> <Compile Include="test\sortperf.py" /> <Compile Include="test\ssltests.py" /> <Compile Include="test\ssl_servers.py" /> @@ -864,59 +944,7 @@ <Compile Include="test\test_crashers.py" /> <Compile Include="test\test_crypt.py" /> <Compile Include="test\test_csv.py" /> - <Compile Include="test\test_ctypes\test_anon.py" /> - <Compile Include="test\test_ctypes\test_arrays.py" /> - <Compile Include="test\test_ctypes\test_array_in_pointer.py" /> - <Compile Include="test\test_ctypes\test_as_parameter.py" /> - <Compile Include="test\test_ctypes\test_bitfields.py" /> - <Compile Include="test\test_ctypes\test_buffers.py" /> - <Compile Include="test\test_ctypes\test_bytes.py" /> - <Compile Include="test\test_ctypes\test_byteswap.py" /> - <Compile Include="test\test_ctypes\test_callbacks.py" /> - <Compile Include="test\test_ctypes\test_cast.py" /> - <Compile Include="test\test_ctypes\test_cfuncs.py" /> - <Compile Include="test\test_ctypes\test_checkretval.py" /> - <Compile Include="test\test_ctypes\test_delattr.py" /> - <Compile Include="test\test_ctypes\test_errno.py" /> - <Compile Include="test\test_ctypes\test_find.py" /> - <Compile Include="test\test_ctypes\test_frombuffer.py" /> - <Compile Include="test\test_ctypes\test_funcptr.py" /> - <Compile Include="test\test_ctypes\test_functions.py" /> - <Compile Include="test\test_ctypes\test_incomplete.py" /> - <Compile Include="test\test_ctypes\test_init.py" /> - <Compile Include="test\test_ctypes\test_internals.py" /> - <Compile Include="test\test_ctypes\test_keeprefs.py" /> - <Compile Include="test\test_ctypes\test_libc.py" /> - <Compile Include="test\test_ctypes\test_loading.py" /> - <Compile Include="test\test_ctypes\test_macholib.py" /> - <Compile Include="test\test_ctypes\test_memfunctions.py" /> - <Compile Include="test\test_ctypes\test_numbers.py" /> - <Compile Include="test\test_ctypes\test_objects.py" /> - <Compile Include="test\test_ctypes\test_parameters.py" /> - <Compile Include="test\test_ctypes\test_pep3118.py" /> - <Compile Include="test\test_ctypes\test_pickling.py" /> - <Compile Include="test\test_ctypes\test_pointers.py" /> - <Compile Include="test\test_ctypes\test_prototypes.py" /> - <Compile Include="test\test_ctypes\test_python_api.py" /> - <Compile Include="test\test_ctypes\test_random_things.py" /> - <Compile Include="test\test_ctypes\test_refcounts.py" /> - <Compile Include="test\test_ctypes\test_repr.py" /> - <Compile Include="test\test_ctypes\test_returnfuncptrs.py" /> - <Compile Include="test\test_ctypes\test_simplesubclasses.py" /> - <Compile Include="test\test_ctypes\test_sizes.py" /> - <Compile Include="test\test_ctypes\test_slicing.py" /> - <Compile Include="test\test_ctypes\test_stringptr.py" /> - <Compile Include="test\test_ctypes\test_strings.py" /> - <Compile Include="test\test_ctypes\test_structures.py" /> - <Compile Include="test\test_ctypes\test_struct_fields.py" /> - <Compile Include="test\test_ctypes\test_unaligned_structures.py" /> - <Compile Include="test\test_ctypes\test_unicode.py" /> - <Compile Include="test\test_ctypes\test_values.py" /> - <Compile Include="test\test_ctypes\test_varsize_struct.py" /> - <Compile Include="test\test_ctypes\test_win32.py" /> - <Compile Include="test\test_ctypes\test_wintypes.py" /> - <Compile Include="test\test_ctypes\__init__.py" /> - <Compile Include="test\test_ctypes\__main__.py" /> + <Compile Include="test\test_ctypes.py" /> <Compile Include="test\test_curses.py" /> <Compile Include="test\test_datetime.py" /> <Compile Include="test\test_dbm.py" /> @@ -1130,33 +1158,7 @@ <Compile Include="test\test_keywordonlyarg.py" /> <Compile Include="test\test_kqueue.py" /> <Compile Include="test\test_largefile.py" /> - <Compile Include="test\test_lib2to3\data\bom.py" /> - <Compile Include="test\test_lib2to3\data\crlf.py" /> - <Compile Include="test\test_lib2to3\data\different_encoding.py" /> - <Compile Include="test\test_lib2to3\data\false_encoding.py" /> - <Compile Include="test\test_lib2to3\data\fixers\bad_order.py" /> - <Compile Include="test\test_lib2to3\data\fixers\myfixes\fix_explicit.py" /> - <Compile Include="test\test_lib2to3\data\fixers\myfixes\fix_first.py" /> - <Compile Include="test\test_lib2to3\data\fixers\myfixes\fix_last.py" /> - <Compile Include="test\test_lib2to3\data\fixers\myfixes\fix_parrot.py" /> - <Compile Include="test\test_lib2to3\data\fixers\myfixes\fix_preorder.py" /> - <Compile Include="test\test_lib2to3\data\fixers\myfixes\__init__.py" /> - <Compile Include="test\test_lib2to3\data\fixers\no_fixer_cls.py" /> - <Compile Include="test\test_lib2to3\data\fixers\parrot_example.py" /> - <Compile Include="test\test_lib2to3\data\infinite_recursion.py" /> - <Compile Include="test\test_lib2to3\data\py2_test_grammar.py" /> - <Compile Include="test\test_lib2to3\data\py3_test_grammar.py" /> - <Compile Include="test\test_lib2to3\pytree_idempotency.py" /> - <Compile Include="test\test_lib2to3\support.py" /> - <Compile Include="test\test_lib2to3\test_all_fixers.py" /> - <Compile Include="test\test_lib2to3\test_fixers.py" /> - <Compile Include="test\test_lib2to3\test_main.py" /> - <Compile Include="test\test_lib2to3\test_parser.py" /> - <Compile Include="test\test_lib2to3\test_pytree.py" /> - <Compile Include="test\test_lib2to3\test_refactor.py" /> - <Compile Include="test\test_lib2to3\test_util.py" /> - <Compile Include="test\test_lib2to3\__init__.py" /> - <Compile Include="test\test_lib2to3\__main__.py" /> + <Compile Include="test\test_lib2to3.py" /> <Compile Include="test\test_linecache.py" /> <Compile Include="test\test_list.py" /> <Compile Include="test\test_listcomps.py" /> @@ -1261,6 +1263,7 @@ <Compile Include="test\test_signal.py" /> <Compile Include="test\test_site.py" /> <Compile Include="test\test_slice.py" /> + <Compile Include="test\test_smtpd.py" /> <Compile Include="test\test_smtplib.py" /> <Compile Include="test\test_smtpnet.py" /> <Compile Include="test\test_sndhdr.py" /> @@ -1322,17 +1325,7 @@ <Compile Include="test\test_timeit.py" /> <Compile Include="test\test_timeout.py" /> <Compile Include="test\test_tix.py" /> - <Compile Include="test\test_tkinter\__init__.py" /> - <Compile Include="test\test_tkinter\support.py" /> - <Compile Include="test\test_tkinter\test_font.py" /> - <Compile Include="test\test_tkinter\test_geometry_managers.py" /> - <Compile Include="test\test_tkinter\test_images.py" /> - <Compile Include="test\test_tkinter\test_loadtk.py" /> - <Compile Include="test\test_tkinter\test_misc.py" /> - <Compile Include="test\test_tkinter\test_text.py" /> - <Compile Include="test\test_tkinter\test_variables.py" /> - <Compile Include="test\test_tkinter\test_widgets.py" /> - <Compile Include="test\test_tkinter\widget_tests.py" /> + <Compile Include="test\test_tk.py" /> <Compile Include="test\test_tokenize.py" /> <Compile Include="test\test_tools\test_fixcid.py" /> <Compile Include="test\test_tools\test_gprof2html.py" /> @@ -1348,11 +1341,8 @@ <Compile Include="test\test_trace.py" /> <Compile Include="test\test_traceback.py" /> <Compile Include="test\test_tracemalloc.py" /> + <Compile Include="test\test_ttk_guionly.py" /> <Compile Include="test\test_ttk_textonly.py" /> - <Compile Include="test\test_ttk\__init__.py" /> - <Compile Include="test\test_ttk\test_extensions.py" /> - <Compile Include="test\test_ttk\test_style.py" /> - <Compile Include="test\test_ttk\test_widgets.py" /> <Compile Include="test\test_tuple.py" /> <Compile Include="test\test_turtle.py" /> <Compile Include="test\test_typechecks.py" /> @@ -1365,33 +1355,7 @@ <Compile Include="test\test_unicode_file.py" /> <Compile Include="test\test_unicode_file_functions.py" /> <Compile Include="test\test_unicode_identifiers.py" /> - <Compile Include="test\test_unittest\dummy.py" /> - <Compile Include="test\test_unittest\support.py" /> - <Compile Include="test\test_unittest\testmock\support.py" /> - <Compile Include="test\test_unittest\testmock\testcallable.py" /> - <Compile Include="test\test_unittest\testmock\testhelpers.py" /> - <Compile Include="test\test_unittest\testmock\testmagicmethods.py" /> - <Compile Include="test\test_unittest\testmock\testmock.py" /> - <Compile Include="test\test_unittest\testmock\testpatch.py" /> - <Compile Include="test\test_unittest\testmock\testsentinel.py" /> - <Compile Include="test\test_unittest\testmock\testwith.py" /> - <Compile Include="test\test_unittest\testmock\__init__.py" /> - <Compile Include="test\test_unittest\testmock\__main__.py" /> - <Compile Include="test\test_unittest\test_assertions.py" /> - <Compile Include="test\test_unittest\test_break.py" /> - <Compile Include="test\test_unittest\test_case.py" /> - <Compile Include="test\test_unittest\test_discovery.py" /> - <Compile Include="test\test_unittest\test_functiontestcase.py" /> - <Compile Include="test\test_unittest\test_loader.py" /> - <Compile Include="test\test_unittest\test_program.py" /> - <Compile Include="test\test_unittest\test_result.py" /> - <Compile Include="test\test_unittest\test_runner.py" /> - <Compile Include="test\test_unittest\test_setups.py" /> - <Compile Include="test\test_unittest\test_skipping.py" /> - <Compile Include="test\test_unittest\test_suite.py" /> - <Compile Include="test\test_unittest\_test_warnings.py" /> - <Compile Include="test\test_unittest\__init__.py" /> - <Compile Include="test\test_unittest\__main__.py" /> + <Compile Include="test\test_unittest.py" /> <Compile Include="test\test_univnewlines.py" /> <Compile Include="test\test_unpack.py" /> <Compile Include="test\test_unpack_ex.py" /> @@ -1470,6 +1434,22 @@ <Compile Include="tkinter\messagebox.py" /> <Compile Include="tkinter\scrolledtext.py" /> <Compile Include="tkinter\simpledialog.py" /> + <Compile Include="tkinter\test\support.py" /> + <Compile Include="tkinter\test\test_tkinter\test_font.py" /> + <Compile Include="tkinter\test\test_tkinter\test_geometry_managers.py" /> + <Compile Include="tkinter\test\test_tkinter\test_images.py" /> + <Compile Include="tkinter\test\test_tkinter\test_loadtk.py" /> + <Compile Include="tkinter\test\test_tkinter\test_misc.py" /> + <Compile Include="tkinter\test\test_tkinter\test_text.py" /> + <Compile Include="tkinter\test\test_tkinter\test_variables.py" /> + <Compile Include="tkinter\test\test_tkinter\test_widgets.py" /> + <Compile Include="tkinter\test\test_tkinter\__init__.py" /> + <Compile Include="tkinter\test\test_ttk\test_extensions.py" /> + <Compile Include="tkinter\test\test_ttk\test_style.py" /> + <Compile Include="tkinter\test\test_ttk\test_widgets.py" /> + <Compile Include="tkinter\test\test_ttk\__init__.py" /> + <Compile Include="tkinter\test\widget_tests.py" /> + <Compile Include="tkinter\test\__init__.py" /> <Compile Include="tkinter\tix.py" /> <Compile Include="tkinter\ttk.py" /> <Compile Include="tkinter\__init__.py" /> @@ -1512,6 +1492,33 @@ <Compile Include="unittest\runner.py" /> <Compile Include="unittest\signals.py" /> <Compile Include="unittest\suite.py" /> + <Compile Include="unittest\test\dummy.py" /> + <Compile Include="unittest\test\support.py" /> + <Compile Include="unittest\test\testmock\support.py" /> + <Compile Include="unittest\test\testmock\testcallable.py" /> + <Compile Include="unittest\test\testmock\testhelpers.py" /> + <Compile Include="unittest\test\testmock\testmagicmethods.py" /> + <Compile Include="unittest\test\testmock\testmock.py" /> + <Compile Include="unittest\test\testmock\testpatch.py" /> + <Compile Include="unittest\test\testmock\testsentinel.py" /> + <Compile Include="unittest\test\testmock\testwith.py" /> + <Compile Include="unittest\test\testmock\__init__.py" /> + <Compile Include="unittest\test\testmock\__main__.py" /> + <Compile Include="unittest\test\test_assertions.py" /> + <Compile Include="unittest\test\test_break.py" /> + <Compile Include="unittest\test\test_case.py" /> + <Compile Include="unittest\test\test_discovery.py" /> + <Compile Include="unittest\test\test_functiontestcase.py" /> + <Compile Include="unittest\test\test_loader.py" /> + <Compile Include="unittest\test\test_program.py" /> + <Compile Include="unittest\test\test_result.py" /> + <Compile Include="unittest\test\test_runner.py" /> + <Compile Include="unittest\test\test_setups.py" /> + <Compile Include="unittest\test\test_skipping.py" /> + <Compile Include="unittest\test\test_suite.py" /> + <Compile Include="unittest\test\_test_warnings.py" /> + <Compile Include="unittest\test\__init__.py" /> + <Compile Include="unittest\test\__main__.py" /> <Compile Include="unittest\util.py" /> <Compile Include="unittest\__init__.py" /> <Compile Include="unittest\__main__.py" /> @@ -1718,6 +1725,7 @@ <Folder Include="concurrent\futures" /> <Folder Include="ctypes" /> <Folder Include="ctypes\macholib" /> + <Folder Include="ctypes\test" /> <Folder Include="curses" /> <Folder Include="dbm" /> <Folder Include="distutils" /> @@ -1737,6 +1745,10 @@ <Folder Include="lib2to3" /> <Folder Include="lib2to3\fixes" /> <Folder Include="lib2to3\pgen2" /> + <Folder Include="lib2to3\tests" /> + <Folder Include="lib2to3\tests\data" /> + <Folder Include="lib2to3\tests\data\fixers" /> + <Folder Include="lib2to3\tests\data\fixers\myfixes" /> <Folder Include="logging" /> <Folder Include="msilib" /> <Folder Include="multiprocessing" /> @@ -1757,7 +1769,6 @@ <Folder Include="test\subprocessdata" /> <Folder Include="test\support" /> <Folder Include="test\test_asyncio" /> - <Folder Include="test\test_ctypes" /> <Folder Include="test\test_email" /> <Folder Include="test\test_email\data" /> <Folder Include="test\test_import" /> @@ -1792,22 +1803,19 @@ <Folder Include="test\test_import\data\package" /> <Folder Include="test\test_import\data\package2" /> <Folder Include="test\test_json" /> - <Folder Include="test\test_lib2to3" /> - <Folder Include="test\test_lib2to3\data" /> - <Folder Include="test\test_lib2to3\data\fixers" /> - <Folder Include="test\test_lib2to3\data\fixers\myfixes" /> <Folder Include="test\test_peg_generator" /> - <Folder Include="test\test_tkinter" /> <Folder Include="test\test_tools" /> - <Folder Include="test\test_ttk" /> - <Folder Include="test\test_unittest" /> - <Folder Include="test\test_unittest\testmock" /> <Folder Include="test\test_warnings" /> <Folder Include="test\test_warnings\data" /> <Folder Include="test\tracedmodules" /> <Folder Include="tkinter" /> + <Folder Include="tkinter\test" /> + <Folder Include="tkinter\test\test_tkinter" /> + <Folder Include="tkinter\test\test_ttk" /> <Folder Include="turtledemo" /> <Folder Include="unittest" /> + <Folder Include="unittest\test" /> + <Folder Include="unittest\test\testmock" /> <Folder Include="urllib" /> <Folder Include="venv" /> <Folder Include="wsgiref" /> diff --git a/PCbuild/pcbuild.proj b/PCbuild/pcbuild.proj index d9e4d981aa2189..2ba0627b833695 100644 --- a/PCbuild/pcbuild.proj +++ b/PCbuild/pcbuild.proj @@ -64,7 +64,7 @@ <!-- pyshellext.dll --> <Projects Include="pyshellext.vcxproj" /> <!-- Extension modules --> - <ExtensionModules Include="_asyncio;_zoneinfo;_decimal;_elementtree;_msi;_multiprocessing;_overlapped;pyexpat;_queue;select;unicodedata;winsound;_uuid;_wmi" /> + <ExtensionModules Include="_asyncio;_zoneinfo;_decimal;_elementtree;_msi;_multiprocessing;_overlapped;pyexpat;_queue;select;unicodedata;winsound;_uuid" /> <ExtensionModules Include="_ctypes" Condition="$(IncludeCTypes)" /> <!-- Extension modules that require external sources --> <ExternalModules Include="_bz2;_lzma;_sqlite3" /> @@ -125,12 +125,6 @@ StopOnFirstFailure="false" Condition="%(CleanTarget) != ''" Targets="%(CleanTarget)" /> - <MSBuild Projects="@(FreezeProjects)" - Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)" - BuildInParallel="%(BuildInParallel)" - StopOnFirstFailure="false" - Condition="%(CleanTarget) != ''" - Targets="%(CleanTarget)" /> </Target> <Target Name="CleanAll"> @@ -146,12 +140,6 @@ StopOnFirstFailure="false" Condition="%(CleanAllTarget) != ''" Targets="%(CleanAllTarget)" /> - <MSBuild Projects="@(FreezeProjects)" - Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)" - BuildInParallel="%(BuildInParallel)" - StopOnFirstFailure="false" - Condition="%(CleanTarget) != ''" - Targets="%(CleanTarget)" /> </Target> <Target Name="Rebuild" DependsOnTargets="Clean;Build" /> diff --git a/PCbuild/pcbuild.sln b/PCbuild/pcbuild.sln index 9f374abd152b17..3629a8508a3a60 100644 --- a/PCbuild/pcbuild.sln +++ b/PCbuild/pcbuild.sln @@ -108,8 +108,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythonw_uwp", "pythonw_uwp. EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_uuid", "_uuid.vcxproj", "{CB435430-EBB1-478B-8F4E-C256F6838F55}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_wmi", "_wmi.vcxproj", "{54B1431F-B86B-4ACB-B28C-88BCF93191D8}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|ARM = Debug|ARM @@ -1505,38 +1503,6 @@ Global {CB435430-EBB1-478B-8F4E-C256F6838F55}.Release|Win32.Build.0 = Release|Win32 {CB435430-EBB1-478B-8F4E-C256F6838F55}.Release|x64.ActiveCfg = Release|x64 {CB435430-EBB1-478B-8F4E-C256F6838F55}.Release|x64.Build.0 = Release|x64 - {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.Debug|ARM.ActiveCfg = Debug|ARM - {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.Debug|ARM.Build.0 = Debug|ARM - {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.Debug|ARM64.ActiveCfg = Debug|ARM64 - {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.Debug|ARM64.Build.0 = Debug|ARM64 - {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.Debug|Win32.ActiveCfg = Debug|Win32 - {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.Debug|Win32.Build.0 = Debug|Win32 - {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.Debug|x64.ActiveCfg = Debug|x64 - {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.Debug|x64.Build.0 = Debug|x64 - {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.PGInstrument|ARM.ActiveCfg = PGInstrument|ARM - {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.PGInstrument|ARM.Build.0 = PGInstrument|ARM - {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.PGInstrument|ARM64.ActiveCfg = PGInstrument|ARM64 - {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.PGInstrument|ARM64.Build.0 = PGInstrument|ARM64 - {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.PGUpdate|ARM.ActiveCfg = PGUpdate|ARM - {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.PGUpdate|ARM.Build.0 = PGUpdate|ARM - {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.PGUpdate|ARM64.ActiveCfg = PGUpdate|ARM64 - {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.PGUpdate|ARM64.Build.0 = PGUpdate|ARM64 - {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.Release|ARM.ActiveCfg = Release|ARM - {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.Release|ARM.Build.0 = Release|ARM - {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.Release|ARM64.ActiveCfg = Release|ARM64 - {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.Release|ARM64.Build.0 = Release|ARM64 - {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.Release|Win32.ActiveCfg = Release|Win32 - {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.Release|Win32.Build.0 = Release|Win32 - {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.Release|x64.ActiveCfg = Release|x64 - {54B1431F-B86B-4ACB-B28C-88BCF93191D8}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/PCbuild/pyproject.props b/PCbuild/pyproject.props index e398b333572e9d..df3efc631d154f 100644 --- a/PCbuild/pyproject.props +++ b/PCbuild/pyproject.props @@ -229,7 +229,7 @@ public override bool Execute() { </Target> <Target Name="FindPythonForBuild" Condition="$(PythonForBuild) == ''"> - <Exec Command="&quot;$(MSBuildThisFileDirectory)\find_python.bat&quot; -q" + <Exec Command="$(MSBuildThisFileDirectory)\find_python.bat -q" EchoOff="true" ConsoleToMsBuild="true"> <Output TaskParameter="ConsoleOutput" ItemName="_CmdExeLines" /> diff --git a/PCbuild/python.props b/PCbuild/python.props index efcb480976b6a2..7f10e7c45ef7b7 100644 --- a/PCbuild/python.props +++ b/PCbuild/python.props @@ -67,8 +67,8 @@ <libffiDir>$(ExternalsDir)libffi-3.4.2\</libffiDir> <libffiOutDir>$(ExternalsDir)libffi-3.4.2\$(ArchName)\</libffiOutDir> <libffiIncludeDir>$(libffiOutDir)include</libffiIncludeDir> - <opensslDir>$(ExternalsDir)openssl-1.1.1q\</opensslDir> - <opensslOutDir>$(ExternalsDir)openssl-bin-1.1.1q\$(ArchName)\</opensslOutDir> + <opensslDir>$(ExternalsDir)openssl-1.1.1n\</opensslDir> + <opensslOutDir>$(ExternalsDir)openssl-bin-1.1.1n\$(ArchName)\</opensslOutDir> <opensslIncludeDir>$(opensslOutDir)include</opensslIncludeDir> <nasmDir>$(ExternalsDir)\nasm-2.11.06\</nasmDir> <zlibDir>$(ExternalsDir)\zlib-1.2.12\</zlibDir> diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj index ff17304032cded..be76f1bc55859a 100644 --- a/PCbuild/pythoncore.vcxproj +++ b/PCbuild/pythoncore.vcxproj @@ -167,7 +167,6 @@ <ClInclude Include="..\Include\cpython\pydebug.h" /> <ClInclude Include="..\Include\cpython\pyerrors.h" /> <ClInclude Include="..\Include\cpython\pyfpe.h" /> - <ClInclude Include="..\Include\cpython\pyframe.h" /> <ClInclude Include="..\Include\cpython\pylifecycle.h" /> <ClInclude Include="..\Include\cpython\pymem.h" /> <ClInclude Include="..\Include\cpython\pystate.h" /> @@ -193,6 +192,7 @@ <ClInclude Include="..\Include\frameobject.h" /> <ClInclude Include="..\Include\import.h" /> <ClInclude Include="..\Include\internal\pycore_abstract.h" /> + <ClInclude Include="..\Include\internal\pycore_accu.h" /> <ClInclude Include="..\Include\internal\pycore_asdl.h" /> <ClInclude Include="..\Include\internal\pycore_ast.h" /> <ClInclude Include="..\Include\internal\pycore_ast_state.h" /> @@ -207,7 +207,6 @@ <ClInclude Include="..\Include\internal\pycore_compile.h" /> <ClInclude Include="..\Include\internal\pycore_condvar.h" /> <ClInclude Include="..\Include\internal\pycore_context.h" /> - <ClInclude Include="..\Include\internal\pycore_descrobject.h" /> <ClInclude Include="..\Include\internal\pycore_dtoa.h" /> <ClInclude Include="..\Include\internal\pycore_exceptions.h" /> <ClInclude Include="..\Include\internal\pycore_fileutils.h" /> @@ -237,10 +236,8 @@ <ClInclude Include="..\Include\internal\pycore_pylifecycle.h" /> <ClInclude Include="..\Include\internal\pycore_pymem.h" /> <ClInclude Include="..\Include\internal\pycore_pystate.h" /> - <ClInclude Include="..\Include\internal\pycore_range.h" /> <ClInclude Include="..\Include\internal\pycore_runtime.h" /> <ClInclude Include="..\Include\internal\pycore_runtime_init.h" /> - <ClInclude Include="..\Include\internal\pycore_runtime_init_generated.h" /> <ClInclude Include="..\Include\internal\pycore_signal.h" /> <ClInclude Include="..\Include\internal\pycore_sliceobject.h" /> <ClInclude Include="..\Include\internal\pycore_strhex.h" /> @@ -327,6 +324,7 @@ <ClInclude Include="..\Parser\pegen.h" /> <ClInclude Include="..\PC\errmap.h" /> <ClInclude Include="..\PC\pyconfig.h" /> + <ClInclude Include="..\Python\ceval_gil.h" /> <ClInclude Include="..\Python\condvar.h" /> <ClInclude Include="..\Python\importdl.h" /> <ClInclude Include="..\Python\stdlib_module_names.h" /> @@ -420,6 +418,7 @@ <ClCompile Include="..\Modules\cjkcodecs\multibytecodec.c" /> <ClCompile Include="..\Modules\_winapi.c" /> <ClCompile Include="..\Objects\abstract.c" /> + <ClCompile Include="..\Objects\accu.c" /> <ClCompile Include="..\Objects\boolobject.c" /> <ClCompile Include="..\Objects\bytearrayobject.c" /> <ClCompile Include="..\Objects\bytes_methods.c" /> @@ -429,7 +428,6 @@ <ClCompile Include="..\Objects\cellobject.c" /> <ClCompile Include="..\Objects\classobject.c" /> <ClCompile Include="..\Objects\codeobject.c" /> - <ClCompile Include="..\Objects\perf_trampoline.c" /> <ClCompile Include="..\Objects\complexobject.c" /> <ClCompile Include="..\Objects\descrobject.c" /> <ClCompile Include="..\Objects\dictobject.c" /> @@ -502,7 +500,6 @@ <ClCompile Include="..\Python\getopt.c" /> <ClCompile Include="..\Python\getplatform.c" /> <ClCompile Include="..\Python\getversion.c" /> - <ClCompile Include="..\Python\ceval_gil.c" /> <ClCompile Include="..\Python\hamt.c" /> <ClCompile Include="..\Python\hashtable.c" /> <ClCompile Include="..\Python\import.c" /> diff --git a/PCbuild/pythoncore.vcxproj.filters b/PCbuild/pythoncore.vcxproj.filters index 7d7fe7267c8ff0..5573e0020491a6 100644 --- a/PCbuild/pythoncore.vcxproj.filters +++ b/PCbuild/pythoncore.vcxproj.filters @@ -312,6 +312,9 @@ <ClInclude Include="..\Python\condvar.h"> <Filter>Python</Filter> </ClInclude> + <ClInclude Include="..\Python\ceval_gil.h"> + <Filter>Python</Filter> + </ClInclude> <ClInclude Include="..\Include\pyhash.h"> <Filter>Include</Filter> </ClInclude> @@ -432,9 +435,6 @@ <ClInclude Include="..\Include\cpython\pymem.h"> <Filter>Include\cpython</Filter> </ClInclude> - <ClInclude Include="..\Include\cpython\pyframe.h"> - <Filter>Include\cpython</Filter> - </ClInclude> <ClInclude Include="..\Include\cpython\pylifecycle.h"> <Filter>Include\cpython</Filter> </ClInclude> @@ -483,6 +483,9 @@ <ClInclude Include="..\Include\internal\pycore_abstract.h"> <Filter>Include\internal</Filter> </ClInclude> + <ClInclude Include="..\Include\internal\pycore_accu.h"> + <Filter>Include\internal</Filter> + </ClInclude> <ClInclude Include="..\Include\internal\pycore_asdl.h"> <Filter>Include\internal</Filter> </ClInclude> @@ -525,9 +528,6 @@ <ClInclude Include="..\Include\internal\pycore_context.h"> <Filter>Include\internal</Filter> </ClInclude> - <ClInclude Include="..\Include\internal\pycore_descrobject.h"> - <Filter>Include\internal</Filter> - </ClInclude> <ClInclude Include="..\Include\internal\pycore_dtoa.h"> <Filter>Include\internal</Filter> </ClInclude> @@ -612,18 +612,12 @@ <ClInclude Include="..\Include\internal\pycore_pystate.h"> <Filter>Include\internal</Filter> </ClInclude> - <ClInclude Include="..\Include\internal\pycore_range.h"> - <Filter>Include\internal</Filter> - </ClInclude> <ClInclude Include="..\Include\internal\pycore_runtime.h"> <Filter>Include\internal</Filter> </ClInclude> <ClInclude Include="..\Include\internal\pycore_runtime_init.h"> <Filter>Include\internal</Filter> </ClInclude> - <ClInclude Include="..\Include\internal\pycore_runtime_init_generated.h"> - <Filter>Include\internal</Filter> - </ClInclude> <ClInclude Include="..\Include\internal\pycore_signal.h"> <Filter>Include\internal</Filter> </ClInclude> @@ -923,9 +917,6 @@ <ClCompile Include="..\Objects\codeobject.c"> <Filter>Objects</Filter> </ClCompile> - <ClCompile Include="..\Objects\perf_trampoline.c"> - <Filter>Objects</Filter> - </ClCompile> <ClCompile Include="..\Objects\complexobject.c"> <Filter>Objects</Filter> </ClCompile> @@ -1097,9 +1088,6 @@ <ClCompile Include="..\Python\getversion.c"> <Filter>Python</Filter> </ClCompile> - <ClCompile Include="..\Python\ceval_gil.c"> - <Filter>Python</Filter> - </ClCompile> <ClCompile Include="..\Python\hashtable.c"> <Filter>Modules</Filter> </ClCompile> diff --git a/PCbuild/readme.txt b/PCbuild/readme.txt index c536fac94cc680..e4cad75189c972 100644 --- a/PCbuild/readme.txt +++ b/PCbuild/readme.txt @@ -168,7 +168,7 @@ _lzma Homepage: https://tukaani.org/xz/ _ssl - Python wrapper for version 1.1.1q of the OpenSSL secure sockets + Python wrapper for version 1.1.1k of the OpenSSL secure sockets library, which is downloaded from our binaries repository at https://github.com/python/cpython-bin-deps. diff --git a/PCbuild/regen.targets b/PCbuild/regen.targets index 3938b66678eee0..9073bb6ab2bd69 100644 --- a/PCbuild/regen.targets +++ b/PCbuild/regen.targets @@ -82,16 +82,9 @@ WorkingDirectory="$(PySourcePath)" /> </Target> - <Target Name="_RegenGlobalObjects" - DependsOnTargets="FindPythonForBuild"> - <Message Text="Regenerate Global Objects" Importance="high" /> - <Exec Command="$(PythonForBuild) Tools\scripts\generate_global_objects.py" - WorkingDirectory="$(PySourcePath)" /> - </Target> - <Target Name="Regen" Condition="$(Configuration) != 'PGUpdate'" - DependsOnTargets="_TouchRegenSources;_RegenPegen;_RegenAST_H;_RegenOpcodes;_RegenTokens;_RegenKeywords;_RegenGlobalObjects"> + DependsOnTargets="_TouchRegenSources;_RegenPegen;_RegenAST_H;_RegenOpcodes;_RegenTokens;_RegenKeywords"> <Message Text="Generated sources are up to date" Importance="high" /> </Target> diff --git a/Parser/asdl_c.py b/Parser/asdl_c.py index 13dd44ca0cdc3f..3bfe320fe3b70e 100755 --- a/Parser/asdl_c.py +++ b/Parser/asdl_c.py @@ -1,6 +1,7 @@ #! /usr/bin/env python """Generate C code from an ASDL description.""" +import os import sys import textwrap import types @@ -487,12 +488,6 @@ def visitProduct(self, prod, name): class Obj2ModVisitor(PickleVisitor): - - attribute_special_defaults = { - "end_lineno": "lineno", - "end_col_offset": "col_offset", - } - @contextmanager def recursive_call(self, node, level): self.emit('if (_Py_EnterRecursiveCall(" while traversing \'%s\' node")) {' % node, level, reflow=False) @@ -642,13 +637,7 @@ def visitField(self, field, name, sum=None, prod=None, depth=0): self.emit("if (tmp == NULL || tmp == Py_None) {", depth) self.emit("Py_CLEAR(tmp);", depth+1) if self.isNumeric(field): - if field.name in self.attribute_special_defaults: - self.emit( - "%s = %s;" % (field.name, self.attribute_special_defaults[field.name]), - depth+1, - ) - else: - self.emit("%s = 0;" % field.name, depth+1) + self.emit("%s = 0;" % field.name, depth+1) elif not self.isSimpleType(field): self.emit("%s = NULL;" % field.name, depth+1) else: @@ -1112,8 +1101,6 @@ def visitModule(self, mod): for dfn in mod.dfns: self.visit(dfn) self.file.write(textwrap.dedent(''' - state->recursion_depth = 0; - state->recursion_limit = 0; state->initialized = 1; return 1; } @@ -1261,14 +1248,8 @@ def func_begin(self, name): self.emit('if (!o) {', 1) self.emit("Py_RETURN_NONE;", 2) self.emit("}", 1) - self.emit("if (++state->recursion_depth > state->recursion_limit) {", 1) - self.emit("PyErr_SetString(PyExc_RecursionError,", 2) - self.emit('"maximum recursion depth exceeded during ast construction");', 3) - self.emit("return 0;", 2) - self.emit("}", 1) def func_end(self): - self.emit("state->recursion_depth--;", 1) self.emit("return result;", 1) self.emit("failed:", 0) self.emit("Py_XDECREF(value);", 1) @@ -1379,32 +1360,7 @@ class PartingShots(StaticVisitor): if (state == NULL) { return NULL; } - - int recursion_limit = Py_GetRecursionLimit(); - int starting_recursion_depth; - /* Be careful here to prevent overflow. */ - int COMPILER_STACK_FRAME_SCALE = 3; - PyThreadState *tstate = _PyThreadState_GET(); - if (!tstate) { - return 0; - } - state->recursion_limit = (recursion_limit < INT_MAX / COMPILER_STACK_FRAME_SCALE) ? - recursion_limit * COMPILER_STACK_FRAME_SCALE : recursion_limit; - int recursion_depth = tstate->recursion_limit - tstate->recursion_remaining; - starting_recursion_depth = (recursion_depth < INT_MAX / COMPILER_STACK_FRAME_SCALE) ? - recursion_depth * COMPILER_STACK_FRAME_SCALE : recursion_depth; - state->recursion_depth = starting_recursion_depth; - - PyObject *result = ast2obj_mod(state, t); - - /* Check that the recursion depth counting balanced correctly */ - if (result && state->recursion_depth != starting_recursion_depth) { - PyErr_Format(PyExc_SystemError, - "AST constructor recursion depth mismatch (before=%d, after=%d)", - starting_recursion_depth, state->recursion_depth); - return 0; - } - return result; + return ast2obj_mod(state, t); } /* mode is 0 for "exec", 1 for "eval" and 2 for "single" input */ @@ -1470,8 +1426,6 @@ def visit(self, object): def generate_ast_state(module_state, f): f.write('struct ast_state {\n') f.write(' int initialized;\n') - f.write(' int recursion_depth;\n') - f.write(' int recursion_limit;\n') for s in module_state: f.write(' PyObject *' + s + ';\n') f.write('};') diff --git a/Parser/myreadline.c b/Parser/myreadline.c index d55fcefbb6f206..b10d306255bb67 100644 --- a/Parser/myreadline.c +++ b/Parser/myreadline.c @@ -247,8 +247,7 @@ PyOS_StdioReadline(FILE *sys_stdin, FILE *sys_stdout, const char *prompt) assert(tstate != NULL); #ifdef MS_WINDOWS - const PyConfig *config = _PyInterpreterState_GetConfig(tstate->interp); - if (!config->legacy_windows_stdio && sys_stdin == stdin) { + if (!Py_LegacyWindowsStdioFlag && sys_stdin == stdin) { HANDLE hStdIn, hStdErr; hStdIn = _Py_get_osfhandle_noraise(fileno(sys_stdin)); diff --git a/Parser/parser.c b/Parser/parser.c index bec51fe4a90362..31ad9a0ce7a721 100644 --- a/Parser/parser.c +++ b/Parser/parser.c @@ -19,15 +19,15 @@ static KeywordToken *reserved_keywords[] = { (KeywordToken[]) { {"if", 634}, {"as", 632}, - {"in", 643}, + {"in", 641}, {"or", 574}, {"is", 582}, {NULL, -1}, }, (KeywordToken[]) { {"del", 603}, - {"def", 644}, - {"for", 642}, + {"def", 642}, + {"for", 640}, {"try", 618}, {"and", 575}, {"not", 581}, @@ -47,7 +47,7 @@ static KeywordToken *reserved_keywords[] = { {"raise", 522}, {"yield", 573}, {"break", 508}, - {"class", 646}, + {"class", 643}, {"while", 639}, {"False", 602}, {NULL, -1}, @@ -519,9 +519,9 @@ static char *soft_keywords[] = { #define _tmp_211_type 1439 #define _tmp_212_type 1440 #define _tmp_213_type 1441 -#define _tmp_214_type 1442 -#define _loop0_216_type 1443 -#define _gather_215_type 1444 +#define _loop0_215_type 1442 +#define _gather_214_type 1443 +#define _tmp_216_type 1444 #define _tmp_217_type 1445 #define _tmp_218_type 1446 #define _tmp_219_type 1447 @@ -551,10 +551,8 @@ static char *soft_keywords[] = { #define _tmp_243_type 1471 #define _tmp_244_type 1472 #define _tmp_245_type 1473 -#define _tmp_246_type 1474 -#define _tmp_247_type 1475 -#define _loop1_248_type 1476 -#define _loop1_249_type 1477 +#define _loop1_246_type 1474 +#define _loop1_247_type 1475 static mod_ty file_rule(Parser *p); static mod_ty interactive_rule(Parser *p); @@ -998,9 +996,9 @@ static void *_tmp_210_rule(Parser *p); static void *_tmp_211_rule(Parser *p); static void *_tmp_212_rule(Parser *p); static void *_tmp_213_rule(Parser *p); -static void *_tmp_214_rule(Parser *p); -static asdl_seq *_loop0_216_rule(Parser *p); -static asdl_seq *_gather_215_rule(Parser *p); +static asdl_seq *_loop0_215_rule(Parser *p); +static asdl_seq *_gather_214_rule(Parser *p); +static void *_tmp_216_rule(Parser *p); static void *_tmp_217_rule(Parser *p); static void *_tmp_218_rule(Parser *p); static void *_tmp_219_rule(Parser *p); @@ -1030,10 +1028,8 @@ static void *_tmp_242_rule(Parser *p); static void *_tmp_243_rule(Parser *p); static void *_tmp_244_rule(Parser *p); static void *_tmp_245_rule(Parser *p); -static void *_tmp_246_rule(Parser *p); -static void *_tmp_247_rule(Parser *p); -static asdl_seq *_loop1_248_rule(Parser *p); -static asdl_seq *_loop1_249_rule(Parser *p); +static asdl_seq *_loop1_246_rule(Parser *p); +static asdl_seq *_loop1_247_rule(Parser *p); // file: statements? $ @@ -4212,7 +4208,7 @@ class_def_rule(Parser *p) return _res; } -// class_def_raw: invalid_class_def_raw | 'class' NAME ['(' arguments? ')'] ':' block +// class_def_raw: invalid_class_def_raw | 'class' NAME ['(' arguments? ')'] &&':' block static stmt_ty class_def_raw_rule(Parser *p) { @@ -4254,30 +4250,30 @@ class_def_raw_rule(Parser *p) D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_class_def_raw")); } - { // 'class' NAME ['(' arguments? ')'] ':' block + { // 'class' NAME ['(' arguments? ')'] &&':' block if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block")); + D(fprintf(stderr, "%*c> class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block")); Token * _keyword; Token * _literal; expr_ty a; void *b; asdl_stmt_seq* c; if ( - (_keyword = _PyPegen_expect_token(p, 646)) // token='class' + (_keyword = _PyPegen_expect_token(p, 643)) // token='class' && (a = _PyPegen_name_token(p)) // NAME && (b = _tmp_33_rule(p), !p->error_indicator) // ['(' arguments? ')'] && - (_literal = _PyPegen_expect_token(p, 11)) // token=':' + (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' && (c = block_rule(p)) // block ) { - D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block")); + D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block")); Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); if (_token == NULL) { p->level--; @@ -4297,7 +4293,7 @@ class_def_raw_rule(Parser *p) } p->mark = _mark; D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block")); } _res = NULL; done: @@ -4432,7 +4428,7 @@ function_def_raw_rule(Parser *p) void *params; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 644)) // token='def' + (_keyword = _PyPegen_expect_token(p, 642)) // token='def' && (n = _PyPegen_name_token(p)) // NAME && @@ -4492,7 +4488,7 @@ function_def_raw_rule(Parser *p) if ( (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC' && - (_keyword = _PyPegen_expect_token(p, 644)) // token='def' + (_keyword = _PyPegen_expect_token(p, 642)) // token='def' && (n = _PyPegen_name_token(p)) // NAME && @@ -4637,7 +4633,7 @@ parameters_rule(Parser *p) ) { D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?")); - _res = CHECK_VERSION ( arguments_ty , 8 , "Positional-only parameters are" , _PyPegen_make_arguments ( p , a , NULL , b , c , d ) ); + _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d ); if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; p->level--; @@ -4667,7 +4663,7 @@ parameters_rule(Parser *p) ) { D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?")); - _res = CHECK_VERSION ( arguments_ty , 8 , "Positional-only parameters are" , _PyPegen_make_arguments ( p , NULL , a , NULL , b , c ) ); + _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c ); if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; p->level--; @@ -6233,8 +6229,8 @@ while_stmt_rule(Parser *p) // for_stmt: // | invalid_for_stmt -// | 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block? -// | ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block? +// | 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block? +// | ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block? // | invalid_for_target static stmt_ty for_stmt_rule(Parser *p) @@ -6277,12 +6273,12 @@ for_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_stmt")); } - { // 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block? + { // 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block? if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?")); + D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?")); int _cut_var = 0; Token * _keyword; Token * _keyword_1; @@ -6293,17 +6289,17 @@ for_stmt_rule(Parser *p) expr_ty t; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 642)) // token='for' + (_keyword = _PyPegen_expect_token(p, 640)) // token='for' && (t = star_targets_rule(p)) // star_targets && - (_keyword_1 = _PyPegen_expect_token(p, 643)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 641)) // token='in' && (_cut_var = 1) && (ex = star_expressions_rule(p)) // star_expressions && - (_literal = _PyPegen_expect_token(p, 11)) // token=':' + (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' && (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT? && @@ -6312,7 +6308,7 @@ for_stmt_rule(Parser *p) (el = else_block_rule(p), !p->error_indicator) // else_block? ) { - D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?")); + D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?")); Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); if (_token == NULL) { p->level--; @@ -6332,18 +6328,18 @@ for_stmt_rule(Parser *p) } p->mark = _mark; D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?")); if (_cut_var) { p->level--; return NULL; } } - { // ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block? + { // ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block? if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?")); + D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?")); int _cut_var = 0; Token * _keyword; Token * _keyword_1; @@ -6357,17 +6353,17 @@ for_stmt_rule(Parser *p) if ( (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC' && - (_keyword = _PyPegen_expect_token(p, 642)) // token='for' + (_keyword = _PyPegen_expect_token(p, 640)) // token='for' && (t = star_targets_rule(p)) // star_targets && - (_keyword_1 = _PyPegen_expect_token(p, 643)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 641)) // token='in' && (_cut_var = 1) && (ex = star_expressions_rule(p)) // star_expressions && - (_literal = _PyPegen_expect_token(p, 11)) // token=':' + (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' && (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT? && @@ -6376,7 +6372,7 @@ for_stmt_rule(Parser *p) (el = else_block_rule(p), !p->error_indicator) // else_block? ) { - D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?")); + D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?")); Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); if (_token == NULL) { p->level--; @@ -6396,7 +6392,7 @@ for_stmt_rule(Parser *p) } p->mark = _mark; D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?")); if (_cut_var) { p->level--; return NULL; @@ -6515,7 +6511,7 @@ with_stmt_rule(Parser *p) UNUSED(_end_lineno); // Only used by EXTRA macro int _end_col_offset = _token->end_col_offset; UNUSED(_end_col_offset); // Only used by EXTRA macro - _res = CHECK_VERSION ( stmt_ty , 9 , "Parenthesized context managers are" , _PyAST_With ( a , b , NULL , EXTRA ) ); + _res = _PyAST_With ( a , b , NULL , EXTRA ); if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; p->level--; @@ -6970,7 +6966,7 @@ try_stmt_rule(Parser *p) UNUSED(_end_lineno); // Only used by EXTRA macro int _end_col_offset = _token->end_col_offset; UNUSED(_end_col_offset); // Only used by EXTRA macro - _res = CHECK_VERSION ( stmt_ty , 11 , "Exception groups are" , _PyAST_TryStar ( b , ex , el , f , EXTRA ) ); + _res = _PyAST_TryStar ( b , ex , el , f , EXTRA ); if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; p->level--; @@ -7949,10 +7945,6 @@ closed_pattern_rule(Parser *p) return NULL; } pattern_ty _res = NULL; - if (_PyPegen_is_memoized(p, closed_pattern_type, &_res)) { - p->level--; - return _res; - } int _mark = p->mark; { // literal_pattern if (p->error_indicator) { @@ -8108,7 +8100,6 @@ closed_pattern_rule(Parser *p) } _res = NULL; done: - _PyPegen_insert_memo(p, _mark, closed_pattern_type, _res); p->level--; return _res; } @@ -9632,10 +9623,6 @@ star_pattern_rule(Parser *p) return NULL; } pattern_ty _res = NULL; - if (_PyPegen_is_memoized(p, star_pattern_type, &_res)) { - p->level--; - return _res; - } int _mark = p->mark; if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { p->error_indicator = 1; @@ -9720,7 +9707,6 @@ star_pattern_rule(Parser *p) } _res = NULL; done: - _PyPegen_insert_memo(p, _mark, star_pattern_type, _res); p->level--; return _res; } @@ -11223,7 +11209,7 @@ assignment_expression_rule(Parser *p) UNUSED(_end_lineno); // Only used by EXTRA macro int _end_col_offset = _token->end_col_offset; UNUSED(_end_col_offset); // Only used by EXTRA macro - _res = CHECK_VERSION ( expr_ty , 8 , "Assignment expressions are" , _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA ) ); + _res = _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA ); if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; p->level--; @@ -12203,7 +12189,7 @@ notin_bitwise_or_rule(Parser *p) if ( (_keyword = _PyPegen_expect_token(p, 581)) // token='not' && - (_keyword_1 = _PyPegen_expect_token(p, 643)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 641)) // token='in' && (a = bitwise_or_rule(p)) // bitwise_or ) @@ -12250,7 +12236,7 @@ in_bitwise_or_rule(Parser *p) Token * _keyword; expr_ty a; if ( - (_keyword = _PyPegen_expect_token(p, 643)) // token='in' + (_keyword = _PyPegen_expect_token(p, 641)) // token='in' && (a = bitwise_or_rule(p)) // bitwise_or ) @@ -14659,7 +14645,7 @@ lambda_parameters_rule(Parser *p) ) { D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?")); - _res = CHECK_VERSION ( arguments_ty , 8 , "Positional-only parameters are" , _PyPegen_make_arguments ( p , a , NULL , b , c , d ) ); + _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d ); if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; p->level--; @@ -14689,7 +14675,7 @@ lambda_parameters_rule(Parser *p) ) { D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?")); - _res = CHECK_VERSION ( arguments_ty , 8 , "Positional-only parameters are" , _PyPegen_make_arguments ( p , NULL , a , NULL , b , c ) ); + _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c ); if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; p->level--; @@ -16035,11 +16021,11 @@ for_if_clause_rule(Parser *p) if ( (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC' && - (_keyword = _PyPegen_expect_token(p, 642)) // token='for' + (_keyword = _PyPegen_expect_token(p, 640)) // token='for' && (a = star_targets_rule(p)) // star_targets && - (_keyword_1 = _PyPegen_expect_token(p, 643)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 641)) // token='in' && (_cut_var = 1) && @@ -16078,11 +16064,11 @@ for_if_clause_rule(Parser *p) expr_ty b; asdl_expr_seq* c; if ( - (_keyword = _PyPegen_expect_token(p, 642)) // token='for' + (_keyword = _PyPegen_expect_token(p, 640)) // token='for' && (a = star_targets_rule(p)) // star_targets && - (_keyword_1 = _PyPegen_expect_token(p, 643)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 641)) // token='in' && (_cut_var = 1) && @@ -21438,7 +21424,7 @@ invalid_for_target_rule(Parser *p) if ( (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC? && - (_keyword = _PyPegen_expect_token(p, 642)) // token='for' + (_keyword = _PyPegen_expect_token(p, 640)) // token='for' && (a = star_expressions_rule(p)) // star_expressions ) @@ -21596,8 +21582,8 @@ invalid_import_from_targets_rule(Parser *p) } // invalid_with_stmt: -// | ASYNC? 'with' ','.(expression ['as' star_target])+ NEWLINE -// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' NEWLINE +// | ASYNC? 'with' ','.(expression ['as' star_target])+ &&':' +// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':' static void * invalid_with_stmt_rule(Parser *p) { @@ -21611,17 +21597,17 @@ invalid_with_stmt_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - { // ASYNC? 'with' ','.(expression ['as' star_target])+ NEWLINE + { // ASYNC? 'with' ','.(expression ['as' star_target])+ &&':' if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ NEWLINE")); + D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'")); asdl_seq * _gather_194_var; Token * _keyword; + Token * _literal; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings - Token * newline_var; if ( (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC? && @@ -21629,37 +21615,32 @@ invalid_with_stmt_rule(Parser *p) && (_gather_194_var = _gather_194_rule(p)) // ','.(expression ['as' star_target])+ && - (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' + (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' ) { - D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ NEWLINE")); - _res = RAISE_SYNTAX_ERROR ( "expected ':'" ); - if (_res == NULL && PyErr_Occurred()) { - p->error_indicator = 1; - p->level--; - return NULL; - } + D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'")); + _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _gather_194_var, _literal); goto done; } p->mark = _mark; D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ NEWLINE")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'")); } - { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' NEWLINE + { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':' if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' NEWLINE")); + D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'")); asdl_seq * _gather_196_var; Token * _keyword; Token * _literal; Token * _literal_1; + Token * _literal_2; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings void *_opt_var_1; UNUSED(_opt_var_1); // Silence compiler warnings - Token * newline_var; if ( (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC? && @@ -21673,21 +21654,16 @@ invalid_with_stmt_rule(Parser *p) && (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' && - (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' + (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' ) { - D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' NEWLINE")); - _res = RAISE_SYNTAX_ERROR ( "expected ':'" ); - if (_res == NULL && PyErr_Occurred()) { - p->error_indicator = 1; - p->level--; - return NULL; - } + D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'")); + _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _literal, _gather_196_var, _opt_var_1, _literal_1, _literal_2); goto done; } p->mark = _mark; D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' NEWLINE")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'")); } _res = NULL; done: @@ -22300,7 +22276,7 @@ invalid_except_star_stmt_indent_rule(Parser *p) } // invalid_match_stmt: -// | "match" subject_expr NEWLINE +// | "match" subject_expr !':' // | "match" subject_expr ':' NEWLINE !INDENT static void * invalid_match_stmt_rule(Parser *p) @@ -22315,24 +22291,23 @@ invalid_match_stmt_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - { // "match" subject_expr NEWLINE + { // "match" subject_expr !':' if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr NEWLINE")); + D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'")); expr_ty _keyword; - Token * newline_var; expr_ty subject_expr_var; if ( (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"' && (subject_expr_var = subject_expr_rule(p)) // subject_expr && - (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' + _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':' ) { - D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr NEWLINE")); + D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'")); _res = CHECK_VERSION ( void* , 10 , "Pattern matching is" , RAISE_SYNTAX_ERROR ( "expected ':'" ) ); if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -22343,7 +22318,7 @@ invalid_match_stmt_rule(Parser *p) } p->mark = _mark; D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr NEWLINE")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr !':'")); } { // "match" subject_expr ':' NEWLINE !INDENT if (p->error_indicator) { @@ -22387,7 +22362,7 @@ invalid_match_stmt_rule(Parser *p) } // invalid_case_block: -// | "case" patterns guard? NEWLINE +// | "case" patterns guard? !':' // | "case" patterns guard? ':' NEWLINE !INDENT static void * invalid_case_block_rule(Parser *p) @@ -22402,16 +22377,15 @@ invalid_case_block_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - { // "case" patterns guard? NEWLINE + { // "case" patterns guard? !':' if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? NEWLINE")); + D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'")); expr_ty _keyword; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings - Token * newline_var; pattern_ty patterns_var; if ( (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"' @@ -22420,10 +22394,10 @@ invalid_case_block_rule(Parser *p) && (_opt_var = guard_rule(p), !p->error_indicator) // guard? && - (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' + _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':' ) { - D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? NEWLINE")); + D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'")); _res = RAISE_SYNTAX_ERROR ( "expected ':'" ); if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -22434,7 +22408,7 @@ invalid_case_block_rule(Parser *p) } p->mark = _mark; D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? NEWLINE")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? !':'")); } { // "case" patterns guard? ':' NEWLINE !INDENT if (p->error_indicator) { @@ -22981,9 +22955,7 @@ invalid_while_stmt_rule(Parser *p) return _res; } -// invalid_for_stmt: -// | ASYNC? 'for' star_targets 'in' star_expressions NEWLINE -// | ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT +// invalid_for_stmt: ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT static void * invalid_for_stmt_rule(Parser *p) { @@ -22997,46 +22969,6 @@ invalid_for_stmt_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - { // ASYNC? 'for' star_targets 'in' star_expressions NEWLINE - if (p->error_indicator) { - p->level--; - return NULL; - } - D(fprintf(stderr, "%*c> invalid_for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_targets 'in' star_expressions NEWLINE")); - Token * _keyword; - Token * _keyword_1; - void *_opt_var; - UNUSED(_opt_var); // Silence compiler warnings - Token * newline_var; - expr_ty star_expressions_var; - expr_ty star_targets_var; - if ( - (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC? - && - (_keyword = _PyPegen_expect_token(p, 642)) // token='for' - && - (star_targets_var = star_targets_rule(p)) // star_targets - && - (_keyword_1 = _PyPegen_expect_token(p, 643)) // token='in' - && - (star_expressions_var = star_expressions_rule(p)) // star_expressions - && - (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' - ) - { - D(fprintf(stderr, "%*c+ invalid_for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_targets 'in' star_expressions NEWLINE")); - _res = RAISE_SYNTAX_ERROR ( "expected ':'" ); - if (_res == NULL && PyErr_Occurred()) { - p->error_indicator = 1; - p->level--; - return NULL; - } - goto done; - } - p->mark = _mark; - D(fprintf(stderr, "%*c%s invalid_for_stmt[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_targets 'in' star_expressions NEWLINE")); - } { // ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT if (p->error_indicator) { p->level--; @@ -23054,11 +22986,11 @@ invalid_for_stmt_rule(Parser *p) if ( (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC? && - (a = _PyPegen_expect_token(p, 642)) // token='for' + (a = _PyPegen_expect_token(p, 640)) // token='for' && (star_targets_var = star_targets_rule(p)) // star_targets && - (_keyword = _PyPegen_expect_token(p, 643)) // token='in' + (_keyword = _PyPegen_expect_token(p, 641)) // token='in' && (star_expressions_var = star_expressions_rule(p)) // star_expressions && @@ -23124,7 +23056,7 @@ invalid_def_raw_rule(Parser *p) if ( (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC? && - (a = _PyPegen_expect_token(p, 644)) // token='def' + (a = _PyPegen_expect_token(p, 642)) // token='def' && (name_var = _PyPegen_name_token(p)) // NAME && @@ -23162,9 +23094,7 @@ invalid_def_raw_rule(Parser *p) return _res; } -// invalid_class_def_raw: -// | 'class' NAME ['(' arguments? ')'] NEWLINE -// | 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT +// invalid_class_def_raw: 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT static void * invalid_class_def_raw_rule(Parser *p) { @@ -23178,40 +23108,6 @@ invalid_class_def_raw_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - { // 'class' NAME ['(' arguments? ')'] NEWLINE - if (p->error_indicator) { - p->level--; - return NULL; - } - D(fprintf(stderr, "%*c> invalid_class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] NEWLINE")); - Token * _keyword; - void *_opt_var; - UNUSED(_opt_var); // Silence compiler warnings - expr_ty name_var; - Token * newline_var; - if ( - (_keyword = _PyPegen_expect_token(p, 646)) // token='class' - && - (name_var = _PyPegen_name_token(p)) // NAME - && - (_opt_var = _tmp_213_rule(p), !p->error_indicator) // ['(' arguments? ')'] - && - (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' - ) - { - D(fprintf(stderr, "%*c+ invalid_class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] NEWLINE")); - _res = RAISE_SYNTAX_ERROR ( "expected ':'" ); - if (_res == NULL && PyErr_Occurred()) { - p->error_indicator = 1; - p->level--; - return NULL; - } - goto done; - } - p->mark = _mark; - D(fprintf(stderr, "%*c%s invalid_class_def_raw[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] NEWLINE")); - } { // 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT if (p->error_indicator) { p->level--; @@ -23225,11 +23121,11 @@ invalid_class_def_raw_rule(Parser *p) expr_ty name_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 646)) // token='class' + (a = _PyPegen_expect_token(p, 643)) // token='class' && (name_var = _PyPegen_name_token(p)) // NAME && - (_opt_var = _tmp_214_rule(p), !p->error_indicator) // ['(' arguments? ')'] + (_opt_var = _tmp_213_rule(p), !p->error_indicator) // ['(' arguments? ')'] && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -23280,11 +23176,11 @@ invalid_double_starred_kvpairs_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair")); - asdl_seq * _gather_215_var; + asdl_seq * _gather_214_var; Token * _literal; void *invalid_kvpair_var; if ( - (_gather_215_var = _gather_215_rule(p)) // ','.double_starred_kvpair+ + (_gather_214_var = _gather_214_rule(p)) // ','.double_starred_kvpair+ && (_literal = _PyPegen_expect_token(p, 12)) // token=',' && @@ -23292,7 +23188,7 @@ invalid_double_starred_kvpairs_rule(Parser *p) ) { D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair")); - _res = _PyPegen_dummy_name(p, _gather_215_var, _literal, invalid_kvpair_var); + _res = _PyPegen_dummy_name(p, _gather_214_var, _literal, invalid_kvpair_var); goto done; } p->mark = _mark; @@ -23345,7 +23241,7 @@ invalid_double_starred_kvpairs_rule(Parser *p) && (a = _PyPegen_expect_token(p, 11)) // token=':' && - _PyPegen_lookahead(1, _tmp_217_rule, p) + _PyPegen_lookahead(1, _tmp_216_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')")); @@ -23367,10 +23263,7 @@ invalid_double_starred_kvpairs_rule(Parser *p) return _res; } -// invalid_kvpair: -// | expression !(':') -// | expression ':' '*' bitwise_or -// | expression ':' &('}' | ',') +// invalid_kvpair: expression !(':') | expression ':' '*' bitwise_or | expression ':' static void * invalid_kvpair_rule(Parser *p) { @@ -23443,23 +23336,21 @@ invalid_kvpair_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or")); } - { // expression ':' &('}' | ',') + { // expression ':' if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')")); + D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':'")); Token * a; expr_ty expression_var; if ( (expression_var = expression_rule(p)) // expression && (a = _PyPegen_expect_token(p, 11)) // token=':' - && - _PyPegen_lookahead(1, _tmp_218_rule, p) ) { - D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')")); + D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':'")); _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" ); if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -23470,7 +23361,7 @@ invalid_kvpair_rule(Parser *p) } p->mark = _mark; D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' &('}' | ',')")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':'")); } _res = NULL; done: @@ -23890,7 +23781,7 @@ _tmp_7_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 644)) // token='def' + (_keyword = _PyPegen_expect_token(p, 642)) // token='def' ) { D(fprintf(stderr, "%*c+ _tmp_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'")); @@ -23967,7 +23858,7 @@ _tmp_8_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 646)) // token='class' + (_keyword = _PyPegen_expect_token(p, 643)) // token='class' ) { D(fprintf(stderr, "%*c+ _tmp_8[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'")); @@ -24083,7 +23974,7 @@ _tmp_10_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 642)) // token='for' + (_keyword = _PyPegen_expect_token(p, 640)) // token='for' ) { D(fprintf(stderr, "%*c+ _tmp_10[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'")); @@ -24312,12 +24203,12 @@ _loop1_14_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')")); - void *_tmp_219_var; + void *_tmp_217_var; while ( - (_tmp_219_var = _tmp_219_rule(p)) // star_targets '=' + (_tmp_217_var = _tmp_217_rule(p)) // star_targets '=' ) { - _res = _tmp_219_var; + _res = _tmp_217_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -24894,12 +24785,12 @@ _loop0_24_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop0_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')")); - void *_tmp_220_var; + void *_tmp_218_var; while ( - (_tmp_220_var = _tmp_220_rule(p)) // '.' | '...' + (_tmp_218_var = _tmp_218_rule(p)) // '.' | '...' ) { - _res = _tmp_220_var; + _res = _tmp_218_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -24963,12 +24854,12 @@ _loop1_25_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')")); - void *_tmp_221_var; + void *_tmp_219_var; while ( - (_tmp_221_var = _tmp_221_rule(p)) // '.' | '...' + (_tmp_219_var = _tmp_219_rule(p)) // '.' | '...' ) { - _res = _tmp_221_var; + _res = _tmp_219_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -25371,12 +25262,12 @@ _loop1_32_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)")); - void *_tmp_222_var; + void *_tmp_220_var; while ( - (_tmp_222_var = _tmp_222_rule(p)) // '@' named_expression NEWLINE + (_tmp_220_var = _tmp_220_rule(p)) // '@' named_expression NEWLINE ) { - _res = _tmp_222_var; + _res = _tmp_220_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -28460,12 +28351,12 @@ _loop1_80_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_80[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)")); - void *_tmp_223_var; + void *_tmp_221_var; while ( - (_tmp_223_var = _tmp_223_rule(p)) // ',' expression + (_tmp_221_var = _tmp_221_rule(p)) // ',' expression ) { - _res = _tmp_223_var; + _res = _tmp_221_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -28534,12 +28425,12 @@ _loop1_81_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_81[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)")); - void *_tmp_224_var; + void *_tmp_222_var; while ( - (_tmp_224_var = _tmp_224_rule(p)) // ',' star_expression + (_tmp_222_var = _tmp_222_rule(p)) // ',' star_expression ) { - _res = _tmp_224_var; + _res = _tmp_222_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -28728,12 +28619,12 @@ _loop1_84_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)")); - void *_tmp_225_var; + void *_tmp_223_var; while ( - (_tmp_225_var = _tmp_225_rule(p)) // 'or' conjunction + (_tmp_223_var = _tmp_223_rule(p)) // 'or' conjunction ) { - _res = _tmp_225_var; + _res = _tmp_223_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -28802,12 +28693,12 @@ _loop1_85_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)")); - void *_tmp_226_var; + void *_tmp_224_var; while ( - (_tmp_226_var = _tmp_226_rule(p)) // 'and' inversion + (_tmp_224_var = _tmp_224_rule(p)) // 'and' inversion ) { - _res = _tmp_226_var; + _res = _tmp_224_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -28999,7 +28890,7 @@ _loop0_89_rule(Parser *p) while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_227_rule(p)) // slice | starred_expression + (elem = _tmp_225_rule(p)) // slice | starred_expression ) { _res = elem; @@ -29065,7 +28956,7 @@ _gather_88_rule(Parser *p) void *elem; asdl_seq * seq; if ( - (elem = _tmp_227_rule(p)) // slice | starred_expression + (elem = _tmp_225_rule(p)) // slice | starred_expression && (seq = _loop0_89_rule(p)) // _loop0_89 ) @@ -30769,12 +30660,12 @@ _loop0_114_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop0_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)")); - void *_tmp_228_var; + void *_tmp_226_var; while ( - (_tmp_228_var = _tmp_228_rule(p)) // 'if' disjunction + (_tmp_226_var = _tmp_226_rule(p)) // 'if' disjunction ) { - _res = _tmp_228_var; + _res = _tmp_226_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -30838,12 +30729,12 @@ _loop0_115_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop0_115[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)")); - void *_tmp_229_var; + void *_tmp_227_var; while ( - (_tmp_229_var = _tmp_229_rule(p)) // 'if' disjunction + (_tmp_227_var = _tmp_227_rule(p)) // 'if' disjunction ) { - _res = _tmp_229_var; + _res = _tmp_227_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -30972,7 +30863,7 @@ _loop0_118_rule(Parser *p) while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_230_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'=' + (elem = _tmp_228_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'=' ) { _res = elem; @@ -31039,7 +30930,7 @@ _gather_117_rule(Parser *p) void *elem; asdl_seq * seq; if ( - (elem = _tmp_230_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'=' + (elem = _tmp_228_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'=' && (seq = _loop0_118_rule(p)) // _loop0_118 ) @@ -31615,12 +31506,12 @@ _loop0_128_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop0_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)")); - void *_tmp_231_var; + void *_tmp_229_var; while ( - (_tmp_231_var = _tmp_231_rule(p)) // ',' star_target + (_tmp_229_var = _tmp_229_rule(p)) // ',' star_target ) { - _res = _tmp_231_var; + _res = _tmp_229_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -31804,12 +31695,12 @@ _loop1_131_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)")); - void *_tmp_232_var; + void *_tmp_230_var; while ( - (_tmp_232_var = _tmp_232_rule(p)) // ',' star_target + (_tmp_230_var = _tmp_230_rule(p)) // ',' star_target ) { - _res = _tmp_232_var; + _res = _tmp_230_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -33179,12 +33070,12 @@ _loop0_153_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop0_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')")); - void *_tmp_233_var; + void *_tmp_231_var; while ( - (_tmp_233_var = _tmp_233_rule(p)) // star_targets '=' + (_tmp_231_var = _tmp_231_rule(p)) // star_targets '=' ) { - _res = _tmp_233_var; + _res = _tmp_231_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -33248,12 +33139,12 @@ _loop0_154_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop0_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')")); - void *_tmp_234_var; + void *_tmp_232_var; while ( - (_tmp_234_var = _tmp_234_rule(p)) // star_targets '=' + (_tmp_232_var = _tmp_232_rule(p)) // star_targets '=' ) { - _res = _tmp_234_var; + _res = _tmp_232_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -34303,15 +34194,15 @@ _tmp_170_rule(Parser *p) } D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')")); Token * _literal; - void *_tmp_235_var; + void *_tmp_233_var; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (_tmp_235_var = _tmp_235_rule(p)) // ')' | '**' + (_tmp_233_var = _tmp_233_rule(p)) // ')' | '**' ) { D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')")); - _res = _PyPegen_dummy_name(p, _literal, _tmp_235_var); + _res = _PyPegen_dummy_name(p, _literal, _tmp_233_var); goto done; } p->mark = _mark; @@ -35487,15 +35378,15 @@ _tmp_188_rule(Parser *p) } D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')")); Token * _literal; - void *_tmp_236_var; + void *_tmp_234_var; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (_tmp_236_var = _tmp_236_rule(p)) // ':' | '**' + (_tmp_234_var = _tmp_234_rule(p)) // ':' | '**' ) { D(fprintf(stderr, "%*c+ _tmp_188[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')")); - _res = _PyPegen_dummy_name(p, _literal, _tmp_236_var); + _res = _PyPegen_dummy_name(p, _literal, _tmp_234_var); goto done; } p->mark = _mark; @@ -35882,7 +35773,7 @@ _loop0_195_rule(Parser *p) while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_237_rule(p)) // expression ['as' star_target] + (elem = _tmp_235_rule(p)) // expression ['as' star_target] ) { _res = elem; @@ -35948,7 +35839,7 @@ _gather_194_rule(Parser *p) void *elem; asdl_seq * seq; if ( - (elem = _tmp_237_rule(p)) // expression ['as' star_target] + (elem = _tmp_235_rule(p)) // expression ['as' star_target] && (seq = _loop0_195_rule(p)) // _loop0_195 ) @@ -36002,7 +35893,7 @@ _loop0_197_rule(Parser *p) while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_238_rule(p)) // expressions ['as' star_target] + (elem = _tmp_236_rule(p)) // expressions ['as' star_target] ) { _res = elem; @@ -36068,7 +35959,7 @@ _gather_196_rule(Parser *p) void *elem; asdl_seq * seq; if ( - (elem = _tmp_238_rule(p)) // expressions ['as' star_target] + (elem = _tmp_236_rule(p)) // expressions ['as' star_target] && (seq = _loop0_197_rule(p)) // _loop0_197 ) @@ -36122,7 +36013,7 @@ _loop0_199_rule(Parser *p) while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_239_rule(p)) // expression ['as' star_target] + (elem = _tmp_237_rule(p)) // expression ['as' star_target] ) { _res = elem; @@ -36188,7 +36079,7 @@ _gather_198_rule(Parser *p) void *elem; asdl_seq * seq; if ( - (elem = _tmp_239_rule(p)) // expression ['as' star_target] + (elem = _tmp_237_rule(p)) // expression ['as' star_target] && (seq = _loop0_199_rule(p)) // _loop0_199 ) @@ -36242,7 +36133,7 @@ _loop0_201_rule(Parser *p) while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_240_rule(p)) // expressions ['as' star_target] + (elem = _tmp_238_rule(p)) // expressions ['as' star_target] ) { _res = elem; @@ -36308,7 +36199,7 @@ _gather_200_rule(Parser *p) void *elem; asdl_seq * seq; if ( - (elem = _tmp_240_rule(p)) // expressions ['as' star_target] + (elem = _tmp_238_rule(p)) // expressions ['as' star_target] && (seq = _loop0_201_rule(p)) // _loop0_201 ) @@ -36474,13 +36365,13 @@ _tmp_204_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _tmp_204[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(except_block+ except_star_block)")); - void *_tmp_241_var; + void *_tmp_239_var; if ( - (_tmp_241_var = _tmp_241_rule(p)) // except_block+ except_star_block + (_tmp_239_var = _tmp_239_rule(p)) // except_block+ except_star_block ) { D(fprintf(stderr, "%*c+ _tmp_204[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(except_block+ except_star_block)")); - _res = _tmp_241_var; + _res = _tmp_239_var; goto done; } p->mark = _mark; @@ -36493,13 +36384,13 @@ _tmp_204_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _tmp_204[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(except_star_block+ except_block)")); - void *_tmp_242_var; + void *_tmp_240_var; if ( - (_tmp_242_var = _tmp_242_rule(p)) // except_star_block+ except_block + (_tmp_240_var = _tmp_240_rule(p)) // except_star_block+ except_block ) { D(fprintf(stderr, "%*c+ _tmp_204[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(except_star_block+ except_block)")); - _res = _tmp_242_var; + _res = _tmp_240_var; goto done; } p->mark = _mark; @@ -36937,55 +36828,9 @@ _tmp_213_rule(Parser *p) return _res; } -// _tmp_214: '(' arguments? ')' -static void * -_tmp_214_rule(Parser *p) -{ - if (p->level++ == MAXSTACK) { - p->error_indicator = 1; - PyErr_NoMemory(); - } - if (p->error_indicator) { - p->level--; - return NULL; - } - void * _res = NULL; - int _mark = p->mark; - { // '(' arguments? ')' - if (p->error_indicator) { - p->level--; - return NULL; - } - D(fprintf(stderr, "%*c> _tmp_214[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'")); - Token * _literal; - Token * _literal_1; - void *_opt_var; - UNUSED(_opt_var); // Silence compiler warnings - if ( - (_literal = _PyPegen_expect_token(p, 7)) // token='(' - && - (_opt_var = arguments_rule(p), !p->error_indicator) // arguments? - && - (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' - ) - { - D(fprintf(stderr, "%*c+ _tmp_214[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'")); - _res = _PyPegen_dummy_name(p, _literal, _opt_var, _literal_1); - goto done; - } - p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_214[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'")); - } - _res = NULL; - done: - p->level--; - return _res; -} - -// _loop0_216: ',' double_starred_kvpair +// _loop0_215: ',' double_starred_kvpair static asdl_seq * -_loop0_216_rule(Parser *p) +_loop0_215_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37012,7 +36857,7 @@ _loop0_216_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_216[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair")); + D(fprintf(stderr, "%*c> _loop0_215[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair")); Token * _literal; KeyValuePair* elem; while ( @@ -37043,7 +36888,7 @@ _loop0_216_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_216[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_215[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -37056,14 +36901,14 @@ _loop0_216_rule(Parser *p) } for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); PyMem_Free(_children); - _PyPegen_insert_memo(p, _start_mark, _loop0_216_type, _seq); + _PyPegen_insert_memo(p, _start_mark, _loop0_215_type, _seq); p->level--; return _seq; } -// _gather_215: double_starred_kvpair _loop0_216 +// _gather_214: double_starred_kvpair _loop0_215 static asdl_seq * -_gather_215_rule(Parser *p) +_gather_214_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37075,85 +36920,27 @@ _gather_215_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // double_starred_kvpair _loop0_216 + { // double_starred_kvpair _loop0_215 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_215[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_216")); + D(fprintf(stderr, "%*c> _gather_214[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_215")); KeyValuePair* elem; asdl_seq * seq; if ( (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair && - (seq = _loop0_216_rule(p)) // _loop0_216 + (seq = _loop0_215_rule(p)) // _loop0_215 ) { - D(fprintf(stderr, "%*c+ _gather_215[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_216")); + D(fprintf(stderr, "%*c+ _gather_214[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_215")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_215[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_216")); - } - _res = NULL; - done: - p->level--; - return _res; -} - -// _tmp_217: '}' | ',' -static void * -_tmp_217_rule(Parser *p) -{ - if (p->level++ == MAXSTACK) { - p->error_indicator = 1; - PyErr_NoMemory(); - } - if (p->error_indicator) { - p->level--; - return NULL; - } - void * _res = NULL; - int _mark = p->mark; - { // '}' - if (p->error_indicator) { - p->level--; - return NULL; - } - D(fprintf(stderr, "%*c> _tmp_217[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); - Token * _literal; - if ( - (_literal = _PyPegen_expect_token(p, 26)) // token='}' - ) - { - D(fprintf(stderr, "%*c+ _tmp_217[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); - _res = _literal; - goto done; - } - p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_217[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'")); - } - { // ',' - if (p->error_indicator) { - p->level--; - return NULL; - } - D(fprintf(stderr, "%*c> _tmp_217[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); - Token * _literal; - if ( - (_literal = _PyPegen_expect_token(p, 12)) // token=',' - ) - { - D(fprintf(stderr, "%*c+ _tmp_217[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); - _res = _literal; - goto done; - } - p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_217[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); + D(fprintf(stderr, "%*c%s _gather_214[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_215")); } _res = NULL; done: @@ -37161,9 +36948,9 @@ _tmp_217_rule(Parser *p) return _res; } -// _tmp_218: '}' | ',' +// _tmp_216: '}' | ',' static void * -_tmp_218_rule(Parser *p) +_tmp_216_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37180,18 +36967,18 @@ _tmp_218_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_218[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c> _tmp_216[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 26)) // token='}' ) { - D(fprintf(stderr, "%*c+ _tmp_218[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c+ _tmp_216[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_218[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_216[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'")); } { // ',' @@ -37199,18 +36986,18 @@ _tmp_218_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_218[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_216[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_218[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_216[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_218[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_216[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } _res = NULL; @@ -37219,9 +37006,9 @@ _tmp_218_rule(Parser *p) return _res; } -// _tmp_219: star_targets '=' +// _tmp_217: star_targets '=' static void * -_tmp_219_rule(Parser *p) +_tmp_217_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37238,7 +37025,7 @@ _tmp_219_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_219[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c> _tmp_217[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); Token * _literal; expr_ty z; if ( @@ -37247,7 +37034,7 @@ _tmp_219_rule(Parser *p) (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_219[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c+ _tmp_217[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); _res = z; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -37257,7 +37044,7 @@ _tmp_219_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_219[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_217[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='")); } _res = NULL; @@ -37266,9 +37053,9 @@ _tmp_219_rule(Parser *p) return _res; } -// _tmp_220: '.' | '...' +// _tmp_218: '.' | '...' static void * -_tmp_220_rule(Parser *p) +_tmp_218_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37285,18 +37072,18 @@ _tmp_220_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_220[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'")); + D(fprintf(stderr, "%*c> _tmp_218[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 23)) // token='.' ) { - D(fprintf(stderr, "%*c+ _tmp_220[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'")); + D(fprintf(stderr, "%*c+ _tmp_218[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_220[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_218[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'")); } { // '...' @@ -37304,18 +37091,18 @@ _tmp_220_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_220[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'")); + D(fprintf(stderr, "%*c> _tmp_218[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 52)) // token='...' ) { - D(fprintf(stderr, "%*c+ _tmp_220[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'")); + D(fprintf(stderr, "%*c+ _tmp_218[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_220[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_218[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'")); } _res = NULL; @@ -37324,9 +37111,9 @@ _tmp_220_rule(Parser *p) return _res; } -// _tmp_221: '.' | '...' +// _tmp_219: '.' | '...' static void * -_tmp_221_rule(Parser *p) +_tmp_219_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37343,18 +37130,18 @@ _tmp_221_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_221[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'")); + D(fprintf(stderr, "%*c> _tmp_219[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 23)) // token='.' ) { - D(fprintf(stderr, "%*c+ _tmp_221[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'")); + D(fprintf(stderr, "%*c+ _tmp_219[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_221[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_219[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'")); } { // '...' @@ -37362,18 +37149,18 @@ _tmp_221_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_221[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'")); + D(fprintf(stderr, "%*c> _tmp_219[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 52)) // token='...' ) { - D(fprintf(stderr, "%*c+ _tmp_221[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'")); + D(fprintf(stderr, "%*c+ _tmp_219[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_221[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_219[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'")); } _res = NULL; @@ -37382,9 +37169,9 @@ _tmp_221_rule(Parser *p) return _res; } -// _tmp_222: '@' named_expression NEWLINE +// _tmp_220: '@' named_expression NEWLINE static void * -_tmp_222_rule(Parser *p) +_tmp_220_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37401,7 +37188,7 @@ _tmp_222_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_222[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE")); + D(fprintf(stderr, "%*c> _tmp_220[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE")); Token * _literal; expr_ty f; Token * newline_var; @@ -37413,7 +37200,7 @@ _tmp_222_rule(Parser *p) (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) { - D(fprintf(stderr, "%*c+ _tmp_222[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE")); + D(fprintf(stderr, "%*c+ _tmp_220[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE")); _res = f; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -37423,7 +37210,7 @@ _tmp_222_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_222[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_220[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE")); } _res = NULL; @@ -37432,9 +37219,9 @@ _tmp_222_rule(Parser *p) return _res; } -// _tmp_223: ',' expression +// _tmp_221: ',' expression static void * -_tmp_223_rule(Parser *p) +_tmp_221_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37451,7 +37238,7 @@ _tmp_223_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_223[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression")); + D(fprintf(stderr, "%*c> _tmp_221[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression")); Token * _literal; expr_ty c; if ( @@ -37460,7 +37247,7 @@ _tmp_223_rule(Parser *p) (c = expression_rule(p)) // expression ) { - D(fprintf(stderr, "%*c+ _tmp_223[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression")); + D(fprintf(stderr, "%*c+ _tmp_221[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -37470,7 +37257,7 @@ _tmp_223_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_223[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_221[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression")); } _res = NULL; @@ -37479,9 +37266,9 @@ _tmp_223_rule(Parser *p) return _res; } -// _tmp_224: ',' star_expression +// _tmp_222: ',' star_expression static void * -_tmp_224_rule(Parser *p) +_tmp_222_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37498,7 +37285,7 @@ _tmp_224_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_224[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression")); + D(fprintf(stderr, "%*c> _tmp_222[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression")); Token * _literal; expr_ty c; if ( @@ -37507,7 +37294,7 @@ _tmp_224_rule(Parser *p) (c = star_expression_rule(p)) // star_expression ) { - D(fprintf(stderr, "%*c+ _tmp_224[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression")); + D(fprintf(stderr, "%*c+ _tmp_222[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -37517,7 +37304,7 @@ _tmp_224_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_224[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_222[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression")); } _res = NULL; @@ -37526,9 +37313,9 @@ _tmp_224_rule(Parser *p) return _res; } -// _tmp_225: 'or' conjunction +// _tmp_223: 'or' conjunction static void * -_tmp_225_rule(Parser *p) +_tmp_223_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37545,7 +37332,7 @@ _tmp_225_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_225[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction")); + D(fprintf(stderr, "%*c> _tmp_223[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction")); Token * _keyword; expr_ty c; if ( @@ -37554,7 +37341,7 @@ _tmp_225_rule(Parser *p) (c = conjunction_rule(p)) // conjunction ) { - D(fprintf(stderr, "%*c+ _tmp_225[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction")); + D(fprintf(stderr, "%*c+ _tmp_223[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -37564,7 +37351,7 @@ _tmp_225_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_225[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_223[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction")); } _res = NULL; @@ -37573,9 +37360,9 @@ _tmp_225_rule(Parser *p) return _res; } -// _tmp_226: 'and' inversion +// _tmp_224: 'and' inversion static void * -_tmp_226_rule(Parser *p) +_tmp_224_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37592,7 +37379,7 @@ _tmp_226_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_226[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion")); + D(fprintf(stderr, "%*c> _tmp_224[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion")); Token * _keyword; expr_ty c; if ( @@ -37601,7 +37388,7 @@ _tmp_226_rule(Parser *p) (c = inversion_rule(p)) // inversion ) { - D(fprintf(stderr, "%*c+ _tmp_226[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion")); + D(fprintf(stderr, "%*c+ _tmp_224[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -37611,7 +37398,7 @@ _tmp_226_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_226[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_224[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion")); } _res = NULL; @@ -37620,9 +37407,9 @@ _tmp_226_rule(Parser *p) return _res; } -// _tmp_227: slice | starred_expression +// _tmp_225: slice | starred_expression static void * -_tmp_227_rule(Parser *p) +_tmp_225_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37639,18 +37426,18 @@ _tmp_227_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_227[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice")); + D(fprintf(stderr, "%*c> _tmp_225[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice")); expr_ty slice_var; if ( (slice_var = slice_rule(p)) // slice ) { - D(fprintf(stderr, "%*c+ _tmp_227[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice")); + D(fprintf(stderr, "%*c+ _tmp_225[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice")); _res = slice_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_227[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_225[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice")); } { // starred_expression @@ -37658,18 +37445,18 @@ _tmp_227_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_227[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression")); + D(fprintf(stderr, "%*c> _tmp_225[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression")); expr_ty starred_expression_var; if ( (starred_expression_var = starred_expression_rule(p)) // starred_expression ) { - D(fprintf(stderr, "%*c+ _tmp_227[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression")); + D(fprintf(stderr, "%*c+ _tmp_225[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression")); _res = starred_expression_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_227[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_225[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression")); } _res = NULL; @@ -37678,9 +37465,9 @@ _tmp_227_rule(Parser *p) return _res; } -// _tmp_228: 'if' disjunction +// _tmp_226: 'if' disjunction static void * -_tmp_228_rule(Parser *p) +_tmp_226_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37697,7 +37484,7 @@ _tmp_228_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_228[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); + D(fprintf(stderr, "%*c> _tmp_226[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); Token * _keyword; expr_ty z; if ( @@ -37706,7 +37493,7 @@ _tmp_228_rule(Parser *p) (z = disjunction_rule(p)) // disjunction ) { - D(fprintf(stderr, "%*c+ _tmp_228[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); + D(fprintf(stderr, "%*c+ _tmp_226[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); _res = z; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -37716,7 +37503,7 @@ _tmp_228_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_228[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_226[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction")); } _res = NULL; @@ -37725,9 +37512,9 @@ _tmp_228_rule(Parser *p) return _res; } -// _tmp_229: 'if' disjunction +// _tmp_227: 'if' disjunction static void * -_tmp_229_rule(Parser *p) +_tmp_227_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37744,7 +37531,7 @@ _tmp_229_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_229[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); + D(fprintf(stderr, "%*c> _tmp_227[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); Token * _keyword; expr_ty z; if ( @@ -37753,7 +37540,7 @@ _tmp_229_rule(Parser *p) (z = disjunction_rule(p)) // disjunction ) { - D(fprintf(stderr, "%*c+ _tmp_229[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); + D(fprintf(stderr, "%*c+ _tmp_227[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); _res = z; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -37763,7 +37550,7 @@ _tmp_229_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_229[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_227[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction")); } _res = NULL; @@ -37772,9 +37559,9 @@ _tmp_229_rule(Parser *p) return _res; } -// _tmp_230: starred_expression | (assignment_expression | expression !':=') !'=' +// _tmp_228: starred_expression | (assignment_expression | expression !':=') !'=' static void * -_tmp_230_rule(Parser *p) +_tmp_228_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37791,18 +37578,18 @@ _tmp_230_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_230[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression")); + D(fprintf(stderr, "%*c> _tmp_228[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression")); expr_ty starred_expression_var; if ( (starred_expression_var = starred_expression_rule(p)) // starred_expression ) { - D(fprintf(stderr, "%*c+ _tmp_230[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression")); + D(fprintf(stderr, "%*c+ _tmp_228[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression")); _res = starred_expression_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_230[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_228[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression")); } { // (assignment_expression | expression !':=') !'=' @@ -37810,20 +37597,20 @@ _tmp_230_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_230[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='")); - void *_tmp_243_var; + D(fprintf(stderr, "%*c> _tmp_228[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='")); + void *_tmp_241_var; if ( - (_tmp_243_var = _tmp_243_rule(p)) // assignment_expression | expression !':=' + (_tmp_241_var = _tmp_241_rule(p)) // assignment_expression | expression !':=' && _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_230[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='")); - _res = _tmp_243_var; + D(fprintf(stderr, "%*c+ _tmp_228[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='")); + _res = _tmp_241_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_230[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_228[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(assignment_expression | expression !':=') !'='")); } _res = NULL; @@ -37832,9 +37619,9 @@ _tmp_230_rule(Parser *p) return _res; } -// _tmp_231: ',' star_target +// _tmp_229: ',' star_target static void * -_tmp_231_rule(Parser *p) +_tmp_229_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37851,7 +37638,7 @@ _tmp_231_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_231[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target")); + D(fprintf(stderr, "%*c> _tmp_229[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target")); Token * _literal; expr_ty c; if ( @@ -37860,7 +37647,7 @@ _tmp_231_rule(Parser *p) (c = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_231[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target")); + D(fprintf(stderr, "%*c+ _tmp_229[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -37870,7 +37657,7 @@ _tmp_231_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_231[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_229[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target")); } _res = NULL; @@ -37879,9 +37666,9 @@ _tmp_231_rule(Parser *p) return _res; } -// _tmp_232: ',' star_target +// _tmp_230: ',' star_target static void * -_tmp_232_rule(Parser *p) +_tmp_230_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37898,7 +37685,7 @@ _tmp_232_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_232[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target")); + D(fprintf(stderr, "%*c> _tmp_230[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target")); Token * _literal; expr_ty c; if ( @@ -37907,7 +37694,7 @@ _tmp_232_rule(Parser *p) (c = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_232[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target")); + D(fprintf(stderr, "%*c+ _tmp_230[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -37917,7 +37704,7 @@ _tmp_232_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_232[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_230[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target")); } _res = NULL; @@ -37926,9 +37713,9 @@ _tmp_232_rule(Parser *p) return _res; } -// _tmp_233: star_targets '=' +// _tmp_231: star_targets '=' static void * -_tmp_233_rule(Parser *p) +_tmp_231_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37945,7 +37732,7 @@ _tmp_233_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_233[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c> _tmp_231[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); Token * _literal; expr_ty star_targets_var; if ( @@ -37954,12 +37741,12 @@ _tmp_233_rule(Parser *p) (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_233[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c+ _tmp_231[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); _res = _PyPegen_dummy_name(p, star_targets_var, _literal); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_233[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_231[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='")); } _res = NULL; @@ -37968,9 +37755,9 @@ _tmp_233_rule(Parser *p) return _res; } -// _tmp_234: star_targets '=' +// _tmp_232: star_targets '=' static void * -_tmp_234_rule(Parser *p) +_tmp_232_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37987,7 +37774,7 @@ _tmp_234_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_234[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c> _tmp_232[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); Token * _literal; expr_ty star_targets_var; if ( @@ -37996,12 +37783,12 @@ _tmp_234_rule(Parser *p) (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_234[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c+ _tmp_232[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); _res = _PyPegen_dummy_name(p, star_targets_var, _literal); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_234[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_232[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='")); } _res = NULL; @@ -38010,9 +37797,9 @@ _tmp_234_rule(Parser *p) return _res; } -// _tmp_235: ')' | '**' +// _tmp_233: ')' | '**' static void * -_tmp_235_rule(Parser *p) +_tmp_233_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38029,18 +37816,18 @@ _tmp_235_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_235[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c> _tmp_233[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 8)) // token=')' ) { - D(fprintf(stderr, "%*c+ _tmp_235[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c+ _tmp_233[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_235[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_233[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } { // '**' @@ -38048,18 +37835,18 @@ _tmp_235_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_235[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c> _tmp_233[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 35)) // token='**' ) { - D(fprintf(stderr, "%*c+ _tmp_235[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c+ _tmp_233[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_235[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_233[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'")); } _res = NULL; @@ -38068,9 +37855,9 @@ _tmp_235_rule(Parser *p) return _res; } -// _tmp_236: ':' | '**' +// _tmp_234: ':' | '**' static void * -_tmp_236_rule(Parser *p) +_tmp_234_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38087,18 +37874,18 @@ _tmp_236_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_236[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_234[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_236[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_234[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_236[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_234[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } { // '**' @@ -38106,18 +37893,18 @@ _tmp_236_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_236[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c> _tmp_234[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 35)) // token='**' ) { - D(fprintf(stderr, "%*c+ _tmp_236[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c+ _tmp_234[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_236[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_234[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'")); } _res = NULL; @@ -38126,9 +37913,9 @@ _tmp_236_rule(Parser *p) return _res; } -// _tmp_237: expression ['as' star_target] +// _tmp_235: expression ['as' star_target] static void * -_tmp_237_rule(Parser *p) +_tmp_235_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38145,22 +37932,22 @@ _tmp_237_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_237[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); + D(fprintf(stderr, "%*c> _tmp_235[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings expr_ty expression_var; if ( (expression_var = expression_rule(p)) // expression && - (_opt_var = _tmp_244_rule(p), !p->error_indicator) // ['as' star_target] + (_opt_var = _tmp_242_rule(p), !p->error_indicator) // ['as' star_target] ) { - D(fprintf(stderr, "%*c+ _tmp_237[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); + D(fprintf(stderr, "%*c+ _tmp_235[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); _res = _PyPegen_dummy_name(p, expression_var, _opt_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_237[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_235[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]")); } _res = NULL; @@ -38169,9 +37956,9 @@ _tmp_237_rule(Parser *p) return _res; } -// _tmp_238: expressions ['as' star_target] +// _tmp_236: expressions ['as' star_target] static void * -_tmp_238_rule(Parser *p) +_tmp_236_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38188,22 +37975,22 @@ _tmp_238_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_238[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); + D(fprintf(stderr, "%*c> _tmp_236[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings expr_ty expressions_var; if ( (expressions_var = expressions_rule(p)) // expressions && - (_opt_var = _tmp_245_rule(p), !p->error_indicator) // ['as' star_target] + (_opt_var = _tmp_243_rule(p), !p->error_indicator) // ['as' star_target] ) { - D(fprintf(stderr, "%*c+ _tmp_238[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); + D(fprintf(stderr, "%*c+ _tmp_236[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); _res = _PyPegen_dummy_name(p, expressions_var, _opt_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_238[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_236[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]")); } _res = NULL; @@ -38212,9 +37999,9 @@ _tmp_238_rule(Parser *p) return _res; } -// _tmp_239: expression ['as' star_target] +// _tmp_237: expression ['as' star_target] static void * -_tmp_239_rule(Parser *p) +_tmp_237_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38231,22 +38018,22 @@ _tmp_239_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_239[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); + D(fprintf(stderr, "%*c> _tmp_237[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings expr_ty expression_var; if ( (expression_var = expression_rule(p)) // expression && - (_opt_var = _tmp_246_rule(p), !p->error_indicator) // ['as' star_target] + (_opt_var = _tmp_244_rule(p), !p->error_indicator) // ['as' star_target] ) { - D(fprintf(stderr, "%*c+ _tmp_239[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); + D(fprintf(stderr, "%*c+ _tmp_237[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); _res = _PyPegen_dummy_name(p, expression_var, _opt_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_239[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_237[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]")); } _res = NULL; @@ -38255,9 +38042,9 @@ _tmp_239_rule(Parser *p) return _res; } -// _tmp_240: expressions ['as' star_target] +// _tmp_238: expressions ['as' star_target] static void * -_tmp_240_rule(Parser *p) +_tmp_238_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38274,22 +38061,22 @@ _tmp_240_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_240[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); + D(fprintf(stderr, "%*c> _tmp_238[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings expr_ty expressions_var; if ( (expressions_var = expressions_rule(p)) // expressions && - (_opt_var = _tmp_247_rule(p), !p->error_indicator) // ['as' star_target] + (_opt_var = _tmp_245_rule(p), !p->error_indicator) // ['as' star_target] ) { - D(fprintf(stderr, "%*c+ _tmp_240[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); + D(fprintf(stderr, "%*c+ _tmp_238[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); _res = _PyPegen_dummy_name(p, expressions_var, _opt_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_240[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_238[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]")); } _res = NULL; @@ -38298,9 +38085,9 @@ _tmp_240_rule(Parser *p) return _res; } -// _tmp_241: except_block+ except_star_block +// _tmp_239: except_block+ except_star_block static void * -_tmp_241_rule(Parser *p) +_tmp_239_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38317,21 +38104,21 @@ _tmp_241_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_241[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block+ except_star_block")); - asdl_seq * _loop1_248_var; + D(fprintf(stderr, "%*c> _tmp_239[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block+ except_star_block")); + asdl_seq * _loop1_246_var; excepthandler_ty except_star_block_var; if ( - (_loop1_248_var = _loop1_248_rule(p)) // except_block+ + (_loop1_246_var = _loop1_246_rule(p)) // except_block+ && (except_star_block_var = except_star_block_rule(p)) // except_star_block ) { - D(fprintf(stderr, "%*c+ _tmp_241[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "except_block+ except_star_block")); - _res = _PyPegen_dummy_name(p, _loop1_248_var, except_star_block_var); + D(fprintf(stderr, "%*c+ _tmp_239[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "except_block+ except_star_block")); + _res = _PyPegen_dummy_name(p, _loop1_246_var, except_star_block_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_241[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_239[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block+ except_star_block")); } _res = NULL; @@ -38340,9 +38127,9 @@ _tmp_241_rule(Parser *p) return _res; } -// _tmp_242: except_star_block+ except_block +// _tmp_240: except_star_block+ except_block static void * -_tmp_242_rule(Parser *p) +_tmp_240_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38359,21 +38146,21 @@ _tmp_242_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_242[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_star_block+ except_block")); - asdl_seq * _loop1_249_var; + D(fprintf(stderr, "%*c> _tmp_240[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_star_block+ except_block")); + asdl_seq * _loop1_247_var; excepthandler_ty except_block_var; if ( - (_loop1_249_var = _loop1_249_rule(p)) // except_star_block+ + (_loop1_247_var = _loop1_247_rule(p)) // except_star_block+ && (except_block_var = except_block_rule(p)) // except_block ) { - D(fprintf(stderr, "%*c+ _tmp_242[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "except_star_block+ except_block")); - _res = _PyPegen_dummy_name(p, _loop1_249_var, except_block_var); + D(fprintf(stderr, "%*c+ _tmp_240[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "except_star_block+ except_block")); + _res = _PyPegen_dummy_name(p, _loop1_247_var, except_block_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_242[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_240[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_star_block+ except_block")); } _res = NULL; @@ -38382,9 +38169,9 @@ _tmp_242_rule(Parser *p) return _res; } -// _tmp_243: assignment_expression | expression !':=' +// _tmp_241: assignment_expression | expression !':=' static void * -_tmp_243_rule(Parser *p) +_tmp_241_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38401,18 +38188,18 @@ _tmp_243_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_243[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression")); + D(fprintf(stderr, "%*c> _tmp_241[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression")); expr_ty assignment_expression_var; if ( (assignment_expression_var = assignment_expression_rule(p)) // assignment_expression ) { - D(fprintf(stderr, "%*c+ _tmp_243[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression")); + D(fprintf(stderr, "%*c+ _tmp_241[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression")); _res = assignment_expression_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_243[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_241[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression")); } { // expression !':=' @@ -38420,7 +38207,7 @@ _tmp_243_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_243[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='")); + D(fprintf(stderr, "%*c> _tmp_241[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='")); expr_ty expression_var; if ( (expression_var = expression_rule(p)) // expression @@ -38428,12 +38215,12 @@ _tmp_243_rule(Parser *p) _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':=' ) { - D(fprintf(stderr, "%*c+ _tmp_243[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='")); + D(fprintf(stderr, "%*c+ _tmp_241[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='")); _res = expression_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_243[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_241[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='")); } _res = NULL; @@ -38442,9 +38229,9 @@ _tmp_243_rule(Parser *p) return _res; } -// _tmp_244: 'as' star_target +// _tmp_242: 'as' star_target static void * -_tmp_244_rule(Parser *p) +_tmp_242_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38461,7 +38248,7 @@ _tmp_244_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_244[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c> _tmp_242[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); Token * _keyword; expr_ty star_target_var; if ( @@ -38470,12 +38257,12 @@ _tmp_244_rule(Parser *p) (star_target_var = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_244[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c+ _tmp_242[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); _res = _PyPegen_dummy_name(p, _keyword, star_target_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_244[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_242[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target")); } _res = NULL; @@ -38484,9 +38271,9 @@ _tmp_244_rule(Parser *p) return _res; } -// _tmp_245: 'as' star_target +// _tmp_243: 'as' star_target static void * -_tmp_245_rule(Parser *p) +_tmp_243_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38503,7 +38290,7 @@ _tmp_245_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_245[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c> _tmp_243[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); Token * _keyword; expr_ty star_target_var; if ( @@ -38512,12 +38299,12 @@ _tmp_245_rule(Parser *p) (star_target_var = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_245[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c+ _tmp_243[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); _res = _PyPegen_dummy_name(p, _keyword, star_target_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_245[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_243[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target")); } _res = NULL; @@ -38526,9 +38313,9 @@ _tmp_245_rule(Parser *p) return _res; } -// _tmp_246: 'as' star_target +// _tmp_244: 'as' star_target static void * -_tmp_246_rule(Parser *p) +_tmp_244_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38545,7 +38332,7 @@ _tmp_246_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_246[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c> _tmp_244[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); Token * _keyword; expr_ty star_target_var; if ( @@ -38554,12 +38341,12 @@ _tmp_246_rule(Parser *p) (star_target_var = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_246[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c+ _tmp_244[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); _res = _PyPegen_dummy_name(p, _keyword, star_target_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_246[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_244[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target")); } _res = NULL; @@ -38568,9 +38355,9 @@ _tmp_246_rule(Parser *p) return _res; } -// _tmp_247: 'as' star_target +// _tmp_245: 'as' star_target static void * -_tmp_247_rule(Parser *p) +_tmp_245_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38587,7 +38374,7 @@ _tmp_247_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_247[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c> _tmp_245[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); Token * _keyword; expr_ty star_target_var; if ( @@ -38596,12 +38383,12 @@ _tmp_247_rule(Parser *p) (star_target_var = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_247[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c+ _tmp_245[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); _res = _PyPegen_dummy_name(p, _keyword, star_target_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_247[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_245[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target")); } _res = NULL; @@ -38610,9 +38397,9 @@ _tmp_247_rule(Parser *p) return _res; } -// _loop1_248: except_block +// _loop1_246: except_block static asdl_seq * -_loop1_248_rule(Parser *p) +_loop1_246_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38639,7 +38426,7 @@ _loop1_248_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_248[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block")); + D(fprintf(stderr, "%*c> _loop1_246[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block")); excepthandler_ty except_block_var; while ( (except_block_var = except_block_rule(p)) // except_block @@ -38661,7 +38448,7 @@ _loop1_248_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_248[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_246[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block")); } if (_n == 0 || p->error_indicator) { @@ -38679,14 +38466,14 @@ _loop1_248_rule(Parser *p) } for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); PyMem_Free(_children); - _PyPegen_insert_memo(p, _start_mark, _loop1_248_type, _seq); + _PyPegen_insert_memo(p, _start_mark, _loop1_246_type, _seq); p->level--; return _seq; } -// _loop1_249: except_star_block +// _loop1_247: except_star_block static asdl_seq * -_loop1_249_rule(Parser *p) +_loop1_247_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38713,7 +38500,7 @@ _loop1_249_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_249[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_star_block")); + D(fprintf(stderr, "%*c> _loop1_247[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_star_block")); excepthandler_ty except_star_block_var; while ( (except_star_block_var = except_star_block_rule(p)) // except_star_block @@ -38735,7 +38522,7 @@ _loop1_249_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_249[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_247[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_star_block")); } if (_n == 0 || p->error_indicator) { @@ -38753,7 +38540,7 @@ _loop1_249_rule(Parser *p) } for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); PyMem_Free(_children); - _PyPegen_insert_memo(p, _start_mark, _loop1_249_type, _seq); + _PyPegen_insert_memo(p, _start_mark, _loop1_247_type, _seq); p->level--; return _seq; } diff --git a/Parser/pegen.c b/Parser/pegen.c index a5d123da51296c..ec4fee3fc4b712 100644 --- a/Parser/pegen.c +++ b/Parser/pegen.c @@ -1,6 +1,5 @@ #include <Python.h> #include "pycore_ast.h" // _PyAST_Validate(), -#include "pycore_pystate.h" // _PyThreadState_GET() #include <errcode.h> #include "tokenizer.h" @@ -78,7 +77,13 @@ init_normalization(Parser *p) if (p->normalize) { return 1; } - p->normalize = _PyImport_GetModuleAttrString("unicodedata", "normalize"); + PyObject *m = PyImport_ImportModule("unicodedata"); + if (!m) + { + return 0; + } + p->normalize = PyObject_GetAttrString(m, "normalize"); + Py_DECREF(m); if (!p->normalize) { return 0; @@ -646,28 +651,6 @@ _PyPegen_number_token(Parser *p) if (c == NULL) { p->error_indicator = 1; - PyThreadState *tstate = _PyThreadState_GET(); - // The only way a ValueError should happen in _this_ code is via - // PyLong_FromString hitting a length limit. - if (tstate->curexc_type == PyExc_ValueError && - tstate->curexc_value != NULL) { - PyObject *type, *value, *tb; - // This acts as PyErr_Clear() as we're replacing curexc. - PyErr_Fetch(&type, &value, &tb); - Py_XDECREF(tb); - Py_DECREF(type); - /* Intentionally omitting columns to avoid a wall of 1000s of '^'s - * on the error message. Nobody is going to overlook their huge - * numeric literal once given the line. */ - RAISE_ERROR_KNOWN_LOCATION( - p, PyExc_SyntaxError, - t->lineno, -1 /* col_offset */, - t->end_lineno, -1 /* end_col_offset */, - "%S - Consider hexadecimal for huge integer literals " - "to avoid decimal conversion limits.", - value); - Py_DECREF(value); - } return NULL; } @@ -761,7 +744,7 @@ _PyPegen_Parser_New(struct tok_state *tok, int start_rule, int flags, return (Parser *) PyErr_NoMemory(); } p->tokens[0] = PyMem_Calloc(1, sizeof(Token)); - if (!p->tokens[0]) { + if (!p->tokens) { PyMem_Free(p->tokens); PyMem_Free(p); return (Parser *) PyErr_NoMemory(); diff --git a/Parser/pegen_errors.c b/Parser/pegen_errors.c index 95bbd43dc32621..489699679633e9 100644 --- a/Parser/pegen_errors.c +++ b/Parser/pegen_errors.c @@ -245,7 +245,7 @@ get_error_line_from_tokenizer_buffers(Parser *p, Py_ssize_t lineno) * (multi-line) statement are stored in p->tok->interactive_src_start. * If not, we're parsing from a string, which means that the whole source * is stored in p->tok->str. */ - assert((p->tok->fp == NULL && p->tok->str != NULL) || p->tok->fp != NULL); + assert((p->tok->fp == NULL && p->tok->str != NULL) || p->tok->fp == stdin); char *cur_line = p->tok->fp_interactive ? p->tok->interactive_src_start : p->tok->str; if (cur_line == NULL) { @@ -259,15 +259,15 @@ get_error_line_from_tokenizer_buffers(Parser *p, Py_ssize_t lineno) const char* buf_end = p->tok->fp_interactive ? p->tok->interactive_src_end : p->tok->inp; for (int i = 0; i < relative_lineno - 1; i++) { - char *new_line = strchr(cur_line, '\n'); + char *new_line = strchr(cur_line, '\n') + 1; // The assert is here for debug builds but the conditional that // follows is there so in release builds we do not crash at the cost // to report a potentially wrong line. - assert(new_line != NULL && new_line + 1 < buf_end); - if (new_line == NULL || new_line + 1 > buf_end) { + assert(new_line != NULL && new_line <= buf_end); + if (new_line == NULL || new_line > buf_end) { break; } - cur_line = new_line + 1; + cur_line = new_line; } char *next_newline; @@ -371,7 +371,7 @@ _PyPegen_raise_error_known_location(Parser *p, PyObject *errtype, } } } - tmp = Py_BuildValue("(OnnNnn)", p->tok->filename, lineno, col_number, error_line, end_lineno, end_col_number); + tmp = Py_BuildValue("(OiiNii)", p->tok->filename, lineno, col_number, error_line, end_lineno, end_col_number); if (!tmp) { goto error; } diff --git a/Parser/string_parser.c b/Parser/string_parser.c index 9bc3b082136be5..9c12d8ca101d00 100644 --- a/Parser/string_parser.c +++ b/Parser/string_parser.c @@ -326,9 +326,6 @@ fstring_find_expr_location(Token *parent, const char* expr_start, char *expr_str start--; } *p_cols += (int)(expr_start - start); - if (*start == '\n') { - *p_cols -= 1; - } } /* adjust the start based on the number of newlines encountered before the f-string expression */ @@ -419,7 +416,7 @@ fstring_compile_expr(Parser *p, const char *expr_start, const char *expr_end, NULL, p->arena); p2->starting_lineno = t->lineno + lines; - p2->starting_col_offset = lines != 0 ? cols : t->col_offset + cols; + p2->starting_col_offset = t->col_offset + cols; expr = _PyPegen_run_parser(p2); @@ -759,9 +756,7 @@ fstring_find_expr(Parser *p, const char **str, const char *end, int raw, int rec while (Py_ISSPACE(**str)) { *str += 1; } - if (*str >= end) { - goto unexpected_end_of_string; - } + /* Set *expr_text to the text of the expression. */ *expr_text = PyUnicode_FromStringAndSize(expr_start, *str-expr_start); if (!*expr_text) { @@ -772,43 +767,27 @@ fstring_find_expr(Parser *p, const char **str, const char *end, int raw, int rec /* Check for a conversion char, if present. */ if (**str == '!') { *str += 1; - const char *conv_start = *str; - while (1) { - if (*str >= end) { - goto unexpected_end_of_string; - } - if (**str == '}' || **str == ':') { - break; - } - *str += 1; - } - if (*str == conv_start) { - RAISE_SYNTAX_ERROR( - "f-string: missed conversion character"); - goto error; + if (*str >= end) { + goto unexpected_end_of_string; } - conversion = (unsigned char)*conv_start; + conversion = (unsigned char)**str; + *str += 1; + /* Validate the conversion. */ - if ((*str != conv_start + 1) || - !(conversion == 's' || conversion == 'r' || conversion == 'a')) - { - PyObject *conv_obj = PyUnicode_FromStringAndSize(conv_start, - *str-conv_start); - if (conv_obj) { - RAISE_SYNTAX_ERROR( - "f-string: invalid conversion character %R: " - "expected 's', 'r', or 'a'", - conv_obj); - Py_DECREF(conv_obj); - } + if (!(conversion == 's' || conversion == 'r' || conversion == 'a')) { + RAISE_SYNTAX_ERROR( + "f-string: invalid conversion character: " + "expected 's', 'r', or 'a'"); goto error; } } /* Check for the format spec, if present. */ - assert(*str < end); + if (*str >= end) { + goto unexpected_end_of_string; + } if (**str == ':') { *str += 1; if (*str >= end) { diff --git a/Parser/tokenizer.c b/Parser/tokenizer.c index b3b11855f4effa..d5b549c8706ce5 100644 --- a/Parser/tokenizer.c +++ b/Parser/tokenizer.c @@ -308,10 +308,6 @@ tok_concatenate_interactive_new_line(struct tok_state *tok, const char *line) { Py_ssize_t current_size = tok->interactive_src_end - tok->interactive_src_start; Py_ssize_t line_size = strlen(line); - char last_char = line[line_size > 0 ? line_size - 1 : line_size]; - if (last_char != '\n') { - line_size += 1; - } char* new_str = tok->interactive_src_start; new_str = PyMem_Realloc(new_str, current_size + line_size + 1); @@ -325,11 +321,7 @@ tok_concatenate_interactive_new_line(struct tok_state *tok, const char *line) { return -1; } strcpy(new_str + current_size, line); - if (last_char != '\n') { - /* Last line does not end in \n, fake one */ - new_str[current_size + line_size - 1] = '\n'; - new_str[current_size + line_size] = '\0'; - } + tok->interactive_src_start = new_str; tok->interactive_src_end = new_str + current_size + line_size; return 0; @@ -429,7 +421,7 @@ tok_readline_recode(struct tok_state *tok) { static int fp_setreadl(struct tok_state *tok, const char* enc) { - PyObject *readline, *open, *stream; + PyObject *readline, *io, *stream; int fd; long pos; @@ -446,13 +438,13 @@ fp_setreadl(struct tok_state *tok, const char* enc) return 0; } - open = _PyImport_GetModuleAttrString("io", "open"); - if (open == NULL) { + io = PyImport_ImportModule("io"); + if (io == NULL) { return 0; } - stream = PyObject_CallFunction(open, "isisOOO", + stream = _PyObject_CallMethod(io, &_Py_ID(open), "isisOOO", fd, "r", -1, enc, Py_None, Py_None, Py_False); - Py_DECREF(open); + Py_DECREF(io); if (stream == NULL) { return 0; } @@ -489,59 +481,25 @@ static void fp_ungetc(int c, struct tok_state *tok) { /* Check whether the characters at s start a valid UTF-8 sequence. Return the number of characters forming - the sequence if yes, 0 if not. The special cases match - those in stringlib/codecs.h:utf8_decode. -*/ -static int -valid_utf8(const unsigned char* s) + the sequence if yes, 0 if not. */ +static int valid_utf8(const unsigned char* s) { int expected = 0; int length; - if (*s < 0x80) { + if (*s < 0x80) /* single-byte code */ return 1; - } - else if (*s < 0xE0) { - /* \xC2\x80-\xDF\xBF -- 0080-07FF */ - if (*s < 0xC2) { - /* invalid sequence - \x80-\xBF -- continuation byte - \xC0-\xC1 -- fake 0000-007F */ - return 0; - } + if (*s < 0xc0) + /* following byte */ + return 0; + if (*s < 0xE0) expected = 1; - } - else if (*s < 0xF0) { - /* \xE0\xA0\x80-\xEF\xBF\xBF -- 0800-FFFF */ - if (*s == 0xE0 && *(s + 1) < 0xA0) { - /* invalid sequence - \xE0\x80\x80-\xE0\x9F\xBF -- fake 0000-0800 */ - return 0; - } - else if (*s == 0xED && *(s + 1) >= 0xA0) { - /* Decoding UTF-8 sequences in range \xED\xA0\x80-\xED\xBF\xBF - will result in surrogates in range D800-DFFF. Surrogates are - not valid UTF-8 so they are rejected. - See https://www.unicode.org/versions/Unicode5.2.0/ch03.pdf - (table 3-7) and http://www.rfc-editor.org/rfc/rfc3629.txt */ - return 0; - } + else if (*s < 0xF0) expected = 2; - } - else if (*s < 0xF5) { - /* \xF0\x90\x80\x80-\xF4\x8F\xBF\xBF -- 10000-10FFFF */ - if (*(s + 1) < 0x90 ? *s == 0xF0 : *s == 0xF4) { - /* invalid sequence -- one of: - \xF0\x80\x80\x80-\xF0\x8F\xBF\xBF -- fake 0000-FFFF - \xF4\x90\x80\x80- -- 110000- overflow */ - return 0; - } + else if (*s < 0xF8) expected = 3; - } - else { - /* invalid start byte */ + else return 0; - } length = expected + 1; for (; expected; expected--) if (s[expected] < 0x80 || s[expected] >= 0xC0) @@ -562,12 +520,14 @@ ensure_utf8(char *line, struct tok_state *tok) } } if (badchar) { + /* Need to add 1 to the line number, since this line + has not been counted, yet. */ PyErr_Format(PyExc_SyntaxError, "Non-UTF-8 code starting with '\\x%.2x' " "in file %U on line %i, " "but no encoding declared; " "see https://peps.python.org/pep-0263/ for details", - badchar, tok->filename, tok->lineno); + badchar, tok->filename, tok->lineno + 1); return 0; } return 1; @@ -1533,7 +1493,7 @@ tok_get(struct tok_state *tok, const char **p_start, const char **p_end) } while (c == ' ' || c == '\t' || c == '\014'); /* Set start of current token */ - tok->start = tok->cur == NULL ? NULL : tok->cur - 1; + tok->start = tok->cur - 1; /* Skip comment, unless it's a type comment */ if (c == '#') { @@ -1968,8 +1928,6 @@ tok_get(struct tok_state *tok, const char **p_start, const char **p_end) /* Get rest of string */ while (end_quote_size != quote_size) { c = tok_nextc(tok); - if (tok->done == E_DECODE) - break; if (c == EOF || (quote_size == 1 && c == '\n')) { assert(tok->multi_line_start != NULL); // shift the tok_state's location into diff --git a/Programs/_testembed.c b/Programs/_testembed.c index a2a2ff40b2774b..9d3d0cbddf0e53 100644 --- a/Programs/_testembed.c +++ b/Programs/_testembed.c @@ -279,7 +279,7 @@ static int test_pre_initialization_sys_options(void) * relying on the caller to keep the passed in strings alive. */ const wchar_t *static_warnoption = L"once"; - const wchar_t *static_xoption = L"also_not_an_option=2"; + const wchar_t *static_xoption = L"utf8=1"; size_t warnoption_len = wcslen(static_warnoption); size_t xoption_len = wcslen(static_xoption); wchar_t *dynamic_once_warnoption = \ @@ -298,7 +298,7 @@ static int test_pre_initialization_sys_options(void) PySys_AddWarnOption(L"module"); PySys_AddWarnOption(L"default"); _Py_EMBED_PREINIT_CHECK("Checking PySys_AddXOption\n"); - PySys_AddXOption(L"not_an_option=1"); + PySys_AddXOption(L"dev=2"); PySys_AddXOption(dynamic_xoption); /* Delete the dynamic options early */ @@ -368,8 +368,6 @@ static int test_bpo20891(void) PyThread_free_lock(lock); - Py_Finalize(); - return 0; } @@ -591,7 +589,7 @@ static int test_init_from_config(void) L"-W", L"cmdline_warnoption", L"-X", - L"cmdline_xoption", + L"dev", L"-c", L"pass", L"arg2", @@ -599,10 +597,9 @@ static int test_init_from_config(void) config_set_argv(&config, Py_ARRAY_LENGTH(argv), argv); config.parse_argv = 1; - wchar_t* xoptions[3] = { - L"config_xoption1=3", - L"config_xoption2=", - L"config_xoption3", + wchar_t* xoptions[2] = { + L"dev=3", + L"utf8", }; config_set_wide_string_list(&config, &config.xoptions, Py_ARRAY_LENGTH(xoptions), xoptions); @@ -1426,7 +1423,6 @@ static int test_init_read_set(void) static int test_init_sys_add(void) { - PySys_AddXOption(L"sysadd_xoption"); PySys_AddXOption(L"faulthandler"); PySys_AddWarnOption(L"ignore:::sysadd_warnoption"); @@ -1438,14 +1434,14 @@ static int test_init_sys_add(void) L"-W", L"ignore:::cmdline_warnoption", L"-X", - L"cmdline_xoption", + L"utf8", }; config_set_argv(&config, Py_ARRAY_LENGTH(argv), argv); config.parse_argv = 1; PyStatus status; status = PyWideStringList_Append(&config.xoptions, - L"config_xoption"); + L"dev"); if (PyStatus_Exception(status)) { goto fail; } @@ -1554,46 +1550,6 @@ static int test_init_setpythonhome(void) } -static int test_init_is_python_build(void) -{ - // gh-91985: in-tree builds fail to check for build directory landmarks - // under the effect of 'home' or PYTHONHOME environment variable. - char *env = getenv("TESTHOME"); - if (!env) { - error("missing TESTHOME env var"); - return 1; - } - wchar_t *home = Py_DecodeLocale(env, NULL); - if (home == NULL) { - error("failed to decode TESTHOME"); - return 1; - } - - PyConfig config; - _PyConfig_InitCompatConfig(&config); - config_set_program_name(&config); - config_set_string(&config, &config.home, home); - PyMem_RawFree(home); - putenv("TESTHOME="); - - // Use an impossible value so we can detect whether it isn't updated - // during initialization. - config._is_python_build = INT_MAX; - env = getenv("NEGATIVE_ISPYTHONBUILD"); - if (env && strcmp(env, "0") != 0) { - config._is_python_build = INT_MIN; - } - init_from_config_clear(&config); - Py_Finalize(); - // Second initialization - config._is_python_build = -1; - init_from_config_clear(&config); - dump_config(); // home and _is_python_build are cached in _Py_path_config - Py_Finalize(); - return 0; -} - - static int test_init_warnoptions(void) { putenv("PYTHONWARNINGS=ignore:::env1,ignore:::env2"); @@ -2009,7 +1965,6 @@ static struct TestCase TestCases[] = { {"test_init_setpath", test_init_setpath}, {"test_init_setpath_config", test_init_setpath_config}, {"test_init_setpythonhome", test_init_setpythonhome}, - {"test_init_is_python_build", test_init_is_python_build}, {"test_init_warnoptions", test_init_warnoptions}, {"test_init_set_config", test_init_set_config}, {"test_run_main", test_run_main}, diff --git a/Programs/test_frozenmain.h b/Programs/test_frozenmain.h index 677ce180f95fdd..e6e2ef26b1c373 100644 --- a/Programs/test_frozenmain.h +++ b/Programs/test_frozenmain.h @@ -1,42 +1,40 @@ // Auto-generated by Programs/freeze_test_frozenmain.py unsigned char M_test_frozenmain[] = { 227,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0, - 0,0,0,0,0,243,182,0,0,0,151,0,100,0,100,1, + 0,0,0,0,0,115,160,0,0,0,151,0,100,0,100,1, 108,0,90,0,100,0,100,1,108,1,90,1,2,0,101,2, 100,2,171,1,0,0,0,0,0,0,0,0,1,0,2,0, - 101,2,100,3,101,0,106,6,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,171,2,0,0,0,0, - 0,0,0,0,1,0,2,0,101,1,106,8,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,0, - 0,0,0,0,0,0,0,0,100,4,25,0,0,0,0,0, - 0,0,0,0,90,5,100,5,68,0,93,23,0,0,90,6, - 2,0,101,2,100,6,101,6,155,0,100,7,101,5,101,6, - 25,0,0,0,0,0,0,0,0,0,155,0,157,4,171,1, - 0,0,0,0,0,0,0,0,1,0,140,25,100,1,83,0, - 41,8,233,0,0,0,0,78,122,18,70,114,111,122,101,110, - 32,72,101,108,108,111,32,87,111,114,108,100,122,8,115,121, - 115,46,97,114,103,118,218,6,99,111,110,102,105,103,41,5, - 218,12,112,114,111,103,114,97,109,95,110,97,109,101,218,10, - 101,120,101,99,117,116,97,98,108,101,218,15,117,115,101,95, - 101,110,118,105,114,111,110,109,101,110,116,218,17,99,111,110, - 102,105,103,117,114,101,95,99,95,115,116,100,105,111,218,14, - 98,117,102,102,101,114,101,100,95,115,116,100,105,111,122,7, - 99,111,110,102,105,103,32,122,2,58,32,41,7,218,3,115, - 121,115,218,17,95,116,101,115,116,105,110,116,101,114,110,97, - 108,99,97,112,105,218,5,112,114,105,110,116,218,4,97,114, - 103,118,218,11,103,101,116,95,99,111,110,102,105,103,115,114, - 3,0,0,0,218,3,107,101,121,169,0,243,0,0,0,0, - 250,18,116,101,115,116,95,102,114,111,122,101,110,109,97,105, - 110,46,112,121,250,8,60,109,111,100,117,108,101,62,114,18, - 0,0,0,1,0,0,0,115,149,0,0,0,240,3,1,1, - 1,240,8,0,1,11,128,10,128,10,128,10,216,0,24,208, - 0,24,208,0,24,208,0,24,224,0,5,128,5,208,6,26, - 212,0,27,208,0,27,216,0,5,128,5,128,106,144,35,151, - 40,145,40,212,0,27,208,0,27,216,9,38,208,9,26,215, - 9,38,209,9,38,212,9,40,168,24,212,9,50,128,6,240, - 2,6,12,2,240,0,7,1,42,241,0,7,1,42,128,67, - 240,14,0,5,10,128,69,208,10,40,144,67,208,10,40,208, - 10,40,152,54,160,35,156,59,208,10,40,208,10,40,212,4, - 41,208,4,41,208,4,41,240,15,7,1,42,240,0,7,1, - 42,114,16,0,0,0, + 101,2,100,3,101,0,106,3,0,0,0,0,0,0,0,0, + 171,2,0,0,0,0,0,0,0,0,1,0,2,0,101,1, + 106,4,0,0,0,0,0,0,0,0,171,0,0,0,0,0, + 0,0,0,0,100,4,25,0,0,0,0,0,0,0,0,0, + 90,5,100,5,68,0,93,23,90,6,2,0,101,2,100,6, + 101,6,155,0,100,7,101,5,101,6,25,0,0,0,0,0, + 0,0,0,0,155,0,157,4,171,1,0,0,0,0,0,0, + 0,0,1,0,140,24,100,1,83,0,41,8,233,0,0,0, + 0,78,122,18,70,114,111,122,101,110,32,72,101,108,108,111, + 32,87,111,114,108,100,122,8,115,121,115,46,97,114,103,118, + 218,6,99,111,110,102,105,103,41,5,218,12,112,114,111,103, + 114,97,109,95,110,97,109,101,218,10,101,120,101,99,117,116, + 97,98,108,101,218,15,117,115,101,95,101,110,118,105,114,111, + 110,109,101,110,116,218,17,99,111,110,102,105,103,117,114,101, + 95,99,95,115,116,100,105,111,218,14,98,117,102,102,101,114, + 101,100,95,115,116,100,105,111,122,7,99,111,110,102,105,103, + 32,122,2,58,32,41,7,218,3,115,121,115,218,17,95,116, + 101,115,116,105,110,116,101,114,110,97,108,99,97,112,105,218, + 5,112,114,105,110,116,218,4,97,114,103,118,218,11,103,101, + 116,95,99,111,110,102,105,103,115,114,2,0,0,0,218,3, + 107,101,121,169,0,243,0,0,0,0,250,18,116,101,115,116, + 95,102,114,111,122,101,110,109,97,105,110,46,112,121,250,8, + 60,109,111,100,117,108,101,62,114,17,0,0,0,1,0,0, + 0,115,140,0,0,0,248,240,6,0,1,11,128,10,128,10, + 128,10,216,0,24,208,0,24,208,0,24,208,0,24,224,0, + 5,128,5,208,6,26,212,0,27,208,0,27,216,0,5,128, + 5,128,106,144,35,148,40,212,0,27,208,0,27,216,9,38, + 208,9,26,212,9,38,212,9,40,168,24,212,9,50,128,6, + 240,2,6,12,2,240,0,7,1,42,240,0,7,1,42,128, + 67,240,14,0,5,10,128,69,208,10,40,144,67,208,10,40, + 208,10,40,152,54,160,35,156,59,208,10,40,208,10,40,212, + 4,41,208,4,41,208,4,41,240,15,7,1,42,240,0,7, + 1,42,114,15,0,0,0, }; diff --git a/Python/Python-ast.c b/Python/Python-ast.c index f485af675ccff7..3861eaf978a38f 100644 --- a/Python/Python-ast.c +++ b/Python/Python-ast.c @@ -1851,8 +1851,6 @@ init_types(struct ast_state *state) "TypeIgnore(int lineno, string tag)"); if (!state->TypeIgnore_type) return 0; - state->recursion_depth = 0; - state->recursion_limit = 0; state->initialized = 1; return 1; } @@ -3612,11 +3610,6 @@ ast2obj_mod(struct ast_state *state, void* _o) if (!o) { Py_RETURN_NONE; } - if (++state->recursion_depth > state->recursion_limit) { - PyErr_SetString(PyExc_RecursionError, - "maximum recursion depth exceeded during ast construction"); - return 0; - } switch (o->kind) { case Module_kind: tp = (PyTypeObject *)state->Module_type; @@ -3672,7 +3665,6 @@ ast2obj_mod(struct ast_state *state, void* _o) Py_DECREF(value); break; } - state->recursion_depth--; return result; failed: Py_XDECREF(value); @@ -3689,11 +3681,6 @@ ast2obj_stmt(struct ast_state *state, void* _o) if (!o) { Py_RETURN_NONE; } - if (++state->recursion_depth > state->recursion_limit) { - PyErr_SetString(PyExc_RecursionError, - "maximum recursion depth exceeded during ast construction"); - return 0; - } switch (o->kind) { case FunctionDef_kind: tp = (PyTypeObject *)state->FunctionDef_type; @@ -4237,7 +4224,6 @@ ast2obj_stmt(struct ast_state *state, void* _o) if (PyObject_SetAttr(result, state->end_col_offset, value) < 0) goto failed; Py_DECREF(value); - state->recursion_depth--; return result; failed: Py_XDECREF(value); @@ -4254,11 +4240,6 @@ ast2obj_expr(struct ast_state *state, void* _o) if (!o) { Py_RETURN_NONE; } - if (++state->recursion_depth > state->recursion_limit) { - PyErr_SetString(PyExc_RecursionError, - "maximum recursion depth exceeded during ast construction"); - return 0; - } switch (o->kind) { case BoolOp_kind: tp = (PyTypeObject *)state->BoolOp_type; @@ -4720,7 +4701,6 @@ ast2obj_expr(struct ast_state *state, void* _o) if (PyObject_SetAttr(result, state->end_col_offset, value) < 0) goto failed; Py_DECREF(value); - state->recursion_depth--; return result; failed: Py_XDECREF(value); @@ -4863,11 +4843,6 @@ ast2obj_comprehension(struct ast_state *state, void* _o) if (!o) { Py_RETURN_NONE; } - if (++state->recursion_depth > state->recursion_limit) { - PyErr_SetString(PyExc_RecursionError, - "maximum recursion depth exceeded during ast construction"); - return 0; - } tp = (PyTypeObject *)state->comprehension_type; result = PyType_GenericNew(tp, NULL, NULL); if (!result) return NULL; @@ -4891,7 +4866,6 @@ ast2obj_comprehension(struct ast_state *state, void* _o) if (PyObject_SetAttr(result, state->is_async, value) == -1) goto failed; Py_DECREF(value); - state->recursion_depth--; return result; failed: Py_XDECREF(value); @@ -4908,11 +4882,6 @@ ast2obj_excepthandler(struct ast_state *state, void* _o) if (!o) { Py_RETURN_NONE; } - if (++state->recursion_depth > state->recursion_limit) { - PyErr_SetString(PyExc_RecursionError, - "maximum recursion depth exceeded during ast construction"); - return 0; - } switch (o->kind) { case ExceptHandler_kind: tp = (PyTypeObject *)state->ExceptHandler_type; @@ -4956,7 +4925,6 @@ ast2obj_excepthandler(struct ast_state *state, void* _o) if (PyObject_SetAttr(result, state->end_col_offset, value) < 0) goto failed; Py_DECREF(value); - state->recursion_depth--; return result; failed: Py_XDECREF(value); @@ -4973,11 +4941,6 @@ ast2obj_arguments(struct ast_state *state, void* _o) if (!o) { Py_RETURN_NONE; } - if (++state->recursion_depth > state->recursion_limit) { - PyErr_SetString(PyExc_RecursionError, - "maximum recursion depth exceeded during ast construction"); - return 0; - } tp = (PyTypeObject *)state->arguments_type; result = PyType_GenericNew(tp, NULL, NULL); if (!result) return NULL; @@ -5016,7 +4979,6 @@ ast2obj_arguments(struct ast_state *state, void* _o) if (PyObject_SetAttr(result, state->defaults, value) == -1) goto failed; Py_DECREF(value); - state->recursion_depth--; return result; failed: Py_XDECREF(value); @@ -5033,11 +4995,6 @@ ast2obj_arg(struct ast_state *state, void* _o) if (!o) { Py_RETURN_NONE; } - if (++state->recursion_depth > state->recursion_limit) { - PyErr_SetString(PyExc_RecursionError, - "maximum recursion depth exceeded during ast construction"); - return 0; - } tp = (PyTypeObject *)state->arg_type; result = PyType_GenericNew(tp, NULL, NULL); if (!result) return NULL; @@ -5076,7 +5033,6 @@ ast2obj_arg(struct ast_state *state, void* _o) if (PyObject_SetAttr(result, state->end_col_offset, value) < 0) goto failed; Py_DECREF(value); - state->recursion_depth--; return result; failed: Py_XDECREF(value); @@ -5093,11 +5049,6 @@ ast2obj_keyword(struct ast_state *state, void* _o) if (!o) { Py_RETURN_NONE; } - if (++state->recursion_depth > state->recursion_limit) { - PyErr_SetString(PyExc_RecursionError, - "maximum recursion depth exceeded during ast construction"); - return 0; - } tp = (PyTypeObject *)state->keyword_type; result = PyType_GenericNew(tp, NULL, NULL); if (!result) return NULL; @@ -5131,7 +5082,6 @@ ast2obj_keyword(struct ast_state *state, void* _o) if (PyObject_SetAttr(result, state->end_col_offset, value) < 0) goto failed; Py_DECREF(value); - state->recursion_depth--; return result; failed: Py_XDECREF(value); @@ -5148,11 +5098,6 @@ ast2obj_alias(struct ast_state *state, void* _o) if (!o) { Py_RETURN_NONE; } - if (++state->recursion_depth > state->recursion_limit) { - PyErr_SetString(PyExc_RecursionError, - "maximum recursion depth exceeded during ast construction"); - return 0; - } tp = (PyTypeObject *)state->alias_type; result = PyType_GenericNew(tp, NULL, NULL); if (!result) return NULL; @@ -5186,7 +5131,6 @@ ast2obj_alias(struct ast_state *state, void* _o) if (PyObject_SetAttr(result, state->end_col_offset, value) < 0) goto failed; Py_DECREF(value); - state->recursion_depth--; return result; failed: Py_XDECREF(value); @@ -5203,11 +5147,6 @@ ast2obj_withitem(struct ast_state *state, void* _o) if (!o) { Py_RETURN_NONE; } - if (++state->recursion_depth > state->recursion_limit) { - PyErr_SetString(PyExc_RecursionError, - "maximum recursion depth exceeded during ast construction"); - return 0; - } tp = (PyTypeObject *)state->withitem_type; result = PyType_GenericNew(tp, NULL, NULL); if (!result) return NULL; @@ -5221,7 +5160,6 @@ ast2obj_withitem(struct ast_state *state, void* _o) if (PyObject_SetAttr(result, state->optional_vars, value) == -1) goto failed; Py_DECREF(value); - state->recursion_depth--; return result; failed: Py_XDECREF(value); @@ -5238,11 +5176,6 @@ ast2obj_match_case(struct ast_state *state, void* _o) if (!o) { Py_RETURN_NONE; } - if (++state->recursion_depth > state->recursion_limit) { - PyErr_SetString(PyExc_RecursionError, - "maximum recursion depth exceeded during ast construction"); - return 0; - } tp = (PyTypeObject *)state->match_case_type; result = PyType_GenericNew(tp, NULL, NULL); if (!result) return NULL; @@ -5261,7 +5194,6 @@ ast2obj_match_case(struct ast_state *state, void* _o) if (PyObject_SetAttr(result, state->body, value) == -1) goto failed; Py_DECREF(value); - state->recursion_depth--; return result; failed: Py_XDECREF(value); @@ -5278,11 +5210,6 @@ ast2obj_pattern(struct ast_state *state, void* _o) if (!o) { Py_RETURN_NONE; } - if (++state->recursion_depth > state->recursion_limit) { - PyErr_SetString(PyExc_RecursionError, - "maximum recursion depth exceeded during ast construction"); - return 0; - } switch (o->kind) { case MatchValue_kind: tp = (PyTypeObject *)state->MatchValue_type; @@ -5422,7 +5349,6 @@ ast2obj_pattern(struct ast_state *state, void* _o) if (PyObject_SetAttr(result, state->end_col_offset, value) < 0) goto failed; Py_DECREF(value); - state->recursion_depth--; return result; failed: Py_XDECREF(value); @@ -5439,11 +5365,6 @@ ast2obj_type_ignore(struct ast_state *state, void* _o) if (!o) { Py_RETURN_NONE; } - if (++state->recursion_depth > state->recursion_limit) { - PyErr_SetString(PyExc_RecursionError, - "maximum recursion depth exceeded during ast construction"); - return 0; - } switch (o->kind) { case TypeIgnore_kind: tp = (PyTypeObject *)state->TypeIgnore_type; @@ -5461,7 +5382,6 @@ ast2obj_type_ignore(struct ast_state *state, void* _o) Py_DECREF(value); break; } - state->recursion_depth--; return result; failed: Py_XDECREF(value); @@ -5777,7 +5697,7 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); - end_lineno = lineno; + end_lineno = 0; } else { int res; @@ -5794,7 +5714,7 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); - end_col_offset = col_offset; + end_col_offset = 0; } else { int res; @@ -8194,7 +8114,7 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); - end_lineno = lineno; + end_lineno = 0; } else { int res; @@ -8211,7 +8131,7 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); - end_col_offset = col_offset; + end_col_offset = 0; } else { int res; @@ -10371,7 +10291,7 @@ obj2ast_excepthandler(struct ast_state *state, PyObject* obj, excepthandler_ty* } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); - end_lineno = lineno; + end_lineno = 0; } else { int res; @@ -10388,7 +10308,7 @@ obj2ast_excepthandler(struct ast_state *state, PyObject* obj, excepthandler_ty* } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); - end_col_offset = col_offset; + end_col_offset = 0; } else { int res; @@ -10835,7 +10755,7 @@ obj2ast_arg(struct ast_state *state, PyObject* obj, arg_ty* out, PyArena* arena) } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); - end_lineno = lineno; + end_lineno = 0; } else { int res; @@ -10852,7 +10772,7 @@ obj2ast_arg(struct ast_state *state, PyObject* obj, arg_ty* out, PyArena* arena) } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); - end_col_offset = col_offset; + end_col_offset = 0; } else { int res; @@ -10957,7 +10877,7 @@ obj2ast_keyword(struct ast_state *state, PyObject* obj, keyword_ty* out, } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); - end_lineno = lineno; + end_lineno = 0; } else { int res; @@ -10974,7 +10894,7 @@ obj2ast_keyword(struct ast_state *state, PyObject* obj, keyword_ty* out, } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); - end_col_offset = col_offset; + end_col_offset = 0; } else { int res; @@ -11079,7 +10999,7 @@ obj2ast_alias(struct ast_state *state, PyObject* obj, alias_ty* out, PyArena* } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); - end_lineno = lineno; + end_lineno = 0; } else { int res; @@ -11096,7 +11016,7 @@ obj2ast_alias(struct ast_state *state, PyObject* obj, alias_ty* out, PyArena* } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); - end_col_offset = col_offset; + end_col_offset = 0; } else { int res; @@ -12314,32 +12234,7 @@ PyObject* PyAST_mod2obj(mod_ty t) if (state == NULL) { return NULL; } - - int recursion_limit = Py_GetRecursionLimit(); - int starting_recursion_depth; - /* Be careful here to prevent overflow. */ - int COMPILER_STACK_FRAME_SCALE = 3; - PyThreadState *tstate = _PyThreadState_GET(); - if (!tstate) { - return 0; - } - state->recursion_limit = (recursion_limit < INT_MAX / COMPILER_STACK_FRAME_SCALE) ? - recursion_limit * COMPILER_STACK_FRAME_SCALE : recursion_limit; - int recursion_depth = tstate->recursion_limit - tstate->recursion_remaining; - starting_recursion_depth = (recursion_depth < INT_MAX / COMPILER_STACK_FRAME_SCALE) ? - recursion_depth * COMPILER_STACK_FRAME_SCALE : recursion_depth; - state->recursion_depth = starting_recursion_depth; - - PyObject *result = ast2obj_mod(state, t); - - /* Check that the recursion depth counting balanced correctly */ - if (result && state->recursion_depth != starting_recursion_depth) { - PyErr_Format(PyExc_SystemError, - "AST constructor recursion depth mismatch (before=%d, after=%d)", - starting_recursion_depth, state->recursion_depth); - return 0; - } - return result; + return ast2obj_mod(state, t); } /* mode is 0 for "exec", 1 for "eval" and 2 for "single" input */ diff --git a/Python/Python-tokenize.c b/Python/Python-tokenize.c index c5124a6942e7f2..6acfc2a7cfd268 100644 --- a/Python/Python-tokenize.c +++ b/Python/Python-tokenize.c @@ -15,7 +15,6 @@ get_tokenize_state(PyObject *module) { #define _tokenize_get_state_by_type(type) \ get_tokenize_state(PyType_GetModuleByDef(type, &_tokenizemodule)) -#include "pycore_runtime.h" #include "clinic/Python-tokenize.c.h" /*[clinic input] diff --git a/Python/_warnings.c b/Python/_warnings.c index 1b9e107ea30b13..085ca4506baaed 100644 --- a/Python/_warnings.c +++ b/Python/_warnings.c @@ -4,6 +4,7 @@ #include "pycore_long.h" // _PyLong_GetZero() #include "pycore_pyerrors.h" #include "pycore_pystate.h" // _PyThreadState_GET() +#include "frameobject.h" // PyFrame_GetBack() #include "pycore_frame.h" #include "clinic/_warnings.c.h" @@ -1030,31 +1031,28 @@ get_source_line(PyInterpreterState *interp, PyObject *module_globals, int lineno return source_line; } -/*[clinic input] -warn_explicit as warnings_warn_explicit - - message: object - category: object - filename: unicode - lineno: int - module as mod: object = NULL - registry: object = None - module_globals: object = None - source as sourceobj: object = None - -Issue a warning, or maybe ignore it or raise an exception. -[clinic start generated code]*/ - static PyObject * -warnings_warn_explicit_impl(PyObject *module, PyObject *message, - PyObject *category, PyObject *filename, - int lineno, PyObject *mod, PyObject *registry, - PyObject *module_globals, PyObject *sourceobj) -/*[clinic end generated code: output=c49c62b15a49a186 input=df6eeb8b45e712f1]*/ +warnings_warn_explicit(PyObject *self, PyObject *args, PyObject *kwds) { + static char *kwd_list[] = {"message", "category", "filename", "lineno", + "module", "registry", "module_globals", + "source", 0}; + PyObject *message; + PyObject *category; + PyObject *filename; + int lineno; + PyObject *module = NULL; + PyObject *registry = NULL; + PyObject *module_globals = NULL; + PyObject *sourceobj = NULL; PyObject *source_line = NULL; PyObject *returned; + if (!PyArg_ParseTupleAndKeywords(args, kwds, "OOUi|OOOO:warn_explicit", + kwd_list, &message, &category, &filename, &lineno, &module, + &registry, &module_globals, &sourceobj)) + return NULL; + PyThreadState *tstate = get_current_tstate(); if (tstate == NULL) { return NULL; @@ -1073,8 +1071,8 @@ warnings_warn_explicit_impl(PyObject *module, PyObject *message, return NULL; } } - returned = warn_explicit(tstate, category, message, filename, lineno, - mod, registry, source_line, sourceobj); + returned = warn_explicit(tstate, category, message, filename, lineno, module, + registry, source_line, sourceobj); Py_XDECREF(source_line); return returned; } @@ -1334,9 +1332,13 @@ _PyErr_WarnUnawaitedCoroutine(PyObject *coro) } } +PyDoc_STRVAR(warn_explicit_doc, +"Low-level interface to warnings functionality."); + static PyMethodDef warnings_functions[] = { WARNINGS_WARN_METHODDEF - WARNINGS_WARN_EXPLICIT_METHODDEF + {"warn_explicit", _PyCFunction_CAST(warnings_warn_explicit), + METH_VARARGS | METH_KEYWORDS, warn_explicit_doc}, {"_filters_mutated", _PyCFunction_CAST(warnings_filters_mutated), METH_NOARGS, NULL}, /* XXX(brett.cannon): add showwarning? */ diff --git a/Python/ast.c b/Python/ast.c index a0321b58ba8cff..607281e2685535 100644 --- a/Python/ast.c +++ b/Python/ast.c @@ -22,27 +22,6 @@ static int validate_stmt(struct validator *, stmt_ty); static int validate_expr(struct validator *, expr_ty, expr_context_ty); static int validate_pattern(struct validator *, pattern_ty, int); -#define VALIDATE_POSITIONS(node) \ - if (node->lineno > node->end_lineno) { \ - PyErr_Format(PyExc_ValueError, \ - "AST node line range (%d, %d) is not valid", \ - node->lineno, node->end_lineno); \ - return 0; \ - } \ - if ((node->lineno < 0 && node->end_lineno != node->lineno) || \ - (node->col_offset < 0 && node->col_offset != node->end_col_offset)) { \ - PyErr_Format(PyExc_ValueError, \ - "AST node column range (%d, %d) for line range (%d, %d) is not valid", \ - node->col_offset, node->end_col_offset, node->lineno, node->end_lineno); \ - return 0; \ - } \ - if (node->lineno == node->end_lineno && node->col_offset > node->end_col_offset) { \ - PyErr_Format(PyExc_ValueError, \ - "line %d, column %d-%d is not a valid range", \ - node->lineno, node->col_offset, node->end_col_offset); \ - return 0; \ - } - static int validate_name(PyObject *name) { @@ -96,7 +75,6 @@ validate_args(struct validator *state, asdl_arg_seq *args) Py_ssize_t i; for (i = 0; i < asdl_seq_LEN(args); i++) { arg_ty arg = asdl_seq_GET(args, i); - VALIDATE_POSITIONS(arg); if (arg->annotation && !validate_expr(state, arg->annotation, Load)) return 0; } @@ -205,7 +183,6 @@ validate_constant(struct validator *state, PyObject *value) static int validate_expr(struct validator *state, expr_ty exp, expr_context_ty ctx) { - VALIDATE_POSITIONS(exp); int ret = -1; if (++state->recursion_depth > state->recursion_limit) { PyErr_SetString(PyExc_RecursionError, @@ -528,7 +505,6 @@ validate_capture(PyObject *name) static int validate_pattern(struct validator *state, pattern_ty p, int star_ok) { - VALIDATE_POSITIONS(p); int ret = -1; if (++state->recursion_depth > state->recursion_limit) { PyErr_SetString(PyExc_RecursionError, @@ -698,7 +674,6 @@ validate_body(struct validator *state, asdl_stmt_seq *body, const char *owner) static int validate_stmt(struct validator *state, stmt_ty stmt) { - VALIDATE_POSITIONS(stmt); int ret = -1; Py_ssize_t i; if (++state->recursion_depth > state->recursion_limit) { @@ -832,7 +807,6 @@ validate_stmt(struct validator *state, stmt_ty stmt) } for (i = 0; i < asdl_seq_LEN(stmt->v.Try.handlers); i++) { excepthandler_ty handler = asdl_seq_GET(stmt->v.Try.handlers, i); - VALIDATE_POSITIONS(handler); if ((handler->v.ExceptHandler.type && !validate_expr(state, handler->v.ExceptHandler.type, Load)) || !validate_body(state, handler->v.ExceptHandler.body, "ExceptHandler")) diff --git a/Python/ceval.c b/Python/ceval.c index 8891d6cfa07a15..6158524999a84b 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -13,21 +13,22 @@ #include "pycore_ceval.h" // _PyEval_SignalAsyncExc() #include "pycore_code.h" #include "pycore_function.h" +#include "pycore_initconfig.h" // _PyStatus_OK() #include "pycore_long.h" // _PyLong_GetZero() #include "pycore_object.h" // _PyObject_GC_TRACK() #include "pycore_moduleobject.h" // PyModuleObject #include "pycore_opcode.h" // EXTRA_CASES #include "pycore_pyerrors.h" // _PyErr_Fetch() +#include "pycore_pylifecycle.h" // _PyErr_Print() #include "pycore_pymem.h" // _PyMem_IsPtrFreed() #include "pycore_pystate.h" // _PyInterpreterState_GET() -#include "pycore_range.h" // _PyRangeIterObject -#include "pycore_sliceobject.h" // _PyBuildSlice_ConsumeRefs #include "pycore_sysmodule.h" // _PySys_Audit() #include "pycore_tuple.h" // _PyTuple_ITEMS() #include "pycore_emscripten_signal.h" // _Py_CHECK_EMSCRIPTEN_SIGNALS #include "pycore_dict.h" #include "dictobject.h" +#include "frameobject.h" #include "pycore_frame.h" #include "opcode.h" #include "pydtrace.h" @@ -46,7 +47,7 @@ # error "ceval.c must be build with Py_BUILD_CORE define for best performance" #endif -#if !defined(Py_DEBUG) && !defined(Py_TRACE_REFS) +#ifndef Py_DEBUG // GH-89279: The MSVC compiler does not inline these static inline functions // in PGO build in _PyEval_EvalFrameDefault(), because this function is over // the limit of PGO, and that limit cannot be configured. @@ -96,10 +97,6 @@ #define _Py_atomic_load_relaxed_int32(ATOMIC_VAL) _Py_atomic_load_relaxed(ATOMIC_VAL) #endif -#define HEAD_LOCK(runtime) \ - PyThread_acquire_lock((runtime)->interpreters.mutex, WAIT_LOCK) -#define HEAD_UNLOCK(runtime) \ - PyThread_release_lock((runtime)->interpreters.mutex) /* Forward declarations */ static PyObject *trace_call_function( @@ -154,12 +151,11 @@ lltrace_instruction(_PyInterpreterFrame *frame, static void lltrace_resume_frame(_PyInterpreterFrame *frame) { - PyObject *fobj = frame->f_funcobj; - if (fobj == NULL || !PyFunction_Check(fobj)) { + PyFunctionObject *f = frame->f_func; + if (f == NULL) { printf("\nResuming frame."); return; } - PyFunctionObject *f = (PyFunctionObject *)fobj; PyObject *type, *value, *traceback; PyErr_Fetch(&type, &value, &traceback); PyObject *name = f->func_qualname; @@ -240,9 +236,633 @@ is_tstate_valid(PyThreadState *tstate) #endif +/* This can set eval_breaker to 0 even though gil_drop_request became + 1. We believe this is all right because the eval loop will release + the GIL eventually anyway. */ +static inline void +COMPUTE_EVAL_BREAKER(PyInterpreterState *interp, + struct _ceval_runtime_state *ceval, + struct _ceval_state *ceval2) +{ + _Py_atomic_store_relaxed(&ceval2->eval_breaker, + _Py_atomic_load_relaxed_int32(&ceval2->gil_drop_request) + | (_Py_atomic_load_relaxed_int32(&ceval->signals_pending) + && _Py_ThreadCanHandleSignals(interp)) + | (_Py_atomic_load_relaxed_int32(&ceval2->pending.calls_to_do) + && _Py_ThreadCanHandlePendingCalls()) + | ceval2->pending.async_exc); +} + + +static inline void +SET_GIL_DROP_REQUEST(PyInterpreterState *interp) +{ + struct _ceval_state *ceval2 = &interp->ceval; + _Py_atomic_store_relaxed(&ceval2->gil_drop_request, 1); + _Py_atomic_store_relaxed(&ceval2->eval_breaker, 1); +} + + +static inline void +RESET_GIL_DROP_REQUEST(PyInterpreterState *interp) +{ + struct _ceval_runtime_state *ceval = &interp->runtime->ceval; + struct _ceval_state *ceval2 = &interp->ceval; + _Py_atomic_store_relaxed(&ceval2->gil_drop_request, 0); + COMPUTE_EVAL_BREAKER(interp, ceval, ceval2); +} + + +static inline void +SIGNAL_PENDING_CALLS(PyInterpreterState *interp) +{ + struct _ceval_runtime_state *ceval = &interp->runtime->ceval; + struct _ceval_state *ceval2 = &interp->ceval; + _Py_atomic_store_relaxed(&ceval2->pending.calls_to_do, 1); + COMPUTE_EVAL_BREAKER(interp, ceval, ceval2); +} + + +static inline void +UNSIGNAL_PENDING_CALLS(PyInterpreterState *interp) +{ + struct _ceval_runtime_state *ceval = &interp->runtime->ceval; + struct _ceval_state *ceval2 = &interp->ceval; + _Py_atomic_store_relaxed(&ceval2->pending.calls_to_do, 0); + COMPUTE_EVAL_BREAKER(interp, ceval, ceval2); +} + + +static inline void +SIGNAL_PENDING_SIGNALS(PyInterpreterState *interp, int force) +{ + struct _ceval_runtime_state *ceval = &interp->runtime->ceval; + struct _ceval_state *ceval2 = &interp->ceval; + _Py_atomic_store_relaxed(&ceval->signals_pending, 1); + if (force) { + _Py_atomic_store_relaxed(&ceval2->eval_breaker, 1); + } + else { + /* eval_breaker is not set to 1 if thread_can_handle_signals() is false */ + COMPUTE_EVAL_BREAKER(interp, ceval, ceval2); + } +} + + +static inline void +UNSIGNAL_PENDING_SIGNALS(PyInterpreterState *interp) +{ + struct _ceval_runtime_state *ceval = &interp->runtime->ceval; + struct _ceval_state *ceval2 = &interp->ceval; + _Py_atomic_store_relaxed(&ceval->signals_pending, 0); + COMPUTE_EVAL_BREAKER(interp, ceval, ceval2); +} + + +static inline void +SIGNAL_ASYNC_EXC(PyInterpreterState *interp) +{ + struct _ceval_state *ceval2 = &interp->ceval; + ceval2->pending.async_exc = 1; + _Py_atomic_store_relaxed(&ceval2->eval_breaker, 1); +} + + +static inline void +UNSIGNAL_ASYNC_EXC(PyInterpreterState *interp) +{ + struct _ceval_runtime_state *ceval = &interp->runtime->ceval; + struct _ceval_state *ceval2 = &interp->ceval; + ceval2->pending.async_exc = 0; + COMPUTE_EVAL_BREAKER(interp, ceval, ceval2); +} + + #ifdef HAVE_ERRNO_H #include <errno.h> #endif +#include "ceval_gil.h" + +void _Py_NO_RETURN +_Py_FatalError_TstateNULL(const char *func) +{ + _Py_FatalErrorFunc(func, + "the function must be called with the GIL held, " + "but the GIL is released " + "(the current Python thread state is NULL)"); +} + +#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS +int +_PyEval_ThreadsInitialized(PyInterpreterState *interp) +{ + return gil_created(&interp->ceval.gil); +} + +int +PyEval_ThreadsInitialized(void) +{ + // Fatal error if there is no current interpreter + PyInterpreterState *interp = PyInterpreterState_Get(); + return _PyEval_ThreadsInitialized(interp); +} +#else +int +_PyEval_ThreadsInitialized(_PyRuntimeState *runtime) +{ + return gil_created(&runtime->ceval.gil); +} + +int +PyEval_ThreadsInitialized(void) +{ + _PyRuntimeState *runtime = &_PyRuntime; + return _PyEval_ThreadsInitialized(runtime); +} +#endif + +PyStatus +_PyEval_InitGIL(PyThreadState *tstate) +{ +#ifndef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS + if (!_Py_IsMainInterpreter(tstate->interp)) { + /* Currently, the GIL is shared by all interpreters, + and only the main interpreter is responsible to create + and destroy it. */ + return _PyStatus_OK(); + } +#endif + +#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS + struct _gil_runtime_state *gil = &tstate->interp->ceval.gil; +#else + struct _gil_runtime_state *gil = &tstate->interp->runtime->ceval.gil; +#endif + assert(!gil_created(gil)); + + PyThread_init_thread(); + create_gil(gil); + + take_gil(tstate); + + assert(gil_created(gil)); + return _PyStatus_OK(); +} + +void +_PyEval_FiniGIL(PyInterpreterState *interp) +{ +#ifndef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS + if (!_Py_IsMainInterpreter(interp)) { + /* Currently, the GIL is shared by all interpreters, + and only the main interpreter is responsible to create + and destroy it. */ + return; + } +#endif + +#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS + struct _gil_runtime_state *gil = &interp->ceval.gil; +#else + struct _gil_runtime_state *gil = &interp->runtime->ceval.gil; +#endif + if (!gil_created(gil)) { + /* First Py_InitializeFromConfig() call: the GIL doesn't exist + yet: do nothing. */ + return; + } + + destroy_gil(gil); + assert(!gil_created(gil)); +} + +void +PyEval_InitThreads(void) +{ + /* Do nothing: kept for backward compatibility */ +} + +void +_PyEval_Fini(void) +{ +#ifdef Py_STATS + _Py_PrintSpecializationStats(1); +#endif +} + +void +PyEval_AcquireLock(void) +{ + _PyRuntimeState *runtime = &_PyRuntime; + PyThreadState *tstate = _PyRuntimeState_GetThreadState(runtime); + _Py_EnsureTstateNotNULL(tstate); + + take_gil(tstate); +} + +void +PyEval_ReleaseLock(void) +{ + _PyRuntimeState *runtime = &_PyRuntime; + PyThreadState *tstate = _PyRuntimeState_GetThreadState(runtime); + /* This function must succeed when the current thread state is NULL. + We therefore avoid PyThreadState_Get() which dumps a fatal error + in debug mode. */ + struct _ceval_runtime_state *ceval = &runtime->ceval; + struct _ceval_state *ceval2 = &tstate->interp->ceval; + drop_gil(ceval, ceval2, tstate); +} + +void +_PyEval_ReleaseLock(PyThreadState *tstate) +{ + struct _ceval_runtime_state *ceval = &tstate->interp->runtime->ceval; + struct _ceval_state *ceval2 = &tstate->interp->ceval; + drop_gil(ceval, ceval2, tstate); +} + +void +PyEval_AcquireThread(PyThreadState *tstate) +{ + _Py_EnsureTstateNotNULL(tstate); + + take_gil(tstate); + + struct _gilstate_runtime_state *gilstate = &tstate->interp->runtime->gilstate; +#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS + (void)_PyThreadState_Swap(gilstate, tstate); +#else + if (_PyThreadState_Swap(gilstate, tstate) != NULL) { + Py_FatalError("non-NULL old thread state"); + } +#endif +} + +void +PyEval_ReleaseThread(PyThreadState *tstate) +{ + assert(is_tstate_valid(tstate)); + + _PyRuntimeState *runtime = tstate->interp->runtime; + PyThreadState *new_tstate = _PyThreadState_Swap(&runtime->gilstate, NULL); + if (new_tstate != tstate) { + Py_FatalError("wrong thread state"); + } + struct _ceval_runtime_state *ceval = &runtime->ceval; + struct _ceval_state *ceval2 = &tstate->interp->ceval; + drop_gil(ceval, ceval2, tstate); +} + +#ifdef HAVE_FORK +/* This function is called from PyOS_AfterFork_Child to destroy all threads + which are not running in the child process, and clear internal locks + which might be held by those threads. */ +PyStatus +_PyEval_ReInitThreads(PyThreadState *tstate) +{ + _PyRuntimeState *runtime = tstate->interp->runtime; + +#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS + struct _gil_runtime_state *gil = &tstate->interp->ceval.gil; +#else + struct _gil_runtime_state *gil = &runtime->ceval.gil; +#endif + if (!gil_created(gil)) { + return _PyStatus_OK(); + } + recreate_gil(gil); + + take_gil(tstate); + + struct _pending_calls *pending = &tstate->interp->ceval.pending; + if (_PyThread_at_fork_reinit(&pending->lock) < 0) { + return _PyStatus_ERR("Can't reinitialize pending calls lock"); + } + + /* Destroy all threads except the current one */ + _PyThreadState_DeleteExcept(runtime, tstate); + return _PyStatus_OK(); +} +#endif + +/* This function is used to signal that async exceptions are waiting to be + raised. */ + +void +_PyEval_SignalAsyncExc(PyInterpreterState *interp) +{ + SIGNAL_ASYNC_EXC(interp); +} + +PyThreadState * +PyEval_SaveThread(void) +{ + _PyRuntimeState *runtime = &_PyRuntime; +#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS + PyThreadState *old_tstate = _PyThreadState_GET(); + PyThreadState *tstate = _PyThreadState_Swap(&runtime->gilstate, old_tstate); +#else + PyThreadState *tstate = _PyThreadState_Swap(&runtime->gilstate, NULL); +#endif + _Py_EnsureTstateNotNULL(tstate); + + struct _ceval_runtime_state *ceval = &runtime->ceval; + struct _ceval_state *ceval2 = &tstate->interp->ceval; +#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS + assert(gil_created(&ceval2->gil)); +#else + assert(gil_created(&ceval->gil)); +#endif + drop_gil(ceval, ceval2, tstate); + return tstate; +} + +void +PyEval_RestoreThread(PyThreadState *tstate) +{ + _Py_EnsureTstateNotNULL(tstate); + + take_gil(tstate); + + struct _gilstate_runtime_state *gilstate = &tstate->interp->runtime->gilstate; + _PyThreadState_Swap(gilstate, tstate); +} + + +/* Mechanism whereby asynchronously executing callbacks (e.g. UNIX + signal handlers or Mac I/O completion routines) can schedule calls + to a function to be called synchronously. + The synchronous function is called with one void* argument. + It should return 0 for success or -1 for failure -- failure should + be accompanied by an exception. + + If registry succeeds, the registry function returns 0; if it fails + (e.g. due to too many pending calls) it returns -1 (without setting + an exception condition). + + Note that because registry may occur from within signal handlers, + or other asynchronous events, calling malloc() is unsafe! + + Any thread can schedule pending calls, but only the main thread + will execute them. + There is no facility to schedule calls to a particular thread, but + that should be easy to change, should that ever be required. In + that case, the static variables here should go into the python + threadstate. +*/ + +void +_PyEval_SignalReceived(PyInterpreterState *interp) +{ +#ifdef MS_WINDOWS + // bpo-42296: On Windows, _PyEval_SignalReceived() is called from a signal + // handler which can run in a thread different than the Python thread, in + // which case _Py_ThreadCanHandleSignals() is wrong. Ignore + // _Py_ThreadCanHandleSignals() and always set eval_breaker to 1. + // + // The next eval_frame_handle_pending() call will call + // _Py_ThreadCanHandleSignals() to recompute eval_breaker. + int force = 1; +#else + int force = 0; +#endif + /* bpo-30703: Function called when the C signal handler of Python gets a + signal. We cannot queue a callback using _PyEval_AddPendingCall() since + that function is not async-signal-safe. */ + SIGNAL_PENDING_SIGNALS(interp, force); +} + +/* Push one item onto the queue while holding the lock. */ +static int +_push_pending_call(struct _pending_calls *pending, + int (*func)(void *), void *arg) +{ + int i = pending->last; + int j = (i + 1) % NPENDINGCALLS; + if (j == pending->first) { + return -1; /* Queue full */ + } + pending->calls[i].func = func; + pending->calls[i].arg = arg; + pending->last = j; + return 0; +} + +/* Pop one item off the queue while holding the lock. */ +static void +_pop_pending_call(struct _pending_calls *pending, + int (**func)(void *), void **arg) +{ + int i = pending->first; + if (i == pending->last) { + return; /* Queue empty */ + } + + *func = pending->calls[i].func; + *arg = pending->calls[i].arg; + pending->first = (i + 1) % NPENDINGCALLS; +} + +/* This implementation is thread-safe. It allows + scheduling to be made from any thread, and even from an executing + callback. + */ + +int +_PyEval_AddPendingCall(PyInterpreterState *interp, + int (*func)(void *), void *arg) +{ + struct _pending_calls *pending = &interp->ceval.pending; + + /* Ensure that _PyEval_InitPendingCalls() was called + and that _PyEval_FiniPendingCalls() is not called yet. */ + assert(pending->lock != NULL); + + PyThread_acquire_lock(pending->lock, WAIT_LOCK); + int result = _push_pending_call(pending, func, arg); + PyThread_release_lock(pending->lock); + + /* signal main loop */ + SIGNAL_PENDING_CALLS(interp); + return result; +} + +int +Py_AddPendingCall(int (*func)(void *), void *arg) +{ + /* Best-effort to support subinterpreters and calls with the GIL released. + + First attempt _PyThreadState_GET() since it supports subinterpreters. + + If the GIL is released, _PyThreadState_GET() returns NULL . In this + case, use PyGILState_GetThisThreadState() which works even if the GIL + is released. + + Sadly, PyGILState_GetThisThreadState() doesn't support subinterpreters: + see bpo-10915 and bpo-15751. + + Py_AddPendingCall() doesn't require the caller to hold the GIL. */ + PyThreadState *tstate = _PyThreadState_GET(); + if (tstate == NULL) { + tstate = PyGILState_GetThisThreadState(); + } + + PyInterpreterState *interp; + if (tstate != NULL) { + interp = tstate->interp; + } + else { + /* Last resort: use the main interpreter */ + interp = _PyInterpreterState_Main(); + } + return _PyEval_AddPendingCall(interp, func, arg); +} + +static int +handle_signals(PyThreadState *tstate) +{ + assert(is_tstate_valid(tstate)); + if (!_Py_ThreadCanHandleSignals(tstate->interp)) { + return 0; + } + + UNSIGNAL_PENDING_SIGNALS(tstate->interp); + if (_PyErr_CheckSignalsTstate(tstate) < 0) { + /* On failure, re-schedule a call to handle_signals(). */ + SIGNAL_PENDING_SIGNALS(tstate->interp, 0); + return -1; + } + return 0; +} + +static int +make_pending_calls(PyInterpreterState *interp) +{ + /* only execute pending calls on main thread */ + if (!_Py_ThreadCanHandlePendingCalls()) { + return 0; + } + + /* don't perform recursive pending calls */ + static int busy = 0; + if (busy) { + return 0; + } + busy = 1; + + /* unsignal before starting to call callbacks, so that any callback + added in-between re-signals */ + UNSIGNAL_PENDING_CALLS(interp); + int res = 0; + + /* perform a bounded number of calls, in case of recursion */ + struct _pending_calls *pending = &interp->ceval.pending; + for (int i=0; i<NPENDINGCALLS; i++) { + int (*func)(void *) = NULL; + void *arg = NULL; + + /* pop one item off the queue while holding the lock */ + PyThread_acquire_lock(pending->lock, WAIT_LOCK); + _pop_pending_call(pending, &func, &arg); + PyThread_release_lock(pending->lock); + + /* having released the lock, perform the callback */ + if (func == NULL) { + break; + } + res = func(arg); + if (res) { + goto error; + } + } + + busy = 0; + return res; + +error: + busy = 0; + SIGNAL_PENDING_CALLS(interp); + return res; +} + +void +_Py_FinishPendingCalls(PyThreadState *tstate) +{ + assert(PyGILState_Check()); + assert(is_tstate_valid(tstate)); + + struct _pending_calls *pending = &tstate->interp->ceval.pending; + + if (!_Py_atomic_load_relaxed_int32(&(pending->calls_to_do))) { + return; + } + + if (make_pending_calls(tstate->interp) < 0) { + PyObject *exc, *val, *tb; + _PyErr_Fetch(tstate, &exc, &val, &tb); + PyErr_BadInternalCall(); + _PyErr_ChainExceptions(exc, val, tb); + _PyErr_Print(tstate); + } +} + +/* Py_MakePendingCalls() is a simple wrapper for the sake + of backward-compatibility. */ +int +Py_MakePendingCalls(void) +{ + assert(PyGILState_Check()); + + PyThreadState *tstate = _PyThreadState_GET(); + assert(is_tstate_valid(tstate)); + + /* Python signal handler doesn't really queue a callback: it only signals + that a signal was received, see _PyEval_SignalReceived(). */ + int res = handle_signals(tstate); + if (res != 0) { + return res; + } + + res = make_pending_calls(tstate->interp); + if (res != 0) { + return res; + } + + return 0; +} + +/* The interpreter's recursion limit */ + +void +_PyEval_InitRuntimeState(struct _ceval_runtime_state *ceval) +{ +#ifndef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS + _gil_initialize(&ceval->gil); +#endif +} + +void +_PyEval_InitState(struct _ceval_state *ceval, PyThread_type_lock pending_lock) +{ + struct _pending_calls *pending = &ceval->pending; + assert(pending->lock == NULL); + + pending->lock = pending_lock; + +#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS + _gil_initialize(&ceval->gil); +#endif +} + +void +_PyEval_FiniState(struct _ceval_state *ceval) +{ + struct _pending_calls *pending = &ceval->pending; + if (pending->lock != NULL) { + PyThread_free_lock(pending->lock); + pending->lock = NULL; + } +} int Py_GetRecursionLimit(void) @@ -612,6 +1232,75 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag) } +/* Handle signals, pending calls, GIL drop request + and asynchronous exception */ +static int +eval_frame_handle_pending(PyThreadState *tstate) +{ + _PyRuntimeState * const runtime = &_PyRuntime; + struct _ceval_runtime_state *ceval = &runtime->ceval; + + /* Pending signals */ + if (_Py_atomic_load_relaxed_int32(&ceval->signals_pending)) { + if (handle_signals(tstate) != 0) { + return -1; + } + } + + /* Pending calls */ + struct _ceval_state *ceval2 = &tstate->interp->ceval; + if (_Py_atomic_load_relaxed_int32(&ceval2->pending.calls_to_do)) { + if (make_pending_calls(tstate->interp) != 0) { + return -1; + } + } + + /* GIL drop request */ + if (_Py_atomic_load_relaxed_int32(&ceval2->gil_drop_request)) { + /* Give another thread a chance */ + if (_PyThreadState_Swap(&runtime->gilstate, NULL) != tstate) { + Py_FatalError("tstate mix-up"); + } + drop_gil(ceval, ceval2, tstate); + + /* Other threads may run now */ + + take_gil(tstate); + +#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS + (void)_PyThreadState_Swap(&runtime->gilstate, tstate); +#else + if (_PyThreadState_Swap(&runtime->gilstate, tstate) != NULL) { + Py_FatalError("orphan tstate"); + } +#endif + } + + /* Check for asynchronous exception. */ + if (tstate->async_exc != NULL) { + PyObject *exc = tstate->async_exc; + tstate->async_exc = NULL; + UNSIGNAL_ASYNC_EXC(tstate->interp); + _PyErr_SetNone(tstate, exc); + Py_DECREF(exc); + return -1; + } + +#ifdef MS_WINDOWS + // bpo-42296: On Windows, _PyEval_SignalReceived() can be called in a + // different thread than the Python thread, in which case + // _Py_ThreadCanHandleSignals() is wrong. Recompute eval_breaker in the + // current Python thread with the correct _Py_ThreadCanHandleSignals() + // value. It prevents to interrupt the eval loop at every instruction if + // the current Python thread cannot handle signals (if + // _Py_ThreadCanHandleSignals() is false). + COMPUTE_EVAL_BREAKER(tstate->interp, ceval, ceval2); +#endif + + return 0; +} + + /* Computed GOTOs, or the-optimization-commonly-but-improperly-known-as-"threaded code" using gcc's labels-as-values extension @@ -676,7 +1365,7 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag) do { \ frame->prev_instr = next_instr++; \ OPCODE_EXE_INC(op); \ - if (_py_stats) _py_stats->opcode_stats[lastopcode].pair_count[op]++; \ + _py_stats.opcode_stats[lastopcode].pair_count[op]++; \ lastopcode = op; \ } while (0) #else @@ -699,6 +1388,12 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag) #define PRE_DISPATCH_GOTO() ((void)0) #endif +#define NOTRACE_DISPATCH() \ + { \ + NEXTOPARG(); \ + PRE_DISPATCH_GOTO(); \ + DISPATCH_GOTO(); \ + } /* Do interpreter dispatch accounting for tracing and instrumentation */ #define DISPATCH() \ @@ -710,11 +1405,10 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag) DISPATCH_GOTO(); \ } -#define DISPATCH_SAME_OPARG() \ +#define NOTRACE_DISPATCH_SAME_OPARG() \ { \ opcode = _Py_OPCODE(*next_instr); \ PRE_DISPATCH_GOTO(); \ - opcode |= cframe.use_tracing OR_DTRACE_LINE; \ DISPATCH_GOTO(); \ } @@ -728,15 +1422,9 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag) /* Tuple access macros */ #ifndef Py_DEBUG -#define GETITEM(v, i) PyTuple_GET_ITEM((v), (i)) +#define GETITEM(v, i) PyTuple_GET_ITEM((PyTupleObject *)(v), (i)) #else -static inline PyObject * -GETITEM(PyObject *v, Py_ssize_t i) { - assert(PyTuple_Check(v)); - assert(i >= 0); - assert(i < PyTuple_GET_SIZE(v)); - return PyTuple_GET_ITEM(v, i); -} +#define GETITEM(v, i) PyTuple_GetItem((v), (i)) #endif /* Code access macros */ @@ -869,6 +1557,22 @@ GETITEM(PyObject *v, Py_ssize_t i) { /* Shared opcode macros */ +// shared by LOAD_ATTR_MODULE and LOAD_METHOD_MODULE +#define LOAD_MODULE_ATTR_OR_METHOD(attr_or_method) \ + _PyAttrCache *cache = (_PyAttrCache *)next_instr; \ + DEOPT_IF(!PyModule_CheckExact(owner), LOAD_##attr_or_method); \ + PyDictObject *dict = (PyDictObject *)((PyModuleObject *)owner)->md_dict; \ + assert(dict != NULL); \ + DEOPT_IF(dict->ma_keys->dk_version != read_u32(cache->version), \ + LOAD_##attr_or_method); \ + assert(dict->ma_keys->dk_kind == DICT_KEYS_UNICODE); \ + assert(cache->index < dict->ma_keys->dk_nentries); \ + PyDictUnicodeEntry *ep = DK_UNICODE_ENTRIES(dict->ma_keys) + cache->index; \ + res = ep->me_value; \ + DEOPT_IF(res == NULL, LOAD_##attr_or_method); \ + STAT_INC(LOAD_##attr_or_method, hit); \ + Py_INCREF(res); + #define TRACE_FUNCTION_EXIT() \ if (cframe.use_tracing) { \ if (trace_function_exit(tstate, frame, retval)) { \ @@ -912,11 +1616,7 @@ GETITEM(PyObject *v, Py_ssize_t i) { dtrace_function_entry(frame); \ } -#define ADAPTIVE_COUNTER_IS_ZERO(cache) \ - (cache)->counter < (1<<ADAPTIVE_BACKOFF_BITS) -#define DECREMENT_ADAPTIVE_COUNTER(cache) \ - (cache)->counter -= (1<<ADAPTIVE_BACKOFF_BITS) static int trace_function_entry(PyThreadState *tstate, _PyInterpreterFrame *frame) @@ -1116,7 +1816,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int * All loops should include a check of the eval breaker. * We also check on return from any builtin function. */ - if (_Py_HandlePending(tstate) != 0) { + if (eval_frame_handle_pending(tstate) != 0) { goto error; } DISPATCH(); @@ -1164,7 +1864,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int DISPATCH(); } - TARGET(LOAD_FAST_CHECK) { + TARGET(LOAD_FAST) { PyObject *value = GETLOCAL(oparg); if (value == NULL) { goto unbound_local_error; @@ -1174,14 +1874,6 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int DISPATCH(); } - TARGET(LOAD_FAST) { - PyObject *value = GETLOCAL(oparg); - assert(value != NULL); - Py_INCREF(value); - PUSH(value); - DISPATCH(); - } - TARGET(LOAD_CONST) { PREDICTED(LOAD_CONST); PyObject *value = GETITEM(consts, oparg); @@ -1191,6 +1883,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int } TARGET(STORE_FAST) { + PREDICTED(STORE_FAST); PyObject *value = POP(); SETLOCAL(oparg, value); DISPATCH(); @@ -1198,21 +1891,27 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int TARGET(LOAD_FAST__LOAD_FAST) { PyObject *value = GETLOCAL(oparg); - assert(value != NULL); + if (value == NULL) { + goto unbound_local_error; + } NEXTOPARG(); next_instr++; Py_INCREF(value); PUSH(value); value = GETLOCAL(oparg); - assert(value != NULL); + if (value == NULL) { + goto unbound_local_error; + } Py_INCREF(value); PUSH(value); - DISPATCH(); + NOTRACE_DISPATCH(); } TARGET(LOAD_FAST__LOAD_CONST) { PyObject *value = GETLOCAL(oparg); - assert(value != NULL); + if (value == NULL) { + goto unbound_local_error; + } NEXTOPARG(); next_instr++; Py_INCREF(value); @@ -1220,7 +1919,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int value = GETITEM(consts, oparg); Py_INCREF(value); PUSH(value); - DISPATCH(); + NOTRACE_DISPATCH(); } TARGET(STORE_FAST__LOAD_FAST) { @@ -1229,10 +1928,12 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int NEXTOPARG(); next_instr++; value = GETLOCAL(oparg); - assert(value != NULL); + if (value == NULL) { + goto unbound_local_error; + } Py_INCREF(value); PUSH(value); - DISPATCH(); + NOTRACE_DISPATCH(); } TARGET(STORE_FAST__STORE_FAST) { @@ -1242,7 +1943,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int next_instr++; value = POP(); SETLOCAL(oparg, value); - DISPATCH(); + NOTRACE_DISPATCH(); } TARGET(LOAD_CONST__LOAD_FAST) { @@ -1252,10 +1953,12 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int Py_INCREF(value); PUSH(value); value = GETLOCAL(oparg); - assert(value != NULL); + if (value == NULL) { + goto unbound_local_error; + } Py_INCREF(value); PUSH(value); - DISPATCH(); + NOTRACE_DISPATCH(); } TARGET(POP_TOP) { @@ -1334,7 +2037,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int goto error; } JUMPBY(INLINE_CACHE_ENTRIES_BINARY_OP); - DISPATCH(); + NOTRACE_DISPATCH(); } TARGET(BINARY_OP_MULTIPLY_FLOAT) { @@ -1355,7 +2058,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int goto error; } JUMPBY(INLINE_CACHE_ENTRIES_BINARY_OP); - DISPATCH(); + NOTRACE_DISPATCH(); } TARGET(BINARY_OP_SUBTRACT_INT) { @@ -1374,7 +2077,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int goto error; } JUMPBY(INLINE_CACHE_ENTRIES_BINARY_OP); - DISPATCH(); + NOTRACE_DISPATCH(); } TARGET(BINARY_OP_SUBTRACT_FLOAT) { @@ -1394,7 +2097,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int goto error; } JUMPBY(INLINE_CACHE_ENTRIES_BINARY_OP); - DISPATCH(); + NOTRACE_DISPATCH(); } TARGET(BINARY_OP_ADD_UNICODE) { @@ -1413,7 +2116,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int goto error; } JUMPBY(INLINE_CACHE_ENTRIES_BINARY_OP); - DISPATCH(); + NOTRACE_DISPATCH(); } TARGET(BINARY_OP_INPLACE_ADD_UNICODE) { @@ -1449,7 +2152,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int } // The STORE_FAST is already done. JUMPBY(INLINE_CACHE_ENTRIES_BINARY_OP + 1); - DISPATCH(); + NOTRACE_DISPATCH(); } TARGET(BINARY_OP_ADD_FLOAT) { @@ -1470,7 +2173,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int goto error; } JUMPBY(INLINE_CACHE_ENTRIES_BINARY_OP); - DISPATCH(); + NOTRACE_DISPATCH(); } TARGET(BINARY_OP_ADD_INT) { @@ -1489,7 +2192,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int goto error; } JUMPBY(INLINE_CACHE_ENTRIES_BINARY_OP); - DISPATCH(); + NOTRACE_DISPATCH(); } TARGET(BINARY_SUBSCR) { @@ -1506,60 +2209,20 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int DISPATCH(); } - TARGET(BINARY_SLICE) { - PyObject *stop = POP(); - PyObject *start = POP(); - PyObject *container = TOP(); - - PyObject *slice = _PyBuildSlice_ConsumeRefs(start, stop); - if (slice == NULL) { - goto error; - } - PyObject *res = PyObject_GetItem(container, slice); - Py_DECREF(slice); - if (res == NULL) { - goto error; - } - SET_TOP(res); - Py_DECREF(container); - DISPATCH(); - } - - TARGET(STORE_SLICE) { - PyObject *stop = POP(); - PyObject *start = POP(); - PyObject *container = TOP(); - PyObject *v = SECOND(); - - PyObject *slice = _PyBuildSlice_ConsumeRefs(start, stop); - if (slice == NULL) { - goto error; - } - int err = PyObject_SetItem(container, slice, v); - Py_DECREF(slice); - if (err) { - goto error; - } - STACK_SHRINK(2); - Py_DECREF(v); - Py_DECREF(container); - DISPATCH(); - } - TARGET(BINARY_SUBSCR_ADAPTIVE) { _PyBinarySubscrCache *cache = (_PyBinarySubscrCache *)next_instr; - if (ADAPTIVE_COUNTER_IS_ZERO(cache)) { + if (cache->counter == 0) { PyObject *sub = TOP(); PyObject *container = SECOND(); next_instr--; if (_Py_Specialize_BinarySubscr(container, sub, next_instr) < 0) { goto error; } - DISPATCH_SAME_OPARG(); + NOTRACE_DISPATCH_SAME_OPARG(); } else { STAT_INC(BINARY_SUBSCR, deferred); - DECREMENT_ADAPTIVE_COUNTER(cache); + cache->counter--; JUMP_TO_INSTRUCTION(BINARY_SUBSCR); } } @@ -1586,7 +2249,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int SET_TOP(res); Py_DECREF(list); JUMPBY(INLINE_CACHE_ENTRIES_BINARY_SUBSCR); - DISPATCH(); + NOTRACE_DISPATCH(); } TARGET(BINARY_SUBSCR_TUPLE_INT) { @@ -1611,7 +2274,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int SET_TOP(res); Py_DECREF(tuple); JUMPBY(INLINE_CACHE_ENTRIES_BINARY_SUBSCR); - DISPATCH(); + NOTRACE_DISPATCH(); } TARGET(BINARY_SUBSCR_DICT) { @@ -1622,10 +2285,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int PyObject *sub = TOP(); PyObject *res = PyDict_GetItemWithError(dict, sub); if (res == NULL) { - if (!_PyErr_Occurred(tstate)) { - _PyErr_SetKeyError(sub); - } - goto error; + goto binary_subscr_dict_error; } Py_INCREF(res); STACK_SHRINK(1); @@ -1649,11 +2309,16 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int PyFunctionObject *getitem = (PyFunctionObject *)cached; DEOPT_IF(getitem->func_version != cache->func_version, BINARY_SUBSCR); PyCodeObject *code = (PyCodeObject *)getitem->func_code; + size_t size = code->co_nlocalsplus + code->co_stacksize + FRAME_SPECIALS_SIZE; assert(code->co_argcount == 2); - DEOPT_IF(!_PyThreadState_HasStackSpace(tstate, code->co_framesize), BINARY_SUBSCR); - STAT_INC(BINARY_SUBSCR, hit); + _PyInterpreterFrame *new_frame = _PyThreadState_BumpFramePointer(tstate, size); + if (new_frame == NULL) { + goto error; + } + CALL_STAT_INC(frames_pushed); Py_INCREF(getitem); - _PyInterpreterFrame *new_frame = _PyFrame_PushUnchecked(tstate, getitem); + _PyFrame_InitializeSpecials(new_frame, getitem, + NULL, code->co_nlocalsplus); STACK_SHRINK(2); new_frame->localsplus[0] = container; new_frame->localsplus[1] = sub; @@ -1711,18 +2376,18 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int TARGET(STORE_SUBSCR_ADAPTIVE) { _PyStoreSubscrCache *cache = (_PyStoreSubscrCache *)next_instr; - if (ADAPTIVE_COUNTER_IS_ZERO(cache)) { + if (cache->counter == 0) { PyObject *sub = TOP(); PyObject *container = SECOND(); next_instr--; if (_Py_Specialize_StoreSubscr(container, sub, next_instr) < 0) { goto error; } - DISPATCH_SAME_OPARG(); + NOTRACE_DISPATCH_SAME_OPARG(); } else { STAT_INC(STORE_SUBSCR, deferred); - DECREMENT_ADAPTIVE_COUNTER(cache); + cache->counter--; JUMP_TO_INSTRUCTION(STORE_SUBSCR); } } @@ -1750,7 +2415,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int _Py_DECREF_SPECIALIZED(sub, (destructor)PyObject_Free); Py_DECREF(list); JUMPBY(INLINE_CACHE_ENTRIES_STORE_SUBSCR); - DISPATCH(); + NOTRACE_DISPATCH(); } TARGET(STORE_SUBSCR_DICT) { @@ -2036,9 +2701,6 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int } TARGET(YIELD_VALUE) { - // NOTE: It's important that YIELD_VALUE never raises an exception! - // The compiler treats any exception raised here as a failed close() - // or throw() call. assert(oparg == STACK_LEVEL()); assert(frame->is_entry); PyObject *retval = POP(); @@ -2117,26 +2779,6 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int } } - TARGET(CLEANUP_THROW) { - assert(throwflag); - PyObject *exc_value = TOP(); - assert(exc_value && PyExceptionInstance_Check(exc_value)); - if (PyErr_GivenExceptionMatches(exc_value, PyExc_StopIteration)) { - PyObject *value = ((PyStopIterationObject *)exc_value)->value; - Py_INCREF(value); - Py_DECREF(POP()); // The StopIteration. - Py_DECREF(POP()); // The last sent value. - Py_DECREF(POP()); // The delegated sub-iterator. - PUSH(value); - DISPATCH(); - } - Py_INCREF(exc_value); - PyObject *exc_type = Py_NewRef(Py_TYPE(exc_value)); - PyObject *exc_traceback = PyException_GetTraceback(exc_value); - _PyErr_Restore(tstate, exc_type, exc_value, exc_traceback); - goto exception_unwind; - } - TARGET(LOAD_ASSERTION_ERROR) { PyObject *value = PyExc_AssertionError; Py_INCREF(value); @@ -2228,15 +2870,15 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int TARGET(UNPACK_SEQUENCE_ADAPTIVE) { assert(cframe.use_tracing == 0); _PyUnpackSequenceCache *cache = (_PyUnpackSequenceCache *)next_instr; - if (ADAPTIVE_COUNTER_IS_ZERO(cache)) { + if (cache->counter == 0) { PyObject *seq = TOP(); next_instr--; _Py_Specialize_UnpackSequence(seq, next_instr, oparg); - DISPATCH_SAME_OPARG(); + NOTRACE_DISPATCH_SAME_OPARG(); } else { STAT_INC(UNPACK_SEQUENCE, deferred); - DECREMENT_ADAPTIVE_COUNTER(cache); + cache->counter--; JUMP_TO_INSTRUCTION(UNPACK_SEQUENCE); } } @@ -2250,7 +2892,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int PUSH(Py_NewRef(PyTuple_GET_ITEM(seq, 0))); Py_DECREF(seq); JUMPBY(INLINE_CACHE_ENTRIES_UNPACK_SEQUENCE); - DISPATCH(); + NOTRACE_DISPATCH(); } TARGET(UNPACK_SEQUENCE_TUPLE) { @@ -2265,7 +2907,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int } Py_DECREF(seq); JUMPBY(INLINE_CACHE_ENTRIES_UNPACK_SEQUENCE); - DISPATCH(); + NOTRACE_DISPATCH(); } TARGET(UNPACK_SEQUENCE_LIST) { @@ -2280,7 +2922,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int } Py_DECREF(seq); JUMPBY(INLINE_CACHE_ENTRIES_UNPACK_SEQUENCE); - DISPATCH(); + NOTRACE_DISPATCH(); } TARGET(UNPACK_EX) { @@ -2469,17 +3111,17 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int TARGET(LOAD_GLOBAL_ADAPTIVE) { assert(cframe.use_tracing == 0); _PyLoadGlobalCache *cache = (_PyLoadGlobalCache *)next_instr; - if (ADAPTIVE_COUNTER_IS_ZERO(cache)) { + if (cache->counter == 0) { PyObject *name = GETITEM(names, oparg>>1); next_instr--; if (_Py_Specialize_LoadGlobal(GLOBALS(), BUILTINS(), next_instr, name) < 0) { goto error; } - DISPATCH_SAME_OPARG(); + NOTRACE_DISPATCH_SAME_OPARG(); } else { STAT_INC(LOAD_GLOBAL, deferred); - DECREMENT_ADAPTIVE_COUNTER(cache); + cache->counter--; JUMP_TO_INSTRUCTION(LOAD_GLOBAL); } } @@ -2502,7 +3144,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int STACK_GROW(push_null+1); Py_INCREF(res); SET_TOP(res); - DISPATCH(); + NOTRACE_DISPATCH(); } TARGET(LOAD_GLOBAL_BUILTIN) { @@ -2527,7 +3169,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int STACK_GROW(push_null+1); Py_INCREF(res); SET_TOP(res); - DISPATCH(); + NOTRACE_DISPATCH(); } TARGET(DELETE_FAST) { @@ -2623,8 +3265,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int TARGET(COPY_FREE_VARS) { /* Copy closure variables to free variables */ PyCodeObject *co = frame->f_code; - assert(PyFunction_Check(frame->f_funcobj)); - PyObject *closure = ((PyFunctionObject *)frame->f_funcobj)->func_closure; + PyObject *closure = frame->f_func->func_closure; int offset = co->co_nlocals + co->co_nplaincellvars; assert(oparg == co->co_nfreevars); for (int i = 0; i < oparg; ++i) { @@ -2650,10 +3291,13 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int } TARGET(BUILD_TUPLE) { - STACK_SHRINK(oparg); - PyObject *tup = _PyTuple_FromArraySteal(stack_pointer, oparg); + PyObject *tup = PyTuple_New(oparg); if (tup == NULL) goto error; + while (--oparg >= 0) { + PyObject *item = POP(); + PyTuple_SET_ITEM(tup, oparg, item); + } PUSH(tup); DISPATCH(); } @@ -2876,43 +3520,8 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int TARGET(LOAD_ATTR) { PREDICTED(LOAD_ATTR); - PyObject *name = GETITEM(names, oparg >> 1); + PyObject *name = GETITEM(names, oparg); PyObject *owner = TOP(); - if (oparg & 1) { - /* Designed to work in tandem with CALL. */ - PyObject* meth = NULL; - - int meth_found = _PyObject_GetMethod(owner, name, &meth); - - if (meth == NULL) { - /* Most likely attribute wasn't found. */ - goto error; - } - - if (meth_found) { - /* We can bypass temporary bound method object. - meth is unbound method and obj is self. - - meth | self | arg1 | ... | argN - */ - SET_TOP(meth); - PUSH(owner); // self - } - else { - /* meth is not an unbound method (but a regular attr, or - something was returned by a descriptor protocol). Set - the second element of the stack to NULL, to signal - CALL that it's not a method call. - - NULL | meth | arg1 | ... | argN - */ - SET_TOP(NULL); - Py_DECREF(owner); - PUSH(meth); - } - JUMPBY(INLINE_CACHE_ENTRIES_LOAD_ATTR); - DISPATCH(); - } PyObject *res = PyObject_GetAttr(owner, name); if (res == NULL) { goto error; @@ -2926,18 +3535,18 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int TARGET(LOAD_ATTR_ADAPTIVE) { assert(cframe.use_tracing == 0); _PyAttrCache *cache = (_PyAttrCache *)next_instr; - if (ADAPTIVE_COUNTER_IS_ZERO(cache)) { + if (cache->counter == 0) { PyObject *owner = TOP(); - PyObject *name = GETITEM(names, oparg>>1); + PyObject *name = GETITEM(names, oparg); next_instr--; if (_Py_Specialize_LoadAttr(owner, next_instr, name) < 0) { goto error; } - DISPATCH_SAME_OPARG(); + NOTRACE_DISPATCH_SAME_OPARG(); } else { STAT_INC(LOAD_ATTR, deferred); - DECREMENT_ADAPTIVE_COUNTER(cache); + cache->counter--; JUMP_TO_INSTRUCTION(LOAD_ATTR); } } @@ -2953,43 +3562,28 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int DEOPT_IF(tp->tp_version_tag != type_version, LOAD_ATTR); assert(tp->tp_dictoffset < 0); assert(tp->tp_flags & Py_TPFLAGS_MANAGED_DICT); - PyDictOrValues dorv = *_PyObject_DictOrValuesPointer(owner); - DEOPT_IF(!_PyDictOrValues_IsValues(dorv), LOAD_ATTR); - res = _PyDictOrValues_GetValues(dorv)->values[cache->index]; + PyDictValues *values = *_PyObject_ValuesPointer(owner); + DEOPT_IF(values == NULL, LOAD_ATTR); + res = values->values[cache->index]; DEOPT_IF(res == NULL, LOAD_ATTR); STAT_INC(LOAD_ATTR, hit); Py_INCREF(res); - SET_TOP(NULL); - STACK_GROW((oparg & 1)); SET_TOP(res); Py_DECREF(owner); JUMPBY(INLINE_CACHE_ENTRIES_LOAD_ATTR); - DISPATCH(); + NOTRACE_DISPATCH(); } TARGET(LOAD_ATTR_MODULE) { assert(cframe.use_tracing == 0); + // shared with LOAD_METHOD_MODULE PyObject *owner = TOP(); PyObject *res; - _PyAttrCache *cache = (_PyAttrCache *)next_instr; - DEOPT_IF(!PyModule_CheckExact(owner), LOAD_ATTR); - PyDictObject *dict = (PyDictObject *)((PyModuleObject *)owner)->md_dict; - assert(dict != NULL); - DEOPT_IF(dict->ma_keys->dk_version != read_u32(cache->version), - LOAD_ATTR); - assert(dict->ma_keys->dk_kind == DICT_KEYS_UNICODE); - assert(cache->index < dict->ma_keys->dk_nentries); - PyDictUnicodeEntry *ep = DK_UNICODE_ENTRIES(dict->ma_keys) + cache->index; - res = ep->me_value; - DEOPT_IF(res == NULL, LOAD_ATTR); - STAT_INC(LOAD_ATTR, hit); - Py_INCREF(res); - SET_TOP(NULL); - STACK_GROW((oparg & 1)); + LOAD_MODULE_ATTR_OR_METHOD(ATTR); SET_TOP(res); Py_DECREF(owner); JUMPBY(INLINE_CACHE_ENTRIES_LOAD_ATTR); - DISPATCH(); + NOTRACE_DISPATCH(); } TARGET(LOAD_ATTR_WITH_HINT) { @@ -3002,12 +3596,10 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int assert(type_version != 0); DEOPT_IF(tp->tp_version_tag != type_version, LOAD_ATTR); assert(tp->tp_flags & Py_TPFLAGS_MANAGED_DICT); - PyDictOrValues dorv = *_PyObject_DictOrValuesPointer(owner); - DEOPT_IF(_PyDictOrValues_IsValues(dorv), LOAD_ATTR); - PyDictObject *dict = (PyDictObject *)_PyDictOrValues_GetDict(dorv); + PyDictObject *dict = *(PyDictObject **)_PyObject_ManagedDictPointer(owner); DEOPT_IF(dict == NULL, LOAD_ATTR); assert(PyDict_CheckExact((PyObject *)dict)); - PyObject *name = GETITEM(names, oparg>>1); + PyObject *name = GETITEM(names, oparg); uint16_t hint = cache->index; DEOPT_IF(hint >= (size_t)dict->ma_keys->dk_nentries, LOAD_ATTR); if (DK_IS_UNICODE(dict->ma_keys)) { @@ -3023,12 +3615,10 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int DEOPT_IF(res == NULL, LOAD_ATTR); STAT_INC(LOAD_ATTR, hit); Py_INCREF(res); - SET_TOP(NULL); - STACK_GROW((oparg & 1)); SET_TOP(res); Py_DECREF(owner); JUMPBY(INLINE_CACHE_ENTRIES_LOAD_ATTR); - DISPATCH(); + NOTRACE_DISPATCH(); } TARGET(LOAD_ATTR_SLOT) { @@ -3039,137 +3629,33 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int _PyAttrCache *cache = (_PyAttrCache *)next_instr; uint32_t type_version = read_u32(cache->version); assert(type_version != 0); - DEOPT_IF(tp->tp_version_tag != type_version, LOAD_ATTR); - char *addr = (char *)owner + cache->index; - res = *(PyObject **)addr; - DEOPT_IF(res == NULL, LOAD_ATTR); - STAT_INC(LOAD_ATTR, hit); - Py_INCREF(res); - SET_TOP(NULL); - STACK_GROW((oparg & 1)); - SET_TOP(res); - Py_DECREF(owner); - JUMPBY(INLINE_CACHE_ENTRIES_LOAD_ATTR); - DISPATCH(); - } - - TARGET(LOAD_ATTR_CLASS) { - assert(cframe.use_tracing == 0); - _PyLoadMethodCache *cache = (_PyLoadMethodCache *)next_instr; - - PyObject *cls = TOP(); - DEOPT_IF(!PyType_Check(cls), LOAD_ATTR); - uint32_t type_version = read_u32(cache->type_version); - DEOPT_IF(((PyTypeObject *)cls)->tp_version_tag != type_version, - LOAD_ATTR); - assert(type_version != 0); - - STAT_INC(LOAD_ATTR, hit); - PyObject *res = read_obj(cache->descr); - assert(res != NULL); - Py_INCREF(res); - SET_TOP(NULL); - STACK_GROW((oparg & 1)); - SET_TOP(res); - Py_DECREF(cls); - JUMPBY(INLINE_CACHE_ENTRIES_LOAD_ATTR); - DISPATCH(); - } - - TARGET(LOAD_ATTR_PROPERTY) { - assert(cframe.use_tracing == 0); - DEOPT_IF(tstate->interp->eval_frame, LOAD_ATTR); - _PyLoadMethodCache *cache = (_PyLoadMethodCache *)next_instr; - - PyObject *owner = TOP(); - PyTypeObject *cls = Py_TYPE(owner); - uint32_t type_version = read_u32(cache->type_version); - DEOPT_IF(cls->tp_version_tag != type_version, LOAD_ATTR); - assert(type_version != 0); - PyObject *fget = read_obj(cache->descr); - assert(Py_IS_TYPE(fget, &PyFunction_Type)); - PyFunctionObject *f = (PyFunctionObject *)fget; - uint32_t func_version = read_u32(cache->keys_version); - assert(func_version != 0); - DEOPT_IF(f->func_version != func_version, LOAD_ATTR); - PyCodeObject *code = (PyCodeObject *)f->func_code; - assert(code->co_argcount == 1); - DEOPT_IF(!_PyThreadState_HasStackSpace(tstate, code->co_framesize), LOAD_ATTR); - STAT_INC(LOAD_ATTR, hit); - Py_INCREF(fget); - _PyInterpreterFrame *new_frame = _PyFrame_PushUnchecked(tstate, f); - SET_TOP(NULL); - int shrink_stack = !(oparg & 1); - STACK_SHRINK(shrink_stack); - new_frame->localsplus[0] = owner; - for (int i = 1; i < code->co_nlocalsplus; i++) { - new_frame->localsplus[i] = NULL; - } - _PyFrame_SetStackPointer(frame, stack_pointer); - JUMPBY(INLINE_CACHE_ENTRIES_LOAD_ATTR); - frame->prev_instr = next_instr - 1; - new_frame->previous = frame; - frame = cframe.current_frame = new_frame; - CALL_STAT_INC(inlined_py_calls); - goto start_frame; - } - - TARGET(LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN) { - assert(cframe.use_tracing == 0); - DEOPT_IF(tstate->interp->eval_frame, LOAD_ATTR); - _PyLoadMethodCache *cache = (_PyLoadMethodCache *)next_instr; - PyObject *owner = TOP(); - PyTypeObject *cls = Py_TYPE(owner); - uint32_t type_version = read_u32(cache->type_version); - DEOPT_IF(cls->tp_version_tag != type_version, LOAD_ATTR); - assert(type_version != 0); - PyObject *getattribute = read_obj(cache->descr); - assert(Py_IS_TYPE(getattribute, &PyFunction_Type)); - PyFunctionObject *f = (PyFunctionObject *)getattribute; - uint32_t func_version = read_u32(cache->keys_version); - assert(func_version != 0); - DEOPT_IF(f->func_version != func_version, LOAD_ATTR); - PyCodeObject *code = (PyCodeObject *)f->func_code; - assert(code->co_argcount == 2); - DEOPT_IF(!_PyThreadState_HasStackSpace(tstate, code->co_framesize), CALL); + DEOPT_IF(tp->tp_version_tag != type_version, LOAD_ATTR); + char *addr = (char *)owner + cache->index; + res = *(PyObject **)addr; + DEOPT_IF(res == NULL, LOAD_ATTR); STAT_INC(LOAD_ATTR, hit); - - PyObject *name = GETITEM(names, oparg >> 1); - Py_INCREF(f); - _PyInterpreterFrame *new_frame = _PyFrame_PushUnchecked(tstate, f); - SET_TOP(NULL); - int shrink_stack = !(oparg & 1); - STACK_SHRINK(shrink_stack); - Py_INCREF(name); - new_frame->localsplus[0] = owner; - new_frame->localsplus[1] = name; - for (int i = 2; i < code->co_nlocalsplus; i++) { - new_frame->localsplus[i] = NULL; - } - _PyFrame_SetStackPointer(frame, stack_pointer); + Py_INCREF(res); + SET_TOP(res); + Py_DECREF(owner); JUMPBY(INLINE_CACHE_ENTRIES_LOAD_ATTR); - frame->prev_instr = next_instr - 1; - new_frame->previous = frame; - frame = cframe.current_frame = new_frame; - CALL_STAT_INC(inlined_py_calls); - goto start_frame; + NOTRACE_DISPATCH(); } TARGET(STORE_ATTR_ADAPTIVE) { assert(cframe.use_tracing == 0); _PyAttrCache *cache = (_PyAttrCache *)next_instr; - if (ADAPTIVE_COUNTER_IS_ZERO(cache)) { + if (cache->counter == 0) { PyObject *owner = TOP(); PyObject *name = GETITEM(names, oparg); next_instr--; if (_Py_Specialize_StoreAttr(owner, next_instr, name) < 0) { goto error; } - DISPATCH_SAME_OPARG(); + NOTRACE_DISPATCH_SAME_OPARG(); } else { STAT_INC(STORE_ATTR, deferred); - DECREMENT_ADAPTIVE_COUNTER(cache); + cache->counter--; JUMP_TO_INSTRUCTION(STORE_ATTR); } } @@ -3183,13 +3669,12 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int assert(type_version != 0); DEOPT_IF(tp->tp_version_tag != type_version, STORE_ATTR); assert(tp->tp_flags & Py_TPFLAGS_MANAGED_DICT); - PyDictOrValues dorv = *_PyObject_DictOrValuesPointer(owner); - DEOPT_IF(!_PyDictOrValues_IsValues(dorv), STORE_ATTR); + PyDictValues *values = *_PyObject_ValuesPointer(owner); + DEOPT_IF(values == NULL, STORE_ATTR); STAT_INC(STORE_ATTR, hit); Py_ssize_t index = cache->index; STACK_SHRINK(1); PyObject *value = POP(); - PyDictValues *values = _PyDictOrValues_GetValues(dorv); PyObject *old_value = values->values[index]; values->values[index] = value; if (old_value == NULL) { @@ -3200,7 +3685,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int } Py_DECREF(owner); JUMPBY(INLINE_CACHE_ENTRIES_STORE_ATTR); - DISPATCH(); + NOTRACE_DISPATCH(); } TARGET(STORE_ATTR_WITH_HINT) { @@ -3212,9 +3697,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int assert(type_version != 0); DEOPT_IF(tp->tp_version_tag != type_version, STORE_ATTR); assert(tp->tp_flags & Py_TPFLAGS_MANAGED_DICT); - PyDictOrValues dorv = *_PyObject_DictOrValuesPointer(owner); - DEOPT_IF(_PyDictOrValues_IsValues(dorv), LOAD_ATTR); - PyDictObject *dict = (PyDictObject *)_PyDictOrValues_GetDict(dorv); + PyDictObject *dict = *(PyDictObject **)_PyObject_ManagedDictPointer(owner); DEOPT_IF(dict == NULL, STORE_ATTR); assert(PyDict_CheckExact((PyObject *)dict)); PyObject *name = GETITEM(names, oparg); @@ -3249,7 +3732,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int dict->ma_version_tag = DICT_NEXT_VERSION(); Py_DECREF(owner); JUMPBY(INLINE_CACHE_ENTRIES_STORE_ATTR); - DISPATCH(); + NOTRACE_DISPATCH(); } TARGET(STORE_ATTR_SLOT) { @@ -3269,7 +3752,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int Py_XDECREF(old_value); Py_DECREF(owner); JUMPBY(INLINE_CACHE_ENTRIES_STORE_ATTR); - DISPATCH(); + NOTRACE_DISPATCH(); } TARGET(COMPARE_OP) { @@ -3291,23 +3774,23 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int TARGET(COMPARE_OP_ADAPTIVE) { assert(cframe.use_tracing == 0); _PyCompareOpCache *cache = (_PyCompareOpCache *)next_instr; - if (ADAPTIVE_COUNTER_IS_ZERO(cache)) { + if (cache->counter == 0) { PyObject *right = TOP(); PyObject *left = SECOND(); next_instr--; _Py_Specialize_CompareOp(left, right, next_instr, oparg); - DISPATCH_SAME_OPARG(); + NOTRACE_DISPATCH_SAME_OPARG(); } else { STAT_INC(COMPARE_OP, deferred); - DECREMENT_ADAPTIVE_COUNTER(cache); + cache->counter--; JUMP_TO_INSTRUCTION(COMPARE_OP); } } TARGET(COMPARE_OP_FLOAT_JUMP) { assert(cframe.use_tracing == 0); - // Combined: COMPARE_OP (float ? float) + POP_JUMP_IF_(true/false) + // Combined: COMPARE_OP (float ? float) + POP_JUMP_(direction)_IF_(true/false) _PyCompareOpCache *cache = (_PyCompareOpCache *)next_instr; int when_to_jump_mask = cache->mask; PyObject *right = TOP(); @@ -3325,20 +3808,31 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int STACK_SHRINK(2); _Py_DECREF_SPECIALIZED(left, _PyFloat_ExactDealloc); _Py_DECREF_SPECIALIZED(right, _PyFloat_ExactDealloc); - assert(opcode == POP_JUMP_IF_FALSE || opcode == POP_JUMP_IF_TRUE); - int jump = (1 << (sign + 1)) & when_to_jump_mask; + assert(opcode == POP_JUMP_FORWARD_IF_FALSE || + opcode == POP_JUMP_BACKWARD_IF_FALSE || + opcode == POP_JUMP_FORWARD_IF_TRUE || + opcode == POP_JUMP_BACKWARD_IF_TRUE); + int jump = (9 << (sign + 1)) & when_to_jump_mask; if (!jump) { next_instr++; } + else if (jump >= 8) { + assert(opcode == POP_JUMP_BACKWARD_IF_TRUE || + opcode == POP_JUMP_BACKWARD_IF_FALSE); + JUMPBY(1 - oparg); + CHECK_EVAL_BREAKER(); + } else { + assert(opcode == POP_JUMP_FORWARD_IF_TRUE || + opcode == POP_JUMP_FORWARD_IF_FALSE); JUMPBY(1 + oparg); } - DISPATCH(); + NOTRACE_DISPATCH(); } TARGET(COMPARE_OP_INT_JUMP) { assert(cframe.use_tracing == 0); - // Combined: COMPARE_OP (int ? int) + POP_JUMP_IF_(true/false) + // Combined: COMPARE_OP (int ? int) + POP_JUMP_(direction)_IF_(true/false) _PyCompareOpCache *cache = (_PyCompareOpCache *)next_instr; int when_to_jump_mask = cache->mask; PyObject *right = TOP(); @@ -3357,22 +3851,33 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int STACK_SHRINK(2); _Py_DECREF_SPECIALIZED(left, (destructor)PyObject_Free); _Py_DECREF_SPECIALIZED(right, (destructor)PyObject_Free); - assert(opcode == POP_JUMP_IF_FALSE || opcode == POP_JUMP_IF_TRUE); - int jump = (1 << (sign + 1)) & when_to_jump_mask; + assert(opcode == POP_JUMP_FORWARD_IF_FALSE || + opcode == POP_JUMP_BACKWARD_IF_FALSE || + opcode == POP_JUMP_FORWARD_IF_TRUE || + opcode == POP_JUMP_BACKWARD_IF_TRUE); + int jump = (9 << (sign + 1)) & when_to_jump_mask; if (!jump) { next_instr++; } + else if (jump >= 8) { + assert(opcode == POP_JUMP_BACKWARD_IF_TRUE || + opcode == POP_JUMP_BACKWARD_IF_FALSE); + JUMPBY(1 - oparg); + CHECK_EVAL_BREAKER(); + } else { + assert(opcode == POP_JUMP_FORWARD_IF_TRUE || + opcode == POP_JUMP_FORWARD_IF_FALSE); JUMPBY(1 + oparg); } - DISPATCH(); + NOTRACE_DISPATCH(); } TARGET(COMPARE_OP_STR_JUMP) { assert(cframe.use_tracing == 0); - // Combined: COMPARE_OP (str == str or str != str) + POP_JUMP_IF_(true/false) + // Combined: COMPARE_OP (str == str or str != str) + POP_JUMP_(direction)_IF_(true/false) _PyCompareOpCache *cache = (_PyCompareOpCache *)next_instr; - int invert = cache->mask; + int when_to_jump_mask = cache->mask; PyObject *right = TOP(); PyObject *left = SECOND(); DEOPT_IF(!PyUnicode_CheckExact(left), COMPARE_OP); @@ -3385,20 +3890,31 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int assert(oparg == Py_EQ || oparg == Py_NE); JUMPBY(INLINE_CACHE_ENTRIES_COMPARE_OP); NEXTOPARG(); - assert(opcode == POP_JUMP_IF_FALSE || opcode == POP_JUMP_IF_TRUE); + assert(opcode == POP_JUMP_FORWARD_IF_FALSE || + opcode == POP_JUMP_BACKWARD_IF_FALSE || + opcode == POP_JUMP_FORWARD_IF_TRUE || + opcode == POP_JUMP_BACKWARD_IF_TRUE); STACK_SHRINK(2); _Py_DECREF_SPECIALIZED(left, _PyUnicode_ExactDealloc); _Py_DECREF_SPECIALIZED(right, _PyUnicode_ExactDealloc); assert(res == 0 || res == 1); - assert(invert == 0 || invert == 1); - int jump = res ^ invert; + int sign = 1 - res; + int jump = (9 << (sign + 1)) & when_to_jump_mask; if (!jump) { next_instr++; } + else if (jump >= 8) { + assert(opcode == POP_JUMP_BACKWARD_IF_TRUE || + opcode == POP_JUMP_BACKWARD_IF_FALSE); + JUMPBY(1 - oparg); + CHECK_EVAL_BREAKER(); + } else { + assert(opcode == POP_JUMP_FORWARD_IF_TRUE || + opcode == POP_JUMP_FORWARD_IF_FALSE); JUMPBY(1 + oparg); } - DISPATCH(); + NOTRACE_DISPATCH(); } TARGET(IS_OP) { @@ -3542,8 +4058,34 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int JUMP_TO_INSTRUCTION(JUMP_BACKWARD_QUICK); } - TARGET(POP_JUMP_IF_FALSE) { - PREDICTED(POP_JUMP_IF_FALSE); + TARGET(POP_JUMP_BACKWARD_IF_FALSE) { + PREDICTED(POP_JUMP_BACKWARD_IF_FALSE); + PyObject *cond = POP(); + if (Py_IsTrue(cond)) { + _Py_DECREF_NO_DEALLOC(cond); + DISPATCH(); + } + if (Py_IsFalse(cond)) { + _Py_DECREF_NO_DEALLOC(cond); + JUMPBY(-oparg); + CHECK_EVAL_BREAKER(); + DISPATCH(); + } + int err = PyObject_IsTrue(cond); + Py_DECREF(cond); + if (err > 0) + ; + else if (err == 0) { + JUMPBY(-oparg); + CHECK_EVAL_BREAKER(); + } + else + goto error; + DISPATCH(); + } + + TARGET(POP_JUMP_FORWARD_IF_FALSE) { + PREDICTED(POP_JUMP_FORWARD_IF_FALSE); PyObject *cond = POP(); if (Py_IsTrue(cond)) { _Py_DECREF_NO_DEALLOC(cond); @@ -3566,7 +4108,32 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int DISPATCH(); } - TARGET(POP_JUMP_IF_TRUE) { + TARGET(POP_JUMP_BACKWARD_IF_TRUE) { + PyObject *cond = POP(); + if (Py_IsFalse(cond)) { + _Py_DECREF_NO_DEALLOC(cond); + DISPATCH(); + } + if (Py_IsTrue(cond)) { + _Py_DECREF_NO_DEALLOC(cond); + JUMPBY(-oparg); + CHECK_EVAL_BREAKER(); + DISPATCH(); + } + int err = PyObject_IsTrue(cond); + Py_DECREF(cond); + if (err > 0) { + JUMPBY(-oparg); + CHECK_EVAL_BREAKER(); + } + else if (err == 0) + ; + else + goto error; + DISPATCH(); + } + + TARGET(POP_JUMP_FORWARD_IF_TRUE) { PyObject *cond = POP(); if (Py_IsFalse(cond)) { _Py_DECREF_NO_DEALLOC(cond); @@ -3589,7 +4156,19 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int DISPATCH(); } - TARGET(POP_JUMP_IF_NOT_NONE) { + TARGET(POP_JUMP_BACKWARD_IF_NOT_NONE) { + PyObject *value = POP(); + if (!Py_IsNone(value)) { + Py_DECREF(value); + JUMPBY(-oparg); + CHECK_EVAL_BREAKER(); + DISPATCH(); + } + _Py_DECREF_NO_DEALLOC(value); + DISPATCH(); + } + + TARGET(POP_JUMP_FORWARD_IF_NOT_NONE) { PyObject *value = POP(); if (!Py_IsNone(value)) { JUMPBY(oparg); @@ -3598,7 +4177,20 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int DISPATCH(); } - TARGET(POP_JUMP_IF_NONE) { + TARGET(POP_JUMP_BACKWARD_IF_NONE) { + PyObject *value = POP(); + if (Py_IsNone(value)) { + _Py_DECREF_NO_DEALLOC(value); + JUMPBY(-oparg); + CHECK_EVAL_BREAKER(); + } + else { + Py_DECREF(value); + } + DISPATCH(); + } + + TARGET(POP_JUMP_FORWARD_IF_NONE) { PyObject *value = POP(); if (Py_IsNone(value)) { _Py_DECREF_NO_DEALLOC(value); @@ -3725,7 +4317,8 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int PyObject *res = match ? Py_True : Py_False; Py_INCREF(res); PUSH(res); - PREDICT(POP_JUMP_IF_FALSE); + PREDICT(POP_JUMP_FORWARD_IF_FALSE); + PREDICT(POP_JUMP_BACKWARD_IF_FALSE); DISPATCH(); } @@ -3735,7 +4328,8 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int PyObject *res = match ? Py_True : Py_False; Py_INCREF(res); PUSH(res); - PREDICT(POP_JUMP_IF_FALSE); + PREDICT(POP_JUMP_FORWARD_IF_FALSE); + PREDICT(POP_JUMP_BACKWARD_IF_FALSE); DISPATCH(); } @@ -3759,6 +4353,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int SET_TOP(iter); if (iter == NULL) goto error; + PREDICT(FOR_ITER); DISPATCH(); } @@ -3795,10 +4390,16 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int PREDICTED(FOR_ITER); /* before: [iter]; after: [iter, iter()] *or* [] */ PyObject *iter = TOP(); +#ifdef Py_STATS + extern int _PySpecialization_ClassifyIterator(PyObject *); + _py_stats.opcode_stats[FOR_ITER].specialization.failure++; + _py_stats.opcode_stats[FOR_ITER].specialization.failure_kinds[_PySpecialization_ClassifyIterator(iter)]++; +#endif PyObject *next = (*Py_TYPE(iter)->tp_iternext)(iter); if (next != NULL) { PUSH(next); - JUMPBY(INLINE_CACHE_ENTRIES_FOR_ITER); + PREDICT(STORE_FAST); + PREDICT(UNPACK_SEQUENCE); DISPATCH(); } if (_PyErr_Occurred(tstate)) { @@ -3813,68 +4414,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int /* iterator ended normally */ STACK_SHRINK(1); Py_DECREF(iter); - JUMPBY(INLINE_CACHE_ENTRIES_FOR_ITER + oparg); - DISPATCH(); - } - - TARGET(FOR_ITER_ADAPTIVE) { - assert(cframe.use_tracing == 0); - _PyForIterCache *cache = (_PyForIterCache *)next_instr; - if (ADAPTIVE_COUNTER_IS_ZERO(cache)) { - next_instr--; - _Py_Specialize_ForIter(TOP(), next_instr); - DISPATCH_SAME_OPARG(); - } - else { - STAT_INC(FOR_ITER, deferred); - DECREMENT_ADAPTIVE_COUNTER(cache); - JUMP_TO_INSTRUCTION(FOR_ITER); - } - } - - TARGET(FOR_ITER_LIST) { - assert(cframe.use_tracing == 0); - _PyListIterObject *it = (_PyListIterObject *)TOP(); - DEOPT_IF(Py_TYPE(it) != &PyListIter_Type, FOR_ITER); - STAT_INC(FOR_ITER, hit); - PyListObject *seq = it->it_seq; - if (seq) { - if (it->it_index < PyList_GET_SIZE(seq)) { - PyObject *next = PyList_GET_ITEM(seq, it->it_index++); - Py_INCREF(next); - PUSH(next); - JUMPBY(INLINE_CACHE_ENTRIES_FOR_ITER); - DISPATCH(); - } - it->it_seq = NULL; - Py_DECREF(seq); - } - STACK_SHRINK(1); - Py_DECREF(it); - JUMPBY(INLINE_CACHE_ENTRIES_FOR_ITER + oparg); - DISPATCH(); - } - - TARGET(FOR_ITER_RANGE) { - assert(cframe.use_tracing == 0); - _PyRangeIterObject *r = (_PyRangeIterObject *)TOP(); - DEOPT_IF(Py_TYPE(r) != &PyRangeIter_Type, FOR_ITER); - STAT_INC(FOR_ITER, hit); - _Py_CODEUNIT next = next_instr[INLINE_CACHE_ENTRIES_FOR_ITER]; - assert(_PyOpcode_Deopt[_Py_OPCODE(next)] == STORE_FAST); - if (r->index >= r->len) { - STACK_SHRINK(1); - Py_DECREF(r); - JUMPBY(INLINE_CACHE_ENTRIES_FOR_ITER + oparg); - DISPATCH(); - } - long value = (long)(r->start + - (unsigned long)(r->index++) * r->step); - if (_PyLong_AssignValue(&GETLOCAL(_Py_OPARG(next)), value) < 0) { - goto error; - } - // The STORE_FAST is already done. - JUMPBY(INLINE_CACHE_ENTRIES_FOR_ITER + 1); + JUMPBY(oparg); DISPATCH(); } @@ -3999,100 +4539,198 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int DISPATCH(); } - TARGET(LOAD_ATTR_METHOD_WITH_VALUES) { - /* Cached method object */ + TARGET(LOAD_METHOD) { + PREDICTED(LOAD_METHOD); + /* Designed to work in tandem with CALL. */ + PyObject *name = GETITEM(names, oparg); + PyObject *obj = TOP(); + PyObject *meth = NULL; + + int meth_found = _PyObject_GetMethod(obj, name, &meth); + + if (meth == NULL) { + /* Most likely attribute wasn't found. */ + goto error; + } + + if (meth_found) { + /* We can bypass temporary bound method object. + meth is unbound method and obj is self. + + meth | self | arg1 | ... | argN + */ + SET_TOP(meth); + PUSH(obj); // self + } + else { + /* meth is not an unbound method (but a regular attr, or + something was returned by a descriptor protocol). Set + the second element of the stack to NULL, to signal + CALL that it's not a method call. + + NULL | meth | arg1 | ... | argN + */ + SET_TOP(NULL); + Py_DECREF(obj); + PUSH(meth); + } + JUMPBY(INLINE_CACHE_ENTRIES_LOAD_METHOD); + DISPATCH(); + } + + TARGET(LOAD_METHOD_ADAPTIVE) { + assert(cframe.use_tracing == 0); + _PyLoadMethodCache *cache = (_PyLoadMethodCache *)next_instr; + if (cache->counter == 0) { + PyObject *owner = TOP(); + PyObject *name = GETITEM(names, oparg); + next_instr--; + if (_Py_Specialize_LoadMethod(owner, next_instr, name) < 0) { + goto error; + } + NOTRACE_DISPATCH_SAME_OPARG(); + } + else { + STAT_INC(LOAD_METHOD, deferred); + cache->counter--; + JUMP_TO_INSTRUCTION(LOAD_METHOD); + } + } + + TARGET(LOAD_METHOD_WITH_VALUES) { + /* LOAD_METHOD, with cached method object */ assert(cframe.use_tracing == 0); PyObject *self = TOP(); PyTypeObject *self_cls = Py_TYPE(self); _PyLoadMethodCache *cache = (_PyLoadMethodCache *)next_instr; uint32_t type_version = read_u32(cache->type_version); assert(type_version != 0); - DEOPT_IF(self_cls->tp_version_tag != type_version, LOAD_ATTR); + DEOPT_IF(self_cls->tp_version_tag != type_version, LOAD_METHOD); assert(self_cls->tp_flags & Py_TPFLAGS_MANAGED_DICT); - PyDictOrValues dorv = *_PyObject_DictOrValuesPointer(self); - DEOPT_IF(!_PyDictOrValues_IsValues(dorv), LOAD_ATTR); + PyDictObject *dict = *(PyDictObject**)_PyObject_ManagedDictPointer(self); + DEOPT_IF(dict != NULL, LOAD_METHOD); PyHeapTypeObject *self_heap_type = (PyHeapTypeObject *)self_cls; DEOPT_IF(self_heap_type->ht_cached_keys->dk_version != - read_u32(cache->keys_version), LOAD_ATTR); - STAT_INC(LOAD_ATTR, hit); + read_u32(cache->keys_version), LOAD_METHOD); + STAT_INC(LOAD_METHOD, hit); PyObject *res = read_obj(cache->descr); assert(res != NULL); assert(_PyType_HasFeature(Py_TYPE(res), Py_TPFLAGS_METHOD_DESCRIPTOR)); Py_INCREF(res); SET_TOP(res); PUSH(self); - JUMPBY(INLINE_CACHE_ENTRIES_LOAD_ATTR); - DISPATCH(); + JUMPBY(INLINE_CACHE_ENTRIES_LOAD_METHOD); + NOTRACE_DISPATCH(); } - TARGET(LOAD_ATTR_METHOD_WITH_DICT) { - /* Can be either a managed dict, or a tp_dictoffset offset.*/ + TARGET(LOAD_METHOD_WITH_DICT) { + /* LOAD_METHOD, with a dict + Can be either a managed dict, or a tp_dictoffset offset.*/ assert(cframe.use_tracing == 0); PyObject *self = TOP(); PyTypeObject *self_cls = Py_TYPE(self); _PyLoadMethodCache *cache = (_PyLoadMethodCache *)next_instr; DEOPT_IF(self_cls->tp_version_tag != read_u32(cache->type_version), - LOAD_ATTR); + LOAD_METHOD); /* Treat index as a signed 16 bit value */ - Py_ssize_t dictoffset = self_cls->tp_dictoffset; - assert(dictoffset > 0); + int dictoffset = *(int16_t *)&cache->dict_offset; PyDictObject **dictptr = (PyDictObject**)(((char *)self)+dictoffset); + assert( + dictoffset == MANAGED_DICT_OFFSET || + (dictoffset == self_cls->tp_dictoffset && dictoffset > 0) + ); PyDictObject *dict = *dictptr; - DEOPT_IF(dict == NULL, LOAD_ATTR); + DEOPT_IF(dict == NULL, LOAD_METHOD); DEOPT_IF(dict->ma_keys->dk_version != read_u32(cache->keys_version), - LOAD_ATTR); - STAT_INC(LOAD_ATTR, hit); + LOAD_METHOD); + STAT_INC(LOAD_METHOD, hit); PyObject *res = read_obj(cache->descr); assert(res != NULL); assert(_PyType_HasFeature(Py_TYPE(res), Py_TPFLAGS_METHOD_DESCRIPTOR)); Py_INCREF(res); SET_TOP(res); PUSH(self); - JUMPBY(INLINE_CACHE_ENTRIES_LOAD_ATTR); - DISPATCH(); + JUMPBY(INLINE_CACHE_ENTRIES_LOAD_METHOD); + NOTRACE_DISPATCH(); } - TARGET(LOAD_ATTR_METHOD_NO_DICT) { + TARGET(LOAD_METHOD_NO_DICT) { assert(cframe.use_tracing == 0); PyObject *self = TOP(); PyTypeObject *self_cls = Py_TYPE(self); _PyLoadMethodCache *cache = (_PyLoadMethodCache *)next_instr; uint32_t type_version = read_u32(cache->type_version); - DEOPT_IF(self_cls->tp_version_tag != type_version, LOAD_ATTR); + DEOPT_IF(self_cls->tp_version_tag != type_version, LOAD_METHOD); assert(self_cls->tp_dictoffset == 0); - STAT_INC(LOAD_ATTR, hit); + STAT_INC(LOAD_METHOD, hit); PyObject *res = read_obj(cache->descr); assert(res != NULL); assert(_PyType_HasFeature(Py_TYPE(res), Py_TPFLAGS_METHOD_DESCRIPTOR)); Py_INCREF(res); SET_TOP(res); PUSH(self); - JUMPBY(INLINE_CACHE_ENTRIES_LOAD_ATTR); - DISPATCH(); + JUMPBY(INLINE_CACHE_ENTRIES_LOAD_METHOD); + NOTRACE_DISPATCH(); } - TARGET(LOAD_ATTR_METHOD_LAZY_DICT) { + TARGET(LOAD_METHOD_LAZY_DICT) { assert(cframe.use_tracing == 0); PyObject *self = TOP(); PyTypeObject *self_cls = Py_TYPE(self); _PyLoadMethodCache *cache = (_PyLoadMethodCache *)next_instr; uint32_t type_version = read_u32(cache->type_version); - DEOPT_IF(self_cls->tp_version_tag != type_version, LOAD_ATTR); - Py_ssize_t dictoffset = self_cls->tp_dictoffset; - assert(dictoffset > 0); + DEOPT_IF(self_cls->tp_version_tag != type_version, LOAD_METHOD); + int dictoffset = cache->dict_offset; PyObject *dict = *(PyObject **)((char *)self + dictoffset); + assert(dictoffset == self_cls->tp_dictoffset && dictoffset > 0); /* This object has a __dict__, just not yet created */ - DEOPT_IF(dict != NULL, LOAD_ATTR); - STAT_INC(LOAD_ATTR, hit); + DEOPT_IF(dict != NULL, LOAD_METHOD); + STAT_INC(LOAD_METHOD, hit); PyObject *res = read_obj(cache->descr); assert(res != NULL); assert(_PyType_HasFeature(Py_TYPE(res), Py_TPFLAGS_METHOD_DESCRIPTOR)); Py_INCREF(res); SET_TOP(res); PUSH(self); - JUMPBY(INLINE_CACHE_ENTRIES_LOAD_ATTR); - DISPATCH(); + JUMPBY(INLINE_CACHE_ENTRIES_LOAD_METHOD); + NOTRACE_DISPATCH(); + } + + TARGET(LOAD_METHOD_MODULE) { + /* LOAD_METHOD, for module methods */ + assert(cframe.use_tracing == 0); + PyObject *owner = TOP(); + PyObject *res; + LOAD_MODULE_ATTR_OR_METHOD(METHOD); + SET_TOP(NULL); + Py_DECREF(owner); + PUSH(res); + JUMPBY(INLINE_CACHE_ENTRIES_LOAD_METHOD); + NOTRACE_DISPATCH(); + } + + TARGET(LOAD_METHOD_CLASS) { + /* LOAD_METHOD, for class methods */ + assert(cframe.use_tracing == 0); + _PyLoadMethodCache *cache = (_PyLoadMethodCache *)next_instr; + + PyObject *cls = TOP(); + DEOPT_IF(!PyType_Check(cls), LOAD_METHOD); + uint32_t type_version = read_u32(cache->type_version); + DEOPT_IF(((PyTypeObject *)cls)->tp_version_tag != type_version, + LOAD_METHOD); + assert(type_version != 0); + + STAT_INC(LOAD_METHOD, hit); + PyObject *res = read_obj(cache->descr); + assert(res != NULL); + Py_INCREF(res); + SET_TOP(NULL); + Py_DECREF(cls); + PUSH(res); + JUMPBY(INLINE_CACHE_ENTRIES_LOAD_METHOD); + NOTRACE_DISPATCH(); } TARGET(CALL_BOUND_METHOD_EXACT_ARGS) { @@ -4107,7 +4745,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int PEEK(oparg + 1) = self; PEEK(oparg + 2) = meth; Py_DECREF(function); - JUMP_TO_INSTRUCTION(CALL_PY_EXACT_ARGS); + goto call_exact_args; } TARGET(KW_NAMES) { @@ -4118,8 +4756,8 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int } TARGET(CALL) { - PREDICTED(CALL); int total_args, is_meth; + call_function: is_meth = is_method(stack_pointer, oparg); PyObject *function = PEEK(oparg + 1); if (!is_meth && Py_TYPE(function) == &PyMethod_Type) { @@ -4136,12 +4774,9 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int function = PEEK(total_args + 1); int positional_args = total_args - KWNAMES_LEN(); // Check if the call can be inlined or not - if (Py_TYPE(function) == &PyFunction_Type && - tstate->interp->eval_frame == NULL && - ((PyFunctionObject *)function)->vectorcall == _PyFunction_Vectorcall) - { + if (Py_TYPE(function) == &PyFunction_Type && tstate->interp->eval_frame == NULL) { int code_flags = ((PyCodeObject*)PyFunction_GET_CODE(function))->co_flags; - PyObject *locals = code_flags & CO_OPTIMIZED ? NULL : Py_NewRef(PyFunction_GET_GLOBALS(function)); + PyObject *locals = code_flags & CO_OPTIMIZED ? NULL : PyFunction_GET_GLOBALS(function); STACK_SHRINK(total_args); _PyInterpreterFrame *new_frame = _PyEvalFramePushAndInit( tstate, (PyFunctionObject *)function, locals, @@ -4195,7 +4830,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int TARGET(CALL_ADAPTIVE) { _PyCallCache *cache = (_PyCallCache *)next_instr; - if (ADAPTIVE_COUNTER_IS_ZERO(cache)) { + if (cache->counter == 0) { next_instr--; int is_meth = is_method(stack_pointer, oparg); int nargs = oparg + is_meth; @@ -4205,17 +4840,17 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int if (err < 0) { goto error; } - DISPATCH_SAME_OPARG(); + NOTRACE_DISPATCH_SAME_OPARG(); } else { STAT_INC(CALL, deferred); - DECREMENT_ADAPTIVE_COUNTER(cache); - JUMP_TO_INSTRUCTION(CALL); + cache->counter--; + goto call_function; } } TARGET(CALL_PY_EXACT_ARGS) { - PREDICTED(CALL_PY_EXACT_ARGS); + call_exact_args: assert(call_shape.kwnames == NULL); DEOPT_IF(tstate->interp->eval_frame, CALL); _PyCallCache *cache = (_PyCallCache *)next_instr; @@ -4227,9 +4862,11 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int DEOPT_IF(func->func_version != read_u32(cache->func_version), CALL); PyCodeObject *code = (PyCodeObject *)func->func_code; DEOPT_IF(code->co_argcount != argcount, CALL); - DEOPT_IF(!_PyThreadState_HasStackSpace(tstate, code->co_framesize), CALL); STAT_INC(CALL, hit); - _PyInterpreterFrame *new_frame = _PyFrame_PushUnchecked(tstate, func); + _PyInterpreterFrame *new_frame = _PyFrame_Push(tstate, func); + if (new_frame == NULL) { + goto error; + } CALL_STAT_INC(inlined_py_calls); STACK_SHRINK(argcount); for (int i = 0; i < argcount; i++) { @@ -4261,9 +4898,11 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int DEOPT_IF(argcount > code->co_argcount, CALL); int minargs = cache->min_args; DEOPT_IF(argcount < minargs, CALL); - DEOPT_IF(!_PyThreadState_HasStackSpace(tstate, code->co_framesize), CALL); STAT_INC(CALL, hit); - _PyInterpreterFrame *new_frame = _PyFrame_PushUnchecked(tstate, func); + _PyInterpreterFrame *new_frame = _PyFrame_Push(tstate, func); + if (new_frame == NULL) { + goto error; + } CALL_STAT_INC(inlined_py_calls); STACK_SHRINK(argcount); for (int i = 0; i < argcount; i++) { @@ -4302,7 +4941,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int Py_DECREF(obj); STACK_SHRINK(2); SET_TOP(res); - DISPATCH(); + NOTRACE_DISPATCH(); } TARGET(CALL_NO_KW_STR_1) { @@ -4572,7 +5211,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int STACK_SHRINK(2); Py_DECREF(list); Py_DECREF(callable); - DISPATCH(); + NOTRACE_DISPATCH(); } TARGET(CALL_NO_KW_METHOD_DESCRIPTOR_O) { @@ -4722,8 +5361,19 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int PyObject *func, *callargs, *kwargs = NULL, *result; if (oparg & 0x01) { kwargs = POP(); - // DICT_MERGE is called before this opcode if there are kwargs. - // It converts all dict subtypes in kwargs into regular dicts. + if (!PyDict_CheckExact(kwargs)) { + PyObject *d = PyDict_New(); + if (d == NULL) + goto error; + if (_PyDict_MergeEx(d, kwargs, 2) < 0) { + Py_DECREF(d); + format_kwargs_error(tstate, SECOND(), kwargs); + Py_DECREF(kwargs); + goto error; + } + Py_DECREF(kwargs); + kwargs = d; + } assert(PyDict_CheckExact(kwargs)); } callargs = POP(); @@ -4787,9 +5437,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int } TARGET(RETURN_GENERATOR) { - assert(PyFunction_Check(frame->f_funcobj)); - PyFunctionObject *func = (PyFunctionObject *)frame->f_funcobj; - PyGenObject *gen = (PyGenObject *)_Py_MakeCoro(func); + PyGenObject *gen = (PyGenObject *)_Py_MakeCoro(frame->f_func); if (gen == NULL) { goto error; } @@ -4811,7 +5459,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int /* Make sure that frame is in a valid state */ frame->stacktop = 0; frame->f_locals = NULL; - Py_INCREF(frame->f_funcobj); + Py_INCREF(frame->f_func); Py_INCREF(frame->f_code); /* Restore previous cframe and return. */ tstate->cframe = cframe.previous; @@ -4928,16 +5576,16 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int TARGET(BINARY_OP_ADAPTIVE) { assert(cframe.use_tracing == 0); _PyBinaryOpCache *cache = (_PyBinaryOpCache *)next_instr; - if (ADAPTIVE_COUNTER_IS_ZERO(cache)) { + if (cache->counter == 0) { PyObject *lhs = SECOND(); PyObject *rhs = TOP(); next_instr--; _Py_Specialize_BinaryOp(lhs, rhs, next_instr, oparg, &GETLOCAL(0)); - DISPATCH_SAME_OPARG(); + NOTRACE_DISPATCH_SAME_OPARG(); } else { STAT_INC(BINARY_OP, deferred); - DECREMENT_ADAPTIVE_COUNTER(cache); + cache->counter--; JUMP_TO_INSTRUCTION(BINARY_OP); } } @@ -4954,26 +5602,16 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int assert(oparg); oparg <<= 8; oparg |= _Py_OPARG(*next_instr); - // We might be tracing. To avoid breaking tracing guarantees in - // quickened instructions, always deoptimize the next opcode: opcode = _PyOpcode_Deopt[_Py_OPCODE(*next_instr)]; PRE_DISPATCH_GOTO(); - // CPython hasn't traced the following instruction historically - // (DO_TRACING would clobber our extended oparg anyways), so just - // skip our usual cframe.use_tracing check before dispatch. Also, - // make sure the next instruction isn't a RESUME, since that needs - // to trace properly (and shouldn't have an extended arg anyways): - assert(opcode != RESUME); DISPATCH_GOTO(); } TARGET(EXTENDED_ARG_QUICK) { - assert(cframe.use_tracing == 0); assert(oparg); - int oldoparg = oparg; - NEXTOPARG(); - oparg |= oldoparg << 8; - DISPATCH_GOTO(); + oparg <<= 8; + oparg |= _Py_OPARG(*next_instr); + NOTRACE_DISPATCH_SAME_OPARG(); } TARGET(CACHE) { @@ -4986,56 +5624,57 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int case DO_TRACING: #endif { - assert(cframe.use_tracing); - assert(tstate->tracing == 0); - if (INSTR_OFFSET() >= frame->f_code->_co_firsttraceable) { + if (tstate->tracing == 0) { int instr_prev = _PyInterpreterFrame_LASTI(frame); frame->prev_instr = next_instr; TRACING_NEXTOPARG(); - if (opcode == RESUME) { - if (oparg < 2) { - CHECK_EVAL_BREAKER(); - } - /* Call tracing */ - TRACE_FUNCTION_ENTRY(); - DTRACE_FUNCTION_ENTRY(); - } - else { - /* line-by-line tracing support */ - if (PyDTrace_LINE_ENABLED()) { - maybe_dtrace_line(frame, &tstate->trace_info, instr_prev); - } + switch(opcode) { + case COPY_FREE_VARS: + case MAKE_CELL: + case RETURN_GENERATOR: + /* Frame not fully initialized */ + break; + case RESUME: + if (oparg < 2) { + CHECK_EVAL_BREAKER(); + } + /* Call tracing */ + TRACE_FUNCTION_ENTRY(); + DTRACE_FUNCTION_ENTRY(); + break; + case POP_TOP: + if (_Py_OPCODE(next_instr[-1]) == RETURN_GENERATOR) { + /* Frame not fully initialized */ + break; + } + /* fall through */ + default: + /* line-by-line tracing support */ + if (PyDTrace_LINE_ENABLED()) { + maybe_dtrace_line(frame, &tstate->trace_info, instr_prev); + } - if (cframe.use_tracing && - tstate->c_tracefunc != NULL && !tstate->tracing) { - int err; - /* see maybe_call_line_trace() - for expository comments */ - _PyFrame_SetStackPointer(frame, stack_pointer); - - err = maybe_call_line_trace(tstate->c_tracefunc, - tstate->c_traceobj, - tstate, frame, instr_prev); - // Reload possibly changed frame fields: - stack_pointer = _PyFrame_GetStackPointer(frame); - frame->stacktop = -1; - // next_instr is only reloaded if tracing *does not* raise. - // This is consistent with the behavior of older Python - // versions. If a trace function sets a new f_lineno and - // *then* raises, we use the *old* location when searching - // for an exception handler, displaying the traceback, and - // so on: - if (err) { - // next_instr wasn't incremented at the start of this - // instruction. Increment it before handling the error, - // so that it looks the same as a "normal" instruction: - next_instr++; - goto error; + if (cframe.use_tracing && + tstate->c_tracefunc != NULL && !tstate->tracing) { + int err; + /* see maybe_call_line_trace() + for expository comments */ + _PyFrame_SetStackPointer(frame, stack_pointer); + + err = maybe_call_line_trace(tstate->c_tracefunc, + tstate->c_traceobj, + tstate, frame, instr_prev); + if (err) { + /* trace function raised an exception */ + next_instr++; + goto error; + } + /* Reload possibly changed frame fields */ + next_instr = frame->prev_instr; + + stack_pointer = _PyFrame_GetStackPointer(frame); + frame->stacktop = -1; } - // Reload next_instr. Don't increment it, though, since - // we're going to re-dispatch to the "true" instruction now: - next_instr = frame->prev_instr; - } } } TRACING_NEXTOPARG(); @@ -5048,9 +5687,6 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int #else EXTRA_CASES // From opcode.h, a 'case' for each unused opcode #endif - /* Tell C compilers not to hold the opcode variable in the loop. - next_instr points the current instruction without TARGET(). */ - opcode = _Py_OPCODE(*next_instr); fprintf(stderr, "XXX lineno: %d, opcode: %d\n", _PyInterpreterFrame_GetLine(frame), opcode); _PyErr_SetString(tstate, PyExc_SystemError, "unknown opcode"); @@ -5077,12 +5713,22 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int assert(adaptive_opcode); _Py_SET_OPCODE(next_instr[-1], adaptive_opcode); STAT_INC(opcode, deopt); - *counter = adaptive_counter_start(); + *counter = ADAPTIVE_CACHE_BACKOFF; } next_instr--; DISPATCH_GOTO(); } +binary_subscr_dict_error: + { + PyObject *sub = POP(); + if (!_PyErr_Occurred(tstate)) { + _PyErr_SetKeyError(sub); + } + Py_DECREF(sub); + goto error; + } + unbound_local_error: { format_exc_check_arg(tstate, PyExc_UnboundLocalError, @@ -5105,11 +5751,9 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int #endif /* Log traceback info. */ - if (!_PyFrame_IsIncomplete(frame)) { - PyFrameObject *f = _PyFrame_GetFrameObject(frame); - if (f != NULL) { - PyTraceBack_Here(f); - } + PyFrameObject *f = _PyFrame_GetFrameObject(frame); + if (f != NULL) { + PyTraceBack_Here(f); } if (tstate->c_tracefunc != NULL) { @@ -5414,6 +6058,20 @@ positional_only_passed_as_keyword(PyThreadState *tstate, PyCodeObject *co, } +/* Exception table parsing code. + * See Objects/exception_table_notes.txt for details. + */ + +static inline unsigned char * +parse_varint(unsigned char *p, int *result) { + int val = p[0] & 63; + while (p[0] & 64) { + p++; + val = (val << 6) | (p[0] & 63); + } + *result = val; + return p+1; +} static inline unsigned char * scan_back_to_entry_start(unsigned char *p) { @@ -5526,13 +6184,7 @@ initialize_locals(PyThreadState *tstate, PyFunctionObject *func, /* Pack other positional arguments into the *args argument */ if (co->co_flags & CO_VARARGS) { PyObject *u = NULL; - if (argcount == n) { - u = Py_NewRef(&_Py_SINGLETON(tuple_empty)); - } - else { - assert(args != NULL); - u = _PyTuple_FromArraySteal(args + n, argcount - n); - } + u = _PyTuple_FromArraySteal(args + n, argcount - n); if (u == NULL) { goto fail_post_positional; } @@ -5708,26 +6360,27 @@ initialize_locals(PyThreadState *tstate, PyFunctionObject *func, return -1; } -/* Consumes references to func, locals and all the args */ +/* Consumes references to func and all the args */ static _PyInterpreterFrame * _PyEvalFramePushAndInit(PyThreadState *tstate, PyFunctionObject *func, PyObject *locals, PyObject* const* args, size_t argcount, PyObject *kwnames) { PyCodeObject * code = (PyCodeObject *)func->func_code; + size_t size = code->co_nlocalsplus + code->co_stacksize + FRAME_SPECIALS_SIZE; CALL_STAT_INC(frames_pushed); - _PyInterpreterFrame *frame = _PyThreadState_PushFrame(tstate, code->co_framesize); + _PyInterpreterFrame *frame = _PyThreadState_BumpFramePointer(tstate, size); if (frame == NULL) { goto fail; } - _PyFrame_InitializeSpecials(frame, func, locals, code); + _PyFrame_InitializeSpecials(frame, func, locals, code->co_nlocalsplus); PyObject **localsarray = &frame->localsplus[0]; for (int i = 0; i < code->co_nlocalsplus; i++) { localsarray[i] = NULL; } if (initialize_locals(tstate, func, localsarray, args, argcount, kwnames)) { assert(frame->owner != FRAME_OWNED_BY_GENERATOR); - _PyEvalFrameClearAndPop(tstate, frame); + _PyFrame_Clear(frame); return NULL; } return frame; @@ -5749,10 +6402,6 @@ _PyEvalFramePushAndInit(PyThreadState *tstate, PyFunctionObject *func, static void _PyEvalFrameClearAndPop(PyThreadState *tstate, _PyInterpreterFrame * frame) { - // Make sure that this is, indeed, the top frame. We can't check this in - // _PyThreadState_PopFrame, since f_code is already cleared at that point: - assert((PyObject **)frame + frame->f_code->co_framesize == - tstate->datastack_top); tstate->recursion_remaining--; assert(frame->frame_obj == NULL || frame->frame_obj->f_frame == frame); assert(frame->owner == FRAME_OWNED_BY_THREAD); @@ -5768,9 +6417,8 @@ _PyEval_Vector(PyThreadState *tstate, PyFunctionObject *func, PyObject *kwnames) { /* _PyEvalFramePushAndInit consumes the references - * to func, locals and all its arguments */ + * to func and all its arguments */ Py_INCREF(func); - Py_XINCREF(locals); for (size_t i = 0; i < argcount; i++) { Py_INCREF(args[i]); } @@ -6198,15 +6846,12 @@ void PyThreadState_EnterTracing(PyThreadState *tstate) { tstate->tracing++; - tstate->cframe->use_tracing = 0; } void PyThreadState_LeaveTracing(PyThreadState *tstate) { - assert(tstate->tracing > 0 && tstate->cframe->use_tracing == 0); tstate->tracing--; - _PyThreadState_UpdateTracingState(tstate); } static int @@ -6226,10 +6871,9 @@ call_trace(Py_tracefunc func, PyObject *obj, tstate->tracing_what = what; PyThreadState_EnterTracing(tstate); assert(_PyInterpreterFrame_LASTI(frame) >= 0); - if (_PyCode_InitLineArray(frame->f_code)) { - return -1; - } - f->f_lineno = _PyCode_LineNumberFromArray(frame->f_code, _PyInterpreterFrame_LASTI(frame)); + initialize_trace_info(&tstate->trace_info, frame); + int addr = _PyInterpreterFrame_LASTI(frame) * sizeof(_Py_CODEUNIT); + f->f_lineno = _PyCode_CheckLineNumber(addr, &tstate->trace_info.bounds); result = func(obj, f, what, arg); f->f_lineno = 0; PyThreadState_LeaveTracing(tstate); @@ -6266,17 +6910,21 @@ maybe_call_line_trace(Py_tracefunc func, PyObject *obj, represents a jump backwards, update the frame's line number and then call the trace function if we're tracing source lines. */ - if (_PyCode_InitLineArray(frame->f_code)) { - return -1; + initialize_trace_info(&tstate->trace_info, frame); + int entry_point = 0; + _Py_CODEUNIT *code = _PyCode_CODE(frame->f_code); + while (_PyOpcode_Deopt[_Py_OPCODE(code[entry_point])] != RESUME) { + entry_point++; } int lastline; - if (instr_prev <= frame->f_code->_co_firsttraceable) { + if (instr_prev <= entry_point) { lastline = -1; } else { - lastline = _PyCode_LineNumberFromArray(frame->f_code, instr_prev); + lastline = _PyCode_CheckLineNumber(instr_prev*sizeof(_Py_CODEUNIT), &tstate->trace_info.bounds); } - int line = _PyCode_LineNumberFromArray(frame->f_code, _PyInterpreterFrame_LASTI(frame)); + int addr = _PyInterpreterFrame_LASTI(frame) * sizeof(_Py_CODEUNIT); + int line = _PyCode_CheckLineNumber(addr, &tstate->trace_info.bounds); PyFrameObject *f = _PyFrame_GetFrameObject(frame); if (f == NULL) { return -1; @@ -6306,20 +6954,10 @@ _PyEval_SetProfile(PyThreadState *tstate, Py_tracefunc func, PyObject *arg) /* The caller must hold the GIL */ assert(PyGILState_Check()); - static int reentrant = 0; - if (reentrant) { - _PyErr_SetString(tstate, PyExc_RuntimeError, "Cannot install a profile function " - "while another profile function is being installed"); - reentrant = 0; - return -1; - } - reentrant = 1; - /* Call _PySys_Audit() in the context of the current thread state, even if tstate is not the current thread state. */ PyThreadState *current_tstate = _PyThreadState_GET(); if (_PySys_Audit(current_tstate, "sys.setprofile", NULL) < 0) { - reentrant = 0; return -1; } @@ -6337,7 +6975,6 @@ _PyEval_SetProfile(PyThreadState *tstate, Py_tracefunc func, PyObject *arg) /* Flag that tracing or profiling is turned on */ _PyThreadState_UpdateTracingState(tstate); - reentrant = 0; return 0; } @@ -6351,27 +6988,6 @@ PyEval_SetProfile(Py_tracefunc func, PyObject *arg) } } -void -PyEval_SetProfileAllThreads(Py_tracefunc func, PyObject *arg) -{ - PyThreadState *this_tstate = _PyThreadState_GET(); - PyInterpreterState* interp = this_tstate->interp; - - _PyRuntimeState *runtime = &_PyRuntime; - HEAD_LOCK(runtime); - PyThreadState* ts = PyInterpreterState_ThreadHead(interp); - HEAD_UNLOCK(runtime); - - while (ts) { - if (_PyEval_SetProfile(ts, func, arg) < 0) { - _PyErr_WriteUnraisableMsg("in PyEval_SetProfileAllThreads", NULL); - } - HEAD_LOCK(runtime); - ts = PyThreadState_Next(ts); - HEAD_UNLOCK(runtime); - } -} - int _PyEval_SetTrace(PyThreadState *tstate, Py_tracefunc func, PyObject *arg) { @@ -6379,21 +6995,10 @@ _PyEval_SetTrace(PyThreadState *tstate, Py_tracefunc func, PyObject *arg) /* The caller must hold the GIL */ assert(PyGILState_Check()); - static int reentrant = 0; - - if (reentrant) { - _PyErr_SetString(tstate, PyExc_RuntimeError, "Cannot install a trace function " - "while another trace function is being installed"); - reentrant = 0; - return -1; - } - reentrant = 1; - /* Call _PySys_Audit() in the context of the current thread state, even if tstate is not the current thread state. */ PyThreadState *current_tstate = _PyThreadState_GET(); if (_PySys_Audit(current_tstate, "sys.settrace", NULL) < 0) { - reentrant = 0; return -1; } @@ -6403,15 +7008,15 @@ _PyEval_SetTrace(PyThreadState *tstate, Py_tracefunc func, PyObject *arg) tstate->c_traceobj = NULL; /* Must make sure that profiling is not ignored if 'traceobj' is freed */ _PyThreadState_UpdateTracingState(tstate); - Py_XINCREF(arg); Py_XDECREF(traceobj); + + Py_XINCREF(arg); tstate->c_traceobj = arg; tstate->c_tracefunc = func; /* Flag that tracing or profiling is turned on */ _PyThreadState_UpdateTracingState(tstate); - reentrant = 0; return 0; } @@ -6425,26 +7030,6 @@ PyEval_SetTrace(Py_tracefunc func, PyObject *arg) } } -void -PyEval_SetTraceAllThreads(Py_tracefunc func, PyObject *arg) -{ - PyThreadState *this_tstate = _PyThreadState_GET(); - PyInterpreterState* interp = this_tstate->interp; - - _PyRuntimeState *runtime = &_PyRuntime; - HEAD_LOCK(runtime); - PyThreadState* ts = PyInterpreterState_ThreadHead(interp); - HEAD_UNLOCK(runtime); - - while (ts) { - if (_PyEval_SetTrace(ts, func, arg) < 0) { - _PyErr_WriteUnraisableMsg("in PyEval_SetTraceAllThreads", NULL); - } - HEAD_LOCK(runtime); - ts = PyThreadState_Next(ts); - HEAD_UNLOCK(runtime); - } -} int _PyEval_SetCoroutineOriginTrackingDepth(int depth) @@ -7230,7 +7815,7 @@ _Py_GetDXProfile(PyObject *self, PyObject *args) PyObject *l = PyList_New(257); if (l == NULL) return NULL; for (i = 0; i < 256; i++) { - PyObject *x = getarray(_py_stats_struct.opcode_stats[i].pair_count); + PyObject *x = getarray(_py_stats.opcode_stats[i].pair_count); if (x == NULL) { Py_DECREF(l); return NULL; @@ -7244,7 +7829,7 @@ _Py_GetDXProfile(PyObject *self, PyObject *args) } for (i = 0; i < 256; i++) { PyObject *x = PyLong_FromUnsignedLongLong( - _py_stats_struct.opcode_stats[i].execution_count); + _py_stats.opcode_stats[i].execution_count); if (x == NULL) { Py_DECREF(counts); Py_DECREF(l); diff --git a/Python/ceval_gil.c b/Python/ceval_gil.c deleted file mode 100644 index a6790866766795..00000000000000 --- a/Python/ceval_gil.c +++ /dev/null @@ -1,986 +0,0 @@ - -#include "Python.h" -#include "pycore_atomic.h" // _Py_atomic_int -#include "pycore_ceval.h" // _PyEval_SignalReceived() -#include "pycore_pyerrors.h" // _PyErr_Fetch() -#include "pycore_pylifecycle.h" // _PyErr_Print() -#include "pycore_initconfig.h" // _PyStatus_OK() -#include "pycore_pymem.h" // _PyMem_IsPtrFreed() - -/* - Notes about the implementation: - - - The GIL is just a boolean variable (locked) whose access is protected - by a mutex (gil_mutex), and whose changes are signalled by a condition - variable (gil_cond). gil_mutex is taken for short periods of time, - and therefore mostly uncontended. - - - In the GIL-holding thread, the main loop (PyEval_EvalFrameEx) must be - able to release the GIL on demand by another thread. A volatile boolean - variable (gil_drop_request) is used for that purpose, which is checked - at every turn of the eval loop. That variable is set after a wait of - `interval` microseconds on `gil_cond` has timed out. - - [Actually, another volatile boolean variable (eval_breaker) is used - which ORs several conditions into one. Volatile booleans are - sufficient as inter-thread signalling means since Python is run - on cache-coherent architectures only.] - - - A thread wanting to take the GIL will first let pass a given amount of - time (`interval` microseconds) before setting gil_drop_request. This - encourages a defined switching period, but doesn't enforce it since - opcodes can take an arbitrary time to execute. - - The `interval` value is available for the user to read and modify - using the Python API `sys.{get,set}switchinterval()`. - - - When a thread releases the GIL and gil_drop_request is set, that thread - ensures that another GIL-awaiting thread gets scheduled. - It does so by waiting on a condition variable (switch_cond) until - the value of last_holder is changed to something else than its - own thread state pointer, indicating that another thread was able to - take the GIL. - - This is meant to prohibit the latency-adverse behaviour on multi-core - machines where one thread would speculatively release the GIL, but still - run and end up being the first to re-acquire it, making the "timeslices" - much longer than expected. - (Note: this mechanism is enabled with FORCE_SWITCHING above) -*/ - -// GH-89279: Force inlining by using a macro. -#if defined(_MSC_VER) && SIZEOF_INT == 4 -#define _Py_atomic_load_relaxed_int32(ATOMIC_VAL) (assert(sizeof((ATOMIC_VAL)->_value) == 4), *((volatile int*)&((ATOMIC_VAL)->_value))) -#else -#define _Py_atomic_load_relaxed_int32(ATOMIC_VAL) _Py_atomic_load_relaxed(ATOMIC_VAL) -#endif - -/* This can set eval_breaker to 0 even though gil_drop_request became - 1. We believe this is all right because the eval loop will release - the GIL eventually anyway. */ -static inline void -COMPUTE_EVAL_BREAKER(PyInterpreterState *interp, - struct _ceval_runtime_state *ceval, - struct _ceval_state *ceval2) -{ - _Py_atomic_store_relaxed(&ceval2->eval_breaker, - _Py_atomic_load_relaxed_int32(&ceval2->gil_drop_request) - | (_Py_atomic_load_relaxed_int32(&ceval->signals_pending) - && _Py_ThreadCanHandleSignals(interp)) - | (_Py_atomic_load_relaxed_int32(&ceval2->pending.calls_to_do) - && _Py_ThreadCanHandlePendingCalls()) - | ceval2->pending.async_exc); -} - - -static inline void -SET_GIL_DROP_REQUEST(PyInterpreterState *interp) -{ - struct _ceval_state *ceval2 = &interp->ceval; - _Py_atomic_store_relaxed(&ceval2->gil_drop_request, 1); - _Py_atomic_store_relaxed(&ceval2->eval_breaker, 1); -} - - -static inline void -RESET_GIL_DROP_REQUEST(PyInterpreterState *interp) -{ - struct _ceval_runtime_state *ceval = &interp->runtime->ceval; - struct _ceval_state *ceval2 = &interp->ceval; - _Py_atomic_store_relaxed(&ceval2->gil_drop_request, 0); - COMPUTE_EVAL_BREAKER(interp, ceval, ceval2); -} - - -static inline void -SIGNAL_PENDING_CALLS(PyInterpreterState *interp) -{ - struct _ceval_runtime_state *ceval = &interp->runtime->ceval; - struct _ceval_state *ceval2 = &interp->ceval; - _Py_atomic_store_relaxed(&ceval2->pending.calls_to_do, 1); - COMPUTE_EVAL_BREAKER(interp, ceval, ceval2); -} - - -static inline void -UNSIGNAL_PENDING_CALLS(PyInterpreterState *interp) -{ - struct _ceval_runtime_state *ceval = &interp->runtime->ceval; - struct _ceval_state *ceval2 = &interp->ceval; - _Py_atomic_store_relaxed(&ceval2->pending.calls_to_do, 0); - COMPUTE_EVAL_BREAKER(interp, ceval, ceval2); -} - - -static inline void -SIGNAL_PENDING_SIGNALS(PyInterpreterState *interp, int force) -{ - struct _ceval_runtime_state *ceval = &interp->runtime->ceval; - struct _ceval_state *ceval2 = &interp->ceval; - _Py_atomic_store_relaxed(&ceval->signals_pending, 1); - if (force) { - _Py_atomic_store_relaxed(&ceval2->eval_breaker, 1); - } - else { - /* eval_breaker is not set to 1 if thread_can_handle_signals() is false */ - COMPUTE_EVAL_BREAKER(interp, ceval, ceval2); - } -} - - -static inline void -UNSIGNAL_PENDING_SIGNALS(PyInterpreterState *interp) -{ - struct _ceval_runtime_state *ceval = &interp->runtime->ceval; - struct _ceval_state *ceval2 = &interp->ceval; - _Py_atomic_store_relaxed(&ceval->signals_pending, 0); - COMPUTE_EVAL_BREAKER(interp, ceval, ceval2); -} - - -static inline void -SIGNAL_ASYNC_EXC(PyInterpreterState *interp) -{ - struct _ceval_state *ceval2 = &interp->ceval; - ceval2->pending.async_exc = 1; - _Py_atomic_store_relaxed(&ceval2->eval_breaker, 1); -} - - -static inline void -UNSIGNAL_ASYNC_EXC(PyInterpreterState *interp) -{ - struct _ceval_runtime_state *ceval = &interp->runtime->ceval; - struct _ceval_state *ceval2 = &interp->ceval; - ceval2->pending.async_exc = 0; - COMPUTE_EVAL_BREAKER(interp, ceval, ceval2); -} - -#ifndef NDEBUG -/* Ensure that tstate is valid */ -static int -is_tstate_valid(PyThreadState *tstate) -{ - assert(!_PyMem_IsPtrFreed(tstate)); - assert(!_PyMem_IsPtrFreed(tstate->interp)); - return 1; -} -#endif - -/* - * Implementation of the Global Interpreter Lock (GIL). - */ - -#include <stdlib.h> -#include <errno.h> - -#include "pycore_atomic.h" - - -#include "condvar.h" - -#define MUTEX_INIT(mut) \ - if (PyMUTEX_INIT(&(mut))) { \ - Py_FatalError("PyMUTEX_INIT(" #mut ") failed"); }; -#define MUTEX_FINI(mut) \ - if (PyMUTEX_FINI(&(mut))) { \ - Py_FatalError("PyMUTEX_FINI(" #mut ") failed"); }; -#define MUTEX_LOCK(mut) \ - if (PyMUTEX_LOCK(&(mut))) { \ - Py_FatalError("PyMUTEX_LOCK(" #mut ") failed"); }; -#define MUTEX_UNLOCK(mut) \ - if (PyMUTEX_UNLOCK(&(mut))) { \ - Py_FatalError("PyMUTEX_UNLOCK(" #mut ") failed"); }; - -#define COND_INIT(cond) \ - if (PyCOND_INIT(&(cond))) { \ - Py_FatalError("PyCOND_INIT(" #cond ") failed"); }; -#define COND_FINI(cond) \ - if (PyCOND_FINI(&(cond))) { \ - Py_FatalError("PyCOND_FINI(" #cond ") failed"); }; -#define COND_SIGNAL(cond) \ - if (PyCOND_SIGNAL(&(cond))) { \ - Py_FatalError("PyCOND_SIGNAL(" #cond ") failed"); }; -#define COND_WAIT(cond, mut) \ - if (PyCOND_WAIT(&(cond), &(mut))) { \ - Py_FatalError("PyCOND_WAIT(" #cond ") failed"); }; -#define COND_TIMED_WAIT(cond, mut, microseconds, timeout_result) \ - { \ - int r = PyCOND_TIMEDWAIT(&(cond), &(mut), (microseconds)); \ - if (r < 0) \ - Py_FatalError("PyCOND_WAIT(" #cond ") failed"); \ - if (r) /* 1 == timeout, 2 == impl. can't say, so assume timeout */ \ - timeout_result = 1; \ - else \ - timeout_result = 0; \ - } \ - - -#define DEFAULT_INTERVAL 5000 - -static void _gil_initialize(struct _gil_runtime_state *gil) -{ - _Py_atomic_int uninitialized = {-1}; - gil->locked = uninitialized; - gil->interval = DEFAULT_INTERVAL; -} - -static int gil_created(struct _gil_runtime_state *gil) -{ - return (_Py_atomic_load_explicit(&gil->locked, _Py_memory_order_acquire) >= 0); -} - -static void create_gil(struct _gil_runtime_state *gil) -{ - MUTEX_INIT(gil->mutex); -#ifdef FORCE_SWITCHING - MUTEX_INIT(gil->switch_mutex); -#endif - COND_INIT(gil->cond); -#ifdef FORCE_SWITCHING - COND_INIT(gil->switch_cond); -#endif - _Py_atomic_store_relaxed(&gil->last_holder, 0); - _Py_ANNOTATE_RWLOCK_CREATE(&gil->locked); - _Py_atomic_store_explicit(&gil->locked, 0, _Py_memory_order_release); -} - -static void destroy_gil(struct _gil_runtime_state *gil) -{ - /* some pthread-like implementations tie the mutex to the cond - * and must have the cond destroyed first. - */ - COND_FINI(gil->cond); - MUTEX_FINI(gil->mutex); -#ifdef FORCE_SWITCHING - COND_FINI(gil->switch_cond); - MUTEX_FINI(gil->switch_mutex); -#endif - _Py_atomic_store_explicit(&gil->locked, -1, - _Py_memory_order_release); - _Py_ANNOTATE_RWLOCK_DESTROY(&gil->locked); -} - -#ifdef HAVE_FORK -static void recreate_gil(struct _gil_runtime_state *gil) -{ - _Py_ANNOTATE_RWLOCK_DESTROY(&gil->locked); - /* XXX should we destroy the old OS resources here? */ - create_gil(gil); -} -#endif - -static void -drop_gil(struct _ceval_runtime_state *ceval, struct _ceval_state *ceval2, - PyThreadState *tstate) -{ - struct _gil_runtime_state *gil = &ceval->gil; - if (!_Py_atomic_load_relaxed(&gil->locked)) { - Py_FatalError("drop_gil: GIL is not locked"); - } - - /* tstate is allowed to be NULL (early interpreter init) */ - if (tstate != NULL) { - /* Sub-interpreter support: threads might have been switched - under our feet using PyThreadState_Swap(). Fix the GIL last - holder variable so that our heuristics work. */ - _Py_atomic_store_relaxed(&gil->last_holder, (uintptr_t)tstate); - } - - MUTEX_LOCK(gil->mutex); - _Py_ANNOTATE_RWLOCK_RELEASED(&gil->locked, /*is_write=*/1); - _Py_atomic_store_relaxed(&gil->locked, 0); - COND_SIGNAL(gil->cond); - MUTEX_UNLOCK(gil->mutex); - -#ifdef FORCE_SWITCHING - if (_Py_atomic_load_relaxed(&ceval2->gil_drop_request) && tstate != NULL) { - MUTEX_LOCK(gil->switch_mutex); - /* Not switched yet => wait */ - if (((PyThreadState*)_Py_atomic_load_relaxed(&gil->last_holder)) == tstate) - { - assert(is_tstate_valid(tstate)); - RESET_GIL_DROP_REQUEST(tstate->interp); - /* NOTE: if COND_WAIT does not atomically start waiting when - releasing the mutex, another thread can run through, take - the GIL and drop it again, and reset the condition - before we even had a chance to wait for it. */ - COND_WAIT(gil->switch_cond, gil->switch_mutex); - } - MUTEX_UNLOCK(gil->switch_mutex); - } -#endif -} - - -/* Check if a Python thread must exit immediately, rather than taking the GIL - if Py_Finalize() has been called. - - When this function is called by a daemon thread after Py_Finalize() has been - called, the GIL does no longer exist. - - tstate must be non-NULL. */ -static inline int -tstate_must_exit(PyThreadState *tstate) -{ - /* bpo-39877: Access _PyRuntime directly rather than using - tstate->interp->runtime to support calls from Python daemon threads. - After Py_Finalize() has been called, tstate can be a dangling pointer: - point to PyThreadState freed memory. */ - PyThreadState *finalizing = _PyRuntimeState_GetFinalizing(&_PyRuntime); - return (finalizing != NULL && finalizing != tstate); -} - - -/* Take the GIL. - - The function saves errno at entry and restores its value at exit. - - tstate must be non-NULL. */ -static void -take_gil(PyThreadState *tstate) -{ - int err = errno; - - assert(tstate != NULL); - - if (tstate_must_exit(tstate)) { - /* bpo-39877: If Py_Finalize() has been called and tstate is not the - thread which called Py_Finalize(), exit immediately the thread. - - This code path can be reached by a daemon thread after Py_Finalize() - completes. In this case, tstate is a dangling pointer: points to - PyThreadState freed memory. */ - PyThread_exit_thread(); - } - - assert(is_tstate_valid(tstate)); - PyInterpreterState *interp = tstate->interp; - struct _ceval_runtime_state *ceval = &interp->runtime->ceval; - struct _ceval_state *ceval2 = &interp->ceval; - struct _gil_runtime_state *gil = &ceval->gil; - - /* Check that _PyEval_InitThreads() was called to create the lock */ - assert(gil_created(gil)); - - MUTEX_LOCK(gil->mutex); - - if (!_Py_atomic_load_relaxed(&gil->locked)) { - goto _ready; - } - - while (_Py_atomic_load_relaxed(&gil->locked)) { - unsigned long saved_switchnum = gil->switch_number; - - unsigned long interval = (gil->interval >= 1 ? gil->interval : 1); - int timed_out = 0; - COND_TIMED_WAIT(gil->cond, gil->mutex, interval, timed_out); - - /* If we timed out and no switch occurred in the meantime, it is time - to ask the GIL-holding thread to drop it. */ - if (timed_out && - _Py_atomic_load_relaxed(&gil->locked) && - gil->switch_number == saved_switchnum) - { - if (tstate_must_exit(tstate)) { - MUTEX_UNLOCK(gil->mutex); - PyThread_exit_thread(); - } - assert(is_tstate_valid(tstate)); - - SET_GIL_DROP_REQUEST(interp); - } - } - -_ready: -#ifdef FORCE_SWITCHING - /* This mutex must be taken before modifying gil->last_holder: - see drop_gil(). */ - MUTEX_LOCK(gil->switch_mutex); -#endif - /* We now hold the GIL */ - _Py_atomic_store_relaxed(&gil->locked, 1); - _Py_ANNOTATE_RWLOCK_ACQUIRED(&gil->locked, /*is_write=*/1); - - if (tstate != (PyThreadState*)_Py_atomic_load_relaxed(&gil->last_holder)) { - _Py_atomic_store_relaxed(&gil->last_holder, (uintptr_t)tstate); - ++gil->switch_number; - } - -#ifdef FORCE_SWITCHING - COND_SIGNAL(gil->switch_cond); - MUTEX_UNLOCK(gil->switch_mutex); -#endif - - if (tstate_must_exit(tstate)) { - /* bpo-36475: If Py_Finalize() has been called and tstate is not - the thread which called Py_Finalize(), exit immediately the - thread. - - This code path can be reached by a daemon thread which was waiting - in take_gil() while the main thread called - wait_for_thread_shutdown() from Py_Finalize(). */ - MUTEX_UNLOCK(gil->mutex); - drop_gil(ceval, ceval2, tstate); - PyThread_exit_thread(); - } - assert(is_tstate_valid(tstate)); - - if (_Py_atomic_load_relaxed(&ceval2->gil_drop_request)) { - RESET_GIL_DROP_REQUEST(interp); - } - else { - /* bpo-40010: eval_breaker should be recomputed to be set to 1 if there - is a pending signal: signal received by another thread which cannot - handle signals. - - Note: RESET_GIL_DROP_REQUEST() calls COMPUTE_EVAL_BREAKER(). */ - COMPUTE_EVAL_BREAKER(interp, ceval, ceval2); - } - - /* Don't access tstate if the thread must exit */ - if (tstate->async_exc != NULL) { - _PyEval_SignalAsyncExc(tstate->interp); - } - - MUTEX_UNLOCK(gil->mutex); - - errno = err; -} - -void _PyEval_SetSwitchInterval(unsigned long microseconds) -{ - struct _gil_runtime_state *gil = &_PyRuntime.ceval.gil; - gil->interval = microseconds; -} - -unsigned long _PyEval_GetSwitchInterval() -{ - struct _gil_runtime_state *gil = &_PyRuntime.ceval.gil; - return gil->interval; -} - - -int -_PyEval_ThreadsInitialized(_PyRuntimeState *runtime) -{ - return gil_created(&runtime->ceval.gil); -} - -int -PyEval_ThreadsInitialized(void) -{ - _PyRuntimeState *runtime = &_PyRuntime; - return _PyEval_ThreadsInitialized(runtime); -} - -PyStatus -_PyEval_InitGIL(PyThreadState *tstate) -{ - if (!_Py_IsMainInterpreter(tstate->interp)) { - /* Currently, the GIL is shared by all interpreters, - and only the main interpreter is responsible to create - and destroy it. */ - return _PyStatus_OK(); - } - - struct _gil_runtime_state *gil = &tstate->interp->runtime->ceval.gil; - assert(!gil_created(gil)); - - PyThread_init_thread(); - create_gil(gil); - - take_gil(tstate); - - assert(gil_created(gil)); - return _PyStatus_OK(); -} - -void -_PyEval_FiniGIL(PyInterpreterState *interp) -{ - if (!_Py_IsMainInterpreter(interp)) { - /* Currently, the GIL is shared by all interpreters, - and only the main interpreter is responsible to create - and destroy it. */ - return; - } - - struct _gil_runtime_state *gil = &interp->runtime->ceval.gil; - if (!gil_created(gil)) { - /* First Py_InitializeFromConfig() call: the GIL doesn't exist - yet: do nothing. */ - return; - } - - destroy_gil(gil); - assert(!gil_created(gil)); -} - -void -PyEval_InitThreads(void) -{ - /* Do nothing: kept for backward compatibility */ -} - -void -_PyEval_Fini(void) -{ -#ifdef Py_STATS - _Py_PrintSpecializationStats(1); -#endif -} -void -PyEval_AcquireLock(void) -{ - _PyRuntimeState *runtime = &_PyRuntime; - PyThreadState *tstate = _PyRuntimeState_GetThreadState(runtime); - _Py_EnsureTstateNotNULL(tstate); - - take_gil(tstate); -} - -void -PyEval_ReleaseLock(void) -{ - _PyRuntimeState *runtime = &_PyRuntime; - PyThreadState *tstate = _PyRuntimeState_GetThreadState(runtime); - /* This function must succeed when the current thread state is NULL. - We therefore avoid PyThreadState_Get() which dumps a fatal error - in debug mode. */ - struct _ceval_runtime_state *ceval = &runtime->ceval; - struct _ceval_state *ceval2 = &tstate->interp->ceval; - drop_gil(ceval, ceval2, tstate); -} - -void -_PyEval_ReleaseLock(PyThreadState *tstate) -{ - struct _ceval_runtime_state *ceval = &tstate->interp->runtime->ceval; - struct _ceval_state *ceval2 = &tstate->interp->ceval; - drop_gil(ceval, ceval2, tstate); -} - -void -PyEval_AcquireThread(PyThreadState *tstate) -{ - _Py_EnsureTstateNotNULL(tstate); - - take_gil(tstate); - - struct _gilstate_runtime_state *gilstate = &tstate->interp->runtime->gilstate; - if (_PyThreadState_Swap(gilstate, tstate) != NULL) { - Py_FatalError("non-NULL old thread state"); - } -} - -void -PyEval_ReleaseThread(PyThreadState *tstate) -{ - assert(is_tstate_valid(tstate)); - - _PyRuntimeState *runtime = tstate->interp->runtime; - PyThreadState *new_tstate = _PyThreadState_Swap(&runtime->gilstate, NULL); - if (new_tstate != tstate) { - Py_FatalError("wrong thread state"); - } - struct _ceval_runtime_state *ceval = &runtime->ceval; - struct _ceval_state *ceval2 = &tstate->interp->ceval; - drop_gil(ceval, ceval2, tstate); -} - -#ifdef HAVE_FORK -/* This function is called from PyOS_AfterFork_Child to destroy all threads - which are not running in the child process, and clear internal locks - which might be held by those threads. */ -PyStatus -_PyEval_ReInitThreads(PyThreadState *tstate) -{ - _PyRuntimeState *runtime = tstate->interp->runtime; - - struct _gil_runtime_state *gil = &runtime->ceval.gil; - if (!gil_created(gil)) { - return _PyStatus_OK(); - } - recreate_gil(gil); - - take_gil(tstate); - - struct _pending_calls *pending = &tstate->interp->ceval.pending; - if (_PyThread_at_fork_reinit(&pending->lock) < 0) { - return _PyStatus_ERR("Can't reinitialize pending calls lock"); - } - - /* Destroy all threads except the current one */ - _PyThreadState_DeleteExcept(runtime, tstate); - return _PyStatus_OK(); -} -#endif - -/* This function is used to signal that async exceptions are waiting to be - raised. */ - -void -_PyEval_SignalAsyncExc(PyInterpreterState *interp) -{ - SIGNAL_ASYNC_EXC(interp); -} - -PyThreadState * -PyEval_SaveThread(void) -{ - _PyRuntimeState *runtime = &_PyRuntime; - PyThreadState *tstate = _PyThreadState_Swap(&runtime->gilstate, NULL); - _Py_EnsureTstateNotNULL(tstate); - - struct _ceval_runtime_state *ceval = &runtime->ceval; - struct _ceval_state *ceval2 = &tstate->interp->ceval; - assert(gil_created(&ceval->gil)); - drop_gil(ceval, ceval2, tstate); - return tstate; -} - -void -PyEval_RestoreThread(PyThreadState *tstate) -{ - _Py_EnsureTstateNotNULL(tstate); - - take_gil(tstate); - - struct _gilstate_runtime_state *gilstate = &tstate->interp->runtime->gilstate; - _PyThreadState_Swap(gilstate, tstate); -} - - -/* Mechanism whereby asynchronously executing callbacks (e.g. UNIX - signal handlers or Mac I/O completion routines) can schedule calls - to a function to be called synchronously. - The synchronous function is called with one void* argument. - It should return 0 for success or -1 for failure -- failure should - be accompanied by an exception. - - If registry succeeds, the registry function returns 0; if it fails - (e.g. due to too many pending calls) it returns -1 (without setting - an exception condition). - - Note that because registry may occur from within signal handlers, - or other asynchronous events, calling malloc() is unsafe! - - Any thread can schedule pending calls, but only the main thread - will execute them. - There is no facility to schedule calls to a particular thread, but - that should be easy to change, should that ever be required. In - that case, the static variables here should go into the python - threadstate. -*/ - -void -_PyEval_SignalReceived(PyInterpreterState *interp) -{ -#ifdef MS_WINDOWS - // bpo-42296: On Windows, _PyEval_SignalReceived() is called from a signal - // handler which can run in a thread different than the Python thread, in - // which case _Py_ThreadCanHandleSignals() is wrong. Ignore - // _Py_ThreadCanHandleSignals() and always set eval_breaker to 1. - // - // The next eval_frame_handle_pending() call will call - // _Py_ThreadCanHandleSignals() to recompute eval_breaker. - int force = 1; -#else - int force = 0; -#endif - /* bpo-30703: Function called when the C signal handler of Python gets a - signal. We cannot queue a callback using _PyEval_AddPendingCall() since - that function is not async-signal-safe. */ - SIGNAL_PENDING_SIGNALS(interp, force); -} - -/* Push one item onto the queue while holding the lock. */ -static int -_push_pending_call(struct _pending_calls *pending, - int (*func)(void *), void *arg) -{ - int i = pending->last; - int j = (i + 1) % NPENDINGCALLS; - if (j == pending->first) { - return -1; /* Queue full */ - } - pending->calls[i].func = func; - pending->calls[i].arg = arg; - pending->last = j; - return 0; -} - -/* Pop one item off the queue while holding the lock. */ -static void -_pop_pending_call(struct _pending_calls *pending, - int (**func)(void *), void **arg) -{ - int i = pending->first; - if (i == pending->last) { - return; /* Queue empty */ - } - - *func = pending->calls[i].func; - *arg = pending->calls[i].arg; - pending->first = (i + 1) % NPENDINGCALLS; -} - -/* This implementation is thread-safe. It allows - scheduling to be made from any thread, and even from an executing - callback. - */ - -int -_PyEval_AddPendingCall(PyInterpreterState *interp, - int (*func)(void *), void *arg) -{ - struct _pending_calls *pending = &interp->ceval.pending; - /* Ensure that _PyEval_InitState() was called - and that _PyEval_FiniState() is not called yet. */ - assert(pending->lock != NULL); - - PyThread_acquire_lock(pending->lock, WAIT_LOCK); - int result = _push_pending_call(pending, func, arg); - PyThread_release_lock(pending->lock); - - /* signal main loop */ - SIGNAL_PENDING_CALLS(interp); - return result; -} - -int -Py_AddPendingCall(int (*func)(void *), void *arg) -{ - /* Best-effort to support subinterpreters and calls with the GIL released. - - First attempt _PyThreadState_GET() since it supports subinterpreters. - - If the GIL is released, _PyThreadState_GET() returns NULL . In this - case, use PyGILState_GetThisThreadState() which works even if the GIL - is released. - - Sadly, PyGILState_GetThisThreadState() doesn't support subinterpreters: - see bpo-10915 and bpo-15751. - - Py_AddPendingCall() doesn't require the caller to hold the GIL. */ - PyThreadState *tstate = _PyThreadState_GET(); - if (tstate == NULL) { - tstate = PyGILState_GetThisThreadState(); - } - - PyInterpreterState *interp; - if (tstate != NULL) { - interp = tstate->interp; - } - else { - /* Last resort: use the main interpreter */ - interp = _PyInterpreterState_Main(); - } - return _PyEval_AddPendingCall(interp, func, arg); -} - -static int -handle_signals(PyThreadState *tstate) -{ - assert(is_tstate_valid(tstate)); - if (!_Py_ThreadCanHandleSignals(tstate->interp)) { - return 0; - } - - UNSIGNAL_PENDING_SIGNALS(tstate->interp); - if (_PyErr_CheckSignalsTstate(tstate) < 0) { - /* On failure, re-schedule a call to handle_signals(). */ - SIGNAL_PENDING_SIGNALS(tstate->interp, 0); - return -1; - } - return 0; -} - -static int -make_pending_calls(PyInterpreterState *interp) -{ - /* only execute pending calls on main thread */ - if (!_Py_ThreadCanHandlePendingCalls()) { - return 0; - } - - /* don't perform recursive pending calls */ - static int busy = 0; - if (busy) { - return 0; - } - busy = 1; - - /* unsignal before starting to call callbacks, so that any callback - added in-between re-signals */ - UNSIGNAL_PENDING_CALLS(interp); - int res = 0; - - /* perform a bounded number of calls, in case of recursion */ - struct _pending_calls *pending = &interp->ceval.pending; - for (int i=0; i<NPENDINGCALLS; i++) { - int (*func)(void *) = NULL; - void *arg = NULL; - - /* pop one item off the queue while holding the lock */ - PyThread_acquire_lock(pending->lock, WAIT_LOCK); - _pop_pending_call(pending, &func, &arg); - PyThread_release_lock(pending->lock); - - /* having released the lock, perform the callback */ - if (func == NULL) { - break; - } - res = func(arg); - if (res) { - goto error; - } - } - - busy = 0; - return res; - -error: - busy = 0; - SIGNAL_PENDING_CALLS(interp); - return res; -} - -void -_Py_FinishPendingCalls(PyThreadState *tstate) -{ - assert(PyGILState_Check()); - assert(is_tstate_valid(tstate)); - - struct _pending_calls *pending = &tstate->interp->ceval.pending; - - if (!_Py_atomic_load_relaxed_int32(&(pending->calls_to_do))) { - return; - } - - if (make_pending_calls(tstate->interp) < 0) { - PyObject *exc, *val, *tb; - _PyErr_Fetch(tstate, &exc, &val, &tb); - PyErr_BadInternalCall(); - _PyErr_ChainExceptions(exc, val, tb); - _PyErr_Print(tstate); - } -} - -/* Py_MakePendingCalls() is a simple wrapper for the sake - of backward-compatibility. */ -int -Py_MakePendingCalls(void) -{ - assert(PyGILState_Check()); - - PyThreadState *tstate = _PyThreadState_GET(); - assert(is_tstate_valid(tstate)); - - /* Python signal handler doesn't really queue a callback: it only signals - that a signal was received, see _PyEval_SignalReceived(). */ - int res = handle_signals(tstate); - if (res != 0) { - return res; - } - - res = make_pending_calls(tstate->interp); - if (res != 0) { - return res; - } - - return 0; -} - -/* The interpreter's recursion limit */ - -void -_PyEval_InitRuntimeState(struct _ceval_runtime_state *ceval) -{ - _gil_initialize(&ceval->gil); -} - -void -_PyEval_InitState(struct _ceval_state *ceval, PyThread_type_lock pending_lock) -{ - struct _pending_calls *pending = &ceval->pending; - assert(pending->lock == NULL); - - pending->lock = pending_lock; -} - -void -_PyEval_FiniState(struct _ceval_state *ceval) -{ - struct _pending_calls *pending = &ceval->pending; - if (pending->lock != NULL) { - PyThread_free_lock(pending->lock); - pending->lock = NULL; - } -} - -/* Handle signals, pending calls, GIL drop request - and asynchronous exception */ -int -_Py_HandlePending(PyThreadState *tstate) -{ - _PyRuntimeState * const runtime = &_PyRuntime; - struct _ceval_runtime_state *ceval = &runtime->ceval; - - /* Pending signals */ - if (_Py_atomic_load_relaxed_int32(&ceval->signals_pending)) { - if (handle_signals(tstate) != 0) { - return -1; - } - } - - /* Pending calls */ - struct _ceval_state *ceval2 = &tstate->interp->ceval; - if (_Py_atomic_load_relaxed_int32(&ceval2->pending.calls_to_do)) { - if (make_pending_calls(tstate->interp) != 0) { - return -1; - } - } - - /* GIL drop request */ - if (_Py_atomic_load_relaxed_int32(&ceval2->gil_drop_request)) { - /* Give another thread a chance */ - if (_PyThreadState_Swap(&runtime->gilstate, NULL) != tstate) { - Py_FatalError("tstate mix-up"); - } - drop_gil(ceval, ceval2, tstate); - - /* Other threads may run now */ - - take_gil(tstate); - - if (_PyThreadState_Swap(&runtime->gilstate, tstate) != NULL) { - Py_FatalError("orphan tstate"); - } - } - - /* Check for asynchronous exception. */ - if (tstate->async_exc != NULL) { - PyObject *exc = tstate->async_exc; - tstate->async_exc = NULL; - UNSIGNAL_ASYNC_EXC(tstate->interp); - _PyErr_SetNone(tstate, exc); - Py_DECREF(exc); - return -1; - } - -#ifdef MS_WINDOWS - // bpo-42296: On Windows, _PyEval_SignalReceived() can be called in a - // different thread than the Python thread, in which case - // _Py_ThreadCanHandleSignals() is wrong. Recompute eval_breaker in the - // current Python thread with the correct _Py_ThreadCanHandleSignals() - // value. It prevents to interrupt the eval loop at every instruction if - // the current Python thread cannot handle signals (if - // _Py_ThreadCanHandleSignals() is false). - COMPUTE_EVAL_BREAKER(tstate->interp, ceval, ceval2); -#endif - - return 0; -} - diff --git a/Python/ceval_gil.h b/Python/ceval_gil.h new file mode 100644 index 00000000000000..9b8b43253f04d2 --- /dev/null +++ b/Python/ceval_gil.h @@ -0,0 +1,349 @@ +/* + * Implementation of the Global Interpreter Lock (GIL). + */ + +#include <stdlib.h> +#include <errno.h> + +#include "pycore_atomic.h" + + +/* + Notes about the implementation: + + - The GIL is just a boolean variable (locked) whose access is protected + by a mutex (gil_mutex), and whose changes are signalled by a condition + variable (gil_cond). gil_mutex is taken for short periods of time, + and therefore mostly uncontended. + + - In the GIL-holding thread, the main loop (PyEval_EvalFrameEx) must be + able to release the GIL on demand by another thread. A volatile boolean + variable (gil_drop_request) is used for that purpose, which is checked + at every turn of the eval loop. That variable is set after a wait of + `interval` microseconds on `gil_cond` has timed out. + + [Actually, another volatile boolean variable (eval_breaker) is used + which ORs several conditions into one. Volatile booleans are + sufficient as inter-thread signalling means since Python is run + on cache-coherent architectures only.] + + - A thread wanting to take the GIL will first let pass a given amount of + time (`interval` microseconds) before setting gil_drop_request. This + encourages a defined switching period, but doesn't enforce it since + opcodes can take an arbitrary time to execute. + + The `interval` value is available for the user to read and modify + using the Python API `sys.{get,set}switchinterval()`. + + - When a thread releases the GIL and gil_drop_request is set, that thread + ensures that another GIL-awaiting thread gets scheduled. + It does so by waiting on a condition variable (switch_cond) until + the value of last_holder is changed to something else than its + own thread state pointer, indicating that another thread was able to + take the GIL. + + This is meant to prohibit the latency-adverse behaviour on multi-core + machines where one thread would speculatively release the GIL, but still + run and end up being the first to re-acquire it, making the "timeslices" + much longer than expected. + (Note: this mechanism is enabled with FORCE_SWITCHING above) +*/ + +#include "condvar.h" + +#define MUTEX_INIT(mut) \ + if (PyMUTEX_INIT(&(mut))) { \ + Py_FatalError("PyMUTEX_INIT(" #mut ") failed"); }; +#define MUTEX_FINI(mut) \ + if (PyMUTEX_FINI(&(mut))) { \ + Py_FatalError("PyMUTEX_FINI(" #mut ") failed"); }; +#define MUTEX_LOCK(mut) \ + if (PyMUTEX_LOCK(&(mut))) { \ + Py_FatalError("PyMUTEX_LOCK(" #mut ") failed"); }; +#define MUTEX_UNLOCK(mut) \ + if (PyMUTEX_UNLOCK(&(mut))) { \ + Py_FatalError("PyMUTEX_UNLOCK(" #mut ") failed"); }; + +#define COND_INIT(cond) \ + if (PyCOND_INIT(&(cond))) { \ + Py_FatalError("PyCOND_INIT(" #cond ") failed"); }; +#define COND_FINI(cond) \ + if (PyCOND_FINI(&(cond))) { \ + Py_FatalError("PyCOND_FINI(" #cond ") failed"); }; +#define COND_SIGNAL(cond) \ + if (PyCOND_SIGNAL(&(cond))) { \ + Py_FatalError("PyCOND_SIGNAL(" #cond ") failed"); }; +#define COND_WAIT(cond, mut) \ + if (PyCOND_WAIT(&(cond), &(mut))) { \ + Py_FatalError("PyCOND_WAIT(" #cond ") failed"); }; +#define COND_TIMED_WAIT(cond, mut, microseconds, timeout_result) \ + { \ + int r = PyCOND_TIMEDWAIT(&(cond), &(mut), (microseconds)); \ + if (r < 0) \ + Py_FatalError("PyCOND_WAIT(" #cond ") failed"); \ + if (r) /* 1 == timeout, 2 == impl. can't say, so assume timeout */ \ + timeout_result = 1; \ + else \ + timeout_result = 0; \ + } \ + + +#define DEFAULT_INTERVAL 5000 + +static void _gil_initialize(struct _gil_runtime_state *gil) +{ + _Py_atomic_int uninitialized = {-1}; + gil->locked = uninitialized; + gil->interval = DEFAULT_INTERVAL; +} + +static int gil_created(struct _gil_runtime_state *gil) +{ + return (_Py_atomic_load_explicit(&gil->locked, _Py_memory_order_acquire) >= 0); +} + +static void create_gil(struct _gil_runtime_state *gil) +{ + MUTEX_INIT(gil->mutex); +#ifdef FORCE_SWITCHING + MUTEX_INIT(gil->switch_mutex); +#endif + COND_INIT(gil->cond); +#ifdef FORCE_SWITCHING + COND_INIT(gil->switch_cond); +#endif + _Py_atomic_store_relaxed(&gil->last_holder, 0); + _Py_ANNOTATE_RWLOCK_CREATE(&gil->locked); + _Py_atomic_store_explicit(&gil->locked, 0, _Py_memory_order_release); +} + +static void destroy_gil(struct _gil_runtime_state *gil) +{ + /* some pthread-like implementations tie the mutex to the cond + * and must have the cond destroyed first. + */ + COND_FINI(gil->cond); + MUTEX_FINI(gil->mutex); +#ifdef FORCE_SWITCHING + COND_FINI(gil->switch_cond); + MUTEX_FINI(gil->switch_mutex); +#endif + _Py_atomic_store_explicit(&gil->locked, -1, + _Py_memory_order_release); + _Py_ANNOTATE_RWLOCK_DESTROY(&gil->locked); +} + +static void recreate_gil(struct _gil_runtime_state *gil) +{ + _Py_ANNOTATE_RWLOCK_DESTROY(&gil->locked); + /* XXX should we destroy the old OS resources here? */ + create_gil(gil); +} + +static void +drop_gil(struct _ceval_runtime_state *ceval, struct _ceval_state *ceval2, + PyThreadState *tstate) +{ +#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS + struct _gil_runtime_state *gil = &ceval2->gil; +#else + struct _gil_runtime_state *gil = &ceval->gil; +#endif + if (!_Py_atomic_load_relaxed(&gil->locked)) { + Py_FatalError("drop_gil: GIL is not locked"); + } + + /* tstate is allowed to be NULL (early interpreter init) */ + if (tstate != NULL) { + /* Sub-interpreter support: threads might have been switched + under our feet using PyThreadState_Swap(). Fix the GIL last + holder variable so that our heuristics work. */ + _Py_atomic_store_relaxed(&gil->last_holder, (uintptr_t)tstate); + } + + MUTEX_LOCK(gil->mutex); + _Py_ANNOTATE_RWLOCK_RELEASED(&gil->locked, /*is_write=*/1); + _Py_atomic_store_relaxed(&gil->locked, 0); + COND_SIGNAL(gil->cond); + MUTEX_UNLOCK(gil->mutex); + +#ifdef FORCE_SWITCHING + if (_Py_atomic_load_relaxed(&ceval2->gil_drop_request) && tstate != NULL) { + MUTEX_LOCK(gil->switch_mutex); + /* Not switched yet => wait */ + if (((PyThreadState*)_Py_atomic_load_relaxed(&gil->last_holder)) == tstate) + { + assert(is_tstate_valid(tstate)); + RESET_GIL_DROP_REQUEST(tstate->interp); + /* NOTE: if COND_WAIT does not atomically start waiting when + releasing the mutex, another thread can run through, take + the GIL and drop it again, and reset the condition + before we even had a chance to wait for it. */ + COND_WAIT(gil->switch_cond, gil->switch_mutex); + } + MUTEX_UNLOCK(gil->switch_mutex); + } +#endif +} + + +/* Check if a Python thread must exit immediately, rather than taking the GIL + if Py_Finalize() has been called. + + When this function is called by a daemon thread after Py_Finalize() has been + called, the GIL does no longer exist. + + tstate must be non-NULL. */ +static inline int +tstate_must_exit(PyThreadState *tstate) +{ + /* bpo-39877: Access _PyRuntime directly rather than using + tstate->interp->runtime to support calls from Python daemon threads. + After Py_Finalize() has been called, tstate can be a dangling pointer: + point to PyThreadState freed memory. */ + PyThreadState *finalizing = _PyRuntimeState_GetFinalizing(&_PyRuntime); + return (finalizing != NULL && finalizing != tstate); +} + + +/* Take the GIL. + + The function saves errno at entry and restores its value at exit. + + tstate must be non-NULL. */ +static void +take_gil(PyThreadState *tstate) +{ + int err = errno; + + assert(tstate != NULL); + + if (tstate_must_exit(tstate)) { + /* bpo-39877: If Py_Finalize() has been called and tstate is not the + thread which called Py_Finalize(), exit immediately the thread. + + This code path can be reached by a daemon thread after Py_Finalize() + completes. In this case, tstate is a dangling pointer: points to + PyThreadState freed memory. */ + PyThread_exit_thread(); + } + + assert(is_tstate_valid(tstate)); + PyInterpreterState *interp = tstate->interp; + struct _ceval_runtime_state *ceval = &interp->runtime->ceval; + struct _ceval_state *ceval2 = &interp->ceval; +#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS + struct _gil_runtime_state *gil = &ceval2->gil; +#else + struct _gil_runtime_state *gil = &ceval->gil; +#endif + + /* Check that _PyEval_InitThreads() was called to create the lock */ + assert(gil_created(gil)); + + MUTEX_LOCK(gil->mutex); + + if (!_Py_atomic_load_relaxed(&gil->locked)) { + goto _ready; + } + + while (_Py_atomic_load_relaxed(&gil->locked)) { + unsigned long saved_switchnum = gil->switch_number; + + unsigned long interval = (gil->interval >= 1 ? gil->interval : 1); + int timed_out = 0; + COND_TIMED_WAIT(gil->cond, gil->mutex, interval, timed_out); + + /* If we timed out and no switch occurred in the meantime, it is time + to ask the GIL-holding thread to drop it. */ + if (timed_out && + _Py_atomic_load_relaxed(&gil->locked) && + gil->switch_number == saved_switchnum) + { + if (tstate_must_exit(tstate)) { + MUTEX_UNLOCK(gil->mutex); + PyThread_exit_thread(); + } + assert(is_tstate_valid(tstate)); + + SET_GIL_DROP_REQUEST(interp); + } + } + +_ready: +#ifdef FORCE_SWITCHING + /* This mutex must be taken before modifying gil->last_holder: + see drop_gil(). */ + MUTEX_LOCK(gil->switch_mutex); +#endif + /* We now hold the GIL */ + _Py_atomic_store_relaxed(&gil->locked, 1); + _Py_ANNOTATE_RWLOCK_ACQUIRED(&gil->locked, /*is_write=*/1); + + if (tstate != (PyThreadState*)_Py_atomic_load_relaxed(&gil->last_holder)) { + _Py_atomic_store_relaxed(&gil->last_holder, (uintptr_t)tstate); + ++gil->switch_number; + } + +#ifdef FORCE_SWITCHING + COND_SIGNAL(gil->switch_cond); + MUTEX_UNLOCK(gil->switch_mutex); +#endif + + if (tstate_must_exit(tstate)) { + /* bpo-36475: If Py_Finalize() has been called and tstate is not + the thread which called Py_Finalize(), exit immediately the + thread. + + This code path can be reached by a daemon thread which was waiting + in take_gil() while the main thread called + wait_for_thread_shutdown() from Py_Finalize(). */ + MUTEX_UNLOCK(gil->mutex); + drop_gil(ceval, ceval2, tstate); + PyThread_exit_thread(); + } + assert(is_tstate_valid(tstate)); + + if (_Py_atomic_load_relaxed(&ceval2->gil_drop_request)) { + RESET_GIL_DROP_REQUEST(interp); + } + else { + /* bpo-40010: eval_breaker should be recomputed to be set to 1 if there + is a pending signal: signal received by another thread which cannot + handle signals. + + Note: RESET_GIL_DROP_REQUEST() calls COMPUTE_EVAL_BREAKER(). */ + COMPUTE_EVAL_BREAKER(interp, ceval, ceval2); + } + + /* Don't access tstate if the thread must exit */ + if (tstate->async_exc != NULL) { + _PyEval_SignalAsyncExc(tstate->interp); + } + + MUTEX_UNLOCK(gil->mutex); + + errno = err; +} + +void _PyEval_SetSwitchInterval(unsigned long microseconds) +{ +#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS + PyInterpreterState *interp = PyInterpreterState_Get(); + struct _gil_runtime_state *gil = &interp->ceval.gil; +#else + struct _gil_runtime_state *gil = &_PyRuntime.ceval.gil; +#endif + gil->interval = microseconds; +} + +unsigned long _PyEval_GetSwitchInterval() +{ +#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS + PyInterpreterState *interp = PyInterpreterState_Get(); + struct _gil_runtime_state *gil = &interp->ceval.gil; +#else + struct _gil_runtime_state *gil = &_PyRuntime.ceval.gil; +#endif + return gil->interval; +} diff --git a/Python/clinic/Python-tokenize.c.h b/Python/clinic/Python-tokenize.c.h index 6af93743f40dab..050b4d49448c36 100644 --- a/Python/clinic/Python-tokenize.c.h +++ b/Python/clinic/Python-tokenize.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - static PyObject * tokenizeriter_new_impl(PyTypeObject *type, const char *source); @@ -15,31 +9,8 @@ static PyObject * tokenizeriter_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(source), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"source", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "tokenizeriter", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "tokenizeriter", 0}; PyObject *argsbuf[1]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -67,4 +38,4 @@ tokenizeriter_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=8c2c09f651961986 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=dfcd64774e01bfe6 input=a9049054013a1b77]*/ diff --git a/Python/clinic/_warnings.c.h b/Python/clinic/_warnings.c.h index 13ebbf45b8e168..aa85c2a0d4d920 100644 --- a/Python/clinic/_warnings.c.h +++ b/Python/clinic/_warnings.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(warnings_warn__doc__, "warn($module, /, message, category=None, stacklevel=1, source=None)\n" "--\n" @@ -25,31 +19,8 @@ static PyObject * warnings_warn(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 4 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(message), &_Py_ID(category), &_Py_ID(stacklevel), &_Py_ID(source), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"message", "category", "stacklevel", "source", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "warn", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "warn", 0}; PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *message; @@ -95,108 +66,4 @@ warnings_warn(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec exit: return return_value; } - -PyDoc_STRVAR(warnings_warn_explicit__doc__, -"warn_explicit($module, /, message, category, filename, lineno,\n" -" module=<unrepresentable>, registry=None,\n" -" module_globals=None, source=None)\n" -"--\n" -"\n" -"Issue a warning, or maybe ignore it or raise an exception."); - -#define WARNINGS_WARN_EXPLICIT_METHODDEF \ - {"warn_explicit", _PyCFunction_CAST(warnings_warn_explicit), METH_FASTCALL|METH_KEYWORDS, warnings_warn_explicit__doc__}, - -static PyObject * -warnings_warn_explicit_impl(PyObject *module, PyObject *message, - PyObject *category, PyObject *filename, - int lineno, PyObject *mod, PyObject *registry, - PyObject *module_globals, PyObject *sourceobj); - -static PyObject * -warnings_warn_explicit(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) -{ - PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 8 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(message), &_Py_ID(category), &_Py_ID(filename), &_Py_ID(lineno), &_Py_ID(module), &_Py_ID(registry), &_Py_ID(module_globals), &_Py_ID(source), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - - static const char * const _keywords[] = {"message", "category", "filename", "lineno", "module", "registry", "module_globals", "source", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "warn_explicit", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE - PyObject *argsbuf[8]; - Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 4; - PyObject *message; - PyObject *category; - PyObject *filename; - int lineno; - PyObject *mod = NULL; - PyObject *registry = Py_None; - PyObject *module_globals = Py_None; - PyObject *sourceobj = Py_None; - - args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 4, 8, 0, argsbuf); - if (!args) { - goto exit; - } - message = args[0]; - category = args[1]; - if (!PyUnicode_Check(args[2])) { - _PyArg_BadArgument("warn_explicit", "argument 'filename'", "str", args[2]); - goto exit; - } - if (PyUnicode_READY(args[2]) == -1) { - goto exit; - } - filename = args[2]; - lineno = _PyLong_AsInt(args[3]); - if (lineno == -1 && PyErr_Occurred()) { - goto exit; - } - if (!noptargs) { - goto skip_optional_pos; - } - if (args[4]) { - mod = args[4]; - if (!--noptargs) { - goto skip_optional_pos; - } - } - if (args[5]) { - registry = args[5]; - if (!--noptargs) { - goto skip_optional_pos; - } - } - if (args[6]) { - module_globals = args[6]; - if (!--noptargs) { - goto skip_optional_pos; - } - } - sourceobj = args[7]; -skip_optional_pos: - return_value = warnings_warn_explicit_impl(module, message, category, filename, lineno, mod, registry, module_globals, sourceobj); - -exit: - return return_value; -} -/*[clinic end generated code: output=2eac4fabc87a4d56 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=0435c68611fa2fe9 input=a9049054013a1b77]*/ diff --git a/Python/clinic/bltinmodule.c.h b/Python/clinic/bltinmodule.c.h index abe5476b283b06..48f65091164d04 100644 --- a/Python/clinic/bltinmodule.c.h +++ b/Python/clinic/bltinmodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(builtin___import____doc__, "__import__($module, /, name, globals=None, locals=None, fromlist=(),\n" " level=0)\n" @@ -40,31 +34,8 @@ static PyObject * builtin___import__(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 5 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(name), &_Py_ID(globals), &_Py_ID(locals), &_Py_ID(fromlist), &_Py_ID(level), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"name", "globals", "locals", "fromlist", "level", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "__import__", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "__import__", 0}; PyObject *argsbuf[5]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *name; @@ -282,31 +253,8 @@ static PyObject * builtin_compile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 7 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(source), &_Py_ID(filename), &_Py_ID(mode), &_Py_ID(flags), &_Py_ID(dont_inherit), &_Py_ID(optimize), &_Py_ID(_feature_version), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"source", "filename", "mode", "flags", "dont_inherit", "optimize", "_feature_version", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "compile", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "compile", 0}; PyObject *argsbuf[7]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3; PyObject *source; @@ -484,31 +432,8 @@ static PyObject * builtin_exec(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(closure), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "", "", "closure", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "exec", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "exec", 0}; PyObject *argsbuf[4]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *source; @@ -818,31 +743,8 @@ static PyObject * builtin_pow(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 3 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(base), &_Py_ID(exp), &_Py_ID(mod), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"base", "exp", "mod", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "pow", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "pow", 0}; PyObject *argsbuf[3]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; PyObject *base; @@ -892,31 +794,8 @@ static PyObject * builtin_print(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 4 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(sep), &_Py_ID(end), &_Py_ID(file), &_Py_ID(flush), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"sep", "end", "file", "flush", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "print", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "print", 0}; PyObject *argsbuf[5]; Py_ssize_t noptargs = 0 + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; PyObject *__clinic_args = NULL; @@ -1031,31 +910,8 @@ static PyObject * builtin_round(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(number), &_Py_ID(ndigits), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"number", "ndigits", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "round", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "round", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *number; @@ -1097,31 +953,8 @@ static PyObject * builtin_sum(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(start), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "start", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "sum", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "sum", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *iterable; @@ -1212,4 +1045,4 @@ builtin_issubclass(PyObject *module, PyObject *const *args, Py_ssize_t nargs) exit: return return_value; } -/*[clinic end generated code: output=919725bf5d400acf input=a9049054013a1b77]*/ +/*[clinic end generated code: output=a2c5c53e8aead7c3 input=a9049054013a1b77]*/ diff --git a/Python/clinic/context.c.h b/Python/clinic/context.c.h index 27c375717bff96..292d3f7f4ff49c 100644 --- a/Python/clinic/context.c.h +++ b/Python/clinic/context.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_contextvars_Context_get__doc__, "get($self, key, default=None, /)\n" "--\n" @@ -183,4 +177,4 @@ PyDoc_STRVAR(_contextvars_ContextVar_reset__doc__, #define _CONTEXTVARS_CONTEXTVAR_RESET_METHODDEF \ {"reset", (PyCFunction)_contextvars_ContextVar_reset, METH_O, _contextvars_ContextVar_reset__doc__}, -/*[clinic end generated code: output=0c94d4b919500438 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=2436b16a92452869 input=a9049054013a1b77]*/ diff --git a/Python/clinic/import.c.h b/Python/clinic/import.c.h index 819fb1c75c15c3..0451d97a720dde 100644 --- a/Python/clinic/import.c.h +++ b/Python/clinic/import.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(_imp_lock_held__doc__, "lock_held($module, /)\n" "--\n" @@ -199,31 +193,8 @@ static PyObject * _imp_find_frozen(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(withdata), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "withdata", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "find_frozen", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "find_frozen", 0}; PyObject *argsbuf[2]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *name; @@ -555,31 +526,8 @@ static PyObject * _imp_source_hash(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 2 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(key), &_Py_ID(source), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"key", "source", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "source_hash", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "source_hash", 0}; PyObject *argsbuf[2]; long key; Py_buffer source = {NULL, NULL}; @@ -617,4 +565,4 @@ _imp_source_hash(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb #ifndef _IMP_EXEC_DYNAMIC_METHODDEF #define _IMP_EXEC_DYNAMIC_METHODDEF #endif /* !defined(_IMP_EXEC_DYNAMIC_METHODDEF) */ -/*[clinic end generated code: output=806352838c3f7008 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=8d0f4305b1d0714b input=a9049054013a1b77]*/ diff --git a/Python/clinic/marshal.c.h b/Python/clinic/marshal.c.h index a593b980544b72..36f2afd5241b7e 100644 --- a/Python/clinic/marshal.c.h +++ b/Python/clinic/marshal.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(marshal_dump__doc__, "dump($module, value, file, version=version, /)\n" "--\n" @@ -161,4 +155,4 @@ marshal_loads(PyObject *module, PyObject *arg) return return_value; } -/*[clinic end generated code: output=12082d61d2942473 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=b9e838edee43fe87 input=a9049054013a1b77]*/ diff --git a/Python/clinic/sysmodule.c.h b/Python/clinic/sysmodule.c.h index 6864b8b0e03b2f..6ee3bb2a849aab 100644 --- a/Python/clinic/sysmodule.c.h +++ b/Python/clinic/sysmodule.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(sys_addaudithook__doc__, "addaudithook($module, /, hook)\n" "--\n" @@ -24,31 +18,8 @@ static PyObject * sys_addaudithook(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(hook), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"hook", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "addaudithook", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "addaudithook", 0}; PyObject *argsbuf[1]; PyObject *hook; @@ -292,18 +263,6 @@ sys_intern(PyObject *module, PyObject *arg) return return_value; } -PyDoc_STRVAR(sys__settraceallthreads__doc__, -"_settraceallthreads($module, arg, /)\n" -"--\n" -"\n" -"Set the global debug tracing function in all running threads belonging to the current interpreter.\n" -"\n" -"It will be called on each function call. See the debugger chapter\n" -"in the library manual."); - -#define SYS__SETTRACEALLTHREADS_METHODDEF \ - {"_settraceallthreads", (PyCFunction)sys__settraceallthreads, METH_O, sys__settraceallthreads__doc__}, - PyDoc_STRVAR(sys_gettrace__doc__, "gettrace($module, /)\n" "--\n" @@ -324,18 +283,6 @@ sys_gettrace(PyObject *module, PyObject *Py_UNUSED(ignored)) return sys_gettrace_impl(module); } -PyDoc_STRVAR(sys__setprofileallthreads__doc__, -"_setprofileallthreads($module, arg, /)\n" -"--\n" -"\n" -"Set the profiling function in all running threads belonging to the current interpreter.\n" -"\n" -"It will be called on each function call and return. See the profiler chapter\n" -"in the library manual."); - -#define SYS__SETPROFILEALLTHREADS_METHODDEF \ - {"_setprofileallthreads", (PyCFunction)sys__setprofileallthreads, METH_O, sys__setprofileallthreads__doc__}, - PyDoc_STRVAR(sys_getprofile__doc__, "getprofile($module, /)\n" "--\n" @@ -478,31 +425,8 @@ static PyObject * sys_set_coroutine_origin_tracking_depth(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(depth), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"depth", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "set_coroutine_origin_tracking_depth", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "set_coroutine_origin_tracking_depth", 0}; PyObject *argsbuf[1]; int depth; @@ -745,82 +669,6 @@ sys_mdebug(PyObject *module, PyObject *arg) #endif /* defined(USE_MALLOPT) */ -PyDoc_STRVAR(sys_get_int_max_str_digits__doc__, -"get_int_max_str_digits($module, /)\n" -"--\n" -"\n" -"Set the maximum string digits limit for non-binary int<->str conversions."); - -#define SYS_GET_INT_MAX_STR_DIGITS_METHODDEF \ - {"get_int_max_str_digits", (PyCFunction)sys_get_int_max_str_digits, METH_NOARGS, sys_get_int_max_str_digits__doc__}, - -static PyObject * -sys_get_int_max_str_digits_impl(PyObject *module); - -static PyObject * -sys_get_int_max_str_digits(PyObject *module, PyObject *Py_UNUSED(ignored)) -{ - return sys_get_int_max_str_digits_impl(module); -} - -PyDoc_STRVAR(sys_set_int_max_str_digits__doc__, -"set_int_max_str_digits($module, /, maxdigits)\n" -"--\n" -"\n" -"Set the maximum string digits limit for non-binary int<->str conversions."); - -#define SYS_SET_INT_MAX_STR_DIGITS_METHODDEF \ - {"set_int_max_str_digits", _PyCFunction_CAST(sys_set_int_max_str_digits), METH_FASTCALL|METH_KEYWORDS, sys_set_int_max_str_digits__doc__}, - -static PyObject * -sys_set_int_max_str_digits_impl(PyObject *module, int maxdigits); - -static PyObject * -sys_set_int_max_str_digits(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) -{ - PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 1 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(maxdigits), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - - static const char * const _keywords[] = {"maxdigits", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "set_int_max_str_digits", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE - PyObject *argsbuf[1]; - int maxdigits; - - args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf); - if (!args) { - goto exit; - } - maxdigits = _PyLong_AsInt(args[0]); - if (maxdigits == -1 && PyErr_Occurred()) { - goto exit; - } - return_value = sys_set_int_max_str_digits_impl(module, maxdigits); - -exit: - return return_value; -} - PyDoc_STRVAR(sys_getrefcount__doc__, "getrefcount($module, object, /)\n" "--\n" @@ -1117,94 +965,6 @@ sys_is_finalizing(PyObject *module, PyObject *Py_UNUSED(ignored)) return sys_is_finalizing_impl(module); } -#if defined(Py_STATS) - -PyDoc_STRVAR(sys__stats_on__doc__, -"_stats_on($module, /)\n" -"--\n" -"\n" -"Turns on stats gathering (stats gathering is on by default)."); - -#define SYS__STATS_ON_METHODDEF \ - {"_stats_on", (PyCFunction)sys__stats_on, METH_NOARGS, sys__stats_on__doc__}, - -static PyObject * -sys__stats_on_impl(PyObject *module); - -static PyObject * -sys__stats_on(PyObject *module, PyObject *Py_UNUSED(ignored)) -{ - return sys__stats_on_impl(module); -} - -#endif /* defined(Py_STATS) */ - -#if defined(Py_STATS) - -PyDoc_STRVAR(sys__stats_off__doc__, -"_stats_off($module, /)\n" -"--\n" -"\n" -"Turns off stats gathering (stats gathering is on by default)."); - -#define SYS__STATS_OFF_METHODDEF \ - {"_stats_off", (PyCFunction)sys__stats_off, METH_NOARGS, sys__stats_off__doc__}, - -static PyObject * -sys__stats_off_impl(PyObject *module); - -static PyObject * -sys__stats_off(PyObject *module, PyObject *Py_UNUSED(ignored)) -{ - return sys__stats_off_impl(module); -} - -#endif /* defined(Py_STATS) */ - -#if defined(Py_STATS) - -PyDoc_STRVAR(sys__stats_clear__doc__, -"_stats_clear($module, /)\n" -"--\n" -"\n" -"Clears the stats."); - -#define SYS__STATS_CLEAR_METHODDEF \ - {"_stats_clear", (PyCFunction)sys__stats_clear, METH_NOARGS, sys__stats_clear__doc__}, - -static PyObject * -sys__stats_clear_impl(PyObject *module); - -static PyObject * -sys__stats_clear(PyObject *module, PyObject *Py_UNUSED(ignored)) -{ - return sys__stats_clear_impl(module); -} - -#endif /* defined(Py_STATS) */ - -#if defined(Py_STATS) - -PyDoc_STRVAR(sys__stats_dump__doc__, -"_stats_dump($module, /)\n" -"--\n" -"\n" -"Dump stats to file, and clears the stats."); - -#define SYS__STATS_DUMP_METHODDEF \ - {"_stats_dump", (PyCFunction)sys__stats_dump, METH_NOARGS, sys__stats_dump__doc__}, - -static PyObject * -sys__stats_dump_impl(PyObject *module); - -static PyObject * -sys__stats_dump(PyObject *module, PyObject *Py_UNUSED(ignored)) -{ - return sys__stats_dump_impl(module); -} - -#endif /* defined(Py_STATS) */ - #if defined(ANDROID_API_LEVEL) PyDoc_STRVAR(sys_getandroidapilevel__doc__, @@ -1227,79 +987,6 @@ sys_getandroidapilevel(PyObject *module, PyObject *Py_UNUSED(ignored)) #endif /* defined(ANDROID_API_LEVEL) */ -PyDoc_STRVAR(sys_activate_stack_trampoline__doc__, -"activate_stack_trampoline($module, backend, /)\n" -"--\n" -"\n" -"Activate the perf profiler trampoline."); - -#define SYS_ACTIVATE_STACK_TRAMPOLINE_METHODDEF \ - {"activate_stack_trampoline", (PyCFunction)sys_activate_stack_trampoline, METH_O, sys_activate_stack_trampoline__doc__}, - -static PyObject * -sys_activate_stack_trampoline_impl(PyObject *module, const char *backend); - -static PyObject * -sys_activate_stack_trampoline(PyObject *module, PyObject *arg) -{ - PyObject *return_value = NULL; - const char *backend; - - if (!PyUnicode_Check(arg)) { - _PyArg_BadArgument("activate_stack_trampoline", "argument", "str", arg); - goto exit; - } - Py_ssize_t backend_length; - backend = PyUnicode_AsUTF8AndSize(arg, &backend_length); - if (backend == NULL) { - goto exit; - } - if (strlen(backend) != (size_t)backend_length) { - PyErr_SetString(PyExc_ValueError, "embedded null character"); - goto exit; - } - return_value = sys_activate_stack_trampoline_impl(module, backend); - -exit: - return return_value; -} - -PyDoc_STRVAR(sys_deactivate_stack_trampoline__doc__, -"deactivate_stack_trampoline($module, /)\n" -"--\n" -"\n" -"Dectivate the perf profiler trampoline."); - -#define SYS_DEACTIVATE_STACK_TRAMPOLINE_METHODDEF \ - {"deactivate_stack_trampoline", (PyCFunction)sys_deactivate_stack_trampoline, METH_NOARGS, sys_deactivate_stack_trampoline__doc__}, - -static PyObject * -sys_deactivate_stack_trampoline_impl(PyObject *module); - -static PyObject * -sys_deactivate_stack_trampoline(PyObject *module, PyObject *Py_UNUSED(ignored)) -{ - return sys_deactivate_stack_trampoline_impl(module); -} - -PyDoc_STRVAR(sys_is_stack_trampoline_active__doc__, -"is_stack_trampoline_active($module, /)\n" -"--\n" -"\n" -"Returns *True* if the perf profiler trampoline is active."); - -#define SYS_IS_STACK_TRAMPOLINE_ACTIVE_METHODDEF \ - {"is_stack_trampoline_active", (PyCFunction)sys_is_stack_trampoline_active, METH_NOARGS, sys_is_stack_trampoline_active__doc__}, - -static PyObject * -sys_is_stack_trampoline_active_impl(PyObject *module); - -static PyObject * -sys_is_stack_trampoline_active(PyObject *module, PyObject *Py_UNUSED(ignored)) -{ - return sys_is_stack_trampoline_active_impl(module); -} - #ifndef SYS_GETWINDOWSVERSION_METHODDEF #define SYS_GETWINDOWSVERSION_METHODDEF #endif /* !defined(SYS_GETWINDOWSVERSION_METHODDEF) */ @@ -1324,23 +1011,7 @@ sys_is_stack_trampoline_active(PyObject *module, PyObject *Py_UNUSED(ignored)) #define SYS_GETTOTALREFCOUNT_METHODDEF #endif /* !defined(SYS_GETTOTALREFCOUNT_METHODDEF) */ -#ifndef SYS__STATS_ON_METHODDEF - #define SYS__STATS_ON_METHODDEF -#endif /* !defined(SYS__STATS_ON_METHODDEF) */ - -#ifndef SYS__STATS_OFF_METHODDEF - #define SYS__STATS_OFF_METHODDEF -#endif /* !defined(SYS__STATS_OFF_METHODDEF) */ - -#ifndef SYS__STATS_CLEAR_METHODDEF - #define SYS__STATS_CLEAR_METHODDEF -#endif /* !defined(SYS__STATS_CLEAR_METHODDEF) */ - -#ifndef SYS__STATS_DUMP_METHODDEF - #define SYS__STATS_DUMP_METHODDEF -#endif /* !defined(SYS__STATS_DUMP_METHODDEF) */ - #ifndef SYS_GETANDROIDAPILEVEL_METHODDEF #define SYS_GETANDROIDAPILEVEL_METHODDEF #endif /* !defined(SYS_GETANDROIDAPILEVEL_METHODDEF) */ -/*[clinic end generated code: output=15318cdd96b62b06 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=98efd34fd9b9b6ab input=a9049054013a1b77]*/ diff --git a/Python/clinic/traceback.c.h b/Python/clinic/traceback.c.h index 3c344934971643..404a0c416d3469 100644 --- a/Python/clinic/traceback.c.h +++ b/Python/clinic/traceback.c.h @@ -2,12 +2,6 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - - PyDoc_STRVAR(tb_new__doc__, "TracebackType(tb_next, tb_frame, tb_lasti, tb_lineno)\n" "--\n" @@ -22,31 +16,8 @@ static PyObject * tb_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS 4 - static struct { - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - } _kwtuple = { - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(tb_next), &_Py_ID(tb_frame), &_Py_ID(tb_lasti), &_Py_ID(tb_lineno), }, - }; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"tb_next", "tb_frame", "tb_lasti", "tb_lineno", NULL}; - static _PyArg_Parser _parser = { - .keywords = _keywords, - .fname = "TracebackType", - .kwtuple = KWTUPLE, - }; - #undef KWTUPLE + static _PyArg_Parser _parser = {NULL, _keywords, "TracebackType", 0}; PyObject *argsbuf[4]; PyObject * const *fastargs; Py_ssize_t nargs = PyTuple_GET_SIZE(args); @@ -78,4 +49,4 @@ tb_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=7bc9927e362fdfb7 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=403778d7af5ebef9 input=a9049054013a1b77]*/ diff --git a/Python/compile.c b/Python/compile.c index 777190526d2575..541fa4c9a12b98 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -71,94 +71,82 @@ #define MAX_ALLOWED_STACK_USE (STACK_USE_GUIDELINE * 100) -#define MAX_REAL_OPCODE 254 +/* Pseudo-instructions used in the compiler, + * but turned into NOPs or other instructions + * by the assembler. */ +#define SETUP_FINALLY -1 +#define SETUP_CLEANUP -2 +#define SETUP_WITH -3 +#define POP_BLOCK -4 +#define JUMP -5 +#define JUMP_NO_INTERRUPT -6 +#define POP_JUMP_IF_FALSE -7 +#define POP_JUMP_IF_TRUE -8 +#define POP_JUMP_IF_NONE -9 +#define POP_JUMP_IF_NOT_NONE -10 + +#define MIN_VIRTUAL_OPCODE -10 +#define MAX_ALLOWED_OPCODE 254 #define IS_WITHIN_OPCODE_RANGE(opcode) \ - (((opcode) >= 0 && (opcode) <= MAX_REAL_OPCODE) || \ - IS_PSEUDO_OPCODE(opcode)) + ((opcode) >= MIN_VIRTUAL_OPCODE && (opcode) <= MAX_ALLOWED_OPCODE) -#define IS_JUMP_OPCODE(opcode) \ - is_bit_set_in_table(_PyOpcode_Jump, opcode) +#define IS_VIRTUAL_OPCODE(opcode) ((opcode) < 0) -#define IS_BLOCK_PUSH_OPCODE(opcode) \ - ((opcode) == SETUP_FINALLY || \ - (opcode) == SETUP_WITH || \ - (opcode) == SETUP_CLEANUP) - -#define HAS_TARGET(opcode) \ - (IS_JUMP_OPCODE(opcode) || IS_BLOCK_PUSH_OPCODE(opcode)) - -/* opcodes that must be last in the basicblock */ -#define IS_TERMINATOR_OPCODE(opcode) \ - (IS_JUMP_OPCODE(opcode) || IS_SCOPE_EXIT_OPCODE(opcode)) +#define IS_VIRTUAL_JUMP_OPCODE(opcode) \ + ((opcode) == JUMP || \ + (opcode) == JUMP_NO_INTERRUPT || \ + (opcode) == POP_JUMP_IF_NONE || \ + (opcode) == POP_JUMP_IF_NOT_NONE || \ + (opcode) == POP_JUMP_IF_FALSE || \ + (opcode) == POP_JUMP_IF_TRUE) /* opcodes which are not emitted in codegen stage, only by the assembler */ #define IS_ASSEMBLER_OPCODE(opcode) \ ((opcode) == JUMP_FORWARD || \ (opcode) == JUMP_BACKWARD || \ - (opcode) == JUMP_BACKWARD_NO_INTERRUPT) + (opcode) == JUMP_BACKWARD_NO_INTERRUPT || \ + (opcode) == POP_JUMP_FORWARD_IF_NONE || \ + (opcode) == POP_JUMP_BACKWARD_IF_NONE || \ + (opcode) == POP_JUMP_FORWARD_IF_NOT_NONE || \ + (opcode) == POP_JUMP_BACKWARD_IF_NOT_NONE || \ + (opcode) == POP_JUMP_FORWARD_IF_TRUE || \ + (opcode) == POP_JUMP_BACKWARD_IF_TRUE || \ + (opcode) == POP_JUMP_FORWARD_IF_FALSE || \ + (opcode) == POP_JUMP_BACKWARD_IF_FALSE) + #define IS_BACKWARDS_JUMP_OPCODE(opcode) \ ((opcode) == JUMP_BACKWARD || \ - (opcode) == JUMP_BACKWARD_NO_INTERRUPT) - -#define IS_UNCONDITIONAL_JUMP_OPCODE(opcode) \ - ((opcode) == JUMP || \ - (opcode) == JUMP_NO_INTERRUPT || \ - (opcode) == JUMP_FORWARD || \ - (opcode) == JUMP_BACKWARD || \ - (opcode) == JUMP_BACKWARD_NO_INTERRUPT) + (opcode) == JUMP_BACKWARD_NO_INTERRUPT || \ + (opcode) == POP_JUMP_BACKWARD_IF_NONE || \ + (opcode) == POP_JUMP_BACKWARD_IF_NOT_NONE || \ + (opcode) == POP_JUMP_BACKWARD_IF_TRUE || \ + (opcode) == POP_JUMP_BACKWARD_IF_FALSE) -#define IS_SCOPE_EXIT_OPCODE(opcode) \ - ((opcode) == RETURN_VALUE || \ - (opcode) == RAISE_VARARGS || \ - (opcode) == RERAISE) #define IS_TOP_LEVEL_AWAIT(c) ( \ (c->c_flags->cf_flags & PyCF_ALLOW_TOP_LEVEL_AWAIT) \ && (c->u->u_ste->ste_type == ModuleBlock)) -struct location { - int lineno; - int end_lineno; - int col_offset; - int end_col_offset; -}; - -#define LOCATION(LNO, END_LNO, COL, END_COL) \ - ((const struct location){(LNO), (END_LNO), (COL), (END_COL)}) - -static struct location NO_LOCATION = {-1, -1, -1, -1}; - -typedef struct jump_target_label_ { - int id; -} jump_target_label; - -static struct jump_target_label_ NO_LABEL = {-1}; - -#define SAME_LABEL(L1, L2) ((L1).id == (L2).id) -#define IS_LABEL(L) (!SAME_LABEL((L), (NO_LABEL))) - -#define NEW_JUMP_TARGET_LABEL(C, NAME) \ - jump_target_label NAME = cfg_new_label(CFG_BUILDER(C)); \ - if (!IS_LABEL(NAME)) { \ - return 0; \ - } - -#define USE_LABEL(C, LBL) \ - if (cfg_builder_use_label(CFG_BUILDER(C), LBL) < 0) { \ - return 0; \ - } - struct instr { int i_opcode; int i_oparg; - struct location i_loc; - /* The following fields should not be set by the front-end: */ - struct basicblock_ *i_target; /* target block (if jump instruction) */ - struct basicblock_ *i_except; /* target block when exception is raised */ + /* target block (if jump instruction) */ + struct basicblock_ *i_target; + /* target block when exception is raised, should not be set by front-end. */ + struct basicblock_ *i_except; + int i_lineno; + int i_end_lineno; + int i_col_offset; + int i_end_col_offset; }; +typedef struct excepthandler { + struct instr *setup; + int offset; +} ExceptHandler; + typedef struct exceptstack { struct basicblock_ *handlers[CO_MAXBLOCKS+1]; int depth; @@ -170,11 +158,11 @@ typedef struct exceptstack { static inline int is_bit_set_in_table(const uint32_t *table, int bitindex) { /* Is the relevant bit set in the relevant word? */ - /* 512 bits fit into 9 32-bits words. + /* 256 bits fit into 8 32-bits words. * Word is indexed by (bitindex>>ln(size of int in bits)). * Bit within word is the low bits of bitindex. */ - if (bitindex >= 0 && bitindex < 512) { + if (bitindex >= 0 && bitindex < 256) { uint32_t word = table[bitindex >> LOG_BITS_PER_INT]; return (word >> (bitindex & MASK_LOW_LOG_BITS)) & 1; } @@ -190,22 +178,24 @@ is_relative_jump(struct instr *i) } static inline int -is_block_push(struct instr *i) +is_block_push(struct instr *instr) { - return IS_BLOCK_PUSH_OPCODE(i->i_opcode); + int opcode = instr->i_opcode; + return opcode == SETUP_FINALLY || opcode == SETUP_WITH || opcode == SETUP_CLEANUP; } static inline int is_jump(struct instr *i) { - return IS_JUMP_OPCODE(i->i_opcode); + return IS_VIRTUAL_JUMP_OPCODE(i->i_opcode) || + is_bit_set_in_table(_PyOpcode_Jump, i->i_opcode); } static int instr_size(struct instr *instruction) { int opcode = instruction->i_opcode; - assert(!IS_PSEUDO_OPCODE(opcode)); + assert(!IS_VIRTUAL_OPCODE(opcode)); int oparg = HAS_ARG(opcode) ? instruction->i_oparg : 0; int extended_args = (0xFFFFFF < oparg) + (0xFFFF < oparg) + (0xFF < oparg); int caches = _PyOpcode_Caches[opcode]; @@ -216,18 +206,18 @@ static void write_instr(_Py_CODEUNIT *codestr, struct instr *instruction, int ilen) { int opcode = instruction->i_opcode; - assert(!IS_PSEUDO_OPCODE(opcode)); + assert(!IS_VIRTUAL_OPCODE(opcode)); int oparg = HAS_ARG(opcode) ? instruction->i_oparg : 0; int caches = _PyOpcode_Caches[opcode]; switch (ilen - caches) { case 4: - *codestr++ = _Py_MAKECODEUNIT(EXTENDED_ARG, (oparg >> 24) & 0xFF); + *codestr++ = _Py_MAKECODEUNIT(EXTENDED_ARG_QUICK, (oparg >> 24) & 0xFF); /* fall through */ case 3: - *codestr++ = _Py_MAKECODEUNIT(EXTENDED_ARG, (oparg >> 16) & 0xFF); + *codestr++ = _Py_MAKECODEUNIT(EXTENDED_ARG_QUICK, (oparg >> 16) & 0xFF); /* fall through */ case 2: - *codestr++ = _Py_MAKECODEUNIT(EXTENDED_ARG, (oparg >> 8) & 0xFF); + *codestr++ = _Py_MAKECODEUNIT(EXTENDED_ARG_QUICK, (oparg >> 8) & 0xFF); /* fall through */ case 1: *codestr++ = _Py_MAKECODEUNIT(opcode, oparg & 0xFF); @@ -245,8 +235,6 @@ typedef struct basicblock_ { reverse order that the block are allocated. b_list points to the next block, not to be confused with b_next, which is next by control flow. */ struct basicblock_ *b_list; - /* The label of this block if it is a jump target, -1 otherwise */ - int b_label; /* Exception stack at start of block, used by assembler to create the exception handling table */ ExceptStack *b_exceptstack; /* pointer to an array of instructions, initially NULL */ @@ -260,56 +248,22 @@ typedef struct basicblock_ { int b_ialloc; /* Number of predecssors that a block has. */ int b_predecessors; - /* Number of predecssors that a block has as an exception handler. */ - int b_except_predecessors; /* depth of stack upon entry of block, computed by stackdepth() */ int b_startdepth; /* instruction offset for block, computed by assemble_jump_offsets() */ int b_offset; + /* Basic block has no fall through (it ends with a return, raise or jump) */ + unsigned b_nofallthrough : 1; /* Basic block is an exception handler that preserves lasti */ unsigned b_preserve_lasti : 1; /* Used by compiler passes to mark whether they have visited a basic block. */ unsigned b_visited : 1; - /* b_cold is true if this block is not perf critical (like an exception handler) */ - unsigned b_cold : 1; - /* b_warm is used by the cold-detection algorithm to mark blocks which are definitely not cold */ - unsigned b_warm : 1; + /* Basic block exits scope (it ends with a return or raise) */ + unsigned b_exit : 1; + /* b_return is true if a RETURN_VALUE opcode is inserted. */ + unsigned b_return : 1; } basicblock; - -static struct instr * -basicblock_last_instr(const basicblock *b) { - assert(b->b_iused >= 0); - if (b->b_iused > 0) { - assert(b->b_instr != NULL); - return &b->b_instr[b->b_iused - 1]; - } - return NULL; -} - -static inline int -basicblock_returns(const basicblock *b) { - struct instr *last = basicblock_last_instr(b); - return last && last->i_opcode == RETURN_VALUE; -} - -static inline int -basicblock_exits_scope(const basicblock *b) { - struct instr *last = basicblock_last_instr(b); - return last && IS_SCOPE_EXIT_OPCODE(last->i_opcode); -} - -static inline int -basicblock_nofallthrough(const basicblock *b) { - struct instr *last = basicblock_last_instr(b); - return (last && - (IS_SCOPE_EXIT_OPCODE(last->i_opcode) || - IS_UNCONDITIONAL_JUMP_OPCODE(last->i_opcode))); -} - -#define BB_NO_FALLTHROUGH(B) (basicblock_nofallthrough(B)) -#define BB_HAS_FALLTHROUGH(B) (!basicblock_nofallthrough(B)) - /* fblockinfo tracks the current frame block. A frame block is used to handle loops, try/except, and try/finally. @@ -323,9 +277,9 @@ enum fblocktype { WHILE_LOOP, FOR_LOOP, TRY_EXCEPT, FINALLY_TRY, FINALLY_END, struct fblockinfo { enum fblocktype fb_type; - jump_target_label fb_block; + basicblock *fb_block; /* (optional) type-specific exit or cleanup block */ - jump_target_label fb_exit; + basicblock *fb_exit; /* (optional) additional information required for unwinding */ void *fb_datum; }; @@ -339,21 +293,6 @@ enum { COMPILER_SCOPE_COMPREHENSION, }; -typedef struct cfg_builder_ { - /* The entryblock, at which control flow begins. All blocks of the - CFG are reachable through the b_next links */ - basicblock *g_entryblock; - /* Pointer to the most recently allocated block. By following - b_list links, you can reach all allocated blocks. */ - basicblock *g_block_list; - /* pointer to the block currently being constructed */ - basicblock *g_curblock; - /* label for the next instruction to be placed */ - jump_target_label g_current_label; - /* next free label id */ - int g_next_free_label; -} cfg_builder; - /* The following items change on entry and exit of code blocks. They must be saved and restored when returning to a block. */ @@ -379,14 +318,22 @@ struct compiler_unit { Py_ssize_t u_argcount; /* number of arguments for block */ Py_ssize_t u_posonlyargcount; /* number of positional only arguments for block */ Py_ssize_t u_kwonlyargcount; /* number of keyword only arguments for block */ - - cfg_builder u_cfg_builder; /* The control flow graph */ + /* Pointer to the most recently allocated block. By following b_list + members, you can reach all early allocated blocks. */ + basicblock *u_blocks; + basicblock *u_curblock; /* pointer to current block */ int u_nfblocks; struct fblockinfo u_fblock[CO_MAXBLOCKS]; int u_firstlineno; /* the first lineno of the block */ - struct location u_loc; /* line/column info of the current stmt */ + int u_lineno; /* the lineno for the current stmt */ + int u_col_offset; /* the offset of the current stmt */ + int u_end_lineno; /* the end line of the current stmt */ + int u_end_col_offset; /* the end offset of the current stmt */ + + /* true if we need to create an implicit basicblock before the next instr */ + int u_need_new_implicit_block; }; /* This struct captures the global state of a compilation. @@ -417,9 +364,6 @@ struct compiler { PyArena *c_arena; /* pointer to memory allocation arena */ }; -#define CFG_BUILDER(c) (&((c)->u->u_cfg_builder)) -#define COMPILER_LOC(c) ((c)->u->u_loc) - typedef struct { // A list of strings corresponding to name captures. It is used to track: // - Repeated name assignments in the same pattern. @@ -436,7 +380,7 @@ typedef struct { // fail_pop[2]: POP_TOP // fail_pop[1]: POP_TOP // fail_pop[0]: NOP - jump_target_label *fail_pop; + basicblock **fail_pop; // The current length of fail_pop. Py_ssize_t fail_pop_size; // The number of items on top of the stack that need to *stay* on top of the @@ -445,13 +389,14 @@ typedef struct { Py_ssize_t on_top; } pattern_context; -static int basicblock_next_instr(basicblock *); - -static basicblock *cfg_builder_new_block(cfg_builder *g); -static int cfg_builder_maybe_start_new_block(cfg_builder *g); -static int cfg_builder_addop_i(cfg_builder *g, int opcode, Py_ssize_t oparg, struct location loc); - +static int compiler_enter_scope(struct compiler *, identifier, int, void *, int); static void compiler_free(struct compiler *); +static basicblock *compiler_new_block(struct compiler *); +static int compiler_next_instr(basicblock *); +static int compiler_addop(struct compiler *, int); +static int compiler_addop_i(struct compiler *, int, Py_ssize_t); +static int compiler_addop_j(struct compiler *, int, basicblock *); +static int compiler_addop_j_noline(struct compiler *, int, basicblock *); static int compiler_error(struct compiler *, const char *, ...); static int compiler_warn(struct compiler *, const char *, ...); static int compiler_nameop(struct compiler *, identifier, expr_context_ty); @@ -471,6 +416,7 @@ static int are_all_items_const(asdl_expr_seq *, Py_ssize_t, Py_ssize_t); static int compiler_with(struct compiler *, stmt_ty, int); static int compiler_async_with(struct compiler *, stmt_ty, int); static int compiler_async_for(struct compiler *, stmt_ty); +static int validate_keywords(struct compiler *c, asdl_keyword_seq *keywords); static int compiler_call_simple_kw_helper(struct compiler *c, asdl_keyword_seq *keywords, Py_ssize_t nkwelts); @@ -498,7 +444,7 @@ static int compiler_match(struct compiler *, stmt_ty); static int compiler_pattern_subpattern(struct compiler *, pattern_ty, pattern_context *); -static void remove_redundant_nops(basicblock *bb); +static void clean_basic_block(basicblock *bb); static PyCodeObject *assemble(struct compiler *, int addNone); @@ -742,9 +688,10 @@ dictbytype(PyObject *src, int scope_type, int flag, Py_ssize_t offset) } static void -cfg_builder_check(cfg_builder *g) +compiler_unit_check(struct compiler_unit *u) { - for (basicblock *block = g->g_block_list; block != NULL; block = block->b_list) { + basicblock *block; + for (block = u->u_blocks; block != NULL; block = block->b_list) { assert(!_PyMem_IsPtrFreed(block)); if (block->b_instr != NULL) { assert(block->b_ialloc > 0); @@ -758,37 +705,20 @@ cfg_builder_check(cfg_builder *g) } } -static int -cfg_builder_init(cfg_builder *g) -{ - g->g_block_list = NULL; - basicblock *block = cfg_builder_new_block(g); - if (block == NULL) - return 0; - g->g_curblock = g->g_entryblock = block; - g->g_current_label = NO_LABEL; - return 1; -} - static void -cfg_builder_fini(cfg_builder* g) +compiler_unit_free(struct compiler_unit *u) { - cfg_builder_check(g); - basicblock *b = g->g_block_list; + basicblock *b, *next; + + compiler_unit_check(u); + b = u->u_blocks; while (b != NULL) { - if (b->b_instr) { + if (b->b_instr) PyObject_Free((void *)b->b_instr); - } - basicblock *next = b->b_list; + next = b->b_list; PyObject_Free((void *)b); b = next; } -} - -static void -compiler_unit_free(struct compiler_unit *u) -{ - cfg_builder_fini(&u->u_cfg_builder); Py_CLEAR(u->u_ste); Py_CLEAR(u->u_name); Py_CLEAR(u->u_qualname); @@ -871,65 +801,59 @@ compiler_set_qualname(struct compiler *c) return 1; } -static jump_target_label -cfg_new_label(cfg_builder *g) -{ - jump_target_label lbl = {g->g_next_free_label++}; - return lbl; -} /* Allocate a new block and return a pointer to it. Returns NULL on error. */ + static basicblock * -cfg_builder_new_block(cfg_builder *g) +compiler_new_block(struct compiler *c) { - basicblock *b = (basicblock *)PyObject_Calloc(1, sizeof(basicblock)); + basicblock *b; + struct compiler_unit *u; + + u = c->u; + b = (basicblock *)PyObject_Calloc(1, sizeof(basicblock)); if (b == NULL) { PyErr_NoMemory(); return NULL; } /* Extend the singly linked list of blocks with new block. */ - b->b_list = g->g_block_list; - g->g_block_list = b; - b->b_label = -1; + b->b_list = u->u_blocks; + u->u_blocks = b; return b; } static basicblock * -cfg_builder_use_next_block(cfg_builder *g, basicblock *block) +compiler_use_next_block(struct compiler *c, basicblock *block) { assert(block != NULL); - g->g_curblock->b_next = block; - g->g_curblock = block; + c->u->u_curblock->b_next = block; + c->u->u_curblock = block; + c->u->u_need_new_implicit_block = 0; return block; } -static int -cfg_builder_use_label(cfg_builder *g, jump_target_label lbl) -{ - g->g_current_label = lbl; - return cfg_builder_maybe_start_new_block(g); -} - static basicblock * -copy_basicblock(cfg_builder *g, basicblock *block) +compiler_copy_block(struct compiler *c, basicblock *block) { /* Cannot copy a block if it has a fallthrough, since * a block can only have one fallthrough predecessor. */ - assert(BB_NO_FALLTHROUGH(block)); - basicblock *result = cfg_builder_new_block(g); + assert(block->b_nofallthrough); + basicblock *result = compiler_new_block(c); if (result == NULL) { return NULL; } for (int i = 0; i < block->b_iused; i++) { - int n = basicblock_next_instr(result); + int n = compiler_next_instr(result); if (n < 0) { return NULL; } result->b_instr[n] = block->b_instr[i]; } + result->b_exit = block->b_exit; + result->b_nofallthrough = 1; return result; } @@ -939,7 +863,7 @@ copy_basicblock(cfg_builder *g, basicblock *block) */ static int -basicblock_next_instr(basicblock *b) +compiler_next_instr(basicblock *b) { assert(b != NULL); if (b->b_instr == NULL) { @@ -988,19 +912,24 @@ basicblock_next_instr(basicblock *b) - before the "except" and "finally" clauses */ -#define SET_LOC(c, x) \ - (c)->u->u_loc.lineno = (x)->lineno; \ - (c)->u->u_loc.end_lineno = (x)->end_lineno; \ - (c)->u->u_loc.col_offset = (x)->col_offset; \ - (c)->u->u_loc.end_col_offset = (x)->end_col_offset; +#define SET_LOC(c, x) \ + (c)->u->u_lineno = (x)->lineno; \ + (c)->u->u_col_offset = (x)->col_offset; \ + (c)->u->u_end_lineno = (x)->end_lineno; \ + (c)->u->u_end_col_offset = (x)->end_col_offset; // Artificial instructions -#define UNSET_LOC(c) \ - (c)->u->u_loc.lineno = -1; \ - (c)->u->u_loc.end_lineno = -1; \ - (c)->u->u_loc.col_offset = -1; \ - (c)->u->u_loc.end_col_offset = -1; - +#define UNSET_LOC(c) \ + (c)->u->u_lineno = -1; \ + (c)->u->u_col_offset = -1; \ + (c)->u->u_end_lineno = -1; \ + (c)->u->u_end_col_offset = -1; + +#define COPY_INSTR_LOC(old, new) \ + (new).i_lineno = (old).i_lineno; \ + (new).i_col_offset = (old).i_col_offset; \ + (new).i_end_lineno = (old).i_end_lineno; \ + (new).i_end_col_offset = (old).i_end_col_offset; /* Return the stack effect of opcode with argument oparg. @@ -1042,12 +971,8 @@ stack_effect(int opcode, int oparg, int jump) case BINARY_SUBSCR: return -1; - case BINARY_SLICE: - return -2; case STORE_SUBSCR: return -3; - case STORE_SLICE: - return -4; case DELETE_SUBSCR: return -2; @@ -1108,7 +1033,7 @@ stack_effect(int opcode, int oparg, int jump) case BUILD_CONST_KEY_MAP: return -oparg; case LOAD_ATTR: - return (oparg & 1); + return 0; case COMPARE_OP: case IS_OP: case CONTAINS_OP: @@ -1134,9 +1059,17 @@ stack_effect(int opcode, int oparg, int jump) case JUMP_IF_FALSE_OR_POP: return jump ? 0 : -1; + case POP_JUMP_BACKWARD_IF_NONE: + case POP_JUMP_FORWARD_IF_NONE: case POP_JUMP_IF_NONE: + case POP_JUMP_BACKWARD_IF_NOT_NONE: + case POP_JUMP_FORWARD_IF_NOT_NONE: case POP_JUMP_IF_NOT_NONE: + case POP_JUMP_FORWARD_IF_FALSE: + case POP_JUMP_BACKWARD_IF_FALSE: case POP_JUMP_IF_FALSE: + case POP_JUMP_FORWARD_IF_TRUE: + case POP_JUMP_BACKWARD_IF_TRUE: case POP_JUMP_IF_TRUE: return -1; @@ -1170,7 +1103,6 @@ stack_effect(int opcode, int oparg, int jump) return 1; case LOAD_FAST: - case LOAD_FAST_CHECK: return 1; case STORE_FAST: return -1; @@ -1229,8 +1161,6 @@ stack_effect(int opcode, int oparg, int jump) return 0; case END_ASYNC_FOR: return -2; - case CLEANUP_THROW: - return -2; case FORMAT_VALUE: /* If there's a fmt_spec on the stack, we go from 2->1, else 1->1. */ @@ -1276,74 +1206,89 @@ PyCompile_OpcodeStackEffect(int opcode, int oparg) return stack_effect(opcode, oparg, -1); } +static int is_end_of_basic_block(struct instr *instr) +{ + int opcode = instr->i_opcode; + + return is_jump(instr) || + opcode == RETURN_VALUE || + opcode == RAISE_VARARGS || + opcode == RERAISE; +} + +static int +compiler_use_new_implicit_block_if_needed(struct compiler *c) +{ + if (c->u->u_need_new_implicit_block) { + basicblock *b = compiler_new_block(c); + if (b == NULL) { + return -1; + } + compiler_use_next_block(c, b); + } + return 0; +} + +static void +compiler_check_if_end_of_block(struct compiler *c, struct instr *instr) +{ + if (is_end_of_basic_block(instr)) { + c->u->u_need_new_implicit_block = 1; + } +} + /* Add an opcode with no argument. Returns 0 on failure, 1 on success. */ static int -basicblock_addop(basicblock *b, int opcode, int oparg, struct location loc) +compiler_addop_line(struct compiler *c, int opcode, int line, + int end_line, int col_offset, int end_col_offset) { assert(IS_WITHIN_OPCODE_RANGE(opcode)); assert(!IS_ASSEMBLER_OPCODE(opcode)); - assert(HAS_ARG(opcode) || HAS_TARGET(opcode) || oparg == 0); - assert(0 <= oparg && oparg < (1 << 30)); + assert(!HAS_ARG(opcode) || IS_ARTIFICIAL(opcode)); + + if (compiler_use_new_implicit_block_if_needed(c) < 0) { + return -1; + } - int off = basicblock_next_instr(b); + basicblock *b = c->u->u_curblock; + int off = compiler_next_instr(b); if (off < 0) { return 0; } struct instr *i = &b->b_instr[off]; i->i_opcode = opcode; - i->i_oparg = oparg; - i->i_target = NULL; - i->i_loc = loc; + i->i_oparg = 0; + if (opcode == RETURN_VALUE) { + b->b_return = 1; + } + i->i_lineno = line; + i->i_end_lineno = end_line; + i->i_col_offset = col_offset; + i->i_end_col_offset = end_col_offset; + compiler_check_if_end_of_block(c, i); return 1; } -static bool -cfg_builder_current_block_is_terminated(cfg_builder *g) -{ - if (IS_LABEL(g->g_current_label)) { - return true; - } - struct instr *last = basicblock_last_instr(g->g_curblock); - return last && IS_TERMINATOR_OPCODE(last->i_opcode); -} - static int -cfg_builder_maybe_start_new_block(cfg_builder *g) +compiler_addop(struct compiler *c, int opcode) { - if (cfg_builder_current_block_is_terminated(g)) { - basicblock *b = cfg_builder_new_block(g); - if (b == NULL) { - return -1; - } - b->b_label = g->g_current_label.id; - g->g_current_label = NO_LABEL; - cfg_builder_use_next_block(g, b); - } - return 0; + return compiler_addop_line(c, opcode, c->u->u_lineno, c->u->u_end_lineno, + c->u->u_col_offset, c->u->u_end_col_offset); } static int -cfg_builder_addop(cfg_builder *g, int opcode, int oparg, struct location loc) +compiler_addop_noline(struct compiler *c, int opcode) { - if (cfg_builder_maybe_start_new_block(g) != 0) { - return -1; - } - return basicblock_addop(g->g_curblock, opcode, oparg, loc); + return compiler_addop_line(c, opcode, -1, 0, 0, 0); } -static int -cfg_builder_addop_noarg(cfg_builder *g, int opcode, struct location loc) -{ - assert(!HAS_ARG(opcode)); - return cfg_builder_addop(g, opcode, 0, loc); -} static Py_ssize_t -dict_add_o(PyObject *dict, PyObject *o) +compiler_add_o(PyObject *dict, PyObject *o) { PyObject *v; Py_ssize_t arg; @@ -1371,9 +1316,8 @@ dict_add_o(PyObject *dict, PyObject *o) // Merge const *o* recursively and return constant key object. static PyObject* -merge_consts_recursive(PyObject *const_cache, PyObject *o) +merge_consts_recursive(struct compiler *c, PyObject *o) { - assert(PyDict_CheckExact(const_cache)); // None and Ellipsis are singleton, and key is the singleton. // No need to merge object and key. if (o == Py_None || o == Py_Ellipsis) { @@ -1387,22 +1331,22 @@ merge_consts_recursive(PyObject *const_cache, PyObject *o) } // t is borrowed reference - PyObject *t = PyDict_SetDefault(const_cache, key, key); + PyObject *t = PyDict_SetDefault(c->c_const_cache, key, key); if (t != key) { - // o is registered in const_cache. Just use it. + // o is registered in c_const_cache. Just use it. Py_XINCREF(t); Py_DECREF(key); return t; } - // We registered o in const_cache. + // We registered o in c_const_cache. // When o is a tuple or frozenset, we want to merge its // items too. if (PyTuple_CheckExact(o)) { Py_ssize_t len = PyTuple_GET_SIZE(o); for (Py_ssize_t i = 0; i < len; i++) { PyObject *item = PyTuple_GET_ITEM(o, i); - PyObject *u = merge_consts_recursive(const_cache, item); + PyObject *u = merge_consts_recursive(c, item); if (u == NULL) { Py_DECREF(key); return NULL; @@ -1445,7 +1389,7 @@ merge_consts_recursive(PyObject *const_cache, PyObject *o) PyObject *item; Py_hash_t hash; while (_PySet_NextEntry(o, &pos, &item, &hash)) { - PyObject *k = merge_consts_recursive(const_cache, item); + PyObject *k = merge_consts_recursive(c, item); if (k == NULL) { Py_DECREF(tuple); Py_DECREF(key); @@ -1483,12 +1427,12 @@ merge_consts_recursive(PyObject *const_cache, PyObject *o) static Py_ssize_t compiler_add_const(struct compiler *c, PyObject *o) { - PyObject *key = merge_consts_recursive(c->c_const_cache, o); + PyObject *key = merge_consts_recursive(c, o); if (key == NULL) { return -1; } - Py_ssize_t arg = dict_add_o(c->u->u_consts, key); + Py_ssize_t arg = compiler_add_o(c->u->u_consts, key); Py_DECREF(key); return arg; } @@ -1499,17 +1443,17 @@ compiler_addop_load_const(struct compiler *c, PyObject *o) Py_ssize_t arg = compiler_add_const(c, o); if (arg < 0) return 0; - return cfg_builder_addop_i(CFG_BUILDER(c), LOAD_CONST, arg, COMPILER_LOC(c)); + return compiler_addop_i(c, LOAD_CONST, arg); } static int compiler_addop_o(struct compiler *c, int opcode, PyObject *dict, PyObject *o) { - Py_ssize_t arg = dict_add_o(dict, o); + Py_ssize_t arg = compiler_add_o(dict, o); if (arg < 0) return 0; - return cfg_builder_addop_i(CFG_BUILDER(c), opcode, arg, COMPILER_LOC(c)); + return compiler_addop_i(c, opcode, arg); } static int @@ -1521,26 +1465,21 @@ compiler_addop_name(struct compiler *c, int opcode, PyObject *dict, PyObject *mangled = _Py_Mangle(c->u->u_private, o); if (!mangled) return 0; - arg = dict_add_o(dict, mangled); + arg = compiler_add_o(dict, mangled); Py_DECREF(mangled); if (arg < 0) return 0; - if (opcode == LOAD_ATTR) { - arg <<= 1; - } - if (opcode == LOAD_METHOD) { - opcode = LOAD_ATTR; - arg <<= 1; - arg |= 1; - } - return cfg_builder_addop_i(CFG_BUILDER(c), opcode, arg, COMPILER_LOC(c)); + return compiler_addop_i(c, opcode, arg); } /* Add an opcode with an integer argument. Returns 0 on failure, 1 on success. */ + static int -cfg_builder_addop_i(cfg_builder *g, int opcode, Py_ssize_t oparg, struct location loc) +compiler_addop_i_line(struct compiler *c, int opcode, Py_ssize_t oparg, + int lineno, int end_lineno, + int col_offset, int end_col_offset) { /* oparg value is unsigned, but a signed C int is usually used to store it in the C code (like Python/ceval.c). @@ -1550,31 +1489,103 @@ cfg_builder_addop_i(cfg_builder *g, int opcode, Py_ssize_t oparg, struct locatio The argument of a concrete bytecode instruction is limited to 8-bit. EXTENDED_ARG is used for 16, 24, and 32-bit arguments. */ - int oparg_ = Py_SAFE_DOWNCAST(oparg, Py_ssize_t, int); - return cfg_builder_addop(g, opcode, oparg_, loc); + assert(IS_WITHIN_OPCODE_RANGE(opcode)); + assert(!IS_ASSEMBLER_OPCODE(opcode)); + assert(HAS_ARG(opcode)); + assert(0 <= oparg && oparg <= 2147483647); + + if (compiler_use_new_implicit_block_if_needed(c) < 0) { + return -1; + } + + basicblock *b = c->u->u_curblock; + int off = compiler_next_instr(b); + if (off < 0) { + return 0; + } + struct instr *i = &b->b_instr[off]; + i->i_opcode = opcode; + i->i_oparg = Py_SAFE_DOWNCAST(oparg, Py_ssize_t, int); + i->i_lineno = lineno; + i->i_end_lineno = end_lineno; + i->i_col_offset = col_offset; + i->i_end_col_offset = end_col_offset; + + compiler_check_if_end_of_block(c, i); + return 1; +} + +static int +compiler_addop_i(struct compiler *c, int opcode, Py_ssize_t oparg) +{ + return compiler_addop_i_line(c, opcode, oparg, + c->u->u_lineno, c->u->u_end_lineno, + c->u->u_col_offset, c->u->u_end_col_offset); +} + +static int +compiler_addop_i_noline(struct compiler *c, int opcode, Py_ssize_t oparg) +{ + return compiler_addop_i_line(c, opcode, oparg, -1, 0, 0, 0); +} + +static int add_jump_to_block(struct compiler *c, int opcode, + int lineno, int end_lineno, + int col_offset, int end_col_offset, + basicblock *target) +{ + assert(IS_WITHIN_OPCODE_RANGE(opcode)); + assert(!IS_ASSEMBLER_OPCODE(opcode)); + assert(HAS_ARG(opcode) || IS_VIRTUAL_OPCODE(opcode)); + assert(target != NULL); + + if (compiler_use_new_implicit_block_if_needed(c) < 0) { + return -1; + } + + basicblock *b = c->u->u_curblock; + int off = compiler_next_instr(b); + struct instr *i = &b->b_instr[off]; + if (off < 0) { + return 0; + } + i->i_opcode = opcode; + i->i_target = target; + i->i_lineno = lineno; + i->i_end_lineno = end_lineno; + i->i_col_offset = col_offset; + i->i_end_col_offset = end_col_offset; + + compiler_check_if_end_of_block(c, i); + return 1; } static int -cfg_builder_addop_j(cfg_builder *g, int opcode, jump_target_label target, struct location loc) +compiler_addop_j(struct compiler *c, int opcode, basicblock *b) { - assert(IS_LABEL(target)); - assert(IS_JUMP_OPCODE(opcode) || IS_BLOCK_PUSH_OPCODE(opcode)); - return cfg_builder_addop(g, opcode, target.id, loc); + return add_jump_to_block(c, opcode, c->u->u_lineno, + c->u->u_end_lineno, c->u->u_col_offset, + c->u->u_end_col_offset, b); } +static int +compiler_addop_j_noline(struct compiler *c, int opcode, basicblock *b) +{ + return add_jump_to_block(c, opcode, -1, 0, 0, 0, b); +} #define ADDOP(C, OP) { \ - if (!cfg_builder_addop_noarg(CFG_BUILDER(C), (OP), COMPILER_LOC(C))) \ + if (!compiler_addop((C), (OP))) \ return 0; \ } #define ADDOP_NOLINE(C, OP) { \ - if (!cfg_builder_addop_noarg(CFG_BUILDER(C), (OP), NO_LOCATION)) \ + if (!compiler_addop_noline((C), (OP))) \ return 0; \ } #define ADDOP_IN_SCOPE(C, OP) { \ - if (!cfg_builder_addop_noarg(CFG_BUILDER(C), (OP), COMPILER_LOC(C))) { \ + if (!compiler_addop((C), (OP))) { \ compiler_exit_scope(c); \ return 0; \ } \ @@ -1613,17 +1624,17 @@ cfg_builder_addop_j(cfg_builder *g, int opcode, jump_target_label target, struct } #define ADDOP_I(C, OP, O) { \ - if (!cfg_builder_addop_i(CFG_BUILDER(C), (OP), (O), COMPILER_LOC(C))) \ + if (!compiler_addop_i((C), (OP), (O))) \ return 0; \ } #define ADDOP_I_NOLINE(C, OP, O) { \ - if (!cfg_builder_addop_i(CFG_BUILDER(C), (OP), (O), NO_LOCATION)) \ + if (!compiler_addop_i_noline((C), (OP), (O))) \ return 0; \ } #define ADDOP_JUMP(C, OP, O) { \ - if (!cfg_builder_addop_j(CFG_BUILDER(C), (OP), (O), COMPILER_LOC(C))) \ + if (!compiler_addop_j((C), (OP), (O))) \ return 0; \ } @@ -1631,7 +1642,7 @@ cfg_builder_addop_j(cfg_builder *g, int opcode, jump_target_label target, struct * Used for artificial jumps that have no corresponding * token in the source code. */ #define ADDOP_JUMP_NOLINE(C, OP, O) { \ - if (!cfg_builder_addop_j(CFG_BUILDER(C), (OP), (O), NO_LOCATION)) \ + if (!compiler_addop_j_noline((C), (OP), (O))) \ return 0; \ } @@ -1703,6 +1714,7 @@ compiler_enter_scope(struct compiler *c, identifier name, int scope_type, void *key, int lineno) { struct compiler_unit *u; + basicblock *block; u = (struct compiler_unit *)PyObject_Calloc(1, sizeof( struct compiler_unit)); @@ -1747,9 +1759,13 @@ compiler_enter_scope(struct compiler *c, identifier name, return 0; } + u->u_blocks = NULL; u->u_nfblocks = 0; u->u_firstlineno = lineno; - u->u_loc = LOCATION(lineno, lineno, 0, 0); + u->u_lineno = lineno; + u->u_col_offset = 0; + u->u_end_lineno = lineno; + u->u_end_col_offset = 0; u->u_consts = PyDict_New(); if (!u->u_consts) { compiler_unit_free(u); @@ -1779,13 +1795,13 @@ compiler_enter_scope(struct compiler *c, identifier name, c->c_nestlevel++; - cfg_builder *g = CFG_BUILDER(c); - if (!cfg_builder_init(g)) { + block = compiler_new_block(c); + if (block == NULL) return 0; - } + c->u->u_curblock = block; if (u->u_scope_type == COMPILER_SCOPE_MODULE) { - c->u->u_loc.lineno = 0; + c->u->u_lineno = -1; } else { if (!compiler_set_qualname(c)) @@ -1793,9 +1809,6 @@ compiler_enter_scope(struct compiler *c, identifier name, } ADDOP_I(c, RESUME, 0); - if (u->u_scope_type == COMPILER_SCOPE_MODULE) { - c->u->u_loc.lineno = -1; - } return 1; } @@ -1819,7 +1832,7 @@ compiler_exit_scope(struct compiler *c) _PyErr_WriteUnraisableMsg("on removing the last compiler " "stack item", NULL); } - cfg_builder_check(CFG_BUILDER(c)); + compiler_unit_check(c->u); } else { c->u = NULL; @@ -1902,8 +1915,8 @@ find_ann(asdl_stmt_seq *stmts) */ static int -compiler_push_fblock(struct compiler *c, enum fblocktype t, jump_target_label block_label, - jump_target_label exit, void *datum) +compiler_push_fblock(struct compiler *c, enum fblocktype t, basicblock *b, + basicblock *exit, void *datum) { struct fblockinfo *f; if (c->u->u_nfblocks >= CO_MAXBLOCKS) { @@ -1911,20 +1924,20 @@ compiler_push_fblock(struct compiler *c, enum fblocktype t, jump_target_label bl } f = &c->u->u_fblock[c->u->u_nfblocks++]; f->fb_type = t; - f->fb_block = block_label; + f->fb_block = b; f->fb_exit = exit; f->fb_datum = datum; return 1; } static void -compiler_pop_fblock(struct compiler *c, enum fblocktype t, jump_target_label block_label) +compiler_pop_fblock(struct compiler *c, enum fblocktype t, basicblock *b) { struct compiler_unit *u = c->u; assert(u->u_nfblocks > 0); u->u_nfblocks--; assert(u->u_fblock[u->u_nfblocks].fb_type == t); - assert(SAME_LABEL(u->u_fblock[u->u_nfblocks].fb_block, block_label)); + assert(u->u_fblock[u->u_nfblocks].fb_block == b); } static int @@ -1939,24 +1952,20 @@ compiler_call_exit_with_nones(struct compiler *c) { static int compiler_add_yield_from(struct compiler *c, int await) { - NEW_JUMP_TARGET_LABEL(c, send); - NEW_JUMP_TARGET_LABEL(c, fail); - NEW_JUMP_TARGET_LABEL(c, exit); - - USE_LABEL(c, send); + basicblock *start, *resume, *exit; + start = compiler_new_block(c); + resume = compiler_new_block(c); + exit = compiler_new_block(c); + if (start == NULL || resume == NULL || exit == NULL) { + return 0; + } + compiler_use_next_block(c, start); ADDOP_JUMP(c, SEND, exit); - // Set up a virtual try/except to handle when StopIteration is raised during - // a close or throw call. The only way YIELD_VALUE raises if they do! - ADDOP_JUMP(c, SETUP_FINALLY, fail); + compiler_use_next_block(c, resume); ADDOP_I(c, YIELD_VALUE, 0); - ADDOP_NOLINE(c, POP_BLOCK); ADDOP_I(c, RESUME, await ? 3 : 2); - ADDOP_JUMP(c, JUMP_NO_INTERRUPT, send); - - USE_LABEL(c, fail); - ADDOP(c, CLEANUP_THROW); - - USE_LABEL(c, exit); + ADDOP_JUMP(c, JUMP_NO_INTERRUPT, start); + compiler_use_next_block(c, exit); return 1; } @@ -2008,14 +2017,14 @@ compiler_unwind_fblock(struct compiler *c, struct fblockinfo *info, /* This POP_BLOCK gets the line number of the unwinding statement */ ADDOP(c, POP_BLOCK); if (preserve_tos) { - if (!compiler_push_fblock(c, POP_VALUE, NO_LABEL, NO_LABEL, NULL)) { + if (!compiler_push_fblock(c, POP_VALUE, NULL, NULL, NULL)) { return 0; } } /* Emit the finally block */ VISIT_SEQ(c, stmt, info->fb_datum); if (preserve_tos) { - compiler_pop_fblock(c, POP_VALUE, NO_LABEL); + compiler_pop_fblock(c, POP_VALUE, NULL); } /* The finally block should appear to execute after the * statement causing the unwinding, so make the unwinding @@ -2163,7 +2172,7 @@ compiler_mod(struct compiler *c, mod_ty mod) mod, 1)) { return NULL; } - c->u->u_loc.lineno = 1; + c->u->u_lineno = 1; switch (mod->kind) { case Module_kind: if (!compiler_body(c, mod->v.Module.body)) { @@ -2307,12 +2316,18 @@ compiler_apply_decorators(struct compiler *c, asdl_expr_seq* decos) if (!decos) return 1; - struct location old_loc = c->u->u_loc; + int old_lineno = c->u->u_lineno; + int old_end_lineno = c->u->u_end_lineno; + int old_col_offset = c->u->u_col_offset; + int old_end_col_offset = c->u->u_end_col_offset; for (Py_ssize_t i = asdl_seq_LEN(decos) - 1; i > -1; i--) { SET_LOC(c, (expr_ty)asdl_seq_GET(decos, i)); ADDOP_I(c, CALL, 0); } - c->u->u_loc = old_loc; + c->u->u_lineno = old_lineno; + c->u->u_end_lineno = old_end_lineno; + c->u->u_col_offset = old_col_offset; + c->u->u_end_col_offset = old_end_col_offset; return 1; } @@ -2859,7 +2874,7 @@ static int compiler_addcompare(struct compiler *c, cmpop_ty op) static int -compiler_jump_if(struct compiler *c, expr_ty e, jump_target_label next, int cond) +compiler_jump_if(struct compiler *c, expr_ty e, basicblock *next, int cond) { switch (e->kind) { case UnaryOp_kind: @@ -2872,10 +2887,11 @@ compiler_jump_if(struct compiler *c, expr_ty e, jump_target_label next, int cond Py_ssize_t i, n = asdl_seq_LEN(s) - 1; assert(n >= 0); int cond2 = e->v.BoolOp.op == Or; - jump_target_label next2 = next; + basicblock *next2 = next; if (!cond2 != !cond) { - NEW_JUMP_TARGET_LABEL(c, new_next2); - next2 = new_next2; + next2 = compiler_new_block(c); + if (next2 == NULL) + return 0; } for (i = 0; i < n; ++i) { if (!compiler_jump_if(c, (expr_ty)asdl_seq_GET(s, i), next2, cond2)) @@ -2883,25 +2899,27 @@ compiler_jump_if(struct compiler *c, expr_ty e, jump_target_label next, int cond } if (!compiler_jump_if(c, (expr_ty)asdl_seq_GET(s, n), next, cond)) return 0; - if (!SAME_LABEL(next2, next)) { - USE_LABEL(c, next2); - } + if (next2 != next) + compiler_use_next_block(c, next2); return 1; } case IfExp_kind: { - NEW_JUMP_TARGET_LABEL(c, end); - NEW_JUMP_TARGET_LABEL(c, next2); + basicblock *end, *next2; + end = compiler_new_block(c); + if (end == NULL) + return 0; + next2 = compiler_new_block(c); + if (next2 == NULL) + return 0; if (!compiler_jump_if(c, e->v.IfExp.test, next2, 0)) return 0; if (!compiler_jump_if(c, e->v.IfExp.body, next, cond)) return 0; ADDOP_JUMP_NOLINE(c, JUMP, end); - - USE_LABEL(c, next2); + compiler_use_next_block(c, next2); if (!compiler_jump_if(c, e->v.IfExp.orelse, next, cond)) return 0; - - USE_LABEL(c, end); + compiler_use_next_block(c, end); return 1; } case Compare_kind: { @@ -2910,7 +2928,9 @@ compiler_jump_if(struct compiler *c, expr_ty e, jump_target_label next, int cond if (!check_compare(c, e)) { return 0; } - NEW_JUMP_TARGET_LABEL(c, cleanup); + basicblock *cleanup = compiler_new_block(c); + if (cleanup == NULL) + return 0; VISIT(c, expr, e->v.Compare.left); for (i = 0; i < n; i++) { VISIT(c, expr, @@ -2923,16 +2943,16 @@ compiler_jump_if(struct compiler *c, expr_ty e, jump_target_label next, int cond VISIT(c, expr, (expr_ty)asdl_seq_GET(e->v.Compare.comparators, n)); ADDOP_COMPARE(c, asdl_seq_GET(e->v.Compare.ops, n)); ADDOP_JUMP(c, cond ? POP_JUMP_IF_TRUE : POP_JUMP_IF_FALSE, next); - NEW_JUMP_TARGET_LABEL(c, end); + basicblock *end = compiler_new_block(c); + if (end == NULL) + return 0; ADDOP_JUMP_NOLINE(c, JUMP, end); - - USE_LABEL(c, cleanup); + compiler_use_next_block(c, cleanup); ADDOP(c, POP_TOP); if (!cond) { ADDOP_JUMP_NOLINE(c, JUMP, next); } - - USE_LABEL(c, end); + compiler_use_next_block(c, end); return 1; } /* fallback to general implementation */ @@ -2952,19 +2972,22 @@ compiler_jump_if(struct compiler *c, expr_ty e, jump_target_label next, int cond static int compiler_ifexp(struct compiler *c, expr_ty e) { - assert(e->kind == IfExp_kind); - NEW_JUMP_TARGET_LABEL(c, end); - NEW_JUMP_TARGET_LABEL(c, next); + basicblock *end, *next; + assert(e->kind == IfExp_kind); + end = compiler_new_block(c); + if (end == NULL) + return 0; + next = compiler_new_block(c); + if (next == NULL) + return 0; if (!compiler_jump_if(c, e->v.IfExp.test, next, 0)) return 0; VISIT(c, expr, e->v.IfExp.body); ADDOP_JUMP_NOLINE(c, JUMP, end); - - USE_LABEL(c, next); + compiler_use_next_block(c, next); VISIT(c, expr, e->v.IfExp.orelse); - - USE_LABEL(c, end); + compiler_use_next_block(c, end); return 1; } @@ -3028,12 +3051,17 @@ compiler_lambda(struct compiler *c, expr_ty e) static int compiler_if(struct compiler *c, stmt_ty s) { - jump_target_label next; + basicblock *end, *next; assert(s->kind == If_kind); - NEW_JUMP_TARGET_LABEL(c, end); + end = compiler_new_block(c); + if (end == NULL) { + return 0; + } if (asdl_seq_LEN(s->v.If.orelse)) { - NEW_JUMP_TARGET_LABEL(c, orelse); - next = orelse; + next = compiler_new_block(c); + if (next == NULL) { + return 0; + } } else { next = end; @@ -3044,46 +3072,44 @@ compiler_if(struct compiler *c, stmt_ty s) VISIT_SEQ(c, stmt, s->v.If.body); if (asdl_seq_LEN(s->v.If.orelse)) { ADDOP_JUMP_NOLINE(c, JUMP, end); - - USE_LABEL(c, next); + compiler_use_next_block(c, next); VISIT_SEQ(c, stmt, s->v.If.orelse); } - - USE_LABEL(c, end); + compiler_use_next_block(c, end); return 1; } static int compiler_for(struct compiler *c, stmt_ty s) { - NEW_JUMP_TARGET_LABEL(c, start); - NEW_JUMP_TARGET_LABEL(c, body); - NEW_JUMP_TARGET_LABEL(c, cleanup); - NEW_JUMP_TARGET_LABEL(c, end); + basicblock *start, *body, *cleanup, *end; + start = compiler_new_block(c); + body = compiler_new_block(c); + cleanup = compiler_new_block(c); + end = compiler_new_block(c); + if (start == NULL || body == NULL || end == NULL || cleanup == NULL) { + return 0; + } if (!compiler_push_fblock(c, FOR_LOOP, start, end, NULL)) { return 0; } VISIT(c, expr, s->v.For.iter); ADDOP(c, GET_ITER); - - USE_LABEL(c, start); + compiler_use_next_block(c, start); ADDOP_JUMP(c, FOR_ITER, cleanup); - - USE_LABEL(c, body); + compiler_use_next_block(c, body); VISIT(c, expr, s->v.For.target); VISIT_SEQ(c, stmt, s->v.For.body); /* Mark jump as artificial */ UNSET_LOC(c); ADDOP_JUMP(c, JUMP, start); - - USE_LABEL(c, cleanup); + compiler_use_next_block(c, cleanup); compiler_pop_fblock(c, FOR_LOOP, start); VISIT_SEQ(c, stmt, s->v.For.orelse); - - USE_LABEL(c, end); + compiler_use_next_block(c, end); return 1; } @@ -3091,20 +3117,24 @@ compiler_for(struct compiler *c, stmt_ty s) static int compiler_async_for(struct compiler *c, stmt_ty s) { + basicblock *start, *except, *end; if (IS_TOP_LEVEL_AWAIT(c)){ c->u->u_ste->ste_coroutine = 1; } else if (c->u->u_scope_type != COMPILER_SCOPE_ASYNC_FUNCTION) { return compiler_error(c, "'async for' outside async function"); } - NEW_JUMP_TARGET_LABEL(c, start); - NEW_JUMP_TARGET_LABEL(c, except); - NEW_JUMP_TARGET_LABEL(c, end); + start = compiler_new_block(c); + except = compiler_new_block(c); + end = compiler_new_block(c); + if (start == NULL || except == NULL || end == NULL) { + return 0; + } VISIT(c, expr, s->v.AsyncFor.iter); ADDOP(c, GET_AITER); - USE_LABEL(c, start); + compiler_use_next_block(c, start); if (!compiler_push_fblock(c, FOR_LOOP, start, end, NULL)) { return 0; } @@ -3125,7 +3155,7 @@ compiler_async_for(struct compiler *c, stmt_ty s) compiler_pop_fblock(c, FOR_LOOP, start); /* Except block for __anext__ */ - USE_LABEL(c, except); + compiler_use_next_block(c, except); /* Use same line number as the iterator, * as the END_ASYNC_FOR succeeds the `for`, not the body. */ @@ -3135,19 +3165,23 @@ compiler_async_for(struct compiler *c, stmt_ty s) /* `else` block */ VISIT_SEQ(c, stmt, s->v.For.orelse); - USE_LABEL(c, end); + compiler_use_next_block(c, end); + return 1; } static int compiler_while(struct compiler *c, stmt_ty s) { - NEW_JUMP_TARGET_LABEL(c, loop); - NEW_JUMP_TARGET_LABEL(c, body); - NEW_JUMP_TARGET_LABEL(c, end); - NEW_JUMP_TARGET_LABEL(c, anchor); - - USE_LABEL(c, loop); + basicblock *loop, *body, *end, *anchor = NULL; + loop = compiler_new_block(c); + body = compiler_new_block(c); + anchor = compiler_new_block(c); + end = compiler_new_block(c); + if (loop == NULL || body == NULL || anchor == NULL || end == NULL) { + return 0; + } + compiler_use_next_block(c, loop); if (!compiler_push_fblock(c, WHILE_LOOP, loop, end, NULL)) { return 0; } @@ -3155,7 +3189,7 @@ compiler_while(struct compiler *c, stmt_ty s) return 0; } - USE_LABEL(c, body); + compiler_use_next_block(c, body); VISIT_SEQ(c, stmt, s->v.While.body); SET_LOC(c, s); if (!compiler_jump_if(c, s->v.While.test, body, 1)) { @@ -3164,12 +3198,12 @@ compiler_while(struct compiler *c, stmt_ty s) compiler_pop_fblock(c, WHILE_LOOP, loop); - USE_LABEL(c, anchor); + compiler_use_next_block(c, anchor); if (s->v.While.orelse) { VISIT_SEQ(c, stmt, s->v.While.orelse); } + compiler_use_next_block(c, end); - USE_LABEL(c, end); return 1; } @@ -3281,15 +3315,18 @@ compiler_continue(struct compiler *c) static int compiler_try_finally(struct compiler *c, stmt_ty s) { - NEW_JUMP_TARGET_LABEL(c, body); - NEW_JUMP_TARGET_LABEL(c, end); - NEW_JUMP_TARGET_LABEL(c, exit); - NEW_JUMP_TARGET_LABEL(c, cleanup); + basicblock *body, *end, *exit, *cleanup; + body = compiler_new_block(c); + end = compiler_new_block(c); + exit = compiler_new_block(c); + cleanup = compiler_new_block(c); + if (body == NULL || end == NULL || exit == NULL || cleanup == NULL) { + return 0; + } /* `try` block */ ADDOP_JUMP(c, SETUP_FINALLY, end); - - USE_LABEL(c, body); + compiler_use_next_block(c, body); if (!compiler_push_fblock(c, FINALLY_TRY, body, end, s->v.Try.finalbody)) return 0; if (s->v.Try.handlers && asdl_seq_LEN(s->v.Try.handlers)) { @@ -3304,36 +3341,44 @@ compiler_try_finally(struct compiler *c, stmt_ty s) VISIT_SEQ(c, stmt, s->v.Try.finalbody); ADDOP_JUMP_NOLINE(c, JUMP, exit); /* `finally` block */ - - USE_LABEL(c, end); + compiler_use_next_block(c, end); UNSET_LOC(c); ADDOP_JUMP(c, SETUP_CLEANUP, cleanup); ADDOP(c, PUSH_EXC_INFO); - if (!compiler_push_fblock(c, FINALLY_END, end, NO_LABEL, NULL)) + if (!compiler_push_fblock(c, FINALLY_END, end, NULL, NULL)) return 0; VISIT_SEQ(c, stmt, s->v.Try.finalbody); compiler_pop_fblock(c, FINALLY_END, end); ADDOP_I(c, RERAISE, 0); - - USE_LABEL(c, cleanup); + compiler_use_next_block(c, cleanup); POP_EXCEPT_AND_RERAISE(c); - - USE_LABEL(c, exit); + compiler_use_next_block(c, exit); return 1; } static int compiler_try_star_finally(struct compiler *c, stmt_ty s) { - NEW_JUMP_TARGET_LABEL(c, body); - NEW_JUMP_TARGET_LABEL(c, end); - NEW_JUMP_TARGET_LABEL(c, exit); - NEW_JUMP_TARGET_LABEL(c, cleanup); + basicblock *body = compiler_new_block(c); + if (body == NULL) { + return 0; + } + basicblock *end = compiler_new_block(c); + if (!end) { + return 0; + } + basicblock *exit = compiler_new_block(c); + if (!exit) { + return 0; + } + basicblock *cleanup = compiler_new_block(c); + if (!cleanup) { + return 0; + } /* `try` block */ ADDOP_JUMP(c, SETUP_FINALLY, end); - - USE_LABEL(c, body); + compiler_use_next_block(c, body); if (!compiler_push_fblock(c, FINALLY_TRY, body, end, s->v.TryStar.finalbody)) { return 0; } @@ -3349,24 +3394,21 @@ compiler_try_star_finally(struct compiler *c, stmt_ty s) compiler_pop_fblock(c, FINALLY_TRY, body); VISIT_SEQ(c, stmt, s->v.TryStar.finalbody); ADDOP_JUMP_NOLINE(c, JUMP, exit); - /* `finally` block */ - USE_LABEL(c, end); + compiler_use_next_block(c, end); UNSET_LOC(c); ADDOP_JUMP(c, SETUP_CLEANUP, cleanup); ADDOP(c, PUSH_EXC_INFO); - if (!compiler_push_fblock(c, FINALLY_END, end, NO_LABEL, NULL)) { + if (!compiler_push_fblock(c, FINALLY_END, end, NULL, NULL)) { return 0; } VISIT_SEQ(c, stmt, s->v.TryStar.finalbody); compiler_pop_fblock(c, FINALLY_END, end); ADDOP_I(c, RERAISE, 0); - - USE_LABEL(c, cleanup); + compiler_use_next_block(c, cleanup); POP_EXCEPT_AND_RERAISE(c); - - USE_LABEL(c, exit); + compiler_use_next_block(c, exit); return 1; } @@ -3402,17 +3444,18 @@ compiler_try_star_finally(struct compiler *c, stmt_ty s) static int compiler_try_except(struct compiler *c, stmt_ty s) { + basicblock *body, *except, *end, *cleanup; Py_ssize_t i, n; - NEW_JUMP_TARGET_LABEL(c, body); - NEW_JUMP_TARGET_LABEL(c, except); - NEW_JUMP_TARGET_LABEL(c, end); - NEW_JUMP_TARGET_LABEL(c, cleanup); - + body = compiler_new_block(c); + except = compiler_new_block(c); + end = compiler_new_block(c); + cleanup = compiler_new_block(c); + if (body == NULL || except == NULL || end == NULL || cleanup == NULL) + return 0; ADDOP_JUMP(c, SETUP_FINALLY, except); - - USE_LABEL(c, body); - if (!compiler_push_fblock(c, TRY_EXCEPT, body, NO_LABEL, NULL)) + compiler_use_next_block(c, body); + if (!compiler_push_fblock(c, TRY_EXCEPT, body, NULL, NULL)) return 0; VISIT_SEQ(c, stmt, s->v.Try.body); compiler_pop_fblock(c, TRY_EXCEPT, body); @@ -3422,14 +3465,13 @@ compiler_try_except(struct compiler *c, stmt_ty s) } ADDOP_JUMP_NOLINE(c, JUMP, end); n = asdl_seq_LEN(s->v.Try.handlers); - - USE_LABEL(c, except); + compiler_use_next_block(c, except); UNSET_LOC(c); ADDOP_JUMP(c, SETUP_CLEANUP, cleanup); ADDOP(c, PUSH_EXC_INFO); /* Runtime will push a block here, so we need to account for that */ - if (!compiler_push_fblock(c, EXCEPTION_HANDLER, NO_LABEL, NO_LABEL, NULL)) + if (!compiler_push_fblock(c, EXCEPTION_HANDLER, NULL, NULL, NULL)) return 0; for (i = 0; i < n; i++) { excepthandler_ty handler = (excepthandler_ty)asdl_seq_GET( @@ -3438,16 +3480,22 @@ compiler_try_except(struct compiler *c, stmt_ty s) if (!handler->v.ExceptHandler.type && i < n-1) { return compiler_error(c, "default 'except:' must be last"); } - NEW_JUMP_TARGET_LABEL(c, next_except); - except = next_except; + except = compiler_new_block(c); + if (except == NULL) + return 0; if (handler->v.ExceptHandler.type) { VISIT(c, expr, handler->v.ExceptHandler.type); ADDOP(c, CHECK_EXC_MATCH); ADDOP_JUMP(c, POP_JUMP_IF_FALSE, except); } if (handler->v.ExceptHandler.name) { - NEW_JUMP_TARGET_LABEL(c, cleanup_end); - NEW_JUMP_TARGET_LABEL(c, cleanup_body); + basicblock *cleanup_end, *cleanup_body; + + cleanup_end = compiler_new_block(c); + cleanup_body = compiler_new_block(c); + if (cleanup_end == NULL || cleanup_body == NULL) { + return 0; + } compiler_nameop(c, handler->v.ExceptHandler.name, Store); @@ -3464,9 +3512,8 @@ compiler_try_except(struct compiler *c, stmt_ty s) /* second try: */ ADDOP_JUMP(c, SETUP_CLEANUP, cleanup_end); - - USE_LABEL(c, cleanup_body); - if (!compiler_push_fblock(c, HANDLER_CLEANUP, cleanup_body, NO_LABEL, handler->v.ExceptHandler.name)) + compiler_use_next_block(c, cleanup_body); + if (!compiler_push_fblock(c, HANDLER_CLEANUP, cleanup_body, NULL, handler->v.ExceptHandler.name)) return 0; /* second # body */ @@ -3483,7 +3530,7 @@ compiler_try_except(struct compiler *c, stmt_ty s) ADDOP_JUMP(c, JUMP, end); /* except: */ - USE_LABEL(c, cleanup_end); + compiler_use_next_block(c, cleanup_end); /* name = None; del name; # Mark as artificial */ UNSET_LOC(c); @@ -3495,12 +3542,15 @@ compiler_try_except(struct compiler *c, stmt_ty s) ADDOP_I(c, RERAISE, 1); } else { - NEW_JUMP_TARGET_LABEL(c, cleanup_body); + basicblock *cleanup_body; - ADDOP(c, POP_TOP); /* exc_value */ + cleanup_body = compiler_new_block(c); + if (!cleanup_body) + return 0; - USE_LABEL(c, cleanup_body); - if (!compiler_push_fblock(c, HANDLER_CLEANUP, cleanup_body, NO_LABEL, NULL)) + ADDOP(c, POP_TOP); /* exc_value */ + compiler_use_next_block(c, cleanup_body); + if (!compiler_push_fblock(c, HANDLER_CLEANUP, cleanup_body, NULL, NULL)) return 0; VISIT_SEQ(c, stmt, handler->v.ExceptHandler.body); compiler_pop_fblock(c, HANDLER_CLEANUP, cleanup_body); @@ -3509,18 +3559,15 @@ compiler_try_except(struct compiler *c, stmt_ty s) ADDOP(c, POP_EXCEPT); ADDOP_JUMP(c, JUMP, end); } - - USE_LABEL(c, except); + compiler_use_next_block(c, except); } /* Mark as artificial */ UNSET_LOC(c); - compiler_pop_fblock(c, EXCEPTION_HANDLER, NO_LABEL); + compiler_pop_fblock(c, EXCEPTION_HANDLER, NULL); ADDOP_I(c, RERAISE, 0); - - USE_LABEL(c, cleanup); + compiler_use_next_block(c, cleanup); POP_EXCEPT_AND_RERAISE(c); - - USE_LABEL(c, end); + compiler_use_next_block(c, end); return 1; } @@ -3576,17 +3623,34 @@ compiler_try_except(struct compiler *c, stmt_ty s) static int compiler_try_star_except(struct compiler *c, stmt_ty s) { - NEW_JUMP_TARGET_LABEL(c, body); - NEW_JUMP_TARGET_LABEL(c, except); - NEW_JUMP_TARGET_LABEL(c, orelse); - NEW_JUMP_TARGET_LABEL(c, end); - NEW_JUMP_TARGET_LABEL(c, cleanup); - NEW_JUMP_TARGET_LABEL(c, reraise_star); + basicblock *body = compiler_new_block(c); + if (body == NULL) { + return 0; + } + basicblock *except = compiler_new_block(c); + if (except == NULL) { + return 0; + } + basicblock *orelse = compiler_new_block(c); + if (orelse == NULL) { + return 0; + } + basicblock *end = compiler_new_block(c); + if (end == NULL) { + return 0; + } + basicblock *cleanup = compiler_new_block(c); + if (cleanup == NULL) { + return 0; + } + basicblock *reraise_star = compiler_new_block(c); + if (reraise_star == NULL) { + return 0; + } ADDOP_JUMP(c, SETUP_FINALLY, except); - - USE_LABEL(c, body); - if (!compiler_push_fblock(c, TRY_EXCEPT, body, NO_LABEL, NULL)) { + compiler_use_next_block(c, body); + if (!compiler_push_fblock(c, TRY_EXCEPT, body, NULL, NULL)) { return 0; } VISIT_SEQ(c, stmt, s->v.TryStar.body); @@ -3594,24 +3658,28 @@ compiler_try_star_except(struct compiler *c, stmt_ty s) ADDOP_NOLINE(c, POP_BLOCK); ADDOP_JUMP_NOLINE(c, JUMP, orelse); Py_ssize_t n = asdl_seq_LEN(s->v.TryStar.handlers); - - USE_LABEL(c, except); + compiler_use_next_block(c, except); UNSET_LOC(c); ADDOP_JUMP(c, SETUP_CLEANUP, cleanup); ADDOP(c, PUSH_EXC_INFO); /* Runtime will push a block here, so we need to account for that */ if (!compiler_push_fblock(c, EXCEPTION_GROUP_HANDLER, - NO_LABEL, NO_LABEL, "except handler")) { + NULL, NULL, "except handler")) { return 0; } for (Py_ssize_t i = 0; i < n; i++) { excepthandler_ty handler = (excepthandler_ty)asdl_seq_GET( s->v.TryStar.handlers, i); SET_LOC(c, handler); - NEW_JUMP_TARGET_LABEL(c, next_except); - except = next_except; - NEW_JUMP_TARGET_LABEL(c, handle_match); + except = compiler_new_block(c); + if (except == NULL) { + return 0; + } + basicblock *handle_match = compiler_new_block(c); + if (handle_match == NULL) { + return 0; + } if (i == 0) { /* Push the original EG into the stack */ /* @@ -3638,10 +3706,16 @@ compiler_try_star_except(struct compiler *c, stmt_ty s) ADDOP_JUMP(c, JUMP, except); } - USE_LABEL(c, handle_match); + compiler_use_next_block(c, handle_match); - NEW_JUMP_TARGET_LABEL(c, cleanup_end); - NEW_JUMP_TARGET_LABEL(c, cleanup_body); + basicblock *cleanup_end = compiler_new_block(c); + if (cleanup_end == NULL) { + return 0; + } + basicblock *cleanup_body = compiler_new_block(c); + if (cleanup_body == NULL) { + return 0; + } if (handler->v.ExceptHandler.name) { compiler_nameop(c, handler->v.ExceptHandler.name, Store); @@ -3662,9 +3736,8 @@ compiler_try_star_except(struct compiler *c, stmt_ty s) */ /* second try: */ ADDOP_JUMP(c, SETUP_CLEANUP, cleanup_end); - - USE_LABEL(c, cleanup_body); - if (!compiler_push_fblock(c, HANDLER_CLEANUP, cleanup_body, NO_LABEL, handler->v.ExceptHandler.name)) + compiler_use_next_block(c, cleanup_body); + if (!compiler_push_fblock(c, HANDLER_CLEANUP, cleanup_body, NULL, handler->v.ExceptHandler.name)) return 0; /* second # body */ @@ -3681,7 +3754,7 @@ compiler_try_star_except(struct compiler *c, stmt_ty s) ADDOP_JUMP(c, JUMP, except); /* except: */ - USE_LABEL(c, cleanup_end); + compiler_use_next_block(c, cleanup_end); /* name = None; del name; # Mark as artificial */ UNSET_LOC(c); @@ -3695,9 +3768,9 @@ compiler_try_star_except(struct compiler *c, stmt_ty s) /* add exception raised to the res list */ ADDOP_I(c, LIST_APPEND, 3); // exc ADDOP(c, POP_TOP); // lasti + ADDOP_JUMP(c, JUMP, except); - - USE_LABEL(c, except); + compiler_use_next_block(c, except); if (i == n - 1) { /* Add exc to the list (if not None it's the unhandled part of the EG) */ @@ -3707,10 +3780,13 @@ compiler_try_star_except(struct compiler *c, stmt_ty s) } /* Mark as artificial */ UNSET_LOC(c); - compiler_pop_fblock(c, EXCEPTION_GROUP_HANDLER, NO_LABEL); - NEW_JUMP_TARGET_LABEL(c, reraise); + compiler_pop_fblock(c, EXCEPTION_GROUP_HANDLER, NULL); + basicblock *reraise = compiler_new_block(c); + if (!reraise) { + return 0; + } - USE_LABEL(c, reraise_star); + compiler_use_next_block(c, reraise_star); ADDOP(c, PREP_RERAISE_STAR); ADDOP_I(c, COPY, 1); ADDOP_JUMP(c, POP_JUMP_IF_NOT_NONE, reraise); @@ -3720,20 +3796,16 @@ compiler_try_star_except(struct compiler *c, stmt_ty s) ADDOP(c, POP_BLOCK); ADDOP(c, POP_EXCEPT); ADDOP_JUMP(c, JUMP, end); - - USE_LABEL(c, reraise); + compiler_use_next_block(c, reraise); ADDOP(c, POP_BLOCK); ADDOP_I(c, SWAP, 2); ADDOP(c, POP_EXCEPT); ADDOP_I(c, RERAISE, 0); - - USE_LABEL(c, cleanup); + compiler_use_next_block(c, cleanup); POP_EXCEPT_AND_RERAISE(c); - - USE_LABEL(c, orelse); + compiler_use_next_block(c, orelse); VISIT_SEQ(c, stmt, s->v.TryStar.orelse); - - USE_LABEL(c, end); + compiler_use_next_block(c, end); return 1; } @@ -3903,6 +3975,8 @@ compiler_from_import(struct compiler *c, stmt_ty s) static int compiler_assert(struct compiler *c, stmt_ty s) { + basicblock *end; + /* Always emit a warning if the test is a non-zero length tuple */ if ((s->v.Assert.test->kind == Tuple_kind && asdl_seq_LEN(s->v.Assert.test->v.Tuple.elts) > 0) || @@ -3918,7 +3992,9 @@ compiler_assert(struct compiler *c, stmt_ty s) } if (c->c_optimize) return 1; - NEW_JUMP_TARGET_LABEL(c, end); + end = compiler_new_block(c); + if (end == NULL) + return 0; if (!compiler_jump_if(c, s->v.Assert.test, end, 1)) return 0; ADDOP(c, LOAD_ASSERTION_ERROR); @@ -3927,8 +4003,7 @@ compiler_assert(struct compiler *c, stmt_ty s) ADDOP_I(c, CALL, 0); } ADDOP_I(c, RAISE_VARARGS, 1); - - USE_LABEL(c, end); + compiler_use_next_block(c, end); return 1; } @@ -4212,7 +4287,7 @@ compiler_nameop(struct compiler *c, identifier name, expr_context_ty ctx) } assert(op); - arg = dict_add_o(dict, mangled); + arg = compiler_add_o(dict, mangled); Py_DECREF(mangled); if (arg < 0) { return 0; @@ -4220,12 +4295,13 @@ compiler_nameop(struct compiler *c, identifier name, expr_context_ty ctx) if (op == LOAD_GLOBAL) { arg <<= 1; } - return cfg_builder_addop_i(CFG_BUILDER(c), op, arg, COMPILER_LOC(c)); + return compiler_addop_i(c, op, arg); } static int compiler_boolop(struct compiler *c, expr_ty e) { + basicblock *end; int jumpi; Py_ssize_t i, n; asdl_expr_seq *s; @@ -4235,20 +4311,23 @@ compiler_boolop(struct compiler *c, expr_ty e) jumpi = JUMP_IF_FALSE_OR_POP; else jumpi = JUMP_IF_TRUE_OR_POP; - NEW_JUMP_TARGET_LABEL(c, end); + end = compiler_new_block(c); + if (end == NULL) + return 0; s = e->v.BoolOp.values; n = asdl_seq_LEN(s) - 1; assert(n >= 0); for (i = 0; i < n; ++i) { VISIT(c, expr, (expr_ty)asdl_seq_GET(s, i)); ADDOP_JUMP(c, jumpi, end); - NEW_JUMP_TARGET_LABEL(c, next); - - USE_LABEL(c, next); + basicblock *next = compiler_new_block(c); + if (next == NULL) { + return 0; + } + compiler_use_next_block(c, next); } VISIT(c, expr, (expr_ty)asdl_seq_GET(s, n)); - - USE_LABEL(c, end); + compiler_use_next_block(c, end); return 1; } @@ -4542,7 +4621,9 @@ compiler_compare(struct compiler *c, expr_ty e) ADDOP_COMPARE(c, asdl_seq_GET(e->v.Compare.ops, 0)); } else { - NEW_JUMP_TARGET_LABEL(c, cleanup); + basicblock *cleanup = compiler_new_block(c); + if (cleanup == NULL) + return 0; for (i = 0; i < n; i++) { VISIT(c, expr, (expr_ty)asdl_seq_GET(e->v.Compare.comparators, i)); @@ -4553,14 +4634,14 @@ compiler_compare(struct compiler *c, expr_ty e) } VISIT(c, expr, (expr_ty)asdl_seq_GET(e->v.Compare.comparators, n)); ADDOP_COMPARE(c, asdl_seq_GET(e->v.Compare.ops, n)); - NEW_JUMP_TARGET_LABEL(c, end); + basicblock *end = compiler_new_block(c); + if (end == NULL) + return 0; ADDOP_JUMP_NOLINE(c, JUMP, end); - - USE_LABEL(c, cleanup); + compiler_use_next_block(c, cleanup); ADDOP_I(c, SWAP, 2); ADDOP(c, POP_TOP); - - USE_LABEL(c, end); + compiler_use_next_block(c, end); } return 1; } @@ -4695,33 +4776,6 @@ is_import_originated(struct compiler *c, expr_ty e) return flags & DEF_IMPORT; } -// If an attribute access spans multiple lines, update the current start -// location to point to the attribute name. -static void -update_start_location_to_match_attr(struct compiler *c, expr_ty attr) -{ - assert(attr->kind == Attribute_kind); - struct location *loc = &c->u->u_loc; - if (loc->lineno != attr->end_lineno) { - loc->lineno = attr->end_lineno; - int len = (int)PyUnicode_GET_LENGTH(attr->v.Attribute.attr); - if (len <= attr->end_col_offset) { - loc->col_offset = attr->end_col_offset - len; - } - else { - // GH-94694: Somebody's compiling weird ASTs. Just drop the columns: - loc->col_offset = -1; - loc->end_col_offset = -1; - } - // Make sure the end position still follows the start position, even for - // weird ASTs: - loc->end_lineno = Py_MAX(loc->lineno, loc->end_lineno); - if (loc->lineno == loc->end_lineno) { - loc->end_col_offset = Py_MAX(loc->col_offset, loc->end_col_offset); - } - } -} - // Return 1 if the method call was optimized, -1 if not, and 0 on error. static int maybe_optimize_method_call(struct compiler *c, expr_ty e) @@ -4763,8 +4817,8 @@ maybe_optimize_method_call(struct compiler *c, expr_ty e) } /* Alright, we can optimize the code. */ VISIT(c, expr, meth->v.Attribute.value); - SET_LOC(c, meth); - update_start_location_to_match_attr(c, meth); + int old_lineno = c->u->u_lineno; + c->u->u_lineno = meth->end_lineno; ADDOP_NAME(c, LOAD_METHOD, meth->v.Attribute.attr, names); VISIT_SEQ(c, expr, e->v.Call.args); @@ -4774,9 +4828,8 @@ maybe_optimize_method_call(struct compiler *c, expr_ty e) return 0; }; } - SET_LOC(c, e); - update_start_location_to_match_attr(c, meth); ADDOP_I(c, CALL, argsl + kwdsl); + c->u->u_lineno = old_lineno; return 1; } @@ -4833,7 +4886,7 @@ compiler_joined_str(struct compiler *c, expr_ty e) Py_ssize_t value_count = asdl_seq_LEN(e->v.JoinedStr.values); if (value_count > STACK_USE_GUIDELINE) { _Py_DECLARE_STR(empty, ""); - ADDOP_LOAD_CONST_NEW(c, Py_NewRef(&_Py_STR(empty))); + ADDOP_LOAD_CONST_NEW(c, &_Py_STR(empty)); ADDOP_NAME(c, LOAD_METHOD, &_Py_ID(join), names); ADDOP_I(c, BUILD_LIST, 0); for (Py_ssize_t i = 0; i < asdl_seq_LEN(e->v.JoinedStr.values); i++) { @@ -5115,11 +5168,16 @@ compiler_sync_comprehension_generator(struct compiler *c, and then write to the element */ comprehension_ty gen; + basicblock *start, *anchor, *if_cleanup; Py_ssize_t i, n; - NEW_JUMP_TARGET_LABEL(c, start); - NEW_JUMP_TARGET_LABEL(c, if_cleanup); - NEW_JUMP_TARGET_LABEL(c, anchor); + start = compiler_new_block(c); + if_cleanup = compiler_new_block(c); + anchor = compiler_new_block(c); + + if (start == NULL || if_cleanup == NULL || anchor == NULL) { + return 0; + } gen = (comprehension_ty)asdl_seq_GET(generators, gen_index); @@ -5148,17 +5206,17 @@ compiler_sync_comprehension_generator(struct compiler *c, expr_ty elt = asdl_seq_GET(elts, 0); if (elt->kind != Starred_kind) { VISIT(c, expr, elt); - start = NO_LABEL; + start = NULL; } } - if (IS_LABEL(start)) { + if (start) { VISIT(c, expr, gen->iter); ADDOP(c, GET_ITER); } } - if (IS_LABEL(start)) { + if (start) { depth++; - USE_LABEL(c, start); + compiler_use_next_block(c, start); ADDOP_JUMP(c, FOR_ITER, anchor); } VISIT(c, expr, gen->target); @@ -5205,12 +5263,10 @@ compiler_sync_comprehension_generator(struct compiler *c, return 0; } } - - USE_LABEL(c, if_cleanup); - if (IS_LABEL(start)) { + compiler_use_next_block(c, if_cleanup); + if (start) { ADDOP_JUMP(c, JUMP, start); - - USE_LABEL(c, anchor); + compiler_use_next_block(c, anchor); } return 1; @@ -5223,10 +5279,15 @@ compiler_async_comprehension_generator(struct compiler *c, expr_ty elt, expr_ty val, int type) { comprehension_ty gen; + basicblock *start, *if_cleanup, *except; Py_ssize_t i, n; - NEW_JUMP_TARGET_LABEL(c, start); - NEW_JUMP_TARGET_LABEL(c, except); - NEW_JUMP_TARGET_LABEL(c, if_cleanup); + start = compiler_new_block(c); + except = compiler_new_block(c); + if_cleanup = compiler_new_block(c); + + if (start == NULL || if_cleanup == NULL || except == NULL) { + return 0; + } gen = (comprehension_ty)asdl_seq_GET(generators, gen_index); @@ -5241,10 +5302,10 @@ compiler_async_comprehension_generator(struct compiler *c, ADDOP(c, GET_AITER); } - USE_LABEL(c, start); + compiler_use_next_block(c, start); /* Runtime will push a block here, so we need to account for that */ if (!compiler_push_fblock(c, ASYNC_COMPREHENSION_GENERATOR, start, - NO_LABEL, NULL)) { + NULL, NULL)) { return 0; } @@ -5297,13 +5358,12 @@ compiler_async_comprehension_generator(struct compiler *c, return 0; } } - - USE_LABEL(c, if_cleanup); + compiler_use_next_block(c, if_cleanup); ADDOP_JUMP(c, JUMP, start); compiler_pop_fblock(c, ASYNC_COMPREHENSION_GENERATOR, start); - USE_LABEL(c, except); + compiler_use_next_block(c, except); //UNSET_LOC(c); ADDOP(c, END_ASYNC_FOR); @@ -5464,25 +5524,22 @@ compiler_visit_keyword(struct compiler *c, keyword_ty k) static int -compiler_with_except_finish(struct compiler *c, jump_target_label cleanup) { +compiler_with_except_finish(struct compiler *c, basicblock * cleanup) { UNSET_LOC(c); - NEW_JUMP_TARGET_LABEL(c, suppress); - ADDOP_JUMP(c, POP_JUMP_IF_TRUE, suppress); + basicblock *exit; + exit = compiler_new_block(c); + if (exit == NULL) + return 0; + ADDOP_JUMP(c, POP_JUMP_IF_TRUE, exit); ADDOP_I(c, RERAISE, 2); - - USE_LABEL(c, suppress); + compiler_use_next_block(c, cleanup); + POP_EXCEPT_AND_RERAISE(c); + compiler_use_next_block(c, exit); ADDOP(c, POP_TOP); /* exc_value */ ADDOP(c, POP_BLOCK); ADDOP(c, POP_EXCEPT); ADDOP(c, POP_TOP); ADDOP(c, POP_TOP); - NEW_JUMP_TARGET_LABEL(c, exit); - ADDOP_JUMP(c, JUMP, exit); - - USE_LABEL(c, cleanup); - POP_EXCEPT_AND_RERAISE(c); - - USE_LABEL(c, exit); return 1; } @@ -5513,6 +5570,7 @@ compiler_with_except_finish(struct compiler *c, jump_target_label cleanup) { static int compiler_async_with(struct compiler *c, stmt_ty s, int pos) { + basicblock *block, *final, *exit, *cleanup; withitem_ty item = asdl_seq_GET(s->v.AsyncWith.items, pos); assert(s->kind == AsyncWith_kind); @@ -5522,10 +5580,12 @@ compiler_async_with(struct compiler *c, stmt_ty s, int pos) return compiler_error(c, "'async with' outside async function"); } - NEW_JUMP_TARGET_LABEL(c, block); - NEW_JUMP_TARGET_LABEL(c, final); - NEW_JUMP_TARGET_LABEL(c, exit); - NEW_JUMP_TARGET_LABEL(c, cleanup); + block = compiler_new_block(c); + final = compiler_new_block(c); + exit = compiler_new_block(c); + cleanup = compiler_new_block(c); + if (!block || !final || !exit || !cleanup) + return 0; /* Evaluate EXPR */ VISIT(c, expr, item->context_expr); @@ -5538,7 +5598,7 @@ compiler_async_with(struct compiler *c, stmt_ty s, int pos) ADDOP_JUMP(c, SETUP_WITH, final); /* SETUP_WITH pushes a finally block. */ - USE_LABEL(c, block); + compiler_use_next_block(c, block); if (!compiler_push_fblock(c, ASYNC_WITH, block, final, s)) { return 0; } @@ -5577,7 +5637,7 @@ compiler_async_with(struct compiler *c, stmt_ty s, int pos) ADDOP_JUMP(c, JUMP, exit); /* For exceptional outcome: */ - USE_LABEL(c, final); + compiler_use_next_block(c, final); ADDOP_JUMP(c, SETUP_CLEANUP, cleanup); ADDOP(c, PUSH_EXC_INFO); @@ -5587,7 +5647,7 @@ compiler_async_with(struct compiler *c, stmt_ty s, int pos) ADD_YIELD_FROM(c, 1); compiler_with_except_finish(c, cleanup); - USE_LABEL(c, exit); + compiler_use_next_block(c, exit); return 1; } @@ -5616,14 +5676,17 @@ compiler_async_with(struct compiler *c, stmt_ty s, int pos) static int compiler_with(struct compiler *c, stmt_ty s, int pos) { + basicblock *block, *final, *exit, *cleanup; withitem_ty item = asdl_seq_GET(s->v.With.items, pos); assert(s->kind == With_kind); - NEW_JUMP_TARGET_LABEL(c, block); - NEW_JUMP_TARGET_LABEL(c, final); - NEW_JUMP_TARGET_LABEL(c, exit); - NEW_JUMP_TARGET_LABEL(c, cleanup); + block = compiler_new_block(c); + final = compiler_new_block(c); + exit = compiler_new_block(c); + cleanup = compiler_new_block(c); + if (!block || !final || !exit || !cleanup) + return 0; /* Evaluate EXPR */ VISIT(c, expr, item->context_expr); @@ -5632,7 +5695,7 @@ compiler_with(struct compiler *c, stmt_ty s, int pos) ADDOP_JUMP(c, SETUP_WITH, final); /* SETUP_WITH pushes a finally block. */ - USE_LABEL(c, block); + compiler_use_next_block(c, block); if (!compiler_push_fblock(c, WITH, block, final, s)) { return 0; } @@ -5670,14 +5733,14 @@ compiler_with(struct compiler *c, stmt_ty s, int pos) ADDOP_JUMP(c, JUMP, exit); /* For exceptional outcome: */ - USE_LABEL(c, final); + compiler_use_next_block(c, final); ADDOP_JUMP(c, SETUP_CLEANUP, cleanup); ADDOP(c, PUSH_EXC_INFO); ADDOP(c, WITH_EXCEPT_START); compiler_with_except_finish(c, cleanup); - USE_LABEL(c, exit); + compiler_use_next_block(c, exit); return 1; } @@ -5771,18 +5834,23 @@ compiler_visit_expr1(struct compiler *c, expr_ty e) /* The following exprs can be assignment targets. */ case Attribute_kind: VISIT(c, expr, e->v.Attribute.value); - update_start_location_to_match_attr(c, e); switch (e->v.Attribute.ctx) { case Load: { + int old_lineno = c->u->u_lineno; + c->u->u_lineno = e->end_lineno; ADDOP_NAME(c, LOAD_ATTR, e->v.Attribute.attr, names); + c->u->u_lineno = old_lineno; break; } case Store: if (forbidden_name(c, e->v.Attribute.attr, e->v.Attribute.ctx)) { return 0; } + int old_lineno = c->u->u_lineno; + c->u->u_lineno = e->end_lineno; ADDOP_NAME(c, STORE_ATTR, e->v.Attribute.attr, names); + c->u->u_lineno = old_lineno; break; case Del: ADDOP_NAME(c, DELETE_ATTR, e->v.Attribute.attr, names); @@ -5804,14 +5872,7 @@ compiler_visit_expr1(struct compiler *c, expr_ty e) } break; case Slice_kind: - { - int n = compiler_slice(c, e); - if (n == 0) { - return 0; - } - ADDOP_I(c, BUILD_SLICE, n); - break; - } + return compiler_slice(c, e); case Name_kind: return compiler_nameop(c, e->v.Name.id, e->v.Name.ctx); /* child nodes of List and Tuple will have expr_context set */ @@ -5826,53 +5887,46 @@ compiler_visit_expr1(struct compiler *c, expr_ty e) static int compiler_visit_expr(struct compiler *c, expr_ty e) { - struct location old_loc = c->u->u_loc; + int old_lineno = c->u->u_lineno; + int old_end_lineno = c->u->u_end_lineno; + int old_col_offset = c->u->u_col_offset; + int old_end_col_offset = c->u->u_end_col_offset; SET_LOC(c, e); int res = compiler_visit_expr1(c, e); - c->u->u_loc = old_loc; + c->u->u_lineno = old_lineno; + c->u->u_end_lineno = old_end_lineno; + c->u->u_col_offset = old_col_offset; + c->u->u_end_col_offset = old_end_col_offset; return res; } -static bool -is_two_element_slice(expr_ty s) -{ - return s->kind == Slice_kind && - s->v.Slice.step == NULL; -} - static int compiler_augassign(struct compiler *c, stmt_ty s) { assert(s->kind == AugAssign_kind); expr_ty e = s->v.AugAssign.target; - struct location old_loc = c->u->u_loc; + int old_lineno = c->u->u_lineno; + int old_end_lineno = c->u->u_end_lineno; + int old_col_offset = c->u->u_col_offset; + int old_end_col_offset = c->u->u_end_col_offset; SET_LOC(c, e); switch (e->kind) { case Attribute_kind: VISIT(c, expr, e->v.Attribute.value); ADDOP_I(c, COPY, 1); - update_start_location_to_match_attr(c, e); + int old_lineno = c->u->u_lineno; + c->u->u_lineno = e->end_lineno; ADDOP_NAME(c, LOAD_ATTR, e->v.Attribute.attr, names); + c->u->u_lineno = old_lineno; break; case Subscript_kind: VISIT(c, expr, e->v.Subscript.value); - if (is_two_element_slice(e->v.Subscript.slice)) { - if (!compiler_slice(c, e->v.Subscript.slice)) { - return 0; - } - ADDOP_I(c, COPY, 3); - ADDOP_I(c, COPY, 3); - ADDOP_I(c, COPY, 3); - ADDOP(c, BINARY_SLICE); - } - else { - VISIT(c, expr, e->v.Subscript.slice); - ADDOP_I(c, COPY, 2); - ADDOP_I(c, COPY, 2); - ADDOP(c, BINARY_SUBSCR); - } + VISIT(c, expr, e->v.Subscript.slice); + ADDOP_I(c, COPY, 2); + ADDOP_I(c, COPY, 2); + ADDOP(c, BINARY_SUBSCR); break; case Name_kind: if (!compiler_nameop(c, e->v.Name.id, Load)) @@ -5885,7 +5939,10 @@ compiler_augassign(struct compiler *c, stmt_ty s) return 0; } - c->u->u_loc = old_loc; + c->u->u_lineno = old_lineno; + c->u->u_end_lineno = old_end_lineno; + c->u->u_col_offset = old_col_offset; + c->u->u_end_col_offset = old_end_col_offset; VISIT(c, expr, s->v.AugAssign.value); ADDOP_INPLACE(c, s->v.AugAssign.op); @@ -5894,22 +5951,14 @@ compiler_augassign(struct compiler *c, stmt_ty s) switch (e->kind) { case Attribute_kind: - update_start_location_to_match_attr(c, e); + c->u->u_lineno = e->end_lineno; ADDOP_I(c, SWAP, 2); ADDOP_NAME(c, STORE_ATTR, e->v.Attribute.attr, names); break; case Subscript_kind: - if (is_two_element_slice(e->v.Subscript.slice)) { - ADDOP_I(c, SWAP, 4); - ADDOP_I(c, SWAP, 3); - ADDOP_I(c, SWAP, 2); - ADDOP(c, STORE_SLICE); - } - else { - ADDOP_I(c, SWAP, 3); - ADDOP_I(c, SWAP, 2); - ADDOP(c, STORE_SUBSCR); - } + ADDOP_I(c, SWAP, 3); + ADDOP_I(c, SWAP, 2); + ADDOP(c, STORE_SUBSCR); break; case Name_kind: return compiler_nameop(c, e->v.Name.id, Store); @@ -6051,15 +6100,14 @@ compiler_error(struct compiler *c, const char *format, ...) if (msg == NULL) { return 0; } - PyObject *loc = PyErr_ProgramTextObject(c->c_filename, c->u->u_loc.lineno); + PyObject *loc = PyErr_ProgramTextObject(c->c_filename, c->u->u_lineno); if (loc == NULL) { Py_INCREF(Py_None); loc = Py_None; } - struct location u_loc = c->u->u_loc; PyObject *args = Py_BuildValue("O(OiiOii)", msg, c->c_filename, - u_loc.lineno, u_loc.col_offset + 1, loc, - u_loc.end_lineno, u_loc.end_col_offset + 1); + c->u->u_lineno, c->u->u_col_offset + 1, loc, + c->u->u_end_lineno, c->u->u_end_col_offset + 1); Py_DECREF(msg); if (args == NULL) { goto exit; @@ -6086,7 +6134,7 @@ compiler_warn(struct compiler *c, const char *format, ...) return 0; } if (PyErr_WarnExplicitObject(PyExc_SyntaxWarning, msg, c->c_filename, - c->u->u_loc.lineno, NULL, NULL) < 0) + c->u->u_lineno, NULL, NULL) < 0) { if (PyErr_ExceptionMatches(PyExc_SyntaxWarning)) { /* Replace the SyntaxWarning exception with a SyntaxError @@ -6117,34 +6165,18 @@ compiler_subscript(struct compiler *c, expr_ty e) } } - VISIT(c, expr, e->v.Subscript.value); - if (is_two_element_slice(e->v.Subscript.slice) && ctx != Del) { - if (!compiler_slice(c, e->v.Subscript.slice)) { - return 0; - } - if (ctx == Load) { - ADDOP(c, BINARY_SLICE); - } - else { - assert(ctx == Store); - ADDOP(c, STORE_SLICE); - } - } - else { - VISIT(c, expr, e->v.Subscript.slice); - switch (ctx) { - case Load: op = BINARY_SUBSCR; break; - case Store: op = STORE_SUBSCR; break; - case Del: op = DELETE_SUBSCR; break; - } - assert(op); - ADDOP(c, op); + switch (ctx) { + case Load: op = BINARY_SUBSCR; break; + case Store: op = STORE_SUBSCR; break; + case Del: op = DELETE_SUBSCR; break; } + assert(op); + VISIT(c, expr, e->v.Subscript.value); + VISIT(c, expr, e->v.Subscript.slice); + ADDOP(c, op); return 1; } -/* Returns the number of the values emitted, - * thus are needed to build the slice, or 0 if there is an error. */ static int compiler_slice(struct compiler *c, expr_ty s) { @@ -6170,7 +6202,8 @@ compiler_slice(struct compiler *c, expr_ty s) n++; VISIT(c, expr, s->v.Slice.step); } - return n; + ADDOP_I(c, BUILD_SLICE, n); + return 1; } @@ -6204,15 +6237,16 @@ ensure_fail_pop(struct compiler *c, pattern_context *pc, Py_ssize_t n) if (size <= pc->fail_pop_size) { return 1; } - Py_ssize_t needed = sizeof(jump_target_label) * size; - jump_target_label *resized = PyObject_Realloc(pc->fail_pop, needed); + Py_ssize_t needed = sizeof(basicblock*) * size; + basicblock **resized = PyObject_Realloc(pc->fail_pop, needed); if (resized == NULL) { PyErr_NoMemory(); return 0; } pc->fail_pop = resized; while (pc->fail_pop_size < size) { - NEW_JUMP_TARGET_LABEL(c, new_block); + basicblock *new_block; + RETURN_IF_FALSE(new_block = compiler_new_block(c)); pc->fail_pop[pc->fail_pop_size++] = new_block; } return 1; @@ -6239,15 +6273,15 @@ emit_and_reset_fail_pop(struct compiler *c, pattern_context *pc) return 1; } while (--pc->fail_pop_size) { - USE_LABEL(c, pc->fail_pop[pc->fail_pop_size]); - if (!cfg_builder_addop_noarg(CFG_BUILDER(c), POP_TOP, COMPILER_LOC(c))) { + compiler_use_next_block(c, pc->fail_pop[pc->fail_pop_size]); + if (!compiler_addop(c, POP_TOP)) { pc->fail_pop_size = 0; PyObject_Free(pc->fail_pop); pc->fail_pop = NULL; return 0; } } - USE_LABEL(c, pc->fail_pop[0]); + compiler_use_next_block(c, pc->fail_pop[0]); PyObject_Free(pc->fail_pop); pc->fail_pop = NULL; return 1; @@ -6649,7 +6683,8 @@ static int compiler_pattern_or(struct compiler *c, pattern_ty p, pattern_context *pc) { assert(p->kind == MatchOr_kind); - NEW_JUMP_TARGET_LABEL(c, end); + basicblock *end; + RETURN_IF_FALSE(end = compiler_new_block(c)); Py_ssize_t size = asdl_seq_LEN(p->v.MatchOr.patterns); assert(size > 1); // We're going to be messing with pc. Keep the original info handy: @@ -6673,8 +6708,7 @@ compiler_pattern_or(struct compiler *c, pattern_ty p, pattern_context *pc) pc->fail_pop = NULL; pc->fail_pop_size = 0; pc->on_top = 0; - if (!cfg_builder_addop_i(CFG_BUILDER(c), COPY, 1, COMPILER_LOC(c)) || - !compiler_pattern(c, alt, pc)) { + if (!compiler_addop_i(c, COPY, 1) || !compiler_pattern(c, alt, pc)) { goto error; } // Success! @@ -6737,7 +6771,7 @@ compiler_pattern_or(struct compiler *c, pattern_ty p, pattern_context *pc) } } assert(control); - if (!cfg_builder_addop_j(CFG_BUILDER(c), JUMP, end, COMPILER_LOC(c)) || + if (!compiler_addop_j(c, JUMP, end) || !emit_and_reset_fail_pop(c, pc)) { goto error; @@ -6749,11 +6783,10 @@ compiler_pattern_or(struct compiler *c, pattern_ty p, pattern_context *pc) // Need to NULL this for the PyObject_Free call in the error block. old_pc.fail_pop = NULL; // No match. Pop the remaining copy of the subject and fail: - if (!cfg_builder_addop_noarg(CFG_BUILDER(c), POP_TOP, COMPILER_LOC(c)) || !jump_to_fail_pop(c, pc, JUMP)) { + if (!compiler_addop(c, POP_TOP) || !jump_to_fail_pop(c, pc, JUMP)) { goto error; } - - USE_LABEL(c, end); + compiler_use_next_block(c, end); Py_ssize_t nstores = PyList_GET_SIZE(control); // There's a bunch of stuff on the stack between where the new stores // are and where they need to be: @@ -6912,7 +6945,8 @@ static int compiler_match_inner(struct compiler *c, stmt_ty s, pattern_context *pc) { VISIT(c, expr, s->v.Match.subject); - NEW_JUMP_TARGET_LABEL(c, end); + basicblock *end; + RETURN_IF_FALSE(end = compiler_new_block(c)); Py_ssize_t cases = asdl_seq_LEN(s->v.Match.cases); assert(cases > 0); match_case_ty m = asdl_seq_GET(s->v.Match.cases, cases - 1); @@ -6981,7 +7015,7 @@ compiler_match_inner(struct compiler *c, stmt_ty s, pattern_context *pc) } VISIT_SEQ(c, stmt, m->body); } - USE_LABEL(c, end); + compiler_use_next_block(c, end); return 1; } @@ -6998,25 +7032,36 @@ compiler_match(struct compiler *c, stmt_ty s) #undef WILDCARD_CHECK #undef WILDCARD_STAR_CHECK - /* End of the compiler section, beginning of the assembler section */ +/* do depth-first search of basic block graph, starting with block. + post records the block indices in post-order. + + XXX must handle implicit jumps from one block to next +*/ + struct assembler { PyObject *a_bytecode; /* bytes containing bytecode */ - int a_offset; /* offset into bytecode */ PyObject *a_except_table; /* bytes containing exception table */ + basicblock *a_entry; + int a_offset; /* offset into bytecode */ int a_except_table_off; /* offset into exception table */ - /* Location Info */ + int a_prevlineno; /* lineno of last emitted line in line table */ + int a_prev_end_lineno; /* end_lineno of last emitted line in line table */ int a_lineno; /* lineno of last emitted instruction */ + int a_end_lineno; /* end_lineno of last emitted instruction */ + int a_lineno_start; /* bytecode start offset of current lineno */ + int a_end_lineno_start; /* bytecode start offset of current end_lineno */ + /* Location Info */ PyObject* a_linetable; /* bytes containing location info */ int a_location_off; /* offset of last written location info frame */ }; static basicblock** -make_cfg_traversal_stack(basicblock *entryblock) { +make_cfg_traversal_stack(basicblock *entry) { int nblocks = 0; - for (basicblock *b = entryblock; b != NULL; b = b->b_next) { + for (basicblock *b = entry; b != NULL; b = b->b_next) { b->b_visited = 0; nblocks++; } @@ -7042,22 +7087,22 @@ stackdepth_push(basicblock ***sp, basicblock *b, int depth) * cycles in the flow graph have no net effect on the stack depth. */ static int -stackdepth(basicblock *entryblock, int code_flags) +stackdepth(struct compiler *c, basicblock *entry) { - for (basicblock *b = entryblock; b != NULL; b = b->b_next) { + for (basicblock *b = entry; b != NULL; b = b->b_next) { b->b_startdepth = INT_MIN; } - basicblock **stack = make_cfg_traversal_stack(entryblock); + basicblock **stack = make_cfg_traversal_stack(entry); if (!stack) { return -1; } int maxdepth = 0; basicblock **sp = stack; - if (code_flags & (CO_GENERATOR | CO_COROUTINE | CO_ASYNC_GENERATOR)) { - stackdepth_push(&sp, entryblock, 1); + if (c->u->u_ste->ste_generator || c->u->u_ste->ste_coroutine) { + stackdepth_push(&sp, entry, 1); } else { - stackdepth_push(&sp, entryblock, 0); + stackdepth_push(&sp, entry, 0); } while (sp != stack) { @@ -7075,12 +7120,11 @@ stackdepth(basicblock *entryblock, int code_flags) return -1; } int new_depth = depth + effect; - assert(new_depth >= 0); /* invalid code or bug in stackdepth() */ if (new_depth > maxdepth) { maxdepth = new_depth; } assert(depth >= 0); /* invalid code or bug in stackdepth() */ - if (HAS_TARGET(instr->i_opcode)) { + if (is_jump(instr) || is_block_push(instr)) { effect = stack_effect(instr->i_opcode, instr->i_oparg, 1); assert(effect != PY_INVALID_STACK_EFFECT); int target_depth = depth + effect; @@ -7092,8 +7136,11 @@ stackdepth(basicblock *entryblock, int code_flags) } depth = new_depth; assert(!IS_ASSEMBLER_OPCODE(instr->i_opcode)); - if (IS_UNCONDITIONAL_JUMP_OPCODE(instr->i_opcode) || - IS_SCOPE_EXIT_OPCODE(instr->i_opcode)) + if (instr->i_opcode == JUMP_NO_INTERRUPT || + instr->i_opcode == JUMP || + instr->i_opcode == RETURN_VALUE || + instr->i_opcode == RAISE_VARARGS || + instr->i_opcode == RERAISE) { /* remaining code is dead */ next = NULL; @@ -7104,7 +7151,7 @@ stackdepth(basicblock *entryblock, int code_flags) } } if (next != NULL) { - assert(BB_HAS_FALLTHROUGH(b)); + assert(b->b_nofallthrough == 0); stackdepth_push(&sp, next, depth); } } @@ -7113,10 +7160,11 @@ stackdepth(basicblock *entryblock, int code_flags) } static int -assemble_init(struct assembler *a, int firstlineno) +assemble_init(struct assembler *a, int nblocks, int firstlineno) { memset(a, 0, sizeof(struct assembler)); - a->a_lineno = firstlineno; + a->a_prevlineno = a->a_lineno = firstlineno; + a->a_prev_end_lineno = a->a_end_lineno = firstlineno; a->a_linetable = NULL; a->a_location_off = 0; a->a_except_table = NULL; @@ -7132,6 +7180,10 @@ assemble_init(struct assembler *a, int firstlineno) if (a->a_except_table == NULL) { goto error; } + if ((size_t)nblocks > SIZE_MAX / sizeof(basicblock *)) { + PyErr_NoMemory(); + goto error; + } return 1; error: Py_XDECREF(a->a_bytecode); @@ -7151,8 +7203,10 @@ assemble_free(struct assembler *a) static int blocksize(basicblock *b) { + int i; int size = 0; - for (int i = 0; i < b->b_iused; i++) { + + for (i = 0; i < b->b_iused; i++) { size += instr_size(&b->b_instr[i]); } return size; @@ -7205,8 +7259,8 @@ copy_except_stack(ExceptStack *stack) { } static int -label_exception_targets(basicblock *entryblock) { - basicblock **todo_stack = make_cfg_traversal_stack(entryblock); +label_exception_targets(basicblock *entry) { + basicblock **todo_stack = make_cfg_traversal_stack(entry); if (todo_stack == NULL) { return -1; } @@ -7217,9 +7271,9 @@ label_exception_targets(basicblock *entryblock) { return -1; } except_stack->depth = 0; - todo_stack[0] = entryblock; - entryblock->b_visited = 1; - entryblock->b_exceptstack = except_stack; + todo_stack[0] = entry; + entry->b_visited = 1; + entry->b_exceptstack = except_stack; basicblock **todo = &todo_stack[1]; basicblock *handler = NULL; while (todo > todo_stack) { @@ -7252,7 +7306,7 @@ label_exception_targets(basicblock *entryblock) { instr->i_except = handler; assert(i == b->b_iused -1); if (!instr->i_target->b_visited) { - if (BB_HAS_FALLTHROUGH(b)) { + if (b->b_nofallthrough == 0) { ExceptStack *copy = copy_except_stack(except_stack); if (copy == NULL) { goto error; @@ -7272,7 +7326,7 @@ label_exception_targets(basicblock *entryblock) { instr->i_except = handler; } } - if (BB_HAS_FALLTHROUGH(b) && !b->b_next->b_visited) { + if (b->b_nofallthrough == 0 && !b->b_next->b_visited) { assert(except_stack != NULL); b->b_next->b_exceptstack = except_stack; todo[0] = b->b_next; @@ -7284,7 +7338,7 @@ label_exception_targets(basicblock *entryblock) { } } #ifdef Py_DEBUG - for (basicblock *b = entryblock; b != NULL; b = b->b_next) { + for (basicblock *b = entry; b != NULL; b = b->b_next) { assert(b->b_exceptstack == NULL); } #endif @@ -7296,171 +7350,10 @@ label_exception_targets(basicblock *entryblock) { return -1; } -static int -mark_warm(basicblock *entryblock) { - basicblock **stack = make_cfg_traversal_stack(entryblock); - if (stack == NULL) { - return -1; - } - basicblock **sp = stack; - - *sp++ = entryblock; - entryblock->b_visited = 1; - while (sp > stack) { - basicblock *b = *(--sp); - assert(!b->b_except_predecessors); - b->b_warm = 1; - basicblock *next = b->b_next; - if (next && BB_HAS_FALLTHROUGH(b) && !next->b_visited) { - *sp++ = next; - next->b_visited = 1; - } - for (int i=0; i < b->b_iused; i++) { - struct instr *instr = &b->b_instr[i]; - if (is_jump(instr) && !instr->i_target->b_visited) { - *sp++ = instr->i_target; - instr->i_target->b_visited = 1; - } - } - } - PyMem_Free(stack); - return 0; -} - -static int -mark_cold(basicblock *entryblock) { - for (basicblock *b = entryblock; b != NULL; b = b->b_next) { - assert(!b->b_cold && !b->b_warm); - } - if (mark_warm(entryblock) < 0) { - return -1; - } - - basicblock **stack = make_cfg_traversal_stack(entryblock); - if (stack == NULL) { - return -1; - } - - basicblock **sp = stack; - for (basicblock *b = entryblock; b != NULL; b = b->b_next) { - if (b->b_except_predecessors) { - assert(b->b_except_predecessors == b->b_predecessors); - assert(!b->b_warm); - *sp++ = b; - b->b_visited = 1; - } - } - - while (sp > stack) { - basicblock *b = *(--sp); - b->b_cold = 1; - basicblock *next = b->b_next; - if (next && BB_HAS_FALLTHROUGH(b)) { - if (!next->b_warm && !next->b_visited) { - *sp++ = next; - next->b_visited = 1; - } - } - for (int i = 0; i < b->b_iused; i++) { - struct instr *instr = &b->b_instr[i]; - if (is_jump(instr)) { - assert(i == b->b_iused - 1); - basicblock *target = b->b_instr[i].i_target; - if (!target->b_warm && !target->b_visited) { - *sp++ = target; - target->b_visited = 1; - } - } - } - } - PyMem_Free(stack); - return 0; -} - -static int -remove_redundant_jumps(cfg_builder *g); - -static int -push_cold_blocks_to_end(cfg_builder *g, int code_flags) { - basicblock *entryblock = g->g_entryblock; - if (entryblock->b_next == NULL) { - /* single basicblock, no need to reorder */ - return 0; - } - if (mark_cold(entryblock) < 0) { - return -1; - } - - /* If we have a cold block with fallthrough to a warm block, add */ - /* an explicit jump instead of fallthrough */ - for (basicblock *b = entryblock; b != NULL; b = b->b_next) { - if (b->b_cold && BB_HAS_FALLTHROUGH(b) && b->b_next && b->b_next->b_warm) { - basicblock *explicit_jump = cfg_builder_new_block(g); - if (explicit_jump == NULL) { - return -1; - } - basicblock_addop(explicit_jump, JUMP, b->b_next->b_label, NO_LOCATION); - explicit_jump->b_cold = 1; - explicit_jump->b_next = b->b_next; - b->b_next = explicit_jump; - - /* set target */ - struct instr *last = basicblock_last_instr(explicit_jump); - last->i_target = explicit_jump->b_next; - } - } - - assert(!entryblock->b_cold); /* First block can't be cold */ - basicblock *cold_blocks = NULL; - basicblock *cold_blocks_tail = NULL; - - basicblock *b = entryblock; - while(b->b_next) { - assert(!b->b_cold); - while (b->b_next && !b->b_next->b_cold) { - b = b->b_next; - } - if (b->b_next == NULL) { - /* no more cold blocks */ - break; - } - - /* b->b_next is the beginning of a cold streak */ - assert(!b->b_cold && b->b_next->b_cold); - - basicblock *b_end = b->b_next; - while (b_end->b_next && b_end->b_next->b_cold) { - b_end = b_end->b_next; - } - - /* b_end is the end of the cold streak */ - assert(b_end && b_end->b_cold); - assert(b_end->b_next == NULL || !b_end->b_next->b_cold); - - if (cold_blocks == NULL) { - cold_blocks = b->b_next; - } - else { - cold_blocks_tail->b_next = b->b_next; - } - cold_blocks_tail = b_end; - b->b_next = b_end->b_next; - b_end->b_next = NULL; - } - assert(b != NULL && b->b_next == NULL); - b->b_next = cold_blocks; - - if (cold_blocks != NULL) { - if (remove_redundant_jumps(g) < 0) { - return -1; - } - } - return 0; -} static void -convert_exception_handlers_to_nops(basicblock *entryblock) { - for (basicblock *b = entryblock; b != NULL; b = b->b_next) { +convert_exception_handlers_to_nops(basicblock *entry) { + for (basicblock *b = entry; b != NULL; b = b->b_next) { for (int i = 0; i < b->b_iused; i++) { struct instr *instr = &b->b_instr[i]; if (is_block_push(instr) || instr->i_opcode == POP_BLOCK) { @@ -7530,13 +7423,13 @@ assemble_emit_exception_table_entry(struct assembler *a, int start, int end, bas } static int -assemble_exception_table(struct assembler *a, basicblock *entryblock) +assemble_exception_table(struct assembler *a) { basicblock *b; int ioffset = 0; basicblock *handler = NULL; int start = -1; - for (b = entryblock; b != NULL; b = b->b_next) { + for (b = a->a_entry; b != NULL; b = b->b_next) { ioffset = b->b_offset; for (int i = 0; i < b->b_iused; i++) { struct instr *instr = &b->b_instr[i]; @@ -7604,7 +7497,6 @@ write_location_info_short_form(struct assembler* a, int length, int column, int int column_low_bits = column & 7; int column_group = column >> 3; assert(column < 80); - assert(end_column >= column); assert(end_column - column < 16); write_location_first_byte(a, PY_CODE_LOCATION_INFO_SHORT0 + column_group, length); write_location_byte(a, (column_low_bits << 4) | (end_column - column)); @@ -7627,11 +7519,11 @@ write_location_info_long_form(struct assembler* a, struct instr* i, int length) { assert(length > 0 && length <= 8); write_location_first_byte(a, PY_CODE_LOCATION_INFO_LONG, length); - write_location_signed_varint(a, i->i_loc.lineno - a->a_lineno); - assert(i->i_loc.end_lineno >= i->i_loc.lineno); - write_location_varint(a, i->i_loc.end_lineno - i->i_loc.lineno); - write_location_varint(a, i->i_loc.col_offset + 1); - write_location_varint(a, i->i_loc.end_col_offset + 1); + write_location_signed_varint(a, i->i_lineno - a->a_lineno); + assert(i->i_end_lineno >= i->i_lineno); + write_location_varint(a, i->i_end_lineno - i->i_lineno); + write_location_varint(a, i->i_col_offset+1); + write_location_varint(a, i->i_end_col_offset+1); } static void @@ -7659,35 +7551,35 @@ write_location_info_entry(struct assembler* a, struct instr* i, int isize) return 0; } } - if (i->i_loc.lineno < 0) { + if (i->i_lineno < 0) { write_location_info_none(a, isize); return 1; } - int line_delta = i->i_loc.lineno - a->a_lineno; - int column = i->i_loc.col_offset; - int end_column = i->i_loc.end_col_offset; + int line_delta = i->i_lineno - a->a_lineno; + int column = i->i_col_offset; + int end_column = i->i_end_col_offset; assert(column >= -1); assert(end_column >= -1); if (column < 0 || end_column < 0) { - if (i->i_loc.end_lineno == i->i_loc.lineno || i->i_loc.end_lineno == -1) { + if (i->i_end_lineno == i->i_lineno || i->i_end_lineno == -1) { write_location_info_no_column(a, isize, line_delta); - a->a_lineno = i->i_loc.lineno; + a->a_lineno = i->i_lineno; return 1; } } - else if (i->i_loc.end_lineno == i->i_loc.lineno) { - if (line_delta == 0 && column < 80 && end_column - column < 16 && end_column >= column) { + else if (i->i_end_lineno == i->i_lineno) { + if (line_delta == 0 && column < 80 && end_column - column < 16) { write_location_info_short_form(a, isize, column, end_column); return 1; } if (line_delta >= 0 && line_delta < 3 && column < 128 && end_column < 128) { write_location_info_oneline_form(a, isize, line_delta, column, end_column); - a->a_lineno = i->i_loc.lineno; + a->a_lineno = i->i_lineno; return 1; } } write_location_info_long_form(a, i, isize); - a->a_lineno = i->i_loc.lineno; + a->a_lineno = i->i_lineno; return 1; } @@ -7728,111 +7620,85 @@ assemble_emit(struct assembler *a, struct instr *i) return 1; } -static int -normalize_jumps_in_block(cfg_builder *g, basicblock *b) { - struct instr *last = basicblock_last_instr(b); - if (last == NULL || !is_jump(last)) { - return 0; - } - assert(!IS_ASSEMBLER_OPCODE(last->i_opcode)); - bool is_forward = last->i_target->b_visited == 0; - switch(last->i_opcode) { - case JUMP: - last->i_opcode = is_forward ? JUMP_FORWARD : JUMP_BACKWARD; - return 0; - case JUMP_NO_INTERRUPT: - last->i_opcode = is_forward ? - JUMP_FORWARD : JUMP_BACKWARD_NO_INTERRUPT; - return 0; - } - int reversed_opcode = 0; - switch(last->i_opcode) { - case POP_JUMP_IF_NOT_NONE: - reversed_opcode = POP_JUMP_IF_NONE; - break; - case POP_JUMP_IF_NONE: - reversed_opcode = POP_JUMP_IF_NOT_NONE; - break; - case POP_JUMP_IF_FALSE: - reversed_opcode = POP_JUMP_IF_TRUE; - break; - case POP_JUMP_IF_TRUE: - reversed_opcode = POP_JUMP_IF_FALSE; - break; - case JUMP_IF_TRUE_OR_POP: - case JUMP_IF_FALSE_OR_POP: - if (!is_forward) { - /* As far as we can tell, the compiler never emits - * these jumps with a backwards target. If/when this - * exception is raised, we have found a use case for - * a backwards version of this jump (or to replace - * it with the sequence (COPY 1, POP_JUMP_IF_T/F, POP) - */ - PyErr_Format(PyExc_SystemError, - "unexpected %s jumping backwards", - last->i_opcode == JUMP_IF_TRUE_OR_POP ? - "JUMP_IF_TRUE_OR_POP" : "JUMP_IF_FALSE_OR_POP"); - } - return 0; - } - if (is_forward) { - return 0; - } - - /* transform 'conditional jump T' to - * 'reversed_jump b_next' followed by 'jump_backwards T' - */ - - basicblock *target = last->i_target; - basicblock *backwards_jump = cfg_builder_new_block(g); - if (backwards_jump == NULL) { - return -1; - } - basicblock_addop(backwards_jump, JUMP, target->b_label, NO_LOCATION); - backwards_jump->b_instr[0].i_target = target; - last->i_opcode = reversed_opcode; - last->i_target = b->b_next; - - backwards_jump->b_cold = b->b_cold; - backwards_jump->b_next = b->b_next; - b->b_next = backwards_jump; - return 0; -} - -static int -normalize_jumps(cfg_builder *g) +static void +normalize_jumps(struct assembler *a) { - basicblock *entryblock = g->g_entryblock; - for (basicblock *b = entryblock; b != NULL; b = b->b_next) { + for (basicblock *b = a->a_entry; b != NULL; b = b->b_next) { b->b_visited = 0; } - for (basicblock *b = entryblock; b != NULL; b = b->b_next) { + for (basicblock *b = a->a_entry; b != NULL; b = b->b_next) { b->b_visited = 1; - if (normalize_jumps_in_block(g, b) < 0) { - return -1; + if (b->b_iused == 0) { + continue; + } + struct instr *last = &b->b_instr[b->b_iused-1]; + assert(!IS_ASSEMBLER_OPCODE(last->i_opcode)); + if (is_jump(last)) { + bool is_forward = last->i_target->b_visited == 0; + switch(last->i_opcode) { + case JUMP: + last->i_opcode = is_forward ? JUMP_FORWARD : JUMP_BACKWARD; + break; + case JUMP_NO_INTERRUPT: + last->i_opcode = is_forward ? + JUMP_FORWARD : JUMP_BACKWARD_NO_INTERRUPT; + break; + case POP_JUMP_IF_NOT_NONE: + last->i_opcode = is_forward ? + POP_JUMP_FORWARD_IF_NOT_NONE : POP_JUMP_BACKWARD_IF_NOT_NONE; + break; + case POP_JUMP_IF_NONE: + last->i_opcode = is_forward ? + POP_JUMP_FORWARD_IF_NONE : POP_JUMP_BACKWARD_IF_NONE; + break; + case POP_JUMP_IF_FALSE: + last->i_opcode = is_forward ? + POP_JUMP_FORWARD_IF_FALSE : POP_JUMP_BACKWARD_IF_FALSE; + break; + case POP_JUMP_IF_TRUE: + last->i_opcode = is_forward ? + POP_JUMP_FORWARD_IF_TRUE : POP_JUMP_BACKWARD_IF_TRUE; + break; + case JUMP_IF_TRUE_OR_POP: + case JUMP_IF_FALSE_OR_POP: + if (!is_forward) { + /* As far as we can tell, the compiler never emits + * these jumps with a backwards target. If/when this + * exception is raised, we have found a use case for + * a backwards version of this jump (or to replace + * it with the sequence (COPY 1, POP_JUMP_IF_T/F, POP) + */ + PyErr_Format(PyExc_SystemError, + "unexpected %s jumping backwards", + last->i_opcode == JUMP_IF_TRUE_OR_POP ? + "JUMP_IF_TRUE_OR_POP" : "JUMP_IF_FALSE_OR_POP"); + } + break; + } } } - return 0; } static void -assemble_jump_offsets(basicblock *entryblock) +assemble_jump_offsets(struct assembler *a, struct compiler *c) { + basicblock *b; int bsize, totsize, extended_arg_recompile; + int i; /* Compute the size of each block and fixup jump args. Replace block pointer with position in bytecode. */ do { totsize = 0; - for (basicblock *b = entryblock; b != NULL; b = b->b_next) { + for (basicblock *b = a->a_entry; b != NULL; b = b->b_next) { bsize = blocksize(b); b->b_offset = totsize; totsize += bsize; } extended_arg_recompile = 0; - for (basicblock *b = entryblock; b != NULL; b = b->b_next) { + for (b = c->u->u_blocks; b != NULL; b = b->b_list) { bsize = b->b_offset; - for (int i = 0; i < b->b_iused; i++) { + for (i = 0; i < b->b_iused; i++) { struct instr *instr = &b->b_instr[i]; int isize = instr_size(instr); /* Relative jumps are computed relative to @@ -7879,109 +7745,6 @@ assemble_jump_offsets(basicblock *entryblock) } while (extended_arg_recompile); } - -// Ensure each basicblock is only put onto the stack once. -#define MAYBE_PUSH(B) do { \ - if ((B)->b_visited == 0) { \ - *(*stack_top)++ = (B); \ - (B)->b_visited = 1; \ - } \ - } while (0) - -static void -scan_block_for_local(int target, basicblock *b, bool unsafe_to_start, - basicblock ***stack_top) -{ - bool unsafe = unsafe_to_start; - for (int i = 0; i < b->b_iused; i++) { - struct instr *instr = &b->b_instr[i]; - assert(instr->i_opcode != EXTENDED_ARG); - assert(instr->i_opcode != EXTENDED_ARG_QUICK); - assert(instr->i_opcode != LOAD_FAST__LOAD_FAST); - assert(instr->i_opcode != STORE_FAST__LOAD_FAST); - assert(instr->i_opcode != LOAD_CONST__LOAD_FAST); - assert(instr->i_opcode != STORE_FAST__STORE_FAST); - assert(instr->i_opcode != LOAD_FAST__LOAD_CONST); - if (unsafe && instr->i_except != NULL) { - MAYBE_PUSH(instr->i_except); - } - if (instr->i_oparg != target) { - continue; - } - switch (instr->i_opcode) { - case LOAD_FAST_CHECK: - // if this doesn't raise, then var is defined - unsafe = false; - break; - case LOAD_FAST: - if (unsafe) { - instr->i_opcode = LOAD_FAST_CHECK; - } - unsafe = false; - break; - case STORE_FAST: - unsafe = false; - break; - case DELETE_FAST: - unsafe = true; - break; - } - } - if (unsafe) { - // unsafe at end of this block, - // so unsafe at start of next blocks - if (b->b_next && BB_HAS_FALLTHROUGH(b)) { - MAYBE_PUSH(b->b_next); - } - struct instr *last = basicblock_last_instr(b); - if (last != NULL) { - if (is_jump(last)) { - assert(last->i_target != NULL); - MAYBE_PUSH(last->i_target); - } - } - } -} -#undef MAYBE_PUSH - -static int -add_checks_for_loads_of_unknown_variables(basicblock *entryblock, - struct compiler *c) -{ - basicblock **stack = make_cfg_traversal_stack(entryblock); - if (stack == NULL) { - return -1; - } - Py_ssize_t nparams = PyList_GET_SIZE(c->u->u_ste->ste_varnames); - int nlocals = (int)PyDict_GET_SIZE(c->u->u_varnames); - for (int target = 0; target < nlocals; target++) { - for (basicblock *b = entryblock; b != NULL; b = b->b_next) { - b->b_visited = 0; - } - basicblock **stack_top = stack; - - // First pass: find the relevant DFS starting points: - // the places where "being uninitialized" originates, - // which are the entry block and any DELETE_FAST statements. - if (target >= nparams) { - // only non-parameter locals start out uninitialized. - *(stack_top++) = entryblock; - entryblock->b_visited = 1; - } - for (basicblock *b = entryblock; b != NULL; b = b->b_next) { - scan_block_for_local(target, b, false, &stack_top); - } - - // Second pass: Depth-first search to propagate uncertainty - while (stack_top > stack) { - basicblock *b = *--stack_top; - scan_block_for_local(target, b, true, &stack_top); - } - } - PyMem_Free(stack); - return 0; -} - static PyObject * dict_keys_inorder(PyObject *dict, Py_ssize_t offset) { @@ -8013,7 +7776,7 @@ consts_dict_keys_inorder(PyObject *dict) while (PyDict_Next(dict, &pos, &k, &v)) { i = PyLong_AS_LONG(v); /* The keys of the dictionary can be tuples wrapping a constant. - * (see dict_add_o and _PyCode_ConstantKey). In that case + * (see compiler_add_o and _PyCode_ConstantKey). In that case * the object we want is always second. */ if (PyTuple_CheckExact(k)) { k = PyTuple_GET_ITEM(k, 1); @@ -8062,16 +7825,15 @@ compute_code_flags(struct compiler *c) // Merge *obj* with constant cache. // Unlike merge_consts_recursive(), this function doesn't work recursively. static int -merge_const_one(PyObject *const_cache, PyObject **obj) +merge_const_one(struct compiler *c, PyObject **obj) { - PyDict_CheckExact(const_cache); PyObject *key = _PyCode_ConstantKey(*obj); if (key == NULL) { return 0; } // t is borrowed reference - PyObject *t = PyDict_SetDefault(const_cache, key, key); + PyObject *t = PyDict_SetDefault(c->c_const_cache, key, key); Py_DECREF(key); if (t == NULL) { return 0; @@ -8142,7 +7904,7 @@ compute_localsplus_info(struct compiler *c, int nlocalsplus, static PyCodeObject * makecode(struct compiler *c, struct assembler *a, PyObject *constslist, - int maxdepth, int nlocalsplus, int code_flags) + int maxdepth, int nlocalsplus) { PyCodeObject *co = NULL; PyObject *names = NULL; @@ -8154,7 +7916,12 @@ makecode(struct compiler *c, struct assembler *a, PyObject *constslist, if (!names) { goto error; } - if (!merge_const_one(c->c_const_cache, &names)) { + if (!merge_const_one(c, &names)) { + goto error; + } + + int flags = compute_code_flags(c); + if (flags < 0) { goto error; } @@ -8162,7 +7929,7 @@ makecode(struct compiler *c, struct assembler *a, PyObject *constslist, if (consts == NULL) { goto error; } - if (!merge_const_one(c->c_const_cache, &consts)) { + if (!merge_const_one(c, &consts)) { goto error; } @@ -8188,7 +7955,7 @@ makecode(struct compiler *c, struct assembler *a, PyObject *constslist, .filename = c->c_filename, .name = c->u->u_name, .qualname = c->u->u_qualname ? c->u->u_qualname : c->u->u_name, - .flags = code_flags, + .flags = flags, .code = a->a_bytecode, .firstlineno = c->u->u_firstlineno, @@ -8213,7 +7980,7 @@ makecode(struct compiler *c, struct assembler *a, PyObject *constslist, goto error; } - if (!merge_const_one(c->c_const_cache, &localsplusnames)) { + if (!merge_const_one(c, &localsplusnames)) { goto error; } con.localsplusnames = localsplusnames; @@ -8246,20 +8013,16 @@ dump_instr(struct instr *i) if (HAS_ARG(i->i_opcode)) { sprintf(arg, "arg: %d ", i->i_oparg); } - if (HAS_TARGET(i->i_opcode)) { - sprintf(arg, "target: %p [%d] ", i->i_target, i->i_oparg); - } fprintf(stderr, "line: %d, opcode: %d %s%s%s\n", - i->i_loc.lineno, i->i_opcode, arg, jabs, jrel); + i->i_lineno, i->i_opcode, arg, jabs, jrel); } static void dump_basicblock(const basicblock *b) { - const char *b_return = basicblock_returns(b) ? "return " : ""; - fprintf(stderr, "%d: [%d %d %d %p] used: %d, depth: %d, offset: %d %s\n", - b->b_label, b->b_cold, b->b_warm, BB_NO_FALLTHROUGH(b), b, b->b_iused, - b->b_startdepth, b->b_offset, b_return); + const char *b_return = b->b_return ? "return " : ""; + fprintf(stderr, "used: %d, depth: %d, offset: %d %s\n", + b->b_iused, b->b_startdepth, b->b_offset, b_return); if (b->b_instr) { int i; for (i = 0; i < b->b_iused; i++) { @@ -8272,17 +8035,20 @@ dump_basicblock(const basicblock *b) static int -calculate_jump_targets(basicblock *entryblock); +normalize_basic_block(basicblock *bb); static int -optimize_cfg(cfg_builder *g, PyObject *consts, PyObject *const_cache); +optimize_cfg(struct compiler *c, struct assembler *a, PyObject *consts); static int -trim_unused_consts(basicblock *entryblock, PyObject *consts); +trim_unused_consts(struct assembler *a, PyObject *consts); /* Duplicates exit BBs, so that line numbers can be propagated to them */ static int -duplicate_exits_without_lineno(cfg_builder *g); +duplicate_exits_without_lineno(struct compiler *c); + +static int +extend_block(basicblock *bb); static int * build_cellfixedoffsets(struct compiler *c) @@ -8319,10 +8085,10 @@ build_cellfixedoffsets(struct compiler *c) static inline int insert_instruction(basicblock *block, int pos, struct instr *instr) { - if (basicblock_next_instr(block) < 0) { + if (compiler_next_instr(block) < 0) { return -1; } - for (int i = block->b_iused - 1; i > pos; i--) { + for (int i = block->b_iused-1; i > pos; i--) { block->b_instr[i] = block->b_instr[i-1]; } block->b_instr[pos] = *instr; @@ -8331,16 +8097,24 @@ insert_instruction(basicblock *block, int pos, struct instr *instr) { static int insert_prefix_instructions(struct compiler *c, basicblock *entryblock, - int *fixed, int nfreevars, int code_flags) + int *fixed, int nfreevars) { + + int flags = compute_code_flags(c); + if (flags < 0) { + return -1; + } assert(c->u->u_firstlineno > 0); /* Add the generator prefix instructions. */ - if (code_flags & (CO_GENERATOR | CO_COROUTINE | CO_ASYNC_GENERATOR)) { + if (flags & (CO_GENERATOR | CO_COROUTINE | CO_ASYNC_GENERATOR)) { struct instr make_gen = { .i_opcode = RETURN_GENERATOR, .i_oparg = 0, - .i_loc = LOCATION(c->u->u_firstlineno, c->u->u_firstlineno, -1, -1), + .i_lineno = c->u->u_firstlineno, + .i_col_offset = -1, + .i_end_lineno = c->u->u_firstlineno, + .i_end_col_offset = -1, .i_target = NULL, }; if (insert_instruction(entryblock, 0, &make_gen) < 0) { @@ -8349,7 +8123,10 @@ insert_prefix_instructions(struct compiler *c, basicblock *entryblock, struct instr pop_top = { .i_opcode = POP_TOP, .i_oparg = 0, - .i_loc = NO_LOCATION, + .i_lineno = -1, + .i_col_offset = -1, + .i_end_lineno = -1, + .i_end_col_offset = -1, .i_target = NULL, }; if (insert_instruction(entryblock, 1, &pop_top) < 0) { @@ -8381,7 +8158,10 @@ insert_prefix_instructions(struct compiler *c, basicblock *entryblock, .i_opcode = MAKE_CELL, // This will get fixed in offset_derefs(). .i_oparg = oldindex, - .i_loc = NO_LOCATION, + .i_lineno = -1, + .i_col_offset = -1, + .i_end_lineno = -1, + .i_end_col_offset = -1, .i_target = NULL, }; if (insert_instruction(entryblock, ncellsused, &make_cell) < 0) { @@ -8396,7 +8176,10 @@ insert_prefix_instructions(struct compiler *c, basicblock *entryblock, struct instr copy_frees = { .i_opcode = COPY_FREE_VARS, .i_oparg = nfreevars, - .i_loc = NO_LOCATION, + .i_lineno = -1, + .i_col_offset = -1, + .i_end_lineno = -1, + .i_end_col_offset = -1, .i_target = NULL, }; if (insert_instruction(entryblock, 0, &copy_frees) < 0) { @@ -8413,25 +8196,25 @@ insert_prefix_instructions(struct compiler *c, basicblock *entryblock, * The resulting line number may not be correct according to PEP 626, * but should be "good enough", and no worse than in older versions. */ static void -guarantee_lineno_for_exits(basicblock *entryblock, int firstlineno) { +guarantee_lineno_for_exits(struct assembler *a, int firstlineno) { int lineno = firstlineno; assert(lineno > 0); - for (basicblock *b = entryblock; b != NULL; b = b->b_next) { - struct instr *last = basicblock_last_instr(b); - if (last == NULL) { + for (basicblock *b = a->a_entry; b != NULL; b = b->b_next) { + if (b->b_iused == 0) { continue; } - if (last->i_loc.lineno < 0) { + struct instr *last = &b->b_instr[b->b_iused-1]; + if (last->i_lineno < 0) { if (last->i_opcode == RETURN_VALUE) { for (int i = 0; i < b->b_iused; i++) { - assert(b->b_instr[i].i_loc.lineno < 0); + assert(b->b_instr[i].i_lineno < 0); - b->b_instr[i].i_loc.lineno = lineno; + b->b_instr[i].i_lineno = lineno; } } } else { - lineno = last->i_loc.lineno; + lineno = last->i_lineno; } } } @@ -8483,83 +8266,45 @@ fix_cell_offsets(struct compiler *c, basicblock *entryblock, int *fixedmap) } static void -propagate_line_numbers(basicblock *entryblock); - -#ifndef NDEBUG -static bool -no_redundant_jumps(cfg_builder *g) { - for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { - struct instr *last = basicblock_last_instr(b); - if (last != NULL) { - if (IS_UNCONDITIONAL_JUMP_OPCODE(last->i_opcode)) { - assert(last->i_target != b->b_next); - if (last->i_target == b->b_next) { - return false; - } - } - } - } - return true; -} - -static bool -no_empty_basic_blocks(cfg_builder *g) { - for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { - if (b->b_iused == 0) { - return false; - } - } - return true; -} -#endif - -static int -remove_redundant_jumps(cfg_builder *g) { - /* If a non-empty block ends with a jump instruction, check if the next - * non-empty block reached through normal flow control is the target - * of that jump. If it is, then the jump instruction is redundant and - * can be deleted. - */ - assert(no_empty_basic_blocks(g)); - for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { - struct instr *last = basicblock_last_instr(b); - assert(last != NULL); - assert(!IS_ASSEMBLER_OPCODE(last->i_opcode)); - if (IS_UNCONDITIONAL_JUMP_OPCODE(last->i_opcode)) { - if (last->i_target == NULL) { - PyErr_SetString(PyExc_SystemError, "jump with NULL target"); - return -1; - } - if (last->i_target == b->b_next) { - assert(b->b_next->b_iused); - last->i_opcode = NOP; - } - } - } - return 0; -} +propagate_line_numbers(struct assembler *a); static PyCodeObject * assemble(struct compiler *c, int addNone) { + basicblock *b, *entryblock; + struct assembler a; + int j, nblocks; PyCodeObject *co = NULL; PyObject *consts = NULL; - struct assembler a; - memset(&a, 0, sizeof(struct assembler)); - - int code_flags = compute_code_flags(c); - if (code_flags < 0) { - return NULL; - } /* Make sure every block that falls off the end returns None. */ - if (!basicblock_returns(CFG_BUILDER(c)->g_curblock)) { + if (!c->u->u_curblock->b_return) { UNSET_LOC(c); if (addNone) ADDOP_LOAD_CONST(c, Py_None); ADDOP(c, RETURN_VALUE); } + for (basicblock *b = c->u->u_blocks; b != NULL; b = b->b_list) { + if (normalize_basic_block(b)) { + return NULL; + } + } + + for (basicblock *b = c->u->u_blocks; b != NULL; b = b->b_list) { + if (extend_block(b)) { + return NULL; + } + } + + nblocks = 0; + entryblock = NULL; + for (b = c->u->u_blocks; b != NULL; b = b->b_list) { + nblocks++; + entryblock = b; + } + assert(entryblock != NULL); + assert(PyDict_GET_SIZE(c->u->u_varnames) < INT_MAX); assert(PyDict_GET_SIZE(c->u->u_cellvars) < INT_MAX); assert(PyDict_GET_SIZE(c->u->u_freevars) < INT_MAX); @@ -8574,22 +8319,10 @@ assemble(struct compiler *c, int addNone) goto error; } - int nblocks = 0; - for (basicblock *b = CFG_BUILDER(c)->g_block_list; b != NULL; b = b->b_list) { - nblocks++; - } - if ((size_t)nblocks > SIZE_MAX / sizeof(basicblock *)) { - PyErr_NoMemory(); - goto error; - } - - cfg_builder *g = CFG_BUILDER(c); - assert(g->g_entryblock != NULL); - /* Set firstlineno if it wasn't explicitly set. */ if (!c->u->u_firstlineno) { - if (g->g_entryblock->b_instr && g->g_entryblock->b_instr->i_loc.lineno) { - c->u->u_firstlineno = g->g_entryblock->b_instr->i_loc.lineno; + if (entryblock->b_instr && entryblock->b_instr->i_lineno) { + c->u->u_firstlineno = entryblock->b_instr->i_lineno; } else { c->u->u_firstlineno = 1; @@ -8597,11 +8330,15 @@ assemble(struct compiler *c, int addNone) } // This must be called before fix_cell_offsets(). - if (insert_prefix_instructions(c, g->g_entryblock, cellfixedoffsets, nfreevars, code_flags)) { + if (insert_prefix_instructions(c, entryblock, cellfixedoffsets, nfreevars)) { goto error; } - int numdropped = fix_cell_offsets(c, g->g_entryblock, cellfixedoffsets); + if (!assemble_init(&a, nblocks, c->u->u_firstlineno)) + goto error; + a.a_entry = entryblock; + + int numdropped = fix_cell_offsets(c, entryblock, cellfixedoffsets); PyMem_Free(cellfixedoffsets); // At this point we're done with it. cellfixedoffsets = NULL; if (numdropped < 0) { @@ -8613,98 +8350,83 @@ assemble(struct compiler *c, int addNone) if (consts == NULL) { goto error; } - if (calculate_jump_targets(g->g_entryblock)) { - goto error; - } - if (optimize_cfg(g, consts, c->c_const_cache)) { + + if (optimize_cfg(c, &a, consts)) { goto error; } - if (trim_unused_consts(g->g_entryblock, consts)) { - goto error; + if (duplicate_exits_without_lineno(c)) { + return NULL; } - if (duplicate_exits_without_lineno(g) < 0) { + if (trim_unused_consts(&a, consts)) { goto error; } - propagate_line_numbers(g->g_entryblock); - guarantee_lineno_for_exits(g->g_entryblock, c->u->u_firstlineno); - - int maxdepth = stackdepth(g->g_entryblock, code_flags); + propagate_line_numbers(&a); + guarantee_lineno_for_exits(&a, c->u->u_firstlineno); + int maxdepth = stackdepth(c, entryblock); if (maxdepth < 0) { goto error; } - /* TO DO -- For 3.12, make sure that `maxdepth <= MAX_ALLOWED_STACK_USE` */ - - if (label_exception_targets(g->g_entryblock)) { + if (maxdepth > MAX_ALLOWED_STACK_USE) { + PyErr_Format(PyExc_SystemError, + "excessive stack use: stack is %d deep", + maxdepth); goto error; } - convert_exception_handlers_to_nops(g->g_entryblock); - if (push_cold_blocks_to_end(g, code_flags) < 0) { + if (label_exception_targets(entryblock)) { goto error; } - for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { - remove_redundant_nops(b); + convert_exception_handlers_to_nops(entryblock); + for (basicblock *b = a.a_entry; b != NULL; b = b->b_next) { + clean_basic_block(b); } /* Order of basic blocks must have been determined by now */ - if (normalize_jumps(g) < 0) { - goto error; - } - - if (add_checks_for_loads_of_unknown_variables(g->g_entryblock, c) < 0) { - goto error; - } - - assert(no_redundant_jumps(g)); + normalize_jumps(&a); /* Can't modify the bytecode after computing jump offsets. */ - assemble_jump_offsets(g->g_entryblock); - - - /* Create assembler */ - if (!assemble_init(&a, c->u->u_firstlineno)) - goto error; + assemble_jump_offsets(&a, c); /* Emit code. */ - for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { - for (int j = 0; j < b->b_iused; j++) + for(b = entryblock; b != NULL; b = b->b_next) { + for (j = 0; j < b->b_iused; j++) if (!assemble_emit(&a, &b->b_instr[j])) goto error; } /* Emit location info */ a.a_lineno = c->u->u_firstlineno; - for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { - for (int j = 0; j < b->b_iused; j++) + for(b = entryblock; b != NULL; b = b->b_next) { + for (j = 0; j < b->b_iused; j++) if (!assemble_emit_location(&a, &b->b_instr[j])) goto error; } - if (!assemble_exception_table(&a, g->g_entryblock)) { + if (!assemble_exception_table(&a)) { goto error; } if (_PyBytes_Resize(&a.a_except_table, a.a_except_table_off) < 0) { goto error; } - if (!merge_const_one(c->c_const_cache, &a.a_except_table)) { + if (!merge_const_one(c, &a.a_except_table)) { goto error; } if (_PyBytes_Resize(&a.a_linetable, a.a_location_off) < 0) { goto error; } - if (!merge_const_one(c->c_const_cache, &a.a_linetable)) { + if (!merge_const_one(c, &a.a_linetable)) { goto error; } if (_PyBytes_Resize(&a.a_bytecode, a.a_offset * sizeof(_Py_CODEUNIT)) < 0) { goto error; } - if (!merge_const_one(c->c_const_cache, &a.a_bytecode)) { + if (!merge_const_one(c, &a.a_bytecode)) { goto error; } - co = makecode(c, &a, consts, maxdepth, nlocalsplus, code_flags); + co = makecode(c, &a, consts, maxdepth, nlocalsplus); error: Py_XDECREF(consts); assemble_free(&a); @@ -8739,12 +8461,11 @@ get_const_value(int opcode, int oparg, PyObject *co_consts) Called with codestr pointing to the first LOAD_CONST. */ static int -fold_tuple_on_constants(PyObject *const_cache, +fold_tuple_on_constants(struct compiler *c, struct instr *inst, int n, PyObject *consts) { /* Pre-conditions */ - assert(PyDict_CheckExact(const_cache)); assert(PyList_CheckExact(consts)); assert(inst[n].i_opcode == BUILD_TUPLE); assert(inst[n].i_oparg == n); @@ -8769,7 +8490,7 @@ fold_tuple_on_constants(PyObject *const_cache, } PyTuple_SET_ITEM(newconst, i, constant); } - if (merge_const_one(const_cache, &newconst) == 0) { + if (merge_const_one(c, &newconst) == 0) { Py_DECREF(newconst); return -1; } @@ -8912,7 +8633,7 @@ next_swappable_instruction(basicblock *block, int i, int lineno) { while (++i < block->b_iused) { struct instr *instruction = &block->b_instr[i]; - if (0 <= lineno && instruction->i_loc.lineno != lineno) { + if (0 <= lineno && instruction->i_lineno != lineno) { // Optimizing across this instruction could cause user-visible // changes in the names bound between line tracing events! return -1; @@ -8951,7 +8672,7 @@ apply_static_swaps(basicblock *block, int i) return; } int k = j; - int lineno = block->b_instr[j].i_loc.lineno; + int lineno = block->b_instr[j].i_lineno; for (int count = swap->i_oparg - 1; 0 < count; count--) { k = next_swappable_instruction(block, k, lineno); if (k < 0) { @@ -8972,11 +8693,12 @@ apply_static_swaps(basicblock *block, int i) static bool jump_thread(struct instr *inst, struct instr *target, int opcode) { + assert(!IS_VIRTUAL_OPCODE(opcode) || IS_VIRTUAL_JUMP_OPCODE(opcode)); assert(is_jump(inst)); assert(is_jump(target)); // bpo-45773: If inst->i_target == target->i_target, then nothing actually // changes (and we fall into an infinite loop): - if ((inst->i_loc.lineno == target->i_loc.lineno || target->i_loc.lineno == -1) && + if ((inst->i_lineno == target->i_lineno || target->i_lineno == -1) && inst->i_target != target->i_target) { inst->i_target = target->i_target; @@ -8991,9 +8713,8 @@ jump_thread(struct instr *inst, struct instr *target, int opcode) /* Optimization */ static int -optimize_basic_block(PyObject *const_cache, basicblock *bb, PyObject *consts) +optimize_basic_block(struct compiler *c, basicblock *bb, PyObject *consts) { - assert(PyDict_CheckExact(const_cache)); assert(PyList_CheckExact(consts)); struct instr nop; nop.i_opcode = NOP; @@ -9002,8 +8723,11 @@ optimize_basic_block(PyObject *const_cache, basicblock *bb, PyObject *consts) struct instr *inst = &bb->b_instr[i]; int oparg = inst->i_oparg; int nextop = i+1 < bb->b_iused ? bb->b_instr[i+1].i_opcode : 0; - if (HAS_TARGET(inst->i_opcode)) { - assert(inst->i_target->b_iused > 0); + if (is_jump(inst) || is_block_push(inst)) { + /* Skip over empty basic blocks. */ + while (inst->i_target->b_iused == 0) { + inst->i_target = inst->i_target->b_next; + } target = &inst->i_target->b_instr[0]; assert(!IS_ASSEMBLER_OPCODE(target->i_opcode)); } @@ -9034,6 +8758,7 @@ optimize_basic_block(PyObject *const_cache, basicblock *bb, PyObject *consts) jump_if_true = nextop == POP_JUMP_IF_TRUE; if (is_true == jump_if_true) { bb->b_instr[i+1].i_opcode = JUMP; + bb->b_nofallthrough = 1; } else { bb->b_instr[i+1].i_opcode = NOP; @@ -9053,6 +8778,7 @@ optimize_basic_block(PyObject *const_cache, basicblock *bb, PyObject *consts) jump_if_true = nextop == JUMP_IF_TRUE_OR_POP; if (is_true == jump_if_true) { bb->b_instr[i+1].i_opcode = JUMP; + bb->b_nofallthrough = 1; } else { inst->i_opcode = NOP; @@ -9097,7 +8823,7 @@ optimize_basic_block(PyObject *const_cache, basicblock *bb, PyObject *consts) } } if (i >= oparg) { - if (fold_tuple_on_constants(const_cache, inst-oparg, oparg, consts)) { + if (fold_tuple_on_constants(c, inst-oparg, oparg, consts)) { goto error; } } @@ -9128,7 +8854,7 @@ optimize_basic_block(PyObject *const_cache, basicblock *bb, PyObject *consts) break; case JUMP_IF_TRUE_OR_POP: case POP_JUMP_IF_TRUE: - if (inst->i_loc.lineno == target->i_loc.lineno) { + if (inst->i_lineno == target->i_lineno) { // We don't need to bother checking for loops here, // since a block's b_next cannot point to itself: assert(inst->i_target != inst->i_target->b_next); @@ -9150,7 +8876,7 @@ optimize_basic_block(PyObject *const_cache, basicblock *bb, PyObject *consts) break; case JUMP_IF_FALSE_OR_POP: case POP_JUMP_IF_FALSE: - if (inst->i_loc.lineno == target->i_loc.lineno) { + if (inst->i_lineno == target->i_lineno) { // We don't need to bother checking for loops here, // since a block's b_next cannot point to itself: assert(inst->i_target != inst->i_target->b_next); @@ -9227,41 +8953,42 @@ optimize_basic_block(PyObject *const_cache, basicblock *bb, PyObject *consts) return -1; } -/* If this block ends with an unconditional jump to a small exit block, then - * remove the jump and extend this block with the target. - * Returns 1 if extended, 0 if no change, and -1 on error. +/* If this block ends with an unconditional jump to an exit block, + * then remove the jump and extend this block with the target. */ static int -inline_small_exit_blocks(basicblock *bb) { - struct instr *last = basicblock_last_instr(bb); - if (last == NULL) { +extend_block(basicblock *bb) { + if (bb->b_iused == 0) { return 0; } - if (!IS_UNCONDITIONAL_JUMP_OPCODE(last->i_opcode)) { + struct instr *last = &bb->b_instr[bb->b_iused-1]; + if (last->i_opcode != JUMP && + last->i_opcode != JUMP_FORWARD && + last->i_opcode != JUMP_BACKWARD) { return 0; } - basicblock *target = last->i_target; - if (basicblock_exits_scope(target) && target->b_iused <= MAX_COPY_SIZE) { + if (last->i_target->b_exit && last->i_target->b_iused <= MAX_COPY_SIZE) { + basicblock *to_copy = last->i_target; last->i_opcode = NOP; - for (int i = 0; i < target->b_iused; i++) { - int index = basicblock_next_instr(bb); + for (int i = 0; i < to_copy->b_iused; i++) { + int index = compiler_next_instr(bb); if (index < 0) { return -1; } - bb->b_instr[index] = target->b_instr[i]; + bb->b_instr[index] = to_copy->b_instr[i]; } - return 1; + bb->b_exit = 1; } return 0; } static void -remove_redundant_nops(basicblock *bb) { +clean_basic_block(basicblock *bb) { /* Remove NOPs when legal to do so. */ int dest = 0; int prev_lineno = -1; for (int src = 0; src < bb->b_iused; src++) { - int lineno = bb->b_instr[src].i_loc.lineno; + int lineno = bb->b_instr[src].i_lineno; if (bb->b_instr[src].i_opcode == NOP) { /* Eliminate no-op if it doesn't have a line number */ if (lineno < 0) { @@ -9273,12 +9000,9 @@ remove_redundant_nops(basicblock *bb) { } /* or, if the next instruction has same line number or no line number */ if (src < bb->b_iused - 1) { - int next_lineno = bb->b_instr[src+1].i_loc.lineno; - if (next_lineno == lineno) { - continue; - } - if (next_lineno < 0) { - bb->b_instr[src+1].i_loc = bb->b_instr[src].i_loc; + int next_lineno = bb->b_instr[src+1].i_lineno; + if (next_lineno < 0 || next_lineno == lineno) { + COPY_INSTR_LOC(bb->b_instr[src], bb->b_instr[src+1]); continue; } } @@ -9289,7 +9013,7 @@ remove_redundant_nops(basicblock *bb) { } /* or if last instruction in BB and next BB has same line number */ if (next) { - if (lineno == next->b_instr[0].i_loc.lineno) { + if (lineno == next->b_instr[0].i_lineno) { continue; } } @@ -9307,36 +9031,56 @@ remove_redundant_nops(basicblock *bb) { } static int -check_cfg(cfg_builder *g) { - for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { - /* Raise SystemError if jump or exit is not last instruction in the block. */ - for (int i = 0; i < b->b_iused; i++) { - int opcode = b->b_instr[i].i_opcode; - assert(!IS_ASSEMBLER_OPCODE(opcode)); - if (IS_TERMINATOR_OPCODE(opcode)) { - if (i != b->b_iused - 1) { +normalize_basic_block(basicblock *bb) { + /* Mark blocks as exit and/or nofallthrough. + Raise SystemError if CFG is malformed. */ + for (int i = 0; i < bb->b_iused; i++) { + assert(!IS_ASSEMBLER_OPCODE(bb->b_instr[i].i_opcode)); + switch(bb->b_instr[i].i_opcode) { + case RETURN_VALUE: + case RAISE_VARARGS: + case RERAISE: + bb->b_exit = 1; + bb->b_nofallthrough = 1; + break; + case JUMP: + case JUMP_NO_INTERRUPT: + bb->b_nofallthrough = 1; + /* fall through */ + case POP_JUMP_IF_NOT_NONE: + case POP_JUMP_IF_NONE: + case POP_JUMP_IF_FALSE: + case POP_JUMP_IF_TRUE: + case JUMP_IF_FALSE_OR_POP: + case JUMP_IF_TRUE_OR_POP: + case FOR_ITER: + if (i != bb->b_iused-1) { PyErr_SetString(PyExc_SystemError, "malformed control flow graph."); return -1; } - } + /* Skip over empty basic blocks. */ + while (bb->b_instr[i].i_target->b_iused == 0) { + bb->b_instr[i].i_target = bb->b_instr[i].i_target->b_next; + } + } } return 0; } static int -mark_reachable(basicblock *entryblock) { - basicblock **stack = make_cfg_traversal_stack(entryblock); +mark_reachable(struct assembler *a) { + basicblock **stack = make_cfg_traversal_stack(a->a_entry); if (stack == NULL) { return -1; } basicblock **sp = stack; - entryblock->b_predecessors = 1; - *sp++ = entryblock; + a->a_entry->b_predecessors = 1; + *sp++ = a->a_entry; while (sp > stack) { basicblock *b = *(--sp); b->b_visited = 1; - if (b->b_next && BB_HAS_FALLTHROUGH(b)) { + if (b->b_next && !b->b_nofallthrough) { if (!b->b_next->b_visited) { assert(b->b_next->b_predecessors == 0); *sp++ = b->b_next; @@ -9353,11 +9097,6 @@ mark_reachable(basicblock *entryblock) { *sp++ = target; } target->b_predecessors++; - if (is_block_push(instr)) { - target->b_except_predecessors++; - } - assert(target->b_except_predecessors == 0 || - target->b_except_predecessors == target->b_predecessors); } } } @@ -9366,29 +9105,29 @@ mark_reachable(basicblock *entryblock) { } static void -eliminate_empty_basic_blocks(cfg_builder *g) { +eliminate_empty_basic_blocks(basicblock *entry) { /* Eliminate empty blocks */ - for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { + for (basicblock *b = entry; b != NULL; b = b->b_next) { basicblock *next = b->b_next; - while (next && next->b_iused == 0) { - next = next->b_next; + if (next) { + while (next->b_iused == 0 && next->b_next) { + next = next->b_next; + } + b->b_next = next; } - b->b_next = next; - } - while(g->g_entryblock && g->g_entryblock->b_iused == 0) { - g->g_entryblock = g->g_entryblock->b_next; } - for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { - assert(b->b_iused > 0); + for (basicblock *b = entry; b != NULL; b = b->b_next) { + if (b->b_iused == 0) { + continue; + } for (int i = 0; i < b->b_iused; i++) { struct instr *instr = &b->b_instr[i]; - if (HAS_TARGET(instr->i_opcode)) { + if (is_jump(instr) || is_block_push(instr)) { basicblock *target = instr->i_target; while (target->b_iused == 0) { target = target->b_next; } instr->i_target = target; - assert(instr->i_target && instr->i_target->b_iused > 0); } } } @@ -9403,141 +9142,119 @@ eliminate_empty_basic_blocks(cfg_builder *g) { * but has no impact on the generated line number events. */ static void -propagate_line_numbers(basicblock *entryblock) { - for (basicblock *b = entryblock; b != NULL; b = b->b_next) { - struct instr *last = basicblock_last_instr(b); - if (last == NULL) { +propagate_line_numbers(struct assembler *a) { + for (basicblock *b = a->a_entry; b != NULL; b = b->b_next) { + if (b->b_iused == 0) { continue; } - struct location prev_location = NO_LOCATION; + // Not a real instruction, only to store positions + // from previous instructions and propagate them. + struct instr prev_instr = { + .i_lineno = -1, + .i_col_offset = -1, + .i_end_lineno = -1, + .i_end_col_offset = -1, + }; for (int i = 0; i < b->b_iused; i++) { - if (b->b_instr[i].i_loc.lineno < 0) { - b->b_instr[i].i_loc = prev_location; + if (b->b_instr[i].i_lineno < 0) { + COPY_INSTR_LOC(prev_instr, b->b_instr[i]); } else { - prev_location = b->b_instr[i].i_loc; + COPY_INSTR_LOC(b->b_instr[i], prev_instr); } } - if (BB_HAS_FALLTHROUGH(b) && b->b_next->b_predecessors == 1) { + if (!b->b_nofallthrough && b->b_next->b_predecessors == 1) { assert(b->b_next->b_iused); - if (b->b_next->b_instr[0].i_loc.lineno < 0) { - b->b_next->b_instr[0].i_loc = prev_location; + if (b->b_next->b_instr[0].i_lineno < 0) { + COPY_INSTR_LOC(prev_instr, b->b_next->b_instr[0]); } } - if (is_jump(last)) { - basicblock *target = last->i_target; + if (is_jump(&b->b_instr[b->b_iused-1])) { + basicblock *target = b->b_instr[b->b_iused-1].i_target; if (target->b_predecessors == 1) { - if (target->b_instr[0].i_loc.lineno < 0) { - target->b_instr[0].i_loc = prev_location; + if (target->b_instr[0].i_lineno < 0) { + COPY_INSTR_LOC(prev_instr, target->b_instr[0]); } } } } } - -/* Calculate the actual jump target from the target_label */ -static int -calculate_jump_targets(basicblock *entryblock) -{ - int max_label = -1; - for (basicblock *b = entryblock; b != NULL; b = b->b_next) { - if (b->b_label > max_label) { - max_label = b->b_label; - } - } - size_t mapsize = sizeof(basicblock *) * (max_label + 1); - basicblock **label2block = (basicblock **)PyMem_Malloc(mapsize); - if (!label2block) { - PyErr_NoMemory(); - return -1; - } - memset(label2block, 0, mapsize); - for (basicblock *b = entryblock; b != NULL; b = b->b_next) { - if (b->b_label >= 0) { - label2block[b->b_label] = b; - } - } - for (basicblock *b = entryblock; b != NULL; b = b->b_next) { - for (int i = 0; i < b->b_iused; i++) { - struct instr *instr = &b->b_instr[i]; - assert(instr->i_target == NULL); - if (HAS_TARGET(instr->i_opcode)) { - int lbl = instr->i_oparg; - assert(lbl >= 0 && lbl <= max_label); - instr->i_target = label2block[lbl]; - assert(instr->i_target != NULL); - assert(instr->i_target->b_label == lbl); - } - } - } - PyMem_Free(label2block); - return 0; -} - /* Perform optimizations on a control flow graph. The consts object should still be in list form to allow new constants to be appended. - Code trasnformations that reduce code size initially fill the gaps with + All transformations keep the code size the same or smaller. + For those that reduce size, the gaps are initially filled with NOPs. Later those NOPs are removed. */ static int -optimize_cfg(cfg_builder *g, PyObject *consts, PyObject *const_cache) +optimize_cfg(struct compiler *c, struct assembler *a, PyObject *consts) { - assert(PyDict_CheckExact(const_cache)); - if (check_cfg(g) < 0) { - return -1; - } - eliminate_empty_basic_blocks(g); - for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { - if (inline_small_exit_blocks(b) < 0) { - return -1; - } - } - assert(no_empty_basic_blocks(g)); - for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { - if (optimize_basic_block(const_cache, b, consts)) { + for (basicblock *b = a->a_entry; b != NULL; b = b->b_next) { + if (optimize_basic_block(c, b, consts)) { return -1; } - remove_redundant_nops(b); + clean_basic_block(b); assert(b->b_predecessors == 0); } - for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { - if (inline_small_exit_blocks(b) < 0) { + for (basicblock *b = c->u->u_blocks; b != NULL; b = b->b_list) { + if (extend_block(b)) { return -1; } } - if (mark_reachable(g->g_entryblock)) { + if (mark_reachable(a)) { return -1; } /* Delete unreachable instructions */ - for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { + for (basicblock *b = a->a_entry; b != NULL; b = b->b_next) { if (b->b_predecessors == 0) { b->b_iused = 0; + b->b_nofallthrough = 0; } } - eliminate_empty_basic_blocks(g); - for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { - remove_redundant_nops(b); + eliminate_empty_basic_blocks(a->a_entry); + for (basicblock *b = a->a_entry; b != NULL; b = b->b_next) { + clean_basic_block(b); } - if (remove_redundant_jumps(g) < 0) { - return -1; + /* Delete jump instructions made redundant by previous step. If a non-empty + block ends with a jump instruction, check if the next non-empty block + reached through normal flow control is the target of that jump. If it + is, then the jump instruction is redundant and can be deleted. + */ + int maybe_empty_blocks = 0; + for (basicblock *b = a->a_entry; b != NULL; b = b->b_next) { + if (b->b_iused > 0) { + struct instr *b_last_instr = &b->b_instr[b->b_iused - 1]; + assert(!IS_ASSEMBLER_OPCODE(b_last_instr->i_opcode)); + if (b_last_instr->i_opcode == JUMP || + b_last_instr->i_opcode == JUMP_NO_INTERRUPT) { + if (b_last_instr->i_target == b->b_next) { + assert(b->b_next->b_iused); + b->b_nofallthrough = 0; + b_last_instr->i_opcode = NOP; + maybe_empty_blocks = 1; + } + } + } + } + if (maybe_empty_blocks) { + eliminate_empty_basic_blocks(a->a_entry); } return 0; } // Remove trailing unused constants. static int -trim_unused_consts(basicblock *entryblock, PyObject *consts) +trim_unused_consts(struct assembler *a, PyObject *consts) { assert(PyList_CheckExact(consts)); // The first constant may be docstring; keep it always. int max_const_index = 0; - for (basicblock *b = entryblock; b != NULL; b = b->b_next) { + for (basicblock *b = a->a_entry; b != NULL; b = b->b_next) { for (int i = 0; i < b->b_iused; i++) { if ((b->b_instr[i].i_opcode == LOAD_CONST || b->b_instr[i].i_opcode == KW_NAMES) && @@ -9559,11 +9276,11 @@ trim_unused_consts(basicblock *entryblock, PyObject *consts) static inline int is_exit_without_lineno(basicblock *b) { - if (!basicblock_exits_scope(b)) { + if (!b->b_exit) { return 0; } for (int i = 0; i < b->b_iused; i++) { - if (b->b_instr[i].i_loc.lineno >= 0) { + if (b->b_instr[i].i_lineno >= 0) { return 0; } } @@ -9580,22 +9297,20 @@ is_exit_without_lineno(basicblock *b) { * copy the line number from the sole predecessor block. */ static int -duplicate_exits_without_lineno(cfg_builder *g) +duplicate_exits_without_lineno(struct compiler *c) { /* Copy all exit blocks without line number that are targets of a jump. */ - basicblock *entryblock = g->g_entryblock; - for (basicblock *b = entryblock; b != NULL; b = b->b_next) { - struct instr *last = basicblock_last_instr(b); - if (last != NULL && is_jump(last)) { - basicblock *target = last->i_target; + for (basicblock *b = c->u->u_blocks; b != NULL; b = b->b_list) { + if (b->b_iused > 0 && is_jump(&b->b_instr[b->b_iused-1])) { + basicblock *target = b->b_instr[b->b_iused-1].i_target; if (is_exit_without_lineno(target) && target->b_predecessors > 1) { - basicblock *new_target = copy_basicblock(g, target); + basicblock *new_target = compiler_copy_block(c, target); if (new_target == NULL) { return -1; } - new_target->b_instr[0].i_loc = last->i_loc; - last->i_target = new_target; + COPY_INSTR_LOC(b->b_instr[b->b_iused-1], new_target->b_instr[0]); + b->b_instr[b->b_iused-1].i_target = new_target; target->b_predecessors--; new_target->b_predecessors = 1; new_target->b_next = target->b_next; @@ -9603,174 +9318,25 @@ duplicate_exits_without_lineno(cfg_builder *g) } } } - - assert(no_empty_basic_blocks(g)); - + /* Eliminate empty blocks */ + for (basicblock *b = c->u->u_blocks; b != NULL; b = b->b_list) { + while (b->b_next && b->b_next->b_iused == 0) { + b->b_next = b->b_next->b_next; + } + } /* Any remaining reachable exit blocks without line number can only be reached by * fall through, and thus can only have a single predecessor */ - for (basicblock *b = entryblock; b != NULL; b = b->b_next) { - if (BB_HAS_FALLTHROUGH(b) && b->b_next && b->b_iused > 0) { + for (basicblock *b = c->u->u_blocks; b != NULL; b = b->b_list) { + if (!b->b_nofallthrough && b->b_next && b->b_iused > 0) { if (is_exit_without_lineno(b->b_next)) { - struct instr *last = basicblock_last_instr(b); - assert(last != NULL); - b->b_next->b_instr[0].i_loc = last->i_loc; - } - } - } - return 0; -} - - -/* Access to compiler optimizations for unit tests. - * - * _PyCompile_OptimizeCfg takes an instruction list, constructs - * a CFG, optimizes it and converts back to an instruction list. - * - * An instruction list is a PyList where each item is either - * a tuple describing a single instruction: - * (opcode, oparg, lineno, end_lineno, col, end_col), or - * a jump target label marking the beginning of a basic block. - */ - -static int -instructions_to_cfg(PyObject *instructions, cfg_builder *g) -{ - assert(PyList_Check(instructions)); - - Py_ssize_t instr_size = PyList_GET_SIZE(instructions); - for (Py_ssize_t i = 0; i < instr_size; i++) { - PyObject *item = PyList_GET_ITEM(instructions, i); - if (PyLong_Check(item)) { - int lbl_id = PyLong_AsLong(item); - if (PyErr_Occurred()) { - return -1; - } - if (lbl_id <= 0 || lbl_id > instr_size) { - /* expect label in a reasonable range */ - PyErr_SetString(PyExc_ValueError, "label out of range"); - return -1; - } - jump_target_label lbl = {lbl_id}; - if (cfg_builder_use_label(g, lbl) < 0) { - return -1; - } - } - else { - if (!PyTuple_Check(item) || PyTuple_GET_SIZE(item) != 6) { - PyErr_SetString(PyExc_ValueError, "expected a 6-tuple"); - return -1; - } - int opcode = PyLong_AsLong(PyTuple_GET_ITEM(item, 0)); - if (PyErr_Occurred()) { - return -1; - } - int oparg = PyLong_AsLong(PyTuple_GET_ITEM(item, 1)); - if (PyErr_Occurred()) { - return -1; - } - struct location loc; - loc.lineno = PyLong_AsLong(PyTuple_GET_ITEM(item, 2)); - if (PyErr_Occurred()) { - return -1; - } - loc.end_lineno = PyLong_AsLong(PyTuple_GET_ITEM(item, 3)); - if (PyErr_Occurred()) { - return -1; - } - loc.col_offset = PyLong_AsLong(PyTuple_GET_ITEM(item, 4)); - if (PyErr_Occurred()) { - return -1; - } - loc.end_col_offset = PyLong_AsLong(PyTuple_GET_ITEM(item, 5)); - if (PyErr_Occurred()) { - return -1; - } - if (!cfg_builder_addop(g, opcode, oparg, loc)) { - return -1; + assert(b->b_next->b_iused > 0); + COPY_INSTR_LOC(b->b_instr[b->b_iused-1], b->b_next->b_instr[0]); } } } return 0; } -static PyObject * -cfg_to_instructions(cfg_builder *g) -{ - PyObject *instructions = PyList_New(0); - if (instructions == NULL) { - return NULL; - } - int lbl = 1; - for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { - b->b_label = lbl++; - } - for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { - PyObject *lbl = PyLong_FromLong(b->b_label); - if (lbl == NULL) { - goto error; - } - if (PyList_Append(instructions, lbl) != 0) { - Py_DECREF(lbl); - goto error; - } - Py_DECREF(lbl); - for (int i = 0; i < b->b_iused; i++) { - struct instr *instr = &b->b_instr[i]; - struct location loc = instr->i_loc; - int arg = HAS_TARGET(instr->i_opcode) ? instr->i_target->b_label : instr->i_oparg; - PyObject *inst_tuple = Py_BuildValue( - "(iiiiii)", instr->i_opcode, arg, - loc.lineno, loc.end_lineno, - loc.col_offset, loc.end_col_offset); - if (inst_tuple == NULL) { - goto error; - } - - if (PyList_Append(instructions, inst_tuple) != 0) { - Py_DECREF(inst_tuple); - goto error; - } - Py_DECREF(inst_tuple); - } - } - - return instructions; -error: - Py_DECREF(instructions); - return NULL; -} - - -PyObject * -_PyCompile_OptimizeCfg(PyObject *instructions, PyObject *consts) -{ - PyObject *res = NULL; - PyObject *const_cache = NULL; - cfg_builder g; - memset(&g, 0, sizeof(cfg_builder)); - if (cfg_builder_init(&g) < 0) { - goto error; - } - if (instructions_to_cfg(instructions, &g) < 0) { - goto error; - } - const_cache = PyDict_New(); - if (const_cache == NULL) { - goto error; - } - if (calculate_jump_targets(g.g_entryblock)) { - goto error; - } - if (optimize_cfg(&g, consts, const_cache) < 0) { - goto error; - } - res = cfg_to_instructions(&g); -error: - Py_XDECREF(const_cache); - cfg_builder_fini(&g); - return res; -} - /* Retained for API compatibility. * Optimization is now done in optimize_cfg */ diff --git a/Python/condvar.h b/Python/condvar.h index 4ddc5311cf8fad..e5df7ff132802f 100644 --- a/Python/condvar.h +++ b/Python/condvar.h @@ -68,9 +68,9 @@ void _PyThread_cond_after(long long us, struct timespec *abs); Py_LOCAL_INLINE(int) PyCOND_TIMEDWAIT(PyCOND_T *cond, PyMUTEX_T *mut, long long us) { - struct timespec abs_timeout; - _PyThread_cond_after(us, &abs_timeout); - int ret = pthread_cond_timedwait(cond, mut, &abs_timeout); + struct timespec abs; + _PyThread_cond_after(us, &abs); + int ret = pthread_cond_timedwait(cond, mut, &abs); if (ret == ETIMEDOUT) { return 1; } diff --git a/Python/dup2.c b/Python/dup2.c index a1df0492099163..7c6bbfce11dbf8 100644 --- a/Python/dup2.c +++ b/Python/dup2.c @@ -11,7 +11,6 @@ * Return fd2 if all went well; return BADEXIT otherwise. */ -#include <errno.h> #include <fcntl.h> #include <unistd.h> @@ -21,17 +20,12 @@ int dup2(int fd1, int fd2) { if (fd1 != fd2) { -#ifdef F_DUPFD if (fcntl(fd1, F_GETFL) < 0) return BADEXIT; if (fcntl(fd2, F_GETFL) >= 0) close(fd2); if (fcntl(fd1, F_DUPFD, fd2) < 0) return BADEXIT; -#else - errno = ENOTSUP; - return BADEXIT; -#endif } return fd2; } diff --git a/Python/errors.c b/Python/errors.c index 2aa748c60c3704..b6b5d9b046ce85 100644 --- a/Python/errors.c +++ b/Python/errors.c @@ -1229,8 +1229,8 @@ _PyErr_InitTypes(PyInterpreterState *interp) } if (UnraisableHookArgsType.tp_name == NULL) { - if (_PyStructSequence_InitBuiltin(&UnraisableHookArgsType, - &UnraisableHookArgs_desc) < 0) { + if (PyStructSequence_InitType2(&UnraisableHookArgsType, + &UnraisableHookArgs_desc) < 0) { return _PyStatus_ERR("failed to initialize UnraisableHookArgs type"); } } diff --git a/Python/fileutils.c b/Python/fileutils.c index fb1e5ef9a03026..7e5d01f6e63d3b 100644 --- a/Python/fileutils.c +++ b/Python/fileutils.c @@ -2366,7 +2366,7 @@ _Py_dup(int fd) return -1; } -#elif HAVE_DUP +#else Py_BEGIN_ALLOW_THREADS _Py_BEGIN_SUPPRESS_IPH fd = dup(fd); @@ -2383,10 +2383,6 @@ _Py_dup(int fd) _Py_END_SUPPRESS_IPH return -1; } -#else - errno = ENOTSUP; - PyErr_SetFromErrno(PyExc_OSError); - return -1; #endif return fd; } diff --git a/Python/frame.c b/Python/frame.c index 14464df0a8d506..3573f54ad63e9b 100644 --- a/Python/frame.c +++ b/Python/frame.c @@ -3,7 +3,7 @@ #include "Python.h" #include "frameobject.h" -#include "pycore_code.h" // stats +#include "pycore_code.h" // stats #include "pycore_frame.h" #include "pycore_object.h" // _PyObject_GC_UNTRACK() #include "opcode.h" @@ -13,7 +13,7 @@ _PyFrame_Traverse(_PyInterpreterFrame *frame, visitproc visit, void *arg) { Py_VISIT(frame->frame_obj); Py_VISIT(frame->f_locals); - Py_VISIT(frame->f_funcobj); + Py_VISIT(frame->f_func); Py_VISIT(frame->f_code); /* locals */ PyObject **locals = _PyFrame_GetLocalsArray(frame); @@ -68,13 +68,9 @@ take_ownership(PyFrameObject *f, _PyInterpreterFrame *frame) f->f_frame = frame; frame->owner = FRAME_OWNED_BY_FRAME_OBJECT; assert(f->f_back == NULL); - _PyInterpreterFrame *prev = frame->previous; - while (prev && _PyFrame_IsIncomplete(prev)) { - prev = prev->previous; - } - if (prev) { + if (frame->previous != NULL) { /* Link PyFrameObjects.f_back and remove link through _PyInterpreterFrame.previous */ - PyFrameObject *back = _PyFrame_GetFrameObject(prev); + PyFrameObject *back = _PyFrame_GetFrameObject(frame->previous); if (back == NULL) { /* Memory error here. */ assert(PyErr_ExceptionMatches(PyExc_MemoryError)); @@ -114,10 +110,26 @@ _PyFrame_Clear(_PyInterpreterFrame *frame) } Py_XDECREF(frame->frame_obj); Py_XDECREF(frame->f_locals); - Py_DECREF(frame->f_funcobj); + Py_DECREF(frame->f_func); Py_DECREF(frame->f_code); } +/* Consumes reference to func */ +_PyInterpreterFrame * +_PyFrame_Push(PyThreadState *tstate, PyFunctionObject *func) +{ + PyCodeObject *code = (PyCodeObject *)func->func_code; + size_t size = code->co_nlocalsplus + code->co_stacksize + FRAME_SPECIALS_SIZE; + CALL_STAT_INC(frames_pushed); + _PyInterpreterFrame *new_frame = _PyThreadState_BumpFramePointer(tstate, size); + if (new_frame == NULL) { + Py_DECREF(func); + return NULL; + } + _PyFrame_InitializeSpecials(new_frame, func, NULL, code->co_nlocalsplus); + return new_frame; +} + int _PyInterpreterFrame_GetLine(_PyInterpreterFrame *frame) { diff --git a/Python/getargs.c b/Python/getargs.c index f0b84b8338ddc3..fb4a5124beab8a 100644 --- a/Python/getargs.c +++ b/Python/getargs.c @@ -1502,50 +1502,6 @@ _PyArg_VaParseTupleAndKeywordsFast_SizeT(PyObject *args, PyObject *keywords, return retval; } -static void -error_unexpected_keyword_arg(PyObject *kwargs, PyObject *kwnames, PyObject *kwtuple, const char *fname) -{ - /* make sure there are no extraneous keyword arguments */ - Py_ssize_t j = 0; - while (1) { - PyObject *keyword; - if (kwargs != NULL) { - if (!PyDict_Next(kwargs, &j, &keyword, NULL)) - break; - } - else { - if (j >= PyTuple_GET_SIZE(kwnames)) - break; - keyword = PyTuple_GET_ITEM(kwnames, j); - j++; - } - if (!PyUnicode_Check(keyword)) { - PyErr_SetString(PyExc_TypeError, - "keywords must be strings"); - return; - } - - int match = PySequence_Contains(kwtuple, keyword); - if (match <= 0) { - if (!match) { - PyErr_Format(PyExc_TypeError, - "'%S' is an invalid keyword " - "argument for %.200s%s", - keyword, - (fname == NULL) ? "this function" : fname, - (fname == NULL) ? "" : "()"); - } - return; - } - } - /* Something wrong happened. There are extraneous keyword arguments, - * but we don't know what. And we don't bother. */ - PyErr_Format(PyExc_TypeError, - "invalid keyword argument for %.200s%s", - (fname == NULL) ? "this function" : fname, - (fname == NULL) ? "" : "()"); -} - int PyArg_ValidateKeywordArguments(PyObject *kwargs) { @@ -1834,13 +1790,6 @@ vgetargskeywords(PyObject *args, PyObject *kwargs, const char *format, return cleanreturn(0, &freelist); } } - /* Something wrong happened. There are extraneous keyword arguments, - * but we don't know what. And we don't bother. */ - PyErr_Format(PyExc_TypeError, - "invalid keyword argument for %.200s%s", - (fname == NULL) ? "this function" : fname, - (fname == NULL) ? "" : "()"); - return cleanreturn(0, &freelist); } return cleanreturn(1, &freelist); @@ -1851,178 +1800,118 @@ vgetargskeywords(PyObject *args, PyObject *kwargs, const char *format, static struct _PyArg_Parser *static_arg_parsers = NULL; static int -scan_keywords(const char * const *keywords, int *ptotal, int *pposonly) +parser_init(struct _PyArg_Parser *parser) { + const char * const *keywords; + const char *format, *msg; + int i, len, min, max, nkw; + PyObject *kwtuple; + + assert(parser->keywords != NULL); + if (parser->kwtuple != NULL) { + return 1; + } + + keywords = parser->keywords; /* scan keywords and count the number of positional-only parameters */ - int i; for (i = 0; keywords[i] && !*keywords[i]; i++) { } - *pposonly = i; - + parser->pos = i; /* scan keywords and get greatest possible nbr of args */ for (; keywords[i]; i++) { if (!*keywords[i]) { PyErr_SetString(PyExc_SystemError, "Empty keyword parameter name"); - return -1; + return 0; } } - *ptotal = i; - return 0; -} + len = i; -static int -parse_format(const char *format, int total, int npos, - const char **pfname, const char **pcustommsg, - int *pmin, int *pmax) -{ - /* grab the function name or custom error msg first (mutually exclusive) */ - const char *custommsg; - const char *fname = strchr(format, ':'); - if (fname) { - fname++; - custommsg = NULL; - } - else { - custommsg = strchr(format,';'); - if (custommsg) { - custommsg++; + format = parser->format; + if (format) { + /* grab the function name or custom error msg first (mutually exclusive) */ + parser->fname = strchr(parser->format, ':'); + if (parser->fname) { + parser->fname++; + parser->custom_msg = NULL; } - } - - int min = INT_MAX; - int max = INT_MAX; - for (int i = 0; i < total; i++) { - if (*format == '|') { - if (min != INT_MAX) { - PyErr_SetString(PyExc_SystemError, - "Invalid format string (| specified twice)"); - return -1; + else { + parser->custom_msg = strchr(parser->format,';'); + if (parser->custom_msg) + parser->custom_msg++; + } + + min = max = INT_MAX; + for (i = 0; i < len; i++) { + if (*format == '|') { + if (min != INT_MAX) { + PyErr_SetString(PyExc_SystemError, + "Invalid format string (| specified twice)"); + return 0; + } + if (max != INT_MAX) { + PyErr_SetString(PyExc_SystemError, + "Invalid format string ($ before |)"); + return 0; + } + min = i; + format++; } - if (max != INT_MAX) { - PyErr_SetString(PyExc_SystemError, - "Invalid format string ($ before |)"); - return -1; + if (*format == '$') { + if (max != INT_MAX) { + PyErr_SetString(PyExc_SystemError, + "Invalid format string ($ specified twice)"); + return 0; + } + if (i < parser->pos) { + PyErr_SetString(PyExc_SystemError, + "Empty parameter name after $"); + return 0; + } + max = i; + format++; } - min = i; - format++; - } - if (*format == '$') { - if (max != INT_MAX) { - PyErr_SetString(PyExc_SystemError, - "Invalid format string ($ specified twice)"); - return -1; + if (IS_END_OF_FORMAT(*format)) { + PyErr_Format(PyExc_SystemError, + "More keyword list entries (%d) than " + "format specifiers (%d)", len, i); + return 0; } - if (i < npos) { - PyErr_SetString(PyExc_SystemError, - "Empty parameter name after $"); - return -1; + + msg = skipitem(&format, NULL, 0); + if (msg) { + PyErr_Format(PyExc_SystemError, "%s: '%s'", msg, + format); + return 0; } - max = i; - format++; - } - if (IS_END_OF_FORMAT(*format)) { - PyErr_Format(PyExc_SystemError, - "More keyword list entries (%d) than " - "format specifiers (%d)", total, i); - return -1; } + parser->min = Py_MIN(min, len); + parser->max = Py_MIN(max, len); - const char *msg = skipitem(&format, NULL, 0); - if (msg) { - PyErr_Format(PyExc_SystemError, "%s: '%s'", msg, - format); - return -1; + if (!IS_END_OF_FORMAT(*format) && (*format != '|') && (*format != '$')) { + PyErr_Format(PyExc_SystemError, + "more argument specifiers than keyword list entries " + "(remaining format:'%s')", format); + return 0; } } - min = Py_MIN(min, total); - max = Py_MIN(max, total); - - if (!IS_END_OF_FORMAT(*format) && (*format != '|') && (*format != '$')) { - PyErr_Format(PyExc_SystemError, - "more argument specifiers than keyword list entries " - "(remaining format:'%s')", format); - return -1; - } - - *pfname = fname; - *pcustommsg = custommsg; - *pmin = min; - *pmax = max; - return 0; -} -static PyObject * -new_kwtuple(const char * const *keywords, int total, int pos) -{ - int nkw = total - pos; - PyObject *kwtuple = PyTuple_New(nkw); + nkw = len - parser->pos; + kwtuple = PyTuple_New(nkw); if (kwtuple == NULL) { - return NULL; + return 0; } - keywords += pos; - for (int i = 0; i < nkw; i++) { + keywords = parser->keywords + parser->pos; + for (i = 0; i < nkw; i++) { PyObject *str = PyUnicode_FromString(keywords[i]); if (str == NULL) { Py_DECREF(kwtuple); - return NULL; + return 0; } PyUnicode_InternInPlace(&str); PyTuple_SET_ITEM(kwtuple, i, str); } - return kwtuple; -} - -static int -_parser_init(struct _PyArg_Parser *parser) -{ - const char * const *keywords = parser->keywords; - assert(keywords != NULL); - assert(parser->pos == 0 && - (parser->format == NULL || parser->fname == NULL) && - parser->custom_msg == NULL && - parser->min == 0 && - parser->max == 0); - - int len, pos; - if (scan_keywords(keywords, &len, &pos) < 0) { - return 0; - } - - const char *fname, *custommsg = NULL; - int min = 0, max = 0; - if (parser->format) { - assert(parser->fname == NULL); - if (parse_format(parser->format, len, pos, - &fname, &custommsg, &min, &max) < 0) { - return 0; - } - } - else { - assert(parser->fname != NULL); - fname = parser->fname; - } - - int owned; - PyObject *kwtuple = parser->kwtuple; - if (kwtuple == NULL) { - kwtuple = new_kwtuple(keywords, len, pos); - if (kwtuple == NULL) { - return 0; - } - owned = 1; - } - else { - owned = 0; - } - - parser->pos = pos; - parser->fname = fname; - parser->custom_msg = custommsg; - parser->min = min; - parser->max = max; parser->kwtuple = kwtuple; - parser->initialized = owned ? 1 : -1; assert(parser->next == NULL); parser->next = static_arg_parsers; @@ -2030,34 +1919,10 @@ _parser_init(struct _PyArg_Parser *parser) return 1; } -static int -parser_init(struct _PyArg_Parser *parser) -{ - // volatile as it can be modified by other threads - // and should not be optimized or reordered by compiler - if (*((volatile int *)&parser->initialized)) { - assert(parser->kwtuple != NULL); - return 1; - } - PyThread_acquire_lock(_PyRuntime.getargs.mutex, WAIT_LOCK); - // Check again if another thread initialized the parser - // while we were waiting for the lock. - if (*((volatile int *)&parser->initialized)) { - assert(parser->kwtuple != NULL); - PyThread_release_lock(_PyRuntime.getargs.mutex); - return 1; - } - int ret = _parser_init(parser); - PyThread_release_lock(_PyRuntime.getargs.mutex); - return ret; -} - static void parser_clear(struct _PyArg_Parser *parser) { - if (parser->initialized == 1) { - Py_CLEAR(parser->kwtuple); - } + Py_CLEAR(parser->kwtuple); } static PyObject* @@ -2184,7 +2049,6 @@ vgetargskeywordsfast_impl(PyObject *const *args, Py_ssize_t nargs, } format = parser->format; - assert(format != NULL || len == 0); /* convert tuple args and keyword args in same loop, using kwtuple to drive process */ for (i = 0; i < len; i++) { if (*format == '|') { @@ -2268,6 +2132,7 @@ vgetargskeywordsfast_impl(PyObject *const *args, Py_ssize_t nargs, assert(IS_END_OF_FORMAT(*format) || (*format == '|') || (*format == '$')); if (nkwargs > 0) { + Py_ssize_t j; /* make sure there are no arguments given by name and position */ for (i = pos; i < nargs; i++) { keyword = PyTuple_GET_ITEM(kwtuple, i - pos); @@ -2291,9 +2156,34 @@ vgetargskeywordsfast_impl(PyObject *const *args, Py_ssize_t nargs, return cleanreturn(0, &freelist); } } + /* make sure there are no extraneous keyword arguments */ + j = 0; + while (1) { + int match; + if (kwargs != NULL) { + if (!PyDict_Next(kwargs, &j, &keyword, NULL)) + break; + } + else { + if (j >= PyTuple_GET_SIZE(kwnames)) + break; + keyword = PyTuple_GET_ITEM(kwnames, j); + j++; + } - error_unexpected_keyword_arg(kwargs, kwnames, kwtuple, parser->fname); - return cleanreturn(0, &freelist); + match = PySequence_Contains(kwtuple, keyword); + if (match <= 0) { + if (!match) { + PyErr_Format(PyExc_TypeError, + "'%S' is an invalid keyword " + "argument for %.200s%s", + keyword, + (parser->fname == NULL) ? "this function" : parser->fname, + (parser->fname == NULL) ? "" : "()"); + } + return cleanreturn(0, &freelist); + } + } } return cleanreturn(1, &freelist); @@ -2467,6 +2357,7 @@ _PyArg_UnpackKeywords(PyObject *const *args, Py_ssize_t nargs, } if (nkwargs > 0) { + Py_ssize_t j; /* make sure there are no arguments given by name and position */ for (i = posonly; i < nargs; i++) { keyword = PyTuple_GET_ITEM(kwtuple, i - posonly); @@ -2490,9 +2381,34 @@ _PyArg_UnpackKeywords(PyObject *const *args, Py_ssize_t nargs, return NULL; } } + /* make sure there are no extraneous keyword arguments */ + j = 0; + while (1) { + int match; + if (kwargs != NULL) { + if (!PyDict_Next(kwargs, &j, &keyword, NULL)) + break; + } + else { + if (j >= PyTuple_GET_SIZE(kwnames)) + break; + keyword = PyTuple_GET_ITEM(kwnames, j); + j++; + } - error_unexpected_keyword_arg(kwargs, kwnames, kwtuple, parser->fname); - return NULL; + match = PySequence_Contains(kwtuple, keyword); + if (match <= 0) { + if (!match) { + PyErr_Format(PyExc_TypeError, + "'%S' is an invalid keyword " + "argument for %.200s%s", + keyword, + (parser->fname == NULL) ? "this function" : parser->fname, + (parser->fname == NULL) ? "" : "()"); + } + return NULL; + } + } } return buf; @@ -2621,8 +2537,35 @@ _PyArg_UnpackKeywordsWithVararg(PyObject *const *args, Py_ssize_t nargs, } if (nkwargs > 0) { - error_unexpected_keyword_arg(kwargs, kwnames, kwtuple, parser->fname); - goto exit; + Py_ssize_t j; + /* make sure there are no extraneous keyword arguments */ + j = 0; + while (1) { + int match; + if (kwargs != NULL) { + if (!PyDict_Next(kwargs, &j, &keyword, NULL)) + break; + } + else { + if (j >= PyTuple_GET_SIZE(kwnames)) + break; + keyword = PyTuple_GET_ITEM(kwnames, j); + j++; + } + + match = PySequence_Contains(kwtuple, keyword); + if (match <= 0) { + if (!match) { + PyErr_Format(PyExc_TypeError, + "'%S' is an invalid keyword " + "argument for %.200s%s", + keyword, + (parser->fname == NULL) ? "this function" : parser->fname, + (parser->fname == NULL) ? "" : "()"); + } + goto exit; + } + } } return buf; @@ -2698,7 +2641,9 @@ skipitem(const char **p_format, va_list *p_va, int flags) if (*format == '#') { if (p_va != NULL) { if (!(flags & FLAG_SIZE_T)) { - return "PY_SSIZE_T_CLEAN macro must be defined for '#' formats"; + PyErr_SetString(PyExc_SystemError, + "PY_SSIZE_T_CLEAN macro must be defined for '#' formats"); + return NULL; } (void) va_arg(*p_va, Py_ssize_t *); } diff --git a/Python/getopt.c b/Python/getopt.c index 4135bf1446ecfc..fcea60759d12cd 100644 --- a/Python/getopt.c +++ b/Python/getopt.c @@ -44,12 +44,8 @@ static const wchar_t *opt_ptr = L""; #define SHORT_OPTS L"bBc:dEhiIJm:OPqRsStuvVW:xX:?" static const _PyOS_LongOption longopts[] = { - /* name, has_arg, val (used in switch in initconfig.c) */ {L"check-hash-based-pycs", 1, 0}, - {L"help-all", 0, 1}, - {L"help-env", 0, 2}, - {L"help-xoptions", 0, 3}, - {NULL, 0, -1}, /* sentinel */ + {NULL, 0, 0}, }; diff --git a/Python/import.c b/Python/import.c index 54c21fa4a56aa9..4b6d6d16821a94 100644 --- a/Python/import.c +++ b/Python/import.c @@ -48,7 +48,7 @@ module _imp PyStatus _PyImportZip_Init(PyThreadState *tstate) { - PyObject *path_hooks; + PyObject *path_hooks, *zipimport; int err = 0; path_hooks = PySys_GetObject("path_hooks"); @@ -63,22 +63,32 @@ _PyImportZip_Init(PyThreadState *tstate) PySys_WriteStderr("# installing zipimport hook\n"); } - PyObject *zipimporter = _PyImport_GetModuleAttrString("zipimport", "zipimporter"); - if (zipimporter == NULL) { - _PyErr_Clear(tstate); /* No zipimporter object -- okay */ + zipimport = PyImport_ImportModule("zipimport"); + if (zipimport == NULL) { + _PyErr_Clear(tstate); /* No zip import module -- okay */ if (verbose) { - PySys_WriteStderr("# can't import zipimport.zipimporter\n"); + PySys_WriteStderr("# can't import zipimport\n"); } } else { - /* sys.path_hooks.insert(0, zipimporter) */ - err = PyList_Insert(path_hooks, 0, zipimporter); - Py_DECREF(zipimporter); - if (err < 0) { - goto error; + PyObject *zipimporter = PyObject_GetAttr(zipimport, &_Py_ID(zipimporter)); + Py_DECREF(zipimport); + if (zipimporter == NULL) { + _PyErr_Clear(tstate); /* No zipimporter object -- okay */ + if (verbose) { + PySys_WriteStderr("# can't import zipimport.zipimporter\n"); + } } - if (verbose) { - PySys_WriteStderr("# installed zipimport hook\n"); + else { + /* sys.path_hooks.insert(0, zipimporter) */ + err = PyList_Insert(path_hooks, 0, zipimporter); + Py_DECREF(zipimporter); + if (err < 0) { + goto error; + } + if (verbose) { + PySys_WriteStderr("# installed zipimport hook\n"); + } } } @@ -2622,37 +2632,6 @@ PyImport_AppendInittab(const char *name, PyObject* (*initfunc)(void)) return PyImport_ExtendInittab(newtab); } - -PyObject * -_PyImport_GetModuleAttr(PyObject *modname, PyObject *attrname) -{ - PyObject *mod = PyImport_Import(modname); - if (mod == NULL) { - return NULL; - } - PyObject *result = PyObject_GetAttr(mod, attrname); - Py_DECREF(mod); - return result; -} - -PyObject * -_PyImport_GetModuleAttrString(const char *modname, const char *attrname) -{ - PyObject *pmodname = PyUnicode_FromString(modname); - if (pmodname == NULL) { - return NULL; - } - PyObject *pattrname = PyUnicode_FromString(attrname); - if (pattrname == NULL) { - Py_DECREF(pmodname); - return NULL; - } - PyObject *result = _PyImport_GetModuleAttr(pmodname, pattrname); - Py_DECREF(pattrname); - Py_DECREF(pmodname); - return result; -} - #ifdef __cplusplus } #endif diff --git a/Python/initconfig.c b/Python/initconfig.c index f18ec4068bc443..5c9c7ee41e7537 100644 --- a/Python/initconfig.c +++ b/Python/initconfig.c @@ -3,7 +3,6 @@ #include "pycore_getopt.h" // _PyOS_GetOpt() #include "pycore_initconfig.h" // _PyStatus_OK() #include "pycore_interp.h" // _PyInterpreterState.runtime -#include "pycore_long.h" // _PY_LONG_MAX_STR_DIGITS_THRESHOLD #include "pycore_pathconfig.h" // _Py_path_config #include "pycore_pyerrors.h" // _PyErr_Fetch() #include "pycore_pylifecycle.h" // _Py_PreInitializeFromConfig() @@ -29,10 +28,9 @@ static const char usage_line[] = "usage: %ls [option] ... [-c cmd | -m mod | file | -] [arg] ...\n"; -/* Long help message */ -/* Lines sorted by option name; keep in sync with usage_envvars* below */ -static const char usage_help[] = "\ -Options (and corresponding environment variables):\n\ +/* Long usage message, split into parts < 512 bytes */ +static const char usage_1[] = "\ +Options and arguments (and corresponding environment variables):\n\ -b : issue warnings about str(bytes_instance), str(bytearray_instance)\n\ and comparing bytes/bytearray with str. (-bb: issue errors)\n\ -B : don't write .pyc files on import; also PYTHONDONTWRITEBYTECODE=x\n\ @@ -41,6 +39,8 @@ Options (and corresponding environment variables):\n\ debug builds); also PYTHONDEBUG=x\n\ -E : ignore PYTHON* environment variables (such as PYTHONPATH)\n\ -h : print this help message and exit (also -? or --help)\n\ +"; +static const char usage_2[] = "\ -i : inspect interactively after running script; forces a prompt even\n\ if stdin does not appear to be a terminal; also PYTHONINSPECT=x\n\ -I : isolate Python from the user's environment (implies -E and -s)\n\ @@ -53,6 +53,8 @@ Options (and corresponding environment variables):\n\ -q : don't print version and copyright messages on interactive startup\n\ -s : don't add user site directory to sys.path; also PYTHONNOUSERSITE\n\ -S : don't imply 'import site' on initialization\n\ +"; +static const char usage_3[] = "\ -u : force the stdout and stderr streams to be unbuffered;\n\ this option has no effect on stdin; also PYTHONUNBUFFERED=x\n\ -v : verbose (trace import statements); also PYTHONVERBOSE=x\n\ @@ -62,81 +64,55 @@ Options (and corresponding environment variables):\n\ -W arg : warning control; arg is action:message:category:module:lineno\n\ also PYTHONWARNINGS=arg\n\ -x : skip first line of source, allowing use of non-Unix forms of #!cmd\n\ --X opt : set implementation-specific option\n\ +-X opt : set implementation-specific option. The following options are available:\n\ + -X faulthandler: enable faulthandler\n\ + -X showrefcount: output the total reference count and number of used\n\ + memory blocks when the program finishes or after each statement in the\n\ + interactive interpreter. This only works on debug builds\n\ + -X tracemalloc: start tracing Python memory allocations using the\n\ + tracemalloc module. By default, only the most recent frame is stored in a\n\ + traceback of a trace. Use -X tracemalloc=NFRAME to start tracing with a\n\ + traceback limit of NFRAME frames\n\ + -X importtime: show how long each import takes. It shows module name,\n\ + cumulative time (including nested imports) and self time (excluding\n\ + nested imports). Note that its output may be broken in multi-threaded\n\ + application. Typical usage is python3 -X importtime -c 'import asyncio'\n\ + -X dev: enable CPython's \"development mode\", introducing additional runtime\n\ + checks which are too expensive to be enabled by default. Effect of the\n\ + developer mode:\n\ + * Add default warning filter, as -W default\n\ + * Install debug hooks on memory allocators: see the PyMem_SetupDebugHooks()\n\ + C function\n\ + * Enable the faulthandler module to dump the Python traceback on a crash\n\ + * Enable asyncio debug mode\n\ + * Set the dev_mode attribute of sys.flags to True\n\ + * io.IOBase destructor logs close() exceptions\n\ + -X utf8: enable UTF-8 mode for operating system interfaces, overriding the default\n\ + locale-aware mode. -X utf8=0 explicitly disables UTF-8 mode (even when it would\n\ + otherwise activate automatically)\n\ + -X pycache_prefix=PATH: enable writing .pyc files to a parallel tree rooted at the\n\ + given directory instead of to the code tree\n\ + -X warn_default_encoding: enable opt-in EncodingWarning for 'encoding=None'\n\ + -X no_debug_ranges: disable the inclusion of the tables mapping extra location \n\ + information (end line, start column offset and end column offset) to every \n\ + instruction in code objects. This is useful when smaller code objects and pyc \n\ + files are desired as well as suppressing the extra visual location indicators \n\ + when the interpreter displays tracebacks.\n\ + -X frozen_modules=[on|off]: whether or not frozen modules should be used.\n\ + The default is \"on\" (or \"off\" if you are running a local build).\n\ --check-hash-based-pycs always|default|never:\n\ - control how Python invalidates hash-based .pyc files\n\ ---help-env : print help about Python environment variables and exit\n\ ---help-xoptions : print help about implementation-specific -X options and exit\n\ ---help-all : print complete help information and exit\n\ -Arguments:\n\ + control how Python invalidates hash-based .pyc files\n\ +"; +static const char usage_4[] = "\ file : program read from script file\n\ - : program read from stdin (default; interactive mode if a tty)\n\ -arg ...: arguments passed to program in sys.argv[1:]\n\ +arg ...: arguments passed to program in sys.argv[1:]\n\n\ +Other environment variables:\n\ +PYTHONSTARTUP: file executed on interactive startup (no default)\n\ +PYTHONPATH : '%lc'-separated list of directories prefixed to the\n\ + default module search path. The result is sys.path.\n\ "; - -static const char usage_xoptions[] = "\ -The following implementation-specific options are available:\n\ -\n\ --X faulthandler: enable faulthandler\n\ -\n\ --X showrefcount: output the total reference count and number of used\n\ - memory blocks when the program finishes or after each statement in the\n\ - interactive interpreter. This only works on debug builds\n\ -\n\ --X tracemalloc: start tracing Python memory allocations using the\n\ - tracemalloc module. By default, only the most recent frame is stored in a\n\ - traceback of a trace. Use -X tracemalloc=NFRAME to start tracing with a\n\ - traceback limit of NFRAME frames\n\ -\n\ --X importtime: show how long each import takes. It shows module name,\n\ - cumulative time (including nested imports) and self time (excluding\n\ - nested imports). Note that its output may be broken in multi-threaded\n\ - application. Typical usage is python3 -X importtime -c 'import asyncio'\n\ -\n\ --X dev: enable CPython's \"development mode\", introducing additional runtime\n\ - checks which are too expensive to be enabled by default. Effect of the\n\ - developer mode:\n\ - * Add default warning filter, as -W default\n\ - * Install debug hooks on memory allocators: see the PyMem_SetupDebugHooks()\n\ - C function\n\ - * Enable the faulthandler module to dump the Python traceback on a crash\n\ - * Enable asyncio debug mode\n\ - * Set the dev_mode attribute of sys.flags to True\n\ - * io.IOBase destructor logs close() exceptions\n\ -\n\ --X utf8: enable UTF-8 mode for operating system interfaces, overriding the default\n\ - locale-aware mode. -X utf8=0 explicitly disables UTF-8 mode (even when it would\n\ - otherwise activate automatically)\n\ -\n\ --X pycache_prefix=PATH: enable writing .pyc files to a parallel tree rooted at the\n\ - given directory instead of to the code tree\n\ -\n\ --X warn_default_encoding: enable opt-in EncodingWarning for 'encoding=None'\n\ -\n\ --X no_debug_ranges: disable the inclusion of the tables mapping extra location \n\ - information (end line, start column offset and end column offset) to every \n\ - instruction in code objects. This is useful when smaller code objects and pyc \n\ - files are desired as well as suppressing the extra visual location indicators \n\ - when the interpreter displays tracebacks.\n\ -\n\ --X perf: activate support for the Linux \"perf\" profiler by activating the \"perf\"\n\ - trampoline. When this option is activated, the Linux \"perf\" profiler will be \n\ - able to report Python calls. This option is only available on some platforms and will \n\ - do nothing if is not supported on the current system. The default value is \"off\".\n\ -\n\ --X frozen_modules=[on|off]: whether or not frozen modules should be used.\n\ - The default is \"on\" (or \"off\" if you are running a local build).\n\ -\n\ --X int_max_str_digits=number: limit the size of int<->str conversions.\n\ - This helps avoid denial of service attacks when parsing untrusted data.\n\ - The default is sys.int_info.default_max_str_digits. 0 disables."; - -/* Envvars that don't have equivalent command-line options are listed first */ -static const char usage_envvars[] = -"Environment variables that change behavior:\n" -"PYTHONSTARTUP: file executed on interactive startup (no default)\n" -"PYTHONPATH : '%lc'-separated list of directories prefixed to the\n" -" default module search path. The result is sys.path.\n" +static const char usage_5[] = "PYTHONSAFEPATH: don't prepend a potentially unsafe path to sys.path.\n" "PYTHONHOME : alternate <prefix> directory (or <prefix>%lc<exec_prefix>).\n" " The default module search path uses %s.\n" @@ -144,15 +120,12 @@ static const char usage_envvars[] = "PYTHONCASEOK : ignore case in 'import' statements (Windows).\n" "PYTHONUTF8: if set to 1, enable the UTF-8 mode.\n" "PYTHONIOENCODING: Encoding[:errors] used for stdin/stdout/stderr.\n" -"PYTHONFAULTHANDLER: dump the Python traceback on fatal errors.\n" +"PYTHONFAULTHANDLER: dump the Python traceback on fatal errors.\n"; +static const char usage_6[] = "PYTHONHASHSEED: if this variable is set to 'random', a random value is used\n" " to seed the hashes of str and bytes objects. It can also be set to an\n" " integer in the range [0,4294967295] to get hash values with a\n" " predictable seed.\n" -"PYTHONINTMAXSTRDIGITS: limits the maximum digit characters in an int value\n" -" when converting from a string and when converting an int back to a str.\n" -" A value of 0 disables the limit. Conversions to or from bases 2, 4, 8,\n" -" 16, and 32 are never limited.\n" "PYTHONMALLOC: set the Python memory allocators and/or install debug hooks\n" " on Python memory allocators. Use PYTHONMALLOC=debug to install debug\n" " hooks.\n" @@ -168,16 +141,7 @@ static const char usage_envvars[] = " tables mapping extra location information (end line, start column offset \n" " and end column offset) to every instruction in code objects. This is useful \n" " when smaller code objects and pyc files are desired as well as suppressing the \n" -" extra visual location indicators when the interpreter displays tracebacks.\n" -"These variables have equivalent command-line parameters (see --help for details):\n" -"PYTHONDEBUG : enable parser debug mode (-d)\n" -"PYTHONDONTWRITEBYTECODE : don't write .pyc files (-B)\n" -"PYTHONINSPECT : inspect interactively after running script (-i)\n" -"PYTHONNOUSERSITE : disable user site directory (-s)\n" -"PYTHONOPTIMIZE : enable level 1 optimizations (-O)\n" -"PYTHONUNBUFFERED : disable stdout/stderr buffering (-u)\n" -"PYTHONVERBOSE : trace import statements (-v)\n" -"PYTHONWARNINGS=arg : warning control (-W arg)\n"; +" extra visual location indicators when the interpreter displays tracebacks.\n"; #if defined(MS_WINDOWS) # define PYTHONHOMEHELP "<prefix>\\python{major}{minor}" @@ -194,7 +158,7 @@ int Py_UTF8Mode = 0; int Py_DebugFlag = 0; /* Needed by parser.c */ int Py_VerboseFlag = 0; /* Needed by import.c */ int Py_QuietFlag = 0; /* Needed by sysmodule.c */ -int Py_InteractiveFlag = 0; /* Previously, was used by Py_FdIsInteractive() */ +int Py_InteractiveFlag = 0; /* Needed by Py_FdIsInteractive() below */ int Py_InspectFlag = 0; /* Needed to determine whether to exit at SystemExit */ int Py_OptimizeFlag = 0; /* Needed by compile.c */ int Py_NoSiteFlag = 0; /* Suppress 'import site' */ @@ -215,8 +179,6 @@ int Py_LegacyWindowsStdioFlag = 0; /* Uses FileIO instead of WindowsConsoleIO */ static PyObject * _Py_GetGlobalVariablesAsDict(void) { -_Py_COMP_DIAG_PUSH -_Py_COMP_DIAG_IGNORE_DEPR_DECLS PyObject *dict, *obj; dict = PyDict_New(); @@ -283,19 +245,15 @@ _Py_COMP_DIAG_IGNORE_DEPR_DECLS #undef SET_ITEM #undef SET_ITEM_INT #undef SET_ITEM_STR -_Py_COMP_DIAG_POP } char* Py_GETENV(const char *name) { -_Py_COMP_DIAG_PUSH -_Py_COMP_DIAG_IGNORE_DEPR_DECLS if (Py_IgnoreEnvironmentFlag) { return NULL; } return getenv(name); -_Py_COMP_DIAG_POP } /* --- PyStatus ----------------------------------------------- */ @@ -557,11 +515,8 @@ Py_SetStandardStreamEncoding(const char *encoding, const char *errors) } #ifdef MS_WINDOWS if (_Py_StandardStreamEncoding) { -_Py_COMP_DIAG_PUSH -_Py_COMP_DIAG_IGNORE_DEPR_DECLS /* Overriding the stream encoding implies legacy streams */ Py_LegacyWindowsStdioFlag = 1; -_Py_COMP_DIAG_POP } #endif @@ -759,7 +714,6 @@ _PyConfig_InitCompatConfig(PyConfig *config) config->use_hash_seed = -1; config->faulthandler = -1; config->tracemalloc = -1; - config->perf_profiling = -1; config->module_search_paths_set = 0; config->parse_argv = 0; config->site_import = -1; @@ -793,10 +747,6 @@ _PyConfig_InitCompatConfig(PyConfig *config) config->code_debug_ranges = 1; } -/* Excluded from public struct PyConfig for backporting reasons. */ -/* default to unconfigured, _PyLong_InitTypes() does the rest */ -int _Py_global_config_int_max_str_digits = -1; - static void config_init_defaults(PyConfig *config) @@ -848,7 +798,6 @@ PyConfig_InitIsolatedConfig(PyConfig *config) config->use_hash_seed = 0; config->faulthandler = 0; config->tracemalloc = 0; - config->perf_profiling = 0; config->safe_path = 1; config->pathconfig_warnings = 0; #ifdef MS_WINDOWS @@ -960,7 +909,6 @@ _PyConfig_Copy(PyConfig *config, const PyConfig *config2) COPY_ATTR(_install_importlib); COPY_ATTR(faulthandler); COPY_ATTR(tracemalloc); - COPY_ATTR(perf_profiling); COPY_ATTR(import_time); COPY_ATTR(code_debug_ranges); COPY_ATTR(show_ref_count); @@ -1071,7 +1019,6 @@ _PyConfig_AsDict(const PyConfig *config) SET_ITEM_UINT(hash_seed); SET_ITEM_INT(faulthandler); SET_ITEM_INT(tracemalloc); - SET_ITEM_INT(perf_profiling); SET_ITEM_INT(import_time); SET_ITEM_INT(code_debug_ranges); SET_ITEM_INT(show_ref_count); @@ -1353,7 +1300,6 @@ _PyConfig_FromDict(PyConfig *config, PyObject *dict) CHECK_VALUE("hash_seed", config->hash_seed <= MAX_HASH_SEED); GET_UINT(faulthandler); GET_UINT(tracemalloc); - GET_UINT(perf_profiling); GET_UINT(import_time); GET_UINT(code_debug_ranges); GET_UINT(show_ref_count); @@ -1475,8 +1421,6 @@ config_get_env_dup(PyConfig *config, static void config_get_global_vars(PyConfig *config) { -_Py_COMP_DIAG_PUSH -_Py_COMP_DIAG_IGNORE_DEPR_DECLS if (config->_config_init != _PyConfig_INIT_COMPAT) { /* Python and Isolated configuration ignore global variables */ return; @@ -1512,7 +1456,6 @@ _Py_COMP_DIAG_IGNORE_DEPR_DECLS #undef COPY_FLAG #undef COPY_NOT_FLAG -_Py_COMP_DIAG_POP } @@ -1520,8 +1463,6 @@ _Py_COMP_DIAG_POP static void config_set_global_vars(const PyConfig *config) { -_Py_COMP_DIAG_PUSH -_Py_COMP_DIAG_IGNORE_DEPR_DECLS #define COPY_FLAG(ATTR, VAR) \ if (config->ATTR != -1) { \ VAR = config->ATTR; \ @@ -1556,7 +1497,6 @@ _Py_COMP_DIAG_IGNORE_DEPR_DECLS #undef COPY_FLAG #undef COPY_NOT_FLAG -_Py_COMP_DIAG_POP } @@ -1710,26 +1650,6 @@ config_read_env_vars(PyConfig *config) return _PyStatus_OK(); } -static PyStatus -config_init_perf_profiling(PyConfig *config) -{ - int active = 0; - const char *env = config_get_env(config, "PYTHONPERFSUPPORT"); - if (env) { - if (_Py_str_to_int(env, &active) != 0) { - active = 0; - } - if (active) { - config->perf_profiling = 1; - } - } - const wchar_t *xoption = config_get_xoption(config, L"perf"); - if (xoption) { - config->perf_profiling = 1; - } - return _PyStatus_OK(); - -} static PyStatus config_init_tracemalloc(PyConfig *config) @@ -1775,48 +1695,6 @@ config_init_tracemalloc(PyConfig *config) return _PyStatus_OK(); } -static PyStatus -config_init_int_max_str_digits(PyConfig *config) -{ - int maxdigits; - int valid = 0; - - const char *env = config_get_env(config, "PYTHONINTMAXSTRDIGITS"); - if (env) { - if (!_Py_str_to_int(env, &maxdigits)) { - valid = ((maxdigits == 0) || (maxdigits >= _PY_LONG_MAX_STR_DIGITS_THRESHOLD)); - } - if (!valid) { -#define STRINGIFY(VAL) _STRINGIFY(VAL) -#define _STRINGIFY(VAL) #VAL - return _PyStatus_ERR( - "PYTHONINTMAXSTRDIGITS: invalid limit; must be >= " - STRINGIFY(_PY_LONG_MAX_STR_DIGITS_THRESHOLD) - " or 0 for unlimited."); - } - _Py_global_config_int_max_str_digits = maxdigits; - } - - const wchar_t *xoption = config_get_xoption(config, L"int_max_str_digits"); - if (xoption) { - const wchar_t *sep = wcschr(xoption, L'='); - if (sep) { - if (!config_wstr_to_int(sep + 1, &maxdigits)) { - valid = ((maxdigits == 0) || (maxdigits >= _PY_LONG_MAX_STR_DIGITS_THRESHOLD)); - } - } - if (!valid) { - return _PyStatus_ERR( - "-X int_max_str_digits: invalid limit; must be >= " - STRINGIFY(_PY_LONG_MAX_STR_DIGITS_THRESHOLD) - " or 0 for unlimited."); -#undef _STRINGIFY -#undef STRINGIFY - } - _Py_global_config_int_max_str_digits = maxdigits; - } - return _PyStatus_OK(); -} static PyStatus config_init_pycache_prefix(PyConfig *config) @@ -1874,20 +1752,6 @@ config_read_complex_options(PyConfig *config) } } - if (config->perf_profiling < 0) { - status = config_init_perf_profiling(config); - if (_PyStatus_EXCEPTION(status)) { - return status; - } - } - - if (_Py_global_config_int_max_str_digits < 0) { - status = config_init_int_max_str_digits(config); - if (_PyStatus_EXCEPTION(status)) { - return status; - } - } - if (config->pycache_prefix == NULL) { status = config_init_pycache_prefix(config); if (_PyStatus_EXCEPTION(status)) { @@ -2160,6 +2024,49 @@ _PyConfig_InitImportConfig(PyConfig *config) return config_init_import(config, 1); } +// List of known xoptions to validate against the provided ones. Note that all +// options are listed, even if they are only available if a specific macro is +// set, like -X showrefcount which requires a debug build. In this case unknown +// options are silently ignored. +const wchar_t* known_xoptions[] = { + L"faulthandler", + L"showrefcount", + L"tracemalloc", + L"importtime", + L"dev", + L"utf8", + L"pycache_prefix", + L"warn_default_encoding", + L"no_debug_ranges", + L"frozen_modules", + NULL, +}; + +static const wchar_t* +_Py_check_xoptions(const PyWideStringList *xoptions, const wchar_t **names) +{ + for (Py_ssize_t i=0; i < xoptions->length; i++) { + const wchar_t *option = xoptions->items[i]; + size_t len; + wchar_t *sep = wcschr(option, L'='); + if (sep != NULL) { + len = (sep - option); + } + else { + len = wcslen(option); + } + int found = 0; + for (const wchar_t** name = names; *name != NULL; name++) { + if (wcsncmp(option, *name, len) == 0 && (*name)[len] == L'\0') { + found = 1; + } + } + if (found == 0) { + return option; + } + } + return NULL; +} static PyStatus config_read(PyConfig *config, int compute_path_config) @@ -2175,6 +2082,11 @@ config_read(PyConfig *config, int compute_path_config) } /* -X options */ + const wchar_t* option = _Py_check_xoptions(&config->xoptions, known_xoptions); + if (option != NULL) { + return PyStatus_Error("Unknown value for option -X"); + } + if (config_get_xoption(config, L"showrefcount")) { config->show_ref_count = 1; } @@ -2203,9 +2115,6 @@ config_read(PyConfig *config, int compute_path_config) if (config->tracemalloc < 0) { config->tracemalloc = 0; } - if (config->perf_profiling < 0) { - config->perf_profiling = 0; - } if (config->use_hash_seed < 0) { config->use_hash_seed = 0; config->hash_seed = 0; @@ -2328,32 +2237,15 @@ config_usage(int error, const wchar_t* program) if (error) fprintf(f, "Try `python -h' for more information.\n"); else { - fputs(usage_help, f); + fputs(usage_1, f); + fputs(usage_2, f); + fputs(usage_3, f); + fprintf(f, usage_4, (wint_t)DELIM); + fprintf(f, usage_5, (wint_t)DELIM, PYTHONHOMEHELP); + fputs(usage_6, f); } } -static void -config_envvars_usage() -{ - printf(usage_envvars, (wint_t)DELIM, (wint_t)DELIM, PYTHONHOMEHELP); -} - -static void -config_xoptions_usage() -{ - puts(usage_xoptions); -} - -static void -config_complete_usage(const wchar_t* program) -{ - config_usage(0, program); - puts("\n"); - config_envvars_usage(); - puts("\n"); - config_xoptions_usage(); -} - /* Parse the command line arguments */ static PyStatus @@ -2364,9 +2256,6 @@ config_parse_cmdline(PyConfig *config, PyWideStringList *warnoptions, const PyWideStringList *argv = &config->argv; int print_version = 0; const wchar_t* program = config->program_name; - if (!program && argv->length >= 1) { - program = argv->items[0]; - } _PyOS_ResetGetOpt(); do { @@ -2408,9 +2297,9 @@ config_parse_cmdline(PyConfig *config, PyWideStringList *warnoptions, } switch (c) { - // Integers represent long options, see Python/getopt.c case 0: - // check-hash-based-pycs + // Handle long option. + assert(longindex == 0); // Only one long option now. if (wcscmp(_PyOS_optarg, L"always") == 0 || wcscmp(_PyOS_optarg, L"never") == 0 || wcscmp(_PyOS_optarg, L"default") == 0) @@ -2428,21 +2317,6 @@ config_parse_cmdline(PyConfig *config, PyWideStringList *warnoptions, } break; - case 1: - // help-all - config_complete_usage(program); - return _PyStatus_EXIT(0); - - case 2: - // help-env - config_envvars_usage(); - return _PyStatus_EXIT(0); - - case 3: - // help-xoptions - config_xoptions_usage(); - return _PyStatus_EXIT(0); - case 'b': config->bytes_warning++; break; diff --git a/Python/makeopcodetargets.py b/Python/makeopcodetargets.py index 33a4b4a76a1253..3bf2e35ccb6dab 100755 --- a/Python/makeopcodetargets.py +++ b/Python/makeopcodetargets.py @@ -34,8 +34,7 @@ def write_contents(f): targets = ['_unknown_opcode'] * 256 targets[255] = "TARGET_DO_TRACING" for opname, op in opcode.opmap.items(): - if not opcode.is_pseudo(op): - targets[op] = "TARGET_%s" % opname + targets[op] = "TARGET_%s" % opname next_op = 1 for opname in opcode._specialized_instructions: while targets[next_op] != '_unknown_opcode': diff --git a/Python/opcode_targets.h b/Python/opcode_targets.h index c1ff367d4fd38d..71b7a76a01aa83 100644 --- a/Python/opcode_targets.h +++ b/Python/opcode_targets.h @@ -25,20 +25,18 @@ static void *opcode_targets[256] = { &&TARGET_CALL_PY_EXACT_ARGS, &&TARGET_CALL_PY_WITH_DEFAULTS, &&TARGET_BINARY_SUBSCR, - &&TARGET_BINARY_SLICE, - &&TARGET_STORE_SLICE, &&TARGET_CALL_BOUND_METHOD_EXACT_ARGS, &&TARGET_CALL_BUILTIN_CLASS, + &&TARGET_CALL_BUILTIN_FAST_WITH_KEYWORDS, + &&TARGET_CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS, &&TARGET_GET_LEN, &&TARGET_MATCH_MAPPING, &&TARGET_MATCH_SEQUENCE, &&TARGET_MATCH_KEYS, - &&TARGET_CALL_BUILTIN_FAST_WITH_KEYWORDS, + &&TARGET_CALL_NO_KW_BUILTIN_FAST, &&TARGET_PUSH_EXC_INFO, &&TARGET_CHECK_EXC_MATCH, &&TARGET_CHECK_EG_MATCH, - &&TARGET_CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS, - &&TARGET_CALL_NO_KW_BUILTIN_FAST, &&TARGET_CALL_NO_KW_BUILTIN_O, &&TARGET_CALL_NO_KW_ISINSTANCE, &&TARGET_CALL_NO_KW_LEN, @@ -48,44 +46,46 @@ static void *opcode_targets[256] = { &&TARGET_CALL_NO_KW_METHOD_DESCRIPTOR_O, &&TARGET_CALL_NO_KW_STR_1, &&TARGET_CALL_NO_KW_TUPLE_1, + &&TARGET_CALL_NO_KW_TYPE_1, + &&TARGET_COMPARE_OP_ADAPTIVE, &&TARGET_WITH_EXCEPT_START, &&TARGET_GET_AITER, &&TARGET_GET_ANEXT, &&TARGET_BEFORE_ASYNC_WITH, &&TARGET_BEFORE_WITH, &&TARGET_END_ASYNC_FOR, - &&TARGET_CLEANUP_THROW, - &&TARGET_CALL_NO_KW_TYPE_1, - &&TARGET_COMPARE_OP_ADAPTIVE, &&TARGET_COMPARE_OP_FLOAT_JUMP, &&TARGET_COMPARE_OP_INT_JUMP, - &&TARGET_STORE_SUBSCR, - &&TARGET_DELETE_SUBSCR, &&TARGET_COMPARE_OP_STR_JUMP, &&TARGET_EXTENDED_ARG_QUICK, - &&TARGET_FOR_ITER_ADAPTIVE, - &&TARGET_FOR_ITER_LIST, - &&TARGET_FOR_ITER_RANGE, &&TARGET_JUMP_BACKWARD_QUICK, + &&TARGET_STORE_SUBSCR, + &&TARGET_DELETE_SUBSCR, + &&TARGET_LOAD_ATTR_ADAPTIVE, + &&TARGET_LOAD_ATTR_INSTANCE_VALUE, + &&TARGET_LOAD_ATTR_MODULE, + &&TARGET_LOAD_ATTR_SLOT, + &&TARGET_LOAD_ATTR_WITH_HINT, + &&TARGET_LOAD_CONST__LOAD_FAST, &&TARGET_GET_ITER, &&TARGET_GET_YIELD_FROM_ITER, &&TARGET_PRINT_EXPR, &&TARGET_LOAD_BUILD_CLASS, - &&TARGET_LOAD_ATTR_ADAPTIVE, - &&TARGET_LOAD_ATTR_CLASS, + &&TARGET_LOAD_FAST__LOAD_CONST, + &&TARGET_LOAD_FAST__LOAD_FAST, &&TARGET_LOAD_ASSERTION_ERROR, &&TARGET_RETURN_GENERATOR, - &&TARGET_LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN, - &&TARGET_LOAD_ATTR_INSTANCE_VALUE, - &&TARGET_LOAD_ATTR_MODULE, - &&TARGET_LOAD_ATTR_PROPERTY, - &&TARGET_LOAD_ATTR_SLOT, - &&TARGET_LOAD_ATTR_WITH_HINT, + &&TARGET_LOAD_GLOBAL_ADAPTIVE, + &&TARGET_LOAD_GLOBAL_BUILTIN, + &&TARGET_LOAD_GLOBAL_MODULE, + &&TARGET_LOAD_METHOD_ADAPTIVE, + &&TARGET_LOAD_METHOD_CLASS, + &&TARGET_LOAD_METHOD_LAZY_DICT, &&TARGET_LIST_TO_TUPLE, &&TARGET_RETURN_VALUE, &&TARGET_IMPORT_STAR, &&TARGET_SETUP_ANNOTATIONS, - &&TARGET_LOAD_ATTR_METHOD_LAZY_DICT, + &&TARGET_LOAD_METHOD_MODULE, &&TARGET_ASYNC_GEN_WRAP, &&TARGET_PREP_RERAISE_STAR, &&TARGET_POP_EXCEPT, @@ -112,23 +112,23 @@ static void *opcode_targets[256] = { &&TARGET_JUMP_FORWARD, &&TARGET_JUMP_IF_FALSE_OR_POP, &&TARGET_JUMP_IF_TRUE_OR_POP, - &&TARGET_LOAD_ATTR_METHOD_NO_DICT, - &&TARGET_POP_JUMP_IF_FALSE, - &&TARGET_POP_JUMP_IF_TRUE, + &&TARGET_LOAD_METHOD_NO_DICT, + &&TARGET_POP_JUMP_FORWARD_IF_FALSE, + &&TARGET_POP_JUMP_FORWARD_IF_TRUE, &&TARGET_LOAD_GLOBAL, &&TARGET_IS_OP, &&TARGET_CONTAINS_OP, &&TARGET_RERAISE, &&TARGET_COPY, - &&TARGET_LOAD_ATTR_METHOD_WITH_DICT, + &&TARGET_LOAD_METHOD_WITH_DICT, &&TARGET_BINARY_OP, &&TARGET_SEND, &&TARGET_LOAD_FAST, &&TARGET_STORE_FAST, &&TARGET_DELETE_FAST, - &&TARGET_LOAD_FAST_CHECK, - &&TARGET_POP_JUMP_IF_NOT_NONE, - &&TARGET_POP_JUMP_IF_NONE, + &&TARGET_LOAD_METHOD_WITH_VALUES, + &&TARGET_POP_JUMP_FORWARD_IF_NOT_NONE, + &&TARGET_POP_JUMP_FORWARD_IF_NONE, &&TARGET_RAISE_VARARGS, &&TARGET_GET_AWAITABLE, &&TARGET_MAKE_FUNCTION, @@ -140,9 +140,9 @@ static void *opcode_targets[256] = { &&TARGET_STORE_DEREF, &&TARGET_DELETE_DEREF, &&TARGET_JUMP_BACKWARD, - &&TARGET_LOAD_ATTR_METHOD_WITH_VALUES, + &&TARGET_RESUME_QUICK, &&TARGET_CALL_FUNCTION_EX, - &&TARGET_LOAD_CONST__LOAD_FAST, + &&TARGET_STORE_ATTR_ADAPTIVE, &&TARGET_EXTENDED_ARG, &&TARGET_LIST_APPEND, &&TARGET_SET_ADD, @@ -152,32 +152,30 @@ static void *opcode_targets[256] = { &&TARGET_YIELD_VALUE, &&TARGET_RESUME, &&TARGET_MATCH_CLASS, - &&TARGET_LOAD_FAST__LOAD_CONST, - &&TARGET_LOAD_FAST__LOAD_FAST, + &&TARGET_STORE_ATTR_INSTANCE_VALUE, + &&TARGET_STORE_ATTR_SLOT, &&TARGET_FORMAT_VALUE, &&TARGET_BUILD_CONST_KEY_MAP, &&TARGET_BUILD_STRING, - &&TARGET_LOAD_GLOBAL_ADAPTIVE, - &&TARGET_LOAD_GLOBAL_BUILTIN, - &&TARGET_LOAD_GLOBAL_MODULE, - &&TARGET_RESUME_QUICK, + &&TARGET_STORE_ATTR_WITH_HINT, + &&TARGET_STORE_FAST__LOAD_FAST, + &&TARGET_LOAD_METHOD, + &&TARGET_STORE_FAST__STORE_FAST, &&TARGET_LIST_EXTEND, &&TARGET_SET_UPDATE, &&TARGET_DICT_MERGE, &&TARGET_DICT_UPDATE, - &&TARGET_STORE_ATTR_ADAPTIVE, - &&TARGET_STORE_ATTR_INSTANCE_VALUE, - &&TARGET_STORE_ATTR_SLOT, - &&TARGET_STORE_ATTR_WITH_HINT, - &&TARGET_STORE_FAST__LOAD_FAST, - &&TARGET_CALL, - &&TARGET_KW_NAMES, - &&TARGET_STORE_FAST__STORE_FAST, &&TARGET_STORE_SUBSCR_ADAPTIVE, &&TARGET_STORE_SUBSCR_DICT, &&TARGET_STORE_SUBSCR_LIST_INT, &&TARGET_UNPACK_SEQUENCE_ADAPTIVE, &&TARGET_UNPACK_SEQUENCE_LIST, + &&TARGET_CALL, + &&TARGET_KW_NAMES, + &&TARGET_POP_JUMP_BACKWARD_IF_NOT_NONE, + &&TARGET_POP_JUMP_BACKWARD_IF_NONE, + &&TARGET_POP_JUMP_BACKWARD_IF_FALSE, + &&TARGET_POP_JUMP_BACKWARD_IF_TRUE, &&TARGET_UNPACK_SEQUENCE_TUPLE, &&TARGET_UNPACK_SEQUENCE_TWO_TUPLE, &&_unknown_opcode, @@ -254,5 +252,7 @@ static void *opcode_targets[256] = { &&_unknown_opcode, &&_unknown_opcode, &&_unknown_opcode, + &&_unknown_opcode, + &&_unknown_opcode, &&TARGET_DO_TRACING }; diff --git a/Python/pathconfig.c b/Python/pathconfig.c index 69b7e10a3b0288..4271928571fa1f 100644 --- a/Python/pathconfig.c +++ b/Python/pathconfig.c @@ -36,11 +36,10 @@ typedef struct _PyPathConfig { wchar_t *program_name; /* Set by Py_SetPythonHome() or PYTHONHOME environment variable */ wchar_t *home; - int _is_python_build; } _PyPathConfig; # define _PyPathConfig_INIT \ - {.module_search_path = NULL, ._is_python_build = 0} + {.module_search_path = NULL} _PyPathConfig _Py_path_config = _PyPathConfig_INIT; @@ -73,7 +72,6 @@ _PyPathConfig_ClearGlobal(void) CLEAR(calculated_module_search_path); CLEAR(program_name); CLEAR(home); - _Py_path_config._is_python_build = 0; #undef CLEAR @@ -101,25 +99,15 @@ _PyPathConfig_ReadGlobal(PyConfig *config) } \ } while (0) -#define COPY_INT(ATTR) \ - do { \ - assert(_Py_path_config.ATTR >= 0); \ - if ((_Py_path_config.ATTR >= 0) && (config->ATTR <= 0)) { \ - config->ATTR = _Py_path_config.ATTR; \ - } \ - } while (0) - COPY(prefix); COPY(exec_prefix); COPY(stdlib_dir); COPY(program_name); COPY(home); COPY2(executable, program_full_path); - COPY_INT(_is_python_build); // module_search_path must be initialised - not read #undef COPY #undef COPY2 -#undef COPY_INT done: return status; @@ -149,23 +137,14 @@ _PyPathConfig_UpdateGlobal(const PyConfig *config) } \ } while (0) -#define COPY_INT(ATTR) \ - do { \ - if (config->ATTR > 0) { \ - _Py_path_config.ATTR = config->ATTR; \ - } \ - } while (0) - COPY(prefix); COPY(exec_prefix); COPY(stdlib_dir); COPY(program_name); COPY(home); COPY2(program_full_path, executable); - COPY_INT(_is_python_build); #undef COPY #undef COPY2 -#undef COPY_INT PyMem_RawFree(_Py_path_config.module_search_path); _Py_path_config.module_search_path = NULL; diff --git a/Python/preconfig.c b/Python/preconfig.c index 77a86d651eb0f4..e7125cd2e3e0e3 100644 --- a/Python/preconfig.c +++ b/Python/preconfig.c @@ -24,8 +24,6 @@ int _Py_HasFileSystemDefaultEncodeErrors = 0; void _Py_ClearFileSystemEncoding(void) { -_Py_COMP_DIAG_PUSH -_Py_COMP_DIAG_IGNORE_DEPR_DECLS if (!Py_HasFileSystemDefaultEncoding && Py_FileSystemDefaultEncoding) { PyMem_RawFree((char*)Py_FileSystemDefaultEncoding); Py_FileSystemDefaultEncoding = NULL; @@ -34,7 +32,6 @@ _Py_COMP_DIAG_IGNORE_DEPR_DECLS PyMem_RawFree((char*)Py_FileSystemDefaultEncodeErrors); Py_FileSystemDefaultEncodeErrors = NULL; } -_Py_COMP_DIAG_POP } @@ -59,14 +56,11 @@ _Py_SetFileSystemEncoding(const char *encoding, const char *errors) _Py_ClearFileSystemEncoding(); -_Py_COMP_DIAG_PUSH -_Py_COMP_DIAG_IGNORE_DEPR_DECLS Py_FileSystemDefaultEncoding = encoding2; Py_HasFileSystemDefaultEncoding = 0; Py_FileSystemDefaultEncodeErrors = errors2; _Py_HasFileSystemDefaultEncodeErrors = 0; -_Py_COMP_DIAG_POP return 0; } @@ -300,7 +294,17 @@ _PyPreConfig_InitCompatConfig(PyPreConfig *config) config->coerce_c_locale_warn = 0; config->dev_mode = -1; +#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS + /* bpo-40512: pymalloc is not compatible with subinterpreters, + force usage of libc malloc() which is thread-safe. */ +#ifdef Py_DEBUG + config->allocator = PYMEM_ALLOCATOR_MALLOC_DEBUG; +#else + config->allocator = PYMEM_ALLOCATOR_MALLOC; +#endif +#else config->allocator = PYMEM_ALLOCATOR_NOT_SET; +#endif #ifdef MS_WINDOWS config->legacy_windows_fs_encoding = -1; #endif @@ -478,8 +482,6 @@ preconfig_get_global_vars(PyPreConfig *config) config->ATTR = !(VALUE); \ } -_Py_COMP_DIAG_PUSH -_Py_COMP_DIAG_IGNORE_DEPR_DECLS COPY_FLAG(isolated, Py_IsolatedFlag); COPY_NOT_FLAG(use_environment, Py_IgnoreEnvironmentFlag); if (Py_UTF8Mode > 0) { @@ -488,7 +490,6 @@ _Py_COMP_DIAG_IGNORE_DEPR_DECLS #ifdef MS_WINDOWS COPY_FLAG(legacy_windows_fs_encoding, Py_LegacyWindowsFSEncodingFlag); #endif -_Py_COMP_DIAG_POP #undef COPY_FLAG #undef COPY_NOT_FLAG @@ -507,15 +508,12 @@ preconfig_set_global_vars(const PyPreConfig *config) VAR = !config->ATTR; \ } -_Py_COMP_DIAG_PUSH -_Py_COMP_DIAG_IGNORE_DEPR_DECLS COPY_FLAG(isolated, Py_IsolatedFlag); COPY_NOT_FLAG(use_environment, Py_IgnoreEnvironmentFlag); #ifdef MS_WINDOWS COPY_FLAG(legacy_windows_fs_encoding, Py_LegacyWindowsFSEncodingFlag); #endif COPY_FLAG(utf8_mode, Py_UTF8Mode); -_Py_COMP_DIAG_POP #undef COPY_FLAG #undef COPY_NOT_FLAG diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c index c550f13bc14820..42a058181dd693 100644 --- a/Python/pylifecycle.c +++ b/Python/pylifecycle.c @@ -695,6 +695,11 @@ pycore_init_types(PyInterpreterState *interp) { PyStatus status; + status = _PyTypes_InitState(interp); + if (_PyStatus_EXCEPTION(status)) { + return status; + } + status = _PyTypes_InitTypes(interp); if (_PyStatus_EXCEPTION(status)) { return status; @@ -782,9 +787,6 @@ pycore_init_builtins(PyThreadState *tstate) PyObject *list_append = _PyType_Lookup(&PyList_Type, &_Py_ID(append)); assert(list_append); interp->callable_cache.list_append = list_append; - PyObject *object__getattribute__ = _PyType_Lookup(&PyBaseObject_Type, &_Py_ID(__getattribute__)); - assert(object__getattribute__); - interp->callable_cache.object__getattribute__ = object__getattribute__; if (_PyBuiltins_AddExceptions(bimod) < 0) { return _PyStatus_ERR("failed to add exceptions to builtins"); @@ -1144,16 +1146,6 @@ init_interp_main(PyThreadState *tstate) if (_PyTraceMalloc_Init(config->tracemalloc) < 0) { return _PyStatus_ERR("can't initialize tracemalloc"); } - - -#ifdef PY_HAVE_PERF_TRAMPOLINE - if (config->perf_profiling) { - if (_PyPerfTrampoline_SetCallbacks(&_Py_perfmap_callbacks) < 0 || - _PyPerfTrampoline_Init(config->perf_profiling) < 0) { - return _PyStatus_ERR("can't initialize the perf trampoline"); - } - } -#endif } status = init_sys_streams(tstate); @@ -1470,7 +1462,7 @@ finalize_restore_builtins(PyThreadState *tstate) } PyDict_Clear(interp->builtins); if (PyDict_Update(interp->builtins, interp->builtins_copy)) { - PyErr_WriteUnraisable(NULL); + _PyErr_Clear(tstate); } Py_XDECREF(dict); } @@ -1680,9 +1672,8 @@ finalize_interp_types(PyInterpreterState *interp) _PyLong_FiniTypes(interp); _PyThread_FiniType(interp); _PyErr_FiniTypes(interp); - _PyTypes_FiniTypes(interp); - _PyTypes_Fini(interp); + _PyTypes_FiniTypes(interp); // Call _PyUnicode_ClearInterned() before _PyDict_Fini() since it uses // a dict internally. @@ -1696,9 +1687,6 @@ finalize_interp_types(PyInterpreterState *interp) _PyUnicode_Fini(interp); _PyFloat_Fini(interp); -#ifdef Py_DEBUG - _PyStaticObjects_CheckRefcnt(); -#endif } @@ -1728,7 +1716,6 @@ finalize_interp_clear(PyThreadState *tstate) _PyArg_Fini(); _Py_ClearFileSystemEncoding(); _Py_Deepfreeze_Fini(); - _PyPerfTrampoline_Fini(); } finalize_interp_types(tstate->interp); @@ -1994,10 +1981,12 @@ new_interpreter(PyThreadState **tstate_p, int isolated_subinterpreter) /* Copy the current interpreter config into the new interpreter */ const PyConfig *config; +#ifndef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS if (save_tstate != NULL) { config = _PyInterpreterState_GetConfig(save_tstate->interp); } else +#endif { /* No current thread state, copy from the main interpreter */ PyInterpreterState *main_interp = _PyInterpreterState_Main(); @@ -2355,15 +2344,19 @@ create_stdio(const PyConfig *config, PyObject* io, static PyStatus init_set_builtins_open(void) { - PyObject *wrapper; + PyObject *iomod = NULL, *wrapper; PyObject *bimod = NULL; PyStatus res = _PyStatus_OK(); + if (!(iomod = PyImport_ImportModule("io"))) { + goto error; + } + if (!(bimod = PyImport_ImportModule("builtins"))) { goto error; } - if (!(wrapper = _PyImport_GetModuleAttrString("io", "open"))) { + if (!(wrapper = PyObject_GetAttrString(iomod, "open"))) { goto error; } @@ -2380,6 +2373,7 @@ init_set_builtins_open(void) done: Py_XDECREF(bimod); + Py_XDECREF(iomod); return res; } @@ -2951,30 +2945,28 @@ Py_Exit(int sts) int Py_FdIsInteractive(FILE *fp, const char *filename) { - if (isatty(fileno(fp))) { + if (isatty((int)fileno(fp))) return 1; - } - if (!_Py_GetConfig()->interactive) { + if (!Py_InteractiveFlag) return 0; - } - return ((filename == NULL) - || (strcmp(filename, "<stdin>") == 0) - || (strcmp(filename, "???") == 0)); + return (filename == NULL) || + (strcmp(filename, "<stdin>") == 0) || + (strcmp(filename, "???") == 0); } int _Py_FdIsInteractive(FILE *fp, PyObject *filename) { - if (isatty(fileno(fp))) { + if (isatty((int)fileno(fp))) { return 1; } - if (!_Py_GetConfig()->interactive) { + if (!Py_InteractiveFlag) { return 0; } - return ((filename == NULL) - || (PyUnicode_CompareWithASCIIString(filename, "<stdin>") == 0) - || (PyUnicode_CompareWithASCIIString(filename, "???") == 0)); + return (filename == NULL) || + (PyUnicode_CompareWithASCIIString(filename, "<stdin>") == 0) || + (PyUnicode_CompareWithASCIIString(filename, "???") == 0); } diff --git a/Python/pystate.c b/Python/pystate.c index 23e9d24c591b63..3e28a6ab69a989 100644 --- a/Python/pystate.c +++ b/Python/pystate.c @@ -57,7 +57,7 @@ _Py_COMP_DIAG_POP static int alloc_for_runtime(PyThread_type_lock *plock1, PyThread_type_lock *plock2, - PyThread_type_lock *plock3, PyThread_type_lock *plock4) + PyThread_type_lock *plock3) { /* Force default allocator, since _PyRuntimeState_Fini() must use the same allocator than this function. */ @@ -82,20 +82,11 @@ alloc_for_runtime(PyThread_type_lock *plock1, PyThread_type_lock *plock2, return -1; } - PyThread_type_lock lock4 = PyThread_allocate_lock(); - if (lock4 == NULL) { - PyThread_free_lock(lock1); - PyThread_free_lock(lock2); - PyThread_free_lock(lock3); - return -1; - } - PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc); *plock1 = lock1; *plock2 = lock2; *plock3 = lock3; - *plock4 = lock4; return 0; } @@ -106,8 +97,7 @@ init_runtime(_PyRuntimeState *runtime, Py_ssize_t unicode_next_index, PyThread_type_lock unicode_ids_mutex, PyThread_type_lock interpreters_mutex, - PyThread_type_lock xidregistry_mutex, - PyThread_type_lock getargs_mutex) + PyThread_type_lock xidregistry_mutex) { if (runtime->_initialized) { Py_FatalError("runtime already initialized"); @@ -129,8 +119,6 @@ init_runtime(_PyRuntimeState *runtime, runtime->xidregistry.mutex = xidregistry_mutex; - runtime->getargs.mutex = getargs_mutex; - // Set it to the ID of the main thread of the main interpreter. runtime->main_thread = PyThread_get_thread_ident(); @@ -153,8 +141,8 @@ _PyRuntimeState_Init(_PyRuntimeState *runtime) // is called multiple times. Py_ssize_t unicode_next_index = runtime->unicode_ids.next_index; - PyThread_type_lock lock1, lock2, lock3, lock4; - if (alloc_for_runtime(&lock1, &lock2, &lock3, &lock4) != 0) { + PyThread_type_lock lock1, lock2, lock3; + if (alloc_for_runtime(&lock1, &lock2, &lock3) != 0) { return _PyStatus_NO_MEMORY(); } @@ -164,7 +152,7 @@ _PyRuntimeState_Init(_PyRuntimeState *runtime) memcpy(runtime, &initial, sizeof(*runtime)); } init_runtime(runtime, open_code_hook, open_code_userdata, audit_hook_head, - unicode_next_index, lock1, lock2, lock3, lock4); + unicode_next_index, lock1, lock2, lock3); return _PyStatus_OK(); } @@ -184,7 +172,6 @@ _PyRuntimeState_Fini(_PyRuntimeState *runtime) FREE_LOCK(runtime->interpreters.mutex); FREE_LOCK(runtime->xidregistry.mutex); FREE_LOCK(runtime->unicode_ids.lock); - FREE_LOCK(runtime->getargs.mutex); #undef FREE_LOCK PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc); @@ -207,7 +194,6 @@ _PyRuntimeState_ReInitThreads(_PyRuntimeState *runtime) int reinit_interp = _PyThread_at_fork_reinit(&runtime->interpreters.mutex); int reinit_xidregistry = _PyThread_at_fork_reinit(&runtime->xidregistry.mutex); int reinit_unicode_ids = _PyThread_at_fork_reinit(&runtime->unicode_ids.lock); - int reinit_getargs = _PyThread_at_fork_reinit(&runtime->getargs.mutex); PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc); @@ -218,8 +204,7 @@ _PyRuntimeState_ReInitThreads(_PyRuntimeState *runtime) if (reinit_interp < 0 || reinit_main_id < 0 || reinit_xidregistry < 0 - || reinit_unicode_ids < 0 - || reinit_getargs < 0) + || reinit_unicode_ids < 0) { return _PyStatus_ERR("Failed to reinitialize runtime locks"); @@ -810,15 +795,7 @@ new_threadstate(PyInterpreterState *interp) { PyThreadState *tstate; _PyRuntimeState *runtime = interp->runtime; - // We don't need to allocate a thread state for the main interpreter - // (the common case), but doing it later for the other case revealed a - // reentrancy problem (deadlock). So for now we always allocate before - // taking the interpreters lock. See GH-96071. - PyThreadState *new_tstate = alloc_threadstate(); - int used_newtstate; - if (new_tstate == NULL) { - return NULL; - } + /* We serialize concurrent creation to protect global state. */ HEAD_LOCK(runtime); @@ -830,15 +807,18 @@ new_threadstate(PyInterpreterState *interp) if (old_head == NULL) { // It's the interpreter's initial thread state. assert(id == 1); - used_newtstate = 0; + tstate = &interp->_initial_thread; } else { // Every valid interpreter must have at least one thread. assert(id > 1); assert(old_head->prev == NULL); - used_newtstate = 1; - tstate = new_tstate; + + tstate = alloc_threadstate(); + if (tstate == NULL) { + goto error; + } // Set to _PyThreadState_INIT. memcpy(tstate, &initial._main_interpreter._initial_thread, @@ -849,11 +829,11 @@ new_threadstate(PyInterpreterState *interp) init_threadstate(tstate, interp, id, old_head); HEAD_UNLOCK(runtime); - if (!used_newtstate) { - // Must be called with lock unlocked to avoid re-entrancy deadlock. - PyMem_RawFree(new_tstate); - } return tstate; + +error: + HEAD_UNLOCK(runtime); + return NULL; } PyThreadState * @@ -1185,6 +1165,14 @@ _PyThreadState_DeleteExcept(_PyRuntimeState *runtime, PyThreadState *tstate) } +#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS +PyThreadState* +_PyThreadState_GetTSS(void) { + return PyThread_tss_get(&_PyRuntime.gilstate.autoTSSkey); +} +#endif + + PyThreadState * _PyThreadState_UncheckedGet(void) { @@ -1204,7 +1192,11 @@ PyThreadState_Get(void) PyThreadState * _PyThreadState_Swap(struct _gilstate_runtime_state *gilstate, PyThreadState *newts) { +#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS + PyThreadState *oldts = _PyThreadState_GetTSS(); +#else PyThreadState *oldts = _PyRuntimeGILState_GetThreadState(gilstate); +#endif _PyRuntimeGILState_SetThreadState(gilstate, newts); /* It should not be possible for more than one thread state @@ -1222,6 +1214,9 @@ _PyThreadState_Swap(struct _gilstate_runtime_state *gilstate, PyThreadState *new Py_FatalError("Invalid thread state for this thread"); errno = err; } +#endif +#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS + PyThread_tss_set(&gilstate->autoTSSkey, newts); #endif return oldts; } @@ -1275,14 +1270,10 @@ PyFrameObject* PyThreadState_GetFrame(PyThreadState *tstate) { assert(tstate != NULL); - _PyInterpreterFrame *f = tstate->cframe->current_frame; - while (f && _PyFrame_IsIncomplete(f)) { - f = f->previous; - } - if (f == NULL) { + if (tstate->cframe->current_frame == NULL) { return NULL; } - PyFrameObject *frame = _PyFrame_GetFrameObject(f); + PyFrameObject *frame = _PyFrame_GetFrameObject(tstate->cframe->current_frame); if (frame == NULL) { PyErr_Clear(); } @@ -1406,9 +1397,6 @@ _PyThread_CurrentFrames(void) PyThreadState *t; for (t = i->threads.head; t != NULL; t = t->next) { _PyInterpreterFrame *frame = t->cframe->current_frame; - while (frame && _PyFrame_IsIncomplete(frame)) { - frame = frame->previous; - } if (frame == NULL) { continue; } @@ -1416,12 +1404,7 @@ _PyThread_CurrentFrames(void) if (id == NULL) { goto fail; } - PyObject *frameobj = (PyObject *)_PyFrame_GetFrameObject(frame); - if (frameobj == NULL) { - Py_DECREF(id); - goto fail; - } - int stat = PyDict_SetItem(result, id, frameobj); + int stat = PyDict_SetItem(result, id, (PyObject *)_PyFrame_GetFrameObject(frame)); Py_DECREF(id); if (stat < 0) { goto fail; @@ -1682,7 +1665,9 @@ PyGILState_Ensure(void) /* Ensure that _PyEval_InitThreads() and _PyGILState_Init() have been called by Py_Initialize() */ +#ifndef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS assert(_PyEval_ThreadsInitialized(runtime)); +#endif assert(gilstate->autoInterpreterState); PyThreadState *tcur = (PyThreadState *)PyThread_tss_get(&gilstate->autoTSSkey); @@ -2168,7 +2153,6 @@ _Py_GetConfig(void) { assert(PyGILState_Check()); PyThreadState *tstate = _PyThreadState_GET(); - _Py_EnsureTstateNotNULL(tstate); return _PyInterpreterState_GetConfig(tstate->interp); } @@ -2200,15 +2184,18 @@ push_chunk(PyThreadState *tstate, int size) } _PyInterpreterFrame * -_PyThreadState_PushFrame(PyThreadState *tstate, size_t size) +_PyThreadState_BumpFramePointerSlow(PyThreadState *tstate, size_t size) { assert(size < INT_MAX/sizeof(PyObject *)); - if (_PyThreadState_HasStackSpace(tstate, (int)size)) { - _PyInterpreterFrame *res = (_PyInterpreterFrame *)tstate->datastack_top; - tstate->datastack_top += size; - return res; + PyObject **base = tstate->datastack_top; + PyObject **top = base + size; + if (top >= tstate->datastack_limit) { + base = push_chunk(tstate, (int)size); + } + else { + tstate->datastack_top = top; } - return (_PyInterpreterFrame *)push_chunk(tstate, (int)size); + return (_PyInterpreterFrame *)base; } void diff --git a/Python/pytime.c b/Python/pytime.c index 01c07da074757e..f49a25bf7bce7c 100644 --- a/Python/pytime.c +++ b/Python/pytime.c @@ -406,14 +406,6 @@ _PyTime_FromNanoseconds(_PyTime_t ns) } -_PyTime_t -_PyTime_FromMicrosecondsClamp(_PyTime_t us) -{ - _PyTime_t ns = _PyTime_Mul(us, US_TO_NS); - return pytime_from_nanoseconds(ns); -} - - int _PyTime_FromNanosecondsObject(_PyTime_t *tp, PyObject *obj) { diff --git a/Python/specialize.c b/Python/specialize.c index b7c321e4878b98..a2fb460388055d 100644 --- a/Python/specialize.c +++ b/Python/specialize.c @@ -8,7 +8,6 @@ #include "pycore_object.h" #include "pycore_opcode.h" // _PyOpcode_Caches #include "structmember.h" // struct PyMemberDef, T_OFFSET_EX -#include "pycore_descrobject.h" #include <stdlib.h> // rand() @@ -21,6 +20,7 @@ uint8_t _PyOpcode_Adaptive[256] = { [LOAD_ATTR] = LOAD_ATTR_ADAPTIVE, [LOAD_GLOBAL] = LOAD_GLOBAL_ADAPTIVE, + [LOAD_METHOD] = LOAD_METHOD_ADAPTIVE, [BINARY_SUBSCR] = BINARY_SUBSCR_ADAPTIVE, [STORE_SUBSCR] = STORE_SUBSCR_ADAPTIVE, [CALL] = CALL_ADAPTIVE, @@ -28,13 +28,11 @@ uint8_t _PyOpcode_Adaptive[256] = { [BINARY_OP] = BINARY_OP_ADAPTIVE, [COMPARE_OP] = COMPARE_OP_ADAPTIVE, [UNPACK_SEQUENCE] = UNPACK_SEQUENCE_ADAPTIVE, - [FOR_ITER] = FOR_ITER_ADAPTIVE, }; Py_ssize_t _Py_QuickenedCount = 0; #ifdef Py_STATS -PyStats _py_stats_struct = { 0 }; -PyStats *_py_stats = &_py_stats_struct; +PyStats _py_stats = { 0 }; #define ADD_STAT_TO_DICT(res, field) \ do { \ @@ -94,7 +92,7 @@ add_stat_dict( int opcode, const char *name) { - SpecializationStats *stats = &_py_stats_struct.opcode_stats[opcode].specialization; + SpecializationStats *stats = &_py_stats.opcode_stats[opcode].specialization; PyObject *d = stats_to_dict(stats); if (d == NULL) { return -1; @@ -114,6 +112,7 @@ _Py_GetSpecializationStats(void) { int err = 0; err += add_stat_dict(stats, LOAD_ATTR, "load_attr"); err += add_stat_dict(stats, LOAD_GLOBAL, "load_global"); + err += add_stat_dict(stats, LOAD_METHOD, "load_method"); err += add_stat_dict(stats, BINARY_SUBSCR, "binary_subscr"); err += add_stat_dict(stats, STORE_SUBSCR, "store_subscr"); err += add_stat_dict(stats, STORE_ATTR, "store_attr"); @@ -121,7 +120,6 @@ _Py_GetSpecializationStats(void) { err += add_stat_dict(stats, BINARY_OP, "binary_op"); err += add_stat_dict(stats, COMPARE_OP, "compare_op"); err += add_stat_dict(stats, UNPACK_SEQUENCE, "unpack_sequence"); - err += add_stat_dict(stats, FOR_ITER, "for_iter"); if (err < 0) { Py_DECREF(stats); return NULL; @@ -141,8 +139,7 @@ print_spec_stats(FILE *out, OpcodeStats *stats) { /* Mark some opcodes as specializable for stats, * even though we don't specialize them yet. */ - fprintf(out, "opcode[%d].specializable : 1\n", BINARY_SLICE); - fprintf(out, "opcode[%d].specializable : 1\n", STORE_SLICE); + fprintf(out, "opcode[%d].specializable : 1\n", FOR_ITER); for (int i = 0; i < 256; i++) { if (_PyOpcode_Adaptive[i]) { fprintf(out, "opcode[%d].specializable : 1\n", i); @@ -212,18 +209,9 @@ print_stats(FILE *out, PyStats *stats) { print_object_stats(out, &stats->object_stats); } -void -_Py_StatsClear(void) -{ - _py_stats_struct = (PyStats) { 0 }; -} - void _Py_PrintSpecializationStats(int to_file) { - if (_py_stats == NULL) { - return; - } FILE *out = stderr; if (to_file) { /* Write to a file instead of stderr. */ @@ -254,7 +242,7 @@ _Py_PrintSpecializationStats(int to_file) else { fprintf(out, "Specialization stats:\n"); } - print_stats(out, _py_stats); + print_stats(out, &_py_stats); if (out != stderr) { fclose(out); } @@ -262,12 +250,8 @@ _Py_PrintSpecializationStats(int to_file) #ifdef Py_STATS -#define SPECIALIZATION_FAIL(opcode, kind) \ -do { \ - if (_py_stats) { \ - _py_stats->opcode_stats[opcode].specialization.failure_kinds[kind]++; \ - } \ -} while (0) +#define SPECIALIZATION_FAIL(opcode, kind) _py_stats.opcode_stats[opcode].specialization.failure_kinds[kind]++ + #endif #endif @@ -296,9 +280,6 @@ _PyCode_Quicken(PyCodeObject *code) else { assert(!_PyOpcode_Caches[opcode]); switch (opcode) { - case EXTENDED_ARG: - _Py_SET_OPCODE(instructions[i], EXTENDED_ARG_QUICK); - break; case JUMP_BACKWARD: _Py_SET_OPCODE(instructions[i], JUMP_BACKWARD_QUICK); break; @@ -340,7 +321,7 @@ _PyCode_Quicken(PyCodeObject *code) } static inline int -miss_counter_start(void) { +initial_counter_value(void) { /* Starting value for the counter. * This value needs to be not too low, otherwise * it would cause excessive de-optimization. @@ -352,8 +333,6 @@ miss_counter_start(void) { return 53; } -#define SIMPLE_FUNCTION 0 - /* Common */ #define SPEC_FAIL_OTHER 0 @@ -363,8 +342,6 @@ miss_counter_start(void) { #define SPEC_FAIL_OUT_OF_RANGE 4 #define SPEC_FAIL_EXPECTED_ERROR 5 #define SPEC_FAIL_WRONG_NUMBER_ARGUMENTS 6 -#define SPEC_FAIL_NOT_PY_FUNCTION 7 - #define SPEC_FAIL_LOAD_GLOBAL_NON_STRING_OR_SPLIT 18 @@ -383,14 +360,24 @@ miss_counter_start(void) { #define SPEC_FAIL_ATTR_NON_STRING_OR_SPLIT 18 #define SPEC_FAIL_ATTR_MODULE_ATTR_NOT_FOUND 19 -#define SPEC_FAIL_ATTR_SHADOWED 21 -#define SPEC_FAIL_ATTR_BUILTIN_CLASS_METHOD 22 -#define SPEC_FAIL_ATTR_CLASS_METHOD_OBJ 23 -#define SPEC_FAIL_ATTR_OBJECT_SLOT 24 -#define SPEC_FAIL_ATTR_HAS_MANAGED_DICT 25 -#define SPEC_FAIL_ATTR_INSTANCE_ATTRIBUTE 26 -#define SPEC_FAIL_ATTR_METACLASS_ATTRIBUTE 27 -#define SPEC_FAIL_ATTR_PROPERTY_NOT_PY_FUNCTION 28 +/* Methods */ + +#define SPEC_FAIL_LOAD_METHOD_OVERRIDING_DESCRIPTOR 8 +#define SPEC_FAIL_LOAD_METHOD_NON_OVERRIDING_DESCRIPTOR 9 +#define SPEC_FAIL_LOAD_METHOD_NOT_DESCRIPTOR 10 +#define SPEC_FAIL_LOAD_METHOD_METHOD 11 +#define SPEC_FAIL_LOAD_METHOD_MUTABLE_CLASS 12 +#define SPEC_FAIL_LOAD_METHOD_PROPERTY 13 +#define SPEC_FAIL_LOAD_METHOD_NON_OBJECT_SLOT 14 +#define SPEC_FAIL_LOAD_METHOD_IS_ATTR 15 +#define SPEC_FAIL_LOAD_METHOD_DICT_SUBCLASS 16 +#define SPEC_FAIL_LOAD_METHOD_BUILTIN_CLASS_METHOD 17 +#define SPEC_FAIL_LOAD_METHOD_CLASS_METHOD_OBJ 18 +#define SPEC_FAIL_LOAD_METHOD_OBJECT_SLOT 19 +#define SPEC_FAIL_LOAD_METHOD_HAS_DICT 20 +#define SPEC_FAIL_LOAD_METHOD_HAS_MANAGED_DICT 21 +#define SPEC_FAIL_LOAD_METHOD_INSTANCE_ATTRIBUTE 22 +#define SPEC_FAIL_LOAD_METHOD_METACLASS_ATTRIBUTE 23 /* Binary subscr and store subscr */ @@ -490,21 +477,12 @@ miss_counter_start(void) { #define SPEC_FAIL_FOR_ITER_DICT_ITEMS 21 #define SPEC_FAIL_FOR_ITER_DICT_VALUES 22 #define SPEC_FAIL_FOR_ITER_ENUMERATE 23 -#define SPEC_FAIL_FOR_ITER_MAP 24 -#define SPEC_FAIL_FOR_ITER_ZIP 25 -#define SPEC_FAIL_FOR_ITER_SEQ_ITER 26 -#define SPEC_FAIL_FOR_ITER_REVERSED_LIST 27 -#define SPEC_FAIL_FOR_ITER_CALLABLE 28 -#define SPEC_FAIL_FOR_ITER_ASCII_STRING 29 // UNPACK_SEQUENCE #define SPEC_FAIL_UNPACK_SEQUENCE_ITERATOR 8 #define SPEC_FAIL_UNPACK_SEQUENCE_SEQUENCE 9 -static int function_kind(PyCodeObject *code); -static bool function_check_args(PyObject *o, int expected_argcount, int opcode); -static uint32_t function_get_version(PyObject *o, int opcode); static int specialize_module_load_attr(PyObject *owner, _Py_CODEUNIT *instr, @@ -512,6 +490,7 @@ specialize_module_load_attr(PyObject *owner, _Py_CODEUNIT *instr, { _PyAttrCache *cache = (_PyAttrCache *)(instr + 1); PyModuleObject *m = (PyModuleObject *)owner; + PyObject *value = NULL; assert((owner->ob_type->tp_flags & Py_TPFLAGS_MANAGED_DICT) == 0); PyDictObject *dict = (PyDictObject *)m->md_dict; if (dict == NULL) { @@ -522,13 +501,14 @@ specialize_module_load_attr(PyObject *owner, _Py_CODEUNIT *instr, SPECIALIZATION_FAIL(opcode, SPEC_FAIL_ATTR_NON_STRING_OR_SPLIT); return -1; } - Py_ssize_t index = _PyDict_LookupIndex(dict, &_Py_ID(__getattr__)); + Py_ssize_t index = _PyDict_GetItemHint(dict, &_Py_ID(__getattr__), -1, + &value); assert(index != DKIX_ERROR); if (index != DKIX_EMPTY) { SPECIALIZATION_FAIL(opcode, SPEC_FAIL_ATTR_MODULE_ATTR_NOT_FOUND); return -1; } - index = _PyDict_LookupIndex(dict, name); + index = _PyDict_GetItemHint(dict, name, -1, &value); assert (index != DKIX_ERROR); if (index != (uint16_t)index) { SPECIALIZATION_FAIL(opcode, SPEC_FAIL_OUT_OF_RANGE); @@ -562,15 +542,13 @@ typedef enum { MUTABLE, /* Instance of a mutable class; might, or might not, be a descriptor */ ABSENT, /* Attribute is not present on the class */ DUNDER_CLASS, /* __class__ attribute */ - GETSET_OVERRIDDEN, /* __getattribute__ or __setattr__ has been overridden */ - GETATTRIBUTE_IS_PYTHON_FUNCTION /* Descriptor requires calling a Python __getattribute__ */ + GETSET_OVERRIDDEN /* __getattribute__ or __setattr__ has been overridden */ } DescriptorClassification; static DescriptorClassification analyze_descriptor(PyTypeObject *type, PyObject *name, PyObject **descr, int store) { - bool has_getattr = false; if (store) { if (type->tp_setattro != PyObject_GenericSetAttr) { *descr = NULL; @@ -578,42 +556,7 @@ analyze_descriptor(PyTypeObject *type, PyObject *name, PyObject **descr, int sto } } else { - getattrofunc getattro_slot = type->tp_getattro; - if (getattro_slot == PyObject_GenericGetAttr) { - /* Normal attribute lookup; */ - has_getattr = false; - } - else if (getattro_slot == _Py_slot_tp_getattr_hook || - getattro_slot == _Py_slot_tp_getattro) { - /* One or both of __getattribute__ or __getattr__ may have been - overridden See typeobject.c for why these functions are special. */ - PyObject *getattribute = _PyType_Lookup(type, - &_Py_ID(__getattribute__)); - PyInterpreterState *interp = _PyInterpreterState_GET(); - bool has_custom_getattribute = getattribute != NULL && - getattribute != interp->callable_cache.object__getattribute__; - has_getattr = _PyType_Lookup(type, &_Py_ID(__getattr__)) != NULL; - if (has_custom_getattribute) { - if (getattro_slot == _Py_slot_tp_getattro && - !has_getattr && - Py_IS_TYPE(getattribute, &PyFunction_Type)) { - *descr = getattribute; - return GETATTRIBUTE_IS_PYTHON_FUNCTION; - } - /* Potentially both __getattr__ and __getattribute__ are set. - Too complicated */ - *descr = NULL; - return GETSET_OVERRIDDEN; - } - /* Potentially has __getattr__ but no custom __getattribute__. - Fall through to usual descriptor analysis. - Usual attribute lookup should only be allowed at runtime - if we can guarantee that there is no way an exception can be - raised. This means some specializations, e.g. specializing - for property() isn't safe. - */ - } - else { + if (type->tp_getattro != PyObject_GenericGetAttr) { *descr = NULL; return GETSET_OVERRIDDEN; } @@ -637,19 +580,14 @@ analyze_descriptor(PyTypeObject *type, PyObject *name, PyObject **descr, int sto return OTHER_SLOT; } if (desc_cls == &PyProperty_Type) { - /* We can't detect at runtime whether an attribute exists - with property. So that means we may have to call - __getattr__. */ - return has_getattr ? GETSET_OVERRIDDEN : PROPERTY; + return PROPERTY; } if (PyUnicode_CompareWithASCIIString(name, "__class__") == 0) { if (descriptor == _PyType_Lookup(&PyBaseObject_Type, name)) { return DUNDER_CLASS; } } - if (store) { - return OVERRIDING; - } + return OVERRIDING; } if (desc_cls->tp_descr_get) { if (desc_cls->tp_flags & Py_TPFLAGS_METHOD_DESCRIPTOR) { @@ -680,8 +618,9 @@ specialize_dict_access( return 0; } _PyAttrCache *cache = (_PyAttrCache *)(instr + 1); - PyDictOrValues dorv = *_PyObject_DictOrValuesPointer(owner); - if (_PyDictOrValues_IsValues(dorv)) { + PyObject **dictptr = _PyObject_ManagedDictPointer(owner); + PyDictObject *dict = (PyDictObject *)*dictptr; + if (dict == NULL) { // Virtual dictionary PyDictKeysObject *keys = ((PyHeapTypeObject *)type)->ht_cached_keys; assert(PyUnicode_CheckExact(name)); @@ -696,29 +635,25 @@ specialize_dict_access( _Py_SET_OPCODE(*instr, values_op); } else { - PyDictObject *dict = (PyDictObject *)_PyDictOrValues_GetDict(dorv); - if (dict == NULL || !PyDict_CheckExact(dict)) { + if (!PyDict_CheckExact(dict)) { SPECIALIZATION_FAIL(base_op, SPEC_FAIL_NO_DICT); return 0; } // We found an instance with a __dict__. - Py_ssize_t index = - _PyDict_LookupIndex(dict, name); - if (index != (uint16_t)index) { + PyObject *value = NULL; + Py_ssize_t hint = + _PyDict_GetItemHint(dict, name, -1, &value); + if (hint != (uint16_t)hint) { SPECIALIZATION_FAIL(base_op, SPEC_FAIL_OUT_OF_RANGE); return 0; } - cache->index = (uint16_t)index; + cache->index = (uint16_t)hint; write_u32(cache->version, type->tp_version_tag); _Py_SET_OPCODE(*instr, hint_op); } return 1; } -static int specialize_attr_loadmethod(PyObject* owner, _Py_CODEUNIT* instr, PyObject* name, - PyObject* descr, DescriptorClassification kind); -static int specialize_class_load_attr(PyObject* owner, _Py_CODEUNIT* instr, PyObject* name); - int _Py_Specialize_LoadAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name) { @@ -732,65 +667,24 @@ _Py_Specialize_LoadAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name) } goto success; } - if (PyType_Check(owner)) { - int err = specialize_class_load_attr(owner, instr, name); - if (err) { - goto fail; - } - goto success; - } PyTypeObject *type = Py_TYPE(owner); if (type->tp_dict == NULL) { if (PyType_Ready(type) < 0) { return -1; } } - PyObject *descr = NULL; + PyObject *descr; DescriptorClassification kind = analyze_descriptor(type, name, &descr, 0); - assert(descr != NULL || kind == ABSENT || kind == GETSET_OVERRIDDEN); switch(kind) { case OVERRIDING: SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_ATTR_OVERRIDING_DESCRIPTOR); goto fail; case METHOD: - { - int oparg = _Py_OPARG(*instr); - if (oparg & 1) { - if (specialize_attr_loadmethod(owner, instr, name, descr, kind)) { - goto success; - } - } SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_ATTR_METHOD); goto fail; - } case PROPERTY: - { - _PyLoadMethodCache *lm_cache = (_PyLoadMethodCache *)(instr + 1); - assert(Py_TYPE(descr) == &PyProperty_Type); - PyObject *fget = ((_PyPropertyObject *)descr)->prop_get; - if (fget == NULL) { - SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_EXPECTED_ERROR); - goto fail; - } - if (!Py_IS_TYPE(fget, &PyFunction_Type)) { - SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_ATTR_PROPERTY_NOT_PY_FUNCTION); - goto fail; - } - if (!function_check_args(fget, 1, LOAD_ATTR)) { - goto fail; - } - uint32_t version = function_get_version(fget, LOAD_ATTR); - if (version == 0) { - goto fail; - } - write_u32(lm_cache->keys_version, version); - assert(type->tp_version_tag != 0); - write_u32(lm_cache->type_version, type->tp_version_tag); - /* borrowed */ - write_obj(lm_cache->descr, fget); - _Py_SET_OPCODE(*instr, LOAD_ATTR_PROPERTY); - goto success; - } + SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_ATTR_PROPERTY); + goto fail; case OBJECT_SLOT: { PyMemberDescrObject *member = (PyMemberDescrObject *)descr; @@ -829,25 +723,6 @@ _Py_Specialize_LoadAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name) case GETSET_OVERRIDDEN: SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_OVERRIDDEN); goto fail; - case GETATTRIBUTE_IS_PYTHON_FUNCTION: - { - assert(type->tp_getattro == _Py_slot_tp_getattro); - assert(Py_IS_TYPE(descr, &PyFunction_Type)); - _PyLoadMethodCache *lm_cache = (_PyLoadMethodCache *)(instr + 1); - if (!function_check_args(descr, 2, LOAD_ATTR)) { - goto fail; - } - uint32_t version = function_get_version(descr, LOAD_ATTR); - if (version == 0) { - goto fail; - } - write_u32(lm_cache->keys_version, version); - /* borrowed */ - write_obj(lm_cache->descr, descr); - write_u32(lm_cache->type_version, type->tp_version_tag); - _Py_SET_OPCODE(*instr, LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN); - goto success; - } case BUILTIN_CLASSMETHOD: case PYTHON_CLASSMETHOD: case NON_OVERRIDING: @@ -868,12 +743,12 @@ _Py_Specialize_LoadAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name) fail: STAT_INC(LOAD_ATTR, failure); assert(!PyErr_Occurred()); - cache->counter = adaptive_counter_backoff(cache->counter); + cache->counter = ADAPTIVE_CACHE_BACKOFF; return 0; success: STAT_INC(LOAD_ATTR, success); assert(!PyErr_Occurred()); - cache->counter = miss_counter_start(); + cache->counter = initial_counter_value(); return 0; } @@ -926,7 +801,6 @@ _Py_Specialize_StoreAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name) case MUTABLE: SPECIALIZATION_FAIL(STORE_ATTR, SPEC_FAIL_ATTR_MUTABLE_CLASS); goto fail; - case GETATTRIBUTE_IS_PYTHON_FUNCTION: case GETSET_OVERRIDDEN: SPECIALIZATION_FAIL(STORE_ATTR, SPEC_FAIL_OVERRIDDEN); goto fail; @@ -951,62 +825,57 @@ _Py_Specialize_StoreAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name) fail: STAT_INC(STORE_ATTR, failure); assert(!PyErr_Occurred()); - cache->counter = adaptive_counter_backoff(cache->counter); + cache->counter = ADAPTIVE_CACHE_BACKOFF; return 0; success: STAT_INC(STORE_ATTR, success); assert(!PyErr_Occurred()); - cache->counter = miss_counter_start(); + cache->counter = initial_counter_value(); return 0; } #ifdef Py_STATS static int -load_attr_fail_kind(DescriptorClassification kind) +load_method_fail_kind(DescriptorClassification kind) { switch (kind) { case OVERRIDING: - return SPEC_FAIL_ATTR_OVERRIDING_DESCRIPTOR; + return SPEC_FAIL_LOAD_METHOD_OVERRIDING_DESCRIPTOR; case METHOD: - return SPEC_FAIL_ATTR_METHOD; + return SPEC_FAIL_LOAD_METHOD_METHOD; case PROPERTY: - return SPEC_FAIL_ATTR_PROPERTY; + return SPEC_FAIL_LOAD_METHOD_PROPERTY; case OBJECT_SLOT: - return SPEC_FAIL_ATTR_OBJECT_SLOT; + return SPEC_FAIL_LOAD_METHOD_OBJECT_SLOT; case OTHER_SLOT: - return SPEC_FAIL_ATTR_NON_OBJECT_SLOT; + return SPEC_FAIL_LOAD_METHOD_NON_OBJECT_SLOT; case DUNDER_CLASS: return SPEC_FAIL_OTHER; case MUTABLE: - return SPEC_FAIL_ATTR_MUTABLE_CLASS; + return SPEC_FAIL_LOAD_METHOD_MUTABLE_CLASS; case GETSET_OVERRIDDEN: - case GETATTRIBUTE_IS_PYTHON_FUNCTION: return SPEC_FAIL_OVERRIDDEN; case BUILTIN_CLASSMETHOD: - return SPEC_FAIL_ATTR_BUILTIN_CLASS_METHOD; + return SPEC_FAIL_LOAD_METHOD_BUILTIN_CLASS_METHOD; case PYTHON_CLASSMETHOD: - return SPEC_FAIL_ATTR_CLASS_METHOD_OBJ; + return SPEC_FAIL_LOAD_METHOD_CLASS_METHOD_OBJ; case NON_OVERRIDING: - return SPEC_FAIL_ATTR_NON_OVERRIDING_DESCRIPTOR; + return SPEC_FAIL_LOAD_METHOD_NON_OVERRIDING_DESCRIPTOR; case NON_DESCRIPTOR: - return SPEC_FAIL_ATTR_NOT_DESCRIPTOR; + return SPEC_FAIL_LOAD_METHOD_NOT_DESCRIPTOR; case ABSENT: - return SPEC_FAIL_ATTR_INSTANCE_ATTRIBUTE; + return SPEC_FAIL_LOAD_METHOD_INSTANCE_ATTRIBUTE; } Py_UNREACHABLE(); } #endif static int -specialize_class_load_attr(PyObject *owner, _Py_CODEUNIT *instr, +specialize_class_load_method(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name) { _PyLoadMethodCache *cache = (_PyLoadMethodCache *)(instr + 1); - if (!PyType_CheckExact(owner) || _PyType_Lookup(Py_TYPE(owner), name)) { - SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_ATTR_METACLASS_ATTRIBUTE); - return -1; - } PyObject *descr = NULL; DescriptorClassification kind = 0; kind = analyze_descriptor((PyTypeObject *)owner, name, &descr, 0); @@ -1015,15 +884,20 @@ specialize_class_load_attr(PyObject *owner, _Py_CODEUNIT *instr, case NON_DESCRIPTOR: write_u32(cache->type_version, ((PyTypeObject *)owner)->tp_version_tag); write_obj(cache->descr, descr); - _Py_SET_OPCODE(*instr, LOAD_ATTR_CLASS); + _Py_SET_OPCODE(*instr, LOAD_METHOD_CLASS); return 0; #ifdef Py_STATS case ABSENT: - SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_EXPECTED_ERROR); + if (_PyType_Lookup(Py_TYPE(owner), name) != NULL) { + SPECIALIZATION_FAIL(LOAD_METHOD, SPEC_FAIL_LOAD_METHOD_METACLASS_ATTRIBUTE); + } + else { + SPECIALIZATION_FAIL(LOAD_METHOD, SPEC_FAIL_EXPECTED_ERROR); + } return -1; #endif default: - SPECIALIZATION_FAIL(LOAD_ATTR, load_attr_fail_kind(kind)); + SPECIALIZATION_FAIL(LOAD_METHOD, load_method_fail_kind(kind)); return -1; } } @@ -1039,20 +913,50 @@ typedef enum { // Please collect stats carefully before and after modifying. A subtle change // can cause a significant drop in cache hits. A possible test is // python.exe -m test_typing test_re test_dis test_zlib. -static int -specialize_attr_loadmethod(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name, -PyObject *descr, DescriptorClassification kind) +int +_Py_Specialize_LoadMethod(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name) { + assert(_PyOpcode_Caches[LOAD_METHOD] == INLINE_CACHE_ENTRIES_LOAD_METHOD); _PyLoadMethodCache *cache = (_PyLoadMethodCache *)(instr + 1); PyTypeObject *owner_cls = Py_TYPE(owner); - assert(kind == METHOD && descr != NULL); + if (PyModule_CheckExact(owner)) { + assert(INLINE_CACHE_ENTRIES_LOAD_ATTR <= + INLINE_CACHE_ENTRIES_LOAD_METHOD); + int err = specialize_module_load_attr(owner, instr, name, LOAD_METHOD, + LOAD_METHOD_MODULE); + if (err) { + goto fail; + } + goto success; + } + if (owner_cls->tp_dict == NULL) { + if (PyType_Ready(owner_cls) < 0) { + return -1; + } + } + if (PyType_Check(owner)) { + int err = specialize_class_load_method(owner, instr, name); + if (err) { + goto fail; + } + goto success; + } + + PyObject *descr = NULL; + DescriptorClassification kind = 0; + kind = analyze_descriptor(owner_cls, name, &descr, 0); + assert(descr != NULL || kind == ABSENT || kind == GETSET_OVERRIDDEN); + if (kind != METHOD) { + SPECIALIZATION_FAIL(LOAD_METHOD, load_method_fail_kind(kind)); + goto fail; + } ObjectDictKind dictkind; PyDictKeysObject *keys; if (owner_cls->tp_flags & Py_TPFLAGS_MANAGED_DICT) { - PyDictOrValues dorv = *_PyObject_DictOrValuesPointer(owner); + PyObject *dict = *_PyObject_ManagedDictPointer(owner); keys = ((PyHeapTypeObject *)owner_cls)->ht_cached_keys; - if (_PyDictOrValues_IsValues(dorv)) { + if (dict == NULL) { dictkind = MANAGED_VALUES; } else { @@ -1062,7 +966,7 @@ PyObject *descr, DescriptorClassification kind) else { Py_ssize_t dictoffset = owner_cls->tp_dictoffset; if (dictoffset < 0 || dictoffset > INT16_MAX) { - SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_OUT_OF_RANGE); + SPECIALIZATION_FAIL(LOAD_METHOD, SPEC_FAIL_OUT_OF_RANGE); goto fail; } if (dictoffset == 0) { @@ -1082,36 +986,39 @@ PyObject *descr, DescriptorClassification kind) } } } - if (dictkind == MANAGED_VALUES || dictkind == OFFSET_DICT) { + if (dictkind == MANAGED_VALUES || dictkind == MANAGED_DICT || dictkind == OFFSET_DICT) { Py_ssize_t index = _PyDictKeys_StringLookup(keys, name); if (index != DKIX_EMPTY) { - SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_ATTR_SHADOWED); + SPECIALIZATION_FAIL(LOAD_METHOD, SPEC_FAIL_LOAD_METHOD_IS_ATTR); goto fail; } uint32_t keys_version = _PyDictKeys_GetVersionForCurrentState(keys); if (keys_version == 0) { - SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_OUT_OF_VERSIONS); + SPECIALIZATION_FAIL(LOAD_METHOD, SPEC_FAIL_OUT_OF_VERSIONS); goto fail; } write_u32(cache->keys_version, keys_version); } switch(dictkind) { case NO_DICT: - _Py_SET_OPCODE(*instr, LOAD_ATTR_METHOD_NO_DICT); + _Py_SET_OPCODE(*instr, LOAD_METHOD_NO_DICT); break; case MANAGED_VALUES: - _Py_SET_OPCODE(*instr, LOAD_ATTR_METHOD_WITH_VALUES); + _Py_SET_OPCODE(*instr, LOAD_METHOD_WITH_VALUES); break; case MANAGED_DICT: - SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_ATTR_HAS_MANAGED_DICT); - goto fail; + *(int16_t *)&cache->dict_offset = (int16_t)MANAGED_DICT_OFFSET; + _Py_SET_OPCODE(*instr, LOAD_METHOD_WITH_DICT); + break; case OFFSET_DICT: assert(owner_cls->tp_dictoffset > 0 && owner_cls->tp_dictoffset <= INT16_MAX); - _Py_SET_OPCODE(*instr, LOAD_ATTR_METHOD_WITH_DICT); + cache->dict_offset = (uint16_t)owner_cls->tp_dictoffset; + _Py_SET_OPCODE(*instr, LOAD_METHOD_WITH_DICT); break; case LAZY_DICT: assert(owner_cls->tp_dictoffset > 0 && owner_cls->tp_dictoffset <= INT16_MAX); - _Py_SET_OPCODE(*instr, LOAD_ATTR_METHOD_LAZY_DICT); + cache->dict_offset = (uint16_t)owner_cls->tp_dictoffset; + _Py_SET_OPCODE(*instr, LOAD_METHOD_LAZY_DICT); break; } /* `descr` is borrowed. This is safe for methods (even inherited ones from @@ -1131,9 +1038,17 @@ PyObject *descr, DescriptorClassification kind) write_u32(cache->type_version, owner_cls->tp_version_tag); write_obj(cache->descr, descr); // Fall through. - return 1; +success: + STAT_INC(LOAD_METHOD, success); + assert(!PyErr_Occurred()); + cache->counter = initial_counter_value(); + return 0; fail: + STAT_INC(LOAD_METHOD, failure); + assert(!PyErr_Occurred()); + cache->counter = ADAPTIVE_CACHE_BACKOFF; return 0; + } int @@ -1209,12 +1124,12 @@ _Py_Specialize_LoadGlobal( fail: STAT_INC(LOAD_GLOBAL, failure); assert(!PyErr_Occurred()); - cache->counter = adaptive_counter_backoff(cache->counter); + cache->counter = ADAPTIVE_CACHE_BACKOFF; return 0; success: STAT_INC(LOAD_GLOBAL, success); assert(!PyErr_Occurred()); - cache->counter = miss_counter_start(); + cache->counter = initial_counter_value(); return 0; } @@ -1258,6 +1173,9 @@ binary_subscr_fail_kind(PyTypeObject *container_type, PyObject *sub) } #endif + +#define SIMPLE_FUNCTION 0 + static int function_kind(PyCodeObject *code) { int flags = code->co_flags; @@ -1270,39 +1188,6 @@ function_kind(PyCodeObject *code) { return SIMPLE_FUNCTION; } -/* Returning false indicates a failure. */ -static bool -function_check_args(PyObject *o, int expected_argcount, int opcode) -{ - assert(Py_IS_TYPE(o, &PyFunction_Type)); - PyFunctionObject *func = (PyFunctionObject *)o; - PyCodeObject *fcode = (PyCodeObject *)func->func_code; - int kind = function_kind(fcode); - if (kind != SIMPLE_FUNCTION) { - SPECIALIZATION_FAIL(opcode, kind); - return false; - } - if (fcode->co_argcount != expected_argcount) { - SPECIALIZATION_FAIL(opcode, SPEC_FAIL_WRONG_NUMBER_ARGUMENTS); - return false; - } - return true; -} - -/* Returning 0 indicates a failure. */ -static uint32_t -function_get_version(PyObject *o, int opcode) -{ - assert(Py_IS_TYPE(o, &PyFunction_Type)); - PyFunctionObject *func = (PyFunctionObject *)o; - uint32_t version = _PyFunction_GetVersionForCurrentState(func); - if (version == 0) { - SPECIALIZATION_FAIL(opcode, SPEC_FAIL_OUT_OF_VERSIONS); - return 0; - } - return version; -} - int _Py_Specialize_BinarySubscr( PyObject *container, PyObject *sub, _Py_CODEUNIT *instr) @@ -1355,8 +1240,7 @@ _Py_Specialize_BinarySubscr( write_u32(cache->type_version, cls->tp_version_tag); int version = _PyFunction_GetVersionForCurrentState(func); if (version == 0 || version != (uint16_t)version) { - SPECIALIZATION_FAIL(BINARY_SUBSCR, version == 0 ? - SPEC_FAIL_OUT_OF_VERSIONS : SPEC_FAIL_OUT_OF_RANGE); + SPECIALIZATION_FAIL(BINARY_SUBSCR, SPEC_FAIL_OUT_OF_VERSIONS); goto fail; } cache->func_version = version; @@ -1369,12 +1253,12 @@ _Py_Specialize_BinarySubscr( fail: STAT_INC(BINARY_SUBSCR, failure); assert(!PyErr_Occurred()); - cache->counter = adaptive_counter_backoff(cache->counter); + cache->counter = ADAPTIVE_CACHE_BACKOFF; return 0; success: STAT_INC(BINARY_SUBSCR, success); assert(!PyErr_Occurred()); - cache->counter = miss_counter_start(); + cache->counter = initial_counter_value(); return 0; } @@ -1473,12 +1357,12 @@ _Py_Specialize_StoreSubscr(PyObject *container, PyObject *sub, _Py_CODEUNIT *ins fail: STAT_INC(STORE_SUBSCR, failure); assert(!PyErr_Occurred()); - cache->counter = adaptive_counter_backoff(cache->counter); + cache->counter = ADAPTIVE_CACHE_BACKOFF; return 0; success: STAT_INC(STORE_SUBSCR, success); assert(!PyErr_Occurred()); - cache->counter = miss_counter_start(); + cache->counter = initial_counter_value(); return 0; } @@ -1790,12 +1674,12 @@ _Py_Specialize_Call(PyObject *callable, _Py_CODEUNIT *instr, int nargs, if (fail) { STAT_INC(CALL, failure); assert(!PyErr_Occurred()); - cache->counter = adaptive_counter_backoff(cache->counter); + cache->counter = ADAPTIVE_CACHE_BACKOFF; } else { STAT_INC(CALL, success); assert(!PyErr_Occurred()); - cache->counter = miss_counter_start(); + cache->counter = initial_counter_value(); } return 0; } @@ -1943,11 +1827,11 @@ _Py_Specialize_BinaryOp(PyObject *lhs, PyObject *rhs, _Py_CODEUNIT *instr, } SPECIALIZATION_FAIL(BINARY_OP, binary_op_fail_kind(oparg, lhs, rhs)); STAT_INC(BINARY_OP, failure); - cache->counter = adaptive_counter_backoff(cache->counter); + cache->counter = ADAPTIVE_CACHE_BACKOFF; return; success: STAT_INC(BINARY_OP, success); - cache->counter = miss_counter_start(); + cache->counter = initial_counter_value(); } @@ -2006,8 +1890,10 @@ _Py_Specialize_CompareOp(PyObject *lhs, PyObject *rhs, _Py_CODEUNIT *instr, assert(_PyOpcode_Caches[COMPARE_OP] == INLINE_CACHE_ENTRIES_COMPARE_OP); _PyCompareOpCache *cache = (_PyCompareOpCache *)(instr + 1); int next_opcode = _Py_OPCODE(instr[INLINE_CACHE_ENTRIES_COMPARE_OP + 1]); - if (next_opcode != POP_JUMP_IF_FALSE && - next_opcode != POP_JUMP_IF_TRUE) { + if (next_opcode != POP_JUMP_FORWARD_IF_FALSE && + next_opcode != POP_JUMP_BACKWARD_IF_FALSE && + next_opcode != POP_JUMP_FORWARD_IF_TRUE && + next_opcode != POP_JUMP_BACKWARD_IF_TRUE) { // Can't ever combine, so don't don't bother being adaptive (unless // we're collecting stats, where it's more important to get accurate hit // counts for the unadaptive version and each of the different failure @@ -2015,20 +1901,24 @@ _Py_Specialize_CompareOp(PyObject *lhs, PyObject *rhs, _Py_CODEUNIT *instr, #ifndef Py_STATS _Py_SET_OPCODE(*instr, COMPARE_OP); return; -#else +#endif if (next_opcode == EXTENDED_ARG) { SPECIALIZATION_FAIL(COMPARE_OP, SPEC_FAIL_COMPARE_OP_EXTENDED_ARG); goto failure; } SPECIALIZATION_FAIL(COMPARE_OP, SPEC_FAIL_COMPARE_OP_NOT_FOLLOWED_BY_COND_JUMP); goto failure; -#endif } assert(oparg <= Py_GE); int when_to_jump_mask = compare_masks[oparg]; - if (next_opcode == POP_JUMP_IF_FALSE) { + if (next_opcode == POP_JUMP_FORWARD_IF_FALSE || + next_opcode == POP_JUMP_BACKWARD_IF_FALSE) { when_to_jump_mask = (1 | 2 | 4) & ~when_to_jump_mask; } + if (next_opcode == POP_JUMP_BACKWARD_IF_TRUE || + next_opcode == POP_JUMP_BACKWARD_IF_FALSE) { + when_to_jump_mask <<= 3; + } if (Py_TYPE(lhs) != Py_TYPE(rhs)) { SPECIALIZATION_FAIL(COMPARE_OP, compare_op_fail_kind(lhs, rhs)); goto failure; @@ -2056,18 +1946,18 @@ _Py_Specialize_CompareOp(PyObject *lhs, PyObject *rhs, _Py_CODEUNIT *instr, } else { _Py_SET_OPCODE(*instr, COMPARE_OP_STR_JUMP); - cache->mask = (when_to_jump_mask & 2) == 0; + cache->mask = when_to_jump_mask; goto success; } } SPECIALIZATION_FAIL(COMPARE_OP, compare_op_fail_kind(lhs, rhs)); failure: STAT_INC(COMPARE_OP, failure); - cache->counter = adaptive_counter_backoff(cache->counter); + cache->counter = ADAPTIVE_CACHE_BACKOFF; return; success: STAT_INC(COMPARE_OP, success); - cache->counter = miss_counter_start(); + cache->counter = initial_counter_value(); } #ifdef Py_STATS @@ -2113,11 +2003,11 @@ _Py_Specialize_UnpackSequence(PyObject *seq, _Py_CODEUNIT *instr, int oparg) SPECIALIZATION_FAIL(UNPACK_SEQUENCE, unpack_sequence_fail_kind(seq)); failure: STAT_INC(UNPACK_SEQUENCE, failure); - cache->counter = adaptive_counter_backoff(cache->counter); + cache->counter = ADAPTIVE_CACHE_BACKOFF; return; success: STAT_INC(UNPACK_SEQUENCE, success); - cache->counter = miss_counter_start(); + cache->counter = initial_counter_value(); } #ifdef Py_STATS @@ -2165,59 +2055,11 @@ int if (t == &PyEnum_Type) { return SPEC_FAIL_FOR_ITER_ENUMERATE; } - if (t == &PyMap_Type) { - return SPEC_FAIL_FOR_ITER_MAP; - } - if (t == &PyZip_Type) { - return SPEC_FAIL_FOR_ITER_ZIP; - } - if (t == &PySeqIter_Type) { - return SPEC_FAIL_FOR_ITER_SEQ_ITER; - } - if (t == &PyListRevIter_Type) { - return SPEC_FAIL_FOR_ITER_REVERSED_LIST; - } - if (t == &_PyUnicodeASCIIIter_Type) { - return SPEC_FAIL_FOR_ITER_ASCII_STRING; - } - const char *name = t->tp_name; - if (strncmp(name, "itertools", 9) == 0) { + + if (strncmp(t->tp_name, "itertools", 8) == 0) { return SPEC_FAIL_FOR_ITER_ITERTOOLS; } - if (strncmp(name, "callable_iterator", 17) == 0) { - return SPEC_FAIL_FOR_ITER_CALLABLE; - } return SPEC_FAIL_OTHER; } #endif - -void -_Py_Specialize_ForIter(PyObject *iter, _Py_CODEUNIT *instr) -{ - assert(_PyOpcode_Caches[FOR_ITER] == INLINE_CACHE_ENTRIES_FOR_ITER); - _PyForIterCache *cache = (_PyForIterCache *)(instr + 1); - PyTypeObject *tp = Py_TYPE(iter); - _Py_CODEUNIT next = instr[1+INLINE_CACHE_ENTRIES_FOR_ITER]; - int next_op = _PyOpcode_Deopt[_Py_OPCODE(next)]; - if (tp == &PyListIter_Type) { - _Py_SET_OPCODE(*instr, FOR_ITER_LIST); - goto success; - } - else if (tp == &PyRangeIter_Type && next_op == STORE_FAST) { - _Py_SET_OPCODE(*instr, FOR_ITER_RANGE); - goto success; - } - else { - SPECIALIZATION_FAIL(FOR_ITER, - _PySpecialization_ClassifyIterator(iter)); - goto failure; - } -failure: - STAT_INC(FOR_ITER, failure); - cache->counter = adaptive_counter_backoff(cache->counter); - return; -success: - STAT_INC(FOR_ITER, success); - cache->counter = miss_counter_start(); -} diff --git a/Python/stdlib_module_names.h b/Python/stdlib_module_names.h index b28156608d1b80..553585a76a394a 100644 --- a/Python/stdlib_module_names.h +++ b/Python/stdlib_module_names.h @@ -9,6 +9,7 @@ static const char* _Py_stdlib_module_names[] = { "_asyncio", "_bisect", "_blake2", +"_bootsubprocess", "_bz2", "_codecs", "_codecs_cn", @@ -241,6 +242,7 @@ static const char* _Py_stdlib_module_names[] = { "shutil", "signal", "site", +"smtpd", "smtplib", "sndhdr", "socket", diff --git a/Python/suggestions.c b/Python/suggestions.c index c336ec8ffffc9c..b84acaaed6b1fd 100644 --- a/Python/suggestions.c +++ b/Python/suggestions.c @@ -1,4 +1,5 @@ #include "Python.h" +#include "frameobject.h" #include "pycore_frame.h" #include "pycore_pyerrors.h" diff --git a/Python/sysmodule.c b/Python/sysmodule.c index 653b5a55e885e5..b9cae15568d0f5 100644 --- a/Python/sysmodule.c +++ b/Python/sysmodule.c @@ -20,7 +20,6 @@ Data members: #include "pycore_code.h" // _Py_QuickenedCount #include "pycore_frame.h" // _PyInterpreterFrame #include "pycore_initconfig.h" // _PyStatus_EXCEPTION() -#include "pycore_long.h" // _PY_LONG_MAX_STR_DIGITS_THRESHOLD #include "pycore_namespace.h" // _PyNamespace_New() #include "pycore_object.h" // _PyObject_IS_GC() #include "pycore_pathconfig.h" // _PyPathConfig_ComputeSysPath0() @@ -29,10 +28,10 @@ Data members: #include "pycore_pymath.h" // _PY_SHORT_FLOAT_REPR #include "pycore_pymem.h" // _PyMem_SetDefaultAllocator() #include "pycore_pystate.h" // _PyThreadState_GET() -#include "pycore_structseq.h" // _PyStructSequence_InitBuiltinWithFlags() +#include "pycore_structseq.h" // _PyStructSequence_InitType() #include "pycore_tuple.h" // _PyTuple_FromArray() -#include "frameobject.h" // PyFrame_FastToLocalsWithError() +#include "frameobject.h" // PyFrame_GetBack() #include "pydtrace.h" #include "osdefs.h" // DELIM #include "stdlib_module_names.h" // _Py_stdlib_module_names @@ -1022,36 +1021,6 @@ Set the global debug tracing function. It will be called on each\n\ function call. See the debugger chapter in the library manual." ); -/*[clinic input] -sys._settraceallthreads - - arg: object - / - -Set the global debug tracing function in all running threads belonging to the current interpreter. - -It will be called on each function call. See the debugger chapter -in the library manual. -[clinic start generated code]*/ - -static PyObject * -sys__settraceallthreads(PyObject *module, PyObject *arg) -/*[clinic end generated code: output=161cca30207bf3ca input=5906aa1485a50289]*/ -{ - PyObject* argument = NULL; - Py_tracefunc func = NULL; - - if (arg != Py_None) { - func = trace_trampoline; - argument = arg; - } - - - PyEval_SetTraceAllThreads(func, argument); - - Py_RETURN_NONE; -} - /*[clinic input] sys.gettrace @@ -1097,35 +1066,6 @@ Set the profiling function. It will be called on each function call\n\ and return. See the profiler chapter in the library manual." ); -/*[clinic input] -sys._setprofileallthreads - - arg: object - / - -Set the profiling function in all running threads belonging to the current interpreter. - -It will be called on each function call and return. See the profiler chapter -in the library manual. -[clinic start generated code]*/ - -static PyObject * -sys__setprofileallthreads(PyObject *module, PyObject *arg) -/*[clinic end generated code: output=2d61319e27b309fe input=d1a356d3f4f9060a]*/ -{ - PyObject* argument = NULL; - Py_tracefunc func = NULL; - - if (arg != Py_None) { - func = profile_trampoline; - argument = arg; - } - - PyEval_SetProfileAllThreads(func, argument); - - Py_RETURN_NONE; -} - /*[clinic input] sys.getprofile @@ -1487,44 +1427,6 @@ static PyStructSequence_Desc windows_version_desc = { via indexing, the rest are name only */ }; -static PyObject * -_sys_getwindowsversion_from_kernel32() -{ - HANDLE hKernel32; - wchar_t kernel32_path[MAX_PATH]; - LPVOID verblock; - DWORD verblock_size; - VS_FIXEDFILEINFO *ffi; - UINT ffi_len; - DWORD realMajor, realMinor, realBuild; - - Py_BEGIN_ALLOW_THREADS - hKernel32 = GetModuleHandleW(L"kernel32.dll"); - Py_END_ALLOW_THREADS - if (!hKernel32 || !GetModuleFileNameW(hKernel32, kernel32_path, MAX_PATH)) { - PyErr_SetFromWindowsErr(0); - return NULL; - } - verblock_size = GetFileVersionInfoSizeW(kernel32_path, NULL); - if (!verblock_size) { - PyErr_SetFromWindowsErr(0); - return NULL; - } - verblock = PyMem_RawMalloc(verblock_size); - if (!verblock || - !GetFileVersionInfoW(kernel32_path, 0, verblock_size, verblock) || - !VerQueryValueW(verblock, L"", (LPVOID)&ffi, &ffi_len)) { - PyErr_SetFromWindowsErr(0); - return NULL; - } - - realMajor = HIWORD(ffi->dwProductVersionMS); - realMinor = LOWORD(ffi->dwProductVersionMS); - realBuild = HIWORD(ffi->dwProductVersionLS); - PyMem_RawFree(verblock); - return Py_BuildValue("(kkk)", realMajor, realMinor, realBuild); -} - /* Disable deprecation warnings about GetVersionEx as the result is being passed straight through to the caller, who is responsible for using it correctly. */ @@ -1554,13 +1456,11 @@ sys_getwindowsversion_impl(PyObject *module) PyObject *version; int pos = 0; OSVERSIONINFOEXW ver; - - version = PyObject_GetAttrString(module, "_cached_windows_version"); - if (version && PyObject_TypeCheck(version, &WindowsVersionType)) { - return version; - } - Py_XDECREF(version); - PyErr_Clear(); + DWORD realMajor, realMinor, realBuild; + HANDLE hKernel32; + wchar_t kernel32_path[MAX_PATH]; + LPVOID verblock; + DWORD verblock_size; ver.dwOSVersionInfoSize = sizeof(ver); if (!GetVersionExW((OSVERSIONINFOW*) &ver)) @@ -1580,34 +1480,41 @@ sys_getwindowsversion_impl(PyObject *module) PyStructSequence_SET_ITEM(version, pos++, PyLong_FromLong(ver.wSuiteMask)); PyStructSequence_SET_ITEM(version, pos++, PyLong_FromLong(ver.wProductType)); + realMajor = ver.dwMajorVersion; + realMinor = ver.dwMinorVersion; + realBuild = ver.dwBuildNumber; + // GetVersion will lie if we are running in a compatibility mode. // We need to read the version info from a system file resource // to accurately identify the OS version. If we fail for any reason, // just return whatever GetVersion said. - PyObject *realVersion = _sys_getwindowsversion_from_kernel32(); - if (!realVersion) { - PyErr_Clear(); - realVersion = Py_BuildValue("(kkk)", - ver.dwMajorVersion, - ver.dwMinorVersion, - ver.dwBuildNumber - ); - } - - if (realVersion) { - PyStructSequence_SET_ITEM(version, pos++, realVersion); + Py_BEGIN_ALLOW_THREADS + hKernel32 = GetModuleHandleW(L"kernel32.dll"); + Py_END_ALLOW_THREADS + if (hKernel32 && GetModuleFileNameW(hKernel32, kernel32_path, MAX_PATH) && + (verblock_size = GetFileVersionInfoSizeW(kernel32_path, NULL)) && + (verblock = PyMem_RawMalloc(verblock_size))) { + VS_FIXEDFILEINFO *ffi; + UINT ffi_len; + + if (GetFileVersionInfoW(kernel32_path, 0, verblock_size, verblock) && + VerQueryValueW(verblock, L"", (LPVOID)&ffi, &ffi_len)) { + realMajor = HIWORD(ffi->dwProductVersionMS); + realMinor = LOWORD(ffi->dwProductVersionMS); + realBuild = HIWORD(ffi->dwProductVersionLS); + } + PyMem_RawFree(verblock); } + PyStructSequence_SET_ITEM(version, pos++, Py_BuildValue("(kkk)", + realMajor, + realMinor, + realBuild + )); if (PyErr_Occurred()) { Py_DECREF(version); return NULL; } - - if (PyObject_SetAttrString(module, "_cached_windows_version", version) < 0) { - Py_DECREF(version); - return NULL; - } - return version; } @@ -1705,45 +1612,6 @@ sys_mdebug_impl(PyObject *module, int flag) } #endif /* USE_MALLOPT */ - -/*[clinic input] -sys.get_int_max_str_digits - -Set the maximum string digits limit for non-binary int<->str conversions. -[clinic start generated code]*/ - -static PyObject * -sys_get_int_max_str_digits_impl(PyObject *module) -/*[clinic end generated code: output=0042f5e8ae0e8631 input=8dab13e2023e60d5]*/ -{ - PyInterpreterState *interp = _PyInterpreterState_GET(); - return PyLong_FromSsize_t(interp->int_max_str_digits); -} - -/*[clinic input] -sys.set_int_max_str_digits - - maxdigits: int - -Set the maximum string digits limit for non-binary int<->str conversions. -[clinic start generated code]*/ - -static PyObject * -sys_set_int_max_str_digits_impl(PyObject *module, int maxdigits) -/*[clinic end generated code: output=734d4c2511f2a56d input=d7e3f325db6910c5]*/ -{ - PyThreadState *tstate = _PyThreadState_GET(); - if ((!maxdigits) || (maxdigits >= _PY_LONG_MAX_STR_DIGITS_THRESHOLD)) { - tstate->interp->int_max_str_digits = maxdigits; - Py_RETURN_NONE; - } else { - PyErr_Format( - PyExc_ValueError, "maxdigits must be 0 or larger than %d", - _PY_LONG_MAX_STR_DIGITS_THRESHOLD); - return NULL; - } -} - size_t _PySys_GetSizeOf(PyObject *o) { @@ -1904,30 +1772,20 @@ sys__getframe_impl(PyObject *module, int depth) PyThreadState *tstate = _PyThreadState_GET(); _PyInterpreterFrame *frame = tstate->cframe->current_frame; - if (frame != NULL) { - while (depth > 0) { - frame = frame->previous; - if (frame == NULL) { - break; - } - if (_PyFrame_IsIncomplete(frame)) { - continue; - } - --depth; - } + if (_PySys_Audit(tstate, "sys._getframe", NULL) < 0) { + return NULL; + } + + while (depth > 0 && frame != NULL) { + frame = frame->previous; + --depth; } if (frame == NULL) { _PyErr_SetString(tstate, PyExc_ValueError, "call stack is not deep enough"); return NULL; } - - PyObject *pyFrame = Py_XNewRef((PyObject *)_PyFrame_GetFrameObject(frame)); - if (pyFrame && _PySys_Audit(tstate, "sys._getframe", "(O)", pyFrame) < 0) { - Py_DECREF(pyFrame); - return NULL; - } - return pyFrame; + return _Py_XNewRef((PyObject *)_PyFrame_GetFrameObject(frame)); } /*[clinic input] @@ -2051,66 +1909,6 @@ sys_is_finalizing_impl(PyObject *module) return PyBool_FromLong(_Py_IsFinalizing()); } -#ifdef Py_STATS -/*[clinic input] -sys._stats_on - -Turns on stats gathering (stats gathering is on by default). -[clinic start generated code]*/ - -static PyObject * -sys__stats_on_impl(PyObject *module) -/*[clinic end generated code: output=aca53eafcbb4d9fe input=8ddc6df94e484f3a]*/ -{ - _py_stats = &_py_stats_struct; - Py_RETURN_NONE; -} - -/*[clinic input] -sys._stats_off - -Turns off stats gathering (stats gathering is on by default). -[clinic start generated code]*/ - -static PyObject * -sys__stats_off_impl(PyObject *module) -/*[clinic end generated code: output=1534c1ee63812214 input=b3e50e71ecf29f66]*/ -{ - _py_stats = NULL; - Py_RETURN_NONE; -} - -/*[clinic input] -sys._stats_clear - -Clears the stats. -[clinic start generated code]*/ - -static PyObject * -sys__stats_clear_impl(PyObject *module) -/*[clinic end generated code: output=fb65a2525ee50604 input=3e03f2654f44da96]*/ -{ - _Py_StatsClear(); - Py_RETURN_NONE; -} - -/*[clinic input] -sys._stats_dump - -Dump stats to file, and clears the stats. -[clinic start generated code]*/ - -static PyObject * -sys__stats_dump_impl(PyObject *module) -/*[clinic end generated code: output=79f796fb2b4ddf05 input=92346f16d64f6f95]*/ -{ - _Py_PrintSpecializationStats(1); - _Py_StatsClear(); - Py_RETURN_NONE; -} - -#endif - #ifdef ANDROID_API_LEVEL /*[clinic input] sys.getandroidapilevel @@ -2126,80 +1924,6 @@ sys_getandroidapilevel_impl(PyObject *module) } #endif /* ANDROID_API_LEVEL */ -/*[clinic input] -sys.activate_stack_trampoline - - backend: str - / - -Activate the perf profiler trampoline. -[clinic start generated code]*/ - -static PyObject * -sys_activate_stack_trampoline_impl(PyObject *module, const char *backend) -/*[clinic end generated code: output=5783cdeb51874b43 input=b09020e3a17c78c5]*/ -{ -#ifdef PY_HAVE_PERF_TRAMPOLINE - if (strcmp(backend, "perf") == 0) { - _PyPerf_Callbacks cur_cb; - _PyPerfTrampoline_GetCallbacks(&cur_cb); - if (cur_cb.init_state != _Py_perfmap_callbacks.init_state) { - if (_PyPerfTrampoline_SetCallbacks(&_Py_perfmap_callbacks) < 0 ) { - PyErr_SetString(PyExc_ValueError, "can't activate perf trampoline"); - return NULL; - } - } - } - else { - PyErr_Format(PyExc_ValueError, "invalid backend: %s", backend); - return NULL; - } - if (_PyPerfTrampoline_Init(1) < 0) { - return NULL; - } - Py_RETURN_NONE; -#else - PyErr_SetString(PyExc_ValueError, "perf trampoline not available"); - return NULL; -#endif -} - - -/*[clinic input] -sys.deactivate_stack_trampoline - -Dectivate the perf profiler trampoline. -[clinic start generated code]*/ - -static PyObject * -sys_deactivate_stack_trampoline_impl(PyObject *module) -/*[clinic end generated code: output=b50da25465df0ef1 input=491f4fc1ed615736]*/ -{ - if (_PyPerfTrampoline_Init(0) < 0) { - return NULL; - } - Py_RETURN_NONE; -} - -/*[clinic input] -sys.is_stack_trampoline_active - -Returns *True* if the perf profiler trampoline is active. -[clinic start generated code]*/ - -static PyObject * -sys_is_stack_trampoline_active_impl(PyObject *module) -/*[clinic end generated code: output=ab2746de0ad9d293 input=061fa5776ac9dd59]*/ -{ -#ifdef PY_HAVE_PERF_TRAMPOLINE - if (_PyIsPerfTrampolineActive()) { - Py_RETURN_TRUE; - } -#endif - Py_RETURN_FALSE; -} - - static PyMethodDef sys_methods[] = { /* Might as well keep this in alphabetic order */ SYS_ADDAUDITHOOK_METHODDEF @@ -2241,11 +1965,9 @@ static PyMethodDef sys_methods[] = { SYS_GETSWITCHINTERVAL_METHODDEF SYS_SETDLOPENFLAGS_METHODDEF {"setprofile", sys_setprofile, METH_O, setprofile_doc}, - SYS__SETPROFILEALLTHREADS_METHODDEF SYS_GETPROFILE_METHODDEF SYS_SETRECURSIONLIMIT_METHODDEF {"settrace", sys_settrace, METH_O, settrace_doc}, - SYS__SETTRACEALLTHREADS_METHODDEF SYS_GETTRACE_METHODDEF SYS_CALL_TRACING_METHODDEF SYS__DEBUGMALLOCSTATS_METHODDEF @@ -2255,18 +1977,7 @@ static PyMethodDef sys_methods[] = { METH_VARARGS | METH_KEYWORDS, set_asyncgen_hooks_doc}, SYS_GET_ASYNCGEN_HOOKS_METHODDEF SYS_GETANDROIDAPILEVEL_METHODDEF - SYS_ACTIVATE_STACK_TRAMPOLINE_METHODDEF - SYS_DEACTIVATE_STACK_TRAMPOLINE_METHODDEF - SYS_IS_STACK_TRAMPOLINE_ACTIVE_METHODDEF SYS_UNRAISABLEHOOK_METHODDEF - SYS_GET_INT_MAX_STR_DIGITS_METHODDEF - SYS_SET_INT_MAX_STR_DIGITS_METHODDEF -#ifdef Py_STATS - SYS__STATS_ON_METHODDEF - SYS__STATS_OFF_METHODDEF - SYS__STATS_CLEAR_METHODDEF - SYS__STATS_DUMP_METHODDEF -#endif {NULL, NULL} // sentinel }; @@ -2761,7 +2472,6 @@ static PyStructSequence_Field flags_fields[] = { {"utf8_mode", "-X utf8"}, {"warn_default_encoding", "-X warn_default_encoding"}, {"safe_path", "-P"}, - {"int_max_str_digits", "-X int_max_str_digits"}, {0} }; @@ -2769,7 +2479,7 @@ static PyStructSequence_Desc flags_desc = { "sys.flags", /* name */ flags__doc__, /* doc */ flags_fields, /* fields */ - 18 + 17 }; static int @@ -2810,7 +2520,6 @@ set_flags_from_config(PyInterpreterState *interp, PyObject *flags) SetFlag(preconfig->utf8_mode); SetFlag(config->warn_default_encoding); SetFlagObj(PyBool_FromLong(config->safe_path)); - SetFlag(_Py_global_config_int_max_str_digits); #undef SetFlagObj #undef SetFlag return 0; @@ -3004,18 +2713,14 @@ EM_JS(char *, _Py_emscripten_runtime, (void), { if (typeof navigator == 'object') { info = navigator.userAgent; } else if (typeof process == 'object') { - info = "Node.js ".concat(process.version); + info = "Node.js ".concat(process.version) } else { - info = "UNKNOWN"; + info = "UNKNOWN" } var len = lengthBytesUTF8(info) + 1; var res = _malloc(len); - if (res) stringToUTF8(info, res, len); -#if __wasm64__ - return BigInt(res); -#else + stringToUTF8(info, res, len); return res; -#endif }); static PyObject * @@ -3140,7 +2845,7 @@ _PySys_InitCore(PyThreadState *tstate, PyObject *sysdict) SET_SYS("int_info", PyLong_GetInfo()); /* initialize hash_info */ if (Hash_InfoType.tp_name == NULL) { - if (_PyStructSequence_InitBuiltin(&Hash_InfoType, &hash_info_desc) < 0) { + if (PyStructSequence_InitType2(&Hash_InfoType, &hash_info_desc) < 0) { goto type_init_failed; } } @@ -3162,18 +2867,14 @@ _PySys_InitCore(PyThreadState *tstate, PyObject *sysdict) SET_SYS_FROM_STRING("abiflags", ABIFLAGS); #endif -#define ENSURE_INFO_TYPE(TYPE, DESC) \ - do { \ - if (TYPE.tp_name == NULL) { \ - if (_PyStructSequence_InitBuiltinWithFlags( \ - &TYPE, &DESC, Py_TPFLAGS_DISALLOW_INSTANTIATION) < 0) { \ - goto type_init_failed; \ - } \ - } \ - } while (0) - /* version_info */ - ENSURE_INFO_TYPE(VersionInfoType, version_info_desc); + if (VersionInfoType.tp_name == NULL) { + if (_PyStructSequence_InitType(&VersionInfoType, + &version_info_desc, + Py_TPFLAGS_DISALLOW_INSTANTIATION) < 0) { + goto type_init_failed; + } + } version_info = make_version_info(tstate); SET_SYS("version_info", version_info); @@ -3181,18 +2882,27 @@ _PySys_InitCore(PyThreadState *tstate, PyObject *sysdict) SET_SYS("implementation", make_impl_info(version_info)); // sys.flags: updated in-place later by _PySys_UpdateConfig() - ENSURE_INFO_TYPE(FlagsType, flags_desc); + if (FlagsType.tp_name == 0) { + if (_PyStructSequence_InitType(&FlagsType, &flags_desc, + Py_TPFLAGS_DISALLOW_INSTANTIATION) < 0) { + goto type_init_failed; + } + } SET_SYS("flags", make_flags(tstate->interp)); #if defined(MS_WINDOWS) /* getwindowsversion */ - ENSURE_INFO_TYPE(WindowsVersionType, windows_version_desc); + if (WindowsVersionType.tp_name == 0) { + if (_PyStructSequence_InitType(&WindowsVersionType, + &windows_version_desc, + Py_TPFLAGS_DISALLOW_INSTANTIATION) < 0) { + goto type_init_failed; + } + } SET_SYS_FROM_STRING("_vpath", VPATH); #endif -#undef ENSURE_INFO_TYPE - /* float repr style: 0.03 (short) vs 0.029999999999999999 (legacy) */ #if _PY_SHORT_FLOAT_REPR == 1 SET_SYS_FROM_STRING("float_repr_style", "short"); @@ -3204,7 +2914,7 @@ _PySys_InitCore(PyThreadState *tstate, PyObject *sysdict) /* initialize asyncgen_hooks */ if (AsyncGenHooksType.tp_name == NULL) { - if (_PyStructSequence_InitBuiltin( + if (PyStructSequence_InitType2( &AsyncGenHooksType, &asyncgen_hooks_desc) < 0) { goto type_init_failed; } diff --git a/Python/thread.c b/Python/thread.c index 8c8a4e81895eb6..846f02545271cf 100644 --- a/Python/thread.c +++ b/Python/thread.c @@ -55,15 +55,8 @@ PyThread_init_thread(void) PyThread__init_thread(); } -#if defined(HAVE_PTHREAD_STUBS) -# define PYTHREAD_NAME "pthread-stubs" -# include "thread_pthread_stubs.h" -#elif defined(_POSIX_THREADS) -# if defined(__EMSCRIPTEN__) && !defined(__EMSCRIPTEN_PTHREADS__) -# define PYTHREAD_NAME "pthread-stubs" -# else -# define PYTHREAD_NAME "pthread" -# endif +#if defined(_POSIX_THREADS) +# define PYTHREAD_NAME "pthread" # include "thread_pthread.h" #elif defined(NT_THREADS) # define PYTHREAD_NAME "nt" @@ -162,8 +155,7 @@ PyThread_GetInfo(void) #endif if (ThreadInfoType.tp_name == 0) { - if (_PyStructSequence_InitBuiltin(&ThreadInfoType, - &threadinfo_desc) < 0) + if (PyStructSequence_InitType2(&ThreadInfoType, &threadinfo_desc) < 0) return NULL; } @@ -178,9 +170,7 @@ PyThread_GetInfo(void) } PyStructSequence_SET_ITEM(threadinfo, pos++, value); -#ifdef HAVE_PTHREAD_STUBS - value = Py_NewRef(Py_None); -#elif defined(_POSIX_THREADS) +#ifdef _POSIX_THREADS #ifdef USE_SEMAPHORES value = PyUnicode_FromString("semaphore"); #else @@ -191,7 +181,8 @@ PyThread_GetInfo(void) return NULL; } #else - value = Py_NewRef(Py_None); + Py_INCREF(Py_None); + value = Py_None; #endif PyStructSequence_SET_ITEM(threadinfo, pos++, value); diff --git a/Python/thread_pthread.h b/Python/thread_pthread.h index 1c5b320813af83..1b2c28d0f39929 100644 --- a/Python/thread_pthread.h +++ b/Python/thread_pthread.h @@ -7,9 +7,7 @@ #if defined(__APPLE__) || defined(HAVE_PTHREAD_DESTRUCTOR) #define destructor xxdestructor #endif -#ifndef HAVE_PTHREAD_STUBS -# include <pthread.h> -#endif +#include <pthread.h> #if defined(__APPLE__) || defined(HAVE_PTHREAD_DESTRUCTOR) #undef destructor #endif @@ -115,6 +113,19 @@ #endif +#define MICROSECONDS_TO_TIMESPEC(microseconds, ts) \ +do { \ + struct timeval tv; \ + gettimeofday(&tv, NULL); \ + tv.tv_usec += microseconds % 1000000; \ + tv.tv_sec += microseconds / 1000000; \ + tv.tv_sec += tv.tv_usec / 1000000; \ + tv.tv_usec %= 1000000; \ + ts.tv_sec = tv.tv_sec; \ + ts.tv_nsec = tv.tv_usec * 1000; \ +} while(0) + + /* * pthread_cond support */ @@ -145,23 +156,23 @@ _PyThread_cond_init(PyCOND_T *cond) return pthread_cond_init(cond, condattr_monotonic); } - void _PyThread_cond_after(long long us, struct timespec *abs) { - _PyTime_t timeout = _PyTime_FromMicrosecondsClamp(us); - _PyTime_t t; #ifdef CONDATTR_MONOTONIC if (condattr_monotonic) { - t = _PyTime_GetMonotonicClock(); + clock_gettime(CLOCK_MONOTONIC, abs); + abs->tv_sec += us / 1000000; + abs->tv_nsec += (us % 1000000) * 1000; + abs->tv_sec += abs->tv_nsec / 1000000000; + abs->tv_nsec %= 1000000000; + return; } - else #endif - { - t = _PyTime_GetSystemClock(); - } - t = _PyTime_Add(t, timeout); - _PyTime_AsTimespec_clamp(t, abs); + + struct timespec ts; + MICROSECONDS_TO_TIMESPEC(us, ts); + *abs = ts; } @@ -427,15 +438,22 @@ PyThread_acquire_lock_timed(PyThread_type_lock lock, PY_TIMEOUT_T microseconds, _PyTime_t timeout; // relative timeout if (microseconds >= 0) { - // bpo-41710: PyThread_acquire_lock_timed() cannot report timeout - // overflow to the caller, so clamp the timeout to - // [_PyTime_MIN, _PyTime_MAX]. - // - // _PyTime_MAX nanoseconds is around 292.3 years. - // - // _thread.Lock.acquire() and _thread.RLock.acquire() raise an - // OverflowError if microseconds is greater than PY_TIMEOUT_MAX. - timeout = _PyTime_FromMicrosecondsClamp(microseconds); + _PyTime_t ns; + if (microseconds <= _PyTime_MAX / 1000) { + ns = microseconds * 1000; + } + else { + // bpo-41710: PyThread_acquire_lock_timed() cannot report timeout + // overflow to the caller, so clamp the timeout to + // [_PyTime_MIN, _PyTime_MAX]. + // + // _PyTime_MAX nanoseconds is around 292.3 years. + // + // _thread.Lock.acquire() and _thread.RLock.acquire() raise an + // OverflowError if microseconds is greater than PY_TIMEOUT_MAX. + ns = _PyTime_MAX; + } + timeout = _PyTime_FromNanoseconds(ns); } else { timeout = _PyTime_FromNanoseconds(-1); @@ -486,7 +504,7 @@ PyThread_acquire_lock_timed(PyThread_type_lock lock, PY_TIMEOUT_T microseconds, #ifndef HAVE_SEM_CLOCKWAIT if (timeout > 0) { /* wait interrupted by a signal (EINTR): recompute the timeout */ - timeout = _PyDeadline_Get(deadline); + _PyTime_t timeout = _PyDeadline_Get(deadline); if (timeout < 0) { status = ETIMEDOUT; break; @@ -608,79 +626,63 @@ PyThread_acquire_lock_timed(PyThread_type_lock lock, PY_TIMEOUT_T microseconds, if (microseconds == 0) { status = pthread_mutex_trylock( &thelock->mut ); - if (status != EBUSY) { + if (status != EBUSY) CHECK_STATUS_PTHREAD("pthread_mutex_trylock[1]"); - } } else { status = pthread_mutex_lock( &thelock->mut ); CHECK_STATUS_PTHREAD("pthread_mutex_lock[1]"); } - if (status != 0) { - goto done; - } - - if (thelock->locked == 0) { - success = PY_LOCK_ACQUIRED; - goto unlock; - } - if (microseconds == 0) { - goto unlock; - } - - struct timespec abs_timeout; - if (microseconds > 0) { - _PyThread_cond_after(microseconds, &abs_timeout); - } - // Continue trying until we get the lock - - // mut must be locked by me -- part of the condition protocol - while (1) { - if (microseconds > 0) { - status = pthread_cond_timedwait(&thelock->lock_released, - &thelock->mut, &abs_timeout); - if (status == 1) { - break; + if (status == 0) { + if (thelock->locked == 0) { + success = PY_LOCK_ACQUIRED; + } + else if (microseconds != 0) { + struct timespec abs; + if (microseconds > 0) { + _PyThread_cond_after(microseconds, &abs); } - if (status == ETIMEDOUT) { - break; + /* continue trying until we get the lock */ + + /* mut must be locked by me -- part of the condition + * protocol */ + while (success == PY_LOCK_FAILURE) { + if (microseconds > 0) { + status = pthread_cond_timedwait( + &thelock->lock_released, + &thelock->mut, &abs); + if (status == 1) { + break; + } + if (status == ETIMEDOUT) + break; + CHECK_STATUS_PTHREAD("pthread_cond_timedwait"); + } + else { + status = pthread_cond_wait( + &thelock->lock_released, + &thelock->mut); + CHECK_STATUS_PTHREAD("pthread_cond_wait"); + } + + if (intr_flag && status == 0 && thelock->locked) { + /* We were woken up, but didn't get the lock. We probably received + * a signal. Return PY_LOCK_INTR to allow the caller to handle + * it and retry. */ + success = PY_LOCK_INTR; + break; + } + else if (status == 0 && !thelock->locked) { + success = PY_LOCK_ACQUIRED; + } } - CHECK_STATUS_PTHREAD("pthread_cond_timedwait"); - } - else { - status = pthread_cond_wait( - &thelock->lock_released, - &thelock->mut); - CHECK_STATUS_PTHREAD("pthread_cond_wait"); - } - - if (intr_flag && status == 0 && thelock->locked) { - // We were woken up, but didn't get the lock. We probably received - // a signal. Return PY_LOCK_INTR to allow the caller to handle - // it and retry. - success = PY_LOCK_INTR; - break; - } - - if (status == 0 && !thelock->locked) { - success = PY_LOCK_ACQUIRED; - break; } - - // Wait got interrupted by a signal: retry + if (success == PY_LOCK_ACQUIRED) thelock->locked = 1; + status = pthread_mutex_unlock( &thelock->mut ); + CHECK_STATUS_PTHREAD("pthread_mutex_unlock[1]"); } -unlock: - if (success == PY_LOCK_ACQUIRED) { - thelock->locked = 1; - } - status = pthread_mutex_unlock( &thelock->mut ); - CHECK_STATUS_PTHREAD("pthread_mutex_unlock[1]"); - -done: - if (error) { - success = PY_LOCK_FAILURE; - } + if (error) success = PY_LOCK_FAILURE; return success; } diff --git a/Python/thread_pthread_stubs.h b/Python/thread_pthread_stubs.h deleted file mode 100644 index 8b80c0f87e2509..00000000000000 --- a/Python/thread_pthread_stubs.h +++ /dev/null @@ -1,185 +0,0 @@ -#include "cpython/pthread_stubs.h" - -// mutex -int -pthread_mutex_init(pthread_mutex_t *restrict mutex, - const pthread_mutexattr_t *restrict attr) -{ - return 0; -} - -int -pthread_mutex_destroy(pthread_mutex_t *mutex) -{ - return 0; -} - -int -pthread_mutex_trylock(pthread_mutex_t *mutex) -{ - return 0; -} - -int -pthread_mutex_lock(pthread_mutex_t *mutex) -{ - return 0; -} - -int -pthread_mutex_unlock(pthread_mutex_t *mutex) -{ - return 0; -} - -// condition -int -pthread_cond_init(pthread_cond_t *restrict cond, - const pthread_condattr_t *restrict attr) -{ - return 0; -} - -PyAPI_FUNC(int)pthread_cond_destroy(pthread_cond_t *cond) -{ - return 0; -} - -int -pthread_cond_wait(pthread_cond_t *restrict cond, - pthread_mutex_t *restrict mutex) -{ - return 0; -} - -int -pthread_cond_timedwait(pthread_cond_t *restrict cond, - pthread_mutex_t *restrict mutex, - const struct timespec *restrict abstime) -{ - return 0; -} - -int -pthread_cond_signal(pthread_cond_t *cond) -{ - return 0; -} - -int -pthread_condattr_init(pthread_condattr_t *attr) -{ - return 0; -} - -int -pthread_condattr_setclock(pthread_condattr_t *attr, clockid_t clock_id) -{ - return 0; -} - -// pthread -int -pthread_create(pthread_t *restrict thread, - const pthread_attr_t *restrict attr, - void *(*start_routine)(void *), - void *restrict arg) -{ - return EAGAIN; -} - -int -pthread_detach(pthread_t thread) -{ - return 0; -} - -PyAPI_FUNC(pthread_t) pthread_self(void) -{ - return 0; -} - -int -pthread_exit(void *retval) -{ - exit(0); -} - -int -pthread_attr_init(pthread_attr_t *attr) -{ - return 0; -} - -int -pthread_attr_setstacksize( - pthread_attr_t *attr, size_t stacksize) -{ - return 0; -} - -int -pthread_attr_destroy(pthread_attr_t *attr) -{ - return 0; -} - -// pthread_key -typedef struct { - bool in_use; - void *value; -} py_tls_entry; - -static py_tls_entry py_tls_entries[PTHREAD_KEYS_MAX] = {0}; - -int -pthread_key_create(pthread_key_t *key, void (*destr_function)(void *)) -{ - if (!key) { - return EINVAL; - } - if (destr_function != NULL) { - Py_FatalError("pthread_key_create destructor is not supported"); - } - for (pthread_key_t idx = 0; idx < PTHREAD_KEYS_MAX; idx++) { - if (!py_tls_entries[idx].in_use) { - py_tls_entries[idx].in_use = true; - *key = idx; - return 0; - } - } - return EAGAIN; -} - -int -pthread_key_delete(pthread_key_t key) -{ - if (key < 0 || key >= PTHREAD_KEYS_MAX || !py_tls_entries[key].in_use) { - return EINVAL; - } - py_tls_entries[key].in_use = false; - py_tls_entries[key].value = NULL; - return 0; -} - - -void * -pthread_getspecific(pthread_key_t key) { - if (key < 0 || key >= PTHREAD_KEYS_MAX || !py_tls_entries[key].in_use) { - return NULL; - } - return py_tls_entries[key].value; -} - -int -pthread_setspecific(pthread_key_t key, const void *value) -{ - if (key < 0 || key >= PTHREAD_KEYS_MAX || !py_tls_entries[key].in_use) { - return EINVAL; - } - py_tls_entries[key].value = (void *)value; - return 0; -} - -// let thread_pthread define the Python API -#include "thread_pthread.h" diff --git a/Python/traceback.c b/Python/traceback.c index de658b9103180e..e76c9aa1a14c5e 100644 --- a/Python/traceback.c +++ b/Python/traceback.c @@ -3,6 +3,7 @@ #include "Python.h" +#include "frameobject.h" // PyFrame_GetBack() #include "pycore_ast.h" // asdl_seq_* #include "pycore_call.h" // _PyObject_CallMethodFormat() #include "pycore_compile.h" // _PyAST_Optimize @@ -14,9 +15,7 @@ #include "pycore_pyerrors.h" // _PyErr_Fetch() #include "pycore_pystate.h" // _PyThreadState_GET() #include "pycore_traceback.h" // EXCEPTION_TB_HEADER - #include "../Parser/pegen.h" // _PyPegen_byte_offset_to_character_offset() -#include "frameobject.h" // PyFrame_New() #include "structmember.h" // PyMemberDef #include "osdefs.h" // SEP #ifdef HAVE_FCNTL_H @@ -592,6 +591,7 @@ _Py_DisplaySourceLine(PyObject *f, PyObject *filename, int lineno, int indent, * Traceback (most recent call last): * File "/home/isidentical/cpython/cpython/t.py", line 10, in <module> * add_values(1, 2, 'x', 3, 4) + * ^^^^^^^^^^^^^^^^^^^^^^^^^^^ * File "/home/isidentical/cpython/cpython/t.py", line 2, in add_values * return a + b + c + d + e * ~~~~~~^~~ @@ -735,7 +735,7 @@ print_error_location_carets(PyObject *f, int offset, Py_ssize_t start_offset, Py int special_chars = (left_end_offset != -1 || right_start_offset != -1); const char *str; while (++offset <= end_offset) { - if (offset <= start_offset) { + if (offset <= start_offset || offset > end_offset) { str = " "; } else if (special_chars && left_end_offset < offset && offset <= right_start_offset) { str = secondary; @@ -791,7 +791,6 @@ tb_displayline(PyTracebackObject* tb, PyObject *f, PyObject *filename, int linen int code_offset = tb->tb_lasti; PyCodeObject* code = frame->f_frame->f_code; - const Py_ssize_t source_line_len = PyUnicode_GET_LENGTH(source_line); int start_line; int end_line; @@ -813,7 +812,7 @@ tb_displayline(PyTracebackObject* tb, PyObject *f, PyObject *filename, int linen // // ERROR LINE ERROR LINE ERROR LINE ERROR LINE ERROR LINE ERROR LINE ERROR LINE // ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~~~ - // | |-> left_end_offset | |-> end_offset + // | |-> left_end_offset | |-> left_offset // |-> start_offset |-> right_start_offset // // In general we will only have (start_offset, end_offset) but we can gather more information @@ -822,9 +821,6 @@ tb_displayline(PyTracebackObject* tb, PyObject *f, PyObject *filename, int linen // the different ranges (primary_error_char and secondary_error_char). If we cannot obtain the // AST information or we cannot identify special ranges within it, then left_end_offset and // right_end_offset will be set to -1. - // - // To keep the column indicators pertinent, they are not shown when the primary character - // spans the whole line. // Convert the utf-8 byte offset to the actual character offset so we print the right number of carets. assert(source_line); @@ -862,7 +858,7 @@ tb_displayline(PyTracebackObject* tb, PyObject *f, PyObject *filename, int linen goto done; } - Py_ssize_t i = source_line_len; + Py_ssize_t i = PyUnicode_GET_LENGTH(source_line); while (--i >= 0) { if (!IS_WHITESPACE(source_line_str[i])) { break; @@ -872,13 +868,6 @@ tb_displayline(PyTracebackObject* tb, PyObject *f, PyObject *filename, int linen end_offset = i + 1; } - // Elide indicators if primary char spans the frame line - Py_ssize_t stripped_line_len = source_line_len - truncation - _TRACEBACK_SOURCE_LINE_INDENT; - bool has_secondary_ranges = (left_end_offset != -1 || right_start_offset != -1); - if (end_offset - start_offset == stripped_line_len && !has_secondary_ranges) { - goto done; - } - if (_Py_WriteIndentedMargin(margin_indent, margin, f) < 0) { err = -1; goto done; diff --git a/README.rst b/README.rst index 4ae5dfd1bb2525..c3a83bddf05e04 100644 --- a/README.rst +++ b/README.rst @@ -201,7 +201,7 @@ script) you must take care that your primary python executable is not overwritten by the installation of a different version. All files and directories installed using ``make altinstall`` contain the major and minor version and can thus live side-by-side. ``make install`` also creates -``${prefix}/bin/python3`` which refers to ``${prefix}/bin/python3.X``. If you +``${prefix}/bin/python3`` which refers to ``${prefix}/bin/pythonX.Y``. If you intend to install multiple versions using the same prefix you must decide which version (if any) is your "primary" version. Install that version using ``make install``. Install all other versions using ``make altinstall``. @@ -238,7 +238,7 @@ All current PEPs, as well as guidelines for submitting a new PEP, are listed at Release Schedule ---------------- -See :pep:`693` for Python 3.12 release details. +See :pep:`664` for Python 3.12 release details. Copyright and License Information diff --git a/Tools/c-analyzer/c_common/fsutil.py b/Tools/c-analyzer/c_common/fsutil.py index a8cf8d0537e40d..120a140288fb72 100644 --- a/Tools/c-analyzer/c_common/fsutil.py +++ b/Tools/c-analyzer/c_common/fsutil.py @@ -104,25 +104,6 @@ def format_filename(filename, relroot=USE_CWD, *, return filename -def match_path_tail(path1, path2): - """Return True if one path ends the other.""" - if path1 == path2: - return True - if os.path.isabs(path1): - if os.path.isabs(path2): - return False - return _match_tail(path1, path2) - elif os.path.isabs(path2): - return _match_tail(path2, path1) - else: - return _match_tail(path1, path2) or _match_tail(path2, path1) - - -def _match_tail(path, tail): - assert not os.path.isabs(tail), repr(tail) - return path.endswith(os.path.sep + tail) - - ################################## # find files diff --git a/Tools/c-analyzer/c_common/tables.py b/Tools/c-analyzer/c_common/tables.py index fe8e8cf473de4f..130be6beba5f81 100644 --- a/Tools/c-analyzer/c_common/tables.py +++ b/Tools/c-analyzer/c_common/tables.py @@ -1,4 +1,3 @@ -from collections import namedtuple import csv import re import textwrap @@ -226,11 +225,7 @@ def _normalize_table_file_props(header, sep): def resolve_columns(specs): if isinstance(specs, str): specs = specs.replace(',', ' ').strip().split() - resolved = [] - for raw in specs: - column = ColumnSpec.from_raw(raw) - resolved.append(column) - return resolved + return _resolve_colspecs(specs) def build_table(specs, *, sep=' ', defaultwidth=None): @@ -238,145 +233,37 @@ def build_table(specs, *, sep=' ', defaultwidth=None): return _build_table(columns, sep=sep, defaultwidth=defaultwidth) -class ColumnSpec(namedtuple('ColumnSpec', 'field label fmt')): - - REGEX = re.compile(textwrap.dedent(r''' - ^ +_COLSPEC_RE = re.compile(textwrap.dedent(r''' + ^ + (?: + \[ + ( + (?: [^\s\]] [^\]]* )? + [^\s\]] + ) # <label> + ] + )? + ( \w+ ) # <field> + (?: (?: - \[ - ( - (?: [^\s\]] [^\]]* )? - [^\s\]] - ) # <label> - ] - )? - ( [-\w]+ ) # <field> + : + ( [<^>] ) # <align> + ( \d+ ) # <width1> + ) + | (?: (?: : - ( [<^>] ) # <align> - ( \d+ )? # <width1> - ) - | + ( \d+ ) # <width2> + )? (?: - (?: - : - ( \d+ ) # <width2> - )? - (?: - : - ( .*? ) # <fmt> - )? - ) - )? - $ - '''), re.VERBOSE) - - @classmethod - def from_raw(cls, raw): - if not raw: - raise ValueError('missing column spec') - elif isinstance(raw, cls): - return raw - - if isinstance(raw, str): - *values, _ = cls._parse(raw) - else: - *values, _ = cls._normalize(raw) - if values is None: - raise ValueError(f'unsupported column spec {raw!r}') - return cls(*values) - - @classmethod - def parse(cls, specstr): - parsed = cls._parse(specstr) - if not parsed: - return None - *values, _ = parsed - return cls(*values) - - @classmethod - def _parse(cls, specstr): - m = cls.REGEX.match(specstr) - if not m: - return None - (label, field, - align, width1, - width2, fmt, - ) = m.groups() - if not label: - label = field - if fmt: - assert not align and not width1, (specstr,) - _parsed = _parse_fmt(fmt) - if not _parsed: - raise NotImplementedError - elif width2: - width, _ = _parsed - if width != int(width2): - raise NotImplementedError(specstr) - elif width2: - fmt = width2 - width = int(width2) - else: - assert not fmt, (fmt, specstr) - if align: - width = int(width1) if width1 else len(label) - fmt = f'{align}{width}' - else: - width = None - return field, label, fmt, width - - @classmethod - def _normalize(cls, spec): - if len(spec) == 1: - raw, = spec - raise NotImplementedError - return _resolve_column(raw) - - if len(spec) == 4: - label, field, width, fmt = spec - if width: - if not fmt: - fmt = str(width) - elif _parse_fmt(fmt)[0] != width: - raise ValueError(f'width mismatch in {spec}') - elif len(raw) == 3: - label, field, fmt = spec - if not field: - label, field = None, label - elif not isinstance(field, str) or not field.isidentifier(): - # XXX This doesn't seem right... - fmt = f'{field}:{fmt}' if fmt else field - label, field = None, label - elif len(raw) == 2: - label = None - field, fmt = raw - if not field: - field, fmt = fmt, None - elif not field.isidentifier() or fmt.isidentifier(): - label, field = field, fmt - else: - raise NotImplementedError - - fmt = f':{fmt}' if fmt else '' - if label: - return cls._parse(f'[{label}]{field}{fmt}') - else: - return cls._parse(f'{field}{fmt}') - - @property - def width(self): - if not self.fmt: - return None - parsed = _parse_fmt(self.fmt) - if not parsed: - return None - width, _ = parsed - return width - - def resolve_width(self, default=None): - return _resolve_width(self.width, self.fmt, self.label, default) + : + ( .*? ) # <fmt> + )? + ) + )? + $ +'''), re.VERBOSE) def _parse_fmt(fmt): @@ -385,31 +272,100 @@ def _parse_fmt(fmt): width = fmt[1:] if width.isdigit(): return int(width), align - elif fmt.isdigit(): - return int(fmt), '<' - return None + return None, None -def _resolve_width(width, fmt, label, default): +def _parse_colspec(raw): + m = _COLSPEC_RE.match(raw) + if not m: + return None + label, field, align, width1, width2, fmt = m.groups() + if not label: + label = field + if width1: + width = None + fmt = f'{align}{width1}' + elif width2: + width = int(width2) + if fmt: + _width, _ = _parse_fmt(fmt) + if _width == width: + width = None + else: + width = None + return field, label, width, fmt + + +def _normalize_colspec(spec): + if len(spec) == 1: + raw, = spec + return _resolve_column(raw) + + if len(spec) == 4: + label, field, width, fmt = spec + if width: + fmt = f'{width}:{fmt}' if fmt else width + elif len(raw) == 3: + label, field, fmt = spec + if not field: + label, field = None, label + elif not isinstance(field, str) or not field.isidentifier(): + fmt = f'{field}:{fmt}' if fmt else field + label, field = None, label + elif len(raw) == 2: + label = None + field, fmt = raw + if not field: + field, fmt = fmt, None + elif not field.isidentifier() or fmt.isidentifier(): + label, field = field, fmt + else: + raise NotImplementedError + + fmt = f':{fmt}' if fmt else '' + if label: + return _parse_colspec(f'[{label}]{field}{fmt}') + else: + return _parse_colspec(f'{field}{fmt}') + + +def _resolve_colspec(raw): + if isinstance(raw, str): + spec = _parse_colspec(raw) + else: + spec = _normalize_colspec(raw) + if spec is None: + raise ValueError(f'unsupported column spec {raw!r}') + return spec + + +def _resolve_colspecs(columns): + parsed = [] + for raw in columns: + column = _resolve_colspec(raw) + parsed.append(column) + return parsed + + +def _resolve_width(spec, defaultwidth): + _, label, width, fmt = spec if width: if not isinstance(width, int): raise NotImplementedError return width - elif fmt: - parsed = _parse_fmt(fmt) - if parsed: - width, _ = parsed - if width: - return width - - if not default: + elif width and fmt: + width, _ = _parse_fmt(fmt) + if width: + return width + + if not defaultwidth: return WIDTH - elif hasattr(default, 'get'): - defaults = default - default = defaults.get(None) or WIDTH - return defaults.get(label) or default - else: - return default or WIDTH + elif not hasattr(defaultwidth, 'get'): + return defaultwidth or WIDTH + + defaultwidths = defaultwidth + defaultwidth = defaultwidths.get(None) or WIDTH + return defaultwidths.get(label) or defaultwidth def _build_table(columns, *, sep=' ', defaultwidth=None): @@ -417,13 +373,16 @@ def _build_table(columns, *, sep=' ', defaultwidth=None): div = [] rowfmt = [] for spec in columns: - width = spec.resolve_width(defaultwidth) - colfmt = spec.fmt - colfmt = f':{spec.fmt}' if spec.fmt else f':{width}' + label, field, _, colfmt = spec + width = _resolve_width(spec, defaultwidth) + if colfmt: + colfmt = f':{colfmt}' + else: + colfmt = f':{width}' - header.append(f' {{:^{width}}} '.format(spec.label)) + header.append(f' {{:^{width}}} '.format(label)) div.append('-' * (width + 2)) - rowfmt.append(f' {{{spec.field}{colfmt}}} ') + rowfmt.append(f' {{{field}{colfmt}}} ') return ( sep.join(header), sep.join(div), diff --git a/Tools/c-analyzer/c_parser/__init__.py b/Tools/c-analyzer/c_parser/__init__.py index c7316fcfb74ffd..fc10aff94505da 100644 --- a/Tools/c-analyzer/c_parser/__init__.py +++ b/Tools/c-analyzer/c_parser/__init__.py @@ -22,12 +22,8 @@ def parse_files(filenames, *, if get_file_preprocessor is None: get_file_preprocessor = _get_preprocessor() for filename in filenames: - try: - yield from _parse_file( - filename, match_kind, get_file_preprocessor, file_maxsizes) - except Exception: - print(f'# requested file: <{filename}>') - raise # re-raise + yield from _parse_file( + filename, match_kind, get_file_preprocessor, file_maxsizes) def _parse_file(filename, match_kind, get_file_preprocessor, maxsizes): diff --git a/Tools/c-analyzer/c_parser/info.py b/Tools/c-analyzer/c_parser/info.py index 3fa9fefbd5ec0b..a1d349dc0b0ddb 100644 --- a/Tools/c-analyzer/c_parser/info.py +++ b/Tools/c-analyzer/c_parser/info.py @@ -385,9 +385,6 @@ def get_parsed_vartype(decl): elif isinstance(decl, Variable): storage = decl.storage typequal, typespec, abstract = decl.vartype - elif isinstance(decl, Signature): - storage = None - typequal, typespec, abstract = decl.returntype elif isinstance(decl, Function): storage = decl.storage typequal, typespec, abstract = decl.signature.returntype @@ -792,7 +789,6 @@ def _from_row(cls, row): if kind is not cls.kind: raise TypeError(f'expected kind {cls.kind.value!r}, got {row!r}') fileinfo = FileInfo.from_raw(filename) - extra = None if isinstance(data, str): data, extra = cls._parse_data(data, fmt='row') if extra: @@ -1016,18 +1012,6 @@ def __str__(self): def returns(self): return self.returntype - @property - def typequal(self): - return self.returntype.typequal - - @property - def typespec(self): - return self.returntype.typespec - - @property - def abstract(self): - return self.returntype.abstract - class Function(Declaration): kind = KIND.FUNCTION @@ -1122,16 +1106,9 @@ class TypeDef(TypeDeclaration): def _resolve_data(cls, data): if not data: raise NotImplementedError(data) - kwargs = dict(data) - del kwargs['storage'] - if 'returntype' in kwargs: - vartype = kwargs['returntype'] - del vartype['storage'] - kwargs['returntype'] = VarType(**vartype) - datacls = Signature - else: - datacls = VarType - return datacls(**kwargs), None + vartype = dict(data) + del vartype['storage'] + return VarType(**vartype), None @classmethod def _raw_data(self, data): diff --git a/Tools/c-analyzer/c_parser/parser/__init__.py b/Tools/c-analyzer/c_parser/parser/__init__.py index 4227e938d7f8da..b5eae2ed92d0da 100644 --- a/Tools/c-analyzer/c_parser/parser/__init__.py +++ b/Tools/c-analyzer/c_parser/parser/__init__.py @@ -12,7 +12,7 @@ * ... -(see: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf) +(see: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf) We have taken advantage of the elements of the C grammar that are used only in a few limited contexts, mostly as delimiters. They allow us to @@ -42,7 +42,7 @@ + (stmt) case: between expression and stmt + (stmt) default: between "default" and stmt * "=" - + (decl) declaration: between decl and initializer + + (decl) delaration: between decl and initializer + (decl) enumerator: between identifier and "initializer" + (expr) assignment: between "var" and expr @@ -92,7 +92,7 @@ * no "inline" type decls in function return types * no superfluous parentheses in declarators * var decls in for loops are always "simple" (e.g. no inline types) -* only inline struct/union/enum decls may be anonymous (without a name) +* only inline struct/union/enum decls may be anonymouns (without a name) * no function pointers in function pointer parameters * for loop "headers" do not have curly braces (e.g. compound init) * syntactically, variable decls do not overlap with stmts/exprs, except diff --git a/Tools/c-analyzer/c_parser/parser/_common.py b/Tools/c-analyzer/c_parser/parser/_common.py index d468d5442a939f..40c36039f3f47d 100644 --- a/Tools/c-analyzer/c_parser/parser/_common.py +++ b/Tools/c-analyzer/c_parser/parser/_common.py @@ -9,11 +9,7 @@ def log_match(group, m): from . import _logger - text = m.group(0) - if text.startswith(('(', ')')) or text.endswith(('(', ')')): - _logger.debug(f'matched <{group}> ({text!r})') - else: - _logger.debug(f'matched <{group}> ({text})') + _logger.debug(f'matched <{group}> ({m.group(0)})') ############################# diff --git a/Tools/c-analyzer/c_parser/preprocessor/__init__.py b/Tools/c-analyzer/c_parser/preprocessor/__init__.py index cdc1a4e1269059..e38176fee31fac 100644 --- a/Tools/c-analyzer/c_parser/preprocessor/__init__.py +++ b/Tools/c-analyzer/c_parser/preprocessor/__init__.py @@ -1,9 +1,7 @@ import contextlib +import distutils.ccompiler import logging -import os import os.path -import re -import sys from c_common.fsutil import match_glob as _match_glob from c_common.tables import parse_table as _parse_table @@ -35,11 +33,9 @@ def preprocess(source, *, incldirs=None, - includes=None, macros=None, samefiles=None, filename=None, - cwd=None, tool=True, ): """... @@ -47,27 +43,17 @@ def preprocess(source, *, CWD should be the project root and "source" should be relative. """ if tool: - if not cwd: - cwd = os.getcwd() - logger.debug(f'CWD: {cwd!r}') - logger.debug(f'incldirs: {incldirs!r}') - logger.debug(f'includes: {includes!r}') - logger.debug(f'macros: {macros!r}') + logger.debug(f'CWD: {os.getcwd()!r}') + logger.debug(f'incldirs: {incldirs!r}') + logger.debug(f'macros: {macros!r}') logger.debug(f'samefiles: {samefiles!r}') _preprocess = _get_preprocessor(tool) with _good_file(source, filename) as source: - return _preprocess( - source, - incldirs, - includes, - macros, - samefiles, - cwd, - ) or () + return _preprocess(source, incldirs, macros, samefiles) or () else: source, filename = _resolve_source(source, filename) # We ignore "includes", "macros", etc. - return _pure.preprocess(source, filename, cwd) + return _pure.preprocess(source, filename) # if _run() returns just the lines: # text = _run(source) @@ -84,7 +70,6 @@ def preprocess(source, *, def get_preprocessor(*, file_macros=None, - file_includes=None, file_incldirs=None, file_same=None, ignore_exc=False, @@ -93,12 +78,10 @@ def get_preprocessor(*, _preprocess = preprocess if file_macros: file_macros = tuple(_parse_macros(file_macros)) - if file_includes: - file_includes = tuple(_parse_includes(file_includes)) if file_incldirs: file_incldirs = tuple(_parse_incldirs(file_incldirs)) if file_same: - file_same = dict(file_same or ()) + file_same = tuple(file_same) if not callable(ignore_exc): ignore_exc = (lambda exc, _ig=ignore_exc: _ig) @@ -106,26 +89,16 @@ def get_file_preprocessor(filename): filename = filename.strip() if file_macros: macros = list(_resolve_file_values(filename, file_macros)) - if file_includes: - # There's a small chance we could need to filter out any - # includes that import "filename". It isn't clear that it's - # a problem any longer. If we do end up filtering then - # it may make sense to use c_common.fsutil.match_path_tail(). - includes = [i for i, in _resolve_file_values(filename, file_includes)] if file_incldirs: incldirs = [v for v, in _resolve_file_values(filename, file_incldirs)] - if file_same: - samefiles = _resolve_samefiles(filename, file_same) def preprocess(**kwargs): if file_macros and 'macros' not in kwargs: kwargs['macros'] = macros - if file_includes and 'includes' not in kwargs: - kwargs['includes'] = includes if file_incldirs and 'incldirs' not in kwargs: - kwargs['incldirs'] = incldirs - if file_same and 'samefiles' not in kwargs: - kwargs['samefiles'] = samefiles + kwargs['incldirs'] = [v for v, in _resolve_file_values(filename, file_incldirs)] + if file_same and 'file_same' not in kwargs: + kwargs['samefiles'] = file_same kwargs.setdefault('filename', filename) with handling_errors(ignore_exc, log_err=log_err): return _preprocess(filename, **kwargs) @@ -145,11 +118,6 @@ def _parse_macros(macros): yield row -def _parse_includes(includes): - for row, srcfile in _parse_table(includes, '\t', 'glob\tinclude', default=None): - yield row - - def _parse_incldirs(incldirs): for row, srcfile in _parse_table(incldirs, '\t', 'glob\tdirname', default=None): glob, dirname = row @@ -160,43 +128,6 @@ def _parse_incldirs(incldirs): yield row -def _resolve_samefiles(filename, file_same): - assert '*' not in filename, (filename,) - assert os.path.normpath(filename) == filename, (filename,) - _, suffix = os.path.splitext(filename) - samefiles = [] - for patterns, in _resolve_file_values(filename, file_same.items()): - for pattern in patterns: - same = _resolve_samefile(filename, pattern, suffix) - if not same: - continue - samefiles.append(same) - return samefiles - - -def _resolve_samefile(filename, pattern, suffix): - if pattern == filename: - return None - if pattern.endswith(os.path.sep): - pattern += f'*{suffix}' - assert os.path.normpath(pattern) == pattern, (pattern,) - if '*' in os.path.dirname(pattern): - raise NotImplementedError((filename, pattern)) - if '*' not in os.path.basename(pattern): - return pattern - - common = os.path.commonpath([filename, pattern]) - relpattern = pattern[len(common) + len(os.path.sep):] - relpatterndir = os.path.dirname(relpattern) - relfile = filename[len(common) + len(os.path.sep):] - if os.path.basename(pattern) == '*': - return os.path.join(common, relpatterndir, relfile) - elif os.path.basename(relpattern) == '*' + suffix: - return os.path.join(common, relpatterndir, relfile) - else: - raise NotImplementedError((filename, pattern)) - - @contextlib.contextmanager def handling_errors(ignore_exc=None, *, log_err=None): try: @@ -237,17 +168,9 @@ def handling_errors(ignore_exc=None, *, log_err=None): } -def _get_default_compiler(): - if re.match('cygwin.*', sys.platform) is not None: - return 'unix' - if os.name == 'nt': - return 'msvc' - return 'unix' - - def _get_preprocessor(tool): if tool is True: - tool = _get_default_compiler() + tool = distutils.ccompiler.get_default_compiler() preprocess = _COMPILERS.get(tool) if preprocess is None: raise ValueError(f'unsupported tool {tool}') diff --git a/Tools/c-analyzer/c_parser/preprocessor/common.py b/Tools/c-analyzer/c_parser/preprocessor/common.py index 4291a066337545..63681025c63d47 100644 --- a/Tools/c-analyzer/c_parser/preprocessor/common.py +++ b/Tools/c-analyzer/c_parser/preprocessor/common.py @@ -44,7 +44,7 @@ def run_cmd(argv, *, return proc.stdout -def preprocess(tool, filename, cwd=None, **kwargs): +def preprocess(tool, filename, **kwargs): argv = _build_argv(tool, filename, **kwargs) logger.debug(' '.join(shlex.quote(v) for v in argv)) @@ -59,24 +59,19 @@ def preprocess(tool, filename, cwd=None, **kwargs): # distutil compiler object's preprocess() method, since that # one writes to stdout/stderr and it's simpler to do it directly # through subprocess. - return run_cmd(argv, cwd=cwd) + return run_cmd(argv) def _build_argv( tool, filename, incldirs=None, - includes=None, macros=None, preargs=None, postargs=None, executable=None, compiler=None, ): - if includes: - includes = tuple(f'-include{i}' for i in includes) - postargs = (includes + postargs) if postargs else includes - compiler = distutils.ccompiler.new_compiler( compiler=compiler or tool, ) diff --git a/Tools/c-analyzer/c_parser/preprocessor/gcc.py b/Tools/c-analyzer/c_parser/preprocessor/gcc.py index 770802253792d8..bb404a487b735d 100644 --- a/Tools/c-analyzer/c_parser/preprocessor/gcc.py +++ b/Tools/c-analyzer/c_parser/preprocessor/gcc.py @@ -7,12 +7,7 @@ TOOL = 'gcc' # https://gcc.gnu.org/onlinedocs/cpp/Preprocessor-Output.html -# flags: -# 1 start of a new file -# 2 returning to a file (after including another) -# 3 following text comes from a system header file -# 4 following text treated wrapped in implicit extern "C" block -LINE_MARKER_RE = re.compile(r'^# (\d+) "([^"]+)"((?: [1234])*)$') +LINE_MARKER_RE = re.compile(r'^# (\d+) "([^"]+)"(?: [1234])*$') PREPROC_DIRECTIVE_RE = re.compile(r'^\s*#\s*(\w+)\b.*') COMPILER_DIRECTIVE_RE = re.compile(r''' ^ @@ -45,112 +40,32 @@ ) -def preprocess(filename, - incldirs=None, - includes=None, - macros=None, - samefiles=None, - cwd=None, - ): - if not cwd or not os.path.isabs(cwd): - cwd = os.path.abspath(cwd or '.') - filename = _normpath(filename, cwd) +def preprocess(filename, incldirs=None, macros=None, samefiles=None): text = _common.preprocess( TOOL, filename, incldirs=incldirs, - includes=includes, macros=macros, #preargs=PRE_ARGS, postargs=POST_ARGS, executable=['gcc'], compiler='unix', - cwd=cwd, ) - return _iter_lines(text, filename, samefiles, cwd) + return _iter_lines(text, filename, samefiles) -def _iter_lines(text, reqfile, samefiles, cwd, raw=False): +def _iter_lines(text, filename, samefiles, *, raw=False): lines = iter(text.splitlines()) - # The first line is special. - # The next two lines are consistent. - for expected in [ - f'# 1 "{reqfile}"', - '# 1 "<built-in>"', - '# 1 "<command-line>"', - ]: - line = next(lines) - if line != expected: - raise NotImplementedError((line, expected)) - - # Do all the CLI-provided includes. - filter_reqfile = (lambda f: _filter_reqfile(f, reqfile, samefiles)) - make_info = (lambda lno: _common.FileInfo(reqfile, lno)) - last = None - for line in lines: - assert last != reqfile, (last,) - lno, included, flags = _parse_marker_line(line, reqfile) - if not included: - raise NotImplementedError((line,)) - if included == reqfile: - # This will be the last one. - assert not flags, (line, flags) - else: - assert 1 in flags, (line, flags) - yield from _iter_top_include_lines( - lines, - _normpath(included, cwd), - cwd, - filter_reqfile, - make_info, - raw, - ) - last = included - # The last one is always the requested file. - assert included == reqfile, (line,) - - -def _iter_top_include_lines(lines, topfile, cwd, - filter_reqfile, make_info, - raw): + # Build the lines and filter out directives. partial = 0 # depth - files = [topfile] - # We start at 1 in case there are source lines (including blank onces) - # before the first marker line. Also, we already verified in - # _parse_marker_line() that the preprocessor reported lno as 1. - lno = 1 + origfile = None for line in lines: - if line == '# 1 "<command-line>" 2': - # We're done with this top-level include. - return - - _lno, included, flags = _parse_marker_line(line) - if included: - lno = _lno - included = _normpath(included, cwd) - # We hit a marker line. - if 1 in flags: - # We're entering a file. - # XXX Cycles are unexpected? - #assert included not in files, (line, files) - files.append(included) - elif 2 in flags: - # We're returning to a file. - assert files and included in files, (line, files) - assert included != files[-1], (line, files) - while files[-1] != included: - files.pop() - # XXX How can a file return to line 1? - #assert lno > 1, (line, lno) - else: - # It's the next line from the file. - assert included == files[-1], (line, files) - assert lno > 1, (line, lno) - elif not files: - raise NotImplementedError((line,)) - elif filter_reqfile(files[-1]): - assert lno is not None, (line, files[-1]) + m = LINE_MARKER_RE.match(line) + if m: + lno, origfile = m.groups() + lno = int(lno) + elif _filter_orig_file(origfile, filename, samefiles): if (m := PREPROC_DIRECTIVE_RE.match(line)): name, = m.groups() if name != 'pragma': @@ -159,7 +74,7 @@ def _iter_top_include_lines(lines, topfile, cwd, if not raw: line, partial = _strip_directives(line, partial=partial) yield _common.SourceLine( - make_info(lno), + _common.FileInfo(filename, lno), 'source', line or '', None, @@ -167,34 +82,6 @@ def _iter_top_include_lines(lines, topfile, cwd, lno += 1 -def _parse_marker_line(line, reqfile=None): - m = LINE_MARKER_RE.match(line) - if not m: - return None, None, None - lno, origfile, flags = m.groups() - lno = int(lno) - assert lno > 0, (line, lno) - assert origfile not in ('<built-in>', '<command-line>'), (line,) - flags = set(int(f) for f in flags.split()) if flags else () - - if 1 in flags: - # We're entering a file. - assert lno == 1, (line, lno) - assert 2 not in flags, (line,) - elif 2 in flags: - # We're returning to a file. - #assert lno > 1, (line, lno) - pass - elif reqfile and origfile == reqfile: - # We're starting the requested file. - assert lno == 1, (line, lno) - assert not flags, (line, flags) - else: - # It's the next line from the file. - assert lno > 1, (line, lno) - return lno, origfile, flags - - def _strip_directives(line, partial=0): # We assume there are no string literals with parens in directive bodies. while partial > 0: @@ -219,16 +106,18 @@ def _strip_directives(line, partial=0): return line, partial -def _filter_reqfile(current, reqfile, samefiles): - if current == reqfile: - return True - if current == '<stdin>': +def _filter_orig_file(origfile, current, samefiles): + if origfile == current: return True - if current in samefiles: + if origfile == '<stdin>': return True - return False + if os.path.isabs(origfile): + return False + for filename in samefiles or (): + if filename.endswith(os.path.sep): + filename += os.path.basename(current) + if origfile == filename: + return True -def _normpath(filename, cwd): - assert cwd - return os.path.normpath(os.path.join(cwd, filename)) + return False diff --git a/Tools/c-analyzer/c_parser/preprocessor/pure.py b/Tools/c-analyzer/c_parser/preprocessor/pure.py index f94447ad819cc3..e971389b1888dd 100644 --- a/Tools/c-analyzer/c_parser/preprocessor/pure.py +++ b/Tools/c-analyzer/c_parser/preprocessor/pure.py @@ -4,7 +4,7 @@ from . import common as _common -def preprocess(lines, filename=None, cwd=None): +def preprocess(lines, filename=None): if isinstance(lines, str): with _open_source(lines, filename) as (lines, filename): yield from preprocess(lines, filename) diff --git a/Tools/c-analyzer/check-c-globals.py b/Tools/c-analyzer/check-c-globals.py index 73742f70a388aa..b1364a612bb7d3 100644 --- a/Tools/c-analyzer/check-c-globals.py +++ b/Tools/c-analyzer/check-c-globals.py @@ -1,9 +1,7 @@ -import sys - from cpython.__main__ import main, configure_logger -def parse_args(argv=sys.argv[1:]): +def parse_args(): import argparse from c_common.scriptutil import ( add_verbosity_cli, @@ -15,8 +13,7 @@ def parse_args(argv=sys.argv[1:]): processors = [ add_verbosity_cli(parser), add_traceback_cli(parser), - #_cli_check(parser, checks='<globals>'), - _cli_check(parser), + _cli_check(parser, checks='<globals>'), ] args = parser.parse_args() diff --git a/Tools/c-analyzer/cpython/__main__.py b/Tools/c-analyzer/cpython/__main__.py index 2b9e4233b95ac4..be331d50427d53 100644 --- a/Tools/c-analyzer/cpython/__main__.py +++ b/Tools/c-analyzer/cpython/__main__.py @@ -20,7 +20,7 @@ import c_analyzer.__main__ as c_analyzer import c_analyzer as _c_analyzer from c_analyzer.info import UNKNOWN -from . import _analyzer, _builtin_types, _capi, _files, _parser, REPO_ROOT +from . import _analyzer, _capi, _files, _parser, REPO_ROOT logger = logging.getLogger(__name__) @@ -325,47 +325,6 @@ def cmd_capi(filenames=None, *, print(line) -def _cli_builtin_types(parser): - parser.add_argument('--format', dest='fmt', default='table') -# parser.add_argument('--summary', dest='format', -# action='store_const', const='summary') - def process_format(args, *, argv=None): - orig = args.fmt - args.fmt = _builtin_types.resolve_format(args.fmt) - if isinstance(args.fmt, str): - if args.fmt not in _builtin_types._FORMATS: - parser.error(f'unsupported format {orig!r}') - - parser.add_argument('--include-modules', dest='showmodules', - action='store_true') - def process_modules(args, *, argv=None): - pass - - return [ - process_format, - process_modules, - ] - - -def cmd_builtin_types(fmt, *, - showmodules=False, - verbosity=VERBOSITY, - ): - render = _builtin_types.get_renderer(fmt) - types = _builtin_types.iter_builtin_types() - match = _builtin_types.resolve_matcher(showmodules) - if match: - types = (t for t in types if match(t, log=lambda msg: logger.log(1, msg))) - - lines = render( - types, -# verbose=verbosity > VERBOSITY, - ) - print() - for line in lines: - print(line) - - # We do not define any other cmd_*() handlers here, # favoring those defined elsewhere. @@ -395,11 +354,6 @@ def cmd_builtin_types(fmt, *, [_cli_capi], cmd_capi, ), - 'builtin-types': ( - 'show the builtin types', - [_cli_builtin_types], - cmd_builtin_types, - ), } diff --git a/Tools/c-analyzer/cpython/_analyzer.py b/Tools/c-analyzer/cpython/_analyzer.py index 4a11fc99a4064d..741fbaddf16d95 100644 --- a/Tools/c-analyzer/cpython/_analyzer.py +++ b/Tools/c-analyzer/cpython/_analyzer.py @@ -60,46 +60,6 @@ # {ID => reason} } -# XXX We should be handling these through known.tsv. -_OTHER_SUPPORTED_TYPES = { - # Holds tuple of strings, which we statically initialize: - '_PyArg_Parser', - # Uses of these should be const, but we don't worry about it. - 'PyModuleDef', - 'PyModuleDef_Slot[]', - 'PyType_Spec', - 'PyType_Slot[]', - 'PyMethodDef', - 'PyMethodDef[]', - 'PyMemberDef[]', - 'PyGetSetDef[]', - 'PyNumberMethods', - 'PySequenceMethods', - 'PyMappingMethods', - 'PyAsyncMethods', - 'PyBufferProcs', - 'PyStructSequence_Field[]', - 'PyStructSequence_Desc', -} - -# XXX We should normalize all cases to a single name, -# e.g. "kwlist" (currently the most common). -_KWLIST_VARIANTS = [ - ('*', 'kwlist'), - ('*', 'keywords'), - ('*', 'kwargs'), - ('Modules/_csv.c', 'dialect_kws'), - ('Modules/_datetimemodule.c', 'date_kws'), - ('Modules/_datetimemodule.c', 'datetime_kws'), - ('Modules/_datetimemodule.c', 'time_kws'), - ('Modules/_datetimemodule.c', 'timezone_kws'), - ('Modules/_lzmamodule.c', 'optnames'), - ('Modules/_lzmamodule.c', 'arg_names'), - ('Modules/cjkcodecs/multibytecodec.c', 'incnewkwarglist'), - ('Modules/cjkcodecs/multibytecodec.c', 'streamkwarglist'), - ('Modules/socketmodule.c', 'kwnames'), -] - KINDS = frozenset((*KIND.TYPES, KIND.VARIABLE)) @@ -242,8 +202,6 @@ def _check_typedep(decl, typedecl, types, knowntypes): # XXX Fail? return 'typespec (missing)' elif typedecl is _info.UNKNOWN: - if _has_other_supported_type(decl): - return None # XXX Is this right? return 'typespec (unknown)' elif not isinstance(typedecl, TypeDeclaration): @@ -258,42 +216,12 @@ def _check_typedep(decl, typedecl, types, knowntypes): elif decl.kind is KIND.VARIABLE: if not is_process_global(decl): return None - if _is_kwlist(decl): - return None - if _has_other_supported_type(decl): - return None checked = _check_vartype(decl, typedecl, types, knowntypes) return 'mutable' if checked is FIXED_TYPE else checked else: raise NotImplementedError(decl) -def _is_kwlist(decl): - # keywords for PyArg_ParseTupleAndKeywords() - # "static char *name[]" -> "static const char * const name[]" - # XXX These should be made const. - for relpath, name in _KWLIST_VARIANTS: - if decl.name == name: - if relpath == '*': - break - assert os.path.isabs(decl.file.filename) - relpath = os.path.normpath(relpath) - if decl.file.filename.endswith(os.path.sep + relpath): - break - else: - return False - vartype = ''.join(str(decl.vartype).split()) - return vartype == 'char*[]' - - -def _has_other_supported_type(decl): - vartype = str(decl.vartype).split() - if vartype[0] == 'struct': - vartype = vartype[1:] - vartype = ''.join(vartype) - return vartype in _OTHER_SUPPORTED_TYPES - - def _check_vartype(decl, typedecl, types, knowntypes): """Return failure reason.""" checked = _check_typespec(decl, typedecl, types, knowntypes) diff --git a/Tools/c-analyzer/cpython/_builtin_types.py b/Tools/c-analyzer/cpython/_builtin_types.py deleted file mode 100644 index faa0b7a82a8bb4..00000000000000 --- a/Tools/c-analyzer/cpython/_builtin_types.py +++ /dev/null @@ -1,365 +0,0 @@ -from collections import namedtuple -import os.path -import re -import textwrap - -from c_common import tables -from . import REPO_ROOT -from ._files import iter_header_files, iter_filenames - - -CAPI_PREFIX = os.path.join('Include', '') -INTERNAL_PREFIX = os.path.join('Include', 'internal', '') - -REGEX = re.compile(textwrap.dedent(rf''' - (?: - ^ - (?: - (?: - (?: - (?: - (?: - ( static ) # <static> - \s+ - | - ( extern ) # <extern> - \s+ - )? - PyTypeObject \s+ - ) - | - (?: - ( PyAPI_DATA ) # <capi> - \s* [(] \s* PyTypeObject \s* [)] \s* - ) - ) - (\w+) # <name> - \s* - (?: - (?: - ( = \s* {{ ) # <def> - $ - ) - | - ( ; ) # <decl> - ) - ) - | - (?: - # These are specific to Objects/exceptions.c: - (?: - SimpleExtendsException - | - MiddlingExtendsException - | - ComplexExtendsException - ) - \( \w+ \s* , \s* - ( \w+ ) # <excname> - \s* , - ) - ) - ) -'''), re.VERBOSE) - - -def _parse_line(line): - m = re.match(REGEX, line) - if not m: - return None - (static, extern, capi, - name, - def_, decl, - excname, - ) = m.groups() - if def_: - isdecl = False - if extern or capi: - raise NotImplementedError(line) - kind = 'static' if static else None - elif excname: - name = f'_PyExc_{excname}' - isdecl = False - kind = 'static' - else: - isdecl = True - if static: - kind = 'static' - elif extern: - kind = 'extern' - elif capi: - kind = 'capi' - else: - kind = None - return name, isdecl, kind - - -class BuiltinTypeDecl(namedtuple('BuiltinTypeDecl', 'file lno name kind')): - - KINDS = { - 'static', - 'extern', - 'capi', - 'forward', - } - - @classmethod - def from_line(cls, line, filename, lno): - # This is similar to ._capi.CAPIItem.from_line(). - parsed = _parse_line(line) - if not parsed: - return None - name, isdecl, kind = parsed - if not isdecl: - return None - return cls.from_parsed(name, kind, filename, lno) - - @classmethod - def from_parsed(cls, name, kind, filename, lno): - if not kind: - kind = 'forward' - return cls.from_values(filename, lno, name, kind) - - @classmethod - def from_values(cls, filename, lno, name, kind): - if kind not in cls.KINDS: - raise ValueError(f'unsupported kind {kind!r}') - self = cls(filename, lno, name, kind) - if self.kind not in ('extern', 'capi') and self.api: - raise NotImplementedError(self) - elif self.kind == 'capi' and not self.api: - raise NotImplementedError(self) - return self - - @property - def relfile(self): - return self.file[len(REPO_ROOT) + 1:] - - @property - def api(self): - return self.relfile.startswith(CAPI_PREFIX) - - @property - def internal(self): - return self.relfile.startswith(INTERNAL_PREFIX) - - @property - def private(self): - if not self.name.startswith('_'): - return False - return self.api and not self.internal - - @property - def public(self): - if self.kind != 'capi': - return False - return not self.internal and not self.private - - -class BuiltinTypeInfo(namedtuple('BuiltinTypeInfo', 'file lno name static decl')): - - @classmethod - def from_line(cls, line, filename, lno, *, decls=None): - parsed = _parse_line(line) - if not parsed: - return None - name, isdecl, kind = parsed - if isdecl: - return None - return cls.from_parsed(name, kind, filename, lno, decls=decls) - - @classmethod - def from_parsed(cls, name, kind, filename, lno, *, decls=None): - if not kind: - static = False - elif kind == 'static': - static = True - else: - raise NotImplementedError((filename, line, kind)) - decl = decls.get(name) if decls else None - return cls(filename, lno, name, static, decl) - - @property - def relfile(self): - return self.file[len(REPO_ROOT) + 1:] - - @property - def exported(self): - return not self.static - - @property - def api(self): - if not self.decl: - return False - return self.decl.api - - @property - def internal(self): - if not self.decl: - return False - return self.decl.internal - - @property - def private(self): - if not self.decl: - return False - return self.decl.private - - @property - def public(self): - if not self.decl: - return False - return self.decl.public - - @property - def inmodule(self): - return self.relfile.startswith('Modules' + os.path.sep) - - def render_rowvalues(self, kinds): - row = { - 'name': self.name, - **{k: '' for k in kinds}, - 'filename': f'{self.relfile}:{self.lno}', - } - if self.static: - kind = 'static' - else: - if self.internal: - kind = 'internal' - elif self.private: - kind = 'private' - elif self.public: - kind = 'public' - else: - kind = 'global' - row['kind'] = kind - row[kind] = kind - return row - - -def _ensure_decl(decl, decls): - prev = decls.get(decl.name) - if prev: - if decl.kind == 'forward': - return None - if prev.kind != 'forward': - if decl.kind == prev.kind and decl.file == prev.file: - assert decl.lno != prev.lno, (decl, prev) - return None - raise NotImplementedError(f'duplicate {decl} (was {prev}') - decls[decl.name] = decl - - -def iter_builtin_types(filenames=None): - decls = {} - seen = set() - for filename in iter_header_files(): - seen.add(filename) - with open(filename) as infile: - for lno, line in enumerate(infile, 1): - decl = BuiltinTypeDecl.from_line(line, filename, lno) - if not decl: - continue - _ensure_decl(decl, decls) - srcfiles = [] - for filename in iter_filenames(): - if filename.endswith('.c'): - srcfiles.append(filename) - continue - if filename in seen: - continue - with open(filename) as infile: - for lno, line in enumerate(infile, 1): - decl = BuiltinTypeDecl.from_line(line, filename, lno) - if not decl: - continue - _ensure_decl(decl, decls) - - for filename in srcfiles: - with open(filename) as infile: - localdecls = {} - for lno, line in enumerate(infile, 1): - parsed = _parse_line(line) - if not parsed: - continue - name, isdecl, kind = parsed - if isdecl: - decl = BuiltinTypeDecl.from_parsed(name, kind, filename, lno) - if not decl: - raise NotImplementedError((filename, line)) - _ensure_decl(decl, localdecls) - else: - builtin = BuiltinTypeInfo.from_parsed( - name, kind, filename, lno, - decls=decls if name in decls else localdecls) - if not builtin: - raise NotImplementedError((filename, line)) - yield builtin - - -def resolve_matcher(showmodules=False): - def match(info, *, log=None): - if not info.inmodule: - return True - if log is not None: - log(f'ignored {info.name!r}') - return False - return match - - -################################## -# CLI rendering - -def resolve_format(fmt): - if not fmt: - return 'table' - elif isinstance(fmt, str) and fmt in _FORMATS: - return fmt - else: - raise NotImplementedError(fmt) - - -def get_renderer(fmt): - fmt = resolve_format(fmt) - if isinstance(fmt, str): - try: - return _FORMATS[fmt] - except KeyError: - raise ValueError(f'unsupported format {fmt!r}') - else: - raise NotImplementedError(fmt) - - -def render_table(types): - types = sorted(types, key=(lambda t: t.name)) - colspecs = tables.resolve_columns( - 'name:<33 static:^ global:^ internal:^ private:^ public:^ filename:<30') - header, div, rowfmt = tables.build_table(colspecs) - leader = ' ' * sum(c.width+2 for c in colspecs[:3]) + ' ' - yield leader + f'{"API":^29}' - yield leader + '-' * 29 - yield header - yield div - kinds = [c[0] for c in colspecs[1:-1]] - counts = {k: 0 for k in kinds} - base = {k: '' for k in kinds} - for t in types: - row = t.render_rowvalues(kinds) - kind = row['kind'] - yield rowfmt.format(**row) - counts[kind] += 1 - yield '' - yield f'total: {sum(counts.values()):>3}' - for kind in kinds: - yield f' {kind:>10}: {counts[kind]:>3}' - - -def render_repr(types): - for t in types: - yield repr(t) - - -_FORMATS = { - 'table': render_table, - 'repr': render_repr, -} diff --git a/Tools/c-analyzer/cpython/_parser.py b/Tools/c-analyzer/cpython/_parser.py index 78241f0ea08ac8..eaad7278ed79e3 100644 --- a/Tools/c-analyzer/cpython/_parser.py +++ b/Tools/c-analyzer/cpython/_parser.py @@ -50,6 +50,9 @@ def clean_lines(text): EXCLUDED = clean_lines(''' # @begin=conf@ +# Rather than fixing for this one, we manually make sure it's okay. +Modules/_sha3/kcp/KeccakP-1600-opt64.c + # OSX #Modules/_ctypes/darwin/*.c #Modules/_ctypes/libffi_osx/*.c @@ -66,11 +69,11 @@ def clean_lines(text): Python/dynload_aix.c # sys/ldr.h Python/dynload_dl.c # dl.h Python/dynload_hpux.c # dl.h -Python/emscripten_signal.c Python/thread_pthread.h -Python/thread_pthread_stubs.h +Python/emscripten_signal.c # only huge constants (safe but parsing is slow) +Modules/_blake2/impl/blake2-kat.h Modules/_ssl_data.h Modules/_ssl_data_300.h Modules/_ssl_data_111.h @@ -82,6 +85,8 @@ def clean_lines(text): # generated Python/deepfreeze/*.c Python/frozen_modules/*.h +Python/opcode_targets.h +Python/stdlib_module_names.h # @end=conf@ ''') @@ -89,10 +94,23 @@ def clean_lines(text): # XXX Fix the parser. EXCLUDED += clean_lines(''' # The tool should be able to parse these... -# The problem with xmlparse.c is that something -# has gone wrong where # we handle "maybe inline actual" -# in Tools/c-analyzer/c_parser/parser/_global.py. + +Modules/hashlib.h +Objects/stringlib/codecs.h +Objects/stringlib/count.h +Objects/stringlib/ctype.h +Objects/stringlib/fastsearch.h +Objects/stringlib/find.h +Objects/stringlib/find_max_char.h +Objects/stringlib/partition.h +Objects/stringlib/replace.h +Objects/stringlib/split.h + +Modules/_dbmmodule.c +Modules/cjkcodecs/_codecs_*.c +Modules/expat/xmlrole.c Modules/expat/xmlparse.c +Python/initconfig.c ''') INCL_DIRS = clean_lines(''' @@ -106,44 +124,6 @@ def clean_lines(text): Modules/_tkinter.c /usr/include/tcl8.6 Modules/tkappinit.c /usr/include/tcl Modules/_decimal/**/*.c Modules/_decimal/libmpdec -Objects/stringlib/*.h Objects - -# @end=tsv@ -''')[1:] - -INCLUDES = clean_lines(''' -# @begin=tsv@ - -glob include - -**/*.h Python.h -Include/**/*.h object.h - -# for Py_HAVE_CONDVAR -Include/internal/pycore_gil.h pycore_condvar.h -Python/thread_pthread.h pycore_condvar.h - -# other - -Objects/stringlib/join.h stringlib/stringdefs.h -Objects/stringlib/ctype.h stringlib/stringdefs.h -Objects/stringlib/transmogrify.h stringlib/stringdefs.h -#Objects/stringlib/fastsearch.h stringlib/stringdefs.h -#Objects/stringlib/count.h stringlib/stringdefs.h -#Objects/stringlib/find.h stringlib/stringdefs.h -#Objects/stringlib/partition.h stringlib/stringdefs.h -#Objects/stringlib/split.h stringlib/stringdefs.h -Objects/stringlib/fastsearch.h stringlib/ucs1lib.h -Objects/stringlib/count.h stringlib/ucs1lib.h -Objects/stringlib/find.h stringlib/ucs1lib.h -Objects/stringlib/partition.h stringlib/ucs1lib.h -Objects/stringlib/split.h stringlib/ucs1lib.h -Objects/stringlib/find_max_char.h Objects/stringlib/ucs1lib.h -Objects/stringlib/count.h Objects/stringlib/fastsearch.h -Objects/stringlib/find.h Objects/stringlib/fastsearch.h -Objects/stringlib/partition.h Objects/stringlib/fastsearch.h -Objects/stringlib/replace.h Objects/stringlib/fastsearch.h -Objects/stringlib/split.h Objects/stringlib/fastsearch.h # @end=tsv@ ''')[1:] @@ -155,14 +135,10 @@ def clean_lines(text): Include/internal/*.h Py_BUILD_CORE 1 Python/**/*.c Py_BUILD_CORE 1 -Python/**/*.h Py_BUILD_CORE 1 Parser/**/*.c Py_BUILD_CORE 1 -Parser/**/*.h Py_BUILD_CORE 1 Objects/**/*.c Py_BUILD_CORE 1 -Objects/**/*.h Py_BUILD_CORE 1 Modules/_asynciomodule.c Py_BUILD_CORE 1 -Modules/_codecsmodule.c Py_BUILD_CORE 1 Modules/_collectionsmodule.c Py_BUILD_CORE 1 Modules/_ctypes/_ctypes.c Py_BUILD_CORE 1 Modules/_ctypes/cfield.c Py_BUILD_CORE 1 @@ -195,6 +171,12 @@ def clean_lines(text): Modules/symtablemodule.c Py_BUILD_CORE 1 Modules/timemodule.c Py_BUILD_CORE 1 Modules/unicodedata.c Py_BUILD_CORE 1 +Objects/stringlib/codecs.h Py_BUILD_CORE 1 +Objects/stringlib/unicode_format.h Py_BUILD_CORE 1 +Parser/string_parser.h Py_BUILD_CORE 1 +Parser/pegen.h Py_BUILD_CORE 1 +Python/ceval_gil.h Py_BUILD_CORE 1 +Python/condvar.h Py_BUILD_CORE 1 Modules/_json.c Py_BUILD_CORE_BUILTIN 1 Modules/_pickle.c Py_BUILD_CORE_BUILTIN 1 @@ -222,22 +204,44 @@ def clean_lines(text): Include/cpython/traceback.h Py_CPYTHON_TRACEBACK_H 1 Include/cpython/tupleobject.h Py_CPYTHON_TUPLEOBJECT_H 1 Include/cpython/unicodeobject.h Py_CPYTHON_UNICODEOBJECT_H 1 +Include/internal/pycore_code.h SIZEOF_VOID_P 8 + +# implied include of pyport.h +Include/**/*.h PyAPI_DATA(RTYPE) extern RTYPE +Include/**/*.h PyAPI_FUNC(RTYPE) RTYPE +Include/**/*.h Py_DEPRECATED(VER) /* */ +Include/**/*.h _Py_NO_RETURN /* */ +Include/**/*.h PYLONG_BITS_IN_DIGIT 30 +Modules/**/*.c PyMODINIT_FUNC PyObject* +Objects/unicodeobject.c PyMODINIT_FUNC PyObject* +Python/marshal.c PyMODINIT_FUNC PyObject* +Python/_warnings.c PyMODINIT_FUNC PyObject* +Python/Python-ast.c PyMODINIT_FUNC PyObject* +Python/import.c PyMODINIT_FUNC PyObject* +Modules/_testcapimodule.c PyAPI_FUNC(RTYPE) RTYPE +Python/getargs.c PyAPI_FUNC(RTYPE) RTYPE +Objects/stringlib/unicode_format.h Py_LOCAL_INLINE(type) static inline type +Include/pymath.h _Py__has_builtin(x) 0 + +# implied include of pymacro.h +*/clinic/*.c.h PyDoc_VAR(name) static const char name[] +*/clinic/*.c.h PyDoc_STR(str) str +*/clinic/*.c.h PyDoc_STRVAR(name,str) PyDoc_VAR(name) = PyDoc_STR(str) + +# implied include of exports.h +#Modules/_io/bytesio.c Py_EXPORTED_SYMBOL /* */ + +# implied include of object.h +Include/**/*.h PyObject_HEAD PyObject ob_base; +Include/**/*.h PyObject_VAR_HEAD PyVarObject ob_base; + +# implied include of pyconfig.h +Include/**/*.h SIZEOF_WCHAR_T 4 # implied include of <unistd.h> Include/**/*.h _POSIX_THREADS 1 Include/**/*.h HAVE_PTHREAD_H 1 -# from pyconfig.h -Include/cpython/pthread_stubs.h HAVE_PTHREAD_STUBS 1 -Python/thread_pthread_stubs.h HAVE_PTHREAD_STUBS 1 - -# from Objects/bytesobject.c -Objects/stringlib/partition.h STRINGLIB_GET_EMPTY() bytes_get_empty() -Objects/stringlib/join.h STRINGLIB_MUTABLE 0 -Objects/stringlib/partition.h STRINGLIB_MUTABLE 0 -Objects/stringlib/split.h STRINGLIB_MUTABLE 0 -Objects/stringlib/transmogrify.h STRINGLIB_MUTABLE 0 - # from Makefile Modules/getpath.c PYTHONPATH 1 Modules/getpath.c PREFIX ... @@ -245,16 +249,6 @@ def clean_lines(text): Modules/getpath.c VERSION ... Modules/getpath.c VPATH ... Modules/getpath.c PLATLIBDIR ... -#Modules/_dbmmodule.c USE_GDBM_COMPAT 1 -Modules/_dbmmodule.c USE_NDBM 1 -#Modules/_dbmmodule.c USE_BERKDB 1 - -# See: setup.py -Modules/_decimal/**/*.c CONFIG_64 1 -Modules/_decimal/**/*.c ASM 1 -Modules/expat/xmlparse.c HAVE_EXPAT_CONFIG_H 1 -Modules/expat/xmlparse.c XML_POOR_ENTROPY 1 -Modules/_dbmmodule.c HAVE_GDBM_DASH_NDBM_H 1 # from Modules/_sha3/sha3module.c Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c PLATFORM_BYTE_ORDER 4321 # force big-endian @@ -263,10 +257,18 @@ def clean_lines(text): Modules/_sha3/kcp/*.c KeccakP400_excluded 1 Modules/_sha3/kcp/*.c KeccakP800_excluded 1 +# See: setup.py +Modules/_decimal/**/*.c CONFIG_64 1 +Modules/_decimal/**/*.c ASM 1 +Modules/expat/xmlparse.c HAVE_EXPAT_CONFIG_H 1 +Modules/expat/xmlparse.c XML_POOR_ENTROPY 1 +Modules/_dbmmodule.c HAVE_GDBM_DASH_NDBM_H 1 + # others Modules/_sre/sre_lib.h LOCAL(type) static inline type Modules/_sre/sre_lib.h SRE(F) sre_ucs2_##F Objects/stringlib/codecs.h STRINGLIB_IS_UNICODE 1 +Include/internal/pycore_bitutils.h _Py__has_builtin(B) 0 # @end=tsv@ ''')[1:] @@ -283,14 +285,12 @@ def clean_lines(text): # -Wno-missing-field-initializers # -Werror=implicit-function-declaration -SAME = { - _abs('Include/*.h'): [_abs('Include/cpython/')], -} +SAME = [ + './Include/cpython/', +] MAX_SIZES = { - # GLOB: (MAXTEXT, MAXLINES), - # default: (10_000, 200) - # First match wins. + _abs('Include/**/*.h'): (5_000, 500), _abs('Modules/_ctypes/ctypes.h'): (5_000, 500), _abs('Modules/_datetimemodule.c'): (20_000, 300), _abs('Modules/posixmodule.c'): (20_000, 500), @@ -298,37 +298,15 @@ def clean_lines(text): _abs('Modules/_testcapimodule.c'): (20_000, 400), _abs('Modules/expat/expat.h'): (10_000, 400), _abs('Objects/stringlib/unicode_format.h'): (10_000, 400), - _abs('Objects/typeobject.c'): (35_000, 200), + _abs('Objects/typeobject.c'): (20_000, 200), _abs('Python/compile.c'): (20_000, 500), _abs('Python/pylifecycle.c'): (500_000, 5000), _abs('Python/pystate.c'): (500_000, 5000), - - # Generated files: - _abs('Include/internal/pycore_opcode.h'): (10_000, 1000), - _abs('Include/internal/pycore_global_strings.h'): (5_000, 1000), - _abs('Include/internal/pycore_runtime_init_generated.h'): (5_000, 1000), - _abs('Python/deepfreeze/*.c'): (20_000, 500), - _abs('Python/frozen_modules/*.h'): (20_000, 500), - _abs('Python/opcode_targets.h'): (10_000, 500), - _abs('Python/stdlib_module_names.h'): (5_000, 500), - - # These large files are currently ignored (see above). - _abs('Modules/_ssl_data.h'): (80_000, 10_000), - _abs('Modules/_ssl_data_300.h'): (80_000, 10_000), - _abs('Modules/_ssl_data_111.h'): (80_000, 10_000), - _abs('Modules/cjkcodecs/mappings_*.h'): (160_000, 2_000), - _abs('Modules/unicodedata_db.h'): (180_000, 3_000), - _abs('Modules/unicodename_db.h'): (1_200_000, 15_000), - _abs('Objects/unicodetype_db.h'): (240_000, 3_000), - - # Catch-alls: - _abs('Include/**/*.h'): (5_000, 500), } def get_preprocessor(*, file_macros=None, - file_includes=None, file_incldirs=None, file_same=None, **kwargs @@ -336,20 +314,13 @@ def get_preprocessor(*, macros = tuple(MACROS) if file_macros: macros += tuple(file_macros) - includes = tuple(INCLUDES) - if file_includes: - includes += tuple(file_includes) incldirs = tuple(INCL_DIRS) if file_incldirs: incldirs += tuple(file_incldirs) - samefiles = dict(SAME) - if file_same: - samefiles.update(file_same) return _get_preprocessor( file_macros=macros, - file_includes=includes, file_incldirs=incldirs, - file_same=samefiles, + file_same=file_same, **kwargs ) diff --git a/Tools/c-analyzer/cpython/globals-to-fix.tsv b/Tools/c-analyzer/cpython/globals-to-fix.tsv index 83da54fdd28c94..c92f64df1c5de5 100644 --- a/Tools/c-analyzer/cpython/globals-to-fix.tsv +++ b/Tools/c-analyzer/cpython/globals-to-fix.tsv @@ -7,7 +7,7 @@ filename funcname name reason # global objects to fix in core code #----------------------- -# exported builtin types (C-API) +# static types Objects/boolobject.c - PyBool_Type - Objects/bytearrayobject.c - PyByteArrayIter_Type - @@ -18,6 +18,8 @@ Objects/capsule.c - PyCapsule_Type - Objects/cellobject.c - PyCell_Type - Objects/classobject.c - PyInstanceMethod_Type - Objects/classobject.c - PyMethod_Type - +Objects/codeobject.c - _PyLineIterator - +Objects/codeobject.c - _PyPositionsIterator - Objects/codeobject.c - PyCode_Type - Objects/complexobject.c - PyComplex_Type - Objects/descrobject.c - PyClassMethodDescr_Type - @@ -40,12 +42,16 @@ Objects/dictobject.c - PyDictValues_Type - Objects/dictobject.c - PyDict_Type - Objects/enumobject.c - PyEnum_Type - Objects/enumobject.c - PyReversed_Type - +Objects/exceptions.c - _PyExc_BaseExceptionGroup - +Objects/exceptions.c - _PyExc_EncodingWarning - Objects/fileobject.c - PyStdPrinter_Type - +Objects/floatobject.c - FloatInfoType - Objects/floatobject.c - PyFloat_Type - Objects/frameobject.c - PyFrame_Type - Objects/funcobject.c - PyClassMethod_Type - Objects/funcobject.c - PyFunction_Type - Objects/funcobject.c - PyStaticMethod_Type - +Objects/genericaliasobject.c - _Py_GenericAliasIterType - Objects/genericaliasobject.c - Py_GenericAliasType - Objects/genobject.c - PyAsyncGen_Type - Objects/genobject.c - PyCoro_Type - @@ -57,10 +63,13 @@ Objects/genobject.c - _PyCoroWrapper_Type - Objects/interpreteridobject.c - _PyInterpreterID_Type - Objects/iterobject.c - PyCallIter_Type - Objects/iterobject.c - PySeqIter_Type - +Objects/iterobject.c - _PyAnextAwaitable_Type - Objects/listobject.c - PyListIter_Type - Objects/listobject.c - PyListRevIter_Type - Objects/listobject.c - PyList_Type - +Objects/longobject.c - Int_InfoType - Objects/longobject.c - PyLong_Type - +Objects/memoryobject.c - _PyMemoryIter_Type - Objects/memoryobject.c - PyMemoryView_Type - Objects/memoryobject.c - _PyManagedBuffer_Type - Objects/methodobject.c - PyCFunction_Type - @@ -82,6 +91,7 @@ Objects/rangeobject.c - PyRange_Type - Objects/setobject.c - PyFrozenSet_Type - Objects/setobject.c - PySetIter_Type - Objects/setobject.c - PySet_Type - +Objects/setobject.c - _PySetDummy_Type - Objects/sliceobject.c - PyEllipsis_Type - Objects/sliceobject.c - PySlice_Type - Objects/tupleobject.c - PyTupleIter_Type - @@ -89,8 +99,11 @@ Objects/tupleobject.c - PyTuple_Type - Objects/typeobject.c - PyBaseObject_Type - Objects/typeobject.c - PySuper_Type - Objects/typeobject.c - PyType_Type - +Objects/unicodeobject.c - EncodingMapType - Objects/unicodeobject.c - PyUnicodeIter_Type - Objects/unicodeobject.c - PyUnicode_Type - +Objects/unionobject.c - _PyUnion_Type - +Objects/unionobject.c - _Py_UnionType - Objects/weakrefobject.c - _PyWeakref_CallableProxyType - Objects/weakrefobject.c - _PyWeakref_ProxyType - Objects/weakrefobject.c - _PyWeakref_RefType - @@ -100,23 +113,8 @@ Python/bltinmodule.c - PyZip_Type - Python/context.c - PyContextToken_Type - Python/context.c - PyContextVar_Type - Python/context.c - PyContext_Type - -Python/traceback.c - PyTraceBack_Type - - -#----------------------- -# other exported builtin types - -# Not in a .h file: -Objects/codeobject.c - _PyLineIterator - -# Not in a .h file: -Objects/codeobject.c - _PyPositionsIterator - -Objects/genericaliasobject.c - _Py_GenericAliasIterType - -# Not in a .h file: -Objects/iterobject.c - _PyAnextAwaitable_Type - -# Not in a .h file: -Objects/memoryobject.c - _PyMemoryIter_Type - -Objects/unicodeobject.c - _PyUnicodeASCIIIter_Type - -Objects/unionobject.c - _PyUnion_Type - Python/context.c - _PyContextTokenMissing_Type - +Python/errors.c - UnraisableHookArgsType - Python/hamt.c - _PyHamtItems_Type - Python/hamt.c - _PyHamtKeys_Type - Python/hamt.c - _PyHamtValues_Type - @@ -125,34 +123,17 @@ Python/hamt.c - _PyHamt_BitmapNode_Type - Python/hamt.c - _PyHamt_CollisionNode_Type - Python/hamt.c - _PyHamt_Type - Python/symtable.c - PySTEntry_Type - - -#----------------------- -# private static builtin types - -Objects/setobject.c - _PySetDummy_Type - -Objects/stringlib/unicode_format.h - PyFormatterIter_Type - -Objects/stringlib/unicode_format.h - PyFieldNameIter_Type - -Objects/unicodeobject.c - EncodingMapType - -#Objects/unicodeobject.c - PyFieldNameIter_Type - -#Objects/unicodeobject.c - PyFormatterIter_Type - - -#----------------------- -# static builtin structseq - -Objects/floatobject.c - FloatInfoType - -Objects/longobject.c - Int_InfoType - -Python/errors.c - UnraisableHookArgsType - Python/sysmodule.c - AsyncGenHooksType - Python/sysmodule.c - FlagsType - Python/sysmodule.c - Hash_InfoType - Python/sysmodule.c - VersionInfoType - Python/thread.c - ThreadInfoType - +Python/traceback.c - PyTraceBack_Type - #----------------------- # builtin exception types Objects/exceptions.c - _PyExc_BaseException - -Objects/exceptions.c - _PyExc_BaseExceptionGroup - Objects/exceptions.c - _PyExc_UnicodeEncodeError - Objects/exceptions.c - _PyExc_UnicodeDecodeError - Objects/exceptions.c - _PyExc_UnicodeTranslateError - @@ -216,11 +197,9 @@ Objects/exceptions.c - _PyExc_ImportWarning - Objects/exceptions.c - _PyExc_UnicodeWarning - Objects/exceptions.c - _PyExc_BytesWarning - Objects/exceptions.c - _PyExc_ResourceWarning - -Objects/exceptions.c - _PyExc_EncodingWarning - Objects/exceptions.c - PyExc_EnvironmentError - Objects/exceptions.c - PyExc_IOError - Objects/exceptions.c - PyExc_BaseException - -Objects/exceptions.c - PyExc_BaseExceptionGroup - Objects/exceptions.c - PyExc_Exception - Objects/exceptions.c - PyExc_TypeError - Objects/exceptions.c - PyExc_StopAsyncIteration - @@ -284,7 +263,6 @@ Objects/exceptions.c - PyExc_ImportWarning - Objects/exceptions.c - PyExc_UnicodeWarning - Objects/exceptions.c - PyExc_BytesWarning - Objects/exceptions.c - PyExc_ResourceWarning - -Objects/exceptions.c - PyExc_EncodingWarning - #----------------------- # singletons @@ -292,100 +270,106 @@ Objects/exceptions.c - PyExc_EncodingWarning - Objects/boolobject.c - _Py_FalseStruct - Objects/boolobject.c - _Py_TrueStruct - Objects/dictobject.c - empty_keys_struct - +Objects/dictobject.c - empty_values_struct - Objects/object.c - _Py_NoneStruct - Objects/object.c - _Py_NotImplementedStruct - Objects/setobject.c - _dummy_struct - Objects/setobject.c - _PySet_Dummy - Objects/sliceobject.c - _Py_EllipsisObject - -#----------------------- -# statically initialized - -# argument clinic -Objects/clinic/odictobject.c.h OrderedDict_fromkeys _kwtuple - -Objects/clinic/odictobject.c.h OrderedDict_setdefault _kwtuple - -Objects/clinic/odictobject.c.h OrderedDict_pop _kwtuple - -Objects/clinic/odictobject.c.h OrderedDict_popitem _kwtuple - -Objects/clinic/odictobject.c.h OrderedDict_move_to_end _kwtuple - -Objects/clinic/funcobject.c.h func_new _kwtuple - -Objects/clinic/longobject.c.h long_new _kwtuple - -Objects/clinic/longobject.c.h int_to_bytes _kwtuple - -Objects/clinic/longobject.c.h int_from_bytes _kwtuple - -Objects/clinic/listobject.c.h list_sort _kwtuple - -Objects/clinic/bytearrayobject.c.h bytearray___init__ _kwtuple - -Objects/clinic/bytearrayobject.c.h bytearray_translate _kwtuple - -Objects/clinic/bytearrayobject.c.h bytearray_split _kwtuple - -Objects/clinic/bytearrayobject.c.h bytearray_rsplit _kwtuple - -Objects/clinic/bytearrayobject.c.h bytearray_decode _kwtuple - -Objects/clinic/bytearrayobject.c.h bytearray_splitlines _kwtuple - -Objects/clinic/bytearrayobject.c.h bytearray_hex _kwtuple - -Objects/clinic/memoryobject.c.h memoryview _kwtuple - -Objects/clinic/memoryobject.c.h memoryview_cast _kwtuple - -Objects/clinic/memoryobject.c.h memoryview_tobytes _kwtuple - -Objects/clinic/memoryobject.c.h memoryview_hex _kwtuple - -Objects/clinic/enumobject.c.h enum_new _kwtuple - -Objects/clinic/structseq.c.h structseq_new _kwtuple - -Objects/clinic/descrobject.c.h mappingproxy_new _kwtuple - -Objects/clinic/descrobject.c.h property_init _kwtuple - -Objects/clinic/codeobject.c.h code_replace _kwtuple - -Objects/clinic/codeobject.c.h code__varname_from_oparg _kwtuple - -Objects/clinic/moduleobject.c.h module___init__ _kwtuple - -Objects/clinic/bytesobject.c.h bytes_split _kwtuple - -Objects/clinic/bytesobject.c.h bytes_rsplit _kwtuple - -Objects/clinic/bytesobject.c.h bytes_translate _kwtuple - -Objects/clinic/bytesobject.c.h bytes_decode _kwtuple - -Objects/clinic/bytesobject.c.h bytes_splitlines _kwtuple - -Objects/clinic/bytesobject.c.h bytes_hex _kwtuple - -Objects/clinic/bytesobject.c.h bytes_new _kwtuple - -Objects/clinic/unicodeobject.c.h unicode_encode _kwtuple - -Objects/clinic/unicodeobject.c.h unicode_expandtabs _kwtuple - -Objects/clinic/unicodeobject.c.h unicode_split _kwtuple - -Objects/clinic/unicodeobject.c.h unicode_rsplit _kwtuple - -Objects/clinic/unicodeobject.c.h unicode_splitlines _kwtuple - -Objects/clinic/unicodeobject.c.h unicode_new _kwtuple - -Objects/clinic/complexobject.c.h complex_new _kwtuple - -Python/clinic/traceback.c.h tb_new _kwtuple - -Python/clinic/_warnings.c.h warnings_warn _kwtuple - -Python/clinic/_warnings.c.h warnings_warn_explicit _kwtuple - -Python/clinic/bltinmodule.c.h builtin___import__ _kwtuple - -Python/clinic/bltinmodule.c.h builtin_compile _kwtuple - -Python/clinic/bltinmodule.c.h builtin_exec _kwtuple - -Python/clinic/bltinmodule.c.h builtin_pow _kwtuple - -Python/clinic/bltinmodule.c.h builtin_print _kwtuple - -Python/clinic/bltinmodule.c.h builtin_round _kwtuple - -Python/clinic/bltinmodule.c.h builtin_sum _kwtuple - -Python/clinic/import.c.h _imp_find_frozen _kwtuple - -Python/clinic/import.c.h _imp_source_hash _kwtuple - -Python/clinic/Python-tokenize.c.h tokenizeriter_new _kwtuple - -Python/clinic/sysmodule.c.h sys_addaudithook _kwtuple - -Python/clinic/sysmodule.c.h sys_set_coroutine_origin_tracking_depth _kwtuple - -Python/clinic/sysmodule.c.h sys_set_int_max_str_digits _kwtuple - - #----------------------- # cached - initialized once # manually cached PyUnicodeObject +# XXX This should have been found by the analyzer but wasn't: Python/ast_unparse.c - _str_replace_inf - -# holds statically-initialized strings +# _PyArg_Parser (holds tuple of strings) +Objects/clinic/bytearrayobject.c.h bytearray___init__ _parser - +Objects/clinic/bytearrayobject.c.h bytearray_decode _parser - +Objects/clinic/bytearrayobject.c.h bytearray_hex _parser - +Objects/clinic/bytearrayobject.c.h bytearray_rsplit _parser - +Objects/clinic/bytearrayobject.c.h bytearray_split _parser - +Objects/clinic/bytearrayobject.c.h bytearray_splitlines _parser - +Objects/clinic/bytearrayobject.c.h bytearray_translate _parser - +Objects/clinic/bytesobject.c.h bytes_decode _parser - +Objects/clinic/bytesobject.c.h bytes_hex _parser - +Objects/clinic/bytesobject.c.h bytes_new _parser - +Objects/clinic/bytesobject.c.h bytes_rsplit _parser - +Objects/clinic/bytesobject.c.h bytes_split _parser - +Objects/clinic/bytesobject.c.h bytes_splitlines _parser - +Objects/clinic/bytesobject.c.h bytes_translate _parser - +Objects/clinic/codeobject.c.h code__varname_from_oparg _parser - +Objects/clinic/codeobject.c.h code_replace _parser - +Objects/clinic/complexobject.c.h complex_new _parser - +Objects/clinic/descrobject.c.h mappingproxy_new _parser - +Objects/clinic/descrobject.c.h property_init _parser - +Objects/clinic/enumobject.c.h enum_new _parser - +Objects/clinic/funcobject.c.h func_new _parser - +Objects/clinic/listobject.c.h list_sort _parser - +Objects/clinic/longobject.c.h int_from_bytes _parser - +Objects/clinic/longobject.c.h int_to_bytes _parser - +Objects/clinic/longobject.c.h long_new _parser - +Objects/clinic/memoryobject.c.h memoryview _parser - +Objects/clinic/memoryobject.c.h memoryview_cast _parser - +Objects/clinic/memoryobject.c.h memoryview_hex _parser - +Objects/clinic/memoryobject.c.h memoryview_tobytes _parser - +Objects/clinic/moduleobject.c.h module___init__ _parser - +Objects/clinic/odictobject.c.h OrderedDict_fromkeys _parser - +Objects/clinic/odictobject.c.h OrderedDict_move_to_end _parser - +Objects/clinic/odictobject.c.h OrderedDict_pop _parser - +Objects/clinic/odictobject.c.h OrderedDict_popitem _parser - +Objects/clinic/odictobject.c.h OrderedDict_setdefault _parser - +Objects/clinic/structseq.c.h structseq_new _parser - +Objects/clinic/unicodeobject.c.h unicode_encode _parser - +Objects/clinic/unicodeobject.c.h unicode_expandtabs _parser - +Objects/clinic/unicodeobject.c.h unicode_new _parser - +Objects/clinic/unicodeobject.c.h unicode_rsplit _parser - +Objects/clinic/unicodeobject.c.h unicode_split _parser - +Objects/clinic/unicodeobject.c.h unicode_splitlines _parser - +Python/clinic/Python-tokenize.c.h tokenizeriter_new _parser - +Python/clinic/_warnings.c.h warnings_warn _parser - +Python/clinic/bltinmodule.c.h builtin_compile _parser - +Python/clinic/bltinmodule.c.h builtin_pow _parser - +Python/clinic/bltinmodule.c.h builtin_print _parser - +Python/clinic/bltinmodule.c.h builtin_round _parser - +Python/clinic/bltinmodule.c.h builtin_sum _parser - +Python/clinic/import.c.h _imp_find_frozen _parser - +Python/clinic/import.c.h _imp_source_hash _parser - +Python/clinic/sysmodule.c.h sys_addaudithook _parser - +Python/clinic/sysmodule.c.h sys_set_coroutine_origin_tracking_depth _parser - +Python/clinic/traceback.c.h tb_new _parser - + +# holds strings Objects/typeobject.c - slotdefs - # other +Objects/typeobject.c - method_cache - Objects/typeobject.c object___reduce_ex___impl objreduce - Objects/unicodeobject.c - _string_module - Objects/unicodeobject.c - interned - +Objects/unicodeobject.c - static_strings - #----------------------- # other # initialized once +Objects/exceptions.c - PyExc_BaseExceptionGroup - +Objects/exceptions.c - PyExc_EncodingWarning - +# XXX This should have been found by the analyzer but wasn't: Python/context.c - _token_missing - +# XXX This should have been found by the analyzer but wasn't: Python/fileutils.c - _Py_open_cloexec_works - +# XXX This should have been found by the analyzer but wasn't: Python/hamt.c - _empty_bitmap_node - +# XXX This should have been found by the analyzer but wasn't: Python/hamt.c - _empty_hamt - +# XXX This should have been found by the analyzer but wasn't: +Python/import.c PyImport_Import silly_list - # state Objects/typeobject.c resolve_slotdups pname - +# XXX This should have been found by the analyzer but wasn't: Python/import.c - extensions - @@ -399,58 +383,38 @@ Python/import.c - extensions - Modules/getbuildinfo.c Py_GetBuildInfo buildinfo - # during init +Objects/typeobject.c - slotdefs_initialized - Objects/unicodeobject.c - bloom_linebreak - +Parser/parser.c - Py_DebugFlag - Python/bootstrap_hash.c - _Py_HashSecret_Initialized - Python/bootstrap_hash.c py_getrandom getrandom_works - -Python/initconfig.c - _Py_global_config_int_max_str_digits - -Python/initconfig.c - Py_DebugFlag - -Python/initconfig.c - Py_UTF8Mode - -Python/initconfig.c - Py_DebugFlag - -Python/initconfig.c - Py_VerboseFlag - -Python/initconfig.c - Py_QuietFlag - -Python/initconfig.c - Py_InteractiveFlag - -Python/initconfig.c - Py_InspectFlag - -Python/initconfig.c - Py_OptimizeFlag - -Python/initconfig.c - Py_NoSiteFlag - -Python/initconfig.c - Py_BytesWarningFlag - -Python/initconfig.c - Py_FrozenFlag - -Python/initconfig.c - Py_IgnoreEnvironmentFlag - -Python/initconfig.c - Py_DontWriteBytecodeFlag - -Python/initconfig.c - Py_NoUserSiteDirectory - -Python/initconfig.c - Py_UnbufferedStdioFlag - -Python/initconfig.c - Py_HashRandomizationFlag - -Python/initconfig.c - Py_IsolatedFlag - -Python/initconfig.c - Py_LegacyWindowsFSEncodingFlag - -Python/initconfig.c - Py_LegacyWindowsStdioFlag - -Python/initconfig.c - orig_argv - Python/pyhash.c - _Py_HashSecret - Python/pylifecycle.c - runtime_initialized - Python/sysmodule.c - _PySys_ImplCacheTag - Python/sysmodule.c - _PySys_ImplName - Python/sysmodule.c - _preinit_warnoptions - Python/sysmodule.c - _preinit_xoptions - +Python/thread.c - thread_debug - Python/thread.c - initialized - -Python/thread_pthread.h - condattr_monotonic - -Python/thread_pthread.h init_condattr ca - - -# set by embedders during init -Python/initconfig.c - _Py_StandardStreamEncoding - -Python/initconfig.c - _Py_StandardStreamErrors - # lazy Objects/floatobject.c - double_format - Objects/floatobject.c - float_format - +Objects/floatobject.c - detected_double_format - +Objects/floatobject.c - detected_float_format - Objects/longobject.c PyLong_FromString log_base_BASE - Objects/longobject.c PyLong_FromString convwidth_base - Objects/longobject.c PyLong_FromString convmultmax_base - -Objects/perf_trampoline.c - perf_map_file - Objects/unicodeobject.c - ucnhash_capi - Parser/action_helpers.c _PyPegen_dummy_name cache - Python/dtoa.c - p5s - Python/fileutils.c - force_ascii - Python/fileutils.c set_inheritable ioctl_works - +# XXX This should have been found by the analyzer but wasn't: Python/import.c - import_lock - +# XXX This should have been found by the analyzer but wasn't: Python/import.c import_find_and_load header - +Python/specialize.c - _list_append - #----------------------- # unlikely to change after init (or main thread) @@ -516,29 +480,35 @@ Python/getargs.c - static_arg_parsers - # other Objects/dictobject.c - _pydict_global_version - Objects/dictobject.c - next_dict_keys_version - +Objects/dictobject.c - pydict_global_version - Objects/funcobject.c - next_func_version - Objects/moduleobject.c - max_module_number - Objects/object.c - _Py_RefTotal - -Objects/perf_trampoline.c - perf_status - -Objects/perf_trampoline.c - extra_code_index - -Objects/perf_trampoline.c - code_arena - -Objects/perf_trampoline.c - trampoline_api - Objects/typeobject.c - next_version_tag - Objects/typeobject.c resolve_slotdups ptrs - Parser/pegen.c - memo_statistics - +# XXX This should have been found by the analyzer but wasn't: Python/bootstrap_hash.c - urandom_cache - -Python/ceval_gil.c make_pending_calls busy - -Python/ceval.c _PyEval_SetProfile reentrant - -Python/ceval.c _PyEval_SetTrace reentrant - +# XXX This should have been found by the analyzer but wasn't: +Python/ceval.c - lltrace - +# XXX This should have been found by the analyzer but wasn't: +Python/ceval.c make_pending_calls busy - +Python/dynload_shlib.c - handles - +Python/dynload_shlib.c - nhandles - +# XXX This should have been found by the analyzer but wasn't: Python/import.c - import_lock_level - +# XXX This should have been found by the analyzer but wasn't: Python/import.c - import_lock_thread - +# XXX This should have been found by the analyzer but wasn't: Python/import.c import_find_and_load accumulated - +# XXX This should have been found by the analyzer but wasn't: Python/import.c import_find_and_load import_level - Python/modsupport.c - _Py_PackageContext - -Python/thread_pthread_stubs.h - py_tls_entries - Python/pyfpe.c - PyFPE_counter - Python/pylifecycle.c _Py_FatalErrorFormat reentrant - +# XXX This should have been found by the analyzer but wasn't: Python/pylifecycle.c - _Py_UnhandledKeyboardInterrupt - +# XXX This should have been found by the analyzer but wasn't: Python/pylifecycle.c fatal_error reentrant - Python/specialize.c - _Py_QuickenedCount - @@ -546,6 +516,32 @@ Python/specialize.c - _Py_QuickenedCount - ################################## # global objects to fix in builtin modules +#----------------------- +# modules + +Modules/_abc.c - _abcmodule - +Modules/_codecsmodule.c - codecsmodule - +Modules/_collectionsmodule.c - _collectionsmodule - +Modules/_functoolsmodule.c - _functools_module - +Modules/_io/_iomodule.c - _PyIO_Module - +Modules/_io/_iomodule.h - _PyIO_Module - +Modules/_localemodule.c - _localemodule - +Modules/_sre.c - sremodule - +Modules/_stat.c - statmodule - +Modules/_threadmodule.c - threadmodule - +Modules/_tracemalloc.c - module_def - +Modules/_weakref.c - weakrefmodule - +Modules/atexitmodule.c - atexitmodule - +Modules/errnomodule.c - errnomodule - +Modules/faulthandler.c - module_def - +Modules/gcmodule.c - gcmodule - +Modules/itertoolsmodule.c - itertoolsmodule - +Modules/posixmodule.c - posixmodule - +Modules/pwdmodule.c - pwdmodule - +Modules/signalmodule.c - signalmodule - +Modules/symtablemodule.c - symtablemodule - +Modules/timemodule.c - timemodule - + #----------------------- # static types @@ -554,6 +550,10 @@ Modules/_collectionsmodule.c - deque_type - Modules/_collectionsmodule.c - dequeiter_type - Modules/_collectionsmodule.c - dequereviter_type - Modules/_collectionsmodule.c - tuplegetter_type - +Modules/_functoolsmodule.c - keyobject_type - +Modules/_functoolsmodule.c - lru_cache_type - +Modules/_functoolsmodule.c - lru_list_elem_type - +Modules/_functoolsmodule.c - partial_type - Modules/_io/bufferedio.c - PyBufferedIOBase_Type - Modules/_io/bufferedio.c - PyBufferedRWPair_Type - Modules/_io/bufferedio.c - PyBufferedRandom_Type - @@ -568,12 +568,11 @@ Modules/_io/stringio.c - PyStringIO_Type - Modules/_io/textio.c - PyIncrementalNewlineDecoder_Type - Modules/_io/textio.c - PyTextIOBase_Type - Modules/_io/textio.c - PyTextIOWrapper_Type - -# XXX This should have been found by the analyzer but wasn't: Modules/_io/winconsoleio.c - PyWindowsConsoleIO_Type - -Modules/_testcapi/vectorcall.c - MethodDescriptorBase_Type - -Modules/_testcapi/vectorcall.c - MethodDescriptorDerived_Type - -Modules/_testcapi/vectorcall.c - MethodDescriptorNopGet_Type - -Modules/_testcapi/vectorcall.c - MethodDescriptor2_Type - +Modules/_threadmodule.c - Locktype - +Modules/_threadmodule.c - RLocktype - +Modules/_threadmodule.c - localdummytype - +Modules/_threadmodule.c - localtype - Modules/itertoolsmodule.c - _grouper_type - Modules/itertoolsmodule.c - accumulate_type - Modules/itertoolsmodule.c - chain_type - @@ -597,18 +596,80 @@ Modules/itertoolsmodule.c - teedataobject_type - Modules/itertoolsmodule.c - ziplongest_type - #----------------------- -# other +# non-static types - initialized once -# statically initializd pointer to static type -# XXX should be const? -# XXX This should have been found by the analyzer but wasn't: -Modules/_io/winconsoleio.c - _PyWindowsConsoleIO_Type - +# structseq types +Modules/_threadmodule.c - ExceptHookArgsType - +Modules/signalmodule.c - SiginfoType - +Modules/timemodule.c - StructTimeType - + +# exception types +Modules/_threadmodule.c - ThreadError - +Modules/signalmodule.c - ItimerError - + +#----------------------- +# cached - initialized once + +# _PyArg_Parser +Modules/clinic/_codecsmodule.c.h _codecs_decode _parser - +Modules/clinic/_codecsmodule.c.h _codecs_encode _parser - +Modules/clinic/_sre.c.h _sre_SRE_Match_expand _parser - +Modules/clinic/_sre.c.h _sre_SRE_Match_groupdict _parser - +Modules/clinic/_sre.c.h _sre_SRE_Match_groups _parser - +Modules/clinic/_sre.c.h _sre_SRE_Pattern_findall _parser - +Modules/clinic/_sre.c.h _sre_SRE_Pattern_finditer _parser - +Modules/clinic/_sre.c.h _sre_SRE_Pattern_fullmatch _parser - +Modules/clinic/_sre.c.h _sre_SRE_Pattern_match _parser - +Modules/clinic/_sre.c.h _sre_SRE_Pattern_scanner _parser - +Modules/clinic/_sre.c.h _sre_SRE_Pattern_search _parser - +Modules/clinic/_sre.c.h _sre_SRE_Pattern_split _parser - +Modules/clinic/_sre.c.h _sre_SRE_Pattern_sub _parser - +Modules/clinic/_sre.c.h _sre_SRE_Pattern_subn _parser - +Modules/clinic/_sre.c.h _sre_SRE_Scanner_match _parser - +Modules/clinic/_sre.c.h _sre_SRE_Scanner_search _parser - +Modules/clinic/_sre.c.h _sre_compile _parser - +Modules/clinic/gcmodule.c.h gc_collect _parser - +Modules/clinic/gcmodule.c.h gc_get_objects _parser - +Modules/clinic/itertoolsmodule.c.h itertools_accumulate _parser - +Modules/clinic/itertoolsmodule.c.h itertools_combinations _parser - +Modules/clinic/itertoolsmodule.c.h itertools_combinations_with_replacement _parser - +Modules/clinic/itertoolsmodule.c.h itertools_compress _parser - +Modules/clinic/itertoolsmodule.c.h itertools_count _parser - +Modules/clinic/itertoolsmodule.c.h itertools_groupby _parser - +Modules/clinic/itertoolsmodule.c.h itertools_permutations _parser - +Modules/clinic/posixmodule.c.h os_DirEntry_is_dir _parser - +Modules/clinic/posixmodule.c.h os_DirEntry_is_file _parser - +Modules/clinic/posixmodule.c.h os_DirEntry_is_symlink _parser - +Modules/clinic/posixmodule.c.h os_DirEntry_stat _parser - +Modules/clinic/posixmodule.c.h os__exit _parser - +Modules/clinic/posixmodule.c.h os__path_normpath _parser - +Modules/clinic/posixmodule.c.h os_access _parser - +Modules/clinic/posixmodule.c.h os_chdir _parser - +Modules/clinic/posixmodule.c.h os_chmod _parser - +Modules/clinic/posixmodule.c.h os_close _parser - +Modules/clinic/posixmodule.c.h os_device_encoding _parser - +Modules/clinic/posixmodule.c.h os_dup2 _parser - +Modules/clinic/posixmodule.c.h os_fspath _parser - +Modules/clinic/posixmodule.c.h os_fstat _parser - +Modules/clinic/posixmodule.c.h os_listdir _parser - +Modules/clinic/posixmodule.c.h os_lstat _parser - +Modules/clinic/posixmodule.c.h os_mkdir _parser - +Modules/clinic/posixmodule.c.h os_open _parser - +Modules/clinic/posixmodule.c.h os_remove _parser - +Modules/clinic/posixmodule.c.h os_rename _parser - +Modules/clinic/posixmodule.c.h os_replace _parser - +Modules/clinic/posixmodule.c.h os_rmdir _parser - +Modules/clinic/posixmodule.c.h os_scandir _parser - +Modules/clinic/posixmodule.c.h os_stat _parser - +Modules/clinic/posixmodule.c.h os_unlink _parser - +Modules/clinic/posixmodule.c.h os_utime _parser - + +#----------------------- +# other # initialized once Modules/_functoolsmodule.c - kwd_mark - Modules/_io/_iomodule.c - _PyIO_empty_bytes - -Modules/_testcapi/heaptype.c - _testcapimodule - -Modules/_testcapi/unicode.c - _testcapimodule - Modules/_tracemalloc.c - tracemalloc_empty_traceback - Modules/signalmodule.c - DefaultHandler - Modules/signalmodule.c - IgnoreHandler - @@ -630,9 +691,13 @@ Modules/signalmodule.c - Handlers - # initialized once Modules/_io/bufferedio.c _PyIO_trap_eintr eintr_int - +#Modules/cjkcodecs/cjkcodecs.h - codec_list - +#Modules/cjkcodecs/cjkcodecs.h - mapping_list - Modules/posixmodule.c os_dup2_impl dup3_works - Modules/posixmodule.c - structseq_new - Modules/posixmodule.c - ticks_per_second - +Modules/signalmodule.c - initialized - +Modules/timemodule.c - initialized - Modules/timemodule.c _PyTime_GetClockWithInfo initialized - Modules/timemodule.c _PyTime_GetProcessTimeWithInfo ticks_per_second - @@ -659,6 +724,75 @@ Modules/signalmodule.c - wakeup - ################################## # global objects to fix in extension modules +#----------------------- +# modules + +Modules/_asynciomodule.c - _asynciomodule - +Modules/_bisectmodule.c - _bisectmodule - +Modules/_blake2/blake2module.c - blake2_module - +Modules/_bz2module.c - _bz2module - +Modules/_contextvarsmodule.c - _contextvarsmodule - +Modules/_cryptmodule.c - cryptmodule - +Modules/_csv.c - _csvmodule - +Modules/_ctypes/_ctypes.c - _ctypesmodule - +Modules/_curses_panel.c - _curses_panelmodule - +Modules/_cursesmodule.c - _cursesmodule - +Modules/_datetimemodule.c - datetimemodule - +Modules/_decimal/_decimal.c - _decimal_module - +Modules/_elementtree.c - elementtreemodule - +Modules/_gdbmmodule.c - _gdbmmodule - +Modules/_hashopenssl.c - _hashlibmodule - +Modules/_heapqmodule.c - _heapqmodule - +Modules/_json.c - jsonmodule - +Modules/_lsprof.c - _lsprofmodule - +Modules/_lzmamodule.c - _lzmamodule - +Modules/_multiprocessing/multiprocessing.c - multiprocessing_module - +Modules/_multiprocessing/posixshmem.c - this_module - +Modules/_opcode.c - opcodemodule - +Modules/_operator.c - operatormodule - +Modules/_pickle.c - _picklemodule - +Modules/_posixsubprocess.c - _posixsubprocessmodule - +Modules/_queuemodule.c - queuemodule - +Modules/_randommodule.c - _randommodule - +Modules/_sha3/sha3module.c - _sha3module - +Modules/_sqlite/module.c - _sqlite3module - +Modules/_ssl.c - PySocketModule - +Modules/_ssl.c - _sslmodule - +Modules/_statisticsmodule.c - statisticsmodule - +Modules/_struct.c - _structmodule - +Modules/_tkinter.c - _tkintermodule - +Modules/_uuidmodule.c - uuidmodule - +Modules/_xxsubinterpretersmodule.c - interpretersmodule - +Modules/_zoneinfo.c - zoneinfomodule - +Modules/arraymodule.c - arraymodule - +Modules/audioop.c - audioopmodule - +Modules/binascii.c - binasciimodule - +Modules/cjkcodecs/multibytecodec.c - _multibytecodecmodule - +Modules/cmathmodule.c - cmathmodule - +Modules/fcntlmodule.c - fcntlmodule - +Modules/grpmodule.c - grpmodule - +Modules/mathmodule.c - mathmodule - +Modules/md5module.c - _md5module - +Modules/mmapmodule.c - mmapmodule - +Modules/nismodule.c - nismodule - +Modules/ossaudiodev.c - ossaudiodevmodule - +Modules/pyexpat.c - pyexpatmodule - +Modules/readline.c - readlinemodule - +Modules/resource.c - resourcemodule - +Modules/selectmodule.c - selectmodule - +Modules/sha1module.c - _sha1module - +Modules/sha256module.c - _sha256module - +Modules/sha512module.c - _sha512module - +Modules/socketmodule.c - socketmodule - +Modules/spwdmodule.c - spwdmodule - +Modules/syslogmodule.c - syslogmodule - +Modules/termios.c - termiosmodule - +Modules/unicodedata.c - unicodedata_module - +Modules/xxlimited.c - xxmodule - +Modules/xxmodule.c - xxmodule - +Modules/xxsubtype.c - xxsubtypemodule - +Modules/zlibmodule.c - zlibmodule - + #----------------------- # static types @@ -667,6 +801,9 @@ Modules/_asynciomodule.c - FutureType - Modules/_asynciomodule.c - PyRunningLoopHolder_Type - Modules/_asynciomodule.c - TaskStepMethWrapper_Type - Modules/_asynciomodule.c - TaskType - +Modules/_csv.c - Dialect_Type - +Modules/_csv.c - Reader_Type - +Modules/_csv.c - Writer_Type - Modules/_ctypes/_ctypes.c - DictRemover_Type - Modules/_ctypes/_ctypes.c - PyCArrayType_Type - Modules/_ctypes/_ctypes.c - PyCArray_Type - @@ -677,6 +814,7 @@ Modules/_ctypes/_ctypes.c - PyCPointerType_Type - Modules/_ctypes/_ctypes.c - PyCPointer_Type - Modules/_ctypes/_ctypes.c - PyCSimpleType_Type - Modules/_ctypes/_ctypes.c - PyCStructType_Type - +Modules/_ctypes/_ctypes.c - PyComError_Type - Modules/_ctypes/_ctypes.c - Simple_Type - Modules/_ctypes/_ctypes.c - StructParam_Type - Modules/_ctypes/_ctypes.c - Struct_Type - @@ -685,24 +823,6 @@ Modules/_ctypes/_ctypes.c - Union_Type - Modules/_ctypes/callbacks.c - PyCThunk_Type - Modules/_ctypes/callproc.c - PyCArg_Type - Modules/_ctypes/cfield.c - PyCField_Type - -Modules/_ctypes/ctypes.h - PyCArg_Type - -Modules/_ctypes/ctypes.h - PyCArrayType_Type - -Modules/_ctypes/ctypes.h - PyCArray_Type - -Modules/_ctypes/ctypes.h - PyCData_Type - -Modules/_ctypes/ctypes.h - PyCField_Type - -Modules/_ctypes/ctypes.h - PyCFuncPtrType_Type - -Modules/_ctypes/ctypes.h - PyCFuncPtr_Type - -Modules/_ctypes/ctypes.h - PyCPointerType_Type - -Modules/_ctypes/ctypes.h - PyCPointer_Type - -Modules/_ctypes/ctypes.h - PyCSimpleType_Type - -Modules/_ctypes/ctypes.h - PyCStgDict_Type - -Modules/_ctypes/ctypes.h - PyCStructType_Type - -Modules/_ctypes/ctypes.h - PyCThunk_Type - -Modules/_ctypes/ctypes.h - PyExc_ArgError - -Modules/_ctypes/ctypes.h - _ctypes_conversion_encoding - -Modules/_ctypes/ctypes.h - _ctypes_conversion_errors - -Modules/_ctypes/ctypes.h - _ctypes_ptrtype_cache - -Modules/_ctypes/ctypes.h - basespec_string - Modules/_ctypes/stgdict.c - PyCStgDict_Type - Modules/_cursesmodule.c - PyCursesWindow_Type - Modules/_datetimemodule.c - PyDateTime_DateTimeType - @@ -720,16 +840,35 @@ Modules/_elementtree.c - ElementIter_Type - Modules/_elementtree.c - Element_Type - Modules/_elementtree.c - TreeBuilder_Type - Modules/_elementtree.c - XMLParser_Type - +Modules/_multiprocessing/semaphore.c - _PyMp_SemLockType - Modules/_pickle.c - Pdata_Type - Modules/_pickle.c - PicklerMemoProxyType - Modules/_pickle.c - Pickler_Type - Modules/_pickle.c - UnpicklerMemoProxyType - Modules/_pickle.c - Unpickler_Type - +Modules/_queuemodule.c - PySimpleQueueType - +Modules/_sre.c - Match_Type - +Modules/_sre.c - Pattern_Type - +Modules/_sre.c - Scanner_Type - +Modules/_ssl.c - PySSLContext_Type - +Modules/_ssl.c - PySSLMemoryBIO_Type - +Modules/_ssl.c - PySSLSession_Type - +Modules/_ssl.c - PySSLSocket_Type - Modules/_xxsubinterpretersmodule.c - ChannelIDtype - Modules/_zoneinfo.c - PyZoneInfo_ZoneInfoType - +Modules/arraymodule.c - Arraytype - +Modules/arraymodule.c - PyArrayIter_Type - +Modules/cjkcodecs/multibytecodec.c - MultibyteCodec_Type - +Modules/cjkcodecs/multibytecodec.c - MultibyteIncrementalDecoder_Type - +Modules/cjkcodecs/multibytecodec.c - MultibyteIncrementalEncoder_Type - +Modules/cjkcodecs/multibytecodec.c - MultibyteStreamReader_Type - +Modules/cjkcodecs/multibytecodec.c - MultibyteStreamWriter_Type - +Modules/mmapmodule.c - mmap_object_type - Modules/ossaudiodev.c - OSSAudioType - Modules/ossaudiodev.c - OSSMixerType - +Modules/pyexpat.c - Xmlparsetype - Modules/socketmodule.c - sock_type - +Modules/xxlimited_35.c - Xxo_Type - Modules/xxmodule.c - Null_Type - Modules/xxmodule.c - Str_Type - Modules/xxmodule.c - Xxo_Type - @@ -739,18 +878,31 @@ Modules/xxsubtype.c - spamlist_type - #----------------------- # non-static types - initialized once +# structseq types +Modules/_cursesmodule.c - NcursesVersionType - +Modules/resource.c - StructRUsageType - +Modules/spwdmodule.c - StructSpwdType - + # heap types Modules/_decimal/_decimal.c - DecimalTuple - Modules/_decimal/_decimal.c - PyDecSignalDict_Type - Modules/_tkinter.c - PyTclObject_Type - Modules/_tkinter.c - Tkapp_Type - Modules/_tkinter.c - Tktt_Type - -Modules/xxlimited_35.c - Xxo_Type - +Modules/xxlimited.c - Xxo_Type - # exception types Modules/_ctypes/_ctypes.c - PyExc_ArgError - Modules/_cursesmodule.c - PyCursesError - Modules/_decimal/_decimal.c - DecimalException - +Modules/_queuemodule.c - EmptyError - +Modules/_ssl.c - PySSLErrorObject - +Modules/_ssl.c - PySSLCertVerificationErrorObject - +Modules/_ssl.c - PySSLZeroReturnErrorObject - +Modules/_ssl.c - PySSLWantReadErrorObject - +Modules/_ssl.c - PySSLWantWriteErrorObject - +Modules/_ssl.c - PySSLSyscallErrorObject - +Modules/_ssl.c - PySSLEOFErrorObject - Modules/_tkinter.c - Tkinter_TclError - Modules/_xxsubinterpretersmodule.c - ChannelError - Modules/_xxsubinterpretersmodule.c - ChannelNotFoundError - @@ -759,9 +911,11 @@ Modules/_xxsubinterpretersmodule.c - ChannelEmptyError - Modules/_xxsubinterpretersmodule.c - ChannelNotEmptyError - Modules/_xxsubinterpretersmodule.c - RunFailedError - Modules/ossaudiodev.c - OSSAudioError - +Modules/pyexpat.c - ErrorObject - Modules/socketmodule.c - socket_herror - Modules/socketmodule.c - socket_gaierror - -Modules/xxlimited_35.c - ErrorObject - +Modules/socketmodule.c - socket_timeout - +Modules/xxlimited.c - ErrorObject - Modules/xxmodule.c - ErrorObject - #----------------------- @@ -775,12 +929,37 @@ Modules/_asynciomodule.c - PyId_call_soon - Modules/_asynciomodule.c - PyId_cancel - Modules/_asynciomodule.c - PyId_get_event_loop - Modules/_asynciomodule.c - PyId_throw - +Modules/_bisectmodule.c - PyId_insert - Modules/_datetimemodule.c - PyId_as_integer_ratio - Modules/_datetimemodule.c - PyId_fromutc - Modules/_datetimemodule.c - PyId_isoformat - Modules/_datetimemodule.c - PyId_strftime - +Modules/_sqlite/connection.c - PyId_cursor - +Modules/cjkcodecs/multibytecodec.c - PyId_write - +Modules/unicodedata.c - PyId_NFC - +Modules/unicodedata.c - PyId_NFD - +Modules/unicodedata.c - PyId_NFKC - +Modules/unicodedata.c - PyId_NFKD - # _Py_IDENTIFIER (local) +Modules/_json.c _encoded_const PyId_false - +Modules/_json.c _encoded_const PyId_null - +Modules/_json.c _encoded_const PyId_true - +Modules/_json.c encoder_listencode_dict PyId_close_dict - +Modules/_json.c encoder_listencode_dict PyId_empty_dict - +Modules/_json.c encoder_listencode_dict PyId_open_dict - +Modules/_json.c encoder_listencode_list PyId_close_array - +Modules/_json.c encoder_listencode_list PyId_empty_array - +Modules/_json.c encoder_listencode_list PyId_open_array - +Modules/_json.c raise_errmsg PyId_JSONDecodeError - +Modules/_json.c raise_errmsg PyId_decoder - +Modules/_sqlite/connection.c final_callback PyId_finalize - +Modules/_sqlite/connection.c pysqlite_connection_execute_impl PyId_execute - +Modules/_sqlite/connection.c pysqlite_connection_executemany_impl PyId_executemany - +Modules/_sqlite/connection.c pysqlite_connection_executescript PyId_executescript - +Modules/_sqlite/connection.c pysqlite_connection_iterdump_impl PyId__iterdump - +Modules/_sqlite/module.c pysqlite_register_converter_impl PyId_upper - +Modules/pyexpat.c pyexpat_xmlparser_ParseFile_impl PyId_read - Modules/_asynciomodule.c FutureObj_finalize PyId_call_exception_handler - Modules/_asynciomodule.c FutureObj_finalize PyId_exception - Modules/_asynciomodule.c FutureObj_finalize PyId_future - @@ -789,6 +968,7 @@ Modules/_asynciomodule.c FutureObj_finalize PyId_source_traceback - Modules/_asynciomodule.c FutureObj_get_state PyId_CANCELLED - Modules/_asynciomodule.c FutureObj_get_state PyId_FINISHED - Modules/_asynciomodule.c FutureObj_get_state PyId_PENDING - +Modules/_asynciomodule.c FutureObj_repr PyId__repr_info - Modules/_asynciomodule.c TaskObj_finalize PyId_call_exception_handler - Modules/_asynciomodule.c TaskObj_finalize PyId_message - Modules/_asynciomodule.c TaskObj_finalize PyId_source_traceback - @@ -798,6 +978,7 @@ Modules/_asynciomodule.c get_future_loop PyId__loop - Modules/_asynciomodule.c get_future_loop PyId_get_loop - Modules/_asynciomodule.c register_task PyId_add - Modules/_asynciomodule.c unregister_task PyId_discard - +Modules/_csv.c csv_writer PyId_write - Modules/_ctypes/_ctypes.c CDataType_from_param PyId__as_parameter_ - Modules/_ctypes/_ctypes.c PyCArrayType_new PyId__length_ - Modules/_ctypes/_ctypes.c PyCArrayType_new PyId__type_ - @@ -829,12 +1010,15 @@ Modules/_cursesmodule.c _curses_getwin PyId_read - Modules/_cursesmodule.c _curses_window_putwin PyId_write - Modules/_cursesmodule.c update_lines_cols PyId_COLS - Modules/_cursesmodule.c update_lines_cols PyId_LINES - +Modules/_datetimemodule.c build_struct_time PyId_struct_time - Modules/_datetimemodule.c call_tzname PyId_tzname - Modules/_datetimemodule.c date_strftime PyId_timetuple - Modules/_datetimemodule.c date_today PyId_fromtimestamp - Modules/_datetimemodule.c datetime_strptime PyId__strptime_datetime - Modules/_datetimemodule.c make_Zreplacement PyId_replace - +Modules/_datetimemodule.c time_time PyId_time - Modules/_datetimemodule.c tzinfo_reduce PyId___getinitargs__ - +Modules/_datetimemodule.c tzinfo_reduce PyId___getstate__ - Modules/_elementtree.c _elementtree_Element_find_impl PyId_find - Modules/_elementtree.c _elementtree_Element_findall_impl PyId_findall - Modules/_elementtree.c _elementtree_Element_findtext_impl PyId_findtext - @@ -843,27 +1027,223 @@ Modules/_elementtree.c expat_start_doctype_handler PyId_doctype - Modules/_elementtree.c treebuilder_add_subelement PyId_append - Modules/_elementtree.c treebuilder_flush_data PyId_tail - Modules/_elementtree.c treebuilder_flush_data PyId_text - -Modules/_json.c _encoded_const PyId_false - -Modules/_json.c _encoded_const PyId_null - -Modules/_json.c _encoded_const PyId_true - -Modules/_json.c raise_errmsg PyId_JSONDecodeError - -Modules/_json.c raise_errmsg PyId_decoder - +Modules/_gdbmmodule.c gdbm__exit__ PyId_close - +Modules/_lzmamodule.c build_filter_spec PyId_dict_size - +Modules/_lzmamodule.c build_filter_spec PyId_dist - +Modules/_lzmamodule.c build_filter_spec PyId_id - +Modules/_lzmamodule.c build_filter_spec PyId_lc - +Modules/_lzmamodule.c build_filter_spec PyId_lp - +Modules/_lzmamodule.c build_filter_spec PyId_pb - +Modules/_lzmamodule.c build_filter_spec PyId_start_offset - +Modules/_operator.c methodcaller_reduce PyId_partial - +Modules/_pickle.c _Pickle_InitState PyId_getattr - +Modules/_pickle.c _Pickler_SetOutputStream PyId_write - +Modules/_pickle.c _Unpickler_SetInputStream PyId_peek - +Modules/_pickle.c _Unpickler_SetInputStream PyId_read - +Modules/_pickle.c _Unpickler_SetInputStream PyId_readinto - +Modules/_pickle.c _Unpickler_SetInputStream PyId_readline - +Modules/_pickle.c _pickle_Pickler___init___impl PyId_dispatch_table - +Modules/_pickle.c _pickle_Pickler___init___impl PyId_persistent_id - +Modules/_pickle.c _pickle_Unpickler___init___impl PyId_persistent_load - +Modules/_pickle.c do_append PyId_append - +Modules/_pickle.c do_append PyId_extend - +Modules/_pickle.c dump PyId_reducer_override - +Modules/_pickle.c find_class PyId_find_class - +Modules/_pickle.c get_class PyId___class__ - +Modules/_pickle.c instantiate PyId___getinitargs__ - +Modules/_pickle.c instantiate PyId___new__ - +Modules/_pickle.c load_additems PyId_add - +Modules/_pickle.c load_build PyId___dict__ - +Modules/_pickle.c load_build PyId___setstate__ - +Modules/_pickle.c save PyId___reduce__ - +Modules/_pickle.c save PyId___reduce_ex__ - +Modules/_pickle.c save_bytes PyId_latin1 - +Modules/_pickle.c save_dict PyId_items - +Modules/_pickle.c save_global PyId___name__ - +Modules/_pickle.c save_global PyId___qualname__ - +Modules/_pickle.c save_reduce PyId___name__ - +Modules/_pickle.c save_reduce PyId___new__ - +Modules/_pickle.c save_reduce PyId___newobj__ - +Modules/_pickle.c save_reduce PyId___newobj_ex__ - +Modules/_pickle.c whichmodule PyId___main__ - +Modules/_pickle.c whichmodule PyId___module__ - +Modules/_pickle.c whichmodule PyId_modules - +Modules/_sqlite/connection.c _pysqlite_final_callback PyId_finalize - +Modules/_sqlite/connection.c pysqlite_connection_create_collation PyId_upper - +Modules/_sqlite/connection.c pysqlite_connection_iterdump PyId__iterdump - +Modules/_sqlite/connection.c pysqlite_connection_set_isolation_level PyId_upper - +Modules/_sqlite/cursor.c _pysqlite_get_converter PyId_upper - +Modules/_sqlite/microprotocols.c pysqlite_microprotocols_adapt PyId___adapt__ - +Modules/_sqlite/microprotocols.c pysqlite_microprotocols_adapt PyId___conform__ - +Modules/_sqlite/module.c module_register_converter PyId_upper - +Modules/_ssl.c fill_and_set_sslerror PyId_library - +Modules/_ssl.c fill_and_set_sslerror PyId_reason - +Modules/_ssl.c fill_and_set_sslerror PyId_verify_code - +Modules/_ssl.c fill_and_set_sslerror PyId_verify_message - +Modules/arraymodule.c array_array___reduce_ex__ PyId___dict__ - +Modules/arraymodule.c array_array___reduce_ex__ PyId__array_reconstructor - +Modules/arraymodule.c array_array_fromfile_impl PyId_read - +Modules/arraymodule.c array_array_tofile PyId_write - +Modules/arraymodule.c array_arrayiterator___reduce___impl PyId_iter - +Modules/mathmodule.c math_ceil PyId___ceil__ - +Modules/mathmodule.c math_floor PyId___floor__ - +Modules/mathmodule.c math_trunc PyId___trunc__ - +Modules/mmapmodule.c mmap__exit__method PyId_close - Modules/ossaudiodev.c oss_exit PyId_close - +Modules/pyexpat.c pyexpat_xmlparser_ParseFile PyId_read - + +# _Py_static_string +Modules/_pickle.c get_dotted_path PyId_dot - # manually cached PyUnicodeOjbect Modules/_asynciomodule.c - context_kwname - Modules/_ctypes/callproc.c _ctypes_get_errobj error_object_name - Modules/_ctypes/_ctypes.c CreateSwappedType suffix - +Modules/_json.c _encoded_const s_null - +Modules/_json.c _encoded_const s_true - +Modules/_json.c _encoded_const s_false - +Modules/_json.c encoder_listencode_dict open_dict - +Modules/_json.c encoder_listencode_dict close_dict - +Modules/_json.c encoder_listencode_dict empty_dict - +Modules/_json.c encoder_listencode_list open_array - +Modules/_json.c encoder_listencode_list close_array - +Modules/_json.c encoder_listencode_list empty_array - + +# _PyArg_Parser +Modules/clinic/_asynciomodule.c.h _asyncio_Future___init__ _parser - +Modules/clinic/_asynciomodule.c.h _asyncio_Future_add_done_callback _parser - +Modules/clinic/_asynciomodule.c.h _asyncio_Future_cancel _parser - +Modules/clinic/_asynciomodule.c.h _asyncio_Task___init__ _parser - +Modules/clinic/_asynciomodule.c.h _asyncio_Task_cancel _parser - +Modules/clinic/_asynciomodule.c.h _asyncio_Task_get_stack _parser - +Modules/clinic/_asynciomodule.c.h _asyncio_Task_print_stack _parser - +Modules/clinic/_asynciomodule.c.h _asyncio__enter_task _parser - +Modules/clinic/_asynciomodule.c.h _asyncio__get_event_loop _parser - +Modules/clinic/_asynciomodule.c.h _asyncio__leave_task _parser - +Modules/clinic/_asynciomodule.c.h _asyncio__register_task _parser - +Modules/clinic/_asynciomodule.c.h _asyncio__unregister_task _parser - +Modules/clinic/_bisectmodule.c.h _bisect_bisect_left _parser - +Modules/clinic/_bisectmodule.c.h _bisect_bisect_right _parser - +Modules/clinic/_bisectmodule.c.h _bisect_insort_left _parser - +Modules/clinic/_bisectmodule.c.h _bisect_insort_right _parser - +Modules/clinic/_bz2module.c.h _bz2_BZ2Decompressor_decompress _parser - +Modules/clinic/_curses_panel.c.h _curses_panel_panel_bottom _parser - +Modules/clinic/_curses_panel.c.h _curses_panel_panel_hide _parser - +Modules/clinic/_curses_panel.c.h _curses_panel_panel_move _parser - +Modules/clinic/_curses_panel.c.h _curses_panel_panel_replace _parser - +Modules/clinic/_curses_panel.c.h _curses_panel_panel_set_userptr _parser - +Modules/clinic/_curses_panel.c.h _curses_panel_panel_show _parser - +Modules/clinic/_curses_panel.c.h _curses_panel_panel_top _parser - +Modules/clinic/_curses_panel.c.h _curses_panel_panel_userptr _parser - +Modules/clinic/_cursesmodule.c.h _curses_setupterm _parser - +Modules/clinic/_datetimemodule.c.h datetime_datetime_now _parser - +Modules/clinic/_datetimemodule.c.h iso_calendar_date_new _parser - +Modules/clinic/_dbmmodule.c.h _dbm_dbm_get _parser - +Modules/clinic/_dbmmodule.c.h _dbm_dbm_keys _parser - +Modules/clinic/_dbmmodule.c.h _dbm_dbm_setdefault _parser - +Modules/clinic/_elementtree.c.h _elementtree_Element_find _parser - +Modules/clinic/_elementtree.c.h _elementtree_Element_findall _parser - +Modules/clinic/_elementtree.c.h _elementtree_Element_findtext _parser - +Modules/clinic/_elementtree.c.h _elementtree_Element_get _parser - +Modules/clinic/_elementtree.c.h _elementtree_Element_iter _parser - +Modules/clinic/_elementtree.c.h _elementtree_Element_iterfind _parser - +Modules/clinic/_elementtree.c.h _elementtree_TreeBuilder___init__ _parser - +Modules/clinic/_elementtree.c.h _elementtree_XMLParser___init__ _parser - +Modules/clinic/_gdbmmodule.c.h _gdbm_gdbm_firstkey _parser - +Modules/clinic/_gdbmmodule.c.h _gdbm_gdbm_keys _parser - +Modules/clinic/_gdbmmodule.c.h _gdbm_gdbm_nextkey _parser - +Modules/clinic/_gdbmmodule.c.h _gdbm_gdbm_reorganize _parser - +Modules/clinic/_gdbmmodule.c.h _gdbm_gdbm_sync _parser - +Modules/clinic/_hashopenssl.c.h EVP_new _parser - +Modules/clinic/_hashopenssl.c.h _hashlib_HMAC_update _parser - +Modules/clinic/_hashopenssl.c.h _hashlib_hmac_new _parser - +Modules/clinic/_hashopenssl.c.h _hashlib_hmac_singleshot _parser - +Modules/clinic/_hashopenssl.c.h _hashlib_openssl_md5 _parser - +Modules/clinic/_hashopenssl.c.h _hashlib_openssl_sha1 _parser - +Modules/clinic/_hashopenssl.c.h _hashlib_openssl_sha224 _parser - +Modules/clinic/_hashopenssl.c.h _hashlib_openssl_sha256 _parser - +Modules/clinic/_hashopenssl.c.h _hashlib_openssl_sha384 _parser - +Modules/clinic/_hashopenssl.c.h _hashlib_openssl_sha512 _parser - +Modules/clinic/_hashopenssl.c.h pbkdf2_hmac _parser - +Modules/clinic/_lsprof.c.h _lsprof_Profiler_getstats _parser - +Modules/clinic/_lzmamodule.c.h _lzma_LZMADecompressor___init__ _parser - +Modules/clinic/_lzmamodule.c.h _lzma_LZMADecompressor_decompress _parser - +Modules/clinic/_opcode.c.h _opcode_stack_effect _parser - +Modules/clinic/_pickle.c.h _pickle_Pickler___init__ _parser - +Modules/clinic/_pickle.c.h _pickle_Unpickler___init__ _parser - +Modules/clinic/_pickle.c.h _pickle_dump _parser - +Modules/clinic/_pickle.c.h _pickle_dumps _parser - +Modules/clinic/_pickle.c.h _pickle_load _parser - +Modules/clinic/_pickle.c.h _pickle_loads _parser - +Modules/clinic/_queuemodule.c.h _queue_SimpleQueue_get _parser - +Modules/clinic/_queuemodule.c.h _queue_SimpleQueue_get_nowait _parser - +Modules/clinic/_queuemodule.c.h _queue_SimpleQueue_put _parser - +Modules/clinic/_queuemodule.c.h _queue_SimpleQueue_put_nowait _parser - +Modules/clinic/_ssl.c.h _ssl__SSLContext__wrap_bio _parser - +Modules/clinic/_ssl.c.h _ssl__SSLContext__wrap_socket _parser - +Modules/clinic/_ssl.c.h _ssl__SSLContext_get_ca_certs _parser - +Modules/clinic/_ssl.c.h _ssl__SSLContext_load_cert_chain _parser - +Modules/clinic/_ssl.c.h _ssl__SSLContext_load_verify_locations _parser - +Modules/clinic/_ssl.c.h _ssl__SSLSocket_get_channel_binding _parser - +Modules/clinic/_ssl.c.h _ssl_txt2obj _parser - +Modules/clinic/_struct.c.h Struct___init__ _parser - +Modules/clinic/_struct.c.h Struct_unpack_from _parser - +Modules/clinic/_struct.c.h unpack_from _parser - +Modules/clinic/_testmultiphase.c.h _testmultiphase_StateAccessType_get_count _parser - +Modules/clinic/_testmultiphase.c.h _testmultiphase_StateAccessType_get_defining_module _parser - +Modules/clinic/_testmultiphase.c.h _testmultiphase_StateAccessType_getmodulebydef_bad_def _parser - +Modules/clinic/_testmultiphase.c.h _testmultiphase_StateAccessType_increment_count_clinic _parser - +Modules/clinic/_winapi.c.h _winapi_ConnectNamedPipe _parser - +Modules/clinic/_winapi.c.h _winapi_GetFileType _parser - +Modules/clinic/_winapi.c.h _winapi_ReadFile _parser - +Modules/clinic/_winapi.c.h _winapi_WriteFile _parser - +Modules/clinic/_winapi.c.h _winapi__mimetypes_read_windows_registry _parser - +Modules/clinic/arraymodule.c.h array_array_extend _parser - +Modules/clinic/binascii.c.h binascii_a2b_base64 _parser - +Modules/clinic/binascii.c.h binascii_a2b_qp _parser - +Modules/clinic/binascii.c.h binascii_b2a_base64 _parser - +Modules/clinic/binascii.c.h binascii_b2a_hex _parser - +Modules/clinic/binascii.c.h binascii_b2a_qp _parser - +Modules/clinic/binascii.c.h binascii_b2a_uu _parser - +Modules/clinic/binascii.c.h binascii_hexlify _parser - +Modules/clinic/cmathmodule.c.h cmath_isclose _parser - +Modules/clinic/grpmodule.c.h grp_getgrgid _parser - +Modules/clinic/grpmodule.c.h grp_getgrnam _parser - +Modules/clinic/mathmodule.c.h math_isclose _parser - +Modules/clinic/mathmodule.c.h math_prod _parser - +Modules/clinic/md5module.c.h MD5Type_copy _parser - +Modules/clinic/md5module.c.h _md5_md5 _parser - +Modules/clinic/overlapped.c.h _overlapped_Overlapped _parser - +Modules/clinic/pyexpat.c.h pyexpat_ParserCreate _parser - +Modules/clinic/pyexpat.c.h pyexpat_xmlparser_ExternalEntityParserCreate _parser - +Modules/clinic/pyexpat.c.h pyexpat_xmlparser_Parse _parser - +Modules/clinic/pyexpat.c.h pyexpat_xmlparser_ParseFile _parser - +Modules/clinic/sha1module.c.h SHA1Type_copy _parser - +Modules/clinic/sha1module.c.h _sha1_sha1 _parser - +Modules/clinic/sha256module.c.h SHA256Type_copy _parser - +Modules/clinic/sha256module.c.h _sha256_sha224 _parser - +Modules/clinic/sha256module.c.h _sha256_sha256 _parser - +Modules/clinic/sha512module.c.h SHA512Type_copy _parser - +Modules/clinic/sha512module.c.h _sha512_sha384 _parser - +Modules/clinic/sha512module.c.h _sha512_sha512 _parser - +Modules/clinic/zlibmodule.c.h zlib_Compress_compress _parser - +Modules/clinic/zlibmodule.c.h zlib_Compress_flush _parser - +Modules/clinic/zlibmodule.c.h zlib_Decompress_decompress _parser - +Modules/clinic/zlibmodule.c.h zlib_Decompress_flush _parser - +Modules/clinic/zlibmodule.c.h zlib_compress _parser - +Modules/clinic/zlibmodule.c.h zlib_compressobj _parser - +Modules/clinic/zlibmodule.c.h zlib_decompress _parser - +Modules/clinic/zlibmodule.c.h zlib_decompressobj _parser - # other - during module init Modules/_asynciomodule.c - asyncio_mod - Modules/_asynciomodule.c - traceback_extract_stack - -Modules/_asynciomodule.c - asyncio_future_repr_func - Modules/_asynciomodule.c - asyncio_get_event_loop_policy - +Modules/_asynciomodule.c - asyncio_future_repr_info_func - Modules/_asynciomodule.c - asyncio_iscoroutine_func - Modules/_asynciomodule.c - asyncio_task_get_stack_func - Modules/_asynciomodule.c - asyncio_task_print_stack_func - -Modules/_asynciomodule.c - asyncio_task_repr_func - +Modules/_asynciomodule.c - asyncio_task_repr_info_func - Modules/_asynciomodule.c - asyncio_InvalidStateError - Modules/_asynciomodule.c - asyncio_CancelledError - Modules/_zoneinfo.c - io_open - @@ -887,6 +1267,7 @@ Modules/_datetimemodule.c - us_per_hour - Modules/_datetimemodule.c - us_per_day - Modules/_datetimemodule.c - us_per_week - Modules/_datetimemodule.c - seconds_per_day - +Modules/_decimal/_decimal.c PyInit__decimal capsule - Modules/_decimal/_decimal.c - basic_context_template - Modules/_decimal/_decimal.c - current_context_var - Modules/_decimal/_decimal.c - default_context_template - @@ -894,7 +1275,17 @@ Modules/_decimal/_decimal.c - extended_context_template - Modules/_decimal/_decimal.c - round_map - Modules/_decimal/_decimal.c - Rational - Modules/_decimal/_decimal.c - SignalTuple - -Modules/arraymodule.c array_array___reduce_ex___impl array_reconstructor - +Modules/_json.c raise_errmsg JSONDecodeError - +Modules/_sqlite/microprotocols.c - psyco_adapters - +Modules/_sqlite/module.h - _pysqlite_converters - +Modules/_ssl.c - err_codes_to_names - +Modules/_ssl.c - err_names_to_codes - +Modules/_ssl.c - lib_codes_to_names - +# XXX This should have been found by the analyzer but wasn't: +Modules/_ssl.c - _ssl_locks - +Modules/_struct.c - cache - +Modules/arraymodule.c array_array___reduce_ex__ array_reconstructor - +Modules/cjkcodecs/cjkcodecs.h getmultibytecodec cofunc - # state Modules/_asynciomodule.c - cached_running_holder - @@ -904,7 +1295,6 @@ Modules/_asynciomodule.c - all_tasks - Modules/_asynciomodule.c - current_tasks - Modules/_asynciomodule.c - iscoroutine_typecache - Modules/_ctypes/_ctypes.c - _ctypes_ptrtype_cache - -Modules/_testinternalcapi.c - record_list - Modules/_tkinter.c - tcl_lock - Modules/_tkinter.c - excInCmd - Modules/_tkinter.c - valInCmd - @@ -912,6 +1302,7 @@ Modules/_tkinter.c - trbInCmd - Modules/_zoneinfo.c - TIMEDELTA_CACHE - Modules/_zoneinfo.c - ZONEINFO_WEAK_CACHE - Modules/syslogmodule.c - S_ident_o - +Modules/xxlimited_35.c - ErrorObject - ################################## @@ -933,41 +1324,32 @@ Modules/_cursesmodule.c - initialised - Modules/_cursesmodule.c - initialised_setupterm - Modules/_cursesmodule.c - initialisedcolors - Modules/_cursesmodule.c - screen_encoding - +Modules/_cursesmodule.c PyInit__curses PyCurses_API - +Modules/_datetimemodule.c - CAPI - +Modules/_decimal/_decimal.c PyInit__decimal initialized - Modules/_decimal/_decimal.c - _py_long_multiply - Modules/_decimal/_decimal.c - _py_long_floor_divide - Modules/_decimal/_decimal.c - _py_long_power - Modules/_decimal/_decimal.c - _py_float_abs - Modules/_decimal/_decimal.c - _py_long_bit_length - Modules/_decimal/_decimal.c - _py_float_as_integer_ratio - +Modules/_decimal/_decimal.c - _decimal_api - Modules/_elementtree.c - expat_capi - -Modules/cjkcodecs/_codecs_hk.c - big5_encmap - -Modules/cjkcodecs/_codecs_hk.c - big5_decmap - -Modules/cjkcodecs/_codecs_hk.c big5hkscs_codec_init initialized - -Modules/cjkcodecs/_codecs_iso2022.c - cp949_encmap - -Modules/cjkcodecs/_codecs_iso2022.c - ksx1001_decmap - -Modules/cjkcodecs/_codecs_iso2022.c - jisxcommon_encmap - -Modules/cjkcodecs/_codecs_iso2022.c - jisx0208_decmap - -Modules/cjkcodecs/_codecs_iso2022.c - jisx0212_decmap - -Modules/cjkcodecs/_codecs_iso2022.c - jisx0213_bmp_encmap - -Modules/cjkcodecs/_codecs_iso2022.c - jisx0213_1_bmp_decmap - -Modules/cjkcodecs/_codecs_iso2022.c - jisx0213_2_bmp_decmap - -Modules/cjkcodecs/_codecs_iso2022.c - jisx0213_emp_encmap - -Modules/cjkcodecs/_codecs_iso2022.c - jisx0213_1_emp_decmap - -Modules/cjkcodecs/_codecs_iso2022.c - jisx0213_2_emp_decmap - -Modules/cjkcodecs/_codecs_iso2022.c - gbcommon_encmap - -Modules/cjkcodecs/_codecs_iso2022.c - gb2312_decmap - -Modules/cjkcodecs/_codecs_iso2022.c ksx1001_init initialized - -Modules/cjkcodecs/_codecs_iso2022.c jisx0208_init initialized - -Modules/cjkcodecs/_codecs_iso2022.c jisx0212_init initialized - -Modules/cjkcodecs/_codecs_iso2022.c jisx0213_init initialized - -Modules/cjkcodecs/_codecs_iso2022.c gb2312_init initialized - +Modules/_sqlite/module.h - _pysqlite_enable_callback_tracebacks - +Modules/_sqlite/module.h - pysqlite_BaseTypeAdapted - +Modules/_ssl.c - _ssl_locks_count - Modules/cjkcodecs/cjkcodecs.h - codec_list - Modules/cjkcodecs/cjkcodecs.h - mapping_list - +Modules/getaddrinfo.c - gai_afdl - +Modules/pyexpat.c PyInit_pyexpat capi - Modules/readline.c - libedit_append_replace_history_offset - Modules/readline.c - using_libedit_emulation - Modules/readline.c - libedit_history_start - +Modules/resource.c - initialized - Modules/socketmodule.c - accept4_works - Modules/socketmodule.c - sock_cloexec_works - +Modules/socketmodule.c - PySocketModuleAPI - +Modules/spwdmodule.c - initialized - #----------------------- # state diff --git a/Tools/c-analyzer/cpython/ignored.tsv b/Tools/c-analyzer/cpython/ignored.tsv index 28c2325c263d29..63d0695bfb4a6e 100644 --- a/Tools/c-analyzer/cpython/ignored.tsv +++ b/Tools/c-analyzer/cpython/ignored.tsv @@ -2,18 +2,10 @@ filename funcname name reason #??? - somevar ??? ################################## -# mutable but known to be safe +# ignored by design Python/pylifecycle.c - _PyRuntime - -# All uses of _PyArg_Parser are handled in c-analyzr/cpython/_analyzer.py. - -#----------------------- -# others - -# XXX The analyzer should have ignored these. -Modules/_io/_iomodule.c - _PyIO_Module - -Modules/_sqlite/module.c - _sqlite3module - ################################## # forward/extern references @@ -38,7 +30,6 @@ Modules/_io/_iomodule.h - PyBufferedRandom_Type - Modules/_io/_iomodule.h - PyTextIOWrapper_Type - Modules/_io/_iomodule.h - PyIncrementalNewlineDecoder_Type - Modules/_io/_iomodule.h - _PyBytesIOBuffer_Type - -Modules/_io/_iomodule.h - _PyIO_Module - Modules/_io/_iomodule.h - _PyIO_str_close - Modules/_io/_iomodule.h - _PyIO_str_closed - Modules/_io/_iomodule.h - _PyIO_str_decode - @@ -73,66 +64,8 @@ Modules/_sqlite/module.c - pysqlite_BaseTypeAdapted - Modules/_sqlite/module.h - pysqlite_global_state - Modules/_testcapimodule.c - _PyBytesIOBuffer_Type - Modules/posixmodule.c - _Py_open_cloexec_works - -Objects/object.c - _Py_GenericAliasIterType - -Objects/object.c - _PyMemoryIter_Type - -Objects/object.c - _PyLineIterator - -Objects/object.c - _PyPositionsIterator - -Objects/perf_trampoline.c - _Py_trampoline_func_start - -Objects/perf_trampoline.c - _Py_trampoline_func_end - Python/importdl.h - _PyImport_DynLoadFiletab - -Modules/expat/xmlrole.c - prolog0 - -Modules/expat/xmlrole.c - prolog1 - -Modules/expat/xmlrole.c - prolog2 - -Modules/expat/xmlrole.c - doctype0 - -Modules/expat/xmlrole.c - doctype1 - -Modules/expat/xmlrole.c - doctype2 - -Modules/expat/xmlrole.c - doctype3 - -Modules/expat/xmlrole.c - doctype4 - -Modules/expat/xmlrole.c - doctype5 - -Modules/expat/xmlrole.c - internalSubset - -Modules/expat/xmlrole.c - entity0 - -Modules/expat/xmlrole.c - entity1 - -Modules/expat/xmlrole.c - entity2 - -Modules/expat/xmlrole.c - entity3 - -Modules/expat/xmlrole.c - entity4 - -Modules/expat/xmlrole.c - entity5 - -Modules/expat/xmlrole.c - entity6 - -Modules/expat/xmlrole.c - entity7 - -Modules/expat/xmlrole.c - entity8 - -Modules/expat/xmlrole.c - entity9 - -Modules/expat/xmlrole.c - entity10 - -Modules/expat/xmlrole.c - notation0 - -Modules/expat/xmlrole.c - notation1 - -Modules/expat/xmlrole.c - notation2 - -Modules/expat/xmlrole.c - notation3 - -Modules/expat/xmlrole.c - notation4 - -Modules/expat/xmlrole.c - attlist0 - -Modules/expat/xmlrole.c - attlist1 - -Modules/expat/xmlrole.c - attlist2 - -Modules/expat/xmlrole.c - attlist3 - -Modules/expat/xmlrole.c - attlist4 - -Modules/expat/xmlrole.c - attlist5 - -Modules/expat/xmlrole.c - attlist6 - -Modules/expat/xmlrole.c - attlist7 - -Modules/expat/xmlrole.c - attlist8 - -Modules/expat/xmlrole.c - attlist9 - -Modules/expat/xmlrole.c - element0 - -Modules/expat/xmlrole.c - element1 - -Modules/expat/xmlrole.c - element2 - -Modules/expat/xmlrole.c - element3 - -Modules/expat/xmlrole.c - element4 - -Modules/expat/xmlrole.c - element5 - -Modules/expat/xmlrole.c - element6 - -Modules/expat/xmlrole.c - element7 - -Modules/expat/xmlrole.c - externalSubset0 - -Modules/expat/xmlrole.c - externalSubset1 - -Modules/expat/xmlrole.c - condSect0 - -Modules/expat/xmlrole.c - condSect1 - -Modules/expat/xmlrole.c - condSect2 - -Modules/expat/xmlrole.c - declClose - -Modules/expat/xmlrole.c - error - - ################################## # test code @@ -253,7 +186,6 @@ Modules/_testcapimodule.c - x - Modules/_testcapimodule.c getargs_keyword_only keywords - Modules/_testcapimodule.c getargs_keywords keywords - Modules/_testcapimodule.c getargs_positional_only_and_keywords keywords - -Modules/_testcapimodule.c getargs_s_hash_int2 keywords static char*[] Modules/_testcapimodule.c make_exception_with_doc kwlist - Modules/_testcapimodule.c raise_SIGINT_then_send_None PyId_send - Modules/_testcapimodule.c slot_tp_del PyId___tp_del__ - @@ -336,13 +268,1144 @@ Modules/_xxtestfuzz/fuzzer.c LLVMFuzzerTestOneInput AST_LITERAL_EVAL_INITIALIZED # These are all variables that we will be leaving global. -# All module defs, type defs, etc. are handled in c-analyzr/cpython/_analyzer.py. -# All kwlist arrays are handled in c-analyzr/cpython/_analyzer.py. +#----------------------- +# keywords for PyArg_ParseTupleAndKeywords() +# "static char *name[]" -> "static const char * const name[]" + +Modules/cjkcodecs/multibytecodec.c - incnewkwarglist - +Modules/cjkcodecs/multibytecodec.c - streamkwarglist - +Modules/_csv.c - dialect_kws - +Modules/_datetimemodule.c date_fromisocalendar keywords - +Modules/_datetimemodule.c - date_kws - +Modules/_datetimemodule.c date_strftime keywords - +Modules/_datetimemodule.c datetime_astimezone keywords - +Modules/_datetimemodule.c datetime_combine keywords - +Modules/_datetimemodule.c datetime_fromtimestamp keywords - +Modules/_datetimemodule.c datetime_isoformat keywords - +Modules/_datetimemodule.c - datetime_kws - +Modules/_datetimemodule.c delta_new keywords - +Modules/_datetimemodule.c time_isoformat keywords - +Modules/_datetimemodule.c - time_kws - +Modules/_datetimemodule.c time_strftime keywords - +Modules/_datetimemodule.c - timezone_kws - +Modules/_decimal/_decimal.c context_init kwlist - +Modules/_decimal/_decimal.c ctxmanager_new kwlist - +Modules/_decimal/_decimal.c ctx_mpd_qpow kwlist - +Modules/_decimal/_decimal.c dec_mpd_class kwlist - +Modules/_decimal/_decimal.c dec_mpd_compare_total kwlist - +Modules/_decimal/_decimal.c dec_mpd_compare_total_mag kwlist - +Modules/_decimal/_decimal.c dec_mpd_isnormal kwlist - +Modules/_decimal/_decimal.c dec_mpd_issubnormal kwlist - +Modules/_decimal/_decimal.c dec_mpd_qand kwlist - +Modules/_decimal/_decimal.c dec_mpd_qcompare kwlist - +Modules/_decimal/_decimal.c dec_mpd_qcompare_signal kwlist - +Modules/_decimal/_decimal.c dec_mpd_qcopy_sign kwlist - +Modules/_decimal/_decimal.c dec_mpd_qexp kwlist - +Modules/_decimal/_decimal.c dec_mpd_qfma kwlist - +Modules/_decimal/_decimal.c dec_mpd_qinvert kwlist - +Modules/_decimal/_decimal.c dec_mpd_qln kwlist - +Modules/_decimal/_decimal.c dec_mpd_qlog10 kwlist - +Modules/_decimal/_decimal.c dec_mpd_qlogb kwlist - +Modules/_decimal/_decimal.c dec_mpd_qmax kwlist - +Modules/_decimal/_decimal.c dec_mpd_qmax_mag kwlist - +Modules/_decimal/_decimal.c dec_mpd_qmin kwlist - +Modules/_decimal/_decimal.c dec_mpd_qmin_mag kwlist - +Modules/_decimal/_decimal.c dec_mpd_qnext_minus kwlist - +Modules/_decimal/_decimal.c dec_mpd_qnext_plus kwlist - +Modules/_decimal/_decimal.c dec_mpd_qnext_toward kwlist - +Modules/_decimal/_decimal.c dec_mpd_qor kwlist - +Modules/_decimal/_decimal.c dec_mpd_qquantize kwlist - +Modules/_decimal/_decimal.c dec_mpd_qreduce kwlist - +Modules/_decimal/_decimal.c dec_mpd_qrem_near kwlist - +Modules/_decimal/_decimal.c dec_mpd_qrotate kwlist - +Modules/_decimal/_decimal.c dec_mpd_qscaleb kwlist - +Modules/_decimal/_decimal.c dec_mpd_qshift kwlist - +Modules/_decimal/_decimal.c dec_mpd_qsqrt kwlist - +Modules/_decimal/_decimal.c dec_mpd_qxor kwlist - +Modules/_decimal/_decimal.c dec_mpd_same_quantum kwlist - +Modules/_decimal/_decimal.c dec_mpd_to_eng kwlist - +Modules/_decimal/_decimal.c dec_new kwlist - +Modules/_decimal/_decimal.c PyDec_ToIntegralExact kwlist - +Modules/_decimal/_decimal.c PyDec_ToIntegralValue kwlist - +Modules/_elementtree.c element_setstate_from_Python kwlist - +Modules/faulthandler.c faulthandler_dump_traceback_later kwlist - +Modules/faulthandler.c faulthandler_dump_traceback_py kwlist - +Modules/faulthandler.c faulthandler_py_enable kwlist - +Modules/faulthandler.c faulthandler_register_py kwlist - +Modules/_functoolsmodule.c functools_cmp_to_key kwargs - +Modules/_functoolsmodule.c keyobject_call kwargs - +Modules/_functoolsmodule.c lru_cache_new keywords - +Modules/itertoolsmodule.c repeat_new kwargs - +Modules/_json.c encoder_call kwlist - +Modules/_json.c encoder_new kwlist - +Modules/_json.c scanner_call kwlist - +Modules/_json.c scanner_new kwlist - +Modules/_lsprof.c profiler_enable kwlist - +Modules/_lsprof.c profiler_init kwlist - +Modules/_lzmamodule.c Compressor_init arg_names - +Modules/_lzmamodule.c parse_filter_spec_bcj optnames - +Modules/_lzmamodule.c parse_filter_spec_delta optnames - +Modules/_lzmamodule.c parse_filter_spec_lzma optnames - +Modules/mmapmodule.c new_mmap_object keywords - +Modules/nismodule.c nis_cat kwlist - +Modules/nismodule.c nis_maps kwlist - +Modules/nismodule.c nis_match kwlist - +Modules/signalmodule.c signal_set_wakeup_fd kwlist - +Modules/socketmodule.c sock_initobj keywords - +Modules/socketmodule.c sock_recvfrom_into kwlist - +Modules/socketmodule.c sock_recv_into kwlist - +Modules/socketmodule.c sock_sendmsg_afalg keywords - +Modules/socketmodule.c socket_getaddrinfo kwnames - +Modules/_sqlite/connection.c pysqlite_connection_backup keywords - +Modules/_sqlite/connection.c pysqlite_connection_create_aggregate kwlist - +Modules/_sqlite/connection.c pysqlite_connection_create_function kwlist - +Modules/_sqlite/connection.c pysqlite_connection_cursor kwlist - +Modules/_sqlite/connection.c pysqlite_connection_init kwlist - +Modules/_sqlite/connection.c pysqlite_connection_set_authorizer kwlist - +Modules/_sqlite/connection.c pysqlite_connection_set_progress_handler kwlist - +Modules/_sqlite/connection.c pysqlite_connection_set_trace_callback kwlist - +Modules/_sqlite/cursor.c pysqlite_cursor_fetchmany kwlist - +Modules/_sqlite/module.c module_complete kwlist - +Modules/_sqlite/module.c module_connect kwlist - +Modules/_sqlite/module.c module_enable_shared_cache kwlist - +Modules/syslogmodule.c syslog_openlog keywords - +Modules/_xxsubinterpretersmodule.c channel_close kwlist - +Modules/_xxsubinterpretersmodule.c channel_destroy kwlist - +Modules/_xxsubinterpretersmodule.c channelid_new kwlist - +Modules/_xxsubinterpretersmodule.c channel_list_interpreters kwlist - +Modules/_xxsubinterpretersmodule.c channel_recv kwlist - +Modules/_xxsubinterpretersmodule.c channel_release kwlist - +Modules/_xxsubinterpretersmodule.c channel_send kwlist - +Modules/_xxsubinterpretersmodule.c interp_create kwlist - +Modules/_xxsubinterpretersmodule.c interp_destroy kwlist - +Modules/_xxsubinterpretersmodule.c interp_is_running kwlist - +Modules/_xxsubinterpretersmodule.c interp_run_string kwlist - +Modules/_xxsubinterpretersmodule.c object_is_shareable kwlist - +Modules/_zoneinfo.c zoneinfo_clear_cache kwlist - +Modules/_zoneinfo.c zoneinfo_from_file kwlist - +Modules/_zoneinfo.c zoneinfo_new kwlist - +Modules/_zoneinfo.c zoneinfo_no_cache kwlist - +Objects/exceptions.c ImportError_init kwlist - +Objects/interpreteridobject.c interpid_new kwlist - +Objects/weakrefobject.c weakref_call kwlist - +Objects/exceptions.c NameError_init kwlist - +Objects/exceptions.c AttributeError_init kwlist - +Python/_warnings.c warnings_warn_explicit kwd_list - +Python/bltinmodule.c builtin___import__ kwlist - +Python/bltinmodule.c min_max kwlist - +Python/bltinmodule.c zip_new kwlist - +Python/context.c contextvar_tp_new kwlist - +Python/sysmodule.c sys_getsizeof kwlist - +Python/sysmodule.c sys_set_asyncgen_hooks keywords - + +#----------------------- +# PyModuleDef + +Modules/_multiprocessing/posixshmem.c - _posixshmemmodule - +Modules/_sqlite/module.h - _sqlite3module - +Modules/_ssl.c - _sslmodule_def - +Modules/_ssl.h - _sslmodule_def - +Modules/_testmultiphase.c - def_module_state_shared - +Modules/_threadmodule.c - thread_module - +Modules/_typingmodule.c - typingmodule - +Modules/signalmodule.c - signal_module - +Modules/xxlimited_35.c - xxmodule - +Python/Python-ast.c - _astmodule - +Python/Python-tokenize.c - _tokenizemodule - +Python/_warnings.c - warnings_module - +Python/bltinmodule.c - builtinsmodule - +Python/import.c - imp_module - +Python/marshal.c - marshalmodule - +Python/sysmodule.c - sysmodule - + +#----------------------- +# PyModuleDef_Slot + +Modules/_abc.c - _abcmodule_slots - +Modules/_blake2/blake2module.c - _blake2_slots - +Modules/_bz2module.c - _bz2_slots - +Modules/_codecsmodule.c - _codecs_slots - +Modules/_collectionsmodule.c - collections_slots - +Modules/_contextvarsmodule.c - _contextvars_slots - +Modules/_cryptmodule.c - _crypt_slots - +Modules/_csv.c - csv_slots - +Modules/_curses_panel.c - _curses_slots - +Modules/_dbmmodule.c - _dbmmodule_slots - +Modules/_functoolsmodule.c - _functools_slots - +Modules/_gdbmmodule.c - _gdbm_module_slots - +Modules/_hashopenssl.c - hashlib_slots - +Modules/_heapqmodule.c - heapq_slots - +Modules/_json.c - _json_slots - +Modules/_localemodule.c - _locale_slots - +Modules/_lsprof.c - _lsprofslots - +Modules/_lzmamodule.c - lzma_slots - +Modules/_multiprocessing/multiprocessing.c - multiprocessing_slots - +Modules/_operator.c - operator_slots - +Modules/_posixsubprocess.c - _posixsubprocess_slots - +Modules/_queuemodule.c - queuemodule_slots - +Modules/_randommodule.c - _random_slots - +Modules/_scproxy.c - _scproxy_slots - +Modules/_sha3/sha3module.c - _sha3_slots - +Modules/_sqlite/module.c - module_slots - +Modules/_sre.c - sre_slots - +Modules/_ssl.c - sslmodule_slots - +Modules/_stat.c - stat_slots - +Modules/_statisticsmodule.c - _statisticsmodule_slots - +Modules/_struct.c - _structmodule_slots - +Modules/_threadmodule.c - thread_module_slots - +Modules/_typingmodule.c - _typingmodule_slots - +Modules/_uuidmodule.c - uuid_slots - +Modules/_weakref.c - weakref_slots - +Modules/_winapi.c - winapi_slots - +Modules/_zoneinfo.c - zoneinfomodule_slots - +Modules/arraymodule.c - arrayslots - +Modules/atexitmodule.c - atexit_slots - +Modules/audioop.c - audioop_slots - +Modules/binascii.c - binascii_slots - +Modules/cjkcodecs/cjkcodecs.h - _cjk_slots - +Modules/cjkcodecs/multibytecodec.c - _multibytecodec_slots - +Modules/cmathmodule.c - cmath_slots - +Modules/errnomodule.c - errno_slots - +Modules/faulthandler.c - faulthandler_slots - +Modules/fcntlmodule.c - fcntl_slots - +Modules/gcmodule.c - gcmodule_slots - +Modules/gcmodule.c - gcmodule_slots - +Modules/grpmodule.c - grpmodule_slots - +Modules/itertoolsmodule.c - itertoolsmodule_slots - +Modules/mathmodule.c - math_slots - +Modules/md5module.c - _md5_slots - +Modules/mmapmodule.c - mmap_slots - +Modules/nismodule.c - nis_slots - +Modules/overlapped.c - overlapped_slots - +Modules/posixmodule.c - posixmodile_slots - +Modules/pwdmodule.c - pwdmodule_slots - +Modules/pyexpat.c - pyexpat_slots - +Modules/resource.c - resource_slots - +Modules/selectmodule.c - _select_slots - +Modules/sha1module.c - _sha1_slots - +Modules/sha256module.c - _sha256_slots - +Modules/sha512module.c - _sha512_slots - +Modules/signalmodule.c - signal_slots - +Modules/spwdmodule.c - spwdmodule_slots - +Modules/symtablemodule.c - symtable_slots - +Modules/syslogmodule.c - syslog_slots - +Modules/termios.c - termios_slots - +Modules/timemodule.c - time_slots - +Modules/unicodedata.c - unicodedata_slots - +Modules/xxlimited.c - xx_slots - +Modules/xxlimited_35.c - xx_slots - +Modules/xxmodule.c - xx_slots - +Modules/xxsubtype.c - xxsubtype_slots - +Modules/zlibmodule.c - zlib_slots - +Python/Python-ast.c - astmodule_slots - +Python/Python-tokenize.c - tokenizemodule_slots - +Python/_warnings.c - warnings_slots - +Python/marshal.c - marshalmodule_slots - + +#----------------------- +# PyMethodDef and PyMethodDef[], for static types and modules + +Modules/_abc.c - _abcmodule_methods - +Modules/_abc.c - _destroy_def - +Modules/_asynciomodule.c - FutureIter_methods - +Modules/_asynciomodule.c - FutureType_methods - +Modules/_asynciomodule.c - TaskType_methods - +Modules/_asynciomodule.c - TaskWakeupDef - +Modules/_asynciomodule.c - asyncio_methods - +Modules/_bisectmodule.c - bisect_methods - +Modules/_blake2/blake2b_impl.c - py_blake2b_methods - +Modules/_blake2/blake2module.c - blake2mod_functions - +Modules/_blake2/blake2s_impl.c - py_blake2s_methods - +Modules/_bz2module.c - BZ2Compressor_methods - +Modules/_bz2module.c - BZ2Decompressor_methods - +Modules/_codecsmodule.c - _codecs_functions - +Modules/_collectionsmodule.c - collections_methods - +Modules/_collectionsmodule.c - defdict_methods - +Modules/_collectionsmodule.c - deque_methods - +Modules/_collectionsmodule.c - dequeiter_methods - +Modules/_collectionsmodule.c - tuplegetter_methods - +Modules/_contextvarsmodule.c - _contextvars_methods - +Modules/_cryptmodule.c - crypt_methods - +Modules/_csv.c - Reader_methods - +Modules/_csv.c - Writer_methods - +Modules/_csv.c - csv_methods - +Modules/_csv.c - dialect_methods - +Modules/_ctypes/_ctypes.c - Array_methods - +Modules/_ctypes/_ctypes.c - CDataType_methods - +Modules/_ctypes/_ctypes.c - PyCData_methods - +Modules/_ctypes/_ctypes.c - PyCPointerType_methods - +Modules/_ctypes/_ctypes.c - PyCSimpleType_methods - +Modules/_ctypes/_ctypes.c - Simple_methods - +Modules/_ctypes/_ctypes.c - c_char_p_method - +Modules/_ctypes/_ctypes.c - c_void_p_method - +Modules/_ctypes/_ctypes.c - c_wchar_p_method - +Modules/_ctypes/callproc.c - _ctypes_module_methods - +Modules/_ctypes/stgdict.c - PyCStgDict_methods - +Modules/_curses_panel.c - PyCursesPanel_Methods - +Modules/_curses_panel.c - PyCurses_methods - +Modules/_cursesmodule.c - PyCursesWindow_Methods - +Modules/_cursesmodule.c - PyCurses_methods - +Modules/_datetimemodule.c - date_methods - +Modules/_datetimemodule.c - datetime_methods - +Modules/_datetimemodule.c - delta_methods - +Modules/_datetimemodule.c - iso_calendar_date_methods - +Modules/_datetimemodule.c - module_methods - +Modules/_datetimemodule.c - time_methods - +Modules/_datetimemodule.c - timezone_methods - +Modules/_datetimemodule.c - tzinfo_methods - +Modules/_dbmmodule.c - dbm_methods - +Modules/_dbmmodule.c - dbmmodule_methods - +Modules/_decimal/_decimal.c - _decimal_methods - +Modules/_decimal/_decimal.c - context_methods - +Modules/_decimal/_decimal.c - ctxmanager_methods - +Modules/_decimal/_decimal.c - dec_methods - +Modules/_decimal/_decimal.c - signaldict_methods - +Modules/_elementtree.c - _functions - +Modules/_elementtree.c - element_methods - +Modules/_elementtree.c - treebuilder_methods - +Modules/_elementtree.c - xmlparser_methods - +Modules/_functoolsmodule.c - _functools_methods - +Modules/_functoolsmodule.c - lru_cache_methods - +Modules/_functoolsmodule.c - partial_methods - +Modules/_gdbmmodule.c - _gdbm_module_methods - +Modules/_gdbmmodule.c - gdbm_methods - +Modules/_hashopenssl.c - EVPXOF_methods - +Modules/_hashopenssl.c - EVP_functions - +Modules/_hashopenssl.c - EVP_methods - +Modules/_hashopenssl.c - HMAC_methods - +Modules/_heapqmodule.c - heapq_methods - +Modules/_io/_iomodule.c - module_methods - +Modules/_io/bufferedio.c - bufferediobase_methods - +Modules/_io/bufferedio.c - bufferedrandom_methods - +Modules/_io/bufferedio.c - bufferedreader_methods - +Modules/_io/bufferedio.c - bufferedrwpair_methods - +Modules/_io/bufferedio.c - bufferedwriter_methods - +Modules/_io/bytesio.c - bytesio_methods - +Modules/_io/fileio.c - fileio_methods - +Modules/_io/iobase.c - iobase_methods - +Modules/_io/iobase.c - rawiobase_methods - +Modules/_io/stringio.c - stringio_methods - +Modules/_io/textio.c - incrementalnewlinedecoder_methods - +Modules/_io/textio.c - textiobase_methods - +Modules/_io/textio.c - textiowrapper_methods - +Modules/_io/winconsoleio.c - winconsoleio_methods - +Modules/_json.c - speedups_methods - +Modules/_localemodule.c - PyLocale_Methods - +Modules/_lsprof.c - moduleMethods - +Modules/_lsprof.c - profiler_methods - +Modules/_lzmamodule.c - Compressor_methods - +Modules/_lzmamodule.c - Decompressor_methods - +Modules/_lzmamodule.c - lzma_methods - +Modules/_multiprocessing/multiprocessing.c - module_methods - +Modules/_multiprocessing/posixshmem.c - module_methods - +Modules/_multiprocessing/semaphore.c - semlock_methods - +Modules/_opcode.c - opcode_functions - +Modules/_operator.c - attrgetter_methods - +Modules/_operator.c - itemgetter_methods - +Modules/_operator.c - methodcaller_methods - +Modules/_operator.c - operator_methods - +Modules/_pickle.c - Pickler_methods - +Modules/_pickle.c - Unpickler_methods - +Modules/_pickle.c - pickle_methods - +Modules/_pickle.c - picklerproxy_methods - +Modules/_pickle.c - unpicklerproxy_methods - +Modules/_posixsubprocess.c - module_methods - +Modules/_queuemodule.c - simplequeue_methods - +Modules/_randommodule.c - random_methods - +Modules/_scproxy.c - mod_methods - +Modules/_sha3/sha3module.c - SHA3_methods - +Modules/_sha3/sha3module.c - SHAKE_methods - +Modules/_sqlite/connection.c - connection_methods - +Modules/_sqlite/cursor.c - cursor_methods - +Modules/_sqlite/module.c - module_methods - +Modules/_sqlite/row.c - row_methods - +Modules/_sre.c - _functions - +Modules/_sre.c - match_methods - +Modules/_sre.c - pattern_methods - +Modules/_sre.c - scanner_methods - +Modules/_ssl.c - PySSLMethods - +Modules/_ssl.c - PySSL_methods - +Modules/_ssl.c - context_methods - +Modules/_ssl.c - memory_bio_methods - +Modules/_ssl/cert.c - certificate_methods - +Modules/_stat.c - stat_methods - +Modules/_statisticsmodule.c - statistics_methods - +Modules/_struct.c - module_functions - +Modules/_struct.c - s_methods - +Modules/_struct.c - unpackiter_methods - +Modules/_threadmodule.c - lock_methods - +Modules/_threadmodule.c - rlock_methods - +Modules/_threadmodule.c - thread_methods - +Modules/_threadmodule.c local_new wr_callback_def - +Modules/_tkinter.c - Tkapp_methods - +Modules/_tkinter.c - Tktt_methods - +Modules/_tkinter.c - moduleMethods - +Modules/_tracemalloc.c - module_methods - +Modules/_typingmodule.c - typing_methods - +Modules/_uuidmodule.c - uuid_methods - +Modules/_weakref.c - weakref_functions - +Modules/_winapi.c - overlapped_methods - +Modules/_winapi.c - winapi_functions - +Modules/_xxsubinterpretersmodule.c - module_functions - +Modules/_zoneinfo.c - module_methods - +Modules/_zoneinfo.c - zoneinfo_methods - +Modules/arraymodule.c - a_methods - +Modules/arraymodule.c - array_methods - +Modules/arraymodule.c - arrayiter_methods - +Modules/atexitmodule.c - atexit_methods - +Modules/audioop.c - audioop_methods - +Modules/binascii.c - binascii_module_methods - +Modules/cjkcodecs/cjkcodecs.h - __methods - +Modules/cjkcodecs/cjkcodecs.h - _cjk_methods - +Modules/cjkcodecs/multibytecodec.c - __methods - +Modules/cjkcodecs/multibytecodec.c - _multibytecodec_methods - +Modules/cjkcodecs/multibytecodec.c - mbidecoder_methods - +Modules/cjkcodecs/multibytecodec.c - mbiencoder_methods - +Modules/cjkcodecs/multibytecodec.c - mbstreamreader_methods - +Modules/cjkcodecs/multibytecodec.c - mbstreamwriter_methods - +Modules/cjkcodecs/multibytecodec.c - multibytecodec_methods - +Modules/cmathmodule.c - cmath_methods - +Modules/errnomodule.c - errno_methods - +Modules/faulthandler.c - module_methods - +Modules/fcntlmodule.c - fcntl_methods - +Modules/gcmodule.c - GcMethods - +Modules/getpath.c - getpath_methods - +Modules/getpath.c - getpath_nowarn_method - +Modules/getpath.c - getpath_warn_method - +Modules/grpmodule.c - grp_methods - +Modules/itertoolsmodule.c - _grouper_methods - +Modules/itertoolsmodule.c - accumulate_methods - +Modules/itertoolsmodule.c - chain_methods - +Modules/itertoolsmodule.c - combinations_methods - +Modules/itertoolsmodule.c - compress_methods - +Modules/itertoolsmodule.c - count_methods - +Modules/itertoolsmodule.c - cwr_methods - +Modules/itertoolsmodule.c - cycle_methods - +Modules/itertoolsmodule.c - dropwhile_methods - +Modules/itertoolsmodule.c - filterfalse_methods - +Modules/itertoolsmodule.c - groupby_methods - +Modules/itertoolsmodule.c - islice_methods - +Modules/itertoolsmodule.c - module_methods - +Modules/itertoolsmodule.c - permuations_methods - +Modules/itertoolsmodule.c - product_methods - +Modules/itertoolsmodule.c - repeat_methods - +Modules/itertoolsmodule.c - starmap_methods - +Modules/itertoolsmodule.c - takewhile_reduce_methods - +Modules/itertoolsmodule.c - tee_methods - +Modules/itertoolsmodule.c - teedataobject_methods - +Modules/itertoolsmodule.c - zip_longest_methods - +Modules/mathmodule.c - math_methods - +Modules/md5module.c - MD5_functions - +Modules/md5module.c - MD5_methods - +Modules/mmapmodule.c - mmap_object_methods - +Modules/nismodule.c - nis_methods - +Modules/ossaudiodev.c - oss_methods - +Modules/ossaudiodev.c - oss_mixer_methods - +Modules/ossaudiodev.c - ossaudiodev_methods - +Modules/overlapped.c - Overlapped_methods - +Modules/overlapped.c - overlapped_functions - +Modules/posixmodule.c - DirEntry_methods - +Modules/posixmodule.c - ScandirIterator_methods - +Modules/posixmodule.c - posix_methods - +Modules/pwdmodule.c - pwd_methods - +Modules/pyexpat.c - pyexpat_methods - +Modules/pyexpat.c - xmlparse_methods - +Modules/readline.c - readline_methods - +Modules/resource.c - resource_methods - +Modules/selectmodule.c - devpoll_methods - +Modules/selectmodule.c - kqueue_queue_methods - +Modules/selectmodule.c - poll_methods - +Modules/selectmodule.c - pyepoll_methods - +Modules/selectmodule.c - select_methods - +Modules/sha1module.c - SHA1_functions - +Modules/sha1module.c - SHA1_methods - +Modules/sha256module.c - SHA_functions - +Modules/sha256module.c - SHA_methods - +Modules/sha512module.c - SHA_functions - +Modules/sha512module.c - SHA_methods - +Modules/signalmodule.c - signal_methods - +Modules/socketmodule.c - sock_methods - +Modules/socketmodule.c - socket_methods - +Modules/spwdmodule.c - spwd_methods - +Modules/symtablemodule.c - symtable_methods - +Modules/syslogmodule.c - syslog_methods - +Modules/termios.c - termios_methods - +Modules/timemodule.c - time_methods - +Modules/unicodedata.c - unicodedata_functions - +Modules/xxlimited.c - Xxo_methods - +Modules/xxlimited.c - xx_methods - +Modules/xxlimited_35.c - Xxo_methods - +Modules/xxlimited_35.c - xx_methods - +Modules/xxmodule.c - Xxo_methods - +Modules/xxmodule.c - xx_methods - +Modules/xxsubtype.c - spamdict_methods - +Modules/xxsubtype.c - spamlist_methods - +Modules/xxsubtype.c - xxsubtype_functions - +Modules/zlibmodule.c - Decomp_methods - +Modules/zlibmodule.c - comp_methods - +Modules/zlibmodule.c - zlib_methods - +Objects/bytearrayobject.c - bytearray_methods - +Objects/bytearrayobject.c - bytearrayiter_methods - +Objects/bytesobject.c - bytes_methods - +Objects/bytesobject.c - striter_methods - +Objects/classobject.c - method_methods - +Objects/codeobject.c - code_methods - +Objects/complexobject.c - complex_methods - +Objects/descrobject.c - descr_methods - +Objects/descrobject.c - mappingproxy_methods - +Objects/descrobject.c - property_methods - +Objects/descrobject.c - wrapper_methods - +Objects/dictobject.c - dictitems_methods - +Objects/dictobject.c - dictiter_methods - +Objects/dictobject.c - dictkeys_methods - +Objects/dictobject.c - dictvalues_methods - +Objects/dictobject.c - mapp_methods - +Objects/enumobject.c - enum_methods - +Objects/enumobject.c - reversediter_methods - +Objects/exceptions.c - AttributeError_methods - +Objects/exceptions.c - BaseExceptionGroup_methods - +Objects/exceptions.c - BaseException_methods - +Objects/exceptions.c - ImportError_methods - +Objects/exceptions.c - NameError_methods - +Objects/exceptions.c - OSError_methods - +Objects/fileobject.c - stdprinter_methods - +Objects/floatobject.c - float_methods - +Objects/frameobject.c - frame_methods - +Objects/genericaliasobject.c - ga_methods - +Objects/genobject.c - async_gen_asend_methods - +Objects/genobject.c - async_gen_athrow_methods - +Objects/genobject.c - async_gen_methods - +Objects/genobject.c - coro_methods - +Objects/genobject.c - coro_wrapper_methods - +Objects/genobject.c - gen_methods - +Objects/iterobject.c - anextawaitable_methods - +Objects/iterobject.c - calliter_methods - +Objects/iterobject.c - seqiter_methods - +Objects/listobject.c - list_methods - +Objects/listobject.c - listiter_methods - +Objects/listobject.c - listreviter_methods - +Objects/longobject.c - long_methods - +Objects/memoryobject.c - memory_methods - +Objects/methodobject.c - meth_methods - +Objects/moduleobject.c - module_methods - +Objects/namespaceobject.c - namespace_methods - +Objects/object.c - notimplemented_methods - +Objects/odictobject.c - odict_methods - +Objects/odictobject.c - odictitems_methods - +Objects/odictobject.c - odictiter_methods - +Objects/odictobject.c - odictkeys_methods - +Objects/odictobject.c - odictvalues_methods - +Objects/picklebufobject.c - picklebuf_methods - +Objects/rangeobject.c - longrangeiter_methods - +Objects/rangeobject.c - range_methods - +Objects/rangeobject.c - rangeiter_methods - +Objects/setobject.c - frozenset_methods - +Objects/setobject.c - set_methods - +Objects/setobject.c - setiter_methods - +Objects/sliceobject.c - ellipsis_methods - +Objects/sliceobject.c - slice_methods - +Objects/stringlib/unicode_format.h - fieldnameiter_methods - +Objects/stringlib/unicode_format.h - formatteriter_methods - +Objects/structseq.c - structseq_methods - +Objects/tupleobject.c - tuple_methods - +Objects/tupleobject.c - tupleiter_methods - +Objects/typeobject.c - object_methods - +Objects/typeobject.c - tp_new_methoddef - +Objects/typeobject.c - type_methods - +Objects/unicodeobject.c - _string_methods - +Objects/unicodeobject.c - encoding_map_methods - +Objects/unicodeobject.c - unicode_methods - +Objects/unicodeobject.c - unicodeiter_methods - +Objects/unionobject.c - union_methods - +Objects/weakrefobject.c - proxy_methods - +Objects/weakrefobject.c - weakref_methods - +Python/Python-ast.c - ast_type_methods - +Python/Python-tokenize.c - tokenize_methods - +Python/_warnings.c - warnings_functions - +Python/bltinmodule.c - builtin_methods - +Python/bltinmodule.c - filter_methods - +Python/bltinmodule.c - map_methods - +Python/bltinmodule.c - zip_methods - +Python/context.c - PyContextTokenType_methods - +Python/context.c - PyContextVar_methods - +Python/context.c - PyContext_methods - +Python/hamt.c - PyHamt_methods - +Python/import.c - imp_slots - +Python/import.c - imp_methods - +Python/marshal.c - marshal_methods - +Python/sysmodule.c - sys_methods - +Python/traceback.c - tb_methods - + +#----------------------- +# PyMemberDef[], for static types and strucseq + +Modules/_bz2module.c - BZ2Decompressor_members - +Modules/_collectionsmodule.c - defdict_members - +Modules/_collectionsmodule.c - tuplegetter_members - +Modules/_csv.c - Dialect_memberlist - +Modules/_csv.c - Reader_memberlist - +Modules/_csv.c - Writer_memberlist - +Modules/_ctypes/_ctypes.c - PyCData_members - +Modules/_ctypes/callproc.c - PyCArgType_members - +Modules/_datetimemodule.c - delta_members - +Modules/_elementtree.c - xmlparser_members - +Modules/_functoolsmodule.c - keyobject_members - +Modules/_functoolsmodule.c - lru_cache_memberlist - +Modules/_functoolsmodule.c - partial_memberlist - +Modules/_io/bufferedio.c - bufferedrandom_members - +Modules/_io/bufferedio.c - bufferedreader_members - +Modules/_io/bufferedio.c - bufferedwriter_members - +Modules/_io/fileio.c - fileio_members - +Modules/_io/textio.c - textiowrapper_members - +Modules/_io/winconsoleio.c - winconsoleio_members - +Modules/_json.c - encoder_members - +Modules/_json.c - scanner_members - +Modules/_lzmamodule.c - Decompressor_members - +Modules/_multiprocessing/semaphore.c - semlock_members - +Modules/_pickle.c - Pickler_members - +Modules/_queuemodule.c - simplequeue_members - +Modules/_sqlite/connection.c - connection_members - +Modules/_sqlite/cursor.c - cursor_members - +Modules/_sqlite/statement.c - stmt_members - +Modules/_sre.c - match_members - +Modules/_sre.c - pattern_members - +Modules/_sre.c - scanner_members - +Modules/_struct.c - s_members - +Modules/_threadmodule.c - local_dummy_type_members - +Modules/_threadmodule.c - local_type_members - +Modules/_threadmodule.c - lock_type_members - +Modules/_threadmodule.c - rlock_type_members - +Modules/_winapi.c - overlapped_members - +Modules/_zoneinfo.c - zoneinfo_members - +Modules/arraymodule.c - array_members - +Modules/cjkcodecs/multibytecodec.c - mbstreamreader_members - +Modules/cjkcodecs/multibytecodec.c - mbstreamwriter_members - +Modules/mmapmodule.c - mmap_object_members - +Modules/ossaudiodev.c - oss_members - +Modules/overlapped.c - Overlapped_members - +Modules/posixmodule.c - DirEntry_members - +Modules/pyexpat.c - xmlparse_members - +Modules/selectmodule.c - kqueue_event_members - +Modules/sha256module.c - SHA_members - +Modules/sha512module.c - SHA_members - +Modules/socketmodule.c - sock_memberlist - +Modules/unicodedata.c - DB_members - +Modules/xxsubtype.c - spamdict_members - +Modules/zlibmodule.c - Decomp_members - +Objects/classobject.c - instancemethod_memberlist - +Objects/classobject.c - method_memberlist - +Objects/codeobject.c - code_memberlist - +Objects/complexobject.c - complex_members - +Objects/descrobject.c - descr_members - +Objects/descrobject.c - property_members - +Objects/descrobject.c - wrapper_members - +Objects/exceptions.c - AttributeError_members - +Objects/exceptions.c - BaseExceptionGroup_members - +Objects/exceptions.c - BaseException_members - +Objects/exceptions.c - ImportError_members - +Objects/exceptions.c - NameError_members - +Objects/exceptions.c - OSError_members - +Objects/exceptions.c - StopIteration_members - +Objects/exceptions.c - SyntaxError_members - +Objects/exceptions.c - SystemExit_members - +Objects/exceptions.c - UnicodeError_members - +Objects/frameobject.c - frame_memberlist - +Objects/funcobject.c - cm_memberlist - +Objects/funcobject.c - func_memberlist - +Objects/funcobject.c - sm_memberlist - +Objects/genericaliasobject.c - ga_members - +Objects/genobject.c - async_gen_memberlist - +Objects/genobject.c - coro_memberlist - +Objects/genobject.c - gen_memberlist - +Objects/methodobject.c - meth_members - +Objects/moduleobject.c - module_members - +Objects/namespaceobject.c - namespace_members - +Objects/rangeobject.c - range_members - +Objects/sliceobject.c - slice_members - +Objects/typeobject.c - super_members - +Objects/typeobject.c - type_members - +Objects/unionobject.c - union_members - +Objects/weakrefobject.c - weakref_members - +Python/Python-ast.c - ast_type_members - +Python/context.c - PyContextVar_members - +Python/symtable.c - ste_memberlist - +Python/traceback.c - tb_memberlist - + +#----------------------- +# for static types + +# PyNumberMethods +Modules/_collectionsmodule.c - deque_as_number - +Modules/_collectionsmodule.c - defdict_as_number - +Modules/_ctypes/_ctypes.c - PyCFuncPtr_as_number - +Modules/_ctypes/_ctypes.c - Simple_as_number - +Modules/_ctypes/_ctypes.c - Pointer_as_number - +Modules/_datetimemodule.c - delta_as_number - +Modules/_datetimemodule.c - date_as_number - +Modules/_datetimemodule.c - datetime_as_number - +Modules/_decimal/_decimal.c - dec_number_methods - +Modules/_xxsubinterpretersmodule.c - channelid_as_number - +Objects/boolobject.c - bool_as_number - +Objects/bytearrayobject.c - bytearray_as_number - +Objects/bytesobject.c - bytes_as_number - +Objects/complexobject.c - complex_as_number - +Objects/descrobject.c - mappingproxy_as_number - +Objects/dictobject.c - dict_as_number - +Objects/dictobject.c - dictviews_as_number - +Objects/floatobject.c - float_as_number - +Objects/genericaliasobject.c - ga_as_number - +Objects/interpreteridobject.c - interpid_as_number - +Objects/longobject.c - long_as_number - +Objects/object.c - none_as_number - +Objects/object.c - notimplemented_as_number - +Objects/odictobject.c - odict_as_number - +Objects/rangeobject.c - range_as_number - +Objects/setobject.c - set_as_number - +Objects/setobject.c - frozenset_as_number - +Objects/typeobject.c - type_as_number - +Objects/unicodeobject.c - unicode_as_number - +Objects/unionobject.c - union_as_number - +Objects/weakrefobject.c - proxy_as_number - + +# PySequenceMethods +Modules/arraymodule.c - array_as_sequence - +Modules/_collectionsmodule.c - deque_as_sequence - +Modules/_ctypes/_ctypes.c - CDataType_as_sequence - +Modules/_ctypes/_ctypes.c - Array_as_sequence - +Modules/_ctypes/_ctypes.c - Pointer_as_sequence - +Modules/_elementtree.c - element_as_sequence - +Modules/mmapmodule.c - mmap_as_sequence - +Objects/bytearrayobject.c - bytearray_as_sequence - +Objects/bytesobject.c - bytes_as_sequence - +Objects/descrobject.c - mappingproxy_as_sequence - +Objects/dictobject.c - dict_as_sequence - +Objects/dictobject.c - dictkeys_as_sequence - +Objects/dictobject.c - dictitems_as_sequence - +Objects/dictobject.c - dictvalues_as_sequence - +Objects/listobject.c - list_as_sequence - +Objects/memoryobject.c - memory_as_sequence - +Objects/rangeobject.c - range_as_sequence - +Objects/setobject.c - set_as_sequence - +Objects/tupleobject.c - tuple_as_sequence - +Objects/unicodeobject.c - unicode_as_sequence - +Objects/weakrefobject.c - proxy_as_sequence - +Python/context.c - PyContext_as_sequence - +Python/hamt.c - PyHamt_as_sequence - + +# PyMappingMethods +Modules/arraymodule.c - array_as_mapping - +Modules/_ctypes/_ctypes.c - Array_as_mapping - +Modules/_ctypes/_ctypes.c - Pointer_as_mapping - +Modules/_decimal/_decimal.c - signaldict_as_mapping - +Modules/_elementtree.c - element_as_mapping - +Modules/mmapmodule.c - mmap_as_mapping - +Modules/_sre.c - match_as_mapping - +Objects/bytearrayobject.c - bytearray_as_mapping - +Objects/bytesobject.c - bytes_as_mapping - +Objects/descrobject.c - mappingproxy_as_mapping - +Objects/dictobject.c - dict_as_mapping - +Objects/genericaliasobject.c - ga_as_mapping - +Objects/listobject.c - list_as_mapping - +Objects/memoryobject.c - memory_as_mapping - +Objects/odictobject.c - odict_as_mapping - +Objects/rangeobject.c - range_as_mapping - +Objects/tupleobject.c - tuple_as_mapping - +Objects/unicodeobject.c - unicode_as_mapping - +Objects/unionobject.c - union_as_mapping - +Objects/weakrefobject.c - proxy_as_mapping - +Python/context.c - PyContext_as_mapping - +Python/hamt.c - PyHamtIterator_as_mapping - +Python/hamt.c - PyHamt_as_mapping - + +# PyAsyncMethods +Modules/_asynciomodule.c - FutureIterType_as_async - +Modules/_asynciomodule.c - FutureType_as_async - +Objects/genobject.c - async_gen_as_async - +Objects/genobject.c - async_gen_asend_as_async - +Objects/genobject.c - async_gen_athrow_as_async - +Objects/genobject.c - coro_as_async - +Objects/genobject.c - gen_as_async - +Objects/iterobject.c - anextawaitable_as_async - + +# PyBufferProcs +Modules/arraymodule.c - array_as_buffer - +Modules/_ctypes/_ctypes.c - PyCData_as_buffer - +Modules/_io/bytesio.c - bytesiobuf_as_buffer - +Modules/mmapmodule.c - mmap_as_buffer - +Objects/bytearrayobject.c - bytearray_as_buffer - +Objects/bytesobject.c - bytes_as_buffer - +Objects/memoryobject.c - memory_as_buffer - +Objects/picklebufobject.c - picklebuf_as_buffer - + +# PyGetSetDef +Modules/_asynciomodule.c - FutureType_getsetlist - +Modules/_asynciomodule.c - TaskStepMethWrapper_getsetlist - +Modules/_asynciomodule.c - TaskType_getsetlist - +Modules/_blake2/blake2b_impl.c - py_blake2b_getsetters - +Modules/_blake2/blake2s_impl.c - py_blake2s_getsetters - +Modules/_collectionsmodule.c - deque_getset - +Modules/_csv.c - Dialect_getsetlist - +Modules/_ctypes/_ctypes.c - CharArray_getsets - +Modules/_ctypes/_ctypes.c - Pointer_getsets - +Modules/_ctypes/_ctypes.c - PyCFuncPtr_getsets - +Modules/_ctypes/_ctypes.c - Simple_getsets - +Modules/_ctypes/_ctypes.c - WCharArray_getsets - +Modules/_ctypes/cfield.c - PyCField_getset - +Modules/_cursesmodule.c - PyCursesWindow_getsets - +Modules/_datetimemodule.c - date_getset - +Modules/_datetimemodule.c - datetime_getset - +Modules/_datetimemodule.c - iso_calendar_date_getset - +Modules/_datetimemodule.c - time_getset - +Modules/_decimal/_decimal.c - context_getsets - +Modules/_decimal/_decimal.c - dec_getsets - +Modules/_elementtree.c - element_getsetlist - +Modules/_elementtree.c - xmlparser_getsetlist - +Modules/_functoolsmodule.c - lru_cache_getsetlist - +Modules/_functoolsmodule.c - partial_getsetlist - +Modules/_hashopenssl.c - EVPXOF_getseters - +Modules/_hashopenssl.c - EVP_getseters - +Modules/_hashopenssl.c - HMAC_getset - +Modules/_io/bufferedio.c - bufferedrandom_getset - +Modules/_io/bufferedio.c - bufferedreader_getset - +Modules/_io/bufferedio.c - bufferedrwpair_getset - +Modules/_io/bufferedio.c - bufferedwriter_getset - +Modules/_io/bytesio.c - bytesio_getsetlist - +Modules/_io/fileio.c - fileio_getsetlist - +Modules/_io/iobase.c - iobase_getset - +Modules/_io/stringio.c - stringio_getset - +Modules/_io/textio.c - incrementalnewlinedecoder_getset - +Modules/_io/textio.c - textiobase_getset - +Modules/_io/textio.c - textiowrapper_getset - +Modules/_io/winconsoleio.c - winconsoleio_getsetlist - +Modules/_pickle.c - Pickler_getsets - +Modules/_pickle.c - Unpickler_getsets - +Modules/_sha3/sha3module.c - SHA3_getseters - +Modules/_sqlite/connection.c - connection_getset - +Modules/_sre.c - match_getset - +Modules/_sre.c - pattern_getset - +Modules/_ssl.c - PySSLSession_getsetlist - +Modules/_ssl.c - context_getsetlist - +Modules/_ssl.c - memory_bio_getsetlist - +Modules/_ssl.c - ssl_getsetlist - +Modules/_struct.c - s_getsetlist - +Modules/_tkinter.c - PyTclObject_getsetlist - +Modules/_xxsubinterpretersmodule.c - channelid_getsets - +Modules/arraymodule.c - array_getsets - +Modules/cjkcodecs/multibytecodec.c - codecctx_getsets - +Modules/md5module.c - MD5_getseters - +Modules/mmapmodule.c - mmap_object_getset - +Modules/ossaudiodev.c - oss_getsetlist - +Modules/overlapped.c - Overlapped_getsets - +Modules/pyexpat.c - xmlparse_getsetlist - +Modules/selectmodule.c - devpoll_getsetlist - +Modules/selectmodule.c - kqueue_queue_getsetlist - +Modules/selectmodule.c - pyepoll_getsetlist - +Modules/sha1module.c - SHA1_getseters - +Modules/sha256module.c - SHA_getseters - +Modules/sha512module.c - SHA_getseters - +Modules/socketmodule.c - sock_getsetlist - +Modules/xxlimited.c - Xxo_getsetlist - +Modules/xxsubtype.c - spamlist_getsets - +Objects/cellobject.c - cell_getsetlist - +Objects/classobject.c - instancemethod_getset - +Objects/classobject.c - method_getset - +Objects/codeobject.c - code_getsetlist - +Objects/descrobject.c - getset_getset - +Objects/descrobject.c - member_getset - +Objects/descrobject.c - method_getset - +Objects/descrobject.c - property_getsetlist - +Objects/descrobject.c - wrapper_getsets - +Objects/descrobject.c - wrapperdescr_getset - +Objects/dictobject.c - dictview_getset - +Objects/exceptions.c - BaseException_getset - +Objects/exceptions.c - OSError_getset - +Objects/fileobject.c - stdprinter_getsetlist - +Objects/floatobject.c - float_getset - +Objects/frameobject.c - frame_getsetlist - +Objects/funcobject.c - cm_getsetlist - +Objects/funcobject.c - func_getsetlist - +Objects/funcobject.c - sm_getsetlist - +Objects/genericaliasobject.c - ga_properties - +Objects/genobject.c - async_gen_getsetlist - +Objects/genobject.c - coro_getsetlist - +Objects/genobject.c - gen_getsetlist - +Objects/longobject.c - long_getset - +Objects/memoryobject.c - memory_getsetlist - +Objects/methodobject.c - meth_getsets - +Objects/moduleobject.c - module_getsets - +Objects/odictobject.c - odict_getset - +Objects/typeobject.c - object_getsets - +Objects/typeobject.c - subtype_getsets_dict_only - +Objects/typeobject.c - subtype_getsets_full - +Objects/typeobject.c - subtype_getsets_weakref_only - +Objects/typeobject.c - type_getsets - +Objects/unionobject.c - union_properties - +Python/Python-ast.c - ast_type_getsets - +Python/context.c - PyContextTokenType_getsetlist - +Python/traceback.c - tb_getsetters - + +#----------------------- +# for heap types + +# PyType_Slot +Modules/_abc.c - _abc_data_type_spec_slots - +Modules/_blake2/blake2b_impl.c - blake2b_type_slots - +Modules/_blake2/blake2s_impl.c - blake2s_type_slots - +Modules/_bz2module.c - bz2_compressor_type_slots - +Modules/_bz2module.c - bz2_decompressor_type_slots - +Modules/_csv.c - Dialect_Type_slots - +Modules/_csv.c - Reader_Type_slots - +Modules/_csv.c - Writer_Type_slots - +Modules/_csv.c - error_slots - +Modules/_curses_panel.c - PyCursesPanel_Type_slots - +Modules/_dbmmodule.c - dbmtype_spec_slots - +Modules/_functoolsmodule.c - keyobject_type_slots - +Modules/_functoolsmodule.c - lru_cache_type_slots - +Modules/_functoolsmodule.c - lru_list_elem_type_slots - +Modules/_functoolsmodule.c - partial_type_slots - +Modules/_gdbmmodule.c - gdbmtype_spec_slots - +Modules/_hashopenssl.c - EVPXOFtype_slots - +Modules/_hashopenssl.c - EVPtype_slots - +Modules/_hashopenssl.c - HMACtype_slots - +Modules/_json.c - PyEncoderType_slots - +Modules/_json.c - PyScannerType_slots - +Modules/_lsprof.c - _lsprof_profiler_type_spec_slots - +Modules/_lzmamodule.c - lzma_compressor_type_slots - +Modules/_lzmamodule.c - lzma_decompressor_type_slots - +Modules/_operator.c - attrgetter_type_slots - +Modules/_operator.c - itemgetter_type_slots - +Modules/_operator.c - methodcaller_type_slots - +Modules/_queuemodule.c - simplequeue_slots - +Modules/_randommodule.c - Random_Type_slots - +Modules/_sha3/sha3module.c - SHAKE128slots - +Modules/_sha3/sha3module.c - SHAKE256slots - +Modules/_sha3/sha3module.c - sha3_224_slots - +Modules/_sha3/sha3module.c - sha3_256_slots - +Modules/_sha3/sha3module.c - sha3_384_slots - +Modules/_sha3/sha3module.c - sha3_512_slots - +Modules/_sha3/sha3module.c - type_slots_obj - +Modules/_sqlite/connection.c - connection_slots - +Modules/_sqlite/cursor.c - cursor_slots - +Modules/_sqlite/prepare_protocol.c - type_slots - +Modules/_sqlite/row.c - row_slots - +Modules/_sqlite/statement.c - stmt_slots - +Modules/_sre.c - match_slots - +Modules/_sre.c - pattern_slots - +Modules/_sre.c - scanner_slots - +Modules/_ssl.c - PySSLContext_slots - +Modules/_ssl.c - PySSLMemoryBIO_slots - +Modules/_ssl.c - PySSLSession_slots - +Modules/_ssl.c - PySSLSocket_slots - +Modules/_ssl.c - sslerror_type_slots - +Modules/_ssl/cert.c - PySSLCertificate_slots - +Modules/_struct.c - PyStructType_slots - +Modules/_struct.c - unpackiter_type_slots - +Modules/_testcapimodule.c - HeapTypeNameType_slots - +Modules/_testcapimodule.c - NullTpDocType_slots - +Modules/_threadmodule.c - local_dummy_type_slots - +Modules/_threadmodule.c - local_type_slots - +Modules/_threadmodule.c - lock_type_slots - +Modules/_threadmodule.c - rlock_type_slots - +Modules/_tkinter.c - PyTclObject_Type_slots - +Modules/_tkinter.c - Tkapp_Type_slots - +Modules/_tkinter.c - Tktt_Type_slots - +Modules/_winapi.c - winapi_overlapped_type_slots - +Modules/arraymodule.c - array_slots - +Modules/arraymodule.c - arrayiter_slots - +Modules/cjkcodecs/multibytecodec.c - decoder_slots - +Modules/cjkcodecs/multibytecodec.c - encoder_slots - +Modules/cjkcodecs/multibytecodec.c - multibytecodec_slots - +Modules/cjkcodecs/multibytecodec.c - reader_slots - +Modules/cjkcodecs/multibytecodec.c - writer_slots - +Modules/md5module.c - md5_type_slots - +Modules/mmapmodule.c - mmap_object_slots - +Modules/overlapped.c - overlapped_type_slots - +Modules/posixmodule.c - DirEntryType_slots - +Modules/posixmodule.c - ScandirIteratorType_slots - +Modules/pyexpat.c - _xml_parse_type_spec_slots - +Modules/selectmodule.c - devpoll_Type_slots - +Modules/selectmodule.c - kqueue_event_Type_slots - +Modules/selectmodule.c - kqueue_queue_Type_slots - +Modules/selectmodule.c - poll_Type_slots - +Modules/selectmodule.c - pyEpoll_Type_slots - +Modules/sha1module.c - sha1_type_slots - +Modules/sha256module.c - sha256_types_slots - +Modules/sha512module.c - sha512_sha384_type_slots - +Modules/sha512module.c - sha512_sha512_type_slots - +Modules/unicodedata.c - ucd_type_slots - +Modules/xxlimited.c - Null_Type_slots - +Modules/xxlimited.c - Str_Type_slots - +Modules/xxlimited.c - Xxo_Type_slots - +Modules/xxlimited_35.c - Null_Type_slots - +Modules/xxlimited_35.c - Str_Type_slots - +Modules/xxlimited_35.c - Xxo_Type_slots - +Modules/zlibmodule.c - Comptype_slots - +Modules/zlibmodule.c - Decomptype_slots - +Python/Python-ast.c - AST_type_slots - +Python/Python-tokenize.c - tokenizeriter_slots - + +# PyType_Spec +Modules/_abc.c - _abc_data_type_spec - +Modules/_blake2/blake2b_impl.c - blake2b_type_spec - +Modules/_blake2/blake2s_impl.c - blake2s_type_spec - +Modules/_bz2module.c - bz2_compressor_type_spec - +Modules/_bz2module.c - bz2_decompressor_type_spec - +Modules/_csv.c - Dialect_Type_spec - +Modules/_csv.c - Reader_Type_spec - +Modules/_csv.c - Writer_Type_spec - +Modules/_csv.c - error_spec - +Modules/_curses_panel.c - PyCursesPanel_Type_spec - +Modules/_dbmmodule.c - dbmtype_spec - +Modules/_functoolsmodule.c - keyobject_type_spec - +Modules/_functoolsmodule.c - lru_cache_type_spec - +Modules/_functoolsmodule.c - lru_list_elem_type_spec - +Modules/_functoolsmodule.c - partial_type_spec - +Modules/_gdbmmodule.c - gdbmtype_spec - +Modules/_hashopenssl.c - EVPXOFtype_spec - +Modules/_hashopenssl.c - EVPtype_spec - +Modules/_hashopenssl.c - HMACtype_spec - +Modules/_json.c - PyEncoderType_spec - +Modules/_json.c - PyScannerType_spec - +Modules/_lsprof.c - _lsprof_profiler_type_spec - +Modules/_lzmamodule.c - lzma_compressor_type_spec - +Modules/_lzmamodule.c - lzma_decompressor_type_spec - +Modules/_operator.c - attrgetter_type_spec - +Modules/_operator.c - itemgetter_type_spec - +Modules/_operator.c - methodcaller_type_spec - +Modules/_queuemodule.c - simplequeue_spec - +Modules/_randommodule.c - Random_Type_spec - +Modules/_sha3/sha3module.c - SHAKE128_spec - +Modules/_sha3/sha3module.c - SHAKE256_spec - +Modules/_sha3/sha3module.c - sha3_224_spec - +Modules/_sha3/sha3module.c - sha3_256_spec - +Modules/_sha3/sha3module.c - sha3_384_spec - +Modules/_sha3/sha3module.c - sha3_512_spec - +Modules/_sha3/sha3module.c - type_spec_obj - +Modules/_sqlite/connection.c - connection_spec - +Modules/_sqlite/cursor.c - cursor_spec - +Modules/_sqlite/prepare_protocol.c - type_spec - +Modules/_sqlite/row.c - row_spec - +Modules/_sqlite/statement.c - stmt_spec - +Modules/_sre.c - match_spec - +Modules/_sre.c - pattern_spec - +Modules/_sre.c - scanner_spec - +Modules/_ssl.c - PySSLContext_spec - +Modules/_ssl.c - PySSLMemoryBIO_spec - +Modules/_ssl.c - PySSLSession_spec - +Modules/_ssl.c - PySSLSocket_spec - +Modules/_ssl.c - sslerror_type_spec - +Modules/_ssl/cert.c - PySSLCertificate_spec - +Modules/_struct.c - PyStructType_spec - +Modules/_struct.c - unpackiter_type_spec - +Modules/_testcapimodule.c - HeapTypeNameType_Spec - +Modules/_testcapimodule.c - NullTpDocType_spec - +Modules/_threadmodule.c - local_dummy_type_spec - +Modules/_threadmodule.c - local_type_spec - +Modules/_threadmodule.c - lock_type_spec - +Modules/_threadmodule.c - rlock_type_spec - +Modules/_tkinter.c - PyTclObject_Type_spec - +Modules/_tkinter.c - Tkapp_Type_spec - +Modules/_tkinter.c - Tktt_Type_spec - +Modules/_winapi.c - winapi_overlapped_type_spec - +Modules/_zoneinfo.c - DAYS_BEFORE_MONTH - +Modules/_zoneinfo.c - DAYS_IN_MONTH - +Modules/arraymodule.c - array_spec - +Modules/arraymodule.c - arrayiter_spec - +Modules/cjkcodecs/multibytecodec.c - decoder_spec - +Modules/cjkcodecs/multibytecodec.c - encoder_spec - +Modules/cjkcodecs/multibytecodec.c - multibytecodec_spec - +Modules/cjkcodecs/multibytecodec.c - reader_spec - +Modules/cjkcodecs/multibytecodec.c - writer_spec - +Modules/md5module.c - md5_type_spec - +Modules/mmapmodule.c - mmap_object_spec - +Modules/overlapped.c - overlapped_type_spec - +Modules/posixmodule.c - DirEntryType_spec - +Modules/posixmodule.c - ScandirIteratorType_spec - +Modules/pyexpat.c - _xml_parse_type_spec - +Modules/selectmodule.c - devpoll_Type_spec - +Modules/selectmodule.c - kqueue_event_Type_spec - +Modules/selectmodule.c - kqueue_queue_Type_spec - +Modules/selectmodule.c - poll_Type_spec - +Modules/selectmodule.c - pyEpoll_Type_spec - +Modules/sha1module.c - sha1_type_spec - +Modules/sha256module.c - sha224_type_spec - +Modules/sha256module.c - sha256_type_spec - +Modules/sha512module.c - sha512_sha384_type_spec - +Modules/sha512module.c - sha512_sha512_type_spec - +Modules/unicodedata.c - ucd_type_spec - +Modules/xxlimited.c - Null_Type_spec - +Modules/xxlimited.c - Str_Type_spec - +Modules/xxlimited.c - Xxo_Type_spec - +Modules/xxlimited_35.c - Null_Type_spec - +Modules/xxlimited_35.c - Str_Type_spec - +Modules/xxlimited_35.c - Xxo_Type_spec - +Modules/zlibmodule.c - Comptype_spec - +Modules/zlibmodule.c - Decomptype_spec - +Python/Python-ast.c - AST_type_spec - +Python/Python-tokenize.c - tokenizeriter_spec - + +#----------------------- +# for structseq + +# PyStructSequence_Field[] +Modules/_cursesmodule.c - ncurses_version_fields - +Modules/grpmodule.c - struct_group_type_fields - +Modules/_lsprof.c - profiler_entry_fields - +Modules/_lsprof.c - profiler_subentry_fields - +Modules/posixmodule.c - stat_result_fields - +Modules/posixmodule.c - statvfs_result_fields - +Modules/posixmodule.c - waitid_result_fields - +Modules/posixmodule.c - uname_result_fields - +Modules/posixmodule.c - sched_param_fields - +Modules/posixmodule.c - times_result_fields - +Modules/posixmodule.c - TerminalSize_fields - +Modules/pwdmodule.c - struct_pwd_type_fields - +Modules/resource.c - struct_rusage_fields - +Modules/signalmodule.c - struct_siginfo_fields - +Modules/spwdmodule.c - struct_spwd_type_fields - +Modules/_threadmodule.c - ExceptHookArgs_fields - +Modules/timemodule.c - struct_time_type_fields - +Objects/floatobject.c - floatinfo_fields - +Objects/longobject.c - int_info_fields - +Python/errors.c - UnraisableHookArgs_fields - +Python/sysmodule.c - asyncgen_hooks_fields - +Python/sysmodule.c - hash_info_fields - +Python/sysmodule.c - windows_version_fields - +Python/sysmodule.c - flags_fields - +Python/sysmodule.c - version_info_fields - +Python/thread.c - threadinfo_fields - + +# PyStructSequence_Desc +Modules/_cursesmodule.c - ncurses_version_desc - +Modules/grpmodule.c - struct_group_type_desc - +Modules/_lsprof.c - profiler_entry_desc - +Modules/_lsprof.c - profiler_subentry_desc - +Modules/posixmodule.c - stat_result_desc - +Modules/posixmodule.c - statvfs_result_desc - +Modules/posixmodule.c - waitid_result_desc - +Modules/posixmodule.c - uname_result_desc - +Modules/posixmodule.c - sched_param_desc - +Modules/posixmodule.c - times_result_desc - +Modules/posixmodule.c - TerminalSize_desc - +Modules/pwdmodule.c - struct_pwd_type_desc - +Modules/resource.c - struct_rusage_desc - +Modules/signalmodule.c - struct_siginfo_desc - +Modules/spwdmodule.c - struct_spwd_type_desc - +Modules/_threadmodule.c - ExceptHookArgs_desc - +Modules/timemodule.c - struct_time_type_desc - +Objects/floatobject.c - floatinfo_desc - +Objects/longobject.c - int_info_desc - +Python/errors.c - UnraisableHookArgs_desc - +Python/sysmodule.c - asyncgen_hooks_desc - +Python/sysmodule.c - hash_info_desc - +Python/sysmodule.c - windows_version_desc - +Python/sysmodule.c - flags_desc - +Python/sysmodule.c - version_info_desc - +Python/thread.c - threadinfo_desc - #----------------------- # other vars that are actually constant -Include/internal/pycore_blocks_output_buffer.h - BUFFER_BLOCK_SIZE - Modules/_csv.c - quote_styles - Modules/_ctypes/cfield.c - ffi_type_double - Modules/_ctypes/cfield.c - ffi_type_float - @@ -360,7 +1423,6 @@ Modules/_ctypes/cfield.c - ffi_type_void - Modules/_datetimemodule.c - epoch - Modules/_datetimemodule.c - max_fold_seconds - Modules/_datetimemodule.c datetime_isoformat specs - -Modules/_datetimemodule.c parse_hh_mm_ss_ff correction - Modules/_datetimemodule.c time_isoformat specs - Modules/_decimal/_decimal.c - cond_map - Modules/_decimal/_decimal.c - dec_signal_string - @@ -374,54 +1436,15 @@ Modules/_elementtree.c - ExpatMemoryHandler - Modules/_io/_iomodule.c - static_types - Modules/_io/textio.c - encodefuncs - Modules/_localemodule.c - langinfo_constants - -Modules/_pickle.c - READ_WHOLE_LINE - Modules/_sqlite/module.c - error_codes - -Modules/_sre/sre.c pattern_repr flag_names - -# XXX I'm pretty sure this is actually constant: -Modules/_sre/sre_targets.h - sre_targets - Modules/_sre.c pattern_repr flag_names - Modules/_struct.c - bigendian_table - Modules/_struct.c - lilendian_table - Modules/_tkinter.c - state_key - Modules/_xxsubinterpretersmodule.c - _channelid_end_recv - Modules/_xxsubinterpretersmodule.c - _channelid_end_send - -Modules/_zoneinfo.c - DAYS_BEFORE_MONTH - -Modules/_zoneinfo.c - DAYS_IN_MONTH - Modules/arraymodule.c - descriptors - Modules/arraymodule.c - emptybuf - -Modules/cjkcodecs/_codecs_cn.c - _mapping_list - -Modules/cjkcodecs/_codecs_cn.c - mapping_list - -Modules/cjkcodecs/_codecs_cn.c - _codec_list - -Modules/cjkcodecs/_codecs_cn.c - codec_list - -Modules/cjkcodecs/_codecs_hk.c - big5hkscs_pairenc_table - -Modules/cjkcodecs/_codecs_hk.c - _mapping_list - -Modules/cjkcodecs/_codecs_hk.c - mapping_list - -Modules/cjkcodecs/_codecs_hk.c - _codec_list - -Modules/cjkcodecs/_codecs_hk.c - codec_list - -Modules/cjkcodecs/_codecs_iso2022.c - iso2022_kr_config - -Modules/cjkcodecs/_codecs_iso2022.c - iso2022_jp_config - -Modules/cjkcodecs/_codecs_iso2022.c - iso2022_jp_1_config - -Modules/cjkcodecs/_codecs_iso2022.c - iso2022_jp_2_config - -Modules/cjkcodecs/_codecs_iso2022.c - iso2022_jp_2004_config - -Modules/cjkcodecs/_codecs_iso2022.c - iso2022_jp_3_config - -Modules/cjkcodecs/_codecs_iso2022.c - iso2022_jp_ext_config - -Modules/cjkcodecs/_codecs_iso2022.c - _mapping_list - -Modules/cjkcodecs/_codecs_iso2022.c - mapping_list - -Modules/cjkcodecs/_codecs_iso2022.c - _codec_list - -Modules/cjkcodecs/_codecs_iso2022.c - codec_list - -Modules/cjkcodecs/_codecs_jp.c - _mapping_list - -Modules/cjkcodecs/_codecs_jp.c - mapping_list - -Modules/cjkcodecs/_codecs_jp.c - _codec_list - -Modules/cjkcodecs/_codecs_jp.c - codec_list - -Modules/cjkcodecs/_codecs_kr.c - u2johabjamo - -Modules/cjkcodecs/_codecs_kr.c - _mapping_list - -Modules/cjkcodecs/_codecs_kr.c - mapping_list - -Modules/cjkcodecs/_codecs_kr.c - _codec_list - -Modules/cjkcodecs/_codecs_kr.c - codec_list - -Modules/cjkcodecs/_codecs_tw.c - _mapping_list - -Modules/cjkcodecs/_codecs_tw.c - mapping_list - -Modules/cjkcodecs/_codecs_tw.c - _codec_list - -Modules/cjkcodecs/_codecs_tw.c - codec_list - Modules/cjkcodecs/cjkcodecs.h - __methods - Modules/cmathmodule.c - acos_special_values - Modules/cmathmodule.c - acosh_special_values - @@ -441,8 +1464,6 @@ Modules/nismodule.c - TIMEOUT - Modules/nismodule.c - aliases - Modules/ossaudiodev.c - control_labels - Modules/ossaudiodev.c - control_names - -Modules/posixmodule.c os_getxattr_impl buffer_sizes - -Modules/posixmodule.c os_listxattr_impl buffer_sizes - Modules/posixmodule.c - posix_constants_confstr - Modules/posixmodule.c - posix_constants_pathconf - Modules/posixmodule.c - posix_constants_sysconf - @@ -465,7 +1486,6 @@ Objects/obmalloc.c - _PyMem_Debug - Objects/obmalloc.c - _PyMem_Raw - Objects/obmalloc.c - _PyObject - Objects/obmalloc.c - usedpools - -Objects/perf_trampoline.c - _Py_perfmap_callbacks - Objects/typeobject.c - name_op - Objects/unicodeobject.c - stripfuncnames - Objects/unicodeobject.c - utf7_category - @@ -477,12 +1497,9 @@ Parser/parser.c - reserved_keywords - Parser/parser.c - soft_keywords - Parser/tokenizer.c - type_comment_prefix - Python/ast_opt.c fold_unaryop ops - -Python/ceval.c - binary_ops - Python/codecs.c - Py_hexdigits - Python/codecs.c - ucnhash_capi - Python/codecs.c _PyCodecRegistry_Init methods - -Python/compile.c - NO_LABEL - -Python/compile.c - NO_LOCATION - Python/dynload_shlib.c - _PyImport_DynLoadFiletab - Python/dynload_stub.c - _PyImport_DynLoadFiletab - Python/frozen.c - aliases - @@ -497,10 +1514,7 @@ Python/pyhash.c - PyHash_Func - Python/pylifecycle.c - _C_LOCALE_WARNING - Python/pylifecycle.c - _PyOS_mystrnicmp_hack - Python/pylifecycle.c - _TARGET_LOCALES - -Python/pystate.c - initial - Python/specialize.c - adaptive_opcodes - Python/specialize.c - cache_requirements - Python/specialize.c - compare_masks - -Python/specialize.c - _PyOpcode_Adaptive - -Python/stdlib_module_names.h - _Py_stdlib_module_names - Python/sysmodule.c - whatstrings - diff --git a/Tools/clinic/clinic.py b/Tools/clinic/clinic.py index 805bdcb4365450..53e29df8a8e40f 100755 --- a/Tools/clinic/clinic.py +++ b/Tools/clinic/clinic.py @@ -22,6 +22,7 @@ import shlex import string import sys +import tempfile import textwrap import traceback import types @@ -535,65 +536,6 @@ def normalize_snippet(s, *, indent=0): return s -def declare_parser(f, *, hasformat=False): - """ - Generates the code template for a static local PyArg_Parser variable, - with an initializer. For core code (incl. builtin modules) the - kwtuple field is also statically initialized. Otherwise - it is initialized at runtime. - """ - if hasformat: - fname = '' - format_ = '.format = "{format_units}:{name}",' - else: - fname = '.fname = "{name}",' - format_ = '' - - num_keywords = len([ - p for p in f.parameters.values() - if not p.is_positional_only() and not p.is_vararg() - ]) - if num_keywords == 0: - declarations = """ - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty) - #else - # define KWTUPLE NULL - #endif - """ - else: - declarations = """ - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - - #define NUM_KEYWORDS %d - static struct {{ - PyGC_Head _this_is_not_used; - PyObject_VAR_HEAD - PyObject *ob_item[NUM_KEYWORDS]; - }} _kwtuple = {{ - .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = {{ {keywords_py} }}, - }}; - #undef NUM_KEYWORDS - #define KWTUPLE (&_kwtuple.ob_base.ob_base) - - #else // !Py_BUILD_CORE - # define KWTUPLE NULL - #endif // !Py_BUILD_CORE - """ % num_keywords - - declarations += """ - static const char * const _keywords[] = {{{keywords_c} NULL}}; - static _PyArg_Parser _parser = {{ - .keywords = _keywords, - %s - .kwtuple = KWTUPLE, - }}; - #undef KWTUPLE - """ % (format_ or fname) - return normalize_snippet(declarations) - - def wrap_declarations(text, length=78): """ A simple-minded text wrapper for C function declarations. @@ -1026,8 +968,11 @@ def parser_body(prototype, *fields, declarations=''): flags = "METH_FASTCALL|METH_KEYWORDS" parser_prototype = parser_prototype_fastcall_keywords argname_fmt = 'args[%d]' - declarations = declare_parser(f) - declarations += "\nPyObject *argsbuf[%s];" % len(converters) + declarations = normalize_snippet(""" + static const char * const _keywords[] = {{{keywords} NULL}}; + static _PyArg_Parser _parser = {{NULL, _keywords, "{name}", 0}}; + PyObject *argsbuf[%s]; + """ % len(converters)) if has_optional_kw: pre_buffer = "0" if vararg != NO_VARARG else "nargs" declarations += "\nPy_ssize_t noptargs = %s + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - %d;" % (pre_buffer, min_pos + min_kw_only) @@ -1042,10 +987,13 @@ def parser_body(prototype, *fields, declarations=''): flags = "METH_VARARGS|METH_KEYWORDS" parser_prototype = parser_prototype_keyword argname_fmt = 'fastargs[%d]' - declarations = declare_parser(f) - declarations += "\nPyObject *argsbuf[%s];" % len(converters) - declarations += "\nPyObject * const *fastargs;" - declarations += "\nPy_ssize_t nargs = PyTuple_GET_SIZE(args);" + declarations = normalize_snippet(""" + static const char * const _keywords[] = {{{keywords} NULL}}; + static _PyArg_Parser _parser = {{NULL, _keywords, "{name}", 0}}; + PyObject *argsbuf[%s]; + PyObject * const *fastargs; + Py_ssize_t nargs = PyTuple_GET_SIZE(args); + """ % len(converters)) if has_optional_kw: declarations += "\nPy_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - %d;" % (min_pos + min_kw_only) parser_code = [normalize_snippet(""" @@ -1122,7 +1070,9 @@ def parser_body(prototype, *fields, declarations=''): if add_label: parser_code.append("%s:" % add_label) else: - declarations = declare_parser(f, hasformat=True) + declarations = ( + 'static const char * const _keywords[] = {{{keywords} NULL}};\n' + 'static _PyArg_Parser _parser = {{"{format_units}:{name}", _keywords, 0}};') if not new_or_init: parser_code = [normalize_snippet(""" if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser{parse_arguments_comma} @@ -1445,11 +1395,7 @@ def render_function(self, clinic, f): template_dict['declarations'] = format_escape("\n".join(data.declarations)) template_dict['initializers'] = "\n\n".join(data.initializers) template_dict['modifications'] = '\n\n'.join(data.modifications) - template_dict['keywords_c'] = ' '.join('"' + k + '",' - for k in data.keywords) - keywords = [k for k in data.keywords if k] - template_dict['keywords_py'] = ' '.join('&_Py_ID(' + k + '),' - for k in keywords) + template_dict['keywords'] = ' '.join('"' + k + '",' for k in data.keywords) template_dict['format_units'] = ''.join(data.format_units) template_dict['parse_arguments'] = ', '.join(data.parse_arguments) if data.parse_arguments: @@ -1767,7 +1713,7 @@ def __init__(self, language, f=None): self.language = language self.f = f or io.StringIO() - def print_block(self, block, *, core_includes=False): + def print_block(self, block): input = block.input output = block.output dsl_name = block.dsl_name @@ -1794,18 +1740,8 @@ def print_block(self, block, *, core_includes=False): write(self.language.stop_line.format(dsl_name=dsl_name)) write("\n") - output = '' - if core_includes: - output += textwrap.dedent(""" - #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - # include "pycore_gc.h" // PyGC_Head - # include "pycore_runtime.h" // _Py_ID() - #endif - - """) - input = ''.join(block.input) - output += ''.join(block.output) + output = ''.join(block.output) if output: if not output.endswith('\n'): output += '\n' @@ -2138,7 +2074,7 @@ def parse(self, input): block.input = 'preserve\n' printer_2 = BlockPrinter(self.language) - printer_2.print_block(block, core_includes=True) + printer_2.print_block(block) write_file(destination.filename, printer_2.f.getvalue()) continue text = printer.f.getvalue() @@ -3891,6 +3827,17 @@ def render(self, function, data): add_c_return_converter(CReturnConverter, 'object') +class NoneType_return_converter(CReturnConverter): + def render(self, function, data): + self.declare(data) + data.return_conversion.append(''' +if (_return_value != Py_None) { + goto exit; +} +return_value = Py_None; +Py_INCREF(Py_None); +'''.strip()) + class bool_return_converter(CReturnConverter): type = 'int' @@ -4174,7 +4121,7 @@ def directive_output(self, command_or_name, destination=''): self.block.output.append('\n') return - d = self.clinic.get_destination_buffer(destination) + d = self.clinic.get_destination(destination) if command_or_name == "everything": for name in list(fd): @@ -4764,14 +4711,9 @@ def bad_node(self, node): p = Parameter(parameter_name, kind, function=self.function, converter=converter, default=value, group=self.group) - names = [k.name for k in self.function.parameters.values()] - if parameter_name in names[1:]: + if parameter_name in self.function.parameters: fail("You can't have two parameters named " + repr(parameter_name) + "!") - elif names and parameter_name == names[0] and c_name is None: - fail(f"Parameter '{parameter_name}' requires a custom C name") - - key = f"{parameter_name}_as_{c_name}" if c_name else parameter_name - self.function.parameters[key] = p + self.function.parameters[parameter_name] = p def parse_converter(self, annotation): if (hasattr(ast, 'Constant') and diff --git a/Tools/gdb/libpython.py b/Tools/gdb/libpython.py index 303409cb0077d1..80563ea59ec4b5 100755 --- a/Tools/gdb/libpython.py +++ b/Tools/gdb/libpython.py @@ -478,23 +478,17 @@ def get_attr_dict(self): dictoffset = int_from_int(typeobj.field('tp_dictoffset')) if dictoffset != 0: if dictoffset < 0: - if int_from_int(typeobj.field('tp_flags')) & Py_TPFLAGS_MANAGED_DICT: - assert dictoffset == -1 - dictoffset = -3 * _sizeof_void_p() - else: - type_PyVarObject_ptr = gdb.lookup_type('PyVarObject').pointer() - tsize = int_from_int(self._gdbval.cast(type_PyVarObject_ptr)['ob_size']) - if tsize < 0: - tsize = -tsize - size = _PyObject_VAR_SIZE(typeobj, tsize) - dictoffset += size - assert dictoffset % _sizeof_void_p() == 0 + type_PyVarObject_ptr = gdb.lookup_type('PyVarObject').pointer() + tsize = int_from_int(self._gdbval.cast(type_PyVarObject_ptr)['ob_size']) + if tsize < 0: + tsize = -tsize + size = _PyObject_VAR_SIZE(typeobj, tsize) + dictoffset += size + assert dictoffset % _sizeof_void_p() == 0 dictptr = self._gdbval.cast(_type_char_ptr()) + dictoffset PyObjectPtrPtr = PyObjectPtr.get_gdb_type().pointer() dictptr = dictptr.cast(PyObjectPtrPtr) - if int(dictptr.dereference()) & 1: - return None return PyObjectPtr.from_pyobject_ptr(dictptr.dereference()) except RuntimeError: # Corrupt data somewhere; fail safe @@ -508,14 +502,12 @@ def get_keys_values(self): has_values = int_from_int(typeobj.field('tp_flags')) & Py_TPFLAGS_MANAGED_DICT if not has_values: return None - charptrptr_t = _type_char_ptr().pointer() - ptr = self._gdbval.cast(charptrptr_t) - 3 - char_ptr = ptr.dereference() - if (int(char_ptr) & 1) == 0: + PyDictValuesPtrPtr = gdb.lookup_type("PyDictValues").pointer().pointer() + valuesptr = self._gdbval.cast(PyDictValuesPtrPtr) - 4 + values = valuesptr.dereference() + if int(values) == 0: return None - char_ptr += 1 - values_ptr = char_ptr.cast(gdb.lookup_type("PyDictValues").pointer()) - values = values_ptr['values'] + values = values['values'] return PyKeysValuesPair(self.get_cached_keys(), values) def get_cached_keys(self): @@ -535,15 +527,14 @@ def proxyval(self, visited): return ProxyAlreadyVisited('<...>') visited.add(self.as_address()) + pyop_attr_dict = self.get_attr_dict() keys_values = self.get_keys_values() if keys_values: attr_dict = keys_values.proxyval(visited) + elif pyop_attr_dict: + attr_dict = pyop_attr_dict.proxyval(visited) else: - pyop_attr_dict = self.get_attr_dict() - if pyop_attr_dict: - attr_dict = pyop_attr_dict.proxyval(visited) - else: - attr_dict = {} + attr_dict = {} tp_name = self.safe_tp_name() # Class: @@ -1752,7 +1743,7 @@ def is_other_python_frame(self): def is_waiting_for_gil(self): '''Is this frame waiting on the GIL?''' - # This assumes the _POSIX_THREADS version of Python/ceval_gil.c: + # This assumes the _POSIX_THREADS version of Python/ceval_gil.h: name = self._gdbframe.name() if name: return (name == 'take_gil') diff --git a/Tools/msi/build.bat b/Tools/msi/build.bat index 8771d004211ea9..425558f99d5910 100644 --- a/Tools/msi/build.bat +++ b/Tools/msi/build.bat @@ -12,16 +12,15 @@ set BUILDPACK= set REBUILD= :CheckOpts -if "%~1" EQU "-h" goto Help -if /I "%~1" EQU "-x86" (set BUILDX86=1) && shift && goto CheckOpts -if /I "%~1" EQU "-Win32" (set BUILDX86=1) && shift && goto CheckOpts -if /I "%~1" EQU "-x64" (set BUILDX64=1) && shift && goto CheckOpts -if /I "%~1" EQU "-arm64" (set BUILDARM64=1) && shift && goto CheckOpts -if "%~1" EQU "--doc" (set BUILDDOC=1) && shift && goto CheckOpts -if "%~1" EQU "--no-test-marker" (set BUILDTEST=) && shift && goto CheckOpts -if "%~1" EQU "--test-marker" (set BUILDTEST=--test-marker) && shift && goto CheckOpts -if "%~1" EQU "--pack" (set BUILDPACK=1) && shift && goto CheckOpts -if "%~1" EQU "-r" (set REBUILD=-r) && shift && goto CheckOpts +if "%~1" EQU "-h" goto Help +if "%~1" EQU "-x86" (set BUILDX86=1) && shift && goto CheckOpts +if "%~1" EQU "-x64" (set BUILDX64=1) && shift && goto CheckOpts +if "%~1" EQU "-arm64" (set BUILDARM64=1) && shift && goto CheckOpts +if "%~1" EQU "--doc" (set BUILDDOC=1) && shift && goto CheckOpts +if "%~1" EQU "--no-test-marker" (set BUILDTEST=) && shift && goto CheckOpts +if "%~1" EQU "--test-marker" (set BUILDTEST=--test-marker) && shift && goto CheckOpts +if "%~1" EQU "--pack" (set BUILDPACK=1) && shift && goto CheckOpts +if "%~1" EQU "-r" (set REBUILD=-r) && shift && goto CheckOpts if not defined BUILDX86 if not defined BUILDX64 if not defined BUILDARM64 (set BUILDX86=1) && (set BUILDX64=1) diff --git a/Tools/msi/buildrelease.bat b/Tools/msi/buildrelease.bat index 839f6204d9e0b2..0373c9f7b836a7 100644 --- a/Tools/msi/buildrelease.bat +++ b/Tools/msi/buildrelease.bat @@ -12,9 +12,7 @@ rem rem The following substitutions will be applied to the release URI: rem Variable Description Example rem {arch} architecture amd64, win32 -rem Do not change the scheme to https. Otherwise, releases built with this -rem script will not be upgradable to/from official releases of Python. -set RELEASE_URI=http://www.python.org/{arch} +set RELEASE_URI=https://www.python.org/{arch} rem This is the URL that will be used to download installation files. rem The files available from the default URL *will* conflict with your @@ -46,28 +44,27 @@ set BUILDZIP=1 :CheckOpts -if "%1" EQU "-h" goto Help -if "%1" EQU "-c" (set CERTNAME=%~2) && shift && shift && goto CheckOpts -if "%1" EQU "--certificate" (set CERTNAME=%~2) && shift && shift && goto CheckOpts -if "%1" EQU "-o" (set OUTDIR=%~2) && shift && shift && goto CheckOpts -if "%1" EQU "--out" (set OUTDIR=%~2) && shift && shift && goto CheckOpts -if "%1" EQU "-D" (set SKIPDOC=1) && shift && goto CheckOpts -if "%1" EQU "--skip-doc" (set SKIPDOC=1) && shift && goto CheckOpts -if "%1" EQU "-B" (set SKIPBUILD=1) && shift && goto CheckOpts -if "%1" EQU "--skip-build" (set SKIPBUILD=1) && shift && goto CheckOpts -if "%1" EQU "--download" (set DOWNLOAD_URL=%~2) && shift && shift && goto CheckOpts -if "%1" EQU "--test" (set TESTTARGETDIR=%~2) && shift && shift && goto CheckOpts -if "%1" EQU "-b" (set TARGET=Build) && shift && goto CheckOpts -if "%1" EQU "--build" (set TARGET=Build) && shift && goto CheckOpts -if /I "%1" EQU "-x86" (set BUILDX86=1) && shift && goto CheckOpts -if /I "%1" EQU "-Win32" (set BUILDX86=1) && shift && goto CheckOpts -if /I "%1" EQU "-x64" (set BUILDX64=1) && shift && goto CheckOpts -if /I "%1" EQU "-arm64" (set BUILDARM64=1) && shift && goto CheckOpts -if "%1" EQU "--pgo" (set PGO=%~2) && shift && shift && goto CheckOpts -if "%1" EQU "--skip-pgo" (set PGO=) && shift && goto CheckOpts -if "%1" EQU "--skip-nuget" (set BUILDNUGET=) && shift && goto CheckOpts -if "%1" EQU "--skip-zip" (set BUILDZIP=) && shift && goto CheckOpts -if "%1" EQU "--skip-msi" (set BUILDMSI=) && shift && goto CheckOpts +if "%1" EQU "-h" goto Help +if "%1" EQU "-c" (set CERTNAME=%~2) && shift && shift && goto CheckOpts +if "%1" EQU "--certificate" (set CERTNAME=%~2) && shift && shift && goto CheckOpts +if "%1" EQU "-o" (set OUTDIR=%~2) && shift && shift && goto CheckOpts +if "%1" EQU "--out" (set OUTDIR=%~2) && shift && shift && goto CheckOpts +if "%1" EQU "-D" (set SKIPDOC=1) && shift && goto CheckOpts +if "%1" EQU "--skip-doc" (set SKIPDOC=1) && shift && goto CheckOpts +if "%1" EQU "-B" (set SKIPBUILD=1) && shift && goto CheckOpts +if "%1" EQU "--skip-build" (set SKIPBUILD=1) && shift && goto CheckOpts +if "%1" EQU "--download" (set DOWNLOAD_URL=%~2) && shift && shift && goto CheckOpts +if "%1" EQU "--test" (set TESTTARGETDIR=%~2) && shift && shift && goto CheckOpts +if "%1" EQU "-b" (set TARGET=Build) && shift && goto CheckOpts +if "%1" EQU "--build" (set TARGET=Build) && shift && goto CheckOpts +if "%1" EQU "-x86" (set BUILDX86=1) && shift && goto CheckOpts +if "%1" EQU "-x64" (set BUILDX64=1) && shift && goto CheckOpts +if "%1" EQU "-arm64" (set BUILDARM64=1) && shift && goto CheckOpts +if "%1" EQU "--pgo" (set PGO=%~2) && shift && shift && goto CheckOpts +if "%1" EQU "--skip-pgo" (set PGO=) && shift && goto CheckOpts +if "%1" EQU "--skip-nuget" (set BUILDNUGET=) && shift && goto CheckOpts +if "%1" EQU "--skip-zip" (set BUILDZIP=) && shift && goto CheckOpts +if "%1" EQU "--skip-msi" (set BUILDMSI=) && shift && goto CheckOpts if "%1" NEQ "" echo Invalid option: "%1" && exit /B 1 diff --git a/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp b/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp index 3a17ffbaa0b655..fdc2a21d83d5f3 100644 --- a/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp +++ b/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp @@ -724,8 +724,6 @@ class PythonBootstrapperApplication : public CBalBaseBootstrapperApplication { auto hr = LoadAssociateFilesStateFromKey(_engine, fPerMachine ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER); if (hr == S_OK) { _engine->SetVariableNumeric(L"AssociateFiles", 1); - } else if (hr == S_FALSE) { - _engine->SetVariableNumeric(L"AssociateFiles", 0); } else if (FAILED(hr)) { BalLog(BOOTSTRAPPER_LOG_LEVEL_ERROR, "Failed to load AssociateFiles state: error code 0x%08X", hr); } @@ -819,8 +817,6 @@ class PythonBootstrapperApplication : public CBalBaseBootstrapperApplication { auto hr = LoadAssociateFilesStateFromKey(_engine, hkey); if (hr == S_OK) { _engine->SetVariableNumeric(L"AssociateFiles", 1); - } else if (hr == S_FALSE) { - _engine->SetVariableNumeric(L"AssociateFiles", 0); } else if (FAILED(hr)) { BalLog(BOOTSTRAPPER_LOG_LEVEL_ERROR, "Failed to load AssociateFiles state: error code 0x%08X", hr); } @@ -838,17 +834,7 @@ class PythonBootstrapperApplication : public CBalBaseBootstrapperApplication { LONGLONG includeLauncher; if (SUCCEEDED(BalGetNumericVariable(L"Include_launcher", &includeLauncher)) && includeLauncher == -1) { - if (BOOTSTRAPPER_ACTION_LAYOUT == _command.action || - (BOOTSTRAPPER_ACTION_INSTALL == _command.action && !_upgrading)) { - // When installing/downloading, we want to include the launcher - // by default. - _engine->SetVariableNumeric(L"Include_launcher", 1); - } else { - // Any other action, if we didn't detect the MSI then we want to - // keep it excluded - _engine->SetVariableNumeric(L"Include_launcher", 0); - _engine->SetVariableNumeric(L"AssociateFiles", 0); - } + _engine->SetVariableNumeric(L"Include_launcher", 1); } } @@ -2826,17 +2812,6 @@ class PythonBootstrapperApplication : public CBalBaseBootstrapperApplication { return ::CompareStringW(LOCALE_NEUTRAL, 0, platform, -1, L"x64", -1) == CSTR_EQUAL; } - static bool IsTargetPlatformARM64(__in IBootstrapperEngine* pEngine) { - WCHAR platform[8]; - DWORD platformLen = 8; - - if (FAILED(pEngine->GetVariableString(L"TargetPlatform", platform, &platformLen))) { - return S_FALSE; - } - - return ::CompareStringW(LOCALE_NEUTRAL, 0, platform, -1, L"ARM64", -1) == CSTR_EQUAL; - } - static HRESULT LoadOptionalFeatureStatesFromKey( __in IBootstrapperEngine* pEngine, __in HKEY hkHive, @@ -2845,7 +2820,7 @@ class PythonBootstrapperApplication : public CBalBaseBootstrapperApplication { HKEY hKey; LRESULT res; - if (IsTargetPlatformx64(pEngine) || IsTargetPlatformARM64(pEngine)) { + if (IsTargetPlatformx64(pEngine)) { res = RegOpenKeyExW(hkHive, subkey, 0, KEY_READ | KEY_WOW64_64KEY, &hKey); } else { res = RegOpenKeyExW(hkHive, subkey, 0, KEY_READ | KEY_WOW64_32KEY, &hKey); @@ -2884,7 +2859,7 @@ class PythonBootstrapperApplication : public CBalBaseBootstrapperApplication { BYTE buffer[1024]; DWORD bufferLen = sizeof(buffer); - if (IsTargetPlatformx64(pEngine) || IsTargetPlatformARM64(pEngine)) { + if (IsTargetPlatformx64(pEngine)) { res = RegOpenKeyExW(hkHive, subkey, 0, KEY_READ | KEY_WOW64_64KEY, &hKey); } else { res = RegOpenKeyExW(hkHive, subkey, 0, KEY_READ | KEY_WOW64_32KEY, &hKey); @@ -2942,7 +2917,12 @@ class PythonBootstrapperApplication : public CBalBaseBootstrapperApplication { HRESULT hr; HKEY hkHive; - BalLog(BOOTSTRAPPER_LOG_LEVEL_STANDARD, "Loading state of optional features"); + // The launcher installation is separate from the Python install, so we + // check its state later. For now, assume we don't want the launcher or + // file associations, and if they have already been installed then + // loading the state will reactivate these settings. + pEngine->SetVariableNumeric(L"Include_launcher", 0); + pEngine->SetVariableNumeric(L"AssociateFiles", 0); // Get the registry key from the bundle, to save having to duplicate it // in multiple places. diff --git a/Tools/msi/bundle/packagegroups/launcher.wxs b/Tools/msi/bundle/packagegroups/launcher.wxs index a6922758f31f14..7dae8ca7a68c18 100644 --- a/Tools/msi/bundle/packagegroups/launcher.wxs +++ b/Tools/msi/bundle/packagegroups/launcher.wxs @@ -11,11 +11,7 @@ EnableFeatureSelection="yes" Permanent="yes" Visible="yes" - InstallCondition="(InstallAllUsers or InstallLauncherAllUsers) and Include_launcher and not DetectedLauncher"> - <?if $(var.Platform)~="ARM64" ?> - <MsiProperty Name="ARM64_SHELLEXT" Value="1" /> - <?endif ?> - </MsiPackage> + InstallCondition="(InstallAllUsers or InstallLauncherAllUsers) and Include_launcher and not DetectedLauncher" /> <MsiPackage Id="launcher_JustForMe" SourceFile="!(bindpath.build32)en-us\launcher.msi" @@ -25,11 +21,7 @@ EnableFeatureSelection="yes" Permanent="yes" Visible="yes" - InstallCondition="not (InstallAllUsers or InstallLauncherAllUsers) and Include_launcher and not DetectedLauncher"> - <?if $(var.Platform)~="ARM64" ?> - <MsiProperty Name="ARM64_SHELLEXT" Value="1" /> - <?endif ?> - </MsiPackage> + InstallCondition="not (InstallAllUsers or InstallLauncherAllUsers) and Include_launcher and not DetectedLauncher" /> </PackageGroup> </Fragment> </Wix> \ No newline at end of file diff --git a/Tools/msi/doc/doc.wxs b/Tools/msi/doc/doc.wxs index 49798c752633fb..e80fff43418bb9 100644 --- a/Tools/msi/doc/doc.wxs +++ b/Tools/msi/doc/doc.wxs @@ -17,11 +17,6 @@ <RegistryValue Key="Help\Main Python Documentation" Type="string" Value="[#Doc_html_index.html]" KeyPath="yes" /> </RegistryKey> </Component> - - <Component Id="doc_folder" Directory="Doc" Guid="{22FD42DB-EC66-4B1C-B1FC-44E0CF7B2462}"> - <CreateFolder /> - <RemoveFolder Id="Remove_doc_folder" On="uninstall" /> - </Component> </Feature> <Feature Id="Shortcuts" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)"> <ComponentGroupRef Id="doc_html" /> diff --git a/Tools/msi/launcher/launcher.wxs b/Tools/msi/launcher/launcher.wxs index b83058c63bf6d9..d001fe53ea3811 100644 --- a/Tools/msi/launcher/launcher.wxs +++ b/Tools/msi/launcher/launcher.wxs @@ -3,18 +3,13 @@ <Product Id="*" Language="!(loc.LCID)" Name="!(loc.Title)" Version="$(var.Version)" Manufacturer="!(loc.Manufacturer)" UpgradeCode="$(var.UpgradeCode)"> <Package InstallerVersion="500" Compressed="yes" InstallScope="perUser" /> <MediaTemplate EmbedCab="yes" CompressionLevel="high" /> - + <Property Id="Suppress_TARGETDIR_Check" Value="1" /> <Icon Id="ARPIcon" SourceFile="!(bindpath.src)PC\icons\launcher.ico" /> <Property Id="ARPPRODUCTICON" Value="ARPIcon" /> <Property Id="ARPNOMODIFY" Value="1" /> <Property Id="DISABLEADVTSHORTCUTS" Value="1" /> - <Property Id="ARM64_SHELLEXT"> - <ComponentSearch Id="RegistrySearch_ARM64_SHELLEXT_Detected" - Guid="{C591963D-7FC6-4FCE-8642-5E01E6B8848F}" /> - </Property> - <Feature Id="DefaultFeature" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)"> <ComponentGroupRef Id="launcher_exe" Primary="yes" /> </Feature> @@ -22,14 +17,14 @@ <ComponentGroupRef Id="launcher_exe" /> <ComponentGroupRef Id="launcher_reg" /> </Feature> - + <Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="LauncherInstallDirectory" /> </Directory> - + <CustomAction Id="SetLauncherInstallDirectoryLM" Property="LauncherInstallDirectory" Value="[WindowsFolder]" /> <CustomAction Id="SetLauncherInstallDirectoryCU" Property="LauncherInstallDirectory" Value="[LocalAppDataFolder]Programs\Python\Launcher" /> - + <InstallExecuteSequence> <Custom Before="SetLauncherInstallDirectoryLM" Action="SetLauncherInstallDirectoryCU">NOT Installed AND NOT ALLUSERS=1</Custom> <Custom Before="CostFinalize" Action="SetLauncherInstallDirectoryLM">NOT Installed AND ALLUSERS=1</Custom> diff --git a/Tools/msi/launcher/launcher_files.wxs b/Tools/msi/launcher/launcher_files.wxs index d9a230e2d35ace..2c6c808137a6ff 100644 --- a/Tools/msi/launcher/launcher_files.wxs +++ b/Tools/msi/launcher/launcher_files.wxs @@ -22,23 +22,26 @@ </Component> <Component Id="pyshellext_amd64.dll" Directory="LauncherInstallDirectory" Guid="{E7411EFD-F1DD-40EB-B0C7-4BA02BF3E75F}" Win64="yes"> - <Condition>VersionNT64 AND NOT ARM64_SHELLEXT</Condition> + <Condition>VersionNT64</Condition> <File Id="pyshellext_amd64.dll" Name="pyshellext.amd64.dll" Source="!(bindpath.Build64)\pyshellext.dll"> <Class Id="{BEA218D2-6950-497B-9434-61683EC065FE}" Advertise="no" Context="InprocServer32" ThreadingModel="apartment" /> </File> </Component> <Component Id="pyshellext_win32.dll" Directory="LauncherInstallDirectory" Guid="{C5936696-9A5A-45A0-A830-D172C3329282}"> - <Condition>NOT VersionNT64 AND NOT ARM64_SHELLEXT</Condition> + <Condition>NOT VersionNT64</Condition> <File Id="pyshellext_win32.dll" Name="pyshellext.win32.dll" Source="!(bindpath.Build32)\pyshellext.dll"> <Class Id="{BEA218D2-6950-497B-9434-61683EC065FE}" Advertise="no" Context="InprocServer32" ThreadingModel="apartment" /> </File> </Component> - <Component Id="pyshellext_arm64.dll" Directory="LauncherInstallDirectory" Guid="{C591963D-7FC6-4FCE-8642-5E01E6B8848F}" Win64="yes"> - <Condition>ARM64_SHELLEXT</Condition> + <!-- + Currently unclear how to detect ARM64 device at this point. + In any case, the shell extension doesn't appear to work, so installing a non-functional + pyshellext_amd64.dll for a different platform isn't any worse. + <Component Id="pyshellext_arm64.dll" Directory="LauncherInstallDirectory" Guid="{C591963D-7FC6-4FCE-8642-5E01E6B8848F}"> <File Id="pyshellext_arm64.dll" Name="pyshellext.arm64.dll" Source="!(bindpath.BuildARM64)\pyshellext.dll"> <Class Id="{BEA218D2-6950-497B-9434-61683EC065FE}" Advertise="no" Context="InprocServer32" ThreadingModel="apartment" /> </File> - </Component> + </Component>--> </ComponentGroup> </Fragment> </Wix> diff --git a/Tools/msi/lib/lib_files.wxs b/Tools/msi/lib/lib_files.wxs index 73c0231352f35c..64c046e6dd9108 100644 --- a/Tools/msi/lib/lib_files.wxs +++ b/Tools/msi/lib/lib_files.wxs @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> - <?define exts=pyexpat;select;unicodedata;winsound;_bz2;_elementtree;_socket;_ssl;_msi;_ctypes;_hashlib;_multiprocessing;_lzma;_decimal;_overlapped;_sqlite3;_asyncio;_queue;_uuid;_wmi;_zoneinfo ?> + <?define exts=pyexpat;select;unicodedata;winsound;_bz2;_elementtree;_socket;_ssl;_msi;_ctypes;_hashlib;_multiprocessing;_lzma;_decimal;_overlapped;_sqlite3;_asyncio;_queue;_uuid;_zoneinfo ?> <Fragment> <DirectoryRef Id="Lib_venv_scripts_nt" /> diff --git a/Tools/peg_generator/Makefile b/Tools/peg_generator/Makefile index 084da154919e3e..d010f19d58892c 100644 --- a/Tools/peg_generator/Makefile +++ b/Tools/peg_generator/Makefile @@ -88,7 +88,7 @@ time_stdlib: $(CPYTHON) venv -d $(CPYTHON) \ $(TESTFLAGS) \ --exclude "*/bad*" \ - --exclude "*/test/test_lib2to3/data/*" + --exclude "*/lib2to3/tests/data/*" mypy: regen-metaparser $(MYPY) # For list of files, see mypy.ini diff --git a/Tools/peg_generator/pegen/grammar.py b/Tools/peg_generator/pegen/grammar.py index 03d60d01026f85..fa47b98201c0fd 100644 --- a/Tools/peg_generator/pegen/grammar.py +++ b/Tools/peg_generator/pegen/grammar.py @@ -1,16 +1,23 @@ from __future__ import annotations +from abc import abstractmethod from typing import ( + TYPE_CHECKING, AbstractSet, Any, + Dict, Iterable, Iterator, List, Optional, + Set, Tuple, Union, ) +if TYPE_CHECKING: + from pegen.parser_generator import ParserGenerator + class GrammarError(Exception): pass diff --git a/Tools/peg_generator/scripts/benchmark.py b/Tools/peg_generator/scripts/benchmark.py index 053f8ef06d42c5..4a063bf10034c8 100644 --- a/Tools/peg_generator/scripts/benchmark.py +++ b/Tools/peg_generator/scripts/benchmark.py @@ -78,7 +78,7 @@ def run_benchmark_stdlib(subcommand): verbose=False, excluded_files=[ "*/bad*", - "*/test/test_lib2to3/data/*", + "*/lib2to3/tests/data/*", ], short=True, mode=modes[subcommand], diff --git a/Tools/peg_generator/scripts/grammar_grapher.py b/Tools/peg_generator/scripts/grammar_grapher.py index e5271a0e4810f9..4a41dfaa3da0ff 100755 --- a/Tools/peg_generator/scripts/grammar_grapher.py +++ b/Tools/peg_generator/scripts/grammar_grapher.py @@ -30,6 +30,7 @@ Alt, Cut, Forced, + Grammar, Group, Leaf, Lookahead, diff --git a/Tools/peg_generator/scripts/test_parse_directory.py b/Tools/peg_generator/scripts/test_parse_directory.py index f5cf198be8dabf..a5e26f0a0feda5 100755 --- a/Tools/peg_generator/scripts/test_parse_directory.py +++ b/Tools/peg_generator/scripts/test_parse_directory.py @@ -5,6 +5,7 @@ import os import sys import time +import traceback import tokenize from glob import glob, escape from pathlib import PurePath @@ -12,6 +13,7 @@ from typing import List, Optional, Any, Tuple sys.path.insert(0, os.getcwd()) +from pegen.ast_dump import ast_dump from pegen.testutil import print_memstats SUCCESS = "\033[92m" diff --git a/Tools/peg_generator/scripts/test_pypi_packages.py b/Tools/peg_generator/scripts/test_pypi_packages.py index 01ccc3d21ef5a5..e2eaef9de26f73 100755 --- a/Tools/peg_generator/scripts/test_pypi_packages.py +++ b/Tools/peg_generator/scripts/test_pypi_packages.py @@ -9,10 +9,11 @@ import pathlib import sys -from typing import Generator +from typing import Generator, Any sys.path.insert(0, ".") +from pegen import build from scripts import test_parse_directory HERE = pathlib.Path(__file__).resolve().parent diff --git a/Tools/scripts/2to3 b/Tools/scripts/2to3 index f27d18ecf67086..fbd4aa6b838234 100755 --- a/Tools/scripts/2to3 +++ b/Tools/scripts/2to3 @@ -1,4 +1,4 @@ -#!/usr/bin/env python3 +#!/usr/bin/env python import sys from lib2to3.main import main diff --git a/Tools/scripts/check_extension_modules.py b/Tools/scripts/check_extension_modules.py deleted file mode 100644 index 59239c62e2ef34..00000000000000 --- a/Tools/scripts/check_extension_modules.py +++ /dev/null @@ -1,484 +0,0 @@ -"""Check extension modules - -The script checks shared and built-in extension modules. It verifies that the -modules have been built and that they can be imported successfully. Missing -modules and failed imports are reported to the user. Shared extension -files are renamed on failed import. - -Module information is parsed from several sources: - -- core modules hard-coded in Modules/config.c.in -- Windows-specific modules that are hard-coded in PC/config.c -- MODULE_{name}_STATE entries in Makefile (provided through sysconfig) -- Various makesetup files: - - $(srcdir)/Modules/Setup - - Modules/Setup.[local|bootstrap|stdlib] files, which are generated - from $(srcdir)/Modules/Setup.*.in files - -See --help for more information -""" -import argparse -import collections -import enum -import logging -import os -import pathlib -import re -import sys -import sysconfig -import warnings - -from importlib._bootstrap import _load as bootstrap_load -from importlib.machinery import BuiltinImporter, ExtensionFileLoader, ModuleSpec -from importlib.util import spec_from_file_location, spec_from_loader -from typing import Iterable - -SRC_DIR = pathlib.Path(__file__).parent.parent.parent - -# core modules, hard-coded in Modules/config.h.in -CORE_MODULES = { - "_ast", - "_imp", - "_string", - "_tokenize", - "_warnings", - "builtins", - "gc", - "marshal", - "sys", -} - -# Windows-only modules -WINDOWS_MODULES = { - "_msi", - "_overlapped", - "_testconsole", - "_winapi", - "msvcrt", - "nt", - "winreg", - "winsound", -} - - -logger = logging.getLogger(__name__) - -parser = argparse.ArgumentParser( - prog="check_extension_modules", - description=__doc__, - formatter_class=argparse.RawDescriptionHelpFormatter, -) - -parser.add_argument( - "--verbose", - action="store_true", - help="Verbose, report builtin, shared, and unavailable modules", -) - -parser.add_argument( - "--debug", - action="store_true", - help="Enable debug logging", -) - -parser.add_argument( - "--strict", - action=argparse.BooleanOptionalAction, - help=( - "Strict check, fail when a module is missing or fails to import" - "(default: no, unless env var PYTHONSTRICTEXTENSIONBUILD is set)" - ), - default=bool(os.environ.get("PYTHONSTRICTEXTENSIONBUILD")), -) - -parser.add_argument( - "--cross-compiling", - action=argparse.BooleanOptionalAction, - help=( - "Use cross-compiling checks " - "(default: no, unless env var _PYTHON_HOST_PLATFORM is set)." - ), - default="_PYTHON_HOST_PLATFORM" in os.environ, -) - -parser.add_argument( - "--list-module-names", - action="store_true", - help="Print a list of module names to stdout and exit", -) - - -class ModuleState(enum.Enum): - # Makefile state "yes" - BUILTIN = "builtin" - SHARED = "shared" - - DISABLED = "disabled" - MISSING = "missing" - NA = "n/a" - # disabled by Setup / makesetup rule - DISABLED_SETUP = "disabled_setup" - - def __bool__(self): - return self.value in {"builtin", "shared"} - - -ModuleInfo = collections.namedtuple("ModuleInfo", "name state") - - -class ModuleChecker: - pybuilddir_txt = "pybuilddir.txt" - - setup_files = ( - # see end of configure.ac - "Modules/Setup.local", - "Modules/Setup.stdlib", - "Modules/Setup.bootstrap", - SRC_DIR / "Modules/Setup", - ) - - def __init__(self, cross_compiling: bool = False, strict: bool = False): - self.cross_compiling = cross_compiling - self.strict_extensions_build = strict - self.ext_suffix = sysconfig.get_config_var("EXT_SUFFIX") - self.platform = sysconfig.get_platform() - self.builddir = self.get_builddir() - self.modules = self.get_modules() - - self.builtin_ok = [] - self.shared_ok = [] - self.failed_on_import = [] - self.missing = [] - self.disabled_configure = [] - self.disabled_setup = [] - self.notavailable = [] - - def check(self): - for modinfo in self.modules: - logger.debug("Checking '%s' (%s)", modinfo.name, self.get_location(modinfo)) - if modinfo.state == ModuleState.DISABLED: - self.disabled_configure.append(modinfo) - elif modinfo.state == ModuleState.DISABLED_SETUP: - self.disabled_setup.append(modinfo) - elif modinfo.state == ModuleState.MISSING: - self.missing.append(modinfo) - elif modinfo.state == ModuleState.NA: - self.notavailable.append(modinfo) - else: - try: - if self.cross_compiling: - self.check_module_cross(modinfo) - else: - self.check_module_import(modinfo) - except (ImportError, FileNotFoundError): - self.rename_module(modinfo) - self.failed_on_import.append(modinfo) - else: - if modinfo.state == ModuleState.BUILTIN: - self.builtin_ok.append(modinfo) - else: - assert modinfo.state == ModuleState.SHARED - self.shared_ok.append(modinfo) - - def summary(self, *, verbose: bool = False): - longest = max([len(e.name) for e in self.modules], default=0) - - def print_three_column(modinfos: list[ModuleInfo]): - names = [modinfo.name for modinfo in modinfos] - names.sort(key=str.lower) - # guarantee zip() doesn't drop anything - while len(names) % 3: - names.append("") - for l, m, r in zip(names[::3], names[1::3], names[2::3]): - print("%-*s %-*s %-*s" % (longest, l, longest, m, longest, r)) - - if verbose and self.builtin_ok: - print("The following *built-in* modules have been successfully built:") - print_three_column(self.builtin_ok) - print() - - if verbose and self.shared_ok: - print("The following *shared* modules have been successfully built:") - print_three_column(self.shared_ok) - print() - - if self.disabled_configure: - print("The following modules are *disabled* in configure script:") - print_three_column(self.disabled_configure) - print() - - if self.disabled_setup: - print("The following modules are *disabled* in Modules/Setup files:") - print_three_column(self.disabled_setup) - print() - - if verbose and self.notavailable: - print( - f"The following modules are not available on platform '{self.platform}':" - ) - print_three_column(self.notavailable) - print() - - if self.missing: - print("The necessary bits to build these optional modules were not found:") - print_three_column(self.missing) - print("To find the necessary bits, look in configure.ac and config.log.") - print() - - if self.failed_on_import: - print( - "Following modules built successfully " - "but were removed because they could not be imported:" - ) - print_three_column(self.failed_on_import) - print() - - if any( - modinfo.name == "_ssl" for modinfo in self.missing + self.failed_on_import - ): - print("Could not build the ssl module!") - print("Python requires a OpenSSL 1.1.1 or newer") - if sysconfig.get_config_var("OPENSSL_LDFLAGS"): - print("Custom linker flags may require --with-openssl-rpath=auto") - print() - - disabled = len(self.disabled_configure) + len(self.disabled_setup) - print( - f"Checked {len(self.modules)} modules (" - f"{len(self.builtin_ok)} built-in, " - f"{len(self.shared_ok)} shared, " - f"{len(self.notavailable)} n/a on {self.platform}, " - f"{disabled} disabled, " - f"{len(self.missing)} missing, " - f"{len(self.failed_on_import)} failed on import)" - ) - - def check_strict_build(self): - """Fail if modules are missing and it's a strict build""" - if self.strict_extensions_build and (self.failed_on_import or self.missing): - raise RuntimeError("Failed to build some stdlib modules") - - def list_module_names(self, *, all: bool = False) -> set: - names = {modinfo.name for modinfo in self.modules} - if all: - names.update(WINDOWS_MODULES) - return names - - def get_builddir(self) -> pathlib.Path: - try: - with open(self.pybuilddir_txt, encoding="utf-8") as f: - builddir = f.read() - except FileNotFoundError: - logger.error("%s must be run from the top build directory", __file__) - raise - builddir = pathlib.Path(builddir) - logger.debug("%s: %s", self.pybuilddir_txt, builddir) - return builddir - - def get_modules(self) -> list[ModuleInfo]: - """Get module info from sysconfig and Modules/Setup* files""" - seen = set() - modules = [] - # parsing order is important, first entry wins - for modinfo in self.get_core_modules(): - modules.append(modinfo) - seen.add(modinfo.name) - for setup_file in self.setup_files: - for modinfo in self.parse_setup_file(setup_file): - if modinfo.name not in seen: - modules.append(modinfo) - seen.add(modinfo.name) - for modinfo in self.get_sysconfig_modules(): - if modinfo.name not in seen: - modules.append(modinfo) - seen.add(modinfo.name) - logger.debug("Found %i modules in total", len(modules)) - modules.sort() - return modules - - def get_core_modules(self) -> Iterable[ModuleInfo]: - """Get hard-coded core modules""" - for name in CORE_MODULES: - modinfo = ModuleInfo(name, ModuleState.BUILTIN) - logger.debug("Found core module %s", modinfo) - yield modinfo - - def get_sysconfig_modules(self) -> Iterable[ModuleInfo]: - """Get modules defined in Makefile through sysconfig - - MODBUILT_NAMES: modules in *static* block - MODSHARED_NAMES: modules in *shared* block - MODDISABLED_NAMES: modules in *disabled* block - """ - moddisabled = set(sysconfig.get_config_var("MODDISABLED_NAMES").split()) - if self.cross_compiling: - modbuiltin = set(sysconfig.get_config_var("MODBUILT_NAMES").split()) - else: - modbuiltin = set(sys.builtin_module_names) - - for key, value in sysconfig.get_config_vars().items(): - if not key.startswith("MODULE_") or not key.endswith("_STATE"): - continue - if value not in {"yes", "disabled", "missing", "n/a"}: - raise ValueError(f"Unsupported value '{value}' for {key}") - - modname = key[7:-6].lower() - if modname in moddisabled: - # Setup "*disabled*" rule - state = ModuleState.DISABLED_SETUP - elif value in {"disabled", "missing", "n/a"}: - state = ModuleState(value) - elif modname in modbuiltin: - assert value == "yes" - state = ModuleState.BUILTIN - else: - assert value == "yes" - state = ModuleState.SHARED - - modinfo = ModuleInfo(modname, state) - logger.debug("Found %s in Makefile", modinfo) - yield modinfo - - def parse_setup_file(self, setup_file: pathlib.Path) -> Iterable[ModuleInfo]: - """Parse a Modules/Setup file""" - assign_var = re.compile(r"^\w+=") # EGG_SPAM=foo - # default to static module - state = ModuleState.BUILTIN - logger.debug("Parsing Setup file %s", setup_file) - with open(setup_file, encoding="utf-8") as f: - for line in f: - line = line.strip() - if not line or line.startswith("#") or assign_var.match(line): - continue - match line.split(): - case ["*shared*"]: - state = ModuleState.SHARED - case ["*static*"]: - state = ModuleState.BUILTIN - case ["*disabled*"]: - state = ModuleState.DISABLED - case ["*noconfig*"]: - state = None - case [*items]: - if state == ModuleState.DISABLED: - # *disabled* can disable multiple modules per line - for item in items: - modinfo = ModuleInfo(item, state) - logger.debug("Found %s in %s", modinfo, setup_file) - yield modinfo - elif state in {ModuleState.SHARED, ModuleState.BUILTIN}: - # *shared* and *static*, first item is the name of the module. - modinfo = ModuleInfo(items[0], state) - logger.debug("Found %s in %s", modinfo, setup_file) - yield modinfo - - def get_spec(self, modinfo: ModuleInfo) -> ModuleSpec: - """Get ModuleSpec for builtin or extension module""" - if modinfo.state == ModuleState.SHARED: - location = os.fspath(self.get_location(modinfo)) - loader = ExtensionFileLoader(modinfo.name, location) - return spec_from_file_location(modinfo.name, location, loader=loader) - elif modinfo.state == ModuleState.BUILTIN: - return spec_from_loader(modinfo.name, loader=BuiltinImporter) - else: - raise ValueError(modinfo) - - def get_location(self, modinfo: ModuleInfo) -> pathlib.Path: - """Get shared library location in build directory""" - if modinfo.state == ModuleState.SHARED: - return self.builddir / f"{modinfo.name}{self.ext_suffix}" - else: - return None - - def _check_file(self, modinfo: ModuleInfo, spec: ModuleSpec): - """Check that the module file is present and not empty""" - if spec.loader is BuiltinImporter: - return - try: - st = os.stat(spec.origin) - except FileNotFoundError: - logger.error("%s (%s) is missing", modinfo.name, spec.origin) - raise - if not st.st_size: - raise ImportError(f"{spec.origin} is an empty file") - - def check_module_import(self, modinfo: ModuleInfo): - """Attempt to import module and report errors""" - spec = self.get_spec(modinfo) - self._check_file(modinfo, spec) - try: - with warnings.catch_warnings(): - # ignore deprecation warning from deprecated modules - warnings.simplefilter("ignore", DeprecationWarning) - bootstrap_load(spec) - except ImportError as e: - logger.error("%s failed to import: %s", modinfo.name, e) - raise - except Exception as e: - logger.exception("Importing extension '%s' failed!", modinfo.name) - raise - - def check_module_cross(self, modinfo: ModuleInfo): - """Sanity check for cross compiling""" - spec = self.get_spec(modinfo) - self._check_file(modinfo, spec) - - def rename_module(self, modinfo: ModuleInfo) -> None: - """Rename module file""" - if modinfo.state == ModuleState.BUILTIN: - logger.error("Cannot mark builtin module '%s' as failed!", modinfo.name) - return - - failed_name = f"{modinfo.name}_failed{self.ext_suffix}" - builddir_path = self.get_location(modinfo) - if builddir_path.is_symlink(): - symlink = builddir_path - module_path = builddir_path.resolve().relative_to(os.getcwd()) - failed_path = module_path.parent / failed_name - else: - symlink = None - module_path = builddir_path - failed_path = self.builddir / failed_name - - # remove old failed file - failed_path.unlink(missing_ok=True) - # remove symlink - if symlink is not None: - symlink.unlink(missing_ok=True) - # rename shared extension file - try: - module_path.rename(failed_path) - except FileNotFoundError: - logger.debug("Shared extension file '%s' does not exist.", module_path) - else: - logger.debug("Rename '%s' -> '%s'", module_path, failed_path) - - -def main(): - args = parser.parse_args() - if args.debug: - args.verbose = True - logging.basicConfig( - level=logging.DEBUG if args.debug else logging.INFO, - format="[%(levelname)s] %(message)s", - ) - - checker = ModuleChecker( - cross_compiling=args.cross_compiling, - strict=args.strict, - ) - if args.list_module_names: - names = checker.list_module_names(all=True) - for name in sorted(names): - print(name) - else: - checker.check() - checker.summary(verbose=args.verbose) - try: - checker.check_strict_build() - except RuntimeError as e: - parser.exit(1, f"\nError: {e}\n") - - -if __name__ == "__main__": - main() diff --git a/Tools/scripts/deepfreeze.py b/Tools/scripts/deepfreeze.py index d9c6030fc17c07..ac2076708a156f 100644 --- a/Tools/scripts/deepfreeze.py +++ b/Tools/scripts/deepfreeze.py @@ -1,9 +1,7 @@ """Deep freeze -The script may be executed by _bootstrap_python interpreter. -Shared library extension modules are not available in that case. -On Windows, and in cross-compilation cases, it is executed -by Python 3.10, and 3.11 features are not available. +The script is executed by _bootstrap_python interpreter. Shared library +extension modules are not available. """ import argparse import ast @@ -22,9 +20,6 @@ verbose = False identifiers, strings = get_identifiers_and_strings() -# This must be kept in sync with opcode.py -RESUME = 151 - def isprintable(b: bytes) -> bool: return all(0x20 <= c < 0x7f for c in b) @@ -120,7 +115,6 @@ def __init__(self, file: TextIO) -> None: self.write('#include "Python.h"') self.write('#include "internal/pycore_gc.h"') self.write('#include "internal/pycore_code.h"') - self.write('#include "internal/pycore_frame.h"') self.write('#include "internal/pycore_long.h"') self.write("") @@ -195,6 +189,7 @@ def generate_unicode(self, name: str, s: str) -> str: else: self.write("PyCompactUnicodeObject _compact;") self.write(f"{datatype} _data[{len(s)+1}];") + self.deallocs.append(f"_PyStaticUnicode_Dealloc((PyObject *)&{name});") with self.block(f"{name} =", ";"): if ascii: with self.block("._ascii =", ","): @@ -217,9 +212,6 @@ def generate_unicode(self, name: str, s: str) -> str: self.write(f".kind = {kind},") self.write(".compact = 1,") self.write(".ascii = 0,") - utf8 = s.encode('utf-8') - self.write(f'.utf8 = {make_string_literal(utf8)},') - self.write(f'.utf8_length = {len(utf8)},') with self.block(f"._data =", ","): for i in range(0, len(s), 16): data = s[i:i+16] @@ -258,11 +250,9 @@ def generate_code(self, name: str, code: types.CodeType) -> str: self.write(f".co_exceptiontable = {co_exceptiontable},") self.field(code, "co_flags") self.write(".co_warmup = QUICKENING_INITIAL_WARMUP_VALUE,") - self.write("._co_linearray_entry_size = 0,") self.field(code, "co_argcount") self.field(code, "co_posonlyargcount") self.field(code, "co_kwonlyargcount") - self.write(f".co_framesize = {code.co_stacksize + len(localsplusnames)} + FRAME_SPECIALS_SIZE,") self.field(code, "co_stacksize") self.field(code, "co_firstlineno") self.write(f".co_nlocalsplus = {len(localsplusnames)},") @@ -276,13 +266,7 @@ def generate_code(self, name: str, code: types.CodeType) -> str: self.write(f".co_name = {co_name},") self.write(f".co_qualname = {co_qualname},") self.write(f".co_linetable = {co_linetable},") - self.write(f"._co_code = NULL,") - self.write("._co_linearray = NULL,") self.write(f".co_code_adaptive = {co_code_adaptive},") - for i, op in enumerate(code.co_code[::2]): - if op == RESUME: - self.write(f"._co_firsttraceable = {i},") - break name_as_code = f"(PyCodeObject *)&{name}" self.deallocs.append(f"_PyStaticCode_Dealloc({name_as_code});") self.interns.append(f"_PyStaticCode_InternStrings({name_as_code})") @@ -361,12 +345,7 @@ def generate_complex(self, name: str, z: complex) -> str: return f"&{name}.ob_base" def generate_frozenset(self, name: str, fs: FrozenSet[object]) -> str: - try: - fs = sorted(fs) - except TypeError: - # frozen set with incompatible types, fallback to repr() - fs = sorted(fs, key=repr) - ret = self.generate_tuple(name, tuple(fs)) + ret = self.generate_tuple(name, tuple(sorted(fs))) self.write("// TODO: The above tuple should be a frozenset") return ret diff --git a/Tools/scripts/freeze_modules.py b/Tools/scripts/freeze_modules.py index aa1e4fe2ea0f44..dd208c78471943 100644 --- a/Tools/scripts/freeze_modules.py +++ b/Tools/scripts/freeze_modules.py @@ -8,6 +8,7 @@ import os import ntpath import posixpath +import sys import argparse from update_file import updating_file_with_tmpfile diff --git a/Tools/scripts/generate_global_objects.py b/Tools/scripts/generate_global_objects.py index 0432bf50cf9483..2180acd7ea94bc 100644 --- a/Tools/scripts/generate_global_objects.py +++ b/Tools/scripts/generate_global_objects.py @@ -14,7 +14,6 @@ 'DUNDER', # Objects/typeobject.c 'RDUNDER', # Objects/typeobject.c 'SPECIAL', # Objects/weakrefobject.c - 'NAME', # Objects/typeobject.c } IDENTIFIERS = [ # from ADD() Python/_warnings.c @@ -43,27 +42,11 @@ # from SLOT* in Objects/typeobject.c '__abs__', '__add__', - '__aiter__', '__and__', - '__anext__', - '__await__', - '__bool__', - '__call__', - '__contains__', - '__del__', - '__delattr__', - '__delete__', - '__delitem__', - '__eq__', + '__divmod__', '__float__', '__floordiv__', - '__ge__', - '__get__', - '__getattr__', - '__getattribute__', '__getitem__', - '__gt__', - '__hash__', '__iadd__', '__iand__', '__ifloordiv__', @@ -71,34 +54,24 @@ '__imatmul__', '__imod__', '__imul__', - '__index__', - '__init__', '__int__', '__invert__', '__ior__', - '__ipow__', '__irshift__', '__isub__', - '__iter__', '__itruediv__', '__ixor__', - '__le__', - '__len__', '__lshift__', - '__lt__', '__matmul__', '__mod__', '__mul__', - '__ne__', '__neg__', - '__new__', - '__next__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', - '__repr__', + '__rdivmod__', '__rfloordiv__', '__rlshift__', '__rmatmul__', @@ -111,15 +84,10 @@ '__rsub__', '__rtruediv__', '__rxor__', - '__set__', - '__setattr__', - '__setitem__', '__str__', '__sub__', '__truediv__', '__xor__', - '__divmod__', - '__rdivmod__', ] @@ -269,7 +237,7 @@ def generate_runtime_init(identifiers, strings): assert nsmallposints and nsmallnegints # Then target the runtime initializer. - filename = os.path.join(INTERNAL, 'pycore_runtime_init_generated.h') + filename = os.path.join(INTERNAL, 'pycore_runtime_init.h') # Read the non-generated part of the file. with open(filename) as infile: @@ -282,7 +250,6 @@ def generate_runtime_init(identifiers, strings): # Generate the file. with open_for_changes(filename, orig) as outfile: - immortal_objects = [] printer = Printer(outfile) printer.write(before) printer.write(START) @@ -292,62 +259,31 @@ def generate_runtime_init(identifiers, strings): with printer.block('.small_ints =', ','): for i in range(-nsmallnegints, nsmallposints): printer.write(f'_PyLong_DIGIT_INIT({i}),') - immortal_objects.append(f'(PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + {i}]') printer.write('') # Global bytes objects. printer.write('.bytes_empty = _PyBytes_SIMPLE_INIT(0, 0),') - immortal_objects.append(f'(PyObject *)&_Py_SINGLETON(bytes_empty)') with printer.block('.bytes_characters =', ','): for i in range(256): printer.write(f'_PyBytes_CHAR_INIT({i}),') - immortal_objects.append(f'(PyObject *)&_Py_SINGLETON(bytes_characters)[{i}]') printer.write('') # Global strings. with printer.block('.strings =', ','): with printer.block('.literals =', ','): for literal, name in sorted(strings.items(), key=lambda x: x[1]): printer.write(f'INIT_STR({name}, "{literal}"),') - immortal_objects.append(f'(PyObject *)&_Py_STR({name})') with printer.block('.identifiers =', ','): for name in sorted(identifiers): assert name.isidentifier(), name printer.write(f'INIT_ID({name}),') - immortal_objects.append(f'(PyObject *)&_Py_ID({name})') with printer.block('.ascii =', ','): for i in range(128): printer.write(f'_PyASCIIObject_INIT("\\x{i:02x}"),') - immortal_objects.append(f'(PyObject *)&_Py_SINGLETON(strings).ascii[{i}]') with printer.block('.latin1 =', ','): for i in range(128, 256): - utf8 = ['"'] - for c in chr(i).encode('utf-8'): - utf8.append(f"\\x{c:02x}") - utf8.append('"') - printer.write(f'_PyUnicode_LATIN1_INIT("\\x{i:02x}", {"".join(utf8)}),') - immortal_objects.append(f'(PyObject *)&_Py_SINGLETON(strings).latin1[{i} - 128]') + printer.write(f'_PyUnicode_LATIN1_INIT("\\x{i:02x}"),') printer.write('') with printer.block('.tuple_empty =', ','): printer.write('.ob_base = _PyVarObject_IMMORTAL_INIT(&PyTuple_Type, 0)') - immortal_objects.append(f'(PyObject *)&_Py_SINGLETON(tuple_empty)') - printer.write('') - printer.write("static inline void") - with printer.block("_PyUnicode_InitStaticStrings(void)"): - printer.write(f'PyObject *string;') - for i in sorted(identifiers): - # This use of _Py_ID() is ignored by iter_global_strings() - # since iter_files() ignores .h files. - printer.write(f'string = &_Py_ID({i});') - printer.write(f'PyUnicode_InternInPlace(&string);') - printer.write('') - printer.write('#ifdef Py_DEBUG') - printer.write("static inline void") - with printer.block("_PyStaticObjects_CheckRefcnt(void)"): - for i in immortal_objects: - with printer.block(f'if (Py_REFCNT({i}) < _PyObject_IMMORTAL_REFCNT)', ';'): - printer.write(f'_PyObject_Dump({i});') - printer.write(f'Py_FatalError("immortal object has less refcnt than ' - 'expected _PyObject_IMMORTAL_REFCNT");') - printer.write('#endif') printer.write(END) printer.write(after) @@ -378,4 +314,7 @@ def main() -> None: if __name__ == '__main__': - main() + import argparse + parser = argparse.ArgumentParser() + args = parser.parse_args() + main(**vars(args)) diff --git a/Tools/scripts/generate_opcode_h.py b/Tools/scripts/generate_opcode_h.py index 9ff264af9cdc2b..e1f4f01ae1de0c 100644 --- a/Tools/scripts/generate_opcode_h.py +++ b/Tools/scripts/generate_opcode_h.py @@ -20,8 +20,11 @@ """.lstrip() footer = """ +#define HAS_ARG(op) ((op) >= HAVE_ARGUMENT) -#define IS_PSEUDO_OPCODE(op) (((op) >= MIN_PSEUDO_OPCODE) && ((op) <= MAX_PSEUDO_OPCODE)) +/* Reserve some bytecodes for internal use in the compiler. + * The value of 240 is arbitrary. */ +#define IS_ARTIFICIAL(op) ((op) > 240) #ifdef __cplusplus } @@ -60,8 +63,8 @@ def write_int_array_from_ops(name, ops, out): bits = 0 for op in ops: bits |= 1<<op - out.write(f"static const uint32_t {name}[9] = {{\n") - for i in range(9): + out.write(f"static const uint32_t {name}[8] = {{\n") + for i in range(8): out.write(f" {bits & UINT32_MASK}U,\n") bits >>= 32 assert bits == 0 @@ -78,19 +81,10 @@ def main(opcode_py, outfile='Include/opcode.h', internaloutfile='Include/interna exec(code, opcode) opmap = opcode['opmap'] opname = opcode['opname'] - hasarg = opcode['hasarg'] hasconst = opcode['hasconst'] hasjrel = opcode['hasjrel'] hasjabs = opcode['hasjabs'] - is_pseudo = opcode['is_pseudo'] - _pseudo_ops = opcode['_pseudo_ops'] - - HAVE_ARGUMENT = opcode["HAVE_ARGUMENT"] - MIN_PSEUDO_OPCODE = opcode["MIN_PSEUDO_OPCODE"] - MAX_PSEUDO_OPCODE = opcode["MAX_PSEUDO_OPCODE"] - - NUM_OPCODES = len(opname) - used = [ False ] * len(opname) + used = [ False ] * 256 next_op = 1 for name, op in opmap.items(): @@ -114,23 +108,16 @@ def main(opcode_py, outfile='Include/opcode.h', internaloutfile='Include/interna for name in opname: if name in opmap: - op = opmap[name] - if op == HAVE_ARGUMENT: - fobj.write(DEFINE.format("HAVE_ARGUMENT", HAVE_ARGUMENT)) - if op == MIN_PSEUDO_OPCODE: - fobj.write(DEFINE.format("MIN_PSEUDO_OPCODE", MIN_PSEUDO_OPCODE)) - - fobj.write(DEFINE.format(name, op)) - - if op == MAX_PSEUDO_OPCODE: - fobj.write(DEFINE.format("MAX_PSEUDO_OPCODE", MAX_PSEUDO_OPCODE)) - + fobj.write(DEFINE.format(name, opmap[name])) + if name == 'POP_EXCEPT': # Special entry for HAVE_ARGUMENT + fobj.write(DEFINE.format("HAVE_ARGUMENT", opcode["HAVE_ARGUMENT"])) for name, op in specialized_opmap.items(): fobj.write(DEFINE.format(name, op)) iobj.write("\nextern const uint8_t _PyOpcode_Caches[256];\n") iobj.write("\nextern const uint8_t _PyOpcode_Deopt[256];\n") + iobj.write("\nextern const uint8_t _PyOpcode_Original[256];\n") iobj.write("\n#ifdef NEED_OPCODE_TABLES\n") write_int_array_from_ops("_PyOpcode_RelativeJump", opcode['hasjrel'], iobj) write_int_array_from_ops("_PyOpcode_Jump", opcode['hasjrel'] + opcode['hasjabs'], iobj) @@ -142,9 +129,8 @@ def main(opcode_py, outfile='Include/opcode.h', internaloutfile='Include/interna iobj.write("};\n") deoptcodes = {} - for basic, op in opmap.items(): - if not is_pseudo(op): - deoptcodes[basic] = basic + for basic in opmap: + deoptcodes[basic] = basic for basic, family in opcode["_specializations"].items(): for specialized in family: deoptcodes[specialized] = basic @@ -152,19 +138,18 @@ def main(opcode_py, outfile='Include/opcode.h', internaloutfile='Include/interna for opt, deopt in sorted(deoptcodes.items()): iobj.write(f" [{opt}] = {deopt},\n") iobj.write("};\n") + iobj.write("\nconst uint8_t _PyOpcode_Original[256] = {\n") + for opt, deopt in sorted(deoptcodes.items()): + if opt.startswith("EXTENDED_ARG"): + deopt = "EXTENDED_ARG_QUICK" + iobj.write(f" [{opt}] = {deopt},\n") + iobj.write("};\n") iobj.write("#endif // NEED_OPCODE_TABLES\n") - fobj.write("\n") - fobj.write("#define HAS_ARG(op) ((((op) >= HAVE_ARGUMENT) && (!IS_PSEUDO_OPCODE(op)))\\") - for op in _pseudo_ops: - if opmap[op] in hasarg: - fobj.write(f"\n || ((op) == {op}) \\") - fobj.write("\n )\n") - fobj.write("\n") fobj.write("#define HAS_CONST(op) (false\\") for op in hasconst: - fobj.write(f"\n || ((op) == {opname[op]}) \\") + fobj.write(f"\n || ((op) == {op}) \\") fobj.write("\n )\n") fobj.write("\n") @@ -173,7 +158,7 @@ def main(opcode_py, outfile='Include/opcode.h', internaloutfile='Include/interna iobj.write("\n") iobj.write("#ifdef Py_DEBUG\n") - iobj.write(f"static const char *const _PyOpcode_OpName[{NUM_OPCODES}] = {{\n") + iobj.write("static const char *const _PyOpcode_OpName[256] = {\n") for op, name in enumerate(opname_including_specialized): if name[0] != "<": op = name diff --git a/Tools/scripts/generate_re_casefix.py b/Tools/scripts/generate_re_casefix.py index 625b0658d97d1b..00b048b5d716c3 100755 --- a/Tools/scripts/generate_re_casefix.py +++ b/Tools/scripts/generate_re_casefix.py @@ -2,6 +2,7 @@ # This script generates Lib/re/_casefix.py. import collections +import re import sys import unicodedata diff --git a/Tools/scripts/generate_stdlib_module_names.py b/Tools/scripts/generate_stdlib_module_names.py index 92100bd06509a5..fe1e429ebce175 100644 --- a/Tools/scripts/generate_stdlib_module_names.py +++ b/Tools/scripts/generate_stdlib_module_names.py @@ -7,11 +7,11 @@ import sys import sysconfig -from check_extension_modules import ModuleChecker - SRC_DIR = os.path.dirname(os.path.dirname(os.path.dirname(__file__))) STDLIB_PATH = os.path.join(SRC_DIR, 'Lib') +MODULES_SETUP = os.path.join(SRC_DIR, 'Modules', 'Setup') +SETUP_PY = os.path.join(SRC_DIR, 'setup.py') IGNORE = { '__init__', @@ -35,12 +35,30 @@ '_xxtestfuzz', 'distutils.tests', 'idlelib.idle_test', + 'lib2to3.tests', 'test', 'xxlimited', 'xxlimited_35', 'xxsubtype', } +# Windows extension modules +WINDOWS_MODULES = ( + '_msi', + '_overlapped', + '_testconsole', + '_winapi', + 'msvcrt', + 'nt', + 'winreg', + 'winsound' +) + +# macOS extension modules +MACOS_MODULES = ( + '_scproxy', +) + # Pure Python modules (Lib/*.py) def list_python_modules(names): for filename in os.listdir(STDLIB_PATH): @@ -63,11 +81,37 @@ def list_packages(names): names.add(name) -# Built-in and extension modules built by Modules/Setup* -# includes Windows and macOS extensions. +# Extension modules built by setup.py +def list_setup_extensions(names): + cmd = [sys.executable, SETUP_PY, "-q", "build", "--list-module-names"] + output = subprocess.check_output(cmd) + output = output.decode("utf8") + extensions = output.splitlines() + names |= set(extensions) + + +# Built-in and extension modules built by Modules/Setup def list_modules_setup_extensions(names): - checker = ModuleChecker() - names.update(checker.list_module_names(all=True)) + assign_var = re.compile("^[A-Z]+=") + + with open(MODULES_SETUP, encoding="utf-8") as modules_fp: + for line in modules_fp: + # Strip comment + line = line.partition("#")[0] + line = line.rstrip() + if not line: + continue + if assign_var.match(line): + # Ignore "VAR=VALUE" + continue + if line in ("*disabled*", "*shared*"): + continue + parts = line.split() + if len(parts) < 2: + continue + # "errno errnomodule.c" => write "errno" + name = parts[0] + names.add(name) # List frozen modules of the PyImport_FrozenModules list (Python/frozen.c). @@ -91,8 +135,9 @@ def list_frozen(names): def list_modules(): - names = set(sys.builtin_module_names) + names = set(sys.builtin_module_names) | set(WINDOWS_MODULES) | set(MACOS_MODULES) list_modules_setup_extensions(names) + list_setup_extensions(names) list_packages(names) list_python_modules(names) list_frozen(names) diff --git a/Tools/scripts/idle3 b/Tools/scripts/idle3 index 2b4f1b5c957209..d7332bca48b8ae 100755 --- a/Tools/scripts/idle3 +++ b/Tools/scripts/idle3 @@ -1,4 +1,4 @@ -#!/usr/bin/env python3 +#! /usr/bin/env python3 from idlelib.pyshell import main if __name__ == '__main__': diff --git a/Tools/scripts/parse_html5_entities.py b/Tools/scripts/parse_html5_entities.py index 1e5bdad2165548..c011328b0101bf 100755 --- a/Tools/scripts/parse_html5_entities.py +++ b/Tools/scripts/parse_html5_entities.py @@ -2,14 +2,10 @@ """ Utility for parsing HTML5 entity definitions available from: - https://html.spec.whatwg.org/entities.json - https://html.spec.whatwg.org/multipage/named-characters.html - -The page now contains the following note: - - "This list is static and will not be expanded or changed in the future." + http://dev.w3.org/html5/spec/entities.json Written by Ezio Melotti and Iuliia Proskurnia. + """ import os @@ -18,9 +14,7 @@ from urllib.request import urlopen from html.entities import html5 -PAGE_URL = 'https://html.spec.whatwg.org/multipage/named-characters.html' -ENTITIES_URL = 'https://html.spec.whatwg.org/entities.json' -HTML5_SECTION_START = '# HTML5 named character references' +entities_url = 'http://dev.w3.org/html5/spec/entities.json' def get_json(url): """Download the json file from the url and returns a decoded object.""" @@ -68,15 +62,9 @@ def write_items(entities, file=sys.stdout): # be before their equivalent lowercase version. keys = sorted(entities.keys()) keys = sorted(keys, key=str.lower) - print(HTML5_SECTION_START, file=file) - print(f'# Generated by {sys.argv[0]!r}\n' - f'# from {ENTITIES_URL} and\n' - f'# {PAGE_URL}.\n' - f'# Map HTML5 named character references to the ' - f'equivalent Unicode character(s).', file=file) print('html5 = {', file=file) for name in keys: - print(f' {name!r}: {entities[name]!a},', file=file) + print(' {!r}: {!a},'.format(name, entities[name]), file=file) print('}', file=file) @@ -84,8 +72,11 @@ def write_items(entities, file=sys.stdout): # without args print a diff between html.entities.html5 and new_html5 # with --create print the new html5 dict # with --patch patch the Lib/html/entities.py file - new_html5 = create_dict(get_json(ENTITIES_URL)) + new_html5 = create_dict(get_json(entities_url)) if '--create' in sys.argv: + print('# map the HTML5 named character references to the ' + 'equivalent Unicode character(s)') + print('# Generated by {}. Do not edit manually.'.format(__file__)) write_items(new_html5) elif '--patch' in sys.argv: fname = 'Lib/html/entities.py' @@ -93,7 +84,7 @@ def write_items(entities, file=sys.stdout): with open(fname) as f1, open(temp_fname, 'w') as f2: skip = False for line in f1: - if line.startswith(HTML5_SECTION_START): + if line.startswith('html5 = {'): write_items(new_html5, file=f2) skip = True continue diff --git a/Tools/scripts/parseentities.py b/Tools/scripts/parseentities.py new file mode 100755 index 00000000000000..0229d3af86ba78 --- /dev/null +++ b/Tools/scripts/parseentities.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python3 +""" Utility for parsing HTML entity definitions available from: + + http://www.w3.org/ as e.g. + http://www.w3.org/TR/REC-html40/HTMLlat1.ent + + Input is read from stdin, output is written to stdout in form of a + Python snippet defining a dictionary "entitydefs" mapping literal + entity name to character or numeric entity. + + Marc-Andre Lemburg, mal@lemburg.com, 1999. + Use as you like. NO WARRANTIES. + +""" +import re,sys + +entityRE = re.compile(r'<!ENTITY +(\w+) +CDATA +"([^"]+)" +-- +((?:.|\n)+?) *-->') + +def parse(text,pos=0,endpos=None): + + pos = 0 + if endpos is None: + endpos = len(text) + d = {} + while 1: + m = entityRE.search(text,pos,endpos) + if not m: + break + name,charcode,comment = m.groups() + d[name] = charcode,comment + pos = m.end() + return d + +def writefile(f,defs): + + f.write("entitydefs = {\n") + items = sorted(defs.items()) + for name, (charcode,comment) in items: + if charcode[:2] == '&#': + code = int(charcode[2:-1]) + if code < 256: + charcode = r"'\%o'" % code + else: + charcode = repr(charcode) + else: + charcode = repr(charcode) + comment = ' '.join(comment.split()) + f.write(" '%s':\t%s, \t# %s\n" % (name,charcode,comment)) + f.write('\n}\n') + +if __name__ == '__main__': + if len(sys.argv) > 1: + with open(sys.argv[1]) as infile: + text = infile.read() + else: + text = sys.stdin.read() + + defs = parse(text) + + if len(sys.argv) > 2: + with open(sys.argv[2],'w') as outfile: + writefile(outfile, defs) + else: + writefile(sys.stdout, defs) diff --git a/Tools/scripts/pathfix.py b/Tools/scripts/pathfix.py index f957b11547179d..d252321a21a172 100755 --- a/Tools/scripts/pathfix.py +++ b/Tools/scripts/pathfix.py @@ -27,6 +27,7 @@ # into a program for a different change to Python programs... import sys +import re import os from stat import * import getopt diff --git a/Tools/scripts/run_tests.py b/Tools/scripts/run_tests.py index 445a34ae3e8eee..48feb3f778ee8d 100644 --- a/Tools/scripts/run_tests.py +++ b/Tools/scripts/run_tests.py @@ -8,9 +8,7 @@ """ import os -import shlex import sys -import sysconfig import test.support @@ -21,37 +19,15 @@ def is_multiprocess_flag(arg): def is_resource_use_flag(arg): return arg.startswith('-u') or arg.startswith('--use') -def is_python_flag(arg): - return arg.startswith('-p') or arg.startswith('--python') - def main(regrtest_args): args = [sys.executable, '-u', # Unbuffered stdout and stderr '-W', 'default', # Warnings set to 'default' '-bb', # Warnings about bytes/bytearray + '-E', # Ignore environment variables ] - cross_compile = '_PYTHON_HOST_PLATFORM' in os.environ - if (hostrunner := os.environ.get("_PYTHON_HOSTRUNNER")) is None: - hostrunner = sysconfig.get_config_var("HOSTRUNNER") - if cross_compile: - # emulate -E, but keep PYTHONPATH + cross compile env vars, so - # test executable can load correct sysconfigdata file. - keep = { - '_PYTHON_PROJECT_BASE', - '_PYTHON_HOST_PLATFORM', - '_PYTHON_SYSCONFIGDATA_NAME', - 'PYTHONPATH' - } - environ = { - name: value for name, value in os.environ.items() - if not name.startswith(('PYTHON', '_PYTHON')) or name in keep - } - else: - environ = os.environ.copy() - args.append("-E") - # Allow user-specified interpreter options to override our defaults. args.extend(test.support.args_from_interpreter_flags()) @@ -62,30 +38,16 @@ def main(regrtest_args): if sys.platform == 'win32': args.append('-n') # Silence alerts under Windows if not any(is_multiprocess_flag(arg) for arg in regrtest_args): - if cross_compile and hostrunner: - # For now use only two cores for cross-compiled builds; - # hostrunner can be expensive. - args.extend(['-j', '2']) - else: - args.extend(['-j', '0']) # Use all CPU cores + args.extend(['-j', '0']) # Use all CPU cores if not any(is_resource_use_flag(arg) for arg in regrtest_args): args.extend(['-u', 'all,-largefile,-audio,-gui']) - - if cross_compile and hostrunner: - # If HOSTRUNNER is set and -p/--python option is not given, then - # use hostrunner to execute python binary for tests. - if not any(is_python_flag(arg) for arg in regrtest_args): - buildpython = sysconfig.get_config_var("BUILDPYTHON") - args.extend(["--python", f"{hostrunner} {buildpython}"]) - args.extend(regrtest_args) - - print(shlex.join(args)) + print(' '.join(args)) if sys.platform == 'win32': from subprocess import call sys.exit(call(args)) else: - os.execve(sys.executable, args, environ) + os.execv(sys.executable, args) if __name__ == '__main__': diff --git a/Tools/scripts/stable_abi.py b/Tools/scripts/stable_abi.py index d557e102ea8e69..f5a9f8d2dd617b 100755 --- a/Tools/scripts/stable_abi.py +++ b/Tools/scripts/stable_abi.py @@ -16,6 +16,7 @@ import textwrap import tomllib import difflib +import shutil import pprint import sys import os diff --git a/Tools/scripts/summarize_stats.py b/Tools/scripts/summarize_stats.py index 2e8261a4755b99..04d18790f0d792 100644 --- a/Tools/scripts/summarize_stats.py +++ b/Tools/scripts/summarize_stats.py @@ -7,6 +7,7 @@ import opcode from datetime import date import itertools +import argparse import sys if os.name == "nt": @@ -60,13 +61,12 @@ def print_specialization_stats(name, family_stats, defines): for key in ("specialization.success", "specialization.failure"): total_attempts += family_stats.get(key, 0) rows = [] - if total_attempts: - for key in ("specialization.success", "specialization.failure"): - label = key[len("specialization."):] - label = label[0].upper() + label[1:] - val = family_stats.get(key, 0) - rows.append((label, val, f"{100*val/total_attempts:0.1f}%")) - emit_table(("", "Count:", "Ratio:"), rows) + for key in ("specialization.success", "specialization.failure"): + label = key[len("specialization."):] + label = label[0].upper() + label[1:] + val = family_stats.get(key, 0) + rows.append((label, val, f"{100*val/total_attempts:0.1f}%")) + emit_table(("", "Count:", "Ratio:"), rows) total_failures = family_stats.get("specialization.failure", 0) failure_kinds = [ 0 ] * 30 for key in family_stats: @@ -188,12 +188,6 @@ def __exit__(*args): print("</details>") print() -def to_str(x): - if isinstance(x, int): - return format(x, ",d") - else: - return str(x) - def emit_table(header, rows): width = len(header) header_line = "|" @@ -209,8 +203,8 @@ def emit_table(header, rows): print(under_line) for row in rows: if width is not None and len(row) != width: - raise ValueError("Wrong number of elements in row '" + str(row) + "'") - print("|", " | ".join(to_str(i) for i in row), "|") + raise ValueError("Wrong number of elements in row '" + str(rows) + "'") + print("|", " | ".join(str(i) for i in row), "|") print() def emit_execution_counts(opcode_stats, total): @@ -257,18 +251,6 @@ def emit_specialization_overview(opcode_stats, total): ("Not specialized", not_specialized, f"{not_specialized*100/total:0.1f}%"), ("Specialized", specialized, f"{specialized*100/total:0.1f}%"), )) - for title, field in (("Deferred", "specialization.deferred"), ("Misses", "specialization.miss")): - total = 0 - counts = [] - for i, opcode_stat in enumerate(opcode_stats): - value = opcode_stat.get(field, 0) - counts.append((value, opname[i])) - total += value - counts.sort(reverse=True) - if total: - with Section(f"{title} by instruction", 3): - rows = [ (name, count, f"{100*count/total:0.1f}%") for (count, name) in counts[:10] ] - emit_table(("Name", "Count:", "Ratio:"), rows) def emit_call_stats(stats): stats_path = os.path.join(os.path.dirname(__file__), "../../Include/pystats.h") @@ -296,7 +278,7 @@ def emit_call_stats(stats): def emit_object_stats(stats): with Section("Object stats", summary="allocations, frees and dict materializatons"): total_materializations = stats.get("Object new values") - total_allocations = stats.get("Object allocations") + stats.get("Object allocations from freelist") + total_allocations = stats.get("Object allocations") total_increfs = stats.get("Object interpreter increfs") + stats.get("Object increfs") total_decrefs = stats.get("Object interpreter decrefs") + stats.get("Object decrefs") rows = [] diff --git a/Tools/scripts/verify_ensurepip_wheels.py b/Tools/scripts/verify_ensurepip_wheels.py deleted file mode 100755 index 044d1fd6b3cf2d..00000000000000 --- a/Tools/scripts/verify_ensurepip_wheels.py +++ /dev/null @@ -1,98 +0,0 @@ -#! /usr/bin/env python3 - -""" -Compare checksums for wheels in :mod:`ensurepip` against the Cheeseshop. - -When GitHub Actions executes the script, output is formatted accordingly. -https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-a-notice-message -""" - -import hashlib -import json -import os -import re -from pathlib import Path -from urllib.request import urlopen - -PACKAGE_NAMES = ("pip", "setuptools") -ENSURE_PIP_ROOT = Path(__file__).parent.parent.parent / "Lib/ensurepip" -WHEEL_DIR = ENSURE_PIP_ROOT / "_bundled" -ENSURE_PIP_INIT_PY_TEXT = (ENSURE_PIP_ROOT / "__init__.py").read_text(encoding="utf-8") -GITHUB_ACTIONS = os.getenv("GITHUB_ACTIONS") == "true" - - -def print_notice(file_path: str, message: str) -> None: - if GITHUB_ACTIONS: - message = f"::notice file={file_path}::{message}" - print(message, end="\n\n") - - -def print_error(file_path: str, message: str) -> None: - if GITHUB_ACTIONS: - message = f"::error file={file_path}::{message}" - print(message, end="\n\n") - - -def verify_wheel(package_name: str) -> bool: - # Find the package on disk - package_path = next(WHEEL_DIR.glob(f"{package_name}*.whl"), None) - if not package_path: - print_error("", f"Could not find a {package_name} wheel on disk.") - return False - - print(f"Verifying checksum for {package_path}.") - - # Find the version of the package used by ensurepip - package_version_match = re.search( - f'_{package_name.upper()}_VERSION = "([^"]+)', ENSURE_PIP_INIT_PY_TEXT - ) - if not package_version_match: - print_error( - package_path, - f"No {package_name} version found in Lib/ensurepip/__init__.py.", - ) - return False - package_version = package_version_match[1] - - # Get the SHA 256 digest from the Cheeseshop - try: - raw_text = urlopen(f"https://pypi.org/pypi/{package_name}/json").read() - except (OSError, ValueError): - print_error(package_path, f"Could not fetch JSON metadata for {package_name}.") - return False - - release_files = json.loads(raw_text)["releases"][package_version] - for release_info in release_files: - if package_path.name != release_info["filename"]: - continue - expected_digest = release_info["digests"].get("sha256", "") - break - else: - print_error(package_path, f"No digest for {package_name} found from PyPI.") - return False - - # Compute the SHA 256 digest of the wheel on disk - actual_digest = hashlib.sha256(package_path.read_bytes()).hexdigest() - - print(f"Expected digest: {expected_digest}") - print(f"Actual digest: {actual_digest}") - - if actual_digest != expected_digest: - print_error( - package_path, f"Failed to verify the checksum of the {package_name} wheel." - ) - return False - - print_notice( - package_path, - f"Successfully verified the checksum of the {package_name} wheel.", - ) - return True - - -if __name__ == "__main__": - exit_status = 0 - for package_name in PACKAGE_NAMES: - if not verify_wheel(package_name): - exit_status = 1 - raise SystemExit(exit_status) diff --git a/Tools/ssl/multissltests.py b/Tools/ssl/multissltests.py index d64b4f66f5192b..82076808bfd372 100755 --- a/Tools/ssl/multissltests.py +++ b/Tools/ssl/multissltests.py @@ -35,6 +35,7 @@ from urllib2 import urlopen, HTTPError import re import shutil +import string import subprocess import sys import tarfile @@ -46,8 +47,8 @@ ] OPENSSL_RECENT_VERSIONS = [ - "1.1.1q", - "3.0.5" + "1.1.1n", + "3.0.2" ] LIBRESSL_OLD_VERSIONS = [ @@ -358,7 +359,7 @@ def recompile_pymods(self): env["LD_RUN_PATH"] = self.lib_dir log.info("Rebuilding Python modules") - cmd = ["make", "sharedmods", "checksharedmods"] + cmd = [sys.executable, os.path.join(PYTHONROOT, "setup.py"), "build"] self._subprocess_call(cmd, env=env) self.check_imports() @@ -472,7 +473,7 @@ def main(): start = datetime.now() if args.steps in {'modules', 'tests'}: - for name in ['Makefile.pre.in', 'Modules/_ssl.c']: + for name in ['setup.py', 'Modules/_ssl.c']: if not os.path.isfile(os.path.join(PYTHONROOT, name)): parser.error( "Must be executed from CPython build dir" diff --git a/Tools/unicode/genmap_tchinese.py b/Tools/unicode/genmap_tchinese.py deleted file mode 100644 index a416cf3d1faf9b..00000000000000 --- a/Tools/unicode/genmap_tchinese.py +++ /dev/null @@ -1,239 +0,0 @@ -# -# genmap_tchinese.py: Traditional Chinese Codecs Map Generator -# -# Original Author: Hye-Shik Chang <perky@FreeBSD.org> -# -import os - -from genmap_support import * - - -# ranges for (lead byte, follower byte) -BIG5_C1 = (0xa1, 0xfe) -BIG5_C2 = (0x40, 0xfe) -BIG5HKSCS_C1 = (0x87, 0xfe) -BIG5HKSCS_C2 = (0x40, 0xfe) - -MAPPINGS_BIG5 = 'https://unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/OTHER/BIG5.TXT' -MAPPINGS_CP950 = 'https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT' - -HKSCS_VERSION = '2004' -# The files for HKSCS mappings are available under a restrictive license. -# Users of the script need to download the files from the HKSARG CCLI website: -MAPPINGS_HKSCS = f'https://www.ccli.gov.hk/en/archive/terms_hkscs-{HKSCS_VERSION}-big5-iso.html' - - -def bh2s(code): - return ((code >> 8) - 0x87) * (0xfe - 0x40 + 1) + ((code & 0xff) - 0x40) - - -def split_bytes(code): - """Split 0xABCD into 0xAB, 0xCD""" - return code >> 8, code & 0xff - - -def parse_hkscs_map(fo): - fo.seek(0, 0) - table = [] - for line in fo: - line = line.split('#', 1)[0].strip() - # We expect 4 columns in supported HKSCS files: - # [1999]: unsupported - # [2001]: unsupported - # [2004]: Big-5; iso10646-1:1993; iso10646-1:2000; iso10646:2003+amd1 - # [2008]: Big-5; iso10646-1:1993; iso10646-1:2000; iso10646:2003+amd6 - # [2016]: not supported here--uses a json file instead - # - # In both supported cases, we only need the first and last column: - # * Big-5 is a hex string (always 4 digits) - # * iso10646:2003 is either a hex string (4 or 5 digits) or a sequence - # of hex strings like: `<code_point1,code_point2>` - try: - hkscs_col, _, _, uni_col = line.split() - hkscs = int(hkscs_col, 16) - seq = tuple(int(cp, 16) for cp in uni_col.strip('<>').split(',')) - except ValueError: - continue - table.append((hkscs, seq)) - return table - - -def make_hkscs_map(table): - decode_map = {} - encode_map_bmp, encode_map_notbmp = {}, {} - is_bmp_map = {} - sequences = [] - beginnings = {} - single_cp_table = [] - # Determine multi-codepoint sequences, and sequence beginnings that encode - # multiple multibyte (i.e. Big-5) codes. - for mbcode, cp_seq in table: - cp, *_ = cp_seq - if len(cp_seq) == 1: - single_cp_table.append((mbcode, cp)) - else: - sequences.append((mbcode, cp_seq)) - beginnings.setdefault(cp, []).append(mbcode) - # Decode table only cares about single code points (no sequences) currently - for mbcode, cp in single_cp_table: - b1, b2 = split_bytes(mbcode) - decode_map.setdefault(b1, {}) - decode_map[b1][b2] = cp & 0xffff - # Encode table needs to mark code points beginning a sequence as tuples. - for cp, mbcodes in beginnings.items(): - plane = cp >> 16 - if plane == 0: - encode_map = encode_map_bmp - elif plane == 2: - encode_map = encode_map_notbmp - is_bmp_map[bh2s(mbcodes[0])] = 1 - else: - assert False, 'only plane 0 (BMP) and plane 2 (SIP) allowed' - if len(mbcodes) == 1: - encode_value = mbcodes[0] - else: - encode_value = tuple(mbcodes) - uni_b1, uni_b2 = split_bytes(cp & 0xffff) - encode_map.setdefault(uni_b1, {}) - encode_map[uni_b1][uni_b2] = encode_value - - return decode_map, encode_map_bmp, encode_map_notbmp, is_bmp_map - - -def load_big5_map(): - mapfile = open_mapping_file('python-mappings/BIG5.txt', MAPPINGS_BIG5) - with mapfile: - big5decmap = loadmap(mapfile) - # big5 mapping fix: use the cp950 mapping for these characters as the file - # provided by unicode.org doesn't define a mapping. See notes in BIG5.txt. - # Since U+5341, U+5345, U+FF0F, U+FF3C already have a big5 mapping, no - # roundtrip compatibility is guaranteed for those. - for m in """\ - 0xA15A 0x2574 - 0xA1C3 0xFFE3 - 0xA1C5 0x02CD - 0xA1FE 0xFF0F - 0xA240 0xFF3C - 0xA2CC 0x5341 - 0xA2CE 0x5345""".splitlines(): - bcode, ucode = list(map(eval, m.split())) - big5decmap[bcode >> 8][bcode & 0xff] = ucode - # encoding map - big5encmap = {} - for c1, m in list(big5decmap.items()): - for c2, code in list(m.items()): - big5encmap.setdefault(code >> 8, {}) - if code & 0xff not in big5encmap[code >> 8]: - big5encmap[code >> 8][code & 0xff] = c1 << 8 | c2 - # fix unicode->big5 priority for the above-mentioned duplicate characters - big5encmap[0xFF][0x0F] = 0xA241 - big5encmap[0xFF][0x3C] = 0xA242 - big5encmap[0x53][0x41] = 0xA451 - big5encmap[0x53][0x45] = 0xA4CA - - return big5decmap, big5encmap - - -def load_cp950_map(): - mapfile = open_mapping_file('python-mappings/CP950.TXT', MAPPINGS_CP950) - with mapfile: - cp950decmap = loadmap(mapfile) - cp950encmap = {} - for c1, m in list(cp950decmap.items()): - for c2, code in list(m.items()): - cp950encmap.setdefault(code >> 8, {}) - if code & 0xff not in cp950encmap[code >> 8]: - cp950encmap[code >> 8][code & 0xff] = c1 << 8 | c2 - # fix unicode->big5 duplicated mapping priority - cp950encmap[0x53][0x41] = 0xA451 - cp950encmap[0x53][0x45] = 0xA4CA - return cp950decmap, cp950encmap - - -def main_tw(): - big5decmap, big5encmap = load_big5_map() - cp950decmap, cp950encmap = load_cp950_map() - - # CP950 extends Big5, and the codec can use the Big5 lookup tables - # for most entries. So the CP950 tables should only include entries - # that are not in Big5: - for c1, m in list(cp950encmap.items()): - for c2, code in list(m.items()): - if (c1 in big5encmap and c2 in big5encmap[c1] - and big5encmap[c1][c2] == code): - del cp950encmap[c1][c2] - for c1, m in list(cp950decmap.items()): - for c2, code in list(m.items()): - if (c1 in big5decmap and c2 in big5decmap[c1] - and big5decmap[c1][c2] == code): - del cp950decmap[c1][c2] - - with open('mappings_tw.h', 'w') as fp: - print_autogen(fp, os.path.basename(__file__)) - write_big5_maps(fp, 'BIG5', 'big5', big5decmap, big5encmap) - write_big5_maps(fp, 'CP950', 'cp950ext', cp950decmap, cp950encmap) - - -def write_big5_maps(fp, display_name, table_name, decode_map, encode_map): - print(f'Generating {display_name} decode map...') - writer = DecodeMapWriter(fp, table_name, decode_map) - writer.update_decode_map(BIG5_C1, BIG5_C2) - writer.generate() - print(f'Generating {display_name} encode map...') - writer = EncodeMapWriter(fp, table_name, encode_map) - writer.generate() - - -class HintsWriter: - filler_class = BufferedFiller - - def __init__(self, fp, prefix, isbmpmap): - self.fp = fp - self.prefix = prefix - self.isbmpmap = isbmpmap - self.filler = self.filler_class() - - def fillhints(self, hintfrom, hintto): - name = f'{self.prefix}_phint_{hintfrom}' - self.fp.write(f'static const unsigned char {name}[] = {{\n') - for msbcode in range(hintfrom, hintto+1, 8): - v = 0 - for c in range(msbcode, msbcode+8): - v |= self.isbmpmap.get(c, 0) << (c - msbcode) - self.filler.write('%d,' % v) - self.filler.printout(self.fp) - self.fp.write('};\n\n') - - -def main_hkscs(): - filename = f'python-mappings/hkscs-{HKSCS_VERSION}-big5-iso.txt' - with open_mapping_file(filename, MAPPINGS_HKSCS) as f: - table = parse_hkscs_map(f) - hkscsdecmap, hkscsencmap_bmp, hkscsencmap_nonbmp, isbmpmap = ( - make_hkscs_map(table) - ) - with open('mappings_hk.h', 'w') as fp: - print('Generating BIG5HKSCS decode map...') - print_autogen(fp, os.path.basename(__file__)) - writer = DecodeMapWriter(fp, 'big5hkscs', hkscsdecmap) - writer.update_decode_map(BIG5HKSCS_C1, BIG5HKSCS_C2) - writer.generate() - - print('Generating BIG5HKSCS decode map Unicode plane hints...') - writer = HintsWriter(fp, 'big5hkscs', isbmpmap) - writer.fillhints(bh2s(0x8740), bh2s(0xa0fe)) - writer.fillhints(bh2s(0xc6a1), bh2s(0xc8fe)) - writer.fillhints(bh2s(0xf9d6), bh2s(0xfefe)) - - print('Generating BIG5HKSCS encode map (BMP)...') - writer = EncodeMapWriter(fp, 'big5hkscs_bmp', hkscsencmap_bmp) - writer.generate() - - print('Generating BIG5HKSCS encode map (non-BMP)...') - writer = EncodeMapWriter(fp, 'big5hkscs_nonbmp', hkscsencmap_nonbmp) - writer.generate() - - -if __name__ == '__main__': - main_tw() - main_hkscs() diff --git a/Tools/unicode/makeunicodedata.py b/Tools/unicode/makeunicodedata.py index 554392c1c5c0e1..489484443aab6e 100644 --- a/Tools/unicode/makeunicodedata.py +++ b/Tools/unicode/makeunicodedata.py @@ -44,7 +44,7 @@ # * Doc/library/stdtypes.rst, and # * Doc/library/unicodedata.rst # * Doc/reference/lexical_analysis.rst (two occurrences) -UNIDATA_VERSION = "15.0.0" +UNIDATA_VERSION = "14.0.0" UNICODE_DATA = "UnicodeData%s.txt" COMPOSITION_EXCLUSIONS = "CompositionExclusions%s.txt" EASTASIAN_WIDTH = "EastAsianWidth%s.txt" @@ -77,8 +77,7 @@ "PDF", "EN", "ES", "ET", "AN", "CS", "NSM", "BN", "B", "S", "WS", "ON", "LRI", "RLI", "FSI", "PDI" ] -# "N" needs to be the first entry, see the comment in makeunicodedata -EASTASIANWIDTH_NAMES = [ "N", "H", "W", "Na", "A", "F" ] +EASTASIANWIDTH_NAMES = [ "F", "H", "W", "Na", "A", "N" ] MANDATORY_LINE_BREAKS = [ "BK", "CR", "LF", "NL" ] @@ -104,12 +103,11 @@ ('3400', '4DBF'), ('4E00', '9FFF'), ('20000', '2A6DF'), - ('2A700', '2B739'), + ('2A700', '2B738'), ('2B740', '2B81D'), ('2B820', '2CEA1'), ('2CEB0', '2EBE0'), ('30000', '3134A'), - ('31350', '323AF'), ] @@ -137,14 +135,6 @@ def maketables(trace=0): def makeunicodedata(unicode, trace): - # the default value of east_asian_width is "N", for unassigned code points - # not mentioned in EastAsianWidth.txt - # in addition there are some reserved but unassigned code points in CJK - # ranges that are classified as "W". code points in private use areas - # have a width of "A". both of these have entries in - # EastAsianWidth.txt - # see https://unicode.org/reports/tr11/#Unassigned - assert EASTASIANWIDTH_NAMES[0] == "N" dummy = (0, 0, 0, 0, 0, 0) table = [dummy] cache = {0: dummy} @@ -170,24 +160,15 @@ def makeunicodedata(unicode, trace): category, combining, bidirectional, mirrored, eastasianwidth, normalizationquickcheck ) - elif unicode.widths[char] is not None: - # an unassigned but reserved character, with a known - # east_asian_width - eastasianwidth = EASTASIANWIDTH_NAMES.index(unicode.widths[char]) - item = (0, 0, 0, 0, eastasianwidth, 0) - else: - continue - - # add entry to index and item tables - i = cache.get(item) - if i is None: - cache[item] = i = len(table) - table.append(item) - index[char] = i + # add entry to index and item tables + i = cache.get(item) + if i is None: + cache[item] = i = len(table) + table.append(item) + index[char] = i # 2) decomposition data - decomp_data_cache = {} decomp_data = [0] decomp_prefix = [""] decomp_index = [0] * len(unicode.chars) @@ -226,15 +207,12 @@ def makeunicodedata(unicode, trace): comp_first[l] = 1 comp_last[r] = 1 comp_pairs.append((l,r,char)) - key = tuple(decomp) - i = decomp_data_cache.get(key, -1) - if i == -1: + try: + i = decomp_data.index(decomp) + except ValueError: i = len(decomp_data) decomp_data.extend(decomp) decomp_size = decomp_size + len(decomp) * 2 - decomp_data_cache[key] = i - else: - assert decomp_data[i:i+len(decomp)] == decomp else: i = 0 decomp_index[char] = i @@ -1103,7 +1081,6 @@ def __init__(self, version, cjk_check=True): for i in range(0, 0x110000): if table[i] is not None: table[i].east_asian_width = widths[i] - self.widths = widths for char, (p,) in UcdFile(DERIVED_CORE_PROPERTIES, version).expanded(): if table[char]: diff --git a/Tools/wasm/.editorconfig b/Tools/wasm/.editorconfig deleted file mode 100644 index da1aa6acaccc7e..00000000000000 --- a/Tools/wasm/.editorconfig +++ /dev/null @@ -1,7 +0,0 @@ -root = false # This extends the root .editorconfig - -[*.{html,js}] -trim_trailing_whitespace = true -insert_final_newline = true -indent_style = space -indent_size = 4 diff --git a/Tools/wasm/README.md b/Tools/wasm/README.md index fe9a1dc99b30f4..239eb90d0743c2 100644 --- a/Tools/wasm/README.md +++ b/Tools/wasm/README.md @@ -1,16 +1,11 @@ # Python WebAssembly (WASM) build -**WARNING: WASM support is work-in-progress! Lots of features are not working yet.** +**WARNING: WASM support is highly experimental! Lots of features are not working yet.** This directory contains configuration and helpers to facilitate cross -compilation of CPython to WebAssembly (WASM). Python supports Emscripten -(*wasm32-emscripten*) and WASI (*wasm32-wasi*) targets. Emscripten builds -run in modern browsers and JavaScript runtimes like *Node.js*. WASI builds -use WASM runtimes such as *wasmtime*. - -Users and developers are encouraged to use the script -`Tools/wasm/wasm_build.py`. The tool automates the build process and provides -assistance with installation of SDKs. +compilation of CPython to WebAssembly (WASM). For now we support +*wasm32-emscripten* builds for modern browser and for *Node.js*. WASI +(*wasm32-wasi*) is work-in-progress ## wasm32-emscripten build @@ -22,32 +17,22 @@ access the file system directly. Cross compiling to the wasm32-emscripten platform needs the [Emscripten](https://emscripten.org/) SDK and a build Python interpreter. -Emscripten 3.1.19 or newer are recommended. All commands below are relative +Emscripten 3.1.8 or newer are recommended. All commands below are relative to a repository checkout. Christian Heimes maintains a container image with Emscripten SDK, Python build dependencies, WASI-SDK, wasmtime, and several additional tools. -From within your local CPython repo clone, run one of the following commands: - ``` # Fedora, RHEL, CentOS -podman run --rm -ti -v $(pwd):/python-wasm/cpython:Z -w /python-wasm/cpython quay.io/tiran/cpythonbuild:emsdk3 +podman run --rm -ti -v $(pwd):/python-wasm/cpython:Z quay.io/tiran/cpythonbuild:emsdk3 # other -docker run --rm -ti -v $(pwd):/python-wasm/cpython -w /python-wasm/cpython quay.io/tiran/cpythonbuild:emsdk3 +docker run --rm -ti -v $(pwd):/python-wasm/cpython quay.io/tiran/cpythonbuild:emsdk3 ``` ### Compile a build Python interpreter -From within the container, run the following command: - -```shell -./Tools/wasm/wasm_build.py build -``` - -The command is roughly equivalent to: - ```shell mkdir -p builddir/build pushd builddir/build @@ -56,13 +41,13 @@ make -j$(nproc) popd ``` -### Cross-compile to wasm32-emscripten for browser +### Fetch and build additional emscripten ports ```shell -./Tools/wasm/wasm_build.py emscripten-browser +embuilder build zlib bzip2 ``` -The command is roughly equivalent to: +### Cross compile to wasm32-emscripten for browser ```shell mkdir -p builddir/emscripten-browser @@ -80,9 +65,12 @@ popd ``` Serve `python.html` with a local webserver and open the file in a browser. -Python comes with a minimal web server script that sets necessary HTTP -headers like COOP, COEP, and mimetypes. Run the script outside the container -and from the root of the CPython checkout. + +```shell +emrun builddir/emscripten-browser/python.html +``` + +or ```shell ./Tools/wasm/wasm_webserver.py @@ -92,25 +80,17 @@ and open http://localhost:8000/builddir/emscripten-browser/python.html . This directory structure enables the *C/C++ DevTools Support (DWARF)* to load C and header files with debug builds. - ### Cross compile to wasm32-emscripten for node ```shell -./Tools/wasm/wasm_build.py emscripten-browser-dl -``` - -The command is roughly equivalent to: - -```shell -mkdir -p builddir/emscripten-node-dl -pushd builddir/emscripten-node-dl +mkdir -p builddir/emscripten-node +pushd builddir/emscripten-node CONFIG_SITE=../../Tools/wasm/config.site-wasm32-emscripten \ emconfigure ../../configure -C \ --host=wasm32-unknown-emscripten \ --build=$(../../config.guess) \ --with-emscripten-target=node \ - --enable-wasm-dynamic-linking \ --with-build-python=$(pwd)/../build/python emmake make -j$(nproc) @@ -118,11 +98,9 @@ popd ``` ```shell -node --experimental-wasm-threads --experimental-wasm-bulk-memory --experimental-wasm-bigint builddir/emscripten-node-dl/python.js +node --experimental-wasm-threads --experimental-wasm-bulk-memory builddir/emscripten-node/python.js ``` -(``--experimental-wasm-bigint`` is not needed with recent NodeJS versions) - # wasm32-emscripten limitations and issues Emscripten before 3.1.8 has known bugs that can cause memory corruption and @@ -185,7 +163,7 @@ functions. - Heap memory and stack size are limited. Recursion or extensive memory consumption can crash Python. - Most stdlib modules with a dependency on external libraries are missing, - e.g. ``ctypes``, ``readline``, ``ssl``, and more. + e.g. ``ctypes``, ``readline``, ``sqlite3``, ``ssl``, and more. - Shared extension modules are not implemented yet. All extension modules are statically linked into the main binary. The experimental configure option ``--enable-wasm-dynamic-linking`` enables dynamic extensions @@ -195,8 +173,6 @@ functions. [bpo-46390](https://bugs.python.org/issue46390). - Python's object allocator ``obmalloc`` is disabled by default. - ``ensurepip`` is not available. -- Some ``ctypes`` features like ``c_longlong`` and ``c_longdouble`` may need - NodeJS option ``--experimental-wasm-bigint``. ## wasm32-emscripten in browsers @@ -217,15 +193,6 @@ Node builds use ``NODERAWFS``. - Node RawFS allows direct access to the host file system without need to perform ``FS.mount()`` call. -## wasm64-emscripten - -- wasm64 requires recent NodeJS and ``--experimental-wasm-memory64``. -- ``EM_JS`` functions must return ``BigInt()``. -- ``Py_BuildValue()`` format strings must match size of types. Confusing 32 - and 64 bits types leads to memory corruption, see - [gh-95876](https://github.com/python/cpython/issues/95876) and - [gh-95878](https://github.com/python/cpython/issues/95878). - # Hosting Python WASM builds The simple REPL terminal uses SharedArrayBuffer. For security reasons @@ -253,33 +220,9 @@ AddType application/wasm wasm # WASI (wasm32-wasi) -WASI builds require [WASI SDK](https://github.com/WebAssembly/wasi-sdk) 16.0+. - -## Cross-compile to wasm32-wasi - -The script ``wasi-env`` sets necessary compiler and linker flags as well as -``pkg-config`` overrides. The script assumes that WASI-SDK is installed in -``/opt/wasi-sdk`` or ``$WASI_SDK_PATH``. - -```shell -./Tools/wasm/wasm_build.py wasi -``` - -The command is roughly equivalent to: - -```shell -mkdir -p builddir/wasi -pushd builddir/wasi - -CONFIG_SITE=../../Tools/wasm/config.site-wasm32-wasi \ - ../../Tools/wasm/wasi-env ../../configure -C \ - --host=wasm32-unknown-wasi \ - --build=$(../../config.guess) \ - --with-build-python=$(pwd)/../build/python - -make -j$(nproc) -popd -``` +WASI builds require [WASI SDK](https://github.com/WebAssembly/wasi-sdk) 15.0+ +and currently [wasix](https://github.com/singlestore-labs/wasix) for POSIX +compatibility stubs. ## WASI limitations and issues (WASI SDK 15.0) @@ -292,30 +235,15 @@ are: call read/write/accept on a file descriptor that is passed into the process. - ``socket.gethostname()`` and host name resolution APIs like ``socket.gethostbyname()`` are not implemented and always fail. -- ``open(2)`` checks flags more strictly. Caller must pass either - ``O_RDONLY``, ``O_RDWR``, or ``O_WDONLY`` to ``os.open``. Directory file - descriptors must be created with flags ``O_RDONLY | O_DIRECTORY``. - ``chmod(2)`` is not available. It's not possible to modify file permissions, yet. A future version of WASI may provide a limited ``set_permissions`` API. -- User/group related features like ``os.chown()``, ``os.getuid``, etc. are - stubs or fail with ``ENOTSUP``. - File locking (``fcntl``) is not available. - ``os.pipe()``, ``os.mkfifo()``, and ``os.mknod()`` are not supported. - ``process_time`` does not work as expected because it's implemented using wall clock. -- ``os.umask()`` is a stub. +- ``os.umask`` is a stub. - ``sys.executable`` is empty. - ``/dev/null`` / ``os.devnull`` may not be available. -- ``os.utime*()`` is buggy in WASM SDK 15.0, see - [utimensat() with timespec=NULL sets wrong time](https://github.com/bytecodealliance/wasmtime/issues/4184) -- ``os.symlink()`` fails with ``PermissionError`` when attempting to create a - symlink with an absolute path with wasmtime 0.36.0. The wasmtime runtime - uses ``openat2(2)`` syscall with flag ``RESOLVE_BENEATH`` to open files. - The flag causes the syscall to reject symlinks with absolute paths. -- ``os.curdir`` (aka ``.``) seems to behave differently, which breaks some - ``importlib`` tests that add ``.`` to ``sys.path`` and indirectly - ``sys.path_importer_cache``. -- WASI runtime environments may not provide a dedicated temp directory. # Detect WebAssembly builds @@ -341,46 +269,26 @@ if os.name == "posix": ```python >>> import os, sys >>> os.uname() -posix.uname_result( - sysname='Emscripten', - nodename='emscripten', - release='3.1.19', - version='#1', - machine='wasm32' -) +posix.uname_result(sysname='Emscripten', nodename='emscripten', release='1.0', version='#1', machine='wasm32') >>> os.name 'posix' >>> sys.platform 'emscripten' >>> sys._emscripten_info sys._emscripten_info( - emscripten_version=(3, 1, 10), - runtime='Mozilla/5.0 (X11; Linux x86_64; rv:104.0) Gecko/20100101 Firefox/104.0', + emscripten_version=(3, 1, 8), + runtime='Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:99.0) Gecko/20100101 Firefox/99.0', pthreads=False, shared_memory=False ) -``` - -```python >>> sys._emscripten_info -sys._emscripten_info( - emscripten_version=(3, 1, 19), - runtime='Node.js v14.18.2', - pthreads=True, - shared_memory=True -) +sys._emscripten_info(emscripten_version=(3, 1, 8), runtime='Node.js v14.18.2', pthreads=True, shared_memory=True) ``` ```python >>> import os, sys >>> os.uname() -posix.uname_result( - sysname='wasi', - nodename='(none)', - release='0.0.0', - version='0.0.0', - machine='wasm32' -) +posix.uname_result(sysname='wasi', nodename='(none)', release='0.0.0', version='0.0.0', machine='wasm32') >>> os.name 'posix' >>> sys.platform @@ -415,90 +323,3 @@ Feature detection flags: * ``__wasm_bulk_memory__`` * ``__wasm_atomics__`` * ``__wasm_mutable_globals__`` - -## Install SDKs and dependencies manually - -In some cases (e.g. build bots) you may prefer to install build dependencies -directly on the system instead of using the container image. Total disk size -of SDKs and cached libraries is about 1.6 GB. - -### Install OS dependencies - -```shell -# Debian/Ubuntu -apt update -apt install -y git make xz-utils bzip2 curl python3-minimal ccache -``` - -```shell -# Fedora -dnf install -y git make xz bzip2 which ccache -``` - -### Install [Emscripten SDK](https://emscripten.org/docs/getting_started/downloads.html) - -**NOTE**: Follow the on-screen instructions how to add the SDK to ``PATH``. - -```shell -git clone https://github.com/emscripten-core/emsdk.git /opt/emsdk -/opt/emsdk/emsdk install latest -/opt/emsdk/emsdk activate latest -``` - -### Optionally: enable ccache for EMSDK - -The ``EM_COMPILER_WRAPPER`` must be set after the EMSDK environment is -sourced. Otherwise the source script removes the environment variable. - -``` -. /opt/emsdk/emsdk_env.sh -EM_COMPILER_WRAPPER=ccache -``` - -### Optionally: pre-build and cache static libraries - -Emscripten SDK provides static builds of core libraries without PIC -(position-independent code). Python builds with ``dlopen`` support require -PIC. To populate the build cache, run: - -```shell -. /opt/emsdk/emsdk_env.sh -embuilder build zlib bzip2 MINIMAL_PIC -embuilder build --pic zlib bzip2 MINIMAL_PIC -``` - -### Install [WASI-SDK](https://github.com/WebAssembly/wasi-sdk) - -**NOTE**: WASI-SDK's clang may show a warning on Fedora: -``/lib64/libtinfo.so.6: no version information available``, -[RHBZ#1875587](https://bugzilla.redhat.com/show_bug.cgi?id=1875587). The -warning can be ignored. - -```shell -export WASI_VERSION=16 -export WASI_VERSION_FULL=${WASI_VERSION}.0 -curl -sSf -L -O https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_VERSION}/wasi-sdk-${WASI_VERSION_FULL}-linux.tar.gz -mkdir -p /opt/wasi-sdk -tar --strip-components=1 -C /opt/wasi-sdk -xvf wasi-sdk-${WASI_VERSION_FULL}-linux.tar.gz -rm -f wasi-sdk-${WASI_VERSION_FULL}-linux.tar.gz -``` - -### Install [wasmtime](https://github.com/bytecodealliance/wasmtime) WASI runtime - -wasmtime 0.38 or newer is required. - -```shell -curl -sSf -L -o ~/install-wasmtime.sh https://wasmtime.dev/install.sh -chmod +x ~/install-wasmtime.sh -~/install-wasmtime.sh --version v0.38.0 -ln -srf -t /usr/local/bin/ ~/.wasmtime/bin/wasmtime -``` - - -### WASI debugging - -* ``wasmtime run -g`` generates debugging symbols for gdb and lldb. The - feature is currently broken, see - https://github.com/bytecodealliance/wasmtime/issues/4669 . -* The environment variable ``RUST_LOG=wasi_common`` enables debug and - trace logging. diff --git a/Tools/wasm/config.site-wasm32-emscripten b/Tools/wasm/config.site-wasm32-emscripten index b695a7bf8f04da..33636648eaa520 100644 --- a/Tools/wasm/config.site-wasm32-emscripten +++ b/Tools/wasm/config.site-wasm32-emscripten @@ -43,17 +43,6 @@ ac_cv_func_symlinkat=no ac_cv_func_lchmod=no ac_cv_func_lchown=no -# geteuid / getegid are stubs and always return 0 (root). The stub breaks -# code that assume effective user root has special permissions. -ac_cv_func_geteuid=no -ac_cv_func_getegid=no -ac_cv_func_seteuid=no -ac_cv_func_setegid=no -ac_cv_func_getresuid=no -ac_cv_func_getresgid=no -ac_cv_func_setresuid=no -ac_cv_func_setresgid=no - # Syscalls not implemented in emscripten # [Errno 52] Function not implemented ac_cv_func_preadv2=no @@ -100,8 +89,5 @@ ac_cv_func_setresgid=no ac_cv_func_link=no ac_cv_func_linkat=no -# Emscripten's faccessat does not accept AT_* flags. -ac_cv_func_faccessat=no - # alarm signal is not delivered, may need a callback into the event loop? ac_cv_func_alarm=no diff --git a/Tools/wasm/config.site-wasm32-wasi b/Tools/wasm/config.site-wasm32-wasi index 893a0d132cda59..ee3fc830e3d8a3 100644 --- a/Tools/wasm/config.site-wasm32-wasi +++ b/Tools/wasm/config.site-wasm32-wasi @@ -26,17 +26,15 @@ ac_cv_func_mkfifo=no ac_cv_func_mkfifoat=no ac_cv_func_mknod=no ac_cv_func_mknodat=no -ac_cv_func_makedev=no # fdopendir() fails on SDK 15.0, # OSError: [Errno 28] Invalid argument: '.' ac_cv_func_fdopendir=no +# WASIX stubs we don't want to use. +ac_cv_func_kill=no + # WASI sockets are limited to operations on given socket fd and inet sockets. # Disable AF_UNIX and AF_PACKET support, see socketmodule.h. ac_cv_header_sys_un_h=no ac_cv_header_netpacket_packet_h=no - -# disable accept for WASM runtimes without sock_accept -#ac_cv_func_accept=no -#ac_cv_func_accept4=no diff --git a/Tools/wasm/python.html b/Tools/wasm/python.html index 17ffa0ea8bfeff..c8d17488b2e70d 100644 --- a/Tools/wasm/python.html +++ b/Tools/wasm/python.html @@ -7,7 +7,7 @@ <meta name="author" content="Katie Bell"> <meta name="description" content="Simple REPL for Python WASM"> <title>wasm-python terminal</title> - <link rel="stylesheet" href="https://unpkg.com/xterm@4.18.0/css/xterm.css" crossorigin integrity="sha384-4eEEn/eZgVHkElpKAzzPx/Kow/dTSgFk1BNe+uHdjHa+NkZJDh5Vqkq31+y7Eycd"/> + <link rel="stylesheet" href="https://unpkg.com/xterm@4.18.0/css/xterm.css" crossorigin/> <style> body { font-family: arial; @@ -32,7 +32,7 @@ padding: 6px 18px; } </style> - <script src="https://unpkg.com/xterm@4.18.0/lib/xterm.js" crossorigin integrity="sha384-yYdNmem1ioP5Onm7RpXutin5A8TimLheLNQ6tnMi01/ZpxXdAwIm2t4fJMx1Djs+"/></script> + <script src="https://unpkg.com/xterm@4.18.0/lib/xterm.js" crossorigin></script> <script type="module"> class WorkerManager { constructor(workerURL, standardIO, readyCallBack) { @@ -100,7 +100,6 @@ class WasmTerminal { constructor() { - this.inputBuffer = new BufferQueue(); this.input = '' this.resolveInput = null this.activeInput = false @@ -124,47 +123,28 @@ this.xterm.open(container); } + handleReadComplete(lastChar) { + this.resolveInput(this.input + lastChar) + this.activeInput = false + } + handleTermData = (data) => { + if (!this.activeInput) { + return + } const ord = data.charCodeAt(0); - data = data.replace(/\r(?!\n)/g, "\n") // Convert lone CRs to LF + let ofs; - // Handle pasted data - if (data.length > 1 && data.includes("\n")) { - let alreadyWrittenChars = 0; - // If line already had data on it, merge pasted data with it - if (this.input != '') { - this.inputBuffer.addData(this.input); - alreadyWrittenChars = this.input.length; - this.input = ''; - } - this.inputBuffer.addData(data); - // If input is active, write the first line - if (this.activeInput) { - let line = this.inputBuffer.nextLine(); - this.writeLine(line.slice(alreadyWrittenChars)); - this.resolveInput(line); - this.activeInput = false; - } - // When input isn't active, add to line buffer - } else if (!this.activeInput) { - // Skip non-printable characters - if (!(ord === 0x1b || ord == 0x7f || ord < 32)) { - this.inputBuffer.addData(data); - } // TODO: Handle ANSI escape sequences - } else if (ord === 0x1b) { + if (ord === 0x1b) { // Handle special characters } else if (ord < 32 || ord === 0x7f) { switch (data) { - case "\x0c": // CTRL+L - this.clear(); - break; - case "\n": // ENTER + case "\r": // ENTER case "\x0a": // CTRL+J case "\x0d": // CTRL+M - this.resolveInput(this.input + this.writeLine('\n')); - this.input = ''; - this.activeInput = false; + this.xterm.write('\r\n'); + this.handleReadComplete('\n'); break; case "\x7F": // BACKSPACE case "\x08": // CTRL+H @@ -177,12 +157,6 @@ } } - writeLine(line) { - this.xterm.write(line.slice(0, -1)) - this.xterm.write('\r\n'); - return line; - } - handleCursorInsert(data) { this.input += data; this.xterm.write(data) @@ -202,19 +176,9 @@ this.activeInput = true // Hack to allow stdout/stderr to finish before we figure out where input starts setTimeout(() => {this.inputStartCursor = this.xterm.buffer.active.cursorX}, 1) - // If line buffer has a line ready, send it immediately - if (this.inputBuffer.hasLineReady()) { - return new Promise((resolve, reject) => { - resolve(this.writeLine(this.inputBuffer.nextLine())); - this.activeInput = false; - }) - // If line buffer has an incomplete line, use it for the active line - } else if (this.inputBuffer.lastLineIsIncomplete()) { - // Hack to ensure cursor input start doesn't end up after user input - setTimeout(() => {this.handleCursorInsert(this.inputBuffer.nextLine())}, 1); - } return new Promise((resolve, reject) => { this.resolveInput = (value) => { + this.input = '' resolve(value) } }) @@ -224,44 +188,9 @@ this.xterm.clear(); } - print(charCode) { - let array = [charCode]; - if (charCode == 10) { - array = [13, 10]; // Replace \n with \r\n - } - this.xterm.write(new Uint8Array(array)); - } -} - -class BufferQueue { - constructor(xterm) { - this.buffer = [] - } - - isEmpty() { - return this.buffer.length == 0 - } - - lastLineIsIncomplete() { - return !this.isEmpty() && !this.buffer[this.buffer.length-1].endsWith("\n") - } - - hasLineReady() { - return !this.isEmpty() && this.buffer[0].endsWith("\n") - } - - addData(data) { - let lines = data.match(/.*(\n|$)/g) - if (this.lastLineIsIncomplete()) { - this.buffer[this.buffer.length-1] += lines.shift() - } - for (let line of lines) { - this.buffer.push(line) - } - } - - nextLine() { - return this.buffer.shift() + print(message) { + const normInput = message.replace(/[\r\n]+/g, "\n").replace(/\n/g, "\r\n"); + this.xterm.write(normInput); } } @@ -273,8 +202,8 @@ terminal.open(document.getElementById('terminal')) const stdio = { - stdout: (charCode) => { terminal.print(charCode) }, - stderr: (charCode) => { terminal.print(charCode) }, + stdout: (s) => { terminal.print(s) }, + stderr: (s) => { terminal.print(s) }, stdin: async () => { return await terminal.prompt() } diff --git a/Tools/wasm/python.worker.js b/Tools/wasm/python.worker.js index 1b794608fffe7b..c3a8bdf7d2fc29 100644 --- a/Tools/wasm/python.worker.js +++ b/Tools/wasm/python.worker.js @@ -35,11 +35,15 @@ class StdinBuffer { } } +const stdoutBufSize = 128; +const stdoutBuf = new Int32Array() +let index = 0; + const stdout = (charCode) => { if (charCode) { postMessage({ type: 'stdout', - stdout: charCode, + stdout: String.fromCharCode(charCode), }) } else { console.log(typeof charCode, charCode) @@ -50,7 +54,7 @@ const stderr = (charCode) => { if (charCode) { postMessage({ type: 'stderr', - stderr: charCode, + stderr: String.fromCharCode(charCode), }) } else { console.log(typeof charCode, charCode) diff --git a/Tools/wasm/wasi-env b/Tools/wasm/wasi-env deleted file mode 100755 index 48908b02e60b96..00000000000000 --- a/Tools/wasm/wasi-env +++ /dev/null @@ -1,76 +0,0 @@ -#!/bin/sh -set -e - -# function -usage() { - echo "wasi-env - Run command with WASI-SDK" - echo "" - echo "wasi-env is a helper to set various environment variables to" - echo "run configure and make with WASI-SDK. A WASI-SDK must be either" - echo "installed at /opt/wasi-sdk or the env var 'WASI_SDK_PATH' must" - echo "set to the root of a WASI-SDK." - echo "" - echo "Usage: wasi-env command [...]" - echo "" - echo " -h --help display this help and exit" - echo "" -} - -case $1 in - -h|--help) - usage - exit - ;; -esac - -if test -z "$1"; then - echo "ERROR: command required" >&2 - usage - exit 1 -fi - -WASI_SDK_PATH="${WASI_SDK_PATH:-/opt/wasi-sdk}" -WASI_SYSROOT="${WASI_SDK_PATH}/share/wasi-sysroot" - -if ! test -x "${WASI_SDK_PATH}/bin/clang"; then - echo "Error: ${WASI_SDK_PATH}/bin/clang does not exist." >&2 - exit 2 -fi - -CC="${WASI_SDK_PATH}/bin/clang" -CPP="${WASI_SDK_PATH}/bin/clang-cpp" -CXX="${WASI_SDK_PATH}/bin/clang++" - -# --sysroot is required if WASI-SDK is not installed in /opt/wasi-sdk. -if test "${WASI_SDK_PATH}" != "/opt/wasi-sdk"; then - CC="${CC} --sysroot=${WASI_SYSROOT}" - CPP="${CPP} --sysroot=${WASI_SYSROOT}" - CXX="${CXX} --sysroot=${WASI_SYSROOT}" -fi - -# use ccache if available -if command -v ccache >/dev/null 2>&1; then - CC="ccache ${CC}" - CPP="ccache ${CPP}" - CXX="ccache ${CXX}" -fi - -LDSHARED="${WASI_SDK_PATH}/bin/wasm-ld" -AR="${WASI_SDK_PATH}/bin/llvm-ar" -RANLIB="${WASI_SDK_PATH}/bin/ranlib" - -# instruct pkg-config to use sysroot -PKG_CONFIG_PATH="" -PKG_CONFIG_LIBDIR="${WASI_SYSROOT}/lib/pkgconfig:${WASI_SYSROOT}/share/pkgconfig" -PKG_CONFIG_SYSROOT_DIR="${WASI_SYSROOT}" - -PATH="${WASI_SDK_PATH}/bin:${PATH}" - -export WASI_SDK_PATH WASI_SYSROOT -export CC CPP CXX LDSHARED AR RANLIB -export CFLAGS LDFLAGS -export PKG_CONFIG_PATH PKG_CONFIG_LIBDIR PKG_CONFIG_SYSROOT_DIR -export PATH - -# no exec, it makes arvg[0] path absolute. -"$@" diff --git a/Tools/wasm/wasm_assets.py b/Tools/wasm/wasm_assets.py index a35acfd9387b41..fba70b9c9d0426 100755 --- a/Tools/wasm/wasm_assets.py +++ b/Tools/wasm/wasm_assets.py @@ -13,13 +13,18 @@ import pathlib import shutil import sys -import sysconfig import zipfile # source directory SRCDIR = pathlib.Path(__file__).parent.parent.parent.absolute() SRCDIR_LIB = SRCDIR / "Lib" +# sysconfig data relative to build dir. +SYSCONFIGDATA = pathlib.PurePath( + "build", + f"lib.emscripten-wasm32-{sys.version_info.major}.{sys.version_info.minor}", + "_sysconfigdata__emscripten_wasm32-emscripten.py", +) # Library directory relative to $(prefix). WASM_LIB = pathlib.PurePath("lib") @@ -77,6 +82,7 @@ "mailcap.py", "nntplib.py", "poplib.py", + "smtpd.py", "smtplib.py", "socketserver.py", "telnetlib.py", @@ -108,40 +114,22 @@ "_zoneinfo": ["zoneinfo/"], } -SYSCONFIG_NAMES = ( - "_sysconfigdata__emscripten_wasm32-emscripten", - "_sysconfigdata__emscripten_wasm32-emscripten", - "_sysconfigdata__wasi_wasm32-wasi", - "_sysconfigdata__wasi_wasm64-wasi", +# regression test sub directories +OMIT_SUBDIRS = ( + "ctypes/test/", + "tkinter/test/", + "unittest/test/", ) -def get_builddir(args: argparse.Namespace) -> pathlib.Path: - """Get builddir path from pybuilddir.txt - """ - with open("pybuilddir.txt", encoding="utf-8") as f: - builddir = f.read() - return pathlib.Path(builddir) - - -def get_sysconfigdata(args: argparse.Namespace) -> pathlib.Path: - """Get path to sysconfigdata relative to build root - """ - data_name = sysconfig._get_sysconfigdata_name() - if not data_name.startswith(SYSCONFIG_NAMES): - raise ValueError( - f"Invalid sysconfig data name '{data_name}'.", - SYSCONFIG_NAMES - ) - filename = data_name + ".py" - return args.builddir / filename - - def create_stdlib_zip( args: argparse.Namespace, *, optimize: int = 0, ) -> None: + def filterfunc(name: str) -> bool: + return not name.startswith(args.omit_subdirs_absolute) + with zipfile.PyZipFile( args.wasm_stdlib_zip, mode="w", compression=args.compression, optimize=optimize ) as pzf: @@ -155,14 +143,14 @@ def create_stdlib_zip( continue if entry.name.endswith(".py") or entry.is_dir(): # writepy() writes .pyc files (bytecode). - pzf.writepy(entry) + pzf.writepy(entry, filterfunc=filterfunc) def detect_extension_modules(args: argparse.Namespace): modules = {} # disabled by Modules/Setup.local ? - with open(args.buildroot / "Makefile") as f: + with open(args.builddir / "Makefile") as f: for line in f: if line.startswith("MODDISABLED_NAMES="): disabled = line.split("=", 1)[1].strip().split() @@ -176,13 +164,14 @@ def detect_extension_modules(args: argparse.Namespace): loc = {} exec(data, globals(), loc) - for key, value in loc["build_time_vars"].items(): - if not key.startswith("MODULE_") or not key.endswith("_STATE"): + for name, value in loc["build_time_vars"].items(): + if value not in {"yes", "missing", "disabled", "n/a"}: continue - if value not in {"yes", "disabled", "missing", "n/a"}: - raise ValueError(f"Unsupported value '{value}' for {key}") - - modname = key[7:-6].lower() + if not name.startswith("MODULE_"): + continue + if name.endswith(("_CFLAGS", "_DEPS", "_LDFLAGS")): + continue + modname = name.removeprefix("MODULE_").lower() if modname not in modules: modules[modname] = value == "yes" return modules @@ -194,8 +183,8 @@ def path(val: str) -> pathlib.Path: parser = argparse.ArgumentParser() parser.add_argument( - "--buildroot", - help="absolute path to build root", + "--builddir", + help="absolute build directory", default=pathlib.Path(".").absolute(), type=path, ) @@ -213,7 +202,7 @@ def main(): relative_prefix = args.prefix.relative_to(pathlib.Path("/")) args.srcdir = SRCDIR args.srcdir_lib = SRCDIR_LIB - args.wasm_root = args.buildroot / relative_prefix + args.wasm_root = args.builddir / relative_prefix args.wasm_stdlib_zip = args.wasm_root / WASM_STDLIB_ZIP args.wasm_stdlib = args.wasm_root / WASM_STDLIB args.wasm_dynload = args.wasm_root / WASM_DYNLOAD @@ -223,20 +212,21 @@ def main(): args.compression = zipfile.ZIP_DEFLATED args.compresslevel = 9 - args.builddir = get_builddir(args) - args.sysconfig_data = get_sysconfigdata(args) + args.sysconfig_data = args.builddir / SYSCONFIGDATA if not args.sysconfig_data.is_file(): - raise ValueError(f"sysconfigdata file {args.sysconfig_data} missing.") + raise ValueError(f"sysconfigdata file {SYSCONFIGDATA} missing.") extmods = detect_extension_modules(args) omit_files = list(OMIT_FILES) - if sysconfig.get_platform().startswith("emscripten"): - omit_files.extend(OMIT_NETWORKING_FILES) + omit_files.extend(OMIT_NETWORKING_FILES) for modname, modfiles in OMIT_MODULE_FILES.items(): if not extmods.get(modname): omit_files.extend(modfiles) args.omit_files_absolute = {args.srcdir_lib / name for name in omit_files} + args.omit_subdirs_absolute = tuple( + str(args.srcdir_lib / name) for name in OMIT_SUBDIRS + ) # Empty, unused directory for dynamic libs, but required for site initialization. args.wasm_dynload.mkdir(parents=True, exist_ok=True) diff --git a/Tools/wasm/wasm_build.py b/Tools/wasm/wasm_build.py deleted file mode 100755 index 63812c6f3153f2..00000000000000 --- a/Tools/wasm/wasm_build.py +++ /dev/null @@ -1,907 +0,0 @@ -#!/usr/bin/env python3 -"""Build script for Python on WebAssembly platforms. - - $ ./Tools/wasm/wasm_builder.py emscripten-browser build repl - $ ./Tools/wasm/wasm_builder.py emscripten-node-dl build test - $ ./Tools/wasm/wasm_builder.py wasi build test - -Primary build targets are "emscripten-node-dl" (NodeJS, dynamic linking), -"emscripten-browser", and "wasi". - -Emscripten builds require a recent Emscripten SDK. The tools looks for an -activated EMSDK environment (". /path/to/emsdk_env.sh"). System packages -(Debian, Homebrew) are not supported. - -WASI builds require WASI SDK and wasmtime. The tool looks for 'WASI_SDK_PATH' -and falls back to /opt/wasi-sdk. - -The 'build' Python interpreter must be rebuilt every time Python's byte code -changes. - - ./Tools/wasm/wasm_builder.py --clean build build - -""" -import argparse -import enum -import dataclasses -import logging -import os -import pathlib -import re -import shlex -import shutil -import socket -import subprocess -import sys -import sysconfig -import tempfile -import time -import warnings -import webbrowser - -# for Python 3.8 -from typing import Any, Callable, Dict, Iterable, List, Optional, Tuple, Union - -logger = logging.getLogger("wasm_build") - -SRCDIR = pathlib.Path(__file__).parent.parent.parent.absolute() -WASMTOOLS = SRCDIR / "Tools" / "wasm" -BUILDDIR = SRCDIR / "builddir" -CONFIGURE = SRCDIR / "configure" -SETUP_LOCAL = SRCDIR / "Modules" / "Setup.local" - -HAS_CCACHE = shutil.which("ccache") is not None - -# path to WASI-SDK root -WASI_SDK_PATH = pathlib.Path(os.environ.get("WASI_SDK_PATH", "/opt/wasi-sdk")) - -# path to Emscripten SDK config file. -# auto-detect's EMSDK in /opt/emsdk without ". emsdk_env.sh". -EM_CONFIG = pathlib.Path(os.environ.setdefault("EM_CONFIG", "/opt/emsdk/.emscripten")) -EMSDK_MIN_VERSION = (3, 1, 19) -EMSDK_BROKEN_VERSION = { - (3, 1, 14): "https://github.com/emscripten-core/emscripten/issues/17338", - (3, 1, 16): "https://github.com/emscripten-core/emscripten/issues/17393", - (3, 1, 20): "https://github.com/emscripten-core/emscripten/issues/17720", -} -_MISSING = pathlib.PurePath("MISSING") - -WASM_WEBSERVER = WASMTOOLS / "wasm_webserver.py" - -CLEAN_SRCDIR = f""" -Builds require a clean source directory. Please use a clean checkout or -run "make clean -C '{SRCDIR}'". -""" - -INSTALL_NATIVE = f""" -Builds require a C compiler (gcc, clang), make, pkg-config, and development -headers for dependencies like zlib. - -Debian/Ubuntu: sudo apt install build-essential git curl pkg-config zlib1g-dev -Fedora/CentOS: sudo dnf install gcc make git-core curl pkgconfig zlib-devel -""" - -INSTALL_EMSDK = """ -wasm32-emscripten builds need Emscripten SDK. Please follow instructions at -https://emscripten.org/docs/getting_started/downloads.html how to install -Emscripten and how to activate the SDK with "emsdk_env.sh". - - git clone https://github.com/emscripten-core/emsdk.git /path/to/emsdk - cd /path/to/emsdk - ./emsdk install latest - ./emsdk activate latest - source /path/to/emsdk_env.sh -""" - -INSTALL_WASI_SDK = """ -wasm32-wasi builds need WASI SDK. Please fetch the latest SDK from -https://github.com/WebAssembly/wasi-sdk/releases and install it to -"/opt/wasi-sdk". Alternatively you can install the SDK in a different location -and point the environment variable WASI_SDK_PATH to the root directory -of the SDK. The SDK is available for Linux x86_64, macOS x86_64, and MinGW. -""" - -INSTALL_WASMTIME = """ -wasm32-wasi tests require wasmtime on PATH. Please follow instructions at -https://wasmtime.dev/ to install wasmtime. -""" - - -def parse_emconfig( - emconfig: pathlib.Path = EM_CONFIG, -) -> Tuple[pathlib.PurePath, pathlib.PurePath]: - """Parse EM_CONFIG file and lookup EMSCRIPTEN_ROOT and NODE_JS. - - The ".emscripten" config file is a Python snippet that uses "EM_CONFIG" - environment variable. EMSCRIPTEN_ROOT is the "upstream/emscripten" - subdirectory with tools like "emconfigure". - """ - if not emconfig.exists(): - return _MISSING, _MISSING - with open(emconfig, encoding="utf-8") as f: - code = f.read() - # EM_CONFIG file is a Python snippet - local: Dict[str, Any] = {} - exec(code, globals(), local) - emscripten_root = pathlib.Path(local["EMSCRIPTEN_ROOT"]) - node_js = pathlib.Path(local["NODE_JS"]) - return emscripten_root, node_js - - -EMSCRIPTEN_ROOT, NODE_JS = parse_emconfig() - - -def read_python_version(configure: pathlib.Path = CONFIGURE) -> str: - """Read PACKAGE_VERSION from configure script - - configure and configure.ac are the canonical source for major and - minor version number. - """ - version_re = re.compile("^PACKAGE_VERSION='(\d\.\d+)'") - with configure.open(encoding="utf-8") as f: - for line in f: - mo = version_re.match(line) - if mo: - return mo.group(1) - raise ValueError(f"PACKAGE_VERSION not found in {configure}") - - -PYTHON_VERSION = read_python_version() - - -class ConditionError(ValueError): - def __init__(self, info: str, text: str): - self.info = info - self.text = text - - def __str__(self): - return f"{type(self).__name__}: '{self.info}'\n{self.text}" - - -class MissingDependency(ConditionError): - pass - - -class DirtySourceDirectory(ConditionError): - pass - - -@dataclasses.dataclass -class Platform: - """Platform-specific settings - - - CONFIG_SITE override - - configure wrapper (e.g. emconfigure) - - make wrapper (e.g. emmake) - - additional environment variables - - check function to verify SDK - """ - - name: str - pythonexe: str - config_site: Optional[pathlib.PurePath] - configure_wrapper: Optional[pathlib.PurePath] - make_wrapper: Optional[pathlib.PurePath] - environ: dict - check: Callable[[], None] - # Used for build_emports(). - ports: Optional[pathlib.PurePath] - cc: Optional[pathlib.PurePath] - - def getenv(self, profile: "BuildProfile") -> dict: - return self.environ.copy() - - -def _check_clean_src(): - candidates = [ - SRCDIR / "Programs" / "python.o", - SRCDIR / "Python" / "frozen_modules" / "importlib._bootstrap.h", - ] - for candidate in candidates: - if candidate.exists(): - raise DirtySourceDirectory(os.fspath(candidate), CLEAN_SRCDIR) - - -def _check_native(): - if not any(shutil.which(cc) for cc in ["cc", "gcc", "clang"]): - raise MissingDependency("cc", INSTALL_NATIVE) - if not shutil.which("make"): - raise MissingDependency("make", INSTALL_NATIVE) - if sys.platform == "linux": - # skip pkg-config check on macOS - if not shutil.which("pkg-config"): - raise MissingDependency("pkg-config", INSTALL_NATIVE) - # zlib is needed to create zip files - for devel in ["zlib"]: - try: - subprocess.check_call(["pkg-config", "--exists", devel]) - except subprocess.CalledProcessError: - raise MissingDependency(devel, INSTALL_NATIVE) from None - _check_clean_src() - - -NATIVE = Platform( - "native", - # macOS has python.exe - pythonexe=sysconfig.get_config_var("BUILDPYTHON") or "python", - config_site=None, - configure_wrapper=None, - ports=None, - cc=None, - make_wrapper=None, - environ={}, - check=_check_native, -) - - -def _check_emscripten(): - if EMSCRIPTEN_ROOT is _MISSING: - raise MissingDependency("Emscripten SDK EM_CONFIG", INSTALL_EMSDK) - # sanity check - emconfigure = EMSCRIPTEN.configure_wrapper - if not emconfigure.exists(): - raise MissingDependency(os.fspath(emconfigure), INSTALL_EMSDK) - # version check - version_txt = EMSCRIPTEN_ROOT / "emscripten-version.txt" - if not version_txt.exists(): - raise MissingDependency(os.fspath(version_txt), INSTALL_EMSDK) - with open(version_txt) as f: - version = f.read().strip().strip('"') - if version.endswith("-git"): - # git / upstream / tot-upstream installation - version = version[:-4] - version_tuple = tuple(int(v) for v in version.split(".")) - if version_tuple < EMSDK_MIN_VERSION: - raise ConditionError( - os.fspath(version_txt), - f"Emscripten SDK {version} in '{EMSCRIPTEN_ROOT}' is older than " - "minimum required version " - f"{'.'.join(str(v) for v in EMSDK_MIN_VERSION)}.", - ) - broken = EMSDK_BROKEN_VERSION.get(version_tuple) - if broken is not None: - raise ConditionError( - os.fspath(version_txt), - ( - f"Emscripten SDK {version} in '{EMSCRIPTEN_ROOT}' has known " - f"bugs, see {broken}." - ), - ) - if os.environ.get("PKG_CONFIG_PATH"): - warnings.warn( - "PKG_CONFIG_PATH is set and not empty. emconfigure overrides " - "this environment variable. Use EM_PKG_CONFIG_PATH instead." - ) - _check_clean_src() - - -EMSCRIPTEN = Platform( - "emscripten", - pythonexe="python.js", - config_site=WASMTOOLS / "config.site-wasm32-emscripten", - configure_wrapper=EMSCRIPTEN_ROOT / "emconfigure", - ports=EMSCRIPTEN_ROOT / "embuilder", - cc=EMSCRIPTEN_ROOT / "emcc", - make_wrapper=EMSCRIPTEN_ROOT / "emmake", - environ={ - # workaround for https://github.com/emscripten-core/emscripten/issues/17635 - "TZ": "UTC", - "EM_COMPILER_WRAPPER": "ccache" if HAS_CCACHE else None, - "PATH": [EMSCRIPTEN_ROOT, os.environ["PATH"]], - }, - check=_check_emscripten, -) - - -def _check_wasi(): - wasm_ld = WASI_SDK_PATH / "bin" / "wasm-ld" - if not wasm_ld.exists(): - raise MissingDependency(os.fspath(wasm_ld), INSTALL_WASI_SDK) - wasmtime = shutil.which("wasmtime") - if wasmtime is None: - raise MissingDependency("wasmtime", INSTALL_WASMTIME) - _check_clean_src() - - -WASI = Platform( - "wasi", - pythonexe="python.wasm", - config_site=WASMTOOLS / "config.site-wasm32-wasi", - configure_wrapper=WASMTOOLS / "wasi-env", - ports=None, - cc=WASI_SDK_PATH / "bin" / "clang", - make_wrapper=None, - environ={ - "WASI_SDK_PATH": WASI_SDK_PATH, - # workaround for https://github.com/python/cpython/issues/95952 - "HOSTRUNNER": ( - "wasmtime run " - "--env PYTHONPATH=/{relbuilddir}/build/lib.wasi-wasm32-{version}:/Lib " - "--mapdir /::{srcdir} --" - ), - "PATH": [WASI_SDK_PATH / "bin", os.environ["PATH"]], - }, - check=_check_wasi, -) - - -class Host(enum.Enum): - """Target host triplet""" - - wasm32_emscripten = "wasm32-unknown-emscripten" - wasm64_emscripten = "wasm64-unknown-emscripten" - wasm32_wasi = "wasm32-unknown-wasi" - wasm64_wasi = "wasm64-unknown-wasi" - # current platform - build = sysconfig.get_config_var("BUILD_GNU_TYPE") - - @property - def platform(self) -> Platform: - if self.is_emscripten: - return EMSCRIPTEN - elif self.is_wasi: - return WASI - else: - return NATIVE - - @property - def is_emscripten(self) -> bool: - cls = type(self) - return self in {cls.wasm32_emscripten, cls.wasm64_emscripten} - - @property - def is_wasi(self) -> bool: - cls = type(self) - return self in {cls.wasm32_wasi, cls.wasm64_wasi} - - def get_extra_paths(self) -> Iterable[pathlib.PurePath]: - """Host-specific os.environ["PATH"] entries. - - Emscripten's Node version 14.x works well for wasm32-emscripten. - wasm64-emscripten requires more recent v8 version, e.g. node 16.x. - Attempt to use system's node command. - """ - cls = type(self) - if self == cls.wasm32_emscripten: - return [NODE_JS.parent] - elif self == cls.wasm64_emscripten: - # TODO: look for recent node - return [] - else: - return [] - - @property - def emport_args(self) -> List[str]: - """Host-specific port args (Emscripten).""" - cls = type(self) - if self is cls.wasm64_emscripten: - return ["-sMEMORY64=1"] - elif self is cls.wasm32_emscripten: - return ["-sMEMORY64=0"] - else: - return [] - - @property - def embuilder_args(self) -> List[str]: - """Host-specific embuilder args (Emscripten).""" - cls = type(self) - if self is cls.wasm64_emscripten: - return ["--wasm64"] - else: - return [] - - -class EmscriptenTarget(enum.Enum): - """Emscripten-specific targets (--with-emscripten-target)""" - - browser = "browser" - browser_debug = "browser-debug" - node = "node" - node_debug = "node-debug" - - @property - def is_browser(self): - cls = type(self) - return self in {cls.browser, cls.browser_debug} - - @property - def emport_args(self) -> List[str]: - """Target-specific port args.""" - cls = type(self) - if self in {cls.browser_debug, cls.node_debug}: - # some libs come in debug and non-debug builds - return ["-O0"] - else: - return ["-O2"] - - -class SupportLevel(enum.Enum): - supported = "tier 3, supported" - working = "working, unsupported" - experimental = "experimental, may be broken" - broken = "broken / unavailable" - - def __bool__(self): - cls = type(self) - return self in {cls.supported, cls.working} - - -@dataclasses.dataclass -class BuildProfile: - name: str - support_level: SupportLevel - host: Host - target: Union[EmscriptenTarget, None] = None - dynamic_linking: Union[bool, None] = None - pthreads: Union[bool, None] = None - default_testopts: str = "-j2" - - @property - def is_browser(self) -> bool: - """Is this a browser build?""" - return self.target is not None and self.target.is_browser - - @property - def builddir(self) -> pathlib.Path: - """Path to build directory""" - return BUILDDIR / self.name - - @property - def python_cmd(self) -> pathlib.Path: - """Path to python executable""" - return self.builddir / self.host.platform.pythonexe - - @property - def makefile(self) -> pathlib.Path: - """Path to Makefile""" - return self.builddir / "Makefile" - - @property - def configure_cmd(self) -> List[str]: - """Generate configure command""" - # use relative path, so WASI tests can find lib prefix. - # pathlib.Path.relative_to() does not work here. - configure = os.path.relpath(CONFIGURE, self.builddir) - cmd = [configure, "-C"] - platform = self.host.platform - if platform.configure_wrapper: - cmd.insert(0, os.fspath(platform.configure_wrapper)) - - cmd.append(f"--host={self.host.value}") - cmd.append(f"--build={Host.build.value}") - - if self.target is not None: - assert self.host.is_emscripten - cmd.append(f"--with-emscripten-target={self.target.value}") - - if self.dynamic_linking is not None: - assert self.host.is_emscripten - opt = "enable" if self.dynamic_linking else "disable" - cmd.append(f"--{opt}-wasm-dynamic-linking") - - if self.pthreads is not None: - assert self.host.is_emscripten - opt = "enable" if self.pthreads else "disable" - cmd.append(f"--{opt}-wasm-pthreads") - - if self.host != Host.build: - cmd.append(f"--with-build-python={BUILD.python_cmd}") - - if platform.config_site is not None: - cmd.append(f"CONFIG_SITE={platform.config_site}") - - return cmd - - @property - def make_cmd(self) -> List[str]: - """Generate make command""" - cmd = ["make"] - platform = self.host.platform - if platform.make_wrapper: - cmd.insert(0, os.fspath(platform.make_wrapper)) - return cmd - - def getenv(self) -> dict: - """Generate environ dict for platform""" - env = os.environ.copy() - env.setdefault("MAKEFLAGS", f"-j{os.cpu_count()}") - platenv = self.host.platform.getenv(self) - for key, value in platenv.items(): - if value is None: - env.pop(key, None) - elif key == "PATH": - # list of path items, prefix with extra paths - new_path: List[pathlib.PurePath] = [] - new_path.extend(self.host.get_extra_paths()) - new_path.extend(value) - env[key] = os.pathsep.join(os.fspath(p) for p in new_path) - elif isinstance(value, str): - env[key] = value.format( - relbuilddir=self.builddir.relative_to(SRCDIR), - srcdir=SRCDIR, - version=PYTHON_VERSION, - ) - else: - env[key] = value - return env - - def _run_cmd( - self, - cmd: Iterable[str], - args: Iterable[str] = (), - cwd: Optional[pathlib.Path] = None, - ): - cmd = list(cmd) - cmd.extend(args) - if cwd is None: - cwd = self.builddir - logger.info('Running "%s" in "%s"', shlex.join(cmd), cwd) - return subprocess.check_call( - cmd, - cwd=os.fspath(cwd), - env=self.getenv(), - ) - - def _check_execute(self): - if self.is_browser: - raise ValueError(f"Cannot execute on {self.target}") - - def run_build(self, *args): - """Run configure (if necessary) and make""" - if not self.makefile.exists(): - logger.info("Makefile not found, running configure") - self.run_configure(*args) - self.run_make("all", *args) - - def run_configure(self, *args): - """Run configure script to generate Makefile""" - os.makedirs(self.builddir, exist_ok=True) - return self._run_cmd(self.configure_cmd, args) - - def run_make(self, *args): - """Run make (defaults to build all)""" - return self._run_cmd(self.make_cmd, args) - - def run_pythoninfo(self, *args): - """Run 'make pythoninfo'""" - self._check_execute() - return self.run_make("pythoninfo", *args) - - def run_test(self, target: str, testopts: Optional[str] = None): - """Run buildbottests""" - self._check_execute() - if testopts is None: - testopts = self.default_testopts - return self.run_make(target, f"TESTOPTS={testopts}") - - def run_py(self, *args): - """Run Python with hostrunner""" - self._check_execute() - self.run_make( - "--eval", f"run: all; $(HOSTRUNNER) ./$(PYTHON) {shlex.join(args)}", "run" - ) - - def run_browser(self, bind="127.0.0.1", port=8000): - """Run WASM webserver and open build in browser""" - relbuilddir = self.builddir.relative_to(SRCDIR) - url = f"http://{bind}:{port}/{relbuilddir}/python.html" - args = [ - sys.executable, - os.fspath(WASM_WEBSERVER), - "--bind", - bind, - "--port", - str(port), - ] - srv = subprocess.Popen(args, cwd=SRCDIR) - # wait for server - end = time.monotonic() + 3.0 - while time.monotonic() < end and srv.returncode is None: - try: - with socket.create_connection((bind, port), timeout=0.1) as s: - pass - except OSError: - time.sleep(0.01) - else: - break - - webbrowser.open(url) - - try: - srv.wait() - except KeyboardInterrupt: - pass - - def clean(self, all: bool = False): - """Clean build directory""" - if all: - if self.builddir.exists(): - shutil.rmtree(self.builddir) - elif self.makefile.exists(): - self.run_make("clean") - - def build_emports(self, force: bool = False): - """Pre-build emscripten ports.""" - platform = self.host.platform - if platform.ports is None or platform.cc is None: - raise ValueError("Need ports and CC command") - - embuilder_cmd = [os.fspath(platform.ports)] - embuilder_cmd.extend(self.host.embuilder_args) - if force: - embuilder_cmd.append("--force") - - ports_cmd = [os.fspath(platform.cc)] - ports_cmd.extend(self.host.emport_args) - if self.target: - ports_cmd.extend(self.target.emport_args) - - if self.dynamic_linking: - # Trigger PIC build. - ports_cmd.append("-sMAIN_MODULE") - embuilder_cmd.append("--pic") - - if self.pthreads: - # Trigger multi-threaded build. - ports_cmd.append("-sUSE_PTHREADS") - - # Pre-build libbz2, libsqlite3, libz, and some system libs. - ports_cmd.extend(["-sUSE_ZLIB", "-sUSE_BZIP2", "-sUSE_SQLITE3"]) - # Multi-threaded sqlite3 has different suffix - embuilder_cmd.extend( - ["build", "bzip2", "sqlite3-mt" if self.pthreads else "sqlite3", "zlib"] - ) - - self._run_cmd(embuilder_cmd, cwd=SRCDIR) - - with tempfile.TemporaryDirectory(suffix="-py-emport") as tmpdir: - tmppath = pathlib.Path(tmpdir) - main_c = tmppath / "main.c" - main_js = tmppath / "main.js" - with main_c.open("w") as f: - f.write("int main(void) { return 0; }\n") - args = [ - os.fspath(main_c), - "-o", - os.fspath(main_js), - ] - self._run_cmd(ports_cmd, args, cwd=tmppath) - - -# native build (build Python) -BUILD = BuildProfile( - "build", - support_level=SupportLevel.working, - host=Host.build, -) - -_profiles = [ - BUILD, - # wasm32-emscripten - BuildProfile( - "emscripten-browser", - support_level=SupportLevel.supported, - host=Host.wasm32_emscripten, - target=EmscriptenTarget.browser, - dynamic_linking=True, - ), - BuildProfile( - "emscripten-browser-debug", - support_level=SupportLevel.working, - host=Host.wasm32_emscripten, - target=EmscriptenTarget.browser_debug, - dynamic_linking=True, - ), - BuildProfile( - "emscripten-node-dl", - support_level=SupportLevel.supported, - host=Host.wasm32_emscripten, - target=EmscriptenTarget.node, - dynamic_linking=True, - ), - BuildProfile( - "emscripten-node-dl-debug", - support_level=SupportLevel.working, - host=Host.wasm32_emscripten, - target=EmscriptenTarget.node_debug, - dynamic_linking=True, - ), - BuildProfile( - "emscripten-node-pthreads", - support_level=SupportLevel.supported, - host=Host.wasm32_emscripten, - target=EmscriptenTarget.node, - pthreads=True, - ), - BuildProfile( - "emscripten-node-pthreads-debug", - support_level=SupportLevel.working, - host=Host.wasm32_emscripten, - target=EmscriptenTarget.node_debug, - pthreads=True, - ), - # Emscripten build with both pthreads and dynamic linking is crashing. - BuildProfile( - "emscripten-node-dl-pthreads-debug", - support_level=SupportLevel.broken, - host=Host.wasm32_emscripten, - target=EmscriptenTarget.node_debug, - dynamic_linking=True, - pthreads=True, - ), - # wasm64-emscripten (requires Emscripten >= 3.1.21) - BuildProfile( - "wasm64-emscripten-node-debug", - support_level=SupportLevel.experimental, - host=Host.wasm64_emscripten, - target=EmscriptenTarget.node_debug, - # MEMORY64 is not compatible with dynamic linking - dynamic_linking=False, - pthreads=False, - ), - # wasm32-wasi - BuildProfile( - "wasi", - support_level=SupportLevel.supported, - host=Host.wasm32_wasi, - ), - # no SDK available yet - # BuildProfile( - # "wasm64-wasi", - # support_level=SupportLevel.broken, - # host=Host.wasm64_wasi, - # ), -] - -PROFILES = {p.name: p for p in _profiles} - -parser = argparse.ArgumentParser( - "wasm_build.py", - description=__doc__, - formatter_class=argparse.RawTextHelpFormatter, -) - -parser.add_argument( - "--clean", - "-c", - help="Clean build directories first", - action="store_true", -) - -parser.add_argument( - "--verbose", - "-v", - help="Verbose logging", - action="store_true", -) - -parser.add_argument( - "--silent", - help="Run configure and make in silent mode", - action="store_true", -) - -parser.add_argument( - "--testopts", - help=( - "Additional test options for 'test' and 'hostrunnertest', e.g. " - "--testopts='-v test_os'." - ), - default=None, -) - -# Don't list broken and experimental variants in help -platforms_choices = list(p.name for p in _profiles) + ["cleanall"] -platforms_help = list(p.name for p in _profiles if p.support_level) + ["cleanall"] -parser.add_argument( - "platform", - metavar="PLATFORM", - help=f"Build platform: {', '.join(platforms_help)}", - choices=platforms_choices, -) - -ops = dict( - build="auto build (build 'build' Python, emports, configure, compile)", - configure="run ./configure", - compile="run 'make all'", - pythoninfo="run 'make pythoninfo'", - test="run 'make buildbottest TESTOPTS=...' (supports parallel tests)", - hostrunnertest="run 'make hostrunnertest TESTOPTS=...'", - repl="start interactive REPL / webserver + browser session", - clean="run 'make clean'", - cleanall="remove all build directories", - emports="build Emscripten port with embuilder (only Emscripten)", -) -ops_help = "\n".join(f"{op:16s} {help}" for op, help in ops.items()) -parser.add_argument( - "ops", - metavar="OP", - help=f"operation (default: build)\n\n{ops_help}", - choices=tuple(ops), - default="build", - nargs="*", -) - - -def main(): - args = parser.parse_args() - logging.basicConfig( - level=logging.INFO if args.verbose else logging.ERROR, - format="%(message)s", - ) - - if args.platform == "cleanall": - for builder in PROFILES.values(): - builder.clean(all=True) - parser.exit(0) - - # additional configure and make args - cm_args = ("--silent",) if args.silent else () - - # nargs=* with default quirk - if args.ops == "build": - args.ops = ["build"] - - builder = PROFILES[args.platform] - try: - builder.host.platform.check() - except ConditionError as e: - parser.error(str(e)) - - if args.clean: - builder.clean(all=False) - - # hack for WASI - if builder.host.is_wasi and not SETUP_LOCAL.exists(): - SETUP_LOCAL.touch() - - # auto-build - if "build" in args.ops: - # check and create build Python - if builder is not BUILD: - logger.info("Auto-building 'build' Python.") - try: - BUILD.host.platform.check() - except ConditionError as e: - parser.error(str(e)) - if args.clean: - BUILD.clean(all=False) - BUILD.run_build(*cm_args) - # build Emscripten ports with embuilder - if builder.host.is_emscripten and "emports" not in args.ops: - builder.build_emports() - - for op in args.ops: - logger.info("\n*** %s %s", args.platform, op) - if op == "build": - builder.run_build(*cm_args) - elif op == "configure": - builder.run_configure(*cm_args) - elif op == "compile": - builder.run_make("all", *cm_args) - elif op == "pythoninfo": - builder.run_pythoninfo(*cm_args) - elif op == "repl": - if builder.is_browser: - builder.run_browser() - else: - builder.run_py() - elif op == "test": - builder.run_test("buildbottest", testopts=args.testopts) - elif op == "hostrunnertest": - builder.run_test("hostrunnertest", testopts=args.testopts) - elif op == "clean": - builder.clean(all=False) - elif op == "cleanall": - builder.clean(all=True) - elif op == "emports": - builder.build_emports(force=args.clean) - else: - raise ValueError(op) - - print(builder.builddir) - parser.exit(0) - - -if __name__ == "__main__": - main() diff --git a/configure b/configure index 08ec2161cba086..04f0c4e0e88428 100755 --- a/configure +++ b/configure @@ -2,7 +2,7 @@ # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for python 3.12. # -# Report bugs to <https://github.com/python/cpython/issues/>. +# Report bugs to <https://bugs.python.org/>. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -267,10 +267,10 @@ fi $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and -$0: https://github.com/python/cpython/issues/ about your -$0: system, including any error possibly output before this -$0: message. Then install a modern shell, or manually run -$0: the script under such a shell if you do have one." +$0: https://bugs.python.org/ about your system, including +$0: any error possibly output before this message. Then +$0: install a modern shell, or manually run the script +$0: under such a shell if you do have one." fi exit 1 fi @@ -582,7 +582,7 @@ PACKAGE_NAME='python' PACKAGE_TARNAME='python' PACKAGE_VERSION='3.12' PACKAGE_STRING='python 3.12' -PACKAGE_BUGREPORT='https://github.com/python/cpython/issues/' +PACKAGE_BUGREPORT='https://bugs.python.org/' PACKAGE_URL='' ac_unique_file="Include/object.h" @@ -632,8 +632,6 @@ MODULE__CTYPES_TEST_FALSE MODULE__CTYPES_TEST_TRUE MODULE__XXTESTFUZZ_FALSE MODULE__XXTESTFUZZ_TRUE -MODULE_XXSUBTYPE_FALSE -MODULE_XXSUBTYPE_TRUE MODULE__TESTMULTIPHASE_FALSE MODULE__TESTMULTIPHASE_TRUE MODULE__TESTIMPORTMULTIPLE_FALSE @@ -662,22 +660,12 @@ MODULE__TKINTER_FALSE MODULE__TKINTER_TRUE MODULE__SQLITE3_FALSE MODULE__SQLITE3_TRUE -MODULE_READLINE_FALSE -MODULE_READLINE_TRUE MODULE_NIS_FALSE MODULE_NIS_TRUE MODULE__GDBM_FALSE MODULE__GDBM_TRUE -MODULE__DBM_FALSE -MODULE__DBM_TRUE MODULE__DECIMAL_FALSE MODULE__DECIMAL_TRUE -MODULE__CURSES_PANEL_FALSE -MODULE__CURSES_PANEL_TRUE -MODULE__CURSES_FALSE -MODULE__CURSES_TRUE -MODULE__CTYPES_FALSE -MODULE__CTYPES_TRUE MODULE__CRYPT_FALSE MODULE__CRYPT_TRUE MODULE__BLAKE2_FALSE @@ -788,24 +776,18 @@ MODULE_TIME_FALSE MODULE_TIME_TRUE MODULE__IO_FALSE MODULE__IO_TRUE +MODULES_SETUP_STDLIB MODULE_BUILDTYPE TEST_MODULES LIBB2_LIBS LIBB2_CFLAGS +OPENSSL_RPATH OPENSSL_LDFLAGS OPENSSL_LIBS OPENSSL_INCLUDES ENSUREPIP SRCDIRS THREADHEADERS -PANEL_LIBS -PANEL_CFLAGS -CURSES_LIBS -CURSES_CFLAGS -LIBEDIT_LIBS -LIBEDIT_CFLAGS -LIBREADLINE_LIBS -LIBREADLINE_CFLAGS WHEEL_PKG_DIR LIBPL PY_ENABLE_SHARED @@ -852,16 +834,15 @@ LIBSQLITE3_CFLAGS LIBNSL_LIBS LIBNSL_CFLAGS LIBMPDEC_INTERNAL +LIBMPDEC_LDFLAGS LIBMPDEC_CFLAGS -MODULE__CTYPES_MALLOC_CLOSURE -LIBFFI_LIBS -LIBFFI_CFLAGS +LIBFFI_INCLUDEDIR LIBEXPAT_INTERNAL +LIBEXPAT_LDFLAGS LIBEXPAT_CFLAGS TZPATH LIBUUID_LIBS LIBUUID_CFLAGS -PERF_TRAMPOLINE_OBJ SHLIBS CFLAGSFORSHARED LINKFORSHARED @@ -870,8 +851,6 @@ BLDSHARED LDCXXSHARED LDSHARED SHLIB_SUFFIX -DSYMUTIL_PATH -DSYMUTIL LIBTOOL_CRUFT OTHER_LIBTOOL_OPT UNIVERSAL_ARCH_FLAGS @@ -890,9 +869,6 @@ LLVM_PROF_FILE LLVM_PROF_MERGER PGO_PROF_USE_FLAG PGO_PROF_GEN_FLAG -MERGE_FDATA -LLVM_BOLT -PREBOLT_RULE LLVM_AR_FOUND LLVM_AR PROFILE_TASK @@ -912,7 +888,6 @@ AR LINK_PYTHON_OBJS LINK_PYTHON_DEPS LIBRARY_DEPS -NODE HOSTRUNNER STATIC_LIBPYTHON GNULD @@ -934,6 +909,7 @@ MULTIARCH_CPPFLAGS PLATFORM_TRIPLET MULTIARCH ac_ct_CXX +MAINCC CXX EGREP SED @@ -946,7 +922,6 @@ CPPFLAGS LDFLAGS CFLAGS CC -HAS_XCRUN EXPORT_MACOSX_DEPLOYMENT_TARGET CONFIGURE_MACOSX_DEPLOYMENT_TARGET _PYTHON_HOST_PLATFORM @@ -974,7 +949,6 @@ CONFIG_ARGS SOVERSION VERSION PYTHON_FOR_REGEN -PYTHON_FOR_BUILD_DEPS FREEZE_MODULE_DEPS FREEZE_MODULE FREEZE_MODULE_BOOTSTRAP_DEPS @@ -1042,6 +1016,7 @@ enable_universalsdk with_universal_archs with_framework_name enable_framework +with_cxx_main with_emscripten_target enable_wasm_dynamic_linking enable_wasm_pthreads @@ -1055,8 +1030,6 @@ enable_pystats with_assertions enable_optimizations with_lto -enable_bolt -with_dsymutil with_address_sanitizer with_memory_sanitizer with_undefined_behavior_sanitizer @@ -1088,6 +1061,7 @@ with_openssl with_openssl_rpath with_ssl_default_suites with_builtin_hashlib_hashes +with_experimental_isolated_subinterpreters enable_test_modules ' ac_precious_vars='build_alias @@ -1107,8 +1081,6 @@ HOSTRUNNER PROFILE_TASK LIBUUID_CFLAGS LIBUUID_LIBS -LIBFFI_CFLAGS -LIBFFI_LIBS LIBNSL_CFLAGS LIBNSL_LIBS LIBSQLITE3_CFLAGS @@ -1127,14 +1099,6 @@ LIBLZMA_CFLAGS LIBLZMA_LIBS LIBCRYPT_CFLAGS LIBCRYPT_LIBS -LIBREADLINE_CFLAGS -LIBREADLINE_LIBS -LIBEDIT_CFLAGS -LIBEDIT_LIBS -CURSES_CFLAGS -CURSES_LIBS -PANEL_CFLAGS -PANEL_LIBS LIBB2_CFLAGS LIBB2_LIBS' @@ -1782,8 +1746,6 @@ Optional Features: --enable-pystats enable internal statistics gathering (default is no) --enable-optimizations enable expensive, stable optimizations (PGO, etc.) (default is no) - --enable-bolt enable usage of the llvm-bolt post-link optimizer - (default is no) --enable-loadable-sqlite-extensions support loadable extensions in the sqlite3 module, see Doc/library/sqlite3.rst (default is no) @@ -1814,6 +1776,9 @@ Optional Packages: specify the name for the python framework on macOS only valid when --enable-framework is set. see Mac/README.rst (default is 'Python') + --with-cxx-main[=COMPILER] + compile main() and link Python executable with C++ + compiler specified in COMPILER (default is $CXX) --with-emscripten-target=[browser|node] Emscripten platform --with-suffix=SUFFIX set executable suffix to SUFFIX (default is empty, @@ -1828,8 +1793,6 @@ Optional Packages: --with-lto=[full|thin|no|yes] enable Link-Time-Optimization in any build (default is no) - --with-dsymutil link debug information into final executable with - dsymutil in macOS (default is no) --with-address-sanitizer enable AddressSanitizer memory error detector, 'asan' (default is no) @@ -1876,8 +1839,8 @@ Optional Packages: --with-wheel-pkg-dir=PATH Directory of wheel packages used by ensurepip (default: none) - --with(out)-readline[=editline|readline|no] - use libedit for backend or disable readline module + --with(out)-readline[=editline] + use Editline for backend or disable readline module --with-computed-gotos enable computed gotos in evaluation loop (enabled by default on supported compilers) --with-ensurepip[=install|upgrade|no] @@ -1898,6 +1861,9 @@ Optional Packages: --with-builtin-hashlib-hashes=md5,sha1,sha256,sha512,sha3,blake2 builtin hash modules, md5, sha1, sha256, sha512, sha3 (with shake), blake2 + --with-experimental-isolated-subinterpreters + better isolate subinterpreters, experimental build + mode (default is no) Some influential environment variables: PKG_CONFIG path to pkg-config utility @@ -1921,9 +1887,6 @@ Some influential environment variables: C compiler flags for LIBUUID, overriding pkg-config LIBUUID_LIBS linker flags for LIBUUID, overriding pkg-config - LIBFFI_CFLAGS - C compiler flags for LIBFFI, overriding pkg-config - LIBFFI_LIBS linker flags for LIBFFI, overriding pkg-config LIBNSL_CFLAGS C compiler flags for LIBNSL, overriding pkg-config LIBNSL_LIBS linker flags for LIBNSL, overriding pkg-config @@ -1951,20 +1914,6 @@ Some influential environment variables: C compiler flags for LIBCRYPT, overriding pkg-config LIBCRYPT_LIBS linker flags for LIBCRYPT, overriding pkg-config - LIBREADLINE_CFLAGS - C compiler flags for LIBREADLINE, overriding pkg-config - LIBREADLINE_LIBS - linker flags for LIBREADLINE, overriding pkg-config - LIBEDIT_CFLAGS - C compiler flags for LIBEDIT, overriding pkg-config - LIBEDIT_LIBS - linker flags for LIBEDIT, overriding pkg-config - CURSES_CFLAGS - C compiler flags for CURSES, overriding pkg-config - CURSES_LIBS linker flags for CURSES, overriding pkg-config - PANEL_CFLAGS - C compiler flags for PANEL, overriding pkg-config - PANEL_LIBS linker flags for PANEL, overriding pkg-config LIBB2_CFLAGS C compiler flags for LIBB2, overriding pkg-config LIBB2_LIBS linker flags for LIBB2, overriding pkg-config @@ -1972,7 +1921,7 @@ Some influential environment variables: Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. -Report bugs to <https://github.com/python/cpython/issues/>. +Report bugs to <https://bugs.python.org/>. _ACEOF ac_status=$? fi @@ -2194,9 +2143,9 @@ $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} -( $as_echo "## -------------------------------------------------------- ## -## Report this to https://github.com/python/cpython/issues/ ## -## -------------------------------------------------------- ##" +( $as_echo "## --------------------------------------- ## +## Report this to https://bugs.python.org/ ## +## --------------------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac @@ -3096,12 +3045,6 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - - - if test "$srcdir" != . -a "$srcdir" != "$(pwd)"; then # If we're building out-of-tree, we need to make sure the following # resources get picked up before their $srcdir counterparts. @@ -3343,7 +3286,6 @@ if test "x$cross_compiling" = xyes; then : FREEZE_MODULE_BOOTSTRAP_DEPS='$(srcdir)/Programs/_freeze_module.py' FREEZE_MODULE='$(FREEZE_MODULE_BOOTSTRAP)' FREEZE_MODULE_DEPS='$(FREEZE_MODULE_BOOTSTRAP_DEPS)' - PYTHON_FOR_BUILD_DEPS='' else @@ -3351,7 +3293,6 @@ else FREEZE_MODULE_BOOTSTRAP_DEPS="Programs/_freeze_module" FREEZE_MODULE='$(PYTHON_FOR_FREEZE) $(srcdir)/Programs/_freeze_module.py' FREEZE_MODULE_DEPS="_bootstrap_python \$(srcdir)/Programs/_freeze_module.py" - PYTHON_FOR_BUILD_DEPS='$(BUILDPYTHON)' fi @@ -3360,7 +3301,6 @@ fi - for ac_prog in python$PACKAGE_VERSION python3.10 python3.9 python3.8 python3.7 python3.6 python3 python do # Extract the first word of "$ac_prog", so it can be a program name with args. @@ -4092,68 +4032,8 @@ if test -z "$CFLAGS"; then CFLAGS= fi -case $host in #( - wasm64-*-emscripten) : - - as_fn_append CFLAGS " -sMEMORY64=1" - as_fn_append LDFLAGS " -sMEMORY64=1" - ;; #( - *) : - ;; -esac - if test "$ac_sys_system" = "Darwin" then - # Extract the first word of "xcrun", so it can be a program name with args. -set dummy xcrun; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_HAS_XCRUN+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$HAS_XCRUN"; then - ac_cv_prog_HAS_XCRUN="$HAS_XCRUN" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_HAS_XCRUN="yes" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_prog_HAS_XCRUN" && ac_cv_prog_HAS_XCRUN="missing" -fi -fi -HAS_XCRUN=$ac_cv_prog_HAS_XCRUN -if test -n "$HAS_XCRUN"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAS_XCRUN" >&5 -$as_echo "$HAS_XCRUN" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking macOS SDKROOT" >&5 -$as_echo_n "checking macOS SDKROOT... " >&6; } - if test -z "$SDKROOT"; then - if test "$HAS_XCRUN" = "yes"; then - SDKROOT=$(xcrun --show-sdk-path) - else - SDKROOT="/" - fi - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SDKROOT" >&5 -$as_echo "$SDKROOT" >&6; } - # Compiler selection on MacOSX is more complicated than # AC_PROG_CC can handle, see Mac/README for more # information @@ -5337,39 +5217,6 @@ $as_echo "$ac_cv_path_EGREP" >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CC compiler name" >&5 -$as_echo_n "checking for CC compiler name... " >&6; } -if ${ac_cv_cc_name+:} false; then : - $as_echo_n "(cached) " >&6 -else - -cat > conftest.c <<EOF -#if defined(__INTEL_COMPILER) || defined(__ICC) - icc -#elif defined(__ibmxl__) || defined(__xlc__) || defined(__xlC__) - xlc -#elif defined(_MSC_VER) - msvc -#elif defined(__clang__) - clang -#elif defined(__GNUC__) - gcc -#else -# error unknown compiler -#endif -EOF - -if $CPP $CPPFLAGS conftest.c >conftest.out 2>/dev/null; then - ac_cv_cc_name=`grep -v '^#' conftest.out | grep -v '^ *$' | tr -d ' '` -else - ac_cv_cc_name="unknown" -fi -rm -f conftest.c conftest.out - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cc_name" >&5 -$as_echo "$ac_cv_cc_name" >&6; } - # checks for UNIX variants that set C preprocessor variables # may set _GNU_SOURCE, __EXTENSIONS__, _POSIX_PTHREAD_SEMANTICS, # _POSIX_SOURCE, _POSIX_1_SOURCE, and more @@ -5568,6 +5415,35 @@ $as_echo "$ac_cv_safe_to_define___extensions__" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-cxx-main=<compiler>" >&5 +$as_echo_n "checking for --with-cxx-main=<compiler>... " >&6; } + +# Check whether --with-cxx_main was given. +if test "${with_cxx_main+set}" = set; then : + withval=$with_cxx_main; + + case $withval in + no) with_cxx_main=no + MAINCC='$(CC)';; + yes) with_cxx_main=yes + MAINCC='$(CXX)';; + *) with_cxx_main=yes + MAINCC=$withval + if test -z "$CXX" + then + CXX=$withval + fi;; + esac +else + + with_cxx_main=no + MAINCC='$(CC)' + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_cxx_main" >&5 +$as_echo "$with_cxx_main" >&6; } + preset_cxx="$CXX" if test -z "$CXX" then @@ -6243,7 +6119,7 @@ cat > conftest.c <<EOF # error unknown wasm32 platform # endif #elif defined(__wasm64__) -# if defined(__EMSCRIPTEN__) +# if defined(__EMSCRIPTEN) wasm64-emscripten # elif defined(__wasi__) wasm64-wasi @@ -6300,70 +6176,6 @@ if test x$MULTIARCH != x; then fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PEP 11 support tier" >&5 -$as_echo_n "checking for PEP 11 support tier... " >&6; } -case $host/$ac_cv_cc_name in #( - x86_64-*-linux-gnu/gcc) : - PY_SUPPORT_TIER=1 ;; #( - x86_64-apple-darwin*/clang) : - PY_SUPPORT_TIER=1 ;; #( - i686-pc-windows-msvc/msvc) : - PY_SUPPORT_TIER=1 ;; #( - x86_64-pc-windows-msvc/msvc) : - PY_SUPPORT_TIER=1 ;; #( - - aarch64-apple-darwin*/clang) : - PY_SUPPORT_TIER=2 ;; #( - aarch64-*-linux-gnu/gcc) : - PY_SUPPORT_TIER=2 ;; #( - aarch64-*-linux-gnu/clang) : - PY_SUPPORT_TIER=2 ;; #( - powerpc64le-*-linux-gnu/gcc) : - PY_SUPPORT_TIER=2 ;; #( - x86_64-*-linux-gnu/clang) : - PY_SUPPORT_TIER=2 ;; #( - - aarch64-pc-windows-msvc/msvc) : - PY_SUPPORT_TIER=3 ;; #( - armv7l-*-linux-gnueabihf/gcc) : - PY_SUPPORT_TIER=3 ;; #( - powerpc64le-*-linux-gnu/clang) : - PY_SUPPORT_TIER=3 ;; #( - s390x-*-linux-gnu/gcc) : - PY_SUPPORT_TIER=3 ;; #( - wasm32-unknown-emscripten/clang) : - PY_SUPPORT_TIER=3 ;; #( - wasm32-unknown-wasi/clang) : - PY_SUPPORT_TIER=3 ;; #( - x86_64-*-freebsd*/clang) : - PY_SUPPORT_TIER=3 ;; #( - *) : - PY_SUPPORT_TIER=0 - ;; -esac - -case $PY_SUPPORT_TIER in #( - 1) : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $host/$ac_cv_cc_name has tier 1 (supported)" >&5 -$as_echo "$host/$ac_cv_cc_name has tier 1 (supported)" >&6; } ;; #( - 2) : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $host/$ac_cv_cc_name has tier 2 (supported)" >&5 -$as_echo "$host/$ac_cv_cc_name has tier 2 (supported)" >&6; } ;; #( - 3) : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $host/$ac_cv_cc_name has tier 3 (partially supported)" >&5 -$as_echo "$host/$ac_cv_cc_name has tier 3 (partially supported)" >&6; } ;; #( - *) : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $host/$ac_cv_cc_name is not supported" >&5 -$as_echo "$as_me: WARNING: $host/$ac_cv_cc_name is not supported" >&2;} - ;; -esac - - -cat >>confdefs.h <<_ACEOF -#define PY_SUPPORT_TIER $PY_SUPPORT_TIER -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -Wl,--no-as-needed" >&5 $as_echo_n "checking for -Wl,--no-as-needed... " >&6; } if ${ac_cv_wl_no_as_needed+:} false; then : @@ -6371,7 +6183,7 @@ if ${ac_cv_wl_no_as_needed+:} false; then : else save_LDFLAGS="$LDFLAGS" - as_fn_append LDFLAGS " -Wl,--no-as-needed" + as_fn_append LDFLAGS -Wl,--no-as-needed cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -6650,7 +6462,7 @@ LDVERSION="$VERSION" $as_echo_n "checking LINKCC... " >&6; } if test -z "$LINKCC" then - LINKCC='$(PURIFY) $(CC)' + LINKCC='$(PURIFY) $(MAINCC)' case $ac_sys_system in QNX*) # qcc must be used because the other compilers do not @@ -6863,188 +6675,39 @@ if test "$cross_compiling" = yes; then fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking HOSTRUNNER" >&5 +$as_echo_n "checking HOSTRUNNER... " >&6; } if test -z "$HOSTRUNNER" then case $ac_sys_system/$ac_sys_emscripten_target in #( Emscripten/node*) : - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}node", so it can be a program name with args. -set dummy ${ac_tool_prefix}node; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_NODE+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $NODE in - [\\/]* | ?:[\\/]*) - ac_cv_path_NODE="$NODE" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_NODE="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -NODE=$ac_cv_path_NODE -if test -n "$NODE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NODE" >&5 -$as_echo "$NODE" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_path_NODE"; then - ac_pt_NODE=$NODE - # Extract the first word of "node", so it can be a program name with args. -set dummy node; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_ac_pt_NODE+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $ac_pt_NODE in - [\\/]* | ?:[\\/]*) - ac_cv_path_ac_pt_NODE="$ac_pt_NODE" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_ac_pt_NODE="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -ac_pt_NODE=$ac_cv_path_ac_pt_NODE -if test -n "$ac_pt_NODE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_NODE" >&5 -$as_echo "$ac_pt_NODE" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_pt_NODE" = x; then - NODE="node" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - NODE=$ac_pt_NODE - fi -else - NODE="$ac_cv_path_NODE" -fi - - HOSTRUNNER="$NODE" - # bigint for ctypes c_longlong, c_longdouble - # no longer available in Node 16 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for node --experimental-wasm-bigint" >&5 -$as_echo_n "checking for node --experimental-wasm-bigint... " >&6; } -if ${ac_cv_tool_node_wasm_bigint+:} false; then : - $as_echo_n "(cached) " >&6 -else - - if $NODE -v --experimental-wasm-bigint > /dev/null 2>&1; then - ac_cv_tool_node_wasm_bigint=yes - else - ac_cv_tool_node_wasm_bigint=no - fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_tool_node_wasm_bigint" >&5 -$as_echo "$ac_cv_tool_node_wasm_bigint" >&6; } - if test "x$ac_cv_tool_node_wasm_bigint" = xyes; then : - - as_fn_append HOSTRUNNER " --experimental-wasm-bigint" - -fi - if test "x$enable_wasm_pthreads" = xyes; then : - as_fn_append HOSTRUNNER " --experimental-wasm-threads" - # no longer available in Node 16 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for node --experimental-wasm-bulk-memory" >&5 -$as_echo_n "checking for node --experimental-wasm-bulk-memory... " >&6; } -if ${ac_cv_tool_node_wasm_bulk_memory+:} false; then : - $as_echo_n "(cached) " >&6 -else - - if $NODE -v --experimental-wasm-bulk-memory > /dev/null 2>&1; then - ac_cv_tool_node_wasm_bulk_memory=yes - else - ac_cv_tool_node_wasm_bulk_memory=no - fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_tool_node_wasm_bulk_memory" >&5 -$as_echo "$ac_cv_tool_node_wasm_bulk_memory" >&6; } - if test "x$ac_cv_tool_node_wasm_bulk_memory" = xyes; then : - - as_fn_append HOSTRUNNER " --experimental-wasm-bulk-memory" + HOSTRUNNER='node --experimental-wasm-threads --experimental-wasm-bulk-memory' -fi +else -fi + HOSTRUNNER='node' - if test "x$host_cpu" = xwasm64; then : - as_fn_append HOSTRUNNER " --experimental-wasm-memory64" fi ;; #( - WASI/*) : - HOSTRUNNER='wasmtime run --env PYTHONPATH=/$(shell realpath --relative-to $(abs_srcdir) $(abs_builddir))/$(shell cat pybuilddir.txt):/Lib --mapdir /::$(srcdir) --' ;; #( *) : HOSTRUNNER='' ;; esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking HOSTRUNNER" >&5 -$as_echo_n "checking HOSTRUNNER... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HOSTRUNNER" >&5 $as_echo "$HOSTRUNNER" >&6; } -if test -n "$HOSTRUNNER"; then - PYTHON_FOR_BUILD="_PYTHON_HOSTRUNNER='$HOSTRUNNER' $PYTHON_FOR_BUILD" -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LDLIBRARY" >&5 $as_echo "$LDLIBRARY" >&6; } # LIBRARY_DEPS, LINK_PYTHON_OBJS and LINK_PYTHON_DEPS variable case $ac_sys_system/$ac_sys_emscripten_target in #( Emscripten/browser*) : - LIBRARY_DEPS='$(PY3LIBRARY) $(WASM_STDLIB) python.html python.worker.js' ;; #( + LIBRARY_DEPS='$(PY3LIBRARY) $(WASM_STDLIB)' ;; #( *) : LIBRARY_DEPS='$(PY3LIBRARY) $(EXPORTSYMS)' ;; @@ -7837,93 +7500,17 @@ $as_echo "$as_me: llvm-ar found via xcrun: ${LLVM_AR}" >&6;} # Any changes made here should be reflected in the GCC+Darwin case below if test $Py_LTO_POLICY = default then - # Check that ThinLTO is accepted. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -flto=thin" >&5 -$as_echo_n "checking whether C compiler accepts -flto=thin... " >&6; } -if ${ax_cv_check_cflags___flto_thin+:} false; then : - $as_echo_n "(cached) " >&6 -else - - ax_check_save_flags=$CFLAGS - CFLAGS="$CFLAGS -flto=thin" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ax_cv_check_cflags___flto_thin=yes -else - ax_cv_check_cflags___flto_thin=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS=$ax_check_save_flags -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___flto_thin" >&5 -$as_echo "$ax_cv_check_cflags___flto_thin" >&6; } -if test "x$ax_cv_check_cflags___flto_thin" = xyes; then : - - LTOFLAGS="-flto=thin -Wl,-export_dynamic -Wl,-object_path_lto,\"\$@\".lto" - LTOCFLAGS="-flto=thin" - -else - - LTOFLAGS="-flto -Wl,-export_dynamic -Wl,-object_path_lto,\"\$@\".lto" - LTOCFLAGS="-flto" - - -fi - + LTOFLAGS="-flto -Wl,-export_dynamic" + LTOCFLAGS="-flto" else - LTOFLAGS="-flto=${Py_LTO_POLICY} -Wl,-export_dynamic -Wl,-object_path_lto,\"\$@\".lto" + LTOFLAGS="-flto=${Py_LTO_POLICY} -Wl,-export_dynamic" LTOCFLAGS="-flto=${Py_LTO_POLICY}" fi ;; *) if test $Py_LTO_POLICY = default then - # Check that ThinLTO is accepted - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -flto=thin" >&5 -$as_echo_n "checking whether C compiler accepts -flto=thin... " >&6; } -if ${ax_cv_check_cflags___flto_thin+:} false; then : - $as_echo_n "(cached) " >&6 -else - - ax_check_save_flags=$CFLAGS - CFLAGS="$CFLAGS -flto=thin" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ax_cv_check_cflags___flto_thin=yes -else - ax_cv_check_cflags___flto_thin=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS=$ax_check_save_flags -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___flto_thin" >&5 -$as_echo "$ax_cv_check_cflags___flto_thin" >&6; } -if test "x$ax_cv_check_cflags___flto_thin" = xyes; then : - LTOFLAGS="-flto=thin" -else - LTOFLAGS="-flto" -fi - + LTOFLAGS="-flto" else LTOFLAGS="-flto=${Py_LTO_POLICY}" fi @@ -7945,7 +7532,7 @@ fi LDFLAGS_NOLTO="-fno-lto" case $ac_sys_system in Darwin*) - LTOFLAGS="-flto -Wl,-export_dynamic -Wl,-object_path_lto,\"\$@\".lto" + LTOFLAGS="-flto -Wl,-export_dynamic" LTOCFLAGS="-flto" ;; *) @@ -7966,271 +7553,16 @@ fi LDFLAGS_NODIST="$LDFLAGS_NODIST $LTOFLAGS" fi -# Enable bolt flags -Py_BOLT='false' -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --enable-bolt" >&5 -$as_echo_n "checking for --enable-bolt... " >&6; } -# Check whether --enable-bolt was given. -if test "${enable_bolt+set}" = set; then : - enableval=$enable_bolt; -if test "$enableval" != no -then - Py_BOLT='true' - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; }; -else - Py_BOLT='false' - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; }; -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi +# Enable PGO flags. -if test "$Py_BOLT" = 'true' ; then - PREBOLT_RULE="${DEF_MAKE_ALL_RULE}" - DEF_MAKE_ALL_RULE="bolt-opt" - DEF_MAKE_RULE="build_all" - # These flags are required for bolt to work: - CFLAGS_NODIST="$CFLAGS_NODIST -fno-reorder-blocks-and-partition" - LDFLAGS_NODIST="$LDFLAGS_NODIST -Wl,--emit-relocs" - # These flags are required to get good performance from bolt: - CFLAGS_NODIST="$CFLAGS_NODIST -fno-pie" - # We want to add these no-pie flags to linking executables but not shared libraries: - LINKCC="$LINKCC -fno-pie -no-pie" - # Designate the DWARF version into 4 since the LLVM-BOLT does not support DWARF5 yet. - CFLAGS="$CFLAGS -gdwarf-4" - LDFLAGS="$LDFLAGS -gdwarf-4" - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}llvm-bolt", so it can be a program name with args. -set dummy ${ac_tool_prefix}llvm-bolt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_LLVM_BOLT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $LLVM_BOLT in - [\\/]* | ?:[\\/]*) - ac_cv_path_LLVM_BOLT="$LLVM_BOLT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in ${llvm_path} -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_LLVM_BOLT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -LLVM_BOLT=$ac_cv_path_LLVM_BOLT -if test -n "$LLVM_BOLT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_BOLT" >&5 -$as_echo "$LLVM_BOLT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_path_LLVM_BOLT"; then - ac_pt_LLVM_BOLT=$LLVM_BOLT - # Extract the first word of "llvm-bolt", so it can be a program name with args. -set dummy llvm-bolt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_ac_pt_LLVM_BOLT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $ac_pt_LLVM_BOLT in - [\\/]* | ?:[\\/]*) - ac_cv_path_ac_pt_LLVM_BOLT="$ac_pt_LLVM_BOLT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in ${llvm_path} -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_ac_pt_LLVM_BOLT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -ac_pt_LLVM_BOLT=$ac_cv_path_ac_pt_LLVM_BOLT -if test -n "$ac_pt_LLVM_BOLT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_LLVM_BOLT" >&5 -$as_echo "$ac_pt_LLVM_BOLT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_pt_LLVM_BOLT" = x; then - LLVM_BOLT="''" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - LLVM_BOLT=$ac_pt_LLVM_BOLT - fi -else - LLVM_BOLT="$ac_cv_path_LLVM_BOLT" -fi - - if test -n "${LLVM_BOLT}" -a -x "${LLVM_BOLT}" - then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"Found llvm-bolt\"" >&5 -$as_echo "\"Found llvm-bolt\"" >&6; } - else - as_fn_error $? "llvm-bolt is required for a --enable-bolt build but could not be found." "$LINENO" 5 - fi - - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}merge-fdata", so it can be a program name with args. -set dummy ${ac_tool_prefix}merge-fdata; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MERGE_FDATA+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $MERGE_FDATA in - [\\/]* | ?:[\\/]*) - ac_cv_path_MERGE_FDATA="$MERGE_FDATA" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in ${llvm_path} -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_MERGE_FDATA="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -MERGE_FDATA=$ac_cv_path_MERGE_FDATA -if test -n "$MERGE_FDATA"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MERGE_FDATA" >&5 -$as_echo "$MERGE_FDATA" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_path_MERGE_FDATA"; then - ac_pt_MERGE_FDATA=$MERGE_FDATA - # Extract the first word of "merge-fdata", so it can be a program name with args. -set dummy merge-fdata; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_ac_pt_MERGE_FDATA+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $ac_pt_MERGE_FDATA in - [\\/]* | ?:[\\/]*) - ac_cv_path_ac_pt_MERGE_FDATA="$ac_pt_MERGE_FDATA" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in ${llvm_path} -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_ac_pt_MERGE_FDATA="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -ac_pt_MERGE_FDATA=$ac_cv_path_ac_pt_MERGE_FDATA -if test -n "$ac_pt_MERGE_FDATA"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_MERGE_FDATA" >&5 -$as_echo "$ac_pt_MERGE_FDATA" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_pt_MERGE_FDATA" = x; then - MERGE_FDATA="''" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - MERGE_FDATA=$ac_pt_MERGE_FDATA - fi -else - MERGE_FDATA="$ac_cv_path_MERGE_FDATA" -fi - - if test -n "${MERGE_FDATA}" -a -x "${MERGE_FDATA}" - then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"Found merge-fdata\"" >&5 -$as_echo "\"Found merge-fdata\"" >&6; } - else - as_fn_error $? "merge-fdata is required for a --enable-bolt build but could not be found." "$LINENO" 5 - fi -fi - -# Enable PGO flags. - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}llvm-profdata", so it can be a program name with args. -set dummy ${ac_tool_prefix}llvm-profdata; ac_word=$2 +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}llvm-profdata", so it can be a program name with args. +set dummy ${ac_tool_prefix}llvm-profdata; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_LLVM_PROFDATA+:} false; then : @@ -8524,8 +7856,6 @@ fi as_fn_append LDFLAGS_NODIST " -sALLOW_MEMORY_GROWTH -sTOTAL_MEMORY=20971520" - as_fn_append LDFLAGS_NODIST " -sWASM_BIGINT" - as_fn_append LDFLAGS_NODIST " -sFORCE_FILESYSTEM -lidbfs.js -lnodefs.js -lproxyfs.js -lworkerfs.js" if test "x$enable_wasm_dynamic_linking" = xyes; then : @@ -9521,9 +8851,8 @@ $as_echo "#define STDC_HEADERS 1" >>confdefs.h # checks for header files for ac_header in \ alloca.h asm/types.h bluetooth.h conio.h crypt.h direct.h dlfcn.h endian.h errno.h fcntl.h grp.h \ - ieeefp.h io.h langinfo.h libintl.h libutil.h linux/auxvec.h sys/auxv.h linux/fs.h linux/memfd.h \ - linux/random.h linux/soundcard.h \ - linux/tipc.h linux/wait.h netdb.h netinet/in.h netpacket/packet.h poll.h process.h pthread.h pty.h \ + ieeefp.h io.h langinfo.h libintl.h libutil.h linux/auxvec.h sys/auxv.h linux/memfd.h linux/random.h linux/soundcard.h \ + linux/tipc.h linux/wait.h netinet/in.h netpacket/packet.h poll.h process.h pthread.h pty.h \ sched.h setjmp.h shadow.h signal.h spawn.h stropts.h sys/audioio.h sys/bsdtty.h sys/devpoll.h \ sys/endian.h sys/epoll.h sys/event.h sys/eventfd.h sys/file.h sys/ioctl.h sys/kern_control.h \ sys/loadavg.h sys/lock.h sys/memfd.h sys/mkdev.h sys/mman.h sys/modem.h sys/param.h sys/poll.h \ @@ -11056,81 +10385,6 @@ else $as_echo "no" >&6; } fi -# Check for --with-dsymutil - - -DSYMUTIL= -DSYMUTIL_PATH= -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-dsymutil" >&5 -$as_echo_n "checking for --with-dsymutil... " >&6; } - -# Check whether --with-dsymutil was given. -if test "${with_dsymutil+set}" = set; then : - withval=$with_dsymutil; -if test "$withval" != no -then - if test "$MACHDEP" != "darwin"; then - as_fn_error $? "dsymutil debug linking is only available in macOS." "$LINENO" 5 - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; }; - DSYMUTIL='true' -else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; }; DSYMUTIL= -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -if test "$DSYMUTIL"; then - # Extract the first word of "dsymutil", so it can be a program name with args. -set dummy dsymutil; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_DSYMUTIL_PATH+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $DSYMUTIL_PATH in - [\\/]* | ?:[\\/]*) - ac_cv_path_DSYMUTIL_PATH="$DSYMUTIL_PATH" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_DSYMUTIL_PATH="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_DSYMUTIL_PATH" && ac_cv_path_DSYMUTIL_PATH="not found" - ;; -esac -fi -DSYMUTIL_PATH=$ac_cv_path_DSYMUTIL_PATH -if test -n "$DSYMUTIL_PATH"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL_PATH" >&5 -$as_echo "$DSYMUTIL_PATH" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test "$DSYMUTIL_PATH" = "not found"; then - as_fn_error $? "dsymutil command not found on \$PATH" "$LINENO" 5 - fi -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dyld" >&5 $as_echo_n "checking for dyld... " >&6; } case $ac_sys_system/$ac_sys_release in @@ -11575,35 +10829,6 @@ esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SHLIBS" >&5 $as_echo "$SHLIBS" >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking perf trampoline" >&5 -$as_echo_n "checking perf trampoline... " >&6; } -case $PLATFORM_TRIPLET in #( - x86_64-linux-gnu) : - perf_trampoline=yes ;; #( - aarch64-linux-gnu) : - perf_trampoline=yes ;; #( - *) : - perf_trampoline=no - ;; -esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $perf_trampoline" >&5 -$as_echo "$perf_trampoline" >&6; } - -if test "x$perf_trampoline" = xyes; then : - - -$as_echo "#define PY_HAVE_PERF_TRAMPOLINE 1" >>confdefs.h - - PERF_TRAMPOLINE_OBJ=Objects/asm_trampoline.o - - if test "x$Py_DEBUG" = xtrue; then : - - as_fn_append BASECFLAGS " -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer" - -fi - -fi - # checks for libraries { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sendfile in -lsendfile" >&5 @@ -11840,15 +11065,7 @@ fi echo "$LIBUUID_PKG_ERRORS" >&5 - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS - - - CPPFLAGS="$CPPFLAGS $LIBUUID_CFLAGS" - LDFLAGS="$LDFLAGS $LIBUUID_LIBS" - for ac_header in uuid/uuid.h + for ac_header in uuid/uuid.h do : ac_fn_c_check_header_mongrel "$LINENO" "uuid/uuid.h" "ac_cv_header_uuid_uuid_h" "$ac_includes_default" if test "x$ac_cv_header_uuid_uuid_h" = xyes; then : @@ -11856,7 +11073,11 @@ if test "x$ac_cv_header_uuid_uuid_h" = xyes; then : #define HAVE_UUID_UUID_H 1 _ACEOF - py_check_lib_save_LIBS=$LIBS + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_generate_time in -luuid" >&5 $as_echo_n "checking for uuid_generate_time in -luuid... " >&6; } if ${ac_cv_lib_uuid_uuid_generate_time+:} false; then : @@ -11897,10 +11118,20 @@ if test "x$ac_cv_lib_uuid_uuid_generate_time" = xyes; then : have_uuid=yes fi -LIBS=$py_check_lib_save_LIBS - py_check_lib_save_LIBS=$LIBS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_generate_time_safe in -luuid" >&5 +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS + + + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_generate_time_safe in -luuid" >&5 $as_echo_n "checking for uuid_generate_time_safe in -luuid... " >&6; } if ${ac_cv_lib_uuid_uuid_generate_time_safe+:} false; then : $as_echo_n "(cached) " >&6 @@ -11937,18 +11168,19 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_uuid_uuid_generate_time_safe" >&5 $as_echo "$ac_cv_lib_uuid_uuid_generate_time_safe" >&6; } if test "x$ac_cv_lib_uuid_uuid_generate_time_safe" = xyes; then : - have_uuid=yes + + have_uuid=yes $as_echo "#define HAVE_UUID_GENERATE_TIME_SAFE 1" >>confdefs.h fi -LIBS=$py_check_lib_save_LIBS +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS -fi - -done if test "x$have_uuid" = xyes; then : @@ -11957,11 +11189,9 @@ done fi -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS +fi +done @@ -11969,15 +11199,7 @@ elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS - - - CPPFLAGS="$CPPFLAGS $LIBUUID_CFLAGS" - LDFLAGS="$LDFLAGS $LIBUUID_LIBS" - for ac_header in uuid/uuid.h + for ac_header in uuid/uuid.h do : ac_fn_c_check_header_mongrel "$LINENO" "uuid/uuid.h" "ac_cv_header_uuid_uuid_h" "$ac_includes_default" if test "x$ac_cv_header_uuid_uuid_h" = xyes; then : @@ -11985,7 +11207,11 @@ if test "x$ac_cv_header_uuid_uuid_h" = xyes; then : #define HAVE_UUID_UUID_H 1 _ACEOF - py_check_lib_save_LIBS=$LIBS + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_generate_time in -luuid" >&5 $as_echo_n "checking for uuid_generate_time in -luuid... " >&6; } if ${ac_cv_lib_uuid_uuid_generate_time+:} false; then : @@ -12026,10 +11252,20 @@ if test "x$ac_cv_lib_uuid_uuid_generate_time" = xyes; then : have_uuid=yes fi -LIBS=$py_check_lib_save_LIBS - py_check_lib_save_LIBS=$LIBS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_generate_time_safe in -luuid" >&5 +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS + + + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_generate_time_safe in -luuid" >&5 $as_echo_n "checking for uuid_generate_time_safe in -luuid... " >&6; } if ${ac_cv_lib_uuid_uuid_generate_time_safe+:} false; then : $as_echo_n "(cached) " >&6 @@ -12066,18 +11302,19 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_uuid_uuid_generate_time_safe" >&5 $as_echo "$ac_cv_lib_uuid_uuid_generate_time_safe" >&6; } if test "x$ac_cv_lib_uuid_uuid_generate_time_safe" = xyes; then : - have_uuid=yes + + have_uuid=yes $as_echo "#define HAVE_UUID_GENERATE_TIME_SAFE 1" >>confdefs.h fi -LIBS=$py_check_lib_save_LIBS - -fi +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS -done if test "x$have_uuid" = xyes; then : @@ -12086,11 +11323,9 @@ done fi -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS +fi +done @@ -12591,6 +11826,7 @@ fi + # Check for use of the system libffi library { $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-system-ffi" >&5 $as_echo_n "checking for --with-system-ffi... " >&6; } @@ -12626,24 +11862,160 @@ $as_echo "$as_me: WARNING: --with(out)-system-ffi is ignored on this platform" > with_system_ffi="yes" fi -have_libffi=missing -if test "x$with_system_ffi" = xyes; then : +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="" +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; } + +# Check whether --with-system_libmpdec was given. +if test "${with_system_libmpdec+set}" = set; then : + withval=$with_system_libmpdec; +else + with_system_libmpdec="no" +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_system_libmpdec" >&5 +$as_echo "$with_system_libmpdec" >&6; } + +if test "x$with_system_libmpdec" = xyes; then : + + LIBMPDEC_CFLAGS=${LIBMPDEC_CFLAGS-""} + LIBMPDEC_LDFLAGS=${LIBMPDEC_LDFLAGS-"-lmpdec"} + LIBMPDEC_INTERNAL= + +else + + LIBMPDEC_CFLAGS="-I\$(srcdir)/Modules/_decimal/libmpdec" + LIBMPDEC_LDFLAGS="-lm \$(LIBMPDEC_A)" + LIBMPDEC_INTERNAL="\$(LIBMPDEC_A)" + +fi + + + + + +# Check whether _decimal should use a coroutine-local or thread-local context +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-decimal-contextvar" >&5 +$as_echo_n "checking for --with-decimal-contextvar... " >&6; } + +# Check whether --with-decimal_contextvar was given. +if test "${with_decimal_contextvar+set}" = set; then : + withval=$with_decimal_contextvar; +else + with_decimal_contextvar="yes" +fi + + +if test "$with_decimal_contextvar" != "no" +then + +$as_echo "#define WITH_DECIMAL_CONTEXTVAR 1" >>confdefs.h + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_decimal_contextvar" >&5 +$as_echo "$with_decimal_contextvar" >&6; } + +# Check for libmpdec machine flavor +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for decimal libmpdec machine" >&5 +$as_echo_n "checking for decimal libmpdec machine... " >&6; } +case $ac_sys_system in #( + Darwin*) : + libmpdec_system=Darwin ;; #( + SunOS*) : + libmpdec_system=sunos ;; #( + *) : + libmpdec_system=other + ;; +esac + +libmpdec_machine=unknown +if test "$libmpdec_system" = Darwin; then + # universal here means: build libmpdec with the same arch options + # the python interpreter was built with + libmpdec_machine=universal +elif test $ac_cv_sizeof_size_t -eq 8; then + if test "$ac_cv_gcc_asm_for_x64" = yes; then + libmpdec_machine=x64 + elif test "$ac_cv_type___uint128_t" = yes; then + libmpdec_machine=uint128 + else + libmpdec_machine=ansi64 + fi +elif test $ac_cv_sizeof_size_t -eq 4; then + if test "$ac_cv_gcc_asm_for_x87" = yes -a "$libmpdec_system" != sunos; then + case $CC in #( + *gcc*) : + libmpdec_machine=ppro ;; #( + *clang*) : + libmpdec_machine=ppro ;; #( + *) : + libmpdec_machine=ansi32 + ;; +esac + else + libmpdec_machine=ansi32 + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libmpdec_machine" >&5 +$as_echo "$libmpdec_machine" >&6; } + +case $libmpdec_machine in #( + x64) : + as_fn_append LIBMPDEC_CFLAGS " -DCONFIG_64=1 -DASM=1" ;; #( + uint128) : + as_fn_append LIBMPDEC_CFLAGS " -DCONFIG_64=1 -DANSI=1 -DHAVE_UINT128_T=1" ;; #( + ansi64) : + as_fn_append LIBMPDEC_CFLAGS " -DCONFIG_64=1 -DANSI=1" ;; #( + ppro) : + as_fn_append LIBMPDEC_CFLAGS " -DCONFIG_32=1 -DANSI=1 -DASM=1 -Wno-unknown-pragmas" ;; #( + ansi32) : + as_fn_append LIBMPDEC_CFLAGS " -DCONFIG_32=1 -DANSI=1" ;; #( + ansi-legacy) : + as_fn_append LIBMPDEC_CFLAGS " -DCONFIG_32=1 -DANSI=1 -DLEGACY_COMPILER=1" ;; #( + universal) : + as_fn_append LIBMPDEC_CFLAGS " -DUNIVERSAL=1" ;; #( + *) : + as_fn_error $? "_decimal: unsupported architecture" "$LINENO" 5 + ;; +esac + +if test "$have_ipa_pure_const_bug" = yes; then + # Some versions of gcc miscompile inline asm: + # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46491 + # https://gcc.gnu.org/ml/gcc/2010-11/msg00366.html + as_fn_append LIBMPDEC_CFLAGS " -fno-ipa-pure-const" +fi + +if test "$have_glibc_memmove_bug" = yes; then + # _FORTIFY_SOURCE wrappers for memmove and bcopy are incorrect: + # https://sourceware.org/ml/libc-alpha/2010-12/msg00009.html + as_fn_append LIBMPDEC_CFLAGS " -U_FORTIFY_SOURCE" +fi + pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBFFI" >&5 -$as_echo_n "checking for LIBFFI... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBNSL" >&5 +$as_echo_n "checking for LIBNSL... " >&6; } -if test -n "$LIBFFI_CFLAGS"; then - pkg_cv_LIBFFI_CFLAGS="$LIBFFI_CFLAGS" +if test -n "$LIBNSL_CFLAGS"; then + pkg_cv_LIBNSL_CFLAGS="$LIBNSL_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libffi\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libffi") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libnsl\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libnsl") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_LIBFFI_CFLAGS=`$PKG_CONFIG --cflags "libffi" 2>/dev/null` + pkg_cv_LIBNSL_CFLAGS=`$PKG_CONFIG --cflags "libnsl" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -12651,16 +12023,16 @@ fi else pkg_failed=untried fi -if test -n "$LIBFFI_LIBS"; then - pkg_cv_LIBFFI_LIBS="$LIBFFI_LIBS" +if test -n "$LIBNSL_LIBS"; then + pkg_cv_LIBNSL_LIBS="$LIBNSL_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libffi\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libffi") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libnsl\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libnsl") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_LIBFFI_LIBS=`$PKG_CONFIG --libs "libffi" 2>/dev/null` + pkg_cv_LIBNSL_LIBS=`$PKG_CONFIG --libs "libnsl" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -12681,32 +12053,27 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - LIBFFI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libffi" 2>&1` + LIBNSL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libnsl" 2>&1` else - LIBFFI_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libffi" 2>&1` + LIBNSL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libnsl" 2>&1` fi # Put the nasty error message in config.log where it belongs - echo "$LIBFFI_PKG_ERRORS" >&5 + echo "$LIBNSL_PKG_ERRORS" >&5 - save_CFLAGS=$CFLAGS + LIBNSL_CFLAGS=${LIBNSL_CFLAGS-""} + save_CFLAGS=$CFLAGS save_CPPFLAGS=$CPPFLAGS save_LDFLAGS=$LDFLAGS save_LIBS=$LIBS - CPPFLAGS="$CPPFLAGS $LIBFFI_CFLAGS" - LDFLAGS="$LDFLAGS $LIBFFI_LIBS" - ac_fn_c_check_header_mongrel "$LINENO" "ffi.h" "ac_cv_header_ffi_h" "$ac_includes_default" -if test "x$ac_cv_header_ffi_h" = xyes; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ffi_call in -lffi" >&5 -$as_echo_n "checking for ffi_call in -lffi... " >&6; } -if ${ac_cv_lib_ffi_ffi_call+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing yp_match" >&5 +$as_echo_n "checking for library containing yp_match... " >&6; } +if ${ac_cv_search_yp_match+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lffi $LIBS" + ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -12716,39 +12083,48 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char ffi_call (); +char yp_match (); int main () { -return ffi_call (); +return yp_match (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_ffi_ffi_call=yes -else - ac_cv_lib_ffi_ffi_call=no +for ac_lib in '' nsl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_yp_match=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + conftest$ac_exeext + if ${ac_cv_search_yp_match+:} false; then : + break fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ffi_ffi_call" >&5 -$as_echo "$ac_cv_lib_ffi_ffi_call" >&6; } -if test "x$ac_cv_lib_ffi_ffi_call" = xyes; then : - - have_libffi=yes - LIBFFI_CFLAGS=${LIBFFI_CFLAGS-""} - LIBFFI_LIBS=${LIBFFI_LIBS-"-lffi"} +done +if ${ac_cv_search_yp_match+:} false; then : else - have_libffi=no + ac_cv_search_yp_match=no fi - - +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_yp_match" >&5 +$as_echo "$ac_cv_search_yp_match" >&6; } +ac_res=$ac_cv_search_yp_match +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + have_nis=yes +else + have_nis=no fi - CFLAGS=$save_CFLAGS @@ -12757,29 +12133,34 @@ LDFLAGS=$save_LDFLAGS LIBS=$save_LIBS + case $ac_cv_search_yp_match in #( + no) : + libnsl="" ;; #( + "none required") : + libnsl="" ;; #( + *) : + libnsl="$ac_cv_search_yp_match" + ;; +esac + LIBNSL_LIBS=${LIBNSL_LIBS-$libnsl} elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - save_CFLAGS=$CFLAGS + LIBNSL_CFLAGS=${LIBNSL_CFLAGS-""} + save_CFLAGS=$CFLAGS save_CPPFLAGS=$CPPFLAGS save_LDFLAGS=$LDFLAGS save_LIBS=$LIBS - CPPFLAGS="$CPPFLAGS $LIBFFI_CFLAGS" - LDFLAGS="$LDFLAGS $LIBFFI_LIBS" - ac_fn_c_check_header_mongrel "$LINENO" "ffi.h" "ac_cv_header_ffi_h" "$ac_includes_default" -if test "x$ac_cv_header_ffi_h" = xyes; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ffi_call in -lffi" >&5 -$as_echo_n "checking for ffi_call in -lffi... " >&6; } -if ${ac_cv_lib_ffi_ffi_call+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lffi $LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing yp_match" >&5 +$as_echo_n "checking for library containing yp_match... " >&6; } +if ${ac_cv_search_yp_match+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -12789,39 +12170,48 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char ffi_call (); +char yp_match (); int main () { -return ffi_call (); +return yp_match (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_ffi_ffi_call=yes -else - ac_cv_lib_ffi_ffi_call=no +for ac_lib in '' nsl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_yp_match=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + conftest$ac_exeext + if ${ac_cv_search_yp_match+:} false; then : + break fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ffi_ffi_call" >&5 -$as_echo "$ac_cv_lib_ffi_ffi_call" >&6; } -if test "x$ac_cv_lib_ffi_ffi_call" = xyes; then : - - have_libffi=yes - LIBFFI_CFLAGS=${LIBFFI_CFLAGS-""} - LIBFFI_LIBS=${LIBFFI_LIBS-"-lffi"} +done +if ${ac_cv_search_yp_match+:} false; then : else - have_libffi=no + ac_cv_search_yp_match=no fi - - +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_yp_match" >&5 +$as_echo "$ac_cv_search_yp_match" >&6; } +ac_res=$ac_cv_search_yp_match +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + have_nis=yes +else + have_nis=no fi - CFLAGS=$save_CFLAGS @@ -12830,78 +12220,45 @@ LDFLAGS=$save_LDFLAGS LIBS=$save_LIBS + case $ac_cv_search_yp_match in #( + no) : + libnsl="" ;; #( + "none required") : + libnsl="" ;; #( + *) : + libnsl="$ac_cv_search_yp_match" + ;; +esac + LIBNSL_LIBS=${LIBNSL_LIBS-$libnsl} else - LIBFFI_CFLAGS=$pkg_cv_LIBFFI_CFLAGS - LIBFFI_LIBS=$pkg_cv_LIBFFI_LIBS + LIBNSL_CFLAGS=$pkg_cv_LIBNSL_CFLAGS + LIBNSL_LIBS=$pkg_cv_LIBNSL_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - have_libffi=yes + have_nis=yes fi -else - - if test "x$ac_sys_system" = xDarwin; then : +if test "x$have_nis" = xyes; then : - save_CFLAGS=$CFLAGS + save_CFLAGS=$CFLAGS save_CPPFLAGS=$CPPFLAGS save_LDFLAGS=$LDFLAGS save_LIBS=$LIBS - CFLAGS="-I${SDKROOT}/usr/include/ffi $CFLAGS" - ac_fn_c_check_header_mongrel "$LINENO" "ffi.h" "ac_cv_header_ffi_h" "$ac_includes_default" -if test "x$ac_cv_header_ffi_h" = xyes; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ffi_call in -lffi" >&5 -$as_echo_n "checking for ffi_call in -lffi... " >&6; } -if ${ac_cv_lib_ffi_ffi_call+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lffi $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ffi_call (); -int -main () -{ -return ffi_call (); - ; - return 0; -} + CPPFLAGS="$LIBNSL_CFLAGS $CFLAGS" + for ac_header in rpc/rpc.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "rpc/rpc.h" "ac_cv_header_rpc_rpc_h" "$ac_includes_default" +if test "x$ac_cv_header_rpc_rpc_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_RPC_RPC_H 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_ffi_ffi_call=yes -else - ac_cv_lib_ffi_ffi_call=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ffi_ffi_call" >&5 -$as_echo "$ac_cv_lib_ffi_ffi_call" >&6; } -if test "x$ac_cv_lib_ffi_ffi_call" = xyes; then : - - have_libffi=yes - LIBFFI_CFLAGS="-I${SDKROOT}/usr/include/ffi -DUSING_APPLE_OS_LIBFFI=1" - LIBFFI_LIBS="-lffi" - -else - have_libffi=no -fi - fi +done CFLAGS=$save_CFLAGS @@ -12913,372 +12270,497 @@ LIBS=$save_LIBS fi -fi +case $ac_sys_system in #( + NetBSD*) : + OSSAUDIODEV_LIBS="-lossaudio" ;; #( + *) : + OSSAUDIODEV_LIBS="" + ;; +esac -if test "x$have_libffi" = xyes; then : - ctypes_malloc_closure=no - case $ac_sys_system in #( - Darwin) : +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBSQLITE3" >&5 +$as_echo_n "checking for LIBSQLITE3... " >&6; } + +if test -n "$LIBSQLITE3_CFLAGS"; then + pkg_cv_LIBSQLITE3_CFLAGS="$LIBSQLITE3_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sqlite3 >= 3.7.15\""; } >&5 + ($PKG_CONFIG --exists --print-errors "sqlite3 >= 3.7.15") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBSQLITE3_CFLAGS=`$PKG_CONFIG --cflags "sqlite3 >= 3.7.15" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$LIBSQLITE3_LIBS"; then + pkg_cv_LIBSQLITE3_LIBS="$LIBSQLITE3_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sqlite3 >= 3.7.15\""; } >&5 + ($PKG_CONFIG --exists --print-errors "sqlite3 >= 3.7.15") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBSQLITE3_LIBS=`$PKG_CONFIG --libs "sqlite3 >= 3.7.15" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi - as_fn_append LIBFFI_CFLAGS " -I\$(srcdir)/Modules/_ctypes/darwin -DMACOSX" - ctypes_malloc_closure=yes - ;; #( - sunos5) : - as_fn_append LIBFFI_LIBS " -mimpure-text" - ;; #( - *) : - ;; -esac - if test "x$ctypes_malloc_closure" = xyes; then : - MODULE__CTYPES_MALLOC_CLOSURE=_ctypes/malloc_closure.c - as_fn_append LIBFFI_CFLAGS " -DUSING_MALLOC_CLOSURE_DOT_C=1" +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no fi + if test $_pkg_short_errors_supported = yes; then + LIBSQLITE3_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "sqlite3 >= 3.7.15" 2>&1` + else + LIBSQLITE3_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "sqlite3 >= 3.7.15" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$LIBSQLITE3_PKG_ERRORS" >&5 + + + LIBSQLITE3_CFLAGS=${LIBSQLITE3_CFLAGS-""} + LIBSQLITE3_LIBS=${LIBSQLITE3_LIBS-"-lsqlite3"} + + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + LIBSQLITE3_CFLAGS=${LIBSQLITE3_CFLAGS-""} + LIBSQLITE3_LIBS=${LIBSQLITE3_LIBS-"-lsqlite3"} + + +else + LIBSQLITE3_CFLAGS=$pkg_cv_LIBSQLITE3_CFLAGS + LIBSQLITE3_LIBS=$pkg_cv_LIBSQLITE3_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - if test "x$ac_cv_lib_dl_dlopen" = xyes; then : - as_fn_append LIBFFI_LIBS " -ldl" fi +as_fn_append LIBSQLITE3_CFLAGS ' -I$(srcdir)/Modules/_sqlite' - save_CFLAGS=$CFLAGS + + +save_CFLAGS=$CFLAGS save_CPPFLAGS=$CPPFLAGS save_LDFLAGS=$LDFLAGS save_LIBS=$LIBS - CFLAGS="$LIBFFI_CFLAGS $CFLAGS" - LDFLAGS="$LIBFFI_LIBS $LDFLAGS" + CPPFLAGS="$LIBSQLITE3_CFLAGS $CFLAGS" + LDFLAGS="$LIBSQLITE3_LIBS $LDFLAGS" + ac_fn_c_check_header_mongrel "$LINENO" "sqlite3.h" "ac_cv_header_sqlite3_h" "$ac_includes_default" +if test "x$ac_cv_header_sqlite3_h" = xyes; then : + have_sqlite3=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ffi_prep_cif_var" >&5 -$as_echo_n "checking for ffi_prep_cif_var... " >&6; } -if ${ac_cv_func_ffi_prep_cif_var+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <ffi.h> + + + #include <sqlite3.h> + #if SQLITE_VERSION_NUMBER < 3007015 + # error "SQLite 3.7.15 or higher required" + #endif + int main () { -void *x=ffi_prep_cif_var + ; return 0; } + _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_ffi_prep_cif_var=yes -else - ac_cv_func_ffi_prep_cif_var=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_ffi_prep_cif_var" >&5 -$as_echo "$ac_cv_func_ffi_prep_cif_var" >&6; } - if test "x$ac_cv_func_ffi_prep_cif_var" = xyes; then : - -$as_echo "#define HAVE_FFI_PREP_CIF_VAR 1" >>confdefs.h - -fi - - - + have_supported_sqlite3=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ffi_prep_closure_loc" >&5 -$as_echo_n "checking for ffi_prep_closure_loc... " >&6; } -if ${ac_cv_func_ffi_prep_closure_loc+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_bind_double in -lsqlite3" >&5 +$as_echo_n "checking for sqlite3_bind_double in -lsqlite3... " >&6; } +if ${ac_cv_lib_sqlite3_sqlite3_bind_double+:} false; then : $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsqlite3 $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <ffi.h> + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char sqlite3_bind_double (); int main () { -void *x=ffi_prep_closure_loc +return sqlite3_bind_double (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_ffi_prep_closure_loc=yes +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_sqlite3_sqlite3_bind_double=yes else - ac_cv_func_ffi_prep_closure_loc=no + ac_cv_lib_sqlite3_sqlite3_bind_double=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_ffi_prep_closure_loc" >&5 -$as_echo "$ac_cv_func_ffi_prep_closure_loc" >&6; } - if test "x$ac_cv_func_ffi_prep_closure_loc" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_bind_double" >&5 +$as_echo "$ac_cv_lib_sqlite3_sqlite3_bind_double" >&6; } +if test "x$ac_cv_lib_sqlite3_sqlite3_bind_double" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBSQLITE3 1 +_ACEOF -$as_echo "#define HAVE_FFI_PREP_CLOSURE_LOC 1" >>confdefs.h + LIBS="-lsqlite3 $LIBS" -fi +else + have_supported_sqlite3=no +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ffi_closure_alloc" >&5 -$as_echo_n "checking for ffi_closure_alloc... " >&6; } -if ${ac_cv_func_ffi_closure_alloc+:} false; then : - $as_echo_n "(cached) " >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_column_decltype in -lsqlite3" >&5 +$as_echo_n "checking for sqlite3_column_decltype in -lsqlite3... " >&6; } +if ${ac_cv_lib_sqlite3_sqlite3_column_decltype+:} false; then : + $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsqlite3 $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <ffi.h> + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char sqlite3_column_decltype (); int main () { -void *x=ffi_closure_alloc +return sqlite3_column_decltype (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_ffi_closure_alloc=yes +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_sqlite3_sqlite3_column_decltype=yes else - ac_cv_func_ffi_closure_alloc=no + ac_cv_lib_sqlite3_sqlite3_column_decltype=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_ffi_closure_alloc" >&5 -$as_echo "$ac_cv_func_ffi_closure_alloc" >&6; } - if test "x$ac_cv_func_ffi_closure_alloc" = xyes; then : - -$as_echo "#define HAVE_FFI_CLOSURE_ALLOC 1" >>confdefs.h +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_column_decltype" >&5 +$as_echo "$ac_cv_lib_sqlite3_sqlite3_column_decltype" >&6; } +if test "x$ac_cv_lib_sqlite3_sqlite3_column_decltype" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBSQLITE3 1 +_ACEOF -fi + LIBS="-lsqlite3 $LIBS" +else + have_supported_sqlite3=no +fi -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_column_double in -lsqlite3" >&5 +$as_echo_n "checking for sqlite3_column_double in -lsqlite3... " >&6; } +if ${ac_cv_lib_sqlite3_sqlite3_column_double+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsqlite3 $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char sqlite3_column_double (); +int +main () +{ +return sqlite3_column_double (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_sqlite3_sqlite3_column_double=yes +else + ac_cv_lib_sqlite3_sqlite3_column_double=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_column_double" >&5 +$as_echo "$ac_cv_lib_sqlite3_sqlite3_column_double" >&6; } +if test "x$ac_cv_lib_sqlite3_sqlite3_column_double" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBSQLITE3 1 +_ACEOF -# 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; } + LIBS="-lsqlite3 $LIBS" -# Check whether --with-system_libmpdec was given. -if test "${with_system_libmpdec+set}" = set; then : - withval=$with_system_libmpdec; else - with_system_libmpdec="no" + + have_supported_sqlite3=no + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_system_libmpdec" >&5 -$as_echo "$with_system_libmpdec" >&6; } -if test "x$with_system_libmpdec" = xyes; then : - LIBMPDEC_CFLAGS=${LIBMPDEC_CFLAGS-""} - LIBMPDEC_LDFLAGS=${LIBMPDEC_LDFLAGS-"-lmpdec"} - LIBMPDEC_INTERNAL= + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_complete in -lsqlite3" >&5 +$as_echo_n "checking for sqlite3_complete in -lsqlite3... " >&6; } +if ${ac_cv_lib_sqlite3_sqlite3_complete+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsqlite3 $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char sqlite3_complete (); +int +main () +{ +return sqlite3_complete (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_sqlite3_sqlite3_complete=yes else + ac_cv_lib_sqlite3_sqlite3_complete=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_complete" >&5 +$as_echo "$ac_cv_lib_sqlite3_sqlite3_complete" >&6; } +if test "x$ac_cv_lib_sqlite3_sqlite3_complete" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBSQLITE3 1 +_ACEOF - LIBMPDEC_CFLAGS="-I\$(srcdir)/Modules/_decimal/libmpdec" - LIBMPDEC_LDFLAGS="-lm \$(LIBMPDEC_A)" - LIBMPDEC_INTERNAL="\$(LIBMPDEC_A)" + LIBS="-lsqlite3 $LIBS" - if test "x$with_pydebug" = xyes; then : +else - as_fn_append LIBMPDEC_CFLAGS " -DTEST_COVERAGE" + have_supported_sqlite3=no fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_enable_shared_cache in -lsqlite3" >&5 +$as_echo_n "checking for sqlite3_enable_shared_cache in -lsqlite3... " >&6; } +if ${ac_cv_lib_sqlite3_sqlite3_enable_shared_cache+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsqlite3 $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char sqlite3_enable_shared_cache (); +int +main () +{ +return sqlite3_enable_shared_cache (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_sqlite3_sqlite3_enable_shared_cache=yes +else + ac_cv_lib_sqlite3_sqlite3_enable_shared_cache=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_enable_shared_cache" >&5 +$as_echo "$ac_cv_lib_sqlite3_sqlite3_enable_shared_cache" >&6; } +if test "x$ac_cv_lib_sqlite3_sqlite3_enable_shared_cache" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBSQLITE3 1 +_ACEOF + LIBS="-lsqlite3 $LIBS" +else + have_supported_sqlite3=no -# Check whether _decimal should use a coroutine-local or thread-local context -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-decimal-contextvar" >&5 -$as_echo_n "checking for --with-decimal-contextvar... " >&6; } +fi -# Check whether --with-decimal_contextvar was given. -if test "${with_decimal_contextvar+set}" = set; then : - withval=$with_decimal_contextvar; + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_progress_handler in -lsqlite3" >&5 +$as_echo_n "checking for sqlite3_progress_handler in -lsqlite3... " >&6; } +if ${ac_cv_lib_sqlite3_sqlite3_progress_handler+:} false; then : + $as_echo_n "(cached) " >&6 else - with_decimal_contextvar="yes" + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsqlite3 $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char sqlite3_progress_handler (); +int +main () +{ +return sqlite3_progress_handler (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_sqlite3_sqlite3_progress_handler=yes +else + ac_cv_lib_sqlite3_sqlite3_progress_handler=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_progress_handler" >&5 +$as_echo "$ac_cv_lib_sqlite3_sqlite3_progress_handler" >&6; } +if test "x$ac_cv_lib_sqlite3_sqlite3_progress_handler" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBSQLITE3 1 +_ACEOF + LIBS="-lsqlite3 $LIBS" -if test "$with_decimal_contextvar" != "no" -then +else -$as_echo "#define WITH_DECIMAL_CONTEXTVAR 1" >>confdefs.h + have_supported_sqlite3=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_decimal_contextvar" >&5 -$as_echo "$with_decimal_contextvar" >&6; } -# Check for libmpdec machine flavor -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for decimal libmpdec machine" >&5 -$as_echo_n "checking for decimal libmpdec machine... " >&6; } -case $ac_sys_system in #( - Darwin*) : - libmpdec_system=Darwin ;; #( - SunOS*) : - libmpdec_system=sunos ;; #( - *) : - libmpdec_system=other - ;; -esac -libmpdec_machine=unknown -if test "$libmpdec_system" = Darwin; then - # universal here means: build libmpdec with the same arch options - # the python interpreter was built with - libmpdec_machine=universal -elif test $ac_cv_sizeof_size_t -eq 8; then - if test "$ac_cv_gcc_asm_for_x64" = yes; then - libmpdec_machine=x64 - elif test "$ac_cv_type___uint128_t" = yes; then - libmpdec_machine=uint128 - else - libmpdec_machine=ansi64 - fi -elif test $ac_cv_sizeof_size_t -eq 4; then - if test "$ac_cv_gcc_asm_for_x87" = yes -a "$libmpdec_system" != sunos; then - case $CC in #( - *gcc*) : - libmpdec_machine=ppro ;; #( - *clang*) : - libmpdec_machine=ppro ;; #( - *) : - libmpdec_machine=ansi32 - ;; -esac - else - libmpdec_machine=ansi32 - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libmpdec_machine" >&5 -$as_echo "$libmpdec_machine" >&6; } - -case $libmpdec_machine in #( - x64) : - as_fn_append LIBMPDEC_CFLAGS " -DCONFIG_64=1 -DASM=1" ;; #( - uint128) : - as_fn_append LIBMPDEC_CFLAGS " -DCONFIG_64=1 -DANSI=1 -DHAVE_UINT128_T=1" ;; #( - ansi64) : - as_fn_append LIBMPDEC_CFLAGS " -DCONFIG_64=1 -DANSI=1" ;; #( - ppro) : - as_fn_append LIBMPDEC_CFLAGS " -DCONFIG_32=1 -DANSI=1 -DASM=1 -Wno-unknown-pragmas" ;; #( - ansi32) : - as_fn_append LIBMPDEC_CFLAGS " -DCONFIG_32=1 -DANSI=1" ;; #( - ansi-legacy) : - as_fn_append LIBMPDEC_CFLAGS " -DCONFIG_32=1 -DANSI=1 -DLEGACY_COMPILER=1" ;; #( - universal) : - as_fn_append LIBMPDEC_CFLAGS " -DUNIVERSAL=1" ;; #( - *) : - as_fn_error $? "_decimal: unsupported architecture" "$LINENO" 5 - ;; -esac - -if test "$have_ipa_pure_const_bug" = yes; then - # Some versions of gcc miscompile inline asm: - # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46491 - # https://gcc.gnu.org/ml/gcc/2010-11/msg00366.html - as_fn_append LIBMPDEC_CFLAGS " -fno-ipa-pure-const" -fi - -if test "$have_glibc_memmove_bug" = yes; then - # _FORTIFY_SOURCE wrappers for memmove and bcopy are incorrect: - # https://sourceware.org/ml/libc-alpha/2010-12/msg00009.html - as_fn_append LIBMPDEC_CFLAGS " -U_FORTIFY_SOURCE" -fi - - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBNSL" >&5 -$as_echo_n "checking for LIBNSL... " >&6; } - -if test -n "$LIBNSL_CFLAGS"; then - pkg_cv_LIBNSL_CFLAGS="$LIBNSL_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libnsl\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libnsl") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_LIBNSL_CFLAGS=`$PKG_CONFIG --cflags "libnsl" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_result_double in -lsqlite3" >&5 +$as_echo_n "checking for sqlite3_result_double in -lsqlite3... " >&6; } +if ${ac_cv_lib_sqlite3_sqlite3_result_double+:} false; then : + $as_echo_n "(cached) " >&6 else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$LIBNSL_LIBS"; then - pkg_cv_LIBNSL_LIBS="$LIBNSL_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libnsl\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libnsl") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_LIBNSL_LIBS=`$PKG_CONFIG --libs "libnsl" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsqlite3 $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char sqlite3_result_double (); +int +main () +{ +return sqlite3_result_double (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_sqlite3_sqlite3_result_double=yes else - pkg_failed=yes + ac_cv_lib_sqlite3_sqlite3_result_double=no fi - else - pkg_failed=untried +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_result_double" >&5 +$as_echo "$ac_cv_lib_sqlite3_sqlite3_result_double" >&6; } +if test "x$ac_cv_lib_sqlite3_sqlite3_result_double" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBSQLITE3 1 +_ACEOF + LIBS="-lsqlite3 $LIBS" +else -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + have_supported_sqlite3=no -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no fi - if test $_pkg_short_errors_supported = yes; then - LIBNSL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libnsl" 2>&1` - else - LIBNSL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libnsl" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$LIBNSL_PKG_ERRORS" >&5 - LIBNSL_CFLAGS=${LIBNSL_CFLAGS-""} - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing yp_match" >&5 -$as_echo_n "checking for library containing yp_match... " >&6; } -if ${ac_cv_search_yp_match+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_set_authorizer in -lsqlite3" >&5 +$as_echo_n "checking for sqlite3_set_authorizer in -lsqlite3... " >&6; } +if ${ac_cv_lib_sqlite3_sqlite3_set_authorizer+:} false; then : $as_echo_n "(cached) " >&6 else - ac_func_search_save_LIBS=$LIBS + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsqlite3 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -13288,84 +12770,48 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char yp_match (); +char sqlite3_set_authorizer (); int main () { -return yp_match (); +return sqlite3_set_authorizer (); ; return 0; } _ACEOF -for ac_lib in '' nsl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_yp_match=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_yp_match+:} false; then : - break -fi -done -if ${ac_cv_search_yp_match+:} false; then : - +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_sqlite3_sqlite3_set_authorizer=yes else - ac_cv_search_yp_match=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + ac_cv_lib_sqlite3_sqlite3_set_authorizer=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_yp_match" >&5 -$as_echo "$ac_cv_search_yp_match" >&6; } -ac_res=$ac_cv_search_yp_match -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - have_nis=yes -else - have_nis=no +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_set_authorizer" >&5 +$as_echo "$ac_cv_lib_sqlite3_sqlite3_set_authorizer" >&6; } +if test "x$ac_cv_lib_sqlite3_sqlite3_set_authorizer" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBSQLITE3 1 +_ACEOF + LIBS="-lsqlite3 $LIBS" -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS - +else - case $ac_cv_search_yp_match in #( - no) : - libnsl="" ;; #( - "none required") : - libnsl="" ;; #( - *) : - libnsl="$ac_cv_search_yp_match" - ;; -esac - LIBNSL_LIBS=${LIBNSL_LIBS-$libnsl} + have_supported_sqlite3=no -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +fi - LIBNSL_CFLAGS=${LIBNSL_CFLAGS-""} - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing yp_match" >&5 -$as_echo_n "checking for library containing yp_match... " >&6; } -if ${ac_cv_search_yp_match+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_trace_v2 in -lsqlite3" >&5 +$as_echo_n "checking for sqlite3_trace_v2 in -lsqlite3... " >&6; } +if ${ac_cv_lib_sqlite3_sqlite3_trace_v2+:} false; then : $as_echo_n "(cached) " >&6 else - ac_func_search_save_LIBS=$LIBS + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsqlite3 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -13375,249 +12821,40 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char yp_match (); +char sqlite3_trace_v2 (); int main () { -return yp_match (); +return sqlite3_trace_v2 (); ; return 0; } _ACEOF -for ac_lib in '' nsl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_yp_match=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_yp_match+:} false; then : - break -fi -done -if ${ac_cv_search_yp_match+:} false; then : - -else - ac_cv_search_yp_match=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_yp_match" >&5 -$as_echo "$ac_cv_search_yp_match" >&6; } -ac_res=$ac_cv_search_yp_match -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - have_nis=yes +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_sqlite3_sqlite3_trace_v2=yes else - have_nis=no + ac_cv_lib_sqlite3_sqlite3_trace_v2=no fi - - -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS - - - case $ac_cv_search_yp_match in #( - no) : - libnsl="" ;; #( - "none required") : - libnsl="" ;; #( - *) : - libnsl="$ac_cv_search_yp_match" - ;; -esac - LIBNSL_LIBS=${LIBNSL_LIBS-$libnsl} - -else - LIBNSL_CFLAGS=$pkg_cv_LIBNSL_CFLAGS - LIBNSL_LIBS=$pkg_cv_LIBNSL_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - have_nis=yes +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi - -if test "x$have_nis" = xyes; then : - - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS - - - CPPFLAGS="$CPPFLAGS $LIBNSL_CFLAGS" - for ac_header in rpc/rpc.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "rpc/rpc.h" "ac_cv_header_rpc_rpc_h" "$ac_includes_default" -if test "x$ac_cv_header_rpc_rpc_h" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_trace_v2" >&5 +$as_echo "$ac_cv_lib_sqlite3_sqlite3_trace_v2" >&6; } +if test "x$ac_cv_lib_sqlite3_sqlite3_trace_v2" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_RPC_RPC_H 1 +#define HAVE_LIBSQLITE3 1 _ACEOF -fi - -done - - -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS - - - -fi - -case $ac_sys_system in #( - NetBSD*) : - OSSAUDIODEV_LIBS="-lossaudio" ;; #( - *) : - OSSAUDIODEV_LIBS="" - ;; -esac - - - - - if test "$ac_sys_system" = "Emscripten" -a -z "$LIBSQLITE3_CFLAGS" -a -z "$LIBSQLITE3_LIBS"; then : - - LIBSQLITE3_CFLAGS="-sUSE_SQLITE3" - LIBSQLITE3_LIBS="-sUSE_SQLITE3" - -fi - - - - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBSQLITE3" >&5 -$as_echo_n "checking for LIBSQLITE3... " >&6; } - -if test -n "$LIBSQLITE3_CFLAGS"; then - pkg_cv_LIBSQLITE3_CFLAGS="$LIBSQLITE3_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sqlite3 >= 3.7.15\""; } >&5 - ($PKG_CONFIG --exists --print-errors "sqlite3 >= 3.7.15") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_LIBSQLITE3_CFLAGS=`$PKG_CONFIG --cflags "sqlite3 >= 3.7.15" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$LIBSQLITE3_LIBS"; then - pkg_cv_LIBSQLITE3_LIBS="$LIBSQLITE3_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sqlite3 >= 3.7.15\""; } >&5 - ($PKG_CONFIG --exists --print-errors "sqlite3 >= 3.7.15") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_LIBSQLITE3_LIBS=`$PKG_CONFIG --libs "sqlite3 >= 3.7.15" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - LIBSQLITE3_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "sqlite3 >= 3.7.15" 2>&1` - else - LIBSQLITE3_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "sqlite3 >= 3.7.15" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$LIBSQLITE3_PKG_ERRORS" >&5 - - - LIBSQLITE3_CFLAGS=${LIBSQLITE3_CFLAGS-""} - LIBSQLITE3_LIBS=${LIBSQLITE3_LIBS-"-lsqlite3"} - - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - LIBSQLITE3_CFLAGS=${LIBSQLITE3_CFLAGS-""} - LIBSQLITE3_LIBS=${LIBSQLITE3_LIBS-"-lsqlite3"} - + LIBS="-lsqlite3 $LIBS" else - LIBSQLITE3_CFLAGS=$pkg_cv_LIBSQLITE3_CFLAGS - LIBSQLITE3_LIBS=$pkg_cv_LIBSQLITE3_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi -as_fn_append LIBSQLITE3_CFLAGS ' -I$(srcdir)/Modules/_sqlite' - - - -save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS - - - CPPFLAGS="$CPPFLAGS $LIBSQLITE3_CFLAGS" - LDFLAGS="$LIBSQLITE3_LIBS $LDFLAGS" - - ac_fn_c_check_header_mongrel "$LINENO" "sqlite3.h" "ac_cv_header_sqlite3_h" "$ac_includes_default" -if test "x$ac_cv_header_sqlite3_h" = xyes; then : - - have_sqlite3=yes - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - #include <sqlite3.h> - #if SQLITE_VERSION_NUMBER < 3007015 - # error "SQLite 3.7.15 or higher required" - #endif - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - have_supported_sqlite3=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_bind_double in -lsqlite3" >&5 -$as_echo_n "checking for sqlite3_bind_double in -lsqlite3... " >&6; } -if ${ac_cv_lib_sqlite3_sqlite3_bind_double+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_trace in -lsqlite3" >&5 +$as_echo_n "checking for sqlite3_trace in -lsqlite3... " >&6; } +if ${ac_cv_lib_sqlite3_sqlite3_trace+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -13631,27 +12868,27 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char sqlite3_bind_double (); +char sqlite3_trace (); int main () { -return sqlite3_bind_double (); +return sqlite3_trace (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_sqlite3_sqlite3_bind_double=yes + ac_cv_lib_sqlite3_sqlite3_trace=yes else - ac_cv_lib_sqlite3_sqlite3_bind_double=no + ac_cv_lib_sqlite3_sqlite3_trace=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_bind_double" >&5 -$as_echo "$ac_cv_lib_sqlite3_sqlite3_bind_double" >&6; } -if test "x$ac_cv_lib_sqlite3_sqlite3_bind_double" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_trace" >&5 +$as_echo "$ac_cv_lib_sqlite3_sqlite3_trace" >&6; } +if test "x$ac_cv_lib_sqlite3_sqlite3_trace" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBSQLITE3 1 _ACEOF @@ -13666,9 +12903,14 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_column_decltype in -lsqlite3" >&5 -$as_echo_n "checking for sqlite3_column_decltype in -lsqlite3... " >&6; } -if ${ac_cv_lib_sqlite3_sqlite3_column_decltype+:} false; then : + +fi + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_value_double in -lsqlite3" >&5 +$as_echo_n "checking for sqlite3_value_double in -lsqlite3... " >&6; } +if ${ac_cv_lib_sqlite3_sqlite3_value_double+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -13682,27 +12924,27 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char sqlite3_column_decltype (); +char sqlite3_value_double (); int main () { -return sqlite3_column_decltype (); +return sqlite3_value_double (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_sqlite3_sqlite3_column_decltype=yes + ac_cv_lib_sqlite3_sqlite3_value_double=yes else - ac_cv_lib_sqlite3_sqlite3_column_decltype=no + ac_cv_lib_sqlite3_sqlite3_value_double=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_column_decltype" >&5 -$as_echo "$ac_cv_lib_sqlite3_sqlite3_column_decltype" >&6; } -if test "x$ac_cv_lib_sqlite3_sqlite3_column_decltype" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_value_double" >&5 +$as_echo "$ac_cv_lib_sqlite3_sqlite3_value_double" >&6; } +if test "x$ac_cv_lib_sqlite3_sqlite3_value_double" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBSQLITE3 1 _ACEOF @@ -13716,10 +12958,9 @@ else fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_column_double in -lsqlite3" >&5 -$as_echo_n "checking for sqlite3_column_double in -lsqlite3... " >&6; } -if ${ac_cv_lib_sqlite3_sqlite3_column_double+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_load_extension in -lsqlite3" >&5 +$as_echo_n "checking for sqlite3_load_extension in -lsqlite3... " >&6; } +if ${ac_cv_lib_sqlite3_sqlite3_load_extension+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -13733,44 +12974,36 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char sqlite3_column_double (); +char sqlite3_load_extension (); int main () { -return sqlite3_column_double (); +return sqlite3_load_extension (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_sqlite3_sqlite3_column_double=yes + ac_cv_lib_sqlite3_sqlite3_load_extension=yes else - ac_cv_lib_sqlite3_sqlite3_column_double=no + ac_cv_lib_sqlite3_sqlite3_load_extension=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_column_double" >&5 -$as_echo "$ac_cv_lib_sqlite3_sqlite3_column_double" >&6; } -if test "x$ac_cv_lib_sqlite3_sqlite3_column_double" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSQLITE3 1 -_ACEOF - - LIBS="-lsqlite3 $LIBS" - +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_load_extension" >&5 +$as_echo "$ac_cv_lib_sqlite3_sqlite3_load_extension" >&6; } +if test "x$ac_cv_lib_sqlite3_sqlite3_load_extension" = xyes; then : + have_sqlite3_load_extension=yes else - - have_supported_sqlite3=no + have_sqlite3_load_extension=no fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_complete in -lsqlite3" >&5 -$as_echo_n "checking for sqlite3_complete in -lsqlite3... " >&6; } -if ${ac_cv_lib_sqlite3_sqlite3_complete+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_serialize in -lsqlite3" >&5 +$as_echo_n "checking for sqlite3_serialize in -lsqlite3... " >&6; } +if ${ac_cv_lib_sqlite3_sqlite3_serialize+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -13784,3155 +13017,454 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char sqlite3_complete (); +char sqlite3_serialize (); int main () { -return sqlite3_complete (); +return sqlite3_serialize (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_sqlite3_sqlite3_complete=yes + ac_cv_lib_sqlite3_sqlite3_serialize=yes else - ac_cv_lib_sqlite3_sqlite3_complete=no + ac_cv_lib_sqlite3_sqlite3_serialize=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_complete" >&5 -$as_echo "$ac_cv_lib_sqlite3_sqlite3_complete" >&6; } -if test "x$ac_cv_lib_sqlite3_sqlite3_complete" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSQLITE3 1 -_ACEOF +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_serialize" >&5 +$as_echo "$ac_cv_lib_sqlite3_sqlite3_serialize" >&6; } +if test "x$ac_cv_lib_sqlite3_sqlite3_serialize" = xyes; then : - LIBS="-lsqlite3 $LIBS" -else +$as_echo "#define PY_SQLITE_HAVE_SERIALIZE 1" >>confdefs.h - have_supported_sqlite3=no fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_enable_shared_cache in -lsqlite3" >&5 -$as_echo_n "checking for sqlite3_enable_shared_cache in -lsqlite3... " >&6; } -if ${ac_cv_lib_sqlite3_sqlite3_enable_shared_cache+:} false; then : - $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsqlite3 $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char sqlite3_enable_shared_cache (); -int -main () -{ -return sqlite3_enable_shared_cache (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_sqlite3_sqlite3_enable_shared_cache=yes -else - ac_cv_lib_sqlite3_sqlite3_enable_shared_cache=no + have_supported_sqlite3=no + fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_enable_shared_cache" >&5 -$as_echo "$ac_cv_lib_sqlite3_sqlite3_enable_shared_cache" >&6; } -if test "x$ac_cv_lib_sqlite3_sqlite3_enable_shared_cache" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSQLITE3 1 -_ACEOF - LIBS="-lsqlite3 $LIBS" -else - have_supported_sqlite3=no +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS -fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --enable-loadable-sqlite-extensions" >&5 +$as_echo_n "checking for --enable-loadable-sqlite-extensions... " >&6; } +# Check whether --enable-loadable-sqlite-extensions was given. +if test "${enable_loadable_sqlite_extensions+set}" = set; then : + enableval=$enable_loadable_sqlite_extensions; + if test "x$have_sqlite3_load_extension" = xno; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_progress_handler in -lsqlite3" >&5 -$as_echo_n "checking for sqlite3_progress_handler in -lsqlite3... " >&6; } -if ${ac_cv_lib_sqlite3_sqlite3_progress_handler+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsqlite3 $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + { $as_echo "$as_me:${as_lineno-$LINENO}: result: n/a" >&5 +$as_echo "n/a" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your version of SQLite does not support loadable extensions" >&5 +$as_echo "$as_me: WARNING: Your version of SQLite does not support loadable extensions" >&2;} -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char sqlite3_progress_handler (); -int -main () -{ -return sqlite3_progress_handler (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_sqlite3_sqlite3_progress_handler=yes else - ac_cv_lib_sqlite3_sqlite3_progress_handler=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_progress_handler" >&5 -$as_echo "$ac_cv_lib_sqlite3_sqlite3_progress_handler" >&6; } -if test "x$ac_cv_lib_sqlite3_sqlite3_progress_handler" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSQLITE3 1 -_ACEOF - LIBS="-lsqlite3 $LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -else +$as_echo "#define PY_SQLITE_ENABLE_LOAD_EXTENSION 1" >>confdefs.h - have_supported_sqlite3=no fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_result_double in -lsqlite3" >&5 -$as_echo_n "checking for sqlite3_result_double in -lsqlite3... " >&6; } -if ${ac_cv_lib_sqlite3_sqlite3_result_double+:} false; then : - $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsqlite3 $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char sqlite3_result_double (); -int -main () -{ -return sqlite3_result_double (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_sqlite3_sqlite3_result_double=yes -else - ac_cv_lib_sqlite3_sqlite3_result_double=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_result_double" >&5 -$as_echo "$ac_cv_lib_sqlite3_sqlite3_result_double" >&6; } -if test "x$ac_cv_lib_sqlite3_sqlite3_result_double" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSQLITE3 1 -_ACEOF + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - LIBS="-lsqlite3 $LIBS" -else +fi - have_supported_sqlite3=no -fi +found_tcltk=no +for _QUERY in \ + "tcl >= 8.5.12 tk >= 8.5.12" \ + "tcl8.6 tk8.6" \ + "tcl86 tk86" \ + "tcl8.5 >= 8.5.12 tk8.5 >= 8.5.12" \ + "tcl85 >= 8.5.12 tk85 >= 8.5.12" \ +; do + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$_QUERY\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$_QUERY") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TCLTK" >&5 +$as_echo_n "checking for TCLTK... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_set_authorizer in -lsqlite3" >&5 -$as_echo_n "checking for sqlite3_set_authorizer in -lsqlite3... " >&6; } -if ${ac_cv_lib_sqlite3_sqlite3_set_authorizer+:} false; then : - $as_echo_n "(cached) " >&6 +if test -n "$TCLTK_CFLAGS"; then + pkg_cv_TCLTK_CFLAGS="$TCLTK_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$_QUERY\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$_QUERY") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_TCLTK_CFLAGS=`$PKG_CONFIG --cflags "$_QUERY" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsqlite3 $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char sqlite3_set_authorizer (); -int -main () -{ -return sqlite3_set_authorizer (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_sqlite3_sqlite3_set_authorizer=yes -else - ac_cv_lib_sqlite3_sqlite3_set_authorizer=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_set_authorizer" >&5 -$as_echo "$ac_cv_lib_sqlite3_sqlite3_set_authorizer" >&6; } -if test "x$ac_cv_lib_sqlite3_sqlite3_set_authorizer" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSQLITE3 1 -_ACEOF - - LIBS="-lsqlite3 $LIBS" - -else - - have_supported_sqlite3=no - -fi - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_trace_v2 in -lsqlite3" >&5 -$as_echo_n "checking for sqlite3_trace_v2 in -lsqlite3... " >&6; } -if ${ac_cv_lib_sqlite3_sqlite3_trace_v2+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsqlite3 $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char sqlite3_trace_v2 (); -int -main () -{ -return sqlite3_trace_v2 (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_sqlite3_sqlite3_trace_v2=yes -else - ac_cv_lib_sqlite3_sqlite3_trace_v2=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_trace_v2" >&5 -$as_echo "$ac_cv_lib_sqlite3_sqlite3_trace_v2" >&6; } -if test "x$ac_cv_lib_sqlite3_sqlite3_trace_v2" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSQLITE3 1 -_ACEOF - - LIBS="-lsqlite3 $LIBS" - -else - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_trace in -lsqlite3" >&5 -$as_echo_n "checking for sqlite3_trace in -lsqlite3... " >&6; } -if ${ac_cv_lib_sqlite3_sqlite3_trace+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsqlite3 $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char sqlite3_trace (); -int -main () -{ -return sqlite3_trace (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_sqlite3_sqlite3_trace=yes -else - ac_cv_lib_sqlite3_sqlite3_trace=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_trace" >&5 -$as_echo "$ac_cv_lib_sqlite3_sqlite3_trace" >&6; } -if test "x$ac_cv_lib_sqlite3_sqlite3_trace" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSQLITE3 1 -_ACEOF - - LIBS="-lsqlite3 $LIBS" - -else - - have_supported_sqlite3=no - -fi - - - - -fi - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_value_double in -lsqlite3" >&5 -$as_echo_n "checking for sqlite3_value_double in -lsqlite3... " >&6; } -if ${ac_cv_lib_sqlite3_sqlite3_value_double+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsqlite3 $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char sqlite3_value_double (); -int -main () -{ -return sqlite3_value_double (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_sqlite3_sqlite3_value_double=yes -else - ac_cv_lib_sqlite3_sqlite3_value_double=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_value_double" >&5 -$as_echo "$ac_cv_lib_sqlite3_sqlite3_value_double" >&6; } -if test "x$ac_cv_lib_sqlite3_sqlite3_value_double" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSQLITE3 1 -_ACEOF - - LIBS="-lsqlite3 $LIBS" - -else - - have_supported_sqlite3=no - -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_load_extension in -lsqlite3" >&5 -$as_echo_n "checking for sqlite3_load_extension in -lsqlite3... " >&6; } -if ${ac_cv_lib_sqlite3_sqlite3_load_extension+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsqlite3 $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char sqlite3_load_extension (); -int -main () -{ -return sqlite3_load_extension (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_sqlite3_sqlite3_load_extension=yes -else - ac_cv_lib_sqlite3_sqlite3_load_extension=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_load_extension" >&5 -$as_echo "$ac_cv_lib_sqlite3_sqlite3_load_extension" >&6; } -if test "x$ac_cv_lib_sqlite3_sqlite3_load_extension" = xyes; then : - have_sqlite3_load_extension=yes -else - have_sqlite3_load_extension=no - -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_serialize in -lsqlite3" >&5 -$as_echo_n "checking for sqlite3_serialize in -lsqlite3... " >&6; } -if ${ac_cv_lib_sqlite3_sqlite3_serialize+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsqlite3 $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char sqlite3_serialize (); -int -main () -{ -return sqlite3_serialize (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_sqlite3_sqlite3_serialize=yes -else - ac_cv_lib_sqlite3_sqlite3_serialize=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_serialize" >&5 -$as_echo "$ac_cv_lib_sqlite3_sqlite3_serialize" >&6; } -if test "x$ac_cv_lib_sqlite3_sqlite3_serialize" = xyes; then : - - -$as_echo "#define PY_SQLITE_HAVE_SERIALIZE 1" >>confdefs.h - - -fi - - -else - - have_supported_sqlite3=no - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi - - - -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --enable-loadable-sqlite-extensions" >&5 -$as_echo_n "checking for --enable-loadable-sqlite-extensions... " >&6; } -# Check whether --enable-loadable-sqlite-extensions was given. -if test "${enable_loadable_sqlite_extensions+set}" = set; then : - enableval=$enable_loadable_sqlite_extensions; - if test "x$have_sqlite3_load_extension" = xno; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: n/a" >&5 -$as_echo "n/a" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your version of SQLite does not support loadable extensions" >&5 -$as_echo "$as_me: WARNING: Your version of SQLite does not support loadable extensions" >&2;} - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define PY_SQLITE_ENABLE_LOAD_EXTENSION 1" >>confdefs.h - - -fi - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - -fi - - -found_tcltk=no -for _QUERY in \ - "tcl >= 8.5.12 tk >= 8.5.12" \ - "tcl8.6 tk8.6" \ - "tcl86 tk86" \ - "tcl8.5 >= 8.5.12 tk8.5 >= 8.5.12" \ - "tcl85 >= 8.5.12 tk85 >= 8.5.12" \ -; do - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$_QUERY\""; } >&5 - ($PKG_CONFIG --exists --print-errors "$_QUERY") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TCLTK" >&5 -$as_echo_n "checking for TCLTK... " >&6; } - -if test -n "$TCLTK_CFLAGS"; then - pkg_cv_TCLTK_CFLAGS="$TCLTK_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$_QUERY\""; } >&5 - ($PKG_CONFIG --exists --print-errors "$_QUERY") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_TCLTK_CFLAGS=`$PKG_CONFIG --cflags "$_QUERY" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$TCLTK_LIBS"; then - pkg_cv_TCLTK_LIBS="$TCLTK_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$_QUERY\""; } >&5 - ($PKG_CONFIG --exists --print-errors "$_QUERY") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_TCLTK_LIBS=`$PKG_CONFIG --libs "$_QUERY" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - TCLTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$_QUERY" 2>&1` - else - TCLTK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$_QUERY" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$TCLTK_PKG_ERRORS" >&5 - - found_tcltk=no -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - found_tcltk=no -else - TCLTK_CFLAGS=$pkg_cv_TCLTK_CFLAGS - TCLTK_LIBS=$pkg_cv_TCLTK_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - found_tcltk=yes -fi - -fi - if test "x$found_tcltk" = xyes; then : - break -fi -done - -if test "x$found_tcltk" = xno; then : - - TCLTK_CFLAGS=${TCLTK_CFLAGS-""} - TCLTK_LIBS=${TCLTK_LIBS-""} - -fi - -case $ac_sys_system in #( - FreeBSD*) : - - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11\""; } >&5 - ($PKG_CONFIG --exists --print-errors "x11") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for X11" >&5 -$as_echo_n "checking for X11... " >&6; } - -if test -n "$X11_CFLAGS"; then - pkg_cv_X11_CFLAGS="$X11_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11\""; } >&5 - ($PKG_CONFIG --exists --print-errors "x11") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_X11_CFLAGS=`$PKG_CONFIG --cflags "x11" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$X11_LIBS"; then - pkg_cv_X11_LIBS="$X11_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11\""; } >&5 - ($PKG_CONFIG --exists --print-errors "x11") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_X11_LIBS=`$PKG_CONFIG --libs "x11" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - X11_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "x11" 2>&1` - else - X11_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "x11" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$X11_PKG_ERRORS" >&5 - - as_fn_error $? "Package requirements (x11) were not met: - -$X11_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -Alternatively, you may set the environment variables X11_CFLAGS -and X11_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details." "$LINENO" 5 -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "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 -path to pkg-config. - -Alternatively, you may set the environment variables X11_CFLAGS -and X11_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see <http://pkg-config.freedesktop.org/>. -See \`config.log' for more details" "$LINENO" 5; } -else - X11_CFLAGS=$pkg_cv_X11_CFLAGS - X11_LIBS=$pkg_cv_X11_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - TCLTK_CFLAGS="$TCLTK_CFLAGS $X11_CFLAGS" - TCLTK_LIBS="$TCLTK_LIBS $X11_LIBS" - -fi - -fi - - ;; #( - *) : - ;; -esac - -save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS - - - CPPFLAGS="$CPPFLAGS $TCLTK_CFLAGS" - LIBS="$TCLTK_LIBS $LDFLAGS" - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - #include <tcl.h> - #include <tk.h> - #if defined(TK_HEX_VERSION) - # if TK_HEX_VERSION < 0x0805020c - # error "Tk older than 8.5.12 not supported" - # endif - #endif - #if (TCL_MAJOR_VERSION < 8) || \ - ((TCL_MAJOR_VERSION == 8) && (TCL_MINOR_VERSION < 5)) || \ - ((TCL_MAJOR_VERSION == 8) && (TCL_MINOR_VERSION == 5) && (TCL_RELEASE_SERIAL < 12)) - # error "Tcl older than 8.5.12 not supported" - #endif - #if (TK_MAJOR_VERSION < 8) || \ - ((TK_MAJOR_VERSION == 8) && (TK_MINOR_VERSION < 5)) || \ - ((TK_MAJOR_VERSION == 8) && (TK_MINOR_VERSION == 5) && (TK_RELEASE_SERIAL < 12)) - # error "Tk older than 8.5.12 not supported" - #endif - -int -main () -{ - - void *x1 = Tcl_Init; - void *x2 = Tk_Init; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - have_tcltk=yes - as_fn_append TCLTK_CFLAGS " -Wno-strict-prototypes -DWITH_APPINIT=1" - -else - - have_tcltk=no - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS - - - - - -save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS - - - CPPFLAGS="$CPPFLAGS $GDBM_CFLAGS" - LDFLAGS="$GDBM_LIBS $LDFLAGS" - for ac_header in gdbm.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "gdbm.h" "ac_cv_header_gdbm_h" "$ac_includes_default" -if test "x$ac_cv_header_gdbm_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_GDBM_H 1 -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gdbm_open in -lgdbm" >&5 -$as_echo_n "checking for gdbm_open in -lgdbm... " >&6; } -if ${ac_cv_lib_gdbm_gdbm_open+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lgdbm $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char gdbm_open (); -int -main () -{ -return gdbm_open (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_gdbm_gdbm_open=yes -else - ac_cv_lib_gdbm_gdbm_open=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gdbm_gdbm_open" >&5 -$as_echo "$ac_cv_lib_gdbm_gdbm_open" >&6; } -if test "x$ac_cv_lib_gdbm_gdbm_open" = xyes; then : - - have_gdbm=yes - GDBM_LIBS=${GDBM_LIBS-"-lgdbm"} - -else - have_gdbm=no -fi - - -else - have_gdbm=no -fi - -done - - -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS - - - -for ac_header in ndbm.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "ndbm.h" "ac_cv_header_ndbm_h" "$ac_includes_default" -if test "x$ac_cv_header_ndbm_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_NDBM_H 1 -_ACEOF - - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dbm_open" >&5 -$as_echo_n "checking for library containing dbm_open... " >&6; } -if ${ac_cv_search_dbm_open+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dbm_open (); -int -main () -{ -return dbm_open (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ndbm gdbm_compat; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_dbm_open=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_dbm_open+:} false; then : - break -fi -done -if ${ac_cv_search_dbm_open+:} false; then : - -else - ac_cv_search_dbm_open=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dbm_open" >&5 -$as_echo "$ac_cv_search_dbm_open" >&6; } -ac_res=$ac_cv_search_dbm_open -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - -fi - - -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS - - - -fi - -done - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ndbm presence and linker args" >&5 -$as_echo_n "checking for ndbm presence and linker args... " >&6; } -case $ac_cv_search_dbm_open in #( - *ndbm*|*gdbm_compat*) : - - dbm_ndbm="$ac_cv_search_dbm_open" - have_ndbm=yes - ;; #( - none*) : - - dbm_ndbm="" - have_ndbm=yes - ;; #( - no) : - have_ndbm=no - ;; #( - *) : - ;; -esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_ndbm ($dbm_ndbm)" >&5 -$as_echo "$have_ndbm ($dbm_ndbm)" >&6; } - -{ ac_cv_header_gdbm_ndbm_h=; unset ac_cv_header_gdbm_ndbm_h;} -if ${ac_cv_header_gdbm_slash_ndbm_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - - ac_fn_c_check_header_mongrel "$LINENO" "gdbm/ndbm.h" "ac_cv_header_gdbm_ndbm_h" "$ac_includes_default" -if test "x$ac_cv_header_gdbm_ndbm_h" = xyes; then : - ac_cv_header_gdbm_slash_ndbm_h=yes -else - ac_cv_header_gdbm_slash_ndbm_h=no - -fi - - - -fi - -if test "x$ac_cv_header_gdbm_slash_ndbm_h" = xyes; then : - - -$as_echo "#define HAVE_GDBM_NDBM_H 1" >>confdefs.h - - -fi - -{ ac_cv_header_gdbm_ndbm_h=; unset ac_cv_header_gdbm_ndbm_h;} -if ${ac_cv_header_gdbm_dash_ndbm_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - - ac_fn_c_check_header_mongrel "$LINENO" "gdbm-ndbm.h" "ac_cv_header_gdbm_ndbm_h" "$ac_includes_default" -if test "x$ac_cv_header_gdbm_ndbm_h" = xyes; then : - ac_cv_header_gdbm_dash_ndbm_h=yes -else - ac_cv_header_gdbm_dash_ndbm_h=no - -fi - - - -fi - -if test "x$ac_cv_header_gdbm_dash_ndbm_h" = xyes; then : - - -$as_echo "#define HAVE_GDBM_DASH_NDBM_H 1" >>confdefs.h - - -fi -{ ac_cv_header_gdbm_ndbm_h=; unset ac_cv_header_gdbm_ndbm_h;} - -if test "$ac_cv_header_gdbm_slash_ndbm_h" = yes -o "$ac_cv_header_gdbm_dash_ndbm_h" = yes; then - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dbm_open" >&5 -$as_echo_n "checking for library containing dbm_open... " >&6; } -if ${ac_cv_search_dbm_open+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dbm_open (); -int -main () -{ -return dbm_open (); - ; - return 0; -} -_ACEOF -for ac_lib in '' gdbm_compat; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_dbm_open=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_dbm_open+:} false; then : - break -fi -done -if ${ac_cv_search_dbm_open+:} false; then : - -else - ac_cv_search_dbm_open=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dbm_open" >&5 -$as_echo "$ac_cv_search_dbm_open" >&6; } -ac_res=$ac_cv_search_dbm_open -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - -fi - - -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS - - -fi - -# Check for libdb >= 5 with dbm_open() -# db.h re-defines the name of the function -for ac_header in db.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "db.h" "ac_cv_header_db_h" "$ac_includes_default" -if test "x$ac_cv_header_db_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DB_H 1 -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libdb" >&5 -$as_echo_n "checking for libdb... " >&6; } -if ${ac_cv_have_libdb+:} false; then : - $as_echo_n "(cached) " >&6 -else - - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS - - - LIBS="$LIBS -ldb" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #define DB_DBM_HSEARCH 1 - #include <db.h> - #if DB_VERSION_MAJOR < 5 - #error "dh.h: DB_VERSION_MAJOR < 5 is not supported." - #endif - -int -main () -{ -DBM *dbm = dbm_open(NULL, 0, 0) - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_have_libdb=yes -else - ac_cv_have_libdb=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS - - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_libdb" >&5 -$as_echo "$ac_cv_have_libdb" >&6; } - if test "x$ac_cv_have_libdb" = xyes; then : - - -$as_echo "#define HAVE_LIBDB 1" >>confdefs.h - - -fi - -fi - -done - - -# Check for --with-dbmliborder -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-dbmliborder" >&5 -$as_echo_n "checking for --with-dbmliborder... " >&6; } - -# Check whether --with-dbmliborder was given. -if test "${with_dbmliborder+set}" = set; then : - withval=$with_dbmliborder; -else - with_dbmliborder=gdbm:ndbm:bdb -fi - - -have_gdbm_dbmliborder=no -as_save_IFS=$IFS -IFS=: -for db in $with_dbmliborder; do - case $db in #( - ndbm) : - ;; #( - gdbm) : - have_gdbm_dbmliborder=yes ;; #( - bdb) : - ;; #( - *) : - with_dbmliborder=error - ;; -esac -done -IFS=$as_save_IFS -if test "x$with_dbmliborder" = xerror; then : - - as_fn_error $? "proper usage is --with-dbmliborder=db1:db2:... (gdbm:ndbm:bdb)" "$LINENO" 5 - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_dbmliborder" >&5 -$as_echo "$with_dbmliborder" >&6; } - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _dbm module CFLAGS and LIBS" >&5 -$as_echo_n "checking for _dbm module CFLAGS and LIBS... " >&6; } -have_dbm=no -as_save_IFS=$IFS -IFS=: -for db in $with_dbmliborder; do - case "$db" in - ndbm) - if test "$have_ndbm" = yes; then - DBM_CFLAGS="-DUSE_NDBM" - DBM_LIBS="$dbm_ndbm" - have_dbm=yes - break - fi - ;; - gdbm) - if test "$have_gdbm_compat" = yes; then - DBM_CFLAGS="-DUSE_GDBM_COMPAT" - DBM_LIBS="-lgdbm_compat" - have_dbm=yes - break - fi - ;; - bdb) - if test "$ac_cv_have_libdb" = yes; then - DBM_CFLAGS="-DUSE_BERKDB" - DBM_LIBS="-ldb" - have_dbm=yes - break - fi - ;; - esac -done -IFS=$as_save_IFS -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $DBM_CFLAGS $DBM_LIBS" >&5 -$as_echo "$DBM_CFLAGS $DBM_LIBS" >&6; } - -# Templates for things AC_DEFINEd more than once. -# For a single AC_DEFINE, no template is needed. - - -if test "$ac_cv_pthread_is_default" = yes -then - # Defining _REENTRANT on system with POSIX threads should not hurt. - $as_echo "#define _REENTRANT 1" >>confdefs.h - - posix_threads=yes - if test "$ac_sys_system" = "SunOS"; then - CFLAGS="$CFLAGS -D_REENTRANT" - fi -elif test "$ac_cv_kpthread" = "yes" -then - CC="$CC -Kpthread" - if test "$ac_cv_cxx_thread" = "yes"; then - CXX="$CXX -Kpthread" - fi - posix_threads=yes -elif test "$ac_cv_kthread" = "yes" -then - CC="$CC -Kthread" - if test "$ac_cv_cxx_thread" = "yes"; then - CXX="$CXX -Kthread" - fi - posix_threads=yes -elif test "$ac_cv_pthread" = "yes" -then - CC="$CC -pthread" - if test "$ac_cv_cxx_thread" = "yes"; then - CXX="$CXX -pthread" - fi - posix_threads=yes -else - if test ! -z "$withval" -a -d "$withval" - then LDFLAGS="$LDFLAGS -L$withval" - fi - - # According to the POSIX spec, a pthreads implementation must - # define _POSIX_THREADS in unistd.h. Some apparently don't - # (e.g. gnu pth with pthread emulation) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _POSIX_THREADS in unistd.h" >&5 -$as_echo_n "checking for _POSIX_THREADS in unistd.h... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include <unistd.h> -#ifdef _POSIX_THREADS -yes -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then : - unistd_defines_pthreads=yes -else - unistd_defines_pthreads=no -fi -rm -f conftest* - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $unistd_defines_pthreads" >&5 -$as_echo "$unistd_defines_pthreads" >&6; } - - $as_echo "#define _REENTRANT 1" >>confdefs.h - - # Just looking for pthread_create in libpthread is not enough: - # on HP/UX, pthread.h renames pthread_create to a different symbol name. - # So we really have to include pthread.h, and then link. - _libs=$LIBS - LIBS="$LIBS -lpthread" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthread" >&5 -$as_echo_n "checking for pthread_create in -lpthread... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include <stdio.h> -#include <pthread.h> - -void * start_routine (void *arg) { exit (0); } -int -main () -{ - -pthread_create (NULL, NULL, start_routine, NULL) - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - posix_threads=yes - -else - - LIBS=$_libs - ac_fn_c_check_func "$LINENO" "pthread_detach" "ac_cv_func_pthread_detach" -if test "x$ac_cv_func_pthread_detach" = xyes; then : - - posix_threads=yes - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthreads" >&5 -$as_echo_n "checking for pthread_create in -lpthreads... " >&6; } -if ${ac_cv_lib_pthreads_pthread_create+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpthreads $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char pthread_create (); -int -main () -{ -return pthread_create (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_pthreads_pthread_create=yes -else - ac_cv_lib_pthreads_pthread_create=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthreads_pthread_create" >&5 -$as_echo "$ac_cv_lib_pthreads_pthread_create" >&6; } -if test "x$ac_cv_lib_pthreads_pthread_create" = xyes; then : - - posix_threads=yes - LIBS="$LIBS -lpthreads" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lc_r" >&5 -$as_echo_n "checking for pthread_create in -lc_r... " >&6; } -if ${ac_cv_lib_c_r_pthread_create+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lc_r $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char pthread_create (); -int -main () -{ -return pthread_create (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_c_r_pthread_create=yes -else - ac_cv_lib_c_r_pthread_create=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_create" >&5 -$as_echo "$ac_cv_lib_c_r_pthread_create" >&6; } -if test "x$ac_cv_lib_c_r_pthread_create" = xyes; then : - - posix_threads=yes - LIBS="$LIBS -lc_r" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __pthread_create_system in -lpthread" >&5 -$as_echo_n "checking for __pthread_create_system in -lpthread... " >&6; } -if ${ac_cv_lib_pthread___pthread_create_system+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpthread $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char __pthread_create_system (); -int -main () -{ -return __pthread_create_system (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_pthread___pthread_create_system=yes -else - ac_cv_lib_pthread___pthread_create_system=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread___pthread_create_system" >&5 -$as_echo "$ac_cv_lib_pthread___pthread_create_system" >&6; } -if test "x$ac_cv_lib_pthread___pthread_create_system" = xyes; then : - - posix_threads=yes - LIBS="$LIBS -lpthread" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lcma" >&5 -$as_echo_n "checking for pthread_create in -lcma... " >&6; } -if ${ac_cv_lib_cma_pthread_create+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcma $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char pthread_create (); -int -main () -{ -return pthread_create (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_cma_pthread_create=yes -else - ac_cv_lib_cma_pthread_create=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cma_pthread_create" >&5 -$as_echo "$ac_cv_lib_cma_pthread_create" >&6; } -if test "x$ac_cv_lib_cma_pthread_create" = xyes; then : - - posix_threads=yes - LIBS="$LIBS -lcma" - -else - - case $ac_sys_system in #( - WASI) : - posix_threads=stub ;; #( - *) : - as_fn_error $? "could not find pthreads on your system" "$LINENO" 5 - ;; -esac - -fi - -fi - -fi - -fi - -fi - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for usconfig in -lmpc" >&5 -$as_echo_n "checking for usconfig in -lmpc... " >&6; } -if ${ac_cv_lib_mpc_usconfig+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lmpc $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char usconfig (); -int -main () -{ -return usconfig (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_mpc_usconfig=yes -else - ac_cv_lib_mpc_usconfig=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpc_usconfig" >&5 -$as_echo "$ac_cv_lib_mpc_usconfig" >&6; } -if test "x$ac_cv_lib_mpc_usconfig" = xyes; then : - - LIBS="$LIBS -lmpc" - -fi - - -fi - -if test "$posix_threads" = "yes"; then - if test "$unistd_defines_pthreads" = "no"; then - -$as_echo "#define _POSIX_THREADS 1" >>confdefs.h - - fi - - # Bug 662787: Using semaphores causes unexplicable hangs on Solaris 8. - case $ac_sys_system/$ac_sys_release in - SunOS/5.6) -$as_echo "#define HAVE_PTHREAD_DESTRUCTOR 1" >>confdefs.h - - ;; - SunOS/5.8) -$as_echo "#define HAVE_BROKEN_POSIX_SEMAPHORES 1" >>confdefs.h - - ;; - AIX/*) -$as_echo "#define HAVE_BROKEN_POSIX_SEMAPHORES 1" >>confdefs.h - - ;; - NetBSD/*) -$as_echo "#define HAVE_BROKEN_POSIX_SEMAPHORES 1" >>confdefs.h - - ;; - esac - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if PTHREAD_SCOPE_SYSTEM is supported" >&5 -$as_echo_n "checking if PTHREAD_SCOPE_SYSTEM is supported... " >&6; } -if ${ac_cv_pthread_system_supported+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_pthread_system_supported=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include <stdio.h> - #include <pthread.h> - void *foo(void *parm) { - return NULL; - } - main() { - pthread_attr_t attr; - pthread_t id; - if (pthread_attr_init(&attr)) return (-1); - if (pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM)) return (-1); - if (pthread_create(&id, &attr, foo, NULL)) return (-1); - return (0); - } -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_pthread_system_supported=yes -else - ac_cv_pthread_system_supported=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_pthread_system_supported" >&5 -$as_echo "$ac_cv_pthread_system_supported" >&6; } - if test "$ac_cv_pthread_system_supported" = "yes"; then - -$as_echo "#define PTHREAD_SYSTEM_SCHED_SUPPORTED 1" >>confdefs.h - - fi - for ac_func in pthread_sigmask -do : - ac_fn_c_check_func "$LINENO" "pthread_sigmask" "ac_cv_func_pthread_sigmask" -if test "x$ac_cv_func_pthread_sigmask" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_PTHREAD_SIGMASK 1 -_ACEOF - case $ac_sys_system in - CYGWIN*) - -$as_echo "#define HAVE_BROKEN_PTHREAD_SIGMASK 1" >>confdefs.h - - ;; - esac -fi -done - - for ac_func in pthread_getcpuclockid -do : - ac_fn_c_check_func "$LINENO" "pthread_getcpuclockid" "ac_cv_func_pthread_getcpuclockid" -if test "x$ac_cv_func_pthread_getcpuclockid" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_PTHREAD_GETCPUCLOCKID 1 -_ACEOF - -fi -done - -fi - -if test "x$posix_threads" = xstub; then : - - -$as_echo "#define HAVE_PTHREAD_STUBS 1" >>confdefs.h - - -fi - -# Check for enable-ipv6 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if --enable-ipv6 is specified" >&5 -$as_echo_n "checking if --enable-ipv6 is specified... " >&6; } -# Check whether --enable-ipv6 was given. -if test "${enable_ipv6+set}" = set; then : - enableval=$enable_ipv6; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ipv6=no - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - $as_echo "#define ENABLE_IPV6 1" >>confdefs.h - - ipv6=yes - ;; - esac -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - /* AF_INET6 available check */ -#include <sys/types.h> -#include <sys/socket.h> -int -main () -{ -int domain = AF_INET6; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ipv6=yes - -else - - ipv6=no - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -case $ac_sys_system in #( - WASI) : - ipv6=no - ;; #( - *) : - ;; -esac - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ipv6" >&5 -$as_echo "$ipv6" >&6; } - -if test "$ipv6" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if RFC2553 API is available" >&5 -$as_echo_n "checking if RFC2553 API is available... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include <sys/types.h> -#include <netinet/in.h> -int -main () -{ -struct sockaddr_in6 x; - x.sin6_scope_id; - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ipv6=yes - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ipv6=no - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -if test "$ipv6" = "yes"; then - $as_echo "#define ENABLE_IPV6 1" >>confdefs.h - -fi - -fi - - -ipv6type=unknown -ipv6lib=none -ipv6trylibc=no - -if test "$ipv6" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking ipv6 stack type" >&5 -$as_echo_n "checking ipv6 stack type... " >&6; } - for i in inria kame linux-glibc linux-inet6 solaris toshiba v6d zeta; - do - case $i in - inria) - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include <netinet/in.h> -#ifdef IPV6_INRIA_VERSION -yes -#endif -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then : - ipv6type=$i -fi -rm -f conftest* - - ;; - kame) - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include <netinet/in.h> -#ifdef __KAME__ -yes -#endif -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then : - ipv6type=$i; - ipv6lib=inet6 - ipv6libdir=/usr/local/v6/lib - ipv6trylibc=yes -fi -rm -f conftest* - - ;; - linux-glibc) - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include <features.h> -#if defined(__GLIBC__) && ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)) -yes -#endif -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then : - ipv6type=$i; - ipv6trylibc=yes -fi -rm -f conftest* - - ;; - linux-inet6) - if test -d /usr/inet6; then - ipv6type=$i - ipv6lib=inet6 - ipv6libdir=/usr/inet6/lib - BASECFLAGS="-I/usr/inet6/include $BASECFLAGS" - fi - ;; - solaris) - if test -f /etc/netconfig; then - if $GREP -q tcp6 /etc/netconfig; then - ipv6type=$i - ipv6trylibc=yes - fi - fi - ;; - toshiba) - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include <sys/param.h> -#ifdef _TOSHIBA_INET6 -yes -#endif -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then : - ipv6type=$i; - ipv6lib=inet6; - ipv6libdir=/usr/local/v6/lib -fi -rm -f conftest* - - ;; - v6d) - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include </usr/local/v6/include/sys/v6config.h> -#ifdef __V6D__ -yes -#endif -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then : - ipv6type=$i; - ipv6lib=v6; - ipv6libdir=/usr/local/v6/lib; - BASECFLAGS="-I/usr/local/v6/include $BASECFLAGS" -fi -rm -f conftest* - - ;; - zeta) - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include <sys/param.h> -#ifdef _ZETA_MINAMI_INET6 -yes -#endif -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then : - ipv6type=$i; - ipv6lib=inet6; - ipv6libdir=/usr/local/v6/lib -fi -rm -f conftest* - - ;; - esac - if test "$ipv6type" != "unknown"; then - break - fi - done - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ipv6type" >&5 -$as_echo "$ipv6type" >&6; } -fi - -if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then - if test -d $ipv6libdir -a -f $ipv6libdir/lib$ipv6lib.a; then - LIBS="-L$ipv6libdir -l$ipv6lib $LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: using lib$ipv6lib" >&5 -$as_echo "$as_me: using lib$ipv6lib" >&6;} - else - if test "x$ipv6trylibc" = xyes; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: using libc" >&5 -$as_echo "$as_me: using libc" >&6;} - -else - - as_fn_error $? "No $ipv6lib library found; cannot continue. You need to fetch lib$ipv6lib.a from appropriate ipv6 kit and compile beforehand." "$LINENO" 5 - -fi - fi -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CAN_RAW_FD_FRAMES" >&5 -$as_echo_n "checking CAN_RAW_FD_FRAMES... " >&6; } -if ${ac_cv_can_raw_fd_frames+:} false; then : - $as_echo_n "(cached) " >&6 -else - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - /* CAN_RAW_FD_FRAMES available check */ -#include <linux/can/raw.h> -int -main () -{ -int can_raw_fd_frames = CAN_RAW_FD_FRAMES; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_can_raw_fd_frames=yes -else - ac_cv_can_raw_fd_frames=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_can_raw_fd_frames" >&5 -$as_echo "$ac_cv_can_raw_fd_frames" >&6; } -if test "x$ac_cv_can_raw_fd_frames" = xyes; then : - - -$as_echo "#define HAVE_LINUX_CAN_RAW_FD_FRAMES 1" >>confdefs.h - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CAN_RAW_JOIN_FILTERS" >&5 -$as_echo_n "checking for CAN_RAW_JOIN_FILTERS... " >&6; } -if ${ac_cv_can_raw_join_filters+:} false; then : - $as_echo_n "(cached) " >&6 -else - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include <linux/can/raw.h> -int -main () -{ -int can_raw_join_filters = CAN_RAW_JOIN_FILTERS; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_can_raw_join_filters=yes -else - ac_cv_can_raw_join_filters=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_can_raw_join_filters" >&5 -$as_echo "$ac_cv_can_raw_join_filters" >&6; } -if test "x$ac_cv_can_raw_join_filters" = xyes; then : - - -$as_echo "#define HAVE_LINUX_CAN_RAW_JOIN_FILTERS 1" >>confdefs.h - - -fi - -# Check for --with-doc-strings -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-doc-strings" >&5 -$as_echo_n "checking for --with-doc-strings... " >&6; } - -# Check whether --with-doc-strings was given. -if test "${with_doc_strings+set}" = set; then : - withval=$with_doc_strings; -fi - - -if test -z "$with_doc_strings" -then with_doc_strings="yes" -fi -if test "$with_doc_strings" != "no" -then - -$as_echo "#define WITH_DOC_STRINGS 1" >>confdefs.h - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_doc_strings" >&5 -$as_echo "$with_doc_strings" >&6; } - -# Check for Python-specific malloc support -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-pymalloc" >&5 -$as_echo_n "checking for --with-pymalloc... " >&6; } - -# Check whether --with-pymalloc was given. -if test "${with_pymalloc+set}" = set; then : - withval=$with_pymalloc; -fi - - -if test -z "$with_pymalloc" -then - case $ac_sys_system in #( - Emscripten) : - with_pymalloc="no" ;; #( - WASI) : - with_pymalloc="no" ;; #( - *) : - with_pymalloc="yes" - ;; -esac -fi -if test "$with_pymalloc" != "no" -then - -$as_echo "#define WITH_PYMALLOC 1" >>confdefs.h - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_pymalloc" >&5 -$as_echo "$with_pymalloc" >&6; } - -# Check whether objects such as float, tuple and dict are using -# freelists to optimization memory allocation. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-freelists" >&5 -$as_echo_n "checking for --with-freelists... " >&6; } - -# Check whether --with-freelists was given. -if test "${with_freelists+set}" = set; then : - withval=$with_freelists; -fi - - -if test -z "$with_freelists" -then - with_freelists="yes" -fi -if test "$with_freelists" != "no" -then - -$as_echo "#define WITH_FREELISTS 1" >>confdefs.h - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_freelists" >&5 -$as_echo "$with_freelists" >&6; } - -# Check for --with-c-locale-coercion -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-c-locale-coercion" >&5 -$as_echo_n "checking for --with-c-locale-coercion... " >&6; } - -# Check whether --with-c-locale-coercion was given. -if test "${with_c_locale_coercion+set}" = set; then : - withval=$with_c_locale_coercion; -fi - - -if test -z "$with_c_locale_coercion" -then - with_c_locale_coercion="yes" -fi -if test "$with_c_locale_coercion" != "no" -then - -$as_echo "#define PY_COERCE_C_LOCALE 1" >>confdefs.h - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_c_locale_coercion" >&5 -$as_echo "$with_c_locale_coercion" >&6; } - -# Check for Valgrind support -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-valgrind" >&5 -$as_echo_n "checking for --with-valgrind... " >&6; } - -# Check whether --with-valgrind was given. -if test "${with_valgrind+set}" = set; then : - withval=$with_valgrind; -else - with_valgrind=no -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_valgrind" >&5 -$as_echo "$with_valgrind" >&6; } -if test "$with_valgrind" != no; then - ac_fn_c_check_header_mongrel "$LINENO" "valgrind/valgrind.h" "ac_cv_header_valgrind_valgrind_h" "$ac_includes_default" -if test "x$ac_cv_header_valgrind_valgrind_h" = xyes; then : - -$as_echo "#define WITH_VALGRIND 1" >>confdefs.h - -else - as_fn_error $? "Valgrind support requested but headers not available" "$LINENO" 5 - -fi - - - OPT="-DDYNAMIC_ANNOTATIONS_ENABLED=1 $OPT" -fi - -# Check for DTrace support -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-dtrace" >&5 -$as_echo_n "checking for --with-dtrace... " >&6; } - -# Check whether --with-dtrace was given. -if test "${with_dtrace+set}" = set; then : - withval=$with_dtrace; -else - with_dtrace=no -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_dtrace" >&5 -$as_echo "$with_dtrace" >&6; } - - - - - -DTRACE= -DTRACE_HEADERS= -DTRACE_OBJS= - -if test "$with_dtrace" = "yes" -then - # Extract the first word of "dtrace", so it can be a program name with args. -set dummy dtrace; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_DTRACE+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $DTRACE in - [\\/]* | ?:[\\/]*) - ac_cv_path_DTRACE="$DTRACE" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_DTRACE="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_DTRACE" && ac_cv_path_DTRACE="not found" - ;; -esac -fi -DTRACE=$ac_cv_path_DTRACE -if test -n "$DTRACE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DTRACE" >&5 -$as_echo "$DTRACE" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test "$DTRACE" = "not found"; then - as_fn_error $? "dtrace command not found on \$PATH" "$LINENO" 5 - fi - -$as_echo "#define WITH_DTRACE 1" >>confdefs.h - - DTRACE_HEADERS="Include/pydtrace_probes.h" - - # On OS X, DTrace providers do not need to be explicitly compiled and - # linked into the binary. Correspondingly, dtrace(1) is missing the ELF - # generation flag '-G'. We check for presence of this flag, rather than - # hardcoding support by OS, in the interest of robustness. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether DTrace probes require linking" >&5 -$as_echo_n "checking whether DTrace probes require linking... " >&6; } -if ${ac_cv_dtrace_link+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_dtrace_link=no - echo 'BEGIN{}' > conftest.d - "$DTRACE" $DFLAGS -G -s conftest.d -o conftest.o > /dev/null 2>&1 && \ - ac_cv_dtrace_link=yes - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_dtrace_link" >&5 -$as_echo "$ac_cv_dtrace_link" >&6; } - if test "$ac_cv_dtrace_link" = "yes"; then - DTRACE_OBJS="Python/pydtrace.o" - fi -fi - -PLATFORM_HEADERS= -PLATFORM_OBJS= - -case $ac_sys_system in #( - Emscripten) : - - as_fn_append PLATFORM_OBJS ' Python/emscripten_signal.o' - as_fn_append PLATFORM_HEADERS ' $(srcdir)/Include/internal/pycore_emscripten_signal.h' - ;; #( - *) : - ;; -esac - - - -# -I${DLINCLDIR} is added to the compile rule for importdl.o - -DLINCLDIR=. - -# the dlopen() function means we might want to use dynload_shlib.o. some -# platforms have dlopen(), but don't want to use it. -for ac_func in dlopen -do : - ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" -if test "x$ac_cv_func_dlopen" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DLOPEN 1 -_ACEOF - -fi -done - - -# DYNLOADFILE specifies which dynload_*.o file we will use for dynamic -# loading of modules. - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking DYNLOADFILE" >&5 -$as_echo_n "checking DYNLOADFILE... " >&6; } -if test -z "$DYNLOADFILE" -then - case $ac_sys_system/$ac_sys_release in - hp*|HP*) DYNLOADFILE="dynload_hpux.o";; - *) - # use dynload_shlib.c and dlopen() if we have it; otherwise stub - # out any dynamic loading - if test "$ac_cv_func_dlopen" = yes - then DYNLOADFILE="dynload_shlib.o" - else DYNLOADFILE="dynload_stub.o" - fi - ;; - esac -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $DYNLOADFILE" >&5 -$as_echo "$DYNLOADFILE" >&6; } -if test "$DYNLOADFILE" != "dynload_stub.o" -then - -$as_echo "#define HAVE_DYNAMIC_LOADING 1" >>confdefs.h - -fi - -# MACHDEP_OBJS can be set to platform-specific object files needed by Python - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking MACHDEP_OBJS" >&5 -$as_echo_n "checking MACHDEP_OBJS... " >&6; } -if test -z "$MACHDEP_OBJS" -then - MACHDEP_OBJS=$extra_machdep_objs -else - MACHDEP_OBJS="$MACHDEP_OBJS $extra_machdep_objs" -fi -if test -z "$MACHDEP_OBJS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 -$as_echo "none" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MACHDEP_OBJS" >&5 -$as_echo "$MACHDEP_OBJS" >&6; } -fi - -# checks for library functions -for ac_func in \ - accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ - copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ - faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ - fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ - gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ - getgrnam_r getgrouplist getgroups gethostname getitimer getloadavg getlogin \ - getpeername getpgid getpid getppid getpriority _getpty \ - getpwent getpwnam_r getpwuid getpwuid_r getresgid getresuid getrusage getsid getspent \ - getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ - lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ - mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ - pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ - pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ - pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ - rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ - sched_setparam sched_setscheduler sem_clockwait sem_getvalue sem_open \ - sem_timedwait sem_unlink sendfile setegid seteuid setgid sethostname \ - setitimer setlocale setpgid setpgrp setpriority setregid setresgid \ - setresuid setreuid setsid setuid setvbuf shutdown sigaction sigaltstack \ - sigfillset siginterrupt sigpending sigrelse sigtimedwait sigwait \ - sigwaitinfo snprintf splice strftime strlcpy strsignal symlinkat sync \ - sysconf system tcgetpgrp tcsetpgrp tempnam timegm times tmpfile \ - tmpnam tmpnam_r truncate ttyname umask uname unlinkat utimensat utimes vfork \ - wait wait3 wait4 waitid waitpid wcscoll wcsftime wcsxfrm wmemcmp writev \ - -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - -# Force lchmod off for Linux. Linux disallows changing the mode of symbolic -# links. Some libc implementations have a stub lchmod implementation that always -# returns an error. -if test "$MACHDEP" != linux; then - for ac_func in lchmod -do : - ac_fn_c_check_func "$LINENO" "lchmod" "ac_cv_func_lchmod" -if test "x$ac_cv_func_lchmod" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LCHMOD 1 -_ACEOF - -fi -done - -fi - -ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include <sys/types.h> - #include <dirent.h> -" -if test "x$ac_cv_have_decl_dirfd" = xyes; then : - -$as_echo "#define HAVE_DIRFD 1" >>confdefs.h - -fi - - -# For some functions, having a definition is not sufficient, since -# we want to take their address. - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for chroot" >&5 -$as_echo_n "checking for chroot... " >&6; } -if ${ac_cv_func_chroot+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <unistd.h> -int -main () -{ -void *x=chroot - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_chroot=yes -else - ac_cv_func_chroot=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_chroot" >&5 -$as_echo "$ac_cv_func_chroot" >&6; } - if test "x$ac_cv_func_chroot" = xyes; then : - -$as_echo "#define HAVE_CHROOT 1" >>confdefs.h - -fi - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for link" >&5 -$as_echo_n "checking for link... " >&6; } -if ${ac_cv_func_link+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <unistd.h> -int -main () -{ -void *x=link - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_link=yes -else - ac_cv_func_link=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_link" >&5 -$as_echo "$ac_cv_func_link" >&6; } - if test "x$ac_cv_func_link" = xyes; then : - -$as_echo "#define HAVE_LINK 1" >>confdefs.h - -fi - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for symlink" >&5 -$as_echo_n "checking for symlink... " >&6; } -if ${ac_cv_func_symlink+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <unistd.h> -int -main () -{ -void *x=symlink - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_symlink=yes -else - ac_cv_func_symlink=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_symlink" >&5 -$as_echo "$ac_cv_func_symlink" >&6; } - if test "x$ac_cv_func_symlink" = xyes; then : - -$as_echo "#define HAVE_SYMLINK 1" >>confdefs.h - -fi - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fchdir" >&5 -$as_echo_n "checking for fchdir... " >&6; } -if ${ac_cv_func_fchdir+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <unistd.h> -int -main () -{ -void *x=fchdir - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_fchdir=yes -else - ac_cv_func_fchdir=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fchdir" >&5 -$as_echo "$ac_cv_func_fchdir" >&6; } - if test "x$ac_cv_func_fchdir" = xyes; then : - -$as_echo "#define HAVE_FCHDIR 1" >>confdefs.h - -fi - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fsync" >&5 -$as_echo_n "checking for fsync... " >&6; } -if ${ac_cv_func_fsync+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <unistd.h> -int -main () -{ -void *x=fsync - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_fsync=yes -else - ac_cv_func_fsync=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fsync" >&5 -$as_echo "$ac_cv_func_fsync" >&6; } - if test "x$ac_cv_func_fsync" = xyes; then : - -$as_echo "#define HAVE_FSYNC 1" >>confdefs.h - -fi - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fdatasync" >&5 -$as_echo_n "checking for fdatasync... " >&6; } -if ${ac_cv_func_fdatasync+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <unistd.h> -int -main () -{ -void *x=fdatasync - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_fdatasync=yes -else - ac_cv_func_fdatasync=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fdatasync" >&5 -$as_echo "$ac_cv_func_fdatasync" >&6; } - if test "x$ac_cv_func_fdatasync" = xyes; then : - -$as_echo "#define HAVE_FDATASYNC 1" >>confdefs.h - -fi - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for epoll_create" >&5 -$as_echo_n "checking for epoll_create... " >&6; } -if ${ac_cv_func_epoll_create+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <sys/epoll.h> -int -main () -{ -void *x=epoll_create - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_epoll_create=yes -else - ac_cv_func_epoll_create=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_epoll_create" >&5 -$as_echo "$ac_cv_func_epoll_create" >&6; } - if test "x$ac_cv_func_epoll_create" = xyes; then : - -$as_echo "#define HAVE_EPOLL 1" >>confdefs.h - -fi - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for epoll_create1" >&5 -$as_echo_n "checking for epoll_create1... " >&6; } -if ${ac_cv_func_epoll_create1+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <sys/epoll.h> -int -main () -{ -void *x=epoll_create1 - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_epoll_create1=yes -else - ac_cv_func_epoll_create1=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_epoll_create1" >&5 -$as_echo "$ac_cv_func_epoll_create1" >&6; } - if test "x$ac_cv_func_epoll_create1" = xyes; then : - -$as_echo "#define HAVE_EPOLL_CREATE1 1" >>confdefs.h - -fi - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kqueue" >&5 -$as_echo_n "checking for kqueue... " >&6; } -if ${ac_cv_func_kqueue+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include <sys/types.h> -#include <sys/event.h> - -int -main () -{ -void *x=kqueue - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_kqueue=yes -else - ac_cv_func_kqueue=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_kqueue" >&5 -$as_echo "$ac_cv_func_kqueue" >&6; } - if test "x$ac_cv_func_kqueue" = xyes; then : - -$as_echo "#define HAVE_KQUEUE 1" >>confdefs.h - -fi - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prlimit" >&5 -$as_echo_n "checking for prlimit... " >&6; } -if ${ac_cv_func_prlimit+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include <sys/time.h> -#include <sys/resource.h> - -int -main () -{ -void *x=prlimit - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_prlimit=yes -else - ac_cv_func_prlimit=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - + pkg_failed=yes fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_prlimit" >&5 -$as_echo "$ac_cv_func_prlimit" >&6; } - if test "x$ac_cv_func_prlimit" = xyes; then : - -$as_echo "#define HAVE_PRLIMIT 1" >>confdefs.h - + else + pkg_failed=untried fi - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _dyld_shared_cache_contains_path" >&5 -$as_echo_n "checking for _dyld_shared_cache_contains_path... " >&6; } -if ${ac_cv_func__dyld_shared_cache_contains_path+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <mach-o/dyld.h> -int -main () -{ -void *x=_dyld_shared_cache_contains_path - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func__dyld_shared_cache_contains_path=yes +if test -n "$TCLTK_LIBS"; then + pkg_cv_TCLTK_LIBS="$TCLTK_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$_QUERY\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$_QUERY") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_TCLTK_LIBS=`$PKG_CONFIG --libs "$_QUERY" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - ac_cv_func__dyld_shared_cache_contains_path=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - + pkg_failed=yes fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func__dyld_shared_cache_contains_path" >&5 -$as_echo "$ac_cv_func__dyld_shared_cache_contains_path" >&6; } - if test "x$ac_cv_func__dyld_shared_cache_contains_path" = xyes; then : - -$as_echo "#define HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH 1" >>confdefs.h - + else + pkg_failed=untried fi +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for memfd_create" >&5 -$as_echo_n "checking for memfd_create... " >&6; } -if ${ac_cv_func_memfd_create+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#ifdef HAVE_SYS_MMAN_H -#include <sys/mman.h> -#endif -#ifdef HAVE_SYS_MEMFD_H -#include <sys/memfd.h> -#endif - -int -main () -{ -void *x=memfd_create - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_memfd_create=yes +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes else - ac_cv_func_memfd_create=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_memfd_create" >&5 -$as_echo "$ac_cv_func_memfd_create" >&6; } - if test "x$ac_cv_func_memfd_create" = xyes; then : - -$as_echo "#define HAVE_MEMFD_CREATE 1" >>confdefs.h - + _pkg_short_errors_supported=no fi + if test $_pkg_short_errors_supported = yes; then + TCLTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$_QUERY" 2>&1` + else + TCLTK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$_QUERY" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$TCLTK_PKG_ERRORS" >&5 - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for eventfd" >&5 -$as_echo_n "checking for eventfd... " >&6; } -if ${ac_cv_func_eventfd+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#ifdef HAVE_SYS_EVENTFD_H -#include <sys/eventfd.h> -#endif - -int -main () -{ -void *x=eventfd - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_eventfd=yes + found_tcltk=no +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + found_tcltk=no else - ac_cv_func_eventfd=no + TCLTK_CFLAGS=$pkg_cv_TCLTK_CFLAGS + TCLTK_LIBS=$pkg_cv_TCLTK_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + found_tcltk=yes fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_eventfd" >&5 -$as_echo "$ac_cv_func_eventfd" >&6; } - if test "x$ac_cv_func_eventfd" = xyes; then : - -$as_echo "#define HAVE_EVENTFD 1" >>confdefs.h - + if test "x$found_tcltk" = xyes; then : + break fi +done +if test "x$found_tcltk" = xno; then : + TCLTK_CFLAGS=${TCLTK_CFLAGS-""} + TCLTK_LIBS=${TCLTK_LIBS-""} +fi -# On some systems (eg. FreeBSD 5), we would find a definition of the -# functions ctermid_r, setgroups in the library, but no prototype -# (e.g. because we use _XOPEN_SOURCE). See whether we can take their -# address to avoid compiler warnings and potential miscompilations -# because of the missing prototypes. +case $ac_sys_system in #( + FreeBSD*) : + + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11\""; } >&5 + ($PKG_CONFIG --exists --print-errors "x11") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for X11" >&5 +$as_echo_n "checking for X11... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ctermid_r" >&5 -$as_echo_n "checking for ctermid_r... " >&6; } -if ${ac_cv_func_ctermid_r+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <stdio.h> -int -main () -{ -void *x=ctermid_r - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_ctermid_r=yes +if test -n "$X11_CFLAGS"; then + pkg_cv_X11_CFLAGS="$X11_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11\""; } >&5 + ($PKG_CONFIG --exists --print-errors "x11") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_X11_CFLAGS=`$PKG_CONFIG --cflags "x11" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - ac_cv_func_ctermid_r=no + pkg_failed=yes fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - + else + pkg_failed=untried fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_ctermid_r" >&5 -$as_echo "$ac_cv_func_ctermid_r" >&6; } - if test "x$ac_cv_func_ctermid_r" = xyes; then : - -$as_echo "#define HAVE_CTERMID_R 1" >>confdefs.h - +if test -n "$X11_LIBS"; then + pkg_cv_X11_LIBS="$X11_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11\""; } >&5 + ($PKG_CONFIG --exists --print-errors "x11") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_X11_LIBS=`$PKG_CONFIG --libs "x11" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried fi +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for flock declaration" >&5 -$as_echo_n "checking for flock declaration... " >&6; } -if ${ac_cv_flock_decl+:} false; then : - $as_echo_n "(cached) " >&6 +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <sys/file.h> -int -main () -{ -void* p = flock + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + X11_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "x11" 2>&1` + else + X11_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "x11" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$X11_PKG_ERRORS" >&5 - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_flock_decl=yes -else - ac_cv_flock_decl=no + as_fn_error $? "Package requirements (x11) were not met: -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +$X11_PKG_ERRORS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_flock_decl" >&5 -$as_echo "$ac_cv_flock_decl" >&6; } -if test "x$ac_cv_flock_decl" = xyes; then : - for ac_func in flock -do : - ac_fn_c_check_func "$LINENO" "flock" "ac_cv_func_flock" -if test "x$ac_cv_func_flock" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_FLOCK 1 -_ACEOF +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. -fi -done +Alternatively, you may set the environment variables X11_CFLAGS +and X11_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "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 +path to pkg-config. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for flock in -lbsd" >&5 -$as_echo_n "checking for flock in -lbsd... " >&6; } -if ${ac_cv_lib_bsd_flock+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lbsd $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +Alternatively, you may set the environment variables X11_CFLAGS +and X11_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char flock (); -int -main () -{ -return flock (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_bsd_flock=yes +To get pkg-config, see <http://pkg-config.freedesktop.org/>. +See \`config.log' for more details" "$LINENO" 5; } else - ac_cv_lib_bsd_flock=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + X11_CFLAGS=$pkg_cv_X11_CFLAGS + X11_LIBS=$pkg_cv_X11_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + TCLTK_CFLAGS="$TCLTK_CFLAGS $X11_CFLAGS" + TCLTK_LIBS="$TCLTK_LIBS $X11_LIBS" + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_flock" >&5 -$as_echo "$ac_cv_lib_bsd_flock" >&6; } -if test "x$ac_cv_lib_bsd_flock" = xyes; then : - FCNTL_LIBS="-lbsd" + fi + ;; #( + *) : + ;; +esac -fi +save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS + CPPFLAGS="$TCLTK_CFLAGS $CFLAGS" + LIBS="$TCLTK_LIBS $LDFLAGS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getpagesize" >&5 -$as_echo_n "checking for getpagesize... " >&6; } -if ${ac_cv_func_getpagesize+:} false; then : - $as_echo_n "(cached) " >&6 -else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <unistd.h> + + + #include <tcl.h> + #include <tk.h> + #if defined(TK_HEX_VERSION) + # if TK_HEX_VERSION < 0x0805020c + # error "Tk older than 8.5.12 not supported" + # endif + #endif + #if (TCL_MAJOR_VERSION < 8) || \ + ((TCL_MAJOR_VERSION == 8) && (TCL_MINOR_VERSION < 5)) || \ + ((TCL_MAJOR_VERSION == 8) && (TCL_MINOR_VERSION == 5) && (TCL_RELEASE_SERIAL < 12)) + # error "Tcl older than 8.5.12 not supported" + #endif + #if (TK_MAJOR_VERSION < 8) || \ + ((TK_MAJOR_VERSION == 8) && (TK_MINOR_VERSION < 5)) || \ + ((TK_MAJOR_VERSION == 8) && (TK_MINOR_VERSION == 5) && (TK_RELEASE_SERIAL < 12)) + # error "Tk older than 8.5.12 not supported" + #endif + int main () { -void *x=getpagesize + + void *x1 = Tcl_Init; + void *x2 = Tk_Init; + ; return 0; } + _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_getpagesize=yes +if ac_fn_c_try_link "$LINENO"; then : + + have_tcltk=yes + as_fn_append TCLTK_CFLAGS " -Wno-strict-prototypes -DWITH_APPINIT=1" + else - ac_cv_func_getpagesize=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + have_tcltk=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getpagesize" >&5 -$as_echo "$ac_cv_func_getpagesize" >&6; } - if test "x$ac_cv_func_getpagesize" = xyes; then : +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext -$as_echo "#define HAVE_GETPAGESIZE 1" >>confdefs.h +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken unsetenv" >&5 -$as_echo_n "checking for broken unsetenv... " >&6; } -if ${ac_cv_broken_unsetenv+:} false; then : +save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS + + + CPPFLAGS="$GDBM_CFLAGS $CFLAGS" + LDFLAGS="$GDBM_LIBS $LDFLAGS" + for ac_header in gdbm.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "gdbm.h" "ac_cv_header_gdbm_h" "$ac_includes_default" +if test "x$ac_cv_header_gdbm_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GDBM_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gdbm_open in -lgdbm" >&5 +$as_echo_n "checking for gdbm_open in -lgdbm... " >&6; } +if ${ac_cv_lib_gdbm_gdbm_open+:} false; then : $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_check_lib_save_LIBS=$LIBS +LIBS="-lgdbm $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <stdlib.h> + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gdbm_open (); int main () { -int res = unsetenv("DUMMY") +return gdbm_open (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_broken_unsetenv=no +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_gdbm_gdbm_open=yes else - ac_cv_broken_unsetenv=yes - + ac_cv_lib_gdbm_gdbm_open=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_unsetenv" >&5 -$as_echo "$ac_cv_broken_unsetenv" >&6; } -if test "x$ac_cv_broken_unsetenv" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gdbm_gdbm_open" >&5 +$as_echo "$ac_cv_lib_gdbm_gdbm_open" >&6; } +if test "x$ac_cv_lib_gdbm_gdbm_open" = xyes; then : + have_gdbm=yes + GDBM_LIBS=${GDBM_LIBS-"-lgdbm"} -$as_echo "#define HAVE_BROKEN_UNSETENV 1" >>confdefs.h +else + have_gdbm=no +fi +else + have_gdbm=no fi -for ac_prog in true -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_TRUE+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$TRUE"; then - ac_cv_prog_TRUE="$TRUE" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_TRUE="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi done - done -IFS=$as_save_IFS -fi -fi -TRUE=$ac_cv_prog_TRUE -if test -n "$TRUE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TRUE" >&5 -$as_echo "$TRUE" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS - test -n "$TRUE" && break -done -test -n "$TRUE" || TRUE="/bin/true" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_aton in -lc" >&5 -$as_echo_n "checking for inet_aton in -lc... " >&6; } -if ${ac_cv_lib_c_inet_aton+:} false; then : +# check for _dbmmodule.c dependencies +for ac_header in ndbm.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "ndbm.h" "ac_cv_header_ndbm_h" "$ac_includes_default" +if test "x$ac_cv_header_ndbm_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_NDBM_H 1 +_ACEOF + + LIBS_SAVE="$LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dbm_open in -lndbm" >&5 +$as_echo_n "checking for dbm_open in -lndbm... " >&6; } +if ${ac_cv_lib_ndbm_dbm_open+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lc $LIBS" +LIBS="-lndbm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -16942,36 +13474,43 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char inet_aton (); +char dbm_open (); int main () { -return inet_aton (); +return dbm_open (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_c_inet_aton=yes + ac_cv_lib_ndbm_dbm_open=yes else - ac_cv_lib_c_inet_aton=no + ac_cv_lib_ndbm_dbm_open=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_inet_aton" >&5 -$as_echo "$ac_cv_lib_c_inet_aton" >&6; } -if test "x$ac_cv_lib_c_inet_aton" = xyes; then : - $ac_cv_prog_TRUE -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_aton in -lresolv" >&5 -$as_echo_n "checking for inet_aton in -lresolv... " >&6; } -if ${ac_cv_lib_resolv_inet_aton+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ndbm_dbm_open" >&5 +$as_echo "$ac_cv_lib_ndbm_dbm_open" >&6; } +if test "x$ac_cv_lib_ndbm_dbm_open" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBNDBM 1 +_ACEOF + + LIBS="-lndbm $LIBS" + +fi + + LIBS="$LIBS_SAVE" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dbm_open in -lgdbm_compat" >&5 +$as_echo_n "checking for dbm_open in -lgdbm_compat... " >&6; } +if ${ac_cv_lib_gdbm_compat_dbm_open+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lresolv $LIBS" +LIBS="-lgdbm_compat $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -16981,294 +13520,355 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char inet_aton (); +char dbm_open (); int main () { -return inet_aton (); +return dbm_open (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_resolv_inet_aton=yes + ac_cv_lib_gdbm_compat_dbm_open=yes else - ac_cv_lib_resolv_inet_aton=no + ac_cv_lib_gdbm_compat_dbm_open=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_inet_aton" >&5 -$as_echo "$ac_cv_lib_resolv_inet_aton" >&6; } -if test "x$ac_cv_lib_resolv_inet_aton" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gdbm_compat_dbm_open" >&5 +$as_echo "$ac_cv_lib_gdbm_compat_dbm_open" >&6; } +if test "x$ac_cv_lib_gdbm_compat_dbm_open" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_LIBRESOLV 1 +#define HAVE_LIBGDBM_COMPAT 1 _ACEOF - LIBS="-lresolv $LIBS" + LIBS="-lgdbm_compat $LIBS" fi + LIBS="$LIBS_SAVE" fi +done -# On Tru64, chflags seems to be present, but calling it will -# exit Python -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for chflags" >&5 -$as_echo_n "checking for chflags... " >&6; } -if ${ac_cv_have_chflags+:} false; then : + +# "gdbm-ndbm.h" and "gdbm/ndbm.h" are both normalized to "gdbm_ndbm_h" +# unset ac_cv_header_gdbm_ndbm_h to prevent false positive cache hits. +{ ac_cv_header_gdbm_ndbm_h=; unset ac_cv_header_gdbm_ndbm_h;} +if ${ac_cv_header_gdbm_slash_ndbm_h+:} false; then : $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then : - ac_cv_have_chflags=cross -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include <sys/stat.h> -#include <unistd.h> -int main(int argc, char*argv[]) -{ - if(chflags(argv[0], 0) != 0) - return 1; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_have_chflags=yes + ac_fn_c_check_header_mongrel "$LINENO" "gdbm/ndbm.h" "ac_cv_header_gdbm_ndbm_h" "$ac_includes_default" +if test "x$ac_cv_header_gdbm_ndbm_h" = xyes; then : + ac_cv_header_gdbm_slash_ndbm_h=yes else - ac_cv_have_chflags=no + ac_cv_header_gdbm_slash_ndbm_h=no + fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + + + fi +if test "x$ac_cv_header_gdbm_slash_ndbm_h" = xyes; then : + + +$as_echo "#define HAVE_GDBM_NDBM_H 1" >>confdefs.h + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_chflags" >&5 -$as_echo "$ac_cv_have_chflags" >&6; } -if test "$ac_cv_have_chflags" = cross ; then - ac_fn_c_check_func "$LINENO" "chflags" "ac_cv_func_chflags" -if test "x$ac_cv_func_chflags" = xyes; then : - ac_cv_have_chflags="yes" + +{ ac_cv_header_gdbm_ndbm_h=; unset ac_cv_header_gdbm_ndbm_h;} +if ${ac_cv_header_gdbm_dash_ndbm_h+:} false; then : + $as_echo_n "(cached) " >&6 else - ac_cv_have_chflags="no" + + ac_fn_c_check_header_mongrel "$LINENO" "gdbm-ndbm.h" "ac_cv_header_gdbm_ndbm_h" "$ac_includes_default" +if test "x$ac_cv_header_gdbm_ndbm_h" = xyes; then : + ac_cv_header_gdbm_dash_ndbm_h=yes +else + ac_cv_header_gdbm_dash_ndbm_h=no + fi + + fi -if test "$ac_cv_have_chflags" = yes ; then -$as_echo "#define HAVE_CHFLAGS 1" >>confdefs.h +if test "x$ac_cv_header_gdbm_dash_ndbm_h" = xyes; then : + + +$as_echo "#define HAVE_GDBM_DASH_NDBM_H 1" >>confdefs.h + fi +{ ac_cv_header_gdbm_ndbm_h=; unset ac_cv_header_gdbm_ndbm_h;} -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for lchflags" >&5 -$as_echo_n "checking for lchflags... " >&6; } -if ${ac_cv_have_lchflags+:} false; then : +if test "$ac_cv_header_gdbm_slash_ndbm_h" = yes -o "$ac_cv_header_gdbm_dash_ndbm_h" = yes; then + LIBS_SAVE="$LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dbm_open in -lgdbm_compat" >&5 +$as_echo_n "checking for dbm_open in -lgdbm_compat... " >&6; } +if ${ac_cv_lib_gdbm_compat_dbm_open+:} false; then : $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then : - ac_cv_have_lchflags=cross -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_check_lib_save_LIBS=$LIBS +LIBS="-lgdbm_compat $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <sys/stat.h> -#include <unistd.h> -int main(int argc, char*argv[]) +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dbm_open (); +int +main () { - if(lchflags(argv[0], 0) != 0) - return 1; +return dbm_open (); + ; return 0; } - _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_have_lchflags=yes +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_gdbm_compat_dbm_open=yes else - ac_cv_have_lchflags=no + ac_cv_lib_gdbm_compat_dbm_open=no fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gdbm_compat_dbm_open" >&5 +$as_echo "$ac_cv_lib_gdbm_compat_dbm_open" >&6; } +if test "x$ac_cv_lib_gdbm_compat_dbm_open" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBGDBM_COMPAT 1 +_ACEOF + LIBS="-lgdbm_compat $LIBS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_lchflags" >&5 -$as_echo "$ac_cv_have_lchflags" >&6; } -if test "$ac_cv_have_lchflags" = cross ; then - ac_fn_c_check_func "$LINENO" "lchflags" "ac_cv_func_lchflags" -if test "x$ac_cv_func_lchflags" = xyes; then : - ac_cv_have_lchflags="yes" -else - ac_cv_have_lchflags="no" fi + LIBS="$LIBS_SAVE" fi -if test "$ac_cv_have_lchflags" = yes ; then -$as_echo "#define HAVE_LCHFLAGS 1" >>confdefs.h +# Check for libdb >= 5 with dbm_open() +# db.h re-defines the name of the function +for ac_header in db.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "db.h" "ac_cv_header_db_h" "$ac_includes_default" +if test "x$ac_cv_header_db_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DB_H 1 +_ACEOF -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libdb" >&5 +$as_echo_n "checking for libdb... " >&6; } +if ${ac_cv_have_libdb+:} false; then : + $as_echo_n "(cached) " >&6 +else + LIBS_SAVE="$LIBS" + LIBS="$LIBS -ldb" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #define DB_DBM_HSEARCH 1 + #include <db.h> + #if DB_VERSION_MAJOR < 5 + #error "dh.h: DB_VERSION_MAJOR < 5 is not supported." + #endif +int +main () +{ +DBM *dbm = dbm_open(NULL, 0, 0) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_have_libdb=yes +else + ac_cv_have_libdb=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$LIBS_SAVE" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_libdb" >&5 +$as_echo "$ac_cv_have_libdb" >&6; } + if test "x$ac_cv_have_libdb" = xyes; then : - if test "$ac_sys_system" = "Emscripten" -a -z "$ZLIB_CFLAGS" -a -z "$ZLIB_LIBS"; then : +$as_echo "#define HAVE_LIBDB 1" >>confdefs.h - ZLIB_CFLAGS="-sUSE_ZLIB" - ZLIB_LIBS="-sUSE_ZLIB" fi +fi +done +# Check for --with-dbmliborder +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-dbmliborder" >&5 +$as_echo_n "checking for --with-dbmliborder... " >&6; } -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ZLIB" >&5 -$as_echo_n "checking for ZLIB... " >&6; } - -if test -n "$ZLIB_CFLAGS"; then - pkg_cv_ZLIB_CFLAGS="$ZLIB_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"zlib >= 1.2.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "zlib >= 1.2.0") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_ZLIB_CFLAGS=`$PKG_CONFIG --cflags "zlib >= 1.2.0" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$ZLIB_LIBS"; then - pkg_cv_ZLIB_LIBS="$ZLIB_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"zlib >= 1.2.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "zlib >= 1.2.0") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_ZLIB_LIBS=`$PKG_CONFIG --libs "zlib >= 1.2.0" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes +# Check whether --with-dbmliborder was given. +if test "${with_dbmliborder+set}" = set; then : + withval=$with_dbmliborder; else - pkg_failed=yes -fi - else - pkg_failed=untried + with_dbmliborder=gdbm:ndbm:bdb fi +have_gdbm_dbmliborder=no +as_save_IFS=$IFS +IFS=: +for db in $with_dbmliborder; do + case $db in #( + ndbm) : + ;; #( + gdbm) : + have_gdbm_dbmliborder=yes ;; #( + bdb) : + ;; #( + *) : + with_dbmliborder=error + ;; +esac +done +IFS=$as_save_IFS +if test "x$with_dbmliborder" = xerror; then : -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + as_fn_error $? "proper usage is --with-dbmliborder=db1:db2:... (gdbm:ndbm:bdb)" "$LINENO" 5 -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no fi - if test $_pkg_short_errors_supported = yes; then - ZLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "zlib >= 1.2.0" 2>&1` - else - ZLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "zlib >= 1.2.0" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$ZLIB_PKG_ERRORS" >&5 - +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_dbmliborder" >&5 +$as_echo "$with_dbmliborder" >&6; } - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS +# Templates for things AC_DEFINEd more than once. +# For a single AC_DEFINE, no template is needed. - CPPFLAGS="$CPPFLAGS $ZLIB_CFLAGS" - LDFLAGS="$LDFLAGS $ZLIB_LIBS" - for ac_header in zlib.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" -if test "x$ac_cv_header_zlib_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_ZLIB_H 1 -_ACEOF +if test "$ac_cv_pthread_is_default" = yes +then + # Defining _REENTRANT on system with POSIX threads should not hurt. + $as_echo "#define _REENTRANT 1" >>confdefs.h - py_check_lib_save_LIBS=$LIBS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gzread in -lz" >&5 -$as_echo_n "checking for gzread in -lz... " >&6; } -if ${ac_cv_lib_z_gzread+:} false; then : - $as_echo_n "(cached) " >&6 + posix_threads=yes + if test "$ac_sys_system" = "SunOS"; then + CFLAGS="$CFLAGS -D_REENTRANT" + fi +elif test "$ac_cv_kpthread" = "yes" +then + CC="$CC -Kpthread" + if test "$ac_cv_cxx_thread" = "yes"; then + CXX="$CXX -Kpthread" + fi + posix_threads=yes +elif test "$ac_cv_kthread" = "yes" +then + CC="$CC -Kthread" + if test "$ac_cv_cxx_thread" = "yes"; then + CXX="$CXX -Kthread" + fi + posix_threads=yes +elif test "$ac_cv_pthread" = "yes" +then + CC="$CC -pthread" + if test "$ac_cv_cxx_thread" = "yes"; then + CXX="$CXX -pthread" + fi + posix_threads=yes else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lz $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if test ! -z "$withval" -a -d "$withval" + then LDFLAGS="$LDFLAGS -L$withval" + fi + + # According to the POSIX spec, a pthreads implementation must + # define _POSIX_THREADS in unistd.h. Some apparently don't + # (e.g. gnu pth with pthread emulation) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _POSIX_THREADS in unistd.h" >&5 +$as_echo_n "checking for _POSIX_THREADS in unistd.h... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" +#include <unistd.h> +#ifdef _POSIX_THREADS +yes #endif -char gzread (); -int -main () -{ -return gzread (); - ; - return 0; -} + _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_z_gzread=yes -else - ac_cv_lib_z_gzread=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_gzread" >&5 -$as_echo "$ac_cv_lib_z_gzread" >&6; } -if test "x$ac_cv_lib_z_gzread" = xyes; then : - have_zlib=yes +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + unistd_defines_pthreads=yes else - have_zlib=no + unistd_defines_pthreads=no fi +rm -f conftest* + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $unistd_defines_pthreads" >&5 +$as_echo "$unistd_defines_pthreads" >&6; } + + $as_echo "#define _REENTRANT 1" >>confdefs.h + + # Just looking for pthread_create in libpthread is not enough: + # on HP/UX, pthread.h renames pthread_create to a different symbol name. + # So we really have to include pthread.h, and then link. + _libs=$LIBS + LIBS="$LIBS -lpthread" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthread" >&5 +$as_echo_n "checking for pthread_create in -lpthread... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include <stdio.h> +#include <pthread.h> + +void * start_routine (void *arg) { exit (0); } +int +main () +{ -LIBS=$py_check_lib_save_LIBS +pthread_create (NULL, NULL, start_routine, NULL) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + posix_threads=yes else - have_zlib=no -fi -done + LIBS=$_libs + ac_fn_c_check_func "$LINENO" "pthread_detach" "ac_cv_func_pthread_detach" +if test "x$ac_cv_func_pthread_detach" = xyes; then : - if test "x$have_zlib" = xyes; then : + posix_threads=yes - ZLIB_CFLAGS=${ZLIB_CFLAGS-""} - ZLIB_LIBS=${ZLIB_LIBS-"-lz"} - py_check_lib_save_LIBS=$LIBS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inflateCopy in -lz" >&5 -$as_echo_n "checking for inflateCopy in -lz... " >&6; } -if ${ac_cv_lib_z_inflateCopy+:} false; then : +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthreads" >&5 +$as_echo_n "checking for pthread_create in -lpthreads... " >&6; } +if ${ac_cv_lib_pthreads_pthread_create+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lz $LIBS" +LIBS="-lpthreads $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -17278,71 +13878,40 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char inflateCopy (); +char pthread_create (); int main () { -return inflateCopy (); +return pthread_create (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_z_inflateCopy=yes + ac_cv_lib_pthreads_pthread_create=yes else - ac_cv_lib_z_inflateCopy=no + ac_cv_lib_pthreads_pthread_create=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_inflateCopy" >&5 -$as_echo "$ac_cv_lib_z_inflateCopy" >&6; } -if test "x$ac_cv_lib_z_inflateCopy" = xyes; then : - $as_echo "#define HAVE_ZLIB_COPY 1" >>confdefs.h - -fi - -LIBS=$py_check_lib_save_LIBS - - -fi - -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS - - - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthreads_pthread_create" >&5 +$as_echo "$ac_cv_lib_pthreads_pthread_create" >&6; } +if test "x$ac_cv_lib_pthreads_pthread_create" = xyes; then : + posix_threads=yes + LIBS="$LIBS -lpthreads" - CPPFLAGS="$CPPFLAGS $ZLIB_CFLAGS" - LDFLAGS="$LDFLAGS $ZLIB_LIBS" - for ac_header in zlib.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" -if test "x$ac_cv_header_zlib_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_ZLIB_H 1 -_ACEOF +else - py_check_lib_save_LIBS=$LIBS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gzread in -lz" >&5 -$as_echo_n "checking for gzread in -lz... " >&6; } -if ${ac_cv_lib_z_gzread+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lc_r" >&5 +$as_echo_n "checking for pthread_create in -lc_r... " >&6; } +if ${ac_cv_lib_c_r_pthread_create+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lz $LIBS" +LIBS="-lc_r $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -17352,53 +13921,40 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char gzread (); +char pthread_create (); int main () { -return gzread (); +return pthread_create (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_z_gzread=yes + ac_cv_lib_c_r_pthread_create=yes else - ac_cv_lib_z_gzread=no + ac_cv_lib_c_r_pthread_create=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_gzread" >&5 -$as_echo "$ac_cv_lib_z_gzread" >&6; } -if test "x$ac_cv_lib_z_gzread" = xyes; then : - have_zlib=yes -else - have_zlib=no -fi - -LIBS=$py_check_lib_save_LIBS +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_create" >&5 +$as_echo "$ac_cv_lib_c_r_pthread_create" >&6; } +if test "x$ac_cv_lib_c_r_pthread_create" = xyes; then : + posix_threads=yes + LIBS="$LIBS -lc_r" else - have_zlib=no -fi - -done - if test "x$have_zlib" = xyes; then : - - ZLIB_CFLAGS=${ZLIB_CFLAGS-""} - ZLIB_LIBS=${ZLIB_LIBS-"-lz"} - py_check_lib_save_LIBS=$LIBS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inflateCopy in -lz" >&5 -$as_echo_n "checking for inflateCopy in -lz... " >&6; } -if ${ac_cv_lib_z_inflateCopy+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __pthread_create_system in -lpthread" >&5 +$as_echo_n "checking for __pthread_create_system in -lpthread... " >&6; } +if ${ac_cv_lib_pthread___pthread_create_system+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lz $LIBS" +LIBS="-lpthread $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -17408,158 +13964,40 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char inflateCopy (); +char __pthread_create_system (); int main () { -return inflateCopy (); +return __pthread_create_system (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_z_inflateCopy=yes + ac_cv_lib_pthread___pthread_create_system=yes else - ac_cv_lib_z_inflateCopy=no + ac_cv_lib_pthread___pthread_create_system=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_inflateCopy" >&5 -$as_echo "$ac_cv_lib_z_inflateCopy" >&6; } -if test "x$ac_cv_lib_z_inflateCopy" = xyes; then : - $as_echo "#define HAVE_ZLIB_COPY 1" >>confdefs.h - -fi - -LIBS=$py_check_lib_save_LIBS - - -fi - -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS - - - -else - ZLIB_CFLAGS=$pkg_cv_ZLIB_CFLAGS - ZLIB_LIBS=$pkg_cv_ZLIB_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - have_zlib=yes - $as_echo "#define HAVE_ZLIB_COPY 1" >>confdefs.h - - -fi - -if test "x$have_zlib" = xyes; then : - - BINASCII_CFLAGS="-DUSE_ZLIB_CRC32 $ZLIB_CFLAGS" - BINASCII_LIBS="$ZLIB_LIBS" - -fi - - - - - if test "$ac_sys_system" = "Emscripten" -a -z "$BZIP2_CFLAGS" -a -z "$BZIP2_LIBS"; then : - - BZIP2_CFLAGS="-sUSE_BZIP2" - BZIP2_LIBS="-sUSE_BZIP2" - -fi - - - - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BZIP2" >&5 -$as_echo_n "checking for BZIP2... " >&6; } - -if test -n "$BZIP2_CFLAGS"; then - pkg_cv_BZIP2_CFLAGS="$BZIP2_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"bzip2\""; } >&5 - ($PKG_CONFIG --exists --print-errors "bzip2") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_BZIP2_CFLAGS=`$PKG_CONFIG --cflags "bzip2" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$BZIP2_LIBS"; then - pkg_cv_BZIP2_LIBS="$BZIP2_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"bzip2\""; } >&5 - ($PKG_CONFIG --exists --print-errors "bzip2") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_BZIP2_LIBS=`$PKG_CONFIG --libs "bzip2" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread___pthread_create_system" >&5 +$as_echo "$ac_cv_lib_pthread___pthread_create_system" >&6; } +if test "x$ac_cv_lib_pthread___pthread_create_system" = xyes; then : -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + posix_threads=yes + LIBS="$LIBS -lpthread" -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - BZIP2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "bzip2" 2>&1` - else - BZIP2_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "bzip2" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$BZIP2_PKG_ERRORS" >&5 - - - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS - - - CPPFLAGS="$CPPFLAGS $BZIP2_CFLAGS" - LDFLAGS="$LDFLAGS $BZIP2_LIBS" - for ac_header in bzlib.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "bzlib.h" "ac_cv_header_bzlib_h" "$ac_includes_default" -if test "x$ac_cv_header_bzlib_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_BZLIB_H 1 -_ACEOF - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BZ2_bzCompress in -lbz2" >&5 -$as_echo_n "checking for BZ2_bzCompress in -lbz2... " >&6; } -if ${ac_cv_lib_bz2_BZ2_bzCompress+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lcma" >&5 +$as_echo_n "checking for pthread_create in -lcma... " >&6; } +if ${ac_cv_lib_cma_pthread_create+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lbz2 $LIBS" +LIBS="-lcma $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -17569,80 +14007,57 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char BZ2_bzCompress (); +char pthread_create (); int main () { -return BZ2_bzCompress (); +return pthread_create (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_bz2_BZ2_bzCompress=yes + ac_cv_lib_cma_pthread_create=yes else - ac_cv_lib_bz2_BZ2_bzCompress=no + ac_cv_lib_cma_pthread_create=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bz2_BZ2_bzCompress" >&5 -$as_echo "$ac_cv_lib_bz2_BZ2_bzCompress" >&6; } -if test "x$ac_cv_lib_bz2_BZ2_bzCompress" = xyes; then : - have_bzip2=yes -else - have_bzip2=no -fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cma_pthread_create" >&5 +$as_echo "$ac_cv_lib_cma_pthread_create" >&6; } +if test "x$ac_cv_lib_cma_pthread_create" = xyes; then : + posix_threads=yes + LIBS="$LIBS -lcma" else - have_bzip2=no -fi - -done - if test "x$have_bzip2" = xyes; then : - - BZIP2_CFLAGS=${BZIP2_CFLAGS-""} - BZIP2_LIBS=${BZIP2_LIBS-"-lbz2"} + as_fn_error $? "could not find pthreads on your system" "$LINENO" 5 fi -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS - +fi -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +fi - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS +fi +fi - CPPFLAGS="$CPPFLAGS $BZIP2_CFLAGS" - LDFLAGS="$LDFLAGS $BZIP2_LIBS" - for ac_header in bzlib.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "bzlib.h" "ac_cv_header_bzlib_h" "$ac_includes_default" -if test "x$ac_cv_header_bzlib_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_BZLIB_H 1 -_ACEOF +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BZ2_bzCompress in -lbz2" >&5 -$as_echo_n "checking for BZ2_bzCompress in -lbz2... " >&6; } -if ${ac_cv_lib_bz2_BZ2_bzCompress+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for usconfig in -lmpc" >&5 +$as_echo_n "checking for usconfig in -lmpc... " >&6; } +if ${ac_cv_lib_mpc_usconfig+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lbz2 $LIBS" +LIBS="-lmpc $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -17652,630 +14067,872 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char BZ2_bzCompress (); +char usconfig (); int main () { -return BZ2_bzCompress (); +return usconfig (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_bz2_BZ2_bzCompress=yes + ac_cv_lib_mpc_usconfig=yes else - ac_cv_lib_bz2_BZ2_bzCompress=no + ac_cv_lib_mpc_usconfig=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bz2_BZ2_bzCompress" >&5 -$as_echo "$ac_cv_lib_bz2_BZ2_bzCompress" >&6; } -if test "x$ac_cv_lib_bz2_BZ2_bzCompress" = xyes; then : - have_bzip2=yes -else - have_bzip2=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpc_usconfig" >&5 +$as_echo "$ac_cv_lib_mpc_usconfig" >&6; } +if test "x$ac_cv_lib_mpc_usconfig" = xyes; then : + + LIBS="$LIBS -lmpc" + fi -else - have_bzip2=no fi -done +if test "$posix_threads" = "yes"; then + if test "$unistd_defines_pthreads" = "no"; then - if test "x$have_bzip2" = xyes; then : +$as_echo "#define _POSIX_THREADS 1" >>confdefs.h - BZIP2_CFLAGS=${BZIP2_CFLAGS-""} - BZIP2_LIBS=${BZIP2_LIBS-"-lbz2"} + fi -fi + # Bug 662787: Using semaphores causes unexplicable hangs on Solaris 8. + case $ac_sys_system/$ac_sys_release in + SunOS/5.6) +$as_echo "#define HAVE_PTHREAD_DESTRUCTOR 1" >>confdefs.h -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS + ;; + SunOS/5.8) +$as_echo "#define HAVE_BROKEN_POSIX_SEMAPHORES 1" >>confdefs.h + + ;; + AIX/*) +$as_echo "#define HAVE_BROKEN_POSIX_SEMAPHORES 1" >>confdefs.h + ;; + NetBSD/*) +$as_echo "#define HAVE_BROKEN_POSIX_SEMAPHORES 1" >>confdefs.h + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if PTHREAD_SCOPE_SYSTEM is supported" >&5 +$as_echo_n "checking if PTHREAD_SCOPE_SYSTEM is supported... " >&6; } +if ${ac_cv_pthread_system_supported+:} false; then : + $as_echo_n "(cached) " >&6 else - BZIP2_CFLAGS=$pkg_cv_BZIP2_CFLAGS - BZIP2_LIBS=$pkg_cv_BZIP2_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - have_bzip2=yes -fi + if test "$cross_compiling" = yes; then : + ac_cv_pthread_system_supported=no +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + #include <stdio.h> + #include <pthread.h> + void *foo(void *parm) { + return NULL; + } + main() { + pthread_attr_t attr; + pthread_t id; + if (pthread_attr_init(&attr)) return (-1); + if (pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM)) return (-1); + if (pthread_create(&id, &attr, foo, NULL)) return (-1); + return (0); + } +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_pthread_system_supported=yes +else + ac_cv_pthread_system_supported=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBLZMA" >&5 -$as_echo_n "checking for LIBLZMA... " >&6; } -if test -n "$LIBLZMA_CFLAGS"; then - pkg_cv_LIBLZMA_CFLAGS="$LIBLZMA_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"liblzma\""; } >&5 - ($PKG_CONFIG --exists --print-errors "liblzma") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_LIBLZMA_CFLAGS=`$PKG_CONFIG --cflags "liblzma" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes fi - else - pkg_failed=untried +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_pthread_system_supported" >&5 +$as_echo "$ac_cv_pthread_system_supported" >&6; } + if test "$ac_cv_pthread_system_supported" = "yes"; then + +$as_echo "#define PTHREAD_SYSTEM_SCHED_SUPPORTED 1" >>confdefs.h + + fi + for ac_func in pthread_sigmask +do : + ac_fn_c_check_func "$LINENO" "pthread_sigmask" "ac_cv_func_pthread_sigmask" +if test "x$ac_cv_func_pthread_sigmask" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_PTHREAD_SIGMASK 1 +_ACEOF + case $ac_sys_system in + CYGWIN*) + +$as_echo "#define HAVE_BROKEN_PTHREAD_SIGMASK 1" >>confdefs.h + + ;; + esac fi -if test -n "$LIBLZMA_LIBS"; then - pkg_cv_LIBLZMA_LIBS="$LIBLZMA_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"liblzma\""; } >&5 - ($PKG_CONFIG --exists --print-errors "liblzma") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_LIBLZMA_LIBS=`$PKG_CONFIG --libs "liblzma" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes +done + + for ac_func in pthread_getcpuclockid +do : + ac_fn_c_check_func "$LINENO" "pthread_getcpuclockid" "ac_cv_func_pthread_getcpuclockid" +if test "x$ac_cv_func_pthread_getcpuclockid" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_PTHREAD_GETCPUCLOCKID 1 +_ACEOF + fi - else - pkg_failed=untried +done + fi +# Check for enable-ipv6 -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if --enable-ipv6 is specified" >&5 +$as_echo_n "checking if --enable-ipv6 is specified... " >&6; } +# Check whether --enable-ipv6 was given. +if test "${enable_ipv6+set}" = set; then : + enableval=$enable_ipv6; case "$enableval" in + no) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } + ipv6=no + ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + $as_echo "#define ENABLE_IPV6 1" >>confdefs.h + + ipv6=yes + ;; + esac +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + /* AF_INET6 available check */ +#include <sys/types.h> +#include <sys/socket.h> +int +main () +{ +int domain = AF_INET6; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + ipv6=yes -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - LIBLZMA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "liblzma" 2>&1` - else - LIBLZMA_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "liblzma" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$LIBLZMA_PKG_ERRORS" >&5 + ipv6=no - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +case $ac_sys_system in #( + WASI) : + ipv6=no + ;; #( + *) : + ;; +esac - CPPFLAGS="$CPPFLAGS $LIBLZMA_CFLAGS" - LDFLAGS="$LDFLAGS $LIBLZMA_LIBS" - for ac_header in lzma.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "lzma.h" "ac_cv_header_lzma_h" "$ac_includes_default" -if test "x$ac_cv_header_lzma_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LZMA_H 1 -_ACEOF +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ipv6" >&5 +$as_echo "$ipv6" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lzma_easy_encoder in -llzma" >&5 -$as_echo_n "checking for lzma_easy_encoder in -llzma... " >&6; } -if ${ac_cv_lib_lzma_lzma_easy_encoder+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-llzma $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +if test "$ipv6" = "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if RFC2553 API is available" >&5 +$as_echo_n "checking if RFC2553 API is available... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char lzma_easy_encoder (); + #include <sys/types.h> +#include <netinet/in.h> int main () { -return lzma_easy_encoder (); +struct sockaddr_in6 x; + x.sin6_scope_id; ; return 0; } + _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_lzma_lzma_easy_encoder=yes -else - ac_cv_lib_lzma_lzma_easy_encoder=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lzma_lzma_easy_encoder" >&5 -$as_echo "$ac_cv_lib_lzma_lzma_easy_encoder" >&6; } -if test "x$ac_cv_lib_lzma_lzma_easy_encoder" = xyes; then : - have_liblzma=yes -else - have_liblzma=no -fi +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + ipv6=yes else - have_liblzma=no -fi -done + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ipv6=no - if test "x$have_liblzma" = xyes; then : +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi - LIBLZMA_CFLAGS=${LIBLZMA_CFLAGS-""} - LIBLZMA_LIBS=${LIBLZMA_LIBS-"-llzma"} +if test "$ipv6" = "yes"; then + $as_echo "#define ENABLE_IPV6 1" >>confdefs.h fi -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS +fi +ipv6type=unknown +ipv6lib=none +ipv6trylibc=no -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +if test "$ipv6" = "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking ipv6 stack type" >&5 +$as_echo_n "checking ipv6 stack type... " >&6; } + for i in inria kame linux-glibc linux-inet6 solaris toshiba v6d zeta; + do + case $i in + inria) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS +#include <netinet/in.h> +#ifdef IPV6_INRIA_VERSION +yes +#endif +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + ipv6type=$i +fi +rm -f conftest* + ;; + kame) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - CPPFLAGS="$CPPFLAGS $LIBLZMA_CFLAGS" - LDFLAGS="$LDFLAGS $LIBLZMA_LIBS" - for ac_header in lzma.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "lzma.h" "ac_cv_header_lzma_h" "$ac_includes_default" -if test "x$ac_cv_header_lzma_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LZMA_H 1 +#include <netinet/in.h> +#ifdef __KAME__ +yes +#endif _ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + ipv6type=$i; + ipv6lib=inet6 + ipv6libdir=/usr/local/v6/lib + ipv6trylibc=yes +fi +rm -f conftest* - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lzma_easy_encoder in -llzma" >&5 -$as_echo_n "checking for lzma_easy_encoder in -llzma... " >&6; } -if ${ac_cv_lib_lzma_lzma_easy_encoder+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-llzma $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ;; + linux-glibc) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" +#include <features.h> +#if defined(__GLIBC__) && ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)) +yes #endif -char lzma_easy_encoder (); -int -main () -{ -return lzma_easy_encoder (); - ; - return 0; -} _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_lzma_lzma_easy_encoder=yes -else - ac_cv_lib_lzma_lzma_easy_encoder=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lzma_lzma_easy_encoder" >&5 -$as_echo "$ac_cv_lib_lzma_lzma_easy_encoder" >&6; } -if test "x$ac_cv_lib_lzma_lzma_easy_encoder" = xyes; then : - have_liblzma=yes -else - have_liblzma=no +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + ipv6type=$i; + ipv6trylibc=yes fi +rm -f conftest* + ;; + linux-inet6) + if test -d /usr/inet6; then + ipv6type=$i + ipv6lib=inet6 + ipv6libdir=/usr/inet6/lib + BASECFLAGS="-I/usr/inet6/include $BASECFLAGS" + fi + ;; + solaris) + if test -f /etc/netconfig; then + if $GREP -q tcp6 /etc/netconfig; then + ipv6type=$i + ipv6trylibc=yes + fi + fi + ;; + toshiba) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -else - have_liblzma=no +#include <sys/param.h> +#ifdef _TOSHIBA_INET6 +yes +#endif +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + ipv6type=$i; + ipv6lib=inet6; + ipv6libdir=/usr/local/v6/lib fi +rm -f conftest* -done + ;; + v6d) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - if test "x$have_liblzma" = xyes; then : +#include </usr/local/v6/include/sys/v6config.h> +#ifdef __V6D__ +yes +#endif +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + ipv6type=$i; + ipv6lib=v6; + ipv6libdir=/usr/local/v6/lib; + BASECFLAGS="-I/usr/local/v6/include $BASECFLAGS" +fi +rm -f conftest* - LIBLZMA_CFLAGS=${LIBLZMA_CFLAGS-""} - LIBLZMA_LIBS=${LIBLZMA_LIBS-"-llzma"} + ;; + zeta) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/param.h> +#ifdef _ZETA_MINAMI_INET6 +yes +#endif +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + ipv6type=$i; + ipv6lib=inet6; + ipv6libdir=/usr/local/v6/lib fi +rm -f conftest* -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS + ;; + esac + if test "$ipv6type" != "unknown"; then + break + fi + done + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ipv6type" >&5 +$as_echo "$ipv6type" >&6; } +fi +if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then + if test -d $ipv6libdir -a -f $ipv6libdir/lib$ipv6lib.a; then + LIBS="-L$ipv6libdir -l$ipv6lib $LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: using lib$ipv6lib" >&5 +$as_echo "$as_me: using lib$ipv6lib" >&6;} + else + if test "x$ipv6trylibc" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: using libc" >&5 +$as_echo "$as_me: using libc" >&6;} else - LIBLZMA_CFLAGS=$pkg_cv_LIBLZMA_CFLAGS - LIBLZMA_LIBS=$pkg_cv_LIBLZMA_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - have_liblzma=yes -fi - + as_fn_error $? "No $ipv6lib library found; cannot continue. You need to fetch lib$ipv6lib.a from appropriate ipv6 kit and compile beforehand." "$LINENO" 5 +fi + fi +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for hstrerror" >&5 -$as_echo_n "checking for hstrerror... " >&6; } -if ${ac_cv_func_hstrerror+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CAN_RAW_FD_FRAMES" >&5 +$as_echo_n "checking CAN_RAW_FD_FRAMES... " >&6; } +if ${ac_cv_can_raw_fd_frames+:} false; then : $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <netdb.h> + /* CAN_RAW_FD_FRAMES available check */ +#include <linux/can/raw.h> int main () { -void *x=hstrerror +int can_raw_fd_frames = CAN_RAW_FD_FRAMES; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_hstrerror=yes + ac_cv_can_raw_fd_frames=yes else - ac_cv_func_hstrerror=no + ac_cv_can_raw_fd_frames=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_hstrerror" >&5 -$as_echo "$ac_cv_func_hstrerror" >&6; } - if test "x$ac_cv_func_hstrerror" = xyes; then : - -$as_echo "#define HAVE_HSTRERROR 1" >>confdefs.h - -fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_can_raw_fd_frames" >&5 +$as_echo "$ac_cv_can_raw_fd_frames" >&6; } +if test "x$ac_cv_can_raw_fd_frames" = xyes; then : +$as_echo "#define HAVE_LINUX_CAN_RAW_FD_FRAMES 1" >>confdefs.h +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getservbyname" >&5 -$as_echo_n "checking for getservbyname... " >&6; } -if ${ac_cv_func_getservbyname+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CAN_RAW_JOIN_FILTERS" >&5 +$as_echo_n "checking for CAN_RAW_JOIN_FILTERS... " >&6; } +if ${ac_cv_can_raw_join_filters+:} false; then : $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <netdb.h> + +#include <linux/can/raw.h> int main () { -void *x=getservbyname +int can_raw_join_filters = CAN_RAW_JOIN_FILTERS; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_getservbyname=yes + ac_cv_can_raw_join_filters=yes else - ac_cv_func_getservbyname=no + ac_cv_can_raw_join_filters=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getservbyname" >&5 -$as_echo "$ac_cv_func_getservbyname" >&6; } - if test "x$ac_cv_func_getservbyname" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_can_raw_join_filters" >&5 +$as_echo "$ac_cv_can_raw_join_filters" >&6; } +if test "x$ac_cv_can_raw_join_filters" = xyes; then : + + +$as_echo "#define HAVE_LINUX_CAN_RAW_JOIN_FILTERS 1" >>confdefs.h -$as_echo "#define HAVE_GETSERVBYNAME 1" >>confdefs.h fi +# Check for --with-doc-strings +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-doc-strings" >&5 +$as_echo_n "checking for --with-doc-strings... " >&6; } +# Check whether --with-doc-strings was given. +if test "${with_doc_strings+set}" = set; then : + withval=$with_doc_strings; +fi +if test -z "$with_doc_strings" +then with_doc_strings="yes" +fi +if test "$with_doc_strings" != "no" +then + +$as_echo "#define WITH_DOC_STRINGS 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getservbyport" >&5 -$as_echo_n "checking for getservbyport... " >&6; } -if ${ac_cv_func_getservbyport+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <netdb.h> -int -main () -{ -void *x=getservbyport - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_getservbyport=yes -else - ac_cv_func_getservbyport=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_doc_strings" >&5 +$as_echo "$with_doc_strings" >&6; } + +# Check for Python-specific malloc support +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-pymalloc" >&5 +$as_echo_n "checking for --with-pymalloc... " >&6; } + +# Check whether --with-pymalloc was given. +if test "${with_pymalloc+set}" = set; then : + withval=$with_pymalloc; +fi + + +if test -z "$with_pymalloc" +then + case $ac_sys_system in #( + Emscripten) : + with_pymalloc="no" ;; #( + WASI) : + with_pymalloc="no" ;; #( + *) : + with_pymalloc="yes" + ;; +esac +fi +if test "$with_pymalloc" != "no" +then + +$as_echo "#define WITH_PYMALLOC 1" >>confdefs.h fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getservbyport" >&5 -$as_echo "$ac_cv_func_getservbyport" >&6; } - if test "x$ac_cv_func_getservbyport" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_pymalloc" >&5 +$as_echo "$with_pymalloc" >&6; } + +# Check whether objects such as float, tuple and dict are using +# freelists to optimization memory allocation. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-freelists" >&5 +$as_echo_n "checking for --with-freelists... " >&6; } + +# Check whether --with-freelists was given. +if test "${with_freelists+set}" = set; then : + withval=$with_freelists; +fi -$as_echo "#define HAVE_GETSERVBYPORT 1" >>confdefs.h +if test -z "$with_freelists" +then + with_freelists="yes" fi +if test "$with_freelists" != "no" +then + +$as_echo "#define WITH_FREELISTS 1" >>confdefs.h +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_freelists" >&5 +$as_echo "$with_freelists" >&6; } +# Check for --with-c-locale-coercion +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-c-locale-coercion" >&5 +$as_echo_n "checking for --with-c-locale-coercion... " >&6; } +# Check whether --with-c-locale-coercion was given. +if test "${with_c_locale_coercion+set}" = set; then : + withval=$with_c_locale_coercion; +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname" >&5 -$as_echo_n "checking for gethostbyname... " >&6; } -if ${ac_cv_func_gethostbyname+:} false; then : - $as_echo_n "(cached) " >&6 +if test -z "$with_c_locale_coercion" +then + with_c_locale_coercion="yes" +fi +if test "$with_c_locale_coercion" != "no" +then + +$as_echo "#define PY_COERCE_C_LOCALE 1" >>confdefs.h + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_c_locale_coercion" >&5 +$as_echo "$with_c_locale_coercion" >&6; } + +# Check for Valgrind support +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-valgrind" >&5 +$as_echo_n "checking for --with-valgrind... " >&6; } + +# Check whether --with-valgrind was given. +if test "${with_valgrind+set}" = set; then : + withval=$with_valgrind; else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <netdb.h> -int -main () -{ -void *x=gethostbyname - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_gethostbyname=yes + with_valgrind=no +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_valgrind" >&5 +$as_echo "$with_valgrind" >&6; } +if test "$with_valgrind" != no; then + ac_fn_c_check_header_mongrel "$LINENO" "valgrind/valgrind.h" "ac_cv_header_valgrind_valgrind_h" "$ac_includes_default" +if test "x$ac_cv_header_valgrind_valgrind_h" = xyes; then : + +$as_echo "#define WITH_VALGRIND 1" >>confdefs.h + else - ac_cv_func_gethostbyname=no + as_fn_error $? "Valgrind support requested but headers not available" "$LINENO" 5 + fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + OPT="-DDYNAMIC_ANNOTATIONS_ENABLED=1 $OPT" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_gethostbyname" >&5 -$as_echo "$ac_cv_func_gethostbyname" >&6; } - if test "x$ac_cv_func_gethostbyname" = xyes; then : -$as_echo "#define HAVE_GETHOSTBYNAME 1" >>confdefs.h +# Check for DTrace support +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-dtrace" >&5 +$as_echo_n "checking for --with-dtrace... " >&6; } +# Check whether --with-dtrace was given. +if test "${with_dtrace+set}" = set; then : + withval=$with_dtrace; +else + with_dtrace=no fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_dtrace" >&5 +$as_echo "$with_dtrace" >&6; } + - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyaddr" >&5 -$as_echo_n "checking for gethostbyaddr... " >&6; } -if ${ac_cv_func_gethostbyaddr+:} false; then : +DTRACE= +DTRACE_HEADERS= +DTRACE_OBJS= + +if test "$with_dtrace" = "yes" +then + # Extract the first word of "dtrace", so it can be a program name with args. +set dummy dtrace; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DTRACE+:} false; then : $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <netdb.h> -int -main () -{ -void *x=gethostbyaddr - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_gethostbyaddr=yes -else - ac_cv_func_gethostbyaddr=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + case $DTRACE in + [\\/]* | ?:[\\/]*) + ac_cv_path_DTRACE="$DTRACE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_DTRACE="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + test -z "$ac_cv_path_DTRACE" && ac_cv_path_DTRACE="not found" + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_gethostbyaddr" >&5 -$as_echo "$ac_cv_func_gethostbyaddr" >&6; } - if test "x$ac_cv_func_gethostbyaddr" = xyes; then : - -$as_echo "#define HAVE_GETHOSTBYADDR 1" >>confdefs.h - +DTRACE=$ac_cv_path_DTRACE +if test -n "$DTRACE"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DTRACE" >&5 +$as_echo "$DTRACE" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi + if test "$DTRACE" = "not found"; then + as_fn_error $? "dtrace command not found on \$PATH" "$LINENO" 5 + fi +$as_echo "#define WITH_DTRACE 1" >>confdefs.h + DTRACE_HEADERS="Include/pydtrace_probes.h" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getprotobyname" >&5 -$as_echo_n "checking for getprotobyname... " >&6; } -if ${ac_cv_func_getprotobyname+:} false; then : + # On OS X, DTrace providers do not need to be explicitly compiled and + # linked into the binary. Correspondingly, dtrace(1) is missing the ELF + # generation flag '-G'. We check for presence of this flag, rather than + # hardcoding support by OS, in the interest of robustness. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether DTrace probes require linking" >&5 +$as_echo_n "checking whether DTrace probes require linking... " >&6; } +if ${ac_cv_dtrace_link+:} false; then : $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <netdb.h> -int -main () -{ -void *x=getprotobyname - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_getprotobyname=yes -else - ac_cv_func_getprotobyname=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_dtrace_link=no + echo 'BEGIN{}' > conftest.d + "$DTRACE" $DFLAGS -G -s conftest.d -o conftest.o > /dev/null 2>&1 && \ + ac_cv_dtrace_link=yes fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getprotobyname" >&5 -$as_echo "$ac_cv_func_getprotobyname" >&6; } - if test "x$ac_cv_func_getprotobyname" = xyes; then : - -$as_echo "#define HAVE_GETPROTOBYNAME 1" >>confdefs.h - +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_dtrace_link" >&5 +$as_echo "$ac_cv_dtrace_link" >&6; } + if test "$ac_cv_dtrace_link" = "yes"; then + DTRACE_OBJS="Python/pydtrace.o" + fi fi +PLATFORM_HEADERS= +PLATFORM_OBJS= +case $ac_sys_system in #( + Emscripten) : + as_fn_append PLATFORM_OBJS ' Python/emscripten_signal.o' + as_fn_append PLATFORM_HEADERS ' $(srcdir)/Include/internal/pycore_emscripten_signal.h' + ;; #( + *) : + ;; +esac +# -I${DLINCLDIR} is added to the compile rule for importdl.o +DLINCLDIR=. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_aton" >&5 -$as_echo_n "checking for inet_aton... " >&6; } -if ${ac_cv_func_inet_aton+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include <sys/types.h> -#include <sys/socket.h> -#include <netinet/in.h> -#include <arpa/inet.h> - -int -main () -{ -void *x=inet_aton - ; - return 0; -} +# the dlopen() function means we might want to use dynload_shlib.o. some +# platforms have dlopen(), but don't want to use it. +for ac_func in dlopen +do : + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DLOPEN 1 _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_inet_aton=yes -else - ac_cv_func_inet_aton=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_inet_aton" >&5 -$as_echo "$ac_cv_func_inet_aton" >&6; } - if test "x$ac_cv_func_inet_aton" = xyes; then : +done -$as_echo "#define HAVE_INET_ATON 1" >>confdefs.h +# DYNLOADFILE specifies which dynload_*.o file we will use for dynamic +# loading of modules. + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking DYNLOADFILE" >&5 +$as_echo_n "checking DYNLOADFILE... " >&6; } +if test -z "$DYNLOADFILE" +then + case $ac_sys_system/$ac_sys_release in + hp*|HP*) DYNLOADFILE="dynload_hpux.o";; + *) + # use dynload_shlib.c and dlopen() if we have it; otherwise stub + # out any dynamic loading + if test "$ac_cv_func_dlopen" = yes + then DYNLOADFILE="dynload_shlib.o" + else DYNLOADFILE="dynload_stub.o" + fi + ;; + esac fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $DYNLOADFILE" >&5 +$as_echo "$DYNLOADFILE" >&6; } +if test "$DYNLOADFILE" != "dynload_stub.o" +then +$as_echo "#define HAVE_DYNAMIC_LOADING 1" >>confdefs.h +fi +# MACHDEP_OBJS can be set to platform-specific object files needed by Python - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_ntoa" >&5 -$as_echo_n "checking for inet_ntoa... " >&6; } -if ${ac_cv_func_inet_ntoa+:} false; then : - $as_echo_n "(cached) " >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking MACHDEP_OBJS" >&5 +$as_echo_n "checking MACHDEP_OBJS... " >&6; } +if test -z "$MACHDEP_OBJS" +then + MACHDEP_OBJS=$extra_machdep_objs else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + MACHDEP_OBJS="$MACHDEP_OBJS $extra_machdep_objs" +fi +if test -z "$MACHDEP_OBJS"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MACHDEP_OBJS" >&5 +$as_echo "$MACHDEP_OBJS" >&6; } +fi -#include <sys/types.h> -#include <sys/socket.h> -#include <netinet/in.h> -#include <arpa/inet.h> +# checks for library functions +for ac_func in \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ + copy_file_range ctermid dup3 execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ + getgrnam_r getgrouplist getgroups getitimer getloadavg getlogin \ + getpeername getpgid getpid getppid getpriority _getpty \ + getpwent getpwnam_r getpwuid getpwuid_r getresgid getresuid getrusage getsid getspent \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ + pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ + sched_setparam sched_setscheduler sem_clockwait sem_getvalue sem_open \ + sem_timedwait sem_unlink sendfile setegid seteuid setgid sethostname \ + setitimer setlocale setpgid setpgrp setpriority setregid setresgid \ + setresuid setreuid setsid setuid setvbuf shutdown sigaction sigaltstack \ + sigfillset siginterrupt sigpending sigrelse sigtimedwait sigwait \ + sigwaitinfo snprintf splice strftime strlcpy strsignal symlinkat sync \ + sysconf system tcgetpgrp tcsetpgrp tempnam timegm times tmpfile \ + tmpnam tmpnam_r truncate ttyname umask uname unlinkat utimensat utimes vfork \ + wait wait3 wait4 waitid waitpid wcscoll wcsftime wcsxfrm wmemcmp writev \ -int -main () -{ -void *x=inet_ntoa - ; - return 0; -} +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_inet_ntoa=yes -else - ac_cv_func_inet_ntoa=no + fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +done + + +# Force lchmod off for Linux. Linux disallows changing the mode of symbolic +# links. Some libc implementations have a stub lchmod implementation that always +# returns an error. +if test "$MACHDEP" != linux; then + for ac_func in lchmod +do : + ac_fn_c_check_func "$LINENO" "lchmod" "ac_cv_func_lchmod" +if test "x$ac_cv_func_lchmod" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LCHMOD 1 +_ACEOF fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_inet_ntoa" >&5 -$as_echo "$ac_cv_func_inet_ntoa" >&6; } - if test "x$ac_cv_func_inet_ntoa" = xyes; then : +done + +fi + +ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include <sys/types.h> + #include <dirent.h> +" +if test "x$ac_cv_have_decl_dirfd" = xyes; then : -$as_echo "#define HAVE_INET_NTOA 1" >>confdefs.h +$as_echo "#define HAVE_DIRFD 1" >>confdefs.h fi +# For some functions, having a definition is not sufficient, since +# we want to take their address. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_pton" >&5 -$as_echo_n "checking for inet_pton... " >&6; } -if ${ac_cv_func_inet_pton+:} false; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for chroot" >&5 +$as_echo_n "checking for chroot... " >&6; } +if ${ac_cv_func_chroot+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -#include <sys/types.h> -#include <sys/socket.h> -#include <netinet/in.h> -#include <arpa/inet.h> - +#include <unistd.h> int main () { -void *x=inet_pton +void *x=chroot ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_inet_pton=yes + ac_cv_func_chroot=yes else - ac_cv_func_inet_pton=no + ac_cv_func_chroot=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_inet_pton" >&5 -$as_echo "$ac_cv_func_inet_pton" >&6; } - if test "x$ac_cv_func_inet_pton" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_chroot" >&5 +$as_echo "$ac_cv_func_chroot" >&6; } + if test "x$ac_cv_func_chroot" = xyes; then : -$as_echo "#define HAVE_INET_PTON 1" >>confdefs.h +$as_echo "#define HAVE_CHROOT 1" >>confdefs.h fi @@ -18283,40 +14940,35 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getpeername" >&5 -$as_echo_n "checking for getpeername... " >&6; } -if ${ac_cv_func_getpeername+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include <sys/types.h> -#include <sys/socket.h> -#include <netinet/in.h> -#include <arpa/inet.h> - + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for link" >&5 +$as_echo_n "checking for link... " >&6; } +if ${ac_cv_func_link+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <unistd.h> int main () { -void *x=getpeername +void *x=link ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_getpeername=yes + ac_cv_func_link=yes else - ac_cv_func_getpeername=no + ac_cv_func_link=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getpeername" >&5 -$as_echo "$ac_cv_func_getpeername" >&6; } - if test "x$ac_cv_func_getpeername" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_link" >&5 +$as_echo "$ac_cv_func_link" >&6; } + if test "x$ac_cv_func_link" = xyes; then : -$as_echo "#define HAVE_GETPEERNAME 1" >>confdefs.h +$as_echo "#define HAVE_LINK 1" >>confdefs.h fi @@ -18324,40 +14976,35 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getsockname" >&5 -$as_echo_n "checking for getsockname... " >&6; } -if ${ac_cv_func_getsockname+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for symlink" >&5 +$as_echo_n "checking for symlink... " >&6; } +if ${ac_cv_func_symlink+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -#include <sys/types.h> -#include <sys/socket.h> -#include <netinet/in.h> -#include <arpa/inet.h> - +#include <unistd.h> int main () { -void *x=getsockname +void *x=symlink ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_getsockname=yes + ac_cv_func_symlink=yes else - ac_cv_func_getsockname=no + ac_cv_func_symlink=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getsockname" >&5 -$as_echo "$ac_cv_func_getsockname" >&6; } - if test "x$ac_cv_func_getsockname" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_symlink" >&5 +$as_echo "$ac_cv_func_symlink" >&6; } + if test "x$ac_cv_func_symlink" = xyes; then : -$as_echo "#define HAVE_GETSOCKNAME 1" >>confdefs.h +$as_echo "#define HAVE_SYMLINK 1" >>confdefs.h fi @@ -18365,40 +15012,35 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for accept" >&5 -$as_echo_n "checking for accept... " >&6; } -if ${ac_cv_func_accept+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fchdir" >&5 +$as_echo_n "checking for fchdir... " >&6; } +if ${ac_cv_func_fchdir+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -#include <sys/types.h> -#include <sys/socket.h> -#include <netinet/in.h> -#include <arpa/inet.h> - +#include <unistd.h> int main () { -void *x=accept +void *x=fchdir ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_accept=yes + ac_cv_func_fchdir=yes else - ac_cv_func_accept=no + ac_cv_func_fchdir=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_accept" >&5 -$as_echo "$ac_cv_func_accept" >&6; } - if test "x$ac_cv_func_accept" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fchdir" >&5 +$as_echo "$ac_cv_func_fchdir" >&6; } + if test "x$ac_cv_func_fchdir" = xyes; then : -$as_echo "#define HAVE_ACCEPT 1" >>confdefs.h +$as_echo "#define HAVE_FCHDIR 1" >>confdefs.h fi @@ -18406,40 +15048,35 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bind" >&5 -$as_echo_n "checking for bind... " >&6; } -if ${ac_cv_func_bind+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fsync" >&5 +$as_echo_n "checking for fsync... " >&6; } +if ${ac_cv_func_fsync+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -#include <sys/types.h> -#include <sys/socket.h> -#include <netinet/in.h> -#include <arpa/inet.h> - +#include <unistd.h> int main () { -void *x=bind +void *x=fsync ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_bind=yes + ac_cv_func_fsync=yes else - ac_cv_func_bind=no + ac_cv_func_fsync=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_bind" >&5 -$as_echo "$ac_cv_func_bind" >&6; } - if test "x$ac_cv_func_bind" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fsync" >&5 +$as_echo "$ac_cv_func_fsync" >&6; } + if test "x$ac_cv_func_fsync" = xyes; then : -$as_echo "#define HAVE_BIND 1" >>confdefs.h +$as_echo "#define HAVE_FSYNC 1" >>confdefs.h fi @@ -18447,40 +15084,35 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect" >&5 -$as_echo_n "checking for connect... " >&6; } -if ${ac_cv_func_connect+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fdatasync" >&5 +$as_echo_n "checking for fdatasync... " >&6; } +if ${ac_cv_func_fdatasync+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -#include <sys/types.h> -#include <sys/socket.h> -#include <netinet/in.h> -#include <arpa/inet.h> - +#include <unistd.h> int main () { -void *x=connect +void *x=fdatasync ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_connect=yes + ac_cv_func_fdatasync=yes else - ac_cv_func_connect=no + ac_cv_func_fdatasync=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_connect" >&5 -$as_echo "$ac_cv_func_connect" >&6; } - if test "x$ac_cv_func_connect" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fdatasync" >&5 +$as_echo "$ac_cv_func_fdatasync" >&6; } + if test "x$ac_cv_func_fdatasync" = xyes; then : -$as_echo "#define HAVE_CONNECT 1" >>confdefs.h +$as_echo "#define HAVE_FDATASYNC 1" >>confdefs.h fi @@ -18488,40 +15120,35 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for listen" >&5 -$as_echo_n "checking for listen... " >&6; } -if ${ac_cv_func_listen+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for epoll_create" >&5 +$as_echo_n "checking for epoll_create... " >&6; } +if ${ac_cv_func_epoll_create+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -#include <sys/types.h> -#include <sys/socket.h> -#include <netinet/in.h> -#include <arpa/inet.h> - +#include <sys/epoll.h> int main () { -void *x=listen +void *x=epoll_create ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_listen=yes + ac_cv_func_epoll_create=yes else - ac_cv_func_listen=no + ac_cv_func_epoll_create=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_listen" >&5 -$as_echo "$ac_cv_func_listen" >&6; } - if test "x$ac_cv_func_listen" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_epoll_create" >&5 +$as_echo "$ac_cv_func_epoll_create" >&6; } + if test "x$ac_cv_func_epoll_create" = xyes; then : -$as_echo "#define HAVE_LISTEN 1" >>confdefs.h +$as_echo "#define HAVE_EPOLL 1" >>confdefs.h fi @@ -18529,40 +15156,35 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for recvfrom" >&5 -$as_echo_n "checking for recvfrom... " >&6; } -if ${ac_cv_func_recvfrom+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for epoll_create1" >&5 +$as_echo_n "checking for epoll_create1... " >&6; } +if ${ac_cv_func_epoll_create1+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -#include <sys/types.h> -#include <sys/socket.h> -#include <netinet/in.h> -#include <arpa/inet.h> - +#include <sys/epoll.h> int main () { -void *x=recvfrom +void *x=epoll_create1 ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_recvfrom=yes + ac_cv_func_epoll_create1=yes else - ac_cv_func_recvfrom=no + ac_cv_func_epoll_create1=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_recvfrom" >&5 -$as_echo "$ac_cv_func_recvfrom" >&6; } - if test "x$ac_cv_func_recvfrom" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_epoll_create1" >&5 +$as_echo "$ac_cv_func_epoll_create1" >&6; } + if test "x$ac_cv_func_epoll_create1" = xyes; then : -$as_echo "#define HAVE_RECVFROM 1" >>confdefs.h +$as_echo "#define HAVE_EPOLL_CREATE1 1" >>confdefs.h fi @@ -18570,40 +15192,38 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sendto" >&5 -$as_echo_n "checking for sendto... " >&6; } -if ${ac_cv_func_sendto+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kqueue" >&5 +$as_echo_n "checking for kqueue... " >&6; } +if ${ac_cv_func_kqueue+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> -#include <sys/socket.h> -#include <netinet/in.h> -#include <arpa/inet.h> +#include <sys/event.h> int main () { -void *x=sendto +void *x=kqueue ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_sendto=yes + ac_cv_func_kqueue=yes else - ac_cv_func_sendto=no + ac_cv_func_kqueue=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_sendto" >&5 -$as_echo "$ac_cv_func_sendto" >&6; } - if test "x$ac_cv_func_sendto" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_kqueue" >&5 +$as_echo "$ac_cv_func_kqueue" >&6; } + if test "x$ac_cv_func_kqueue" = xyes; then : -$as_echo "#define HAVE_SENDTO 1" >>confdefs.h +$as_echo "#define HAVE_KQUEUE 1" >>confdefs.h fi @@ -18611,40 +15231,38 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for setsockopt" >&5 -$as_echo_n "checking for setsockopt... " >&6; } -if ${ac_cv_func_setsockopt+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prlimit" >&5 +$as_echo_n "checking for prlimit... " >&6; } +if ${ac_cv_func_prlimit+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <sys/types.h> -#include <sys/socket.h> -#include <netinet/in.h> -#include <arpa/inet.h> +#include <sys/time.h> +#include <sys/resource.h> int main () { -void *x=setsockopt +void *x=prlimit ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_setsockopt=yes + ac_cv_func_prlimit=yes else - ac_cv_func_setsockopt=no + ac_cv_func_prlimit=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_setsockopt" >&5 -$as_echo "$ac_cv_func_setsockopt" >&6; } - if test "x$ac_cv_func_setsockopt" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_prlimit" >&5 +$as_echo "$ac_cv_func_prlimit" >&6; } + if test "x$ac_cv_func_prlimit" = xyes; then : -$as_echo "#define HAVE_SETSOCKOPT 1" >>confdefs.h +$as_echo "#define HAVE_PRLIMIT 1" >>confdefs.h fi @@ -18652,299 +15270,213 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket" >&5 -$as_echo_n "checking for socket... " >&6; } -if ${ac_cv_func_socket+:} false; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _dyld_shared_cache_contains_path" >&5 +$as_echo_n "checking for _dyld_shared_cache_contains_path... " >&6; } +if ${ac_cv_func__dyld_shared_cache_contains_path+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -#include <sys/types.h> -#include <sys/socket.h> -#include <netinet/in.h> -#include <arpa/inet.h> - +#include <mach-o/dyld.h> int main () { -void *x=socket +void *x=_dyld_shared_cache_contains_path ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_socket=yes + ac_cv_func__dyld_shared_cache_contains_path=yes else - ac_cv_func_socket=no + ac_cv_func__dyld_shared_cache_contains_path=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_socket" >&5 -$as_echo "$ac_cv_func_socket" >&6; } - if test "x$ac_cv_func_socket" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func__dyld_shared_cache_contains_path" >&5 +$as_echo "$ac_cv_func__dyld_shared_cache_contains_path" >&6; } + if test "x$ac_cv_func__dyld_shared_cache_contains_path" = xyes; then : -$as_echo "#define HAVE_SOCKET 1" >>confdefs.h +$as_echo "#define HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH 1" >>confdefs.h fi -# On some systems, setgroups is in unistd.h, on others, in grp.h - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for setgroups" >&5 -$as_echo_n "checking for setgroups... " >&6; } -if ${ac_cv_func_setgroups+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for memfd_create" >&5 +$as_echo_n "checking for memfd_create... " >&6; } +if ${ac_cv_func_memfd_create+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <unistd.h> -#ifdef HAVE_GRP_H -#include <grp.h> +#ifdef HAVE_SYS_MMAN_H +#include <sys/mman.h> +#endif +#ifdef HAVE_SYS_MEMFD_H +#include <sys/memfd.h> #endif int main () { -void *x=setgroups +void *x=memfd_create ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_setgroups=yes + ac_cv_func_memfd_create=yes else - ac_cv_func_setgroups=no + ac_cv_func_memfd_create=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_setgroups" >&5 -$as_echo "$ac_cv_func_setgroups" >&6; } - if test "x$ac_cv_func_setgroups" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_memfd_create" >&5 +$as_echo "$ac_cv_func_memfd_create" >&6; } + if test "x$ac_cv_func_memfd_create" = xyes; then : -$as_echo "#define HAVE_SETGROUPS 1" >>confdefs.h +$as_echo "#define HAVE_MEMFD_CREATE 1" >>confdefs.h fi -# check for openpty, login_tty, and forkpty - -for ac_func in openpty -do : - ac_fn_c_check_func "$LINENO" "openpty" "ac_cv_func_openpty" -if test "x$ac_cv_func_openpty" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_OPENPTY 1 -_ACEOF -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for openpty in -lutil" >&5 -$as_echo_n "checking for openpty in -lutil... " >&6; } -if ${ac_cv_lib_util_openpty+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lutil $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char openpty (); -int -main () -{ -return openpty (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_util_openpty=yes -else - ac_cv_lib_util_openpty=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_util_openpty" >&5 -$as_echo "$ac_cv_lib_util_openpty" >&6; } -if test "x$ac_cv_lib_util_openpty" = xyes; then : - $as_echo "#define HAVE_OPENPTY 1" >>confdefs.h - LIBS="$LIBS -lutil" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for openpty in -lbsd" >&5 -$as_echo_n "checking for openpty in -lbsd... " >&6; } -if ${ac_cv_lib_bsd_openpty+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for eventfd" >&5 +$as_echo_n "checking for eventfd... " >&6; } +if ${ac_cv_func_eventfd+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lbsd $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" + +#ifdef HAVE_SYS_EVENTFD_H +#include <sys/eventfd.h> #endif -char openpty (); + int main () { -return openpty (); +void *x=eventfd ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_bsd_openpty=yes +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_eventfd=yes else - ac_cv_lib_bsd_openpty=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + ac_cv_func_eventfd=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_openpty" >&5 -$as_echo "$ac_cv_lib_bsd_openpty" >&6; } -if test "x$ac_cv_lib_bsd_openpty" = xyes; then : - $as_echo "#define HAVE_OPENPTY 1" >>confdefs.h - LIBS="$LIBS -lbsd" +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_eventfd" >&5 +$as_echo "$ac_cv_func_eventfd" >&6; } + if test "x$ac_cv_func_eventfd" = xyes; then : +$as_echo "#define HAVE_EVENTFD 1" >>confdefs.h fi -fi -done -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing login_tty" >&5 -$as_echo_n "checking for library containing login_tty... " >&6; } -if ${ac_cv_search_login_tty+:} false; then : + +# On some systems (eg. FreeBSD 5), we would find a definition of the +# functions ctermid_r, setgroups in the library, but no prototype +# (e.g. because we use _XOPEN_SOURCE). See whether we can take their +# address to avoid compiler warnings and potential miscompilations +# because of the missing prototypes. + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ctermid_r" >&5 +$as_echo_n "checking for ctermid_r... " >&6; } +if ${ac_cv_func_ctermid_r+:} false; then : $as_echo_n "(cached) " >&6 else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char login_tty (); +#include <stdio.h> int main () { -return login_tty (); +void *x=ctermid_r ; return 0; } _ACEOF -for ac_lib in '' util; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_login_tty=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_login_tty+:} false; then : - break -fi -done -if ${ac_cv_search_login_tty+:} false; then : - +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_ctermid_r=yes else - ac_cv_search_login_tty=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + ac_cv_func_ctermid_r=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_login_tty" >&5 -$as_echo "$ac_cv_search_login_tty" >&6; } -ac_res=$ac_cv_search_login_tty -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -$as_echo "#define HAVE_LOGIN_TTY 1" >>confdefs.h +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_ctermid_r" >&5 +$as_echo "$ac_cv_func_ctermid_r" >&6; } + if test "x$ac_cv_func_ctermid_r" = xyes; then : +$as_echo "#define HAVE_CTERMID_R 1" >>confdefs.h fi -for ac_func in forkpty -do : - ac_fn_c_check_func "$LINENO" "forkpty" "ac_cv_func_forkpty" -if test "x$ac_cv_func_forkpty" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_FORKPTY 1 -_ACEOF -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for forkpty in -lutil" >&5 -$as_echo_n "checking for forkpty in -lutil... " >&6; } -if ${ac_cv_lib_util_forkpty+:} false; then : + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for flock declaration" >&5 +$as_echo_n "checking for flock declaration... " >&6; } +if ${ac_cv_flock_decl+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lutil $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char forkpty (); +#include <sys/file.h> int main () { -return forkpty (); +void* p = flock + ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_util_forkpty=yes +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_flock_decl=yes else - ac_cv_lib_util_forkpty=no + ac_cv_flock_decl=no + fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_util_forkpty" >&5 -$as_echo "$ac_cv_lib_util_forkpty" >&6; } -if test "x$ac_cv_lib_util_forkpty" = xyes; then : - $as_echo "#define HAVE_FORKPTY 1" >>confdefs.h - LIBS="$LIBS -lutil" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for forkpty in -lbsd" >&5 -$as_echo_n "checking for forkpty in -lbsd... " >&6; } -if ${ac_cv_lib_bsd_forkpty+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_flock_decl" >&5 +$as_echo "$ac_cv_flock_decl" >&6; } +if test "x$ac_cv_flock_decl" = xyes; then : + for ac_func in flock +do : + ac_fn_c_check_func "$LINENO" "flock" "ac_cv_func_flock" +if test "x$ac_cv_func_flock" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_FLOCK 1 +_ACEOF + +fi +done + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for flock in -lbsd" >&5 +$as_echo_n "checking for flock in -lbsd... " >&6; } +if ${ac_cv_lib_bsd_flock+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -18958,198 +15490,156 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char forkpty (); +char flock (); int main () { -return forkpty (); +return flock (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_bsd_forkpty=yes + ac_cv_lib_bsd_flock=yes else - ac_cv_lib_bsd_forkpty=no + ac_cv_lib_bsd_flock=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_forkpty" >&5 -$as_echo "$ac_cv_lib_bsd_forkpty" >&6; } -if test "x$ac_cv_lib_bsd_forkpty" = xyes; then : - $as_echo "#define HAVE_FORKPTY 1" >>confdefs.h - LIBS="$LIBS -lbsd" -fi - - -fi - - +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_flock" >&5 +$as_echo "$ac_cv_lib_bsd_flock" >&6; } +if test "x$ac_cv_lib_bsd_flock" = xyes; then : + FCNTL_LIBS="-lbsd" fi -done -# check for long file support functions -for ac_func in fseek64 fseeko fstatvfs ftell64 ftello statvfs -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - fi -done -ac_fn_c_check_func "$LINENO" "dup2" "ac_cv_func_dup2" -if test "x$ac_cv_func_dup2" = xyes; then : - $as_echo "#define HAVE_DUP2 1" >>confdefs.h + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getpagesize" >&5 +$as_echo_n "checking for getpagesize... " >&6; } +if ${ac_cv_func_getpagesize+:} false; then : + $as_echo_n "(cached) " >&6 else - case " $LIBOBJS " in - *" dup2.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS dup2.$ac_objext" - ;; -esac - -fi - - -for ac_func in getpgrp -do : - ac_fn_c_check_func "$LINENO" "getpgrp" "ac_cv_func_getpgrp" -if test "x$ac_cv_func_getpgrp" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_GETPGRP 1 -_ACEOF - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <unistd.h> int main () { -getpgrp(0); +void *x=getpagesize ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - -$as_echo "#define GETPGRP_HAVE_ARG 1" >>confdefs.h - + ac_cv_func_getpagesize=yes +else + ac_cv_func_getpagesize=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -done +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getpagesize" >&5 +$as_echo "$ac_cv_func_getpagesize" >&6; } + if test "x$ac_cv_func_getpagesize" = xyes; then : -for ac_func in setpgrp -do : - ac_fn_c_check_func "$LINENO" "setpgrp" "ac_cv_func_setpgrp" -if test "x$ac_cv_func_setpgrp" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_SETPGRP 1 -_ACEOF - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +$as_echo "#define HAVE_GETPAGESIZE 1" >>confdefs.h + +fi + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken unsetenv" >&5 +$as_echo_n "checking for broken unsetenv... " >&6; } +if ${ac_cv_broken_unsetenv+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <unistd.h> +#include <stdlib.h> int main () { -setpgrp(0,0); +int res = unsetenv("DUMMY") ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - -$as_echo "#define SETPGRP_HAVE_ARG 1" >>confdefs.h + ac_cv_broken_unsetenv=no +else + ac_cv_broken_unsetenv=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -done - +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_unsetenv" >&5 +$as_echo "$ac_cv_broken_unsetenv" >&6; } +if test "x$ac_cv_broken_unsetenv" = xyes; then : +$as_echo "#define HAVE_BROKEN_UNSETENV 1" >>confdefs.h -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBCRYPT" >&5 -$as_echo_n "checking for LIBCRYPT... " >&6; } +fi -if test -n "$LIBCRYPT_CFLAGS"; then - pkg_cv_LIBCRYPT_CFLAGS="$LIBCRYPT_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxcrypt >= 3.1.1\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libxcrypt >= 3.1.1") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_LIBCRYPT_CFLAGS=`$PKG_CONFIG --cflags "libxcrypt >= 3.1.1" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes +for ac_prog in true +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_TRUE+:} false; then : + $as_echo_n "(cached) " >&6 else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$LIBCRYPT_LIBS"; then - pkg_cv_LIBCRYPT_LIBS="$LIBCRYPT_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxcrypt >= 3.1.1\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libxcrypt >= 3.1.1") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_LIBCRYPT_LIBS=`$PKG_CONFIG --libs "libxcrypt >= 3.1.1" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes + if test -n "$TRUE"; then + ac_cv_prog_TRUE="$TRUE" # Let the user override the test. else - pkg_failed=yes +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_TRUE="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + fi - else - pkg_failed=untried fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes +TRUE=$ac_cv_prog_TRUE +if test -n "$TRUE"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TRUE" >&5 +$as_echo "$TRUE" >&6; } else - _pkg_short_errors_supported=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi - if test $_pkg_short_errors_supported = yes; then - LIBCRYPT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libxcrypt >= 3.1.1" 2>&1` - else - LIBCRYPT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libxcrypt >= 3.1.1" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$LIBCRYPT_PKG_ERRORS" >&5 - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS + test -n "$TRUE" && break +done +test -n "$TRUE" || TRUE="/bin/true" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt_r" >&5 -$as_echo_n "checking for library containing crypt_r... " >&6; } -if ${ac_cv_search_crypt_r+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_aton in -lc" >&5 +$as_echo_n "checking for inet_aton in -lc... " >&6; } +if ${ac_cv_lib_c_inet_aton+:} false; then : $as_echo_n "(cached) " >&6 else - ac_func_search_save_LIBS=$LIBS + ac_check_lib_save_LIBS=$LIBS +LIBS="-lc $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -19159,231 +15649,261 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char crypt_r (); +char inet_aton (); int main () { -return crypt_r (); +return inet_aton (); ; return 0; } _ACEOF -for ac_lib in '' crypt; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_crypt_r=$ac_res +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_c_inet_aton=yes +else + ac_cv_lib_c_inet_aton=no fi rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_crypt_r+:} false; then : - break + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -done -if ${ac_cv_search_crypt_r+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_inet_aton" >&5 +$as_echo "$ac_cv_lib_c_inet_aton" >&6; } +if test "x$ac_cv_lib_c_inet_aton" = xyes; then : + $ac_cv_prog_TRUE +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_aton in -lresolv" >&5 +$as_echo_n "checking for inet_aton in -lresolv... " >&6; } +if ${ac_cv_lib_resolv_inet_aton+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lresolv $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char inet_aton (); +int +main () +{ +return inet_aton (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_resolv_inet_aton=yes else - ac_cv_search_crypt_r=no + ac_cv_lib_resolv_inet_aton=no fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt_r" >&5 -$as_echo "$ac_cv_search_crypt_r" >&6; } -ac_res=$ac_cv_search_crypt_r -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_inet_aton" >&5 +$as_echo "$ac_cv_lib_resolv_inet_aton" >&6; } +if test "x$ac_cv_lib_resolv_inet_aton" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBRESOLV 1 +_ACEOF - $as_echo "#define HAVE_CRYPT_R 1" >>confdefs.h + LIBS="-lresolv $LIBS" + +fi - if test "$ac_cv_search_crypt_r" = "none required"; then - libcrypt= - else - libcrypt="$ac_cv_search_crypt_r" - fi - LIBCRYPT_LIBS=${LIBCRYPT_LIBS-$libcrypt} fi -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS +# On Tru64, chflags seems to be present, but calling it will +# exit Python +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for chflags" >&5 +$as_echo_n "checking for chflags... " >&6; } +if ${ac_cv_have_chflags+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + ac_cv_have_chflags=cross +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include <sys/stat.h> +#include <unistd.h> +int main(int argc, char*argv[]) +{ + if(chflags(argv[0], 0) != 0) + return 1; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_have_chflags=yes +else + ac_cv_have_chflags=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_chflags" >&5 +$as_echo "$ac_cv_have_chflags" >&6; } +if test "$ac_cv_have_chflags" = cross ; then + ac_fn_c_check_func "$LINENO" "chflags" "ac_cv_func_chflags" +if test "x$ac_cv_func_chflags" = xyes; then : + ac_cv_have_chflags="yes" +else + ac_cv_have_chflags="no" +fi - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS +fi +if test "$ac_cv_have_chflags" = yes ; then +$as_echo "#define HAVE_CHFLAGS 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt_r" >&5 -$as_echo_n "checking for library containing crypt_r... " >&6; } -if ${ac_cv_search_crypt_r+:} false; then : +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for lchflags" >&5 +$as_echo_n "checking for lchflags... " >&6; } +if ${ac_cv_have_lchflags+:} false; then : $as_echo_n "(cached) " >&6 else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if test "$cross_compiling" = yes; then : + ac_cv_have_lchflags=cross +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char crypt_r (); -int -main () +#include <sys/stat.h> +#include <unistd.h> +int main(int argc, char*argv[]) { -return crypt_r (); - ; + if(lchflags(argv[0], 0) != 0) + return 1; return 0; } + _ACEOF -for ac_lib in '' crypt; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_crypt_r=$ac_res +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_have_lchflags=yes +else + ac_cv_have_lchflags=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_crypt_r+:} false; then : - break +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi -done -if ${ac_cv_search_crypt_r+:} false; then : -else - ac_cv_search_crypt_r=no + fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_lchflags" >&5 +$as_echo "$ac_cv_have_lchflags" >&6; } +if test "$ac_cv_have_lchflags" = cross ; then + ac_fn_c_check_func "$LINENO" "lchflags" "ac_cv_func_lchflags" +if test "x$ac_cv_func_lchflags" = xyes; then : + ac_cv_have_lchflags="yes" +else + ac_cv_have_lchflags="no" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt_r" >&5 -$as_echo "$ac_cv_search_crypt_r" >&6; } -ac_res=$ac_cv_search_crypt_r -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - $as_echo "#define HAVE_CRYPT_R 1" >>confdefs.h +fi +if test "$ac_cv_have_lchflags" = yes ; then - if test "$ac_cv_search_crypt_r" = "none required"; then - libcrypt= - else - libcrypt="$ac_cv_search_crypt_r" - fi - LIBCRYPT_LIBS=${LIBCRYPT_LIBS-$libcrypt} +$as_echo "#define HAVE_LCHFLAGS 1" >>confdefs.h fi -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ZLIB" >&5 +$as_echo_n "checking for ZLIB... " >&6; } +if test -n "$ZLIB_CFLAGS"; then + pkg_cv_ZLIB_CFLAGS="$ZLIB_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"zlib >= 1.2.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "zlib >= 1.2.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_ZLIB_CFLAGS=`$PKG_CONFIG --cflags "zlib >= 1.2.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - LIBCRYPT_CFLAGS=$pkg_cv_LIBCRYPT_CFLAGS - LIBCRYPT_LIBS=$pkg_cv_LIBCRYPT_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - $as_echo "#define HAVE_CRYPT_R 1" >>confdefs.h - - + pkg_failed=yes fi - -save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS - - - CPPFLAGS="$CPPFLAGS $LIBCRYPT_CFLAGS" - LIBS="$LIBCRYPT_LIBS $LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for crypt or crypt_r" >&5 -$as_echo_n "checking for crypt or crypt_r... " >&6; } -if ${ac_cv_crypt_crypt+:} false; then : - $as_echo_n "(cached) " >&6 + else + pkg_failed=untried +fi +if test -n "$ZLIB_LIBS"; then + pkg_cv_ZLIB_LIBS="$ZLIB_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"zlib >= 1.2.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "zlib >= 1.2.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_ZLIB_LIBS=`$PKG_CONFIG --libs "zlib >= 1.2.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else + pkg_failed=yes +fi + else + pkg_failed=untried +fi - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #ifdef HAVE_CRYPT_H - #include <crypt.h> - #endif - #include <unistd.h> - -int -main () -{ - #ifdef HAVE_CRYPT_R - void *x = crypt_r; - #else - void *x = crypt; - #endif - ; - return 0; -} +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_crypt_crypt=yes +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes else - ac_cv_crypt_crypt=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - + _pkg_short_errors_supported=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_crypt_crypt" >&5 -$as_echo "$ac_cv_crypt_crypt" >&6; } - -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS - + if test $_pkg_short_errors_supported = yes; then + ZLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "zlib >= 1.2.0" 2>&1` + else + ZLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "zlib >= 1.2.0" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$ZLIB_PKG_ERRORS" >&5 -for ac_func in clock_gettime + for ac_header in zlib.h do : - ac_fn_c_check_func "$LINENO" "clock_gettime" "ac_cv_func_clock_gettime" -if test "x$ac_cv_func_clock_gettime" = xyes; then : + ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" +if test "x$ac_cv_header_zlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_CLOCK_GETTIME 1 +#define HAVE_ZLIB_H 1 _ACEOF -else + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_gettime in -lrt" >&5 -$as_echo_n "checking for clock_gettime in -lrt... " >&6; } -if ${ac_cv_lib_rt_clock_gettime+:} false; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gzread in -lz" >&5 +$as_echo_n "checking for gzread in -lz... " >&6; } +if ${ac_cv_lib_z_gzread+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lrt $LIBS" +LIBS="-lz $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -19393,59 +15913,38 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char clock_gettime (); +char gzread (); int main () { -return clock_gettime (); +return gzread (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_rt_clock_gettime=yes + ac_cv_lib_z_gzread=yes else - ac_cv_lib_rt_clock_gettime=no + ac_cv_lib_z_gzread=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_gettime" >&5 -$as_echo "$ac_cv_lib_rt_clock_gettime" >&6; } -if test "x$ac_cv_lib_rt_clock_gettime" = xyes; then : - - LIBS="$LIBS -lrt" - $as_echo "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h - - -$as_echo "#define TIMEMODULE_LIB rt" >>confdefs.h - - -fi - - -fi -done - - -for ac_func in clock_getres -do : - ac_fn_c_check_func "$LINENO" "clock_getres" "ac_cv_func_clock_getres" -if test "x$ac_cv_func_clock_getres" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_CLOCK_GETRES 1 -_ACEOF - -else +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_gzread" >&5 +$as_echo "$ac_cv_lib_z_gzread" >&6; } +if test "x$ac_cv_lib_z_gzread" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_getres in -lrt" >&5 -$as_echo_n "checking for clock_getres in -lrt... " >&6; } -if ${ac_cv_lib_rt_clock_getres+:} false; then : + have_zlib=yes + ZLIB_CFLAGS=${ZLIB_CFLAGS-""} + ZLIB_LIBS=${ZLIB_LIBS-"-lz"} + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inflateCopy in -lz" >&5 +$as_echo_n "checking for inflateCopy in -lz... " >&6; } +if ${ac_cv_lib_z_inflateCopy+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lrt $LIBS" +LIBS="-lz $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -19455,55 +15954,78 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char clock_getres (); +char inflateCopy (); int main () { -return clock_getres (); +return inflateCopy (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_rt_clock_getres=yes + ac_cv_lib_z_inflateCopy=yes else - ac_cv_lib_rt_clock_getres=no + ac_cv_lib_z_inflateCopy=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_getres" >&5 -$as_echo "$ac_cv_lib_rt_clock_getres" >&6; } -if test "x$ac_cv_lib_rt_clock_getres" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_inflateCopy" >&5 +$as_echo "$ac_cv_lib_z_inflateCopy" >&6; } +if test "x$ac_cv_lib_z_inflateCopy" = xyes; then : + $as_echo "#define HAVE_ZLIB_COPY 1" >>confdefs.h - $as_echo "#define HAVE_CLOCK_GETRES 1" >>confdefs.h +fi + + +else + have_zlib=no fi +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS + + + +else + have_zlib=no fi + done -for ac_func in clock_settime +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + for ac_header in zlib.h do : - ac_fn_c_check_func "$LINENO" "clock_settime" "ac_cv_func_clock_settime" -if test "x$ac_cv_func_clock_settime" = xyes; then : + ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" +if test "x$ac_cv_header_zlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_CLOCK_SETTIME 1 +#define HAVE_ZLIB_H 1 _ACEOF -else + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_settime in -lrt" >&5 -$as_echo_n "checking for clock_settime in -lrt... " >&6; } -if ${ac_cv_lib_rt_clock_settime+:} false; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gzread in -lz" >&5 +$as_echo_n "checking for gzread in -lz... " >&6; } +if ${ac_cv_lib_z_gzread+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lrt $LIBS" +LIBS="-lz $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -19513,55 +16035,38 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char clock_settime (); +char gzread (); int main () { -return clock_settime (); +return gzread (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_rt_clock_settime=yes + ac_cv_lib_z_gzread=yes else - ac_cv_lib_rt_clock_settime=no + ac_cv_lib_z_gzread=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_settime" >&5 -$as_echo "$ac_cv_lib_rt_clock_settime" >&6; } -if test "x$ac_cv_lib_rt_clock_settime" = xyes; then : - - $as_echo "#define HAVE_CLOCK_SETTIME 1" >>confdefs.h - - -fi - - -fi -done - - -for ac_func in clock_nanosleep -do : - ac_fn_c_check_func "$LINENO" "clock_nanosleep" "ac_cv_func_clock_nanosleep" -if test "x$ac_cv_func_clock_nanosleep" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_CLOCK_NANOSLEEP 1 -_ACEOF - -else +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_gzread" >&5 +$as_echo "$ac_cv_lib_z_gzread" >&6; } +if test "x$ac_cv_lib_z_gzread" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_nanosleep in -lrt" >&5 -$as_echo_n "checking for clock_nanosleep in -lrt... " >&6; } -if ${ac_cv_lib_rt_clock_nanosleep+:} false; then : + have_zlib=yes + ZLIB_CFLAGS=${ZLIB_CFLAGS-""} + ZLIB_LIBS=${ZLIB_LIBS-"-lz"} + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inflateCopy in -lz" >&5 +$as_echo_n "checking for inflateCopy in -lz... " >&6; } +if ${ac_cv_lib_z_inflateCopy+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lrt $LIBS" +LIBS="-lz $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -19571,55 +16076,158 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char clock_nanosleep (); +char inflateCopy (); int main () { -return clock_nanosleep (); +return inflateCopy (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_rt_clock_nanosleep=yes + ac_cv_lib_z_inflateCopy=yes else - ac_cv_lib_rt_clock_nanosleep=no + ac_cv_lib_z_inflateCopy=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_nanosleep" >&5 -$as_echo "$ac_cv_lib_rt_clock_nanosleep" >&6; } -if test "x$ac_cv_lib_rt_clock_nanosleep" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_inflateCopy" >&5 +$as_echo "$ac_cv_lib_z_inflateCopy" >&6; } +if test "x$ac_cv_lib_z_inflateCopy" = xyes; then : + $as_echo "#define HAVE_ZLIB_COPY 1" >>confdefs.h - $as_echo "#define HAVE_CLOCK_NANOSLEEP 1" >>confdefs.h +fi +else + + have_zlib=no + fi +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS + + + +else + have_zlib=no fi + done -for ac_func in nanosleep +else + ZLIB_CFLAGS=$pkg_cv_ZLIB_CFLAGS + ZLIB_LIBS=$pkg_cv_ZLIB_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + have_zlib=yes + $as_echo "#define HAVE_ZLIB_COPY 1" >>confdefs.h + + +fi + +if test "$have_zlib" = "yes" -a "$ac_sys_system" = "Emscripten" -a "$ZLIB_LIBS" = "-lz"; then + ZLIB_CFLAGS="-sUSE_ZLIB" + ZLIB_LIBS="-sUSE_ZLIB" +fi + +if test "x$have_zlib" = xyes; then : + + BINASCII_CFLAGS="-DUSE_ZLIB_CRC32 $ZLIB_CFLAGS" + BINASCII_LIBS="$ZLIB_LIBS" + +fi + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BZIP2" >&5 +$as_echo_n "checking for BZIP2... " >&6; } + +if test -n "$BZIP2_CFLAGS"; then + pkg_cv_BZIP2_CFLAGS="$BZIP2_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"bzip2\""; } >&5 + ($PKG_CONFIG --exists --print-errors "bzip2") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_BZIP2_CFLAGS=`$PKG_CONFIG --cflags "bzip2" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$BZIP2_LIBS"; then + pkg_cv_BZIP2_LIBS="$BZIP2_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"bzip2\""; } >&5 + ($PKG_CONFIG --exists --print-errors "bzip2") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_BZIP2_LIBS=`$PKG_CONFIG --libs "bzip2" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + BZIP2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "bzip2" 2>&1` + else + BZIP2_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "bzip2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$BZIP2_PKG_ERRORS" >&5 + + + for ac_header in bzlib.h do : - ac_fn_c_check_func "$LINENO" "nanosleep" "ac_cv_func_nanosleep" -if test "x$ac_cv_func_nanosleep" = xyes; then : + ac_fn_c_check_header_mongrel "$LINENO" "bzlib.h" "ac_cv_header_bzlib_h" "$ac_includes_default" +if test "x$ac_cv_header_bzlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_NANOSLEEP 1 +#define HAVE_BZLIB_H 1 _ACEOF -else + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nanosleep in -lrt" >&5 -$as_echo_n "checking for nanosleep in -lrt... " >&6; } -if ${ac_cv_lib_rt_nanosleep+:} false; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BZ2_bzCompress in -lbz2" >&5 +$as_echo_n "checking for BZ2_bzCompress in -lbz2... " >&6; } +if ${ac_cv_lib_bz2_BZ2_bzCompress+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lrt $LIBS" +LIBS="-lbz2 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -19629,1016 +16237,1179 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char nanosleep (); +char BZ2_bzCompress (); int main () { -return nanosleep (); +return BZ2_bzCompress (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_rt_nanosleep=yes + ac_cv_lib_bz2_BZ2_bzCompress=yes else - ac_cv_lib_rt_nanosleep=no + ac_cv_lib_bz2_BZ2_bzCompress=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_nanosleep" >&5 -$as_echo "$ac_cv_lib_rt_nanosleep" >&6; } -if test "x$ac_cv_lib_rt_nanosleep" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bz2_BZ2_bzCompress" >&5 +$as_echo "$ac_cv_lib_bz2_BZ2_bzCompress" >&6; } +if test "x$ac_cv_lib_bz2_BZ2_bzCompress" = xyes; then : - $as_echo "#define HAVE_NANOSLEEP 1" >>confdefs.h + have_bzip2=yes + BZIP2_CFLAGS=${BZIP2_CFLAGS-""} + BZIP2_LIBS=${BZIP2_LIBS-"-lbz2"} + +else + have_bzip2=no +fi + + +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS + +else + have_bzip2=no fi +done + + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + for ac_header in bzlib.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "bzlib.h" "ac_cv_header_bzlib_h" "$ac_includes_default" +if test "x$ac_cv_header_bzlib_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_BZLIB_H 1 +_ACEOF -fi -done + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for major, minor, and makedev" >&5 -$as_echo_n "checking for major, minor, and makedev... " >&6; } -if ${ac_cv_device_macros+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BZ2_bzCompress in -lbz2" >&5 +$as_echo_n "checking for BZ2_bzCompress in -lbz2... " >&6; } +if ${ac_cv_lib_bz2_BZ2_bzCompress+:} false; then : $as_echo_n "(cached) " >&6 else - + ac_check_lib_save_LIBS=$LIBS +LIBS="-lbz2 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#if defined(MAJOR_IN_MKDEV) -#include <sys/mkdev.h> -#elif defined(MAJOR_IN_SYSMACROS) -#include <sys/sysmacros.h> -#else -#include <sys/types.h> +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" #endif - +char BZ2_bzCompress (); int main () { - - makedev(major(0),minor(0)); - +return BZ2_bzCompress (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_device_macros=yes + ac_cv_lib_bz2_BZ2_bzCompress=yes else - ac_cv_device_macros=no + ac_cv_lib_bz2_BZ2_bzCompress=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - +LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_device_macros" >&5 -$as_echo "$ac_cv_device_macros" >&6; } -if test "x$ac_cv_device_macros" = xyes; then : - - -$as_echo "#define HAVE_DEVICE_MACROS 1" >>confdefs.h +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bz2_BZ2_bzCompress" >&5 +$as_echo "$ac_cv_lib_bz2_BZ2_bzCompress" >&6; } +if test "x$ac_cv_lib_bz2_BZ2_bzCompress" = xyes; then : + have_bzip2=yes + BZIP2_CFLAGS=${BZIP2_CFLAGS-""} + BZIP2_LIBS=${BZIP2_LIBS-"-lbz2"} +else + have_bzip2=no fi -$as_echo "#define SYS_SELECT_WITH_SYS_TIME 1" >>confdefs.h +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS + -# On OSF/1 V5.1, getaddrinfo is available, but a define -# for [no]getaddrinfo in netdb.h. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo" >&5 -$as_echo_n "checking for getaddrinfo... " >&6; } -if ${ac_cv_func_getaddrinfo+:} false; then : - $as_echo_n "(cached) " >&6 else + have_bzip2=no +fi -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +done -#include <sys/types.h> -#include <sys/socket.h> -#include <netdb.h> -#include <stdio.h> -int -main () -{ -getaddrinfo(NULL, NULL, NULL, NULL); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_func_getaddrinfo=yes else - ac_cv_func_getaddrinfo=no + BZIP2_CFLAGS=$pkg_cv_BZIP2_CFLAGS + BZIP2_LIBS=$pkg_cv_BZIP2_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + have_bzip2=yes fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +if test "$have_bzip2" = "yes" -a "$ac_sys_system" = "Emscripten" -a "$BZIP2_LIBS" = "-lbz2"; then + BZIP2_CFLAGS="-sUSE_BZIP2" + BZIP2_LIBS="-sUSE_BZIP2" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getaddrinfo" >&5 -$as_echo "$ac_cv_func_getaddrinfo" >&6; } -if test "x$ac_cv_func_getaddrinfo" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking getaddrinfo bug" >&5 -$as_echo_n "checking getaddrinfo bug... " >&6; } -if ${ac_cv_buggy_getaddrinfo+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : -if test "${enable_ipv6+set}" = set; then - ac_cv_buggy_getaddrinfo="no -- configured with --(en|dis)able-ipv6" +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBLZMA" >&5 +$as_echo_n "checking for LIBLZMA... " >&6; } + +if test -n "$LIBLZMA_CFLAGS"; then + pkg_cv_LIBLZMA_CFLAGS="$LIBLZMA_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"liblzma\""; } >&5 + ($PKG_CONFIG --exists --print-errors "liblzma") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBLZMA_CFLAGS=`$PKG_CONFIG --cflags "liblzma" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - ac_cv_buggy_getaddrinfo=yes + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$LIBLZMA_LIBS"; then + pkg_cv_LIBLZMA_LIBS="$LIBLZMA_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"liblzma\""; } >&5 + ($PKG_CONFIG --exists --print-errors "liblzma") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBLZMA_LIBS=`$PKG_CONFIG --libs "liblzma" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + LIBLZMA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "liblzma" 2>&1` + else + LIBLZMA_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "liblzma" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$LIBLZMA_PKG_ERRORS" >&5 -#include <stdio.h> -#include <sys/types.h> -#include <netdb.h> -#include <string.h> -#include <sys/socket.h> -#include <netinet/in.h> -int main() -{ - int passive, gaierr, inet4 = 0, inet6 = 0; - struct addrinfo hints, *ai, *aitop; - char straddr[INET6_ADDRSTRLEN], strport[16]; + for ac_header in lzma.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "lzma.h" "ac_cv_header_lzma_h" "$ac_includes_default" +if test "x$ac_cv_header_lzma_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LZMA_H 1 +_ACEOF - for (passive = 0; passive <= 1; passive++) { - memset(&hints, 0, sizeof(hints)); - hints.ai_family = AF_UNSPEC; - hints.ai_flags = passive ? AI_PASSIVE : 0; - hints.ai_socktype = SOCK_STREAM; - hints.ai_protocol = IPPROTO_TCP; - if ((gaierr = getaddrinfo(NULL, "54321", &hints, &aitop)) != 0) { - (void)gai_strerror(gaierr); - goto bad; - } - for (ai = aitop; ai; ai = ai->ai_next) { - if (ai->ai_addr == NULL || - ai->ai_addrlen == 0 || - getnameinfo(ai->ai_addr, ai->ai_addrlen, - straddr, sizeof(straddr), strport, sizeof(strport), - NI_NUMERICHOST|NI_NUMERICSERV) != 0) { - goto bad; - } - switch (ai->ai_family) { - case AF_INET: - if (strcmp(strport, "54321") != 0) { - goto bad; - } - if (passive) { - if (strcmp(straddr, "0.0.0.0") != 0) { - goto bad; - } - } else { - if (strcmp(straddr, "127.0.0.1") != 0) { - goto bad; - } - } - inet4++; - break; - case AF_INET6: - if (strcmp(strport, "54321") != 0) { - goto bad; - } - if (passive) { - if (strcmp(straddr, "::") != 0) { - goto bad; - } - } else { - if (strcmp(straddr, "::1") != 0) { - goto bad; - } - } - inet6++; - break; - case AF_UNSPEC: - goto bad; - break; - default: - /* another family support? */ - break; - } - } - freeaddrinfo(aitop); - aitop = NULL; - } + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS - if (!(inet4 == 0 || inet4 == 2)) - goto bad; - if (!(inet6 == 0 || inet6 == 2)) - goto bad; - if (aitop) - freeaddrinfo(aitop); - return 0; + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lzma_easy_encoder in -llzma" >&5 +$as_echo_n "checking for lzma_easy_encoder in -llzma... " >&6; } +if ${ac_cv_lib_lzma_lzma_easy_encoder+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-llzma $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - bad: - if (aitop) - freeaddrinfo(aitop); - return 1; +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char lzma_easy_encoder (); +int +main () +{ +return lzma_easy_encoder (); + ; + return 0; } - _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_buggy_getaddrinfo=no +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_lzma_lzma_easy_encoder=yes else - ac_cv_buggy_getaddrinfo=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_cv_lib_lzma_lzma_easy_encoder=no fi - +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_buggy_getaddrinfo" >&5 -$as_echo "$ac_cv_buggy_getaddrinfo" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lzma_lzma_easy_encoder" >&5 +$as_echo "$ac_cv_lib_lzma_lzma_easy_encoder" >&6; } +if test "x$ac_cv_lib_lzma_lzma_easy_encoder" = xyes; then : + have_liblzma=yes + LIBLZMA_CFLAGS=${LIBLZMA_CFLAGS-""} + LIBLZMA_LIBS=${LIBLZMA_LIBS-"-llzma"} +else + have_liblzma=no fi -if test "$ac_cv_func_getaddrinfo" = no -o "$ac_cv_buggy_getaddrinfo" = yes -then - if test "x$ipv6" = xyes; then : - as_fn_error $? "You must get working getaddrinfo() function or pass the \"--disable-ipv6\" option to configure." "$LINENO" 5 +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS -fi -else -$as_echo "#define HAVE_GETADDRINFO 1" >>confdefs.h +else + have_liblzma=no fi -for ac_func in getnameinfo -do : - ac_fn_c_check_func "$LINENO" "getnameinfo" "ac_cv_func_getnameinfo" -if test "x$ac_cv_func_getnameinfo" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_GETNAMEINFO 1 -_ACEOF - -fi done -if test "x$ac_cv_header_sys_time_h" = xyes; then : - +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } -$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h + for ac_header in lzma.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "lzma.h" "ac_cv_header_lzma_h" "$ac_includes_default" +if test "x$ac_cv_header_lzma_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LZMA_H 1 +_ACEOF + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS -fi -# checks for structures -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 -$as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } -if ${ac_cv_struct_tm+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lzma_easy_encoder in -llzma" >&5 +$as_echo_n "checking for lzma_easy_encoder in -llzma... " >&6; } +if ${ac_cv_lib_lzma_lzma_easy_encoder+:} false; then : $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_check_lib_save_LIBS=$LIBS +LIBS="-llzma $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <sys/types.h> -#include <time.h> +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char lzma_easy_encoder (); int main () { -struct tm tm; - int *p = &tm.tm_sec; - return !p; +return lzma_easy_encoder (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_struct_tm=time.h +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_lzma_lzma_easy_encoder=yes else - ac_cv_struct_tm=sys/time.h + ac_cv_lib_lzma_lzma_easy_encoder=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 -$as_echo "$ac_cv_struct_tm" >&6; } -if test $ac_cv_struct_tm = sys/time.h; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lzma_lzma_easy_encoder" >&5 +$as_echo "$ac_cv_lib_lzma_lzma_easy_encoder" >&6; } +if test "x$ac_cv_lib_lzma_lzma_easy_encoder" = xyes; then : -$as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h + have_liblzma=yes + LIBLZMA_CFLAGS=${LIBLZMA_CFLAGS-""} + LIBLZMA_LIBS=${LIBLZMA_LIBS-"-llzma"} +else + have_liblzma=no fi -ac_fn_c_check_member "$LINENO" "struct tm" "tm_zone" "ac_cv_member_struct_tm_tm_zone" "#include <sys/types.h> -#include <$ac_cv_struct_tm> -" -if test "x$ac_cv_member_struct_tm_tm_zone" = xyes; then : +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_TM_TM_ZONE 1 -_ACEOF +else + have_liblzma=no fi -if test "$ac_cv_member_struct_tm_tm_zone" = yes; then +done -$as_echo "#define HAVE_TM_ZONE 1" >>confdefs.h else - ac_fn_c_check_decl "$LINENO" "tzname" "ac_cv_have_decl_tzname" "#include <time.h> -" -if test "x$ac_cv_have_decl_tzname" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 + LIBLZMA_CFLAGS=$pkg_cv_LIBLZMA_CFLAGS + LIBLZMA_LIBS=$pkg_cv_LIBLZMA_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + have_liblzma=yes fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_TZNAME $ac_have_decl -_ACEOF - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tzname" >&5 -$as_echo_n "checking for tzname... " >&6; } -if ${ac_cv_var_tzname+:} false; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for hstrerror" >&5 +$as_echo_n "checking for hstrerror... " >&6; } +if ${ac_cv_func_hstrerror+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <time.h> -#if !HAVE_DECL_TZNAME -extern char *tzname[]; -#endif - +#include <netdb.h> int main () { -return tzname[0][0]; +void *x=hstrerror ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_var_tzname=yes +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_hstrerror=yes else - ac_cv_var_tzname=no + ac_cv_func_hstrerror=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_var_tzname" >&5 -$as_echo "$ac_cv_var_tzname" >&6; } - if test $ac_cv_var_tzname = yes; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_hstrerror" >&5 +$as_echo "$ac_cv_func_hstrerror" >&6; } + if test "x$ac_cv_func_hstrerror" = xyes; then : -$as_echo "#define HAVE_TZNAME 1" >>confdefs.h +$as_echo "#define HAVE_HSTRERROR 1" >>confdefs.h - fi fi -ac_fn_c_check_member "$LINENO" "struct stat" "st_rdev" "ac_cv_member_struct_stat_st_rdev" "$ac_includes_default" -if test "x$ac_cv_member_struct_stat_st_rdev" = xyes; then : -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STAT_ST_RDEV 1 -_ACEOF -fi -ac_fn_c_check_member "$LINENO" "struct stat" "st_blksize" "ac_cv_member_struct_stat_st_blksize" "$ac_includes_default" -if test "x$ac_cv_member_struct_stat_st_blksize" = xyes; then : -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STAT_ST_BLKSIZE 1 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_aton" >&5 +$as_echo_n "checking for inet_aton... " >&6; } +if ${ac_cv_func_inet_aton+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include <sys/types.h> +#include <sys/socket.h> +#include <netinet/in.h> +#include <arpa/inet.h> + +int +main () +{ +void *x=inet_aton + ; + return 0; +} _ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_inet_aton=yes +else + ac_cv_func_inet_aton=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_inet_aton" >&5 +$as_echo "$ac_cv_func_inet_aton" >&6; } + if test "x$ac_cv_func_inet_aton" = xyes; then : +$as_echo "#define HAVE_INET_ATON 1" >>confdefs.h fi -ac_fn_c_check_member "$LINENO" "struct stat" "st_flags" "ac_cv_member_struct_stat_st_flags" "$ac_includes_default" -if test "x$ac_cv_member_struct_stat_st_flags" = xyes; then : -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STAT_ST_FLAGS 1 -_ACEOF + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_pton" >&5 +$as_echo_n "checking for inet_pton... " >&6; } +if ${ac_cv_func_inet_pton+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include <sys/types.h> +#include <sys/socket.h> +#include <netinet/in.h> +#include <arpa/inet.h> + +int +main () +{ +void *x=inet_pton + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_inet_pton=yes +else + ac_cv_func_inet_pton=no fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_fn_c_check_member "$LINENO" "struct stat" "st_gen" "ac_cv_member_struct_stat_st_gen" "$ac_includes_default" -if test "x$ac_cv_member_struct_stat_st_gen" = xyes; then : - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STAT_ST_GEN 1 -_ACEOF +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_inet_pton" >&5 +$as_echo "$ac_cv_func_inet_pton" >&6; } + if test "x$ac_cv_func_inet_pton" = xyes; then : +$as_echo "#define HAVE_INET_PTON 1" >>confdefs.h fi -ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtime" "ac_cv_member_struct_stat_st_birthtime" "$ac_includes_default" -if test "x$ac_cv_member_struct_stat_st_birthtime" = xyes; then : -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STAT_ST_BIRTHTIME 1 -_ACEOF -fi +# On some systems, setgroups is in unistd.h, on others, in grp.h -ac_fn_c_check_member "$LINENO" "struct stat" "st_blocks" "ac_cv_member_struct_stat_st_blocks" "$ac_includes_default" -if test "x$ac_cv_member_struct_stat_st_blocks" = xyes; then : -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STAT_ST_BLOCKS 1 -_ACEOF + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for setgroups" >&5 +$as_echo_n "checking for setgroups... " >&6; } +if ${ac_cv_func_setgroups+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <unistd.h> +#ifdef HAVE_GRP_H +#include <grp.h> +#endif +int +main () +{ +void *x=setgroups + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_setgroups=yes +else + ac_cv_func_setgroups=no fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_fn_c_check_member "$LINENO" "struct passwd" "pw_gecos" "ac_cv_member_struct_passwd_pw_gecos" " - #include <sys/types.h> - #include <pwd.h> - -" -if test "x$ac_cv_member_struct_passwd_pw_gecos" = xyes; then : - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_PASSWD_PW_GECOS 1 -_ACEOF +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_setgroups" >&5 +$as_echo "$ac_cv_func_setgroups" >&6; } + if test "x$ac_cv_func_setgroups" = xyes; then : +$as_echo "#define HAVE_SETGROUPS 1" >>confdefs.h fi -ac_fn_c_check_member "$LINENO" "struct passwd" "pw_passwd" "ac_cv_member_struct_passwd_pw_passwd" " - #include <sys/types.h> - #include <pwd.h> - -" -if test "x$ac_cv_member_struct_passwd_pw_passwd" = xyes; then : -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_PASSWD_PW_PASSWD 1 -_ACEOF -fi -# Issue #21085: In Cygwin, siginfo_t does not have si_band field. -ac_fn_c_check_member "$LINENO" "siginfo_t" "si_band" "ac_cv_member_siginfo_t_si_band" "#include <signal.h> -" -if test "x$ac_cv_member_siginfo_t_si_band" = xyes; then : +# check for openpty, login_tty, and forkpty -cat >>confdefs.h <<_ACEOF -#define HAVE_SIGINFO_T_SI_BAND 1 +for ac_func in openpty +do : + ac_fn_c_check_func "$LINENO" "openpty" "ac_cv_func_openpty" +if test "x$ac_cv_func_openpty" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_OPENPTY 1 _ACEOF +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for openpty in -lutil" >&5 +$as_echo_n "checking for openpty in -lutil... " >&6; } +if ${ac_cv_lib_util_openpty+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lutil $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char openpty (); +int +main () +{ +return openpty (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_util_openpty=yes +else + ac_cv_lib_util_openpty=no fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for time.h that defines altzone" >&5 -$as_echo_n "checking for time.h that defines altzone... " >&6; } -if ${ac_cv_header_time_altzone+:} false; then : +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_util_openpty" >&5 +$as_echo "$ac_cv_lib_util_openpty" >&6; } +if test "x$ac_cv_lib_util_openpty" = xyes; then : + $as_echo "#define HAVE_OPENPTY 1" >>confdefs.h + LIBS="$LIBS -lutil" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for openpty in -lbsd" >&5 +$as_echo_n "checking for openpty in -lbsd... " >&6; } +if ${ac_cv_lib_bsd_openpty+:} false; then : $as_echo_n "(cached) " >&6 else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_check_lib_save_LIBS=$LIBS +LIBS="-lbsd $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <time.h> + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char openpty (); int main () { -return altzone; +return openpty (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_time_altzone=yes +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_bsd_openpty=yes else - ac_cv_header_time_altzone=no + ac_cv_lib_bsd_openpty=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_openpty" >&5 +$as_echo "$ac_cv_lib_bsd_openpty" >&6; } +if test "x$ac_cv_lib_bsd_openpty" = xyes; then : + $as_echo "#define HAVE_OPENPTY 1" >>confdefs.h + LIBS="$LIBS -lbsd" +fi + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time_altzone" >&5 -$as_echo "$ac_cv_header_time_altzone" >&6; } -if test $ac_cv_header_time_altzone = yes; then -$as_echo "#define HAVE_ALTZONE 1" >>confdefs.h fi +done -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for addrinfo" >&5 -$as_echo_n "checking for addrinfo... " >&6; } -if ${ac_cv_struct_addrinfo+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing login_tty" >&5 +$as_echo_n "checking for library containing login_tty... " >&6; } +if ${ac_cv_search_login_tty+:} false; then : $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <netdb.h> + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char login_tty (); int main () { -struct addrinfo a +return login_tty (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_struct_addrinfo=yes +for ac_lib in '' util; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_login_tty=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_login_tty+:} false; then : + break +fi +done +if ${ac_cv_search_login_tty+:} false; then : + else - ac_cv_struct_addrinfo=no + ac_cv_search_login_tty=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_addrinfo" >&5 -$as_echo "$ac_cv_struct_addrinfo" >&6; } -if test $ac_cv_struct_addrinfo = yes; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_login_tty" >&5 +$as_echo "$ac_cv_search_login_tty" >&6; } +ac_res=$ac_cv_search_login_tty +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +$as_echo "#define HAVE_LOGIN_TTY 1" >>confdefs.h -$as_echo "#define HAVE_ADDRINFO 1" >>confdefs.h fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sockaddr_storage" >&5 -$as_echo_n "checking for sockaddr_storage... " >&6; } -if ${ac_cv_struct_sockaddr_storage+:} false; then : +for ac_func in forkpty +do : + ac_fn_c_check_func "$LINENO" "forkpty" "ac_cv_func_forkpty" +if test "x$ac_cv_func_forkpty" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_FORKPTY 1 +_ACEOF + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for forkpty in -lutil" >&5 +$as_echo_n "checking for forkpty in -lutil... " >&6; } +if ${ac_cv_lib_util_forkpty+:} false; then : $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_check_lib_save_LIBS=$LIBS +LIBS="-lutil $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -# include <sys/types.h> -# include <sys/socket.h> +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char forkpty (); int main () { -struct sockaddr_storage s +return forkpty (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_struct_sockaddr_storage=yes +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_util_forkpty=yes else - ac_cv_struct_sockaddr_storage=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_lib_util_forkpty=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_sockaddr_storage" >&5 -$as_echo "$ac_cv_struct_sockaddr_storage" >&6; } -if test $ac_cv_struct_sockaddr_storage = yes; then - -$as_echo "#define HAVE_SOCKADDR_STORAGE 1" >>confdefs.h - +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sockaddr_alg" >&5 -$as_echo_n "checking for sockaddr_alg... " >&6; } -if ${ac_cv_struct_sockaddr_alg+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_util_forkpty" >&5 +$as_echo "$ac_cv_lib_util_forkpty" >&6; } +if test "x$ac_cv_lib_util_forkpty" = xyes; then : + $as_echo "#define HAVE_FORKPTY 1" >>confdefs.h + LIBS="$LIBS -lutil" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for forkpty in -lbsd" >&5 +$as_echo_n "checking for forkpty in -lbsd... " >&6; } +if ${ac_cv_lib_bsd_forkpty+:} false; then : $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_check_lib_save_LIBS=$LIBS +LIBS="-lbsd $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -# include <sys/types.h> -# include <sys/socket.h> -# include <linux/if_alg.h> +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char forkpty (); int main () { -struct sockaddr_alg s +return forkpty (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_struct_sockaddr_alg=yes +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_bsd_forkpty=yes else - ac_cv_struct_sockaddr_alg=no + ac_cv_lib_bsd_forkpty=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_forkpty" >&5 +$as_echo "$ac_cv_lib_bsd_forkpty" >&6; } +if test "x$ac_cv_lib_bsd_forkpty" = xyes; then : + $as_echo "#define HAVE_FORKPTY 1" >>confdefs.h + LIBS="$LIBS -lbsd" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_sockaddr_alg" >&5 -$as_echo "$ac_cv_struct_sockaddr_alg" >&6; } -if test $ac_cv_struct_sockaddr_alg = yes; then -$as_echo "#define HAVE_SOCKADDR_ALG 1" >>confdefs.h fi -# checks for compiler characteristics -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 -$as_echo_n "checking for an ANSI C-conforming const... " >&6; } -if ${ac_cv_c_const+:} false; then : - $as_echo_n "(cached) " >&6 +fi +done + + +# check for long file support functions +for ac_func in fseek64 fseeko fstatvfs ftell64 ftello statvfs +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + +ac_fn_c_check_func "$LINENO" "dup2" "ac_cv_func_dup2" +if test "x$ac_cv_func_dup2" = xyes; then : + $as_echo "#define HAVE_DUP2 1" >>confdefs.h + else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + case " $LIBOBJS " in + *" dup2.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS dup2.$ac_objext" + ;; +esac + +fi + +for ac_func in getpgrp +do : + ac_fn_c_check_func "$LINENO" "getpgrp" "ac_cv_func_getpgrp" +if test "x$ac_cv_func_getpgrp" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GETPGRP 1 +_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <unistd.h> int main () { - -#ifndef __cplusplus - /* Ultrix mips cc rejects this sort of thing. */ - typedef int charset[2]; - const charset cs = { 0, 0 }; - /* SunOS 4.1.1 cc rejects this. */ - char const *const *pcpcc; - char **ppc; - /* NEC SVR4.0.2 mips cc rejects this. */ - struct point {int x, y;}; - static struct point const zero = {0,0}; - /* AIX XL C 1.02.0.0 rejects this. - It does not let you subtract one const X* pointer from another in - an arm of an if-expression whose if-part is not a constant - expression */ - const char *g = "string"; - pcpcc = &g + (g ? g-g : 0); - /* HPUX 7.0 cc rejects these. */ - ++pcpcc; - ppc = (char**) pcpcc; - pcpcc = (char const *const *) ppc; - { /* SCO 3.2v4 cc rejects this sort of thing. */ - char tx; - char *t = &tx; - char const *s = 0 ? (char *) 0 : (char const *) 0; - - *t++ = 0; - if (s) return 0; - } - { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ - int x[] = {25, 17}; - const int *foo = &x[0]; - ++foo; - } - { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ - typedef const int *iptr; - iptr p = 0; - ++p; - } - { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying - "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ - struct s { int j; const int *ap[3]; } bx; - struct s *b = &bx; b->j = 5; - } - { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ - const int foo = 10; - if (!foo) return 0; - } - return !cs[0] && !zero.x; -#endif - +getpgrp(0); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_const=yes -else - ac_cv_c_const=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 -$as_echo "$ac_cv_c_const" >&6; } -if test $ac_cv_c_const = no; then -$as_echo "#define const /**/" >>confdefs.h +$as_echo "#define GETPGRP_HAVE_ARG 1" >>confdefs.h fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +done -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working signed char" >&5 -$as_echo_n "checking for working signed char... " >&6; } -if ${ac_cv_working_signed_char_c+:} false; then : - $as_echo_n "(cached) " >&6 -else - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +for ac_func in setpgrp +do : + ac_fn_c_check_func "$LINENO" "setpgrp" "ac_cv_func_setpgrp" +if test "x$ac_cv_func_setpgrp" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SETPGRP 1 +_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - +#include <unistd.h> int main () { -signed char c; +setpgrp(0,0); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_working_signed_char_c=yes -else - ac_cv_working_signed_char_c=no + +$as_echo "#define SETPGRP_HAVE_ARG 1" >>confdefs.h + fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_signed_char_c" >&5 -$as_echo "$ac_cv_working_signed_char_c" >&6; } -if test "x$ac_cv_working_signed_char_c" = xno; then : +done -$as_echo "#define signed /**/" >>confdefs.h -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for prototypes" >&5 -$as_echo_n "checking for prototypes... " >&6; } -if ${ac_cv_function_prototypes+:} false; then : - $as_echo_n "(cached) " >&6 -else +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBCRYPT" >&5 +$as_echo_n "checking for LIBCRYPT... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int foo(int x) { return 0; } -int -main () -{ -return foo(10); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_function_prototypes=yes +if test -n "$LIBCRYPT_CFLAGS"; then + pkg_cv_LIBCRYPT_CFLAGS="$LIBCRYPT_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxcrypt >= 3.1.1\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libxcrypt >= 3.1.1") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBCRYPT_CFLAGS=`$PKG_CONFIG --cflags "libxcrypt >= 3.1.1" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$LIBCRYPT_LIBS"; then + pkg_cv_LIBCRYPT_LIBS="$LIBCRYPT_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxcrypt >= 3.1.1\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libxcrypt >= 3.1.1") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBCRYPT_LIBS=`$PKG_CONFIG --libs "libxcrypt >= 3.1.1" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - ac_cv_function_prototypes=no + pkg_failed=yes fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - + else + pkg_failed=untried fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_function_prototypes" >&5 -$as_echo "$ac_cv_function_prototypes" >&6; } -if test "x$ac_cv_function_prototypes" = xyes; then : -$as_echo "#define HAVE_PROTOTYPES 1" >>confdefs.h +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no fi + if test $_pkg_short_errors_supported = yes; then + LIBCRYPT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libxcrypt >= 3.1.1" 2>&1` + else + LIBCRYPT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libxcrypt >= 3.1.1" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$LIBCRYPT_PKG_ERRORS" >&5 -# check for socketpair + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socketpair" >&5 -$as_echo_n "checking for socketpair... " >&6; } -if ${ac_cv_func_socketpair+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt_r" >&5 +$as_echo_n "checking for library containing crypt_r... " >&6; } +if ${ac_cv_search_crypt_r+:} false; then : $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <sys/types.h> -#include <sys/socket.h> - +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char crypt_r (); int main () { -void *x=socketpair +return crypt_r (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_socketpair=yes -else - ac_cv_func_socketpair=no +for ac_lib in '' crypt; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_crypt_r=$ac_res fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_crypt_r+:} false; then : + break fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_socketpair" >&5 -$as_echo "$ac_cv_func_socketpair" >&6; } - if test "x$ac_cv_func_socketpair" = xyes; then : - -$as_echo "#define HAVE_SOCKETPAIR 1" >>confdefs.h +done +if ${ac_cv_search_crypt_r+:} false; then : +else + ac_cv_search_crypt_r=no fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt_r" >&5 +$as_echo "$ac_cv_search_crypt_r" >&6; } +ac_res=$ac_cv_search_crypt_r +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + $as_echo "#define HAVE_CRYPT_R 1" >>confdefs.h - - -# check if sockaddr has sa_len member -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if sockaddr has sa_len member" >&5 -$as_echo_n "checking if sockaddr has sa_len member... " >&6; } -if ${ac_cv_struct_sockaddr_sa_len+:} false; then : - $as_echo_n "(cached) " >&6 -else - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <sys/types.h> -#include <sys/socket.h> -int -main () -{ -struct sockaddr x; -x.sa_len = 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_struct_sockaddr_sa_len=yes -else - ac_cv_struct_sockaddr_sa_len=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test "$ac_cv_search_crypt_r" = "none required"; then + libcrypt= + else + libcrypt="$ac_cv_search_crypt_r" + fi + LIBCRYPT_LIBS=${LIBCRYPT_LIBS-$libcrypt} fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_sockaddr_sa_len" >&5 -$as_echo "$ac_cv_struct_sockaddr_sa_len" >&6; } -if test "x$ac_cv_struct_sockaddr_sa_len" = xyes; then : -$as_echo "#define HAVE_SOCKADDR_SA_LEN 1" >>confdefs.h - +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS -fi -# sigh -- gethostbyname_r is a mess; it can have 3, 5 or 6 arguments :-( +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } -ac_fn_c_check_func "$LINENO" "gethostbyname_r" "ac_cv_func_gethostbyname_r" -if test "x$ac_cv_func_gethostbyname_r" = xyes; then : + save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS - $as_echo "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: checking gethostbyname_r with 6 args" >&5 -$as_echo_n "checking gethostbyname_r with 6 args... " >&6; } - OLD_CFLAGS=$CFLAGS - CFLAGS="$CFLAGS $MY_CPPFLAGS $MY_THREAD_CPPFLAGS $MY_CFLAGS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt_r" >&5 +$as_echo_n "checking for library containing crypt_r... " >&6; } +if ${ac_cv_search_crypt_r+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -# include <netdb.h> - +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char crypt_r (); int main () { - - char *name; - struct hostent *he, *res; - char buffer[2048]; - int buflen = 2048; - int h_errnop; - - (void) gethostbyname_r(name, he, buffer, buflen, &res, &h_errnop) - +return crypt_r (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - $as_echo "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h +for ac_lib in '' crypt; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_crypt_r=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_crypt_r+:} false; then : + break +fi +done +if ${ac_cv_search_crypt_r+:} false; then : +else + ac_cv_search_crypt_r=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt_r" >&5 +$as_echo "$ac_cv_search_crypt_r" >&6; } +ac_res=$ac_cv_search_crypt_r +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" -$as_echo "#define HAVE_GETHOSTBYNAME_R_6_ARG 1" >>confdefs.h + $as_echo "#define HAVE_CRYPT_R 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + if test "$ac_cv_search_crypt_r" = "none required"; then + libcrypt= + else + libcrypt="$ac_cv_search_crypt_r" + fi + LIBCRYPT_LIBS=${LIBCRYPT_LIBS-$libcrypt} -else +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking gethostbyname_r with 5 args" >&5 -$as_echo_n "checking gethostbyname_r with 5 args... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -# include <netdb.h> +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS -int -main () -{ - char *name; - struct hostent *he; - char buffer[2048]; - int buflen = 2048; - int h_errnop; - (void) gethostbyname_r(name, he, buffer, buflen, &h_errnop) +else + LIBCRYPT_CFLAGS=$pkg_cv_LIBCRYPT_CFLAGS + LIBCRYPT_LIBS=$pkg_cv_LIBCRYPT_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : + $as_echo "#define HAVE_CRYPT_R 1" >>confdefs.h - $as_echo "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h +fi -$as_echo "#define HAVE_GETHOSTBYNAME_R_5_ARG 1" >>confdefs.h +save_CFLAGS=$CFLAGS +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + CPPFLAGS="$LIBCRYPT_CFLAGS $CFLAGS" + LIBS="$LIBCRYPT_LIBS $LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for crypt or crypt_r" >&5 +$as_echo_n "checking for crypt or crypt_r... " >&6; } +if ${ac_cv_crypt_crypt+:} false; then : + $as_echo_n "(cached) " >&6 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking gethostbyname_r with 3 args" >&5 -$as_echo_n "checking gethostbyname_r with 3 args... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -# include <netdb.h> + #ifdef HAVE_CRYPT_H + #include <crypt.h> + #endif + #include <unistd.h> int main () { - char *name; - struct hostent *he; - struct hostent_data data; - - (void) gethostbyname_r(name, he, &data); + #ifdef HAVE_CRYPT_R + void *x = crypt_r; + #else + void *x = crypt; + #endif ; return 0; } -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - $as_echo "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h - - -$as_echo "#define HAVE_GETHOSTBYNAME_R_3_ARG 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_crypt_crypt=yes else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - + ac_cv_crypt_crypt=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_crypt_crypt" >&5 +$as_echo "$ac_cv_crypt_crypt" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS=$OLD_CFLAGS +CFLAGS=$save_CFLAGS +CPPFLAGS=$save_CPPFLAGS +LDFLAGS=$save_LDFLAGS +LIBS=$save_LIBS -else - for ac_func in gethostbyname + +for ac_func in clock_gettime do : - ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" -if test "x$ac_cv_func_gethostbyname" = xyes; then : + ac_fn_c_check_func "$LINENO" "clock_gettime" "ac_cv_func_clock_gettime" +if test "x$ac_cv_func_clock_gettime" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_GETHOSTBYNAME 1 +#define HAVE_CLOCK_GETTIME 1 _ACEOF -fi -done - - -fi - - - - - - - -# checks for system services -# (none yet) - -# Linux requires this for correct f.p. operations -ac_fn_c_check_func "$LINENO" "__fpu_control" "ac_cv_func___fpu_control" -if test "x$ac_cv_func___fpu_control" = xyes; then : - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __fpu_control in -lieee" >&5 -$as_echo_n "checking for __fpu_control in -lieee... " >&6; } -if ${ac_cv_lib_ieee___fpu_control+:} false; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_gettime in -lrt" >&5 +$as_echo_n "checking for clock_gettime in -lrt... " >&6; } +if ${ac_cv_lib_rt_clock_gettime+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lieee $LIBS" +LIBS="-lrt $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -20648,1281 +17419,1252 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char __fpu_control (); +char clock_gettime (); int main () { -return __fpu_control (); +return clock_gettime (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_ieee___fpu_control=yes + ac_cv_lib_rt_clock_gettime=yes else - ac_cv_lib_ieee___fpu_control=no + ac_cv_lib_rt_clock_gettime=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ieee___fpu_control" >&5 -$as_echo "$ac_cv_lib_ieee___fpu_control" >&6; } -if test "x$ac_cv_lib_ieee___fpu_control" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBIEEE 1 -_ACEOF - - LIBS="-lieee $LIBS" - -fi - +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_gettime" >&5 +$as_echo "$ac_cv_lib_rt_clock_gettime" >&6; } +if test "x$ac_cv_lib_rt_clock_gettime" = xyes; then : -fi + LIBS="$LIBS -lrt" + $as_echo "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h -# check for --with-libm=... +$as_echo "#define TIMEMODULE_LIB rt" >>confdefs.h -case $ac_sys_system in -Darwin) ;; -*) LIBM=-lm -esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-libm=STRING" >&5 -$as_echo_n "checking for --with-libm=STRING... " >&6; } -# Check whether --with-libm was given. -if test "${with_libm+set}" = set; then : - withval=$with_libm; -if test "$withval" = no -then LIBM= - { $as_echo "$as_me:${as_lineno-$LINENO}: result: force LIBM empty" >&5 -$as_echo "force LIBM empty" >&6; } -elif test "$withval" != yes -then LIBM=$withval - { $as_echo "$as_me:${as_lineno-$LINENO}: result: set LIBM=\"$withval\"" >&5 -$as_echo "set LIBM=\"$withval\"" >&6; } -else as_fn_error $? "proper usage is --with-libm=STRING" "$LINENO" 5 -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: default LIBM=\"$LIBM\"" >&5 -$as_echo "default LIBM=\"$LIBM\"" >&6; } fi -# check for --with-libc=... - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-libc=STRING" >&5 -$as_echo_n "checking for --with-libc=STRING... " >&6; } - -# Check whether --with-libc was given. -if test "${with_libc+set}" = set; then : - withval=$with_libc; -if test "$withval" = no -then LIBC= - { $as_echo "$as_me:${as_lineno-$LINENO}: result: force LIBC empty" >&5 -$as_echo "force LIBC empty" >&6; } -elif test "$withval" != yes -then LIBC=$withval - { $as_echo "$as_me:${as_lineno-$LINENO}: result: set LIBC=\"$withval\"" >&5 -$as_echo "set LIBC=\"$withval\"" >&6; } -else as_fn_error $? "proper usage is --with-libc=STRING" "$LINENO" 5 -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: default LIBC=\"$LIBC\"" >&5 -$as_echo "default LIBC=\"$LIBC\"" >&6; } fi +done -# ************************************** -# * Check for gcc x64 inline assembler * -# ************************************** +for ac_func in clock_getres +do : + ac_fn_c_check_func "$LINENO" "clock_getres" "ac_cv_func_clock_getres" +if test "x$ac_cv_func_clock_getres" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_CLOCK_GETRES 1 +_ACEOF +else -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for x64 gcc inline assembler" >&5 -$as_echo_n "checking for x64 gcc inline assembler... " >&6; } -if ${ac_cv_gcc_asm_for_x64+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_getres in -lrt" >&5 +$as_echo_n "checking for clock_getres in -lrt... " >&6; } +if ${ac_cv_lib_rt_clock_getres+:} false; then : $as_echo_n "(cached) " >&6 else - + ac_check_lib_save_LIBS=$LIBS +LIBS="-lrt $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char clock_getres (); int main () { - - __asm__ __volatile__ ("movq %rcx, %rax"); - +return clock_getres (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_gcc_asm_for_x64=yes -else - ac_cv_gcc_asm_for_x64=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gcc_asm_for_x64" >&5 -$as_echo "$ac_cv_gcc_asm_for_x64" >&6; } - -if test "x$ac_cv_gcc_asm_for_x64" = xyes; then : - - -$as_echo "#define HAVE_GCC_ASM_FOR_X64 1" >>confdefs.h - - -fi - -# ************************************************** -# * Check for various properties of floating point * -# ************************************************** - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether float word ordering is bigendian" >&5 -$as_echo_n "checking whether float word ordering is bigendian... " >&6; } -if ${ax_cv_c_float_words_bigendian+:} false; then : - $as_echo_n "(cached) " >&6 + ac_cv_lib_rt_clock_getres=yes else - - -ax_cv_c_float_words_bigendian=unknown -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -double d = 90904234967036810337470478905505011476211692735615632014797120844053488865816695273723469097858056257517020191247487429516932130503560650002327564517570778480236724525140520121371739201496540132640109977779420565776568942592.0; - - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - -if grep noonsees conftest.$ac_objext >/dev/null ; then - ax_cv_c_float_words_bigendian=yes -fi -if grep seesnoon conftest.$ac_objext >/dev/null ; then - if test "$ax_cv_c_float_words_bigendian" = unknown; then - ax_cv_c_float_words_bigendian=no - else - ax_cv_c_float_words_bigendian=unknown - fi + ac_cv_lib_rt_clock_getres=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_getres" >&5 +$as_echo "$ac_cv_lib_rt_clock_getres" >&6; } +if test "x$ac_cv_lib_rt_clock_getres" = xyes; then : + + $as_echo "#define HAVE_CLOCK_GETRES 1" >>confdefs.h fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_c_float_words_bigendian" >&5 -$as_echo "$ax_cv_c_float_words_bigendian" >&6; } -case $ax_cv_c_float_words_bigendian in - yes) -$as_echo "#define FLOAT_WORDS_BIGENDIAN 1" >>confdefs.h - ;; - no) - ;; - *) - as_fn_error $? " +fi +done -Unknown float word ordering. You need to manually preset -ax_cv_c_float_words_bigendian=no (or yes) according to your system. - " "$LINENO" 5 ;; -esac +for ac_func in clock_settime +do : + ac_fn_c_check_func "$LINENO" "clock_settime" "ac_cv_func_clock_settime" +if test "x$ac_cv_func_clock_settime" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_CLOCK_SETTIME 1 +_ACEOF +else -if test "$ax_cv_c_float_words_bigendian" = "yes" -then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_settime in -lrt" >&5 +$as_echo_n "checking for clock_settime in -lrt... " >&6; } +if ${ac_cv_lib_rt_clock_settime+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lrt $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -$as_echo "#define DOUBLE_IS_BIG_ENDIAN_IEEE754 1" >>confdefs.h +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char clock_settime (); +int +main () +{ +return clock_settime (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_rt_clock_settime=yes +else + ac_cv_lib_rt_clock_settime=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_settime" >&5 +$as_echo "$ac_cv_lib_rt_clock_settime" >&6; } +if test "x$ac_cv_lib_rt_clock_settime" = xyes; then : -elif test "$ax_cv_c_float_words_bigendian" = "no" -then + $as_echo "#define HAVE_CLOCK_SETTIME 1" >>confdefs.h -$as_echo "#define DOUBLE_IS_LITTLE_ENDIAN_IEEE754 1" >>confdefs.h -else - # Some ARM platforms use a mixed-endian representation for doubles. - # While Python doesn't currently have full support for these platforms - # (see e.g., issue 1762561), we can at least make sure that float <-> string - # conversions work. - # FLOAT_WORDS_BIGENDIAN doesnt actually detect this case, but if it's not big - # or little, then it must be this? +fi -$as_echo "#define DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 1" >>confdefs.h fi +done -# The short float repr introduced in Python 3.1 requires the -# correctly-rounded string <-> double conversion functions from -# Python/dtoa.c, which in turn require that the FPU uses 53-bit -# rounding; this is a problem on x86, where the x87 FPU has a default -# rounding precision of 64 bits. For gcc/x86, we can fix this by -# using inline assembler to get and set the x87 FPU control word. -# This inline assembler syntax may also work for suncc and icc, -# so we try it on all platforms. +for ac_func in clock_nanosleep +do : + ac_fn_c_check_func "$LINENO" "clock_nanosleep" "ac_cv_func_clock_nanosleep" +if test "x$ac_cv_func_clock_nanosleep" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_CLOCK_NANOSLEEP 1 +_ACEOF -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can use gcc inline assembler to get and set x87 control word" >&5 -$as_echo_n "checking whether we can use gcc inline assembler to get and set x87 control word... " >&6; } -if ${ac_cv_gcc_asm_for_x87+:} false; then : - $as_echo_n "(cached) " >&6 else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_nanosleep in -lrt" >&5 +$as_echo_n "checking for clock_nanosleep in -lrt... " >&6; } +if ${ac_cv_lib_rt_clock_nanosleep+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lrt $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char clock_nanosleep (); int main () { - - unsigned short cw; - __asm__ __volatile__ ("fnstcw %0" : "=m" (cw)); - __asm__ __volatile__ ("fldcw %0" : : "m" (cw)); - +return clock_nanosleep (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_gcc_asm_for_x87=yes + ac_cv_lib_rt_clock_nanosleep=yes else - ac_cv_gcc_asm_for_x87=no + ac_cv_lib_rt_clock_nanosleep=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - +LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gcc_asm_for_x87" >&5 -$as_echo "$ac_cv_gcc_asm_for_x87" >&6; } -if test "x$ac_cv_gcc_asm_for_x87" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_nanosleep" >&5 +$as_echo "$ac_cv_lib_rt_clock_nanosleep" >&6; } +if test "x$ac_cv_lib_rt_clock_nanosleep" = xyes; then : + $as_echo "#define HAVE_CLOCK_NANOSLEEP 1" >>confdefs.h -$as_echo "#define HAVE_GCC_ASM_FOR_X87 1" >>confdefs.h + +fi fi +done + + +for ac_func in nanosleep +do : + ac_fn_c_check_func "$LINENO" "nanosleep" "ac_cv_func_nanosleep" +if test "x$ac_cv_func_nanosleep" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_NANOSLEEP 1 +_ACEOF -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can use gcc inline assembler to get and set mc68881 fpcr" >&5 -$as_echo_n "checking whether we can use gcc inline assembler to get and set mc68881 fpcr... " >&6; } -if ${ac_cv_gcc_asm_for_mc68881+:} false; then : - $as_echo_n "(cached) " >&6 else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nanosleep in -lrt" >&5 +$as_echo_n "checking for nanosleep in -lrt... " >&6; } +if ${ac_cv_lib_rt_nanosleep+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lrt $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char nanosleep (); int main () { - - unsigned int fpcr; - __asm__ __volatile__ ("fmove.l %%fpcr,%0" : "=g" (fpcr)); - __asm__ __volatile__ ("fmove.l %0,%%fpcr" : : "g" (fpcr)); - +return nanosleep (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_gcc_asm_for_mc68881=yes + ac_cv_lib_rt_nanosleep=yes else - ac_cv_gcc_asm_for_mc68881=no + ac_cv_lib_rt_nanosleep=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - +LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gcc_asm_for_mc68881" >&5 -$as_echo "$ac_cv_gcc_asm_for_mc68881" >&6; } -if test "x$ac_cv_gcc_asm_for_mc68881" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_nanosleep" >&5 +$as_echo "$ac_cv_lib_rt_nanosleep" >&6; } +if test "x$ac_cv_lib_rt_nanosleep" = xyes; then : + $as_echo "#define HAVE_NANOSLEEP 1" >>confdefs.h -$as_echo "#define HAVE_GCC_ASM_FOR_MC68881 1" >>confdefs.h + +fi fi +done -# Detect whether system arithmetic is subject to x87-style double -# rounding issues. The result of this test has little meaning on non -# IEEE 754 platforms. On IEEE 754, test should return 1 if rounding -# mode is round-to-nearest and double rounding issues are present, and -# 0 otherwise. See https://github.com/python/cpython/issues/47186 for more info. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for x87-style double rounding" >&5 -$as_echo_n "checking for x87-style double rounding... " >&6; } -if ${ac_cv_x87_double_rounding+:} false; then : + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for major, minor, and makedev" >&5 +$as_echo_n "checking for major, minor, and makedev... " >&6; } +if ${ac_cv_device_macros+:} false; then : $as_echo_n "(cached) " >&6 else -# $BASECFLAGS may affect the result -ac_save_cc="$CC" -CC="$CC $BASECFLAGS" -if test "$cross_compiling" = yes; then : - ac_cv_x87_double_rounding=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <stdlib.h> -#include <math.h> -int main() { - volatile double x, y, z; - /* 1./(1-2**-53) -> 1+2**-52 (correct), 1.0 (double rounding) */ - x = 0.99999999999999989; /* 1-2**-53 */ - y = 1./x; - if (y != 1.) - exit(0); - /* 1e16+2.99999 -> 1e16+2. (correct), 1e16+4. (double rounding) */ - x = 1e16; - y = 2.99999; - z = x + y; - if (z != 1e16+4.) - exit(0); - /* both tests show evidence of double rounding */ - exit(1); -} +#if defined(MAJOR_IN_MKDEV) +#include <sys/mkdev.h> +#elif defined(MAJOR_IN_SYSMACROS) +#include <sys/sysmacros.h> +#else +#include <sys/types.h> +#endif + +int +main () +{ + + makedev(major(0),minor(0)); + ; + return 0; +} _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_x87_double_rounding=no +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_device_macros=yes else - ac_cv_x87_double_rounding=yes + ac_cv_device_macros=no fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_device_macros" >&5 +$as_echo "$ac_cv_device_macros" >&6; } +if test "x$ac_cv_device_macros" = xyes; then : -CC="$ac_save_cc" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_x87_double_rounding" >&5 -$as_echo "$ac_cv_x87_double_rounding" >&6; } +$as_echo "#define HAVE_DEVICE_MACROS 1" >>confdefs.h -if test "x$ac_cv_x87_double_rounding" = xyes; then : +fi -$as_echo "#define X87_DOUBLE_ROUNDING 1" >>confdefs.h +$as_echo "#define SYS_SELECT_WITH_SYS_TIME 1" >>confdefs.h -fi -# ************************************ -# * Check for mathematical functions * -# ************************************ +# On OSF/1 V5.1, getaddrinfo is available, but a define +# for [no]getaddrinfo in netdb.h. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo" >&5 +$as_echo_n "checking for getaddrinfo... " >&6; } +if ${ac_cv_func_getaddrinfo+:} false; then : + $as_echo_n "(cached) " >&6 +else -LIBS_SAVE=$LIBS -LIBS="$LIBS $LIBM" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -for ac_func in acosh asinh atanh erf erfc expm1 log1p log2 -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF +#include <sys/types.h> +#include <sys/socket.h> +#include <netdb.h> +#include <stdio.h> +int +main () +{ +getaddrinfo(NULL, NULL, NULL, NULL); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_func_getaddrinfo=yes else - as_fn_error $? "Python requires C99 compatible libm" "$LINENO" 5 + ac_cv_func_getaddrinfo=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi -done +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getaddrinfo" >&5 +$as_echo "$ac_cv_func_getaddrinfo" >&6; } -LIBS=$LIBS_SAVE +if test "x$ac_cv_func_getaddrinfo" = xyes; then : -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether POSIX semaphores are enabled" >&5 -$as_echo_n "checking whether POSIX semaphores are enabled... " >&6; } -if ${ac_cv_posix_semaphores_enabled+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking getaddrinfo bug" >&5 +$as_echo_n "checking getaddrinfo bug... " >&6; } +if ${ac_cv_buggy_getaddrinfo+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : - ac_cv_posix_semaphores_enabled=yes + +if test "${enable_ipv6+set}" = set; then + ac_cv_buggy_getaddrinfo="no -- configured with --(en|dis)able-ipv6" +else + ac_cv_buggy_getaddrinfo=yes +fi else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +#include <stdio.h> +#include <sys/types.h> +#include <netdb.h> +#include <string.h> +#include <sys/socket.h> +#include <netinet/in.h> - #include <unistd.h> - #include <fcntl.h> - #include <stdio.h> - #include <semaphore.h> - #include <sys/stat.h> +int main() +{ + int passive, gaierr, inet4 = 0, inet6 = 0; + struct addrinfo hints, *ai, *aitop; + char straddr[INET6_ADDRSTRLEN], strport[16]; - int main(void) { - sem_t *a = sem_open("/autoconf", O_CREAT, S_IRUSR|S_IWUSR, 0); - if (a == SEM_FAILED) { - perror("sem_open"); - return 1; + for (passive = 0; passive <= 1; passive++) { + memset(&hints, 0, sizeof(hints)); + hints.ai_family = AF_UNSPEC; + hints.ai_flags = passive ? AI_PASSIVE : 0; + hints.ai_socktype = SOCK_STREAM; + hints.ai_protocol = IPPROTO_TCP; + if ((gaierr = getaddrinfo(NULL, "54321", &hints, &aitop)) != 0) { + (void)gai_strerror(gaierr); + goto bad; + } + for (ai = aitop; ai; ai = ai->ai_next) { + if (ai->ai_addr == NULL || + ai->ai_addrlen == 0 || + getnameinfo(ai->ai_addr, ai->ai_addrlen, + straddr, sizeof(straddr), strport, sizeof(strport), + NI_NUMERICHOST|NI_NUMERICSERV) != 0) { + goto bad; + } + switch (ai->ai_family) { + case AF_INET: + if (strcmp(strport, "54321") != 0) { + goto bad; } - sem_close(a); - sem_unlink("/autoconf"); - return 0; + if (passive) { + if (strcmp(straddr, "0.0.0.0") != 0) { + goto bad; + } + } else { + if (strcmp(straddr, "127.0.0.1") != 0) { + goto bad; + } + } + inet4++; + break; + case AF_INET6: + if (strcmp(strport, "54321") != 0) { + goto bad; + } + if (passive) { + if (strcmp(straddr, "::") != 0) { + goto bad; + } + } else { + if (strcmp(straddr, "::1") != 0) { + goto bad; + } + } + inet6++; + break; + case AF_UNSPEC: + goto bad; + break; + default: + /* another family support? */ + break; } + } + freeaddrinfo(aitop); + aitop = NULL; + } + + if (!(inet4 == 0 || inet4 == 2)) + goto bad; + if (!(inet6 == 0 || inet6 == 2)) + goto bad; + + if (aitop) + freeaddrinfo(aitop); + return 0; + bad: + if (aitop) + freeaddrinfo(aitop); + return 1; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : - ac_cv_posix_semaphores_enabled=yes + ac_cv_buggy_getaddrinfo=no else - ac_cv_posix_semaphores_enabled=no + ac_cv_buggy_getaddrinfo=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_buggy_getaddrinfo" >&5 +$as_echo "$ac_cv_buggy_getaddrinfo" >&6; } + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_posix_semaphores_enabled" >&5 -$as_echo "$ac_cv_posix_semaphores_enabled" >&6; } -if test "x$ac_cv_posix_semaphores_enabled" = xno; then : +if test "$ac_cv_func_getaddrinfo" = no -o "$ac_cv_buggy_getaddrinfo" = yes +then + if test "x$ipv6" = xyes; then : + + as_fn_error $? "You must get working getaddrinfo() function or pass the \"--disable-ipv6\" option to configure." "$LINENO" 5 -$as_echo "#define POSIX_SEMAPHORES_NOT_ENABLED 1" >>confdefs.h +fi +else +$as_echo "#define HAVE_GETADDRINFO 1" >>confdefs.h fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken sem_getvalue" >&5 -$as_echo_n "checking for broken sem_getvalue... " >&6; } -if ${ac_cv_broken_sem_getvalue+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_broken_sem_getvalue=yes -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +for ac_func in getnameinfo +do : + ac_fn_c_check_func "$LINENO" "getnameinfo" "ac_cv_func_getnameinfo" +if test "x$ac_cv_func_getnameinfo" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GETNAMEINFO 1 +_ACEOF +fi +done - #include <unistd.h> - #include <fcntl.h> - #include <stdio.h> - #include <semaphore.h> - #include <sys/stat.h> - int main(void){ - sem_t *a = sem_open("/autocftw", O_CREAT, S_IRUSR|S_IWUSR, 0); - int count; - int res; - if(a==SEM_FAILED){ - perror("sem_open"); - return 1; +if test "x$ac_cv_header_sys_time_h" = xyes; then : - } - res = sem_getvalue(a, &count); - sem_close(a); - sem_unlink("/autocftw"); - return res==-1 ? 1 : 0; - } +$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_broken_sem_getvalue=no + +fi + +# checks for structures +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 +$as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } +if ${ac_cv_struct_tm+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/types.h> +#include <time.h> + +int +main () +{ +struct tm tm; + int *p = &tm.tm_sec; + return !p; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_struct_tm=time.h else - ac_cv_broken_sem_getvalue=yes + ac_cv_struct_tm=sys/time.h fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 +$as_echo "$ac_cv_struct_tm" >&6; } +if test $ac_cv_struct_tm = sys/time.h; then +$as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_sem_getvalue" >&5 -$as_echo "$ac_cv_broken_sem_getvalue" >&6; } -if test "x$ac_cv_broken_sem_getvalue" = xyes; then : - -$as_echo "#define HAVE_BROKEN_SEM_GETVALUE 1" >>confdefs.h - - -fi +ac_fn_c_check_member "$LINENO" "struct tm" "tm_zone" "ac_cv_member_struct_tm_tm_zone" "#include <sys/types.h> +#include <$ac_cv_struct_tm> -ac_fn_c_check_decl "$LINENO" "RTLD_LAZY" "ac_cv_have_decl_RTLD_LAZY" "#include <dlfcn.h> " -if test "x$ac_cv_have_decl_RTLD_LAZY" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi +if test "x$ac_cv_member_struct_tm_tm_zone" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_RTLD_LAZY $ac_have_decl +#define HAVE_STRUCT_TM_TM_ZONE 1 _ACEOF -ac_fn_c_check_decl "$LINENO" "RTLD_NOW" "ac_cv_have_decl_RTLD_NOW" "#include <dlfcn.h> -" -if test "x$ac_cv_have_decl_RTLD_NOW" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_RTLD_NOW $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "RTLD_GLOBAL" "ac_cv_have_decl_RTLD_GLOBAL" "#include <dlfcn.h> -" -if test "x$ac_cv_have_decl_RTLD_GLOBAL" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_RTLD_GLOBAL $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "RTLD_LOCAL" "ac_cv_have_decl_RTLD_LOCAL" "#include <dlfcn.h> -" -if test "x$ac_cv_have_decl_RTLD_LOCAL" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_RTLD_LOCAL $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "RTLD_NODELETE" "ac_cv_have_decl_RTLD_NODELETE" "#include <dlfcn.h> +if test "$ac_cv_member_struct_tm_tm_zone" = yes; then + +$as_echo "#define HAVE_TM_ZONE 1" >>confdefs.h + +else + ac_fn_c_check_decl "$LINENO" "tzname" "ac_cv_have_decl_tzname" "#include <time.h> " -if test "x$ac_cv_have_decl_RTLD_NODELETE" = xyes; then : +if test "x$ac_cv_have_decl_tzname" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_RTLD_NODELETE $ac_have_decl +#define HAVE_DECL_TZNAME $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "RTLD_NOLOAD" "ac_cv_have_decl_RTLD_NOLOAD" "#include <dlfcn.h> -" -if test "x$ac_cv_have_decl_RTLD_NOLOAD" = xyes; then : - ac_have_decl=1 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tzname" >&5 +$as_echo_n "checking for tzname... " >&6; } +if ${ac_cv_var_tzname+:} false; then : + $as_echo_n "(cached) " >&6 else - ac_have_decl=0 -fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <time.h> +#if !HAVE_DECL_TZNAME +extern char *tzname[]; +#endif -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_RTLD_NOLOAD $ac_have_decl +int +main () +{ +return tzname[0][0]; + ; + return 0; +} _ACEOF -ac_fn_c_check_decl "$LINENO" "RTLD_DEEPBIND" "ac_cv_have_decl_RTLD_DEEPBIND" "#include <dlfcn.h> -" -if test "x$ac_cv_have_decl_RTLD_DEEPBIND" = xyes; then : - ac_have_decl=1 +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_var_tzname=yes else - ac_have_decl=0 + ac_cv_var_tzname=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_var_tzname" >&5 +$as_echo "$ac_cv_var_tzname" >&6; } + if test $ac_cv_var_tzname = yes; then -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_RTLD_DEEPBIND $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "RTLD_MEMBER" "ac_cv_have_decl_RTLD_MEMBER" "#include <dlfcn.h> -" -if test "x$ac_cv_have_decl_RTLD_MEMBER" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 +$as_echo "#define HAVE_TZNAME 1" >>confdefs.h + + fi fi +ac_fn_c_check_member "$LINENO" "struct stat" "st_rdev" "ac_cv_member_struct_stat_st_rdev" "$ac_includes_default" +if test "x$ac_cv_member_struct_stat_st_rdev" = xyes; then : + cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_RTLD_MEMBER $ac_have_decl +#define HAVE_STRUCT_STAT_ST_RDEV 1 _ACEOF -# determine what size digit to use for Python's longs -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking digit size for Python's longs" >&5 -$as_echo_n "checking digit size for Python's longs... " >&6; } -# Check whether --enable-big-digits was given. -if test "${enable_big_digits+set}" = set; then : - enableval=$enable_big_digits; case $enable_big_digits in -yes) - enable_big_digits=30 ;; -no) - enable_big_digits=15 ;; -15|30) - ;; -*) - as_fn_error $? "bad value $enable_big_digits for --enable-big-digits; value should be 15 or 30" "$LINENO" 5 ;; -esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_big_digits" >&5 -$as_echo "$enable_big_digits" >&6; } +fi + +ac_fn_c_check_member "$LINENO" "struct stat" "st_blksize" "ac_cv_member_struct_stat_st_blksize" "$ac_includes_default" +if test "x$ac_cv_member_struct_stat_st_blksize" = xyes; then : cat >>confdefs.h <<_ACEOF -#define PYLONG_BITS_IN_DIGIT $enable_big_digits +#define HAVE_STRUCT_STAT_ST_BLKSIZE 1 _ACEOF -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no value specified" >&5 -$as_echo "no value specified" >&6; } fi +ac_fn_c_check_member "$LINENO" "struct stat" "st_flags" "ac_cv_member_struct_stat_st_flags" "$ac_includes_default" +if test "x$ac_cv_member_struct_stat_st_flags" = xyes; then : -# check for wchar.h -ac_fn_c_check_header_mongrel "$LINENO" "wchar.h" "ac_cv_header_wchar_h" "$ac_includes_default" -if test "x$ac_cv_header_wchar_h" = xyes; then : +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_FLAGS 1 +_ACEOF -$as_echo "#define HAVE_WCHAR_H 1" >>confdefs.h +fi - wchar_h="yes" +ac_fn_c_check_member "$LINENO" "struct stat" "st_gen" "ac_cv_member_struct_stat_st_gen" "$ac_includes_default" +if test "x$ac_cv_member_struct_stat_st_gen" = xyes; then : -else - wchar_h="no" +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_GEN 1 +_ACEOF -fi +fi +ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtime" "ac_cv_member_struct_stat_st_birthtime" "$ac_includes_default" +if test "x$ac_cv_member_struct_stat_st_birthtime" = xyes; then : -# determine wchar_t size -if test "$wchar_h" = yes -then - # The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of wchar_t" >&5 -$as_echo_n "checking size of wchar_t... " >&6; } -if ${ac_cv_sizeof_wchar_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (wchar_t))" "ac_cv_sizeof_wchar_t" "#include <wchar.h> -"; then : +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_BIRTHTIME 1 +_ACEOF -else - if test "$ac_cv_type_wchar_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (wchar_t) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_wchar_t=0 - fi -fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_wchar_t" >&5 -$as_echo "$ac_cv_sizeof_wchar_t" >&6; } - +ac_fn_c_check_member "$LINENO" "struct stat" "st_blocks" "ac_cv_member_struct_stat_st_blocks" "$ac_includes_default" +if test "x$ac_cv_member_struct_stat_st_blocks" = xyes; then : cat >>confdefs.h <<_ACEOF -#define SIZEOF_WCHAR_T $ac_cv_sizeof_wchar_t +#define HAVE_STRUCT_STAT_ST_BLOCKS 1 _ACEOF fi -# check whether wchar_t is signed or not -if test "$wchar_h" = yes -then - # check whether wchar_t is signed or not - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wchar_t is signed" >&5 -$as_echo_n "checking whether wchar_t is signed... " >&6; } -if ${ac_cv_wchar_t_signed+:} false; then : - $as_echo_n "(cached) " >&6 -else - - if test "$cross_compiling" = yes; then : - ac_cv_wchar_t_signed=yes -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +ac_fn_c_check_member "$LINENO" "struct passwd" "pw_gecos" "ac_cv_member_struct_passwd_pw_gecos" " + #include <sys/types.h> + #include <pwd.h> - #include <wchar.h> - int main() - { - /* Success: exit code 0 */ - return ((((wchar_t) -1) < ((wchar_t) 0)) ? 0 : 1); - } +" +if test "x$ac_cv_member_struct_passwd_pw_gecos" = xyes; then : +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_PASSWD_PW_GECOS 1 _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_wchar_t_signed=yes -else - ac_cv_wchar_t_signed=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_wchar_t_signed" >&5 -$as_echo "$ac_cv_wchar_t_signed" >&6; } -fi +ac_fn_c_check_member "$LINENO" "struct passwd" "pw_passwd" "ac_cv_member_struct_passwd_pw_passwd" " + #include <sys/types.h> + #include <pwd.h> + +" +if test "x$ac_cv_member_struct_passwd_pw_passwd" = xyes; then : -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wchar_t is usable" >&5 -$as_echo_n "checking whether wchar_t is usable... " >&6; } -# wchar_t is only usable if it maps to an unsigned type -if test "$ac_cv_sizeof_wchar_t" -ge 2 \ - -a "$ac_cv_wchar_t_signed" = "no" -then +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_PASSWD_PW_PASSWD 1 +_ACEOF -$as_echo "#define HAVE_USABLE_WCHAR_T 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } fi -case $ac_sys_system/$ac_sys_release in -SunOS/*) - if test -f /etc/os-release; then - OS_NAME=$(awk -F= '/^NAME=/ {print substr($2,2,length($2)-2)}' /etc/os-release) - if test "x$OS_NAME" = "xOracle Solaris"; then - # bpo-43667: In Oracle Solaris, the internal form of wchar_t in - # non-Unicode locales is not Unicode and hence cannot be used directly. - # https://docs.oracle.com/cd/E37838_01/html/E61053/gmwke.html +# Issue #21085: In Cygwin, siginfo_t does not have si_band field. +ac_fn_c_check_member "$LINENO" "siginfo_t" "si_band" "ac_cv_member_siginfo_t_si_band" "#include <signal.h> +" +if test "x$ac_cv_member_siginfo_t_si_band" = xyes; then : -$as_echo "#define HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION 1" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define HAVE_SIGINFO_T_SI_BAND 1 +_ACEOF - fi - fi - ;; -esac -# check for endianness - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 -$as_echo_n "checking whether byte ordering is bigendian... " >&6; } -if ${ac_cv_c_bigendian+:} false; then : +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for time.h that defines altzone" >&5 +$as_echo_n "checking for time.h that defines altzone... " >&6; } +if ${ac_cv_header_time_altzone+:} false; then : $as_echo_n "(cached) " >&6 else - ac_cv_c_bigendian=unknown - # See if we're dealing with a universal compiler. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifndef __APPLE_CC__ - not a universal capable compiler - #endif - typedef int dummy; + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <time.h> +int +main () +{ +return altzone; + ; + return 0; +} _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - - # Check for potential -arch flags. It is not universal unless - # there are at least two -arch flags with different values. - ac_arch= - ac_prev= - for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do - if test -n "$ac_prev"; then - case $ac_word in - i?86 | x86_64 | ppc | ppc64) - if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then - ac_arch=$ac_word - else - ac_cv_c_bigendian=universal - break - fi - ;; - esac - ac_prev= - elif test "x$ac_word" = "x-arch"; then - ac_prev=arch - fi - done + ac_cv_header_time_altzone=yes +else + ac_cv_header_time_altzone=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test $ac_cv_c_bigendian = unknown; then - # See if sys/param.h defines the BYTE_ORDER macro. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <sys/types.h> - #include <sys/param.h> +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time_altzone" >&5 +$as_echo "$ac_cv_header_time_altzone" >&6; } +if test $ac_cv_header_time_altzone = yes; then + +$as_echo "#define HAVE_ALTZONE 1" >>confdefs.h + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for addrinfo" >&5 +$as_echo_n "checking for addrinfo... " >&6; } +if ${ac_cv_struct_addrinfo+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <netdb.h> int main () { -#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ - && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ - && LITTLE_ENDIAN) - bogus endian macros - #endif - +struct addrinfo a ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_cv_struct_addrinfo=yes +else + ac_cv_struct_addrinfo=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_addrinfo" >&5 +$as_echo "$ac_cv_struct_addrinfo" >&6; } +if test $ac_cv_struct_addrinfo = yes; then + +$as_echo "#define HAVE_ADDRINFO 1" >>confdefs.h + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sockaddr_storage" >&5 +$as_echo_n "checking for sockaddr_storage... " >&6; } +if ${ac_cv_struct_sockaddr_storage+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <sys/types.h> - #include <sys/param.h> +# include <sys/types.h> +# include <sys/socket.h> int main () { -#if BYTE_ORDER != BIG_ENDIAN - not big endian - #endif - +struct sockaddr_storage s ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes + ac_cv_struct_sockaddr_storage=yes else - ac_cv_c_bigendian=no + ac_cv_struct_sockaddr_storage=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_sockaddr_storage" >&5 +$as_echo "$ac_cv_struct_sockaddr_storage" >&6; } +if test $ac_cv_struct_sockaddr_storage = yes; then + +$as_echo "#define HAVE_SOCKADDR_STORAGE 1" >>confdefs.h + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sockaddr_alg" >&5 +$as_echo_n "checking for sockaddr_alg... " >&6; } +if ${ac_cv_struct_sockaddr_alg+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <limits.h> +# include <sys/types.h> +# include <sys/socket.h> +# include <linux/if_alg.h> int main () { -#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) - bogus endian macros - #endif - +struct sockaddr_alg s ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to _BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_cv_struct_sockaddr_alg=yes +else + ac_cv_struct_sockaddr_alg=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_sockaddr_alg" >&5 +$as_echo "$ac_cv_struct_sockaddr_alg" >&6; } +if test $ac_cv_struct_sockaddr_alg = yes; then + +$as_echo "#define HAVE_SOCKADDR_ALG 1" >>confdefs.h + +fi + +# checks for compiler characteristics + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 +$as_echo_n "checking for an ANSI C-conforming const... " >&6; } +if ${ac_cv_c_const+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <limits.h> int main () { -#ifndef _BIG_ENDIAN - not big endian - #endif + +#ifndef __cplusplus + /* Ultrix mips cc rejects this sort of thing. */ + typedef int charset[2]; + const charset cs = { 0, 0 }; + /* SunOS 4.1.1 cc rejects this. */ + char const *const *pcpcc; + char **ppc; + /* NEC SVR4.0.2 mips cc rejects this. */ + struct point {int x, y;}; + static struct point const zero = {0,0}; + /* AIX XL C 1.02.0.0 rejects this. + It does not let you subtract one const X* pointer from another in + an arm of an if-expression whose if-part is not a constant + expression */ + const char *g = "string"; + pcpcc = &g + (g ? g-g : 0); + /* HPUX 7.0 cc rejects these. */ + ++pcpcc; + ppc = (char**) pcpcc; + pcpcc = (char const *const *) ppc; + { /* SCO 3.2v4 cc rejects this sort of thing. */ + char tx; + char *t = &tx; + char const *s = 0 ? (char *) 0 : (char const *) 0; + + *t++ = 0; + if (s) return 0; + } + { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ + int x[] = {25, 17}; + const int *foo = &x[0]; + ++foo; + } + { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ + typedef const int *iptr; + iptr p = 0; + ++p; + } + { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying + "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ + struct s { int j; const int *ap[3]; } bx; + struct s *b = &bx; b->j = 5; + } + { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ + const int foo = 10; + if (!foo) return 0; + } + return !cs[0] && !zero.x; +#endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes + ac_cv_c_const=yes else - ac_cv_c_bigendian=no + ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # Compile a test program. - if test "$cross_compiling" = yes; then : - # Try to guess by grepping values from an object file. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 +$as_echo "$ac_cv_c_const" >&6; } +if test $ac_cv_c_const = no; then + +$as_echo "#define const /**/" >>confdefs.h + +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working signed char" >&5 +$as_echo_n "checking for working signed char... " >&6; } +if ${ac_cv_working_signed_char_c+:} false; then : + $as_echo_n "(cached) " >&6 +else + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -short int ascii_mm[] = - { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; - short int ascii_ii[] = - { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; - int use_ascii (int i) { - return ascii_mm[i] + ascii_ii[i]; - } - short int ebcdic_ii[] = - { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; - short int ebcdic_mm[] = - { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; - int use_ebcdic (int i) { - return ebcdic_mm[i] + ebcdic_ii[i]; - } - extern int foo; int main () { -return use_ascii (foo) == use_ebcdic (foo); +signed char c; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then - ac_cv_c_bigendian=yes - fi - if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then - if test "$ac_cv_c_bigendian" = unknown; then - ac_cv_c_bigendian=no - else - # finding both strings is unlikely to happen, but who knows? - ac_cv_c_bigendian=unknown - fi - fi + ac_cv_working_signed_char_c=yes +else + ac_cv_working_signed_char_c=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_signed_char_c" >&5 +$as_echo "$ac_cv_working_signed_char_c" >&6; } +if test "x$ac_cv_working_signed_char_c" = xno; then : + + +$as_echo "#define signed /**/" >>confdefs.h + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for prototypes" >&5 +$as_echo_n "checking for prototypes... " >&6; } +if ${ac_cv_function_prototypes+:} false; then : + $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -$ac_includes_default +int foo(int x) { return 0; } int main () { - - /* Are we little or big endian? From Harbison&Steele. */ - union - { - long int l; - char c[sizeof (long int)]; - } u; - u.l = 1; - return u.c[sizeof (long int) - 1] == 1; - +return foo(10); ; return 0; } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_c_bigendian=no +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_function_prototypes=yes else - ac_cv_c_bigendian=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_cv_function_prototypes=no fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 -$as_echo "$ac_cv_c_bigendian" >&6; } - case $ac_cv_c_bigendian in #( - yes) - $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h -;; #( - no) - ;; #( - universal) - -$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h - - ;; #( - *) - as_fn_error $? "unknown endianness - presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; - esac - - -# ABI version string for Python extension modules. This appears between the -# periods in shared library file names, e.g. foo.<SOABI>.so. It is calculated -# from the following attributes which affect the ABI of this Python build (in -# this order): -# -# * The Python implementation (always 'cpython-' for us) -# * The major and minor version numbers -# * --with-pydebug (adds a 'd') -# -# Thus for example, Python 3.2 built with wide unicode, pydebug, and pymalloc, -# would get a shared library ABI version tag of 'cpython-32dmu' and shared -# libraries would be named 'foo.cpython-32dmu.so'. -# -# In Python 3.2 and older, --with-wide-unicode added a 'u' flag. -# In Python 3.7 and older, --with-pymalloc added a 'm' flag. - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking ABIFLAGS" >&5 -$as_echo_n "checking ABIFLAGS... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ABIFLAGS" >&5 -$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} -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $SOABI" >&5 -$as_echo "$SOABI" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_function_prototypes" >&5 +$as_echo "$ac_cv_function_prototypes" >&6; } +if test "x$ac_cv_function_prototypes" = xyes; then : -# 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 - ALT_SOABI='cpython-'`echo $VERSION | tr -d .``echo $ABIFLAGS | tr -d d`${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET} +$as_echo "#define HAVE_PROTOTYPES 1" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define ALT_SOABI "${ALT_SOABI}" -_ACEOF fi -EXT_SUFFIX=.${SOABI}${SHLIB_SUFFIX} +# check for socketpair -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking LDVERSION" >&5 -$as_echo_n "checking LDVERSION... " >&6; } -LDVERSION='$(VERSION)$(ABIFLAGS)' -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LDVERSION" >&5 -$as_echo "$LDVERSION" >&6; } -# On Android and Cygwin the shared libraries must be linked with libpython. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socketpair" >&5 +$as_echo_n "checking for socketpair... " >&6; } +if ${ac_cv_func_socketpair+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -if test -n "$ANDROID_API_LEVEL" -o "$MACHDEP" = "cygwin"; then - LIBPYTHON="-lpython${VERSION}${ABIFLAGS}" +#include <sys/types.h> +#include <sys/socket.h> + +int +main () +{ +void *x=socketpair + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_socketpair=yes else - LIBPYTHON='' + ac_cv_func_socketpair=no fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_socketpair" >&5 +$as_echo "$ac_cv_func_socketpair" >&6; } + if test "x$ac_cv_func_socketpair" = xyes; then : +$as_echo "#define HAVE_SOCKETPAIR 1" >>confdefs.h -BINLIBDEST='$(LIBDIR)/python$(VERSION)' +fi -# Check for --with-platlibdir -# /usr/$LIDIRNAME/python$VERSION -PLATLIBDIR="lib" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-platlibdir" >&5 -$as_echo_n "checking for --with-platlibdir... " >&6; } -# Check whether --with-platlibdir was given. -if test "${with_platlibdir+set}" = set; then : - withval=$with_platlibdir; -# ignore 3 options: -# --with-platlibdir -# --with-platlibdir= -# --without-platlibdir -if test -n "$withval" -a "$withval" != yes -a "$withval" != no -then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - PLATLIBDIR="$withval" - BINLIBDEST='${exec_prefix}/${PLATLIBDIR}/python$(VERSION)' +# check if sockaddr has sa_len member +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if sockaddr has sa_len member" >&5 +$as_echo_n "checking if sockaddr has sa_len member... " >&6; } +if ${ac_cv_struct_sockaddr_sa_len+:} false; then : + $as_echo_n "(cached) " >&6 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/types.h> +#include <sys/socket.h> +int +main () +{ +struct sockaddr x; +x.sa_len = 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_struct_sockaddr_sa_len=yes else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + ac_cv_struct_sockaddr_sa_len=no fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_sockaddr_sa_len" >&5 +$as_echo "$ac_cv_struct_sockaddr_sa_len" >&6; } +if test "x$ac_cv_struct_sockaddr_sa_len" = xyes; then : - -if test x$PLATFORM_TRIPLET = x; then - LIBPL='$(prefix)'"/${PLATLIBDIR}/python${VERSION}/config-${LDVERSION}" -else - LIBPL='$(prefix)'"/${PLATLIBDIR}/python${VERSION}/config-${LDVERSION}-${PLATFORM_TRIPLET}" -fi +$as_echo "#define HAVE_SOCKADDR_SA_LEN 1" >>confdefs.h -# Check for --with-wheel-pkg-dir=PATH +fi -WHEEL_PKG_DIR="" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-wheel-pkg-dir" >&5 -$as_echo_n "checking for --with-wheel-pkg-dir... " >&6; } +# sigh -- gethostbyname_r is a mess; it can have 3, 5 or 6 arguments :-( -# Check whether --with-wheel-pkg-dir was given. -if test "${with_wheel_pkg_dir+set}" = set; then : - withval=$with_wheel_pkg_dir; -if test -n "$withval"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - WHEEL_PKG_DIR="$withval" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi +ac_fn_c_check_func "$LINENO" "gethostbyname_r" "ac_cv_func_gethostbyname_r" +if test "x$ac_cv_func_gethostbyname_r" = xyes; then : -# Check whether right shifting a negative integer extends the sign bit -# or fills with zeros (like the Cray J90, according to Tim Peters). -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether right shift extends the sign bit" >&5 -$as_echo_n "checking whether right shift extends the sign bit... " >&6; } -if ${ac_cv_rshift_extends_sign+:} false; then : - $as_echo_n "(cached) " >&6 -else + $as_echo "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h -if test "$cross_compiling" = yes; then : - ac_cv_rshift_extends_sign=yes -else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking gethostbyname_r with 6 args" >&5 +$as_echo_n "checking gethostbyname_r with 6 args... " >&6; } + OLD_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS $MY_CPPFLAGS $MY_THREAD_CPPFLAGS $MY_CFLAGS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() +# include <netdb.h> + +int +main () { - return (((-1)>>3 == -1) ? 0 : 1); -} + char *name; + struct hostent *he, *res; + char buffer[2048]; + int buflen = 2048; + int h_errnop; + + (void) gethostbyname_r(name, he, buffer, buflen, &res, &h_errnop) + + ; + return 0; +} _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_rshift_extends_sign=yes -else - ac_cv_rshift_extends_sign=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi +if ac_fn_c_try_compile "$LINENO"; then : -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_rshift_extends_sign" >&5 -$as_echo "$ac_cv_rshift_extends_sign" >&6; } -if test "$ac_cv_rshift_extends_sign" = no -then + $as_echo "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h -$as_echo "#define SIGNED_RIGHT_SHIFT_ZERO_FILLS 1" >>confdefs.h -fi +$as_echo "#define HAVE_GETHOSTBYNAME_R_6_ARG 1" >>confdefs.h + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -# check for getc_unlocked and related locking functions -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getc_unlocked() and friends" >&5 -$as_echo_n "checking for getc_unlocked() and friends... " >&6; } -if ${ac_cv_have_getc_unlocked+:} false; then : - $as_echo_n "(cached) " >&6 else -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking gethostbyname_r with 5 args" >&5 +$as_echo_n "checking gethostbyname_r with 5 args... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <stdio.h> + +# include <netdb.h> + int main () { - FILE *f = fopen("/dev/null", "r"); - flockfile(f); - getc_unlocked(f); - funlockfile(f); + char *name; + struct hostent *he; + char buffer[2048]; + int buflen = 2048; + int h_errnop; + + (void) gethostbyname_r(name, he, buffer, buflen, &h_errnop) ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_have_getc_unlocked=yes -else - ac_cv_have_getc_unlocked=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_getc_unlocked" >&5 -$as_echo "$ac_cv_have_getc_unlocked" >&6; } -if test "$ac_cv_have_getc_unlocked" = yes -then +if ac_fn_c_try_compile "$LINENO"; then : -$as_echo "#define HAVE_GETC_UNLOCKED 1" >>confdefs.h + $as_echo "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h -fi +$as_echo "#define HAVE_GETHOSTBYNAME_R_5_ARG 1" >>confdefs.h + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking gethostbyname_r with 3 args" >&5 +$as_echo_n "checking gethostbyname_r with 3 args... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +# include <netdb.h> +int +main () +{ -# Check whether --with-readline was given. -if test "${with_readline+set}" = set; then : - withval=$with_readline; - case $with_readline in #( - editline|edit) : - with_readline=edit ;; #( - yes|readline) : - with_readline=readline ;; #( - no) : - ;; #( - *) : - as_fn_error $? "proper usage is --with(out)-readline[=editline|readline|no]" "$LINENO" 5 - ;; -esac + char *name; + struct hostent *he; + struct hostent_data data; -else - with_readline=readline + (void) gethostbyname_r(name, he, &data); -fi + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + $as_echo "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h -if test "x$with_readline" = xreadline; then : +$as_echo "#define HAVE_GETHOSTBYNAME_R_3_ARG 1" >>confdefs.h -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBREADLINE" >&5 -$as_echo_n "checking for LIBREADLINE... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -if test -n "$LIBREADLINE_CFLAGS"; then - pkg_cv_LIBREADLINE_CFLAGS="$LIBREADLINE_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"readline\""; } >&5 - ($PKG_CONFIG --exists --print-errors "readline") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_LIBREADLINE_CFLAGS=`$PKG_CONFIG --cflags "readline" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes else - pkg_failed=yes + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi - else - pkg_failed=untried +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi -if test -n "$LIBREADLINE_LIBS"; then - pkg_cv_LIBREADLINE_LIBS="$LIBREADLINE_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"readline\""; } >&5 - ($PKG_CONFIG --exists --print-errors "readline") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_LIBREADLINE_LIBS=`$PKG_CONFIG --libs "readline" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$OLD_CFLAGS + else - pkg_failed=yes + + for ac_func in gethostbyname +do : + ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" +if test "x$ac_cv_func_gethostbyname" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GETHOSTBYNAME 1 +_ACEOF + fi - else - pkg_failed=untried +done + + fi -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - LIBREADLINE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "readline" 2>&1` - else - LIBREADLINE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "readline" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$LIBREADLINE_PKG_ERRORS" >&5 - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS +# checks for system services +# (none yet) - CPPFLAGS="$CPPFLAGS $LIBREADLINE_CFLAGS" - LDFLAGS="$LDFLAGS $LIBREADLINE_LIBS" - for ac_header in readline/readline.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "readline/readline.h" "ac_cv_header_readline_readline_h" "$ac_includes_default" -if test "x$ac_cv_header_readline_readline_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_READLINE_READLINE_H 1 -_ACEOF +# Linux requires this for correct f.p. operations +ac_fn_c_check_func "$LINENO" "__fpu_control" "ac_cv_func___fpu_control" +if test "x$ac_cv_func___fpu_control" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for readline in -lreadline" >&5 -$as_echo_n "checking for readline in -lreadline... " >&6; } -if ${ac_cv_lib_readline_readline+:} false; then : +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __fpu_control in -lieee" >&5 +$as_echo_n "checking for __fpu_control in -lieee... " >&6; } +if ${ac_cv_lib_ieee___fpu_control+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lreadline $LIBS" +LIBS="-lieee $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -21932,1129 +18674,1214 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char readline (); +char __fpu_control (); int main () { -return readline (); +return __fpu_control (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_readline_readline=yes + ac_cv_lib_ieee___fpu_control=yes else - ac_cv_lib_readline_readline=no + ac_cv_lib_ieee___fpu_control=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_readline" >&5 -$as_echo "$ac_cv_lib_readline_readline" >&6; } -if test "x$ac_cv_lib_readline_readline" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ieee___fpu_control" >&5 +$as_echo "$ac_cv_lib_ieee___fpu_control" >&6; } +if test "x$ac_cv_lib_ieee___fpu_control" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBIEEE 1 +_ACEOF + + LIBS="-lieee $LIBS" + +fi + + +fi + + +# check for --with-libm=... - LIBREADLINE=readline - READLINE_CFLAGS=${LIBREADLINE_CFLAGS-""} - READLINE_LIBS=${LIBREADLINE_LIBS-"-lreadline"} +case $ac_sys_system in +Darwin) ;; +*) LIBM=-lm +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-libm=STRING" >&5 +$as_echo_n "checking for --with-libm=STRING... " >&6; } -else - with_readline=no +# Check whether --with-libm was given. +if test "${with_libm+set}" = set; then : + withval=$with_libm; +if test "$withval" = no +then LIBM= + { $as_echo "$as_me:${as_lineno-$LINENO}: result: force LIBM empty" >&5 +$as_echo "force LIBM empty" >&6; } +elif test "$withval" != yes +then LIBM=$withval + { $as_echo "$as_me:${as_lineno-$LINENO}: result: set LIBM=\"$withval\"" >&5 +$as_echo "set LIBM=\"$withval\"" >&6; } +else as_fn_error $? "proper usage is --with-libm=STRING" "$LINENO" 5 fi - - else - with_readline=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: default LIBM=\"$LIBM\"" >&5 +$as_echo "default LIBM=\"$LIBM\"" >&6; } fi -done - - -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS +# check for --with-libc=... +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-libc=STRING" >&5 +$as_echo_n "checking for --with-libc=STRING... " >&6; } -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +# Check whether --with-libc was given. +if test "${with_libc+set}" = set; then : + withval=$with_libc; +if test "$withval" = no +then LIBC= + { $as_echo "$as_me:${as_lineno-$LINENO}: result: force LIBC empty" >&5 +$as_echo "force LIBC empty" >&6; } +elif test "$withval" != yes +then LIBC=$withval + { $as_echo "$as_me:${as_lineno-$LINENO}: result: set LIBC=\"$withval\"" >&5 +$as_echo "set LIBC=\"$withval\"" >&6; } +else as_fn_error $? "proper usage is --with-libc=STRING" "$LINENO" 5 +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: default LIBC=\"$LIBC\"" >&5 +$as_echo "default LIBC=\"$LIBC\"" >&6; } +fi - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS +# ************************************** +# * Check for gcc x64 inline assembler * +# ************************************** - CPPFLAGS="$CPPFLAGS $LIBREADLINE_CFLAGS" - LDFLAGS="$LDFLAGS $LIBREADLINE_LIBS" - for ac_header in readline/readline.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "readline/readline.h" "ac_cv_header_readline_readline_h" "$ac_includes_default" -if test "x$ac_cv_header_readline_readline_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_READLINE_READLINE_H 1 -_ACEOF - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for readline in -lreadline" >&5 -$as_echo_n "checking for readline in -lreadline... " >&6; } -if ${ac_cv_lib_readline_readline+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for x64 gcc inline assembler" >&5 +$as_echo_n "checking for x64 gcc inline assembler... " >&6; } +if ${ac_cv_gcc_asm_for_x64+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lreadline $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char readline (); int main () { -return readline (); + + __asm__ __volatile__ ("movq %rcx, %rax"); + ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_readline_readline=yes + ac_cv_gcc_asm_for_x64=yes else - ac_cv_lib_readline_readline=no + ac_cv_gcc_asm_for_x64=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_readline" >&5 -$as_echo "$ac_cv_lib_readline_readline" >&6; } -if test "x$ac_cv_lib_readline_readline" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gcc_asm_for_x64" >&5 +$as_echo "$ac_cv_gcc_asm_for_x64" >&6; } + +if test "x$ac_cv_gcc_asm_for_x64" = xyes; then : + + +$as_echo "#define HAVE_GCC_ASM_FOR_X64 1" >>confdefs.h - LIBREADLINE=readline - READLINE_CFLAGS=${LIBREADLINE_CFLAGS-""} - READLINE_LIBS=${LIBREADLINE_LIBS-"-lreadline"} -else - with_readline=no fi +# ************************************************** +# * Check for various properties of floating point * +# ************************************************** +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether float word ordering is bigendian" >&5 +$as_echo_n "checking whether float word ordering is bigendian... " >&6; } +if ${ax_cv_c_float_words_bigendian+:} false; then : + $as_echo_n "(cached) " >&6 else - with_readline=no -fi -done +ax_cv_c_float_words_bigendian=unknown +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS +double d = 90904234967036810337470478905505011476211692735615632014797120844053488865816695273723469097858056257517020191247487429516932130503560650002327564517570778480236724525140520121371739201496540132640109977779420565776568942592.0; -else - LIBREADLINE_CFLAGS=$pkg_cv_LIBREADLINE_CFLAGS - LIBREADLINE_LIBS=$pkg_cv_LIBREADLINE_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : - LIBREADLINE=readline - READLINE_CFLAGS=$LIBREADLINE_CFLAGS - READLINE_LIBS=$LIBREADLINE_LIBS +if grep noonsees conftest.$ac_objext >/dev/null ; then + ax_cv_c_float_words_bigendian=yes fi +if grep seesnoon conftest.$ac_objext >/dev/null ; then + if test "$ax_cv_c_float_words_bigendian" = unknown; then + ax_cv_c_float_words_bigendian=no + else + ax_cv_c_float_words_bigendian=unknown + fi +fi + fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_c_float_words_bigendian" >&5 +$as_echo "$ax_cv_c_float_words_bigendian" >&6; } + +case $ax_cv_c_float_words_bigendian in + yes) + +$as_echo "#define FLOAT_WORDS_BIGENDIAN 1" >>confdefs.h + ;; + no) + ;; + *) + as_fn_error $? " -if test "x$with_readline" = xedit; then : +Unknown float word ordering. You need to manually preset +ax_cv_c_float_words_bigendian=no (or yes) according to your system. + " "$LINENO" 5 ;; +esac -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBEDIT" >&5 -$as_echo_n "checking for LIBEDIT... " >&6; } -if test -n "$LIBEDIT_CFLAGS"; then - pkg_cv_LIBEDIT_CFLAGS="$LIBEDIT_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libedit\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libedit") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_LIBEDIT_CFLAGS=`$PKG_CONFIG --cflags "libedit" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$LIBEDIT_LIBS"; then - pkg_cv_LIBEDIT_LIBS="$LIBEDIT_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libedit\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libedit") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_LIBEDIT_LIBS=`$PKG_CONFIG --libs "libedit" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi +if test "$ax_cv_c_float_words_bigendian" = "yes" +then +$as_echo "#define DOUBLE_IS_BIG_ENDIAN_IEEE754 1" >>confdefs.h +elif test "$ax_cv_c_float_words_bigendian" = "no" +then -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +$as_echo "#define DOUBLE_IS_LITTLE_ENDIAN_IEEE754 1" >>confdefs.h -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - LIBEDIT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libedit" 2>&1` - else - LIBEDIT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libedit" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$LIBEDIT_PKG_ERRORS" >&5 + # Some ARM platforms use a mixed-endian representation for doubles. + # While Python doesn't currently have full support for these platforms + # (see e.g., issue 1762561), we can at least make sure that float <-> string + # conversions work. + # FLOAT_WORDS_BIGENDIAN doesnt actually detect this case, but if it's not big + # or little, then it must be this? +$as_echo "#define DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 1" >>confdefs.h - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS +fi +# The short float repr introduced in Python 3.1 requires the +# correctly-rounded string <-> double conversion functions from +# Python/dtoa.c, which in turn require that the FPU uses 53-bit +# rounding; this is a problem on x86, where the x87 FPU has a default +# rounding precision of 64 bits. For gcc/x86, we can fix this by +# using inline assembler to get and set the x87 FPU control word. - CPPFLAGS="$CPPFLAGS $LIBEDIT_CFLAGS" - LDFLAGS="$LDFLAGS $LIBEDIT_LIBS" - for ac_header in editline/readline.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "editline/readline.h" "ac_cv_header_editline_readline_h" "$ac_includes_default" -if test "x$ac_cv_header_editline_readline_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_EDITLINE_READLINE_H 1 -_ACEOF +# This inline assembler syntax may also work for suncc and icc, +# so we try it on all platforms. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for readline in -ledit" >&5 -$as_echo_n "checking for readline in -ledit... " >&6; } -if ${ac_cv_lib_edit_readline+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can use gcc inline assembler to get and set x87 control word" >&5 +$as_echo_n "checking whether we can use gcc inline assembler to get and set x87 control word... " >&6; } +if ${ac_cv_gcc_asm_for_x87+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ledit $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char readline (); int main () { -return readline (); + + unsigned short cw; + __asm__ __volatile__ ("fnstcw %0" : "=m" (cw)); + __asm__ __volatile__ ("fldcw %0" : : "m" (cw)); + ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_edit_readline=yes + ac_cv_gcc_asm_for_x87=yes else - ac_cv_lib_edit_readline=no + ac_cv_gcc_asm_for_x87=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_edit_readline" >&5 -$as_echo "$ac_cv_lib_edit_readline" >&6; } -if test "x$ac_cv_lib_edit_readline" = xyes; then : - - LIBREADLINE=edit - $as_echo "#define WITH_EDITLINE 1" >>confdefs.h - - READLINE_CFLAGS=${LIBEDIT_CFLAGS-""} - READLINE_LIBS=${LIBEDIT_LIBS-"-ledit"} - -else - with_readline=no -fi - -else - with_readline=no fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gcc_asm_for_x87" >&5 +$as_echo "$ac_cv_gcc_asm_for_x87" >&6; } +if test "x$ac_cv_gcc_asm_for_x87" = xyes; then : -done - - -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS - - - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS +$as_echo "#define HAVE_GCC_ASM_FOR_X87 1" >>confdefs.h - CPPFLAGS="$CPPFLAGS $LIBEDIT_CFLAGS" - LDFLAGS="$LDFLAGS $LIBEDIT_LIBS" - for ac_header in editline/readline.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "editline/readline.h" "ac_cv_header_editline_readline_h" "$ac_includes_default" -if test "x$ac_cv_header_editline_readline_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_EDITLINE_READLINE_H 1 -_ACEOF +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for readline in -ledit" >&5 -$as_echo_n "checking for readline in -ledit... " >&6; } -if ${ac_cv_lib_edit_readline+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can use gcc inline assembler to get and set mc68881 fpcr" >&5 +$as_echo_n "checking whether we can use gcc inline assembler to get and set mc68881 fpcr... " >&6; } +if ${ac_cv_gcc_asm_for_mc68881+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ledit $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char readline (); int main () { -return readline (); + + unsigned int fpcr; + __asm__ __volatile__ ("fmove.l %%fpcr,%0" : "=g" (fpcr)); + __asm__ __volatile__ ("fmove.l %0,%%fpcr" : : "g" (fpcr)); + ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_edit_readline=yes + ac_cv_gcc_asm_for_mc68881=yes else - ac_cv_lib_edit_readline=no + ac_cv_gcc_asm_for_mc68881=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_edit_readline" >&5 -$as_echo "$ac_cv_lib_edit_readline" >&6; } -if test "x$ac_cv_lib_edit_readline" = xyes; then : - - LIBREADLINE=edit - $as_echo "#define WITH_EDITLINE 1" >>confdefs.h - READLINE_CFLAGS=${LIBEDIT_CFLAGS-""} - READLINE_LIBS=${LIBEDIT_LIBS-"-ledit"} - -else - with_readline=no -fi - - -else - with_readline=no fi - -done +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gcc_asm_for_mc68881" >&5 +$as_echo "$ac_cv_gcc_asm_for_mc68881" >&6; } +if test "x$ac_cv_gcc_asm_for_mc68881" = xyes; then : -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS +$as_echo "#define HAVE_GCC_ASM_FOR_MC68881 1" >>confdefs.h +fi +# Detect whether system arithmetic is subject to x87-style double +# rounding issues. The result of this test has little meaning on non +# IEEE 754 platforms. On IEEE 754, test should return 1 if rounding +# mode is round-to-nearest and double rounding issues are present, and +# 0 otherwise. See http://bugs.python.org/issue2937 for more info. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for x87-style double rounding" >&5 +$as_echo_n "checking for x87-style double rounding... " >&6; } +if ${ac_cv_x87_double_rounding+:} false; then : + $as_echo_n "(cached) " >&6 else - LIBEDIT_CFLAGS=$pkg_cv_LIBEDIT_CFLAGS - LIBEDIT_LIBS=$pkg_cv_LIBEDIT_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - $as_echo "#define WITH_EDITLINE 1" >>confdefs.h +# $BASECFLAGS may affect the result +ac_save_cc="$CC" +CC="$CC $BASECFLAGS" +if test "$cross_compiling" = yes; then : + ac_cv_x87_double_rounding=no +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - LIBREADLINE=edit - READLINE_CFLAGS=$LIBEDIT_CFLAGS - READLINE_LIBS=$LIBEDIT_LIBS +#include <stdlib.h> +#include <math.h> +int main() { + volatile double x, y, z; + /* 1./(1-2**-53) -> 1+2**-52 (correct), 1.0 (double rounding) */ + x = 0.99999999999999989; /* 1-2**-53 */ + y = 1./x; + if (y != 1.) + exit(0); + /* 1e16+2.99999 -> 1e16+2. (correct), 1e16+4. (double rounding) */ + x = 1e16; + y = 2.99999; + z = x + y; + if (z != 1e16+4.) + exit(0); + /* both tests show evidence of double rounding */ + exit(1); +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_x87_double_rounding=no +else + ac_cv_x87_double_rounding=yes fi - +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi -READLINE_CFLAGS=$(echo $READLINE_CFLAGS | sed 's/-D_XOPEN_SOURCE=600//g') - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link readline" >&5 -$as_echo_n "checking how to link readline... " >&6; } -if test "x$with_readline" = xno; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_readline (CFLAGS: $READLINE_CFLAGS, LIBS: $READLINE_LIBS)" >&5 -$as_echo "$with_readline (CFLAGS: $READLINE_CFLAGS, LIBS: $READLINE_LIBS)" >&6; } - - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS - - - CPPFLAGS="$CPPFLAGS $READLINE_CFLAGS" - LIBS="$READLINE_LIBS $LIBS" - LIBS_SAVE=$LIBS - - +CC="$ac_save_cc" - # check for readline 2.2 - ac_fn_c_check_decl "$LINENO" "rl_completion_append_character" "ac_cv_have_decl_rl_completion_append_character" " - #include <stdio.h> /* Must be first for Gnu Readline */ - #ifdef WITH_EDITLINE - # include <editline/readline.h> - #else - # include <readline/readline.h> - # include <readline/history.h> - #endif +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_x87_double_rounding" >&5 +$as_echo "$ac_cv_x87_double_rounding" >&6; } -" -if test "x$ac_cv_have_decl_rl_completion_append_character" = xyes; then : +if test "x$ac_cv_x87_double_rounding" = xyes; then : -$as_echo "#define HAVE_RL_COMPLETION_APPEND_CHARACTER 1" >>confdefs.h +$as_echo "#define X87_DOUBLE_ROUNDING 1" >>confdefs.h fi +# ************************************ +# * Check for mathematical functions * +# ************************************ - ac_fn_c_check_decl "$LINENO" "rl_completion_suppress_append" "ac_cv_have_decl_rl_completion_suppress_append" " - #include <stdio.h> /* Must be first for Gnu Readline */ - #ifdef WITH_EDITLINE - # include <editline/readline.h> - #else - # include <readline/readline.h> - # include <readline/history.h> - #endif - -" -if test "x$ac_cv_have_decl_rl_completion_suppress_append" = xyes; then : - +LIBS_SAVE=$LIBS +LIBS="$LIBS $LIBM" -$as_echo "#define HAVE_RL_COMPLETION_SUPPRESS_APPEND 1" >>confdefs.h +for ac_func in acosh asinh atanh erf erfc expm1 log1p log2 +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF +else + as_fn_error $? "Python requires C99 compatible libm" "$LINENO" 5 fi +done +LIBS=$LIBS_SAVE - # check for readline 4.0 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_pre_input_hook in -l$LIBREADLINE" >&5 -$as_echo_n "checking for rl_pre_input_hook in -l$LIBREADLINE... " >&6; } -if ${ac_cv_readline_rl_pre_input_hook+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether POSIX semaphores are enabled" >&5 +$as_echo_n "checking whether POSIX semaphores are enabled... " >&6; } +if ${ac_cv_posix_semaphores_enabled+:} false; then : $as_echo_n "(cached) " >&6 else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if test "$cross_compiling" = yes; then : + ac_cv_posix_semaphores_enabled=yes +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - #include <stdio.h> /* Must be first for Gnu Readline */ - #ifdef WITH_EDITLINE - # include <editline/readline.h> - #else - # include <readline/readline.h> - # include <readline/history.h> - #endif -int -main () -{ -void *x = rl_pre_input_hook - ; - return 0; -} + #include <unistd.h> + #include <fcntl.h> + #include <stdio.h> + #include <semaphore.h> + #include <sys/stat.h> + + int main(void) { + sem_t *a = sem_open("/autoconf", O_CREAT, S_IRUSR|S_IWUSR, 0); + if (a == SEM_FAILED) { + perror("sem_open"); + return 1; + } + sem_close(a); + sem_unlink("/autoconf"); + return 0; + } + + _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_readline_rl_pre_input_hook=yes +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_posix_semaphores_enabled=yes else - ac_cv_readline_rl_pre_input_hook=no - + ac_cv_posix_semaphores_enabled=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_readline_rl_pre_input_hook" >&5 -$as_echo "$ac_cv_readline_rl_pre_input_hook" >&6; } - if test "x$ac_cv_readline_rl_pre_input_hook" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_posix_semaphores_enabled" >&5 +$as_echo "$ac_cv_posix_semaphores_enabled" >&6; } +if test "x$ac_cv_posix_semaphores_enabled" = xno; then : -$as_echo "#define HAVE_RL_PRE_INPUT_HOOK 1" >>confdefs.h +$as_echo "#define POSIX_SEMAPHORES_NOT_ENABLED 1" >>confdefs.h fi - # also in 4.0 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_completion_display_matches_hook in -l$LIBREADLINE" >&5 -$as_echo_n "checking for rl_completion_display_matches_hook in -l$LIBREADLINE... " >&6; } -if ${ac_cv_readline_rl_completion_display_matches_hook+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken sem_getvalue" >&5 +$as_echo_n "checking for broken sem_getvalue... " >&6; } +if ${ac_cv_broken_sem_getvalue+:} false; then : $as_echo_n "(cached) " >&6 else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include <stdio.h> /* Must be first for Gnu Readline */ - #ifdef WITH_EDITLINE - # include <editline/readline.h> - #else - # include <readline/readline.h> - # include <readline/history.h> - #endif - -int -main () -{ -void *x = rl_completion_display_matches_hook - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_readline_rl_completion_display_matches_hook=yes + if test "$cross_compiling" = yes; then : + ac_cv_broken_sem_getvalue=yes else - ac_cv_readline_rl_completion_display_matches_hook=no - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_readline_rl_completion_display_matches_hook" >&5 -$as_echo "$ac_cv_readline_rl_completion_display_matches_hook" >&6; } - if test "x$ac_cv_readline_rl_completion_display_matches_hook" = xyes; then : - - -$as_echo "#define HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK 1" >>confdefs.h + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -fi + #include <unistd.h> + #include <fcntl.h> + #include <stdio.h> + #include <semaphore.h> + #include <sys/stat.h> - # also in 4.0, but not in editline - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_resize_terminal in -l$LIBREADLINE" >&5 -$as_echo_n "checking for rl_resize_terminal in -l$LIBREADLINE... " >&6; } -if ${ac_cv_readline_rl_resize_terminal+:} false; then : - $as_echo_n "(cached) " >&6 -else + int main(void){ + sem_t *a = sem_open("/autocftw", O_CREAT, S_IRUSR|S_IWUSR, 0); + int count; + int res; + if(a==SEM_FAILED){ + perror("sem_open"); + return 1; - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + } + res = sem_getvalue(a, &count); + sem_close(a); + sem_unlink("/autocftw"); + return res==-1 ? 1 : 0; + } - #include <stdio.h> /* Must be first for Gnu Readline */ - #ifdef WITH_EDITLINE - # include <editline/readline.h> - #else - # include <readline/readline.h> - # include <readline/history.h> - #endif -int -main () -{ -void *x = rl_resize_terminal - ; - return 0; -} _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_readline_rl_resize_terminal=yes +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_broken_sem_getvalue=no else - ac_cv_readline_rl_resize_terminal=no - + ac_cv_broken_sem_getvalue=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_readline_rl_resize_terminal" >&5 -$as_echo "$ac_cv_readline_rl_resize_terminal" >&6; } - if test "x$ac_cv_readline_rl_resize_terminal" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_sem_getvalue" >&5 +$as_echo "$ac_cv_broken_sem_getvalue" >&6; } +if test "x$ac_cv_broken_sem_getvalue" = xyes; then : -$as_echo "#define HAVE_RL_RESIZE_TERMINAL 1" >>confdefs.h +$as_echo "#define HAVE_BROKEN_SEM_GETVALUE 1" >>confdefs.h fi - # check for readline 4.2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_completion_matches in -l$LIBREADLINE" >&5 -$as_echo_n "checking for rl_completion_matches in -l$LIBREADLINE... " >&6; } -if ${ac_cv_readline_rl_completion_matches+:} false; then : - $as_echo_n "(cached) " >&6 +ac_fn_c_check_decl "$LINENO" "RTLD_LAZY" "ac_cv_have_decl_RTLD_LAZY" "#include <dlfcn.h> +" +if test "x$ac_cv_have_decl_RTLD_LAZY" = xyes; then : + ac_have_decl=1 else + ac_have_decl=0 +fi - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include <stdio.h> /* Must be first for Gnu Readline */ - #ifdef WITH_EDITLINE - # include <editline/readline.h> - #else - # include <readline/readline.h> - # include <readline/history.h> - #endif - -int -main () -{ -void *x = rl_completion_matches - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_RTLD_LAZY $ac_have_decl _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_readline_rl_completion_matches=yes +ac_fn_c_check_decl "$LINENO" "RTLD_NOW" "ac_cv_have_decl_RTLD_NOW" "#include <dlfcn.h> +" +if test "x$ac_cv_have_decl_RTLD_NOW" = xyes; then : + ac_have_decl=1 else - ac_cv_readline_rl_completion_matches=no - + ac_have_decl=0 fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_RTLD_NOW $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "RTLD_GLOBAL" "ac_cv_have_decl_RTLD_GLOBAL" "#include <dlfcn.h> +" +if test "x$ac_cv_have_decl_RTLD_GLOBAL" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_readline_rl_completion_matches" >&5 -$as_echo "$ac_cv_readline_rl_completion_matches" >&6; } - if test "x$ac_cv_readline_rl_completion_matches" = xyes; then : - - -$as_echo "#define HAVE_RL_COMPLETION_MATCHES 1" >>confdefs.h - +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_RTLD_GLOBAL $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "RTLD_LOCAL" "ac_cv_have_decl_RTLD_LOCAL" "#include <dlfcn.h> +" +if test "x$ac_cv_have_decl_RTLD_LOCAL" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi - # also in readline 4.2 - ac_fn_c_check_decl "$LINENO" "rl_catch_signals" "ac_cv_have_decl_rl_catch_signals" " - #include <stdio.h> /* Must be first for Gnu Readline */ - #ifdef WITH_EDITLINE - # include <editline/readline.h> - #else - # include <readline/readline.h> - # include <readline/history.h> - #endif - +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_RTLD_LOCAL $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "RTLD_NODELETE" "ac_cv_have_decl_RTLD_NODELETE" "#include <dlfcn.h> " -if test "x$ac_cv_have_decl_rl_catch_signals" = xyes; then : - - -$as_echo "#define HAVE_RL_CATCH_SIGNAL 1" >>confdefs.h - +if test "x$ac_cv_have_decl_RTLD_NODELETE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_RTLD_NODELETE $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "RTLD_NOLOAD" "ac_cv_have_decl_RTLD_NOLOAD" "#include <dlfcn.h> +" +if test "x$ac_cv_have_decl_RTLD_NOLOAD" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_RTLD_NOLOAD $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "RTLD_DEEPBIND" "ac_cv_have_decl_RTLD_DEEPBIND" "#include <dlfcn.h> +" +if test "x$ac_cv_have_decl_RTLD_DEEPBIND" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for append_history in -l$LIBREADLINE" >&5 -$as_echo_n "checking for append_history in -l$LIBREADLINE... " >&6; } -if ${ac_cv_readline_append_history+:} false; then : - $as_echo_n "(cached) " >&6 +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_RTLD_DEEPBIND $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "RTLD_MEMBER" "ac_cv_have_decl_RTLD_MEMBER" "#include <dlfcn.h> +" +if test "x$ac_cv_have_decl_RTLD_MEMBER" = xyes; then : + ac_have_decl=1 else + ac_have_decl=0 +fi - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_RTLD_MEMBER $ac_have_decl +_ACEOF - #include <stdio.h> /* Must be first for Gnu Readline */ - #ifdef WITH_EDITLINE - # include <editline/readline.h> - #else - # include <readline/readline.h> - # include <readline/history.h> - #endif -int -main () -{ -void *x = append_history - ; - return 0; -} +# determine what size digit to use for Python's longs +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking digit size for Python's longs" >&5 +$as_echo_n "checking digit size for Python's longs... " >&6; } +# Check whether --enable-big-digits was given. +if test "${enable_big_digits+set}" = set; then : + enableval=$enable_big_digits; case $enable_big_digits in +yes) + enable_big_digits=30 ;; +no) + enable_big_digits=15 ;; +15|30) + ;; +*) + as_fn_error $? "bad value $enable_big_digits for --enable-big-digits; value should be 15 or 30" "$LINENO" 5 ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_big_digits" >&5 +$as_echo "$enable_big_digits" >&6; } + +cat >>confdefs.h <<_ACEOF +#define PYLONG_BITS_IN_DIGIT $enable_big_digits _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_readline_append_history=yes -else - ac_cv_readline_append_history=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no value specified" >&5 +$as_echo "no value specified" >&6; } fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_readline_append_history" >&5 -$as_echo "$ac_cv_readline_append_history" >&6; } - if test "x$ac_cv_readline_append_history" = xyes; then : -$as_echo "#define HAVE_RL_APPEND_HISTORY 1" >>confdefs.h +# check for wchar.h +ac_fn_c_check_header_mongrel "$LINENO" "wchar.h" "ac_cv_header_wchar_h" "$ac_includes_default" +if test "x$ac_cv_header_wchar_h" = xyes; then : -fi +$as_echo "#define HAVE_WCHAR_H 1" >>confdefs.h + wchar_h="yes" +else + wchar_h="no" -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS +fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken nice()" >&5 -$as_echo_n "checking for broken nice()... " >&6; } -if ${ac_cv_broken_nice+:} false; then : +# determine wchar_t size +if test "$wchar_h" = yes +then + # The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of wchar_t" >&5 +$as_echo_n "checking size of wchar_t... " >&6; } +if ${ac_cv_sizeof_wchar_t+:} false; then : $as_echo_n "(cached) " >&6 else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (wchar_t))" "ac_cv_sizeof_wchar_t" "#include <wchar.h> +"; then : -if test "$cross_compiling" = yes; then : - ac_cv_broken_nice=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include <stdlib.h> -#include <unistd.h> -int main() -{ - int val1 = nice(1); - if (val1 != -1 && val1 == nice(2)) - exit(0); - exit(1); -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_broken_nice=yes else - ac_cv_broken_nice=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + if test "$ac_cv_type_wchar_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (wchar_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_wchar_t=0 + fi fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_nice" >&5 -$as_echo "$ac_cv_broken_nice" >&6; } -if test "$ac_cv_broken_nice" = yes -then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_wchar_t" >&5 +$as_echo "$ac_cv_sizeof_wchar_t" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_WCHAR_T $ac_cv_sizeof_wchar_t +_ACEOF -$as_echo "#define HAVE_BROKEN_NICE 1" >>confdefs.h fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken poll()" >&5 -$as_echo_n "checking for broken poll()... " >&6; } -if ${ac_cv_broken_poll+:} false; then : +# check whether wchar_t is signed or not +if test "$wchar_h" = yes +then + # check whether wchar_t is signed or not + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wchar_t is signed" >&5 +$as_echo_n "checking whether wchar_t is signed... " >&6; } +if ${ac_cv_wchar_t_signed+:} false; then : $as_echo_n "(cached) " >&6 else + if test "$cross_compiling" = yes; then : - ac_cv_broken_poll=no + ac_cv_wchar_t_signed=yes else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <poll.h> -#include <unistd.h> - -int main() -{ - struct pollfd poll_struct = { 42, POLLIN|POLLPRI|POLLOUT, 0 }; - int poll_test; - - close (42); - - poll_test = poll(&poll_struct, 1, 0); - if (poll_test < 0) - return 0; - else if (poll_test == 0 && poll_struct.revents != POLLNVAL) - return 0; - else - return 1; -} + #include <wchar.h> + int main() + { + /* Success: exit code 0 */ + return ((((wchar_t) -1) < ((wchar_t) 0)) ? 0 : 1); + } _ACEOF if ac_fn_c_try_run "$LINENO"; then : - ac_cv_broken_poll=yes + ac_cv_wchar_t_signed=yes else - ac_cv_broken_poll=no + ac_cv_wchar_t_signed=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_poll" >&5 -$as_echo "$ac_cv_broken_poll" >&6; } -if test "$ac_cv_broken_poll" = yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_wchar_t_signed" >&5 +$as_echo "$ac_cv_wchar_t_signed" >&6; } +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wchar_t is usable" >&5 +$as_echo_n "checking whether wchar_t is usable... " >&6; } +# wchar_t is only usable if it maps to an unsigned type +if test "$ac_cv_sizeof_wchar_t" -ge 2 \ + -a "$ac_cv_wchar_t_signed" = "no" then -$as_echo "#define HAVE_BROKEN_POLL 1" >>confdefs.h +$as_echo "#define HAVE_USABLE_WCHAR_T 1" >>confdefs.h + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -# check tzset(3) exists and works like we expect it to -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working tzset()" >&5 -$as_echo_n "checking for working tzset()... " >&6; } -if ${ac_cv_working_tzset+:} false; then : - $as_echo_n "(cached) " >&6 -else +case $ac_sys_system/$ac_sys_release in +SunOS/*) + if test -f /etc/os-release; then + OS_NAME=$(awk -F= '/^NAME=/ {print substr($2,2,length($2)-2)}' /etc/os-release) + if test "x$OS_NAME" = "xOracle Solaris"; then + # bpo-43667: In Oracle Solaris, the internal form of wchar_t in + # non-Unicode locales is not Unicode and hence cannot be used directly. + # https://docs.oracle.com/cd/E37838_01/html/E61053/gmwke.html -if test "$cross_compiling" = yes; then : - ac_cv_working_tzset=no +$as_echo "#define HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION 1" >>confdefs.h + + fi + fi + ;; +esac + +# check for endianness + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 +$as_echo_n "checking whether byte ordering is bigendian... " >&6; } +if ${ac_cv_c_bigendian+:} false; then : + $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_cv_c_bigendian=unknown + # See if we're dealing with a universal compiler. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; -#include <stdlib.h> -#include <time.h> -#include <string.h> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : -#if HAVE_TZNAME -extern char *tzname[]; -#endif + # Check for potential -arch flags. It is not universal unless + # there are at least two -arch flags with different values. + ac_arch= + ac_prev= + for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do + if test -n "$ac_prev"; then + case $ac_word in + i?86 | x86_64 | ppc | ppc64) + if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then + ac_arch=$ac_word + else + ac_cv_c_bigendian=universal + break + fi + ;; + esac + ac_prev= + elif test "x$ac_word" = "x-arch"; then + ac_prev=arch + fi + done +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test $ac_cv_c_bigendian = unknown; then + # See if sys/param.h defines the BYTE_ORDER macro. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/types.h> + #include <sys/param.h> -int main() +int +main () { - /* Note that we need to ensure that not only does tzset(3) - do 'something' with localtime, but it works as documented - in the library reference and as expected by the test suite. - This includes making sure that tzname is set properly if - tm->tm_zone does not exist since it is the alternative way - of getting timezone info. - - Red Hat 6.2 doesn't understand the southern hemisphere - after New Year's Day. - */ - - time_t groundhogday = 1044144000; /* GMT-based */ - time_t midyear = groundhogday + (365 * 24 * 3600 / 2); - - putenv("TZ=UTC+0"); - tzset(); - if (localtime(&groundhogday)->tm_hour != 0) - exit(1); -#if HAVE_TZNAME - /* For UTC, tzname[1] is sometimes "", sometimes " " */ - if (strcmp(tzname[0], "UTC") || - (tzname[1][0] != 0 && tzname[1][0] != ' ')) - exit(1); -#endif - - putenv("TZ=EST+5EDT,M4.1.0,M10.5.0"); - tzset(); - if (localtime(&groundhogday)->tm_hour != 19) - exit(1); -#if HAVE_TZNAME - if (strcmp(tzname[0], "EST") || strcmp(tzname[1], "EDT")) - exit(1); -#endif +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ + && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ + && LITTLE_ENDIAN) + bogus endian macros + #endif - putenv("TZ=AEST-10AEDT-11,M10.5.0,M3.5.0"); - tzset(); - if (localtime(&groundhogday)->tm_hour != 11) - exit(1); -#if HAVE_TZNAME - if (strcmp(tzname[0], "AEST") || strcmp(tzname[1], "AEDT")) - exit(1); -#endif + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/types.h> + #include <sys/param.h> -#if HAVE_STRUCT_TM_TM_ZONE - if (strcmp(localtime(&groundhogday)->tm_zone, "AEDT")) - exit(1); - if (strcmp(localtime(&midyear)->tm_zone, "AEST")) - exit(1); -#endif +int +main () +{ +#if BYTE_ORDER != BIG_ENDIAN + not big endian + #endif - exit(0); + ; + return 0; } - _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_working_tzset=yes +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes else - ac_cv_working_tzset=no + ac_cv_c_bigendian=no fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <limits.h> -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_tzset" >&5 -$as_echo "$ac_cv_working_tzset" >&6; } -if test "$ac_cv_working_tzset" = yes -then +int +main () +{ +#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) + bogus endian macros + #endif -$as_echo "#define HAVE_WORKING_TZSET 1" >>confdefs.h + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to _BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <limits.h> -fi +int +main () +{ +#ifndef _BIG_ENDIAN + not big endian + #endif -# Look for subsecond timestamps in struct stat -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for tv_nsec in struct stat" >&5 -$as_echo_n "checking for tv_nsec in struct stat... " >&6; } -if ${ac_cv_stat_tv_nsec+:} false; then : - $as_echo_n "(cached) " >&6 + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # Compile a test program. + if test "$cross_compiling" = yes; then : + # Try to guess by grepping values from an object file. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <sys/stat.h> +short int ascii_mm[] = + { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; + short int ascii_ii[] = + { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; + int use_ascii (int i) { + return ascii_mm[i] + ascii_ii[i]; + } + short int ebcdic_ii[] = + { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; + short int ebcdic_mm[] = + { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; + int use_ebcdic (int i) { + return ebcdic_mm[i] + ebcdic_ii[i]; + } + extern int foo; + int main () { - -struct stat st; -st.st_mtim.tv_nsec = 1; - +return use_ascii (foo) == use_ebcdic (foo); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_stat_tv_nsec=yes -else - ac_cv_stat_tv_nsec=no + if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then + ac_cv_c_bigendian=yes + fi + if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi + fi fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_stat_tv_nsec" >&5 -$as_echo "$ac_cv_stat_tv_nsec" >&6; } -if test "$ac_cv_stat_tv_nsec" = yes -then - -$as_echo "#define HAVE_STAT_TV_NSEC 1" >>confdefs.h - -fi - -# Look for BSD style subsecond timestamps in struct stat -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for tv_nsec2 in struct stat" >&5 -$as_echo_n "checking for tv_nsec2 in struct stat... " >&6; } -if ${ac_cv_stat_tv_nsec2+:} false; then : - $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <sys/stat.h> +$ac_includes_default int main () { -struct stat st; -st.st_mtimespec.tv_nsec = 1; + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_stat_tv_nsec2=yes +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_c_bigendian=no else - ac_cv_stat_tv_nsec2=no + ac_cv_c_bigendian=yes fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_stat_tv_nsec2" >&5 -$as_echo "$ac_cv_stat_tv_nsec2" >&6; } -if test "$ac_cv_stat_tv_nsec2" = yes -then - -$as_echo "#define HAVE_STAT_TV_NSEC2 1" >>confdefs.h + fi fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 +$as_echo "$ac_cv_c_bigendian" >&6; } + case $ac_cv_c_bigendian in #( + yes) + $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h +;; #( + no) + ;; #( + universal) -have_curses=no -have_panel=no +$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h + ;; #( + *) + as_fn_error $? "unknown endianness + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; + esac -for ac_header in curses.h ncurses.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + +# ABI version string for Python extension modules. This appears between the +# periods in shared library file names, e.g. foo.<SOABI>.so. It is calculated +# from the following attributes which affect the ABI of this Python build (in +# this order): +# +# * The Python implementation (always 'cpython-' for us) +# * The major and minor version numbers +# * --with-pydebug (adds a 'd') +# +# Thus for example, Python 3.2 built with wide unicode, pydebug, and pymalloc, +# would get a shared library ABI version tag of 'cpython-32dmu' and shared +# libraries would be named 'foo.cpython-32dmu.so'. +# +# In Python 3.2 and older, --with-wide-unicode added a 'u' flag. +# In Python 3.7 and older, --with-pymalloc added a 'm' flag. + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking ABIFLAGS" >&5 +$as_echo_n "checking ABIFLAGS... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ABIFLAGS" >&5 +$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} +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $SOABI" >&5 +$as_echo "$SOABI" >&6; } + +# 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 + + ALT_SOABI='cpython-'`echo $VERSION | tr -d .``echo $ABIFLAGS | tr -d d`${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET} + +cat >>confdefs.h <<_ACEOF +#define ALT_SOABI "${ALT_SOABI}" _ACEOF fi -done - -if test "x$ac_cv_header_ncurses_h" = xyes; then : +EXT_SUFFIX=.${SOABI}${SHLIB_SUFFIX} - if test "$ac_sys_system" != "Darwin"; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking LDVERSION" >&5 +$as_echo_n "checking LDVERSION... " >&6; } +LDVERSION='$(VERSION)$(ABIFLAGS)' +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LDVERSION" >&5 +$as_echo "$LDVERSION" >&6; } -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CURSES" >&5 -$as_echo_n "checking for CURSES... " >&6; } +# On Android and Cygwin the shared libraries must be linked with libpython. -if test -n "$CURSES_CFLAGS"; then - pkg_cv_CURSES_CFLAGS="$CURSES_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ncursesw\""; } >&5 - ($PKG_CONFIG --exists --print-errors "ncursesw") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CURSES_CFLAGS=`$PKG_CONFIG --cflags "ncursesw" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes +if test -n "$ANDROID_API_LEVEL" -o "$MACHDEP" = "cygwin"; then + LIBPYTHON="-lpython${VERSION}${ABIFLAGS}" else - pkg_failed=yes + LIBPYTHON='' fi - else - pkg_failed=untried + + + +BINLIBDEST='$(LIBDIR)/python$(VERSION)' + + +# Check for --with-platlibdir +# /usr/$LIDIRNAME/python$VERSION + +PLATLIBDIR="lib" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-platlibdir" >&5 +$as_echo_n "checking for --with-platlibdir... " >&6; } + +# Check whether --with-platlibdir was given. +if test "${with_platlibdir+set}" = set; then : + withval=$with_platlibdir; +# ignore 3 options: +# --with-platlibdir +# --with-platlibdir= +# --without-platlibdir +if test -n "$withval" -a "$withval" != yes -a "$withval" != no +then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + PLATLIBDIR="$withval" + BINLIBDEST='${exec_prefix}/${PLATLIBDIR}/python$(VERSION)' +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -if test -n "$CURSES_LIBS"; then - pkg_cv_CURSES_LIBS="$CURSES_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ncursesw\""; } >&5 - ($PKG_CONFIG --exists --print-errors "ncursesw") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CURSES_LIBS=`$PKG_CONFIG --libs "ncursesw" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes else - pkg_failed=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi - else - pkg_failed=untried + + + + +if test x$PLATFORM_TRIPLET = x; then + LIBPL='$(prefix)'"/${PLATLIBDIR}/python${VERSION}/config-${LDVERSION}" +else + LIBPL='$(prefix)'"/${PLATLIBDIR}/python${VERSION}/config-${LDVERSION}-${PLATFORM_TRIPLET}" fi +# Check for --with-wheel-pkg-dir=PATH -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +WHEEL_PKG_DIR="" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-wheel-pkg-dir" >&5 +$as_echo_n "checking for --with-wheel-pkg-dir... " >&6; } + +# Check whether --with-wheel-pkg-dir was given. +if test "${with_wheel_pkg_dir+set}" = set; then : + withval=$with_wheel_pkg_dir; +if test -n "$withval"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + WHEEL_PKG_DIR="$withval" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } +fi -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes + +# Check whether right shifting a negative integer extends the sign bit +# or fills with zeros (like the Cray J90, according to Tim Peters). +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether right shift extends the sign bit" >&5 +$as_echo_n "checking whether right shift extends the sign bit... " >&6; } +if ${ac_cv_rshift_extends_sign+:} false; then : + $as_echo_n "(cached) " >&6 else - _pkg_short_errors_supported=no + +if test "$cross_compiling" = yes; then : + ac_cv_rshift_extends_sign=yes +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int main() +{ + return (((-1)>>3 == -1) ? 0 : 1); +} + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_rshift_extends_sign=yes +else + ac_cv_rshift_extends_sign=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi - if test $_pkg_short_errors_supported = yes; then - CURSES_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "ncursesw" 2>&1` - else - CURSES_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "ncursesw" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$CURSES_PKG_ERRORS" >&5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_rshift_extends_sign" >&5 +$as_echo "$ac_cv_rshift_extends_sign" >&6; } +if test "$ac_cv_rshift_extends_sign" = no +then - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS +$as_echo "#define SIGNED_RIGHT_SHIFT_ZERO_FILLS 1" >>confdefs.h +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for initscr in -lncursesw" >&5 -$as_echo_n "checking for initscr in -lncursesw... " >&6; } -if ${ac_cv_lib_ncursesw_initscr+:} false; then : +# check for getc_unlocked and related locking functions +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getc_unlocked() and friends" >&5 +$as_echo_n "checking for getc_unlocked() and friends... " >&6; } +if ${ac_cv_have_getc_unlocked+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lncursesw $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char initscr (); +#include <stdio.h> int main () { -return initscr (); + + FILE *f = fopen("/dev/null", "r"); + flockfile(f); + getc_unlocked(f); + funlockfile(f); + ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_ncursesw_initscr=yes + ac_cv_have_getc_unlocked=yes else - ac_cv_lib_ncursesw_initscr=no + ac_cv_have_getc_unlocked=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncursesw_initscr" >&5 -$as_echo "$ac_cv_lib_ncursesw_initscr" >&6; } -if test "x$ac_cv_lib_ncursesw_initscr" = xyes; then : - - $as_echo "#define HAVE_NCURSESW 1" >>confdefs.h +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_getc_unlocked" >&5 +$as_echo "$ac_cv_have_getc_unlocked" >&6; } +if test "$ac_cv_have_getc_unlocked" = yes +then - have_curses=ncursesw - CURSES_CFLAGS=${CURSES_CFLAGS-""} - CURSES_LIBS=${CURSES_LIBS-"-lncursesw"} +$as_echo "#define HAVE_GETC_UNLOCKED 1" >>confdefs.h fi -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS +# Check whether --with-readline was given. +if test "${with_readline+set}" = set; then : + withval=$with_readline; +else + with_readline=yes +fi +# check where readline lives +py_cv_lib_readline=no +# save the value of LIBS so we don't actually link Python with readline +LIBS_no_readline=$LIBS -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +if test "$with_readline" != no; then + case "$with_readline" in + editline|edit) + LIBREADLINE=edit - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS +$as_echo "#define WITH_EDITLINE 1" >>confdefs.h + ;; + yes|readline) + LIBREADLINE=readline + ;; + *) + as_fn_error $? "proper usage is --with(out)-readline[=editline]" "$LINENO" 5 + ;; + esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for initscr in -lncursesw" >&5 -$as_echo_n "checking for initscr in -lncursesw... " >&6; } -if ${ac_cv_lib_ncursesw_initscr+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lncursesw $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + # On some systems we need to link readline to a termcap compatible + # library. NOTE: Keep the precedence of listed libraries synchronised + # with setup.py. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link readline libs" >&5 +$as_echo_n "checking how to link readline libs... " >&6; } + for py_libtermcap in "" tinfo ncursesw ncurses curses termcap; do + if test -z "$py_libtermcap"; then + READLINE_LIBS="-l$LIBREADLINE" + else + READLINE_LIBS="-l$LIBREADLINE -l$py_libtermcap" + fi + LIBS="$READLINE_LIBS $LIBS_no_readline" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -23063,132 +19890,81 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char initscr (); +char readline (); int main () { -return initscr (); +return readline (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_ncursesw_initscr=yes -else - ac_cv_lib_ncursesw_initscr=no + py_cv_lib_readline=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncursesw_initscr" >&5 -$as_echo "$ac_cv_lib_ncursesw_initscr" >&6; } -if test "x$ac_cv_lib_ncursesw_initscr" = xyes; then : - - $as_echo "#define HAVE_NCURSESW 1" >>confdefs.h - - have_curses=ncursesw - CURSES_CFLAGS=${CURSES_CFLAGS-""} - CURSES_LIBS=${CURSES_LIBS-"-lncursesw"} - -fi - - -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS - - - -else - CURSES_CFLAGS=$pkg_cv_CURSES_CFLAGS - CURSES_LIBS=$pkg_cv_CURSES_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + if test $py_cv_lib_readline = yes; then + break + fi + done - $as_echo "#define HAVE_NCURSESW 1" >>confdefs.h + # Uncomment this line if you want to use READLINE_LIBS in Makefile or scripts + #AC_SUBST([READLINE_LIBS]) + if test $py_cv_lib_readline = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $READLINE_LIBS" >&5 +$as_echo "$READLINE_LIBS" >&6; } - have_curses=ncursesw +$as_echo "#define HAVE_LIBREADLINE 1" >>confdefs.h -fi fi +fi - if test "x$have_curses" = xno; then : +if test "$py_cv_lib_readline" = yes; then + # check for readline 2.2 + ac_fn_c_check_decl "$LINENO" "rl_completion_append_character" "ac_cv_have_decl_rl_completion_append_character" " +#include <stdio.h> /* Must be first for Gnu Readline */ +#ifdef WITH_EDITLINE +# include <editline/readline.h> +#else +# include <readline/readline.h> +#endif +" +if test "x$ac_cv_have_decl_rl_completion_append_character" = xyes; then : -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CURSES" >&5 -$as_echo_n "checking for CURSES... " >&6; } +$as_echo "#define HAVE_RL_COMPLETION_APPEND_CHARACTER 1" >>confdefs.h -if test -n "$CURSES_CFLAGS"; then - pkg_cv_CURSES_CFLAGS="$CURSES_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ncurses\""; } >&5 - ($PKG_CONFIG --exists --print-errors "ncurses") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CURSES_CFLAGS=`$PKG_CONFIG --cflags "ncurses" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CURSES_LIBS"; then - pkg_cv_CURSES_LIBS="$CURSES_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ncurses\""; } >&5 - ($PKG_CONFIG --exists --print-errors "ncurses") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CURSES_LIBS=`$PKG_CONFIG --libs "ncurses" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried fi + ac_fn_c_check_decl "$LINENO" "rl_completion_suppress_append" "ac_cv_have_decl_rl_completion_suppress_append" " +#include <stdio.h> /* Must be first for Gnu Readline */ +#ifdef WITH_EDITLINE +# include <editline/readline.h> +#else +# include <readline/readline.h> +#endif +" +if test "x$ac_cv_have_decl_rl_completion_suppress_append" = xyes; then : -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +$as_echo "#define HAVE_RL_COMPLETION_SUPPRESS_APPEND 1" >>confdefs.h -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no fi - if test $_pkg_short_errors_supported = yes; then - CURSES_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "ncurses" 2>&1` - else - CURSES_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "ncurses" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$CURSES_PKG_ERRORS" >&5 - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for initscr in -lncurses" >&5 -$as_echo_n "checking for initscr in -lncurses... " >&6; } -if ${ac_cv_lib_ncurses_initscr+:} false; then : + # check for readline 4.0 + as_ac_Lib=`$as_echo "ac_cv_lib_$LIBREADLINE''_rl_pre_input_hook" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_pre_input_hook in -l$LIBREADLINE" >&5 +$as_echo_n "checking for rl_pre_input_hook in -l$LIBREADLINE... " >&6; } +if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lncurses $LIBS" +LIBS="-l$LIBREADLINE $READLINE_LIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -23198,59 +19974,43 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char initscr (); +char rl_pre_input_hook (); int main () { -return initscr (); +return rl_pre_input_hook (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_ncurses_initscr=yes + eval "$as_ac_Lib=yes" else - ac_cv_lib_ncurses_initscr=no + eval "$as_ac_Lib=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_initscr" >&5 -$as_echo "$ac_cv_lib_ncurses_initscr" >&6; } -if test "x$ac_cv_lib_ncurses_initscr" = xyes; then : +eval ac_res=\$$as_ac_Lib + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : - have_curses=ncurses - CURSES_CFLAGS=${CURSES_CFLAGS-""} - CURSES_LIBS=${CURSES_LIBS-"-lncurses"} +$as_echo "#define HAVE_RL_PRE_INPUT_HOOK 1" >>confdefs.h fi -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS - - - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for initscr in -lncurses" >&5 -$as_echo_n "checking for initscr in -lncurses... " >&6; } -if ${ac_cv_lib_ncurses_initscr+:} false; then : + # also in 4.0 + as_ac_Lib=`$as_echo "ac_cv_lib_$LIBREADLINE''_rl_completion_display_matches_hook" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_completion_display_matches_hook in -l$LIBREADLINE" >&5 +$as_echo_n "checking for rl_completion_display_matches_hook in -l$LIBREADLINE... " >&6; } +if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lncurses $LIBS" +LIBS="-l$LIBREADLINE $READLINE_LIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -23260,172 +20020,89 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char initscr (); +char rl_completion_display_matches_hook (); int main () { -return initscr (); +return rl_completion_display_matches_hook (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_ncurses_initscr=yes + eval "$as_ac_Lib=yes" else - ac_cv_lib_ncurses_initscr=no + eval "$as_ac_Lib=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_initscr" >&5 -$as_echo "$ac_cv_lib_ncurses_initscr" >&6; } -if test "x$ac_cv_lib_ncurses_initscr" = xyes; then : - - have_curses=ncurses - CURSES_CFLAGS=${CURSES_CFLAGS-""} - CURSES_LIBS=${CURSES_LIBS-"-lncurses"} - -fi - - -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS - - - -else - CURSES_CFLAGS=$pkg_cv_CURSES_CFLAGS - CURSES_LIBS=$pkg_cv_CURSES_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - have_curses=ncurses - -fi - -fi - - -fi -CURSES_CFLAGS=$(echo $CURSES_CFLAGS | sed 's/-D_XOPEN_SOURCE=600//g') - -if test "$have_curses" = no -a "$ac_sys_system" = "Darwin"; then +eval ac_res=\$$as_ac_Lib + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : - as_fn_append CURSES_CFLAGS " -D_XOPEN_SOURCE_EXTENDED=1" - $as_echo "#define HAVE_NCURSESW 1" >>confdefs.h +$as_echo "#define HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK 1" >>confdefs.h fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking curses module flags" >&5 -$as_echo_n "checking curses module flags... " >&6; } -if test "x$have_curses" = xno; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - + # also in 4.0, but not in editline + as_ac_Lib=`$as_echo "ac_cv_lib_$LIBREADLINE''_rl_resize_terminal" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_resize_terminal in -l$LIBREADLINE" >&5 +$as_echo_n "checking for rl_resize_terminal in -l$LIBREADLINE... " >&6; } +if eval \${$as_ac_Lib+:} false; then : + $as_echo_n "(cached) " >&6 else + ac_check_lib_save_LIBS=$LIBS +LIBS="-l$LIBREADLINE $READLINE_LIBS $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_curses (CFLAGS: $CURSES_CFLAGS, LIBS: $CURSES_LIBS)" >&5 -$as_echo "$have_curses (CFLAGS: $CURSES_CFLAGS, LIBS: $CURSES_LIBS)" >&6; } - -fi - -for ac_header in panel.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "panel.h" "ac_cv_header_panel_h" "$ac_includes_default" -if test "x$ac_cv_header_panel_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_PANEL_H 1 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char rl_resize_terminal (); +int +main () +{ +return rl_resize_terminal (); + ; + return 0; +} _ACEOF - -fi - -done - - -if test "x$ac_cv_header_panel_h" = xyes; then : - - - if test "$ac_sys_system" != "Darwin"; then - if test "x$have_curses" = xncursesw; then : - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PANEL" >&5 -$as_echo_n "checking for PANEL... " >&6; } - -if test -n "$PANEL_CFLAGS"; then - pkg_cv_PANEL_CFLAGS="$PANEL_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"panelw\""; } >&5 - ($PKG_CONFIG --exists --print-errors "panelw") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_PANEL_CFLAGS=`$PKG_CONFIG --cflags "panelw" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$PANEL_LIBS"; then - pkg_cv_PANEL_LIBS="$PANEL_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"panelw\""; } >&5 - ($PKG_CONFIG --exists --print-errors "panelw") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_PANEL_LIBS=`$PKG_CONFIG --libs "panelw" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes +if ac_fn_c_try_link "$LINENO"; then : + eval "$as_ac_Lib=yes" else - pkg_failed=yes -fi - else - pkg_failed=untried + eval "$as_ac_Lib=no" fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi - if test $_pkg_short_errors_supported = yes; then - PANEL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "panelw" 2>&1` - else - PANEL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "panelw" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$PANEL_PKG_ERRORS" >&5 +eval ac_res=\$$as_ac_Lib + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : +$as_echo "#define HAVE_RL_RESIZE_TERMINAL 1" >>confdefs.h - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for update_panels in -lpanelw" >&5 -$as_echo_n "checking for update_panels in -lpanelw... " >&6; } -if ${ac_cv_lib_panelw_update_panels+:} false; then : + # check for readline 4.2 + as_ac_Lib=`$as_echo "ac_cv_lib_$LIBREADLINE''_rl_completion_matches" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_completion_matches in -l$LIBREADLINE" >&5 +$as_echo_n "checking for rl_completion_matches in -l$LIBREADLINE... " >&6; } +if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lpanelw $LIBS" +LIBS="-l$LIBREADLINE $READLINE_LIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -23435,59 +20112,59 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char update_panels (); +char rl_completion_matches (); int main () { -return update_panels (); +return rl_completion_matches (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_panelw_update_panels=yes + eval "$as_ac_Lib=yes" else - ac_cv_lib_panelw_update_panels=no + eval "$as_ac_Lib=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_panelw_update_panels" >&5 -$as_echo "$ac_cv_lib_panelw_update_panels" >&6; } -if test "x$ac_cv_lib_panelw_update_panels" = xyes; then : +eval ac_res=\$$as_ac_Lib + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : - have_panel=panelw - PANEL_CFLAGS=${PANEL_CFLAGS-""} - PANEL_LIBS=${PANEL_LIBS-"-lpanelw"} +$as_echo "#define HAVE_RL_COMPLETION_MATCHES 1" >>confdefs.h fi -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS - + # also in readline 4.2 + ac_fn_c_check_decl "$LINENO" "rl_catch_signals" "ac_cv_have_decl_rl_catch_signals" " +#include <stdio.h> /* Must be first for Gnu Readline */ +#ifdef WITH_EDITLINE +# include <editline/readline.h> +#else +# include <readline/readline.h> +#endif +" +if test "x$ac_cv_have_decl_rl_catch_signals" = xyes; then : -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +$as_echo "#define HAVE_RL_CATCH_SIGNAL 1" >>confdefs.h - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for update_panels in -lpanelw" >&5 -$as_echo_n "checking for update_panels in -lpanelw... " >&6; } -if ${ac_cv_lib_panelw_update_panels+:} false; then : + as_ac_Lib=`$as_echo "ac_cv_lib_$LIBREADLINE''_append_history" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for append_history in -l$LIBREADLINE" >&5 +$as_echo_n "checking for append_history in -l$LIBREADLINE... " >&6; } +if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lpanelw $LIBS" +LIBS="-l$LIBREADLINE $READLINE_LIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -23497,272 +20174,317 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char update_panels (); +char append_history (); int main () { -return update_panels (); +return append_history (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_panelw_update_panels=yes + eval "$as_ac_Lib=yes" else - ac_cv_lib_panelw_update_panels=no + eval "$as_ac_Lib=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_panelw_update_panels" >&5 -$as_echo "$ac_cv_lib_panelw_update_panels" >&6; } -if test "x$ac_cv_lib_panelw_update_panels" = xyes; then : +eval ac_res=\$$as_ac_Lib + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : - have_panel=panelw - PANEL_CFLAGS=${PANEL_CFLAGS-""} - PANEL_LIBS=${PANEL_LIBS-"-lpanelw"} +$as_echo "#define HAVE_RL_APPEND_HISTORY 1" >>confdefs.h fi +fi -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS - +# End of readline checks: restore LIBS +LIBS=$LIBS_no_readline +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken nice()" >&5 +$as_echo_n "checking for broken nice()... " >&6; } +if ${ac_cv_broken_nice+:} false; then : + $as_echo_n "(cached) " >&6 +else +if test "$cross_compiling" = yes; then : + ac_cv_broken_nice=no else - PANEL_CFLAGS=$pkg_cv_PANEL_CFLAGS - PANEL_LIBS=$pkg_cv_PANEL_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include <stdlib.h> +#include <unistd.h> +int main() +{ + int val1 = nice(1); + if (val1 != -1 && val1 == nice(2)) + exit(0); + exit(1); +} - have_panel=panelw +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_broken_nice=yes +else + ac_cv_broken_nice=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_nice" >&5 +$as_echo "$ac_cv_broken_nice" >&6; } +if test "$ac_cv_broken_nice" = yes +then + +$as_echo "#define HAVE_BROKEN_NICE 1" >>confdefs.h fi - fi - if test "x$have_curses" = xncurses; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken poll()" >&5 +$as_echo_n "checking for broken poll()... " >&6; } +if ${ac_cv_broken_poll+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + ac_cv_broken_poll=no +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <poll.h> +#include <unistd.h> -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PANEL" >&5 -$as_echo_n "checking for PANEL... " >&6; } +int main() +{ + struct pollfd poll_struct = { 42, POLLIN|POLLPRI|POLLOUT, 0 }; + int poll_test; -if test -n "$PANEL_CFLAGS"; then - pkg_cv_PANEL_CFLAGS="$PANEL_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"panel\""; } >&5 - ($PKG_CONFIG --exists --print-errors "panel") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_PANEL_CFLAGS=`$PKG_CONFIG --cflags "panel" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes + close (42); + + poll_test = poll(&poll_struct, 1, 0); + if (poll_test < 0) + return 0; + else if (poll_test == 0 && poll_struct.revents != POLLNVAL) + return 0; + else + return 1; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_broken_poll=yes else - pkg_failed=yes + ac_cv_broken_poll=no fi - else - pkg_failed=untried +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi -if test -n "$PANEL_LIBS"; then - pkg_cv_PANEL_LIBS="$PANEL_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"panel\""; } >&5 - ($PKG_CONFIG --exists --print-errors "panel") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_PANEL_LIBS=`$PKG_CONFIG --libs "panel" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes + fi - else - pkg_failed=untried +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_poll" >&5 +$as_echo "$ac_cv_broken_poll" >&6; } +if test "$ac_cv_broken_poll" = yes +then + +$as_echo "#define HAVE_BROKEN_POLL 1" >>confdefs.h + fi +# check tzset(3) exists and works like we expect it to +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working tzset()" >&5 +$as_echo_n "checking for working tzset()... " >&6; } +if ${ac_cv_working_tzset+:} false; then : + $as_echo_n "(cached) " >&6 +else +if test "$cross_compiling" = yes; then : + ac_cv_working_tzset=no +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +#include <stdlib.h> +#include <time.h> +#include <string.h> -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes +#if HAVE_TZNAME +extern char *tzname[]; +#endif + +int main() +{ + /* Note that we need to ensure that not only does tzset(3) + do 'something' with localtime, but it works as documented + in the library reference and as expected by the test suite. + This includes making sure that tzname is set properly if + tm->tm_zone does not exist since it is the alternative way + of getting timezone info. + + Red Hat 6.2 doesn't understand the southern hemisphere + after New Year's Day. + */ + + time_t groundhogday = 1044144000; /* GMT-based */ + time_t midyear = groundhogday + (365 * 24 * 3600 / 2); + + putenv("TZ=UTC+0"); + tzset(); + if (localtime(&groundhogday)->tm_hour != 0) + exit(1); +#if HAVE_TZNAME + /* For UTC, tzname[1] is sometimes "", sometimes " " */ + if (strcmp(tzname[0], "UTC") || + (tzname[1][0] != 0 && tzname[1][0] != ' ')) + exit(1); +#endif + + putenv("TZ=EST+5EDT,M4.1.0,M10.5.0"); + tzset(); + if (localtime(&groundhogday)->tm_hour != 19) + exit(1); +#if HAVE_TZNAME + if (strcmp(tzname[0], "EST") || strcmp(tzname[1], "EDT")) + exit(1); +#endif + + putenv("TZ=AEST-10AEDT-11,M10.5.0,M3.5.0"); + tzset(); + if (localtime(&groundhogday)->tm_hour != 11) + exit(1); +#if HAVE_TZNAME + if (strcmp(tzname[0], "AEST") || strcmp(tzname[1], "AEDT")) + exit(1); +#endif + +#if HAVE_STRUCT_TM_TM_ZONE + if (strcmp(localtime(&groundhogday)->tm_zone, "AEDT")) + exit(1); + if (strcmp(localtime(&midyear)->tm_zone, "AEST")) + exit(1); +#endif + + exit(0); +} + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_working_tzset=yes else - _pkg_short_errors_supported=no + ac_cv_working_tzset=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi - if test $_pkg_short_errors_supported = yes; then - PANEL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "panel" 2>&1` - else - PANEL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "panel" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$PANEL_PKG_ERRORS" >&5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_tzset" >&5 +$as_echo "$ac_cv_working_tzset" >&6; } +if test "$ac_cv_working_tzset" = yes +then - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS +$as_echo "#define HAVE_WORKING_TZSET 1" >>confdefs.h +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for update_panels in -lpanel" >&5 -$as_echo_n "checking for update_panels in -lpanel... " >&6; } -if ${ac_cv_lib_panel_update_panels+:} false; then : +# Look for subsecond timestamps in struct stat +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for tv_nsec in struct stat" >&5 +$as_echo_n "checking for tv_nsec in struct stat... " >&6; } +if ${ac_cv_stat_tv_nsec+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpanel $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char update_panels (); +#include <sys/stat.h> int main () { -return update_panels (); + +struct stat st; +st.st_mtim.tv_nsec = 1; + ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_panel_update_panels=yes +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_stat_tv_nsec=yes else - ac_cv_lib_panel_update_panels=no + ac_cv_stat_tv_nsec=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_panel_update_panels" >&5 -$as_echo "$ac_cv_lib_panel_update_panels" >&6; } -if test "x$ac_cv_lib_panel_update_panels" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_stat_tv_nsec" >&5 +$as_echo "$ac_cv_stat_tv_nsec" >&6; } +if test "$ac_cv_stat_tv_nsec" = yes +then - have_panel=panel - PANEL_CFLAGS=${PANEL_CFLAGS-""} - PANEL_LIBS=${PANEL_LIBS-"-lpanel"} +$as_echo "#define HAVE_STAT_TV_NSEC 1" >>confdefs.h fi - -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS - - - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - save_CFLAGS=$CFLAGS -save_CPPFLAGS=$CPPFLAGS -save_LDFLAGS=$LDFLAGS -save_LIBS=$LIBS - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for update_panels in -lpanel" >&5 -$as_echo_n "checking for update_panels in -lpanel... " >&6; } -if ${ac_cv_lib_panel_update_panels+:} false; then : +# Look for BSD style subsecond timestamps in struct stat +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for tv_nsec2 in struct stat" >&5 +$as_echo_n "checking for tv_nsec2 in struct stat... " >&6; } +if ${ac_cv_stat_tv_nsec2+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpanel $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char update_panels (); +#include <sys/stat.h> int main () { -return update_panels (); + +struct stat st; +st.st_mtimespec.tv_nsec = 1; + ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_panel_update_panels=yes +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_stat_tv_nsec2=yes else - ac_cv_lib_panel_update_panels=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + ac_cv_stat_tv_nsec2=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_panel_update_panels" >&5 -$as_echo "$ac_cv_lib_panel_update_panels" >&6; } -if test "x$ac_cv_lib_panel_update_panels" = xyes; then : - - have_panel=panel - PANEL_CFLAGS=${PANEL_CFLAGS-""} - PANEL_LIBS=${PANEL_LIBS-"-lpanel"} - +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_stat_tv_nsec2" >&5 +$as_echo "$ac_cv_stat_tv_nsec2" >&6; } +if test "$ac_cv_stat_tv_nsec2" = yes +then - -CFLAGS=$save_CFLAGS -CPPFLAGS=$save_CPPFLAGS -LDFLAGS=$save_LDFLAGS -LIBS=$save_LIBS - - - -else - PANEL_CFLAGS=$pkg_cv_PANEL_CFLAGS - PANEL_LIBS=$pkg_cv_PANEL_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - have_panel=panel +$as_echo "#define HAVE_STAT_TV_NSEC2 1" >>confdefs.h fi +# first curses header check +ac_save_cppflags="$CPPFLAGS" +if test "$cross_compiling" = no; then + CPPFLAGS="$CPPFLAGS -I/usr/include/ncursesw" fi +for ac_header in curses.h ncurses.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF fi -PANEL_CFLAGS=$(echo $PANEL_CFLAGS | sed 's/-D_XOPEN_SOURCE=600//g') - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking panel flags" >&5 -$as_echo_n "checking panel flags... " >&6; } -if test "x$have_panel" = xno; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_panel (CFLAGS: $PANEL_CFLAGS, LIBS: $PANEL_LIBS)" >&5 -$as_echo "$have_panel (CFLAGS: $PANEL_CFLAGS, LIBS: $PANEL_LIBS)" >&6; } - -fi +done -# first curses header check -ac_save_cppflags="$CPPFLAGS" -if test "$cross_compiling" = no; then - CPPFLAGS="$CPPFLAGS -I/usr/include/ncursesw" -fi # On Solaris, term.h requires curses.h for ac_header in term.h @@ -24542,7 +21264,6 @@ SRCDIRS="\ Modules/_sha3 \ Modules/_sqlite \ Modules/_sre \ - Modules/_testcapi \ Modules/_xxtestfuzz \ Modules/cjkcodecs \ Modules/expat \ @@ -25305,6 +22026,7 @@ esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPENSSL_RPATH" >&5 $as_echo "$OPENSSL_RPATH" >&6; } + # This static linking is NOT OFFICIALLY SUPPORTED and not advertised. # Requires static OpenSSL build with position-independent code. Some features # like DSO engines or external OSSL providers don't work. Only tested with GCC @@ -25641,6 +22363,30 @@ fi fi +# --with-experimental-isolated-subinterpreters + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-experimental-isolated-subinterpreters" >&5 +$as_echo_n "checking for --with-experimental-isolated-subinterpreters... " >&6; } + +# Check whether --with-experimental-isolated-subinterpreters was given. +if test "${with_experimental_isolated_subinterpreters+set}" = set; then : + withval=$with_experimental_isolated_subinterpreters; +if test "$withval" != no +then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; }; + $as_echo "#define EXPERIMENTAL_ISOLATED_SUBINTERPRETERS 1" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; }; +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + # Check whether to disable test modules. Once set, setup.py will not build # test extension modules and "make install" will not install test suites. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for --disable-test-modules" >&5 @@ -25730,7 +22476,6 @@ case $ac_sys_system in #( py_cv_module_nis=n/a py_cv_module_ossaudiodev=n/a py_cv_module_pwd=n/a - py_cv_module_resource=n/a py_cv_module_spwd=n/a py_cv_module_syslog=n/a py_cv_module_=n/a @@ -25741,6 +22486,7 @@ case $ac_sys_system in #( py_cv_module_fcntl=n/a + py_cv_module_resource=n/a py_cv_module_readline=n/a py_cv_module_termios=n/a py_cv_module_=n/a @@ -25754,8 +22500,6 @@ case $ac_sys_system in #( py_cv_module__ctypes_test=n/a py_cv_module_fcntl=n/a - py_cv_module_mmap=n/a - py_cv_module_termios=n/a py_cv_module_=n/a @@ -25782,6 +22526,22 @@ case $host_cpu in #( esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for additional Modules/Setup files" >&5 +$as_echo_n "checking for additional Modules/Setup files... " >&6; } +case $ac_sys_system in #( + Emscripten) : + MODULES_SETUP_STDLIB=Modules/Setup.stdlib ;; #( + WASI) : + MODULES_SETUP_STDLIB=Modules/Setup.stdlib ;; #( + *) : + MODULES_SETUP_STDLIB= + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MODULES_SETUP_STDLIB" >&5 +$as_echo "$MODULES_SETUP_STDLIB" >&6; } + + + MODULE_BLOCK= @@ -25801,7 +22561,7 @@ else MODULE__IO_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__IO_STATE=$py_cv_module__io$as_nl" + as_fn_append MODULE_BLOCK "MODULE__IO=$py_cv_module__io$as_nl" if test "x$py_cv_module__io" = xyes; then : as_fn_append MODULE_BLOCK "MODULE__IO_CFLAGS=-I\$(srcdir)/Modules/_io$as_nl" @@ -25821,7 +22581,7 @@ else MODULE_TIME_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE_TIME_STATE=$py_cv_module_time$as_nl" + as_fn_append MODULE_BLOCK "MODULE_TIME=$py_cv_module_time$as_nl" if test "x$py_cv_module_time" = xyes; then : @@ -25842,7 +22602,7 @@ else MODULE_ARRAY_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE_ARRAY_STATE=$py_cv_module_array$as_nl" + as_fn_append MODULE_BLOCK "MODULE_ARRAY=$py_cv_module_array$as_nl" if test "x$py_cv_module_array" = xyes; then : @@ -25862,7 +22622,7 @@ else MODULE__ASYNCIO_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__ASYNCIO_STATE=$py_cv_module__asyncio$as_nl" + as_fn_append MODULE_BLOCK "MODULE__ASYNCIO=$py_cv_module__asyncio$as_nl" if test "x$py_cv_module__asyncio" = xyes; then : @@ -25882,7 +22642,7 @@ else MODULE__BISECT_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__BISECT_STATE=$py_cv_module__bisect$as_nl" + as_fn_append MODULE_BLOCK "MODULE__BISECT=$py_cv_module__bisect$as_nl" if test "x$py_cv_module__bisect" = xyes; then : @@ -25902,7 +22662,7 @@ else MODULE__CONTEXTVARS_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__CONTEXTVARS_STATE=$py_cv_module__contextvars$as_nl" + as_fn_append MODULE_BLOCK "MODULE__CONTEXTVARS=$py_cv_module__contextvars$as_nl" if test "x$py_cv_module__contextvars" = xyes; then : @@ -25922,7 +22682,7 @@ else MODULE__CSV_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__CSV_STATE=$py_cv_module__csv$as_nl" + as_fn_append MODULE_BLOCK "MODULE__CSV=$py_cv_module__csv$as_nl" if test "x$py_cv_module__csv" = xyes; then : @@ -25942,7 +22702,7 @@ else MODULE__HEAPQ_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__HEAPQ_STATE=$py_cv_module__heapq$as_nl" + as_fn_append MODULE_BLOCK "MODULE__HEAPQ=$py_cv_module__heapq$as_nl" if test "x$py_cv_module__heapq" = xyes; then : @@ -25962,7 +22722,7 @@ else MODULE__JSON_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__JSON_STATE=$py_cv_module__json$as_nl" + as_fn_append MODULE_BLOCK "MODULE__JSON=$py_cv_module__json$as_nl" if test "x$py_cv_module__json" = xyes; then : @@ -25982,7 +22742,7 @@ else MODULE__LSPROF_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__LSPROF_STATE=$py_cv_module__lsprof$as_nl" + as_fn_append MODULE_BLOCK "MODULE__LSPROF=$py_cv_module__lsprof$as_nl" if test "x$py_cv_module__lsprof" = xyes; then : @@ -26002,7 +22762,7 @@ else MODULE__OPCODE_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__OPCODE_STATE=$py_cv_module__opcode$as_nl" + as_fn_append MODULE_BLOCK "MODULE__OPCODE=$py_cv_module__opcode$as_nl" if test "x$py_cv_module__opcode" = xyes; then : @@ -26022,7 +22782,7 @@ else MODULE__PICKLE_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__PICKLE_STATE=$py_cv_module__pickle$as_nl" + as_fn_append MODULE_BLOCK "MODULE__PICKLE=$py_cv_module__pickle$as_nl" if test "x$py_cv_module__pickle" = xyes; then : @@ -26042,7 +22802,7 @@ else MODULE__POSIXSUBPROCESS_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__POSIXSUBPROCESS_STATE=$py_cv_module__posixsubprocess$as_nl" + as_fn_append MODULE_BLOCK "MODULE__POSIXSUBPROCESS=$py_cv_module__posixsubprocess$as_nl" if test "x$py_cv_module__posixsubprocess" = xyes; then : @@ -26062,7 +22822,7 @@ else MODULE__QUEUE_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__QUEUE_STATE=$py_cv_module__queue$as_nl" + as_fn_append MODULE_BLOCK "MODULE__QUEUE=$py_cv_module__queue$as_nl" if test "x$py_cv_module__queue" = xyes; then : @@ -26082,7 +22842,7 @@ else MODULE__RANDOM_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__RANDOM_STATE=$py_cv_module__random$as_nl" + as_fn_append MODULE_BLOCK "MODULE__RANDOM=$py_cv_module__random$as_nl" if test "x$py_cv_module__random" = xyes; then : @@ -26102,7 +22862,7 @@ else MODULE_SELECT_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE_SELECT_STATE=$py_cv_module_select$as_nl" + as_fn_append MODULE_BLOCK "MODULE_SELECT=$py_cv_module_select$as_nl" if test "x$py_cv_module_select" = xyes; then : @@ -26122,7 +22882,7 @@ else MODULE__STRUCT_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__STRUCT_STATE=$py_cv_module__struct$as_nl" + as_fn_append MODULE_BLOCK "MODULE__STRUCT=$py_cv_module__struct$as_nl" if test "x$py_cv_module__struct" = xyes; then : @@ -26142,7 +22902,7 @@ else MODULE__TYPING_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__TYPING_STATE=$py_cv_module__typing$as_nl" + as_fn_append MODULE_BLOCK "MODULE__TYPING=$py_cv_module__typing$as_nl" if test "x$py_cv_module__typing" = xyes; then : @@ -26162,7 +22922,7 @@ else MODULE__XXSUBINTERPRETERS_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__XXSUBINTERPRETERS_STATE=$py_cv_module__xxsubinterpreters$as_nl" + as_fn_append MODULE_BLOCK "MODULE__XXSUBINTERPRETERS=$py_cv_module__xxsubinterpreters$as_nl" if test "x$py_cv_module__xxsubinterpreters" = xyes; then : @@ -26182,7 +22942,7 @@ else MODULE__ZONEINFO_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__ZONEINFO_STATE=$py_cv_module__zoneinfo$as_nl" + as_fn_append MODULE_BLOCK "MODULE__ZONEINFO=$py_cv_module__zoneinfo$as_nl" if test "x$py_cv_module__zoneinfo" = xyes; then : @@ -26207,7 +22967,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__MULTIPROCESSING_STATE=$py_cv_module__multiprocessing$as_nl" + as_fn_append MODULE_BLOCK "MODULE__MULTIPROCESSING=$py_cv_module__multiprocessing$as_nl" if test "x$py_cv_module__multiprocessing" = xyes; then : as_fn_append MODULE_BLOCK "MODULE__MULTIPROCESSING_CFLAGS=-I\$(srcdir)/Modules/_multiprocessing$as_nl" @@ -26241,7 +23001,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__POSIXSHMEM_STATE=$py_cv_module__posixshmem$as_nl" + as_fn_append MODULE_BLOCK "MODULE__POSIXSHMEM=$py_cv_module__posixshmem$as_nl" if test "x$py_cv_module__posixshmem" = xyes; then : as_fn_append MODULE_BLOCK "MODULE__POSIXSHMEM_CFLAGS=$POSIXSHMEM_CFLAGS$as_nl" @@ -26272,7 +23032,7 @@ else MODULE_AUDIOOP_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE_AUDIOOP_STATE=$py_cv_module_audioop$as_nl" + as_fn_append MODULE_BLOCK "MODULE_AUDIOOP=$py_cv_module_audioop$as_nl" if test "x$py_cv_module_audioop" = xyes; then : @@ -26292,7 +23052,7 @@ else MODULE__STATISTICS_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__STATISTICS_STATE=$py_cv_module__statistics$as_nl" + as_fn_append MODULE_BLOCK "MODULE__STATISTICS=$py_cv_module__statistics$as_nl" if test "x$py_cv_module__statistics" = xyes; then : @@ -26312,7 +23072,7 @@ else MODULE_CMATH_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE_CMATH_STATE=$py_cv_module_cmath$as_nl" + as_fn_append MODULE_BLOCK "MODULE_CMATH=$py_cv_module_cmath$as_nl" if test "x$py_cv_module_cmath" = xyes; then : @@ -26332,7 +23092,7 @@ else MODULE_MATH_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE_MATH_STATE=$py_cv_module_math$as_nl" + as_fn_append MODULE_BLOCK "MODULE_MATH=$py_cv_module_math$as_nl" if test "x$py_cv_module_math" = xyes; then : @@ -26353,7 +23113,7 @@ else MODULE__DATETIME_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__DATETIME_STATE=$py_cv_module__datetime$as_nl" + as_fn_append MODULE_BLOCK "MODULE__DATETIME=$py_cv_module__datetime$as_nl" if test "x$py_cv_module__datetime" = xyes; then : @@ -26378,7 +23138,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE_FCNTL_STATE=$py_cv_module_fcntl$as_nl" + as_fn_append MODULE_BLOCK "MODULE_FCNTL=$py_cv_module_fcntl$as_nl" if test "x$py_cv_module_fcntl" = xyes; then : @@ -26412,7 +23172,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE_MMAP_STATE=$py_cv_module_mmap$as_nl" + as_fn_append MODULE_BLOCK "MODULE_MMAP=$py_cv_module_mmap$as_nl" if test "x$py_cv_module_mmap" = xyes; then : @@ -26446,7 +23206,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__SOCKET_STATE=$py_cv_module__socket$as_nl" + as_fn_append MODULE_BLOCK "MODULE__SOCKET=$py_cv_module__socket$as_nl" if test "x$py_cv_module__socket" = xyes; then : @@ -26481,7 +23241,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE_GRP_STATE=$py_cv_module_grp$as_nl" + as_fn_append MODULE_BLOCK "MODULE_GRP=$py_cv_module_grp$as_nl" if test "x$py_cv_module_grp" = xyes; then : @@ -26515,7 +23275,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE_OSSAUDIODEV_STATE=$py_cv_module_ossaudiodev$as_nl" + as_fn_append MODULE_BLOCK "MODULE_OSSAUDIODEV=$py_cv_module_ossaudiodev$as_nl" if test "x$py_cv_module_ossaudiodev" = xyes; then : @@ -26549,7 +23309,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE_PWD_STATE=$py_cv_module_pwd$as_nl" + as_fn_append MODULE_BLOCK "MODULE_PWD=$py_cv_module_pwd$as_nl" if test "x$py_cv_module_pwd" = xyes; then : @@ -26583,7 +23343,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE_RESOURCE_STATE=$py_cv_module_resource$as_nl" + as_fn_append MODULE_BLOCK "MODULE_RESOURCE=$py_cv_module_resource$as_nl" if test "x$py_cv_module_resource" = xyes; then : @@ -26617,7 +23377,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__SCPROXY_STATE=$py_cv_module__scproxy$as_nl" + as_fn_append MODULE_BLOCK "MODULE__SCPROXY=$py_cv_module__scproxy$as_nl" if test "x$py_cv_module__scproxy" = xyes; then : @@ -26651,7 +23411,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE_SPWD_STATE=$py_cv_module_spwd$as_nl" + as_fn_append MODULE_BLOCK "MODULE_SPWD=$py_cv_module_spwd$as_nl" if test "x$py_cv_module_spwd" = xyes; then : @@ -26685,7 +23445,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE_SYSLOG_STATE=$py_cv_module_syslog$as_nl" + as_fn_append MODULE_BLOCK "MODULE_SYSLOG=$py_cv_module_syslog$as_nl" if test "x$py_cv_module_syslog" = xyes; then : @@ -26719,7 +23479,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE_TERMIOS_STATE=$py_cv_module_termios$as_nl" + as_fn_append MODULE_BLOCK "MODULE_TERMIOS=$py_cv_module_termios$as_nl" if test "x$py_cv_module_termios" = xyes; then : @@ -26754,7 +23514,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE_PYEXPAT_STATE=$py_cv_module_pyexpat$as_nl" + as_fn_append MODULE_BLOCK "MODULE_PYEXPAT=$py_cv_module_pyexpat$as_nl" if test "x$py_cv_module_pyexpat" = xyes; then : as_fn_append MODULE_BLOCK "MODULE_PYEXPAT_CFLAGS=$LIBEXPAT_CFLAGS$as_nl" @@ -26788,7 +23548,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__ELEMENTTREE_STATE=$py_cv_module__elementtree$as_nl" + as_fn_append MODULE_BLOCK "MODULE__ELEMENTTREE=$py_cv_module__elementtree$as_nl" if test "x$py_cv_module__elementtree" = xyes; then : as_fn_append MODULE_BLOCK "MODULE__ELEMENTTREE_CFLAGS=$LIBEXPAT_CFLAGS$as_nl" @@ -26818,7 +23578,7 @@ else MODULE__CODECS_CN_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__CODECS_CN_STATE=$py_cv_module__codecs_cn$as_nl" + as_fn_append MODULE_BLOCK "MODULE__CODECS_CN=$py_cv_module__codecs_cn$as_nl" if test "x$py_cv_module__codecs_cn" = xyes; then : @@ -26838,7 +23598,7 @@ else MODULE__CODECS_HK_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__CODECS_HK_STATE=$py_cv_module__codecs_hk$as_nl" + as_fn_append MODULE_BLOCK "MODULE__CODECS_HK=$py_cv_module__codecs_hk$as_nl" if test "x$py_cv_module__codecs_hk" = xyes; then : @@ -26858,7 +23618,7 @@ else MODULE__CODECS_ISO2022_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__CODECS_ISO2022_STATE=$py_cv_module__codecs_iso2022$as_nl" + as_fn_append MODULE_BLOCK "MODULE__CODECS_ISO2022=$py_cv_module__codecs_iso2022$as_nl" if test "x$py_cv_module__codecs_iso2022" = xyes; then : @@ -26878,7 +23638,7 @@ else MODULE__CODECS_JP_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__CODECS_JP_STATE=$py_cv_module__codecs_jp$as_nl" + as_fn_append MODULE_BLOCK "MODULE__CODECS_JP=$py_cv_module__codecs_jp$as_nl" if test "x$py_cv_module__codecs_jp" = xyes; then : @@ -26898,7 +23658,7 @@ else MODULE__CODECS_KR_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__CODECS_KR_STATE=$py_cv_module__codecs_kr$as_nl" + as_fn_append MODULE_BLOCK "MODULE__CODECS_KR=$py_cv_module__codecs_kr$as_nl" if test "x$py_cv_module__codecs_kr" = xyes; then : @@ -26918,7 +23678,7 @@ else MODULE__CODECS_TW_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__CODECS_TW_STATE=$py_cv_module__codecs_tw$as_nl" + as_fn_append MODULE_BLOCK "MODULE__CODECS_TW=$py_cv_module__codecs_tw$as_nl" if test "x$py_cv_module__codecs_tw" = xyes; then : @@ -26938,7 +23698,7 @@ else MODULE__MULTIBYTECODEC_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE__MULTIBYTECODEC_STATE=$py_cv_module__multibytecodec$as_nl" + as_fn_append MODULE_BLOCK "MODULE__MULTIBYTECODEC=$py_cv_module__multibytecodec$as_nl" if test "x$py_cv_module__multibytecodec" = xyes; then : @@ -26958,7 +23718,7 @@ else MODULE_UNICODEDATA_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE_UNICODEDATA_STATE=$py_cv_module_unicodedata$as_nl" + as_fn_append MODULE_BLOCK "MODULE_UNICODEDATA=$py_cv_module_unicodedata$as_nl" if test "x$py_cv_module_unicodedata" = xyes; then : @@ -26983,7 +23743,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__MD5_STATE=$py_cv_module__md5$as_nl" + as_fn_append MODULE_BLOCK "MODULE__MD5=$py_cv_module__md5$as_nl" if test "x$py_cv_module__md5" = xyes; then : @@ -27017,7 +23777,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__SHA1_STATE=$py_cv_module__sha1$as_nl" + as_fn_append MODULE_BLOCK "MODULE__SHA1=$py_cv_module__sha1$as_nl" if test "x$py_cv_module__sha1" = xyes; then : @@ -27051,7 +23811,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__SHA256_STATE=$py_cv_module__sha256$as_nl" + as_fn_append MODULE_BLOCK "MODULE__SHA256=$py_cv_module__sha256$as_nl" if test "x$py_cv_module__sha256" = xyes; then : @@ -27085,7 +23845,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__SHA512_STATE=$py_cv_module__sha512$as_nl" + as_fn_append MODULE_BLOCK "MODULE__SHA512=$py_cv_module__sha512$as_nl" if test "x$py_cv_module__sha512" = xyes; then : @@ -27119,7 +23879,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__SHA3_STATE=$py_cv_module__sha3$as_nl" + as_fn_append MODULE_BLOCK "MODULE__SHA3=$py_cv_module__sha3$as_nl" if test "x$py_cv_module__sha3" = xyes; then : @@ -27153,7 +23913,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__BLAKE2_STATE=$py_cv_module__blake2$as_nl" + as_fn_append MODULE_BLOCK "MODULE__BLAKE2=$py_cv_module__blake2$as_nl" if test "x$py_cv_module__blake2" = xyes; then : as_fn_append MODULE_BLOCK "MODULE__BLAKE2_CFLAGS=$LIBB2_CFLAGS$as_nl" @@ -27188,7 +23948,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__CRYPT_STATE=$py_cv_module__crypt$as_nl" + as_fn_append MODULE_BLOCK "MODULE__CRYPT=$py_cv_module__crypt$as_nl" if test "x$py_cv_module__crypt" = xyes; then : as_fn_append MODULE_BLOCK "MODULE__CRYPT_CFLAGS=$LIBCRYPT_CFLAGS$as_nl" @@ -27207,110 +23967,6 @@ fi $as_echo "$py_cv_module__crypt" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _ctypes" >&5 -$as_echo_n "checking for stdlib extension module _ctypes... " >&6; } - if test "$py_cv_module__ctypes" != "n/a"; then : - - if true; then : - if test "$have_libffi" = yes; then : - py_cv_module__ctypes=yes -else - py_cv_module__ctypes=missing -fi -else - py_cv_module__ctypes=disabled -fi - -fi - as_fn_append MODULE_BLOCK "MODULE__CTYPES_STATE=$py_cv_module__ctypes$as_nl" - if test "x$py_cv_module__ctypes" = xyes; then : - - as_fn_append MODULE_BLOCK "MODULE__CTYPES_CFLAGS=$LIBFFI_CFLAGS$as_nl" - as_fn_append MODULE_BLOCK "MODULE__CTYPES_LDFLAGS=$LIBFFI_LIBS$as_nl" - -fi - if test "$py_cv_module__ctypes" = yes; then - MODULE__CTYPES_TRUE= - MODULE__CTYPES_FALSE='#' -else - MODULE__CTYPES_TRUE='#' - MODULE__CTYPES_FALSE= -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__ctypes" >&5 -$as_echo "$py_cv_module__ctypes" >&6; } - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _curses" >&5 -$as_echo_n "checking for stdlib extension module _curses... " >&6; } - if test "$py_cv_module__curses" != "n/a"; then : - - if true; then : - if test "$have_curses" != "no"; then : - py_cv_module__curses=yes -else - py_cv_module__curses=missing -fi -else - py_cv_module__curses=disabled -fi - -fi - as_fn_append MODULE_BLOCK "MODULE__CURSES_STATE=$py_cv_module__curses$as_nl" - if test "x$py_cv_module__curses" = xyes; then : - - as_fn_append MODULE_BLOCK "MODULE__CURSES_CFLAGS=$CURSES_CFLAGS$as_nl" - as_fn_append MODULE_BLOCK "MODULE__CURSES_LDFLAGS=$CURSES_LIBS -$as_nl" - -fi - if test "$py_cv_module__curses" = yes; then - MODULE__CURSES_TRUE= - MODULE__CURSES_FALSE='#' -else - MODULE__CURSES_TRUE='#' - MODULE__CURSES_FALSE= -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__curses" >&5 -$as_echo "$py_cv_module__curses" >&6; } - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _curses_panel" >&5 -$as_echo_n "checking for stdlib extension module _curses_panel... " >&6; } - if test "$py_cv_module__curses_panel" != "n/a"; then : - - if true; then : - if test "$have_panel" != "no"; then : - py_cv_module__curses_panel=yes -else - py_cv_module__curses_panel=missing -fi -else - py_cv_module__curses_panel=disabled -fi - -fi - as_fn_append MODULE_BLOCK "MODULE__CURSES_PANEL_STATE=$py_cv_module__curses_panel$as_nl" - if test "x$py_cv_module__curses_panel" = xyes; then : - - as_fn_append MODULE_BLOCK "MODULE__CURSES_PANEL_CFLAGS=$PANEL_CFLAGS $CURSES_CFLAGS$as_nl" - as_fn_append MODULE_BLOCK "MODULE__CURSES_PANEL_LDFLAGS=$PANEL_LIBS $CURSES_LIBS -$as_nl" - -fi - if test "$py_cv_module__curses_panel" = yes; then - MODULE__CURSES_PANEL_TRUE= - MODULE__CURSES_PANEL_FALSE='#' -else - MODULE__CURSES_PANEL_TRUE='#' - MODULE__CURSES_PANEL_FALSE= -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__curses_panel" >&5 -$as_echo "$py_cv_module__curses_panel" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _decimal" >&5 $as_echo_n "checking for stdlib extension module _decimal... " >&6; } if test "$py_cv_module__decimal" != "n/a"; then : @@ -27326,7 +23982,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__DECIMAL_STATE=$py_cv_module__decimal$as_nl" + as_fn_append MODULE_BLOCK "MODULE__DECIMAL=$py_cv_module__decimal$as_nl" if test "x$py_cv_module__decimal" = xyes; then : as_fn_append MODULE_BLOCK "MODULE__DECIMAL_CFLAGS=$LIBMPDEC_CFLAGS$as_nl" @@ -27345,40 +24001,6 @@ fi $as_echo "$py_cv_module__decimal" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _dbm" >&5 -$as_echo_n "checking for stdlib extension module _dbm... " >&6; } - if test "$py_cv_module__dbm" != "n/a"; then : - - if test -n "$with_dbmliborder"; then : - if test "$have_dbm" != "no"; then : - py_cv_module__dbm=yes -else - py_cv_module__dbm=missing -fi -else - py_cv_module__dbm=disabled -fi - -fi - as_fn_append MODULE_BLOCK "MODULE__DBM_STATE=$py_cv_module__dbm$as_nl" - if test "x$py_cv_module__dbm" = xyes; then : - - as_fn_append MODULE_BLOCK "MODULE__DBM_CFLAGS=$DBM_CFLAGS$as_nl" - as_fn_append MODULE_BLOCK "MODULE__DBM_LDFLAGS=$DBM_LIBS$as_nl" - -fi - if test "$py_cv_module__dbm" = yes; then - MODULE__DBM_TRUE= - MODULE__DBM_FALSE='#' -else - MODULE__DBM_TRUE='#' - MODULE__DBM_FALSE= -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__dbm" >&5 -$as_echo "$py_cv_module__dbm" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _gdbm" >&5 $as_echo_n "checking for stdlib extension module _gdbm... " >&6; } if test "$py_cv_module__gdbm" != "n/a"; then : @@ -27394,7 +24016,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__GDBM_STATE=$py_cv_module__gdbm$as_nl" + as_fn_append MODULE_BLOCK "MODULE__GDBM=$py_cv_module__gdbm$as_nl" if test "x$py_cv_module__gdbm" = xyes; then : as_fn_append MODULE_BLOCK "MODULE__GDBM_CFLAGS=$GDBM_CFLAGS$as_nl" @@ -27428,7 +24050,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE_NIS_STATE=$py_cv_module_nis$as_nl" + as_fn_append MODULE_BLOCK "MODULE_NIS=$py_cv_module_nis$as_nl" if test "x$py_cv_module_nis" = xyes; then : as_fn_append MODULE_BLOCK "MODULE_NIS_CFLAGS=$LIBNSL_CFLAGS$as_nl" @@ -27447,40 +24069,6 @@ fi $as_echo "$py_cv_module_nis" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module readline" >&5 -$as_echo_n "checking for stdlib extension module readline... " >&6; } - if test "$py_cv_module_readline" != "n/a"; then : - - if true; then : - if test "$with_readline" != "no"; then : - py_cv_module_readline=yes -else - py_cv_module_readline=missing -fi -else - py_cv_module_readline=disabled -fi - -fi - as_fn_append MODULE_BLOCK "MODULE_READLINE_STATE=$py_cv_module_readline$as_nl" - if test "x$py_cv_module_readline" = xyes; then : - - as_fn_append MODULE_BLOCK "MODULE_READLINE_CFLAGS=$READLINE_CFLAGS$as_nl" - as_fn_append MODULE_BLOCK "MODULE_READLINE_LDFLAGS=$READLINE_LIBS$as_nl" - -fi - if test "$py_cv_module_readline" = yes; then - MODULE_READLINE_TRUE= - MODULE_READLINE_FALSE='#' -else - MODULE_READLINE_TRUE='#' - MODULE_READLINE_FALSE= -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module_readline" >&5 -$as_echo "$py_cv_module_readline" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _sqlite3" >&5 $as_echo_n "checking for stdlib extension module _sqlite3... " >&6; } if test "$py_cv_module__sqlite3" != "n/a"; then : @@ -27496,7 +24084,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__SQLITE3_STATE=$py_cv_module__sqlite3$as_nl" + as_fn_append MODULE_BLOCK "MODULE__SQLITE3=$py_cv_module__sqlite3$as_nl" if test "x$py_cv_module__sqlite3" = xyes; then : as_fn_append MODULE_BLOCK "MODULE__SQLITE3_CFLAGS=$LIBSQLITE3_CFLAGS$as_nl" @@ -27530,7 +24118,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__TKINTER_STATE=$py_cv_module__tkinter$as_nl" + as_fn_append MODULE_BLOCK "MODULE__TKINTER=$py_cv_module__tkinter$as_nl" if test "x$py_cv_module__tkinter" = xyes; then : as_fn_append MODULE_BLOCK "MODULE__TKINTER_CFLAGS=$TCLTK_CFLAGS$as_nl" @@ -27564,7 +24152,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__UUID_STATE=$py_cv_module__uuid$as_nl" + as_fn_append MODULE_BLOCK "MODULE__UUID=$py_cv_module__uuid$as_nl" if test "x$py_cv_module__uuid" = xyes; then : as_fn_append MODULE_BLOCK "MODULE__UUID_CFLAGS=$LIBUUID_CFLAGS$as_nl" @@ -27599,7 +24187,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE_ZLIB_STATE=$py_cv_module_zlib$as_nl" + as_fn_append MODULE_BLOCK "MODULE_ZLIB=$py_cv_module_zlib$as_nl" if test "x$py_cv_module_zlib" = xyes; then : as_fn_append MODULE_BLOCK "MODULE_ZLIB_CFLAGS=$ZLIB_CFLAGS$as_nl" @@ -27629,7 +24217,7 @@ else MODULE_BINASCII_FALSE= fi - as_fn_append MODULE_BLOCK "MODULE_BINASCII_STATE=$py_cv_module_binascii$as_nl" + as_fn_append MODULE_BLOCK "MODULE_BINASCII=$py_cv_module_binascii$as_nl" if test "x$py_cv_module_binascii" = xyes; then : as_fn_append MODULE_BLOCK "MODULE_BINASCII_CFLAGS=$BINASCII_CFLAGS$as_nl" @@ -27653,7 +24241,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__BZ2_STATE=$py_cv_module__bz2$as_nl" + as_fn_append MODULE_BLOCK "MODULE__BZ2=$py_cv_module__bz2$as_nl" if test "x$py_cv_module__bz2" = xyes; then : as_fn_append MODULE_BLOCK "MODULE__BZ2_CFLAGS=$BZIP2_CFLAGS$as_nl" @@ -27687,7 +24275,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__LZMA_STATE=$py_cv_module__lzma$as_nl" + as_fn_append MODULE_BLOCK "MODULE__LZMA=$py_cv_module__lzma$as_nl" if test "x$py_cv_module__lzma" = xyes; then : as_fn_append MODULE_BLOCK "MODULE__LZMA_CFLAGS=$LIBLZMA_CFLAGS$as_nl" @@ -27722,7 +24310,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__SSL_STATE=$py_cv_module__ssl$as_nl" + as_fn_append MODULE_BLOCK "MODULE__SSL=$py_cv_module__ssl$as_nl" if test "x$py_cv_module__ssl" = xyes; then : as_fn_append MODULE_BLOCK "MODULE__SSL_CFLAGS=$OPENSSL_INCLUDES$as_nl" @@ -27756,7 +24344,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__HASHLIB_STATE=$py_cv_module__hashlib$as_nl" + as_fn_append MODULE_BLOCK "MODULE__HASHLIB=$py_cv_module__hashlib$as_nl" if test "x$py_cv_module__hashlib" = xyes; then : as_fn_append MODULE_BLOCK "MODULE__HASHLIB_CFLAGS=$OPENSSL_INCLUDES$as_nl" @@ -27791,7 +24379,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__TESTCAPI_STATE=$py_cv_module__testcapi$as_nl" + as_fn_append MODULE_BLOCK "MODULE__TESTCAPI=$py_cv_module__testcapi$as_nl" if test "x$py_cv_module__testcapi" = xyes; then : @@ -27825,7 +24413,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__TESTINTERNALCAPI_STATE=$py_cv_module__testinternalcapi$as_nl" + as_fn_append MODULE_BLOCK "MODULE__TESTINTERNALCAPI=$py_cv_module__testinternalcapi$as_nl" if test "x$py_cv_module__testinternalcapi" = xyes; then : @@ -27859,7 +24447,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__TESTBUFFER_STATE=$py_cv_module__testbuffer$as_nl" + as_fn_append MODULE_BLOCK "MODULE__TESTBUFFER=$py_cv_module__testbuffer$as_nl" if test "x$py_cv_module__testbuffer" = xyes; then : @@ -27893,7 +24481,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__TESTIMPORTMULTIPLE_STATE=$py_cv_module__testimportmultiple$as_nl" + as_fn_append MODULE_BLOCK "MODULE__TESTIMPORTMULTIPLE=$py_cv_module__testimportmultiple$as_nl" if test "x$py_cv_module__testimportmultiple" = xyes; then : @@ -27927,7 +24515,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__TESTMULTIPHASE_STATE=$py_cv_module__testmultiphase$as_nl" + as_fn_append MODULE_BLOCK "MODULE__TESTMULTIPHASE=$py_cv_module__testmultiphase$as_nl" if test "x$py_cv_module__testmultiphase" = xyes; then : @@ -27946,40 +24534,6 @@ fi $as_echo "$py_cv_module__testmultiphase" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module xxsubtype" >&5 -$as_echo_n "checking for stdlib extension module xxsubtype... " >&6; } - if test "$py_cv_module_xxsubtype" != "n/a"; then : - - if test "$TEST_MODULES" = yes; then : - if true; then : - py_cv_module_xxsubtype=yes -else - py_cv_module_xxsubtype=missing -fi -else - py_cv_module_xxsubtype=disabled -fi - -fi - as_fn_append MODULE_BLOCK "MODULE_XXSUBTYPE_STATE=$py_cv_module_xxsubtype$as_nl" - if test "x$py_cv_module_xxsubtype" = xyes; then : - - - - -fi - if test "$py_cv_module_xxsubtype" = yes; then - MODULE_XXSUBTYPE_TRUE= - MODULE_XXSUBTYPE_FALSE='#' -else - MODULE_XXSUBTYPE_TRUE='#' - MODULE_XXSUBTYPE_FALSE= -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module_xxsubtype" >&5 -$as_echo "$py_cv_module_xxsubtype" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _xxtestfuzz" >&5 $as_echo_n "checking for stdlib extension module _xxtestfuzz... " >&6; } if test "$py_cv_module__xxtestfuzz" != "n/a"; then : @@ -27995,7 +24549,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__XXTESTFUZZ_STATE=$py_cv_module__xxtestfuzz$as_nl" + as_fn_append MODULE_BLOCK "MODULE__XXTESTFUZZ=$py_cv_module__xxtestfuzz$as_nl" if test "x$py_cv_module__xxtestfuzz" = xyes; then : @@ -28019,7 +24573,7 @@ $as_echo_n "checking for stdlib extension module _ctypes_test... " >&6; } if test "$py_cv_module__ctypes_test" != "n/a"; then : if test "$TEST_MODULES" = yes; then : - if test "$have_libffi" = yes -a "$ac_cv_func_dlopen" = yes; then : + if true; then : py_cv_module__ctypes_test=yes else py_cv_module__ctypes_test=missing @@ -28029,11 +24583,11 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE__CTYPES_TEST_STATE=$py_cv_module__ctypes_test$as_nl" + as_fn_append MODULE_BLOCK "MODULE__CTYPES_TEST=$py_cv_module__ctypes_test$as_nl" if test "x$py_cv_module__ctypes_test" = xyes; then : - as_fn_append MODULE_BLOCK "MODULE__CTYPES_TEST_LDFLAGS=$LIBM$as_nl" + as_fn_append MODULE_BLOCK "MODULE__CTYPES_TEST_LDFLAGS=-lm$as_nl" fi if test "$py_cv_module__ctypes_test" = yes; then @@ -28064,7 +24618,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE_XXLIMITED_STATE=$py_cv_module_xxlimited$as_nl" + as_fn_append MODULE_BLOCK "MODULE_XXLIMITED=$py_cv_module_xxlimited$as_nl" if test "x$py_cv_module_xxlimited" = xyes; then : @@ -28098,7 +24652,7 @@ else fi fi - as_fn_append MODULE_BLOCK "MODULE_XXLIMITED_35_STATE=$py_cv_module_xxlimited_35$as_nl" + as_fn_append MODULE_BLOCK "MODULE_XXLIMITED_35=$py_cv_module_xxlimited_35$as_nl" if test "x$py_cv_module_xxlimited_35" = xyes; then : @@ -28457,26 +25011,10 @@ if test -z "${MODULE__CRYPT_TRUE}" && test -z "${MODULE__CRYPT_FALSE}"; then as_fn_error $? "conditional \"MODULE__CRYPT\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -if test -z "${MODULE__CTYPES_TRUE}" && test -z "${MODULE__CTYPES_FALSE}"; then - as_fn_error $? "conditional \"MODULE__CTYPES\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${MODULE__CURSES_TRUE}" && test -z "${MODULE__CURSES_FALSE}"; then - as_fn_error $? "conditional \"MODULE__CURSES\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${MODULE__CURSES_PANEL_TRUE}" && test -z "${MODULE__CURSES_PANEL_FALSE}"; then - as_fn_error $? "conditional \"MODULE__CURSES_PANEL\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi if test -z "${MODULE__DECIMAL_TRUE}" && test -z "${MODULE__DECIMAL_FALSE}"; then as_fn_error $? "conditional \"MODULE__DECIMAL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -if test -z "${MODULE__DBM_TRUE}" && test -z "${MODULE__DBM_FALSE}"; then - as_fn_error $? "conditional \"MODULE__DBM\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi if test -z "${MODULE__GDBM_TRUE}" && test -z "${MODULE__GDBM_FALSE}"; then as_fn_error $? "conditional \"MODULE__GDBM\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -28485,10 +25023,6 @@ if test -z "${MODULE_NIS_TRUE}" && test -z "${MODULE_NIS_FALSE}"; then as_fn_error $? "conditional \"MODULE_NIS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -if test -z "${MODULE_READLINE_TRUE}" && test -z "${MODULE_READLINE_FALSE}"; then - as_fn_error $? "conditional \"MODULE_READLINE\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi if test -z "${MODULE__SQLITE3_TRUE}" && test -z "${MODULE__SQLITE3_FALSE}"; then as_fn_error $? "conditional \"MODULE__SQLITE3\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -28545,10 +25079,6 @@ if test -z "${MODULE__TESTMULTIPHASE_TRUE}" && test -z "${MODULE__TESTMULTIPHASE as_fn_error $? "conditional \"MODULE__TESTMULTIPHASE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -if test -z "${MODULE_XXSUBTYPE_TRUE}" && test -z "${MODULE_XXSUBTYPE_FALSE}"; then - as_fn_error $? "conditional \"MODULE_XXSUBTYPE\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi if test -z "${MODULE__XXTESTFUZZ_TRUE}" && test -z "${MODULE__XXTESTFUZZ_FALSE}"; then as_fn_error $? "conditional \"MODULE__XXTESTFUZZ\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -29018,7 +25548,7 @@ $config_files Configuration headers: $config_headers -Report bugs to <https://github.com/python/cpython/issues/>." +Report bugs to <https://bugs.python.org/>." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 @@ -29768,11 +26298,7 @@ fi $as_echo "$as_me: creating Makefile" >&6;} $SHELL $srcdir/Modules/makesetup -c $srcdir/Modules/config.c.in \ -s Modules \ - Modules/Setup.local Modules/Setup.stdlib Modules/Setup.bootstrap $srcdir/Modules/Setup -if test $? -ne 0; then - as_fn_error $? "makesetup failed" "$LINENO" 5 -fi - + Modules/Setup.local $MODULES_SETUP_STDLIB Modules/Setup.bootstrap $srcdir/Modules/Setup mv config.c Modules if test -z "$PKG_CONFIG"; then @@ -29792,16 +26318,3 @@ If you want a release build with all stable optimizations active (PGO, etc), please run ./configure --enable-optimizations " >&6;} fi - -if test "x$PY_SUPPORT_TIER" = x0; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: - -Platform \"$host\" with compiler \"$ac_cv_cc_name\" is not supported by the -CPython core team, see https://peps.python.org/pep-0011/ for more information. -" >&5 -$as_echo "$as_me: WARNING: - -Platform \"$host\" with compiler \"$ac_cv_cc_name\" is not supported by the -CPython core team, see https://peps.python.org/pep-0011/ for more information. -" >&2;} -fi diff --git a/configure.ac b/configure.ac index 7d2e83cac8197e..9b5926d79d44e9 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ dnl *************************************************** dnl * Please run autoreconf -if to test your changes! * dnl *************************************************** dnl -dnl Python's configure.ac file requires autoconf 2.69 and autoconf-archive. +dnl Python's configure script requires autoconf 2.69 and autoconf-archive. dnl # Set VERSION so we only need to edit in one place (i.e., here) @@ -10,7 +10,7 @@ m4_define(PYTHON_VERSION, 3.12) AC_PREREQ([2.69]) -AC_INIT([python],[PYTHON_VERSION],[https://github.com/python/cpython/issues/]) +AC_INIT([python],[PYTHON_VERSION],[https://bugs.python.org/]) m4_ifdef( [AX_C_FLOAT_WORDS_BIGENDIAN], @@ -49,48 +49,6 @@ AC_DEFUN([WITH_SAVE_ENV], [RESTORE_ENV] )dnl -dnl PY_CHECK_FUNC(FUNCTION, [INCLUDES], [AC_DEFINE-VAR]) -AC_DEFUN([PY_CHECK_FUNC], -[ AS_VAR_PUSHDEF([py_var], [ac_cv_func_$1]) - AS_VAR_PUSHDEF([py_define], m4_ifblank([$3], [[HAVE_]m4_toupper($1)], [$3])) - AC_CACHE_CHECK( - [for $1], - [py_var], - [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([$2], [void *x=$1])], - [AS_VAR_SET([py_var], [yes])], - [AS_VAR_SET([py_var], [no])])] - ) - AS_VAR_IF( - [py_var], - [yes], - [AC_DEFINE([py_define], [1], [Define if you have the '$1' function.])]) - AS_VAR_POPDEF([py_var]) - AS_VAR_POPDEF([py_define]) -]) - -dnl PY_CHECK_LIB(LIBRARY, FUNCTION, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND], [OTHER-LIBRARIES]) -dnl Like AC_CHECK_LIB() but does not modify LIBS -AC_DEFUN([PY_CHECK_LIB], -[AS_VAR_COPY([py_check_lib_save_LIBS], [LIBS])] -[AC_CHECK_LIB($1, $2, $3, $4, $5)] -[AS_VAR_COPY([LIBS], [py_check_lib_save_LIBS])] -) - -dnl PY_CHECK_EMSCRIPTEN_PORT(PKG_VAR, [EMPORT_ARGS]) -dnl Use Emscripten port unless user passes ${PKG_VAR}_CFLAGS -dnl or ${PKG_VAR}_LIBS to configure. -AC_DEFUN([PY_CHECK_EMSCRIPTEN_PORT], [ - AS_VAR_PUSHDEF([py_cflags], [$1_CFLAGS]) - AS_VAR_PUSHDEF([py_libs], [$1_LIBS]) - AS_IF([test "$ac_sys_system" = "Emscripten" -a -z "$py_cflags" -a -z "$py_libs"], [ - py_cflags="$2" - py_libs="$2" - ]) - AS_VAR_POPDEF([py_cflags]) - AS_VAR_POPDEF([py_libs]) -]) - AC_SUBST(BASECPPFLAGS) if test "$srcdir" != . -a "$srcdir" != "$(pwd)"; then # If we're building out-of-tree, we need to make sure the following @@ -185,7 +143,6 @@ AS_VAR_IF([cross_compiling], [yes], FREEZE_MODULE_BOOTSTRAP_DEPS='$(srcdir)/Programs/_freeze_module.py' FREEZE_MODULE='$(FREEZE_MODULE_BOOTSTRAP)' FREEZE_MODULE_DEPS='$(FREEZE_MODULE_BOOTSTRAP_DEPS)' - PYTHON_FOR_BUILD_DEPS='' ], [ dnl internal build tools also depend on Programs/_freeze_module and _bootstrap_python. @@ -193,14 +150,12 @@ AS_VAR_IF([cross_compiling], [yes], FREEZE_MODULE_BOOTSTRAP_DEPS="Programs/_freeze_module" FREEZE_MODULE='$(PYTHON_FOR_FREEZE) $(srcdir)/Programs/_freeze_module.py' FREEZE_MODULE_DEPS="_bootstrap_python \$(srcdir)/Programs/_freeze_module.py" - PYTHON_FOR_BUILD_DEPS='$(BUILDPYTHON)' ] ) AC_SUBST([FREEZE_MODULE_BOOTSTRAP]) AC_SUBST([FREEZE_MODULE_BOOTSTRAP_DEPS]) AC_SUBST([FREEZE_MODULE]) AC_SUBST([FREEZE_MODULE_DEPS]) -AC_SUBST([PYTHON_FOR_BUILD_DEPS]) AC_CHECK_PROGS([PYTHON_FOR_REGEN], [python$PACKAGE_VERSION python3.10 python3.9 python3.8 python3.7 python3.6 python3 python], @@ -753,33 +708,8 @@ if test -z "$CFLAGS"; then CFLAGS= fi -dnl Emscripten SDK and WASI SDK default to wasm32. -dnl On Emscripten use MEMORY64 setting to build target wasm64-emscripten. -dnl for wasm64. -AS_CASE([$host], - [wasm64-*-emscripten], [ - AS_VAR_APPEND([CFLAGS], [" -sMEMORY64=1"]) - AS_VAR_APPEND([LDFLAGS], [" -sMEMORY64=1"]) - ], -) - if test "$ac_sys_system" = "Darwin" then - dnl look for SDKROOT - AC_CHECK_PROG([HAS_XCRUN], [xcrun], [yes], [missing]) - AC_MSG_CHECKING([macOS SDKROOT]) - if test -z "$SDKROOT"; then - dnl SDKROOT not set - if test "$HAS_XCRUN" = "yes"; then - dnl detect with Xcode - SDKROOT=$(xcrun --show-sdk-path) - else - dnl default to root - SDKROOT="/" - fi - fi - AC_MSG_RESULT([$SDKROOT]) - # Compiler selection on MacOSX is more complicated than # AC_PROG_CC can handle, see Mac/README for more # information @@ -840,41 +770,35 @@ AC_PROG_GREP AC_PROG_SED AC_PROG_EGREP -dnl detect compiler name -dnl check for xlc before clang, newer xlc's can use clang as frontend. -dnl check for GCC last, other compilers set __GNUC__, too. -dnl msvc is listed for completeness. -AC_CACHE_CHECK([for CC compiler name], [ac_cv_cc_name], [ -cat > conftest.c <<EOF -#if defined(__INTEL_COMPILER) || defined(__ICC) - icc -#elif defined(__ibmxl__) || defined(__xlc__) || defined(__xlC__) - xlc -#elif defined(_MSC_VER) - msvc -#elif defined(__clang__) - clang -#elif defined(__GNUC__) - gcc -#else -# error unknown compiler -#endif -EOF - -if $CPP $CPPFLAGS conftest.c >conftest.out 2>/dev/null; then - ac_cv_cc_name=`grep -v '^#' conftest.out | grep -v '^ *$' | tr -d ' '` -else - ac_cv_cc_name="unknown" -fi -rm -f conftest.c conftest.out -]) - # checks for UNIX variants that set C preprocessor variables # may set _GNU_SOURCE, __EXTENSIONS__, _POSIX_PTHREAD_SEMANTICS, # _POSIX_SOURCE, _POSIX_1_SOURCE, and more AC_USE_SYSTEM_EXTENSIONS AC_SUBST(CXX) +AC_SUBST(MAINCC) +AC_MSG_CHECKING(for --with-cxx-main=<compiler>) +AC_ARG_WITH(cxx_main, + AS_HELP_STRING([--with-cxx-main@<:@=COMPILER@:>@], + [compile main() and link Python executable with C++ compiler specified in COMPILER (default is $CXX)]), +[ + + case $withval in + no) with_cxx_main=no + MAINCC='$(CC)';; + yes) with_cxx_main=yes + MAINCC='$(CXX)';; + *) with_cxx_main=yes + MAINCC=$withval + if test -z "$CXX" + then + CXX=$withval + fi;; + esac], [ + with_cxx_main=no + MAINCC='$(CC)' +]) +AC_MSG_RESULT($with_cxx_main) preset_cxx="$CXX" if test -z "$CXX" @@ -1058,7 +982,7 @@ cat > conftest.c <<EOF # error unknown wasm32 platform # endif #elif defined(__wasm64__) -# if defined(__EMSCRIPTEN__) +# if defined(__EMSCRIPTEN) wasm64-emscripten # elif defined(__wasi__) wasm64-wasi @@ -1107,45 +1031,9 @@ if test x$MULTIARCH != x; then fi AC_SUBST(MULTIARCH_CPPFLAGS) -dnl Support tiers according to https://peps.python.org/pep-0011/ -dnl -dnl NOTE: Windows support tiers are defined in PC/pyconfig.h. -dnl -AC_MSG_CHECKING([for PEP 11 support tier]) -AS_CASE([$host/$ac_cv_cc_name], - [x86_64-*-linux-gnu/gcc], [PY_SUPPORT_TIER=1], dnl Linux on AMD64, any vendor, glibc, gcc - [x86_64-apple-darwin*/clang], [PY_SUPPORT_TIER=1], dnl macOS on Intel, any version - [i686-pc-windows-msvc/msvc], [PY_SUPPORT_TIER=1], dnl 32bit Windows on Intel, MSVC - [x86_64-pc-windows-msvc/msvc], [PY_SUPPORT_TIER=1], dnl 64bit Windows on AMD64, MSVC - - [aarch64-apple-darwin*/clang], [PY_SUPPORT_TIER=2], dnl macOS on M1, any version - [aarch64-*-linux-gnu/gcc], [PY_SUPPORT_TIER=2], dnl Linux ARM64, glibc, gcc+clang - [aarch64-*-linux-gnu/clang], [PY_SUPPORT_TIER=2], - [powerpc64le-*-linux-gnu/gcc], [PY_SUPPORT_TIER=2], dnl Linux on PPC64 little endian, glibc, gcc - [x86_64-*-linux-gnu/clang], [PY_SUPPORT_TIER=2], dnl Linux on AMD64, any vendor, glibc, clang - - [aarch64-pc-windows-msvc/msvc], [PY_SUPPORT_TIER=3], dnl Windows ARM64, MSVC - [armv7l-*-linux-gnueabihf/gcc], [PY_SUPPORT_TIER=3], dnl ARMv7 LE with hardware floats, any vendor, glibc, gcc - [powerpc64le-*-linux-gnu/clang], [PY_SUPPORT_TIER=3], dnl Linux on PPC64 little endian, glibc, clang - [s390x-*-linux-gnu/gcc], [PY_SUPPORT_TIER=3], dnl Linux on 64bit s390x (big endian), glibc, gcc - [wasm32-unknown-emscripten/clang], [PY_SUPPORT_TIER=3], dnl WebAssembly Emscripten - [wasm32-unknown-wasi/clang], [PY_SUPPORT_TIER=3], dnl WebAssembly System Interface - [x86_64-*-freebsd*/clang], [PY_SUPPORT_TIER=3], dnl FreeBSD on AMD64 - [PY_SUPPORT_TIER=0] -) - -AS_CASE([$PY_SUPPORT_TIER], - [1], [AC_MSG_RESULT([$host/$ac_cv_cc_name has tier 1 (supported)])], - [2], [AC_MSG_RESULT([$host/$ac_cv_cc_name has tier 2 (supported)])], - [3], [AC_MSG_RESULT([$host/$ac_cv_cc_name has tier 3 (partially supported)])], - [AC_MSG_WARN([$host/$ac_cv_cc_name is not supported])] -) - -AC_DEFINE_UNQUOTED([PY_SUPPORT_TIER], [$PY_SUPPORT_TIER], [PEP 11 Support tier (1, 2, 3 or 0 for unsupported)]) - AC_CACHE_CHECK([for -Wl,--no-as-needed], [ac_cv_wl_no_as_needed], [ save_LDFLAGS="$LDFLAGS" - AS_VAR_APPEND([LDFLAGS], [" -Wl,--no-as-needed"]) + AS_VAR_APPEND([LDFLAGS], [-Wl,--no-as-needed]) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])], [NO_AS_NEEDED="-Wl,--no-as-needed" ac_cv_wl_no_as_needed=yes], @@ -1345,7 +1233,7 @@ AC_SUBST(LINKCC) AC_MSG_CHECKING(LINKCC) if test -z "$LINKCC" then - LINKCC='$(PURIFY) $(CC)' + LINKCC='$(PURIFY) $(MAINCC)' case $ac_sys_system in QNX*) # qcc must be used because the other compilers do not @@ -1525,63 +1413,28 @@ if test "$cross_compiling" = yes; then fi AC_ARG_VAR([HOSTRUNNER], [Program to run CPython for the host platform]) +AC_MSG_CHECKING([HOSTRUNNER]) if test -z "$HOSTRUNNER" then AS_CASE([$ac_sys_system/$ac_sys_emscripten_target], [Emscripten/node*], [ - AC_PATH_TOOL([NODE], [node], [node]) - HOSTRUNNER="$NODE" - # bigint for ctypes c_longlong, c_longdouble - # no longer available in Node 16 - AC_CACHE_CHECK([for node --experimental-wasm-bigint], [ac_cv_tool_node_wasm_bigint], [ - if $NODE -v --experimental-wasm-bigint > /dev/null 2>&1; then - ac_cv_tool_node_wasm_bigint=yes - else - ac_cv_tool_node_wasm_bigint=no - fi - ]) - AS_VAR_IF([ac_cv_tool_node_wasm_bigint], [yes], [ - AS_VAR_APPEND([HOSTRUNNER], [" --experimental-wasm-bigint"]) - ]) - AS_VAR_IF([enable_wasm_pthreads], [yes], [ - AS_VAR_APPEND([HOSTRUNNER], [" --experimental-wasm-threads"]) - # no longer available in Node 16 - AC_CACHE_CHECK([for node --experimental-wasm-bulk-memory], [ac_cv_tool_node_wasm_bulk_memory], [ - if $NODE -v --experimental-wasm-bulk-memory > /dev/null 2>&1; then - ac_cv_tool_node_wasm_bulk_memory=yes - else - ac_cv_tool_node_wasm_bulk_memory=no - fi - ]) - AS_VAR_IF([ac_cv_tool_node_wasm_bulk_memory], [yes], [ - AS_VAR_APPEND([HOSTRUNNER], [" --experimental-wasm-bulk-memory"]) - ]) + HOSTRUNNER='node --experimental-wasm-threads --experimental-wasm-bulk-memory' + ], [ + HOSTRUNNER='node' ]) - - AS_VAR_IF([host_cpu], [wasm64], [AS_VAR_APPEND([HOSTRUNNER], [" --experimental-wasm-memory64"])]) ], - dnl TODO: support other WASI runtimes - dnl wasmtime starts the proces with "/" as CWD. For OOT builds add the - dnl directory containing _sysconfigdata to PYTHONPATH. - [WASI/*], [HOSTRUNNER='wasmtime run --env PYTHONPATH=/$(shell realpath --relative-to $(abs_srcdir) $(abs_builddir))/$(shell cat pybuilddir.txt):/Lib --mapdir /::$(srcdir) --'], [HOSTRUNNER=''] ) fi AC_SUBST([HOSTRUNNER]) -AC_MSG_CHECKING([HOSTRUNNER]) AC_MSG_RESULT([$HOSTRUNNER]) -if test -n "$HOSTRUNNER"; then - dnl Pass hostrunner variable as env var in order to expand shell expressions. - PYTHON_FOR_BUILD="_PYTHON_HOSTRUNNER='$HOSTRUNNER' $PYTHON_FOR_BUILD" -fi - AC_MSG_RESULT($LDLIBRARY) # LIBRARY_DEPS, LINK_PYTHON_OBJS and LINK_PYTHON_DEPS variable AS_CASE([$ac_sys_system/$ac_sys_emscripten_target], - [Emscripten/browser*], [LIBRARY_DEPS='$(PY3LIBRARY) $(WASM_STDLIB) python.html python.worker.js'], + [Emscripten/browser*], [LIBRARY_DEPS='$(PY3LIBRARY) $(WASM_STDLIB)'], [LIBRARY_DEPS='$(PY3LIBRARY) $(EXPORTSYMS)'] ) LINK_PYTHON_DEPS='$(LIBRARY_DEPS)' @@ -1863,25 +1716,17 @@ if test "$Py_LTO" = 'true' ; then # Any changes made here should be reflected in the GCC+Darwin case below if test $Py_LTO_POLICY = default then - # Check that ThinLTO is accepted. - AX_CHECK_COMPILE_FLAG([-flto=thin],[ - LTOFLAGS="-flto=thin -Wl,-export_dynamic -Wl,-object_path_lto,\"\$@\".lto" - LTOCFLAGS="-flto=thin" - ],[ - LTOFLAGS="-flto -Wl,-export_dynamic -Wl,-object_path_lto,\"\$@\".lto" - LTOCFLAGS="-flto" - ] - ) + LTOFLAGS="-flto -Wl,-export_dynamic" + LTOCFLAGS="-flto" else - LTOFLAGS="-flto=${Py_LTO_POLICY} -Wl,-export_dynamic -Wl,-object_path_lto,\"\$@\".lto" + LTOFLAGS="-flto=${Py_LTO_POLICY} -Wl,-export_dynamic" LTOCFLAGS="-flto=${Py_LTO_POLICY}" fi ;; *) if test $Py_LTO_POLICY = default then - # Check that ThinLTO is accepted - AX_CHECK_COMPILE_FLAG([-flto=thin],[LTOFLAGS="-flto=thin"],[LTOFLAGS="-flto"]) + LTOFLAGS="-flto" else LTOFLAGS="-flto=${Py_LTO_POLICY}" fi @@ -1904,7 +1749,7 @@ if test "$Py_LTO" = 'true' ; then LDFLAGS_NOLTO="-fno-lto" case $ac_sys_system in Darwin*) - LTOFLAGS="-flto -Wl,-export_dynamic -Wl,-object_path_lto,\"\$@\".lto" + LTOFLAGS="-flto -Wl,-export_dynamic" LTOCFLAGS="-flto" ;; *) @@ -1925,59 +1770,6 @@ if test "$Py_LTO" = 'true' ; then LDFLAGS_NODIST="$LDFLAGS_NODIST $LTOFLAGS" fi -# Enable bolt flags -Py_BOLT='false' -AC_MSG_CHECKING(for --enable-bolt) -AC_ARG_ENABLE(bolt, AS_HELP_STRING( - [--enable-bolt], - [enable usage of the llvm-bolt post-link optimizer (default is no)]), -[ -if test "$enableval" != no -then - Py_BOLT='true' - AC_MSG_RESULT(yes); -else - Py_BOLT='false' - AC_MSG_RESULT(no); -fi], -[AC_MSG_RESULT(no)]) - -AC_SUBST(PREBOLT_RULE) -if test "$Py_BOLT" = 'true' ; then - PREBOLT_RULE="${DEF_MAKE_ALL_RULE}" - DEF_MAKE_ALL_RULE="bolt-opt" - DEF_MAKE_RULE="build_all" - - # These flags are required for bolt to work: - CFLAGS_NODIST="$CFLAGS_NODIST -fno-reorder-blocks-and-partition" - LDFLAGS_NODIST="$LDFLAGS_NODIST -Wl,--emit-relocs" - - # These flags are required to get good performance from bolt: - CFLAGS_NODIST="$CFLAGS_NODIST -fno-pie" - # We want to add these no-pie flags to linking executables but not shared libraries: - LINKCC="$LINKCC -fno-pie -no-pie" - # Designate the DWARF version into 4 since the LLVM-BOLT does not support DWARF5 yet. - CFLAGS="$CFLAGS -gdwarf-4" - LDFLAGS="$LDFLAGS -gdwarf-4" - AC_SUBST(LLVM_BOLT) - AC_PATH_TOOL(LLVM_BOLT, llvm-bolt, '', ${llvm_path}) - if test -n "${LLVM_BOLT}" -a -x "${LLVM_BOLT}" - then - AC_MSG_RESULT("Found llvm-bolt") - else - AC_MSG_ERROR([llvm-bolt is required for a --enable-bolt build but could not be found.]) - fi - - AC_SUBST(MERGE_FDATA) - AC_PATH_TOOL(MERGE_FDATA, merge-fdata, '', ${llvm_path}) - if test -n "${MERGE_FDATA}" -a -x "${MERGE_FDATA}" - then - AC_MSG_RESULT("Found merge-fdata") - else - AC_MSG_ERROR([merge-fdata is required for a --enable-bolt build but could not be found.]) - fi -fi - # Enable PGO flags. AC_SUBST(PGO_PROF_GEN_FLAG) AC_SUBST(PGO_PROF_USE_FLAG) @@ -2159,9 +1951,6 @@ AS_CASE([$ac_sys_system], dnl Start with 20 MB and allow to grow AS_VAR_APPEND([LDFLAGS_NODIST], [" -sALLOW_MEMORY_GROWTH -sTOTAL_MEMORY=20971520"]) - dnl map int64_t and uint64_t to JS bigint - AS_VAR_APPEND([LDFLAGS_NODIST], [" -sWASM_BIGINT"]) - dnl Include file system support AS_VAR_APPEND([LDFLAGS_NODIST], [" -sFORCE_FILESYSTEM -lidbfs.js -lnodefs.js -lproxyfs.js -lworkerfs.js"]) @@ -2715,9 +2504,8 @@ AC_DEFINE(STDC_HEADERS, 1, [Define to 1 if you have the ANSI C header files.]) # checks for header files AC_CHECK_HEADERS([ \ alloca.h asm/types.h bluetooth.h conio.h crypt.h direct.h dlfcn.h endian.h errno.h fcntl.h grp.h \ - ieeefp.h io.h langinfo.h libintl.h libutil.h linux/auxvec.h sys/auxv.h linux/fs.h linux/memfd.h \ - linux/random.h linux/soundcard.h \ - linux/tipc.h linux/wait.h netdb.h netinet/in.h netpacket/packet.h poll.h process.h pthread.h pty.h \ + ieeefp.h io.h langinfo.h libintl.h libutil.h linux/auxvec.h sys/auxv.h linux/memfd.h linux/random.h linux/soundcard.h \ + linux/tipc.h linux/wait.h netinet/in.h netpacket/packet.h poll.h process.h pthread.h pty.h \ sched.h setjmp.h shadow.h signal.h spawn.h stropts.h sys/audioio.h sys/bsdtty.h sys/devpoll.h \ sys/endian.h sys/epoll.h sys/event.h sys/eventfd.h sys/file.h sys/ioctl.h sys/kern_control.h \ sys/loadavg.h sys/lock.h sys/memfd.h sys/mkdev.h sys/mman.h sys/modem.h sys/param.h sys/poll.h \ @@ -3061,33 +2849,6 @@ else AC_MSG_RESULT(no) fi -# Check for --with-dsymutil -AC_SUBST(DSYMUTIL) -AC_SUBST(DSYMUTIL_PATH) -DSYMUTIL= -DSYMUTIL_PATH= -AC_MSG_CHECKING(for --with-dsymutil) -AC_ARG_WITH(dsymutil, - AS_HELP_STRING([--with-dsymutil], [link debug information into final executable with dsymutil in macOS (default is no)]), -[ -if test "$withval" != no -then - if test "$MACHDEP" != "darwin"; then - AC_MSG_ERROR([dsymutil debug linking is only available in macOS.]) - fi - AC_MSG_RESULT(yes); - DSYMUTIL='true' -else AC_MSG_RESULT(no); DSYMUTIL= -fi], -[AC_MSG_RESULT(no)]) - -if test "$DSYMUTIL"; then - AC_PATH_PROG(DSYMUTIL_PATH, [dsymutil], [not found]) - if test "$DSYMUTIL_PATH" = "not found"; then - AC_MSG_ERROR([dsymutil command not found on \$PATH]) - fi -fi - AC_MSG_CHECKING(for dyld) case $ac_sys_system/$ac_sys_release in Darwin/*) @@ -3460,26 +3221,6 @@ case "$ac_sys_system" in esac AC_MSG_RESULT($SHLIBS) -dnl perf trampoline is Linux specific and requires an arch-specific -dnl trampoline in asssembly. -AC_MSG_CHECKING([perf trampoline]) -AS_CASE([$PLATFORM_TRIPLET], - [x86_64-linux-gnu], [perf_trampoline=yes], - [aarch64-linux-gnu], [perf_trampoline=yes], - [perf_trampoline=no] -) -AC_MSG_RESULT([$perf_trampoline]) - -AS_VAR_IF([perf_trampoline], [yes], [ - AC_DEFINE([PY_HAVE_PERF_TRAMPOLINE], [1], [Define to 1 if you have the perf trampoline.]) - PERF_TRAMPOLINE_OBJ=Objects/asm_trampoline.o - - dnl perf needs frame pointers for unwinding, include compiler option in debug builds - AS_VAR_IF([Py_DEBUG], [true], [ - AS_VAR_APPEND([BASECFLAGS], [" -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"]) - ]) -]) -AC_SUBST([PERF_TRAMPOLINE_OBJ]) # checks for libraries AC_CHECK_LIB(sendfile, sendfile) @@ -3514,12 +3255,12 @@ AS_VAR_IF([have_uuid], [missing], [ AC_DEFINE([HAVE_UUID_H], [1]) AC_DEFINE([HAVE_UUID_GENERATE_TIME_SAFE], [1]) ], [ - WITH_SAVE_ENV([ - CPPFLAGS="$CPPFLAGS $LIBUUID_CFLAGS" - LDFLAGS="$LDFLAGS $LIBUUID_LIBS" - AC_CHECK_HEADERS([uuid/uuid.h], [ - PY_CHECK_LIB([uuid], [uuid_generate_time], [have_uuid=yes]) - PY_CHECK_LIB([uuid], [uuid_generate_time_safe], [ + AC_CHECK_HEADERS([uuid/uuid.h], [ + WITH_SAVE_ENV( + [AC_CHECK_LIB([uuid], [uuid_generate_time], [have_uuid=yes]) + ]) + WITH_SAVE_ENV([ + AC_CHECK_LIB([uuid], [uuid_generate_time_safe], [ have_uuid=yes AC_DEFINE([HAVE_UUID_GENERATE_TIME_SAFE], [1]) ]) @@ -3712,6 +3453,7 @@ AS_VAR_IF([with_system_expat], [yes], [ ]) AC_SUBST([LIBEXPAT_CFLAGS]) +AC_SUBST([LIBEXPAT_LDFLAGS]) AC_SUBST([LIBEXPAT_INTERNAL]) # Check for use of the system libffi library @@ -3741,66 +3483,12 @@ else with_system_ffi="yes" fi -dnl detect libffi -have_libffi=missing -AS_VAR_IF([with_system_ffi], [yes], [ - PKG_CHECK_MODULES([LIBFFI], [libffi], [have_libffi=yes], [ - WITH_SAVE_ENV([ - CPPFLAGS="$CPPFLAGS $LIBFFI_CFLAGS" - LDFLAGS="$LDFLAGS $LIBFFI_LIBS" - AC_CHECK_HEADER([ffi.h], [ - AC_CHECK_LIB([ffi], [ffi_call], [ - have_libffi=yes - LIBFFI_CFLAGS=${LIBFFI_CFLAGS-""} - LIBFFI_LIBS=${LIBFFI_LIBS-"-lffi"} - ], [have_libffi=no]) - ]) - ]) - ]) -], [ - AS_VAR_IF([ac_sys_system], [Darwin], [ - WITH_SAVE_ENV([ - CFLAGS="-I${SDKROOT}/usr/include/ffi $CFLAGS" - AC_CHECK_HEADER([ffi.h], [ - AC_CHECK_LIB([ffi], [ffi_call], [ - dnl use ffi from SDK root - have_libffi=yes - LIBFFI_CFLAGS="-I${SDKROOT}/usr/include/ffi -DUSING_APPLE_OS_LIBFFI=1" - LIBFFI_LIBS="-lffi" - ], [have_libffi=no]) - ]) - ]) - ]) -]) - -AS_VAR_IF([have_libffi], [yes], [ - ctypes_malloc_closure=no - AS_CASE([$ac_sys_system], - [Darwin], [ - dnl when do we need USING_APPLE_OS_LIBFFI? - AS_VAR_APPEND([LIBFFI_CFLAGS], [" -I\$(srcdir)/Modules/_ctypes/darwin -DMACOSX"]) - ctypes_malloc_closure=yes - ], - [sunos5], [AS_VAR_APPEND([LIBFFI_LIBS], [" -mimpure-text"])] - ) - AS_VAR_IF([ctypes_malloc_closure], [yes], [ - MODULE__CTYPES_MALLOC_CLOSURE=_ctypes/malloc_closure.c - AS_VAR_APPEND([LIBFFI_CFLAGS], [" -DUSING_MALLOC_CLOSURE_DOT_C=1"]) - ]) - AC_SUBST([MODULE__CTYPES_MALLOC_CLOSURE]) - - dnl HAVE_LIBDL: for dlopen, see gh-76828 - AS_VAR_IF([ac_cv_lib_dl_dlopen], [yes], [AS_VAR_APPEND([LIBFFI_LIBS], [" -ldl"])]) - - WITH_SAVE_ENV([ - CFLAGS="$LIBFFI_CFLAGS $CFLAGS" - LDFLAGS="$LIBFFI_LIBS $LDFLAGS" - - PY_CHECK_FUNC([ffi_prep_cif_var], [#include <ffi.h>]) - PY_CHECK_FUNC([ffi_prep_closure_loc], [#include <ffi.h>]) - PY_CHECK_FUNC([ffi_closure_alloc], [#include <ffi.h>]) - ]) -]) +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="" +fi +AC_SUBST(LIBFFI_INCLUDEDIR) # Check for use of the system libmpdec library AC_MSG_CHECKING(for --with-system-libmpdec) @@ -3818,14 +3506,10 @@ AS_VAR_IF([with_system_libmpdec], [yes], [ LIBMPDEC_CFLAGS="-I\$(srcdir)/Modules/_decimal/libmpdec" LIBMPDEC_LDFLAGS="-lm \$(LIBMPDEC_A)" LIBMPDEC_INTERNAL="\$(LIBMPDEC_A)" - - dnl Disable forced inlining in debug builds, see GH-94847 - AS_VAR_IF([with_pydebug], [yes], [ - AS_VAR_APPEND([LIBMPDEC_CFLAGS], [" -DTEST_COVERAGE"]) - ]) ]) AC_SUBST([LIBMPDEC_CFLAGS]) +AC_SUBST([LIBMPDEC_LDFLAGS]) AC_SUBST([LIBMPDEC_INTERNAL]) # Check whether _decimal should use a coroutine-local or thread-local context @@ -3919,7 +3603,7 @@ PKG_CHECK_MODULES([LIBNSL], [libnsl], [have_nis=yes], [ AS_VAR_IF([have_nis], [yes], [ WITH_SAVE_ENV([ - CPPFLAGS="$CPPFLAGS $LIBNSL_CFLAGS" + CPPFLAGS="$LIBNSL_CFLAGS $CFLAGS" AC_CHECK_HEADERS([rpc/rpc.h]) ]) ]) @@ -3930,9 +3614,6 @@ AS_CASE([$ac_sys_system], [OSSAUDIODEV_LIBS=""] ) -dnl detect sqlite3 from Emscripten emport -PY_CHECK_EMSCRIPTEN_PORT([LIBSQLITE3], [-sUSE_SQLITE3]) - dnl Check for SQLite library. Use pkg-config if available. PKG_CHECK_MODULES( [LIBSQLITE3], [sqlite3 >= 3.7.15], [], [ @@ -3952,7 +3633,7 @@ AC_DEFUN([PY_CHECK_SQLITE_FUNC], [ WITH_SAVE_ENV([ dnl bpo-45774/GH-29507: The CPP check in AC_CHECK_HEADER can fail on FreeBSD, dnl hence CPPFLAGS instead of CFLAGS. - CPPFLAGS="$CPPFLAGS $LIBSQLITE3_CFLAGS" + CPPFLAGS="$LIBSQLITE3_CFLAGS $CFLAGS" LDFLAGS="$LIBSQLITE3_LIBS $LDFLAGS" AC_CHECK_HEADER([sqlite3.h], [ @@ -4056,7 +3737,7 @@ AS_CASE([$ac_sys_system], ) WITH_SAVE_ENV([ - CPPFLAGS="$CPPFLAGS $TCLTK_CFLAGS" + CPPFLAGS="$TCLTK_CFLAGS $CFLAGS" LIBS="$TCLTK_LIBS $LDFLAGS" AC_LINK_IFELSE([ @@ -4098,7 +3779,7 @@ dnl NOTE: gdbm does not provide a pkgconf file. AC_ARG_VAR([GDBM_CFLAGS], [C compiler flags for gdbm]) AC_ARG_VAR([GDBM_LIBS], [additional linker flags for gdbm]) WITH_SAVE_ENV([ - CPPFLAGS="$CPPFLAGS $GDBM_CFLAGS" + CPPFLAGS="$GDBM_CFLAGS $CFLAGS" LDFLAGS="$GDBM_LIBS $LDFLAGS" AC_CHECK_HEADERS([gdbm.h], [ AC_CHECK_LIB([gdbm], [gdbm_open], [ @@ -4108,30 +3789,17 @@ WITH_SAVE_ENV([ ], [have_gdbm=no]) ]) -dnl check for _dbmmodule.c dependencies -dnl ndbm, gdbm_compat, libdb +# check for _dbmmodule.c dependencies AC_CHECK_HEADERS([ndbm.h], [ - WITH_SAVE_ENV([ - AC_SEARCH_LIBS([dbm_open], [ndbm gdbm_compat]) - ]) + LIBS_SAVE="$LIBS" + AC_CHECK_LIB([ndbm], [dbm_open]) + LIBS="$LIBS_SAVE" + AC_CHECK_LIB([gdbm_compat], [dbm_open]) + LIBS="$LIBS_SAVE" ]) -AC_MSG_CHECKING([for ndbm presence and linker args]) -AS_CASE([$ac_cv_search_dbm_open], - [*ndbm*|*gdbm_compat*], [ - dbm_ndbm="$ac_cv_search_dbm_open" - have_ndbm=yes - ], - [none*], [ - dbm_ndbm="" - have_ndbm=yes - ], - [no], [have_ndbm=no] -) -AC_MSG_RESULT([$have_ndbm ($dbm_ndbm)]) - -dnl "gdbm-ndbm.h" and "gdbm/ndbm.h" are both normalized to "gdbm_ndbm_h" -dnl unset ac_cv_header_gdbm_ndbm_h to prevent false positive cache hits. +# "gdbm-ndbm.h" and "gdbm/ndbm.h" are both normalized to "gdbm_ndbm_h" +# unset ac_cv_header_gdbm_ndbm_h to prevent false positive cache hits. AS_UNSET([ac_cv_header_gdbm_ndbm_h]) AC_CACHE_VAL([ac_cv_header_gdbm_slash_ndbm_h], [ AC_CHECK_HEADER( @@ -4156,26 +3824,26 @@ AS_VAR_IF([ac_cv_header_gdbm_dash_ndbm_h], [yes], [ AS_UNSET([ac_cv_header_gdbm_ndbm_h]) if test "$ac_cv_header_gdbm_slash_ndbm_h" = yes -o "$ac_cv_header_gdbm_dash_ndbm_h" = yes; then - WITH_SAVE_ENV([ - AC_SEARCH_LIBS([dbm_open], [gdbm_compat]) - ]) + LIBS_SAVE="$LIBS" + AC_CHECK_LIB([gdbm_compat], [dbm_open]) + LIBS="$LIBS_SAVE" fi # Check for libdb >= 5 with dbm_open() # db.h re-defines the name of the function AC_CHECK_HEADERS([db.h], [ AC_CACHE_CHECK([for libdb], [ac_cv_have_libdb], [ - WITH_SAVE_ENV([ - LIBS="$LIBS -ldb" - AC_LINK_IFELSE([AC_LANG_PROGRAM([ - #define DB_DBM_HSEARCH 1 - #include <db.h> - #if DB_VERSION_MAJOR < 5 - #error "dh.h: DB_VERSION_MAJOR < 5 is not supported." - #endif - ], [DBM *dbm = dbm_open(NULL, 0, 0)]) - ], [ac_cv_have_libdb=yes], [ac_cv_have_libdb=no]) - ]) + LIBS_SAVE="$LIBS" + LIBS="$LIBS -ldb" + AC_LINK_IFELSE([AC_LANG_PROGRAM([ + #define DB_DBM_HSEARCH 1 + #include <db.h> + #if DB_VERSION_MAJOR < 5 + #error "dh.h: DB_VERSION_MAJOR < 5 is not supported." + #endif + ], [DBM *dbm = dbm_open(NULL, 0, 0)]) + ], [ac_cv_have_libdb=yes], [ac_cv_have_libdb=no]) + LIBS="$LIBS_SAVE" ]) AS_VAR_IF([ac_cv_have_libdb], [yes], [ AC_DEFINE([HAVE_LIBDB], [1], [Define to 1 if you have the `db' library (-ldb).]) @@ -4183,7 +3851,7 @@ AC_CHECK_HEADERS([db.h], [ ]) # Check for --with-dbmliborder -AC_MSG_CHECKING([for --with-dbmliborder]) +AC_MSG_CHECKING(for --with-dbmliborder) AC_ARG_WITH(dbmliborder, AS_HELP_STRING([--with-dbmliborder=db1:db2:...], [override order to check db backends for dbm; a valid value is a colon separated string with the backend names `ndbm', `gdbm' and `bdb'.]), [], [with_dbmliborder=gdbm:ndbm:bdb]) @@ -4203,42 +3871,7 @@ IFS=$as_save_IFS AS_VAR_IF([with_dbmliborder], [error], [ AC_MSG_ERROR([proper usage is --with-dbmliborder=db1:db2:... (gdbm:ndbm:bdb)]) ]) -AC_MSG_RESULT([$with_dbmliborder]) - -AC_MSG_CHECKING([for _dbm module CFLAGS and LIBS]) -have_dbm=no -as_save_IFS=$IFS -IFS=: -for db in $with_dbmliborder; do - case "$db" in - ndbm) - if test "$have_ndbm" = yes; then - DBM_CFLAGS="-DUSE_NDBM" - DBM_LIBS="$dbm_ndbm" - have_dbm=yes - break - fi - ;; - gdbm) - if test "$have_gdbm_compat" = yes; then - DBM_CFLAGS="-DUSE_GDBM_COMPAT" - DBM_LIBS="-lgdbm_compat" - have_dbm=yes - break - fi - ;; - bdb) - if test "$ac_cv_have_libdb" = yes; then - DBM_CFLAGS="-DUSE_BERKDB" - DBM_LIBS="-ldb" - have_dbm=yes - break - fi - ;; - esac -done -IFS=$as_save_IFS -AC_MSG_RESULT([$DBM_CFLAGS $DBM_LIBS]) +AC_MSG_RESULT($with_dbmliborder) # Templates for things AC_DEFINEd more than once. # For a single AC_DEFINE, no template is needed. @@ -4328,11 +3961,9 @@ pthread_create (NULL, NULL, start_routine, NULL)]])],[ posix_threads=yes LIBS="$LIBS -lcma" ],[ - AS_CASE([$ac_sys_system], - [WASI], [posix_threads=stub], - [AC_MSG_ERROR([could not find pthreads on your system])] - ) - ])])])])])]) + AC_MSG_ERROR([could not find pthreads on your system]) + ]) + ])])])])]) AC_CHECK_LIB(mpc, usconfig, [ LIBS="$LIBS -lmpc" @@ -4395,9 +4026,6 @@ if test "$posix_threads" = "yes"; then AC_CHECK_FUNCS(pthread_getcpuclockid) fi -AS_VAR_IF([posix_threads], [stub], [ - AC_DEFINE([HAVE_PTHREAD_STUBS], [1], [Define if platform requires stubbed pthreads support]) -]) # Check for enable-ipv6 AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified]) @@ -4779,11 +4407,11 @@ fi # checks for library functions AC_CHECK_FUNCS([ \ accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ - copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ + copy_file_range ctermid dup3 execv explicit_bzero explicit_memset \ faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ - getgrnam_r getgrouplist getgroups gethostname getitimer getloadavg getlogin \ + getgrnam_r getgrouplist getgroups getitimer getloadavg getlogin \ getpeername getpgid getpid getppid getpriority _getpty \ getpwent getpwnam_r getpwuid getpwuid_r getresgid getresuid getrusage getsid getspent \ getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ @@ -4817,6 +4445,26 @@ AC_CHECK_DECL(dirfd, [#include <sys/types.h> #include <dirent.h>]) +dnl PY_CHECK_FUNC(FUNCTION, [INCLUDES], [AC_DEFINE-VAR]) +AC_DEFUN([PY_CHECK_FUNC], +[ AS_VAR_PUSHDEF([py_var], [ac_cv_func_$1]) + AS_VAR_PUSHDEF([py_define], m4_ifblank([$3], [[HAVE_]m4_toupper($1)], [$3])) + AC_CACHE_CHECK( + [for $1], + [py_var], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([$2], [void *x=$1])], + [AS_VAR_SET([py_var], [yes])], + [AS_VAR_SET([py_var], [no])])] + ) + AS_VAR_IF( + [py_var], + [yes], + [AC_DEFINE([py_define], [1], [Define if you have the '$1' function.])]) + AS_VAR_POPDEF([py_var]) + AS_VAR_POPDEF([py_define]) +]) + # For some functions, having a definition is not sufficient, since # we want to take their address. PY_CHECK_FUNC([chroot], [#include <unistd.h>]) @@ -4947,98 +4595,81 @@ fi dnl Check for compression libraries AH_TEMPLATE([HAVE_ZLIB_COPY], [Define if the zlib library has inflateCopy]) -dnl detect zlib from Emscripten emport -PY_CHECK_EMSCRIPTEN_PORT([ZLIB], [-sUSE_ZLIB]) - PKG_CHECK_MODULES([ZLIB], [zlib >= 1.2.0], [ have_zlib=yes dnl zlib 1.2.0 (2003) added inflateCopy AC_DEFINE([HAVE_ZLIB_COPY], [1]) ], [ - WITH_SAVE_ENV([ - CPPFLAGS="$CPPFLAGS $ZLIB_CFLAGS" - LDFLAGS="$LDFLAGS $ZLIB_LIBS" - AC_CHECK_HEADERS([zlib.h], [ - PY_CHECK_LIB([z], [gzread], [have_zlib=yes], [have_zlib=no]) - ], [have_zlib=no]) - AS_VAR_IF([have_zlib], [yes], [ - ZLIB_CFLAGS=${ZLIB_CFLAGS-""} - ZLIB_LIBS=${ZLIB_LIBS-"-lz"} - PY_CHECK_LIB([z], [inflateCopy], [AC_DEFINE([HAVE_ZLIB_COPY], [1])]) + AC_CHECK_HEADERS([zlib.h], [ + WITH_SAVE_ENV([ + AC_CHECK_LIB([z], [gzread], [ + have_zlib=yes + ZLIB_CFLAGS=${ZLIB_CFLAGS-""} + ZLIB_LIBS=${ZLIB_LIBS-"-lz"} + AC_CHECK_LIB([z], [inflateCopy], [AC_DEFINE([HAVE_ZLIB_COPY], [1])]) + ], [ + have_zlib=no + ]) ]) - ]) + ], [have_zlib=no]) ]) +if test "$have_zlib" = "yes" -a "$ac_sys_system" = "Emscripten" -a "$ZLIB_LIBS" = "-lz"; then + ZLIB_CFLAGS="-sUSE_ZLIB" + ZLIB_LIBS="-sUSE_ZLIB" +fi + dnl binascii can use zlib for optimized crc32. AS_VAR_IF([have_zlib], [yes], [ BINASCII_CFLAGS="-DUSE_ZLIB_CRC32 $ZLIB_CFLAGS" BINASCII_LIBS="$ZLIB_LIBS" ]) -dnl detect bzip2 from Emscripten emport -PY_CHECK_EMSCRIPTEN_PORT([BZIP2], [-sUSE_BZIP2]) - PKG_CHECK_MODULES([BZIP2], [bzip2], [have_bzip2=yes], [ - WITH_SAVE_ENV([ - CPPFLAGS="$CPPFLAGS $BZIP2_CFLAGS" - LDFLAGS="$LDFLAGS $BZIP2_LIBS" - AC_CHECK_HEADERS([bzlib.h], [ - AC_CHECK_LIB([bz2], [BZ2_bzCompress], [have_bzip2=yes], [have_bzip2=no]) - ], [have_bzip2=no]) - AS_VAR_IF([have_bzip2], [yes], [ - BZIP2_CFLAGS=${BZIP2_CFLAGS-""} - BZIP2_LIBS=${BZIP2_LIBS-"-lbz2"} + AC_CHECK_HEADERS([bzlib.h], [ + WITH_SAVE_ENV([ + AC_CHECK_LIB([bz2], [BZ2_bzCompress], [ + have_bzip2=yes + BZIP2_CFLAGS=${BZIP2_CFLAGS-""} + BZIP2_LIBS=${BZIP2_LIBS-"-lbz2"} + ], [have_bzip2=no]) ]) - ]) + ], [have_bzip2=no]) ]) +if test "$have_bzip2" = "yes" -a "$ac_sys_system" = "Emscripten" -a "$BZIP2_LIBS" = "-lbz2"; then + BZIP2_CFLAGS="-sUSE_BZIP2" + BZIP2_LIBS="-sUSE_BZIP2" +fi + + PKG_CHECK_MODULES([LIBLZMA], [liblzma], [have_liblzma=yes], [ - WITH_SAVE_ENV([ - CPPFLAGS="$CPPFLAGS $LIBLZMA_CFLAGS" - LDFLAGS="$LDFLAGS $LIBLZMA_LIBS" - AC_CHECK_HEADERS([lzma.h], [ - AC_CHECK_LIB([lzma], [lzma_easy_encoder], [have_liblzma=yes], [have_liblzma=no]) - ], [have_liblzma=no]) - AS_VAR_IF([have_liblzma], [yes], [ - LIBLZMA_CFLAGS=${LIBLZMA_CFLAGS-""} - LIBLZMA_LIBS=${LIBLZMA_LIBS-"-llzma"} + AC_CHECK_HEADERS([lzma.h], [ + WITH_SAVE_ENV([ + AC_CHECK_LIB([lzma], [lzma_easy_encoder], [ + have_liblzma=yes + LIBLZMA_CFLAGS=${LIBLZMA_CFLAGS-""} + LIBLZMA_LIBS=${LIBLZMA_LIBS-"-llzma"} + ], [have_liblzma=no]) ]) - ]) + ], [have_liblzma=no]) ]) -dnl PY_CHECK_NETDB_FUNC(FUNCTION) -AC_DEFUN([PY_CHECK_NETDB_FUNC], [PY_CHECK_FUNC([$1], [#include <netdb.h>])]) +PY_CHECK_FUNC([hstrerror], [#include <netdb.h>]) -PY_CHECK_NETDB_FUNC([hstrerror]) -dnl not available in WASI yet -PY_CHECK_NETDB_FUNC([getservbyname]) -PY_CHECK_NETDB_FUNC([getservbyport]) -PY_CHECK_NETDB_FUNC([gethostbyname]) -PY_CHECK_NETDB_FUNC([gethostbyaddr]) -PY_CHECK_NETDB_FUNC([getprotobyname]) +PY_CHECK_FUNC([inet_aton], [ +#include <sys/types.h> +#include <sys/socket.h> +#include <netinet/in.h> +#include <arpa/inet.h> +]) -dnl PY_CHECK_SOCKET_FUNC(FUNCTION) -AC_DEFUN([PY_CHECK_SOCKET_FUNC], [PY_CHECK_FUNC([$1], [ +PY_CHECK_FUNC([inet_pton], [ #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> -])]) - -PY_CHECK_SOCKET_FUNC([inet_aton]) -PY_CHECK_SOCKET_FUNC([inet_ntoa]) -PY_CHECK_SOCKET_FUNC([inet_pton]) -dnl not available in WASI yet -PY_CHECK_SOCKET_FUNC([getpeername]) -PY_CHECK_SOCKET_FUNC([getsockname]) -PY_CHECK_SOCKET_FUNC([accept]) -PY_CHECK_SOCKET_FUNC([bind]) -PY_CHECK_SOCKET_FUNC([connect]) -PY_CHECK_SOCKET_FUNC([listen]) -PY_CHECK_SOCKET_FUNC([recvfrom]) -PY_CHECK_SOCKET_FUNC([sendto]) -PY_CHECK_SOCKET_FUNC([setsockopt]) -PY_CHECK_SOCKET_FUNC([socket]) +]) # On some systems, setgroups is in unistd.h, on others, in grp.h PY_CHECK_FUNC([setgroups], [ @@ -5104,7 +4735,7 @@ PKG_CHECK_MODULES([LIBCRYPT], [libxcrypt >= 3.1.1], [ ]) WITH_SAVE_ENV([ - CPPFLAGS="$CPPFLAGS $LIBCRYPT_CFLAGS" + CPPFLAGS="$LIBCRYPT_CFLAGS $CFLAGS" LIBS="$LIBCRYPT_LIBS $LIBS" AC_CACHE_CHECK([for crypt or crypt_r], [ac_cv_crypt_crypt], [ AC_LINK_IFELSE([AC_LANG_PROGRAM([ @@ -5610,7 +5241,7 @@ AS_VAR_IF([ac_cv_gcc_asm_for_mc68881], [yes], [ # rounding issues. The result of this test has little meaning on non # IEEE 754 platforms. On IEEE 754, test should return 1 if rounding # mode is round-to-nearest and double rounding issues are present, and -# 0 otherwise. See https://github.com/python/cpython/issues/47186 for more info. +# 0 otherwise. See http://bugs.python.org/issue2937 for more info. AC_CACHE_CHECK([for x87-style double rounding], [ac_cv_x87_double_rounding], [ # $BASECFLAGS may affect the result ac_save_cc="$CC" @@ -5954,171 +5585,127 @@ then [Define this if you have flockfile(), getc_unlocked(), and funlockfile()]) fi -dnl Check for libreadline and libedit -dnl - libreadline provides "readline/readline.h" header and "libreadline" -dnl shared library. pkg-config file is readline.pc -dnl - libedit provides "editline/readline.h" header and "libedit" shared -dnl library. pkg-config file ins libedit.pc -dnl - editline is not supported ("readline.h" and "libeditline" shared library) -dnl -dnl NOTE: In the past we checked if readline needs an additional termcap -dnl library (tinfo ncursesw ncurses termcap). We now assume that libreadline -dnl or readline.pc provide correct linker information. - -AH_TEMPLATE([WITH_EDITLINE], [Define to build the readline module against libedit.]) - -AC_ARG_WITH( - [readline], - [AS_HELP_STRING([--with(out)-readline@<:@=editline|readline|no@:>@], - [use libedit for backend or disable readline module])], - [ - AS_CASE([$with_readline], - [editline|edit], [with_readline=edit], - [yes|readline], [with_readline=readline], - [no], [], - [AC_MSG_ERROR([proper usage is --with(out)-readline@<:@=editline|readline|no@:>@])] - ) - ], - [with_readline=readline] -) +AC_ARG_WITH([readline], + [AS_HELP_STRING([--with(out)-readline@<:@=editline@:>@], + [use Editline for backend or disable readline module])], + [], + [with_readline=yes]) -AS_VAR_IF([with_readline], [readline], [ - PKG_CHECK_MODULES([LIBREADLINE], [readline], [ - LIBREADLINE=readline - READLINE_CFLAGS=$LIBREADLINE_CFLAGS - READLINE_LIBS=$LIBREADLINE_LIBS - ], [ - WITH_SAVE_ENV([ - CPPFLAGS="$CPPFLAGS $LIBREADLINE_CFLAGS" - LDFLAGS="$LDFLAGS $LIBREADLINE_LIBS" - AC_CHECK_HEADERS([readline/readline.h], [ - AC_CHECK_LIB([readline], [readline], [ - LIBREADLINE=readline - READLINE_CFLAGS=${LIBREADLINE_CFLAGS-""} - READLINE_LIBS=${LIBREADLINE_LIBS-"-lreadline"} - ], [with_readline=no]) - ], [with_readline=no]) - ]) - ]) -]) +# check where readline lives +py_cv_lib_readline=no +# save the value of LIBS so we don't actually link Python with readline +LIBS_no_readline=$LIBS -AS_VAR_IF([with_readline], [edit], [ - PKG_CHECK_MODULES([LIBEDIT], [libedit], [ - AC_DEFINE([WITH_EDITLINE], [1]) +if test "$with_readline" != no; then + case "$with_readline" in + editline|edit) LIBREADLINE=edit - READLINE_CFLAGS=$LIBEDIT_CFLAGS - READLINE_LIBS=$LIBEDIT_LIBS - ], [ - WITH_SAVE_ENV([ - CPPFLAGS="$CPPFLAGS $LIBEDIT_CFLAGS" - LDFLAGS="$LDFLAGS $LIBEDIT_LIBS" - AC_CHECK_HEADERS([editline/readline.h], [ - AC_CHECK_LIB([edit], [readline], [ - LIBREADLINE=edit - AC_DEFINE([WITH_EDITLINE], [1]) - READLINE_CFLAGS=${LIBEDIT_CFLAGS-""} - READLINE_LIBS=${LIBEDIT_LIBS-"-ledit"} - ], [with_readline=no]) - ], [with_readline=no]) - ]) - ]) -]) - -dnl pyconfig.h defines _XOPEN_SOURCE=700 -READLINE_CFLAGS=$(echo $READLINE_CFLAGS | sed 's/-D_XOPEN_SOURCE=600//g') - -AC_MSG_CHECKING([how to link readline]) -AS_VAR_IF([with_readline], [no], [ - AC_MSG_RESULT([no]) -], [ - AC_MSG_RESULT([$with_readline (CFLAGS: $READLINE_CFLAGS, LIBS: $READLINE_LIBS)]) - - WITH_SAVE_ENV([ - CPPFLAGS="$CPPFLAGS $READLINE_CFLAGS" - LIBS="$READLINE_LIBS $LIBS" - LIBS_SAVE=$LIBS - - m4_define([readline_includes], [ - #include <stdio.h> /* Must be first for Gnu Readline */ - #ifdef WITH_EDITLINE - # include <editline/readline.h> - #else - # include <readline/readline.h> - # include <readline/history.h> - #endif - ]) - - # check for readline 2.2 - AC_CHECK_DECL([rl_completion_append_character], [ - AC_DEFINE([HAVE_RL_COMPLETION_APPEND_CHARACTER], [1], [Define if you have readline 2.2]) - ], [], [readline_includes]) - - AC_CHECK_DECL([rl_completion_suppress_append], [ - AC_DEFINE([HAVE_RL_COMPLETION_SUPPRESS_APPEND], [1], [Define if you have rl_completion_suppress_append]) - ], [], [readline_includes]) + AC_DEFINE(WITH_EDITLINE, 1, + [Define to build the readline module against Editline.]) + ;; + yes|readline) + LIBREADLINE=readline + ;; + *) + AC_MSG_ERROR([proper usage is --with(out)-readline@<:@=editline@:>@]) + ;; + esac - # check for readline 4.0 - AC_CACHE_CHECK([for rl_pre_input_hook in -l$LIBREADLINE], [ac_cv_readline_rl_pre_input_hook], [ - AC_LINK_IFELSE( - [AC_LANG_PROGRAM([readline_includes], [void *x = rl_pre_input_hook])], - [ac_cv_readline_rl_pre_input_hook=yes], [ac_cv_readline_rl_pre_input_hook=no] - ) - ]) - AS_VAR_IF([ac_cv_readline_rl_pre_input_hook], [yes], [ - AC_DEFINE([HAVE_RL_PRE_INPUT_HOOK], [1], [Define if you have readline 4.0]) - ]) + # On some systems we need to link readline to a termcap compatible + # library. NOTE: Keep the precedence of listed libraries synchronised + # with setup.py. + AC_MSG_CHECKING([how to link readline libs]) + for py_libtermcap in "" tinfo ncursesw ncurses curses termcap; do + if test -z "$py_libtermcap"; then + READLINE_LIBS="-l$LIBREADLINE" + else + READLINE_LIBS="-l$LIBREADLINE -l$py_libtermcap" + fi + LIBS="$READLINE_LIBS $LIBS_no_readline" + AC_LINK_IFELSE( + [AC_LANG_CALL([],[readline])], + [py_cv_lib_readline=yes]) + if test $py_cv_lib_readline = yes; then + break + fi + done - # also in 4.0 - AC_CACHE_CHECK([for rl_completion_display_matches_hook in -l$LIBREADLINE], [ac_cv_readline_rl_completion_display_matches_hook], [ - AC_LINK_IFELSE( - [AC_LANG_PROGRAM([readline_includes], [void *x = rl_completion_display_matches_hook])], - [ac_cv_readline_rl_completion_display_matches_hook=yes], [ac_cv_readline_rl_completion_display_matches_hook=no] - ) - ]) - AS_VAR_IF([ac_cv_readline_rl_completion_display_matches_hook], [yes], [ - AC_DEFINE([HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK], [1], [Define if you have readline 4.0]) - ]) + # Uncomment this line if you want to use READLINE_LIBS in Makefile or scripts + #AC_SUBST([READLINE_LIBS]) + if test $py_cv_lib_readline = no; then + AC_MSG_RESULT([none]) + else + AC_MSG_RESULT([$READLINE_LIBS]) + AC_DEFINE(HAVE_LIBREADLINE, 1, + [Define to build the readline module.]) + fi +fi - # also in 4.0, but not in editline - AC_CACHE_CHECK([for rl_resize_terminal in -l$LIBREADLINE], [ac_cv_readline_rl_resize_terminal], [ - AC_LINK_IFELSE( - [AC_LANG_PROGRAM([readline_includes], [void *x = rl_resize_terminal])], - [ac_cv_readline_rl_resize_terminal=yes], [ac_cv_readline_rl_resize_terminal=no] - ) +if test "$py_cv_lib_readline" = yes; then + # check for readline 2.2 + AC_CHECK_DECL(rl_completion_append_character, + AC_DEFINE(HAVE_RL_COMPLETION_APPEND_CHARACTER, 1, + [Define if you have readline 2.2]),, + [ +#include <stdio.h> /* Must be first for Gnu Readline */ +#ifdef WITH_EDITLINE +# include <editline/readline.h> +#else +# include <readline/readline.h> +#endif ]) - AS_VAR_IF([ac_cv_readline_rl_resize_terminal], [yes], [ - AC_DEFINE([HAVE_RL_RESIZE_TERMINAL], [1], [Define if you have readline 4.0]) + AC_CHECK_DECL(rl_completion_suppress_append, + AC_DEFINE(HAVE_RL_COMPLETION_SUPPRESS_APPEND, 1, + [Define if you have rl_completion_suppress_append]),, + [ +#include <stdio.h> /* Must be first for Gnu Readline */ +#ifdef WITH_EDITLINE +# include <editline/readline.h> +#else +# include <readline/readline.h> +#endif ]) - # check for readline 4.2 - AC_CACHE_CHECK([for rl_completion_matches in -l$LIBREADLINE], [ac_cv_readline_rl_completion_matches], [ - AC_LINK_IFELSE( - [AC_LANG_PROGRAM([readline_includes], [void *x = rl_completion_matches])], - [ac_cv_readline_rl_completion_matches=yes], [ac_cv_readline_rl_completion_matches=no] - ) - ]) - AS_VAR_IF([ac_cv_readline_rl_completion_matches], [yes], [ - AC_DEFINE([HAVE_RL_COMPLETION_MATCHES], [1], [Define if you have readline 4.2]) + # check for readline 4.0 + AC_CHECK_LIB($LIBREADLINE, rl_pre_input_hook, + AC_DEFINE(HAVE_RL_PRE_INPUT_HOOK, 1, + [Define if you have readline 4.0]),,$READLINE_LIBS) + + # also in 4.0 + AC_CHECK_LIB($LIBREADLINE, rl_completion_display_matches_hook, + AC_DEFINE(HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK, 1, + [Define if you have readline 4.0]),,$READLINE_LIBS) + + # also in 4.0, but not in editline + AC_CHECK_LIB($LIBREADLINE, rl_resize_terminal, + AC_DEFINE(HAVE_RL_RESIZE_TERMINAL, 1, + [Define if you have readline 4.0]),,$READLINE_LIBS) + + # check for readline 4.2 + AC_CHECK_LIB($LIBREADLINE, rl_completion_matches, + AC_DEFINE(HAVE_RL_COMPLETION_MATCHES, 1, + [Define if you have readline 4.2]),,$READLINE_LIBS) + + # also in readline 4.2 + AC_CHECK_DECL(rl_catch_signals, + AC_DEFINE(HAVE_RL_CATCH_SIGNAL, 1, + [Define if you can turn off readline's signal handling.]),, + [ +#include <stdio.h> /* Must be first for Gnu Readline */ +#ifdef WITH_EDITLINE +# include <editline/readline.h> +#else +# include <readline/readline.h> +#endif ]) - # also in readline 4.2 - AC_CHECK_DECL([rl_catch_signals], [ - AC_DEFINE([HAVE_RL_CATCH_SIGNAL], [1], [Define if you can turn off readline's signal handling.]) - ], [], [readline_includes]) - - AC_CACHE_CHECK([for append_history in -l$LIBREADLINE], [ac_cv_readline_append_history], [ - AC_LINK_IFELSE( - [AC_LANG_PROGRAM([readline_includes], [void *x = append_history])], - [ac_cv_readline_append_history=yes], [ac_cv_readline_append_history=no] - ) - ]) - AS_VAR_IF([ac_cv_readline_append_history], [yes], [ - AC_DEFINE([HAVE_RL_APPEND_HISTORY], [1], [Define if readline supports append_history]) - ]) + AC_CHECK_LIB($LIBREADLINE, append_history, + AC_DEFINE(HAVE_RL_APPEND_HISTORY, 1, + [Define if readline supports append_history]),,$READLINE_LIBS) +fi - m4_undefine([readline_includes]) - ])dnl WITH_SAVE_ENV() -]) +# End of readline checks: restore LIBS +LIBS=$LIBS_no_readline AC_CACHE_CHECK([for broken nice()], [ac_cv_broken_nice], [ AC_RUN_IFELSE([AC_LANG_SOURCE([[ @@ -6274,128 +5861,14 @@ then [Define if you have struct stat.st_mtimensec]) fi -dnl check for ncurses/ncursesw and panel/panelw -dnl NOTE: old curses is not detected. -dnl have_curses=[no, ncursesw, ncurses] -dnl have_panel=[no, panelw, panel] -have_curses=no -have_panel=no - -AH_TEMPLATE([HAVE_NCURSESW], [Define to 1 if you have the `ncursesw' library.]) -AC_CHECK_HEADERS([curses.h ncurses.h]) - -AS_VAR_IF([ac_cv_header_ncurses_h], [yes], [ - if test "$ac_sys_system" != "Darwin"; then - dnl On macOS, there is no separate /usr/lib/libncursesw nor libpanelw. - PKG_CHECK_MODULES([CURSES], [ncursesw], [ - AC_DEFINE([HAVE_NCURSESW], [1]) - have_curses=ncursesw - ], [ - WITH_SAVE_ENV([ - AC_CHECK_LIB([ncursesw], [initscr], [ - AC_DEFINE([HAVE_NCURSESW], [1]) - have_curses=ncursesw - CURSES_CFLAGS=${CURSES_CFLAGS-""} - CURSES_LIBS=${CURSES_LIBS-"-lncursesw"} - ]) - ]) - ]) - fi - - AS_VAR_IF([have_curses], [no], [ - PKG_CHECK_MODULES([CURSES], [ncurses], [ - have_curses=ncurses - ], [ - WITH_SAVE_ENV([ - AC_CHECK_LIB([ncurses], [initscr], [ - have_curses=ncurses - CURSES_CFLAGS=${CURSES_CFLAGS-""} - CURSES_LIBS=${CURSES_LIBS-"-lncurses"} - ]) - ]) - ]) - ]) - -])dnl ac_cv_header_ncurses_h = yes - -dnl remove _XOPEN_SOURCE macro from curses cflags. pyconfig.h sets -dnl the macro to 700. -CURSES_CFLAGS=$(echo $CURSES_CFLAGS | sed 's/-D_XOPEN_SOURCE=600//g') - -if test "$have_curses" = no -a "$ac_sys_system" = "Darwin"; then - dnl On macOS, there is no separate /usr/lib/libncursesw nor libpanelw. - dnl If we are here, we found a locally-supplied version of libncursesw. - dnl There should also be a libpanelw. - dnl _XOPEN_SOURCE defines are usually excluded for macOS, but we need - dnl _XOPEN_SOURCE_EXTENDED here for ncurses wide char support. - - AS_VAR_APPEND([CURSES_CFLAGS], [" -D_XOPEN_SOURCE_EXTENDED=1"]) - AC_DEFINE([HAVE_NCURSESW], [1]) -fi - -dnl TODO: detect "curses" and special cases tinfo, terminfo, or termcap - -AC_MSG_CHECKING([curses module flags]) -AS_VAR_IF([have_curses], [no], [ - AC_MSG_RESULT([no]) -], [ - AC_MSG_RESULT([$have_curses (CFLAGS: $CURSES_CFLAGS, LIBS: $CURSES_LIBS)]) -]) - -dnl check for ncurses' panel/panelw library -AC_CHECK_HEADERS([panel.h]) - -AS_VAR_IF([ac_cv_header_panel_h], [yes], [ - - if test "$ac_sys_system" != "Darwin"; then - dnl On macOS, there is no separate /usr/lib/libncursesw nor libpanelw. - AS_VAR_IF([have_curses], [ncursesw], [ - PKG_CHECK_MODULES([PANEL], [panelw], [ - have_panel=panelw - ], [ - WITH_SAVE_ENV([ - AC_CHECK_LIB([panelw], [update_panels], [ - have_panel=panelw - PANEL_CFLAGS=${PANEL_CFLAGS-""} - PANEL_LIBS=${PANEL_LIBS-"-lpanelw"} - ]) - ]) - ]) - ]) - fi - - AS_VAR_IF([have_curses], [ncurses], [ - PKG_CHECK_MODULES([PANEL], [panel], [ - have_panel=panel - ], [ - WITH_SAVE_ENV([ - AC_CHECK_LIB([panel], [update_panels], [ - have_panel=panel - PANEL_CFLAGS=${PANEL_CFLAGS-""} - PANEL_LIBS=${PANEL_LIBS-"-lpanel"} - ]) - ]) - ]) - ]) - -])dnl ac_cv_header_panel_h = yes - -dnl pyconfig.h defines _XOPEN_SOURCE=700 -PANEL_CFLAGS=$(echo $PANEL_CFLAGS | sed 's/-D_XOPEN_SOURCE=600//g') - -AC_MSG_CHECKING([panel flags]) -AS_VAR_IF([have_panel], [no], [ - AC_MSG_RESULT([no]) -], [ - AC_MSG_RESULT([$have_panel (CFLAGS: $PANEL_CFLAGS, LIBS: $PANEL_LIBS)]) -]) - # first curses header check ac_save_cppflags="$CPPFLAGS" if test "$cross_compiling" = no; then CPPFLAGS="$CPPFLAGS -I/usr/include/ncursesw" fi +AC_CHECK_HEADERS(curses.h ncurses.h) + # On Solaris, term.h requires curses.h AC_CHECK_HEADERS(term.h,,,[ #ifdef HAVE_CURSES_H @@ -6613,7 +6086,6 @@ SRCDIRS="\ Modules/_sha3 \ Modules/_sqlite \ Modules/_sre \ - Modules/_testcapi \ Modules/_xxtestfuzz \ Modules/cjkcodecs \ Modules/expat \ @@ -6910,6 +6382,7 @@ AS_CASE($with_openssl_rpath, ] ) AC_MSG_RESULT($OPENSSL_RPATH) +AC_SUBST([OPENSSL_RPATH]) # This static linking is NOT OFFICIALLY SUPPORTED and not advertised. # Requires static OpenSSL build with position-independent code. Some features @@ -7067,6 +6540,23 @@ AS_VAR_IF([with_builtin_blake2], [yes], [ ], [have_libb2=no]) ]) +# --with-experimental-isolated-subinterpreters +AH_TEMPLATE(EXPERIMENTAL_ISOLATED_SUBINTERPRETERS, + [Better isolate subinterpreters, experimental build mode.]) +AC_MSG_CHECKING(for --with-experimental-isolated-subinterpreters) +AC_ARG_WITH(experimental-isolated-subinterpreters, + AS_HELP_STRING([--with-experimental-isolated-subinterpreters], + [better isolate subinterpreters, experimental build mode (default is no)]), +[ +if test "$withval" != no +then + AC_MSG_RESULT(yes); + AC_DEFINE(EXPERIMENTAL_ISOLATED_SUBINTERPRETERS) +else + AC_MSG_RESULT(no); +fi], +[AC_MSG_RESULT(no)]) + # Check whether to disable test modules. Once set, setup.py will not build # test extension modules and "make install" will not install test suites. AC_MSG_CHECKING([for --disable-test-modules]) @@ -7103,7 +6593,6 @@ AS_CASE([$ac_sys_system], dnl curses and tkinter user interface are not available. dnl dbm and gdbm aren't available, too. dnl Emscripten and WASI provide only stubs for pwd, grp APIs. - dnl resource functions (get/setrusage) are stubs, too. PY_STDLIB_MOD_SET_NA( [_curses], [_curses_panel], @@ -7119,7 +6608,6 @@ AS_CASE([$ac_sys_system], [nis], [ossaudiodev], [pwd], - [resource], [spwd], [syslog], ) @@ -7128,18 +6616,17 @@ AS_CASE([$ac_sys_system], dnl These modules are not particularly useful in browsers. PY_STDLIB_MOD_SET_NA( [fcntl], + [resource], [readline], [termios], ) ], [Emscripten/node*], [], [WASI/*], [ - dnl WASI SDK 15.0 does not support file locking, mmap, and more. + dnl WASI SDK 15.0 does not support file locking. PY_STDLIB_MOD_SET_NA( [_ctypes_test], - [fcntl], - [mmap], - [termios], + [fcntl], ) ] ) @@ -7156,6 +6643,17 @@ AS_CASE([$host_cpu], ) AC_SUBST([MODULE_BUILDTYPE]) +dnl Use Modules/Setup.stdlib as additional provider? +AC_MSG_CHECKING([for additional Modules/Setup files]) +AS_CASE([$ac_sys_system], + [Emscripten], [MODULES_SETUP_STDLIB=Modules/Setup.stdlib], + [WASI], [MODULES_SETUP_STDLIB=Modules/Setup.stdlib], + [MODULES_SETUP_STDLIB=] +) +AC_MSG_RESULT([$MODULES_SETUP_STDLIB]) +AC_SUBST([MODULES_SETUP_STDLIB]) + + dnl _MODULE_BLOCK_ADD([VAR], [VALUE]) dnl internal: adds $1=quote($2) to MODULE_BLOCK AC_DEFUN([_MODULE_BLOCK_ADD], [AS_VAR_APPEND([MODULE_BLOCK], ["$1=_AS_QUOTE([$2])$as_nl"])]) @@ -7163,7 +6661,7 @@ MODULE_BLOCK= dnl Check for stdlib extension modules dnl PY_STDLIB_MOD([NAME], [ENABLED-TEST], [SUPPORTED-TEST], [CFLAGS], [LDFLAGS]) -dnl sets MODULE_$NAME_STATE based on PY_STDLIB_MOD_SET_NA(), ENABLED-TEST, +dnl sets MODULE_$NAME based on PY_STDLIB_MOD_SET_NA(), ENABLED-TEST, dnl and SUPPORTED_TEST. ENABLED-TEST and SUPPORTED-TEST default to true if dnl empty. dnl n/a: marked unavailable on platform by PY_STDLIB_MOD_SET_NA() @@ -7181,7 +6679,7 @@ AC_DEFUN([PY_STDLIB_MOD], [ [AS_IF([m4_ifblank([$3], [true], [$3])], [modstate=yes], [modstate=missing])], [modstate=disabled]) ]) - _MODULE_BLOCK_ADD(modcond[_STATE], [$modstate]) + _MODULE_BLOCK_ADD(modcond, [$modstate]) AS_VAR_IF([modstate], [yes], [ m4_ifblank([$4], [], [_MODULE_BLOCK_ADD([MODULE_]m4_toupper([$1])[_CFLAGS], [$4])]) m4_ifblank([$5], [], [_MODULE_BLOCK_ADD([MODULE_]m4_toupper([$1])[_LDFLAGS], [$5])]) @@ -7202,7 +6700,7 @@ AC_DEFUN([PY_STDLIB_MOD_SIMPLE], [ dnl Check if module has been disabled by PY_STDLIB_MOD_SET_NA() AS_IF([test "$modstate" != "n/a"], [modstate=yes]) AM_CONDITIONAL(modcond, [test "$modstate" = yes]) - _MODULE_BLOCK_ADD(modcond[_STATE], [$modstate]) + _MODULE_BLOCK_ADD(modcond, [$modstate]) AS_VAR_IF([modstate], [yes], [ m4_ifblank([$2], [], [_MODULE_BLOCK_ADD([MODULE_]m4_toupper([$1])[_CFLAGS], [$2])]) m4_ifblank([$3], [], [_MODULE_BLOCK_ADD([MODULE_]m4_toupper([$1])[_LDFLAGS], [$3])]) @@ -7303,30 +6801,18 @@ PY_STDLIB_MOD([_blake2], PY_STDLIB_MOD([_crypt], [], [test "$ac_cv_crypt_crypt" = yes], [$LIBCRYPT_CFLAGS], [$LIBCRYPT_LIBS]) -PY_STDLIB_MOD([_ctypes], - [], [test "$have_libffi" = yes], - [$LIBFFI_CFLAGS], [$LIBFFI_LIBS]) -PY_STDLIB_MOD([_curses], - [], [test "$have_curses" != "no"], - [$CURSES_CFLAGS], [$CURSES_LIBS] -) -PY_STDLIB_MOD([_curses_panel], - [], [test "$have_panel" != "no"], - [$PANEL_CFLAGS $CURSES_CFLAGS], [$PANEL_LIBS $CURSES_LIBS] -) +dnl PY_STDLIB_MOD([_ctypes], [], [], [], []) +dnl PY_STDLIB_MOD([_curses], [], [], [], []) +dnl PY_STDLIB_MOD([_curses_panel], [], [], [], []) PY_STDLIB_MOD([_decimal], [], [], [$LIBMPDEC_CFLAGS], [$LIBMPDEC_LDFLAGS]) -PY_STDLIB_MOD([_dbm], - [test -n "$with_dbmliborder"], [test "$have_dbm" != "no"], - [$DBM_CFLAGS], [$DBM_LIBS]) +dnl PY_STDLIB_MOD([_dbm], [], [], [], []) PY_STDLIB_MOD([_gdbm], [test "$have_gdbm_dbmliborder" = yes], [test "$have_gdbm" = yes], [$GDBM_CFLAGS], [$GDBM_LIBS]) PY_STDLIB_MOD([nis], [], [test "$have_nis" = yes -a "$ac_cv_header_rpc_rpc_h" = yes], [$LIBNSL_CFLAGS], [$LIBNSL_LIBS]) - PY_STDLIB_MOD([readline], - [], [test "$with_readline" != "no"], - [$READLINE_CFLAGS], [$READLINE_LIBS]) +dnl PY_STDLIB_MOD([readline], [], [], [], []) PY_STDLIB_MOD([_sqlite3], [test "$have_sqlite3" = "yes"], [test "$have_supported_sqlite3" = "yes"], @@ -7360,11 +6846,8 @@ PY_STDLIB_MOD([_testinternalcapi], [test "$TEST_MODULES" = yes]) PY_STDLIB_MOD([_testbuffer], [test "$TEST_MODULES" = yes]) PY_STDLIB_MOD([_testimportmultiple], [test "$TEST_MODULES" = yes], [test "$ac_cv_func_dlopen" = yes]) PY_STDLIB_MOD([_testmultiphase], [test "$TEST_MODULES" = yes], [test "$ac_cv_func_dlopen" = yes]) -PY_STDLIB_MOD([xxsubtype], [test "$TEST_MODULES" = yes]) PY_STDLIB_MOD([_xxtestfuzz], [test "$TEST_MODULES" = yes]) -PY_STDLIB_MOD([_ctypes_test], - [test "$TEST_MODULES" = yes], [test "$have_libffi" = yes -a "$ac_cv_func_dlopen" = yes], - [], [$LIBM]) +PY_STDLIB_MOD([_ctypes_test], [test "$TEST_MODULES" = yes], [], [], [-lm]) dnl Limited API template modules. dnl The limited C API is not compatible with the Py_TRACE_REFS macro. @@ -7390,11 +6873,7 @@ fi AC_MSG_NOTICE([creating Makefile]) $SHELL $srcdir/Modules/makesetup -c $srcdir/Modules/config.c.in \ -s Modules \ - Modules/Setup.local Modules/Setup.stdlib Modules/Setup.bootstrap $srcdir/Modules/Setup -if test $? -ne 0; then - AC_MSG_ERROR([makesetup failed]) -fi - + Modules/Setup.local $MODULES_SETUP_STDLIB Modules/Setup.bootstrap $srcdir/Modules/Setup mv config.c Modules if test -z "$PKG_CONFIG"; then @@ -7408,9 +6887,3 @@ If you want a release build with all stable optimizations active (PGO, etc), please run ./configure --enable-optimizations ]) fi - -AS_VAR_IF([PY_SUPPORT_TIER], [0], [AC_MSG_WARN([ - -Platform "$host" with compiler "$ac_cv_cc_name" is not supported by the -CPython core team, see https://peps.python.org/pep-0011/ for more information. -])]) diff --git a/pyconfig.h.in b/pyconfig.h.in index 1ce09855f5559d..a3bbbb894fd566 100644 --- a/pyconfig.h.in +++ b/pyconfig.h.in @@ -44,6 +44,9 @@ /* Define if --enable-ipv6 is specified */ #undef ENABLE_IPV6 +/* Better isolate subinterpreters, experimental build mode. */ +#undef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS + /* Define to 1 if your system stores words within floats with the most significant word first */ #undef FLOAT_WORDS_BIGENDIAN @@ -51,9 +54,6 @@ /* Define if getpgrp() must be called as getpgrp(0). */ #undef GETPGRP_HAVE_ARG -/* Define if you have the 'accept' function. */ -#undef HAVE_ACCEPT - /* Define to 1 if you have the `accept4' function. */ #undef HAVE_ACCEPT4 @@ -84,9 +84,6 @@ /* Define to 1 if you have the `atanh' function. */ #undef HAVE_ATANH -/* Define if you have the 'bind' function. */ -#undef HAVE_BIND - /* Define to 1 if you have the `bind_textdomain_codeset' function. */ #undef HAVE_BIND_TEXTDOMAIN_CODESET @@ -166,9 +163,6 @@ /* Define to 1 if you have the <conio.h> header file. */ #undef HAVE_CONIO_H -/* Define if you have the 'connect' function. */ -#undef HAVE_CONNECT - /* Define to 1 if you have the `copy_file_range' function. */ #undef HAVE_COPY_FILE_RANGE @@ -287,9 +281,6 @@ /* Define to 1 if you have the `dlopen' function. */ #undef HAVE_DLOPEN -/* Define to 1 if you have the `dup' function. */ -#undef HAVE_DUP - /* Define to 1 if you have the `dup2' function. */ #undef HAVE_DUP2 @@ -302,9 +293,6 @@ /* Defined when any dynamic module loading is enabled. */ #undef HAVE_DYNAMIC_LOADING -/* Define to 1 if you have the <editline/readline.h> header file. */ -#undef HAVE_EDITLINE_READLINE_H - /* Define to 1 if you have the <endian.h> header file. */ #undef HAVE_ENDIAN_H @@ -371,15 +359,6 @@ /* Define to 1 if you have the `fexecve' function. */ #undef HAVE_FEXECVE -/* Define if you have the 'ffi_closure_alloc' function. */ -#undef HAVE_FFI_CLOSURE_ALLOC - -/* Define if you have the 'ffi_prep_cif_var' function. */ -#undef HAVE_FFI_PREP_CIF_VAR - -/* Define if you have the 'ffi_prep_closure_loc' function. */ -#undef HAVE_FFI_PREP_CLOSURE_LOC - /* Define to 1 if you have the `flock' function. */ #undef HAVE_FLOCK @@ -489,9 +468,6 @@ /* Define to 1 if you have the `getgroups' function. */ #undef HAVE_GETGROUPS -/* Define if you have the 'gethostbyaddr' function. */ -#undef HAVE_GETHOSTBYADDR - /* Define to 1 if you have the `gethostbyname' function. */ #undef HAVE_GETHOSTBYNAME @@ -507,9 +483,6 @@ /* Define this if you have the 6-arg version of gethostbyname_r(). */ #undef HAVE_GETHOSTBYNAME_R_6_ARG -/* Define to 1 if you have the `gethostname' function. */ -#undef HAVE_GETHOSTNAME - /* Define to 1 if you have the `getitimer' function. */ #undef HAVE_GETITIMER @@ -525,7 +498,7 @@ /* Define if you have the 'getpagesize' function. */ #undef HAVE_GETPAGESIZE -/* Define if you have the 'getpeername' function. */ +/* Define to 1 if you have the `getpeername' function. */ #undef HAVE_GETPEERNAME /* Define to 1 if you have the `getpgid' function. */ @@ -543,9 +516,6 @@ /* Define to 1 if you have the `getpriority' function. */ #undef HAVE_GETPRIORITY -/* Define if you have the 'getprotobyname' function. */ -#undef HAVE_GETPROTOBYNAME - /* Define to 1 if you have the `getpwent' function. */ #undef HAVE_GETPWENT @@ -573,18 +543,9 @@ /* Define to 1 if you have the `getrusage' function. */ #undef HAVE_GETRUSAGE -/* Define if you have the 'getservbyname' function. */ -#undef HAVE_GETSERVBYNAME - -/* Define if you have the 'getservbyport' function. */ -#undef HAVE_GETSERVBYPORT - /* Define to 1 if you have the `getsid' function. */ #undef HAVE_GETSID -/* Define if you have the 'getsockname' function. */ -#undef HAVE_GETSOCKNAME - /* Define to 1 if you have the `getspent' function. */ #undef HAVE_GETSPENT @@ -619,9 +580,6 @@ /* Define if you have the 'inet_aton' function. */ #undef HAVE_INET_ATON -/* Define if you have the 'inet_ntoa' function. */ -#undef HAVE_INET_NTOA - /* Define if you have the 'inet_pton' function. */ #undef HAVE_INET_PTON @@ -676,12 +634,21 @@ /* Define to 1 if you have the `dld' library (-ldld). */ #undef HAVE_LIBDLD +/* Define to 1 if you have the `gdbm_compat' library (-lgdbm_compat). */ +#undef HAVE_LIBGDBM_COMPAT + /* Define to 1 if you have the `ieee' library (-lieee). */ #undef HAVE_LIBIEEE /* Define to 1 if you have the <libintl.h> header file. */ #undef HAVE_LIBINTL_H +/* Define to 1 if you have the `ndbm' library (-lndbm). */ +#undef HAVE_LIBNDBM + +/* Define to build the readline module. */ +#undef HAVE_LIBREADLINE + /* Define to 1 if you have the `resolv' library (-lresolv). */ #undef HAVE_LIBRESOLV @@ -721,9 +688,6 @@ /* Define if compiling using Linux 4.1 or later. */ #undef HAVE_LINUX_CAN_RAW_JOIN_FILTERS -/* Define to 1 if you have the <linux/fs.h> header file. */ -#undef HAVE_LINUX_FS_H - /* Define to 1 if you have the <linux/memfd.h> header file. */ #undef HAVE_LINUX_MEMFD_H @@ -748,9 +712,6 @@ /* Define to 1 if you have the <linux/wait.h> header file. */ #undef HAVE_LINUX_WAIT_H -/* Define if you have the 'listen' function. */ -#undef HAVE_LISTEN - /* Define to 1 if you have the `lockf' function. */ #undef HAVE_LOCKF @@ -820,9 +781,6 @@ /* Define to 1 if you have the `nanosleep' function. */ #undef HAVE_NANOSLEEP -/* Define to 1 if you have the `ncursesw' library. */ -#undef HAVE_NCURSESW - /* Define to 1 if you have the <ncurses.h> header file. */ #undef HAVE_NCURSES_H @@ -835,9 +793,6 @@ /* Define to 1 if you have the <netcan/can.h> header file. */ #undef HAVE_NETCAN_CAN_H -/* Define to 1 if you have the <netdb.h> header file. */ -#undef HAVE_NETDB_H - /* Define to 1 if you have the <netinet/in.h> header file. */ #undef HAVE_NETINET_IN_H @@ -863,9 +818,6 @@ /* Define to 1 if you have the `openpty' function. */ #undef HAVE_OPENPTY -/* Define to 1 if you have the <panel.h> header file. */ -#undef HAVE_PANEL_H - /* Define to 1 if you have the `pathconf' function. */ #undef HAVE_PATHCONF @@ -938,9 +890,6 @@ /* Define to 1 if you have the `pthread_sigmask' function. */ #undef HAVE_PTHREAD_SIGMASK -/* Define if platform requires stubbed pthreads support */ -#undef HAVE_PTHREAD_STUBS - /* Define to 1 if you have the <pty.h> header file. */ #undef HAVE_PTY_H @@ -953,9 +902,6 @@ /* Define to 1 if you have the `pwritev2' function. */ #undef HAVE_PWRITEV2 -/* Define to 1 if you have the <readline/readline.h> header file. */ -#undef HAVE_READLINE_READLINE_H - /* Define to 1 if you have the `readlink' function. */ #undef HAVE_READLINK @@ -968,9 +914,6 @@ /* Define to 1 if you have the `realpath' function. */ #undef HAVE_REALPATH -/* Define if you have the 'recvfrom' function. */ -#undef HAVE_RECVFROM - /* Define to 1 if you have the `renameat' function. */ #undef HAVE_RENAMEAT @@ -1040,9 +983,6 @@ /* Define to 1 if you have the `sendfile' function. */ #undef HAVE_SENDFILE -/* Define if you have the 'sendto' function. */ -#undef HAVE_SENDTO - /* Define to 1 if you have the `setegid' function. */ #undef HAVE_SETEGID @@ -1091,9 +1031,6 @@ /* Define to 1 if you have the `setsid' function. */ #undef HAVE_SETSID -/* Define if you have the 'setsockopt' function. */ -#undef HAVE_SETSOCKOPT - /* Define to 1 if you have the `setuid' function. */ #undef HAVE_SETUID @@ -1157,9 +1094,6 @@ /* struct sockaddr_storage (sys/socket.h) */ #undef HAVE_SOCKADDR_STORAGE -/* Define if you have the 'socket' function. */ -#undef HAVE_SOCKET - /* Define if you have the 'socketpair' function. */ #undef HAVE_SOCKETPAIR @@ -1568,9 +1502,6 @@ /* Define if you want to coerce the C locale to a UTF-8 based locale */ #undef PY_COERCE_C_LOCALE -/* Define to 1 if you have the perf trampoline. */ -#undef PY_HAVE_PERF_TRAMPOLINE - /* Define to 1 to build the sqlite module with loadable extensions support. */ #undef PY_SQLITE_ENABLE_LOAD_EXTENSION @@ -1584,9 +1515,6 @@ /* Cipher suite string for PY_SSL_DEFAULT_CIPHERS=0 */ #undef PY_SSL_DEFAULT_CIPHER_STRING -/* PEP 11 Support tier (1, 2, 3 or 0 for unsupported) */ -#undef PY_SUPPORT_TIER - /* Define if you want to build an interpreter with many run-time checks. */ #undef Py_DEBUG @@ -1728,7 +1656,7 @@ Dyld is necessary to support frameworks. */ #undef WITH_DYLD -/* Define to build the readline module against libedit. */ +/* Define to build the readline module against Editline. */ #undef WITH_EDITLINE /* Define if you want to compile in object freelists optimization */ diff --git a/setup.py b/setup.py new file mode 100644 index 00000000000000..4c497346e8d7e2 --- /dev/null +++ b/setup.py @@ -0,0 +1,1626 @@ +# Autodetecting setup.py script for building the Python extensions + +import argparse +import importlib._bootstrap +import importlib.machinery +import importlib.util +import logging +import os +import re +import shlex +import sys +import sysconfig +import warnings +from glob import glob, escape +import _osx_support + + +try: + import subprocess + del subprocess + SUBPROCESS_BOOTSTRAP = False +except ImportError: + # Bootstrap Python: distutils.spawn uses subprocess to build C extensions, + # subprocess requires C extensions built by setup.py like _posixsubprocess. + # + # Use _bootsubprocess which only uses the os module. + # + # It is dropped from sys.modules as soon as all C extension modules + # are built. + import _bootsubprocess + sys.modules['subprocess'] = _bootsubprocess + del _bootsubprocess + SUBPROCESS_BOOTSTRAP = True + + +with warnings.catch_warnings(): + # bpo-41282 (PEP 632) deprecated distutils but setup.py still uses it + warnings.filterwarnings( + "ignore", + "The distutils package is deprecated", + DeprecationWarning + ) + warnings.filterwarnings( + "ignore", + "The distutils.sysconfig module is deprecated, use sysconfig instead", + DeprecationWarning + ) + + from distutils.command.build_ext import build_ext + from distutils.command.build_scripts import build_scripts + from distutils.command.install import install + from distutils.command.install_lib import install_lib + from distutils.core import Extension, setup + from distutils.errors import CCompilerError, DistutilsError + from distutils.spawn import find_executable + + +# This global variable is used to hold the list of modules to be disabled. +DISABLED_MODULE_LIST = [] + +# --list-module-names option used by Tools/scripts/generate_module_names.py +LIST_MODULE_NAMES = False + + +logging.basicConfig(format='%(message)s', level=logging.INFO) +log = logging.getLogger('setup') + + +def get_platform(): + # Cross compiling + if "_PYTHON_HOST_PLATFORM" in os.environ: + return os.environ["_PYTHON_HOST_PLATFORM"] + + # Get value of sys.platform + if sys.platform.startswith('osf1'): + return 'osf1' + return sys.platform + + +CROSS_COMPILING = ("_PYTHON_HOST_PLATFORM" in os.environ) +HOST_PLATFORM = get_platform() +MS_WINDOWS = (HOST_PLATFORM == 'win32') +CYGWIN = (HOST_PLATFORM == 'cygwin') +MACOS = (HOST_PLATFORM == 'darwin') +AIX = (HOST_PLATFORM.startswith('aix')) +VXWORKS = ('vxworks' in HOST_PLATFORM) +EMSCRIPTEN = HOST_PLATFORM == 'emscripten-wasm32' +CC = os.environ.get("CC") +if not CC: + CC = sysconfig.get_config_var("CC") + +if EMSCRIPTEN: + # emcc is a Python script from a different Python interpreter. + os.environ.pop("PYTHONPATH", None) + + +SUMMARY = """ +Python is an interpreted, interactive, object-oriented programming +language. It is often compared to Tcl, Perl, Scheme or Java. + +Python combines remarkable power with very clear syntax. It has +modules, classes, exceptions, very high level dynamic data types, and +dynamic typing. There are interfaces to many system calls and +libraries, as well as to various windowing systems (X11, Motif, Tk, +Mac, MFC). New built-in modules are easily written in C or C++. Python +is also usable as an extension language for applications that need a +programmable interface. + +The Python implementation is portable: it runs on many brands of UNIX, +on Windows, DOS, Mac, Amiga... If your favorite system isn't +listed here, it may still be supported, if there's a C compiler for +it. Ask around on comp.lang.python -- or just try compiling Python +yourself. +""" + +CLASSIFIERS = """ +Development Status :: 6 - Mature +License :: OSI Approved :: Python Software Foundation License +Natural Language :: English +Programming Language :: C +Programming Language :: Python +Topic :: Software Development +""" + + +def run_command(cmd): + status = os.system(cmd) + return os.waitstatus_to_exitcode(status) + + +# Set common compiler and linker flags derived from the Makefile, +# reserved for building the interpreter and the stdlib modules. +# See bpo-21121 and bpo-35257 +def set_compiler_flags(compiler_flags, compiler_py_flags_nodist): + flags = sysconfig.get_config_var(compiler_flags) + py_flags_nodist = sysconfig.get_config_var(compiler_py_flags_nodist) + sysconfig.get_config_vars()[compiler_flags] = flags + ' ' + py_flags_nodist + + +def add_dir_to_list(dirlist, dir): + """Add the directory 'dir' to the list 'dirlist' (after any relative + directories) if: + + 1) 'dir' is not already in 'dirlist' + 2) 'dir' actually exists, and is a directory. + """ + if dir is None or not os.path.isdir(dir) or dir in dirlist: + return + for i, path in enumerate(dirlist): + if not os.path.isabs(path): + dirlist.insert(i + 1, dir) + return + dirlist.insert(0, dir) + + +def sysroot_paths(make_vars, subdirs): + """Get the paths of sysroot sub-directories. + + * make_vars: a sequence of names of variables of the Makefile where + sysroot may be set. + * subdirs: a sequence of names of subdirectories used as the location for + headers or libraries. + """ + + dirs = [] + 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 + return dirs + + +MACOS_SDK_ROOT = None +MACOS_SDK_SPECIFIED = None + +def macosx_sdk_root(): + """Return the directory of the current macOS SDK. + + If no SDK was explicitly configured, call the compiler to find which + include files paths are being searched by default. Use '/' if the + compiler is searching /usr/include (meaning system header files are + installed) or use the root of an SDK if that is being searched. + (The SDK may be supplied via Xcode or via the Command Line Tools). + The SDK paths used by Apple-supplied tool chains depend on the + setting of various variables; see the xcrun man page for more info. + Also sets MACOS_SDK_SPECIFIED for use by macosx_sdk_specified(). + """ + global MACOS_SDK_ROOT, MACOS_SDK_SPECIFIED + + # If already called, return cached result. + if MACOS_SDK_ROOT: + return MACOS_SDK_ROOT + + cflags = sysconfig.get_config_var('CFLAGS') + m = re.search(r'-isysroot\s*(\S+)', cflags) + if m is not None: + MACOS_SDK_ROOT = m.group(1) + MACOS_SDK_SPECIFIED = MACOS_SDK_ROOT != '/' + else: + MACOS_SDK_ROOT = _osx_support._default_sysroot( + sysconfig.get_config_var('CC')) + MACOS_SDK_SPECIFIED = False + + return MACOS_SDK_ROOT + + +def is_macosx_sdk_path(path): + """ + Returns True if 'path' can be located in a macOS SDK + """ + return ( (path.startswith('/usr/') and not path.startswith('/usr/local')) + or path.startswith('/System/Library') + or path.startswith('/System/iOSSupport') ) + + +def grep_headers_for(function, headers): + for header in headers: + with open(header, 'r', errors='surrogateescape') as f: + if function in f.read(): + return True + return False + + +def find_file(filename, std_dirs, paths): + """Searches for the directory where a given file is located, + and returns a possibly-empty list of additional directories, or None + if the file couldn't be found at all. + + 'filename' is the name of a file, such as readline.h or libcrypto.a. + 'std_dirs' is the list of standard system directories; if the + file is found in one of them, no additional directives are needed. + 'paths' is a list of additional locations to check; if the file is + found in one of them, the resulting list will contain the directory. + """ + if MACOS: + # Honor the MacOSX SDK setting when one was specified. + # An SDK is a directory with the same structure as a real + # system, but with only header files and libraries. + sysroot = macosx_sdk_root() + + # Check the standard locations + for dir_ in std_dirs: + f = os.path.join(dir_, filename) + + if MACOS and is_macosx_sdk_path(dir_): + f = os.path.join(sysroot, dir_[1:], filename) + + if os.path.exists(f): return [] + + # Check the additional directories + for dir_ in paths: + f = os.path.join(dir_, filename) + + if MACOS and is_macosx_sdk_path(dir_): + f = os.path.join(sysroot, dir_[1:], filename) + + if os.path.exists(f): + return [dir_] + + # Not found anywhere + return None + + +def validate_tzpath(): + base_tzpath = sysconfig.get_config_var('TZPATH') + if not base_tzpath: + return + + tzpaths = base_tzpath.split(os.pathsep) + bad_paths = [tzpath for tzpath in tzpaths if not os.path.isabs(tzpath)] + if bad_paths: + raise ValueError('TZPATH must contain only absolute paths, ' + + f'found:\n{tzpaths!r}\nwith invalid paths:\n' + + f'{bad_paths!r}') + + +def find_module_file(module, dirlist): + """Find a module in a set of possible folders. If it is not found + return the unadorned filename""" + dirs = find_file(module, [], dirlist) + if not dirs: + return module + if len(dirs) > 1: + log.info(f"WARNING: multiple copies of {module} found") + return os.path.abspath(os.path.join(dirs[0], module)) + + +class PyBuildExt(build_ext): + + def __init__(self, dist): + build_ext.__init__(self, dist) + self.srcdir = None + self.lib_dirs = None + self.inc_dirs = None + self.config_h_vars = None + self.failed = [] + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] + if '-j' in os.environ.get('MAKEFLAGS', ''): + self.parallel = True + + def add(self, ext): + self.extensions.append(ext) + + def addext(self, ext, *, update_flags=True): + """Add extension with Makefile MODULE_{name} support + """ + if update_flags: + self.update_extension_flags(ext) + + state = sysconfig.get_config_var(f"MODULE_{ext.name.upper()}") + if state == "yes": + self.extensions.append(ext) + elif state == "disabled": + self.disabled_configure.append(ext.name) + elif state == "missing": + self.missing.append(ext.name) + elif state == "n/a": + # not available on current platform + pass + else: + # not migrated to MODULE_{name} yet. + self.announce( + f'WARNING: Makefile is missing module variable for "{ext.name}"', + level=2 + ) + self.extensions.append(ext) + + def update_extension_flags(self, ext): + """Update extension flags with module CFLAGS and LDFLAGS + + Reads MODULE_{name}_CFLAGS and _LDFLAGS + + Distutils appends extra args to the compiler arguments. Some flags like + -I must appear earlier, otherwise the pre-processor picks up files + from system include directories. + """ + upper_name = ext.name.upper() + # Parse compiler flags (-I, -D, -U, extra args) + cflags = sysconfig.get_config_var(f"MODULE_{upper_name}_CFLAGS") + if cflags: + for token in shlex.split(cflags): + switch = token[0:2] + value = token[2:] + if switch == '-I': + ext.include_dirs.append(value) + elif switch == '-D': + key, _, val = value.partition("=") + if not val: + val = None + ext.define_macros.append((key, val)) + elif switch == '-U': + ext.undef_macros.append(value) + else: + ext.extra_compile_args.append(token) + + # Parse linker flags (-L, -l, extra objects, extra args) + ldflags = sysconfig.get_config_var(f"MODULE_{upper_name}_LDFLAGS") + if ldflags: + for token in shlex.split(ldflags): + switch = token[0:2] + value = token[2:] + if switch == '-L': + ext.library_dirs.append(value) + elif switch == '-l': + ext.libraries.append(value) + elif ( + token[0] != '-' and + token.endswith(('.a', '.o', '.so', '.sl', '.dylib')) + ): + ext.extra_objects.append(token) + else: + ext.extra_link_args.append(token) + + return ext + + def set_srcdir(self): + self.srcdir = sysconfig.get_config_var('srcdir') + if not self.srcdir: + # Maybe running on Windows but not using CYGWIN? + raise ValueError("No source directory; cannot proceed.") + self.srcdir = os.path.abspath(self.srcdir) + + def remove_disabled(self): + # Remove modules that are present on the disabled list + extensions = [ext for ext in self.extensions + if ext.name not in DISABLED_MODULE_LIST] + # move ctypes to the end, it depends on other modules + ext_map = dict((ext.name, i) for i, ext in enumerate(extensions)) + if "_ctypes" in ext_map: + ctypes = extensions.pop(ext_map["_ctypes"]) + extensions.append(ctypes) + self.extensions = extensions + + def update_sources_depends(self): + # Fix up the autodetected modules, prefixing all the source files + # with Modules/. + # Add dependencies from MODULE_{name}_DEPS variable + moddirlist = [ + # files in Modules/ directory + os.path.join(self.srcdir, 'Modules'), + # files relative to build base, e.g. libmpdec.a, libexpat.a + os.getcwd() + ] + + # Fix up the paths for scripts, too + self.distribution.scripts = [os.path.join(self.srcdir, filename) + for filename in self.distribution.scripts] + + # Python header files + include_dir = escape(sysconfig.get_path('include')) + headers = [sysconfig.get_config_h_filename()] + headers.extend(glob(os.path.join(include_dir, "*.h"))) + headers.extend(glob(os.path.join(include_dir, "cpython", "*.h"))) + headers.extend(glob(os.path.join(include_dir, "internal", "*.h"))) + + for ext in self.extensions: + ext.sources = [ find_module_file(filename, moddirlist) + for filename in ext.sources ] + # Update dependencies from Makefile + makedeps = sysconfig.get_config_var(f"MODULE_{ext.name.upper()}_DEPS") + if makedeps: + # remove backslashes from line break continuations + ext.depends.extend( + dep for dep in makedeps.split() if dep != "\\" + ) + ext.depends = [ + find_module_file(filename, moddirlist) for filename in ext.depends + ] + # re-compile extensions if a header file has been changed + ext.depends.extend(headers) + + def handle_configured_extensions(self): + # The sysconfig variables built by makesetup that list the already + # built modules and the disabled modules as configured by the Setup + # files. + sysconf_built = set(sysconfig.get_config_var('MODBUILT_NAMES').split()) + sysconf_shared = set(sysconfig.get_config_var('MODSHARED_NAMES').split()) + sysconf_dis = set(sysconfig.get_config_var('MODDISABLED_NAMES').split()) + + mods_built = [] + mods_disabled = [] + for ext in self.extensions: + # If a module has already been built or has been disabled in the + # Setup files, don't build it here. + if ext.name in sysconf_built: + mods_built.append(ext) + if ext.name in sysconf_dis: + mods_disabled.append(ext) + + mods_configured = mods_built + mods_disabled + if mods_configured: + self.extensions = [x for x in self.extensions if x not in + mods_configured] + # Remove the shared libraries built by a previous build. + for ext in mods_configured: + # Don't remove shared extensions which have been built + # by Modules/Setup + if ext.name in sysconf_shared: + continue + fullpath = self.get_ext_fullpath(ext.name) + if os.path.lexists(fullpath): + os.unlink(fullpath) + + return mods_built, mods_disabled + + def set_compiler_executables(self): + # When you run "make CC=altcc" or something similar, you really want + # those environment variables passed into the setup.py phase. Here's + # a small set of useful ones. + compiler = os.environ.get('CC') + args = {} + # unfortunately, distutils doesn't let us provide separate C and C++ + # compilers + if compiler is not None: + (ccshared,cflags) = sysconfig.get_config_vars('CCSHARED','CFLAGS') + args['compiler_so'] = compiler + ' ' + ccshared + ' ' + cflags + self.compiler.set_executables(**args) + + def build_extensions(self): + self.set_srcdir() + self.set_compiler_executables() + self.configure_compiler() + self.init_inc_lib_dirs() + + # Detect which modules should be compiled + self.detect_modules() + + if not LIST_MODULE_NAMES: + self.remove_disabled() + + self.update_sources_depends() + mods_built, mods_disabled = self.handle_configured_extensions() + + if LIST_MODULE_NAMES: + for ext in self.extensions: + print(ext.name) + for name in self.missing: + print(name) + return + + build_ext.build_extensions(self) + + if SUBPROCESS_BOOTSTRAP: + # Drop our custom subprocess module: + # use the newly built subprocess module + del sys.modules['subprocess'] + + for ext in self.extensions: + self.check_extension_import(ext) + + self.summary(mods_built, mods_disabled) + + def summary(self, mods_built, mods_disabled): + longest = max([len(e.name) for e in self.extensions], default=0) + if self.failed or self.failed_on_import: + all_failed = self.failed + self.failed_on_import + longest = max(longest, max([len(name) for name in all_failed])) + + def print_three_column(lst): + lst.sort(key=str.lower) + # guarantee zip() doesn't drop anything + while len(lst) % 3: + lst.append("") + for e, f, g in zip(lst[::3], lst[1::3], lst[2::3]): + print("%-*s %-*s %-*s" % (longest, e, longest, f, + longest, g)) + + if self.missing: + print() + print("Python build finished successfully!") + print("The necessary bits to build these optional modules were not " + "found:") + print_three_column(self.missing) + print("To find the necessary bits, look in setup.py in" + " detect_modules() for the module's name.") + print() + + if mods_built: + print() + print("The following modules found by detect_modules() in" + " setup.py, have been") + print("built by the Makefile instead, as configured by the" + " Setup files:") + print_three_column([ext.name for ext in mods_built]) + print() + + if mods_disabled: + print() + print("The following modules found by detect_modules() in" + " setup.py have not") + print("been built, they are *disabled* in the Setup files:") + print_three_column([ext.name for ext in mods_disabled]) + print() + + if self.disabled_configure: + print() + print("The following modules found by detect_modules() in" + " setup.py have not") + print("been built, they are *disabled* by configure:") + print_three_column(self.disabled_configure) + print() + + if self.failed: + failed = self.failed[:] + print() + print("Failed to build these modules:") + print_three_column(failed) + print() + + if self.failed_on_import: + failed = self.failed_on_import[:] + print() + print("Following modules built successfully" + " but were removed because they could not be imported:") + print_three_column(failed) + print() + + if any('_ssl' in l + for l in (self.missing, self.failed, self.failed_on_import)): + print() + print("Could not build the ssl module!") + print("Python requires a OpenSSL 1.1.1 or newer") + if sysconfig.get_config_var("OPENSSL_LDFLAGS"): + print("Custom linker flags may require --with-openssl-rpath=auto") + print() + + if os.environ.get("PYTHONSTRICTEXTENSIONBUILD") and ( + self.failed or self.failed_on_import or self.missing + ): + raise RuntimeError("Failed to build some stdlib modules") + + def build_extension(self, ext): + + if ext.name == '_ctypes': + if not self.configure_ctypes(ext): + self.failed.append(ext.name) + return + + try: + build_ext.build_extension(self, ext) + except (CCompilerError, DistutilsError) as why: + self.announce('WARNING: building of extension "%s" failed: %s' % + (ext.name, why)) + self.failed.append(ext.name) + return + + def check_extension_import(self, ext): + # Don't try to import an extension that has failed to compile + if ext.name in self.failed: + self.announce( + 'WARNING: skipping import check for failed build "%s"' % + ext.name, level=1) + return + + # Workaround for Mac OS X: The Carbon-based modules cannot be + # reliably imported into a command-line Python + if 'Carbon' in ext.extra_link_args: + self.announce( + 'WARNING: skipping import check for Carbon-based "%s"' % + ext.name) + return + + if MACOS and ( + sys.maxsize > 2**32 and '-arch' in ext.extra_link_args): + # Don't bother doing an import check when an extension was + # build with an explicit '-arch' flag on OSX. That's currently + # only used to build 32-bit only extensions in a 4-way + # universal build and loading 32-bit code into a 64-bit + # process will fail. + self.announce( + 'WARNING: skipping import check for "%s"' % + ext.name) + return + + # Workaround for Cygwin: Cygwin currently has fork issues when many + # modules have been imported + if CYGWIN: + self.announce('WARNING: skipping import check for Cygwin-based "%s"' + % ext.name) + return + ext_filename = os.path.join( + self.build_lib, + self.get_ext_filename(self.get_ext_fullname(ext.name))) + + # If the build directory didn't exist when setup.py was + # started, sys.path_importer_cache has a negative result + # cached. Clear that cache before trying to import. + sys.path_importer_cache.clear() + + # Don't try to load extensions for cross builds + if CROSS_COMPILING: + return + + loader = importlib.machinery.ExtensionFileLoader(ext.name, ext_filename) + spec = importlib.util.spec_from_file_location(ext.name, ext_filename, + loader=loader) + try: + importlib._bootstrap._load(spec) + except ImportError as why: + self.failed_on_import.append(ext.name) + self.announce('*** WARNING: renaming "%s" since importing it' + ' failed: %s' % (ext.name, why), level=3) + assert not self.inplace + basename, tail = os.path.splitext(ext_filename) + newname = basename + "_failed" + tail + if os.path.exists(newname): + os.remove(newname) + os.rename(ext_filename, newname) + + except: + exc_type, why, tb = sys.exc_info() + self.announce('*** WARNING: importing extension "%s" ' + 'failed with %s: %s' % (ext.name, exc_type, why), + level=3) + self.failed.append(ext.name) + + def add_multiarch_paths(self): + # Debian/Ubuntu multiarch support. + # https://wiki.ubuntu.com/MultiarchSpec + tmpfile = os.path.join(self.build_temp, 'multiarch') + if not os.path.exists(self.build_temp): + os.makedirs(self.build_temp) + ret = run_command( + '%s -print-multiarch > %s 2> /dev/null' % (CC, tmpfile)) + multiarch_path_component = '' + try: + if ret == 0: + with open(tmpfile) as fp: + multiarch_path_component = fp.readline().strip() + finally: + os.unlink(tmpfile) + + if multiarch_path_component != '': + add_dir_to_list(self.compiler.library_dirs, + '/usr/lib/' + multiarch_path_component) + add_dir_to_list(self.compiler.include_dirs, + '/usr/include/' + multiarch_path_component) + return + + if not find_executable('dpkg-architecture'): + return + opt = '' + if CROSS_COMPILING: + opt = '-t' + sysconfig.get_config_var('HOST_GNU_TYPE') + tmpfile = os.path.join(self.build_temp, 'multiarch') + if not os.path.exists(self.build_temp): + os.makedirs(self.build_temp) + ret = run_command( + 'dpkg-architecture %s -qDEB_HOST_MULTIARCH > %s 2> /dev/null' % + (opt, tmpfile)) + try: + if ret == 0: + with open(tmpfile) as fp: + multiarch_path_component = fp.readline().strip() + add_dir_to_list(self.compiler.library_dirs, + '/usr/lib/' + multiarch_path_component) + add_dir_to_list(self.compiler.include_dirs, + '/usr/include/' + multiarch_path_component) + finally: + os.unlink(tmpfile) + + def add_wrcc_search_dirs(self): + # add library search path by wr-cc, the compiler wrapper + + def convert_mixed_path(path): + # convert path like C:\folder1\folder2/folder3/folder4 + # to msys style /c/folder1/folder2/folder3/folder4 + drive = path[0].lower() + left = path[2:].replace("\\", "/") + return "/" + drive + left + + def add_search_path(line): + # On Windows building machine, VxWorks does + # cross builds under msys2 environment. + pathsep = (";" if sys.platform == "msys" else ":") + for d in line.strip().split("=")[1].split(pathsep): + d = d.strip() + if sys.platform == "msys": + # On Windows building machine, compiler + # returns mixed style path like: + # C:\folder1\folder2/folder3/folder4 + d = convert_mixed_path(d) + d = os.path.normpath(d) + add_dir_to_list(self.compiler.library_dirs, d) + + tmpfile = os.path.join(self.build_temp, 'wrccpaths') + os.makedirs(self.build_temp, exist_ok=True) + try: + ret = run_command('%s --print-search-dirs >%s' % (CC, tmpfile)) + if ret: + return + with open(tmpfile) as fp: + # Parse paths in libraries line. The line is like: + # On Linux, "libraries: = path1:path2:path3" + # On Windows, "libraries: = path1;path2;path3" + for line in fp: + if not line.startswith("libraries"): + continue + add_search_path(line) + finally: + try: + os.unlink(tmpfile) + except OSError: + pass + + def add_cross_compiling_paths(self): + tmpfile = os.path.join(self.build_temp, 'ccpaths') + if not os.path.exists(self.build_temp): + os.makedirs(self.build_temp) + # bpo-38472: With a German locale, GCC returns "gcc-Version 9.1.0 + # (GCC)", whereas it returns "gcc version 9.1.0" with the C locale. + ret = run_command('LC_ALL=C %s -E -v - </dev/null 2>%s 1>/dev/null' % (CC, tmpfile)) + is_gcc = False + is_clang = False + in_incdirs = False + try: + if ret == 0: + with open(tmpfile) as fp: + for line in fp.readlines(): + if line.startswith("gcc version"): + is_gcc = True + elif line.startswith("clang version"): + is_clang = True + elif line.startswith("#include <...>"): + in_incdirs = True + elif line.startswith("End of search list"): + in_incdirs = False + elif (is_gcc or is_clang) and line.startswith("LIBRARY_PATH"): + for d in line.strip().split("=")[1].split(":"): + d = os.path.normpath(d) + if '/gcc/' not in d: + add_dir_to_list(self.compiler.library_dirs, + d) + elif (is_gcc or is_clang) and in_incdirs and '/gcc/' not in line and '/clang/' not in line: + add_dir_to_list(self.compiler.include_dirs, + line.strip()) + finally: + os.unlink(tmpfile) + + if VXWORKS: + self.add_wrcc_search_dirs() + + def add_ldflags_cppflags(self): + # Add paths specified in the environment variables LDFLAGS and + # CPPFLAGS for header and library files. + # We must get the values from the Makefile and not the environment + # directly since an inconsistently reproducible issue comes up where + # the environment variable is not set even though the value were passed + # into configure and stored in the Makefile (issue found on OS X 10.3). + for env_var, arg_name, dir_list in ( + ('LDFLAGS', '-R', self.compiler.runtime_library_dirs), + ('LDFLAGS', '-L', self.compiler.library_dirs), + ('CPPFLAGS', '-I', self.compiler.include_dirs)): + env_val = sysconfig.get_config_var(env_var) + if env_val: + parser = argparse.ArgumentParser() + parser.add_argument(arg_name, dest="dirs", action="append") + + # To prevent argparse from raising an exception about any + # options in env_val that it mistakes for known option, we + # strip out all double dashes and any dashes followed by a + # character that is not for the option we are dealing with. + # + # Please note that order of the regex is important! We must + # strip out double-dashes first so that we don't end up with + # substituting "--Long" to "-Long" and thus lead to "ong" being + # used for a library directory. + env_val = re.sub(r'(^|\s+)-(-|(?!%s))' % arg_name[1], + ' ', env_val) + options, _ = parser.parse_known_args(env_val.split()) + if options.dirs: + for directory in reversed(options.dirs): + add_dir_to_list(dir_list, directory) + + def configure_compiler(self): + # Ensure that /usr/local is always used, but the local build + # directories (i.e. '.' and 'Include') must be first. See issue + # 10520. + if not CROSS_COMPILING: + add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') + add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') + # only change this for cross builds for 3.3, issues on Mageia + if CROSS_COMPILING: + self.add_cross_compiling_paths() + self.add_multiarch_paths() + self.add_ldflags_cppflags() + + def init_inc_lib_dirs(self): + if (not CROSS_COMPILING and + os.path.normpath(sys.base_prefix) != '/usr' and + not sysconfig.get_config_var('PYTHONFRAMEWORK')): + # OSX note: Don't add LIBDIR and INCLUDEDIR to building a framework + # (PYTHONFRAMEWORK is set) to avoid # linking problems when + # building a framework with different architectures than + # the one that is currently installed (issue #7473) + add_dir_to_list(self.compiler.library_dirs, + sysconfig.get_config_var("LIBDIR")) + add_dir_to_list(self.compiler.include_dirs, + sysconfig.get_config_var("INCLUDEDIR")) + + system_lib_dirs = ['/lib64', '/usr/lib64', '/lib', '/usr/lib'] + system_include_dirs = ['/usr/include'] + # lib_dirs and inc_dirs are used to search for files; + # if a file is found in one of those directories, it can + # be assumed that no additional -I,-L directives are needed. + if not CROSS_COMPILING: + self.lib_dirs = self.compiler.library_dirs + system_lib_dirs + self.inc_dirs = self.compiler.include_dirs + system_include_dirs + else: + # Add the sysroot paths. 'sysroot' is a compiler option used to + # set the logical path of the standard system headers and + # libraries. + self.lib_dirs = (self.compiler.library_dirs + + sysroot_paths(('LDFLAGS', 'CC'), system_lib_dirs)) + self.inc_dirs = (self.compiler.include_dirs + + sysroot_paths(('CPPFLAGS', 'CFLAGS', 'CC'), + system_include_dirs)) + + config_h = sysconfig.get_config_h_filename() + with open(config_h) as file: + self.config_h_vars = sysconfig.parse_config_h(file) + + # OSF/1 and Unixware have some stuff in /usr/ccs/lib (like -ldb) + if HOST_PLATFORM in ['osf1', 'unixware7', 'openunix8']: + self.lib_dirs += ['/usr/ccs/lib'] + + # HP-UX11iv3 keeps files in lib/hpux folders. + if HOST_PLATFORM == 'hp-ux11': + self.lib_dirs += ['/usr/lib/hpux64', '/usr/lib/hpux32'] + + if MACOS: + # This should work on any unixy platform ;-) + # If the user has bothered specifying additional -I and -L flags + # in OPT and LDFLAGS we might as well use them here. + # + # NOTE: using shlex.split would technically be more correct, but + # also gives a bootstrap problem. Let's hope nobody uses + # directories with whitespace in the name to store libraries. + cflags, ldflags = sysconfig.get_config_vars( + 'CFLAGS', 'LDFLAGS') + for item in cflags.split(): + if item.startswith('-I'): + self.inc_dirs.append(item[2:]) + + for item in ldflags.split(): + if item.startswith('-L'): + self.lib_dirs.append(item[2:]) + + def detect_simple_extensions(self): + # + # The following modules are all pretty straightforward, and compile + # on pretty much any POSIXish platform. + # + + # array objects + self.addext(Extension('array', ['arraymodule.c'])) + + # Context Variables + self.addext(Extension('_contextvars', ['_contextvarsmodule.c'])) + + # math library functions, e.g. sin() + self.addext(Extension('math', ['mathmodule.c'])) + + # complex math library functions + self.addext(Extension('cmath', ['cmathmodule.c'])) + + # libm is needed by delta_new() that uses round() and by accum() that + # uses modf(). + self.addext(Extension('_datetime', ['_datetimemodule.c'])) + self.addext(Extension('_zoneinfo', ['_zoneinfo.c'])) + # random number generator implemented in C + self.addext(Extension("_random", ["_randommodule.c"])) + self.addext(Extension("_bisect", ["_bisectmodule.c"])) + self.addext(Extension("_heapq", ["_heapqmodule.c"])) + # C-optimized pickle replacement + self.addext(Extension("_pickle", ["_pickle.c"])) + # _json speedups + self.addext(Extension("_json", ["_json.c"])) + + # profiler (_lsprof is for cProfile.py) + self.addext(Extension('_lsprof', ['_lsprof.c', 'rotatingtree.c'])) + # static Unicode character database + self.addext(Extension('unicodedata', ['unicodedata.c'])) + self.addext(Extension('_opcode', ['_opcode.c'])) + + # asyncio speedups + self.addext(Extension("_asyncio", ["_asynciomodule.c"])) + + self.addext(Extension("_queue", ["_queuemodule.c"])) + self.addext(Extension("_statistics", ["_statisticsmodule.c"])) + self.addext(Extension("_struct", ["_struct.c"])) + self.addext(Extension("_typing", ["_typingmodule.c"])) + + # Modules with some UNIX dependencies -- on by default: + # (If you have a really backward UNIX, select and socket may not be + # supported...) + + # fcntl(2) and ioctl(2) + self.addext(Extension('fcntl', ['fcntlmodule.c'])) + # grp(3) + self.addext(Extension('grp', ['grpmodule.c'])) + + self.addext(Extension('_socket', ['socketmodule.c'])) + self.addext(Extension('spwd', ['spwdmodule.c'])) + + # select(2); not on ancient System V + self.addext(Extension('select', ['selectmodule.c'])) + + # Memory-mapped files (also works on Win32). + self.addext(Extension('mmap', ['mmapmodule.c'])) + + # Lance Ellinghaus's syslog module + # syslog daemon interface + self.addext(Extension('syslog', ['syslogmodule.c'])) + + # Python interface to subinterpreter C-API. + self.addext(Extension('_xxsubinterpreters', ['_xxsubinterpretersmodule.c'])) + + # + # Here ends the simple stuff. From here on, modules need certain + # libraries, are platform-specific, or present other surprises. + # + + # Multimedia modules + # These don't work for 64-bit platforms!!! + # These represent audio samples or images as strings: + # + # Operations on audio samples + # According to #993173, this one should actually work fine on + # 64-bit platforms. + # + # audioop needs libm for floor() in multiple functions. + self.addext(Extension('audioop', ['audioop.c'])) + + # CSV files + self.addext(Extension('_csv', ['_csv.c'])) + + # POSIX subprocess module helper. + self.addext(Extension('_posixsubprocess', ['_posixsubprocess.c'])) + + def detect_test_extensions(self): + # Python C API test module + self.addext(Extension('_testcapi', ['_testcapimodule.c'])) + + # Python Internal C API test module + self.addext(Extension('_testinternalcapi', ['_testinternalcapi.c'])) + + # Python PEP-3118 (buffer protocol) test module + self.addext(Extension('_testbuffer', ['_testbuffer.c'])) + + # Test loading multiple modules from one compiled file (https://bugs.python.org/issue16421) + self.addext(Extension('_testimportmultiple', ['_testimportmultiple.c'])) + + # Test multi-phase extension module init (PEP 489) + self.addext(Extension('_testmultiphase', ['_testmultiphase.c'])) + + # Fuzz tests. + self.addext(Extension( + '_xxtestfuzz', + ['_xxtestfuzz/_xxtestfuzz.c', '_xxtestfuzz/fuzzer.c'] + )) + + def detect_readline_curses(self): + # readline + readline_termcap_library = "" + curses_library = "" + # Cannot use os.popen here in py3k. + tmpfile = os.path.join(self.build_temp, 'readline_termcap_lib') + if not os.path.exists(self.build_temp): + os.makedirs(self.build_temp) + # Determine if readline is already linked against curses or tinfo. + if sysconfig.get_config_var('HAVE_LIBREADLINE'): + if sysconfig.get_config_var('WITH_EDITLINE'): + readline_lib = 'edit' + else: + readline_lib = 'readline' + do_readline = self.compiler.find_library_file(self.lib_dirs, + readline_lib) + if CROSS_COMPILING: + ret = run_command("%s -d %s | grep '(NEEDED)' > %s" + % (sysconfig.get_config_var('READELF'), + do_readline, tmpfile)) + elif find_executable('ldd'): + ret = run_command("ldd %s > %s" % (do_readline, tmpfile)) + else: + ret = 1 + if ret == 0: + with open(tmpfile) as fp: + for ln in fp: + if 'curses' in ln: + readline_termcap_library = re.sub( + r'.*lib(n?cursesw?)\.so.*', r'\1', ln + ).rstrip() + break + # termcap interface split out from ncurses + if 'tinfo' in ln: + readline_termcap_library = 'tinfo' + break + if os.path.exists(tmpfile): + os.unlink(tmpfile) + else: + do_readline = False + # Issue 7384: If readline is already linked against curses, + # use the same library for the readline and curses modules. + if 'curses' in readline_termcap_library: + curses_library = readline_termcap_library + elif self.compiler.find_library_file(self.lib_dirs, 'ncursesw'): + curses_library = 'ncursesw' + # Issue 36210: OSS provided ncurses does not link on AIX + # Use IBM supplied 'curses' for successful build of _curses + elif AIX and self.compiler.find_library_file(self.lib_dirs, 'curses'): + curses_library = 'curses' + elif self.compiler.find_library_file(self.lib_dirs, 'ncurses'): + curses_library = 'ncurses' + elif self.compiler.find_library_file(self.lib_dirs, 'curses'): + curses_library = 'curses' + + if MACOS: + os_release = int(os.uname()[2].split('.')[0]) + dep_target = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET') + if (dep_target and + (tuple(int(n) for n in dep_target.split('.')[0:2]) + < (10, 5) ) ): + os_release = 8 + if os_release < 9: + # MacOSX 10.4 has a broken readline. Don't try to build + # the readline module unless the user has installed a fixed + # readline package + if find_file('readline/rlconf.h', self.inc_dirs, []) is None: + do_readline = False + if do_readline: + readline_libs = [readline_lib] + if readline_termcap_library: + pass # Issue 7384: Already linked against curses or tinfo. + elif curses_library: + readline_libs.append(curses_library) + elif self.compiler.find_library_file(self.lib_dirs + + ['/usr/lib/termcap'], + 'termcap'): + readline_libs.append('termcap') + self.add(Extension('readline', ['readline.c'], + library_dirs=['/usr/lib/termcap'], + libraries=readline_libs)) + else: + self.missing.append('readline') + + # Curses support, requiring the System V version of curses, often + # provided by the ncurses library. + curses_defines = [] + curses_includes = [] + panel_library = 'panel' + if curses_library == 'ncursesw': + curses_defines.append(('HAVE_NCURSESW', '1')) + if not CROSS_COMPILING: + curses_includes.append('/usr/include/ncursesw') + # Bug 1464056: If _curses.so links with ncursesw, + # _curses_panel.so must link with panelw. + panel_library = 'panelw' + if MACOS: + # On OS X, there is no separate /usr/lib/libncursesw nor + # libpanelw. If we are here, we found a locally-supplied + # version of libncursesw. There should also be a + # libpanelw. _XOPEN_SOURCE defines are usually excluded + # for OS X but we need _XOPEN_SOURCE_EXTENDED here for + # ncurses wide char support + curses_defines.append(('_XOPEN_SOURCE_EXTENDED', '1')) + elif MACOS and curses_library == 'ncurses': + # Building with the system-suppied combined libncurses/libpanel + curses_defines.append(('HAVE_NCURSESW', '1')) + curses_defines.append(('_XOPEN_SOURCE_EXTENDED', '1')) + + curses_enabled = True + if curses_library.startswith('ncurses'): + curses_libs = [curses_library] + self.add(Extension('_curses', ['_cursesmodule.c'], + include_dirs=curses_includes, + define_macros=curses_defines, + libraries=curses_libs)) + elif curses_library == 'curses' and not MACOS: + # OSX has an old Berkeley curses, not good enough for + # the _curses module. + if (self.compiler.find_library_file(self.lib_dirs, 'terminfo')): + curses_libs = ['curses', 'terminfo'] + elif (self.compiler.find_library_file(self.lib_dirs, 'termcap')): + curses_libs = ['curses', 'termcap'] + else: + curses_libs = ['curses'] + + self.add(Extension('_curses', ['_cursesmodule.c'], + define_macros=curses_defines, + libraries=curses_libs)) + else: + curses_enabled = False + self.missing.append('_curses') + + # If the curses module is enabled, check for the panel module + # _curses_panel needs some form of ncurses + skip_curses_panel = True if AIX else False + if (curses_enabled and not skip_curses_panel and + self.compiler.find_library_file(self.lib_dirs, panel_library)): + self.add(Extension('_curses_panel', ['_curses_panel.c'], + include_dirs=curses_includes, + define_macros=curses_defines, + libraries=[panel_library, *curses_libs])) + elif not skip_curses_panel: + self.missing.append('_curses_panel') + + def detect_crypt(self): + self.addext(Extension('_crypt', ['_cryptmodule.c'])) + + def detect_dbm_gdbm(self): + # Modules that provide persistent dictionary-like semantics. You will + # probably want to arrange for at least one of them to be available on + # your machine, though none are defined by default because of library + # dependencies. The Python module dbm/__init__.py provides an + # implementation independent wrapper for these; dbm/dumb.py provides + # similar functionality (but slower of course) implemented in Python. + + dbm_setup_debug = False # verbose debug prints from this script? + dbm_order = ['gdbm'] + + # libdb, gdbm and ndbm headers and libraries + have_ndbm_h = sysconfig.get_config_var("HAVE_NDBM_H") + have_gdbm_ndbm_h = sysconfig.get_config_var("HAVE_GDBM_NDBM_H") + have_gdbm_dash_ndbm_h = sysconfig.get_config_var("HAVE_GDBM_DASH_NDBM_H") + have_libndbm = sysconfig.get_config_var("HAVE_LIBNDBM") + have_libgdbm_compat = sysconfig.get_config_var("HAVE_LIBGDBM_COMPAT") + have_libdb = sysconfig.get_config_var("HAVE_LIBDB") + + # The standard Unix dbm module: + if not CYGWIN: + config_args = [arg.strip("'") + for arg in sysconfig.get_config_var("CONFIG_ARGS").split()] + dbm_args = [arg for arg in config_args + if arg.startswith('--with-dbmliborder=')] + if dbm_args: + dbm_order = [arg.split('=')[-1] for arg in dbm_args][-1].split(":") + else: + dbm_order = "gdbm:ndbm:bdb".split(":") + dbmext = None + for cand in dbm_order: + if cand == "ndbm": + if have_ndbm_h: + # Some systems have -lndbm, others have -lgdbm_compat, + # others don't have either + if have_libndbm: + ndbm_libs = ['ndbm'] + elif have_libgdbm_compat: + ndbm_libs = ['gdbm_compat'] + else: + ndbm_libs = [] + if dbm_setup_debug: print("building dbm using ndbm") + dbmext = Extension( + '_dbm', ['_dbmmodule.c'], + define_macros=[('USE_NDBM', None)], + libraries=ndbm_libs + ) + break + elif cand == "gdbm": + # dbm_open() is provided by libgdbm_compat, which wraps libgdbm + if have_libgdbm_compat and (have_gdbm_ndbm_h or have_gdbm_dash_ndbm_h): + if dbm_setup_debug: print("building dbm using gdbm") + dbmext = Extension( + '_dbm', ['_dbmmodule.c'], + define_macros=[('USE_GDBM_COMPAT', None)], + libraries=['gdbm_compat'] + ) + break + elif cand == "bdb": + if have_libdb: + if dbm_setup_debug: print("building dbm using bdb") + dbmext = Extension( + '_dbm', ['_dbmmodule.c'], + define_macros=[('USE_BERKDB', None)], + libraries=['db'] + ) + break + if dbmext is not None: + self.add(dbmext) + else: + self.missing.append('_dbm') + + # Anthony Baxter's gdbm module. GNU dbm(3) will require -lgdbm: + self.addext(Extension('_gdbm', ['_gdbmmodule.c'])) + + def detect_sqlite(self): + sources = [ + "_sqlite/blob.c", + "_sqlite/connection.c", + "_sqlite/cursor.c", + "_sqlite/microprotocols.c", + "_sqlite/module.c", + "_sqlite/prepare_protocol.c", + "_sqlite/row.c", + "_sqlite/statement.c", + "_sqlite/util.c", + ] + self.addext(Extension("_sqlite3", sources=sources)) + + def detect_platform_specific_exts(self): + # Unix-only modules + # Steen Lumholt's termios module + self.addext(Extension('termios', ['termios.c'])) + # Jeremy Hylton's rlimit interface + self.addext(Extension('resource', ['resource.c'])) + # linux/soundcard.h or sys/soundcard.h + self.addext(Extension('ossaudiodev', ['ossaudiodev.c'])) + + # macOS-only, needs SystemConfiguration and CoreFoundation framework + self.addext(Extension('_scproxy', ['_scproxy.c'])) + + def detect_compress_exts(self): + # Andrew Kuchling's zlib module. + self.addext(Extension('zlib', ['zlibmodule.c'])) + + # Helper module for various ascii-encoders. Uses zlib for an optimized + # crc32 if we have it. Otherwise binascii uses its own. + self.addext(Extension('binascii', ['binascii.c'])) + + # Gustavo Niemeyer's bz2 module. + self.addext(Extension('_bz2', ['_bz2module.c'])) + + # LZMA compression support. + self.addext(Extension('_lzma', ['_lzmamodule.c'])) + + def detect_expat_elementtree(self): + # Interface to the Expat XML parser + # + # Expat was written by James Clark and is now maintained by a group of + # developers on SourceForge; see www.libexpat.org for more information. + # The pyexpat module was written by Paul Prescod after a prototype by + # Jack Jansen. The Expat source is included in Modules/expat/. Usage + # of a system shared libexpat.so is possible with --with-system-expat + # configure option. + # + # More information on Expat can be found at www.libexpat.org. + # + self.addext(Extension('pyexpat', sources=['pyexpat.c'])) + + # Fredrik Lundh's cElementTree module. Note that this also + # uses expat (via the CAPI hook in pyexpat). + self.addext(Extension('_elementtree', sources=['_elementtree.c'])) + + def detect_multibytecodecs(self): + # Hye-Shik Chang's CJKCodecs modules. + self.addext(Extension('_multibytecodec', + ['cjkcodecs/multibytecodec.c'])) + for loc in ('kr', 'jp', 'cn', 'tw', 'hk', 'iso2022'): + self.addext(Extension( + f'_codecs_{loc}', [f'cjkcodecs/_codecs_{loc}.c'] + )) + + def detect_multiprocessing(self): + # Richard Oudkerk's multiprocessing module + multiprocessing_srcs = ['_multiprocessing/multiprocessing.c'] + if ( + sysconfig.get_config_var('HAVE_SEM_OPEN') and not + sysconfig.get_config_var('POSIX_SEMAPHORES_NOT_ENABLED') + ): + multiprocessing_srcs.append('_multiprocessing/semaphore.c') + self.addext(Extension('_multiprocessing', multiprocessing_srcs)) + self.addext(Extension('_posixshmem', ['_multiprocessing/posixshmem.c'])) + + def detect_uuid(self): + # Build the _uuid module if possible + self.addext(Extension('_uuid', ['_uuidmodule.c'])) + + def detect_modules(self): + # remove dummy extension + self.extensions = [] + + # Some C extensions are built by entries in Modules/Setup.bootstrap. + # These are extensions are required to bootstrap the interpreter or + # build process. + self.detect_simple_extensions() + self.detect_test_extensions() + self.detect_readline_curses() + self.detect_crypt() + self.detect_openssl_hashlib() + self.detect_hash_builtins() + self.detect_dbm_gdbm() + self.detect_sqlite() + self.detect_platform_specific_exts() + self.detect_nis() + self.detect_compress_exts() + self.detect_expat_elementtree() + self.detect_multibytecodecs() + self.detect_decimal() + self.detect_ctypes() + self.detect_multiprocessing() + self.detect_tkinter() + self.detect_uuid() + + # Uncomment the next line if you want to play with xxmodule.c +# self.add(Extension('xx', ['xxmodule.c'])) + + self.addext(Extension('xxlimited', ['xxlimited.c'])) + self.addext(Extension('xxlimited_35', ['xxlimited_35.c'])) + + def detect_tkinter(self): + self.addext(Extension('_tkinter', ['_tkinter.c', 'tkappinit.c'])) + + def configure_ctypes(self, ext): + return True + + def detect_ctypes(self): + # Thomas Heller's _ctypes module + + if (not sysconfig.get_config_var("LIBFFI_INCLUDEDIR") and MACOS): + self.use_system_libffi = True + else: + self.use_system_libffi = '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS") + + include_dirs = [] + extra_compile_args = [] + extra_link_args = [] + sources = ['_ctypes/_ctypes.c', + '_ctypes/callbacks.c', + '_ctypes/callproc.c', + '_ctypes/stgdict.c', + '_ctypes/cfield.c'] + + if MACOS: + sources.append('_ctypes/malloc_closure.c') + extra_compile_args.append('-DUSING_MALLOC_CLOSURE_DOT_C=1') + extra_compile_args.append('-DMACOSX') + 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 + # when it shouldn't. The proper fix would be to rewrite + # the assembler code to be PIC. + # This only works with GCC; the Sun compiler likely refuses + # this option. If you want to compile ctypes with the Sun + # compiler, please research a proper solution, instead of + # finding some -z option for the Sun compiler. + extra_link_args.append('-mimpure-text') + + ext = Extension('_ctypes', + include_dirs=include_dirs, + extra_compile_args=extra_compile_args, + extra_link_args=extra_link_args, + libraries=[], + sources=sources) + self.add(ext) + # function my_sqrt() needs libm for sqrt() + self.addext(Extension('_ctypes_test', ['_ctypes/_ctypes_test.c'])) + + ffi_inc = sysconfig.get_config_var("LIBFFI_INCLUDEDIR") + ffi_lib = None + + ffi_inc_dirs = self.inc_dirs.copy() + if MACOS: + ffi_in_sdk = os.path.join(macosx_sdk_root(), "usr/include/ffi") + + if not ffi_inc: + if os.path.exists(ffi_in_sdk): + ext.extra_compile_args.append("-DUSING_APPLE_OS_LIBFFI=1") + ffi_inc = ffi_in_sdk + ffi_lib = 'ffi' + else: + # OS X 10.5 comes with libffi.dylib; the include files are + # in /usr/include/ffi + ffi_inc_dirs.append('/usr/include/ffi') + + if not ffi_inc: + found = find_file('ffi.h', [], ffi_inc_dirs) + if found: + ffi_inc = found[0] + if ffi_inc: + ffi_h = ffi_inc + '/ffi.h' + if not os.path.exists(ffi_h): + ffi_inc = None + print('Header file {} does not exist'.format(ffi_h)) + if ffi_lib is None and ffi_inc: + for lib_name in ('ffi', 'ffi_pic'): + if (self.compiler.find_library_file(self.lib_dirs, lib_name)): + ffi_lib = lib_name + break + + if ffi_inc and ffi_lib: + ffi_headers = glob(os.path.join(ffi_inc, '*.h')) + if grep_headers_for('ffi_prep_cif_var', ffi_headers): + ext.extra_compile_args.append("-DHAVE_FFI_PREP_CIF_VAR=1") + if grep_headers_for('ffi_prep_closure_loc', ffi_headers): + ext.extra_compile_args.append("-DHAVE_FFI_PREP_CLOSURE_LOC=1") + if grep_headers_for('ffi_closure_alloc', ffi_headers): + ext.extra_compile_args.append("-DHAVE_FFI_CLOSURE_ALLOC=1") + + ext.include_dirs.append(ffi_inc) + ext.libraries.append(ffi_lib) + self.use_system_libffi = True + + if sysconfig.get_config_var('HAVE_LIBDL'): + # for dlopen, see bpo-32647 + ext.libraries.append('dl') + + def detect_decimal(self): + # Stefan Krah's _decimal module + self.addext( + Extension( + '_decimal', + ['_decimal/_decimal.c'], + # Uncomment for extra functionality: + # define_macros=[('EXTRA_FUNCTIONALITY', 1)] + ) + ) + + def detect_openssl_hashlib(self): + self.addext(Extension('_ssl', ['_ssl.c'])) + self.addext(Extension('_hashlib', ['_hashopenssl.c'])) + + def detect_hash_builtins(self): + # By default we always compile these even when OpenSSL is available + # (issue #14693). It's harmless and the object code is tiny + # (40-50 KiB per module, only loaded when actually used). Modules can + # be disabled via the --with-builtin-hashlib-hashes configure flag. + + self.addext(Extension('_md5', ['md5module.c'])) + self.addext(Extension('_sha1', ['sha1module.c'])) + self.addext(Extension('_sha256', ['sha256module.c'])) + self.addext(Extension('_sha512', ['sha512module.c'])) + self.addext(Extension('_sha3', ['_sha3/sha3module.c'])) + self.addext(Extension('_blake2', + [ + '_blake2/blake2module.c', + '_blake2/blake2b_impl.c', + '_blake2/blake2s_impl.c' + ] + )) + + def detect_nis(self): + self.addext(Extension('nis', ['nismodule.c'])) + + +class PyBuildInstall(install): + # Suppress the warning about installation into the lib_dynload + # directory, which is not in sys.path when running Python during + # installation: + def initialize_options (self): + install.initialize_options(self) + self.warn_dir=0 + + # Customize subcommands to not install an egg-info file for Python + sub_commands = [('install_lib', install.has_lib), + ('install_headers', install.has_headers), + ('install_scripts', install.has_scripts), + ('install_data', install.has_data)] + + +class PyBuildInstallLib(install_lib): + # Do exactly what install_lib does but make sure correct access modes get + # set on installed directories and files. All installed files with get + # mode 644 unless they are a shared library in which case they will get + # mode 755. All installed directories will get mode 755. + + # this is works for EXT_SUFFIX too, which ends with SHLIB_SUFFIX + shlib_suffix = sysconfig.get_config_var("SHLIB_SUFFIX") + + def install(self): + outfiles = install_lib.install(self) + self.set_file_modes(outfiles, 0o644, 0o755) + self.set_dir_modes(self.install_dir, 0o755) + return outfiles + + def set_file_modes(self, files, defaultMode, sharedLibMode): + if not files: return + + for filename in files: + if os.path.islink(filename): continue + mode = defaultMode + if filename.endswith(self.shlib_suffix): mode = sharedLibMode + log.info("changing mode of %s to %o", filename, mode) + if not self.dry_run: os.chmod(filename, mode) + + def set_dir_modes(self, dirname, mode): + for dirpath, dirnames, fnames in os.walk(dirname): + if os.path.islink(dirpath): + continue + log.info("changing mode of %s to %o", dirpath, mode) + if not self.dry_run: os.chmod(dirpath, mode) + + +class PyBuildScripts(build_scripts): + def copy_scripts(self): + outfiles, updated_files = build_scripts.copy_scripts(self) + fullversion = '-{0[0]}.{0[1]}'.format(sys.version_info) + minoronly = '.{0[1]}'.format(sys.version_info) + newoutfiles = [] + newupdated_files = [] + for filename in outfiles: + if filename.endswith('2to3'): + newfilename = filename + fullversion + else: + newfilename = filename + minoronly + log.info(f'renaming {filename} to {newfilename}') + os.rename(filename, newfilename) + newoutfiles.append(newfilename) + if filename in updated_files: + newupdated_files.append(newfilename) + return newoutfiles, newupdated_files + + +def main(): + global LIST_MODULE_NAMES + + if "--list-module-names" in sys.argv: + LIST_MODULE_NAMES = True + sys.argv.remove("--list-module-names") + + set_compiler_flags('CFLAGS', 'PY_CFLAGS_NODIST') + set_compiler_flags('LDFLAGS', 'PY_LDFLAGS_NODIST') + + class DummyProcess: + """Hack for parallel build""" + ProcessPoolExecutor = None + + sys.modules['concurrent.futures.process'] = DummyProcess + validate_tzpath() + + # turn off warnings when deprecated modules are imported + import warnings + warnings.filterwarnings("ignore",category=DeprecationWarning) + setup(# PyPI Metadata (PEP 301) + name = "Python", + version = sys.version.split()[0], + url = "https://www.python.org/%d.%d" % sys.version_info[:2], + maintainer = "Guido van Rossum and the Python community", + maintainer_email = "python-dev@python.org", + description = "A high-level object-oriented programming language", + long_description = SUMMARY.strip(), + license = "PSF license", + classifiers = [x for x in CLASSIFIERS.split("\n") if x], + platforms = ["Many"], + + # Build info + cmdclass = {'build_ext': PyBuildExt, + 'build_scripts': PyBuildScripts, + 'install': PyBuildInstall, + 'install_lib': PyBuildInstallLib}, + # A dummy module is defined here, because build_ext won't be + # called unless there's at least one extension module defined. + ext_modules=[Extension('_dummy', ['_dummy.c'])], + + # If you change the scripts installed here, you also need to + # check the PyBuildScripts command above, and change the links + # created by the bininstall target in Makefile.pre.in + scripts = ["Tools/scripts/pydoc3", "Tools/scripts/idle3", + "Tools/scripts/2to3"] + ) + +# --install-platlib +if __name__ == '__main__': + main()

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 z zE0J2Pk20m{4vkLsDGM`_i=KAH0{~1`+r>I6(Ibdast9q7k1WwAq2E$3HM*$wIXeuL zcu!Fj00-4>PVRDNayD-ll^40wn5#ct%f`qxmtR`{Xs;fHCyi-YJQOnn$J)F~F92)Q zyc@$DGR%9`s9Bd-N(F#(NmlnMbyzU~GK+jwwC+)BU)*2q+3Zx1b1D zZONpf#w=;3Ge*SQ<9+`!%y%;Qq1-y;7FzpRh<^l*Y!2$;l?e1Cw-1w(mye91lp?60 z=&`0nhVXS`YANg@4paYB&k{AnjE@LVERihCsmahr6J4#dA-d~qK$h~#YStc-Y_()6_-Cj{KHm$QF z&jWok7Mj-cz5q2jP==oKcj{POWq-0C0tRgh;}vX8RX33+lU2oyzuc5Y9tS(K-v z*G*X3_5e&wtmJ|CL2!W8i4zV*hUi>c-Y_+F-xW{-@pBju^+5Wb&O? zu*>aBve@vAxNbm3js}QGn93&53a+W~e&4iq0!av<9629fzv@TzT^siD_nBzbVy6LU zmSwkGt7y6A?wL{Dx*k*8G&$;Km#PDHbyjLbAoX)}EkXh>TVxfh;Wo8&Q@wQ~!+iu2 zA1~5`T#-MBpK&;mwxEqrzm1J^E1en|%g=YBsKx;}Ho=zU{N&m%n(gOly=(9`dD z_jH7J#gBbCf1hnJV5ZRzFaNm3PhOijz`XX;0x>r-e%=xA?Yc)LN{`pPQDY_J$c6J{ zIZbmRn3k^=)EL8O{7!-}TD^xV0V#q`(y?N!u>;%N6`K_4id-A-qJKag5X=j0t%D3r zN!oUYR*?7*uB1Eg&@H2b&AB7{Gy>oW9(vI`)*EX=ur|=f7ifoGK0+ExjpwT@*{nx` ze}V8p;gFE2(Jn=~s1dD|cA&^4E7cYMtb+2_j{;UHdMR+JLv=amxcpkL)|4Z0_YlB5 z7`Ra2mYGocB!3f$E;%fMRHoHI;{}*{@y13rKcYr$EV{9elDYIXEwbmI<*b&Iw5I7q z((LCHpn1oCCs|;70e965ft~`toWBtm&LNMO+7191Cuc|TWou|@cv+-DxPx67m=hQOPMo4?(2&*j2 z1`zOWM2Lo+7^N@WN9++IJXUD>#v*Z6@mLb7`hkBL7sYO^EJ=}< z(p7mcRYmREK78H51D$wJ#c1ei(^8fxBd|m!4M2aDu9Y@NSMdd+a(0ML6HO_k{cW_@ zx96ywnw}_xEtL3c&7tvcY-_mU5pQ(xyRD#pqzK`&FvG}@WbB4eaywDcs+6b1ZwM<+ zs%FM-1|6x`lhakfA0;jrDMbr{B!i(IST~mTkn8#36Yxiw#e_9|FNIjzZ|md6G_uXLpVu{i3R*7!GW=&bKi0q=YI?+2IjHD7eS@@*KXo+}mjY)WW8X{V4okAv%+J!A zu)vLHfnwYQH=RN#<$9%FP6LH=59$&Zh00PHrd$Bgg0<2Em%&2^J(KZ9OxNV;fKoDJBdZ;ZBl6)mB6u zUx7Nm9JHKm0;G&q+G!N(O3r_$sY(KG^tB}vF5VtfBrNfv7d(u&q%Xtgf=5UyPEnkY zYem|6CAN|=zhfW_9wfIl6bW9!?y*o-B@0}>y@;gLYNdd?Cne+~ZtOj-#o zo9LQSYzgy6vVsOv%^j8`6kQhLJa`ezp1i3JjRRYVkR1dELAAJ3iTl;A_3?=g1uuE7 zU+TGvphjh}jh35t9#bEul)l33^r3QJPDLuxK#dtn`o2e-M}&4v1=in}sA38S()Cnz z7;s3N0GW!D2hH2YfSPOkY3w$rR*JgIR2kPa+C_84Vsek;U7KUw1e w{`C9sV$Ui?x4{a(llFqcfe?}wA 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%0DPCo9Pbf^{joKwV_Jc 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 z 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

%F0M&Xu1a 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%0D?x&>Q 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%0A9>WXd4tEQ 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ώR}0+l~Agjf71h*u>2Q@o<K-cHuo>l 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%0AxU$zt5sn{*1=Le~LZV#-6^|^O_WTR!)y~ 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